1.73205080756887729352744634150587236694280525381038062805580697945193301690880003708114618675724857567562614141540670302996994509499895247881165551209437364852809323190230558206797482010108467492326501531234326690332288665067225466892183797122704713166036786158801904998653737985938946765034750657605075661834812960610094760218719032508314582952395983299778982450828871446383291734722416398458785539766795806381835366611084317378089437831610208830552490167002352071114428869599095636579708716849807289949329648428302078640860398873869753758231731783139599298300783870287705391336956331210370726401924910676823119928837564114142201674275210237299427083105989845947598766428889779614783795839022885485290357603385280806438197234466105968972287286526415382266469842002119548415527844118128653450703519165001668929441548084607127714399976292683462957743836189511012714863874697654598245178855097537901388066496191196222295711055524292372319219773826256163146884203285371668293864961191704973883639549593814575767185337363312591089965542462483478719760523599776919232357022030530284038591541497107242955920670620250952017596318587276635997528366343108015066585371064732853862592226058222051040368027029750479872807946165810041705268194001909573346217594389367024932042269103436981246372011118526108426891029972031120210006350717637458240520384755519727993379761490610789498554422332600401885130363156114488684728158928816324518726506664538487759916257664287211124084206801676351710010294318071551519096164246090703940812921690351749296136400413967043104125363232703092257732796029237659774553709546911574214042423078199232761740190642451245487751686269610533369421621360539460424565414012853300781363344985673640670397734222981196104292553450160140594047954715453454840727173765626236654916664023300601326574407010783685846845231316046775448050040224063991197036221860292023886715071101716940029686875966350004089531621423342522795683406701347018590202836071676214774349344956359580808213044258646946852261090826335300875661260346067219540405598412891297599481000077205744023004767325880009151437148947544487915719129465908357087396151553779764026206837084804607296938271958568975975962610415915265757779078233498056784002290153205213893537377553656642704682687428996344139574366607374444558308647789321298530214819739534147817051661495255176329199369956574452263911251909354138698936681743093822642473692620207299096783115413194648437791545991592392828771469514927402640921364565404164458149020194574941930526900261397264608106507143960320607751059418779828479398619524996416521313971529359942189741664707518723578862946610856017042886960579839405290640743081183338867788156263586715600839676024534922994393886705975431544294343095725847098821546311126076677406786457157806064744749975035454455931328654918984933657274762629741473823568691483783136336128362790382484016380667160717984872855584293134922609324056595755365113675464438783428331346664455418039082189898329462634501617112201692961946016932062103303974486623165600356678181344310089656870674296565817744557268501563159441250736119806347288646624132719366942671295145039751892831348619284130325518843116901467142379437472833434465248204379605973287061627491094159686262530255888976847041750200314026228469104804698403243790660673774962710251271060206086266284366605019289089383832000609122869188183684236169390352312693036861379681152694699789192663528438992701651982550225292357936628163456810891307411267837819944977276544829492043880130178354649921357403279157750778600229642350427599699762691873841484739477385156355209122096331583903456718941529435704065307608529017424976818550288527634494957744911042250245372315606361810350487175915803279179836751006713610006621756604957376677711292528730247992672015899641893776201611411828989968295590251165639142236499506285003069681297350725172791859830111527754229885188531176359478600312306372609836985030831085214559574835955571573935663368086482107879124705103163156958160434874882961489415458535556197499929687795509928552742359025181032376686160959255254431995490742067973915707261424532895042809735103796773666013591752262706123231258945069763481317775445606660357622048300690422538949486772952132571976924592767066076581655829867505657289465886091902964438128505785975943750640244606212145608560854524925136832875484343873372020169231163043270564806013758793685672153508781684407802329206462316381129177229775272553107516138368213460457779985462562208196063163601920633096851621623166068346886311662150132385428739130449512315521636562129518747553097657063995502988042564734055778519134953303988864307143178505200798624246848138297634080217629705645721316219830682936462868222227992381641635317259827321307971419267628691568118183996651510030701082670312866401591831271960403892354068259150459576491836855261480346510928989655996182971640849813570292272962214026375059551994750161810585447401976497159376634238856970198221404541020964290838824886098721887649480083594449193447893133108077774083803560189222853711009389809120485323299045559852409688918050449704383841504558615013090290709130615646968595896922827647376426108379170028468903666867049767917039995443633042585579779407726993528895083782711435712578063128272934988338504592711060952606287905971505494590727984168175168704150507295772336520100326383147847941079460765650636933266303820602171955147195204120847962724853911158930286664107969699152481127697914999510266057453112388139393491970892694073573849194429196300728095033865430213781233945614247242458682500549050978216841989515407766304664866025321182151705854648169901035102040604077905348239545708110366280241930783353951859750884711854479315034500158038470944785460209216193440279845891247205294177676250649796185823477655628082494054443765059777943908019792430015495993671040798391303311999686653501787230899587434598105041054685361871666900860265187270950630789220944985042861934362949542931097209940859558589679600042582295942694390957411016678479809079289075408433879899758556900947196324890432336603637288742047717989778731967478933464009923879592841328047907658225818118354059145539581002972913267971419435405735316141584798029441186203132251905409158901912225531965373739285631039078775792050343944361056072820486574391464728048072336592732017665622300570111468559121445099550536498564336550952547397499650282882492285695909318803379499226465986206882340117439449629313198598588025419934709620103894917197706225865726670761872835390233480692508343564953744562831075758718687753815939708540069889922016605442502631283288078979490704554432954849287018759610076202746131105867202464953997056047743960107067742057472358757075902472651853228891022363037446200471964240075854163676572689203716353921947742869068588881580970424835821514913569928107507230782644740671873480948454453726493106292258033725851714514480546207664608673642725048301581204342175186931670856000833529593442674587299873507162517030057115713817530130240701102966025095586242256028906467413190800068212898459406609148734759886139591004939606591451721653067768193557218765586006530773889312092504906280437600177785445226501520621850502043831495061372102708013920377075629783065360777573663259286473658589530115618001781703690228066071007644100625400031688403775299812494555471900424895414948224105594783578757200325596644712376844033353155432140425741745798006029830829177130827142554246923266644414836279852571797525822468122047195648467173989204108791938445078633576978688879391472317681681521670681021455559813335212606367265539213695225512281891671742671890355597415291046725806924386250609860387135886722931428923916203433273931039257964358665558134253017251042384960681029021932412478833045197463160170746522603429891645407094845622907417917400901123386239538454529497322429339730620027168826588001120898522612533780702845558144857775181193533455812353801843543229621528483696299891926156571641697746616824452031144871627806694972655483719199146761481079746849521441449719126612425820933403840843515361969896221873747192847447192407302631282979446157015969674768814843792257557350327894448960301265759219980029877201229053965423363179815036216968859918387049589703250705913965713443113343550077672949189027076861495483399466772416276551473119516751168171899887578798217839108976006571000837676942953435055288810865891170675872119515936148911282308230684332119607205021863531839922109971482661510836906571110063014151070407571108548137357033448473638612897380717065126449647883934025012113725848394238569958139546575656374760636639715480256357373639964984725543285885870949544699063168525511859987797107454415882875639038668562404562737714035760822519489464853275850964613535161086438060620473905282360405301470691232303263655705385175537586401024856711140837310890693777468479299563688617707118866407738814622948371281801917103215592415006079870572291435439125195736876822380889824489597469747678102272620351491290493688228891150774904638697230178825288870643248679831499671199351026154820930738439753226680058738430940757894807519816381685610451417837442864004156135774111269129932938895969229009604053100323183382185777879934821840229133473706892188982071435512986431550877850799370153522957099884378295881737088472070004467161870028431437534417441949897482814838664349274181798045102179529895291152953586620103822337718791749869553228316430615664593609345736762202095338383113374554355706933335236054109758080625150756908201848877473335268912424637874632982972070368481942799201227366533682249974317558418960156204057648029657377064116392836006561242745279302427187819071828565144846989589893078441667632198857333208664034916032582187716726500465630279227465739067944465488568884699527019606111994276019571500106996061318769172559389869071513189476644102291326233979622874705194527713735168356202507452756649823587191001253392401103132402935307270584538789555966203565608634458137226092694516988561558567272459184672323767238890240463014782720905690732743575085126338821532038180179670123040197297235768013011490015457614217179825051971048381345959246757550605679516494161873839952843308194337448919056298389558918423669972439416303360159779817709680997470832796645853613642123732694180649317002183535106368869857614099758081932330847261595601525267956348299334481308629361503106879444508385679193835245291250045971604354442822615509623224023731629005043737727813478285055976135760922835257095208189831665164019557034099993859852157596383714530397492180011655628915921081798747421772358180102472619511867612536900635158015260450258969797082593563488905986941059550637920261627070677180873906443061234236003956300881942491932721200505854145629096376990496170625590970506131705416112816377776430623770825658609157957860714713129960383072121968988558913944800051551070657103597615184980822670438021445335308771615172609657219803125820466616040586577565654275754702681656245805530154708799369503408232844752658985278904942545521570759559149451131567345231019514972644070523372502238107672725740745323712871045393071669109930838566953452927689972646463521201499949509154233331453400140221101248068248993146751718654086226872231141580244340816105461610341785499233864463990520502755129119783372940001948273293151494275317027983047411116749845308147697994355281332944153394484719154409102530990199065085224024307531924487923356372168840528239977288106161896299012863597828153839461117784750903161381592076970315771292258836717486103258962773273497744748653456547763753161205920465010852421670208343306227879375568798356617079485398056724053488133328631079834912534315734861760919810214279792291018745080258202636362325619309624355323158728534882987376586934452445360218385586283876933716334021064222181216481081580441485509849214522327811962167176954788915980570998203336832364008405436605609602133977313211343700411577792794169537332905556898475468601317925971383391474576280948540819971148235807731943646031389833902931572295796059957379968808921987506251393367494282432897155702772725687330155935620609366474203229951033025780004331396342710973366466614908632867863739816916393083367942519132071942704397782333365654927154283840541548284295124418601921369248641679823968859510560570821359074137535970094832491067822895707371493685828617677056911517898379454724817868099258334975641310504319299050710747357202103619044217691382540772258770982586653771233631145467280962268628575179036561713562628483687299337248388696417430030951465688580731060786063381361141065783808579168243327878660510177556027452192977872767148186435863269263971441074400763798936009278650763444986133226131857034939396529258103125899797566821135287469006992086924610447030799487393878361095899242875483059159169081893559272285413466102882858382791903317618545896205297933799729375407853666529097306923480523089689602389076945038842530079501534849369085052385449371454623437792312478719804180295091204066149153809431982313012870281388464689830668083636573533907984621737376365215305558101079538335901491095336889426986562827629589613075409770071121605607989932950781358673856649003574608081206709199358822320377593142002355756511114038523887940393963217897264417310285646864433256204938803170315155930960154816215460489186150354032337495430764528160879288195944290516119737489580012162513444626610155276750738514388487726038750130591244073778687555208799301706994023004943875194513567660849886562081427259302839694402542771559031182830559294667461594644206614773912850738282703126412981170006776102122240925045095814370443569564427958472674269257513641690965247452565154291704813465149324280476851415561734424617100226520537557993050944909047378741545955857119476509358400493338980173224956674213495942277620880424436892916762378784706782725043592580596008700213189038483237847442519926841919217001679467353903261566797182041555952230095609527654570070615311565732489383484045390755194298376166223163774785594777332404376433330225887967989009728978176258271827094658571063684652813863223522999677839106509193881335118151084062579270014172621940464387206534149486481064522466141777390845301608589044509920896192973111693291140914977698518504440667745165302927814789580750088381321283568213494251775112164697648553954401424712683991651121437273552011947827644459937407165352264613041588557746185833433217004228855081828031963679863450198304457456772369829780644653869213064192201879603979164515437303783396311569677892631092772359807708343716067278138201039091768760136879200717574620974397485084913305926123248972881615941228617528950456395881993193970182298600377064116378805331713490773215344838726470534926089769457435645840719224252638964284617896938348119225114834293075331154737464691828577751412526438455449762568421913799873562750633591645553597759657096094101756434895922241874798857914704751983178650798834108524413168473158734076640164187829488524960216928024130069224948727268853622379624028145059426889053687167553919464277035396393159754212069802887234695351623096462250238693823864608461488886122734895745778077498192165069791704560116653366266781429712731815066329599906107462017591354741585452653424803517707161650071952590358890505475103178570468110523271504172102143288888102847037305495811953616961098883973479602233581545820465112345992619160494614674336611957903827306542556960976566379750800059381634265783139701676937663170697583971389759038480430931145433552494756597883069465325674118652250088371527561716488614797818486035758914364404332486692101195924943697707449546348899711805102830902292685366440225084244561525664123002951765048776974863131129482608641870811018783713415329452942923899383757817449353213832589641884126940346087675968719381142663153146919398481608954206066852290357622213298433792069383119469613244951570282942454602587963477835934724847632309294423188824420389498238758478560404195437541236481138391989400817204441737272690547220399395593577731960326066524257403899032024962246705444379648112139744254207384827281399835892427386050865965281997347897943813914258618106555807133628086341570257263763605627566850927027376551310552112444807186627527822558757790346372890254120190197086647964191584372899447190473087357420961508147377614726755413712181121056881884099545871155032827459841659403435306411704760625130570183681792792095439082732014564137929984930622205906418076188569014197203218366939161367818139695560171177218550156862642347000674199172339848208021055517988144492833694396584563291138657889894237076154225891735921467182910985355930812729980765760377173794303496770546979204857691617495750447480554551405839392777956007570053231663854130333240598688397512808260117625656170906586065736124887325403042007066036389059770469430878496214965292790628435328200191380289026233048100060864941681999127291187320199492731772717287701160953565230746685111243307042686038123463200489708312033217103965919634405801683158583353555354135797700858285731256096817114474432870264139558248464855302709132572397990397283899432697814852485271741263769559428258587801695381475991892401580043303429253596087749817321065393494040213938567838664511446210753174131645078986670752289320345628155748551503345369920797165648973656492529310924254934299821034875854261628995395141126887281196714642643096269495821618368027531029746038878757753575676994784668216016726569958504887364035714461060701332537878355091666401185861774279040292591273460663786274720286857764232630942898548061871952694059769326107765654257217982323608027967760993062833501672522746079351740883175598039547375925858167714482056787582506511390055956652589556134053185114233982418803815781258611968819330103730919246138484261292905917699354073077574665382921704163750238201863531509628304161368168240918836634281300010076232357784501927901743451563278486234707671011726233756476034089337216038628299311840598380436041625651335390102284880787536160565697708052966768143170902356225596691166787341664361350317802348635981535250535351417464663950020800757515947479683417495334907390658376542385090682185419133211245241149966286996125867765304609891197404281919483360601789662788252043568916932684729604931195410272054879429741267564877744410492523379486886114918886665324008351939454161115613858067437578273959881350329526114618348720777573531566311149578407904659289364497794225093570535404316100833852413077112863886555840931552550168527964692160097725199152940647429523569304474465455361938450739428373877938864566329706961847768058833953054470510580836013692545844702573381591778528434143249289601639808240980714199160488556249107694996378965523288559082938085585978546856449650837054817029149911519272468950605029858213052150593531651019350799980888065683774649130519241709911003764764399819496420239460500355095381322324419717874078809512329603702210127151135643165235376172115400473894366237186480599199872101941173589343951830282394339249137917249152461584747897314270580083056970265670840271280297702813557410418678137721716568289721622213003386565877235942783367111984421543396715152470323009335172150899474437800759589488157008059998014039016323442648937712708624262250192644870460804334201248851388227032012893818544414407801943885050880507628481013040345802221198149521541464283541075881515919967148666865472660758262111989271860664954169198135881936705228180021211464395534513062585189414344539102417062161045749374266612726493826664056731485100763927691552049066730119346551953536681842248665077725233101966665882857512233437481884217057663756091314262798997483644748743673216553652098648485235386100805151572571135820425719335140034125224083076432369198656839478824470780474196189156476082162535416655931851398107589278956322932613518953200397071907121398486492105191282226834541425757106704044652594483626914398221823140171395723655129641354398138592106991150990464277355311873294874955497893937247762299248314292006967907560149932515105040577035030664296443970482570211736581157300801266045467657519887930932273798704595443123306039693042566944127419921010684710962049006855340475077042009865211014787724212059907820450008878770563843281522138901581582814116134070708885396758209839898953506277552781975661202836190589198870800868292880633225766443923430166478436339575940253666693881734994043804980769850376113418272800529636376391299160193767951858573166936980300551963736074101016271003989854312514788632421082194704624536693271467991366238054053892246116334938434746871249209419375573744445030761556784884332414633443816098353226552707695768499218928095489361332722516384964432196504131415807685744002959393286501043849532035512903721672382405122892486668144966751747050259032091234881155350339307431690927131143420615844894579247666197060516727754655945790751753136445559415654797079729990641192899019309042424982735338802249387519032986933267495992759334007583653437432663838405344073742783304435680886330759863660455400524142341001068210206736154972377785098111421347702322342397067295651036891895112246469931634436275248191575359546847377485462016978370261452874598854188514935975296277984269290228374488955812282804066591956368738914721699816989253781932750280279894828373183862149230725631197901028163636235291516465493316975795237878531735582731091142724294589645059431430788474807188440760378825385891949626266464149295012238218115508790529454311120774193540341333663055557963264809730403865255741425708104407073926185221939467382930658707928547599716251739778475137572180449341793069994503954244321084963510449129723760456256648543084170734364296874252431969647826984519927516708222928095418491674941085856003952001847407076767699355615016668578133328808689778030028185596349952130011255524852492862060526687490592824710095275916297545455555098240908110696893003127931768073230351580539196815917655191816841063983041077370716399445207712851229507477280981762386542394549800427898218995265842450108909276763136602439820175597951151412710607327277098383995137087890427944634119848599190043009431613529970442766808951453872401306581884854246379941313999432098027770300507680810763263082957897457485620274498916833453305647509475519736701987657336950460242932384012342010623041457594728216887869936623484232619886116567156425510994486394169642394392378307741857411081493187801911581147553178098457158928911108912451536013048469041996626614585787205691219754511518834689440946829232858750202524662167567214867398829624899220543756185726917503658879481923052694992454042288907370093587430568217100977084000701418875475216807649283305010860042170011430081056192819114623343070710135737284959749935858977939766460829225530260343596047493170621114109943201592317203869539267305645866813707424272291262605687675807791309289797924353960455093380579223422000429142919382588455533657875318178252030538390649493117891343252949426321502490859668585665563162749665829339987029638790435094611489832838266840126490314468458302722493613599369617864888282982991995573246809125665974168344247857467850916251340569703465840476811870988093088409885393967275443795179505107239147376931983534332123873304953399478894685492505941260117160490047930838816083523915632542978560480365471106147148510217795825840345573949437261986908607262264624960418875760908491910402330576694993424178962205783111219004005037173106179162318140728439423691507426969423381739226293154937595694176492888495701258856439287821252271683222618742005509088356106927545093783092447898579278746803308315473615148779850927675886533944192606290055349049308554755371060044558355960762520276133003153916628569510100137815534013299482070588697371580483093433719011375742008532328337512915977294756273112654560785800195054430478132547971084451801784391613649434675263264012621316677035155761480184187096504327652629386749863838309671163173019348779021641003621518870613115858097567392038579182854520109998384315244842015565853985843693217922497877643854978450449504278882019681820150640336179629479052322736099610832949577750611598660176073610033444368689627046083988746947326440689020267607135013221534725400901074619617912113863567374714069729973904251531760630705755814688999256119268068238120690513230895509861717817551337040855690509569721049500893193012139784553874210843775466585678339589734127060763477790538177829183770864743030681059398335038836604381907451059762514560665767191595385931848106678629475694039594006307473067894231131658542082133956671713661081386088657098375732202238329709930919842193847934353562783851579733780587542819600818288522241849251697037164473097697770480499476281997941950181995613131064991804499219319650652105057867652425382119243880107270929791223672849325075345030932864487243782727993901733896437755637968925193822084477855609354374320978623683554452619375018607986720510293511233361237781791812265411046735507970132530541141025592291513985237770844208837840229070722701487466468283625545887612543828489257920155259215904385524854714414311532761599440269822086819537318218455646455636488656761086149783142410119001773708191092783200326655440693516901081445903745353767550851651435457455093173585772401676927117091522583070333340014097690957620800597964759183920641355851587226271667505915637183709234485350183929799898100637339812869869403344053680724802658351258557768317961264717372232407740481648086891353986329331729093872945363688005925882672191525065642239109351495405330188035916647950424798065150074771994092706799126162067742747153914071487061010024192574988507037643231912933924459917475016078321721247295860039227513357321073573134271684795097445738604504631975997245105541075312260882564658532144515360421467132532297052013101963201662214954528549909957921919193526835890450258924353226126389239465300378082627394400013724098045095917215694720921525876672658191997450183439485244006764938013871359018974540583554907695252253227177203440631750726992516155065040833071058907862949364185995802439893078286685069401757329611223816767381697250338173099916286696572610659563811482958490670923107967451783952942567728730191325655655168356708392320208218563417796168969418931239616145024905930701944463209612808852594927535277494002757243776599453174750460036746961609698963356771386978753822401280527685047912602250433347656753513486766669996018658492925195372099975128805621529531175092600230848874251966872640861016389357081940004901213479188277110549373353236820470399882061667843769585824119049082929178774406271399783923058039549403405190555697785430219703865897064130933155816064335468442342096506321498133210518422284202801866514528825201611042444559347913561808768499107386854765051663302643283848885416225063856441646152561693336009356608480309749052052586388422531763745417055195694775489069989566142323386178795703242786955514933295450095434722834704116748891447834609281448164584931194125888069492716913619979197521992051750259754721437939494119945600173432449711500685406250042310125654444374568319461807370073563020166221611836663070343434179378654291637674498689400467987086372313947389863807536538776402925025768508850606892329678235633951612177135268156693863003470729332945519436126216282672962478837145483381829490333401748274437962803499803035287802511365157258018644492559344117847669689338575835198719468057754052089971958197969235042815960234072792870104533475270916833933193392418343768149107293585331167339898735531162884623543194355272717424749949815595460508703439511072034515986000817053781050570045563533036162125686082020522275102657783539116671605731052490865205754020373262334507067618049567034397124121192180996078287070311840112561645770040930089135351382849502280963048609190334557948597964274261027032764496286641196691458114728177424433005289993266182051264622651265000319900146303264519485022918433374424799188264886443562984582762239392034746332287560361923058622408198653247417954611141424481767537304400909090996566047625575193158093039971899843766185837715676105549782611386272003146526404249830161051835048761795818983593590612661927633131248859327453886762498170511304761418252791018785181755465790919356757550997567288194421705815078216393276901399355824212538871182947224156026989032355438232433486341629658005325732935415424399584312476852986881707928360665208429603742377444551230670423668854343569487136256313680747127948019814158243616288654467972524351712606083130187408171906035147413351548576324428225925309496804288039722394856523846814336649770601071164382404303762862438047272563120374827111946263889136367925939178406289811029115108022371627312287295807339208178934770442114277835402061320855231871000110799703832699282832850447468404443681020506279259825692113891217616957221635100752598984294796973983490945907985329336375422391405593777957386270513588440772964567229759494274689229898348838248799753719421891840711578456157169186937185558367872757640683161888255685076161340856824141834288444813520118499248992475957627538334567457632118765630785495117067785210174659023670396051770285510847921172586481898161890250607325559442419877130562953705603516581548705671737293614079264528443806464629313592788023298103511785837759139225028884675228448631706322547422506309098900477986359473801622690838833702638791015264499193922261053418483495968043195614934129772681614586355414760480126882969395548619065932690693061166833005574596129751997297655913279275667523027454782742268142279885480117373020756097108596893363755009000326592792941291933354184918154152428336780092253602417715037763800974024207154176372598005752255618314000985746008381041049925026581779063719053615745138620452664864737928365929898248019942964100969505469487174691168874572541144890943740717793450076295878753374518047826014326272968005513382259765531154022163616525592693025791298778529545957181943564380058707765745775764339603241944792595579665273685030499697804785410776524506988936558454233127418243203040456285215019593019186085228342006086031830977015287471650956474818728804963256663896711982340662050938054199432836855118833271403453348832983505022272856562178312834028630253530776987634995932425700736488451316032801957169936637803476646692802598237447160536356705845964279170719286760049991735038549579975774959305831941264255365297064959863721090242546868640611073684228516361367376321572567588530030290814408859636882580051354400167157806229874017714566958022082894792915516488968507933541559745322826297566258528669685298478002739816088847638721136470761915688204638162397765784389163289868274755531554782672626759897556113507002247503948772060122948465869195140196707449266543818002344238311383023937464604903743053762298635636119377643941700777586226443348097909951635497863031930781836773320885188800149653919367804053138677349513985846889945025958563910877349374161684603887126325814609977408775195069461675146877119001953351745003435406047662040922460626263562660277165484165082556041287766717914556904223455779337372737382272357004317866088092949423176429712187590297039671199293557230220590850371220059458815657456230650819302490399385508968115127117836951429456151367444149318070203848663419352171066841626600225429510019779806841516487089546100711635150735634478298331084439341927490079053967188187074506888415712303690986465997070420051630022193244317781896328945924766764569695331119602292272815140117087787688057435648299402669232580312763494748839020329160815458427363596117337217113187607545324565890804174355202424757980940740531957314909404144196253251054378680930927438575244299985706364074933412295693258847720614009856624310602896705355924666037984673935934852234957935614564073782932639297999313436811152930384698722027100680623468004759508397474292415029905499588595872972821342783923480599290823666944785077036637328144866617614001481952272751041495423315628328685849729196666038146950537718596788110314392575443269035857375894706990980894622215680182819649309446713433829344652428858496119847341556729681947279321884785369623499435351239447248991805708298743247987505112511641107501212013270146603813827639755609321702971383894270028419855304443765080862974210490772195771705984812061488013109440296480016841047837966999446176328906445824162365463314386586621926350370978848018757854732945498555475172651607082355951664436248033219861855483554876331331709196792974999521835483238769514003262018762862590323398807922141159810585229611952133542270819339437422813653635945607510856670485507012314453315960735911560140879014346923800188927493481596020025151716176197845318064510586045556350100226980738666529934040339750554986284172509531711775773326046522432727934998544187974836185934709439047769542944094489337424436103654893510643833501374111342393474770132894109317391941808903156013334547269606693912413902219092482983921108249535013763230869532042427867827025737812865052333854537593607431770696647639288208379032760279184011453012952362741916118727780918486197414193315998614960970118296944369618275124439651774908522955563459633433590882307854364714978115518138962219403540083419768193581764143288147422566537077504737351708102955425591995997924616768813045924361280815138450740962627538282504069227118599258227223453271008413823475779075253076538665216531831353179505586232562675485148473907572021107688548627623994585267965631893418218922075167405905123828413754688649313331106261071113475954341253862508409098860486810988122986703352678313126841253997899113318891144020427694159363985521883006817677016633159080149739638721050480652314222283513130967245377690414848992353384728870913568776128515413782189084090523974570774254776322203629766278750177653649814652312495388440698489834200349156404408297239349769334098937846374387767155059107748973706245541055657362840711894288435852040355597670628011488380636883354923138935204229708881876001634779009324621082010182895045340723116996196272693641960303689187787745290997922754339597255060781675562321877448605579137618596473846886051629815775361221019805186312890537804616870148785762663742330685667400008851108222455184076192326247710139010546290858534032578789756677137634610990658037477582786904901933458250434872188513007878363770540859646249419505858479589798560224440362954529167453369622505859869814597790795744064463325354061826274014732780234197578146150749492137603310316966082192259149040808925218083994758221715086071016041165710551656380196567647805256998358675486294837489618916260639185824055559994318819505527368321476354161385729411007318263297733523820193154674224842917181958171745598072107610741366619402857281449824050249593258081048332397397600361766533697183139305239794907729223015051992286056040412631240879429857042604537438769820344844617572143347620532777704857702075226159132991773071662893803418301027006818843444704409550589247105883148011065287509479949595845267317563741287155197841580847462923716946258601907999462616219082369162048293769909739154076406867332482464307487156344766382198114014652954097502832362548653683850900851471668829106100518483125583506335477944687068101040994832550772426740904662756909488635884263389012291447298223095021288938049025331792798290856761619998605267077734630150329281340600813426891450355655324049771860559648707815092233378961671739669939423342428461165359136739591759447334265279261828637079236405824568336689713965636905048774097049674072183653451640485994282905626027492494795739182119208641269843223225799524527854530416688870833780230368615758541747043627196236125995250119640857640691064106528849778550482140234296464916922371549773956066274584296918067515547296535874299841682996496433342581383880793763316007267664766552820785822804206236628766865071962464457990342973493363357013347218777000774334637209692860641688765533764822972319379815702241141827352810182692904343667381079391640913469425454848191298779984247800845464180378873447341057884779274923008234064382899426456244555095757307944600634745882546722168219273867084295593180829486496111888848819603490616433925790162226144503472227311988858088479591713811188707213206635985100784570483653444045918565965855782451920591899423475272422923724474739690441264404855183111565499116773105846487828650576237683281971555961811558067140982956488290371527136873097322465336627603244861370875422185370393580014320523739156355058449059281428621474068156678966145074644083931793554345663163494326551879268499008817983848995592003674519793599278338818007718148866187229478367562437549050198727552515984460199619177204916710948181865673445232108426452057887267043220400591226041428485404067851918800030275346718479517826254777714881182061455711306577015753249718345888546225195929301446385430141938684343625734129592568974742359154028265494473619183269621035157774451324245587602554534323429484693075581700386965516842568320372925803543572600744519853461488888443903157499965246768361210970449025592349026065546801615474183755303198059333015389519691719706235104940109336746314960782760115997739356567369702874309329443631193256720651802346784596111478283020489742645584440695032041411111192283320538712501553487976789145968993276655461974099395293705987540625446057026759330129278911872902643930889844965599841290633200338486392698071147900378569189788245063699266247716503732755059193907704319585913213692957428897899486785511476116552391419372646766238915210506127072078185056533758330438034871180214706796203772456224060050112630171954408030580994102567132281595201967323203034669824661927158680474546405537038009266783793279893773313784640751088413595515244196118572752847639143550244217152680191959783161978496332474898998799512198346886699344036881307576792710554434546739695406680978760304905606262768718150527071365312478101304604936248477646604695425777233869428617039165479691747770417941259215252569628971812275534200325603490166996147997488421578386054612054301188922193753832356804007839226219105262219724658492469405081069717715326382697526111058863239886783627350930151158713706666579947718586244175841770315070991648800272137313891050459491605449820473279963389369426500593584710026447607722806395617501515884734938383548209127965265450311414394241169903648716027347241275535722522675743634621111046016271942453464886636478997583316338715715911527917181836695625192869336055148841256817433734747663900896903084701366784213040127136589001108896425549963693052026044970360365533250264513744867777702260741714149721032188335830280071444870300488824170097687047689614887998822855309560409290014823660149957876748350070052636163854920497865476134013427570324262919274191799738441985994161975012007130837739000771079559995033129443066536261653938347850811958823589538380830080135678334776658380647797807156146936147009739396364673739896808127920185216965351794908944452871122790173642496724226300157063617716256641114298994143511616229934610364796029989698395103226689281008823310234865674181631688424767438063117326914614957307433956911336242642181903471225243205370601407107405793351578634440484196477861832011494903142334113239722540624040650658133885679876432123075160832328983132843565181036656751379923444465352080524388522835263389954266592259665812016087365869860226000980996411056237974212911730963541969574800826280022816950938928342209106350065203277062830981005680487315255593075107481424939292730090254429455935062824606760688181636247874113618236438426532982447347745208998132675476807214354216153859709296677607187229140864705406234916598654868850905175316417831450080512170909998420065709611717780046932546695149870600864810539053237203239494443956527045242067146590353055823604188724865135119698164522917174001335756648746041680066058378297796513117593972371981143612109407304360449101715786474851363120679413443586461406192000612731802462012034531636972314792051064607642134208799829628780685958718086571597327690429453286454406083913999525469311494216090082125246821033527756909592621085236422230710872518561587939880308413903155826163743181975175463981279899620759444735753057960113530767790521935170986850423433226398230692453677197381723728413425820075712264784932035897760095022011229666000669667841135889611615517184563927365400121323216178709297268350853850343321066786945405556505273648324672215620223645555360833535944656080846953303981277939572072119385582908602483974744726822731672519969365580424879403351664162739607044312716817956178458181007748280878651990551088741311330893031670217845739376854040497402678163350479969098092615153479465748757111412148221970676282366049144373544127616375989417593794178068857244782252167124738059163062640003649303012251515992786768634106456979094889068715739160287911351760065031138095589011755098394035946740937701272843460358907990555065598852767993163219873396553721325705040241036158256060570934751161245217910531079849096287209350839965832314284239735910434004783163522998396914811924023658268508266257783946246588461465612608249344664549914782118590693885603000084639751617552758658613825249779943670519097796251534542790834194476724952502917710316117492216835856254799984332357927103331208092100382693732927532931610466004321518610631369893004740371527912696338027932127764030203398534339710327509567770805536900845856950056066801786318411348614744838913097055019470721379279117787965949410216696619855112546173169081162367229783362505341351497507976239703917305965284992146725983077936048311245205599453648840349324219478125988838813945124465582161401522403425947912309788803511917007788563979460763870396569164595199152837178502024144880313102304116618202086855074012362713502209828491362939970333566442462799629865605058871675667947636667470713407487046785924810298084800686012879293181179310789750513443650802005961388953451938410824480590849893864010592784593767244685495457117119933948058517349285561379414518960997039881833699858256351776182967842347788853997753403889205001630614726673206763425053342825643879548260557783193479015048828378854497948744794754473174867192721937335364058840111493142196541097903587055959242598433229674093793762048310732400669657617098104222104823926932458115183664161832574814315852402866987395546993008728906383199190768723882256768961212343615254514052527300351377922990895272996332114668163042108540309895498370724198192372106134416272190460674719192623943006467354567488014939303624804185344482943632737377267858476470300698712127944771811477629941740397437683704202618843141196909681892836537522706097470894692460789179192887160311378979924348667263202652800711872877431974406376637645076289213389615227066930454015164625330194271288153463983209257307226606220107183562175679008863733063572526687242835689845927551996526572560582048641705743614205602634203174922145923966057386605625480144435820699806540295324516462693150294844724043059730159711711076353222593047169060562083254996750781188366742371284164138177492611620675048297621780380477664843066658036627143292966098981087543761888881345953225125560586264813850658501737406457436372438869069780054241071481192255595218129073402875054320624181200759231798466595593745803445087747757626155468642957053205647532567926648170602614722316757724292023962482876577266970932975103997029581750128027784297363873112729809570033438488412247134814736124125757535106637237450728600066689636564479975497426010531927520104092127587635010903594039672141230396511725945585463691605436862119476831532594571923121492247445711340470100015191049745794960369381587276508087699505948758944527954632465599516654065900813805173349657755117408697101132490963537780066331584486624017996754687412543450815699659764651734596767678312950482714809165949565522493637226597709342648016472447102621575908046570148795492234602317134691868175985648700688768992356802660966735625755194148304670179401987084976104881738261107381107557189285888002656389558960583552624993700400799822660264500337593583503539172887050583400755595464178901282774167684804009206725477149882548494024528682309461109240827006479549016983065447613722652574415090945542719273968231553590586409281651935192383958297041449744251435256069947098165644293802595027126101325421501509431420072383133889698364674754974363337017502688679682037145634699976088823851090567435936818084031131036115442591170345468862559723326365499436124708598229998565632209236454733165651266800132804799800961592626392937959422971541997887665617646869160198405680968562779568842605010786591717759748949762206044964072804732040426685922068888896938264940156486969586022091304268121416684804205089710755390644770340273362755537342495235680937798452982710291439478564214104875645381365002562216794901883892378807383745258227111411485116045265981068593195625523700886587147754337346643279660917130796671230710244106996411135749545850751773126533852312379151998445375641445310021441508014167987766094815108669195172153134079156041278066992624037665255685427718511225011878302578381070923472623127711777686145299583754537835468752010763195549417705080286609447535488707684026557733395969679170738918053605189455411230092788207122165749477925002909224434651412742615664549974250326439645576527444299696554466796832147088263422081953589323489208001742712715176689297039690585639398366929102007912353618400654865048525400320016767399086434366403488950011540714921603704720979549923590045676868376839053614121473775327826240370847464936540236220233755390607920976573375865175682785537316747844496395101338111463789425947928207648396941857340707068414205327153491247812914393434216614885645954274645883748023521960161727627344702529279996273263563549388673313865419228080254504953395883525365494212427924637843647267309634335426075125412263579979117525770351704218894528795073056243561640520136492984402683942277498196469765661098162727224522524748036800168775019311902539633857191536015522785415838660444182800068605350125115830870434305448600116717086736213308647160200841503700568501676470470315597701647457491594296495259091861398842604511026598861662281732621616523128448419440207980766987612837305268782939388261182439187094492165084368300283709180898295824360674428395507468623697237345245866859595400925087243344216330114108838465768416595195753245906990854553080428556902994734249056179348640660629030783197610711005166985293693781886998851611327824214119237347909495573388460478896687824952916288024242803143820162900317210923176138833413630016700808295632922185028294124518058796999640050345295880035854602407000421249835709943951737342751023745242909753863289941140642554412198119973644856055100961747962157659071203535702949529805078678910819269343691028767474516168081221245091194643730460333233428808675757064388673905344902568317717306462851673583725972844560950093090531382660022777044443146430887047501178299053765862637406372823531709812913888931742329764713112491363888394541951088767040972832175215103544416346909192840623660590781654980850158583277992789612027551441958502488381333726102065049982058960466849679578025130527969929379904438443951124230599081178707208090409078252175386080079081656629330738956249143388767018543411703183410418340421586132563437201305925794805341891524141403701748063184491860570433867385915848504074126283592708373405053703012884230800805497087842112115956613409321140708357890617030154081227636690007429615029329653344885637345820242002775288275825698758211855598373495468971228923231093517572223510459879834334369243728233535644160874302837239620668805075076293634057184492499200566107394783452637101255732326636731443841147719559802893160392995833009767181693346687690971161663031870185696945010156094458969738813903121810395123886065670030896192184607485581391384353023578543623135463183485699527475176799990280879897214193994225321151582976968416208339207797089725797913630254241287839743968785437848689735828029694865013899555888072221842169382859191444273883284418236963908923561436145801148688001166186826860027214064123745506128941144453539850000442477137839244346875073279701489406910281861017543510439291293412782605151671883816955941764148883876592163815973302711099784356323510336906577565625998636705866494965080319472448124294652514914084626221273674161109542466203449758378081332258449516342551676465927043763553461799031668315108310876339820913946607109054173214115443998493181736339208365527423311218175904526421466905295203194554050225711319510362377194349372911405762012629645016772142037363902719615498073920930068074028331507077079133524170205180998094300662976502058278342814269246791104234685036525669331561370411201032237076205619142648528763196279073927226198639132026973620575648668819085579780576871566883014774726267324697109227425802339891605398989962895245702516099086872495526268546780577431797109267564504046991657939630357823896499743520757353584169693601447142403066169388737622311941511188655431122029573488499618193437022098142065654832326012555203038312840830666312295929042069411067653116595559439501107729736595834304823308896400231054719335408576638283016318444445512909971704620779610684167570107588251340676661550570925917778280271348408994224285391215778352430663171371566843976807936813017896012543441346375403127347967118168907584066166884843140148160226158185226894498866738261394711186370955303253111051418391914008443507651260979931225150586690868818121593772882072538193586486683478594866488416841804751055555786247580416431524059672191771714489197772625837719158910258952813283116480860365730303869649765020918785262845582180572528970062290493764813233886975213699106860429042452777855386844668366385927662927595001722539824320083794475789637330718509939635525817566266548791021014227255399852784860993671278462441080975714164130301075022606488417703096768257700198134728891247693743004786283784033124547907696959753501129747186218438156282225302168425048721335231795179151359878623818636498393114070881437720925362659455541717670024410449295786221699907083741931441483541787737389597682849676908784795550266413791564586345644782099877296323882812874982590872432917446707052073057563085879693645596244284586372049147201627853058471371965057267778968224179089443099426581521764791221924716628380969599136440533472761713385463929640290015947079640190692073368584052949452435571911595394747618492247699146631212039321187726795806503594028121915727708318695789920474093293328145519218691496271389153476553851252554313020963439840223518352378335692467750175027887606748363137297699260269240257329601790714132466982280728529950373322006752416926779565148396921336361911303599907398952536844480087394598369817017952700924471011975929575760295895622534984388118081895948727656101937731562070754465824793582685511395940821736654760053033529012203832824271753958504015125348802051605607304188692889117430405257711313717421694668633197881020711565062579649420488025778961784795632078101809254443697676713194181722912337668410150616384898736385113993174866407230329078625172714561245337506804849836127356734957852851653062014945271042107266606589791206216726041667505700560654332066378311417132823323551583337981482725915622708492586147109588607813140263668019807267912656725589799816175751714811520779066464753164317066678122004647545737080062270869211003415443943834312901508635218188619416968942077547776322380466283288598243707499008381816519974964763089588046802683048743762042901717435834734071270716784837091625319357152977505962379777084787476823269360441439116721511429767148713494598315935219211894666567501707964639494488098758195671654805386777894438537062560141701598825175166605212966402530711651833079971536662188495045857238857040667699923850197353866151664616315311604648779347789280281354163768486130218136281736723893954832798987648471316578211154635421742769077708440405082156621341546571499770450194362597691659707963685070697089022656303286624858472145874628412320242996529988563540733365206586633371839892261991129120340814513838720893944149491514876023822552657061846614000997060052474428441808649447218556009173898495697351102884218986052275120723458527303648296874728551228948301576195503819887013244676854630771916285205901767598978455115687806752906972574721271591863638164835427765272028516147361747274708092053517441934828712157368949533226885916838004568900226238593009040379906732215777224151780986057023656436764073424806803076339190895549834646814281312937407844262939883129855043693082937846251134736857142605546568791823745775918604304550975913172944750180648683684180346469384825021510236204961953936401626815111673616049769844963532781855492863335418409704331106183271555407500974344577079146105557541232335955214690698776381661348086089279415055400570905200418540225184831674154397501706752969484604574136894174764966676997835670971087483466781512255414221641185625663931536350085895202126766130622554347305123454290064566013432127699260950691767943826877035704807882431006589885437431811384477336623241313190363565142485527496042507786472039400408138547808829382292434517107509779058179489223435103947589494603837077834124241232748482184883820434884362351749013694256287191315280247761465812853802461809663423205602325311309046097425980760477071071597074132301211138049961663230652897876640998188854259205813867394741441054569942098470973161346249826108036544019217864157065029751933651756451440268068610741311214959121482948241428696160109876219410105608655607981969733849504638043454959614526681644582285804809215885648996624049313011467890817899521528303811305275304456605777455042734723089851375714465768831059489053151914603117071512146823292005715837401227788197190331365772195275798608508789743864905041848256937763367090156788363257741056388279646709270809724415553667960382634231370272560927907524287589272110653270443847141975519990596763940341123187784450383129749658350745008295876811963317930654838851314746220929059432543748819966009324258642729962980210421766006803930795160500621834490660620691390243126619772509603919076696719228753673540037594568458415545060550854220862316038815657167884693398441539435945424727027941772305468646570291805625500061220718522929736792666304624604941710667673919425498690781430439658213343356744593463020483845610983831540515940697253461715219146071136323439581239253982944328990441615616987733853259231896504338743904451479213960342560438808808581955023339925814748774664689828472315657403008662107074313160836434172434565600063550226689220436503519148032128410086569591918351022342728880227194138015749614042882378786617959806680880740325371002179879886606150456600232582374826745041134036006032943652183132258933331070506794196750715437425840793561429986310775691930258711379076262254098426704054477545220147705405483924793681958807451822413475397929114348783673286343933540425075803368859095910242903010523682811306404543525582391712861285216203170953684623746652379740377306394677594232544679484456879300099443586002971908291687820415197914138516580699026855744550828259001754815411680810450359624839926803387697283233348426514157907510056806416078635910062188796888414897493963290483297567292476218543238648373334939670145301404245606308028068742442951613040529801141629761765862790350116893557338786597801800553287505967066165154030068117373507089025959011873596867058293420397640746525820143177025143353056568924097334267082216304444757145447340326851768531427645531640125843571121842634886509470420435119830721301897021631251451393417013471167312878837375015283883876669977515430982769577240577969948281508203322056290440643633607482099007500957912472932351118186088765028314701550432738801008361220485630519973501689448558921943158495947680008094233139229192770846434053637145742085389780709742862315169701726445829950874889582443493696802208035555994831467232757216889818784149526996911704185050902968614593292754497774948209912746214310350180811493797118984030206991038163290925754340509665147569851175040860908326903619176618696217925715259808436324984229457147653900465088689105262022605244798364341599932904705368039338279133492856204313719249052879388250211753878221327287072231255014046937575207524284730831708055377541197110183601460762703056271908312513864675951319755280057704498308217843912090850233803639932474890349939246294608286292572460968143334732163589258465686235167366716084909392563764478040932703703573229707581146936796185154069215129339943939287480038256761117027750467089341606758471335813084727698861337933883734412304250526816657213166570963616507971280315488558660491378912826696667770117931419476036367101009285801276956883086326895488272045684036349293169935985093346173987922703535781908462516731578484398577619892147519393613209158579979947964141632187999012627464876844482270589125908519491883024894405798895374825631013274312440855358742612878481535595682768887741823371117457398170972566066868766830598592781365417164537946635358234789272733149411241190530354092001042739707314868995113672380277284511246250629864124393413248617797166008214374063129457146154676051185548053974674999127134696095414964992903275968854963250665812414896542212819681681727230856979812373924380311690497623170525336810221009163817749244766374515636193920945660223758143933161474461910744878840869007455908911061123251644202405780759169351765847206734188830878093835242553317909013681438868053155551633798634395885070996930636017850864714964764183357311388785525475616166837444746647082339763513981200326389055017628850405493611033309419135200034591799841380589979125072464128680249256281237135768589390167567420638910083999188025469594775221308378355507743750913057679592819267058315651499039394259336902183962891141304893614869122919968827685651436811102049175206385813973088695332468903585909728865627974410216780438646849919875076830912050192435550708176429898908512275739256324952812100138613630888631665886156081330510469916811030574788088219545799423129909558422463534240100659981050911254944150270638517957962449586927694802156249633085892389754086137055317610402360961936282058606828950331420298338019886259525394514269115325820430332343214483840730404167824312886898301736896060931919284189754895521564337485429381237353403513529276087777930605840287669613732587408727786955447072691031108427718567874368154349005149424868860754757658415172365220811208287143002654306864986876346439721953021458737630029413243433416658023660609539339309398498251473051296596839679895879998707049836815441070954003310735513477375438914579403933140346859243107028960804185670001655278796838927387426804310059246414308878473520418440766728796711668022784296144232431362770248939920225074587815866707830412376956357169259775420557281362244347830351038306497388432939314471767442811518935167487202144346552497927326083534284178179060505929498274162923913857662431996627138961292419839968114245340315947308012214979754352381261111209861017761136912409227133335752341804904471345318632937114835944722248092467718547642953459843626049334823380208062474305047011413158588549349916751964963099510044078023811428855927951408975700884514703902712425490542538297868403719846463451544945724237999727669121512312903982841717408899355725543114651840146690359033947704297779011128416902175510762519776308418475671340905655694447470957806015970337465974462425625698074653899249684432137188952164387686373272811473123611661793663612632800524426763225818422851269199014784464880638396250272095563640548622038815476529824850615538719645516349437264213409064046066602532040446572253036185895853690264089433686950954171392966427960490578121412271892400261742049545660264152335305952879759729961250737074318787206792173306205867477097382569332050324646989120326620516487162475861204725726812351441710368802931641471624237978033959669407828484685622163376445918019708244426709689446614376233576777650940076280473729290603934513810421288267282402985187040758665482362659554715924903907946259478388816903071541739274864397146638362049352925297180915210874882070798801463795247849324285319595878420481207099912679497055310556190851900070908225622868020181145101652486412680340288225832581892256179146173338643211686297951868329132826927941102170100568285858945481109371159361632268351903762885175402705124136087409619643051774943659778614387795256524766518684493951224255917601560801267000028742391431962804764614677589484304743057839861555963742226276200379302761085898808291191574107045947747402638730233403157935517123732321200487431982426608288902157711976134102420175418654649746539995815494096838741161570339661241594212023897783472487388111749192166396817460869658363152623725665087217325953581471646101345862712593298944959416514068194905942592962330076127095428887768342105873134695283118443197138965943385572742068287747141232397893738478889028320415456661808397647567297230560574962940720789820393380616091769580372543253997453002952911281347228478706686829639234663197232085016808087993690019568852567070128186908365680370138699866805504715631675077606248514882264180253095707250358075850932214590347543298869614574499841175665277315089982456416492147303468455279742838305197032150377959758013566174464958573041353499651625600361335705643448390788700275651728190152158801468496605409610919866957720279146426560396034523486339429895730584977370603412412854790540925876386807852885890533883890763652345618221375269132409180072452096563510157469841306728826601795522460014738726608711628743418396175441730294278907061699390656552301101295433886269659589882493999830288025309210946940543334012537568971786619356056370464396479204558618865003511177350528093625858545785710102276990600526297327031125975249725652183599896974176126966710862151876022658988929991757308260901604463733778417427286525454911353069199617873975992218127559594968919725321128429114742509168054025614854768538017885234341342997810946537355563091202054237986944224346623975632047473950764386062941164552483567138572729359772704756170400437270022754762186948447349955727579197772887372284217377152102658897307254044706802741079037167132743125100325992526839737716436646331738573115933339132022099509498538072810111034620158556929367831049550268608284966798543780566670858493385806268462287583606494378205706837409687244601950783915526990382494895841689418660004150079661456014530329641193520524948573523672563683992335387414509980875711906068740742583012280157695018139917462863317132447014788820705514794712541012980945162980525777293310970562895215616279877560476649823565091297554988884334110196321108103063897146388401791608369555658043274876241734045201048735401472966308783886571031343415873919684626830084537474414869726825565645127838224405953928708231049183628212829056520880447289801109327774300547185306275201602182028608973849869728523695706703553928221760910978137831007696773331600925135550058729946955414496768376050604217923063559045826270964958183316338977147590537032355288292364795241623629154025687619465956174737306513055851322909221603480538723510603112878869112253372009381302743111107518844379763522663651027998646061612645710940754009061319459634153839983452266081545976084931108236872823205517411546368490485433809203465985593456945479375560657784961845009078365771645197576586273508195538672977315124874162474807824414441473218779178103359089921093179169612364897312900526490804381453945622406996456704174642121988511874883764777547378468189534477892857030869658616212733057275753133331085448057318715877077592027319701053156182758720193156885905849761330230704323559893033062785521707677615372028518713347746861107901863337002674964429774774637278132225162436365394601249430971500242207677361375427169232603909863728689008465685090002837867745250362575062124716592961517897128291462060247187368909386465090429823204305339923351139891880812375435316380432363577434039537046375462377907256597234135289553455281510529475249783756663494966914112070508696027120196312929647183252517601936010424680378325195226770547496224576660584191508620536399959969754618541158785331027996453372984461616218979202017600287792057481418349807004139854012050971833328636564810329177220521498802102950518487259568024290739270081725970202599982298049736056078540296836231634952687975546758666179058140632199974302870380921323272849686736909170413209807179280384053272902507772030438193787997357786618536496023105615858973030721574202187190586201488856253261024650104300537955577841671143555858414128339317912246371033508276014484920357001925541195560640558655095295769265287988595243155437904853438091134546490047665027464520861553061903874722854268758157031735449569011524960345681741430334563489901407268020182485229651776318486035505270993560315016300586827651842443079659578984132831430494050128888284387320162550655754476605394948064210751331316619899165024643310755554262370293645031954195133475651000709009677059543810054832288026511724289946954986085613902004565903676965215403304875465249483131752654173068559306906181757130335594404640308303389395667242490290681035799554697135995411647785578329138520448349406784882450648459475013995110987364744509301357609740793746152233682941931361179555496765080720902780442960434332465156337941149348600989964763629779060392252945103708577099721387529650351979713354930075800859661270954249338200231104788406250613423516226069520353300957940100702437374798311512077063391202444184100402018260629876621739458879751593077896215398645403971948779526344147974644833416390539092785090350436816162628033501105471811902908379682301719302398964316918411823293115001497923670833286036145087732009026245403720190643750869128502482851684666674827252895500253715108829660527131247178207979285400215487852708194280622121820781878083049964500758329619920889034985030561363262434562486525448051686911508453979150341440677221558519059566439674840546739953845335785169216081820975318755521035002490980756737564856747774573149483308279651844180573955609603898985584223541178022918054756808730558946020805190755282985940013851818549207959061423994825673481108009164346450714538683467328607200188777246374234910969941004786552224212021414948438659068184116430874600620108032590501142257906251647854188502367247809101134306761281613061331676838648627708773143693851344766761808888060589304840989839518842237232637805304294476280336379445265418315623655568128408398106825562640886420491876579572225447340881802912662139632942743553990429982693779970458284623885887526031679885719951503453819961157105067223408951843012206262247040636224256588550698634662739387463977221596357959167977655820608237641416553605983872842544448635471023315365864288137751750594707089049249601460956916413437981367461638806549986546296137394039773541832695322255824367497376941098271354372025321739401143633117327132884714422083396501871464569394988884062001541785314182996351578199821581652048684011911666485788272849117638391640535841365095097122039697721124806948611347346350108977958121500186292068405366176850043297311889428001788057763645010061905614934993346089255095376168851697266557344316022764325452867081154264418069516968907492841225389831778642725961007132406660804206330304606274037892806768979183863326649438626537715952544408646472780753440406001263763311738472568286207602376814960636896137052238772714023855790722753146855159946465975540923560967233190651814781327084043455970401051939479677046903310468053379355360721328097206862180752617625133563461791436185613215678546506814452359906803952702237464205704084099501859830326419882178262200524141315238324771849135088515693978093265596927099635125400594632908082174854043776459160949969946036243969948471661819124552840420955920969827777855041262732714750394495154125940028253338641760001702767354024684610126214755691918268774768685575917559160108294840598407339481183977634207602464634575943469869906472246071141518476204232466066609329381953448809293869484648376646600907890456209376328973544074215307734707732975848939244048094847621764061162818304992650217815467996902862318343481923038254828057553044699322418114991606662472536826480777623306707106207167993428049457846804182006553159845017869742441161765745084145550365785248485756729313592739278756381278088282062630262854846510776479609420954700399638526924792971797443263472425676634327776273875915115751478498069043042605736777275630425468477133352087378871648103006211147327453816108121765183182900238558106127537307125624570634689130784876258589422107575720718065695919580747804318014303495090429527037422570065810493127099906101770198698355764465565083201393452891187281647819263290563326133227247289519942585419619136477456687967150027455487126279607914306587455356801327739347979444604683591417452231592612054975518487821181537573934734687903395861242760070221057701151125268477342694223389627075310089243852218620834491976424238816532908694056997685067966596607638480580053410860681172184237169450992290332620280686993230046969439495012334558533390912249771867362235040125491233942359930435501973521491160100445110902286695539051751349319362947588366529675111429113528793137565843587958889399198831145373371106483715122968626835893104847731896994273799729452508972586080587493335799027929338029051500207701504404606673196922381841089706471781649565879324190890625950265761039165949115010764422080431890459965755173307956856909340544689337531780456924678316088073245602805730722801497484244436187456121188115453360408821587206261505102494439383938495185736013126937045157328823656349485320600884777210597781783221036939315220075396435294541601357653877255171975005253637943312887334471245352665847682396668035770096952426446738761796536936077153657550776180400742023179959845573106181719163528719007551685183104228477644550081760627942887522122412790872066020740389126743324766521534764638041338412482402368050273526008865053733517800397691793587065561360605665617575956020116101505921875046921879911693492702133277888706498523211103079550710052543091005237036781152491557179095355174916762353007893835171656678204014694412296415413726380561237952268576949052631241818740060880048385219882969595702475795536369583210459898182745022910978054344652115816541841692912677163040538824845091823165083778214717466592298227542967001959211696473587920498948346279528740219855852080008821949355892412281130301839153831888630266190542448455338473758695898878305142607771134640757363103529937235197949861685883550548944074399783269152191096631311132003999437752419700280219671391461443359454101337758987821636414994042868671002681160381729565441477500500635092189510521541415463472739250473484974113481802040216452520080219690346626765899163005500111667695364592318355200207196256702854475261344609684211141906753538264988948943984310373799869023945927185844017327098052519066104154975784666334012963945790848041459194327245382863061111480124981082541662912881968707267969175963296747137996503305538721541056995508329679361886401728955902497303236719437825054109113561702931313817983369728473592552827570911531810962303314040801501039440193552453473082049781240746102996696121927700118012943642057053336927622518873335216768675267568735596025947647258953366889059589097795673133127286988096036287025940176774007809985309288613714913494870778924500049462023441359581649161871997452585537303209821117907385545417812198820626452822367003286054940336560597443692414993365787790802434807831592231158720720686512390786609462939159304773419220274590513250707267477213754114613890701788270278998406858715058609303378853683972574965902049676762987902428312229167471862686557890477192094954351338706483567008974015311777103478012826017596486338820413366965117932048145441100710833757785923380019352926869762772233606622462484313493873727891423195539790786372333708924498455487179964317174410910867060233921348285198662616796063498942283510008231442863229663085526212441774748254487420866062114457634572412110488514408410372729402559380814285194429107484132148219577849515745068533597480429712784301133837504969623046060884545016989903593208219266889147969159558621801522622363676839002127281647442591988474916756509274184353399046403492423045357161222872639295303183544085460590211607800868157548625316527687285896553280800257740236943049408447971894683138002446052027048110100312149516355088251181372156774098491369557212108889464946388256409396887663700961844845980760984884563364648629071503124985567228946576194412671357985896363596030043688515612535355398499074480435404000504156061279585521500492599299880908330285239486803516879747342347348022387900584814410542308715598588667330378306602025676289009853475586255625021065386350299175606043353745801628348221448028284282459990265644077552412075667505123900758458581389118220230006610562267915162482752330370220159004500012420300534229586955569462637784313228396801492088923692784201906763043177657289328114401515781103229265335487643561393028422718779829502464520739517298721390058897029217804799885869767536916812820455157328525693448177210089125022290952267210283836393326932754942450322537355242605718566984097963028028548095700929102418986338452908137125231503621951726179027574268291551738466409978151465535058771668559513065076607464774005541210929867905947090362949800666349005764959284556450110887296654582595783227401010107931173500080650054789682334983717972734454049409398953359392619822735104652570947676766368577254307543962246203470821646102130266829505048572485273111044024705331697498767314518388818695410275484254854221152558245770742921755798207518841502186678368711748408226632470762561496742461145909024645561708322937819779583833088778895576171205449498408790450117641904354819353912299288330639676957557728445380841038475721919836565842153114020327754069405657935770259795384358583132403067737597837506678991125271345805966468424467882637149673134156043258578497658981601486091008096847651409246952906297212048844275867975831530719312944360173517517273674653290395164238658270866113454038132593406881381869531091392239346239922642561589140799442734604879257246868355942814185684388402912866758373565311098282292924089617946112235203766168065949677457522519533379332130857201744546902615253054242823284289273566524137815008269046249021408823583550266248542898349313296748745217674171509897616963009057631801205781924846401327525562764109250558967146206650545501376252099888899787195601268706600354442250038190603428611685912346157068766329303489099822804534374957052848186468589008457258152769570476624607035914552084750336725764867782516624668506987048045614732541010517587665825790050437261499506828808475243705615777691215292944772137658809139766401502614988440940666422452446186064747409379351457138137879078094530721284723565065675492364038087566799735102701953073804930573675041902045885697147274272198624139618629415444872129804043456032417835205728576798473563054721889907456462592116283668853184122913393492022016815236712116683226841161043042989128993182283639450881189263664646973450584458500157887980559875253570163819320593196297251005251151614461410418771610596248401485919284733358592992520094120980101348687055852973644412140173741140250706812905241151628802174142499008678612786423757876043311094719683595226608861760381814675243878888721530348997423919566532415830505809407985675617344382849025024905536192627085708208770943344060465646345931057917796364814708823295259027102831652992666864868740765244461140005376739838461653940036532738181272455147585963266156414310935466950223630244312051253980962990640120385473907081860402381671569375047253989297113893483915619025462160029906360348369525994383009468771828468926076199258022474154317867483194646750551829592561321447125470851617348201772365223039552967316716863632293263223337309874483264589087062241840502145157276637463863107100289975808539211689941568332932408027336870597222185001575042424979932402283438630828067495982757187775931174121711256840845093433183159746241304517697590281930914279162615237072249171499927583519019836032168440161425986048362660894126006309993026825697769383907412440747876778830371102074894880420596945653251366052893770186653320704287115178792825768536018891343339211611626629310282485790198226480604812889947122218481063261991252838308996946448470022013524322026443646175689466980106865246226673895778769821891888417763752156267169392787301843933969050009804112766673820191966398080585235706095382134097049558043081806423520999669816950488030335222507067375807150404532480689090994872003455345675254868597724525263970533688760781972311636675462012777040704124142643996828399749783507527387351923304751690092654521377511322697682954253273377757524991412367814841552734742149185519168487208837211418501959925044460679366656686828992530113791077140389590117035023961323033296641100768135072039554647618637723309167072988111380117491621793078190477067134454911868445064709292591805801729564491751841365242444486237114129248310532681045361979375233389257800156456167399701228777590660363612553727645753923774081943089124882161854187186321677549897137999467710330821120891717155309222280364307310273194016942261060759145093944707259938389252983475861610027388158047486227613172275703569644491498237407870642165401303479577465227801420223745333464762918454332104904589413673089277192244471062266613841510379958023577535268047193690220344590621087232688063171184961254396405159101363091697925933737399181173823728682903492242910221893575145607323262935073081851506201419369964943287233765313720337820469895211976563088838113425758641132972153698227652184679635226921401933233981200772883988497865304101273651343940358014063248220125698739190698938927133486234105200366697262490074489902761096327064508058894890739154382129231206735831480316848082797010193527737508914254801750783549826110116665079321703135359292322919822042101264185738765589625184710579030310448964336344215782459297386574026532388213035902664359632197573344872601812497627674948462030091120102053556658066947203004809138263277398691566750214641934878260715086871240288468737755993960706045117192126007569531217903241333272129583121116766215314995302713112782791298909495194876670243207312809649993155919604960316495544580321300736161778508863345902644784895402533172516566622399606611546903011371933783107921484238912299597998015547017991555390006083647650125563039337183412117778970594591875346734366194665195756212912696288467976269939580952759971616591211456828872850370435533202350540766519856332799922814802338035401676034234926017903927416851290715596115001283109448226488928799705699237563732375001564020015667339043876082476979644094974733880988893623290241955643968769531616165599142704550296132942401783328652609410896547391386798061117782815263627185685171981997598149337173749477301309395085498458456463729679186656415099147125807705496745109322994899713061974980043568580898077965488633166257528478774871607724288483007889136524990915275971310834573704455139080459648606088895042829451825358183670927678482113228305917812719138684017981693533156618674768637721846159143192596686204680517349775824229777022018354519077304318989818321507791690382427422951682010930074058259412105709133579934207661036093149681586351981744324815241648833065436630125568386270946931671034741294347636322834110164665240102683018170226014068738342673361631123687398242145619867135310863157444286823644322528455464388572888577727491587966632998626712810273882656952906034718172605084181977949081764399368868264078424862109094237421894571231841341743549263558197140983351215071803851008355912519160008767261601838704886462344169902386505855868997688820824675653683410148063791574784572252291802469602211588196795938166829251277939624453757903710417421224562817768793122624934384533537580101586889691560608935754101822679453536630734069273829685024917549021520085404497664092007064003881715774137546274906319239694862928131526060206518577986534969702640787943422351654306981498514880354619221190266189180083738694700054587610606242663027868353627814259385748444002481546224221895380475636848417486218762457744328867504466138683673440173315666860860678887847198111283755845322117573405115368563043547071459531785515532388051435574309884860759546880312701675760976463534620071425919046970165133631452210375990041765780645771966869776074732764975282199537996172250288508380149334410692153682923839261665819213580779991645052051806467833414348186152003986688235695327882268106743283664571523266080735559692509886037252753398085025471556938454865214529216202895715195454973634753890754351300340977685999850020525230928388932821980227788237332535501038204937697658038279667920715185627634215853211105845090699077929427313448200985433025673140158236337187657352204550927161264136985381132247537879609448777680237476763983312610583084367399980015652750322670264307493949477548031906152213226247877008702529933413290663238473818994491859005191488696054088896083604598395291478233910517112036870205957723019213585078281460391996728492412082312977405556363454260398878341966431836353779284957888634283994123220276203291052840300170908990359813630190177488059518363851077187816280424105134002604253570465626627661319473707057152758360110919663680242106490383945166350044706590219820684696707179951307538726144347393539275066722351205080483854300814515938831844650663950392022196490561667072445682399196008975999872106086257500427858612695070076033259794652339815080283184070040999404935032013246455826244705253852370381192808536448525128884938026547793213714124576841060268562168926889922150379917091174081849065344960667419586764537388140866284128700145422003828103794345453272529824191897664526710572423017374157854594483034571245516347438512238480507000932736946527541130562172211649393288107505206690637496309768863830231082561380069002186915314046069116193274979114561857661053275321505804071920797750304781660920465603119243173005662784409209474676514970246468367682292062548630788415766986176427636842965207539125685807771105103611914678167776970692698363314541196178643469019947762575664429245445338153231188023443888834560554891722784382753874302969614996216122496550817070962269648785735988553199882891707260358184601619281489865904970305340160714742814091520997747530403555627161831553169747364642847049311316236605406234943734284908247179279090812755741407847408541746821337129071961962668920852247507867125327095334815280563342967005507445141906410473429984478104682956083459559887292112390060193438075711387821612836916644649263084599533009151679762562198347940433451544448480970265911874405168040184188194461926442985947069311356126769836501607551651287575613074713492194185550651636652091826118829036218660006640251581965705141634432335891153132006799748326600516796751009766593575665113847290299074841012801958400098074229219490006420052651450808024316576492611013271505454980670489317481841929402931306507910099631011344506826009819557426399746437777543581247371512572973424170797674670087508446705023294262930239081907927520052676247154120599164240574658494118589702957087076307191429356566718153956731584415386789849905544552625125464287011443596371124853702780563430322329603269915675890084482351867365910482330864685215294961932739634851830624458262155988196574520420040547588597065258464242978899535360223598155235514670595684423857021822869721285399234798294648713723376334296417376929503761103825263113677369592558417737555439543669978581196932299477792691758725186640514140051773125478741950013481313870851469494409555810397925626638550756026721892219068823265488758085534700707679229243010195173900885609858859106445065061499774982527257052996930027323712411066310249786390689816864944408562217326803134308019748947292113049133095433719496592251449585394983454958775834559684440560547929116762952205214671669311341507609837607671677288589790230361779534486729039861828015487828331902887776517350257591505798920567206319346786465420113892803026079606627118998741022481087370585270906396365324149966863933157954710280334389752655267415554211963937278639951562968243788564528977201579348012067723533470212205424835238217427793886889320118743833888596698883155669463051233671937924300475222665187546936419609774720810413417237914280513263375649207977094570773454090807901860350259926654979417820641728858143777669170036137314326447359978361312483888543161239427068542753177970021515691386352186930664144148237750011267663279648792840410774671441711682821613792147048985158403436943502708902531675045096486985800626436333905249833281172143985952279194237262434209695849164213117996441697563960702734165104782613871256947602323824613413320442850222831727027895439822099214219249367167068503007847438075307924986685635821098517747766852427799744621458879558537276526835175074026024557689594735776362200704062145224953821304610958434516102409052335224963767913798570212738053615572021797316526146159272282422017966001014448088409615550964240061466284231711011386298286266724488163048908908828223906945294511421381131800395106813780196651928353902420091823487693856283887681256690122843721618935123837787478408815598745088597274617435338408476259864757869582395480215454101436956866927212272031696850325260639369093650255510411651908675554652661964320838680993797769220853791919868450768423128494504175930773138418960543060424225793294037685431429106998046923730417364596619332600810605523730860254059053343588774078224866575775195700491088951401559587111880221233131407717202698051329762596360534407270636631857977961921437911743791098970684777997473422927378525238793805529888998371367617412533843010541929609018844112688444617433530202589807040034957555838974961774088553124763211931101262831184052407716889011020068105212074006881581538279470583386156570850903046612836116469220147305275067906320656037264491850419749387474940332985056356739811613360115160799256541895485208965052394136135436676423412982896956059414038826433763769649461435455639191160623673798028530967654656459839134686106741461142127390992824455067824663897443909619026326918036037403606788429737401372539347625063578061012271767319877179161059811339789367851882895457467980414604988223529660274305915081541413961228273599966179050961414867583546307782303206757362419956498811781344760230863713848307233991926641778397082452831947513536631380460139257232223174656702879262561429802125526592912411973115036421733684488733907397244674336362382538424189402464877466802858016211720841089498458279826358271035326561211946118132860636011945698939818128183426486300427645710738967675536686319020729953723327001361548837742038822916551676495011325162202825342188860308286435502399540510312366654457851862491863960647027920587389878880792089435165000220498306629820089304781310872619589595991692412752384678901806489532808090933170905510983249424051565159382872749072711050951998760337045648925590959959956640088157859638441029038635071383546037297880005335506701034360578338142009162391535518285938038520496608566559051613892927730761472152733715280722855409200736739551928155796474066132656119433085631751727659334169062928831217821729892410534919562671672810085762411258505352760432294930373946520082253446097704397083915091764660893601060351021819916913208136155102266614067382110510386210973752942604355068256625238152922411775823238949077038111051988984361678802415585606202329624114926322600977829389401968460195741373792785786712643760519307988019955071425498325906042620082107044933406789446801031427496806585144729127034627612106254616139506542418765035742373303490461598207867459446461435026553954274929932115044753676795280222411676547624434622797262326221851444511298057393602856305305789224946163908880572223030589379808651729698897125361711576375881178987310449729132231088119531974876659038779070361141867302037282880138286191475898677618565230478083532302155759470975981726014930023194273199114044889262312228156128077952059950307281857192906202461152261364493202773389094096153018002960155676724115492412045722437136078410882732764816013016747681708343088517125863320629965862294485366149519089644566780990824929681963609787460808902499026315904444447961854461896318738689601229369085871714458534333847511823092962116169171577860836889713896488581338181920745300754226522848203897401136035247115527952040649664921668300052598063963620144627806613764018433832562007599139388141879387719546172975775087602207049774978230468398007659436836639165938050984110141355885583465454893309527260114595717159171252110643726460641747779011283197418511014991921499571150035198018606034418425522631432982746214440507319840507307706887758914119313194595336770153560698429694202859504761057861856365230190129902193839412548956040678472839171550660233517259174993135783469211102591452039629867070819465953280179792721814571201736503790729188171789248678018844383383259473117482168080472359716547218392785196472290378248715744088091517043556949657990401813399682455476826301083759178280082694591504392144027063646761724356108838061040758920246729550836498886271207469850085027901474227248227091885152706192366058052832616232781320234192335009963004073351580972404250992381648467826907244544144165793180244432472349446376049676158724532696365291627135394499518403683862226711429244904334522614240716244005595370906482991154886324424769942769341734490144894623698687556200356544858164859667840556075244584228404136930795751182070634295878436599523840533717275216747908515293225066980335135469903887076220258913553222989854577056926554100281224702931105185320882595171623045498801315912743972824298854391452884355171022341384554688234270457895762451171793765718022860277284978583708535291006784657462455890292605686728965069779999966610815469112405591655568398346649094791769948256488946712845926697326309323207195065529610942484984686920131968416767638904292835919113890277507874605362701003437631740991082291415522817765257727116447622007732116550155900433121331720764229602188084571558416483901344856130168350609374867576002989269045227595876226655013127109553299565519082282561079410164408563741135917968794472472914639371029444259023957884853168756391206080366018839986009405275536401074771646039828260582446350216668482664850231486526093053248160963621131790328005495317901710676785938349514584368280170394337063849941660847021193546920036806366636707387178402560335418883688695321863830056057547218334427455695385304664126624133421108173899534824042284322118744977676751335742974029336284094232431179534352690479228804751390375610042948060278051500408168134835556618272544724736139603494778369026885785288813351636671618420122991831574464292596469052962689468062141991373648615100387524059545622032775775144364413742022380432885705834465523563906306122453807214033011108617621276311067566241983687756588122097504052215152897681285878629105413777980099216903012978705812433281922086207654111260263043603006043471159055501323704859179770348793627535474475108888349170494146332703555206707045445981161435832216858640054296491787703434167969700036162015938773604795976766127637040470447667668772689892959306487697592488515530140097544893492538758133990934696642230317290256548274303425129858909507844983162806794597900662288457026405781147064912972709830696167687902189341708140538148617236510046132287981327335392136744739420368763012671832410836270004395377717878290400361203554292748743833557966142474953384602751932757764823782804623923556922247209699782285004009808082054169929878270331657234175698388498876862533602096612645810656005136651509619842029795771827550400910486556692543360242905348410643792927313681859947871641897976903687395933594123747354445534807105270596067405780747293367962236626597939011160603715466245663587958258628038835833590379394485882626426568918354126961788239411200462667732283920667616104723111922154009386932354866348196844005854245105444811350500588548577367478220705859363801522971315237329558493476433417069121339997081221225440632783947479554899095806241875986319048268313219380088146118449269819039414435854666387489536226793884341934581435810938722511720083897320065760237851946695058532559786059670433356391107220488318897891481954363706574179509976642241519881516672508519230857810454034299243885170063350323854319964525308551583762573925947157410553143401233126082048945218322690928261442229666525240979237855979547750684205524741374616082654562451736398975350111318790756771279566093345857098126506673364087347760062159816587650262454284630406639512636510759903749965006032042180250534525182413656264716734506403819818264022578378779818921545994341840650181711669595456180093515495096377759504741612302020023950255730782616700066259224171188627553996243777764506358163334258337797146270977133609508389466787041676883452953212065696421750558508381600199199993151785727154879140948699222202786952720570291797135214805724133995750807753817795951439061474734706600647333783905179417366194636869539906016447491531232213031483287652462219709678885423927493359860482667373021463922117972654929410361932173978712852617373341223362390630852224081448698631557048882574694382260772399112930642996972695068609442529406288139133116560146812181808137423166061088280431426396105818755754172467905535133099191639826533924296808420988285269330211263906524933600219796429693470700656881255232335968883478094400394580866424899827279111399983174080301617597721502334260513461428043884860831829509808430688434031444191364055744483188576897072832791224256265922139645343427582728847188195190182327961013672881158925271227699359215606949723681518503763460211771508181501669425798055252932364629098317704712058909517398562406212697137660842546702823130922730824732775775670541209360738690696452243808011049827514130918915146955984617479285673374551773885789703924488950572064655672780087810361605778730599170996201841978680662600557916728200084414266966069668961254687432523099751603294943805940119624760527043418181520471285456454145997309396048387066421271572789215306818921809870907142380785663989735162627570351814122581957795807050682964728286589889269586748135472674433970445674602415933026662924363937600125479731533723931316781174384905655917963182175565007051756216935996135976966214053406557509809165152577534884455678416773541587690331722070977914130084731555378519452682137928378001295080787104804178222122524898789304232934187702080665344083453381535113462827203205194928822247665068998612471737003395118415168787276494887051206795692362837912588352799217763854801065554753729922457329790331678674561639961313769825127344373563433476424052509530116533394827721086793542482823210303920996708685014039865713280394104613188226549844391511220749371130019516054774084684715037460981060880670693365059741472015126437523297323128826607177438702820003673295353641307928471248580017596044013677532751935134092374001291797854833260387624108455649527132495994445630903082891207273258552564837745000271092908615320981806776758438905747450591453600074524125969347880283388510371304604676425650949527627746049135836558944958220456334139576393553332443257444778281447934820703742608978139848132740105583380910166000304460393053715982908634683619721440914924510866628689863212043214719045564207209323477295649375717318069065339689948213909352834776194080249946492092943264913519169396413092193493563809070748611988827234057215105711069068574739494554380461228956348366647618816936199698756776945145445161840175233884916325035553253458248413215629315195885987522532887467800727002564808443186310919937054268668413673701099332250477679371004441084685984777683980626742732885193482957013641897600706631832707125177052327352630004557635311743650591010394682065437175638937160321342497081202730003908951651758697803304972636656547999907588692386337004538115558967984374696760800180992907598338053548572374197299429868694694491093595231174174043934289231542087923163573911673183071013499529796428149867016135377321017796525052647908861741446915805555020195387305905792098201290069349088046422727846248336568008166908181461682840252085574130778065939410406644163121616231451985494100178158328109347139234350160060813297627940200121357226296446953647139679130589326481182593386532946209013752103157322874005806680657245986629557982316782565840126903323651367660734708583594771955724740904431382795759380980154869622158786813952214280236023437774319348813906223436819444832785235287072329864912097204736070114232549577773742363237291078918066437059948493749124918054829394471790968637832457861814659326895872637310321124567623292551829639097974713084035128392855518770512876498005460971501639807926619452546444050912904431105011916168547751760917326851698477326590768363517119020451770227099396852748585044765394147529818761918971095399674654457116690694535686408757443830198696130360731035117300033485499059914750311003604752775021041931958296764294030315856913999930856821920269036973959770106473889989095199947589658117462203132454472328046514581274028674957633363677686024484795165825219900351173761239477391621120707687630923426493057421038355694564893040983992019341026182256326817135211301364326494499804879812614514131105945477731459930474851469845855471028477998074775266246420216854235128010991608225934131729907469603545704714138656256263485181641888060625497976347243457153290926736610922113747329967299547356407684424276036668555979465221018932696735398414320835273784657941470193220516504566821602884990946186956318079311169967473586475623996442530678045585926151919388499855607783110027918920550886866379660533736012224895233054739960653007943341477701109544580244408886722447779632500443825429831745323308776057057821931266409608787892827509828597572288440657958348922209099074676737030152600162609280239304522025266607244191888396648852120725964516606938825317696551160471579223795743589879942135569074487576741207087882060393506928685940199157902365264541889688504679564809536861221346394462430799121669387435491566873949705204908592397555456335395919035988436798850493717662820173919576055450175600970054323871180186888384163046857465985614208587103800227526815986310707885518757503794269361381101194675524052999032271823661685792393136687023831937793406913790345703579020924502054895325364385876422791213994609160881636580159578518655673357566063521386806709042014208125547185730157965191485910623811033310582133925849976309135955648309740021272297500131242502896805881749736539533736350675525877796789760169577598717668712917035704354520191174057490206154226637375781290821081616849750975310736629828539624844784390164593805602081474158660865691412248542465103347554822838681299425203161299767784782476931296922136607851081716192807070054734925983663894508346885429638857228971266054925911706205169094660235574769479420745192003578139009929460583719111867135741219248697743418968109418133599186030007929799202152642225259632087996683205892680306263790543595372244565419263302859266388496234595645180328200624799030410071544885533821703646709075379499984849249368878146374678025473751893593927628070868705803981950294423775182041385337284466803009626717032588774434683232204983722373407004283609833606353109423479679517702710226796396982416993307524440060457477572477119532133261188024376490437729399510414534324662410979321666305170076796218078498056910191095279852396032508446830354788025366817040895303996604145532770648860842021180013482833093706539930905780637554388526955986075680630423629389823212192537835572251528750300395870697134616131487970819415060129554070328932811490562408873561963661760665956324312964686718004676436670252892834802174335808862001337714406354169591765789329599767461273685593054333186943584969394983721301346821423957262897148349441224911300796613056634393701126375403137765747379436548145788541143349103965453380240643582276968129341579236468613613781479634651764916146828911035937739670700637207189120276515290506733328166227601421311435343007973539932769605421815548058739690163809949678850120791736553002748904721529780738259259982521448673695818369965326080836970528241742064838880154803660826474035735270383883671804374991730258556256484277667529732504719763998666576665010272950889738886509799080330354843989486034896317488377471803777874091946252134978047577978529019035121446008577864206443277111613732313938692898654773544029629688936535581374419648707930560945794060575403956038351437716493089262693013178394736190780079790101823723169513394908785092046396053417867192744714513793869549043848121736983766209120475545650274200843025242372904562386123374934888124234267545604370784766643672154710457005990610322900333487414489068808570575668795935019065753523659942854636078733515558845969986313700651519999195589483517217824434624911936138488807012332437080236269324638567050338443731129913261276640608890949700403446189456505668623471685977952156250053773919441343492316413787175982403960057269975755983212980697379691392837403422484450549423252762777959458086297754657483760946810535317108180440422296916572997364856834814598121185936413595575684813301574674447994338199398465636197536104914020188649883610039982457736923517649576479392844263138159503089376223468515329197339053834997363804811652697936359196738522412103181019295098462571742533439724168009728354299987705923595975497223724821747767254825371740674018049669430656836312506206862347774748121436295199545573930495871653272003018809276034579309962956805356838111688792770984324108452571279957712999832229294117989765611726149292748123091256090298517592365255825962787238185204320885893415357741568174862568514806980862731988186685362993885943683604535094665616262543602677584153642877595663286078422421631335269022873168235830654393970536546072746989044038207446424704749634077890487900488825165545820889927483407860923804932695134121362171765834534937395101456584479583273726842959025314008403345310403020955515346903767454865874879879448950788686255030220057286808851967085859366054324344698035995864189522179676028016321581075801738980268907474335118196105248229475806247403027625385268446251562043815783332949974605167070161914506583089792588713276665307011906034084995981143382754142609146737837726785049962774071510848659461427585833129027378226300389214222881868815108093255892983822711915932059169947328573885556475351973612341765228267495744339779777818190747743612753077520854567704595498126044229248482633591336716625610371636672733171940377309258071868880976518115473310201380342656165583753407723644903097183575312494537912008551256627687426508281155722530244923653857176319924464594758052785163420929208934623388353095271502749171963652918971591708915952834117594128893099462276024576911006262621964357153643369550296559860421810588145109914036757063409365650571438126026430276671612475355040606957198906146071427197872876904111530001723976592083303045592693924876557566507143885283312084239529729132409157691302866839096245551601611226177345840395258970812826440140511589485092774475454114272329525307150860673259850614346704538401336605836786949862031491062640463739453707571173298421656743567893763128284371595619016772370368806583815745159434314285662858755051833811322333305927940991723690586961866540752237362150257560147541964327962943908053056366655017178311278003443095960520791727532834325651222411300030551442301203395303164629099586319857397392157780139479191075967450901114421435785965675978881985560043545104014647893681276075562802555848051993372531410317500101682051452230759338266097552515187246692890994417736849769958152205819836412406843414967404264180773642321272918875617016265808774563384979503635973209250755157848456573978224320744593694186903394499679957394898339802966093650897816452693227611997774933291004248641069740185269477114175463357471197183745006220593955384868461588605618511951778668145838295267438215071869004300441981361695824835873107807615162235836492753591431930506449399394347588360156629162928253270272855276446694293107779939703877641312951005215001063032500218816387216767017604507214672749273010000861398010432384311241960453511824368960664156055827987716969854276260328581589683679673192231976736116747062132873176223871069818480787443276914274303020657772200628580449830159083487198172804813892751526087852048510703820001864037139924556856223873350286713174580336299066711944047396617582947477443228703597755086845277793478411554010613414000639173762371035412145167039237773766273776714235402791325670552692702197204471190228430377125075841305676676728015486971936299301891395579950965381456625828898572530586231171096766010140946833160242823798942791711831113178184658390086128111544212311998231972735344899147694801548275339466131865417319539784922631266062594293796451204491187178730118184124042684257810535908730947629129148659606715279727974623318925798349642522306040579745358709320057257480742899310639667625879588777979839795066476655003356071039773599532723260193579710114220328362985711504910547276328577083177823069557081560290669934797634026411857884928412762207277879143890155805052347311249130114854199450882069862226138551236420277035288208409894693440146420426617484899841953844869124585833303707313011792770002711684988802766386318218682096865183992432320226332655707195308994393633585541813646582839599136904868220280121862554167638564301763699349200914659152872176415539978352804578244860217133458016054127648088454566452079009669853875457330817449645649784530243552346366783827571957741029457274289787543372176240338048701709173088726852299505233868518302069947974328511372712778884357964678852431711741442924122913772840091607906707963586795766800777239847439003308821686887187932599844855512506529072245585628357981961693793180056304752949860510695513597099235883300428058982031634244081705418595065831849761396630851811001737206166970268637394961238488836698628277585010977557332792566003776712833279027357831305801566684276831594904667565896723938947821377614270192686174080484770700817856113278048265311569449237606221705394561468415547830062571991166065415813995703243735283638467913201077546866696492838840023120541043535422254667142263334727220634711517824991331170296485019059587207784932661272403042885847586159120076730775431018082299763310523832161943395650096664017173017299068011228739530405332552980422403543889126992550151613989423851532505368602696611667992413736678692363884334203831279605866650988985580762926745400128847298357153767655517604626579063507211824159019225252553967213538525336529302203131170185415192132827981239258983793050708303769885528448082758969710118922737664800490257970448188246359855425117123041044695544323802032303373587906351974761924145151234410481365848213100222803138778304555860110307740617818603297202240477850359719938316846955912695711665458614698949271155920459886970468812212511074720140877627648352792443971893649411574839934626902355466870964198022296023499625225304038662686721308050509894225000528574173530778967016026752116341518935631943288031262081686023039716930985895465120152093140528367273202164051779154319500759347574229883111756890650727401365354910516738854796548275365768464768589296819791739928303597854711895742771136978595443437618740537333250823123092817634545893166355791533011929702491778002685402248039264995580075286699151809631589380131627433582849239959132462425031227051574774524300541916296186014639595916500070474402019929377364791346801632005876844706927217578156092364165282556081705243602719198157420284467576223784200039958210403911193306600128846641257142256503175953796775629703332357280044614213576730139478884132449658020451626087174965959617398666829147795930788588752573505131458181853402574821465226464052510747952788806382653653651823320897413144221125133299370529692009799465659512481198503787207834236410637933948996705063812492519860672810764936248557753038577547455821952972313170902147467552968017109766584582118409514496065702782925080459376672741664957535961138785497571851590245037857468596336491481366646357075472248512416527732420919024531984368705583863191811897137185121702405212990916487739567785327649998330762755718278402229750078919066467075918727193204181248639525796776239500661570562896339019374311658704330231091722521479088005678406700736026503211300005431616331289430724508798265941556004444734635523870335051007767970555325035513156342546374475901134780410308560274213334587387147963054488341110942458197454927583494180221729808802032032766792728574235208907330564336935915642024684141399236714936971121105823448056388442959338355713277892158673747837738987331333381938643097301888050486309080213712936083402925134970922232687015482242748111886654520288263651689909578407252496450174595247367467832548635836455032641305351803671215058113982401004074365689302899821859308281266913157148177632958774265036759571550074967620403075901262900385122125111808625188888942932854100895372341650030993103685118229421712619836764818504047163217119366272946136539767357646544214564285838362562308762640005685399261320735725187297070699043286221166899593995061618517836043637369795246331501009393174647355205385754749056609925890167741931470298829211918896674382656888902579812765007799444651670053317589436720741261971118273962947704655523302912646958050885831080610615658154492930970888652723466925168400552726683204869135542321380699093630847454115881512506310369440842074348180389297377571920350283365842748967920473200168372137683192522418247047911140054935283505889071641911035087145432654049227329548030317311849418444355497227910683085641682981244260551626393095042446282359858487842997164233301026996774824501547026594993620276780504846389587961775144445574818162297253777500428184026009709908488216985886334098199185569539405638553514567396887977052113592990389589517709924998726808848103788762235956869803046918682436018844135219105057706670273277456754345109916652976802202415301645413141856536283837947421864582573783828635599470400708888006844008637067664722078190365621274169738610478730453651111736101763570551487248738307847665592409013141841981693909496763051472647025684957631960915759354994386132425200766962187232797572969021678836076603060936552477667593850884281843771746131898693946119162050748075060695292181839312731713457409864879426253480854925618337797089016715550723072301996891055613980298650041006913967458063302971641314850136181084035263875842374039816839614471690048353625346452421792311469750717300592780076905932560473412430075946314743896159499201993968097112727575053523125617335323501748564014636196651240895496843677850130532832938960358956303901047337365183058228067933490008765931212883017208995512583472201878143988146639553932517122949603531657932701905392992564232510904904614644252749387279580257857658266869534844137455813838385628488660166425482299491312315139368297631706036820766783192847720334386349551836833363763438565955524767216189198679394587262043314498571780330352961705138435630701432192179875113618352218743488974040471303294705873067901495322531558989206302482506126326445072080276676098515880568571410660297833839825377231156315934373713074284259322005391160093068888774347265550187440503937076162654726586407396173182870660149263366053224667499189278307295037575636931732809263214164809549273374455442366529394632132514153100925738147912222419867087213222108321734573033058875795488063714735207338578111732490790405714183223370270940595180606274596033790024898195312234779320184344374456054392327315499852210299028232829956467090961689641581315271784495721198871976122715829848303521643650761490203552364158427300690343966271319322260321119911838449718961353057962397788384972978908575340668513300334715831372994940117583713989705731205700666517607408014918909070417850361201977761379719567198532456603273010485175195608186212298032154666928557637840611782697456483495737817324799403298203593544403361100391575805443816871038816679899814270967115634806574678799791020242580678578522591583249869744286773662183051302059657370176320536035479696512236855935441295163229723833838834087274410084825779580989836547629596617751266063288264618212065029428196954697422402873683457904431750310213512809024433410288045261278258986278614514491482016683199078978664731247483777527587224023646501185727232449511302925033174948592247528170187985695728397073716088484781993834157331298459842839643055639301686117251258222589848898118563934875384182872862245653058317639638484017118857681767909765463498589983681928245445485562620555541938758193977194327623779752237224510666441848349848884568374952407045091606739055094755885864057292863695715408000452895343800374918489459199799761503196146895707706828469425558657580468381830951869414289393115680397082662493817795595168779814268294497740175614084768742271103061389381352379216623332553387719362565660468248844846057590100781314691845684444444947250379607402151852996734375497895860227641338837901499226094826354006899494402689695829368309659661226396557062071792624480327843088818671659511915445351063093882283240188766690648853516804882192616128292846540618895966831571226596012394997080068777997904466363407841572657137719513189966381021620933235098796933616779751281254525090899613773583777618381052031211135648418774201846734416657536447768034047927521860614076459017594596463806040898563801801895526807174015136733517058157401434856009113460577423768545641096926407440010012933881180362446019784165962943414405307437507705472760772390669035894265824838713284430697208765580139143964388329928614857337302187170796912051078233350843235724631379672731786484538977890438983909558741025766015261720600707858191773800799703644809665561435305813184788174990470928710003946303931720738829518605486423212307463706292836159191645184887911508669387379665137101642791964264102508411820926973923549637370979402476048288311764308955776779169049924572818908053260025117935981413078017314003361993242833255061965427326457345450164433490302424356598753499999616015715776590417357302366120256862463799985755863650420428459955523544495720590082757690879974826165444699465219221254625518296508815153738144003721755934459574091056883154560771492435963790523386230324993280131553676997452368976442599800389602427362509679216090072318823742384740710173839597464542146769044368961313143113240266912115353285519767045595823680829971711656242981934610398220461477891272651305142789551119752009590954170419762726591891499397075365700043547913448585482850339053675645082548577843006397966050396874796135094993722342624723578759718946719297119573169779697209949734709585472518366670322762792935735418247827575992091129585105537899000524058984120061789462476157934466828019698369852054795543569448317831961038787622046885783749690267363526941335166851911126864981939848837089734892792533159771158793996412655751031988178468075649269413025838777143186408841283567697208540764961582417102427792878925647007499897591767205763204689885473046946554496178656231513040580052391285444641906554354419054038760693145950066623015644724827313267680823125608693330965047205018505611683533176355692844504912480104568306200773283769714251418967743702310175129197613528100424192847446516487957781660662835713489955772528965620403502572467332681856274168295026198340625854449288781776741178253398843959135922228818489592438265754303896544815467849790408934485823832076272298355046810076565137024697841682618371639799380018679738212994026902450224368226955000017829753876671180078458786151318506405754979559353122979775095887891556826669462001756425395652674485137476048751629160106410623552441824786583378374545049478650341587968469125441460451616758879682401133891099062236636845492011295291225519732461877281203849324936689420494528018298710617414367323281232304792746555590086164418039031690417293281677204712664322112184288922167281196111606512434203701799819643559447306205469578706667128921147598150169954060110881111041174367835805229189630028692741304471839854812745411895472354710829344565395785855556751588956989447916007947531178319843590182495934898479069848916279971173139403378189869236707800321061360887385733187255369891868771853846281652359671099201874123464148892614566713395222591783333136010222627927863428220572229703550423127231210881296914231900417631453636706802636804735052582150221807953696557585554329639905444699516862785414421047178330383485586265157003968865376122553674646206467456558540290033927124693503312037184369988504831462484699241502097354367608525801777337887727516854392987573591649614374762938036978705448973363518103680053317639392797550664307111810652420119129787504632461441749797669109850718723970637415936150988487354050157486719431227294922364368141664920268208349604731075880921463375356670121674530480935062770742770521696493192677121105702860244713006333854142023843510204689232127427260028121001341055153425460359808583096395674068546582708557008321334683189857400071123436721811800340775608924361487433840978471658669219652924445385173030274679977691565659110185661971743813609808804998645610780123887675791401533912388412165706111980656040831136048852239256639804295784916352369987552625713960312231656901555389531555608640974614340096297364918297943297409343662141836289469570640761303492700375636621241722766830007294787722541468587246191692760467352734737197451288477660013380897575744952033543591154184074440736326825393803079002290498048973675596989693224480729402901621679519430018045782382626187454128453415526773748831019131964902305861666512566335354633864926624220778852525807669469768944557766125099837811243400931598582383618283530873886477780523731007793075038448490030435707716250373302254686212160245783298956748752473924349858934291858901695390957460219498960229147569841562948050870060831563400465886501904914537743185132522726209096536074124238526076873614799273243083069731573473802486078335719292069723662016060826665729403858971575011956119162413110156979781480808778850590851554336836686366638853281624510527886629211964265733201180999230038669280178930595630920151243455358809932258012108975172835323791696317234834950504055435705908837197728827319995998816363395803830417101768625800865933629369687577696560222990232574438652352125424088760161036722971096031591558199900251003520898963760238795545678245946567110152324282190773887279573375615803803052978449962229383686454172487929028587020650299803853460438289803524434337762708589045262206570389111439951794858852719775607614056285166070694853165320039818596293051588175564887337728465368648313716843634925744522395345373777342866613926052798470353740537398097065061737795117229826601673474865596666540644957632671030767036510183667808995404645489263745683363457839402358451176186612537032317657466652085468140044126495834299064594218700276400671278457407501875022717349251167736577667501011684745834070466826643868163654771356765119058883856083594967721959491457630683895415285511553050754718667573243803142471820841253749858080832999621275231173116926097800241910835742260728732310089213887668490835618550933742401498083682850084200199973260173828702740372301460815748376683946668969004802967829453825465282598256737983704357133833293777898588996003543123383075701173530235595121139252426299277359347574908265494003563137275146623167918382885183882720167098362706586865850778313804830981538948640660528691455317106197261680007113543048174478369187934054212218815097553420791926184841906304165186481323944088973218285455276254576845970103482675878448607482316101525579279098263640833453212191014361089129745112248224381564388971622714702386011248290366504025646620404923894526240688671496803248325542367464121141610895559578208751618311185418051002559890608312658733416950263913594933685160892707542559008118079215810500070697232070795497192217396146348154488091196689599820467565506875112398070718975850858134588264358812165517374235143252980742370942198980375604875176017970767481383629581472493733549126928677252443369608446010623349173485819176125656140194764453587227013640784758416239718891436234791222331242604937630292239983630909457108446369479776884738231209670527587016221668412625285636989024160147080508782781317298410468577841521501515550257487096311332521952905732957615315088380273145343538102150625232363060841594730304760316099507190495998085561844925714579072967183459084442266003105931026860461417851638256161293253166525420507695951663489798169665444908367019723480112233235327890331219006065788141888226442277730908832806500971271398257242692879708019092221048076740354689201335968271835317751808376591845013858595802546055277783161035080764851606931864602013346822451106114690034400579371856051752406045834192168547911260963056814738431694927614493697219475214539895180209273996929465804585737969186883462541993569869109974501918196301407548855086061254357974140663189835008240699499450706204750394077473181911462743338461316694268564257104313903006057338368450745353858543758773697357291557816520156810621989742263666042181077153079372808086275413557774525379418136655671823764001264407252605064318809875210358638411536477240321901115175044338688524609329256056826993104264075488777305518066772072132803047217897829629368518482607952991012302721657227320551355122958900258824105928204582474766166987948249729517252718741214879863131146588703839612515400404798290862701476358275274396822009944254990076917699430463047626891824778237415128088104257348742176403971699594470537084075773045571275358351776250973661465762727886020612820550565929570927583385156444845651697925495588490551143747643773832160395621020277351166191887393722210025783592839838773841502265288043750175253227773121090457146428336113188988165875298327214902493465090664675190041908680903202468253118736849095361789472633867752983840379095578083080529157470578048322870907585415843755643170066621216871750527215289252519611644771371661228316740172823053834538587671091088426455707936753507038397859681525971054230903686651622567271202670711379828512498641680684524625070796806174072933806957209723937445232068677635986912498134646026388580835387337659128124070789404545760378828082403114960820268520872016924169759004075436987029915322786056042519764716294627439168602945405852389985571415521931698516860250844833699841735663340828211451388747879966031158833183830427953049847485545560569027280514895638761252181785563685498031140935228279390744031168492700337108048666304676807952729320332994614350475012566810400287268580671773601762784835178051790400809761001630963580833983329410310807829745749440281163241417350953828103087654746602305470932943834637952301901773327026819158113262310458766254487558399751614456970695074736070346761989909854604904612727157600203309086217610574309431929263005330825790970018164061334907747397864406479977050889592872867620038171245542469097370654038920683356580249458879167339718697878608902284431902150559304832699186575529531578774187096120138757699542679801093996675194911110580074356019357783367600102288007395862679442336188407676877769481205378531888438047446779815037766064955098932062242072411359841480712663774201339583887062885246893579437453056546069725115367923563922399294286127887445705042817108470178630981178710962267682207491149122996067183491483737019856811598678149095326807680973533918960095161381616345329511236610390508132544872264354008162956455225887299804087046576513976263666762613216359001062336439937072727446014668262163131788648832752079681837089161041512882824846045646181570333163688005565486520952071813534862001230607862699960673179647390656554477066930206579652421296506114156524397639902788519050924666432296079117500247428089941368230412196270551918326263969290784683278170764734345940038365174586905781792988806846506217718594112177524987093864558798226395622894849248079983176897026913466906555886701566794524785341317538704087009505142591350725202458066996266209617675449030166328423076242190940193479557904207567116078645786282709103830471000895455484132626035898146738310005326210128349982922464852976342041690248665179218963902582123413044171707153105081992514505420809072910122947655400003741579040545970871933328445250901460033695203308082616584733723017098713643773398287608179548742454949300264526838674960551985980245191060371162575308408212070415055429828523921893684680757364735317222169035801363150544010071863525123332406570246997637014271715343139333336846316434295507629679354198587672230798686856324156636418108411902340306944000391787924645139375081329533223311875772269769727270984345253746942081709275154804389804570891055215013652409363542012738267267900671220803012328707227849791404550484407675728036897693852567337299912113558287662459772935421528563628742970391749367777498739466019740089087076041893829492030140605923952071944400222551847027588984592897611191016340656179243087316814364302352612023073252317559949796475836137239092042196731935927378118423492763897234039329372277789208660891845859138493593441234302203778170914871845406945351229777032110206237936303265169434845003497932171197008108259624017780059219985808652928866934459979909913704275663112484490338982978329694179472916350347734703327269816299000353174548199371163423783890675445156773052102294092507670248617336006623310590308094234823418151344472414919911695585168528137872251819843171619319662509439419714442595036158106307380581978512563596658296198397152994170244485580533156676086481382683605868317425009696006607530141687686678526311220982486646609716909717825814081363926103751026338447001701787252682068248878228007094921113187748188359600218991948055174000005805838012941653377726916415137060822315612002690870149603124393478825110110487231259434503776349859651882599223573980387899571120557494829644668747319327475172178072821452607125781356201850688434335793640712363389680547357431581170818997401322686373246234806951242391335024121308441121258434236116968785697123911270896754836913339559589832930571623825155486913657547014500611268668684706336905610875069602983349420751880081276483992901678557114759065144682502998945468577250949214734508463176292539169438697113435938254612485716879210646856813902349239066138346418515718827818301026357386814350354002057616412297655630539980344692195460162928924657793671581974213685740346707011822724692819761061183186722502716277623795205443769198133759849995934702528637813426242821678314360893804000924495763401072976753996215241952811989506210358004125081442056486082986921000088015204803478973644440945362422469824815098086972832255943293010330336369182779439674096530431379264861118617197985454148907099234251041848939412459401801575508186950553332172050630345148418165624730603565976380160322569778907930829899541350653050319204766024871160393667147013253399821560080230552070925284597398994299245573567736798291910763640881369783203524626492920163538829192497962678673034321151134470970110702381880239565818825059396272258435230171468834302234153944431445283584261865918439543242024465700485908454683365419142658625175502982259183637831282589355258084379794110802785763921194510766733239894097376762246278261980207811894864075639887138955198791492837288783014608776450600728521635888010425448072624688438571187727435111946544613156978282162413214823837184167181444659491344268510042199730969157494303877563718265329975328155993286375819631186433459353646029758035750139089384703780119674117918803492471089803084017117618748320662865069023066128450012601133481315500743477601332450843583117872522594339390503447534512188589978743809674873738400389137325891697728075305545078184899523452078436450914623336466890283270159684029115278234207858502212156942102632078912477161521104096384542522446651560547522917908499910506166730315412915707632739580061469887078776298095834243892970792922452138322968113070080138613918216844112382295647470794137868009372721504723143855183071792891036857890572356368806510715409323387326273523423176219870026381822886884951275872588386766012451470920087188408426799167997222679094148583695054087553166752188348189445497368247077168337398897320066849879694401119626503141938210730917149530556996308475019466399423967640058611956356565903529737075238336958672332436083724946933940747372814880058971527281906957534655667226397085756050521869358057349232405281511084196000299550208993157644730285849889427776856001897537301612058564038139680119061163554292154285121962995428636117192399332338702939034144731857610118668476415379273334603813832559894789781328782143235770543545861167803607548313129724699686563851588401043904625357615327737817500021401030667512014335473544024475797695630043350495315501839508618915621766511408731581679052752798621682578494096106941810229221447317888031218054372074337451539803554311455923295354932004491168692220154662685028934651972004734563815620131321410343952521309573161986696294153454641534180135686151140938398391253517919537588943474994185681369456584402289368908697897106320585207580019448330801990523791942350451672154791086586881047495347961207645574889956747519242230873322874835464571093583067959949618928244283590098835572088636880074413590677860246666862443066519670100998815983473824401722197145536535868797460098518863305506612597654865775237784291526751122965863793671074914760756119500474553496275944732481968882093305057882694866167122191144460257275796914341433935296900320824330256090511242659044008533788572180645601742234029166214269452056320415799165744717436202863117436192028144865015184260608507017442575968946361884177929537862227139496495240513621330542583013689481256806668647740523777296884556973308776356214635029348249513172351097608108529573984186268611457337122412894123543434440462942275149071797559022801648102429242463039363277288795448922381496289962322830195763724251761844744000561316621421712928902110397466809412649980932308221859897447591448214403268395698442612631376340498221127441559508740328300785667432956171730962872404630135687150256081555905114074713646011159351508832508600240357050312098215046656888287777383398117659108130755529838471046073704981086071406977833212297338869034641099855593714023537964776349446046815152863945186754480676968799728583998219214414743248526571349854800058825808313001298476217361635582060168832834119404508676330083430688502736790429947952662095104435920845366839233363144326171090729878666192442607744962901571521867344299733442945213031350179207834157305572881379214866886933234081105750362035617561217047366731010355302887093580979710473004258326526343430760291483891397525073218339214630089255831673635092674841654060409419593994216706305016440382124204474299266082819675296602818239943020219726835030284580398511350042094326790395090891038900007241597794595140844862374199431923800392856237162527847294215905242376151436764367163551384384216790678170221267519064454100664252969710570009544578436913535590770600553922500289869474403136614531931907622916213678563578674778327058484315997455868226284416926654390595752716933156831715057412900403110998531963214424801468732366588154683207402236515431122299806465461457162592832770408891642089096657628234477311026863381416588864680677673554250464809483372450327886559224561431846278732379026674667244625348516124970759197348959070334109411393902344561890505612269768421900472238166219550842624735061819635618157232593655184576898746192760359093314728877734090154268057744727476288062548747492728079470295449918404222499389506435960623173748925250438516112624183562255264256850862526635650093584613397647422402201143572454119213045606316224288266469989696951607082071594342464638946578016431402372858996266821201485850589631553156569463693178499491693023106855269900956004557637995385028905749570851916143104184136375298455863305966726470179409454607847984787399189656044352672003895112296971433375002269376735941842018856302653660829113650113236629699114460083863682922458536761140669076890053869225727371814520362127796079310676418346653001588272481556169907931375807959749494153837286854822235763502616127750262920345218471654892730643274909013655847996851245879295814552098718053072087347393094840081682902299795158693740381236691767223374947822509153288591525237298366353011418583669023223159821276087549576277814875473945805672835277116823778468924828445941062945728445423473547459469158954669897478136536735992550949716411632464539749642985751043687936699557229655699114183506341230477960687098827114172296225802175344293254157845312645840546176205819392469384401166271515917510948478859124340086316912225549547857978817221705201966588207659108617396736400710735519217180764239098434979753855958013632729836889451284926155763016546861463009874930278985163919247264034640992865203972025711582388870923515379176677848980905728518243095288665886898480648121249900901989433782916643430312093204446498102274084698703886369763434221742343267564491992042806374342671603754911647676351854047947205547449193013874343939008208164697042790650914497831179101446202130729094926010330123995488653646095860503526371484662733276060156457786960269129010625120949097615417892069507256807852967864118851144617719235788347132152548203083433097435980396960650756144443493787860822344894441453379610171505246694884055471338422623959323769132512731805477281618526252883313851296818016797278534502157315642043818878525582462089688099268282824153329619307062996976353370453386713040607081380925719760997820489363031240438290235472291288946993724865384469860307076826093764677347089829980529522577777685206488878579964580039309888590401688064351220349053728169384481221126247956920241406182694346104451052645750636461924233287992541263846435472764716554960481942129162948256548345408499252004950577293333154452809914076665830673644912697532350205011251693970336194776236245071517802460308691445079067376551337203367343582259879584596875259129780057542658092046171781759422161099413752746242332198152294811520138598482761498213484368312224181058607629119585841336918813249322722028669288855421485469182113713317730533682311803273645615884155323608419490328858649622632213545615696023672212972056208734529147419844655259683674744687798503728479922538128700847144775459660719258513211648300500012694317720309247569677700811667441151458916297744094061771575390979003365800028350874093543720265583792447915344636826704887636756091249260549860203084261081635475961958912986693814174241127995265638271737863227548473901341890659236208730542128271147501130230364036605253305917944288732139144613709450162233341794518575369937762500867526205767730013541591779341989824412001891172642416711904357582807517260215681445412848644322289284629724594246565630335445418001673836436738133687569897935593401692033209235974369643303270554708610732347314473113759895955986042656865794005997791139699395886514056184183503673708692440400656664369334909759626183195043517802586780400910453598420860484834189130768065424270472700127754843510875893349512999778429111254434475647917372366242639426532174462099233970294078822404115172458243854625032902559128230402562419844448339734938912278918147222718272839408266590092717324323736033607507950383928482528198535108269514761148485667253141203028374007034704434948838051054279974605166023906069197948671142050081258001656398302041489548824950447583483547295063516499504225802635227328392472475239803570996596230145283013295658353456687902675596639989720327782068636738877903362231077650584744849037070913277217895546685709254361436768333495730136837387805493431194698602392790218386030252944448895691254685669649200281581231517669487815757978080421148205214731008216392637433105613199979118660808795258434890191736759558700965963334385292539716294379489114722588589868475587599020404376029653153645951347523893906806217694847651071999470291985216450709207064258034591267502550270925287740264322363478045760008219926436146095585624138428449711386106847575274205391314361788476570144326253776748281900465968098383601202243113372704940499969597480499814076839364639378253075381891584500747973143998448689571916340519394876802117416674190026354563814518613821578022669379810546331691384191133118913394349045640207737291167750149219925791777595106847973523327877766631856055356866275306613780640968966407947695418131537287422384272755633021219583125061567503223272397452568846239982248718781316731304242591184933004158556507927896430021363380149403452630809135220130406300520438953600185229128774516239670520804136065559391296815682021177043997336460190446221173800856833105389344488220205463549561394011874926338006308068369361615037490571723737349398111140057386386703954549381544108710912654052521110732416904201472827546860914770525492126022744789992427124855999392707137402979854579093967912221922202267213699387348680117461798577032710651181401053322870234344132950909002215079233694646593566471415781319473035760081033230112940082146639210173765395316332610435328166708638553900500416307088798300190380979029404750950437541022992025614235721096275543161647011326015257455600160456179229933650803696639827982260290909237161294697302210547221886872426009969272894135660895235252928422431713496826579090581041219003083079149847303316744946313681583354076867412623083065783611560476288751978098027813595977011264372319174854175740317741848420112878227002987235868137126287414937658925800346370408072970821022352732062828115555922622446340780450472484146487076007952298268042012173863307915673565440964815020847085417396598596373777857610578297565257399802341332099491571561454415960651854924776602069458974070153494545916902572133689357468688237757402122148164152102979835711479681430173724359317992090994035607685668098856171182544021670309092849469237100822196305400903837084899448712680888723285005025261504141181938926598372970119427440497798467595890965308728086796011060336154459931531059287452103004842484507469434831998591747779906188543522336146184165317163597976687149893926338152837750877546277000827815533923926197641125430687803255717365097246499411893595926549985126868797609032640489563599215103971000001473992299996777347386001359667513858313799122246886329014033346065745071181964374579711643689182859621536394734846981931957927963752731848890613523368225857648897719825720213879459036367648934867021987520186818076573946151665888938313722885028667007472528321341946669269309932543214658122986810427904243129895741027266239731414891193460098826473638194551302499624095598963937274827648801387955508759827666465500481564157030278931856772548469424902968327096153187076477880757094608787842600772011270221917492495825839053535196052326067755479047104105747720360231512847452389671844963557075684794035205645317815485425324018453210467133742496610907256762595580918754875783235487424031965032889969174079152033290603594741428403660361093909489512018407594241537024786135768468396761504907197269468871363867033949018189271513780304286640079580745332725897488588097004702087596652775623330938960621677090512868395024247720937616272782755431860636245060136513745188282390861789899869395491314901847420862208218490757629469251969143846622673748630626522937894823339636366750604902737893915842740515919345546825246162473452280311202780611588769386795569453779522517084965499385019370758575420913356067560788814438444762722428570211830674674740499358078484618037623605773487971653301967296939493637848226692979764835721617478603016361932268004265214312889545169828798755870149116649035624518859872171746508070662373181904175759619826164193189871189026832080719748609165844568662540980176333504540550668701943201529596168834977875969477521259911057148384239341116051551676380148867391271335769199609587927797494270557470459912312737743198109895026643343649995837828141956812322448793675204679570774771200097029140292259498259615047545194086411930950655008601403142378840181184226454501272945165463599703273178051212087493938536851880666097574945229528955176508414488982759829462215835197772187668725761013851464314042764675436891349755610209340521984556908663776232563047128702608792526375522267812828527367426709778324728096888898437419254937607522746545061941076189410014681608195674633202885547720989358462116805609467557612532126584428054683308484108891845598592492785105247349045573103098759217093263314366992939883473761767647060905286414460967504252205767702039896110986748761764327979223269174542687511412449081950672086211436898053536565956222641744404174732143682385414075934028876648068365815832659050701073414682996959542690841038726639638013646969631068698506462543643168331508593112062605679256509537620205564326587054574421870957304096065479548004944320432000710981190656525626003377780778030879072768248185482111475497993038647045923977287397484358794802284727171789393967483841803141668347110475168964469588679398021158332716810236565739223615165956505917128808289841873229242942987228050922008192183010792100924677687572543149276207305276806327683195059834664725086724681830692156733241313752779623840247661322217592269210714994290458101564111934152734201495022534786673347560891253464024793505659538143595510420283713883787896708108755867116745420992353674531580450657817267495769377135838997325527752082395469316970103498078891298628777937242075415769573345128681989221998318048134011268062930428980991571389191116328743862832806088529336361494211529224403154088747223392436115016537267904522821666670423245792705350853548121858982681531854721232382811611590875853744059523845994714102613439277953195064790138573322538188007752561709518891274846992337513037130917514540686076593833644871310739218346505654755765430754534389688561733582453348772518575358158614696660238503039404618815779696343232442658593244252274452660348302362224947478005344270545446505699882122653190419855506321790241321265797550277669519625681437217651338409681787555606740077019140768093614030184827501965127702562202456597063307623375962426999946627633605822131145418683724214953926043363899575652795680465786121411525000658339819955481958826358914698929175002371269064878923910706168397228084644625800601022265509217870503866819946732287673608768402379042953932509076951013172956229981201064035969097379668184774070668566224231176908864818354698579035609792089248571329398458010641717629449275183995181213938720889757981836899579320932876773838571743230865182854259444468377809185543350542168578837357542042551952176654809934029755925090391046733100100908001017676462518302397812797732198944560017644753158802204145262808166256748507234434877419789601034824405976443334491617638800498459226357092765892723194088442522998939421232752558003767564830100109400252605736896103588820741058296608946865720083970382395493363521269689413650320319670436594196159349908019712044906948778103317860251931826468712892061026113619248556221109563480613379071613657510752087825737361768815512801021743799146695386550465475304911083384362231875263832537551773485587129119040532355660779742307515805150467060692476519908412152562612547465100807665936712691115395368706129974337561316226021411356985669352427883644280637631496778904813328325254720424965014399430341151732095806586677477741122166222032614087568727469737742474968633760351601538943386894533927210174556852859155195010384299043271271477746984751432145617126807265772588861534697257647397974590490711201599853916442924970098259794897788657680602672228478587738027159540237421080414383859994861024559918785043105571307052323956017902736000722670881981449678610313100627935305327504578111300193757366382405118914786891660131588027852704337606498218530451295213786625375928755810563317556899238367708214231618762084168007624648442137585516968635642517326397581909537754324290346927890607428055654452837262447012952363495970034662815896260850159656081657779513377524316198583757087116776342376294925680798961668670686589311534190203142847889157020387870876393034429169915617167682655115022127927280722093275557907256969209932128723761600339020756883346024357022754523653875971823812868653560090393951270940144049030605710563419608886405561355614052672106729934737781784389790452975365792240069593111499024257617561909170060221901576328468892108399048836255830023136933433369939563373701952283729194980711287757033732479111335752750792582907594340023146316802756854865882777568610804526324598806734096661675741197992308078041144244619845855101348766921030721968376835355422703961702811305987537478325773924884962875328554043856441718703777556259331483964405375527498655065818636489520723482850308587767345875556176996103764720429340925643580036695665871705185594712296779198909885170752439440549188993107067044802278118380336797242013636001672903460319733633976652851055782592395594035057322980748337184066098367264461584392110679915794179448968984886293565507869219137637292452236622130405869589897981001216198353165871276779415568655706528009722622736204873126331350208858109716386553406187577148136861022104185017037335089072782436159883161532113544258615009116286405312448453166667983945152206934394677277213234715827357734680856973037120595746327331134791394378931447172137555327131721586327445954655592505171121736469608917791227135673198188895908537732768304296208514357632563483236552248651753307722865745954418724173309162067495131794038499883002482875235045713644975156150636682917641140900772530815605919267803516074601534481645148073119618826779462321232963849363716498976145341534744798934837382952509957486983659502032565352211673893873324169262451304669336005672939186834311210175393517812366073722074069910244519082336586088116060339307831729528241253014988864600905317081612548432567314277121976654665189757582415692461372869612077540829560951391477889128841359893169973836035168593465986057762510871938784323308525670224474769429923870520291019921362029463025404787216172778091973795673323653412661526674307797428053031397372783741384919874459082631349009504539188090450819170195471471444023992343434153823589388621327209746992965298106294034935901019156020560158865588666845740057660935275049724126758325544046514204800552579829825663073152990087638605989048516365503650983458701639045312444157651613908597016217885442053753812176556626686704076086368768287854664310489162683890608220302970121997879760071753214762672676841985238900658776614044955482025223392638092060438421190682503975727106195883830919344662010943489644505334347107432007282625274821056791582242696480070761090603985207972424722147650490250219278806914724621944458790709578578249866215594973447911864890827372619824297151260198905522650240962217048011768582340296702919914086784722514553112783523503702888677696908701336784592354399251024815424607366821254244824246094866425380880016756277862870842151482945648884931337494128590549378895246423245858772573627851866065257987526472564431275025182484632988841178946270411831373576792600485422861110929848902425535474379585819195399001349083785323595608610265696689120943338516354234458588064030298210101199742217819669499309143246613784206510865201922386011027042654049206355754970748212728539181090158557561539366595821700375518017621826234549554646108471275787148244589376271836750198856391448649298366938537095486532701304562656968327630849761586610603316873442785217989646276798560013755070748674636061878229504129273953822986949168209572186800379598375663292008838953611401750624268615544323094248690595128138762528435698653506249799824277127715589086633719796483153107710901971496553420961782325783149683566404578701587996898302166520826460914207290827425091145283687226629868097645760629509764089858237587681392491427281050661445412165640106276402512205532600790467587277026370465434117647045622601482692838979275777434466261206321523742589145504244837794927521961376096587569920786882644054341503608273819527528685574352343805855844228372452127469460109444947155311347922440612907397731093996797180577206820714289134764537243421932534222677188981187645114252400241296896187199760877272330645700603731394288041327128854939114287351919018550256965738632756123337821839777258899414706137818643399567970412289698697815113570677566045879925550406299915235800124827307368007419173349838007510013379603778207568111255984685547851891487837171848937386574218676966987995330136450138453374448382293645486330013402363650608535154345266509820964482408840964126644313669568824370368701598320728534553277993502638167274251171586913106625784292853929074958537703255489010445545032929903133917117553853874170564282384999696072902758455130968701813511157632444139807843149206824251992636394610163607224795349169621675702396215393846313100226051180192036080804599536435019795129505626261331369215064342878192481962456027034842435892002309423659725625292252977612226038608744314952147171836335178320400400888849507951529649559212200150741130962205987632319444892448421072340166319466829443953803625483562658660760527643207829835707235704099676670296341933940898158144506201059823943693524473131528942157376811522867736880158024323223092297524392039668752069517410792036014798932645046046647609862917327347100439116027789939870512427976951031633301163594313191227907631422239620720421044241897725560932728696793622576245274479609479764155492384188554798168276983074630373679981774442975257865890067294885213897616095561206425144394299079273871766268267639189924964425117580814214240133282160253795444395039592395913524785612634743271032322357778014629195539938514744576618582719610507409619137802611889395843044317766166132041220048780022539377863116934815362518186142730243664616275246610520678047495702343300710908418253769796415842688002149333162971028581278329583956405549245476120719672612450311651714856460243039926557584753599417170471054096666248153270960484294435411505111710709777549468612455614181689054146783932368566922029528944934095276865154095483978161497283171323067924412042562548012184233297912104738003114494922748011967445967311943406366710052351555155013344595498575639552056697990570472670801193400861155103672367750798736405108706978788009646505931532886357790629569248847258043701779822051089925079665720108177286488243417095983955112636154203183815175615513198556218531459988462450905086107853043271772560223744535808397832201676463068528081680127701876456571027308808766960136579326991552689029303283206242523299187006213188062277442601763356296059780804800153297237003286686215574282320430304342292716092523353064699903377703209032445519452326374968800828989133410362396254792184483088033537361536321331262438594103277475264565378993472266612493376982090629388274195636029487002966709916380827149710656540746220104567983460890583821150213917759053427190633239947403698584350635055898477626257706335069938744234777287456048897789278127550857545918157191920514979226394843091990200387200533035980414169062386497731308672490453444330427931670618344234385188449111002990983153930614803106589756662584124972467445158145112866520316679848520443235078739488606898355742154771352504503826053735079552123084270639009726729935256596325893208893521690546204283859541656092442861771783059656634337381708761802786756561405440331773159165130758698098731007728133222235952205763625471680552127304889612958985965777569985128534331769517997738498565297103008227349000353822240305144493132873843378850711635832381117934639193176533613358853936014011570846516405879136860287466596162169110967028062781762497910912349985082532440246169488563214717696544253181085788850938366340383957336930644552753988958968619115482589638858975914889056748257326119590340585185251606028458688541291855242868004290400262041340330495732254222714359297961012732000279665983689128637857652080191368322708314611184891406495213713223737247244987518106753447901028468941665132593948008668650919626609796021116623681170283853736919920736138946127880002675830209158463899166731414171615452560192474491440522233153835499625375479112724736549337376408503703940882592403420493535873965092702888216411124919149749851652007041587260311809583699609935626673512143642867198106464478835859525716124263778153860921887956706000953823937389868619630492831139532867428380327140853175139326674837340072346384312897679366506849164882453386366469085173182301404223898425842350455786925143416873911835130757298498182554813891271102251524459929902955123325467761685270046878016864021821111897824792265579829288778533010211204558441825041582186324242939026045358345348747236729366845068734769491305751186201879210021088445758831718332081710125047630706746412112173000460184069530735435582671032986491600914086797603507958742383387207766535153599184153757883099854792946268140935776654151031111176852503010371485622719505022784604298300799915946004799265368982824898845924247139873102010655009140188769228368941553395786462276259691022989836569930570282560743095987786099776141946263188952528791421789552809161545223351864462656610356806937405762963060841343753078278809672408902013164383825511104496801859793937805345301346055664344489698826596745937742178834514725683696301490818268812527653145184289552202829518385467853715137913027743762266349132719531161601224381304350268213376509085562609896886427639803724792835971171708434839091945718635697887882812072941270751299649610989929075679259200569006295084134899525560664583497629886052758276887400089367001520796637567468383995828273016302373740984595837261650652964707097460166852961002171962038985966704121110479355221497090297526471292590480490720301305281388682453826140476392695606011267143715663360209583008520525939580451200777788634579263917185262272590286823835178899226254010263383982260414156110511643197734359320188974835499335370387499958244748098658737795763574753111997622867022741205974560222614448427862348459952101039120284964163778023660808730146026378977456388988741740548531942108193760815377164088981327863673352683099849166939476388262052797399084017737079587269387299825772984960130022917577279713793993574116710589294045960488231232270668660551518452911665301415719889390508031595398032195099665090806010515770283447801418636162723467991851155339466369806278029984685471656902839696156669187559572554523235586326443151563780387134665106068873416973674752491398795667577873992954112234111013204001552426305328540949875235997707258640647044768059100375754299481722348589107968478285521915451084680439068767919302829190623745929535320065948675656151641583284252397207507586769174234299063892622627409201804378402290548408362483649573586019172941008019424303173326072843286612641578701223442618075538164025462530119924807317503917847189672445073765654616115178019365738710648457227545338491863128863558808522585873880803059586847781615720652066331880953823702883832273747443563953928713797785779079864823678356656161463106336968230149454537162322100947021445417025378291160206891845721287871673799057641051391140835228177281931518379290137701960189606622733027117536822464795604135028383270078401299974252554202085245826290232652752912661449909907080149302837758448282159273564959414026906619919330292678648731860962993558055748629195806549666022607161748265896591420089524753318435372207887736620763312779821630772102492562911830820992536047658170193813621534006509966421166002721901554617775517828101872196257366464431445023035551684002665786295995332268442034526726612450981925818598526052588977442269744044420028522804215887788701436768267726803542351331408591669474407713402102845361080793506163452202166346635232398070834089625722160603773756288134602053477703915424756441121265469705721170765410530432158016990472189372538142760800841063218183255612788309079893055666638578395073823036334763505141781288555388612061272084064693223697276724562409569984094252687179432508726540234629967531586129516319088995189618668193478982191934670128077198209979558213531639675152708918470148136604682267969218775414592989162828629237105325386949288795567183475619812132823951345316308696626051277209009394641236556996146919454033447886484206297089000947622439597569680505942187162752528120004250796687586670401223664748215117103539689378374755085243005914373255096513566769019470834837359965636459576486666749838147502939685373022804363605866748181083367096846060327342505917632896499817787183360719355864251334408962782477076300402990016976317279498428935403471113918107650793000806346730204442338545158211354223062635520696937970105782267761831580252115886266329674175566804007477906188191740310953562846542185844922814251463903349666736162037641559505754147890426409223925061245973566568461080307578778076334087070825066450190455539385432916709294158528730859665704298969710494903734836931205082833126195661875486018989272267387608493754892324426551853845430276647956503249986132659778383523626894698814215321660753882059261005241484973326457330432972438525034259042944548340601752457896284903491543372040265544917893145553621786202217025898821145656505210569725886042540094752684028318805003490310349139986276912947633552125355853376744783025777769717087912344125782279489526123188141361723054238999567898142773405673102674283430165610983432913137744616071651323722071997133650403124155207607736740661655487871510541072525440114627765504965987591650668337636487123700929383735452073470689669774862790038634746645523286400170739943115667555148678708197227073531195279826447988704816909959576919717596320958639444852074084798424045405192000802532388714900313279769774896770673602765252919499091326311838967438382617817360167120556314838527300159997214193888623554577160473242994992418789225295339948470199888666446504911469943083180897785016453864950443353608677460012046070488881025663588462958689378392561499453010597679901864720455927589568674467359661990103899271127187184733842524971536918187389786771933114887114871353478411996531282160735642428305791992297338066097259652315485820748390229811976150831290708742338056903096747578326840077226232646334830824497794832372876201126261982568088851300848225153833134123793736016098819861310790936665733787524940475128668917394744875459988256322664918521020258620262192867809638017862100723082269202383151584237191390212066037473602763171413470806289456446169859864252099622915604240455716372927511409893794352464851597585602005346547001801537953813502378993242489286145921644418496564274574200325616307703179405112184736556131051309998615993951664663412245254714946880702915527590243103303019026940702797724478460333612665688662685205710830085255896828765971212728479548176288701899547544560564292015497705872520353933834074942392928034517455714941303793520834946161249419399249078560739318479329458769446144168567825272309326208098747407502397413872263048720628503248755073138391010956541565497654818041665470908236126086626370276632519841542659053134924739167838934963010524374943172984121425630966792336678303441591707258051584759496109271049637841557743147364316243625506164461121321345767630585251179219323786212725143152812688204876032416512283761460042143454404026847894885894935979207205865353750362426933509425082171383070939280073008588924745073297345241248200816287009321239267300551018072984276686888183368994517529220233598299358898860098779328794839705318942557223878498949753335114184526307763305216862746568247597756098463643420117687927988620730973479561003129138570131912595940404238033390625649060328128461317595698853674771783396071325023379766677987171772050792875219405730444622781651609057329991738626088419877103164081726758773104729715865391906181913791906600132174972643199121032080058364620061160147619115058805309240759075459854061275762122226929747179801535383698839416182570546363986177115386783931805898427734505153969992402978378642173782342437372316623090238254160044385805296204452772535775703480505162682912753314857595093257324232708958564812276390984498878943087649147037550371440961048761049693712584484854257975112619551727798630513595095485270082585168360809923931390326934790123345300131691651150443251775717242781460026815487010555736519136391538789194076575757039161501132001696695003558741036352683127507373224284520003062181036539232594345238887354301166013898495579395426578990496833937348432415244171993323719015057908017642345084073357135855662229429507882463963406843762181688722642758498534505507462297260967622119994631972803100360229109293795688875865302272162300082082825949262474169075143993924332249806915754606952054140088364423633376886786637865055760478405453907485910696990382230282595727701360147450018031609817788978866158306208521579155678583891846373063305432468392460434489455111813275606250322669432641587442461342417771297454016580762078263234539514782995798767547464021865235280078101556948856441953056904250079449190529221634617338801765795410914258808717515970529829820348750343108299458644547511238628397015642105226156396520957893087182133104465066608508211949725203797764619372191102712626553905029059420325252485975219676990315048165666141102584196603338619298015773736629322206571131850244831079923176934725515494937833516372864545066324396819257176639652906553956891346982644061398629974611017405352969818125265414072621673509747129410685394006290176738248859805734938774243129038819496997572418600621622198677938908428716681436325730808305356571835411167052391343142113585281653363057290708440940192103169396669013125194554613560089102727955986051604073418856678988173586817740055523787775176728617228870073166107107641835248630142752135319228683294162370809566995582681970998094107928101989000001830816163226198364883107998133911689480991033304570784505644271838652559819503573112761116093062791125154541634027058436392962363162649836445450788898675516717058165933069740294684717369320379575802295404873778622132586354782641316775636906710513264284523512960006775419142897695251568887744997237074401701301722023084652918022445323185060138918532663048162680875357312080641324666685157124681027764938320158165665555395601602422522290656881582896196931329296652461243597257246169283638926017353031664135976908559792323748113763988845566877405374899302643983357210512951684680223345802858223812934846017756669068105031051380918821649017250060679309750997773268300775894326497734162489390457627243481283659584368583789748228980955808589092157945718917464627396112879385232088645775640855171225417385027681277455090988391190160413752981900594018972763173050615072391620459619417672542831289102936987875465487092461004210599834516635142485170696207003088174615487602468818581957158618159904011426625944152687548178291300429439963694624910923597585068264264588793766474501272045262449979356334520794928646125379713922560352903874690613237376487328388153002664228108578779648907297098522633903160464520269188222749745619746415260266017931584051257679685363645524598440358414239220391062928629273442642439536295926690096101966578994756587967192245004127008555682217863932529398822131588031173885755931930429052997332868611220750005146485265875032362069240644963104867445343322557096949543961734368840786631474996594750466112596397483540106519036206819403194031131120867218600978955967931129475727783432800722660830030604502179506382897487298584611134607666895463041556414757636638078730013213273533445936557541531809365733079649798320745170791108098842574856017090743353095885186819605608877367856363310826474894844474690197394143983232603696777770844849875275242683087513260090963140527818887601015311257355837823191093621436042362426705976479634565203021227295165285365317825858940380157489993483342686836699632049228177919604094451116492864965457795371470129886914706700539092158107102118613236477594728633998874179203349594572224029077574867582476138229141938996996074851005941946128665444422913322982867179811954430156650471992416683516545692325558158349496679389336092391587376343616225483258268872551334895738201726241434803615246062511724808847459129765224802019632958082802191076089327703424177272777677761364183494355627858040737318555382115181091948448736069632845154562495652676864608787777642897645613583723242736796506039242326291499395390025406536747224527967642111547773390494460783036370517289675039685103719580914109976981296080693290027525745759656492124254441266274720548228638387800005976030959490116659282656986068129125008921547273003649027418056280646195582912949092620514149895619187579341726278066410671005657407429570010511856782434168926838104326955943229387420619325192023002780786947657183627741535348009306737002645460904532317725675200588657916296789898943183928347833603906798472188411788311502074783725838828154208416247657727167468559802655505598784456681250084743370719939834150165955426067147698410757163197763235436792776182084285842854091707901681916179008559996248190831110797230500153678943545161393416964311127046195102540219035831473200881643799354583086808771085250023649994741523357753280780179923615255610055873925416624730480719210365928309323294644688910449707564173368487456878227498817060640339131251546624519789769661277402051912848764713430225071850457393466823407410208234333719218698800701835906191249555080504603238476456294698394179052428231469224951439515781737042740978626301074107930836145737738582907146687577716247799970671138542477983813071083871942889790962269588228256955967043482745274063025518116593206510716319285953780653333635709806649175084336893733538228245425695144589279809901920164621092760566066148414411690188561293693314618354767923060132952523142691883273658803092921568994591629798906861658063718993656657288814043923605345368920741500998049507493124820465709823617664323433868934768882833135402008746145402847077656000627698485249567120754385874052191684077546237826778075018844542244468764800306473122078797521582765448414892801081182141823414548354799570504603869969812935279348471923380785936381872439895365702456429358958734978746271132321778417518393221956673306767753420617691198060148528470086687539720237902134791396817108152956844143818906198755636991878722649013102096964040080785673124141273900451382016485086703852113941223114428322181549043794962899471886761513025923693904606187516679502494341959342913886900299073750177639493018968070750053706017005512160784278844095984923986668890705002325316425348951316145312439314879608722179728997781983507071604197566752696947379708216922189847110230479156562037234964654690400092674239843871577830319378190999931137279421034001405454717683613881573691111276362440995119829017982620690442589266617206762261458471164547718265970339333316045051488240352344254084685319838980239435258384195566459623779153480091473417042101016615633880931208786971458662128357439903264573629543614691054302039493643057660039380608433931677183874357383237366237579431651039206931909060359704945498808933779203820716115157540218668791878495411984904624250691289832241441781325527769808958444948742667770231597413071862211319990001073744995714310596361258472657870523493601505576310414223627819104870968616147756820995747061125215643628027152506355810438470212444989690982115967192980796658170999996558304659144364947837893756976933731284594526299558721336688999890549354272568808415050596008524017230000831299725910178006257945089424122274515621961993528605964312134653214365222303720647385931211873421059676615158297781610118918105167281124165773033577851171643080138442222273237626024440963425186693346470164687141376366985116666149069051531775884796180422041155431964552995522363295663206692465460229147218390388585978742532995540103664187825735009133031455273181459874944400726826805854653449222893570295267559764136419400222781081621389159396475041543487705505377288833032755604192895649481061061030023542975605826337671944716433126073981507837012512231823740121980446347598360668161552664220036614612741765073408084528742049119141489316349024259901576917489829071360114959755153113361431417451134813834466556936737998153713794587394552444265761131494654352471129832440050869567393630362776833739147208262971656109430782751966000253192343909002554381726410647328452286403045051801300000935377885639557148136533605076591872295609161717572262877680576340606626373102429761582874188229732893450102527829161519430272895744445886884094019608150659923383290655137554656128533970245574261649090646545327459290388872580135567090105916822379635535070809491160489401629586612753686705268194842984320092008722595570102780357611210442486218307667631879968106593820041757536318708198862394950755539037456645394862865140894780978746032922143095324095893457713265837561763567714558236887330886275383136580764620913685472397771216466614679087889565303847307018351329871020549990805508351537937033323590420146876147212986252816421950163499677872800560566760491627454220226090042979065005705499802838644799922474721620073830251046503311630763032996287005977243263390004585370632661134237020866500969703819365739026943448976989366477871934717404148687950734717481557899849256548035599164713823282535146080895662453629891740987443472113441890841917035391636152508668207279527593719922177771701856652107908958852367195480564073207840560853476771116675666429902080714699112923696184092024915690844235279539173436559957333909137265402902444210747242356003043215705683564914136662430525245948737280877209495012693237735243112559748897983007072678664392905651178782839898229526967215528675704976060643377554654778947709567142637470657618016098486214845675429599614087221452691515162089368111968200329213398570932737113010270200282239875704002102102062429127462029789178840853460081459832203128499102075318863548522563142811108300198279625253564802744720689005808049291633800270700871969179379586144528406350272860146621260839795408747053747739049548886735495238623251298641893624210242400600464881615988349806441016197544765814062399464069265585656360541009121357538897706780287812682448314782450663081726403265724729882037835638965625277340902507377417237856341553538376863796878683172466252107670516492291504990799364483395858032323018851991734371383427292575291987448124639696076573937336674781016368300806074772929380976358244376041846996951940709447596070794390193636781213211144279715382789691573797435825576106982774222217589275204596034021356139634537041882882408822818841532782093572929348394554300253354674288776409515002993228386787817578369846077864664093390471532688738227693221954498839231746699789625826368934487944579032842158504022035840473940868851373349073485391895470189961683719123646025918986420558460639581063878235148589257700384175517315109754970104957287849234860092229395606543269351195391979825867703272533024849535787057277004360561905069722911890675456786246818624006469141169717247540777739372273524549605200252192012713533322317140857243310570145424611372356180339643166011641139721545466701152274907340006265417441716212115562473006607601464183765213255355473197530621791721055682722070331789430593794975426572547073014816490205575358246213325547757827589545057433775165550850525513292922149103109878103500944279071136355907171527951432480828841822140382653110733231430089074038511395344297716840205213631086881016949071515998385188517916961269594067175198818646865885625492080267558814567345176582807601816626724379502388043722097011937240895397207233788914633396928300292061100968684769026763820647494661430670932673616857320624709448133488810534673765607005324511584920227271299764194803889799083547603679348020627096043899473171096534999941612444922916081726428193442233912964894335326649735279695246034552135274878372137928008210902563626331376160530507158794555921348839784478198067358942997619789263206471635993610350167124374324538989239617923688422763392761653273154999567660792670871600083241207413911301711801598866841592549576313673055201058225804590650506710947346724079785052059313833773046235452018404838351290219584480406945864386947152840750364532109122077528453631219696541701109846452800625484114129584848988931526774978788814833183585752157297072671825701439991550450827501886214804340031271650494179827365495530940638902201234237445990262320963474564004958980759898056730626944711638561696863601116358391300558914778539579738950287978502367871550455044136518122490596713802931913922697731120403642559817502286731131430271165797722518096809614223730831724992346177529364305383582674428666790793301529912257184020723754061426719211210087222253366072544623618539918625096676323767987477604534114346798736185009500706807549041758554467678398864919156208576697755722696040665854140541998432046132747191618652844043195554362111993055175948168942164630980428641874426642138841235051387037713105382545601253053442453376261139438076305085204012049236565886839250409969577118956801562228123740438753671118959451745001370691926375141370822529887656867435082242620287020401054812969649138282573868346116961114042527253694053027993809984989902230356242537620184212734705379553803030877946490199122370333696016991939429699247521184589575459126040817959640378939052163782291781922855243184936887497655584224632296167328407296918717332590141805533900188681791618816104304359129249377404980606630942036200363884778780969531981445063272827613596633779309506354845557594595380882671553699103598930019991811793365340960071666885651986889170202735203091689096813730568000555856066482412226715394404418295684265455058147984931458119780464189517931400264723534937667857004269364234177996650788800591901491589854726695155597098960753942794711068515724969138489466318878753732399918921410717071829175667067685619246851064689211967165539561142383366675327076107181820293604742563378125429312726199476676622107466660737111947411507810460449602099825382068224317716792741038840470758844805766736930028952995206582601754924308638414211175402454161237157759192731548439402197645139471410885164962421195945887648555035025648380988405835470190158515348325961704160953751073061015618148493015829235012948831393525650548602550295509858781619792200152835503420292929220202659498257873864935338534196160561798162250809850324661078124215204319647585745951848898382110902234811446565117699285389572716577024949842431875726455919408425493254422127055522780247402296440451830051765818764171042677410326512589801407767654693780036254835879595269400236022754274357677316214412279502075462116411175008179227616359840256285417641164166292355440448009482724685602282255248631518298657666367431819111990713527237055417747081276397018809988751941994703604479854711361894620264918241304353341786712436072006629402718343661960032234702673396815337651087447818033174228371269570556808826478768212985090241380005923583551551993048753604493145856524034284091581712233077669335914140499287183119856517572152193703525672263719766618521510362827443227216315584455046696047198988291769109907156254842450332830068255039526222888053070106053307367792811910409961952003327983338016221686322131084236483248004054564314270039746265980458886635798189687383597198619928713663210997101871791582874039571153886891048971838677934969422782220571842374849159804238780554298487692492360048221956803539594865552022865153638880505070342362055285965831448155941456254304722896304094666916052336905076913013642859443367557561709420385079472008133338995373063230537270869241594632872793891789319468553906890941109850234084077183724858124334668140712843435979952651410556123347826983658881730565924439308606547848395965396859842853810594052491586905933258005252815279874704678365848723510099312432270366519667519292809103028014021975362348217909511281890672999446730264753882001827391657272209730495851581443432132105206883308488938333895569193012935340467682128166458340913238525093186263604611995618753934555845047048118576378014630629231134523503302715500134456892259356789018552227334213929116820442890431318516859390086257336150932482863823273486141177281295783775551693692235715260738349615638100118393929586190797813631892155709727425353395195281704226517409684569865825221261951337397542177255210590368217569913620707665351891629693043046522978847575949436506893772437050805387908312602071081594500199562850491339525220151010061484157226894625033854359205621566715980247000211658611049115402776929537220932810316228561049073453062587832357867041254975629057079241738782966523555914281632824731776928815912506499185219429101313317140841701875735368844732773935939532816617679687686014575700223251147741592324815643497360408971688255741236810878959361542794160278489942274837207910032634346957543043385571882378903079377770379551513054422861612069068006624696967672817910529196675234474500474166121716303833793279040187109504732709015356979252126475035578023331362897510293970440671779582482379355749020864217711939984874591447818525350764832412740103105918555234911995086461937762825411065917806922358384602458662807856348790884076091988422546572235647017053535375301777475327387570585301195744163127636561649465327416740410298390337579662710564653117340419939826122793200827282353959018077955219189147101538474915776374868895291132056269048633644811195573931904498732357611673095746620752818449568124593114458821884159438438391375621066874149159302651936512791876429234691556490200421568859277932853827439401777077617256891629445267478430361837652131480802993771416780783160265322416484637099712762680727155910665971177580139335676133989435093225786472104414404075788682790562396267457533279447707603013243536130980291780411259844222592935106904791837647051598704794365141054610374661659514447469012007864345817860119922270592256813858192621066005010041528672198265040728079166666620734417679972262403413424211697405318007581029470247857638324227858542141942444416695463186803057953669421175664130461487315995020284202610836217304749838860118428870186784676541478794857209093836042291816679748935521263560420810707889636432929967251475950622295584116100896896897130957271823005024249159373066801343587128458921327103143762220512704773163174998860300722378602267296705609960242164128974525795567615682395270351650133342053322355259193521514360006681347877760940563044413730524758991334053869775681605694826312644374179781693204486312459297048093428135732875551661968097902064180525257346753892518752879537984711099292599123435255383036820265571101165111296401905551583188944063030281802675118654261275837011527760641331189339990227536323204592793966297825423955638599289337057675713559788992419406657238482349385221138129886136210996092294318390169100936904038566335895646571196322010691830609742652492735055184522145118372976277061994907830216806648512907887837377716836596816591037217959866485919195624069466520496772133085061338070631212918590072589990726656022375032447958495922910930566640576595584107370965927873694902218707782068648334659224167611799644959839321414594356075078763382877476003237807236233468469107923952451621914121917318294551597543420200280569421389140397397954874197970044660532230353958604970942527770645325940967880120845113304761248536190545502951326680602811703728480761825847564859860159778963754037468008810887421758803663313876136305938202119657207972690400456109252502422415541416528262797946644554431861094954203368891879998545635424008479199065616020374117117470696136858341035691476979110847825042807260145271809762910118142399844555181106978452643083316255733641744727466707751593027429215887943443146080125868112990957431028089180160500347611194808898488268421932559520520287564455469288281348030732203395663973984663959854278358217890851720353792016056607104174926004104788508400553450804902110448957705220114418774615829389896000261382028854705246386342959146431088789129521673829179805537655269641238886612788859446956316555113469076954872317410376305511603426980191570828294002568810878455408997719920210147820936868513033809714198715692891570616316812757724153745545779243581977795106902433209128995798221276472299225284942071093729525780127634478940758942339182434098787467970078758594863818756395857775332950183663760665561283397646538707261093095541191478211872590153565487388848098330583825804042362638399343816426771450684232436343815739903969835830489884163621393542833732086007186975452126679959785660388123492371880340413890988956129964543540979688293377981181779001466837918715679426328475738261660176891630023271998144628207323382853384179753428683298675304894998111873203686639423160662213780180926215617480005971401168808208805059565791445126508220561867718423383244461046825173225066168284657744466341409655777675654026286644001053470218495587744899050817442520742311028876317281017957642160304118180297029264402530820161563520070319736215522654778610450801409193869893707368458888432000708699252329529622876169379679429598567556017920742658068703578463293782313741790943849083267331646461748699675336399587492691615602465843441193737080492751845619181210138516106955045255561177351386100255105068511697152233402596445571291805043971758062269383976693573492022999990535372575715848960168090600783978326164399205253065293519533812756293414405884753195724931506249439730367024329272611463430728720868506037660110843017852556280874965778383582665016168303167079743204694668628586614106347730775239737615572352551232792889595437202868686093426841136945454393900649759213799474651555074600903289971848536970712735202575283024121983598083154200996127323129033063600446955591908331578810061199995568327122158224157902701963730721568653264708455746172613403530259047175568417491740790247236411116534686061330814421242008348355649619194677992758224436312495374835725745352320777385644824404734640726224380883211503066253771545971522885732193701341714248636243825870086551678662555747505914836255617420453712467135772869597951857427399771580191635428641047286378312210329007465377754323066492531169045540939423725517840446413521905339213722483648914754243774554190713498115220990613382159568398701414087164030789917587250857675192165485683970222377067097319086200563581860651547076887138818865085476560028365070972167680546621369359584679731646246341013559141265535700840624327413050572775047982370873776430053192765908098047051389181957359991145865326747856452204476012358594158497386446728690829444744212698580385973302152702205933364232949944697185080428697467756531418615309115970208923070486256742755355051694843858811040056191724217374377186013944974899625916021242480150431827743104593300792526336763734115052774165841112004179289283021382270582374112803622211303882655112421260356595017263940863858379833808092525733237396476405024535166044641984740537716211134041869911876874223716306866327625504077450963366633580947217657374555197467671086623907553874936285311952020878429944760159758862286953372120232121246977743149541235285208321209544402440786460391531028202250684508622545131306921310620780055280449898055812182659457022258797251939622929805474246386301662691165881591116511417332053093535594379941531860655429398840543813948040890405136170496858104205658486008183770456297383334647788550284497000247437682215813170619008765945515010546840596592023499756225395744361146104137855475272413040875536362318320744878012538151466423126799646727686191050693483761410408726272517523647052351507748222168040133248885793428923054098751851558213875491294933364084521351520062561483396935218812465390543447189425607688427687300324067894586820524942469104531908595285406550107662818086130055406752685200557917005687414783318443037090023190322965357215663544435757966225508988527424654052438605141549410767312670875977895786512821101939595889553360261907896270566868477358044827679094582133570571398122318757232943722172064971092669139503700995407344203858808647889303923558211518046396575075257668218280899805552583597540790022099760039375156731723452755490089702275635889239252233967255892743367722584300826890441031862265351575024133465508761893648224968695991697078054608299132037416492483322022069593464615536521563354839303258328448850569258689037932957856526246378077950040027601525907695881517322338872475866306499201950803511184736091599011661356688121024905705209849152632743224969947729629102313488972232273305239109987634168899599324852774193475098576085473989532164558434904679945729675187786587500933755383865391840277352124250352722423235851160506898861166920491475428674208684445552195362582495878421603834470489157266625740965298797900688183018832755604454478160996951059630501045351908264546131364523640929867882550558770699964486817219616413014407814687193390935020178858658998794752859211838720674261246269307970606367970679152716862349841536419952053821036794841995219617384475632807212549696927783831997472959498799730746156715695877451025767368466439726169540920190061987744380926257305101190755731127262729374024953326267922388188070914004186569844331711868258234341177623932331351551418166079447076337964525947825330474187517952243371148332254658511167615406643242476859824982486466346284861528880816483356710590528700568178898527628136318339539720859828411303334459684006410590073895017919565382644504533097152673409694806921697918381059605524337185112487965997323135436626596264215741604333189446565333834370008670959581060965920595938483704255630062987336955817873428486541460949252770284817612654616780498847238080006573734493972562468655989239132859728364189691368070521244422251223247656966328982180921335425962278998371193414863991808249706057231673454716158213238300294562010414452136958825409173442311854919940038464534407057902989492244247232669751862253964763856388927730969472568861554419085280735355325494913769649988768398531232005008769966430249650478270825420644622123778140450758356210270918494897530981973897612711734065867142118060970229033543728145710548967338457228821417736781166946269070017221844866342964993453920868626369599849901300068223718854253604031473118984525673136140909244640862321821010079052624114330365833731249396788785348177116546345161913546678557012076396096307251216918449884757696942072445685006424321781454520385999677314187876890741420976618294409497882733404451837313027600494481909171048726682413438759333441604011090634576951076441335327194217334213079290536035136018605696952161019952323052305968729729743975355727230392068067987010317994754096328152989143362946658938348078496743555611169061215262933570429627866387436415058622959917119193841540666410967068174101122157998873490309786082837744186279177444335601633004018918328882993235445765071627333387453589855684618138874317561411890275369211076394916606927198691539178539247607657416570054829111305260421357786822960398729949175497932149223154968107280970144085218227388616176843525917742289804003668859273665521920715022878994289079834284388256432350205559994370051951924796259470259340371755702304952515483742702631658300281845787205442987722093674041021910415221357492120465524790703394515706597041585539637617651680211300905001609745011717005077060207438217433585915135357376982403199203361603201407755225519420940993785455516403686810629465336451605626399559855177333304020030508099367791470558812452678578794919408630684184267231113288620319818068881392301747213090625223110675028518983809556354583543046251117050793390004726503389812578947108186321909736970398219698584141459897476143197098992586217151477461494813097984953622205880626411630124625622009669488091823838321047535406016401919870453782489738696368916630686780954970824211163913843200190997019886886988178539728659977627405125861096771044223632620648057192959326505465492784914242940894910801825204104272416332345993654048080126661428849404487196079380263713570043795592717874519336119428507319211924835137407465998493360817255700333536510469043473274187370850821086127875929781712566354177588081370363948328703605729394999311735113352248466421928420947701745900033391993414093240109844647591632744617538323951832687864858510389627516809451775006961560067760014162510049437087521638940294502360174421951533246548622966212767165787225443582756697599119867613936523034937144624688549247586323042857225952601645345578576657551285585149495333075440710246608307615813819480358595800874686234061646748444512610708783109593485460830055534443750585025082462664527960883660227351262416690368223296712409145898339376576645236960776040306524340183759729009942028772408342344688477968755911454100111027567187957115379094739011969156841686578948719080567988423076472931729683591447477443833832277096171229335318147780930285579912532435690140776844976295488048931080918622003497397886207477205818235731944666823404628327065357793858893723223437297084370734809751505686720201752089443508369252404443087115506952540134874734420818567671504403381441375048195252808195569637068293827782292000457042030018154856042517655738415283364762493772267213893751244153582450223611712100552034675948727262381442220972015217613081280124247984322897538183435425231266953342555561251066970403637345393796966541484709681307424524599130785739386773423944975305759506583691713440214474509686943642771150284241554257456649327213759957825269980063567124078480171401082619775527511597864481759464362660792080985911944621286986526651318747564304449987585369258040581911800489843008732789520987022422462204883583064871799391323772086305249931686712717609583535855676621805578778238017159333886991528885916033147237663005784699697852206717479927729316854742830140193061712628107080363028775616913764196879953894839483115227804726260753392621466091596956656116418309923211139675829819858478269509033263756331620006136020759027367047187218037472308086449652763244887461696480641601312420269162435110317571137171155295942615302091499235294561150910686878821589011926704985093105127470123794642614202461209235713100207850003778278747529726187793959399696772295953751441521955554540922531526311543805387156254124463108153401972880590485827686855953305191718402760730793885228090158936037193061315010982929816390048766856038672129186461126132473636101974141329090995846029427145238852862623042323565210905417871151123830667088406074664664758023538387411887085308418579711212236498532475529387816839517605085293939587272753673990716215819726075071437013810644561196590276015147448364507262190411706347155392347750150424468264672292511203680473985485104286065422571184646697796025372386198421959803224207075699548896559042974720102244083223621295131109369279301632162319727565574641564759116965730785710909286940197334461039344904512640095210642051910049174390775187484180582654588603297003555081955102620555963671296324812750944539655375853010590231952747883943658254953168461990602746138565643386941470533963051461866527217061409526059243015338103479322701392522791987193946799767957503706523266989999308185602983757142660952883548751422367452206884731282655337597516477726186524499586978206645979004451698622998481331035103755368194315594007982949702600929334382610819212563775531132123078510950621681741748281270404285907972268298154545735692393952946305367765977926961411791296643784034968074779992370508874427226976366364384615545066617251969933633649556729019231286117540746366970622371403116688703403668212285111413692002424756542514466987243500394672633540225357250312328605426670653869627282815854339700965230384720102655876281649099428528505559696757475579392943409910961610555300906540463925571760958869885529315283666224591598923981489889735597875702068549646698760008976014296623600027959983819548938655063761871044961536924151535171686664238319042492296010697205954902600454251574802079066166771416444043369279601868084386590866579946278265007111802584563937540234032573335524301987096683728085107494965647037416521797223535090757757335521347736091038675815518080676677829168920665750074497156797933137197577469882417129253000190298900579976718887736801653020340537446505476425675600272027930912310937250370110832677405704481330639405376268276230287620766710987043407153246131380816941441153166359229719265899312281954661105737521239177796358176653901216945878355977956107955356026359046789534660236330248229461636523412627440167868670738262405044312570798772344527018210694610958150524964841637451319596002177919930379505922760607534241987539099528946781335211738737324502788138724080860091292852346130400175998996423375700606740703347645322547140786227052487161016645968024831574303424185622682537139337363736782596153871117742436784582774163508685066282495680951165728843331937797522309411605323589687157787487382182359186181368711597944874420519081661737882045784963023843568972874610322986719525971408803333501852316099096183483280459773179666033434827120955944517619444723133049257412991162419449392514157861299929754119388915824830169221822550058961205439502027804897170859228023254630112972578071871556205869737604162104230198694176415211027624033293587590546022818104547886003132051972954930168517288198226648287586631887408194628195397516352806459861558000290769231581977508131865655130343322050030211630585780563352422770018004193098920338425614497049189216057482765000290234407516874924059395386180483372911071585110577712720883710248261470736853981061584294726521569237614897888148089842461698458825461446110266211263678569588430582084482001331003599846443008387781081467080545333174899012917152949218156699115647391715603852057878522837474736592557755423319178027425080414864519756547812746731673364008216688719795087015637873785194062532795048368516649978055512561530909695329395725218692375797138707887186023532087312555105668050206893835896957770184777941359734149631210207076205035538263002284976029701137037243999642832570524848751138900077679216878584931747218361542091281802372811051538242229357032850009707736558963961223768809780798741017225949893066047512633412795894642835772292438480052663520214170899284694680684540484212768051942884025956841577869461917487669867564691496651237942345508497147668720442977241434482846672055282728875253515347450354359684896169125656464582703843886605513624800059380501064671482599130660892314299752926969385097447564754251891217146434356410465922021659287773036705729926741587525912608778508875735363301400714260466488954859478857692549219769141113107966850104308094431389707350915147308512618588583647339743065524234485083341069269966267305390875620206291868216160599335699431504566452281381804966461539195748119795600577402150844428995639421386887363097269479576238880986131283254538355368152811950583650221477909588880228234091584677790884034305158744409868896098795008940919061750116682036748107002678293326241929985017520625708651838007354352719434739029762404266784202949748469608795011229598693696454130304907995337202417096394982454774702317132838681165026712569464407644673780855898145066078651838685395461527736847247751458544615313468675061250669100229012157209695922428149133257773742802094259546991818278510417344448325714804608920744307312731168524986980241664289388824253815632004343012363286790223355272309228401920321876900093840605830749948779525951523985813362274822796705415802601420718289407256052174221768464489318708832703837937865613529622655776878589495033631476372390673517598349132788373664455024227875717729310350959389177025238214094014322046598535537929515264895364901005121181992342321050128207965691293781542460874386055710211507890615130304381209127109183796445153182076054082986481668717592777205742931763754707670614866728213224437764946662593640279507587614756247279598173943401188157369639307773853908463883235005725262356871745184739588446179946395246960943207299005858083431301486998350153823459943467935339804890728094617557413626434588466279157617480534907720812732131153101595694184099135936519831265566146694703822304822638577828970495022721894381463967173089033095308422840317525191454940784928548217212136034180480984277705575353842225672406674539755869897925382735640686684205994613731156797111537274959638743106609186006508457849263456995513478727363722947118461201729848998992654650206629283505722490387518781229747483879364624341126547102611865963397121554900673523361727919218371742340846175729378648927681672969019679303486666120367839279789334173499055524279141616420432488165372454174008610949509487804943906710801908959781594495691993245670228641690789151966355411448278830446298241854678776351472680259743517640383498685366177174554568374504025267017271651685684678170031387008006118845692898853892305846919700355161682087945995317476396933745538499841184674992919494902710612650422772058499885859637747113134164138211711902659031685609763804302265417482211835970307216476427535252691793424103843667386622344800125557330235507241521193985706548803077192730110643352682812502121666252532673591328825163299129067947817226116038537605633067541393737885909694284283159271548372010006275498191735945069266109196427779595960530268568505578303126462732393521673973879297837607149640586934913965443938301817080400141331127062655635658942569908339272461906270616070421513938023907464922787970271544572425151213461430523416508768672794371639062100684013128999627016722491562224111444847378197924079627631908921097970149145094567964419068694987166896199539461649245931979858383691972430773039044805085083261505621502343019869986787282192074738076555664967663778035082038066057267737688806742043915092838727018172908022255947914914809501214757094719223318935222310562424465587948765503392161605330609951418004122064968237076401099248293507103581050199388022411092353486925716424794717943710447319933171777734803551788981102822676835707456977758951294456296677313394439514121242201288947000435436906553658848418633232842370372706127475620234564496294818225233542935722881474900473106735988842497990260412328939382954897064136596669600601625887996688058351442252642974152293757508278250784347349907115126582098698960189149490120118557069240565869475577023079830555769843086360804449893815703309969184993924880011338263355010528198739113035534571249585110716020760254941218269685571103180120106940706245469563206464768486099017585206313905867496380872321103316205713815523281242817791690550692598150119605681956773157665707116360616680584506593682742613505901546356305932114026432922585833755673717604242471340072799701375905869639573105208117795072722763688295709951682578918481433041171755419773962139976777706392870269967043029230058307984189566679642543587351832133342877743174942140549625254486565606327303573420027958453868181159731859446356298734730024953499673157356612235641984546665625530194182578632388501456281152724034653696780002298428016127989868225637998725976597068856091422899514776849060788649400762154945135816053344668752986417210582986716307701755272196784083291476480011696861684271354446748642830827992111344617250953883581841305835170330531107718844141333403149471936704557788238069948601344966358670108274824323962175291963592814930352827363400065320301230377358632273172941302836321630848517526628245620836149001336963902439412754356360748550030826622973013788681314267725550902629774983914914222109889377215334592748357812356937334877685547723381238948106476833547925671991774993844793753732912713152216082926343210252189217372888429703754922861378385645613856045434605020986836383744948363424522497011173268392403241448691184617218050371159394821316768217889803503177025278390246605720690237359182910175660579891284722979864428739230693996592608865487275128161149972898825920314883877506532821209685464240771673284466689816759283553833149264303935993417048098224849289424361850364463247152873018031619441570259541863226173584853350263379704874866047967209890425558225564565604475319548210522125065666436488245324195251460300788109714063815925646911177533285376017702193207557581711273161627156327728076619378611929876950825778595960992191062621706663171510025127853524579080470284306029167669220214732643494698438472005141555643977836949487701157719576876795951188010890165260644658583679018892981277829089112804791660396543836139431705933894901263998065182062870967190146683970055987762979635578151536612872283320299086263764781876782130718717526274243076529345395457427133011154858887019995101192916136143244041849089616063433184834681295058404756276946763252415731501723574083325245771023294745001626280442927521730266459615917372364985536312473076938234175975386570437218224205682362057469402716444472644215133605957953574643866663293822637522865667646267520282826714701811135592295714040695868049880024298918548565091758389148203411716760964604585324185472880191371963692976578653070932279028106715548989238052633157691894295230831940394555834425783337080130384532414202010210569990914787468517006169682492847055766463256842787677608491382256341560245962915985348025607457890172247254692699523966672604205018512254839286597745054736488681665400553779330282809897242658196058230298560716460970186389473709248408057935183929776316096347940681578505175614743292242684792095399593107328133054369861945681730424574892399961873106024070020687445900679421739599952701364423136227472304049487475983444092379156912773657979292238239421965060465648610873911394728118475000242149911264105768864305881251228529399574212256603325579059833390254550198159809579986124884143581130170279228497719942938728750971649572387759240901463569980388088315389607502415962900825970648226929476684235755771154716843039968618253214668918519901496331284822081630613186070910304325644623223569491745077029071408117250822735311275879198630378161927017910082183988620997057194222839199062184814440735416885264491516898624567495124202656004993739554620998915170413308513353691234545248188608649139513831174586105078745154255496802062408100593834799544717805697691631264597491214218632016631631515146786235077610366056801739263470805730696287553604310547685992241139795941928410566782727119264351672913189276103775570977612233467552208129684314260727950133132052198174466317116194880950369289951945577109178769488382437276318396160517340453396807899483172089266840691142251334377905298077797162699594085983803122560513830831250353017634968130991120140192458163333372269275054378345401831099351208102683682731007240155357501028181180397403618748173570588693005722375370831722623897649840086534527475811475839193278836595147668350357046290181205623182180562684093088231916041354982430488656221692556163986874032330322756512312915565252589535389652298588909618591112049677489795519022776886381687710486805948628687022323915302948639053035973720755564710973328400102562867284391904212926257070360852851696220723917377665217504835735831512934575625527551436612588557938631307063600626665451432561335137462690067706883685344811362002192000318268491451704757987210717718686328060179199389904117835798309936957868185691603295401036893172925486158241978946689055995790883433586079250310709240016268578917283071616569339572445439208749965853027100676755501421297256656186495791219937020414098010695496998303561064874852807782894477334625230829469958403899737975459826716921766507512989592856102040491479789484712662722609725329586244831553227354018875118778087378538171569027869810110971128224804073236895095491850895485452025954003545949677359118802347539446571434949089864435180616312990954145899790880092191509156434368508171581996749060345939398339742548059960725450863434184657626704012199826535924090966801904168321631649586660444642745535859054206183414654369313347777403469839200265799067525701970967138705547880836854367915789455939156086216010762665414932935451054103366843000043245733753130315468596406965178185549101268537261708706980218694249206235474485098482379854098163471286608593057766696993517824153080290574102046136302201156078368021136346788907999739024227225960252242522841805789857060810832508832991459228838177352846285220541921595541150304001840849403068155017203379992892112919523951986742469532295666746783688366543951127539857383916364345268301094978493457211633013933310811950098040167313078737889109431677785156406001524664546635812043799117360471908137886028071553860198373226673496171515198246133187950185944323789740655540988687975907355579173293550293822453967666609300146188863090537472067862084172098345545057910539525493564511399448121496304662769144403219463552325499444916005947517112349660127292876829547437352192418983639982453419202496163837034572227307877910477443469911524190740218046866830658538583667402298121538414247415319262756362279891476652906385856594096091887387783552879574034589829952775768750084213217808445416203933396395556112123743393602491276749402768642649621257807909550046897180602034411211410361124646110909836166973962683127234821543918430603884636783676385110018872471191136239034307966488595897582838672428934367185249937240028121689316911624337458534091645016438034654224457121434873860412964709288809864329649334157586724749418581757426828295279912683434326364236365607031700343799346057162994219930320595055195409915559727869175282968826329222313952858489655940738242857854062685040520466885992395618608932638481605004678443395130259498599629716130074424906855256282489201954676418227425784528656346532801450338766289972418987507970520471490066235444496906167758169722552826206854882393045461110936864888642045110418816904655529855311930642400125988159618278549397374157623226782855589278392310159075918727299599181584774343162358807695240901370702378957540712620855285009796633633369918279137170475294830586290163842729398048293912050986734827234990973107351752073742514839329222650916509928631062771280613923140894361334148050551776695433929907975720105420649332138603133463109138274098415550950693180771650028254022790624901317081142572588954979866134941163347549385355800469603493380723565067768918064028996682399969880443052292797512799390471563679314212800943717696584257841180568032628289803917001992257549202833625361340461662844558795779272316236289012763071770298291783076609083256455553700106329462295436709944743847712904274805234462671143352566333697043841021777124437834631584230277227043795047273445343702884189049754332605225642683381662347696628840422478626659551538250919605534903391154798768137838563157471070707823760875620136034718926282345842532278629179369883636369338170236677593251080604113606557922971645463210200682451474399969894719851434146383212952967137345808177346963637319928276222055139017382703824726750328471397110274667032233266728254934031964075361307932616581151138736224040533433592930197785691147883518458380647046764666774086026181553814889857815445237834458513872928109925148108209177086954338047330368567729273622694566168352063951771955661590554527311213094445812444247459088976750853809506446582212391530835483013847003649391811460376883258426983524691309378599637466519085718468390834745237246876897927421658912272215006355415867143377134560776429026376392945404857257506523194984992535157533562224389098436901784962681738313674272110040584464502534220804499120972390050208911704344232029517460803034062039883661128030283563288030065829615519684788450285677067618882769742141823206797693432515062113288535804232874823729241260828362165451228576003244785452140634877810062944187338012665209431162087537216239252174805441140070423502174652550082858445572325098209527125002510917032506946978914091746577199655541738416705008642346668316861300150371527802557625131630518652212225394755066200640755208469939582280813690088370897133570967890421632791718586073540445842902549082277927639691707023360278765340857922606434650885186244382487529923840843823342373296896288039877807417662424493300490714418650277204986408666032204767921574586872877604488311968489424360271980765073437660866125431724792461384045307196616832309136996409108958429503435973338797645609719619438447556165926202768704112967307088441365746447049150308730194692046726751968505052400723610465347003312041141142476402011657136794735891113919625743844989340034343291247840193143465835531716423920521983325327704381921102857951688885726889373213798036336132704069168948173609391575322648787184570954221617884675167312630437023567592560028415575547021967156362472855731044397127769734532094211722572241086820342597097308589251389907722567428682640005275038003230442171736850709400674695569880631542879384546341369809175387658993606491055769961552016746739980335039695614723717752856401563159604071690053075446022898170625696059241567323727377728855834407061788418352740794276239931485269329839722115697830731049160829087421220390274274858170409157025870919607419477206409590979409823299514818913837844794171960595693311772690063219883862810643843012219515879492587662732428598009822869228703863052946100382140632435348703868428739836726772077933690617827432877162322773716698507920862708750573711106332274101709756778426413290237898106096317900004242899503253445284540008031461695188450034248219712798657071149535419915249199438114148524852589721404209292624339385592830338164340926011661137725755263205584364064660071436616768214794570699057978965887265870781878850926110824378552324728340792160406473112022507254975802371239442866813399649657729329342926192404796059721981107138571461913701569212554930056704537358345441170635398529570797287845445661851404446815631111648519403725127092784400315153332416269109060197982538183295570864774026489816151315651144274531091350188482378631129690223140534048652936026496274242742386433706440351278316075445359799159510819277139266824456825074892430487983429575733816980607579667225810669366761541706970562560856882018895584814455849045142879229200788567601806202205656134768369512477457737092006700002152565765587169565991669821599267226714743581851651432165164704647331854015052716407480810832275017420975018353749680195048593206700662258701978437136829133743980220351349709390282802985377858264747700918289662351846017056459770744816558434420181329093602442710286599285032825104613973016571698669766257625108584195199485776338080913911491246897549756158698577384378196240479387171234368050308643359787244908515427361719750263373725269856754682971056504730097303306609896969031661464371209434450495963430195175540251009226373737754556249336733282452462938489866227876640167882940489648192838816058996349916257040881653819872916727722306197674356509979048135535914796608490687499774752072654607228536140225632448703059831406020491709587597161376336950709480806171589027492083176993305951710954047915392833433458872579008781313192417907202548662559359855419075217339226471726458567023021027542252446020671790202144526771108874903155160125668318473204789178085332138831943545961122462959982623818302851263067233825734576433678785548534824155858925311074473272483608950194537597670980021008303974249136221825635394146660141931890879217854627361036827000017198438377533125932593124270541681047978003626333759543434466375455734885414560531181224299230099146266707919295442272916704425324198640009329853600293998386793852602933542524911733946224240656831795200600734887270410831964035748188156679029662733496665067280921660557123387483618519467728415057807480437530353079842108798588831286353274054180366256203513231300482973355655840883050412770400829744388702899142899167387866247670149975406065559132431363208282159450671255927757984560977059062333715676966144023181642032970583582149055835972530178693226378118860039712315520657711627118864247099265924691960065011067025560018412966564872090547748591444307957757676061131488174888558023855302983466116231180382147045217100719809571943216029495919648094236947233585940967087593881033072946964937068082149134259081718905928563598188376698046572618702521996323402041995659586162440670630047877173975585394129617233612287326836274333759711803209286116699537098004021738272238840537197536049477580392718987794237824948973406048311140184140372033650554665678848500181956003909485326529947518727566120196838134376429284735349339859699755993662026788306468860487811134243546369838479309925094125116595161816482034410524117018849213663650045329465117135303678011901245648287334641611165874751984660470489274817230311292669353677191741296165047938298302166539385858814489955380971326682434390069738763301548203500455090981930202625266037226154670663678681042738100263704240899619828019278926481718387280998031869381095151403120839340587405988129098544153644487180198601237094944578473195555374347583078045037646929932671911925446527666664206114935560423822008206220549666872115443368882439800170640868395930908146462309508354910362273620010956511294947041349108691262687589262022467460927038891186399752475163023174622752710543798289586137544934919291259668888406188590343213204385302640007161512828218769603564351669131009903054423780130925690753205871757903841049110590889461982668260068446205130736556480753595631443175804425996736344718697785538509504921877919208729158759224521112218907295393714661018755501741510605329335028340207768893672813263596171804532433611732524167029551036420489742232631570927589293538795616481032220823412823429252777938581698293573074471140098358547752678821778662626540403613063330189805404647157164779787268555702683516712197519162062058287569114090463351896562163507247374628394127374081980964281625582535406855367397428897092919429448147366815485472822968374323989115765841507591571605218424298609455810577443690497635694644905734712733198746588193721028181741679726476958915155278824589751150973537445261021606574022399292670052481160822784233699171767507847066523043442424113643264519624380106150836362346012951971776280976834628360626523169957837497978343552417610138085726290726445685302509619499420878011361521348864602402508783286413602696070356340099200778387638070810725222334612472907559485328758412054386509145136233839028670187957037810931670833315481459062133975436823894220674321153531621695507151108859748722774048054346239007359638701048560431133643748815883725169663429659305981433543122841125858626235189899082498027273848760683187416119039721900312676369906329733563603011194537548331462800386345918153652290642883845780324359081040566200490460151517357396616645885287354943831657891404659233660402560570741817341056918975550770729118483539562143825481903979700368247176358617816750969730685091294795084883888337812301709194463443418059951138143172464204247362636965421745687066247165379301380201913469527628545247305687856210123679737011032078514529558890476559992402801397269949114879471715544711150760547552695150923915702592131497927450553375385919267344156460137880000608142363129615856577101781499268873942607491837662557021468963919137657573413781258918286538491788353235587460240265590966340726905489376318440786923658837234324643269976074222644402728759462661845345256564550606047385571504326133578595144745728674459029379956870566509839324917070689963209904993169701151555012413788734093270546753366005413028998110203025340567086339159775031655162649576340536869716157504747182611212252356188306640418679491359689749960533885241044463900459415594260460071330552699084951775218308971777467293754757456075627227324045525076287573294274415505702710476581575292332413491027422370513948237746482175388822633223960206560780550731912469793391625457553367419902492146710670261742082174322995866470431970355075480980181295068867261471413592340459376447237551767024087465450409197846730653832359994809505443914603437194468917664596455850529289383060850090665914985416689369879694122886497576226846052981319932738498849146352449071541960244059264040459404798755439087221174837250560979193202125356315650197858241357563350827497306480907030053113871948298727139214407658533415861864833016341928872758306340868799238830911536383975972118759844385828933093134576475798863150472088548399926913075446234681683930428262412862107325395919956562275730982481726220812021612235023526754544365338988402985845483738305058005224095104110074478772125720904445634478853065609922457476561478126093944091980232145756833718851581460473886004042786544523161113282354643000488849235880312326232861632059303827331901548850056053250708176589043031357377468154465518505135907012826962491639637811589050851036369427420826692325225811154734585934825806979389625199696760454308942490599944651700090958610117833616307988919340537732234499744720381223221893154648565081300439989205334444494081429381182657631524263343887887578644576426728871627483287301672258891234188500840012550382032679681129014839060587009341288335237572221556738341980697374916316184819807598933306569564461117934060348457698573855296726634605350363059595714001692749308709548127586849148154224384543130763591850344360331225622265674309843086457253644615150335916379297380689849894872226208474770780612810259283866309854601399970920560683093705772012852066543166000331109602917493958694387163027742414527974796684826041223520284589407692933129807391538495050583704257521007703717626161439269606572236202881394053533958550363867733662442427106676587257116355530831997317852706721273889544043258854954975396222599672231069543628398011702279151721080870861888562637975743034253103669766631083153448989670879037052735687349676809055365135461010306628367528203022263402360999650037739301842646552935327958747496097523779536233026075156570665847497349877495407560407870846160280447384725480693946908640742669612844476377867724267800916542156501956141616187184735572031954811150884425528932511709375865083376926837091007294793536459484330315303090159820856035003053400832120033147345154258209702570201036789942482122537631582612566246290443905035949883420825044819832815123866538226303478847809534154940299082486685326128535836701906226494435089656374129313346327278838841055839130597503339016818449797919997189258356162207831483576191603890719674771513733338443284223042935835008642749290460318460001616637479831724640043569334221020677496294934505568013286349591115332376478068194806066150699857576761695775700634671234798754597307508329528295378602944509374991790417810240157699992867659503970993713841790174755861846634248007182021144345218126966902937100258168754602635051986845428127862789599116893028902478038726641710234732732228039384978312872905334772467666547191595895727712041725845970780505933314086383867875925053512828113917852254297202835330379709286765862895243403588567857568509536046334362956722176714961358956459947523466527182705297571330222031990905522511517858854585474340274390134939318026118954855857127191505904170199052069740259886807037873892987426737545239423364528932506148640677684866927386742335690755114017744737057647894285767202384420734459852082247848902006163818729771222704093885232690241307012078488645145022338875413755233606757911927450963927735608854516735473749108537355673995076825077693646180558481129170865562471704539643584259372910217012571978948617060468228088303837578039735098838908473382551601471515333178107650733454093147085964335676220346015420171406104249987785166471753540082757494568354877291566582087132542565240536059704102985732713985990258334594208783916317602282662012481771993973424139983666878549827348305845494432140187862501015085834736013915766122891028195510549372654900867339854182342410803734098130890086418526195806448694119614755632926606556313178110120149746242244731156093793561554587679177452131500281938564536940924787986070275631084562284249232434649825218225130710072001971735705706810548177667677851083067846017388333024724508958402374508400827134708314518568842242123752861520921759706477757387153504294160237293225656654716291994587069297518581680087976462749734750527331511193079090561432692065949922200324990144882811298270820111364330650255333571842437395431914030818058460955975191691969113880255208668363357267277130995259636819027460240105839238948285334541884464473520796778815012258435071640383684880604839389919086664280447514695509732580145139311849760600358574925042150054788453715923644266702500214346288801924979207837394490282195359006492013591879178156250549928410435539480020666731135419225754837810991579926815777013132489385266625826810822841932968963368790011762853141216876787362139478783630901414078544847817524730429362500026428380548390312479940162241275660351039073875367088076232164436630385518538380231887429003200350282167292676472063985559796253320323717114185881759637452301461069410368351883723378236180843102873750603074070405032926144236864782497373545591556734215526668232546167939537669488031795432205406456810464253329864972105714903476809979133244521044151426101845560216453879511371135500030115244813316392027140908152322438786302034833681619977377319102776429266669551143256816369167580285381153463417140877919757228869571156122499279461770883880590636684328415316577990553818472212168063864872530860129090049793547498646450479379011344465407948580395875088049717276798104143123717795295808907218995960147632323573774513139288562587619541354656769964996322047275108001087362546281914282911154275519838545121708508253764576566587442567496456258453044123661066382754872707389565181303207336301426842703832997022087118259947487856014389661290718952638582013210869056092100312225080219391252139089085294726035448096438208823300482251365421160895457054231171736207943311942629012765131148048134348395204857996755794410840761904535684050578003782786804576212941796863486934941793480623292042362940811946459099109967968330649480272747968093068183419918057964537351763917891617017388102969349997882025288902608009186193805774402127639857665494177800021078750512263975558022277653245795527283257798149463207833848606799376323875234680270990247663081203860403411405472326657969334172187182405674334855354242205539282005760289163575578317694809124959302982800685203339476828933742165388524767256046730347009222115623106156672781048358893450162522196626113744999003897974427923044579715478811798952240487398513438389500300876292138514360708684510749046804573330404579094766509510863258518103572032259548516787493107181668891105178065000695612445751086120994684315046436203198736530997580911538555785168798410642174574485008151213157645715823510891250496434146569800146114136724121734964083496279607117068195293795804638404461612238876726091580887639267862183110852165668845972264228298210774632078232140918549156106870024260196623954628712708392820914407775409207968915471890530303708344614652121652397989275044336552206989505067397191174296442499020157954370978107048543249226608901551519717854590063061511580655482574693935673709668662965086976302086822502448598322709942673164874973049444856933684914343746908967762601845563212548880672848610197769043790257281322360082447958873446847382166974824932276393258166013141051071196432924491092587624628620068989728841781483905223555718929180798512090799279255053609597509949061608831429914365633236752747421797282751001720997982221014982129474172598846150219612303931275415133363013756386980084839452648360741291816401132381494487547757852154563715233430692310059168614951081983819287078418406668004355363436502398310250651001951365156414029055782078041502274090052229371799029988785636559349460763302980481255083319376830239569908023146339994492045468847877688616090121070154465070149857480859050026556011592935574214951251334816434410229558102904076505894885879010908549986232558314408536169859296068516385877501211565996370487955925675815807565315982062652869048204435102312831176998999640610506930964067023068558178736022983011112244770648657439329448019566397891856095378841208046236086184688052231392826489552725774877839445355023782706485779737915244450637316067061733070952889632944948830707373281586656360242288530715025301358312398420044778427201979046000393889919015892082611360760155015742221072166226412541437229980780715502296321621623260854843127473107345780661861323777095405164849566290030883603076329180831520480127683019238491237306770656433931668318687183798583798908515740417731629098274273963183356689795888608150670053510918182063703637765800598173128679077144333603291010306871074261557442691466939979140428689373567461089532507164793954846983210209059047819663703083340274108003951003893050949159336042205732580633246676159206739834930252186204803349224669555327549944140770142230652110902298071172347272619186973801232999374427039999245709600211679834624737690905711055127556497973586030373273842123797241532665664773216844715526705153322873448479216051517467783213680920033991732849413221797384515189713366528112274360015329129600815304205909644246452176189634250372475556960720175423463686704098841814900833545730750394645773764969695893414153446795794346164102941074841895102834680987978985314673987255489906680813976913442202764917497674954703908864599320829586903386000673233412105991776297389881475754293303455993843626924357955877667563113636442119712946806191094425300242269624593768508331081550724997573502447868608648937153495417224930332752460422260098971514218296972347337632201180447451674833905718360234073249703188796586616302535354168432902831760514263934923465133291516805841425448316651912136911310313140640039455164081583628613636957097465440752446286239485777411089418643282887584944633688251654231370540606767747938993277417382026022136014556600677484875227084904538234861121564535305710004057723087576320118835865731026814126314447435341451676739492911320619134303754822763792965054897053253352136992653623423541135431329019952208079227352538251429481494459240851593339534572327206432906938911809062716497461265874214113566977008023041355998493235794141619811888424576681428761922222789409187738938480031575710329171444315536902491725584475346152098352706781125415374200558903124266636725919709737642373723343173868739159742391481321766878857238049651976024414936520573216513780850818816504434510701941200070293122529293068218664709118918135867055658133736670777310754502594116965538549289016118697087336521233665091144683291295246803571448457655510527942211960697770167780627705202323269907060228651519627476937615331680749562846942490537362503855972027883710578385006969283847818203828852771273889934193716664909830759200331766486650870133530336725960757570695846139630723035421592555003581081518174108908164107283501525344502885479850422668143426356728053542674944997347661922590694533663015739661795031184999628360496999981784109281824277884038993192456568705006959908332454273846203713475955781253113963648976765540875760972742550466721564963206145751099886063523670822443773201563204233866921138285107809069535338322871568544409080604993247798446161222665370575121882400095559502658340020351693652134478631375025631604901757479516828819835041709760312482529274306386390470997393713360902326379136919576647780795586824891196607710244958314323487364906064105922112863780978196692337260002664635673511344940482672791702783326482076104208078741351068104346087429706019678531934619710358413760713201554028494478686651827254871397663736883091490967920826632052030941243295721670788693885797482111134321389626407762307882880501494453280700395492871639235838545754217528070944278395948634258460610652077778816695637083123361027255536265674908985011057268580558760876683140003817511248111070749858359176956256294571011867236834905904183387221331936926866121790442267365939169031721927933285786108215918265070268752485006017909064245092327161657584848327219949857158034872125499564904770512932759024737590836692774068405252820813061737857543977434108058600099693562606523483958441839479075816974845884449455765529651670106601702825747686356069054767439079205729281362464238574555752217679100359855689962899124730466825484325424037662192641884513817292866810797845075842321401043123975965775454246846552286036879211013490167680277770686193167804544799626207452695106920066488827816262648710428325781159608354136275950011700138119321783102230657168225708654261904772131551494703825160126734904990143563695880169034014103038379922669183853379325898250873260714027143187967155720200107658752570882944142098216828322917166196395256890957800593738980985998776547394625866879848601370201801092081864425195039981457542606410224759564743279858235559568093112511489699415897845195025705877679031937204923806986170910334294415783059707635518247720814574887757741992321094179436927885014638205479871528680934564110224843773736494606921329105007761960574731611504583648754227924313187969885547504072820017284279782035080757505345306356234127988164203401091459561268930502676538238607177206651815736204941394702219161124590916240699282588861567908825785176678786866064228524034463397449921978809449775697502039525271438769037064853876782672506732091889339988126514424162197552711478985988676152069479898885940546727848316301871969245765137202576644047011778345666027417688835725842110969697973397197815570975209545568207191576929873955781819941975719337657673657758993291816798896480857053672242641082242135425877688515460109845029880667213645576787354217341767490546543544532100384143392545378697307835287508711914483518609895799888998228470518459770773857847823440754190326379429955569975429267941074897593041250282494518277684649356176177382718648647124845728571246547959426191131778572633643044916101452179815549579799841922480112487888492343777209248590729875352660014719410677142481313305844669195992583461399569267798391023640045981089774608099698725433249054700892855111844467558122523474562754649296636591152420265946082215215361294066521638542798107497812409736325218760001514157109645863772878864363144195408867901591776857638425237537096148440743812699794010824503116987334561915650461215714773627866778510249136528124238731187874600144316221996582957619260153052183964564571578803856740000777112965883401503918014081075936422179014228488732306957776938334744617904947068402059922526616676953761488569402571049909892302054255463974345214435139185521077401550352382034293559711200518397805435391931290787366462342901586033460043866991724687500242919192318261448426825303491921801714513060507129613849251596780143504176875642247182875415931147811788991751294779519439797198878764518867278108502609153317096593517286021977354703937740157488557927624305580349658289654713010174231636490775716869051234794563944294240299379402346505190369922796887163293658311502263881640835563648046910070213218311351788820384055375667000601371771204352007586903805606685451718082756019349093026977027610234017295578533519691843793771182431789977601244112989563622027394557051076731950165598565570367936342541081067702930193465588381531107014093754386524799992219967947626775489550314429849077520907304168654497191215915504136351855938596280027720676999470409198654743666985202448860430651380046356653169426433874321067757470668351893107800569390526035729662831656529313238957688672585929450673562076322431863082018753577973708217511040027915106039812784646526330349733140090098625041482021630794321786118416624035197642877459967092469698186254679796647087774245557908822815590636460886082520798209568623523338884139976427572116528185037086876296233459911202409147786766384123166347362160273575409675093072399676495599300857859706887987936162121011212189728428299012116127195700124526388434687091922079070421188315402588120484347708596877448730450503630908851091374857625112041940479891188672474488832252591500929515205548419952233905848342277072222726034888235879451778099627058911686996422863549787934458006720665033165536942306054717643739416816384198172013653096142914948082866964386025192962559207023146313626059335228011444828554519046326924765370086442521255050744568082817586167915371998487604361380201254621764562974376818743522318109621052823464457115143025571946959607088191441351202267550978616573746101666291468150388442919096009385898833977730959342623890100883124060517652188434833554199933212937648307883310136699267508928001959192886577025509121740005470855265644787359791506103887838336538165147050421763621218342499519433166837006754204541107069796845535447340750317788181620582342551501021865638342052135716086099088877140379554268155751071265627636881421166380390225267086831759332042230195429883118005629907925110782201789699481395295592475779016836643705441409955102053762691669295957797348919891194974373788039229665428355045688497829832176107509377655285290832828750452780133403936734221449669433719645931614991943291921303023721990021995873762326486829798551778779541613579931314074400897249038779287758171191439777551447442237335775856536169787363361654340740745466824964115538094693351951600350341493898231452508553565754695835805628352652663526118788813923048398364150137485811540853862123070121816066636689213480812876506761350879885594976598502172080245408406387703905190297148819867216544914409189428818306365749579217215896155260199860410754233428586673426148336185743539252187252451543575208538068006003567627711088422901401540122932159641258007419600911327946346584452724985962108441280074249247945710244589422514088424181197460193660154226792413894643780516707058081681776873194068383776898514888491359493736756358374083398002877805646375295856731672572612424326614720976552453224348214112403647828177263427870476600721845805386081494201838066871678235558348004263938436115352474914332665686700234923496289623728113901132534484649505309929512126668384669336492315748449716652716511373347270877632907440304188788570681760338208937233501271298503617041612663571971802163435521957490540991074718699551549676520142913324249744791475786487056663950048417808832557514053254838505344693194135222699940252372178145943224662959912081032253644531320866959495185923385451885524420049549208409534794502058646045709876202635241603468596352197827255597464274759189031068277193004622733722229831067917899838140938269898977660532395949734014945386389156206189216543261383394012064085532844576033094610697086864078789926372742469290984964551756857212331352339498863634178316021847521415316436380003098698028407538126986429962090776507996660824545362108881735316523475183692747178018329401931243285389371661889985712752234659894207224543444941966812561342185293186588770910466942170900231978576498799166602031529132319908477666216038681310514498788942619434192727256303720747508926140313046256321912418047451490546135264701852227717752081090042983076444332234854428846511297593374937251087082190028787216903922778562643432058199287515710634575866376475280812973419952104181049207541098381481745761218878340115520999775026109656471943347079111031674033130120685952535191604104966517935041314907355318159690270824590075497257638289546936976242596490670663425467624274614119591056690183833564582454079654453039968348109044835410858946330727424846519979949364397412470216497581566203979642739113449051048489305545530175147903758099802824810916136727994646887543497852553650170031033866396700149469044293091954446863689825183168808241409501106894365165631987144413353677461419130759272885510908912463470242797792206544669439773915282655996905352125298236719614979464227819907401219879801626207411790616629647852662233504480067372480946521048087480222533243164895502895577829854485474571464896072952000727964738103717570205805318170953648949149716587532336346671988544984196774815476679916381212709813295439736307797119284472693726090457453311855633303916195088784501772769015151043483440244051440811279239055629715163233169650892290436963828206486162331163614055878989068150501707393851554569536568380007300773131147001938198958823813178822277618411155593868579816052245049955520836103016574585260615254791247394319383334168235775626564586758607730495624491053821732130908445061334230332371170591562207261467375518567801045195881516656442157488198147513949783551772687016237304390166124978963248665483400654835562220712711936431546030778793446944913129686595270109101951675994082026510525746667358976648067167342318757319176601217050876922722043594814556408673175716520003726625613778924010106230543927816801448965934625594977489788989531708537579191854287133742267840137469551633511460267675996693599043029495059833348029185584671140095889228385313615286477468800169241163054233832289823843017200652548971526166141426129706540220820991778026886621110846759352316645794025403450214340957003748521428635359364043647711301857733912220259501612668030701576287278854911304777144125799036010174645999521513625084674646934673442492877158218024716769632838842989794302822936442655390831933317557435403505041979823157025237055643072491587120634714613913805081319852611045455874682384203958964031342938730066099666679686702883357278846600665932115473692468870262870135687475886241337465745208813465862149675227455927286982608493233301426614542762058878208414736917849800610766725666883578737164382541727426359283041595384947607854610550021088879408119844547816902710210493419549537390822692583941106684163539944739591891442447001876699449649337263492193032894911565345944164381149663392814901849614739125054259401820041447209405108796944219977646052521189220161298645268161568683766514591125007595715348147707048320277200972569933561188395899255114538555717291210266666160739666444442921414934032349873740073738541764177380457584128570458866914731119202464841948797533133710202939828598119703677086225444535867705470070279227637073778839420825806044695839193960156399399167233501240967052190681919564214505367508509402018989453759726218547780367698589863324086769097823610787245848085926314006293740567073809533529369596960246116084355285423297044695380256830112289447715997311744089757175274741576162789058023395339036429389511654335996836419476553851555835863258511794131104070082536166427433583729248352221628042253655814506441658851077382610236652628118293165967777769447887032327283821138480320137469354726240401788170320159588652656520849040705350780901948869602712443886738184074066639253150856970403965746576214173964724471206746411866513733179418282889045447338782206685118852811892282997356852973240652773330661852389729214053753809235486640088554320757436870527495532172772264267509889835933689088267528885150208324979227166150610338818564925746780220381234754459427775303799468530056161600432712006067564090757607549604692949174844636862854018557734866550711680270660534941412817367725333688205779317264733318437603333588489970007087175279911191477180356732113281369899074161173187188821327968271650798779390162449648891123887961712005761350046593664006658795611794221567668571987495397260326200628322866538232713397573947486389045503994486225466766436721819621008364832048493155452322133955208207190522402107153513016695493786194949654461285679316590009581285268610434268470989197316042219190980840195066938792209262515316170506915108065798909998919222785248508779726072585287770622595440870179496565508558594018652084387953566260913226917766084561408487505094059931478211099545511676972183190704185886169596470886247317141854545199637446348371910585234856032380005701080662568238674342680526927403781546250524384489354501349841608090075241720902126375726560653806700313088672676778274720872865717085803983376928874621508793080560514103658102018942665713096636370461569709467018555951580079306723807741270432496244052586792051767096775628228744122898602635861909194163313166500285345759245173372583317142691426201309448906717302767446372834104018946178798897776873229672064928178345796279666666387582627173602017741380269175570357658878927204896904501715603038609849891031170863850909340982180423660674810681551448371205546594305940815922711719565927814950801380422324100365344586825185106239638129815035130020944254709999837063189790859624994758386550748876235813516335939636804346326656708654131431694755618080335710950932244078038200451088513058030570224770818480391840776011457567470467271440225996287569398946799010759128042486391323176822696290884582226726106987725706268373390017200017597951444644101163877066445692797045140952436031248279668735853099069997274104316129856538003634530683998296357000986223810761930772714925728629866207203315151955634019653879358319271903911318642217807533426641671009731038846839017342931026422522390332982569543254393472537906387420634548823506135568752762890098136727390257323605546759477729825903038548596790156068704548787654437736532498186856847126941680491113227083152778117769757820317146318426200366544924130838147647197182836300976906685927281491512881092482779147491422427244558168285330808243023130697168008051475194756077731234819178176518025637254637833817091468472275649992939918821223604848679273569153481336455666742210432739507198850055075923884793250007067683267776878917198247345971498351490549052256566617580240173478213977121974806094220329375846162885536152031803955880349212485885777966862839781947718950242611026665038658205060490833208736522356150655976290761698057322442569099870673943182074279679873353647110010784153623841936629871031900931253417460087301093483889607668840824807112372439201058253980793690684611857286070721479248901937082094386728223268583095980345674265218130266760137137948798615347492038722907119283420101920240977888934739316559633588701322978682846735238559254905004812472863697054044070091989268215862891860717033131415765871724263422548712661521662610698252685247572135566435413065866002493760813460279328958598609592194358159219108502793880406564593820874677951371580430791378208888220520506643647541379186551646048500466299465685402854602109341496153077204876710949931893195448725400051393719765228235141768638054637474801246595745670956925147464091962638286145609483560607095336800957281835283362557440944661135243798597332118537751778600603444770498411577975137418415632343598838054072475023304947249131212811713827588254808844983387909011589170466282344692404838880692511004044932174720648547636402638637722845267381342893814313412703947892582748816722899304589800125148383465845602149164072865279176740852168666906411609027624443195642773712031970451135490788272350843426659852769442117807137742211907790845694226480449588696421135098420302993078325429881103292917417184927491801587070943028479395899553783916418506890693572959070843401269034678505225549867139610532565770595127268218646898608441670524324819792543103403622745436374001320430822543987529250935915882228485924951493371540230313833350077312198298983233172941719590472596633896295478776843241277011189400794622563184542505842825634841929388264984386113668626609444654855755372779433412929119624795473407925894574724097394752788221752769399752091813761582360914569340674799087213732753376456594605730731011086905619368367645390559358458399173694363753273210255826213749846877796113032961871751966971836106856893780941947132944673592924806168959472475223276205135381172958830938830838643930733569003064704435788739440643129466188633818551982869845539838035544105810519475693077182330821566638843711401229623450082634357353427365174076851140653976469157296398089388288658334983509858707093013531740805422115665424717132359010101200123199072396562210581769733108563526244555448970173160655355282907615557266046563954470347407570608153837065021566797208396768184927765912129188058051931784853673210504161799109848270761867696512916114769993827989845677189033711868773914013829502595544082816413554524759708367902095281040666966621218089633140061787311126439333011773569247462820436939383200290434261892001084885599522413309731812369592615572536268948780666495025329124186064459939260074634671106533799711130454120449285841219309909625263603943621633211365430058763492033777402681066565517051456719912835154192715410365801548354911899894296191817997100520870494551561765770462133607463651610511216658126915595647655999698298203660874297386726979878186277026413420454585695445947843847793194647933932069512526063788710534840622121549167686480687654139559514208937622739459178518936401077804813481247305033579310104931236409268359784897150488532657166958449006865782120206727662988900976637281292552679361088616363752532102733285734088835813936404534774582709453265620698423013493593128655147955971180741206421307416467801728694094905848724638500868347472605463064804618954299255056641073323026609867637435039367592396091629489261220776587758361577790987787804757490167743484819307161448080875246868676511875509452636733248438052585942129328628810630426922799184580473592557037229511908987736520173894550536725873067430884180288108309904403660925782054589789541153688921284146235287653651829030386603201106553144676496115892214100022164666062352354090961396392738731624203801234823125833112848267244094650911581680256565354612288552592410940040922680879846800646497117883850842564054675244037476180588080546549137593770341536117473030460460680964509831511939694616589260630197651902760921745933943823534828195454722380707138974362798681235622497011936152654218685247667196245230511875223174451684294338549634538076056370310835765577389461512692049090342564681707022129390074525612795115371845838003112698549289370405360287573519291889391197133800305640923838081945963611261359044065902908335405155556319374671020929700061504537833517683230480090783474502721646159664066456893018675155240681936987613627841558936980425253470560767686599967777514749525861934204198632555955577215418982513237439230360256846069302705848424431917122285715922260224386906612491282200464376441647742861615193630758195735948889765029157265165422971091296726700778996708128410283768876017729043374724416458637696492956471589485095655987761347695784429078516114437049419114729398468740629193721170193438535319132176066008257906696518380273031271008954326343709277334190169842360310645932755783915407689636378080765332097332602215716890867243004756018172788776388828930471304918954461741455336375326686161901934128577968592453666607373472754277711764559735124858805558952341833091987510617140513137606615537663500131702503117998995830328375577998174853188257037816624091351805129419171749443880455160854542947966990399798231105701334584476508907943879772708301125036894578418988124634295487870831897928286974848573443939627651558417530128597505702484470133104270492023289535640325208525736942973357138702350945285757967301820864652815585682540636952880965707834609606914218766551220667646142409190749026359066696154742946712095008154928848492472707564486803673347179258990943196292634046008024084101243379152152974477002383214261009012193857842064106015084549198493231930934726619301597410372414374822453706828017427206900044365214282842356061332217834163126222774011273826158527086899893747546964841103832556712429439491710829272720524218039333125167393089019801749670830635135886281595126009164369669183895016963257024281214030720891154724304067238686144327802840271978779603991469912959272798120632792775545532795097939672167983190409761518939374117476073875036718737472253800041004728478606087120899894302533855621986880156628090650840251222128549086390451807886509568800276021923339144848129411716530013618782002632241436361272568377332663272555355352760569350523388564083145714561254418953156599402222974824634040193940803452338763229845661015645297121748898572425201513539514390324731623364423711978779961461380115979000213947629449539701172057983696758533224631470409566336498678620759496281333675108887854847811820783640540343214709550350663232114680656080796666128958718039158710150449718535209149844883445548496007378978679390909118697069475778413236485414291301121618329136331364434446188952461574073792822196072917985857899387766233030214541277519218417723847047351677974663796348124459668949308075541977031721950739830576384202147766513986164770388276096386300412387557022442652062545440272030399791350345144979234026615902443983459486851091104510598450199401477534979330540569413669970189931371731750388247515817296818935617422347648346303942285366862829792938669632863816926209800261783589583434147292114359654337793384725369970766831543964950774199901302756861527461106954097383242460232215476956659707675454618107870680344157674366168057326500565285599633234541069725004219978900249099139054639312810794233513896631905161474000774227871042994155261642947446322662734949978502635606632973971172785334054543073420462643531277119617001766294998453126197803580646842309822667965305131560016584691819231118159788280331990468287519042336026355007513541617125851596315820455150876392928138270519890773419343570276700220321500499762458177516000561521557263954340387541192920615306169345852513419453141985105029680059034361969415676536469251640854463050133184430273079485318844052362442546938192766956004834093179953064071306845293935105672475627176708893931117781063364138478046143960542064174571159534167248565328431961857059842080382367828682522316768584466999222155809152976557259543979128675431596446939282322163782015882684801094559157366923301797499548253005028204989688885301579015517668220240170564345316920770174148221045067432976450368807118010295244106068138189676182477045088295643771446994418442635140112908251337368157535729792821411752106189293317173195142020178233283015097371961440202358845975855450690719205558794303663510301617409961961753294742423655429870717589767136999510363453715258081036803144338722116668149751373773844065393931779205372643943138749569689928040136025554698937117289439051625861186007394293806526580405930149111606014291665193253977759715481667123099516420408260411401071154543858286304038886039950231640679246671026875602995532852281410781049034641734910668220543132729954011720974334195542526572762894083986238382787535791270722738132459344254053907448297785786058422241531892272143687086939772300771141533790720609261696521026936749499151477286301881977025058603833730426885441160879149658296972802578017705339623086729298442457785168505660701877114851705847987768772558433058102587124761478391640707010713934199768783978665789006888422230317546043004674465144412760317572004445654567740202520338109038217960315115466634896146264431103629773361183334293389374643480047410925071978353197858962856439136146542269818011254602991339132474911353607818927525963396690518038862938381620439727942725284350449295584237105689570626812547977312910859288792545413246161886263293370769385351403308647798690523584779973195872263421760651007018077560992265212579276827412270614519014945027713380802619160060301593746404724333681031301993074281939007381004408840671494379055171261086495259645003647899631901083992563703856646729202311626510211267658774651609273631350221022972886470233531640867476406912658480630068502689840386659999133372216246558027469844071796255689444505954802528752634784604701417199641291648881367868374132303521266695682190890867975679821282193568047202338013122844031579792706808578557933387179985042726102280079827038345128517384456837644949834683237904113102280113721808967776612432496670910447825174693632620415619204190946737395552289383817993792808092773850533267756311285731904848723916680451784895648608284491613428807034655372621681764582608565121074562313932812560558410723653645157134318661044780019776587437922025497338592176087091835614222635673640134849676208483505535145619007992787497056911633418117407531142265551303999038675220488937580579247364656098778422685798823498411226711419368689493776883036909966934088215721078610693174280530764683728132206338418559139661935625978846293268859491960266147486107946793867359346342748107894303576159877885854381681945152257741589193410621081317577589195726141201773568943204045436042570343463450245460532869973893757293237975074345264314227196719769404479373904479564786907683869961095739056654473177062978942823526142272518612381860229556859211575839764966554812820920479692997345764229998863599938801573878441800517595352257321759172042649246437704472354767958143761601894780180547629452848281915567996799182789944367224595151637713123689482146353988352019466597818741429468554669405849612586494997897254229461321595439006146220128077778482804806338758127339231280357866790118477732250037799565517262170758740041702439919425434810865148383114824112515686083560067451469996396525592287238088901498131988566045318928682515925397014024551682212742204703436837392814515281336339553853688881055159610139561551189189209163625685091505724402973805469282206818532756655066087292260439074437805468060514645588444904163808337069673947524269032193089772856529620837137304136254541636615144278904221892270874125198178251058523758664110565382374714626716115439566708352609043699697542611080926089495709049674012222641958147189905964261459903278437792558532144500688556457258940591814905552608190623575258613132010832955077682775149463066239357142773294947248877661610206098889738110466556473924384830910256394105522113290777819489183850153359417582686173851707607156657722220574920039430453178242018662166816294852909132040103793369160058689649977537077662921707784939512023780944148488705555513410437565564981913140741601523312414259387532625320792897784402663776520932170411285146999185151057157806807630516179168754925565250150336022254551647420337157931975251189134539140303210922925349949382074642639388567325188831266103426077556434806648174324092810270638073009679138261598377887765880265110544064529891402585025624724170096679163445121369188053311137625607995064167341968178524143811565673805279312216215409096149025562924339625166508807572639434962905231358570254318626204692987873211225022726809337792359667058514778202192832240473730008841114075146166283315861184626464404690172251347146803978352569061394786508975015891973666494592094068806018450449270913967714514603382759821272909612680800798985053746990918890566718728535069661090983164831073331901528057324564607394067876745005613532468704871733661292779626263941315062186687766557992914428854260491644516064688243414541710879037033604687834659441914133804690300803670036024929331781638379103207785923351550784591103567063339927545449911796974417472102131789203584533522855452234928536050990401357712086481562794712228126657059583525369869526891302197108038398907622682099800545318739041086779240753676444434690757417313428693457544384682460302697356020933658151138990619673982507081226199060807471128722233718993751516392011818564916783176221802659461797149761757924376301636022167355578796288591092414187845755294176847457510234716118673939720986525220572968266783416918808990492506875544630563087181376019124262400521585384156591148877711155399564254909510779161827259606909949512926783508248104973760230001452731995776019186836719689019263959582526872357515609343553562721406481097308503655729908549083956089726269034492105615586971503324848760341610187215085158405634990403037366930513005373499705124467692216713207191869102747301876883741180361484737215144073483981650935155664215540179965632583722230507951172039022041426904322553217065658693624765388234162821307311056190611742414272943900647912210258744660814454060381600473536225467702850215715188638676737783393313358216203521574168088464815613151828412335514784152822182322652231636970445631331718325909116279424588641454194746386941895499231502392608032265157080704443739615622628087804355851888382130303554147081060530470353963844327316101785337198811023065974958440470804990502015614214044179914672691828827095742535105136782125920488212540240649165884073600501696118774193393898785562099665468091371613799627174565629075759464622903387682179656402111900259645970826551231753466392485810700488618624400863831670813506865794383643030555988932365580639842677316706717189577904368642439116722457851370242903946942158398375819412265583394116277412916696305893301326846461448795103856069565913476055080903514318428688577554250120202184672298790083900991177962357689077805792251293504064523970726188933200597877856400313180775145308571815371999137821177900535399535590522820247252205901710856763621077129725179951711378541611369587463212991727390862704083327837889606791255836560056661689625652296300530469613972929498281093609825382558344140207730629417167074358586788356099522186461170090735055791792674203095152785872984018614619485458182240013433090607130430777639838035404746765363025856126439620165611730332718268099988513987667305223139838146194929766906845137179533500403245311425884315702203939223519488993334031628736394986860789844165225938606248003373799021655057960722821460916767803310042541588998419687961223643632563374027767154170960658526232259216847021810192200580735743076800339368641360851712202371959735154063935255311524799820860497461175417648680776243808397712532064752744551039409004305355077324660377902253340356532644296823704337582880984838256905854182806655786006307505899384046289188678380369699313409939341019833688509419640896034181849356327181483908135709228441132538112101760858441353095956420265200724255913357672050241164627931814667672441700608311298055541182046737092783915206139874498069055723195005710981196799392895799184974108789567287673203753433786756796610063805125351948685257301481925779494977669384153920061946323767046700035282890523654431920942246055487803196953363615715449882948118042180172942523223390025663475402432643656368077963569390105090542330594300562104157472009249054983873251348884805763782649655236565663419974055231618489032938092806008975533623278220370065774681518101400109752805884150981642122300975652252022761223662275666966861675117383596047391692535479797859412860008730232858720082979205422594503660427579578792189085726529298067202128563696807131985213842652675530590532413988175254561081452994306039241740173454980276654813157250859322659803695811356228424661903117667306819971551513748742937247838403558238933703482967230335958785803652745642330884839494958473101465068463560306527734079736908760639851457481807302007558067928601692134325408623026324291945745823617342738477490411351616145152868925277675020728707140212055533062163609630865399399331656890027412341817952663001601808214638141585513374570962822763910546704727063709095625237126853822853030507194643150314990855987798444133309723873663940087606002372212322812571573737439515146462239928589753230353326952725958599137815115444017454818515479815188973786174394361898507113348687592669784067807240509723730052254423502103662693177331467557650607121456809426853944223557112983865218475108453328784123927198860816538548154269844000808371786353790157850720020537711635058770044287027913010602424108720222489282878440386606270785765380588907139276639134706255880931684830174438890859904007676461877139786276473830448534716761150268925422686477779645536612032075105087766421171021451949627683159628610406511606721361225232727165438359091666466324103252287377925639296200534543700648485410624215934000902234187725987325311840912284891991405497736113461160960950032810747308044630754350939972865323008664135378974081313357935324878674701814643761670659855116308057351946626135009959124737893443048310883867618246799543232531005874673521162176730907468422017502654938428271407590804286967258857432249062887947845565519972045461440785255320728379455396763654845514798005582143644902970654708364442814074443675272274725822145724581103359770617084516177639657676385964426350353458223683966514923898992774057976226159696422008475588008359926746625249835774781139073588152232675945676606623537668771742009097522917371453031210704606908523547410749239884554746527109544726469938267533549190630619327063414651977360614182576317303417868078725268004083354364963477037814746756029105050721224757822300403253394486587127428516352815503498849895043287935379267566752317949121772503104088830147348172480150027919016328780889527741777582303182030237479931177771008875038474328331508421197852402544213193153360370598044942455755501073464086439815449105794670080253348756237029585274670589216011721693249843261262083317647122160558957489783277602143123574166248469525128071125503174701111114253534092593953021717316873359329301050681745667965985332492534841177313174513203170502586601910043918819781143971976612461492083309829161198610633359652131974345453006286224272574418642355391460618279454106110894042874856231819491773487991743141528285501406560730043419527187419720452511647746526823786605155501287047432977230238980304224720114527274414048765172964249504027780368420812334680926857632686839955952246433401482767365588757080669697614080950751995778255630230247050571014303367949672467232484997966643990916698965661775819743219567682513138918871112982312414520516114158499788571223730530294813017842903379975633386899297715806546543309572770123820250401003427728030434701900015063949433590093761853575909004929807080883316224450356275691629612833025496655791297044089673298618982672317838987626571166252453379535670201138595429489663593652391533350638948056373942510774009289332264776049505654291819046635107088726372455393224728129497063396923408554949025157331777410498922393550727267453516740004345916333537857022619400600669415631327963016065752816590500316297555951801885118138599503754045516998605245564298128820742622079617125027567761564280093562882610302669685297275519335912745268855557241848221654849977756196398711542197080204411051757062425230752663696230367140318686466253434033638762398095877908545105572871288124555957869742830398688457222570147544631823038966141057560614106116183554401634039043504165643442944780483058915020185412792229202002936104660886933842319465652200204809913471815802648789809555459824073113150317896935635395217844655238449866905235802964069836150631191550355774210423777538612841735848537815448578122798611552555131514687323665070180159769547962867150226020717600434079936846590061866512206313156316385532075708078134382889470795790672704367527458703833878844441737891244113384317438551238336954706431086382570096052088156994461019996224708144900993141203222688974134668148631128438482463589988902636101617858374816259104568314389747373674609209937424681398591450560084673394982057478168569209924648603532066850078813229245006588219943731659436517704785790850799151490051322000082957556738078376943300942153240008517884451477911882715012485619630984113289692799485907764576470628927756181413447767546446391089774337348202742920676437093309991978307357255861163097289104115416089410309615820939983044668867576462242608095851432375428799290765945190621859327416948764051056886793958948983912148650606185642181286038536948873758220511701496546714804297768394491914586721391789582007884178551634465804282152483718543168463221830834249523040450854552559776143487832023189693491332282914695577947555927942376166534406401554739328355483343408661205988653130487059779744415581003168204256890637407526413116365727526479056830696355287092844399640052061936352963743860387595286313710921551392647829039518113277305846209516244744197288761853204595533067924087621719776018195882795376428298292066393846303988489453907636216996682018351036694395210662374708837572705777397463616765996460174247315525552786412300093354378695048171570630955868671048916721058697520920670931168139669658636312365788503251193266323683466858910143389863128179109946637837969178262048010130965715413471101372020203334987518532346149940144668199262273936376130386486018912287543629642048502855678549499199092033353499634567867977530772155869141369788598895347138904626236396027899715602301161814628030402542461698346525601486485607964894124228886978204099718393338070012114896737036902663567815344743438510728874961935604325657409460476639629217826462002517892850352698962902287937944030371726109026446819380300676997938670886468601089193415480639447939853890467412284164125321333842174971633795179982091997807518466423365548054926644326857731085938298390493699008964003246345623103380713261839690257830503573410232677378305706804096542135412394343788115250596768499016586590589978387729580684558913253409430489221779058410852459328411000573804164076248114172528285914634102259282814498970581711859707865991394103801036721604772867444325878388484987133773021254481621494252836817050746395812616929431382069430685849993575622073387391676446649847712672481304110832458854687462202583347015555840023786456752562656562692454321687198779604879153836699920634889574905311209322584085726095507468910043622055968976681337822653226861693212905207948826938337679428399990240820643956360193634233132677968984981331086255929165072621083407985009580826600304248780648964790301841691055304888260247562265647759419752966153852480406155494105797862645556862279656254968654907828289499735532000229250494304924822944482557881032927641563140779156566949363730680215835676519810636761481614250411086067256180696201197509786253473579010208445507131400949270328076398270205146813151327263196840916158688729789843343247900638646792784589697181683366683204295662709541939458437900112259034790282926241395475309063966298661976601600001641500906490069634628650495329681644520539304829172341836381285366529694644038952059930945189895767886302412635000407678192210872698985678679507520168059364019591959158404319604922131099834937969438498291041497479967651544027975900210454159436446903684946186165678440825631336512051359856829898728768072473265026552395749371243093063905388794748347065926979035784106789849330036809977735165228260254689817165623233121699894852173983117727221489837120359171680581305399528520705484200589913436635468024089252993765062284545243607368290805033250078527693370819247329042342814930128969418648119090431311974655749433105735678156520244409828099238650511596827267495743419052913348203043714896766093921629709537487190074201885620179860556162691905642260146608821643038459067134591976842389014719885958714631492086510580774702391172533108762083367731991710478443987164696211402538724148868748752605664565063546995018926167436300679025895281068439303210822226198610578820438469871472440188326104050476822130539783302230811422625318774550625179329977633820257151282562373619053354301371343430755785355739514525530344304977635330702789586255745673963086345339546167436266734080053405477010375369339111270178084536365220161947777021345323750001138407354624283222202207636287809289837905745006656497962399602452941140235870297773906349221811366262986931617699002446672286267718693468908993161378990709757519116049460738548540897619224270212956323878272654595575381547001847214946320644915562432366871232950078171247894595314665191801186767609169807045999585664466728764265225034431813898234570518572646345533445440793425378768113066014979068690828132123590010775368510129345032936894282754218216284853814770920301106193016651303245479251567821681965219682294346473245463083601412150317320525108178784196835731156554907526343370273742647364916776968490065772336209372547102528306358505187720872290379004667936816034011308017125016099347799777491177434433289411468298325387944950446158466741580407469154882350469420347021625868068181157891899958307602258922475076046159392828409037948866631053261694638798849921539121268618396512468548696520583524034112727662683742596211926021812991042673772633479495540173564763051658164915518869556536585804815212206353072062869557477768804118777611991880842110753348595436941645391679616741972680716138007771261008682525294097773652414091593498856234838902317508334607912943383531274838998319257251733065606212930137046304204877698832125430050084033007119413056587045732935725243240322676115972378185003993587567482967581341817586689922706932784415493474350909646440365321162153849488235670472085786620132391865607433349813355130387948910117227865091191344064696377375592520416279486232206220977697502464019339872548414174576306337204502267067894379193018287570926946564961138193887694802106366344776942651996964649838476321834018230759722191091396927165323907737817939288114930578177833383752376550493976078861248264159277520308976978501956884795569195286581766918560024704632304542325107400020970930215248978828359370566716810228014189548710819950423176670090144145336847770293842601555529461642267711756196352465727685095739710069307126776073562568445453285627199140945599540062863280679660256752269984335554773122181338538864598332363783541131013044761448102872734289932711776929348774571429976067254439627986786770467934894038958421919632835001231857882846241598140379700855998194466380096300237596982102516244160910631620263914491956609407082626074850540369831165748685871704617486563172689164630320011126336954299193603121560137100260466575381928268647413594412716276351618444819572770218851615861818540436041080374444572951395853601584008565968846144957834386035719023988747395582701556923013091645290282118942190601855150061745430969761098702832943854646724955609509242692547553541167240350396725069770833241509876662052508143493331982738570240728486283567442197864260370754116395902073456630080933326697342181888156054822001258513436530170128525603171696526128729824073368708075006367142157460446748495480205176863607426433430156561610891469246823224313694449908969560635381144109620875692134983020492503981271926866987701438321228840399400989551430913962037461738778749126890649274903390410813816580852181467460705257311817205948938605766762608250276361213631432170953835422746083692119161431147532798690796155721655789678527550016738508929621617689390187130816473426573057265037587983552905872909750906409399629816852835942434960714440854955346376340606212743129415966548663367149068561400536516156845375715585784910046229224495049229148290819980519426115238953341900427938561550572124471340778711896458899229303807853735134514109043079147007026151854718614539322269434879289504569143351278558032914265518709680097719195038659639683164281556339234799896880880033928546248987099861550326684917088025267278385063997885345685209167862581731068171245775564071812713475862417214786347855374566200555266772434428012427592902656493813672026402764163906218777916361985102917971346273744200906199335053169416972612425597645297589666124699679798842094672026574349038478920179901552116626588772761165330500920141931962017495916949115920288350229459109714120246205406663825993250945874026960221082966261249708911089409198328858743057675695068419210762694239086477506977650528750301794713050652008298019014343522264511472937779684789991404767179878107527432848746261558753754782648045440796464969786806368959694948015970966654196033795047507947186308565370797204023476670034762253853209335682883816314756335337767042900595386057149814967949195792566548274270510371083034026792211157203927530492140191563386109850556198316323158862974973574742639779417479547106938040784660358029674075468001671057767538220146414539412314144310530928904209874801862978082054156967285041027805410344302205858144801804729999761148235953272393190260306713127430774746734215945954425291870056843699915133361282811631547508739590453559039921653999405242287788137402292770840813068815595547570390021547251947206308460662547664910028296738591812654591955545343920554947306293116431035253760959647933162222412974725932972570831692173909682388190130631262765682629557307363462347385615958782831476858060646039265843711987485856180144678480969162906087866533292103747406767547849721781852645833048802734650446438363795031224250728602944480276388557911697758756987446771040739210663850949835075444595424617863912832108443473745947792232277164275591742991384186871914558120745100406431971803334090976980784927972082712655974108536585956010552146767973999212288217186739719583320861007299300376202076053945212421105079925281441915583695010027223120387590875388116716007515452507050673700642464749175400510477984845164664041571357746799069031203203986368868575754121060132943249117530606951811805115724495476820688175341575957458587533428168918848017224691821647467608236625484072805254314110510860604477531471578567617496385110392392235160758899206805834529349767427455422087392689089394183657625856837164853623265371984560575865265429338296770155596899542201244379911620199311438821488244926490427712000973978708564245786496735629599698626335511683504422867989429176711085242651453914953735990961006684428326878616423451749225740622615409331625325362567087832673584466155699833077828254437007387686373681348110313017029673953944227263825906873911094646078638672516541545049595659418393739234619781171785881902260582016145730300083297714327190349234921605551275080514830740005200607883239426095758052866136518366500506439417697058919606774545260902666083230012740038339979469320738147587328467088990325826148841830490714539399186178215215208830245753845684795022358633919239823342340090601339898056557001988712754600319999884008859412906706169794089119105313103164318500739875732023375796943753356527067696426486836848129591080077314978517090571718560433232469811940231408146935950833017050970172631024968050277033169089772411609043347425775066767511206324788511707121710612106362751744878089333163487963717026384318724688424643442922522964809921376205905521420327219836388305282894646328933735500633103823387854036814009919732851372098715687939770682230261028628419853123502104645338934076776347978115786199002151419348146309079424045025945778646726860811698264785727652110585409266952837375145922775815740734337789037499505091877907043362818486503396595801899278740102000615975254375531617595343860019343947651781335822254534771262218475360089017343562379347145411015963917891186695700999679614123047563837163296154097229545760953432156710887398290240333155526383681949150753657942482298584818907641069122582436860616434788083785041058228287899602112224046084779879243432598101043892821571187789750188778482995448098883612797682832172526691936699280024011091179427937278105055328824283222821890486386366617042055089334250309250714541498405030109248901193989208610695631583710762271726779866875087177161830905262243074784092093870955213581599442573182496632362659972816165618191657165572020721665770821361874539166548628914895300120986616406826365922606200919846844038526115360621566192736526066919202367431524160431830056040396394221736984438326872583932045749521378379806841091705714422751508967451506956638590342584251508933113392897887904056979874473422662513304374060410406624414677095381589634845534565897526544053562386587938210711423984167903264070037928801671706728647542063312765707825397101887864495755951015549025390021165678973654759389017539958123389926674607644800165101185751395189810003928217428760608210698648046894495214640210418137622251083508723015044393081155532160244143489045999641267310070066997670830752870208670000857856463859812891396358760283848988669493493768638105411971647715655112766910216994831955278527365520524069327115139018828837849335865093269475377511659714470897398288445366453217811386735691478294024872864479083288289973602613616251782964689164472689757142830724310333158428674543962650331701975875347775694969058040783222793172868286349884614598339169837986564767554444175016372858873545091271749740521248418817266224967539419024465356640361785344122305610507322189298906755513273300099333942961911382916838047156702910320069124681906046212830726139591166883536385831745497595824193607727267255088894282470369901101386711975995096609670249353414118503826476029820118453533440449832876647896126893443456994480349007573134243743678844696311483821413374892404689113340865698031513023506150168879636640584421562144181641273362010514018681625022130934847595219782515974791393353736738069508574612772878796894230097130543905701683212165558010761251797552432276922242582266849386846137683614302684776128570366836242061668307817471939686951768483005149611549248235044574252488848913022193440086138001987602769069663599473217738340884154774452178419769746770556728745023957490520312298728863659240375530662464271472226238189679196470248768678990006428318555794957867784639092103888370215122380499091136671971790727004165439853422793493543349266383096324917828035998349506830046845468730241674446287757631092964524759774566217014667466368707289888848306350540080574744760739903651881015339733701230169269248712231798616496862983662964453080846557081169742131582293482937742709311779319463143032296554270158770264806029058828783513072339567514365742700217138248156348882798795339498942193622819507895729479612438807128600749672327807572473934168307281386214227796710918686791303721282363473238950827202770070025648371115794589144065537766619986001250386717536413329958264829187675199688970636063765230151901116370426588616505457610514300707427514380153542280680171499527298342333129614108336825165007541971254245211828911934079425075305800796165195244421327149733614273823041200280619554176198268190901418873634894673177627755248797064564682396480365514465545276651366584880966803454779680026934276516550699644035016796517561881882987778128968206334243715787726697319267106895093078794786984777644116347185771548451600135977344060205723959453725934393829470416354853427769860520648370940220743354642797840815271694331639613011490007475912001353250563550482590055476882507350984249494461843152972525887033052647984111204336523837242480918547019319071346757702882711818398873910944918045332231116858334670318952301023727740745907580776905595661000383032713318853743259090950638585949747743640264119159229837724731338576615273438056076486865691104047491262117909781232478109029398084683290287009790098473195110977878456377478573388253317831481585201760207098019635275132993562321114143593711253955195546163401483779286861473649098031121969516004596507589402188060443880729959886232699844819386658922544710698115696454107252541497647252587655034896403483059404545389195428294468506081275580929073085885256787704505020202476866090944200569525997311088390818515586365305597022727333599378397198234672695950767883457464559409149956867976652024847477918763737611309788268486250581597295620136051442297918806008760898349407332952898427729999165990589578601981748925132131932830934001091182859555881255004199138766107439108248310952592112447381873170482025619375207318809684979775687559273148501897113490422088823298419949316353879068468291463648789192534559420082734344854865596978749641604900788933605387408059810664549101659088732255761875303000380931596025032691784023977805362808842217360197350655268530599445399789728030643820944423242077085654626944362125500434596448359109992911922181538923661178150902435198984746827232964753981267386330035168864233989356495165668968967809934216014398214226699351361355388076694518370918977075702307348205902234218828475412072583623532697458257413987804476746097243421442420465654081020327827649593902317529651863578670749497923968762277929463931185703225281588510493029026434927193240380114744853907318605005188185344542949054679987302411519434834956078147544416331761905100048640713188952599550019199338091500683846052252985388830502235164383613429143526602435627395902206601843747749499321597553658250350674866345111822704637003916251287509312530350809441311338185420462365126596552869316839085214907284798513375251697125182736579015677814710572724700946814424929337124873586526285530062733470366922842688021684599194862210634122798358556503482470341063007084114971845826065944269580176993889827377735536004829024518341362250102127742024402484877364949473528601793615640282026770708193467607934903342643085488891932960802371303947903801744215435995028449783752838758953922485753621079049628472880691150578297017048638268954519056177754675793796651033599164246972452292238724023696857436483177086389223578126408120986920796626083322177225742310591525062570138821420294893616182153490078634371285304997378186686230192805590337131130487852053806790006957310306194091711683274697525919990926134211813091953061600513869699072766728031214590485285711931173795402278699615983500303195697557432637184476052015462463567991695015725801749278352597408652365095629394593005222167283795943882207465770490767364440873977834751178937770329483156536995974371526933538992768952761977683635701375618978962712634357397085025674746081127155501699952542865249783325895998158766249067605399085056560509113822990952231219689657122821159619662084959091987454573128675832192834898783326957206281927208574184606973647126678215575346055975524459045988710013367410363284163615718825850008138235470224018517222618815000221750160154889410431735194292728109046213168658903248562692922378049576264845697778018314200275773390630817560832644771253048744541268636105737800278903803061004065377373185825177011119312430842373752731691733752994759930720761211301659171237173012296071361218728476430149221141758277969693380083283612219799939848778672477597747965552040047335447876714481818582582954759106926117855833256985683968882190497083144451442277973258033375402611158653380238851081047424860290823590299262701499090372929272521688733386461231069425671321696794501112968623878830419974515031522348000427145740776419215180563805770828121598167120125990217010578781566952365639168301173776885130656282397231824141635679480016216400746876971096407993353982668981262420115923332453601486840945371748739339037137973659476991723108188877981470409656092177761881739755344940869518493980973401487505087404028126470286013462916197969302864496962562666340077178794710293241773854130279728363985738922123559156610824345857921753530641097161268021926073687466242185994151192922050725018683039891613748384577359610506764203428627081337630609645726057953264410002219076747349899988565159155672430777614624311810055534997428168538652939422875055882138401593815761848552836617376019727473763827352288890932504777412620432363535374595254086604194122284090939105838010206416454416873686554628194439103905750918906357551834107817080555808833722530346781195262854935138225637959081955123967047593221445829461762789314939676666572094206761311731374243629254085027498671768734992816176996462861818351763391123469154702065003260254879699646536248302857895894683631906225459040126148774251010053479940773774953719347655473395483416835142895849988463841752392965415075910028411790991101511539916687231565578137530263121858973009625507185510544406998258420904539288897790913405612648042659751789575992448882421491341017891344816767812046617266073647701509158270731448481744820878541929441211717188241052833411279440380512252509974221959241321663463672624272774682623397410687679942813601140467328372743524576357676807710098732598428279594392723462908331604688269708855353892849482282411426605434113107327161385987903984285944400224073572662248950102588855255548167595674583281107488987719069014061358640691756211958169557105710039658354597109451024009295085907711106872650679322666682407743303088674519982311476098655390253334887918916205207999535714972100455738866481241865412612961881561272783756065486077991068827282883979093758429292157690833223202836535754450268640467608114858601371915523113513385228880033696147605894699219952877171869338122708262733903683805030483811090810049656444203895392279997911246640449869215211579259288220797701947081053237905979929728712024699643825593094056209451296117920779642109044477405654436458438971138287823436151147739651698126540087762226219780785551510331494235208911411670897867546797711771733655216487471580769985124279607429050098238788368366067173055331195793366267158002268015651797951253475245313040209235738685020745556133303322399735584491535194427311708636417292505588588090157995343506745280046261916876031472595079509808693451763950560445700281994081956409658510160779976901569304367747784355283744133213376009525615165230705334594170258356572521174640412658355177593899517718774753932254221274321786494523108039833466245278979786521658652280629202290725553656165473951651640629539029039451030943614730132423263241495445518783722170948060089021351271970297866371371777743112972016100395830500963474797513957676490170827900491573904544262905705591697657515667907569560990033769953206973280680627712060492147586619240596667073047594786595542797403052020924877545240429986634396984677464269029760536365948303341596110545399181895720624414316095955381013670986821027470888938766334173015217210625406968242335982697700109167984354773473091481531685531846670006322235373987866483961680881232125250608659672766372035844055633120481146588749256229727662144320672266942008171818772708550003553238134004178784682944467972618522378917576587499838386992481606491482208087456054578717502796970919599561900283780038935196030574637092710714479915577449688395702283422690736074940824050597842574587530023809329417196015317241468697169124951463049248311750792993142667418109451336778799078668457602865265953570428349886346627866899716551900698624980056853677241815770615636694663061880725861656149120840775501284258609595731410897199622719192797937857077552382052203313038308010462274880012045394558324618111563545580344996230006485442053308633620364042575845688460924712090994788309498642064839724780806129917229500786173871248776231665735777510760164865736745841950819065684820173484158687085705728154684746658542568822445199311410626114301029120135999664713554372409024852455527808064821390086572495259933548799858443073719550467793190523670389640195115775876643650589893378090600586151601277180247300353234570766694558922289325965874207088999514931807071166617904196006180336987968530167435178607688745798463610734721285472114995593041778335489985278950429174816118153684886744148441348062035289399476543574163481798240829511693744389401000134507438791084398606437412312733591639682234088790699472261535792832512054528247799998321584332576239774504422627024907275491225660193562400099442904492713748867754869860245041918862670455103254035505443386864293661578784768895470870558041807471338942034147433132542776079848318329295978436290634400458542779495603393007922164626524951969179787140838634565818476164535941134223126488656416695062018026705665596764313169105738573886169077130760879487621661010191836420908759329485324372785318475826607679186407415790357141716709287643481714916049779158442746745046162396949874024801840719155513223813318748890853350714843889271883887689838776398975781651573491496874074627483574901355097542255730851861932891252611097186208512972814206566864638669677556709907858368793592501370421099653821964084889203799667052495619592619515076740331528284713414408872511776824059411938739457770956082867333408659035428200684862156230210809378235596221855010641457620135160730025771717308810715956877117480138686836813184083180611595793286677454796522811934626074375550763328080574209121330462204906199187818565135871310951374598206568259642520473600329165012403657623828750104147952896040323239129594291004093164601413354354074310423523742561915839615934556903236999572016161801764453828309640535023706715329188057891432614931345663654834846396043495228462609101599438585258709336208653556543224306285339657928974079082389994456039550977593745979203417280370650697753642875893008482121148725875058175954948550879060535224575965595157913642087252725734217711473181084981982476329080729015138087632462023515815293029596256262476999401422867519741847207086558687131949156335411639752025006406284216380518499517693246058782083644256011882403024224239491812686838744504644570224053427424063950385841919515287997638228362839120932518652515531843440876391856547947803556847372883058242929789847767506672141479609759337192869526074525494268989092048484206349980202178395787337303475544980148707239185972422078539856778785674033530307596729263854052486216800478683851207110488045934997910583172596076465828247867872711085829418517859032721621711267875032491041270242025488900822183036257699666041629172254209499479539086683566880569189125538234730572780416461938267312379664982478970122212345332691613993711074243365244795746800134787789493189186949028726833433284055259845927423095044723256966496078276056394096114413499327945229187655145123188527329080833020926251638720859682452942997451746739446067244071592333941637418951314095798459480093901060590163502268335017841809703210707279412961026123770695431602425948349569416126328197950427854414272003259394441580658810073174920823625069203321568773258315277870380294863843501660647267002277369651651182564759833234421236470678589448224572445221917915725741183140914091871145663196815657362130433639881748548597275163718452938211103367971379019162869125495582287468889273337805468409372182661211416279020678482446060536980989756678116456077284098090424999718803982724325150632635859188176127266129663214162681112064692493824696217178061765475577245699801617702631476034926908521736824562906786642537765802831986476479608737380972474735437232599086658388035124793055498269690317678697681496927139827000460401100514682987046904066948348206434143870004661866231259640459370524525042772066308176927984193123807791828651257631871209083176859219077098766125391671553969427666622389383707817148911407760518718242484267540243403433650231011811075944954844560294469848832987948045033359098262210959428389556581456166832037118521656161396465452247347504878498549020714022912673361431691046561961297280229662421414822158174848397186817706125491440905179150393185113256533566828766633229546151021067366345791364500895344964464257617796448117224116282039213075678326064684582177473720413179065686188770987521425804482068984167357124720894252559268675524658405646522432982813155756711859252986154478025840466649808649599217061720824035961777986746480980901314967769055976740629080572607868260702006525985913037352496698466011178672673160409067249352773845681122650065919584120062103244642113765161480224216716676069351504107284386429473324761926535380409884517520994223201232338884850599947693609197281837982467514905014201218456204858241365294537225826278801851116025500076075939000977801479281178563590157512071393223522439564998910725198942470273759763157267158887165908557971251822171767955902129340867836473732043721870099218840100099142054012891715254357686780281979355493622859525751917968716708516824681553098273074632014449134096873711935458821509138222937150563207757167233017267632108016594143780905006164832212628809456341162614859463647516779296543797720451874897333786376809501398366335896708229257438005013236839735666186854409241695597363319023488766711141144022819198899457951921065512455013088304330574360308036922734666197013645878266082483381757954107455155329176722274846652805638223777632187978238860092411704504746389332085644076121714741125806521456252271194481469993971514609241887286051511575666115167514679523396868899047904683149892110786883578729628764171076027742952761400394885450010062360773880444367662664226888280066814463198900524652977684262922883047500955245891998608323970183743301252689446974078856945329723185193839539702902308014257422779125691672394460389730818775976231544986806103382629690646496730118900448978251462834763907550394508255278483274532016173963377596590281011776134427839815770844170779328437353077651019416419572455249460774568460676073676578496223021684171923398095658664668342122161846758497840109452085538621523649577846824931224570222004028687507266401698488006546750008653866497749121205205051790104707283727043989297478935935387899685492518775155024984215951783607164050795519392740067246861464549135283819195956420224394133421544321608865974255155881459186644253698879100025557720135675984842507946926308152766986244552563600499106359962782064404734624089163674287098379229543329054721078517025635037228038017306481875646814275084935944449224096977908385670402238484190388847535645414061446291853434935986808497432106830521206928669324470700083868751297385019647678669099734822190574358469868678847066581511622264848146756748266503401987598978627649765369406244701644545118713668228509995746795279357901787581257876638798276660891845867103271669471803428886761145561209494597651027676559642671173156971215907558285273823350638588071783001233240658789641446228801240633262045726232391957900927386334129525952737237589843737541749750982407660337964367609223743480060226234974578062033329427949911248051421731450573437001457051154398466930790381678138816119712211572927339991371342664650752290292926974320313036049286457773876802469902333840770989074369046542183891948721388559832025706220205424744998110800201261542339238167506363120255837371618860709699867888379748690757968775016175601597548160924089294665568913868392206189071245669393494533142488303242656587493437589451436523250619464211090993888152898962899764586642612143038818046777093685480573971028516150073851770218362725373754308738982621335680950256237027689962317349589972758740742471692177090377457193849532304693275105805082800039249976724913025112521646076814770816209933510684620594325927594261087264754268698089797010721916846840648313345132004584763783590834571422250568087653810956313086844942033173920308671410312875808033111517046558410708270484222172852957483092602939227494169058869477419503837218449661201388733163094324141547512696095003089743910916712449586226371611538757520971339995820803496756701620257432605822804256646738515814969166313746671729876406165515675401084842639532467458510637235051503083379950075234624259967735693999873370792294198237976710125453061017012318577619979105982509918384687704076889164552423880865335361756272154342351581281136849887429288473969504937427642088853987878313681939724097111516113653848835057745457606277040889593947201757401575596104739324702327537947618605130442213606051866225044656299923163388261976552690752732816250627625967551589670473155903640217585971130637174977770855603536384830100213734048039175620336186850452778759856549506548831678415940692841895050128574221142725680695869159899036304404914342568180905827925564112219067695591445462602304356712048738631254994517418346254749089999941115151781977336456499529871861089983566470851266668187447472152635800665152611668484691881548530255506138132293420558123127355633418366576781865883440778685498506916684626749631253905035321691876151540754479001748575040094680863970990945740187027861262303135021812221008459298685961118544137798844037381427679910186341122990093976825510096892805670805818709458994618800757840121417040740171238546598022834786459894950245622904510168526397694658160768578111350745248121425750011823617876347123838563107567416690534998089510307848573754954701251848347496621846634481549631894810872520905397664984126610727108697402280526407543022249904477327078862333678546359359486015294144048786127925543672925759828864581435472846581068862741334479792823525854903018772935266290744069022066384127930685451680104340106111868253077315106341280458513270173742746860977644906726105753253366902620813405303235472312973853057826172992773721106704675605216261086025976585874357761647490739952668436971025011421270997317019120389371499447547061236555444744485675193872554426512491646035463368934108315682965766625020161599775464619879245385172330769454894219905497829699715058803371676267721296176210748625562967390312712763561049304362054623932364173567633234721227311603712533874783372160469846525908844003076770669166324416682653851872464087422071468139470145200307995570982804732940534091596417396064067216386454271349935032295553306735943798974456773385627510523218863076028507986469889578721310876742415580951423695780719844326184960641976477609118672249300043870083853094084478648382409216374890992325082494609061647978525891360380897172363413319686294521163490530487183106754570062537330184177283257018768619983808100167444804121653654912905868761568605970384850988753426036616481183974274718279187270309565629220845768212723737837529402111109599612415292008796565108071093951441847197064712860106051059870845669220558358484135204628727867401186837569277977471379491006216864582658605371095555419851292784135065813883759366175929891326917816867802923313148150985435712859369085719948753516603419729050540791969153555375355810180289632593517117334940816965834490354346819136101401019928067620265583243838281343880925930721966552298019073941354051263836326838016493230391335291588767512302409830410015892058293625986982895362477220874250571821643059989070778737796952384146830639273034269850810484239495593071043705778877306605439779859948565029007276603833029292087251772102381656620007716193680807906612303427484592554850518262936634355391866358770739346078671583303994742905278884369025859330870877441854027283587077676695563463877682236671455505894760351565385821713726684116588248684864837625798333062426484751944506553902342602708455251763027205455664501117159027882787523539094990137783701370174027989893971681343217974155664680965769216197536651717531556046308354944756049183572475131906011722657931333338017074570858050056490393691456004445576708173897583362058762009706361045645795892886864912566900776905489628657956491409947574785626866692421789225901478799604276855403869519325653377827850625334265708401343447438044627223270387270764838927760232257451423127778581997299716669336574497187729566195621631532864260000436870389247646282293755110871221702070064514660342292000983417344209915189187908217082095389867939643568742358559644760633364620987453208588180297061365933165985003583388589504676619802708827951290077246256591450446566623197095787793721789818506072207997508800682905418349713584238605863576469492722386797844248984077185366549187575129053858801200659127435760457094538617921303142451284772347364287148047125218085500701900207159979239839750677338523562236791022661021701371637360078298032162406057957650535962056875736709041814375584197833966179830333299421008435698027170956681325697862262409040687421786510504190473062267319019598230672122819401270804819512344910269046307235021262422009347974355174933228009873622484967420704941921060436385453040074244459338634997571579132326888946729457045904155193099883784601869740917785158635400049882773197159613729427531387396475530939976387623205484133266894870689495245738988892052808349362601613982826777130111838499213948417917266754601267304076392042176755784441235456213497194785475937392128265193412724184305720873608001144721324818897684436993310728036746523923484817141703276364164151796319014130120187048221007449608282256403378830357714073585139539557812956159301916730557139113127461251710020283590691152103492102556882314717326288937054577419331159398685260568571260763937857533901163709800599777979442874833266050157334881992645940164981082667871306424910423004180312907709712984584257043271152915415434100195454059570952590216604285705996749904908503272821312960855924921942883326342547593142849677944763877785936316681096511551424251056696558106263094817320419948155158106377839401198292277176765167903382109823664231184697759165467992879715692259660655125187905349028749925687954450982660007349158204704979007581140114646602452653906114960245524426013817785224847481474885729018787001155032285176295640758894679001557515621601218777071092315597420463349862676487389697484115779403215112657351260667041594515544748570354802794863743359632171695490992318995265547453631044604465431852075054358325405699621427259061592045133807055818021558805063466807431033196075480702506693614534955188256955228150494893655818240778621046031478024206250419125913055143031177190027972807911900655583182125205259958888034677981169914037043798690587279477957801997092841434071537599334490726224611631205717022579311994696909152149595917584167382839370011767335896198731566804353841327889397466169048690697448864539096823114797672205386521816652209809281042844328670315944324003049423956754171759530695682118422656968131446372235561041290433381667725595556768523520433043310030175056495421083376711017926619252127107875379151815608780736308073073599541746561460799477697226456807604361067563049845562925871965224402743582128933794788500324911647441486852965742778337452894962667508343248217690569505498817229427241057811165740004573311390615996578246508037958942084848215111899614755443559498750759372004863144920824930141677343837575385456928975657404241301434478994609909933949132659486481073933296914196408281188184209405397706560580496437157207487587641969661577375184222230541760852026666055518366203943251509064814021192097254489396198736256026577759539326389484760691491323617734246557631392961421045559547592775086278972474273219436578121602612643966735643926029967216278386863875736980767365489314966950225083712801311782539293782081436334283347080263038969763982119689752245538607578896508490628993675358879951502562383346566510888825913166604199066833835450437056205133129309997168415800028800023154153121198555016597931470456340912520091914857254722327584590085283784373138377024398122255265394839169164743077396488102678518345858942296405771180739455011216573800284601995865262784610811581053086112369027200405466462682249139294363157824699586132290325014513705406187587956568715903592955140837081870315206121520421660204510532734152975892450162367048303772460534072793382483714990143509989521813651736727433677824501337471639388473022378972751267383200262536720741623213843496751964286155881896395344383154211914552077901578834622183652496154344604345627414586417602634403661665761077692401197979879219384958794128686286427405502015090820733942973188411625897779341403687597042056323179648400663762015207703314151164303076665629385415986801228316376349846572622381698702790275393748244384390152849220328788056676728688187956712504386399702451957953401885631002714458083605928784908136989107116822568524073134150931340697705938930326779191848756924763156114804425783552939627551762761742935977130969047711384054119295184848853421478838224768560320297466467894753115413732368007618566205341765105688608453878493225081835889593279127987666647779489623510496381237469927317237014751138762310010774461874564578957804561166370246710589443524613973543533606856464283684687234748205793647455360261814712789419048436620803698475313467002220108716438964574136045882462945721577004054554597912446491538924842860460779603052206836376232338781935373865827038732545824970433288345367562452966473193380391306358760177512382356656168534597908710231943044987938468163163677941529490407252501818294760875344424722326507444759475721559026036899716291620819903515631210027600812262651453236305023607607173225535458173618141029151582457823481096720982202627464709810835577426072979549819924309175749258960905990659019404440438879145640241521222633684209344272970993672221011709356900259524395490840649289729187375136255369457685733894278917708366348541841325143465476120351057648981698639637931094160708647613861316424422641196484950468318723979569496766450430021487105280854036146277825396005173929673240090658688964431917829436241070089982228806903437504380844043189904904961689859411980576928996592258784014974660428715409219405160449832122368929915090714028867997319180371994839042709996835822757809880746749692647152236811882993875545144920679980087167169274801219628657693065419308164273817891424503195987274957261954199950412481315770048607934424145613593971233506792310482200440212310759728459656747554287332465337736659157297107657268155883758453400211816268910532108363944619032963044914701631162711427113041433167409178987408902567464752489730699711638519518613092681457060589000657147967051423948172389974124900868737287705145836607064040864130680650736626435154680360868027971446322645991145603427729129065956664982631169157034119455811808688698145156348129994948460052495459973173142325713432140784072043478118920964380273550323188668501757505042710967625883837847193656545013236375197223767965238747960142672958593333918100115842010218870560396547586316391655102556071118352940245393628519428902589862033519924193916112789141109663654552116892599696627324881409843896372153926972590757460563821237597739202391850634272492198889032226788020658935821404638439766794438738071098368439315455279029613691784462946619572567854718026685751548276500509369227309833865840494408982346613752340736163505122464797225622109864526905820709698180040748663259105618557054257137901125714917489919372445057143118605913962362300885046118750456240028092329764255947083035302339847749824403394624488795553193158276026707314875223544635108724491076590908138111528402180982461127453974066526725837362760376407681538665728036310137027974268605308981771223377437772285102005333463674451906813405293777238388078322100041868505384778361988246900627898024268022061980411620188879972565503277041519559970536127711643193108353778444444009256839213092735131690631348852390583730820163134892701376877472441586979372712912889698461553390461839360318271302960495451530973284251102167148425516222468631654976192681007765998298528377028478505548893060193401696902985955103417288209822225298751236110369099196962878939626107022983435406575695358006019856043599468184014740903358341040175300168254953651922586173838773319556656842174013159695891284206705608732900380625216951632413696570089786875668518201481946438453802039480406611472596956210217072961174351107381157635612107773565879802267455066540964324723125666682790363275452253482722776799527954716311172167753350121992044502263966699685801278381219718053036183653366186356778067181474550794539209912672130067939372660688590612520386580516652981668411007887157185823279687607493272954822188194011702241680813416479851667150807626364975555200091252503171134361372967159622835862887351476415134427550534996912042565458622698461240939933539603777144051339910318985959202643960999085482503789252456869333995548515235729579508066397155474009005836950179862199268129724033299203551786339810172144025449096470767669220564518202676960776963295516777904402112103348963564980507410610480784819407706779581044794900269083943307966485549290272942216210378820932368731887532544396806087106647199268519648125281363118530935551520947773716709444887478191959063171700577955175966962521308976758856738309339667025775102127912845883389501520135710012209454278557629381338130538918887705574852636739386444001951354030381360948946730110283792451176538680547919900632895034417108616697867096920074503434880643057411021611380642112250414249556200028121751690350929031016676882236176103051097119599125443327553645989200165904825938730335954619153391387555337191706891781206016658376761401209008423505638723795204443877856845580057564796257320121702107706689385314342309680031946588633925469271331366267834717178946023434581154540227649117188533912813335006328334691867530251421454553860143847022914430244008527960447639962498623653806832704792776808260833237660079475659040748254848533207610390912521488467090098882843116036158630810684888311583886749557311665199956995554838872062524649546393467664960514265277943734679071162304785761126589089105971484780338189950775158053751301586436932875534230876320074008341676053297466193862060056608913625358159570814192805273272811980686399647712155029346582984666091707715079087780608200054569562116024731853142150133991741281425978438211366741754047539672929665627668596856514789710070226088337855071024329559867555536564200777017389589808588608799420015655514579641201425444970098256584565793422190024400615718308186332580008936024718949559324421987373088477759363333933617074578603943967178299231213493023836700653842670133897500868505463655926092075274285019250416820671007626785061299251477320559640974107023573563823987912211953296371744411847843191086171010587684090920793591251487799740555136232402523203185223358888200186088390277496203269535247291315393893562529576767238580827189658938234509828836622130051808471622932553071447333901723126455125384804685065003996220741831131228317075932348855724829984839250313599461770471264974122045557461477801019616005058633725034257161142652361423018353531091596863825681290166434817139111802293253486530456907371972996790177105453271162536799096959759090734788297967480801716111334862320753086627724187149014377303667666605322459514462750735930238210946043688257879999961039518232048713104020762446111034196980436049590607086407578604937940941530662421918670960214354182097609357205473756399076006021134810817252408095822573670593096463702797149770440741198533254441432936273024099281068090730987125246724400550041791459691021681017609674537806018744407228901061578568498259494456152119929981088507752960438112069129061589860890434788820848169416375095434817579262459441031439340719646715730220395488078627341195311525515031819818797922393780940174099080971981585351558101923822920326188412689066629695759608828146811170714974696153065218561990641827510291793880190751927892681595133591059995286447233607567638334578038522664138381769685389176920021280602591724337184804937528755833105265567934766547025129933664125757612944948490402693938467896809369248381259946676224123692690202538612689867941009771475165063068689162804532638023025160330797673648033374008795075931952835532589829841640886097269183733604334676827528698718408709128341975512522197334954462768151493055463041907687522594715005378877798703254275951080417978025253525677403183996684191852768469335860869710256165242239673262168973854810466514289894047771275590118383686567384672821174647863145605082879998167521268669808803705625679874282381464027882636835562572301765851201165845267594245465313320534767173873456232903212177970141373989139258878675304456244606706491961042714765902335867989286609004420165635640528570631228959332173082741302846636209071538154035393541925780306673896744424830069886302950371620471280704069455811995035131731021698816668327557426178946594953662261467968103555550400477780149614869288092433323697043308642076171386035196494766413702470471863904412860290793865600177992981480785698043354080334220824325841667425546821366796127664179923543821224075316623417872608997548752290999022064368578080123664920757274482444768672890632155741996336786488288407296005277191591059766255149384695767108558329184490782906782315807220362675107913602122876498467248061930938092495465424174164692677062798303172820695085563433411484193032352862452065737656358653431347868496382656481563116726527402193671724036047187389616161322054576458577401950415455047288715322206876401591548584839554429441947765830410501045654757764686665399303747726123565118831757522495957481304035521800198116739452465750086402840703589703314712009037375920611282476212886955566693822465299046890793800125944490532043237034710524312898993712465140320520872742138875627253526169757298261039495567104631859068684957656501346930311033579916053672489992695794568145256513144560483629112113983553043222718637805952544352900965516109756944515689174054473023542284373932164071507010524927469528625399343704262494311162147665822934408681457393344185771835470840532419403556777894361010427232256827511240502225232234794961604331438524702841294574773131664936558680215971222262275081032165853612871178276226226071704374310748503878459151616453625103768252693514303666550559419788504375710278972622821777313818762009624337652407283074665744959777075809772664081134229698332880596145819600859265054251135621022414530970799422412896885359368206389147194463590822916374555089414545944120922391025540819546275620039011885868839900035876474561544391003705445111400234822932182213224345789118816779964544444049810494295169484672715495762664068051598535636405368210187774479309910116632833704670644850393536457943444896067855442353763904052217876274436885783600443232284639075828146988609384792098255286591019476801678913834554093017337907395492871853705824973591395310820062458948446286918303188620945671299207343063851730152297082745007670975588123408408712547571627680283155113729931403194896085605431307968729328752472200534374331301215044611369789774409154732600280323558883772579082913786934515408496893159295004824965905309170129411523493391904422931131419164129361707318799466129636591581888195973407724335181414935034962706694697183746632121132318349267366045989790076390656494642444412389173595391685068994582285741472512107487003097359009453686880179338961016414167718162600586024458761587917560956381340120422539112293883677148833505731836377044988442133088236780315304182236641431305782637599894713476835255180082273866196048813604021387292008677433627101094479514199709041768959725911012241798419272951172285762917730739631563826256647757970210739975049790823848645420206181755087117825270854232424059732377024968965410597775049515454155301340233523338862321406399878282232652032123342298511357819688325057886858764310380214341549517682388372417144632851320174558800221032723117283735638184715014399615538749846749813836435065097529510741169605606571453335984814359437258424644626887290613879774454572616925031461427860216085252365756123082625081294184239130865284804216886113886209419283140956500588131080353960434513703177571829757246909564553664590467131175233222576415630635444073242274925935738387027284184524494685157490533111301385265352095243260310039370275427186389687180123582147161371887963284725019438239625550820810957027688875888223422245980293820801393790494919026145909286941239207625767306919051097579331059574825813023717621700800664000519454924174460236234778176422723370694062320734983735966963077908032778602362747107810987065186527709788928079925526622327351766711755136990512424570568919853255378181231131403431876787806735892427093884740296868153085384643944472871987866680830801300818100348852611016683314420231871755542354263351880108523123671138248760265890975734587829530830450953186576197411539716354958244323459799591442623299038407713991885119283788817501039109368224132058365546711693087093043577101549374125888128711221288032510895820667509969670343419362854362267645869929670384405788093673156357580765325070433384208072256882168217413894200089733704462568454930344815425033540312831670016348741737844188450691203483604689204791898385070196064971390722475091800327072102476576997033311006846172314583836555194344672066089632113753293790639023414704385898855355002285938663688948542769177178676732651636558575243264707618323263634532840855459239504245964579729613695541349459428761673859174019338237813598490716143269137346233745285705763948773721088198739554948160921612507549656018320934764779754176487267376251017637471926828436454009480352257184623903490627959356582138166196743777563470194207127145741858257851887222762711059369113518286505440680048655250152782296047938348629589908114882605537885464783711627615020725105678058273455953362341552519021782274024529778175785987224327824874897428010952226479362834305372167421550161777755740176307509144675268676410303970401670451251366051299531549759383133038013511711796075384558602356829845623732878493150492918505084845044323558337361520440665343670876212850967353718702760904955181184672697051716991074627424084395806239430558986195543144953334035562343372987541256179414251373160885435070278304830605381235073445399032798773405602714352255508639436175845101036176281810432712695867420117096451322641150574289082602544016433027782661380437729886427050948749804135137013909032139609971666441659860717632617504252191580190580702855536099373021893070935708676451806598858741944936796056917586596156167559754326660776109516193442735682381109336942096615027699486845755445951198606646567000253116306474293689375486481481647803129661748823614584235690159624278615538732389830264027773618512927354278710928774332998518394576674985110583756448074729082398913362605274154050998746169323969379101881048324952160639429345160085631523517688851734438109130535074431985934573435768497726930710398221474002529791919861036948486692797733348959768653446014335677147083147947929438251782855551982236518742808759838129030392398694478273004701947784807849840018196453360750973427101633029405776419726460978228661632235604575980166589990789980449351070798479213200680602484657077722753517863041778930274713672253103831095977715672931530805119161581977208210321000676181074701522418390561831036302252507833037868293187635802883832605391718448992079783740354870025790940260836950979960239455282913652495492630920823244405815659496600950117960953724616023005650965000656693000390286258601940014825498882432664846502533796640066232176439770345380808612430060149910491696196756962807392878247961725719682571081897313291511048084579945970596537283128124438673067724472253261871713011392864072803843202916369313698295251774569086557290599121952781982019592910193110475440642386257924147688368046920623403110128859888231295868638841616877078624822176386742292790688705843509566539516394536439864774483108590664019763890913867419505820004509542947694493024153166990044538802083950126649751014897632657597327484307527317545183181197201239295501022786399626504298364602112450233123920810059880301193518951315072055388511613261184862327122308334643919435593640271399792898529842966888557778472442401760544996982966573569387951854613775011014364958394542366804655277465488530164663873864158297461184895509034801833357339191652676255358045488564111028647998269245370586860352254479864305189141313981525530197935737467111838941960145698348238185773639440904345528295843236514535712730096096663253291709945810779026967421336473664286318972073926768166097139712127799246728034978853418977882736371629744623155676946249231629785327845536573283428747360994204549242816738165182386960842430497980485569048564572777306150967133916819566788019677731929425601929005737609904151081985932578673445435287948111829334842614897924073305753734974708241345500519288218986035932280076917277130792859008997895014099473601491356569006552580838485919530678851061760822704527342874214650302966922427900380452493347381291526740189330132049137478301698281565489513035859751212616737015700703226127316566906770018334938840663868538348170213579630377601855806830430989529962697365565857717107588135750427157357030966527361032254012883055355816537183546068100251850079185196424485285847912340065532099729125626938764535857458671483159963698350823495453215041626788824394776323526884171628110002676619548712367125203664446628792255276487306295766187893673838570690416654629892521578962939871783586199076045050940982594026714334292303044715926363621707731166430909372244398814633152511727549141604883252591611922648415157375229216159065031105802938827105625078086584503133558230347013348775843496968615696299448028559100787176235189484571892440710974050052486228539697225578067965808617889372672448764510320623986076623616828596978728604925211326893293961870613550796696245106264636487601509145787305453621670349592535470490537200393648503607900142387715256813391392715188439489577112210492433258628592896621580604689148707979830005036166751447292523559433817763444568300133639957595743440648959974667839628467674704036502787194809994547166365123895645462729662858654338632895459252173245791603426932561310814832069248827350161944070722064263409914580593809470077946267085358912395343431443391250018929946279203643926342735590057444324160226057858027859163719481166714486525177521500193678874216244845912274399080443219387294735664817248770679730200241258219760420863848307828262565966175864273113137329329662237721750301638548887163266980699405709964379953023170266254862544792273922277967848690918999356537363650107661409352500190645981594199029960735401356878685057021886726663876551895871034797730354396505801822361384019117705104077547928051701905425102556663440272075964491349274299011458040339003380916278462152346700354510733363004438581098441162996144889912026078192023822266983187633189701923925246731482819422320250250978138020990227213673101375343625217410649800062540521329133585805255362285780111679891935689720700149283675188368047372580633239234343284361885679262560371603121035117325934617906654942931458873792795572764707700663685030431787141554876990459941394115375726258515923284502184887929479513888347112159074029387611552431285113994141017000570452393824744683145549446357098339483367015127404909851100933871334254361558455074045845053672460067085907895568374225840621233503122727229044080831096570803703312557526334944124605538604843082254921888284084635058631455940903636981225285082887894964539136871833888053208152022188319670788409606019921558274556639023510593215621525095796386453064130023707261293545569100461801035987041853629784927172671228173784516656273133443875632038300909460418842774261511741032740735606089180021469880851757134602008047594434078987048140075824749377010045026794366404053171025205900653415968433912669622816238190711969677101360778660182659776440036382444136447612348296776732896859228692847671947922073852342597690513380920793127064199143023585059372963667196462563546503688990392021924537164984292783732678100924739770792005201384108635303371460592081173619373943842569941714151381964770384723485980031937290847187605814287750685851110295627003352645921265220107995708199583330534173404298748578312432496955781783877974822788856315479878449376471558045481015683894493571278305925844281086788580491882584902675655887520918504053225761136971912332736209312942508921459742533874637528232689948957112250675369938951849120122098402618984297656349696376139540512673868209499814583526843234851103471305313869770434122464869691910168546902678391347196821349003191325843675162668870716959207240275137122534153027961513095217673975582110786270992815553364323554846951482853632409594361491467056085057579834883896912505991533147325648990687941265763334809987902168185236148519504654798749612892679782070561623760035847182410279278667589621816555142562360366111759443126646210819162411453281742230113990837083788580387839622779096689622896618349054054114532075255618255787262754937158961743245551313926007822576972013313729277173449984248056329477909028952285057919136815601682972660825169943271194750752795649790976677605353032801757736587481885776581686977220362677888011487714751903129900314285947597663565737924104070635173932344945412604097432291252343755417520405406395788112746565198395313606790042489744843651410027542633331937955218779914846768872085691925026968519526350785193924493210120869161480662653123466806449074528135307253508892551868211915238938737197474152978035474912457807990617285986800029486917048412618889329958102470515182504443611245150452284965341788693944241122042017753070252429409167326008058573704187306887792099100882695459256561634115109368472611539683795130801322632842516400537800737059256464797897457732778402698919794802148652163755506462718923401416210400075854297094841658144015339490341271639533523631273896471286556514889784952367958903291606516125639801465767242347418229046444182110785730184805290822334413148078252654120073395980086778379953267149540481511841201502126374136568962186345739549626552396363535844408692570118215124222617556326370039715794031931732348651355186925427016415521528575945028338438595917797005089986308450424660223301837256184670105764435253326487160226816274937614509107938600455192611686546373101877852414005285348994086205842845551830629593802381181729936124025238849856107743523963773097338024625176806938279600294906612821962020765629317976856663861517938627963770227049144840934096802445076459318160249999269651660454073091960164411544423025896223835729643181866847811557443514810890706243206121735319148783354008420489608941811978587622246428231007924163617734386663154810963976298874672122598838894051400064855491437144268412649805092534783165526964288667622553378204824558386181038711691330103693344189099398543630036997101061194379847908933666709545549394076850575445522805983901300918702811813472237267119902231203280842194583561325973506292162419721910068932458908394948153298416767731399015809967774984503558281171248952787848430105209071562538433823827903833550276186125108127149379720868285787246045238133106962241836006378725583405683885930881088412433172231882366865313739934695760613999516776416228007631709504835962407951438057816337644647143338965767315202946614919532837134080893466182773781893642410070270438076564295115340958734306949701479499471987136719453413768508668620508364468986553380002011190097409374262140760790768322193821922378927258857807780925279936536597144116621008497470579163989615791618272649782660889910215233649475510234953441121651476027906971661736637624789339165570095555633518292554065314555308954319712477464671938592241448951275885790721136520492192276822608497725635227144273336163521097877056284264908114778162591639449201726798905884056198951880158979934605756736838608385317805374861938104268467585417978612363043937115949289018113434002565922524247722658944517356144261399482786158591265168554914914140745532746805777450626984640561773157025391914480912218213515141248254753234257937422704339732329886425627466326244901781621710636795208349790630311689439911585998182868740524038600244534768340841705415058410872279582312796674212841878225380940899400108054985764823015596958992840601002145525084294763216339364475573051593014120481608668921483358799791274874937530924252176801809697123389218335068863255165659943353883355412269408032764029691954828799879876831442158495635626902781721692333390290838837234718183895317839659557105698381045568741357116047611847319427894517097507932289841939482399630769566764509638450875680473862279197070020325963080614194898808966883535350497156076847298748939879367153109786689431854838783297967844439799324633871580663769801607846269572872573660822399981981296534057401995210873346939865631299567841400431726710613330750363960396060383404200678664787980307588650047897332929698577832038923733601388163451059211016003431448742256111001508168134581423898117700153271472670402052566043607815584541880083950521036017412511692408863137602881123617489802483077526418373214232339005873137840603071247829504946973314535988996707193982894278541849337475594205838411784911149401848195168655586723343815596485065580999865654901323662047433975458065040979108012791117227036770128677360411801010022925188013750260535190689218442402471904149045140972517539901663994860125186692561691012475809666992388201278626513602381338398012039498545530652864134141579926917053001092849202786773349699883960685801331990173974472444667329721256739405226672750675088067356188599332775730850062497383860325737183601293913273309200050815789423492259003545665463266016260081277554116705634000117241303919037265840078879131622965180147131940974590120870273794468270074406820528025656673889382292776229121431313954481273554240809920290521732438038420918981235393342442408582235265456109823202892571167786285543149204341912458054822654188965305133214416633842174323021625706668631674971628612808503203562733455060441703743813813756148203995311486851505472027476806228780917389158131570425484802877059835931276906763368063078589723117929638153417759268818064704607047561130958071441994389588844497515359617554807658973478060635973025013414888427971685934488859845208069385283820887828765103262812824844147644331804860732793939591886099116977565506837485909009753395080188274163441368513477547736458134839122260155061939335307784953065544903989610538202889676793384144973528481793199466099414058904436392472915340093983173421848871418356110707611756891828471032943264293117619978080920182911929196878658962680626694482126182604169826781345375932055129422608167627992711588487660367494491144207401930559702138478555918735808708864543059772987639333869658437902294245720748462208393548337739319810649628546091922717297171447301934868560325355686841842344904079958861503887801501908060796650954336618845869089186622736170989455766381525343369279836871591633883373947476697603150892156424073603047433356288411181787863573061003535176485411943737101985501990347230646735692317762613269406369758725521587846178912262684290862928580684097156752413065389099366949562371855957350148441897625813521429703658580353638702549702690640613472855111328457468805388794805530497483792246365972778378449048553663920587821067829449485147149613069688594405402644492356902918732371171615492571342167317422956722819151787210299137299991894773376081434758098483728852480576700845156204611467786083502715531726246956131011898985202494387525319084386258203876201052038581627066287199628192255054281830770015113573916042677612672367050316073898781916540630154498205338780195227202971579684877969198128001624368066711682040759904665721310552733038523238351551868931013002652224128155823421162263117285511792625074522789943177399989350364896778309532945256909597413825689829773578803180152341571542934628852072737211453567382262748429509747440129390771835956337444756700649170865900250745954888025601603083868655907776417299901391896612464147827740356590746626153115935632418638766373460272295462430236551382221710725282709920677011177681213646884926656180382241469094550128846136691934556145157172202532137675072391062906566434574104286133886882159664112250097609868817333605447076167299823905609992731716326717503976613683532614052945832260954038818301811913628334614174422286615301624546881658915099952370464675608833353592972597645855915224028627887666661493412223446565070859083645048940106657131573669027060904441854047963785345088460458648349792052068751967656301028446452055066374536920155661793786145994097356683591284267654450002263127317943445796683298188787135638598572555596203555359183948532341744291020758629295803224951767574731782042397823437881255527180724105369181836462983431016022380881233429605702042756027781953012633287858183090960157033908933791821846979220554964698926715143796187542591895717032966338499616802488581131468648317039491983479033249097237536772734545943460760466969685830164086837521027273937988668030930020171305849947726817282700750511991120910457432464369325901976140942549380745301739397349387595007549833205315891097590127949346542122240334614219811521888524647727324312556668116841754829626643067842699212689073507054948976175608441406999434733931512993997236367124684563811830812894130895174817865958584486726819267138197147242401863460766394761566616670019317017034928786622887848607194634745036919260035823160355736612297403653073864412068435929119352097017403985013235908772127961465255210418771860034524249988365132143049588232049794841770156746641628642889229084183735324618993300978079512567684890282862687464826547344473355700379267815268828364123485715018876217151203229381648093458623493634794597149179887734393203058053052109743978035581192030060048350539641732614871850809663356525807388620287278568723194112242143543269643654178836968498473766586285137432822523468549194639740943220746583511523311348580563335382260416355031323943823818983294743015057490983302844358191194490905496838010328896496277202920346909108515962616411555424592896601847395607183006055610050682832254059266680716361014477513037353205421458322694162662256609958990313135234506716051441248666454359939122156074810062673349482444789885986399035497923161597923633604522061143703485841260997361886257622409946657641434851002079765375441442051132624271073840645093137914459607978157452238095569208846894275654761240008853493136639874902847686921023991953204856632619827893456323823006706437058377558760752158405403038841812060690774748743152345962432632929434259868009852547317869314799357122853953976505028710547105874835251588723383770935070723595391395722969245561756743986248757808169983037015077857557983722348142593917546223146691962885252515574009269199588081088606883709930034936794812107139494064656108790794557717564535988480522235831303153471999061108234295225748560469416589185220738388415498357679144650691717131889128394688439180218577696273881951283703788159338551295535242770490615293969998968096286865475163625422927844902504425809163703381448169542661340449768125595007957366594319682616716198107808209475988943457797483816327355480238514663111419136780866683765553691739838023435644610754602158987056748387543299072176946313476293890374806448364792582684498734217734109241047581829893352965594494428055562965322854104342184447142220597949353299335935868478691365129190502657625853574731606974156903418495524753574676476456474037995641931882677924908536508715088779328497693564289430224568386668545825570472132876290611985344209683809140336994850540104981641330135618598127054934107934356026948352462410164999502578554318057731399920059669061692367331484003586244459054117792951067823184121526911319586487106477800893002690769671158605337154691576737130363399679233412688841657943439005602648738683442471449398018782980727377795865198632781019418447641294298596754852960255852693820977301047143476625422254498203552586039159313229398609312130671942372438965862791518040038473631138131317660999442101178591277550577034574571869575767920686706661087626266258592122044966558694169463132681752133211758579144408451363543923499400468732450581770629333322120251626697933907837510658689737093826915686299155619181969634446023472046680312314162425467940547519374113313929153678283065963889097248041783429212468289024947810571333470923862330819516101356188558125002586615553537163372688326923792830686207199956306963987778615132750474108616539564349161585192252623219871766448857762424476088090091457756475403093853225840710613468993412896155497316164303086401065949809519796333294260415361973467051115857176887077718638539662311280608707061685878472052906430958544058356468298617926414181144949097777100574701866674613377751593252801631224903683660965666799333893480909183104692013993568381653629511888914940421601346034605754416116960161648432545818168385932831036440978389891386339368074080320373150544511853738588406975027727755720459188443303056942539861577396788905850478745648584312997276658605655320342500568985326216826588449271709894761763678594101657508760265783844608666358311769015531332483946036097818814790050804786585099902505301232299174467359603432657880990156111241944304388515992944417625675775983911410619119503547179145378884227834352163024486117690979530740458357007098873572131978508274570129154585848663835162911444990760747252411244080260780510795279698950301167135344440117138169473901651639625243015745330449902488709669668383636140563567040203951463341073890981672180379776505598356318295649339036091065816712089234213407757966461244206762190225964820083988184257843214000997723401311310502438305833798600155608949405831761867651027175474939983946373018188283230942280891943330821722781526064902735531307587822568356393761896545859614800025511650946590415681960139791121517760845191869971663478134920887553096761130675058747656166939301517442365031573403941837117751017109712530280321114169065724024586233023772932211206768947180959202082418771629436204889747086313566820428737721915771401522490560090327489940803260646384099980867265837566740790762367416750351452996722302097927718563015634154667133688999096017748260942655285639908339771863367035914311520480046341632245305782672369625517496446812405903794022901901589428751283770742064407080460886178506308018045357149360309059603625315444483342636789523764644732495641445822070664059562800851998552040965007556605586099015111191372865382163222330375253192413336596508133941321582013571315422083957216174636280606426848228061206451383030853978579155347428968267084006090249309623238427541111415741113725186629786885140412359924957972085427625769256431464964830331136785285944086078532785961028671162443828923194863047278634421351573502536789194037310444144715886493498591534435100952044719676598443524064915505756300373087181427238422564662288433650371106528204148939217808935075568362785398928659974798018877276538883287898492716475643059262138516134265755557213585530440618237815043818160025623007329370738122404542191779997786020263020521259877862954150915095991482280373736118757883280631155093538983108708965065457120432093227304600067813373965302957557888565201408125865369094674080962660133417840030318663944855418071453851674643155878842015988456084644326050258986673016873298627331235593003315456236901857389248822322158045589124298018664099701504682521917634228222936151141424546429534177076948880845214705585465274166254417716512537505115188591351848780439383232842208146157936813944166800534083374939789140242624830056136259660944320283882097117758682664367466626985652474214311723712616642622536193769253484704422830220079132552454108353116061789508520870636603990094639212552166169698370077196969853624324954307950564961816009165940513405364724077683901791071917837149541680507414770937743576519152868177431907208266219111234477818127723149196428012688048597128441817723388367378834368767341617327127530175916900342489054364508024075227338893427821597075861437672778027118699680162254639181056577088108282547103628012275552456640310324371019564907059257718670629752003724822283116502608246290374642749245589140739963202508621652621385227075775585247391455273787532309046349900336815335261768823022790790507815518680940542082696693038099807245658396950716648235072188881852648391668738385147277949717212733058369457639803037010288515613968290743867715617516601091361755224985373728021258171484220983683446544387810055410367877249158238948966969545646571452183801192268825226797058986884387739945650909125020963828875467946577140905483854192067050503306549185791346300651561080117899688541258710498745234844202506560664026606765659410573178137225366754294080143965911252438724347613390724655811247184434853867702054926671226897884290255742613469872740061543170808039975216976479911308429514256542443299039257719620518500194123376678869053140461252353023642317017083317217094618442054178775709776875944801257770225975997578864186963920525546212911264512016751133203667954452625294137115023001708287724838509007732351981373962202790065823582097217953452268043526660408854840319376096165065256390409961622566219660013115088187113775202956082104736107718259024449277869089258474908013719077385051261847804198590464525763865083685115616508622813236146378739065707536036356730535539915090240992948845091955321655354277326700570369734454653457898605542754676164832721464454178349674951392828491283552731040523051973910421213915206959283398410454387334126717525434890702353486613373982848480911807282070212049494533852261279843483515833732501567140919680992758917868966512765705843911478162168261727875176426496577343011013266855564869251250697323142550946300178911571511719361654828052976483290392897141180123239136628875588130620653193854333259104559270919784713196574165498904911557195438297579429548279800200746650858480761494729886390614951354958206950663322680242514210782272899801588014782742700363640321638984618755897368624579420763205802503419278138899048361393870641467937245377971334468738243812704809038216657207287114886804628359710034702513379242513665439335473585770874863525937967278529136839157803329471199852231715849589360301213439744617497480713070883835867975391526043483807567465144110848434323497189044112435234520847079184103437703075803832723885571414574289988381627659952123008286534740617307392039148053603906501961516296874210865949754428448551825434429046219212190755885182286468822135231017765796252376019096636976562152788697636452326583174116661833358224978269367684218234340252168343962067054670538314864653048897256375322733511411302079936985398754349499873241843169813083314262755701215440357672180707965904993592120146730939622254083415585818554521216980689665259901764710837510684430208962583391356436206697404994921356776361588412623736906227835609934088931712879044092276670756257012616521582442877127078883090469502255850050120080396708784863978218657861671709814637676563648228623646740576474010729993395605278260814001983542135876506623252449800757229234989612477828124246834480529979090175975538144844102554391565773481597386658489340403210388784961346504379623089345838079078819238180589076478750898813712187176848723945262276993451163141324961960287211080007393741864032131159273828968718438318588739229160190626431404261577504338298580302951782225195279029862318364469444345102948056837774102642284033997836958573484114660736157139199699039903995578230267083037305390879422895594139712887392121253180846642574852132143443971127407448750448217307881258163660658825429156979091366879579200276414996668762301745643536069694982794488066976584955534417709338202612834826350678146432040143236781376686709902845422465787255155038270075540638993384903487219137056595758858459609872240355925955439177696913984545920962524851302019163073970567110421615724696463509903704502488864910933475896699719325393757879207128707100126152753938659789921172786150524264969828272505451060492464756433714198532148366360326223963312078198603264899606951264451812834844129895376280108416179651151035255261696973965456666085785025384557027697584524507753597011712026356068562119601141333938626592722940862159086576649791814192003729726199600490662076094536661438258639357900789630889171788425262781251594252343651789193917377108568788575602842228479869147725458241438916982976074214747102940340290139410051124449465790472958448676629241135309344115568422225649702207736111778828270801517642626777968290010275863194787249050096392716695102622312669930663044105749733537549740951097092240281520823859050721510946805287743324651727694215452222897730727920633239633832879901336821471317857063864016062704674366639524762329363385962051533331835881493158686214621897422466391794988658442621601986288777176255060985643623927729331827046259189563715630119993803027153431551976063989499685401401213043750295418903212544368934903076898506952108584373557951344284762945040496310118839067578040430485951248308285550562690170870661224145092178236596640654698679563152173968823396998664083434118605317765987319859087513769416936696806820549246790397840763787065378086958306929194589242972778415952112027928446125879142652535182797444459230832935703975907824910907821983667154930386900465458641782894117381953359358300587128038383524323942375411915513082195302564198133740509121184715149664979572356441210073688945972505182107922887673506657808980863156255480101429552236471545333412891134525520677242417305676946829638669209838938269009949104664512394004636159918162455199686032760176288605369198993634497778118363090233678509091303463030034082317396847873907822902845012266119572119499706687333668970765675595663426684096838180767149519599447353061127790889476393542681613957634867231448305453705270113027357908694817206072217503993445463755943526899149884430227229871506645748401570287792812129188594665696944925003392910361732503351214232531290978831723596843531327287827868923877837180435294177370131263106863641458530483857211734995084579791307293413513211516222596657719084130757556409228585218466775327239557106473317215095301556221405835099354012355329686785525319074205711819871119534819494853324041672661962616393704299795823529554678618409241016741537778726558015158518743925901100179525582745308090291219720567082323398755970717185784437047475178381661900166024852623076256184817026898933118608502117342907385124381660649065687678716393720476287596363587981866170737845958906780893995965602388994662251394588550934019605606745342765604006906292434517823231967314259849396813192425610383329854162288580928254965749274794682757456991703215351671283514426977583581048799573822338987239702334135043420819270625326903869106397927372889885469415581163384502070068280485991181196525470584105219336658711883923252098586692050414834014244625345849828350330995424889752006915967977374360794576789588260409105191722767762889981170345014537342159037798630004383015088667344552482429960183695742904010133494781530343483021059413144506001177340732922404051932302228718701546305664599619763782493383200239828170764016165042205560287892148233033452161205139692448403253013781811340985547321368850695338449756284662775436328819647781527419220785249952011835314916142751037765217669685359556344249539170740305050269133502147940076344144996296843603126043095769910334530056444354776825768238973997960988838545162121115087194294646572933869020997236032598846780163363925545992955468763818410575231808431296630674272718428259906477184684169278390518590772824284488574381231126578863449803139706924800513377492842246967666033364382177149186202402800961005947637982713340226642959432894316240587234809347364498574297796774683769680040902843074051507499042525436225968204227643439152414457196910803081721391257672546892643587795578812017831097335185272739823313820937233953453488647235773782386805773776384290985201717220271454409091636424601373254032992070465086882721360023398578402266189892516928677588682051928751507224206476068095621088136296830104205691621394532098775305304497484292898674605537494323303000505243435621232024326567320000054107401510794965600359920065642216797582974510344713205285109396564843916176138487673631292534183850656394469033199083450413864310958445755497583886629975393092044185996445336558649826035820517859938775332951670618024326807996951049552220060901151257881614557284397712997861714588253214443406447035980571909091738927766217476788053583716603635210956226619925909681890372074077765445302650210755663832285523995468257142290481540584234790135033349090617434303412632968749940220648495276862849547267849349917991757348425669152948259998766538447343337471437465253967938026595477219244510075617463276714040265496001385883216399611588615474765972264727033562192310565876434977370554542260914004648314775639196491257815068902507396866253733747280747251539807982787263059097448576955199251029626255969454769844264008238244945942948041744745983767350963939305786560098923984644637592321355569973798311771217917513636250315532600584725953810235172982450488805742784549789806614786450033470778687844353288512163279166096114668235936448653849761356769417936368191012385725344844893232300476399034302300786224743217739570185714310948983453026592025077344117543607911355478586254633966583950840407234739742774673811509013118218638156207367558122015344340146750474392678390702419824708984396312731745092862829212650586924193094925441237925056264271187894910991871376364533519357609366503371012683000741835886701789231976296413998264661115432288215112380665218894034632327391120340105281501494416807484515594734725352624492862287216371596633421865234144995041350737166173826756609928455519119745478855505023725212207689697297736935546505963660936434946405781744694771674700615379745919993642896003819488827404033344118981712120472530771227109856522896926661534246551713895290021787625578440674271380817602519201600248200857388058314650380196351115790840194707701410003807297165376634100505937537093640248337524125061200242964301043808227032298892388644779959458822108168118232471391326568047147833204457206240630208475788085666571509920932968883242460892507483288018034577651071248733723499464415212886975339871846282670151742184770915423183399403447323949757212248013480038147048383360890723736846275699171393461629360367098259817466445804457690614919674210979467734816700605942272681445965950843089756400954001597381799247553822402476930302735487778583173387899896446400643084224885551747429702050673529268948735235649643448970218361814110406697089068271727588808821736383936384696921545817818663836623217016240450501219193071534808108545428118727811330452461929688927653177717754498675666274082636081273344792082710864944802571514637605190591808184418639820423235871439277548593232174262869080330034809138420601289309608935510554710836508139620476785821261265276700215523825035606005170139537736070635830604287055154572872837203746639325761819398047808360821116575042019498573805619569296497511461008153892702706432941523367192203356792417611632491350668221784013872489505745998056305904371084910447846203324404697092279669807698103283904525055269864365626869922748469376735563247552489977238083200721753009686193085898442259041755514070183929310565543645638988263199431305395403781867004921058304591900021769005940038205450208447505259539291438843504771489143039002204249355829655853077945326290672930654490459277007664198543460371624428956268798591121411784071100951841690975065597259686563449483285820352739573680988097612439746431576310887347247758955838087971033627716686514908891156357353062613810575921831648996782132804286746121925092962877269999644534052596985784333522293420656931629407989482606963359920448055390500721642080521591020139655595016418035825865265288075180331407007096815480899418654128666035536531717034169946235244433986472100208646358460182473240856245665567050738282024060814034909633193024361865652447694255790321745136958787262851539120589291190106639406412993785046986000928467758837046079262981701054137680002222554902922861597720129932966060694796428205856583978781865237743717030965401380328106180126919077747800124150455690328561731062822593540341455906313162713797048117732656104343696864284194987770410584294023418060418000904386974434648860696321940970873514598393789973551729026690836916729900403222989560248690493245262777284767343016641144741075486157938944858464868083626929478113315593434358386422321523422956321614038909525253171363257168218956096400618063924824275270261368815194907980086723577373924833384181388009926529701185961780904431743208115874960888298902261350154096311998671459541065958456425919016872962767795627197673701937092453815333315605184453576743851373609989416669284106929407581619957502232073953254759169686628282128831649364144435573420095588265743294983561744096660061518698515713211105283501387577250995157840694788751197932776928977585020795024565307559914791233527774862111009953589052857540736010187288181839675012441944403667296727130297337902037359036542885206258077166598480796437668546851461363843862844428380877487631055626783133708997421724100199817352730679321854863520338412517292066124695561765608605388264277152539782342619062183452407066036544946026701590684968252850735468137347556482423680039079554772369985916361110558045502616221464931829488700800147376974858680837301655916598145088188432266849255731582679126022590722394340969381735637027338686389157655931667309951836811083530855261485028959761737531023569741542170375145822976942995880678645845606688997624070030609473443485070012477927054011646431390191892781046853530605845625284755916798854844810450477081669727610718875360737347066516393363822231842233506295181663832018428232764698065037255525693712834102707896704818404927053643212467252150304923257274921216441590843253883261751719323702007863524779118025307116951571760442649943600296918314515785762578442123627839409802254776110676981319680399031159548491782263926284678301869828452305004621822335586698857872857402930116825702408662438113059547020268086928882187073805486664304706153635446477974028435351673868425745901956037849036007092161905212597333179501031429363366437819964218501742943397898020181748620353262267992260386445913554223251413737105182150434031526937272230476887073086952820515207097877868340995723786034971045457629744408576615902818123267517222434609319827536084027033803328105224690089973253958247761700205157423892380537154459941841442831410125646363787389756788226363789254103636677519479427471537214500534637931712656316357275970549243867343832939734689428590909691156620421893995943881313618221321803167714786227686680254232524353060975240357617184579971108348565905587344604272955879179405691470208870951193310191973691054734032600284359155106922197298231922719841437385700792203236015693903325308967070516616603350977978531435629154082213900592043511710261310171791167343091520431867879386767890655045380375628598301556624339039353567122299379871719891403610443194149813882199216984480411645979088616738916067389235591003732157863039680536333107880025283014113969885060849410889218875916004086133697398843874199756966558804334606844706145304781640457214499880710668543125387272565280363605220470746314811444184694642233209034083621628086686630577520352673585450089433264913038190092984959258558219648582501449755469391299672067044272469625234738138497356898588680331209776283580068002873437292425306935422070640277498064150382782980449536697984005834817561188319531543989415033439244074654765882057551364482397942303927674413769679444599837791113447959507796843301622966119998573764537404756243930715431274313971550399519352349277544687247560742322287226004105221140808491163451100983872948958698752287589766868968385176939821598543598883616064021458032884761111713658155682955485099630455599216794362391933098802620595472781684922168176773004342250626535914292309913523640247889977253858618569807928488299477841598921265079589260850123710950434829242695402008602798347665810264807908553281030951657922902961111765450992042082313983403659734472803632304027419485070131972505283122620264299748394906669117515450133094587701775377314395225775683492691080024231532119938493884303170777480732428439900791731914571778314000180104472422322670025193772842333922697500546519692960655021763100580593042674391470463077888739020715406570973624994464782188018910525718852438796096537407901161636926234559376306987371274939361926095162701284515085231866241330939156991008104679040088225611546437904375398170935105034660444074956669556026760950415378954060377020636314610525806114662198232171352653999841212854231868974168456475318823184122127739909100586051762130132329730357190644932967825952050293782836067952694619169477001621141482407903747603506901373588448108587545970016124230009868948798028201347691282456037287633001236232798795019801934230050847341670585321491797130093566555381467781384826778420965229444404399622954653480834425463344919006295272092437691322624381102920423614519893635479705693341610297023830852339129899207681479845451977003052045821942641286064913217495541557710743994842525359979147494725253656797040342595902656204001967669617961944404372856642975258465753685218995052575187630789999130270082493918065441525826534520764883988304968628275544207436356473165421335898503261605648561968878781645339394934753172158350361979798225533337017408571287785217340454744190688713379611782208741825373039690044119674332897959516011134078945063752840843623750879959850585425735415767246349849390827702564049990262867165494843522161253480506760564217655191271113944309663942055129279746076483430883393130212766977959708108667501005449140450334661756586634238561308157570566304642370416621488298740083376675179662416892981976427000186044328208949053716851957031203116431279428480157795826362484060947400972316172840188313309155770554199346579036933770073988350841198242439877489656085037092582012439662403942871361340849591544015246175406450947011788820614408151597045048090558650727534968420602266324299750987455235239620056089501321535709240730704273203400768093610386874284607146285128720036038373815124039894311285972241406080524198266938605146651595169971816230960486703500455263150667983008608920419400494208741643330224179908983851887839706211641523782746725599910412493020107379005465872856901432130148643878735518506288484114964738184574521420487084794925523831117491781838907369358210322281718007391574367427896923940816645046567240780369147914503679411902955624216584218723834823170618179616168090913168920228462285806669806656902211044438420744920326700307888745108508500859871305279102600355385069167935238389501301544126146088448043589534665797195513568226276453576110454853422745911060810484097870160821937951674917857627250080089868285005164941447145630165571615460305149803238197507150197901284676043835374098974952143350149917395198351042367845597943515468677520683794990268407923862914185229809920948542287228842776744831066685777295845865786028315957240995714264898888002646781640098763238937886148657990273745896477637903793929380067779026183322728997827420240008911765510432942179356057810296629065382650898449432763503247390712399434876015450951180437056276700910358605841053051341222445066391929497963052103432485015056997176014814903091004068816738962732104560800270714856174264306067164004390978980269546692640559129852066468404068647055221157065167019765479350931846687557322047907637826492884118171396178824693307272987015732649949256986843656214955445654813170886110292764424239612540429106101794551556522889224459404144268292400550958332518288975549989836026359535143772470142295330786028520369331670126495613860255631675975980369802460354852700486417578324793506179278289911506301287101393591063591472817934022634304830725229694691325881434212890469995615144181173775205346949714783613183568479344016486163566529635059192517940121336286815993197852720781262593435861643882668060756965946230764561875090368957194892973614213499979482110961425643845825110352080935830458029333924008515777652411756426730266204775727033708929656371161872024974312435757067940376109420162445952905262347678035341301370933087524685179344034159279852221792976998746563251469682873751287562768893512130168985619703476845399927888851076439905153493085892020123701643361504492918243952887949970341497172731837312735899583139096825660960212938514572630328929952137055607943004003831221145406026289456969674545600157778643475247329463946607930397844167923859422448497893030943180359631505669071410533466214941219321167495209445266835825724868488922969249412179187478014840560372969956204625037138854115891997981620553134844014440784200383419037618389521899820081785580114603698487136805295799510929169528494039509807181736985184309166364153657603595594644608251369532343067480900501976931315905198949384492285876732110468044943685157981377901697158111987585814291167233790971406529434911953558963134474198530781207763612224535377593980907783182739217997909964478778889323054798781648592943506973481894108320710762931624184988503779681532445436587639075311859196872877206303577178583004805454770620021773726358610522215849191061236196198527363429966503117779855984720132767260896917992751142393991736814112009584507824587862542653480745609160796966901056771273430878097148106109511554193685939482873467950796339072408141906937556432358997825992067707251462523989005074200533550667471119307557476779522545403886839521412538297319634629993279077536766682374051832202713856805376150554304919024192740131833719957845659152744235266478262128345218077168074677058072863571975132527972051908638639101040708190641660875230993698522901697454574433111124561294485207582137564175128161119515237398706255160422705690809471641662504856920680060389256750320506567938025886948516284525298961429478449737120838540854285784941644452438008605524083119519324444755960929470696071893798885716760875163292208770394869160257725673943944883836722234898362170184343500189729121112619511129155952912555824449424736657222428699418312445090145470775411993802740623389977851200291406836575486423660201854545410187623090519910684789592624841961352415994290425945034898297470430795631934712550770978562878097757635369503838778716847698065884989573985128445987891446027966363439437987427925324732899602980059968709033630523161108912156824703040002318783043040900113029841344056226312551605887328602015548816492236322202144872997645783902505752454809647790531847859629158714168330138544061473947441276487724547204283833999365604778309108410287593586090702679544998579622779443290322324222840964009111184846315289775883862445788360827459483128492301830416626226720346276803306141568018076111807655143131452712920284583953982850724835475545474892587828682670639798162487039481110987601642900852643225803101815552617934895143161165933042111550713125381893869371098173311884186514960854794894187486019667691049816824466339258090978310582696890845834772831747966153583757831196026597556950547883998389521768734569701051066732470865302094504339308054751956847330720504388325958592351773695161944372635956896186360914076702057932396509170800333808228235106067190875227213919754808679087177261039215471187148679432879875520458218010897474755381529086252851350983573941155609841928610421581472920849496043388575945329296856074879070084186091234998845908675729538986653362630380762194534961444482444411557404197738647181486894806737078317782197954719027067062418612460263180054185531004558449132487523786184840848920476088885113166270007945205141255991754504628157470416518701251069875516390059048246306011412163044984491805941322623482512624365567358802782491519786238419763718580348576865669356719764566630425298238428115123299348741311168995134462848055911417993414749377483622691545616453748872107525411099292026101499534250772746698078451279801045708049432537477215560660464696330916853534078205918367875607413000346447776584754736740521768804317333142861148716504497944517261960112611594914229333659261299170766829132392072838585591721613381872597245219299438401082382279900998550609617055538550655448446953209073222423947690973169922359467697598177523296551651348047616382368052409698877822197594590110826517381927580902898818342313045662209543415177081555802362075536720774677533647615506266427358698773913257156119723651355015554889326034815504390934344421076794109885148677447619802952692321836803176939221486661210782065242972989357140005394215301996801273007478954443291328882440915240124928685930333238660037631896070786110234331026335578729537984703909375281254905532601613151646166340089399983891776625014169759472520063177346800810109167155323623248215403637233369203473360449475885296964861758032698566977566220304863325055687446041611391555367593478970038634396458085642736006676592187447548679258792187723789995608952201910835859622846703451253254612943876655494668375269299040904125118345322371650590083208815998169362748165042924750361099789402396814059332841619619292433681173278205284177276230786723693498294840832136356468829949129460546990296858176699862437473134935624705013752383991368531119632191864385002019719492122948504405605645685162303220006760880380454471751712114305997357911850998725804418414132243449778239679864844033293338558322458186555782843581267899319443605991498436190676720135252046719741093020119356393695311611609560729856944280721575427510982295477666573445108099271098781326430411303226070065068504480310110223504929307157844503394656366359162507731844465857264889935053010791104557427149019610630950277416596871376968183969564603237628934041921912280054339367339924141077346470487759849465154764897313094719016571168639720202621377932636280777504907568568367422401503982805412395781391720331586894031241646414496750282914300770380513693695435021226799259396240368618855257474823343268447847727916464165624861531635433903506044777705285482922454363705349013228810536720614199667245036247738272831662104822971627185688122891838273513601328036039539722511269528187361153705717608248229850620422717079436581978788353211793441204734566917983969381343055549406502900059951558887813090207610492637667691160328466695469557612918465315411985288356974131046688207567532848924496010378448637304520700329962626183726429818428438347652522024944114343170034356574230747765624444512126481527393611333711324453724873495771029029432464673561363415744479970691238192220869777624572430491513995122386940753046988920638636556545408552240281482149914080771180710230398687071586583714467019180128774439306050557168767055364378771529295402083257132841556013939664397341851777187121396465141505923563278807830052513793458934473648733388758338861906915259319560790747949022842594530783593719023197175297250372229993734839962396083950249169249585154727236186003022155148048568498295011469291865508453556628238432723487580603983324840568594264110210264263405739313568659286874461361538163631068457944430896896266287586796048850945838807986854024719768984810062365650581690729536419668664320676574827934451736541409866509109398299834377058919658357987336078671808716749574813447492890037464745474404604761042890485877989550219623509311948837077091265873614473512266745140487630323807046066987841063295139402124513554252267081234126932128363560319867827194166584698222268164123168826205050523975604386110352757865805233682481814306318873834692279904862306615746153565853516225902676405627581361094386688137032203525412105554124323761656227791194100262779829760562203760437805640231504108789577383491793851911285020782511751793468487557814984052441026595070301342219072403595297826136078965665804441767074640198381395424995929561245702010644116370864847743277211628557823043068309477235769566097030975830550854572631681113807625029138417990784541264611994554360098607207980900579734112377230771558776899753030769383015363565311024101979956447535152511370266041634563862899459671097349089224938007384298173297366974244322893672453304593154920894944841563585668532760140754378188168535808736838773203076898113231168646169419888079837528302636339241694858113725554669949749304318860494552948463398775177584907125689633699535560354466644839900951109641420650393382813590935329520561991916075931175603246788128913534034515592700592307668309160809117388364768783274105260807013024915969267523958552736548323293112179505022670679793049892667410513131398904683431778445530911542944932031457037689137494142994375437962501525061610212154313714681430828132891799506128147262098213404449515789766531614246013143847263285784673751812834223577886742590778209475402376838379269892617283126020136988004142904341990710009583244955955860168424991701379296339109874829526953498529806483708428648541363261513858776701090201930450167167399408505066607060260713298147970593551790120960886705757477583520968602388464352420408828030652773859985916927889264418857056962850670974401439952819785607183678620160787435912063050423406353051403041821119960130721806506496138926925989920965394008416704166153106520174924763969820039196306233650352183934298918268560811803525635017942978089655742120741425258936924985798329549147043337073625957995286980006573952613544135482183098048477426555984594149834310260727033676650366687387569845761431871719240354716902992208174163665824328893985849260651202912135970629831395966145014947875191979582379400248728975626265645918362186419439881662953023280203193622473484850158119216328837378394238445192819866309310427988173353613469679458032401926490415645823613816302249857335314667803180804812466961622285934130611428902862570184027736062217263506150071283074899202184606894663000239678095509552731569102136745392909031211978154138351373283003970854888432078535037388993820224682248205583337765814019708504339454981981899387315646324710093381089599669459795544823378375740454026671597341922341162886939953311233568917809199996335596113765880631780818489050010489380078054389430876982394299882606585424336819471906484170650387445693263578947714516236893020955222471775868351675210376841679717999406690606310593770948460976170275660581992691740516321559459124959753815990090573413595890869405639650297461655669046845743616414883337663751778806311492916034039836118830995299047789218277257742947603504227028580094114319761547102846338695273748291336060296422081450167801060972533230736223152082442971421492484657831167740046891412704091230453126774334211648529625741969612894568129731073401258128150653508123934279448694675703526885212632635427802270803995861760328916493553159052260957568764630599928134130837776466534638236764769166217361859685073205303303409710319394533600070762176476600165902043149649172584259613580407131038619291675196526657690583795912882746751130928695096080785660688627761074528222191764954227805462960811962078982017410476398913736381868304859724417373476716943670480768547379768545961948543578132118413242327653879072086196005757977980541433095116715220280247029071783044997642944278946425761688045899997630564541214821873971442418701119055772224246832849674311088864680411808730762692468707417281473249752478767174307920983049604150513688211784330085179751175657494248498977950074906556409757749592238642090712244749222721611922929469840227242678983035413808254852061670590567882224672126358783379373192284868406879822717523184273170532945484969854779760547472828012298424912514487689618232556369570279298390178081090588471400548293458624306125342092939322254335173097515736046265138855126442528656792793211108803861195374700107556766830828407153232177369538798040932315829414620598981196866469205921444311334361519824127418953940215249412014322797652353139500097894472909361843533206046570183584716517230101738266880506889756064345564759854177664687485526845934830880474429979221961871205059950273092839307360008653586721086495386483289426324359298967941620488268221586562703912784497999560242860859447357976367614647943345639525659191664435929353966001269216874678250643866627836550694083838543890061338819955317492272775494557600247952008403957510349659327079626663388227341335334222932933363459114245810942334840827871097741260488612804290860466761385699668330423597755761715064669832188576195975635887573662757349215783318305537857990767789019551643107869442395554213997743248959529556518928296316238514654844403992477884604988952366616395855956599403710189809952605144781927329725809432434438577838166631304129798892587039851815006508552040002480664930591708304518722968595398717417955542037963818979877950259120370946533614661763566039474193992092082370240122295540517128735244038560640504151300394485232617627188786461910211368606756204391102096033615598027160802432865819049604538194707469779828960602181533893081661960367122998774136636209196595755078742848359254182695056644723742253236666168346675800282726835339111229167272141767760876963450619765904772803678795519207057817310966973384099524531076844959425763877334962518164475179312709875394853733219626689131526026573571818741819080604935676390371866972061729763671274468966799385534590762525219198075780392832566803419619479187566256194227437089506972957051929563276807937738495440989676079910181641116075509188458353566963906354967655668755094345613332350911409552373974384033961522327530773306555763279547503924053573205117977380808098887413827630260601512661636920072299036726647559375492053674314752542701305289106595848657866582306479388887791444616006445522465094590788430845511312126166900651143968545463859325440431124650336484043510816586929411226464819873669523856831187082553474347925407493274581308754367590464550769667791521515270641401529311610315139615596985791383969786100363833010212585329260232307922521995681923285805479899088052803705831308190064142098148293950962732409927169377191605139921090212112255741474165756552050639530056637334667948587692846932494391434172866154928065475611236851718896929073468068326252189963589958037733353537763770642723958899444194691458824324561338024212376436329346816845979284091138537792561825881594707296293753548970232268073086347819049601434451753594759217509450127740787862402221467583205818642342018999057117949223610441040636481007428810919345758366090991706566393685727121574741844628313288508663221520697105193050923841535257258362511437104778239753679584598825671822319856101728930968281772350652252896859816127199192838780617820391726613973632799318050988615893386680617855255433384343304953933402047240851029787993151561838357228051071919722836059450906137626641872671527936371584616438679515822337817182563620432663515467679572616018909177392946671352612248958239058231388643685299431215377077239439855186220210303681251722474482924929408488312036564349142161720837339731404370714355375587056462534382624328671900699506223904742091077201447319180442072266545341249806598198858114248787637125919041193934381614452727100663814638229979360980786201104431667693485327491348807509103592845816969936888235797951080847663216783597540432712351145912786580211031984339049381864694167765276016946250452648905649193975293179986548668879352713205890394629626536283448839971207758061851107100053027110569596455655556485838759580368773516480936527346997987203512261827022185512124319812701511060831794438242805222855131197872619564760659353469968118249067397131595848823980436806330296117111214820976728798755506764479257694733159983028715887313087577078149752501890421779557739661362321082441613626573400032903666993610229989313978544609883375494601591128422592050050297920121099288794383058074803456584917579720107552674191447532665388826386377512015094603657373667386467463629909581177954995189664420605065830665392510276667515780739559935520916103937643878778777531222243948853294228175700315176926999210110745637399840901613291897729993578749988169399757416036512093807957624173336306000039253455325614573726974301543802262684778367555550252779569279433787054053494204225900145597142370333843662813349301367443698271953130230773779390600613254909526243255308223771506904778005005781159504318293949313059177199691482871534778526425268870859792544449131475338477150913411810783491427794733283020809007467560118833583240224790585249227506169625049708007753773887990734400671203333031390064317529869992108181081879377433515659298086537055407499419205301229461849219185081548655502823739736038471916252236308813919902985810230614397543371291725388947780177286572475150820855566425142402025729269706559593607055093367005691965747289878985356774228209519153097833025106891974625748314849038477952030459817839092966261172379510741429184588147010903977225932220320067858356895293189780668846455548373706962124945682246071847801632014625451885867442024500054921095025239408331753614426443592082219878479463851434497533219898064189156431004270539602882231172215279805893703212354746071082020231382706981814002366836051537883458139238226806590053953067785982912449950573175716879484097090588350202045819886060494478249106676536540403092367860380102483421442145579779574604691361276070382302013264554916504843067915354560846172493485628888990753219475892844372248019751009574184728303310569683146088595691070820922360830805178261902644977056497891864986278646788401649965880353768216986413048215843916647340745866975290318615018684081058597622476504188296148197135304416157129456497293830280914948165693620886407865333849553822082139091623073655262394965632505646732288358210270762167978448960642115376422448263720087095134882724159236711035506339254385794738081581265454702594204107930706672257698363681248978431759589747819934880486666382568784990154463794943495053793976600202228906712224715543558623717743789934753410553037223664022068900603727133946064294140105952953078220067734497804084447339412124825514977284841122528064505782611496247301216604355287349778054004612346210539775062615771329057531922032495215858790142912401339069525832687495363541459774992275857971289827794119248498034827828891443373150197372296751133207599535179050045414477828066263807001543109348406958990718324398893743805528399160012262491928004770555453014386748007981956230648446315739934322752827181935006750599651819470102141448343867920976848715947511119251190472012865437161013971518041907666362363716769766744280938605493510121003342080383560954262429172856137074842676119060192482705596018502100219201832622765339389184720669506143057098346994589331907236974999150435779442143845677677425357779468863798225356331294324082700509420961008002973662841533683035437108457964055324831989031193751449390487623812440757399692002145823034290148189735363328183416322558132852849165521580345945777277442318523179512303574468362476596486524388038738093723786371682662702444671111783159827564459835282284214606240508844442567005987275867524633928055175097044054091257250487271802979947171592919465912339963271814202706124000406607478000605554834839482476272259357812891961021503486902785553674990013580521959773412738473053793625847370167721249023272428446741925271168558124401699772003108951861099752433347925189209238466934661147385196291369921733755816270434789337271970399427892129416608880768533237589751014263155394528591490575942639648082334808453551503567423321713103319169306427250435741823212472041131879415855521704914241141822889096897658973736027136656091429053136332271525915677378743540910438425644648613560866205148255966045614711926709512064239462339454362284407919725990727557152532832180683380594980290100352501301942304808275372102819933312939911058435191116163896557403344421560573316762204451667025493142265228690663303808692206099975921382490525620549447410128879361924311871347121295357053101203830796303927338237792671614494528819884955368098741816349625659177499788687876814065195461504242372007933684325394404528617729402483341002237697211595017915763530568203973305014279477765243757286385332460214514106288687705849748680081224570501531180343953085344098998238327575919728687506733303515346661624470701879600339792656495127980496706479510884324816104060554690753337495483254818857868031958780242004383766711072442610136360602119828692775083220621478720286689453636553831251982050642770584786241436354750968371246189270447117032144748718269135407939734915397635615451690947850859197102732850023674543086107431333639999509631444814614632357760105103035536105357202953746827622735733516276368888912987276892924263309353915616430188313189294638454993877323828296817359863160056976151581347288373822911683171207607603794211323890495709922284733327281943908101599655282641235948582884071060878669283539296182911560165107514731632260075120924846602637052969734206350636214817481443377229743028355892847383640141483984726069918351395194864267005287483841754653708359782416624697663058208590378192756497283768240861880586291503194961845657355160729911985329566752118308271624873405220555821008651404443180804603188543051881456785970335088929761003877846848640479972874281558590930736996471821287218120923678172335527074253527373765352239389290571645364937131778235964803733323446123798576005657679086787686784212481091051214321212852867789109318377922839236044456167543348994072305466094352730698617880139280343295992771342135798019379326822885539692169269216232336384303698701313149379715353895970641458113857687681024847343646329623116786922115293466726084222884966796974147874561948344084868063692389133783497261798058601277377364198088245961666813027610070738854339820797291290273080243315108255654133111798645457009261966880239172077918977241029138400960903906542519207215341627036521526578981590608210727065171555731269522847885239807819013531387420833645226855500203707184584885379183746031311429187615563906705095420900192547717839169918986987577129375352518510137630544683654394564867941225614871468606166080682819168383122315479667272764590460233190932094555395681674876726640241233668654930422488154453495376097738233063853452344840442128933597570660801564622669728457047675295164720426598550337422498120127296660701948008996864065870532367893831589341715116397191733092808019625796082293078723108432885475215760179479198115621367218402918777149496518447637320715110196077264406994036536647893544762974972678064501100061055452015924498253457550494043798990159629974423175316121245656910126288954287042875913024939457965539817523450099728395501549360997134014266689956377263389646809045838853662288317703358813476889466591073367089756066543369778271934842590303896108387659297584704264224361464956034804206477639542478559955604816044744791953867590645561438667494988388727634462926815371198610098953769048387719649658299435117939669307988144038230115918950210799912198369345235772979766551818236522553505581812500836423781262426067623533982270115574222543353684208857819616584569962069122595736185498553836058862740611443769864668567385262217650855762918374660192410115314789447562005321842297554853559073591382815832467821250778466368230287768901289081851382414341013073223063802087963538613136348380650226684258460949736230634538304822815851918149564820794639874705245873881388574680913607431609465442356874945813178219620737510472995066727212361925703469449057364600197432786541809111305337981942334197422028343302906375340615652621620098146507344910476821019180331765311782067258026421836670191878409156082643422958316887794856669031795160170618549047147421202811851267872546827825758194395072811596305821931363363091590436518470270650290600418374115860452190576602338776889021821348174370178452948698705466121905578014584247880884652651297129708443527861085963883832987848378922850079090204758299568121041743363273025036125682430506001598484037034067216016423386313156074074649273593956077116040338869829151673245289675611313767051765587423472837090718350697399749417161782172507961123624433774440230428885497151102770107303693398478263324884635841292151496580737972676274372462020305462162859301312835625685035839989220906587413574517110505160636643575301958259461803967094975620312447606090443218424520356834920059547908997462256217118588613713119533608090176066154359051609820043341303666157093504384914969893578048544751260239854417257081797350477683746684184030199792220110238134527367115886292203787010729582483011777759528100943926596677522281971331024049150488456863240624969320445424445268671170897744289276960870415181814688201952166439236693466695153936864155446565290915598950737895947467391488926091860832568191744554765556519758075814666237203391737017639851555136467488749709810378668507825572029356581536922170335919667497342575963515122234727897000812765673487101576914302687242989691098311125414717429514996800420511282972028791947115041976539972327563397214752096639353876789227655755765080695025695608975132013896433444244110267499636867783695253752398750686625402537572539543155080646837330802435347665226569873278967700692519413030503795922738340226475150039161877137391354525423727581540267119621279019293910209379405660782274009622724382048056677704097842292022797264480395948957298514105704476231142727570576922901235882011377867046344384306932266405890197652245952198797493396283306495662005584603140928116080725024039482377140522131442795856077192257868627407662326637724235891414161900150542084232423301706123704113910948715814838955540621526473947174241850105977149290221733750893288066013575406390696083920753757227367811711397122524084658057736747994522196430150224291321544251810259021688849420966493936976261811609446258784345733852936354550542035130581171213337234176176557219019062347594960409332055445388045887278288160450095936673658972320414999696814046720298199343533762016785078896516710532950108312776961343134491913053247831296815788640457347356798007113525511332525747492471945737175913331304639354501064920644841186731252908006330620791798724884786855639207818712019632743226764210212773847105118421279311023468573160235455231719663052831213481473617233204647075684701539447272910085507542441700933363885421434161779049270677202269674414915464821295171651512100061652985268732238746098562206656540332348479606280096910025789494982628506681435983106432936489690502006029193935857486104767442285393226595875581607434481955805357504763820686528154188567336473150619135628925524521950299553159971653230261415969333027467883245464288323341733619362010792183444378992204568339940497833460377774503305393135826767983059907842074242077244118958717578234431135668877713705496524764687947417976300992540820836773206203581047443682918712842985692789541396205130023131569703411142922797866298305826822460699089771663817796975653922864960772899207563216898891720106374164622736475147400456568252286630933209023041245111140425438172544265447605770522158216281278271994006353128704712803539205863703506459135059773621554270958232079982439108733474991454058326775313120883149368245219056471226830472943395917030392686563804268074049660567987325095373217909678440857703884501707028283524864282395925928501400237815736258804672884191102262537012201410589165273039017306509490778813923886367836406172916038566178535439780802519479692949148804488942478435384885608143939413947721254277166291061062378507323185028522485130942265177953089814997361186809918947666159400385939093638566953763685677989106401347810751138579724045897285104394577774974529116310414623397989030330993934557991018684072280041458805686696674614808753690131146317165894748811754768937321851277821503377216025845531014496034615209407277950226025973672204268271173552676626996479714655993851603768784409112318348310241158610256138895976691632441277454916928750039274432200759036642536543632180097901773171960610774104222233851541804045294434878773131896842393281018348343225575750300434030084717683388317751375850157495568574305966082118043188506907901211592993217481471634925581804291821294651101910496436261362132684305057462420038595462030429229808851917748794954523245834650984630523951857203087987232668141100772732563001442598002283858460219656911644387242727181961480745536030744906026121167486198280625084386440289480033981001730987905828933329931253013733739665346740898801263073428627710358727090080965154297424211205300029807368435235504324781178281901303301909785691890548081980446932759993925424640019225321675382119224349518113811116255814975191776898347824944104936821565502648099568965062045414409987979296822269642456206353566475253826698541303974357983321142441319955328742518995342927004840353520033082042270679908796815027637727185565842839786385832002330619672440263854788896184017770634102208781180731966974182394800034946480963275198935583407296090719252077157354640490992689410833751556365191007399573926877523961170207309264957862548635638937035819698202371320958331917251624882546157860854030606105331888361088602578935242760791428451248293091098062352556831836660786028207895658661009220940067598199800230158190937587818303470469210997090164931769908041618390810041920774277050120996290087136655259520444083708061751780202784199840754164244885622506213129108691792389956147734013132233622272571920124376830987468534836075499035968630929880159837491890647895103493093026803564116943621865373169118311912286684914030920755215979935727365102752781217156840137063222582297670624967601307954801143412058084391703596855295020697488829873622230880700149537314527714407562135664255417572788612611568578123372813056642020474317712749023273545369776600695873537962844834434496283238501998599571624244364602285012326630037380675631848895692055786157956904669061114689030082745178520966768855702611053944283902273679976185670247284403943076963874992050425570586638997424469963541065945835380999565453856962537974949035675034826764367036607316737008990521580785870772647271806240899570686853030744124686216721411791914007440857523455051798456224499763204099463013383699794786723934848548113469047246555400341648138061324862236828262454675704367942643018022803679082680452810446548870154596233777836714902971660480938474954262632451079350585339296520683876490074249790020718819841184368310496586172931719608366849547093634934310707917302442879293548585129484573367812383164221539783897607454546589035380854831163333739223133755142006543143720394418950436651026213551478537178874527053503016016993082989561268564513010038954895586950343779542843466407298043598528768218065546033583499332633861129577996828376422635978659501203328387693260298799688493164338588384340010362571423007020924113539695768989068254856636732053419906944317204359943351361517507050643477300955345586819871089368148025282810429331281701495303824207953241901368274726816913341444285988180163591156879954910167078752235558267468489054958466167430424618952098747716939529085085976947869371243292967503267774201903733552110563482277442751806834143132803113894113690883367259313186993440995833218078450025404106618841241061348190339151495102078099991535600079004696588543870608613141611474879832530487003279242275472240746483369271572326356232339887223322676842232290249181665767963705084289674039576852798539888360660331217363332095334527053906387951532398106088086702152675499609377174870666698464900606287665948979964736418949860032723440760764875050691622189575110804249921461216760216819713330184220728121310150836343405945710922125682454251133290066164277568975688516373231383129842859454296776660642559427957947013262295025936517852508889070851382481992660703404546739676776202243479969365889778345423157338178897593029840559622895723784396566890287083494987426102508751231379925446397320582428081848459367174551748883663152136310572801180971218099904339229398092074244217584762835750126661703117901499744582127487655490793499125703310866906660026449930361232694861372249534090842998421448584337017731118077988321974227386810970090433583965670175666155191218208120845799476400462192628298376540712745806386702352623096644581140450029715452667112748195627595747273105587308606451453049863502720881881909787058271396709353870187113065429411445491465383800678755799290604696456640301024151749972436966733817184838767738170853690397022471864177072928193894639146903044294073958867719760284119324590645046387672219678743724073015901344581114504871004997156936330533109075324508788494030984678312496231817573982138265994557211522532352414514913568674575121043071067759214104464017587182505606966571186763885588790631871268780727651432656182598725571186016102860181360705185866885918593191723584984629687563695971524057944637863479239837060643493582451599548640645802574874710776365434685453547117326570196776281931096352862218291287217824339439189793710191880020913541726480135295289860514615007782757669776801671323324619962666443999376323095885652937013573679675162429694766775426081267399213229330955678011251190555796760446604644409223960524084549201368364489621888029086686957373952739359681370079462320441315613269482030978215829676965503532359737385866222786573847916425082989876046008647105951812462861773686406604819186765641164277878633290388775347972989374713740570616867531507155746094590098020939540727882999842373736287495322325995613219590191435714634931661479694922621022877364957017860768315360292550898739559690774031908982561665040418261474602569079841584042827194085599544155076573481379970635657257089732974118868235422823251339239130504395189045788722700451881807401139284204516984214166753869216349568270835509775655396613425243978545691747728853751329695196277153353105038460885305889435287469645202300846000125388296942078690673227294614607627222549388421424450908674725680344861757007760130754278945589643262190779901317955795343682454239408632154241592799875180351632959668233731441338432429682818049288481557080127248895681366818639286202344509949438063451113119868025336800705527372469201148208913484047816144561775676682991043272787711219584321728303886329367149882924367871560506188683026497540674718218045610247020316946934314526550989786028737297667470793207175833320435883781906796971752884659076120862668254695393598776006812003520675169887699660578829866657090964519502303424795010462615647552113876793532428431353020464175401050567606649418585187399871013268859508849038014727051957409204154228640691669375265524215431345608754007219434700856438227224758585613611574285241159031288457720574322370082103457611550606442521131362749137667055058202911885634203249619351916294896191314561252615982753370693955407836113462223909980536068684835413611529346478642172588099790601368296079098420292040099448253517346112738840738723690320043395954541258520219303597514445772557596065138115892414043220008091091568745540352682682281304201531701473726720028143792630872119174362132515007890839222503455808277463348505462122057443690193630696931921986450353167594056095588994242302580103019249577743844838796560105801027564626654761279108416763070365957077054543732376533505783436463614021887650076075862703267065261809470822457065312607523789275692237923507122602199766976763068664722161006501897595232657839654002328502632904811161343660191591051726947037121785449626764332378852899060590176098174979526050017037189496627143688647028263635090532783829984448444659830586929078349269833532972131946482901245020456475099332793257442408290771115478432543576732545847904338435912406657608106201224274665248865894830514094617677352275989775115078406776533280090462253152966740444370301343423656293218876485868568236269797357664200297692471907421864900871441761927250065302893770262430706355630597669178197648433706409466622789037159707048013613519286740593247722698850253121583891231538124462221656642133770354913493080791032505973747065961236750317850848071935332973308279315196071479478831709239848114676185206541923399113871060995893438731662748131581161269197796356203618692641794637118869548502751253773897041911480024817030313888863881980923210523135959339283497612612102094768112434318236125566966081271986604363953435113371169157334269445832239848737651418770959127143567441315187942321676389326393130525695297458173325154776543040986051027680218193276007090609486049600527749685839227360912817640043710892813709331895220656485271124920730544397407985903503584760209342708669279117641912173540994417279981749796216074491627681706553805125539093334314039579689913167791013364776005662824942940931465396405983676655811862633247452516003867133994551030059159320912779753920240314563010896514054103359364852798081624778371463139673676355953877212021845823417208727059804377535702963259757951882830969545038214897475070881671579058020329325024890432944492865795732578289963946743815193042385940620504958269972800903954193493678465006412419290793501522253121304646472854265469244413497463361303739445255576733047148559319565065770784213554114124334000535235500913744272519078830130321068369103059789466834376500614402397288509224987370982755746083945964935457967772177553036595735011848668633129356744892973738016516566333741584273705281581112188148451781331227528815899413758174032555990683592992824138244189205285953253458563680681164168153087542876677176164339283838760819118758314895977315412902430870987802012744688891996969074123972404636160352325412362731215430021574254068162195968169809346238306667315610638444265153923205030589867072349993082264200482544545905736894088379758635947850549338444261537306355220083098749602122521806028012551640794542026239332117262107825170745413387056927798609762377077680754053260664334441164883271687575613795709816163884877682768378571113117046984091030318567388931771282363818900017049198379019298967003044932347947901864114527718800964346261343799954747647328341338802643827587979744207794737520706258528841338540775528877782279060104229304486237511792650056645485578591090165008344626977209700415469609664594862657235266017920606805582012545546481936144541449589169159710852320876805941587980828755509473655646176935722478807710216078421005990324874602374212531380974196083116092352535060395905928622587815256821350181444799315014920158958504483892677138674266053559308370930617726686741299624532189468845041193110167210205185909583816163840505295160403544095791674318607895335527267109221573151496624409945089394993097193589715764055498642439788832084474745217823977223278417241997427388767431449791832945497857294334234914498856784153213852867154836756065264664775677217357035182356213597876906959687711526791954695008259810835922220966038048583218001062362542159168243544371228023190250725366639639724293866092063536831975367071499352347316425462507464653220009333951552365343788423594698671554887062328555558715977255287836356478778949354987758750225521186473183412591437678642000933681417562717593350028223321623249667897690582330272631245195280195278662858190336689357203834145187629312041527758577943549878753187121366895698805595754920256509399339898752005603151616142920743818720795433150635223830432660676268485888751995403557431828755913986879022844694282604063173422760912210362793071022767480390533678592140985719732152965069590495216168182504188629101101594630318442172292345303106009511705140585421968499706166110068430773100759867795751363605204247088943359676324290845295975596167947522553255743373650998456369054782358358037591826593119487545775330821732103350468429621707425493507209852530923469645887673998110631404053606307230348976978138339947994504131790386696086464412859307648089571675920446023268451614975547314148579516406018126654419641563379585303753997125943940839371601273236749563260354080742073388848362918103964001619633955413114521383310820147409251092957477121995094348695193647127878351134877419368735609984214898015535763392077709759319621133874669223326445683538431803958026717897408404880230117231638718324087651173359585067405159594282456346167092434396609687742583352410836428605270427537959853403838856782385858259107139227077235443873897826841647566610870107378735367401424022659198795791773341720746514576346246446115009440189957565317533072181430679811846796711257659352249677957143073447056201764366512547660819688201264500292544324927553689022089851759229190335301869693358965370414305886797549972363417438870817706506980905862328503489028424297576153569574654589393304141168408984869292930848809427838695452704340130454928207554150016116229367733196689753678666554679965205383922429822573192893890916336702230065926833400630334326924317171637703498991463060220891191880222182751536751032103746789782532785846013064085356102247603679771959682247700005820509123161958461700399301900477956536678934231080271373134231732600287465809487136275597444860239108615794411434565358589156530378317862749067980257807187830853667430346233199157538688143601136719895131153229769204991864096413166721041404385554189626370096144596080517660410673269852665611846306256627467615667934500211724607238211964591315673695509047971378118823200252431639570538829133971307381399651575001284115429285571278225624322298276959642408006222676003303008769242686019962997267849918876442469234345327610576055241224646636601591443245722957282279911023998966373152744620494503649930629073500875225070135419307212408921796343767515276538172987203872730183124029339532017245982822847549855478776659921003636778755266378073719267161183921826014330551120397510100861625832353849355964006274300778832454530239004440591453453678782197601196361705145093924100093095643304863955060545007540158702278453736371348499791028308775779891428936922886031361748669182025217168719815196655320601128110756621591615326630373155862630753226003224520308656996651106526970764278501182205990286831095362320904356498758597580534402982927163249047719851412929174535514332394572085509048981125770714205249935984903864451417829395949874001130008181526861201383408229053678624763813370801429840170948629961212327510958513318921153354976694798967221818396219794599354451924634798222564191253470186585574155188155625069188288085395888068805217328600615318412683799798862160503167827630943382281500060860514380149983992525822229531386136802806268070486092534769349764014322286658670367281582544576939681184369490403449766380590602251091401071539909849075631175172588502081026943486744456947225653085646768085773269723355599661614700953706843969690685859909349425299991897544368758029722318231231830375703659252342610651981403160527117383081468602955238403265476000967254502372634964257085711092060288606770075519062592883478030382489297157335206056963714236833545717976448220548679675440368934670813906615516958223349560541979137276348344075746002567159357037804249122462802283696910924212951491541050982117272775179299584116887659881642947983852169299514727290456911680661628618528064858607436672720612292961768391132651026162907228168469486651641418581149964724686972030713794642714494319023359403077372184197724550648437553420750293216832886944322997136648765662462720960556502953156493675057407905149750678503543465131801813217066089565458786026877808440766327340615266473037821795882382301539835630253614805837921551134494166275570546095329266747810286568112780627955775492904002133565777656069882008398955093148239018989668189248982597282822762849192998883432252682769580766156583957972859924927915486783682920035005275111057149290494878863745688727966956589076851014352799593662001938125840010855392177133287947232415286354174606197295890101753092389068624624916549710210605177097135583867226361049740254540165930460448128304977428975257737815424775023244807796831351569323991820537000362199971610699674908104385006239314607237855410940439528783400329602570173099224685809058819309544289882339192624716162219854453111669602553731000612475832553130207631857110326214599939798622382580660519855426795827877011002133757705151097205233261586905528286943445546091451050151574390716643007260533202289820433585379952149597451282430901634166495098268039853016582079794376386813198896112783098638115936364915098502075952330895631408695395339164708223521226542405592923116982536755192093332673336708048643688009910901241416147667503443136303524662350668085964258943428034192730822730392406684033427210599961105255670137530035862920083038171682189998288085219451078622417553336699792545303068605891236516617801700361301090672267724918921513497965030684795128676707699687770629175019527221989239487438254202190365387067264285250421107480579879814829827374807381673053463332211376541746023014954845959577919278662149941265143596934860042239931562240021162584521543478666505018765095644279144221651217414689411838385546279180966000928964222447820898319415800189502878199561571294320779296284922395486241185282362979252155190560971008552090652516648311004315765494934110424141941798546142139131994158505415028504460743169364252524724835100708188997523775963524131152253511056793904452383273294253364539382044929979732243555881144492322676471607512654647439108446786148836158907729614523071690394552187431299092920933448445838111960821372462357965004445308600674019045719708216598747225571376339267334475970060085981591525810306269642006408527816192262879627157523618285094650165458167990426257102753907737862761095315698006850048714206545634158999403048889996331061398169387935864363291765005599992778153081651819025550087538170483861603747544702521729928845699900508069713679723611806155799324496666748608759058779073865071803290744635483111556069042192000993065406565722318221193445664368542520631191924853724735640560803328231383934555552882755054935138312155406145902493734522115067681819232923036138993869263499739439909835320976094491513417966673101260306162788924934441918439165562531306190510918961017752546859991355112102579242438436434990903364847368980442713398022714008447209855022710059304442364389253948351478785389439356095991354466252380962175466217189338696290808204360585293968775925503703200961689421817128614981335187710244555183020629616856294705542750472839214567528401395248016789823294984304621877560467013797297868136289764470412610240747845568883044722743754885209010564904645154988791601553545694226369105452999292887319015487568572488352722647236472225347834740408373517104952979255164462444302007198744811591899224693684714474518932364398394434230806174757894452919168673522491397564357004388455041558320366633375485969118864520378856481514824528437985212714853361465146764365036336258163664431057604215459264637784966494257555917753940971449327784365157240048711200122190181656987377538806263685779061910056819292045114573051140774157047058942304689516571662387994703886521002866422573703421365615478585216205615998384517031001893566543110461537210570070903759548659118203728188014019633915045761950024803720444286128691388115147721092157984744890052631778290401997136257776521635594839781747556946445612874538756937870815614032612723441030964028706509501084273707572228009940557465863029246534096061246418404756462588490050331724148485357355692286356830881840585514927880132826607176897687029062480920808697661787285165431882420446543497215385178712242016226365096352714674762292607736487625490130676874667668202581872610286649198106062549230202028963198586556278966394779515416612036568831482710528164379335540375062340565161220356670871220862852040394495346411414263493113378571457069449339520724667511998529479562009397978725139375236784864749557975066417949246011307473152368226235258886985310822706036310658107531707638180851373320923442099639030025660759172564061045427130154300453610702039420444900548967705367215298607233801617232258300924236317916763492713892243433349566840199092558916566708641453082009022717685414950872507240021397771343312266431570518960764489885425970955757899458982891982105165857634617953714280611244251622017128898248322034112616552088779846608836132763723304255044869793141125527976592614471200944049452691781390522345007011553760659570051040968868875565717623529370823999632268890873370703789570865658695775807890906109374833230121642899147059824158459155170038795348917350793430585822429916979528812043874438648454803646364210148073173602684076644517482423971610410844339862195281979392384199250714914069336456788217708573661645782807061186982240767498178067258408582720484209291565923535268060890113086983131652399334602457637556441588003380161152458650301297904554483945102779290652075330210720405696015884489700924895029679597560659214391408360355911228175806958403104938676867203946321547029384820411861187919206253176400506162228952293073102399787487139623753165646774695711744152256103287588621517574529361952393877893562799575569197657331701675459750401280620015681492672746100600973434013459733015942848182400299719738877224154840444650083454148622412871604021828353751574848093153636383463214681412128837638352206658506644924645653784713304557812072132839076773413735897905526263069693250285534955928221690279144557203255718004355848176974715635057992709052223987128589449186487536368046395161670887010919196041182696948847338090145052008573474224796827407112426974677078849603243597196179122299119102526551400666990628170896454259418874823123428314875684666670130597751748640174537925395398707328397299723276084630736857231692014014189926361842039954326030279969585981191349511314558313221289448568515424844975238862366506604323569026500378414652702639651642848357090396632567642699435064709788838638949834901043011684089013288794035390974344917352546344307494197065511943649539467518818169648598733968223761841634828518912531950354725967475545974150587970612710713143357590183457185703216052236537646121527402681299602082571278098515771488406806474842391361116241626044160986968078315274142397332043898848781865058180678735404578895717671091683318694864654339300926207722982946307300050473763127647419579422943844468768626466283072426076952463534531274480836453223632260066168526853247572949309452200671145118518605163979886473488595362809316827258927637110585302380258962674472845163609405669808750989948267033533664225667466251127864920050119833006856523466565258895534442160870676716211904659166896790080554292307518201388996769097694864173360243198552452193763350168157255777881868469723669974698622266370101808054623629968338133748073539128529440819592622683378221621337744798740399073395737984179002620790236007390048080531753046306437787370838243724675271173068978169632677843402369012744830203866909268949175853147913060036482282558784505827394124707847979255413241667230179861069208208766666228592505197775973279520402618005332876273471325495953931271918874655432533562527921517304120920479614593271492004378868855373415456124939337201809096432185408471029800011183472526813976689082540007096632997994312282738556695596351741965038505964773397588867546207433047442238920397266389044288301598451487644089789855313184601305016663051324209625638253155809872495045316228230136738237514579798617822788818684897565530500179011222780410496953265436192049768632323278850533812213822581882786272729786919923497942788402658048785961970166324534850529684460810549292175614924683476314681155704003533357022868520136690403043395534334135369773095329986999793191772644990915094400021616036039074585611201304749737240508444648931168247812159746824467594110889648229628681631942138102536100227755070826464790951207313078974460609537710576247015291341823019536999034007910880536823393732572941193090301924643488218539473992955606684622857652760289521262575732841424601235971628996449476547234108709655844406873415563137008025072221299032283770641872988202745739255118437429082680225938221266267601850806423815323099242612505263222011571959770013761388461720107750411963198324106443621811853512307971626852246425494579585126772407069273001909230383256691273796214273340452147762989923013507735630524239386685634624257470515752058711028031614692381860981497026239468459040341707403000802095199949467731538749032486294491637259419882111405943964266193711359458885110765688242900163629922984088012152260662947447829456747050477874402527507527717992126166060458680539500626007888484400326738750367684390630357281453663624617809592144791974420901691789494197428108703555020977221810622324214115901591042803002357550105535815328744498218148319109067859523909544003897498783638242424898529228479977647744319551162605343648826147936727559551019873752509542768682217418328637536203894633407678962616579445542500882183794791410440894180941385115400247330574485982551189775891936422695545649112698192323155167024059680582474677141408444452353714972301884349501899959352925117959516221292332908166983278202521575420150277623040750334901432684217230245829823998793314672383487437610271828173366506781232692748905622527224688127336159325993988231327682478712355333664100839467131708156974260840994813822433689470111806719014363669103524525467683067636644292059845767237918653990371466615528189907491975422188964927066321694723885517460582939781367034435448986996848472958609367078786677235255223120247281289348727596881267368976211064013509705146853715819552930294219022043381208613144093417395842657768907352996542600324597209330812829308114711040009813671339479885672525036812383658346389833021684908091312074848570436927283711293003912393247392837138240052559988064757479844803463274002106733804091834171609892458209564811013675649626965455978980305305404361564590273185106209168897191703450302504675764896699411595855579802172304974721126523976448460049840142545194306099656860986545660319078352000255498655096271696820325776638861134421921378334702235577430685234571252586152156067118682274970835716627633116542307408226761571104658100869987221086363777519346551763790120048202448184855106597832133533053061461787313653819302865837068631380056241967174883803398574736136898624328319920884192105992229340210572425483348946683850996168621941346192144209151409418265848196633136561102741158355796937659927167275138237401150325736188483293988044392122346499621230451651734855219585699601848921604622444048946317505048989201403854750860621038735479326030390363093774475603705938864511590325933079909992622139236777983026120316191237209497658551681661948320207153189354478181572978343943097312330158519688740561967450451867746711823402235631825922811110592465689746559276185428352604217913597775454416251830311388087217492868540854493502728248243417939657351329194774671550994806714391426434117316709584254770139333457036913973968619003659767451784997359372616481623840525609603249241729238071230104584855063747111053016948386628837637440786893533505170402285988167676713830482500027996191973031248447609104214042912410508335469696327399349217268825953252040817901648713038303431216797988378615912327948979579474021429116751599022267268293615609177509321470115892077941217478580480393827071714340068408644446789952168421027107641704569402759352033341408649586172508903209030249108943726470625107122435544982674135727441963932056850419657368439245731408602178234228738207554987743215904143797169279687257014089105677610567692115078187552929079025624975029494948871198670546790982887838111013151166150215479157804206648048152924830890117034715975894641937769372597823549421373847050718894046665859709981905166003144805471007260469411515083935223677501527119915889032624630151870402480960779138397405761825385693019457483848069790508425615442956652744738129613536125232111367907391008781820724364105326977097859879212387379854820251118736195494746846535682875299438026464258370048377964274605545619292536926624615164062551151209308778035688021242870308976172022380939392137807653273139415340901359284164818100520021415608396065369171364312905140515920405304475136624447161651068166030919916523448989506078036948178609063310962916794146293370926314827060197725004179117242520507119371413375450657471876576373289380440733458934110957004623652903519785851650946786961599726546314906502120851731530872329525401371790487199866937722596989195652601874538778211756389186223270128513039743175381881468299764639380804002886291705364758878288973064201844758795396504056940113081550801330227089161727123940136618357466230178749757777407683300891028368366238753022451641019575107349947981161612556293034785522873488085989484932088565179489096904354317964342802833208411882576451568458060040548360372566381466496374384788391761240840353944906078043790441701572791305851122085436269563296021828694784028462752348025883720190827892142041008091437061616200494931966167016605955914032115927221326626830877623537969387283427610640734927645297208691780811702079040823456858006737055392944839759638533881981272345753554457876681400163838289999319016398284329324834603123487323611804443176505854205444367117934181580186169565490788633446836723569198765595288959750762441123964874381683569248551112069396513591980487157354119540749018086871247679683350879231573905060840936886311254513700115840327213832163021986820840326473957265133167835491137601545528772328606297747206061246580303306957810667215903487958345594828822261373838030067656437897607197414465385425408308601196612396976603386200098345986656002250519249613002844046613193075985264283529252920531707066253651533772906640070686737090062097451553609010727064294370567095818781788485619791386733852909080158149973362992933238905354316545948765972524599467598743492046367317995565021853236359895403128496910925275542597160042356928283215039156061664295889744199264435966216507066851720966774097293440207626540961788173157392839857872575322320883520467495944515046500581525008688361732333675371626005292353811185023650286007260119020814148046724822069872218561738394857936907676660808858598999215101352698809689164470149766431216016067544976045110031761182473017528607632238624342810191408592013993454390221536981317874366991315972960368151594804858366237353813662587782610569866048116330139401256296394359044912402614265131461180693097895069052968936846191327190121668093565230629834339795935695707014689959700023144193038749650739527161295368441294410597700897766999560438351177076578451822939602231461205531585029381936440922340438287343080219368165896365008766085463683037811460624466742129402428734144580372737732661804250881969454562691462103303915016740156808061000555812363637795111580410229005658079796908896575230634697415312763417102375912010001165279903618229384139029639036416626181382364398986278706775593394663999897830521696456172127680664095044987715971886895264773910216915332724754649137788032393260537342545489932931773403166905334568131654074990045586960971164160943477386580215771486515747194031829718170766835892868167675184327813031184531924031089496493441940507513901061279292984690371149286904869827646405645370001960551770153585663813203384760234503791875301653283959356870172989002053804191360315682960850413073666573192021285086585946582798362964475294069240332688141320251190668174596570711062823552225958876338823633917464420936705304872060588656986589609510586198519096439747197787364231237974758028068914199817188406440146111029588482377725789165045478808733194811553868291165735811797807792242402981227395776002010473004830400900041030759320439919044135840211027151319795263316479181132622461241225178262028410493066062243407662601454234750135013377082252392733328513297629238628671108725450990576943847870038175518796533806041198488141744894388663572225491478410742833793920033526135205788546601807041232462647871411581556323093773360044122655956470113602365196095868756663020134861143096204029670905367786854712118414103056685488904872184586961991473552666037497122236679699698801519617626552632998894461875861462186781149967269009021690872790514178668362585229607351461217674418021248446551845014302308755488283527480487358932408129431195384166580477062720768113866750808089769466464721406443641908662735859085046189961834956929306462225086221699046318889351549461749234495212714586669737162528454892350534365937614148350840558792857329200422135193181943312518030444717983703058384535309324033918284163915644430364097926533083076986409387321905622408442541866028093903229461344782654372626928808188711575360638227130030963262993139384195768491829138759404415026742349049254561770069223730737656830174643995798289319372892382030510795652812450107442083777535565407699407654984067309425787334809010266642574445989483493931772356146824878567923522779494069436745932020683241725015805122429464157173022830319355743662137512333646222603689461509247506362661546033805133286858710386706787800721889595106090113463731774891637630372114189927000587049549392319532916405047015015618484595971406682803842748364968596361933566998240962149222306562422056494822209948471844705721075127017952817975407678309112908565434011659399237198877237632354248561490993872713946326455464123594326695534181027539870917189072576668428626010511707812005297368624149821876144415966621966271964172555113786664059907541502670713948272151283261368431674116763420628988588885041238955569685217063733363567652329661324155409262819770131947478094967014488382385073069129065194436270134365801183624378528987849028445779289038932506448879909317029411881151553446528118541344601275933891379720267385523273466734305611703173603860180056725430756035624002113356920308939786605543491722952567379278719895683625699469033373161333537597272080227846328480740072592017171519138879768693811671008876033866554395954161126059835557163028504983019218907152924932289279567012498658962473419560500373323660835736284370286771717705863550756067407579137129824851181003654096188357197414912934018656825723365856330644891495448402243463129933040904394636787070102167415934399124318433453749149601468961663440032161986213297262117554726134770999480516244431972566345231860669024678114820472245775491432363724773676794459312604624579729789265227241513844369060805774888832843093660372586782529110433310923056624478462069905997083210214392999795383588476879416606163697057256072316701259298004862728971646790707783252755851647025642816973941120365196354394484981681851954900928373507529956078543819992986745842896441260634363875701085186832170150805752566535237303897828065663849348417044867180168699232097274561250547696181972876346195772089968340077732002370613038196667729136287705474653536170508067882691604071542538136168283373422480509285924638011574713485819839048886570142919698420963515047474587167479877114613898654784463097456838965429639599930942226779469411677830549873066895527523054403923704239479357260894171472590353248356451100021682381665053322627144349631574181760378458547648302696611262063628702090535229901443604035083117730511779180398367886585398149518813942948784917592512338232976518390233879104386975602873367656498595488656220238188034154772005004206834155386556311707872292690106346974415899334713129706369819981018520578318708559834263442006156759217608538084243713478304408975720789449663963532598057061599122764486555813453818901561095648802696572685214431312870407638817549967647717637939708185128426596784462688250061817602926715608581334514030640156759777711177940208275848316582061600390789006792412551465235793286093310642494113752513786728191498986560383027486410175485387766737084425576733187244450901157430383636281126120788162305049189907775561568320591661531117713020146864015118761734170833098251756352432292752084416023372001852630568065563590780065076252202150574584601428257428708527373437499786928359675092985817529231778867674190608553392169434811773613961687589064589044410278986289820817203819387780837283627033037883346337457098843655420078359640874811428278841534820849042006301844681618039249341472842764701591089872708850836469607565404747374434223052146833719494214425109242431550002138389723143430441086193669330434979697561574474922501671087032436016480881673055868868595456350635372722437832784449615573919617765760332219663637388217102461564436507927471749923803122459248835146141151972727836887288375313217025487179516113242640053361421879663381143161164128082204780798492633737106229055494372483328583973683785348981907195867069905513341603161843177127090726383745639149910691733945735340205856644533125229432793153264806756378073680981494709809446922169688176201044551395415255592556440280314854989302492514754457395052178634692250895705504610176369737673743803401284086921197727301724774114829431413904454207058805683007863985715863004995196410834889940565441669031674797018258512712593267721325312315600407889346007878005172530760198382707539314125545646539908427893295369270361901181843799517356936062679110185355175292637609042670783598820051857401396257013628995406996030767879340691401672653185229542923677492198530846566799385591120147794896725468843097345187680233497879387054151863584519068969759544340271925633219133598422416570702374028597438012223630673686805089249202793843213540167121359253514005528561032158293808522431140835105985115609188122051094186249620521809125680583727384089031644972583198824867712478768829825104879296520475592722702561660803800023430145938423381540081416926177062524770204598146658674085622115907050645559181933742390445004413332027515522786745357380760400862064082393760371536296741928959730914374530633965066264108538451252880007701335024950997484323831948318750587738721647697571904222158714131219469048728101356964959472549528097432301886178836035598633098125577848352460748642810287315802297566505863125362027021811657694539644805315531472565662335126644183450702276304890894005991891855677783768751124681339721727408930128707159696553823103204156668125440812283363249984650518339561329407473879878037181692580023000415832881522679809147197116189406461121639591664004762716193035169359979333642829594566739696590358329317228662462624075342891822241990742396952745583615503115152687712882900115513317616029552570951414415499904579271008454660878872990273174351195603106277970141948408132978149220034434623555332507368985287280643575521823576847976241655988995307459274241165528249793607325362636588160005998471703924482513023705486049223455234077744465819805848581705784385194209010862579417646960331232911637252349764827318155351764138348209018370210334679192877472003012596601564192484033459675245794797436067886637835707393997764186438505853120048523245472652374594025620943988582156463815852820775592578287541050325544216387220148208358330102551959398696032158410481043707852755879293288818319536098208621160950155955830565088984636843149755497973958260458921384209443519506819785217828612947515886360753840626922709489384136288360206786456256785755855367982483751529426659995432130313650736089821994285741990024720023271333767229461043629873841184563374183358351445988132733464262392814088646722968168393549653765557441845719953401583587369253272202274917580249538991347852527526145216763786754048731108192125326040700663112048303812704630815016197778258114422204305753037513796311556577535058495532780744485649589258615971124990543275415741007067161425831398504556386896487419713091983232253531258148951835521520107825406933915006013498389348093119222735774025379979864809968756854217931022078416407934554882376484101859086117167738297778548972599439384064749588801339590174849311137357755082014082583636353540802780947531636002337900688582502596203571261447675305206284659099555749865418450562674063240556067591870067745589168899757250682359765232604058198417810845958625348474611176675972000308689644311557450467501385953067444472714514715378074905174807115721895991636596929565182302446123741256109885593745818902061394565196348111878394751265471388225403948309693815618143859938654354338187255564334002626262277829150607234410891769200295589264787015126938509260585939688798497037160811188432219498516352120151801455878559368616800942886786198554149639771126717212591585970955222759970071802912313978794334609133116172097734674467434331561087204564961351661998039071166481738839452461985426539252294524381007561881912952833680365804037380627141105592682625455370320357457532325887506044632947276338098380732316673383807668648743844506776501422987771644666246339920474536181969055992789225214327037491005255452844386344184465064103691636780107686137958659034065880358313959759670887529905192043325995459062898005216571103289340220569892792011629228133123554086529793029007033892993523307256316618687484152254351131213168339695356292024511425889692776448068477881833182975890056422193971558158331127333611906160962794429305323390422102413636136962846600452778874938845841741909810798527167131851232008612978781860256837315724228793337498424679346946308530406233172667878607806702260238570794706624912523885328743019510113659573279534236973030460394108996892887995741287703099970324341627278933530296454049190419079474858896377008607998458447699583753927842159995144653016968918351831500059487840227628872394317584133271549764627336318364772816117964544943110175472770226426774636197313991041088250231297198428146540677340267671964142538694529921546955516531017196876393240732018088592383336250279166921684101934438816594608301256866782660104678970209157241821892809875872747409893558712957146523978611738124056921213491002696992776543377023113296803095314052946077863327111158174622638894360649121682561525680910885330467713616142313429133909621839208109116396095350201713657146595281192738952589966952231123918409163970014025040404751235379969407899792138761422721159106500110019751431537082699739498237649270584866010603759221176226070613815632311274922365225371553919832230462297388630437975058533496838091355142309903003452817212583616169329944218814298897506313162181828953454001788381894166068451157708059853560038445539027940158118627549051702126678609789078681467281616003390460474838639467957020581775155735692936576835548885037489788292048320646547363980044594386916168343127422079941053864473782495727509753984753559968379992457148745586917557579381757046717995990444315583105421536715956633600747925580039918671945553142055949935031718072952461582235870919799864721838212922172368434655989371624396835715165696629518623401878008140604747744787739483309333139704321346739170970372334513808616135837583234544033491347437284555167706580025862622355538051445805122154901923139263007952946340382554523257139039613957962775757603591831128656483857913661459819853036122557982682248452097798911890307825081382160226271234980799466087325713935869002053058316752809035464181231777297448728926840907945188286307290467362547931308786774099445146450295276805897192275688542827617875572732335925853062545596086886943068476712706955305040889349965600089920851113989517364272412499135052075841372097058142552905404855267537632112247495492110281483403561321012132023075665274812095848433169271820094173903639388189690966366396517052101986945015955277674902250881625099526777764928560812054706381779029147887435171390347632113215016231864590799404760407375174417687638707947330544976573835773162490056949176462082995395379241231878989603122043513959575956918160677385325065934236742740899325617430296109949929100877354919216535804561162863522450721372624609508158784212339886873069576219065328530055818719834534947042922188313563566035164709797981436421122853852187292904358442418791392316161886779004566741822782078553495000600346610124796950247904247741312187300908997024497494298372354683643768397283179912842448234007495629101266522102154736709292255149593671482340671713532078210892750062226126890361894462568872019517723458056114969909174879958217962553356498610250562457180961468686801028524832359752966505049781880339291370369470250276119925882126648826523441977450505188632539638311809163200035649316325232027175575472896960590651292691491952770536965555406346845199194935848178965893918064623908744432698154512693386248672472352024267361036570879875700153236503602161925177214484779289937133553359979267782780207794923451348687164502436366320588288178157993403424656448079459406119222172048467132056224010834404420893141676159062665119683401197998433258284113017687432034200124714080675642847089570018128391619365873850661044831106625222436823589958746790659328342271188019049763813410698914383674098025499425693211699536490652119551347770865048960006192567406128318299138941059165166983424694664965981676960825450041042011074356457377880104400639582688795496436018243781791358659014186292797439048878242695893142500196497597595733104002441530893505223681375425550041370101403865024294029227200869140772012547147269168545219778005543644204511700844541791341661027474087727996093097969133049508207114072215829674650494077536908838279178759127060072807660351229804915177877315820380168646338635600254787703594110204738524473749604118441861921032273328379803115917612428669655458999712198057236884865810859974718179729162388875782793104374403474587033846775558306306706108277756303702299970179561717609662790800538085147489811847456546790053030320441691734401538851013392742359735257536802441405087322285874174662991701980028501612997680259621895390892854772230006386933428390849822815021148815919617977615891270331964451114138692365265993140904356555287411855756540593363146024371836044230740357457673710305565215161976537235910109885007787761276731553766513251231024804570017372898163209124982243063174557752949242853113637447371547097398610043123938157685955158970968763382426441444100824808926854671590272066960985910416452056751426981939869918429973961138970098618450981993468824954943571071843628050436954913235299326719298215425942414650707435740890914731368712209827589484679438197475776808068651859145164099084872298289167169665761437718943551640391795846864926102444415574847975536297245868894730796020661723767401167994692363201625499138121655611717497718702034426351736910312425656352568108549607514646899696954138146050353005618844159257328852178898349224642400848229600690125028044478342537142749796596843234002782594007809325677758012640075067349638666052834583746753379682476793141288994700392784255702092632778268830929916774391095369878811480110654928032032075637750177433764506769619559400401323120138220709240934014482962427058123067161468562816510838085828592114988757288485568018729713249681445132070300962134437350157044412964410206776553539208216226205877113230136121920193230887773197459953366847984321654217135759002205096798744655201461446320530690460971551535807803247671969863643888671083717321207907488572333767374639172712275975627105236901844749510180699453105837524344126027791284081497424825235897424504775275409662844318641817859748674071077970140087318549251774147015180457769092079109605343299031769479417216912886876513995257148883373888526172198656101151462461211382924677488807275624335450732961553221178962489061137513227230956058551501281954611745510635805335737050595672825165594765334068291281502881347394009518883670366637541906587849923280982418744634586067333570878214014945330440265130830595841792532291329211567151354250847031125454643895619428246074342294391033015312993615691492097964023370070394236255399911132331862584203340314998308206798912460435489045490477731068383887287436852089093237355540746784402953059487636436941763675280066485929248776664946703215534236525499695966542680517831722981183340732923690239706624674567791218253679554903786667962601365606434208578189047467094266440045942504455930453372736185855075948084960682677961222425459878713482963978647329204357160014247483270051100197739027277772830422093612769779152494049404254845254377721449357812083810804548982366309355910362464457041899493914233397006743902868834599245576615992847552680158749218406688287912483274070270272981161023584981853756351742847167687539675141554776900208602781683594591337042785005050031825425128486213870446499515349468345640857294842020826994842105757628875920232009721700927071994531740215174221462736518284837728167815290565054644140707082399535191696489543036208715663326137698170834230151694781788767114504422042796796168234293404275249830275204184471417381376733475067933989265151117355314534459325075817577536038732811428602363303399235353834627524646805232441433099656261719151466232948786934828701070231432469531263821359811995197826990677776314996206341791984235277433788207295797637654293677411377155652471784984180204083083177380633376499600860758578708862374156621689365573556235309407419863291604592233274954807191114271264328229347685265451200248128839180515665713401126945050373407520475411084119794653545162080438616006748405036537304248168752233368733835519633937169146206342328604384305185599315742874634841234875560527898830958444727426060293270403475047718004152202367429412545043501774948660163676648875092195971676746319727348962469079406649455606482546348757694087558792010352948607389999191751933499980776154218755086267230847600400385031717419184822015055090362092812219828678824600001163880719842332515511393235917064927627652883523321752554686033839835070375197387374089144194134679245323036102671073721662629559036498880894346572351564075625821422455355954339295800586772376330382239113133299194264250973329500448228072928884566675564906609522162246379228764794654356732578124800030074636669520419134402751199110606358635918382129748467679532493283883169590773864350119718623033033099740417738554723185282458690862015103144894189460276113414598620740307196126685047750261668659458753034552237919609383139397262001756052566513310691058892523439142885257109408850215037443986740620514125927789946134218692935433144600577724071916628205689437440648146256696878866123989940688408746001415089845209437752445055298294192428510651428647020514371450057318216183404473804222745798198975043516915257525330063147299878735931251569836167118937136036186510994542629672643411887265405162020725147308803769590594685231778840631097079507687323529437478060057277845684497559987265599422222678319006528199270259321158062611797310790158928069330374786090595611829391812817199628123144112212891186864982079543806413154599442033475729767525155165419146728783064194356837465312112787852298601858508688336393088067801586114490248300420184584245540806322530060560336738748463134639030169641391984287893220262056724796718384911608663225056511582966308145270274492247698017648151346925696093193571467778488828044736045461074349952294730849140584119320417928754439165605584952881783759144863993213294629323058315644481868295725062886368290490715546299211345946518505306009867823966096063912024813103821285959504595448990662709981834835492182418528791955804100163625914014268770080127844748746448272755206880426689558242960731548150643846396340539210788218920731099114599543523095150227773037390829706320828303761398757642411483396063770533659226565797540152294090013384210386968184209412020293152167327350452170062473430780369986628430643482887209510952541184505907740508960580910417758039578463581318672294594041904384390952406660840583883117313469982029139819692051921646557604171104479298809631829476754851789573296792456833445196319623775822141449828995595360256195119762282460195959679924343029585624190505068645450183872175684329933905356886048052278858154209249871697779009618139580452160611385676850815023179946253386256561931322544703058279395418176993432670681154724236133967798013448408018155551971210223064306358294493192338090111670613856067046541673836815556001433665193760716812219439113234190674497390440656502617354037105241823981849877696490648165146371319766754656699519858849779823999181149590237020175264006161684943083648219798877035540189185340080027806665079421056298705316410337427545751385886421323819357832989248282546168252024578609177443125101601029056080911761883458073377217566862095187180071844599396495991971181873796574900349910214156409639852897074098640876703918419416500306815419945504471553701230717013877068447064181083495419414750268100287226228109045845674379719200677552760165085476318961786216694363063112976248395084271749865570759476325301577098155517001722443959601559453030708629288400766987813331430689500636811132692261167716586084602163960724872874016865335884343851034539387015714332447461644548667680408549965651220544582323238822940834090094519457543410870768636866172104078430001428143782814902034237260068693177009751583693544333388979884619168660170999072376745891641838209556092079753158300619845565803291962644855360450493984084785727523972314829387958747143963550257003659207949090812806978468558707772798486918273678101422159012738765543778774410846198535404270551066582508391821977660724916071640759433554788352521532441470481294116318961738552379865646008519241173974012648903260808342848210454308121682240881643206195608088887980791489837295730842442811843552516045094686673307535819622561255029888432028960417415654532961682800859739192899272486057907728259335637054037810566002813776859906531924835353138311373974952027455122915207092321038050327810493738134139567328689027639510351130711252064847205272608490602089518712043438799029305170029096706920544435820660478482618670014140497436177694782767836118904207641087882117786391187418937830452820521357782285685516791518069694087109450167732787735760065473265233436308538001446426243640830298566910033016927127436396637174613945365141564226880725395865053964930922508889783545391128126136977818163265092876023636145761038809033648731090601200966975910158067232971570642404861708677204345171973577934835563734938884129492845596698375406155456265355136552589851720321955618986506495902802691457106966270961913200074346507364969027107802457182071122516884036869854448553038323467938984372410990312903322664633452252996919545348715889441442509726224298317615313525477458981168595546487796240647678439663379894018488782022759038489566242616565715981832501913316069351630058237507080928997511955460287150701798758668712428101610311210326302087027025214452756116888502013746466725169730838521792674680418005885368467358353479724490513813999906883157283931376693633745360882969371459996173634114648804240292339018116091202703879716308363169016211673546398281310107852488902891410653871362295482226315479552059346527937319666721080695827346380128660497286377050102953578562549322057096403404661858248801494267406132834134487631716730248801441927827571212833406216717760914971067736457878015331990900477193118250908073939114467003589742164323907111652482574608422554699195748079850296479025324474812135323139809187292039398013501474159911255044284111862742844612815605708310775959844874142260062613035143628215485136256365162169775604710601962356446047141227712209783538872176655659144737260851416720188296992067460406392176384565475886983709924309122001909160494279164682516509051519574561840621982700463006609477342435402376461954996425547152321643898296519513404352670147115259638540694236490842208192808005278965918260835949573606857545960306033150754564762412164518134051024937651593810233215940897648159322918266514798490213215114734319246763436229774180856538960080155508371828156710835108604780665144944921935796971409310093076901631698661703103888479159591661466584297031014144866569335548907124881918988214330023346665155490512527301342513640992375535550896682846925845633225199484329164165477937138453907718838364759058478102983736652252501671386741080574395320773217078621517101756555779115031111662191204494286377674146984037241816494600953049128939748688629261357306206549443143003142207212509216023884094211486500177699896588483213891959932461619290971845898521851582442030160096731142465282595904401770799232870020808683880376783948321260799457007879012552358866743727156869635345243688264548323920449221714698429917655508212656082809090340338474403750452711095401070590732715884497266737358991004637948604324950160219721112335629727766981321500124207748044373477647939169991337782191377696122779367107827983254534829124069153593190399039856233019759641602930568946652764759265817039710647259706527315129503006293381686623984873952648208383899550586691530548576678840108029912937671576074982613600169327291675229992776310794233144533757209942829920604661824413248688263932060177850974714652529761718192622174139547363951507508760571595331622322029676128785787571199678029822654149079241001107480560148471762456073245241867636872299508648446906886845712584181491039746791878763395519264933618692149734999031563052915046223834799380457675236067740106850472743086552662223355817399997319741827119986197971555377498318933049329240046572980392105601289690806785961009350152946616338283000758348699466530788324483664157221907907548390704688528236953918233173529815807233160113480024866544456663282748957940770377767518734759771037836801964297837793639577706457767222308611461387889684656983110388528112866935962144355396367425995104878790566271101079314531408437833081121069205730780785348434356626463356292462140869035976149060356112293543647086044495792748912561649255566011751720337652503471497980581809411848966911925306034364720679736681044866370138173213336811427859320262723008376798830653127661327119410616817812788107996163655510046769091037281909055653343655567756001431111487347877468209655545289617393577583745533038440847035620103731843401949238693359957849887376952270149846945136729307806825701433532153405487133704672062036535319109117864162407992914499848335049856787484977774455042386023545212373687352324750954815916610424197527046739606884107154146082150208513588486545604055063303379750590960345978476181135261403468992126935965641401289254015565720539055192978935300123859882844329963323600089392140459908748463064414027596771426201422571635319557006352193048302129235603515106896517513300672649427043813277793353836133867173122079977401108109164368734779474997102148033562209495982887429210474859729404217716382087883397812538155465067730611764471599470390343323536837090042051123501351802844370311686412152218416281729090018526771058446121670347291592266549044899082327963948169221369666573248707601328564089151094663488489756094015791417855176038949005394848418649450417753024134857676647188608313314496527215530205543377523808890098628262495640390352414671110798896683883960479320305063400360800772760580114998207717915294150010633440672233478781972124962104092062505591606564879533960051273187426547701209214690532087466321621006846041945354597891872555925934999524577635887350979837053611462663294612757710597781393701827454755766183685211119681537241386278511888903236390312109302428448369772741994323897140009485212972883569477133578121642263046986502791800369450397045026121211465877127604192278817178447617692460949670779025483879101954966595704266258819867801026616783809135049679752979334562257472526335877170999489923021525977777879430285798647009983032586057723927031103972473893709223329463715806991267504247809061634147316114786670870495760123042315654416816121708233724702600934411861154733440139633214300179358374250328721659434235101296815370384695860967384280910268205788010068910879609180982971765584266604381966967773098333990001266680333792781567916280600035067323908374909359426691756863326595419618772389294460766178903538994763130026586434234298068388260669600062044541266321710776469547049497052666495990066346807286365505825118530279482060435800025737753147756612852779957899921772111144541570534777218651371300037156196330396521838275860023595571158046426800046413824486089032208079472495483751226185443997829759647250058836811281909453465748844231657458346031978334259978613892950362309996405381051704226786947289526022539002371493019390700201170553399781496470282044433713137796148447074070429291434086346733269003671512328954195437504541154049726324278895283074311899248951655178366278899978199044439231222711798460819412485208193480866339020790325495684992559915778903773304264431973665998552315283923358171807371448780099113892716597785490162966005189444910519437875300432874921303671832728454175654849432371763394957847075065175046792338565920783605700074324498914316804993479141369058599388047459993651371404369443897706755101463338998731291531557843541242127691795315746434157467134544142352875394759911977841121786047223535697164496552500677915978784413896252836433611630484007019854665769304233294741231116578105804678983123060704674128576258660522063514324336312302199571096757595596704530511832506428391091708971096956755527351597883409400803018680526306649198115137858571112335698773130304118255529020967107545629219100239781386558951757337066034428676291939202334286923884662665469463204157907850324951254677619890349892338441907492149998619273330215934119700733305766255748234785974537165710653517882931937613888298487391261104909649382671539349414495542213753394858579282918713846392722871573536322126566511831127064830994367076622577483901899102275152984332717587453161240719606525245601763244066427971525922363748326933105179146637521315912668687783395603040646481783275746020854690452627559460811331057589803084139866089586266582981602602299328271996671285411791072242689827528676664830459628790914400891296824931248554248313284523772940342802079103412974034319611463697927355978782541740558150625783525839893338828154817673878246356119980733825273731504812887177726563508066160584084484366966720122014057133035352272553384680353307966688039741222706931242012736289730223431981594661139128208820629147399708730659202267086976185819153202532890365778734913660130054016519705881531158254567488779457332164938759462349512089753135095737219562353400452117772040107987229026137603542968655380720139126988685663720195328254910747761516670414941557303432998572593678276564536178106934401765614244356220611445740352656313972820649371502559269144480697697548299869107304854632576756911861011493142499219281345713893507579208291830379859316421950334647232578774026224253945833889609953317940786085458551532472167306230480619549322106744042042120690567679014579972579708174120412518032731769875319695186080195878478313060327453531827045069123413372409242322016769720073850526429227392851480028585788243951310145026711185405262716318411372367357804901978071263177710212148700966410458945857814023177674124176731397864823443392291254299696716266937676300009966257257668342558991792342884151061036518873008102293651813909438129852839932485499663398834018932916939406865663651389094936368102599232042280912483539186653095947512535370053417044220124328806295093246541418501086340415031712743447018912548569138198525460493347162147655892176887222504474826582686395138801751345623827529132679287902967539903902121896598982132111511633500884291204250690840414128250433885745535212679199490579301607301300570071572609659060296175879157708432869772922718589187699295304948990862308211717404306290367879299042100178615490915489345662522091929798294362746725534409246477885105187701389396701164210405528464411620136666001044949751285340052639467286886947903329166197043159735146792751493147719894798412524896047224723586262884740314727855339140744628841572063713202481271987403972249353994272181346653745117659612352091630709262473628037917032836329944643085516558701863325348177597532540197785866033818336630686911646426404437586254428460309713185627674522421437376196733194254696345695361990532856310138011970273807627939261801203004877537791100951805569052947635702874071021462462603662468897485796914820975190849780488915602362406508740199366890707027545269675426691854467511778257568695605073382865445596286333720206079215365224093084109727471576886581098494481407546568067038188648852419280095080544924141876481104235466626945621481128278343968859161246086854650633779735254846109081919558738943786501845364533687745590946047301310504505558252273071858712137765866403737081151216748284638661562363916678058049521164527964422500327261518875412811921590601492612759700339989460463073553505727901528239588902151978863147899435876741355079882249031499664564025590727300690993758273491747810073677950427589580893115461118914299985447179207726765709675435343474540446428382799143264307856933484350496025811118151110655272262496225276597019494785042411565889054086373571086452062581722488824772032495871904258085051958017227050635269711269895906257342496242193380240563065863953980073985506018527831872850123944437230887479714186342106358302555499410821789766903576545418325384829116230239200662216275416972762093802580451435973730405583849918977224997040096290617320001129332027311055478832703981013163838967971502253005152957604750640298788477075590910975161874464555477474468000139315130096329398401514570532862681376517011963617441642630453014343601612098095265415701351628461515447806959300093901092295212406921918698285360792534013299883944196231132405661562757852762779938930491646553486687511701951996872535228017695842804007344328266593134949004420025170503127397491945057182462244835721668921571590573930404077285003028739549626167131438649435979585384351524020421374367181247166941220610263174254020891468696018209835190512700449261242316734404739182469909714809351136496745465681545171065210969925891188454699855305479146877037696324986470663399231134343374005697553724237057811408277998893711194200636426127181564773129837393635818423988031043303976054923983619210757351042677670291275466343416095927952612822118031330103372387712433814175891603939497088644102632226700973269233549816715834306178316979112432118165874151568788798956370536788614580565257076131803316008102247749128743568895885699711962572112039893490282215699347299355664014012342363639569893599271423836696120575305825124340230119336540365237233037467217153422762232125584963723689777363969353982313134504859347483615411681680278455608708892115310377519218149298306566730853499165491862248855059965960452436704060059573959336325467844384660761588282313812451925686064697551166395227041863329868083596675591752989470089541218375048640052816948979311056605675943082552362662948017530340697840969019339275009880698690846622278950934049617962216246445510605932694064197451662031751702845750539470774105674531442603389824801808327571517663376780471146959638422065614781166141909050367263950588027366364246141983789745801933281169418346367917299546921171676221491564360353395685940243978235531481535372180868406503992219513736264792306291514911801794123207228045997947901136792532797816843953818150551805438151532826161019716570846502590621270091504712134027526240756780570457326253355882502965997484529765336324492219880776220558355669976996302786347759505129548444091630137518021260529859989222061708214752803477347272266511217656585112066521250517910369559306296936656084406145319213523228934836773460265465842485882786160757966937909464975465500941314343845490692008605156260964878303640763596137553837968718608854271433596542816713273987417070212690500734250529432271986156709721791431695172698648811735573877814961533054352391510077537697192895251031750406596114193798665192598301938140627618244320494969922616095273804420718156899611985370310601496284986257227060978677440586116197646619248218575739552755374487904547406935697801439465663911185396922962954245704709640841268728622685297176428752182228881698036172221557591154584335556755753919137813195963563506091652902192063305664344500431860042335808993579270919232450520448747529621821651413388786077231019141269074420286675297579258134092859648544670003598163077635933251182689835445307801035525488408313173511133708152233335092097480259887856910165471484991586998186160503949827252998310106190286301310304821406879019827338040015857890965200578578499280893947326539951322593136529169782073263373471375234922654938789445354508780975919364545418949492412017826214713510717059405856934635901197591131903048318639084375009799266829931528548420713045147315490075417678772901313876653509018042460895147521091349884355966200987074685475846025999917253813351976027753290738845932660196718056809950432484927050485743693294859674447957692744448776721386603301992509716955813994664826960616872664080434131814460831877068206677001070360932838078945349761992423803190713998463075964007650745440318190784863378069294132635461796288532169560812287347559190286950576616084462397119618988975249181783581103690600546922813547839369362909686365746514991610438468754239024115394426577964139034268054710245956861199409597689560894313921128448009695156793770919762716603914590986423781063674240783479925992781922161001531218787269055967160898454999141273741047325260943110776758218890940976040685611141953384638207577165103427969143670675209179050539964159332713694469755881425328984421342697773146155714676975015663617403954809022102492702151821904555299415611331167416447809382283878720211319184759883206947283836845294482348077574249200706926808129784661587604178249851813743505758912508701749713007763543300913348575970983846062450598707261222546230891784710273994978476618939671016654917900991684284331773362394314186932663497172092199320733945742074906460441122961894009505413065160973075230755788747015907144486768138049492169078933995655210842954027977448284771009510148933223198439752173541912258719378384628082864748065973550680672434692817926855397225841677220366028780779386774801501074531294921303157634582247596659014104850677052622120158271746633718835688049220305070855463039285408257468895633396315967987078545658277013137991675251220246029682034089699875051646820770546853546105792138476512514983229525830349912140847493219358813768291983038185349678907499075163698825799962571104615181212934496833284394200565628364949239013519561314483716035050881777840901798245460527823403782998059351004294442156801485707104256016812066233104132790827485974869778397549032151299612338888491392246507419377602180112336985543321782886874242138746925701740194859949494292931152193593547713640037514736837588183332712353686033001558990427536164867374310944220419094073142613002969703656198408577384502979964480561210515400989033743575713566991014245485951410106175737834520761201926959076332785176682784354309714633365957779321982314857827469924665092523058394391106361251504677408503608249943689938820501322580496355733420987866498642099361994466878259784140582278120691654848215994250452027468132198353772901554302040727372547299104270155640430462283129037280136958482322965123155607606957749828850635143514660261179124333024735586843937270886187209855019707704775233601661621631365477328066565314073720444234141447970701847064325510217348735566237126254956828489428026764342573363403257483654254362384541645731092009164797827456033846717505287285556010285215330734916340203425362198244722870644078091551359577541772152422689157445127196889051118982003492944863056135569103709836258072500072069811946764259575733228174073082362463603063735882363215284806953351333973538213387295589200639777633823587888647783156941659354278631458709298472004240803451217135645983505736038385874944248442647840729232754208793098008071850612245164353827508190867247632815062218461728266599345092926551451614650406310142893511756630984661088555299053384752659818159335944794241364761594708218231529299667935606115237649145325819617423947710735654259880486353730730548305818540036914641269138925017689639517886442154140959321610174895095663615953203062416365150304870336811015282010153376821151697182864908888596821546611807727508250583861955709853409355768779483360611486105072697159723181930935271668381347773022881249854044041113757024739583564280612290999103429285583610638600710345132235495268104464312938272729013738675203899463934782465832691468677872086521556900196776113529237643605644641373450130444487741267259066590081920244154147074160287584385412986198322517124609387287175918850303657070577245744179153247736420246155944334777521800372962035147612230964746278402148249337331278010138296939981494993499730370705657068761391487746203885480569532508252808569864809131214921138644832426541192966686996859819880507614589321005600188565892427603045461306439496007247753205734444259118255427396553845178584903353331616107106625561824706041838024506499498255952430113966080041178629581074637781349755066081490022948882952125180591779339002937098802520902829278307108515657638092328330277481035213692458638382611296836213728151531928023653108653030187517633826773440742971987933488553273120023029127702241900326426827823287082585100332574106189771411110459507995894372820929276436943397226357795398180964076366943279021188769408021073458581670407696659345010737894908830274141303146142681679548032889763511236333159545625361644033359837769125453794732393407036779882660389169704698086210680782103206187205196767161063183191558899064186665208453466845343697748705106551914425843464757661129304285675431351810218544108743269794505504178457641092459985944988165628074611499602066188214687135568368664084826881518432398900034017833508899397845166587228741204890633632305921687124655109982739876953870556214548834686510235269998936094654339053635171428820004247569271666052807512081031198030053367911626448512155842399366891546462978141084291699131952471260844628422035127500451706105370442710163627818117522632395731165729339625635678857326743222612759775607387950944418713047974743059763361763827674078298792393912148273340468778673591255357032361785641131819017079871925304002020363476764025321754748598534078923484716871170182787941469189261712563447758329141741842071562768567661078667314898481362679079368322616322097031068876121573243575747717955309479204584109554564160099507728629843278172633689868565976358325216857240512370078563675158519193734181890019888833260703346134634701701852829013189390788576271807588447609143495267369937631181853780550581222492599105603253851165715903386140801253214171864274422567113850315980707634136745056342976805123864708794403470825032302509394041015140044067132938514584899412804990709991525918894052382857902941361315024868016475024699846902450875920023322927291828111429431724363631808913819587212874925680898778503890604077510038815901147210450609558169525703257686559310120624183127041313887422305616081966849525359656583236793160156737117601674584530247404849416618715044705282665382859136155117738531435696391372751007049911129993950466932750599920844803441330177798453914292801375903600195576676304474021979778887835522918820731830023919173796380427561532872242548099374110309389076881529823346248468131432731866359767392027275771682276824667218073946573877232965386265391404594008659149048528193180647919979623052942560437967843140532125709849485136905324620960772159937626041815177043451359366681479284086909763606359387844747605667867710140115230863993520054773118254895272782494151980849188973900780412088747585840701041690970777362206052918483495032374866121523800128268255891934989541041967496317851052006439264512548072003910145494742472773347596359423465435713930831548267484709599294756498458763018450552387216224594467273698686644408575971371360720799057482688947157821251764949824507153059918716003721646977208006676430177478249966879360102470961289445907502254839619466326423132577140962112244525134950308749582948292846312037081926153598778142167423028453057710223919074027580160070827969328422044781916338837908403606206560210372103836431618716622433743080612403348122707421836871998255241423284909536375120046674507984692951206773178626740738775819153210828428223996745208227096805244086020361391476599458794009953714628231675634376681101369257756512671875470630555394970146179837941963326116199982583194837808224658310626892086824278030860621668110420295573314061875207637897997397045354310928316089686606997015952247577887126912930725360202859894694848149996373989967471034488703924762122930454379565987908407716305155688273809100165599077443940531783641923951926093448733611227934628912812227405610717877500703630045672172586331793387689427551970129519663539028625891078145374706768310173922706116908769236254336244876103091858619760394258236401421306561773583330502921905352828411755402332429972111463908132308394017441500563369947178283205496677527614437620880878205278139495408735903344463445741762458123864797598944354896558078245273332180275530917391567050851235875407440528184716184839818085883019763186790028711169940369844133777087371581280378557456674116013443857043451285818068204989052143169711793330994851213619790921857717306009285089556437561159990304103967045745640873284514751534205190802999776781247734150374023692889263184063117489256191330044991361113789550770466306686652599916774225904811773901949430886924663779009089156534407268679224911759873403359777831699533813655497470927725401427540014330331563027271864520686914002652791861754656110808124597406358649055106134982986584264284213592139187219806805562181970635321863220687341605138894727828086383794047340441813017395852761744517684809570404962459086716148070117392114829845364809688639844520654383955704782087931567346608930105230972014799489785032738259178735991076884951646329770084253924612371458473152888338334509389738856227205924933158467552523864123787689707620765847764178597095889669987506855636957862081051823813635412008939439351662931563498046895633870892105709576840188242626818420562240770833235161179509490890998381196479405858041192493267214714211643099341162339662414049645472890555744148753384195449197120630459107639185634378073604392197493697988309968920293933031755136182638351289048959725646912964177157132682347541060589139078916461209843566677671497317006804741342705632669989161124897904092258413396697953700446673846617938001363688988473451572269857734919075540877886237753275479219315818804164251858540131835651946766556673540636551018552499986416233824494937779938105123001262845782591997377278255801541521748938697524341265725701736144076297160945678827312007335697893164105970208226743136549108874387661927809420401258625552245920307716598907871092041048522727107287832535780662490206668015461513691570046950900700843984635689434444612106591249120562292859267079234939453449095795520541168713091857220020479656055134687288066236927665191005670755462146115284896465825601026504683242815788162027490664790882184319754755669007880471704410172837725730906489145427267689886347641099754123174989478345461269867098619556403441671805258419058177303984954621278958715378744816001272994602507105593722797082912115246807561285057301785115936452953579678395538606981945467234726746004020422893576864183346523324965708508644960080099544064489943352116646365192830201572953125963836188047376659346553001038211613072672233626309521333522562955490135416924874087374860009271018273163570266121878854741154082831691432718125045470829775491936288175836911269211950052702501629945542830247446912210667157571646790888285757590943845992013856001760752452030897278785910363223487237623551772645637906646738187028309880979837945398610721041370475508329924333032977932356245117490603848301775863218509096343269423305267713054064664935952920201367904705169210180386271632676159923651290608846053010083619602745604251550289624996430086637124815986003347577430746746512943353020228511793854798401947901488047590635502826702016572243406766600175662761503515119310867435127326662968102183042950133294083889093371826579936996628044518557000450117150977087091801768654638601829879742771968532752245857055130099412803010749861446397741091992392221026932998434904560259584648222470728714097631866761504176676750636786301061977491487012981522157150790531397059994015204354766685249470863923094351499315844011464119155175283609363933520274512722013248553912418802262053178577246755952306876800847703058774657219645281511638589033386722109138932101417639967595787485757660258662822074450257637262511283758031270130334228593331329466445669454497078218817205264620484726742207372974512422811862702312685380916302787751305312994282770650146164849872845247404219182532294811688065101004788380873512013573735713682682286711649410113618357811525916512302929471742684676076307485318186443026851458688078638324450830151829894808716136046687173302319207246991813964734683552439128573903563153038274639681610658980938602090329719324210839757629927847251160381386132144687685361137885482066606257291174579735608834912872723842387722763282687510655097945898551594107191397054656677508506444717518516377490325133491650713617176566365635958284973283653279378863057700556455771872456184029348442652455669140005726548111278028944183373633896646620594021831952119776013048764923833038685529950255592841769099055343745984524037824288932445664049288729646804869882215299568029423858117782342568618642649134993238796723691632536933644577433119129474048820575614040770043237497401366490747455486579771932928209809799162270961824297556081595201562839094571421736436442338746913976171322161431558479754529500487474019029169249410027387288807002747022862729814224909661869103160004683303026523745045402519025484142847369971731242320170644165638376248469720644524437015326826553518241498492638328291270899774678616782917717053827158288190905464098015166697322425834177774241478337573291193011877684910331304362896490163660336723788556606598539958626542818229707164531350995500904792040479200396777581396385135456711357357018089852784080210596582535992746356096260366885342618026091362673449361516424850383099138007967922543627595306786427309619741332452810034109599601204982249175469367746907944015052270380394969289447555202631552455926105554461039086991518322197621297340493920502158523793124810943212840799790659484694323898383067577194151564448994481671496159212279747866358251017212857614611706545707110686980944854531457003245308469434941293866325739966249080187644342145228673634769937266511820313298773092179867502777100392965092284745446910377907651330144694845848445923067475334159488265890997194366896386819731579178958699728219558700064792601985362967197881237382547539115394639216090970378203555331736875571970134917939854938858751037864723945239180380479206002209901537658561946499538277519064849780451770644189050246369693345250899010834723916237208179368885110484563257576114512470238927635799069836032796672492416633059994927735352356383326749201639846958883639188986507340881422701703272188513716863763981486117843537816962404705939212635405481986904927133798412470247611377722054397795202584380706534308011397320746679829610833841141467375544773138481500703472065380234941151630233968074300804649639507818256459488556926007265877936161246777704644159960609033546391293430665678671495258505924032627138490224550206601425964812118081530967608552121195179987735544689312587174976017024823590195234416081981753114185253315907250604474213595558784073228625274806844959293909979132596533813239748350932776196796746323544718934043284273982618083487176728167944867214463637423575459118872159895002174621915000458986588422498106081367242781434002438820966582635613480479690602279565935656642439432808392515640627517790564865937088563431631316564036203215724066048021879826145546386733886633839803094729431311500534538130859469055734460727505840348651007437021733264222659416189774144007525214353560235010333235926996224862976880528082773306060628562147312522963104939813309170022159582501808136206231546491593180801516564582264243291312847912038913726538803721521402937809813548662649443368318242942142075610432910459915829100399780916374391369817409510212473260280536037453694890774400642100661162717824042160765670343416324567123180233810365572846481036816917098245503534016975286802241259122079358119214775273898852028914338171193402367139891193196921431776707641466204790650565117748576704223659428316567265823097940641121080977227131570280652013744450187468702188393063339897238615852613562788127510704543819745469375246700562186506166273912394005310433201077295871115678703123057102406233246628306080556651738200897706365584653487030440022110941757095905226439481556966526662422055247624181848191512988847351497539787235504952058687659425089053117206447721186846478838857786832916293052785887450699298483728361619290752091767850672008143765070142129301466222167026467341281533455037031698958892464793883641625448183568005738484071533075067198420300734157319720982439146930012946705752284325897915616216545558736737046671523890237477737880950280190002932939821366454571776525925846094786779956714460145669710430778875888080010378225659652275407280722771101497754684734188445961542165386500725509600289189263146046189678570340695081456000736911651340843704901717608237191997801819719966254855533920347680887789423767983265087479216734318880903957350005787692866193883020441823446844128096797875511685644141886146789178528872456553511150622321947793040360893360614037183342486068902123595046749131017187927502926515857275694715958095404088893133454602080946176980291528527584455667363261735495136174282768743368311012603818381917771347387842514449043101508190390095771025125979292515941565929787220610112619279933323981381135883157669727766642667877280235558179986514400253067847350058008483359148308379713022398301040734166662183883571981957462437771485697767427973076399511146390389619554242073520102343106800244443988670202646578172899705162920592297191634057304369132807855262729419447395759570288411893929473995224264171982792604372005602886614283251785979333006575155926616368999607454550348987260033185397843614991168013979922405189491938015455272353307802400321870417575184635941485061985315468752951223364635297488296931445630942856593670157090883016732583698145773406749563213977160155676172804862507816926921415233181540023603515772757314645785604165242270077353784278439941505209106588463160841281826082827318119828938285387939470665000865109617297882588477864643380555802255615389575167183985830049436900786359797221353216833011858486642019237703031826416226105020696209466378643402958210976736065150527968207873030477025054291648778893173793506887174216060919152400847310965284641710643820194069155507694068509869170391930068923279236792331861439347713524306373423806072203210312465696372893176071675889662868261211501250987378441598648273249954087279849490571871018885822893061366408239432108474929278975885990144225077018817474940176701602233765355141383564850916847976405339044581168970605154229270073582802878329721098515695202775468111760170523200091897559197455789917555771680387406784045010439791315187457397505151290550937407400134801360899121039695260202031494198782592873647771766541939703346657224239598094591446420773694008342092153589918679692317258303368986759814960070115589074679429325956312070975441219341215164070927521127113045108109701412458490928305986514705752668980736168849037700943753695600731384317287808437317089168285192458897466156819499288464522329163824328392527931482996483944497902788341408702225425850897124949861063390599774346488714685085063289802942174318544374817581702900659559851833053735170301808033235978760648610401503541980687334804150699256033378820469269163591809940110827509522115961021123272618794991047598609284266803285493634886398021034758459133385749404058938836848013548975661775737026310921804798767956779411596366523301982116126029275056588890187137435772532831118618606330307998989025716670741097340819163766068979881132034859043717532909786764871488812219916982999414209211982349098137576980726816455057971209799477028834908860941854961607569954248670706599285906179473613230793205841590154980798007679243396324285424613967820154540185703417639755708197685454405922460766886519631386462483052256332921972456535813395586721020709887053576691326683798514019728511770211376768269713156362605977386839256347093062905318796337799324336535885123784174693471744159925239043336552888184706832249915208929419018544305808973130305974342601155960595719316477521265387002680598440166625032912911192889809972550287951731236899288637979081036972554090161890330312486855441932604023919550625343112883547628280141342583969686282166330265643106810003845106749576260164914029171457327829380204609448349009511598700320978869671241691588617537200969845734751180417825658354051352920954400352180054334968188202603984649631728498517494931655937458250643900017866595946607938851984194243033701768614344893569437586673689358064753438690019723447254970068927190551503558379677518224575963112554372431882622629518816647762752233807981743082080493593438357385384059826203061312776932641288110177116124269293332774435670854896224135857009734356257776228168629332028572658974876211045536972378452752658235210422235420085110582167334085279202988334845265251179404470269208402681604067627687197139763401210320443420402579218316496255899339187532555317331206374394139267210258130312987123777863052464567796493780193887313847481510825634805378625756879333878650343332552592533540075485037703853058880542360661898760490053795857788018985116953711049031309658238614154939245285282125327715004728226146089724860345064531169594813031028939019431167206226894215327601322093191259167661623278375978460978863257086761609062778419312683924704092229491581956349024495849566650002430199473962909984089419353499338679235126205534236640691057081923679430366501431280333939425485739187648814123934555303618332342479350012840382862328729591404313783352742967641773273261408153126688539815728732745486608859974675046911403841397137730532580564558358821707243075853603456927225144613374457141759621725274355926919036310169199694643977104559588267319024762030788723815125306084592659300682766624466946706298114457846140247081922177160177288780911794417252564072086913280268370776681180022745555353634380036427326352085762813532049392747087743429560311352502688444606394840281981716456023544947486364495673086029616114763048335581052295260679071606030947746804764949911545128767882053607756733447902794109695971626313984600202976782649850896231637572792392756726755561811398413754258114514555965255659420256297877209384926754193141267232624451300968420314393185546287853974136211994401205820636320075796140691221157386053513441673386918374166878136801074380826273019740859500457454959714583218822167286209735634204507355187798430691365714224678834338022364798751421912753182627016449893118097447289868984863428672078172829038785451944149617604307530334648788801819133321870364652318956004502585463340550982385758307029470087047116169049198482992784578485390408164420650556950903824892943221451027005254148115260756670212595186345467038591365797490508246541713687620015587294352877030342667145668185739583849358902526692170850564461148268620793307365615368825538716886710009071625412597002351975009462418260014931573376070613597948118549993725358240523444596240198811022825892644774068701715362661840767220838806123361235418458196663234832144979724355537085988480848261385521291913236959057729988147832416268245482630216338034290412602541317534284261749167410532250203351705379675115034528481739855081496472450400924812326707986880857013960760849081891573794952741943084587277244601512448353864983129346148082133066139015376094520160528538395858157325395680625756226007412049241716723815343424575342757613122452001587202044612321357341550283389740834622436199903061031654877601502600588707045133623996825980463790276978832805518166565631789594099729019052510047945654463176081528193410510205815868564055110560627299165227808267783185237512982530634226478545585596278047118821528426990634986336428693295582539939145722702636598239847671105941265464486006339364675495428898807562465820528199221430568931045453494225104354343257048835886499040076275419147906283612528082232079192725940844336308282405305025039097872303853970434214997444973442272350400440579504543873465502968449658991528447089297193229450397378411264400588789158765854323820008100355109511090110061539198225035362041993426892489770501013321276994622495704227075366506078774519769033738132867569108280953613400853494708417511657559046447836664140333130032013086045584628274143730068958135012047369336433468341584596665668929984800400665253971203897918465780730132472723804908482058997279062079095085070951452417429728077423842412338829154103590279306287602723934588908218153756098710341378925183520018229349895248045172111746923008897333815586773970690834681947158501825481483772032150518930529372393614805142640722912016974617414956376782455295069907152427700655780912864603427367783473587029248016892972380148266761808260705908429664318966359156219250981508956002629731763923484298520686519029012945550927562702056407294675563242937965673774475671987524903022248861235184013066084443808241867012953280138303292959102890441944881484652336811519084103986032297522552156907056480886013968270476171207618925494585252584519581244490841075998700785961634445175568035564426646689322532569575916943903888345896589851322332780008988619071635515979069755649944810411063384795345784487950340647544109452500096383835558059998951807670339344937671124154224359531745543626493666188347311749255390122099409958116664098449355541969352248041413630010367872598037067669581021626274873788991126070650622959707123946213328939046882700532272508947150728177941946594430266858699416412815730356709047915769774157914080138913038601134309287177757644395523431854661726083872665748393801963705220609741537232753526558548072899955527403141492247754207733336931943788950859579530894147064919806011673930596542433772689599889878868781248005430821590788909740180813349820149932898158916474276624980065376265885314832078342678931414083057306669981392854434809428083053664636896623002353108128849620365344513916183473690032426114578821513238929816723459268259382519938978062592845488931338358735328571861776159719674978583183092734454021760765016107423345968256739042193844892030923250458681918027227412150503521656309665543847582475153074636053635562221552853112327291289691070932960970265052621262560836780210101897327857480756166696037379773424146308352879201533358165736002108775488373509752370854870056745374433325531076930041409213021698366867592540894791693442337700158599085918449093372069222576321451879752643876586422754312318657102203297101361083753447253961823881279833874222227152783809969513168578566007609338505883573562532816619416481146953309423036979986162413607683015487118307023983690639878510371641407667008138679250315634281131772452552011561257300662721398828664840790948403619815922464156105263920458115497530781946302770050288343375633434540070911099624625541783402236132744607703115081713289807484723797646896627109405915733162729368381095625274731528730566792635272387573385795022064270262612257635169876040809389900783282998198756344218030827965601297101407222905014098620114736678803529348943666534670356281811329856300814562860566608001006481873618773515220690579436517351616726384217450995626132028090910662421980636304110848461591928628416378138548431890060120705740466492564376444455373380848284683895981986640662921031330033584373714735531497300088151912036058378108465058320212923573086132735187550271477580326026683199339514719877766104840079489986886866346602497536683214494694660643732446662392793915796295404773914047194819850940050548822449569320168156735279001028641884915422567394127865950344934148298000577820449557902794148174325955950110243486447007346412553591218910924790927313216952568732049623009721055048573460792004228918100542265033578053765178394851751443437536679063805258215796809117160836543190322479686886014261038334969807279259382860263038519896244129224596219698353977471324568435311494187112267056319129146597913071958755612504634538019950466965269861369309449465123517856154638823937687874427144025239798314570082417949022449084953711149152801395954372759036713771714721812879915182693043936022846484339897993315760299762137789436647636090773020242893860959720726983618957159510960237281877838890724989916004150409773236546206111039836392724020999124577938349359532218364319181932856289330970789373811426562383177719844877785572280155571565948734183966906664516190363801563316830211725560089797601349013987921494375157511901656821633136937596820740343257170034417035860574204372433690501145045908895247773116906747862236080145205532538383708285334178192198468498093551240631748386958876002300682183559358739543677132564329650897302733221674207547632057773624762394742509536208467605633777972256175959767873970775842525538842497914470572746972296227211434949693137603778322221282712913907184477024245791301003304554452473415321095968035465173250027091808475717827616540797599837634055289311472619036364133773324912303775732211145201312608723637727395043481824763921513832920954272539323563978464454035574152825291628163478936967474089620615301845207397164220198908994114272334308629745883272952143042960286608569715392189053284221270441935932963409721591747209375449840816568914385308224495250015333591707155856857503324233952306133664243729649826991776790484824198601393099889301956801403749958720321175622058674925961277930404048005662989801488926608582423840393510889987083183229525246681764996247020475659610280969514958326183508274595231896169032962178273586110905055353093282710229105837015884796225077176015647994160943773798307224195107050642529668265797374214475646763776957217850987220126954432832319320910485928531642162368919196043953668184490100176528672154773445227655057787901858372001211360215902388463300301877786752033473152693037807586712873077236915762692921043337632104010640174121223596473833183545258735666061243106133488394424487140583673844044046668145542412083627216591091181284962984361114144786183185692861476817367855734274771638792597353399279425249508324537537160618840890537534034013394939896475974780180056422451742513272051513536966390556788728588458970994262059447159119891635292311448967230319328561452312754773348352637561302362657001533134455969912741199563605293491038694859718127773763021140757055091252184918257415818144590175513907666799301856880441642046602521171529852596679327415453242039762202870030316193021074553246123509551406205585352322740965657155797705137221492618669607043669708180609104041822710469704964011765386931422682527231290495577478136340546813571146676458454987692129307674668317742733343183130380052108064754405099079780533278168370950408404987593118246823501281320081065543170629547940634688113981315937111219923112593460430670471669838682725330265869593274247977752104093408355973430440851374627367968427497682628268053673050372476313936905266294063760107734182244078792009152272495647026019480510106774856847127155832198852956762287783389373981930098139892699227217312376114052292193215101516259081023748054379881232804856692798501914298423144340176891856123897487467067628346565938819372462628757723638034440764284954865255209806733950720421247248745801409442808830247780705664916629093407118036487931330689294996187608523171045230769507688206768703027149974134608842491138760061232009609053439017000455261262599198990536481797680192219983319424039694947443901937673509364061597367937475989594946603012019981571816775706687820557545753872461861995384455073219426125733222859949221220844316049779413934176445370027340427274573839090177434255023314244405565248520992647508077316061035322058336823409162416182314617095331421311880356493721765847605181170592226162218900419915942164696114037754552883183968473001971678565646410909196428541314037639848406089928635811312488417983309568601571365921031017265772272214701112630710135623305192609174841629781928844794927222994388632300045976318168628418905092294458747571862654437693435348100269600857876240714549601699937177618072262632381481077502733868721109404993884634917818094986386559558231463542507593338777856986418338118520954312452993768280458720286756168007525933092009204885080613055946603611153644746013346803514515214701310295251474560868803257202178165038438530842919164989452581943162795930838943727816145882930098094539026687637494104556020664937182684117886349667463481013439374810599396342732839315662733516474115545713949690027822693317662278405614669672836938017346741337840595906464526364312089772351803646679172392702939766781596243838034002669984419675802196504331853647253093982806240350516175681856900773150252077442924403534458325904300078585691138559031372406357182273393312331106183190462912182188124177362550477716592994744679808915353811807010883203997794797940088298320322462921566663540614469003643588440974967382241081448809792183641349084766369382385684459536712691183015509899210720236512352782814478239138611542848315580973726020101615614624588278283207847915500803037582974328574933436110089232064514119740551251425433049227416030264747020254892668722341243802832670779538221932550932677552605859063767022631653457069742231753875718767184978229290558541188726718569214585386804790349438278591582475829746229057448801695899766879486798172659231448150207946170136278253348068592534289940489183260890268327015793158233466577280982073855075628931750321688791465940797295548759606702653253194495270749146301031228195660060089051494389177082355937118205798599235864448241315651224902908890488121774947059444708642506330596417930402217204407915729568034964377979071636745079915280154395883316153494028020980284348757455434092037461807863315801366388817694720252067079860834229814015718246082491162346201377784446728304141155612767457355919113860564801238590636688637113189400959305171569520327011725957802274778177281814528547493184009291096555637910940190355390876254766853943238148368526082601680295539328249133456149591359161553519764975492273176982052692310939308124998185462142539395285906230335814807172387519664111948371713577060432866934331299834646619095012108482387130881542884673641637087314502406078349341253701734754671632108748451214703587499111602868749493055971418325726664185483606313047783830106495900677889484538921170702957840330418980688753899459605623693533193464785209930252433381428089799566585007538840976531589640992813730730966558296319789711206200447995870802724807952316077406717229400595060223093635601369007823048992015942288089998346543333090866628676752264195624374334043514962523600073750772919425985482932108939924345856610639521297742943309180847109868720979198235370590062159419000944901302418629781318892309802810486606362033386698502713236215731610714373955467763313827993180656762874625000733526993310786077271880578917978127648976313168724310587634824236891251724835284744034998457795470693773062604727918034984442232093582744540376374152358385858722944979499872412483332357149068385393146868876105032512483512392113853774378988624402874999447380596326739222963482544559315000428800271639781115289407106318684850844484440534701284149174856272350066952327425058973830802799656443951405954255337067147262696160375966029897255640472843879444403626459111673018994991077771642813019447041365131168018230024610652869414922220741239032478955012989571994847215251821111110891959578006779940168856257426919973383778456393592816966236378234141283181245910388395405676121223241831594132782955478409897344397211168071273762176374475007945822601962291160697672983525929552997217658650498426377326020361658709393951456543313327376201879293415401768911984461186924559923679676291194517627002074879289236566494043017717699711229875075648628094885670210300850418373309866648994487238346364001500829050454455039245097817922633552079510778016507808787468742496958006172371874800606445345673424093033982872857437433132904516806799289079982018425138276570297860621968105468111663761344009817841376580766690586687174114873988089813696388716036924052827693676780711613045814511662598959918214144726918479075601469001399399488814386461412230458220085664078616570704749235087305987417221927877659599703496623366102404799307935170891095855593520000588839765956864746713160876454028692828361111843309589887270587386621960000003776269844240571298722845296021777097212873882827110232388478254622937402094848047523277800241676542766878042760576303224645297230431296133035770028692417773278466177731872628742949303590888805783306171106273806732990811982653309073699755718119569456228945004927456961495242208274871227991265603822167303923667814282614933269252047843585128870032997058901965950463903453554884258273822985972288597628477308242928433149327297348275723278677021971667710686724748165981656233296401180787839868300603542947052487425629546885366551311711260545848502982552386968311958935033018495607754630686044680099982165982663631417146670748440334331921252847054028955590422331764833063559002580702558348980709620332965380040840881899157203991792352440568106657473217433971578841710852925082409652034344468115409870369714626003307674933710723976059558618898184840392869997664971310091821948346281079062252187146217646456961356277596295728610348832259274805298395909451859004921163627306902436193892952618408742690206254552456962963218333625241267718398814855231246976936258083224720396119895872536570865595266140783514400034948227011083083879756399258827758627741387998251311996846876628441415541726555690567659112604033304180456526512179761576480888807348414927332255005545221057306779403554334655757061806082836411364012555965578674934541079365737757518796720565706940265486888099061360516571960547621038904476943573445315290578131501329733052658440850019783658656745921984010383702900753506347000550518641608210900382303377147876411840305205659615365659939052340397423817600638054229242777751590400813394059756459877255097557383065021900809719921604955531641283709226108224536002350624023557535231743199935145640739164132747026393002327412559324216173699090520933220296826909574257788895708178903947536517714153703707771300043322971261010930526010013478897813901179300586858254587418565077032895315084712616234273975350318099179003786368441621070385739553280881560399478674460733947000704163263389450920228242805776112900998852225523501491697641830149979351384428131820745588476312558352751212423517091550710416012602168584177939172658705679656099939073825183955136095791399708700972592614165572471859051783154302712481512178711790440499302806762897841322817945702541109148911846812105735373448303793909843220681668889055339801717176868203777710234030347458076950210410883823536113047723340342875928817956485297811821524636333876015126468615237303097839445595136266514243587321289363258486715203965122444148821958825813129884979762965101495464027304084597024737542409332815115602982340321475423850043211724961367120322983262043012003758514584222418605040475188199629958909072264860499514055515213328537635302852355665928935038192391212649087417133096328036977965487318451423745452970051529655281302239026053059984676662013575167713681713131653217269647317522108582549774021321346650321320386550132487488693767649425626573376953343310504887079585487512230295335146222862610770776893057698560588427228462377334353854755372332590869114998620410959183333491004693137083123514256284350112500115621430913730312217544554934305316632484903231673168114493115775877760404785848303956801133327562475826515193207155256391676590746289426228675364638301423435083010737876396349414535911418265740392181321624641494500813704416543535202243390574398838666426508987338291984891473652199464906885790457442162584726095819973198182754031439536015953985508439222275192594254440161085137584119037855633615332813943036588009820723826720228008061931869482225320454644549433755962006379722782233324180850403570900442888247608096053241505077438850974268624321476502464818065629425899735290275523014663591746868266629821453073142409924584358533815349425560034767067574482988448957923502837498605420159096398581147145986805400604577085418136745691977449997522296633830193398656564247693159226241518145056204861365541245397170729304931281838854235765505938929101587820310756402868800073895457537690926398543828935280890406224056400006799251562852166315128346060318843518185911954255456639063758958111467280494594585863643253876466821985071574981583694772678008950656420706259250912730560162065486497923684979436794035230607773205952696243597558691863503337756606608807979504621251071615689404531336153309697386175480649848228644113097813414273951641210344402915988654285358051898661026814219382044028973278460512918881369550146853839173331440886117714219122256475581256509379771834784197697234107488035528534058003440365945749786994861299101906730016218336510721747674129493921319736226183293048695732127727845711645567876541011828111465821563259787339522763273390393809266689484088374730923873066917648585319755089354881505152112020411818987258091547293953939832863630480737393388406199282162172258201663991043186455248597637662089025865026611240663314107635553042737255914492622599693556810798435443175001596188695928201415767045999481655315562385253993856002873292565098901948483466440141161115002816340732041192372852594465784952756902727926373442714557273625717958313365625267554276638224340836798772631817212139916031669759833640062154311795699675489320250116595396218583562541958211676364683364966916276857261363266396872703825807170747766109821112176234994580307848830502970381476775487372245255184925707783133444264523649498250092113828462831891569113277768266114769029446356417796595059416284077277355216963449056891271540456100200688161866336348749915258851343737520469710921817849948520784853826630506057668156835746116583373787660844744285120542662457669307402711024247861482906281198420137184716961794778237760289327206401301909886581856734330889535055889823380182778363845093495607810551083331632102991146989473749083288248482565147656378248027843041942046290003941747202907580568261854005728989890067674318962437861622742833357795704760749039368597877001879934977844827982613472269943413168113621911141570082424903753974642428397748061570130355547364048688116202615493998236486143618771333525714950741552205681094721936104183883687798617994321755691976800545107895414102033257980756775544945932731707942641875198712975993098816723372082261170407453335004467056585185878590488474422170733719108975191798435205800777517171663313728032088985718507758483577762109106961195611648011253815123459332692012769351746384562916535766684621670597670555079014868613793788925027841622266791606522706332028341604576947578034149098115689874945091159535194093698226868719500655347612004239052201292939093357620268100706209012268103584241733126169704238780251191326816256200332870618136047140059473159427848912316966461255532377364828433695952476878607926735381858445632497298354583538759183335314005281859233912843110954372838828995383883720129563749102488944922342233902288269391367654229192233988165215191160069408160470417627146495317710207668311248345399519423016381118233685426553271710183604622576690217142280384714602288269924713785493880022459397266171838990790093306478917407547510390608198322249769927315757434026702117130107721859421153187645091880463432829889170763140408986439650450144625018528322118923411344646847822378629605424432291591033532874734149799226698916948736049450599860619889479517073823774991352776048024085129525415607170330877771659388206741591278002715383032067859028218682921328072029059616010902597891045148404124982559826043238212809377658404473654929853069415155037918879366392384406718413670460055028028145110332587705997605986181162866791070296294353469551839542771768045904209393465047739599285220998241286773567528968995022678863767700850301977826624580934750618179565492308057895186854304453688613335862419447385985768749616787411142742488052673472520282529055491010866336511079569809667563664553390321435973744181230152931011331598900714145286767564173802276740279162963151332107308529812884978307082516004315276113778093557496136377505235808607456636002199098224576845760256587380185215650888560862181059225712794990158824793499439700272812698343109755480832054211141630506457880108134715736882163896633360799646447321589159761973223716402671837506002814786970626278058825780319422515706077080009317239991572059265290541568114934443555459757173043102794361995252183692354322393054796288747547659248639973203079758447188395730254021642846853174853875646338705920494384649214603722339218033608503689460476575242259480627800744724504820350709513982905263979629417676097022913405868784071456213646930593818562500150394014857320343771750506567249633732096045775498631952227275540065760029524940750014800047360715311881181127578965708498960401588967393338352260416716219314620686825860398649978135444007722191460236155785886070367343933226064986204299070232376344297760581291633906969540772406128643313168401509073160997678983566874198387337903039609949431101360812422610255791332101526248538387655928899597941150304381659137297707821037971126503967359419488805364995311022363549657041497702494510042758944242681930116440862767056310304940223981570120168813392469514214703941429993811827540018910632957553849633527602352268446039220741331192858918491538015121966188064800050046323518135665008301691176050039949049917700637835950610825035983138822205269178329867817354936886877196331509497805541038014181092496897117704842322530487071253824471843972641452691104304780376510723867188033119885954749897353224385551406676246577818502165848347839698535612666729521588435782376324775490503329122669774247439888764793462843995705377457077351228509783772468857030926362729382049378845343256105744734381489319866387192796294028833985501202453926654886183303368359818448499986348833420509521636341098325187906499098753579858275160691938074045976018356976401633403396784948136052963942970744519709451340517247821939311660756609226821768770776496303361087251621429268801808866328607885911118358111403992713583713720664780549140708091760615057512037025814616380538182239576667802819066758802965307040219860414711058891317148840027606284226567533968156537552142126191199120030918693577122284028376219884939128122599513746238240023263155999291705507151626592800151598007352710893205645854265483456243014076194597100639297773387932366229844878675197437812920037974048481075267977684563634866987682949549729553621239574509747176080995560390636319240661681829357443852803108451139625620914686435384886257373974301373150676909545780114114157683063075102655363360477205749551083880511575775770268464519255149332290108291750458513777573206650078466546390795825661545906268766965304226547683643819043161838819075183139956574706800867193790314412275078169495902346858811975090403893317514124156949133434365597338151433808117847827134027992713632874535454141622946256713272344704393712150311261027106757833512924169174578529673853520136793624883063307032249852717845959208104712288915093103495708714856166063295714530851398646621692359874680909600218896141056155005934569798367693053542002227553066505258953245012310404747555730182707868037431667771169882713113444626590619359243193135523560131543575273070822951736109759734154360157301870254254529362979308653934360821298400372296395358324598120010902020311427021450380862186999884727531622628182233372472110712576053639214586502800187878727574632656563381779478152309429609779281039872433252685838926704737026620740827807253737343604670183824171070210053031177441101000187143453489944505716746014041962921286568641538802665414087126451200491347226500452089099904465455746443864955300992203744199345355560489584594485437499560955354268436744981624790999493331138321383829564306960491841821208044355059065752506680682956875813895093695636781600634495123848134328165066670087908337564587015860853306190779949879885960193441605935172972025211166507176494362994340231286473360596645933564021208718933198860411414022186862512879473179920129962467440327702991505666565884380247755431929459543620048469593834437453081068873370518037385224813467676572215174603567240433246862607309924546681267234503904704789742809397038820469905672379069046332479546571445303414902849950135041810222760906207758719768782093362692004259146048814174299501225226370138530846902221691023310180822027827443326508140814240349952894080160281685613105817123721432558239685863469362083448781044641336409508433780476037873755319242011952275442875399798840336482885284643130544749661161335954397009200706285945291909940649345765011428988541358470631061540155101090797300542433171326839662932461383701169423840291248510462821923177935631121910136138731686834187835055105937727801168354684870749759029400850666778338405735538931805252890272399174030389995072254301755725722982452339160541457271956809005125442707871774394848043731371385671774910041907255709440074313590112933773058403420467059684795521940458969907038323101676406845222010850273569069320100624146085253214752872274366354464823393815347156163055768549736814743623936405376013088371209845604305718628029884885558262807533167502190743681376246388744709153217520548724552247781795883788182180721389111240837138679594025638991636447926262276916186351827124491311704570081452859357434502914593334349863948492549324224552328901576238118854977305754385253196096868927525249822236058259787934049886743940193854203802191674928505731618304866774286738594091875031814720762643844981518106560565571479504413603261646845222027793028705597710850093113653789118467454666504095756843760263920921535204290773974410640667762849741215631849911931816212290889506628684522638418584174065064989453408316005560385571225662803289138693270899588560435222973758171904718910629367753046104275598977816510763748440615346233905629039848634535949917321044340903621732719930134914651320502635283457021309332221107161304174312906886354529785110350323509926963480937534367909810738115508053844021629786360947414175828676738699878199339531112192100484527446513285834136107675659002353507294294473923863991043057867099757007942624972186916984340341870301155338405541235424995366054411466159242521945934153831478908733054351576291712621060749956717235246584202034667856881762950101968656336974074270663631642846965919610105183063471416111840679891403412737510185770136964101942828506217621595557379274280836895957830134131340710562824309394812912195366137205440908045675427602040103640158454379373763644766567205927754357147647017751956962489097635585509772805237351826138735813087764194899787424764857242913033637658419385728614676586677349910610914823874916197220817600889452442040023423338103371625707113908340527668940526048547287264972341526433840363844022290819814288587196133168477877745193029280910219366446550545492099846357350601129694677016447349940792804056534818471550449662270768605726410452686193691060137597076112265869881985604512867634052522914073869785613595897216986827650655567218102952150962380477437643079426994217441855524650922184654698167521252999538883159677923723622526692614406133047773017018268085517321096234147666806586265649104728381881748998599630206005534843811317213878181021173225941554071267893087759525140513224656398011885084651861009589962412317909174529912700426459737209196107600266447132042752604828595720973614717500658122329442121401936902803733128133061936940506337501777787110006898927513264911476255775785870931168344424359151164819750371649375149601353721307015493470747698867959907965532274372669620055683018621164415655041893041286068947707333559791078359308187892188167544473959068070386933155116234659572267200961592307704539728562508865873219713323550729735369952890361760949896101126604667068979518370360186081411814085248782062834089457918721858458155412019033684954561919631815212263552566785455558554543908720275857986541734719599504737626636949791651859992849900700317864973366258280496148817957908341975595478171122052963291496214551461573235003637323546562334241650631208949362095584474656968947655264808117573690304797034104057466566896907542964800795174525709759358463607022393949994320902115338653587114081633285241627798921676586434096879232402939078574246623695035186610973360689584764678867162462566475938434411775609194699507372622837048514961798423279907629406829747409780248964748946430439604763446066215755733353060232190357849985585233527752828744158986335165811260579698978345683420006277471300513776580307719097815020399412060444600179215426205820178645640448180703630426653056287950098147090817327111552345656865769822565632664525048011435945487373883603747968741433980097470860098723663237463513520235302223710946526898320484901406026316334726323136461149586419968907981500432032190455467590385204148820865214226782648138208003309573525096455580864703269292344365604274085426504243622237846977112338988532189448721862330955280500104011659006172350892070654837251609400480879357730444572263843839915682907891615425276947221030466545850431424399460120976960563765507582935850370236227653057170211845274403022060868370195154977007254883182345749614908359347372887506488960492829271866391293488235033886536510848211443826829541293309289529361400550824330760498206911057120060324642855170271209343458798900702383731866546486546815390332656031792090421676532612830080842235771938039860078794293205860143482251829728110552207108444074030352357535912238333659558687124387975553612844973418405277535543641128270088278563920231924993786002851411876548139784946837978501214391240857104099860198990113000823030816269988350820741075406163804923404704731491022806336133337310636982946233007624876431352617267071611619263789832430952784822893936583432454463874748132282353552050663310383607884741864476309070237208489852037953630675661585310465998173687261638156196981211387658277295487152243120126624790355951316425154694502625825682999033479075940211271585245719168442345660738015886544193072718500126776629453599207228631286395984407261460470883768807135831422135917624902737317893411647284505515048794106636752339905517085899611526968176144906637365302528729270339202173715918401832456699380866357323636621867059121997753094075250171436607433612740000481908796578201917684960393852275694037332407742528598038859902830076687863165669240321217026670084855651601841809153218517464422552924596953321426712096277524762225803920262852991252381626921505702700388843093182150426735928900057424896402997950508150215266403475985108657850549708423613833154934712047066865621263196751607467774619720306942532532699411559928891958932328866695915576487658640224775622305647673714146210620526241702922449780930184285913424447819892038773772929360370763896501011412986221302313924967254094575185589007416309264347891540598235697012579365292756556210757812272402667506721810848682607256866878854066904185644684767433449841124160441824658361175474177102679412455304955612509330136639093274881908353417767215868022596691341917095086941214165681512322797459044971799403169896616718786097567381256446734731356749216732238525563194032580455743657759553318969820142909305598995890551465384057158579439726762362912716398465635889333581071789985953556694494657151724953804923359411926307024631548927326452722788746160944101044307288292453784900956113714100171865931969903389838205517241220483144475158014041354530372849613229736432697521930578495585782905425935277219871665895811340308953562711291206634205440913165768128312861115494720706646549941792490351873716749236850995950984445917975005780645962300902381617211864850860221823562333890375857361266092805303076952899843374413865679150497944399828472084347574505500577166247515754204975277553979093961434294138432318836553822892227974364036878534993715019686068027531366032620703683859837191060573631070811298977082357372944955304409183625767328318520784363401407365945879618275286885916590731570766687245577869548917021027964006243351046088631293893073766497860579462473153230006107814902750658737729840857858770472024333956986192812746068128273469586173022208407029125991628391997103462980637166876256635141450850340277380655952662026901516520339968635893919635170973731266019315957390303688360652282540248269344541959903966378795860231100499206862998681721965409730288256558666539820543984334322254313180342324841420409449125422010173090899827917304971084837001225163050206232777845383846220380410497167945442227598813087397261694363389471402972173938929012495341725961872091782911009878385547813058544652996323921420646700475531898385936096811772201765707568930103269338526086510951776671235492219463136831185272064318492528663329948919273272839415399919475696683994188497041730462741380161306928565657447383887905781655760182749320182045500131599457691873890059273246696186288011716422745146276018617986670236744026318367245481261649295593193019477201586903373185026033488376085207866702194940643517700951687995976501606902722189467837471216156420068996223322478932389301440117760299753347037869582994414405904931066935575009299731507314213403675825964801462272814882399030946786906692998698981309871248470780356137306659958311611916059037952282921810710834044577475031887173923834631426601816781437023392851920204887486439130472904405077659057885863071520986679110204414218477688804769446000478089330506587576857809217868247134463258804348660003025253656790459916016086457042931488065172989427995558288638944181316687296666211659387047647768073163957827594429434592755537923418624957590185096730967546673001718969888138164440609714446825352902403179488772919428329616155592244043396511613216366505577318835403607261245895566796048107332714424285570596558270842282431772118845731245432077545848312301378372296644892185782581291322923725920959982270236797073422034172375704362992912570306022885595203626893567092985663765487965287257250390032335751617249369544423801947849795780019320635665612460853055188930841202184035062516208723912818632836041231653814742461333501259653490853320915344434483275026421123592121344121040291515343489937967441603072212238372911070873235032668484957367394307065820102318977016777556320547615909975533775011507957054097013223397055540112456817492977638335772861898256059142408118840238498660454200631388759131244145473250257423919859316709594923360199797123589081281181420206404697649157320697712804178129026287704721998446122729392913211741905068642948884563867818633065563436424737833943782958715763984377391384446156165474636608926402806659989024030526916167737809520736771918589793947745610121049436460264292552870504683845175626797646467786653378899839608545304702433488946483922121684014254358838890784973632024477589320375642864906360471784596092174910921681563240155078246927052444875667202155981223378048992603540899263916341595965504965248366482400459732692945902814158885337010117077543272489027272499129754286915510456858844324940902300443015973789878374957885636418505159884135416075384898986807730786332313061756629434571374068358974228560469546300638786400820614730899189947691412106549334266897708450412947343916078763923583890046728635875809082854543358437802603698381125449806003998160755440589432734401523429424037392098163569523290709247157435019513802465758868650492532793937862489978847630596112013163550522261092572901460435504848492626566247871438434236927923501424225929596454918466767882971448393046540006581629539596194094291424565527161016649660304277759930146190795063279619251201350220304509557426773225842473565946393494169673299797345827062871741615799168686155996527598568454516500658410949531709539637997983351994658819960167420428515444052459320550661586489954956673860790933246733006237319670390551795062205268018358595095016518702856659015732164186120800919750557297265019006306159318595708679924982985322594076027335948476193802506571537184097449116219559796738309860117597589054055489058176311707189786355441530520649440972069956819826032445082985969188984087502275685683421070362059315519256598078206810203826665220650367607269377750028784236877534012552670232489857224241528917619446437490491018448415304205849873863019072385392819867444225075133706153569420155703717793807861774720456669857506497220364390619080432965535222066762481654701053282791716628591739772942634189282517840555710550441922967848751889176662817761238099005590578271414562906465653170571331700222155380497208023904817118537753628898769122771532707528960969783376905535001002975219031559691832054591299568711839769739713696218001032512555602042801035560669798120135638150967717319527642059639376712928815124757713137421658707184834260298565110248357237240887538580653475161531643636213850151828624739518146139307848238488909580185561712901969341006055227664174029041107530846183298928980072547411082248182723220411479703539859176410634539178865547851970758506580562658312562734353308798970460813726561489443405915971607094781554466231366259217007252272884564007198112773639612485080797253383849385849823525098907467838165008838796809557725424681840005263821002221997567795580189728419970984802253573099049322490666717478468623673966749294445927866028859590405132339965480568235195376600861793600410655914999692963259040821444060333689809663478093571609837010343230995189619309926436529645965007185570910965439014440753367977380869030342722326575453753859254587755196378384235129627523806275740290068649141868037783358641530797992129212453850766227989022304718858084265382942118466124664136874942684711385016888524155494156238816352395822805355465453820992859895476707138479820477941890140481659224928283993402108458981931622240974241091330934177686486879415796354987085218800610276399761525721932220108848605176058133312914205513500748124411890570891054846825401443895184560789443817256026459816828534124055541240642069777360679732372757196952502659053814477652182095548778662792570957891884336246336792404197783782985058610729848771783316401638096956477936310159640570822254115192972328958737448118418262821896491454663573051654437461307873242082784536429467824802450916421360937747683304145722535470858607355728774525322359750891974895753873351955269043834637826626006369203380732374810751193845352397727776694928253580918558597554605073189619294447714412996559095761146421081914278060044098496404361666390514897464795072230211006242004855810867532478573399566571147303975594338617622938541475083457485414591197917005595879695503760852003288814092155096114907929950288388866509619220559916241288092123422451568551317720265994950334112822040786491608506082390031814331309348486680978907846321780132260281770686909682878124667281283600206424384956033548061456413945592823407333066400953843036130382701031668801359348572150134505717239102999491782899977874697883713931656141625463686349100548431526179503986731444138834645620219238090108507259255163387280300027227810081549677949959745372584128498061221314940063421050256407870965289743729264143802628422711604019891109844000703079212516093401807952667740221921153811866052939373191430141036109562298061337815562322207794542345151042910994755479756926902623858034570905831206884472100441764099036015581831148084504406642462206377274530609098397671412317622816514864011725401076223352104868612024465778291006411008763776225999052791645291773133272825531337106858281617777813290847041477678932084151555701202579042411775436215261299904037094564476806780879518230408962935088013013274128854723067444642470399047400589568387305224443929618041990433630474515500024594356166946611773101764347750020659740558658300194174837368910229333529129561653590933338833367943199121299506020847666193142219758223926001735790289417673357636875043622540452130638689058859261372926500178581440238220353781428724268902778422081412887159498227143771093357949119233660529277771525627024982755133913787777781507820096136732500253364511067989818884434754181333152755719822428380696781824217695164656018996418359888867320200849120991728835327974218666959270397110189284615566079042697581125957200127872455158904638494447138179329421510793435617806221950046610352722981092828903682987360197175838835980660701846418885757784938603699783764296079507293839357203295398944446239039107130729628569815784897167107652009848445791334298126073946769265537448505235597032576063964573973585098369067801173229815083851630033460164828250902265992883486581410279212628936697485992410043954795240325381757088686986794955248316367540792906131204741469355327866470966354284649884109697508829867910649514167601985935275416928455984145750873402331020302562390919699655557993612097368619236161316864449859580542210793000938189660032522766954999347084110876666855865777667553201144294808785648935857133080470519966172103703854808245292535699416792926721095251962743815126914705051316375405031630842578951726699141018291382582979523863311126296580754066639282577267243001982671566031902548986284224276495055658164495241837774819554122035141796984512529641336295141983747769160405197451687399534325850036855817545494821089435396890353354825794226154236164787271085562396056922146630861812219100342053645671231879474128370650532652320527430724456971603554707929065614873704282403273345633995704611785633791443881253296574495640234517436095440935108101921356272758577814759671628839768848017559472582512939743784004000795266367263618005315365534370385797005359181466514071489835798985730778044783519256723091452936502829034894656977932143328790733834839346107349666313609583377708135036019946739593091580159013985291644475459783301697581808011479903592021326190723034627452546472592836897331969919396117097045842311179899917093563665549883450793323619655794045310555604535983568437251798280494015077464464768326003747422723370214766885582859768061440469920492963701533959981462004971735230486921976765741979023305690146557262910373544224114081999319828759671925802010907743898368053504376893701233350419649980871905463164532800815674505941481462582703696151204742060602576385183619734178540590950016576257569444651981795042894884612951393908146898934611755778444831930899905224264630319228425593427128128672792800091258730121395594044431187440089027323060939892397372025992901583543692505348156849243127771968510275375688189784361376953948326241911701188219787837087782642801504625835964574882447634704523606567563451907871998807624979006359269863432422882567847438172553410001697478062943889517464542673623014386764477864909825228079645873301705214007624776040922638949351847106311523083099863002017225769722728491662534895884444527633580352952629933036691220385208928416997221427216806547410039305243611548766318675701265406128217854110210789107530794222033614597373353229980301802671587485609438229064371556521987865968869605044565572525162494752184637359232301316098452015619833830336256847075181828100440662178362787250925277392925539391863364543281805489506071252601985913493663508559577288681424369187321994273655147646230753341507741300346335222630919299685388450185444823492088730886154658839126992079678447729925410600656400754283968383140748334332920475976376164865233210861540860503182211014737383117756803959588508028679369696274222208742576874660611907230453522730602664099862753234881318255133931627846194770175552664437659353750654504761839745895145212726802552186019332430840168009453902950861294171446543622330889979058579841694801495931799146037599776672319616894853858592768996858306862366070563313796238865162638984313862801576760436969913504491300589038747131240348715090487985432126085089748011453509092737058744130694351967519079589757695746640229538336420378721500254248042855824085865354713083720900868142643960910496122497851489490880287322604365484893361698598668589254930858947908176348132887733526594687343010647200570079002233183453156846835758989890698306603040169947624477163990582710188393299987817696403955082898420230162501470453769161619981112688655614617418315574636123363059693324786455015834782703401377774322199944603427727751709508023407057818943757618946217417632660159463340446170863469584647094392769375577659710421431068334407758356444003505336174497936317812275846237958034853209918864118120344199796788671596895399592410066828005745670367440791055917987819130705873628224936195308529427757962371471112422813229300520855725241889526932525678685249725478183293527988107138770462360712535370945125729118213825298045735285015893380015331940450818088108574609606672496832041888840647611720396769004787292765985117910090938345532970559813990748722903386112164908934531402288990023095969840877587381549647064567070106839109977535332308730141530999096121974428425197521431552868024695773685543674411389821146046581157974579936139872884989332308207507880378377747239335094546940581537917517533775716318865280003509701861274562388650711130492979542674036616146965326429815259172909394752705281311968159162024099074438472888243610136688010360948231394715351475788653112308601341817109097085700761760771469445949904564526027658996763648927295877769508865214959049822118484079857688958864074385338550707243780173853894320956553582761040619000631456952752476984762150542807812914572020104964647579975791947980082420175501716582542172382122792060916302927787151570555179290451534662540805575491001928106351731272384315651967972527774646561492738347178192125371464823398005030042038617340052550068031299780781189381440185367593218296308528199524046726761102232348233775058692898966954386681576464609888446421830202173918502409766078872872007643881693745503563715640655907065342023631490932185513530549464242243824939457535350327425353839030789839947317302588632836761562842854115125143986004067479169205964631585616334698534674268593259979694154191794345284206643398381299804584238439206249107503252020061493654054207131278577357269182258456016884771355979129701445091696629814976107532046082631169376591328605404970799079027529307611953323771142683801985489708538099579984017698780715815698680364144862557832368818494613968018696673429992602716420271075104774552724225098065253354441352376154517178050946061092864684457297006329686601013868890115569722231092026066037316095931714165795755097984811924713386150445277175378082070778228347552499364927817679781989221878086948783031991147168647544810660404101229933078355942097253596144711721740649096854437266949629121856048551451856693703361218064607570961495355635971333420292171612962480809013828914964558222368207463348839752747230371703366435666269253682846576844768078707249880126259658669693069211044907035148781963481748590092611937136406422265237735262810541852066462722977641178767474577928719441916697986776474683067793779593554358026676071651240033825546480781272233204981645456015089591091280355909463891177195600520534736269202815744124084640854669180798860810729728235950531528967864842088138023530601500562245430587594024127078637489004600302744381853998301211637522951613060164621668833067583334595708218020119309894107186899776349085660644399214046117052456759638802633060731158202048195212799950095428364556710711458582465411071796079547520047953806326417589244785108478307532359339817656301832681787713479198529215733099829334106000571175845512952928695684023127928593629531472905089619205493379418181518727636213672579206793022611666240721883418138764339825491859888871974235684202530056937221792355792700672106966102482169993451970923680853854298728603415689474715427288631262971646862394910722409104166334692268164514745385865922521065248025513886419061924794953829107067144025514677464502000807233214646305963120620315241191343369396178947637407223909113171466079447239113998610996187794993509083098452542571612820176863290352628240031023150661524711886217616849333376492902344703194965249630887657614804813089630203249835352475885034685799866206847105348869339769105979078238531624934037025672978698996344904500293515955393223460377977444830961699769108646144135086596759505074190365043819545725956107312399745449253958317038733577196929016498614262058397383808470534966502354053353242447992652649500877684044005870857572758100252025068529216342236727764058518477798245429531500805692786036355005788072843559996466901395823856046661518472801545202134658150706847423564712840595305223378724538795485571099976471932744558286343714447968681706988738477791647445524127483909147649842802243400824218875343221721360993191867223447685334115970278503348510782649340861461158226319167831630166006938616860898548655173709068083753775722037120087937113676690327623598315900621136755718126556813282640405906187527687162093944313492985224055312579560254865728308070431713052902812604283286795857577272819093022586078038658636826858081481374383669096356238407367902842250780887117994224499397024081466892597300846311849201330090582566679695588033365265953402319223029376516072199964676601862209319261560358954328483500066630491840024359876611652049219310894444332519069335281625360518264841401146084594250915175609868792729662959430220782805728226516430943675636421920237542385337176133243798187333750121857680849096026894797037445003025869810373882615604796256932153164258929757262577102681980439241386396555957379594066017358758349135204709726422494339787501249116648809047015797986537341824696457757660156226101831863057392025548151759131822375352597373642163118776894632735453717277908963014919197215230754164968868814224176900894219444355845565541679041979409229739567918552479743055012389379177959240916514965880251657486092926552601833847577155989601789102627227712909998312617917140503758651866564179087574235841488582428352969582460570898355500142309091165940533740799942188638365381544257299175491877848626581569014312354857103613910807762652378016704745811330087271629453756722526994899689006500619763937707991739694962612047331502607255033713242600281850785130569191827318978465840036157131718784372347474542506245748606201328625377558094407989773691259598602976312526484580244407287521688064835802092091034382764244594781983271533443305379247285795484390331862464796675478927250550764587700684564352554950169424298289640238039407734892094884588998968407537430448316318828883182743636568580681030015486766462482411147687937316275696420390993730352787503186069929501470383244188658583452380491503100830587641487570245135749671789338058728465461631845317711677983005585927761754391399267118061600697085136810922780028696460872942266568794829437130876154782074150097885454721421684115311606918616716304826165493442207164026944853561731681651317476071559922177802865029618830467661826842316156418304075363319169976724356977794857235563041657527699984196426355213822110907828482567635171659569339579698462278780473368217769994209455697292760733944642168484348468082085367982410906169646129285106660447135153198200790138753671540667853785339444709060125569414491787392036359595865093565844705055717655262172475323412650784949513752040435920512277656812565489508124013295698574736749310236307444048066339729308174586494549169272107022241538149509735113192968794280729758889019781575993856953168389617464353064784065141181962011520756833704653573528376743664394653572207051217585555443824373480110998430657314056357660885809311515009247093088314010328786224500111999861751103755962054858686539733387674499584947756644170021922318839278061984107649412427570640906963724803351732437421601190101335898495383927766149908934137057839986955978257843706589287102646429535141556305344916662327102693050512787791198951994084838416256332251625852939786758259492163520963651885775010108530087576896886614490868349062632909814938329025401535568752283282127427263555656211085023645595828299713393155670322244698281632013083499427007727985470125497742586052080135241476645101292643193023335391047968005340083844209611938172105117118356447797444912520354507432228945556165671123213058266560787210062482071555201433340050338553789052743442585493300564769132206050332679095871253117848903725409662580916661034159798963933281537012725298665039124082759566396703757933995153298502942407421543445583105427938195981454480662799903913779969918978850321359628509513820238542139724957973337603121334833362854778220849142834604783044893651349787415226387487134980306874159053643407587404194373323599332855934802228197825659403924103185108917444993241089143517013119073185985015073098257970053487662024406372671203083362030076362248225763510897939208551526013501162952074161601536009649301822999758831310855604029671373805908468797551799297856037368252676766236451170777760557621658019317859490144110531562100696120462745027518798266276091050667631818324739270710179528801239955413388208914932074911929748343989231246842567335505484965709770360615840890019809723787437939656979960621237446073967882267675119289749570036193825624449791748309204384331133802391597032651747036249714931058002422143276022255541112353578802933927454960347443212238073962642513225827477251968335528072301223439262753166040734077386741872173833173844083665730258790369452347477649156873689105981359143297581421088093427399197204301780348382199173947113436064307378847483627833189210775922623390262100566887170753624404221433765363951117044884005376208405306705614648936501881756577357013755079046999681184663672117739529232247254194393016541338205653045834668933867557253522628123067342086990492286790101532886359387224742455045715940975158687788749088834785146173537528985649690703031390309377390156495379704970207898595888198583801187569458415746411771771811136380685428155012738014889233029903458243465979726069142566760929536410481670424701854136443145932774794776582150505043358239898812773615614105702437973650360106282736903550998229878947438843177974618495422181201904273480488774573931535926486678123754890823889312180464610298652897306590444542410004233677986689543297125203781664432940300586026840527811562840106036636626492738369690806044034530568108399620140340692089964783347032887308031467949841421232849115715252920110955808048281507920977453736212792926973985796137383183974495555046522739931790736363315369686676896034332872579678449911250030992464989969479385392774324238517875758550800767685176513954856382541529429502502018075448770087616979839958684911355444773262985719600929279370705609780428082811281178784216348519654928763507632617797470136363145870877017554741376316810440765477898370066524690038084177966130254088782513007819572221583104463294002292312641725115239134386889743182207495207970863096689506268034479102115221553911438687396308324635382132592493340988301502275469469068589062996977153214093403050738753318443555306765344605923274266588228645799056573647361497940927555107316316726084225293292659859359488006183104314703445833298899068131007714489593033118630697598676441098690259070497115025562751121521129213478961752026840105957078792342023228832158695566515120830840997020483725593758886832544374241583483243622490883798754069369793035919299653975554747451420905783178075143427430744472589581648896767240301345356136502977995892517762386782884443076254121727166739795877634571242275387384132631463773313205204516052014425921606871664662421490770222139350540612344517438290793052203460544951155368746565903686602346628636376351004580148487017438642462694613317308138884664472925141595528714794557730960819957119998676191711348719138789065883631312778613255908040056901769645432633175676186850034051984477715551591012723890209698607413619328230166166475478838000132661726029324290355567940523777294732230530889793041694659053487884855606664667487172694505913414761932809482277162084817645543244326983766759460747915723194525501790709413371045629975723929561815731576929687835235643860618045124117433451387386615166848649743690827992917437594533574751920193204420366717123195503323491595038241983918806556553318434694774113503246803965820161266144884167595510558156439158292952723941567847040178094652741166721996724811174828517548759975795166336866973682193683399671004716666256909967674459827670565206752545784152076411309693428796735796740137971362797231993694254533603046567421517051263262193710719280264745435033495403112219371665734784000396771964221047218613020926267198449660413208416036122862928006626759535686620441177719160958267017424350705890392109735827422036837115474023233306348687832164926704007046881392533963217284875896265674929096080721817100051572380763321164975850472369050274764222821396146044384471776546181883886998642773813652930690130428083578355190472625516251990859068786864980764271139746475273541288299148123579934087221146450122998961767225717710071661777158800159976179867026875546672818821698894458982821988405287122581848007605551750221454222816852884245763219693559300938473788065813972228471185413993982509446115128839802935444379334498109695435676890537464015890734384721481716341885826990817059798447941456003489876085409222630891720730363034992906527404363397385190084753476198787348239312620830472555078929263090414724888013471878565532009762545364787263897933205473530737903106183746140682117688198547144810816720958295299566258690270141961768637065063426212400717482146877095345019273213331988449931655877780478144737485357832800225519480722393518945989759499839572366943257504785132069807045828748501209036132614255453148301763789268048084070471114322608239594664685941741692416680625740624793560590862295253108373647480970303784911663498336873577099714374921661787721608990318099426528178327817000502640159205990363277109511957697801113318796977874917883308691999516265696730505487964108249823119538061685212251850555566352483767989514017040000420063738662094351505125246284182698572645165188207580341789432814126845041159925438012747047529102501125810907814225559950085879811148006785109197959203762568757559215277847057910717912582458941250952686516357236217199887860196323291034120126319679076605569035326051534933808651159314305949061204593303417424310914457093858707480118957708580785483027363219948348154484848519450210427534949934743470749941388142745168978167976353413754867297845148035486610634260651591444317350757742825482868500339856167521209645328188241259420544089170587764986396792907980343601092505133833209800599357053798408664538673281516362328024246633399289176599013365584280540520840704475934557787461904069391488269902670926855026908280701982630018480650436845298009518901931494522556284227307938667877620987935947667951374963400277629608731624398026243524237006184874753032509157634869934847218475229455083366330501890808084943735810803361209914171216871935110134933334549205971405151776331965673371482315720673104478381996056118989174175380833291776253730257813901429442527793594569512757133461917803916003090734726945146536769223839031666743389669949988273019386395960884342393047177984372857694970229404430327967981522246440450860039768560099766738021291912064982823973876036004580406302469261848281804378050909145881577014331262966914892447883065693663062115036572784435466617193435773666320958088268159153623462613607611417707870807350067317824800233227276819542501205710552843274324281631235644981028555865924794455825356775225868610058017213857079689592528063650427202268246534246371401452587122325713325574415067168633287495169611808034975329689391284907533888725546337529273313551071666742272229500814956813280695626875297189129788342705456610349523067352499927640798554153002788413962589037968335247120833344905184275841613349161572729561328907945246756892444732380592487137510689975520594949725868409135239311791006373312386526014994763334309162104589615017368058623373129637775793138581889018244711619882498202799226458542463506972491739652882836227346348134033993178701474014707143434754342158897155399978670589023638245733197475286350424472509668173996423612567575725040633894875143909901691198615132197281549649296568810989966356314965965774308197524126273763963085777263658819173369358696705676469560591863474477464326196013754733617444860754923683969712354102907260882671688583945886172013567015319527108621784417038737949222691233995541411917171850745844937732164748538894970512121210832341769212106050590760467793200973066291078576842246757250676374279561850814963918146882434671393198904004953819906693964572093699907045094584009694572216864101297388505337024795048531867789844748908319027205908538069098771707574715801278847849768950107160155852217870499835236830168161066475449167340943377039002693168161908726767980867830155571381358272908804677527181728794816438337502680936022980522391154615773478846851287838501604748334781018485869337379903199423316453307025065280212645033646152677441982351535566426939218868011631741482000858119135443347695176116047999380936135881911749693181561088414500078701228673747346551464215759009578797225011588172600514152453957412402930705552478826634888400308633165860121343169506436570688175330019673299889598147600360651728678541680569076942230677635156541931992325352868416452258000145789937479951458161825030801299930488499798181138674570618476112270890261175192766690720988892137138762153050621774911458818141620004358106033306511347320969057831252835952050317824769796192485276733569452776867533210544797536715519587264599134878414662071651118626160616427537608739519564840466105230279133514703405008879667656995184552347684205726280772749706051726401077079579792373928703675489504373026675911489279556998251532098292432726899783689562049134244209576217089142497474655759328904010217323258296918485600994227766042776819670868295391973904392478636556912646567098355078841045211234596976905930287611408757090849010897708575800012225874085452719794946429389590742384937479329440857632849850158356434163075899414755631655049704253269648902698814279914371081567339117671511847375279623278278017793027338844022207923021574711439313966386568659508725806976688249834909956789236313966681971712455121031663614439298268592193704876527526720561154208929416197424097214406124278519706030124163301966059316913333606165257151658404254138089728431558244931827931412406258064839021702597005805457683932771008165936335725853014092143710402526869969990980173034434230034950972899597120242083492124093479864512571448962144091409845515529271389974178676784924344559334696524589534135617750909847287796960158362859162546157693535324012946219583221760404091999607709944149798393712447896363368922901184997355578293231751182171172684618208065192901555488869930072236150060921996824446160171153738635245773452158238439758217095422944020661285585284970823472649969359266342701108154113206281547131095604128222995984655701696488725736099698345129674660959559393610990999766652773588060257998911868817920180259822919091046813421108886486646090333687184119939560658367597927101281019504078748539944667653808260018598751250839473450149489123249714779496418995237922981636964662455025069904823977527894644053666017019845443966652935159511727565773058319044358752654192359362979444093168553201771249825817513221197134005228907423027478214082277837568051210026078048699637896862865926388740533990475375829892105983820881333082587479565127041612389837892377807570757438500889985624005194112893748278883779961307699383888372253089302571586759435320380500720742139775220553884198342300180136540629111586188023640146155269676641816877549716704443734237631936528837422610300305400735589524587112918622783420159160333429377249239986114501734660900504644089591775295024486761689703033203264394028675285996464847121837580624525598874168938928033871373837543805459151477957773011140784404363965862995509086701129107228059299433542476756845564232846509443144509940290126421110015522359855769634925609616814797244714579109259351124404337860595422983814447616341852777028708663769571799689973980794323430256783582691565669629875398691604665202372851401660955950502699644243661866634358839782406569867241273806985595480759115127914413397889865443330731575141856319555569691406360892473850301651417270544017860292036829958363031280088955210216547974236762436649111187501477986375752494734179556715010429305082206164049000060317148786513157213590340265095780358792496665067555134711316016618028825492119153182617709050236573920178762741137346058774189186437579568556549939566133355366784167161434094511572838904610205952471382384305078744206684324979030099118245156533108637446669238821150750836312356214728159968961303773408867811484605113706158968291732259934728918420307561896653868949468763309638741645736608896899163852944153001909420943100862981939386275384006443563054188915217994105428620919310814126129514365822855414691141535661602599926071351045135884582443514018921502448788491516007722240013911170896372194005737360343507741067404636835846683786160256709889822117735133499616409680385386012688596267477990333919565967816130480801551698849782033170947560239139365995746808792691147655900573931684352090911013138216032729694761628743784372367192175906896461348590288622012954921219980458153843652987847774215830013369874934444410416868746947367055896664225039167981287745159743363327422247280546551851576946745886417376689237587222463597047726334498677495948772701665935781581054877601617439541872008901872509020637705649625519275139327416265831404170034477351898952659230998457664482165767791701848811428837138514574729248624514391448264731897585759226042419494384478147184619128926747508956059979147374866431282814006950370606707829971736422136818154493676203738775852187279380422055433259259810075487441729738949190510820606716523138799753502576324063992528307990215799163183900711565240869487728081430905426720839166474518970705042151331799692354407402240331816320838394676476263592003049730034846256976698683466222967272058672655712161816386817828164090208813250671878568316681220596126120323899967684702339499282305990211399770963970564455356435635914119764215731996337925016058452153411904500595173479917529969178784671600109014206500326531038919407715718303590588738472079534633053198081603118315535965080806103332965730380364495218562889739022442742929160421782246052502550090393337259000504604948400181466510007851618284724894362978577687214255390688447777621344645623083023692495340081576793822259298718000363163768571684663018281243548251619039946737183683494599096096240661470296308838897575249741994585803843137425676281526456367495061249407033162131125213552710427579348799179206680501825880205280599290016737860833957429662954176102804719383439638275193491868543027630125025555975316671044574229461007303059708030954172962157691020182390879316758773757036751885307557550900459219885743850306476779529792186707867275910523009438234714305322142875912503482368409675360187103349793234975462682069303323431981551304071107593586679160212081242445505507933387449104815879753937878335055130323669975528561007109762967569091877797672175249626431741479688115466654106623196334315889150517722291230521770101692457407558948112089124853792672785481191099104307842836635770365273376852657229863612482178966355808850059115401061938685959379887689216033503914742040507857175218487715044881969737535652008920130144812721518666090614769138404729356198221094109258375452471638379845705843735530703605741340935688289884315433662780706937522349284871881082346499292921951440838273506877727426141955539950015844396413025969850622579872871184679704455277735020239710427905653504530930731968579686518420262966107565731361744453582796905571703839617936565181406463671086449831812174851385285529755621475928895688910934736910732042978000106651554514179802522950669074571809393475796414177534516482055214120061792863541280528261561430747199113167816660230126000201630544639645054580908073969710662801902708329501951953074770189184193200984979986339405998992120763974312091787603463247147142305258477547582338109764460593236181590128130578233210593404573138168108817228507331050210189854793377509437706045172045181287076036752525629038671189200755402232239379033172508548025386739944441514932074840558170904395700096739003586477158009631979104179739968901499572498976000707739659507015152536842412800319880603043096060299748588986715705853098554781417904149700691271607936529704222635415642723664511366374244461971208955356937260332575233212580363363911579459503701881459641015398511316945672257750194694972146731107233868205289649852401045654280399541859364613875428728563586387327659435032237148457897094326659232060374974589083413641291759872568699275841518492865863977289725798654980825815664294793134638420990756159136136711969484519316218503706879202329787044620732792281143943993399306179434326525590852593002078277356730330146791866958010355206222624753957508193100879144389004269853943730918442173985436996090572630653154517590301238719684014348975499980373110370219130659117035916540978640385525826901842528727853120455482508237567900500105949491078952399816540814283585240640057926985024719492040541479179681809557285243016442669164565488845503476849969186638554477564136427927984902680460690220509436375008997318173548910093130410284241868187013380334247698267556654102552363461283504011144677395209020459056727406901612371929472463259634542041697618413729770511411547877614647552461940623442061579800667131858005949219707531940382918614287181937765814720374511831951233396264023626287174916810213968556403581995654978813928396157000756986984194633335684093637302702427870957994798440713729362457635407846592173725676672012615325827350605328290895931275129867897166043619006388205586631992885323048983421803255192381229186373618919327671442249529547826082983328564450547392987371692623752664527880832637661480727982145482125920885246530819482968901665384604981439065404534520282414599683014680672862745733323716552891201662416130154388552814701719219571043279418531843156303124200697097682920143881049357687916689817450148858669350942246063800020344511996847303139561548365640258583393810533787741110652880393965387627036115780254403459144002121850496804055437620585414536551680001229231468419227491979843318750680585538961917407219067530141956821261577390783733566277874249414064429954579459893199546190158445162541963785993327900331730650755194665475765076652430729830368193178041215696311801297353433196055890822982254426098844016353293558229030243136914049229473031758197017824452032820102751224586239038825295786752473617888090228187085218033278633963459632482594574489024064795121458252638989225140311888148044126389152843305063736265643831928507629087110796544590936958622026955226303251533231568261644269257634334454656965534707378308932946826412643315484958168473277991648935947571342153086902883878277074299984314934532010851977802255015192178631105951945168390843105272922201731592954457221612363450714740812236863186976500775593479665333801156353789144088121615783921434286044969864029571731444866140767327648688290884094408496145398678659228721198149978417759786235817590029983227985410395794349090409461394264631465814710794802665121466747528246531522218474384772701977748103336302803834160551779891664706742714884981318046741715038168184522330896591190275350725706697937439306937361723468848458135804535927948752729290161769844498132256826669940291723722210541292200395415888488345527070761321937425904861056276984540158822548022205860182520296877215090461826622205486470020194089082057963107380327621617136700910986015552123648539370015812334423094281644229118961567032353936732605617555291287943813866710617966285727498208675079566398404755627553874471422511452571972677472686678103326912852810746186397501438169184406448077730708743701158029006711624827428592743578897303980599981647471002097840730924346286048365162173228185410904223682961639704652621807725233449117839815971988618291053804321618925150584314588968436167336200343587683040828764962894304588487272807315130823585455729821546286057175842980557532660447302508752496621976887640191217954920443015877193867426327841941500958885599512867237225404300972187690945573166114675805456932054429210087002289230651267547326419630478963621820832580362586688003627346252670507164645382818678542403973816622291313217151215502640662890171972603262903967082249178196910417776064094484144168733658670820506963173297879152054444908825659856679473823921158900281428777155664654677675514734329548521890255992463989238338720875840004954832657204692358115736311919246677008614349144813510935765386216961868524133740866114519561718668755711920451187705590011431685773863249042561912910999679830501907170807727140631637964324937051645073720627820037216214080114647775830819976034372870512285137663600665108805332843671028857906256514045394333056020895453378006231394339036783501455710047152832289663248628010889317935465643134706048376649513508304020023682735910139479963896310721029668185643861145559212654669755969747976298100870111467686329033812146518405306708170953770787008082124963475110697732425753474741342781411906103322795344278151950431345878388892817978991693705102487027292074037684163579194569693128614113797541657795413429502505627789981087770893228912681466364766884559236295828889472771089301167895246067784441445975677242675267563925487884977956341242585934449126179487582923330669438400769114113100177579630236131108450861504573197228719707946608883235808350043035808648975185075777398776942409391115577715738431249769052473907296376340676758633024767676867609577841699590203614760166150776518166233309503820326321117064851761781939696328190891639964138592632175311395834045054848287243986596163505549984227197550898542345940317329065957156233665849524192035472939644334783216782464215808885408171916787205073100774322984398602408145666198601441026264742527211406637834661371729971483128197285728261638697309224177078075341900883873767744691958625240029331963873118673181809512211113061129853058216244592371234742362739852966283636383384523536842734379676870980668501158808628046160944869367052054564922703137232825592445487501125980819138463469743543072260736593013392831273256306593169960277934420899080616211988884369117105855479702209395072086998717001482751854760305296777405962393087622267779448881082648098851372141044704455916892419437433699699255971519487716676498489502357564670080078621967878162603140841466786605866941237184911821306721425184574524128268091051341991557497882989223904476516376615011134032724998832098506046872694821522086697963945867961806925885933245558113744554936859770989058156988360797297858615710455566203465575786702352723366200295511138124762225343376086951684098514870975908383594338030498797358879516397568284526313742046998492372123170490229594339466412665294183049862956836254016109240165813626076714743086428937443575714514598477140697155112272016248631166829302820200697508995268062447586626314769772779190089565729075255685440792330070262139400433322220321789085782957798495131841922255691967068822591732161303295628070661643164629572076629337046329863183209923819220307799329884685047417349257565193919904039467837561793430335557090028930762221165670547963117644407884007886871536957403997820769673855996262639572229630856043893414328607689372244340181772558716798042995267737322097276063222565772713868433964798104720662272548941847330643672366133315300767234599905886164611108138994692990603165872253695183370762596583142048602912793402801744166127055120714246546937460579197467406614434755247321306146139787066886502649443485756077257901182701863858881698111732070539776289919130425635713267607371034770602684760330868398429908472807109329251979721174336844377053942821840656864359923178120840271127082944109125325413729270496150940089721856071337833624571127009852419854912077564991996496784585422404002888229999998233911282917940592865406573686815976253637452124956540597525976714992404319445142039818686138801509066457813066795673834277355572944873369737991337334706125343828264393175016518506369069398146050850128295188412640244850925920048717064490664932631110189032289884141992864855376391227066476343804262786869035063834646020568210913100499442109578239257993273458269114834447112416704427899157278490593609674899762595491593542375628113131151199769310021323806761032135798606017066079339796582035203877289708878088051358615408015734859275083869924671994345918610481107350443987731841302257673934947803070282044833353600139189409446694924130173692822198705922481334011906485907525800745788381418545057747918586792176824440116593629919427648813626043570555696402270605293113416984062364776133363828915461916529967758940701581710145906339048534519169862300645464677679579940040305657815568906625757064783080674171550763277484825220103759289914898036062030489881929943503937348546444128382314398541713776372248070362492731889232397793860967442854994143230923484870174399065505250483103239163562421297140233109504625608177446129536721790158033644558706391100849849914822359593525239041826929744863742400145191769752524879195483357171180266236647774546824099559498868134123690661478647296521523531018297978653987088757011798708798996328830175500870381727718138393460358010396124997426354526925615913426717999779993489410004357330317243591909895120514238320639401153502525466493430285506391506094182164333881532153426736362986106649463105470931967069867453569718762777062954836820146368893677377993691104815459062884997831277644611257909009543059657063127282055392427020002858695759061334098149470643804443080738790385689588681192284503702496988922579020727057245739463650794362555375378063171188468741410055408114301714478825968202771942565059698884727341087561728188275897262396423202690632527039282723468280325675133847008955813122584336685288669305248226013393680043980234008505622294053282357971389335266915758307129537366486135156730996986815628308198769927797854840438315938558520791227787798314601404241186976289305794224142412313331290486777253237791462231810478389736287448277843356095079823031952981800947488546112944130826923667651796449557066727578643004028415898947283713726863654104304506613572274140546923878041523788895785870182319338848065704311528173098230899048802391857705073091736554557849061514600489307157488138418097892052900217898392969674442946625687882549422793081677225572322436735677055874897958708302613985565995569298508769671497336523178706381704568980008760537613880692441022512272161668386476205184413042954388818963721330651762849054882943465566036105455096012459010714227189657146633536088223653638380481668433803906219294803451691199118512550758365091946411371019669138019776772050876891427145809138943323249160354237205548575542838782728943536126618053968342345431278855176668239917689315229304595700247219585508778192337129856310765687335476061631697494757251946717129724806194628787713214607238735083109044754686829238745858135481548164297371674920264943249457516663337266417063976313016631471521386107287385216902168672018310110996988540124556984702579738414763929320969298978548647025069950142239240007543261331495751697728895222165448130734065725872854251643351033497378855673146785221314793847825452232339924656677523255331800459776473248009028064829598910835665167288064726292566426933016928564035792564852281669812986411516017158104633282268766405630128663432769692781286698604067338014497967898455124462352907446757476386510816985207415447201791232919224287254135733549506625040850908813785396895305178037441133305989564791175847960055597342551914172268544112131065575655262167866333220287217415520946549693649383397410660792305448947989686211901446028863782773302385572990701610206158447685276318278738529544268960423761637258293228039823655713279304909607876053992166444657651150479212766234349299881043307308307029771558169184556169351961004291269701090374260097964409930099199284164741629618400930902090166144199961960652729522528511395029871884210327635971966317587662103739124852636788714281701035866095953532848844177573817424850117780365416645627307327490942721419446315412706075865345759774922763211082721491152751511759995443274447549524572458610898462540792917068765957010989379119169099562374533273679934729833739217829841568096655612992207225138622806158630777995295894484891218290772194962466386623434985190984191825836270452550246038302580021154964149032146626991528867470409010611950066912416162339721453398901704262202008923375406695258900592360025648567520422957559555405215565509653304204206565423145307957823321280596610704059833664746307470429138670058814483175360463928652411129330567263926139732897744739220500382036160594446209131567617504989001044848428855050365710802471944635845799493701944211730362307636272186873932818447156455023166950599473852179211560714506496948858086918251197623502957179774385725667967480968986611075476149023485045860245093475568186184478141600963790865452256814640367579538098076057005884663387681290555763657337611250855155268382938730054405661155647901135330654882117930702950376605957541715968608452988559265923473507696272266655395800801227515735002344999441821209061120387347828909067504991743972017532461783547906649649819885424141697900247938457569986099284178649169009997551431463098887977802718066648519295508746520020425653058562941827988388708320426255334331263861986237408308305796508501983276182445433525481198957306579856237823167676338726721955297356475336844553918234668062776963772494313760044774379164705527833444837181257130156180743847211939956894518704077384049687096238181497887273607584700168184954424829617525585647708994835046029563739139665525400462136197298005628113860574846671191006161291226302113046931325714963987136416701213210015195444505067937107176692156608607525983545583908182492701668761693404976969216226733616579738715844785243581566986203433753594479091605270328758359458077679747247776835293299468935502969998342867031010838609809892715952803190567140484802607235884358881644286953089241311457142759894511051212117760932662006393044275703728221751948298155601827628503811860485529877457065850171083063844949689336482760907345391902734325756967064088238407035294175521275159923653415266442063325513329159147149431782725786826648171677478972409594583839688836990652286235275214326355797191574715497759282464567030340532751555032359948096235995146701493349018261839123932101298627947000292208300297139955563181477499574319939623967922607933709463542353323580190707239931904601220537963440939304835170796861925287047225658876574503494370319393743449778214213797424084037281863489045635821589805658293206086685364437965833870482439754360046317983933630906944676545955093733554800887623745352302487310313378431953470849983410166124332897054118930778694849362470099059201819027330853876891498525238942193163044569234700677750768458516289470966610744284536671081503151020318575367039523946566693105783980849215035191746338958816782833209063336007738392110610012157748162841983271013957763409774006261784235578992685090138587512938137425328367947875778154192414247133039975633812294403101405685294167935703987626051441446474760855121185624041652938258004030423493804028315061246748023151249873874262270071841726134008244993181983555596231015623188550856767192943753393427994676026141716467751545455971973290520901757806858454439824116527182895493628422832238543399712211663756645805536980988561404791158337924942650421888197196972288840636905510785428068517146190437783711405568977092617018889969171658263909633228680744766057841924064844345133389346352009994399259964617183787013295461644891076268671447796530511287351404152576770079352380016778076515021668315946286762405762565685855337681961523465215353593469534979128282737792605611307407869169282177747390716893388220323873585476529994945251929951823640826365875703030604121541553487285986176717169497894746414694343620332017916161527527453639428513150596168214041674538815906485371896864447185103517214509641877196481936164033930458631410786447369138989579616631935285280639370082933090440422530571062929087589788951820740208429982376774892408284440723173714597548425178742144337961444105747206409038518404156873370458445304284186920571612925929082124301554829517934799594174465600341834506525697876901654591265956180206258122183463278315212072539739109008283641104462670069029340363668222794115321177769303650777673357681293378885880334413691322269398504955866534087078999519616572852121081861304976193193603848323750318052404312908006305058324485102107154503655860951416768187614857188408347842511732925948015047677398576221915000170384575841289401198542686340319031199705958194177949010924640118389894625919739488928967151717957465270000190160302741484268465710522864883925930854052306594862723289807760520158671369479073902642266179742337608635233754413419797887668831800291715799811113102040500771221997433376264172431371558815507572496355139035332774261401084501467810189456233310669517415104668125593901112621641079004689464838160785508867704374228657630920090696029713855111078205123144563348192294795736463400822220400495578631531355584127798634637434046938222652216744742837506222209856178957920919691674720293412108305850316913502245948861434482924211316109758595784230885441252418492129145294606769957347792629803204533985832290452857524658497687001278598341873852158704677803146230242060496537358987828529714592198074799105071073307881794765179004544328610930547991580982159936871049827315821266628340632832538773147597201806813570675548299322418059866955018603006488599782408750846245843518548345248767807213867650220937861880234971508679792754893422018429576277327108385443117544234581934249058683881154826211403348048219291398390844116477752449036001073987081015515030287247577562945250453652209731374164454843842063754773638903359120065928082051663380262807728487710117316236468381417279856910814938816850707549094161566863123464457266132150489087338623696858192509083218446197714961051053925821960397526599368658427022417368334647569173036646891719825647265785248326453675155741550564406830800553799401666948130981376174648315026104660675658108122990587273845446307998606466360136691350735801754430956163729577798069580600202304556498589128588620423789333075252701687908793873570258803950923839099476189197496258813163210576179323488272444473967255101542060336110777139013509218071460285688728162477974135650299964760412188653711421072100470456368783667798159298348898494574260871319336875348956582398926989091483561636293464980139798232718908223634038395924896067218972057168378129414261102813864561097194624781906001081823769952424326872285856991036581453915123414170769189921177881623349380615786477173320327925488598957013727400135874445101589838720704252175731158229228249490250847535850717593959922022442673335511216862653325834533132427962489442415631320243260057096118149920428276281248941109934151358637959516560846019912197611188506128499031132528997513173382722768611907919406709175075354087048221517274482501119954280446837726105602620982078575688819789788477972827906095627763513208699145399614218819825140958851235122516715629355874872727104766871249042043388300351446330903292076372435245998995372899559587833374016806243131157597870467676707539249210635476230123977040102310023166386989518840715117799238360991437059448561934797621807521198777841556376927365001480462315152736729150967153910486856108010371547293485730633002316733511487466909944900081161701873422580968579677009869915709133324732035522926727245987081928192457485006930233432292558747071441480492452945405149561419163707276768902158449120715391231511075060428700070171383462251296282358935781264481463047852731640281227383151181874028714117174654241390888675126568310807818597185823063262120658669231420464259972261840528547869344327016208943914023486729894296124639474220682559722133644719366683733769482405528649479488087211734225077958215858602927270228171367589917085565715695493664939562257773585421433640241556387507469954652908824177059201052588430233042557004611835348978461531432017487304979151107155335506386058817533359233668566523735607509118997535788156251858752220114624868451130596200704029535442202714776148002000443562474096350185138483153183211183885161822153666785632940006487619007568495715400705379097549007473034805932989354291992677544935247052683839496053232397476473836108830282855041148336758667275830228211333043756230068348495930431598691641754601468739586331042924996214151115819642252813230549263509261630968484863063344729715467363224282512593280997672929637724850660350726701062785533804293700260139467062992326526324547752334572991781758544560266317311305432093810156088875276237878702105313480351005741683908345640705525746593404957981236323175637058961763949224837145401228401452828159555087619476727998674001747408764801527838082254611061683508326202558146718586595484828922333770182199479166551640796552136578251757102811260480350925092564049464620258683812790410980453155107684234894316344276044681155256974247570457888546831395299966740498932591682453731728292486181372859341147316393456265621891530033474902179756433826754897869326847509472958809384256165584878122124142924091941896953145242042556651866010067225822328599478639952956424542720033867234380771316651714534958608844551929570849316501629672018181929407383386203271917040941674047665672738280362716915729213433066157069890675360379819565204598470561715238037288053922463980239933687780113154357631233942739377470717055526832525838478877522094127065890272866478125544529499927271591886356265589075592434483885860788927894880287290149709231205646869914513288486394248858904865927412349970693481185965363454543579741048197176563696823900982516038108690345972361282710954017633784613919003572339891382449505284936359954346119360742410447473577817700324381217220999587740011446011516065687083817034294949352938476682164558530988539318349976067910819065000571974322147606712752082717351980470813363525412784430663201131413162662213916396990145835717618599897476930538664181426488874446579942967996014852549416601797409810443493032661702399003841965461291897908155279145683741888004693527151066669404665930687460847409089472814433030113341930068565906521299371797697806863810689883212237744478088346531341234062084646246460879753384703229305297148239297203874455938328482160398252985277983612225959891585586408315511271514659611274470951453680984590341947673628834197186860734492035681745687342407177373011369048030413003791531582772063425669592064319635682878243430690975343986512075870857682875182948397024407074214572005635670471361935221436167626101997932137571629635063467446802780690112701781821050266269802364254952717559140485661979135327225346157296587908876781205459405434237680845863162266872889160883269438212368593738319666383131152522613823332653512808868482476862383719352518482202647448022587364811135140613876162218280419735805371017955263970359272856960457922039457678954576673936056140758355285965662336631110888648635878017343936480871972828311790423891834698988653116092227185396158149959868977642576614580723383016808126897500847594726138107824958253279960695161786735888389438182190135816165562788780552142653290882344971357345569266495160551997506423532957388866887438190391275506913574644367129041148307238952484563573104762710460726746655359256123242156476269536943220817369472367483130593426192162833904467133654408085059724147322661717187300391520986142701633590666369074559580572518462028721411817517940448825455875838317026547732840092093607021575229119372903365218654193745508502317964032818283539849137531626862211203166629995940218651847480474830580655200772876914891125934847694115860010286956205493474342588918426601904453908380480126769683813708516460036072392653024338764889555287071303398980240693844045290862174777168681746191061791484014674617316797912615371962426371342345836073646889378943084977474744609925839325748492870080587086855437553500490391793420949843883592140738128451012336900278607139482810534511099890453971421547237146063940138601105212007000112510007048718932165378431469780600071768054524538316736378831283011927308541872537722260547069209260900799632001253855172362386266124946775421239526357260568253789494453694667727939914087317070080553058881799466837831784629566563826776113985218672766969571358189365093635539389429201218962050577942357766635311275716131885539254513668256514687700079367488371347440821452444083482898045326385722362508866495825817372970582207874073608648858698236290457402824829490991533071302775716369715225076804788609219169312393051340143080804651721757329038513730647359170989493730301959503443531419874792117596082643180367979466889645112017571976174524477158263238398248321425334008475844570842978238469573998160874508498976990962850613450132694406446126939001124120657062852727140347457200708563713357412810298319595611737404223981415075417772843277808427278833314138458281203305139114535740650336717289822867019251066061322174920658036644396542987035601638448088969320270181709258520549500705110023045967908350013835181582611474053260378248467233975031953943351851151489881138042505381926251009671233674887372932841737129154471370924936455012861276027667304835588939380462357268795809772153704897596478346175523060357711878021872444205375355885695154080659073208645814701892889910052432311592694834807975447136996288219720465896475269153618995788503186993204812770624792633383224441754229904481120867205436220173549025906283710366097036359237087747663952001324844136265726216493455719148453255903909135906064308704330430504794150096857155020856987706780254531253832549586566307519430555418684839318262072304292728046020502200370396647097757740528082829240979979286557260870642450505722441357593587709024820025951124032023654330239275538569056261747202228663970710412962870533787283767387684463638634622953043063408030704049137814668577640995305765916873682347368576249543049933603094886928830613802400248673852668324527808338494815343877848188871299844232108262878128829126869920269013654914446197549290069533870524260169150934309910895812302666029769689119509341897769669979019145468929151297767970635654275387139453362921273744169086910199782259914043306183238410506363076868193175667584408641390654829024926782708469932946734142636236609755403661440901748729382594428468571464005254606821089588411985788362446901661124489037946419363581347098208838284308916022793147255218326069976389092685239795684821372864070808493839571165677380098885501457886130787105832676298906635555763854150349857753444259355789691542828158603465503751770146230456696574677922897874147844106796276989372437259027850417091638591748116642780016877132912223516056033009944189997437095290566626645562779225897793897130772183973794255919194777566647873784756494344268124122104480355841450458002152046672517149616846386436492608430247791659579223883490078477884389177053234938473303435795120594343410747503993808465389974354859288325721200505920050337054033628796888207763921266609285099949629709808507522297247812925196111666212763206711013069033011497821695010211025720071427369710310078949061887365917410412761799071560667522266471699131083118212995384351206579077141398084785663251057871616678367910097945018314249878292243571329654915677068965119045591565596451722564656931937607591248478823001352957503428565829774911552292062563208960945928683754607208142321081275563784268553907860902403690253067927323612188455977833193369563927222310333510780694402500467653679674915396330244872712024936677623196042975918241193585352461977762145001161406664763812015210956874671833818803299845575233255132008459015472318082569793800015915363504661442779681547413976683491043401080593527148025142164064566520219690123469591641044344768805420723082404901431257320853504100904444116571458932242010315495983131149519809438671071657031686427382486780122467660308639064626038806276833227962056614637693672146597328103697530919266549583877601130297053939005752149740917247334704465710516906614511086357610333119743397172985345788470363074171970093650660879461623582408186324977109623907025676232506466749665982791494483234245018977299979167150696280821215200921183979593650229241641181931782580514978099738460173098125626111595692993920122076773553966122590008745799926717319329263588819994788346522412982354592841490272695381146395286813328686048155397976392719191118007346903342958881414766323802445961750303140518579751375203931262004030291007873739917450384620102482449756595180345184026466876671347245189175816307037848695455191557574436323022690929452931028119137048698434103475228840960472659158214589001138592219593655828177737885981366883913749894639998615852321668270587502900757457383256012859458317285599552860253452397268823814989243452340431887207819792247768785623908893287593435750372668051137572124573903822136377559709552995404060853885302311563511798484095539021394926733590079853095144504202089467199585832799610180457185746435457523915245039558385170663337657502727858464559218631596791840334103835266335267738354140884264021123032660311348731030539380999966938066216900083901498370193669903805697415449433717921021547183898144802110105182451052141223008266681377605375263498237388880148375722510408555638644036248345079674187424166227782227352174174678308204242373695899021100665519289960735321021258633206097884972892526828805843153737039920841642379025019967121190383852679545145970373686352250781914549525733084202826423918958139698701685148506811551711848113400188920023856064049675301264658223945275698916862930539774727374137410848681849657310871483241026890139257913077215913302098125573313608437084168286961141430651465033151188236738558573042265756363900176410176567758583216901941150187701513228076642499220700124638241805195591888268248002529197243213126318778501225527583206880661188941925089609472029521307793596357061312693958347865505374770686980007962704937896895215505544400745279616059106110765033978621688695378570416262942441451934918810653224804705502076842882549107047831103357336984950597481032327571561385448087442145039035287965863988753290365440789114437297022963363618400696069516098720177703822586012767357658565853026053139376632744431234808290591857402862122947797244508938375898459386911126645462938727948735679021051331627347268480977376114347933225839044216730411548793349569273007810395647228487187357256867582491631232993496466484670636402564796678313529443796348710353341550662733838234845772406573021250081586909562511413478952793762309211039311475989791638898486106165984256098640775175285749619393466135118357404903481268935546924712678295503552014239577275261144670970618949840815798666921071941505847000676410607169744459766722624666570541912294469482767899597303444963796225434200937047691076691425242752005763747437100079776273033706310900213343686850971516151504909991090039969931505636134200734069673709701010002788223194209937393540559862886263809689407884233965245063754910398570449504306638709170583660083903307332317157678075276677829487076081581171321774029511960835063704925638547764044014283098696005296465213843801958606553205362052946037892447820798244628028762335568870346673042565626073515964980063268651265797009947488415397767926717912921771358813258653131867744861115022770027832852745310531715850342222490623031584890097840229422269430995401306418251629857662205916849599998288661983619637050781372703197943086233810745420870369524053063613689854262567187785540285835866019906351023140826541226713944960429875593268608883998273283655398446835350074017749479993723385724948949154025120684566275594789055041769327947110841536524654912844663717889829094427381801621642163868921993648331266274939402033792857669184846404223546675269930224939865781156841343966854878860805595599691583774989637425797730390880482465357600126923242846338558687663010512373346568956398473593092168776548139744584735706280202141052776917994297800276552852854490750954449257930898526703174986792637544986952390452136740470502406144218695162934355109740461179663058327733387828451927587111760006025170684676331322863634683419951871563135197344107749893586211821613461977693507794842532568201618614577641097865263358938869812321330421578867846305502649221594800104361587899333700437344177512440230058442346479554851391165286993623867759108566124144175709401531510783012192248923676688052294886218254934985610451347932721839661439248890958639395659447022472103164668613731966859145968673512021164583266179622094059028050491653312346263056984149163008822342304391333157176576838880712285691911742377557199833826062947685641895450430154018676075888915332562310682938470568624171161707676524654836109322417428423017703303447419740669842021041925269601768920246468231645926526321364402511916076536867775661415216064913431340093089372206604619217368716978528770219897274818433372317270933126201011304345107735095564506480569674872958290517297809553937738048560955731856991830753757786252575614192468315075269752751886499460670552687056124408010462439009525638153737548738059119554487346823667339410192521996071973779705034607746020575058442352633377802513052539299556762656361756426522870500464221185968255840828181591043184358710036210068676512995250333939842713418498454308942859934698945844697129458794603096860023782367761152489639015836583112708085147050811552776304038125973124686078211314418676541795456242962759890334756269337400374053303680981935948355162015826788311912566122696888544973067028471527592154024101612616755050251143851493868559575485958587575440884549155202625308232399817577106009268047234646909907773624463865928669411564198004563525914302029017724743130326791477590505944869585921850448642873663370143225030582358315198140305550275570490989383180323409989157981603493467373196364322902917811533724140855619070306453618784205718186684605641616801576296581690752601747526099911129860109901617309797339518579189493447899296292969487944325955851932894392298373466533111378375677041976247576029497499227644301805435341248801946450899875241965296743399288940326141645850733114600707171033634410331340612635604009548780831668953669662530474620570896781058526050212204383500334633502377199355376115778463560597334733479630401171252706007931818816168351823970904602148386445577154716219856063565327647449954786501186765346138374799909216007712076623392072079462109961683419883320596478610284898681759899035239828784225315747802534214891877279691050932915005929161491592798166994830610437552190810808329889916585142753779501556331745441074493882037213811681521344166533917523015642494581563098277386115206405885306479620423474332832055137568680379411733678855439347049520793394186370883692162213962656771304642416736310131425751396904463235171822101333745717614221228342432554351402362412239313588860757336458876403296922254001584845001127623023603261513912834442072545529489868652047059980887752063605816430193041279629413313263056369864903688184784839394967215349070410393491856380334161801373985447656518954643949286171709516291902755880434360171247930220210244436569747626954706208063137557124475046099945147635629477789704385983889760262846539390538744946310525891031896487517624134555125891940772724655970682464605992911809475373661154597077558868371691227375835996291157984185306959523213193039110111936906444768397323390992352942237172090313458855778575258893670668699817126239648475970561235439673020876257438294906589455653974804791484860683686424054419461396737759787395346923452453053738978062019374229766770769875713107287608783905472671674431146296752635273204078407597384006502977441135562538436356664255299652738445179984907356763407537288757063331485249313989765682332478774595925222581472691596161079060466358941106995211254220202794921355190798132466247618348007220513653474758056359067809753286070568269249861114255037888909736679509037443926866768765719127370747844631128170674465036669036075706136783744238709253829786189445801939972848251500047351211251906653317979518049533943551462581344041852490039209647982998303672615656475542005327005325302798532305553403166519554260876561575778201522798115948147370836263364451563873213262216820476837183213960931670932653195506784323373580520217881287001539166815859986007389081481333355225800111487939677166337317736141599876357130711834225144957737257186553523000001532384581476736359070988346037869178183245849014468138738192481735449762615886226291800339070486853182446809302043163349568756372662792935579891155150102903291717333325327601605949865856694777720849938360998747805306093096278777416973941656446256362725205995492177718957503624593728242996388968695461325940075852671440128648605082680098600993902234008392473896522424760581232372112279745121959779613652021113717559934203863987685263042805491332929317044222957432182831454836826155269693176015149700086345198990332230375236032116182034492999584649301821694883395092537385153737651842272607198800112351883623291274669801112504668669938094857190790186285245419097842127272899275008748161920780534885392352082622026351231008073322924644615135667916140400835573664065696117181108635530663504937602525450952534184555692201632250028738086746482233695381904822398458119069049216641389049238258100968097983720896328788443806823150900656656403286665506768874476026343336276467425582662142748816714786578139742621036310467416599192246659022326300115659314498197234568700103542961564723558607988083810526374271227079335660769524521223774921244458353042570569392928874211690498068603665105078237415425178769305475155976438032187196709958257217223793703004568803227424183253449766635737623523791698292231289811172374969057781382836125697218070142451220619891599359159347145479054722179433126483538583453363258213494873963428203345612383451815110002103277093640839356501753852877255124790722659133921608558346106270067310410810146589366125362026890339396714531429529361293596635557241825741828961120617703590368662261780370937817002284930673205405725786903183273443857448688564547164577184470770794011597336378232959472105911571144409926097386530856576245423621963618671456854950991321677244243375680797701691627273992063373546982746494716494465334665595842935877352259221045348686213786049476828104997868612512419809444903865728267161356846784827089392327617535377909883594507769718680188598654523451586092752879249338868914475500314992847991428759113239525200560955859944822565299135119082384053622401731944411015169051300045017247750623479367776557227472449544977767589251959974997297972082259887175608311786585254231218783253516042533089806070528637049924044148447684261019556443341931667462770071377032123330664725924885659117260757429719871968607873377546587727824651424991463496534099266020674363806838759140129386340658576196447210648834914041151732877886695359409681488449386673462358322697131309979820192072688472958560972407156343062128360633143425494628315715055101388796831052188434900982231603565637584277865351311248320157308316140821325063234685512185885342208144517570913797003962371296424018765605918262573997073123932653789796908641128773697105964595625326871586441718567258987917805458097355454021618663016728710104116677296479513321499555706221071255508486365726154596526371712635761931311279273844429568109094491841947932788184587490893360156600345271375243580623534105386455968685249051017042000443047810974599247608469379375324799392361597923201612004375553277269989671662353947779554275997721231022613433669754642771408267350763823570403266509357353257386962479528881743928109315545436867366789168434449941116315101944031081011324998228432865847567329863888914574550251919466549666747842480462128672312598334979559279080285884941043565943631731776561526303494653920284842661719458210633152539685886750761827275887225875241838676708160065352562613811175428203695754323221739820190691671278323467249978061407354476336097774839201624457095369852046714648403131269972653324026143059748659316690179714369269267930040984229820792032116674754708322674916678737175472204872778290301535421926282909558394728585006872416420865620862170408040914988242332042140030120438985498127020966032331019339532523808707151060012705526269200434037060009403532157668385107770084563157237818751056591354211469384743732122681157450608210113760152869610429589508914750150389288436657875261222719695659959960304614977207559883606482707885074874920732285191787464375059184348058474219076213624017793975565569291765316462192530094906739081030469732467939019762390000245565483998478345519528294586114253196971990684149080766028771403323452960262610855732468147438309128465890573634652668363343555172586706310392024910759288038045387220445155580236417421249224624028271933487318270937307409087027262193531118743864222565274046366454718779456328886300856716898108430374108250596720413818873858431962440893469027653512563378335732758734144813527411639031774638451470986984572399069930532047139119432321266401910761196283979601843512668338602076030390243455084884957303320672551958969191090267001593287670939764321883338755144857550704043812984525297536587348358529269952680635743148160311308742018436617183781185534438952485107286860054595560242595664720284877559150748270362104763823888748019610176784152966097425567616427386199403137041235539657657059242234902188321525764999471709989698813580322292932011855350452729328409658955285951549836904642778772176669306867757346573622706071118368402199012871295592648736598464514168690009210295987202226790993741878191626604877070869036550535923274544014829585189582527254515404783325739577149287143414912215005822787085013520223949639898613908780346390286002569743046814914142731365428600383489851303616473374192543419474283703377329870433806967334154586069923176123126074517647353548670817908877190793454182025645546699193808527035556920343632800488877816786714928087388756502183841194033886600312462077322609636878397544618815794146807677583899578583671935360274857884829402369892076873293460405755254702528047859667070269636750455403344636242308376049308681871258404584038077349647853400715314039950848865273151892321608349845760314003853374502536724617305970046005155012054783785405326306656465725802123873962009740872685040357101464135291947628571615487077910362360765253171922395545391587063087013045016797825203060546121154424050046914221159401495813783074835134631354618062377374293056889947202275976119838483859737083811922059084692714264677081121997716466256490111883155288812984436262591365089260138408862519029011402184905063970140809102120072289060681320223799413026735339268286088629804305990744359096434189616324712070478792286485027303813374309246473843995158789540248052969931974299562266394208711828782828173671720459804369247984165379494980756242198897929372920857032392379122630609654216049059542052893167802402964240638525092346610817550978437729514272627429668585060626386571066110711404474606536346463514291030177526498167895815388297415854189940826224554020481033028979759358925447659744337831937368936565476943669180827550857154296630370881838118099923700334021006498242894873517027081294954872185370852666112653220746958357384785639837119379127279348259071453036334332625447022742926174951912778377378602055360121631069543424612229871461971653556137787805833225113741408216844106730611104510269362891874977822280205467147496981304374790427874055529707618729224964477998258737323379061224715841306767662893807144041871710177780125024549875959437329379537657830359117731356421651142369277968426543070753873038052099463893896435087992014732940040474608508774767013474297473585059631218126866437086728839956546368356956849722191561123392810570756203565150538014923559602688700144781908662378936599020864369093792242308787592150813088492958964785211457963413330038449970699934503536331604513304101246277906441933211861371957668730130311886851325755159287981035822361080754956513220320293420483822330937866974806100207705033651640745919776417675796005769069911943207231623029178496966254651210614614352873804962871656361467108499450767631686208100878533152636109719524544943926363069191409937021637854261332370703334267970227424596648428182014826045814909176644048292701136378758496424147417983862620836706301360408797433172340836822965662210900596023325110054867459112450968316291878393750820958253676191480037494146192976388033654312622902764375205206485631005967130154220947934552308277442441757488006433526690144209472693803500083640669155438319052589424689675436415166390252160299670210281490740060449185456000604960636668672235688440593262959267735893384681533069955589065226534760358356278127144678232422800571275732289915563558956972295030188169611636331441431217340866838300395334986016718512398052765266569466009602495457684130459795302409691868486156192924163216015049111254990547571020002052695703971952851312861635106724974897129944307253606314665490038059494360360453488695223899797725176510893203098806918532427283181400883618144931582358179933805331597684965666023757688254403024098065411567646153838619358467462428678097613761489121527498199070553371607693511074747871930277782171843187087160968096469801676683999367252303269965233956340255285349917609754386327806126491177543314658091920748150580964897267065046343441969952587390431521844823832963558052874738371667054705808132575776828553103341950323325884754692569053423202893092319601696112045343956841545784322614789918451147288850015424683597319499749129382917257213009466412134767144652975759834006112676723315959908058579487952237907329356567457081707634904868251196974282914461949057130834367984053793464374384173208686553598524595472401122460012472959053392995177717508375469210071887969978056149477716174634191627334695773134964703618140334751008780618651558027547720240847897308779961989692247999958601077012065527180976905287921899385522056415563484101985334718021262834488924222933505673791200157816186536746609917909127450127462126094007360746018319357343531775461821716350007418955857713810396381212599363383862793327584158301489722015146483094759219132253676110363912829446400320913412734232237302897528841504184248212408186831497163686398969431089065152968070783063780258794114710067399818946601834055681246731074402306137121576717902717379490051435387075543428857793863078602162092810123217132988026653510938077024271243681545057619160013544695728362162091472904731110563136879770066853423309572287026095392535751538034580704756550952289990235627639989884269470177453014675928513165472951449518269766640500237616282134150136486623190387389948072887803538157974315545980055891394491805990860265470061625169399786521161738810474035183340241299147724152073800342855282993447952928767703980032633656819817517292897284114337527132309142216667206020229450249542819406643056293894152342951714425333053264759630661956872598446408001430741390025026216844045006540622900173470020653667501317289899712612284633665065951410297453581505736080280395995459613523902328825905448343055426165354993010713331916323430032364211844655026459426000481782564444225154126011402092672135844087413909105653161205568536693056302116071600624285041844322391601755052767672037893460612780588841436323508890027258960985261974757968876645056282782558732354624844532495736363152738198860743162517528718344419260737741171912152628400983492224393738486651314508511959591769744715989074278561717029868270059505837159825277709065904860785591096336958541939279060306696213390397484474670111375791779729997797382102513604034739336296306796811574223530824979565804087302152131226961367332031194892397240961885018873846884020537524798434761102905594310990624187108841544469557004255969813063049302111528281968734352069247352503661436371179954658293730849831177041842937984640528499358264298374377192659400907721693537389610176482786439266184222825113838967742402085033258302403141401482599833249803019912259685329775561717433969921370921258915574468365098665469843157115623943922019898710785677664962434658748468370389446261428466946074498366956914382459746154279015470615909375119455967097359919067174744901766962788720390011426970521269326897840209751946779297699691087289652413258266851757079887731990441538545001473982484305767838987792156798765645659544676543426747928547903460733868011836348102543382853382103674197957777507072115873441572073017469324700979675122758488458333959535595332010305686247997027274406302814944424772316975659256775735923865808001380294650180530501093280821737972636168614156321063552122919473682967563356436773512378628947234121041750801607499995503799554497956369247732507153459919644002332539928963778686493829295012787733816283323378412291033581387094151179742450020356301010338873001643051937073872742976705569843060788775180281143972211262816924117581837325895447651812466578927748631712013537155491910657661266575635517708423381218948795323400451150404732493114051182610696705644675626370485362289758739876685462242788971067484548356867030571016743908560714498307824149076893304835172023890530912676906320151104304756586811390044584357649607940399904518549974236804562661836441295708883219103572756236605688173116694178283987520367881315913448535970931723944896274259306425922175493191125009525324598381104409410256619903535369266899789077432781901786861488887314710204726233278776963505360362283538224070033936871305862717005795630884650958957823547744008908246637818587973312598894792117182021978993473076616957417314153519502988182166795429243242418044800440434912815400368789362564543128532466719024981257518396625752716859950081147560325269239770225675253886801114757919310478698888950497236070069298002748215102545381992045478488437383991218350256706413030375593060990161206872576582264123578642903534739492793577377827777325642926963729324624431221775341937700201485463440483722417070370679877931185140817638829391331860183422317220232287451611241734887362836195944937152698698275732103251825888196159419286865185492839244675909353203652560627443984328110690480148139065062868910698717650365416385347761158053563699746279813821084892850006561634486822810931148687990153907672892078545771368643929719747143315217263978108365567406937692069228919323154113958435731589526436323128065599281131189412821958076221867278345925097548443558404083237211786622805253179551411798322116430930193201224744974368900596449617153387202916590507463956937411168882149821182625891756695572035584037435883667596985543021392556049659278268246649870350547559116726920167351679623422233726759672241612201349739033727760367320257643848826280026035506401891368932552672339929313087109603622260070247488994818460993161803959774072694818061973484369471413728541659757206432614421578974064662643511070179596992767275219558502718289678451085790619488340159546844667564951086002749928798383169876519060682121821844697649482212771489716755798546597470461302157263313845325303640931160726438805664573913401942833424318650241640224075321149689744150425332291644669124798314080083748649912026037584797012728426878203706301472936765403656831287127184202191094390907498365052004740816853775963463367466975123861480053498608441056333070165091702590739240753353287805120263906373274387361110922447522712147527932533076231986265900076341952533724762687384365325916131843958457785597908307566057258365457079541239940965358483347558478575106488493728170104526769320005491837983225986622787763461251785995253530948828604259165653004206119488494248305865953359586688007991465414297916427350673976055604341413642249136188081060476922523836700190462787921333257747669980111636142148001404517840846336999889333315142393778864692752921600661853860485997573696444828307803599932493919565106691176960002238794472426863241341558527772691813330126172225097892240467408720555812136464554328017728617409079265027330929919935439487968593249755570218040796296131395041125010382009732091895932609748484925072912437169970118834713652415276707907141240997161915589090982917056237034167339324694597335221741940471095755662450965186504848759432517972236858972754888906816084659305794037199780504449186898872483970397275535600435797661413278493089895974763577401816640857490135926257867122162673483487363507985618571558950842786455509349010389987715241184487088966558038857415587838863920185915902268164501519412252393910293772589826933504016610695387769665643252156339325400795517941599624840666839870661301222902736475651831278381045963080874457156860431587136694850674246992987831861273354479075648978679416925685476748076235486483801197392155445140056742151514692134825326548676091325634402536861476668590286692332586273203026402787198419849978637485494925515370939875302852803379365137072873151865826351531543219666774023447194496609657799391508742611119401989810219614487688598172335107127832941809727427340758259268790563821188416581615496323415669437547918427318301321121826174509004583225983533544886989272990579093749891504329114650724524927987039989487997409749450555995132128563726378804580153069910644098494368141568448878619740773337102678665174207412980089979851305857130492895646688407960250414443831490930940433659582892124738663305636437556720435493516174150975671844358108308512829032108654610574511836697366175580214639571739897640321393337378398662506121204182567495070915392637801266258190582711086887158052527725985752261637366285557217489431093967375998516446276030693148062413107291720505312921323370354985382618264844294127446015297681782804710776367528501261234867235702021996208754432050440224326765892214675833196642968411792619667342771286988176125101997653846972759037528319529799786078125199734019188560053453152216130542366427308161057677209469334337513782340009145242415299074085536573791607876214071097588328513166112180767206559634472196783579372108632386838971142395285721935862310449743415371636010425311546347692208140357254370734577032938097671152976494038954658861849200630423048990826259406290415330960552531017560765486250986991372663892140887452130983216534497754344327577915001258018458683728072016665673532096893043260171596459237417375771603747753954433104336555430200467984665212017171381642752533593385186635831369551858499245628409537397738008260414370851042144678402188600784987974661292701289769384267214659069619240151526233798074670369904885259368382516802869311071813950604564999195082357532013257712541317947147399636670228582759424537090617600572747075134935059617592476075029301276862029883044130901007313937225936131785041202013271135435188022224839487604924138979692774632634023045794189971344934342889359989260324974646905288411406594979855493215609173384912723984455167095208729809282880339325691090494014042232411551093412451127103448068754778809236742948824072829651931429162647782764429187231629806950465225792664008551589640379986920584270633269525460378045273715556558939838980221832876510327116446910868675965911586544965879069068619159134006163622474304508717034182489298200555405485774438654290836722515223224643063239461961119724683266204677828656545584385648836586150323944120083146658193049000191796430498045130814833505981077091127192156654781583460232208997831454053823685158318274255414680613828330816068580898757855917313489040900766368025793115517667009427564119141353909429962390093940681673103779424036915339958828386607702218383549478414424257766641242963345230705439316996940923230504947553216570129825243541426847089402973048824120848502513212873304587839793093245140820841771437789066560173419826509584132901334872557722366578907651235391397575923341341747697435455801634091407552675027056154710780816985887315930086118133292551742933375086992073809519927183857040510268347111705508890798720759720479990460865631883881972614152683342175980864294313559830040038850525170583245911131869088194849454226028382642233471750236532892022460920906867524466512980113891694211830578772787765027287020411496854403889596937440245380903436390392655833729648438359020167159719546925523314492277395832493666856535831254330368477919985122358517136928488364205797492862418083320062080310645791225017833240223822055773385799629019702664830536407068654173533362778178874857629452954595650655661082540700781767551437560084724566622734711013435396770089391694983712190441041203137666341706662101169977883387056494616306847153769591230406562673711649707770869189406486740673592503999583187791930720521841650373118722836777875928425152194695551997256086350236601238751868701152354139929289289875348060824696446751127563576926722471418294986005530803448490539297793079787555000744828706034713792626666533749823980227034862402918321450006195423800709014278810101887962245631083622590180896241915130793638072540863605421548350072894380398930108214209460452968905850382462367341106237347109561799755932152155661010642407862399380582810735301147465393348850667977175705985383225651876452219935782636985306869516152461820511521819190740791602946740076795947284181783983969053868815774651775218905042851710723609174157157559225861511975441649584008791588783739009458049333145559566285844343187664225916016326272850860644066375886193133122543902620756967708008440774204514780968561336549906471101834778454061502988103432833092910912317211980298829966592865642415311621893170951577262115792383830032207146319139610978286939676042375018746504285911087103005171576013883123367064474893487524711109037212016561497763798580768154087743618637439518941533400925520588235552538337219616407182708998565066545154900546664805424591700895935469565306840993984399226090908373669465789732504134940534335192183680513741720753554561327421180661734932791333252888089719357117859796922744255240133260446364969598047250922386978965504438686038425371257300247041692533444734374736240449097447531100757412768082085649015455033668512855836924350155953264460714209567359007273529268356595108785518532828474944493734328065160170025347583315063231863126980550190076185288210496898896277724335722082640192135437606930065657127362548728243589254069837076623795473273551878591498930213330910835118671641274288223895090018571600166071716747390340079710559857933571022153668149774697714464169792761006360728675201770766361250741727721734584498648391751489776595930065390945130473269203352174172416199427194983828790270340432659472774717720772779088188388187820570706159273801694586640126260444683278394565457226663954310681713680796278314634751015223916567313095875254438911742570737123622431337762339535328700240771751688962443124240288551906335890697155127024923728137467081015264077839692245414094521575345009923097664043205587592735487450758624684988889685980386021161914639880699247173258595193295857519105656705246112649510941760233121858763158207433424989299653306194463169315033608165300060033089879368200088297219041560488425549611293680325072270016865662143389088408602968069343372909693592567505764009206105947076987946988269870689532973510165669480857037700154476921462675135239718009395869353028744426602053174430751421823132628327870541866571969556163258871317862398359055204463687656994983851425933943829165059670685366689104192244620278052514158876109672331524426459523922642041192932452947723193676717578765690930888212409548928839926477855281030774535037396371192305133344174917506321551834057604662324951597004515290640646011757277874335245228492881829921066181883748715264453232484365904325430956156384179033552439174277297409692371236604131262589445094048358152511087466618470372117590006352401208685361986193229036700006736377434890036532235565836198268952379319133740551858884053140632951771514393185301828582054767179065031752489630752800008830540688902730882996399547666786632910700129758102593316281065557032959421859112003230961393966497266485852568416069609407039011572426749013009381015587367554457532247724872895643607378029624016965626204040763698739689237818225091172290890562760134784630251704197476219720800638946396763508983314311528978965322351490637662918907261748778450773986961386215392615815439752303546955573556949470426829820703392965170987891658006449156054723016557903677346391489808102036025328435813467723827454557234163478559704522658751720285404329845210525783670595584829173535967498482078531677557157706583404884209348112204782838441388743445415455071325140291114001016609915030641890624746177337116316578760102970340561521079394410325378125037240102057616750312536886529337827937688049363209820996600543258179373995564608023307541160700211501219104741723449156681142971260715738463309406979715433490002934881508234456378554881476361609871166504210487729818994441509152951207559183999174949662217664540805883727866357582522046610950200524914892502484104024660427039077640100309888913945710261962714940694944226459281569951502776060570320660805950033469059137269956441074571643629497396625717128281217103811086604998338633681160215441304102125101853774347855775610968882347619612744155079034844562255317254989134166092856950094344042561053329134023116800538767716084532785282420516563543187766160651991385473393385708852412242802278429283934504695327627807284738638823040455630957029430435027003833930980829311804835204338650647550692666828787966892800800364614565432185480192153037975744029419435151922301701391868793324934485692328506576509723514046460144494515388910165731815576045065173349608740357774984156479443444357014333285305769372182801878537027986330354982177423507680949544699725480012826502359039247051162079016899381082911195090386227634091186226222979620045277086813802150008711449347682961436836386683705336912512141811317289996953266834844677559199305130650962194760564434872631619797558645237927219557790465771215942587319436381730808812574947892251314743125910150184956532054119061346824660389620020903366410968805569424834293207558933141171666724730572289703793009940048750413200576605942779384334269664061472113867266286413772249182733955946681291776256126420447748148186226550383638297445788232900283017057292275598786343868415140001672269668767724197083413548041406109904807823320371057122291976956686251785114655212889030133866440582150948201310733268996979724996389019191560465794788591753560525711161862078920308313795389880057749381080367353661688106238020697546294910114371063945600851064691304087095337887092743000649608423869312902644108712757520715486784035550143919815193306591255916116658299348408247354383055394077086615342739663559416814098015018171509242143501663800070345370193104343229744116840603623056661626482681572213340581356020672324924415618336843028226377658526817250686108171515186687865152812142054829095492854852418002750030681030288456656759790203065471143495241690270318941472976630326352686430360542646577604816966111606241545611478895896701240963488865034854163471134549784582787010483245129863938691430272276046601143064551282579980554151976399641309923482613500810735475093971006984713298294213213065594202047437215352707290645885681672403205570211714988425932592802098828565218901350922018877105805059847759720029818617063664474642689016189638725462768296240314842586299019689303413707997111695202120414954008379968668907827881159234420409389773953839451825081234105942872672930385505751305185949716001803549075869307930853564886633930185902674083970602375339681879485960014096840910340190656349698651088052280401497193758242279409190333746562281803855335507985103232864212293338238881986176637862148063659596877947430297770871229942581599914072085309953786211671747576054696631398984771141669972381300845901356895094622244959916596733270425687683985870742997781694335803542275221728900430606779308920646349790976275240339990831506080796169026484051308490182562347550040899927461474558042759955030539353342180325773804864061252296245589936884622496391422397273342973973942741856476268364652422405503221885478042597444507713261910565323673687330411038245039028582055591541125510206770027342156262114659702297957055125667601562891814764956221150108486194095570835283913160898729832770283518143754245877423201427146526895733119952676215602442633475368289580947449615920118157700965957988038025672963985834950334404584165920950368788172810872827723273570983422019247659919496642539496443181690163267137209788120629083097331810576022428844971613182222998147527568229255556472860749865272787901021380320738281818474915313376758733948010752490432439457083352032010149392078376105228315143693990388620965688917123896610741728656090629789034018536804907268447351179828235290862334771856322050109387803915212548854056292966764601116506200681631171104557208987333569078677641923971376338648079979940128821569670648434150801730559860111437342100845292161215107945734447638628875524630535846955397875575434751066004480700035219557027725107871557909487058086047299574766272178640570744989569607945310856703146524124157609397361948929262484936771125762127764969323173141333150632743595518194700645543519574117230229649027901112460630460219977419313950236282449138186183760222145367835167693215221613713709503724680797789816560509011715710143004571867524650581151494307029111428664818413043506416573006930628836061103193273126220749602864946678724927024308634195330504186749746844537472697023842150864137560506119796249392421176889342864795456431453976526955371404908336181684301620158822569708485824748198047169097134802257271978430406620920335521535678378114472797597297389797232340190802077705607947276072504587180178903939682088454306922493571183514548090007438110575394436630978087811857191600931639846016947014263215120408097740350524019679574374829938546755325710997015795600917592069821791056240641747134971761690855754708629095075998897803306166926471228184399081579566839860616402285302939560381574219261938101910555901743014572165318985589908668796748728361637049875960467434578555170102438266387999358421846918553728596736277697642510510654541663182184731957948177918276477551086813525123541067109552024553142584160173895693977700568197657564847157545151510316373775037200666295632113997656801362068111717049825370623145579917226450025713040378607529958401296984696277786481439596390955424044766108361579366968355272488691540533544187658413508013363387144027699619468357253877671573945418105705056115907823611634109140563395768523874152960779404495446270299989283813563533785344708304270027775711707243480456424361193612223168192711537325105863973313962384102828955328576894012566108042789476723631905064123230352917904816047479428106197864398829599955757635480903234959726187905267876585922788868734616032122627143045452111668347248421417912776298250000289275759284610274102664395486511764467235488462933728508570925966634952044729265931197984071701870184064648390757847941002552707106769372527798409650434368382425406772036150643774884051733753579917880587979274582720228646457734876261530716118534286435433072139786354750030252427207588689566218392992741419074579922316838500148066403381720466164872624014020557730775252976621162414728905859576898346322930178237681910468691478152403339791713324588470469056418120945368251860279894965828629006698813379597563693129557278307512135439739147687748248982437924147852158997218080767370357110433239304398744402920239627603650310948725371079451964258285415520779211356885663343885149778057147858817246510694983142564485758204890691666959598993790587738358179343015237829281045582702462440143375556931121370027381917053369521015080197722041118715763543976400049885508286906534711085391584751859039247091280862299729797014416803863995149777800533052048890887184674254916500723532307759676524514780913743628400049355583059640245835436077449633248624126543991086766904101205001162973528938707442719083670971230203988123005347681755988276159648783426451819357352611818531591738119365324715379484206033466589284537476816780040560682341672049822566255261246054868917569995091616996881950546448954349993537162479265899656211274640588717172558801618087796157725494627627514477692498222663064736961599264272888930314599842573547470963486520373548088999903092849748809623240247850574701274924663184254314062791607524977470872893086525214727725051533772663024691970278110438523536777654873735376827824013937171094490247551840749740453717580425874373560971420212676183558988202246273707418715853318607044685650434497405846220056985689161102077649593292491437677076082284606944593294341736044033926930638210463239529644014463199873737465022668655203293055791391413951048067233934226247933739993055904478353596257627677765087674561999693613459121217198613612402506697475974238753857874212921337523284252675640485464501985216496786378714031194162406549125699176260319512060032742601080443408844583576660612766581110325465330983406438328419746495588426500407027279436030032033871408963823949985501036273587301012522761351562854896593984966614648754062110028211559793870716635271665522727936881479558007519296914019246666997033703633397748006235444516298616810155701692416858160639149265933583663789067447201992206554361365608778688523406054120703223994278628378776458232294149788317787038275220831325669675430306285677633700673045010601753630374691899759664196042842439344545852757986849744676094860092181120610701074977428954219889932600547970649137645820924302362570756220702098620491206560681129986061923353599540816537144915169711876646840724783924413201448081715020512195312587171216163073320106368860434059875373427523075226826667067731440264709458370097949047804290601617809438571316485826446993191979358786215915677642090762149485084369319350518312899982836168700136731114506610562731766944462733182382380056602045976377932943234676486139146000737313643716034813199555343114380528039226228333003180846431580965823179107114852565415863935362931532115627273201808180499805129896316381424818352920446925374115495077886872008075645109060190454258336771058964462191617170285381544110147999653837876356305795818320574999791986106131483881733074109617603489861882671618280379866718138123610813017380110926724436483702216217843461035639766116465937659048484293771154588346069724443267275235131800153822131308530260784734686703468828160225240150181411040513890522319567297813986591709353041402543262951075877676585944563059353228026629642323431208261993753820479422782777316833284105016565883223738725579603278285979459875957350805957403272065725345022097441053517141858354033705610033101831195896528486669743307245332599875823077522147491150919619248505208798981095160090952405853432462616435643884383425011715622030448823278690386123570115563806403316052889921268555410519547601992789152347978690696639451894980503974659631928620435760665912981882177752086995554716396370742961160269025995294567546010101972546122230651989170540741747492442055019155457989074253464043105924778159491380455839270369375045926698578839958554904281411833383794270293880290591154985241627723054419879996774006192067438077295655970497595222559997089430243139556998513106142433197416035458157085102755790610459516048035927167288821154415313118788747304089003956105163857802810168048068230661851643212236331056254658329769318114504183609158934174535444627783573947075211058229757762746686161389799977037928345404602627057661243014708581559266695889150020196435080995821139783230859235400538985846501278994677656023554467727652765018498893100118236996891094309808787077546453752155238283957712047834878531312626393710840447258335945117082656029769723881198915820044702667782798425897445897921522775899313039627801343970229664953375673315862223667275976437769435336766941481041933125814814974484376598202383154999860545944493471289883019720634141467849913011100964638354476309960141717792257392920766788486381537339324576956668993361937764860116987303227036658919461633441046011756010367684937906888612568806781372431293609217046632045560010752183906950029897928944866666442032710936026560188474938354067061265814630618725291701857925323548718509957314191533981915952917572254912311068367804623288892705523716989067457038617545062452745165328936733816217146183908841818493276573349360004920912454954350725320415226371785717313083497173762875519398597739386822569265765441580133613416144011298334424962197353070736900256170511537564630176260132963331503605213425976319682919485702329160386824375637207944125968669129547119008064754883397755370299739039482484923440595089181485920788725500718773958281466571075182178406268569532516773962268314638344640686933943408322850447970327084990674192711417861583654011842333414954027540298651854792809611394846841369432646945420736683918772009621094483315076560110791971432919024674166169247053592325295362500658869942922200063785427712050690022112159907914093324921836145483346419867735435731716023459441502981611809241650090302776248119706158173218489097418244211195473287794028290974194259973922969289843201391009304901349788531129702764080067552092946534539000118149060465734034476425890086245600313691628690172415678317876506338352641933100584578852981770514131505752173418711251697671012093743125245269956740159177184708830994379545651455400742024861003035879412653317346908819167191013485497053017207225597348323306708469959554545377875392637139906083587008023276513274910809291691103184657188305611512181515629175744064746067085841983988649322320788089749018803005139366058113452357084880665263799990353169739443363319417261561766107818536926305959979350040690427672225810597068056701133796688580439259395225795165343946463172347716241955934033487461086458052062980723587548961048392973586517513876982832385829471976129574758486805777990887711032618045300363297932323419597631611853299108054959443017879633070412297655709252266080834787279800908051601809924498349843897054849187803919984331710412544541924172382734928322475021840870096534242105482641489422055806088436124216477848785691736976248697732795761526473202144110591591422239130374429933984318688608944799788142892649118952222637990150500036714947472103270631816369726915783280087401915589079204522862817984508230547926987573918762944590218402099405343100701506819488045578399092852300845482208776847960726325790209231399234236130648594523380711683292436848857043907372256425610355563311652969295404216212055599131926944545739820845016067100471826204771886287022869267424825149390040537808279711094467666722466591927367729237044948882261977222527933770307032958185149667117539535206542562777441037521726624463468554489469580164240612986294318999666804907457096748859666132126363401382919280193472190322541311986172722315711089549677451971916594456669840056454828589372806233436290198166832763862382739434609605263909137114757358627923247280999657231819677397689477311996574120427624489223474115879381072278036074595505080962498759879485521821005268027051455108484020545888340977332041008767361728079915751658114616707308079388839621268009621409584857663841546368838090955497064655022575549940510469347240679425584986513827363681750464606473490567218025714867435653297238136621111181369366984854084514487662266925049761005957713483071188326580234337120307885370403356242382301240473675914908453866724773902264561647988901412742459378894891792900473070248744799707105135361032066222400250436476132783849400364250692757853017133962142232842047111253061469447825799425388662000950586014970670283343403882649756499236113904598216003636806475694782017428219736151957777955371023780671245848056653175362827188899278764526536241746861791765858189340359845437019164602146328455173538899008460848628363755530671655952788164602638401439048231140388856965335218394193284549684668012329127259842922639196380219350377792812282242905621983135125823635781405447816560803405652073457040696289126457345532621679166675909847660862948557630386668751660674051556962397749527393023629865669589857817564792184795914121539687086435847138695852461333540618257650834290237369806763217051407254731141024647260223059208819891000301829044649709007354599306122650580812122865054360243539528396363336431044057326162192480364674433228682489408609816530308343448161282573871265074195741139246387797647336374585593171878849942718783915965606251996963477699512573571102774880935460250745285264346199104272843090762407963299093266161325166870424273130857930481340384064276760463507735704718131033802577235444607198128362636236015114421149829824515884622475419190703858193624354571162184240535930099674226108249927201406953748028826538260740614203663384122743131426972249847788761645516127554398394210472212445466067713982164966854471185548945546110852541902132931178877738476925536768133191362878183078223288755912394431150943253657104372020774983835163646355623702608055481394933805306454531975659586389927778344277340794652782170819389688240092446774642105629327270150380469071120419192364919594548366760237315539091908356928080307567096220344772958564186337654407285384345430801945017387069924695496203511918910298664413498425315517866996592104162485775597778866574882715149157717705753510497536505552214470777495478484723451847653705577712078875244866199382890097182820846897231038730392500238032460330098101731968793285517648331318997914811713224689949462011006612316472213954013724739616244869168503926166370510607130340477701620182065735558206862653851100816858791473949551505697660691438407964326024078377444264761131938364256046914586404018652398457142213342399701907574616646536579741322745402202346158656442776961468650016234071150678086148020821287249225310073912384505408058549103238579320442499727704768250994269677602552176996256607816424591659237317352494195956288770484052895982245549702675354313279453101512798931914633576561062913394870302291417649023908968089108170623848278973349218111098831728352356674483909324339050615535224863149429617432954722492695345907582056477281751944061491531542768362469558062197679929567556941444173826612344915169577790821833698269965492660612066163476845783560983625200091426344946236310960990436863089605957977452734448412512242011822556403686636690178070243324683988623697738546539892455179773947150387128957316217814055120329575262824702201476305253796314086676766325126534679786976407471598513989845675992112317417507690464331004620577677126593273921838344385863480560043373309701567562987813270652132439368356297807338504004765021405471445466103901558075773887293930442948551017195481342106277458015631121113454222174916972249337290192957805425300108060371466492164086199483976912982153075045280407916427201082103785374686183355762405789030425942731336253361121152939822419325960209779588051261356108328007883263993731731377796545182814788210715295705588032376593243303199093599358975289028650209295353427331492105549910613890665093969672225187800720773564586682229995547204612076564559455640016999263599602258918163373178467689231554339373880349117149369305045814100061836982401524553536153825533087086788392657398856148239531751169170024197639247109924202493995062658568545730907940417755281554797051247544320727432948842536527395466146413582067949087820874533590475889561746522680983127186209903338362266334628558450342981103166975331984012463161579097333324980359837523613000221264181456588927862707017799551779321223005302093401013294785506875808258364440353716825172730842385482498541837222337524068888234165995866888015123589485412164571860826902218718952265961005470858567458302768625819498936287550619620420374903269877551922732039623226080772740418179841197626331621648049927114527591973159450155935422217533407968363182626546833759587846763038720553618465464295327044397614982701387959909004888864331064748103977197344631168416847403162703426826933758993923373110842461102069875374513385378936775530626812121332218834431021982733443614098941122993134539410636671075793673539557147589692926704095605455675320338089903276644672781533252302174555418923178651346346614266483605098128153999108464798864227626199931772353979457527299481449682703470685394735240047564579212887748644196981733027710251472759340611038507168559182326925812266286957731612686916484674087745406240940224156430959431252360642297223083013484620701176776196892902918770651947881306456624993818896059081306839466466569032217754984200689565267737365575580594457815718740467174339658445489189008868973520439427488397220660794808779475724128925805094575386168474079841665260975823303342494333389712397031119203109101442876857376445744600289716630034604083155254791675709289926838597049701573399420727816198174796602841550573401453065268569273095924021283502181173741694505697507585881934908715875109532242474865174830475065250389941574197882036296585546303139640583508520794097751389745649513231960482011082287103522216068829300949226415179388258669616867158578065006458822002238137565398362177630672143828499797770624658869087328012147735317982248163439952764014453638087843697936966389784258448168173290215243709314426538582313458416203376840780527354575415589671860662510713128848559345403898174114391367287406798026745316756702124427568444287315428879688139303923971527936441280279339707707826198082109311974649254173622931574340113585474659552911613315696164908995926728301084475851120726310918669251139111350194576277829819688222959919843779658567158926835726945353741811805316414886423504997156383708699809097406053664130340039206315964537322390228609949020982051971137867929083683841365820192591150782261365446048469020862880374510414377471600257057990189114381663976729013095432589560762406400210437496640667138192924198930236806692845703876840464729566317555849769769624702104097209709194050468509887395385271878291776195610456285694991543719342018342075990785988046520779182383224112422655061021679795755454091201791830462110662564413769124064308933599892581862947323841690404658398442430996115824301278497309261270467152411429886153130010221064394864997324631349782778952312118522180311434387706192105112754512220912941756584345421938768716769715905506424186642243881586132299618023224591644190798362986919641160718705876706162492781459266444824592435454256886634761801912809372505532895379930135852907173579642393788064613799286813220556699747712486216469244275351032719469149415217916697176069438348348808426926167546216460940508102398718227107635523163955269818926911350943749860480060402440509264679774929567927920072775038286375746651139834588367775781662240497142300078203092674086311189176244066086070594277974359649240293032147679054448978886341752116344914671463693192699190599715595701574621983494221463187365886183709594883285360965122553626565474885712981781992325992435972673083585678886059908949271021834643407525128422960711521877366334220678648425790864859759736437900975615957509812457374033281600643240947425892508767583590322174745600461482765702158607655462004087213311453091451130893300157079038145382150388251778627390379884664330939142845082848194945776287462444283436909742385633943539903668540660606320414787194397384335976107456159335781966302495682554942763708384998949809135546325605337995305889720204363353466284262119423971326479413506705312513689771150732991321399350590456014968234394909016042961702403083097124694712538601091410313019680530651360742256183775997161009404507663956583706830825571445895489724810215263608719027698751210920158401607295385408317686053517823973561115283808883935529445723446047412144715343082136967797299842173573119790214058839620101108070966303275875709124547115372642020504741860639265943363986617645721640493786249112564198948828010961292922877861970778833002457850402968225439846175611519542297797642297397414491610554985281480964315259558799463493055740622786162280503906396707443498422085944795082016610687569623188559042588462963910392703221273138328312460081238158944413654448041032909318968875561419920287155494183329537170613628432213233122238904211438521737178853341212883402007525498129160387910521017425860400270801322531504726852726954432446771268139000370877879897943647507260197786422288320196468502882715737746762068419992677304257945809314215855767971579362205462127936361103437069179268802248254481986562604909123863250590963559222592261281916336307246349201018689539100484440951397930502023595402020127029631342411695957929895136576932609560124764384781897664474793957323751894594259760072989117737641296046946674851389062278591600883144825032568680766287577432976372316742669698785861560534155843425049432754995426653067000440326598254916536933615668460549011811282572860056425326660921868271462571676680948665219043340933304433873296012498065570740526546654524347250239917402705272966117190812232012230554872354544759733101689544169656545361223110418120957388566757252866259154600734975705051003955974966415525095437086067537577431833938950311709433748527167244819141357146749347135372542200308222839378136265340360224014079836756904529242077951575047027210433985204069885191838061198628631421310768161978224538306462271821716144057527850724824604096104524913972273704312536787526694174787279929965364012286017445896425946098400298233020386881602407649442486504767279701307472265283912064327409115310482064514853946831114190262934275157624905017234036665892738250677167440755562461111763060857657125884649353810290781736923309197758738852228767719888020736114737276067847555008192294603602963033920926650376136489590220833188640189236788638971188514540022590423782164342540552293173954527666573865062844179836619590016928615230646125547032364079542367199240695337973823969728932384985921007526308918729117740872037564123088357429262060274379592212949816204512640374373391959063139486891098288254502493777005135144647493142254660953687050657673405616859036377761260116600266303426295992538086089793978952091533924268367585526120841262997468378162280903887690127962919021891597411801309032066824632985406348530316025241732993796875973425381459071868500956411192223263496832134271624805458354927056515019207643408942496777304841674017767296654380680929425024295984153276456414615399251098350504074631955191531330435675854945885332889685615121435427076542641610124017546458766208508988208030505596577369744530380840474414572110668160927870961187037435760722878473854639386856477626048442571120458656036246373277236757965413676947112429743307636803018986857082462437593430198840667111578477067309419605916660412080877182248830556321921997772628102920926867950127913545894483609545948203295024343139840457185565856306324878778034108280789276913711757182638915651806631196845590193857588006641938587375583187204261118386951889461070329199309865334877532049330687341508110185212126841659677048196479179815763776546197626965945070640675807550362932761039798302090057203600704088607284356097141390480474800626934950586499128232432497052857876740595859987721650719582746203096206802843043732345104671993562704890305795852637795451827165576081738806545674553094480376434285575851806773299758503859648960096547488465145892654971195483010203543879311567750325397107952936899862827005275939895725187484549708790271528451618766399156786009104871343590315088276331710054272271901927047417057668464550332408158776343748757567405248506769850432957773312648445976948909116216299351711335046142747361649304465076087412149265076367344640717493645778379103679883179149794083525881553519960981691914455690806855199156543336591142841302651594072109973889290946226782234795382764799789046072406998279415672994803716949272097380320119500643523840099648647399702192282353707248366491788931220420590415230888823044767604813603997472959187034576236031928769192544942616020359601317285034761454361202637281655419079430578056963844307272751910946724986281896576049536002557278715410292707859610522329684532541724345175765601469279338068182416737854562479234254300366533282404796634393253617145755294819961432989441381164645421982833302536875578891136710482075276434968508440819246840435683564867258345175923487426501102687830585175053929052252741172886088790210531231546780456443790004902099558030669791187200702942985864641943907340629486711539911362295543809879601265927125142568944864854937989985670428345452551498556380682025763219823641508218703213667167322560863161475925050072394302569345284417028954644950329774737199462613308196706862174978253664990318827173269314736442204174233948657126066402275205580484629332157838317096008362590742067734686362240747040927580497840690940761928984933464950906236506120991192787846883093579058942054015516013306668972484290107510328338614247892351268214085955782439673684935533410913903436887639982164789009189213261145067519892330161971952857753746403382989410084832783385409704967268093320642427504328335517067622795073517934182359791234091229599022238090049097376586476435001163316725777838700105562856078173361385054314009842191803260468219316168653578303524309584320780241296396220745198268207753362614091506625756790991501591226564482104531052378906499672885435320982783425203116070975406305564539163077620353602739495768613674257847415107627335754741259769543371143724122215584862161434642712323480687435350857144628498739054346017600438136904604546333795286734693576633190062364910910061506164723516142815997694705791191930079206987054864725562472685804311858289328762294665149532961728621586639397556683515767631232021114989087269018907901882206187753505408317490887893971128972546261064799507553266029159879022024435595532434174965431701303592087452905587540032823535638616508135074204006059209580809606708005361995536963615418787717870162767328356550446612723315183071989909389190932886048590006070750168471549324030908367128356687575140720651509558732570828857894090614523102917086938332038848319142756550483929800747799046805690315541576418306082625457661226099472698336052507421950536902707512964866131575892651998279348782586167162876322868459549746661003228681670294642399882380436940872393126642710948069405576242991403722249239634056055039663706193512296816849053742663296759648779024417277824201080641759021793866909595597167130112852399870650184412910059214672295076977069771392559205169372874051857024116967621194607930945469129920314005505054824067002808822286953884344873632726092309659016675879823638393497995295047609804448386763508325441940872041953467618753747437762635793605411438806086008244995960842052032900380324163003063133421102578493667234103644340993946127989505271907504594969945308716766940422968633213721873187674615814665645027839051056114711637831388552276183743115737183387846403302279221967230464432608155727908096616062482807392533330587536836308558369551468663055912303181373745405869606015873491351979941051844679504896550573498988708345811347315579573091510435100823775658786637363353496093439105714728203892178821183416773327699120397668303266690835447527031878661533639305502748714521484681871403955820096014112122857989748364189946943959220488725298016959221771013892658295857771816725750831711484294368410684866812367050901101322233730108926416585212234937803148174702450156214723496268711721254567607842536423202128289459574910864507706338153890130219944603696967445077909571042882715971165146960522571035093142665363269256583309963003892392373229672343445408737956161937606643203461601783934537338640778159007032160285158565205873565238788479228342451668214956758853351358397310901630150856040666271124226376043927643726301159886034762520027857902868841170991990972006677313036306201166412060403229760960336366063639121678356634681964649878765682472964247493566272355630179254658139930702625589420319141094438023543241529954938447409466252217812136231648524605923960663714270125708448537749605118244537739387618642073656768063398426674977765365960015143181045559994172904969384653992612722915170920974071299417141675325376872807037451802414610311538630446658465420676148481930511357562888456156620094585121995087081765520649234362424357066691546626341630485494156293003800815597262346766165890325873265781856405271697909398056694043592323141165802661831363269704555099912143158437840436119773559194778119088083155829848886650108010071103717984999303566010088732090084185904187296203452027881567265832099461595193185762305999335780439045383998723790066827916016061171222473036028694049438953015382418508958281638269611403365366814295387396243523774853775550415084125316288778995043261202720120967026523771475348902278341677922832135021644664139189111313283429670534017283834289564314050567748916596673950487007331944730506710011705775890322431338757167046594753526027430775517037735713285053411686515135661996130103663079188603609583218744834167680025179467972013053567774357782968387390965610311554935844266734333194680576772385723030187758003863164969166374880970594611381899756288158835959019404312181663848623481424018228972155319599260275741496106987486278454302861426504971214602070862751273808028863097781224339995145353220955447499212764590332199862848949041148548291348649844770103468764966806346698117125766660880318812927998648612557603354768626255886925594151014736675329827496932904582107174386253950624811676813186667489659393799412426872867369606933804088316174756984411765226888170142261707298074323718169771153726440395281399100722087260061949153337578081519641981934754094879886818673698021400037141924152929170647266016246146914470948269572612472563182024664761089770910297226635032625540658561237749434240855895583109245008150500170661656806845697590829329088829357341268177067495486837089162405421464835591095090340029752711066103826045107096558603533150043671309980483190989695831685798145158027803843704264901452580855574047642752254305178525674455602984270340724961660575136086928934841850588817322041920405235561926083796957870379431636652768343755145818788293212120194501041336196217418696805856820148880516855643428979965665712584273439926734246188166652380641063046730112362444720118149410114293060516111805842781656767765825903418455597007611087220230567006940328330555154940239581397910099304765625339867167259881637451352447922083072183127388397888958901342722133864441190249602233503385086007574588268857410319831225956310225426365029909387185456248929400935000828503273918802509170735934327133107713859941729896828185631436914393255662268601061693191628472394221066154021063667473384223412298664721623965808586522713868712889187859125827012240330480939519719662693403017629503785213151863402853506889531804216547643870049483798054715881861157818401574524621422381535122053430453769201183036538302306953440536024993055481692273158633785609329352899063156804538335078316623056838351778309291504250403964586440505541600297334689576070038665109704156363888608947889437294127938475104969491680039905915932241199440805514920969938811152181668292003482019537813610468896477942324313462037323806015371852646936500222568801358763410420580300247798835022691657297546490628330398704157298361092375153032438996912299305352060294628133642310994891399211483640075195615298634022009973625783778476225934996010619376136643565169815285594945447337041536930564343577409813618076429941697585500274434875254889046762427720299489227758192337414736833933888605671237853748276358058906895187882778012902378317021634049805281031375554513475651660403356276473555295004995284224443227688090515506563290200952418165327652690209453313233617363004481158191256166149741907682977856658387113064959770767294983354372747969188264068250506638007533775721490359277701777938428016393744697783667225301852706074493506901040903849782799154322440708783026819869396267810553418444994303448189003945865237375875339699328625216825728750444274393833510483352750207524638975315156112590615241772162194511170614359812433627076912499063279263974492796884000787292037592910540385255025733704555558753679618293762637721815541183832364812936861945787525483059947367139595683969606341849600236616779433251723620782527481059239774739767510896199554129160638986410995929561536092515952155941127230730378323544166129171722116549113701701344022880829627746979234659336112779402894613502562242976796586215192545188868148649655570434357370814747350985586658734841810568957248371996858307562969545551982141464658316859901050628634409151915238325643011808667602538122131378010611031584251512222081483266130145097769094271870836164731130917844177001009384722891410596469357320766698602795184951058575256079686136793799188234296079168356607053508283298631589977695146295723192921780452330153761977224347499629979994834475245931284919933328288140497231028089618399579794520046407018179548611867614178075582708194895808139211294333783019743843139112278143753502728597435767287511814618268318516341290277444036377532313909267304432678437398849486355987549895359219967296836647346881863315572252418738537841446612190446767596351141237655858528996271716520647635037605990590306659829743972803796442137484943776580055056330356108555841255568492627728824368620920634033144036646020079991776019563631500844847940994706355570437337767157971131244590598627102257839455358556362478084788099711170195201922323792056158547811521606302890409122646660863573314920676264719572619998983695538971470367604176626169634567613553487586393755198539385133931639760868388110010618018360131846589047093827908709704093829561311927796990053093754734644322579690043654958814659990493974870511532768022661470939606967291435184506876837351259801615596547835925720372394139564882344872520492779014380784759398572970249677818002599134862344644657170056944602337192656177348400848754018413100785782762736944856212159904121274841328263278863505821155633432820536360233862314374964720461400283694888620006706238477339498428961009815330443018002555582157628524090624350783674382938244515298352192934429376696573903870193380075294588702082725891352833119158809555956533000090785465709524614645250479482882603167293450787062297819577248574693407436637708592111160652796399474276856733373366185903777499496539319383248203321177539914980321757834462032235075836484528812691059385852927619406378826424405850402062080647336619397968679718075139004967046850102930595866536456235140594904051732854632409806747160153964973223153475034349730083671194097243209397896875166285159965658075311882579934999734688837748515762055563259622351817527190761465735143644103248105271695971164316381811537161474868655519861104375581174988999577253359733662614411772150464103151827155646828990655315514028027421881866505231216080699343406394282390339529557527428132931753639253994167421842580613320638141000460631423977388701366330183110824909427972150857360069674147876220534537982812093978564773477396356925949885125457215386995811571904921367725134390847666524930315183358417271912168838613084812329275180023378138581030822290799871012026577363468329020808200958498647397915630467365113770619582032746398367312793722714792069194635689780065952498364886472815091274234063571752049042699797302204734723499019315235701523432651360761393544382723913776966003806065894546052954229407100772756269973455192408706332405857890313222793261292282136245266386545882954865978764219246654084079630991154393673616560555498555669808962325888619212744506451275862989185619852662498353446742296963201483598559406287953560148722576312736219374334442907994316306203196870665864210519290294623347434639676781892784611705051789050607065330876796533828666361020959393098702394688064702672066514792152096562952671132062918358017981555677231366280198315732880019906909158072643522002768548385818658077083773069472179501544879429020731735459485660327118233190061354154283315168689386303095152292994159704691995969867704978028306183504432099456137382410023603269896108860294750579640354635842557839814069538083409756773014409100855540719864395205143054853415000550588801298930086318323073838038537116557473562538678142811518003964293586473137317624040788288725751674896517960095797509979857797236948271019050702544092760823246519888349039262770270221765715200169297098487870199838840097138549535204206951471145494291483587485017843987824114184977175826946579721238174679946513883090936893873260343720067327186760860940467529728807577893921979164623967297850636996314980208971884002960581049441752874774794666986781806424168236828075083183713304522627371051687075567054180308406274791466868670094929893774778791776353831339097434314731996528198080355911186458702767810108641508520357892513597128503874309582079989640175244885020993476990147184665723281235418840624398447889185066941867523201616928334755671728783111013536607446180596679825034466101291882694965309212541502972165687138621757771576848169068553925310989292186931165072221268590922648444263275849223527742632706014238802302631188971983512372137097522705668144539614015698293014685734636367435165040603963205858224724773832751862374338823866595341370400214541872165147343422045494668598001814757096957471741639674391074912818032485974060133287972404694927235218469099830178345412268748649044541731642929150504828146149741071593362961256261954269361480196525293475106258191016708352593920465440871769425532373218680590230203375264749013272792744840738519832566208144009696455134322894799502625404642855974761375825445771202207060522011726071716513902513073333516995237755708970879123032828451680428639890663729634980843885422105794871826200968619247984760028091708607581167858028110440794827454385164487797810933710695607956809590659082591143749829495589809968724674604704261927421496091590277485992922712354336440965347384274158273380872053556444780085313416556541428897446379005585344200163230097861756658536512144775129945957373967497664251126348534338713730488138236638878649801173374280084377543622042721838811366532923269348039393096014055545724700060231046010646122851531468630924679571569269282155254334774937304208010336477594543946004759935718406415624009231371652978933960060051621885104404506657963485129661060941360293831594819675961559140764929548789411596731074855054640392719722696991053088435257970826464613689430832595780899524804571377064501315857952843679139203433272218367839383309012517867942354081518376775896147625552518225615006244853731213614234420848184634860828062037632467102604772110361017634352524950267960603250455736293154319883674251464057522117188026862516068643064619338491093205249164175666801306233389843427610930444004757694628043875753031549774287647900443065534517064737993004730544606946993451384940853410306691784444797666281231705831899740207852200590820845740975357767753054235893073572398761463838260439764063732378615910718027464361395000086659354759197510451683059798055472809466240387504389255938067235902703309344078577417594272495382159589241593281417428242007324423648967386901136974115816912759920887043077982375178599370935690117832421948391366327034057039089756981375582008421929312389606639843091787786548830481303210047897815843891748485512922520518701340771640556590668000909046959904977703393738072756555765001293130712625399097951086790252950868143783541229060836453918853469194693123355417367082690158489708086724958784194061109080389544728325282071481927018089680893421311829049370689625628196441948584602939348789117003136575206341838461002686493248857680029775375063167364382445879719532568034734098342335410628654321930842738498506834299763904232727802326838660394475795213916342742251899575956103564516468857253941890102674195575174045652642491990617489718192542566263448536860952447537371998087119071560132226091764682550373643376312641037634612994036087705389568954037485481515974458289957790133689505935932079672923790110544244354873313030608981889342232398819620935041496571729936825755144615135183384298785957444140452825225042216341570018019485376330057652700653530545094380337251894519344212657941851459525607562906253529233904127583935164638904813847225266882945801732405370240595166307182122864514964670354250648229517478643296302201692501526821508575930857385025624175921456554141054310259964577821192655740898339603366611835512687296231253289274347545830498133844376338810449350634640366568867470427288378672304678673514418077654507596762179994009356272181109164937008379041096712614012003238597984072410238957968872410638486946743949984016341514683359106437471584346187940829959844097790134695446805689941570540691772923383119640609792948189983933942890061395573562267848397893085202531339668514951514911919326278373379085124729598498794119048942020728443445791482400963334065290262953165881617316368755655032305798314808853315105763161025920354753042335160465641994447633519884635861728976936778187643668545920832533912538415367334933658387835361918462708507431653387475455316758683027696387502998583166645464660678704485057710855854987269981602896307812163332949634280246303771020267737705020288505909139353075752942205630706541717940672325205035427982701539628598121813453352752762754173222148747375368411185065887092119007385343647691975038531328430178010239107250353959049260570326867786164820681907579197628246335916174485880625933959071721655363595344642670431665620534310306060697112323653868578946293293527573721126489692598600842676932841426189973790726356394034157964467737097374462621157422958099358814449705688460184994814078690472564624739654428429613099438581482929086397215245914257791669993105652385346022327991409424458002317284835218221803046509787126438762802767767817147872753414310168791661300687342404122183428620367464381303854876493778202614474725936995817121862116904705177201728377060779436104774235498757978309396154889751516527917679921027199465621210457637108194376059657178931988113179802482703737693994379131245406382060972328300214300814598715186138660421518785975606356402805248694389507572293090126198337786133076219406804216318634751482372070123037734235925698746062458233322439125946959647695586266613044184276971013159413956918658973851169463638630760697789139908981881334748371251916247910939054559238141797891193128452715488186449473368103327353187660614411657213527637835786611254797338031407215304366892942229983842957493988280629475694330685549769549692972674747297394321684810676284071456360076558291233119807935373314295961075323268371753466243526210877679529916756416687411306660030161866356224199433187323790606522101793078796207716469387776743318208655338074955464700639109674348213205725061550654870747319766069595562344434897977002676932382589064489239959321829791371396783618541078941363281254487483302391514276627703427720299028155237186132400547275896600954478426261475466817755395075540632246007242519926361672205428694786827269134202377795386815677434181986347426855556010265927021283716962157305593446515081573582785867464763552191415776959837953330983778588832416145990904276527056887418256726045756207111511224646711799101490581271272528443586604332921534022346634567304019804705406756911164117322495079590261031417036735044113836617204939189779855325136117654918896288661942118891541728257783458650614931775907408474597010863150858068558165233756121271833970625408448971523822394228165473064509668785934936135381350225394917583877270494476962186021028517945331581346769759251828382911736549282352602223458319708482487342138162645556934031870438985682463831721250525904469303017471368436578981169270283221348201730958909439032272448500502170512533206040835211378563552950088409707696332414846939738821636957637302554747274842216836868823102577678397026919874582841617155216848241357412523205547070554425144064701739776505286028514296430402672368740980295268961037356205616718232468764318500640701633304278484528930583349541723837891510967656362954230594192270554745271121992183890874934372159427961965653827279871955962078319251330039867288726176608024162517891755878673113964107596627439031736511027829842547836196364602848369258140958976146873707633108042537567871991376515223083479569471627884438221489060671999480362384321653471515835930658427493703352842836151205770888627975641409285488633478067209422296911504908726221680042536850252362778950696348587755935005558274647000918514695083413541485922627639878931830175610656477677994056705607353439418431144233547984498712295072221523520708472845686246903151923748501106104756298488210602917584604106920789061833639703535410773165164303609186149057316764879843527765099450946119027623609058753438334842260024346007083659109449539485083895211042889558344180373694552946910780522171042256582170009796921111952772544558363089401891130336952351558667081288556750917377115906771033683229419621646889565629942289357487996056279062942636027042368870025380650885984941002350444973341673185557610385491265510010635110880580940522950395052014022305045289830436535298844536966548491954861571962141971990049154766986838780599925288514129215189668753456289823370488673768401116057109358809969926941766823353992097499290234129534897503138947878697671515464502236540832981194676081041947981415681674116584433126220845136449993009024954540263869646893791812001919281471711111299479939345796968988082502747828592983003821894360599714495157125046609040910431292245461736480711571900236837186391558113636019467849231932228819660706166348811342071485622954439042989659342728010242668864120973416135576947488995258280106913931593642179252098579259591057009768681062099522475123657063374026484729716448850348920479719947873690020666119894912253109148798666655111524390224655804720362462875337418626202701036488458610636263901177997957664529938867344209151339647167897477841371411900669791816104583073386006313103069397284770975458565606965502504422658619338677006976113230824084283280557034685559440651532260709356055976857269837409443179900343629095953530989790044327633839900416588193079865356693698285556594259704056502726844075922727678900674064312040987984834901942057715834238865668528378651138264653720499001734734606740958869216441536581617487998909745230096315849112898106669442882258777511390216855205064609510849744408431053210672228640580430325739420078558749077931320628741854873062884888181133545306476230827115171356843279114278869729404119289693548760544550947894530570948315094672726571607215570697687894146570831591880395342804260324906442212552451923197683708262050637733066501500941167402029312925567605695298876258404794414450373005012610102986788670184437862908362958100980168731043236662981709185123739364537526361156675282281755496984312582721355368908868958462440110320335855002849132541784863421956159740071197607037068109398620779960760936856608991829832077273530233004038092040129963871067256588040226014646002925187512356186027928901961911362505858676801022642698807356595740467737366079199091845992235364603997725354582662713695186709721338461567718214023751128734631668443108055260852205212448880767881097598458965049906136431272635930787563764194314333981112156517730331900470804842480949407045972736312487610834876560401678616804446245297898998383327914242394947691837603240144355043349981146788394793879115975852772953687288263310421905503354046459712011960207268836199206230137371028956779496273560427249715443098805290216986716004413703677993042533098905445245868913230101895677774740614718760437856269812573565187391294602923819667722606121036101475486661040879358686455397801371682961273065831429720304057545857555750165372621534268452565625381423880375211670028036125924060817573594987271979694446549762140884441080561108911037133704302935739934108348760861460911846711166305825937908558145250432846527820884835507377170712323808667683556046092619514522265658545429399640778616158067245374715194234092395311656512499597424777569043120667593431658103212901658526836634992739006786718387883798619943811579628308766337832065077972666427813408804422573968322248390797466619320082832861296651950216139582192544982283286626390332372237287142886738551060621139414717042579922929872264888595129972408561078559925797675314547245378478720158742572204674543139316908539264656739289349654752394253040767156551123266749160886652585380080668819804258344378460851176348306882969144707992414662410118997080543193022777735821786560302469965115690826045231549710827983825190107485296992981105564983092965443595930450475743978090420670551906314585163236796936947171582324501943393695294578447845627960455675682455074131279694388782930273871227340486403844798304877064978335324441106117296016636369339648534885494329895400167607752705394741848367387004146010675323382666209390720450820715754210829695258808429006496126404823090811570823699321008724033212845152503955342022199788647324331641253961048167628185606473939304562210120882097200082136282971681227154078991781801175221823849155904760115460674457456039240044576469220631963777075282830371263014245772004639222699456210342510191798350514116688916116728146341344209700991320598718292539950378335679667160251651368679948277871484020791219849984222762757429004735747322157994543542575209548647164289074717876536845208124838164280790544448025063317197750666188840385436726935334225282843284358013022206331796602895232768023471399597390858527877910932127462717857778853157884157787407450138998829403882835563466414741116123315976167162413425895050731315687066836776847894000370984068052146081414562279374278098147487411029365653079917089247977517506559024455973308387584865818174195546257653803100364856152992775462656633637342006564392876711927331799291293634316666308928783179823522213361667818438256561945922217750735657058864120720029608099984892224610247976781050033234420130893098377066082864866258568536273997261083516317197455467451813201768541484119438595921739642730754499553329613979740882398017204946874933977759257860780539160326546050686899458757021696930756865627613609726388285209010872717197908186030518548751721803040010831690806422789147957881771629705600420393037497252220165791718100151514339331803438315123001609435489650593724327677386559774718295978715870256677496225050424569009281187501280615085926807458721457938006499331163167994528352363350109894029255539667504519446273686654379431470929742959515659190663273227299286362595825185741671262480305314375286493006904857916125428885223241837238536931052313103852118659186444604978562922089463641395947417722306236753352304504171919322063879575652957195915129973228526010096399523230365939862985170141541153835638481280301778668729887267056050546417600135698654449717590142596316660709694993432024038933554072737971557878984239266248387197627259526360215011042537590708756056396927730059225260948890640424113706282819954319773502372162347825869927877136386193948594325748829154927760414060152357399766463749360452240687407990738391338651535403705418590877643945763597872502074513747763204979246931974836734523818063545025728710683283707349854417672544722257167655200701157541188252849281253628775311219406596324375185419842622626623976014442770403905303324737192072636953985589285319908800862926591440997889833237751006591342765493843378565838269730815785865571286070259303384803791966265213887358074640483291911660109192817116750627786281656124545587010142096289585214041385292148582906889820337662391194974307123372884780740610635036096094190415474864211730530845056247809791417482249120855936407074853059933528764863311620982008854946598797918030595334254977603888828480581557855217344309585478353722694620248453645235338180346653100523858059426190010142428394073702758599616317088712853794279606288272573556396547145775892952206173867451999963274818909275263693458502965629205256802941209752639394491323707246530212289696504642934689963510970136457409913843006408729549185383821008804929886820121218298808306680362795249113630343858415237125214675077686888791357678085567384795933547502044871266480054368527868032834790598193935322018998829611221199620637765780432667146267087118666837562287310896800823053135225067686090328315644157131361303749559014364359165097962171322838625796830649710516186666517882122124835269106032576165020922332347161347361418964456652667850471243411720710649733211361232052155227175338872135465080250411542110209717330948583256595390392327295855057885891276071499351952807922189375670710403333637774453112993540297845759376881036061330777074700485934685869329236022132733558321516048247067686752701861806831623895536604090611162962781285813607432709429645076601010734202663312325715319193221319245404749839598314095361672944183675389200974785264517830023831628047107308451900966266689952824161728974756002196839293165764847000955998510369757757765818080162137839465328350566828665374230319210673187840155133384112755270094439241705199996406634314572918946514984711086759727518044288932517172689393302274397646846564864108894010525221499492798278896454078865726450098766293276104199869941321626152382371781098953034299831228040338999777499668641134915843877291935612200815708747612314531512194521594736174218481628879617925327550371708009291759365000110253152124812014668125451344336741006233041802189641599274410024215308557941595732595614679116835150408302586971539793166284906966584539425423963401816461890324721725972431119197897717503287396945472101948042607695150909177847571635815408688983296809167860397853819211107126933550868612219500943200927950198500739475752507167870533615069539894286048978101722802903974287703080172386719114498517239790978780730068097383463643084204496482273241127194439236127867686936584731838859563060449350876639434536573978398868744247265692912366069811657610336756013705089152683586113550730311561925015049759176020157884999958533629661585474693177001104191292649159386293818811301990578432636578983686474207086145950546255699729903859599840744283288493487931687392631502678319553615822832152797758235359049483211032687012507918337376176345098209997767939796732091739611017063941477636171148015067763348868061843194256982260230522438056668235299216008893729608323332164921783338956241168212136272128121130880067814743415540306726227381260498948304619427300943736088567906113214472387219678703019391461589864406094269428617885395441496523444807787000906217536511993503459390452599377888256959013060109572669770878893137567798647668379967436619267908086965823520384043921868888884967356276114278415683235805994257002244838393052526442212301983582324480831104663181312506466850987118853419654420719968376720994568936974283815679985225550005072170972672547423664401843518021262406213961464223176948289716482418112803089758800939218218998544961363426154800394044487349114056871187068438494438114606887402952632088742712876219534182849501375531734750660851298668315109991299162766751943440852801482686471784946571937163680341859638366609934287057541516955602195471296918438223948910633698562990985176781915404538781149422091864601868072178609129765250196222718282833695248125603017000625119975456163213613363622830165583274428152888957882807458832313569359498346846194536873273063098125452247710378553718021151207174580367159631633191759719030528245921293759773707560740962775042743689030683752858463090941903618085381969197008399686935067159153334966048092093037481720485061793820637795564270059966734343157434936835240027570324745009685754714025072689337444462979678241269043828023571348611488758987572108424751825941770678463046862369994127334707352089026659411262491985763606023104723814818854594516866745735871148139774044195589471745747512384394801100799502839513469986838435696847653995148035665988355933079108572756980934278309763805636891882175928961493250587678249203951761343650756430890779979455031250562415860469609910899724616974593228789606021160880978902877722791903294306999884937025160664713846459579810926275103824350777595829491947674308140590008666484304951464616419932059040084334294036666651495456950335099868612055626110107196343364727307424243900006206761379659176386265561863590957503277062375360928157833349616778875429718604116603608868667046132834867787725643132162195468908438851939432359738951205749725110412454473498293781772523320652104555872158239572209655801590190475570824890353004227310995494836185421650785714213791905610771765446582732598015098011570142873127186911195762200911072385181866946226248512423012866561199216652557947109271837332014173303120199554235891478191083071331095006931032271182647197169134658197540699938145100999486220560675700077143207787677560939336138955182511930666978889395928622163481510660143517030727160390280415286019545264026230736419846020329793694235607427135570072062648370635241892633051427355073757623193832286937467525028598757010817773662669770197108320866552478992385993962517926880478360494069647145042583420418073790872127718913362557835334647674795518694133088453435123331178116803938510460001313071513516071409070491720481330496511471005090396910156054831907062488515469127353975263326073484006914965957705180640857090213649161632728443448657314100353534329846425774527365572536076659853173361126177265303128005242188698956077921303449944670542149149070871072335951807376948746758188772424487609024719018421506140097679382906568602801386978198999615829862087961510772967093821002369988958053036520685919123386455584248788650958514737679659673643220277681361558968195655198864882889274836056071242612251509968354819000798083717736145672082957370158380757904417785566762147882972203047687076543987992173327428572504743505147593144482830645863837280324425691758404566769254626541835352789655711583808579820766066656188128523976089160439577174566894343031722671973034283855034041126425941818411518069027654406683367112634102303242095448877507008017036782221527686565244249243668719483161136012906595605511547327360505822335701499268221507028922124803623835581887883862628802392337362449096043623765115860103320464185898164619027372065495367928748717146516027213385624054823339719657406741610747081492289695941375007887903472958998810193691085151568302975216424961575990151132145477948324069701613971782713244904853672107842749663739403844928923790486580474413399625345537227659729468039933869539044225696838530107203435770494893437441755321840688036150841175924182641993615428668932169389973949426662387924222945365963148472119864064851965538148243941432262224567950777431178435159086287913986785017580474657567022443013931114318193026066229949402640971993069495823849567288477926099704644120550977084233039930664412437907668346498882619829380345629368452318536500558919145938782181599768359860715771170234045193135764532330384430090364093717989377968668822719854300563550561389772293384736847622888525243383483332062184087223649177873193676306231975569516675692345383492616642937452192493714207000305161565611235659911945541996060924548318563472393529996088822573837380769195183254330351022786662804578398021085207199203556841396347220663196026133026076274244553492218995947792668903452043871173335491090128606679708261122246695870357621198466020791959506668675896393829788864190929468012183747888576832677454370568525793649505350116151679135378211523950741804945113386556342289590992031869352311946974290148451003867652476608877470932105096830174045668599007976426066119824641021405133888562849678940504091342155742342159701842292549471000274594023077055023072344555401460601512386168374790653812271240054735225188327952546358542378515404665023669272950734368456883038101116864260093376592051973340251427276183396341374627041345362389033599103509642970510884127653549353079910881233352711231909003983101881730989611623897547890825486284173341742992557342822846651508166266582509256358033028119018967116991107094941528865192261571461146888879170035143390879164149977132282831787985647911727106491807774657066687309994828976881443708648818512313915346316788935739369737336417441180546014717533387946677741672512030975131604845860890667298209793138176156151301493016576784918010509165894873606810218955766057320501940477342313411410306087267245808324667503350818192914079965403488593696451620522480512954679954372254237624977729921492554130450196816137104530437669728568485991273586694282925624494333635082378073178735222657768936101391168530357781873445427066957798623789253148612043842633737877602264537210375092452874364655462267472105633844636030171565109014627719596554494322925967946193564117219759534782286296015784754429084830480156467854439245660033697998143642533029097196103997557929222998975969211388007747366032096912514654130178309483356531814877491887271484078589927467996466429044593788954717666921937589689712148963049770532523004069988026972561278036137497365368572044267629665822943078531758997473009448618278415108332861011340522309993903357607152233364744932966281532574968024301491585206520375409325108784770816880855363671099763297605121683989191074136590517077311121706540382168030569938588788980931368611027435153875216155932043167335993974123669112629348612058907508260092422831793803545332531030447763210644795903945545616424619491318827260045929167066576923048351533475677414217551636847005452728953884592919129472001627753916222062815268717969214567698569841152491146763253885261277388009494415031976051521332217778113684995627193313900972074016793243349467765359633032185210240204425459861361091849684920802605361404949827850462599646482519356238017631953255241514822522073390489209523645264678228550503896756741371407484278268591707765458217908758831682450196367510261987035742562760594794114498715479578100606649456913960882115931485705261885582411917965840725130280996257706682267382843339356228681852991368894697161320855886937700350494371221968003294626414038071180893939201635513388849711347273793374215462114457772027531174895848634305719073380132155184640287580301502134123692662791253897864135974811778334314460029405820107253424834191608173993007730748555897283410429034841050984947804479669584504110808353350338966269231747700747461735128573937066010416901445923094474762840968664652020037904128636288380029705903152447331772646340483727213308340526764538344960660540098792412076625997611082579880918675089809395423319030247072560051952996194791254050976392077080808553161086030988814891667049381361217582341138671042842872152470182540764151801647257285886591335630036616359269170525127330860469810353272728974013753290630076396777248501436789185062851895195346079216785924278046789595135679203531037148640814551234213622732704750375598258662893981666390337945977861539402939296224003931648361075737768885471139706178638653437787227383671213670820802985688249004754968475502817563000466093264271639136435098683163040148344849859313552201946807155857711417473322180808338725480184284760050764907219632742267441370574819944340805269824566098993989830496920455099853153456689440776727101165037137866306518403649864975235204132279576028670849157966578806592826666807989809405319730067781563957738045115161699813468252298486664967888905441649395165789183004728951084420819731250360759016429415289211970597154058474311260380174844179254922588463943204354021011000482335444962820783739227060329780585903755666545383879828084488223602715266271451022618375475838635723958200252044059079673778366584421858675626056540656313806147057053614117963665607219936100528721972343981456959696142835550668793861127929197923996566360308004206208492794394226710819894474372039462507533974649971458990384632260428439607011645296360068354272575060444120094155558251644726241356365818599174920363007995360182526702828142322410637208889251778921990829579492964942094403308479823942068729496694167434166489452834477361778982925800910758088678359277873144037408330468144785658147773941006987541984716384831577677161796778042755176257997084439312653826421853883603296589036574372105479373187627755263102407256183379029649146446579163284176498942607706968730743953607835694136932360837713186828061444029600107599224785728963013440818164431955366116104914210090628480595098201624371273471224089876109932890577272519296056708583416000139030674734080104930826868739810947426023958664571731877728077635841794137264948428497531254391710310735885811032902094389789130598495272456485715563630102472626181951974669281160873624850511199214890024958772163725635742135291590992434859197786110579598895793735447411978094074450887257758448081782182709476546173011118740996212675823761888664247152471138389157969719715594576075450740811813647078481496000929490565251886790026371199121359024448525008360476315299561617559082470354264021356229788427969002476575771270383206408161535445622051577769814283276652379906542449632940223950260113899702232189638072614570115743390028715783966397985883030761318441590376760337569596628184725578910271992412750959043668863316060778544318826413295414461269477577780148241072281070306317287438190591098888401500242458761636567074544708956526468628813600654098235113621902891589958561047395362727169243464989890555250508508439991491355789803399805323229585300982782993535320957239643277335124239967237682906514283340953930878276369253555521424587301531742384170839029477668703314707321249948298254925486240950029645402002254660081589523174264401453551131720883940039970732220680998111487364078921983719564906995125476485737845713813976449678742435629307852110924128641493520549857801670819034656526720661352427945042748263328913955587572966259001491555341804907703687031508113956076911458821724734021204281044529330740281688258326220332724812546104178004353073153442568654489229487605513611709475792803057760288580897932188413275097381693621235621017698628964603746241419740878373378871804162806518732874659211326889584937874259790674928948560301789082494689690986355946601344031922027095801498066244899791954504168175386967800709437886089604811295272187534162925344860892820587416506878184703796030389182336171644292161337333492348162864924745019684818205947933577474201387845281918891027965659407720495335589607783562263465118383629412484094784300911272862676199064318867205018666418707871508996803738963791412673269701495088326259580350739614538934429169638678351322491119012930734639805871739096641242728450158792758007070829251494516315010377790967472631026421874443560922889665977005606264186894563428169930747800099329344942251140524871450274852496063338236598018644811681100840666831064577009070632943123132178104820282158103913883860615307375034786335446617841906495237063236278918089599570378683193448296231008146426870344367167962396853500043309958759991394643688841630013069819865937054868393389374299836874610946491790881590576783180431805347060997479698970412268698473380461663359271039711350160448287840082950084681734524216927639734318790880125201519918731198279980428866901882291465341821599235911944810387997712732999573144947316927726713651499423703683954180906678684285676197245100300517731351255981743951447114177469261558293616226644408968457164522925438644770269996580914129951383592360393983118445827332876572157132864806847209855747935446577528225466535966902049990655216979559198334889278911325201614056637999253842425038568033411853109355139982864428415975650870717716774651808192425373982160106069314140195275753243597658517422895165851775945394785289190659262319488831631112068741062958045324468368973326572216754477629171891551886067648238473263680440974499871605292681506388032293642646188160841014421177057717872283564174517520673207803470686417314819813550639507405388595309087468140731403461244153346562989602335682685979658334673123233949062668131747912550661192263506730391802165226894261658254950294939849902331655793874197323051923351868207654115044806781009665805195320629376218676216553955399499759782275590529396705907112236220928218264335375988489344748926485937247415581163767710655346432375256999117134942281372621731753452443261534246974042598034292229040243378480999751551423412868127726642269602634137963528810321778587499666381216563655815133471476286976265979915542390830654738838564474859384839529127277884675397832553500051490316636223280827341968193233872596604348821669338758869429752044367163073115410286830670979856457860322309400341362860573791232498408599453069269150724994769623876942144667581990570924217882314107300474254240412077674654235353515267965981683622500961698469362217948009210813621040779030510190722202426108547324399039477642521545513111747590370724147396008419380807056113546965081762501830164606234769870542117194012329802263386715897017950608006366382244744191100004443881768826727496361410650125887217832168276095767073112377318260887930057355839257920939929369775577016149151553086418790627630967281001312142285488858334255658051922564881241968761540389530609820688050330779070604885677948423738461634207864338774735492523510378573592128059563342835421092566018140239984849737396034363420466934689877736092499292405084872905677085407327349235219396202971954697343854874056639897614899088048916192291928052922675743388603188422404543544817100229318483674357798274171420711611631291696244344613198345739156942447044672372447851507061731149474137842050410181838648205445902852730734075839637070155394189451015555721540234329721656715833028121818018507266455244012037444739514289288005653558560533955197683875477996357846041585690674214083013630839918064825964412830035925871008544624663785195043778393032689288092042218399258267219335890025071647193808308537717275313156762302287581548295609206366650436720675330669379950955899929919491452940102129321128673820931800487532402613507568120819324881428577635471202346634011708703670921044015869811877323767609721274540533384227400490615591288015031954618940479467416885327289032085391560681842978965081764676102714947040646572264896951737330074604157023942278214091244369647441033087025689938087694724385040149706973941511987754470660252997959303913544596990886957718254802520348724211106960545415594020068632228854757778056113004045742858052642129527269114276306799778859759119459773019877775873499544837080534505473545410020350902267906013440246974446829788970467596791400012746684551378561752840121030042228960669079043552802859395079478099151794724847761453024961512604699617864885219390642080635276606447350088159672985100500799432123281704662263580952444627427436893357761656764729762712878876350284104521522388686844448321407498617150205870545033577057915045420486381878103573220243695309074058453628718583682160420286799695622566152233644017233311158461347198626218097086014658820859200754258302062383607193436531735418303856756616880669735343333912682033689550873591890706988990236342278164419745116883894452373845739148628367589428020985688423714688274372682401771055932750909444039358392075143844921387740615507194758856189473525884288117099522805203882850986489998154888492028885353408313035905664317594634722195666614186741027817390690581728164893536613783738698818624554468174459685023751242790724572666617187047591788948715620442074249505513390509017239520932616591455897815159763853585220813623224563741664658169909102172109629243866093933740625768571593653206197273789981531664528026837292863743626643325647788444326064297257407498083427285651942674663176534704916574107202643923779260348122641583830266323339777706105970123040176275845216776768957635918914230248239470412619621159249516092013175308445063873857362488046709224768686941673784981738905624592727388103645334088754313743092667508968620290711690039320001930348437376622049966951951701991837941366201243770318914520746454856750386837057579927520947366514925267627859550502253522175782433767045703300821228348420213282815809731521486551625188343624499537080333607823424742550521498475207360031962846093145398666050972588248801404598000389157130235032659842614126423260480903868131574398488030905924399551314966666800067099489262812917497404206762732609147056827814323639259887012811707262108749919648978579798528727301935211107476216872014834643888018651569380322137369885779595624372708050338658036794711119276494213099959207266888348028643768739414664494323503639139404308396321378955438169736756704165379287246316138011218426366008125995642009442948430485917934035387946703003140216076642651404771121885861447384037846982178513630751353624054937726693509058658313393736119687597072711408384425936471048227164969012332546179974978953740446910726041774181045134289807834731416042379427817591965290346668271948692855243676677576567495009936986982558667915440441153893877645206946438531205343558641599787056048426900645054105779102925646841052045278785692164731119545222317426286614601193274818289056763830992307062121471253660936178642826610493795064506926914707331724388433539479505725209039616188257116233558757291392370646814556053157022211514458443070122327081549883193879182708511710034240556976950514981544278380819857312934293287963443702567015259979107918806068290721683049459874147932562515415496252935611788791594053690581011981030957770097424586453069196484611501771128264556230598387780776369084962191755038941452692135186375636889299390241388470242478116205489228673096599464999715951831249147833354664547103828850234718691364729804002080576933003768523250488922019138651445942855143454682301790001184409030599554382528496496471843832267743201208501828856587949473981577052109361317594358441163133826734587232510053337368367917794765469441781479033819438659541189148444565805556311716234142099270670841973007073158273994116493980509021301798033611938602535533770022056443033693880215202025376960866434026472896336082420082104811943117092602582071782206307245450396222799626768039744282308589694155462406824339127642074387252002976450702416987826053508784494301462832421760092099239072055961315019158180730662181907820302151981281240560050305791433535706653180559356298626875493942808582275077343994547015354392560852582171550493691004649376966624646066769947716051952422439403086825765987613512097542913957874783470203845176944187197227981841991639029964461178551897700199240888291127479937443361745394739019908016055255439155941283227395227525065079828593945476011626690438725562711497936004464660184528019104772270730597709578438726067691421176658996446922142808947450075274478658564158989396926913211290180347592362350194249899526057159934819879711502847556568427457678666414745665041076134659254078331683413933446830649930027560199355308341529245560246665485318281671254575727214316073696023511315849175952588714639264921256604426453391812860540009957620747315139543510102663998522351154747622156960221318300836274932818733021242173997814271157115023039661314825613682428484634437346287089420612687440072748208922276072879475088392169937232754399190933809635240178040392998481967809904927903059414088319327498242607552860006916383210224213963495664313701982071732290663522881596958003256920418845438976555470692863623286302034810500656151971281375264477884630945739024943135999253782736948748145001386985097059702296210039978106507119157327526298466474757829449466950664160503143981771075998827157822294008844360146389636167672383750875630757124757614246122637383909883835138478972888500291812829440495236615980374769310423890707679042973675204910004612684914157034602376815989032410779709361006961710316449030489141748994781339180557851433517952130392920963779957044436703588860958514175477031176490441119753326683407704701889203752795091508916284627896749162140394261802023727546409894438909353008379000364259875917889322426637601983329734275434248883497462113174021004605071315552639889461992344741371467326157453320542669296482429846357414188494831219822064222966054811699076683833531030156503028004837592332487765086710733011144853710705361922874216563858425587482230474043821601443107493439939018460122725495965358790082868495464534323946732526782563101928910728128161723297033782172587157694567210614809248483652667012062533111298056633310567602151686190532746437478257080681802043004043471451300661595490179930173633571072247125013923724105531978548127347912377733693744433422319687744297919016572671886587385356753190230102537044593968588201726503706099273148683629862301333596173814347485509101773339635809628879022660735633792265227906271302274050515346192863084760001763675733461925979802500668144089816569997630072649845239461852507666748866730140386344388205180540191461152241194950574447001942272194966757803095221192096972473997836264717345911017687264844216489142845313787152523588172208825101907476556838750446624279805825019551183178674006409595022642286481429028398963727785756921544322802614715605018034819569255611665513297102783456973999333776804741524991210899883943294084079906970135364438865927721375000742839183101996729960572496556105670252652710067419115507256665306695799730084940675247419078538161798422251960085517258836143068008983436833975629019659876380219599320692832533208613594798027163218791509703487617127859389497964195054065876864096433615220307866227948894904783872693750413337556732062923616024933508762949493449523877259850915284428053749267636969345429671313857904192305950717878707499908589081904187465232018952745785246519049984223812711278442892933508549209180301826485286174935767521634162168429627463265311213638586418746514163379918153762665341564115297753439369459935647991204076650517738527311299838806729579345967735679472245194514733706193906077646235385992407180401096447406428863281504890020730256534493506647049031043198898025655190476600323255780777740037175263662494659067377571927571683198335011042965090959987378688304043769803231476647942045895902024346194977370092043756314610815283099295989018656131032637177260723542661319515112573601264484942158724710837321333255111612993787873529923800082854566639692965881209360701868863173517634526017064071932889275898731785903587269353130166333959948310253922478222791605436186545839613706684655894576703297601146120066813368546087759884616739239657294274769800542439888469079380851661435386203577580461756254935149509397004657832640095018158627817979771281197041175596001491231972081310553044152386738315775860326287002042965960686851799138269239008618967395512936006031468093160733959200380571152985020234237806462709877091748281944412354687401441971251406454715718744777802779909456071017326530949707818892965488807046658159575918862055780616566605169155178085565859958718187124774923223998666971075604561695536427854773203812824045361051610124311946314521876569196480037756588330776993165016053264994033174579994847818179913772638867044578631170280239744459224272801621036312006078723740833484496941672683367213685632689947547087158805056118975548585640420650727744110095921540811101418370233426685504066668354259275127013987615404389526650020290686221696987325347616405441602739161923948641951088161062486575345568045362751491576261270892836726700883477703256890505392963266485993946262808039879845526978664916510958023775264715145620565273755465847445160830678563676162101329831511515784098419516397830859292355018851722679159474403259043013998218064456278081126967335014147728756142896139340933878763143412501812978812999650836664154609325354888970893630867363018004672041535218519579709365554802887943236064984046202765398245793247806806648118987205951353905876685548267187923440142434229738628761997248366928072900616362005656367742460594357914170459557409003084742833863940944496638012087010463706174896296190243410684277081479403518555942850007310974747358313571491529779169403916247467734317273601226840288696952733556029321946606098058829766641520994960393797296403845954028159224460346926975082660814506054686570380286831070893554776122619331451309491931191634891527501614223826501245500971108051777528181931016697969912915880494896317851371687587565280323152981281963504921157326454097488745131141305448429585592925667014919870383638524484006047385150362023100847272074872667285113744425304576632961781855278362114589407981015943509353256792267765082535035209008124476967934591099031645373010389729536805858405855349073572119037509697817514142145823598965783615561785493706001121894165267556290260436754456529521681350831098097911125859962685476922867313945927052462452955749419283051899633170244735161790437139642684592562606909917042818040513075681819443296158247335159510558246776874080292041806248104726145340554659094012506056413073217557915977994839216930455678498353654503568245968128616612242653938239770875387390591117757850626826129643679085093279416826795380869055825628443792605367831242668761106535252797707821308228659088174099355775606934694607604211554644482168002165147392724592794132762269944318218477375508761563014432134315588630031996173265672386016280172424783907487410936085037411924603161424453568855175810664525749189153660243556756787908993426300385232650465895024998191667371943594209060066874725514951112936654830174394719095574732032764411143122053313882361651700030057898556883056546431519739260959148425596283904797815731819664427800786295846855061785200829023346046634227183234771182446747792830859390619369066144563692562535385418056317858427355311835476203671182358410538980782720730493125220415352271060626260236102558917258635765575492617000486208622611775574167541836775836797047300309639421714743836749692435070657541155344045332742015682036896192569236750121045139717647995307846314855072016034713064673440520830647478325881984748823310306198927747437369586903884959132777383128975876526163952335556321235128308456122124577457075063062725981951071140270705378784004420875172278410000965337012476560563622934379551655550807473284176963791911096596601010097219544629511659255142025314687497033089344159594800461487877601728666693376278175985024137473383000690924696015944690197350852537097265623836537650638888656614516126896530787869860939388034279927613302861264441964732092722930654872034596529234586327963976715489535215840794481632792517046807516741080501948713339368945748668810742603463444291214479039274785985153668397623446083191285454886399857969372482394179535030531393843962232959527383554744347777314242325883124463970956764465347511626102267824946967691780319337679108127450557699842128281807955230454585077011441416329147739972665526803035981357055189258976610445616934185455424833415854335873246739691137231372945611748758882921737048832520430169696608170013909389350236817516028137301326047249270497371354742388315547185917581234581858761303969492759100481790496305879092366107097905672520938108832850799130247835719679807305641669574191553332659792602980829781815897042525334930917339148015604949253735047085898978132907686332729498119566584368092296825970239626302415162869647279995600767423690634571074098734423504452135350863909363567950162480877531991534542720455790599156441209595109687654113044775990782965912918205128623769005037517457954139080413048341920312306514294570972045103501008548231658786706927726896321472291558920194376372750849072005529817510088296296636211535182126578566541450686272013299487160563678317740767069429797439129714375717750671036587513879646692683604681870118675683556825155106504164575501183697507002772741505799453311725299046441749594488829488014986011859128498847908114068673902841002915421330878117665806282179334053919475476164980284024701600874341392377993532125973368763641288529460560686027546033512182138173600530271293567658950494767139982215972678347518862919789508738093246031064229679988547195653345042475484808408246049867740218024201669428888524476224291775135176497608359176935325508547389309305717621758588514297744608740459706291220928103709183751234208990316198713966099787846967709804937548991881157861241062553140114934928567680842823792183687335056353382271125837697672860900552362100456248451309412111294825243345637158863718998537211736251705919837049878599526803801358223773108783621502082340781125426206753956195143109555488271487544240294985212074812641237257776683264613831358520545427745151847360171333148805306422021702095122262442844784228681179772916472855084110718504041955339875199542043563700431287930645187565921705066215370159214188205443490420929868881416964168828654409568788722118834407857863570424279645964025625605813415692916743298580784157204283892709554755700333532363433357052685746441048039276727562613516167545937995449491834109777977853742547344069878559790885037243816581577031878191934978329630554044815906946701424665888136204464179206497785948925535890107911050475097124355318915516139922825212956316766354346187455009484043082564502687828010983326241740519798052073363173603008200014198107203591328639879059740907305842984239959843011082674716326108655489796079348633042671451012492340705543428420626639548345927383301705342582125972629669922782287713599183220168175021838921917437894989339087697483600765462284961294639034416110873931719918982317573736752451251054027503812036694113947682596361797094010374296991602593566522116984226563371232477037292617778186071573214770856798395410743861064478450939985472785641933026505408897165096791007937662475461521015781750645364653405790305406328471088919425507867898154579884391456484496625563761095915687213817787393159651987885543878600682031841054193225159456224563140450671012916256058994880786356251896751084605718651115378216915107299096199720315861620096110168611297748486533709126632204154263956368269996593826059503694564187276223783957382414535059414200258174188530717159463615412261451217943080743086010594856374595829598728465960635614534771890598949571815769985454537996952897945076747676219145179723730235363823945843410305309058087969691877773492823345133709381025093494895695791260030674267567449807912634573975759753069673738877377049269836538880604513840620114319240192935086625619647486275313468422188964490692055696460433016245062062531251923730389202819381927973179334197334493918101279468945550088992731411862982295719456004445650569359574858003192107736319721020018909633135034087836532614157838806751144371764189719344589877702296446952070439389194411064441320578338395173479399815766289233099085741216526466040325347097276748963134088324469599593726655054544071391867200215848810161754362354736395905799844424876581968855634729743486924859609319729070682626233438701737900267340850715402356479011328259198866434615026677057476011984314494879192579904316407915375444475146590353087800056284287792422322929085415099066408076449811939591108666733943299503895894377355502883045778263668328039447878093280435831590329042530787356291935174315723358355835712640114064925496632174668463777318504829934598523658295376445837622879777050900423193583209849364968361046969204036239299229156522312986752746699238872746536806666240925016458485539209185227422900480787582150159611691905710018345050709692435587112008267231242460930166092615846456300133463163197093681112111903750181268460684585112919917401841044524847729079484486626918349610632324177411456640829122640237469280034408666801432461727926271698956788785910938070605501257455338870337910380139087839945290919464715098091856974497816282361564156193909120488820746030959915880463861306762834727685491918763283630478922830635931404715671266298319653540533936664881593103350787670444460151970564044102431945886995317553542951169425632770346222561562350960191654270386198365177248835146515963888632163890667284367120107206861075111102053014336233762646524530687942687200627530700258134094850091859318394925269256017935209385786306754184709040937513863652836486135343683822620183144829145786348180663196112631791522494503961095899225204033054311459538563964820254219361808364232845755572730943020876452799672362325627015086721809974482253628134788331134169992690951408440487946685853612387187839595963592558691336638302216375117844521561130146373672770687244751318214695989689119407303313399608119267634624285639192449024067498074425308940993693870459907255273043677240100173508901833417669141919546714558340905984400345671388732975524147389198603952872216283958823906178476121921509633992185980365232442681603882000775491516608529802357488852484657705604983983719482195398731937049892700405255716009640437795157437849483289642284209119432573303237717278387425814594215584043870078708497850573886560461480366420099046750200459304629343198171550454214652678653483262467388421379050526591363957726942616141257001692400911544177952118143855723320142605410024680921949895117211185252958043500783597893978645315787452392635208241735157500692336500650125234108077737885265433850635006258540660087897165902521256854036427353390285277696308355978628156067832463540415578711609517532221034800542635771091139628941092644755275744080479929684544589650906059128013516742977724699545301599514794013153676568335925472597040380335780184204114833756417320135094507597210392286908367657834393494308208215488235652390319725467120177819308804725640078353700968934729397083846896687979981358065896657193243801631581985606560923575299513357065111957815427119130466438147435262458289711387031868443064153668246622270213715274125933486264885989714829911247835452416769662487353302443273237078296779732904231999316047895692592264360397623906569948445165020233259846632235792260502341937113065661078272467020934824039256835574104663892663063706832441658869302601441669928597406783438165029525297236330317731099191489340266433237962575707958141895788464783335875394603447257860821133782361733588774606967243832401439696683301906228834861733244912266637057148065885307841924227078729154442104191419517088674784983756758218572213272530652365939740745535084609749052479554117086714241879546994222691999870848880457588884398431099995921386917943283528459568541297303544129320236200260831859039933341941181025855548565627253609373065787892133742535163820273988831303453528851249450519186492114381633801717836193879250468392310305511249744614817660370365098360083270920572933340910461445433899686193087920594612341816798994598921239805046659015193494105200147366828891891146000571161015544886739160513590510294734474026105596597990907658410619732017448195501080197701969299826339116002466156434675975964915392162487481228038942963971092462171385518771849813496114921140094542210437598914067043265881679743465555891024739539497493845771052157465278886451267645595821130070858862166746600924354690348657590512176152694017715091477042485042864309766745811312935515959627574554188955099037447751769135729872756289010700721758241197338970148744327592820594489541077994940768276358000009548200612868261824724136694877095122638251723873553385209483077874672197556727498274731702445794548045008526404618353253760614700663831297771768961653038857213273572460295911582223652468299196048711054803199484123235387890341500775046334524750564030836526324216585629967061456104708292253442002959126091112323035116314565367201800189931476152108860450492425990254101191189483901539154511133836982642708364660137368325275539436597145878644960653167789597201775031822990607920403365749440103059056419752565485906696541240944998347711310562478136798044915114230942588685978605377434517260555084180470595753707766496629876324531565145119776509834837049374438874778523349443480015096743608811062024349869500249975939699139023580222286922823262555988613584959753208916664367579354980013217203599209627977777232985624136093557063831155945376886173698001607751937399656907600940694395339615428261815896666465709123356066530463195549954571458061866609186952863120710580060434536133200215434547612675454815666428828387002274670009361197593103955550199278537059081058132826996962453796522731904821695725203475686550466587641832450945544808168033375915189914592046316430412919981185574962044703628634685016849231266070841415168073090633026884009304089785444667086773792970743293905448377670669070948267044032820427256194584294395853298245097006659347286306398927035489864995513019640531065206658288972106332441448529701905997474297603393020514751833872236434727285398000308881716258713137151659111035232755331994341648661802600917405754568970558207294388412823003861649132246934733258005595355837195636108624730982794380940765744212829087341655819858193860737620104163717776406240890129624255521016771981505481072078344229878297648818511029300869779475100543090552748462471796757468022871537393592688498426001284786001288290797702376561637774811884560220317968016867924094396596620687861406585007059251033615451107529505447602800309581328329282642232998522051242760652641375191769676378687408264030472008434355341555180452339329910822634025171009669480826779162196468930179339096477654955133078701355445238382230855303505126357283428303105666449929066578869028745937356605886955466726523512560014971416539449179476907489042144300011227015971110331201150452890654621964564998118874122293973765750479962451889004144045528961282479749286526667073749182830182457463978156773236060750882234540117182401038461550658571325700594923017460189257395369606804162389731917841445643414520248475075021196207208366373937747612478735172690498253052472688567598480049328695202456130035885224482285784405342798800136017153488674579624116662935295376849380371865190603946406395585032634243664828976769246297611547589975855093834567427953940412282106311264782267984425406041449953882859429031379925566412202360082839205364180945399780453177947012624714980200932573502997130511689951349069542358670010120766480702755466545626915073109723969861483298338679046616698361877956713223716423419707989466812608378269338178318627106108858205648205064563683119373293575128877543163881015371761125447453754545044948853978447404761506581746015009179246756423005653128939266879971387922557678448275324800916871500883917400981036944225562943762779454930320346207344902104829357906786744190542645356410284803460610039079310578256724262064639994319441313510613324805187083975343640522497608187853947887685521739515080398502469549500770770024297862446686791212289613358894619989826509620978111733971715215174687764962632911039638351386064670284538615327615398909797580715185124494380702298336352336218791059930501896869733692140593551263298034608711284462462016935392063589373104416810115239522370382300017691149341028967963948552545851388775644118469042695494555578819307673453436668682332015728542249226405123192146265897203175270551741478292584681429082701911508117382246200275575185572066378026943839500914115402687403658937107404663935054331379408673220359405450119465271972505790942906384041575601404893171605561948201563296171393580010082566486131734128181745305676848407722812987844937851766565816650743283717023785128061500034825681361660597799631472429150305998729637808637953631402963392133783609298293044664557985988026571291273578580555380220056739644609183321754313593685891948966109650438298811301969214704071301256438244901852471377486033208395761514725560573847922501041241853030861679435367979470862810526693566787905370675795766795038169266567755168068169539804111670437432187343094140151603636869021807670392018036862670525184173588751689944999776118746387189066731469199543471508638730265556729209161444795657931660353729685322778641110240200273347430709006033871878904605367349513651165744223118375439789009047991084688081495154597073987192372874494802358520597647815285588756875015518684801318443622004837263089686740696281730011475548197027046605364035788277220005045415870864414802956630259909529524334288674468653793088540521226812241434628980328700975016781691252962352056900483881966820747520179125684892200976694229013679004046775328473482357116444603753019904812502820153944956042800314381283607479503760297570141070235190755614561248173655079281972000662963653463737247878328780410295285316962674926682361076089777365424856834007875061275832801528743769762633560723168109843059282854173886383813005453531664556033762982956016766255975712123852695575497339142562747687355977802235071706221621013608163495107217037637848330708441240699256117367672970684836567268216855717246915629490859803404941395611097074538063295782275189142493946466610684139820001493095102868601583498959091011217607712377883822008206308480621949108925603935461724000573419493459143063983993105709043314209758182806098910938556990806559528279567846006568430708542723880537776276500944040657817279160953486634922147069448673834668292740115691687971573800757898562869837720306552352969818446530430247803628601732909168976961530062496206387441961823984014750719743095506138547501549184015281328603370653443128587692569204373146079092220067756268591963069649389917356130137896681263387748130299764800446036689709323363826885450062937343425448275993660978847122930369142274767222406180550026666179086572033545627949377964396447388594329836296912397578228157025168756390487148214795670316654263691037253891568258490744133934678224716467277160240124325220371262547663822074203671192601202903975302394264421565737113037457763999124533510811824963453323783467654310906578272989424143571959819559534224045164986369199634592843344576345906646914258476212642699384880200473369696938869323911052348225647160992945186693974021593803979748581771759923765914290555583189442779884765554399855604047313579436351430983436624201141175203958431833755098002057442758538329578493385328013945285300011462835021962753841600069758665721201938079928034970274881248073602996264761921129732003521508881994494696828835171704013762147741647159780751182663600871807092963386876200533454587822170333768984105685263445839671691384361168937843700619051012934767593760050968566360477362072971173235469472338139622906598214638703990919236225109479781691269178804332037778581178504120625813298945727481616523316805251902045462907223268709681276902538116315802396896663490715885184832229311359891666748902835021241115132699940699380605243508559425337802859780809584201991355351817925093450235811830204498449279832286809625929462449384954043870571119986206416172473035488149379953052099006255474073462794253828619384057020334028985121594397139540765237759697979798563295353977707717571364335287871750775622424656477322538005919127629969821063392504317812481086004130836121026047418732246447759255533639597151654007847461091743336838862547285398438683968317437056551540641401341747857538006101414435000988451767869928973048985477969128047643280734130192781620698705166126809950548149936703680045193062680270530018166065474843879880100387758477176351115125972109456272560944868427876271388359772428567445072088821965031452747052785228692106139241442108482877310751594593754517377374390829533756860624839283739468457670458694290722518876152572633197318525547029710325775355204980010374075584398476619862441818977947748095368553787226094813977524220741391516067015410965588478353117275831355775059087874075015463705489308987963265707299122007364348294803906126364306303413935426013125214938232382518262859940337346351946938661954674143233948214779085982082031066451867483632718138548483903411974636241483389805388386773795576114768048993420935163796584623814610179778156804043058984207814519501877320808630793196935044351320112188900861322076358618484942364753316075559461291508265360384701285827660647954882674828770665741071869734728375397045415639363060299060850734284424592229743485825809452437382608278844258017482426045918971495104039891348747472614110743300735400532211424530391633889840071737055762303939721417352084179568849176181955742867096897079000750256348359814858226003683621301097097519271536692955986692340738535062539245516604197668985043162327237638743477621411443936949782685483624225316996720217753332657923674089636237620455041899315187843325706197952650854540877682697541266567110896887964777047662594130807861467045504464972539636714780642957905099885108548133336593988259202756500835689122565181111831118972492893663409605821776152490648534382972916141261567841533579992563628279180693889705080419384721272434680061240082298737633911051209390349218114632938723120331107441864932480413229059835086396329912306133788657286244316253525058475595348923214169945822704846675601996781761824497526231008874748251324024962763719292570428716167557269328735823697008368149474263066394862950737171558045444621681353250434117483346389878205857893690322705138513317010441796996481570075757687001270946402789588798627979037485319243715657552027140732623029117015705515742096571416796472036825326119097265621789042495377703775060175776393376309360305961044410053795014265959957665013849571561440951366723627633775567789180876750404884893492671128846019568471352848338949606192526430824901648393850279379780907225827036809493175921214940897918502253731417001210702131298558975265572871595042604992772475651416701310427939450424816234686972748820031589206494704665980064778137326270738398193144923991953225469787937287789880252302487469125790202315182464558042547968288924415272204747188439203430190904537431490446399176382561549916228766982042784238139767840031934434042983360085429582112678142420098053944562427108769932960635391443920600698921730616970184895857435592868932308186280096125194378133291069754940154710160360826220584260768116062265165758918686415212926563648349554559823139883434179198287551215558204279425237693370656712741168081094867544143925115303516911493339738672670142843333511152224629106066436833628752868794812243805337622166588083779294046445291132538922021070372591641865178746084904689792498782155959804400241354350894798768115785045280653861420816107526329207581628415614237475751285981210111944778720803759112507763637264535097427741633414678036048959865605024824047726515448314416332373402411758338760409469834912586156974748105282637001433954539517120804064119348881954726204801708485036474422077192289657385684786980117535866997233883960479602667429192551969395319064697893041913447440181120583515586092140331430603162321483951967941254999632447321966115744637479354559039915956639152940594880451524513453588437554767527194261701456493965185240605275748166736031161558910485557690036285389131141800578483085345071744066524106505805368689482244894863093388643730410103481684415254427810726477439233085741453705484087717929439200625339903941048748540311933280758607440395981206472636802404925344115192400815011397420905107810937831386779237227745284633214110143321485583320307694094910467999457218664088214354028799964744488050452452291902300160749803951154816897437077589057140615128882275314703567623409575471846915949519860016155795912158246917573931301840339978280896623833100958823071245085435463568222447407623587669888259169199903391841579668660394563733476894231726911785400402331943648686199271067245009150586950534921735569796144510257265095740493738429541092540831914338408910954590805448964931601350120567979784879018632594084565545668901628750667922517783981990002411213099596749016851675248584170215129213594822573248877532777530372632894473349688253724846341802287902255731140746472974270166782359162001499300317462716888858140475480113511829747918827863630704455786744260395199471454316669589478860796676222502913671641682435410732337840667666136075761127762646552808412403259486152903442690877595598880967957562875885049069840065143978917715529925897503477634298115275455099539958584066607105210436626377604995929370512977084054014908266283651094654970521212211507722975509635485400175704809972759719736251540064409264282849783331763162640500111620007085506751812251312442987677144024909078927726451191178317857580321096972844293535597900810242637546676052079233400218938049401045692830150494421117749521153395092611857906928589080740878109534599352303002988891363434725908153926550844870267085182031114315311991368937860430944618973738030273663014569799998078291217407993934644971430424275657005913627799258042697583910645786361677940569598800483436472752041120985512499422576085818376381257851684566596576132251657532148259169295528433460106463979123849844634117099006984497359152503867686440127043590183260284527602109596873025989823480265926570184280563730506638206931482974783555227228050308338244740007050281859626216602332261721569366068117756595902594084507091789277296819556429017037508695021972996376313743549848578889248389610569854046634913903163078664682433361076225137311789774215900370825255086796183275633106786487862240852433143367152409746868583510103626018697082702982274798636770908461759627069215007844156051771954321895680449002129562175020749264324160866507836256298204199405711382454332727500031332015018149769869684673363292881703179987008165303982344370439790226524417170524234003972486971391027287147116237218473715867862369925972534842017428256708702259174231218429509884053985549038070165079775146997664154491417550936576555933794274417486218515161560872620619161955121057391419183681230968660126352020145961284949380020394227867432189314203890109817776567743197239031628117409884858039314022207334755482917687734911747909934656997806539900465163047670864638574251462009362053646767019978536109826187464337822430634709224319309214122055819404693935976608312760759517336258355174333576149118344212473323696249755594135668278757387541469769364244706594751025825557265622305345449051893590804754971344107958742663619511665683653808005336944428059271860908863957874627263995073008558844152445339046854098882372149631968798855438570257297002532398584621201599382633309623104515767815543788200670658665615081851585443522099365252872654365102347776298767546735049481844734301850916105743127075755112723261123046917311418323919454337588846280311252041564351449888585194747564208777138356183909039923328373791136311626688849519495462424986710995506103171343051636565712775669831621032986361524695655579386198966540393113415319219213544976706574993769828162898153432293239777406869895643235576186511554416895983075200410047453021338721113308477053609439250841717614921934930504512501129080588663723879035110852953807511744010865618954167860316024775768155521867213613483969359721827285383996796794600094601888282876920846585352724598965702582512686735431018059085795041013666130436432289827303404346537028009946879662366194980066606744527845451018060840190393258607939021556384713820232018395354102124733829283810588934226950992235885441441075648827353487981827511786607061737303961898919172535396154953603587810241719757294556048638630178992526607305412199827656757404646413463692910605409999512805823997989696564287441025825289136544963707626381631068270879855197745682965042520229941825500961383870986630617934153999128347302882328158620912622459353943486862870295421586963629559511191625350101100914983537681847292976029711152765860978765299826109700696750412196010729487765455622787950836868488486777949253843829233317409503757480243618129729529667865534324891502246121449668205668368032638515071807728072643779452798695087551884891120834813473609586663772278507792363305644609253945704247958883485479413519573090492908990407303067451700094132750644118049133085103753019205325434768674756368174316556402582087473755511810876230388324906189491542313827282205487622931865930687012270362784778820418074828714379974359794507684737304532813897851792855321898002976308829413151672205829980627756283055844878938203585643152666170494371934321617448084295421271039885016742302694019587468107672734049695836917081691150030975229625915272503617228632258555524852480083317186173544029984195405517783058968010818467483429799824861838292740124945626535066974633395847921972929280965492807642037284203506500433399717066387553077606095314705952289020768051472252251181006681892811542905943634687555138794296449410648370361097838242214047456045574473604793109483390087853081607917483471496451079857882269007653869234985849493652035426726297556447123546342117729651884591799357037532809936271401058368830136191927220303561440656584353967873920663261236434644596241971226780280429290385568502688024365769349273962292095468191501064807879919535162589525752132114838233079709625984401288765237025972716537502443718982417334654880655350624779322404646600348142356754157923463763619902808026683587476253853426043501201592145621567755470343349873949927035079331038510668091718778260925676306310063888648000898488644806493629044007288230982714031195158981154253484711233503162713275665934472061849864439541247443526202693591910686198030895989094551960636375162848104320682389494327880917379784996070346593817488558702322674678285025602383244646207642452938759979195386849489538622252202074293381741170803029352124187279001640488781757467487320513428681744649081885875533167098093541071781386660012787192030363634907390973767853147437899126104687403723558832540300645502584722301217929100588105860296275501168006273331656670297390751671854964355002260055207401410759635892297727329889198699385520814595045224805392999995233219395270254615881021774446770614337015414938527975345764871396004206581273319391603979137149841723855736037772803137187178805783536374761624619472727515239693064996657783416979662227468309964819418225905954389938272691603993773537663059793497945206610563711195088411296392036453249280024553364682019674255868130439292724122747416996562375952748806205292314181135652689396789964708824549986408311905224649087342036333072705877868783224632249057893449103579770351783616048947609582633350883298301377070453661535666815721838394488933107635170927083012785841598540510194315293250109175582998154577692536214886476900519117380169369750596140811319339087237054903137251912489182536247274388419912336276262103030469050441680518175840092938022381265402147727705017087251213245411590175212188435509690935228388072874618050839620866157823659835670318508306367306944938935605858997821896122564821463393850327459088833090703264885652124917523767552615606183404420898903761939895762415416607425346779280406256200185518558203280729836986434132649802678823250564509577158140666631943915912214809574114344868281270225253401850670763702249055294103796118832510237024717061937969548177081245237948998794178185732772733619045211586173888064767053016612873210040396603096402290046768532563164233414809891063047566969235272665648999900459562341145117253283935959317577416476078421232391584842562191797707216634697094143525642789496769852238291538707111283407335942695708712730153066366182502885374180144698323433770891676093315211307525445942091262039911323345114006762242003153040728778447791818471436039888592801121292652343298926165571398526442654263640088774705721852998065965185883106842700110288906954826827854066548458704006784874341161445946756492753142816323291908225415328660903778989428354186328676852296792927301366529488497383011659941025846664065266646491841992822310223133829789139541007345916757444077323198667421856095846998730002188948615369924507186868513220489613470497217787698960376241926227294559201903796532602119581741591119395284462834078490238075778588814511954381560426151411684262330009308554609407936090979190780759190903662564161339975506290616712619297459562970478975777678423382083532722383929680838043113885315524304445503303839084218160663502862821969615542354557908265790849359087300620432381900364842233546937906033089281535481405477439982969171439096273506197916739232103909048430879253287565081094673483564704646527951124154415003802420179274106035551250720905204589385898011990822013475272272225674546768543559365711688269171546510038747295187408085691423248583123054890580411361875798469531386377369552286932472967794208824606966796529257616718220850992703021910146965546587652073915340285340668306784028731540109970922747582430538462246728738113977879166342722412372885515982600359480763368785720814094590915285322934150603838912298817676323325486192960170459825289391151336670943496312841525651687729287097105486677115549065243108967724217363425226540946306146688210813342550398804961964374912677009775051055617042241868973448621248237822397575132204780664915161138466176515197423854957385190907479024542529802908690800336225476725709483128183843121317321518333653675302134272501634985512569693588627647801947710029646713050494997275346385200542830130043292263903166413856265384480810891004098099675305911711382794703532991381929234722414562980829910617854026656828609749417138663400759896579496038150881208725460324649744547571832702162683454285239283558992894814260587545571274344640516522889420448824677030254293846383204789844944670307746064422160136130186305212711303951696626826157817222845407671406769065718433459266078798414688976272935776259724710162165260953606226216926134428565854238635537621537550264889108433397359775524359905692036269055474941615736786570480188704255059576348982270504696114558137695439916939637535933702449400654138573515937181412399152192806102352380323804389760551680702236292586598054273506793625174084001302564821029153196014820420661390216746978957553438659263221912858177545784437082658657159197493705399071021931180179427525690765178222683586603243232346947962011993601430043068000870515934951691188168019147685174672414498003612675786598951565602795034725447455112819120943453371818300375900486436085134199876737234310767807963337206252246824881686607609192873163804699977047028266127815616010398235638710325783215537638797150480817909533611125148703668956690920174530540856114414640966562998692675745357299208284806678819827094677017749761717957761944905948705764451893786551380608083688385205934416946465057490595729823354193773103854677572990051703538815483409866686265647356665655566501692060174633585198468836969549079222086794985217322071929024762128549864750329883886118263874738952601617777513000357123404530407006873705793055149046098571606180992746595637704153988696960191220146583951484798045851137412570691641323216321051658149647761477911709832976054946727586237933617365878986420746202372207944701556991720951391744652941258645986205756374574531064111921251129969434663958021384098822277172390359785786097040580865443095433507556808185650437450725513314480129544366264418926615840915166866651312826483246448191391042892583729640146635416554185453845452994803399407663612367159770987663621320700350252112060596215881504319784261794781733322826420755618750220430938902608557364015078654625818311285579966082574528691649065607298297852506496795847934889974508356189150097138200040619438112981707549295747380085013403313036664011427482369183883125398694834084301853266180215348007236610852683894977952402530080811716388042377211694359313925632240809080464901444159083168515375351386422707941516635937391220544461186508993751954656577818181865575578532691745407242209631774369873224221387367067362255916134947628049084420744728192879547177741153379463699640504517637505467803985275788617206337060114099451444260491901785503179737026271387274439421068714483349971653018574230114541771712819431885569664065021172589035383775520931092110188269822792545862931023829090367378722247233270706354919980763886418161837961656131843361797031856027140552157424340566818950330370799701722726236518709523348937763154165427092037483560777978742971122969626948672604124436811110470890769778197313636415787811042328602479820917577194360246972773387211960879537781165296572910092291452327584086825066256797857056737914673269678789019140738760041093482550340752566657939966052702712526737536103220207928468141317509168226888032985738489109408836168598401457005019539305593237099352347437779093325222153375823856284591810951994947524732172998120836044495572885819761622887457211602930417203575147929467108862245133704031006647630595752753522389290065286163140674653481771340103021728426088184279818637696935922113553349808032285079861614956664520906763316662958048278304308275357910066991613617711619991185295552759106692655587187402972338757745192383699257872942422451983206133286239611757924016242338234959051879205323692643726907098541567663726034089551822460529838239482794858235883773734453698063994999059033430057163790548087806538598631147642129942599422356459897242704076865989688325901702765951560300433232849393329370947822975996868909401066605001824997732134923237637784520301278656557632801872299647648138146823397936199525220405493544719032068145871839637439805361661465387462832238235664935391012544052784093615707555882875589759157278127773636236462636928002216794975177902783796334784816739089609513132060633424283926365733592721042049559552594186863498635536276801733684563884079111947445734646418248737398485936530370538899290907734515340965110325799343780467453361100423185241087609586983776647731289042761673186188298512164259651164762421755256609878759993308288440480307798636798916321687317961559221710541280503305798559841623485304260412030138515212601451386762168802279291629963197955777291936526266159907676026994972724423190436813388667293624806252708312019611802159572973967508201754330103283814395211323378828676897985531282758520291166239637763002966636243692476613753244042688085202907649140199967824865232452784540868744904498499526600772691776491109103960288172112035757982359947906694574829353460757556027147752064159793460523843354909912085479534187740960202081506475410617107269753567056775149981698741806648783166326167725809586943300594597002817333233579892195162642765039593811029733029114473351786749116482935583263639383699240715080927398772048708532367017743791974090653457793955885700992770626032016236718614681772311484771178920255838092649914482303022270990723727052808343806931179628533833074780707733035970546991261799203305173251194717457335838308064196220939477994323508446986216532320103164242924610033353573161734163849848661017280469526920707593912227653585590947194001043020019003122372960178417796917112493754722260128886081294073408741623724168716529022025025046128730245442947007906449775913701727350308919485432181677137992343828857378187707358458552578519819512090305466063045702196342387990790198716258159842291127207626370070783859142086169437690634372890627151536149866649629686114398296432198422653901177886466037126867792481261128417997551922882597815051050043251488079472121037446791173956862613996306426138836296216755259402827860267212142560268247788384056268684670564951167259749873205417739321199233434282432066068102437237798546619933175738949157916947459061924811327079195490947256774141495168054730449806913967151752907722630083527756886586963994424552910592414266821621147274997778231730849986677946893712361784970264650102276377170806618238791177731165428593446745543686971202833420025162534679704227005980468411308660103167717635975462480914932550933100921363362243810549470752044190446084907111026220259613683332544866763999426121976023240245886358088163700215932219751409630359554850898209778203520355995174175926200088465338151070732979147417225675351344127006690316875420891785740847321968832160468213953684945595538706330061192741844587341509296306576922152020168618553929537759780529912485720447447098104179934586906929139743214636701543952877613799859252962013109860060903042232465334574003894217072526090190861673596198101375489071132829592821056878314004209596279373374925479661252122183020043898127126235757799710731317155498027743175875628037838985034375879588013377853098201144349867878639770542929109356088637615647187248608012023496627889612888348149253335789590226675347037558162570779517817868102464518183613343203648218516829432443925487336971090988249513257549127891917731923414208387695914723343612161425623804194478459644953598323114889911189490789495466467873931949345039009671084734085469001151255227337013649448535611838099454200700255963507609524736782489211178383483292576025829088865679500373569807567433466473135155893715663392396523066459320078733348575962833972891563310907732783696265391251870563917913927656764390145129968660180693316209717597597645268563379977132858542191246095571115989562417699706400550877012584387899740530158358269464538832572563747880075263088427788792275855733931867351978302818245248296488446056526929496584836667104989918527686969361945688446122230344675811892773770113325462245875395031455065441331170432745848113941811496665197206967842356517999485645324489115275989446570320885865442616893844225191447334668980065565486685898420642077099906296621373330349084510384608795189278172319772526463429721072041388876985464269901777628309788769025070981370064430184500872168929035868601984306276367529203006649710373442592817272080164680316477923201198737027975646000015179555285654601438635564343872424658530842978748069028436913932969642443782035507071192368228948432897721472808762474691007763501973706863453849355471425576186515293531129662663313214967786538196569441484574569024532804479320906358255711137367118373334191297807832314097064139974906436581322005660200116150228617501967247803449872129202022309549679867486292613513740759371029620839250131531662788787423690074983408409398990056765991565145973208465623416320323945353559349590786044724372461587035176603797616019653900846006138843472955207930577702267000942186098933754387516988621073727928985331072237061939798827841486516893247350296540618256642689074046589637521746398837103106667966517089204561617929431975044967120586265650398923008204034829608379090046798288605385874521395248958509270625287132669686548725394326799181069010084080304152712764264446881523078103230748350251808629022163100383402738564420877271167383590124844882195982127004008191483344142607296677488929949364271036318410164294849162915916917618127518147516101489974699222745659492591908116816090812730647421013475803366595668198496074187167975969413580378938963494495412884909714051433017468343025110389367827070818924000635837610609099204425638803708333294780598112044884380616061107720999932493662497334496061350436417556500489022213104193872057749406514639936694835549672523312112305943782030529789485601604419857909151039004850240236768070423698360170833529968619104862627112194408202884743291031391786299862975571636343610370164830832621169981014012253904522165416344983031907300699346853530182744854958852868607709792791109412564292799345201630441622888971298412487287913172743202646388847705446018879150985695599040608261172182855996553817941177504554272286812442548682218567532460387081270709774617356145028517385035365027011675200756794384644974260674769328555973193735749280007829375752942689547309959490065484421616575872431038240336621298271049922475759164217245669546671360902661364259999683222843924191151794528900069958701456213243530714707297336553595674475889532287874667088388254405302078235029940445802123662714399675075298408709982193637175768208049905690258460310610347180034193676237512112576449168897511314236269119499537942145235929977619987936382401204159936821436873043628291124094338443056402864058405468330448778773290755811950967799414873235227884628156725698969761590438708426333014541397551001375118317584148459522572922220393389810372569654462036716881544672341148931432788445678267402095812738764891883092585953018886161495441868459861068088139434334227061023566651052881514503099843307553220703589093278527633573582131522813197750266138328729550714345052395422115355903664424067777981325838000939628824759586461589357308889713130502237900227908517145783337923800705390538227978941318376812415624844812931721190378354334941347028642094135996471551430533217182143301220450396422781479220247380394398475065120725297748453811658364524420571188064981503520499161594315026751569921746766895459992754403162912889167443246261946065821207544510118196343201561135863004989936945470719234763689754480951946801544407764808120096546513918310127143288729398099393384518803718392463517975352656095917415859280827540483057066791938997282536456623901491600432412413366849423558720616405938525528309864631424065441981618834855850863112586669679912244905732781384524176094234474765468768246858156930816496601671315813340889456735282626267837849213824636992163246012137766360563347361732622507843258766843539509298539921986303088103225815206266632293675227980486817919019279311138596711966368625034307431460613300479170949519757353406789019417237025375439683623051268516406205829602835988447388290667578947946556353803390576773156325249538108546706177781412344776081983632921179571996534955864916415221673111093928646281741975895405602859882383366837224825131119321557223646450939048800542742051250751196699553987796687656080556472421003914753031032824494589500324107616284181779698966426861628787256974288525532979670656982836005247687585710346379496263493406765997245616048819818330151793336226476770312022771358812718906819633267153821461872288548605961374906716776294189788617559322626380154400493403619897751786859140717967896525136262733068310912481296750272511164151005056099605941368774539022107170095050942127114412127048098993485006447596565882731339266108020428735878224350058106769198350003781772872073798682252781574070204925744721280192463214638600379296956072783988034237316704057764334204589842739407347581745893401880242265040800632798206979589971203215765611873907057911589666641388619086240806507701982419204267837756100379064806879310180247511028436445048456967400288056696979418410005764248848368096832616673936906465828551688684768699148874441085258764215164945911933257321820025170481974713792510358519531011613943072783693012495566264462917567752586330494026888856416989577171394436262957486978319616738374385504176498553107020627055388259523458840878543802020824249684960304391286855636189527170992009894931581500331620614282934123580340599217598279684048452405876351333668133507517307139607258646194943551194134632270713344984348589141786170682616840393471299066434196964994938597125966814008933602930853425242100505028083936663054167712451672095387786255608385519097606981725014236666732028217932888925823911331325307140639100481070067657326377803974273722754769234122314675663945681880260699357171721863716680717323033362526288900763460243668125706990355498694477205562268811739385006631512902113518257253632512896224528750369192215634994353638395760704278414526835868309137223073719689416214159712524885968135390918842275226010087166865885992602597950005798400731049199893458793299555101969526906947108452279150276604996632184546798547279658393282831690931258286542576365993286476234138542314922768566263769013681243079520955034042923192452959021661353511888653892346840288607028424913176716823425244539006624450499578286558005769891937707884973408493645189678119412071076653944937224710829836012525383254872927860723526207120235042072788853187086160231338448487807048911150418635551351787049085897143617492507676497201880766666937351455377110354524363681437277400744448277428537192812237754852163727179550492941153103399063852505284380041559400357952486751436118262575091898199652387315172715927666067280487113037668663138303337714390203527954245246677118412831950349023245479401833266790495979516279675481923396378428764537466112756779437329145404076907360245907150756018827179042476584140474620971619730306200946894588996238783717166362463170649720979037306318559052465152828839822001734574809520180555809766322814242341243987242084281123598979772828008716476361731795974004824928805018573280803429171978780196950807224720008696873814311671496404544901165875216832556804431044030961120424476236292472517040176215320823653046711340533509476386749527936065941537567621505367470051082711785629610577090609897847438696121534655812661812416252736956334410303640892384213617492410753817987631704597669452785469451253851064515772478752331624128218487806737004759367163472304283286633025570721666862050851944998186023303648352719231494154067901649185813222260314720023176926941371591344852730266897769611790980133264546384529112676364063635439410014699808635903466878118223402819849584548641314773166276226222893515011206684059324755697212957440114231132125584725647426279062826696331595831377457843950482592288613587360149580888404145773357612425281037509729661866439882982515878533484571332798968771682018631794044647399397756923893529471566156406812676462657591044757050108009698107872427646355180730199092682978545145760595533488396370774168780900295288148550247810568366218976630681528237765035842636344921404461110856092027598322381915562955170552189901843027468734463362991916285244644087421316222243090549722875307419355976795024917356369825310291841004550964102477632446982433950036615452723541509121712381780888960042872835580562529186527490288406688045964695961712537603075103874740423829279230086195111595603969153956047693591167924209316060649562588724975441577577334975002422075118595629937516327836921278118227480535085998678966937754274314197713242736765202229774821077516391317455272707072606686050517437438702156551219202687833580406517483838317164185699333782466599349773121513943931333231460459270712331687014585555502977834308286816300594050133840411611188424573642898382282725671042905809929200268264517008269815159802879724670513286491995259638772946522683766580312154689366624695819341396875229862016317408713045746759947010162401902406655950114046626215908277581079715656454760308221556951832123721361845281069841592228961367569982170384632080468185645777734680851212661404819384382620173127939780868494217387262231534523691924624347034678116581232311590088755177091618713308861844472727773841762036192800153401242447498871885752732469264784119463632981720602994424701915490625992802295392325854060910634322200135712482753927901899883383412556790471676185853926974828314842512046808132340638813446239574286538471289396847631193460614668510037248809562522830215959747921408641774714463729053081103377505097675225083466230331656005546833498851364570220884439136761451853369381441766720912722058108757042270423498937642456881939929775237545909818056562403970875620857860866148780541079081213621114422108383955826992972044505019518644570807851523560707642413174903905526204973746092090906121000759449863323029873172447887868680525768251112045999013159000546441239864020178030803923055640294795440479543040310624267376866501493068457947582699921709678233970532082947504325328021397852369135632210187275297499268574267712784466464904603380637383216035535528897548339340890281330926831490057044663337580483098637475207919229280241272025301447214776691172367109231180052318233094520278935190026877841419562123175495161647472699312456290124505610273315418699050620106702796339265932174676385567843398181543396978827393022858170641314349724959976930402663596049944116048203343668163409219962836066381444701989096773282043263303718411787569443995701408183806379045942798464228552893984396604485715540368675936104444446799417519106271135885154601446680813986643492905865850514046070579082304976011285304904911877493775947026492216677779504052360554435891162081771261213037794008359572077289546005668807372099581894650303031834822294031669190949620125559350883864118602825175450766615867047227595375148953866752019732651147364960386114071010946643367916646559217116638191274180544657659860305046912356674268208751324368488353852353223283470205403461511677054389085644559580658026319246960118494691748773416486199264559497890149546388866847566940192996354533415819454010725613086147128013437227158214976184309597753319189566457942123783161298815806779767079533053112822393774740469516040837286179433926666821758656672843464011768805531247602883433853355416739944581257406388321717124153055107935774162224532442968287133898845900906203482622159965553519136905957713270829994542449616760259007174847473586848848733396448882209626884949599144538162365732338479929689903923778485198678717499545800484353344306390120578076836277301770000823835885803308453815746649599628942283239128292797429588642484230808195198849745908000600189031928638649847407455046238795806593842916720901944356445585618388467309287149289563593267641500549105538176819126039993353469934565955370232944357827750147410687456641271095249649142290886247335466863720354837767516318628815143558393624919260571130181732070262765195049690271007297704718601172103856211944739364210327356528802902689524997573800087217859953948311132768902520739300472467441634430081387440534728480625865139499972594404135527822182665311506717788502656259797543575901171476325311429951386108171782656777578375860012654889616389272103758734428982669429545133021941204692934101907255760419810550989717042631180627785932505205511811582280414421075317202443460661082196292918619099376840476646688814246743139520480887460585557090687905374574503835955640960094710847878818124552202280896374281484418693098194316229078932934290213302600625987865334207860570045636352112084854342331253097077466163884487304345808070433889229221233079166924610273235880054064672161166323915059561237891672873819832679625685291784765557055447085742134300966406463886902133751081390574817155241976775922136985519944828466286008700140336566323291102228558345882083022590971608054311512680239598753827200140950767655948010225516966744274645919427358229469138491482676243903586435036560930936442227434940384530605219325278597004128692871441015406786829408833287262558501447871290212072969463357957576191518484974337965614327914946494668144361170969818878628495601386475574810182804896281568634111786831589643640944344492250082901524937360167805402340607605641510488350300600629373902887605433411992253708141227141531000291935077038978639485451909282494942253877686258236566053703111809192193842065739139746319687483337754802387024747320483909256387269241155603378847172392968681831614763537926473390129554249562830560849854374360878768579885798625192956024150189771843396148816324992764545505962789524969078213396833898033915086888246982569917601715324216566140863194134677402281894953211238981865033652942724986577983665120005916964744469161335138437367358305122185210428695198835397427793738018122904246009206256936402218095418707707857524216557837221813883577022780086064710972091529271838215234679918869991347889227133031631979806185174149410666740039287520495269612489259098568008903569805545834295831543208459140050046872379248407012833971704805001060803758827097877709227666030289292117478526307597149632553438063911521582803118426930618650484270512920465408641008482229059396066252199481329640086309258763129752900217077840582294336916360584357672222361662503347376004997685048372448690647940332323242188020561383721437957578197683184765300765304910107987393573024433342214319399226743999760240820565633327185442214090323634388148324653220843028921093073967625304441242576238064114982002966387585447922308469364935238594914390530736268189430862974479454746553137434955469844433434644920747030743734066563352778766488153344699144774366475585662004097320580770512299236489998081681232257014963963634750512822075259989090262945574655949111311059266798698048015407216930190494229998003064929910797556604944529104811837721328705997708587126792930729855646377824725732228028881461989166846666149031022857687325410607155511048684588911905555476058909306929033443042254233034201522264854364326515916194202581396790622804598233220294805491512937613889108058326182170337028962630181292490228441691956439164901279610363647724815659635574131102624826535055941817790752027856226976338246888640981249750305835585321004295008313413819674726073093263359405657720496225176401928780146110740307989665426923727241708377716233734172552320475410595485258747616879754165277873606676012326613988888162312358900628688720572790617659308840622698408570106559221911126744772554486549245466013224333158026087153930683101124961564834346382245044039663985236774140837778872889723483703347088342914440568282105867479096140709786862960854873521056565300355905934937588714010187655488483389854213489680541817751649304041173378210729089155751866076879683786998951908544412985834524200664585331900864312548196637105694480586478952358676919827500564685441094156713520357919814025230049476819370401897032759483382486443141263086437776473012800073044929837879047078590702241324504759985810891402697664562972440544532627632033208365869820182078518632081851540860628765087294743155449336971709058909990895554984399055800319792063645890966142106108583429557338587262013909823328368238665832671985825547345061572374379743872807873447015866705839191311963735643848153324786401967497889292405494373737337165478664720752062692677517126769798298891760900018657444728136432249698470825125396165192250682444517214882382528734225697322180406928094794178735266884899980215626581418388135788591236030888717158646787240481827623526489386069049107364097636296192541200229649396751731515953564404030557387915905221897852208360897349414872162630642157112777167667607594830178035439484501212527953579025716855281627541053482402539065751241398884737369125937047082479891489385893910778860681098698563723340144376285639143871253748179248463620620385702172914093585636761112398944218244660981262020418516616903795943070523205670890808919159884902631508513789433755061696403769952740261973907578951034918941898897248702986447684852293541038098864034069551257549913483526918611881439659515293602733743259350048577655183019757587618133242260351586446850045854389042993638627312101162604779164878520088809656601104317402342893625019325794658347154222743102712421581682902983169171351042113054968004401915852254503075539659838526944923919281749884132864477627327716742975631394522323113294983362927047802633300196424802179852268511751733752662744217999321810917821307293714949136453861665408670933586131922572704294422002046812893788011801009635247120865494104122849340475776318110356834713665045822626184548092472895479736886316632776082544910042564786652514943862528086376074603289466465251171446306166027126536916654244456963173467229395087270878608188933392815571686288958985189213950272082977746375080922960639095209562723429025630087954957073264291026359645017842615506198996763025166741047062193724756600683827294833361586239553236138331685964259285255550070140389213705979272566238443205041923857843891257639340059061557206140725306279160464391407926534275499789934479696723237640975100565106674673589459862257195793934313160631836026436670064643948295488701249982739799735221464793653704449214666670217972770078303852062927746287812841444412150093846975989037015882414243047008322754305561769167910835505245667734738140272640986517195947427425242644369884443163849069199407842749921297815483273461869774863046974318155661440454322551795158516277846704236528599170062473314429782754973779022087297852028926956324083380482422238007621571471542166545854419548758933353218233272137396275003803676253196081579782727957048309275656677921412121211812442860113808626209939234450341000663897955709087115377384559515483351478360428036863353323099708697297632522717088361889131111333909746898924431049011548932206282597022722076009536429231627089852274007341437781134664303263708092355090109297729794031555035746654641465015786178171915134741410489477842194713848443013507095626504007923034172361413144197753895042319271670741938631318057122590721375755648610878551383590535794192189788747957171529751545899420182504985853456975606958893369481887841484771506353346798723643108279197404482800186361681748343902653236066483665276562875335041471317377208116825453608916257963616088842203755768267725989750022586228163636342922787991433573055901718625001950873570454855511963146615483827289631251995309174155606259547340643743719591651130602907204045596296735483460917130582745539074853844545544919018216726962161534158852598362545773512967349934542218388886242050443409930794589028975308977669832564149808841153045969609602221102486086240506639039909145616904412665465855467810455765700501392373544090131175386374066468707249945767889788724056993854563011719849627985783685602046288054571786797043810283201716445326465569458534079610974392843015840644881882871651938064624372169704722829218753383139533276013061838631634214464234586310850796734792500500446357244211506384229099822337603295195903228152882022717342100104500777949042060842501800453554035331475626298651183563713498823458341302629464850914624892751624787069664041734361707885779982346509457498019571736936352894904868381957747997843321827494702947734883236074962095645565276464272112268882402291273981295974548017075910883393865975357098369205840796929627442819860300267527163378545067978218130260164417749731758137236665916291276068634695559582758927450591392301882893639541287586351886517836344819325236901614789762308707618926056982274416983051743808474683341195144605695602367165842076958418265175551260557199854533788519061427577887606734154299126299140595330138981784417411635303540662058648959353775233925707693213015294416111269576002686462316117580160435170988665050601246304587818360862095875033452429842293712263259020932426020827110334620400492419258092912582452769663168686085585726550192594560914806924536583494994846112845629418035992377451071642205350008878600564996511427226369776025363706976154764372555276189394136042180532666129501979539203235407887662400280828463230847032549933225380375740968481999606838040736487043276618570521316232660887811260741879514854158761535212757159943365355599972245368696002367010318918525068946997831476485209816546393783799357183590082865744883121689657614254571751587188841686338471823147928372396232644657222508945414083319562901148614686725482812324640635801546916099927574261534918433955658793377055416092878367760638887783390836784407201390933886047229144187421549128360381482386463141096690068929614074304004525010520767984122073486225356732358563393051541435875823905501016547011888077286243740060756945926523678113831148547066513707719438918818263028820857844899748296350344806339071599873651172828695777496279188183417715506723230965200711735677430960237544486443561745987056337091676214687541216998094472942987922712578311415584828755000124411569309450528546831673910987028334056699154815988925159382466648710418920729808731345220421342757678350098477771665889228710495835727414751573410926379928971492329164633206824532853445939218245566409176311540842243882185577112485756305515574738724898870230171099340740541235697159405034701901629114053405800190943480016850064428019883648248114007383108709897514317769797714811802988333906543074284175191298698348067281962299157692979081983076591959735959907794820333624986059611665949195869567092134530625847454282409131261785158411489702861437808726276159872540941712477242493135114747902359442230668195622634387929123255197134036474961395541990225158883366753763405772233311565738952751090790432978041491651644452576438744713303753975712889767304556592385576864721679074545599753373503478854408172829104781673882174096216664752774965105156031056010544504746643507442255010927692419725677870353395788303435722255844453705377321824773201495704646234516943861303297855987668492328437163546832396163645512815795447726315551512853554755577072512471318698509688265321962363392747086675242399888561279586908385709009856042574501998226067405227999918506137115410679259731146747225153766589233859051600345878330835443236235758284820873232796598089500758171004017604107773853453949474664099550523539537286824579599612496840622195571362350606139396167338803354471136992866416882469737922958638906359798610977567759116185530482484077791537490183860057941770240797430691822812703896912620671374809157594289462800929918983529206207022247553060681582828992948110175030894544098751349249114234854526633865254160367055708351383985262975398011930302494111863587513497423370221575276605758644343378494357870419600311085840930397323591646024957183081217760789648071333895817041551031357391376387103124541306439639751550881821612620930301058120084939763451632363486930944607848939970627008119870269092088352608674257875900193016084402086809887660668500688463187329915021980899127534140051930814251183205153067491931607322481233954758797701236912469613572533957510329731554085833401450428038927927809844008437834000344275730272091951392787542012316490538335376191170745518222398849597450715464402988729967714820716905725075248980714333751471175464151832577329128713160272967989105312878867015909655460315939518389620587475909103673044495789129657714560972117627575911088912074338968118717576456707724671210953389318040323878495174913393223513387148344941024394368688847471093219920684871466311465732306594206964257889135156971821153990389699433656994010124152465482255466386638025371713100197968868211686500474373194739573845782263410276038533246770738985433581408077890423876000108619240879385198823271851102235771918989689032799908594614622729097303161973093394700699190660316444010856389747290507798497470514145886570457211649390197536599451684444123342772367594359949816651098760519291899970981122901041668797639274229559400267411325639073022692130408311327174683971007638162382511759705151241720093609517320754537154941134132995412508079425058494317842254741813362446891493598948735569613582055874814730616729740503950725051670140393385560484749726802466492334942150614268433441298190731087617825609589598922009489854320794759064656762371935613903768277835924197901694364989303084511927982336899684609099214245631194670593785139974103328241773989456237608214381745571853044311187609395237090365730665084145498639250103623089478646277738343554836380146148663832664134980252781862592352813802594119419767111546929629207808983216281142623805377905780580801761052065689255985697238736563915115045476756191124537030500476639071877319003396891665931201612991104022328578227885848973893530178612784782561734868634915987782010126706175584475288927351354198097656849014721401110726268512781545746636236797632195872432838298161974616883349901430704872330799517467298732462945418776565726410614599463657083127663022531761423731916680428037291576743451877234059550816219067104607352797500044743670298598030743763117479484113216189387322859073601553007711372972159175601377059114538591013545518203609194160401184785974555574206640497879413591614947051259304591986946761052480747588199209732478838823803519772417354613701653800625617761774510887360496670343807916946948687185940120448575581735597343193273444929835414319867453227359750820109078050295056242531743151258319986845018235199366100847396297004242592051319258841497693958602771658613556102915836529585265064070192731551436691658758012899768344267518900679740520605866989081360206301081503465531889394814758346498479483663330391021407501666287358927814587794353978635427233689649188531517101061903647543093673640504550439702269924201337632351534346357562672545975973606162574435747718351504839732241136407445735157568126871314319647075972790789082076013343593889650151711758288955163239837955740052985544974831182945678785255110519416102625889466202862058238056620965966669067913227280786310845549831291088368435375419152660508688472136225365219917280526556361492675377316824688292594155298734385993699980791086038313750321064191326847861728008495619457769382207187482202316133400036755332459039464474252205491346334864579645771668337983878158493793992440341272782134055541827960339392216756396954805513147027773216452826093452019106257270852263409893214351945481470818391741140707722654014066487190948648409260622114823490112119994235330552373475034938485306798721415989007146491591417887028783240797859145752247894862765542392691356369940813596681340668346071836835912919223250278389530676586444704676840509043609719241930871641723543330799749718638203594050494689722728316870305552180484465746320471404134613296743309409999451153514151973523930464037771692173187027980679738849113058936933047858925688154862389988667526372844536374924038053166886999646816721848941287025112441077254377126022787750655957241815677858060743591403440425100999096413459142082977311665025924283005266775798579965337693389273177616139462307947267860082248914966208626737227956913299859704209248210770860181039261946491665719218694858051862739208515717707529505219305124556098699113034998848122671368475800986361048900045131273939562438665456153436823581380857431735455396012588201541509233768706072708895508735432193440666496811726842680544735152463423701907866423839960070230631731777364950187761485747862403693869613405658350179223123910618631629503280089522525055908455025182575368162288470187302511731697537531491512103372961437869368637344988636639560016838959082176340441660620804208597904124859006285785773426934295647786107586043193613200677834753263407806238429543102477765243304183988231952272771512237998239266472372702274209990037849092390263437244581554418757265175464969160287476097628906116922433844194605642983520763061658218610496962516935012322544935504835097821230769621737347830899702050731666430319155951601980451622567208117974682773831443976460942262720735327076955799676461805300096011767349258521234033995876675485105053152107990145775969425316654635725628052490909675822313357811673450883357501647598002153404235026498021218041949203795673772645567086630798031447859663781515266130664527202553390693645506615190643511843276223604262026499512240903085449729299797775728846088081957814961988564674103806822646419318439623572718795004864722346712892230212078422603085651080849633843381629159401985030767899702131261539910611866648163182670925318631987788753390715757532209139895358860491996209520430871480972669897764546409788318999282763028224090723424268504925197258112794331782463878973403558721414319192893965566970033755664132648830875295999455954161867926224841620124368862163890427845715895173952744009725254427652381192851652293553604996645985504310152235982963781361777512611642563506363365026953324135468014150288318908880717415082215271806948314883715842667295669156914610572612503674888668589215187352522927429184432196718121724686038350636784525284969483405347165854755420541497279571331826617157339249821549603489686150357888150643069425342350356317282207812185413293267757030266907452832232084701031987440114322734068718746560080070871782276759861162674926651685331230638682565769414604319598437811419890252026603041106157255852128838544937776060742078740616493155134635487038045005316410139459022237506918470785665138716184951592354754165598013996674398430096445603345904500158937044652467943121775234996159970858061576425532387285618793215546804434920080213053088169471946991832062071779327324566080299493818029036145258988248521391912937610249640313111809062713808117916916687287893759881089881343165380689386989924299928398929205086822925519001579540512315275010353607330854946768714800981428958923715385732415879253535376427985900718001300699037448899519254643171526805950247562524422209284114674585011583696998751055746304894878243937700868465062209746785904571842923152430443942920005473818388235847656564907919219774391393523574703778368435567960408417208898546679421259169742667626149610920006991675823957081746723070713579750249878615413247157914651510132773650847908758531013631346924756394200930308473020171356882011033421817900811328103719429859598070757050126798373124337172043294827152700343056902331138578199329166287703943469788928647561164555452449476716187979291295182596818938025109802046686085050415737262934458553141989754731774426068404206992770103706721276180564992369601349477261711927186332474125262779962627001453819495918678592195141136620949750617764308230458002704762697804523888006439230705865436140545298492272095184722306890623733542511877540683405945193350815917215471940083165075124149294713668542827391219136782089392462462789375796103155020248948336794332687636876427014375963845032225656998620409770269920111835712294889968469671881284300731529001957055583322037328270257774242183855511155550921858250622035291212822732645130832479576341304076315438425685712481497264817006301321869521379084546845902093181651752440211009750322484820342742619321703626312641951809889342542083349409785638971807542771292504251699719685776278794081233090274267544290361910571173283495196051799313485078027912285961513109118044951134879980505833785168511950087461365963363371818447466152829275036365193399202587232935853345197548617350824856398651053008121627944912340716337580323338381425960789706252259728306481695357661948200280536901532007078977287682119999503815019280647425523756782034068012700894794480066246438605353743494854679059797412918949921411680428592994785020411065399873131821514094458790661833053425036579703745535572022176265542093206176825740048805227764434761967194748537377243747730255689795656621526334421291834950968399399194567483674072651633502462016132224249354595668176721256417215426734750278180845713354101210152680013658789360063199455806432500756606108619290787893963920303683245031472565753967973706403196616673102473820498850834036753721733896191371121469282774604038972421392340358668474868870381008614868451636998257381996748649154000354208001981074055623676389561500483121211956096809938436825146015285105067334965984856653323289705934942604371882153075545857176541845479684100413999692276686492062828002322228479760096441614594414098837330267419009737199042430597803765444636378579553723847401371564740086546738070267779552269922553035227996168211512915087332150197875573724002327033643729289978359416120386037883046116943044429620517305945907481775588960051689630677027736387344882262421341205708878457149513891356215342114765936340064153747400978628802063886516260005675910983730626762326301144784521649336365912221276866618017713899636135588878866493471837536426501372768430760788588841576972746443025280686751093144002713630903377624637377557288834451966515490356529776478008624846691884814318960809694811657570932855905329991002099733902816838621346088411450777101585001911798996917793900032457855970821242435550322267674318330354881621464828913918766110702561997915245890132947416195730745082086041121540294493053980543902909425473951791523105959150555025521187857285716129413527515795302618652867834875716563497700080630322225389293865353146340826567127071809029319371097200307409819443080759450469448596004067640148923111754679098160095791650369101548496979423090707879844954204160815036996157396065080469003076348721699534552815668642557213048202548358778105449743820883954877598420533182309576542380970015465717559838181632293955867440282039199354450028198453959185600769863669009099330416647603707886945971759599505293707259859440449463063358463685007929217951691690763449049410423524660365470093587063404508219760707661472493019114772045917808073341262892124066273021767798359624011770454867612294324348145071730333284169841565495532779847530704985628647419017220917845360596998317244092028071131813600591337466346293693108248222906376000353256070490256733321994363715987023048883478080862228436010444967821574017182088655159301168363690232768200669472712262998218709813910886052519919236946539179189098089439295833542525683016730908357246040397221657990848389133651709294128987323919893154548628505205396130736103366032191179126169302467433682258828402496900657053894423813825828726531663273174241808113924627209583932670710667828172542479867092698633411271258060467763759096636714028855424738996021516598588726503639221147146076639079202332564592771980623250839561942346413759170088972937035120704152107628508147467138590728857590803249235218021005240160724057393282541665326614559534336238781859279094466166848505324011093604101364077768046480524784563812074771781617276523003553991037994580359270801000122775369251764904847926278925633983133187024833574363406467849144850554637646131620177135951066776714709153329922702010140201161810616936207746034960225241109674156740676015880768929141916660049343797801926304634123512417606580237134796634562700811330119739779808576797893569729783127802442665328348959720393663140622162225599176689728539770136152405819890206801919813551179162181728504205867948574374931226920233669975413302792952367905791233420844567103073829138244688569649416562212522032572494892253654210939228860985775288155071742187225127465869144316266660746386500925504193008053776892892857495415042695420419987741430854906587713430731212487012947118384412395528426456533763997706310941305151320486249820632584711454387711822479340655735791438656479823043934013430911894060161601511990768443021258164701433199810592048403568195836042674783722005367604934831527444235581402053648876308777987073602656916042836142289892423025310978537323967460905640313148017560867878125724653271056220950797339148032338469367273301632374541532757751284830787314533131889864490813703672767996235364167013654208206919452149836521076738467016188188902063326414503395618400093333006713165080634320687421957056280687124866850461404544015231379890468572369401173389963522093350397419608035540132863268173097372087752228988959049360561291211148681983891212194252612285151551228526670234105515895368926121920986465139320371964494050703625489490050789876381739431597401727998731533913650948769627380223581847320001978605283863652750788101864986736533212334131456861133700678774492017667757295875652287770337215406265126465232915160710046838168268035995903671476964911785410017722770041505757297070699220731546068354520152804496179496265708956904824915399898852054259003147368454145916116581361764218395865776851101077974294073725447986477067766731507554141777910289275556564769980331393260884827829749639312854385390802398095727101884655829706869290352198323216590876391328362532271395549606918246730645565861235185207592955478856118796817021213650915711380385677556674011328266795343814055287370229829468447671431457471275515058275886629576886713625865364767675712630332394527717943877879360653515514173627339768258413549490087564777082789830230751357239773150657500642999367726634004604343353512578588919994650982894865253919505241053094072690568747107558843858081229983540618282693269235298484548864792833005366127779377346806505955891076148501256085656742358211421804801114384274522023264819693493978266222880783621130143259137695635808063930408783098813643048904180130398502812123760909175126635569667445244007228318036695091260242633022318649586269817086976050105284340724869188826992247039675972036509572780416079645001871969040582983514552586319006278435610872532990269467081592202241732206019698234932985800419664416540321211033498586931009872055479186513407618832994319898787613387424946282850511591026513370759818318701746325998446465436762076981525859566157383216390920702819787601516413535629406225984657776126022320304051641284092569208405790961177079764173161509416517768606313715830500176452457541718775946218618124661781522502705084883768321805324142306553973868968216280021470453098300923506089457354474309367614944043914179230816737473705917150683052530744064453367230120941897167602353521894365974698139412268141687092254910418440323206157544891115624446385271860023170289231861190141724584696775176237001708714499062847664729930102346412521377549892737140674494861863853461343770134097601936526308659856252277063414201773653104401259394194271568463697045463418593819430371085866314854344563059160788297476646857874113971621836186007267238321584868306902392307504382751481143702246689793049193059423941911000561185127268281974359403196764776593814250391598130146414495700792902137223188785934469770246896070532882443017929768006870101581305090714613075124604123028818455507025336669890712562870924092263935620820168073666206211655844058337808356403966181006544601317182626631010447668892779296199919225829992405624763046617617727513292748306097348169939451532784383713714811372896815491923895942793237102624656695318086056941250737284869076144563047150443150349188788422971047869831989983510816736759210598377881399445579694696695773269034775362291646769744434909363701261786034078355372982626275118857185262147808448759655327844712384418506074939296576081177819023501177467601121792067048651711091852403196836684259381213346765569761039171938374136981913127064771906981704479637966143479847244040340789207798236442714957032787744854514571711701383686748532895071479326958773601731523567242442808138565056261690482551192179120784048234580718658323299108425438703458483961535609903887026239626514957579265155972474680085391801260545294820498909867082193773890159973175256300622185824469029460250790926709503916756920698306642234179642054948744497954362202424856028669277979766247033524397146472086610240554912870829193422541239927638715237328258886407340156114315271421738830853361233062749343374313804728956582470228410182960553023783881059833045708999967188945851926272853445191157465903385218912896190001795466100783535073175899528932284048918618275400909188731716148286037792639649385445998313920902347554917340824159402305200199905391086524854768739351805403670975647733370161524125373633180702408432283219434440900664624092472183372556658784421235631511169197494000745822416729399399198667155176581517244097112317705635078003841410649516018629238567867276006476529531195193212490141787372193941906426276810115636544316188625620981293040192888844082152224493790169403619447948303777584604498528978434279158194737507455156834005323142344203441341368820310591742736220719243813885301077430216614676715616990102216186693843062937092780815194476257436610465097276691269780796364291858082730778015841562387894950635547008197255669120798611779614591228868416390087464675979718357903219505968084989548670761760690583038980479667435302662640144971605800408349306254160489005431321882516506546621981520637941439620394350535372832526396998142287402283902440822970633735158428445100358823436091533608779374504802489000347353995369007315251352647856012272066321722923839643744281250998748876488308502125590218186306813009282315810015720119050620824216648394306550125297371040802012046882948387763242969093276690276999750723269108059608180975853305296823256786395876978197099965084948071340763033260714916254700300163212059376647400513016195536411863980328920432507491083325774972328579460239883108562588839701881443217023068771240786524775222799803073781819352887230223221154966527972892476459962459793810697918942966569960942692968482238327722222665894669906560480930444084550217525937322081362278920561759511893696765917665727988811035338868509938884739128036877486239214422212857923194494677105085558037210249584512878230769983812242056001792415412241815336500531508724565891870315687871894269433377917067157768783890388479631113484760959717322657285941336332527010406552555614339684009448797530144634250194061524570869715719213300546354365540201568136180584836932974513855314918929099539612566380326385071676072818300710247297222080456192775683481064341450912387360978172587511816639270609958676352951169913224124909565035795152852916556815257741010947455125887332050556012528241157195005042928411232569517368268607355456825653919365528339809495738270041414565567947012466660058506569600721863468793395432385198130464576989966679032392713121922222896901711190172470028442055607978539226670467939135718812401449179525008932230921724246409736268156269711333329438690209717050582727919429816426761033358427750602345587918202035316556429691520170123900649221294942997843405460025692455543959841255778632480109316958713991871182609842794238902911053501488413405152377874618168113077515403649346777130295304587280422914537403482013834734491076273416998925656375436360328136371112236897867066742587703308048714623835109599419410871529408263929854242780149078872288268556714899487003307920048973231884148473152365523624186803435129192531572790316895940344470442720104386189373499583915498962369986767793426573567956533906954934994735068200705311314869524425521268843261500794492625686072067779524086303003941593766446922717795965025756138018260084827702954431434157958727236935931480107914211970384318013528552794378361958856786988287641443255575754933059048703257045559010337703177226352701884494842392288321707312309335738945636612825641907943537736278456648049218476038771839164003979732579408008230201929679187049780064469446535612644243892244292620870719583250336090253495684496948477729988394635330802164207203389516915396912516960898876831477983242669049634048992512859385166981620179171603388495574163006832110436224981312781212874917865485958582912833066076164779585215197465054723798980824125890316196375158254896121816883306612007807246087104427467642396150030489658185486274651819602795974757808571883908910839525437669324806299004824451090545469178626692601466919363027392002467933842913435397383321718392427171865441369993623836684790863210247127080931775133305182582966767922376691554169038361261728448789066364997048624804302905455615942806050398838752378075834924873940169458174649237909833458789344775202483039399016217117017963831111177725325698299736356259255596448232684279221971889874677104925982102205608775442304157922514422337479461330936169857387518438827499844758719118690203542923627073919845968851330066787871815798865235932635019485343945761418750996692845249908021480219589684059760688864083909135117612427254168271337162218691727266843119134649286019765572752672508516060760874355916636241803795559712006182283879988438516349366193048597742917194174869497334295427072952914445711011264569407277020635868286209999390975008784668554159291481161676963415522967608037929157753281970562265493607080173289285097541531777694496572687783431342375418677501772585736340431295027118868219239255405656432758001211027821512210299538737856876678954836727544404972275231609200324178225497986731828571961820362815726446278357507803514973275332080587967729985271859827035011647399606950703407999785205855911093665550653923684406032244477619660841858172715199916038045676568964985232374411071825962017146017661733247993532570212015026027306396722463270052713723455210919521987573714197664775195346795105792280673743843641529906590441644631721145608298582886303961412196539751408676523138477450221550029549883160485151405354050308437625340478799114928534750276002917009219233079298723444149779013436724573619125021374526238689188064874598519453031142543343364407744305825170870605719535426417200734864001378557223282412348590348839921388793244697416498063445701811950878660155230381795538450011406354787772099552831352080769027908326120694625326144344048944449787845975617860034869789225232527441632375356252776787192789613192314938185849995657098853645913431937508144832953551905007363884685941849944907477860199326191143366329449103571116118213384840261576954461704585306612400217182477626362805139826300856182647729325260351793295989858167503431144205602844106248903515363377610726897343768991715368818320401885133068491155250864396646588678603458792430386193093359180088356290881420703240512206740418705360354250937963128088835825533845088311569084940131823821514023524987725206177845230277013041159101664251946442208384913658663064516715604309367654592405513975984030450749676790916756687094878198334739943843898547368298236697954503915993519154865794127080665896203816519117809864991684319656081446072800279821154406791355721578079141917487079200921258591080424417482203807417883786809500561171654543766750869950166205180655493031760460342148606951892388625085378352692279716696637444832080539931186897428257196179532773777774782783522704542474157192517769460175535249158780434400184996801697962008752672754806208057255132778073527734205825148370967087397458819211633481526945103890895647143316093207365252073340842633806168600292513537240141422984790398935438730473754361073557041800441721476808575634152422759839962311201341944358567132866404716739798217845342716748254174602306412226110693707525877872324391836453668260967884853191446642783786071510568951504270135158256203435483139712510914874350413688067599230354664844139720905894622803700870048502273024392192531416898409181526198072881492976381463130747808270743774516154047245178970517245246614418221986378590861025092704254023380962863135928436049222040995117739333132957672042806489560587640656485542336822278223708975500101954180347462462480252804182589585881175828897281058134913824547964152068625627931596687553490620750667147424101419851869841081160408727652904154250906293250080593716443941881999646227839976803733963035801152960406351580751007826012314006279088042037843643862621068567283365726681085951473204591641858258796978882934338433893316966821378152858983081062797572377135489260619025226559634902206366150970447242501334531626964627776584097473021891498426956023732854166172828049984031365275631304782751884331560275580664964902062102688033406159965032509749038869028483310384407156089011648653851614585553545447618496078219428461838999105320131613219409787419654441340007786235755475376149361919485507901094517559234833059717814312444044348741425941690359998598937575348350342614018486072579612755986758419399898746730029954034617682282513818828431816477073809809568921150956984907863749252452155404209506236601947078547467706427740601548230597887436517058796290483698374255324014599765309786453174918693751848851685276378740320333959048153751099391148757651055092609419288718988457763061951072915466760644762166494043709881381005029603868849525324842879067810003991061076791957336804675827311236376311067846507652896165548395619399147771454446656094861747776562308926938149379736194425767372436534559248634599561371309647720875016538257792735796519535925459531849859825272211067150458686728898098228667168905727610841150572144231560277047022668840197017824280256270239490936269799871527764166158626831095806128443280672082533269475617641959880750642647054159241098100764883806661571591049487405396422509744732641348426228647633088719923356104531966968376134285361473378848625093798079998267867699824482385791329124531439238532272415647259316733772790760599103119396827370217743465964100675079126435817454251724488656480502788755362837203656968065451978673712357190728410983531687780037220191720321024112193513254163951424901358786295844685069641500480664904720265640394731307522464743809082826215133124340721311451427285767455867347287731949571048380053530313056303461456640910805806273258235703017432117314728692783457517227246421609633223569286680340747120068555863352055452868324410593673621487631905174419521312174678114513008716709575782994031580068360842596215147377644852387438713153454499382069014499439048586990600944456250107566641910761642904868308471693181480837455291196583597740959785036410733778223007490049874029620242427501953785341860840323879415411938667420589224114787794670095684363835206395316845597190763571997390678179995075072800550195219324492485387279572256851015550140820381079115945739812317985420103863933218637555017426700071402361383722553952888684415044413340421593683160258880239127340321668144774533179926806152862658956416635205547063027963501414023585764392195415538869135870961308688272060019941785902322706212428238713564659000305960313314729011555348155523488429431376966589545171911358965642498590146579847804059089900589951930765907644696652481755289344689903901993573672453172048960385701291803276427863363621860782392783534082853286421043762912192991756165252392064792067135678014174079379340100610203034721764548893349036855797887713996137245614062370347045597908530899640274986899822903261268150338756300367409028459393373431615483252100682302482935848034331367857572898490612239322642262860210647327582989591361361909059959849410065592543569813435539555331742704023135174766697068072482922527700286176056783027511038578868192045190667578348669614771949182835155208580193168151424634886745244553621861270468246112849750802740411092124379275654649462151855636602309991793290530640718405930659284085342461189974953761549364794526358335021782660123320231536258101312461489764592600310136255369358724892312855168861021397520049819231184670002546392170575397979346578829743199389000914179337712164970227207643383359612548610590465081836201175038942499895812466652046165703178335958186875766970271174349750631722520970636577259752397824620645634754374929803156070832487905424738796789364395109607232440078044791892217480101023634107837925542141580517440915109538849237948851071077079081860872587110121285932856556949522909877237757093717198937036223480412124758032364713429807503919254382058958905432894665320981485049055736698570158889821794823578266591248543167891718684877544900735266546381516952672149470854990607561403011864050483738982776509354417123967407658672538022461492952428012071008682218081198414252952265853464142313405160051195489752720480613334358934767486101961783395366555464534982895091963882797152929809041501137188646243556709195841361688387108164770217189782491209897189952266896214984266080444764397193953836894272739714182421516967888975935450400673069406037838429089510764031604054004355244575585947757721920288404548726961851564562089336722227236783445530128153853610385635120667083529754678839195291267093315210546340896039317259951788373247311419065625705095140296153425921962823458380158127245012585212680789227532240533393622461235684258599949113372326674432720183629050292054576047508261439085141305082296111206218271589373166044170073526451572423899815866682402884800161454560228253209804974911827336462929737354387001897819929472110141052094249242493442830745741980184252690200425947074173000883609464410856507752641570893042065187745845659809204088371545393711704846548844750683173111302033819026875061348283564824802469489467859620358053882146112108036105204597230893446543477278231406218731647590411370852343466051763455590009991337402813733041164298429406452274252360342258953762085852873942473874641479445911681002155735754263328987226626365890635962795306732162618538756610612781668845838273639476843980265458635025082680544948754166079104853032415678360845024248434238217029064384949161829777935485156033109341043502803132626814234679926796844626278878853569818490499348625940564476327301153655546181149249020105801636618718638092503465601292001997241745298145529221251474806317056014768856112130415556952792640525258913771440296249220873344090668378683803411425723429487784770887617081996496128140131972815767379623222769025980326558549156781918335259479293704925698090527263140582631404117388125472412992503549013323060409501064006429141078973664384571037484658385412225328609022391886615671376412890372201584590673557488662269531948664761725237621768379387586026947029516936489635225462234874582849654480315354322435626548449896800765384439161301209882153594016884748550698098875097920202130500190340288142905241251222591084497721986159490929011105799439706058673719818129737608657035326551827746863921408779905833719409318704573679778911354911658615627331420208856426410837822493992742811644371458762874403042093700047920619889082803720492806832468094540323392105888427701637315579701420108704879063397560389117255485633899691311589277125789956955066847507806289629235074388564208333923027887825151555251092151463698402622805817330078844207116334194396343377311547787839616513368421846420180051311081994816208425322427029234891398179324839781918275107212543518029221269657918584190951917651087558023578445218748279664621771489570006878973988602403057737679613626597012713842398448588560291731901304110466727350617962168910368932838376725783128941821972760203226663378880514358272830845078781886015416147459955283534918810712999498780229703926750879972495331271398216554465798218306185674133995441508201661152592143139595186192524267449707245668084329779336736935415821796577967983741781026807673166028749310144452848516464869195502224658071418399551825418463104782645495622369766731754083160959595702490745583967984378536609290278836786603867315466061618620877469089694908580719631672782590313706382772109796011310673927586984120469894810857236109467973690321964812579239378155752687315547918245856770470033561423612728950927843668971085158693591897171071460519263539345939605624332237010705039548814021407467695096518774921692206051363186080124786266569238541260217580576200306132060805140554084993630253464211937105621007435176485253334635719857491694453100882065863518064377170545639332747554986216287589899468394089699866986784843590332057138013063308727599691174317655899536033296262004596302727493074903021023734637503416042343582099601116415555885480047706822990608857563992193575502268247681179877989898299058575783135906160413398805426446450901786997859802455527178556520829127564797973156505096473274058798590571211018981690639001488848824331847385056975204025415133351253703194071806760691039598308216050660371026658148400641182741377181687680243296844392521449903746566143430652276237453592074914486178015097068816583652311485185654409165503896133153077462531797670798014633571830048830553115498661872780848984998276584228049718471540817275428765463461132923825142555989503549902775689292563122283163196116448989153376285924818208567905176548142831235255881459600191443941403278816977250420041747561150532042543827988730242854628104907667915483369360324062758476431042196103958203289434247106152600287539345299853903141655988970020483483088851369117120191572941899311374086245558209513843723966623742811553580055035924783115690158859469550257646655811973111049419882972809700990669935311363295755249721907414083612041612243476158551221874434385769081100085266918911538592825550930554858952448141831844287961901416060606719770081349890844905868708666036323180873165094984428436227102453313624040472859194701772181901818828734876499253966743872515952796614184816513015539085596963603208169378445904790412944538597942662998120994625689878609288291024126307486151217159232354024997705543679957226506534189451175228254145057433888200359766622998285179127986382667668412942671527836573161110259082586366736404192250673249545049019045508194432725240379410754887309134881835775385344035374248712981103465921273657948346876459694912319395994876346097221253295566072798161143578171813101962100130090831718690869197139153923175671761951345514472070482258223896985214542885012001042850933928899216139480395646413992330244660267466913070756007547389417200116996200451411619254327768813075594220501150659360339102457878906412805975809508702669726846381660050319226355541982439205741723805994476792325888939599266372774147096466415076927686792604455478663474152044434728826652900708494989320574412420946356480919374542582822644329978732844627445040674475446308246485627792113945892432802528796768970758979578023072883824441076986588271622544112641436409660055825743265357767937830697451152408311857608665190784300589749053526667185864860758758929782771366530248946754066536365127752561161896156140132048239432714445676671165957692302029989104435320771045763567163029805010240506744905771153672681001610789847283052724333705725345854605503103218134549384703918787978536736348151958217431345082177233447883553139153008943967069353165597795823777262817088015734037515766124923864376269733730627094765684534746940950648903532949785915365121009048955414359282345812146099442793289851046945661382955548985410244985632583930320473513910011504630459864986267191430980065991412196156995771451813160789899848009265536334747840165931842433651291012077616573160974443025214096737086166493043655808799176112044241287346773878540005289275368842756838629509343283338734001608068685469138175391678983739227783220243522788320608605289073061274117848808719026133255180217684762961163592740579486629257644543505969401822423584374289999431387748086080545522084024949422563858668772633708711637968196663329328499547946678385911526396389289959866941552149298107807873360115331604050863446645525744977907234685761869996478612153920294621255325321880994826669718622936543160370620216955954078652468317251418754331122009435369069622769560072738463969685928063951754731179922640074158868890648139682025655549977284112978455659436008640823176952923137376454728509102898719229749075090166151557574250306068988408244477441832100680465139356392130493979020184445055577900321338578519668825574183726206668268786419943910016459100928981797047664494864128966897458501537279871579061735283550400123383752541387689884764577134104686525213101334063524971097955126048946138246991084938638674413259814752743342559293105101328500488892869372646953683475098119461806483762166225822575288987280316876462190453001153670455212524759273078608680405369848078790158077986989881311597998381707623042533719472308462329742346344750287126898007301057091232913350815002159249608418175668789694076332618833352033010992232451594253321420921941173458540166590833755228570453206389878547909023470601067858051332328924291389922788367973277426823611676392188471651162139407309261675515557764199269546670207328360357419101831856943927368972747820348940372300092222660327395749913864245413774622999793475242994028112447398825060234531037591534038991002941467380280604273243969494329191613988024453344905966682531663334470567794696364511377262417774994331469272607654063050946329388791017370788049322356645234109347366808884498090686756517731755729253522424844454698383124799717656247328140446407287848971216028857806477993287541469758860471747323456894221975474936288827058584741237975825896920963624270302099280927968006363260949941251737289660843593256677825581893376129718914879158840354608624346817284188467815159490459555657977130596013429765688398984291739012214714480041503962995479220629451176057976546838800431046316930089025343696626918299371542686646849681875350748502354954694839343326367037260627904792240331018105047396487913887288106281161417414113617896915281407419120023171330763956127392750812312344451601919028734663528254629261086843004756151572749445405802442167866088143887544053279564224224793297458025772258147091381217698616983273738906404276402101951880538316795893834606839039954072754964503908874936015578972889143041824180285475907508204814763729084663270675885991045143284207486630041316164431437701512474287907458435409944566989493793537645695075482272079329993623375524899954258981508694228604320937414454392179944930341746353372606209780634536045627917396813256288861180310604601086695093876035683325569625797317687587721616753790896842290072037376613711089200337232748249515357592605131226080644323990762700999543127608116057393657069636726582243202724349914517814978689015582738264617590223332171391657294404786711440390699538696167873145675711182378675267901610200428731176157425659896674247185392270367186731378212367489332244975602922595659449054393694721416826209538849068730958288811950510893740030727202068286032192985171583220999111972600296831844040314779804639562812778730373188011330482430824974922286150650822006163900274606914436092493527642685563220377594643910901790880758409220512629054278146970060354702095583546352635748693284071401568009147155365207091103860667551166722770306806808882956742714721545786520618986803060811951787322518931926140839299119837907957787143896721235559424692579738348078299883499999999606839427777233883090200781093847650246438043305244636407538661309449703555679933629812654349264630108412337909540147033339926854219390549758149751653335125797522033565494594355998163210346177560175590429056558292243109718675407929060576836295008862554111174310887739778907723942989847140566936721315637807229568236089763062428836146292801147735570839888469897468389291700625742402221568140925090525001015543447897177922428781602962055546761242459959375422628926648138131279809013274323042304955021791858865747403994203549747185105874265870873346801799799342146412904360177735897973868397428609713964945234048842522201847775897097713031941453042907639899924353134599501321397732039903465782599708380326222762453742840077364833336242502485724680566331119554742704554310435623838305712027337258748979236899863934369573690453010620162330959733257176104776010799486952877621723685007527819741507729581724426472021633536046451708013522808370832057084226480799579891496258705380467084718385688735127035993620301983963421856881919155273407808922808769628704439552238212478727990700983270373829637698591568125263086463122721195786236453565012900400219909925234539680854626644337059582734961039488559108548946348584989503850046410002248626208817594767570832950780680372086912021814631466885596201446156863535488807178115960025084602935094663879359146704249357971346841057760891998666884086016380540652012329483090095965960530797280621246465235567248800531528280041199429991730706392272595022109766655799915831723434753610711052783494115725600776973216054442763660493071462044940336147828969909172275955804656817978456820643470608662083926521080611624104037539238218025344681088772378776554229573249904363737975788036531178063125897857750691522618291029574899258216812122284003323217142971382719098442802197653137326822234146822846863817649102634315950507089035475758046823817580338370442994399664344746820066529043129714533762508770962789601594795778151514062808054631228370532033379011893883599710607500712010885498247158572735675876208253090678394743929838134637088350286495199397670888644779559469428046251271232298778863734863323354944965733175959669399635313610844845445122148369729972565649260376806573493775514972009991513146299139532743792179641950351913037935507655438638243292343492141692668446701438830705300041938041776090802051747096688927489924094060864362102525108644514824043473187270990233009779279114194203893194732240322572796497020563664555315576223954781998871716955740470382282030436166600121096922581334394205684953655733296372976773797876911985991788115982701098845583797050183946445782449518951354615863850013390170384809440383255746594472867258307356446710454343447095720608177306936729695485781963251129256601669351497375700900822744209830852993175033753889848460443599859635165491113810279832415292698498596526181775721704972017953884226779096090842370878077072606321804920870381467501873389920933136253302328235658391274928062382763362134589563989994747366533722257893332017519248422319019024540169256696925546019718997170805866978453266076532027540126320878846940388058613884672112489970136487292344405268627768721879068131379017311636654136312080112934831082459220320435309759171617709369763984628015021661935557248238880851715871026320056341278860944237648857018187656081104689856364165566940302466882716668746058569884682710140570365858384710764117463852847663935599605256641909113200479690398954040106113522758320777613607553561937339458012590438739332287269778976974167229860564246769285646903869758903473943547804096587831898164735376828424005678634577993027552362095134808382138424163676601609067499728318724582200111140206659013755957364563690003366829399085979888778409838217099451912856830550373464759523054310349402852819812736171882466087150245235499296698430676839471805120578810737671521230599154829538028862007459974523427118851630647225388870639717383755987708161155184045442882961462037487933122181043055464050041823223416830731165642018226081570300712849249612903264539785074701081750170581014647453368915797335820438080535961592813848624060797707927460711435259950801449598473742082486453674814157728228194661761897588024948287673663894024584408995018502099666428700761809280897028355320393892850929182186040197007190196696956259925626102210571015862611294400522770217345535188851929294055899757182409357802545796489316623910890398706584989110885039556334326575837542071904460483578039875132898569809222512622757615763777836855543986684369641834453627924327300443091793171552005732653913396500675067201971921170788248719099111531258137552612593708150952288331283519075935167848481446112699269314507154974300526634309895983418396706550343944154281707852998027665253454543350221953108630985986504581321291553039263774541466350327636787250990315493346791178948291536509547537320389225812961747201417630158999109470075115107785271686321897723096309366828550447100690786276473009689454684679037599846513928130258049822679992847178036915419960193763223710295191490590990064363610479524756581570272921249946034012503818627309912100768078544613643770436668117228351600947306677942599614840487919968049171412150066187986258298081383046115731037662299114375342148594437328542522261193143341491871370371067396535504598115391805365693039516297275132819896921100349716164578488454866713075869786892899503670105516753253860771016438868868429641362091937285473091249865755581661490997933982952573293955976029949139847192373795492065274387230617907056750224564670050736746678849475442024489711363929226918488816448734988326418596797887244122039005498998942610962775133201880420458519350041151545839108938818719912240778451825116737501622949159803757116657287427568793654890672776445979764981518813997590032397730604047451853475176011296321806050331506578996769423687989807998137992903136410579400323231724978265163660091389961895072965009914542644062672367895779051334075291580567849254454718115477315632270140319266146865981817941281135420821756671089034567549132212004774874875825503493242893632642837445974843654634536761337260890642715776619883039052694272879674262960261411689937059155202984951443339364774941328971469243250345419251827790928438986041765029008550092474472747877079176277164419193969477587724795364385271368181842118271100501554336081460374373273152416822123505064490554856836575586611891011312910542554391377262766519937800927952281240500562877504872825690052604367274666481858061970321086139803629142583340877436117764877624872457224933513129286003290276208975919286903742692749201991922658270054692010386957539758416262551329157649530813478159562304561577627761673138207296852869583842722885806591403700958235612348661265907870119138689307771574322705432797082592213018791134583025851145186498184140054738644234157722402268757644709236312881086335644184249340575313587822900222254758447757189632773252119445688221754010452800427239158594889163018181406391100482425833131494700530543312659033053900964081741630335796631784266773018887986559921144775639493420077501899506225094896361309639878184709282230244894367712991018812122979531119157894544789210687802843334477163798221833480799586638194099483590662626912696848681109055603371075995154113405449490352558425125719999623012995394096591685144540162407659763892261839888953916717223246890921092890661736976947473294867904453082196988593949916778276272926191008198384129827054250224384900839493911813811745631731970770171727883461780255707594782371347243336916365870400097400186672185346829917053521054179577202557366883902577036476960340827492994982564967090671591517767393411751612713156000898363133588307494572881530032032957346650261806968865115066370991748131712365166971611410088241293454143017368823416062621399463998077013794111052551398962121373698719203536464017192016437635666786707385288493654983044485739366910068646922511363362962390347745494575120561973355378708540018838161277916069397987879207282854311154783379688687951552960091871118568541955853272100985022174570810330714480221486061854891944595160212401284538321660539304174370151167961184927560385765738795848138922321191000099721978972125992822465111100449702715175234041826061335262152679498079943044830354419337699831920560016537329396701274830126333295499967284593783681686149340254976213024847932836277640646523585719273018732445327862957501674399851784064620132077592170237720761227913712244051890115643826742051478804216336569192821165912914400199106455669110936848554863056726887734301021681286436057744667550966035966634800528769897542932677072647765522179277616136885254643777965313588465174582649872898115926199669667287811323530732203821636911087671619306877517955959995934746789773359190271000669391892965219342347985420397798370578547158827188590602551615965376891673707579425430043206636948840364412112565696339786105793052229970155821493670191494941442627781454595629016888195696569628721385104222440583767464863847744472434431353514333822249542526654703087970675830145664165292541438509348265950089853541429503079198999740586756932661489927068166055691039755571155489841786199394566986213962081318131758577809364646945962390354364981260661976832988208533062082766573545418686182462899370435759127390308911511307514065799817279588285421524554683834923163966443040099333672755360981232352316915500167246462606552993451616786478149097619447156334138082691677094345269313531456820477745229650095533297913928797637549917463042575634519805950404283350467121412156957365395393328359476676473513433834511653899638935594659249880884852030516276332940079317702625511239453633697944689260076193018513433352363630010434620120656451394481542260901877195984639383580445692975234752458116546490460883389603143007024435174053296317902308540436376082099576534546608053104574987277971487781037114967819632654373304855562782734809307033221245096921477442530291357587394686028074705132276753795687209613954585005826911821564518910494591273352267488125352513742334952795758559042380043257019265304371379103047138396788939355028031002447306542090235976144148465135182306928671212784610446417501565246567010331370513535091980034563287285875255682346778743502670594098417740679061980433355002163156923019874667359047612480828706061918591613784944847057494622502196549535599510212342201697440443851147652975737930416616135057849406038751438396198214702014251302970888213000672280793478031552425962642008928397102021917431315000172019403241076716969641264853117904241817030394508114333715297471769893306343143622365314053078826636215278383501997026889208711656215904919166477999530755751411687411462566176412780469311568543604476242416466663455127736712054142627849768175298361276747168407529668764843204132877222693619820629537827611756928026640190486817684691041798940584655693194576948363995717070924339000176301735646088776278742093157988623094739458898689431278225082564544820331825566338162104962078342251228168119934300301497254812039310644435628610038167659604579419617832570040547869022175736671874527259728781069346194518256266530417316588348074266032503230706227382820748471940042261251099642673428175045163611458733845802439474742799997028961528510385333571795730754897254130100117067128374064112357363098361907395275966556347009576886808553081689256066098422443385555003822318117746732001466760575902306966929974677183306079426521724621481536172476104714121376834099319389737810462890474640081705789919888558011977366037983940366013389632082189445144048206224081678524959703964338619614356096909513295419819543073237236161738717734604477510753059780314511518902124131122057461491291698286707238914545305797148248885808072708917656105677587966089811144932287488121249432690049726041170403437653456737349562109400881674119187679071599174683774544083826014921396540609428839849971456516702853854016159754290042557417839774167418685264717997436823782925866656571554924126184318188102435818644398521760845915203143908489555997369730947073979245357760564879086805859851027513290873467606947432877091352833906107175279929722166040712298928649090107566797414733507288921896936064755475887056582572704851806651736131351402131110210749752349094527632013655177576082283459323401272859048860964032261020350748872416930933444657088008791729113810979276681687237082354655724396390536859510044223591048041173593790705242080273809774232311224496082772952929640622301866256609700149971301434838663865774584542808150831637269553236668112013657185719038295659657821946394791663973338215373825648234751077830756580379647698027182937748350427365330798746673183370462630483382800844438477218245656772977783584940897834283519877831478466916261698146956652589872859858431923039188132335326963006628275272250267713337185558631844583951188965484997106083831548096643194747205366562061884448751625362996382271991390859501266691374341791333587552215754454388561998316749616922773537192347078579773371855005773802641176468574962475602521632824655640799526648336140918427207172580182744007102397532461162941175108844653726726660406172135343852100439095285009857054377409038748155705802167140835593260893225290649171623100442401856507941256324045799564429356598763022866988508752940584472105719830577943561942328508524945372618554986255237719449740866292225183019127240112519455601515163605012722483770335419171606628631773442258268587252109117777379483486991384288130789761776407941574490910793343306206169792652829536862040495604783484364564430919527464440373049920069080706912498783139184801961269634610038561590691428572077456834468871325084598864611160030836959029841291801491017808880189094177111886283433398233079977013370734041868996119139582164566454201773372001217053912548542882848612899461695902509133173569195120235157596972189916696020369866259681382445000041941445844021412025995250951376684004403659992009455456334037787320996678556036748493099853804929526040720322287732390771880266535969319808269319598710798201404827934249101418238586247826264751186475081776096147023672233779448391125840969222968834325256586449500366434574138897581951939922308401444744202668452267744936789525729584062497920213410086202373545735339749880792656226476188749468592366419552457384934712413835748487340216997725289884281723640238620270371564839217670898418752687245749908569456888894307834891633241921843854370037567849043491046334998070604972505556717213496185129657528792228985622768882943417155642053203975459002819117944709884180471342148855868437810507741485917762375509453874048425279577713137900340151051218271679106721602420557915431806591209026682370023212566265340389234543909922376135493528212931232036619857441847977807867946427930924094472779695008278447876375743973083863101268595074966959897586214717665579534310911653872448787992348081436896655766539526059698721496628690945800424924264172372464827586524636521844477467540169991979618607468048035815305361012117648993488591960543211801304256646022914919291711640299529030902700635608013261144278097082330380740798855768696208509257244870481274534607647514024716428841822970125974154905093787059384081294317117661359797274726928822418837394950933783200880722373493064363687206626102446572618867918931394550315830090127769081432802363946807118310070490892273615824360576753447748133990545159302898173730021165518557010033991702183917094982036520469669367428519994231808043592223864026483443207254219217919960888548536673820156767997237739385838350129916018543605337862090024974338547370769861570318310808720742054982597624436363421254290815437281479729717497591887292709140240225707693629095240998043806003821651587194584601095440543495846873902664660084247102352809824508763803277010323325497586421901744784968652798353534798995254760096418881337852327331760315018337296088933647139943525123073269231523720270462752790057249361910674415523747719212521849402323636349293746396327235522702149374383856421280834935419137379431190755896024319193518244860924516138961455432559938325491292373635839401754308981847279455095173622499788217035889455203733220823424722897401793535254600395023080625898036845957832645447247481580871077039994048393992307086697611877896144550635121132961791781663546337042516619013660996184730724036529567733424913481175321787886962050120839050525359639828645859629089800949400440747124204313198373375700248150486071434977787110166148651338028687071331494719091340443493516743196322026113261249862281210590640358161251068599015763559267437480458569036075026324787872385181867601596588908754327343799186699056780988969672649425620437757163096326247059140448360550700359652281753588750499193423652476490574516413754560362277916955649165173468914020608148635859978149894784135511917586226833689054475847676391272251536558401112639924818516847636380907737244532882890459154756405937662615845623545297222205363293951354929461663440550527142980084415719802276859079972925568321168812560191522341319529678840484107141906143106518233280950231979435445745411748416003398070019795046055575111401529695275646756575330099535716481518789129321172777511707332611221064674130859056234946584320548348577272822554425850774020771614172052448167242923587830026094297279311231871870241890024250028279639305417792842512456176185234263695152749433504731082637819134479562937030306311806540421588309046237725368586481169607684586978758378492746926421208292398797718892571210860713763994566120996490327702569168043378680117086783279203426315390071084628697624578054853323367745804627978800977638280474388833322276573915406650847870847135014383485023930979328862038961959374592923313292281662358582540233373681775039985650608205343445647240195558724603443101707178536278660038610021884494650370616712982732994284745669289139783635469949347523808795545090529461428504272144819621646284670628579729176481707104521070352389298037177168514175620739883437927969304687380588826702195733742597411261973861031044537111253183164854614005036394188931603752508197066349070385223046866837050320968023029294529115100810240681368423867576780734598911000888282774898977677723046491436723755728207081553196700234307985596156399220086693758177119023061123586489487836874614078758229589842361103003627999954237493905961732672590225952278917772204047045653933766099160475723504461556608301505303264778153536113368473467448706913903244956331170127836382009317080442628413602825705672600237885955565325588581930559276297296445690512264087438628098732998945740420943232401659639094586135344771165138739826663986982899223816969235279389954211959190188248522964863630945310612962384829471034311420434715734756670518251139564379959211826531844542084932886293687455555155288468108866933935911574952987340678040549684253111801754109980928241919085397582554866157422832144115092682851448358336973107273305553097745598409162652263645830591163836610844189000738925735434529808827716072828387100453342023007911727205461554811833524154561819393043321528106676439657489410283970206288843801882575532085921075255759902380250798750852654514705220926571994778194832752172895259340478133181424545652170654664328345422915309390536624461496094389724615844672212432713823594378856126590855864744886067083651614582491130466281448475976479138509238323185419293459561214664827604565206370649807398128486076683538382213709953058951334863100603249658241439642773722583770804647283524468780030214224786567260710174825893602241373866093861352603846178113247738704042570876774578720027232489378808528156082479832966040679217604084701082843416198235742768655586267818424141714172738921191458105798211592914857844710514320856867719681635761696809424519694350209796440818827251459164934779149210303513678151853397828720696491546139369755800544294929038371871651544800169901025406249885456464161899136309066092056861566745992164659755020853544910244582573883548867769182828273837122721450323353565210823808890540022966637219033010466428448010867846866064600700095085168275611089324392870003995800907477621345737433127993443655365192219225506079659797066818470802066896108926529461150243409218238379841455245007891340387804491560803559704517619931963885842027655858281666365920180018958826050257470522201248620904133950778819425936941794749367788251223119397039521333654049027828091622353773257613588007785895019398480627090581005607275593377070194446723719412925332545528851655811468192850317678307188280327799077502132387865358595059981447194368203270266171631842593828128733486832596358318826682782158452409728541794059041744840710522857280427385148917978883941614379685180759880637220525476757803822569627448257526991424590318622064058821497391452324407051875052393414392661727725994658749495996120275488575157604577093660976487074425954085314748271854632743270168520840296627794967885210188593624082851653385068379193725299045045018547180825382951994785804722370203745683314576613892704878096761302937031508917145597880808260935758268191974364794721115479420496731704836177026667399874446196120925856008424960409405558068116369280195296574977649959699174702743366031304498291108335286899658635021914158709477879936542481842631232243280457191809996822496021607253981165021445065063836093131485100684771116164529642778948368441194200312105916399271252018614750135205471347810344372194763894490523289078158404884316519931655326186615629303483112985675405929325840724893792659278798110849293914892694041444673062741878914819643802972187406472897158444992723773086947232248358995540530949531001187763903244666948866042146844814347006265428658870263952159793255523529215187857532365140075850599167619330954039278036597941518341535032954741315203635278139255662162846494644048513176551640526740620379740931342450200418733149464338808761113084105922901195582734847109599721974377118530062344822411902309135948641849250634106805901670278415708813147065846580172228816017730188288576485783361515120859080077128493886654747520757513295093804510094901543208668024229101025890572223418889435263812408703048285403902530072200070556161224913506487631614047062978698549190123267919019455174435415813790856302141166057244031185254321642231521783561216982728633413581320638501344570810290947591737059050292954447884475365398923045191822654691041571931325348501631020699063227010375681378831577966855236083309397570181083493028491436743179261580941424184340339164657870289228128926882756183791957422219049193077311761132701982439069611387756292661222908118134761448213273187435067948224474337062607254220388242601639219979007368742166028318939599141440092194593044655280792800576916775939856447329367112435345703232105404803196130634612149221153193112155506111700040251298810931920427069408993702721401859086518776956031312952867992846253504885069514521244073350370333203969196384852948005427358692109234568521650628147119835196512765742389313513838126774878039845947868072520121810054075095405520746873843092422829290558749908813379136229182992206945669088935820128114393789539433948535257326253565116243608074704131645590328784092313843789820531931015224004189401425557162521123140944979864111093768142149313236820569455606313213706705964120985988613625742327127912827906369521876881485457140623817209057430269537752110964004684604318469098420464023806270061791240236157342090690869320064427283960835808813972625029205084574947446439652280336970530753418357372040554788778676229845809939537194360409005211344893511833992543574270435979340260071674328789237623067323970341402563098188440988372241121186593332744994542003764353090510243636657773892888545308012539641120043552493258820583270091467476402314905900305201698348590122019545556846716583817316380091183327721747209297580875252227347382051444633830229054464493950611794225704142237661435711451723864067192158562096870247113754992387689344371504674398688620529946523361074193266908177127540774197691963701421240642911270659176300863906800257000825177283743008457074478694873823459871281122459714772164309488336819433287997560386896337265186822646910151233896076176091361073005747444857973652575394493825800635152927507424433182294046228663536175494402971857405373358857667943066683195415159117363475315124986436401264525108639156755591141559898155314430110564411842009908801572719796782796678789831518004565932222298064296522805383155200164456570362252678579109762770283162157989639665039169109647988817035434678916953294056841524103470547329014831565528904223241644388527295290972574780578413525598995911346014390599723663219105892869826976271524689839750935202193427626825323350226937082140086950217665288914724704048979459997796791417305687846640613612770196145401377412470847177651876463051915312567523917549491986692086836472730150365494199625990662879121039230269946187508710266021742407702122706608645005422798989413957731211638230751259345569523890012508880134064079251430161355570341922182672300752231705727745752488339216762316434761925852242060268381678186117871349346384314545685666861810789645005898245916191534242606005213613638815308282482232581186099190045082100770072834980549183202885398057567257326879719496643380939408344720352170798780007033485187271444176281335903219002076579085960667579409216362332976483898690393331326985543539298185858920481631186444734824917882901071224547238381532397107032973676119720042083681220207951444314074967563776202328729179012208646935338265257333050158975380910696883474972670346137681597890537695124551771638655566373842848235265432676327753346531514965212595069746719877598751620471126288734086021401159995118456416435301275797513742657150285654475733188909974271800529813205922859763570967660718174413010211007870027519115172263478750112988520772853992703418999681277720944323587598472795156397217238952360714977126384183355847202896367114880172424943215097737831811361503417902111873079852111120491912551693213345839060532641110769623174600290953589505677122525924489031321083159580068160912511541231153810593402050279882605836952302568142978853060310188313655900237371224114275325035583419823594949746025824225638065517255126799623742056306532579394619302660578881300046742269631735589666521860407241918818640341828538013265326796608866181025783669259553163777559798248006748585802699379432906024680689997568343769952715230086713600598800528030599376982689391010766472273279934848474714625534052379267992208727809575746429699204697036305140502924353950108644058177545488385816779574062017827419952986587118516486605848436519768355937253254164707916972297218136358478529106189603278543117821820041684307933164269049216481572580529177302983875983320030369704190274342826255213655001464326356405595631285065501733505513809527734067601738766002444069302265663907084838757144578794017069511072788728365605225795303754568546527722074464330273715870376620132396407806439539581532896025748893598209300801839085218521244065843892598715492773660072142149865324505013317673231242994347001782829419820573506830090642234876734064461601722550730160848910072079543119683555514914850607378723925462157976044286575106972245612284373561371980666664735253073165062091240559113039369244529811631641813296262073265623765170968887628120208402757752895997310323995698692795976494116874162495438093781617437932146533065951928685795833101071494467924105925191000688334080510291653275438636870597549093005220015994796142768100668758547156959848527956713891146708890150420716605732374521075351974891680922613144613980021033759459475726318505371683714635938904578604943569179887550673520058004258534277824828210172119301964127788614653218656814684958858346633321673855389547854504044663821012743605641141656903810860520966132743229310323592733884453734182907836918487515544620574993910833986989988079409400591859881629265273866404803902200320749301937293042298144100886410108960535055237973861640890182331597961960192908255807348989968099220320418493118991904456893703167630360064373343624735641746150886632409935772616407325811778547665688169822069174210115546004746638645074245821026016087871861288724395434860017337998536044269364685987516142544506066774712131349935632328265815213405101201151248901747012185196578933658936934026057542344421995664695285304139367976085194692589824231365025122851574807704599693770184192325843787907897299276541349699711184046910545447185368784635969478328846285093364484135903549860672786515344554238181999192639404447462952354342646556240707025180439693026972716755224664804559745278225792234732201488704624683062583270630799442843039060848281497478657018682007022362803419676107426467942440872966806336431805070782620143709158534210676569926594058924978717462862541390138270269224297017172431150539046772870554023572970524504742730752198277623246170019495072071171327610135721759818902904519977956101499006913739123793440894485080800775421507300002057449610889431702590966881988385424843532583287236058685714647383050147775039894092843992199659761481996410873507911976343263634328481651251871952676453187559435871178857774673193709195185287231417572942896080723865960825288442573100902359005263653860729435146135605304324998003421134956567596828840694057328594117227221746696289572187944595065840620201027397993348923195753048311257577366334790437045756363383730855679429941362586859823018334244595608218474335590042017110308414697461258043776009551018394041818313057797543738689715154847216930059467661883560266633543431044159144026667561650439739067492815102643710378132012733970572465704974284431447612096062245146363049187050825631909164865145923969387113695831728271477812755224862157000466876496029047488554204255956181547636579016512414457655686507399051303986372743913492783632777312734946216954121381833644632964432343368309208483393088836635711939536117878576275613876362060581905816788187957762629485060553740790163942824240486654295450012034498141285484419720431012554573408244736719568808180945944642863395895573155562629218905347005372859798567375716274640488532280085166612076843478512801571415766045795479390175672055362950449313083074724719795022714607413092734416244968654738305113801812934938067886236952161894071553618081505100320816208864267770872013913977798442358873574408579548753268404498356768235426499692459385509567339445873834601072451412300168622619465173363627592681966934481431445316005872905510108597649585209923892475648323519336220890320725512784067792114024680141633012594984449061376598140654171444227831174369096061220548286532575738590660508570925476633696977619708387774976282807557152843554913115625280350005219338741925715744372339650166441597142679543399183350679798746576401646403498330674139455369595588820346868918992486320353828543329861940764745056495566742750048255372768527439037572453441054692282304550491229297259382403323728450936719178035150713123816344480324722935432285397779619779183270328463866111275313866546375169665519042796164992451080128339602234312727169982525557728126478001713700475873613472724332667011755085393493270585772598871240639865200718055062865372569351664194529374141087436296817494391522949409809295741039638873283169094930348799729194660170898464589282837256547800869453150495014340961290641651302595746360364218031847809191156483274997744238061329158449574141743201029104078087218765684178262236101006581778332810853060947973677326322820259233122092775003256139784460643171103559288853851243581776760998135835580191780820097616136992318860445160426645082403656307397555875017242116168239519978983923364005675440886036132885398132987966993127434386591555301321122190566508488231496127231356177615492178578571728497784584548058095492523468722981785201145039580680538414147534201503055819977676711775338287720159276962904193869284059786587710820495010559555817920048524717385751221868908046831967479791299362367464420600670283259507272406593047886415767327696208677476778302879066148172249417856629286815265367098595825783990090725648780450073639193726479703043714639543543021415941427124590185905113527887934270093365455612891080266963504484437682826969004920588773223375185363452278631097870471568338744861595372883091530659632169062913635334150771143329413204554588311759651969496800054991889704720537004533045230817613858418084937588110486670146166790978555995735205510006494805241919928741626822115976263636427905829162275635360157235497074191717226157213687290298686190582889490757790768855588144412147485639817995046440384057267010184682325761549781973894800425830252707981069222807548253719965352730658208632577457374790522174500645451199914338162249430090596831979675963091469405885203293810543567744642495358752656746742799027148353363648620786354609084708557617736800733997169799002173370911569086023831816758408725074211463530137614780418066405983639474206542477623927453142756666926318786430734057545470244361732315599985202700828743446583734172720357059004368008159838109627946554114712423585654584337360265395084507990519193971734960326990532417895300366379209117889975846060307147873806882386618197792258725935958349835506762339890906375660470942706318314214549200074444905910959527115024864371841905863120117344132924396621351657659128837339409046880900197115009722164580991407146877877820626253952410103414212742356388644656554383582790688590861786161615499722736562713268796147851983616090092290790465704935913011915083638657537716763899723636410157895698133273912205353328994916394982524476843491437072750276999108609913653919090948734658726354313536741420384039923411152450011840318996238876184104346094199921925399463340558620217189385471518771142970518721034175928925413571102733912286433424742128335406390049240602838544099954350312324604739409192194618737857221302279862927796746669519078857971290410217674529103585394469826503737730381138974699937020113470273312906124325969084916510985949045674493161300559304839539687794555221285552870634047224686615976564999949184789901730183227207146483432700958735293086812375638169756587425657604556823542922011076068591765935005684101316427276947687224149851107992522374983409529606432780966678693278135619301382583367065439355925859403321179701495855003273984462017078381311126531214781820055358877132602645454834755241034659971252615570402762055545705128634727679377492900553604838441199896388030318657509564981697722867745166285088638790141896404919714311826912379745437871801626151734366537373802048055461569220701083135517019499029936610181975762442308483107170655076226117220975072880992976446264254314552430241736084001631670187317331086110597270131492020602027997968190373717501291593929595247453421119287359306399516301998852988154174186710864206541054568961375506699921856649686537509369626935329572467701036102048260559126273926403124517457154894804288984651961773517150136091937228131376776596572076628346534160479768570582542142341538400771236591386607526116737857824183494083057285603536620838367617377941075313266723232978569455969184726025799974034216521550740796906566429593638402853102249837506444196321632271053271834097391058785967931156820038959386314698996741225546060707929953298809723110415501007284113338010832776292654844388820512992410809024377892642680993640571995247418543617815757460394851684412367191772176913430438740996113696829122326346922119305965711915355879549292622074774217729362236746219630371758538303300601523969488565136665950126942119105767358021769469807040140515538877557272605585169808974199068964790176640960590439736119262532253518957740109868030294740080369913671634232936132786247111725249322135568645036237857953321433031868616090346470427205843944174702614539003062953689163474228330310100006272384151962922184553487471100042709072816342176303605361019490805912135484683972487547903181286859849659452828039366683146523264334805530498596509385374381640930513226444172043027621089809186342313817932478264297748219574883683387856422867863636531994428439102390630127131601186306965441142828433654135540822125912067916634741433112062754356821029810602947717399136709505405727362841408230936274701770958377761288392951651822373720728567890307261309316243631564804049113394158667243352329715129705441623055546915439539885326099973927568591258093677095637883120507590193850812138754366953120821820720236866240417369831393002139516484477901127934360437327746810256203769446334174817242058245527045245711140390295052556822164171637739107824787873698053103395878198271846969556746440685455640983360329418705969765729411897104441160155154410197297458132905104821044863978952336448228984824504867306969188573298331929366025958175118605401564439743623913684687357005859762987966587729225592835167949540638847126944638611715356410361850176196832172334232732132020435376963087677163930840321499307694478172287255857648002658631710957314318166327385150893082289373767942610181740035121297752161489245665316903199268980643588827016730818793553239695650789138011364416138483717834694716420522544091278444040389806787817646824042996564583324966778277010960274796943009593973604232960571195160603056005958150180235285618077612282420272552273452090834527544757941271040378821231693705586486456093781824129089055724072808152112347323293737923654776396501957706967618824548521767829698216882565420553391465265733665827557647169441315726329004449869694799958488483652602590359175903880644131839567025656343417859612932516000385514378015724080615842804655365123754510617385073542572965950588839801241662607135181589823590182091445932687993397557601194551519325755069944584047952839182493963409316177701814508019890468710727423781309088031495234948317197068918559526014849811378027519525323713598976753350754552164798110222342884716958042917942780547388461438634048017901297434000617994948333795935815696377542928316043397251413848198041837075938943929201729891217940738188182524473073920698131537261135985242351583600960932048313252264579178006381060443366242004649283478643302065978825486414512102323963946812433562136967034849418645182911963610225520505176695881679223059323128391287815415047342485924401988525936319940153058227786503580275404757932822672158552032941265024354732893007777265436537275626364133076389007116563509182885893396214569068995070957501601732487979760327404806796511563779271001062549425181907902640648162154387517213124774299294127699822403212475747261114555102164635926452519198628015541716003492477875361602373600410221720316293196208827721324129329365799580642797777606228844379675163226338036139524923674535227105122162369788815716645441825796676701577072631911530038277427966316663087076812653099785225182705970911167509767904945976466885643168021281839196041675268581430780570373172286264019069053476274704621054889384281013027198824385855794606135643675572080710120705445817475847740715518145490988817638331370894765250330715506362161554591610415682888613796980683649454470428532567049587295878046559151856078499095393292703395729431695718845272236179565892306509037161191926097299721415879880832453634249518601118739278593517431707180723345828824561525923478951380597613143834329101196801568199875595655173282790228077427645870437786633389292447448553701311246246180705517864513298311200560088779629147049587951157767440185117207035293171799577918069954886237735075826535617144922794652974775636961011885637074939210507675688226487110919252387155041898357266058487161850051090918535255204657651104752663843159036079046831173324788427575371609331860972296271774832353446550199649970267204173814208160825044827931840192530278753481334182192711532916272178908708829264774565798985682996408153308400325448283220460875743463777939336793782200768404646650609136170614965261573109298493451998844986319744260117458369261334970909547048773224284558959363238091761632960262735057779478200529145805807105928226114014880030840733466859705678414242991142681976328185071624896777973950493916050162245921907961544638113600238199070520333541658238459123024814203568219754363500828479768073462032518778551208739852387069898717294011909044476656427286548740387218789157634327434941218812537278845803213218213953595546473321342894391105474655525101625314416494174044135052405135890699465952116966540307335644836708514581556905414659763627682912079724288150418607150426591474560871467401214445824757377643325601983547555652686996376664833225911137371461434668446999000291242584260067337118395967146468110213399297387120422422073852198628194126962049004237252840513492666498437309383673244972459922805342131264437865039390937534443572546346255573015179179159898443627420433674677292827190393005037711698494630973827921508702816461688905121733835031637320606035697034525913084586744841142550011017102031550676654369762416529989788879246236741609653590477936074305548992591653316600104354586305818655564306081675343147300520207979988372676545315679916348540296791046579562734555130636167585424652105778398253522867498212544501026187749484753858368111009246350049540119308771323702805276831880242117648680792800634909474210149874672188086312523754758276731296768839736726900187348408141047024422080835222694183115353614396500852614353672053811926691688348196605473300589399274434591103061458240524182967666324321849611244991996999624733112202255337316873824197122748078072375085731870318642629092328892284919994356792971356843414463011674083555990416189408811113174736363145844917948144146964482199053354715363797240474662805286398750940846834550197858695048064135600301890780416797922424470218027001466275316713497371971531398774225867406427214876189012382239797486777424138551214923132511643036033136077653324152672344569076168529849711150967043574918618840285237857898230250967571393827922292184992866308771554672259130250585705299757628350734676612684069990125880174599824871247154207972947386953176988754074341246076977789223350489405569883206720007194555035432812901597553813594251489907790549582633017643287125606492620717587148653607339811245127376510982748418109411580100518010044952744766421014334177217764233864526010713092417163950705429102774215053081794571506137679322867634755698332555436789422903376725238491626291994617240366005873059625427826180144803626692542288130705294412757707859137938625238511447881222780904265500309997137777789398533225573710643164593409365139798133749736769080844701520442422503234921607144750202629595993788836114371656419104255314166078594154520583096725621664930891704595339123550394662884645582946631369994354574847630288452208756353855840978256798508295136112469150624770583773359738445926730515449723762322589129874475967130670394621345012584489867893191204706317046019671692049600017210905195717937303771082105629134884457164838765063921250502403283153823271322155928384116619749696203515037801216656158809517154741587401720034163850275431495405892792125644664906624982373961614044819209104176981223733833092670863953742969905910900192829279175449731837799204963998449239232708965504957185550634325973897948643234051644975986360601227063823655979422877605948806663772694865846392116762109991084163210085548020879991154409514933955103566300032862582164322393797086847026710209025958255626251668978737993460532426863393293035890240292532921818463652911041831346467772825688424889377490267974494509147714027210865951924533787032623399428102244608428574853135939758149580491014379164675556043047388599519399853979931122367786306526229673234591856253684021995236451043081438468704664573734360618311074120311219650732899605137713174773334983036069538879378719618139316579825920053914811287332055183521925956940655344859554117771789036265840774925812964831387175275439225545597090904545099078889271197261583434649543225100418176258926053233824749558344678571836180179267750606085183809394352324338312850996270632406861377798323830272890312862629148254440521743770685998220597099894836899611887349624888323273075522894874451301938383846941183531736730181270599806426255439520833424862003810312786654891965335929316679402716823377311857874979806900882112787317188361398723115781555727522390929460059074716649429073271156969721560547803038014500002897020532035603029421679795170667653148310514414325696920766107082382110031834954873739783578106562139889582096749420211363215337599632536791202734938405645449959253370502357548656381200768391572575106430995911653286599415066866283630509432183721188805375342349598561037877162721882571923163806515304116357216641465866269315939336164355951839266381106255360121042050582383455358079265008274193284847851084413634827013416753718149147438235941928490254111996069164983446191530781601226868666089521702631283897511729473985490019743256972288603231803245057733815090128839410673194111660932150932132983228269156198403257534779422284989430051905934813067876893439993175890216510657353605194503755109032718106582205754889517315069264294464736351448982699962259587967467789067190824567193213037434581621169160566187477158837251529206118529366309870795829790247542902522631399455416019007379604528011427158429872936205924233380703039921878136527606082495151311438224717105397724600266102821388370030328321035554147963911908095450799760461067158994190222603449597502583777816814319719998902546578903940188525088843857515989709091029503646525785434497484740941671381376053375433900092005254203690756461572814948435404214478511168504063835322140744709655571191320139199090140492007065372777201685113717098721543492618523795595420378406195887854553389461716898007594286808979514187541203454210539699626192455392266951794490390178219534811547504100746283739422317617080902528560640955177068580056627480260628577172234358973507065146517619173501657269030049318725598166261184935354180141566360899850482755532027407995525139560210832434902924677270698766820043398508777859427957409745766510965679792549237616514550271194246253037221978638083544202248829802753590416882801442125147272915911485277423482680217905029772725507453504934710209616108195526068508126428674160996057825444476260500246668231287712591991424424405444974717326245321538687665901454217754277104954981920700762189578446128118157500388651569921649560932125440797739760508255756642273945619165917737710465651700083562614666025073138288387845824358969929628079263857089831390332116340007252431733537486938088891375335752120817154700857897364544734972180619416173308337830024726524694984899830983728217221399280600034116343002303511947531624201453810655186721218161081349385204521251069949350446815517290601257459143758326239414417685278168715476315243850532077565482482055229039079549455316431573735983047329079604214304518014258345283880307773628524925884655813892437671826951402315152321982903394403339651859652355187829771681693656731560160564572320764029847262665857906993053881763746251505979554123726515564699017129776678791107929305897513129625999313904138842461535152278518609910054537368237781731670398322102478114209401083018679942239698871064989848441442148280128878336555057897992812248128513188563325364737089596070344995125096768379375378348468670680134118311489610268395018562746515145741594817264382343840529653060643258392085491209225512780441275335339181569190144086848053378892750674229827350541777958981273680671060688009502509398440447643682752471518748614773642060371834819542225100413946235739237024718659287387850962175793146011462720632125680426486008512518093215427198061067522027972541950446178734190417094771334135350423969483535329229477677169804841754782412478541289863220494393952050345583732646048250376910041275378111055874807441841279890140932441513418700116776046221012706191266603991298641773423014741683115912310562817374735385636092594098925037532170241159679436456904923741692544708527968626257560192083337734125548517641103518835226189518745944601334714771668336512495674333911682797566840502253987819238681741167371172941438429372033031587515928729494947815003151966851762325737972804382507860181796166139856786123891965543306383988982801477546298130239788878436418998959221538787802883740445220596898261580579091529029478998891495075882624196109850096900395949252173475379496888741611992956724271027320982758272992710103897126175546989358182847328834115396781453055872962546273013461570806147043106840232005550847576665095125067480684423816338512271612944574416777452300463257296270826509449580223842492136044057138636660292926956389949627888578778538296009855700601122361836281975390503215449848311685177086358220752546504695769140608845124630245933209671298510954181665730678831956576202358326116985406114144182181471330031251778237012655970341911000031088918895619442092648213198342395806916299119322020416258329057111101157468137697825079422191581093468101146791408224591062634694926110545657572315758583776735942362368454442209671539871609360052249725169671872097939197286176942519340075444095186299679493517622706717076333103022852286700950152253084900956503500919427948295997468563292313299596575087690890498181142920886580936058062716455034268810022544536902010779091281425534669248702712374373495068120486694776168305779463323290011786772915368062905494659396358055006726366513924327767711281740567202071276355963337043759092797949896563121012797600876876782915868481273490710544236850025851685670730862150685122277944611466840331485506526793568623462016122584668077208792927413913250611443252476446313102594216757259570483615714603877084923714001019927500478638931142160115918421524022662477807927558959897388473407040122119576345053026519213043195807494741590829388053462317911724384853008178990667242598497375115319180461665981635968638182728463684279355436281872730654797440252683556494120569455536325724051503662751418973543143618435934779578259177385501136727009855815612442472096416301603925900938503016809342896571785040105396186639725339398398526556326816510858497848219047678147146758358742401627366908042288735888180989266405043583147128562082028689992183027822500257008813239004679248709822511353192751657875521139043486455107623507641818656475425587828763693832941036072593466097583553345549445855774625684866162260945570162278954410692081092952577592904935793215486872803988127697176345288130467358977139596377113379412104730332242189961858712424718271412526670559164157287222771802131362022735225400649324658353302053638964366313807838530907061112299792595452474016568314664232281597138662967385192277380588097587280441053789583797786529386800150778898866854236510453107926951151775364447804238286356265488350927458702151374721594794264364998401092153003259762772987398161154515785321409726061356917126480592205437614752484704893019296530088392826707610931172195948556214395528129725308045160802522562319207140761533525482395030378512831531719323354073555963662942311805847452002286672719131251211357191516030174124423626302117423155477928808684471400081178506045804722872517047200532549702995552918933441588363036848560476391852654673974332254614994157294492006984140922237192668461552757708723225016012084082318036074660508416524815592356909628010685899591928008918314776390756442659773886961886619744691561508231647657203733725690358293749458455337987169583013323863510959160176036904950033084549745849463315411260130549105785196354675278672791041663393302332456952664243899396501899024545713283475133049494275749379964967589419815723786482546986839640265298627747567984445895174144958089539924597876528824087886525438769582011109352257046435446721282677328149191836507788127551177186402568566658402582789007970880419623244778915719441035733244048025609709419081747559792697286222572752630332728736159523396713397809626699669423151530792059552296396860266447737471471479284848901098481050188533057546346144041901996254844580105494188619331735453188782017299270396782497201520016635345237787886111367413077726394634298133634726524164096521225413250647673730571329289455242864764168260812639449930141071926888337376953685477337763566749232114143538210898320884423871172333190748087882224406197098388006165656229705049951086231415992473476386347617757894666219645521658308589300594237357607229327148735145609299806536705621886273403548789991360338053794173600918081753368920318053750633258794600427877550120828723868677404613564074852657788653778906266136767254004300996211680477899825382262976190269364953969000761673421382635350650406291581394851589993271997325972288000955715901518641542170359107235135181227732874747237204160534147611362440064233594864569291922689614015327694377509111681073919741548341343225685787957759403693096087355433246063040570506821225176493355936651544358653167537105606898582471602086897493707780673434457279264308519783078005235267409943028637649229764477312835223814257246041319398078032453634805060668417455806014418071094425485165908984709848729396256669761156371679315871933350620249472959996004651464446715065118372654618603016085487666722231133290990982870143627825622241254529035349167352588608295633308220074726730662169092682994498754606857672349102159127239773665589101713431080385997722256911286830366667924739010749676280860789609617674185519656408928785493532451526920453368740233964177651543547572763551480886045713389428320866768608878094546374116016164957442928165907189559929846388699368065865060266451240329127196848893143109353100088716719280879665374805133475196258398573373856462105568067671115632625121072506515993540066607205390566558538665891659600699992263298297271906403060111437183812415977591900167634279185838657643040475139817910962386528462034911696360237632773919830024133448182905605986206516290831718633302934890876409631950908716072256113812193925154466122263942019607963863948898873242869818515542289765825070970110152516859897601361246476457069181735938449851228484453132463744122807927455251406012634841660940871493737838179307587950229543376938836878608592940026238111958707011145166450274526066545279089191177949228333844934876270651202335358790389556410518249247201659200419675093920024734496229689551971124646053271228238236370598532683471362986576757378285146107033978942615379393829322815248272660332271314433151509772296782440217319426845769466561783249454135737554990573747341212258098703591854283805089781506130431418765775394129350164689355524983752100185375218412654541944086370412384693289729901034672872822719177307291096486122640991857304037342749766556227044136562087760578580510751776403542742283970454960968106636850102100250228010105276959552366200064465959260076951612312406630705061137293013895836891730096000589212652222278080815631285609140673151752778786430835581692775521320772302256089004147706892971742069219710856698704917121681262781458063404367537511820386717316137453864721120228693334399149310050864798094166432007379258046400515993100317360310011712109094261038671143701645218978637996703208421854245384532810610260274168016656258002143255002969579615855139513825329291176879698164548140481367598167328579067352932185461533627497098573838334938461872262859520968178938316546705640811369377856010449968340795403696020131839103979524314255634797966712651130993705096317363270473042267976933137365915803120838531684195573797367825033247443309960279758344469808929009964538558048347619594302368541136959418057920576815621573943720812200938814550147295588297401815842586763802493311688838447885045071584796135226869172577249671250294554028243182997218542015746524655058720597921875201214081868455767229965234449559725817315555084034644753140002158662909289602542799330995889653504113832144450844885505160816971890668424399184246497714546180175171358492751265362591938973825575037126284501761898327268094001280080292897307045533924072096825443401991934168218335354421411224838837195999172908792069442139779471259951723657790103506058411050526727978132398632320528946261285376833891113141497944791028318614411203121456799875814973148859409654970994723621650843420346763737769060539580194704072917525747965812352746782492609693776504920570482593316070034341668898417180226030316180241115958879157310107327637663605153721584748161974162358822788920709146689480806379481376862743499533947168096139576594845163739813606117538871033771244175569106717347259200100678468593720272531430485973668823698443334623791724933890621762777400479220525908016954511075249573179572320639014282616188027975502922021486080075793590497139323769776442152402859109629877457351546717975134163032320570288750753659486448173187118732570705165517185864149428436857918946908770596702172177723120960194961366251198903752570730615816556908672177000534772903511203117757936490851962117889838242667369261694723956328966617432399086469793780286286844435368549227774174073141095707891864803448654159157652827970883411237890649478851279009749980186815724585132951949269065891276194536527484522612550901784700264728775417043382396399142169007038179730543062353660911526951243400806730740007899026476501225198414142879572334406965979032044817788713396575094006565313821239250173418265548502490879132065643671647211718668256186465285962749509505155629350270642857173912269108466207061966820756955962713697397467584373211739715030602862235327788569655458871571393545377165994148235271160989975073226838995876463360069420647881402758066856722751075804057960958910589725285616000878078019585964413337250532304144967684222132029961272782398155722704455836603811556982497979072210394660055813728363012078310235421378749889985483262719925972172924554669764025329936164525888802848602540630777041652356271193102310467561375652874643461577240958416282085137564304716770571062492089910641632802958558029656175440773335247340128648289206678291602397096785740089552922458840626788411774160658751291119300291326473564130981362257601297230468166133920363734577158403032849661837863216551587438610217036335732999396388221602895575477334691003542502826379254676436520796474659290890542923414902736554665268916933194966264035273876823776151768610850020132612256256403191878836245681368531202335665295493599102292237144334726294302806268167993370639264539866395730786887109959115990234072918948041325172433617572932018487036763913160940368301006414525265772241138773799963494255233441226535560474769744408451075606355217927206359713145143785736054714200955806188800622953236119898925842455082226743898294787413183686582194558244705295075436696902346895261950758935856329241692204463376523745266388638933954043741047597675981671499579542720300629859622113045685307183268693563461079743462174577023527342228253417806272446903590768664578138682473486399099814690628237355561044322847873299812249754903317884908313565258729929436392059356524599057088102223520866787840848598902746550493657446253055097103075923986216930846591009280442227225042764778316337234538203640728327208499153006452183215400857631115976327712292386983610830151569560529855881639199457964625256747286929844271346255072406596996701549398921801328407421358188038805699274141732738636206081006113425104574286391063470592288409033051292902155882874099427299633651810541467200518042553170757549902096388719141492990373296127423165677263982553758666840750720949996319800108402311420091971184289095784051676615324694929799132330632102350610721106112362752349385436497607024218039648567909514278185476605976189254544099848171970286663847118851496196914689332390339736062410188152239338356933063507635820836743610521328601232067388471246033444325718519727337990289113884777243888252312304639771778641986263923342674236060722414469789615870739831295987104479311448580066885522285365304859032843193903041778172628238445683466363042020813108146584639867116558637201158871646986552749338045240287552817310896737379544939502592411959329583655224319749477696632506921509989703312491713333726707700478781458218154245125185641915380445045945573344500411039764443488228064104214762561090023351046544323771474581157192372880312693897873400983773149001672340834856844939561403249648802518156482253669855528018739101731178944065346191889562048642969758604051652267227132883970546211444748746177239454581389029393099373549519579737839072003842420059238823701288368860886249420601225974928467422876132816884830912093018440158908471052416247825347580089823805088061821318473072080636476482273214229694498309083259128531108318850233689811368498926928594441121697050311911356938923037732927505381741865272403304436389881481063469987394716120063774087369995112959926454681921738464319739191122724807937150250400230524530187711416744247253080321111170777692878620467870689956268462534964688026968898189339395188913982350703477287730021963113268645760424565003300924298041919897730220968181718154363892754794977773710807423127569981007327895881611204059304947146727256502603580457429065207551641998613292431887868544080208633706947099301469367452561559660335493539334151710142588636514893661405216856749687867293207895237225991076767033411390563872006434998874072826310740040400883538290613680149075260819875822557203757727700768736130220467265282965404067934889485301406666765256768142246082343452842080266676097348718998446449950950831053071063975161973385011650896316156672806894568904721689729457770550164793149961565442107871267028823461113690800172312786191654664604745381832630069941646098995750528324424082568072328176334959174116884000541901037004221618316627113095667418085892326095219485560964611514591505641924893405951041767592137145722181738941749192099888451203594254548599476911308080132159566904822261670698377463727484800391526193989641762369636963826791360592491410591144030374790384850804896576476555474669050917168412595582609636407127802040841917338178340286283433479536018382434110108079146310774179200916515144505435474692558569846758135700565987838172987040359533951051738985979486897590609911826059946886956839452038788432696579251059221661744631054215657086093214140028030996705813158853599714672732304908220950621115385571539703345447243296167889988291328400608482409005285720905112874759141953334625144660948076779687376644390689990863228495465320658796323159697435402979233459628990935167267351522023302514985288348965428553769087612676748868323543523929287188773908547836364924370862178822217954321098370194431317398899808790699179468718351351498179965392159800279338374104541350424746552752614521238473329870182173583229870634383229796738494511941023443308731797917811570222458141881253983043786574784180808798781186151103796724091318355297841075890540060158492595325107851237232336384594498348142972435271382557275932254690744286635425336679731565055534219295310465109081709642091642275137073447293440124420599319330096845739593685684966969492847075275600158939374654248935408893899269363438003428350101093652137144553810885923165000725029627707243481924368015606554828337916967543562157870597629204217515464326529932826311338011248853382541284214618818295055112267922305423706009567377868868559536519706530482849340917975138504795686743157018651210234178852121498517372720015215630897323974427683445808672932051323482581889237032046931283986946456052783845903629922324252804825977211937279871381047130715399545238614335513999043948951878784996621306170621697839594143184601761260021127560689755656348920431143252397469539198732221437398722487070034574822141243029658859150786719173670382158553951271572009111117674164550734763057637120170175136448893154253511443118848528977412863233322805962419856161453223331267586689902169504919604828234203560433181937564669216766109204581641618639085303941578078041494813786323598931889150506917535466259911717225989326930218359854813478346393776530353455852682326772289933314562435252283657431155023180355880273044588516214031781316513360412739842142828019389770499487158451759325347721981781881122943657638557110819393943131032981252663615821865813854012524621741343092559087147551583134077840259009406892330759163887359665944154450175912561629473323989070955053957439395521026535227102670807723839116454448740094797904276640002692551016532869242639335251008494690745555935439286977701397503794428507278221078287300634111931611924501933080784940622769918839999203279483165720893264367156719312146854001670501373410014391656437323081038847460740875588996296530440634087122608938466248609519920430144598294491865424368312408268604632397795059275394467414819421314946150286246674308107161458967833677385861738241412652269443274718648339424364288888541550098269967889560480004212601921949487822018491480463554651982973056379080300177391667561715821070526585330115137051489832847557114867505311333283872724052722691126235602423844423465992816185392612095964373110062410687679579221151615800727681029981725179649174831068359675357683946209064924456831640739788873874778376197628125967179231431690657504094375706318447895069734399368554063491698066121891110744280236414762979627702874712494238179286077945590850917283676724230614420921817990287021230733579406558457589387881653256716091541942487943016789485594460822381484630940655846189356038765585560915553667004882636818966504170781591361972381639133722780027033764080207762232828643433580056462872826652273683019516784263709041205632531227846592996210914661307049443326728629530805930782573364703925665397145043849580215678194467869003720621551811650329292296123697418571733308828451180582174150990605448366866490864675490732284260596574226922019835777309672848142787808845214077558450867779320749965641696933932383206957296960393828290165988716565489111240224503199377847575593841930184789322487176924445239510862433279161033825440415150494763625956035123685768102722360000174542314489489713707223539445205704540841662877857230135536339315878504349457046682137608954387814952640829026435945054050793548624737753785533605072279261371661265146983495526233252641638422265182536595408034849616914911370910505007115385741251079086167199013203528840630077827871139658259825281780368049580640189552868024888641334144194342447133757545946959848363734892690285546929454714177178098565764057821087182852071238161363253099272170755955066434672222915083703790618043956074570460256810193243571611508945104484527689644668450384770034488640826063419795431522139193458912989094421870041520130875548006140018128760849450363099627583759211974593102924415782514712820000348199021136348074104615521220879049206168769900248786133781204716323214031722058516985206946430507636910557034905210901258872942217152548802639456441589662644230844261760309127819533525183205531326997976835413828266361967938927629793638567721898589194650521350549636662295044149199845651978922218234595465134135585117203440993769726621948267925950625608191430188460576778403671244636824873498013975106117853521283626251373946881971729142213044795786704783234523624460339555979769012300204869617732198128451432457863430679214817440197796252374990556366921626871272086553601200095536224203838596281283251842782423033217011437917558281994682689033237457247639715823473890822455262130568410613191030911301008976759600960922134509002680325050477622287157442841968200804745781655724952832960716277731248494941587025323593542003525865986984567173216393086521151921607588461514533206803942333681453157380480090421121472779663081527304353618481325307588072008739830194749372359376467178311780180228633162775040880391122793064670787214483017215332331023129074451197781336143803302557116785337126346425902353102867836436807312624274627453833389425382373474548813491523169182832912642467082124670917521878366602797726174427851016180467249564382377090944614537690735239101554740153434931036449648698152747723944307981802167904229762097499594043989053800831299195364626017108643944759777080241334541897294461404940730899504201704373844949225521261243291549511017181191533592679038867984536710870094732998056872629048704778130654253977357216066692315911575768335222099569602774751945625375916390360528776028763867229661080296876553176694817099884491475914062281473981022862413891966977701555811016732238201161699269389050873560866517649282868833216446150594893669308655952406886675020620710276957415100477011551042600471984456917850537377787719574370112584771936631084228170299668714164092138098036884472947746654271548102264478850572381134150251206639366259469137814120449648454505681105296989238080630946041245512353941833380656924468932342329334372886918735643137066463194043335567284102087826323048409164478437040548713516907063466745727948293358608317599639111838537673242774591425062752862096919065198462763142610684218068974414907597022053416093610712062398996070302434864252569381470531798447791326512401537883301942410151972683548239298833858392466741011289185464704427521053650330332572865738310956840239271702347638831459758062141873079791647568711512113660840355726582636359425739881309442849198512829224853815105792646771917501098130126242350337880277588476314932814874237675235553336703518338404106187055028679517723243255458483589311634188863994576330017815064243741328969050994135815644091614151254613735288961879691855591193382204928219689086625845341373776567770641189390087554840931232503238158601227507429908138813234685059920053529501912177662574617030851020111076562652891769569792910936710795443225849290172786876085461257330623117995886543266206063935173225353115412370249842102297161826130215463734866737673116019924678894636277220089291350465994387875948245511399390992838596382368440489415286101266749858429215962470021047460799194990283840413622747539686999084222007349629801240478233729879212817658815151581617417236747134009192032818373406280905615622188587597348192178427020867865261869013085464510752538618873301555870555231515752864184740347899732910009751579516837844228518737112755109998772204974292013248861780601602226044534579100748103489043566553174454181462955102463444167432822254575758246953114043979694435561803484802232437674843572122643811341836662300551825471423294936220853633151452374843837303243826886605305609264266355670029055506965625306616000245774006842180531183753288105112499112412603039111560012874417110188705161900556519532408650566284023952672112306766580704655463975747064141963934249442816904019090592187934249152117851152651841496775870072187041446477368770591333558542504284053893706686965436557838929588646188712539755938015951076381867589719112327646792999477275515404588370704483732452921290985289572977169997696255567689995721631047931187515917567501211416846323198986516192895210854557825083026432142428865950105593836411009909431292323003277474450500240861420081909840147273130160061272443304971788831124480222616507417080385385148276775466860243379780539343263425962058187652959806342059227059152640091656407857185164490636519314414931756977460324724054733072591704253694110737678362706178296725750309516655398224689828378013101043733005120531763036528393001414271141759134674935030079195326430798436309501631422150901315184259374151347482792128780943038578861743841375034949929442391143252868626497285389765894090355144871513186009809507502519185326290492875889757196978325156273172140908825859582790232488434912784746409417241125348502872942748707677263085791026210746444075967707822703244643545023233328452798704175555066794913174311861561188370545447891801282576187262947101352049258528678076702787242850334429374953691555756970079034414610623569590619769255452832020584729600846934002264020035182455729718612308787101391793403579313722601665173798204611970010980023779204673455662642432272271721389860855805652851113877220054477093697239471121026505862302547135610421385162966418181931481134255781146143601270698247255019427496675228946557469771468314147096650601180303333537161583794306663087373548579515296760213704130010343988680328729829643873523088064289077849134466742575610770572869982939774398164355422595967720856779156073074385896468589331422065124032667500538954435673834213574220250897599947324293746527955728654571226605368422148324254154151171337970512255056487224467762634782569173335358992311385589010570383220847949114852657610341659593861566143347016999220452438261286874430801477540332409739411462506624744045209611659938716097030322946648889900041933228031584034831326586465961183977428357755347509288189988850551784079341543122503164271817647791336963965602878066064545673583271799583598478054579081169884154710369470643117960026712802469107505868745125042611580008947907586670016161761480555814805170690649358004134665416613703918974402138343441230725129857554793947580167695905595850746352836054609391908334852812027212541302449099400822197562560341777057047750721435181229949993264491374042602849982945579092911801279082200139671614453003474444513271493795205126005962953780505288754070674127270592377319235076529545094705523350220757795615939932360050373030891407845577176875555547654779583273512868780392318474441602702776849057648943430546015659619024047159985130768790792251852769469177022441800357358856555559896942826540546547331552039248048225212752715898759064729471849004500242138290340765378270923525525170321052380101653829835602390429912483991596012530148236404683669701430481440404980884180926945557075951294666446013771907621385866973849711232684319307055974440017409770651036283917345838148480839171421096370573141039880760120732510140310156863802659881707965509092771145654052029287582366218176992766200817604327528163263320914641456982136031265798398026086974303772369894869415154747799669080592479344573325055479794107232228692474355485635987157019420548431451664867574179197126493314555080876013206138157180199337659904142338125755305364828568114899729353061166386188083959280206861872645005946610940517115077041852521444489824203211188096545481504622833343458739904865401288413432203383857182602749638771756352387575432429081168303394376925721438693254319022855409113800141295683072173432307807289990033771630359552885937133229990101198940401745959439031608931681982750085001811332649772191722074185838660041011368089567954164358799706389040491595018827217656272051238887335953202293869949192309786152222042791064140597314228099786448174607242516651356314217018919910225024273098697972325001617445047744217533480799548617114245105773385966244040541895301001674315099736266711510108742525055431940632334206850800047993423403350903283372094910961870101901309838076312553634774847076451946243987967199935303656838339558774685161495646476684924295809174718207230211850364224772656967745588585689426395153977804795928030610461404434940004224918375320026453867583213053912253400400678242180089944827388266651221152886777611812728290630480628370965458103451468920940299672389153031521892158520314825133554625533565831426989086130572227495141975866812602364425441374258641377243163488395352025077136092703707405698714260390845325306636440022881471667716653097347496315294346410690778928168682148636253682006387208297060460790159138232280902061728108112746752548281882892105786326817363657512156768259573167313487509037340727104647776907368177296929070664648027431622041035539253681695082924293874023360429581212610680271035398519265480365057727113132386622141465968192811041481338701393456806136628523300008116484779054045699318015250217112018538823706101553441821272184243732788895519487949828559220454947561988038095141398448447792867103508912930754151182847608330910284153948722773521601101852775009503478279195613158842993068127447596587300800010314517717315790479125004179015967340924092767788504605686528932553722883483203085303064202115738494216506050270814033704259775585943581468243344095271854041097736813557098438802799165770297561833697344537005371375641934838791935674460961369729595777721650480080885605629466868073941563186255097176521210934351287377469498227529062198209820664833282424175275061606065804080900642663880572734345241167880598713895170549579152122201317643739223793286867698318475699892648617002934842295802519538579827385514717209067352351323262079080049300429245614924047973497064770303615624411974569963997953995380088015104293595097908479906080189751961285395961750370601417225708575501590559865090479867294717801728374197396830006399616537449905507014319635994296850698937021680134110917217693605930188788783105160451027008541943597604281407370531939925645944475829604199579096481769168778205009404259795563768544559652204487161034400593994861680734029606842729872979175571889772267435777560914776687286788546830884187310469981254450956972682878113253228019145186966729130932626850847392673087869582560418635703043347165565587276111524154045561863500309021905534294690775859651153339636561405575942591344756185135332729890204157656415821142258561419294444974424647944022106106857004125298960484030944118767552724995156354653497290942312840944214741527614416401068049088567853369596748032394514417935485653008942137528903180140239899360424823024773730977008227604806933180913671186708660824099370130912715811499964278224617503681382510371931790430963900184520963558710559677801919100752684417677067852852865651327620185709341603311155435532838511969827491907081355952899467397937324415493146356514197281901455168724724993888530969693411060005865474076732003592333914354835059668586486495031141716159412003289896495907457802396958074271526319424191407784989974433655477068285008451704821934215831103840702427329597914525014551559827987271357721820358524324239175003850956030580195067018816933185131366271720749069821356275041723029568577901448093611379436858412325357419860555770703620918692054848116952980634568508603391567085139461490432955380159233226445915322118466340983016314310695214763883802198781460348379343139959925474132497549354072607617304086644373975967336115635088445959729639072277828877621225114724737512689877709643214490716524425763246994838766801704497116436474090226874755451091943269815174093180432484713268142645686470930182929465389989352556838247011577725576905878164581873991456520388477491892218271334786227612520850090745672736926526008286266509612001330740828334456988676359550416089427167815890231920282958511083948031725935688207896062936401752378659415734046647506552361961066371946713619856937990888359526423146140131824507113834448402934505895381363341917559740212937711170277560888929119810366872387781098808546520451672485330894741926348926317191015273340712409298608283722441010718900458211215066356690622153758542738627168470744048395987261686797817068245828435758381051721909744663448659401008239374953712952551803589755618667486804842502391686330385505856152333489236184718898604494051510335798401855710953716441341583422819745110554183443494562075327054596855709310934140640356445464872959029278794159946609257568607860379020626823503509952922394302984921598064591229359152517142825609792355382683171797725200188386238210254108486349848469358233292547272485578322110676102039661388380949584937582266878787249939340485905375335881942922422164122372563518514008828053137018004800178223841512130486504715330362835492058696396665726052628599595787131003855908585028559432114400154969612916811261451917489297002469760260540902070841876008577352927312909892305865930800899313754279419354842050088140796764944838323682521535502372909382567223977890322867101759196483772271878482470130759758188344938288064704077424963059574461811847159896319464055237646070403718606368392070733463338604913701148321177556844234000368170369251916240469241693116848056278797260719421960446175047441277579253202222085595207818398671714540563533164822069978771222721576378724368364225590087718917974088280326317231202063561632291804529935311122046748128274709455944402852245720691511731442341673158918764848894112571822645055948287272588451186308458851524357812569203153602174873974928832135638776676617313854044902138610743963441312513791572054163990056113397043723430166729992961324002343750193514301039662913516843653263984363519062467096001676732802407157053109470181186741046593534392800797145435778897753720364849462820135554734127392553391948188793481882167943779077402349866132348174034828685804729401068119820660900147670620124304113520779202019738392691337710651802198829740825878183292054118518375194661043643173103858673329021651968859718690542721643839397649259978895620740080416521481670576955813335631181704924500899352067919411826218383650710837499302257688092868135359738118861516817736107087105747707233196242152485496965950928283848619786667811498438524590830825832898801514493192898025542953812016844136083727708711887000302210386873280942835426669427330771322990381711084902644338924485041999731856283412536630758301763919157349714243205589089804742384150825327605152816583682071722118342162124360526608263430877383192948027262613525060223327791323928519906413104576419685013910095240863598179366183671597994942010633416123544459927962684114126622754840653661099491232892132021184107862440827089815711082606116909063572915401718360365250516025742535957870448072393362619246136510986601236996510773737561024428257797256823268431311155787823668353096428519212992651160341771500618167076286599868428977121036406806116761788385863494688171649950185677170037758479202071774263636302851199416318379597432355232390285385252044914565399154570938753246920233712740325148114015595771161247026775812558076775563002215812401549707961963035027676669187180422892469201934095994879809969324433978701696017538723852117974526445090281148282023349396206874233905641693761611679137156817869905654848832549802200943279298527884184035161121982699065211003953286991358316070842049707328016838335741772279000946985726558741182672356887545550760598106515622717179452869863819074005746782857624616330538473263182796755605315440535451976366488173158479289305875834750356663375836509302648858901087374485047620201480292344025358083301061123079163163457823277388288850590367815297481243500453157617442237026941759768764926910918447287554279765597785151692849110963513279465619621565727312259329018135707118900033612862833415877894671025678503519436658887282649634299166718320773700584117537897026923169840529704867147069059852430288191349270365985916506857527019302345928717882356491911070279462764846467429204981217353551692999617641377840228912168809846046197892342513541640097920919702612631333524755459884975990480945341711311834921721023881890716718288057423710515473686745804147729475323906112579478343359245407360075146266671210752705828057287328920194568153324578199151590410266875317689010108263568605997857420384183432093998469503099002417828451404655761176331982254974009939959291139744665212165543180170139444473007313876583155021188973428955408071578493143414149815284809053257123763940505687266546405122499405145569277562815112342445752774783160339777239050379506733386978470836059303406388270253243437244519889357343626435919360898491858724232610557859183256488465693973877469507737919076601154917083942417976722815702778335480154060639047419531282848805280021020605805753808580988757854528428607500864492892254890665374377984782259189754808385847608468781693609845165029759208585601237056672671529237375095495517781578935678624091784141185589120371342762170513980582556987953955405784124914415589353571572852366237121148389114273726897434563856383320167886734719523242701112002368321893554881111496137872973504196602700200351316028907315702231108073097376482611236156743650076911800924255987063232507363822793446517352497942184260840343481952551222186383905534904086009431481138347147292680174306295068404077868921073644433162366200596587995923948881239082754293596196105768839992136825086167370795825924982037048739149242437145311015660482399160238686239276312602189087843269644961984062821547098999064359266390804449152620994757524470185023932541766403746072473104991051744151192604653406769486331929447906054944173680107422028350647267012066838374258430225931726038280408747569346375395828906243964450015725085964879169338746535119422378119809697733302568611174935270610246584338217768431072374806380164776540521064094349963320727006630276193599268810175796511937150252122360989773377947239916615890266621619848950441064497036039645207136244228601774869537853483760569262807732450728390941735032186609835529040706546172045430922627352796718301120389984291936899660932033163277549703125888398195505865163533768826087242351920498943467449424784195633822024643013665687812777690614659863314310243142293725437082408295183371766150357478614004768137909962587542998229698952960004655472111800132119129558360881889787207131359246502572830135075191850514358285893661630694136108935008131739498458639207482270784293116083257305696806753232982259818759503420689221759156714911820969946908627756840642563490800339010985981087187159692373591847688237137003903565431576309634361268909454172817277834198959922716490695185725624013721758384654166600744150276146204766269427142166844983692653962104454233297157963497423974919206454427395599591893365060484524214091608304987120385701345388714664866462656055881626345377332428495609237150000985962532962209593838448465045876398860008300120037764447185641897950637540440988218169243001918427980005555686501125164576434865456463659152255559454726186488638811850267455638480265670921080974286445099237244890498484166615118925002947038856483624619665359476012379081501780798816987571077810430779020757602053421098853449355636331614660854539507900161023710066588716915258159966097139893140899169867117772202684981107344451740807716091244339632527413512603370446717540675739539995488336895143736725019330807771885507089859825692129912078123192218993813040717378956132690539936827208352356843088749578936545204989703176489429537424606147941100711323930778730284667928467671968878460760328707142477697394595336543101648205329591786307459629388820362271665658904552935561947934671008660113023794388157536182387861294512598219473596274192614226013071985653562633547869062461688649010417807008736646884264942091185914034169228804537174228131740625096680527815483177347102460807263855408146561547471763041618486387118181911656101656095515250074449322538243760137650868875982027132284937905508914054596301896988212201674596588866911614514643468567705126369532971535697047376852164677906118943349118507765712632214243614973623171759238438887385484569524712465400391957565786247380666192339594058587844282668329781630827669448353992784184781728909382434703374368399519380128919856927516136872987966061751566939598013022490834828392185966492744466369893474735815071569104928926873053499784694329469708106484746186149955651434019960105036980842333967667322019053774098444192391732030190085463246394678490656211836292925343235468511193156595809351476302719241053527264705804861020973056963660096309273632445611956637131777169109588541011428927302280934999355695922598746912799068080091093990300762705151863725443332183146093194252433546334701300452783471060960301895595764000991235417295234824066186802407586063825809813559383234842420500255219643289070183162393660657222258278117937968526681026210255367242810059768451945483376700743356273123259647242790295157815862564319493836007489763044452425554018470306523445637098750648873413056420791596922431847274816035838792877160859592259506706345842860715683400709825711339015778829318362086197116884354254915034185038875791331659563477070937414363858563784058338433636492983769544865849487675786022141236547880241072129196214305196524422505138052369861732577358568653992629205398633775712657142496172079825304212632007274781510667089641946234945437429201572774791540011341826285200044538944958150315880830281203228330625963790655332463921624893681016933041632266174940686774003220266995044338824305573929859440550653857231925250943339602528303330942031777875116694050163176872287238762117236680084816654546600558306789683023340889505748662433420051713512946418221376719274833764232737828992649254700335325359419645380518145020057116902751463204196340085895303668704922933134854097245330694656376557348856922500047515892838193883071667566341608574915917625132709899140364546920759246968780470141057256861546380821809195829380126013254530449588639822497217754054628266163106925339101246491968709372482871397514014565871935510061242311650615446700336397698724683677347961507623194730357313054927529899401919766452243961940967535906820324159391996148155972252475827207438758316190097863067459716939527896330782193724334386603354669932456999767088762369316981917272950918659427097809018317877110733992494493395796037981129993620834477524791093098833790748389346907493104710743197596934922294270650608381343778112854191437750615242673275420357501232663907121637539301312211357796186623972787401982819747260286556834811978548715508887271793015724669112664361207556968232425760367369177385327580208389195807058176820376189183649730757875270520698568705341502996819411235768914702831862866694768638964191949034836175856828726628680061728493146144768636591270337631402743391603001747568072085698610318341750367951368992477291089437906469895458277367139050816245402411257536732932192237791704271558417373643329746655687243380194303580484565635826933687930896812840043306316601059587980712939617516826385457254732007703332474457375769504215461084610781662085742529662011975313528601710106544342008770317766759281843897422988873803371842130284978489654886876648928332251566617465683463305745060632484557138383034006636051995901079551797096725232357958416603917672910803271921681018582039411271638967889842979218702124998333373238057763789030072318235333962594836821164441154896578163702058929720681394493296479473507875525526281659959886313615747776951911722653143175579078801481584572202903026360642008756187161794365103840517993251124595406628718240393544824736728372188017915357912673691157052721218619688404419291732767617926072393420268206269844174457486185704912966976174490113859552373997576391916870318545919534674308817373831328553583102816310987024682235628231678842880882949721907770876590953052733520430902262201134546772107335276206505693833574932412921916135814041597906942456576134231512009205488885978357308979346678003683317704823649741900186464418520563214436289553976178181644114133747598826879978182503850090705951756991623813692135778010618259596267291771370400447670009202784909224168318277718278683449207997676189177259295394579437803827755258625167357724457113777792587701842611916737656225619965466379239592845845478799852277913219463665210680779767865412388482603898792196888469921322862987075010927710522852305650292128874312923606525744647865209475215087884887914755581927471705516773653980434904561386917949721868770648346704657894889002339630418983236448964540432377829014610222746586707593711726984026486297052709799481887363889661991424597046042235500633667735854454959069185272567406611405047715848301259510049866007786975635370546341313676173139107473429376014745061933246756063422704672196638605051981131957981003437129912482036317486347534849333725926939071436214982546866423689806980917914422542825249029029729618304318530750651060913453340577320604654124996010805654210391547626969249224235218735676590373969746647047156160504433890333047606045236340852151265294658628957561231726937427652579089816666687299355110721682081689612663650450454362001485524808149453434454843867212671949635359467581294557561602234642033222950242046954297591864023404627841420337824411811286022870903803261154070061824354819543950116719697604568120055931262745585494075675137584380814615916612342624234157746280094649331221090226037916478182036560840850442805120492569026272875373538590778811666653286000796785291818062568134395991619638715551238154906531732504025223198684446577424787497208638135499054150552842607450990176272463899099055437708021833887343089995680279003567519710989493061224677564352207305701572824035022804970688130966612606791653847297963928477174827363796093511701082582687119275372505792654461100069601930071649610693556665947548759108789120005111165401250533633955015006381885462524087453221692404821339506736289490585967666427891075509452937078557820472850046669923737729956476892235129283498428526517772085236514118501340827197811254652011388360617928891213951969241833896487533601526463555434380537308945978048410198197997119302950929999272405747301031868554383700061543449631379209439793426565957991891525566148421941353385416721736666389921862231517942934640019674177708877537638600237232080499538153183550987332313700925182811357591237744663458190936950672448112837755002886323226543371303165916871460898627036118384907334784065219732339675788888774014333702900062802673746392262734150175638044191375796297535407183249043652852424777406468354437958531203811225261368950333014925274300224024422965360333547534347669721941980042919207014567761738446383702613531081245161674733736171786341555186568667258398690672922161420255190298256987803447750647274313389696629367767437202321542120439690283647883964607793214890937728454203165853140469893652757217379388462266803223726367101561863982150112298872132383629877177368399087552277526288042216021445779063405638236452708097722993409299481785381105719213492360125879636799450940883546603320830862933175159150090182873353925401002804372385546562740095444647788901336644389427234717361873739183500270883357528665062768914299602086069109723194296288733696181760244282227139454750151318405061261655812485177490582517798996662435836562523536602104414518011283033230775864211455858994162650733629838799284250643073919450327142222066962928132140887460826523328171717835728819140722477476434126311202605848466642569209806729037073891069828261763970778118256260829836030992959751678161626482531610954146005016072725029809977752949148677377892872791784050954182633759528089902259180541863004384830738057512112495710541043980030100185503717132330206206470023786820947166246431963222298351002210088693359678937530568031552107148201690380211427935909529528687058346394329359539821040185333506853420944730857599053845949835077435515572168852673384921444114623703025030964267699066434888264405960079892249214440186440843212160948819891275222520572627706059124489204113342729551554751683641163205547481931698774670902590012213854098196309533871453683892373750008520346178750507339496203071313344718255593402215345574809085283823008394353570284795607524264907586145966998512159117127644782285193258246378836263134002830845927719051564461554938682607516153304509212765491924402781680400763568882658637854155125903069784159303518626722977840264884082070632799398737530647543623792065713248826970496887142404327916232658426278639089119955296756314663538148735619895273184099970864667633393089169384177144975934111604697151975495580641936833810156533927246122792680625393277705339662487986400362377252678409986611820563009537012947641099265935188883490884662863075768038140133081285677500924874687640890158195924093019637006810658756252212670942256975154510141596882307404810434943947703180211563983165043840260260465932944819871323796858190843076000405622553422946373366773331894410380712447165304745662664362881471943126759483943409792728031904683878556431090714777885897263148002161402745955891300164027858142672169616816830563868022083347103922421891961370088237403371158606917441132862115478077772462174142597542470805826501671186177664760514763793081805560499747016254250571801130000114375261676698219162131592931766102856823586015343723242941922385182397562708485300694112468797522423420921100616622941777352390715721406976451891572323171711620313887259356817964226721368199998182968593380115412370672358647298988303703790888125890244150210356683520315135572259868725576260821815378862841265003843679878926086598051659497669906345764253800362662748983884424986593967050246268466685802301954778631472788695990046903996742844728659816338358531333944730778365535035095825550693296378664771285740297604337675713831383266402360841454284634902151310895312905649783032259574288946782252067444075242383805959424220831358670986545693457641983719170748695989595871843128757552986005545750349340891261754771736729292666950892844898653570683263668694941175148695212500345684653366084919733815405985520070194946820272844632566457196498230928220845064481784676735763550277703982033607396202021312295696058657827616349847018315569886899206874714016489208963485303980991407761858109501480756968707030698704401734428496840867104399753829566632763723304690170384025715401603059110076309712678600701569809881371126510335709839610074729186631521725452567295625955650566633908862699646607767808160510589665809857287636698375938252731383482513000405670638280212902768884294363295204003143066424986409556327723887246585460767915768241559419316348668082614317600303393271661759395167024749511812894777133026734229588613038053119083069925934533764028368765074024868210153561841331147176181484625648361632145374166624469591311786193913140455632213605826017677361680636237028383887119163827236230506502168538683223189241469600074283379718479990039414388072265518797115315838381097305799910240322350470585266477544655521825258568979946276005543912504196690698555134777411609107354085703946913881892546238343133212969796690753611319323269052786471413860190842472165419493044319242425330479027025893126382837509293752604716752651955216002487507957210850519261655563702496061418239611664877219683580383625548642368213774170331799989158372713970890901351284042721145109843946246161131137076110342811550982497257438513535762013253476605349174986442417791757585828746171889544084962617707760939357219113302052603020769664082781353577431386499632890364836798588454254354205640852093135912150416160477663802176696044602832633565436847364991509641880956586678488822514349340527044003727990774174378903576659007966476103799027850415235819471568747114266782020160172901237199724741657919420236088864732398088135818655299482505912714789109091926388979698421136742643452514517568153632223089678892639055261313354478154930506273705805246444986952578398138644024913712449860878537810822289379649599962321342252493129249372378677708264673483750633820842455801307674600068296029653007706304086653662546716928649153700848129470024775520636316842627959476661546979842710850823690517225083997735089437417119085398075416773743336649839181328118274448275556238982496055074374370393772361748541621758953662155503715781051222802884535556629139779069076682460302399871965908903889615087527231692999467813679807895768187331657180656151506699113602813076128752481553108529408055531188146625424219067788132434605554991791656377058597818392458448411612028142620061932425669650086740043164693568389914021704780254390285324994924686585109881390040140517859714624757491106676236931743957254892105352112378004828830320824808772432253409330978081098738548039546353565281715463451828112491472214684298451749386088352195281218343907615967867620463285507701496238514870032337020967998492216495116399160861068480904689543039937365611731728631047092988123068546196232018602301598029913269473505485524671353394308642999306132731427589948917617940548311404936002984805588940662526177483772992613321250355903071666529655360282408375412835781008083688159229823392521093321022433913973552299463170479508411168692244466252012299129860968741627257633837873405249360627629352221318666120793199141471126866477017825581691283305895747546375712514264259921549932295795403398817214729220044530904538813441826110803731227757482798010680051529466035996719505072840968814207627231262963659470022633569664048215616250541720051371872176253141897310911256816030648530053827599299638095660287175431629379770834847284538446501491304806017966668204835525556338723697150950211359486483364643255858159105256376430847858629387483918969774683338214878486606980118938748670537672247073573416491979444900550023240145482651380040913915325694009625507316460911640127799212760847995963212303875929858218990188084021476755783536766793882201931753033123186339918396251887992025554980018161295146392463804262047552297046705328971507825514329685090231704377928595016541671149221692674974907737448430200949449181971843086692945322156258044475335563724653370462754558259998539706774316586179272774797844862609657662448350400983820823360746456623929443063641090519749591328978908511727649643054839445279892459871571455240807607684749172888101699286898957878803783450943770709995042159642068870963311704072208392817950123576565025917894124959477424500949993195401537639383500270099535758688682605685626741016330695116833556063937903542670909107288731566432788806732005426673346630563606060088809728591646884878585797008385458870206652459090805740233977497458660257810843435707977846423488103231529603227320390392792346058769577668623574949155322400821199168358110091079399293291062943831315506105906445138414278117434315338532738507040757977750300940830453748275571944802255284790357965944802531690865065911048382221515854936859120005141546827123524488245662547685844216012122373816470942812070261725230243705222675255460471920450560651234318030780037976750374970702459344386371405407320233856937892869013733506013080938481460002426051006908345858149900081379959572791727528819628932869168231858457398877525521877754825492362038003611358448570524809315047262240002164867932201315042213802592569546879687565603607540908852394114844578869674467373965713505014466276297442268746583807937775408689491950046871738359741766421450767470553216976976759090381211832870633764681856772734245174468942914056515924773078774471199197698687821241267525870379622492677563072494144972806945827383165823587494876395951684674604470847146103455545871964267139986419892860867489874415645081668370477422055112166080602592071610600718446139784866687214022207285401608928326829195678034787098837373159048187759523717629049343633150081092841273972320698395871877753604217577301892010672765582959051262889214907391911095272818959526190311870136770680408386032673352928839687317772946433948482478059702562641489291862725451899545515131111488881112561338097452909712113664089857936662006046271772524758247649021330910283977649574544059158210594854736950898493531480428984346558820990236316373877951380359831997209883873602651568124398164602454570330688904254819447500185166013876911716297000945853547786108062405432862828266933439903986053923438579545000442090108075042375893666631735458876659608913225042858662408297939150085569408466709454865659980699200962034195422117955208761915830468841246991819741161014933931565965411757089712311950352223469108147414679510567475444102498659744793903877640627598379060924427749006112271868796103019295744873957030848941818011668373697826654550099374194588584314832860982922403143988615764094377704371599175898733401185051368115505722534740677986492399168387000227906298944070725927444765361819800561014096569493453540601594787551719351268458185653228101733247007710451939851881833358572036952775917401506553175294980925281489854730286510100976210684605690669945668561937640287660097411143139662347372977487398333673626207767981766561471338253047692343319573082523424107876928740144806634174288773137802904178570095969628579348281938499336734188799994239813454535322195936103284002967586758450680873463844533967823801500127868812766969885802040084967613520032315427850398327254510935679868661067341420364915998836929753962584686817357640843030805662936633309585779740113592008788193765783485407198607019813682954709107674180067835935435543523933960879836228881107980288282019196382420591150834207898539492804391863408680366334261154217302321152648307513673060698469403530897561903442100106823026406157916675285438286308506427678507757051918724931373191474684404668296696746526560964689946057906909691746787762648676634976304052306719087571808260164624239924557127741525075217764797033535611074595085932213388798657272214083565874258403569363436391113339315787744320367946401902789717407390360028135210684102092946754813935435307523195465933878221411595230987920227497113898429608579525928895748514982488545430888610821188845390688250854872346354702717200462953892726660841685234009923319783735620732229054870273913293556210714825256669195069520683915379431178735607427986844090921218821746532514337864818391176061464705924003809536340522050612502763442583158480597104524782494797699578194860553372749590256428262991514178892512592288982017959993939357891175043716319521799998181501983740893178235399073027815475576638629179681880350185914445132051299794157813076403787766729041977762343498291679551972708084892836837030142130834598032298308901044084806647646678366178624950273410892762230261826296281257576316912972913447525640866488993813433921853501993737771951557276133340598611275415379874081587210415004283343587729779052428557815495998679363809236937218158727460279954807413776671957014403718986195293588359656013170383627582163569038290628529113522816296417057623833960728998853796128984466701896656391950911894780602279751596000809185533272692086058523021885554612172571204645004703118316143888732764254671426126448196602541215135823148134569640865592704491502415891671888119461133835668707856440118900772406033535101641999050953096923942235211181403149471046817838062622925032667552433520757313267353526091009453119415609649189649057775850631327300817874503870376461608062074180055989819631582810607452106077195877400695609082763964136368809030446549122191370727224424419652882189788008817784573072724803636611820853651398681903500358715618336801169246759873443168075912306869953854983654629419372226029211491648003062143921708226963107688717285043208870433062759184158168658576784659814748550978302012705347186953625409814985242925212349531791864221569823981868596462020075620394752418919792437976716698302921010230862451305549559994981030115803894921469365930046072350059554595622211530329726432637519042857768529248601034260976760770340742335917584478328863865684894889413835636837775088455648546248585759813109079128892642822892907610495452703210131593867312598153030702368118004241575262935214216667368699040606180629223228476671235862805084665392625474961207793247223720071812612248717894931797934284639849732961671750281432289306522280917085774540091271901179542209941732077673089702126847747047522993177445953018333484642371641260994684420343657526698228017152414793715103227284083710853276708970643367344157260906901588906766533983113811774885950662248327393901188671611865365319698361992826945473478651748442430762799515037372320713386915205158642560509011416951384258381331523742193638738970349114744789334737986249032536581317330413128981587061797675776747650446082893955592962255997768346992826771048720172443341928934494984013354348524563978749044905313210738235459464432671858567271154511863847124941788521214602580245460324968375664379190846218259824822260828913301793344929008753044670191843203838463846958597998980632610614625627756452580037513015677325313951210355282549831374645160713705394212398547583266412579245206107653555886922716072212623592493867999884091435811056523115360624829439788210508474406039350677309868292426854906308749984114643016323312716890138823183119589426201809928967431116359335247100784314594696268077698109552252195783696516882216834161377556455131685105899342483405505118729892088985782439943741534403417956825172380108023986806706361843360890565255245145930284655573366671013340449144511000488499534166298476340867139585123538672999402761608677312219256116222786984216501566676785474207247017424288900090210510034639786659517393211746567367062081261439887748108480316962032271329483901086412240036057366131986855628333647782286165461408699329931866055998245445307072342038034355248422024600956594197559724778120438396993075925172858441047275421340646106874436096277541156119494669598893114110618371607527179490861275821422608826443766409969700079998777963313384020891084968196801013054822961104762176069099696485321802537382478326210163387768452749634192092219126063202980873814016733191292826159710291292337029391861495603438350671002703812056984742923697984837354632015077242265502113588516238134516356767607389956401276534129050851982217455155354454258023389800292467075237812981075781728571570462205812063185511553893277784261021112221206246852947389993934225625761210918206777724817847653215648400324017045093515105234210995015357884639909724590641539585639006468040360787347539244936739150196421079136506321974658748143451281899815858459215013036606755191690819901801550624228313115020429406230697712418135368315296203094138019345341137771233545144125621529682142506253464969384879409366974410463869792395511619968537953047848977926317050961910441815998272212094069220524874648252368144408339461051253354182549425332861547171888848136673550870829736000432044515289939555540805141256914959386040611381926517449317313048419796111342990406269608438016504252107429816594724152169983978610121640392571993309806447736744580192114180585357637423960287411878111369046421494248815745376855549311534634034812131630383184215448115603528639784754425926519801721743641756668763537903120653279878834513593736195458715286870093835169233842819465046405051252108832247923812415056930371976200102501217198268576945621695265883430736079170777908067080127994427901067643827183108599075337845930735961559387142788140441238854621573081581638256050486103026381786838921083651634704808986191886710376067251158128847177259403703182483719119640095009555941432336433057081654804783001953464115536503345087328033323070536741700005740827450379940224507705918762238646243993824330608583883814942665025888556571124498216409178515368429843407862270317673388996587814052196360768363364659289091328743495724159692304666253803484301865571516849509126357394654100084571324148836758103485475236176655903247602954166693621358708581255550274291622787172259117585055632742733387610864397439442007361311729364814419050913437050910285769685978390433416011969430203832672729612367563947111677246223661135180481942305284733178626214461993828324446992397929622255703116047973007058672851351997487588595950828823826643091786757476183200348652264834450860105350089617079193287973402306997849969416407660475972206359273886767718317408241181388647961183412109496548851762413262706743880297410972358848368553289070960588315696656399710796225396163554725262983293585628530592543662988639533871773806188120224973444877867532773294804925637944154487460177796439665248939551694729875928865638032302719752753168277694743749615545508107032599115088309945065614793119011186860123896558165852478656608338290324222664022397524494364488823785399716368831198116099538874464998046450671143200318840852893618142038696202072377788605782594088163320378050298595793726722978888278382163846589609092424443790920335203075562103824356531878928620043353948884332170042755977039831082457297440810906935927714748026168982281079230653842598556314884170417021760692266986853669179607890098708950556138363772175219510985266737286779385127256905741399838483630402691348691169842961951816815100704267695382458943382436111779470419079938699896268281531743401370557531419249284895736248204598978897061895157032782032334941047836987640772239698828258874791989359519376575690732126225139319106251779932532834423726784673055850527302590102038965225911945859255070419602889367629506372826057660610361895124249058928739981922643347548811884541304154886379011486117865005059285388323372392836115296875224974052252318511262843451990439472684829808756480317449675411742135177675029576960462648649617613851216164620073031192195256956480810999418884116879642523450110038577985901750431980445039028098627073038827993295386776562767484475049288037687838980776064071695354403590965799002670563005508661870247005099754760268037247972091061266735821288380815189532228245188314077404526823019047633728461930938683944559787804673969572494300624352881367122319021344392602849869242445691638214134112329562993563655679331247711284768857933715194043908775404560904417303954035238928231028113202991310335824645406389466753724139260185159090354353965328097096380221934064849869296113064670505400267263009499437253126051430253309922379339952391660783731521532146628731719696580244095494871564933724032322886866739449962937060954389924503040126806085712143446212890295717497742902152693007158222911319722428095501841134082297093742146373812671533880297045340762011748933371340669319481237459645247177993214859587616205951905189094182645783938114002227485005908439555991517447719659655539717922883526570111236554793021357669481005537633317829713085381549690931425083247784598376019201314622118312488573274441808903155876930465792867603684586387116751771588314699169804442385771861314761448049850729631055312766719647275776079180554107664454643063570228615076595605159603979451554040940297913205120181698113541692179298713356066305522900095026593414304519210755019294059643859237718070823450878453215758627714170008299778214494634021221376809749791848887682757468262653609687740382648512097721498121445205953579794026448434399170358446466740683951542571913549164702235276279386376289749798983672460884414583536311239781669246294435277889664141003198878639407135996450348378280718144145239071318022994628171555102984493015984705486295019579199937781286374392815051562424960593572933861631953116782412598781467561698121144771910797555814651051002890852749041551953649670593853535488393069115145814447090361080827572316943834734813216796236412430170198981352926639747372899091243277338520897130286512438925069516397005733341060700509190650781473934568342126110753797814538247084847342098845987250421203108212044417645830070653320309946229357149979724474081138173368217470368888877770512340164742951269918996559594223040016511182057796513905991319813791125652276906760981708679466518385937470187071173527798555792271916528403858561938262221694481561511249943870287634801910926369653536519497763187535709390800288217264447560378934619904319424224501900367960924469667891396682620479217036672078466371802354399667502627888171229165784585283294455450766779332746086379968516881736313054319346664958404339242013793501273660197264335640872234143216759921701937328867559722846323572489221150154506115304508093819766695724556793963660989371136715321885793298414564365184747308276394798607665463983976589011018644785053325958620647047724583576935549171470338126233727762463125784756073818635418885563541995511780317949353804191925630315121145306294257827331606062558519242975558817536850784845073068639078861249332306082842877217289312879350406982775110236483392924488359320607706817030319221468715651282183412947221463249721455951913151521499479723707490231463662855812711938348465838677381239659224363703223398170490934739384036788637983910987220386143484130009342901717888220601523401821505377735765328382380396370489405287582248958220039799626849828714164082295028967665518459147313479592924545481996066331816233209825204366970291283813242165002543435028710723908637268117527218374493981676485893252038794968863694697463202814821227437384888564455476602284675787701389411461075853027993612850904168006376851333993879674018272409895303121860579544322490076817825201295909289351457775994599431341198104211392012042350671318759655260500681993133357365929718891018852005994360260922154694830111184680526005808624062942995266065527683719304921655849217996720767728999730727135413875078717342445624413722245953551442847852239082838582738191459371967215683898245932955559814620012764350248415211120014982084524202913581661036931829208194754319612371211442726325088406933865509310092519362268723221801375007147307202915253566384763988332085095478010401399086948678668209961151246250708683492604680094755822971826477855346738166009699549530744085640708143629415806370607017243265132996206624858903169914531331094074335071600167862133851861799100599157190160304921902833777593468451825829275014289277426861815157596602430037183879521754208784423902038247308936888169750511981070814539674570665668608598901993547039637157798614999681430711856670540453641289422447065627617700834054708051953404502870597585679090478910099113297260603955773330805359064954338488925782647151663138302621894808811371587164679800970361631786262876034199468505442423777246818421501365587859822401286801106511560548162607385086372930676836751836554365092744165271077390002051024913923421724076061591099746896382232518729285328414285805535165655157507973395718840692292845901489526606499933388915172501048332156866024646705208596870406310668874418926539796803674011465559588322926544020157001905196676829439610167636010897300349653560555757151877398764660038535613396793591966650449465124252308200334835032949017113203153774969763528036781502926335046287001946601366397288287511495598428774948546785101235415011678011483120141638009427271753669627542695833795780680336634883044133992899972643625580014612321534210658315460091275563920873872485550013441960390575071807421252033428631360388981766197237774114532607257958221500665071668099542265102016876030190262288545050783556953970860964515383196804638899961901013522345243097001375181206288015655936446223853631166228590816619221683516589782612891433303596725082018502483452794427489319139245823930103973885437717771741029048896625655631914941163843753642383452781216580792071015460057055615910154588885039057240806787640776453646410912765393129965600070765326050206835345132095993584099076002122052493198569931699142655892236248948483725586948743313128593222969775140068136546427469672513003054475400694776337766747982309378312999763978408058283696198633872704692572943011025182200155305068426125090436975387117630111656324255359051343627748472620376349383087485324017513181495161759704661987144089200445190460144496883776119526880493541025184324837470422465023021277417316884495558772507769432436156462006904313849678642140214007622263090909616604374785732561131782430468386610837267053912145863565227741055735223979120031110921245833947785286845459961168087265527069754087328346828616548915587563565258916692070640874875268217241313366225095987231428633986885513515047821472928998815825887405859357210069615688918639039174263326238695384132393712538335410723795565068312929934998379138254521294841852002647605253941956761015166785434419904509809421071226676914058161048547071184112577621849247015610591456645906116949423365375032342396565105986400711385767516778167099585962585317234579979932051035479597231464919267189221647117094198777019259046623119601110572052250935057017753993013465665128289061041719014850588646498336475689386779302605612025011474472677808268344176364241591929279773573563587752298850184713083213885897492701910082767033165352545737591774596254856621537904632236388748745588147346477718223206599942206864577111189171455051283107855813138262285010375131376800412411996886701877690228712579722659851003739129475644632499944195709170946026416240324805931641506738129559475169104841560621182816580708624630859487291262446481152275341160490822028835848176798531387099581465752157544336390639281535035679280386553049701656334688137090472604799161949131720058439332995311288226068432492339975160705749209171978790113579821930486341666049252385534689586776068334573488168056829562705779571375902295572041186989304824614307539669157812406752431368052934792230878026592793471550963887130082895838875214095422880952557632298818736474940974328989037113777238804595925835544148673827126424354041759086166337548719769844877283412639312386118614763306773187506878663811653691622855653131153638955879894396205790805049002587802399393856703964374657629942516291297461465218651495937614145703200264823395919803566390871195617344404031985707055133222024313895066235957503055494438313479013228256900447501118789515533814783718646704800231088893733449737148210091931380249704259546542959177796935266168476619748521571083123770044055636103316243520437153836621636078730453633805894772069829528034446553520239973480916326023424087853286106934194527936531948061870362365219227859682125310551595279938322952829699792339807028763810614791923503078874452763566616645617385117281430413339342738502456480034874910134780473733744198331513811831325404502677540880342736850463055372529232069627288406446896912601061593143693619022314766890411201753606377482505275686278917113279253414467964429898367639708265566030508705386537319825770152071492791137943010421794140725298522323317143946632601553255044101912150774366200439019291403915626278968083691651431785702789404493207142137879736384029430411535352541118643471930957866739240150631143947647461692210372578908020797914672135573213278516031663086398186041534955659589547815054601696633084499159404583587566545273821148648596069504465265341750179124104196879932024836837289281661671370397255077854045635292732825491920934914796872976298709673200488298393500082147946454498498582690163354778067517809372931716068905822820617586246335282716262734408508283312580211684340992729745582770155704898013008778321825912341256416244648665594934908660721450224929488233006924912101443365615709968697625793404027622440389281055960548000969987279855960617650339965759844205359341375437896979413928984520707075271465011634080898313634467596063720382178381244390396046053292961793880883839126279723763839533908563762969588264790873364673071431870423722603327943565123945388264901804367066086850083496903982456905339459532192772193880554020794600171209336279194314314021659848764512724384641472612611739744807163264374637525061613750578435705893985535582721279080294817862449054932817210851845803982615223632477738662674793265121335962530420850743157485967788771036201669852369698916343012234072400947074101516909547592664246882712951878370027830304457245212699933649927242462208434582905801158956702079662085619363379875055372330312709566114327252118479909890790698302338871156552850121140780720062255453516438851998580114212313273729235971375174992540244807457575392553270268491696080799021844615794406513168062382650790335378255297929085008826115486726490396174635281104620854498539226923516573899596530872707275648786191376496107756647169319784961576984607564975364155091419530540145646550454510735216094620460078217360158675075142808782098485198623269410267912132922815663257276253748562963471522625660213967170042065699425386546053948169559778433533819641130630392069295894481946637466227025578033334322261129924200604559628269399981992692442871092373454151572220028423895923579505690153394544629146525857007984096720331656376107567837401416564097262885397536979934777118800582521366024641856481500485540963561761406820656503528630675603472258101950655803654265728927945642384670345092478404313228142994596192278493364747513492966050366161938972074439303122444116918909029968179190453014116373369902741350560091660770533987136469786578866141337788934057287700558814212236850439996015608079990772038147019193501848516974156305013450629498128167551583015128811251539387642798584626100371859358469549357275441114042358901589554236254858902138287782484679721683161429524467171566735874969747208017437620501876900695105892230831607265593455842043858708872860879249599554227071603529760481533545950159516546457953658139085403573847321338297378745856915176519835753653006319835908247927331274286665328515926971858047793351483672876617495619804461791346736118904019610697327469385460126244597603858265085269603795097808282380350695286585442456822388405644302143438968789630082616615242731724069939021942863872325133856782223471485856753011415829239059137716398420231536279784061701326800537539990374661138233969273817874342429252231868221479824580240017189663173640508651497569846705379469422918922946844846955009346089391111008185046048095977993450221168972265168350039915914039998577786384594401002815091214583689080039188612643517697422108875906684216164254873484769312869450126262811297932409019142533260581104299302091776135587349411958664786004895457372089658819418559238558210887348926833959382869480850372644109346431985605293013811696893103576813538454720799539550131805100270315129914191868765107043776667631202955540361660258483627082216005314132897115720779698836569565929618354817689000525206708822474847473411461973855115073541355405689144769706777142656763057875658649775577305680456739825981314933282182131070201379987906171845150591101107655116669080955104431347054875912127817799013699568096726297602182201506876158002038679621786072673066029302418386274331329415560562507740404028705361866773757516528713305451876040023498849299637830485427903966853815546013923168175217226198734140453553425356770474067281870568448569257851459642883104294523161878970328765764025368224735945299661626090325421681152728714799529239127021844659353876569400221560383124898393645763501476015956506730001581327622062194349765283950706929102730265467042038606235075144446475081241922150462464524826396313734760780740313539946538705437905532923725896054898904982288035917598318522019646619361934675319695087585435764706075066573358549727826430383606512543043920726215569738951415141203924292906237566040633551546411275607911718686237650094207072396580161210226259939752400249433601893350359290541338334447744924748160367413625981112406354174915840766490209830969589522573640581868819505008386650607252229290066955434509428511681196768548506110664905930384739254634954325562838894338194687255548631504293327601887514879018954360787477371265356097760524353688421045410834228241380121757772695288306514985619438729693118828952085485350123421534983875789719718281267669646854965730882947061578207672492859942443287230411169170621316919506852396447853191354975144458992511189335543810662895035609871955792194202837932364593864928527686109327626840398319625847210571321726313110641715788785976977429241397578652428554495031287900980920488844451094093104875103239356087608028652143309114364898085408301422758453392715055956409904075266585001244097280697424076372902605428178401944540040163897341150247974842523386023041603805625142039999711737623116284035911331556067710802232535336097883525138785703726467116556992875235602853797347628270443071581662046103995489741278783965186303458620373536542682267428284420592966598228410699597916487812181523647400243333276930838732282200705453940240057277382626685310352276195623824520410878225144007890153682926266941257779551440931565826074831883439021889591580602625603722600561975883692821604269117324283768405020297687019205310092186862927564156343848306027753275360725900306504883266200020491668848548857251241839412812008186680286773059492844059807228518753528833654270160649829599313515308202696118822372643982643226339340122867361401492336159708985201689016934452912848732874972117216389605965035980880630572575532143647274687594822149932353843538126725837219049803660305512855540650393565474811407739574947646624474013736321107351955910192301845758606278142041063498976589875492947698375982467285374101512752611904080770675513897991528756082716762903253096557622679749828380679228996732831723105677096570479222642960191060194448982566302092613450364647137775146835603167864379217352804729259698918929752720127832486781750159046765871747165139248607431062489399880461277044943880532007102490736522496926907245023557999214874471313176954609310187983665980734034843161777092687694547861223870326440534665420848652475696068874952845004348579269526320196049946502139236680652802843634818706899558462868978947978980610621039100483979272301793361542711532978845954597722272308187051796335172113650306283663350888394596015609806365355486770230258540685484368609206635595191425823423090053505076325375805952180884140033048149943291821627096038036850451613764988968680680139463477648288148585282574239806996876373324732411589615938712138561857173194566070103837966596066879431364731058745755459578003909478007185152742152461385018620497639692646598872384981545587309856860449480406138930055598299673639680111967391377843349049838947573481864059445639429406196383501827208173337537657003649841226325066644546881072852399075762674506083696715472188127167834454960504530718006391624282622314903931731722024795538817670862526661518092009422445971529221979940755262691556409921522665501551741144706313308861287921587781934389532363325096368844808854100157830271770147512279704241867444740998777098773243200395690069074166328570034944562694388068783431763736327609797327593540522169739149893964094722093182283051554712025975916224090226598871010666621145620346200692447552932140723071244051637400619302484673357826375034155596006820816120271679075049817762282051721069029607209970036288515713365590067634650203977389749448793486715720687508186867809141304036906208717760554131750150628916619958577427943916029909560868677460783177035838337334821723421596185442368146489667955002150869085423354400041393271823874887880002860514182872703388759396405112623067757412588546432136987099071985306553815497818924778622781386601144386728327157993394767012750330057666304057257687081178885289213191674924562431973256263547180729335212344607060329023602811607386632743515217367003029925157668428495211529320179835878769914430942472250870113097881849287392495291734865127760563911269624955387615610128815209514552545593004243332422269577942879475822900459301015318229460219051040074081626327043812556237295387574282195268523362802574140987389349688425392695772901220059931724309758043640525734421033974715665403896250134996027509489756863430821946285475800471399597308975461926686661272283401361191996453700983233585561514489056012126462756312593483571923697439196230343010988042098123761239291833049340841250632965311819474208585614225442396746471812102660306524947703006963268686962051393603295057014513037625151183834219136911334403104986579082547233140881881260612267533636529537731677486073304591840467307969702597118364864915184135744513289055238211037093394650561028730801592909200250500228393697192410995013655560140620467615045869532003628484135855440058543373169673850254346698645106222839084383985149690794078238727823556934124198297914880505360625275865121291840602894709030815234609902208666029557886124252388822481702369009238911248702739949400936916469609060542732103339653253576975441404703708276643907439485580637109471563440802709557041147878280279224925724388912769538252794331360584595251567722842408651985155905756126859657213116963204427602045038576381240874593530015732625523256800566366962857769171681759087862365489228923785571453151208786128916685301865547365511119527018457885244653782468354681302749368481980648545524108024888391869277369450257268913114976245389545506281951844689527264150026060218302423028919369756381384284989557977120094530907557784556071759229889153273629999640875469278821994484089124924529604495046013726897546070604211656406613127342578664578807425592797190327729072737697643086587346160319429818635008929914501083442363111037079386150879153810957071232339846628871461939589393368821006792189163336751593272694145446455026858562388692196798887106578540093700604063172799196335303731599182547951493611368044070629947931330353314936798650372915259054576250331908962027749915793703643426676400702795987655083585344461269189461570360888106171807226702961467510890250436864555696268222725420185873193254466683104742836529085748117322155172075763357582770478754563058655350440171415973365853633107727204990711666451244862224556152316168599306096597999540264772900030537732839325639134421112777804319951229759531325202934570253382088031142336670315032090996886036039063751305590694276139754995921884820386858970548940993019194485667184057020424585523263883887027710734438241176788388917884048586656712623377052185553251346003728835550397690166415509807666725148416110756232324601257919962982342276715108362436582097711439342981565955295734232256256400331951220625006588726998714904009126829968579336093741642851062139142904260386472364722548445863811523805405030047880417161671179118497417946279948013464870100598500461719543774783328883859440643786373512911290810586403170181074867992464446539436907175444328273739938019663946371254341685481393950011142996077270119810636150085829025334693001607879909678796293678426327168349422281770070821147836810249767864727657934205190897166357780823039920375945635100034045479489679180760935776241195875997112740854503873365682392092817413493638704627716986754656116486947950213829047535343203289791377458180151284755721035177200646512931504860336126909290635229588380575991444373272161109572126636279075210053371628846372234748547383410464952767101463749355163667698112828503665230514357681396546676525061554704253358022955700412131088226290096724315889847431632816076461567776871733426600349656414482133167640514892390620893810715534615866327983960720753306539553493750073919351044797518120385804044779062625645512818754348416200789962552761822066422283773829363664417219740688147803508510561326606505820841632082930764083039268582421174274337708691108255618720778543801450012399836546032638178316914478484039407725840001478503865748737791463088518101690200406132027120677220749420542086743447751367801921369053184955426091435032822622744745095431871085939719572375809567404093020592615939265424352338137687373477355231572483150489987790021243925475237236164735029072181761734710592190005567762022038242819617280491186952742227864165897458797422733809734713593533152041043662585742750702467812971790851171170819841851018739586376340566747263078930695507654690346622706010668788259603399454630827287694755477794048263459760398165128326999663126240298363263332044439942070807334073270217410712023693640246707213809106883245981728187720398270706237687525251035917721628143843516332740695386605900957144512529832254761434297539375730639278436647921543503853603963519286364618667605262718758498955494335220126593357400607326171617704620334752791430687629325298656967307588986855911998695381811955300217147457390655317654372705824932435853922912821209011688863248813401033128519218433966549531512336621418268516509427020995736057761632369766392649623970436880224916238917657860088213312915840383382558153809155624458541020684013221809697091322279880092894920953264114200239908027662047671355242452701111500235358639923949959600301630042803706818675972845639411421652424771502892351107133573114238389315744843985398069794854607911951588500262340104202788101723266641228580623864638392770859361561783347496806378600990652303784669889045356847747890735496874253544874747415665603186206698147500906547477522991437172771620336428477172891144637940060500105898700844311029888639921482174930456506324154747340100314744656698678709448219245656595793002404710100191262362342278505682786026410058451522603114584554862442780266874296444342431121627249762153673081084103117099249167399462029404926044162185760250278346141994647344107478979536984194390373414164813862474183212664979838095621476489459285429792139877497020371522824760046769218794424286521186310084796360047699547249398081267206879831075743399253841258995927138425822697733944171713298193176740877189387106959950630778946614045578638886316638541226140679919427877427178375392243085537783373525220945708115820476338783893351732349344363315712913693947457838108132310138360871923385606255674729444648020027274670637238627914042284410704307696974784008618486289527486496257079335653891829549959533499722735696044494082668302694481273127780277810913069833925616816480357603859064823136374979925582727078049432669522740869015275425766405160381209958216272821086126365263879255194108015117936571042436828629498811007878977376522146966945488925734368316225714280468002851234890778393711153779536680924179638206770163366509227932016349772442543942060349477625920412333579985430168176673111783723733509462020941059699979997972288298370571030325663662899831481597495502847733538923584589775514792921260070166282837114469851637269199130000355128055074128813384504085713846629605298013279553946522046400830655760445452312726256752515383860028927554578770885584539821373972438110607468160759311319347210905329719969436456197253899055182330309671390505375668992953554322162504232705262745847952598024495763809549665554793163452236743527546425184056190995844495893366793686583272241896555342472285287414029800571925809740764910933970963176264177280356135259170153558889253459224637240857329682723766295632252733468706541864980325429276871786364534808368665131495762980472329152373379870631915270123786292307477275947206889785213281705839358598095981009397366433472933756250582857774378986882229713658010238462186811148396690148844575141031032140656956681424948261096159165818832391785537302315656451825609363817846498205510124705835527570205918923061229670144808932269525048302769521049144724465110179993376616030037580709136225209307560945799505091967974035638349744081212781804495162171794899414425793347352460088754262917809076375927923822366273829268436128473964050356615681735079186053294884815172121094141557476281192047590822893102154966321041538584720119288797198520099781003555475107125809070192654869548217103273913720650884575556951788581012944585692611823681847102366568121664289571030522530465978288793643797748363190646819322906140202195241198286837026918265732774646614331706212036956740131381513608205961425251074430571772889992542986414942895078186494531658472940057198436205492398386135320839034229556616096434423358580221954285880321943124220270368481946478271485854266574891650676423628348434722890527979041314027533208459947512430771573722927423489611654624803375430515070507819945616009230951077383605226107943164660829040070711679810376300963206234717345829926762763318250348833381244789544890865838169256022604686815350766372646170879636024349160369808999728300583727664594423586849783450544331541589776850900313286516260835526535989505521696320315989223749151117883874531185812944298158992283036969143189566419936548778614810597459313745532928193692963056684562979685446471261520805253078057240780983389755987721732672359030754866744029293030979374367190280296181069122897305969105755289552363137834632928407925079855438064484334779108427594411161805393884680303041367458424527517639516448052655010479073062050261372294469594954274888648545607328433695018542328598868910431547801591661697470930845958328643780613415498221206349255891111706586216418743681688831881410213249973996122165273596686418436870341368060463444626172661598394022173991544095875233077773064728335977396804565572380063062251389743028282595223600045780997571113521846872942572488910963895828364761703657992130318712687298984090043206489590380115552756178032108077735747513216588155348763202579939378079468427031569847044144269294566762111175301944760465786833233766196929080798085894807571150363549377760981275233553162226679523638564452639265940532029786495956654684810639382774314770468624308111754246546965385861502603272449515871564228888673692870445753335205477802793311609172779379360674640688835936268741229222128469577012747993209951222754116677550282417097859272521799202224016593277562355127485117941206886638671640643808945461447176480851500537177747711286026870489631120447860947092534041303991116500531537948185907612006654414426986749300826028666497925393084905467311438914821768689551725236384306190964540653978328525065463521348569334481800893738823269533187285561182339303296121642767062822007978142973606132654134989834740404632868237222303751666976221514890647343173294242593992003365763106835396826914022192572704619248983589285065303492218910659191484319384455100316115691031130068336052209317420483193175576943691083470948839652289071920783956813378516883811976847721384209987333551219280223282903631616065387997376482082547498461642985015010338690359158413198809353390085202797454396329438486282101996581899057150222293597941353007280354494422410982601099968528661696460785851871305005404253954576543565476085272571894610419845165312049236203846665983288611646277462836218383523042587188134598973721448320941050287670728458351532016566821051902894026945085197695791165461615239962397093328425364137863390192940389446536109751401002895057675001429458183210225474134707230673935573454807779960728435585608590527208228119243164688753536983678189523680718329205654164062917278879548337394642302626971089621080055617061931555564603870994918075207651191405456809455338187318589472362429434895952127840469880554575142893284724977368145352876210871324492053555885690540024495588040753704436452443574136863128833608971832937703510950288816115128292136639684507121901754052645617512040224907682947856962401029110046137390042413017454895712136595395692388359022496391552634501347791247647824768263432063628585215298476808624747063881560846911497193031220784723696656056866188343900268434514999112294547918975816163280128010017931440256681012142346870915459470296503020756568560238004550689415030679714199395138939441118777829765603772809980353499913921767072853205583148831033513919109944513309882771499334502000633525514512055188066081656780118458015480828682791716280621465944001877120130006343436659355625646661245237233637847706216202350356483010897609304162175503624717782620329242914282903717940291658582710474581757904778221160309753795970638776723505348980947985795820690156303077540773459669973100388111271875569260819764568600153780532656200141141693952719214244834841425489076050339918623640999888752597269880334725075600912051075692467071947726526431696507255620729827610255841791054105039586789111495189556748482241722664400568413651077193784441009379036159132320086867501837932898475072172773022962810273380481744331881358967328419922012349315093787143353612619539977518030190275349976048269328989646191237859033409081116021469067259543842403771623434993265808199079547554714132361665386411640476055039134441242267727078700537188465145905455673993914995640970750248155309548088384830221535233395457851573419957459506650503892028771021950940109535502205114971342427031479429923380001026558343559452936031026235677465631667919145284532800238154569467001874039367536567575858434479710839793174436775877443520354527234300291997495240075226581366549361690838021465926035540747979371185352019989262210309014228982659189952285418407622228007578803820581067600761606606578902790337281264299920790973118030673222696192152752986789988804576671127869008126176544227938210130140539918481442754813927832375386597353501895997912079450214661952640741069866551745606072788765450274003682333866439138886887722843498843142440883815602877493591210408353890171608574849368026468914912631569878417814803567497135699544420170007050943418057863655052521862628022026443826656857945670959462578991522374246206787071021955918762746099100661369731714157239855357647995633597865856119957335222426610078332869509591712579799404254646775042370542695988378508981611871759165373466910767734963004820668927342910907600918237761753570471620616896556158075442951841898801689669251071693983651773784684274519638383579887727243799385525706390005791498690318718029962623178784954879513871477934718231628429050897131681744632889320708662681667429399367018854399697418522864829903318640872214206482171550074846409515372812629461027419932637027826284776129705506069918104852681669109428977779601632981034525143152051126597819116177342092361128044612791392260309082598892170273671245524447583173032764693909861441228789397252277132538604916514816562533087897174747952501404620022057382101924305136955148661150944791520115267410321788121848109678133368929191320994462083522235980838001767940371832695982706364140150576436616862101294660835707036960350225265166601469091062996522102042105691828158080855856858153311908866036276024310890509838787810771534872304966252948146838669496458486463261572497864487771314706759375313036925801452422368668090150213905462611887788493973147598228789626091528430687103342595125692073872716009209820995218040065988714536557705913886797743556800765308460897160889632178100710974445337148885042232009267863290302310600905512562572501655603293970901405490662642321230366728213192309664541155315035152058466606808565693958430712974545730311007024433716722321704842166405784299582083419171407936490111350365678633922620506589917556335914646657748844983665831046373009019512255678981911284718879046643015384735137817246604736873572030469990223536687945356380999908724691714182808480049170087957751041029011063980263432978792740037418529222712124802872545347596671131764470783344079330710698024096259089316681959547070156888100094067984190130390221068892632981671707192020232614597522805706466429899172540640529325715491359682175727416737390757759708303752772517277477748255274175265115652097814181866110584824979544693026309986454999604146817856796199883783254986491066294283430606310641986886048057424896231272322541973554617776031814108188005201243923795995775468928801299633015516788217577904233899237742585336164204442115260057752660295477503522319517619251832388292170797631961918716893301392258833607891899666936743746747337644881547050908950923852637326548456897516999615486234176872064172139285436940769169099759311827778131615333779288276989793004544304766218505176421196004129260405631047160341653662273771923989392596466386273097126253645878100899748269001967106812198985198233533470557366898559713048942142986441232166172379363313224465919700482568312456795650501532765304065161675392010951124581753108537526906331262284206637367295066706749703833291277420614070710528061048106645282093391726856500004284914783085547050592661292991646854652937592745627289052404869204313554977953628811026687276010504167645861672976021369592050014938838691330642323348820382689886698049832261674188997346169041639017851196320473367458585818812056100355948098056621995064095356155365194984576672502948083643422030719684599345143869325240663545522354427416814843246218681287876563830397163557526320011174879744170485682870104915844336392832772677183945825370557059129341288977425422836109080982146010776915655599698615555809580773770369599416384848564318697314553675280578202451371795836274295767909054684536600009568827773906696692445310938545412252752717907510014081328729923410515859821021893112563350634587851273550336290499856053197838938318112672194348176299751498937456564250897275940005387061556467776619882012732470336153376834853844927575518392099298668550520620042160473449659799111538570791194865048899209699865890113717231242715004781596253899064273976768296821324883841206733853046011089110768049526262990732625895806204269369187495022457923605157655264880723816303293977245227329471791784451007831598327798413377901078523457959608475248649926304946326305022403071317017784473001044317625025593828791448360809627053166355892635947960582463730481355411552332384246359719193398525776047071918534417224336912403065396475731976105843687423081387956005632139523531161243374271989688276295163444787811578944938409470416128923368723062698933478604350408383889333402120395914298128103234969306302214450903493921770347969890107711401789041825240171302896075876696646454116943419440912723429886026317117077972859841774752826165341076728731348777188734355802720617874056233158675366557718135668639568634251412127675392014824817318732784335982191158968188683594653551455318317788868686766359758762105152499351169172089497044955063114856834324614108713547298881918477098777683865703540447996708327302387117038803959909669741709716985198404314019987592061265715568969885178352570286758381733230603007812259880351064838822151675442105687714128438529675538822808607894007110445762853705754409967088032303681096718434232180752676344482039010222252112102079080700616279992463951563174036648259511118091037311500881213055619607630311577815551773090645889638304024413395260621706633999364939614966994524046506849605959737784510691495385429769139242948591616413533969491015270859142314968356957843158883324990663451179014786484384724124038075328894641018639528236155999870003313734055432248959637101429585953026586882570757735569132052518305605722500025792517985127083901626777044797288697249044833262320939721011192876351333370931247997874832504363032979104507869666593487704426804003185074892205234815539086809539736349383750160097786730941677924095333750775025079009837374254922225748088455457884509219906996583129545643843042149618640535766384163640363986584308559575725570979228534241090411986675101742817952225489839218476619967348733023798488627631292045402569152554767798401837448532875741385899872048764946250934884686358744292255151217290072021355657808519782193789451764629009747884036331301250674692267027881943098274103700128359248635119501639338774439719633918592518766347901153017919624255527640756827478814590388448504665162189346004398777094640910955257357578778033300633504394282861871187422444662213532122239264069934395927806568891405631930574207019872737009838398024766700541440738059778473774910726712498334250638889205611637447767337349517491701762460507273606151151105989026549693428868001213847216630457440139017385479335448897572151650920967523432766690821693002824992805275308619793957388618801481082031242770878416683956670118716605770765345604934046978694643917886404173229981136697785549393697928857658853160652707501128491997998638576382340419953455539403200436985034990985381584167890204924944427819875063153192838737507572514209041133354670024357026419072194460530359803609228808016293545901048543924714905686604275712264693824108411488333493729157269690687445342812019353950193798709077751106060464646605909761998017732938345055401595016111212712862276073020130472542601697296690402252354755305582758247345825779825482744453339878299976520876832055392186314710766693267000267331533408974265268259239293716331953825614415863192467622156972416726841802982622537617580524817283242268999176374803166355004535742208673112729846752154566641560125429349907677856771483832894698442390796673512998929492032595639158486642154096565760750176364283137861865556509779444368976480850037402798537951116646707350843179640551460879968322003618566308468433683086625899420274994383131172547938704739848665916100701822438057532231001864049716177118694551692722264239929913567581563177435809339841632806854098385322747444549273381892947679575507561929767913914377716600677142683554974411860798025092983279852427310658352264237399587053290613484450197222790322418857873165711588872364952856386796122725846687597496256598279878229927591945109188888860000305104687441612541271809329710448037210011211255076791609261206021095398128900850918147428482258946257880852583960683424142850724757486729474640748515804001534979599546001670251434432672277758220206002117277650103415720478222620066478705828681538352407218152789453452649679271353869407290647572452549715681430793984234856933817862188661377729277203113667116714799587433278907134660302005572999466819453259723221986432228593457287825146522646731416461535595596897658355656150289506787834961345445317697440395839275172307208129964574570105341543579016746242071021599922407484370604880223458497880133222152530868886503561597478408668684045123219216105845014879941904040003850872942846897623753662744370916070252444400131091661995618719706375652854876681784660606357764870863184519467554146579193300411002798414777124305098823265926121317585692673081272172019304420633016991730003132386437594036202185935642919831358262547512177611934467777143346932339601144894751496199145727516820194930639626566969374273884362788047077558458357159760560054861319690959946225160884907203980906261796559215600378027306313087696148168269179126588675609196810951551576226864297898673697496102072664267116488999918724131555284466847254296701314419337697356334214175329235927612139178359438498359023666695145273412874267972305612695418951763791016178745143046404007954066427830460563648480146798663184225958450361388251423127407778229050794793308606253682547491233549931343976435805890245728955399440263087887227484749074367943881256258164830191045193265793491944821181419387834921329840867407079694914542320175122160730551165650381359785898789700074193809377755397729661261522510062538324416179782397265208778373932156284888368097770620606850110608846871454369443009949511785159949173423808100770480272924979064131926022892284802359941058555055373533175294986760392171367338800015453747780486625683981566073218804319927975464988428613933114075398752977885649511687381002784290342062223361138119540693393588753022587490233411204066658944240519010133570467912451897871190225457271723891171430621437428419851839797950194409825633495067097430172204750714617203083425311908401764729936244028045165969661931986854061696736910959529542564649690147915411431475683357846766101131962501299139601576051724296888622063099199017478172659966539782587886847742219997535228434204508270639078514580310418047550281041018430031237715746729065928869385935011947001854325848224220788054108774022136463637449934382373722000997989062867013677935906213952606695308442280688115048862144700930447899733233720554271775841316056451481831024817815736292335598172165644630996647551621688161959841622081080967337426497406858576341338323709968552465167793981686582048072069502995208821310618118639319057501021209335663481219392941770229975286365517212552263249443324712677699760313150400219899952078721891288628291103916817261117259919270849125746676777003798941036447369321159467457523043418659679648390558693096759816257334624646875201745885003532339588932458965617043883168907997083094860558370671677346539789719994221279936215949162423498630608169226003169685083478963297309037868563610651385349195580187552189135206454621049020053943317942102412981182370167416074933129852862780861109349953039127827080507024429366395029561370068811489150673640266347813100268983412860415167209418275139745356189745203496689451541640069175026316858890731373135332426061237704048813720608618054471120754540440010815792646860183964951883300635904425393333657232167890714341971358506295575613084622309310763337903461599600551284933585838189792676316690802416784815522479774191650966565575325493902315147274106581098860117991289287496909105237044004249309681378977954156856496208029826123392930025289838441647704717960898384977907903597342539538266591307918201720986819279552318546477309902194094383030590083631207621198703894951927239980094575263980390033093566721135233554240632966227272284137407739883491747583432456813507025692330167903504246181771903608622848985755975154090579702626541116271303023300075723614519153269520726712071467988825835992178608528737046709533076745108598733188477230906132194287241226270400404815972748983911071134030961942224458112119036985138709889862286103917782592021663078070713100844504321870262831270436032515858489924255139811908897841857035258061137249632203829487665939977821063959246679119743657475729316835995382617614624236063420734081810862082683437438473434370383112388197813580636515808032414863406934816957129836758838479912871356172120023396761547756935930926462088359676650131183883669170505088765156148464518130506086178857451058552967516458945443552335005339362066076504432966604313454962959672360086315917499824350900088930636550515454699420177710306792990471548064720623884889672896901956223025562487704199156377267252463452106697086138148621345723892843768572944073780268119163301735021373298722419466470379151228270028357500042601220518194031133976086127957365499914258690055749381021301350331008437458080892555182997258298203115146873142519294967256114528402652269087920379068341958177243656469894768450589967474119751238220982978858909578884650881104522599820139567162481919316385546910065832325610875629940103385326006277833765357543183652023126013142721299030651353121932703776543237248338763043741470360768887025086544724107495014308413371316946575506234654328033369237350478297034694070896075974097211166899351583223706720361168355025426831467750129782593315900438067789923757899368313110010325822720892200591412171502092656139998000316906072521007528608914007869878668365904557484985460977793270443540091950725681385508623352795701593365446530929520787264148965890098426723867816256608842845216402087728799708787918528131005377699288201353553988915410209602712473556701657725594615118436298104574168014433816236683879123024904776743052409931895943877591281359510842362565094968253726728037556008411514682924788748837591396191435829634954709487170053203607358945201109524193173476535959323147385604436271186145753783716874359970665709025335009079442290271833582498633597552286739494404009851574625313542549314630407890097607555647077682006642545831063967775021739770117797611625916956616677570855157671741219560326440418732113030646399363834853976426028860394658559934557244383045276430984151653696385341177806614714721174424186444067892920572174646289111753209326797439301573898706389192238177443075428023371752147803306450137704158538293625197962961867108300512721248992524491387610946615705320827866710566987025155648599719634154377618361021237922975650249875417712074930462681166836685829288836873469826547283856798183604165020969548250872150401851344935643373226146780765749538133941516882925224059989881585227902429014799999593903301848897451151812896117180537531493629853768432113488488627529753666604860487759037607967603158798013380926132640565696098538798998104501736882742357476922583194837470906489787011285905124977016844194535606919494061948889963420179235375210712632406079548193368490243677883878935215376557100089909585316547548474662475488952802351224231797914581269015709525008259903949593757329188838686766056916633291864024142820031904918210925255443372832631993146050650914126210228153994067848614795304095894449944365465442818803482152937453630201538039281179255407363677423380701702040372164574620504839262220533929164117865139163922750446911104441837708523895184816455725793579712854459309442157776918457147746507558008967612436267430757435444512196816032511346021451481144723857948381034166386053640114053234669882197226522694625893646559309930414843421295116597285969294350108156851717248014842824616024805876958516614758917970684776490873845832904047830724384009153599006266834477841293042777742411702609933281870366089964643920775143346956270192821744217285346825807822328173347534341612128763725603078768092893695758965847269069876100068058075732217475161335555586105456068397011325334736039900100247041195032436530684868145388764635332764090484070269607820723632283561830742105785676052039535565687597449682329615490359281973806408056074610147922289359696386567642588041513429420028319566890351378915037368706757625918854611878493537854797100719385053962578095093246910162552800228788921116683225636406437188927903857960408601469470172906556579310325766355600983756240761252295056420090453010966882740975340261956920233336754206175906751450946789446487839983133657081014755873797339070608395040259640245883920795218988606259823102274541716218947066736326482602857272934216825532143935679706300498634954917286666851567167586125546385483096510875830254162944891973759850698447786650268370766971338456659576675016258132200800031663736139294730390506049512314619730668264625589714538861834681258685196573242631838109967488391616496304906562220434700217101772111061715773482586357572865478128399682302050468306428331607381557429957044384319507560776334696497275470987783108715332622859097045907808220449575752619742086291736761814568331059061488510338983563975045495246143140007088787261932647464979104998095840935091427976658252624894893480915814402488831579396284158460871244090140506201559945039092065282780923506344587685892995497989136821261027052102538795787540330935642572224986907398563533006393144512476176676887253350410134223213952586276358181183935693423177666026771358973773033400443244824610032362158881328819573470773694425870083140736121584093184141515724585686422160586365270161514903452111396194403317144193810710495705193069409796606636211656706265356141797204071905293334312262619147243199812702300869975654056189322338248393204182300873259693596730013742028604858645277859004464706745649454489403530088406417415240620392247402309066050006848117558726597798617631677604830263624641122146969679154743333344713476916123509654421958456183150460160807300293581204321703666440054109536732380989975165341840581529276790220051801473977141186779924118454269840407457163635015563935863953705498159976049250682792337092193190473570669087624313195198896901213236300300636359280278000410207612026844629989204194243949821263711393509458962085345327178421345021081936091497707397040202239944659198140210603939076210693811550860262461896205570417251465017759231429139545033140162536723508412070146497150083405340139986337032227063008020961147889358901466180380409667484134275874293822751083012197552917042970974822772201351747355563357846176647022193654781260244895139042244775622903307012419520423173677960392627010915504830167802870739046560606333110437046880615271306917516135991109362425129797750351239072817159589076582018326858957384513106677535794375591568201580284810354993632952133069575391130953287704420191118415004926936943523461429183095068013132655391056128054266373160445980904205476219376012716301535849505548486154797581989304728196834894359800681938658090887640314541248750672341338633749937644741321014589311172607777362753291922600927723516626072342959423082544885466847971704836115444163041099926156084826030645185895038500863785761740658035247110489307883769513794510024867600923492432212406827906650155812593419160147592204171334194970998644328162690642795639401671742127472500217598236599077644687192330283015802293446347446201369759710593045785967114941146795365641208368952915113794099580396443508965645304481535300485308269666908342212750574663113569606968434802174339812657664014105146762181805125237751950035931955054975436305965249973086424408201312064822462292741983616233240843947007178413730164133200931548987408734467677727473171569090962907791734003941260605947807799836261239996462120764433058209879078771757982707997490678407724066303846218293028638069145133079128717068677001262583428033812900273441647688569431015263496452898668679385713265862780966904629549484676946208094514217499749431153424035778684857509436225112252054805722687239553507491908733677765469250417407418797366330984888545669681090463133854417830859264063310360593304002933232641104946666316864783530450947823229497730541435739100786223428908724172004903897265689897902777400807330229142329941723278613276956780881800177519249422475666631406794527613848304920695558171041138083257075140775563394050695862368206377419207530405810898154792049130606649589448915595730616952381183005449393480473887322830636317738438271275397657297776804016723023457703744071388962279106263029564699934446805330120266567748551558592728512295206186216083918195628886938206409267409482006807350534795223885365212414425770357586724331857841869825299058379323389164628236514339883776101861658412046616699677057651066040691124585275644497023142898989315518554597331297219196426051143108616011816879165130013090229398584733288170636897003620800478104893420797085184484525480055000229877115986651345321810871112689345343283183439223675877117499300877027856846993394183933706044629629731018152776078065935211917381925956821420888215588466903058984003646978211745679464891555062585981466772901909882368849619635034870215582163305093558722384758704472117659870182572871110920850845268923588692202967986524066108618096371424257033437647807252198079668121973575816977550032891646239036718559572179438973261775825331595460859924227008047505556504812694113318394770811042726580401860959767947835621315105141749558334808020710020739535250338945986146302421510964135056735720710479180637801607610561598603508163906197391278093436406579453983633077671807106104110796518754563003805978137319717333061722860445043712217135373504261642281909972560979095726963784072324098954704711378971711676453893608841580865419517992915244706644874004780523586179919224518482282971711856073001913885938800077528036678185054480763415531034763478318448410957090081898097288820036470156266139642631297390873516661441666524665976141397022664523088135239882394720413883197351801735633731918719004511885301128330711390817207707828507499596745871504974646990281394126251746854882942172007650727629107288389616063452669333578434398976978975162814483112627849789169585715694351829201134776464957652393907944955704178241409840426454800681699465814690308786984759942877224226523260271859806179377129692896672497187713826259203615133273849048505010009981140898456678426873130460003624291375889117349915070421053303666665259094583870020808236087492696446456032988516373450584641894536193860083638615566887317096403800642174418870873002409612902269229512805522959729931566440557086271705685952162442092472980139930839375455095903882107419901239090476389122650588304695935026903862174164640465862876107481848988773080461465698205399357941910010526190064210385853717872444492970798831698781366942670580079485093496637949279659360144285240826876753583287787874438432091291865935525373490727124248717702416087000650311875681140473740563967760773986865164379546532199947117028761438153922176702425559898326684339717283508900246219296621878644856379232088365725609964801000482687690379135133254272595242894918270575964237273533550744573187524529658439063975596363532913172272420901744476065250472235707812083366829248338412661809973584028577037941753685236210671404247538536813369220416475123444095128195839340260237155837050511767235862070274251875363149189005395636719638288172860823170318102855650885265642004699486176782427501912459738971119569751930987433348207067579134104748017216138999825739205478897576365430067970750197489565323171681957451838551912051115362144631188536163814982891948010940047524006565015355456906325274087165349417029193662152280464801936352815312029014034194429004767635260769584729209303156968040486531700686292591139339443943274958631779431972140835737984878113347513932397829342580245567038467325547578877722746846115479592938132579457494603960955645984594249348787148414857810744706146826066178637618963975837834894269872245783951326748476709466638060857996201898868617238649519454794778557503284001248214391041780391604443282400450104608112700762572398467152033042794445777170555502183325458145097724053253389643751619741095924519452981843728158383960303132703886369872222227835140389892887734943037099424987133124183731728163113294544946513350277354032837611501550053338007865922618235593113523617617465795571807011425818242897591427582102507754158984488473215352858696748633474168830886336247107587208981502599278051078098883784878385518681205880430628957807005650744045970974419517233513277210855130022894749064047885468646152084423143313042474909104416212357959827619879711660226031295405510378140244831990453753280874321573314740248821083187874325469767815443692002896109554015284367641206960215612330744710422756576649932788643750634597112151588817080872014132448350760789736373023613206180359315859095238287545870077597153452237891887634166562703909421932553156078576268770719952506883697339523217355099663237270402812773200121104535349776124252039758822600784029870086112520295408228808542158381925978722250776794053352417930330613279476014001675119114557011076722912872565254478176556467918020046362476597434768531371368622104716409118946724725055192900314180142022687531857879837367913587934521252564046848308130207545058999376236898446432579607427952670768231473346959852921137882739941422659828790810206441430105063783317685974850466435571691345804056403273100661329243061429508010604496674795921110340478921252045049063606855564384803432553214974022470896015976935040299299298574598093757355070577006364627516394139404380913316502566163437526377734499191188691883532910267955036052853712176489848803791893630247245190120465872395912477388298715235985207685924449795112028053037684177259616599820722083928165860069613042281844292446117169720751346522352911465730154654215107996105516262218912107931134501719336214895236051244529921785762519592742254366572068526903812996592989021409168917295715297833999929033123325883758536451165308301217201180964437499508336675189461622979932265644968543795883767687335392433461963930190844955085856620003362646133634604307407362217084950519213549486411391844273877748573191249016367037849378566395743196453861529653919406171708666654800273552121039911734791779178228189720835871310411390930588137205170233880677090193228301345166297737459538882968373152228512382703267330285738948477397108860471716203774021001860500807171528059018332484419787139934184712883368068991913228279218002067255393468600368164192318333685285260169649249090588265004410376584054745855774180257686992897966873944650259673855230130656343524299841035757442160150014343336049927188415933698004842881404841540423858861231788589940545879811702605214643865615056846015364740666088473028985908629698613020516426469428083934915556980020681617780544125585866275692912854175342905633675912135280891024794410801813842830715435080242582338270527985010883748460229904514700381445583135723155441059394556757572412380464732529176744411453969172588499697951493218923757329028588180139167256343812635894895116513200333344694441365647800534306565478967196080639220336079700407660791921802554722800815907203813948551723145117661907171397120750397139224273024956736016679691138978317610873329580169422160884303938681219769236911937443020864061391879108261862859500380394533606520460799263449333795916281310540398119982397684925506641389637215817904612334341612621137065095823405786721247805864656483606134200578919213585630965884331737169510265740621112218673043810372228999166187762629478546194350411223956093641349070387662979496355556777824486538047103194490107894159923725931720556803882728335581654863841889980391527830770205533094197661139120989085182722012920037632376492304802917075328476388410512381516338788611553230135183661192709792371928101171540236463143601303075236037010135119385870754663210834993685173510439267787111228610416415488982940359654179284331900423280674134568139503249906130332164161267573138797360200423701558531934965970999592959791891513065102352019085738524554431070234937164116460730990045687237355781761204360272589389696189281291958378025861205352210276609157401836522455617971380040439152531214003880443144249008906615044931627021492546327105915234488836972803659310322180641237741172985118694835755371915408130172327304184426044597924145036479878333860027245598307278118164653472862447261625583295836012913428946833201139072500283201002129440365429978861332959511110183801768315288781967147434689992622811069061668109082488653957991459855809017488758098199724673357483404140806614990838634819579220050967781087151054760450363240337365630429689298168360809733789176854546326256329257026614404724770140866689927018148070457560422397890299935221463560263500475748842671679868568159416652536083517661396091835511276163987412654458378085282478518503426654852616294122614547820357760401223966489291448311715910909327580919722127982755852283522774797501234280606919140129654123152173634049901925014477264354636341279982114233953325953645500872487424560863186314386409654824222289779756665686848364260266025340833151259316568539409370360127304075691511827923670283711137744946805566343606656426007914760694431906266980393844502694561820153333012796741317081263832759105544469812545241260194312474473696894723383493280704646164057886187427962675340567574126353679921579907225682959267986827486771713867379446651553435100675422617967265274536157356858007174749751220553032929345679351965227255122342242583711245520134332112280409311647441679535735239331224568403108892297623205629578603350369827749165573353110621695695370188653425222608010470070391861620448925719111934212859998189758295422452515581167487468066207696131373332900982525532892577445860337834188737525404950810839936813561013487703425759681888279205604846725544788083272502977555774384090180044473110175441614966440581570115067230248183735772575995645240296307990761992353029086039212064634685073303393016786746103811021056108403370563348944598331078261999140488034262153948429547023558926801345656559169747942123300149610384775271010126960379137455128067435948499177951841244740700130236878311103511649777662056699246624459461168233392566943228953886189038620517659377034932594624193575103548924655283466892621501288049475833246648591075938612435615845378414558564666166050979631407027428783155229704227045804408555606061405798263769607304097825128289769832287665258693241319444380337343822055237234842703101392066120780314331261690200599003195195070164080121833039252863509315882114038007224472682825281809455414294530175423016648256981169712272674421303731675776311193271152474610358040034953774304766561049076731739803759138669692797957404694758148508927338677818057511745875358453556490950823932184204334446886708513576251528427723025059489299844515060467224973596515370181648849771351726718171958918443398475970127558784535246869884309629629898769284237415760829462055144063316495936579132204496915517346636750133668659678175447160409730248528319802511449708788480616378630733724153283874709013584215062927345704892825783341194821881132708801285640738522252393229667612211841661201669220157275164003320717708155442929512271171793049333199538506635881538649362978624729017703175108929793211973710141033717914628541478184052872582705992569509749530863058324697224039476421852467130833561833409264925682000469418728887738920233818472126798817562375112855166531792908960284468253849134067577814223202383464993151715977786127196183141603389217530000703685355351760741375836166425622954714948808063249671843835942558169801861397970572660559203498071663247815266117717757132925673466006506875301044175237582508822167496092276725529457986237100969287397108009472228283582710597364215145598656369844024835881435740566445187114467814948168687245268731596988105563985457490455774626481421476132000610682340145600071237319383813897813457465697000424894537011693127729750163799266671889144559615207737307461707120097506627029354561337185755884191916510341350256106777072363178957384099796819585597706697306631080056617178547282549930563700237286933342286045639970695024058476704784749200614722519382713349702296365191066616116836043454257899871246105129976346426712165758872269587492867572722275785425182861676600612360061324788432492636783998610857662237879511741720721278107755706791089567206962830948282420784711579319513286379926097833713987820575674482073396107721729382101852075706840842752301856793568735892125699683513219709400141508096112528488451199300118573462393290858491317474141018253078486598508638213071465137510105610022204315253192452883615652911977581312677321612299530521187349476847348818722070985732942176201421690232372111892407442866909984842975646931201710809895709282758681689836715041497060651218406477436330257332977476538861997555911905739935653131387680671865288052224450035973959157747340180670038431355039570438874581311975044302080531962169189061550641345198361061417318237737176304353691865345581991626863307408429476244904757561028964513005640870070785520111192640724295631115984418692887314595299041098800841877655870388905660716208745634065652118902829420593909562440175206812043666283095384432282047420096405232671508491111494774160848013955567140412038384644966072767873413836027168931348632247166391758055446671383302965547860541340417847743952731213479135834396527702488982317918010586274013334267274560166806400714012327824312513426107583094425664929954915533480842391674279357246668108991685489772771991922583984094515792521560745836573333572393458530154044016706588471954252705778135303300891195311947291643562216698534469665703807288566366084937171176587029053464122048887672699177142386631077386409659608759377567244787920742647317660729947558069757476263034425018760984108005443039879460736914509627286817328086896299820681862042644584054586576396914760724446041919959587318805534846394896048974967403078501619345517861111541961504022041615526305381562092994421987224244196165156675661360599250074331149914267812990025881541438908790050719239339050786822887041734215162207056742109682890391025145304934341274065506531490175373324677664094604785869105801565218590889071290277514300875222893765301968463265608152258253242656564169601648649730359488726947021313977869357575857372204067739001906703198145495794969798737653526800190455076385341178500613855809600116178964652520070777734342358027131385313212710954563156661503863007080369893030721920641134470010145702960888045413949985258074631494050694246247131805330650784401605333709028466513788972929194026144929580295313031247646369451988163866028373796810024773068387106155589069718668488876282657976168709590991663978565722757643039515753163706846713131045091994889935007858444986670488578959158952733289962739542548456652358021331697068777336476719079268050328210557992533502928468093754086835524845266114812875029773120551677751889332651052083254509208320744136747237434062579750801857468184956402781152918650895351724761015071644052042524985271158297633979219907859796968858047418002206083404965494605727144149669132543452792309325377824054464791085917156393415083191993840426464149028275078945320707430095582475688948169018922238427222334435215110466057394287383295635726269462658228805821966848702434941351693249274582590559402668495594714118725667871166974394261280191551370357617899486698609553173353767644949573915457742329183830004702590061656526956365099264500790139685205008418508305450062884222570768147544099780331326363777293145892447174949899267366578288319651042591061433766377490092310329396548101414849481546815167382482534292909399406967941694484472337426938569920382505501400508034276734478037428489505794154330247160001264648309730408954762811883615807466198054600098793572398764736513148222290305424636448299667229448683506432651248249263277733130649322192534078345178314528857232559313657797069205322051821246535746074655980582402738920974077367755339977227702321734961700093127407556204507123023376469816922731799143454055488828942186151506547739678890600401224785910151643474674311980157920421678074125802981265382542038924676923082412159022711653710868298334378141111911717914898279659836311508814463908173697351428906109116730732115247484805414711817718155086333394782706612138193710174532605651929009514671922422680542186322380745654099448195018187015607634838061417558253016339147091607912127171265299896273216627484002001660365791153273609455744895250826652857501459627449978300945639801574521126584889222192233048120055141406296547351817134168812231990852699213666175078095320187801985481134220094249796279451982939967204042248163041918706223004040537682502321235254148573818733737061061069283092576473592958323622946875178439992248703180166166842093076236608677933701074972215656096769153814633325907761866376276578351670482980223837794748158024146369752922746145857363107743994705975776458099494161601839546388097232052657899134799099985246784696091283287624575898096728618351901935947348090463658838489824178826492513745024026538361404561722963507010345777659219114105232701496100274099806773404067933986990869075868349232368149597571637588839300229297835345455151607441722635564426555063843394452952955603857034154347405077510479456364182615496018812918747672129165669151942655846351859140796001746007226350514626644484924881135056474732104917238222882544100945414501262352933911415815781358846199183593163205488912376978038067299001935581212711157533226382525777475946351281281289155952140606594035951023603689892014701920999084999013242274622088304675621414118625700583962830687160449998977537512945270529747285787308324616772971864962452215299889679410223104057272596676720118486650974918100245472382334160077308509014764157861528053673408483430413210822571929638699803730829864647008191435752955566211593310475887871756880589266473318524618313123818165954559079172665759540632376542204510830868263380551422337715712825453536384977205579623797978559170036375480653433249968486402744525667247284133899554525887630028525602385586633085103442453144423813847083675523025129822341216095238708060573131856097216410645597832528295064139630427847612760912244783913345172384979656842290245640351244327473732363426674242218187175593691318868691293287369316712317203838561810998097361124624882722784486940274291342520380403192291282286232273101647497623857089106502982391092524439336897066302387608064645556453326419405191620226355512632045289155593139950439696960098822300699203895771856474629794467940169842413136008893440065985914183695141599166011762889694715852399090022780190726299543172277278981006842416444500157159580407079535605834487032795824347372554417175808381076602102770573191320771827304083119787051510550598674025250524236793739699348420668610844915861948480029521649781455277090434455485953060418953433469175658690169164860977790773031381485827066403059608557341869794698995575093999841816893587813454381495479429834672804034264246496172992141674863492509941149247239618215419846446289821285501366292638809984355304056873749907871112218192921266273946046792035025801329886889956666164555047169232465467273942673420907373000154243239803054822438132590071439278620755405901936986709736933682358414186566275167502459514081478500787956035239934157085450717244960578506743073079123195002971227124749225907088507080611557720493864881199365346786080797975894084090637735628164824196703801766335901587677907086507454728573169381515411475234739582178756061113140410146631208658913663280100013637171871734715302345176960727410379859225397247511866175500206743832889577724378485077539206601402525946127905566041817990093595795539695595188022081259381977830994325961843861901541458931601595296229535058599004144023655937359410655368934575510564089594947950415536286541631678677133661716240211794778090830503813438084962217115523263793937384885494677722931979871422906799827873789422979728910746161932531079287490132258178588847486068223984987947674736193326606473958094279292604984507863413864600323390901460964360475116186332647504679759054717630030481141202562387502048344668063165550518029533628318256591608454948384548673525981166777739509467541115590830522852771166128519742697491605887013587721647646882756035294593328691343595416008080617128545455956921486075761670258041481846882325539987526772441259333903021149220774855604320645164332089749851642258025659498535155646943365439103688066832320889737658405636916894646506427494892649981907785154606919106207115097330335821179179210378642342027168373637712898030319402558801500240693625646122059187990127179740125921441995465930219583528629857644724485864617309821484340368145697282468286865444413121306532493133585273422049057679751213111939784156673525332235792060790297264253437947539377515506584791668566901842654121915491791864974298658552227611911465447237833217355320951384280059912492277368293264871628015782569204446784171415102932100752486473759729775102649845633684650831333008904910045628773939481962445838988543571572152304053226320520034230331247514756325527413719654359801719586910135531342218693483096636872472492285836252923439163279210457168828220858089206028489007023373718262025103656456001200307941955864160898279661022834297704303897010019024032282136820119275919508336903028878256814287269080937455187381859565960274457138898477755884820603797845063311541878170134021737206231594749972502751579333889105909853289086938112920535160092962934138526449534429621924304939939778985532267156021722833940526160748955265688430820117786296553793503055201039193774606727263519322236529362758074804048250942050142889283449540387693009604955206074838156474677410195564530751108761004141431550520253638715177289974179947501696186096938310010020505196440437607249321329189468683889221493567854168960978387998342199158740779505038126451940483499684062696762137307901832295529448226794885807371301786344895691485215325713188490483217171410004692402039763255290039157489285619148102945290790360344543769284534413470532748009122446265460282499403086522879799740392463285109079648583454099444078137487900948117173269675646148239319145480103831841819454651749859498076696827840105718869799234105854081957966547290407535986326622635243462491905489915686606638009187230070231373908996822425860226925205275767126006209645316658437625299699703495411500812484102867352982467472680152988452799362352380972010178027950642642780384322409729636997868036078291084346331141476089803810795636142063655844692025868254739926750704001891654989303383939116657430455518110617694412483667681562779836710148112634021241661352485344113742122661811361960001958628343546486527487250476938047640878098392386780792015523418098239912974257130352384961427954147814221707481537219943285850506208937020853920016147227778202669509465330535735509710812175394582153494527366539792143468793588669725805532467400508779302308943826567732953514367577933847462579802546277155028206036651113525426181786586420639321057115957638909076368867071524179960733926576974223419049253893735491444079502831335701189553589523669785829965110531161881205087291701815547230167573593593085314168618237829171284674395253001100338887177854712596888345070926378897325129086396529030814086024329919449768172784401719308744234521627980384491394663146396098062678766670530569260812541322949201663458810054444404457628068047238077160578218016794306102371597569003396524840788008089480192195358204866558761712501247562333070007529740236144968285606745823325348214936216860685800910942389701960747327277216078517883910076619827441240462217146758161454671206747224385882488442273320867793573846395254063586462674544822755151654541561727673956820108108893975562478286115904444439721704011886496980993563599684291942614710772994376686853177044121891267588240390510424893642439504013421788584962877523140966914659802744424699272848014946619505492114012070243896708613813724045577706239400375940724915043435491380348450765129071023704516701354328383270934359422954061241558096461487369281748071661592296206624163147771792106237565245390002223256882489636805595549481531308193249829936990679565262993996161081204813374421004808653317628416015599380019542910139100614772310026245491485091877927326730710205614125624132392761219928430904658116533048772903608004612891454150818326822893891506859009079900510994813623861450604140420113494654843672522334705212185349144222099530890589445797259775228235124643561136924732026888692848884687639281363681151589314403242332994654748410874775186097690599050185579770502352398382379275897987382928573072132702855531738807412169410596511132690052039255268863914355202262214351688370253608433314957516087755080926191829826404373726309492718485181574185342084102112059477670483538167867622780901094397130805678584959952758787750744449108389107665751689506991213232181871156040252062509260809323717836767807253824953649795503834031112403364899285617245469949196535810888273118794132545125392266980349394952690826626505451330609796578886867455000546451015591298729409264987347548791727491271691916403623643496468687617734752571922312886464892633443084739797838045282736163877277646761871763477026649766281220740761000900354370081612062969556888677612506752357947776383165068735842797577851851850304617907911969319417275510005072746968454353966973023521004683147884506647076450439783544926047250908500916105528280463840569163098592691949115817391264838984872174160184027546812379059330865095955250042110312256077149923524988100091452875271683349546562023662803587870627029001581860245708760588089098191026752324639989209137304597590874040254195695968309845470153984471571573553077668269441788597801611657983321023714588446524556887678410679412764675346308050201885306639803825203905330827748157828351728300857187690417687542552330944259658597316304009932500585640356622996466675868552501355018277046026011508902890579830986362180085205006668664187303590219070653628566310000728720948466629640883481322377752920068739507648411306021601141443837252508295875753064406525087694648377030739434756787606784788585473390900655805845664794147918171260810703853304024315233788337169714939520346435037466755856001433535993416592442911952405155861078763490158003045766305280875250854573671155011163348598787217535055837121362629719048630290795749211244965362509254451240540045035758160836037268147867342142064382287571718507575405936541951455800465206236272894502187526220675674533283591486161593492233932303171452290891154284615061388171668712959925036487979480702728202952630542015542159817117880498697255518998004191383888421188523528076661585797978888314305629104410721705292096414923526539844461932004590683349453060028291147160132135834773587738683488586719373718944949918075991994270643514261812899767936001004296875492152076399923129030250690515436688515174633543529253025279599163335813340221162026418846607043378872442536761503244181349110654248528222462003080572033993821900637924391782016093153679311430833654085870367463562478531892585124394087329386375947220759104370894625091829436465438121501171031974541053624534306508563959165753075679430121574900239362791455117199318796887390942565240636683038499630453222748103088298919302691001483214959963605815120703566929974854816492121530955690706933084299567102901788425218173771398117304979669889119188462492476950108042413254132720119509062933735286582256384075519645308924695034411938468819230733625432581909284755715155685414627926348434263003657648644670502805134050137151205151989870916610367146462757021386937794299923664214112675147024816979149493012135326085025846849212320562877579477218590215523269195103133550446540943370971127295305681172694505536897366133611533447832068513210768280736968373045419815683414031410304869566736435229179094250824047580881390291384270212077090801937119769948051848802403403590471693535393577787023732993265602222741299447340065267818364551028212765042893734232540060759497083004227773061886937025910006824410099890759043377458904773035029757811355916139088737733779752270372076469509820562293632246092289935706060782473148074564731241118361281605518504129329850838794523057011914131108923375213868217083211033009598074263133533848915265788095887561428272598072577117230727082499287439916515732929564790807184409957524735185958148958475245498106966849256899705922669972052013520507066617462170122002686414387733080255960581698050610937187640913171359747272664239092781990618128141228997982444487198586304718974972069307305006917558704218171507488446252748811096247618748490300338399124598441524772089477676668878330669714212420386286636035122884395395461407837778544246941705327581545516553451809984966235663240886589652066662895823250113155225823070512054467177061233029762873328170325632186173737537578232075702892916605525663756336395612762318114360347975166593394238543171581731777646042309016901193662083972456255676240319096375055509038968164360467933694851333669471512372415093300389826908542652114387277978936215020525269862614139938678942314527944811356355069769206451414827380233511156960377453214230434829065589552546874433569240391450422699664315098042721117780498460078296303667920521236122935227972943934742249627328346925302325914065742835795572003089693542467171303765911820423276799328101232098515077679709138575600955519522423612066624385972008129939932767368424331255185117340960051047728460275665614142461530562034902648784812124145207803169517931160571714565252297223698817359537214664995560984451284552000185811158293005563526177460646292045032262183290748659600885216087560350747701188806731783928316760329236594283319528533112057426877762325828306392899663497401884925711958994252670819106518381465808913181689003244667557301229885666265991280800399405564605264655671688309636172093803064312878615023961650686386197373844532126486864300628030258720325186440012828230342174388168560129752140727957727718071796922218344030232247518575549550554457959136332450354105096432421320240170045777118930645571991382610439215982063872235240748629400292705584751486973708153175114469864749278735056234266249428208069137570568570567991063340071610704510634851390534865696328657811564257228090951099690053538796520563220253850631921789379501820754335459492757065307562136095071128459357805147745143513798989687300204047756609930425426419255759076243263157423247107114569314705778466036015947762372411060962907528412757264619807638312197921850839527371562667897950836683375899842861512985307983216218403080686354806809870861616963456988609592426712851345225208996694433885146426741660518942363356132085113896184055042560994723449624537178271518190390726076630326754686259329958688179981146993944129172845641732790139981975984547257669569890009489942786172199884512628697911721873442867703029747273109259445613852959469824849485949847730071275818105635597490124166062709827173766135636154459316173656268535787848628809287467102434620579941933076616997678325942261650124074065566300846801177231085308834150652341573355214417690264367784404125696639637362110631529445850657514033109643948721258916251264352697879230323129526913425795975253450925368903124205610216958008585839536077879010054478852849058289088053615943971101249432733298436477737345800164749605087496829407665791105129215845682426938127209113238444632913669705421679231186506540063698920513125505919741626850569875067528918534767710419535630198725755737576184901959107013285448290318106008389153083780809787450762703891061655626693000096659540777249871898387349512089613213843670325917562652625902158707957062803337768871042499233225860651825964574593341102967185523641936826661708743729707589630252712003045628809750402615277146452083835579680994633017845622030422382700176804779073855283357865468481943128755378465001661080485671098518986019179472734272054958278417812335868368639388392855573806032190288481130450687652756620382087775208459115928056033268443071891343906021164730050152332806220231884414289775312524144901568863561000081697984483735775157613560841065304957578904462106147814550094098541209178721758657983715635211138665678058120199225151067013637776385257655834068170882369527824823192450456819198179676625376068324027506487469702301127338788231202782467323420517673630582792914331598766636738411184412046668571911699635995336083792491982258624795372517592221729562825124929864454540963075789999072571388501571458793316172999305136186060159420657558418466063319583541029292069507964191587748661019073473003944453695465846670899830973384755052871442832566064158022058919931017292480519335858657389885746524776962690872474298863011356172865047637500108212504994795510881648895741386225012820411830989969731559126705471608041028418927073095726119512249591064929468628978014759645845642905471453182719549889163151040449149385926895526977485688248932213644596255492771622591732664060678655401185679212512335188341532032519019095379134184372418674093924650505947295437485024547755119397323409482015245334700412529596035467848580152537491707755393874645570435150693646065045866080596480132381460567563480147064237963813866174216551801615617239765212589525671775183521706209196223512551027462450702919412877016484268260141561069457054858105218659900991091730007364478506357206098927681387609677931265844573094922702416940615320408653182451066622574247183342155169296856907708409444324062830855521471598605352061139381503983858589907042583189711780999994499892177934425711600567331683605454367147035000563966628151230563476007950290441567554232110392857624264314383727548909986305567361292429029736873430006522989239337636046679137404800284181302717908909865811737581900531659688515595781437301184671451420480038348886881190869155738154285846770267262281640046273862332159020071603553548433716668737928985359742607448664697600041421533167227402316301989694968771294554635790801998129693245357883195765070094980718127340470579834005440239866825035578504793958725828204802857349028839063962282353881879396812205238034481872212312497365428949324184183304189499743923418901520917058724424182262120884921667540781765159186059594867251773636620332665476928486209838419840798829035081366758710940776015611681649095634390608582222484105322320648460500297768867434374435320438243122514928347787820990499456225364516539696088780553259351608205815937465028220785313004236615500332904070445875156824621639110424088516332767350840518883734590403212175962109306037142329425077284201791427986967403392308270891254322592854650724222322664741460550014098447994357809961015850136138880602655725070825932359738387939483752570841167160752415674559949433577079374022993287804513336079882063021221616761271990168125012052498263181166200803734986953923893473062074924213501337589459720221321857563611536158764201915567149818936433342222237924750873224888815752160816000967080132466315201827743407359758651031183956567744508765249617290758176907755858068586658532899209121394139778259317748698537198639330913793905068519586825856238146764764780563573791624605470698523267535225669494479554416993109100932209356206300258770385035812284270385626464891739423712845691258006663977008531891463167091599407496946868325379840925983494957899666301962671953289702857039159388287628239246725146141765927276599557672229210037541502187525699722040763186945307338580071840185797232572549638142596835221156530778743717018129135447229606489582642671068929618460503571854578515384156015218594874102472341254667738936552188785172584569405938382548574454770835508281129813251023566696815639057740396892389574822109776143960401500082369474080671151341939183664601080457942139442251103245127869953732393711924812269783192075914915658879747011304895961834177986439391877227181608798287720288748466142189127700830974941618557840014142551874760599019409261251108097104333662854194404252100913566860862925635228100873731661259714024629933593808261782840010363476518914941243363711246805099612307260063323878693654669381976028901312433375435716148532747782151451119888466944664047638260644177594277019661608425155680716473009608366880034588045771605644243130253854751149380867249817700645676573335802141990380311646560114669807268539914659142624397212015320038611852927163375808727799901262342801428345372214948066298343208847530458845691188709854418123272882544130095592631123574653186670216604171156359225583819254158749973396596576247118911939043164009604608859952528842255093419172768127641108780814200773123356322242464418869958171239662443808161272789855677785369411280183458196312267142136208520722327643729476607969827161904218867545095146618498874664002736199510169649361082941780166608754215062655197103605162247187407403126530575611826468919571001234168490386614391421054570816171087138393733757109161060321182760534585244936660474349268891651466457992667945943161703901295905064476121979681963851720532057424358630090369147390070394828580450488372207458312108862767162164866438896121855409235608583042708966211653172556516200773866321179416165998424116495764520901138383564434565071236819061371173154087679890040568742609219294700688441321330515188629641985232749254736101832932170529982451752282391059600882704135685773333384469494789895254187169875996575795595858712717786582442473221330585467001052558066170230970800042044922025565855456865451837008683013668592440595558950541173470712045067217114689755305433978660878779838250224911103748919544032179002986727530886620816565273278975298648320823882651422997646748537226594074918819537639332364155745258685493026036709648291465973458853560519376711798925191069065083109839757375276292153072890838520457063058278549890440515037679763920029450611439828261546319306455355737553105818225393672044064957576001012658961644302273064990921666614484374551692438221671589984407050626452911469435148486715800679328625558149200943765607922504739918196657002710766081368891803498311984537446643066617664704593269065016649031796597352323565550782694113173252832588116769923623778476022412369057842684638406858342990301326749191454217954251704232911843833751125223533548902136211558572806465926383955334199199398700163580677810262520038399435592897960174660153462472381767742776631946327697291575504929402970770509188103915270998427483057396168341933929380648033662563755699045859286088852092313765842213549729431336457407445605454177152773432351135293184996439233126505215449515104160049233308923128667114836045152500091339842067160508676073094188266705747197283114040042700089113473581812398546103092718744375965617843616471062547424696461795410553920426616707748347954881119188945254662323408213384554559289508076930554260784797661555222314895282227478375831791564078448837498472281382965163584315159635635064513795086363440049472652739129677121721158233801211104155808941748961417126439843495133155646605195025120641801289204065918488413654058143233697903691436149521378063493939902118447106398852337279910222083793190860925964150852319850039096652597023209640453552636254914768037616637718719230977700932762247242966921496485194074213293596178942017327783006825500157602389077589572325137784091580896677780572650628416242989609485620109492130396851196566743905344688258643884844673443742279546392080551070206103180900868698452443855991092976706187307427302610551057282526877365210727341570000211512463880758157178365645476543433457702410818112448970965924566035275921220785796212603930173700545380436108346309521742367471616027605784691526434737919972484524935597133024184837850717659622183814103345154264181965651492741025355137617460333262752220062043746836225703578532588283248769977956525891060544157414313299428810835949273712565344051360891594442455544541656993161706379915433840994840508319838608178379295014930619444089816981794694396852694286472779346696271117355082793569911385272227717898019628097179757439416936039454417863633566831638261061777109166135876136741784194286715765500149625355499634352864295434149553137899117851503058100658661792247917499176675943841206811529504464272914632644192567584578461719248098052005383240930176755574051462711118919112227064904155382772143125437716841654953263155729956442234431220647295584790793170917855402885849832468604009746322348897096253634298743379779216887292586317304155646386196669053300349237005587889930809148799984659514395720657031535999593289375776614104248141854275231677511895844111051623264476834560323876851669827261289531597957823934090544469189847355636043198344203273146315582270440202652054236293173479005510041128003185010032350363250482223616101015498197376630639997292515416899599286010005678360740097362798473227769328192732464002125689031490911649963971192252605863975308583674494032164899864226949380142366795832952997150021346332221243996472031796686068419962406116636497798928426514864209897587264645934818642667485578464180691678979144637268709708415811038284238630285432189972609908459470689262656763939372675774761997031990925531748449044559054528185471718855642755990982497587989276229996831373864448416509207170902297041131158323325029852493748360979083658452800091137571192789670452403365909043533443118351410183803541723483499180472218284601681925649197257204924335356812425126786373931103927436135845692562770213257815834888886286156796032608116860566720836061558352663428297550881117692898314489547004964923965373874001047562647928199830038884312146046702787778016869644053721258037682082386830657906290922754013099277545517218538019455833921384369291267908758650764639018638675565423751779508617915805293303092737466432961106313301570444032583077604551686754140323360281078546320826741656726437074089468018222332424443254539743795120925649844810106470663175268134994314129793918559476705728708460911954726215739649406990458223340164761845082144502603881990425003325724832514248423165549617367332617446834504216543060380213467502230907335411085305962065561798481377721165943384552604581061493600322843096815164806408370616512099157488645865690652004367384509645301184930256882853820793311005156765531031952825054366541791551732063358554418841013978940574632028012608672893658226379788110196774303163229588849389251984550974495060109567805297000262018856037087528383978260867061519839013298107755506223193990527736581715006682872019628822141360555393797042832854370017849721090435636004496204144640307472971622881103041996998082829784709267857902097773672268221312105645675856875112950474041976656042392161135187106299579392566707678184850964164961049543857683245236082031644913196433023417258356341026958857520172139516955591864241753198351629142924861408229299086176492241564381366798669620370808615736601394102641509351622960657918597755682152032515465153511362271331375297623107816270469843923973416430943323513721308666841688082818590755307753748758539932123600962330981733298121789787124755434417747338364659742319459971799111833393659090543089865683816290413926863244118513281196782280989782627197472599945354310665765292390861618360729914062520084478323559754703558194978115364244498037832490201291395948293595299244895904598859634408323938231963655100926786845730592015335146449414232259881712057251325960667298943314231808128264812498053504591726847379732958398696669271606206292218337939496587983783579271440532804320084958546180676757184401530969890383840846094443844874304196676457514482614499964318601184665076700664813906347114615490831603365273259108885852029457123989406164594171985886705779254279524453997170461870450778221713206163067805048808331033196034186089769866095423388822823598709216364578236603657961189752786280583703160765649773009474845838092498427794012451999148404114900757591368841534520881732383635217571178264568749610798782045111670245406597808305075209140818435926282887412121766896787310037747260322389625759429064879593973427464977568863168706019594813148997595444396822966392778977497757569105668302086414062505063356335654861604101845033540808198657878494149464645521009263882706606090253506516311811783927121460062029353777693869934105751779143482098569211741973373904988463486772956540338291138545810140432335139216611844148196676147997867762929919430139124652640986862316120244472876858215717183520274303311321055274725089506521144787697152821845412144994976782289544433075902843363242581837581912309462017896533466506734550295565136500699583801011928051071106096351883697063588075450492387423998215036142910104281046879795904013948481666400946123608136131175491009655089249295437690465639850525916659511611854404422672977368329920104521171186762265980939778552304607430825705632272390573103806307452765367372185938328716972581506321877519539089654106672746381644289953460215921322505927282834440761659954712506894870919920608784761415752270892143155460244602137486831480399654593245280436352362510242414822115844300413257382759824642767194780597209040035301256398967072191701874800843655713606155864492968799579661133475089736169385649799913114539879366061933751238181765264054278160261493708476765786331222570650544256196328901392306206953426477893382342613968671805331778496984741987138279890572104645042603932175581034783581713633302843430144539084891461370521150250112077513316738341016562031235713049159391699467141813615780144066958616411230335007267336044506865830136929849628399064269529020707784615628651671353083165410910273320113844847777851179498167480164236014493411777536327549091502970097514258169040476279563637540253132890998783812032265379796117155912536052549056914299505626637943819392047500515012458558838162011751664236326144920347316969409966594692555827881490095684117663108634784940211303384064682675794684707097821441849765810649367590446740635564922217574059959749583329594637230163301069560346423701197554043748932940256017098623395868574174699047208975590043568294243691292702517216028205233717907968667002451217981210445623246123262603641452668304937526290610100183967190033239243188374855573339608157260234685103795291885491958081645763149761183510388048103641247627484683318417952051578534809792361975036742100983062169557092270395076585493282422714290062886931640261462080183864019986375352102966630454670453041705666060726007776365204802070684414203311426133972039305810945200084547371491746671528462512660542063368653941969705495104286238247384258131036622453941885814443097571889477887232924777089247202102568888225140359180041512486077384130201106721504506182727497944583385612397248426751479075160229594374176649877586633873732722711766613835355657229539456532275998554247861050947694528508043588872870227835493054888909526388189123847641015157933958973145498885826989814950110431194707004832934137792051462438975799525222905877523309007434370118405827880356622896499771959632243375036396859571067171625409824155372608357520304469469603143405415469530498488587721977649215731079183539004901500831512717660374398221684898487365724157127349785098306697131945352971377749008371931474502439550952384218960528866034460853966851847141842365336377220769255196237842331483540142130234215616534133124823301015741146887583748094039486863896425072154068139024425334583251195638214094082970119617866195732981169159918746025503890855707194628361575193942050057589182394470219738977546236158029322715603267166187553316620568168994895351607627467197779796887591554242817720846423518987733466097002005356251998965438191497603954703871371613755705332832682704749497589675729960501622108158066909027535486453442121089346588160537272098171401897167080486132988231584614810647477914697873710225575831016774405841082697022477903947864891540882238953650248837399406218103936499709586270127168712273099159568560497369742868300875699999898819706245515147391848167510617535656349238763968591237050631123455789365389571274076180859916059259987553023867038061265311622120438129144510382673272006267706791448821545524633569811335968243461668028555480562025805622840167093300935590458077056649656912400943718976142370147054567594781167043408244634301970018207361228604514166205547448860844669991941289579282938195082416818641853651490989696498227089953442759013534008401152741694426975495397470759297850418296745902231947517842738133722763273174817037039554610448089169516040261395024939732565077804795241297520878623818335431040922176014918881289436296210989142044080517561645125380028583365909175207360559298952990912590540635326312510604210686196757385154478288403184431187396476621835697523603272674569910650431590853645308155261990250692880554793557451969064797359480192300245763390813117929384999396159991720576497308147951487093536447169472384180183680830627679318952677689983363592447329608022802845749904881033488226549984063387475316754287080219187168688390341901842983314693495281836177193459341876533753775921067723434773460777201659476625181675808715988108687255367011646528264414200728478158559934143310859924629921718939464118499408161653321724628139561753796566790708987192132272929833765151093430224787516508160658010223557856822693714452607359246653279483259961883840145617702672090064537034778589217096269398817321151669034681518316923484441617511907907924865732044023991141953499871239827650726764007181669618890189314260274198374155558575155787651119167911929489606285890544517395352456948219943746945609264297119768133044028053501931345586173855795074525849882288396861450907434484598233462090704211738855197610743874975087069426785856998343446679533817912232693045830856167330523243735371971193213900958290554818607566349447550008256190248366571783695884365078045916224666306438238018245851100938392720642863932417754905737492080736955534858678750832238006000507163936506474404868082851801740772126575517776859226029898719357516434218600144440965895241376466222514103078965996027589550561593333982345739250767423824655445493430066402920500344171171508169650644672639497547571879053496141614167690110787348913921032578900995069141188574177467993969943504807397304411349458694328946357541170489750605323742113406164142002742754736116647253212512649136869807690745670655836741233547316558746252736991625719571788018612729182851180270661660497513749799649573405632009154608896989939676794396605669887758397328751966141567707209158665071559485406274568210770689426546723596720029447629450212191591073133026994028376294183410871612980930127923517130208433377278558110224324824446945732619281548985613994360487818658224841497021775874282333423739458405427197564394583374052961264925753787150598336677414835573069047044135101192665762601459340954573296160256647329808682881709634699674870181288826061411713232078201197345042238413215109460990067830310830502118559968826750785993456715974291612700195146911923039849494706059556621393207845753487220775101079219443060331921917870803841846027716103632784759323150259549320211907053730944751783312585509230670075293442998062475808191436767754324341868673795713949454346049172427466625495874060453949661666127878934585392698620933072131412161403179416760512919119442223761159404124807010737492005095024664309476733010210319159560381971561780931481543997613278804376735693038288781168348789960706222225842687924330468933370678747558316384971536506937171040463761553974247352323845546180240479259357412125283189185249979718160501873678087745363266324226733926047361500905346425365433324322174182541270236202938985945907653445604826026624818994538392575467350965033224399978301889978883278323247218053343621359278909076184120725993361959146314839559555553006250357855220154620657160602054594024970291027686838163411610827066179133379454735974942587307126588467140668791885121652872868237279254088345197119871776810021916705904349616768287621408428061768177903574442057282306526538717139299688517916614588323595627137288676891008973835336922887860486791600590229974661030210970500973668117445057433850657897161665815365612646153854151769473168431556237047114560517132709943986935248727707859462418435952337735996693694949199983402395090248738381658228002846491251463551610786706981021080077246349851396558597344499015773611396418524925124957055929177481857233604407254715567609701285468006603473225013250994387742832203854280567247930279239787887563588942259522841315972363390927143408365007489038961878377967254966330866593898850012436696454362628875293000477861379577266705780650034017454138525266584243782282664271008702216728306955749566340841390833214031864753151557463569534350496634972755373859648704911319424985400708093383743393449521262588816019268545170990863812458908454791040592269783550003900796318349307197245776429435129197448728291041577668742725130429014886802609096796573210122402909513212045095881597131746793796642706329119717317956061035200851636533792338987565721428354119461748875164155894582564603620250447634329752704953276780218519930219179826770571332856024159862080831679173318392381106521369859733611431738553483724214215377591483554816124388621009810790891821583594282147302958570215949041641414807574516394995932773161106816790824747270677971817106660789237705687076314383777760762112349460330737603508040051535706243087997348325673765580784718483582645965684790864376081027166833279188524012976583481302594891009436895177053284934325085732936372516998824163635206572591314772770732237980717409200131046572114322268040648704315091771935362454127630120834453321153980776331434507992019708436864457242507352601196862284954088573851105765146000615994377208177528533244021969059039919355156898216366315467131804027547758377920826783704752165756104763324475973528992044205348649901463609672645014469035079172803564416117236779490595586886759363296145670260614119662683419606436472019460260185327457987676297915076677160710811412747635082280606152907710169161384456431398819487454832991080407506645857366198567880899014945322388642111378543721208972841837223194771818285871033282609086684926851977352020857002110034658569960314605265687535306453646258967640181480053999869482266453945241123978654477605144067478955796987522548663948954915164703809350387560712530729536060473606601526542703969936929372218981768639682610246200345527985170139074077760331203232191312908422074072158483009478055390929956396325452743996125093332640561488468338948160849723047209538232890432595489497396800518048495635590902351378243981282767640904201070402501094272132423326631098785860188179228404488748213826144770248546553999899978253814411022325638264397765451339836148501487741392238651825908013928456259331950612346955386549753011905589666950904852783836529127224184481690177016639570958353600717064320645399865977567034109619605717496900908512010795777544558790258804659035635347544238978422497835931761985362720089326215830741414787665664766984709918889533792929369206428207764061976872020588195387913463219346362447557542419360671089909997436938976614187371966566049599198583118786373384149658687535480002496157791565441383625209704874747282534896885388763275820971598212078175581294757250039232782701591515072249364893756681374725425973559532581818104743500856081028668569106899916756197712035037938960013371672078846103226856154455612573957746885532209799712536029585125988952900582726918204725746279510311796123849054613386065145386814178567312970029698053786857613237892873791825188026868039180368429920590470677092984239396507465461268659909566964387757222151094238099540040294993642273994024405932950240948140191150946614076329699082876708753604252146711042013652938856709086699321724005179891588610528853424596872723437828853747133314986039099400369392042174340479450746240428869313973862414191056528003545323443019241978855972167650307694844859246929677716220753104523472138563134169924800871807881952606873526547129893752914862555321287935665793058994631791770427393819517561413508052507222266718265241194328582966438399627178284153746715545841294116910092149249678283974302175492429872469188814731418826184215261536886901834775012942281057265362477352912363783163133449286970340359795863820410366479654467356918666988675678491702500090711861115725869337540106469610092603640198954926643554753301138269216153661357901921727237760761139551485593773191281913012525394223910800762885785056034044065686676641122514887765540377781656502635077605185583254652557840354849579201883749639167628580300162871359084203659387319725911574211404763646410688991604242427135845905932062702518651594878496639664329519567092876729777931808589910983477791096789989581140200909458289152251379718048271428985267960189735847439902653890587662568756349073337716683719715252162086037108358604701385898040530733150440670018614914804856008070089156187207162746945985475950748946970747618893568766643547443339613317574746169033511976402798677476057475947338347841317710816315201680428643333359444818530988342434429057627334027380919603194931987830374349859559529331888273858169588338650884483509867318456847277364897952132348126921520647149998169440564557056226252820821584854272369475248941042835131063116805664072698515378369995265772403465820513857256987565208034561999363541149443955207921518207316916983478791668802351006436491811934063706631325283321725675651963043486771780770803092223815926014429775533539408734354690793606801024857130305722532975362328569298113066322069684699101382046351406039824739587582067086340154413954355831855727077526626816473953440421277612005497568384902902636343134491086450603284211532293949505287563282623635519488553216081498732000179923272886463042548121756241543617666702824035433293854978358455602255892795625448799089470007169748279930323498641343845606935690030122810381698634523926713572208363669825056424570035078784036927292485672303828835034548723884997272089173890848571624604361717699469192555114909814893861632874582007461312993721921015426444015880236290519792025377993951199246044085034585728169378398791397416831482862048175313616534592848069256681892629186479664504781039427247309179730777933034491642549395834747747865657445026873993404088273973596813123647212740626834671863375075772937631660134679743590186494791559111610933864557556385743765551735436269288765610391194945047114057799106653024170323430281191196123754402522939405034123985985436842061316675674818731631317716709259963086808877498960206759580180045749481431998242691599394471862008741231046661146842246459097962228544093156634970197533036823831310978621432075680871960563451981048579029574069286599741066427280445665279050162650777841742051812702823999706201666630809336833887725785167792768082345482170432298575329300896524635702012278250908100436728577714269767726020052897008991780269401642570436020153025604334173826929123764851758516092336598357110480419514148794499634920890414869486526660671572719598349161255149568854833847427053042870279727613414070578910292945034692714769406812788250520337463364624435747039174445789651809335686468998342446883733746422453615927624028075058874025907232499661827062331359377240804585446193463144376967624457714474131039776903786597321450666811174102734127230235088848740372528621889206326486957811884977892690521900738694550146746433058742267514946095797094596089426183911719929421509446185537798251920255243625252505892015797343716232532051072773442972798212897869409831587446954163821931697182870971965189556493063089841718090454995006000224456018872185322094965412960949159440101735284494830736992892713635960138735588877640357109861553885954882762986585980143077849721007832286006702302240082102625933664517462731161597019961192302801070954004160790386561872299657533245030353178605353660569587851295726855425915522516015246795249930956735835582389728225397738550635091357184989385728352850705535045350438005000926767816754343077999563970341112265960769455041425356581448368563044807694529049277105971902575187784279062366093284067161225350065019275407654620173807028809975323165322802960090223368505856751326329121462930797143323510144350530911834303485471385176971898847054365897985437816650738884861622455412733820998586257606676227598615316861828890258451699239456846111794353218608905934560654009641835807554419259784002874344247320145024941967388445435425307764326309298307851941221847948702797029468753836522540681739611728169736605341964011511016642636147187158884695679919939564798294370575927593017697709692546547668212213937083205628834340542435410008029388162779167572386092047359473544268156680655176361697506199904128233711620124342357015107525506543817645381385914339467326861671250540719617187463711088152158317103753248001891138673202798390713503157354124588904897848229968089333777163083932301763788314278135574867776316064556833057726810823880125495400032303314529312818782743044047532000260302324899462767916378629539116667268373048018147128748080785289367480636766243148899077446163356860329659262429533614350801450777045307058077274465585225149147155300146482740865011022275175776923185590515212530137548950614226573694993125299734469880213791416922532205709707032261187164302043473108517499439096595866246726961878856472382989808177396549297990315587794222167982900508479278147209762017444207070952890109516668432823954469380595669544808836566356033311470632589575835536947330067754411361483368899457280641730188751386199267820036255201763572559522285306810300492356458156928549147355678255080014857653994317886493049345695494635671480756731916974263015602644416795852598124876798694314395791636546595877233496463597322566432606775336229908917499508713942002801774618552049059773765563449545497276782175171703966029268937470637953504943435621816935186352308865214986591766178807438424461242396562220103098038094296418985256981524187432300212608991196305060772696170687465057905656815581885227378131884532900921032648004691248185396889520921984834415061512377747891034694484736153700023362576710243806944071166160093624940494650753343854312714320483986073710074184431016848978782430902842640348713368930094495338577188555012341053349982600200068521268176452550068121781708475306609842126873132654191172496786206105892559817718068883898229074430872843850427069644462957331377829175120702890542500257589024948714266325280026622455267018111606383769750863579123556941397164864896142627995985331533231673660965050721193713730340596134549179618760488315975030555370007508280061528569410921444286305473377382117108126148723932010859670227974360765061280848741377539349789858054717493052712919842140446222929817734183745592528506017724069586048019611285902833082509838439182303402902130136984992373568966536076089707576662564025845680709903136503804937231007299093121696923654063761462504483733601281434051268516024556186863150972693677014630972124411477834756637300433404723165859665649386924446994942079447777193945595213542486109853416703808584073466199696277762102545890439131049107621266169941345940310659938791361940182330133244200052475888893488952443590755478823266353552350816362069155309964955201848526757295640322665851562967258379443422439113698246835910466628597925718286153989863573990597861875103207339081310487143579796851425867722876567111840355454923720859230205436385353458060990858024695198524009252062073287602050851489270543780829264963749204646579959509260558253365606989619480155746536713519574338253118814073894394291196952164224139037494659894886432439123574261736363413804669835306270875393990577435945267652236077344687215844542811498745240074889341361299962348594252150619498192358853620809457310145400227893697037410360379324185007809968886874093086278853146493313920842237584263245400047535816348962027107956864286530346651432175515889625758551775403424108552515287118123713834509854587535641563688638830003400576376685962779177933594434216306794948238620108349202132129524104093047807918544824061802279633569074845022882203399219612963434733663428429254403618032564506758192272788447937601709946852888605417913430526677244688509662419892276944872741094044078279976984173842498454911980082293004311439310216833299491456249953152943012877402661795201076657173658544874853086171488148449781977243076262166934848843243707966295976421626693204989284888299789391080098446703196295709266816633438974472187307737114711593086125952178200567406347986633358203782268352743173347465813335178264081490869052947354347089134772435483730979467176609559165880377573437607789596379671307834573296246636872077377016574006487945391617072963982851088488894599565028954361079645285187880986390421077864095809473910915595102570516041789234385023977276011761803954422909090859286794549139384356038604589893255318918197927777265159976801755939630287044306961185489599142874203753459860791203028336451814781022888898126927433314280666688109340204097737030775152892412121671240551512378206311448812075343785090728197650015956818435488575168333495965769614986152355283560581265862143409081974324208460207423848796507611291745696129424835194656456560593993373975212869582573145254721079002384269956481764870109320221791441175878262295134033273977291807014906881295008288829077169759184926020887834198340360900913469244767320687980324179486102494780437526600947493172323804127639473745360235462364797044834803918730559652738231829013809422154379972736715786094634607861069645848297948065628396120408438863685747394929036601633998754956642367125458078805760904235661877363752163695799970417512465747036904527229364695118429241389373670070269603919681090380149584864846327848252486384445948424508169112373114306366698359075155958133781977255131169367993540575791882491170794814490013867628732007111164992768485687128729136355477945366219565290201653291317695413687642592294007941231045024904949086199797731840779949918529741513977940657183579903522514862464005288790625665276775629454635922562154925041450060571968037405533642634616927312296514548894863123585914925993404457911347745747478274123176966433986203159708055452840995700520853202607083544706697870299591747705981421120331291000162434091495400334377493556863457115645716834669287224193013872726870589305595953673690345522419955066909980675611311786405981506349931895044462184244593074589337032909674028282071714822421081760516335746408902805201486618599061628690637445123229099576889431018833999106568807108277039179684383938184416634844606953831907324821461304781147792150244371480919780076140474361762840051197678523319540443587819997132218677555168697075633368173870192032912911039647686624893853059548714975153996427190792430905200046591231234947393054575811257619095651322380934541597844372013480349952631067716447755070389178912561253279183193343761212850009008477738087654603325319752573896129463353413430614321541462930403820979435671436065865971721802574125573182739688887837159647113523845120027033352629800027712855425862752458961218239550381807217097553547347409851765530678719069462981131661040485030757029242184577217048699235410558396024645992546852130713862384399513054204638380489660934595309312296266726059342478432247861793497032011549396972911894994503892904023841759010902238273720248253748096495577241758151818463737200743165673621976756493080706092114926932014183434543854665184696716837128449593665339239506664792187101410396475045113089620755455875638073537302964291293949942753388440545238652212487879884747823665188822151729039404682378569353298993083414004185262168130303451106580980859365195288780162264800459406628600742807311786701776488113066663338658920111258537378388845059827656493173305378435281364760956159698456518301129057432990914261076262291640872824544996984691755597889334511752778524743904961800203494805725024863658580724401515311058246806925760523961006779974883399191651174280700919367025260241051582460385785753780622453790942827161904118175624211525535558953399824990136736390550755677223507239693280690634778525126890550285542769954809585176185452511859682982463484355200035624951124607865990977606317453832914655083126741859061230641348633680343729680071747266001224054018894914280355865472059611118206230328923106424912961873974996490781890305224971715333124027215284082900887331987424843239100541176078935962737844285367729012274096315099257838576142811528301768161285694006793516427712991498139983983200852358685208370586012323104584996441797693789882206139515004995493492904976007189756319695051484806541649052381398662209830118771052529413753786507133851758384157118941977284708488384403911670704894430284979481383176098038313073100789659638921921335054870271780327788505852489195317306378339284277524178044650739548796447806819440663361726073981051911793658346491908917884205825105584610550721399946398056431792610704431133547749015529329815289223801725246779283638423375885009218706438198342716469729006069573270807777503952783486694880280409352921682563845149295206924418409780537259378906522392189857364780172171103960149375810132958909149248339770796257735766296428560538917376775447436495199527323316293309719806893354951637951266500314372899162509294247824796246287169627563006003228488153602710155684685884996732736424825743308265874811836126272467253449629206530756522586246800724820729085824218921299641054989128743164083153014572911571514388149577806448996783994551905495099073694073913383660395132518225301723842390943513941873536880362455738457087553601670967830103401092858375894505300962867098235740504084513042435540431370092251583656270143987857211890614785725985758162043117580684483962168416206720793627180120765390609646103534144491616210691855785562706040213591882670301420858282402011093578012085590090273566661060532069685199974119816005602715826401397553380481695784031231014324941128134375490369363389926830661930067073784077616399317736460988547503572905762784252000424719598398637588823664562697517695877902748892366504038517064056370837782224168740890170558752651364244963133935329646171829177283095232850004428190478312358124559500121057144215251259298750820274598338197512112273042077437431594054663526359373478272458665584810287770251794676462438777947671966585431218608375138934765115302071622004635584721278498107012019161383990438090743937736161101117899546907191186461651378780413173886307953478348417267986861385497318474297757096702822984718863998728288572344134394999450626731931837847750197339432071377455602510886068097539491279100245849432513999579250671564075149479913220354204691588704983569426718921612332203831040447857620344666863602547125450525733275179219720583635526726694359025181890222392512970787340788641508812599633106264145047402634425723883204800467847177848040977726634544842374905354381957215145681899658850713598964112614876166895705587724764900055260120710741950703106746838530372872050634554399316538840134355751044247158556064975816642122128866674142040690154011532875379775736276558741760326232364439885753265451279076261082989952490951780124485579423105217201811502469385941891658398900675920917468255371167599089274278401100586651264525988138088601732811159878211533088585904249048441726854069273742894432979587649451279833338075255033078378785525969536442542851031636578253624640933572073562576179647934039841784192718222621289546558426313552378936029572160090343343317394833388048118271636352884811333463840251524750869205568142078655820374950982708740792154424060153079992611615883085732244422770629336776084717635931778707488165700407382340193384773947473516548880460218726576707709273617043826181415037115651360410432074756647849996026742158504518060360158609190678603835014145841363942950968135214266873405519207956779949623476021661625866502703952521707731905522212455596418753346763396180477177201024341513108625860965590798770645153252730372280376194472745981935239907011004132569216295469499769012556693478739424004526300323114516637378546259615536273797601677409968099785833426731615939683265114390105614075118797214197712645626059162916309882028941907585180906179289019433457713608104766296550532205973810341656474645587233122991552865821047903255323213068012208886952871476822430075879928772693776360015868683623088142672453263175067572914951998128601117492532423400549118803725709643239192612280172867462563237916389102581629718756612323931184938717631301095814720429770990942077262355869844361779778481025972333768736865382653579251893240799566240825701938099970064474322561743685968678175529229752766583144913350473784410339369055988135320509441520325863281149294665960278577683370142486398288096520134622521534961357595853748645616317363243577750938013850506323123924644854915418889500271035535041966289900642177848204869995404973256297782841405489199616719300376026743401599417084828004125115052445920061362164927816320400243958472807014646624500023703868172229495715246822338377546542073291625311062261325319131798926114849859309112811054738139011931800584586828067263414539959388086199267156736201280745869488594626832560132544169394561346778749820653639371896510861802132199478512254109075737858738710277723138460108025360753210185539953999802545608810912465589038062348573472503486172584159440398599490734151182253427794720883574002633449077692532446291342755983365925470359744036892918847298557456221615094160655668991431194955233701489896832679412992767032187473902129725586019973151990639197849443293764516673928236182782422972453626883075557682031889105368940363032425901535996670873012271866544122731481054898432143878186514006684035667679127625157656127096194895747544568950784347338794368564860474606899663576282046373343105570594372861897335074291668108936436490784798932727545742672566414571186723826343011338957455109445831439926890821190981953664975961219114112847927386465279742341397483392230345488548466463207997384743421868429769910908488712974974217918797398330345329335975507016444214519430873889173032847543031028551777515677535332492825990678881812204342327569059268987624039507113406436737026911814158769107983513270087589211743416879150675201983110080015319136846186169745308475152809391273248438363501216910118759725717177734789776931303428788426423506462825107594049793877804186353038464929945238282633797977304431688757779468514851117790372639153715763230437361472825122840720126104476287760888681884186058260664198116129066846362433243680338200880809083604773704882595278350492919914689924012255982210956077032629098683491220351841919485718477025856361260273340615352059805737659132832610920038601645953340174064497739907772607226343888103845456146045058877726152584490294486760943659998217159139529483575788553893259806712392375864895425967089367149114699646761087829276585112840064822785524403984900226501449313846762397464809961505863762904165938999144190230402564188212134286018852042350488038919309417323719592394674736860791391676670849104241123393415529214789540940409831796930779036218661673316196483784993716601643458129871997676495729639813443230438138177662262959754038126307764390519647248564045131439761851329237552517201231721784916471702766208296174018285481760565569593091649459445967957340357512022509819485797267705462745575533295470491955073355509385543522856597096255849741088521596572024119040713608273044429481255112632075475908225207573460189830043268754064852405125187750708832632840706829439055197582180885113530955616942224622772909715094185866668353343212664334487680030690370093749599868388059541325451967249102944518391290752400418151972785752955112428261698905022558515082394771083818075438273850309639585379186281203925909961462514716358608457385633641281713949239793603720969934712910169722509310800551963559233869301538864664672106904583623011280793349251668557030298840513928016846299555564569130108935486474668516012240135386809201744733310930686446903127318893469837321415565990999165295100353484991045256288954769361767248074414002932777128280337165747308682935406969181612704870296594374996822702615691069227539274650372400564972692030901027909838211680675354979564310488204682513237243440732981555866409059893340160871952951356222904515259794425083962718953597466703234790105224068704007544339343742722196317774162919642434718525023088808029031791063202113416433209076212066539353618111960753905504372399810721840181082170631342782038138722392634380818022128356350672471292988441584851186123300341712100816071480147149313064740498595933493487593850304490925139450574067925756135907726047099748309517611153713109564160126268021375691755515798249364072672227858569702285265396731402831210732552472091130284127919085965404505386106287754822544477022867824570780202448709600174213513816473736808380672871911110949847217400317886051573132281628224487679665046398698405147102614754853183624187830209377868829325690474212780858159633922938970026992981984553251486091310269228338137069526417888517675632120031923110897502642785700364334807523064099059539696612473185763172463448841718269510858125682639939116034939561546852698138821023159373359167428309927220216988052705834374178244110834886983004875506382019927123100233506614820792129446753008431629226670317581962545343602619542038972235725606069830997503535118144669045968242406007575462142689255619764091435003858753653600622678676073405806626785371801096141666981056192560420423050723108514615036371620766699868194362979344267544929073910888463892856549457113670147284142378213828355271123677441833265455349204638087217253334780939125441915672890952382210162115265186662237632152861663959711285547233975169882135742837923165354440995422461860395883947591108273221958373918905729748632518716784714075858660607952260049817542352528217151186325902908024738757777769093892606191108965061096693083006621137753140367564294882581051571566372793649674202224470838868527330098131483735353283723323453261705111984628997654657112388070631416494518900707944715610945449552748717641060470406721549988667766574089257268601580624334898222391608741943219857956105567545906956621937046770169552854328886211724961977733584128153790519774910164238068291069471605099358029295157762989904778585167764581070054072656352167034853610781913029683811062911598276899646776266790181704949355505913588932030141856892956177533896844480062300468707951733940597529521764412325157970872834251357860287277988551791830816382224696236163876586935376830355343212959576472425273401232280133859843970782692517488880155266966885150147374898389558046352926064160670844092419411115958231312955213477846230057335777741043351889204475193772491944107973809307088113715652528347641371880787405478037322688503103505673229455158619173073990096145646248768613688673956988080702873831159810921017139293416037670702473051907811656182777906013790722480694051555946912423148598972939002943096040615834214408540044562398275418486061411964364158659991352914388721393619982384218483408124074588298158711459220403740810190449407639282680579979561500282923203549054455953745176170252254096654643767095849733808979417936227022253009411340097946258270892307501490102611258285184362238770510215308508093242927433075363115024469133531970862934754088418468796450571600305937909462042761962943043643790962517926792609448686447301529194544962799271375093486007906098412341086667003688716501078933670602993641747393943477232857325619259536957989101173069058648106071654666985019777519986012432445891434716119291459928512535569010674129786520808979556414993522119596775039395550918726667055442945318675470606615787353040598240870639729841133218575695512932417549015383861860029419842372892192420101844651057225170243258087253654582086276689430361280961146749801444591306474685428397110993156455141406958439299390770960266045925681190156268948065816182149573518138110460661455294777672587812951792228419219708674144701468304088743384470181840674381110022196814380826991939749572207562099579964755641859343094814958449446091684855652310001402177410326391491480765019606722313497357894547042598533871334950886876292241737451365276362082699924759115199200785476024046779807667426149822717766060250943599830901711989337922869671518949146667332078742664003431311004960111286686233254835162927887657660952502007462818598781822612882236141996815673327033705935197401532014542265639441466691433955624844969283046135062677357025783399857876827887048508689482442411664005192412567677891785252569847822589126041668991994178130344814279990835793727940323876175032317035626808167519864660633619710779223007345301390894018200362976912498927953479791074741714791868382398256413539945492633624840366486978990014846025002081166961305062387256630976346658167348109540339661775680248820254405592266401880057307168488930003326671812095918593671739836715530024251779655510302531476692643927762668587303655203216599339003025027305066819390403223333315529559428325527237364263622104290730993810893120469301496501160182306070904801396361651791000400781295493909843837696194025253212889774221722754599272991398715850525693631488555422509905907335202225211185428070326467030838423436760999813328463655105750451585390144693469399498374878324917122167821294318860304278644233794239404533633158632746466516660310311189464059439490546501678892352233637118056937010790686423873034277663498913674322329202293726067452577852034439110127413745027117107275679008008051864103661019706213282351777600306177839842735126380331208888846710762628890183442366264607252784757040061170757453323526834210801430620498337076746965007133500947480269823225960586758828341104619933473632965918176458366576492106780041692438323638944518545587382582586146565967883822756005030666967815117690602902373628711688332919160647378201563696606835721195027772852014190271237618544944167760036214481918025617448588330246832414214088398057908204826581300873804061974567123942271504128541292181819483077178165635388624697005430890665224195944791905194778057306708531176240267394194937604904382496951109683345563641636511179947270548398037020261848976373599208263504171200283285140484564578226882886599699143747771654996367233252850249425175753090587513770806908287534976860395648644055593293907195464582025785561318070611422778969215744224446060758582629254531436184080030599926744173941979977638239949082333462374781503134233835256198317397688658170220441087937142501256634968622223815381178570558998965266308203548294924210862943239516509303633990934809566843937163360212429378074985058510843751353377720772295815741833923402047615538820276760700982633853214091363679851103081410396522763869334745626768430066903778037085211184065709557166095743806246116633431313146635805873276264220523157003834441357979539268051531866923324948738967204905764129062248898817278220989770824872069838726446131880055361117596167467986564282303047036079461527004118884063501468175390468288515740092445474365928123708276692021947816671568348915385662448327790970341074629009521642570227524346329736512255433240793864109991303839841285371877066278920817177255703924417227633719060082354120574569729259049365543290048988019815146825952643405825835691900872438055686107865021976794150534064216180045967458323001502530281018210418817919529450828534940659562173791309061275715506672187663195023647960611399189807557989319510332775565462422623254616341556405024554522951187387159594656632083721598015606239208425181144798817697634699048524163170406213620113772393461398454279601646031657202288229654375035098993353138180520507304734420556903358830044055875497067298538346237303263641040376179900153957154941848063068864724346290508470009761532906103685703924885303598647778213339703655202579977043144583343303609951076966019240497562657107471899577625645433402542887378529342774067493574571954836739164558240351739869385380694453877529795554600457440152211074402825506912537462246953242401667060308777731942029522489355578369110795348841484648363670362892586903909149435363957767140460831234518183881356933973833157346671248900739914815517620009625705615792190427558285580220474242597980272746064086725605280429148081552053143350041799512401869731287683400394459041733179340302725656120394769742269732644273976493820878473616566318531467928126613726089686903399536605753416680601462413982536116199044195494992150271461986743963328926851880997642635992040377142289406436502649720182125088924318980929653781903076072943299294512150370904131616763769500749009788344017664104510713373315622084497010782243622240756443552560923185215045521514998552134192586149950917295813856783411204223321670482386047630744592883459260187238772316607930046946339385670897058343193582629234925837583872494282138654065101745757471727881771465485591978608982683852394580397473919470789179037927211973601978673298809389821520421510623243490815634387008921346829603007140047568903483629313608083381556597607847261076389839645285593644645955639031696497484782043607752200292429181729248038403293094773647049863335315303697950354883777095040793753587814161285638071426834007515065741427801854270406976506473517225665972521499221427816046362407219834030828335489371167595653285202100602299505317113833904210388376223748483952470579239227841089206923646094770335190159808144028317490961503627363287381421390766759218841193251301765052402101129322506894580705047504682142545961509538752054434059217941792422450574612931062896098019099134490532865755855580696485308979115817064747461552839363907194259569944668901344213006102798598251645943654397972334102705787602028092820246895716423933960823160670019467894320621623268272733207925323109927862643665144119811438787374450978216758853785197114334590812558040767148606580122461111622511954607987783543561395548145548185703658063770174767239747540880354587309140446955199241331849454105961483184501599344306709975166233258019947654741332434652859163841341272406909392641216063315237183651248164291095821253667320775663956244277700342317596042802366992654380277681286985544440294244353389155230449648864435929834410953291217805751564534714039594403217225509311131011574813424385975199775801877460002654627139315570758866974320814190309722576864265310489257731039864780153345525879662402631204332518174975179614185417526939963394884888198606844702092965984501866921986078433165310923921050670294023017137509213692496593039888178824088171073474309326336576109279484133152078268938364452026571365111730135673155505270815657328233744260824531841410768396667641381825074907228083255126035797356853813085320345987010655989425067741100619086874838852934830988648587047086567725634468455451370931330101403124029690043363828091832001838181765440899927419884285888875978939029625557505961890631991245099942633446704186875447026640250229394797172969370322718568629512726127775853111709630420085019774670412682737763360457952913105712916166397641384214446287417857160280814847068943114302120551786483890805791126677631712967559731219690592031747407164059957783289910997502060941473048217526098254963571586555450663052005589790861370555251507480872955498752552901641790953932306249956760583991641708672109366991463827459448083354210073845519369462395481275738846084724915044210682064026707164127939567951169813421669863363811434415999698420765812303713927788004738555057550652945569639774219845195596409376960649161534615023351018534318900089007168951337156835631748321597867108702403465401617350804792317208214143471313405874626747631944402217292660882685253539689077783550658082042602379100085023356051934128731825933911823940207737546984683446190990105708418870116433036332296898719067555226705838148415030991253990197710093865225188646076212285001684412652343447756595863602765593077960957250988088559963979072890513037112509123100634683504809258350615626935041342548641114120108235380949888893882723103096049104220378601449522069556706472097179863321535381027491408819128333630339606316359312361193197657149740170205406373160167020475317817235129952189706517827450868268072505128646411277361611424467805908886048364928963769972510455193458662217157675129796005374650670193667654647571896567082024614015801615648223263390887925057050406573108132189592622496189014658188568362361552619679344142503672801688965006405723158566707904759465470073956552922047441596811378143167184619907348037129057375377768477562535462844482961821263864699219041036077114224772100835801457706059499327803074522153255555632975220155862018954599066158147546273357507048734872039517654605770281361233423109827833912232308693911325283927306165605656276793321048289311342917020952620321635202009124883913463728181223865700712857202343783382502606611682721926305961425311554415956467482950429160570212375761033528501279874933685229129808170900049442025850191160876737774589710036930941074760552559629254366950993760681412086405151886653964890936043066926997106244488383168484587493639926866346123802954954521838557776381297206222380694398649138965246336351155966975423112545173710427283222740821769089402357895850082914783524950848904191568122825142520190198554399637155585581810709325399025177604503166019056380667453012509060288686789847655024306479916063844226715064791781058347169932429851908440455724185121556603113780497875547312100425173244905303470888211350864085440147190530567750690084759259180107307971699896985547206267052600543968416198753960511304699535103169748442709954301101544042057497307232193272031551652454266380390655883246711680865862628452369227294520377048261956854351639323963174535050368423203751822273387866084069807400519270595960980080063618810702234537173975374309721263804601108853156979121434046188480290657869344404148671108274638959197857767174897702719992343972014249825604752899011638012710315134961753315772595843168177934925228079451064114353442820669229081004436025441168133072073908796268473844436653355335839677773211822153927055517518383079577362626532835465927618842312498164372482770956337790906983690187758080647505417865020577315718526987677127865985179590849990397377542697973848012535615680933680946502583826241198591404595407026895218782569185513146826415170045758111928405783983804540496654788880444346764986742669161440779989662573796669241628606331012523447687718328227801989205594844867997258613862603356792293380420084724192380412807734721221091256707430655256794620143510775365037712176221083966833931971057418606119164241098989955889061555910274870879018311651523328533512950290781944623891034176766807811921244857452088167214606844620667971990660554681446396370256240868674710499435207763304536409936542662406702788049260669704888132356105917096813913178145128357160222068713939326481462087420835887811159187515829949430688438995371759948783544325308114726372983921090049114464936676602469815649757837633873058446255036361559103913550293953605857197474933794329894142026351221099857366335583824159298236405898247532714268129175761256506452498026050286593267231983631367562390350169114953802563949736714452157811540974569247060371487458295088996388303463378721404330219267801510181313062370919610485106260781524117966925306810881764885172077732372423678661659570658164222136955223992356623632612046111864283884939723982053434280226496291345980157004301611797314666839438529042472719884902015075489582723523314043176642982138961412014146018443569721731191465081085041330130612833533193474830173255296371947009904652251957013027684559623211750429550209921636352834926922625323011981227486449126440119491001413586446806622152844828845183217554339931796323651509134784680680974801015951641288526392395014939772424823921110163887750293335439618438692367322712988054798271858059450061272256442098775935490332889265561820191439316783789196904365226992285543661835853336048339356493056857713952900553745847987710402808961413982166660547635344718283784029905879969524679461439409608853409734112567638390084483833496683207172085282935945018280873306057828534302902998701266248151571945693701372486631823792345584081347349485731067694596303796476073544613609195007491191058016302572990255607903616402742484606791288732731324478619302590827345743398260492893613146666903125042177783772765351041037339327083254675254692178918392104965416852026132654446606112220107254987983936426684680475291550200508484606220413930734004070056217184781634603870995511176879278532286043546070474303285734963892974702866972810854186327435114001958970729218781671180950798120431288192794479169060113242062996823915416630090401879753818623565765115640539511685213072978442757325891157659921931573519775104280635966263636707343359746610279341440375968406232677002833670063768871313980621495638361381252618349351714449719707156651294071666115964402932276426607128151290974564154300962193868299441325569787921046811509451895491780703882767844403991681110664010005618109423787885775223799661140140343533861821460825819715602359469880235027918638945592681168169789582499873612227246815941804348133440952691497148138254652296595942761979793585055114287757096174078799334269249990813879954349449550784290206241814802828820090258190380858994639025448636334655247550952091277826501106455396678323468952275650576880232905091179407840687483410186718743350371918580210670206593700415246887218408607619921652061423832104336911647966147578177631426427138389229489273630856658024278548417704805731786644045196536105758531425031555874285803624014086790526485442211670643862705987171917776731488167939299783421398076886911378405996359068875374434676509049132066869558635434675542660631163628320412230868633404815517453865107182669105642847215035194807754510627629965496496037416254945692096945631972409466400819420421922985262850364879987604807407514531788077107802370147742290396054771094991620506334385019083084113360463981540412300023553682301610606923233541606483104563410650529092459116066017814605000024173178926449724128060093620318035285262679115188204475153953579553198501529837701482256746659374863718226845214625633033725328851971402830352198833938689140905273427332001835127022095237129101067661838704476681195846528457277579019676335654256134369346857620757239425051920516418270752364222777824085076797607886672049834477302510943148173340458346983570599453364235251016353657110857174604508704619494741318866425250014495823656689203663967729492910754159592382063293413864504803303432575338027367249063988449371379917212294008014066086501691379775718912636178380339186282241045962570875539085533810939888440233119360477393455856533422971129032066613664644810357420371212088037434468602866442051522591023081989183438283682479577655637783477953097905543574182893286963365296757232653939504748738006754982516597623498956658534150224002565054491098024667248673780756678946952674984524373657785450364162391455824660620536998779586123037619378688893825927294726901539257782270406887781706928753996408430619700211994884734928025286197825766645438616821954200658863390239565229916366459744701759779367225206153326531827576999163274804722273966628870413001451502902540504677077234100828968281696126375060331674007200079210423223896910048270933138615895103777889354877385139901176247913138129853989261755969250823361851591062544217721071252529977214650763841257713745265557022531539597271851468797783397945568814174428089996696826763077003911771012376133822344920539571444450225362095726962184429396141517608544853151779595448056128718807138580665239838162489764256813987909333287987247407605684181106787846933362458038827406717329635274996598334289043223500511044897514425480701523884107116060498088733312005338970137723090268583973200173256789666264114913054829356587926687741419303266086188880921183585706728176368056112199804196610880122734449537187646621154830495005140283001747883617920794760991314438139435003086423521561512294029369715588495431943154848893033005549456088252638939777665740850192379522650178184774228634803223585163837870879028733581700029263605795831977050011767332694830073982127291801297275716729366542283939857373637474340531280597635102837044505619160284297875533234472861560115183517944234541703771605069816134741554915626344836320350697498301125539310663896419152759982077024925223253919757532439182688289855628028570730290800145986643647838032148473196032219761955850013458337529604148842863240644595131784274531691864980198161896978631546217477673793433875139562860442189841620933631583685155359213389522787287376437526699279640157901630174931317361937453997210578216681356503298190683754563115346718088647806972949193202361648054533316978886094026848312435703931723653701810063016231872220966072158156343395484100983030845310012649931101855199367118753544643533432581566385483691009739566434126259534550152759730877126457580824793578478707270404204790349388760742014744446669398357988466207165189324158957743449455064686932006367223442554096968439580404641305727418228703529835370912840159997472955958921106968410473771228475690838160244882789642395941098047597416047836005057427389698652751666032825612446770199221507439065693586946440303987348924418511002770809257339534935657910937330950813410794871088116037483101801915467572520706058170165368361163495914116575246347942240308585117595919723023404190738406257099560178916568535200021574252416849132019185815156691584770821073680399635101488979366531259766758972105613887412752440529766934338374792877169032207342915441244300096708252350213359344423481412879562704729067357789335578465435067199419979965487931165369653666871518819857524469289908510318027267406323279964256113951517652511058108617053594677314818561606455883867954733505990052882430530421944394404518926726983205374133396556055479627004525160349015735063203539172128226996904361171981753335669125794750451744245243431519452710768946656048078384132920620546964271395952595003346345558695388747609891073474726641185324033951831294300323910831967761552286649505721782003755430922177587639431129467676465067693521368884141507772952835792383199913263351613546810652081328411071485985848118873085222263456686467946142541336609663916733960856863035770525400042498927975689488932574800726192202142194134156808376301067228965305621585651437818413490818533907589605906332340614332087606157263491005367520978564365627217388169557360725686825028199596432409049058206008561224120853063062901018276839623331984810980223795938372850917165706583139876033458765660301881322590410895632473662391966830576507089284634829309602589218700858519735209168566408371174990576532712889464074172737108619265590331684160304736073198651138269159230074072655120962937597960408477271597024259586879615374717485295832499300138739147570362999064050091731223884778021550294569734154115462159905589183326948425918251230060990045947975088848663653158862382319785315420014132279044225386080646795519525944117672358521604817986778873485281674096073885405617750498110056941910140390559955788176906060214188576863002437418877012788308133818466905223664117588266603421728713570351280058059376123749652022742732359008615271132221232046338421625512194553232921814908547559210094741809344404253426396382396474307648283136759763110709803533981039533092398151673927395968394141312754729204144732565582545086159034937329601938698775653638893761391701067725447490792242180194600856708248881788028318424382660957572610648062023099845104953813983216290601086038345621124252197359984124060194998021129784315148108529791906135198319881489844375817812557103043180832720202887442842712241088099631372412694311573055754538818540319809970634407170980371077780244154620277845378819492346857063885100350858452346580487409641736482930015648427343236652379230540499063124805267182093703025669445697447566084039520324154610739216873961996083316673711775802664861942176757109860680823112502713089765352211499651439019632456291360963848277831315408242334742764065342605214184084112051394224955505639247506881605709626944869925873110832026160750663951737093311927676533195034575927868358028689055007388884049285527758375870739018340745204665816695692744439426839773132234616384009949631682892841830144141118877946714186407745238211544500570801428369365808484331219505362915541035733801076976857034951760763858376051270389744002114924135196744684080069087508568322059724762181632289202147957033545531226245016815999117878849862553536856435435496499052601678948325586139532226577706824434457800572917721235568748815242114118464469456782644367772989539268294616320077280585306762697279662014714017507544405364852209223109568666915832960437842014589398397070177444489584506225385663077191143070083380488274458249508157454196746219293808423372027436742425745818812549435459059061904212606021040378277789645086358740178898473529038867793490915621630752200444180691219512708651995385468387162124094297762836755708702111597585091095839622209505420947100748671982550007986176093200067227071880507843146745658481861085026241442496682093528392996431455488110168338077826503151222031576762151789857204085023136488622928269339002780204043380997679480180319402062712161238435230878662371182100296322993827127593691818574507698327560918490135639635206711483589647161331222191888429232536711653224643954193244936491690396266433888686655866003401883163799441244895424159922499512246328850288382020792861969660220245046603609214102601413759843726491878471120245176800975999205340352853296658554508211175216258945635162407538159604875301298963739614846044257835309084077014390032448201988787681150678866356435525777348566711519873115582631825352030605032184923989845320509349834082634893519370516436638519905821122106061342907443672714717246532991171731744603138947268172944901647896825865651697588969629973032164936004092663991078010319568171347903347709115552582856486393773336871989688776378796313647594741900665397156721741151570549293273841055382254088606326758561698110697336385432435149097560008113977541162958764890534867553367864904570210293665397058530891910961434834758297256919655357039960862008487912246477278160397453443483372922740292642414078565246900626336668232541158474003952375381794622353937808762861416133593652768002046795414422837652822584885642107902414470445036083270855329918415996317280094014768873933695758309750129331131133230057652493402050134610641409018741164470894074038037347794297392233932168029354931396915942770714548580645999842500819337943043406707042400874978811990661917459291117163245707088440454443005567605595044917693551131608315990357467750777620915689177518414246718899552224713995516018433456400717829066152927495276661398514532485663549730465924601630870520049026352656453912740348237113673229631809647619027159511022322169150726221767500086159864034066184021735628413014698952643940442203826048760803998167475466940662160539759329087287220626814432894154708046099862975560750840925458424842984792504442700588568417218275930911287337944876282071625695366312139609423964534371209433981714579666805085265145526569239002904449323984325306850622323611845427655624305430888260018357528481593253196780702826289468070000333542229350264432173487710256987715642499172647159698257606405188417699620625392313597437650343614276147895416476847474071435722421595307205499737167135324077058722961448842191024109980774641689514794893392345126471254723140592858922441401309546683808692949035842244748471872561361186383275952051445643363145231561780971599847563201266264307821821028513938864592384748242756524385469248942671669974186655638547165519679453777072908117884760901042169569584942041289078328672348485446807150721419970901171963885968531873896861863378267304086717517843195306537070579558971080139181704346419951037876238972295494762763046528009811978732851321884146053144494556196322469160091345536139066693201106663415817327845756491080065948649361651768373341628089701868213767517391734452470745723911963134584102618842083874500363811214475764836330722486818947985648452329498060447496110946694170787837895921662758314946452927384178340165056542118750004580031364353367029076234987280059997155741355797824920645940197118177917711117385447987744708879580007138496713854365290192703532291978346883841565229797174767285164298410247765390464254897567276235249966992537049825246985561685722148926197116711955046927691267639782720915354054130572519668820320849725558767759649212407232272446897499439012641195008055334558316839080900190319481718345351665723299837031395250644889106276992467687190989240928187675982755188379812166248393601349573791661882353860935850352543473297231670912828768702948672786755113117954823547523506265330121852453279380014991047558147491874980060797805469911835617242858414804077034636099883905061703232112240708838312896844419913686144072167811016100862259503822351061418489383189129312089094278922332075030555306541756541239458060124556476415709021301361408465046788641104989163265336065718028046658103410757846765913021488032036958796949199046059985829091970562871254344108389128965737375709369400062088726658416722881302432256274637962120456230981845951714823540284669811588695854968784268999251128877590297189522672964724345041792062375856585992887738325765779965521042803761763180089290488676022896360582202960005554830235285193732120246991492062159669706111533418096308155190383185077365167413651661659727704699791491674023503417168261150272731580719709267654255736879277371836078323393486062700119119165433211830827618655200838568660144091309911482490944455292451701302861311241024077578457193716131744328019209802933777497183640261447266138704717169745927625506169426761134847303202494915392260693329836890198694938127042289203281317949679069712170496803749508003614276564884983721614890989913344178325622562331864944290153594317930605826536148403429754248451124537365743775958580720919899961121528667536063384363382380052399499391993527135702782682202456981467048129098731089409594825124159742068767391105340362862014928185829868911113874006138564990130764966689047591997189235632522788045878276617805141983205875948766790135806034327770929869766952418892054584043764222705298214658888805704183846577514305445631594358894541800412746992261820721421340915649474453030704846821574615289599857178850418536545300134619171245467713403419041225054202155538602493909156502011095492420748650392810447358467236516920188574178717868493004071920361252629396916291928175683022121299420751837823310491464448356696402391336514824935101407778157301352439777912599053176491280084219623361076539186916112788409708162569749393236105506824475168528877192581726281959959529467666118708410848325505099378926280238268743672424383021838713444924818321683608927509343094612471666305698812145191880362580259211902275441519382225520056185333286900890284592419155317860713685427935697745269141039206998458954971917057013545497705840252713120667900079676621056802353810408732465964329923462417632663380500417218102454473923469302841929514174649998214281084440396269918853263857879028693877996455062127239668777811019925344638970266772064953575442149935658762415082628269740424056529585957611263962925632181222591809261824106132987257794988661434340645352078851048011330000101661416343310045126847494048453235890258039233270553341602493432558572044771222504606097929531971112756836192121873496484693182309331392068227943614444745522760155657103944579084447412325608545766382584774870636474252318975082411363865153094813651919116841658688796311246484845641598897018569186100178053080420860604008743846034031604607626345518753605442665384141637271574946858008643729850859300619963453104672718284572451497131322166916907847256510048807777058647526131805871086913340254845855000157054231656395651074593380528557940716519696882986620438352551810636499836375876702547204223066802957919043771479039733732591815482610570522590999044660767276026833338973655363637558012526741688614813200644743075011123321234017411528440658047132238914567360210630183962670510176382167015837456143726941660324961306891378836745663618926002285625367690713012140397786551324228649082534611654027917959661513799924865853603521497420244502806572171745975521792544309803866184272976010637116378071862286634395181252250568546878674584453915499269906268950375188120762823478388556651792656640545538080511493207016800418934876018337373861723316750587612499555130782657759395362335100837179612299910492768800348549925729083506033870790688258308664723801727614936144213580028313052861867867099050986301283990903613231637707882358692535843332663938666091264432720031954449312198345272832871086326497415665728235322069792657773306218046976499059162195027423552532083334792165785481827941807175136057896050079559940243942032139816917435142894452143144841292456431129506906372015736709651023330570691150071483937348481079819367896976372134651246699755326634417071686546108215080501481516388391146736285516832879350389011681912018307486185620923458164801765942169337377232419813398281142669291992160872765964312715755422644463320657497314055639443030175752891636597689474793926056847804710158760780633052022021140379838783461028626068774624069185456211857720643593613874027300461757514417087992903925441598526887239273679025655526875829719545037088788225497982193462654895624915588473867541862075658491402169917548967590506922196511849107098731599022569682197717426101094996823012626427707528757166694221807585836888670246667163595423563847936791087364528168894208562481746582301208700777151503015388435441609937785233199375168058889900712202810411631011632169212398439435669560512070210710408601807903885080795139953467847359146251717558358213736796817391763982898931518525916989078274086152142725543158729060444281535888958003975051566454161457839222176387890675245088698960539874971064422813672277186685456072662307048928376273859235117911411110859892871373896993779279012650085667771970565610568573592000879380703664187230235966883385789699966150046248774911186418246317463004324343605702189091195774875238701758125531531179214665731539816940177721775270194577006582942961495010912870448428085441915809147654248411226365130617078150290068772161420689632243124470624093401264430400018409040444850775392099862212672457063802902167514310455844172250171462947213433322143204192719242336666814349471247142746739758918571090555199834323409160979948731574290448165341403132800174678814930890694514286445135050470978886897156489875377858645502300850657265595940728183883502170000216932353325572335775327633821192837627446330010223714567555254300356631731383648954376077312807642364290412772780250841765004469028669951877929107085197995777970375160234287599645833520171990124240182249200418846433689572400223808982009114510929910467667063050309308696309056253540997407598334064121197451598210458901461779127408068223769487333575031529303213566838847264495328104659396903924191035277590564858262955200574613030650453661361110740863107074519361053951902844441292851065437074085015909389514114376780185328534455117684203869006906293328993738048395135832406113102212947257320883847282329240648461545438159534799086934516246185737022368598293553220784752825657289167934824268343679776105024239602528990219460158794607510798573166810874588160842321107903957113030744592923100936592018665771956546093478935030438129671360915264693738562395709914335182865890419622467825895168054850323511232976991133201959658958212378972584111268363171616358695686775415414812674346847244776348808093259085473740778134179588086397584944469168853212914646797234101258177941920788614373232864956825223007066374550408342842327563926897884741504297461481779877061277795865772491583905032638827389759360546481806240119643125470619261150608443957414746138606993235296928915860109306526533880612377122703832416806658516647382302889331091753556458667490321928185942801112184730768345596068819485555605697193947328799697563170086820189025457714839016809505131261892099952407042189108194831340679817202700253178710600348866512820263379470657236580159410339506333381078785575766284804545322018730983523070920636076992284050876944580281216349205147801324097589046431545109604944986635996853256606245041734642960393183067775726285739268047171363964771900006391030701809305795576578214340051511234154431923908768576529891291964623134299735551831171088752017164512448030505798673796123469505377152417113121664183756495871190442742936169089237053169257170223729236869347128422056851571510173159011147285810998173452253213558806515824933993510693869122977289118384198024048782158272856024378204909631323148091291545701856622025390586177382813615618652661068236392754463318835800817975800742752956267809393908135251149301860687615899503068797883765431975240661812895010523659552259421579116607058998718959960592453804553117889142280268632319797269205740856856164673334421860947094958603910214402687431625685267122883905894746021177077277182421228404950166753583028404365607334328207225751926972360579140588060681347019485324307007822299046463081388837389891243512192817784223832717098965712093784171126915447140571024490457722748205909194766228480251384365363626019389659635833797794788101678872236074977598861758326896784125660901343009736708473172323874761172111720473197536858573249350424122390513524081678519013022014800083992402152768747985418996732118733061094429158359904506518792736083797336009612631550777732578536156814371882288291194750082658981214422430520409398146087814829296187411462405001014623308408571578470667273917886791616395453779199602427454248726169788756022868017590937888710051199703014181275633528337032122364341716665420542896926797764132715093580351857975587137352756421438093958373989333309460594778924250257232493418819501905155202248732091111841994722099444660260013650465109667305287460455175111465265419855996497661457840829355924874418858955348940796079979438135769501415745569456057451883139623443656234342896177766245868185104221675018074002835363604109136438621771423984925841095581334548409739884826584858092419024618479020065066687822545462348624173285418847799042873416995908807168334725414072580362734022711634841884080585713981551983823291312083727980227487611167350071741109852667539463586483990616462131716731887850747810219223918617480646359087551283307782434566277791077097371927129107702321691807660668278660333439591972177810206018612776743711682724153155996430577901663200373648454063955145221846372298429210341112525384417341258707464285376524760372595447958310621665208517156438350924137368733307769194757485282438897699657887899253410004998125121193292767682339234675218419882188329922939302577451498654299359991454488513948457076296951143378792176759633399972487969137702309707639006236447420004232897062067060833663908107098191884175004386114109472247693435847376415281337436598801114859739914679532227246136428758710651690904703330927896225287232493545570336191590085221695147954422355017416119698477430365457935872256507940919900122003319949503873135675627793893675845790945375421536896711579916952071304393122372927141153271095681452549654135346396833380984197062887571801724502388456978371773111288165758936464006476967739900704423326731275697257735207312412852153547077468288675054249959313756000249559328471592000834343153743360377613959939675237560233044530986116826420248808778723968273570944456788842289717984045469069461003963568720668110499238875118410076680667404642382820495717812286934369934638061022081833484658303842878623697337726492822770438282453914224403281647109862883318613730089165564657240792105790849369967409719899173976575065042097627649597324082245031623917437051078861043758217907638098751331700680049185198908185084268548029200734714317763773754196019110056626477328891963922509940696825267404632447056731259534151069385721702903516250124397919402727689364061972288789919776871775164842598449694022307494272539795057351958291357814625460303671502983943158772778064111451331718858274278902130572347713122865910270352314317264695968694099652747232995997434940235864157074971337416438618693333258713383434335894112123813291012238148631393617015585490481322801342647495551470545339157298386742887979907657914055185854736785817188043270001120624693159089378652048907461136425141790197556073464651662112034717528889452624161757556445623797640050837944477329276148954475248435344288251490857434089940964981709651494629316398429926019170374465249582287807286292291638932615680587744390306814707743423696942909055904906776987221102907974228275113238110403794495722548131881311575614196147374938558936461188471484202568695142500071121071130932745934179353788649974249647909037605809272442811782814335263296609381308214525617000052999975520254162276467165257717450271028398542073415082445882704806534752381629301297737629527604121752279744222145957595497470853603039896063768651738601030974849880848793941531350092973689283454157045324931565228217144400954041158040238378232269338990124176165265094352212684045537933434625787557806742544698774353638717738046541299341148818462175500990486094799017371982477208268511298879657636739369600301509911165714473141388072816760783143903195039631035123726599015198469085443302204741723644971247805186027407499151367046421031644275882468786652966984060274266467632083627345648898142796959986230601502268660978903124601507853496062594438500602840252725340722703779628672453073863349145794908743796112294146161286353340086755242215183394524401399636876071982448326626865622924952770119897379320607510118548444572242249404552862704286273078958187663790414597587907500803469931454256094169190681293921173939333804302196726850362668734862314839804371867132893424552760365899039958309357390845093195218155983374735521721466739376517876375203557327032866136055785310089218656651558164168575327950622774441885402483030118580300195468342227804836073274095091540731139211277267680875118009885752928150543188239152013680423185667959968576528507937487718640428560633522259740429721663966924913379382052853392794341100395700937166207092156698637270824894065322064435007024510526810257767432130391212312013540445492336559061680503841741622329865440660318947264166317484747511695889473461700242277245355905708512349302135407178129163886462406120549225993187825211374352889708090772737784175574765795394965987358585961470277502170885506738746710547516525787118289055111419666817576660001168955277773695097587035223222862078189830102438670583328488247368273925618218693389833557871508817855267285611815531414380944063559477642141191999516598708270581229506525891255692307364167459273014805072882199799096421014157774886865870009912330160401279516940022788581320160902440390028971810401007521540614205920628871503209274583847082895833880316415094976403277649390518165913922515924571739389160563832068731227192901922840496147025091546976732007831449875064870416872718589598903095016698622285144987202677426668458675306846264917831160697304728187888563589224170714216023881610657161091486096205832984144729583832116387602502481664852417424940614284737138143249041712846976811759443443308688433885400990074430664252088818967821521811275484047890339536400952556642800488281525069547862822990437091317664422253206453719249906230571515201886835393060864450869975699666735382881908216594706650050866413273910624410941128861317619082649885412151438399318873318932136929841564429084697889169599193391409758581299830511802118204006418400646965319124288398106356957813951815561418172178406059638559894133096993463019018496618737196199362284468068068331214544529802299768603788154127308151520415633556376419949022313059751706531374539983439684855323450990426182558595909608668162545532225424370237704933955629760170389950621866716077341266124684747546549865751245985446221529338356204843312139318262956734867846709919493315112055462794125899147561188920510383264731827835644593130652327939382981560536076480878251637401835503497817525539194762774690035811192287352036195942942208671571018733317061959770212055492496018700537082273919186053153979960556445001677575656864091259976739242341680596035593221886086363877152008532250027486214161697928656666176992642951344390655553483561510409048452526117563327849811279254169331930781464751914831393415722992042987643584005545700359930114102361848058826609374416003328593290666969250360380725957063458902433222233688851403434647372829656178783283666885881321497768620192950906237590544271984971379647494037842386146472708655191635595007969869638763191581760299689420741832955262771820844318827149459816054278693371221789384524304252325312006070310083166057263947329824867538496017667442194715682714969784240151672537089655541098610133633897818110966080154651817323182009324569188755811122201238574567542727211299469279850095664582641576205792362685143925837048484673099618087043781754081930915975259719579892876957705000769686699419948370622244184104202973512483281189154849625678585420812503792744754032450728303641882944419656783565430206416728494055918629700480252401113113804183620870175053232770225657738509611491271830209741630253193571589921999600896284324987685584698366171855453590967498836884689200489116723464346470064497687832252449092544409465890284817640521837521872062076311601862396181884751904964124194020200156015152138391467837984216331952620661719782224031315022061870864998545467478211615677706541409864662467499914874852792950693085275539745386187508463183155762250315363464877028748120266849845257580117294935426564778677110554923930503962587154177600255393563788682161443369594734067590979090442653106249955056401733528564982415592225730957529917875114975140215854653988859642473813095323277297101800131252669646683930871084027514519916038662287149489257962492172167147284100598097094439623269550405086198386629685748096412512280881145660921187138249246668017726122268211503233708182649977222331483840588007965430775776903414071988524676167496255838867134517549325602514555718703346246347516403990236774965411532969532385632928733044674334991852052414371346678394509843145384651211929160535189412742887309916581075043651758856963603135396261964708203678707011682612830031491759156993371492878276188013948057883745442918276650975497803584704029563952840814891528007788472660155022842224386037916986748777702231760400032025139986027024655142212822184322593721222958822581480849899397341333767177568177620713387038683482135641680710899207417106707710017719515264224365959922563608961882480398093863279147878586457791888512025746977557460642147840710744080758943645324306696970134526169052057150308788393624715619690891965732714336977031686129219295261304016680108950164640412044532777464526813492540266240460780148103917795972190694351287623368784906494546487870849956312481743624398360084203419820831008800580044833999963829599244244803361133915519758170063860121485571785805034282965731294330330700499337534036997346797298195824001525256940283464809254675008678811908771063274146033735721463018593039616949889313018965513053934390444436542816336131278628189508952893879848770614756945837032425857376545675499423342562800439461309803520891090791530454877836250482180112088483870873695632729239850443758992054887113934712587314023443996053432360449870464907382767798306898730865924984337456765606136892981240122550313490358545543106667759210750008206353404061195075744407483027187805665690581397684917368193911961775709044589384552068979546221869110942757186295575988249289275603840537828146783408269242295895318220579205397578449820744142381525584565544994831440248275391704612871277541082362523037310174435505839855658770019333626724826957865669329694855584825696941785474464221810511417998897853614353108634492515443804019066228880482316133755683991039636547914562474107602787032936732786509923273870816334802567876764634518999865693161861436819822232134232769465808051325801329502926617317630479638170787723339838788274936760365411094751649806746058851573826175824181760319143134024976417857773252482089533629205880625092126787831451831351234416050735839627691061419160161247827080512187306895990945796066020800984561497326940914178503875894561498188712352590536506392862245892616217592478581684958902929651498694073461943514948330577168814001094760853490208909017543684623642617060356020444008316425161829139045119698860147609212438805423379133712344366676034868211693627416172200326089401862456292648135952237538739896663595392544710490907297309142877751909200524158885791394899676456335580737382997377047206116184892195406419137987406642566169997999914441784678019304617264371189637565962689214225503741620361630654144979919950648482232721015243079813514802912489579256602822402081972660859087783317273988577791187249007293330978638850958816704326431935499261539250235522884277119928997031973528969304691849425852728885571626569216856575106225333590252487219390579712447487056169215731788166425712769102289103704943339659302452394098583108576073821851865214457293901023356965908377313177313842842158638264546035025038306519486105610979669676065817253826467752292949416926271796575964581865808567203719245454282285802710145905567481274857603481290441700834371367876687642668053268396362289718174677466125378757219689743569520250980675555103063682037332237051870575101730581899546852741793211631338306540990945461886407612107048346415406481786852885188752289283266273206393055529575271105723308274883112927619463316054128702459634708332201238051310240215291484239712086313129145870144246307050090514263166681764802423845937001509985677518749626436226371113343873189325184467035651619736855369143827267653346515837764762539495032621149524750151779638376628387359528599959422679556018373580271162703953669149124267788609291971711349656552556349660841378922621717859978832405704276827546388780239413427824384178348243339808277400632902131557710262387969188985077829527440506010647398621625323134478260442108176006869433243402870189695970127410575006527750138547246431536038656446638480419300579451482589412415659140324378808400287914166289513362635653512118791067269514329033970338367892037636358758062582825687351365954632027677295406772470369491325649518795914877449935778523523210736017128911693515522754130510041644916464819550885996919400178886957628964023116656419958999287659163638702825020109131128314589520007118548506619979660220462159242856983153535593727986115341948318507273490010418090473865400318132824239036677160289632668089221482920128723945194224545800209375632793092888447733037285893042222375081275124374518086281234186217689630812029822044368789693237989731368755210042420851965982721221272192324292625951014404585215100669589017541237345638081129475767672527890175905816626892036978743213101996390298846016362527216997716992635784803641918042316345716579332365180143384141742016203205498798197782668351838570403539448367379666546528978509008582509338637937404749673075032690660297770868473365582128634223985391030605460141067391991992285833298140469206588063079622971559672199517614608030669022425510842436941043826764817836488761792325507893139232069629228722805467009964798316949455287729738170066891656427793870526933861394703168681834535237319537609276222216022806964698517085145044844988584534082737576844056626364910076559632448826356053093567051364990534468231226851411023067957171207834974436735244420350222338740943767845630366280011494631059546115100981310770489492189363212884368712941451121919345432462941774333076391296409647141318010529184226314604841940075623806610292973172153164106480845913532750334129480612622619698426231283826513204509727056131427815812305715502436188787422934050785147063321422402421778162741815587011761386559569043043606066605159132102235011400926847913160767065764099313949681389224327527110283207254425757912734868916963348716392952285505878963510398455797116767288474767013128384491310846083489293488458091344555624110870698079746748449497071295392031446972404866456691693148366835855807261169168212978040841305682066016218460564827302036809412888615030127499213314735060756308037482280626295742199185060039271845157186720386322318871269769835733358241530403278795947660508967072063834329777520846337297436406481842225554465061542008521788991387901298094731954673701184337850741809236778355065254477636535231307865333749204586944573083213094806648650787585862252322894756424516150175894322016714594029764266362453591459805389383530599757935296162402773093477536557161587523168629349825570003843027652525133427363253201092575183762105483058140875639586753440687364320555145265904709116819385283754881194463745208055752596623726394495155109276900488705694732701540523258204211836625652413147521066916711101686063507472554935002564337810110885901117005699851121594703564897164824319825358177531099882819555350063792064351607840995609009939757723635890899501580941356457245014944602948567894442958059001592727535578486990915171704275509873355854701009631203788373657862352959299019113881602388181503091131162568291519231227298925546488588435648282695332411037100715333857216228712637750585433278670213294620545493905794231972011805520136258849117347976186674965666743940765448051902480479643937479947814983517691253580453981577984867002850755948364380677455622441141999354992856498364302712168812501146156565479814844213105605606233587041906767210818755797052998418219505372304097735488249171362612433432107615122436710806733665781288190443623972002761882491960722899525927220364648106684521422129063006704309605624282499506428495373970684385346107322202192948076442385849162305472488173877094365310236813838535183753754266358660544433429436406639808679489123457142336057985455660112444180711421633822136397242676917253220756503816043122155969991167093719573598104188569918017065424866573375713713202161759637086405160217778768384907477715757439860234359637799597666660720952125978609659347852833978065012145717558139370458279915424340256477206074946927132239373668066179309005978462079691760749138382935656128978228679397634251785358248501675739284485814788967042083036020254462888963721750379232614562888363238040785386424536732544474001530290895073854235790074967840059300410830805359590677179570897729757067749290660150796647086139197592538318305153617104617897408398272620866859372372509886819841793512464210221108878755760728348611918336993366418146354364341226799164711681339251927451948424412553286530953662825399106697081979308143777621425580309852118677240709483218776642576018809847150706577821853301172225958505796826450808069201800371854280266759745615635758154830653121443178735915115506741026279942742890179005041439516903083334751898944987678947726931153895531848896856176353281217335076537191668558381066825879117514128958944874492891205402939121603268316407241071493728214086130003368696306458230746156138973380766363546145521411958802122764806940357294389409324360291225525251972484751688837957926447813245094922866244788811330128801722347906628024497875780426115552726163812436644118983947042848187977551265709925072703890378718128299543696133716037786238926220279473295882617529186304135030351915769117131723425085342228002045247340835951399887903976580864744113882217682477374792305217956490460230624608027949029191972491098297117508711786153337052844189454342594969206898880901663286703453163062142006579055817832352545199090248321459359366874808198795647840343552891135217457878987041731687342441271549246470036516447392017068442587890534622254105783974450451051345669314754372081142688149690947856243316780284852360788225681782824560275141084917156931485138753888434084712414636896842753637724971384329219965317147345863239750998151975461795061450818298834213958665206672572257667485252418219498615639737418982871359651933729036272122490107060504291179320749112982962571963060884912828441584446460768706695453724501631430564861904488783974028030209377684661705616881774003043031855083300331947026813453731889576982668660238118172529752062676940459042466304273065224126264624448524997198792078315113108079881690984306741835642114850296348145779037725416169939809604907156554283402611517808934825963134474207664714150336266831610367614202393600749581378574610396854351918888968574135296900806380269048605486515508490362580291881277932136563088741303840587435052599469604046941132720376474899546036653036703979253907316442999141544688088314852954248374577519675664714626464876765490099296387282027398912581283112979898651756908642608663926434158368174845287669476937060497028872481615291428183855780666775107092495392560627099916779354344771509930119002979332036675143982400006200733000661653392291992008959184014604064251362047578697741600371124543208562821274590731690880133450508959243280519821194767869869049572356117321394017924355881077174255011090324167850300874864936164819434768477597693387680039286919916410640303602697477783233973149125874012499992852817232233230592253085154315739095422028946680127399021398960155075457431476804130278698981114445919880214370371084660154276094062442262438000328141686180831647569919197823001371152696421206061487899872354318342051858149062381771870043556675851713088211253312498446542314806210336939904651090674557068628816123217654389520089468267918590668338511243019682543877384977794052376004912605184897110980059210288906626728985171929673638739744528558785441592173670191961876976317145638858252769233588675099419137383779369111662931349169863932161587732926548809190388228591307526155897063679430631723348153620139176813995166635876494914575957590304714747259537325588721304409798474607521163088130553685062187042211009029892186297067123499228174929469613170027366106385147123915267872750336887896132675993103544394438881820608414524986047454360380319881877584698239129840933131893776626075821191805295335605198102953654700730546146501580375136767618524072616573391985965778275280515163446711359845667369758602715493898454485197942749813795924535626096102359191696585848238777648363512021159181033219971659616350345574754870121213291017662229924236482681053368507407510375404507639128129049740435266680712742734512265043084563291790676711958091692942249116297258356442362941590159616431187996332980381013595011444505642619491625862774696489305136349655846148986778503121047197898358796451137646065838467930006308868452600780587357845476301009377879391697743735660017547987158989023832861099333228416368781386453199120534678645799616413401335504393522690181072613175511246144662817509795905381089253207325890439762815150185121664733059563699352811010841710678732867929785452058497398722815557902572736417272626880068585655346443793830351338742041120814846885118695593549824532287836559283452678282951943993425897608933107797818930466925878257351051721296918459591890445083815426201037790242932814960789278081365525423140899464967338251162783435252707481058827497391348621523259902555098539609536095491752548120418190975277379799387994662956284999750088119920860015013832456570084758276896543388334110265636655043932593772653056782213822084272550178183022177239395268401146327563158519423178867565370466402582244504228243497815537763176504458489150001895170450035009582943182785581987001099826675346007926285869601469950889396449956486557460161740176971561727224364945280411331887187648827155041461787991543894521458223818032327764791822671508969014328770533573349735363010575049859257927291300194979995818055509054572457072876113340586995674622010946887150131693114737808210889336883473216307508180305899398125301913619870307033299487124097676425226777567648454988373458195012829737475776120347954895580174743294239241637093333638103050149973315182912396600048315669524825433336591533740619665660661687481788338854262965698827781030870621817543743765401329565190450955627618736871127156179171971601085298256627978998873380634024249336109235923931924789557746828937634102618286949436421820868125611072539047047013195280260852232528671251440959110501963913862272421950121160352469878633051764752142411912512900991684449270498725665292439819536949849098055845593298757047338362687031072560078981441832352078344773630220276605050715218222941009098723599942392189741740197370641267561890170218245448531469053797100685165603157483427847391256978371625258795867918595813060382691942605917150491221594398780372075613523997277623962991185944009354995438532696310828336330956685754295290866497321277202902412652492412856505723553638360289369402292295668122391279339237261663248711228344247051892633246594364288528158025170920866440449508321404758778413822366551089227841009106450282118148841617935163268156489599982274080181953760895151778877339873702466474420306753942245771084219777082864971224641057238809691946028902928321761775544518315268948688334232805091435499009412972419026353283656847019258265104861099659012480618513086377918222571936307592277448080470491033319482644426925899506454526645765492789114132072331879145912954688776375699078747970951594799506179351609125615557852144390997944403279574094304877058222886450230144731613904434850846311557574710128846996992087447739072156232095330989651148970968346974228624028614689809331212587358523528250177314041468072121758509251646479544383269002542395454307108721178125834839097443698270157737436198548659659569815363055094254357316857744349130761618624574363801864506939556265608615649684574928991438692077528978507200465291534410580437294976421086449187339381808580803704828021916170639049675041396898679584627223055783651312720608607475575575008505537405872438792868789251681389806199194588257900162039461762735951991592968125556801974598407699887631982807290000216650524649046076704792463280714169016944986689787052443583977071810044160481863998755889398014587374673123189822944080900520724653680237882702183230481129312524935569805132447576616036840609155830762364112952365519613969897109347103592428050956354070926968098248256806512251232176768582428762072793617421968784685899719018169776018203558484565446179036451047117403330613533516330460260122257089421861289308663472816787850947822107923173465524402272856279871283508498879398056878478726541543447499193620178884450802953236246273921430426883544934189751068188275776989220554622277350336533350961254620754078471969068263646835382441752062470530897531392437304187144563471363905970665946315776517964174760684175239117612657590149940468754471796156134190610138533405959787248316738519432373796908872440905313661903420435475479246321093317453522871621590356095704047733428682131874768247818370407436491927016312159134094500415324349100864490053960053882600301851484992428326384253488494418429925682059350445420901820114178722212735136011840373278157164818913295804812744856940370629111894323650702564087725574016198363363610447214645631642753669826468532334956622606392592410364067907039487826276117961551107128177346810842518964500698492631413878694549455046930439489464227217347584987582712037315295876724903421951295167065639975539330450327220600321588081050866224837021422618233302092281167797728075081232476429551339927421672110434002885852325999442066984684748809320918331088246997682728990093095201984640052726666304675146596587141363193665654397926707515630769782271742362850433446242794038761171158705887223122773192109791431348346545039758839815302083819372245431672980942018499785629286044790596846197443337659341370789940273766260759806508367512290640611608856413421714449516392540332978214203282346195878815470271154122150022343063503733065475822363300613689118073730789954366017588201771237586080808178540442512995375725206184564515212886219877766407296551335851287122411570952657082934583831228813294475618540087664287792700541130354114891192250078076963596560354281095847675932647438227304207012623700272873444393553902019899483737988464015660397483980629988359941008276467098644388323476295837213176800040947256060491964956662557418116313671478233752466696703739023346278921700554920951136243214960110623753841150583645947501124642916338297936449196895875137648807788514443847009624015398129554693989299147240585895793144376730129725029582237243673538000979870232202709750740370735316611104812703955816979894323955824556095562586801700642894015182147885307238283669931567577362354571804141048349991589079057798180818515777407600942746161164993730308370663434580878789215083304781625306157802199044147887577305084195164567567701082283431591752438739448540522692129663855605032329840552227403173007068784783625434874964697052782989558313097333166455107719990839836106382044431741377700017107852697683679865866402138029437066244824768223210165472971253374927769827921460808540577026127038268571715272082966374145311036970654411932876793948981042663306494192122696262432762743125887119349947606783673754113699919744947464357686250561517251687032386614136540588220119801238837427341052509549278743150917774046734010415727658684557100432678144595639124920760598577646420173308349900611506764449341902000401016861362682118002522074958134982295468383786128461477584389174770247678815350651962185994087243571990914195667753305788174924416203325856092803791664750527218908332621934534545700215826280098415580221768650107554060370424053307939705450090759631554965973070552292330153262396403619771473250301933161850042789952660146543307416518415456010077659171325224784410407093712963116439546399642754375244623537133081826517064826560851304668822374992985367520037992362321026025981613270915300985000543450812470391816801701167167905187379874075508232672175387302782466311914457689054238810547458992404622908712438352690389822892907035216990618935709216834960918498960756592760508752721732906216048268588696370699949321336924924029575174544019421157982034767733109526660567138032213111758103278275612989871646778634770341027974350355251338896229212563946349435737987874002300676865880912850890939283447931352825365332304156838730210494935452838770658801547001675935336635815816065687525877698714604738972477238756425077871428404908261551517331832075132025354091430842724942612869603044390398235530225446144333243440689362334876125191528104011818579293250555244541103634970198473873060520858182011286405944211357158037796385014252698022495843424339979396490430977156679969352336063152319098695273690037299765587811903917123913786727713486536351426012299563686586379172183350808583098543944100985994795927646329253920343236408183489049005585629103272124195856233418637338246709590718701675315573257854655149678314464918876013121365902478332576043469082139638386964091302598752135644919668718831431445110754150519744252452196331259683716480494480560145975406105328352924188963599847506287488369054913832665937091326462255372907612821878331819243460568098774650881435364069188755203647443743558031200046410066157276515092656044944265912102561751311864404985095027438446094530550298142524344290808271867357322047405444213455651158836194683537533343373476710293696014078832085678968837793850569843939628889402132972074914570023516008360773757364401362822356034784652406161424349924736399989592873510296635066219631859561362179047523566054454092833855273499115756996841802209547873967143693171931365982514331856937832922576649361818015296089154241626507515586435332956803789456123070894683000068977810105644273976365475966572364140344131306186730310209985693670116733951589430977044057735675446608957791974886310989447268820698288029265860642872453657141552981463264938859185881945067070000370792238416690798525302382947277010944195617250303020540588593592800720505693113407421051544761632460647004557688025180030005661342786481232349706740279120760640463762589777129753512984542661580267215594880641509873470886295581051030444232799720839430837586135665513511018977076149636338471920314716345980523621080930943285869262561555181046615188992628592700585466052204411563246846055223781884989919427099081631212292760939833577261133404943241473916695988964647810503099501532203837929376381020355923874274719562156975496503472585480099157019726542405232510797974267116622079961329083093432526705958892630404183415220055962958491729577539216956499729316028899822608586771598803359082472151278224006672593607906495526138819827790181289276463322374744176202871614481788331270920844387169949355206925506302181814140942085976303192698428265212880716064977109770624569835356877534265483291781712748517704730032053043481486389126735451979076018003274769196852624409456127581800427258848089221624173398740762274495925052490164966563339927076618274534059822181512067696697627915324468490118874571330051397081893474737835902330395576485148837891294594749278104517145048014439654025000162805666219530338972703599651568130457458102065928867213623252216831976774898761027299641216729250815588287157081498138279295164518576022834507706477254292387763672366915922928102098810441225250448201729706036530747716785341864444771436994524074292025616648461139797827374418452324297353471596928816549236126060384702430337128449906631194700941215388648823357289289574586679798320974614335405950734007784478159155990464755935179779810398988093642957497786788397589202483516902648354867238962483642307015289732120731292660641037247712611707012552907581335280162317558669630772246414542979870759629142311504261130690075075489152845908990077176785731718259533365903056374740921720370451351823325365475875377338304934406888963752516775336850719038023066945661816450549229039855844134812791838571172183960445962241457214061005097162210091164990347539174791812633558176911319439254678532149358665603772286217105717336914983232820810602932875153246319209678026402907530840786754898600884049676581835090843826863966216632713043997768898183516854399028520286404451822897266062425762292055475593865106656153360443603631393876493573896059036195855709413798713025236337755942708658816289398249790434516866116098469932892290176624076819916692515029664603793711539667019291871666069992123638732062325003365743910739631405266059447554958192894918134056606869170675401634404835329787876205170717397838663523759021641534341084673763288002298317096684354048631892373488619375095874865326828465450130265016458612796630976486686919401197974083127725087070990369477296825927686948553294670191008718621303780429092920330137212369028724154702797599612668806480502121746921047506624916643671764991385053322708458898554423002395480528027291559679735920298803869150590888295690489973161508772447104637810017651964088287613970716400106994601054226464938725528476791678427691931563462691183688922204037033661346537869864858530884748635558927977845666301214334691010017157528555892395155319730963847014228329679900276524981387647232780504795633076682949615499882527739909631459579758408082246799772883935272626353434486495505219934364783575474966912126910202754812624909723426810283232216876435472496943139432855356390922203092081639548271982894748063770389145815877254082613574192465967400961278072584086506587689802373782588572919336813482139119268516628835037436054665530038115526935168300028325156428048049306685275415342486715631611681112466651662921838102237121124071162634253209648115485787737244162005510909860850049124326037848224021680563353466270173395448558645104627926018041299386313447589759680906543558138790822223499719281121836373211410761657526292325238800907380045346534781776665618748010978699850801408282446391658136405414382208351547997332261837539697069863725168539688276358529583122088441982974500147900919062217741073321327547431484948692660689996674309558148522326131599375510219766816721433830140763848699440604013919367741829418396101593020159878512734939402287542950141753671413130097429758597519610232847835639265848449498500101549296637297076001731220011362428688271982676043627405914236367697210175934242072793001832830037165724937534937865396958936292972266539912026056030633357941605873103893310231216691027378802605894972001566191084582228939758181299134123972166214971223076686703564887150252682487188039047610791505395790118684067550448519959926239717230959038827565406032069881041913794641445370403350222888522665147462614394787755887707923249189186453815770362086270441075595355788955629089429549844942528734313261140899269488713558652245100548676887633487998241214362118364598242551927102016699369638689207733609041289600868867301888780376488222041905901480843193508581261691518922772402751087184722242035062849643332667513345251199014261844014835246583410990032131875227565611517379948408642444356078422582359921476275042828789538209094344792593915260381433855788599785249498207431303242445348903443115986426265746373919429794694217601323486774859653677022541886357211362733526149082313374557251475094174985790290906807879180339004131831530828379459717642811708370714532182102021204325658640585601465906391588826500618764538730985947354814706867774978033349887917226143450856895342894871690420863441241896111133965262334261109771980653870375910631022774561420296634904996091386979362962876768956732747829849902273241247449639501081408537929281237743565523911204381299255895481710894420051231643453135957230049038263549447908771040566182230645777879305493459830433580306315799244582788992068647114730997756232384832742034586241486959134208205929256496140026313568632420723833608827709780103951775780544718091488084725607629358264010486473859205485607256480181829143626431327354486284087356811351442214643487411851613374691312806990765889114800008915509200609040031886579992804371069506294770438223532975213614066004159448967148499482149840389107229757492224065612426373286433454761148972295185429209549500581195416386817350490616073891965705247397328516118012900511411521559078916802210011669024085410056947759221214619229355787201030054652637407840116776218791853594744907129486040475868348216036867576811026011428217635851228935019717815376119881928270922527724845903252146683293404105155535544423998959964601299721861841726006446845288894218932436564072576549327852079920185530386103620065560990625922727635626686266724341645319750306057099593992113771004115726989592951181012790829074878002566713700746303248677953180258918692530128126861396900247482373351008064456686279474116953688032262004007196844150739802392240988836993823644071303873280311913487746012411768221405522742665189304394880806958990947998287617970938630399943630353619025423563206083477755382431182611404108367600010890812024694047117695999943059259079399964420352562006067898907468776945263320540309863918823106791047828349912118205798447210813529063890165210857460045476861535896512013190092884449031277976219111841103936095366012125943729793163732583270319063878852624687997059158004702357205606988630538779431172043328677111761469535516318548862808578951803417843178838944544881942764257232204990740393882348939921331519301593009795270480423570592988199273426263099416819685694035132134177105810872057072795843075918134724547953418199688646975736360034656275101523112334460772915863201679797786358547429409519291016282357153471906167070216314071472460524092011018737442257147631164607196417702796626255027996552611585839044417159295129933051314620516032168159022310808044524621294850378473788464724564441921231318187957981572367643279583780269056311017166591131485393603792174869327107415133360530027636044233317834489411314093365905052464259865062950575246000065449686937536733208672037333383556797806357766835994909339088349391447970691447633054479313873235532093695262690957178164278800403765102824334802094721834560375563573546205354281831716392928376665109787896256987663882438560333432087929119834772901423650464917935049327354146999294014167532035569307066417065969544886222761993351242333386479797423203370610731259692938298202368591806545290137497481138783161281854802690061371885060637480469322742628804887209482440418966141896432700293734105131779525525303433647917623873924389339645519545867610095157696107759814522237970363628034210307256930015949338188237619559702624423741013131804090483382812093037814974165495132454156453238480480950580101328717512175810229176643837893217248911570440762665798275586820645474913902272530656068551915469108296548504757883702265367359261260421788957225940125693647567756132350440542301884104659728264876075454593274315785798698498083517754197426922776239044902855032139189193097809961555241248907871486231350025580644724516181717059720212460920115479572020364721129541861748339906212372381886064206150529119212510310321712119386846933155093449751612837355832588616150022691050328613141916357473712868683580310112405965695328937443973625759057105370754694934007442718874547602108222151174004912964131757797753746030785006167509615332873617212830486589563623617396447515319394715625469374945676459049769600022497046421978603677566525106049249631634976470222022691629487688903494093272688484114302369457899364859004588074154804636955143208083067600874462823121960980095193610042746185537794974640410232057030045180816756629242131844123627597880872772841699667836139217427026232010494704719085249721600775375436979676765990583850899052378938638607910592073214550977003033347910492167607107292886210607902817676502608317765611768273739888150795969451031450444291127842538975131558671913643965048112272616686532953480495018822302187129423563418580509564328080355444925913485245368162060740034793268176538385348749089792365238072780872945977262265831714136866551701228074284637003051721132653646096813869555537310971348728109026310617061828289105817617714213641813003166797864096419857004354962939591760350218675375526101780745550364197014792284073359648760970026623959227885896281387631875617964733076580256622420290144862325147004147679611983056613611771370474017364187444912006963361024608802125550633053756409244581771576032962916794511331921245038696673212796306870028864384448649270573282723585708247350304259892688217912253852929160994891201172605701184491182289519061848093311272815065067954687926627649150000335991857306794763163247205377401741116168628466716876949218895737356750818077290017630942615373768269800570174251932252048977188531670817204799497489009469180485619880952415488236261298260625206848306895041291727098514852783686609373401971602247627611343843023477169506882621912092319071728927032326960149420100779603542370696934561592099515168528707632930211674063979478626851376161866978627322557589174145359532683970824134131227299328427926501720453178433675708339822849386440666427963205184592528888569361950669381922430528348188213853926241250120886306631164133180615581814322243439617575870516618978617728708462666976700046280362621419787264030490216266610559294251320089062379579220954300709974358469014044607027814964841491075420124762731547220856023939093931007052930996268897968234385457458164756851569291356175447517973057584899630977343084349818778679130753229069406424196383283078534971698776303610223873612526086042262877584319117065217683735541869622364736334137452156984478533375806996768647599294360371651827941083847778418054741869059359868527876428370271133362178002995457491869650713795387733710695044139665900625751611151212847566972045218377818650770629309350667254972753055953867876987597298257403505138200009507758624554422140540836278848203494582344491334039327856393631130952939229255380303439636146141995826344776156059182016463118770236593410761883170052782953187387027008309687920318076373421794510430696827749028383868342465278609844490063721477741148156953841649300663391606746024181937569293354883872447276895202808775354569661258936091011924046678807968847452722112805893846537620255861275237564189483629081776269021858665380358833971261656137286132110468416381039857517460925581572308022842999279294629419509270076961947735834839311713522159561514108084791243989145717251771297036449900331736677154707275885687896433593956855253050997481604470090853506517093079255591657087251810152137174146772925116284308744360563466224176860627460200636058934513568591363362127077370546815740307292624447089097390575617321094076763110257790775266272359362459979161597325652788529903006751071429973217891390120297025447227037495097488161649931203656693902656978397972719222462534142031424846244215156083370686930672091183063476689891361553610487599292858498329013073568286957755707887770446014253450723426704087506018780370800635207684455919374169386779773158916797059321195835165022092649948599466023462206265454631528915669252377652061501581067814594342721548069681104417434537494495352363983471530306388512653526047417608374240631847456918279694535746222951969486728132974257017981030192056911971316865401931971495690184525360910304062530021286506145710326832997154805312451164000697608927362918182621741830681872288916310858022620948682399291648526284934018016601431898954529033170480153776084812844837256489560278704530780847654965176759013266330589247604370886559564898604997474892321145104687801114233400263787183589771952147887913497022757726235677766139079264001327340700519219643028283501550713922265664935869190245228101101361356710360628611986729330416656013503667750779883880647323095369427015185841437708547498842819155653354432292221911388565953727567357502419433240596688274448666868864251434681181546438964597156603238412203035750163591771523028785571266539405304571898079645792325016960309241910969254557041394600281140669029516671592520057478381949707785118133649286802482933548597399913378482967301910607101279681206801552973899957559033277916378634353607360280481073635287668790951470970631068464843392320808315735222401274824563970534499933709416279285325084032856418536067315901946349644496483121356346048493406701149059954101178378835036776413242107954569782552027035607109523840152608041655515612311559157911437976574397055543448362943374903444875515703697365727451421525656581082934490688146063994008857603526531252375306627367526184005862848618864674545142099325856551453733764121618108895065280274444664908469182046519183583630837829693972469408461510167642949291250383678181983336145703437873496122939306874225017126331689216094960057618027003397255114907743711578483766089352000986560674912806597800303070104353349808232196871858951660747334040829333277282299139569478629844886485677142244945775042878590913963927721300842812571050138885219555663629035478661697901446580812286599872573718980255009360722674812802584869305754330814125516032087704725720988335852428563168806217874045231399327653443510207956241413893474114140530622626157477783375599022451140914458213606960002460748890470092145075595965001603024751729903494475946472087896166389919408520224014237598839602340694616671851862934014400046420537079628846422910866467125321257721441964895899118851514139154150543661410239314537959470297088255796476399470436533732862416603675519090224909596432384592123581509010574207578451915544920161715008087260138430770715178838787225491584958576883192576700277022927393991230352412360362063367008246123662741517877640932906148270402785613706127054772334904467611028843731586056439743270758332213940572700004615203367743363828055066864190762902345547743988639163678014425908512210355211611064968181705687748087482084706260290066112193771434329257854486439539094791148900008981589803062313265885756524694849328619453950042246940307648678652458537200989360952094247744961977626237343454775269869597137262324417668079579285972550352670463473827823877418399591861177003921888617378529731610547549540580597812844007567717426666059577073142793885320581926457676165179116311969242348597624879466900909668429929550221726013203771347933003541254471429052348084604319872714813074515414427272301836476116540830248232900023631408466299673651649217461991305173735457352629680103528447606611564582282413144514510986102472753586769309750371503813049800427078491923784185452159145791352669674458925486065279477250448485086683090678576294498718555143379351761220232324817701997841186406967185571941858819259622134219384301906894321588984519988860917171299380756249100961168731755051075601593976001039139638711194066863253685913407189304513789467627853101934768840819446199320959856111873604141126507200620778593917195943334867517013785268625677033924459979037900527250953780984772652824357583867359218755343800260608904272881146000025502872678557170715630050274240114907506120038718000087891010582830648950455246675698965750151011224140703757099098290905794307259178502814808610115296046880867397961215630849429487679395270922393997357428438751251147443816149750925559982975702879939234772884106108498332011861902021614097998293024904241051475982305243511479899736610507404936830683513353126967547607088913211096059971655242619129401709908040663404748699253047267123564245097569248699740862899224061229414649288114887247484456186969890167006989914152220691644804043172306392151727732419203113116039030952155175308094047416872016113240672298582072981698245402476234480235849284158150477919123250803297464534832991949037746803313602272798917309061132759786860167964760710708059316763475565535131130176315548927413143206482412968281658631849535648313244473248744383333709319771812087153562391137433083392747193537951113549761997355315124621582794293279739879770271232459207674290641017495483978794457897573324099537666450337230881199494521093190873802277086620152025698949420198850536447929350794361405046640170989773280527267354823267300253122556602306704460661754499601218365861034981262462991468798788291433972650951468519882359414776315879489366651594428220930429571271393064802234537761148542711119592898954856538568031636086836829622065809537965799133604343175703746365367057857822264722094863707970754658976339630938233811705292072482984059376251864218979069613464513302793566770890920559346027393606779839620338480926811279758413894843083239517067609607375160550120183747685674922346718301513815242362831845349785902367695639720613945752610966022731680819519997784604939186262491828937997948797371119635942423240753525384667466896151534609619859223407805101921986124878790042855418725513148639203461675899495801587092411488309575305880437131260710233616410886215290795491840019988065475707533011477277393547983568398113291177331252928444058666175160868623462910904179038475722405347763089578976214066652022331757139256014255479498663141617022497320489226218917601426147865474187435883666954704337470481392133835969900195214734166282120841773415640754193474308024905388501781093004361135633415144448941760390550393220337042174637220115187227749570456896838469424663715226017866097891468304206993626368313438182101383677501043653984147971453225307337710609599527782906024189169574165608183018732280570876434485062185864390990195529452584945592839673514841252133233753118211079040875508440788281063860528403567929414618175509649646338258902979941796230848591187209269505686233012087435324536355398177416409178500701084410034170587811122556296206836290228957259992969462646266824418443629683324237516773521962231413023460953283883710070287554567279395364905224997350263421623051488167587180226860311127391233325287814688831267309794314910034881370908645577150641004852646006082775093652237414664783477261666774826099544347543768705204210910299361425784951151912586835831746866475117352736883639885947916068189115726836810138040476352802562024250249809060674329810720742846835724774878948819454767272541780337149737969502248163392476792493218857791030935575225210757772316833037338387750167551162906461135743836547714773961206553530350436040466561403041744291114409183275337483117899857177772505377220903786752072974726777838252440903397750907829226442497086350283509900273051794167155028918769841124049787950366286977578424113420076910861683633017814131591354817918353651169125823081707724362889998460642992706175893570620909854188224713892973871989300437631612098773315587295177741912358931133958687610688636362705762936442738832798306270587004194229703316239020504455917797478643134883373287039943398886074110864118362016836015824377595175553477338442819309836735026126851912331303892861705848336454275323730670117665779979301701568017034668879682230118624481257061318923172180982185420735201033256717168258085577531922285709964457943086297573744704518378826017330141133161253574964408806534266820956644132416473244993598450426457443616113529831032769129416472085809457747010270228614657059902378653447992576371985396898404589212506159131098893077022783154146748076955024737654297734311010771184332273954549727063448989121806745441683632856738884095482503405766152563180620095899694533341348366025100171019212130110646689688985641889554460464880154932083063120849966889869331618441795168441665157557998676230291397287445647305949545189316556561477233546335091380148246943998569577013804623737901527264150633529879302718984512779516141559277525397907519483119227562419910959754696727192751111036342846540443117073494619173160352816369029903071325943087479117193079716713534208383387696806973024074891817986992062281215530128135829315899695088946394119958129106932578983830483874747825275566128961990016955571702994399154965066976978429102254829469457126080107850689639597428402278999021401622134937805091139488569547186830000998546849961795803836524015461649094897943586783804570379685153579697333054365569348754395600632400060498370922956154854768296812042903702899701588866487789783067427865432608311447899289937192125524117768767698279609144717202604260957993736537839722466558396120707518316745434268540769181634022415973428171758715759128577576149272884975249709700721075202766473261725797026175397017004516469232909780293433177660639784271704063984470545601784205326572004006089097153035820874331739699527870894222332728073108583093725668519761475102751632497890137890771179039281252672990087615150199960023410024022573967181060975187284058371108614590040893693835325079595071648190897087460795715918766002073572816790480583572975295189759135219742957907502703018317930169825831944948134468462501202952792664553413718601938392813127328445665303164662537561292796484673961120472876562731449899633282759348126562249871680835193561554779351598365948340865957173431342887973747625272331505295760081593718537175571668261808880437976642904271211496365916411389155283521795674120527759519300083225962208500629379010257388129606647991478243233757004265252960951674316224436096143704235381355463494114026976538974446694882795128512393980781698445566381635482950719371074374018371514484140465879411136840354275817215386206036483805275190714811314876491572667222829366559954223516490188780735966375262498108932198444133696214111768381134805778553916909316958252033410995366984599288262566191921891731262532093283960415803023670343220124887591414088339963245390324117406213771393949002340748645823585858120459080852470465986535071408431497903019335830359018346142817332132958046911429623665327015131753755317669951588831742036934381140273616093916806197447760220823646299855135854698879902569195698115434231308132824122192516779246424224755591187749254208605962482496691304677939471795949584915815894672450472250889436390826462036705164622461347492784232717510577436425959727929710770084357427231148076704058924196207715260357588525392480221698705589005389378512295825125969899806192890722657723649889882102040831075438538532037691522096020043185033315447927674162284062463040453203374537389263105336560223214927014200954010885822712282154903430370861574045065608990135619431593487407823288115590786186732313997199383488330853159077645648018765121072687961611623828188539691052392111591797051583977387622886142219160222272257290287728780175084141965584045656074562689749329358889872053576237771449087289800833713649790808291651262011921276227867433752617672100261401848675883351729982648167641922814237563059198742738492556429291229533882388293737445334854728214374677256040294661966318684105102023111356144754485645703951551805860695991626886953707198565397334111156314719483887516122896570920753787067464882713140973887294731742218872724209948652914591563420777211251557258237262131831337073720859945042190627041972875508474026244478674581079329574854403742024405325797478416220489185476763989697347938148549229320853519473075427779910167090589370929403263716888721264082686814113639584739292824019848198340387434957778927215568438003190250373986789290126628937003228631214651104013585981490274556004932479859288481328030015790084079269896133217283599854098268425246605794278386901398902267081783463762515692058384706366102735235017720285170726602849751839941375754115671512581000841350144235843697245179298783857116193286840922589557369895691286892177376123994907441051081052015760381591148435682958510647052749627837967004293797285838334606194211395916009411122416533364872192814068592813952517592442202561383024637007653487325066716531220681202435855912084885697270004421395142723795718998346713659318322169135752330464985987620237494496667857989181458929363613045105758856959526636095544145938922270434251443653924191078648689788976687954059175560740374676686136054884485710903865373247936535080858362212170717614160392728797219247691045000739774329096069386504662518326064142877977519690314648631599860222147186272624796123227342321207460653290299380151337599889168059763152573007577807804736407567383437141597504915762554599835861550288510151652033367812390605417313385126773010355933995767243412995313645844607851271970206979200674855397600131579992813641146983253961019731924204549962024243633712895187565580896521492964479419391156603040194083208111131454241807807517398367344544040144993912652271932541807966319811473462087992374629605375425221167555567965296586507004877799225283717589787995198215395675792336634997846260322088378690038021077544487786290706192295144271093123938965239180275237742809809608540305955463456579003459871960812586775694183770053113811508499975172036550192746395782670875987602522375070529888220287864117737944587966712214837425335906608425739991957651170095532994215378621309717804161640206924108319878015510748968544067367826209258829516438037460164067043766888788915290857155122011960204963000893856598801266683467621484899212271527170650330993819283203870418474982876261975088253416307828166366275204801843891384097451549305248796115117229228653235936336350134749422196339197034077516167219918276882263778997805453757802442885826170559220425514861698234023795667918220302824472836257101914253642704472575644761479735600810484759025212799340967231803622695999840256297082620388726568546659046111804059846336007792407855954796256183933322753489690980464255481391569250624805580457623637508120574762043995707480754248258406542888114020577202823198503846605750692559800455000459660584861852600717137421396534324855103795158533707266772610488339567939849373261283708917664398537078028301716271821705170777505484695794245915548521982273631350304295108558941819561244864473187565127483833293755263496052400184256458557202336024311156706979187399494624280835653509479626384546272764517361034811959560250344261628107137774696228357141692273015148029834665721138514877540384862897409166454170862852198144388292240047113537461534119865903535292380334359797462810613178097007699272834389717496046217032701009114268455962695963598674857204826323677873763791773584977488564397970016268788645005145773067576292092664316027769434445656354414677963210134480632563827837784618303674854478501080544089056786255767352712069499523237530447596129951964246543838443185936792751198302086843832196700158979709874152221203986546577096341409792732680772154773272378375792028618790013133725832178181428724689612575894391736595339080048421397528954365928445968218528757822320089811925462507516528434508258158619214308873402982660032218969611950403130648109754678848482786856285901793690673102584057176487200930055945101436293503466273648938634179144944104665913258855789548042380392973592812234232399531974266131158067991191751996560047491203142647823847888536002543862112556827461192760475938365753332937394220792204987659444304410370631129268661095074040371061173942109724927541850087616928933019075701613841705472600624654495773693560523512255170669312509742903068973528261561060907515821229473314186620076296775014167918589977957036454381455608341892716116324535544261243673937812382386248763248727803914209768512604600375698807780514142686238933442460471332716338568658551367601926564338377160006991264551389060290795016400161055818184948095328828690207356503201406212401548801521502568231530054266189037248180889710187785921357068958112051647088222551660940323760163447726322138520181007478156744273161238467932812896902618033135607290011732696489194852985048059150698120103936399506442556378336052927327458672981456348847503153476741775603732139682158358136638791845658425645176996858751057666492812652873657522544581076857898287409212717809245192656344716372154309184001655708441929693212260244769982264567966289212701948267645351327909221938198085402739429014873277113735703044416154609846046529838771548009167773784906206409849096072124618551932269225701349917846559301765683552428586441834338274396492273662560405189003992000527979524480452689618527954197329719443884001191058662734696034564054229147814089268646617661843680786257037419472205801358050119787901045771133788060436332642499862821980011624870893928425876499951820649844032589052100121885031934106084047246434835812154759542480384035362889626900348584782232339318629162427942752014449398317333170039204809882575946095938000954453044468355021946197224396273126386942571605143320235501006940153544613752823442333703829177723300885706243311969143920978751436018831023389784735638576180072387778942091446712536506798429269900398155150292483546220896931954563069402912001975191260176808957816177800845150166258720442130835967370273573674522354387199023693019530469607820094288140512674615010277018523658349142639238950557951422350346233034963663195358374661724813401994123517867727785386806558069275898883764868892628834361727869105249848020928049373286248066771606424243217001385579717728407321488176808909641513017190986221899825916858349650069509960399593665303352712799249782422750535748094228388814950379049293978922415678725320701593581182301266851133424260656280957702959082279931612728904108905908122730886165212038093059276591768996646839468602648080002210266067924847855188782724310151023689858958716579947677758403542183819032182755921039013055684228923539791894329173516084044206574921556859345247045126014949296160751031268840408120542900377097668279737474262245561304014052527321336372597011629635186182270608883233859624800078958497309889286460026339431530350750432862027109005570131318216199038478271732690023043332382544766244282309125676941920694813426541265368836251441064227516265838157871294348741858141764594909702290042322030724644882704160850347803395239394079809124417004037317366969660554843128141441313047065707896822362989383644910269334296287250613166269090768004088906867288447413067311966373522428211030649759431718014578511788339976115177049677330702569179274010658533725149922713299427063145973676813276830116485305680574625407445340022526984785893208443500427460307755072786222155497503579209092676167244597400136309318082364487339268231667189275154425862716803182301447415604931534367528908653863465675990146434039775205435789176730364031344421856242072602093149556793304966082111904579177239005617449845073932206710297112901455889167453445828326603315296434994180997396552847651814747095612731872449335489070398072676669912663088733811752656142478137390729755133030321055158561582447268425024848240040789633569335642421956209305124474505773401647332858469101611969790293860795542635615205950331621717920983722924263667341501392067406771985324911352115799932955102818201356685022927061408060404688996282203910949392764143912538101041532998652836608530265168047738235572689822232746415581741231773126223012927320905667381002236565113807434606656960139379458327611542599986023498355050301250625996754627496687715157083322542232587995581886427287103467586321033695488939077362708437337907893503428908523214244527820157372666458697404261150893337674297512796837227115706124368890537011143276825461867926814613040465189169121270216783341935073143896147057796084009231187694906015092132391917204346838095424656811839610417901031287115490050921744262610913221950493648283785969767586500761316982437488067333766860432892249014418020620405206824157910699491715311276483256982847441244420229678169684992026667875328180657731197565838639533620475336008869555809296879083443859178898307665760573235267191887868741749324163310183867798697324942936533192128132829089293748697334545604369210662137582630788557727376348855956489797477243620998626451314189523481360162168196301084470127248938174192054824931130658448541118906545621786891545181683548399399311995077626211453027182414580328607271958110353745325987174846532484044922446571583601374227754250656389484407167901609367718269739831805380155836083862095550847857064701647174565215132245606359462370095808879948627031438771489900050613635087319529523074595976536748377923665414409952988801671196830146323390191027012885320197235984211682695192409867085598579777823326095825258691349810260739328859176247831420552075816658855651020002793170431708022123409140036129970647946341027023805852692755563158411176442936617156532248729515092254535419899206120526142060575824910101311903268656839275687536444337919438433429220015440873839302613407151014395061177058257894997028674119061431908085417883860938186719462842086074541017344348257004580016126335073707481536207148925042963654637419315713040035480430283714519387390920751198004340862902482632999663475330752150659598003565133651869078078535924258125050753323935122136451923047861896906080138167933077741838721964375254641556006701939046178110487868930263497041137960725452786619174151450632988625950454365067188255186752126573775470718522857472886628643571937577995249160373776797310266001468407186025596770069185427974073718147758442869482224756018882613745141698702015449234262230797298209380683099365508195441472887426135319531230230468700478195609777783107914955483627777778037692245202174326331707932231355973654125162968538536836845047744610721581156910385802674339176190190913038632473324374961303092396194301427728280603105611851146085753253581987597406672643661909374969318620452842631948669362112181862559111542162817769425667068717545492776492954602855651977074329171449568348029518356132755280219303260586226624206230357066529846702347385398207609186969549065796608568977004101627520805470307471531942142919869323442669406431798062919159997979234712408161051785541911677859672954801464295533216890825883345506572579790402697525562023756412685480861881528367375495709096205337482452839567187209375274885302785935919335641763606067036396491249028429949635418117195389276099278211583519636201123666819761661794335325916851365399171964594092562705003490963812952822975017286610516487013675473377180934978064925406151530673097235930984888509907586046314926362794128092689529602835084750183887736299848673519208061215386855277262818119946752110828443246521970474563066874243217150558292519066862633170446973260985249995042378299567364269624414549168039205939452264026964660684041743751974601482033752515307568513111730228634851042322720533193318330408548216449268294846954572421317393637766843263223262815208966414042490510395853128508492936225114869036734714926384948450511081336161084908400051276979330150630607062282836292526299091167858674627585672526706762884840282484097350450769000648525185274841128053426544727983350299545378304597585850986712488659397803563475919748958787220801837256451662385749577490060686009938398384408827480868866182813502552939392057850008615610654706145148297192308299383678759810875034400140482868397047157908468666783255528840490533057289784413619012468544489774983853556262925049461890594730157160826734465722013202054593334512290829915241995754828780375385473777759929606698196240131684202565850703486177968145118301460456709688916944303436733692137297802777627435588895727593847217077964948638548268185894606744643782915989146938375806203519600885676035737042302859340539993454900177206458021416401852373116715342510975040155011190727423826180371731204131844797694731892308084514817750764007330863911097281810912782938926596357736881930364176511227823498567783249006842982588929446265864199510277593093606674659925072802329120045232050038347861337083742460322213551955617618481158376904087114868634883394411393300282909197099451249582565414103669835895289755476123854107887950655475402714509976041768500073610494151460648887113953737729052925538170461677303115783982093570566786893344074780579295681159433150674073420416533928935735711303469420314276215663603025788262344069554090071797303149276885137591628138896880273498633935490626180343663128098108542617628127280175780674174012221742957881059968309431253380691872810674511813059225870090115929041213289108962699335473713352330885494712054701430652987393949814898307186198742159570663189074231065541124706756317176247113988370619212446249588496810252906838582843208633137655443013228494428785481500829943600463861917153305775486932136098197901659616978005224744036156659270358848676746600710974693810108494284060802338392996459974702994168417788672994660087662630529371955283573776930384050589133126865617432731678886417894470758347580570671535201071271278310120115324597144286617399795307271383117450875822456596759316489109135536857205984295432760412301226521101631792152209633559008715212718895131522796670338258458638984179635605650735778503177956466932911648155796252503199088437592267530665391146951335737926348522666001694646009486229063078931259890848381805937749067275483678960058654997455113000752160619372131899102244791337504325936414598418670084216838312410905670856089350411770630648415142932295926581974777282031039369094032100652746324244818221768638436145231270866601490902317014054673752277352419788822889469455397621719208248559121608323688083098400002552667862870441402898946148819310418134466146244076028677797831247382441017300997333416711977531223104741734410720490745504819634201897153222830791707551591876047764421397150091142331041394050001795116584548893750448161913971946206868979063433690009684205990484423363184703686046157878601097939840541228829313782875281755556016925794253167821596020312312834381023402732693295114734039507560600925246164380675055535972732066962363859761592844691302933183136730385892362136639962026430717944869656217859066308337922724743238429105452213300399347939069079410339447188381750378566724529919219124406744124084452134318963615053270776857701734694999960458447323300092643437411633774546866960137067761034796237506513732811101417274138764389813855593381934283100725150249152180269249684484421565656377591350548050688102385582175624144143885898862841651307746968006222472721622080622883388020463652839553537006653668103905105860515801947069456133251129611756021152793755210582735204779732026296579437729780845594960450683922015717832187683815290557718864463133841907264114570921161846225042050140613963697999594086488249340364633437260764334607535181933308957124922056085423064026755625779810754205946615496465000487433580877805541086929278825993234178205278028689720493832574129923397133154245575424785497106407636049587608258005932706387011190521772113368942549315162170257845004860210231255011873311973674209207929955680588668823583887347879044903085449190387206082482973106596761433653878029740149855759095207448920676608565501782714551320144577976335215037280315142429127359283671136377581043274614806210399238779483938540670960532986653294719505482840031028550600337839222947262068941524845389223821547454087040961131259404387653503408871389396994613680914262362714177194795374929169236444463133083111089238034090210711711795004423069844844000527131365494538274473847984694669726414930033917648048834356206868235026008884049206779909418395780241897693504238596397514986204099620271333338651105244224477772181156358211690091936519713200783746402689308004727986413021867542193737119971314076921127709571782833140897260323109068284732447868604290230275912120186490243800109512957104247466977929518206628490286201646922779184459650101010035520947060916698287589555936071435951618233474339699049018545810751162449928629488001909286135645915897352213072245642934279884806187660399045367847505660692939675457743098121980847807734017658670841794221060495568291431990200719761806510802692674427968529680536670816785190179544692618737993429502199702123754642777028927937609912135510061100248611921998134094027109037921562459150368497975692524965425285554480743020387240749853424515934481217878019016020058701842448783847941896667157291376340954666079690224001405415147356123127468998504837413174571221231555638134311871110162878240602471718397200085432552374884391549840889917039739781925056717115467320032147484727364740540247759223525743775180750544306596229536262464091272295174239450512041364006276240341429735631536831847938545736181673500556350205090308423038700335616846940962081483455782114216218817396570926188664184084506288771849297573152516515877613009313362150705400140582822595894785248441511984897788064755527862026017293450052843844367976815056677101072128063529043713539265956920030351965395414050066270361316496141453598052461077412310960412184744329009559229121595037933456841348111899338450372947291318031398155291999908662298788735610018874954340872608394421136041708400691430650577321802745177755782707898291130928453140794897943453256263584302130659090875812315137985513463491228637428827243611384119773413818599553985105355587993354120021188823730519253101725888952449780603938936628731059636453729001948890795379099973873565482391141271143679338385866713994916452229309013829532424613070307119466591270640644244047314171179918416413082023887937920783047012305303441149020616616278006401776988986161704523714136992121519671406028482444302072771294120540128719728358512313741485988123234450850583801088298539895794721500269890295339331584242443251555676158311443646667931062984169496620947830592866289681527209303969177264374048487063646338801306259857577975239292996923261107213778660121722632515753143769338626387853178901190450742572931627110286397230811630250132336457594538531807766573573412428634142700546517364034532475860170126275388282387175698655922225942655099057512022298875840275210040808521068865323523491969511438500529962474414964056408988600073883791796960127633576015559037456778427286261677671058415947687208942558393277324267750508706947283200902809134640934193236277097958787542248224822726824008610748041189808261364718370404504631631247710495544266473988438999243147374904774175189923700906087501260718479504428286740258378995964873259308479860898658238318546731951010952086765065108589212581170669757868692886426421843755206511043549233640456471721842056087444565482682692175328399817334386573492186816028169320333237140286968130512340898389676655572105728672709796860215434565868792644199414827533595932121426692635802528477168232372653812484515091486908775082258436273807620521875409043910909511959420272337288954122841115479792514672876405098515101193169367048283577049846747781537924801695815179717677077751180829752156621885976904034382228249204107479934065574867381857713596820389687666695347496996214010223739774145600256030656333973691625723059048785572124854328701052307437948443242144133382849032066072376405556453275130104042540235035929455109450412026282082163406797551996365739031668546200825998477203284874370928806429404775994184027106552033480247207091667269688599919145781924702466078418306648027287802913262058788456230557913938682326543461749067638083416304803126173129382746055178595594396418186683091346900348947641183102857051754678255306515208298292719851668274178092403671093423794338130877301925190740503977982191638364937047966930574465227266599386832840917394173288599135388301599051923414152248908732799515400794182500781496165563822819434106839909135872634658523179892150403364180070261976399503227224814548817213980372755817038780509667356110046963507132057187802531439887982966972685840325467060258728262702689307430182317556523463906913006349678627418765265865442575228445620159345701236855669837166273971079333859596692287122277924875002674781845077124416334566669038523313057262135993015115860623972197589340792182393551409946141869292304062885934694299830858158724875715447026844925296938359240893383731416245844363809099384879971166675381894329155627421836569879314712084649435162480387324222762764861643746691199369270403344759066471991629987680487984313575885699510184787793478900487301968335792884524766767713983055279582431043508374176888237143568480529675696963237325407206378823230257241480345017226492035851726634556749805202025996984465756470713968862172695181440682990379647502805685080501857725498911662451678374442428482061580760880876614006202579272658598918040651943371790014801624315169946737381543723404894604539389178560873920608734193827204371320082034479709349634203711309824395052939815236670508811874707384259358718107244989762932755300777091375471692287252580109782050202477880953090515254190951466630512070020983656957990537169781030875413248090885258139622085567385973687291594327395017178479349527651007063896281734580823401893563978169479044861947538814996747811793124140125749406226826504667250801874062187758528699626948706226055080624360404552180025424543135820524200648769236040858552678273650923725209012098970227535861494711367427573548943257818909215382096170327703793370973404142544164765029860961660707220981588878691523054711077482989301548856973020960947432936679170835342091843718096095432826365552750592683183185680235234096669463104557652316857738405747405462372586606677939697562661168862665309094535115257251091799400038433089841007490275447825069178273026727268476785024635888839582939505116745531323850560204106684272730325748702027941919177351110438230391433243177331633626019258646596854173092325676362051851913129760170282101894200685558807014132496418964625182710109051941110399102314061589141288858240494085782547055651200868460029007680868521856116218452501549881344743868746939474072081359684772347249933752130947810501022192113159413223502627325589874904813519840687053022897673845178356828492871390544971216964890096511483495311101321996753737486764370710569198998319967445572393292053413162737766540560914373133379778710098941096028917582456354050899418927487910468554977526290792634497328703207161608053817040790897101534764456174530598604755531346306192762284631047899761954877931369716075585793043511830346806623133897779224836039010197004759259103588456942776016874339625857015085188930622315120700885635259493215429514539240087269683502757622564073120232875360032471809645940279561664653611842699892311448760432159235336730511354146949255761948446280769846888012577439445680990365122330374845023446533829742761945529350074722135809728282601417686609415443207733003375937702829550680111380328063945485836480546285850590746530641306165977214301646574723092283953108493886650479381132521882879847864183726694298501907452493398069001697966202018163821170093556881590861669005736027220163924350502986976079080672686448556560477988593091082158258781529829571824816188759691371431662758352014525827409856459631752855563810296013725471242895494218156826826195526775465300853158963184377679085057853156027195254160319207316937942314711257737995446473728656052844224093089956097829604576858891288071757193370377440535302671958897676787049811565710340218339425473219622887708964540134827243779793764956932159926629674339772191393675473891694823622359335412042014553825163816876598669180235688180065756100262747987989477810120660999747195289629240651360436056732014410481471861487450786434171638956864301136044206114221225544958893453697069521275255930938295276532003104268252442246528002830280118907507353538154720396181502697746943620254863917542855858689829497357533452078655986071081329522685725264010615470534564783236536160029404504031345105124421944701872955153539914776676465384916880777871772350533235718940985733206559032655346528638885210813017860976653766054837882261460228550395900027711788583619728982074926860667461620174757996955937534845348114484499960688454004582969549820823943842834677956493010025311670127020603143500233692991548642257468006871539620264414336861158454847642032817504341308232049931468119024200351530513945108493212556405842644659687895977459055821900326303656885451267929182513544017077012786019594693392545711324227075893275793547068412320399116761766255291092755871668740656005422161703673052562000430789588838150083174939360843902781462845186267507939512332147786003943532984106410545352446711350730376670852987900627304909426262259883693671528571896015614418293335031732246379335153225639124456788630541118805473413622898670181976748926833058151084120985526565896063595649264543460626063974962501009473279961123714510585671782741331738210806830420202589128656278595027009954695834582943367538730198824449323029928124995806880856090055686757648333384668300053480390963523383403043415745004242895520823628142574106814205244130237747206424652650691727631886643681229374648793645825252923930826428965261715331557907108800505587645057472234355610737735213719582367398271469440878256344614505051498875220092729426466461056807274602973978978286405597496061650529443838655911300367242981571470518832724036447259605409781989073780616376019457769637817348102314406292306223530812088398578974343377002199229870300225688470186407218777552283463817659378803361303381953568071971649445700424420899041275251058552866685058072259926972310164650813781153557207272816804933798486935274089595937077476341138172855302784908762792159199207647571247589995847315653925660388469219556861897142995376167973993946127693585944773912563163419791551114333699563329119672890433353009843879264062798668087387575087888192029898312352778774797175088587056594923414901227221105318788795951290602809989010571791851035082482083583353200909181055383664385678540945510200201737523965307789809948084109861947036986100259423739789125311784567293818692183601104239435210223717730571441707017393989730854945358557957573042082913808573323194645901669104291725088689988391506334922008046246615721159794088773153472321839518638503302690604567791594965475107772505745999138810437648794462247616380837171326661017057178160189737595386830213147000124548104579259143660419364520069621730478349387153738380344738535909064386784611360767029759047526770511690742005044171281951094909889902530612873167124951350143238217878764611636937423445264740983661251526184324820637588833025183581924915713857569923732936758830388221063919162780947844259781734539275987018576660160552045913276919456437083565193540954291676373472987354580164046838978601537375669381378429135149222839001089134743909195586757969900277177502621108430150386287578104264699080041804449901999214739812671116797396393067370150535569076983204907928552460230525400935441039453172790378688740292790630575791858513994518239106543918599770039058811293071605125459860854146952875299977132657426065777742630073364673652482267466904036513143954761747229576694148049504747265090266450987963548046904388716968704590214956086519905587354509501793870253245251549346640557747494232169125552422211467655268500738915480249739082869807842805683333069381312562792973469265370390233343823984855257687227249777720398039446636079349289813082628975628842068290784771598546829377537872059566908355558518251945671445956751630417624336450311991771486991375916615901923073088808050418431716758968986441647576569791957386122156918940518025078244373165550355710218529912368173841757092955549639887856066246601292749192913584540520508048107668081753452148121794274546385060597141803125543108373912734579764991391371619626819282785109314473530595111074724046527855690288689872337061253134724218736214394340899377622579650854815986229903335154993224651345616841761396193536053530631017698496002550522278919391708998322351061111959149731441665776532183189419516472174432801649157424059421260206589335716571302738812522184464232990678265021345071414683104748488936723261315973861046783035678688397877197933693531844138319391926040131015849947544073381236546956037440230216270476017332671354905522285471940553601789071714860001652883975415195197371551589000392580798887860676202627719774970607205401310601842548755164761441897911811532444689363467182223375934877326547386770644870147159773483033436469985680631831882393186750522130829742786067399090691180682071657588094265574732044622713494352962013466671667039202336299876460059304586846895894159982536755260396079311483997828393030442965413836712964290407556479091497942246227558494084268078384057455345901495019937450834666622592629664088061038597936327285023705426928820732616809051230987371348508889124563451615207590698195258963113409311974709712116790261186593323599618355615624594597427436720402071342861228518654393402931561941494212406251853012686416580825206435684532934317172237431101933965076704488900435869074306474113209560789296841070623204692697622088482620232998043785797421089328397012204748558338855028635295932443228380788853514557709523647020469670121867408062376497797401250117783510790330822277831924725366252989339771055297278122957780520289436335505360320640355567677374155626191141629765927706451455462074823813983090396117883725808308559549078419680144794750489671886219229504481194760820232845647045812394958199623842376384125603823456728909508292475854205775247534332032311255724443538628141685920842992016815716040620122017154290889376135521325083261010566403254295043037378942978085378766307917764017738046548692867548578993023274890623602748629243196244248067792281867673904815016818555612471279170622610329884859559508666655664391630383143909542300465340885530556048513329392183132259805199660801062858130176376647206578140198372180333614871257855125179446442972829142665963861960353163954321396983020757669940485004260466087108850649473379870372482168336088667874803557248254787119839488125318964397246712050471843551628098992190844228415496681436767529265836541578001150188967997842517457235234160037257220216876915574036352639152688832492628409129143283725613122120610907266730793816063671488781313203007569376768674786372452047743557123604224519206040979114234959939606543518681006529372682633851844186367908918358681837015465593815325172120237672422566186177822664195398236246631707146623851184870442748168184087150835109908297612288704022422840440933621256788954852051242035103931680086896515773036719916482937150235466429028753753117612353349509984236035243714400948160763578316427175343742889474944038178908624527368034621623747396744916057583670764243309212773913663927483650851905774492986600998279405036521910301870314524575109471220349823486369900477192906854175538840158420448223530427924380421484101888463506835767498471412219118148457468256053565868901025461135232578895496139437124130749079477537120451393171568458884089879817448107078877239737816248542032244467469835722739400371365409079966849975375324724368984721472139043079210362105241951142243953915483023174406205923657637875330595484255563472221554484550197987316962751257169435037139823780723135929907115550114538520307009440893738042620108163775794986147807450047194080464513318882872653741774171247804498204320352074606232808474107571419482453974129415895503072483538148129883286409236711973624997731859517008849655967369191570594413737967871996099277746238144479484023580075180876084158510912166036935790586767504021172016084698707295703106477474398876209289459110228478849640734938861760157747573619935455377567767535908863614580815154104270654035655529906037754777865112437751574532468240259070991532507565662573867601672403409686984212066684502414399837497918328419129969250630950451379418228503408958065805613925475608764005875910494041094445638750515583956319504217764775584453330792729186668369528824743706182146136778200433420691690719127959153583301816411745850309031163454786088439057236309440838374652001740895687896209627016401114556705462742020510161639851492472925303725336931919473069848980581572911598921165280004041623773873422683613707263204687193154637566001764397539850511782472072442530056083227414663649949915679520531609760395094819683814705152110060626932416933686913151166050707789719366346006347707662416166109508332746446482752973158709730287814815881011337855215030639246184028700352596543272293329311325479653715107463075235164064163380240039759677615280597830693460985081504844711795743739237716409460182300578631060635548773172405674903028015428520511046328468704620348202111229128616291149396082079624691941921114079085979166355875162781340340763873419568727740147031092774368641741685360534569651232087608195573884711337123509645259756408040366884551946235892954863930636871248926366686799558719344954245101157396380144241790370374622948817908837550847825520135423621854919892435745268812443018090208877135577502574835676666670062023066173002722113155579832791478872728083951825989125907651591979575679076988867570621781553778164424666564148157403549315296386894399055571348622458563246667214108314282650740250797339405172615832372024619715242237265991735135006239288301220230132148482330175817214784881377665145361919795343807262118677462237184587374126648906426445659869452733948195587962531480264668714258936631852306514057517045241771541318747334546896268184995758803020870228546752642312864437171145317514592664776697598904375491903746411589835617710877367346056769523526414518022107837789552958612423217161181227985095300416100203101851284914313213299620192165556786945016036293400360844303122879343877432481384796620558965483151163011401455428429710423224634176329018717796468477381526910804065906938241558700684829589043761482030375678331659224812660633364515962901102125789181306179021113798096599024056937504270089590078820082497927612308625570887420025722267670205362451595152664225955513804823037178018648749532935904574776062316559252440284421125706170524319125864736032462999636930267462636534575385595387432375545074993117197582593643405166611459078498382207082316248362702859662215118165392470235624928000809739254906681858993018126354994098953115951916900882763355184682634134704095928626551917691603729925677825321491301824255728835579900440406395766961462442610857579588303946265581800451786438353544448477943001031446097859431847951889845713850955076646889178409004191388761316466663876235291897774200250795917829632046965573397876272338320554684070370374299410435217793711684956919467178537924492471943659267987919818626139265672227033760774794735922085484173733391448557989889441960355283354365096142947681926226673794899835688068453333944152949639609809901400978986814511517637719007372211475616692592584462366408454677901581625963424734322535781178318097530539206965991672473180113957314494199695586342224438990340552218660360982773912002167372217992472720079011223653181577955839933243740925353023999630150398785482925777063063668634363003342291847967501700839476110964868311636487392507720113769609809329062341028979508901903954743465695487634228598079788008388188931954756527995272864861301104225018477748150379238236380696512055674810574276273470722786467032103702824163126603888969557119475719418748000882918827252333952060067402216656862388958011990935275889066979451078077640103881693343061080998892242074513523000821290554768569851148704847452314720082293977310337544290032131942812874081755881246870849495583679855110222098950449909239570347133796741177594221528269982918305549446751761652024108917452369289319207259882264220103001150452786429174480824951322870400529383084768239481935089009337696676616757072261294204357915898720898261793817021058029767810461032126395485105015878595280242151212708241217801836890051862872827854204281986573019991648421739032904270386090926711644204357293836729620655154194674874922225343262094894084713053377391049825955285714416979386586572773354806850534094980631282627868816035850166730486038541605871881660979778159185928103143570039590642520903861450167210632958887175820375322689156827774246041440880278141321939403678615213211218677615083203268225192283837686041676086276491763837433809172067887800042230732641786548025182716208988877546695796076419763734127200573252250206017942861663058603984704162933433590901964539519838024604368682663124592923476941377059704770051366601436109963184228514415808966208036281092162349117518088105109794529202821608580107938096741955450050250113350890318062637918901627185067790015114206945989269762430734847016763763907786523100226694789012644327597322965955628763829834364089410475253876414187304769014596541444140256654554684863360162880685592623901303941099347433403308242019301040238844827800255324978108854741657269615105900103540594463198634933384186456444855362046067469083662337931422680863658199662034106152116992179229721536952885907462943614593004170897815535705634275697244487348204727925407069733624736222608857101434446576648614401188644397309968527360522179302251164337234523820814089420520601010976341891927628607581773032841673522762373957708994361801912769512058889711429258360982976981874740971946553360793034271221916346325213259403381466989656012816994188281777960138970291000183729127710300868886289321377832892147951786803572038675475612659636296489356736215449807904334110010380663096099138328167870914053824642958427524377253315818555517220780792747211111745397811090539149418572608149413613936719026988466018020146685122188041600813318155654189866167472521288982181846508162365287196790782013311296156656475611288848388319529455484051255776602910676092192130528914224489901676894899897587152393785372508711499584694792820413411488322668912228883438420266216955222001083688827864820751617450766332236135832503671906147947198364606716087436824475784292798422736750334570004256451322139127294650631320806502489070592029104851749204812229268312914970854520544911048399203847371256776426216661861697059919564855441988017161229410081353296398006811361602649315349488991971396563205188671633048578786982401309193652706546638355039477688559305767682065288081213544505027948670670904342200082714719696616815853109044270794278383554311638414480115174928840079995104102413613953435628806562448893803293641807436306718965489937822991313500480376241719761318614098727318489848596471693221243234981374182910692090136150321916336032097116017288985906681749091974410979480316715002575213612081993853132985243095442432718786188708236957477438134719301809346878547470302834165898496878467954785098322170417988309502882164426574159272434480161981178048941085934265962141947431463821245352081934931412491857151138138624888499628200484775029208031725758445939993000079613836159181141971960851397597436205928375073704702844994326956628276888525355310038535124084397779710185364466614076707240854049920457649661739488530088335357112389697701492828381153988258902771199514693098659099537328822717445501636684625132173244828576855587019581607979596052585346527478997216301565735664307703564351680738562747282143287549239240352490176544275503283021923079481841789268019498977255721325874794161766171148437050155201656290843054937311931414410190129241503271809219532644737464244787589604597867548178858493893240129722030328145320443698263421843151810916949161008664849423429105016411753991115482079257746780092069596826176008898344261560153358381069042440319616394893894079298423383196857236200743394131614942424061750783132124582880312307292294827405302046421901526141724421067429032080127164530598430301744451237416105214592546228139970879889874221373891345544770522602126041845834005165111602236888531015733610947426845057129753956716509888632034307561032228170923145761221681892365873387065618298817077162369216726075808750892430720171636505577600977787662544786790193960668797848704597293517382232644722794530160459378836786011919206971456975839402107102701592115310943130828965854117392733191641241891328146289363903557059732146893661640051070792723941474868357298395676314601419813031477251548705903610679295126508510673424002932210706754010065911981819650649306849058031938449460371747018789567967402426826892995874554623273767017787644831003764158885092059390061029928893552209256643203450732246318636366105048909102419902699931356918476664437783922370976382325325273860061190890929909823797874336677396949259314371405629783224424199626106334494691536995439887515598078231769449493972585290705620386587466874876617002067366004062766337919288347511272952665438164530768194445978044503974286946873151780545938519547086434466234218917438428607754919863737146084624050217727746730542291230456268384386906839033690077048455023044336608756521434867721194406531804448058548546193369094159097879395907208542878802028925154088464018821712709368862364354099874554040733723132703323191663908462665686813476637003836864957275788410729353375017027348116282515925161486790803155373272152329006259733638904184411402145313779030209922641516722441814524721603398013275261163831525789873457390181264945603621624713290641510306829279190238453887669419299014125213364382101206886472595572150277734345695891372666809924587068273035634889722777357551973384064195695472455101501789409763194165910546675613654178228165178915962874439148294853747622198556118968021951535045618049044963925227897715300807880741913421493698052477226724051500849135096220512480052346713564907816939173636211062653209544692507493399188930222679192926758143746039927773993472389711110725897723973593793826216825349795132113675502252713369920694832668600059822532435297664418112861094334750868555490030414164924675401027414264543004490527643378012085428198246952937058125110261231238554460331041028787863322029096445058306310462786629646589282143105912097410508006756417371944812091944335741250202719579091250488440058351943773267351767906725946229293609629266428070302516876268727035243863563364201640600714214592098951152388845906260634366161180759524866399574600127938637527448212839979352648250490278691116242296472889091272708211449674654701402038745551491433180672571834329075484997582573328073929085844691373033639081851938963064272618743079175412623642466696533613437428599949396276515727972144601138237271341087289893049401299236997136005494128768541491630142443497643501046312883044949534399536389217038573074002096345010938588352581731442736553699519886903115269181347959834577897474684036502167257804609612952635035305500589228303180451651870015123523131026502932348294545757864077159563348359319234396942407057976302595298780336228762603916349222965739541515643446754977701074362069523986518711228117393203662186502876576388484676691896563059526538408576415951454832596070945316545204815866691732394150053300895423034083232442941714328451251189561577777535069331837644563188233012940322298290888832838455574880052838490155072399693432670659385574171041577482334561911774583507546487654281421041883521409628822657361496169581683619182304016060122886883289262084457682151410374963134268527241024768213653507244734571375141104026629366057503485298728851325733656038349203863631719227273355195307503404724364817434204353084661247514748891666487602873807650172036402211010644043547276911628695241017330583904810269130861925138187047633829410384988118984488140144227105524535160822584284986061686455721122316609348180870534538559955349991301484631012677697597997999630403412074873992208303011155915263979367531671698667019351955866310064117124105170430635383406071056126395038867333385542126743938641763270350508399367185603349671936541204423406430440885172823401307760870009394294508550437774098929264454765248155384095905990720946140527818521074374901310270416748200406343628927209981151187333607066743745146921848632132899990963594480916283819352990536546898673991398624957924483995246834105772234900834908023730141559487578241265719572336200749291240897070556243639821980738262363557164195650966857922781462297948793771050747888807646648823828034264377403643404508546709478922697398263947297099315948483128284261442490175502508911414340533401835562326013066959666485078381773071927728627717828799739829510714792417059593323346381859263338496970475626860661715599199016836316848008529567542942964454003478109089034204978071585516789194190672063331213133122910521672336238131867421364310039885463134287292530145834521499746898207964794212302906328205566222993673495052918471451379833332517466708187844177159982060363524037846656965972961498626483484886522122506345683443842727546217980327816844128968785356223364125627014345462439633460628602433585482533590390715840983861316224812265563283348104147901285446947301239214327453251609323403174486667270788337816384472722928835451216096152590176970261401668670482698506573319698124996455007816106199862239641393552396899021962107227404425353499514920519891569526176988115978973714867595060744390689697524389374331797977001530491360004768075033241433564514948996109326132077968707807004558620275558557941791676715512760450869044263815212977302188306082829649429773016071992133506319033200591518061324555394335492652407840382669191137671456864675844591264350426153715489840833292011900088311350375476517321897309989069260822661614932914532254519045145178983013443961568213325702989360446729853366001148290369510743641335317077221185762724180136980411541852918008659848347955055904984038863118188620753275014296020109168592331158360949205901861759157882755900824998646651112936227726908035643986826447966038093968912613441858642336084139406629633913105015556025954908061245179864574906024668651964061812921571325522281081806198509947004571120201573689539650723049540678048526594716549918195148518014793982017721547968564531098791860701520292271483405112080989618924273211416733072909106190632483289815070759847725204943396480874603027391017572148025323084926421387118871344743732782869672114051935832923494242889222776714059007167311775007310860861534019492888052411557376606776360566377229994087594614080551803097782789011352431163169477320994536507393395983733032479120419200151298351480806291287784648811177130352367753126809163336688446128274152204607819195985553962808983582581009823351856079047653491738403520973394164262121511252512144696987502959938371044732824000131294489607822706035805090106767877536037919483322954890185551394453769197409702491156775329472661912489268329189566731082491608160530172216494458432174882320180437652281997582885734370254681288233490372106586528334520569256124352666104154578795771962834718216636727383656139343012158864684080837450359999679065404993573597322181300495182764144606703999871412196777627500838560227829881762102850607133054164074024480042757080653446476308054219164938721054823189975558037976818131148493528841360168791116363659314139682272688029485590960283462327477448899186734959912475046968786204280717076502525713031761877338990341658758988906684066535174033080094737147320832786018919804390680399665405059970152523496167601236550568924821731863883616390747625577282489071519698717618396807279039580627715540354700485977279121052110609438215147996472449027298717213805024751833965844505191359322149097438831279551124192225215845869607685035517450348936802009936455477317412243331028743275819942271060037799555006001577915904765015274325238435684827565283319584145070287623067139448331034471233107509907273296248971574445957180312627674669859179489191205878885339792523330765112637465548594899063041900175980396156430373606991654949440242009629866327381231871381510986485301294458641584935556801805606394719705920662108860742437714511293234156239712369325777533403693188727919964887606986628480620907047163033341815672812856225633470863004276926465194234910239347876896179247559594738521123880945240632081334220707905670176369054081919821006479596291670697601681796561875870451412437105896249440123091618196440589535960783034077163327988371703305439246677571285454699963521800764440086822755100777818489320227754148935217788032021501376364468049286147415040703756707666744864463155610779077580162907347883002660697065161125616445393459392355173753142818679630288431656943328824263575200906503742647778171441721174716213458425156990720012254183493783735452089965688334230969777069073755121043740616054755864882794203293411401526514549557705963357298192002675127680874935510716132723401752684794693531124025444088415284220149008745039912793859389494166033490545626452143057115978466055551170100916580317933471770129947668723139673152534379895191412118018429162505927189436751807039585438070940411508955246156376977413664028985611563572423489844649066010507109882826361737102657998799913711290035963270321415477428151411626777923863052385652018482967461604758811332208825609561639667212996943052906202854919439316912729200028377865929291698892301383250551044983822500905951471961804504240650857826448757712421734490947477374168076192004821772907622901801903867461918912563866244349652660059761701451774674180357918854756348625666377737543474918913213675309908573166984318828983624517655334676328039999038707367773445112956996100318258114334500950418589896936830824490655226823203033294216539862338118059129231528931813013154888573466996755482348663578485453559531221369860268469920664388782465378772439211670142678346147761401254904131410799640504299881122467756990000684894449924259699312462351436969326550744939165656583616507125500586803610799137129167995846055259024741780792129692072865961344524980153884087375723934289540742161602757948393577661987871338888526293188021909137519397495660804506777442128653399615990033441778702593446022583151320456678035107205751273880450789715626839991912706542436337760936408222526601368273959140328443989442780122587715916874235592500063705668448904912577352094394333314698620602205394427564455004070080247622597323524485996657831833976494571548430696971674677538761897187638362517316021299689859679518626573227765862628278141784608747071710893736250284829866326284122863863154344253273527468514550091909791555178634266052109670267806526098836646255264532611531778594221369061736384740152578745938138251296725069565970534719554138295776256580317557068254814422126656630833238123225663644928176871293700372996067982349587763841435734096204170203543995526307069902859014904161645991103920788263352127556146040784655816195099352401635317590792341532730493232423331927586128293775894055050090830631716602806045285200601027525491040818363384847707922573300994253969382773262912143367453696066626421509118935507994828169680126482040189768228082417591759941196271409624776434092414089636658550152272302197741087421430489536591913610032827702335743689609785132886519112133933477353239395486179966863989738977450831331012595892658091185672128599339363006102150394450162905252813837061086350201422726783554954569935085636495173862369512793463377486063873310011408619709196557529096247819522294697293314131811823094769197123718731983573684725409912751318932039749532257105523113942483076872582616274360157974307735512653147837290023358523513042896911543551777365664797053594562257224943139855629622102307489736532232385234179046655722290843934514066245633490764196917788077276285121201077809521795442224653371796912220976944187252500685934999205318380858682652081529413985804588690823984203447561938116703235994569085572869877226202929255068528242490524004089803435649307316298405453397620888133798969613619585593364800917552599859987603421875372095019730790715634189694608911744269854037241271846182424631906048780932627468075219607528342063421091744555763692831260105708720365831727074711433936553550232276516356852023342664486218669427206231843733815127874403218633065974038077935632670291252927389463845322198686106464625597250863391678894984556223025960698765537735735273129736416828978005929348955177197011577759613873469828037629023279952743191893025400036148173056915757470241944358951453242815459595663122562381945938968885697002080931659809490791030340854607986790609695813371113957337370662724452031947036071453710169329533878591359323800949513784484076385511049763828357617803858893842002741703501645901319172152295298544060736814441827634608854301404435776680294849170087919499757905996687107658296518649016431202064246841348467426428447502788557356725601615622178581226373645539084000146059340350714839906985533582289388707650146517739337030037547223367480155641960623694271407999406265619056010161488873740852526049260310913141038221522885419008996436912977336255231988116905303423107530000983891189699688557292027703675169796343759104448303357946467982168105276506199909046072980628329574011847825900985739227966297463729247331747106649076847706605172460324698584458683514854701226219658479918161735454998491739581929521857774837936773345972315583702622873272006665665360866679169325699213560059409539147709285916012973562209309513596557462007857527269007081713001467216350022120444577263647255372624833044024000179497908667467877380695841923083745786243928931569201887273259368867026265023770547275279725895438003109734449240885844669057892871834668938116245726050120996675039958734569659021959819343398544274624181506328040713691142452894602244891663492616919231943252205580787425171320974302375754123187555070775698899080653104402712627156346573768635544622257416873341534307404961762352909988010752789323351173455637174888554080821486036837523683486864476331904871707620395284618666434759959751139207884784714959487027805151518418385307319378237434525207451637687234470152647258155844046660333014361579223373665302216756118105325193983619637681860307523134537769534284423138260571859445068163242468100841776474029578500690044388063894858657519095413036068932553936879960941973320798788190570684530672204489557684185208934594769058866483704923269757563423586709986979775351386856832538308765959934171620678273028471932349558288358886930001769478200112196401662120864666840908179990334240189066932460599905419187113847797058513786132184620237201273035725712601181927482979213015184279804478610977293677280333589081331044452542848802303749787403167228888061215396943103573954262906400205327035315689395159860321412004573071669065031385053177528044503354254059899219654993336949295930971472127416239150621467553984617473496802879143855168213132050612699421847158083980095987127043694590786457456491053513628270713867863933925508974026953745657323548015467064132287170182814564740595312675207990462110404841799902788321227596485922323902047619232920055854595254455421885545332362347405178502368861151781932914556666293553865954196133680583867906015026106874115667827652075964308698858958551574978033663620366275600770286244193637336451739685456068969786246259530156937196076079427139004126827928477103762825821080008965395374726599231029111510411792114533599095452926548209465501913855406746419674865023462581087263585446080148228360809466717500710258814099381212924290069083706611700458032071186738023293455716353303883989130780888537150238909463946070574237468077579370854756855961389613120038471880117876875274604865136001341161685073810511193500650248744640871351723458367474866170106103737079713891542890915658814917518654665291905273008387362212842245662603503744128226675944655646825552368474314752779202424427431187295161901856393584814868241984740136928764069389118645474330037138999501796451946291508901141722023947300569398156610202291304586064672513691731974258826650017653471925641053702308108212304105719696824263213023448006739122856103799808867295940234138073324612915186829144886004721605313538106514477174129337116290078464757734719596538363996399891616848093275358527877319770510919027522795176405815766854002777333249033879142938467867951625363934883821541792194413291267611374097376425985108371132156633977517353331822174890553562180286922391004169122962576105259878506543884987868371499340244672804973635997201383744087029403154375748207431051892550689756380831647688463301291754687596763198685748125111938614820781285979976547505938579768231103609914004974438520328067991496850770463588409549242511542057886376946002288205075219791550018979829608613940789922925294737186894375120207119446163738169347406274541872303602663379025651688353848934972617197595101029389312869346090809185300204526143892514772835799872784844238944774236906683637262714981426971799692368339286520080037305947279784405943659623918449702681346675420257111802098667186370014111543134903438127752941700212226686766210943399463542891930769905863840377698916341860421171234806917766722001493322436359561015412314383389010115994054836695808083280610251866308687474312464138570308000395171964793300808301735387910381805799384739571698156015913742701889192056478865478395765376524254976372600138645103480902459735852714108589909359622499534835938398705252957636069908779302013863908810481296212015471040317412913638761565407984841351337333120993434411782689790477838157468064917249573296460411277085959844748436799011280469066463210823920777977494537896429326369771937933569809202393815630930299456702013950343111076383096706685529936348704475875672352479786918079339513405082917759833023916367491153442612057157967274436759483024508384431179492029172162189895715891756477615816121808325848022923742531445123119567935935195522673692576838955672668548908406885159892978107088867138701413972443592203828186323436241151650214138806163771888562104948036874415812157816164204626279081192030997429350065215943468802247177612221003395379805330386849436172557868821865258870996336269383150401107104471357766350178932843352740595118630605699680308301316478855690921728814330634459156927165440104142869138972029718059292915759782087178838207597109607485420003756756271147008612111210509309093847951175454979176662973815133299099419871569163790313073299754304415450871519696466802284858418920840903692300966462834602916082914667089924895080617773137514162909021120264396813432162322154514192804606565621980231231853643394912734415299351663663232534635271211440991297029868904103794251541462486888567340817558967562597943482508478895580209270231604083985625352787996983305168229842065157295147656722739281693648563721178340875528270431361992759983633054240825720066809727949639367785345809441761561014010066448835531277526992637169241878192229129578936814396820186316237814299812233400877588449350737893796061162801859978848731899637986736279045545036230143644844444630945459051799102459712175571728179258651939016599534621259393949992647643353887304243141112747026422758025935033390189646266256392614269867226767925034309460007194861369298697973971996911930091067797902172328688935234824352150132430500131751088568680932320845066428373333215018489459553107239096540397812337676727779000835715083520326796418175986415262593659332295555220910808713427779879402416309721174645671032661388071403516042795527902701800496471670349487061217789425785884426118207664309494478196213562614565666021756987867427014579123716975664567652769415588137058422785692373728075083741039516378499488176330384533040952710588596254388854746582756877215675188480786718374429786215194782893142779391163824207255776144110104726277492832851073308211791129783687249715394014109743010798871651622622113562983587919767037676805487700170582625376846484035353786380725590668800083410643280945315402015077621593656778248598192390524175678859560143141167327099293321320909843357161584187518313758959341868778231961712427629395455605049356647459688129433427686606404061342227262814685638263169360978190149024278112167618671277976501963395555909624854159443949463900379096097465756680095745137782512526657878965645396404780912784110072391829101064814824694590175297055871400848386352734159872389929307058418450451207234381217137642561213843647240216857199369559203376261613185253431347850554447274299801308888839569982945775626880956323610425450021623778244971947257460886531261507727648502940472632523605400269877013461993561588344773356985123106212863098803268850165789926779661805936271471467548395785848396352374402636613122550427872643918818048331091753907124774898707943801132729931775148799016028892359238448867878235095418234703614923234599388720217024752673041617724817355053907885034596265741945667967792818328376279548705297084322003306173259276754581544992881505595101114232011265248627427176200403428698384443586931539147545201154064477476813394486253466533221954437816336326250110484168871207831785703279691164356531777497036366921352389225261094196676132116759100236814266991788056638183700893621232169352545994529734663354686612196150549080913920723682734748150363313473432998779768582799033326421535425452032540444240078125391721933697603741745498810550018884608101046132190791173491570770572361766412932872920326946976951174884161732442682047831186476772057110376383147650451673635250494413139284938540227955648790767332281086490189348453500684426868059884684896233536520040706325657931634428279819785509735738335836877354900967902113611816285487118271642086018378385711772351735373756640111482557787320691066217364209003806322302199055018142249825685496581423352121441810486506822855060438602192121364601720269074388755321412336485471124660855969592866617894560040993925172859854048309303379064207421498109714920537564755422459529698720551193551850952805506549609736602671768027267776900267357737446959011022125597455919521020608803171207141394657577622483458686689488607902790282003382323931606842974701116940201242353795252510649733809709317424397159633176485048284921208128122746418155615671721087635996115666818084583020915405288221882844096373407896331980371922644059326452197605268178075771480582928049135909202452150353348563223233481380406623486924202219510111507244285648924240159916782905988461300676637048951299533593378473218630694455865854855159966100450616665317406925947754898332321075295977408022110583653617695863188757430194594721479201576813057154494527786952239358490669751357003817176383890595837150608066534439952690573314482957413156579522718312186531291458599328337033629843768064175250432889798141104220261969400959208470560351101646620922960975438804293118264994761928933316935158505431796297497957659597685218109272218728389216021568464860130165864318824589786889356761599708643156661946428265860736867485510500054596491383192216306899216577717639087052956969618246947573943278834499581663582357717639397448395781927265671769535308897418734961192183322627039507826445006802421505839028022518649164493627054283466576150512188601107324442861365751141861551880275104076354467125189453566034892999567993266302392958088704421853528172028306038755154223451798173320889601591936383812201843948388830011169661569721351933727209747093704429345272980278889939557441306859810336822740908857609773898143598875079880840258587538628558436458079256634553371643272154500662768769205622119524394573992290300612932887561089626944619487208867362466465548277263211271087617550501222479393392729546663392334193629169877540273862918730871983071432234401205976951116616166794007667339855719743249026420448858753507154519497647620183830011092806355029670439602935429845750999391824268309084291940194576186986217074668736194158163800433694700437449917020926416812011072329136160511304101508732663658543161064815351947065501589334077499192327849335329586833230398157715976038330824593254316953872357559464560912423323191510644772754214045143259273414376842717522350288616526125235399425419212587181998231167307461696612209493741107965911341456825459159129572856910277063209815898464828272103031920513676842734704749510224664791649081140050706484187371151619037950890120416898686661444505046381963187247203544309639274830847946046429604857107996875623531123708203461056234276233472780370261746055491870182045151052009917340509138826181010803213985194103074212242383335236818003929420378267450352471221711436303693698748976585399393838274405980795100622852235709372267818287856693925128933699285856722888722614957883752176016891502505371317448160343260876108548265956324086558431323785324097010022467687192885711239141478423019180317792647725717463774082314183225375275308877281518213485228242452251085027246466190334023640095652541018551745535028731390127609851684642743490796552379228124028250489248263173706207651036361527009357789333288051907560227062733186462676181454503396804178158814939590377616991988602624646306466272351521803715551241535256371133167015824325422105729185893584791249069596244488347933129233642509554862292958741114017148551097960236047572644303070644035433108481581440674969197089573097121627714397862640238153858435511302129603194992141114433608029448983061170767778724055441858220773140569499516971135221527044995463382332747048794764145240119338267496173562964175526510545696101256546101400029877204239777791285089758302151921479434464666860007343347569880928281672690663786186601792734795829398645086712312204017809075522101069730942907939554878850924046107364108765562848122833860506300689258894013140660057942107234907475240119750518643419411121582494196288091150038303567052203546225022535835355964119739399655146749128278774219451004504507190753909845459954252514590932607535639948621710984746413412428432384318461949688127225649659263275615905886032335558203788218674099568893781260724254739325690231814110066404247692780690071405325555135457135557851625108158651513676522692704215512098524136227876559946081560704125915183920958854173572415688436329891381420297189630139293722970402620003199356575241784053216180998972175685497919521884402841306981932783877860764002152144996872940756634611566436471536100989031692669562786379682596284413304481108611630557226168876800613531447411192133984858861461918182865156511038923586194674531411930495571515746484356106126600612491363039324367542121328962197025603699430337901505869472581524709745541962907330965285794090660300156212427577254014415792328256824134084337016246868420319568558311590833782468819954271151864586418178780853385530764548411494820761963039782773351637695990123370199788297475744081096103353536232757359142100340868900800958308258256370556592739183808241362040944761871820948291803987323089846577657474672047096233664732083323255574025132305212516895649340209163517566559151833115065681723118071475668833109188483375054875256421010208657699594384914276476137067508397615790551128185360598572992713051823688961553440390062577552383810539219787519973292835085873601485769500168255803459157610104190398081239947863394352598799800250930784002803501971466456905199180320816696174422195875633961953184442294768152903228066006120305532843067839712489317209503735267848063019035237523964277474930102106010718123386402003681705087170308857419600257373679421466868694684749674908491226814392185417862160866161810282267616440409930210013321388180735997540280142368994798355885073378040221693420172426486335606154989835821118764960448105879491839011678275878064276486929180417206876393524737376502721558765179370741945580161066926116499877571506646736721077052375084847001667262614728472234499365526762550661104477850436791374687616438970012853711741836346058882376524242836555204997766883192337599891195372208226809968797984085629315056539857973532483644687269066003428468332394993452744266998869813568568184245471918354029543735455787816856962605804301630367851693028195331662055547788055612297807096119334408357289078497513378052113722736007608357788004556558303886799383548941388577375683777568758923646107990804250348670550319042871679844905070103890894396188696806243335703838525029362020963601157558183217900433934925313502050529862595550556614309644151193865263201351393736626497818993248318159862071906639060617939094998257754513773647700592939209095041851871305129539845255154795206945572995668288195989353384349639128307454551010542193270967220738596377759516084229616058847302029014865267229455270064788822626501977052662907117841366708250616061785115090169241501416305752806387671077247964389118327501606967284593572019062829051884655948787773336727442163111421460304504518711320477370229257965524209304951913234869624044360562737838688302505625233138807309789281688789985906246041654267896952395931882524382727049826933508149044525836691183092718090491590033317956483067537046827418856707111902169581058252802049448379829108889310403716532595386103896175024847196278424410027865303489173350409112573741845211436968843578227315445131324985459179339143481682362311405948975765083290306141868039347311323761184282255971864774933089451616681117724430545027141644765592037157184978717526350183595039296439810552800955528309340487384534855117611396487364632610789291067221312254821251757785947827754242590280927323241272529437304812827363106975658941130336152435316328590268316649705254633529210762443001746395015827555605223381609539864225253925825580089330237406711599884648400974536159802372370531824661535362916474136530825902595835210812103353121773742351458878191274868018758555279175634075412733172597500626032457429398979955855541424770426362776170312030034458416866645861365828241987417339236557624946469687153239956612250064733182087465557404285688548984127800843353988578260004832374727875893776862360441504595122316613837588858231284374480424896272010326563381071281472454188649993147529800648669846354885925552268567735375399621326445419925699963335648112349107112827530140205258912416312923005892482940624972743413024962857273581382102562063311139240743397528176755973934788055187199040162658401549565431863552655108904308852153299888992984588108549914142931027277942174460903613499495775029445876611219369185494678632097422608668371028935104531389776600763505224213318484073631619341114005877467355730059146951914342367700508100064734499985052991896567381376586118172647323841164258149870509136937856555942414034639134449189430225197602431123446884745903223013192865745774439750082992414052123128596459199349237117365920401069636503824052240092899348547033336582564551705461855084217331354393161999771307769960622816122712100641923263616018489658267068018330900104786976233137762173795313793588691005637168088031304626123824031232344682147178453285566287786893870578660631906724754068562957340514486854957201037804924383994980465779216074974979811324144279019215980106578619467687448045196634351442952559296978653945036683625627958026028392695729094275174739257590436969813006213395626963358692025844560402103637942100954028653056619845730099257350482716946794520441824287553553889341850036628176601835816067101268083658198696932846594722592517398948937044997706366893055281719826587961789207968331124444730791247676096602451330862031659943389545381506819622665776095521557491275809265726949382261326609200060889438216538960983813684959195696402461455207919280811744502450816731235568956928770531673558381635889445651687856795344838223216137645454036569999579679674923474904598184989408237235248922964773147764838554138290985027026441555783975620543210183982024832998478430567045646378536993183365086447841837047741695161733489872428954580583982240082498360126602792608122508091379904511466078521933413069601654180342774928755423501665725067073713882556131308587358414065758533984847359032249653811716786379494856048320758366866140131336505264259214550533592402500291448786383135582580660588166732911629359706250858069465503880015193503891895722403142723988681661236943182201546081913371956287183876839444968106308366705323368074919833861102641335658721328209874748634687528300556486002042410813119958525309177330313567340796290887448286906475274194915570455167554198662628091013963215301331205553155954230341236551828700579200827078240584788294565448132785592080154210618184058159025099028373582754568140026689003180933133639292228968525992500455945306588273132518754563081560853461220616364861207955252646926952051000952950077133373404213337907806349148593442358756253128022105536467660148707166332029951072147149311276587669602390977283294454562996652139508847512890712405516322698703606089016128191331847841759734392111662324638777851382142204896769623598808303748484959232436571759329680426754791310167847416562773689905282084311526023606267807451392404874683841102773319163844952279553939294637424147470489623130530600142165385435629117951751721961307663688703892977104017628375038228623430136496993367834668152626505935644012452875471222872395876295400277209631524146208806824364260178660581099576192065269173613141775329345990475273576542762608660956586550226616305156914687634531149744714975273423043884104090849938235256615703314262029701143902797906884851283869150093890338721528066101673386689995349245750337963972559208815640398852082549217807063801287185711131960682978111489449556255212415888633033790645568041525521795972793552870553037443246659925827511275504390187673101051666576148718766380958598918034426422515480361348130200706625271524543995153278284980586692856850543165942523912774251385488314899977447940582867550201963284362977253326074588050921720642649970286845141087922529043916047384741288870096949694363842691335103717222624742402591460178343719974353657518870186453314651652276118466655180832798047977768463894880030225846280921036586223829957653480974110663420103773285366429822613287591740209666491322503051404068398937630260563630624662840158456402277640289422713092836630710639919964320848941259076618285055131388705104144509170227758943311251740901249504832072312275569747658298641495893240962477414543772880847387357972546711827742606781747377208442608793029709865919652579697424922538918361055819226093862652899097748612492236403738757718512236738414033875176448389190832401850488927026971440318565463943786857479529832173229304874675921133698009910841845015148612593778337643154365121386930280458790606957788938857964787242923656136978007833723955220429059502928662141262878502188136911610361951309092634758245833023811570079718625445252397425303122169721193577491174661002582139505220908849096562337396902058466884065613399671853715173669247122486824444334780948531714587012779590752657118816478070748997594217413357116851303487601284078120004313428529571515644580989601314474277748223770946586838062642142965740977246911766341545976492081879576517999413214138990775100805086452079602604295160468571280836238339394057297596297058310834958426451551411364569953447391054228562949749534924456249922006840493831422705759309167952550863920297330850627657389632139743917862489517627660949707468275837421723078682918109959297911193270717875377786564620809307767399273358995855701655516264008550779742911737854474242621657942487579362540881996762696159114827891602394371845741247735206564623953329214149390524337181209914324755420019337189566172088018215846594309464737153339128093100846261397035360302263116962722383358731601364518690097342416892096234503636717066824451284103080802514437799837717673950838878686789936056715065273522850301129181111601957655834666716950961330061068119737791302848007252610211556408359592344332529951138996950079912923203473422056811378399563951032742802752285837457485270907837305215414161583098161014290021529894562274624983194040718226169293185633087695399966569650197520614976459246784827488435243456605904306178009633428743976114992414860442484873507561556155119281658365745129452171783161211457038238445964306733500619142741255697880008445650565881955871437738002370255167174855184914924411205903039508944780155149461421021834754203319540494473272993654525881024522343674841149943775019078023685270640399204668988974902803450029092379868569725180780823692477573948335774884842421143375104821419666299035988221047661302626616758161207354773359054025597968672986949096787280332356846866747367730033678508678809574000592281746100647085959983252067049899871637000654677817358722083179846669563988238249865746317159592509696269374679051593846295630680254744934861993567983758000049189993520749862740134479535983769198054310303995642673905078970270496881184466159817930242636218619868447089507807607194671394739820437399240263298986592844225973505191689359443440313437341774001060621116171301534850958510838787437335578558392658718357516215030870756202734179026815687574913228896264259908453386672836067714329388650976750870551218007103422734096836290054562766903249514687621662161899446322077226067437231901035580353332133180476988011452381768407094234890294030686970458656241650390889763624710381437918450728211802150474447951886283845385408441252826561292339301105845688126750782788231039418500037023379613231439470217276621856237235470235883672668759216400872056756473240532493103184942523858794838659354851020886236570196663000254257796718756110712511725722876378649728870336065676507431883450493635981204007923139144891331571718392323878721795070647733364031531349590337786768639279879167282597612736592984781240372683983681530709321484306587643360203195680499401904380641751483840246623953295993366388163543081548629294052377010648969014154784846193062053552948718172896210318466671881119456479522463423125756531686572051159130896903144531024714580720407040708000520151025059449156455802440616453196347782973241312294396248360684010032779112098979108846747155219835503821063209250963727777409686815936332094679455898292474333516208534937482733383515968135292886243394810206311998087732598427188372118152164778709163049854145009079140891575183967059857423348926488332159072381634575210537945995053806405560776056613223935640371772422025523721860136282822881352989407942401345745872212437100880340425663592008557261714528409186331927356342110700876015783190465382015963140313101774489409498460714074367174600689353555188724365924905802121312590239169215744087366187746984039465794503650197102010130120341420416828218252331632660187276180893043869633703598687427107753766953279597869412646738032831942664152256369992102135058115240566717673299621476361411187470399993142781889908845980781783824937943807417659674233336406851790544870288912756013339688669310088113269741892142395183533485294238061414338141177808261123422567085218933798197195385375732298117351995037001407818788203815625683054779686217385697695684587040005436360937250028413478864244596008557978271206169088614193237356185303452888822000301435826023193405051500259511939364822987547638010325323355785392097121556371068788101273655393965494537740616639879787199114030366457397298500697195935170810835986170528751132305286272056080977910314650165095207551905962350834610034804893651555529277159969965664428349332358540473782566331204791280372684313378248406235815719351642184239106912210407619931077250974094736347021778699053801983040479202296505780410780488647117471932173811972874656766867201192434446554805300779348599776369063885431224831642499043684112067960881287727895406714969328506532282092374124475485060916174715493490304916590903362549207393244283082448860486253322398344800168274131409007439735152886859876526949881146994873898437382433419827734849349478754228971117724622326303112325748998929754682183157722325580043601466042560433471124317722148484945342931748619507418705339365812227554832834333001177429069776132453679657374123806494087138250709227828273217920607473811072837961699289679569591154972376637940992277014882408593662714574832541349220642249351065436461681505920813284685698475649422520331448242705020224990561862818678938378303301193452363270628962963642365376786872923522680318076654043558192719257166063020663597444469251733757616487423519677022521872897199601560573799832830044291696840992652778864123274180383870348229810470943155367071022014097524827723613940699426303673993855535132069828381238941615491393018410557638680108023168509275750984295472520246161045051721435576407703949809933012758123161776221324611277138768129763799313399859781060266105549665899099716305006395632087304424721585196884760097489950847061613598912249713044082237026904099400965601356694656550143141055064027899037186551354170333196644054874820096793452976084658594988127767204373315463416206332419749412862817045555348810272670692161840937340280490812338633368576779992532434126392487440866202357679191987986375485195859721271220612137981360030679683020679926419790473149929740376986122882505931650894421970078168420168289151505569236121375007826085699493417468752277045211753040655518558549628830521908439431954392682731043151894490663729716052421668672271477040591382091155265168297490032207567539566225900283064127322671267623578557447059417819185566227808032687447691915646221881915203750975917881308167445577719240870627819866407632254870470028786449802198262925571422182240974341808871968547681406320516909549104608796322859307614971315836116286021937401944097541058054378272313538430082861766807915015161997675909245844851648579226329591973422400532433566032943391837208808644398289160721346252473374258512869544214655521177070825506301352026048955767463768139409338572408837468627486234593970370851253688072393840499056811830091092500748161158234897430695544590666911496870149360815928420452992714736199436894249668165187552342131477624846384261010058512790502975662226622210086382827991097645194512963350481685743206545183440246893110657122259535187732966275431256972681822016119511001300245504452105672380190723880319277805353529482604086140623590767800118082647347691395597456458734026943287442970654462815720963280893678059306870929015107774020196498724507417517166682186573590563811618241719862528327089480913015534161882606590978896090643985901354042122872610925403085319362903038282527609290656458599829326954996169095822430639585354862714309641989599702853679406469955450881682830415982688491239896943919590120155272878898044787671860769565893944486526521108710655957939924666561928531193614803432954754548268636775493944243787542909905697808113397114835129731366232349183303352712588409016739497566365963739508802154264697246152635535692367863679086398181808063865717593010240436667042852101690175964517319381551005930981224184848714604445474650839875157063025256535215932676940684907765436638790009245345687948067428084862017719611591526444259820449900747099760711090270314458084626697687520469040679910144269002757326288447165420508133890531682454569620796853980632200031598226068347256475375549357123411753948867905113241130846982733356578451453168342874987564726888119383218387107671931483350560262875934158451671479444483663136181110437384136890825741817988648695689622005570018736307954414098745266457826099473015090096154739351465584295830037703752721621182822816113961138346803240016703983394458088133090089553701033338450692557764740058472822432739468183636996256889414875653681853737595155900551791183771729298405664651691926408262594059505888678548687530312271862912127130304910612247025397754121612451753114620271736027055957401888192447510710452434659024696279948578725846195043856563384027520477377721564039806975961163982648522584912356584981568163011346107859843399802307304075129498377453136051321224625289601819362315527571741415159549771925727289064864672623471586411126392428270761545791281712957822969592327497192834841084870467281349748131010212612146963514608487224837417239396680129638996397436841520702166546167563386665435130671409593156302202702966076285670140967590349661084238717755106094653414753108846913149613044497448286222769410050456698468747482999621572932103478957598365127083730976001666226741149857901087450930250563318239974527618771585478466860769468813123957896784703189647799538078912697757918062027258218043443219767542918997576560389023492488470993806274786559321112572910907537309335680635605177206479502236997158763287072565474621771690366852016000358797822579877090726845202008840709326254622092582515358580213341275281216575009855369736226414647005051749778455597855074249208560095510230819006067631555056336980729769043883807297460110131716206501512456993380670199630630318023284871605780016165657111888293157230296293361007681215853214565752454962007862517908623288856570587055034386207318587486550782099128973466357971206687347953754421446672079745835676375925895644094589228050871492621686856940797583994043287825054555847990534453941966341083701471580543825279088899043109817208993209415440472096440186597018533529981604053021434322226421895313020372816377403740235078486810920703371695506483735899038986191530676866822174348170835483856774216023164974657093823300148610196389886784795923780327748133610220699958360963645484475916573475750268456292793761784690396657667995715326884461415795635887116313995317710129669332571568987874559589617244253958223057808669421002309905276387823951499808711886947200579312445492088522514825593394421092836621356428760673925008207172529171400862088095768952184133037130572468114645666144383510562946943233154619084976430126129646066138476199941576104923082627614187208950435185326950354276519859405982221422453182241112505965751638116035347161656943014979527059031918602822129563888635142750051733695337358702807863750292835698723882013150722446848492234642635117548620233999021065101073707940616385243004604160967628727409039699614262270887883993419630370460339907314934365286436438828601068759388972267474152383126435528985392284990691565217999843853583328257636202477294227489982772737515176535481384848677584712130258044690246873911954095917205658677464514029836824892281283931774511965634303443018699210518380462277972446217526142502736480084944860815577292222607758435560829798864836740688400203412862866788539649591225914622149476900103613664673104431152212530587410020902558530370031222723416454509090501225016765752714722794219927297475595166349967878975824007184259423149233993991892484949267701936447489327867509690408332586884372816943039139261161088040044509144186017540266614818664038296619623905029365803756049425469494671284848731504552761257102682139959512036817291693545130598826635444550474042374226304446783670265904958498447937828253954753214179452657622676304378197537857291958714160522033674191194187380120497541800474962522600879324471671513634163446547239629708978020275952265953664326769314931164449760303508436125083341906296581083947804724614402714911643705869280479612507316683068112339824973062577641292711525715280599694479151404850495226636461625751469980132148992690197722164748720369717773871141096083764926915087005914490341028141519363117806241024801873670855538411731049822734794728873964076832369904903830924769812341123328106313317822281289761780887487197938188024253323325097300458463191862109105068144878946029014332964241391986913182941531682444252408389215515233063782572400595704729473095271174301933195426391386521202201523230443647289367634718324871043083557770204344289855139645082276266856715820643137070121314892665637868253082586945632772153275654788806138683173576602351203334645692003478682698509624919352423406138139944831159962687250450341642561308173475898755638355896078889110492006406720650593552358171180735777286882698757471316478299600396692669333761829530351082660783497683328191456853373935965118431278401877931616814334275642067781751802422443108474925836797864396557818319077108011188465024660011024223495446213506743139114404827135848962419876592296196728574316014297872391272863023255795818648694424685974890727924699099379694711339178152633531990762196586251586995203654199119855966703360787030165994954050136343960437578150331518735568376304187161133756436111721595711350530645962299849757834216530988220518097410510750299438678052262958801739630488678756683234506607796661941491630921918194992564954663134495115600338994451517221072469899491793086062056427093670644817781592127815178048693534020645054248897826801495825483672877843141292781862228626608533704522031739547367636821389211000798236156632280001654244095701590419491657620400663987641802222397634450869746120242863226969613672012667646183257930429761345518102708018585020585280027983100613642413946702126419771455694869911243989775754967036149833770142022752157243968036816123383211013453313787613241251143950782383037622788288715068653869686947750615654948202998825505720809390315660547560278733641318170587144979919197155860281385675030946958468148480957178373797058589668213958231258639499518671434437407359990230111211365801116852809524367495043449299219380443494478397587326963235170669518955815492454424405587313302168091873609474507860650340742668213465209971453774956757425139246129986057102377732471573508526952892077356897122398717308906806870129199967867777720249573104069142339404560752837885475234891766871550028586086806257104543593366641186544162062130218590152537827630924698825019850470096566805842778623137198213528716032161669276985114498702180141060676040921524000885679802117014364315243661383645776974760427391339338810541618998718758243750210892953246491643465744116023305141536569020910069057682213447359156673967688604058017251643429807124734217264260208109156903729056950879765542349910597217649256950304657058037251036089961026282240210246349146839815950403022867294512341755703580017071514902714663945115065667946058487699755043567695100178135476722076785915559219802597897559587750506438596863135618666390070034112870445586141382273296672270869568538276134475760989114030290064200068691336868656789889863971766442455628826527981907325269455456872323413858302068400538173812047541760958889996887999808280561036431798926496541938499598099388421825792336102898413804817562887058020553244722632724280068927731744538825415622287200419453604123370452806740767034803404762222561234989939392915999211768152857802316091893008602632440381406903332207486858621753162811003197458952711482413728498071110875526987960577233767362869527920980159857486882976256022804472672708036944790481659725141215273922174754381705011340152082023103510408033579305452541173383762974992907132861915501135217562767100689483905039256099992226056936257514611471450399466910958835726103071002255220195219025133213964357972886159670856885732734666283450086710877671371695051034553538413235860577804948606148464921224345405708938328131697139270213050919553557259193726538648917235791726157075271920036780515587683712535413349686026969415638288470264076642018489816300223382084075387836384167708516897731545991370996540777619701550900832247636212901639951293569675581983614377255731740936418811678117667600016122475918988860278518651832349582204710136473713760083901353216346147514720582561179767890184016178714636025745073381538609401393776787248112389786876970029261029032729483413258662290877863861031421298472858402507831421466028610450865916403542080830700430478602695066751114564077247723475663837349509665279287630247688104384289453245849313576545839538269652975693597233919425385699002680843389707911457492194971372463029599150027332555939966731285352032678789475676458668576066091859534477988746455577072429321009181111130344267700861863805091579440088354339886504535442149439947691900285864221273372148439089219679965803224256228617358616994424812577862376640796741572374379251726793732831137338400960913232507056995444460789727617192920476569866412830281354605408305706387799217974441150270285167649596554589476693673250700752255251789064454087989214930974252313307518438299507168691360876178239878399486030593173351751577147532479313728733903885428569382816438372242442331981456713646443872217969401735648999394603763219667988518458865119744297013286709153856219828973264686778087351325226592301710206198334497599428281533512641763260617737813377243916046771639561679024059569250623851344528421211417085606400195088125378038350785546565480346892153226214168251906007062632050478107258992943608246169291091526049181190587055767076393911998728207995815629886847383456075986955395925388258852678710464043264377440023430278889722842908605671600552897078691926068355622859789202595860100985770406591344105688569371469086610995025996822512541002158425149198391039908840267918785260211056134035809591850534344022928092439498027092755504477789016848154383666560845245489504025316220979459799604884374193050201893204857001364113771703484893308534447458457800690458540922646726724777215681992735542102070843603823597358292268709888204129156689825959940005694802167400526863633668642660624175262395923864176081700557077839857978855276629247889302579649837714607938323859270870144724844150752043059640268782475202948404333021407658254995188196105780649064009768527034907229155303736290622874649723700459241050984860234840365929840696038495010497461902666130807812255600674653762899733828522289404207707811702708111734827451939707737322383428324333924032176192847920597590633470118953783208181621811904666961446349196919156781624188378172311367936555243465948820587364725770001733092842022290744647196111370455726810562795874613591391493838270586928978782409282024845399244405500783828742396469104892058482717488959592245314548945124043935601272669688822083964039561909256163527102512066546048067441847621511989083219525607380660696715376921408999705770546915138701842976944589586931006544782174630395821233654086216831962607759681609110114697784018988803878667828436057701598779745840763309391625928324310435039586867158629211525962531976868755708021367204329454128246999845614279364676800607071168536379061456735684287175621441256821749062932973463930669691708579858231962387606409788002636328541868758324198085172440474323762199050838994474047130058887510687133474244962331095567766733277046212043016819111234800952997553204107645024696371222424505877672798900225615404987035810625043521550337491942593423889993550984622577494807885453251110257817370222267486448732426351737288596510793874828542858700059051200031485390930342854912622350308745054009094594327956896003890318268871308789957317033722568241748617168692534883670550492658851129244638246239427128914516642958876095062546133270552468048900334076539684819018005751378580398480480770252258825624345542595453648146807156959939760340524205161996258777221203703032754056718589056449336717593580923150158142028196580403646637815327962204817349172608981166551454819626556750160118472864266111792374838488586794314528194365502735407139302682407615417706964807481107429750855925180457202184337115080996474221199989817766410394585028765053414640469550822609841043092842045321818482374007631877114934207413950578352938054352023318363834258178459549199421974214758801388358962070697107426092960989641633044732492034340841198334541324675691689558462792481698477863498474991330996996573469492825392048561473294637556233576761693694536581099271993246209773207648719519806195557883876979375436631951409253982837150566601637984087026831555795395082932082967084159208301484809410791851916462247875251080817234426217673610513522982916211921334142739763103287288309840241953385887304886436556039912275317224432483974369036292472328294450722421514798608812254726423443469056618544436650923203713814184912692422172289290194489707658261579664518219706060303333648375729099660151727201199774194064844074274443040440680568666212907234050391634663778783097879436956620644901342223039469518261071806732238561428065794401319264906001553441132145533164109662228157958486336273023518865487487742182699756206304743834456429278068650868327106663874400818542257914756114995860437796683123857731672435236494423791223644406585050774709633941094291058454923841246870012069778554854428009552705117108285644035396356890865553893427644211426832652759172650200547308733129294850991504071707709479285627761012659762979439811766538619446558123775250494702734258356700337672192169205395969486503391550706415534250380832659756738142480826966804240558045594165913160203882962560098289278775278404710768188204812675325806456618698082546273253309604592246744706623965960433692686385370292765049156756973664152101443574338528131513474003034075610973632923607100264432367866584851533163588726799327573259145624805827764931998971873067695782515760255710197666897250581546958441738842169296760609438824394931595439918807040507137124507798665404014945567545543697872245327969960239366736254338336430592135961554906133559118324796953555896279925783839247272341431842881630195912210852566600954170321838176411439540349074501920508827944668210343400551637831571508332203198533461584477783690112550234935760203018524570553971170814719742402302106900335200138393816151170832144943743937274982201417036391847547462924625844005085545976036678317971054837832682740026902401837636502239855798628623960821019129154672825209402138535324803959483059863622872155284608044322304871176653674781342437964849837818703124965157340656524463969310457733847646665670737430192907890771656723002943530482330398357408978495601065051216563704065908462889543471838002299075166662978269519629875113636574218738573477976828285160380556613696769151117213462676315394815526298104696044561287433378815257542700923813823146077120622965322875166311418996595245192351054572869946476502208478647421048932664624213390763245694284224130830074509338513293795914059667886711696555926273581895298739985114074062782359243416028054420710643526889716133534436338709804748572902470397890697466268319153678219445612579439469018928154180945446882169768362508150161329430278112309987299813544037500434858539289089650055407241023936091967957697983347063086185864364101608090711218677674251404926432529138953289531385176507539357424681499671525410405886170111273323326424480156989684863075736278282584341558982704254258372794584160969620797259894357415337508337927074870554064648077629084529340856014821173823252217366569664751399316946838637522579603030466990640830861977238431759744625792601403068293933026811122623046256167511224740055360527161472107936551737616845179542944193510655529284551516592346915156562961831511834801553229086590031120003763874332224242956911318998680124635998519612598489649176846223474869840585876853875335781915494019725658827959637227810740607538346600132174154729599183056354802774376506900546014626867678032472610939461681472229806715876578978459072058662508002849166424584349094554982485812565540338113386984965046155016439027832648463058908108690241645559404702743701708911935111931536056248271816892037840066396083485045515066830791649389837042234131103133460276343874445268667531646725434090715515989267065558592675986413161919716666596390606377453235068127124070938593588493724857122209381975806507930361333657551776219661792592324266007755513767961696308100656209498756950504110704972743244653826858369326757320572261267110392065730580179621651933620852204818233957228648813593104134097207300025383876034562384133113552672012053515093809303259811681407530465175568454682908129170023176910131504676797724925268196155232266351857387942225996315155686322830290013563583952842000722326437889087419618031547132607305120951282031499073498241837227388836462357433921919428364858242955686901366867072010608792491834692943185069918399316583128116754331674394771139980053692023690000146991083565625896018976550686431011693337613953231076103808234225477112883231172578697873621376713273897480450911333191786578333657989847599749469079685055930398162469265246143121660114337415073063152366968544849495729779821817439447569588970245899755530664340028564265946034918281298308534545349190670713151230418507199769871835917036284787963069757844685438912308994517206178177887593543111579623229134201059433610480398410724357679212968668635948678892558342996429203378532249648249531221827738189876396847347522857945074153706636190064841752191313039823888397475820190144564489211183651505022389038517437362161729326771686647157127636490881953052169194901087439029968902487906667785571761223123465615162763429376368508216195031528060710204810804299653663094542077915794538222320181253898752591944007998013086068872184768458898848720528798748837146244203840448109426252754848690401906892466401383217507019587947076674570417538131489658023027321219178759282739460767126943255879123876760038265793906911161092525049324411491712391705113077683392070364302722552242327134901232776683406207472285132485150841624662232612975607166014115605700526629823848233388690697665470125011310145573752500580314488607423918105557815586370402014306719691510306751512081735131873263311223613085339296696491735051546458956140429960568738502481179755885386858352322480377306285369659259102372996273034528641402143550641084641877285596308486853304732607878586664459613816745926982670811829328326159935112652849427989859283157343119193349225378899601191647397403091978149926363715656257337703309512341509319120441457697969624069218348015539858388742934218630865214902315594781661499197239723751719099248031768395692014021009077155244419562548483803656079401605934047017931688173487557444178775858800036464945664307278921574699606127663181174834143471486434876916692516413122767763641748228665346924571802703590913406995056578567001093125842057602335643751827800849189105498476168388445723987557205188288288454019139733590112561571210189720278686610702034387284737371769206893884015712199553207856761613828667271540788367311765134958612863852495595186168778846812801977243596795477339443723075096005842646321379368931075127543467397044771087591416994838852220708557002527754283007177494964196441912740907144566679684509736127220981537368136864361585283774578245363027862070549477479077945267220072921528022873755367109000327129165573632375025520268496802549122079927149670145289273886373471832468047519899249870667823793860224593915852862076697443049874560058869599029426790568429000535179988818578131296799963259140773666877874166288151769274521041324514525347263869756558270396491190096607729422826752092302077953357305334751750451000212959700033173777537602998692300784618848156948456508193432248807330612333212627321107071046340229786849265146539306791371507941815926114505869016079220670482318604016009369376754735767773226817880956680454640953832846087971432554640193526967856497026868234162792209115188776907015887564814089949215198465003919118650632839641605962178674300925169424554666381435644760757462161299442532029242492926980796855024096125474748485835629021741518673051412014321897556611258135006059522587269979833918547568926248995785246670704307897589083634724174473267973206678498923342203286388202965721211204588019789499638952254215621440448964316647281660178444827641687167305107894538303984811502430955955485183614985932665052806657112440425693763911799569244041017811312717769647469156373018703902973003687246027858152101541380354703593322541166388430190731549940654295019914084572199928750860437586871453125053545569256804968624522539842608858370939131568061315459424748025715008993007737897209481294978254490667956620843750417665675567821996004516720611535275458512049667998566718697142748075536092709440826909845130907332568418068634333005188972515992988652831952944972715818153365023432970970035049751290285714637326379378812335892719928822205654979582937116688369539754056541332810099026409078788709296089761878036371397526256434018213377475236147718991042068982410961455674494205375226682038564571838266298510984229609538763367212696392471245359543862476605959519997935422320370891831703335179795414870036638296458102437196996618533597418027907080724742773902351952670088429931364399786415829897449526797016464125015198272053740764487178781649477720621230101709046365454810930605806705264445834596611368157835046942964144730130199818793838879654108509807615855047973441627650586384617768528560317801003631650628138944608268155880525199357677331150136772586361307286861859000455314452209915328471559607050877593631864194797584549738139102796180320151168387529356646652142650034840062262684460599981733468666163203154081866100854762468966324709072093328600909920136883781012040451229933607864469928711686413937810642679548601358676373735236462258565856212930663557722824270040241584246357917972930092320164560006798166428096399523428120863642915830903393951037646872909387569428039022912906851109610496944654413549458018605490108770272409198792183531503432993775324588088404121965079620463176274961985254449085039819222338294480150649532751799397896113004928954947852115537033482545982725806060015277421121543937026450045558363777655684590825858366777978378286172974343065908130602046081251279719602294359062593350463497910536471614764861930407979650734566119263063007307518975335077708819176644185036383413392468921196449204161873915043854119694235772111359637145522382724141937745581232516352079145129290862568156885096550622798059267258815420674069084156909074457846859137021939258231087485794394860737827612957939873948665225073879017178792798719989614142066498909643722363985494573520974594143002762911644137714404231462150483588063775189794191572380930949574662531726191169157975060605731024719018662323563565900916171839056534065147466111617413108565295465311492175284238604860273083262394016083447401000421261877447167709130311759483538874902017538447342263912387499761618287573268142535222569462363717288953479217982160186491574327401393313419696068300187353830155685169896362465997626975798588897561878172857474860440608849046640389830097421060276118478447456291756264044760929826828012508358549780807393652635334901009307443310705196814818957262297872895965401894998309275111629057525218244469342912305159169330280858340337822577066804963503910196897613182673425355697737491169758947631414040163409971102026468789772352875391337593888327505706920716780601917097446868024801828357030289418891570585787139934403207489949656325582076936357668926808974665319356544123706446409691818209296283165221687782732406651245869179721869932042521066334579486673444352516671197728057995613674245747733765005236223200891742258073300774337506384506055778850415139495606565242409893443256513313847572861040826680519266613500288228604247400175815247372047040235326475332991394093613918476205136590300003424457959232726466593738688425142180462851732996470796592373234091433836740014760758890269329507969684793585385665748089185398731393916613318687703821444000224305103073881353496862444475731068940780586238305300873396685577423873401671748212915934369082038285802146851051500965600647516570006835862823888155353467651292953360027939036959689533838086626232340955559136958731563188728076132110272140096581629037024556900992184373695000528859409843412983808081944298307671035626523188787703614476800733590072548339830510513340242724422497233548008657019466020158930956065064950134984264121744420223453261705901096325411631062735382033492974129271846923763757653322377917645145286665519521483707057460552943572870686265251051862633053275929471506436818643593999818684298828319016522378684625375651473579265618949156854020774065901326849769766706450470616539671950021609023788658953188760593902755599696385829809725345037729394853113221484431452259101243835669355724356088981760751390197875916507658177192368610934895921755059374747901512093933343427594869507711903575993373432278297882232250817816014652933019428779836791817542501824220317858061944296298984098767506375273557034587583684467781308189627979361913882927002490667800713329649376318133016008464421242718182861546863197661533204679697094154851593695672076218000468487145216126089892456398522690657755739942190122720562939909090364582746758276882076659770299781479756626800213984513590670834887098175664797309658156163783967879697148404436690926791173915743880250175863499549212053107009097661804236066588058116675658492809824533525169423816730143771375459842599564429843971586700463755703740402357732989559439055341384804714810035097811259403925258174600999119729040095891148462936168320995563665230067327219792140790866107291231993460972586877536052858876269767852354099107028255444950940926375093491704270678173378074139429977227957434239244523335409890075319544369555119290199481509764892397318306940704144079193444577367008517857707894465218641627386414632546739862361247545704066231049315572270640290903906190181435050006206203848140794832732254615082378132664013272871874774078448922167909243864800334311932203343100401792145662262639288180529671154142027898388523088843416231395853230188010394287583842952830639059379507962994135299788482592080575734803489900205812668879906474704045953271646384813944300913956821419279521054734549226589996013722167219202424125049314734795702946791715220138485725607736450531912674668401819428081206478977264573749866974525489815255863278720079127437880173576474372558933327343175323868205699913209987293806596298757554682760997691208598255545229804319059360912938396366613193751802563561326275778461947851222716245963387408876778307752905271130677174251321673451363403206826165697453583146166638861005277497190804649396359019680825693936963284531574892130068957251872690433220069222753674691874036073103474089363168406810772505089203866180573501379048837625653778957914940256294033693661244947651702817763590139399556882709717508686178930311387878481323556079830150028075823694549590218888168163428718714354733353473256899930320710286823701946720376190941629732216848942426772559703345078512893454039232806429725796614334366392302393712438369440057562398496259534846732013858306563875816058751333155335297443979126600946217395509454617090498601609583447940816380145758275181151791499505959825371109227812793780886071956364404266396435520633337552768718259254112190050161837981323700369947383745742547216397275027007851594935288825471362756319627458475581444021361007992821603870998663749000296174958386182367859352909263132460211672869421297951181473758171716699005184708854990131376224148517552531147357911096265708717084429478382295061825240845298376796135283572538884025723707215998071039233479501839238896045087321935537136745060300687898135526972882267756115647643693576741288495224449387650032259861313617153318214073763704100596236963025329022251662606163283542429512712713199865808508726075947957017496840816290777316324191643179119793789110094714810281218608484423755045509123532217221533620531905243366605250295222383879244869721456581188289011938315795412282072706448662332937403845417403597348706060406618561984422075197544969801432872155008142102872801054675395488795954626341190281972820174343763256285496199860494510902161992234613446460301084576724954940788314905561871241874071149649950982113077013534411239575017192647945635963268161357407580843444077649953470333208054313065745409454041304890419442714688897472161127252567088176402710643960914947591704839462128121390171726870296038696882180172051665071702632895619845294951316751939664526512432398965465590978057297803341939882257611174277463129195736818348642562718220405015829733789076462813774425947084720626887306392473494674997609075798700227245213394703753424644265769404995718410551663587881139320781125328809917174669677773378027241738685585210601417073720717581842788236642919858283060360548331917363081509295458831802578701659357676526854124689924492713591377465195586515343225315170671160668527064376479394774809691014108441934938002012386693852953077814542524671935705409218350622978367041193431213874674904430905163780819248940897849662544975927460047231864424233219691292723518717696176704648690703704903479867667147978994550780374132189328721075536292263602059684627136940358747571469536522796184305996923537459326552811485241365925619277461115578654065466915068773193825010877993864321113112863236226344457760350263459868469487018638716875227187759339315168957548398794809602985710590492689445443099280007447380112271966818251793845895204706733251406733961666943513962571171881086031078646954329675080518306442603757544020178881689319613029202022953025828321792411338016538389278293110822662871538040104798078038828896576488247243387011881659106294634267663175861949871240641776199324512775692353705184719400363907896075377939791306668876723379239191146971648992304422791208399318256966195104297155920884616344065651075114332499800788018249727142372415055486836680672732226996197820636775458772611980798281709801156292883240842715207925028149477755906758390048305137131395778486335691533491044846745025378600135763864975943075610763325882296670860493803773327160715752923598832200929326359330575695774606452237736468378471376065663388730017925427087400488550387576880539665165423901406888566860579647283225366115645159457930521706608929062341490371834759955687402885035481149257598918919994312574440582104953514236382843689903718764983843332865156313109657013112290606013097386172260266047516913027108316049613236133425081668117142657093521268481336790928265299736125884189165912264816360570407070522919782510880100695823098197947460029378341365645734183901465361487898695149460648004002892365238886156237677691722222490265043862459040716572829448884964837962819663660259101347057548682480240077108287732417922321881095309849734862660088398148553528115480217852093060789141748164038863177293554589018805592182611637254547783166991279011917279738403030760185970006334655326768247177559210797056450840877380330385931051129925286709200880776460997007408711725182355902351009257962150950609561137263803860116402667135435648983124546283318399884791294398104602254187749219190827460977144171983046124423446510310424995822899900107129392967767330351905190689601293558210806375487476080680651137054527494679620939248308983659852809972752140518077878746824604863929436586352924537840103984644169152914411037615885420882471509040675570646268679189244982734044436943501424439504597467497475163158519395701032283271286720768339727817412608598871213395699403312553412308540223556552041427961307737949021517095534614186665389935612815047770811502018811118834729883290676904213860210994844387008675008028048078883329943794793612351182028979517495161689825795085751282429928869062759144090295345171238783910757236749813039730286584577748935520388616977527842736527183972220028207911876855269686007364732722476474876678673944918629073529012627283263351912705898841288914117025426745937216666816409731057180713067468913809484689017828118175854022597949684913986865774533863663108731231876418943594240087690680578053390043161411450573705421683966660182717572272976673888867459437729451632145084920361652835693969358740854493571422813660723976939171981834345869717900204099089300271707623999420769375473767250638188026997325839796121754195444645307698787270494744213211570526263363172295032105762337544187275106290843381585650869260285943283866659483502288152411375163796649113358606892363185439978647506293948569225788583550517331357538224610231286335727163782379367124641443366814341526679778332304894656727658930232265772873143673617146333284889831926205400587894421767548866080819960306240768694655275513678238052911374053428316788897688229798896511805493595317500759762015377806034371414899651813785090801439682459362940185332143084898161745594955539106755765068787206028889923481255380593321128728719115383706230529202574886633341267058856321874203316200494695201298317835673916074645635102184480065789235759674006466485423401722604652062199378458179769033892711602999596435062658810275083816178882583058974780274460386678453053353187253809984897954701423583583445090959462962343619493914329939264575014198897678905233004618323618502149932402165552492570006237311149870893565916230146777824833751967723046396482957105494819892421237506038328449203957472889184648152685680399266143593979287630565083674176650882440634626901716863414618041848852368407526808247734457045205475913507029471496802087687077816531325300660056050728858137092520939501431803405192969796125217621995393542586179862701860105172389413148361508372914209925732403227030722705192835579374377803738269212050103538522941081372162578913273862516271224206877470170082930744315473853381582133380866934635768846724818740995882746887423253003459019907285900855847110471812194852384109394994376071893384353595182345142332800280504128287785336950678288105708406253550991700113972497468380015961626906315639945257744060301378640500057223278956949636154550606057613504390514610843021157049786253607441224958550097962163877490254527018870348942825689337405849930175365593510449959506067166121921860108054948699107877221638735124356730640939949654091976285360670873096030733453248970608366923419560414220209824566468857250542682910623885813540339786502376664414807644179826658930989851384886518264197293231601721874735574686695033722896627380939869636427588511836979334252304189644650364082613571114374748990960314776720055068295109237401672343280049693284754987871674657759580531078563766368329224541495454712036817893955996094879173734409650093370549395048579461802242211728001089242017028024049341623656412228621206673986909996403293197909924387879164576032065792911071067606452252568631543220352251358637959016145366928688484058649400740680588881703061860885772833025218921987146883309142647789013270480860972384780793519735405112050536091450863223929157870265483547299616896294131586191697461396731955854638522602077227753310590576282730478388757235831794941819678421275910541901776938009120600771854327449488554862836402001121685750612026963043169849204679145479724325006033237625960022020303715690829418081190737016330854212242840363117847106872159310168206425357708003247171575153073424208601100269279291524458314059422268419264479636376389808088421548208475960817802666841418552283859500956372948556340820453259393042833336221391209031210192616362240947144715377261620852826802270010778513916414157875596800602476587976439962292528038551198451982466935069956389846175460253209299896662803812837634359666046572600856191855622189935993965217796306997508623153339304287842431711795690972200145069054024058974042072101552502252522899742984517754879072507228251086181230433879776399955976545592493071764581994254369922926149623509964914021957035877852979259254821819452020810888911215592688081412892709013840607864018798115197927995257055389763692968646159172494752016495489938107565912417136744729860415304463251332547406414624332855341386390612033032302351573635241972701775813321233666578325304757120113780412982497963956016642454192667987185780051910318039768964794916643668933717227516999626546611986535425355669650194272855510937150196597193888471774062895476585473122472869695172205614349570589472459040529336037638925674618083676105886424701235702363612466709031300223127113907072809811285082775598050085623992977505185489390288966475997429485341095131893202806205215042678021485986261556129038175926447604447450965091388829926812971407354648023386844207992279351888730848313837190618352404964976441265779144444265388783201767728916344319467679460934703346139954821757659063536071066741287273173382136216116667420554666756895070308038916855629677857989057122850586082199949182742388620764076932643335090950532458466247801941254951813852674862045135849891775046700002143304929169884290008173002009851576058316087202546219813025299490737922161136690553761474227933426049121439895312861755920729744494913377567660773517120165834922655018674921173262275125194228241069760798458587589399242980691992432311315956367534388119970249361780943854932617189294594705426590285973165857638574508427906051849505823287370700403331961870035773898688795153314080425462091544753828364530788083225936277983768996421539506368997613817888606604536227061615912707366467969499172757554543228610873803963790488209598223582124266454109031548038455453928406815353160652706657960865900163627319639167326401358096735405391413534824834190054859855650903907577668161547463469137980745661978953453945728204633402243006247525728672692969276995036740087801313318745450168469009831203197678585109686324382006526650085518320164515598664303606254685962085575974157516352717527013543366770746691812841489429649273416467656296113081073387105289497940864455538758278081902141650385396545353477440099720406755204811624245430283160545821973593241993591481189955648204082446426642697163015704388470075850425723977494072670962802438394209118322558728358426851444069539484090755132172543929740436061287727688913286750795933008174075000501578785056340653757943296923672921350617443775752060723978133002497792846823138449106926756371242501516896118867810344783312427262293779882941985335824209304100073214655981108548084622637385244807138971285574366166745760109753920332711261566163306163375013620675423391376240150543970415207528852573572971905654957841159983644415831300261691047606465086030053736608057028522452100839046951770497476199356692326492856536638451816246834009879144780192977271599576247512806957663357064400303665022881554985230432565280267736293376789986115346487706032903422195187936067555116986793583826336982390249259779105736742530966887805328389536898683611428254184383191168972145877839838416239963707440409379646776320820970052326338730480317162454752872924999316487906216507318477513680977682285644650860124907141418367829075981344145477346206044857433688502010568640773488652027321044706351743693106307933877995667279416795825236989046806233084889850483383274457168658213680541204384921112002649759144101035503666389493178858053839736450850423153441772695790558516199545835336181456991551737055071013334845855075635670050197889724360502155050017619764803595146200659523268252531082605476016665110324004577528791263379415450887159763634168462074206157808098575851493912030811290703528503899685875168933319725264027675113992453114544193271779801477912358787293620718033738788089139509945148863104345376954736870464845572956646327685834365093562892077687923384716196311703899702818148767260735911575134223149196057493625564568402581377458574264920383744000905017732223731850552999699507761487893370643037257973616010940905767470237095687899916577570055387515131690472555082515316437440615475973440844254133495370253617971240239143542248489733179324745099521144439973971819407371560928480090011368541663384400545800723194928600729749014288101104322138557393317368361902202078554203356557907566294201282858542323603784151941779162399726078508956354500767762100200263948596350505927994991290380401542669057694685069635448394049227460412409484323681735904927593955226398656588357321934786861647126870293714241878957172852841927770965359340566870644933158331783529775865326434182581947202946178853738799770098918087974341696625422634622808576283057228988183399764437607920083282751816978985772304279682298496506729469946440772984828466078854667622059367162852040962070290712703875883546040055329915431953036244292108925979386435524673860714036873069293628047854746032507675376961486107591482762681448971814279314875346758348486569165547293246347651135012529881754160431782794987302989104002524483911437183705245338363919322507715765132584178324717560787393485809624670474332609521092556163688390275216604179412419187802874869316071862523267529761283711391726876704875819926836728935273492380700208866821315140516448572804962048749746922993905056989319964246198350237893333386729106838327694579764135590972764750106561016042885219271601746782734751677804457398635772235204269556011840153391707027317889231649642119359185777571966212027985171340817021346668425252018547114235294619013436741208332888822801951979294402456409257679612851745463820134211980136325029759069671711629858832063362895561934256116777581282436659745053078163000395999479154168284154030816499360666195018573367606520682816258123665133851295743545781813949443899665732899637890215656228040368295847373192012756836660001493122366707639928034331037784259149316526585758896892558704409001407442202628618489115069626582888423392499107969828305897865113049310494689266842370369382894389793313380677497144983123720134804227686477319534000556068522693757834589232309945007703675089615564495286400792327388538483017055063763922664966929988079111501177803885682328814524518036004045781836088424416990453658430456947312110769095424119755222045684633079610000541121295964667808720592371852432144299032101345185724821929581491129781440609443900256072108827828793254291171613822077536130108948730876230294552861554091851843249002217439225252772264462636678767572736339128914767506515702440700644667403656664078872341500319834502087038490716443208454425159261761119625776929104903567141057513254920418049206212337892603840073714575212905995276943058524493386134724636066684861499135314371323872304995634612441988275707594630984453516268495439169904244401857664944703626608144475583893140151010040674797153217529358144621097142017603065747277534024438384556171834270574260930748973502349904623189342941264217897878241139707723429202475613275309933826964310098039383228156991778675472162171333242924870362951879646883680141509302889634763951143567434838980991227982323186638741529588586198581921779910080151658706316425346949539056933411516154650419482795385745251730637456100996378749069662755241728658158225399295234310257438246532840099218383416171392110762009229166794993482171912278182740873909081659791107638783967819258210800899847107816147724855460540409505429336739143455281462235801821425919378436768248455992251435198046682377339874571792031871823430034510786221316752070711871791589469364782909270601514602519353325376525914080574175134608516176659057549308812980905232056363722109654991962485934916986814630299556347690051923104269030886475550638428975084996755868443132338028337769998749631776284306597581115494406819638617781319688159751502461625870733003041860853083840903219354778482708918199959993944563670639850099627479784115144482112295342751852593778054879594300652271554783283377946517718782843939741057366599595127174966102855097987808204152312953438824347685540840254353361921415704539619716104458069818873025366950603469979640073784684795116662057836811790669768211918206538400034152938913146928483754020323431635291862237759865312465253490353845343470684885998582250915731778494242701386081635779178129776856900214444913156476327086270632221882136317668602544165914692455127832927348830965569812398198745422418446105263994244614431124061765518495595975603299201523522437938261558455702162431095170118293608423718938461392773609209679050312222129639007191561266708059621632250582128947262070405055038391166341301095404403296676447297393839402751252845073550345680239233717680111221333559446430136138252229608258233893556098959100776480976517788710169550352163295435510085977042575150060042354904461372320959320638337512670741264577289443923775589402358348866605062556248951138036982644662753132589942572000980357612755129413354192520746705842916971438679871168676785942004669628252337770188716064224124197569812978354743323932177034631265845245525276547310275557221426708469886856581651234602279390760786252259489769132610404897766365214566121308607311814067123612913495977884074430890484272243673597067781297506934583608811438022678082371690825499149802824744092511401651921492841922280284354107861856928663950165081136921336053952842705162912529200690632809280604398912270664942682593551487185236491283682441374333325431938292638311261392556383944164888136445139688727085687456484918754443230123549701683584858663688530783202024887535471908600932018495267473482886599725753246804212069125333378146258782052551007391733006511577674041708339760788057941976505061188139903302070590384627734862422221622773611217293178253918265398823182555573053693089206321783442646170700101697627953942258457986166611236133758513297304919312231458855401039818769368735918580130135704439807600477621373339349615149521762140777046260891850936904665264392036673203564753735955544163914503633748654216018862185814988665660346647265351729522672889894283131606103568153192196120998026091097869030461942124592160152215524333772840006762481853315265163439085175397933078250229193459671913659926502534975091501357626091535122312347091061034093026009126406607427268247252013486108309495083709323040415466408291426087025968583743796057926961849615468740455065008957974672631034238160009806112872195656718858930222367871310675239735150421918986003431793397996567076004809981272859725174343491145994815401516289052612846695900900124228691290181535628584199953579516287972144952151583157111618319961762468717954380354615085351938975934434718160454274984013391085335941757916349963801896865654149032021028235734768747064704563359819017464238054146677632464114110830363837667254875333783254298384423895134294438717530375696021136068950139085900261878599852227117752247311307722693783749046726094424449841802319389561099345057187431115400517408223614114864682210210373114657132470119554388105616018577963852347222607532108309225914004791039758517092402497596114866175388540341802310593630543083255024056592042031838914828345765824235660570731826883541427286815924643121172380214166436158721807798645876111146377874074555328941313753430189117930140130450444154453916437564431509838885576551611143876878135012302978515980214791567856529686604038145090348496939563298132288439829529419663983337927604267436100491466588657973173641758815459712395113920380653009580204574647557259994709628817964656957583061083885109390282844964451064849164481260425857314640827178504862143262648872495721439648413074182798547557774924057746403104424578649620922457275285202813132172436662648670627981213871851565751751299274337351934262110817471258324336989844006300690238687965920794997083008051806401457752019278937760690855934049170872697455259119969990015649098217874998854466715586713377247106806069168694905635914305513878390898027886986690755595812024345164728533591307503555463359303822074468617328450039969349700366040002344556646066715273065384512070498086439504628839524222052325114493217301745184571339955401247155615396262476192030652630472928131994543336497787556860659695671735212758878319433653964757588293107488306026388994415078760582731886911044109703485424610030870865285575539216919112862224041084047899633438040806439228362576953214331286814718339726932431736975975406260573033470354592223229476534512183035605389458583717138518552431212458787761095436913363589349838767086585965249713144002010755878797489676276960021896171737407317376757988381971597592197779683433114647441445968458640537965126677119644663560215852345124882796810226722460129135188443691557975231524003779630734951442694272859905609845004384382663809525806225948887119055230867144301277612602250663483743198397095696341315425251833193547767946876936000199985498082368783466045106593012740760618474836417231710538886262840909315612648302467469582942186374492250268940136689608737134802293787819553718309274842130097423028926401600803814310621590604360280093720128998337646053982307172204059062392385141078730001923058412686629037904397913480161721454642752592249458257251043771646343235757070165018260812334060576719338489738624057692227758386024803765758183137364496650523484876450377478485584688962776448851680417416567603948958462338718353428733066472764377972295288990331829854338698574603786253290291010467100216146587073500943327600333660219613969458962061895232535063127771495190512765345942216142009259434741755258747542363887338559355547041170472540090701891348868452944408720168845646920356316519612247760985219609105650056488354258549946269929171089974841265107848511649748322653771587452817253182119975435594570263813596175803494370420483014866292414610911999527753435363174373382416829723408347373593271497165707429256215320692194054221075245367579148942638131344905305110131498133006617740200964023305803269904445210603983919188729219006278188458436187605337268896959694500050710096336834540455793791566129339894350565691638772022194208985507124578498150418562829195442531634450171951564461586112389141048437436201838724479563939094803168787294574464668621555756064254951756902110207568669431001851469695170074114154854857398468599791825712591563000020108438849152536956885992286927698096846868747880108190138950219335358430073390787966939836439347508929093520393529210917090191755472658656369223137254248364638952844756983017607282533089095109144996648121851678499530645915446860945708699953238933100579742971003872831461468795801392999412641309230886583990967639363031139075166090313266473713889209926139786037023834175515111364648571096973891891791926296970357614654255704766378620617647314840593721960762249075541722030540862695096882354382034781745270800261301907487083391443570460565148956086931575148706828766635970414440656672697940991418396238638127318184685508771004360144103334465937813435674804308109348936045472672394486481116563474201331879435320406935468915532459913280269695110696001393908231545416750468904004260551306912996507997330267688637143429401622296759644418949671705931673825427660227712455503395785791261872366009101619970384128915678102461106318803194237613482496966788607648228493956613313807454917382782471520175965733841441860463212881911576490321416502222347907171928680155072386485787996422452377758781473305399497599321354862220128616411381542686135909426476543143726744927919846600763121490160814424220598797904854014084482924130797526530406412394193766222331379585923579019618549353244323175444456966898609008543928587800532162109947359644869272972894378299889325024741991789014790113676272272639441892526325166380410698625345938075468167755891144207887945430947120761907917640631903146121273393679980812981892242530288607575797544767254767628816488126113150259569843907450677962235308082961678122298499522637661089659351153262611346565333502901114236383338593239600040347430171690742513035859858066068731598393460426598930259694319166010747081796102437697421107774343360911368054608576036238395600430366743810991733662655734257351664656496595681988847883428706242007976180517669710728739938298180302203725240067712504094726767911902678261043743195113330191464022221494049900427548419626688278217754339337694083308180098007457457515820712339032949871408598510334017585866073242779389746969908689323033036032274724531209711988782733155765737353750973948304608888597040072523718786987720719785200972397850949167099476818336750274780755209890818376737655292021481559801972900597146283860398982827988474029760168291783269294059833807983709694763513131054230939018160924995223387477862935618037684388094831087370837588720500311587792486388973461048456331378205182540339415588747596687500646888853864061840384927068861174892328490624327913699127443066156147831663676142515077941739341133425198975034038300935720315210601307095540487649098796800516904880304904904026350066961207855191124226022887524599642990577770152104477842071965133430261835134415722954775070433903485438584413294998941007594260093409149496638996356560920163870295744050083185836177381449299795973261091463227189813225875962317331238502747951465874330857815374562695191673359853763619675185453656738619877735413686429267164249707817353279632259848027195652664992105090031499860861976223815508944514219924766178075872224972400325398952863703153440539402701018935345966304051728723056396035537613752918277309404902655641414091446136653048694529383329152945913200116109062352885368731294300241627507617782865377261409540908818644176720307119366170502102339850962856498300453286253605325994108512968251486530463449410181000923753023925129395083387917618372899701114305707256852654804051961006586946044950492355519307472936307217763102964225170412382234573194986151359350899346814135066208260778742737029425024265117599552853481796243575432350246969274762061583649880681780322218542338770654275142078779973305482164454606546563195540384497586496778580271209399025570938053145008816272952820207645158216747864134814908058201750142150600487822040263278636289816400846357351818631703998317945561956059511850445720820241225299422713179642516413974491624854266032811248098196100792927923954109797440568181876392341811670372856999124395194221035523974720855855725647162914255196748689923329194888326533480418324602562630764217747354524232376621685732091435276859422412509509632445520238698787282138217457057979461940988724374040877176919815922282638480402835509389637864964391673612210560402133439343068250839308415587361092251472633960682259877386781283555648805605878450059423629315688577065636504114999853864207471693568430560383001574098621723735185591259530383556355360102492381913537126023800411662589029743912064780879347645379632833983848740586603323718896049708618198944485228829001811009010411570912165296366374449190818227264266016193942700209172514373720390950067480013542725824270996963290024931595178384846268206038074096150656318053139355667845239033476834105581661324049258855603120839824778501705918335001209627389497941489715264247870202296171853971992772594083001324616140100955928090899886910028214212994216439930307389621631843837290374123023613189861273771511670773613528056095064288641313003349484667660041865798968817227569585701450016546952078621777745680290955795558779235806699725687238871069398580004695608121417609065134445737732178431522560634382389990821548081674538805399175355674671855622177906800073200889197523981013803084636684096668521466965859874432413863551748998169366365650585412963078537082998779816949585988159180907511937193509014280249207011708816008901582713725316406792384156991239642380157477051112183134230254268422055281444553489819399432387110156447749148379252038517843368543768658780946532391767134302721265352583759219721895480723144266029543830039122234431673884796991538569631960243540711294688165218808381878723803469235092792892430187850052358100892245882158592914527775770580360979274076119073654605047623866552400821162665055265388568670896463040435806694770342899872337895433149023287668749392936295265395510051433323148542334116699150558912528365739366414472750068801995236882034811924274733044816348564581634765233713082457436517963634909229314704259651307663529044487949851398930696127267341093671249446194653179525427711812020636559941736654237449404198814490445322795559191395688330152705795672171481579060017640672072937266534768830136398745053777195195162850651785108489198779706614714898463760772382323593092201195579201184962744033068780921436903492271186406539091422782607160011414473296498933470007460445258918775596698556462313916846534615962588827899022421406080236778252537744444476658688848158413272724996324380492160138800045672203832949124560355924000221403056410066920669944962818270389463447829118148669066531493912795195192230160978511041323678833707782288687597755373160506590890375053381952634517470940329128933108842038636335517190824209648394228056445418791445143518751891167373481154746567102920450273175601455429503737493522851508803645131172980317330101393910236783970280983209095734004282705948165412632748028891724323563636024387205892809755922541903100684893892448885273808875816054720520426012345016970842808283222176149284730160922802487479593156231536032587627048105730033148964920555108904815442507150554585838162510324643869473618320677061979390872366013716700480161388555111192222500446803866387678783440028610311603524743912474406163958793545111285909194726171842086001925467262569906095100020356187344369569037159802754826650173253704446475581580585930193561905752301783214697855376680894602579377002284297599447388539184809247013174254163266977938791197846962974873238392164641010528110070063464327293260923916835246305012545985563842741034291887353067070781684417498862202452184762337740464517760039368800299577192055188774792897863339293353426768817884912059777312383935612328478142007454304487329533972587378571913065802152990887349539600102239804888422512120716294244014571828281661189681486282218347497321527729685981509983842383423520300674353274392297016767670961754584019057005141193205875947925163940647103627372926163074831325245180663079992765176092844699363680262844648414064270818520520177830437559856148912415828845404374545112282275150879545148439774620438336745482753693114936474158369651372527047414782568164544660682536940346639399753560765090319690680347207988062310356977097133411248505045468905874290590308516071554057386989819809527713371822646955344627880369853420040566699533889040563696970411857109473981235417630560139251476387527425933869560682428382057344910376916762543015217098782164008142910973553062073271297369555973217472491792388754190356734057606997132064116006892316803497508013303739256879864554137393563395800073571664923961447043566731725372919494363684736884268939554395655769106745288689448960605673161619752143977884262684480315557286327203945949657494110224169897230749459023281087946828051708664414190478284741513517778569252881775977862712884723579002558279752616271870022746867929284506347706753003371919429382991616201352623955994593206768599333797783021695115078567462369114310218825729413213566539088528516752974980293157158680481636226524360364232999375328473775463667725423187960940184779044769682021553730494753619866839948417017293229213218784532346848322734958617308124082538563860640424903207032279341625837546855021717355482746462960047179953005081516443161495256215406799525795004686768299884218434396302075597244374738749449022142601180052305354561705460949896810178853174328953857854139343061245233310153975626903046674612202408747072116116501564063851092991833724281586499922734019346466640933433373970729084823726354623519431109616435931155153433519031286874164753147227868083734365062428594370532382180879755384850260247705377060954989659471114613035175879828538142628786953347962606224593754396539348712728821170843911883192879227618554393318438089468236417356711437974595078726360127195031362327409256944994704369462370311124960161915227528569122383484343612029968052371864387060593497672388259216635734313238085016053770147612164066113550403241855079943079086935556267315675562032712751371829301771550892208543088944871098647010814881821661349892184890811800467338331484932662370389270385567563679322364075575214771821488688964470425660560570683660062545158863936065239182104352036857411435066055663311645983883680437458809788741423858643301757815901922318098511218963488294249769995055348109206556274436161478126891903596356624401650166003603316980095320062190373570344598101886072209410472058431760089822282041236037044213517007675566168569038779245071064264767351349348927231699108305959430944659989593027723566681318801510954324131298391184978499516397540437671503770590758351249939528296730194134368521397659159589398481098494414561822753466328695358042851217248166257182136211717649804844060217579296530876752963200130060082355629292849080637617820573988026039433968017956711649370324423135009999606269820282098926315754682973911130743769662515221712995597515185449562874811522311842782639342096469832588597233055684275783228492204178583789486981700249947305495064833706430448323638264858061818197432998243327284110598902844062693728941448247591568568115011412640887674661759625277297614194797600791307624813292142781755257125159184685721156705311667084345639636261384953885984074615627531288924448158996711731331096480364628295083807253545755636403864045860242235872689566216962415093587961130779488284664631487989676958089059168239868257064070318128100747679076008546935577476175018891462828223514897764465091094530428641398933635524944859110087074405160692539265072715686739866172981765567964030881841809380187689922370975557004743757587955355877443812556861757402824338843295208045636971644605152604270767480016716695323252878748734574170188319740946366864287642284657502511034926362470796796070008615434965438776942962675541418841098752655413404143555447018151672874888301605607271149097628156977610126728484421498971521056599632980944935138693826880649115965176552630431076058493689482049662334695694399292843022063648849667915689661276615292938234024352891695491652872716051259230756153747054486488511344372108232289212093246248842583800823672600128211433066379457962134404428337110599848150706591708134769244867399149247769976018123017288963934676855714280355225459560505724649227423702311747091658023884540653764832960922570042392361488725970285651570382911846990410175626471595205701958577066652642631727221907157329098138334326961464540700457879328644800722378637062459765929588991381439371886996202822641254761857078652751535672560349379534564477986507678789755393814900292242537792418739661295007049639323272811574914317407917161323236242527618724560738049404973645064362461198809813779865772229960685726075323119818845184664667551457220972984773216483035058011859492861931971995921399872806500622274358618243194834262970556533323626836637863560346482850478690473442544855558086685566229692871185068940570525607849436688516446570626679949795818247794534950176920026541659747002470062367309018891182377951363435646834136963484548718384762475934137811530641046045240577550931957834975005237039358016454619685412959971516072890209056187939071997595397888342819792746669921635208267046831821137752722157141981590893611580923166854010608543330426898185257590183792413881311104821954071513229527498072131698986299939573601520216048663776034332227517497421718472384184822648092794697992225594000141886891486541564998920904194014434944664647817432580397921854435908939906015378321626521232945393049398320109303671773796211669953219514560441799414749108889668934337116743452827013200298418895326692389179704976618426410192198655392645007193642623686990334388984084297249840440437620639375000193915148454796812813312898833430193013821229529249737741764961464398907564461292955658077450533848156244985960383505878567610214573586761007567097900304610815373667077006093812725550212490142699533891623642758987069817737824091273767602768235936246746436148532191981533974805079646553246851793321222257090756795812797682469947849810598814884475312139618145623769110285752960173476476571533212611579061302458756689874097221616193290213836738968144037802658772482539493072107339201309230331309289723631880809626670522987602132519631010573818430272826278584189523773012409961636131819486188148038980905567195444536117646196768039287227087692727444296636023192534955495531659080062935214854819766522954629530151664465639591120975935074696987104660881361637074255761541020136863586890562496839443217716364775623649089944045927141038013508499267514680843924708392129402244052384715331637303654879165085706994022456916307104938262570937777645364592482922435545909284745633368470817221193651486784286544116937207109168953781704713816548020675977109018437947183846685647508072293308600309358064304699171681703991462455535019679690798360511550695566175596088288457873995576137414884122542964962581388695157864248392398876707003919780309851695485113535084673065167124761925957828917622920960161935985103634359026426530106346378075789430634686135381579006930637857388591329074185158062680668351377349509085698144366727040691702768917892311615367063263999883688391758663994046849515081229515334385403997972925794795132108273153546067833943821038464177476041750281167823606648753205313763340393040714204943798997392654195846456709365029427711432577114636519383341022299823435057763318603071818916301360047655289231921202836384395490538375576913190258834429050535264053189567866483181543328003800579957944240916263944833390244051111299866552647266121000957194037198821354229213800748468688879411104924808749232372682795561372562244016477631462404345031069574936426027479918631437538386733578510633771797081727181396858587610454026191435256098630250400624634921714634649564130347261385323045028900689551201420318330375353067562168903377101667520969610976374396476718603862898120656919214396617870417532754360778208798349062037572669785372252627462091913056890314688991749091372081845652063891449524007796089794556473089875010685522984826922914153228773010979994453826771785764268836353939536338149513621176111796140776150178870402541168767746008908272951766145862558535762351087859161519695723212718909044658311637651141662909142324373044326447634317477536191371019572783220867589582875624258797097676265270358039354718946614175269519423528169041188627365923931423621649236288057180865603152736832875868678039971318235960354412370542561168571570192944443236604912101112119453461256193330922876158299702965115565142299962053070842285650865475856865742943963217760462558735176715613471476449230883419005229162659283313402781588083897997693278485154532677781866986660656030268612151184583793186050122856089983476485042793913499328532630804141965956487216201275374467090609249260774741918035351268113879821710223759370719171594594072882830984988125326399203362954241398041521645763661800582249335126232829835348376962859207897918328797700155570238705926443536235602155413802375634533046525581899256600367356774932973326505231190826163897469158818728788028422972025440624450138930966752284006908700973995528216360170813893684252935637076681104967591288605038755782756435043163382585090390428296055539703866205620115977179639307683411325118069283773761549938399039781302759901305325735729224282968862983549486949600295799371064183624351238793399533109854203865400205528666368743639923554851665418582231453544457245563697232059388578007472517384598858103453732973283294559749163582759179938928478926532248348597874176600167427501131050275662970812970422821919370469600382301000240945654197822916914201288105577442654722559619518486839624358110362175564978162468703165332712799652757556038418866567363990121714979346490634745658191141990533727650644114924148017016769664366177389280449456619428758140881087648870233292531323546007743791508369808857363130702471442477604769990155947464010918725003911774507980846625224977644445598378602955660870210351969743620503124177811739102917465706386927207131082228773290268092391094243215542651590825435292693679039650199373657171587775636242510405724534998682967899627744012227282290030782361024527380187471308671330716678929564571098301771459335654451327960492258514677474576599168250142699255968411642703485100017630438897206541770059564298988399826657191672384576022619950958239535154237919323391550651821053584561428221963430049978917513629911958221907812730914052946875491575044399059431441312064058115141064957681129255386375602954116863664487575315799146212337746109299860660477049450480204740097152141192030577094864453561787095055628002486010405472699158235765849699491639316997941191852246970247636591252552193692424987219854342344311983060224163544889184657427021975223453568624518167205107295375694930903120853389211843692244557398378767199849084489105512102495288422118153746787055338170881117688392326440857330163649912592648266388948504539935605524018034071920856531826362215626564541218087521681942956613485702966792812414725433451500644706694304538709772931071687295719202573483115711320689383164295849142516816359269354186269972597201524901155653013586446458372572051837169652936193882100316282496836314147324969215784894338162253528116204134584016383697882162473841874123875973202103781308985160788896344544825335009445985769149773647189580074402863308867362562340111809993598661998085654783216244566007197631408932640292616777198895393546847305851068783616083614073119464698915392361053531435903353273001148789690965081922218840385052545450147128874828282993216998210681715584386662859410975501748387630142940248976550646191813998988163551890158929032557782856966441761261486634524649431270648211737188186115319709152480455163645619706751789309369962157355737550562535819247027442843900670525261207023892807135483357915955853572727952269940216727145083776332344438947021161286517531530748195463553305850134580787378974492218312140191945046321383495208830063849939910738556155403937606377363242946774660106221702433072064983189094946816350498633814133810747940286731518126602925122519368261320297262124984372383163418833960206302034656127295640855236128608092841791835588641433047957762101274300218525678321663129316830246845668123926598064428827709196037227728694254293971454763491655621183766903836800376979960682596859281459256874926060879474847967753955470689800544545630700481714745846092055557441789154554460975246985983646969631069861666232409639164080410453239205765454159271341932066149572257136105420543146548839064579753498121536175680527228006801873515397544567673494644330852998478812666474643582333269052806264407041538638301594095507594447511551900839610446832286311717548073489180918967868612347438084413502750968311624052576589051857426831062257090908452535397656038960317954340972761187932477688280932223967291599452005999595494830712408804190723353424630083469935409548786171943233120243653742340150418917886415523133609159679169300813601981290477304780117426704646733473773289309714484696400474758275413141093060572022566673129216357312494062874835443798449853391399209645342394792852525991879003223716602354841147951187578231946341172178775717347290402534162009500290536025800211772398382086834539677207865324276487761668092994819009964354350479941701175907853333375665868932082491218327480080534846905505334994578146630851885859841125583485271240679997348781222030690088588720810854272268729407545648096222908751296566913113544793812740815043922040240999881544124054446280015927241194295259904311266369098196092969385792417878940434459129211822318708606491290780614655242377354644852471899583704075746275025075239251191514065478124291732709935968975841912684492960302439791527616604293629394089329621166682772005855117222276453404828663693802851237728880324437087071057670146525597762366388884021539927291253353671119158402444170153393948721369844994689173937030903237335577970921585324689662526573989528174122235412208492467290306651401189550428317193506016967691535106703048060441421383964494321144098432616899111807285100838310955145743096935571593568508879914940205547081903255779649328166102413559150500991522803659019391686587252410734692053389020436003299179757431649583596005159526803485294638481452193485326476152410728726991789662679878652555219322726345903048837216262926594104433545153877927140864993861519415255883499229479841492850437882643820449274671944390285832399260304984234911101242170671936848503561173822212710869421784649216108927023457370716424683668932863156990620338064586111050967817724780402398175741163163804533406113583231237623550820844159816294878532276128395129645460502838296511948833910917813233444170195106149477773560453238044871088682427580493756315197769788773515665355692277240953917598962073113985676818100879939077189550776775870558420282914586092508177023844489945863043119981564883492763793391024590960538988148569578259465236254464884907444555054576589663511743094224867353338753332018748162508807497811921603058029944286893435534764446234324438835516541126038584253451587696951411430227579681543224841955770722699860469502141497269418806845130856230020980441052359652692369513798219745901075739481218645478959075967793170311085212537981592767864435572897312796922263897814347039215054680916110277608686497383186810789099326704725434003137130888770742439215892513758008426523329806778919187281463486205705115022588862351984560039751531160131657469401421207786262969582272427576470586026430759241751142962306582934027801289926008236216072824382073205694454347640346713271941971873948944463466901073702459008189701425409617861137835103333800744304403453702557909462535176100548073603664061985428262946447080237910630685607020788370016951545599852348308204872979847746140605704152704160679592925090447316643350904252964253017031265572385758334127812690828957212197846599551416180740279357323001229431869628236900792918875502163545974536571277449494005089449891582021951833245871174428864660037402945600362763658817073440786724829119762805713921729334864966227770018628478070727372361609474123748120036140410089755726784346334653496193316428690237305969086480463459510309626743277124751230734316774564578238792301823184480803200572008986035185743030947837061184266523813159112504157227788617394795727267115579113144765924766412698189227233469763474536837149755260255487845656705572232690999210760714333728230997352801301630642616079508294943212865343713416842500051217588477924169212617332912070011665612890290809480109296265288030018751385122879136741425859841017677800294441606217355613876453132775407536015279639894077861364337942902462303506477982736990479031761153668337507569199191758861522130137314585552796437725626903868847478262096079267790019862580735916484593809237876268203140390646812295417974515772728158598910519296989418786248821796706541534527326043566180329758174789559800885879212833164561998236463755171951573345236106127193946268232939167972886770585457738237348635082290471533460881248967642238700907036493791664310291247334565117408524417918762962646942758186399891106389234565244931660930534784094205404041186368101420909841419018828009230003158535688542197870720169108611006139199676469511474798678030963538570565234694237276336875549382717799971431053008348227503025301231262415790270840223398071683540591528960280266601113423857085756686753906107229673648586852350979911760158227948252045152703161812394720438332920605801291224514091108002993324471486205555636069651735257167343262561856026185798742191766001579288559833008422536860957088882959420474174458981423506465862305836024928703117198291432835878812783296661068177515858892005780298063794111694857701716273759919380575665251650173764252497977851458022094695182360160462711989204819220164474760613874766637043440098660054317354769134353850856398880447345545517246482561282681331858525938491241610947095094172450885660831255380583717296379519484192874706932534677250194759617499726962819476415739270940621618314950385944050000114915807643592741787996024260331861996788458435108045277045125777589983202842557597791509277884267357504771399444530589429810411405867337902219790825892930840870739182932013912114222459698616828995055154115899557250657542881408629635274189800146764980198175423986024114829526531357221968454668572342333374390343226810958057640076115738215942689479528799349532901478039236044700398150726882177212369041702821836193793284183966263119499978921510836795287937055555804881359659954817087232733563397759923301327928117099830260524326163867270285687534433931177985669936636742375046113879848081969653877882777553646838542154319774839214898585821596566204456785047846973826375269426739362446533681033739394742273431507435967261614912865679828823554820178782989347670479638774045001567842146136162655616626985189488659575426800838500173773767049328312420039700550812840443470941608328004083268338819700574097624107701533159416267025557423910308930441982113771433311179502603287176563881365615598739606413479086587552346804306292969184036277928200149413883842007627998426059960260948106093211282679607303769676542957498190981129092766667429706167642868441549330082023190980438870862205274955302293800548094829677582835648173600811996280869577058739853863612948233590742297143406471826766864983651951430169136647551160535456219382158323464659730737735764803532573681180716841298836383739074165662478191426126653727465625807534882765412587685425204575640589420059359818057953029879696383191258366182476538310088853833717321771150297872771857083862316192981698924185640387689928039580385850300561604241140887176190461142525943552818103188341924264257240672911172917185844822661718894544001163919085336533524607027566649792099363196409093622449368450506462659457785410227677039173954328176825881882191860174394435963063644703585813954080929780279774400735200794289975390578821625817408387174069876360125101493542517563324733842283180533012207829646152818556226905929821050330702150255664951935863106729691646653056562915085029893136128824678631129971115872876421816532168964032439833826835880113923880061690955704494185031222446436765124909204550381087412616651863290158972504033404735080691034067360529966021662661921160889010314859016719457677530006107615470581942493677065478753505886887646823865562982808077063307346769004308880305317625161848622224113842740886856984907211626380726130526442198407181356749967864815062242436468463003792816531677893935160594393742300895836098648834087586022519607280766432324786495828229496344136370677832223332365988358694115247551000911638908097026377980611067415764450824958422921032515001190154504175307296598329143571926265620525140983094184703715959605893334036667584606938626526459687580168781402720846085890524196910689832834836618215111170687422404105797203874648001815211610702577774685951174509666607269304327725502866445017872154592374123354526394731480842856478231537660837882685589111518158439603520380356978454669912006119505690985124547477666358237087268448106810126564483818401658669053491245402770705041383978857576336252972430088398112062937038629847516895973672511088312260875978876489377212830802540522580455030421195053426795897176333256002828304590099336887499361840893745957573454821426526797555618367688173942651335240693815245012718607739939905839477370075243441247009869852275622801003346542415244585763979528776670925227343229798905289366840294479539211189167550834910371192699421551666809728385188343532624733948428757242860084249943621913995895396610387633192341360064774826028166449074211693938547601760120470879625118977322886860426496305035812541147715978199326641320373102868475120881531939116679623648127999641916323937455336358157860911610632980212437129527920637827718893151631215579278321557411979978835727809546490266294399245116487296660246570271069943362041577310140202061362308570871728080101874295300925046881679671616067500464747364274047457253074866913685978485738624197331917040209558675760753704970002340341663759216005351136367252871413695557752848238531345213057268663602775913138701127442611485985496013533906419416640559092555177962316493509908319649150835121488039643107517951822163058974932593111320411685064503717513290626417540679840483078173826180169885978871955056613592881400365939765421578203622880053325155187191412789047163098528425729131416622589813017339120764291885783732900604354454151384914562324859760401263065978353639412441602748769702073366008525204342013341089332587256899218420327744857121951961580408639186854237098191687681190755184382388170615689506388795492254715193240062926566717058074525835793829791154163343118331952661125096726061504227769052613754852636305049628035356886024660301146684964757896962311317761640014574134513699756484083156262248660135088807045099070175621987211500820675828587183390799566747133633042057034751542714526429327717650803882595157428076043440758003635601177594658479725007179195180496980856630153998242898999531809877056189410926964157972001757848735439295891706342583682984492552827595525597771402990746738402579138037154268097805177919867167924066034598206866919575513046683309910356292649675288886180080060590831379494572940451056606055817218574417511417057824574312158515418066895172519314255527067363933815685570149186150552766965353544431150698103972250015751602130749974539955452171015949588115735573945136973234678675128961729021071176155437323228699085119853600297579457925273086989612810590366620373825380050913173863995946676094045371753947048606873520241598430190216178258822247495637512202868198129778822114481406857612370752063745802123527427960322518315962081931919166671609902453035959674578881637165466999930321789922076843584891414641504501652883474295536241053568065999190850997241926722513870296995243544075427802308367972414552390146191615071507699378365717822902841396037178574639504715075227058040368685381238971028693637022752737957869206207119192926955638610170388264464425920323780531260564997868902672433816377235050158705667662886601408836074636952011991839485971368804446732893943611590193850770331722654700737498603852662727287495719185893128687900774300532293793893993036337685898201977941122003219527929445378259142108544639531004316071898039125662682503430703336033307073622988724229339338000469985419205146379354882652712731129109859060916591014453036510003780990913086122486103407009850402232129026027526732478704481633225881040031692786163651919003593521083879767076057754730206447470296894117920248465036170651019599719814334906032460534127975319586463953222716468103089943353307680334553638245734142726138929919885739369674350081850267517590237402704950722153458803484196931617598688454092806108299070700676016709671459792394492955262434578690228423066134498475220160487269301970959211563626218645347620833711627390133131566565412212561482724790595376634216677426947613691000760734780880576094688737845660461783323223588569331606635451308601494491158868858830305366387927691258926932670648513027972953448399708922484639143995986982786651660069924106400048247538488723397255873645259584821987474898777778427167745932898617743565026382420569598016663325801014018963246617735124408860392054473540070296009930579638485698566402682754950648764939947288376599679087662982819810678465594362862241488329795304174320353838985096191148091885040914525180332251381486818644322901432340238500903726875900768529004498550519909882483042348587476411777417186725568056232803840337873610112680487384836595642060499823514192365244878378763118758878601054198863149026274956630001022153259803823331152052448770257862084402700396701058431239797296039122269370965222421034823178622099600642740462705394846412132629550375102194599911138304047364802616197923494957801581122421784530646948452700325351648842937925901866271533962801147228504972760453718020644232365508193144835333451128717131271372484118929271241772350789674389988449441367886230875095359069847698544272767099103560088244164685732790884827082102484326293457352929958553052288394722295190906804403379724344609178241575007343849206331798123204868460699941618020150390141164400076892568416526914150717107191535005062228027726065536002016596606967427415050447462986052129472042985475747903366802246672432865289497724711907440857871860856667399630073658527019264061799082482764402349880557525066365206745512301650754711011171968925807983368131204168734806067184795487847870545445046216259026844422327652749303393128276855723130485370382890534436019688048676905672540693372436623464523168199603882506156757726394289503800109639377513501142480200537884635169564648148705344245835834050393354890409411105441797921248020465835288056329889449641231327245744355125340118610584859350917177105030666664128581708040756362037653311575413228436239720722119836283980312162887906374122132454914688799185277400586110997226344444382205435875364611890973479123383266531342259722149099715949532750085223962286943661412833397567137500327223756519666810404881108217154154316152080210143764354891571891951172092985568410137691763192990425230548556077518846189338757415606899946082225040727647706555714692143596517901458707259715847538938215891299216669638841761711615902313411422923510355910708076834811180935246227319368298660662393034964003933557032801645448712730198755671383028923874015541621796357189430471374411192915942793802189488684493546883700460297824208281072572697863388749340363038932982936213057507135540566220195217342186684596461137978743125286057171908372965706535052762517085174913446760191440654708561909208526707724270383830009622248563377532617050348294570899044253043575086644034365208764235145971151200754978650797287901837762908001905045864264005406973244974834723317211523862269684698845782955675353824336980666226136299395536124402344493280902496440929403897006298888396475293260343636094205536719155072426345291435323951775180177846781042815438391322910647491856797207558271101570480538465990460910719765165446208807821819762425010179179201274263315631452122800940429704979490417077080081923108551649630627126383405451118491016802718314296475890236457708306690885900024335111920061010682205816589267200069165538863493981906372415081127848580853662428427900017602890138144041415908562921556173357855283561503599789157386549181349066545740350117262809003918893869800209010733229774307577111773974722757381044547904306293318200735480114991258902699665084070812014805832104377567545478737379941585841225812960733459296645764902376540441316552885680721119497686485356767928340873909421346111017613158923118818312236284915678498615125876724197065389839392974802757607364851916355398103668467686094770336554381112104160731104241376965650046622080479675913070808814057541477696459027948717327018599681653883706727422141082209401072686829471357120837143153552435685208787296699829011346766185846683402176066388544142594745259312841737164492796337359596877416888317838929333681648018202149211160417020107511905341644945012709476204220745605737483133170564892627193697884121513229987997612278496548356575065819791510283919650080641857102298135675037556647927456445825666228823037326540911942008068772331825858677181164964070081975946388437575723131683990906714646410250977059391657406563701355855712636771764037556717591117188342974443004791193561419122390930867470368068886160556935558370895732254302904533226311759840603397378620731307200873503397372049994434302801443253851090765263661564078259452385049014867753627546773005137352176581196648604635763811968962291629387223418642509583353514672455424093903568817026290524753391651419364489290542941033390107366741106157417020961176440670206490322605442540604169419214593874661570215175310874857735619316932276841183505175525653002433850089371698568372614681318524346775623913946363929735395886744579905273317522101556994341784548052699905344432873218470100755117483484540336929112606955909112544332959626649844120936732172909575017418530489578061256417217475115144524162547839286351126856143435370039252806395679215642421434808149197917994311303164771463467751607165847280371846985407653779464077604261428125814691769944533067380300673913051638088609981027716804307073195335320677979201147182258844340073008324567653062423512302959436523484531603808344030916773136048894815832142087865934560453782289420139707179766626125761429191582449598090677994805771704396857036741722570917163109839250171129870528333537653086993616119599749559539171230951079716164865624154329033773655905599070788710386785114595082617511736247653241669705843884595431339632774240811898503506581339452077359821146067626687134187780750010864306649120024020797583516263771703761192301829120321629138658141664438371352576267943341572051496259287439939488706270600686543775547295564740001291435998145751369911219392968995753005228591160843998075254704970463549664869276149565583024153055658918778802250464276443603245018865432797597686930379170980803118957361272388206918915886343855138809855220242816466513071503375199550707022351786702321339457067309114883633606171983873763700633201006290450825900897305896048689565848982052305010602603592789993101091470797641448761653835211191772610324103189199109378951780536090016751969227952597923836144381098229983532691418267469127640055730755820678725801428614465713938177621827006202238014364199946116171556397695902682603567507529702548667501646209914534209783305446935332553318576139391030058101004580203555760843827266864615898062428374316179749915345369620213013964603264566856012788555563567495576997726815073508569685028939124754105153540199560427221181182930253441277877305912729629228275559943898931338070408516810757972339301692510489102016487177566673310423273258480658068822872592306748722869506089688701799574869555974674884070432948377648766856317314559568153028101370768776763746445832037203673703935528955523481461048398582890365369660129947048863751952082434726083448379533338698131601542822020510177830577212474589779829570260972680831502017314709098796262377658434615487541491307058383768435047965095321084336447177297716595907413516984201752644413581932643372496938466578797075808024932275478377957389750763594302031130450092830318513618212884770127653204918421863923293116902470328963223664499934783778350223816792349979487305623915866120999001258722819065567767429459733343338217787066784875065890027746153850113167331793656984827689080794233410343617198608115454467091527918094485315975071625606963848422742930161878672888026779300390421177496694725738241579412618531850192886845471886477205652579318902053462224830452559330852013930345402442367578001855506646638506949254355177564455182047225203806437353173937751692071227314401595330749068637442066194482662365381746068621617430401216031865322090127686120907115370494772486020217605138048468074920433293917948715247843662168076016058854062290549340546950990178493643682922009371809590441428258957743998683174238170137327840727661654115972678863076943569858586914964280955295801767656613672335047230688178770464783124972427662314095181949479586460526486149154347576898077175701073553018410834147562481108502769766159229010051125011171079959436118998890548388282556320065348940823039197117557643940713935712464917158294323725758316869796561433555187927281818984611630495398755399635401661923853895808042176511710840978151632794432050866984711158649050753038837373278758074572485734052440759738047318698544296107310681143246837620668629271745726179903306570262639598599006270726654553903452941181246212576572542492363708932072490303477181260536314775092364824115812282046839778090989861064756013233213580484406253247727338892977938722066939245677526916302989003759200296233553147896389646751223644094165093037651187311931189600152699721186523082295059649267298111245785365193116750116535088573674937920697781486183638106770592867616129048873999040545360918166625295174148314068034978645519454988616677444566437787838122072748221604048317241194459963381526338978324982656330916333379823633641345877242028811733318251007345828542742390679576208514686666112185818520378730523820610798249590952016555528212396000252909509211860727939939858295456527028278580058752704949396152537318378255320729456771814817093916569335915854651307952798193042401509236249746222183647324260916414364492852272162629902160530696912019316505557191662859952230639464763714519446141032581269520642774503241727955415568210951111764330237750558031373265164719768634638064775744310233812743713390716061677601981461604513851971034164779913869915637166310852959506198311952735544283514513568918432543533799382930119345531668617914756424361816783341437794236388827340387106638656185421567286060980686862008508651259409321612532580169038964976739909020175881585016661106612268082767729267186540950276833138275076182598237092451778496785219369699978267618448915198972980977201955166644601238825166856181152250567692244634439041511150486084177665972985546164878390857004901088646906239667514099373226491768580687102612470581551455551831909248285094091781591720367330913993936369646559578509433242786165570668544655802022642962660032469061860418245904865850124544885680039185922703110917332962005231033891326263342837434703442897671866439320070554821171461176363029967975565380086942662703501691355265747663320437010172681632129903694495080027664473144300609883920328949102963413475239114984051790132871101383510391258490897549723870355944189440440130775258363525146611121170594810454866109553948179470656253612779799504109506719920172890773142557066101826852536586094246114292247560414427650833750890240442138435769544284173318135097105492841419711225759990133339744250390881840975563358664042680081571658301272090502197842837068759633853829621091192755771240052382039749124243260945140994862871626613744125301964092060480333390220153107957946880730213696457414144401430989118831112204076542200022261557266525150352720429631260011559011302945391571758938787871061139313933089929149413994544325732169034890914324639758356756187500114867723929713655971633831698559781320334240029285116656987623937242889608473041680489673374384388123686657823744729637597879790154513228993491536484369164483978578187325849533434080169650733596472415436019721114972907620365467349339403318539431147244528777912792121605568853562985528605454442868313133449526975816973307129957835038964193978139138817867347721864232137291607079838133113990450570127031487525078938623207049910758973124326471136352571154317463482770464460335791173664527045241648474363422122641956171373122842918403251948258311370748732737862342445681756312282348986398929885370218613920192998871756067678694094867814394690251568372818722230109481143897770017499615989926770211802760899970233394664640911123470210667730022487070394166145555505231046201449882172365052860246613839504180636991066493942151528264611660226751827519386211068199997589169663139210062366361292381793896171344810132219012450609061609144473832024804160334411388741998574575275986763385633191595304193539341638982151856771978793168953282751676365395607843008891943456812782191497732002334579621159784287365302306466633986022761212966531790962427125476877454200990257004681763398569717213984429215629718603196435221137024667210120365337852076673165376765768744170159783065088521263229348185394233139168295981456026529727116012370391681957030610385089327174591934424640811515407324421421303484535012446701814146941541634975351366049124768018036718182542456740918397858951783405255301976437395589167307805349403323136001627325620576910777281055733124455183867773211167824695466086341718166402004855881443737961430653210570714993768044476925269275620214993407150530736531909294355522614301351627815455792618706937739439582372472721538322568334219061128770890279219429655232449607110591481406470930726607880665005352746931328934689373877315124440699691841317985723025057873859598175760448849777535915065462330644650140359472532975375109382025245238984894564984342728043989786177067573875593256724587283802111426337238359658789248920803085281605011848911185237453944571965307513551894777877783688446184867233225162316314507032954581219969470975774430860876295363153020874288082727955509697129306833175213389882425847561299815302910579961242665163096927227197670526294567832941106272383766531370839559485849249250767040651106624568161122481894160350576262292667406848623672273595848083893219935257943507184257291558907034722836878272538321284316893287244668803494460313989745144431881458167985447534163364139770220079954586802577385950702985486721183123678987054407121646424722412628931265894984057497253660991648374606991368316931626207044048538593842526102250498751325954870157988434472163985629776808139124745041742439254327389394981676807569747711935293330611646583669704059883900870310755847447211291889567004013637744802568368829227391682802357799482125859307446289196723072719086124195790537448992072751014749230847745381922941370904351580501737013659947250378936290108207968084468699591695081248593252805411603126934071840523165307150485554739775062047091838468614403931965805688136794240428637249099652268351781471007392447577624132438773823617791001512092559018692411117336432300079070082266395577066340662169182669956357384210967423995011016957347464733374210224392285244343555822818858373800906583416455003981870435699266622916965401655922966395532198432340511018272145702458890714278575574007431261825269816710230631365626114646436789151325833687212323097445179044648961593249343609904464032171011301072204416731880877259431163229956144974138375521188243831199855868421917011698122566138677943145072126449526896230122345323337370392746697433484895114877704449919152138940614943225580962928484968912436784230207381343512667706677710554259318744646348151755044864697832474339694305930599027016370408852660000255627801797916550784581127120095589190261164545627296109952696297653434506603513652884521520086739458102746740111258598072970244829652360974862468807080933397436446066693555866538991621808125970777076029418975799693425036503261920750802690164768172391372932071478802614144429463155038100713168210954489626536543687396960910334982566904735364993662575704607375657932908803013366560402335408694763595197502099370131893771768295088315550285133809375007539768413878398413589812861211675880138795279103517975882698378012992041944463776151515555173109949905526750497565521636735975420097479690390554142936804830344800138010846152211167729331702524591716386522776517798037542498888186378488283532261637121277701951475820080497887380210967163419918568057849101096077004950357858008081846519175516757454184593456791514359344936930999686835220543864813786019809682830707196790601262774462856363002281051447356988736424336298477129700265485648508091019554787872583817483784337952571584782944256481536484030200070835156687515496465156311405243327961736341502117690075338883701434574999672441298694804463671334623166169150656202674560751099110731457189293526157286504792084182021056858015449301510923390265963659955442402456394646995738300129178946706107164161466822918947252766679163787400052378025009258310458368871634731088791357454471504398470952391039571338015150770996106165252097236818613499966874156224936860548376094083197924919982126178011943212649816304297216820687837149887237300803177356850423246890966812912093277024605075207685380706543800202775824197873462622987364738258796366959001855529888278668683584567190288046979142769766677260849338230821983051452290713056049018671226800793233968473860955703852405969206934641197854926841976067239229638632793521710089616080668997503230612817637242449048581169207511999482466219743465482239006738796079237393865064956366890043656795629099057829233951381028649507069071423765766486976198972568397323891602279320044551306591218000630662034963621330399484526858247122800903621617163239847665135410797351166157604038490516968816655336047581338168824306891528621684296270133699938015290214551348021507364815289379355750087967918357623503570192263914937262694759030002354611018071055607035547306048296047006669909195713715732057456550355715735556647873312771847069661507846169457244386653476882213363010034291681252502610933839327953280141076388938859999499874112260781075674048264185284778107869346213002355325185462699665922517081577477026664323812476387195983639644047739007975028252849281723245377039439023770788623077418975660233439027996407584852452791501542849002239300599350694120884111081062318644087181745934719336826590767380994031423852566315347349659061998303718685933341780585202544889175131220226728636108547828533075094689351383257218926369917266780299258486226869949563662249598192710988281997950822761264541096288769984545971491352944405393150697322482600661078465876578967614329462534796962759213273027507895891491489244306419863781562350291641007196715708825682716818674768653077788321911166728518006161263350867788408490641492120496889255580163784868384488311485831209307896952264901354470059447289111348758657695973608992515822970766069461206179261989562217349392228153597132362880220275009903167761452675964628707868106793104342678984183282635752238008036258992854887410857230072180104051445874372621276380345537307132089712742314353726453341146808515090226779134471051769134523492908263752174244996616996225127517376463943270570130281030088159063082730226782111352055854719865071614338310060360018441423089438728102551715900973142380302118160074505367794545134541439166448783666362953690212385922789575205914598510624362548949219735734770810927258669229477687133881669075022202977287924029191809990285138053511265232203088195324763379184388675027917986360151531704115226265699316522369983945682403659974400899288217859234521857872358323621080350180582344912702500353921923442128016906079414117699763050458070967510622378365788465632230767010266660245145931046320940828013576496826308927582280970397242840802867748139597343615404420538266556271888541257158023661008124679499336086047250510599633445492761848336754468520732289132729311515964052188458241750811742382100429625426438611393461384137498011457246176222397302632207184327629227573591198553489915856065678212269910767885282213665712311829014058340211371075795801337320959797564386838570451419796147016905914294346377948379063807451440416234988245078320028277497661151051173656766832004552026806324266385158144207097200408724182730681745354439905615480979582799687599979980277033559171425602165179354370488975513366206858273677763597961186479409815828023539954021444267918104903757180704002022448142977366378651175643198736412327404405881662734344803467453432218121697887552857995973412645916840404532995903393990430442090496310676413726939222097194291487912203923058195808599474870526572844842500178723428035007955033621684369455116637398638280750485239075471847912801752664428596310359368784434577068722650496030330595838019835440891339621664209387327876894980545042742743398135289788266170453381975592381494456197596171539710640251659686613287534438061979500467502359350375926719359198600231129036173932398711241622651181553225019162331776191156852658410261750064917592466000610437229969831930489852710803689908748800448122572376959589356961349140076143533417046579255458054892951964564875350816573940428783935780222708387476914520909591529542516748538869401927988826732489393148131052993989665496612813387093150131897434425021757900926222936237157383143888029495073576768541671437861977984640059816733565611214809547233703794514732803367735496206710982029920113827609185943153188881839082889223067477922891272950769983063022390146419126277096275158358929474537659433329290190836203212974116054731191937824388154049933786494480826362223429816574814614578041422575483311682885149247668743317492831653801032420638216329345832944759512900435957807320750625851754404072868179859496055430136289592884676201501913324810004923620049622509686546914392576167597661554076074744323651912945516455112422790916995784619794832570034775776392211960987413245056034718261691526711874201307083301215328459070926359718784741649728092447430143730187469447733880228251767992163173706383310142418974530364180800381359569944393501250590260925842076731853049373793582434338730879715960854880331383471295848966122117828009340948317936137694562999612176679120913404059180018664087423111056780367862676575974904995365498043762824249093953924214505740627163776076633039437354997903560801379788374341538632403997125109766952744230815931462960552879661830450971368522638046666315245540787263153569744271173901880429202089015530757190312878695778214650441938283487895506995766186245197915326965488851624400314327196439434176899666611058736568924772164583302159469140236498374080401837642499198616513902539539875460656966304349758755141361885291135648047877693549433235619722984111650474128803933060321643118151237632326474134398227721160666417563559164086475893944920884446725965851911996493140915981646396260997876571746748381909785517221785642186696728569173714661808860562953319259938726686839558391839375445474514328942636145337898069442645772172380939552827504404799899169577595641336006340415385373386230313288831740065315538023925892423842917216190476842036593535655729292523278266158337855186228462795380047959340236887106056752625119151816308850747597361440738565709645512832145154645943297700837494999487683593151755825045291938181530521138465648475960065905668001515579620612874595296630996692748493267471921440021610370391701261928898410934194211479646167678171139795440492568408690746307602654194766824038379034199754103841886962416780782357506729680104452541660250459019497969871207621642092353617976532320042523390994253744622787724216613941463142697933496831078849599763904999810258568713583916084752161243521715540253762095192438629837633839106424362975729734937472145994578803127433778103252452305343817844411677539710852276964021003507680726864881952312159854222231451929010413549013577869508354888668024032937447693764867262513160897925876649755955779126766998066534857346947983115890144566314293103395005927022989877209345149651304727440527987121411633009176555605903844840325038740758878613032373722503814630677631092919914898881677108670407596069576285485079815995563743655079613053475339913608235167565513849925952965034115862441494446723627052874441020125102908896772057852664712419175865787440152350834829808485214001371735311317418648228478742181937606427872946672417885891883323636406066054488349336217046724792102571346796923912089430072708881023555285360895309651738357505340307759257459362840244933616175352834858661120411737166524134162768284693669163317306576755676862509199981674846524395030775116245141702949683611381853295876023583966071000209584805053437914801090983612811498663391834890011431422829896670758162389535615503037279659197888560452738183871104669111015263098898176803402995362012492865171570667849026254110179351663953298505846896382824546622496150947308887383232302549196995633874900994108352013129619863247822558944555967728216169591587895290478325086458669443640092467270082551682780846831884457656693395719630284688152087729679534673634972331603258871750128267403122789360536341331143509904363181151806723470505436378222639307474037555768453770798170907601638810128854593635733201176495244286565145816810577147284661720195295947112926688562618173871967758864143999879730820673196276262554740877319618198489041983686723864547372422788638613366410964710015296101269436953295831433506793944847781412945798819925195833901038793695025545070669197838215821790178213428143147579728018807234233847972400499919033353286520488369743786359634926524040376387220307355175676003801495948611113597575971886567736302320149104868994724923399872430448196646547706453321499839303329136413022016041966173496653985441284663957852651891353067761723871903716517189630299155485358408153276278050717142202633860841454275330558980544943238281333018011019335274742531198210601681941478088158760178628327080639059216918511333073336389523824322409070050664564817055087291443406058961920868602332758755993870977186378984776214331303942061397213912066844041597069058228640044412699478629967296151140813855434007719095698432098430186056851954856741412907815154797478113486909553400757172917342143828567286864895002474392087584552162726876346698629131336248731495912377624476567734283196861757480969835269054334479130180998309981592498688170754603962446249530029198327957252500076089156678462428286531368720501950359330245551059408433149742081366472468139550464997863380210028913607575906229813659464399616387782572684521443202336634228970838239780043917746419103808040971244084365649237872298104976515292349204024140034233979547966713981857532990029203029056444720028015356281046768004520101795142994321032417564730595641721773768657535572457545581083933572216041962339524921060277012444640590467476605739651712147018588595835522231723558128003879972352735389986913872340514958091144397367656678867623122381490823078209444314705077635500282456029159883344035392194474422694209211788046081997565943562864864807338533192537030224451526003558022477760143448150851283479248894699536679295433113278201006288195876534511134162953166979070575156794065330197136379600816558586397176338993153391091032338247545130511166953004809642536064305909045978019486605805198472423416807446470129888304654422548274931071172858118230306801291270978246211241765069637108603353559522645532419669727292294822699085665301674086406872067982399576508196876548081839465932186010248080383396143994625864665422806608713096456520739567270291862578235301924127156290340100439055247979087810568918923367547885181370394357090918228496428503817843072777885123607163310029108529558477035549494424619513890916719267239948368108943698731955233808208632578504161243648695950725478910816579965071926726127214466753452856350987003022780182207927493226253215882321808634604249772484081970670176680758915174316396834288631479644999128793057814461807024292589206311221469711356789000428990814438827444670682905770654376076154814257961309243281206781676899457396824229358392502947174776880922259259271386392764031528531625881391133245016920928194071376904759881384535276546509850700553302930318493966467591005626795077125422317089647100174585934482337337114350505095282157165211868962422131350094771530230037237346174139210715675636756264186349430473689291010554343224897646936487619675066537665954435742344274643182852356654601562231509928924138616368089563008703623689121373576391648286722132068783692123867890200933587626149101693989412969768649912405388766337458265622902884065387566689489157658114064463511541753028368838955948701946509564157405305054834231470593111884010894188683114666276190833610615810678103667218373396867186272135347027736475839340647663734885162649132305239222848730258029716378819020894882224791623490926055946496597107138344597826072172185447740495900349950219174991196021524771143835881129923840901235458219792412456002187615989447543876043942853263267870692545291626762298738904987592252544590278175623012680571121149420858308776577219069546520931712400938084082371493321870366319052347108229459603010825328793142573100892939286346537307908374828046193824391430225680885162217826114094356615446340940921647351777619340661883789150599865213113159586685804551638749723800692616434182076168408531119423730014232439330159643846333328792250356369712093838577741087167100034846936718257517227599839895062283915582415497378553194966172056886721811340311963147838263218845063633778342928859826564682595046224638601316641738453742171834264806064003139775370429490547369907484655503063657096126034008394292363006561930020655368137126931376185279055175406660389051000173409491198570415316185935876140352081460472930798467529350121699602058736302543554275814165345904011451171390480708092593382308276877799891151058430884818110237056500242332328665210851872142217664418085971260908844699404649733615345092643154088211178316457271745599785386004199945644653652838872471174059885365277160208999048347958041375946123759983125365790011795133688529318486753413071467558618478107024735668050607940575905184924670672580061367759908476559619449415492992521260075405529270778086346908336596439244620443151193942449839362837158425794828203854720096714859879277806018489855480577385591596409687491759575032430596251939326539833152960826391585476860746126850495555415459817348556294510625152040972511230849293539501242064146135686051978117677978278666236765530747924140539725208252410059863400379814040714655904374214044680722127044912236877887123642335092235666227228514714954731566447939383174310171989736089463973906166182412749167330216639687836808199093074870268433435652032414042689529601835599327352092520969545048852427501996885716530444786026307460815477195113511679723250823774050537387385042251738934797537688299718931169606619504994566435291828031537414987948734128544240768789966743293022579254059530417535505890803733251403834679304372782333513828290263295750552596107004646687215093545266530343917403151811053351178236799716342142328472194838635005612306867792952886365649045507800953045825922761669826741997740868570118969243702543152878105187776324941051289954326685231945180503574338178401661666362858898625228190179747360399385660012068572959314415762887954459669762472408622743457699988389738722956397924798832885233130180375290230299661526400463615035173405764307484390700950210972026676787260939823821945874254299739825072735426447858433379181811881612368046159932598712405177160781630568285842057940370904481427488227229268025688115043679627637063074563981077645943516065099590375468743942967885340707755413383732000877096664016030461057557829183772155052499450682142261697322753073430688919395817942147104474303101643331722830017095115777914922381194901717895879113393574953381692911780580856438259647007809082911835544944725190388526285372015024181190891185946194898163155506375481523620358983128266697119230248973390925879092420585261382613753750224569979745899799949604034711073808974982077727529788311093995433322033940519518210247937568181083485445345927531617789419194037763474030059248982500364202908384925098971046550593081105189223280166938977932386677731436237704271524151976311358491139444675890452192341683911020613395730590934149809196980809913696924432196492833769506707627823467029780652171330200031801138570992602154770413020232237301915892974317289448102195714901072813157205961683330773346463989644125285967387319154613384620902446934391230105736237573498469996084044878159590629061961928856037154266835209954283143255022793456309118958194728840824347761403263012993659407491651285497932675479798879482178846637036968697524835642342568945897494678278927622989918420509481437185212183878363203254894299767906836756566651751434150545059200470362734400283387678825525372186796700325566900861870428628327737964993384534605523821860838239594822333528259332336888206893696952236298916794800855717575085808166697455977328656084635137360086692613119768207819683957092826494997109839883477628767032600242935051327773162491613965056630983777164105019231217788290496838018069978899480945568326338805063317085968177180228693901297031383878848003056165244247383780686602231772404844832891042643023363964118473470078540513584666265256839478440493020542279646574824344249250014909254593283827171218570551674241610264176725833968889127766386062775041218993971730068548331279949553678327558500390129739981916203276244549664195251239956539774646222298006104695739434458239388979386321138634651151037029626469133211696370928523404987935647017985438500281550919909817332632670653090672756720321567167153818628463648604954017494636438643295889389540453540712389196744698489705892948770909243625964070736047405851191955319169330921040539770795110229110489449324411275382736263103368386432131753100640679190772313295404962698027192611964138341090959703961276476175715981847660296032499366524074189603268011797779516675417742173693899316350896497888923533649641981353674140367289001495405417202503621796047873022304416647942049105498577874366341918033981568412372748664546991118079559486236852891128868200090010200226943176214873427003046850824091073968697728937473899903455709630084295857346701708518124260483913254601355980127189990101719491047448089561162343046820534441001511054335777045567703996187984983165138934423605995412191883128067530557397421967049592433188373357235615083119447912253167982502013699302461171487838784713399511121222836432790167643075463168045187893238112453955967470188137347811824051327002714352061262456087948258593798732266083208190387555016816653026391591476865373033726832525256256850201601796268491686169398187063487407217192145871611090178464989255852255864732976552749779893054699806820969624890582628826411328359526950562967988211510380049231518640992735616376119561391968955320669775955590216224699484362922288410750769194331453970772610069680069343955635073739119268129897870234180215691537550412671021057586463046547317105039724795083537185513852145706628674636383777845116002113957398568575968306688821718642029092504275797826450814490085799526337561008299719424108490123566652372072199732776118045481525272264469826478309102731675830756762214706142748066932913507382879111236913262785153598396369133180786335558468796669960550829102405037226321657790923621979812818786366434136028997913971057127111268398807649466534406010877700436219828088569769627538334488645683188510839455880730383696828084040442813931081118499386505985991475756090556357069200797057331769347963715439279146601514098507476444343922961356713613894272396046058422496638705876545002677029560344943519439747204016792531404098505837080041891183663923198931739473440346984808019763828922667889637501214080263918025575332067503461848172891662478059254255037750885052593263332369089541573997309571666177226788690093453220361423144564394458239835805370786336769759538291401268847770018144304547607363909872212372576310789019358954055861191091062772372970472590981951752207988110251301063677408467827194299281023911881237780246823403609283756007789668137087743805310067494850793442570569498755395468882592737554043079169041750526393910450946443738014475091099580767014192506408872193331724762682668359204456934395702997523205396309281828738600011069385556497622012043458903801658078759688102696309219082951042462498939488480025001522898260475036972278170736237971680457940231642184026908561407908770942626120071367498499525212557722199493848419053296333212957472810652960057589236529290102429650739613374835381095429576244209297484641728810366295478077990786193051959314869764829632446341847509553954229641277891448618618193120721933845277219272647005725362295804992969013733387034016480941701332407970435627683756266512363406697996321860257359933096068557504109984728812508279470889289596388926240500191579245939124535497571649049031939588182563037307145026391824991802050815157802695606874136870600776500483053955823059122209930558587781606150352347809825416381519724005042834248169071941188989865950858053760144399039690510450765012935641860122921864729761460276802725193189368302053113007742977866712723721747631834417350873332646974468153195263446769265260283532685529853367610301028653019907092300463260902674174984048722429671293779938834553593140847650328706940404542773866966343507935320107002531653640318080518225578722399243289642129303349683303753673277654496474895688028369654628215762082762521419478941899652220656124098516896124349868864246217452768669609889034511577137798299418735291374674303748019758421851530830919151620867809367272088684286250033181971115849694639067031919483646653625854735782789390288671935387626068809193870405932556198659057659759491536223736778529704051726952884238080204921039554930158486584693414175535727911797614651489432628609545758368624455730108254446927121983393980183018436333647139707645847979837893203415426748740943392074083472664350179642066903463819373605473940048102358587779881440990219204447828798888102292718418900551693622402093513472429370604533017939423934582017833094817180730796356030560270213334589040214831530758536447650725604254996445913142028379260850992151581515696312001608658547967234375076514597952058281404334436954985555984180232128164010543238824517439688745987745939140194636932557709720861299530889856469337979140264466545755498036918432303619133943845061775352110608995798432279702345479572829688874406964379329375313701223104269001046459832069420523932133600007664133324364982523364944195952393555386287466696486275151664318288349203364539625627898369252739982447323827029454077769341884896357407150926015132607319726644475474693140312687098365369928421130229290176153754464446836197163390106746956696934047823788769830991603687581996534378591281488845000587370348325081087495672334616471929290087041420287329770103074675910925803205407771273423896007819770266071469962268703350182224083112886685831116113217240428171066254677965169335114602198970166690418511202884763422978268573605309958261321388054495680904240226613118900744426521958250773139705716125797682308757434296424893812789766844000678934440023631842529982015367597622141338470355099769209635544224868473997352591289362496006404791705453049044855427466757152478219599249225260704337356969567992940325442495366836921223761760187548197068991204945714676782815980209489499690906540956768613337787409376153440021040195921800859509420416426129226281004857442752965877135263677847082225778142705034695283867669705916226654439921955195069662935496891396887286449777512387271724776604394375962476044862289490242893452466083728474852784234098639874441422239640592575344795389069790566716447749144725387284800819338790392823588301304106099725266499235003335423202495778095499537639198229618390153555598971852656035448608192514119900989866437350451612285512068571447038564741689465091036668875604931550327691305035026723254437723910165282305392180994228398893374342777877497633088851087953697550801708728615866610462438704276105798014976750993149620294991730925626341607561820459948921423431681193898435666167180467965931421067563232082261110012282078716845149241957127704326661026807273941499945914192315400092751362879399015861562800769676431737658105916220420887094313462552656001913295055654793840111129034280331493565037280470386557791657606699338267929220201038461842944948266043566332212167144467455091432428178645759983383343693833230389702205980213295154090013233170426376773645446439052000704959013309371223148771179776929194058537804739301434270717957046106253897886397840734254669150030860806272073439390776433783596309852135922757022486767901939743138538735474194694819433195361905407384456260870290217432047822904334136931257389757379113489944529535907864845837890485158859839073727748915966258856765744986519522587617012235337895124027270463500478867137344630485457925933338569008271294243636677505834163155554287036711131753515973198830028534143697969062185976162075109381088206491800224032348108242300779921525905839772927903879482402526363535743442995430825484268082312521278597323133020553977558167378648541295431610011341194148799534441429810208674279796321198804963547486923243463636904147538563584516837601373211090751880756023421737373176796704473146450324250380615080489003101778641389144011821746705223343235896168022840309547421562679689914379895305730838334122432386164521631852003751283483355294837999621196763296169744046768605968489005683456952039177071745918085939197055119394202629903905511615588818690204446247519962213621842618058674899445412062908293044340183311175650646106333293970529276269944372772232042088734667791465225977432495508910097419620888715335661282501589616013885346549633186381540430212422018637326839462430811524629461776873085665289825683241013863085475054061962173115485462588471875653548421258964056617988759679930311136524982447594048610962883427661388706234431119618096994650279992010504851238519482410615325975235307545023783966576271799262873783113213696163980554751560183573034059832102133113541044722277010117826386912676477334410252444983064715864090409704774470836044095816798675826947831645925424800768081319507411479096533838088481508951765039416472844007666230430660284099973005889729073764253821414366260871726978699539613117801714695896368809972128845744408399049206269795087742769690538265659685683143034579728867767773261867943483013108385574354564341397264294801606496323950113900208188056097345714148512107697811150472439900045976375837122220688483951155295546006478350214695928444907459842432805747123823099274386667959893403788984796155182843022378948049480778269575100115814790721778689719892408592273544171222266307164391671772253319453088008380097977097285165531048552582747394629731517791483881175727551003088770625237413510761906851283856923860773212741375740829779610398999645435680400491714381197074294651098558870561618921387098749369342044746298941504866323299565080917508439408346012346677230370736130115756610768686473765957740300386571224072932401672817482328944201176884299915903370802612340317275251476772185445457650400245507959048033766062946815505429194436001673229440216020923123402025591559304737956890072052429993208107659622093567103325725430257537045029199271646666249810230065244725091686315591842274170249818590485772176701286281075224965264387577668067583851833706453192742911928909070905770404579385360634923721030745677010254518683633890873851836532459872583758129488938474319126324540284597435348815483274632503015979022614909228408659748472678404950165464370709871002851076728830900166164052662766894176396122970106848671974313572933073554015101774472239747205110509373122330796507329135402110465568584807451676274722887702482104762358948292614931346548567238270003451810431233722192707589733722283201247801341507423444669702481029709342063239011217379329986814395480275059240342067087561808116501205182004547890348927494342179717471305277919001837666406142332504519643582387433213525975424317830821860096904872265493437753659755802329447899645633226007728266572990225054803993302082088919288599973185534614684032611822631620287329646795594839881324459723177729044953702580168457573308233100996343186407578384461814414070620899276649784306268211834639809695012662696812378626312863870828817031962391000031935741676936334665115675407470866840960751519285653680953891047120980556585579056220890766840578928981179931438505684328253919241664765024274118626845163416658919697340633381704073296888571661052537180795011150423094289431157093093831990324341898395201660519095051658212109141615174390423849042146682242525321774882567604892622734654130689399213074637576710066350290308393075791360985625696669139974687311817753252817969834922282931771723610506856302212646178804242823113407778878712510353523087654924466786792295865948773011719009393089002092120488457656876305254792538483053294864870355109207615780254011261079889078220200879553001524176261559839302196185969354790908264854334787572094806858391296485259442165860665299918633850338563818372379943281909238045817442836682363664064658163307221678481615529677482132272154472860506944799627518452271169234933234177462097517175538374505593345610188259757571222900697917944312949295164360219532491457981455355632451838835014914168794969270455234365390334824001168772260774015293858279404652454805269008238534165819314033439577412833565379378727135545468369098931088849379127663419729126670150653474259403028749001477894804576745491285635494480142555367819732863708755840719169688353730292091814564780898187312552540288167525475464094997368232151901789820598263009115995104903441856061566043485813001989353807581954162097818993377589449536911156645596780225917821128817724683961609748732675439930210068705960695079345611188615230732859710203808196978048088826023547478524303498312243524305109615847068450730876803199701370850911628675156038781901232923513523990556506050397096733564403593525457265877520440161861312810365399962055849437051705447469901362028285004484276511853027507222982432283660513064656450686248996903627029315752501210594676799717789463901018283426828456967007470288205810310030871411311484169800124765974326132574026133744525115257667928839373288937418624697220709075106543404880632132112313090484521735295427304507185667419048190373905659115827993202227192676349372668763770031272866026024835181516449979713089441621991357631131307568840633423614918144817995404059006590235811794810738537941357308976434383744973152944985999237226646134038863006555007211491251505352879175119882495579212055384514995052710471746725283740304865551902513794272043755343085360478003051276948277324738932536054298611014153487938741487353209738881421844679210794681916627789637600906154640899899465150322333660930015895017866371800790056713817057904302154799333985741937631392885817649450874275726428097908472700425792140139500918500901414422665827644407965712466423274646518423532733629295896842757189677894979385127762468151901698990656375163622527018008351063939604774234042422181129630312739640900139931237656656139663728814665565596654108594386642368061249182945113685306669178632203828109846982593332583759817407974905992845048916539887822772425508280102097868977634919721293517887802271449688797893926509172374152949973614124366177621432584631085585480560902209256696605661759474788252726041972348169142049819441688622339401383054643197483870756378924422557216460223931890114706382444974041666883179650806264522657692117316882529602067959764737648679297027770796948564847043999402188791106143220955099209728382073178381457542977951527662540903079106159103365093243509657422030932311902001966181020537788613342135597621454601315900165828013081330293862256264164824582708773703329571699270278689491334245958387458102096034577985434827324058203066744056051699221332823923898518797722028788061855880790341660270366970963676857525638380550626684685825331641981938031623929546047276858186274981187562293521272227590421433311347799992641395004965597301149716163027565565937726445786285272396896825903521352139008867675369184641296897632844247625870903017593851164315536462482438895159700713682455233562782955777466505329367271927468453609949918198681612158280101819577682088456737688482349563625407266554756328540891967811970368488097503939053027944101180041354365073300470811641998311377679159788791941726410866368775210730095706735471027127280066353958260735379262379693145733551965844726906050337901279115698526699204070896852848724756062363646423804130400207467831009017946476854230191357337758420877761316586587399871726436184002789334716822827821192002638328636206752240261207363283490545065346964675521522275685445040111781057947624751404488039375327369247266280173654689018280630225791554503169509448892080107115257796710988641424276607924170561659061261455109142909313864180129100850853344462814637963036237048593802481988612373999382038464317907265956397336417507121491742814294684487001738226286975503026571714777006912335780208423663604350498395417190251098807644532547401366902898184047623208104951257109799920933902869099231236410415696989948229611775111146935278493369865632963017535518426360743027023304526749138467844268173433413800945104841883101648961365675644544742500179265652667960190113360454577845446584005100576141214821133810190572412846301241726694473406586808952141230201938950409140740473219925344267967120647382185453407986775759653986214482005969341273246527556531293105816246169370193253231095853561616464549058507341704906572716794070555982352311954232840010440444357192057653477315448584331322007735512630670790984813666305375873997785997693425661080661957926592824997686305239494438703058065056268727185237182208973985671527590818612077864127059815063964017204429088049147113147593343797736519354907884616313491726228903774524997894600986885704433914573607523369957012991940592893851399607859773372862779419607343934100771109378433942396148282187794112299718442416011083636456108935697224373050796139799672707495415490975998937496521742936866429205869833024681932957237520525672041316248254014939412830459334798895347992514801325026192560490220142241154067000103190808842028350952050502660577347739045516346814681695128982282031895057259166041569657761251648318065828983562628718001431976044097337422895819108909466989462474979413677095186575827973908378996557086755863334261814481594050575557142880929112089468459294551918405347036675254918945657313150907120409830433417475809643362280285605138649449144936044771131825894868185554046586642376801728041292478432218736024823530399105684535919014865242536304390808745298178806674727144010181416881972254019395089220662662522602157253617032873711575519100731542041169649169216583000479347065796657921096322513171995716568960626553830893263906535087165184799024842031048064446361181824179955745309189743441623494532607584409011886719715696726664190534766201507780544913259164960294380113589574816352518907479198021518620294245153399408862667192463619997732364054445743403613636262857213900887290326646525884195522225506345991178208912285706762814454905510356863215812733617517956296327085553894319976812073054674496764149146801619039748816838944462477667687299118869233867217470093456495591713303078068719589872923262386201265423695678176188527698766326225629829775985753171455651436233904457687249213182284136178130114362613895411180333127619145320544193649448817426647921795228057645404575336132265962202058318631453106543735314065948755745083827274223061447614167780324071600462218325649456587442131680603129829564707216538275816863733062506751954371570883033626504944458196309984891191304632805503942891462327270911221231814521605263534993332137681589158360678712082855785450523929962573298275760332222925312749697252108753692619022016712943852879923045580252428958203815166127525444762703133746646230966847432897369051550758778026946698301439742130588167194673846941408586964469634026773979831776699277194040884628742816201432833113018036668804414866559354163252204802213699219006202363089410100224617088658818254931915186503856523999440530726719271030763072622930907925145977543035845208058409111907313146192784649147563585207523036677765698496355551513508875379378944087347420850934810204852594434873462627097381723250117979287133019638333387970679026246088501277846922265196172193324704871231587117159531062616086514359245318563406866217150789487512907320269175370970230292988408767672179008181906649514617312006807994522267500121954665814314367673534378943056901952779409042227064224623270457847584540408013846156758789949303938769947545319296928860226710862886732236434366277552653295079243434980410774099295487922914356113637973610133242845855389276841976574259454844142748384146619083184880196010638789208643146058027676324182824127331903384568677122019040203959728647139939615894476213931094173078712809841996830829970400864203470589979069677700552098906286662835311016083575011199786837755428636047297634127791459237850738866146564039942059055701705334650306309264444529971836773388631893230220936074261865818603020995700689138111165375334173805082735980263665513010210206553129428359746979655305474937939161864929645810465258575799445187964615608225341807410323819507162045541347876975358181141371383516595759963527821169469065473379115354946817867764278728274583275202558464534465503474132817540643565543787947218341388048182357537182520036715822010726360595170643078380048962012282221013007835437957075555977208363438052597900730263524512908386555959540608783807323216517622271466199098158335781363353331589766278681345112654620309225161456253940871918832272513642123269548382353973029698492552798759476264883511041922230715657885459829951800067741853000650992624750801382414940626723411847211627723506020178269158676768018372308972970769922717311459750776494458468008903849727783978018254139255127889556221048970519102203738124178694395781231329545615126854371769895908072106587787292625829734118520384417282747016615369706777853089696787527090789260741585173612142120464195372074713444079271349686554246184533294153044656576273173090121929791389047523864702641659968008416043424022449415395944593423172532904587971301360370913636996468280902812129632738052815988009730084292988553507382811867369990275433842478206796685215721228497180767795597361441681528935199273641609395012572243978894604749860878644880831292663462684670497648657109161497597839437801795328596778175378076349033404119051251534736555701425527035752949707534291948690850025971462593960489704911306999529998860847466315095732581841311475740833641395302313905970238627470779697089347448162613551529844697123921735373215497615229545101793000800623209932095067682270877435080416297236059879784248416396143326673108539328191903640081340912747306400160554581855797525515169523895749979984807671211720698421239460446627236676124920891145795140650384916931283145412650242843448243438601258681845985062303814053586394310618518328709798023876455024271386797932727168605159163008369611054290397804804040920602195736506969550814122408597721270215571589301845420638326169176371138082014118430411492489534386285596766925320965639691769941444228818275393790790902465368595916125976367379747803815842371665379986328158302742634779856396988409520917055886295957496354048594261544348346178260687903465925617425538973347851982139919052576655183639557963664525292303956854175275745304759397140064365482191299551799953240821787547307919020508116293316079195439298448051725678241224750396856835974455870673891085630767725312385651008102783283082251188564747959455323149554850851176339126122418218970254164166755026022808006789415242882688079168912386885177836988492592613953958322116156630440379611121340400474671203988004487953836649974328860044993098209884714953023482733425892961712296192891245525164743706140664437960803337833701441251014724096092755913417672135343659507593461694882785624392500208675497283697595044394673608782358439997909106123930987120554168644913156657818661262012009663226318075155465166942987726912504697661738770755306701592014415908082024294906010148038658812934939428533350086431941591554879117632090895800950275995873310485479353120875511399427869906279169547389293078676312239095235548248193240502071605955029530740805898741187934692424532043267794746245092127961146375732918462377237329607584156729236833616455262217024181002741027940086632869397759684843371991714416564707384115957741473400337360983661231458096552390968593105010299896091068210592389568286136049730540809796556909043098536469025528645940002859377580660993536006538482730854055394067835046814627064249879738982537331844682028617610843372459685876628440152414081291082632347472893454397214345511373524621087099282904098466543039375507579690099319461744640979009907891072689538538337060312655244204945386395988234049302471485342892393315685144360064705511266468961202805965381249782458319089849098743970790504722315587490385428984770628688831227555233668964631769175259240130481201792076614798039171517246868109685538215671901822849997629799370071782232654209330967397818647046673489957624495719767436568776210723425954645199790050876485111064456884885523326831700385941359729869003219062581538763375577817074056197336216979677863797637004348623010928316362027638525941739897939353192581710882482000414594000741721734714401999804281114221413929217953245703260371100753079040412024784162885477243912964850653496116726172031806623179860540655499227402983068320267325989654446572175505748312971129607148640203928663001514102138864126932549268008416755735259094252822887673982621800364047870505727648156846419979556701791214193098271918605462519194618325127712302011076860110541293379133275205297210789962983450793524725173857073085143667126420396361417979009787752313792014239205125839030424272450421731442887644416061346475924254178766595457703661623131614602130410261906396071180706663394843508090348848846625688084973222052852478019482914782279733152704043610482943225887773691262855381996633144234351618681326131917463251873869849143342742818783164848460364384913860609390673353665164141132011972934651064494565603756255069796396156556388146973913073431245661018015184522034084491854138566243156303759598290135587012309642646497308272555508788288162527662323230975964152294995846938255172320383844095014636864455583680248101857272780239867422531105647082736369471567230456719165029328761918249909320087958609271328594553308790854654960890154840889242418409727537748444259730002124560208467532449189060722999905857676741116021550363084309814897365683351771691269783576075175715142917426004068336120964340319470998986076592854326185754130832286278317876875050319453808709292380249883132115718390435007923621280449565991389052007583510476440471178357392866653035001310704485452351248905407869494338886552783498926120760317688353014560289474492479440775478461773246098610262557051105353489379972307394761566405596374300740228922793321446971847160227628303044747374846801093183040612118371648532863826980899394197319663610857934103431424996567831560976606366268289381829815298847404226676005869340855057171569077320841784911075653079706670454004252709497778602284893559203539240683515397840397869245422646543018934969385981655524686051106705072064807796905068844099294299777465889174382550190954073066212316063501591581543608926017561887214624033522919153340046026570075550167128554837227344137796818396517657080647629663191668019695049689535980913083992163573067264663496934670066748324907293294951770245349170909865568575797764676981275964000621289251626103557152439757642056438645966555396537667990848379451978879644041200587132179388871191462019398796300208729489091675384897059887545982000755472792490450326419586368646071910420665582480948961221782262367176208368318274685744661939575934747672900353502372246682248185311475656130029306259260698839674989969824019007554981194455247141655495222099365915186241925074031378655267537960621808368355601917672312030927488338449666524243367435792272512846778211351378852156884809132107522037435796976726165390535405038461489363098030757365438059890974467961811726134521402824776632223192086758493515161481342072237994116888939286224235419353793356868203228573938353062281129762006365853795988054118839641378291536958241740119395345437890567036202892018597497592274547416764555573385348157556941897120037388473008160509953588705940051555834567107564259139060819454139685867091346810971718550561392819586959780490810037093468646436659825670981274766510909935921877367317312389499407932923220611486576623314225184245730748811877953932882485391266446960943532996185641964100025664233533515528431635936011780819964680435845774922983079019246366270560803748027856542786528554854945885781009451437322012263777991426693287745444376339007108153771960840374659183732735150979028951244946022115280176803670823155189615055433686047942458301039424463253177910832258823169947467622212059212949551871749847543472087777994340876495404402504930130098333509732158331838121773907252625576333121455101435964975703612902587594758403690160322036561748171675200040111932825463779183592740838527293464372385442570901436678895614483130293143393499343080168364852852787030737400640945027064624856255049667582618333947689760842626965711338426009376183094336340467161461612052852811629351497972020615222065839899674564749049335088216740919240845675101832610374500944255823850244845869900890284418345255097238465074445292883432531624731623907684759352746547591839742639741047750576161195991584411953013950341258059036555853859033650017082316609245974982291367692371788172878096846160006308728124552779989216071254497983860538621793225501227963904889529673510959698544961070154603356850552477155889502238672671681671231871566380275395054004783962913747082078664727214176704973524970564263963735579254919245242177685422767450445142786322225178550369850659723323034129916353389572269273940239929223872778325812069117683433753784826364670418159215303872607114310204411176703035379292057887681795526369178390901751689981044777827129540303643108167654288216697533469418719627245692677857523276585610966531931272882436938814178673402718523027729847967564756684813591192380029919787773182808508330947438927969299970322915916310425126294387771342906031254602917267098830073589328487609413959703090935917805265415817307155332966389019712230582923687775147085131289633968275082736175762169599849175844206639492445596926630289632271806451280299237925066885755395198383352868244814684012400117486936684836761148204861955124868275319489564469504362724083360576122871046458092371452733735912545961386508860074390552357605028544907040355880901641990754307084377682988774052917998075517856994810211820062870312446725919777549841781215798826612804759970953701941399918775267482478281564743993914228627822922046889060944666304854526006454692568809730565178206065493945599800042120174790828213942430929913755503609905492318575214046593776125825344790506340990986434461799386489869815125778041178478257289698780453304543897400259632547036742850706473571601984734662534362589615911812637868886418983987652487532069278630196661473387783972085356345025997990546276829309062145194743387725867970106872872077632841324547235863531454095020651198965368174651657946564180669150179038110726300790522644899460215412014187198402619265528438381798774566215973745786045245941218951825224775608220768111434987508764150032017659321602300384595963929932413535151668579632083902362236138432466961834404147432866395538664491738367151835074387501666452689549363166968396827323307830982664430509834497312799859066614105420377515039011783955835696680423134407751751961497306617007245431928889125496974482793855728598160677956153575190409020702195118230477286800518518682842457541017651236042236236954118840009665671096961240470351388761356388997438544643140370951360757465316027495145397434552423834444794898129021994587574758757572945695141244993217512983834818772009361132884864982707425329723454602761551742767457439582458105293377787213485936679008483225330186169790455189620942368667750789584631413345512830099599178739177722693239466192183297795908250124936847738820896715635383891339121226217613415278569264187323201412268861080251983880771442269361495014924457665496706584806040757482032952572365608624375683260461023778742888948370599925791836297418207522117445333917638428365720546538128314854314293639401008436187006852913657735443273173530861683712451354176085243614848987517730699105393521363847197582230740452948595456261618067083158590800974854227272387395065021872014858939839521830352668021948442511387864801284174286016387728285366523905964836785468281134199070728048543445168477820917523866429297852262351996213217248601299450441238876549231163223135758681676557939767256237305137281418125950948380497714527200893515032719569561370056653787155453767815246876803384066834820057880890453706259446676118169789790688511307585484325656012588535248625118586836334938676632821055106029486343065721106921311847630124418076284268341932273507549401756842931810545480590709618882840250076647788772447924387675406668314987766354342581580695763888054222320314096611257582390253979962857881226465506567208041954248071926631440831420477309279297180096968120055798028498409607492616204122073287552753757253107607509381994360464949726484066334149867919394321464467972583147591272704574851034554075108722285332121501488551370854387871196906313316037031215418822294994710323857173012920758547329603319713577144881832532279318302530188028543151805107203968303468439718023700699995879744836632885589846043315446502193932731180489289462422442961527956210763600771714756699399117676358781846627948777469682959191832784797132146587682080199534815555636621348193714295474426578951516798381728917155557863224285980989682946751476344660185744607716607693424185510108465472987469403266679069733120382222935137917899699654598389261473090751178850499205651489365492905751098948568248724576676475950071794407738010047137077741579498985694638298034918716396029620621387213131473079610344073949205426522252754849641140640842891734746608688737939764226074261198353624399323775849379920011595007334194111286241619611045169401097035652920938082728080156290292035595758276903094318568995361344884360502671977438998113454317196201405576332894036047461782537925671431418978083295340553922053435879489348826568552580498796115745007041831037238606521626583779518507161754826759067686250801877811675072114139236954512739422153844446014666291662925581984236473083827129234411940505799142307081146650632102052071863868182634009723974729273125201751685925280800901805414486484765621458739045867452062152763633626415258470787161626097552858197515779841278897245105738510206573228956129171329286432654118440427789515220491647831094773213428369676855089599508369683206685202961602137506781589107902789353044168271925566621192902574384022223744055138640977792510699204775494938902641370547853586093365093893643769361341178575216367624534221414699527495347332368861419341624794753248980992293734458056779131888848256182344670650135199934488535081378407363759697838848983720372738226640771048170084623439521530537101576082152815183973672584321867501311811466360326779110440848581341592994647078494164450798227530114083115587603951098538773618132373753516243110153675991081120352967598436098072271134386490900855781244898908823858369270838344315455875581760012041298501182710272184551633880605190214171953489503782299923428941103904678340752178024733643536132936796474405662707509483086971485013541097656152382940037052228931736840043951397347869731312747703539024152295239636191102834364361415304183885827096302782386443950661112238964963055404989590982247070482477062348289859768939411548758880974940273146520299178808144836734502585755011832187305933544043154944951273999358471641760469333879764968218820518824954460477312046908788563168556360167326312757631235617299469535219825505338413508731828504829758410961220273966541993526262994923350918515540966037056635165973395143352540415976356668678632684774049967714860027665524951119459076663956365096867817904974763985051052162026734100934579711343895083837185439749041001771128777850539719622796878022334456011967370663190234358523437805199355542506506568024677319055875317894030902098858232634172934578127781734796506002423976864860032685063781792503927202021820798774987369062446942304047335566873631390403802439058983666914454479279963082825227238341704776823202042565325134429448502243029216360838693498678110540671325048897544191585568617873122345880363405172907423050027084821347856319803074997528224912851433962276060466230431055336828694150531083253237520740488266527801769574864929444917362582781246403264250535278435739668262037213440765932815712947030637908415150660565637443201074022991158665718324907306524855533709208286209929171334295608687876915501870345760399953658816382032199277759009894863298789726830114109828265323618761210362582222287059020438342712351345389376092538559420723742873546054755529075323699871802860882613776450955629621548062211984536068656460443462161139862943854783926502867300085903896903440956308524607276358922440831784410234917430572011538689899504028736276339863864122513289546043215783994714243030028849558815513947452627498287948325899792362520929869716427548133848903248899199623436232409443328101079628743305697532199692041304648434427845778320578147816606617455048391666021522917757411125650606919098138251628616715091894115331957737937695962766554379178012609956594042454869168911385801273538909642378312536879205734587366506751080798634821024781940839685459475060350537954258284654049432667377246866991846779027601184432491885870224691047430273538858541066985532576204098663284355379406742499918042243837868769236788700331978202143943319903301045483111611508399777612691478705126924826080370465334323241365735372849829282619083029476558725979063973780432331821194897016303124399279708629598277521378094840954055362310246334322235592504640010597896786006560065694593717010405333657376480769469814186026605299406080168251240331921829378693803814781585741123000668228143445071633184457285376424535569180912054192764018637783407529189343998640039949587437413552139287939768630373103882498690107397213792399702690092480026895264318690541207475600356724913988270571420998748490583777904124528699329748199926509698583581755376175003042911187110635840519315163037731776470504559286677442128863538359211788691333815936968017077619549988702005138485325205093619263265630605885831204682059841003234334775495725202712236413958024861962497370263846068309609494456334848607802166033686660399501511053935554008330048318021525362104848515635695353433551611319451015334673054244247345442111297809148777511117905279849171308781117181467897777833899432217503584376616055485806155281939211421838738266429610324145646874507519764946774894186827378466089804000956252351645110851155977099325118775141700642342270848116317264355915232804011718550599522689251311197002160561692845435936927617061916984883095752765355440236019720915300842406283898864952754681675895817389626333480655301349189363508107990976131623181557404862486086303777333705793218269032549820729220663616052718855165895851191608767142924844829596934199896803312696396746733073977151454324403653129945404733432763993440493127933093405862099572681886655688535462808952460901145989632870409590196788032473383354934864101417256409607307825317595370285497555404991157061486851207668769735851701948728958751304611735182594485701155766729167941408512592720433204171809577544687774048314052372336311009057429238508536358366775874704961686237519371225920653497117912606720701838850389924080473625042562445079544952251606632535981698801027863121893559389996497198726544940014778088315697236503024047091244582912041175952790042184637108742366041839692380034836345713514546401566348630833125102324299005621372896713446038250160604168371423932755487594520840790047208349685686533099233483163027106016045235098440287199740723511895969451144410739580804460572289799326641949419168051481427674758299897593156608143122619860799165919737554108571186034032615449419001579647916117461602434238194900875891572249020642654049862507796174704432610074915233028775069100150393294530065136247998087830749420354713714006624543180695422265780990331845801422969977539814596235286383585779086354193344044041322314234105094516422127978431300516071072699228133391241864265043115395154579806952227086376760530138596093776684391702872263009234501139776176178196706725577984194795799704751146167836270734292540189197190571094120075112053894979132113491546424199107690226554447126100041363983796718709730389353281293741232901119427690032782690975761749367696600594683109384289840529160441349472764243919511823591808306300131796056386262875342747165350747648980498513075776221408227299084039078563095967872290144321835161708061647141295960332188072509087052523355599806495439013776018532154368317278827267185422240414027535518667411808818014752881923005210820634987498391506047267156041060364092529982579264455117452162645152567137267550395208567232495166163375541139540875989240947109109937623184219986487062104662300996870377104415151043165688379841377689171715400927328894837430298054038749721715505687835997100620959789632582909600202671203077467548301420323600824187006807362521671296592340914525919344358339964397992496874528263391760397038421343680013141628057322618301146782712918153544506948140253931498868852852046985614388014765540124350215892565741427684283461372891405981862221618949889713966026201652679650286053314127081781125085999423230222998863374569511686516944087222241138581180053839984525420328459172126649512425311012758749096927115782820364338079345458462087186024018679983960231049111378659234581685374049527934948633896541176747705815093421763397362869415607803264316913776239768129811747105297793371960572622581390055187507198815521101725043811979845646948674956223710247697278836643013875801421834339149704601257520012704557017503301051333430864775010086224920791251080613502853242532459540559009934371299690309483721476609236469753341568423413269180315988342061570029178140558099926357312621740392324377438335272040649953599928646810284697890584319617930352269304301874502699653458818114338397959822788162661710273414060827510636915875559450966566648674797241033726904581196177278317066186349092419245776556254534963112451335786128467024068041652933776021948834355548022859481397053220787340368853948137057267861528832066760524637077215335489228988249074716192981380364728325914146461017781375614600262024442705372138783340707808027024165212948809100322846033415150248153881451029717131410610734418295220188289790442610436858901940955420533366975142504286010958978587291758087446420264598714071136486994392834994476808152334863833131944934879299868382986779681390938127143527754613302767594245013334525736063791764027608720181930175841954699492303200526473343763757392283246741953496487820985952449948892362154641545673358089406290429092687121180734676703864540424754052271828857690024049783561749776742532217475843258298292395486900255718363251645304610651434278027866701614394588915186807395625888557769142718428967852644369451223536852988879430949929949132142866129688010690985145381650354194229768995909504636192684789084763656567091953998984875652366673170876568188156812010381851006973388109032809085073485375154263244717841174653631691957435630402394790248370727497870667953221218975647579852314915135598181025903333888865386469102957764670893306783316943681830052546003973703944870280160789787847877679339780423869459419108859382592294343436352683834654792982632067702047331427834972613846565390520330250752737738488394167821451138210579042712117268726629721777607437509133188845481334820639578215305896412190278353109987637758368552629061390296953232639265021449731692932553746893509730172098284336410214753094930833101941089248981972149992920395745320619772313728113048527018494858786433488835421140103902172377544233391300436431364306598425120191900997798340311931167387084599732242492009557212983682423147645289364912533118433422498415152159542683661092728998846803262917037105638766852604533428572379467755097424919385286077130949945274309933097548334346923650268453587299763149945230054971211964921445304808863137510083583928579918166054600852069782809743503183073414281686677692108055795059020469582687518594950151712059662781150625279468892204256351394634838852900802247171774707996521083635253364156268502693806048257455337704810608927697281900303749077184191263209050478379962133893408141719962931322180321244435117542089876857473629618065146453612641877433255677276135056625808470810958723296011907834916290969685584636938823492134525471161511915421699443735428552047624573058283222186811377859543285877107630384304608090819751209324156179938427897316658451598301721480911804754985471842321534398821291104242452223879131395412617730932718547015026743554858865221546387598225282305720397938020388411855776760366798108161335778868136525636877789172113496031985383252393352679932451381062681327856290358350175447856058934823077851084551761822517175702934577254582876620386880783921993984468965107540012000340922690438729395420162791103157130817846540239775530564398762646632190522817887430595798865362215325557809438734772164294052004044150077618996832334111236812464145329030027100736728983600444405000911213616108389838232849727158469550318986156652945557188932101209601070837689500901340799466761221592534971013933613205668524023792758094392840707457170748545251471605357460288079949562998759658358273615041208786684808080940887420994588693359495175900249083008018332581862846099044449241385399755270269205809881710646974989858121938279900298443773238714624878565364411532277854691568356163217483993610598734778485222765342416825847936131715074292682172512276035523032467185549155948037360097036823411341789741060652195513209621090087823975257090784703537473754918450676432861117666163995369927484690380878422243314246861172430234868433988161865570707668326822596874134618695470427561546105550485206167493690262796477632799467757394928396715110472469413627965081242483712947244271143340541786173937874644689338785164479547907851800151402898415917450433721906310506194567951145457562990501649191980892220903883448201660346479876364800301015265350316225881937620637895180649026035686562788045882809785932394848756996301722936194131457171029605227180403515626315541603081039281100664649129656882621413436508291540398587771045399055447189040476701871674044811399985481253211811823289847007283727150670638962533663578238716374557477651019983656957774327832310540418713697316361703560067400273509605808251887816762922198626164121945757357560670231914445028310219385991637444454746735298406141105001174925379947175818113849295479282649378942790920591029828073444364385500464220410412877970680170153728303416294369645213946271468200239854969268400770330188057561222855700697186545597548241357405638166229828564865478157770321561672629364613789356425068524312391588805960451730999388497761788212260301288726109382844006600750466202973172737309647370671478939663856725127642347217277448858214760507554462447837030068379644371538758414364995754513558109211341435534104185047132668387632373870722013542594327676928637089231802079550717157586861558327970212433876557379820410742297865619830400149927839474198995752556727499264417285392609947322522865738528620309857235281585557776863337579240026040749665630162401645208236700432445634221727352700947891546000162161831521354671804605478566965339729490904983541856645411224582023593654872503238970368201950259784484566841700288934437390473694170846460147850856347213608965005987823373479060539258912726342360566722705896590401135611199628812982333722030041769251661760775936131278519985999884248758983334887594981468244876750818442160529060432637262314992109902627641081857189063842667406278565243335156779995513276992988611245622162125208316248231901390595647623252242583021839328062043298707468595681510794633240755241243123935786657433272179654705096100795451084683972907112366736202587931749976252324245417122384094325238370724823022125019799008016233375972961652270629724438072025043964435968679470859107150126109880136916126275570982902908867116587299517282662915494473886313926079371657242165463960160028317111635102310627788684149893107656145793279179790029615939944132085307364982469817858547963265707802909673073135855346221862015390818661074003241991460671436863907622709842072928281881331906402169155567888074700056383718734022562828853522647778049494172548044888625271736508933861730288789907519360738345704136378301858406168932609391127319265207363275005728922253428469995728636129925829159158901217523227332456196784585979046137139716750488529684160518306256493500749424855650658556282507515469342882288622427925607811269003024691123816916420759571582901471859632217067700660927431621804582360685625347035566132188706060695043514137282201078304758855291262133389686908631712815743038374843275471685268638206198850524687636390612125122613131424657357172223133977269667518634771554229595561923023464497014643881581917427242218721043333410824678955852525137752351998954210885683657530284192818524860764768813551733228203603241153396261264537101301468870913860656635357691494882377655829310401415665102353946820146851809701788593321042975441604281864138033319450515363662347280080140711588401858295014251755624998011019211463968402939935787208769688806565537237434686420010027942088720091707680605307592605416738047781724123630990456564500774285352405096476987249241688122302945160545249674578300969572718022808232277275231085692621419585530581133589189407531983247640078162534855636751761666898693890934512880996507906905513515648460916124510022575344031221089990727007182171159152199060252930178833996534482402674966073210400037023805192308124723393937445081486520715915160516419778614762767955838375425719911901068328958251972645896621422619728857209240849296001458478700995977221457019165217626426131402983211780313867894046712304611611135239542410768767508253715579306405884586337476331886173681431012124449456272242319865068097637877118314845020324051241356721984899881827303991667336074530901094739657043143547124214826330914073947411984479424786429794964130356516416908792364889439402012320192374344660691669518435352452292065885664153772335083228972873466171425389534413123041892670261206626750915854718750976129329079587201820635916510863995342787039809335312164456837000602246106461682154201437039375229697940638580966593653082844645201082900283337572147907485097617716753272028012711075393925885989683076050013513551646281015467122265310612647121606282308223096077600027611382205417633284448785148558724645940301387300189811470163438782832288940519671394650580524989556006388011635515523509618567047866764733493242504531208979741732118331619229650154512262712110935278336508004561719828946346024635576898480261737274247752908197379326850417688679324515751868075024239642292052531136438082878742601903570226544856543992954020876537795616435423128819503155295241256616600698224373108187387152799424409186456148710161424859744152661739394462783930731252117965476074233799638464907197071456705725573037989636007063457717043981910964334024642570919558650430049555923957606874097867232242973906006902539517483083231108271524120703095415721152218597840843827481850651305534975680725427535157449629665070340228493485834655488749725884419620735145165936999494361321470008483126527988079110539044922700978636900319604319314102505823901282538212494580305252158978300840635754379527693991580907374504758050204733370101834151337525993956114983937617208767350788696280532793275345071418949141994064316507301658546258569902117351611299856738325394010594880140511272997891504845858315658594437044540304766065201070687263404172306552846773804362311201214714230922651941015796554304437748587856120777543649026163815709135189880117556451931333468163184451013745323815395165064719388724555426025010496912684414400269521988779457351478304503157719264471113948182175816747086997256432135423654763068469701712485444766775620314674547938414379236836501150218888845621890503082514784681148768474657174068140017961496374655072752630429405459560077307539950078693681016356915282108997460814057190007969970119996096743208974776156127076532687243797255890177559894508743018317119391935323642142352875822777295459769351156843108740088428977157571016900799533696852739703366330791368374970794243869433760247155280511845026209697239199847545076506855842760304691576587993108569640729816996581309577153506947171592224110330771344878712463342351646059923836291897966913463420282179277351790601996396816074948645163122882294496560035858003282002280087320026839672390802067817084588965076462990246806276421179631527941941444165092343725873063142169818885770040094500314036156189328454451085983716226961475746391082269546835373068819893222137941542007560635818072268660086607524893510109176206205932267018350393692685835389868435741144719594885841506771879645901514725739695862334351650955474272931836210162195067329052867557707530966082605225554087820645335900419400592086475456727518242593206363913929429190799726844057249414855433988198041122453262572313702028028491704773461804870142836900996376628106054435651712732465072822087786614055129739732540022694646374752597694210538413967906027086394200893284707340312889544584181617838248727264378001154551443858318947519407336380981407757091607522957086483704277304726650677556499957301327693307860464941602633884673955945350460156871339638864879064768266091366150976597334026408298325844125568928637721019620533146416034947151051691068369343966700835903316066766186659888454082065831924450655109802563587016234673429505030308741731853641994083759504457694242488559150183789294516773593829771751763176984579154443698669758681295514182809701067748549364154899906641167587882778423047179685686372550993183268300084334235854598286440431976550030451417419746396433971290016146053078474142948336541095735818418470391059963929723774631661481851703007807336671802495666727522741791325651952515366663078915008072864521712943417820052446468993891735967712700964525188390388353806735492344687823422963067221180932406252738302258198011468951940350485839424852156796864096532018574353730281911466173986448312994933546718492497728584128985332472260884977071287985524477649567252283702255864050199010533122708045249539720242116115445036549674366314740688223652200713706793942439157124582987554108249183805094641930690422542203787771900149275963864676631549196676617504581795505887853029691590622006039010382177836163821531940871352266863990623444495737346422248588867961673046579200279658941605658685032748120258362155218389016230638384814838836919521105493882287225996929315997195184561272817740321273346355752026146329611595529683324122534059270621036327850697458027179545709137935429509453646869484134765061794361807725756374295721344506863167128405899581844035406663495294351200885640648807426225093475253323301589038506285441344014741724411420100477291945667356892482590775082038686641442274692238261276598550265101778065031393798162692677837838681497655361680354382769710954631921245076253854766446721753455754330006393712669083499757664969229325624310502901397707816338574627325562614069921793310254651321584492260853609209197108468341201338713305373297764600309238749424735929801218469532217774595356929879343273041157676304191850779341790949078266816462995060689292970735021935418804217326565114949746069093628559101891703990447919612101691814444677139013308443334408570653670602763671549158280497706524488320455571123190329124867072053611539257662752775352100456419213147304851338402722069696950528461164119574220235962058462231047314036073477927686713582423386723679467726688770321571646049434935251341715318146408715453774090375318817612073390714403730670087178983179422954632976457200970379421315879710128416612528467112558389485473620950118642823371001088240802912695863479716978470053511067286245768640982639724658927123562016480035093573246453554247510589492702683828807873822762764632535614040890835430556182073031953855209015771394690465500451554104500258307598780350658344282271774519725821697136255141807066695913521632827177612036793084853911901203240922927280048889167929273043180211615645850841614028756902571711077074729204699031572228617878491705991417327544611734217915868021307440312335257730732955823376132811669499101687703577671168022058590341753613805318009582633687290043652132589452349125381143090637883720584523420884160157580837483737296298167641454570913122362396650327056567488067669499649157369709941062577832990882022973116872697002378527534952360897429864560298665379777670929940245136634700236348144108495352990976102620586471634111384023825481095259066975727905709453712136395351427180242359399305084511896705579072694549237433470047751313423168948397400608325570372603848613714160525916314985004014843090570806727404254804218524634788425150853974555130022470789604845499906947179238145378605708745989187231247768991558126361774533084968698521936386308459865592078411049272116476067038181967310519449141285432295174945710164200954557245654944530215219273962890509753201482519817477089282671336103890120474396268679555163168856323679732244564534600141603281084286770462753183569878076120558377176943884049337312168579347195469164076063278889973460429912559101795118029507589374588491644057601377490119130180917689212954253978120377748556922765145568848947064678073507662167251673806198978191820914498979565968993230086909266815335132157207368990226258359061760579618761603449183613642659542647976425372480779654318232989097394144856405031095625181914987916202108280577869486685850871961728391138097236306532564647391557815988296419304867293324012023375351780187024778797691236849796738991961928184802890115435605891685373983211904925130066664398221952917737028875054774389237135874216944868167089522003004393463761403799505714814675534537074266440094018177112170327250823286617071122267677803754803674736857097923361246102867333619105889432656229481872315533128932184688991895030889423196748871928698990348554052800507860675317011512451610997586573946532696131947213903230747731134469245655696865514293525553113599071536793612323935498982441526323380201190942232155705201225206837188064553884756960454064027767570868129348052361105216930983913025490272980611250502657524016537464025811443271420209912864643864092092542787978250622073655098303552539955307908190656740101896480952007434200678322681478904395821835459891647983201508306458202772927788149549219049685306496991846652360269408225325825460785748291449461543875287982925760818539358035492527638267754988124796920052006876926569098839937910526498810521095302892597744446416684802046670166076160016918357005235685654203776258359249261050508760414999350287718998925775510185407444658194186599424634913627140175093305958260190706664473260655362043811318218502027416417970902953363471182255257783576804213145823088680873504285530115127860456415454472736739207168183113936571505749303386470395989668524258554757915624932887207735393264573812170151825274207330721172999034098307926229414026163012275173443168905969387908082195672935922722182098743345447954336051016132640857426508492521485034253026801618506991138928916099868417684157421359095125095870378683724529076106558045626087210935842246226668560737567806027090528246596656148988083277364889393809616932870827244662116470839721324807947834517647812752020606664846328179761077452926221172007357785737399736170312138897415248140719836872163674072890947049517055750991543639360589327347525082846421215965139748742847967653881621347264362277312365885681217919787499508170867862531444224508885110136452122844093697664330834516495796994266474780739853793449330911711594113932396845092348427488934687816029978928091846366495786617672122509335313214217407269961193998702612803568336199238559348729529639829629535689480701861436527280811838766537715809438373094884039785402205534483130956974791369037671604658763200481110913327841807779466928585200524967651805788375982940835010542372961086008669913056755202847424149916888937966668722594390900129482315666959695288350619350549559170930499409659918241860438912219734971328420505716253043629852688029969473243120326092775169387163924702798964774600793046326513542751257292298967361742308460533660973337661744456636033779811362840946181767895302895613330801945629901702062532907779852440533970227943470785395561263067338656010028164634133993415502148182527438798349302938031071827615243582397425863260890733118688764303436819696760921546590534580499999172249908767138768255924463842227114545449928929483598591971390016466572147496573610673593565833039588568773266301336500386755540219670661188583092574940755096569559846356443325799346136504194327450290523918921792560344367964906358714650857118071521091540560262036511298393991643645912194812822973599817862733539474069121259264172162090974162069981930885139796120824255325696466321877187662100411313633977532067130258565585036906376725013011617932583560605010949846691761432162636250679959042906602169333285723363419771476678417409335449808925701843419575665500951546185851973430402526974454379657467853445221209020578295462481727131473970552983627901427399761500138697424898403063910533562581195615978470037512001164808976874820588423605312506093797740609750309025590878509739263457308563314211643410459938654050130654407669142396291456620077897765120215367838010778437294200540468384337905587923961414741525462863375790753192088809923137151393266944153711060191578082857499744824146976908052114342028819924293862672270018304873939145385830459271434768004844636756161896514833645230314002843565242203361802310160674695484782130016319953788881110449733394004376956902728494628243661454253496993165200894986603180800227473764265929455684422017186477361816181785277057696537932534082500174970615456066967008608248081563473724348222853518087712591576590621336224768382947388133180282029750943095006354164573639062601943635539945934570252192986659884370946216483412763244395252254486739615250800500459966197730567832767200652745227932157732868002166611206388514411813148968778589247665794831852619992522223432572669131860028084754467601742390487456821975129482914297702842494231071422842944922190024445325670602273940251154926183073793899362676800263908020847059124707852489396389837684975251820314275495635187399990350584668033968720315193202903765835211942040759217047895448900593778154917419100693740361039239423261180812634121136440973202342393625136014944252578048688601289658770255806297325556169293295870220913712541416862151126603261615755461856419926835708633426472157941508828316515388244252102485094759410357715484748654584009531857935468696809981510221451641077077289563664694306277887849830424879982589891027494943003480593143712411730545732077274449351224631532602720772212681357397459875250609362410613118775578865159415516688859160068785890282641817835743232366545470276485649683024978737924973154913528258036868845222377549536034332012750522559440929796787798812505239534187145638104833972929362852833079720675587502121164144511837424199743852641958486958179916310981683508527582827441786781756229667656640700516818567827653416223557544326057160021450198346950946472134479351699563417155856898098444740416637371545937715694187419617429649467568643078833434742484931288373810089190344771982695521442557958381119144302595624724225668677391735703350205663622539919651326559157384901837724827894012548777521821452937069065398440837243553751402564532629539352373431068689512273544681632277248187399024810542423718058388890996682134442030145214305615226908074000414608045713661590533786952827627474590623980984917781930531607259426398441965827252437487149709028983083476932222058078352007931466366143618711069613504786354788451923942215871734541771138292190596523946141343713316316187988299901349504724788495937844382152577636485867852498236934505155474721604232131561000546768404034874530877522650637036758619620144779977944786320246680726052962649177407529072051812326456094010388118320393672304394590510828180607573853859868394457539577626008584005647962384399101292243542528010197942053960847049620609602592941149859975803607952281505688547364111661780334179130429961286802680969655700902211645058036719117061235448429344520972493314544335512075848207459302060352225104569518453820856435022150345578893950267558938864502043051581282739891429104080651592811965650045723622783604216248708196967419638409949755393768974554202917341265852023044716098753253929530766394354160329093919991799609456328032386753652532919277180266256470180504618773886520601929086280957478665552381502152057768046430200053328899824641384317663406128345136869188792212286172172821382425898111465147222087555864363240468710061233255115219044222222017248272292632648739450916045875976043800737294482598488050079080892416723932375423722329766173875609246690775978756572685077941544068366595594377180233791860343727689388552427400584395848799788953931778066390718782478968905942123409689359228667737416364530401455174672750408196068306354344651545831400477789069533707497959587516075598841134309624626136639651242970561156056617024059864749388645339637883027423255004769037905921878790220015125227553685015673296538260715590509109060889630462668323642859785188114699665200194627741101641565384281400413375734241039302931071229936666574880794212935561688916400825276500686828563793215052702814980654711299671924026925708216724676289472958464639156211556789527589056076293649886379210199488119699463285104653930927505041770912973714056317535208768546011467990275008101088606989649543560961615405595747569015598504255998559216174774372833526291371885872538575302599314703366042190282920975453059790666729477523828260419712944093550337055017568187908189618912552022459721299320230629010914376984787199949690134643404429378162997286806578370495070352688461038709658329396467631429420913525647964454064068224690884570636467717063602116266046969622707669895629272468987327186439253494831466449215481651055985276029313990438445273148648402907693760302541938316542165813331252011436116064587091498948314627448048023371224443425582310568663842505713761976988539142865474215642942969283970470930235573888407752584334517576866837642252140353380401559762245262447269064449420375229717776937267314602125057003563979332928027332733141479842094259131780036289625913794460864685492977631631279691308859589119152535034542061888628015102220238783526680969169992515621453228508682590752960504516215727355807605782986487222025230764606855493140964660777086621593887852449848845502171075417168520630538470815007627547185992043189793895015625023260676341049249152783755551073180686078827073240196585533252632990744818397577617871530663316037552703586507506548059516917174737731613952171460807303535561791969665533047634726608964494752437289236164474558464581680586131948360100369331063036345890511118511042542305356204272879160072692454036645422957734909854954897220190788077849903351340556469299610902284730681814969549667906556720610972931448316326511519530486563154704146009088745592142894286338523398664646527359364660053907819172668395289297039140678521007288309376648787649617967333537991782623023348927411927004334192103727909628212598498702970106274515976661168447384591424780904770783457173003465962030429112020491309504153473721392679677369838412004147028712031282707037854871983089649368108378132012650009792220331914439954826767555189319563278132650793472901876955760841320913204830910695387717123666911389807454692120652491893399938445416505835728800306786735947414096536431248196540956058913777290950672792891358019088563122544940587106180497282667996020980198038707389776832403756478175690015189371290273136037299706942326428705806648480944487297242640618573635558957658219054719070836850371438494278221316285014539867994076347926383535573326987114085517859519615592219441867884370881633943714911447493563837899213108561428756868994215517061967233932188218316398431725888525343918297965791618254161549553249131123215856734071928046384749012591051845422978771734418608722038991115240809271959545539287489356705907009139474462745672659862955726736505188731535657048443779653244335749230785018595303723622789358674221053220452118997474997839768108616891236127680587411725812513410445271641834913775052022076368742297176612779081130083069786531601815801235181245631644185609117669216149457453971952124408404448822773304269216341365979323429769640722962917802618031296362334249081545470230691435301936976688713278551391853673376948798493576930595717461640246574773905597173414112521847868368442124268948759962323318799973356434774883521801197373571320307484125349640851652112667989917127992333473483357218841856730119059369727294764318175614959310849969133155492589309366126333841771138880881987098230821000354110382456312178529030753985177914271676409133455632180713399166296300270742128053860191356304153191985426185103292172771275445228494384057510496132004238924860506404019778766025156297596182005557096231131353008609783392863848293681259650927624492389075840566169793810038171980772884158660095907353275122871738974227145823974234942416931103120373111589794406924383042485477665664754787807220250835402422379673454406712489741451110465763917145618991161515792419473057985641984266919943743776994517863903198708234321909530331632298684332532387669726752351343971163072302559067304497587900021300047545325342841858736170476956941120879693614806437858313855430842274140237309175957839970931731193177971368239396807931707714209582034353940801572328613466583280839503969545851524494905555004771384314828464274601497043358984394124302606023338984936126906403018811333856402777366466001391972092422650833595124520216664548884565777149669281577076566003995513090250626715098564153080593681000925157154591897962734268819699261293339915848708449173698488058478166270894458119207027518787168604189175002315656492696452672239030244621816464434502588511457505212074632367207545263284104906910514525651982796502297993843053018223677800680435134344169991257645342017580558704790570051447561647904589614022060725010676935837377078570919208538629988718800112735389608498928416854671027229781111500269382435413656053325297046454868497780790535917155039795425889733693274569399483208441727307632611334260072763006220026801854787200898263608013920583174045350858540636395664638098841216420155800987371376196916880150680172546885081118394393258092024232293170670112889173586727085601457639700870599366492779181113202175740862508334088373796631836115843561425656086722919927686894509875698623885765348921149561453501749056068650177134435184649541396248651976996482715610962121082191197630280873527416374483611570565915597245835772158492685379963020006933789075243020165067238678684165927704904209922868315232636746177380425551037047960486315628038639230795331505940186500633366840884748993435694302480075007681508382184997366807972927523311490515064330093194460502896345051050364567794390329755444847294586070015592683445148810243267938210653816915040560542280051327662421986301274494073145099671376248719816868272491360392661158770875304732028294115647458444170264828097828305737164016338723922786224826396176407138130597006709188422947663439380815065490119002979061288175695971165948229511947967341639686532277998386579581851751424838037192497522791583198589475437493690009112272118219545346397830923125003594271887079186597618181020849220012642445760952520798049510622984461776654867960253755813742054339795382141885419723956695596129481084102829718008252684369390144942925862904757186679994918880998176088717107347640533713197747110259835233267842401235818186103145393815324938517269446200016296767012918947583261082044325154774427227177715398785457061986965419753898624887119527155735175629486465438045085002438994180125534117621384469169479496387739766822988061021582382859696879794141999822644306879834450350444183638346274987477200045957742538119442258497836753479469973103814427468731487385398071871219623044115271328891292989987028711091096921161779724291541793784227177450189531927962344796640425584854068082299272014225534839512384453228806829062608071334178013335896964206705811659130903260420230202945433694164690479377721213916836717306653653789825871285596232448855389880704811179623570382257783309045833984963762752832086105016352805286137972205552144888263161212010690897347538281917955485360059829985644521301579351571960700557823603598952893255443984708795411843132940539491639441957554195396944741017744627836445706797224916647614047359126511219082815636496518457366542960250342891456730469320799555157239563851774928929865201807572554244840490132250114996805307693904293746672978637204326910492307187011751482680048549348386766539424972439000005008263283230212941845506166571621626759837221759661483861722574131764978652395647018408160448815692255262553559420031536626466744736748189041744502465369588000190356252642981746962868859513637458279651184225252439037554796530084178836403156741947072503393052542890857465851359444546002643228397643105758931650815490471951073994923911894529288769993432767643583679047407513086841954410465970632806227071763980239248555658610380737564864086812164410719673721720269753127714064988264852436535378467430338503843819513054995128799888889857451478775946035007529987769300570224174529374683513130753117109929893218300909802377283919580505830631665498032704935460156846965070867599660484277049006471903160952503926739902657154368498946773840115000936412731710422295866044680063818621823113677973758199792459539530326062590741160270872984223404742427497420240036766834583029235952782588787078682973704323385392017981508041884525223663746999426864841532125310739829011771452241720954760096061851227908284939623729586163390170076238285216435296629780904975299690670630826760362112910810678365063156584114417092229855039717396401915638745241017699395468507007284023417807548685988846013242323663243280210571838538533826500082260859857092692657016612606298471505736103466307723221088656720840021502336168873684480950373068882954506474669374566224819060315022812511221402330897412608458762839638303245852698812659826613071620615687564395171951717950068826441191506287538584844930428038191031112582750921988355425450564730095914749230128760239253207034515354151606785113820750342661932604808969502562277248017456923081570708440049188175061102813495599889114401009280264833377126972834209277552231544878491325498749594725503389090911430860176310952587317612753015058119666290286090561365997389878044565368498524578536387571716423525661037785833196965242068557084343862458680605791398675107493229950858657076878118860588706247494196281528267371864307593418208142095755124281040339282103695090458348189087516936646310520065401112250680357822691735932959903406910317802724656461483578754069810643422477667062509884982858136659757964233651011623549994761850746305459139099826069089424538074064635642910033814038989315985859363306787142239087062920850307770914756765526380346212663697161980065381372892647254623028083305261713949985472871138654331547627718496440098106692659080893697618130851581889754866831455453606948853095053483315073440369354083022422990147973937469372948008149682404116908165381853010203132169347422854250390604716364942937554139467424922220109425914329733325928837363667408800765157857394471550915734439365787276569047779440298574780563803272585119713564151915245540628814899738937667615617277359794471239812442171179820735482690839857964199039493597994794815808821473203013715048482891668483368447265073214919218151411124025656317990504384543328777890862343805930726723375064582566371952362400195088111171297932069124080599287099079707564121779530132993846419405145465472447183595163788673092325089383740929380148771421643696173846964516941664729152992095391233104228524897902915985357639674537681352820094281220205774142522749227650576846487942771810786914847315054723052513201666014362523864865870065445811011152310777514587950345285547203709677717665914210854914091420750369004297538345192434299357314247226742862395929518656745260427221738895088844793002375284423452337786494152865008838052700742457280831243569012779810749812029547121789007134265700444859172480873852509296036523399827376343826571501792571032566441701769323453833418529450393957809689765011413657782631211186480249842542941301219185648408386886792883364198296167602273942041279911306677193145684462352012000143314529927062780325264138278828828440972837900989576349176114711040535584687029144407078350759912767576814570756683378631529514438077467153620433408207183631964243794273950367699658645051830042361771128582199729461045877727905399174412357181536769073509251049034676987038918363998521693935727538915025425620825418208531191294898525249138851837411323506603146515705377482198707687329428431968912921487182169012721926261113198434046421105620646151120905062327107247294150012916797498912366164491643700932159836938696054842890691078705910444517262536554404777507838183131491522391230367626672324977771442541565406004590495690597560826521800984050363489666996368081998655336677845338686107968121156833898305981508015825956097093472209505243079465193990502422854855993144663637538164646058951465803636439260164479187376815180022685220759921248824163638536948398174436818524555761433854933092132529943761655646021264066956569519985905589901753755738124204625731711299089367082866513937012806196834059947073947463431275461777796841448624585429379263298046717778648752459567714190808094260154351574432029330515495253732738788351106589244327554737069671228759213662200756637638025524158897328675311389615766427805792264488419404889426173931476703838903346604452979843604013666958837567427060540691117298768642338085640014178490811010040489649368693300791722270083330711581322101379978992790987686770199217318500355940558662262879842827020193342038994718140732273052217080181620758420920042486528623739858164974420663604803946427908354932813034230710367191736624841298457451325615116731395861027034595741030172360030335228159113293858618798678471992713438127060072706818186045317669333169483763096020999032828917062614719498528314381136066556589819891205778091521189509172477818758855156742887905228575498800777317115547810560924696536051212255472403658422306617638815272358630556886394460321103224197913211734038735318580237844125748243527177143763498735226639130311657117851119975073527682246948522102060396080516866253249811238287702386493542165608128404228355153343163557434384872868732241735701363675935503885030911176019170364436321043021730108193912409849769698676087795298458447854437127027711047614309022048757406755677250645997623694545394955589482916280403017482862167374351032446427315121258684862090810931220172320141362697583529532194273773665956091591221569671763612078985021366534037264336160565499552997687896505384003631154224776933106371151150243117315273413527112757515458650765894557416509923953480146809713845361384532341932856613866700489526290928011536458401910141624291412278022596260093541038007199699712949574114309252348250700837319581894544211422751840216948406628097200455954028130316009898190854196588960039545403374074928127089599699585178983347840747295379345257917134866891533757792393724349526777852625845110677775535122826179425594473156243896366958056720755913291587456919742650141048109745735711918163756913417458195564853769935772466777325375384676564028439343236667895823708545571695922530755797676884081148400166184379454720791778934470365739585386006703985849222360352152331110737847733445417062541819740949698700255565693928837225725421572487217304999751291816664180402581269658119851786894837022589204375987043687075672148824071309948676290601179698328068618436997378121718030434462100666000245939492802248971799150761240392332978763973354201764484623944106888900535506238975415939368302994457033702109971851377645305463482867815540891235755732686943997331627249750769507946725084097878026000602887103347967941879525280972229658226975719692871045461020259727721769322346541191280256726743063026545128136739683190265614099448049763869394628529067319254880905732708121688649607914589563211410493833307493245963036797978254953708733601107938351804600330901271705539074476070140052292568916165557597738287722333208508016096535442291767871423801991243817385036817415519801043886393605060976639203607873120848116136035153506032515160903282654241212794794078269678673831651259832763288672138878636176325851287604262368372792899629434636921451836006157735300780991542874486212100554143657811420681012916574558320306497193007042185192761371868153580244367749902551237206554279978723568290126770920904214232592861472323564330279756515545486145044985877269850002844071255557387986888321630618993164049051558566845702965200889888596143433933625497326485101425367126734746952703342076727262312626469081259165037971073407090617512924320098391317508560424994900316521649140471429698926143815742872864587381148597437551923481291758598372229759009459440475104246089837921827991497026901105566582314382575705264985020537499272690483882693214289694755492788291330186547548648347467618096845700698771466723883306584566832561791867884862304626104781643923429597981530477299827406256516547043485024030275996802417946113700142137497084849171627044466857077314313547009195017965714501276103450108557874426530723286194116032144340674630794507901176445376220058776114703176251252607593068254360064448514653656571304433860057000330291427801542168826177690075737500318340979579079426080448405877843779026917757865185020565096237950569766728565775915937018219602698059621943440470892496773176491810773592711481898724317999569563583091790781934410991656390596513394278400807538766191042364817812594514418208018587866176099294972174234355267156758868914948464852621519437306011538200374240036676062913189391227235488658198247678814100962651186608008465157230845443161952581147914449386913493350243576194605453594678433215667987542296890323352251391760218037087571928018801862237726697308200149370725006066122142546317041876816494358281896316845959220929182795586122240600440878568110865436500346285731195575553721579818280783273181657834893923377538532068548737790833050699069770962307022218262771734148087993090613815446738434777062544553985348020800738338023749243486315118118537037992629561084445187882376426458549184766229751475605844476477226149360606389654817082428390894542999175220967712772868353737980765681686647494144821734228388045125518187969021431111241621706878479965598011692038873506093827187573332188434289853601966044650407786773254254885507937422711858410795753106794449960954040390865568639301719378867096621888401078549947471532680927412355302141890031646094254394383397836116015768507456952507069467992754758940089754381910879417640142072732705960095114658015064238851522498422054394668962682047248438428947423943284504528395162080904832457426864226276544968605255301789840340291226030141207390521166905884868667769207060715311539730136583012238910974912403454587893401848415746020224137612841572295285723668022484187923435234970369033534869728949960208847492012092645657157608481293443845291238812153276472334789974365981995573551189975653836818790613149907042712212372549140610209857020360756100224600841081822661336879981626576947670316475321823505262791608795696326662318699435719388895898641978916573803899809152529914003148590657760784829889965003963716227787433056094044478679696265604906399659180701228158914968082806108330289969815161278028441564064704577168216520891653942348070164420677635771121767696734066756488266354730131758291222465994746854750971110048182593354292202443813761816617880485386082540626798094479791304038331967447062693166175278698751738047679961720684006534927738769601680204071416487846158833071312008437211928470181689482680540832721504708541174010246373872918468461126722972334457127427514572877165971798872531894651705602856994985379109864030250490248892439645268814234221598737276783964027211593129985460634747813060180718003593133120448201604134811950717634585465765258961441819295306362548669844580573513157425225546819592187492753112136360080419667464795288548347985396809132988992081979301838973495489642469808119035290644600873603962028539121012062926982020247443914675533248713301585329799177962657041824445950336397056020038133982731286324089894098817127007613433180607278198234472161219143147346612326163783432597470575075131980108769638053552089186701717037016663122544662187865142934921969485967188916521521759988073841624196417790955520456800195252368106932342825823515674109290236884947745304097576644633336290109080324384290966264764179879002010422693638938458200999381615108991431529788319921505248173131266442672589806470471404464974503865106984868479281662069337406074639065647320810119961493005579049206122175040924889230308189709351803288847487405469918940361423416293489493942051071040072665606191905995619117849043900747561504114149808970531007812089458422429497545818152035673990766917856334175203200985611735186891344500604604990169974061597128963379746768177775023800353761409551065804752209690520600920594156399486206426855246225927648811287194750350472150556956506492151216878344584625831051065546404990011025001785211893108867063156755958800211906692388238352128850699575192543518295178108148403976832047343490194467792792630652285024531460296855056537192890710340646361460496165986415671460687746531715977197625921292567607961835068964959163685861354161874624923257505990359880469510024192931683918491141338300241119583934673138394545173679835845716773032743773017530154855930710487643773866747180651691657319727937957745705727971654312674008829888519124485594161051370641009058430245364490250651451551113840333894995925573461731820077492025738250302949352711594660498149019486275977478349570968023628897780883021261362734777308414392427051262931269779081084834691842619770005858590898569419878181496744667205317961374571018558758965056733642586211332767273560816722837608796625404222975463241723733366158788765269830066982373825840099335823045156975510907523074951121946990620318485932652126801227348764592695180272212492364814202559014654582671905463768014285887608042713126761717544723047768789263666726090454810383343869409607409327532055729638710746152818334359117496993507476657721428335130502328139830437900406958170524748014964836340149822973643380150064672320449339754741313797409386072194083416963417299747138129265919762686350665621180876621808034976299991107332824426875349687762122025900015427631929940365850570251829040678111854336515077859687808525158544804036840447440921556519018686117593773501833520989495200951091643585104766482476634981260938306065230670094199510108200035560801233081335609642607886395184724498219038967789381756721706446063814531558017853795087580293013702362353544357072109198524630556914505528503936386065630204974693606701091768152043543198414164291471464186150028334250434867638705176196194123738986816514403494732741531071336912986756492900759148426394155069887868770271403147350675031456705563673695195834096051266420634236683391482806454599433504507054832650595446844398481046374028198885926616885575805963825719131099769634914442234891225114579720809956618132543813288430748928899957465747191249607479312882142940637574879977525810876682819994139778489045379321751699564983586899137332776278636298895629852570739385785223511837114253895007257346374099869100341978646080785688878691760597962325925477086858203598794431804646851770446783658248894026438793185173678791150216041330752332454536862317373819098248413761231813155621978921747625128282199422083526070342443263536910393504008271490635963288011937033878122361015414972611998753824888460899551271243645322575888013162566144536249493260895871496747982090036579728079662069654310021171736616680548411992975050867041538277421461992975697665662441921882678597600364440125219352199842728599347618921374755469324559358226493402951610510728851273221567305878912275839998223138160627629913706348812811471123115288764288623401624708191655746612713130105167483118679915247004544407870454919938462230170381041989701565103772291490735319688600216044871754015015048471516246400409988285408271814153343749944812543154742410599460839215376442952882477380505877611884476629634425352309148601598239829307674179918111936316734197885931713236598070524205714674127610299976784292916427846184765748496647521710707157732123206214044881713778958156705177891700476900982989397453614611651748229037096582385344216103884065407836370088633061800521636196640789216573267088506600894224711434033998496787274532255180883495741058474247644793632131319175790012084076499542307749785907591049206636611546903442171773462174915770845167575547201664455202108394415672514039518798399219308243554984657045743530110717000888949060785394184566540581248333581322393523804500006494575674380634167552181916243941673232639565548507544474055781681855154642121751584593152923137822932964351526349286003049657265248388052931066765983233924577557421342787489200698753932894661413933466114451338811988324364651018279081329449475635119597790762976944852509845492891951704185770129937917134273227037217068187057440783145486986666494506104573162670727863109028795289082886669068446151548705050887281654597429535035138981678609887668931139527097629281074051419225399423680541998123496002608147123854598661357374050256509017624654828638602980650382541616250145112906952839913449398034702858599969601418645945667872253758885796791154643216220836135794227240762538080173051220491494560664184475448197477924312135515853618334360289332648827534899797368545483019433585244774842063887180799452810588031105104729026512350715517788646335547571391308502269245240854093239429653896044457212166330799593843532542221155638212273532708265080995144098110544585052851263685519462939900162228001845148310498414621740986522059083250367720503584183723373580615328367835348546476604111846254570028730021021373439453277539997492674348774122624302806767046992353883141135811975633920530984122044100740492437983451667282342403628419013605511403337611159543139474605560163320838798824391237203658922038435719028429808784155589294656242765254769460867862486949393124761745275169709730237064031032240725780117690175644422705961042769912951159078973839527856634840738389146985508399129628860146405189175220136776280800478359039900618268375313467900577577098701216993899325650704018968989748447706892704763145913014245190044306247932357651536222170782515060846131736216332959043232437269753824609725171434649875724396112027046838145858703415755189267517605865484186084534629753866561121122415283964607184567993949178034311304442302946136231796505224004104533828500474723108946363962338720882835515897511449415832893822291172118021263214236935488808494202151511046692701546990906622467919236849258723497174479752133324115440273673761912147201454192502990091716426991967952711481269741241378806712778855690669724292455642363801820996723123509400141187006226266888571306233835481018515616444497690562410049636500157773228786154835295437119109440779364644838121709814429851383573180857063309332386392246089813680878272367724596090888570974514398979426966829784664980455638426165891596561996669136619624587682779174509243289824701560773670388793259749040426271528957652336681030169770513319535958752591595434274356505874580917168420586282430033050455965150079128953437115562568983758989638078020551130556186896116959018428261308368621710732805740873391791396996886366398707479929404403357800502621979302099167629891737870956694858419745530189216171054190823446251665252585949924110652069118440560294234983325258359136561321546189550074864434717050219085628938651520626753719600748405869849153581297191145824081194183722314818086083394684694866063157466411054980390044831166071962285152887441712463291247352492159586257062593709560238008736637657213219568869642855764216939471631963954397833250836666062841675867962568225818877220276147105335065145471885993133643956873139011709247119266037851519430919407881255263057285384910721244672245332381105256021842132565543429263571069075611698822690658969887751174485470900928646754153138548090729357793920113175437036403271740032006684789986996445411179497165177981394726076511866286356505321981846080604379686344344714683697306358222305768004525133324652794930219046503924187124204209102104182763536971143226434867008271102427979435517335876189071142826926341652735557860731493131931980377974480817783129650951125939963840262320811417784156695393441681756245661007923987612264176200937720886258013653394961009059718811253950076981953533467888293508674924513369646199912205522999823836562870724246234145964048401215438621576277089758426851387573141620514139532616282097336991187672055704278861897362816716058468811428337028100645584164640688347062656265742299414703494645131361174378285515903263027793430072255149211448897894926433429119238640543305373407472447904030623679633806913713306551442952760676636704427310472103595793763703389997172729622564272619259999076688040672209989063541881295019989874115156809597039465006385313758540903897945028066779501893092661837557890437197384602529818133965598202865443866195459687543842952190320179988285891698306804202698178235491647379446436067931065341851570733867320336166093790595357323109428087599082852406103381791217106441775036811819674787999259863461916767362530123965230961769561007339341280761741669687051496186725858291251855055545574575613571306952537312929923266053957642855280502284479325656543006949003510889377972692304968834967942344519258536134438859294779269401597777148378889495566431295364040602529245083360613651732137933219380383832706586667340585551001924944823354985698258413748237690561466889756199772860375892169935129081463877554258069797269397883839073092048174618863757325246743975950976709298609340605135696167755267280842327489903620036111526936128264940861605545571357811738711015752823502678741521537605511203556053102286743398142364729204211295985452361236997177671834203818132711881307628451147263811276750370734355736007833205315048225989805462247322284990763173161284254649569058448582715125134646519170799460693701585995843569430405975640823524093254022365370139697196984754890412021387320494447464908836415497290043142048034295436994332897463379609077738166354403733563107242356514654313249667995437771222022850169153459705564108297718443702756243250078662428709279688419549391870575324120451911079913126338594271628979924503929713734173848021853946295225438058702689053349805623958192612015898593130144750509044463234881512938925505207883262823688331400206470999781756349168603638227799202916239926291202081916453315110437617070692926952377699762125980239045083418217978873412130401687344351187086652870610248798648696027345238299379396756773152412205572646737601967702286259163700032641980544536146111635809492085366684103691997922263423131195456581788239321815940333077170903148374805579224908484058179193871608478796618767706965814055231720660404908882612762204295314088276825134676857618190214183764500338478694827895182535604208761688568309669985101982124393791124463219317977681051231070248109786997438355346048682703210314039532579706004574096851416916391418251538407420182127969256319347609601096058457497594931037833405971983312589912567971886727828910788796362840392447570101430448007533922662738147440749633413974641233576854972408596479956414046042721902796086510935373039968817585313553898187563800480957173386739600320365492579442279340168631839623444063001087241959642808815804716018058212341546331568294980715877631272107220593922886182724317914156874809508175355870879223252077979174459399832176304812080605207648656164114942388634700769507229236441117587126729021826756105703612530746112302629044790403169512448185612724402471227946310735899921284544500130304648099983680225952288117086958241025122995312263444035293354049216844727859772017586872341497332617071034741689554121128743560471676167927651782225499236704997932843114681331757584257438669991922798202609589816190604319740161801742293743818106709713311793165945201757140916854066862613427052815085834004226748114256867205275769056293979749917186325819305396308772307396895231996211787449966525525207206723719143465154663389651367508306131663876548887352808863450019805175301719959397450227815037113665183469255770077452146577712305721569739925942132543979392031701132743190047168943223545882954165755054763728681601423059323849751681538386129036842734533502001716757327713660002101302694008745117325534435683161587263286831475896758576746601149989603799806409824548542312355760331712798418910010049288921736121357087710715741953642049170285694616834283295503358625176057919328641404633408976753743711093696474959786396623867668424636574605333035638778056264144068062553908663923703877639479856334453178956074347585733896626955284369447536679962136297546340077277072277087443005603499774952704605064794617701611477847729540777423807836077050007653454508281749746515333329113238518869945607516530759485086507000132210562139605133520265126537286615217446574374000292835448836302345402860992746959621014094584205579895062990561927446477769880603438867933376141269038211823004492859320443759095412708417463584927811374464746481190262148330133311231747799768824185838498647013418221129327458234167911934202194979625635777185872564197467122404013333843182624480056052016877744248811892291558072862333691343662279386606997404312253940644219364256863230830943625357183945850008885266721150865151062886508088332818976399315647199692793211220087725437322174188086223716897765273518512815654678702915906914524287344104333159476929428246232763871639881095217993735680153704456695697647009592168923742774433261173498442271949057772213516449557751839471578790343939375231552898507225115691150517235676813283944375289267440729958747271903454893980292013791012227290430511469352541620293408770720720603801673793248182302943674200701816686030699725488589362155131135598387968306581976137133622941665266558795075198650598237509281885553452468409172612555617990408662660553800385092539091341208542725675815741293078671373545858606941310279108710791910927314667345247437929819212628995637202034185450751918489240119510444055839987726437513769434120754167544315024870089237748858674449954724474131823633496918644565492207649810276739185016205990177916623695771200004750879854267510055550367824627267666828687847861181186119266821092978001989498023155041846630061028494438863041826950383268372612392548290538668590466171640476486700950729593729555770578592135658136675312800337368361554765439191704692829750068175840436643214023893606887430410102222500477569977158916434777584102847661237753259873159529516516645891111871373009931301682915694036932681003612858279514907397865356458480869476003765346733320834756660330840011174052754093237133742241489989778881621495821772858960327989441903688029668720045836819747031574783971469601767513689229203448682707229712130612228333072492485522424710276043002603288031720430367741386026592206670599340082621811982026758605886881947527700390270811637758598586461156066944272686036128553869075775187049868173984474125286543402324744675548134616220305440298728852754241602859467163764184530287645201289556200709977236407341611545180156858946628246644306479006355794660393599440679168455049811457370361076898567604369963003291208261818562855287182703818171544529642067492296589193308574546013119512038625036979871334656945217489918435413864817006835211615113351418689543944634742716341065468966997082909204172454079981944580691109425589497117227392542990184240958419696417128541941795580198346742482235601510820030932979088582886609956867339430645268186240923331954648541106320329619245767116095489275216816637902655412273512889244489161624835596876256769129734737917646546946422476375179726605835906472586749819769172052540797046953253903726105414909914733672626947963910663189467708173456277633201399994255881227036187314765942872416559525117432498853195039321648053183540443973552903766042626390768659972702363671698438831759920569576133536423949568195040177535010712647609866546893397653679629310596673788650850754844236991657739080485378807644983475766858834536391067265509350095175751950955105981143727810693576144090187834894020751004775472855455440407000493956756994531299039137350450823077942051445451457950186008986560778284377556358920281666379824315288905155519652767269951764816544983721786483336863736622690759328454078830631842515684135084078245831025631213014380335341238114416725513799631400063135538887400813013932916620910392981508027694484382272093981917587205572043119271354604791743818667540615666219815659997973822085708466329043176006003535696217654893645107656399199256620912980026637078845651246017105627144037701099181654754370229445785996361274137523751849400130458724698299050497604701691480230361514984011065602523668648663379159964083931818580644335413008562744950829576961196816286889074601816176321193027690438118069324068779103917825480798390391947608162751444297066317325667329497310359461316308309502549683333752413657657536766961615085308657294916958106278326914929836797479419089134093070666644908744547127143505482301156178049047306013433463623700968649186621007455992165111705465813042915111170996743915520005114651713345193649992637940816707751959530498739001834282582060343401845261234924317117732722333977045835493644162611765917635715498952601004074517896941012192604887149155768512364221644237671035588031195315570070891946785292219059202320274145758704326224081141594858058860215194047373994439690460575052341955804251572809497343746107072378274944771199690586098095655070960535133089781558929612991484028381284988603568938922893469260539148594039664875800276530476334670705241245986444060113564147950671390315473628604146333436503965485359332039010026483422899658419994496959522115268845744505246671216910961509291168920038774881883012042200700627409668751904944382156783362307611292689617684702413553997629121776217519802027671024340684933779777900887116191429393639967972075539677029703164438383652201821149455872412643565356088128872451931936372010529152308027827306073421331532874428205639622001567479813857582357805070243049309613238495575665301052831703355287022962197123535539014829402598433634622464627360402132173998056895682842996843940785281410994450746513934743646409253480478664186703363140531029701536014860755675183998719821795709191314099560477351817733407763984528057606564840741665488721988649349080746482956427294633605773057170718971987212217573537328965098242302419278109348656839485475224344958799005818416145952749665965766525826617669882930214750010139311483209920709703080516638317708627818742617566745004841237769335192848790796632617797878049709932496884325473005852621506771464060533785921041971991121627070411629905442194862219178468928013831731258449128043092446012938119102290558496755382769931973034906045891869830832377389758674820897749301156023508237803778980181615914418350796865980499302995431491163903491493594952053599188397818577037466037235011863163540943791262007799972575308922181289154002474962572633020883631314649961706195840963893049725804932964646538848544644355511580563442695040550481700500052088512919943168383287571333795671458857693846243524522099003856823985481112853135418929193656918280547010305560265915303832063556138399380225243031634730895709669534230818353210180526030528687931351328543617884159947337380925269564361468821352436303680591679614610306143067165043313330566749034574318136120727009294287377103091626287162381335914341711517943178899761203159983497035676438017650422588062210460889934140200465761956276861773873611138840264976181614424248156484279538125535646321818603474631549398034941604022179854658955491229844537797581790257762407561303484259349889934180929078629877783965962823052184461129420005217770679991347588358880274669595835063241162342909526712626856638075397650987639110431512607795554963628281829261679195704327672589213940742381089984261808196380797176996248707291424989465783454798345430739891328411092298997980242738869966056402435290495609441013992606859514426983393256580028335381566795171557599666623528810513970363660458322120163776306276142998297510969040215177312868245336202310427095295811184677764518361168170956901750603511125626600227132585075008924384336348764569705952910679852198886514490131715737550220059137705007204565131451708974975900034085647856430417627548801937523253802664624124774169371439164916017711192954664669026817933968207826003692376632914360698128274166172535499868602589252704594364747876459713711467449031989729354713487025845031444439468207479929181249904312551067297693192448878282813464523134239817419820317485317810034424533878122446647403927070915367902255012027295344643749270256640259358751154041184015818439541015104494983618558812239000767893549595945354375374321228031819087570172748867467913959858263658609971855838325765578494370310148118218225729577356527105490467500426174612361390464765810362527662864407963355428369625012411355377921388586226835597429673349847201289549378940670593085832848780356054928801285851456025451738550277478475813393260535633032275680596283327179358780726262509516977372769380624796110546125809311958794246878858585509068609402434456199301692334329887520054867261606227659066171684843722381743212497073011918926504968249574448704628047160995191042607211295488879390271434700204167146019115964682180808772054689529980544370916278023632693451765232950338887640242931292985199543679861058674515403561792279761800809064090502415820563582424291212064817200310678966716545121537923608914555602766041927302998203866511356946285458242522568263367029071236046409264182190789872839393073716006776265950665653399107333671369569585281860281923161689061182295172071559552152465318699408616356182719640650510484942001750271590552145827382349945464646347331577118589109590968842540770370729259104614497845214878430585884131678054575100877808586696506027614354835354383389919332388642225706920119957191202895035024774463047044323918957830303351760407570967376700672354889593013295932675196285507798159193752707359945982445762503048280887317199609553281308103327089422214731476157324237035530470571387633036479067326124342691302410288076762524737831819167043189892274249211601529470273844308675728040310753132967015211262822075210876497999023583865414374741367898478444658228726957439238584860672782505974233898186515428862328023102956389903876858897496081742218129352089375753740428656275418193896032380439307759313791886105120587006470069319433722837981653525489847008348499756850599804396694112717068060573068043495498476101375257465179183579539261492589199150289586989399441741780435388506694958539239219249335729528330694142293863372902819228973931169408590233988422851458575838070300660569112710947652703723033911101589166327151720504238365613147458178799366896938354322949035821115704447872330430161156676725064061110152379421563413360287871481075380129234289816275465851671937784536885163001648320603565985943158282295736252938462794365596874013820572875666452490520695288218254481082356176281849672058967093811937956647884648684101166929395884605228895343678302277807614656463368328603054987043015443284758536209915459847390626196271096130283774513296385893131213243105553670816262991827374981995870464359423104194321171579374616050486573402036442662558900332583709189425820287143515290359603865371675925306664941809324816486603915754719943062179293661304155234918774729412455610072076173595101078396976957313544028058169588482197918741621019561505655195632551946702125567183099060066331589230285143847274142126896837348703813518921114804900342359209188508008451190122802771785388952445591283846737287078035512328815556329850892405152250267528700183791337977123923343415796858027065944925183403234836115650680131608775498325451810796200995287013476605344088479477908146344254643237403444271947945040325447399652780191662936674656614732667844388754345084273574917301137008525463832013243816319905973941719856132048027695526456144405380288440847340531649921821408974884311057537213445873879359108302944466505315840677493095368996640603415877529733168076052250592291698765359617567235244636048805281695236268147197152546320643874596492107162703637396758479042227467298762523136852815172104635378115966401433131714667044572879547768170677133219044611853929768011056467084986511271495075378967960497598507880832029848785466239946187377765614683923138888215991993058218103867132544401306532715296453087831124131669406949042623652518869742782081472231157835502610421483948073981803769317954948985174979004764649078009630584296546622189212793294387308023520009816520213550179748661865857217761289802707948433508376846748740570332136658387886639461091048032551131967731210558348007879542768262837178439915306209725727707818318027009431832313060687061287217105287899453939503748195061894579893524917525390246073311474575750284186825803557309396658261538947773609988264798190901523047330046340175422209113273899806175069980930069392354339501855133442209576753287719321258418104917044932703218709310777357818176646466492958457800208738498070941539069313926963484945584326976322608273390294774192982157983496158980573748253795329793169634603198439192617571479975919912365382589115393361474332546948979417243541978331442831978502664309659108145162977047075218083721046855024714807823401647843067029803204610405686761353807666694694098518430420949050543363084543513254834620633218689205950819719092756403699860090985829217994469743939015536203618361470706729526691830755757588915015787412939029662616205921965987406329387272475707389604372633742075138659285328504708768500613143750138030259329705869777504564319439233544548348168789847364717830476089721702598238813009778704221225163332948892037382976832143427820406192853861467486137008620839581683907315305791773881501748855320874039169084404100620063532461793245843418582206713913177915597359673828997543866195161017458684814893594402012872983921822497308186816245243220583081801221914837637656456466850413990639037139553687460189766442900396614942727866111624296335576355999295140190498807971422448593424796201790343824752508565151953929674776384381863669121188605127156416515767243009050988127872141297738716703504209636153307057818005632192147081681677151969404700006392367458620014391302523155828374142286458168171737111114260791003992140892254979844549347312427888590750621171018540469440533618019979944423830830166083795398666368346028217243165078395151348426408060041237851914854080527295573960287412929788078677136512975775145603255799134087858567284479688959950374044356131101483397804492721198519334494205714356653567283268809815913803950547217042445489202882058596684972080126092213882489944335647148791727897033891273323831651190459008242182669439415831749328523914858703607556857408423005942264125691899410904555753609111079037470049866480822670863799662967495048336784611498688020648030797931857907882725569332828167272501687809330681255973876178050509156240580893515240087060627300205891218901842890261377205474575668079745615449482726292211777303715710805076791938304990720590702571987820599677848628850986962760937904341582832416746211617510779250711705984595737693102825737693900881416575665431644545665235997710385286496074943942327528786468966810386251002980850692362342982575110544872438347088385095561006440882715609073058465450207068588095480352206544082161729574796101823567738090118888852386153781975957093157200264838836191063649116774771788911135693995315466388213056804057509109839480441132452850713084452231184922758706965910289319922094241062211153073259597182992751526854000312961026424231212474063599905914795349930842793893189244708229648000370929237295344040950714493307307784516397729052992876057124572514873298567851187825594622560154019273255253513476639772806288248815078955448749147878450070550286426815911970212436183752274486037720830121867115828420555228538291590099501272780006100658269013767601319811384794687922688855578484556426853046124074399347587830241861735760199121289152160026281637704757338050453650818606044747048858259083172390930088505155811462376307781768195368154117426427685214439300143004355745053197629059204721943263735175356111905629230970689458978799306562985750565406245497138408662535917278628779117931749910032937490841296881748550726818309578989999202567136214911150369813571085510815514527401428765089741547079302255003607893816633446340693391794247128262769012806279014631814907830317626029567070870105285575254232473584600139193432899900950059739323583635092531582134877919282771830590795701148026706305248757236427298408899787380622654876188695339748861046115954432806746681175652779840504299931706749933750617526299530932303794348335290290984150949929960926875426275588543975391237167261216655088026835483673966813880374434915201925696271038608548308546780638353337043383347462157007416644680726421638999309895623173205841847112575393145053793475864206165403880338049055667072145826887745102860806919359156778613369631907778833891116561204415333568833115033339791712078412591677704365645817725384662518485296258565489103864354431780732164827803011388259802698532732513123691036011450728871263380287413335647703089318477614986538487307253846878087169676540741712998976553104459017028506106284288156129552616333955773861094249396345049645515817676817843417003276580754991476527413289421763486946057372933447933667538398532935768589600719073354974407408980023193074071534198841410819446846451651641616004460923481358469889200603242705864200990189711494605559674335303697667127806447819135747225996288025830448470530914951621043524772713344894661773339502650750833700234177310594965732322445604024590777741396622454502138081146437908936725524428002073394197477882782354634473321695787921128398934819109619929669567554100476452772324668650645724046348383766066312534838739319060946769108326252247402600327741764985242660951574714185126696772118072066080681446054858704284072039814594622821484740089637923154728550966658175396055467813718947767095398717153598902500117188699244707659146724677763133289790164382611284033022938994669112922373635059721548216010827885028513730095126256173553906365479225507355415288248379988253270895454243913471485608766427515849857895755094945192211454533145764782000895578144180105794926588009730808896274887279129975440433681286858646047395598809718335951248997540336478462119550828275266228803849755141505977404779583359296382499630418649157353061914164028348465269612484090181351349386306700275337918032229782492494352749519634082498841120867876762984246548550521208404316605474401272875515070375561019598118097759184327679656483177077043801081213516095150602076087133073045516566325727753831727099235300398320735752285368736403105840155574899655572540676745181762508933566324416002256499054099840868092369293450362630677950574869849730988542635595499262484406243729519035094968749751673173080873325738409938426394063740756136603144391404235653308308785690219136318855985309694823412166937165865360785278064974862981397535797118716746487397206843439567302343748165882957043849859345809118353444227808427271414303158456577222628124354182967561971212025962105259661474175055001620072217659735589670505956895566393512212494646485356572632313807236663757363877517041314082377904131492765894040279239459012047517609266448744882994060625006487218176224204551055150811604427893174692695192181375472888047588650550974464056425359585891183912313873964095465859272777052070146645496603720395328310862624990961682076054634126480509558757214426627675823673357837431578979408825274295155860057095064595213841904121155898895245103380288634387394107009446611577938256672363416769111749102962162252159902977970963345566489252214677998169904393389714016918368061678208420770454691800056047805990469320369192145869120007066944996381198386456825713045412840004549433878131531192179425907600640177683975819901904989112667446886944306120890241740644561974715626148287986599601987573345390502400453992088500526602703548558304809934697530413088425625409639573180279072734280936589493323277330567714516364379441490433761038506731116359806495408730146091946938698480423761814283062417879658510850749428822749126663270493151509068177466296505198959222082081338137231760842936015109871806052013218697224235588307050929031903902636504286650351977410749954052631095017875320347540075271846470464746881870682910529984520244560334888301680073316279486561496955651100925914274823396768366340177304980422715600556858516885544860740076575498257113089025554302905999730310646297593820040314581772030428042924408257698269513658959861130863206019675167618286712058206196938243069547152993704453138052792152458877420734890437183490078142602002166713181987045920797820702960701837609453283236102102912339825751085300184176163001745832065983431638935636621148200783196788313496718683287585244924899820425084369506607838115032660129010111574197107104474698839266626609906197206803843394190946285342343724031544829067667142448940119823705458321736935983804293160805292859079121066873112560487065458379230054186467543876759430086922200257864720793742150326281872801176548453489890021842820109896321604949213490027615493314624888351327195760536305276972446783970712804329601692019895378857222616187121664880202950426421758195522108348874801352684003894467405980685613012009242957066709504984715852762723237594898630923550542372125923306657316041912331516200106254625710777664248675387481949174857172647475406960235300417731397338978666280372605809037053885067114978544776113102032170477882225336153893902936122293900694044938493748704834565806201028101407149334972915937914151758610949544631951987585882369906966149764652743737389284007934942174683079894299146199999626084852665870171204445948649285397243900018326107484315609055430524081437125194250101588765643278558989410724360160376043367598165257600887697008666664554605769086940475125499194220195200804934710961024344714491428443246115746746681021043690080593587116824891307726081422515304263146012546277549099539542361768959806526251200313945251316349063290667623805399392516213099404061383546041062647495837970733559309193751031291083700547723578787838262096523022521597504081564601388094095743832064770974101148014333161071739088894089205805809382968393338035736032368233799051534956922208664619569382417860601456591420370287210410524271887923522649583840057937122827727384515909133872009956009190867599864401201966329092693690495104037141366803874380510327717386842408688567580289788275668165773661557597324647365400929943616666280228508653062514354531164087719629293517004130096222145524875118645571566689760363382130300706858649106311130221438173068215347437616302365705803164214307901343071494710025997773841474170469766812517285024776370916277068069015900755614006981368988566872749520302354747154777643891683066174646595345898497116679119162676576470628878916039363599876197508194422709199145021063782430329605364245789233685551222854575463302881110219652081238101906427214865296264431981517387460217103833375756473747401672899541187694740875369080414057446703063992457930208259659347676653386500738833672433709304449177058236656099704179433337081202457338124863551586584889014917941019596875680715800070103742837505916965151637017787114527965943982957624398536216191970547171872231810870805527773888038899821001540977607718380457560401232869879802812161911451544241563353216371484475043124399930910810086884438208075412955997698501773803692281411385308249567508111706082799969227877093087625566075989736064104674526355501067884159193968349218954067783555554638290253198557905267429732080882648106272411675018120392398588308097411740991528519367094641705713516920202873674932504594840946294273361233862978879445545889299203680687917795249815438669453110084533286926226287349932038462812850354304470421367669333246179580083367999617161657225816840190697940455047993698562669002082641549649147054780182884386030489939209789539601655498106041215771724362728059770689145125313742908373691214743617436144395603659926981681748700287921212811925114211223955740252021123840028220228300345231263652853996174827152617352685842985616274017610303477240909143249054659555024239805302870746726325336507936587240395685612468982751237634998975479751211868869080221564750122358325167816927288041988833780067988907913887582807842119650506922505585846076410586456092605131855920289243888095755545106442757308913886888020795618334127504366937739505148060392580805780356373472946106430126604500409711156652047759372612956164410504848375284988485010321629874850077411876160364888022808138764452247360539993143609875600441091480792485634675293944548426386695866316842216420100018798148673520658763111530372549170577729326980357723094164182036592354846992316748110239831139388846510428849143299454225554249750505611385208089866942495873101609478184609322230574991090408907320565292377664935668692284351109475817758871221134314990263210144062842791780961681332993660897849103965558026576515962770139405103092944537119801231628291642187887558025014145616622319151837916599853433197108416180335945704582315438508989126770918118683241067600089711080429609379673908342986599943039853619063650637990290781857590182086177790806985905019736278753429457765851589939694872655185732359338695154200607122795351844267242706916353710172988405656981214421135716725447183982008907137917548107890714418036386744271176504820508622030522999726606954895359236961365527538486550764321246591721678129450012945351043199148896261757918306894332321919271931117791594733330723043270440153153885163454110548618606555006322277455347127422031225545071761055370780238059673787714156719739684689516686536994977871288543003867779429822984123162881100264490914690946410031297340265180446020030660995962618455248535965232001387072619723814259196203474008573445731398724830071469538809108162833267558145064440250443450711505543964723988447804622066782059630941894517784302413538307413796926970617875316746773389347113085341709370019964196899049268544993498417142231027099756327165528339151447933152073222918674196625478958039340353534036423884582791695883616647083231247497393708425103430192035438412343565539998833422364498519627670707634969199145771764530940717427405737208006251949528495014765358685483344547253893687222748810111876565213807025175436871202188432358776689360020183062739040236815138912295149949542811850844430944160215545552407020490682635697595553308909824849322940466154860498327291940745581047158131673212810594412350234443605757306681465935297700985933559440224199221974410564940939712061621032426581312279855651232816757943341110146072796359897984179061153183713166561702649307360762789475003089486743640458706006290088058353000724467288109993163967183529857027832381608528905433883134757657896523924177455993270474071121087056747805990476182007804419040213211998035025733467279081657059583767462686367266788977148582665852856454267322825332925437921555581552554079984782018891443302832325584989743460972094987907615166173155422937190030546344959413000213668248674422236302058841005006701060876074920857299255013073107239872963403443775520974146604714687805960123254033351566061040162540158487233441534238603712733575190581403240485524278248395150333950922811753271035024346275634681894587338404636859436618727869336937436472812065601831078758401141865570402469385032421350445262401709353617444381718945141382231754624804751188983298892875080435078048464678342268921101065549863545818692095020472856907903258512314684053917396500117127249693717625663476918360617175016041975982298899160329202171432070639062500937201232091392411255352680230040455625121914349159524439106436961420560699709337213607460834124802895854028013027780375031976900884025742895106493757652370106986774645925638866980660755973218858865702916515117439787462288820676870140657460817898840227511953004788082238951929350319886197511488714156794943509186706049148951812091295134949001754483273484048691881800331016076810446585543199167116833005997889233476058304032663173850869294798861399062744008391712884540573420367263080639250766602357451853030286070474789167998653293094420480113907562393510288787441083072097233693927571218694984159865178422000027926938527400116153420227436380590218935888522738520968306105799897429289121330940291513789995892784493695021268200664707916793264544792992074051959975377770046480387516840260807532904669023774852294860423820002479305888646549478879892601587170860004148527518210541539390748876162205599097367530589815347027355704423426347725173020390394535288685347676521359621253507711345372178348121826277451822778859265875424384682092627903972579646764809115856367724949975031537474192277538092277035945645110230125733338196810491699182028769542975800490746554480074138445900403256511990786047182543400369871427880686265761972222630703999644704045541806303676402702166827753441614138086545079199124646926174017176819771103424491524691572639117411546477550022261096063039942779129361064978664996525971974745350508472125694724004875565267398470091261633260443255727809105902448266958918690384251145693183214523161940478113641505806535841234237144465922919853647858265434175892983559087929083060845599553264268184451352609174473284056610101945701575941907118595505208435647928821213616730935231238001152203277404366428294174505896386128523080101734130401512893446661055134129716490297375228837174485694031293137279873287842313379300712918761216131068168324703560579156539474575597781013960343092110411698553883342645307276730122765163420319066214511378060262122484647346284856467870988703176729758205569714725926145577613681461836398254044994651734291496123293063498303869634007762624961499128814740203082906840963788890036634582963371789851750646622546335987183390931781361920039562030526273956537560016774888948845253083097831166979454366551499147901882367391359647178672012303363274711032932803052325480500870795246092085657766988687225174043749283948371439522051765698358764307203999090069229917344081936246385513136407869625595903096884926030451504567729378580090850545621764204646750328360304782714807512001480470720378963432640896364347766475975512547103432692748628053616486241706271520545935321721814922765571858018247296107472211448260285164478449142890935142162190143351543669284365343283959251516506693334695565029715483944273203379262652373350490632308758692232523642503875133037989455214197068197331492164537012423889039528793397840832924343956186392836849439746691590140088735651367410765709522748014909794073012236808986120193548158263296109888687654644228593768194798551934392231068879487730623441702065772108732538900697397245789608381311214537967878379788809562942831117511460213907641650503821421048307948180933194603435625940392312642071251993122946332640509860625097994601613394705684670963458239674143588414491105452544242756775055778223930791228309461893621397025312324122236220727390767651424905997677873264355241566552052176317038540159315185652910088039955008655807757030338406693343344269747971577038986576919957013306181582625483111726850551480463394802404915611042409652002073982399691317188204626058360847816874259428016897394163491091924934763656273570898098346478805390444578714711717179311411151143774975806437002893543205812074990220293818375153438444536353603063104322838907013365596228075187595253268984477901254310904310470688759326095397651753903817905417232873467042523312897179537259391932192405679433410517956467529489207722623955633011253322934895096247439596137355766306304666591384814133857300225273173597481949289834090647863073739756493769301672407942276715396598572028265951115325973525727361551264314179437376193630864455719521819056391942496769445702060133516254776681449028666832063748596063101191878486283572448917803819548363192837529724662466664195514487639345725526429760577246352789028071482683761303661839645430346797956002918239155205996270496586792935118421271835831565661866386745537981948414072658376953985198475700987506567523692258605016883484481368814717488909336113976967254066905101701782245801517192929021268225067401173343927536200469289719132744319948452952654051085265864561010321401123147937352538705941101472921636468800016592705054826275389450736381939522302140465943118771744877640384601123148112953512930859827116584595716606245223637179209607236569343692494195763578124687750905181018559853873296472481693793356932407771480426958379527774827825001927961160050505106253620151684282041688013758463419213543919067137547356813694959843549715970978610470081145882723025280986503194842673394156779524089451859720006669404125861989389988632794876420046017183970880846431565949279619285869440525558632643964399298995913215557177325176584348694543617680914409923054177426511351871054177755755410521943070348135413612818751788695229833416588086172567881269211596780750588800296141763673493717070390683070416679806133323748010283640492653001465162800925767983460018410277185507150183317555860875841440221610999571554127584130503787836551038928988385582622658668956808046422628901404798865045077678671715549350113821351679964393085561827127301380914996593418845925630871660748147570834898276234116703021012512084120843508560645697763551522723576328770093392622855347947575956122039630461563112160291291538838192089443604332734090659741325777591828492097927892928018838497380071115205924462122852545211906642915666862913366835330883084113142375094027172468009308723126854854738433667867890103160381798349565702096193774791115071705837000206163849908411171670550966129331127889517124643298097253195083230602200363082921347977901531149357495156688235424599406962918943876811689002111735376220845004144362842465342852440829939610204936182578411403347138328634319531394020894821400319340031843172598168692545815080539961041419432472570679682961272923538060268116030605189542830547272584267706988276650766180890521109993278095477915136958012546121011146435039871486794290328949199109751527541954632295951192202720238944272058325134539668427822227804154475458768543812205970450975070532150216461457750907739320771743047387940426465678470498541461241640045200778361238230707261637175998493139683438542378587746772508720804896346504070522383954205632897993590656495247052349885759415014685063929998127626906539551680977414684230128060847721070833815752566559680349364963689985755747754153290444731789366888541765904456062471742896459912774537731582053448564342845512946383448448784278879872609345099282639889737086208690136079245096258263667351675210880834795579086046825398230370652789674925787483756154507928021906980306666493793578358769370069776918677226378238080921870655009665654783861668487883975360253102660925391762264508742465802493471066974011320315346281509000394844944889899252998598111355772274870218404326086583489683797400611783596631572803626752233566477771756412723405157196121978406132893839281788145773361990091946636623031831791438102875725569128001286330920514254757205091753761930203512231916145489716493275827623317457455554603746784014964097894986280921993538120870220400976102134318410488842549836827010917200088914073467796352427873104494481559858492195447924010411961362685890210127410839530558479596912020268846356444608193866007502456031721029347437263951570602925423051083020167250927328544340449151533969017484409204985502234477676918877250352781599078543146840283940517565711253336337368719631645642952857867221404604322990781174545547890373763513207953967513423208181282788746963727836602861896602764242346530549153520873055912746341739950285087895184027179325796178152448523306290224191663529869951336027089275718634633471364856959004362514678221603779971398944202551573486665068639230744883279910813113668611910330985429625291950798124772694539168089244025063803989794845828706537928971369711677591117233474742883202852472618375357281923227132769202438010701104432834756933904271004430737937717668843993845819157775626772952096214673233441771298753280855575502022625659216390841094622133670709403262704441784018648065968887138971398346755937047722722311103479485045039429011829149583656099671502461111998069573366750499866823366458682286691313488073067784503605570351397390791481156356840983140138622533412694482368286681392023552685350752548295867615629687770391121825750011760991876740844230872574020047951923153254149410262549469396163948533155633033110833801051907764703337516782623287913589011841645402904328453305915007848262538541019826640422116283211803878144558520614566380208246570709948770194788909431114851458407892607862776999298542137674634939131847466401206345935563440241713285722499775211859045362118366182597409906336555662006570412250434285746654151067649137346275285366553097184208134068161571502839192296292975236337414406278288346008477047067679203150421087797347505791883223798084816411698206289429747316126558142874252769421568457906043306122265343055114043083711974548782367123118472935060267741748654386759693347129698302308477416482146628810276133322395568426762040400829877493016116031865490526558527104740127738475565549343111933519137117251776638704507832833953258738574977349633331017992165466752855495362366065425304679437520010426031220076007523498983710434122880155484997343637531538860771674435289148596311287389557019872148053356539548711966384527610730338900137278483087825058132696667595683919273712016293574253782340252557376877104590200714805200269281410896828469734991134466754222482619040253347894347917185512766395988993297668419133289381408265678435906928029112730178217561478619009253199458997296240038972056611158415366192171784951878497604717942871229308542894707487553576993214880501617332397071935918931257459274567555509565519543438164544276566424650038902319449197458255714211422436038678834434863117217183992064794877936526335381516152641045213339448042485156845129687311552574470688135380434877412292387543698287902699595370527822482223906890680077457022732771914701718045464671898691713407691457382494443750469401626705850861919794691992041519602328643088997337270844697766936615954245895158616704504695122418991718032888315725687536865039800498330617028646476166808471619238805324766071500694824495775886289335029225019364833815181867173749321420785439389458722177189303362270673396997245385253961020122015949837818357904280306171077271081818392754383000543673304298707670829777155256331757103678177967934765920867367799037725662143786805582113192063832568848381336306800581225873448892990513877231262282147527785273243860889117303935294484684457664625827441792616237098993349578144487202519990238444141799495442687063076582939744701201648451118075413368793951142054659893563643226396531605380438206575073321999869096017806040247918295850728964944995266767947337583620734830217593723457432706333817810889749782004918705353574223876875544864984268826309882541272214546237449673124226078766436909114929020243137279055183033152262103867210874375563571244034870981471736000252219461622618667123446940625176138317568294835423870684679215513277583973916287351621035009546536761496254840981141195394952366364171284050611787508993506247072733086896482431845215506169627029018512829865501126235590107762240476934053147217426870273399299623650959850035079081240739558593305731279301079993030927766463608022944661466478661166488356861203194249791624374586218631302920664817819745700634480319176343602415547943580496028074961976031450737117037323085841274118799181705874482781389802223302067992955635209538187310385067473754911012544496467051124659494737742241408640925827642154855182493848892346462928117816362037407044881049322242944054320733254618305867487262303129387140024565715393524136563386128042397440600542860519637310595611447761228323799394415987620052465880892564785172351912170871202815606844530405571947022983306634323203228219734113191252618924791538567287424888578816202069188705864650076190625225562081461475509710508289367307174817707659417335753748655621385871682192830361575756866266555754291435614922846169398877498479151519812258885415952100945154273651858620811350656987886957810725396983723155660272467158858868646819722942202866055497516357557079671705731846385051915706862618751989292856423124279493806551262077976121327270506635629963038079560324324716251416554568278444421110566070997763761672377127210400404224515903261336792678932263557336548482397820316062477059929610386830989353446317121768361787997140924460811641245881291329150934163028752356995936790477763407477589201084918544914323669402929447377833457041553824323920292692191389047246296751882738195124732605934358167992817699614085254029168247886973771385006743557628359740365975121216639915233759613079141980276962604128361470392125959253018975085206120073364524968430794978164236443272083885866123663103899830576643004038444655442317072790794036789634442374997176058216336959383550567902515411358994897599176355087103462716018445746939454928855306402662533552255683784241652358955056396572460174175186768951601693587338493827600412264232471386704592334295672951721149391098104619564370774920193593274667256808779215172869809690981832715609520721216637865488808785994509391395882789241486063689847765712962375892148628056793425169846806839441053505276775703446072444470650832363527028052053906025600189980663253848196459114885564874325978563911910986714012101914590787716668099902382664252771987057288934834770123313099918761057231510401050132868946038281221635865007782291571752853040313788123124080671993920484490215934531239489102020015337227539934507773103997740529784487757676099801363772066090476033921217357564633188304402739550657334462871895826176424787924817412445881837113484365932110162569845907034919984299145677029691153007566310712884542881177229190075680385071830225334519457922360822915917819280138002972656362967899094356220422624459234084065535910197507556980924733407215504019777597370810829892746145129738308757431559838721038805930641769450740694904488613976617256527553938799909177539115608958918578863748593229408054191565163723782799643046287329612690306251509303568920511882668654577495544747002919737573772059600678662526103392591676992513535133497561265035733259579182947445525468515957392415477354737462844844737698479539668271753672125205539306473661791834852813827561439580559912453237651080996367063788467267658669428028372772273467563666487567694285860369680429715985757851202831247287564809002793076867410846440209677317932972747512767326070548062129356316128430287279755275173166882210789447365682860803813029760892639137762085424463956746981488469658573056518010096994552282445395547421230741794435661279088455161505499174532961371828429429807116233828251525278247441266464601656578742734828607335810146242020186826343734686968094662030803049697192118323020073671730404245055138217933136075374138709296749195576135362569731237637952344627896788474151882076000821407337521730852666111537235956431812398737325077934132761752189477118600162250723849922876461065404259268953800644429348581159139829297808903358674063130992201081380173141436514718045359329398780264569236359506795597334968988190375111301574111095367148453698400544395162841933832528981625574758173166972534428097638041207123766275363211845453039120944506474789852749928074642949029919782354188061121642648822749515440715038426455298719508603914056022162668356770464936637454770141343506167183965217912457045201765405560544157913507952488634481739132395885593716235692109293368907073437341308143203146195805427325129659075683876828411588631061105605164751037582108790635370948003893399125098334526247470667070314805288095337350977582970505593870362317141652882116887233434787271286100337302433742479737426233798249844705884668437907721188783712790796004987278381579516062617727761950082102299498729415600599497066190024742207974566599241032306372338636339866773117427000014498131813998590063294925570862920130985390330189114375251414433009634459767323625487969083457540802697752981800571401819763978746628077923883504839519932988732276762797643361871956270394006321627008524548909805579482302233896085774276662540093933138775452756696930773087522881196323835319194883213388321791175531729327552516778156161525726087211267620251471549257258223277532922259151061428481500363014058898522449527585206483100828104124454960535696046718973814521426368795841921037768842843097274522721786826508018268858776954214874375105822080246615424507273976346253842767061030968395623366322903445436422887681002287866395013479643130269909265335180939843118359326756450828448650344631382087634992907997952647802247225984449432229845289537040600108877289717382185685998454801671423501183088407364978485047614620472173004178680300115647144792516421484831547234533554681903875813643754111219597657612681022978667835709062718590273095295794215610700618523901477161411067958132930246452177381286536621975345334238836653331206768148003548982846474653644212752572817136727382589825254816994673179291391207459820415308931121062481610349021102403653488673828372615154501340519171379274089829490281154294151877966051630984874362965826354400712333538956869204605921368785223449138939050918386924301108667004208874535054146615862786286791999998264424314155712772073414339812342277855606907620751098044810297255744499150383882717924663508546452324005103606755807035811272366944458817933494642270102429920452927597425924574366874030002642228033694919020215290992566303746884815387940289190448830611054633964852366259283578979780896188286282350520542661287183924708712460921809451240739655906892154196265724969113069221471001739097199053022040755002008653280909761432306982273571787731185747123603918188714519727102700486976863606311330842987169662851352146989768979348550115456629871227629979956512441608677184209921503575003514138498569136778283099946765957069547000768898309230513283517157724159006144980102495508592388157076366186831614008962601945463984860854808280357055240428573984021995747129645120337023224289918438091597003253267290862798728283816800584307142165954143111396602675803353821164963098322940036267801558332547831012545095874004051193968066935637569839008538253862017225352646749882154693955728696422915674370090925911050361011670521897280017138853780193744376001203358889037146613281634342617082882405466329019013440702420965296933354501049844854974148974871168660147489346693357177606321736059970398879824397437210761636356932458684805771389152567527104813000459853801382140037765995994157072615518379671694595878741765325922595237861358227666381227220876429361600911623377904317180328554076250846852294203592131797104513234985474542106067445254486715365295087160115703145093921352184041606567708692560136521589715369931413329484593887428965001535420273552945369708868365172953451456275008721055471963012669475736078217349410271096206873448331874507359530233708086155052168841353010011229330013079603877319784821055066184578119341687121696521559372040591333385883188267178426100907535646243329455688196871407163993932459607369665769764111593829887264857888308353550574322758817155584149608544473477853082012601610962674211740768111651253614261665103854083925174740884179159630583702006899994132391474821500065930727591056079085310276482379581502335082932210545499877268159547271832176449956622755374078639253684646857252888248217812252891981665630935036749195073847226402580069810421687662988981666770140633821193487745627250937314003972002830958169343127017205683260990598241931686926094150722150442084794003255483570232274387865023922661979344178789811457167151274257150910593247610217050261069890370511445692909650757567607089523903934169804721938698169655876791274175592997992079191499927786398917631987205021332898290773056381474362327035178316363091635526280688719340572003995725715516188756505255684137677064150523008803294945333986321968536209254136460075893252499174140376470858913103004657286582649030215023618587631942869481871727495101731772815042836150410025866667299389684037275247342483645554420947797214184805803775962214492239941255521400048097647296490434423539398718301762658332919844079530667252120671447001231126584348096763248528788817273745752010445044075361770644035652874740500401047183913496842405200864386215905813231987568547816284831160241401918122528391901512309514135407797358794521821097193449368079531170923793238100985628560250269021804823798176162129925230028545151527700362329007941088707136726944419223966445625413906175527169861696366201720139766525154500047977739957076833609109289551506863428169472207980310658379548361066859053107192815643017940026632469993356882799850385883963478632037240096413800483425803644287709153060996460104460287138926230709389894495743760991723525665654903733471830635014176764290278504695699257303014082926014053914547878243310615821753167625811547200194332697223273896822382027237217570469280423002518763382418636286063900480179211180932182786708131572760428846438593120395211242272099668906562361297364996206474033204396132607993398856946023383001325713133346715023642303656030771850583091101616895486909660556662818066420917874873028364980314943747666815607425023917608207069929411514863500576865312900681219322991284987100734873972295432106363284995020103132608090415126118651265185340034767310543457132816831509502611546605714727242427299465267578301673635314474466805994311092865303001413993525255939475446725224618564701377433628394116325664551947401946724636667917366584568963738910855280651327949949155157029481826094001994379133082849093456540681368178858412544738145686112805942035135733819892273872300844836868411363403144634984673990571126890122754876644599101444724567064740620850174799859390111455316588834069690045478527671585820434442387144480207023833279658584995159757671417877873846695581745909071746206186145886031349641512130484925573186509918914166662420217125095182828125668867343058481292156036206246805170444138701289794142167382604435867006295106578516400751159947913252826547480925219419132247945791132403742123991988709902367724535126561257790574842452217345193805939396334062719626724874459562926894204068858154518198059928913527531784973357458070253873202010446109692460988199654904961233955421036851724577538516810498891553746314829315871968994917953044703925245305658837101150904860974168800143073647031756538525761041287444953355544426430746328815769511453511386375511763637432486822528984460302768907559138081381582834817212187001613272050834555039664521268461246930999588351951126029014097829566058005460644687770656295214371455574977533788166682062290761617642942554435955046092991589957908163749877468389125350366846289038065142413123941435566863344410590647977937286570258720241629636262805928972729511908859747364235981814166249100887241656256686112786438572464785809188949033968805068690666872080047506282803933915312130271065731436877149814994651124833075982499257904382496585816660095209693626938786173997390706497502023119693342734377295936406082180152902883335833535054375011583624827549919019708304941370529497515379174338168126927105721784102982132622996933986242445689594390415218603569589312597077563680948283653289196680162147712079201826572205615285225960741452443132576402798423035365837061976924791641572326833123067024620662108196185577355203956377570223591313906345476839501339186617039171051321955566786207328918568852020590701399746131349357301165928077532333098137059938726967419066628033401974222292824264257659834540307278647860970134942629188239380997276444581917104520960514024425039850407332881796062781757740076721801194218091293975360409404179594176345371648864756182761339945081713588709248702493560782873811680503246101245186034939221253966140142664409723313180121164487389629071828729232235970265399293345222204622032866052604642924247806332382587322472672145803661809410913331465342523699949039128370097927765932525571899553883976182663937564925822924867184876708343192504493891040220570206397398029563763534949913745693509189428335900610515876918850358700318261515164832191304117037379032049057008761007777160845768495541030366224532460293139405271603075015603418383032768742026162528602882652374598813737241702344520644180507770043126476463432149342138420159611231191664779946357589250657348704713849700412438524989811711048952616230670045961061006802898669285300848896270168992659379987226431653511791321587949367852885138012507829864090743650025995504106198120488803427081177566768668267651088404210001881145095557239834418051439375351579267325174023170581119432799584806772773493408915810430024184667513545660993593898670657970457421718343258640739268893011186308498895189942900215854445116219853053140919660755347719058433573614521815390110784381584947528284533203499689956691589480053687677788321059450140519800963636709313457091810135887527687479642805119084708543993241730969677295633822836321201667873064384160058407239386301692957823977568026462306547215013241496107456455489199531325454502144577278354145915986942318566073619661983071987687826034187729179436775690570260687929894042275315453725698202009472763842359389876863292597769994550615968485640888382578320161244613457226571156453413637551115622438358233955317245456772577522135590673981299779187176151634643523999238472218055552457541985039554083709490940903748472194972192037895425579471717855932970015237451981902587541682230028584416030317628053448596466395838393514542638297371040396938234852408005335470200315390574041589767023846503385546555144478818226238979296614471129101154860576758203253314030335240539091162497514324679815985827963510407442622394995945436046372439612789325762248256517428327919045477019559507756249970674891901980221702945014172770396011942246616894643362261812266064110791434075754127796351068640623829531166609495819354533990528831111856458899320764586033351101015502564706027033459670586479822508083088983517502899655091821848026865652654864423815052747021751861871708924989335697658619776488006732768526338614022691491500631826902153461236300695270714906100988407259006667282106127527048668768192266407019799162731183147182725634618946090704542628145099073133910763345211309207999410647042723387646491579606685114519414165180767122943639953428877775727564536807773853740886208099535163541887667881038465230256128154028423137405770763737077310170128107334293151443557907192860353592257170585753525161765948250288203307400251697426284617805639260474291449834435488326607844356117830840126894809111376509391898093089191110643392378363868346143645835026958676657220941043377568735636617014726030900665508333379397559569242684817381565130245172203780574853105572750290819073314869380051344057637100600308419931826245560569225640037069001822268139667598352767300029714505066144597528311796444654022207101541592356669998035514429690428583688419708407195451091410163149424559576469102517455896458643665436314892752073672562819114079673023452439102326047442719948565054489516019920506168177134104802653391525345011631234919817494450195229384482357487165080054204013219940346145385451729568924169116215215530735114599825282134379475591707466632016256504665630303581697596829150146994622890949335858243926529940621981894130713404747507094564449460579266755693401425582290090658343544612600910075661894571398093330393050701033460616422501897004324522340912326730300381367977829334749316967380908295957685789907378681461084327263829757610820494215571212533136737124382879906030431346888064013379272941352515428599651261822333019399539426258540829761994616218157901077217575980649794045170071163905070199377689576557277117534754115376255854225998062022498034623764626301145051412296935145617149567327740257275233281447834778079098122270978717126147401684538884782213669376232259473991187974034836215164262523762560535338899031431250494098933477781262778940108236652575443730658893794316965255680876635324017759771770686330091859161917752216150597456822374223329363573790703006795083519616035258951216865342869317817486829424978861644338784483846512827920633697114076839660323949631405585276903511751814058894611702461691716270236360305957409224934623008149623805190780345095361485012403487540179669204361784799805507384867712365765972770281871843638157258527687934551118529591382305257737617630466750326781833080008660506999994062706403110442895757256178798949125903387632505899565302821546385058077569284252192988380232971518964964142432165743490986429884109283338352644729154965886240815286661049497634945556305581106860686545596791572339532891234463035317195479847202224133440371742753049697094785553368361839538400893798773548508480712428157219160014613915831047654447512021205211938170431967359039079373515029950742596880773892192040602816439441021292775299891124499123509220850960161626471140615573702844288171898012918867504848077413664641665753587481538457429527041690202997347919687204215961416810896096842655351491004048646799115434833603937868220832719475015338853021362910779596603388365176893671585445260628965452157919080736213842094826477107962325903482633616534517330472307866534189869339500714565039441067416164872370183501760692303719023551823505148497061227484801798385672393513649796386665993228963215009973187952039993626145861867692477907142322832052000578816179180234885249062511113150754219956572888019482960204878911235468420288245553652294366503991356201627536095962512590588506885012100843645546273111586522715109052832347128628648169580584789191693938094868598765667119104984238287390049033043748705380158235328654976395692978338620505135489293676153910067206964487500867628363641701788406598495158668568935143755648764942340321743196044275097674653906600797720854986331605845794881463509939829600688424354209350433921675351943084298228416225442917077504542214843253789128564966367899715142266043648134679006966394618625781847232993075951323984331229160969173961527722135484883087749690623382047478130193295755772322370305557505746195536073021919198567315637521574009627124271525486845945341812552969994949299516589459418569705530306698677430959847238395887931482824474880922984642661039795524525375133101334056767782460758482826535033666355233994394117370672746576913220739371893222920589068223597537107035226021325020527013912312697660893838469288986115242989237909927774768667866302989270234440137666476115263027344737104940285436844560118982891967380325903627513532307306232692574524702660298571160250783155350904387983221365757857209496872200084271811864985144396922694771101197056462055746004995901102249192532867483847438980031667490755480541823627379524449709481879619140237039054525004383363605089974199541631903776447347822532305958164061014448081976700103254063217681541940914592178703824664528468659407055864372956325634618278380042786765792454496302796913510604079687565928835855752696743581010025766103559931351528747843342807635866980747197007694311058835577947923726225845574188081698945390322956156517884735579868603595570907369654531120736418990067962558215964462277162553075287258115494007204290426724828584419939970687343665520940970497533944177047965650624233901441699005431854684246744534715227477018796868905500978871907349945410311040010863171067964951714224486302572034919789492137026779142617351774292236651100974174912874866294953097739546498466830026429019771068388136296966714513821486235968054346771797781746336668055316449723499487919687802224688584595945470462275067579076104114361487095624984873335943565357572860790874594156820117330733410272690663628297513725503961441554937698188861522076151508360209432223199480014540612523196293952305930774297092113686706132017065282681953250002536780959584709424197603601392775444562866104679494223410461566333317173241418712113061872361791684704960943875964042366510891662239082153532949176543010569019126421336439039540627088662305329816179295650731235365425669996138185845859366138962012063093462668722941101954162205684535469358990362142067985247213676448217702255399490864619967983438209528671661030000467414360390848197265257668955004002340294271233840786386592690158124865198587128958803267471823560955174251167352503662541161494875965429194443077576972493597002767268618918212120913713579170259916197056254048619776931823079104145266495046700324101489381006899897975019730099443025883371762338273292921501906804685426762923781054606679017641386480908675858818344283046333129512330229214152033398623102778151444773875437086237113647223540624201535859628172890557714951264195077271775359717488621903660247368041302508271531196112214769355796619621431886227041322207773483922234713626091543387797951589249978756456475804775425236909085897856161080077388283001844630518874877337877220032132166646825144870548913184980898325720604833733429954478250764678277715989902973279054279469466177150569410141132444586586201405561029659290869480046750656811783925205104550134419719345939211174326470390529265108496909139847310662167460685256205072485013223399916001434936067384003108509652379754375253141762116650014640950141161244961312636485732766766673315973992041507552574740633107327371457552695681758113845129021968279510164087750991616574842537302660811296017747898285606229513191129120755768494424545118449221552504983407055430187864983924737687081696288067908998082931209741818537596829502910434108139924045239096636272786350341865900938929727531933745769849877794783806808926093908777971765542314999201963570222036369252960232054095561804797333791469256256432955815014753316555870232423632267450282642531018587273948496091894905589374267695775344816900274764777099869427494706049790820433103563513793725552911277644351429005894520889913109183704612636307869614630789256748255953894138110765213268642563331818913202767787621879416628033592603881092961798719443224542170312247707474677240726092872005593254641169378261563803008324540523276985190647211751497755385767376132770983772133625363226475497128765638438341724071337765700422784835702776723677850528295401268062406238270986383640870666073186833084438054969980354551296037214758010594844645871608216131376318208312892335624247577055139346632290771792701988987867085482706745371264120657146291329594636137151328237768221959758636979804740037884676294160470421613400529612416318043017540711115005120496379057285967541076777141981199030163661231403749545847736369000713147201846814644055122829589771841545177577049991860698207998000920698553635617006064379272900920077710994088019715986715761004219612466667651248085778414996664657836492341997059262326872157087219452131912574900369886740407653593178983261309382477909980482624098481327843155210893228021819576067815988515288621954304494378766640564683813001160094448985851618999105763236249226406751106646750601639450586776349768460749556015542792480043545782237763725619127206028749807743068856157603780676238221070796897106600334043823283643532531729878070334447023215737591856063164191943113649217533710063393402704692455902159503291433435993273641064078734892871985179878378943291496175772156703491823950240814901826505928508115072365666592207122938210501880578031038223228898209295099137571012734747044600022827077759866669177741671024951298949113672821842582845445157319129477071126900439824436352202258853537374700737024901102476128904366373348328398597692539672141841149713534494184772417891354279902663596581471236795069822982159936905852294076791221461981191801198085266796323142217592687607918897267934873905572999687613269196881842425118300473183296419955373404693144864198762882125076399418725907734742595455590657272544620733367038667996270092320018883695186541175801388114286947843925958341032210897203851944424278173631423090119519546007181390450889151264861875877867326915825699676442995367647328688190555894610874332409205415116316846879583409433060349964150012803284300415985089467708687562871680677351687101518554983462838586406237242887686407781907326922357592501460395871632568543027078188682273556148454118752760721623129217038986391570157122201496154066532987913134120894501337702182309554960291155798207073037764982258297904661222664293470654379634468519890437272682984758056612630018615773330355644212684960784334913096708034627266945819840378448055217664062584614982774917048657739000115782038929829236043775880659334530752151487507874869948423872895338535263724029813460771290832728278176177735076574414711998558367339796834646542953986745323253721752823546245986081029670673632841499236859299123675361234807643013360788590310258927675250615378282400399670083337370905160991731962168871868707410223713917943472829741316765416434081892911796938873407303150078307774650338464108712534415523290621932268267740996723573262737968350605409963610738900935536118864636943355446886603392640424409406410430000276890547506919436716586494940373028229122212228889203634360768140761755106552652056335295862028551077489846990051378196511284360320869157206831232041061272874869478996339866404384517092500814642356652789653510387951189988537844289911647595892339125411930224530041547290341114811836474997842010716176249123505400002008982834108090539662020075014171478233450550698851416791573488645883330417637757838630176416338949697538848075968843442473229537632374702811988639117360072651389164049668885518438872147109613964125998314909010169078038079185000299428544424043635209795946233676876854877313628379230241283080203075018900472634836660512888082853224576365526797651849757808972016391581351972126046811452747003826083747098547286601947124311492064964161514205248309362863855215159171558667675372168884056066470473003832517957655515264630756777602512445847190917437786112050418786149480196129556957644355300578095057918352890588623668098654255279990024694322483938860224343868139733899761410868535408427387978254076814825899737271259505212014690618007926606343211581598371310874185245951215907695483787063690749504387446737919558717219814625964635407517074323913857796798135263437415197969951366681587947573300230258172207036343123722487333872907383754269282321558248816583745887020101466534595461940544691362395631599881624415321631771217423092347486445855082120355256613439561093075933301663089108789824637397557322472034887064473856508630298527968447137648981749582020250347589654615436596347881354853910004511393953202484031390190953571606401237312301646203335263828126876280903556326110972819193307400266802403257214215409050927883612742459441013618978019580364933172083348271465528430067053230916896541384417596721124688449293808586822161993870357875705093299874230024562582065683049399280450655461805372816561012581997747977325076074324203160253528737685594583488370514834332731496405398330855666848730585012260723289394296287075899837805913657436170533854735822328425736518525355700261024737548641104784023996765917623434449974141532771165891914423064464975015493148103749268739737129987094809438374101851758867804411756707227624576363420602782787622979369739874847362324727146315314899565457660775494644814169257470223018045652973743009488176316442099471810520964102324235061790392803744507477114307502776906039676128961401464186427483266773397891173268692560988150969621757727494457307829632755314147462757509167250064030008585740755888628517869058414622481603942417008082321784191136385887351320467532088901777579198277710366615253820290956287591012062335419460864477151378675642454814988840935758991397677356079553606162399193978097744660345320769538920965601733425570382686040294281101276178667433895377353231937227916987845147611147664727383191878418335059036257691604444452353553505796967664347650521450217808915476618965333835410007667715247803313705928490979054182282462307478271664455814130674918815901976587377194208805616213403719191584779509043516583903304591401192585611756115793969671151819780370031630664916595961120796332643715973576937217926528433013945899334711926069483686955146150693266228427883684502271815407151402162331320903519394075840832052801547586070616830355916697709908285567936660777311056722832761398849607389963332560563985086577133405114228757354547294495373527109066397377129359022317978706724356136196422933325901154732579641783248175053922072166752847666930782948145774596842631285540772782903521130313051176667983373271843062782088804319895041378333899328021774404671906227631075040060307022131006129681339286936364710745756574760815066349402073353725389586643720427041816654697583992600427369943061921360102459413903274432099547810640901727455028743697375159542868039764885812705606397480620804301728650893606362919939311366523106012366782021898024526106342679172722814774945595984584481949500159008797695723565009147063131049321109178293013466985753345047454171149420531838364132310481404928336832766021261824606046183895750419065554393360439154556550662467589190924158634009004428817766776815591728768952700434169480535979168198602311667981454602869690057025049819012866862989904590688114892847787907955268843451544514816644809821082393591615724390439644508917777571089483567716978462418253390370567345163571699021464055886754492416222802394025571732475162333754253086628572040259481618184122828899975718012259696388732770421271670726366289098957302038661430603668236235157854455234359742797615416533994886174400479507224159791994967074311511643058521159521185512192059304777078899280105698718139567632077887505395724750107215943499139533662341643773380840777417622305899910973164178392039467121122499632157390718046883713650022899272681250640806420519820364677404384006803857200819342247603521538061521289218581530780848656244990128475996362407172935785925519491007704815236230149572932785583481301018119457310862377918444367481248291927615368936015868026415021751900886480795851601182401146274831411129646082601944282435279111581477104257487446120939481371481574223274026180527450714315075301811266464932985662789011028972831481699674159931447450384739333946185563688720740567585373773716291201694674409337781454526592749324645475169458779350490532535273296485330775212614315842064808629270643102270623336526093121228336262688238135656074126893220173917903084317569027247334967203553085973434013861591625820087341224945565559703423748211448468560460373697318499502183671841244568591029143717225001629169169771261786687578663907536437314802564973317115962385426717998517377652061455049303121891918702744855048258815300158648907181203916284780965580785991415528629506261748403826622023686741617383418679697475820643052878663727049192594048360781218793380913426949631125739126663084436133318279274347364552574726985223890521629994773678361994728346599989999954780588609045717349488280038286955464427728316588029876949137729190774242205729670022656013011025874704206619109743482539278150342155722074902765324133452017047590105570261704953276961117545406992881080944919730950196335669353659295012338674899886080086349109943827425266644333068511734958372077534662895398512875297759027727481671129146357660980842395975919954997361004608528239526982599542442501736720311841862600570529372480072778789435289385674377088889307295697625042995739115417523479916514336063026624613321165027138868437412581586660737913960939937224049337603983649216643456910993535647374090833457058272388372088576880851916786511793275170530913467528303309529875788423963734602984143909954632209679388762867103772690498803274006965314781296824663551613829145534592084581253322648996233719927983863063364039783542395465066793622296083895536059270075859546420701846612984353884022055561186950205939971392772221828790188976313997184092068745310398540116586422122047096703232099541564782643548686827050698963432423929517249098910537642268489959913510267766658432032002535937664707121133107975593319722785013487859920591760914618721161448271534120150181235654663213854093315774162547937275703217762200634005372717497583533785916669099666476494782294190709821880405344407195037291401190667459835688172625804987017701695669849860533283475950302045054460160437957254324324346029182608355191213733194555138456337017239350869214493595962233584115612756495989795049817998950399327833238467244595178949084714118190606840842864125600260714478818701891373268549553372117002920290843385440933223239425744294472471383173909009936468377811600902133758325294818424464478356203781016071087980631786605886137360198430778553292530554097012188104185819607635475464092493053495682186384641446976805925512508052050802155024030273570081975632178021879664658599014772290096498672314015231720492669407643214393158298314162527161680809106009040861088256323938964072231893602668599697135240367591484928672886516757690452763300611225949978336664306690591545315930746227520738419975292999494633521034230519283241375714750547422166854585111499225711840209607303657060366382731028090857011176774022593793264720791016686144862542596269663765384346876028086737034025883588064721434038015022482976639844324057713647435958433691483735707263701207550493808917743397526951284907838718378378575298895199421835435788992566694372600857106708469232609797179745335472729461363598743921784030969225995858221470469222271255239874032714580316502099935461386906844485925617687440827972989299725420160197779069316624623610076420664651188478356508975911760682150254258120111486567100357518947476572152329888190451832967353238004683031257464493534535627072941509186307068243604078940813202823266864909608975921052607365700646565216000641128436986293032256687492081163605470234277894157671543046370577480738478346978924437369947651448364806516676451088445319695137811816008075010918708397672526011089997409086327145726669658150871508893848335382345262001330807703487738510706923553055842402134542947704049085764891468126028951283756281114645589940673991039514503816413103690684403181523248693840914867859440943281436250461196561458258369830811946757647636911456016816912686274363817180335718833772315468111127284657421430751679755708397443835359485419188316160812086077563428394807683373903668155752031605972197824448222020501972535458163486984152052873593550673903045172341349839392939943048397047776026993480585453987512638648078942621010890861201175590835496866907939161822727144816181903418876188255785923224322315302615109566476730028959224043716037629688746799545781634336192731042990202899977346414556493128606116126016126207678886217578634954028147010772138571170104739522160221361317006947467614157161570702934360815178861046713339663177420983967091280043253026148263301623678503520338652322207234319696881965501236709463787400539320287948580165584759487836485150483029909609564377049994396297588710148612409944098105986235418223238464117931853421030534342680560616663178119153076080603869088033553952537386573683701156234208106084590144190348009436639103412107293934494488397964718336461349163284661642289270009224880131548353132027703604940319289447820746702724956529341625540763318723414883487221234390911391051995197020560654449315291641783615680441949369364844920270122038404456733618519671404936755913008850147244943494340869447459926347053916497345105121122314372453668277490354457508871811843849331546239366468090429184334220970636700209257326619411486208924241160338436014024978489951201546908432234192281345187024392509767469669661806052582188056239840234361423204236688582312721379119074052238995116815735122045508588382250897480234950873603100047510120155759685942869650836546052293717019440670465006668655545052239029664898476994266469703136669055180800906217015813250770231711776085869391633729234108829091759659138135476990633554679147655265460200313575810138332454974866722258593971469873344636111141578164076510458482568569167282890052001343351689483776985001534092886415126798074833814768155738102416897817101854655978267158208149337191110607645702188474691325452203966563978649390302301638521280893073371030737001348120529410907178530004619210189618800710027866872271886265702782709793953300870128867313011605946311080760047888605706395427027740057738076972843059109446698221022789793789285533162721754299322026488038531813876986349981425843291112611776205405196592767852830427147538472143288717516443079282351450914403259564739506519835845312859865006521095598124142818471924802821306805667828796163018932750577789179557754969228941597633758994209071431191727598917144853946119638076075200250306758127391250747907862271188170881508163372724309052319348687531160320362788203199246712219272317392629341952610029658096747569358027420445757650958022061785585459731522511162667220929471734294172605961943673194967683366775524102469557095129108463252681606962940349776707939164224593261025093478097550025491063599042954706905213072047002357478524320258493166195124743554033674318299355284400577417943660046215528648207478636285156264761680895933724710041476397800301417688386867832118764229941249007624287730952066835586711897942586912607446501577615185319054791054634271540220220122570512876492934708348228804802401707135902399287575850406858584464124261652681097034680377778385135122802604185785831980973159687627636730155973906810190006520928074636096334809046850006039855761715483804583651022550601776816217900226104157200384614976276252559194590142828170386419994204977123727824978629141887322956681008063242620805333694125880030910768966417552028378799626166987075496331624802716119425575306117170492366688862770192398170908487339290079250493778344817040084033770945025334885043949154927187972011915044818124971203483968893098817352329987039458088015570493300913433249144618094792975127797210205040735830289220454180950027982037079089117891289867512301351146066589890956963138191282768649228050427160891915217743624239833903767983098593501025907646254301578082765171838698295924363202565535098738536254088334313485126936657672802176249303276837290454416111874052545404169821887284882496121045702127225012008392632313224321979865464612645108147060002510566337213746760422494493055098704234032918447350571110376491750864343156856458044403011128526804374530649269456795403703773084114469912874635554406185015859018721279158234805546910987920761919101238620408596790683191138565951808592415660072234549718966028415270193037878704244251103638325356530682553446948850805991420202164361904072560645936862480040911942131766061112765820600994047453705322773510462905264797702390201688993363958503369853884928056901641215411056431675305331511185697822778088764080958005937993124699156642609841284594125314606867148017984608140186250060805088443208475137861517494604691121877529435629865038592052234833966877614282898783028452168537111000759016505616204173051658528536452169741346654266362060349699311436955249394314809994284003479657695994224321864358915993303602480483977400231635048832660449230374136972974415869331471783345233862293091428938216417700749204735741172131185777809308615692987369872703216128678783973093457977336391469675734401848213960746810126732194350417727398951089347042865888996571151698457375565574038430030430139443310646345299493795647849873567709195685333920195619484428738419686870571520990470810510307704114026578258245075135911690871254617784972688814104542183499402495337453667444073442322277773339959231670827189073585894287239534828494262223916937823906043370558255021345619370723139502902736598153728401635563622412063231883101711543601389994424197759702832732324179525350943546263211477825505911544698985207256587831028786415778228291255190348586888008521931210361209353233732321226924309664899826273312449942296909110099921321478990749826680501016024215144157008860908913846002564871990040264211929832556178997708809889756256919259791717666845207772850006140210690966366733101276561875916989359558904538867839189099023146220048601648348092581070108123289501916579759342315282753177288647231657605470392590599639526811351619638830909642840761651594594353000817385528251578423900806241683455050534307535636904790581100018868973611826983368904183604322744596121363348490167678149241392560700554648953529027911785276458000343403203124144586782090689011532590804425740385619123870971575143576031837868047733203637139512963470632359685787200797397466567360312211396058692496051898744485296547653859569046013986029775172942621927344636606708318195304294297295657233682580652999579193543290475246673089613907825469965845099119756643160770584098955039593403004453463856093751494891738340142580870863763449315477603602093748224986999196625672681374259971573155992531770002764239000659805699260820337146900120843210218232937621979121716701976307983598318992249522745953634905792022100297091550443139121505696724665648398427986379496424857851505166027089834271921807220792509830729366985560658546941799878663877837799454060484875832553281276293857904461614043906899760761437765799404435352962007038490367917695218121603442627775028250500880710819903807246841547919064806542447098663569232283128052612378510117472083480273068051473064509912675462142319375878614055238279653136351626626808820635157140437911395088676297967236197858287378317341676875923843779961635848759553173242685039567102582112820903322719995086371081330382353274859672852805870017107197702794795708421375535053952330553060429071154500921197839674960574611867373890210640335864219625501546634990183576087511613202709510743644641146945413920063049958037312303965166780442444735854424643901805064111227275922130845740889499085212802502942532210412391090033568552474985452714817414570966494444157316310908972153929466632535206099872764880314512410601155418422949253535462866863051367937341761392677462721030843199919665793765709422301862269177666719980826156178562677570411998714335274238914364098775157686181339351155565875912115337842619194046209458611104184506335545847721883707736898472119468725182815556973941539507983962685733674663069984910096911621905876555542829174790113483126450987538938095715299321013804603263825111379879756623163854418973951993364498683803488175017635884787278164473163015886576826019899227389077743578351768707838499506427072456600152264823808996515217137290151453166685607527115360223277973655845525080806111913772810363622417512780447009784397224498821641089812171677281090484900298471699675204457731634142357579167535775903217844502500896873573147205809479303104044043095670689920115862495243239586929080163436952288611112706154741195468236380185129427822465242945989668964239156394518917079802588939120339730358644660177921566219091301864415084335249304585868806628968234747532904457543468021923258831245626957095558065658954602765448807184644229512158341565720406537548333718088165436506874699026883089650674551557832011185902385558719827533783512909059143502983592141624104770638166351041148051930060205726630932178701022818553803757936318882727534961663660017217952245276390240771177170446010470958483214325285678079055910052587678116255382885680128209473703612486220096916718879565090950637954840281853958083097831758997586173810504275407668836219912097407007512099666016242792269916960471035681283827080110598655392645003354825659733484595113725635333484636907195320856047038589505768403009598576232576562468215182886555475665584687114211229315269676044816423420555218405634906845407760402076910323268178070474494740836139491302965137013698181176363958750837339558189050352156854966157764509779139945039880503217788092275545635082126387988164686838274065897419187487411910608679299441664344540765155665274471822667552719109279561767025234389381111022992185975154333270635811510230345694437864915658795117350581521651990742296224872752025704934784033217495266729060356510757414996994544687394888985773384274566420531796274528870769420120500577498555988488982410933914865527990758294754137456027747124389131972066526031443868054167796361229980614205721645155240163038449770395848740715787435673929273087688865439518625369855476545478492888306476697142759294683361139833411897065583838447979769245468485077194019429245710991278472119469618891323470714278335535138862890926637399183878781097650664636519999172488010876847658068698307553406510318996817753306979911549096947103435685873576964753836778950110454273419511551145658249524976903160537058123872367287272814406226258956196771865978584640840353887736458549975256264001844111812585477927692555047852545254176201141461246209816922792268303266507788773288561652644797992001034220206933039970643131069477801838332983161244722970809573398971332601237671541848108444370048889964168774434354607821833540330087826961914965521414686542687009838503734213008232004610140897104169650268752713141209746525714312062937248352534368190015933630088754797316913207181375218334269151107409914697670099013489409781551497972218035661275182491036611662767663989343408033477125327584990121626847591529846092086133224189348200703637523963896370574127911133040084578630146599800988089038725976973577842680173357675110533845616757705095665605413844184282518161757978029048179411496511938635820291082234151457237584722713739123854858279767884144796610395828603838178939973040802014462274941139093134236014079863558314022326848051269986738244191100308733736630045905795175940430319025157301135448400704027240306863779276705747730273356631077193762302109756956475557474891810089488565566653954313055847634519015166189633107861938488276876212648525573190632411421919486983694500367772374827220117100065046225650801625388988571300537449710970056124401295449731878966146831820214087817084517363281024418118595778325113978719926519321626685090550393549360683054728117488714367544963129737359484139569329180585057478341742774125611513539387453880515541053605343351521735153361245030453657885989238029560710913848265619224339360112192023473136116799288493238080028571408161609059120794442044355329824860545546935412223843653977428648885691223489955232500696613482296128936166808457053229392627519463093902901231793263357959927851192508389381518568614399979281321774660615198248239040755600061389277915519330231893748777283720727665648195389873601855692520568714638655506137728317098229488625286504296270944386872603917883842792778389695328404464454646731103508066977339725375767447528061485504592326016029699211752660984999233574416492745183482054320452028162356217403374763186971035409515263347173866059525693358617334675874098248243887171119754163909081796790619860091176820521971999909214964387367259689132131727755894666903190352880737418331464448937501574347361255410743327986657821102010139943085543773577180229385824937586460206584983975184268637611734794528265309730865349091809614502645096690005280416391223074662006775344219669766713004857237356392435155692224348315540595482937770913922300803667155758215529766018968209926696564748618897051952003017697787877752880619218939999190184451719140385455673877498109959785034623774504706732056711125947629087730257795490380321544858066765606271928329218791618646719281288992726118335826187680436154152511687612133338769031882491758929423034575876226025094820836683299808045472063203469650646498286352315802699064113960004794499891004310499449910442653502460521452546341097406757496705692532018806815507155761558074912260172128333904107454203639274236890845540942904451387895519572776361507063219001191490266561524377624910976953664989180729755029672827906380038000381561422348192829728979603824743087573540998506479029366835743514525617719684807799233347132845879787778614933575048071112681437068382751407954227057178349383748748390740371947503123715170344189240093437711899406693149726564086734006534116926417201266682441142652455938972271570621113181705966606076474279761033947635490548921307634953286657697122323575249741885593697375891459945878185102691095126910860447925401476359729282848640694407202305255461174387671677125120704717965147677298430931635828202723414869346855651740481993992768070793894528245738685632301732908048493183115971655730713483296900748639950242765595777847245205729022457788958028685931203142914965454536498814871865605059408437239876661710034902123078386345999686946476896880288089477769444968261977761431584562195944203016014438650623157636180260726600274037916674933059751358623234070187538119020594341471159936019633955300516795159237263180295972218155784124626581121459092186361265314468217723027434370001691273149026423570676386405559424061132939824590620227961979046331349861703807791554621546092887454902853913340189010159477624647241690250401577311622537455340459059763740955588428837984632222748067909847939837649843112640264543223990093240708437939455759045236381763889780399315461324786793953181148147989920459538362880290266424861360913943945260468381617370841547920798310740735838559542444543005179349228635142583764536384869401808841752409119856349904927776366951328325880403710563407941651089635626282398145781069723821658924574322200892653784220603015161286935591217193243614227755397857250765318100413254199213009169127091852886987340882445644424713262802149008980927829367970405091252869239920852935439084461539618435434109156081555751984999871214379091736293632124548706989155177617480049724858194843269605767758564367675654373074022693257101559921489951743817996125159237143540743135850002796755530093274590306416429956047666288565511625326863238392931256817167436965120314247198253659731185396315103206407361512925930336212034224434929097242778303420737077931557278745656837925797807650001829601565454838945355881710283784577763935845157583882279911002035660171914564298807435372963312976638119296595422599749679509900448128664500195722443758851941862054951582079236119935664139680597703725861688897439634059124425586370330772896560841389873358704356210202058455799357472090248348882965863926155980288715768520107469997885405925518622485984017202402138354044439790418706330167268098111911865232036065204209691483788602382031956743401889761784755258039410681618937639458575935034030380440078775233784821656240812373408971886651477672406272851418067023434121311125742308027509188203187336712350162009978004190169978202385129156494759458303946386825574457121742000175518422531269357768152748957147158841399236204401779801952646166384758692214993719649690550428258932974673555880237825130577226100974976781397933018826831291773000672768825330601637968715398143916263907912412277693608572132578065857853282258555671135585005040501196338800807123985493180496956130351275964827583656514721139589712289593273837094811150070200548949185973777948803228654971783741538568767144122372468976194252068209677757665545171252088791449530528225114246615867896003182999875554472397818944790897685311566446641094212433245124819997200872193558250871099816804487876395641170041808202165294211624144614755467240052628955225494259989490784181456068268318268240308831755292875519945237331077671839703618120056227245498890898757973842316291943934141932395096662441395224499284439370770375906056345499254193105621520203290559055067849836333917486134379254635222054825726881551497308466433996697695706856304463282050743883440311798791145189350191720570373452342196798191320510368199522880802998098659963642582941191042717173170375587151596052115618002504106449675382767181199065572206855458455164330448858709900416362879375684415225330962374662606648369428072587253451776465868143048039976515369920784718805092075741444996921360267778257072603195305858502522625778694477946177395499311237798777321683116159973767010413169243516799067309497985737521667706558689088867985768286233129820080960591750045485511578178540479144457989199875512297580738841654703773792671576365682125692938866708162588499251490336877317427677073085462352842541705429558997496239740400931922636318717623953790349729662794362558084337101111222821412317778274014593283181723477628441473733913184824717884182493167174576496470715762587543310916887608102358900342430001582578510709841972196949992450390978620104038453837335166491490765729575660544490468721862984665080728484082498047176767563449840641492248088017189999702789228131368113817342687745378702840250828300306836495996067759293637056803415260819119268843680910947585224007390341735058857376714663414327275423609474037394886227324467670477964818667771999669788216147804744285983727220460200809463238672038970713354484737634330373396939234849231756815622299922872632584277688788349012858267039538538899897416672211497723095489609475739230811457512981872774582258538188901999575840293054647221788552524072072443502391331212060202736711068668167234979110512400679178779180504426335241488276939400893161415673908090222852852095114086661073404721574118874767015154628129798447527726202104371145760834011621211086830190416223998715424586297943319070159578843166836397879393987900586613453552985918215811637794052497144699122498712757133965707264955755908070099526685749639725158415467719450800628508226769567395177909233754646907441917462021108137232290873242215920643117579684357100651313001351152277905317025994178480900407934343052091028583174461287666753351896228328918260882666586810267076191140124351503463818216411197192329918258619900703327113227400796628168574187990031627704534776437312257662827421013230948033522271842411970359612460635534105289694994100412135201624146774737168935885118146971251613969601545186849358443348364529572182992329231755952414180460958942750807468643760496566415073177278527443135938148875808051083871180068597054420624498753317655921723318620175435124592681735292322310170581927620120684980443149369341461039756449340277575003464174490900370469427089787244154450057328249062564984169661649848650875854479380741326723277006065870540877791430074939996692287031202333775490674775962857173600786095256133115867680824644536609167091004927294857892748434739274628106125610155174849843267156272748694067793583983541629325103886835615130204909570912418956388137943968138702716967349921066551786746823549122628403615424257041910816970944039411402216862753697128293179371871117224203514267100563280315085763047575756563879705430386749139217926893090171989160797208101253633064149383744177017086472712386239221092198575137511629586136540460128916577377043602193167555528342712051441857828209787719676450112944133480545466562592373359975305141506006044746621456985437930186970777362043836484834465469437765256383971241887621823350685916340759105008425486593502695226074635040228862770269983838848027414814220430340744041705813392132642477392655477021396590777736200558261955580871630990764902922138152036091264814543451919467575152767704285055812733893208389784178045576792403065195991098221313934368792080625334300260948019266607469147407046010588799943869439154154692239597065118149632612918575421221103304720912161332146857760300071522901660563965851044316757776671392122503258961408581623849087293640262112580419409301765989788633682485129034995619205614353249930873284524482068446413554811033280298105385681704820140646022547459803086632102313379532849481916187832096079019988074325047510841110830547373147202747370718327125501741804444919335807589231891120596435383164946313002699648810113707603807664991394568690554362346685335086936146214189956525317810442915289569602053779987715986099196455031519179095262658569071040743045610828335062537433688996498751392565498171791909622482213846173748842038331353733552119389787878223411328194437369505081253930741063684083435957581158239704485829467937341080428366938201756205854677390861986259180626058758464942537258500263236489668169146944079741100334053617990252489299009584522700614663679226618845251512563403617796991784779680172921992144899914959538319252302339541557553711574522876060732498347132692534298610553299390256369217817992537796064675443638702310237070954319237406005922371411527041415257552307563285491759268453510274621978310924237893922492083682081634330341611328648397324273262026700832446662968462069678445758861153866619082046154510954270248710736619850405665974065538315740890445327014656450855980160039037606316445865501914609100560113453942570592347679978011585759357521413792096114367539698576384339727222664271697680367321415908019096765719846501690088277307280913352462536335342386139909998629455115455494267846614759019990536744264113816817413199163353483290093821220432928315011384950476138738498111099803061592070202399981991511664260590368248784020679099168603373463703392836343353787102159858282747386156374685977871888684401893819998128854102497054239526785598232937932366341346031342500918243339484217729898005893771120357071658630173029623974979211722811896763309954571721610075710088646290549265334660442866479104347117238614324881817700229379219311421196284764674063011815424471327021571230290016195387976950204791123822011386476443207492621224115161746125219770781383775592754680900135796549294706578215524010783377034125818175871768257186990338482323199757388250252777120851106323122066592352796982414558581425457839524731185712016079359333037802595107570682420469219575444810147783721254095064967300973082959885389145277969420792913631379125332420371889474637666897940239512221683530634491701779466522919574800494758615030505941845690208337645712209857708300647558458636105112514743529578264778866009620086550351896081529827896788989029500113174280632591578085516955857734499373106846979202040976144631523194413191935757270204528013668047731436582064182777367656455824778965151834969348111247831149014238923442983371729886784400625777631065952903155252756533787110143481456973066638533765762055056134996742449048820545154688340900494259684021177785713608558475627745682803362040348026496913259864275349329320696767699156690989839384893073288148377456876813453804489355081051811602289531316717197384575003374886256822357388716290350311248087972102123304282812184586666959638526211497015401119776953477017187869752830379884893721089447244110725234874741027497549226559363144429588119333540529270364573462954984420055828983685683288860398009577834419280857582166900895857190336908520065436235606325946592933115303423703536370840939093123819729836907799125140716080343032298217636027010646820276773352389452187493747111465848383921981098392782762504233272350391689566832106279894062911403572954747902654189570956327504619131629688172888230882534576709874129153985360720130158645868971592115620016682011448736246164714961982677953265855196189886067507956839084775690709643307586398947938079577985236512362882415261261009882864524438354063628239496744128787435505357884860539840436717946251046879013761998542732590154457437646156646904703203982576888308227970168881406155985841868004381445028566359898135173814778233835983476642303546408932819308202683598537599703602557553500848952653018523458648059360587655994707433212497638673266244446888346817159135167529515287016614929714504621049375181616920935611435234503848996117976257285625802084323422865214349843802420760081768157849138514223089372264508749035074376424856723018542894936184809229966421823443893099608906349227250291425821083975668119885997138272412398216836558104422984708645076511334414058874737085419882833440826536341802327585325501670292494555627347268682164673206448466113473763326665421155084625975017794564574728659164609480150900353366636475523975943468480364303907638274288069099299842238435634506736784097682455914204497733040908489527267092680128854840370157749679899898235791807946013469466052009535115548208115477684103133538106023902372225459498380573716796183928602328641266171024488652215391700020691936564729373263774283564385048384640928724527179516304518654937149139244454471877423462961861490051745442668090954466575530264964870783029668711537619244252555511710848399745063955745263015117652368366407171058027467593801948411890952808467480857508156520373667196996093313466110479424476777424015787546593319106900280800328248456532734138607654739407631515132439435627790868553696678330903844564747417529863432031254409619731287520168870328148050967981240092524495893803235019406318334707022381577305771763872629853899261481647633087169304527147503858484171936396721064001335572464456900880417861658928679035983401604016286120789118157834765442215533108060736024386045612018730687213990425595214483794408748754779447220062435966857223786289396201068484829078490506488788339907019137485191222162502138041154661652392001835300088510685606721560312329643666180913846390930597590203146421906283682699010069076153996221657814072471156402392017534055909298707541090086504349005694636022847363388640884689468804239627607483383255789833084865358721333048110171289548790774571966292184050320787005512501104903404934382872168751618206462959435531014558219996867068124711967718569523199838177688448599959798842349801882287635038603561346954647851962149606184124297394803329518712401987070714507182864630457410259794361166146106700575738062372587944930446351422692059232998666054555058286359165155268011638245710286203428854341193821802915368149685179724699194682508521878432497815731278924973940176338481037329588779441132454763521074186372257004306290804124004397535380127907967932039603074576845150962891906504765154982689691635836786030076464067328068414509567690466601270497780661771361645284355340074627541236103310732999803327590508813121886128789081604014040292940662639073915657559976377128699987648229937081976991958165826715558977005721935774158377293398484841349200064896550627662939235103037415702501921405960901056442126462055201989406320530023087341073906305036008307774826504186232323216416437622397267984310296878198161032937945403809933742128643424687450295335177598662034243205818722109072037541938068999037337008885064911659192584398169202965121568184002183910771740117794958829469323877592735918338943016113005850419403468484010403646784645997855466956920108269186561589000197037585996741676921119770697781683334362572053042010177099158281867521657795937268786016552728065724608638164637126402637194892832912248313470281286207540487612883163130012349615792150845821454560631459413225698507102213115557848071873326219878109740702634090005787328444780711798258798232831382354622706220520741716497830457321009244138066330753511737381931216768754525335317537832366579316999745010938571160307544579390344437325754268338935077282319712231038728064814540691276265389844313283312199450388012646476387845125048220769647431906458230362761801793720363727905293237700925614369438965234777828152673755431202260950426289028530031835308554261078005797513513920377994173603932940160099979842340274699380412038619948816562051275801241637998527295581903729405621687574176689931704124452071936294628439130812191089139478322811072719815912871109926964248330822391043457361031017171095814607428484871723612438199548366536375058495131462874161906902838267314817979536321718519582578018257676154460348332712190873878492538014832919809260499077720973199404919885033663454839903349048442506494430000318503206680007049059658927610072553621583556575794396677251756153720351403308924908549308974580548108959932764838720109576874674472561368904292761922083783422834605841272252885699857115448310367607179768215229187053664165441493370384396038405990051113523331437858157311136958364831280265594375544656102663969412278882234181024669654177775406161210169833232483033921497680009772063322198004979690555400582875355179091592932707070900286809259758887345440836082015785409325563408459793752328170959855353491320530021855414419711892683861967807632040252708518681488976855665236799920992412179948347516161481230402410584252058490498545655099642408454230880700929568620001523065674409862922797694548699858036989842163673950927449409347166266252551401818282820440922268998527009549802950790445098104902200475270767397204868078461507897862332409400198586072886341422962040953805313545462203806353230295147884232955657740435339029918837078978398267181632045775775445231179543569334295917185065826149320205271492832902552163728193220798916285213754958362320916175256735468756093888361429520851080872343787004454397018404216817956948941322509037136683920113331303954247283111712370722915166929809556076999331835893031535770980942360498110675211439825267428478033913095550621917973002852508496988796322241075117917004725474427859928126101726964016148068377571918011711539118807081523615955332677308263378155159773742486505948409167375382960039066065463405624686189170869093916226035124415921636932181298097313811726072287341366659233418511677296186464874839414997798119830600913795079101023956039836003869525880166951319274851662131631048541568432977026908771201756416747463410893809050134654131500238416829154794647620166636242801464050186466790340063990193412631455483669330988003495880075588911040755914778898329485585217249968197683261559716368415250848451346296835896726133914776690769177542590417044785478595968740067908325480179208682828629598312505415338399848396300829742397644189483773570036061620110556911576465088195254026827467212346053872598961357345426475608742104034011474024409275678265530359502401703167488756821608410605236799029789490232280989844257321616060464799872728040654164030609283937643493879481442988747959120943755661744545265930468166953584290452079326359412197463945377030354681864754134343946241694214123863189261310521612491782184339568606496849958804864351387678700121598406451700585669980351221291846927782254091653317204051085205666192698979114596264010203552081032616819895782377713972419133506612205809075024984905358446192782943019683530953517107080208322595205193398099826184106952670333612868384121128927959618416467743589476474745031182878731189086638973627863143247566046137291747772726382837101575475387078029468977579748765482451417519917450781682768016567365243875949506286820661808836635999999365390293308393276647872123318835062502099198757188931410904469257067788958807563757944373660005590106182690782125756084136240009269269461460095707492811473784207229465667684602173216999613105994889984928090131706208857893310775001428284965442662711927129509692724753955764961404466289754292580499756426214662409529441946516808901684759533153549461194512287236427902374849664294466642646430563667313371489357199762501233414449714973300646256096019922563144443217627209429177928278651321234046971041909484150952147508390480166235909262837914455185769938471276182982411406223737249607295149768476441765857186443004451962631859066331114213148397967964326543012724301322748365316551936724564470480223555795337409660899039317835894430012461677111603365549585599605189451119722832934763242531449086077627758402010556793432568424165251042958566989747918864191649746562366749809754255339472834826583816988910740068608795705591588551272837479407915148748305055384605589576096862765794819119595516564861401052086511735885373876550798461168805077590217435371251167204624247041322838691419122959719196889659512900299012734559214169651012864189922626109929849637203483877670561329018408276786772328233857984214958300553323320155507023137987185484937161059505596923947707135114662073959823254209344084486146011746240338432210249119770033297707151097579182776473377344121062803082549794514390329713858571312320824643388325013819269323264940313457081310985405049425755163878165253025061719269941670504987082809612526497950810388976461323369320096104865739552003957856570228801956145035867855680355348058738677414809913518905062068723357282894113451793512807825351584836382861312445363658333726628998743889760062815973512156671763520727735986244045477114847076231761245754454826257157447368277871855684678453378673057851768858436645558899251554661326230394893075023896875985006608266345419935708769987825530048606080807514119858632503743083174029560130993551798218817895553278615900592822669283347704757149864042895030235482858152121165344304482178401971501729064170898060996272207583526138560436033432155407941431094677728280794983860273228586417677663661600166777221653038181583483324127422057250855263782716009007622304546951369823160179626280031178774929363137788758259686209689941011894417438127681317989831754100456659338430985108920972149147206254470691400442295692048033212090040591933107316394716437439988155066941800470624260945523128460299757803613742686250400094089966017172864399078779383523251367984826154807602792466077035784399601930724630302720230524958180533767594234856350088592738733679813261989060419430878021381774177953194825550508372075424233112852887337449414339573409238629903997007897671483531307483819147700077467700461249465520208500425174281327916444961097186606475926200552532144212139494309873863673194783913624774694012444587876792119746972625946253570885264727302050081662162417491474461356194431736807142205646907651470993259364341410645162001940281009243656072869040456698390545151355571577890240778096123178165534299400061971898394325946129830932377147768215889044207469342999459363177247089470810834979579244610919707138746671865192660286535568464016239229428925868830671397332583818404265915305401728811051809642172398590465148384987917085279858687368097452105672365429470634820176910012854093863995950535973909902435962641898473630835255309045124716873396055579331322123888795442781917765108676188329312646028313636018932958596481418491860011725116039107044315541215122252920346109755227218164199103528699195189708051548742814074831561968938421237494321817233075820406186078089035168124669579520602364294732741418689076666901023902276880111164108260953541197408434037336314590319951615453679169235004234430168690511857949883190074700050000722285848157799629216743449436794128249394122551586795238764580696857575434652875127653270415412173867710170590975317114069970063049093735110107654998349579479157772718318328479625013293147700264268197312216419447923190742684259460232782824252605471441571042555990395778515467397129228228697555319619140788117394973109535932138398217828060743455086880496736318159441242002741562363815366001025722298289106054761855204822669024389346481890210164617034508975083812935769572375140902909668071072683169543311250513945483852499443835234562054701811267629035400669841758903837053911644996666956259230970633760507321123264480191354227505760512148456809760057862840709044888675853455779373108918857034352382078939651803353617850633205782605944708023475947774404128690316396732708234293638421006122531023252057691341976861861803207283553091182400924394325863442590529177270852280744145748948787825317181016805126785912963029885979009338773217323569280026269695236873984657208610977085203006835920279794306432998936488658793871939325657142525903646478356269597358341582205419868384833757638564927522712027885097595337178725318389262655845088791946337275463015498073668370154114678134050323185578038526676320616717238856482818161065043538607218539033400236210166026152863051442934339999158372802096573472347389817846785960424016657854725459425039020470760651223645118932854543794901539504422094354534134321609183034450952649304141450237832680506270978889631050254164282962520525112140585734625806032789507086332952601910828641438922446744074862885223007819798426492957245286053908154945388472811998673870753330681162485323111541945764412835015296516062136307306823163294982835701353013520617116251559916882463644504289734734348283631064726030890451850855278420858723281428257297795333777437130086353985616979542288907498160883591748346092967477827897278707017693850645358650903943556287177588160052292151043467408344084500742569205176558534916085109739285566582154762175142909628726061144062316819663784966311882053977309022988158806095817847951450363668489040173902656265820217313167186990329247916169737185406696969785838189631373427697056258468079068983781413613173843569291484678683363535518324228704686526469455676189168835285622129141141808193925471626683853513263299450263760470867726655705327504892024091079923760247284878446100489935617594953142480478757234628368296314868975872381362022695097592924879620642888821560516791457699655054540662610015646688483377487524886462087633938021058404457752018520631348311593746482077284054988458487889923552384574474258585760208918172365375721139383726884061426204107608840271846980907757256238371474786742279250692149144107596525867740082890196497107175001795340656738351970120736119429435694411984754909636179886183230616247729870930299204415970223205838966804417966878611440327474637352006256380594082854814463338849607620461784839178450857114910999601115589039172500136400568421782568623016703773312702232184272321139289222047973536306758740359086527514014832104484761386358956773665411751806024234763699546772813083191964454470383527758626235590256370114614492657890950596203412997162302822649541611412149817666548364042595646772356304384734592423462215832520926119294063055728346997051597972918180266087096077838310229931547341213258355543289741482904263252995076253179712292315531406598165625389422606167919393840004809715623163474303115883480336255171819163770736078554641180210960102446824604113198912909002656086563496377323905434447779099240181087550124662381054602293329190408820357565242048084878005668769870474334828547369962497490320122450990931514308676718225029220468807988702154973222204820248374717787590388231720398925012528421628856567976159642058968415754896375460020400972669558763490923737726348909195127202863798530628441806980544284147013959400782458551232319437335853323845736568408082287171109525424021166178691026703750411091673096104331140723643571940682457688204980865930180998619829292284060193526748871746483154678556996162150549062262478392043128264763040189411776993456043754729506622760196594807503514911017075752174007025922998635396027197831180365173599080181934355363415945320514578038102306760563533795315326277499621664275809685638919297739461006342129089975938307164205397115286591589059499739643112105517825895880346886229849821064589316716998822962991711508439708459778227503286233715381363967589244275119084863214400383470662601327317973897852533077494193084020508732421258179535471240848368270246735990693531738155951315565185458833792624064764335694699404876706300011181815419793243753621680412503532218285048644040502719342868444832744226347984262532584947375683915962904385435679189977434155505478491341710216304467578638330149384876926778117206563108047582782113692180495883593369212573616050257963019098023194585791979433773041340256149032692020093765658678485116406184661603599886002616963297089017471050822295858240069981039990570452937276123809978845712350565978436633926038073186186691802987257303594440824196745221258020666892748974158149070413417210482367402805173602987364270438521335963283136631117923457831878081531055250071089610312689026150328904643657057467866976295720218692013228652713332733989602993940351033571051597695613574797801432378325036569296435306244842832137507728502803275219230383921148765872835624823608055852482996648454051937576887409121030179976235214085024631411000992987739609877823945710277617091041643393912447875244165215393529711988184304534743997685951806225636347875416541292495406592073420147426386417570954082984634633175667337131105757895273652470759175954771233093950130902966241551963749829122634742540240991156941457505700926029492399950477428521746754308798047057297440860513799779280726996382605060098574361203311580755636789788850399403440724063595182032779757510384268651169063072258585598362503438089916703594553738169462477830373477920866411068994703627382944888620776079231146151026987593995580124751114751725058327831401986000246436487734464856217629369471718493859074867214872042240233814251003134598423471138340573357390620592874749670854411362784711417531626393558064060610831481284619895762659767697103069479578882145815949540805052056715355857971708198811713534133269470212662268508809269914775576197283342784358827461833868764988545642111208293017814362471859418393015578636592820684288902281562538048932082412412763690929656946254885571001786865039118276009578159551818458286504092003347029457209781295286243405026178156283535433444869121119905942383463620175126282288833407218949883780166235204798156007550058251888039068408385185743747926440669299090065074103457628939824104091949136252225378636168100375638835779625830439066494593449637476380637289981640656128550224408129381367437907813275484120771515442724909995341610001998484698129284121103773288483158378275488097986492010027932583117437722750442291522719073236362610357460600160784036887531876707346096201270889221248331079890080549048244456907185584544732374927453604002864211823943029429416615775635123222105918519909416049063567262092621512125880843810240438722804032584634178373212114355402392261363715388700986449532496204906424762127642588272519763500119212663031188428839861899288188970408801360787905588090598843692377533509739027277476340171312728661010634099913272405027244743892676580700097377069126654807690276633507374597094657181025143498969414102817404363309305245807380083739070829819571539831144132921607517350091200005416880114554843897996477892968777613411400973050086687034604456706888529134050919224505519473914211663847202407866347647209268793351893907485885142049071784383493598927597830980207206846982909469515969098914172827907792546359059667771229432409973653205243290797155828521991036111844521736227667252425928895224579885109559025481136085296332450928314169596614642144249968963048608350707748573272706287364883263922669780959879223713377134118714420312394805092727040859623216977296566176600170729033136876569101123983312840077955473292185196994666786608627274152821247490559908547101937811451931816049645814235723323680006169926053462535661822632204683605172105580071922628600257276056513064629805036985486647130636338628276234038440054695375615328528619546733631636617833209908215915164842445390898148203874812948067306651276264170663102137329682044685951985976413598518177133258828435016790414730176303323874919530075385616780972073184336489742644051450081158383869166093657497679583969559527577300387838872856248549261258386104684561403379592904171223452629799630255364379895712321408788658774409170066000532459262603214711525314281852422068736345432376022833141301383756026067232775542251659451679700005617519597409027378658110940209336890368783275865041770092125334696334743975879980671344270493429453047229240477378471994637262348372785201647099668009128703895221244420814817013801177143996778644375770870241654008830419592205854547358027234051962518377387518494124402106942773361724942451246980010488043731637785404047735881920743379758543227310629924339197742008009248104220563962903874930482421978671656490112358876233505994504036659958335277717302610702576956611145182759374927385856837639424232664766102562105661628381781775276633537025051957792505814934863262266187881590552814185020634042192043937611099965086105159409907783296385183011145437833674475737204548775120623107714900969323588348910405688788614058818979673820048877275934080086959876390421662871298132151712292876957617957172095883011149535400388240991766903588126741465790265280056797064430163602019498732529154595639845332106005375560674227659476251081628808025205573796883407965183074160175321282363979980068810352546410820387705996350883510031668681389817882026278893321398184410293331041333856190504178491085393347366994650994669190284862583712951538352915153709195663179453153626658573735751949808371343215922493141126878500567844708920786404367906271556987095353355558731044845893396425471903513945989413969683844590223130923395997500938260261995703847404110605210984626785520201479525426341919695923627530636012826639594054314688083686482636728136563242016810013868656552318545418700382039230669830295890122249767963555327412072425486521828471947349172586611957286130344362663424611123205249790041163746494363351988396574680336090225365450325873423478017940242460247798242717055338933123244682836324452630513490926659165215945866729538609663288401763624607060816771169760289727618910568534699206177865150332786360670732240088588650712371379492661868953172340296669308394214812408117021030858150427678735098463017899401894949199778866273326886199830962432689412448624663900378475519757964895490934997308594429225640021889250882577194130283776709765889208364845773703568471532010855145126700313024282106277613405869975499817918011844595474929497789781638306197754925559117062578488300323614284345428868223079185242371129120018313566278575264554392530877679870864329180036275513253736135611755515094690690706040745017505684192158223801416118040078577533266464521209744185940582360412602805643528478650596829341169597289116675690425102304726904274635529096423535758203230173092005532676053968236579283875823734131051025331585331200596334565848089847986855318088572647940343277544657117421420816691307450539370641657712901448705921954605153954987949226429053169478452366711077304503479119962924361152514727051064094120152835032804067490900528420206866081193857332815015566526839259892243503160125830064593869178869053506595749783290042084482580366759683574037291839529506921684553340844925421465683307949413127906210756210767155927548436867254466579065549273465454922912726345271331826321332414041385265225129072355523316676127384063223687074044514705529870322609761150318551528027325680611248631925860796647735902394756134373413117173610840280317364150487888746734773829650890411695843764664384320487867699909036488770345163505349649742186899955191204462359043055819761391976411297560863666014138574215826505093552404211086732552633179186270384333075801522016483405407882655150176715419519840546215024518251806772831049268179990988670604908000142060487147872868265575605200508654386439166702930475762718544555234200146387173534978604929511668905241753816631604876254594161446913467707717252765872276132812440773497863707050174580598005496455287928903929441226007340549349024373630093529334323098271437002568722129750277796105699850549594186214514270184527462405640327677240310583679023250976089706314270012817889846501326943107778847497153260387286297662954126392001257474953341979797900432442153689471325076562411859055432407794473767109168165574259347005580800417560883809892780079240348954799482568838946928187640341215233935544998394275006423556861856144024868821001852609150357110619470571385779290431213344031328075153572828120744376447010066479560158550767759104386675465024781805659098400769333105198923811049159170904691240311585528990269096581424332926891845523624304916106355017341776771394255912088277046231273642191617391926034231858054999260612480328407314677139319473568250772987953528454254585236349632805197326021078118995473255826595670733978507278671556470147276670826028616526437196043317486857220695094612874745350248793013555967914941400088117117185121352020694076522118380128852939531800803192019557738000496265612756436678131127597091671231720356334338622759572375871595907252924059538870889315315586190325574277460349177624936328665345766964565119361912614829573165824300626624154829804833303814223518583649964449899304786902020033677609933478421787280469021996622299891281763627134781532455717773820481229646183782411986882282315034758350706124189534918431817686208724543951025990046336709060778048742527305992873917872957703986859241418571577270211305384389413002335538075335788795882706738554773641619069867259390144409060575626519468478384201791371571870407874230983790790237053889270050512058877256882714674225074024078543047245339550725314570225366413855291748107864488011763391617750163757851104697877451460097425353234624842373407462570819687153436602060024940294039828891315352638849392719536057315377253917822544238400046115429371198670290104706125204028628606424621773924201795044507694706380089005578176224338025487015946823174472362738899400877347768878501672330652798256919932034946429682061750080081401480521645618456604036722928987563512666559722982980821956991414069385400677078125064802401724432432420568790751866877303493907382274920849743703063454815596104745024701015285931294440360426110520290535445657547811776033875984971442410577767045415555086346466833657820548862000397596738075320445094873367549704904206732368230537467192142146971479016451978529195764616028851879409304516713707526849085696856317668441903897790076158981923319922800759150685825729491922775849198198931443874550813985820203588148766788869794117941433553644700134979315898817348486452008641931325029920845040619221091391496137746245322516609267953545676589199909192608987628347937936919689780740469354634688158497579007980538718921436476948389964966408182024008057896460537274596984358840157977047249592704569134532239349286963719942892847644847017419175567104680009489486872488395645538429361545642173210876043821075209050025964801524787405068646262020607383886158518113814789303748827199546963104880010370156065565236801388989447607992609254545472440588387950609537093673557826827210101366937123324723093136742447362647903236046088969339270309121040049544502056604513122790837553800336447903899932134838950924187026138028626678940459071664010853588868250175040385293262594678431664877106891275527864713595263629616278957207139779970796237683619823447297008770588873278994369656997750930383270426656641728313248621913358358369700598799405407141498194788916316493230284133432310399854907942755540297657395070757289297943324000621082512935231477755580393932334978388479765512230150284998721677883238615150543357117240587988493003340457625251037530483794856960972493604892479813970591338615257475589700340191349675493138763817251740403653640514913919165938160315303121859438322583864281569162207803077100143108012585389484143180740226029552565597259328635111319753385332774458009210932334954638346010718980818067308295976489390756164866064357470541520049683259447058418442445594652740165104437737800032005238783759435047937992243202287380580354993425689839006581133786349180064703116472254897556386337606456940383803980389211900872585346640563645527100568852802074981279134946365511226742038767101351965211220117724815552507201455716282682720460652984180960136705078451448130533427181232041807403953617135645384983640040708810910138410989854473016044816255627009752114410182874021538415393167788276340736740348105830501299859689841025590362760287331847225567915243233074750057924999939915218529915912575953780536981951956716365526377860967598144639307061628664285161184649353824694927389991344324804703977447982932872553753774297106832601354138618002773745341595830175422643949552254804676400786091162433806068976427034854109608831988318794548166638148913208649527319879232871866173426595580984121896123259225147430186034301425297747445095072462939650820689550585453234863562975602166184119503720247124716287846807549374978647895079408957612930552876345535142481573442269107638050299710928969427506192985984919400764538429145462697133486509057427027444469113624280501483029398705993047972710497821627118505587154096402572905925421391086434799414746844125194605056846939590007553080601158867589466823846569688079174459040660281599270811810342375778251982064061437520779492295700295099246495655804303752408849353653197406385320610129851653317657590947856337332360487018393137857516106827544105316971762369878258250086899983603939557668059239732580664318153551559972729963982440188173601519782313967061863132036199503568078781236917940073454307881737126561869164986064585187308168269709822309665986361719490487358138373092310167809276379783661550234402323415613317429145145635432458526232115114650374388773485833404858104454305088056765093377145938612250631099112243586900780831250819416059267708479741978465650474738729853831602706785770683909478899507062597317005078879167873940003787682782887352243754686715232039422603780572489458020041466400561270803237155734325078197401783692597758631201555058355049585543086790002837742888232635128289826619671020064524039174028265736974030976344472492912555797681675493392861694993876342886168375675292388518901818920938500702516898318916333925480674856022189638934915763960449718562037934710849812586579356993940690575136835171421345240217804161552653891851285963383067546573105370472038699333207881215019896817157321256947836428521401640239858529370818307647207919618511386808679794237577700491653773708214813326185961633822796031886759254983967704350552108139927749380317657052362165846945326847363487579189728891763000101353855786307011842426307786260784412341852759167802768876324333119515149507769486342178406618531550744305545808269553109386773459879291468547887081521644062281186392895183080742529296393980138191452474259910151975544432794817846013412326523718746955070317474054802112501892338929201987245790434713648674308984780616877517024900586203119447822688546575727848639176082740281445118299253471553888736262810968330119106498383682555764871180290001533472606321763050678591100645306552690662988310643683470245332648025292008034333626666211929313754534681787716934858907381052678013591046865072747003693773476358014297304137624764482035919409314338242732112993179543504844589626641742557139376989852955475551038623690376873673888388354776717522263036479518531660614244714371449247441314159769176600678844538028213949280660869083285566217519934254049588872443047818491496268583251857938412188373901200550920235288939905345381349960146305215326011946589475839496292144126423013714472737266025066015841305885625781168697078461593642942027745246202620950741851797002096028250938605268741871782914654412200101994050860917797582649929440827733368380958526363609397464806318138005669555066845725749619226772048743955317077810168308628831902208788060002292895272224078788449858201510599988353747759325300976026086669577344367039532163808588950651105436556755334595830715475785808257218368530798321962679606864121384176967652081800826720635011357306155273728803134436910430801332346820101486276818466520309416152191160915398365130863164609839923029950261250323239897406400215000572807052289508309731125899404103535460069538356039352978384394235082454632801287042398634150328335744539875419493423455204295933920635446160717298629480991488819594869293702519276462457149468050204704914775090666416897366165306984521513596120701933729685598323409567421320799214831340264624072218789790815097658535900288726313707012993054216668707361395192453932238012640690415399089312447207431496181351727517562995752913164937103163925401172613913871167021042242117763847476807287350252618188194730000806060672132396475400785639513631537662538214408321282177507309098484692287923858345690147024093240499630982957907120872329677504605830317064295496835945891569523974814540554851423014479340868543519757058006180009896107628707428920278276353420776430198580233036209446227362392365715803156450014596711154808221041942017223456312653083845532247621728504488211071084951109780377329132836300155404796542851202174487335212736876684123452687699090050342194782858497333608032634294870345418890229543217514977574556237855320902373094763513812933675479594367544652074095075377158906413853050966454521491271138624430034705959345880828198583838903560120029716435478116555572019976749968334480220559548812261093139953357393949891468408469348136084263762345802068407491952125645183120872537821872225220777402255005794398838010371222194489146052615520891115315934750218928928496476876804915939326628461050443347621407029882225933602346519917203887787700042453309860514154500137795421424755685885106824412524411777566793470591136550912461592194845286653484662373157249293757570612178272927699851682824646520041198882820830160580365264800754424567464785410681254730563762550973194607035730069359092067979626707949626795667119784027702383755700252168359744436476948088270477670784109930089945910680453287161340359781144992444015607662566698739042512805751990447401199388232477387015146632296230156328962224902440920698037416709362346609742524943109963721094554141870370182518767178153076190491288775426781959582356536089960429504365496112365335405149916757104199753311577770043127315413467026384968240367812009698242574934276507012363273316457888119554822587138814125856916515737499353081435002883993010877293200974012665119378389785998990635683889042558827428765234316542550177782784148864912382230964302760249048443058279647908660087721601733224660202285277844154153355135114708667779287526823878134611784534064843434587262574376519192375688740783205724045777933674832822510840109336542792307907572531533231223069375112011723724949929373241977447647695316452256862444477140344656557420442824509829357083358476937144419449606891400741201429636675607141374696501045232700651817247750397349987186989925130826095294032322317630182994751440854866348870955121663088086617669747686083114767599897942716822073041721947908956298501525097277596603792809499069094529162390325231418296105473364723495102809596196277816909970956478098293937037546542229609172617064214810433648025188347379466587139461613931127313640403979065383008353153945865214591670777510550197453626564076661577472366576481045995717424626430403556783500872662044725347201973691982706209780992884345812875182939887328432744023167281688382365209960803437865599079803201743956303733600997759771594428619099065948196559167322345387798158025108363247415424820351904478269954542776238722780234459939710885671579026938046047127126701475709993500984587564761191272609672914071118508761192089593682881363493956637093809299474406513590799692638272412513688497125588040776934241201928005860245996973571178959001374894358059707887132961776045159482916616951537557745117202647156227806703680229545486333933528676109408805696099707231530277972324430077442690633583118085381215683593339275551710743440178576364158204221605484968283346261452188326844874002111026653707511041231840912394743039499591074943157820014379782558968524749300088287848825010882934208234992686522692479360722943014103277778127620983012326098266411600423464992530154442513448138140183738726201517369719552411275161256519267934754003361809206873195378523172402481696462078232334968651345652375552099540410570383185148824068126845793210929704266115639673733549484477446650858812434733835258322648663595831627177033352572995954592130813766753889267955229743344313207422704439428878099071392987721321072670163210902992490356095432759911158723754227912156046446919271729517438938165409440796954721731548668475657639155692912541648973931553963111763362066393178143829359726288664247191977537773260333034432137610975432815297475343796673873886996508297441569593263562768499093020286287664674702637362640007871750301074105579724981202735062677085749925477948395812466576443954113716663019004223337663733308702314917653085137050017819304804711582681400929827625227679188745684930460815438085585338662543223481768326671545068814964628718331293589630327395417220369611995862460004576929188424200607308997495532549625335852543797215507297645859307292483828725674665249018590508385529026082950272899342389317584921864498887807288959694287486044317137856005988447523544790919691029340657079471343940787189392268770089352874942889121320026228475445106753759263049889395151432816292694547721762328750079583931763964715154162429680802714969229066334948630176037099252696653875123187971852064023974660477031990071802051606240281123105052382992277844863246548455066714719455821428945420579943010354479948898897876214107408417626111920891099647740339948231712536657598440960829475074995778456645041962495903051319220663923405646298346988482228383654297084365202187356483399176843072491478097763864002534902325918445096606652143267678048622786573280216909036706472669184036472359412381357952698732020982646088180442514704640921291538170730985637170042516421629198362674176599157464539841389843033855109869988709680530821221824477759387322033321130142698104820845918256264654776633135370005281048059537532580737489399266971745469724552670123798581862761689293382171241414273987367309607201997335990389241890258861660826454017097990165664232071151280216959239573453674421145981406867023589575196319177872785080065981711563820425708722532932898181608398771253931387042873525165486938339341830376814245933721432222904839512671297110447440611044752838375154507481107287771750672824162917119707179071446557052308307651392638985607534490391805827764061648540898189795708755619266342737616638195734511806869576407305976863041757550919154866627725339749692342316212883116618513675076603223845179827301343574892534046033205260602971502339462396903167333230896887592296338784255581060260238994212085957411169948301283230375200315787411027970727546089047715447252120460378461506199234889012422313175804265656039540329872621262304117815201409686195450716982341078066802470572658478159374411351514988023401177853928346852137734651222998430879793592889876571300212615704823729282941233395244543353428163242083604311067644071798219633560745241576672556578531657570946186357667939314621166348126950271671503343525026911509790311782378653689586111435021729003192396286492111340578715803558466601623151374093129104659621281147510312215876355227811724121778122899569797594655846153726370810583422848244106484305760947406774874670383491992202457023152562254274024142641043738424026535363332807158121497303779661881169657730045807483839927693894802140359458528574710872174472894178696986615682660490431932498687664728068508972400256779865838394389152377199356165137323341096949551928218812484672673172941924372597504841378899954663776460259316060810327104279280730384270378812423176718241909203845147835419194129427870200366150511659028962126385142131386275494852518850567511118758025967002375631787161270382831397673249096945019963040172722622769705969078586964390412351388940390012282527139712185632390099091475410928778551304067578966357292454975539161465599014345336328437457068421989819856858745811302974758418058856092726791738497816734626834942106058832038060181356058367415798155763279626343748265786313628696462351356865038763381569354146412347740811160806984672215597298568507637062420832785249081139294460868336615207852140774794587714486253173000106112400186798717272090295590660580008746618796769989591302664134942200200001188605265671533649292390400802542787357809514547650652166325295362514579583772063532483352862303254921068568220806857059521877443416318027613873189265435842011079807283419643937791076717709718022907278797791258196366393041175139368269153343016324736538772690222019751546467182922072767746803666275511550880838665233227261413868497762460233020057469062176768708044702307400669022491486016863273521008951827846455543828611570370848604506638727191581104833124182654076782605307239202637893339336219249968677746973318332650791860436578421592071497616888535323250106848952197701055287492813285503437691927488672221599484370118036356251041804640034659175652948888996656199250285903540082261057406900160692497230567697302405555997389424102854529494354527364584800433646101927829113499646398484732056481689569536085794214227367489317770113461822708977295859301378429257242275125858871453874314190961223793753837243941533641754659140621182225786249196280860729464677129867041583285716679754343575723785267539885215425234248368673313295100858829507058557414264801715608314570755516448410849714676747687823507744248113184902970272803661049009032774588138988002908585982304953703857393915962428219831454656603204450261896180248671448535477152194984810307434053223018259089788994358370122912904331372372019659735876265274799990052654798885862325154238696900200429255573039629266796636478322205697840520354809005951252981589400616907102456274584535637033995706565298367607735471565398033832595942891964040697737225294488120697561411724488788771610908773020078767219825643724690768425206280169477498929231414244389154552025205875140702956277033447794653005141410869369049248444072131338283158076086546791196656073739553145170704369394185034814392644641612933344384590032200792431715951078720703443027216032977513397335598874364825022236252626698009438029413617569751647567681566334493533839031754692427184465697816880188549266700853115883154806527609667217631464771734405341788427387125543557343622703839080116462878413508106064275388191288467321207679672160459461121255703201271353350359832716828916289013458169136648669206996846681675439020197365060397354322068875464833580980898633333357588535748864927116070217184491938578074350089166547641676500009855649177327315710464453194986295394841815058425155437023310621106224094857565709674651490540226834767616641192715461977889749260915190654489954034986371259895458666495064208118456831772987662076024175265152246880817833098740349633621292521163998838058205840741194050771620140329712367093286865058268128126412059417132132751261713665088937609916949167577846597590336444224129757373144030516124919191392493468877166616581533834826785869235440583894245228201668807446544478144525805583862218526868211662159968940119294848739318049340484796012560927040881359843420349993835418311664757220684060602133786787988572611776422933420354836443551659833476956843907700316776511141715739645251610955213956607610007407871840054506677341072666212989988240210230275483449348670028909654467100651298017054048628612525193208918946336797957443535284813369962423439256528686501969158849168496120722349339694958845727994596477996842443613229316617480402972246240406587226713712167237351622091188984617377702595668252996045276013423557926483613216684674172325298818754441387475483893525259336256038034220421485171917390594780264368274832299055920498679745780689144600514826913519264086085913451884698110269586137818576455766711147382553605777394976466832686076485767829016138273948238484239606156004149474637816741951134655592421155428949058730952154072311074861402629607755706255624609841529914106884903417212929603879387952477597027135368083472532626088107689060604101336905624856519340451274066481201489639483819120005017169971922425983880822922320367317862317006904152998198394075949226310629674255495713001572806091462806521260859292112535237699765619803192954430401312873884760077705164824329112665974708515074583651434844610840522251483953826669407060428747322003258715958660887113450742688305708356299204547973012852023983010588711194124659823478882330529854592183494168620639713267066130181440361556532182684090244228494312424538379517484087040137485319288411704911151549611735148808840789411619063048832162197481278134671666922160398632542000496760030958405921061626473033510975720195935548310474626988324721204683495517398006582235156502130325403176617804912464421100903071115274610644105327542813609099607938387634016446606399958566910865730668038300943956984918401197919574448123259228891673864728120458846739688715834405451979481859967722141121521628625618009111215477038578700402707484716687735513627093237322965356188566713296782162128087397281825332746361234144309054189693775242709581886060455285131178047429249770409558804817035145113193521524194779217718509349146083540591867724751362041802844186019263078867073527252633539507433728457330401853937713061569624449553310094061749407097074374767064872990978930939497151798635759839261906304399104747519068218680313471093800309305910982324235242034693184505304569739592028617137932845570540371307652338771650413885326468599024535025904791295022294180389769883103773844312013582456869331530192935681021699546272536337444681116232547674778496782316574225113526240165417394311283477019480445374399786160281207747359965211912538013325255305198513187122658615590158174542865892712378241211634983791963546008836408448269565104709632097643009779350463032324922839233861530133242058425001059008189297778626086213949219034241143718534459533682295052557018209664227282547485717960724630019973294203083987915963183284399762977657258648378600077743580724466893161387443936012620683239144947370979770168712411483227909301867117475548574635983064010204708105834118905715350727616435676186719537398612309707379939282044301341660587428844823645095617823836666708379724175034038984229655018304482212651491464522609979595606110207519082531187368456552042408123974608441165277320181440275672379004569707043142127658064082946589593450090432870825151312838410763372470632949904902837003091441825042997857922522694680925027660758137148637655209198073222286809675972963753267448628145768540785590310134491233502732440350992854712186370007809767920899034101466527199133712459021106912424402008448580615992588488617445243647148869161487583804358988793903185425318635448959963659002406364910187272228700180292957895724405327979317199109613496994293823437455249862081396699078183555932106788613775793957733843979134655294097482630527817947729404607473306916530641234620761181356383361277442106774901004211352625208330766245694383434804231495866868226349561416535851483703748962923117383734665102760521339061173003963831454268107071619798393864678084490841542075138419622964697227046324739327493792910679147655756523648759887140275395823831794063392254822672737282117256402469538425983172753877456643126742332014392434800157048032660503566584243932585968190444472532289725472880046786933275325645934017788979037525497390529445833064231001553693473976784296176099365163092751661606749540197803445383624879516084078856187451050860520773164382990463000250400610953371573296574561690174581756997387842142114263785185298105962689705263952211258841850015319257263713493883430445950824332716893743769882495306573967470887108547986350365149591910164383331411377664302946235063702830608044617637475080561523556484387192930714623142981203881523007147447821996812053034252071215590717182773536523012293085887522575931830812850860734135455055750267020878473750803712506081220149961087585510268464170049336863824072591222390925740683444571138295815252316438497745444875298704614528664120640597867744589249975661289909133579773747564393816460111980606851411257397108320085250664781935223605558204185102265640406506080078785956398830221479398791863014121790129963051540881085366146709527055016811766290757258976481406654122183866340363720957493738425730222598151442891148543206456068125262689889432071788687807462045699952559616544215737286538617287482154971266372349191717716647447524139950867281395621999352862193089287321996040953803782236820378788653294089676621379093524854006673359366705843934464283452018836030722201889185104575788080734447741895847126403967146202495039195340863999317465742291478721315722069562889274631821653674094120987464390708972555926866475422159194685797981830467691249303608626571443164401552227207636463419185747829224839967339174731836568451259247349843712198684222606463875998832413457509086024812300611804155974284369837014230325618863635289864526656703491935910739690768534399613184408091669415612881504606215645365477938523529536416930182963136103991102807272075732746971001526304594710504960275867040919044452976838279649961909895835526212238364081757502397217700739259801564027188853164496606437010529755582536187037947405665701478850081979600860467453339587429173831355695491894203696132138774325713391056750250458702583435736009077776788410155930963193887146854246619595108874529073933949808845779342794468351530244602176513594708100630147864417375099401903934096568339446719409338433254125868711521532332220233380237896320827803015748797288607238144567175334557240677072891395258786677444218191553280660150454016849711205094187692796856760024998934632196271451271209837632420385954915785437667470811335912693509885806155216541982859658887067597378129985358219455979750932334598140565333950272072920005844371259840604886153582174381754101097627656067714932754966912996845546203974098741109259137773703890593135317734683296529728366554982097268650512442292688612397354776559042944915244464316235832158108537439939030817684666729476127732494325553174351356151044015288025702205800549341531817783333504377092232680182393144480082257062429291398061613663564410018670359376611124383331051132575694423030038583725702026089459988530257326604879690394779042891070305478574242722428682553971375619334721453213574535295319866016234913708743546842397014695738634944664714374516784417679823248218349324199989068533236805649467258519724033109916279127335001477676444680325395881689796313750180255612428779460486283154138477939012087847023170503366826768742193889841461522298975986697357241757312564690150963412158622176232358443806938324176480705284492437431857174752575804720329575899195129254131036020082269344205749745949420382988009776591682482286206769524837912784646677338267261047126055875707071856202271130498079653999090690259988945873049051692437205431036266825525804043029224093122717139709593263509341338973559241843820867441202082106838295075791885729777654207006194926487140982154911573460997101284305058516090095237565216886510622145004416056679269555922188484310557146782474441261542439336184206816830763057360759421238297794690235614629527995502167102966671340527361604863985822625245624587382222416292432655509398696323621940240152882075652268038285292532603934076477054072195392228762456742204322654417117276035557794272854191835899701302283546872698020973010004252058807887702200939493550202171952546391525039990150474991230274231717652873188386627377993413547673430951557829127688302128962957230716276467370370155549592552229110562351717574983429168882638034000797787062045976515200800479780974424362353002546457003702286519867301947464628143164919683383163467084967838360540462111702024885493983224569422506222662490418192484756231930468850470470742875481429847172325462018650361054932139591361944772639304290877836902752765833243528394434146420527347780494960561183524338072680637135958160515222269333850506602817172438955804964457246173026002596951703434172295569921009178727159503128799252207886069392801639583855413990151789524111726105773210103844909918578091594539105285466982109438980139815813481750478516610839659891062041795075046855695888637346178045064131093376267027986349844561321549316280500954504523445007484226918989057615346523885726862353683053639196359046133591094593752524578210493139334581040767036858985671206160590624066390036335116686910918952423466664449300823606299241504404679946951836178277404815548903302124713164254316464330008186769548942150542103411555260621250618361006278912581164496255520578234025573003750844527346470174041069420966279174290108665124349623696210543416805315416798128795404230531075720507884924029743851952108416856664253027487686337732713665754179174733561599332612862331340713319449808085281540543194031840662511574650220402030889518124077782170037602374891458293047323689772846037336604242846370108533482606223555158281738253034993283142495478057758107295528230579363036961425405694501865806768909910216435742646876798090485738763110846599910556999280601245695138243588101059949757742831313854659291559044120259179175225153732954449151128491122816029179315809917827139226104981110155062170962302082680379663744272436823813820655771476841554627846518248826460575294737059314638057894220280733665026442982977613559395668872588107077591380068643352916530696901368332043269472005113046948274968977547144413157774734069196222260145880153087213363336341129155689638989836041848615961547444079198332774794889588460826888255578228853191924846474570971987935077754238740286401828209581276698509150777895328137558224763867402301341857101852772190213997135333561114547260395853164598512080146697702020263582316473709663921709720390516796503938400918216205795469107439571690864811966573247786572294442257812263857112650054177919831177728837758110084351792361882841613815738329489078562336381630517442502752961979023629729206432547592896303309530453475956211733777490452699291988213650623757920753512139403800591173084227154205486024058493153970876791535376517400806958331346034292305214131845177101339542326283798556075139639081957053425852708863186942667583758263495296312754254430719875624437996326586973064832794516188053335324700151723691452021233407327757769062635699939854589440914409711227382158140299168022373802529829276255426736133154774220033789713369230636109240039033659399864571732463865293624586281103694787685930740752490277523057042019204197161013513649345427806579533187992017554535588280351034719418703208076673465339221602304294073828746860536047942688555044089896697282766716901848960931926701319988288520026949787952424918916072936429606548223814628978660901826833081535031944503401087994982446193517703422032809168024971699640819829247396545510076437620590702702900705151150732620341789702141166765538100805092712314392104582451956021574342246926203004861430325288134298472877863566998001787449904673991596236639326672738433654032484694516633828688426302657678695843805914704752166741814365919901758215696909736084852717089627949447494747857133837453197199227828048366668723863206896259575528741701391009103778388931481623117516570073018841282538882952491759923113801238845328876543267300503468781159740704542211993761875961040691921156775970366121622380724056281466361706573633130264471594762228313048486781170484512974465033705787155638726393689053010543552149120057965976682640786142874995165886737664756587462002922776052828034117457706331017246825259112186101124217377333332834094655331065955394667506443557777439572719434160156279679405709684252420998181860364852622306042622203091582672318985700214825747016871271100710215914149194879135732599715351598370316872297249589808360371281255406529595513673394913528476136328411461911603050249925405205431368494548520113924263547597387895863499558842282047963990153884920422522888188420549320749176826680103216263533120615350593263679886348202497409812036387680176272099703663361959889177615511402731999124906155345563083917603475711507294625061410718584282704258295218791127231466017105129822123199670856940566529765781139860677300699002047199637007988587261739625787660700015559700600026229319267747616604968308154853583139283084073673404967332656099193645096466721847575386382830393782383454658394914562325835440557405714009275998685234920384881509071672640431735014071586533630484294572514163972367496472657024152606470289090946326550966367566217916909983256257257670857748439657950239137504696615910392437397149922422158039107893956982514539513679123385209260104539174874295366402095293314109520669915980014405539216183315660594852967009258647693711818766627850477033536109137654810739850216102237780575038879707817973385932712044408643871396713915954096950906746702523671118002036963778895283151402354891629972614746428789102467171313130152886531849710673233947418071422799284255076625779394045963551090326419909332795178839935223552912098956108191285904316516214131074584295123746407318631156465703929143930553498037760906140503939783652888121592841208561646148733908832957835181368078305948690088109470102609843338627566128713477843700030985488470932894585046270367899579528988947640742799067044668923529303882570111319686016933923934894637293639878062550113925380148116076614390882489922764202300426843722843343447476444918261363387939176112455141311040449977183176889954087813137654214565510669439494137578274782823902295663127414247874004941295883849549612813282874791486202215832622031647770321753536647171261587534823963321627651116780097447846682672341918363275795053391842315439305025064521227423159305647082140552202235735868843569348165109045191069027753966625173053820771605318357850579668302446043143404718801496954319250809921640602273658476484095913578872413396961909639524486999919089036881685816848885079320161902314711083618726995851825339862900392656062619063686125132970466945136363817285886096428194908076698531987514971395801314475518411666497043202325925089246327797919200913353655427631710341187185705141660674960746820415589144824123006577682595284827558374538219740294774226970399680497891459707319294001574352372065571968191301378065195288242032334912009961889794317009791966515307974992755184442252324197035659284401505941533773081970686568675878458875515702792688766476852040398121935893253860189237348148078391326901189177233793360478858804153891128958298661690222113225672850595850165928761488219296320632162587251546403856293369192912589308595454890004081567258598397354288045252958952412235720011557756491792867346834011343960928822388438397618921686990631198056809084174922841711699036936345101264470313964384954421805874114932187920603058493330579467708439118122718268438680861947201113481604699012146864195243687458661852155626583169273465831815529164420979660678173411917396958194069649501206705346561795821249742516452286569441194297240452597138776599750162676546252687743696260368413512725332209270793033235059196200816766572640287382722337990326998734911014667437248014870174582357406442882130883635351512711310090279525954026248403543661083192082416795674967720212861929462119516363760941145941270382726723033504049212835661415086820988084529221496893417714274237585022878365734030185351948206950091984967260328661395427302048076948169862519144910937631444749072641933865304198482871598259161257104169429958904832987830303429701339144623849846241483579692790052185256857338385300104942344172761051497403543830948659482734657058425421795809915756106368813950631998850724011176203675160838916250372925826553026148351729250257506552771756821046025243349485245684696471734063008001864996040869029009033615065109037759363467884740055152601167567242799689263428903354509450384133210049244747156885677556856756278955195651735845518319618776569025228266964846096720336676059792746874268632965978538288558184096779618628613042868496733839870511146490089989402355458520184344870440108006903296117049714642836933687620461476586837086776989131586505594992594348704537710413864370883224159431416709051546991135023564640159086461735133421685220704859636919897209070227294626376953166992208453407939162655247431250672485580188978464520669256279045700535770668319801925552064933676192936101333496068632972677152280492353943969258134495799131845993051023209620157507326739385805569596581928246767557277522016110547502542836458386987436104894428257251806762366619657264520904306070278264013613401745270765723782818620666955139042041919101197159803382954654705734720390151362665200564155751843094357899881213062706038556697993060101191239061548345093781496675059059964480962795796502872685561728871744908604834186069606418242521934741336650457453682202857166024484746787083774976932338447586557232140983686108636228777226108555943838583910856746473254633927721238955421091602257324161039828916677444887702968874051580591974993142290125487388750077573664628990736561989082843167497594232535693819514222888398512595899342466087146358184544415714049051314129955526018378001335782123048213299103845066954847890227151972119816382697392935067166075533741388331187780259346371095942212338392861911481421237503621789001276849497803904649661122951932275854991285728067573269182973234750043054630788794383782112428846012397168102263644281632698499617808660988849416956097122264706314560761599370830681379649930545531952192937335368519122941438996099696856393122328259506350461260231550810795706415628574053367441759487019025382638763209866636457641934720071124103343077396147187389603393575961162818185760843188921034671828323423741034479529653646007269404627186250048977279870028330995801857564115646062765051070421711567168713554008421166985613861332319040566369045242304490682057516409045602475915856590877810949103735896416388510058000201453732932916469731069985761572060086411397136840192398509422029506919865868886189718532417564471778964739612146494314025509230889776546748328387761254993284678513478933635152362239885905194094447652298817062362382573857485078651556361912554352142324497224784442862803676266819813218607840223905306116610085166793616044749608554875307794288761643735363905354697240807969301886612980710467275620977150395259918593109593458251338163186596931308665160857740864591121121957728206758323293698068659533576788862639336868987498316030297258695595426980524996233995091042404850988336664592175057496256467026890729428363822911463305482270886459851792876802748176478886050920523937699621451722255795404936852291128346497826050727262067621585927187298409447735204821180976235549983226961600540588692043108966991005583011939408464324429273562043811624997932936944760331081655109850581519736628460187285549547273888858592344645301356180934313160376438302188461283049101816398584574826732138123829191228107154337917834965484198005664201478728381206404024833569541823635469140530771219734959333668785759022673060727816925524393948848077357054329183811597061996888743196786043268834195349574553460411850050226989385360020857623282761770130232954217240801130509757209605197357934594835138103552171379407461105990135541416974539392571951417556643244516155449640884158486006314666308308215535667795060775420393428969290948817405103855395744148883717591005275558820402794586871650792307411331003208077282242534007195742096348135447836247737920820953341611768718571688588413318891860502412399285278446609675643925186808018659885604000882188023762493918429461023939044025440888611813875997256732186136370595474431828856600862096499399163839960179208662299693964894116344838818123671803809092674155978288146637052864018112677965614312386025644881070825848848590727092495286615999434071187417039556978890673285958179963250970411837614966752027196320094512695361173914617714185459853980751078165389037531434288626129255369425219729652581524679741678255477933062958831423895332338246564735815817871628341246523578239053442521421873243919894563251923388487529667237516709057906471553449257379141013037911936250735641742994347151993624503087589176358419445785530618229677892341283901073072186860692144236152859778306337211404383415634596112007453763757982211028828916440630661179639807165405426843909022885439096879328719494158568373745565050967287275637611681817873648806927235242216867662334122483899111729065480868997855631777781468287029071926276330313121195693583851143294523650663161902222005003617881535333062978994082827776430229114650280675952531426838199644242260224749900799423126033926647148158842977912236132177215859841216260236470962187038006091506429809298470645675871256981270982762627190539674314927987576945250225083716296467678909037142915374703661918530935314909535083161438688685059440378262018221737816917258325803019064057742632815593712418366767997245140059208035616323033144736545498384658402376114243012009379909270679816642583396867277746232005588928560389457360260048537089168013110793191828356924252448147937618497245372441022184979192356321959804747159769666144480466419589826970528631194433072936834025098328745533941125026663887117371190911197986329874815083622233785367887993031243602828689964036477889929993369884602473010705379466074308630434672522505918174024418460347917233783412181055294787178102212702484288185857455624215765646894921181729538164858309032277591457229191955325601583807558786502168496482953512231048209886841326647941524232578463307461859188777089333667754792788305394910800412090292636126830593670394754052932857686078159537565023756012891832008649004216785307447895193137012742288880281573702267942732034647939129749378739991058019763781767195163074407221912368610878903294840061024007396226277860049653953942350237501156121417276148233407132360680326756783724726816798098965146140583317677750473178229348913210704872170344649079542143993559193123706201232102039708268821444121599156730988716720624513714290406179264965229311456977205428420994933284424343122963956819874744584783898110529745193975224413251564396607373314261459316956004017768040075486427160349229645165931014488771216176808424556761857200259015356497609511704531973148505084775004737081411918997566646908438225465308311526268278839974626705902524349669827769792821162578409558147100954580186810095254307352369537430528263951281444531520338147659883205808166582280550074558372344570015192346458335270243967648178004036194083929107107707317070277181870504452520416474001004065024319899845281122838236373039802839390669254364491037138366177564763493127985628862085387711089383437837345861299308286078458054602177905070225049367795245390851107314324684406324138948891998843581660524996617849429569046792165817716247714582205607337341668705670998598508642843981007749828640459265070959393635375071988615836284721079360024216675872211523783139681649987672903215641254210933471734901695923410618683569397842249347967315678609772793334927390380359597223232216924165417881921759858106663237981546201491266269600992352276460014758400190945544812126110161471465319054752031663776146082497929498228450947045890009724699521999612101500999134492209232209859950977520485483746174723325396643271652424479147753747850913852997618455576708396436165552200722853627180315059495215968585295405665106613652856849439428480214798825090275025791503789507189218769353950569663486135119379381031930348540088291076265759609049349647938703787690645159699792750359124168147686894447996822498864249842151483009676424498253812147515369936163164631188873554310996106953222441581986885321100867288644852871537538112212302124873452264304002595844816245378001659451665589270478992426737380619522366174410331285582180400318657299703567554264912160424430092617497047963816338577596516342568656016631722975357818967479567145574002653114368995431582289813974705458645421346533464699539459230351813185326182893982947815313464594714273188045489960039730532576633349984130389392240352526960283096921471705842263183031006446013315360643318755223722225909842414076346759365128033019730641925996287914948631110996537090987512263767324713568319006817057251484442320340298680688462367923916438838235000964385185165707143761982324349018401673619305719683038926393040086437679622938855519882334813101604179033049264742251181121904696654639823288023789751006812604428932286113146976070455076248450022440384994080979530481071194790332819546113700689089106006536913185187921786484032527636516288686704806523754920753031376399382819867944818022642854220734439735741032859964584835934738310900548234104379269914704199913011054370330770886824518403238469091023994260579695069742329315307835130805910223429172127169466319607582378312765928465692368417276717939612784236849157624222838976949676065044134298809899087917142847059987862185717660855551135531802627054951037269181995121995186273453815966446965864057440641268874957330588843949465624427345028395166364861802373094873813264242942317299270005315531654222614797774240391360853043875964865486237365486915174211746085632495351917145189354078194884063779349438124843216400596668716072270557874663555570916943819573741801751165276457758206948173918754921850993420083829369439576226047407786771962685825834426445764247239903182072967957948090044957842624115023879653549698606187841080515932124194356873844510314026058594374544002821265563464641096930119842185685080266769798596780613667571717267412767760510106160599776280627161749955666105817331394591405061438773813205287127917208295887121284071854256140235035960395648409203718851456949613972519921320932998334000838158649983209429680839272235701226019772041444924015671345203916312560157126971888132296852990003427148472934673503937832410302027069299918050416817280861090454244760654238104821304755482285583669438382238444232814458561581165063586576151489307784289846036001776941377246857403350709916216129571964826989346169573371956492047434555106027453788557703272209248437043221042877103622193297394832674619466821237476098878847275622420801194599079169602276023660239781775922973121143695447756631758165222028812390146616583976605067148897665733760593621222065884132758042241424052278688940384357112471265004219462061660411450274781132136670268621409111435689072859392446908394839425174147334492483005487024472807149162332716088703357171003466060447527036939060671439413978597526216535297471724511423607815419436203507183203782881558973801137148249213093183651039738199824021044826685248135774942262485142078653826303106845862369678681144185354538317687313065429335661383232054739541334865094750931415192897004324913118135030880410539876293717717299086595553334874076933959859504734047972110789739897428378897531161663570149135164271703523521756926756808704234257265489618286483846792761574301751108242164110177887174382369652493274135861889768466089099701734325823554614933347040636690021753641076811009909742197806014083634510611552350747319475003963842314497798449723241967419582959089004011110832557423991682238172022355536719860343122383066805799269561712538247523344418206398060025247745424680549661050300450046055791624629294105455209357927222095608450858399271201925463570626682323365161479660121930349583931667035158187957574613198160741744054349015622930107363511078972314068957489911330922226555934172185735426526949843934290381147394079445035934601246748875750176174626552359243675193635331272092423486408268727728464707077125872947877063067734874191730749851068475596192363291561675633546222978690621419747624444504715020257988270932989871701384058253334358400401598880510233531151102798212445123785796403367416497173993028670823375238740556560103830669457276219005263217348305850601551995834704770193418248055796476925357082202070631427821976016723349376342279842133482935533415888175430552530314457756767400334562506100057331405470375784455049671447920964447576716145215389750466651476936753124969935025005364465447495509003041787113322947441168966088465483480600817384352137512844489811236166693976262242072350073306883637578811468996156651557265684780475202306371466320029273411470582290853225484650204627178707167089125866704422192614911577862890320491963105359891513751265978808194619636843114774299239293642029345300344067295286288457184508845041814472999005531475196098470359457234709235924907288408778183079267206548564724439109678276034934410311757590610248162264397351435201600441919027133955325168682598950605817785959027626585611287929190525749645657506171306133084759352915629795083602318245784086004731896648437672116279923878190836590004520054444350562690774774978611314596272524095555737127954449208249671693238914078247882496109050603257299660432276208710430995631950556768153420829018439363927873064317378425352556672607317087093491215101095232101343930520285924386610300314060083275454100562383173077191431042782328622846884102660238619333254661356633350308835521212077483235404900954467798143868608983684175098039978826763324573725365065154267514334771317966428404468753343968200704509768268225589365344780491586034971895716445132320032887601717334502666696951712061652954381094605551632549684708262989781256427773643260401912990542735912076832933201805354328401999065157570098447246312174264966959543566493701319598904575292518401608063079023629986163664353728282149978699661144113979424437338057690494746300702597029377143144088292182480207080943507037210147873330028435967958434322025727804687512587135900774470046754376605580871244507421975606429648448490480875362789703597171244569275118772439579372248742999749016250235754496501585971799659519845174038911071117301643569634905909316261290147264616862453887419138215694187422077681156974134523421326090210227856009992655149749900703900902548838207649159153307142107051656551634501980571339598453228407448395115825725721138108908437865939398559499216836758611769252096266908308530350362782805591474722879566938887497445681175494877876555941733368842931302982388036177487328846669003692757460646683970605445411082336756377415253181219199459789673688268633898963783355828365997905722069497717832166805698851453122958931543793075494313161713674564778281340737608796063161906416497281138497331687672913662867731947005669724128950475383748041543303995293737645049085660650797695145510427672222577989001679632712855368137689148387744654631615243759140113536081684486028440971456404451388699397816543948882816708295450810394211372214552515655279706043979767625090545847250852608370099760606162946543505843044574520538936828387872654295596631915697171016216451742227908076522350540216890322723658802754131210511363783986994937132593562465449358596076652569586220904773624330969562646973701971958406204205159150919110480687342516236099635104055258448870622998217848599345318084350887505595194218194408217620693633057498728606450386055987821031794580896562879036852282106365209793199940031681185726954137585085341017359148818199065094992916845518145836318149658445696434012281525211391648236449894961562651129306299502618155921062811423749048710575164541667780571360075892032261750242666343273684431827552107497499761658609269567492293282792468690693717620033555603870928821922510636458350943468237935755900924483927968895927319650665855188935455487728306415900549152351980128274351447671141516696588752288943173994129469930784802955086173613373098239966629718959977521354991878689210028500820287790347748224659433525203208603166479773000663623209138258298596634639106349008896778132968703258475108095942508387287595287456661734780914736190068522741331367456628044218332764657507853386201342054396591446686114758205209309499488800560003116288771386656305829922027191729931512612980694356391583063408326486320616278462691169032575152178789578157378027396798423196699363348187479680323290223611344520377077202067605880797910117572045683670271973261356619328379853690997560914982690538990982709749205673920879558431574337964948470882492710369173787239083556505279427511485349257805388745623844103907868128923101122505299407464667841906311123969826377901888025036426744636428915586908061742113305054445436459018923742751925099079750747065867740096151616627088830813158445977294919704474299038251101444104493383578157184106380252476656763364887324789345118312166154802400093375541291782712701058684806450520744300572584712833109614067411161888117060964061884239957661629265596539216326695429196050383914101126320612786963418138110554082630383887228214660864359452538878244915138037562135230777410390975848682107181574595643151202176715662452141169305879207254272623992071427549913743694500011735745653837105814571761643231280459364978864990009786877392838652618488284738536069480833694892346704249246676431457764218405527148881393009353480083522742752986306890985137047997986796727812733842496150045471101733882125091219612643009571107342252884056526954644946642535676864387536102341760831070983660948788756054443432506203846623853244836369330384389099408063128547629756496753712553756757392331063971491720328160478241115848156833976196586284034094674130827597111672090635756900583644632967373690872122604637690323120976313240459142875624276509227251983902204567404372596400166345395061724534435350347636723025660662874793371143570107481157830068157260538406135567631493547801991469446248633564956957336275677128133085729576028866445622447603283959109962609915255735710467154351182177554620713751073774600332017663458554401210241972133723398012593122963779366123384889399928668037394316945290411701012228738693915768154366743064737083676230844830919426069936163328099322103237650928782455485694831122292103458246859458135047921048484742783453446792578873001248125059654768964952422034544602792005678798407492238238967466993189353337478655828862704855202201722551789270879859326115931405726401387508978145106429311607742961857233368997078639804690297184408836859301470557460513931834583361030565452740549451561293930646912430496518141017643421661490670998780567910999794315828170813688161240707729580507711760513526407832180522369643864008027118989926771791298754170608565419294065806278923513771292589908762011517558592160070098521979551099591356819956070265739641396070928870372324084576735000753738761851963107115394578645361902497922285027026489218264592071619578195476349462767838411474453984231883928202474264515501332915685717614480921035895387527680342173886675736398987130166628550584550047599885804242650516267772210703398420653966131956078288330360069592831283633039741970190609809372995668632476468383041222174383104379390887589146061461280792107441864778704571289031360186612428048347482691187367744147752698119115900622976224838700707259084991272392885572647716800525159937961950069006621279835589224154529240810729622471525721635882680712605529114808521103427601317504161146148779079713729198513059488450990603061996819497770605187868620302840413843766201319054091195172959741590813684057440455353990005569991800689467894166232217242861043552895766120891996292869184340737091809561170293369336515938561300369579372821923908988047636567587907673182487040213920920778085936963515997808879638487727735112165081125363244511657442266201099592299393718335357222766805910987943084058609604646119786587459520724510341043938440799210516459713523373191182628994640478171629939178640154229475085697649665322403326164382586121947608783832171063765825989706873616112976353099259530986465835018991356705130620409702340694441527902861495868512682855008393507173068217587040020851396053193862489509287347261945843051824089617278821823439934841236667312114625304470994914424794826053838640682044606687648529723447770340057677758864425252307351180826583245088207459496047519704029915573761146956475260453192653542017179266570214067502065775348756134160877916740679952000251539483338454877539918938252364943183719148224910030985855620858459648454377413372032172386442270045822372337713593118586669087206082670306605948301431221408342705164867801445430638271569496413319054305027745221903439048097347276558070476662251971495910004995558877268401659933851492309769924022008804094261819789594064111678247891076662666293325329950061641096129044582525619281575675708820325871807963536110381287005445061768212971638565248768472757826386859890359124463418150619213034341295344196485188796815644153534204177345824416046757903061969565359879113810985899491750119883304534811726110702121998394288120440119517235111326336581996077266107865556499820772916206755038985579255420130738260269488329221380403565192463474238808511059116619483836848836527447380328639117743940532161474670883670825371091353563090906429689840870320707451069103440756611839917778754606474518521056349705150845396677765151843805732485093474672222276939449000382608552212914731597715897378971539612590878356722789420159528615673191571630315968721762161848717602021880706364109885580931481098403133636049403028091020746477468253622082922841013867917559085816288355384982279591267370099345973374643478384273167574176216386021596464109233190807052804506576344291993928448019085412562390317447474762313842947890164575450057447997128165984145907826607476596485922226467290095349018135102212189786193070888405483556581006882972896457688351111157483945249889286277713141206152058827866323720954007942662509765660568037300401388342724039515263100088599023797102040282393899327296822853097634218656851023533848729409936988562560552981568754561328927294597198254914565655200598954482690287208423056917923355543015548854824983509279028201631125669999044537057219124162645876543278297903126933238940183614680008845646884149296927052143217454340807859432617908260788635442028557997272675122447428218204795376126897202914415933833769192046860447957413230944961043249224149754172579910086897195290721967858642870564337648545510748904030655972194118616727291940006416079324580460129795259189838545514049113348900881690037551439873078502880882202424430422792795430491203179517769526174880629048386963224502141771621754776492124732369246768482662186451448847950488980370887757880869898063549767435694885531424340815926455833510178501004185386823346256612885314970836715842470279446592304962283369676769008453781618463998770192171120928153110209779964247999862467265383827319176954089066696134674283824885279854482531793259619788577262925984595040886025252718327003480189202937848854717576254074857657336696554100696449477823354784628373816872821973634939300214180707260258150305810767939317230605501325629734562163464345936017435173411530793551709970930232106208574572688221463588816591641927607975164126804989962653875777278147822629749148703250284649241475137506213680389271767988857124505577962234037461773729464208020321864650013285165337278427774972946773069064976679523042403156295781280600275441020248653876571118311358620448299411090980064867915003369125189337992050240293488068096651834279720755351212987922043301448904861657676465227976544882223620659032952880784956897606699348672153369695297048250526674143635598083892250474698684665770661493300932588868402848108892040845476303104885526121399795035339616024704707689851091642695601288441702956677036600854110869595170472146331551825864291995645101731351039796828890726398000205584201370006087026085308249396775608728046846715040967234007218307488839901500165001487439111746172048662995949093271071106684887423999631263007020908500969334232827290126200605055536648575782990991100342289061998676239416018327769420793131442853959033903469139079454921755907951246246684294057745968635914332459857285404153566707081341843717435936499385814821066008814628345429352884521820994668336797793798535288446024581099789546914157270565502290963895930470686507072206468715871530477646402226545333559042279042436003122816833237487283496756546924289738926450682218816377106646535175424870278289918093354134612963682337862937102863321480316517904592530911273371331651873701807278130275934967621217733681768346126408147045970756571415902768353025267135228669868166247446911934465003425846127310223609587540110922659034761846348791815520337539020215118157056650549896401017621183671891171305163770601715863844062733080262531876064765231359853640224430236214295473004833568436177415213438841236486972061168074884625343080902779629226047336228296647906251104783355835273895404770878299657233502664133986479464374684544682720577798268889926705159640073064032125028081415298300924719060323415092338566365401074403734833802741913998358894678215881172750468095911923547615920570089461225908312334272764982041571360235184888579389313318932712751407201797180867826391133960422902194785137626091168188279053978540247404355342899039542065776212114294052512110779442364616759179372298852285161036857524467341119841154274015491227719528110438364755950315527905865811495915581983739767159645854756903444445816334167246324295745821231585612236071392117444494288757893092179167016520232122596931782342526592190070432798749972548768025125985029519255554073863694714785866436673164740216996396249194692942445061522694185432880353742153678690142662737872101090057824893663968633496164869503115327759109357372231067184700291533746831178649615458596835814267991955190535342653336992570326675763775565047367479341249777651920657274076032885053791394693602799730831913710735323851319633315838801996379427479202576920281597477707248567902424250312748810370717540081510837909392114375710937485815203523987892999485019399000270187672368201100489586224210753151613483082208839780444898623677852975862352750426734297567276808933585928989031974685242329049897553998233039155715146755624749560615175460100393349961695593210688577307623148940699656473173493837305222512378716434108079664485806965805867357863643095468770145705860162092057663637578805695472622712973357397787350094879298801280844403520006516653089807593180237745932686401168330636982016174757467626620947061494980657966396393485377602143783676907355467140987133765955312437177193049250105379747700873719914997315254537886612320557488772082822948051220706350885449063616295647929284878912223008325243638297147143870126120231040555607821868413302555813054949515685360427529195491870165197154488928880037346803849666071411301518348220743858883830341288324573911656477271703602085320101848173347723378130762134794667964256418978232861841929355814650266017290722183925086145424837558227891623526259532564848256785860784887269054140805230630858101163388683346007955192166036244167439326396623170682368690134193037108218964729508693171646583972028199409526773950262905610697270882128010857844851189723555721414444099685654240026470790147901458315958136536787275641949121381371912136592534731348805629887090867981863888011419934900878646363411309419901716455998258687990324861927246364127122669413629234452118099514454083611148532614806848137145951428482503959107623453021750484173029079135104226591872355155920387551597356139321857782286491296582503435315614399906564895654191266338276156256264970422583644538750734218621543153777262327117364792622505460970433792802747096675891901154394992132277513623186500324431980184071010722929308001760465420572500703459663107491691862607232756218241249199943461373075833806689862300890375818152517907273154683808258148912504764861030145580382405749397172064837684839204934907245813025682841910456031880946695791973793068559944400184755943819191572531674413811263122076205226413439119289516679570573011781798423600385468468147532141429265765080708367478533177461256414246356055073894517286750493292657686232139053149267312303457592701158688861104542244538511254791821806789145240773790609781140935837899892731316149856027865500658675813794700022790196817931995591568953563898886163093811505681757537533793734172307477145249896621947799541826980513004689924183477435176188232100703700376578051901379416597447291398461965598360160026536276018126780054212920913166745008156123847342750475444346863624545967566847168485890782260168825978982709508772787622666205959736520655839368360079898006193159440877650633843876034464594335273987955767060367728320844521244897509382259783214942034752559626454255545609689327428856762935031397352555145942597618901935012547862570704536328364129872087612682577809365313079864866754535346775763421618764798274593814809569285012718197165866252625362433216804488724984800124796233072163497973097210041710718890830295423277541403883964313427357154305214531963775137662269085154702372785400925612522027021081302224433941604028173049288722101720511938690197822777040607516350447279645283568552542566873248314543396209850151583745012115269271976268491312292207103648820200183785818551197101627411268683125070858116170787692271398885571573247953775311939445051313227612289877646881520365742433062428009773538925806479727449717236321178247402812433405001645320207173039902272671695529993212196123129605032120268649942273209759779533163057691904614903826302395106223263176110092396334456740880306171981685935412489106244233491762764936940870992887587815652588876535784593845811130489295922032026692716071521787159041738170064917191031215013102406549771546428573371381781362200390531529775694977221201867690032897730793869183466037313499829204039375882585833905438110462620993394252669136194231222440948242806744290750077476428348461169555452303989169021983682426942050133454283967588223937723457908851536302700937289218553992438705838569445355896638244034485802597497537708220879800892434489036845516684554572325601381748121620382044163540995887711617669558516090696953303533124774030336198826046433415026173189972188766737160190993501274546039492206800361492363803144019108018402621090547766180020121879447467245654047034553328263498141825324725077468372448249816007097851894586752350294465667871048467216593869902219866846209126536112067398852305704479180416341528427819596349528925212159090327772539354817233871170373540369428479045768720269304296502535064137377203298011387690574896554167979178057301880572094086796135156815771921822749708167151797351181913259506333491299252881439896408737362369757576858500971740844191336383685209270047472159985655259818264045277052618599716262117760887929736577122502260474700271240635239020972823791384423301169232258322961031006686072196855593230216817658550362318040200278903583230309878369537679069432173552878604434982990668086698465898017633844316017469939863537766988747651293052816851701857128577223641218582057109467464042240214468655712792761161084550551697073068958273075367834562106614785268238935370737901548763339292265884209140210222087073773047337420988676877838202990430936817284292716153925313796224701934901300869501995100206286835758235703038207466131718349274566865278023495222548265464036681904205787476019486838492608362893630552515827206290787974501835974372190319177727348333922186270953998625053717694828715006521469782113070573978094751547362866085911856977144818055844929081947233941017148479646302819666882305239716140434605372298212992286778599521354105598298640751312186803317391397419642898153288396182717061134605341733175654621265416768558405305039806760936086830696418290560665760153944397439487156061064488798388483135699154584169571470548596974920016279427358762782385534930652450104230716589378272088033782392009605498943280445235864000220568721833998291443336653864151506859340327810005807211969176160905967471799214444851372708865296835061837337126704410320820298976130326322926229558176821234114188421719444091579628517270563984623877735201892223017928173887695608515340178893024110341296663028678493445721933847713555111689732174332274189038559595340328905204564260918363063063204200384219361171618863201012013103256941777277625791069640899880220403555339440908969964401622900608913383886250501505385607964319273842279992658702668829943034984462473649187848317979186081148616652195862429535485499655441081305948640930164394803887584598612311207572257423859105189823340527398660262534028826342114898297549779057079996051044361283882594029836316617188181409688201517621263570725708604397303683137207526181084574800936225163201025998503204267011851355501051763902088349673120661832051805170145747101742616004261145588502506021872873365115466034658060315268125840023865485922454189895782152393930351491479988073878812919289416159000932028537315889182198851041342707017795453096981366560542177545271240912698342529486012433597916702974624989982558832856130750685286992777246894976930793857582749428917967504355345667721757809310897257769480351230452941915145923124754145771464507284874518193039362844089362377305715545824479638558369983770805969183840828666539965159837704990751097459531187296061666163818936467021518414933651527096177607488530497612302309587090332177001333728538902315909761388221988294408866227875429078839093556361493597230648961930226771557862790206727913861938228401825785519179568033152894757698503335110415933422455769459072250667628190775405324519512998027140722928017142334687031508552067174289672182618778319903359573473364077307607344387136583645279993079408117598303034148250440348234600617666732728783918276382191022380271127309199320894319825745643041335635519034738690429208451359067074875287548854646264712917734988987761133516859124431698705526158605282850465308848049838973232961404484728638601392982731191731726743782592366373531779755619868073101562993449898465822554663433719068077642658334223154278080856016917718140241030443269948083555956801163014826250521493596539211496159601948669507397059482298622166244897181170153808313971443050416204222174287192345516262266840357444273737597003891723825672727350509359430727480380036114660579599839275054054405828619556435896931873180781240496526999370781291284867537611124186448526753611284747096640696879759177274444234392220327324601443777341784787993475028123440598484974838175302826809762579681894980950454942898129677313606383993453501933187888854697660479299128829763364984258939712609288737750978512827587447065459815178983860508025788653675395725115274604187127098638427114574015287613015671347415010999962210748814799855613796250719234158543536609797281543791683378842077786560936923001649237945182091556840222958881244242855100795664453183550825984915246767627374873443904809248852590621287979030870056892541310929820825324666528944999806500005160549798984769841819105415051266821324115239389364848725645533240376455012367043553524166353801289750540674005040750979651477249768122615929320422150891854612298483577506054574506607968881186787390847120128207405671670616186185679747852953798978129954686694793187068959128094953864611566640420867559596339685184544926017631226573862724335246646409571104888802268096368762419200056539156603348025959470888914907454015871744562727601532031809907388906119133116576162077116181350997240031916390549463420997718055766141131093612090033740426889713564013963397070363230283417368335203686051918711646527377144502815233530684919749606347117013789603035768571074632797571449329688459193069459207643824127556582785024667476240156840928999006637923711877815220315075558978239563866329389535448367345015499161417200934126807302918336766524409941945007607128401019006939194261964401442883094617636566640930427533421660597532979413439638999167457745644534663048908879050407922848089964424139523929196500285430955912338020780857953156673923209287806054502826204332241709482316181162322081877193356686373616309877449063551241803252786299835406999732104287628132995034351156766115441511672837815482203698061982173920833532179419217356803114719871065412488434127825476791095148107602073923793198132283613470223260331117433123899308879316028995093974517750829824026685813972218854980613746614014078752230032176031071209764021004766767957635917056274678733637988734366792710374725836203046199988559031262896822058612021607564524286285329643528073722821197643203203268714956865739551187287870332049983422350491615832841462413914066622509510088878796926956238449023636091114708846515606280319535374141185097593795399385541960464806168992548626353305563107489616706845814889493200959206853060877386427534886149115874806828992686069667974981461729273137404952235285281357629194555097322514353796301667012012803901610403895628211923460055666865986505972035382994324370874484945703345716168839059462869135323245561407767558305229477706563459392655739698093286062439818765160772216107326685871390583681317016511777984211488028299522098449163852221281414187291981736282146504565476817074215285332228473823341547132193377682055476179486777587664988426968093073186322298675075186708599833066891968963094995701426296541604501552196522578687811670000121527397661254470577724608778431412402947473316675519449282274574046546557423915125761627472738417523521047646471653250492214528013755579803975319496375068253165803738747593704151772381212806843589978302007658057905623741296314935706606611872739608882476834873728684580560530379534084900653157179172735609743903392731984767753997550980976297023285121833901188935542149969837138303144883976417511179213498467302084370503480264559289158445484134377458599691278420423881039988097585270269425222024312072959446641560088780349340379539144597219714530360433869131672277611751434185793161233652520388465404648091591676510370986733878494931373526217123015851190123978784318459062156598156097810174841688215070617530949922677046117300837981199314924737460785288147153012822565657093093962575753959893354488923811090487650620934821117588937967228311519317040874119491153972937764618519494347635303602740120375797099800995545694510989192669520305117482346431830129191855682118125694570764730785783748774140182695753400252156714716094092693478938591069405098926827457978443215724245241991236427133558907595552048320940251777370680978451943995260951841665892014908066106125939963423919953951564282426753628518550471448298037438343409360145674855275319917519392943509169614424990131552639352956688582507121889675211054077327048356151835304871001128233243938566532782745470645602689483074450273180415187470430301029674110318089745888738474739464973224164185118794818067420041109205296063725197248133953324823198710204631191064867866049210502429915184542068427135112077000914073122558056323690510452880474519603121207675116194977896757214444368512091731686758770269265636333165465255241460481944605607947168298210940541643204537094857137261974075019732808916428774552226527328641002930483942512054057530882297159026319160419317177077986585192192858905798922842282185668369332535596161177355315201291324562618568686498914110759103441997716520497316760641058511959064732183498244475015812916991323974101044390500102047646356460267504654242631795942944806903015305064508963985109454862372540716699733950267481808830680753614595415364392093691999672540395675434885334385091198497308166957890705963966947525276977882356899649145437505554617904656072628151617128212825200172989074665049487111306739668427815124844426198240275098896571292512076178226714354949713044049204220774282610669373793424722558569684972183150839672170110961045722543173372635398438961667038251865388448494930908919810204930735547512749082333761421327840010877485277577525664369815019357975295821663573699368036812661939525104135187649829357717220794370622460360764409771988684180307440615947711771317984080819695263259148767753878890619616630613779620590364553968505589133824753228588322730006409289668733116878702130202053832502713342210694639384683453019008942324303627488198262167569693691242230097656139858385329317357194987474509255600302230490479167150125573063779308143310563632782214204103032065370520295351874929629756726953028436684074021452583399563023538352261538461709812270805800733158887128420329380681196566884741104035351549160510894506670380290278605750220868165995544249340123097315299705735464277806876414971935544694528048193581769400330562531501197212929658686014064220124686344458325509584675665616095699255872214167658934578247877292294518761385204931276659723885549891316472929402874832281283963812160518743143854424949270677357266504567654620732053954396960129120184000863918485766520062434048885870902894821106867086951455453061628770151763689333575144026902809740600435654195929781610998283277783022382414540509231127299065236102080741110986330205336633693606562818292244719671986063083188640747741076050909515252356126873566855862519457263012624094126935568290513787247657490056672185099063856801723041016799076688260646593335772230014534605525824196408298752871936116043332773226954089033498195728906634693515720999008558707172666069517720023116548146539973679361357664506726743268500504095596925552767778478702450435990237530886099903717450499687896993377752002370922132584268284652801587048401111469880338737605116223211996615088814644317348171775636351156113006269275964168755240648857616209170695556178332342434702026874667407544484553773766302907672778162083213049751745931465319527244850960654148692055154883048446601140585136468824541923000487731947069633736073784989530570384134121347215757346518136521027765711585109369576795911022017742618735073882694247450347642796630016272278411898179764000447788176535234062146990849441374032878609940019246439523544414652360429154337032915121706769613745060170227232442205901451013286985564734826349481381155388602200155408300729861902329269663470184793111306468893869267517373880370805815948457126981736146655371613176624973695588705566964000415058725785136856091098510589107038220386020358371631468395550423280483700230335964101528895171093626480908623742321798771076391952159483446097190571013645399658252428943056908967441487280356639271887322980935673552607960230326711981989868010232299300899950487951500678969333604080728451878479854515274293574317404653886648839398877464408614299545256936686388680719115627757202834909608696077321782695061118247986220507385174930730851420161037744793732959046987671401905748656306457755404886512046217590961787764454513005323445102559736878183176874104523043841388884756751216776849016583984816856081328754008382916581534082629327915713835991040004959364213974958828608285522430496711108356110734522414471589774541668736314131072249307931405405293346244356205683010772127738991108323328354320819611464199047588744740245047310527699462113709023138929928492303283564959821298862763976418464173940245137842105122249813725638913559975926048570428334305809050085855948478060929303343604489379091705436305584723778407977272404550689702622495392089189970533852854404486593561176662785004402794822412760047914268091784095682875573909836561482594709171282512903056052714609881792001464048083675326125544018309334917305298131067906705913910208055167491816474857907642329634459830554062116493569557271056531889005634635677874320368434447816766818818241183363249317089993535397398034665589450105225352349624188476596999160478246768376073758408744521270962656335807241659608814577700564688371143836479008264876829349842514336724697026326516960562604189244590578418497216277211440186859391725702515906289260392311230507088835708582145244579102688507698860008894753978817980913193287467318788555204678505998334142742520425286961113619607013339570091781708315623284533606370543959108725879625724534236688886401938856138864997492306890171534896452736582017039264253041787801959836878807706646138984749120057779105183211752859513601331323225688470003119911281427387008065293307383736386930678916184189496636360673817553667650091541254753777122228833878662097956164525126611925016356440114948028537169066039227877839093920912432800078681855159456556149228641447337075010990831417386011407875869234509161638152184655207644286218091502289349626167858208975354276165070135078843913585303556802147642590383217201262533098516543696722847119225578467559847575704512120387628457210326633820656694945564191382363217198802439488487298286108677055946686042751263425626718364784176226206571124658688679542243005072049271990391946256000325504279729096124460598260530336906840874026594823175267049766275005271199418458244178235251556859084179663795557519643222215744740065924501758360798625334965919552127890418599331691454345900182797476876656966715534815832831963535431535561086940204173508778837879105461480570730990711333085644072842054154525439627491156901282864107237582447119943244577770512473488975135082510230743009603620983491063422408498861677249721773954359614375367423502725884241999457839135934113490470536707887697548397977259541838319126343154159647630725869583685675994754424382295436460722125314060339262374285004705165342961313912023532800193507525713525434632514995826794846175497708708286684479444208646143179560818496720744552794594753594221227501966618398851843914886967689333526655170104867469414443133609106668736274294994896101364273918167519759731013432125085318144424354986560855758587050158197127838542492499152608355213679163456792695594768540850284963576995765357523828927757787281770633264320990703229783138651530374840690839188977266348995484436504085346223299302219880954259980651012521243705143760070518609246847807222008708568835831723570800425282532300793066380378906982767663105815712991449508001055065377188092743805964941634832299137211388736128169315107150561966351284274336094504811186128259767097412844757256722503055466672351253191503133420789093270943801046757260328412506688300254217876062010634678940928347438708805119142681214376422276725111316989906374076653515687585187543937906862765367491300461062768967679966746484556395118080350253086542391139711384681159451029580805051354344257958443203524859580757762111725169911550459352737823479570261232085695362941055407078280366886207555516961213067413234273043530508448316247023016544924885600160179852414479090909756351928555368266434355051546453865175917535179995544933307867720601801485032520420751258681306565713625679847778094764751333150239184066163793836110456276875777614868278854994382106844736853445507562254575733705756880494549977035497177195509144054978666756913128705264939466414744401871811457385145129521017747893364225816073623741221272430517184021679409862000414221138373307560465236994408569441206648601069647367170050696041247855369781311828946075627814123968597264516626146855971317110599196357764413368585207349899797926295696613867031552344358817281459145481977235836031779905755283879229643928589804973551450992374732516800506960915727233199958285615216299148257225151160731806941779585836178372002411324329925943384916447765066775719727942355745275054753489422387182429157154946945095700584597224396545058166774617735508379694202230140317267430688128863014784456707570014540832820887599841966817561223298385724416666445472840690076843595613555137830228346049744401340199278721047496971369558641277403877698335371170146152491904151060161354981242907243784359660541825174646094894699655554692472098131964664092318872765835263436738338508718231696598044653759794983801662428689429733277854992713139361953797171410216281429179456333088048936701343266923769087863867175740387521586589619943532284679455133212441480835789784589379734690350603412703293550196465644003926470785000571822336950050204183249463214147377676498297268967450028562670737351252289953476904013546247253663811098796738526160390296116681525129777000733949684785774844340771242854199086864051697683001427951291445320202047103477330955751244848969055372462853728243269969290051471423993783705697839461830413458496492767478756071737701690260064844363869560865189306851554595991042133158272668890151702337180685324443568633558097380460956937723617814859151181467439497959626537223628127625755304522921508507786498624410049359647657406574542788479962895710078725263600499458016360593568340659739825860608265369723298742198294937745238534822241073611088223606582611652142112269047129494856708459558704386110858697211096936065661667663375035919104303328974671234519193231517210375055956071343874837416167459144671705821262753834177985644482487895102610489253462792032827701975729036623483918103685644186200780279854902279365762128143883081402351003988093352916267899809322683487734390307737494684005372419048111344202900987596825824361999006377668383563723089920813432557305699117119486917244070304312846187770189441411604866376962503911066688890945311493324329392241085999289788381526292061295026689779748199468167158984911273186665427461845586651512707658484275170261789425318362579664684627172666234871243074519191501781154274814779475650329208713604584452501099515613271256448441452618506093251861572990360778507112498225196312968284462173326084626868489149703815570642119304310269872701142091198223355134028554939257178046939822982195678570632775090641360596175959207074459383210294686942908847516064939313870086728810428175103102235539602508421753871224644068751037602776261612322309162414877292230795907316611944708927914611350306409133983894824507063510353480233201047143711686805925498889195595016685649409758760109205598895165397217622094299735164681037081234014629804253057077239814805136569839180446862043365707935794021751712484960556372765672682553486784063839096803440119142972644204741723809337047475243393813684340870246114184711658023621719417134593236908977315233955741778392174041443208191062884665756449307680451907622119187459904901655246885790588612007187323330909667717479151447225110654160623713175031958589379255761189655031912567863904685381268775035254165258340333231868536050403400166432355574813959212405170280538245861680232874010289233977201516749468606678208353716322847772246215396399290146068537163765484976360670744475998724912232450228651130653518563882203865991954010049599658450187915430020326692562805686632717078484402263850033405476808512691556143026747594021751726179335384818951332037483517196964867948726183589437650448330507024341599364738873790237094887181425975609088282956338619259183457761755213150512032550038886771064060409421438598637619286668141504135150675785779392552140189328199224599217081051453846524550696539790100250581396449042489521107182694191002396175043554172121454921283693328778941343215391800271466038051550108943862240710958035243243762275977356119105660356334944367826688390708551002576991969090646548401350345554622927349103962181253275858737936144149428294678937260615472627240151573062867801905331635859777396339673924292141586682669260170406215958776707479521457749809060618547430219416351702885985830945027675631980551555062080232069056951617398642111411490829952200575169473488618772720008955937964754963815224722635430736629453425061626498043711989748026713780670003378658825342417272149600121409110472344825822183277766825017447484939108258228791551919900709655662669217987133543752151255352646388969209721656589731584884934590065280239393391204813740779591532393905481230738808275675533579226686410220302045925112788513026039696068309867439895639443031615473839983939084367247537699318497302393040965027945323383073111078646673336704068708460255051719816657978017977448648644277742269253722507362874398201278192026862912371078290523007429543393810639060934584550340025508501460831935766241270000474924859674942494762569659451131904592094559464077282544150449380607256702179925012244887138623079224930840749807728790363010656542303499025744926813863218244659745868073859880842903542412819309748522422095062901187362505849947014620633003969775840249079969140290291519491892320206564789295171933277053992047307857322144900405521271095920297278530348527480755010110575979016804159967757684574005408174839622212737934434013875608827266871623945341605849603902790705012023964058931652168253133452499893847912078555013642215982733610466768974911157295828951275396487396432342331205155545804842012346512816634032788623440777049720636288385697850293202800987402079676636059815038208289729644283976010606106597570075547577477413903731865409923886141336968603596609218302472839169264972940035817611700693972116244661588939973107088446176981304573251686198751288094443900857682898563285086627541618817560357990065544738188184619147163244001733072027631533755755438566543285252931158818692536831568911756907231870885042717853700786344549741744762624775505039503614446964871543968719899083495171434828781842266847006766483812925406763467091692159150879490502616639597307929719839194258997247968100319986151458417183220747717841774235505624124195302167931887394636794375650163415979393950623517434584676985900273584566647556418532574599427275710114163774296717256731775045986382022593498881357977350890784222951790628529923797815578420210828582171244340420991928566567768523771514464880446800380651880379864169817956607849325452502932900799232571051712216780076636030387168970697586188786046140849689107210961811365463768357794526095200966093219982177448954167491396700826538620219950705248353699032580868313936004449423505929304206742883251714348310785667809443834733722169359743964623137651543881319645385187712475832158847376711390247540969633048372912336009138824590944795264812654872597523657394217507120875382507515562106252064220649409730733085300426527984871668923954603800779375207061980193014709806364168376624390252903307162957811965944371237220794093675937346385784404788900491791248258685132924092131291371258142743086717812784237232984147335281979408206400704694498647321123981856483756902508022263866852027948599351778253161201295538968546589482567487557108628378876949268658834973395493104268747692932052849603608315221096543416098816446199752848460623432740937342980895940266294688600695488201525331909480898767273135012097733187615297454542527364007350758368001647155223902719090679404180128437565183079757275154505470860844324037987386742353635002477740838009467956775036695442853188356197325649379388154054924813154890742103206153433893843259622937682078618102363748907172186652859126298191453070794693307448990704485009469681692075646610916428812965529139974914660593588088116648419085868152611631337996146302928101961912254751861911560670885837165969297167897644933360925434620976442306911343268684670618534314759788869286175006003123138350798444337928198992264236017398223915467571545300143836059050884229678357797853623691870332799986082231335490705230846291715164370947126862134897436639907988024365600800774693160274889829968229488854800730938044579611134317779440203238889942809910095079477141978762738595729825242003312865497984690335861514197298413648398274146639905012324519056799133952109198452995973578943204156174231452691726012812140686236552992678718646083845138660879551940589976527447458750949627605606166866249105169589257312571843934948313696481486943327308534980448256858346361913531963852666010816815944299423205934409566538799299191773807237491482265834548102757146934389920270653450174206614603536321080044458072140640384828676527193221507921924677442826896276414702293830977169112503520222043258082999008722564277506784363763050526253279970169797566012701442340977440377006420054347990616501393921932844499482116564674930423519250403013242468996246233744990797622093111717632402102123869480797910712906498863136118939100400497914501349622821503023739422890498243104558842974593512992960454574369294496479342656765385914068925821573180897007739966566122972557262203916506011734359446466165478813150604268227637745600779762808820564959962517818130666518812161012552809796932063439066777467557654307189803796352265697909092904324754988130254378066515604548245539121205236012886702881020461307376734650525890960905649032958754544375863398544314333205161594555913177052548797381846836128538735705510237389630421196326322623462255166217510555105170646702230760818351041303441708052428305052084104604685934118531862366932226356190725224343703971957360911572331158775204188395041666479641536107597156257978696084118866418885130865202688083794598146254460052469899270766325687795371068197162663445914345027498788694203787813112825457599122356316532103015432204689201703212371134677296676475337212553528937005701548035261609635082023916330889952134272933770402313132520412438627012142027882558248404102360971447434584006828037428695711320899059606358831696916830586487270240371830654378981220947952959008476982276992543932961451429401704183839167381541894262090779925360139355388048778591841962214329504057871628375724109047612997862694927937321077731998368252243831445590728185978632287328954052345421198566726036872681184433435167368284719665640527179930267547738704011581965749770896956871276975761760967430844695527411264327250217689270567755893103186235072553736456417023163766369261446882234213502535627995384598815683838177660324625684310470941918637221101763831887338693157863122849663622903790684681269174286998198009840190470065599034295838596473630989168590766806759363206532735041581561335539297866144551159847790276420286415624377572139075778260356860801033031108525498836663108520751563656541519451857722674752127683902646771634506092985869613008077588633445373910904345836107237165030820677791558367229021551836422550938647879716971145192710632384203158148090708730883682622264542512747253032754560906343599487242911841661248139871009911650390074125667179143438605533822533953419078183664673938605031233713403482848432188708353645225500992546252830990543221176632909942466379148072082169142685788474974783795405727916786160367916932194527746545226196201114167549657511134576994210459866497306436267572068265699499295461937827385586633941899099140943974151375891623978286194775477641496213632495111637366314002143271690390611628384866366216339108363683586950645320406502036286535950722672304288649981366135432086277890622846397468961922630129665270625427708762214405988662208653267664588936323068681569462653238084792873381088559365571734545503440512623055141003712527736485292951044690723555740369243052430093947895069594566647237080250625830752590427711925485630188444402440441144751586995329815879592362187568336565465400062139061270238917509368976297768636174754644451651302638100679882285802693983169094910119336707404022780427768975104623593287121979243366911032350744275903199594200379446933218133237031241386557663422055086005907122096589104167786283929281236497328399386228361048779435029555935445393846819624632092840288411891306384133248639130741090175953194912284427633636183781258641213582564745819611860598087545205733615716182876423740552580553907560431948988426120116596623858648777877157457657049356312279682513163487139290006561165751363702156039716614450392076357639056925336498523605624380507131088362723099954912006033009523195349829600524386087839382674801111050378840717864234273865564571465716900927356399603173746911241483762096568258628298785989247897961483671260266514786849250258004558453444246701584207210018693913874237837936702527170628861807292884709877681399196181884567043438812019517261925363235047990301930731539126211609133990265407206587496735009265513443007881947181251728473740151253396719329291552221746287488397832964572383468635929240492387524204866459856787516009933715524219404226706031791012248389288726627165854765254924359196240904417050395788684878040899284570233085795189870152549110263634971379200691789875800601594672756747408899857154381757416760468646978025604432543561611827325234889192897171977632805433225297748674697477777647161463185129578679464020192721338674552186268194556885762696983055852061608350371281734178630771163347750980366474083537036359060229220610413440338096678209656735879036873502724659183359298177005173516190426675231959048316341943869860978273361620863329168287896302101597388467277020024041425389691572389501511177784741983204209702694849482600629345942271294374558103323551424341446658728565433179236255609120110508527071437035897145607057367053578435077670650691867471099868275431331241353325051911430755522581973834935815597596493400389106669068374920576569707452824439741252843894224847514699641390506141546874246477800769422067722822684757165310207793208856241125242129775651768949928388049642589092644935405338879284579158871351404781474250006958208729894530873861347718084952558313693732284788233795260678724939825941280398877045772643627543270658003381599745578576456613520471210720839846208441209912446573195407489040284794248214113245010772017110901777680194539861515263362852328403957156636414358530663678603301396570443670179686771392693205615609783550880689816850022047285391272087848769615779423226401054903362788224264836587400029174174441987618213905527491829650346344172609771375248209532500894003199604017392592832339524670278631624255896292234335366485731567123433080929113054357732036237985529638179169058821192167616030623079673310262597902000738801981399583266715451230068529800008782936450665492993453590557987034467597382673117309747091704032367077391650030431456922947996479694890698641164361218922515429428192242801724872002944459517901720351940163422191190639802775969143675820906516335514540943887926473327863732780774752340876427412016954011436112320417717932110140978484608175030893423313468282338320146440619354652241044629232310551312351091995865788971854745125967926876760087369236582000210231152932975456009108766034858086750849181561485989638560538689543965047281922574564984579014978179321470485704510467349623503184279931950019855866431831603277994896702470826629046509498836664398429864951979632354309998251219049881268207367323060352908095450484341298723997640989280826868237690791221401940434578398568065052549879141870203026305367936577826290701416012648215716687105931172186259348398700660559874498979900819768001394996175641762795666532141138261219206442039737457446397159472700637082612333604693111619192422459025346242093757554087812564926087646672590464860191693028466426060302797051446884579938583622455196050178007147726917301696868821302572231700842944722333795209058480354722758708079329178877405544308948863759707812076869941619527882295109617579567019735684982995055589955020389468931096209233123470621151639135167890871394364057287181378535703442873517517100978857708079914192794791115743279918670122072897046440703453228131808836482231607049483798577865519935061414033211448013842348338709340031417732832419099004999476508107835367380930809812820022132092441351849238758094613178363380841933114575184634627837984642281379800491533355745926152556038551455196292234318273164459944066785706267387532306885798614005520189142757643321502403901617603644292799106647502520564206677458073324557784036953045223823613087906307361992721031318090578250152597353906396595566786434583379704912868579843090863691859844614805344141858986478654715619927109953861627750959950702427593180970986492018774339438707120614099045570977234994433922776015374647628602176956637076497916555946313015099314572904456734431640739842550047675137811499121006352642869455447744408638362335140106120842302690768430470119959124570990493104647818076641244979740601751511032458854664446144840926474758247493921949960716560761894044900852133792608246558995923583668608636804033625883412658549886147221583677977443512023959029994358231527368778112755190019264524402699957771244752370576933992060263537161932070347169370991011866725738735782912072247027229056245333985542773485349651438944823063035710060249961857837921392392772156792087887341336404624408271371469611793013144126722339741777157728270162739087710358084899142830908102448737614822511844707079982347458075735113380443353240521855118046053212348915711652758258931216192767642371784807199898333836474486067117700948164717233126083193449373015915390762178306202103057944692703511253128397036209671254098198241656720035127852644751827050427767871996289434948871910659424519505064046457422472349732311407913735213801632891123748639667305815393980068366777913545007931304794040274671239185111518875628219215545847633647690974424004965657723113981403028861195688647937186864635050947609715547744209537521770237569590996741002430246883096015221123844119587602055874386551855895069207141721414328398296886741186557356310277625611895575248012283828696454689533296119572535613987381303332166362299820672773187575143108613911042410290192700387670598763119885400055096813395814092390369430498540805972427009169070690795782213384951819827867221918448243149917904314902076487502275606691452324928364381214070744020178835686089250463787206259937707943293300083335339718757699801702219333286041370882630934815484438838415133929176027424607973893113944831005155947598181182906387770543271659346343652960972120637373524957885328180409530844171455474488054096844130808791431332737231142667989684306057992495410456579214186121167873740746155136448681481791116198045650551488903342070602078180198414563693965684910732384765705048383538484491465050175771639430185873736779007563544352588842277634214782293800466574599201614078824671063423781202466269117153883417682147437511412393366738977546508985532757287206786705521344223459587170807063958676354652291106300212215745587231054122548999027853481009716100302812570027314593869240613175798927587298213992090611552786393066415885596384940979833336006422135954425608354872902165204412098683515258604415779319760425421817651370356187621385351950564245709108859697238764735320740197852981787302366155939221142642409553136536616024261326778358757798260398274003365523437350548910727941230219459858379771061348069736694444444731326219421897525137847341153232277357298076759469811824466172821579415011971712165061492860892323711469321856454016172283956245381306898848207148021586976582215335879149447030010800923706832437888344031881781186425806587475779782885585148368355609212677432598128921140045205793417269127591983118259143303349896523605587236376617277876311189642587085693437126821156576493131570318156283321698417302420296656630066923510100272438451879697421495487842230098070793005099054474499131044227126975579573720060441210021568837524332140621758822576744353102692720568820286607378672055036210869328795616025338676978831892257015819336085505696703868744423947826839490618181118391473285526556419457959310511590622003732236873816649674392316391272766208665442749642069690725389421236497101213454050438342165668556769388797994458979761594072437966585935995837306036718296318941971096973074822068004957991736773228680250821535017551593332009887632263300391152109881207702827690480947689099839061118291076296388517614064197072444870156215071810039557326326585768894129736506474792430093792915542273655882164117170090616422395066348641643165834575813985739389242786456660129645611443451814247640972376791972023202845204352946887472074026933541678503635584359611317036900356979756878573622723185027394758306488571847932788288525287514328385263838755480625801896552719947514880231903522020689791852909934206664477470620084041837578673859273332938301313243648910407314715224264187124615408757810027272517902100889055649512153036012760247385439028919368617698173262515180001225507664413865897451930621202896419915066283763604384679152636664163050196742757151544066544048022962590286352925398584390293030473201917670151438542412219221565462996546993988592179428333867948198144935439468913026247746004118560560238382343451225445040081619470810422025410563441965084118473402298215039626104805166802535511889724359031821537476453030133399751579284101384352952155283701442517520713464611718438058794771085921984047018691872850870512614480393285905184640533419788653676544839134406863506513100795328954907457886792596868786553759292038360595444621325252267006754980548467206895092469477976777427183370028632852767860292333188563643072135564634225963900341139398842506188927356342495404468793796298119339495292429940964753976944720197406053656419481438354579216005003755404715216163672395962875204416001491160445183043388855688813350837323578151149787099983867206099436857463713982891344769710947364425916855196895787010395967075585890812846760766620127460126337318845968985323296667630101946869714527915939183485783548803458981056943021404025658391995676826516829582944058660731875967104844729789069584301254812913827506622344840259575640311899716608906423512772710576134524704295054010474316746653243684822311949934693560143856972228255183791666634857990860475120899147448256988917189086537999020016531347592783735018008696308533249362081442317601190097005573147556847279502072133566371020205900363465658428186349910380684760517651202614609826379745442367307902370412519358364575634738150068785193593535558999590015275518813025458918438712350121425889140905494490609308860335405287881668214425527237310958503635839181396020128362720162492190293833765092062253908405318251347242220848380547703566723049550334681312527120266801814999319636084738401951814424604172446899014353836874329026119327775273137829157629082610424105385617818786802873986379411018418530731541332816827225429497287966372886453305803708333790991559910156236017756288822895215832343505745862579714056986449050456436432845330160430918457385625478736382362897209917552303762448315569972319510156147441364761667398559983955072762896942715599476730056211653705513267179395735126766256668580263467757536698427249678379706728203679142880029742520829134934402179737089743345936600885004858974077410069066780771382733398553700864059752133267428895156067593879403165569690323330956519937888876300821896052624009841367147301904468144407717195704455249233865629628491787339160981052718290621828150219761318380464506802588472020872505981897710943912089865416079596857327172111701057399624461993168178449392733537855049468025910331944262074560349094608732089139676189660516346006893374271826877566421705383561891245662735315979269522273359194044950560560761425832003730312916062434745612561716920765385592040356315013317488605208932525189407088396573326979102209396761011719787842019541764871457669697857072311621763550647262440965302297598023373696419948124447726722193152838533281328059786102158933435292125002601581309226994400638019301659950814448013681289513747423456318984485900274434008114275999778878720497118927285823710015399433351953952809106362402765946353030123202262923032903277982627865351934292378347706760707208917261828846722352899122144162876640110871211941501585255679480528707053608433728859483696281724191244644761513007227405251562097246234532943770179081195862936420643503337616751971864414453604826882138334862502121609156758313528361919724463941913780915917235420027447446668959370040191430368274906762678246762527850901528444623905173619482725194770481368440625520129685771200450658139667427115267074408536687580146311847547594820825126552340057119459496345983978476106232434514411937127620575611680684388516830004056426530249966164312772105734961153135274682913907337647986405639608860492203881028175079977287688896188625425240744876808196327448474150326483866769480310617661102389705456408987861233438351526273017344258081883597648434062703326023277329005469015308328726633112447498578347195563537867383680252209399202387716901835654291670928184163608718148113324264728153255643713194080728038722462731652593530130698714160614838210692372240329786792662547649323340210791703502340529608098101595495382670467404967832314949741012464035008846527455499168333270760391180556288620267914562450235888905266913434259119115847900183221801815385162951693070144585666091238938576224678596498852544604841172684290135319020878921533330806030920980156324210946158405137821744589390133416405411836100306379090030451117459947867587440550816099800902296820761433560890752162567963014001062150195748339617022403145767837567132503376079917197568815328877939679731849183539245142523892056819306759307485141064972078099224915620715640197926383372589509265169167541007141670261686204423838039622753966776847907924073540797317757026078814412438934365262836151778309038412829123428124253693550912638702746103493591458046282791008420038789754072084485534234853384803855142624054493706500471531695533040219289020021004378866798148422700028963436672134839194799888447593042331090428035846560868100195836210232283147207974649852899738656950288253325628050600877433563217381175992449503543906262453994346853833786975053078447736178497550127799409434566002875878572518972710228612424619442512070554237645639802561110609356992528033785594316328085173004306904781788056256384837251781240975679262566890874397003675528685846813681703748746015989360253225112502272565753555017172485229629630234905916465325321569358123039433129177472178861498660916615696988991728652661467639909742037233525735960412829517973105371069085553096834072512194413103866168246014777477652763339132581933607935298494500865691034354886455603969599413365163861301817020017807643419139599041854729816074002073006007545142065722891561644723789922957027310287095097573217309126195372606879165614331180545687551503594643324486013374979138702165926019100486178796944837598706751720411623452879434220113471198978147493373691633666931628232334325686128497586435412260648993667776294054400500765664778902902304352942163870401636337477935733028262966468919833273491409011140697342571918375062298324278168952611478775069790978941408318498266602494065757613346959327613648882011323962308728404925622283326128535852478550763131962865847071685120109083160511593059083009605342653423271527636866932920889605664704229758987903588371653875411626616335236190876614345104285822963809554016100445436844841472622627281416623028613857019817079396458361133080833368671693353629160306707458871393865586524288320089498442759473735539129601643527517450125874294066796402017393602214832580590934376456284767789400922871626637851868085957115950247617564957238405229831067220996482085719257765721263556271610030278124287508993536768351014788434949555715561152649416579663511571355880434492437121053503564140818555710109832423358381427249878627302117150516644749457214161888568354554438837038216372855079178819162698927766944386431062400243615465781015021605263362982607307176461592911447875116127292650771464787056957701517565816114494424040082627444932323343980818299959281217075618691763928250241264435868481646087760026652680327882596451952014763079088606898794652677122179211594480467408797657542230795181356772562872099669851872984290433603551684703185188354063641481380498215876180463046018921270641947398356076688868934937755349266353359227573432275680242297782023308444326835593020884157846573923231051824676490620739956779173669076938515330945699740293499930792467008119593216549642370951555885097548420277527507762391961785291010927987984687149228241805551023698246138772033632981318673753253017359459800112829655779581473907557340315214285717366829684503782289612988502868235694231968693934102335230433441316002245563669925552481589504408388247605132292055669910736553610901859896524345457791878838292097957854709785794968936953228501675792371123086124571829904014871350918832736278954509756176145793847529341160420838780718264760895473671533024904238732321523065263587558127841944605647556852395847768656033817319878163519771069682941791020898097108309627821346118184326818233854073463521799307534893378050005016635139886936034324324227743043760082564305244289810714767598002687139545991725084029937867808424437738389649580438888989230754472123186642418202697362255620341426345871176727766061344551333747323314421729495847126281396874775970729202675978153366833058860609909829372986346779156791174215202942661843055648257404848770173796398209963852313643969806843512333613470453159088998958325290645324763650645609431892717577773942150073230334378344098800933894293318214070848740619756985990527364161804154232985355454022937179355915182617400244348566816035712539995738670465780541720791418633281420232532278900456230856053722572012177882370019515659911793320854639220328644104703226367974877982575481933179290403589852054959076874761817643277919788406458085240842799813791995078458048264383181182740842811186083024445682153641574371804390096189951629263167103339376469474385166310618235304217488565077850321674309850400994168546901745622452820399141092700772644924215106891395646846841511595787756290530850406698400276280331290321697960459176539327244245538051226425873724299584962712345164277380782014107691998103602695804943392811967460316565388153388966215196782582222568811336467642621585850839800642033539244100800458630850799284140828019706075098898837023272855055005395555013005493816277054394765517357668341647467989323554078431500569027917859421815157184588418746388991948379138332226389039340308076770022279966157253769873415725458853360267895498506904908011125134746606685511581498042111278220887556301759426118206802688690440724441007906549439368493319507062183362215510933109251220787127445195566696253155780369391543173288889816704129090997939001090541815282855443038239311155771646543937289694175336685385374387859612621390368804489817910050611780855708111543621314178714914420485719859119417876123126124015018277996253944754480811254594026870506347407059665991196383033368823085551815224902421033592011570882129130074991766836102094573355066153991088000490787608054462311562101079441466481990593991852162058820845174496209296342986433661647028445375092208296279137604685488062732994476526465207311290783851422107483799139440922621519638744467843743503857095030797098277945011135217277309529992096986344588998240045771249659745400365190525614286954791005960595826546963130780374900611160207404806657618702010203522719672300067205786712734036464767140522326317898494977246663869326808206197957480238225586154077502443809805175750527649873073393951978682328698424796739659007627797108174073129956603968460947382826345176675615691878481151901032857644796873555257267976296179271352484326603107446482179288061616095183480919307761199154415189039962706868829356652220527983364552783146412725661543434795253319151358857477702555585919229026587945031697220767878933420888869170365247910528645426291652698640264667726884020821470227661425692632755800239829334958521891687597331025226745669540567794692965340096412065494076185587569508354529473292717219168517074582460395270129835660728750578832086558700475572535625013074382474876754921314236604372026264410882671033243303326890114561169057205082368248606329674396420202914787881874664895232111561698212733630109193655136557053033932975895343816439802726042638379219884521360838485260191004600283485822550813070998272527921327790551135790238066504355187127146696161603520418225337550853526864553585084037307456948584846853461826152499486057208319074305221551160138712066318560168116142754362509040979929495286080817809650502078041654546944487531169329882177222332281798912838013822143499688163531013484862238330332405289187735477025771664749404958059031514951036135751074730006180033520022285601302585495984152346077635400044857033015171152909618731970203730721101122301879982583972136929381206563542443695353618186717158009456086988260672421279256359492545830880321994982038239604353914968623079174084440429437489559952034616843487299484328691537691280995621577759727157227083078280243622510747651625405810890423168610404627339235568481088502514549733105761360905328761937224486336628081969728907928838181276856141463793734454605744070080044653118572788424097028238812785064821356195490190166508431309751495610417919123127889493289505161338422657988376138565093488761911795628439484512554777515952776473630942455845718048052383685836904132794282420022433660096357312009279127685972440142272904617164992004308303104819551600510383370672138041830150895384070924235087680720814885929799139749730781420941420372053423760437423731675242083435038100494435260278190502940498515028624301441255814210650505756299845964162753978373007600464365394183747969535428562197885963836901989230098665431865830747874546126417401011232277169062915453647103320945808498392830634389267494243371558885340234502598698581138902868823428519785896097456564087774708170138302491272338495066877536608839821665230118332765847476898780321324484341696733339468669377758127129491982308166139672699640324649696795766431474425791361546236868098635747434418751883028620882346056704112752376389691274252555051891937248487370539063999495293882931393788021687334291632792669143294398663823006099576615974985647398380438111329177404837898949841420272582225942078334364992118911352036639859153011513685427328606590063345002222162237598264029254400811849041232287509225467077853105048040988061598934522151869459629136576868329601243368106071583701123689243306642135081822528866529744410374488711057234120070892603461603631373833772714328189126286693962525911965368900596737174767011012269077411977204994209587174973466014843091570129136133983147429626930789686434282265568361243739602217944071297849712549622821668860724419490329660775033473529587976415649523676066849322657398932307910276346168112027971118602502274527506695268730017775138122106574078556873605808844896863831963753284429214246260687352153041808888782067496830686160866341561168124251514942571386980946006562048865723488356961387608571354181061207086484298359267803825838679734194092398625105546054820533025211204913364409793672628597130496833702648698168106982083469283640258963888541130103010563372472432738804298310689192051304841664981645832078478455075564368611933854250736184936620663407074541086639463288703823566059677236019075895352742804015250710105978115118968595993351673286502500600992499770403790086711141036323029637847499457922868821042365425749244195731415539487576090813831753900907015077620559164997670709609604936649230776097568763735706328954043411483760470474065371807638593722769543245204482674871919664869403462012712424057656919391085623033397025351346005657667410795891691112511813249156497166142271885476780993326577202072924559255085581295586101801219258578869891689132410799051824072881796751140331485497532557621107422260756002820853981713738434505931815503527410274021229012654313069377004045728855769162803508025143979319413543232868479836806823628434707174947657057369250485246190453893590095210798339127569447395608185549263323283560430795987034262237441341636725216307982436179534974744294050585649413367745534243555813656835122074693441694304485936985760125728357520011246638481407869397494552783630299545400089612499657142214414276969872100622367802769573103044228118576430577139579643054665263668671179426814145608640715924415236502679148844360057118696581617068563717741342461711680498049690155978729533956525216528286888616538918363036571044964849954185745559745256686190644146915523984054348221432243580934777238470865821490928267585613024541902155765521522034939283491579819221542780295076843452580895093289167585354543980413238889216169074713294183443228723869151924722364538776793676821301515968487133593745970502366971478931878558921696492074000058643247542359282695137553592186778729472478158984686997597372634505734500865570850517485623979579325105884811074378049700590433324976179165044187863877932714777292839080254032941225611301515316515136776264718207255199341447597644972708598217586444254773873863764636719840236738373929336902523485427520639097543341414630471972688597907301382637927632639593953366821880855555782515665605839242520126650317737768772246142948275994221735561128700405096142508949843880778187906047190200657151653755114972390900791824814296312767067892420366293014023559377712411987582185662074052915197298351295094599279187648605158271770279210201224596000245611657942908129797903291593962073349901969107626411896022093831427197485268659515353299243233235231923830688185597514182688780224214063602088074384165637364587815807244716448389804825486679883853543481979146544235362701011020052484413853087884315897165105766841867324995739057954310932050256264107593160035764534837294561855750896695084255834317774579913715016733946807061799304778536230537934266950370468421483361940892811261314044704296283022078821382982340860735842337660045594583972378223610629911642305081522237900925194487891841291416961714982117224593492437743979139333208146474439810326279351323484157574561580903301042659453863989623567321941138055044143296574130612817007761946701598135012855696687924792959598648815323676956644241462283512529964713459003741716185056219726144925134888034924754681989483012721163114017495055625697553674972255277290105604488431244240870581224638978541352912346202923509939860152901997848685447190080008870756005068694514029982452125064670683007743325044865549420924915116380953609129576983395822711400045132034584783706628351294996117528090246762399519773451559220648036112095201390117149583536368217910609373642430210256478996969455880896854018340538938994957126889075204988381578595474447341577771279897193517411183109853860860125239351490388966716748847671583807936471630280289929554586227919252432814071016562339996538604917439565585291805666225605546259933385643800819006667892274234798240309872421362605579656834602232240029552796812803700793683661553541610158706289699597626207968968258286190703167166016079693986532676778051453589965584908591839466473902247128259802720216821617804549340403410724118966678464878790088349405097982912167897116113839492933365184202110438372028737165280372147239055782441354175471732794475806635047464386171398764277216523385665129136646339177543625444647919830748475612412773987064575322455540108307602787086054762213749561742788727440122759525980238837162841203863594457749043095609225208268456310184872197920184978663730773549326989016951133769354969287603855872717674194372953977434338658184149264695858235664124474397154176272740032611285307042468991050620611360680493451051138959845996695453607258902738628787021480726782527703627786111957948873782883538271419370521584411813555966294067396811564608937525304490750615321260086761362917094355852300262279750985962429668753489364318400479779018334984586517621688511734396771733408450190298680699311246257055374449608296988707884586587428037941940293922555542598910850353735207763892799780765987344950880817301906573104201028094603942120406054790459205830275501128336758734525860166186657678719330833989775149196741187453959408122891475818512621623324312456821891614322100907470782622767978961984865049899111981577728351688127894835223981131748332043557955177372127101676458060452400069816592886785381789187932268519687730185297744800320657128051471862765990846581560873272350795117653087672612490869727833255173622891668226684487576304505142637699915877471656795010272153503739318506743902358740558971559259755412165912015888077989857355474614846053315323310200712808451162461954025712454127476098155119638218039580735761878043468698535661543944421108328879992056921317438551860863436437328599783391286379225460875964165705213792459168655180782125123100187418639318117746183400847147855020226607380837290357232675470046306141230243453984979292924205727177432601790872971152604369195221892015574106252598456534320778780356994621730754895920676602133802538222315841409603032899590930723045979028398398794162591229840000238521259061227741630435027709402290850252538010647158571721130666070582083039104002116610189408349413013455596333498410915384961838788471160757915913768679800248832842810251765845611652014287082714675653626422819108743272016456950193392948976796524669291608966866736061393058092065685934437583380670865490066822518560617122756909490169273419792136985675165403328590111964813375644708607818522876452838781281178549878508167825915223280629261477644507550483284925733628924337761991947315566856801858766294899284972147822692780917165632069632129473788775389181729042149902614759578971444991963818776550479355529169285643699377333759737111782003983120407258957505025372033645295977865837900070993235698951657401172859575016968244511953446328387684304572259127335655206986938765805687924874809285668688565188908449063674615161873705626331183449301326012402209572041899688039754862985564645282738834262910527120792630762458597120045015826960157404006986619530534690965070423031400472922103771802950137961938800109308706073729959434162762711090973629543728449641823929975078020088140776686160006427690477830888473792018753288387296045511068752836324725979147029808769352370885462641966095841316577789810247703927667735370267684855364970303130087350467901889518960299090707219575945235585380842207523732290920551818923433868113400237339823945113148953048067480414340214045635557942554861653500264261467896021550447005831953347161960951858727325042447292375540241173379507038314543814394896278246729694901107577916586350802575615480670865373910937261694679895225896297557932075866543513454904552222762321138247977327726696307739401658916464623965553097806583749134276672330823044843480469255373565734592628065299015824103983599217728375198663948155399771102079065591421110258148859688090143780007403102572636985545473359025930138113368828842709522429462776580999644792852584683380749205463107649556365630041833995447381996766771892435829067916750427631725547771074807658072593060895403497790391974228928174354466750375354751221606629770764926613883816312423376361446516554707896546629779934326652824371289228038055325995897567486936489596071594404907809335440881729181807487696904519888882131265665996138390838951638870992435307753062185408152028173251845923410271115588997346061532153684811951137940395606206022599684100415348580473976562547908985001329950688117041564652342032456201627034322836351643954902438139361104166231435657673639880868202282690474343974675324405535417175218940968722746451227664255618378375608136219692869492791049519073952022059012560308334749167704127101609030374602649149627397849454449855830257171231984163467373225568176380142061530644144606539781943650203509889076220240928455500543898071760812025321029736980845839153100961301280734006469400907007891607546910728279532168020873998849659258384068327211910955874017621765785690844184248339274945489264032528586189297173868921141152078113428417351800111437872574847012279655311990346290285256919871588499611428561695889532868979399286738074404837527400725898414853721879416888099155032360317366712497533686213470147415151102323989460964794269258585597697969809977631132227594992863099311341205127065029915370774636325678834759093672486233373941650743957587275908287129332971569257697651270125269373348962293284720661982510483331694761622092174816069159489678785445007186154979932069077743845822181963595248454551484173983944543818772351931134605834878934600622184792334188324100636805865105902111593035568477349232605170629359876128185730919972327737373213545818322965790141740318992108832411412575499535607787448243506598224755770831512933342031609672499482566943867770233191995846171659309820652720369312385481912759005616742101223842890156229163750473708137043758292111134594697456786198051579662307440125530481030781910710757349506277649790670457644362806501971634328546376846880606299164038477865512168139778994883844686726887844557786685955588822490535502549114934797297098099600311728069109857585083640067462969724507108949109608888365651773318486731824317019067779222638106528480692565436332146993149272743149782750317497638094789982475441581451120794019732542583824065791415598021915311724703602794954140989052068526083241918386218920300300139178078073268804155331166472312278677502435957493959175390900158695174048256261650181863813301132380718163314336433875053725822464036026054040555584840652677865182778207765340773290700292026319806033593340958799167798841551626444841347484098702160226914369502913811456719938896276211204133674500553872927240549835003808869576848747835229029624771769212977171058701948923851103341670101662914842062811922751547861712413966826838147058930340775252472613902883016879320045860574164458155335180238198201996569650362650288172749006139614407742948811869666680946038319490554185030160579648137330382187363024446966288367015166132652300039763238147536357944012944407523577050589913294503087605618174963051031405903225091744297286198092931307699454058033954768946138129491136055491718376576630950826532846883188241501230631115863816299233317780968992995337685044002864796845455078966923628516540842913530901342446821854881039835300336930763061129212291372232251911888067795548260548343796186622888065513905545279354079577000078653873584814732170759989173798595683504671728278832596321758054421133652781044200276530707851428428447437396295763752105455174713986544152018115628269291958794680826415603859235841844520300701046387279435986494488629611619104902590262395452052247043604698653267631809708104640386894178734431076501181929881158540901609192962181076527075777622775885890553241352013222646433255152896265598892994687186861122250028440285372065493822632222456082061177175031982325635963465308618153863414767712680487816579617777502977002066841741504863196646458444087982183446917897795838454970332831065292407497454247985777473484712398793997464093037678013661938265588998002008120652366212533273506044998826450115471134138476691775327045414436625654854176866232471742960983676725303157812105991285010608051391333645509975318907941531357022066243979314874585422301669324416771980147455703870822160068042472789021574688850398987863641603113131197139968603265038286468034062599206175813061000198718337538763916187942548026094313160673502341151582317280598819104783561812773699720131307249137350573985071512734432581524560769290792221462855660036426198932607686024409670627551963883527617735955370232459218138631874894108552282814742459622593191969740141384540671718435157680342359835443773594394828889257993198063378349423128400269930825752198674312433077908643362413251939194614088312170723985457091369509360906242103584634280488035279737059653259927635431669414794178674450370693441824413299385436531919086127736281615845907688218565302681268270806897932051876018856584208934666440444412655671290655672888529213546841765744270381509661051680383656271607083070976992926687736971230107903546491099739424778273260034248624902684307740498549190936482668013413651308163365334269075601197580122593745584154758231647173988988522418532274272655682428202883348419121113059390226303928151458389238307632465289651160671098793430732138644414219871778719474673601703913372018234875081027809743741673283434678448046567632336111895376628282925921598238948405660744266172011639204473910694641954066263503405839265734546423893194280495511015651791643443034160807182912916983917888742341630409670655934104089583993069458761956721863454144053051283356560744974800528532720085747117448698566703784817678467979609045121293506911348882653103753556931700272240877816176852914565154194459924297149886028001265879415195416561428001337047869726990023746982780537048728558058957714661079224167932262889813343153926101209510165355490485797854289527326817195414011923929269921833053172697253461385029616123554211057243718687199320633492952687246167249410332700677316440410520040320355118503580003909263008194306278155056443227302604339917667266178640796845877704951724568237380545958415490297643770531554649199192862911991970966658480074855660404018579737443564009177212016364423273046589185037055053208102717254048060519679727678375700822738190995346069249769798896206725709883277802233706495821883159947405385293201808494873415245931452605080442926975197129759471778075858714776175455311351846202479802810387959430470447635289429293523049458455797119971361362459697996902288560952885785829479533324453487825300043371786898724833873110602541144657114192258429144908578315229836729612085677193813740811044081716334857141481946673968986028310045826593123308568895399137552545025893272935554224718366166200195693801268921158047917324337512175700412554304901029996199148117877848738539314204649096040473374684812768101442403805797473478465766456978116980418983756989095987911480208024006943375072471848205371220161878390933391149612835900167635373547474632975934887293454709875303655999734632262608028193427394949413824939132955608622838614564454120065511865768626623330032881367248055187262948837870043218676525001669319388084972577632179598499910779124291656169545715093566777550002649053641625727866642683265071352672699681174720329111444294940157446958668048917828195139214222382519113619579914123435949929885336422960249561641759657634778331297212523427573813364872471740469872150919979230258319303818255044459707585517375383776685019895451444377929928978782087736664845428073581892420167395783650412341550137055037920877990559064019958594419895741213976629802347146233874113062522628060571253941529128221278598171541373380855314848961567943305917348112893716570722406624915264633353800819995082815538586903593173996518114847349271879946109020591130580738424522899945817787662409412786720538430104271290885962598497705033190878376478368372573668393399423626272501156322837912050497282815492432829701076847606538289534882550796720699315358173885928276353416465139449111552002262814030166747232462285765274996925637263457081318160276526532101881936529407741019910216158326794208842966449029193083674221671200378291987739914334572913835474714831362193124542229509880734645773505810793930641700062258920506504155674539057364550110153715422514742285487929073094637141222147107090019728369028952185772833807482256107021565695784386820678946499559947455775225450605765579453224917320997477705077511578248134007773877386426286627993703313894542347217151434986836054043998344160436670497182748486220415909835654369302629352162681251095279211394666224001461415959972022060904249671251073204832090300021686519220254069732308142749803464172591690169557782431742506182325336305622474233699547709998519444820866638110500510024092912091219012128695955059144860714679429795730467024627221713087786896294769896767860551016698260681544232002736237886929322198432519309078894178055839482684721762573982292269945874407461082617849647373462133387215533136366461644043331447804137195202925665628900444479448344161334400832675099446934204727898123999532023443080333295572983107954396140657997484292391051470919454765263457790221390996592722539769192905380246970880277999747025558978252508979802104892647995682594463396399793836449150505253929869077871377132423461483982519254644521771111415754654103622803048138322744109236877618003221084786246610668930073008088172159027441556784537150472483254092345387798309115582766649187438773979393991893059894214270567832258113812671239839215351883466632163942113252896206488939963045843680450821145338792786476534414120542018368527851833034026501115268563634961678901505560704754172074625130745268153305876899690891127895382933585608393227089212368418298351008965847791441175077212078987992877945224483595951606896875537930034573916366363557514871642278005240737358659382122073160581471478036438118677547398105877715453515430517331399644260398730939664813923363324406930661049699732567083726172238051277531134640207492434446389688852590919255345905256616670458937274539889696301647157906961027120692516022222647347502366063793754866035926667091281329373797360085378935739017000041357500578358332194197420656545090002325099613910971688982588437356048097569702998062028207554377237394299248657428263908618345661848093082521939098501505062786959218574331035944838278471135255220149637146934442550582098675770300640168143682283150406161123851425220020293473734372550485180543448287596955728649235203465486409607159576660453414426774896985486436123723154900237306883941493511739762690386469296740798667550573278549870856025354235321811159073961859081344564664713091680776260882126272610272320716814944959992261670946028956693028616459381147665260875378645656084927652747046293540152591139164286276507203588728472347905436307510709082846206810288126789300570447401902422094755132226553496579515307026624648056682066813426584556698557942172514825111073801760382132583691153076082410312080385745665028788709054636093293571721982276708304297649237383485999241763966781268724453240604631500656918624243820269832702975750814694045353078482828317292748244186241203150196283562193010804220513708181461976443242428902169507508737572840757651375062559247728284320525231959434346304698391833218474800208959143757630289943559318900576780568983044499277827755657141288439294564444661799851373719322845919115199246541983213887485844902152212506819093028613858238623933017644655776750395444350326166311086215694460821516693380966979452976404772142854864453392533358832566181961914110793742311238864666866704882429270220854867292296423313211050143169950955984734786262580401697537506645070914891943584752759758637547556657915419732719199711857101051073477823827051705681941805495697150305813762986909104676780438711939151601062079508306380093154291540374225284701580462200230169209956876716726399821864578708125631792304727715213956389476787696774802798641985244149747097290203231821019317889911690932006189594011265046632506091462731787055375239029327714318302910752067152366190190966373135105971893679012111984157286611057504128326507016446162531518036912090278511035097000429001075116802255376185884168410500742111305425232765462261686714575162533002498121371120760611958817528249150992442657394817287211337671263088394153000181042929534378474277498556523345594427648353172905832306229039020853175086074779404518341393587884519131218976368418946751034672311464879056520521703545013256226519159181928114809274634580252723626124229681726616061930977839610599633058938724232135967449962889440360699448679984198720792629700036594711062652031627115046622277962270413781504104356793968667847545342110188973529326400134290447843776309438950627538868125890750151262829574122096501029208721800603273566510836953781135663541481912396666896881309269600716376563378079721121139030573179554686091128990317580103603156934214231574435834804626996662206524885783569481668744186555569978411839802969675003707996153414010738539215176339234181245694401607942246496358746255214446113147990812964069381442810602692005494340168552525414684719922753877729194444474315288016428349273076413192756157844155899107813860001966536703565376966044458231065401645930170976362358257246535011291484114594550464462804294855057508706809052431370839068645488958531850420377647315042367613995685505882381988048443101729704560670820372535190616238051364634772351826216201796540941576331364196818574970113594013104751928196213809453743197377225608561768885699065006727444003214163664548748167602817429737595680163034598349557165492725526068681771877760110077057881399479919430092597412667104079747908131687437101235920823813510118862586134033690254841409017079710645254152742417580474095179698274789653225247084365183012919512695485360658292819691240822028861061046330996751642831808591945091266247659751609947802409223451711650798933997655612556730305964427391405427507902634385939688109644990786826776656760455452118997483225589255151098983544094724057835797594970363811989025767067894026646213157411012060451318627582381348716002675356467848606715628413283240129289984008345682488662071351751151633657736289567721658618654095991087399630078639120698075586381988156992448209247259828419829133234016011592373994648431781366920085220392095460372687152677403056836551856580064970719839147686573676227053713680650807401194008309437124442502302142785632028728592511621028513209076787909169518077549834806503221349299669161826800822094849400308442990523034489610305812541353458827840266031307741292348277142035697175063956659995410053141217836535513425823870174898425002804329229712046690343650114208283404928619848637833057996828372067231505649646381712663565508892894797665234307600653435888218313665711570928728178780216011437485894829864061921005640706930852367959279143279229296886833835756373910821393350067813449429902019573534229454383707623665394955148294760551129592346906247591128523466864899119445194962807790191608253166093409596437167944483282525568680395346461738424024122998294785362650132099867072094877849622552310564956040365498182148901096771461452860469830681108735765598314045911493174686084285543687206161646886016149339181804069847840686583638699463738068920654891327611972152391307084773247978786112172494885739342826091898781917677957625338435532923530217786292437705062759650284627337415545274327458411171752881261741333315875561907796010305345406563560360000963173439356253410928671755174659542005011642725522624847243862640471605373083510367200398831732414284947052012372168132479371189169912095648498909943775286215523545893863892449864361631659014311844391337971927361198018532650468491602996070367513627699868949425123671403395863440106856213749053275728314266514010573147496702629335489909966373112176346630819026740257602080914267652013624911327402932845081486696409385110874047195010565308522060368280013873116586988293322589995594896914531343559558122237945330186360010914821474113913359756415992742758091746338830754663768215843259634529303837346375420309014795438930344319955288147347504481126616725804536345204897043314781097065627034782628361617457332353266931646425536914460556372372646268729702724894731731384395933730160780330432197807951826616156941370536921530389060276860300241773501623600183720957744655181679977092953449012226278602102270085060971481473148382683981713182382375452624932316804619810118403494125091867106261414833668668784855718204303349490470643029208136172166184154511306154490606287782842923252077626144272028738781692088673973372923353955494533669712488650083014449974229813922200219432551255770337126836486466383836882613743262106992401903340768160157588899123346393941937622738153190446685561420438861566786748713099756626126106030552228540136242316998215045079250452452960067194179282300665711721643819742123943468597610935826127682960811087266437298046278560694815331099109770952790082478447367617276638946543476452194045585193963980529812045615684277910863427652387731134427050004585758731341473620117846176639412059017332428119238152205027928852598247858377290217881254310943553232268294199664344152624849203017463465584598124445877588633840158423783785641475026649217993131358418324888158847396520357591950838852346259809689231577098708222256953460666476755360875365952839754058306638461043596025726045681166477979936041030798265455197356283328602880363114664532999530483297026071656603857900462793622585082515475032372340601268851128725048281206416524610934972623336201029981481889704708741300238896691994545886567849392338267485233247697677805309672026238558201695859831986905187576347316044051466433930422285418534811669856835954760357454206261889072014835165754793048550363957926912761129973543035911738849049634450197103292649565039910122821602587991654390446683965710804271108578210103532295550477848358706234179351154198290283309438020888855767037694547968530036417980778644183853127962050163173211213254423694240105838392813473877752327731524971280604731542973427657466866402110235849964131539912630204631596118336913367975446815541350662074553202205493177811287854767058183880605518077508867457441045818203909393699761501726678631183273638390028514628204838490875058566855022413515404217096180211077106037551919675195154199147892012865507228786492036014659770006331511989178042868611675638605403581002456700788322482883520457102298105817261961397480006788543447782429640474834997001592744109067192670634947929506241052578057332935004373265130314408156786515957010935270377968445164383497907240924121926972677740918202604239048445596969303501109280735134034306483694660254369431775681173924870633920204067500395068584315116765286630765991572861741741389908923020561481691071186632022741843282108081216396933411639733645840682806016958590211688272073745722340309437267659815824716901267772502493554433487535533263526765927479723189930115627285450154790234777344878604722176834307946309157193293674704833302014738506160478327102652562654140332318152043649353325616756875410636111560969218557112893747609799521110405738883729193436852810330180236827580382526414658258184735056944587565803350626583331406408331162895652685648157868352349859415658734406869161200407197757639906144287869097535022606586059884427177046679717160669246579281797490300790507977187545069107243215674016038496046826287118884748810033886795610363895236617884356218033225255344080756416225120002040062895704350413573235639209382592033321945101594344456026710777222977487153923140664379291029596249467767706458827589681731357453795978714379113591290982870642383980247645627065660031384699337707389344011049783964718401924353397217881643544541460997891943827805339010770497541602719424692675762076995144793864411881138650021816750895963990062992413151227862131582335266149595176266715590897304352126611758665847073765965806509599758048789377447310361970219509493145947619296872524056400264448070133622967712667783827220878851407871143201832779960415110344642598821322648015281190893927020179225075979173120450797741646854115477230753955264473484706463300748764612758314642621962672483479330960410881646988727998192467245411803276835500913270021922073092341850006230709961286453368691340150420504714177029359791262459025385364560826537648369007711325477382033910961627750927001486123410858391573964877065654783758189841678074255017873243826251999336515617838823749155635099700409859711979154831361203346293428245206740472678276489788189890539350006660873616818106941558988461904614410026665638657486419189020603183916350494129720458752187947778860725677104355541967733599857077211326674170152430571945901954351199436581552652726997478035513935607736776938144682228423912841635221254081315477354513585378361191858956636833078048683118026894412518500140592263425958432711804211571320575215035675719889255666923748786659066849654289792255879477281164639962920746813603831037249177784772311061584528922064984444503214079424528634958897826600004241194472934143026920615233486477415733419871703971278224010017999591336205377906400715846617498734824504499693064850046777615684617517904356222667765287324541918329154323752539724110240752459557524071338717394668713520668042656262251331048349450402953962287641426201173545614609574193329655596612916755810135681476701994412367458322009582825744539398071340877955311580667543745585779708854246010221725081920430477371506965410827535707983150262313381937098382327371211560818643034861184154614456585515609415914209220368007042033181205431555913716302534808554881617783435833355576329327982024766231303432074359506485918901076454935189182843953234977464478578939262010995481157811947330037905901356217899194230356381344129438568761179402972246281972042579541799957134107798169833926768783939383223778202360667953019058373088304084810161246037795280596793774264191771370914367073157085099285336563070702530724790903237150621735109162493785176129140207134757232720620228202739360616331613067387668802123988007244558464965325950460166548500014852471281198491666369537274743410482532189823385900260480618780422434800963734812317134799598205548717312328052191524794434240192839677771189698071841041095348356116544985747172507390312300455431053901603393930220335035941646455282010337921974376780917654321674373540341136206824652445144788328142153162721061622371726820755141073641402571578651433429802023038689379584642524850287194154094978917244236945588866010407834723038373532208727013908158258577698979882333714578418682965184759367972620662629951385372166422051944871065845578165687419737948937943050417537731013390567980451117753575144391241929202430992440831386905829407109339850004452517438413526788978432680958137884172808358042598036346160415249762789832648266446276505118575634294029485558143260619626948307319513186946769095464142832246110417000853362142339401929143515325906920518198751259885350404627087005896185174196853271639522813517333182586201014449051983065086951465108351970433746208266731937212299382927177029787061492797547471481600067764174337410192063299045411408144539987433404707842879596712598363215150639382961851535875006843346567359232219548915300423491904937159916618049555777600661815250700897971236444511284407132827942691673458960218493110349981723495008929302725047701191221306200579529911649183731855843759906329806531882326007096657952150835683727318539818495519248759568190600342528528570304759060473264302537858443680965761989092348412500078042140021684775616554859838734523383267545895698617454395342339149368689735278433215690547320108020165778684389481011668944065855053146855820546646151682795885097368076834036936616388028449453667246704484852519942297659942784497012218808269550540131052703500423647880198364683114366331864357184141496697129669826661540451717272055455017295870489132916414847202774349972809456780996973181881232170197038073927892659227746447802516674757882502808846254381888132465550764519036349907800951013918224988372901206871691773507061106725044342723551567339036929776978928559879496622139554680717300255633801885259229023068962841164587287214037148958420501370409891770965716476677852997737327093592900863340928927945986090483592857523101926308701608836705694716299056172728248793501416063513038005484228367277905230919048976836682175097458060298269325192867646019655312104916695985644829909112888870924650193996892538137133648074534118306435559030866964521330539621509967488607059426549520198656263940743989838737916001431794919032215522476575713429697015104962616616739564086540390366121077304539782613163702999831478023676268982274788966966970600688072788759781097468616349779904024013504133515768456908728046883324629433983524185139915854964071784915560523329153292507521402209223188599590824328605134548353050999101102961256437477719629220829790287559741661038636725785606538678725206911160842081398217154335277616505048937945111111392498081498947524796207687271600464453198994223914970841776320912476126499663663626484359868319876529847940848670552661066731063253585473342956265821094640268880836286390229458183608144243828811765621866519766110820385355367194609898452098140718609590621641668694550511344998963720921401655656284324896727094610982867418193466878357091022491722070547312588550699486137892778809659668827976998475109235440458394747983813438057962115371005163820795710494267420048948526572906870020248499213888741396702011792484607235125758577324428290706329769867838295484919358166572425739064607132401539663743398356346516899459408979748090582719210656174497562296909720864873882017021557554544339852097682081352935222227912675844131921578749961255034853220405071534242995627085376946710585196388068179571740432388906990363545795169029121327060108347003493592965075864477065538056084412330162083319765671424490789971457401794359757915197150100164902593638697436132749662967807907566307581730440808922116933981776265422453243931670286484636361413784939755633306221724088999166529843631644257585985647426454988036765296695822609799625807389460456308315327760792207411400195369627041884106182177544561061141264457316369217085041341383010899422224271999189100285807900821419761859678995982479193881222724502833365973337376889130641212640868187800264900523446434155373157672794083714542607728167005093526970912389978948503699884703188204592683341723944098184608618376565643137425253675438723583416964920591337280008898313541079158456903175537064147190178125878510288009823469502793944784050981960210962817405113434401589463620391991037832636980948595264313004609896145194660844290462060313810313379184566291146995637300858755107315086427908955341396860233081484905626359859962485058789304340442437298633963381370082991057976318328462835455064511071305346503258816521174220409524839385248049158114300059149096954205664841322880239050746632123314652079952743933409283797722984630477513559624289771880331431028068620487771682483902831058304958651368842857486236420198814845055733990847365801383724506601250401848728883933705983083827324404113408925918655453058208164644050905354114259734506763616386719894002348047490771113552697109342066435733459206846299247231387832769449603866446124164481771001630014672340485110814804822692879442980843278053066681738738967337294829776521136460851334998601560725977307160643375954722347167694234583870361995513316712524129926970838263519120162588448526407050431770982148659431916234817149875549092184430656856891636223992175752925864226455457143873686527238293534835092190852108926124561287743884535945410812827861169672916400598195051871448239679470202053537625340160571949929214539845096209973038278238321506411224437312265873001239766466200961430640644141056201420538855647133563878495482632332493460940296858448097552402177263208940320371389011177645381814540796937991468003347803324174520296046662347763991656243927149810060461460006846183278373179173441295948040813365611279738544365206058013712180649173414619037634047101957766140105500034278175364344153774170836752962308834831862301514807529360048168097402940950026877781343010963352342366645587777271126588866129896035909983430122386905041811237363322026348851158702975648270556998905510829468022897108525316723451848797524007313679943889169329151278329502436080198596824108316450061621221111828708284898051582192884176388696608382406526737483672256325488191371142939061478450111245209485692986972078072303556968878825637741576301905246492941936424064791699089363914507228222589153540276070192716980253661713477759729215731809140373222839574823815871296852116013652388360923880915097039442068482547965259803048030260941329157379276254108670029280133831123152082426944666352042381620261133784827463115532777707626146147868907808530763897042608082729904760309000940719586459308390885349866263161558339808308995630047596670774143124301065770517617526333180199263016523440766090782462354101977777567773210636135058227221323560254090661241811223439595526826931127228882067385953737813785002925505698271658087212359254224468776408070574146992938034987881989782095161656750761406993820909443041087300007132557956964617990877516945955160263382010313170164703423973633400375531493053162923915302517975244792835332148099365172302399652140152417399555822502564988544710550304721271784375088800841300710279623136215796770708187170464475373661489398601823014559411642204496418243253663769739826108778500807648618977731275827551126174025141092516406389289289464231592871130480066775615165066266548342921481144521608628106295917331850395888945204411491578136686508380969629189779941681915545689728589896924121761990639275151715487533029021182233977973036371081346164254511991446617336834459888030476630314178484461781119344977912730007428315002998243556656608950038707934182238312052510776927032422410930083576256463608444238243394771245722895311758697650078102725419774977158541266438416634163552131114030884119490090963516052740176501146852310115249696142510416181582717171420476649483491301214045550880574089387511575944603792620635867580736729536368690703795958641163036124901902729034010311890115998614336931108614748802191547989745019538487863213117968526234360836032426279667259037486577301244115026228500218597837693339174223403561737705934904513449777039588367121305077478451424749983144994571142302833377119725724240505514311293486082764136609317165976268977281496058238108375005253821515521904026274381900813202887080423080560650533508171226954036699868183747832738044321733403556434492878172505050951117193290417652732257502854589667012687624963970778693009710515393872650240687821320412382832606475738220872358818233090992973040805316194551590236987328849764463938894829017732415108661842391210945227587081064854747907666213073787741113169575544162225330600664392195315302455560721095996494209604173027648402610139141118516664923783068600460087841728729982907898507805519289675572308217596930126768192633652377002802071147370938614283840540873983718324162085246955143202989248090509708602880496612164417813744057744485165654338845918720512482182906241029195335839326049986686482283874628900518396285637641287127133584170572802325599071710334646302419384286123321453593887077420013680741464647820149302271547104478223453716879914927064462680183933836408624611276381168251329128060787656056332623316806174928088639316662675470486077148513561813425717296246232365927200609408811451148475245570025163095415782411987555276021359703093958539588056418853955070757331956309439403692685289471959088619483552964348880526914011434898995352850585997625561430374235144597102905805314654016005185554980190713202106974472892303845091923788806186957258119666711751725345113828332019496702002889175893443484726438532963715537223068438507332564871393137040182616472046650484825247781766549251701961431953167083034778816934967307916098082897074613929792313638397724099575448390214829288215151148020153876736046188071254120393216254377247383119996963296471448940450838614797671818189369102537357436750527041905032264268213358466452211886478633755908564244790578414680318879598698270988371228463223016170029151128504047477532655983759695967789212850257508840739023593265684654896433711874137933109797721405694164299281521289181757965236088996133940253663825269398468882175642609596418064277490919541313464741198537557949621125566805525568606112617961832437043935119394916132122514109644567562064228813872729199306313759000362738605559274887416426035115710661871055032076481297288115684612090973748778776686769192197312951880420386318487249624111910387362831986514129954967307790652385180699411104909125776271621318204678421613655163553218486017516884771268519782293032294282547466644091518341628306307578815183692567077144509846678095753637535658510553465086012679392520715032030321712307039884890649522035837236265089387361168467797931309027275371506356664545235119684269545699894278595695199352781841592056352910761238228166064694740635220701956690177566218355001388014363109145121506407372757697469948132090021478006818260651269370908305679039548026851339345255388718296778074245042145017974202685519041687473078741457926205688940609783953592335788255178676644088916105746710837482529088036593941179684508406094097696257577668485962165644274881427486808631694209175580966938159607514175264493139625148400296605835321516091706385964368817947695123590751301352421688180862033989925438708966119074850295449641820001391594117932830643385226179944819940882734949911120270708974146617981829879361730979419293188868909501122439565317433901145328767717251933867147053732502656411503825903030113713867339483701446241587721676388490452811311065749698690840236856278459741979404570390006036372387781889384298653958451964435036819289918172650443316852035902341427517192494750811920173588774087409612847467966429019973076631803233092049959566089089916278380525088246965516066255534107566287522897385878639514110424669857664974280601745114690914712656882745400779679088047975668108872501023627539374716566017853728056697361378901915526725478993115387270556201190756711072840559141594539730917792459645931535037660734118698740098523858384898860758070984803635668278586965796156943101675386281945951620086453341689633104291767247830080633751466153259882020782486903394482908847524820908585793001154840578440909209631458266803641739157815539485878973581532431234916706974764629670288517553323862621023371213433974420657106238252325292198293092161884967949650792068420473962125922267477043675887981657617149998890133398221359211988359123853240590902185204108744631755054696574922180070517309832116575808024915306917928277776114526783055386628614766719390525099441116118577952925121802329733314395232589120923631516604829287906324153076286254358176502239361768904494215606721165364179334182591891960740623794306909799296488087863607821569390876869096885853129339022556997783210038220089525126235508066965737688515982812916251398963690653527899704927648552919673748944298613092158614073279777591724172340166851239515118499389531109943978938842384295048470994853704691446620740404978383388906698912287978225412403299163938625746345607959755248395552562280592175334514138544317363372856781991270788909744149445086280438001495149803659276505316275936739932299413582239172248981192703742157344629343421161231678503406411968433558713351437707817425559701239480384425182787898434784417132761011204472056560687437843800985466043387763222721196628516811280948216644687260547130795489086822498394988592980141250290273059334157351885800236405283102776978296106124643438050734090848197450147204736853169511561771539123478188070463391238315460122264454848621476291902701446209399326480140454484254225701950902914065647143647055720039341800460255058769838173505266044569448145982611415500846362206665521221463076840369477439475903815706770021749290830272770345312747946157614919388282524934551808401638872946201256495302839884015915673222132288223518073219452678009521318292136863350001169749954306928260477517062676499377441826809653184628273122346052414580115371115421130787167061572088602363935887848920452026744885476486919520130140678203973065113453604367122878453864464902844080743765678473516297109911634438373734654426270320674843350119981577099475442053375669616373351701869509794976108075804016475851316138395232489832988917431419291513708371874138791372223183358600070264030033989678008055194152513977806339202429576712974355692465340593994005052456828936402159946985761679234125441869628135443937835801850107441247486019249047284801060047379334192503060542776429528056387730992794687021643416323678756377359068071991971961262099656340272648934217426419363547555775317943194543756134648957781450720719957773782594018147072406417586216601977727501699381273136824964760870074245940338762913819212602257982943060727057239670264839603023175746474373396328376673166760872367523191490462488398646098754527635553011272820891999576002941925086421653075546512478089762153825562108315897572114537378487356154776219457486066380693581351370036113704393079707567228124678796167052980057658501612143135696714711687286166749814508502482825830483063673989248446583703031609629399002584123939982972153745897560826883660609321576537383406229062408088558333836554934673162162441991014011881935555434125916715432677574915627188282050969028226041302507254573975045217878314979074581584013194685249434170522189638975543203175759492560668023958286442967394612551475945417910852886592648228907507721105340336137139060794722967195752032544739327116280352935279370579923849056933420772202177542318641282814531254348758018219148226665634386758405864257690682871857781074638780083807159854784379081229250778842212610284654463515250131819188529056453427438816367457577212662297762144208673746863268730012366711323840133267316796182675860924224279271840244503948871274801702659681415689716891945576234439393661753940905149014714798308083012537698745597144975584092425713000791675875082105469638187621522296945921897536443671547493780214532662342096134967323189258627432297479431540585888022462971867562270684897743924986186860116848825699171072479130900185264412290238805874589568347391967726767781414020298362508035841989948437625776998376106277731949696735256388813332038484695923936150596743005320907887558469334625664853376845771475152569583719059261687343880431114301411892527032427346951823536303825477711777109830039023813024926233610619050609610924313192039015783967095140686122151031332713769072585132364952527531970673077534442306359053721930502833074212101651689095171840499171566011065822742990330882033019161151885302364063815897763641850593709663993419872185101358807829798411034606754686621234224621434765425793925332977208534337651711529734376203171323258784377172805845722029421973482714398429628037671401766588886691284023117700555133530859227197187397170338569248821429653019052017799389239404467941088432127383361423172595604767701421727555817520310112725715569205041141597963524351430145449009199534832728994917130728138129629755602819971839089136332362329629637673546802944996805008143662587133489064287831034618955676969623730336028820542162992853526287657481190997178586030473576934980400797927240777911340033547384780507015319915077137709761483636910872491101677370558629083640220290259918992474064472788521297899365883313736895136238310715915140339333604170425682124711389859847394471473187066931207761864332743575092547258816558620163579859950681067111527311258743436791441854083797911869308465978448651883714581387540235103099313352443368833198582390294648549782001607522217833028762922668731356655160287215186584734164115141070350615491653030046649862578671302422231893069921905108223857863554835753465621908521948011066443057407729860784166416818539115593226512647555784800182375631220938239072202362049333272533781535274576933458718445612323494405491558714624894613176397584930221251592004969155478480337393576553082334701860394103375031734235056079987812763826391999930080447126557743006738792349369821382775037963989721303999552185290240588132797717898399234733442359545503842661318118379423837615118757852904407834624813639054876858506691221595935441469958523241650791554039947152350680985777869582319504427096921532996797414054238312598945660453964920615277526302830310182830228262120290928094507270339629734183136662090503185513299733430339342925971269409901425136904660503808002128859127570054468947477033299647947313879393930986673993205457198091169068816601498969616258814861525576366628738398634983393834667388777511874529797707987454250678925515820865700875873410377681182513820695224756760401180391196436272821718522812660204175159375422008494915762145637425808946829881356724023496130314217020844958807496771334186078012993554575956746335851118105174000309236769133789433962481803504118989743459338185370196579329327643074790042702681153476825938557689114071672975289815862224306886026829860270787311815476425382672211816342136608607544311588026366291831168063698082623991046491244223414237764021597002622052763768678895240769324794461818050610962146907410811501442244524110254061808097361357900117672527596207389195881830830461057969889455594844092084216416906467191001569540423872709561483194673131141333423848135978669823740217951145111126190531424526502930833087726847753251498651349589437219795769554694270134892488433379720847425079492478359747496037314331729448142449691207033293535010405542305375437759198294760514489082063431197740056241296087483057858819337997455623860807866108712305513159206274825742810400975494030952011622469010760943862608510186980079069204415341437920791308743472445285529272778338710116937398880493321002233144403755404467259872228666349818652447295959534223960601649002030729615983727801621405198352541574102210299854562852300583400925979733087001838413729469625402113047069887422699872558447126187263138069213500426229208477481904788098264609025999039945824529089325162340866360894790646375217414340425564036804405474044688665952665896127781734661878860500908604198128101778561111868346516803897465895158925744718323159773999601661470910073683358272267119424475549619332272102604710061524145993194231662226799544058022879740537278729046172798651334654821939359748880974479209481057172174459540451951563696333142589416841187009027990933030181000881629610837169375209058038927630999751637838314469880828153545725754983368355678743368744414732615082066079771960536965478853314145733197297483759875074787453806752493923919222632591372920333714385736785066657375347702959027014664874828784390735698173844960099355370416134000884936850136097050687337146058067944558626969775159143152249934751513713629228108225485142448812317418772160911137614030108603480720705713209415435568132044464693988713700967878848554256547489167032138583593950528301033885968461005767469770593550731127489608051731503641414937730357022364167605507917961812351843616267250460419729755830035269253911243418924140750662165028629620018353882181585484837339462552733328565934360018154095063279830121607732670701954929994390928898321177106974159436640605306899213703791520695803799390404038763825697469240842639854510499570545844660736997039905798170867703765594940667396588146706779971760219525682619074301954758683148175967507419711996665823773082001310895946896957648109170127728573312075183531271709164172551611442722408434884808894229906090882050286422499296356596218888982821693854738543684111486604454301759667467431214543603049589092529385782756374885424659777172097686732183795884356991206790405240133169544323042839267925126823598835181917424466419469580079734780815505207061803032682786774493315202052156535486344720055100246413036397718191741117659484158814651538508714055965330635843152076162700825323554094807972680973760857510545595644849481917405506806095585155057639045805009782244726497903008373485775026227599898428227504492738105369149664848376495638505332755969895340666462832683484132756966277995674402119390667599171282589544194521505930126832938442390871468674567677744133123492437594958589463107666862228492612889034669090314871140443354830248343738157001710540995232653763976437017907001018709999925410540791268736577916607826889742071932087581350774781310419575152682524991021467815412736666433343694166873445329686327379219270795986604998465035159502671143930908199565019808901834348956833644251150189193655982299823644025359051285848783328737148051592228425517182126188936229705290021323119218564560883672293006146116207931052405004131152380185836034730159478659443245444893024393008584423022832554934037211476155969178029508280329754460473876654961671200748654688648270214755952747293662272047649128641503560344146546512112149152470982111604097325698569654208093563658401667991103966282457854878752445023699453696260693715398721483278804516615311995556972356816034382728165072205806261019976582635573176026302623832341311128764870230533027613895197389061304371924272371008593198600067498764734308397498422959132491057075712646652983618813956167356263338570409546831970841911074106984571085346019920015518805391250376204352209165565625718172928753904556555323737877908521447416746969414674503841728076727025244752997022757385655443182487606387483367984263211655770869588569646418373674148925258307699828246285523739898783440175833888441255146142673025900181848138594807575483285255663945670667753419677716455949726866126815324144038623163842564205908763427340937285965203359659526292276573158464873150556912342880301253445935996982606073201130015119881024038815181304958952625451945614081671068265318489795190592083956106733328980828013441733343555907603094219924284988926623873600315873061230038397204513903365510628709920653574443432239671079892130581511726793888558187391382702291908941018362167285384702707706909926671612866283877932167075421999691617037874506458185181561996708607215115992295146133954500872524269450189572660158755816466507681129461292646212898245118292735837415806705559704460456741194156443438565793791886224562126291409471731158241573618359184001458779317736945114040773123147813424338460537324920037491266216892082336747481751618359543790985060965398164808272678851599119696855379889915997146080048525619062485905807358217671974446459948531192487591438920016533451213081214969105902914604159562600521233275536950971608046208512783596139207453073406534427935061017165307118667071341480377229473126374163237036944583896299513580670033553511781740309747253948584462926701632287500562591460307542887507744424147559134331200747694818906004785768777175678623519497742622863743568524008263707074569578960969348142005103269386298863783979323170025552136510444606856827693880701266214268125389872459629305158220249456777450630791788425670825725578643611596747444975165758693364897346034710693701106259671232893318412806542310306707061591717363747390018496445648636448344203648289831318573316633598926751796391504746603845858229644676551116376721245042190107648832976729753542471403901299273407796541078577524634155233869081759960855957527978386876958407792205844225011119032444919071787073377893286943669854329536740659230839484424177321072612690122065904799753509478961182189869141123403405744626644535424801792760280621359245713040624635139547494935082746016225632035076867891940486652925363671904844452572234254822512750547743834856008591287221302519951120706130165461887952420485383509933359185469787924595403342602455615972033392030915859944981818997468402275578087015681672162752082868421678620098329740645145052116138828292982185884689035153089866555909548252198823013458164649583739436336965455780314739681689004372113605617887338310997986596196755297440436403169800957844471537781646178996308239359310610539750006265225479003067371159527485102986572567134890945674533980141304485913788814087927740906474559195329722142298920063086857149372995382266640828056668224463859821180144729870429260366039473061286434731506934765927595683516744284840537872021417478346374258757293021770573776225703568159344360910674063721257806646210731973759864808899319288319345741854905350381519320045774038682750764063770084717041774502781011848150541361178207009732116083337574495015276900517818899580050607856725701653928286762887936077702716475111592437687729237774598911673348522065198198382089902411433719587885641823348487740945212087414766063440501974321042051905925804887340881801076063176102220493889598754648023201276735913676755438739938875235057233940562166995749061374273354422261977798814072381950248767422094313224898547664803204994151334795895350105063840066850835687350787004466309089068458668456248120236751696711006740743679043167360404277734490789557882616257419357324425564341955863520832871472957732294297353988092600106671552184696548104699651555453853685382470326186482495870522078242980622750144737138995208759233595153618909005361764204517942259122349242095228356841379208484737370259146538544232100732271790469049826854014390662417100189946586916707240943928987624263843299531681943197935652576667418345741191728085147056346121546316906552326554617522368703658175313604688900481030067336870857665695667344441502812700190439019699653087390494123829727970096505360387096703785613379037389396336323492889521502159001060936234856994945999711685000444527789066272057012121689542734318568978343240571518868575676465981587919946952448626481988903638907610581853032039330492016010643607876293733257832239329676644030224002372972059329751762650877126415476429149762176153075505351349843310582881840140456367337238641199012223661753804934364391851567622938075657812227013559514448787576166118541392879954624369685288811401848908598071136302969451641570747667591813339739466036360327990489356746241241063490249761626320260108386642083405139940749408568675572900005427287730024003337699246296333539224323323711310338835278619951375157497604466537988919097500275915883601391106916195682726894156068361837131206238206396493007459858107243612613445476511621313253146075441657822451285875973400221169412760365216935151859707845609598463964207035079402411600749146468395366039924679180510947167560638665463246918390402051599784036009195441521835114039148837512478079446481036482601680938515825303244763829840795415131138050738862475283917187285601646166214774771851521287549787970162482558808787443383267699270297561241197059069371736683273644434501988766138031168175302584055699203987725204381973052693432483404956910029799793020194695998694249842759672114941964640517485573017043807769501694334208653651468755264024934423618531269789148746785386203750561993378992097968884681820058726744549129174091572416500281906106637930184941228010653044801150196103409064433984785918449919889145439051688740634432363589110003340185017913909003846035656635504434450975820623577105493680715036303423752706088100347296819823450436926835273666414828275874636972605157728454723052666841641550890744179682016205992934389045414743311814024698546832888290427664628562602777107716045659242820363018740115825316322852789309624869334776114738445198100922707168466518809189501106056773315215651501679335076711342985871093042653096143530367013920143147013747300147225039485018479083772414712821258017965899827806899212832040664977554833484055297882060072407463511668434344491480768632969161684275617750448209818201513299952518418243136652006750988451826788741143400609545024444210259227268416797599935558994750846353219038045445126002821358196522367676576144777436620329990845158222285595991350829447394430216825006526892446202715119570184425880531825259847954034377259891938443151887304066379806901092635439898143295610458615130713914281746944885335091544142891312977219659738073040447689472108149274258712636967971940790393238477450689591582036581072337272690596534504555963961820750576369461046229144782974391952699872522467807188923266232308620985156125693257451526505925523082857049078661395286624055624882844456161160071531900647473582354918759117161148141325892052862027294602953560898487020795263042745649672034508931796865777919316481888705507798802358826895836098119537617412962375735359215789617509367911051638125401094528647012310298804428800011167440279810162483569282089212032046667050963233475408942697211301337141983631050948540558842768592150188744381986926676669859313957526010800958118325265128695651054042978766682952323913904531281759639062655230736790732981059232429401209089056208558632876821330092503356207922263925857652330175875028625936148310934543231627012349947500709140587980334528011511902822234712101244425026057372987676421164452992276469616268685933272331522275360239848831918571847497629808622969743068396821395271120833370005702486637387953047439966930319671682845111469064347707059363568447162131643653001088198670680375936083453388920793813398472970883548282092038535133539880501762943158417468479074542299046393269699827764219796419159202383929429189828760005322979532904715933107580283229624530653150072342246054326774490428655925675797126015546359894598704250716906302960844589437661411617670850693735702960875727396304885465284062958110347929344929894781562476580235523155743597399485536369481022946311443555296068790441094166618706407660068421970164460126508235302482820342469623359186207278942114379972308073805210974988484359494632030168879413037086729459670429332569998621709665522759489583945664806027206914330166139740329690261927700740104502436535303413033242170035345396063722001334131299839168355273730456072973927406135359448285581536285779799039479267286002211725460484554494204947383329937910233180888496967207430535962806553858362618742358303452163248329877290818075504598481776726177920592162668929033843554176619911135695703985028618943501669465671078796462174922662446962215816355176303044016405515418520299574822628736231867834324514663234135738331357260931298418841645609385040756685122573965943095505302954231863229018824041732096785830478866403859165065046995329866541838518959122513965729188228467931962733698097519502379417831656330531587112374898445196730111406865301960003677602930012048518452961547638593914228922511152559416483564722909237940948026983944017070110939631171516005282841552748030150337651599750250666310084776848042488844467667905355780704362474412524792080150899623403476613016980425885249541143791401875393089506877425434188375240920561889557909299103246623391842589632278802602992672668024924218763938973457073352202618283963945031207077747811476057991577892404101219722112774785076184084443930509607050943655514242068416960607870868700898578446736970829153440374608096386803009576214257481917083225524525163956806256339607451466647104000547935350177283040062707156225991035344669743636580289430679861087494339573645685971828334023454396991580189943446021757822993986021383184196242603408618592665371922232534375382717419244583603598843674274072637205105946212620659039608468713828188649111125047984735228382258783696404783438586851167440559289712436931456420726376585608056517732285383946835732565456795858549048167795664130685901523552788109311975485420061978400399567473389201704643302113511387545845155500005445295429484702791239008426710180262853156391101526270123146702152880964430001372479340389979768352646000199979828551256340716386511823332928055001023301017580980011943782302722665013690728442481105239828827893328321317448707744539475052158948523206301240953208635962066414120213993339625334461666471948693958080431717626795741834953523018035362640401237053111360552704764890572343263015366475817119266291040597996598579160558174699739236117215166839405712780989903307279501213198550958996805913747738006903073962362745746325472885104940413728605374561199626483006894293192639989420089590621270447851095599683162131838520252754783464359279553226371981778810938804584771796790246774484709436248086946268766002048229680476547784671412847442986091383379684801793122637807136685807404412978667842988065234821030227392120886852154184988562136857164157728911128985771339911337747252448389754449917095669408695072750568332787531604788655848948719059650424226405390216812488208069297211373269165792000570524803402609927454550230386073989164209231110114566645892672680833794484082303476289839449576974619531910377973927579620604046399860748210385084693262847555078520168264913390012176230554359982566723652948646885721622990119924732929640450578519842052892034446527318853299711434404136836383123850175277564768878054819444070356310373875827831423999844676945189140498496758099084900928587722996834880662597738101772841603168740928308062844454874707495058650106078509076965310000745775132326613699765796541113077553666209916312624768016155927467479416873256866377066758250746178219674843871064568772045777440850200148399197503857070947727743302148552603915175073045003120561580432866800524841198930661426376142556080042144001356360779877765010062896561629393106040733139836851133511230409255437148537734293391015061173883727640660594904416028892999073650565787181927433182291895433961911537398167215822984362271618238423510869972353955031917516058972603016673236650325810271773566253081860947749878982450542038666952788082532270414891085178584324139788954108351184949505091309304935444575157531791527714424905332511974164717351803747654308567027249542042216537093763379259049392615609143070453989760773355327307082628805732275952276073784392941785152156976684174540030173085565215423626288450839089321137366528448231390941251157691837237098727799467672357778326962472292541636408364298801996873244111518806073547396240960525664201209837201821070139706219135491759694177792318216532471431845623084425343375623451492930262099045201963266649102563022282595720785507939730581314836029674644808142530846376250381372434527393192451198332096018858353047406669314604687274590958813427020223154829447059543982121813557943270637507253606319667216521622014572740983048598799384075218092192320352986791334356650757355244511103764659989533289539349728943670465432495568903788709502906031575294020851901646612299537276824711047761221637012292955299521682652259371114044024905845986198384622646280814947623161068766686762134646550628916376026411006640258290332518081217544718147675906652101870003427486721431192407887994955368633651036856770512208799527422389882418109453626482789887869664473595744459561818284573392146414528842215616027552842461986787512247724530607381432371141647028925634243802198232256453805636444525704000228030083997362541201421776813686942905799340395589835464861759169584473287708627295421915410951960395497932506225501656106098372927882318016965191063202620328405280782091268807811686261384648591912711470556386287849136143466193524595907995290973691023791372511980076253202382076661898367870758674159378365695641903592209737784710185899203222138626637372050401153135587497501403936951934114855790121862539069748854394793108619585308513994053529630149612867087628355761450738421577543284059217959317690887754746216734834504245922632230854332319969993978295706435266888752576639604877188166514734371788378553717433539506839022875253072925561773160695322106940612319999615890647976507719647606461812490439283041039474369723810413980282268489721883837638323240918010429968422602092487299982157122231937041267638370867440898957596167612083046884379013521565413830326731478263105009530279292838631843649169877945883888974892036748223041142636926892604308904387202139759162501451380499583472112624797460906042134955284993947085677225201968403035535113280834772317896035716257846920770164520906283446961437528433592571459091978115165497903039254972049500513210615768675334086187863728287624262792907564565765817117431204588800241020647010357153073480869926084253312159464053749997308086516918530622823859721662721369216491631825611192832727743611957474280732335342940728024553567736869262955329834054751960417904285479617419271146308109441984526553574004887800792958419878282550326428090529227556271906974135894649004470224334243962688779290060968562558747883914453519698098094172704125011500401567234341097028470951138639322794542353653412513957306445150679319764372219451793381651609254141576092282489897341743910612128092974131280876750138921348740832621838944236371892303063701613156970337778362989124272329210492710141396483720610665162669644375154612134545322984931712406295171862873921385827618744328117503402617236187014511581283802660008895656899043097034745480384759592698951913581209259439025398930544920196286740103703229685102052748529996572189119794506062450113301053824918358069132264251649795767286402651351750585265322978118400601248184396595181084013775990772966104183307575864871668818357769268540978489287870232734183156971634988306431059593372895767151520970918479478345833504030145563534419342425298630914119854462373667517416092982423600588911729979385612144017553072811857089096544359118416218278953951711273670571339837421276026151431672134890512606428005212235315297013973783600943909591985982441321720205871471568756205248396642893349856678731813295029700787363799503770325632865589192570760445332750179906463163572175032032294242309221524121986288046054464313434690543717828071137025906758558078028707022374467062353818770144590496370269375692408782710920568522732022121167179219054833690204887795375089563928453473203140040257001924278896778291537054047887391776621316430688297610655775412938450953018926968980472770513748741918663880690097284075675120495213359994036072244766908365977998633261318606534083877487562351294959930542080809724474681968543236545086398689516001190338973232531096875912390762620928641474156151099017983624865654488885226520824194849117024361263490082805291705169071621978408843871227623994965062125029723923744053228707109949142483810058688633969862206553584240712927555313050160612661791610875854683122030726852289136263419846927702667992234548221185028774258942151526612072206224950683196233219513797053268185548213332127506986422491114796416356619590091008426582651643712342212159251526537792537646880822484851618164657700615463450288881510219945869099107688225116818591740594081653611982046922534513453548191727185646953396681087142152874387373394109966988034740057659769176243779438936014022779721163793652706718440756471601496835687596859871616630905040331843682373362922338750685847643332491390085592585080735839337886120772990064032653984069412072917997641313404146254516924337097195424710494763818723638826553235589898147937810084361921660224519856433057674730759552546021237845710796558066412711011788491122280710912087298408205049059573938673428898392975593183863177444090312344464690197898910339075196058855100562069112648295253000290569486308807802452232195389472920379231478327631606597349244860517287135223103909032393746637199016382793189871487158005281285021771854851106472040928127063804041341140363905880893723653370245958428789780545145183349806853119209771468608287348968413454598795502203913012737971797262808512767797364523256572019508677447812532286378043719594032257618048228106927464190792647725836061730376434586250874712057045650820941635657437329913180974446469431639744940820379908623499630383929300878636925552327387502602459322456099057361442061067516891984243307632631263741871717552329240353185693686530486788300306557742056472173362204803306756193923217593147481463171781123294317125629629858568712758075281735949992322875763581176577501030569201753824738131069897405392896661211405692704856347660061344091877351061387141732949942016654597891364351380189069547677862745006956889403178651981056761530825164911742149132602639101572805448719484070012729340751837984229060303337516144339936769766083086992523467812155815270665253347464705155461175292963898808397616806702103955802257215236142886682747191054049076293872687590384707423001906110271598273931835806699276935653381815958829576639583375720124044947362804387802863593097583367297801884129715206236143838635319600796616356860098625676693086662711626347424856929268733455160812441647733856090641462216724827304011629200516449963942109145720289279371966807915662630868674061363859043364325314648016280426443779610431904995859680358727677643668519519966609188113692218117637432016736844486418214271454936662779701789474410929406030341176453872352418276669675693678812654642568727931698841493021180408615164956715351308055554471359448192085121973259349959101975330123677925666238076740852681909726922875198036304110617065425887684202809019900481402350893988319013071526262311290627290427635118985044428012783681913578929342997237044505573818770421572086454696250568092489350868501340316835242474523219896414870182226262309782358393120427259531770169623292186086252755331213415792698837268628740549478947480379157222395399371672520397916272261252509878261060568984189501611358439187457275592935484319403514021303859898762431424409113825968065583057255413035638145909725171834378453659723279143552383149190799504600787809850617229653207330185930804593589237694891128555089665716707679695582391570816615979922523750662751192886544390320702008869531039402241222019043120663750262738374697545659150942356460229706979569750196153663411956376102709566392181175270722437433470837901667930711399351375931797881967028736149412625213770612811639585780931344657923595615462114834103001232629844331312473701410890561257369099444335400512426898623422200245669711489154503812945565961104928984892531215577026718232212117975860505413728894689661816709270508934398221230172666539770762151183739605676506759153155349492288386620323959748975615947361611657391585782257454032102598430789654631006636263827246847552603919666304440582174820964295196743288890139472219903380933095252033232229694727863883703446737872598589551607748010396092278086152754406161975554695715515684199974493640847725728239534984484379561373323692051335287112647558489527720664617624466609483114987793819412320122599426130634900191151184172746426818566581173515777552896762225313717474612606052523075789422174933029751058956080266743641666185752504122704248715439637188656675527439720292488425597723121490457518348384802280421638395567369744531191749496158287335607248617965567480545403392466987057791829373463656695315291075437640970999214215651950983530417240872462144347392168347888095011890550740683103908141727747467898358984243253148732221029999760642150463076032661128444471771173639865178425511011641876761208081427141887594617006168039401313679914449245628992017678487902762138417421218551272129099233471729871034788429644831374966243059699615519290532898427975146384709563941547239466969960962535071274810150606303931198950171123942811603302492663132174830517541139406968027264786739565681585232874389612508481070103571538526142740632576795753075419790376678194963106377456314661233265222109601005789021377604461178652787580087783969231938335350596063562171513768110021939582549549267956264271270877255759793015122702062350032264100514745582029505747231397883798096423092545709770389332243316559508852154857710152418541125246047739437948235482950577584426297210937638332436836478361653852267482890172865081946078943186001902288507700525577053095633827779577749372104374591763119703634814668904550415038982746988659422966850399457726469498494482316627362965462959306061805289167774094277063942081717882337092288789128064620777977684904147657397543122753527128872951349100610893977839634957614532472398838114064207076186146522612270024528804331990594378976702444902975681779489186959815490080741603770652127943343992528009912149160309941681126345052390721772381092611889719357808452404253031764294919153925894918365593236618643322002118864257775250036647588378811546877377775045427280647520563813802844678124935213578273817752950037351379850586540318465406007571178072734775086974170557575399336545119963906263890285284326915742453377363321867796275239215349979979812172508769798598024042750353535649350265735600247046342795772227483843643717791947731921562463917434481889926024330307114426708507224128945598120275469947516000722719936686723713220359986875319390859576798881196262856473481279616555793860863190456235303771099001340125656498970707072216403942825240031219671603128088563809879270590047931394390749520901234888003631230276870072099132977370863924225366017379316772691901500661557385181856528038009398406208057551399018836663000530827146956089869368792938488481901581776089359291981735523050700084653069902242613781384507771372008848092262938427781490538775413367304809403268063458596173870673878422013722594826229294175033963779754165036763352338880697961262385365971690093302501217719472023860987138806384034380306030364308248497536924338990724845066659340183122345109620588314899501768587337676645438595791929665288799701338940442346322851177774253515141224643464871426842649373935369844595313366077950958408128248845867541361981641577958848559769595165262821765638453081265949972879435552254654262560581975724362890621811314367413556387505113871808472945092922985472531043581091379509794294455411823657254785423540920311472131134074128336710796533437849166179339197187403667708907824511314806302953576111050815112924353723141995147183047222708617066905450491482209993230506044685295762628796429862260420664886298921720258868369809655556065492948969631707524643137116476544247886491674641354310657502791091841052152723607864955136481990133337257348817098904495163506220673780077083521378192026715305209721872420800507540820429998162857236455444252602021682235715632665899077595194496002657006411776309639865804092603591627355874525065514404061203723323252602099668198726748203200551557860257982093180524119149838175507215697653650738671802913632551117735982906101274155868773335860436317426273806120884145268660113505533560192513655798372009569754618388349514437346042696456455820978472981403721327939907547315763525850160092407510868369582075679399221001345500998095830030675377523876347541055660921378887180709383985166454931687293266899591947395199737238368433155260579989618422822670065378494777506318662086269432237185213440074096586888857133816967813966855278152023772319419509390233071220936856100587371693516342615207965001649304500022899109335587693737410035624889574751100935067933710806424505188837080503162605901351739162128103531988548225416716762817588642546353126584261283645378543278177512057546357563976610533901263638864031899995028999109382305805367951510135049827876282993822333662360999592382056721464080912630058669172552872093430493791156895131705663235131664980349722118142873132778173178764797671710529548918310153622025051602646061202934988975563486101502598027431534052572853136801175856653619324481664479416537841913318232473106883142955881951509217782618361724087040607710713080282874309830096139242846015475781679253072115648034832740275097912266945465044089367969686501496788193550352077874288119065863847185859184922634293769121622093039595936642880573383377934146560770841405227952417022888663723964618080389296703356129756784539278147581098091584222372667447733524112582479036940964414259336909768566992234620539944116941678928759765169965951719844407539828994272561343074834101580864203063388003369676662833043351784818477658800690889697414843066934395194746019291489251400355973714972937641736829156109149758602612425176004705129271446180371138966095952052094371780013735574262883809577675565536599105848196765706398839107467512551483827233155227638198653894472485198968047632116463888936871624512805307508696890577375665030168621275703525522625830779673416413521637212695974419308824965161166292580271842726632875819616382648318970994927479402078132727561875543857532195551881026541511215974486175185890878170497454867747422014001978816901512044800650166885107674561480509231504327009371829006937285842299546859599634052981652104344804556361675228049558674415830091098115223348290304551579758237374428555055478942604068850393352867827938406927985430758459149395258547593088624732796467846965734040608454744096133890315131315799106757676623382966651362336317815000441317818141090923481803468735142783860343822198967905509269582610948683372765048848010124399607862883716737106251648426320205178022335360584859323998860229609923929764205296298387562870807654656054045599805748612356854964051937789251845281215684115230382879164474074100250336115341126683529245819254026160876706433855255394146760567951491850738791470077991869593374877030276706327774937458735925626315735723468164014850632637206149478496523942918134730299522870159965886209288335941560503936079893607385459303147348081713908227147732993826075150865905429570993870006168379352970190969797863444904200196457235390002341126127501542292019988728045692782739442612610328827096728681453995517621448029606540128916965907728430486894598219765589230881870720409409346870374718940116700892572682969695614042238875325337826973667507623696004770870355745951159683382014034162269046345245771198101067541439209491069532434446020504179344992986293167398887849055820436822761050855538407036134921088913889308931203746144354609316978511926837493980109969607510236425855302657361843410344690406283652558712263191936979472079448317636315208643302113095908382944620516874400584040838894986293008367656898852026764601345696720972968743092800546345411688602131983875534647734818991971733099669516084134264584196953547965360941262927376399350069176750372648115908460786803497259781056242241501744856063956741249365564055900292899780779404263754418705868872491798609991317190391929670211769623059325386418645068425423824088607714721722879454071483780182784524212974192839461375653202050243739936814054904535126200927905475457167859364684835810131734231461801691549817617792913234615907904550276213101488222153019099422520909374330356556886831586747474997474995567561064013018420389140251440488544856706040181209275758133049166095957322382902967392431196009255900018864706982160258239426591540130398471410361444498977494111739722822846010567988867811362311938039459834472274308322766439895275276437471815152643916590523678545517663066028392533710433048665944447849802987797494470836250775420029629358906850106548198398913793295795133666331316057515467215796249128394379003908439433257372672588109104579499681847444042915380180811148581404023887659433449416060045877272008449438993508439176131994588831688429283980459642048782673257082284257189221303062407828791628198678218411746902562056404061360620886063757159679910546143460264679010859148417330130284756092239673754602181804060752654634050673466333999832810503668085528024496071065688533445213207226134826265119748231771489563123194360329742697035270550409940024708991932314698455355710361072104407293479858742406506494971717323338742140538724830839516798376101957722905647614841525154513205218625383974886979921747033874879715584648719921238893815194857046722571501640225978137889269950382865587993238286481702203692749334967310315829597771534798759594885737532557874465214689434882657887621343512219819437382130221011058990089136949874854924219321674143004574060681032655996816788931852425177614758472512472363789047023750899041251221480745455553999873705509996371054365010707950061592889014446586757203336439695832205858775085723607731392420936727567624230911709908997873185403499838879908873838096537061997496916412687768039569721371342575515073641645669853980367154670528019282168593040004021633543580856861964350609723963393471984797126318172110222878522862802673591987648681107219388906963399529215675185822723552381333705448551864913196758196156784804822531257111378223253675001485360123821535021770746921096194827351096499537460774996316794780481781048500619127732212484549644252115352609239612942554778866657989751337821623162040402967462488831238191451960756668946627942465136037233933791155858595831011564538536894517111303430829197095151412713201677233682310192488611286298646255169236222346559655659899758562404187972043182475510155992423887966046678655033998792155365745570756072795547286787755188867360558781485789846488853377906484712198373004950943114289665676587682283898466811966793536129570981013224032810877711185645159326133939420552098886222934955860298891332026367210499796925693401478461061571427206348683938610028637936252130576201959269699729821196410594564179839509900593991593761287300324891042894556750629518573936631068994742197990903284284834645086655626192028345316920528212721658717780081272536748202242088342905891934696120285101543514974526215604679295249764049781502801279910239384423507106845888253634114247540808331214754516443202788282871451198950019215287318361224228335691811964063870012678984965991189788875727200617236531888392500691890227188328816936813956375400888417093476801242074513044958412939179387138358559475443791937338617809818871610271311047556607881445057767008586013295871257600468130290201445777867763508424882368753017067008467549329197980494168271184961187692473359103124302096267667545792989773980253984819500424330335622846592295952189962053024409676789067863939825270443949330012367563653684925874308968030440488395052338680756143802677677336937735407434232019568934745534770240440285378675003219968753317586814030389092998667017594512686948436468601726882685856187298426471789361252357963155989565014008992138257484370317154404108863577568135442852593786012977764060164815054435643947784232118353307325828441349931101957811554596827069041092445440987531115145218745692959739252771203024509317157701771463757445308510774302705319837735509025661628712757317647261334720461262715449118709606086872436678024577030607690505881837006308100698147810863641137595397673949296282219402592933146989345785809968809473939411804432356661216342006506378640139007929470656655483570741428411315986489292650912808773636088328445404352778362767867108943836561589549904906243545114144276776419989987361317633844753038907133173260600788581272911973564926539976173968896557977114813702432580530829003923443547430429496605670906971014332849792387679450343289684163809938808601466814793352836321332871339495587163772441160118428272867061765040944157146527858919213423071271581225084493628345467677562475726165243386835421393842401250435156050901893043378705103643984165173858791160476306962225357488809287711663190989560543226478367016236623362610006026936821913063548403671656749360304920569130482023244960436210448961725366644957945508611290160352624667093797151751987343596339724266156720331273003259714582226025943708902591375202902323751773324139665356251253625747379182958085860052496148179420842992265038130738674990576963253705624994062470405022813109361044439575192886556983258979568286351208711017974477401824555447066640005345970879091470644891630594840549091522378906003833812538998831983272747317807697460445614362831027456102987026710836586084237068372106052154738966550655125341028344940050045171982921019956721743634137463561230230135116226896856375688542953039864077297917452811693069087631685355345120034573280713275899394494973341150752350532260315982502572486658844033406747301257946497485241875273966541569528548675383487129708505074083257437385122947209856774767812822846542510221717353809604440799387033054617739673591110628292737212584180110815993353284450431387926669942206790634854027021131789627146481934387442630064836619953676158403123052522602617637864934961373301695730436695259034307965040377685267730747906137928227519864111769640471671153451513015411611168338155414164313084393193684074364563560551483711142195777592694268143311002660278417305233019520333139725132220904929034903961007946503856501960256470210310336180391478412767227867039231784376566268411177920730405654233476929666246710518925516391118956871140264524759605617741533289428840178581299207030806333240048096437880720835631827838949794381931677151684757601860220228245969308476180422331455473429542250180502503427106402340661372487848297020045373438897059858931385619031311238141996280743837356545239411892190119797000489497601502404434485704195466393156782543191105962243456217464899782742119454910609185732461597266384367686979321378488419480877731875002340206559806838951872981114869915969607192676134668428183687112999620549242048364666511483642934254286769066266940914672509929021314796910063921651221785480738052426821113401088883170814185984390870172255605231036940483009286390275865883856855150831686508821346848429921134429809679296278180027083076820319625827066523867446962702264224672549905581062378288043083230556391176451450015550252057772285227432360599775385212176100728811532621076659045881432163076164284536752141800879288549378423694958022256999144818378266141551577357668543926052188123784563024220277217610526316822697036046516452918188511591163413137048165777881098240865492190311395735133057395585639769062270204068672002645394246173269565855232600763522218892840176299378127126951595965314682067664094321717530970991673885949295776867138289770170934197542619124771696767845100474053153346584968867447814409418306092131080079634161581127569372761062330665276296505021373423654186091019293178664990433564853842092413022107928471334256872080797140265082906824711186790560328209226520482665609551930971759056412965282616544289964620117446554822180013323612511594537160150174101466401883102887985611487408632708853282652268442306815697340802185021340251872533092525390148468173284916885857888609335176938596075505718290761907845831689599149732465349878608040744895706468606131488292836549330148811874389707946550194158343198130189886064482835152731391653862139895576253373624677076461187354327664905632140004561122382398630293181469039568800928958091619393841053211451359105715626303548642392215317327654573785761815416073370517930044623539142343985378488721855016453059350666287344226835738930766592555444015790373718849782196086629938255017837899883359491488146670036723853431781099151735871414790652191397750158057253102818432816949190479353737773590109127374385350993430395641793458861040157134859411985996421872612528919488935805209898131568124375184111506310559586976795669539329239010671826274775533014103010426188623499292344621794652758908610144463668842573410032025280438741982207311207936554363768922720972957833064635826605396940445835399118961096905262531548374900507615940065120148125250141887585556152464698557600395157133012261564003588571794094941929620830453487184484635114716406120674026717261405869709030639461055219041167676024333646353708085448863609100538448205228641359259986212393554653684574205726691210039734823758200117803064164015620523655914146134313835046744834493965655302035306006169853475893098309129205911374613548609394197279611660621559070729010829175232818008125309076079068656974627003468576362804047502886289841847670856760750089505089044257839099846472175886924484164900745494400586993261962011744755426668515024139026073148856194930835284649679932903394929708447737950551286329329587783639434820324027141875128785318883356464032478462430163493283995640354602051207052153378659639450830168987213355743292682938147362286152172006534565879254449009309605215120388735833406451655435398469294760154650928442241968811906610777691255135326028069214156682806275271156253226131377224047324670727052331447049897808379223202929907656027335962721973365881343173117530238388742253096297011647748941838398363128526444422650129214379259521496407533447130317641007620312501529977840870879096183624859790535839378266765265047021449307378836825724932179330462273694871562185805339715688230188897381236861250612722917882606368603243463152206801479727998478032958816016213840388334072247814700824517144311900902983579160098985087046076331054348295614404528259533042018807245614715633900737525703521382468545511058899087268237792800828578615972852986402393625956578505990161269336306237776127301669241592293000375942325601284707960275117840026110924309383220872445584346748087086490490836648164673321056508043309560146126663141209477021028412385907849516447610856555725328134573061212457444200085950374302538674892539467379907766668758709797253719932445630234011872611302657279338817957472146925641056638402218651513616685353884479006139590963924218209537624426167355411641866690151165350775794576494744617456591449729283197862229211824045860784042553287991709797347929263134511355033286825603630239176462223221542513939952321478183422554155193911487722775869016729037361360187906259042079739442359082329713930299786463824887943383512249277213389724277117243229050401740953758323757023625271950029392324730633391102138220522146229951741403546007959979288390149639209961691670793521754534022314701266501826458466862236453654255630042284954924868344416104114427425340038348301280988700589878422713827017493550284140245259803863819983142184439586170385735077716808583716762381803166922073151902466190116052201604915390268719387310525959965258834336357490121615176924229201309095087720036492757334444479026540618327229754273773481188503683421938389044191723265551891132784584834428202776411045807558839188021646223673137176187203682626236114734757631020918411038186905008293806030331106040794763420117023663988608441207978579121601127798348017316206784701836059081056536403630172897870516857171815293164834598196818752906743818966569551933684964085742350297069303287043267798092538302458311291401678636634162647181415730961724437574023517543137520552715756795066938453639322058782324281172875901285165369233893194123933525205419277135927339561456610393179163783024579030596057220727735141883423705011235482761103994356824406132124390572667312247494390468295150429535844486749258392439394472860991310052750550405880352108058629155379329998782865444462122522513610528600237268237681214569726664597399083047868758250842720490037511794164529481366410055411322061248846972949038926162852724094435570064081981260115425936998641873180887644981141660465095671673226419478436564855051043212685973208612135965032908965058953227369504273783891196876965852352937631406463356584787694061805767062334274473631784199979169205321507058254286722185947993446572562869253983613635109501619610087510309614621595552778698148495567096201769719480545803155069338082496406190430625354291009089028739949228774593121821087915026899506675486733521328222293980256491777945596567654309734788192028119995221233047946266186209525369205853681971292197864714092032413694430160146953841289398259565496260607312209376964368637249436157918034613754940379265312054556887064735393199039633496828357302216605569762275820977639548069885645270315578307401774022036074452157849139755958984203004223724550623997935915414842317886984265478719011231934700092743644504953754144841100717492369880879241121043933290617229136026131411581370484805974315758460658458500920242642115575499325687594589668088005134294309692385731407680124640644295216157290045443492739346286951964911112881151612474351209942505027166223307645888369868829292569686878882783546119367674564454815754766418825700276488694844079455748390953970148701728104080143206498606925035134873005582204172681765729506148088306273939151388031533196056446332622165475093097945519661437352053074367379829591503733193624752742040368192541126807149941601657157391135633799757545732444620327246276598102693124542714621851263715067842272364328513452247189274729440464403549708110041725425171860078806770170342024328071881360182969028214981175185904014696921297881981853524295125919841526077311068710076057490112860479949700719171764987403846403492599606810553543044717995651442732245481756965758934925567360041934858412434179698163302173530662865207688335962146908517337696391119711527535111693828846191012219272341671257315209830895877245609647662573109561988841473592578335657992525188922335617751351806931139514291065616491042412320907396345895939152220754752424926762372020114074929932302411760349287647944510559550258223786012902906216941262811681036121866474029392118502654824093065657458143363549319142808737022974132487564367940053301739535045016563494293604835537302855500097825523971960146643300587438351711336052167249934198239673656040094765739294616743576446451225286371856537672889253504196847064787070705801158313392818370796155525488501655911817027296078140519304316317605698248924222811876235687677098729088291181686656654030921942399659536816695728411156985115734432180244488793434314893604363565735781700800161978454534045546268926678518388614944304090755710412525826783834416592650064195152487689580167086984080382254917408597970853696707785316271210682562483755192226431695138534909485714310821597707354764514082696579069444011372976617663389921635891032510083675338401767197691220591973463857905490864145244643127972417290036929328768734056985772536902768686025218647170399783326290548207273492220672709240666615700479896851226217661620906297748698069230745313073114020299528041139628510108431183723853238880946430741989078678350250817641032214076703519685957185678712645863948841134963383435802905570403427066088654878789093596507308177662063216648738098626912610093291315874851784088512559373650988905109507340196032231747185720639876692644314116970044871686723548657163664445930540558163041033131506014000446238692455125757542868084313123569246123164410434248027718627248325535756870976400859495580579059763982688327693544829673278908728105978192055989330416769306715492534323274611078906874816084382971229755151360534601277273063969917221780064015312113286787391079125594152665129673796116763639611880918859004843769798354224246078474986643981385478919114704887096032002652099200048968454330067528523514854638300381211390631283170330304122591702268253229565997167982928279793855215573494206313043198047611012550485068493454606989224248959043633731072273578653335718016832138365345074323452366853988980569864260438305142440402052818015684552126141985028050741514537995145952997053757886817905959925300029832213414719477612816382328430328360294571443335482727561971884269151568095838047539518768809784477864096282866659993920330696531738175038247977627919689598576454950136164986210178069948834065267555714267316829124296918009139916235269164036585654710028808188969799409795827656715940383358646047357662000608548953306015588910801979225239558957687669070897995656003598446490236962265487099346619251572323127330193330624609393411665044788623842537202962085523342515026979946299955680635861059347955540191924417755779112676093160161576099126418684120075717192578509867307460341036349421837398316737830083580774304051491230349601930349042858518274441154352586230397597003345149287390314092882338144203502635952193945021957797465888389666113927874326513502046739507382011743159776780672227911045277117555995115768781148460427920210008506971967621039314046170781636091113483634769390018008836256553203764026347976679849146179957025657126915264094649777226273250310854895285543834120218282963255330617316204995944909304616614855420547780786109844969223151656780601762032671931292925777276287858172332008747806924730940233655599325291620311058107546213118675703798695773953233526719921841608769097360586815011526523535319002292035248339306013961829082064494706116311097279398575141846724098819475915848270403541820303457201719999178561399402356620773078274092426497059350330989964301068670875078824769891568267198969461359041156931205955940031702526450178693833545507291933372587217314758505534199241839547156273505514945004564526191507162192591608831139997286956250439111532809167156916690557950690916421117369114446182907740990956114697863392544776476361750315968145890738849843069304506765422702286441556227384768198049351885651638098103343915474535167667836314952687232493208817759499497503289289964472273815254701891573193822402670270878866229669051889570030182958503817355621113270251329643574463948809964139119596786014216841124152447252643753041586242267397941483484383756211019902093900024076054298454034161706760867446117035203529454138517840411420794056494562913641759728522816325380875026765538664703714646877970946139293996767190126426373108722129458216465776363902184178956761674555699644180596523951279428407282112449479596173749173623476657042854873971046596968874440712760336381321699027553587744568125612336382859284752238258597682272794076739991756658250917650716865679736934400054099965769913681655443649298339217387942699499906038868851047674811139689626869914027463460954112644885077376816888589476540731336587186498270322806366940184126804634824208860510072390801620176021636260102105784031552287179786846526163512070484783624166495989332100063586333773754296838872151308262457616725808181702416126925065705206702976963287478773619150566255269732761351727174600172158895843228059243353709613098962087404023513798586994062524309530001723950487081686801277427530041211506579328249537583942574853178810289555444399286882183168268641193349363650361931003847377976604123269245115048815671150711871175178130814075254519270250949436241624269223291206504862038017696467018229367389146908601954511394953810986517119185394533830305498599860531618642995418862825050314143516069126031853897912576482143975274475107122382400105841711855916358911454088231959611950816655765865910779255317331282207695488923818886886622517393782499111785847858143301258172885201048211965817795985065530753432653331596613152496555072668684640914528607569684315027953432683391302984558706146198958441660338308004730372582427661195731300823148595616064299985849120954165241125972209483773838651363813091982290722167833135177752893770772849438549508006159660983285904083938120460036403260336951707627128112380454263395687369234557005663554581731746640599841797380540099179878683023811829939872559705149599106257511082353976067963810178619615980579911871086164389589485968273159052429162624981575997866027500964706563096583907332312132035751652217995783278274873943387722977741929229870797841320773122050377527089034457574911960466049415661663052920995321029273517917645843035640378201487432225420264791058104776561697714827199218783608372731684882708551323381046307305587834339883260030537179515569911830727560741398884761560040985797302702529179641460611082203430141395133436605645263029871588363085288530767149952250968575964686885840298525757941914090042792485676540125499325483402927422086413131909930499323527194071126079728881220125731838227826195468703932093529927118500410672156181849737607821550083499057511953210445972084848877963286670452329067386604112438478761183691998813289901630602344815544157205475029030732191051317518881388313077669859325895898385559857407098094856658759994804824951476740985176569786997564635968021192515855898066149904313026265998691599360997680715046494066567431440600760429095484089146715689664659189374787219898968522773086533773412773559420933145101155952769848539834891631497756724404258493022175501913815398677121061963417431918769812938742256348716129230477688615685295363337257052461403843076332340033325707581291390279528217168286975003076371077485259878652153865519984157352845892240523340187281649834789162270544699347618550284316725949957960546420417255058372270183174919765123804288604742666436014364936299766254872702665662658430111966517685833359688261818998397954222845559402562632978801349708376807059200038974498312059984069918300886775824114187893590610127995828277860108485384612554773990908489330162473780854707119857352262137169387999926211060372786504460009490530567835778359231804115419589365474884436657344344017472611264233406903747817410791130635770303324310507772612537286477940405051703940503178300860080434951541478370732048294287492384050882224005293671087924841004551207038940910833908891679631922071358672209023466342006657495221236536943840765936596394150882857886215298353574436348553678657145194009564231675663423020940407836475848355447708049888389657543193198446323104251600795478641977145175968401583717653125729213104963122797448710737107558580081022312233916032987864125427900300253047373439519901912116842548024611955857037178035684143108625704646931618529518925736398876524683051937073137119458986720328383270365626488134555328774074232885303922811882005815406714098934820854484330804098305249283544307738604485619863794468882828887451303492668334899553070452946423477825983217870239598514392996404108509853681077105334310047001679635861220906536012901407292907091784356968558530733830018373002951284109352819525702002720424886584352814079927356095468965798117481515862243125713898453841655015272946552304440280828390603969319234140963534474101473411791897334261438919689471773674512331734156355415372776901699011140012999815062750583267352101180497818256211709717606935156069926277642144194506092656846809791458952437659289666505629640369670122536509965677722119530969402741572717755242364651190817047984478868592888708051687446373184571751474157093774811799968064625575050162008704438678082182663794737405724299205707013011549422973921203817384708467066840046077426361850285105619682432310373320383227741811916399349651216038668226858046273392965297337050139598356181031419914374010586429403001952853569197802209252982236736351248478109089565788898436905248951417329132021436889329808873332016022268220862709226400956566566729702488284114851459852560443525201450157140458228416803485417461848310540716690964276959665146634832000354445251359720274317891886409404565138906799022158980070677590993354175673527001795920636538122968029618577843030803987557358884690795999130493388336809630460247300721270837857813792282586081568989611961457874659681200930126553311928101730611214032867663714585145244303926874980718341902932551703374479082038037495476734161824792958086567620438760902004590921618170182317966472537371420829224507050387232128023924228251994678854159545177609394155124329720823875919691799878956786438290834978531637288456871453850846901120693397857130208161024601698302282306483416376870949364063447080763580391417726091083441570538110345266041640364681312890135318519284094266231948102856909257736606013960055575021408587476947959444342954468686922380914019031552334111592920350753378353817974804339528320400445963568047269544104771173713645544262133101613875980203100118089848383870099597900752750937110865670925645932842263273780821158642840268361367900691584228387568491357137747189655809698483256254659616250628492885248593180226179012772011895824468966733746988444147011184363644935989818611891606391365336546029775395472566752737982494013456619078274765255107832231849286988138783327091956601599928206739742728719161676399782674861775316243411084136901389727438975483910744637620368513690520371874286111022514289838892100375835327578510172496148993812658622798188599273559514300431899179205999587002717545652161553818450690709410932509826292302286340825880237179394622743387929623387344714009509548893683139993241906634050437342829902834568299313814215961052152906527424624984029077354036301495813262659072469088980434296162620715222177743208120323330884535553214071338065725975973000675688336316216470221576297225349560810384795940413954592688728332681302043272515100871346275770900709954904716599401519959229634948701415482916005469262269506194948023983850905779448565400126503989228765605862745094473968567287929527921381542145599439244428911085841203944864874121514826035149048533489337418701376341389363362723135451686301533424981593028954169248915552715039041220690400399639317654749462467819134253531761325210190589340509757376227663087085686339059064232099234743252140586046260187708006093127046162247411190810872530741820802281424411801853261216898545800421775834565828502794454353240933296295559361017292038083006241395390086333684920002050743418313505275222701074894921537775591855135485844998130572581955486617054836413661587098646309267020572357058528058416073466268676860067897840561768388813935865787118980239519350569661497822927717959622441968039807222159552596561205050971932844352897877368373358486669509202348151853240275342246938488645705044714988421684335479431058383114908010911631218022146523808043932293374922083309766657778604197712735821022979575319873224391274333676523440408022157506594815404178498525047543940075396438624100700179140900300925008985340751860865820189186471941877452442432598579045592638850401786826290465850037067143545760094951048863276606029184228224711534716385991189261538218489387595796687405454263502321866747479793050654875389739651271322673173467703318118397682818544380581844668482350805210021279301320839514475523082469790123315242452889002312816558853514503630075793270049828678549753802969260655201938468399491119843157494677611563371938939893190168285416571671150242268508313976038089867771441773271474049817458970777655580918380569383933850628223824477062930129801188779286959968469496161880844925273983886946004273033816554540004050771458674041126788454021449851570516604902999169299935210081237364000664305855840414104649229695010646111591849885139303159907434788866357314998265843601759296410079983399839451340253363931144762970486762324786893197695892481217494832233686902612920349117738353279744466662392987163080424173376784716565619186203800872385566170380467370903770125702267692199641981573977168466184223852071350036110334460740353842027412142749391906345316122447556325483977096054395719719710816364261886306647006107803507917249619928889584975358560330665472622032844304646691237153530893681080944889836525673068685611612512410069880531383380939651861152943173548191885873199599645495724613377567572740127749966561038445271863704295837203110731404074421510227919692407386218275941610602302794406275248866233827867503171732213982089022759195237075356950387278571684412931750093931587552786330229373221483154212642659938595344103242273202164050294464642992852275020835132268747603481520191205594047452950164749778872834001977972102456377186735532797564508170761723174389991251777493491414185345942611913434433549832042535160652315967423280277630624099247638103285169749935108336089279827696346242316158372274271913279759747969464685246912772010007541694785583214268458407147868437050855070491284289173311710266059256573898101351976498283570127483057236231221300158412093611390456857832561356186957615292062537746841360307621544531125518823261279526892098474350067427424425680368228954128883554150117438330224062969644964108123878206016440283042726625346810877268299205659591577045067437896382395769841540204013289027700789812905068860841905323238329129276959045675979282028312171314632761809019318466535306868878859577547214649940262543119514296749651728254894793427665132802499531873336637448116488843184347736164103908804341688543732740504335041579817944261987610887725995154153175554212153174301403395532597942275261329884856006446754913609512573589563974244212897140296936325497635650699216778251314377249202322318998377222422573738708472131456633577441660209402394710059509383418143667482725058538092584132945760527913371339461160448908218661454022858863041193616381853531233497722815663871253135135361826267674917007699373528333325824871803837064217662679854182797673721043051512499797352280180912267426727615584196066550967500968046069577053133845984654134225956362243216067116284291941985987900888196340700365475444709886201726581432411238918002659492052989205814316323028265673851554327748916375690312710104612477890768691482129560660810814300323701727100488908695551592955040802717393372428345820390265697372843661380093849497246533333709586443653198730946613059415092437584858208100949402061775160691910621254026872131047179828224300164808264807356582809985795177674707952607031220450255968591622863071503760797208029344983609428019429657656039149180840320475840060731896609311635281905324061385960453680074511730491841321066151840273655720990420189923563790215271594625977844530744998365165637266201831145605685656336569508250433914621994422702554478307925647259911694037988264290513987781444731231380447574510018407748821193389139763648315432115057383942665073236214904428476918709811779894720903326342461599816392761287313528300025827419193781346059904343335992692852132255214896811431621152707212024452911703998240177817765471596775466039112779641726301292028885742463661294667945813886839297743347406094702504142264847115417634660437525058526632660330823678940481918909974581070303307456609869963761507201869711066164141006008773940839164809726920821534718065588628111310268739668255834465814528721270279910010542084322851364690903854204530729644411146265333251758401963867255137372653519096762953737282416798694095604286947732807833259262435362795166188036418987188207888501235270863192037767702561320340203834390571881623677138811992424676961943301734563496409170647778045316646507364412357072713441170601004117398435671016029860660276696684198450640798739022493528603491103838379996397158065834376234367794536513916542140830739787884160941819630425874047049646174546965075042855703538035582563204074456439233493178137112394506025465809642408680662878600411902006479930688203994945141544171691684035978350723873058995895374815300255646784465798317900099747961746641595496498334975123772458804265717570228958272416654456704778717198094408396083111063863019336066100346868449461120424000628316309684030500302538506445110234111585227483298477131284291521608400877211674946992201961328737276232576650372157228193966150054424495484670924507309543058290982598312382379117886077176127695657923633878985016241717418850860581728947292220703496427725557512468036116035319669468737917521923995647960368043494235099803260954468789666915917491081348045986767585039470378980169547773071456717459606022561274833890487227981997411226981862116167656922329903035792262487426487689696458928457868427626103442876834570408468429924261327140807313584789167246400361127478872184589710353727333486864055653394058839250353488441020495012986362612963123663944182698867304995338216170126459543337632242722454217211193776684912687917231872832296957382438856411982465248812100297447770509250443536592750168388036023443136956186495118348843573183829678598310882361085838700510067889668143556329352283080842237774899958765154373366749490904049059843624668668247032119479839005621048310208434394337860878219984686541544858560389996165618260206417443271373298671336940838179716356813831939650977084354322719955896995023021088195033034562602308744840975633544665058902906372565409853959020529385153601990664584157671400987876111079664142526400170196384946536779919751229069462015044883179291178768414630509875485549342042266147964824906059172033780896952861894240590261514350357579722994419292880413360058547995175086506435517139635173232582830275830004886520947671652100803861086222807383012511239202570190494107203820999949467751267181896576448406471856673475955464201054570878331304245384405238945987674844812281966140200341836210533845038801776472413003335554139080103452943659168655068976466456754726575889033102816209392104279015547679920181181568099929198646741269743438566119174864762246573876362096508543632319908209019604376116352368347584244311267027592874586248381154402384550286441076846085142836465697218661415675671924430553985756057884405509199363354329063315501393996905881386600859244585445552855546983688386498428252978432026305164674055988896931032759256174667103605102733984559156506553197772304697872294301719961845378692853766559489676179598040712355033232770613871496397791943960280169473533716541246550835380218933117048669479658664638909240996983668602870085425583165336729736895860003444436602248610352613499373948990290227035494498433778566973022901364490900949448046428976376153636145768567462467819239359087475914072965658318616368905434461210331303722329605722833660922421142068001339763701762013858670860672829964162713560722643041819701105892965899773908375069816173877218420666715673004916125816087541917023934173743931071932695543755240647720317425935243315756088612477810707546595358485371123795932173556074962888862740860758394252090186643004594001293368779106996455744697023487683314469415223336514436559763928657184915183330859322359439888249589873351376214030076966255696138121151621160060028905294804752195220106583459402194164570826943774643477634592029671302568091602281306237794209665290181584197400952496741518134664529682812897833737383958752526774879022452673253775418793356857254417944952533246011270167246439793092472893871806711750619807147042584501344395328693118354239779157076088535660041817580661058225192651494829037697411027447475380552398153084725987544960654832492382913067565601928131269496271163139337300082859717498222991900348545061079368924372828961880552694401162497061932845688023949354792817802823105754102119809184201728709291963162665261397368684956447987204440914960568290445767455512687118108910277281554781912098747075475659014707612923290505115928102448554639410181409760633870045313401762626807177033759991065193858508887376830789755508365312131697969821583575492572192904374267038236543373345688542890785277141315005109344755081037547765917759848803625553698596523698893342882284666164761793020515441491365408035678860317846738649691645864423836755113044600968291818291924714313807370079472881374605745078413291099111356935370859285701026532874206262823789952157651584982370767296977160399130754107279702583942631332800132621730502975351033083983788184590365996889906580142323478058039062139732758720556600758761506026911134344437247700890815554177532671557709494253355899130510618325258788679090788379431204047892610495782977837922032616784800901724353942017640120664490114097195251433008721410090147869818315382761448101379760820998892440873461602147743435355227670163093664502515652555652504118027445425849622881732545560839459628137418199190414439067859930536339375360436425578679879109224269415153865518871482492611620876265942705478300283955212958417741807290318928104083660448133079416716267417616491314665397406319430903206433346242000368955675640666586126781395523814745656853245188969084315526865908588719792505272464384580593272247790951563678639616342823743202389360220887975165768046672706388711336813413826990319611878887602564340348035456157995527646542588247983184970940582333363135396474751526942103206031193610406364283378250157450390641917697241521782223713336139574500163821803096443331069799350053369028372837681257144717097816362248088663116065118588607915173029335287116599126058345814500132202172733117439009263965105980212196737402667104924826488339857077103680512752902317295953941459608337287306708703979670167225998849494775634830797432674342860401423047600089010171712569014662241543840261793563772417796692642365037374127151540754037564343184694969401327720511109958737405913314572804417343192686251801928921253126861218007564580861076007006915431370392927612081427655484153503081038242733182728949461533984564593330341260379763043847379268022500610665148303914123159465003949600055045471660629944302116429005743144501650715226632629652115140856903518112295404821833095629102397584468508571135965771107833263767697117959785373938702008991691324522888252319077069283719603254086085418673517637885698714919925606544148336180596532121135830450421762939637727785618899675312196636564626919919438955054537940773536354940641637074313291930399410472224705921533915065696068454257891011727629227446468114376857937810602818991749411820808961201415874102152721623393223537704404516160880339314744732902615273134376877414086776127403934451063143345011961239425078117767652283889022338735273988659000301777789161818577037026382533677515192335843119939054315407648463538391758234809586338467214428040008329712430333009537890549773856674189005803845068423538109111930706982451904264924557443268081988440409074148903135023711650013428515051210360622810440772533825359033379435902537763911694605230344058016298865628746359057083517729605897140886695477298271890608244183344753822301777040226332638902476140566383143010082890365736690684601476409283983387423431103047049138677987640722976642225966520953147106164168288570182148135256359125597036745079905213543146020564462528321178081128529944799128360796777312185485077237602523596670846189705931370215570682325530100602658825267063687905355321900515161915148300366760812905667576717316143301132820315801137318187724640610827053457641442660450928028793011850554552174652046116144607697505340686325319081905017680131339733791602812701607881295863354821839413809356111264354225445098039482681818857337882104935077457727014340926125382570253328670171409637450563370363017279419129966403065575853800121281906717844508522792267532721752775892263931970050703170970976152650436056563508938452073183959032204318331978989158766801424256053368900987603248643964452568112430993743538563120631450515231639810194138199996824452359022304727756898661473063845353883105111234338652593420724196830275920107503974799181426654148201864264273193914963306680698792488012821695780300183885146888667747273738015999393762768859847131745907434997899151701671960142436952038252153857011192556140042987111294826312000397848850002834347889002452961645038005079124939149664937541071530177458961336869954089085038712622005060922524088839642694415111355471762035490721474570220402150845979897914601415405200554558391173705293728309538836227224410312131170011205117210863373337071070706096136714316208036268803021189170015408266680841172384784262181923528070825142129087692156695421644845614202790025377281356621376962804666992544142719442084264615283710348908931130905432113511496618212509218482958951596735200466046582183195227224786796197932091653640181156397397181164782057720417819126860190635232043596968434462593735293608194855006182439085573743842514674527544172791930489794430040446503340811104865479041543479376809004041166516701114609623608396765294449789287257286971550338535141880937133620876152368671968887180063599898731185090687483463998156949350920060311208615979448972869154617421751854746364330349806917866319380810137410752468348688267178161331530589610420777543470992670689290954272229136777533676546548716508421428128381076517574759923455814202090256628674033635044366151861732870745768020501724907909626653645479382069813498966935040085671116913751781905338302870372320916827782470473282152747823406071338161345986620111049734653412225623077461405046948141063199079034782849948784781151769565028383763439332493280958180826278883066207901200603709242864408002612059625656282836388911584351236406747592631199161382891615418850965685164495338172024686206291718781574971019470336891758033392499445729396729822183873941492822994002609031063036358157350351527719053473993244210348091794131498008311181514812303331488962207118924943773016425260297414828407417023925036433226020508283483236057806938075749574566249167599534671874428374878588009074418295683512793406825326244177544170809568824184235142419763622486476626434091428511498446181550238469015416415675887521306470708002234959720184476310946398797215701362477937659783149360990162819878534531367602441984883465093717253984888958520403125257265469543573073249643995410820706139375520014665059027778843310261995234577951932895086681964868722448854112163864249924486851108016794917815631861276094231328686515882073003523894777542374799350289575558371831366262417951433559653516713652613041468334809975468533298489952678652450101338103920447783898438157396433696810400469095425564770817159649475411717150970766540957630109672732609185306561748770545834520286543107960211437353582981523130756718105145307769606060414248317434146869112563222030015614799110556469557082233106463012600226102829308511392973535901914113884465395576474054802242681441223710858234783886352040579388736029442657780413163749110924807091898762163959061110569987066019546139443194352342342716790726064825221619844012683747132688339265051223044427058343383802960690069923540621622576702955350132508383713983416339793685847122240702846772062002889775187861238888769306776299954321611872236458516646739208560341091145361426534874267409142963342482975466396847174750677972881918427814128568163182968536825653103450026513135084959835086007862588975378304475083963711629017391939017323052295256429194858682945063681609936447853714315139460265796106742538740082421866147636556937855046048853867321308689557819656977687281625221122141112203303669986803514109106465503419210719245989820806828336775111208828960504786321041465457576429705842412971761243513481661426156576381034863740059174752860080894905157710547040865123408714481540737199391446495692325289777529898566619419373495992137771256057447061167641451555437244224441152498234085570426788536714360119195748971989988570283969045998591389599190358920033922860112160269544241565561999017419918610756341355866009077480219978124170504695224763042865730561607042685305646425277483507407395555114273873227209927958926589432196084641388808364012344822359916101543840809997188374030647621873699122664792344596475418892132134295232059850788536140322403779198684809763501598784357892380002419072547621910150417846522722427938943016746482591897269242741034180823642321147347471388277824742140485519448509065600826885148827316997840931755659669198994751515901508975172577003499234805034887081814195471192088051660196599077154135153825220738583745560125049848674596940472195130117451230295690672585199668720615022892130613863815873794707548386243797177400700917539442882012766101157117764014794662933909899293204731457739275733572318469931132837393978481577784059231455258783280314824288600701766050237307117426874351733959193349169926804741933511707579187593813429677059275914724642551146590614060325624247493356667583104366351458403146234374632200751931220435253271854327975729360072090016547197326557245505322982784481607425153187385938322404799249113220992130964973627092121480452629727107489579833895901990118717681448435284157629719579174468999895969864199410701394987712067748436000260878859514340933318801150304501400419344854111098142400460971670621250459063459317558897508155021678797046524711474545685369645326237184320538321644101039526059073813744147847250308054165532808065178201112484787331963250093650966678071780552760165914049723037944072485634808590057798843153239894236822437348723539641307933908004492584540505799355044613450562380225733567878148967755917719014268583905550215565593265575914615865734130543128113798019997532911971017451680413415040617432932124343858264245880254673526625848994970003024962095417736814614634926150457478969890795799574396160365651200493786403519925516267661169378506234894254690986382155037692413838204014488211838595704132893504540276217688022926866486894327761286084473708241685496795644051465537849392698231117290408005541046600949518456240598012149125224784639481770745751862474024511470560523612201068953756336106618297404790148451292630007587312914269444140646133108932537538713460224951907655535057895602096254611855387677614850308483447310207170316811444511099676828593943746379715630487835165457228681573685856439292841617321366717748070569050068672857842304396810056261052839849965291789777529099687167636309644256340360018920238357419923979635637325397737573247235835569623624539810559574550224296103629875815607560831284282907413656387811608895673726575975840623279881326133100346598066191035498469857374252707230257644142989314849313340018653388539154409906936529875997976995430811204581111333594357400714685284842361662207018996960609879792296094289091534776943350266161352696532846900028014328735325466725661153643175175526607099499894947990896949690619442848867612421456143183123581180144764201777620105867987175721163265899531346251682182680057299289438997166239611531432390525718209489363561515899496721399460443344804803467328749904155975102905412583737877437876454277853397276831122091558218344447505744364528907809240554165114090704566380559933015328635249262321152064031447239541985894935724750625184263441609412801623965968841932385093462399904743742293815450129108007336424351898775207526753613374488786940682360039525233254862148777533974158454342285541502369129527201855753274370836571340085359180263442361471928508792571759412001557147954772879078693934866202051524211844571236646374797349444587300811976476339253990201759410137952954460765570031648966405129928863429436610947389402006041550433610910092447492398521172771283706221155773750485531548620599083001786509835597159759008739325467176932714619796674585424646248437554047670769060553522636451770523882280659942199018912720473106266297883864136515570895511134362755981493510889011648222145008245633220703445650061797842813299800151582349960568548946759361796408314489599871744484359357204302129529413889357459104622618237397530129989277413989984535581260801786594924821020641482555368064805920682755857870303500920248030157677838123720239337938586055991806286377599455996561542280596172756430965804372434051287335762297875137411320805972419451397059665985876268332605303195598629557026587094099000856971152347659372992466660913126360607398711023529082248890633443158738113209634700186967244978721948349954158391936847007025597100788136433111039231251362903664442388550601718911894134014882909700565570328989526081164195769976426915338601517263637664198275720235335839139276006565741748814298429198519472129394414730941303299940592581515681423013284110634051145269605589814531354568748654330120407473769113001543095311394000200606409041676129120608946805187848267290926458820270015295493812542178601942903441095374756237643464174718291021460422973289859717597085019061932772247088734584495578826809649625160910175780665972930036682900676605874394424095978729341210550969932102743672458501800836033664289009051922937999212928556823752797431618057842362754523264520260148709467112469598557194139977542764707591707514817551942559989482049509748484092443567711557337043377708699814619870131485152886153352047116869049542150444641386270851447332035360991740894675376265446747089291728010144970483388755957672680248718024347149506651682100599217889624446596386805402735501561184208382685246530378417344690247036619436476459086041708847218366898433833954861317165734423907120322581331739957672379799570219879112422111511658713443517162548593624039239872763492666581848950654345925582118646035267944735630212146245415064993119539758474028696555856811387926041963106362620000924320565451013692764782514193915602782756903500222100349128023813968198866593124022810024298720999155551216156002264858018563253289063136638152305222457864414670672126028907435980943994643232243026937722572470716998034713391206798993456842759497273782180265451944791060249092450477362951468626223725868482920256321932457076897628872951865443065807457364170192040541549032988330121625067113297609777659314754212019305167707932298448551235259474554648849793908244664827414018612812269795235977707411294519062830474545082205298553584519400493358602809683189573902574662369050525819180240468427555567751386596327016254280249127297008733094912351183932662227310191976855335306638573419417056489328021685294052885574356462194675162677718113864731906279047565536466801332773797301738536034289022501813515820865350804499233779113364834420958318494436170929598105488303587426819203596907040011724580207021574093191852196716244182349671990839543328322361635519113225843451660624636095369770228524835200643970568394139899808780360513762927336816334220222607431266236251771450767265740403668047084011513081517284881771185068365423104285626562916276385402146211936047959876604385176119531797781186000307819265006743144136007193611578168352994899340016230694628494244297162460141319070067699798137567027575631299010237885174767941235871047259576589196890354840397668589094562634250902456224859948914961727858453289256229444119902760141904143606660703343910776075466799292495480121608980141005766880990056007761004696226463753861679333779685357290004909630211254796603414412594426653958717927070955532302720577872404890208936319887668192188265106892934921794621659283162796590103560648550057443005991876346888356437740637706636851475718525837506067050400187033091709923112089304060781304101344517985401125598731864131782030497920928817348809503485734850431088840771751020206137743101745097024450535287839440486772402214837996305573948296617852904043134012899574125769102575493285068998013709461969310413594792633802589827546363252699567066366418576622957567232187339037239125238943313401346159874038397861160871651924683047240925312405845306754120192845403537438792256269340640302291650815685171005300712832467722088337251162787768303741076946088958472918479038396986488401398206408738947543208977844079872172397234015728565260332500704094215483191980389714970585079891542247776279089979511957073128123521555255100898768067692872631167428970854595747742195871932570917707221142107616423650019466188033198132088831771128195455975075372485222597893196267170481963379622913478898530585724578557864338536099477829760532074449968690165530518591969683286341167547101931365699425830142501552419408049463834602609939716268125985731822829271164324196031450365186815712968333829082600012961171108905305743729111113570809858971416214740719263605774874912372562867892137199496841534844557059269964084592642171916670527479051259480062409097401982508563290055385783832263699186156078147595933178066739300680404269645387389644555719913870552258235721906744927319367500816599068940031212223664688234898500399908867061673961493478016916790095974400563473397665130779874397335308146898430528877662062908707776966524660480964166228792372717135334723943375428993525351487944810310687651635546411901757813356283796172271645282303056042183262443969974856028998944181722441579435073860070209894384776660213561168326349355781144902715485365033092961503186702885616554473846404202212894620969547770154005997049763416958366614711444096065114330060401626932758045027350255536691188112159776472069878286421668857891776342957972787157415380374418131021215959060931478154329075591859181589246632899057665337230966519567340073347532941007453461526062991238058046653057299267896905506370577238185696090729520830536897542927541245989672420658359172786682851203992900554705745520240884720050225679236224125247228185186883422064566721248948868609530761667567061197809087450990286733284245198067046832948200860728986977881225185493354460590431132440361919012542486093485858774413023502300843513049390100172073179024821347577861777873098661781439665730195922723922823217765401205732449637834607400369876872904433200385593010189370994643338173762497857537175195700738313322833007408417392546417533339365648489933562304672143537497881538875961299761186866419459555899027001770766791843337176097352857598664232255837488257017079929623077726539040767732784284244673519051677081154860763554146544080493052350307942678474739230188235469037865935407169343514475271241376210271991839401600501646174451864613269212457611803804096259798989088762169551392494538037798441242583943249136923296405333757418231433883916178669237846894402850811055982278598323510162503889105090275339690639944243137322860780547565513251711122710819943754870716460706840175662550030441919235452484411147249715717857581205728070486572669167856340423462578703282815600162067896217615278954945981890790441443866203130623020083165556152433471686584520097373494384850980565666003253019762956092183223687134000863451640852088050519613257485191555344478151016177513170715270227696966325106422873629169741994014587767283804457922698847660053367574694780804955920000477400245579916913347047675169969480390955089188309764414436531559735052262978813309976262517011890456632378005483207496529251333553516786240625024525920103020504587431051390618291840563938021577479410243860242239862321254302726044567724523831240557692317894237018425949444331760439862135092507103069285096439234659083884894331520096420151454947518402742375773858454713877525802673249035618261715404123930840159449350944971099471733444311635787062877496499493253883476955850225933068247347801608560123520015673550861602628058677713752138986390439204280688295375290012671782547975351366033969205359376566897246681083177482147722953855602161997437029756458096459690026730277863554669529840178370462067266211774156936946873037763790858983166842787107054260836452999560058508202682369979581794075877276730258297637050423513524505613848156995329407124948702508061007760086484170087116738626675512467341148098312425524653631641373041471505092764395741124251405275412205522251366718267767951181910123627140021690956374933688240000562674214410871771343566405021523485305990070726523859724352077767532483723162081229537646286865841946318183196199672860339586316438166985372252593518453686932532042103163515956489080889266432500441227820308416803656253156396394178281965847186942796180218611212436536506572105444004087914735917494323565374257496760557578203828168955439355785326414261789046565204007912516698828509605921388105873708821491895645578299914351535124852152466813749645154822233449844895402214600663373530664350320820052883883782238237227246135240049844750188503797623546689137512039645416809217831331210955114970048399015011309472840730722766844872351582826021853494063669805004905261842244148111555931191006459387048129572422893433660520508208576253092338335449374598891861294060375034718655397299329356200772424417475459115849764795380644430976495755242903082580747291844656420879979687014189262914164843646276013963130912200223704115627860726500888949302462249130520183107747687473556789059649258465600076973272451121216293038270680318480516015819958251099937978239985417434904661920408510177459629765003649001077485264661328192961727837092142325618726332260268397495421882773738275687518384624685360923511768722781194972001529264997342149433012960196454006391648514353122776105417798853734972595218922318721117634855429562332488234265153429392820124569459267796404148404610571320464460974152723101414669665093284950948647063039924995763064111741033316839272511803815603232450352842784529553174342405943699200990601827558498095042639811936791040466307000808419418625513116021462941302379267293144160216865392487867216308917022198604104950813626089346074121434844054156624425356018686419963708377837459953896801912149110942235657952274499654726897244277560448748700004043149065531021175800404030968287819224648457393699721955768697228320050373120417796733623326061162634735079522017212520772979055979121568538924811572942517703374790538986382666559671856291043924885020818299114376651573668696942868469415470934814439127007280443819801413053611654735805606242639793275275483556420291179355011882192742262759506162614803332223571718906563340252889788337403298975710070089922581571799905241653885957934777238408324482553982982826662001819170366109351963573275557760345497564836899835430921464740971952435310478094754060484383975125064647152925874619070252795143592909412484943389518783808756852804982343552341789332155329540722630205343767885500349600627649985211702544257737162278478200380810821981149043459325223339772108112805087258748600262028576543061034872968403852942369381521035143350875498411144821887147280132863926192960945442228664065924911658187169922811732600309527698191808127598812115644833366984742309255636277770538140906585168209833137105759250896148442037324844878962318028073605535917337436152588866756675883364154595710413542892015519184985924951886121705853848060691002129986990746061246833210682934769111710187835106892410319303175635014038652911885581024482000944025762622723537985447189740045835022946797911062821534257907859738200723389607013368754530828643129563055471010228078348074163501195169104988370048541713293944183354796039153782937303216663884953773398995171483237453401356303296961736041955235424699404908440823290127051940735226395492031635026893371733672111013527760911698270722214068887039338566734097833779825637980549524456027319580666735507616512691456226851656157946073071113536252746423516322508371253914403176545234632007466181091956332820528724261874469825027471997871754466775667311431730113653802218647841639441146616417700732725729612274704419615518023516351011500366220204748068120999287040501424569000663770549314399007412313066001345383754903751051680483022390060385341832805162982884872784654979616974656458725957688894504088148746042513791970756054206473671566565893696714947401280245719828762027513293809069553973815496976685556467078067402403987762423665080538510546064153789154586960761081138830654070167615333050417563121402563100472700268557029023867602656101846233883937003840163791237154740018125209491341255623576306604610307538384404428863715140721712247091176049940111426419738166967739139890685922077222441475821411473743238808242991310506177436017063255220486527071631131798538575379212447855064246169377377383904304841831387650871114522913523497439357860651719505036986637330841323075593043979645309068084453394810631840726810801014808299661041591738195759188210248816314863725557631456229744208590790233506932199610379930859780130383702715129670568611740034452498070430895558512287211563292426993953215865498143501662013422497514303487686192439779105340830255859178651942828048016311510812694468860091607344500520675415959523133974277643438227022947707619618262453433219555294870126098709877279990904926774042505061924847693595008826273095909559088041781753527014070264667842777676690950471290359635943998928269849647514844694208515224618576557371551933483930577010533663568068212433054736711597674484425673141374540445470301217331950751871088958244849070140252477206113658872486091296845630290860794925391730827021212804202260375188412645330925781698842742092190985654306753230734378881224967230083545962720538650556817419832524360279384797239787183058744438238892856931928431020509719832078406198079240699569916270082613584708113632583569519815974951803702932064807884485208066555204789778578402352693597370566087263909974228826500256699286542414223623526033837273284880427752321769266566150862119866319219977792417338951821341371391079996747780106590928634200383360122263179789323331629015954900218570442091545421749794970388303195473136834592993916897385568220493103321446037350439373624345540132745093461516426941500388161602677996512696270994998716396985232209104814017375034556688919309310109663405623117568894553476847038038743561110531271859383343862241818279679785464802915778023168663312267381399170156568371605883479569574503848802939348031665294839765267989810447909916074579280100823069963094864994208035362949546904073352140076191877186951745187401864939672030239499755394506628706206263388414791900783433224668553203674658223929956049878349831506256110852898853159691895878529293964883482682878316348485874170852220451805930463088694614725131998565019471675618606230346583439646968742621453818795636873470624041346657168633220079168381919491058385729801986260619076487629339772417782654832503583695301209865717710846433437239056434117067704815140237438433925548549982198469688848284774937267403657268800952650603226087662979047735129676918902413528110992634677572237261696688093874984294854993283098350052806626516467206606196663314737074873046222966264096971623333184567722869386616182373520892258284473540920220226971261617497920362047522376336780154982618373046181182553431490999452257722350123245459301324369142311113268114281740278389754174874869916263758216301939390778829769148407960996107265105017896250771770253631205507590901830292695331592562512090038238194684386308104666675006418306056135975484859198059730518662511288643440732451201609850038011286048799684210719353586581776673577111412044093868588576453556011964662689816994635373636198188523530381436492213822874020463205166171994451851113385763509916067765462377762094079703993357813436642042103677940995609223811487909919428131928430331797925707312732271742867642505555893718966681765367345568323919571628827844865445537892744111314294925023991729126281827011149410112753849240275858068317612490867213449847538093854307335394813942697612025288033307026994779221682627405195854725866353711950191163526510003892730406852764849383912345942218388452315521107777047318811386473283374048986015500197223226158274986403511366275325148740699988621617284400052354410705125277051666080742875613643780737554678156792342923813033129568606536431532585292182128848465305829876930371919550133415166280764810509509659163173636706579241602726415283134272101258936004037320669076845633897105530067927257216464707442678181228491722928644131589168744854125234707305492148022634259040406947387822672428108607117768278232921727930813683304544919652283975685356932878267128978459982743587678488049548028484189663458840321777494707790597136187815027414914788897645026259712408598187108757483904006441254611891745101481898736714853646536820083589621013717343943518906880256912053134593492066872116516654489767255084497526937446222925809855561176150707906691694307771991134924697001415145926501992958279002879075585943911900682856524089537742676736504102960326381616277352155242006699933745498587033873102480947561009356039836589904621919382825853269661377705819152748455170620606827679388820379216713676882598391311883247181090170370943897103462949352333482941006960700542457769595531137894498716561426022132341586699718925192974279609110168310651913816801136652026739016246040907037487584104401621883734644316771252055643682987198140109364719796518557441097543059399193595384758213947498560439641682565035759658729084399383855664025193893498119894793906227697866408419486312891586101485916203041277996110721490366355975582459422121570680777038059403953735633839128225885634377082022471829727806108132404686708661717649377019685292010183190957452383196279948679176357097238162036119748296414063889268808686444902211725411609168814978095743155513290454966853650431341909635028368839564183497044966726082500268337420113919037694538874916389272545194005620713828054109500590957696598383948025226833359353425260037483890373000669691329518271871945688354838713255554614738583312019508153737204172941686598552212765549936983697747811593804512053291313030370276236738639601317425936788823216600311652853916913104369598734131839224166919098385981640042342690268198577905219602533237471032262995957015547792458835407406101018118982054003065801332175833494509439999018217658684715499104111158436776294081717581044419242755170363110755287201334031044574778626577108380550533663514477665951195274230427759460816976298798367653784879841781696397347630704977248093110235142358175632052730291816556109454163805531511750093725659007770574657973749223139581555620184134147273679939549194976775048334197534716922772113884117015126685717073919181996716416442782322929651174540435828308667478155813948559305079700810018118042205161916905912044581135958227286118073025165671380719297647150490406280887813649827854255752645270258844123090168387135247949784705999042711792126486974214695545777698073257548583148445823455512996095317050497234743903149771094924494537043470191233685329454884481037057774884794332453282059644896155487047977241919556655788804994398030614397246051424141745780782906797591786451617756183320048096244119771559144517124490042350185590456842016439565486068231235273964603291138631252265834406512365241099497443019562721268530153588824441492469916447849021878015160784373921799958328398350632257834284750049144485417838972060517599283618167720283329475164944743230273739181189266650363251184278818379630532148515230482248897797509880062351650053240524909942189594818899594132807718026241620572167732590923961242100060699800935530593575826903560216137334673384156390774311857366347453845927865660991410158005281058685911311334305211956207113254643826884656347423023922034754457972345616803143050923647999760779913686655367845265623420216614943227353362555685817744949521650164740717163112067366573557279926817833571576898648037709959996500602007296151992581453308683033450282089805317794166736769155975834134354118157037576027203716791320799354894824135988139716347845991697270449054802813496233762739693479824542991456154221137280984357612364462639584829761724168751560781123396922478805068769623878056971932643610727549907032674153155677108142431585540369248043680844008056316746933009758971152548493744113300989746658854319548389466669113515073476130638718737001561776205280778564352377291954741860179333119104905226149272155347626421801469519342862378733432932624725409946228599113154889833458325406631860020776104750394229339715728713776129861818191832025240830264737461431364679954173337306389502104195910596499008471873889197834097394125697470709123432797961847532558128599449683185888129860669091270733903761184923367525409113502821598132259164716773563276119257345493204861351068045766339376301499681597441619901179087176230082841262677294303267891124873947958524543572087863959090322818907263125689714717897028283089345487850599850096991242800145139489536328975386632674484820608917540624327053504339696416342978872593755414848272069621194973797693372264737079642175822809238194107609184233714235506142464382535740220486220603794316344860391010133070185418864156290521629551588057433015117828977640597171578179892407323393744207155275487651607151910225353334442255304388344852974027145739460835155940622488274647846558689030887251997764363927583789169625461583621998028912494757308371432552598312425568351213769924840696656840877333629967949365586906587693754864572383975414683383072092391199683022790449470384539499363617419934338304688409506963195099608656602377456994790736900176104387573933078495842258306029842874450607487987286844180247520857516413209441375133952167194023797972538296457880886968060848696818560047437261343306404146236360960691876901673720707854504945735031478677126801815136610954738622876175525693701657616097408571112221745638161572863476339283387369454587907247294814273984625510616058074491981911608958683746367806498621196100916675200126943430409547351514285164666106828201071984537490424967202369316701190596052885393224514525626414787937417438785976460610175652290303320320692483878098681162237991039217625172818002002846979736765085739278177437753552795406704751801589618354808000896465877975869046364581372408432663263396579357307735856471748994554502173971573199439114897853898379585145730889560369585521104157136312801891649722085460160744676426817095655624349931138705941951449922562648526441850579557701792623427876335860080927949428418579036471687363740289843735953140042595271885601665659461075701734393450152703128928238004627740304379312955153185857380764148590476474521921079289740919900256407640137072213951831180344872901144868584589203962213601049857192337928962975929140831974760221992246381212991202808622729422959071965952812105180794198602355466387940807488083878559062665277169508478031028464995741997914774497940033348101239537742785887101682564562159475335214101936247971654808514500727836482131462623892824917110789340337844368859768518193633272741053216860978473898543290352202673701862648515917206694806551108327751954016240091778562604912012783980693585184971385953155639922398232120292126543135743568981214803956612957583205253334783232248187189580123542278697143509607089313541436961978657266824920352259410095292271112322195587323263378403777255165137281825983683494266832138878222959686319189959292942529723845741907828409042152385113205898121771498895169957784979074086701056102513220125886354092672133409558909200922927548376093733226468056153036470029440136658106277448001654926192330759971146798911647705098058421628969640456423844400586619098899475688217522245748712764386916376235654009124931529909529976516142438746230909378443905517309823391340250855918652617012810212189677889289829898405754850434961818462427565730616632831111994076879130834332673489933851266283665709218297835111058026682196989766012739124040066153826506518428985117873115990346049814095503642430906974176439952360290570884605783591263886639401956266466201100217481924599377654729686287101685835104370552453617459365015256172013203471047047214666585086396365232901204832835129100798023093944706990714966075406036098838112102700227006944605428103690783584635968010900202831419066333392665295419109455828359328332148275543998116751779136647893578643167760136064443159693412802927634297778740506288390834888466154654818159967748330791834338036356146264784160045710377219048357363065750088633888603988231420046071368044107026284425828000741411498305973092807991392323368482745994953462875787504392169100556276775684171905215193496952358542126255867385107226123299328500398573997022743475330510127177310396409495122429289535083409393471030239596324242185610248076433475478782485110055899637809325037416369203054271305345169998209085638882343624184773531039974908914909319284134862186883420702842327698672812168922766860829834340747484208012891740072188314086220872807581410807765487259268463624673695313204285747352800659092065919874238970101841640954603202008074778672106377533745147510526490504518379100796396908075006993381732752036137714852339809398151529073895119912177481394537048760800551782431085822069165307097564209546737093378002425093299618706904200043366102302992290758387447653482712253722063900632121521529901249623574462590707137248477075813203566989414487729586925474739009620788594208487348365790502562636944217048220402751365107746701484217150215568979056995326296660677350120199451379140220525272911287282673776350152330099626592432029830384197162887763618249116765567744585676966275518297226935540153441885303760230596400178824007882385087005004105336056990438268380562058464914275232123659573063757095001203606620968895583895310662739792519100316806019841405269448791789362388201648354953437802977462418782681121211123402150868463401026859656647740105967825667855057882556526574449275777618941171501092993698579105403803770971955701320081678459982963774392034618256303239480637189406226462140650592914345968912665609191592905021174695015700814584029026652496992743488737559217789221182566121918376106548127101479855922163652456340539315130816123879822312074756313474309393818817540230214289862012088202016721427006588043676546269686600550749782428168186586376354871486141068603667555221983952934485248702494176562563709070094648053923071537180638608634217964581430929498928123512306287942011908608026032114488728153395901474643061531009349287922425791792281731270149703836404137950751822131955024409736737471331216087771385761779644724318488636120391842641820530136276668087588188836101584037727782656809645707908506535650432750480491760744771537445512099541954022882837802311148359307622354646477541196478040990326134508043436389657015454008012238379639710656676599035920264157690135042303237012350009266752225147563700949535648592041392427929446925014746258820109404633091160464809171115277243361407114998714204941549309314838876522905776831985064884112435318779203720634445276611028389895384391474625525241427516646300225380808727494247940060495395466590581411121104162732527122111914467822204935107931992886646246750744012304474432186579050714749463768337591728180046406407482824780644604919279131391891137628357493369873766816983737315954443862066200669613287329554250822956784609404206484206368551697644917314267222768064782428903337779747349033702846856798992681027941434643579226582551065136967957292236459491915965430149891139981295499012357859711580209661118402117722778539617275334259859692362816095079104001005812679117262020677990482681434933056486491273049567646921198159928779387028795438994032603303240149594188658065236081911909180820459527465957809446887839572981981981527331267502768499645690346908642699644269537262940079008127209740597748518414348873859751215277852913077815370494611696316994034623863215639361360474218304263306229811366255470953301606035683004822542914265434917705732602071442708898601541122591135734384106728340844147260096754852325388157429078762209327830216930664568472989794910464216623747454688050478970861234906076896810278784920246964585139914253603777346060336535011961124581804790204569641403425908693406066020829157656410898393303405184681841910519328210830971013715654771489272510597555017585666031872403323858267185336443562336416887451518187593683575494708003297668326775703114916688160837451406351114040996514109049537905799693994017846202901373561493443323956641327894135727299463952939053490133768819717137033104136945243207589441989757563853594411339066672300198935227777510638134292052271313069993693303414990029745330184437594979504681551834749288175812021716768031274824333656584906821244937369182010362320065663459094279957030685021049172692314915072486066278802675152085400184760922177331087980956486867419059760022252174034804162041617763180228716212632406983166368591795579435131201104182275630839132609230484460461751514924428169435605331484717516529531507750952549694308841726238256195231526108139744650968620139348345290900063057700900326389090708497923456407844474149991414592759919057449760383358931623821013946131817870538875161078470052518991540342064725866579220191797437883138148627658324217313703940373026973085490864663827466166811567183933095461427820337963133358574118521036732912568700630062879106826104081051986861287097841136483305016276784758972429733829021592027502929085890044888998669782509194772246675240219992904537186911407530729448753947881351407009939805431735925831104976691668856313465683632314094942446733242000367252911395094933472003121147497119495363597491714757674008439868077942264757128389644946124040624828396675282679204392587996952173832766723256645749178875431185103926924177707447407301751471448003625528166573991194356524768778720559962581023770295453639221029291737544483169769470484800763056624607884752998535563120332765217592300068521697146539522132707039363523622070892911965026876701522485912889116886323730243654850341602465962730989031580017120844083908752981108974072766520379861960684410400159948380260034801125432990279188920076456063881417928974609052595053860675403320270694151018316938466774554480975004543650374990794279894633258047254456979622642073313730057685318805996677964289147737099038387839921889924162696431046735888706708962076042527551232548580340892872217454102009927538736001763105107026774471727302687326999655279048588099488093177464271621504777488634163872783377640935154832533833716836684247168894062090825708695638943580434008162036257449361305831271737232082085023517550698707772112168573459778152888776201001665768902875328877977128740655839753368165651864231715812141019186822525189376488049778854327179050997293627584382252287591470883161803577507418405699251126723704286183209128515208771658785864711154948481571798503248627923636858035205174812170664390177221754408008269811087500077674065043765873723642227898916577563854443257229358017710541453346682358549535039137978963092370497893281361087349901164741202303325265501122459368955848582738485862263231748301635523082054234559039646882259179071200725703655021740882847752092317173327701058645949937712639074846578915833281281550310868584443173297921869315789333564925599867038795648577936936006315624908272886206105014627991813618198722107814533619172687414195047539912280018919844967147167492405224541816380506040635168398459167315005170638480126014276283758850112128423709946180006316347236496088616467869131164128018432188725885518460687021508497963562606063819523808502807522797106213376629405866511948331707217912540905599293191728888578891077564431881515613334708798911304775488092576330665053338467350099006419148936935301312617614206854899930286341740204829197496603635047762196814497712759697351995876271723648943379954173753612424199517951120505853022209205344421848776509548134464057835518548161726902573707401968582168799726016146600636480382769903454561914268073895998071532833337917813359856350542914939247915427258932623335283427366565322232511980417091126985694009006094397069448318932100515846456800771016666005064175331412799958899489737875908185035944754640008166388147420974869809686668793335431761271694994754212249594840959097574470469538174833187703777029631290420635501427601780449619502308007087420851216952345681637004792164788740392072733469028501577795406842745889784895921022599482965322695545220456660555796226604526738217877254835165305937164839915711046831967556017524319967824273921431812201623207223713777262696956851537352466675154532045227551001981805196933502478028396326795547118644130794745583258006796425532732325929837880608749043516152061972347168872962878057255356803673933686441733212784116175562164045354288288292024726789982525122255178799583469707565066730624010244645381443515651381242328802649507107348249398615775434045004943372111909796057305814236029276505746099690617405398174150809739230199485261986525860598300449905960240844711689902443215110373769057167497790288307791531927202577559691164347323510249187810059958363396832455736685783238459468065984953638373050813862090100456130446346854140314665327855307969064670071973949397099454553912333145450530143586656220947912995717700710752053220979101923563050059079015651119169081908052475261069192571785127553994488575775147070704744587564226314234083868228064859877522821210430105989119721594160233414256979154656377465485387914955147280325294502396530844317206421881479828037494260189039280163299150864618266625326276430017316182813920099503849771758124791713484783405822085559370184062655582843903551087763302124257096417760161504239781471160295333055526516807034617430265050639998064866647558134795211726840767567648009412977085399655974046757952188745715612200855088573977984033326240797961987118578963679376087235719210053414570660576323459344642645224972868993561057293320625768047376829970190532343006101835595547006978475647228965329343427833388995699079555009072790108085917837180867934608151133653799340011519905096580275128464306214852360098848583939427522883849373906321610267990421598675972707504650632188968230581397676418494056511441285461341804825219440384423721864194244051396635862510847573225965103332825387198121089867892344218513334690990339211312026390055704196760348821632408490525195665133315991975079807295073499380936865729796658038831981434081882982020017112880895323847314245299532242544333781385525606506476988202610432617356038873668377461638261854288059625623480559653868353159433015826086025238096959066044619956488412464028052320127425087863893591849239530027125218035441967269033658386049163806296105728259409582135472265740123839165728729105906745533826583232364024580374941613059813353434468859997124205943903865785704925771673203233150117219565056729733843266752694204297303391298958894740662769884781673105873954493173972188647511176429955757586623732482961428246766954742331758937822604049217705025841297771322062758386563029241288324591159771678411186047266024110619390102196514076176631704738041551713753559127360142272604754576279469318175167778348100234850141182433086271791841348984402282225553435934710380847946562031871403621987098700777957377158414369661771826910080121398349288540485190560699647471665601681792926172197188452907356921351857083019408673124997345769745845840216776835302688664582569949186869388384619130750644180429832841022992848946650985565859517382221788544385849863757830666387072788941711184563588783267206611450923713233102466639905305877186084740174318425418672014955903118027524437936494547888730083323751257616769765683786262137078045859866853100775204411371817042729725727829926185209664095308277800046504520246616356654770497875219064492307349666769888122545809196181828944316923623822815052283268315595661641937257399546523987040639352579137578350454802745761306688399060322180729869131499946403450918637900383421575636990286898876203012129570827471089808092131662048668165328136161143842827889331557930799019203539520903434413750757898061626422863287796015140862084445830062492105455821968940120231346312911385190264209088272052400978475578032320444761702001916415515828239120706704326582595709164470732943155331172192514377043474709099738890394681180473230052859461019923526764547521014537150438539764950067411683108300236338299377801301039846647812144856888394053502734376427054131458979748665421864421209166312050766032672925934213672493033492318113454721260868778529335767066774262650693624114667185266739694676491560005125536877987854935084952945825312697683036373017652472129700067276604050389219562616294718984550563870904071324948710779151317282486914602276291048267115084065876473243588692552459927595237010622897008777404013177848887943174152389068965363071440734309968900710608463190017484566676754045787890032774693891101994646576969846571936843052772492689104231987383213814226934357170172416018090130538756012099976790404226299760665268764739902720645448800979995122822971938162183365529945058025893298047294883991540601584497711242203092936838529336898439544090382017106359068552231234279424957690000734657927643558998512928453633016783976088370569179232694372106381502596693919958022896076393104281308278710817969288284732015513360127334817584848495425611861188620853142266632648897852598327572599254879021527593575278630215643824818704544415284323675386695197399691361630741679855841300823649309455683397335702386015592532489613619871263562326474388297440755137824626411940289064135521263581162191039465736456531364633655030860119795201434463819518336026599923058766310819588808526198215571431974522617631023777376683296045751524680406439899692103032501543285901641302939710844661264521476285867101182143827860676545164655917665875016853011337420088869119376828551776811493375316361942884619115366271720908534975092653258986832351631096086322210731281923044837496334457932557154502724603479990848700255774535721715562718692120731641784836647014121017636207182678890896232506226359629091900301971085979936922386642308287585744515537744175235430347426263862976613735136474360468309776595663947590077401366638310320576091073532201933270779847978001133401040508545745070166169558007036575883317101538253082238222420537290684306414935556976320653685629524572557562468913328392875451084290669645209085071943591905225717461480870040194352996534580469957176314103310063374539436758695445761590030520099985095655026987719332610051529379309425983280163578672938187924156558182205489512887073332153973019674720132496076626238670557715607420516460318405077285830520976573711751316712078182116752208044205835785159212441064076256758980175501171731960460104941729196105746472159779625247217822761984893045535046226000505239246953704382228964040655553843155703609624922841059159841378684612573181691155535337229941110267364953573287713447447052604655830727869969482821535007949849623234394037089559059860215733293689609741905977059736479414722579575875560588058979863447034794285890751612917016783687555709961875078221692033867791714580225866656776786439911102186086653000724360042869865732262159797740063201867019872158271737229591852670709774802650622387261291718681757245146478215324323551208330254348517817487833937872144968256850414857556605102162724340076702871979023028373887040399067247183029305153520871214501932345237268867413608312653557209869619229810208729005350570162968486203252430179752981000292258162791029076271986799331922266244095111930932346090013504238754745504803000940781881662501117493080865195899838110303382564491516148217964810045952523365714830254014396491153274599335317857210661582816231615096905040520995189274679513471830388235192698929555368064298941484605542615300426248903743279308083840917583122875879893383145095532400731858438265838044804108060496202298448627950772341547740288557896770048425170545224316958910748887871296100225602073255302059113612363834841274195483539519176306077953297316033879037648246844210041368926607210964586183156726312184290326149709520258498296824351324889322153182846394280292869321993495240178886563666088590006900442971354226829068676311745746779668312784359768888938298408661225152115867603680597614643900654517975934340300921950659711854280574817720552734683373866149930316059720393303820988445642192577443996603399591181276220478470136452565661127833618120528695920092240234486686433068502567614622731279085643210105775578120963452589549470078187043507366967063748774892379002925937360731707645877594112878874081232118108531819693047862744205861870492182490519884346688320865263181472672347717855660630729013885307079828579979715874961995277215245277362243807960282132396007323190422704538930640932784022303790114978346936679020211979475810506239277377511239434637775765514635442608017456497302433797187389555861912934619418453872004116211126093073171279127888561052496610127064885615419530262607014098771596784754131812801391704483857204603722819122644055317459383008664015957770805389984494694426422704479024746692201631509886445429563830636190850888149757369089404269607687051720781805122670089861265451494739355319992999556820557249940495957602527217914552305289909099548355763679684122266069277389817268903699159774675290005261764246590983904568481646629426233293776889078853467945619876747242648664802831649057154207399996246086445391220362260605373304072453572766991780634471843952362367826190605844261366864916851011131010524367081580670255506715052011435698184011599149087471309585804673072604318255792119743744181805674294815831725104368531148496275084656722618720871284077706266410614308218348595780483920625317245247763611842763945310304877186151354896377307218561231262104801449839147875611712949735649865119863069442977116441815075014424012919020769366991066984124363892004814179636078479206934947471704584046278274317368019078211979257735683195492734248022422823517326699725752060866460201642611299770496621753689502397510680293997114348681399717813178289724293213933105373363890890591522292479875733266561267149930871736483642863155801444604848676902028524230218570515960179627334907801661932668065472842822715774599742615056464934232886954118299956547370917720739375480772994619103937669467874443166387088292391701776253539778956984062822989631326911144032466397734610657022525854529136181648835558565873833913009813665853689264859583891412178015495071166132093846522940852949240016498739116172939487897123380073530318937418944468839663207133364364744767846448867970587896792287695840376849205890633977265921212121992117709176124340134316289354668093782322432482635065307851304964263491912257386663842853768238430585733255674980685310269622875160933309482544436405902553331030643653173552125012915465318219349270566761964573492439523878059984108463419821917333113728465538085572631921615490571387153192243246498243241993073031187522245628906757423825733184624380426307940973457305690727585669893664054174604744046317784231617666854979790796666915469598185722318871707355697384826053478213998154099862407621137183268257998120720568537656542191462676569055148455830163163900582688988939172214064912603862823566190705640165106641919644409453815333710251535518310590958175574846396023494613358277740025204861133545055572603838481350229458997973500976094616597139236326558442225405710103087557361789902070025546370158673295646729676638063143267633537261625085643730765215168836796259478079942212385763488052349692233549241459349802713546248179276298048297361678516537667623254413961802875168013332620468675354794587990076947537050458868889878196345976439805151110519469289312934636091244015816945243428365511017245856321379289763649647352114610131036450614480164347455311010795021729600860134154899983270705518086288179337799637902286862517717997725201549381915027039651779479091813113885991947632695371051357808827617661413717566641022516897089667897619714222083094286047179969495073922817699456511393885066226127430135180578879521181494521469413105253386498768564845458327796430938116012473683819216316963616428804197404324701717845431809165711268297470781385045740916193518997328004957892119529519363801318160399755125582988499666006061845703058019827029670986463058314677027894682778957930423203975685763606815722415401202687731943679872068080794927245374034195616327239907478035951157412311684195803552765293335045863994235207828456044240320323497561152724973368436845660195013545756277208014063031709485405779277469578120388904930602321793946485998271585729384462766442642632677113685543094674361034506308927495651408486048691559684766599909197181872295070518005153722594115854467654518024585431853416875117683454206740448291768406555588452393224568532426783264205723424253611100131420343316323984245525411229751360513934863195516353062568866494570785424424969385351850200576122437044091435923959123979113823024380911012735884467034932190804054263262073055233486556657889348021403516632468293098842748437128676838008001147614654249162283625717969903077670178709941360539589025248665518101542996052608009776748238563795697430919017599416052852907967034120932840125165388732528090874029513415032771651101762756598712852236373996682790572612617976823821676021039836780215747751034913983946586993998806678189924578629029923977005674712482548167145743762392177207141440303035422199921464620267963837359205325731917555340399791601514247894668199600067802743293915548398493700633626863215715072758509334526218870357792480686785250757164367315109190254545815555605712101746369792012107246546507210134052371200727506385385265289257578133856770716606469062156542078291477543654136243693117064373187089633191796006932367118747471074390005365745162073030097239259147084428139609668939414598435039014571664597113952076134482110858352581256314232042291367345242062705713214319633486698505841382847651046542246599786003656186037129350358788664449350932269129159610977652095140544535905981517950864263817633064039515412530960029248402059689848951819445665354001611553068315935447536845338447237685463804796548801067423366361113982139526246554995056009452814644915102032050764297417125920504895410128187781693123084075969146527423150327920748505700237453210695819333553551455518349926724031521873986381323033773458913347091432123734836577328306286619443508377124519255699142407074946202135183926475924382882268358349198537374886880847464874746512888016896101020652054300044124581990056209825082099083038843118217412758759189041474536595633080997142271968521907986207377798032509098184963980540941475642431559072420453524004726188710376015597396267275194597214257035586698266762471076530357048020901365952019464051714845999672983055632047391630646896940324789209768363708318401954354253474032487128268370679835369636017860349452211188797259777668300418817825051124117062332199028194223931102871617728038258284399361190258560471185053474632801213188741429201484641019002047875841089350589226567942809837396141077480355485562787766703970229809249524770324665043373175886302316433203689284481602713480479920309194146041234190919699590498406820036794830790481564650920755088687865579806394009927371816567756878720100676152633379715758856247170628190743323202267147809001288506691703556094348842774273476479412238287333539041903131969563276722011644838271416743943724822753958314440437511369852084348289311621114975714010216599142277430277019736032456284800926248702354865936519550720125912751222824084165490849873547470161168392229095414059120240535184069544560296798443714727515944884962790821385632329547015971551721452271242689165678113172080883877937928670333954680055806722559699223383098607074438584939631713112460674119792171364462337918637648395398659571585976122897610126765913412865347989370104893642986974490371837222410822041099979368664345381084585325309218484759264706909379291924276493685021503284941398071861504039119151979211022584247738179196164511429304657562191100733983114655683697396298400538834736503581574460794457683813385369285421138358553668113546721484143519837187513968271753321113288916482705656535726359117924446582737995561694911175787288816165511728805821930250092139561642509037925237362414740703085092583628398813914051041218299256839068662611770423914171020445824043014899049303562138002262045496950263405413813687504924044640903529447960198812369707254293165990366386460001032094398989864726660497454901618453326687846997012664092084168767204995940225745074750455013078252552143080547302176651888162158692611951619447050954852774829147276167996687701156648589952622872707719954493440761837551337309063381445919034299852566146613206318734864062572383831715893873849558074097462468190827768656203890732913839765124701549417329258612802998206118426396598687025771086099862108416644308355150970855583860368397910795221230896237249702431922414063507860730553351351274283117309398409745367975536948250152680639357490642486977681095719584669449523611133965917532565026420680135025065340264385223973833966000343601656156291199700806232721149561842520464595745913801824824152558919309437158622077474259104872279468721693982069917432163838825936649499275289826405774804448793898896859371618803007687314747236386510745413673741955982868863585540757677477966573211516665747013346927312414345090549742848314311400189220279986505974285135001082192564078918792139868464548831280502080743895361006612079061006053843847887179336078015740135843709094999726623493838620415621698722769848162459935816857386814635812444474804784982662308523803202694631089419227169676377906696338568165510007591048888093565876644399430456431598089888784565175926331394414143419469394978950514405479376323318479431063579604752195199919642215818887887284411869401842338704468521361403086570325043577862150968029862000138620279991478443928930829927077380185875094042288858908007769523570727305457556384489909333585638000444409375844886571714891953409591545599440670077704025108873002880405857332265777723358172723752751635797539611817823687071925612810515835326753069012254353871892902627179502896050324791064342477900510123173142580849203876682963138934071068916501178083776945821378557013945910415772655478952174274965950848593213834229492135013050603605489388008366663041055052562167145427372612764838977175132826274395550971128022283305300132158038142840599813013486145906293710344887100277244010325097261083541558243598414860174563113804236390087488641982894626884107036904592802697696119018631136911047569290846981596826103352379830644492811554755536682221061755755940497905474133537160089503610972406218288139061769287254799384356503659232059288545565170517747180984514217874179086242412227605750285744789865155406252560122299810578815471560696915848288446697746285959137765074253267484808920587145861008519761179792397748802902991502152268098290005837983940561481144366857227193418655513631331730573499454133203154361773672204788026670858105518237977383865134522145607529826570119078653728396936837318657652649871222423740226398310752542781961796118733857250171245347624028093132340521781605048350186585273788212635230476688523356139553673912815853249402201181237951575397920469228584032213884283523725922853226977569625432745911285141216392103739669507910639233495758539219039741696444712991698744804803611969822314753403289634230651449974495180811783959729397071445903126817828389053137719365625264490999106799012825144182273478666232409658990039149805811765478551868028834717421859693688958708003329754629756630088871649855962479034043167889226241658941614161330617182342885721530761894456565073344573711937450816960808872681507807313828625618606020976069558963684857112418206574184169821359764805930006460878466272167679470610249627678447240709118969860541657731938443023468586029608658509938779976059559436179498232873687059294670392511472923831217471061580501026691319251251908256656874785038573289046367694330365675782481533152244506440125722469761369835246365639568471247018547076072024751916099598625838691906302741429974734952081200926786670639940960583890432135845648397045075387907448512594548093672835904237609763711680005253538875844622431034956154891812958176335219072091057066373759113625427788316564705497891503120760027416468521036851806211603529543113031753393718126963315637193633253600508816115143140450899472977368732314891028861866752714633238331705137267675331490538194015129870501200943794626207350535428118165599365464546876663232531633685276181861914949086524674333535644838126706408624930460539654638894945346826312883139479433802974036899798862448383311329083935931695391846747088731954412125074055452501235305114236830125153323907278935571360817598114226712458128648296634806460926672606480095257226677519376380700826112493442600405253730205070817113374925773830048337767144824642877234470506087299337297429360443556185967411441011254648190937713144757105791947119570450433757503545927027630040375174532740099503096608302459409385157256685911602618854818285999818030849894345230462239019106358944023122074587399376428791102670623798541275118661322140319509790430580978255265459984460207960589838392270176907400962969117250652196062823918809419228640718443791865824784567275759506507566787927613105845691986063965252812789020872571941835373344718672319035299736987782507949532935780169924121066503511437869214190259773430047882747714337474342766997715006371868002261360647075143011831924810275722639509176326345258482047327769137907993742627401542800847051938660238790382858451242114954890353810876657365871637415648751692885553945174870488447047034443479586937434966534600554490925586502294929760677179255664776277546873788832158425683063864528538593818186791129386593339469762210999923936563057675622346474778690945359762266234034570649343535308100557472762361742845127083982902474152112482082358557535840224430039497363633207425958106658208277679665611340585879606958722373412317895034532747545475851009778134152241013595846952615560082083756079959404110715926688386493451061644262463229939696473447875850829652424897637106109953542202131109153044750690268532238028258785861623395951536955733221031012412438192393329871244846101573379498880199677894049852433705165481588297169144162818352484900653083793616147348736525162461495799610958042850935488553520281922020629309948626858867785313182518484489379060023336915512394505088065770096873964090461793863542963982631374774815295256739661255881706018588415464681786408149895597900513619758995320118467904519123426892123430584109545985311171511573345573571928241691315650612016386040842669107653543179630196171285776626509274563501664049744182059606424047973609898373075339952268541563886410046145308752511425105984265495173480628566081513573409064621526459566499378826039323674287971128616968086022733766423289512782800939576154585887777989756554902823991403055107758969282946454348175427717751376214367426603989803984705029050076643819289209326121682777928027597275513266034752594403477963246668676557668638282565843619664476219190416085632415337753049627578222111725546544513293355766074093468412347620483736927268809430998336363583535836040439744718439645151712360106192261974285507989210085395576104515592730745447207905947877802533449834190960327763087345454131570260758901388277209572872171959573673984896827980105714337831874924729241902866641350797393971835806040947478932642195215012486090320718550584303556422316668268996536547111564432108629105061171489419112910867710594602079702561416034403236737391087523061422524857137065588476699243367817823817072570745533143773538021433006687239243349063983890549750586428282998549890472828274662782589319155724340375259930867664927193155772547060457838356070086606901592333877570267795834122763315397617970569539940239086481817144781911967933444853027090339347903098483289735339828747913634521000114080876443695561192357981610149593216716447151221401996688444059566648451646711866769592678884576674128843500638332616017718551358007111366620907066356009115466902553142369290678422464677530176036647858646599909539832139832840424874697918274302166519749807474791506666356147920480269100543166643252717234643244184715120770761818057098203031663593545390516371081574574731046121877671912445440226962443349196212569532662949997061556986262047777134748286577836970462972031156535088932041296797200904902261386984758139473176911073136495771622641313585674789263396010475973536914142287520358646188209413478014367583278941442417121126823377482168306645241150568095169557342394330981479828663725089340024956050388600718262728089862862408312632902693688446725355424754191361354949335636939364240852917555068707789874795808851372413286038388080294019224533255474049742228409205434097169431210774283531413293664267205274145950987061020355481014035897046768640172632026882978747190419438582194224098303091701677363322129188339980378838678267723241252323595944741576342114191799936826093540184936797488792598782026695556851261712004660779617094987384692995180223594089355637000940069840163980157754967512704390468275358399698512150255938715712508289081056207021958212825415042608762428413730700134137246550714105886017589650070605694383609941737095394799470065260166797140305402726437252504160461276967942178589817584113021454695839120319658446187706327054072187120036849444551315646724906638161829017772226824955133394002956173868706656840771092916920715998896357353140752865903119743292947998008638995834781369631628469832632195826824648938688339818787704162766076047186312977310498114357875528813287230408667794188636059560283710148290783552425164661780967679355811619646944122946439766110920945064211565352923844719029141132551812552790879170664659869113363841774593005635740985306107403761287856236247813600207264242811348860072170762108673969859620371575529897217633961835865737792082894416622986141622113176971744408562678930375060238083385465797290916971327073558660895596594776547232546871999603762066604069903788742088916355360598122075177065606750696194029543948771480394181217838765755456165030629071054511775439045136041226356844305080209623492926434442646230805191164334703588074036360985096048107669122643928282801526965961392423763585201188219485605312626596475258285236446966338633252372953161884833388231750094917971883469938286659321938463628737538927300332024987682385649751874378622716846956557482931598461425852074950115669908347474968085537698669539350415882646236124824589837866179043213080938425319199130153812903965632163011875395321481436078242809840839508595625562416263160813620958750124004827171010214659261497007749795466459259441958837593445151558300310553456601070626464344210014545599294452884199722704628246387142535715064872248625421052879943259917541556993651314708977272749491520647882105306578117710482139212149900067447843090348105644622558689243301645968245684118382623140994648257123007961048084632632392102069898362833479942922005026499676142793818619951916018515922697545782287159192518986433519050350452753610683984085549560275199650721197740614126815417589882538253385299856835676456160876428751205304543975471055035493657663908671990147085332481981682866601393544806890813559971845394293630957635853440131998387148024664884263672684938891754890426681178265239795872467161376781346894058023566321426230162033925812334112184696455995368672329237592609090827880953124555955713187982895796519255300061652040586769810561983716797520944006169832650039181918889226714673963495548023564784270260910978682931545560452475999355752805930304752396280240905478190943354589847832484894405652094360050646117426077182655055877265069593936868974986424942246110127805397472794909104343525096143991478453047892593018025078707434164375142902254289810495614352482269239780229953921393379371230435691185968219461413990128145547982608786060047460094499485396004640717019791254807395318667104733513980797397449686141197361835904224408488110563977189013662531820780131085888068502445550481384083200165792997224484981237411153625617031350913945958696710800326351174140463248657264536671283154441154252203820994525418323402633419207549786744756890118086404800167260026578901740117014414154751395017820317493678690291982187762117388372842716786258820550969157723734238813813154229975818996197889188239000174744346646747827724162926235300870167350433629683170828442923354385870301257623502473572787622976400791230536782024641797310740521313576596812342856112838519313785579868536599592533295419216510562532164600234003142922816388002852478217351236417713658587757220602135758564964137152637687967971688207855238048843712382193680714467659214852612366186763774069414558989205322856831076594094402048228481999270329333643715454920878506620297438685539382136977515176608932078479043192688604865836014683632940212870512565015043002239448249629300627799412978823758255641496698304723193067946601870617463125238204473397212857721647905480874900604015421642558317036515700993462168735908908827719480148532751835217810347287996112683175391114022069751154752865595995166564557801884545151765055056201472162144630814516457170684610358963947016533118131150828876019533445028138665920779530367437001674680493932889136787511573229631728244810135132877368520542359149130286690006617703261180963809216647631713816996003687673599404375096458311832790514816834265276857274774581679669181636220996291715925647563966702806646329644031751194786804683837981050118578891427106546825004596840779227576987977593728092108481484549847445003847131611480305052009583870504653088244149041522046785426455789201938425841015417908041625466534658948035929030020005516030838960864346802528503599448908634862949394416264305115438444806053336725900817896479372502463538300699924744327577693033274175962143090027147771979369595195474082176154718446448953024740568799738522207900534631166961792203482276604527307032953099288939479362062798404697720881148519337699461976082840015408319309502498095222980277523933464226383774311401329412245151869635204564109562830889782608715103993063100379892411493820874790463321681448849183380602446404526129342386444097162860082616676165549726948435035871423765529466569865423330509759773898211223986559580496943681015597209023578180243848510103026382276107125780030245658498214212843406485826111583431102330951154772425252170145601592900790722495760636318300017827460010070076224766653084811880919677375515341663695502531767336937820877644023761730821782103692130049171925651047620534564947446328305270572078407035247364944963412525075865730669073806049680758488972906429114302423372309512284121575884560908761110768964601464157325160026264761351791709915258168648773212771895189354766348576087139847972495996204085858531701717884924035483278903314930445564493496465295407470872146742149148707204982456493358132839586870732548525233872548856925476453946142178445624586799407112966272758577880455364317987339314469932455407848882078953266179208754332079324739424889825701735178624435211684174445120582817374861861131421247697337876787616246171882243109848599413669194718590103067506712802514286507393087263284756471523992576235506685041943880207240529746432291656209076822979126507915599261701288004661090851272845277848294633492377368308684804124885265639384788780596373258915262745115551775112528951670959400183629881645294977414433675984987517296475238904247582508632151949820157423718037210992972109655151252256625227058691509989773708277987916399368038275930902911286405131593273935637203804616762305415208182781296322758692478284184474104331828025133951123881953342019177097490155753777115566045612254519668923192112164965492090392565085620508239090641607001482236212703887105711532155793341551616023572835183594277436684662740374549225303006318176211461823184841495590539249613845350777724842766120646383424276554855770824870711103690676541303282834716759444344723514761364021665327153917464937921464140562304137657127064012857530523222216727643147676053100692302727669320518301472639419475777011471516888473640219712964347116822766580799955081233068302252050732334619239866818680138505152252679137177643008719450401028001688193513168907494206101839386167663247532126394334422206841131266157160862053771586112895828522270258564003267222371379114077263363707237856034142418955471251169915033014839337703840272563134006466157370855666796006529895888611117937918113605392132615544968536686624115102882294407692558863123891725377876445645623549944130945905144097344172878963165859525161820683820271533504084277809649066405591389313299059211844477365001787306182886593423248100405068352381519147589632667012704748317877576808813292131903088576972295685976286492603687889809468379132704501156158272070537382353600088124297047941126245795091365348071285500643846223588256530468493495335663036921562833991837609090168960974578652195483842093565362589441533326872802087535976847177408731211416902438128592220484000658606216164879849806903200323976418912853744979726159769047076022594086909896701764509904468833126474500201364046567261933137864676488224594240320841260522750185727476336215855865647010863160585462429854378267027973411583572275199361402809764260047394813424880599978699552163004950200115649476084044107613129523185758869605124888101658553723564989101102203615150799538951554423032978277983758306838954870789943460733706466383544895811687048646489890929716011056650740583189554096832047620013225085424473437712780622975335653694753049357684052490025736280418035803900185550290897791218862390556725671704178589500921759298286011328386903885663861512568190757713672650929679306032746695353202898255850543747405740220327955588628442582766147787496487387938455780944254511931573491240471949851341989980080912434742147412091728758691530970673764112451027048487556669244181884791624988637374588845465180002480557872158158782868136633950442200600200577402183285996478390137075591739001039714978543797404496279105219398647712784848868371121162522358719764845282503010528786961448475736668268142252284606425190620960030598394680670963584305428264219829267886460157739767291448197868539849798702174626524431177574377606073407898756601649403061211535618380358886253222414881760496754945222574152127433899692362461530425482698569355067230568998935940471931097590544501375625604140551897624348948865112863322336973128623219993714459434037504982035225159220075747145880442051473862380327911195815313970429642252233437197160348367608564546113925853770738359349198480753152245207730665345116753803033017684329247979951286228491050882027299082536297350512613326734298271236909659889784480680846555088536679224351451978101328731205415315661614293506011202897311719802378226627435911156621093749511398956882520434895780739782420559728042978914451491545582125261874195603991155341922371559796445920759679357632777302966194673670753120918423348490304008673986143009375806445125436262517063393779756773510281627903533695379311991193932034484553155208681750227607637109787181393745946957446252076190319769198262875992563166877945068514317446955458047007314583878829113899935800653848209665732411320820161781921893206932975244903997172665775062351592245401774373704935471849083973130302229137323228068382094145918146842066576664680647050919559923588221913066533971009166852985175237271388530900027905602661813209243149318204274735504932966252836948328175331717561927622128949410439220452892038071992563881869192079882382122433127705904268344138263767955779832055767276273671954408269554822677314530561693163499171120262955730318935954490242145907356838058542763354205590763476539441216331044705393738295067792847529950080403523082004246734939139687050351918038812731433297216869865754255555217268360511742081533274548120084061098966221967919098937405970566929985219571255697675914699722020783342271284038489744947807857704963650822476443871861588479315322973324598715900426772332849879012199466396087105597262794409481004219139316161296027419016366634708271896121258801281342982765488159943436324729898612575445558989517557195192928239225727012717233953279433532309560981692228387105059576381043728494294419468166426810212883690887193625187553757831428005405148768484126565423471082656675343849998802411838342829074697083382330226228508465308202673584283227923824659046265506572721170577515773446753463115338990927010249725599750142138470675617048465453331308678348152070889822735723169361177110470496487328506662469987929792727321490957459615615896070982676491269758577151128800695767893582389016492516523224453489355338855783671248272931841848106189521908880547089195539535125825555791567855600460715195580432838322251675921966672727831646053489551595015577053441399430728808102528280196845040355404739263023687923195359307967759483750002345132200146642934883693036456483034757660900677888739720278313057926847747125386358293414750025989411455044899768204304190678661245295426770008176749377988563932881674322102043096234983010464730957232145336928973438497328527247078382004750251914743026655865934666900775161431832744971680975626159024085740508145312718979064895528131011064968053764316492905986709010373166030649982471081183839430222260835870915749127522320761466174962289618956938544663812287524554390932604074715220376201949273446937797216433791324771363579536285772175964498604117946815409730303201008482850873713424969397904520033951362478140116086254356920382133724901157107291778591686779953159710961172880863752861141674244108768251706111689135756910580096634378258683569406462081225535852315071407017797608752355925971058101534021726983093866215633160739939105690191093915693262364381305666074022334976830999339172671389331844702411196078601139455055636140762737235612317889268167711152876429335008023170131434432803071813649798820080241328245772067913713620375683791832917217839555928235885782087023015709689932364878317029599323535347837013767393098559100897469344780674748366963716258245814293624604688615033070246317700454278832271188419070482740767955046727536618739719175858968301302795632745849336665077130792583456192968549497208053776272514684315919113422024604645610725989533187950931849231280543287222596699783367582710933987973152080475056358351364003023485513414209224660597531419494754464330606975028811601607006292389053669074026354865929585900875292411618434782447887303792619460032914581682996930559053667526032917004730821231765097528866459440014804207808095043759326281281293729250413235872335532656572037547821198669487092327058543791985158090704596158307168364362063427326446867422479630476480304725509734544388222650836244855101356480075442445847982518963859637907742354323681172350727583295355583239655994890962429783146532909530651033863349855135299686152588106506090599327731084527096486754225904260476621283312912604754139065487419684221958424674498664121329341290171781262153267937872939959974843953675118171865628101476939815945318485603762860036909182411431120168640932181071597371383950865846645986889826285984864207178329256540562995797704609603064410117989481865326840845095423254203435004983104801437499117926529704865348485572786650069685308850987468848470845163967091816531999439200373164030493757159534524166121720781964873465212873651124561505303572812560890628887619657365704325131006163215778804542918360488918958540131106695189359856234039525178583978040839258232329321763315390562556495608639049798865561800451774293108457699122008771026620239457691038878138425039023292782671645807446977119419113146681699979694686938711978736844971976472193964496350269198101611165489067802124277925375315219430382733904726972529793355389230352109172803641492230817843013740763903640597869392687824057108332815672392310403085399344109558364958030464624191871930736865271230037934177125873625066463011940916912840341342887287478695888562068592865063224770201917763442839510203396017692974879041469643358623276757444556311002042737127438763903041480586370194788991201244132094523024683131575683718168531455185556362820495609932495087988757388308353723466567794282917476219592122011596445987149534658667308696391742118802826865904951750026222975696780484869628497829843209287039591037219541118783352566821266804555763253984091253070315742435818050399837804979358881497527468225676177544100756326794641541545745915841432315368589623956465973324336889987981941107740568086673059128922523880617739802138393126276063893046873339739691097714752215914772491855755679604424119290455159010843195719856389938581450923761029201131695598215938406440700870315727013269387497694121796995611215355740340271853740841289511750227392941295633246585474947013076417930724168070305901564209848357930082634231931472298059294816406048158117702880569331885608934479459204884876500974872671696787174530596319048750261887733105717984203555879968674465587555523659606315455860182559552451109516649520780450762838784359822795848740502381901514189451240574628577643068781352540676949152624572757648515260613399718031845514456179986005644395638563762793999396415481737330980723789134361988304305349722100140514261564983298988558312569212071837707515209407069711524991561086270323115340581939385177755493402674240231770899759623597826527486012410689517397228075318203125726156380425785280831674176289352653086571124344339655768587400678459252595836334713919455015000608347815043730279471721998812211311793869942515324099942214943002089988558647261513532897913517901872522587824704564525591123775183998253899350019281710125942958499546884953467057703183406123257368067845447897364604454557736552451519975377411744778087317279367463436253306132871309598580727952301926606111976260554978622100763955455373741443897145765134347857281356669455159467883874500146453880454397937812981835995680596301251920060182632868925499155254538661253668668771366349785121410174260982529730391232290228989515957316175779890402257048740873764930576114214557243957711421365945778816660606212959305687979588242731320799838891739374507439188817348253304320379855500343158893874354195648126093754355882748823508880885003476795822473826776929577042201026820595960519950999016549799878348675220876961611308909235650168646990248232763101757552697729644800065447718810431292741821940367917801417437211447457763015299371709209600646376469825513584159656362726062434644086403890193675378576091317161114682498884417760962919258662420938841665877843348725125888287203137364045868034285168223219184617698287029551252535572273173952440829895683212389389710349256079318338056810398617653873244600294157130357057207250807642233203177816199161114452530479258745974944708358184891916912571592256672462487583135289671927779546825111097768330695343452416775074441934446052709426133493005114656639788613156254924931907814620588994202306317582005744585543528176360156863137947602145877025580800817936988684053501980083662068734315263774123584918519594243751948488025075027220217658742193467626045923109504080016350833169800757345849859618751712935417036862840871973237265943603224032333071018302940485755135123004045486237507107498344935279261796114233978004155719941435224336811081531560159126589785646919516761981041251629026425361483246043860376379943086280127904614553372096073818190541423689948543001414962223921917519774328093293382428292952024776232247351228406590419452628430926459191750829744621307052641974049193936923859915106135149219162464061161190875334631928359577084963703151755343001819809325890437368276932467013964350758365907498840159431429314733230031573283421009173022023358365027635207731299937704016674964328458955629545506351920927591058269413093203075541619094659485640582648033527807783715518288766029531753906115633008341925476966471460764465040403670809903134323396236390783854649752525333112194220777643034358544838895012621693599014960199918401970038278942632492210898785857494947950337558127050184130661023695641220037015882238068224181897970307947588892915248394548025422969935776719707656059728612886586897371849945062109309750848854077974459143454722437463171118855726016920120200974764968926599251996532461704831928927432277629815358670757218001436234419246342480925009225182569078662870855631684353888272691890121385059535108197321549656888501457788862432061213297534131876173608643618240828368840551351172267452761721395456477355043052178630862132504752608608593418145679378104840586058218618896311674219514110333882131353557457247908836484297139788444928899201649083904602744975946846511433952399915699487198957060734665700548091326147710564061970069440011784655699503553855807816593321177008989300259715001552500979645983068187352276148231013753134541179405766703801012827208214700827850425195726976911084529883535103285375301513928325264718148980481808845324354136981560669274629857480202150475238513466436239476440774043450329069399295396267290140792786763218714918785527804370746364677898203878036453203751441824560255722501209742391781472098919453206312344709186897847160286031028073753241828512401640840097814911192909192549142589157021395600372912191747217923585209212535452043592182770219162771722683091695365652842670097987669611483379181757889621414758976777899753563611867074766460538950455294405734254811764680422886091486252699260327365253379311729951666604718406130979141796824619819288762736540221974880858539190659693743849186277297571852591791439339731221404943941564576349228991434518373989112554372271739103807087968330049308963750085297513072172289423246373067648188853894189872675932545300012655048789896999752385675402350627730102968224810551834339499018206478088172087448748349799187585830411333081334770368469178586221622216102934428804070098514118627620436381744025997398024768997727628276988883138840398811712319420507241729249635199730921930879375662394059810465493596806271025685960256650931222709382927650668153466667716006310688790936684630105723651883461079711737536402177908250737200821343672291742287394761524707424320540384633426812643093075304279841946085350183307508825612647782592302678377414407697704484682558564347852734375906251461056222586721630392809854938915979036832057869006870752823477394551559706218002058646673455228923671723199805940190996708692981530849610564226710548419725476989524039292190052071139432723340301174316004267146406063370126396242759723267909169617358396486649211290173919437782398224113563671450951260179245887592265206962092206816525046871550150781945362638649236518791361571529189608599682627031590721365006211813393051208805436715737360380185635676845737495049795546864923045173797963303764707604694329226600829416780470458853309242144898126623522638891301777240344657929052840958747040182071866592372714624243284887135149350433480393426789770575329532247344564984633913467129280647873728737012274738039934540227239964700688673039354358215604010851047822452052412541997278301299856800620294495327547573251851749201389858876841302265002560340846682094983249207071390970718486137953378723087888911337392234125982932654745893749672591979354648964443173954779191624117127605583955430445418471536191732302257998121421265851267898386650992482569677498565516957722285309543606460720565648683980974277412259117609488489508227633949197802946539059304799555434050594976194607401750346026371290533512151613599259804472315114360371501026360887804035033363363848861669855853217643518495632564447640147247199700742219344763615124529229760657161932774813871870511599761250410171617512364784216471883632373108614320152362211349849109340506405518200014649152594894345025950638889399125277571056015286871510318997733398790836105606175834912199712478793318077374370311114390890067148688477519572917534395310107979192316498347999718517773636682825174635914757359753324640348069766137434908881535277120394538528069226438448649426651828938237141956762699867508833995912946918642481256226126941794278136195107821984650925590731812687025369068838236168627343639696902356031024196214468458832251951332469374015885820291761748219856268734571577022569199028296965159587517322546722171288868454374183543274870752387117049473514179780529860105578762529791396197939649348477511079683214410991771609152186783912720285898294072661949888917836227023339954268995071206931897176305461365757624822103821982633762989545812631750714408098011367013384081684060277479652156715281993233085185323638261087062157116759684844159422962521344569505734138162738103238389399589345339335793168947206668714803246375598189046067617537520186012969797957626759502292768480123324902921084053759263387887798253994072198639730468569918888156641653514425772387836511647384162737905281903737411795897733766421654612530464165004673464238471722589755584894892457169768369973503956992981690667702429368703985578804759712400564268702201495783825216789504067092254644668117795168686583657015832471410111720499857756005350364270278440020698397231687441248203740509664589565541520673532315099049148232900112127378035697471143069963861717306941972745011800272445626069855663685184584132314136301347017207328032173567320961521112388298291364909785013034385320441329611013757801123202339259436747783737030957626923431273063474999139444501722427326183786710077569239138116093168077965666647477984277221573577446198147407495921950393713607655077845228786673692015509240170690911245154390708856881040949694384834335115325238799671362677448830375951350623305859096648748497094782388804750172371116767854770145872055946796019631102368849113343009624022407693669093510565417219521967536266643591815015230606955219222666277728618681596164564490356580331770910637613707628651752718939097642968053498632065068873465587377765898723017162498520911206072373126769772400858486877753010387413224005187717650581421950894368205715396149690541377452084719798020891238552797899546184450449683091179973541313979816243239499890033942668553052219743012594513442254607509506270847216076991690803679465029569656950864446702232071368243006859329344549133028580822125089648356535461550047663810564016503648255217883359214337953159332558154638189376671641913581336605790708339210404067745232944705497900285203517963611473161578870570672549232740597249320606102421576040888210919343322747714186719955596134345279353782247621845435692632227993409764130010862570823607573893238311713067597407808182966964008230822316218720645540767221599113154122220444112722387278153716844021644867007522122052709399508126311814072141287451897677953015779632417079776332536218015646186846956788848407679420149522952247244672372043356189954310196532766817430799611958956134605157735574452213415410094370091424289324665181624182905531557448690475820288308697622782209469410584676525734054257386352584632405010802120236021959259197258378467018516330038380317945398115727201825138037474326216454806728301001370376769710513847869052543643674687320565211149477361689910892432792183214747714360844324202631566124375114998532792609566568774880576438375299684937560106762348372320648003362451217425401594578384914154370039897417924143727412763672950805660754813051109498776446014016693463421214666729824842316549812156388593920408430495045736570564580606520099116750080096312425626025595958766733796613328973952836896483096099739042556178849306431303549191151214457029973782487512317334895314762303215349431847971804096505730334369838423070373264861571818146045622721642245417411515624868247590124075989148779117918662300267906995163668090888474928843675182688883828085568141867849095855428636986634138424600470572635604906266737593370837037497004418941711123468336096601913275866137356773756711951895624207829498617481867064894764708687072552579974583433500966661412045305433235432893483869583798291457048645381437712459930412813366256306254690000905200514153842226580818527614158985242279433610748499571467055172910496685009171185269419128000470627215019282330212531213335378007641560847196127662242560299801098442090537038225745201101180520254305844061912065962214784761705040801070256962587016325164617955062930102845465549031801708625211924274108654136942398922867052230815425657646150557996495636281651402786209475781260668080962461533628562011232863904402241202240931889566203706339946820132858209427051492293006232731666492479793207280653803261389192078720170919476704673821595165225166173850002156233146818103204809801168400784787925642229170615817458702770987288384375356111202580473707360239508348643215647361650216958402333479582280077957746365947845826485227077181650469039286064355044453886668634160717876214204492546666651633042162465687774344942333051973284267062421996890727158289993061541301226551967882935557826827361262608631377841671471625798112407802405553151842476899583307923365134098284600733868390401368386280584172075295058633815271933699458165965910849879774188767212013093504903861623750905062338226167052168605449401788996138928590261670562746025754557256615947297951029770063164283579420636029800338252704000272004096687077934091940520004179151202180731628045018706019767746990838856486012791403073458103212882399922769860732690600095742458530805640482850602197726309434963834471283356258955751328256615054575993640989905490004560210278081648655351615847924229292602689447281488735125305706017367647162577435767112415645631399637603284821459325545839125278311596044459696598881850862847186763434944600262076247877424194709157379580359263398245688416999103160637277665312196109403811299860678691817978789071759514625347160255192227106494974947739233668434646121603277350564174730537760816040098454423387145350958519998920595369300492325952187815384169427564136855138785566306428093355322759619896588140952584570953710703118522886356176242156689427678322896163960763571473135125283315146733054321980757649261327066231520640099531284606675830443214572398836474430949319959814440125927336980666824983165734411955906311345005285981537805640217307765659407580995258668540409946122248241292123847227094530069780598103408467239272061852346863672172573643533103628008475305244756796832939366775011678079088000938379097592191255021288460673193999421604297004936683125279047708047611417244235154917713217278620906969348763550506101542242421321856352778414653010639828045526349665649989186174658907655156393610176813257192501079000417833927393067194812067159728327814242213781896507637946964226034773299572133039055408761802251172821193224948135569233090427797110008457833580326335085911112960416992839407306048213470252735167880517682301311056175857590260603028545712610436288147110997554973808189167666081040734628276803676255427284063767519373790491556618053465588616487965416569167428067866139908635801554649107822202785457942514777145751701670540489524320330502331595431080070126431845476753636839525584207945316261159084799237896679228654028988511257298502307509206174024859294902957740234411468260080692091879843978977907200782293103758830498492212980482097849681442730261425294930619634409476446590049341431647475795285370367303529863244131116887737179117712653412086558601350218845284005562219342796755143445122369626944038599404043067709814770699469809339990172448495260948204710368785478822685691515861949940209602886606374469608588542132119994183565026266576065611590525548886522807369005101155358116350266740759820608103739632826160318516556568662178844105267722137779557240739686598875544960318204901067919717787022933072743155941704555468906157594793005850995876098373373615965151805318795065122801851536136408007201181294571951471658578731821262989989923074999124626126040200487870362938722181547923501399874835261904083335245812542430461810536695009538792653039279949363822154805474147906830807011178102985908257254644710733789902920907375218128928966272219434457154339363033295012900633178358401823988994175340030657537746552995704002202054351132653445344585671422228361648527721733069571981648030965923056735257530040833632129913823724906998525852557194254939855381130793023023703936074586040475821602560475784817121459481960751955527452878386458726019638346204890929042647309921073336635680631308966602739054059535720893865628709753262575078406387503396978559181396653705032672386600403130593122331332127803441942012683935882613779429262784963606111685630713850104421462820639573474841294891134949484417199694671693136171920292885201362627951440509772554553109813849153670921047596790620184145390784734820884793670031187720272131844984575590727140395861983418386550579537003265177592192036846392062208581325723193306379748763665139552290323279765843131166962248919282056134768674382148960917474518952749291485084146898507992916234750132991217807323201715719609871984212492362128980076874508529251795327312369454776888740950185103858855493479415820521207388912095915789510234011723587685666997368230283280699007718697718719396992243518681280125202348184230622183294253317954811577348808141657975718609369046053940748397345966473649471547863711931436178538433196507046505727280195405084763660874410013609504386691528017144658235827681956753910293137101728760995614858624502877559548288080965068427815822792578761446841697013064229821846084558070030628109614030644441963432241916407568451980289049641300328574330761868301840160302965919998133328889063866954887787281905854565147481336692013487514208837068588450331257532249665158110319958101089248624166055854837486047816337222478632393349608375167345853491102487836057448009229963592723157366470224606028610815588521698248812866050849258631931615902681960767392822116796931230096214420459134853781906086220435875538504658857750806522527008594216701982135866722246314937898917513805800882414508648952241354120997199107908293493790304066312475449148181156271488719245654481856067239589202310002010743157850082811475084418609643416694369915934451003589356705974911798589690913591652523244225717374803834154709713109285213754207651040756952466637154777750080481968749595060168448160519510674644162932194246498752247191300202343395987548469380738997534278504993334592961518812309358424062619956971274227888942423059512975198247831430118202887164234681894002338819981683787375886443721517843844499137762534988207700145610774629028788310325417410783043074039783324489609263938570396280065914130806283654399510171094500866662091526922202676093159312665990794537267928362982241980532521924052737663656117898086815719414318426015354440097398822842427334890074714876799088061325582340866912910983401042112913769980165051926220721465335470058265889033999515300714332010924479772655208483065359417284298239398300653698519713451779122689668252785588669606029623808190794909197618359896008846482934864985883693711615233051239353653042942582980569756705977106057953009096534661496630374334807180817147129691866431754226192279012730254078771229164968957626732122652574514482042899585783819857176721293128144334085082176859940341344192280593779502936234609385713121020754534856032137805854350674492796921456184815497738942542157237988194998989571106068954467765951633172531570898695671098970462280889653073273753933864977606208032392290125094167240049668399724403600066062409713153937844244465579844417008509037043473579010168257768506333796044990728310626342946361523312995885616991165379318761889760822003526646080777942740404855893206282193312568212445317489331331087577063679701865511458533812544486475058278256059510401280402457415473856591576152324665191714422240813273121598404830301808118120040621615824090393016889608143635337442400119552497936213647926056417655104933417875759540460172813214800596366166404873861901835370819530781487019544489056892620159108980560064891588893368288894356754677772530586025418061391269539337307216557445444504054594714135423558418937580856518316988984162779882256307321200711437659819730830186305029490966197011311325689693870750272509849280184863238351232691986422434095485409482866466794310992447776978403113582757556598590148792771944786552684995696537015108141359206214489046943258618001178554081467219896219403670993645335311797491888824413518936608909982345579634930031977743796785114000227825302403417994073308394910787384323616583144421472062303232129049743281587937411696292688838996381240858765649859243775875569608248679522989781302023316965460761698916304835661853546483633077496619667733434573516666431383540512526345729434718468378323364504373448174497705804807898626418191484006014926954837162827903928080086277360750403054514719200283713743736290583083732013332061725706454607805092175239329226337952225404362808316376215698376988005630522717900711932849218613070653944475968319204332271781416485069591495428710288923525195775208911904609331644622299944531446127032501158521069484457944531157591228488224474700735281840945214878970094191747707185204404554607459006655652434535629249006618897636262194628903789653363172822866456780297098312537599575650278681456946715023074604592464746592659110039872603600672413095561751195572171694350987958414946253924537451677992824629443244066513151535219484442718580833417567279432343299374027357678481030769080373677028994778438727983634995626707377972132944415041377458568555275292099405958857493291265107277197739726151227262210219573699606800328341154350615679416688962238302837515076689304076674181813036270684042101302260817862448406339224922849054971098172008971327130728785409098865767229954130233391035742662177991735211655069760882480402742404802951907820422465169169856579582908141893766191170769296146828574595860447258390021826120061257458299251636758597516506753581219303661252511350068882556793016859286318419500210686609499829327727353957654822884776314236159662988923492210699826858460250569880321826944652243801285278152929324723445529927732281987507508029244103137507976087580400420364126782513008335634790751210074413357805534966193976838759104784213637256480088955624028464080864299153012859820912554807947494132746227741769624379588455008585365127309871021200393215320969110131518984138006059449620582036432975205782620084144846583280106113487239390699821191182549730816695128636724379932085923250021922027463760021870373181724523556796035141974073700707691639481645199223228624109965788118428187510564402236594475668552670859560692766130314668276413837763340339303203193532357068327258492533642567958376190292528001064403864369809295867285696375925461188291634211493753228918186402243019600892430242724027685623263409926416916284389684651066936668867146887907287262915449014484737866425870503242560171644415180771405439388136046834784666061931673192194901246498786070368175121967687106031097910048882453175536204383056868948236219848570304219669339958150950086471066300053171847267012602006437490613768414241196479933310464885591238798550831436186359884607150663252495402962434802849623891745467694222323988747237614891301006509061692973254591747414413761257369869104146902251607909362880302609729855391057929079302507738120989218795273613827756459186947885671264854363411093781794834410863165877706764401152235418516380650684912851711077108629905610997540379634845655112062324704399430830160863255814254895587952904029388733513889712720325668499095403425316710063243240600503158819876626024916381495339152344042743099290593714067286612564781868859179080751163129373970140280415634919880050675878492559611660836540532870367554973737292660885454227835317962943068634867797929052844151679199168372385670509942792565075207827476255969854718273903650795217953749250817977396912899575839180204002728138669510585681982925863452644783401802553500958202375638276347499568821683601147194520067739612982123481200969199529625346759818240716428719885575154347728319712953624209678009993717342682010151441026010624483926422052490768520826087098967881579434585013519291246465263982932555603903444151383016125280720898048216781627993515840830573665898598129094109411009128278625771037855679309839165364100996756484504447604193667626245204704503780892367648720913801790434960061819973225227311800330076632360471056622291402687817879452632057356258331701885035769951293614844336143284340548338785854150491493262564200767134374810381932744498857650129217812358223145164495099271415751427698536614450465302689630208817031946461063260241787033816055961565417683521953950555331576669790831734527979224741689084436113862677824315122519795295205497919872044639196628097628332153582982443441790120201339196841105735366280893654535552531715577084898934838379678173994826440448655122393292373706159363040655148797974902559304390014193191266965917421688967682138167395836620623439992494203735236005843360398959547378479741005498759050907782303451789066277683278256370041432797085736515592372365948760925753779926174629149415513839472707981534585818509905125840026262261665604654923452030814498696585006525375120638798612905090932300280696993014751848595935404181516956533959720844313036554510099558956562643227127360448747537899421947358615555236316546243525365004456688678505974870612529454453785335096951891801772048781087440115076083719069839032358735863739939468326476689249360952928182210978736425076632277218725655247018853666204183610972598565231096202938696175910661457531368961872197467870888447535017579880046590729644903334782553481438273875414871389454821490435615912983915581937110472742149998899091174797518065355735889077614371956175372030991204967102171205013055635920635014710545266190961816024725990773206397319412747512172263267075425318718720595732465289767190769684649863592123717827869298706925360931580284883169900351653531568147808781735122973594640775346499332761094886422006594286803854694511861311837854154661734646280273826877757001302370386759543048964874188807669922157888182181479786987728754299509578287292604102401739256013753671293724886920853293670020460266746374509268755760176465448581679667188196377770857992066245912685093285903418676757945657752954602597083898147282214753423143865140571931390568844083985487020270742865850704878376011241386305436451093412242735571312075743864818486240226417255416846973572388628218554688223000196222874150506086938759998168778961387384827315948606985173770704799890247090827285400535573037020373327991031861962725101760503862442232392977364394766340003534228205714443438273617508749880300035001645736590808891150880552437780338055406701301579401718587120320786879065338134601984016304893160136660060083392433344580933232736998909808559035572507918120912616867169462372036835137369085759015830740016085975694006051418447272473729974723519370404237253486775531519156470395567065255368503343261251235072599550335047541838883915421546385780860802995691095395020069382453396029497862988533617472635745580093181482890140833770501269732154823918789528399595625835993502987085125742634801649905426093798442879410279237279214136146661620267704831247480070048167537929062345435292476447519743078326667548335176491371384842427370314336521981352466756644070958889102248735533712609120954110724168463442862749435290111338351238160654477124358846801899723580018854057770229260262023218381113844638279062705205069761752386965854112982743816991850818358950186548236943597439343672127393345242806934748048443735904111862413332514052769750610081727013324462068495364789718176318162895510602563509842235262592697506659130553099084605488934674137423487426311282691988811887632553019675799032346111861226804754849628276978402366089548154943299308717910069147491163812566370906461640919667608964069458759042157094069756729494510880421730104559007929780493340769751344234028131240884175987051306629340179848900530332848975488201979101059024029137130262339052800310009208348366755437046756534849373900903885996608106349279820027298519758308270170437460671583415193146994922357191248816198354701504447941556660083974149830478262155209745402625991786126255287422028642476622157709257658332728194172365274010809672218164095778932245792128703147331774826644695750093447572066161187079132088931938542706261452892230426075620790817589947381938537606686671805324034573270978460401932759582452594174421001120544287636781555807154313346144893557149469994060181881518453905556021852402855667484103702737431277928070533944214517299944578274033087153522470623937447882597594918520770442641791563894523509213623363822579052797751772325252239870466630583257982538435532339545565488559512202900154494494400930567447796670089532190521855000029954501147095139489063131142125745424270720471243374563106170426733620769388249857087031099114313681717562159441287195636024371245846997501373613483756206222120980911473986637931679767668468897976224865186203060225614274738084587019150139434812890496224361973348993715592241589752646281456757545662223707487928347202376450530398872722705112359944055879507908392039372059637369843704247511387976458030298375137819121708968357173332495513854163445373942462114322042228084003226793988788025250389978941424437387130263647299250507749349681216462030614424196321851820236568907406937914669243634057795604729425423365989428156753774885094827167193433484450525364401115090544039942270578699709981983107885498478969846697789686712753137511932479289697696774331320160439967603101599119450088046453959111101281038439804303281432293165441890135939680044801336678107496351986225090849431324422617857234838238651338874254998280153535964695358611081824067971839627984836304961329429378948902730602816492068243964945121953118093295202719708751461857151904918607831004238834673883793147876125518310953884090856351275377403674921027972573419495807749553378256990457750305373606439881964684158770062870010736999432991460663645508720102182362370515887159598066554153336622191715618466743371025314124565021618293346375369734288468362343583668698899709567914128533286618260893372415133003291868635512369696926122522886539931113652896574382180381198735047213526817761163690427934754151394739117865425420234260063268524596458111367767229895740533118884683257414028955283188618630610415692668450546022180435660123132442035393367621481289469599006470365286517059313336444298201974955344696693610835323140089750450368732773363303004145231544535875751185537412745242732069335990880464233889220414693447692909836480100563702887435845188104685047887720824637138728166400392479752051113508087100397420820651937428736846548890854330906155851941016076100812995665801656166589283119260155715871467882056828835555947266001481132378780149571752970881396831687530861573188146065289295605918356754319135224775697209629474791105764609698975315203317810110715859966562505818667522717745557580379603168750933203248293739005418814097668359481122507509644559792308197785758178029307998856323529994665895619810251194983627430047341005268558726007714091366355117681082581134718381840842075677253914313511259249303816563542530949662275022614130115861989892294401305669220435872729387958539264497612599386303962806251124681910266963352737390102668882140058633274769766545757011806229882314771401766863213799636796145962280989508900642089539933643780030463012194977755112939097460379538495730853195574049720115054067771907291886618992352287903142235159895900450083664575299556478237565862422187193923373684650767530345296818538624575954757925856256655474858085855427867930971297115442016960742267464453659347490096730534603342465444316339416482442334793994212337713651049679499223487681119091810018499989146856742854851394819647864239041366099549943838753219726771561415615803271146760035648313430675154448627136159596228179406914633272772676707118037340356934551646782874629491180458148237836711125080289246855761683482863515289519702875789852765274735368861560007309655381165246917325586623600715449419432740077545102642411516973767497106403157397433485987629325052055546795055550319278154315330403788365927615676730542217510341538263465413306209243576399950835897998862250502822104942054976700783907099427818844617731034429788378265446634227968421383599809278270178620073427617257242734591644323066786565177137953446915674008055846259505160047797193290595082681871836767092053367995600282673726226378260281069780443497568140561878155384594314416490838827987944211352566909894995138085156527205617128609089062028334544366730271250032199714561764715798245144500145456387800272225650042013332219740515192444559033716227956826022248535419148704090956598382262685537176348119170885146866531993967492628196066560057142729753428628756580445975373946467220541999066299055268871209392591604239032163335972898197125149478741089226325173784080032587373632444256678767701264810826371334643316772625136964002187910505272354322157555825804061220014350420220176306431040675939412232313715490780047933168005072033265853273820940334427977327241826473503355936113954639732132830277196114735949528417285994352944553022514816001305466166764772097087916940134716595350337992140846229031179343714139583604492661435336307525478707750784804687384140811191601427474039888676309666076371227945797294405035474059437967843558913559359746656249869472188675661847702881538212341415349794363167823819916597646898591562246834674192881020872786114679406091506926963645343922278127173268790147326749848215744147027482886492441992744504679788250889259729734802066938072661582826143948286653396584820779862243272946084607059421240042126303634366143235771569132955236259033698473796485311241521175608967611955363721059962932648217445537950718145017412789300763737262530748279139812213199619807520166670170832578316061014162692848666859560102974796943705528677225569999103744687618109656460010192100681419804416972491500826116807270789477404897883010214181062309527203400733630783588417651256329867546056715268895041605482663649908565189590517886188491573745865103438542561453253331236657586080768190214560290696413691362863118016022410119594293107567495286590752681197600172391390645069332952475146097449206527050900671035261811846141438677801369361302386129404927414319454943689271433574095841285923353477794240840050358731971984215191209679419927326410053760463193477719965411663416383717784164671237772784554243600939851596019290149672772891406329973236242648260829084005454485602435900383603484202425947733580649303914002433703187580936369799580619990653388609528965731740153238167842971149491502160548517706438016587653799847216051251597486063061731538358701773495864406393743567211002728936647789589896459216780876558756360703440916080731094025438853050764591721227433212645321763291839761441971442162854659680387447232795159344311564983368574440809958506494936564071288740725833700812391917081496731599780224913019609594492698001366210030801231439668064174701182656600273117357503359198866731126334745696111761405468905735914418140343032440279567094437069298200891194621313390170466713735359639127036352051596959514324453888139642055950281761449302178280437838713764646950577411558498654996121766174583257319830578325072865296909047683172222973907437970409626686537514848928444589277761779908305525261364344366515190777339967414130992233471839345882997444770917728153685633060793887760950521576575372216987257642872137168741115573952316211618838506537360197559535833073088662347103861283013224122673000858179927450288016378014774381338272793961733300142007778299490723629097000009136078228270646422822069802810396373753609360692255182205829348231481970980233283535154873161197758929154689239446253969800798037639719620834265287187221299745458034511129415875757086364873191726321027168098897242400559967372416645140981251636721781468773515568636609756760928960700287995575231207063090578883669384072783380620784318468398243048844802631595352687410975421595150845695376773057526517499390700131722729344440888149952198373936555837066614398354670629279311440103085415573505507218764177788157742698102594983758351894388362612830039967385609710518185918269925072224193328942277337065506307595973557413445651273851968645069684459374600585819621626735843823917056655481675049108736349906055825215591646262443350101476645968734747308266695088164799632848875015846628297240863979876923316410486184593932131183890117551902047765263203599450471826288577683725773908119526953565824669014107624236414746719069945039795605796064473322821719566953182329181635503832893029093610619478208417271204755710141728339732493327075174492367094444359732019286260294347026500116911811203526728757029442311018187900248807335394115125291969846492338439503419089007934744209062798893880059053396355834418174331708430454196671470363433542659343978601419355635292723088583038590256805078939429742269027957434515211199586998133117129964123839185850508703130359101027146297775298581907028642228954064093363056489350399501395543594626086948954842217384072243391209879693598267635932368007678171704220521995671650159143491602479482965563555700660125468171092282820756108364568630446080007345827012327091433883266504100505955718364103902915612069925519605408830474075935069777856338932729612702121645898002570243512245931144375927793232096386326342885717866506707471146783120329674239134643708583120026696477768936914669244714886464975466854253711855552776413672489569739630621675236407412935552621238968305558270601738986714755941857345636880242463139058380336266168350313663753232059894393356279584451049013050237308576707772887048454303108454232758889942965564599093039027466048212702454658820678847515666265555916345509316110062250151477898949257428754159232855758844424072062009689027247003079819063712570345826947934796311982950510201052833311577711447964448329196368870360439926015523595416772920287037132113700826383141466581137966368184406104774975861772378284180145827749073627865329541954181373671228117862598776016989365883016263502399065804671411357230052571533363826193072801626125411552078808886227522401044740130690747129262088752578070792935351979662286282872767375329158487917347418309583274236832257082566071281931125701713550427805661326274474992556116519132824020852790424191863982225642756908994418417932873019338353568487919381825297187948346627513150484087120708443370315787539431716974728024246731184752711378913789359773439016471119695776067730565520539935848874607253987894964695412392718692284035347835552536876131391467639400904937392801035100751761428355805870128942616883894623690009174012214309988368618745716487613018783497559013849102310927930337259640570016949780503437279258978343997085586969271611116600397103264363633954778135456052732920044635327129053204147575570701798471330199465975919521011117472809902539898839173641893034842830477527988096497011717357978439139130182682147409986433958493014064139997772429981476457161903517149436562405493325636687286330223903502283061852957047246844806994361679708058604662792339797547324405256412519019074805892994993901812713529940034215554164220765050492908021552092264552785005169289195437543570389421091484107973985468643009012446993813147095254792424704225195644058182020385902467006980775382446338701147889110054358368024164907501414335504275076116927816468921107272391545837030919902389434153155882186107623962702960841920596428551816416716377325524634252681151477964849135109902157557763267445104267173831852964014200205193743626961262136922161262530934283466026539444189335745464958410488093811271214364248331319273455230779294580423044012364236099818584260037693974315190412212060925269803066329318270484713541631299898412446171984439298398211158562566402555156007684500725285246674719323018346050303596767513832955303595494383266278658304367184325679441211042216247367687588783223663494489724430241471661262077845132856177576732253123123881697057023291299620627495066627849823890011284824127225557784190757156635343883538729593482755220738864923863931869989574402680286821657155184057252415980424682491476470229721284869317567129346268081726609764666389170842376432140553978777427970833187679947070103460539897554703416161176214941423531458224302109715967136843709084664559661452564480412671470197457674593730853623014399935177115672663204362711471353352154111021988810757210879061512254240966123306877914487531541983227128431519882219086536541255596456798039650541529399738435651140859782645247223255725320988847771500531616695936492130302931471596043678948731784134758591534771541086532548141071054864024432585723826827373795553315088992483029441912342883889519023122117905934648748272990538739687880275988677484124687737601305956067832310117697052365087131807391007706365924205960221470599583329220737759449693895334342183794258364298312719691811589907136773697528480929861601511265403070825403438856918518556263737483752913314947981839087126359434334835523667804276080372244410507021303403595917514776517185011774005551798042612234055012699467589274696676815454309111163444386907841758286693639962442457747917977565381679520072002729330905079796086261038649619783137238369590738196098576723166406838635768453549233114367649073382304370565561264802042152416318356808408497788645070922534162704452133488738451001438121940554990917982005653241886909655885511638936608935428317802522900659237765898052221015220227494440341614952155734371712963476781626592872013537202096830150332889439430662895530345722442959475276449785726086627026672756961307087023132331953746132171270308704944010670240052858747744771699103821634126916517382288777077936596695548131526801452700187425452339685323711311574689036974413926288428698186538911478576817477257475487810952902643025581789986781740497697632744652572414604353942947590330588741529763757025975753171280853567585879020567660901962162213398553279813514813864205481143907777640208110498560593473702861572649878872519193102399961948787362278611596951173909632246386738094369198263669259306432296406960127370368201628901292209978897746308007070923182878723844219827147783885442194667792690864036900476831440154930822949376694098933483751882010693188051422199805512694466351905762269553399488445495416911358058372658524098485549406739185008436877775206000415437513170277310089408789330537800157428665262333799724847389920643956885875695518593651068162700061888469202902616770345353637286412115663219889563214861419317120903019830387737777912613423242836337057087634956063868208242282531882276724336675906603082519149702582161462887644423244022519548864408052586220027865242075686204134072374386784024621639953893976247552675124897405362008075622155876525234232442801808007773903045508563009023336052325040474674569388538575096885596226987144969296497958438912787529703310951078837997723043790316464473451289386395023685533270968235292125269454463159865694720037625402676087773746048947138808997459107067747610518684036679648521338053421989620292598979557657660381717964833433075184142428417496367022576195510314144131070705561875863789002669230834199116325704663937507899652854037850030700833951358451481132808816408269090722194849568160262187763217470000117423984555145069867355188956198620360562847879117022850559566112991358260559963578157515769878609552201910363309368871149162600908226334575327698004923493546052973726827056039633296722545696138123044008481556739733121614566082444797741273125719499891576709855908671065238952316058313366237415594282905032138631100459827418869228181818344447208145605446944033600729352128483707859166757170295986188152894655478756554545982883963419396618919051769931779078111614696070431749120579868659601074409413982080583374748512753930874315287155885818331295796412449576147496461602935532679278644296056554750104640470246020233229712444736493718362539472965314725095311072124073259511676209820954529943906235247506322987787997645719772244079121279700863644799718737617675256425073009080278298456104527441104316745937424933081623853621954149923923743474227210259043959147557677007247254351348003392922216895624606483378476827776341089543273751838960297093431868420879580192089876878626211252228601810636122078729801380822712579685537835224650617693059858298778014618524191111913290668974836763494591921626879585799634666529876279571028741046412088112924984283732507087013202671204441148062612764891781342976593589137584476129138922316084916651366528173443443897204244642805029078764318021425896739271973744760392825513360045343005155074031384896939184709625178792595898571708663029551019044115652396653132961825985049151024052623541354171483267628809557125157359325901309652330483601415539214833448254188456305519522334216222097725862881872212565451254430154181888198501981541500808177918075895747673093434000180376984565206379186961292391227044469365875368449615917690649117817289306255867485195120424499587086437586673628474186416023701966402462051166765452017098214783422943439346796019090864590642935187021965628301942825469087804893767126339757543650604123715470447027583467473461291450352740018687480021716828527220612872761704429242304443601736395583487076235133537830574580572026129003273375098118264387638691693027749794534406029294383286109282993945518872624504553616584127062873753903250771016731892175672484425687449555211994032681424829753541276820305660515493479029801739982156371187870265611666987331556668807331303618242084554708668692850268983034080252912388296425775935804137845723643664529180082072388207801820147650026270098636502121333708109639143052476191713083087107061893400049364753554921045496900737649438276671088256905434775543971210317728917894345213664640863156578506818616128439943855148906350056880396609551829538470832297203576340720497990887944891524561667096223577025133358369749521617636658285580041201193097212546794533952767454905333367427497137628282912422705001935069434265617448642534565457253961366767924020220558525241483326228142167616198586518961133208665313601985417829012453818586906625464884369566518659091818305176942470066202307772629588107159931490557633305316303371427911270659626134138764269225593251094592982812480289950791132047221125699048263262004872805131293605842945511670534026700019059824801310967409627993053965977198721792391282600696491139144291530400293716545849424221757401485214963774201389760976871054797486956899927083493995396626629371900763970047079143978991036333258054643903604889394640383657234174083958501403795850211400406058046089801138718843220113475789778576761009097406540876539288386027881449195180896511255009289624133330989245738944846759018080171735816853679104768158808407771712531026992960217628069351631802952942432728712709869691130743237758303107858504777533822554215094851786546009934264771949849088153092900840678691332827446482627461236013158097746193258417597224600216382723142815007232037705952681253012894827247303308574913693603563847963786819766705277943683884511665591857357857261127895316148333682456506328083660243939637529516560755984091231855263457038013407330995044465953129500205879187454240478093543207829473499388596651400915924631315130735443040931762317433256621704299843909504893546669549138284406984965196038759014441065392460417798806534645607753927874261836792679810396852079757055224176014301475637388070689708041322397169946327377798836920752771913503600908724328900612968693595645584722565422160146891991250906693041479886378601394659151848305278557582580982380842729537606940514120929694790864323893568291421013882441182179384595580555285753582256494254883568692825109355719652877399625536783913748097203965787241972057455709790460133454096470596603984242129485369797117615284931995313124574180207400310381397014268093593715635329060503424493791283652474696310299690975625619318831156923527787079121754541345341007125755527535976392709006215478628981574971351155674430226362661309815253626758944233149876345764260697678965984597965784453790410433538219220870433372612652141166359954049070821218163608774576577249238693760197727979505479204589623582908793472521554316699669187134534844585442913417213046611186440907707435642993441744422049711169111125790227385525452192474666864675818503818390313730002436309086928239356955477996548011201124090654776968043488860939779693789422747507552891896172078895732141262808151707979105773948144831662123131877858765187242226390468012296565824214226820849153892401704002076825466664402267239073635487415991550365719358386948830908435982804866476459471764349108163955890302289276580253604945403813919197062999430515401559303647677804042379688148344933290666938287969909618439589757511047723649147286612013821594634719840408501678022937031753259965839952326418098547126993199131995459267684368983393407345461140984952557146808779923804622279769874064939824446188637148479960590030477345313998334066330715763752880399745630557214217464311843577375817232903383383106427571861808085717886990224871844510908756907993100727276852451357689537092897661835642661806278841459498011126985682278088904416982036707221698523314731662850570421422820481801255640640574367242058025816687416772428131066156696013722066851546792061867853325702046536416339618185448895508356623529279894172932013867033174480744795144208214671584013639953787266260508598381977441311581009043519481992155752195604797557289320707636868572844879341897620398327371069376013025666097464337694227545619535462977688897627376114424476703812730215585246126813720151293504524240338108893175258431726009410380980987597968142318258141149242855083457680241038309862522639546023667953879370298403967920337859521895035759928728639951230804161758258115397974040846175190012381838442289695676687822527040883877586544440043854468946416154549034392910013421620555987212617843935537438594937655380266957083740356692418350518954091138703793528487932620719734010597061698891141927852344092530325146715860440799059557091992557922618671038098627210370555634944654915540122219786471192240323006191132652143768600552384789290936431353916641636337544269645817285449946820009469407703911457597170552732455375575485200342954618666696653139539167824883776731281374159697345899192523433628997720355294820320502449896070962724773044649012038203141566342722995425756938622950310504746646482380454247789793504104740712042212830757329495086818006857437063974012263951417374750297417941829663852861876522465006484389746210687834386887599736890047655354441873526475628663754470555276716765088583536045807048229219925404291147227459866099455118549813507383454079330392990963514870996311882695107201165017608686202891842867170097757201183881994627166292221482831774879003827678029235272502898119029847669943078103437374534492793743470743207709923807711104438252698526639797424278272835722351324580803376508147819749051152404396903497531919176744018343829284197436155719009145407456089562454110711276219134471492246934852082223702256394299607229833599415316625011936865850377835251148114907504717553907184841891463957424081163546481327519650077414836120120440576218096874463836877459610277986901504415202516152096568087136985550526908914253728284906050000800091508760751071722053138658554456159423011893629923059772261695633850788829181453483765405879124592721917844115327970424191739481185772398527396957986419811253060023665208235761852104354742413309837761271800662601636512202306323101448730373432950127750729473778164570593183586747385188279086526865839526850286179313832166737477214596984208563858013177042980028546394054935485034407904135128391035842867749500687966993929149602263270814628762150721681537329819681464880109388615525735455789086404244250570920305002927460359625214173836414265974445688249820803651341573901446855025684057808877794934465925870040171981199096968263015524063702697045054021420656850528475467368618271105055937804571878447627930364975570977977438471952877984556643826450371704532969239065089950759506123445669231532096074451846502768762218962090335904387302543946065824081744821868388461845708872072016733958126598715236072939778344541653644360162353655171598263157551064053446971681338720549057674131668051023736974214080874355786693796205992379548141987872471646681993259017910568605186503645372885140956951031059609981787202802324446771670858041764054988241683139675265066200229251104530090052780210033335370858135587138439772128899467167480898411344830045099390597128485161494373867124914039273424919286226250121945239408640805957562134777383343752207298378758934495944690156677627941521300650241443710181582968323063593778961163706322537886554300614023741204640626910421026172083772296940740210879640761784729746969536615040656990620730521947489113044368715336733496530997608784993382113314086510919649279463157628722164668674120431405424729215654208853169089105077251535148942922333183170924464307421200384141739582294805545822510659230971456576153422753941360789157460178719532489903707845227047985402432362335068284698084964633999887470223225263641506545400400011109434239425758076768171468248121611687114080900199742334560886038273343163434691229876527028347198074118465769156820477191856411653892309159102199760001106336315129579809824410338164613949033022614177587966180600020077484428981029309378318392515585199450044761696037418640323541909250583877907969739268041657707557183541268804883568009372789154085029710031887163897910666485706284128428433411883291261472950778672849064486284396676743723124817291577241519316866689844631780550240815424963449842917665047138491531250303829490637096956134125716812128108550247852544771158111512763594183466389708891908232015147723035371722608241882517468471929300601586783437358846385172595649507807814154329218917183119328677577009173984484325429731730791020672975926482237912786782608999351141823335922688318718757601000945510316318283153972647220540357753490702802159769360692321409916809445607630462103666422665617900120936108821168611364277668736699221987377589829292613110869686757741847295512120624113104421530569184763389555343817884389870913223509242104168648383608880311244236782292564800802342223132748599929115772786652610033613610069181310516778157521752582825252913616740845433866389960266990061837590999801453144617174935379189907220809188334765369610920607415246203595822682680135882335146175028318800761702263194344535200980814634800214718952169662198172603114771813682890711406217231716695237406227540345647122190567494051847706816954277787408822936422327134310433077391112322135183984894549708714816216669244122842864860609837259906876700558706037854038618135656363487490140588825016834827195055681249006005866367407003827630924813176150454541487373957228989459804790156763584136864261892504800858998447604123503830651813385024534412295156506432015138602342586260425494733259059633878736317178779131880184646789454347609444244908638381805298025916300303142716172559288933795838981747577473719777513396423143499334556114003899837143092936905140840942137926278416142555131145075588495884987742192289833584655780283872614560130442375977422811710031650130839288125045279070250697614895326277371111647625398219898522646507706610068331481050733782523794726570922322147309567778671452340786463763720875977120258958985513798399218552244034734826103271459140780448735486386408784666009288755292278523186810791997026101370229622492543294681917433659677771388734022367522966935337849524942228219199496441330131885858856072343458314988444063199199313875298352446597946495112729066480317350146558306137185728620454726850935631261804220374340070626589749874393655857030504196108048764038811959606012997502612752030737344432906666010984350531504376853366287672976419763619514032642353275946496257569310585900429079503085210124085693153704686946844896981191404754161820572980898011974473783156966050898732837431166009764342516168351326694829463782163294971471865470464409638807734917985577442206343133799511500907310201537814859341712159520603978200271204038286997937066837852807735495275507332346670286646832378455863421710903258233283284045396849872635470907764745733281896297094321997434905257909196114221854218065042128719284724256239228779827719467304771603643795557043642363409079682546129174039055575357949984881946887656856377519400249047564739462082134528996125191527295555914660077086627067261628070789302850146367619169344180855180911898464849916591469067517953853360193274867704424592612701832637876172786375083725369356057194366459756772552852908780669451883126199954890652063909500659357015298657682700506818784341998954176025322021453700604666407858289852841360955238956238695792885267265689257682195974935089653873393889119912797100877918250962136027415198600211160992945304499361547723313947407947959443895176996179721424546948242926715540247413310316555108204191539747408099587390423275352553312326355440533323811910739562897360727018872892885220513233187463353131281993115019674853708839286751786377931979426343203381386283017939608758714167343749198487638620938108875328818877755058868151997325551201430558233398842190199783944025314303460401149999431339847385200606239522495814142419807000383744660386733181124300130667419617920367452554934326913675851752540727452321490478979890846063058309816077407387538537431677313512789275061639657443590996898881095505030659370015378809449174165841652737487481107281002642015334290560747363760468632803512781697572534248098307749638578711994171023150602705907310412816070161136893095745504308341305649588072335733657155915965031961530404053708226726410981848676355510861135772045565303653278830389573250372412865559142098079887774222691437494885323379412277760769925448886266224223067915903722687372534947937476684418581151345874049760593996499160043614704235889592112867361306207270788826220653969344057729962695814827422226727791049400758750334319583966119917561426677999239079663429322331896516076797651602379950612440151999663328725779822479725268935470081496138866776560755097765977939080389041969634421355523714124688557014755678526681999231083517703974805370294276301988039305994668860922085241118319548869793148137986262139182794885148700677123532889369299240218123108156110030933933516339173117958772772189347815825958366398316123526086413657940678782274017316352979817513719288912885391761076164058873393006992917258379353209005641269573063156126856132480769672016343546687142274028183994527180963929079410098924243767807216687397128510571045525359441503942059437945032521538450698488318303033636671386713392745242006683697657401649631834623624099477946471231415807476453244786836532155527850662642012712265790699225303708112234255494206081374792272592393750457190934056449088986475746333766593706518258715065510298621819990115155301041688990961579993040862877644498213410875355744192769338439251775480882767553787371464710918007873228499312574213450105545779646281066288978867368556813118553032645297571904196629675313075847808579459333115213582200770007415122032489342802843912785587490739270236065513423376788844794865431705179112489671694346532470282240709173428188649377497365900515336035711574754461969055281036093950367596898504154537021822012469777532147326662339941343314155239305885115171378323493458197301036545251794053510509582962884169331594248644798558483139774521801618343089784752480951070890144542577485496956832137555770715962163233336842994239687306637985368197933376724715154069118785841353751723337902004219858878561138925141396773667426383883120407235186820302621846115643193454911027951968576609131990928485573717739551777978963377088331013730231789645470646888365526851598147822109812569032382484766476623268636682687574704052869969290754067561664734981403147934924857815848879126859575924659058309297851080914835704874229550462414995211398554723185621643272842926025194692279805552550372535743750728990919944140511519352027988652198205515966637214614817570593075865708174303486320387240374008053289828740777401249990985633703018066236339329416322578936186944018404524712827596485081002457493095996668347144655961101722106269113866332096333407139045284531368135655265502277823572651055402951487496468376019117093961864827491021220324860142668001723419325511531917096786024656368394676651926155670654014788709566002958552262692227532351060205643806069174927719759043359324713398114033459097134909549381478193532352988654664575937382346460725475100345270196575106500465277015939408319485520077508067572991784263199372325932313314798004080091674875364559194862050793258706117316451869282226892422526443753340025533156722621802660769142115282555842383702888946301859265411230839638858503820793268791971148481318921140172731748516618083962490525113008627765817094777115562874629308061647676642227105707921404371751524677041609398276411727901610205405232226871276138086785705555804909066288955711078477450999090092856518031594521252216997523823266310964357095880307122394189890211846054070110832966117742118577865619957135189598211197543147137941163375248779357026672119481822171779232897184082065273637524895630428033569492887568571734232036071167096183079416739563496113569345880535376581874440237033503879405920290357740538749856044350557752789886506054783497467477064741742781360385390075326917574570074996428551824407818722226579782098201032146006497734079092927271097852341528830494209100165128842698112858246480680589765683286496821283242188087567994840854151904201301916129817754167683962568896358817455038252496831805498449146430541978176385045203614120881176842940015641672380841007873297040062009535897121136130406315484809984475351654540845813722333805107499461326586633483011553415044997173767977367737482916524829173717235320503384602248728020495585141576995063429797114527446806634713022663270498331626758490113447771661258476480440019399180542449254778382561221127891700520977495799510572717742684491375769268946332173526516696726006152099351618437252124833910554396419613244278815209062172296076996904869757074602261863908430939960260219457990068479144130427589065821962396397451167078553458504977052074059635765967287319904128253815052135587623825678586020881158283243309583034824451830310525291856578486080889033714939275318540276735388207679712101099080549666355138799381676663429266848591514088988950795769022111594905832221525248356862207943938298213879655025599921297697901245881516472507270090919338926887995640235520993747169683241713117612608277349675919122870549250503321242724427221160987573702435977566989340200310616109211062044462799673133124456669641023031984474306510628382128624322687566356353268367396950558083565251369850574999333052032417015742660513458941748454068356976481682449020348770089617861936063173653339610166449620937853003264287412477266564337812997019779473854630480919067059143578535013965456571175359640914702550303086262767845219968050659750616136145323465317337917599605400742102686520670232440172730000624937272593963528273905281651685326333119549775743755545135526842227684333788827221269738189685679761698463999843364144187379409506119713652336557601319556164711032689264764417277855789394226994511413967500718537839164561953127454481441191299436640388055140776326270785897903128324790660411649274732311850260073749508502552154538802681366057441359187238592807424541594865408529023210532374489932286545094695089365031953496897090768153347316401232634853558868704508272246642846037203372398798833208471113560513273686253468252843243101540438902581266934040525666024920988104304842155823952843348695507418909768044917232955539436027049586806655721534711725968396692926930577521178493767835982490989345945395300785920808034224560529425332903926444261654823754702644915993006788619562208225301868063794878181601664737542678318425207768994986622614482383010162974593428981342770156939684977590624645842754026513277294400912666857504920920585589480443632535823120722702055966910413055014193900562288092960397878469392094782232949325564421166382947345633605828851676117260167624305215667347482595018338559439471644514996049353626471005565803640749920757468938160675647843277048705093143412342923852364395836594724667135118435017876247413280318747539472508711045619843104128698674329643347314885479223961306815177653383134694222837250113647299670435157703560430170909018103192938862197322397185306874166559610252346606700711696873709031742432491770782003969790231804338624446632613592597916088973939966632956573244501573542588861294575706237360102963779544273337269245369823336771239720005849223819529445139620264512998883728351251640291532117673982226764584354773865947529476576247514730469443542269963326303604449532845501846378361798908463969714336911505777393961611442496204489517255006825298326167821830430532438380779657995646329265813099380241968304202807781876691772168603456156321594854391349033060491994805572028117975851051008924357700144478469181290568674448018325798832555608642218038986937253985019095924990520805868081617673687768073530498875076589924337514443953659481570649662375138878089123873556920990704991749730877970866591250155086030437206859409923896703668632565863684568474295525343756276542576189385504799555190268541068294493089978749065232655753835725789173679596770732078790636208926706260639931154799830684434181996414676171032464925517143069936055630030358490935662664606087742109570813410004386077378669957652523091747355610652727930499333235699269809361147608531269363811834102929122682000041295045269208885847173689408157185158774872942787233952043516071268457888303282394260609117300675999291361008117958014579174214225481150969784327415650266955771826085571356245744784828133609415540358206097196497719370882674653760359808111281062355031106650736762046262711391958361815276962297921993313282125539326558141170110386483438921930694229379234631676374673788530708622520913594932159435205369362248109553752187425301174123913922407483431146256984099309796491119300840423914614669483303231416808313441531520913191699180626531037264698395042513498234784379927570690276978258367581762228809681340847959753375202195012906390561670993802538270838291658551118812008152617907505553022439057170936643882172259697574932045929363006228813705865560757368400430137944566602029048354494949686644713180876203874068681129511974718533886548020156947261028835447449106940076089626126889288787623949413537976928636512513920962847352407387879082843484741772242680858489096611419350032911086617852731858757684513304654108163146452299547761693448180207211150829660489077211410901087537326347845725542643075782431218258856406424353859501538384117357894722307856967855935853081293084028435500605885778346744470652333859995528915491887460412557669819799105241322786150815802062937309357410279127886829051282575316007891387724465968229669280447060824815808541742098243707083739862090957690773859630981802175417757393992289500658459817351440145237331264753641004545854592998896353934946912072351137843806805376442391329311502808162880917808772722398595839082402237629961766054643219969423977459925528552806545238497758455973778893430677590880357087709511170836290988129106268412371516265355571088897021366850693907219933339148207717525678090350689595702842434734453016662403579316654454953462096079532387370683361642859169467578968731056591215406587056275741166184505911409758602195349987647825796485775618702469473084640348874233768378283418497419975211232097290851870108494435478923628458505938345439145365346311386353611573019018990795480106699327308012896575062764575982864311729188649483464632973676562697863542544514174606367270301573005200003032916384036499293301372775347442960250161578408183416805295097508638126967619621376444194370880661428547135985610718933695412982504503236251225509679644813635810726147288456007255025501742869374377643738276896597304698344508317554148333112900266817087428978117155016592173838666827914355733132108205670097634533461548927776063297629202126293716332560575440629505125493067173322839317257899588186932689816055839867759549511220987280954837939302304610485621422221659653316876182260570831482947926786118774174492425720052444379962097208810682853178213937218151316711254538811327554834804589544375351479079036813773102768869317819275825701039689559057907819265013001807906922758115584615770557945989643340668274971948357685602926247595100578394709470706814811046864031175270615836469439889470767561380135576559762394799095744689254370723896306592814480976801037183828339576327960740951411700842219240949646552250779464891177416563854273666001554517551890268630557915243529179404489726068005467702866970824725022142108715241546366416155349811977854405261155764606278715758150533667861899170983481177513513977594195058186300626012702103306627103746510499913726860004203261240416369237105491783268419760218772011276764310691013063939312258764678849174982941139681462994717479944055046635422835867267437962997022858915927315550308384665167884688392004948131228162616332196582377218812894240977946536286511771987479058276230115680801501248242508288656913702047139936539239280793864130607175828891045407524459619104502713433364374983415443068995960554100092727463333075583148771965669369688550001515846969098127492108706209536634361044836514107326087858846895074834444301328685202450670712044950073920581913818802453047016313200297895788965990814745789116236927142094894186699285839674649240744403288789554641039136404395955240964886960059919559176830699095299014340905690410287026493016751605297087727013959432283551880643895319624006816598397010496962752271404240082403345802599405675186771145732369097538358889502088215103238128510702205445969786627283053900704729920405618424801875011833606263696047264479530111167442599883086884585436208029975360164615893691843478278416062466758060756605369389254525140166616121181829553998177846961925051507553249369866287567083540818169950057476116014268027057622607927546719699359197795506652314942919444974978641647141017915206147164139021120790998725502991814721100003848914419406696548433784001670784856113256228012752404209143429691118654112146623187442016858656782438806583020280729226352291702811178623367769620793185713469786648955777915647726270683315330696622534869222091536784138678517082650587924771387167979628170223360485123430450541601422113786770981700815260248908013288591184767391946774109067567764962559983579250503515678117592433567917259375750958377358751989653907545407631825577060718668182884244395848498056174722415384416792990952331161651942297604183695140350281992398751878837878440552509286226388441562048403369852370398804454388435915929818386221852637616654459425884321583444620688703439638245712574453871093390006957047137116289128327476532665517564995285612428616561610586116095811534483389186310590638607408051449937786013706318365691387167208689774027196863908703907690658871832637398539484608078330467662492050940414980271476785945227038788357556676903732970319780265673702897722176665998577805204522760314768992797609008813838488757166867095170187489703887437807963241706335803568477571681819284984487935389006887499328044295454966521071359113078876450638515796050245160289587719462409766183465275150101834590100789407556247264374784795996138352243519747476465201090841478309344337160726734900358358920244128501023704628054332532257845814063078518536339464443503862357613244282269739343738900350169965254095764322544057630472152637909574153725931037675270319861152732616668836260207266280109338896822487174902320251801101063692933459046791326664203655750669623958891338524970331312660921338620131091071349212265156214897771321792271850138290210126091577992517497692387570896154098011659416487184741123921981381233987174847324947902058648680088459465229424017916486127596218941582042214676725807442960152121612986480623097562832421533162348758344077067679614850733242285152234480258987027005312545724790612581937313584696480256736014460893419058123623238419963149688566727818978109182395017967326637254161759470728253296081516331312179252718116940175810914504944469166490390826391610493753781864564883620331826946192597893437683615195578691519956129662941662657331349587686066598380644657635349272877167895062977823316748614482017798409039747647901988725357977972347227346568882842513354191178240119769740664386966841496984494983491565415461029492862234343923911377874161023912352951692744763725334517412532499064617946588238427257544340842979666856208576445320302567001427260331454435415822226678967176039769460761606993627454904252363651750357394316255751625420796745131185122650749394226368567592281011249352065360941186880499224863930359502429601599508139176036046100003872345987784451792166332750892356302329666099909994489930368280558878065321776127163141041283149231699367749222184028011504443512315853432911550749075014309900879260853022279799414170762300158821274030387612920361881534173553347249368351667870112911433389689660299735491250262925839856832347910779983899052958658907216794437459967308530103639387277422648146956650365451840359572486524445872931054375129123871565998539064218398613204131629411835183086163866605445971894435380152918449962885388630452151526144797981299156960806474128739771911101150111465995318398573547638006779617395847953766177773663786448307652330407294682053387968231061938627978092671971751376258748298972263782939242369204243185065319598483374549200204421321882440653385708352309467813695159914872900181205141361040694795449601973968558054658332184298892202399343018484877501838371035311568307569756349288802114219711819230874051262320948396909680844232007808478876604174615245175638478718954114782583177004244594961820660383919273606900154019579706270413871979244613615189038606184009047097315228555337965721621763188277432486852614113125935897747643527761055874893766518790619906598847188908715319275659097558358157880502541224743781070458826371461255534094884229607259252320993944799864696040342021652849071044159044872094414095298536663542593707028380677980672029951045152425601071366135796235475028459203875088522423030809752765401911294559462854462790552152801265143285778602362300624790198995081393305455895824430142170658302961968498561705069401065104367510392604990741589450319374031962128605099680481491387245882888065809461727261945629885105669464207112750293631829411704267853272893175498772616428844588408560279395403548648693140653532188015093432883557238016804927561365832626075552959523685698585684587460129424223516018850629648556364397512334533818884499621971870211181716501347193957096378299641119245390454933366302014012242140170351690404368762261835376981918258195141940863689609642878214960999087434451600848513686028098623969981720054998396749180075028426455362044162928014696211523047941048531855381799845974245822883714161064059666985962992932289431519691387306180222388053359604027843316497443179581360783546608379514066677651197658395576842657053195673505499464273757942779147590794411969645987216249423144996741015776312140172816312695057886924365549130080894702082160070399146235610831675252446870763439281237796276164696489149356798609270611485299668061809658436842025782957411376730354426132430255092856337073037828026643965380097516879143103658697345920344746790401784516132033836690416190086204004124919349276268612008626622135874253614846310193056868091563383329271364228873283003669582636541449731076957727958362199116888671274048882626221696002131090460050813424923041575514390228243170645216227118561170436306919196471763289609149070150821644943774709695921537051654511659749386296639763717945058545964558007593300979244350831781284658006409050798785346532449074162938093016511828631016214980014842423216315179077148276007802012658509652880741843565147019056399797584886678873984518019895050097851472153580534961638554545151374673383402141931044868039523699394622912035826161708680991177278261229466194984157401465146776338047757092473918063564672437768201039915608877455397070999511648751909215568198819548446143521156961343627337168061735205949018306505571329765059568015585268252174894506293866935017970471225840400827633555191490363423120341384822536847872086730315744689441476041952335053449813898399586068335306449847993823055351335966822699667296034247273597016310653281519448626678929163167750777480283660766553501792244375542585180427167051926923634121412099393065301170243606862057404079219169923334015934644864652588981559936029628997925888250177299267946108687164084056377855316911616550000472493232681181845518448141279602479951111077910710898483814344980467546151559037088373050529400884954855681799497248708294918830046760322718611783727493398528437233494343549030511786871262715037720077768025410204754994862494635726268834380778894206349729930899773451338409806690907459684165068980480786110341837978938902102674273249294208919127649868697493582059035973174298192994918793202932725776184321270949135666282194621497830668413979522348841873131128805123500243072127932289927165154915816694350011065526172491866314250775909547024354317339331832281313863418096506989613346786383147008075275126694876621789769894314877845170811903630741880095087067276737831908194820466124726687965455528273805436214580899863345780069822429583836275896978127637289961994683251900661778910816759880657051705799838564385350435191666880409980539597122049475812426116183688946705479815000965798540595020832959331407000400788407289134291520388097015004344356536679410823037463353180947002566973868387805810238190873173773621808254440272661880548667065557691429976940695187570920077626113482908087066970856700467017270812256861578511030184124312708463831441180950276148869863156268452847953529768915331319488037981742872501225804297085900621395313622662620538314984742339865569154286494754768305812178695364200043996037573091940861440785350882768853416759560004957721317792839093106164157435711937361273823565303176198502473946029968529401664922727183103779126431142436974276295882014136909507268173930522492728986583789853229020703691092495344825877590765269473083615174859274713146277450376516971285611220649470500045827473029919252309982507733385479250878747863165426967922420390939663618966323692672984923512574786412968844549333637372469872196673227184467059400343875840383643340138382576376482330192169429513054979906401927791988997164912199661930215092027501451563879224507932011980763598718043640593395713601211356652499659730349908671197733449427313854086928343996892350923638849894128115422280809848104659517806201475976304411187689697895521824705270769582497650267901532366128846751562225861247353571469251053554207545583042148634014247522129760123784481058039445374073885572284815498744331510754285788276588920300383543363924836497381076328873076275039824185733259905747312372167881967986615743450223582022586073916199735406518830774304827762433142080084511509398278316043172384928092982718807266446016620905577140776740626282368909978221192718507330291480143293389823682644039727821903468078100871675165037781736484482512719343495364890806825411985386644846049144804055971198331216399167904027073392924869789007968506560181734064059515538533615257083504353793870291911205627430574848932370803299616922262620630029862817949380294794791303522373539163750339386342444471242345353256916797341982616450942535491056953450640449316519187523907305333062228301859732092844973680863936349682457841929509741293354834168615055293437598225926802479121045071050088151600301992085880013869187891814400039207777550799262301462729745964617665226739403769827495692935591584024273398652325134430217839543370932581598044199963271890983388025561954544739046071119234654835801989942486440797054998112505988791443120252589571657906895091145460595238197116198982475951935841778054999965721900810838710131906109230674342361631689943406322110392196437312780936276901521368534738825008626882453161738502075500506890913818260956555456484151677546505929606976356426325044023582065524856803051441403876129645559967451876204980989767979550718792188204599893062618391500440587662859601539770797655958707720885955074326474049539338524351024328784909045933007737811218914622591889624219766937257866789335821072327271510178659961185238525474919294289885832223553940393099695896919885683827483182322881983963432719667082047772261049951329678261094737332809750047216713356100280826537559638873675870591029895103782112854329367698726440667585966028697955191103557238885516643105994336620999888748933084185481674824720914157988478803918465159421553883408623836506286784598265494369037936441154997602428623814733593319162467795040385147856166608970040862729049474533587994772511545122652185332003746868773346234737522276955532191696353599530949401245409929950703883047265026974674562249695034280821290122792861936562933601625809610780613986829111957447607551404594134172425723936946946925041376426742535123422364466368824666227876130099980224913144022460035750203813412077581185720754292840362649150506866791231777115512682239523661436387844751696762963812408101904017742154324764284318722705117673225110885848249785798715288461653102079610869436753105287849267800643967052967479415191893541318161533513279199004509506965016630333292578820622054520236583800068090961465160098821067201757824036089266538249097893790589779683611101788977957323411732329457601722326636269706624582821251379520403932371316754201404841353491776698622492862314210949347253167352740966099811433969487084558510825957518466021372508386677168709240946813589487399402634929025430168194060414427053550842387069278221631127242517216916596758876659657066345980647973533879134817223971839701822546102872092460196969748760277084824791857541321005886080129003422626847118103096844942720331391156038876346908571962998581171471569098497631934883627906941804040159003788312492015313093412304753386946289102251638697538152830497025393419532787186726484229389777236256638299511372998647183300894747892867482502516299730723637969090334492437067429549735247758717718807635455752858485128562831546105350279288252073578847541620852871637915088945428231685365521217540930629835298346484135287160662011609565320874261256478069674494244432147714220955316777282336950605682745832654400632931345617181629992166309581834753217430913279555782703829355352560823884677855248964355168469721399306046258150506166346395492973282432101719381861627199589959777564701926515120514453087154344118753401748123474321572976477225656973323325840771233949414279254498097082006611783268175321883706036955757726968157142468482741660537937983680806604393566374846166581982654702501422621570816713369521838113601517482869116876723688740197879404284547140941036870046132516302776415894853515300568011376035180556567866238578548405800289432959518187358287901326136421638524181169563914831624855483256219079097951825553855881112649077625085667144168679210359655932931762350098439151162678319607699308195412225488499028103773906253690408177894733574427235450526511047481515281457738763162564442674730171157654205766224287487805057732534097241495240175390588613784245413544451846285943434524065317727791554572227677502204904641067124191569692953478650820914904741417119708712323590082979999471532425880855879208793533327814374459557580876961498209943933018215777442373630391730855149882272294383185000556946394437109203602266235315409200314186891107159767547649561347841935377677174922143122230088222167926226395828007364788915828310293535330873308935218696886277975710035057586700284804024416759779839344316991443364052179236981484757643201431762588937593315401154086840600624419344120645093595739983029509880291503896760963672624215491653005569151166141929426855446379044470207266462790204628076341333684335652658164891928312991927667319791187038403700784334942037829844553193909439842504348565355732667202946591667000188302841929880915036561798339318081254984267738643448855259192592339956649773996318360785897818953805273741718274449063707719886321759739949716530825570558065355725936602234892637646157371512277936178447999515721615358433158515355231349982020241731292968414615561488021548647602598454207353766924509172571649929823035901024229632449758551181489886390494924396440041342750899331018720138918481159573341690549051302834065251287965460126231516110159135950570052061434587498590841645584677984372682184673366681467249165294030074985038113908107322515869759525658869979341962871100472857761723449510985312918834884227440820855219833803516593248097445501120463275190575328655555851367230304678304210442740276134735560247579554169712171798655999119403392398368652266262259940556644917017062439975283095888889793621492656993109728243177685593820875769670465765765596097119763666866787669219475875842331721842628025189733055802746421131876247038479643590070087906018612580677438535374413849257290174330162376360560039197853767865034132842539680580538636960020690652043549539451689933575380797924517329373333887351809311557833826634156408520160841083733417595145683200763695928770165244296309624111405251230758588522340300087142238337775524740006777570939992285766884558508177290048526559258174385055349064613358492677087167901967574794503598076734323366326751395755830234150155439647135117062341594769843518475410464214748933983660618377084729027718076114489382644552664069805054026871838945209353236197467127024923530312910288100714701580162986045035425263517883599500032468449138824584659921500952023689134401919369502379021318609475569264696313494202018691590508533932273897285248274173201664726512941157036977115732024885370037671916494018258615301699202867661088868767295873041948738313764087651977117017654936955882987630029224972265970751088832784378735619696958925657162909662498888745644541956067643520809665727580594702949148189799760259058126784926316789597311621135009615922552224147434129439953576863932718925351299482803561332063800112727744705204009086303421254813049939697017209562315339223538167432992039716951678469604774770055062397209837511134099077281539274525047838220830482157920453743145019724481734783807107893101565012762398792467142453254271524500101207088046466606931670981694555912585204657942596094906975377708584595946861486114083191796301119049983146288538247665165709245881631445545531201564578658628499867966008310273058316588181085506004953354510964111377282465650698818668327368509477681635444443711575328361212954895797040280861729804255560066393375448754556657436129466532357445697285599849271445401355484997815786687946191311985972059997477349650809192492447544552604952938893896861795550597958488918868924948407923097689665891237860259236570610247499461292744595381143779816301236341797109667345291043765511932034336548686463270511319058142779041210417582502403126953712465223947858502092184368162611458076523055432215890340491968297610807599207577070352768098835173503414656272298501802160941379064831853568723511986249562395424586495012102156067819426922035687748888298035436744867189867704178539710441749205049624961645205951965584247044120142580094668857521438585548743623198555957687138159741435536716607148512520698169035745417099069967726508393428513891036077452492139096903056085861582167776675895893488004314546916787080526997659106750266073572080939105271325560256778969667936854639710905911744820043050353483572780285981559654278230451185166245941020221346546115086587125242419355007320694659995356413855742135682848621104610114225589979849648348644927628346759121476759527911526666273414178024507600608943728338875556766002330174056763206531008891513064683669504456257348420369636654292635789266679974607396855772504072016912986306629808155149803948123930853825395017207605351197290498249742560937488499640656110886826657193125456953716210252214923953899190541974488085875325504537665371201379567709057765751293222077805489421802418189333793224770939858257262469312879953737147464517324296708049210937628339281382604193496626302789508692489953803796748773739183484291319925125169186841494976481397408691435083776797936429641751036809721644462204524438797751931400420393911188813809385805738865924231256196830154885221141201274763613246472911478467602910002142897435187196378252513597346820640176414520642224887415013105009933824192205035805431622179001149029057489005598303213187338379986010963062185643301148064357387532581944822922716489153696247328737909494302587104035739267265263657785361001961253252453018849708661254164939027897780103793068141673949036650757906000091853438870733115448147219788093100380919873084856483458731579559307767254172419656630370711983130470850004527565001478078065651014615728109506009465817966456372538124508925454132686482714343327229712636682869504504253435022499687961815971617740540915191471547944549808989112004992684798557274997184600130241281225035653541219647864493986992921944056279016442093001408759069310349501346543621041013271671847016129340191763330138191309440746540261764669538387173410337720423036591827006586813957960904004784957537041316903139785979171673227930111249633371056415306366073285044577929475126705275955484401373457276096109351463772189076250825143922155938207960694092262972728896253932387538848358457047989860126702623432068362910795463823337885114069467288333957470672313117579476906930303597814436390207207329256723107288840287743931930075154407261787990706586944302050371530494959840285639394266163816188039969194819873651073424989740479289493473250406244364165598382869722315303018360258411879639292736305503511308994651960602767083379961043745369758758414980151515772363577676374958023489787338108653180844452202502034385962919187007465938631343263224694931612900416580023656437356353766511225615167308879191652672402525378768921835289676283100294133342592649146633568494231971080009429878915498583211205643609341503533212965176241920224894053143328539511567079876744861050349976616903682452443548144299276582898054779550851411381576504170745194834360001669497275412778702092677068825758234401944759687028026886929115935153022362955072236029935381057956616869340195401612291484108677206750249791844737942535359520042206461722732840278675821586178586231236549657232205470535213847809740202443118819340251795197853633998542784095044088921308570492456067357260334127034744070349733665976582918565584648791124504888182837134040097144159645728052853712068419521164410865070088272824182860780764138161675541823770079663240936826101659239091570603397283700277879144023378914666276850612336059506596334291523496369207498534734877167289902218004209838340526773401756061143519302718117952810093226831913673222148824083194063196687600646461391332050282694903123684378474495082093706752926267767022540481888996932977321595126947577693504837883679184765846779447948272482706546064102034716078342344575194914040380830954374871636092198446262635071853911437819239700161027045133105750940484673697137348378087188226264677906933032674625806696635080131486518655179468776341711044063974701136665174266200592455127018424670785825523511665921937660354867346209367754434575682045737614979722734390939743183585024324761681179085377946613036653568022323577058694624564508676283126736952664681882829794976228054966243121587846045597633938868555723968266598385570922354742315419656480514314251445681945536696601797786707275210392146669104365718951850041807687229132480665315114614379293533303932366086490895207244285319863335432833004519149361543066362432281948554398360026616493154403679375595979754440542194651055084840775272936787464514651226360310928512020121481900484552607089001492838065720183087899983934730197786486177652746167856673285111142912374701539825210929405599830201930848199642758145441827767095636169373862158842272305738388106995616317936577407246621895609735538953436027570965025700093517763723827234789867779251848442486499310372458911596427030070416666102740734191707433693660026091052850676583450832111697593527107493626264170062334029459889554709337830102602906519268933029564135440605245882329311495651384397559897322196937836765366955141940346160921608429311051249896126924392882228623602574457105666132472263880262150069593920225152974673323786862866488406758549933818193984993939834248406106267186826147938413962959166692467237038729017851399561682647075165008493817689266416093872740460423548960135463813564916080338394612361540830219160080826664392795535260559748693276970445264290360668457739589311404875495816675885717298788735584647441344877402472205411295440452803287217988046953659484978744185498209765165505760748231779505243167348083143439992038711319339276513120300494357868884362061585641199876432446236324560019845962101044944086579398779996426118956415624842439275302221276190495804333201897763008497574983819206774892607570395811073978249614462589789943232519941485981627205392358039714861512355547744315523463744866494155587348964677054223297383714372998785034193075552206930910938191138278349609577356465100529702810206527586206484943688601306836111402218596833803365640607012792137917860133679777524152928627458514668000630646804889580006850478176633095685020383453347718764591169830819910137856857644008891341341705714829554833692430084625519443950043041464040773235492671268901518261860168007283973860829081526494637342592162470745074209769797426926003006812984097095395546855250492089510094887597477171015498086897994906073923984886418665743106712261241119600840320139939783596121356602101723553975254476917305920419078136969001173302114575159419366897398553738579322668829708757344209364763614167262729812030953177475660501663143427948468790321869369328623742933323318340284170731460217121289551564434426464333503627431341157469319482013921653300934965486709980449759948323649468221487714565515125608317520500110225821844024655644247193291093978952980307904918847895458679804087035908684662769483826138134649138022689558154795413730081903761572704310411974592121906423573419368032353076984728450676905479771414641878358682396033589144726007478600973472597460990213328719485263705443729972135176310193500397717769655898962680977766806273627206193801013758076806965154366899263098084709637782165127066394863216043381704449188887525048933698318108941225509874598228718702712293856450069803230907415472552231289432150899051128401575396828085422831585850651609237219583783693645056282766643818303010007768714908776831601400831232400452624959757063467274797118861776870455991049021303351095436557458713832550439536998032034888232291470583991491375752477247834235425621895972704698096788679044192614852948721061755667309264484012608136100736703684011453410748227358887616252823557857960612718807262605462805744696621183632236794642802341319362971160031464209204093977137267207087988778894525039086690990699648823298234223167959686008770392797779889859627761336678020130397642089313270925853293023456288902048136976389791856626269488534292410327748841462667641177458785126378171499453473187241890851607439163190731178383257939141139627921427798587674402018280559200236510626943258122491277842535602540279846076207836648607675591680514585125309420782726315263428644998494142042121520384813558236702908232849809222188028709952091790110767049087018717689962463800678496139394982338764688226622417054940267412635423361117381493627823527500695545176968935991907567146353039111202409180591435938292633951098039450879257378518462004080696630458137922041556650048086027884228422924129788638172840334949685985250070863356575456551593907512852894015741767764272229770755520319787204693770842387210949959999047937192524281154319452072397824642768040913844101869937799139569080618877948637558399862057128293748319406974753841214915493238317611082893707834862825585703796721843037935181054668602822917169394066988392061169949026657005071815426879555948077678917142920219967610221477015176014177023685003515053163758054923055809966191367643875240554674617114732563395592224503368805515878122222097825752965099831946051770644497313636640576083021291785712046540547319678794693932281811205340630036552041181959321009162531338551694333714933448736070801577116310729794476817588759305990910672494023672140080337414560817315632804261089506410042468865840907133223614413887332855024536054724327796079545386137824812377823051194376262582038415138997187351297344366442877450418454383649542699977840021420754572257007185957837234223310779367850946728158866899551053363209571627795327870846338203615406855601565201890081051433992514117100443067432645030273267066142918436000325084158157517408344551285574461911566483319451369329608654921614902026784982692082482942770525814978502313652132289741503383224816190032501206617397819454871085304222807004376786628160621795099811006944967309795346393162139942182219579662658678991772675580261469549269972209115429176939065351453880497321707720785760965637378346793074933490960666207067270963195330081349267510266612501051064393903896843636599037422269705023488337666561423287319010085456524934167393156288914421521329257057300005671279612572211990604179203587606230123313112798402545557282131118224871883566164416019084949984473241293950979504576614418113398830629456183418907805671067284848228451017271299371697438238191620133994934537350927719121414174848132462440752314823109222720411099983579891283327681022843059196657502581278424112288493375003879479495043756145664895644286114452360962441038569993712205442249084654439541192068625701303233345463309367442481424639886802294934723748509960348258664661660229159580737405158280130552978193846722477011437398512100088633421864091714416803078095905435030646130439656414996716943960192568285361362785227220739495748555237489572760961167601186322963394575287226373627589735661498791665285966588712230282145526073704384429995806954791110855552538649318664264571556664007231621748121141767488603576240954552830920656677874240365517759682737819130235188755970033814324838070806783896820488563877131215883248662265360641870685225888102290660451641514676676468716796389514644662811724813811912241560491344199352581139509631221940995344233158618105342299107310202845688502885132233079112515524154622070795435947209292373262194491107761529997264534634926715916121901561529502079085598867406040743291538450134489427081716734127677414323697176574234499405473570728006172017417850055938770635016203325594827045209143550438200164752092973267196382616038735442426303212490123953715719455873770216535136605475120714202503705258737014988242179519021171651115714012087349274057094199657359030228724500257230726667886133479929334059528956489733371270977530033844971321453925432761507432345128731853600108446455214095488716270950566098407208015932392601074333182787438745662025307249056434947762405411169703218388117805463357200070496710751011273414953105510392094534249974284237491205137502460791004381029798394104227065292442277491162359976936667693604282603790246646955272838144179648739897053176951666508634390548405871068168093074480220799282479045264842939903470629851027243681327113011673210034233200484764500789941305558122483586845114535871328622963555904141472147846241654424503204954207219651834481366256094317506945995196479183815279295637345034864599802167958627036511384079403026929818333967900416846156874270837024942694021731061558121789324184531347517554305867676936634643797027992295497304654945708670754332785103394175738992153139277382301490987971465731813685395818901628675023056870897518187000461017400128366031093995701217956421427460051693536028623657629448316455897580301452731553403710682365181895980220719408088444005255413686669858258160276453520118017693505489338478318802436918241060431432274557778739515960421244115054189582509713597528453339883326370598821102836113875547305347048033689070687000328459770355530122268088526913919961187353877071174552861992810924657759156467255427816288904735939569583710677599818356502157209131081978192330796313330007819511132566124178951350532948716615799456210286750785007807974965853415118323135916031640130888860498100236512805646804112813285546421350895974147200643628936182380310329484690584882745551502663177371178312378822521844076629940685919156700026863093246121858415631654782163411364527927032179322695767777139615481617347444756467732757138123587936028146612235469540825599339111274024050383150519947737756090514917394714270669169745247721609844617079223792933320038830559013903602199147190015217731490141849994126272676545521758350327204655773793040357100294112006199259599369189863931226486198542570140224550970792493569842573222401319206318539129574730546588344892116095410619033005335425984152386553397419598073763159966264007171384710959502467195396765999307011302487387968686575768206843360322937054175959009890443410477110201283270147506954019726226886207346011143220863716514868656643377689352518040662588661738437308384630169641311515760723038674742940952489467207621974808415349627871874283010790873903737303263019534757560515426219899102088792547957373085528848615556603627650738566963729278375637370747944838648118389094829019793819637622210888641578495826990612137101306846591262377184249467627779342025165194523427887084821796390472754195305117729656185752002396090891394417943017859038536361103417250462834436652118738404371759295567227427573128774451181629950483776397469367773704596968196320090534875897493193412920067278272127607200940965268220888615897933573691931951577411001485627167378213835759070839252701347571471464331456008422121485914215268239791967120348262775017921445340831539629316989747024195169515711037153918786589732649709846276782995494739023115519275650075114335419316650197802710793442536002111317313932073719837116913612690780878480307655267925396144637966254517818895992453923688265468034099093759221252889490595023464344778268558801082346545854349819546705788555840412800137662278532293372907832726589636096175072346962941245795015245546314383620877002143058447751910093312831134142849931589510191539494699841316326252797108933282023198727332155577256941635348345950885570490215241817392061938708249317007667716475914817289026963634217738227150380832882412205729164741455175839339896957029588267917725063729813972353054270669555810217863788628899930719576315428969623450861545174738106076471000474271587722011724390935091738028504808160750136323555935558368453958816421464555311934102658639275229094917920063858609737083010575427728274112876100069687330268174704665375123006014156232370421164534330236403950339273955552984890262626964450720651869003234371381856797605472938373084074512919224115839668117683824552935246603822513353022756035058977587105109265278591260318820277337191890154558826280675049904994981821450694765513096522633973159636177878171988680613428944181760402097499398057776971728215316316609356982953885321279745476487640272214502046018865919684170248307555563262795129479819401382767412430009404881296109307253014768650429310513853818098468253487065613274053204106230770921104099888407288813378586379455103827791997148690670678824802080135381391035274274922042196286117686573217766435541090548009348163133895792551825392207600193320778727769126180293283007991602421380987762376325418930479492098331959506884937160777947378916971992156579654622115426284934695606622446303740917038552960626125360124304349412969084981877402716619508944920945200619206308019365976999884977403713576140186468483967796759875417703386148245869782418432785418453793902565721577571203224814425552337026838992693051577179005931416543772569425834623118620736412882845412182323053914788500274813525671891040135688199315694708456569878234199605441113382985790832727369646742027274955774485984138410901880783319428474640861236649411437054135627909005799551302209888616997136856624682832594457538132176798663961254830575998976501127789850707839609270720792063376858476674948077872691385975833684968448212469455837443389774763486573299885247185200963964802368107257618209057331848614896771362444421551241138941783457984444614550041871112486200517085561561402426371801750035741141197905728595146529125179077048247674564065757536075491646837630223285868892104986149443981000453215070028158569204233851493953060151719314628791073075604804206089035062689216541338761521414646132463007390278423377371507690231007844274057211512772701597013648486371680640210977935193897638956376850887305204268473663468402679929407458080542901062908505211968795257264281344649853288951640997166152813912238017486742232416232716987376379234002057778257444430165389966950550296434565948030517037294901466166161550652179416506145282004621080668280709348556155631722469679022832204265144157133364461699280829283776794216878813021487765009265776073263434196090813779439495627796420302275718329275352940402950421702766454651696013509100758026827070533487648781894456108593129537886519620964755406615578342113774368935389817570067649573652083642914820771284427826217884266144799969955959571132855577844456067724184166551839555643749796975941572386147077922577442245777649403234851477197514298977383028271338730785973467010187947828971157930064178517124940282545379509335078488713641360961851775503681617988484765002770142892011614307889424778730462799667101807976720442300859867528387446285189050914997518800971776774368099709051898863225865578813006705613744924481080059633888526871276013208321465578107701293742492073319529154431939009318596185368987387707912846231161554542955036511351418535182575119642790590518569786034499632934139073230626051962513647345351851411544595270835400771148006512532735085496249825749609606932859922571593103255372660013672164917466737823939862961115555068865000282895148513205431195498550737610256419001281664332161159922177533064818271722235585226916880835845320375414188359582303772952051073805575540885917014970396587940720339378254805636092020271784491393575491087169181442076919578124502065995334057524565596601016299826315715336729948288490172056857320709358971485851071428289692512895597581078974677231899466018024879239673605151842606552641342083101957144887963637475356237222620642153922676042927015399095536212140024591690876682086682375645197736383690877810602131152411769021654975396498919853921549774058356862796280391502137481691151354964814791281096839393287961452081077184006039817334182866662791175665322697436545103781388880752438439486434514655487045711412236642659537676220465013672697354889636796077741201826913159552459047897685482415188053600532977547071605180217174050356876322737552340101673428752566173800002479248386841830127927119615745911572835370160567655851802120661567714314453839866995835304313174442987888474070700769908236886080175182996870591660843106114043523018301473465882507840460716807236665870988071773184219634097320213989191639241504120457274369681226928193139369928493155027619440544355259772485525925804509889533657838756902576222030772547345639850506539696052161197880096486200951438726982556397053412886649071809759567226219556215431268210759542084138010863038062677065487364308827568840215751677017242705272066957121789318979410865331892935017551266966431222151469431725858578823269692878754848460308758240794228276239085482972936068047173591702611111968014747414338043044289960522958800323123203839308243508193497636090741614215838622577684551778466057636702625042362027892787000436203534150652965294616135933229045968182771670170830657589448646303603402712148710047711361230326876456734923183567805806307746328511486809501356794568157544602907190085618396524304953696005260708344018735120798758843745995404475240791809034855098832303174565455415435850251948103964714263731803110213876991915858508811367970974272447864329543423054294129792283294332020352965931898385303447470326905853280314331377128183016985481584528842460559455504860530305467330577167189337579064860391615924687881058544139723309911922097802518089532210941652959092194606497697445754301256089543911367728640913995868442286210796301377580320275300669742871014672209404367142922945067049174411088418207304948292977157768861515758933953037187838136414226811605558084612201135112325896871254661828080531839213209468960063552763459476151681909783751798422979217451279405060104747253031718822131274025393794942697348192481544845548821215547551072424425480356117809009109157075884646684432311822916154721349288166897680028690860395451239891768288013000056970100193914844940893266620724331889732423180769607443909811747143932154750801330273466923751059430980209358350669715369395424556898472552101595028367326039700182418400993229093512235361846134134512938398666402068091258626378923288891592442441990827331628014680832171383784005456460576605925352286100275627197731686935008931857915840176366835809729162223684477469782469402981088744293965976300352485638370235592097665958884914160630189460039635726967225115691502020700311012523419078133414550180568416158956274803710693005494599433513181260442534222834150035152450197147353126351681870664093147960284743443779102815229070338197590253924969413604806658277940478779189919548687230490980602907050026090142423740334319914581190405058627387853930964423768929497569967882346540804529207208648613870148058526341362445644090743021397294979051972410792753646948711725848023818325278356619430469417663313487374199070413194624667117244401717182778217331456739601654198771441335545428425204761264542667086946868049898925784841872821154241716167317264528131845536237759474968861656944034440836250065824954773556618925825826093377352751377118074321027942005002811944589719018392585856817039334759396425975742285586768772300938592569618154669100506610793484537690436442268550033293593596537140977508200297294866488957883888513709143872673811154544359727527861731505779470418819320750091083789095468877167944343578499956307003465242819313896700570851461773029948960142934540800307256108701616322881181140411606727727272573086399643722559408761180741307987750456012507398100366471305939054482062279562703009239587632049401674505286657505335357402116542322812050407868305753861564164894536667326908355401264647552509785022928382851275520806750167958610212618045239754457482457204776955169025758663973841266377387884234642904484565142226661359409995239077602740875327979319752441567762435867363429144230913301163837758987629283081441344731340999998419085298551215666372973953393751021985025911663014141864809662499412704136200882440579486561241179607959174484493879320345016230788617696018394738663354392655578300039605946471386258474267666646140179954732669777423379894841324283499744637291927943684235033275761051483096387391640652577910254174878943528380766687425405431927056884834312877769655108021557264760125500914205082612956523450140477714568348489136137305598643198222462765604704355544934397089147250909499594361258082217117760602996442844762128918347323801666357701757527439263748026972152383466214284464828408520968030591003347477360144834569785918889978973024146719767449154796580561719337178147018089316455825375586018221325271465832162678114751643416713683125623929841078790163059319086570544270200157016488789067179843894469845904542959547666543269652354716100583273597718211772017424675858362736986688706201792665196318494678173956629842950431689486264437992949335668257039828102825824316816638765031486598804540517840620101575634209212411366799450575179893443770063552267068751953466022987561971235563928285424328247891291466945811441539286756598723737178578154908019334321406841202507919239030842523938620386677957595123945022844218004277563034006229959213924249809768000870100109365521288777162653476447692341809356710653470727630955188342000267366862794974763531240940935572911208991667461806886487765427625695745907957451172421533523365500975369699144253195823349577576153193472004016057625944590653672415310777693218438153925584745838418365641748656983351968931438966604413350097038932713038134551602766784212840410393373068101689829593435830333047522036809740073557092568342968104648767348501663233462446989576218615613126672843441806138529074105826833227409825202415502739121846060570277575438323342955950754933687555244417613573850911121958648990151603796545314286584128429867677605279431210172810837602803841695193642799024812775243341849421732373157547308304450455812608522807154197964885694716878241790142176192618179509223257405563548585530716458960335177921279576719110287984773358425920184173489484268192207599165595149483012637249832737114544753425611385385624193220307823322746444881149401313473180635101737596658299503667346339109333225784991793338472756326493289840111283978777518061979014702075835146522310225716557858930106228967039695955560716419253291262103694523617403138033577506435725332654543007660629830864213723112107016632911122735390320689459287057360633105991645660017025397136647196301193780870361654744430363248802618706455637549639229923105290993820865194849470955171815717974513976318740386019284015447400266035469697197019367334486580791312492175225821061661885880869407834060025307516967081596311985337790170484832169045970426896025097711036936584998852744107598629937062228794114356262818057150558495251874090695152161289292564913339711274989926351319943364327483796514615260107280793540668021149457515455018472554267416611370568676934042410919727692681986351988575430400772510804125163089233928996182294402615856041027978562422188427943574051028188160414438019341757402418346307934729224806157503268171711646374538717617507386499382522871331406236773194942917928055314757826315671894902842394052777651352772490957257422715579864090433434772901022220121151849644788407814662865319863820221177273201620483007521364360348476415682622471581152745479018185378079410555601665235570511363643539277836659947893626603617499925425058606346492470440046789410016942442694722517942810559891298200549046726839432511030987482980125339285494292037852971210491850134730944933960987870583704834219498200816234849763353706179769017254773015469340704046079938290034268304278702092212313666141459473938306478436864721994597300349304916808860846033083585606275707873034883668157085783479706705591935242175796152544470518924970820293336490620451233649412792201081129232118416122803523950544939734110930646810131843101394672465393482068049995441913276241153864430028676802880811406168700281711514183101018472624827524872978501674735424603586701539437208179322354947964769168573431052098873200576389121630958863562724319627796781107446818451399305260054099781155126581297943516417352536905058822280373321589381857381084763923660170449108652353938801929277784888181866668816617174181429358000949587690085738849644594693567271135166744929566046433124599161755331688221440429659330439270071420574015829226657513635577453852677329208372332168058723767357257033266881273828873528722611559245674802468949914899169447930822348851598828655801081673216551075684663178204713448766820916212566194818111152881185535697179679094863002080050177339466491538660101522645017038916676263884539051649745851295619672142664199514424652451167075628655302215940820913454158936014878747560443546314631280573171853920979164510016830827171010694922362559135488802934638518457066368617170154152644390636195271075190604747251038562556257889721309289232787169331198026730105630698427309857059267272640829849583189741124258261919936900547284672081499241600158486602029687481701957529409280009584261705210592068447565672014681442304640327829206064705781582427664521744879758249037274581939809377050770516573884092938036017442658630532583505430495962492016655228728483707201821448697047965180442560643930449745184303111071182112475483419948504137957527607273509588395976208267338032165480037987208768606640282279541046740582118822955504885715087134002811451488513960726816390878517631784789798373641365987851141362720874848098844421164284325986162949166211541135815508052310789797165873250696300014831633646353959599873746851191399913801660136991560283086928360535063312593542207201187485510647508817556391454264817724079707626888331712178069840659500543591031165243391367656175368763517955312886124043093937888721641452333515437955012462157689216985968478398858961339006482165612310332561381400721232447754879130029384139684571194098609490861430223075779045888480972864128307250942478994860813045747706835292053198434871421777377201107401954290178751746267226198030007624146142260054478581432835411590272425223172631668983648897306503348668453245629282882992267923178348468101227192523715829499375304184688835767716303095862043606339798069757537166019864199374447760691271118617144439410825755866676861672107983322213032654436218783461385770979977308238178569525202997311198894251032989694559585102119332449310831065783683407973238387558748075609097604718352728586689053556349690561262861292780740634876610070744462742193068371420178279998658661517406911479753325812179298958583983590041593418613419890223462762744378846689870220825624594612660610034958972008970625420309508232676335184214907533133827716459321033946207497554219990940212872687671050713043550804600929153619280646087217421597941256928300730716645095749508466176118789137051283460906703535620318547550517711958183562162300200465045708710880242393893036938757835675730660300630203890062566455215943907319151754541751587793963732353693929275056558566681883355050686976260463021623274312439132609901363432456652754104058339907836041300604997924059540023392871109643053451227277767641465276391473845626484198353476483373947765957218937701155499717251907159654146594044438214722155532742135004237190302620121260660055361115968159415955765551752804566655822527480857720738860141699531028417442995597645730642949370052884377745421039085461937166533700559245606450105222775799400822244756735878257862843290023014608349285098894355749056708004892533124823302713145291630226303626189453383805261391549866232655325769925992972604580034515369087856359410801523455087761627760029468610781731694876616245740084955766667853437475020847573597038604280838577717312592057677883853695686394170932759105348799839177865905830189028189481755696660945478314621645052648658646325023470737665493828435623234673993352616916800633073763960710976127073185668242038631781963608788797826947923836111318995723856482605777941157394842416003908929455869634503926106977398284438687000342951577250449355464631389988765874599742507734747188615674296835419465917141850391879318712415491260687578430621375704842975849545341571949347388505638083557131761796501509761294417200994496498471567497005790381023210960046622478599166092903355491581456725853897492244361025554913449183383824596769370026242208196322096397219008953936596649112580218606762713922155097539223695751141101575779762057957450490576041707085348660715649732534388281168046267870192551881587484243681565358424704213559492354448066742108883710644241268047277335372174650389281524903536687979185159295005254332851645354020819668843725800118007579166830959504965207625833900706742006280841995828490464402961870756936638926478346620965708877808179380009482795257736085703099948575172124294841240677916601079128886805565243691138261964063595232380567949399437276400213880590922255803227869784023004201719126289265616072059243887731482202227381576239575307208323601609218621103470730727416626206380693737744260620915164398815307758549425953061324646907502201493663834160703426970059363716312941197165757119552135545597624028789656634562846081497833898414550944638016897317168025140975933853254952294030859551268332041892096712099022037974771249695094478336678270007694294496069944092519131678983250326183285999304590662127203820202584603651915109539044170594982981388128017095876928002910280946868269692321026270410038773827742453022266620720116745305711546528245309975106568774924648253247643686711869148319788277347815387687736780113657216317084382067562882249205398633810039626550967773578362466302960522316037162672204280969894617448555838040302826288276551314767782310818430392711225131741083001615214709746231999250815988806080148950351701758986429176442954655453244921050655531497508825946880845373234670891798755301228669332704803064882420452233291821259914373678115786444226876606930717953088476694516493226388937573299802636961205805227479643606353535006582721390008759411023266034409523579045759270339509926552890269920086882542412280109789453014044389612860644820562574976986124540002999760261010108014617593474208429829923490635134547739828619072808877098839171101472092637025631035800166917382899391785294374700627044104658552925997517284161088207737823106572187543869564442565549269825686688761529474359822399402152338213996334839338593705883465976529034428527638467441453249245274509525653846743460701790017257450610112258279272648473051130819628204246233686833792518304697745622879495812930483643730981284124359987917346169656452413982312618432281645601824803284308181046670181489131887550448310827121927886305782058313341469818568136083044510109309144159301025136787879700102099486678562860837946833709813407007039899630700049216743483848788701545046645359144322597974126486650034267305957362063769581113330823803154715613747442272544511028209980729023977667704962591953746784733665664397731430371351869568129517178833776511570362901219632916797754605353718264481301254849379740066458410351392566735914870407697174505405064424822464122396954286441949906613235613957995478851874494642755843072395662427520379218618612902649193769053227867771992492524889868028997621352724373336431795423438447692439599939781430460722992670676372986498129447903355623166866705595321158797835139273789961160572200376052986114922254251789726434317520832445291938951977078166955482009502335975186572528473478947325343379610315938853542349447882431469125260192798209354052915246940484220612517553929808266391072771473153504975885161071554963228355728255462015545936077218096709711348299747296288926481439241386003373076414019265307544833817845707378876539161342832569070330494753362856513354730897759902103225033106302541432634504154396747793394363348532184931590699460676002067403784257514087687911889432552335702440656468045325809265708032200235203197879330942410155727911308039506490073132629671187233946241648379040504437582090202400126425558757497637298446894001600131284777716791743667786924144661015886053098618066664180755715420945697980883368524978625992001035548018038887798264083490239766332067224608373449758077327152630418472622389892302607595211949478014448317617498558678821798849548152105232751399181638893325410478769023762913476815355397889533795339136196380890687566806277695268345602936824401680172075989909837507984326101608189907619314537299499967656923752293805477006107505481624960896810492572554176034672964670862371230891387747394163450762814572777649332098214616184242820674502071774404098553432529224796535963925140381721058410882825100223339950648795902492955108470652011046717213125707998028121457432339164859839318734457552933037113816118696396470614850726037974096358277038979396930568576058755786733701555799019793563127437022462356297354839226947859373780308398929340069399820150597240867189935490806411865786103976283982941625642459880167317411398128520423502245838686390539205175507817680856995325474548377788696030514911502656427518056321849707529938386628777597124447733076699376280783406280452978532011197293148881763030612308483663520027418304410015569389600007947567425366664964174027121527425979242042741278330402805390746814560851509958823351908974464270187684606333302210526658671516162046161220003769168314552271458502263149167369292789069346549716074571641398145413489500883454598391037992142385269478996626738090964530018364741944848638336039555560222428168485459451347413108991783773173597165869807455925938782024517914783868475272296275605189105702595774297685755889505757096378017731329927653706250342126438436572710585028075871098009598834152450010241159748090574136405157928727030100194728352389504484116405316809249300781244398791515250009078710548935686802859745682661827871516464278318765919602183346136884963508796087346565007881762753852402403214005221954626937711174404039949290340888872648565867198892039970343994931611073796080952930450830225068770369126149081155313939343340173167287731403960569101491107003684898253060466706038416214355464364798445576275626864166549279016436744558573979195131852057510207789453512178790920516376177402959956608588974434153555006539854801343426534900596375932678210315556431839569150478900801520189026155561944053648089281658245223786743250666752307990440058790951669027316799471967969692093551383223376533327653694089124174450603578227389184054717731463175152057872989609599188721537514937553437178868620229027649648629455210079857096992790054988418390984624491950587031494437533949387944646270501734953342861365565212135696516535675220958242827339642230257128044987246534781562517495991175255261443487683666565579091661009674298358132381673414065088025608774002943818191897298818833142779730805980050087399831998766046973080039353225040477269912218081900949601887240866794764784822990300306019632840052872615213246809541460740176915510283939943846556935476889773178755516210243261331398726153481026055133961090670958455188260498996085645871143907648066407100294424684701070345614786286288600333405722952876051025309857257733951064280992885294543631608527565878955732236411008783168594536243169082782889114300911810957786391564728229692447502290881696933179321587943348694231774637281890686628595265475712888759526387177976428011483359625836183706934226523244739624929961084039941258190329876614359407459107949752413860112763746676950134529739117605896965603273888628666847044643224963968536242553990713480023315301003596048000402430411478129879193943693691644626742079394843298321144933709762164120183493941246552110942508713523877764999662777392361007141469538485499531011278521313476876785370567835822396540083425743307509180952182703231093198868127312230635563220347372453360840976651435021284538515294060527814352083728570440343811555603075868096207406202962592648466079964336035257551680602186444950490220014734269410398851218620362360807995207819565484693477530430551859846345288857228403821435368358065141239014364165034098373794821714577820649109440412131959676376559716585584445431769037181166183306600740207969621815482539685102127855758393155729232257302194202072936051088454347344686102243939363315091649806674867245305488862818745841705237529387278186032706528220459504975596675977384289255589191814811650766612767871687260141645305741848203498939480708539560957920978407026994009684670070177183326018876625430636053006156811796393210683133312176448968353329428757732874635554648561582255176360098580540136049958453269015321409726885950813925834033280578111532679620611568330313331274116801435055714651285682361744163235624947537138808697088613401472201656331492081340431862210118036265420381031964043952289371723875838847014447868031553692896333351109490927007444158059698804143178280953237550526999381192276989905586084902058753076028511346863372657619422185680299040564834615386951162082155681453648879598198655982344920369767697522278951839601304665149179728652378797354800189512819889095595749606699597554497288668532071468797473526384144170616953565777075025224922023054437529108783734365926478146292097737290574265338980939792232809618147250558873843132612868032388950016414124986346001515819533733597585966055265410811017587763828516965075239820239252548397536320052344206128128497428540829308798306942231102457346373121276251987474753421673759488617920355571825112221539237972673072839961968441978659497029310295019558690585095349751759563270563158985431527334087860211616380498089443436838449767392623992839456335233676924590175179453843669714648505318117314010059456865633779448848519229593115086669329372008317790455162867498096554706107394612415384560010605551512178731104174391583459057577949914918604164260168710222561321784250054409708930407836886424987762081139769078891374275567300549536947972929023884304232554065934253532212166359689490335666861897190361789802202676928454365477813231849009297527119504711735327002501542596304473883328653227845808402434896293811309156728182827954622900178537455866589057193457106298746333490038707059765213134598418275772798531577731781598295572360980531646492506641310692239695977756280124035305444675366966597094876761650264955052419024911800016571415486723281318693328937627333746377792927017709881446502735950976774233831264038070157963250653520698729364276676492606694096440979345287048996916493141628242760017112467967519662287277493462405100780922791553660803549419437266697876890439619259655988338842286740870660867880443837321757325213471210315706014678407119413638872426073867114138549524794205876764652417496056954909722929871992592009962475108820117074695939732063492513284539337779656908022671586495949700706291776011203823751582163533752073279789161768436899080291847475404860981322112917209051852779159966902360195508574438487715033662262564111300969708858009928014536617502823355838349632890402298271840786520602278174296140608413878256772687175017691710669083227717393423627175549483963965218553820356664588267538680335105453598630308387370407668102451889474602875150016318957060489125363324234409006401491741354751349714644115402852134227336565794033373790291247924123218379099667299264078879014438018786670440814336323264505349339269283505235083309914311555378752946458950507768349159160721217474589755117318280507518820859751230636967649072128587175624813096007335488896384548949781080740062798245176824978679649682065393852768960610016451713158816955513264497432143935117760143012872406054901473393729015953797645231125260565459837633224701495305679710987712215697260804885944323489971098801627789784338383407599059520625661008612145559890189946985802613821567538431606941919260817596918266301802971534433712105214835960254931570011663875317587633595450990618554823179123111082153960599163872881507462746523226079689954888317782355996298109358502814348248976645939363050010997907975625248863075233157191144955720831735377089286762246487791774089152412303986920485432414487335262760069971744156393903651292120172182296999424369966877943345818288593048849805136828758062991515270245226903606950958096063430675314767032369820977948237399438698860598521231282783762146427830128991902910350603744122160805498790044446935607021936240966706522083392040795191117637224489497636084503947109981525956506457029245580542575593405314097005146952716038084764236378094618534261126864623807361311907867358478535775544337579217637034380428854542105990317364931683719225500167711583955355290851628815261130598763175209665383282164230134454351721224553588873202144995917334644877538785860407546338474817187403830467451329518445511484450507065559298220618034529158809205549637035456986268725642181620992387969055142393810579013230617552336617226355659621169149250938627084041724411764439471245768364378855896020260041349054649601361480911124526216777431065174654721159789037168865254760666877766149819882270505036212085950316157190534427145568276819520105703493087576260135385681115336777854473858178781973410116770146570065699095182633692118315549255120439008222564606360063807160048025771403537801895911032666215561619120386678416046026198847359293680177313464604962999155729852963555823375962628181309329040240931256882181425217012096797815051578464389832915833159391002807869772496786697238279064935015476949222761488552875015722502805511651593225500650010344111872895469924282395973380769591133520406462536037739971870360824230232567079741837082697392097979056364820825167438266185824598638319921328849241553681716239206858245358041741938688906142264299088446268496633099156153759206996228917167517996970543408400576120383018622407738640123693276364859006484557742291517528118401782720705588132804399080010939439968526722631679809284736657913283607811643919682780589930271133480920124364436944747417888011248494984108558561427557318412346040572643088091985833353131585827899268626555361289594400606951075369591340791771117943833262902680727889607642316402850916022467201934884114766444746157913456994170728272900942719486137981752012390587640492187251350494095912269250478374048917139195934544772209989480538255056277515085238464414711141705309433188160543032701117125157547782538034104602171116832550386069259134514706293692657418178389579722386096122620937102068094601387193876381270050489268903618539867135501085425494996885343868994459829541394267790546017480141952693602156813814993774743863966685947161094099176521917956937472474160185498798976600574827405436721473525540893518522711037969107779547973016128694490791982670809629357500898071352649548217870650603450168967666696842919268166840550574015253264008363435414396166185497255204998286153615759923441497947475062208494571985438492552369242334839666742241123837215296042946669642564579185352251879817446319439787016322230036472795662759651739777341103904796121003019758000989539777746460556407988607511677271534244244706711849903517515620494850153208250832821665423146089634637497090657710680579189940966424471521861827911001777281329491048033556679218254538470288835987717716103973185390123476443300545025369226266991133136690998781586550598148182622341836019282738498491647879282637626446431822070581924135424756324436533850156139106645530087853582333885880818319740393669244227454543692137707914696452489978123412973733124966289590084258198762454833536823916843789697495676926418177475327685964754167588001375626404435198267175408394936951141778541917373877077646101265525407529988511749285163862575544160992682669348120988947457766091019275478610112220654189403270680366424315532818951388528440627999016395834461242160717410916331642047483334019075766311903723747332696290090779267101144864811935127072703425227774272770992845466205997158612638392987441494407051883431558352335304967815815321797801105050570266331617373571170051724904960073875997949471203702629909684354486810273938163780143933000748407098079102678265094596040562828984651289134641364547729588082026408787594201927912826085952984418054325225869341137412918870210971074256632796466704313309736783486180531980210663453304444545431572034735383572935395656877125832667716504556472993704175854087961568069589173976656525337443929673319356074930900312447250286288265243386356770710881703344730787518693910621474706995717761193977729827173972763996575576552543641788050020338230160484312307073411254501038917282536424396682323824946746824671793801290890931555305072654472929200470352624247674122676138609948295258133866774953669413163713143118879252238259542139031099543523469400525707745948117170461024473934928640267849339445381811811223858588776021313996960372656262755900175898083786830754067446188405292933466952291004568766294789380647638468886963153249830720590159130658100454829536152132870576606640788483096699913833685050382322379280736870325925933610248496778547300940983004175812441303657689392947007508330121479883731635767840002264696128337045853667105266531212409994166906153546847305299100818908164863228061878927305423902597916766453727052154023854353851255240025009133087438590053376429494256467002513596453212485418543933995420881611360307681582158904933591072147573118636743900141033660615380646940207328202034372204448987766087345272363123838995061419947404921426556459413512977501403375427588965997231701250709965001997678189711133664210968768189798970168227978560407150063402291287795148845837211258463466831409662470332269771710322974948378526875101252179139147745853897383859482620026597090911726166535980857403552047309806101042620092542532959945060786889288436554800721271722756171971612519076279917422719597265988537502386110485424585200745868647515267030020892701319383747115936769994113189279246167524129732669673021215886473676316211022246132800144119220831698327055447003902420569706639155663158336386638331182592382911203844957045159546015268463498054507845033497851484912070752649364154788793963941981056271810625012140571437377166100677573100276579077377268604542608335072312639830655706499621178610800664196607046465381825243863059272742316519276505918380010567736166101355690818342569110083457148262782551826455674425013380250924016238834978178658719796577731577986509387953888850496702744128198074769255767830323524552909634429485235172739483151590483924004876035229727135265504218511473480853191162142693287688583012016759125249791702260311327680061117558275187810042782251483178203452199950288708799312816345570906454247902671951068936342532227358245814575116795888291335459174807249965547592254010590190613202192215097974146566977634534708597765377974007302998272439116005637844275648629687287536061615575374480722521139788802637937238047239561383851495332667128636375977429658864692880984924368735600016220003233714898733634668698774828179258397334031477781536412589540671799310296309643263715550660337626757738857116541483650835093441401532777927936406232635329399888799248530833506713736387172956399388470453436745319348759852678417206606229488561638876199742920372725781785541253963604209634721190307945370174945418321692572739619198982724077382357723893547980840575172865777999136860921058625827548537600708911720298812565301485989403186763529117311157999647467796411161077427734635831605114116399380346644443718028529982363806527797986789809662605041610043508840208340818913669568716866879138741667820794937043071810768218416354810665925623122198203051504903262992419276959032429626291823540121185964964375663892843936884902414181329985572279479590423188947187828672174238538700977511157396109756491094660087696875689156770728229920766208124796202024820057035055692118570273215008004025021768733847057903500516720222545824154956866078817202130621603772059273592754846925288175448505217091968027142428519221741893296040980534974031254723146509255375361511891275143906391459705171147257486597429121775397286456405400848159085431200094615589840379444439195795646350766444311096193425603909980474264797763952524301496977366078585178003653109163423603139203040783555290415678538605767717086023737104305307767483732003158364987874210848655340075457345391206774126759167852947897160095968713838325419481674370825048459164922377519944260709894199338113255583482174511512387137429267090816151300230572209801833243745650144979101142552059381332402256851230866421917839640608457945818694042791102133070330343577029898235348547280317228562904561417309093360794564941097037428538477692029270128127745527654466594577028453283368196370899987157237285522158577426009243416487220339875447143060906555743530726384975732365149768003360090604287591892806350327736358484937207801064577277190208800029603048394907036344683441218966982160299433427366283201343828973753427268232787421612596072022185941075212879256557702107476758206240299455672456124261548088619944061581024834429571448454909666252190849780472299969758555587241633006570905853858515825877629762742034200572328545492152870689269705986630275942552139072918621967395533253662433975948336037838181766778259766849263418037611762686482556121099942940565579929762335464685670045634711787831876526438382370681701144058777257379189843590483158726930409199000758627875568757295635793409934038154011548325148227038801367081101582845816220819483214986038922437725810656218515964483493118515661550920024425898751099731293509029104551927856527206977217570107848924325076255788766410296870689605994989725415669035102069422157848929300046546184123658591351355358627317687513763064038918891327990534465849410959791422672764721369760209920411882610957077372348971290981381717332012495229919049766246436222798033776819770262169601905948290418964965450323610285894821996290455569029845405019614145014767617060040411135877955273686751383777355739699092916462490927757632800851836164747763126972434057734626600228944850573409915450803621470155429624269477155343133794993002400159488418115219656499627559750416527446494978548584503628558960204763468779597369636750677910525067928915866514313898715588057352623957688973963937349031255215380405196855952388164304695958322770944619888619310318078921070720955080186385245000630147945939322194755342439078493941161079168720370727859235651047440073195147009171647796312867927025231233985309344512391511704202545927127998923012271729012563166651606910415388746368588821108447999697492008623379343300806106337376399039392998392792859271942551483737509248150177157095911934893564491205059655881918719323582907835166585760971714545012176525500296498914211416542623885913087897538952293230190135204439246250716490727518295790173525025724639081515075787130987164228006792887738207233976172902227331197385652050865808735639132287937182591924858139424726986046663843660351358295829322199115984508582409708629194539142569638614569241204752947605113812157779277316454116845254996054101838617753886752860551449389574483109507013482965765267586853851928933917643692077812557803813807817716608326733163163724861248936377518761384982022714926901361293201942206408035985627353498056898085604903030279323972166947897532691815766994708682113927107933161735194394788212142223606241159480040966734523533846033076487213086766127011360954264066033769521194024099633654135201988769220956530370141168735996141855000520260778017063300845452271580014315908295172719115815633962520940642760938825780946009761134461497523880316925058577516005851922183369836222455144286104522894481455965397515553615499591601500652975042349822479334208659009418825815350241274121830280223258226117939504634662016738185743779086269947286746612173045674281729240850483603162190809189712341161096972390962569452691721655464869429848671964067535420242395104730503461020076876727942480135393499531900632221800429158401811110140524068071899929451925452949394889099718423497002245511277711119156155186758152215380856161926663437386583766805763791230310790567925711983143326098604170794704186073686601508676802142429726816393116752939545289728100597295091607971492228280682000769114571339620831725815643660886119790763793499512980920247069418019417187850613995549705185901498519654532725053500127582754470637889028671379905318380065305987610416106435622797568323851202497411278655179030776055154455441715944922733028411455593941297351312142332285507154126165486776577207545584484057530321564938151586080800075940843742035717189956294651842932673985832550268465966960448493526352338025619682862678764121725349884285222372237753485918871764472255732273402449293089450480038868420022004878365973769062275297857382278142254444409337984415605591585115398729698923389826544602895971078608017076972793928593897910524706888272536798413137143663839375034481783432930630121674231744430923842770843144237960293989225622615696249419393256618706498705986388289332540409862294420763362495640514334212050978108946544771062312456141913802469250787428885150800514353820970031800643638909702047070973158204376997288467387226134442584801543461068706609763831546506220902704898695254066195605659889535902897490707032545684214568951327420034675162159326478217906804333582673944579787414583710350841171094530390223534900629903936601185783916624699803393657540820468715623379711158566883505528210162157580310651259872679994077086902104059872759877611833903249526090817387006304557448924575504362749036347675713763485501067833494881634719791944744755399398739859406728210158116068734697879075970296261992067887198716623441055148269882480961882637626866671688237270255919666828307322843369915609205677912343408344601740391040140865328728492994414978697844066885746785107158810118867773588611584114472856949469875123393569194644348285257000811265876992556126465726718901689279391922720950857151873784158267353556104544463289500393702868131373284023494164907240553495823336636234384520032942141339181884327697358261680884405004994580234435245000597283168763745162422309002941675920106009830495876968158543026331570553298867857730203789836691253160415112670450166341853871941451711356044102863111631171070797428778046646621483482536246569521237979202278589614583709036980263789289883706301551700118325446321123836637107311263933637268594143358126671572807768105695974224235440068153825963674841938890866261636120737361619202642320638517035338853157743513343512981989694461290863478948912242451073406927437879639730400788069223053483868570672099266658901084527051845362709957676515993114428795089756997025968234484484848879256843379713719040828794951395594435226634361233503897157713140902731607694881100024852680501251634949542209653529444342623515024965215521391543123518493946907273298850832094641106486275916779544752753517179531924421577436036699154202271508507255532398055224206664207404927788822346420028197136188319681899371921009524273358591007446965446339249758156268511403545654891295419226153273658089123724973927180156165464578465003554713925701239249011631454910642545840036044709078126499458766756031275296656441371473349210954215861502868581835894562811874638608668991456584435005656759097158010203085064314668258270467885697198332911791096650872413261464279125394301487964103651778459700990087898529324695074994197011046523154836395734406524805713049856112340945845328306655867886315186783751909456561238805297192731816191305745380318095157156464663024985437016216275727292070016756983999113235184580467560765496241352553571568608863604686307161146484150691853417989003536696454830475410947703324635998994654606862988307936362529722136778854017449123421234139040238062967125630204153599376777030381758356375218786568279847888147041698608005239452872676336820228193397478512256922880323413830424523759164900703638685132290465430450702116690693424376424185145876741747312222002821481910459303687078989615068536802547688932528333061960224840854322854267432496014357704796868413055338275056336950444339678050490505929236386905544314995109443469949217007319570656830124227076869601157440100609974085907069630418929532634959485997202112853240191052758003565276054119582550669131063510842377927604406115930012223762943358735712862664324612683710682924149415025317208059455045018860544148657538337620619316482762462484436171591308389184598853534378818483970215781406348712105957837190259489094973284499611173616795537749725225935044960038596470797080350681102923837768392924061306845858355626071683743544898883025846663255038712468971480517848912900418215180006496057914260551592253763929648525224715222248733026066768068925059065117496512372597162683069408983869262477776321466747895791911922358123199940045659247311290632190100466888027110870711660972150380785464989968386095441164656307535643584402231085028163098325520973704035747049559392770799343708412801957306248429952565873002064162166042085268492333380244468589306712471219517713442722328129029451120109680875311037746911327502857262788104345361662165613083740919096490348211419426740455721464271420533057317665697401253826567072514419219424997838996691323831251654638990074103989336689173696093721468904159070599549835864153402607752188226683856469270237874109505718118295268504929083515058975475315474485082760399562333843046566075680055434501655594576242316087090716861034999034834464534772348056421108281504223649558057821867251432293248213373747367258723781092410903972036023580642158984447535501081630551389789826116072758902550952739561663331788198628521480224520437624040268950256029910406150053173388818794360252029150787581961179394194892565338172942553792389735884482492745377746525943347310330314134040339637177328299085272078001073180563662923359804251470265303291830543266671116864652954151362305341011472786433952464582712990639507333983491583407383733138278499400783619987137860209072288803476694738981242848084990481215950360578780419244942920568495789510705237110077889080350015068588375598981192530782051306117778689846829461045418760489957575198305975820275599002493900958713587481903866746414107461815361317119066153528049766252293935096575739997537520519438930475521451786624714979600177707608564498020773794637286833349020990467033854948629333563738630206416489841952120014694806886871733894587883132903318391698206615419535104647992919472627029868642305469925536792156744790852947657540684998896962426545777639916222206081340341719922463716647823867906180803170352156160310707844755323795337074997671175235562735273183531621987572846961908427784303766136414825652696584838318770275021202837920738108932764172677217016797894453864516219734414274699500357329714928487295997850429940399316092711202905337294329261416639386047640052359727957660848070451948988596535666133637341273277514263431686010581454258346967921814411745328765744997219109742643218023522201951413457801016943800687661822602703968302908735185625617708772229065620065191644105456530005621325683924887931802859930660704553186772314983484487950460926729496732029372178966718040073009735818641804455190590833609423126323624019912805771172315245235278635650289779204474122299695169984771112366298107613067620432215974047531194074721335956053066320119860396649713575038073379976258876478296954059811802103074892929475933382239491205314414820908900597513861626603258807181222832570445245881703311003730856038665222926357973360524238903545608478026620889299288465214928075573978943243950085017854683664391206217618262823780953692377184262629188072486987740578615360273562070014215686741541961253107552391182430308669066810083411597863060406525166882472747040463591003207320939633179644809407820054694750605313008046476109628532098800843696498821934926860534768913690890068537875499647199204403595514109943769441518735494002651251745098262562150589096433139997754688442456659432708663511223995172331710972948500830241923868249823825047940070410941125428341373845507374706061314087189598322082607056613202207215572789037599753786711811881358181034911774866590898616366848600508328224842603609784566619441039667685397875772994500759847621998767414438649505232297123808057618821697077969479670624197382352707056226658294508060079930895067667355534686569953692629299553764604245902185974355624971423695759037459949718231162747735261355367213656359888732113427104410995993319371619182652213356595832692073315590437584715716982953620743485415993420699185764251835529547218897704631082781445545601660818119672865730185477261233545159359378194475498623224537779537690823804758184324845142927771752051059514098081569849954755163397237873670773132172876175070100911418456168133920925127013298052671304829109131492383426796749386900743801628092656604423099820280678681766898335225521231932109094380923262520720332890997084227628876146193480275480467879677889414753863013285279577193224252813140063621168758223717487989836418469468423110603239215746207328097366813446171274927697557753468143406816657895114844095910734903790785391975194961130718227794281481643285822614316795240816012172041125494077081599706309747871306667970237067881644139719155747323010048055418632459950191829283135902006532334040210618079331174184603614787348711125001832836173043267025835641347510060342062892209813203116332194013730587843821867439923438041815032724082123973391163247177865285875786642943059326507732709427320174937000901007613989880391663382696786592464079779128899689731935201869096097607713493030034210294656195341707225427536033688982602653343545213518553878763376838791451760145271377579638922331368536756131394433737623037722744615082183849311499921630453179963787395867605336922824367886479188588207461309825611772872745729501634097852165599530675016326847814958071645605176271886015665610955101073779964774535700532022027207478559690235313282055680161262023188581717014487262753399176461685998738174154558649140188994261765593295211026553730137436027092017224191060969908438723929283661441716183728311560302825124319519748783915987929249573620065024666621368820432132078865983260581101194185786610593854123908728472234896199897554817177936950394457459479149390417747406587040266530927113236948592716975180208878956035751981681099505063171816200269419568072575791526934328459150903108393834116977267705574059543813628121579232973670616951628818747844518896965808108960786126732125583867866691810871367684005535731471081943037481952164420710720985556295768167469016715679136376297068260635591420749172549582769890008901590917887227072259934998901503778252421804853653111138486917174152230489456545694784749753795353042563321059824400726786724177147869189293772565821650241592204852144366213155696535443400179816875723156005319334445659049390068165431912914068695614086793497116297147622884875358545416842608183954474787840837298810917366491555351940656054988606151081095254335123595617928573979688482635014487700071989647334514275641807826587825910960015027618157528580336596265548586581926348759556621743704722545348192667974044883074182833593284181090791812374596727447050633116442310856308541666660106232403582365442044845094460851709934170068829443252809962081098201540883073260876812840868767498755210586508133704611714833405586511279225519670358347727781780468503316932671341361132012995002928338442645318358729381151189963969374075191118218727919205494989154843445672119917807676918930531237699698012272662324822321059294774764720843106952886267746376738494606364806577214961430952901711985858554992585079220213124337894438996452037692057876572336514837332671558608291371748942109556884037409926192733435122001555923999671686438771133940616287334985701891129348149126480447095987320504899271255564548372479670557457444965703695939674686715424236250252190592120598741964375499769277233508422380692094870998334607022457559922817654047268418745778808568078467005748630806078026796107576523994992292951072122227456420329167311444418550991694928486335666970222725178112364287494994317350929221047496123093712134000555374153729665252928554609667912597935776770294260594489723710535172471844550461395528005269490712293406877650543417845195716563774068781234957909740468581290934313037524942073701936013727454661100998334356729200222808088382224831900900949952693156087766797599773035392973754508704040237492533404579969196570311547148282678557988341016521259343489731618788229223532460978453097122274666456272948002823560802217259005894457656742128422137904967158182701526915959929940466174328443263467833668576886897980222143054344482221602876009249775303462099725786734985372466642285815880076357613929702980326076237858375447112198844330753856676374020140789985647821054569901247582882868642638825696010710171126829684657097603937698299536776083651641834963817584937051999846383556173795529668589036151376505738251430148485383841696401057830517486290420434512517887640782527909489803490456446619083664850932338045690075945514528134181303363761853975162374867629602029608237281360491325551721989676105810002936039004263497254772258436527495013584668281055473119505930490683616363972306425607750178698884709044891103653918532357549549587099753128822380398467913784155596433751710610650228963422259963985626400059337316901194382279030821921148880616633253134737839812282744692011387537564890508618366926122638360705516841212787438086811562483749051390916692790835775927033497986797754092954509748361408640616863038990372802074385083674965321707813583164071403790807666349424224129926705933461473094924448181476099714645668199693730413220034359259476104869990350043821340576988391915551638242140252736845988800816636878476100871456121894548570222903420151631982028434472945631509631848567811039068529158718959199633938500735471662648048592317602076055530045651031794179561214924454392899019653669811622003885953569345126060889637933314179406669437902361827914661615152648023462565366167356701879128465891795158067756217307017958588290735505547291504754772925585115751097358220954723512040279212085479332304069233270823114250710489605713768097215877451030608157484992529213967289979455300739242860329049577256573041032789066204192833729983433379433340998829460945620262499805504791274778654896194248319319994161716159433558150930651405101167535622897007410333387280935039723091033270036230730131112140369812031505703910416807140277611986186769913736644293163133449359968711411685013692919978732214486006267291295292625722707678399809672857696375109311783848125199824805382133572186510383455656677899307942155502390537010153597006168824780536989017817331083832733564858176475992878926013657363317201252312341255254927791444820921214083558011922170147942683263680703632984001182729286216378798304016085489743152901356110372579396776358013459498886814947255835690558942302119238004415483927866066136132149308799608792517038545032982283524156726338788857913723601237552328325368216005911242709284833077225618772073056107472045512527850096089401670754385335243383215789759437843960410043208059706074601382346269740616366026591286917071740022980872458452907940676029756824940508524260310108373447560275966160682404824947564331440906362444288850220287691301100059618963094487748690282619563264430337146672468322271865111613643773760950057506927635208638156661759732180776190951849880424059997701357746226302751194450946636951826736732332685513039369538654766925882571817194641681971868522168146573513839225841368933297592902986978909005166357107788154296272038316072484874600095967017256193865596039385587740663924427832674447792636628382619485723574428101616795296871286852604167034045776860915120126571611678464233979940067241577224191888963609859245413356342224074822047013714463309024557765376640118633938123362273470216065154744264895220343036748171760936662732573372654797126034606665962397481430795095652420605318940142199567687171672761187241560126719209775659449037303340099415088635689775967947457111595816895345000968395125752535990639746480529365571870103224007034032028542713892385784624281625801911918855421178150431957413174672690706560619104340419322117894483480614925492467190812941881525286845809422232997545675268548285780132939388299015277143839161923263385889298866457204585171534141576304989508393910938014931514637033846280459184206662795271397293292778338813277193715770115319373226047307353808889494509414892314068901273816618428094948050085370637553256864531751489700600034709439326600415061449781424442869575407271591210914757714157728490663473203815796425805295100988351152252412208482392419235627648707349407656430996186784072548140689641727347804313901893449845161839401108025726784697270455474332597684051601532225377762388378906154534371055917988512464278789464840792051526239865000275795797750831309075028009846484785750143929408076115849096613115044771691900634918295583996973921431277970039510844866510561167203735944053869035867837351624330392000920323565567282773685543281303643642387666836703053725402554225835174965543166850197539216788044142588634568850208943986706044606650125879555372466386233849045209473661324984388717368105632142500383299753143172179742505585965002014571301145410004587750863794669192327672931387675090176943284000182174922409424646562421500739126037926691757329392604842720821646203716171991790042939555425911084212333576011954208597258868533816311090684593439458158842855007920889062230473404599854104235667513695256298154312732079033185338162838559185968631995935843046536745177490901639793979173632311720155460238039996643240188805197414280780772351666835192987077454115374547963909910939624823527829416780486679082736186406679409121598656227614053739715822802620125288736859894075430615248158424726556409490435907175333593103849118808907560805728105721086864487463540317155287346018501145665389215171834909180525205394901845253699979927311273088361362741728004516921984982155064008797309766350057049143013188913698737930784643599781141435348439470123818656847390868995467673761186524106420903613397889884327203640784730090186606817945376186303579905652292184605052285998293669822621379428349959934300463275319252743898242370747690361762134044665058294442504927866241798402692107323265555724825240435483754909585180019343929177509198072660599351553986919388193273159020615402188101779759394059546641082524640075583006076176671425788857562048341408971165326840256668122920844179381911958553834929157432622094585992030514668342057694497840402761421198662940027896304000190210389411504204157458872243023689046202508906839535001770377296911264068324758687439441878032352959074625719294079658661596414351945198446732110993408127831844538962682045116228827649457336206050840228251233450167422670730402861277247706121381897796123435699074902447435218522424296182775330839147972249991364835699048097492184950953857830561634584063496561692459062040514213876090823376548940329404215890901489870438014847155024050802217959482324195054748805452947147242873769051927894064476063029332393165169436103051528459262997292034638253654192584510295452746714830068677417172702790216089921369184632150175224195625095057267550869342595323372864960966219797473813819041143421645082154695782879183917888928590688899777016071176905431494044563274898675522061435799527103695660417723177783980108817007841765110332689635646738577013498035647273467080519186028223394377486714959000859312319736128437279349294365901005128264984315275418464369718409382602545463170108838534477600900348674913215018066670545953692599005752441199170931117741796522736222220784011451852159641815557470342746040007777661650678726681247607295781997902395163750820558448115449606285614730053804641390903934905968181966996044423495834153668630307357974708066431884783264592466749232407852397378336104371149428989578952640692091447675977344170873596538174748695417907272537586981786656643864121735035864713667626453639793787077809609098270464710342329675383087358950089102856908781786946224523403931386304137636171972280779936802479768110900304756215075018586841285349244802017527910740350909597027363274013088140005889435564874579602258930311626157951009863674204268372215143951230508579361863683032190323613818489065477228352550427843788703201436325425335084303871066410775228343342673151263481522193127590521933867774622693372247557813652589134100008811729369251938394890779724436789413394149637296637528851876584467002039760007602539465022273969911396314978619150502490340151140927564288580418238500507479821759685893831166062047035017973435735936734305120872367431263518937828105891377088174008937589676556108109530358703446222433854107607966395251980384909337812198265116133961556210155454933528652974603236164876688926070198325844199338297461405416005537171437947962482919519272562696582016946421093326586806702383360872436354161114361290227284814438457649570633318898962252149583645664433905156853668881972205780100358002889312147082160844109112512408086591241764612245757081039661943209423882284160163770627146219580089526380656365661912952143767234714569156337526474862642005145010811353481876152115077840401810178895806951666502573183819647312944641285502920113886488590845269800918913111113211447263859169476231308129935874010602951660511254926326798968993777751749763772337511035865881325000288783423802850861103340519290595735587584653836376685059480853746518870938406647581285598421966365424912150337864467325029688242513565314116776345176218832765325085306231809374977446557611072807521192029782523511675659084244636999302558771320908010833706342919817011017248218504595842184370545483375377657981709278242626817497425404871952322697587527584641630593190794953492662349575111795055583022176396386477979895460839014805792914446725634755001580038619485461097825264621493500397494842726297070641797266616860054938255940964604768527327259311077275233087034080764682762403062883846320988542558410515155864663269016660907163541810466708809907956389042638387964659383348930260946630976344507577785573082959152037087116527956672055533648759834974651052433500290873331987930142090958933631604824815448878446584384979581022095003645839331326392234721281043077353837401320840487638986365108773116869306015673314481013496371937021909975184488340450817778395004621507433367997023516104143029506253642552192657581809644803914225522712713517881249399475533832516623270429646397021001373173064617370602309890724221487426604419591603206191696319275206755330762688204857910411008084980333057949188405046706888745048866468496059661381063052157110715630649759958045468351855617537812439917465896665097138449711801384841816560645065321552213699413749446517911124358755674966907007833144339481217426491798138721318606959168075680528043658869246334769645740733819374388332097176092089808191211744465433384982198272326802619965179841813985666251264742617464237284175503939927010196472745347297123507848309015940893984638626811209209488262335362210582818862445815969676554498432040284448238730570077836575834672683643716532608299741949367764434087250522765480849274602440978388423299944934786283685827897291291582709380674788562700472755751687153008960034623161124866529948701063648322823442557585373990203389787103088574125025179145035959494240431513675514606214212750820579026534274042377853535445103088066357399313987056394716986623318609174632204496648532693011280347084277145715482179954607869924494094486548113784783933200180555868577975580788881019786864301258689699583208491237263247408976073262844409801782178860482683350645118633636168563382912588633414557742476794747527983541129658348132344177907566348111597690803074660356643113835711854504661031421125934059105525078955790054829283679852059247178420233895675629942403572675877548726003392069300418389823657317278131723187152560929404446022202776094072369009536196633064670483527758465736317951582562787420786339011306087534537972040351144256784058608507296032772287204696955450346102578991648282553736782913374321789779542784725203256800904645067070591556627358240464673929577358844227325595293086224635774966751415674133018083747795655500418710759037308640923464507375006660467575583841268148196644141072960905697162728385773234960017172250082779290463415397838217430745640622393321145951162983025273217882258467532792235080675085783536934470203307924457323767677114880698487795944535547180461885114996179781606420920993103252505124068915895089343970027469038866200657618877896987027166716002930600481928491243682934992482646943731149405163328426742244244973444668075710460490251722901314074307048073946696615544171417264037398768750813497988543071838686059379842267716519990477715030641714909718746716162647571268486681494137066085901646963646083431276359225251733088924367206276359902616191660905534174482759720550624623966735800265280136164413018332252189965369632117300445283437148782431616834273437148876490236285810954586343167612675561088002123558370191998243563869961341418933271467289660537635227034371447476656902080121721893933454002903607198269754267600001329818075011962425804904653180843220029864539918650480844136753509633367407555323544287792453267256239182089028132191477737409033126973316862604585432946955322066433695835901373169657038914286132749203228289051177046984437739536906064989700501167567984516463994019659789097612645018320853500018347811768755296937096135066593452266685833264502749230944131581569864773000316675228902141110601843567911894393975361912964646951234910417131928657850832873592968391079109124561342019942226347832930493241563417162830138902001368027279220209964570565501165046708833969115160440816673207876198387842748680274834563108661287170625046955335358518810712879140041648406707636243029806512810011620762797926394394321953034076443877155051359859149273421272275725713890577572963040170698360249428795306225099231738427928302827315261748070872602152042122162742452859118561328726473714103186169838987557376400485434892213557930297860874795443478393615652711175668709217502455431147825353945787689204953823046726439504250728400405864072461679736715773472071816253690247953051022696531368986715693648985168146566396768079406758093373688166854509084296681949076724559311574115425788634584739891359963686667101906994506352488133197132147574880514690266498452551845999629392373957575009604347747363740034097884787967559338652875508831408324012701006727866219577951119590825666302712230334755803049295269988808092071827752877462863450502275321201832557329307971039408933900051308892598109132255583743380430214514467960793266380712874093695565967222466734760083702003847737363047600487715547367852698098650785206999577745280240488243291405328312487049494195391698573161966221790026442225400356955721086855627880640836122220515888253790221973815292279318937989691042567450756778044128333731816385835391745338533155837343722902628696982223358214834552213105151827258199963204866153563816063818557522714988182556931994712465917557058995994974135896571139325947568166506756960666177788366573318703744817933391486771385385496270598925601885041802762557908272000161075415113700700523904858975217155127453804647022880429112179455071260831095953715275396033222953915760954862532035976137466523582252710396491184392273386263093288040926660625458023700108501650906204638038653955331830567687830043909047106368665912855198803426665831045297188845512204976697646675329278964885632646015955645252332114900233711399096721805456634196732401543256324337441746564174866541512167525539269344027877063275432460961166699395067465886065891482326960475652275628987265792105034570337868922796768110897323565324007971333803294819724871373339732333586097861514373385687253723251459438270387930633266204584875429896095777340852784694547612810738472467606092553799865850361611042589177207986078027439858581976473322234244800168911295906328772295287414780526050462707945149930878829150235810825012844594701014416215994585959985334523200336545294687470600612921431586558057703351260887274435980764639209364555496609338877009760173402354054898750706580510973838820347444433240333748108545967362871953327611504560976715772955537203708830854202128831647677839793486909281463811608599042141241861494107560473271754149635338620411653574944656412912006230587269001132574706480131252136673866559968463163256530663491053336090056969995824749991792959432051291517626822629984748981194747238474186267245411890382846792211965759651476084220709214749523349901063406339699019644796582708629993391498150257486023518512065826817539473668221378495716671336018763193431975661322399494774180153245674172922620615518187496045074059882207880503800645202640766356385470041216759493747687196431524784641236842758428426990685180400371751769991153624930305091628159929230974093435740336660161901103891176483897224282118941785770517787995471554061450268182899585477845387499092135565955950156372975568895331120551221338611660990825842447749346505045260370531652004422358164269025689435699257521896588290097468881169599149713403448527285123841084056249043393254687977957980614300881584961877357387778356069062749453290136595502162422306357100591300146564763213206934979478354097330521363561933640488837084207020951807393888674078573078972135219056272253400111257035746518651058945921544733904980072552559228391730351216559608286921245103189467482465415105190493330929044926880729609000493481129282196984349462292713241205104087093311316976684139817979779904953603184279673615076679948506172692442297017695301573871194324611367966658730672125912866271667199069298810920856259776752269943467426465178794299830164891744908137702598432743422651108000474619242788637853329041612194024417336913620246461161783867676168326275117214534166089573665937806582237872102179379383134013165902965361598167101219439218927775135853469982182578705385775559045504627728717329254948646760771324206662723043658864163621815098633046737711981090871127943762569062760191071988293112060320997037052745698398219749483557254246862726851461019560207832779099294112293603206116027358318262358859590427404521184841131368641695428681700514653665250143696164086672398997661816086507358488366552668740068385551806484197894773429083403854887296771375148415441688377814563767693234954585260823863784502169761291824387174770248902088073190312653708469301125679413148491225129914431195743344861046916131280293788784150785823029028518619618470747710830340076801295129692543115701224000765078202513003546659393684395574914124531138369015571256041214598640651411677681605742793362528730455224366643907679320678472166734698858918104194128083431972061535323806439983141904855784364347745473874581147385647837079466424647733306102586792941911393139520096909163679070937931095021409329371158639049942750240874352544337066472771579921569275504219303517025501140742625242695655562813811703241100394564962758023898067058736421279069119345140401211307279825172672643564532009288502912926462854171664675112080421011997294955810101156551721760761897189723134396401647363684588731028104571999145898331688594495582696375661699296232522998205371488966302343875706593260916535118355178291384739235926935244372630604930451182254702297912746828259440916085124588758829396714305976390854350915506289718995490299155492321622379043779818927871592893647802549290011330524645564524306676319404720907913196430701344952673785013578986940127975927321667244081115080553144615475425585698539671198785435163975838861328569856306000725336840628269680529490004609224391630716884079123051565847286515068284787636879267718813385383581818164035104341931482456560894595270797440569567540781364067692137283645701168836027604977257871170972204652663615638508977826565165082592013446582862907227479294657853791224625819807329649697300790666391590614590626145548523212590196844130665871750379390478740421688764623364914428091760582918307650415735453494599852709555784621408469708633681548074873403721511198599348058196806291252624040984640549951680326352396452541030546955147623316806704369130101889193550637697728417846481223237030336725704456496299027789745147252472169367343943281297631037483600533753959424655471985103422598145305261852604116010651556376373873775366459290328675797397609148694342738632364718101811994873122884722491259335087998340250339117534785935262245367655329424113389967940283343739588196110226631227894319851755879314641832362742765273729023565948950817071630890915360879403929007703994455120904880517716851283625251398337561816878605684786664777331553205359212498505743384588291112517049705120747940687977135029827305948356862280174132219848642937441988980339526470710357676567696383115067016125275292063715944513492993369800137024617469165253289635814271512911432217279986955496715272182702834600013465692959985985632483266173157590991258972269095780444155782164843420348151488337740047321027748084497712874532709090458726662978455312483973641586293609690115485331225992174701944549458406151338675011695277667994257971609242685658044304913527848402923812103209864672696596412648994943331989622448929012149021637534938936113042915208775407056245651029615701299415842552369073405377546272422512853555437056552229768333956808583211969733633957920515797854338772549741507919091504763949093386385497764786596089274931716699038281669605190668439917830707000716446895765579177582613107672159957279108575079102805595533986623496322071582851919903076218481004125040226348051056650296848566928718775913569011649773542023780384133839585731640471323341693258188710978412816774116761317469005367605990125306133212548265159676116266093261024931830318158160107240665910773787845158442904123343311063794720578379784336730783086232628549711967325148205197336531714631054562325760435635042526168094884359344990571121397450735451139154230980425281882435673420093421304060514934093759257968067842986581161453645415387175641781785245829817705519623250764777186031861339769371548028786657287335625222759363038390788292417399216970588562516989213158806291951826925177557721981646213941889743164115161909723072225420411855255845872058097550922765536397390243866577802709218716194353213197853220282062564058325717422620351483006354932354997066956309212928133539732589894146637482092077793509355123378142571997693806518288768209490958248179663845061114854251419524739568806960696663932981282374628453969611716327822547438749849871628315862058792050666765078751270984696957670583210836859506325249682514524266121820030835388902368709910822576148602317397793312054744677251506717133818243818060296754904987990289277976908365667986409912705101345498666643076959968055344367465577250730158065252902200492172871732957275028781800596577737615913782225299529414632004735565874658851032340938943226776387851474750643332586134804496094699988536275651982549556196626507345077801349771837482638313995493496020400880680573028468740934979220669136646102666721186740342856970310010774243431261107117378006214266812264559065809593736798109875822115712098450663642322052737601419716590865780078729170421164030520197503667500336756451984646169894503826713548150595845554878387183811247436702542106546848628319227721550950068052437731554114506111614772158372300451896408530290551604373675027567515008755143887789956682717681634533264221102424909279110385796713994962572393373459568033620532009108221102227359471178176005883366561456627596664100654849029874404370161579497252928096911785050842384368427953771999039167228793101311414597786286693048795702001953575778633651556567992016039050604846404170275748143005694995137657710865142042336741323857160851501487552595138092519419063466177611244473353340917803069187913698949166117436287138965324232347350501546521419341085994573517929098775460533855844289559027881871488073133230286649013830998437510053037088984700837484479690187703489044925220510224094651996235492910109793861914665663084016936494058306033934758251954291381054686189485538265597649570542846118024864354569975236742312806790506753876674563841888903733529509629654533287597761176060252143507340315448490529242746695719770691735250054256648914878747438527707310510618577285751796103129904637282657712445070990482480328310435326471654164730313886404800628573497807903101115944633118714365425429970853680490227209978144313032023270432235052032005657725479291649523996168109431944352339341472304610224093864513240009497972024550665339330218155450983928216047273378141919241158854954644416474552911891932555550938990191119197572291898023925906470515635684352422561182876771860305026040075110258851857011851930955577614004921934563180127578441524239315043885222527915362682353108411071566905059347657843155327805986380975854241910300181913327789438782627670908720014438680104421132526557914080576819786716366883260731148467047822030030991389666841793803128444890443612565479889114784473803673759978378883512268763395762845178646028413200859619453681340425441745187096826732021925971900290908474588364835247786516046384604882790434912476785618258283548180287618727873923413345231683912172671270041049194275799113732182585113782333136596208622836951621546729691600397317158341859108410498764222505996048903010975255873961212540438639320537474517271275581530662869396905987012958950762992399161243517483772846548472059216062071958149341044416956814173576790759646119364540707931165393858696836817937908208004439730730709700023896697213190737255755303546714753063754140107886443926040972868783883988547342467476002416583656673696508581047851833107524515654530575228147293652815866053149911652931170235511325930519009579956255523579185674625260577840938187479351965750954881458684903897906261576036809057881793369122159311858038973956680123290801061185013677253149418232340036848360284125527196788193105580690476630270456301122317787207581977672717714148030798601574010416243790392154143090294525448471797144698615900932478864079240275301522896819908521383480232261208507057155657328076127357864712651559395832845275255486969880754907677194212344827938487904323864412846842310222431715104331571187540676834067264748643090897799883822372786512930357522041798795048003000937107020500049397465528293928772895871074247270918729180470362038983150272133970092604166509539490723439958660483756058057670439129324718872878665782668457738792772739106462812187435212543519242689214189200475392651164927703273221311835934276637054758193351994847642893438768019002111750843526881016865410798068014325473120329768501807153542893598760410596519277901618095530462689287175539599709466945374815930192364875831010494959423348111425761652970416740571873268561073253587605057456847773958518730739483903838756107958377183844662910103473534862228671785528066812078615121250472129551409403995176894002008041295981702161892619358855814603161293468892872876382681368759093408605108021961151608927981059566348876715755463398761215527957213112209117020454363464019333083295987732138184751742697598089664702072266612821542503039204537038868847436636335809658649096662765541662138703231999660348823218063047937977320395882420002134466848206413390573263005745223210645937497319594984563937650869285894927727285492602295596162742897858663302803427110432731587176875915702520824199814271500754737477697437393355642358844047826783069451279013163141349292534817151426348015579437981734243221955776593128236268314327020036287601371392277304479118255495524225397636977350990143981513361781318450621324223585314349269013987874649024109456507000168313628090952671093406263099977987847435063153452642772407437764088760841968664744658507615336032499557872226183802980684728277147403252141726143146696096894549657715448517290628184387109173854633743005234906561818015504504393134983773732125824308645388153552480240710082213641741715081443916899534456930191192567410038542743250107294346102971725955859373544231268510173185537380103551054390230767981116487947952802830674686642142934540018107138838415694578513262713696561639489804014999779914722387317736571804823155048413651583709556184539070235810607698346258109000703127421587034294481013256421896094457349763507284820750237618158129220334378797454948756208283254822101579399872497164150930587976581027872364206780996422135734610905814141247133409684728628907498036565945075517162335653701652844907984349722665465562221347342082232331469596228935366490420751334128669293291879107205343140964074673520648321044320631756584142390537133669418851084159705421363634623494525394376107883655779844305985437358773180119730372009694832297859529301172570743601183220357714433162894237182561644809096058608147825383282124376605976465075151893713648720220217212211475197032534703594633806418250934314425795816450871070001043600668872442442179541699027611466130559672644926779489823792435400026938907388305494548693039440953563888574078954280728838187892496719572368836086039669503821290672600718518452186866507992339731035921357969196654710962931129188090503463337208647886096271115157112501618767174620828413090052900015194792252171312037260700555773907393021744651325675556356621085906910158011961956689204408194722756800084719075832371048478375333611437970257544196648209610306144913481940824026871464496660434371717010017090894865075828626217750313779784732983181920481373371328325203256591606916618018894854609993597434923492117000175078061881589878602156625262108134669003633987057629337830546849718331632072787672972211814529784325944543165714777663253886250621526655773794117232020460543284645860060504227187217679854102529127741090504430976342834723076126769392401215053308504712900789893708341327538765291506682329893453560257686584379609890237819046735185845415426567021272846617363197915054811622267835940138608875945948641149152227960808822840154359838476727320282526470646935085758966521504223131008348753981849638135540235781305361651085779684497685974702079106529869984786936418977317446740465669932388942119155916730252706944073437790705745172958516483868477816386233761673681023288414425419560261894392034468444461010027323706947429163322192080944552069791098872276276015851839442534497743825324185009522032081043296035428408760918501024232194419224236257591177793224181148921913944778915583347384891802051050249983902753821219881759221521512817553708520905869092235176676754702256225959752940681874080297239567328797767388284916483330609139413638088714347085172335080526971561719003817687366299777418791967286000420783222083479565882921416446600908249842994657229659700519824688791044033027764435934071378337457105260222722869226419411251014318054263939835357076043145954257879976162319778022183422558187453407231014460988276801593656383412127292754768052161715995089535498807658849025603377989611471999991142917204311603301071040307084176257615600664246147649785528809673558418102809262180675691163007352029949567746953838444229781257610311554571217905861027422263367835705665182702060046620706004991965921849054573413868548750145430999480004838879666090141313980886959647481005068371820786636084965264879139540400055032690788343385127059246552255681787923412371278219471232961000509805240330895063389079189637597012511241070815553826718238673085821769956709131296998713307606091483761773352180004390295731731789510265542815879629927426690702613706602665047310113635573138777958651309134316375988983836709993824337193576895932027854210305052747197358775316529974981867513147788341621007442630059447141439293537625563370695448486360839504002783321980355463155764001539312714930954024878381972469763387885822585965223559410969310272892364328932749111089252326684122310251380412420504973852607445263731720503312353019081616272265468071674797472556094207211105993486051027073139784661666626038393124914218952294960908752530815950514050394694350938695401898057365491698469576075596525350468534912691971640595603427425230783569799764798701226161023039373963666358864778618033460133588858955559412285771855979637385946554045869707642134075954990938208539404575406751016071163626886312960455057804940681213645490932804198313800609635322319794676147540056649730431386703563561765950194211748367294474555866478066246987279120684316255277414101956591521274098921477980565450483646747474465571166665093583124049017527332313356763658109845643388175670886232586787425309307508371430652519874338588442324141991306422470924878174268609768588759535652621440579893370196408170630584514441674647203179487262580025811226894597660999414554364376315565346634598198194546397870726717543593558475195627501567818817805412118829788672103102093056134748797983849279167280192842829187850751026596425150403531075158568248785504707996033853717603044099932897898177043571642148630959355175347740408203579593066318077649518428013870388270238304981491997371584652907048638013739189395293132023211223441680506746998287063588540027655962745388799234415707580007695816507401116946315988779063986097019747498230543112547726252026717277399404567741597694342146770974024570785735788554854902278454926222422596840985433353964160325392919331436265259147470974742659102540353786112566506162169362932665553563790200350001021600232334879489847671143055469363420959050172104583183842878080122264977528420973907526610913427729071166715983091359296693331816359245413888064465393613630973504412629814998533993387957448229569583552600702905249837274757129180296485121989871823611582358606645792356179124744878502063983499233620019958354476366762688162446174617253633898886777050587519462470689939600647347600449582759155185805748714158367946101095959405888763499122354856868697567132497856718315840840593283641325298781392749229593820860878053752689661975446186712340688430712371440156444367692779326473319541013096911695924436920379533603128645455517408064414426588384006310816841767651202501042053303499986258369452293328658368149309908409698887611173818667419066001311435466013778447769370833459776725806242265837511225950930720182034040098932012785986332351908766377396862781544110905207909025322477016609494945721835618948075104012466392667957531338303866049446995123168949391025012180300354127732554533344301189314817679762086372584028912295159655039592602229290340539005154437144245802634497715650070682856704982447303503902763183651018584117197771119825143704810651349428969221837135857228283508451000322338790408297845453441881055356122321167025769577913145209985534469266866801528096552900877618106717634220791806113394878214921292261244694466479342593220810929933484735339936622415069629443049285787153801172440609465322452804001518066069131660389864464772126249546704656983387444234488090669762352388640957151545117105222871533257678471478958937686352832844536267177678803798706965874504328344253213502763562076619305100749518822302593043976174617839917242037435334844743032700866194955231401080599513232760011039729468336155207256547070742743421942891650540702920557289528128951238998973355263952371466274893385304012960307313042103893813112831616875206237189789106883210663653911636983279224682520560221126267360383555231769844843418053217671783559982762684785517727147458017732949470437268222121331586229012480538058173994493886479981794461725009705748746690182928507542331291549616820957014336894756462480190733691123542184191716030359168482166354065697408121868497004566305723739160565611895435946055594230418738077287583741468758899770657255077409767359595286033924174622946678651940085080644396041004980891505785919433863756432725461328906596659586873145742437209709933465529183834884209588887071373729066428677877063112810377055849185824011230434898069827173683331369518255458691686488477224323767785208433508829013293405264949132971213446382316057232031902670967620204735823574473553131940856570227295715929737714346801755730689361217411168397321091461268636963583143144432151505768311775395332037358058802862667883090001896679605601015331585870128800986981999806894793194258018929374056081566437257584444106971594995814047578708646519813614895037137580895829082730937856711514874184639856259477397930034547213904034640287782121765251470187296442828597680124924088543603731227017555218942954204891170763003901938131912992155425201158318219163336275089477919706778883717489092869052193981611180809956979590635769616729365195371232351119906027832055107528271996445322618020834013514580112042269677148837827138688186997240674046439848302925039915348000513907956008274014434217534641370613671597855028645312117853694897636587066478720195028174846694763260427905379218851285688527676415801012421688715290945716180855661552720504702305750581707855062805163474032695452862901561800823514073999028944352205926728003285711549725505036819499848599263650158197783684663041567721752506698749650870418708106855499392985329634270457477452292070582936973875481112283524264813247710104286060136546303161932208075391323639787741413412060751735397897348670902586558423657527444175323727079475852949951876307083852288187897606832968944134593660335746472817593312462296733693376176163526540980179244950704408620646409183281066683543619861414717484462338234754832233939349470258284212812022031001892986199475772951993645239614055219311192843434332449945787131796941538130860595747073714010249060785768984862872223125737057000643364765112240223217778273922204401856992583398445802449682241713532263097112860337564769428302718719045580161584316562995217956403889220641793577764712179637851366205368984325794575248296678608852262695685826182378468468827940710714052063796401395325362522299119259296088863061433828251737559388940880726055944229396840785734496725322504324128290922301728295920030150879909223189307611065585448692213657305622703770311680072006908819952868855428927019488011509688296855543994973489540414588826300453227452105320448563510307697537132447267978306519908304069749777077060245670127320664008919350717613079399272542006053786909673666584818432517250989929143809489637200062103536599187125970330142686949256605760495089266249729490476674898091324102260121074258042046805873526394421827249364759267502423804383356578961952841633357505231237180008474943873521581520281646018133480685990987933771345047163643452814489356816302938605039966352916281938955537625341196475962396172133971361385899826409920279999169107521891342834292074691924900588169726270263863963574446857569329759871621685214123506748298712714554716076694608297963572065188841156118100738534431617883263703242533989849255832571979103628356716295243719314662526367049861115183440534025060388241283257533618822494375862053773648929256318028310308138450281565535094893553434576366650085401917187458073979986584688707121325693070220700779797428691740897013947178245528809572801385894370777086589249568847095223619262134860806423620296187322600253582635132847011477915213440169274510868716067454455161245456707901595013204571756868346975900086909864795358931776741797911710148122989723475784664464985349550046582141774253989945824082907979676381094424424619386758758746045461186821605656867462610359121060394865495873362149458747714467828953892135262921962549945905313329124504416260983068686661973159758172139530436729792295812386213169928487324497118483320428800901888285757757736809775730620102162133140193611980439983296237415161646850155504673655457994823012390475468689054819700248262104715269178658222005512622819379688992394698352752577975533352216909832230610033129342532006406061656632155187499436634646429661356781519103662507654835915376484285014009825105578603144945208090309466037605926176570530848578364956726451739148363736248742955729655751624674504528162651611128825393280063430308430506144447678977091416056788904293894424503747949223669230807518709489315013814491961751624752752995247950231673364111285474682480068866730272864054449127101586122572561648475667306135971225495697968801715521328626173601770839230439307713252069730223206534196020894596171239685368252877743557574526967563037417041632920556211207316412439881636529000386655846209606576887098713250208762831976014603566357347803688412451160094588106188929094048822399058619634513038288453353530066046059067520757932966600158347238184098831523253458999854351860548616467930707487474002550978770324531389375333717748514455037244200409275150891089708823998270900004105374652182936544873133833923899683835865427472548703797921612873077116981546219393645178660526920907738693617220910836345298072495983198237513721009211550732631400894738366104627256989432050804075733884783356143921833519223077523552190778926884249326403456063034718841933017258368951910321716967437585622035197447096062347014027708957813767714550688491184658341840954434720986514562265423145363520745588443821121406105051722092583358430052636522321280867916059203300297225776218817187785883068799229924509580876589410362784908548252820772512534529190294534850592592105697233824236632675710691385676434780556041883635260222716439475262998254111002101790170339360744834599946288386061847287055652881659054713667480044761427652941439723684544428801252377788671089984871739848273319616530523788729763886406389045430008962785093051175444607536799091405952832606065945623860807274591642579494879630129559126594258989095023139122539944970819792718863093831115424969495810200412967481108886489217541577372120142224292700406963813679905378759408622094426069003249972368321250297117805520311717636323682307974125146957710161082201270543660331166320207095902603726013914466291765994050615468557194181491478478526033739524388965909475967068186025615819982737853987846008872007489594192111259197066630425770517995042906174674766430525202596769475853693205151896566666696748644347685197714511234306789687319329646982008519351535934919206117512447264096233927081319548718252721345471044164969471326403694003294208192117073006348286634085492786059135759847505985721997933258299591114714102269684646500453057074273986000804421646697619962112150559909209365358499524676071168186105372495801718910741321966725863301092488670169302271284508092946582767979713328701291133767702095287290284136798912481407443903924528823434898023530741871863389115754326188015493681831808062781724404628650776892004427898885865228363920222724239188946278698887559861070618329811160873393190413001860667561430677907846728363137728737039998230242916745191037840910991724876122761289891616545179987180890550814880628128982088703915636279352509407326291963235570978401930990704406130734551048994830833709659294743110529193121791400790327948228727322104255318986318608961876965505409455597535872607957854319497102117675234110525534693665167350629292160854277537304529081339044549746337650367092244939987056073542793441076503120842933687989050560932653697702749046934676940591486141032378484539949112853053679309742339877312510460528751751292642047084185147446740787518094736081118403949246500834286632242384798915220014427202280386957166294068056884083043286575430327744518948431582385470127498637729836996818313565299339985383266815014203454382212322340851166824622623140368443764615000538782462828871132630358145837890719434261727515144637142143332182900938207114227807473473440568151245837090609739534414013539291763448873335378376230823396839518258559259604917416552110988879328770403449189679868420778690797718254438030199112389174075014729822583754715444731244606553289747682719588371149428792402815151648279122717551726973025874769540819473717012263979330853792949486332399390940474410770845284359440888227766106951736647989203147040399498162887542692501320231272650010801659708581063506847152641201291752590186528057588539157244523143921092932171821570860717139671117317166177346045000346352793485251115517967671268873240069351839931730818356830256693892578392128038108592915114521139104687488560815553729887323086152951055170439416681664674610856680817329246259340734299168814943085106706084258304060802647872635107562694383718281233270148109414630819026599606401254931211706304165757284615531033082795201098591898090575582715451098458513186608243751435282070565454993694937795235441818244278443530211725722484632977896726683521088470067596657555074681153333264401369612396369667690776028104212091622682366794391390327106250406122410261390081003047171769938137711149138436097158368334262295193425259945567315984098386548923915822558212375441607152060038724670766704658333127510070121901520519981178531066356134171345110710417498311646025461551396147469536181752154207085960117147913173362052197738715824373155237040816286780447962298048100292622560668264511982740769791896214410993468839773745269180822022768319586232061544001378077016553790199939230396148864237737848356479546745594348294300957904905667037042974679799362055319214316414496928844010915443385444715321703142421225164328586880194326495323227058775659210935433618279533693630526407852981081357617688637150592769614966883326423439448996476942541986393974760438814565771001983999110040542622058496739775050606037329512024080197672803835286218028145178073673938854806332425277084669483421592208251526528286127485065309648417363965826391399846874433329881180913056214507619722371163059815985576138687092647016866716498469776530364872066435810111932970496214167024912149535187212524318416150644288123867239298388945945216756496216719591581061764998451409200738640334478682897923860696285699063306758302006596314085092354509898106385244288114812310103124377449082661623674965493490226761918069854448304588769210990350750130796223929605077091576585323117298161163626030891995993763760257382533948246364752961630458331329066327213396441084607649270812499659567669671702619971183327345395261504253818173559430581161639169550796951383540702265631339534695789722040706273269952283623092286266398668593707108093509089977543262538171579777725386742859555635371016923737829153139324929180347124625748001186004201746650663235504989198644267325378967399675080210281678766782194285308222721964851115145159488952713582530282926415906822915014995241199608346505672961435454311252840213104430643575866888625559880268849455722780195080432662925253777318783745948852453329295966515039997237444437423657933483614184227284993995775223246917644094964488402274542830717427693827258726553085135060046020647413845617110917386286465568184987367220222165783832835345829538876949457226909073435938180834143650447877637022024119697758380205213399109760914615501219369430902158825326733109704020388551805209930466404731350320473925644064833877905256894148686086142265500200368481502426900558214645454905557525990621754079053152530126328205334613754418516990590586315026354600647067078150479420867561243454923563367099928278143491515230119347724130010643517139188829278828011772789691157306533397944893209053685076771229811774611941671399916084829603860966563988304715777296627983577508188315516442582529195874052046173869936256452955823051455847576998882015384310461433163755966510847759435627755828873695705330848125170719616093144031881949819793165955102370396296581134629080078434823643342994698319627050164622213685246753009702991509383661204603067036075985942478203322300581884498816619274902585715177079131467504812214874828811067885138285773275769286166808813724274577933881772998672757827707242968470057471381366645840683559445028341832993261188555941018335503661443589183030595209517003693054645619258204714639237442973956569498383717699123496047587971177488847416034466859950234738988049076309958900455494952820071809524301159735919547714419209865194734241103291080800608816106782932081693511727313524305296356455742862904980174607963431313550609736155095808126578478050862721918470565474248550627960845610545015633911737729966298345475811471780400838148826344603000004972650523564781650279299445648623681929344048099717780151832380060128035150671538028935629886343356024562302615646574693741853264753285800449457796220824476913649641004814348507129549065502540577020567228294717838138448286402153854722316556398934500275413482518004468751613845543443254240136454565134223681494104353378637889703625801338859395606948924331836872250712495900728167763113958721367530329978799444016291722879843479595616753218042171920779018167524692843589498835745475651162939616157324684817838366987949735665314342228530974031167559796247373497910000426787718175109062663566985274967657809865178857586143892670542460166385685108705182919436852891047008195847815123109973635044088041056984429491128280611737378417354838006162002586554114381139471434544119875855934174822911294417361846018967804191001003748190184467143692938637018230264452856372667742048539095300084083909537707937929346267460424167515622053364306023068248675278148958765547740344352929603667945630918578701871918156028538303813126583786364940630149689262819210011820887491522769934473017358568962483453716719242618910746331982606080665115875495237322519055319297778863499439403878222728723380658929244463036139013701995709749931342159911539628598670224886370267813162059237369935791297953285559246050281100672336615328833876667531818337761508682841856491013182147531297835902943010224821159958113958093716082023251482265470414952187271459907067022110371279417438326754171095295271698476940330332377577769616644663817210347952162995435809483027443053216939404817489576453427238643217294848283840682327027732743047638583549182957523583268563861201812183366748287923671485089348151830138969766366046967489864554081203558338011106379142856636062092130099839760555909845207900652448587670881988740375968221713875226502255804875127011136274815568102701531783484506088476629236980767151913508016672256361744591420184675320860422307178826636581626955513938161579107088563008500528701738212002734570372037540742708317609184419001291507170637031325424084787313563528676176202419656769867518727464456205363521034548533166095434780897638069132782355818036203860501697728128705171785715762483958229451009997880286134001015437336938634042514167552949776527686163177330448467273293945874591395298331876392145339333727525555249351259385955522437186202517150762765920823075902688055798788738013537555960242750503151080803293385746684334670332740723642788546735263645889857306000311358881876278500609981905673134145456563970466952166517045909007781945470182837247977921860827749399742309133090540080548143763482473566697271051243327635483830051150958036994743269719377829962592129212085340464231082180229037560258960425024337126875255916888386037304282865004684677347826386697631207107835845735304642179383454879469977671842207249004622513933896276769939816240349018486612586677462021120211958111732768053151264164709994909791319730148669937807732046303569065554267926913766869543274517431878963233352366095898526453599350094676299471157979836733782621049448291751050109791738937374194743861600062334688878833584543975367261894120603241657016720790135080197943602955900224782586855487409894539167808361097621982494338379128062241445460758034515698748185346730078155896011268107283666851851346505038849850169688943219835518245517640416557027845023304568774335629224781711751033724172256861047014259062902236994270483979484818783532736887178385141880056748154230183530794892666820524111418985218480578310310975767873543133773005953682046227760159989840386829239278403479164014362140474340914551596757820167849009773307918390791560545315647795921526856819899236312210923156386536002020761015278829342426826521434372744798562723340574219863598498377242088090681852932777816087132906065983455563606747468066342746215989911012330360680722650432331731400017923373628607422795988501620784664023695624291934034376771672197757393800985790846689364152736052527667039120556372706020330345479013950140301509184294074275093809142267737377907224987762469149359422554640395727700269120228481741298515665121822234343319942297127087158324663985383322567851675190559358940403362663404449526905807504041331168395888891707378073413032150640376958725152387622777463882781961990556157118273170451667699452943827970136440073248809748439558729718416540450232060602956250409785071159995948505471540045835872616257485209832270597787996133324670079062189293725856171488276785231828790174431553836131671472204481362173156191846490185092795277656678882752236703307825443633233183599209674680349798651910047723048407187694257154192581855808905767872955110374417774819003071433866197170105064275788077280219394730270271856148935428575218446300820125462515763131803716404224747875413496146003552286507063394588538550079507391879527782953480425248687767629266718922694849822529116901537903125566167733244059203478406876596938548230103370731388124339232314189062357364240447386760699707906039462547756584295645730732349157595260238621070663929628703254353284521405899473787203831313754763230788062895398048692912039834636715519878872202057635924995669412782621873882654074590296144393879114633071806815758109062839273078835386292897919457009231956653460302433622017331009925412548835242028025254129821141315235474003323632505082538460913708079719918728031759643777157144012681625751091641476908786226897527129055178304429209806622728959583031183332566318578560131196489344958866026619857398162538664503908433333135134519685369994108888180653697376954386350622859759308807772125345788200179414136164422371212962781797318993960618836496516220286048242382833063059441647119139492189395121115637579939938594879551779460999040618121772458838980563736653235688017198110343657723900836930347453876614547600515240404278548971561277743962734851063429762141309534711461667385101890281790337073836783082476926536622798205785267386094900900179290351061024908455264976507705521821599714463908566588478427606469240563454393065890916969371504646779693813898367954965438793049404670796697785676627537988415389032507157874634790133920324556044081127497226147136272143357147282342794875026847753232097494138982811094474693195881448735141966445453635598151721357300303350127203918089323148292200095095694657772843125395323395118761617660366290909486301845238881664168170762194124086005996752535975321495899362444487334331685653259754649356179919232862065474619312705680369583743446613259132870110186448838718894449997577157310493275784411155037830994540377306704773907792717448569475577736375479323252590608033013707766723621599336501797579749764018912909754206660010316549984553156336474855464625866674153722297345585812569766284574963270258956272135887331819090436363040682639956121076362842688879883713254955376418327697024034765038605027432864035637481894418242212619138430607331160419547907701811583066108918802190290681581329818746411225461639234718036496704930601463721080204129466769162537874898671994715756413555454200824161992403098460841110103604866023363138161509233814468788362360257508437818551341305660650257243087245646297031764320710173397713159161260277636508717448595135605439727217984819501143672545088653067094557974142807530879595146035594564616383136965434701060144112799966210194086172947575104393944715011010174956334682594542938645401909868668779700229590584163884288815562535160854590701726460990147517436757404380153701971498290682825384064569556436565340221842664618296980489286781780663601628968281311130381868573839254609330312525164991367844209159895804269155117771257942733381338682067317523859080022361146647506292493525161427515500975537264329928737934265943455608337973168224138339089958247453830673221944243397297007747604987837876724250521261584021869349758747272263491063530447326960279473108056514391635035573699034409130521089395448841332814484139435470916086359119920137309793275197905310223018396156572071610285908152374375408856234925473034959935771078412609926999068982917777414589243160226246783232829842221852409738860240364014157797089954533203547634419627418124449177425627771127050587271717935328107990196038630586196530787863910084518832742136076749114683462148716410628099121642520032320225949493372450801071586974670351284995685634656621962659183414674016804715318164476359676019612476021821262534051939036120169187822849554214679428528490142882677983859484475577608845426313493849788748391423676435527255115677613326784727688171086983350316108253167778991647306759194406879216318322809481680974094437528590883945440476942926996471394837139825778491979278010337437030735286506753296638121054132752129626840527268056500477013171031480591175429924955432566830902131303604770527991354257410818496691644028650247089230857500712748879787556562205201355027839535785802433725525015452410176867785621820901443406681138941206920421038126476222626766296436237602759106544314411487713919341795623171861297577306043052957267957454675743285062856836687245634550651251682743466632497868049127402951286522707798532016063167190647212809785235102332473169456925570096111705122506483876654264234368721377947983321258881654417730168160919114893040225446715080961665650969067441976776047711458240428252440474095347040049824799401278872545044958534402893135666103750128132949507291172566243708570303371902608458647700092068784599457042327302872371459990989682000302045326221659640373259490531774767632069343613258641346166151417974515647093322198847503789238576887826574880983415283913793353225541835934584912343122488370017830719305416761371699225895152396550229719780608633399946024430337898234755426160900896001728936777646430123171367526704027522606520943179126638162623416251972355100513627638424909406250066441002857667724348902855623961396494527063853792640107070792006905899602063998023802849075708676195186916077853850088970009383382755097523315578019484704622966091986832328253660635366857543063227753631307469617312568673103005550429459042142248211576933064454747145091111540250357252326088176438223643210722734989204137622511528736835019100475462084725015881829994902969585062551550637425652207880565498604884380462307024227680910862399715121055683440156268093856489575393573060376573622549006287890259781939314619377583294964681472044513779230084438561562605574846464348054051791625121319533534094579495114490951397429923302832877815217722874011123520514762790215193820968102979631922765085369295641007504965225623858617626591085430455978402028860969251111881917698669990135972121413618367554690166490404005299709997180963146965731488042570221378074623400427309971310172127631134135710073471705269801661557189744494161900988496963237166992062304570701705650327262333626771248754013550049031497096064731066338664075838305699840764173526227883597523577825244085336139757507004489853958334399025387051810335159714193922981443192992971061489859409541647532301285888117297453397540261493997711856895714361261550854465978287366355042329802435993616565077434135265840806756473430179276109302979057893736619101215240778138510451161991300519502992298391751038131726603421010236865779958704802696220027271398276223603829517473862515768984334400064740030565987749599367382822877783566692971671756296465986218365612408475425890389224910119493223803107719636500616775029922779341976264656557019269044345004932197517115944954667422576366481312259740986369826106796163562941598097943837562115805784380156816696248186436576706781436089034067076060544506439945131758050219663211057286192746847294342641471218493064173283989145223012320887195018771396747446161451390590437618763472002884514122473413995231185894958353556286064636196397463366358684776216668310468734456067278184335965174091370013284282836213482034110703592553881708156743869886259322099894391950744248428685470467876083102002794973043243433593105714883840488673828503329370050183513506885881613506050022494889750976942940572651904248476738415597230029717597487804867367222416876152454890969271476742516621901676744785004784949867003763534812064240745229923783238319356248883748725092887872538878373989086177163894798946255667332767424990960954532513935731220007104553815853162649046656933471976636322320809295885541795844368388272221110717660148980453988550859080266640492541891853805000364830634496985562616419943303534631764884603944241157966090150051241735599366404172273583963215202145180755611820933425053039210040957896551295811095980326543097183028338342632131704195703233686012904097363331781902586209669478398574304368124471860341350642578249406305091497964415469788862781881566995266325789011289775566521667692436543323237264323630500711887767189521640793487178256902253377785282324044929602258473580379126538639976298171670115126663996306032339376780595493164519476793869348215568795418793260644683417775301328266460613848365103874530283157970868176328290631621537170054707074409885493025819634500446869881291845795454878631746139330068214257475493130802019321407444015178868896431539551457193132658102476002762478466719978336135957716085581220291108544064367363409399333546468648601679150216427210982433297985511935527510785947702270514634522354083204534352500553331172356582076199206545199068149794469074627580011055339391111951028588478420524450082139145083377137042625106369162696247360413798621491168344421972863327661151115978065454794446611515534713221614327455971509946830237461670156964927261872675254550278105261630821240839748382713177472175882511431473151491467687096776725072936433583491554529218266231654785507296520155070380050600211356936140474158744981959138845268583333899011764777218275824641771710593482204620984550247087182266698412443050377139070707314551648657099718177233098134399655262233868206076915474439247032352183519690086082515733452767100082564032101605452329372525799556227115321383674868727665583753977449458765874141109518586160404597097152061582063370950549708633003586422358277654875072702475690674577570011285465700510138257925656311235348834731910216662843282940896833486979801086340716669440331786736727735816659136377314525520332702006633628245460071604743971120562706822766201906057397614825345710835634620966893084361513304207652539335468407379587291785393180383872029712937226426646412017183948414334200608721379638322837761359564204651675743790590609081517326296506514412413075607348381646653459202963482766242758817179104248196300323794292950721112147227397855100076622329086618193622541157591219029783249360476587234393494133689127618906522334178170376680260646789570691520463594415824812105848346497229817023729410834066330122829056666693170972853973296833348533009336960989308515168598423700892662840270031510688463060104315627684518789668889481961969702409984151981632939568701780607644758635971230273898978298768644553748036032726908163655826989717674131840393097360568605752843390166184908451579098878079143667650184925757526025430362892604442388860192170882182719119096331195784399584697760839244242763875250701770899060351283625829795009350569834371447600341278772064758753399080411059516946661447565817529736117771529715917405766393169700537156765513109357491272385718723059371029505170732520380809274288012501002691227736553307046120433242145003886216892184038645357813975770519708096034822594746163494135565435674267681517544834179235409478200415269094012131144337176829664819705223759876277967267760587418162241824320111618343658792278743780626415592070032518456821591195819457999129174851802431024842639719633256016975898072389421295378998244472361148201213125232604909746480910222985328968779362731676607727360943537751831917807898277914268839306494783381943994855151658681965717251705878980015466637253593492214967065579648805014352074643300424465717351828490727759683908889844692863629365970929200964240828664008781184967535075971928014274837114980714412143922229553660292850414917256171016979515589633459925331503330212586421075346748799045327188287198241621423332812633982457339617764750427618301113409583210594221110370785748145259031658057660960680733181915813766191890245659834300844900972754633726989214069570988238776192628759619677288245278901983008186791367045105143839453547897534912907554489092498739385966419115658750963068930881484813282909451009071198288117156900250904695089184606759659971232833183159900886501915880617998832740476853864861490460152244096301256759875926126855360854140812150215173315251541360275072228114722806328582953425183535376740245973120593659001201011040998231353217490193883817409767910413196602130554194991858455846450547476716267629661506272348163010156702341185351148280249256399815619032701935712955244846561725950689117317462978049722653525227911954634465457512209424329038104019001984219803998137329456395306479304550949305052780356795211551943344469177636610503878784387260384811173038441090292104260159820816330487666633460204225113169883709371072200072169273683859768487488564191393755219092039692064194835260665050977740010089337945817971748849490607505464147650897916967222364261255440773725547541393261861518055951875764049682430387013903052138706079455180336969738991803009415059107029844143160833966235483542379108260678635928983948897061525367013608622367269981123633462379730024981663241950805447341934280369224022390955382479009340251958807589188271307477858149837710112151603727331688580194645805080196832232356554929210432346475001446839404717509916001023638757577724211497386145363336382358132377639100229118568311198838612993660992299830385912075439240956312827717420694572548113240572741817149404718887019132553450070865039401998021398333850135946017461576557031069899575765524265120904551254189806021529079474702979166648063749551064216523961280494066482368358047452914709659886201512014071594866512687157869941705307911115176760532226581254923146422023479826930390668871085971839124319736556898947941489438195241934343904034200401266485324091990548113483963813850641849435363245889805342804658762869304676783571787848258772222526444512812238833832820598096223125270602201281211590065391303466926522324012323550407842495077160443387412115589523999611356956084540731577088890507181096246436887890059251493217347762390215043848951110736038260790542889341080947970628429074789607600989018574462736712442657313025249990348465818379885407292988828680120039707021928173750187661311427700137081607850802034492812983645756087756750243848081727621936755664325939562646039118074598032311097295599495684106582449411317806357822779086619354513378930089299299387836779095466967419074655753416003678573596770060641872181618085049765491575450276507679232546083907150567099434396220917907205830993767579192351933514383287366388001712585471827344257988520730881676844329997415684894899680048193669772279627234813660195935765134735262298246834467363949393654684413981447266658381893057500310964636972606770500892874994937545104535709597830348957092090062011445231284553869120900959294252931040831183178349896148967439567316488644244435721927568630041310987165527928062126689862036049758345336392912975062536692717028756648809140390210552300586966039407177521442493028847621184035081745577186983127094094860330931307768934353747449012477660401630537678543307449892228737501728500518160662086769007108267993478665797334122807722406318030524933787338810157536899858432399053005022877694606103625336006808229150207925928968382964856736495049882133782398563461125945724913677631935489978284949211317161212635911988935198913047014399358755019040974601920294364686200253611282043294235241273451676019763453584240278728921950870674998439209870671499653534577779626479161795097308368318206737394919744778291530389845066367541719964508529857429845494587208946936679817624505221720300887025962948027475218006908097652594266285678220296281728612585129389609910523199082739941384344065296185335897115583472132631339337733323306495023123587798744216631333411717509657385184960365787090262695284130538248652580273214788813672400591534160730352972832010424477001242632000128231713243091340033476428463829403255915954693942792540001057509721146473712469557167470834307858296857965871749933903473750092959369552232968074451789970076312515972550848323527299948077582893559716450208696939795210576286630778205244698666075780736968267974065292132862853280872163004579873829390603172171240257568057773701675029373858498442186891871204024581356773555859382323449033899472361761349019805351340855045139102302950642742930369016234480289350147773730473515521567642998544384802546731379209884583454181503764221371814993580914951527064590251189521710258248122905858162855838162570850698849635703569694338175925913781688667770325532685448130051211208517887744915940442801702382803252228081107951775434332729395557786967690338099227227160243806804108402693651395134225893586199077372639872960410759050588046446723370307051312709585594842213298894595405290565451228472263750056097696167620058603190334181693650848477746512791341385679717681330686308728542063438672389644741879359271363105840670956870610484151648537388958576848413685688336402988102957689053916400821769297487345977105745501814900139725445958288266955551523252216294598586655887366947086087656223302574841605461692309432657335153138837694074793862801358671964005174851929270592333575704277136015336111567131207479035182992866750797460621435590396482453731832740422676028730618189546279427033021033631275643641461757417885187709395736049684360475871777673900152020243187528944915100627892794398639874753735548648584760583153267756345474250321319308171507388786790122561801412003016049042367217091054491704238001293720717449794319806655536254054928129921290996640827773282024494651836688878892428748289032614586095677512426727540119958320974299385758684816682008941767307118823380142984009291007551064237885332624240542458780758883573260238684536458379913208661435482207015707822254431002094125397135665769709802452617052346033860432592626867477238406310486263354526205566432013636294910376853932151527117323073027620563561668451074409209096168754633606473067730585315891825238359590492272541937571080471160036959711053395880403432251819409372354020041644944300539887971745873398586396380972019100478713004650085930152731866276068180727843221557640431406702963308723521754500347811043926784376198787920986137694690521746978824681666719441573692801457213610874439758349383991066294760800726374529643201795045177111691816983872821320531658450246983822386903019580129665210212236751397413623932787181698958034799722535587740210581300118904931392864475277039957814256126093278158725993399556811107265492393869629251692514056727908145039891621748177338291139747141701973705226735759680185417393732975989924785314039680499138758796654291443380472405722255515703001307927015552930619089830588640714540196082287210410254979275212838076536758138647012929989379210012845908182483980633715449401211101685051417835132874601514571082707166859157609379193235537502125811936319288549952405129907617638392331995048655546358492676765164663887832619372987530594487917966347199548711656992552795303974140914583752244643881152436501752605649711939579894353495535029127679141205185487742657187783781471350467595479652717466707597185751018534042559280443706678559487172960064697949231813607986395355340974809696718428593574538214999462297659006141938156195434169603925664243653309288504200071935191041099573817883478912280393622625396102629645112082876042720946774089045355220904836654154473913335971121849614132476069967909539028263102436382643658440020450316298974757951497981310813634520519665135356372336654946906234426549996329239064230451507120190103962380587981820530471223577710687391916510569078609285467274411166282254127401475176628125051028225825590792388288385846709974761565790539775875069989929677683297630361028598118364328094638729594307173354472855721873576105749197590880675331991191784962509666779973856865837510016985140539004064537705573265745588696468914697948175977080353188182610454844921228668564177416734013342487824838113127124368685050252615092337958445713669710542200017334514319852932849082965121594046144550002453097426971973167089829190629467158390136746003076498493733970829863603109918786883359052361895965187894770094602578117472473062456285318487430346531405008648045608510852401525250936633187545541333556207703578842340622815464747501226825882440449323592545117742782893827825420406909707041769943604987894397865461830638956125703930982915948970683742462398269675770325700451994215999536267362193883297577051395536444117511367981059382274393693266510359085834526436562892205876088375665677570689678178778480555504175249587073265885653521019949674767967842468238564203087998484358585785463936178436525116793173148611567481150142346623565380357047266028309818558144968712249348666802393723402050280852173543913827169194821356568561178265240221083313703387886526643715701203429441468342128889152136313547514850784690092321329082642488325674447077378685984598815070017872406686607852766839767518928194674976164926808084592207778616498866626313824173852246404835276447802953793891078130067199585508330205517807692721481523264619256707135926291706348143784656485504808922446310001215836072415147205137041649988693447290785859708685538014361336755357660908622291611688491929391500569500244011235888192788234294295575240672157801585487166921910889342162889066965460868415712484899002523783034326470193044199365124324572317780850992349803490743149468540077834355429459760039665686893537975901856960317826584633729482071065781797420081379057607303091177380657951502459130788249719106024254828647745170662305321667475897704446889350521904442280695858747017410936656350179190791270736687333962581922169776700237319408723261555230281053607807125449381415138339168107588189498245792148023855318144693028709025536838845918422522731021401856538599294250710507006453754255898040390376778133892526302927125899812638188739450257798421799367891957059593773889267642118195818389540539089852297998183481003284283282023202657916314305829665407866776785586273800122796856724048912493241430878333294237719494888713324102674342188548403125928458626171393074324292212267497117929164643817297382746294492767401186953675674982083595927713943502513470016607170775182233131420762668542394304337134698584472729460786678458397711276419624574541003766483660050937133975694985321346906580511894621585215725384413247681758778153696978717569438066526900027360102468318367208212372545798691711909613658630904233980386512466842348533659495911533630964524271812499974876664672334420853533320389342578734096891006353016747106903888929517338740822623074494507352103457503033488518682737127754262721496573106338874397847197053986394608618587266570267531172016409183810726760045318138357464514363665796048765789163857626295052931954496214020477393134531644245359081271457960702367087708487025999353802001150084571471068681915302843804996778387848754819830136839485470508187117029147394107983679283025078989177360000224039160752044771075401930352229276086294100490913664547922437484487493068330913145299577320749400982065170966391799799702030150218425467898065110083297098385191883014695002150020595322446670201759847963223054508981617764125077702256492834204067110981393871710575094557540748163841239933824116351258346765537771179740109163055362185624057280885562270725798385840911228868672391741549473173172830990331803030708630395280759140300726178815331053245738035913741003015586942400917379177596447323234733408769570674366039277149828600731593993036842411472902310456543237237970792677733547674063522384905802609193507277698714226059406968263205416036857903017592301218707943266803440296998555060674836696681574254608285018861550894492020819691717243286501995025603519291076987193302803587562996995960753337290367268484809566218334834474892111148272304339192765424268433511811702517771781789822366660607900301325475505629272655658153379764881339730770481373702490563973793161870944597332962817704645510735534197930483506801628605900860052016018033902978797668284737806835657972049506422145624978163685743396959755970438828904851548651115018888612899816669667216409465502293938253142547173664202029642060019269568017363952398169102815259048356083775523012483679269339657853638619032507563580125887806695467168803824386010550686457143906603451739595674737335991643058865254540075109631864853764884574170971217884082947853524598469654768124302314845547127034211689243708053828317507448702515717576083154142870764101876653166720170055145715602393185679342018452630526193393858842268486633387124325674029306755356058600448034223086240197974153049053411366432508678141567153114254720294146804688992013099194329818653454036228755248723261842837354072587832014797614241672261663435593370903119930978974528188115552594055362572007845187914824995841062816909436387773130503686079613312470619369435379920189831934014360829245462362752025848502323780783516092152858451906793359461027511827550071109857097074233175478297607116754466409683643542528295001649810269940239554624131524674326406798942613274852593848005022273308310625036148368267433094591100471640374619624131411556779662119804656293919205688729830817155918190315739837570263195611708334125476702326689372779630588769973679144322655303967580440878486524153388834509730150769611141231156868636443129248963435735246970870293878887553017621324649247157540739643042577662118720489848392601073104761332066105959114042169464480516770625589172226209256197304287351842354532183114884765549306893324629836759433048308879816202456131711537994031835278416155635026897099678431418060334298938410648276333799526869550458658851794512175635114436318827516531996699023860975159897118451527610035895794560944558933911094021292379452269404984002735334754313415381918597806295972704391587370965455162661868224356750669015197123251977796170204662814835494393897539433000873063731551430130941515182821194596565993026198102555634934082632842771458991609281827716520626017465646972865780387121349207709732065683672144507410970607754770823203225989909555901457741455334541649189279775598227616165161036626893448724509162394481449223322415115172439440927789079687866585614420794915571482296707690412628780918648625577662889859250580535611660650031895569882900860742119986063973984980418361764579464091488414403181128502641229289098385007731632791740170300537496300578849761424449680503330866879823946587980319355744945267894652698011674617235083430317875517275896376862344086493965636149961634304478509805429707577347437150641898921200822300137734285756853949295289850489517622512536954980693211719970321654724262863264681587374663343900897823812763542705836633243916524226691947904698397218033346255032283786448381734481843804376293519441137299630434469723895214359494116040169823259802918844850358707300076529194121044631952556933124322624788936982843540142814402555625515154832511091790423896166923306125256318322882360672499313791479524927124270734502712538550737811978194560345612580352889195453128163739560144253074746420293248664240141673562035540317744588541954318284568136455648442698616400848469510684398886136864367173069580354162732913272813301055328560426354100404561115196864380769749428313058338752077109678045956963674216424813918467170259783579303532825934323912328902017899171606313281146070114666454228877165754432521345059070398821312915407768496763495554907036280958650322116452018695040625853972878671049389649895343569721661122688424236770817134285784751963009481980153386481934991154969088781302608650489353214251920639330905367846652588159147685858784983760689701418494010072090317085354276100054169946406812509991409118722612232713120150037960129250461619627159265580474370039395228717768558406322802863508917553901904638524544361854417162960350857789605999406069745991928234548747363654296038462932035675254325066163201838938730139173926949988334928658221790537897227624621686812452869517627274754940939381389802842933866674468183604875573793067938092988797024060126278471266413474087380269248462628535105579477083363413363991740691118408223267479915379631246546373639301311874378860974274161655856999716904663582118733903259147246779707042041201544620227503363165755349127975183088658427850021201599989329205372616417701185641499912394623309034761335636652228301991335312472785548879760836129716373412337929006903477340329244968742322390632770428787615611935595286368470183855916010845742850236127283276470566712031429771187605207412371454537110074992673511584993557971756427173294547868418871919495387397965089543482814940881940956073395034873776425702097434438973755639432663794252498072451719479132585180057682646993057296214606640369493105116647441363399795693498944995040623450616176258830514506760667336442029258047687468151718819133454591316783705226996656508650227143868729123146550890362716572819686643379342823715187316913029803128006654131745405675040806148343184635767602957360586242417469384178854736992758333151842505919904878953776757785141179697373613197576109195609067164137715284224941176959097793562988424436763073062444188107614793133612183400386948268412384376067531823786951160036105593158485709576252647640958795621387922409867133476590198689022550967437267466264970334139926463555653555998759905764311743404714821974706458555611309348933440896467453342609642107410057424114901861018652815961416639816482587365979530707634627686784931868647738151893530134426682398428517550170437147903987156472646726280678351277984632185750768849179353053182884110369922017559366377239095971926265299759429615928536376077223694496596653872141419454055779639250580347330393177273667498972434146658464315079458955822061130774314300848267357345990080024504578104922171002709698113010784878325475375788868130849236981540967566509386317594915928331105127083727288966258746157505745943216513224979639008513134105666506172773561488893497688107839533851380867938481656399053819553983591638702597589690731937813561782703202340620283461018402331234287987674824742313387408118413862940210300276173913668237337569474660875237312686733279297084555905918673487668273119236387457426325337512601215369673034007266849710462786914554191518981108977494780136417194432108075545823715306813256691472932417347737199028289439164908676298869055777231966670824240546271904361218359759704785252004021315845754943889961438936111189920145338673939023938141196202725081842736315007410056209922848466834090973127012642910047862170529824115628016934102840969470853418023151130671298489083961946579884624260306429663874293191175121865065555751651948207581924658236846748683499941455622472224545583992257415803943192242437916633567811036765332536799898422681643929858615764066036687246645214543611385577049874323675429153425754377821157428286883043978707615664765691692520772432444591018810586889444406229531857181077921727645958878948760567008025162327542407058535072801554031879914217903846110618311187255058365158362916787344377955813547643690167851833841507402482739174363662573349258250458573480825237231494703467585025339512235055608300663120828034543347209208372457049354318549013364564899195412744462265303992485665365432380231743428839031044304395899471507603073257455604219499418318057467474086577412808732211681415897200893754510836230561812422933128577665584331874429585930132924105927111226247798559295946117619128075890085110743514371092780500891193863433036660501627372766743293970317908193176876585139334163463526295770408818611979427743373387971965962632874768633753764252675873765002919689663798691122168397734237933450539244938482073602922494093806950667066366744654984568280086038746672881003296457648952823015815886657388580715879623039489655253562516342122593468360817193590017871390359771844779403488480516552870230445865108445428103293130956502811308515363820997308519848453754531313494739235636989370956412880268029654786100674276778447846118531645438211129809533849441916632496435263059745926422233248995751543949401610669673358324469508126290809555459385123361372321540856085242534462339377609911436018205595902052406770845946889237013090042311161938900735577712229755555349370939423939243291949769395632994350848934467011287831596935245779210578741678989676287383275840884933127890247287086152440243878025195734386386235176877699338411685945236836997012089639180155776371320461196163794233875368403097597707897796558655694469510497281341680471840199602790640926446575868861753585565283096240703263729809068684047455588795628250963523726638184843419960619944068151946698398399306571209341617778756392800913749967135889892589820215016217087088456724326201290717922278307292496488814431862431130439600184395785041261373354875932884806905582656667333488660481866032541542946942237989479963150093306560684815633288734853913657605820938647225535853644749868565541207015156417561111159590100974881496201031658448566780645075554795622305008217251880169983446091936262994948685759988255100059484053519660776241631451848564055271615959526173251237260424049603433532897544715966198506804174594859266139339710728675042432981014850617142186017970575799059845565809223683520255349541930168819102936714515994294256115221635380871273140323543959282899448179935359799352258870346953784651507587021044364348739010029126654856877150584041937573648922561934265784459460336949672213085634448084126242008114719299500794140003926117991400946933274843355081441442396308973285695579784688050532173523965746240957213808934994730102092851530855320370599390247165830694239668572199625127998059087682946491082144981107860140465730406677599450359185265463306330706441771462073233979641554017237630511916698734239514471960840562523463493549637119871236392380724218699001428952169033172054303471545902203209310991590241718503426769250407584540177058138388704312274913831535582973700907314151215963458429506712294017710245060471196999813605984269854116024794678130439525910092992812798200311800835250312157182406727685866190272269056375733735586181973618459871632697281250130177019658642744494285161346062752351623701049860571119832629124916392758701341978395299493251472288908681119358835001452335419776460077896851646663850770457373631354676762298496141089280215239552035310658211540465787211985065598484585810594665296645821575148006773935041547661876628228802063618512231742736790671320494925085765784467083149858749943534108158658529622823398762150180978945926460936975009543317684283375797752381872143542711808124467833523710140563478075085996065051707914890425562063418217966373998938393468407411657546827455437630375978905692670764460748400543574877720066151616875716502731747240052006033568304840701536368608320080014333174996203939293709103186524421797602043642027539943406816468303277770169589742788595344877629354140797309592928714572441654996527862937574084383151258726614341822667974783179929130363374520764634222488276206885968041417381283527280975592827788395914693189893410134661775101077804087740030803173858982646026030321148652813958263150163749287002464546191853278142951960407145284481554701452652755327795198537164122730056377698053715922110684955969746808321619897815340448049445125255286655672049891319187085448755331394256133431987984908429658871514969951522334562057678764200608445180049180605737688613801536161395902841451843441386255412671996797790342588910817904208139084069522371228551873800316113317615616152099520158347795616791994508658139230842765448661300946300014173313789131991628977354209170729735894807571381508046185782273005748356876768575664249241686962578281565398530981375697233767411032912340836960402540726619440150451613861198968826322806009361772614316392509023438980722502561140080804177950125254163895843895711959483992432205618001183501132416709479528716269522788882704158297810485504914694747217078897786000926391472514612907823083906764244216918598664091406523267482785258180348909225277486652210084211544011322671581147988210920658283953745020740192499085691983520356689184983251954986500733493093003712753746665631710911068423632723827420291484267467131022829138006796135457978771400416329347366763058488914701658608624512161600015143805759508894732258565320164144821373587893013951093696694862520354367030735862078589072251060114387479065624183998879834205192239838001509902989628094915395536708791262103407185785987107205937299083939571943783689358029087237094336488336663373625539855705850953339375197895541992769585988378801485592118167871227453708805929104694934107152001852912651964164924920751159445150736450725680403656232645485446059869456313310685021496515721230144834822568397646676723252449052992185511859299839908382520994171838879401119230777412106865557833829886081095380596467515532877163863691996604278207777592844175951770018900147850711867262535971415924509137216928755511909921112330123010777903674010159640284440351409110909299604411019396969186683577803698505934418581037069653468243787105958100198118456403218845434024533127743356949751032894506310030490283703770089191431552727270309821364355107047976631989432105253433467150427664091005792252510735911864784475056707674477486273252178770080454740266967829228497239961853353551116421883866619821486228104243145452068992029200680724783365593195078672857849081569391640053389354772836972479403739281245401894243583714666707039211667190751312573138286692675431885184094620311762566656575695610268740177039295254518418593998970790371342231423977026470629699549636809377257388298845963554769880214208789161014362077309089717072442268304548800506203518839389802308736800731945019362964972879466262385675799629599488268114011348057431006327465798895341635270979179209652797808071679263707013915434361108518703373850176595974192703950336406933800857860570834628940497709527686080644425997904172423732530988429597757128575895869066282685419980535353956192313673320677050236679773229802666420711767532734368917260720724418818409990826623907615531587123469500723269570721696764308992079165844315477388444390955926497062726724105669100753271364605017643276513508676363314214932643415995624496808005748974362424159088785415950766352444862442905470484334729985990718080557119796659181845834132074240584562858878007251749396980935771226147988645168512901402551997277004090994267587441404735299266937212879538690833786206982879988868940931319098625712444993312885857530225172655901780546497080093613296631615030904932788868276803224140863152107726352656398106500233277536016598576011271843377763849294047898971673576442992020557764906730420351742894408497492167606349087920856340584787014608628155792438777789148958423052976045970039169428220009370689638434241668535198963037918632955377920859332133444706382973451526030334844701014551503453886358017908459129757467506075692586503407212349190266660144928714149916307394041669843621370067935377688536266898509614355600849365775516292794328757109017384399391892225041113172977733328125304599744864158496490601226672176875560652819651270995651823956258904221862387397415036133729504298598722172780363456927927655359445934904709955739041114849636568084436591495649416722333856017842030574344945304842944459247608038162388582610332374643024077231455044633550871270028916186466261832788416990058734923122844899385632352010499724625555571287686607161569592077623735272269674125390611015140066348915636610751428161860439146224362289965234708880829393925408408811492899841732327936318850706829799582025636295196512255708618557658972516062406472965033427144794664792062501654583491034291474559893900981925411057901509155412102928943030939938264554428045929381636015472019039389105422290267322457670980016719199051103903907440399553779439839946971418272860414979832580881120531064572886881741224404680603229898227892697334419605559015919052644373553444214326262946715043680074073648951346967747255188928084981611408979682541523295340916895945550138127103225824162593851920928826436221145160849788177041235116006152443239597105473350945131935579043690035484532465684130126684113670971318898888689578436563093248120452762621189580351479410461197908250184409633161919844627304667882918568075263621033230436998726780074182634349567507330922397280377305453567326671660018963771419192255347613715539017828033611813300535981738042206223116750329201621542133723122528320516346527244500006562821703989729255405396433356121940302083060155734183174019501154706849630396142652121895939892158089274739940609732817366290588398136297524398469094589658012024362945648897222805140120740560985651371609712564452186672887534950068813261792905353731346789982010667405446824596614415658719964789983985825086902782776411506829015752866078295234016895932081409197781689101832810759090037556461421317428268296687504543459170153404848137106160332989744106449644111292819371261363367974921800811613349119870352022347245887043485669286013626100581013149605733169282544044445183005776478110990775037739413608546452093331507109515653593557937928623157002847040489695074712115013403622254641905950641981581166755762100683755688084505614020904958218998499855322046975554318822961247524705212621877284073653845276048054262714561696197573799690905584752460344920456299159182453045744091910507099957065407923746797820220789772364253127904950274606327338817219299198760944582676586292599526089916598995785782355425131434449448888986005923506558190680499728376079892256796995508213831068544480871463028101157177435507306069371025631635510385956828333927488396222593419951629356501419747920737595564230846215733758022588875174806649721233451047000641656352084860825628530081416629169962467750485238459716261445158334733109597052251737540597732036505250309040513982043348096762990744998379321703858425395692133522380887336580719441990715938531714843787674573534951848589037170280036893943939972007849144562839886677349411334235419404122398418448638351715012640147228552340887693556395071204748365130121036938075475166872088975306057117113822579969297004694699262204829040908409779169660405285898715109127683827679220033925175780633209581214421388078419140058568470505467560958241889213284247746789219177467706789157384762350575878519923003301664613211122787511594755650981620706942635006369192988921723694840217062454159899359810395673224285432137440318146204055006294495553899377393780683670376490439291353709841419555009404138786315372969776778464477523511784983755825841860727228144124644070069423926332616833068264028912753035941776294988151574243665237703554249380190464893503741967629833152519762443836888146454979128061045905387486055449037070782035220771375730853947974250031452375046686206321996337052593626412729308621565155505585805162381774502456361681531516457473208597345099079397154317929758860716007143015413700840054381462028059840020832599623777099345616527532431170473803906433325703262135606245039246767988608041497619095621901941390198025578500635425440804050742147155044630228793538735526456806156561328840473078950760086267035482215515187310115137140511988999663271392243407627094147255445265232759853154704522743722653814876990177869642203403565875866806476057592189581360498540638690015734500816185127843304479654050317143156444119355399457061076748705400351576035319578145567966309166419384823106680746205028400062216093566155089319911687264388802785396628761752310390599002236737269748534929312538473709915092054320369092225003477985638845272893848501750146819920010067141447648898976344336493548449103261304235392058827939480710739751958916436918705237489315736697883599026583861206146532956808189690697259867510706253883232351618135372590968987262495220963404474823953753536556432272208234983689269464805685173132001466476823142005255568863628079110745875443804733046095673696017147864424684178649438276472965186587586016648991459012906573693885237684230953413852728167492259841217848434152771252749473123016402143094434460794613801531165988662267096216768258977042554696073987190545583733104639348962706245831908344071482651774452102812419506976515461960863244096544462521779677043030521240525132910885375340865549355084126339560667439298456245645073583422041514514677676321187316011210797413497510364189518299386621055987885762327674507527568957857173083407101431061347227290624950132105183217479697594519140436644260815918852318935928858733570835055862312576195055655570854065993052332695173823482743042261590931920484142028564438369225751825441431532459475922875922502718917711601141166848057621483156973654416843962180909054846783165378722516496811926885078307992691126254555793560414690426661919711467262952992448017210946101850834441389779184353114931429476719364698746715138999726313535048091581360663335726192474289075495313159139068617307956305368627702293090587237476863571026577383593716028355310330705847557300508153213372184143747917561936834265091635946785700039561241744162021589032268201308140132253410761056255988553512604514453175114458836172074721237755139602766232297059278747646898187423203159014404420910373933287985249542507265939670895211341242249113565462319231723918983739937549203789116167940130767900027723998681507571529033841292815996015673983927136467186060973136348965081367986394123985097064874209177711303901363811194459653038765144716671763666196504544295820877201596238088822249553741989240873125730725151977374743448419360375317416420002844891559562220598380897433862233066616130811860177673849445484872249885415011803469881796456688187546222957615204084463308792851480487206914817542823520714191669988499177195090712770546548514169828473909284099135179061610426756495553234204289440566451899629333959213843874873167498807060329782771440591389096713808658880005490449715361383257782894281560090641888886075430644191817552410747722170433979278777625040936065991797148530244893641466361804167497235853744642968838283843120648804788406260522497470259069148871356441088084178621238239653507189993036179834316601983468169177723881651257131181179375785261948658746341464818922908289087911740093313017945569386704746654994807049044046613262643926524105014450729138635571582802071205154242720194357060720504307434178235161031982761960951902210004049539220234108008839985341513841006764982932118501435311991321495241807960744398611839103982888517658556826478343167845712757497301120486318603570335292911536300588319700433047289351217262120159849940584385797202738607858895142329522370966053364664150127228184335080164031881821158887914826508653531164638314779671513884532102740243109648847724583608430813082128717907368623046489598435055827368635222783285957160040412761235553391926193859677972789613539463457552391651263404061375694529574701607338153517042276742616521150341179618194066627188512384482368781340587302611647785494003241468272143551862054274400870089555380039594388488121353290223794424153390764461501891217066405366463736873887162712937039211390564217556867836556965039037951272247089260929566822584594359946378974860681510238057387795402352022475163386705018506611333388754026514500911419247003669952269758602520428078701089689241718256204920150492148112497796813716085935602156700339482728053116436369737616683464755177891864658950549092176284734947330282564028446579601235939454621958207537834209397875447316036942803039511711465295101204215414327874689600103473869387551271673166636271659949687707643428035633485989889697575703762907795880041846672304153295484146428004268040142166630006669130749704361281305959782491954530600890364297173181835646113978702371075930184452415992344480491192869194926285570773846005056766926556177689822275459926290499235987908583517799871771668718930398825516266703759116261453953760844807696179797336113633045127737636677477614911835210991306818755806564919408822005957427222902664754020966734931340288894478083002767480953153148056635763583271448862766202017589531599293279468005970399100830302900339728203119561377132656871237191295081827737108735548031487784127691328840935525141322769776458868541895459951955983608083407924907720623949123808348541667803945337088779666026338716236366221353523854708437146154219895601164113484590314225341582024290733044212505858441120756602062145921106589584726439327836978653644846430984969315106749971732189091633797816438521996614073820392288702030333604724464647667052131537389714697318090306786259944232605650352790499532189759407647425755895340559926582432810308208671887934590171218264023957352186652430853928916930835437630148768061160828650594456576886104466453053227848103142738460429233570979877275342938289059044848576793773062806951621930759388558897218482023387502192366530146019184160580105017818535914114980072032727708747928777109060246178481733794346659045589956250173791085208915747247033772680511852554002836926060725117055903837978435557071862183934894011408186000462245921888601544143522635799624355927469410121234833141486403898263550151590099507918600799251119898620700586925255583822440492510530605653912146764061611308054496774320111185893137719807494044222414881331826306709996300449543970652986446901357616654709334092734459484336498988472040907569211425673656532606904423064862259999139608136207302203209940058919024048162042752810417219236463632342818406267373412472073791172825019373273846637893597149492357227804479148650389045267391063749547081610656450050173836140483554061086408731014417372496076596050723131890513506131439063722380574334898490922217442029785380709754073687427631275439762330401609385944518562380299037967275622782307912994442074295357144230508290014279988176962372391497359210097485825524731488768989227093582879111375305936581865227899265022815876849202384394199314370584215559329912931253602714443170758932261294793909939302632053260848342648367763538984421823632170426448850985055688472209274682108640674909866355492476056022652557391311694945529624355616938251185341710480471051039964609634089434602907074110704161650334552912545842635213751233894880277412081903695939299707469038726769514149970691559351921857876726089057810466401555745576048304252832816017501532315374179043634491174490723436415337301332642744078781635128591642204297138830002589650789929621323612592765982728822273403083318925671866383236161477785740968137347224405974149783547909789635346450768356110542215129468621646095722191971526406266236800999842995699611142421091973928066786373904365515167346564398132193858423987371078114330618761432515457179119160244311977732274777652743955436665364248678871206750083537022006948184633128634437326861997856266835871777495162578721537357359236186082669121631905028572436914594859442341078686181758023529533976846228551258563298781444272505650086525186873758480983984844252865864938401590643368343453303484289882000391391214523960326167449002426408429377340096460981226562926112821744409550258894318084235111758405662026916161068290047043437715640808381931982177824266321926532913960064446877999201537872633917442523576673820031941239116525891274361091899188055942688272154726402356025693964316260152498419044844519052081455558731446560043034073083209005001653151023311903695572634403686037834456810987412856334633814436401743583350807533322336098749909643623394710550118252744055236305356877068326128976255818795425168468441537908225886836038012711049210324899543306024339297939279661564146037009827777163967843753122715231125349731778978669119573379503448397324737369791839513646224465489654747299625985466092633853954485609612834300662943513240113869061591855676482005080173796042994449772272765661385617364857106060527813206276016996365389593648807157555120628471040944421218466827014598431579193898125673152491441421565315751593137147753101263848533488502730024694110592841263666603220076290650552702475732193187883603006167511044495001368526271124619525712266885774260417147701943506238560043155911961088813390488680786405936927773512093867206071846994420989975502907965736641979496079266824126795669378097152532531797964580162308115532122296372100775878271110526433278006322558728576296642115530193883214344650175967629859776586774489614569176795771782126932606935368533879356862982180780219371490028649633631938153163175057119825955025015659386938101436114856994472761873293688632305403485707907856853547109410958913076556409912359769303517602654304314396744568538519542116822868677074635055223504730371506502919819112728936857994213148728943007643491744513492141219478927120212263773826820412662409261268419356556762118115659144440241153836813239255904179471228932109421729170548917074544009592505312173263114137492016939020470238171135646800732006461152008463039583569299535071136149882766181137278537696226856584275003271404085594949300805219800600242926201958454201111202299036246968958440596942461809901571339895452595048974692747737971308578541835446211557064773001537866334360213000200238186776595699320313414817840510743488892629763974320718103506547402986489364747393241781438426129514413736968753402667834652838552313581241355862455359914286838559804988241310511754900219921925610227431085381182174107343637060935356000226547264483215949285105928326313439389441731736473954567029193499504041050506795910005271737113967495338952105475666667857240761022844337983224845144530079484881800819845070136904236704975376466918122288904871747038260433574038100735404939417858903886291793277909203486227753065208164384002051726881778968919145404731019019813221652935639816369112076968251214408461170007619441901877406030314266609768451461460353691529262736977286267107717408915060955512649866672526398672204274167304903385386717531664228766428184249115002039462694535058707967309394919113156481978018767030993219377197244546147530960814340134048945454841051117024117683563869632090768855159481517737925499659324874913267392404429315550450461395792216567866468039452328907947629275156974194786843984370566409162678136640296167856270069932445384124437930281940174741129220799576688345646719589834815823083289154660689459304214733740494880242027535567319352678687301828522068763162839092978142904648656887266180376468553913797023841030935075869107678919476808624247655138415046846122675604108284346087294867884301630052944747024756886423731361703868557104837525428767107874360661048597284725612913523522727885675493857783800013625826247661893074499324536052931225174712075674702991566637630721574683490829782879766842146021018465705979648623977799942304506034723763703690208606998422824480218066881118041423977854662125646813874548494358004214570539433422967032183164626068816193181896239674647830079568610392138287148279765822406476031939688082544694958479243591014046555289400250631945570431257878441048126008726210068144970111925506091056161409272972129797311878941566295541960050025553773227281484147408272223151135969376265563248739394038429750661628248810614643639446080594937837075184201339987333829355686836611993056210573917095434432173182416444840807865975323791793985908589981190431378002456076017138350059048225550741562961057560150973757720032809855384924856398070896130687259916907559040927489248471942974717206797520052120876981749298100875126271185056232707380805484461398701328068553569304701532440453379625685698137342256381870226477014558492498178205880153174995880982723173716281316324652554094940199011613749911641328534032066940524376598123147031631529130504800775709876761762026383834416186504305653134559241914119323872957465648885960726921616660074429768553072406792975869203522987383192206682927108894109427454317277808544770768948722975423222647749055646565388976817139025334793766917309961002057122019862728670549515507478270053647426788810583372745508992465760806272891522433803347771666799592326208587626990356660806357497873284541453964814097310608836399939588536106137305383931838158457263498064446713001050111242701520368182812062083322556353604793183111672802488577133572492575314882878425516561409235219762364352741743565834227789721851427538106945956627743047579800849760795696729296749147612279401377510432468073760484939882690957756574657025459691871143604460583501279437885520973135916561010371458924638756830651326822237184368347134390932452086258421021497415221420112638787718422025432212805343952382781603143087541967162847759854815102201638621724236373009114991490178370888977015213710261466310522802410329088267930456598471875329299033321811906718692769452695009023803856225038002550120103624017025147701962280672748755238230816639956610457076722657518973534324617053889697015514715284848086165058794816246448618915761874644023851349439360685681280779762475827637180310009917062892731655259367123144332629052295612498916840230249951710809989051146828269680959929302767153822033811669879524439742781218791554745305499592083845829671083276542096656856415622338974823621611445233215469042450473568827559339057032806534853522227569069383189262062327152892192445731417805095965902133233811636136316920824605853095008479264677378707581008425953060310323090121374622502506373636383046628020671346867529917285407984272856843884690086199364443281137161874082681249066470489943829357954954055683764321333324134173096684788938940010255597746796108212936198062812257129719273671126130258573366858934309548585532104040445578888161623729955510421976573069251175025530606179238646929382480637062140877964390464811451772110924657174659483979797086155197997745025191219293919230146872673041886925419688953655747709034364036955293339908019301839896792865622688191668712699699944976352078482510309097427460013556687041952662714882544937058637448051652132788448149041535580681484873297306578175248311737993752818696027692509989625756970271106545116437378516545565014225287058891947260107413852588706077582897030762800373323405568761075428359410540401019099001407386557689527565125311714011280238023891540932236518526797239788823938851065506819754880673607313530182202928309844461692336927234467801691914692762199488113022974021702197377306297548155947054223641291568484404418823598105035456441857924022663820775856200594618780645059545178148864159527968819481519789635016333207477580081090013397667066981357161620989109884248323140629824688506594088107965864109551691581420842141301288798279127663866388314670288595100583486715678035259641363003594630996891479490395376611043396806470912513815074824814503765401580269492431374548343284410837534740639352659933378683432373025887098120819337145310018471089908126478571855850890634056515285862289487910916471201617161047351689628532980335556692118062688508913895542718419544309904526242977820970459853339199987712247735918449921360300756272270944656759210909323940361594360408495904639175150413185404292556604542121153766827297241759861165128462961746582577799870453727072874478141605039441782912618595676701689266243363971145247261695731973485216601848013801998293313818558069415440472481178552896828326433843977985442844664816668005416077660325731758781621484645016001362852222843679727004058416471046913580712853239552111065974075891340945469953758634197183950671417865556087552285767849720701028930968340588098926676056145409136077938335029475442393059965648785671406204684272560605117366558536877846074486924914985421812724979890071758599485231885918884544880999417681134522381039090190972625606920835714907298205417561178615275697103974103698584657228368080729655576688456511741096880256509595258498820358708390942617307061415944783367933417308237815629783975229659139114712982827623526561323564525291500977409672768245172029810618505173782781124538860773261990518240791253827565362435258140859088568371851998686505749069457275261737004564978124506658728670413475851521076304686099873324620504761267912822354340911889750344042837930955136392701099900223036201654222294083815458135237594860735392324946604089609337023485822148958330973007832557909209239387058046891156940909995479634543658371591064923723662259523158587971335958563888684521311647526375315878957262011678768158455114122428340105355894852045634166849057415552631713865042272633547307216241505515754677054595935419189929268585215214788576681249102827339465090410593552637694424170862699219497923775497021395894795304852402267739743309484391975316348274456299706641284156136597012076216914988386104356024208620220603668871936789457668715663302550976858590791279346136653873459129402330435681026745619193201260138316931776549810521764446772387448869492959516160693578357010344790225266935598684169991067145936121604802010878417338858965905095162184288356677652373740047496472831677204900931737465160341370894730186536396985128685240635722403320634124753443622662625284884701162013804469681457241405186388967401863228924127100154723772475986320331175795947953532321195021269262585700031209586702164735096187323732481596267646477195796901100798587407239876828836346295684787957078392567218979448849367134912731580609319872020283035289124010980149981457460070555438434881413632862151625290022967787416358008791607499488454292360678852988403820878071112531260723320026837231382885395879932336148322166926965977228688199940917451057002668036968304954564289092989700892445783693420028474128659639729817578618206991169223981763772632556252412206546571395140094224817212344026493728428885448597675826494218389512602484284210788022284247854711469133824842641365271151856098906006542957757346872395347742819108015816297420437991534615907421606873419426201167894577630741851187926486666536399662017917711653815630462145635329655580846111977960572896831014002806338583856593749879923181982780838154833996219921912640884367869580121642101469127093229145548259964094273031207188065991064806059269431861131749446329698900206159945248921335710589700215639777229612331893637136314506592391798083286841869700823437533839043589251061723943129909805774750200709794378994485978189289282757407550175934910169934610442063151433557526471958354914195914222377066937059362518251840072283232167270002075613846324564396518920562055308519313382530126967276382308077099434088518520471088499244520648556064968319025682371477009040836954722802429999788596552282269399040405281069571663405219969388674271324014438440396369763781267159156843184586853494355733983810444475147558557785982689682409071335365759792764180081223181442737459341459147642192687480054532313107644167935760565823797194811787633277638631402411345308876815339538502380030905625512897210298910765221670369708261032496182529663571323955985901602285723126192160039632892562302029613239553193074689694732330856599797384506584254586725018599762766543355548481737316411525974659692919674295381059861096689008143023277085958762054515423623756688091862096460119243554737757053496192054892578373181717928226350676698076854568266518372296385957806736486668895044240991279279142271742717252993119300254927630243481200874292485399343396071119020054294153942347663402900249862769040895466645542733796765925812503155934199252523014156014439847066310399061860814869560640999005768545281008370650771565624901792982601733221828431289085659536886865139426329097297412578010787894072702652708089079614259970186729783924801145118790266799809331273501978960550345507174391517821278201464440400471149192703486047629501915334766066518408724256893572382226005934163644641374131188820004508608133009039395492106749484641464024774826147163971048677277387421631198671163605127313672741001330756165082627609488994676541681680089717286475182711588917929853945491921788944012828428586864403619277602541446094861971567925468001693971890481361033492222740535160039013886474382244733415175778524517041175289234509564762073523657275788736680926319859178135544101362962145188817284598171412281090321759542190291342480531630944974230143754668842950539037767465869886267072895177938837221644274147180197328279002045074201117446897828309486227912063478400724994021730108823215357818606818883030199574838115938684442665602617768945454773939829511037148328604406667433177074998290565537197432816924865669867761698449475955374333947978763915319957671008691136934119876671316438969830918622859407071380762416001351997289671432594504707423119843268327875998183350655314368419137246800202201895212188571799215104755486797472703876303109562914365844863693907939253286625439864454742639588328467105389842935086950827200803490655753067786795162481417355779066596231597357401049596284694049870666161552383188026682515205196740268635430227754271992251874468032156181695591277746781062900669417105463740018542620606940026718921599176668337900645248636969651870469039092258057259463733201224552333674984440546198659743505402223523844654957892343562707831542438014778088556019588401492217120059980220147977895320609448231691704496683303109071935493200295985447029612681279952990602767078548296125673387379549717644988132085614404075613717465533483892939271065511163643397525808323086751219092052455465966112195015819174559326688306666399130066087982104811459906832280916418768232783424175969745873919368034383490013610176560440205222067313814452316252353555014858091175278425218727583306015429209979584338463160771679289200678158760673820217230852324613146844332709453462455905483326483135361952126581665477106001760116624762420103099192735161170028061857361253793444514863562502277728461015216817207855948744915100230675474391054214780874669330577661208266143767956500544275420115229298635152632451221254932282676916850826374326036478391118915222848670030158866500921590291703850302977265374283863447317922397588298046974722317564799890452862034641835103777744967910893348212205719975151352416117305587926630563627382549538003635309558146976433609586932410422853503649836882161544237316809546209987713252798398758788842233932123821998876518632346248975575559941910533473494105056604224527617547493046791750962316046175489986262811742980050367678351818736550140686136428055270544003571412141838416471079866154754734909453473909357993740929351180003850522741405752834881747599363348620892845185532283193657791604446278155359631726232270794462393334817163446879256349180002369553634816099362978685477767618835906043179221242465428325649813803925535697309668479718329802342911826693947030034113649152164545011213959997001999586183598204854886030241980404088366039283670887331471543198183235174643179624092608575016434283202016035330692803551366362214201623124779949374099831317490958773085159773600501124100216783131968915691530332860957312093214693267777334702731379175373201188262588961017438179175049903534747335536592645234534565151536196187347205238970653162898272110804926743083513529157158557908660736829105007281740591605229999284165830916273406545437444225954484583872160970068971325331184153285389016523514454066398661943466617800371143415674588401665960082477316305253751689433208074250749177871931082141305939492696215702833836098539667906408436280100551868320603886543796660219501654688709396849411413788481596036900482061414983643034506708792336731609006388296559157759255197234240789984094559061884867941014308687292721603955302621872611880144515828503438518686160413303618433443835665463386698468660634432312320525608068162773745796546524009236107681159696876573620784738520145920195780931144445796438567216625980934192198348462287954571280990262517906813097997282980227922474846006697266866482020033118793167628133440352084574650795895294418217737423032991002900431294922241891161348404381998933264185791028931571042005218446442064300097333920269524657314000204776997396796178906864049781763006055465076920697579780514092814604668031165242802192703852594673080218546229949848863755542736834568015188496573136503311018025044967327293939601369118742808669300903540345489671549328783054913006459700812374773687151230662650601228962624585565769946820427798472680416645157661923634733822821916686605193204433663459983476843831615495454204995556710761540311864123711019377609537461888551087109287888499860761942862171214589738960352375795820603943534290728543991308738721548248461922753106436011268257819637913988083978232924266203562486406466387806187761407650083406461093798708496375949713999281487714234833889446014900702320558377823775070961613973437918635250800425222338746734376384123909367815372264026619348678210904578405441576273319998920139422099052456369943684697475000844084583173889577474280058936457615003892265805752049919552001566278452667091982774894971701737156951427927151741918112690625551141648002020228985184564371531484851232972344930083667533151349707548339470206576642735299819941450322084764202132364416089468835180821376422057509002806952773693694529201433878003154751269157527596693584468363319814024550970256412930051948589409043065325092497679191518880555861039375560205879859429239577528432139038011028729689531503813081863386820126141928584323438445027100265776912816485753266433792230389930704539500687708620944215623881686987927962775904249862936989410345602972665102753518944224562918736653628426104626246639959571018620131175621011672012878011902099266826092306226565369053680288378034846914938840611510227214405494925608026925516632217020290160136439693947989007975065008354489566189120254358070029808085561296426106112790495988371478814580138592921423109033264586534337363616510078469099078699008503614013542239935730884315978615061876081979571265562957005462591108883815237827874213802684823141223728370137925440282106933594156955882860909545596859330078023550076320795520063095007666186334372636734765533269480637948167382877646311748869033358467646323433757298223507960474390933975945603188728813660556869477294673233917428677732055959339030314708474993885562788465925991297202195357630049132341266725111797052903738784131606170889237970634821814051907869627968729414923756639108644132092011239148532766365332832880666265430738031736820601037167426429711475552866613877092796165506959919077719009306437277690213857343252327276546122766700199724839965112428205406027762547983074842412448517575687620983551029706772687312458604697748585050143815170392531322802804867145138417199193009312484581943220092209714308236967335953763235905492593811934329729170142343803726354389352791108762369415209629931871356798605784854955711950836458741733800936871115783802500085822143811093726745430563998085145175672635205667252189396345531140112992664840148407948878108255996828268527086416249387107177823885666110351305141800670524769003843709867703633041215075980163280951223203512708234190484830722418683549972781748440829984124516338642049330352150860209882914137318657679523207711349554611652741392836884488750866394612445193066060620624383910639438282920464700900550711234872627022796961445383006163256782815106260083300938358382411621910636771234244970416389589009561071992569891478538702274796733478201910429629336568752903937188885167406493124635764790669197190250674717365927785156104726479580357759503079157170659491989420594667001332891635006748727009626506867655385263076726603080446466790910236455513031454979135473760889036165220496774781533457638104191598984731025544729527928019071782572397260356938843021490865438125544040786377598283718444213275394266351613800923626631248562511986189090577234559872170117470554229869865399903807361683385442815714132424266295098280980070561663493858642384538394613552002270666280495703001401093366534434616752694643000430000177761727253547928641679267739100418521339911573062941169207439017423255999363595172467392528284362264131920264967989001788017511278338228363720195312013516507457489363389802664231893626476185868830412519434445591935029341610830453646376263488613404166765403266317841205901516520698430147147244357153101880268732138913374828225007864910426539675373810113744437964428836271852404634918006211062685769397334484308677616776368714361048031542419089609492371379101899821860717233854248305474835420100767666574601785090446978972679220916430568002832140631608438548388128963420099833190228315463977249875914162903014164334231852055393823722524223753033993392317714746057667732868701835258963265020881716729860591796729994550206111163381245629729022681660162605575268145847852214175131499770709649592062024554597068496501191188000149173443336973088261502457746480944652158966314589657210712007417544709600565851403384940952274725202724670464035153170874166719039447917367819371557123099559041684030886600716557032197129416138508674655553931214830452134549825247621684910035713672482665132527724530896092094988486232880948101969181470998536821281441225644551144496398217463714054060169474816742603761655029124770209535274719337729713467734560031633208495638664555148659529131951443243497018671159790562894859556277706556733570071495840181046058889648093940418316170329353743950850827786784369732545273659465200185123696916968824023885370300405692045512105589456421123391255463997043784609196147298645776641696418099311254533377679492153293894297918155357019246984949484458613498673309486255849096810745877991162570570088711863320140002686597346295627501199071827595304665940599207872242898044886972663010762164252899902215517894593552634336037829547013004134075163038110112849883614301855942201929705643970731339024820492257076629523331291941696190665852218805291028302478679198306226865618958151949466649585160387830218081938942785383766615532297387469659845024214401605510782982909985235478522624757257603375950033667102594942753137201082975060523968213483136117295246368946243601460453219508089205532392810061023596987738192724807552095864561485456128655612242896291632610272786847509801724499803557222510801547873316988006172168799778683690333273775233018628231180861467824200798748589011326680295733694449288075790857960080504314102167901814804891802832330224064650432473054790673602275218094385942675566462237257211867177777865433509390152989803423967209810806898012423236619782132743756833130663787448511193136568229007156658025819542655013203123646814528541616439794657564488482114055120000331262941802495184242673928635338706684412898990524218883179327560852674129567785132895617647178462991942912236229865850269029423846571271269975666245095032225064806309465739686540344596574237739913852660826990315125294489803992728878427358495078709147943123359439400158037621373635204986182551277086257436569368064239971274720890122564022118343793526856248207210661493668279668685893869653965629159059566378013650262033589414448642406650275572349879595807036996083560118084195121374473340368898578646366943223188070148396607305836579840389466697385839480662080640749961752447760517626936489447371175165581933126335088367408620483666264270692490872600162707455119997805212155461516777233992430875805242954442540724654358221242038039261682678883282963798906135590714522306128624132468633311201682039841657915232205798812139386982039247089967562078558013119392414801235740799648818176212742544747502777437914060422320416990752984855768476146204048418794470397157228552443882742235465558527154146988907658440821877925253995167774194599329456758053992718389301957305613555342519967738150395603917773900591850722810833648667006193716582829478356154502339845424006838426269937967367110604332526101436637064780658156374304947105327291539307793409420159081368331449094605942915970082760380947714765075267581467806118091194262226106212562302324902832174938256536344300957085331936205267333774651606558816351678914428470341821910602775170126383927823162059932547691126350958232025969926145172325260079782569757681309051164937683322872924287510879467040379213200301869103377983048327688748618734630745705740293099856702079666623866783493128541795787670320384401652356461704003412215264343605443465892432951426026594365781458774693763849109509027666785206363220405913852123162188284045724055325401146925461884938685611948642057515635425204792133627567919870683947500358787190670639968480199453578243021447572894549111116093039513864392453237008486474549579942698301688756380639953959318920331754699520320896757259754662010724458831602268700503960455331372244422257606992859197047260851088246378060295993750902760756728632503642383471461929959917947120569800992303523244754394245549923410741097724487664000280507830374692673919309150674760208842697320748037032878495199056053655186649423290218772790755438281411829137058070076655696440962073864326841313423177734811710262141293788741924785541792289204723580059370320672871429088583747574848251802864803666421863193836017285312064838485322902558685748124919420898109638867868422381951646825396589975992004563024876728008833840071341295700932559160707090271828489059483498494801810935609482227523051606068980585172183232016961350553777261382299869730313620425837653318951187684862351097473271416404358221525335280023343289620224125139946039352954225338316947647896534034299273539336184026696187896674730280936960901300051908387673824190087525423718398283192993556928278073868110490448312680509456432821215283248638508491233002320052665894904574769396760134073777620767917081605894432121634506999799497550054285174842575569284114227266190805847608637862248373282486043172050073603227774179885432281910013338753441771332658102644029075344694698396871097417457578874073322615276625630440590291403740407996250696280409312762366531052779193604187210323078775399813749915725431771484848442025117389973784230359020882525168442874620767060502621841184374698780606437602271923461821408896326204115437828930752523402103088829126977227045701829280835208462096494066393176054579938008515543060386998737672072244241368401389296979517679334946490757255587734162680622378140782270523207464513234668473135749092616292994363075092895728073467955237183762065668228920955775482443378499362801652157078409049019720181251739307905212089002576953903404124462259786408934838160391708140505339538623719167842967263553118952325240007475859153362868810477111174888487332211935367207868372699823397319672404421315403470965479187935120290568337152697034447390340040985381209197709279895394955317419026411932226878015849572454846617619720403416593087463341847680210610208421385113806014932825759359236936128072578794549783801895276272641117163725275127931919580105266657108635190907377788216255908712973044495003166511369980835052443494900928763077889654978117194559850459886730665608767354224587833557292523179902380908617983191577146000832193700447974160788423576072078472444242336351775331704301920923876759017191927426093685378274210659770700309036987475259050029928158069893813629027305934119593265078275267617098584352373899363648587703162341829292883539487649729893984056694386076366910520554891465369881016782567493652227080986882245157111072001736958811210958038490918393680183518253447157762799622040122494692413553964714775688508257055580323392862018627012742311216455568298290678289146092431750295988997881881217659423919312233492636129725151661175344863152668486639058573011517021495172768087080635178409454709368196689246502040292679277612755759382820667572702440819042128778432744262848073187818578679238547436066958729176902736094317463438517470258946681154101671601599099162672145764439401924896815205466574440645779516283675845260784528705384807774570915331083996115193852267463029980514850871689506197388916447694679173473993664337667141283885922397162359943242733999477138707553889228224347973871124022435332284621029346789235231673927707013060398048639834984464298226443242147244766868169595849678650818529975695567561561243553323318852234597571368808418866471581381950159921996179614032504528193146645599132012028632715741476193121681261839832348344126392441299341820622360656257823148971565996991926704727138875990402911816147866223087827174234486268695024535144535062804776034458251481062191418202793715994003272588401915274876833294320628971862858354817630224891055567957510343921596507487753333133127322419146180408270399015057016776035544021056126548266237565318472496030023991819103909238003481232419496174598092283823861758702719975316102128119016971545683098036111118953350550381681148779163234681334959614359748769856107611938115004549638663100075187827953913496808995286399234710021374581705609225895412947083582363920038894783282213828735386738282754744322144967778794078002693980525711838076906074399790958094061072722773307563671299254558653716030351711978688938101865564930835029281624925215725434097678196649264497018176639170210416660867296328970116354777699304686762828528382471011441439363245890122701845577079334884705311762804025477644933598820989475990001534086477436556959590237554969032070831508180335568110488172958729693548482898186557329862466065306635900012143058343906022696877030199930311431172183047713452694494232378812342837533106278238196634505948142881026221529428596849376770516223302812208525227007081323888570846121411589561756093188922942614341293525237581072439912996277014193490490840836099670102248344389291241832899158941882395484814565089976009783738259077987849436448636585047588704909073794360410454791547464800020902450036055910385247144855752879967856970371798719271177433934602509097173630998485987853706347103407520658332043329819287011123911806303812211386314673035717216445980529975460682939501272952523523814734734577235921680555986327451507161308612182040181738308875627575354054728646610125141810539352308035942036686153398979534310793864904663057672067717017069484417262743428780179685994444251684333969292142360826376618754761298875402775502024937306516883672451374289679580926563580287313803195350291494718308903841978634545370389798199931392004534905817284274056067419627273287675774199699400363745244153948876527916720778997027142029639129248010899342517272537259638473071913506019416675723824327636225357155006886652189823864096650805874755972281754263419167691044115250911696566215251938483728957597471248637083280916648968836686196022664535371409908192346392614509834735523053697792344332405167633421582508760811296563965637219207545782630420684357137257610337505113056370711089993464621974809785501983519230751593023012703304701510235901856787898352891695760102028582837713428397899522877048501014781045617172859790166376048455376583997209143468807659516314628415653841828932480791211487614842195230351276659130004178326204582894501125539741824763801054470121706041073447563411093608751226021778328868324314568949540980740279530209209992988748107513910276995548285900136760512515803609078187207814826025892893124306903533372367611693035342295263519268878861181257221406672371346238199185267442435741684436332759416738358938220853922365257700140895684303670487769628857823378946016603400837337451065009481170375778441776995292326524122504930253480887569885092346690632048888446918797588192878759524044176354351542873941605818221172896349089600752396441490942533229305922368049271756349505689752812925120532418926451762856701731176667306465158838038273822477754962528187770287458615039358998837679335743122062516859093709645664547305227440623021963147643430112808559128073673573666670490178007227862400499408986481816623820466693146334601297713604215599174172725793890344406451248320877066074453014581695729000710774960335012848620384656828589744300659635501770297330028439680157209213460488406849593763703409042622955423139107090081961271423823466509028184426344104231972211529167738086432887842242062174527619534379252657877035945383601550565757800574154030134195198183335358625090810857743843043480875659087455062357690586823118281907294207538090749862546924179888225717972286919447801896518373044857614241647943850700427113215538749019805320540326932034243471631018655408020364966552424906890059440882449724592807857959790470288418127631682079950775029776540215068410978720126094111337035769221033552430179420787797985843106547385337987680506875172227602018568928385541155499891194457199617669350964143196517176323820704244970464309544341170215281914715206960263489303268217770942166798618844109004309670448142361679403982990673594308150348412258193374373830730717911152809398683670068312805932622816241723175002181880822582443663780447272751873956150955406191703734488498361844279511138870395957578407010747864068392137472111162888657141624443591133184130768649254675592627672156483284694770275577761616331032349401933535925599793042017813338726416956515459056376431184780602316405739765520939870284113921799153612549763047118524783638333441600643000328537858782795207735805519402421328306049748130791656949076677155397319696906548942763531352072593992103790931743746490031712238070388899678833582707700222944162822160746746267934141880468537026078661588840878041926639785034493222937323970759579720441695755847309169714774353686656338289120363977917150672675001852704788503542088821265409126065153678592904280413420405234491150898842860629609611399587479929710573002587329490902173230875762645563460328080774352572177488056229334987886088134512812204285081064451015771750408757675838767801374620689047636828177037685779944703207533757056131923257253001731480138593570662461484247745398063912544208491215609638954798528749271795617059789226243716356582127988479025953216576869978687485903513614909581148616763350380773755536560139209849113851238037029449934039753838477799134906214081216960829938456365031988214439863183805398754246614375318481563604123296027187487791102368164269521787860888723387991598849485994294614322397212641043466262644604886067515579287949003070482579157201801361208275382145754368192832711815922609180214160940529009639869751756987289543502238631438877691608125693237849463515215520944536603306112327913017009180235460494961793192640284332651453260985343314638924928757970604043078890479594198833873205713674122370129127907183564710842980515945029000642668317797047113690258833550475063797227126634066703345060233352845828466116143008783475351775143415527953758882037184402543553162514300674992652462063397364680233536254739448366275365299594958251168357051647448702571657171799194067149694109284797554866101060649925869781815376807614381713650939108589804452093792297461889516830824493003478167081236379187382970726381425489055770376909056330679042819657873602649371517289082265864145097325084271935147741810289184891808735997812234336696249449389277046166513502238525666789197797633240805589618290616041957072465773671397209952259885674275400190734492436056441383834354165015754747288926028088330419091370656079097662185564824804384684818972355389354675768440624434806775371696019684585528536963540530813992967662648848119611887085658432633252407265317387571179278781496077880559439099721811187719986840486973606203319581593943178845926443157933633314933731589884893445376089797470671614699425740860010943062034913490059219277632527756219629968999857199821051629692203840805518898219341543725806580210706499236699484114253726463581664311666974194553594630107625996543632001113593236285423522842388054373190275832069363117889316820434421238513931152907830676715302790187536965625972986254056332743916474106816092089749700904630583546743181212182167786526468462259928627173409390852631232870441589769709595857743353452029914802440254464670242623171547308828095115477962792149812880734111170848011836448936162658000801440133363056431859473367304035670471726221622685100648254553505383687189092209772718295088036385589587563961218377184322856857541449702236834831946979690682081409247882128019784178653235230283276701743306477380261136899239170955320569103704063339399281883660743897505181736067080624090345030488938550872176014248368576527519650562057441869589647155602440780309929089947335806771478177672750526600782571272208879915608291530332183086037501229710298366684631072096687949483009937699708384967005439443565488152041630114257025608619559269361358893606801430228280647575665054494726766524780013358108040318129367305085505098236805235936127487035987512389060201928092414300377304550979855429151558011748076852256613212028625532128642799832186596164075841531636892398689686625981977442894118752096452604978204914312479860241821692362885738998093376463606378721626527836260597759270231878748323632491417594999641611197908446969731190542587747855428571456029561722738433914693614455852221979346537039684805961159199027209367593320504455076193118761955604312612524422713123308686339219571509079203521678253689312395056814254681736858587580227171722587075853747718981965420943520532929861595323097566154089227953780428164037682263499470018988453926278055408230297217674714965060177260765422004782853838948776103408039272671950335572822207678966470991860655738848296894257074174254556158661570113306023938877223122178190962854304314730769859053386832960701530716118900768674977400360434468075114079468422441424293590316039619130024791936326033493325068227984614101548451965315920346912626371352480460878445054403604082724484030281694281560344716194546005611075146595002340163342353320381076162860897053541520066198501972784980094191297949518887120717192873307872808408333799230555502222888993397313365681409680615436431373108012081185920362023221929546947226297021199183383522148085775593218797721097209110243499457238913364786514727425195867962472134073260191318546785142337486347589797692866644714166044194361266402416575819139032701289888067080069323810367896644940856219633865684190071433026955326350497795085703572330859629778556873191877875718288616976027216302117688494938184103821958318222685661645494480749006943980004999150671620836880693843823210290627620457612324800359533265049862361590643640763940458249872622242619676549303359008027016923524222616307300859760969907416114906408564996128858632983590915833486379579991352938497855676743756006775173213945603573470316661157644554225362481140786143364544088293489493163426478487987290178224792172013799557935738540760941918541394431045764781420329305298205792443418496936549948514724581944155328378288964048104194902087053343416430030941573868705799156216407808244422107919885256964182377887032432741965377763342988540457103611898622029089406164390141629605792147428566861781662449912115154233995113378209402920984103216071928207911192127342944058284037161741059088164441750704173724063342860361686304082917173751534167918064020875173264576487371252404710609546427701362746626913489035896284135119220599515812407928723610115880362898074710770396292579176807329503583920019168122961814466937344040838896819362800309930349716742573151166043136957443956435432067623750474547532334636307395264919221483101440772956681020470712740608898790424206972140124725892737406261672006691351399872595191299720748473257929576415767559010866228337423723376529749411244664486853643581666804634556928020746599918756236796969269678376008993711880762537868708576119746875832745337644900679588777975095535758564257366529146360763856352312346572384790352391564231414262602748190626548338985970529821641294191271104846235720427494161356021602308141177199197328175132655737702616587289555472924899733560230308067249632407216591726276651603238980111256807817069183119916073323227035755556694469084963344312949049027642081434367208066035075285060061528513456076193528591742818517078050225960394354681141590687593564740068568854954939454262108320054401867509097005866489163349173667012941521350833459451382827585544906747856192186100732751473923288923043305571980088350561337121598359083841397108807563427154343668921611945913510335371481905895553541605235417399662296088006086514548143444085928313722034132359239160987437669652823347267834287778167329808236023785028366696089069803752589624982660119965327276146775931351753329945231770293745973590174468909042254585511621646058715471557747987295392583563898193968420955140392955905791894206696418667904096629175502156415760304845334807607801994289040600734966962521942770358108244880646943559999193131246385423357656449867984609222106299617833550118496384198322100429572003161590809059793523894306964243128830271265687443328574480764243098948289850904625526392257219469284635090867905999279544316062220819081644331887509593475469202403594514763925061382344506344613062660551829624343632431978252493285653194329128380554374732562525427148904546735673545419913813739753944800480921701998022137924447131563837023467283159906184421307865335340699012205584278456505135597559357740105587771564707367537185631086022985477267949526794208343033349016476956785687376185102277416459898092885770766927167814651441999925654087106390153182547850396390417140280571057828969366843554784605966072243841313928680567199737152658823078688369321680117931796024018358892883375596914434948561852379947832549268732413382331262211658503560176559710066740329634696094962658090586692571989662051555156365056262583999330764530900184065116830281503643459185082608291771411553995343826471947512339079929054460521638537355502410646806583107560041856626246329658613099137831040081211525381384027797657955557033509968437313538295445914302571069456596716175484712946493218551813248920346721429353094473731425967294553875892057504064147254354489020463156149821772167109771121153994841928054189498670880639903441594617507759152753588262272898566030653474447398936396739662617630580879829140844079870404073680763068601980794169382769498697780870551813607867687136648392673286081458954273516628910647202208616532463118559881802569144405812251750008503284783805883671699376399221747901920294460193925030442529986301260099614200573840119516236621774565276607038636337595804207499140037053255177182140183355124938099109697849750280635756370767233942694441958133108932666459549114161824454402950694196270286789231025221019171620458006262506001058844656796662830776748237284082666702320263392519480277058850378372314083534514810723687270261497663396882506132830650040605374766025865131061252002591835540670445609876274999009345233100485056031939017018520659405908430069837036173375304803713795174206316447723707156856401833446027695403167054339552324009421840844546677134742761097128115825877777356477257751228068610441952607673994271509016017220968773896275522576738041807110489807773095655031156203668180885995950221239724897379532758339030562660329386590660682868716302207667636584065644259644144220818747833965783453587657654996605609512005230169683576464645379439265600751566277379265838103218953241756037959381489229053068397018381524924730949529066096322933574756781333239931211487819263895217992390695878677049022540387686005101961772407082705772877129877338762494303159389254592195760269985642180850035211003091835192905442919034975853703130737588049756263216344913570154496239629758625078917485202406448361681844406600188760511087317704160822134170082833657688154678892429837838876510366641682053058622514067006124634124466384368182468265550743531788575132638624553122408760137777021367842738353135545238027112039626293501452619015364656023792540929678980813545392955453323682110872277322828525984408461047458521794457138447159458285780496993915321232129920282671109718289813266438252604305083741878340272888777358405466994551575304819100128382059303593558043765263900657882180334002742075820910138710048120858220010290282526816687843027209346244230486321461367954006043802951058449560586172684771384042989257524142497904122138920007610401673631478263358438086892378471915855476917125464203674388147138517075768720013070259556215909126026177689878427605226676489008387735301300903052117120929682278088398265759806735200945093130897693127954247770870757279284673860724412196108259596551871882474114094510690126378729298816746911593390967108339086822766571681704221810230840057037929597487976231133942392386636792347028761676226119881528651183475019889320347763131252027537619673807192351663295922780520861552573923721389449461478692527741000690758958666587442610029928341219700453764625993300559280230773019233720939153696245540399106325445370913958169353271150887846535936023032573547950031125950524585397973036892661375820574508370072761697549423455658030552659970309362728154556374524131989769241227241504338436654454316129215431830784116550171600478891900284429530930583645318567402291098489496821777727007939750433561158529648380056603659192594084455265916161824995859316118045659232556410233408256744803572472531022220040677950070105930440437762870229195981978724095097136872773559873652282640840934690456978610835432198170958288073184647491297027402342180413386912100320338371285615139806217710295039098013716835529302267117004180696210058143940542830218824179850959330352488612239649609281078146004302242832433553954848357974595472748674783570093980278889160083651543544161523920419671646684818778234779068934199126006278128805554325993738421185435451291682656326114434728679650227846343511740860754922970694924671909835797614247037354207305349863821278663373656423630738283945182946334882858273339112406537624912342230454892871892113829987877808612146210885469054063705965637485315855343309854601899836543365805637131862836555443324957354683479920808850157820946452190622982362403009840836175724530009615217077445818362163842113540681693503357617648565697729442344804013827450507534884626598876570731453230938725673164230192151456474217844035052849681003007182390812994035015518267481368081884160378609106035435405381303612033829803939457095897071400559905688208249235247468651691486215209629536485569732416910055827566218396694410890960120372775745612660514626498315417389972754148708482457470191169987168286419418437262047293245811370196313792763023705271371821205361424002843903952880564226075565754205870410074009423967537314229807410842143725108863272112714598876259285292117499503148204589516167227182744027426672524871516897099208500765644717943634976285044391646540613564617662411522913937357022685116107798380169746079641369545888297055537873468241520490497402866434066732878172138044331172770976286876674474163174010943791485933555351243130639723658001669737388172729053213244110892478389408504824985798456131572699275114426135748612823862092367561314146200186774157624288147251594027847668587032182736123873569367596809128446603327395308834738511280492506646131021509798693904594693140979195184137480451951196804012744832863043812464842573212285813175280609690432553003790626379059852782213654310989355248800419299508911565510943753801748145873404464228162030033519260392916188328391113772215760209554324738775574684108154517501524613569392201888974621924933915050353907323201009410788424595139878785888113147837963931563030727522706822092036508995260060848097050009276795309109759145604011150394664591985491212701355231120109986114072703664018341738800518684562006563631151840891183196688992606456972152453420084995521346787496082671651216411658914623973638727783507518347504021165949252770910842495741275766423634607896377488302536652249274138995879695052955772186397480285992703318935608799431177666340155159758520669705698934658412398922397745108006572642298762331864330093606409310776316726398756273146525622503977578722606295058931140457665900601834467362117107916913754918122441722888600260625207589436450714574229614250516324407382679165310101594638849937742803789105425381700943862011733502353535949347214913754363105535769328204387782699853740179145801905964611743266269194919924346575499075007342763373645811935467551677442283697963982709493576177679510337096413674950578736234280483730874543565204184061236775825094914116938558698476111174009478630793631302710051718065376792832481761768805733682548909531487583532171183357890865573527450947180279131780404119713739772464708239984502186348376983499997964467928095356323647310696430718883150438481083387604073937186295133337236544535317109825500547895481583854679070902653934373990537498105803727132142511550760758232119273889190692333375482784774224620468202372620890604549125102473142414843990651388416817125943073008764178726834404127576875596681404835297592677443521984809134390767528212909938475546316116341365267603854577116838806847169143223454481824365435467665532914523271103535321897161497343608299647220471883692438621400759482324774508576316651531366890321331035181823318934873228332586332363185011391960834324473192005205630612049765638930840569999064766571497220750113890393580453139603598253806075613710069620056437171904714435265900925523614721986701824664296660519173905338944955877948703675391646287882807052576410705778905731652814135857183516838985660563188348207735865502085438425430156440065961341382325234493781175362910208353779221181665138658347872827412895723825860668508338813215550934851351116961765784789172869737060426215058151401401813641694131282294412294456944448749002387813599340823594048809608218137278937887558060065365351777734979281514112586675316945025639671819172541786200075898836426583450992176359490628115484242229130940005442919160920581149939803367662718360266560065893959022830805892547203932459113609659354016176876387756000830365861827434520129309555953694210437738234588755176935333843892202196259710402608305812747947294705237535946368258871006831808822149903925696787158913841276199768381263551461989444300603421293327170131354743146778293575320471850586174894966400291867615614135076374508199073988681110555390124986995313214608857995111952528145465251959047029961093836075572853772972662663747993894647912479379249087434279396495028171746843461224343173073931990539027624185069967158779356556530764538608924509247084499664409028305647221413182557343634915508396438721655917013889556008802325553576432111528313988416319313490431818604574972190396507249141474368511705259567125227371377321053529762811973438241510172810568893690302041643782512077760314489620706439743085535884518828610575453529958383832890797010806328185655807913936213457473063493864077185694110230809546436940016256080229349043762864989055642350751497350476298365218324830197272593839833520342293173346486644474290252575630243315479747789649296523820804080895935308754711370343868073472243254643115722926894353956315070266640926238686151088528279558297014537428482383104490301027938271583133001881125686239920820335141772587700245415365714979863216618621502087919207002316849168052789455199190063734526753595354101646706235472280556428487075096394645958846744807610132988467149256976607353550458394238123564290698579848005182826088572470041651332556055468652350971924158410728895589881620265399486919020453647973141808652433829016533856560355426580580817371398431526608813552796950181031264982622609886756654096530308471779161805839166316928105594210029461616102777650609026293895429576325167699564408479288764601866663177484392755605013559557756652415435727425758712519525459076457809795057248295725219476172976875787225418809808131520162879176285091000147611818216525224940812470469907782728432060459784189294088897468933876706160768476799015914127525210468696943960964344659959426534211890446297546837325144688195430121942970967200350971390436322658821280644718204306725871901044645271443651896014129830515953456580258854538567818168099673646849830923160424288967819470369805554882245191804415912132193858084509783035253443255413420924830678256316107086073333480014839923987395255436828817128715823193029862111520662887774105731613278805785584917921271026173724771161816991070083680787101717203216342272023796928327470792966588392320013440533888853473060686395280586514824574307012115399153643842973755739348254923959449631339565324263250788151479763885154698270094735260425054632526926694568889749234643174186371184817626361623088175762935415821244389362886252419673488026521748831642591918501729562840776315042251556135917571033872724032996131747147289743447325121123832475953743209079811430903994074325922255006196290394313791471392237091468029030951244259839290935988560727732488058967588995527196012917172267441745780010562708271420807267481464762879789166006564027009285285707393723108924046344958406013685326012022014217662677756094612248787283794135441386637457433591965674020046684160219640197016101443464206206367518100146203833703783264032908117960234791883464450260872391424326030895387889719703904539045296733808800990618408277939261550483411089509098345225987749863927651343583517754381715354045331749109863728862283919855689359959264414853010124381240427176472512562941845608130873691062053385525550928938040666920410840899842913563374108876823534988205127218113057207501215752677907287535049239765699994627622480961803136898049195883199252609859983440170781098236880276869648864098349657574470784288196232801925885955278666770922568495394591504282271827436394106924921003779481902772676742132639931211161377995762756715189686342289083037886398400665306551473324293089232267123278838109974140267940067403505791267843986656744385560305798708722142038376472479885759104544029234089604730826791988483915836366624976914740708005354362737294243643024694520352509778437123314363643129847670514262046732625661182600693608742523597668969309665769426532336126784568685397575781403205536565348871966391822364190570983958224120452142557762838953501412507401634516107018080397880529916069799937239854066537343057929578066414259879476603090963612183365473693057926105687979406341030942468610028121126265819075833784858055475140538844953879721075971074232471802235252349004556402219217250993326573937983737542281531848936450506648039452734424906829718472787652869114020126280614091347157457401754031413825854190847247871636931027124080579120849639967135647317698594587693761183622314265446592548012181122514393432853855194132630340922137662672952245026544046559959090214852616477772783462858584572795847727372720216789639258292478978248708219752790096798124296468947601570426495682282495292528387493108689690736258829263345112700344107092367903006470059164888264882552520133693070499418627972647366306995724990860678895467003801177998282882168381291645252001482335089897103454450418499762631399502768740719012416562768435798071925927617334002933463541216502104540922847746201442934021903345746956701003351466693915648015965519165593671325054590475637656241360414814336808720921280439621709082156537312754143991439803736164909442471549771615798537677573130498938975543315908339920883242162231245040948341709462996622613075183257031086121605966309596796935988854493688467246150064697774414007562475695036995555262019246642595615352485930318082220822579283434839672649596524602902318571747740683085210785749071400743508318507954910414436183724086166513951279037898367772891161943399561301510731338905716197730605318415743664580655703852936765698657603814146930366652483284185391869261670473569615426637892751697323758692413633564377353118536534707755034875285549245130996323506282739917382832216054276366938808129699644467943900807567762907317549618684929963996226224519028183095443789924151812695818707823440839466993808744919966748926964377939406388652157236360150771588502952478061467824829190811072832963118099416257888528190236647322888099927139155745012369173384121002118375359772725665815673004757485862624912863778394514307590032292376017811359685105359501550601692801724584681270121941397515607625019941309341855008885780919854761748099647646814347992130928086878114119327361050615459556922311178530133749407173606168651430789427616867705659365279705844015765232338497697662952319592576252739819573818098762720893246489751292473394321388772916301886121621091946935776364834292448190482328850512861430769845073662944585236375274750036318776139334920967301837906563673438475738237807751522766076156510210038789464807084624121404044023451133581661535755144262606074590169991547413137218289613384059460719387725567248578686248604351912674182040215272524509787281851567723553965192724492268288503661629420099307800316247840630515421776210594265448502001293010952911892057695234074651754139408390626886492612706351142451931034561146454587078696323765116040853853310405395140336355505532712840426825003167807077582396315479160393814609601248300483853801454802603904860231318095970507327846092441649305725314385234551043761119682074405441453315886969823263154925497077845476475709689023362458906561026899154695219923533283906109570411366242826165390475840102104892003044216722160584071894237064412688317185301261169739774332410381000220058513898695909837517170135025843661353753216963240759710064521217879256602191422491510188450515191959270507333434561192665962131470836176940883906247043868177375196612389012046924172916894296077733928327616965103940155008277754581943744186524502851228619753992165665192562770636707118387042197026187020216060582217096282967909886888526888919098555266948450722448380093436283210080464939638977694665237397893550489645105530614756339405870606660146930217698883404941480061123933793349316701267999820879497510390300479143905645471054099227808876955429156373046879536602909962145015505483872043605899793953101839554469806376333855782321517101636357028869030540077464466221895486490403172389837091439232490829199144178257517259956287912042981220596982582062687881073900907401723433319905373449839814603787742849660289547697686716008172701850461373728281788613634179971746384639833957183766942472615312352334625931615681545097067428390793016419318064414119085403800315540808565338537607344287349989156700822875320423989026626633564265700970365725164225576498514338717789035909292418804219436080868588843516120761703425723885778310706508714860923042812489885541525908813607435207168922563169688464513800956364301371867721172382933387473840878002153754906667550428411557303471061658384721260335884461524375655299795800468834544551473248520286333207264569189419453080389318563135688103914688013727252636255803185009588690337631115654923202507817650787260205701909581602334236749289668040089668903967666290447676822114159132907132963340583064353140484713881520165207512999193598220998389000338928345567822739116893496367212480014438808031049965810848464873028802431758263039115691750016472992007866537088550753524088669350463920449726131985421877369562265482282242273016652660257912885011538805288037282976824437246077352021375170937189060355474936160475650869202065673985266026531550664836621554392091571612183443510468275599565285556963472790516860986756169988383717754319419299046856683458587678418333121879800420121551426508899690058864871169122237873654431560425114647955404732264092481566054649167147242647558455248159953146590312526396994755746251124904132900559192049758910711118766181656458551620528490698426099582710343603658557189869859017123594854607060660073112671293350946827888476903232035984654600922168499742709070736106787118567128970643590658366956632232361469589021234891858361504950154980639319865613894422935726094705372945971224360759481988953542648867832950556123922229107962345929725296680943987042454983794146435746806691953335233260311791849401196336747720164835284814483286662562596746925287240063237155726625275385668266546115071039385144409250324781477049736919746705811027228170469349285473471645062844581469918454243030070762302309097334309455666838273081527379414236289955500366657606240638286187201576581584015007968565753255676341346519948280599738836551221328745449238477490478403147269343998363407427038155473915375000264999612298518841447512267828012140291291542219021413846067085853099343705411458654940172976566122525188155719389897006905583890748775215452979126775069829070162025559504606513235633274534289391462543720010496866430629391762168710711198676455455046520633500125076698693269372699106401263423082927393308499825856900824293284402748004172912825700539100527247729527515424534164805943071762581210081564025931144749082197958484229481271145372635113905221606004303467815534297513760549168471838386450436426052267019620862037648097024499779668438119687101235155477917071831865097728364954431854906594713919609265413632355444242654093267671232169431061874755313186561602914325114256674979664493503851498864335201735180618647225004543628587930165668209544969531363101218280617676487932852179017638565124616823068855293189267409336359561472986130270361927026859258264527536503769015475203716996291582823813757486219217312442579064784172335182757573359191197114228270228548306803000040996115905632648270446947379246879353883925284403608077075949019774165881977835137733017063127321985860094867446280714139179782614453003875433750532392869160670178437460146757778718323357649219285052494852963888401506101790614693641022828980212690065163604212559556980932529220696798163948511629571107337777619184592568988450839017721594330540408503292264373581256043175617732025907214461136747101556277142879861354679251932591025228568183943235110640052613127946790718096550356848061048816614602269988806470298223677949324282396142529143990789965501368906733658459001318769856331635825349803067314778868333210656161117072784250524895806936304723380401215949244922158452096506480999823402084606158482319425601300414581456410341042900769075886036348531692418084025803725373294682128555471752572433285374533653563904454741816243452080280195250874212785391846643614865321417874100666185207782466144780641572263179677063473832479093780318074958630453573744390494458254475684206908923410668214500543843253989385395690261825930338629796754786818683615861790996716883821754606388726716291767572906530278169775521662234883781607800367678600630551205611910318958031005439152744624165182861617371353002942521630145210711553244252605040840946490537675535619330134783195348706718352663713889501079719630286876332643023956788051570744725824056494603897826546221826688383660690279439814144246391818635913400023865833754229127058459630196998560380025005718151844113838066551434386512468374599768063374530781098646524661132533964111904708291029693006145722445267549764206528950974052640807247435216223818266673009759483132480281710469941724267437771686120241267084202962030672052975777981130817248650337869159186032708575390489326509153218359353779117727735074013225955842020548090209345630351755565297069182186229849262921754562473001024780822895912594131350244336675289771062184372312676835288790471312200351882737992196807228083099422029802170715850348979226013721594230309006378026615980138706209775150644115245497742164007726798519104412289856012118860342894793020830218360550596932747697625234816443258880992508247804159402648883131183667534377547257780392398666911256265571318451080773821043920203350269565819504008206993825082113094222512052450630086417238301851412673736741933794250997731206197528254470465791076839302430280823074166037479181386129853576863685426612146407748275567660083973662270157328212439821676279103814289808117562541836576618488749107815297038113654955145206945595862796533281934485728991690125167010251033759710980470939917248910706370879859666523018750995073227714362451155877772847932189074338031782415336008815700061673364427977892239641081626766427301684453536639409013102690338372063213933233331854686495788711720258709437146397858564854478457182168728307985383765350842864070502997478160665108929675724338623112302837108593781071735607684938703818815267263708540229392579876798366709604816317151077530859153604715994229813978943622865670629651313449356838165163427696117992644518047551649769988253147273079802147852787659038402675632613802049449851315949355072142558268911562247057022712983094264223877705392994718669286061788874222456112290067390266476702273220246968054575079575115348244045825720454198600162830647781459000606355240063460651304942463538289657372406067836464158078529134424017397233685200578369399261531316170413249420551232885275006465845786968891675610061561974678830314489890484062496002939234854213281712222139575828537529077902865070345917194013115175057853102162768311950485849992168460436065255662896811524823828667516485437324585307285920216041307543213797825601310870033405017391858327626385304487248159491250326719888903585718143399635762870301728608278831688383686632195008163482565575861552883245935552674335121360525243388530662324229391373800405814625764999598991112753231955118904683088883434657392515275895786109462447560401958832955359893819901791737208089179377263851615178329770352193611290759659615576588868053491167615228806513312598437728339659554811541032872407719021056432137999902276504935446081102847418326944212649516936890798784737056935507322085621319190908462584948748832024727783320258048282548438581674212926128808877359945179351852078009389716494222134781150649398430925312628218744197680679694165130213635262107851212731466981816790387426230832721323522753639681733928702488746053512728978917793914750143858393501141511212026979412641292899946068171120721748185833434819281954981912359893249755240287302546096933698317610893354545196107582386763834111766996866979101016909097770496405434172268334970817744352427720358637968305231994439939493161291467918620987112906561916313147610865296735518282553812483117438180396946691483023399497875371010628888047795496523583894238537138941639443512831026782992356413584230979302799240928948505944522487048597878495629518576412279530484277507361375670581977310863087241872712504537233428597930431083619793608190098714607076096124694996492464831514469252511638111866887490383551873779731849741677689205807780077491655124855100941168729740574975574383050327476692110138693419929633677132728846128007285808108352276701996754467296660073834880663795736965270365183704479239602044211481596793310216189282859292522549500374450202597485606623764808845847518281281308147279295156682591867409963012011743507028362803582147713746454920757788147045607412122811015499957207768910691280886088846785760112327730918358733278891641209202658561114485718327656807732060119905854322468825022868746306353387347812545636749045819148326213759512245551625429025584255020926139022260862427623766679474065530781187087033248054981135044845247591321504823215964495277811023786370739243700544071139687136058773846916528825920168084919974246504437277174228197732757367296057493100220005898417001349679570556284848870423575883562112645208758330093573698996667349168905671588396694855772000575934387426274131061763798142001498357013722053125720607877140308897533508707903057348637570960799741545154213412820142826289359816393959987102305369027158491770394790693792056574172990220838927095765059071207831986284350642346642426997392915785987128911610048606284873718220459242149505168656189894619085774994112404467160872933421165925529993161881821875712040647109691537138096638312610583252470331288766193968385893781790927520938901546911835175409071937549554655404299713407073749879686721032828266503448809225404812778204338309781706023797870128596322737164441657585408521022523753280868358535668990786932343399474598457410876993764321893903956559726558114767560102953071165181596890333156213292663833107711557319008640324608490943039651066834430958148673498841271637591788724995232169470928818885837044817100488254419308654617937089316606857670033597437748034030355409409081718244314842893672756907555439967917107930875952537394720178218417548793827978060867385266761063027305739770811532121908611094359947697488827675214407220075484636601794117727943079590525518608264062776822946734739244267516395609639907560801933207932385060944101871876746807149433201415675722016334728071063820115009217100817191046147561701067794709738362829020062431878249453155771353580268081793523030992062012491985970789211940752232885410999099886217722122144074381362408211337330433961789205921050764282252875565347288053880156821999825291134997534125949778127837072886027450530843875993279591617639030043980091362489220991201030843930204618822679095791953060715286186836049950204332084420161421810999851820310026938706610342140566102316559780638137369687665601896964164408266029462944428949795655209991220196490100881197028403466696435472552510064812490882715042372871599350832550578397884093627082276590451182158569987625773196211321995180006254360011230401038953993311514543704079860215498021584081692283567763080598246550556016920875824146771682204316507197962187447182581738220173530049583015013760545593376101772867942105059261083195783224111687558597277133446950711476027046822873251407200788585801021523836929485760605769358899405381269562836268004618137405410136498698298176727427333732421430811473647688612789143051017880496647414109023165568097739276506079685338892159267425659847351870356117908296717703545481805137610089755837679614071325943690973974418649942113427161075345268525871493428003350986752404452974137788164709188946617050714997860071584814138205371244407676672164791170696263058994891848959207368551902716917990365356892678510461662588528764528109862030171293137473609525592419049311237250948545263998487656276419751476358694119888738318304736581439145139356787900627228091367486631789957611752728471110311541072570216951486168239736191502507251034425606656686967834252333447973872003382965565439343661831052024040553336649136337748281361734485821050542391390848770956114226357875397074068646229785836603849230153100715522776044554005466133595117925779420528431944402156657178147528853919881470572323085137328074020785628996252741992673478221833764717324754711576190027571207884647917945751451254570785246233638935248965852866903062822315871480859894351817331413971439729006575459721717071873403390779972547083229513780101534151373431890278687979562264048430775283717670828999413486489758271282593195314355869001469229991423715209299235059372337196838186162483727205900796798242263041535211349010125872134216372117503406961768127929558578598711945187898749633155458989646650371537025967401865499948848321595841268327240134432958233254852033880460216438197595693590236632792101199900431297169501829109535612156497576258609643705799717979767386584295488132050067004626454906722453376551204378113364443286471210787254398534726524536226600412644398799767271571513103855620381566485559331266249833801100805761680606981099840655156459467447708644795930985929100283881859723757735819847817605471127713076959192792199795698334461264059171906535172530093707074734332436209925566836643970673965634281237413003313251357100916442537883958101156779731680019418900183652963294393394204069272096525058898148467043498715999023053633091704666945515530616403699700193102800115844806882309679275067285005339673889448105557640585270120761078064448453021399294900190552866126857878000278957133725529762069151290465518603440933334916740429368137474222360116474489319265008737038957409024735234144056661113480967982996052873032159085064847214125359156229977832834712296447067374983628540508568207316261086247978402083930355826099469434308219756799606458067245422337111782515479270733461135985311846403535415896238032013743771533353174719421334415363789498146890042456595447803946699453041132781450351857518572693438572563878867113352185977887053256288405704372374370404692391855629055647278837022200548399779210308382666148687219617989020037733123450134709139437984036503782783564183479991881170545698123468116528451735155694482211699469879636155565404564643057542492386062115539538814451685721006468723877704081733126692141394938946364882396557917313140321337438963794311062836760832926671323937484353631337933455135891659516893102899986768120051833578961948941692635299930197733338552651884102037747353101690387108074784711340162350697555407729662774362317077226512428471264488199624558181148666098188565636027721464661623947384244440197583152917566523119024296341070612935633843490354072785822247828774314648585975200009065168000523358653965687922578860730991782090935925179054165668259818812500170453312938739055529887733244267209021349379267336248908869513378421832342960988062554986215279584382712608350626933884891273507114453685902098563807840623881497226068995337326717878290619369304338670554328051388892603137975620550661356402877495150801663181741696167633491543176463324312895304462191489419774155594985598816354026119426319921816592609203945373131961118031320799142769143373634156957243871919151335278318732783984814184147669117574574440845002879469974526699093046379005397750884910158026701945353603058383442026180231685084092015367904350940960106905358539893896482437816536771508992454174411918917354606344817483939909418116464608135350478838932206131737566897208018713270730656832346181937954239765652717852135842195468710140272286316808529862940914235740118887118162675387698507673997332006664296648773932281819481126357801504462855029844157433100220445705965862918557293203932078917608271716075754277581892328968063291820150530283030490988535844975773190278177346318848524541578350909938304522686085815920871499878646780341633690435061332727842137449340126320071696970729643185083062581495329009952012911327868797253801291293919813670453952232785641227338685152076713671349990925499666778160831200285488253273341876026443180417169748163231204278528302100510424326081366883888668066565998721437054278180559077140605610816212154076670317199267434032429125247716533897468074352507812680100156552865854782393176618478421225938491294750399394154479113385519682912452367422155105182776519223359277502983106083067402503562719035127152664583390060330035047955401899387189387651649585831576794295375171662992577007063859814192501687920112578103448884680609104280905432316844652302863667846613148043441482154674751814449517614490182870015357796916136125626949477337830682837707036243597574525403437093864647393271614748056563877058612113307899831277669375959315845464284106534450685234288432509706458341326556263029200685018843303687876359066338378197244601815774999936739246768180242609691357507677391476217480627981052925598928192509969090595956451299542866895778476952165314719887116120599678340146830077808945509297343019909249978546948658764289845375574749045762011445323180631720281933877418100378140083826594492811137652851593651371542577787718687253887431746340957742897350145709430432569303845913047692247523925343287109622721964989859843099835547086783487169711878172136751434627790398088046128337769730857776432971324854299061167136633796942505977518078979365870679588063035939667085048294410133423786628768256895057132247377865432901200799269296529653415471719697153193946881813448360514344140993766397203894203327497301001692870251195844096444728979112157753268010570947091928375431462664640685655398057679843827202434889419986705013278096990815699647137244524311313037042376870922365626924767723323560149647727655079356086863657484451897628310231736253850712683262045233068433293379448153480092467569867761219759838023962245278890482158690650358719991746238265165259821071134564910309663246241882338535204985285048633024049151576910777429168802247171486507767115685056605456551158759347227989670627992862230866044323942605539247375596046033681475133710862412536120271586601313601223642945662833545963606262187471217432136101902392715113427588592714951390003987896610651346107074228683775367979229322634155462214107426738388316664518700272235365307034506817991273047286630590714066417447749389091051915100001210744269369633065178414027224241877969173531301757171317862799591299939087645091722193299522467521389103949170368587745656321453755259999740988109478433392694127863695756928830934932892584418380497864329104300716193511567780266223869439067407160766667583940563123107835640086697685407613959876694531053709103595582527353074080251154854294501745834086450615746590748955274290299320026766314109964165604619854160079671567187907936445564673142176270605880912210860119380053237033547285396741176559233723496321600611828698685706898428059914385370886873419993484505068464810617072875357980412824350509236660414009113417975566646176449278825581435805280975732341530247496170715383176059167333968797540882581056109516593561095552955835327290497151118050840006190723162575346617785595478017413347361771443513280906751541293481049467684736177505558671157465744489949806097240377827114471118652907597208277477799087397727272216641296203716701132096038793410171601339528578330236036502617977108932513457193871947007727116626438870325483123368469288382369624891225505149240579856757166628392666105129459476695988966937315411717884083989281279788654617844476016786956576029046551669081614259910729690987438252549877602529557087612119734457990381674735197486514398906825367161145605250506730089975125117678051250967197177503785043398085013026601292390667509481490043853818827710490448039392848691586291164586211154439000166929724996976055611300419831787118991726195044895238582684918747887629275194453239893001586576917499913137197522819613941275468801320991688732313459618126456587866069052720015466257155503168794878745376837230555029022934583702190679172572256664672119216975118312464070323505605896286856983030050834828400656250261200170563290407748998602045116329489769708658182062364518904677249769560414453492206222147372512452651654187625721752759523162873533506481377708697387588952483223646550289810173632248250951104562392550727547982938036609414653716749991120504879102422629658356780843233382789202571695737825129898737048616463935057130318448076860613502072495091436626131554331240287310391470135712949532788853897797248261054593321848377231937688046224135990534333470530133855300158194417031995556678517331820211976616403021162085985688366496504596413659968545172886943424773046231534339848771564605819305782421616138261739325589185557457084524830803835065221857188023009742990804754603270237103657036800600083174289145092323888475505298528116002950918905445366712788592018850365067481456261153204451861362880374692993309485265201406695669151883534708015478656741566845921644133076531648456830769311914578062122328967500630612802856419234945755065824430522890785979863799066724410657544916057197506928015853980483299725080585700863616759575246073712470849879543368276935684970453352713127926135355962846151018138957393078002785063524454415769478473616416270338917017905566748699813725712031272652981316948499605654279477309444819796341074619355645177253232014526519363499803481420970724673515923624006661482557113705987717422984486656966358640655917655788588507101688216543729316956751515920629380951946878747748693950020092503088318305750879485017331769225469574966630447930851470526206889858806838401641652003548573431669977693634810868314802368067998037307657060857709085421200506772881565459423496469900003991332584861388915025772571786508094457111671597970547273682240720304239360192841821972341048889865101458076806157745492267662785757413476991015661880939693018323527592613045234873405896025514209251461386009585194482537989112654799921786269493572384495464479817459568254287159732971871202482124165947536556240571412176885351505038674049324969362996836108428992760331103352788291856930733892214248983139330898522218498376894648789985833728052781753153753965289075765192661425971012902392867923892899435670352602215080141492923033892031197539868554450889806479087215585257355759727523162904034358975153510978623673911719639389679208028073714999176596785076257360557161914796963314450573375735573556770632510119427548076957827278510268952939785892794758704266098332800320871726395515472864961056075523643222135494879236507163395211648798634953825077476836706208004974207593982804933952778331622908441466002948064534487892802850717894519725669247507139230533431218335891634184633898954178072980483437327195450918688416203844464462241017943237331918990560765024891263498642324744129076661673575017523229418708079365264138510685185947842261087028319321109690999275243142290787821627575838896842801565725408584118970847983046658970449696193382814037218830892250401807423212462684627062314438665553102576538579997072161020756380384975394041720512877635591566354104378269757006469434657561219547599445735174947152122548133593976029985441785009604084925633485913948298689213706921540153451096694754315855943186601826652079380029601404625791387905983125920397234220851609499685545554358472916061787250633367607262405344991208927063486472691610920152553070978522694308736332768888414086602944283774759895195281525847861080394796585978758721366587131432584670166137377827671733241748802160570632454624292475164925483597004999571241836961893126238785484467055063422285247079643466183029827641140759771044132456002108353223040809434643789521936449431008727971208182385915697343089339169851977359173959330390586821722465939435162569349820378905195703179147486088471932410859823986427811133852987815791325126143967254124226079611521022971358800436458959975447833911218458301269801568253078843418413352326406473313193689724571433178493252062874307798916911067475991885626869461947325671756964200442084236515494284101600492991265467991410509299009936920849488131511476708347273247406489299800198937490861518183784461012252412080992440331441439636342858970511665102846084656694510657417526299422498448749282416766439280870777097901075751422880478243158717010288653259869948505848583961908183821301625905091191097383698873029721974810436747228384913992016016042502948781486541022697902771730140468190561962505819484725056494248926829840463581420332791610942182867887261855622763930855470170627723509519683089371080262539595070569651569081592667932741237212617031306067599094896354848663627160016716847271970078324081538556356476955582259670716369942924275332342436735437240106738757168716560303852469402564643659225600512334938794412601261108330400724113588729284075872671979806393237673736575007968231555545827183904190333172288454415615114981888770805739781954349649063937692638960508114862305897860213762808124682678084254897360832347788098214399242212640251452386347250932622401775860172127699395982556283126909705049286351137182141250350329150549530497887296894607395881576587779331427421801973421953105280629950573483029620547641521550227088711524767965356939280218118769788814818418060256462449593087043845151223521454131055410303170750859945185237942432759937595540922626369908023566077282313882190143343857039334132429491759937980688368736318870228804719081914959573708601768430158855021599889447850527781114884304784818943248264697497070238380032874377326199088138262511851333550106667684051492445846796569706157224096205962552676181100524145789519297409624546775497723286436738882702994854663766017542568736209960320577418466999536618157330150455926233565812084548595047660671476412465211376851024206486448608175381870887613153079332051494757180541003745252625699676587896478345907478058689970012705170458573180543904190170396406490901895389858748455093364910168990790700328846733184255408557578137310207313861912606581951720136663237721561404452446461739226674597014542235037479710915609152709829961640230343742991668781568990972498000368334640098576354358327076324165548764880552993372762945451796938049531285998936453200360460263272925919483726634460193682827848474295005840965687757719830830136403903941488809409859434042776604889333684035100237340759483207157394545571148588822950190624720483907197808506475110958641714387361765921644718981991455225021956159196194497375758821750949205239583174748418971405826685319532374396381196713615507240546110335307430254250544991940932717000676937939635721879460119996089067297267204186590211353123151397306621357677255797964236691743925939117833688320179285068065610016535182535052804721035539248070440130208203771083714875269216360680983113046343653448133468770965687139172248318969818783203956619131511310340425602640841345462999465700086224017808737345158548067477474847413339984911403877899651077416596550212739540136157960117331692906143907278595694889824269491342479696833243287707503802211423879117974486591105468131771111419882426484535244761548448512932277529325471938674866238126925614012053259549073128278753730308294420651375126444381456771175185699766507323246272059278775160656770752802798097354918860202010304015425231550620569159563111253910409425418171330819673893797045783752511942703331445661631735809321071850760247566516355505971422464557359527633260714868488615000726684525652376989276907031436470847345443269144579610125599177542133654681831626883657415368333924624153016790386712598524903625663842856523469379619039857705547959804579826027012738732819776527342560280851482319488072072024269719394829958950573152239788209591843098504659279776671043041967359282136291541831598348302306378118662517529924313743833530892282674948815772376584294208085298047070310412135145261256134212555051582098379209277754041291182928107687523549582676984931164706342241551480699359471908722528406886742619522256083670582303574439321757849746240258460256487889023182112349501515164303760394044092497606031629151094506694914001904028112727970816361587812714543203781092690824180679729721854469595933770076004113645249028971385226212047177207404775759832858764959406846587941070897868601280991537090968992043163777468937625448185044453188383133096915721945371628921679719560646818158875856200525239988918492825055371657070437160294666862500631253347260015017537226850752546755962164355510351269511183994386484473941726623003065781279864022662728641114179113462951420654625788566004583477472341025855247190243252809150095841633156380610800142862213766497878488971080564971753978815546436045737662705166483959584239502994563271831052786054735780253753274175504933428440319670512253275967353330884118785557489549921401871531263647253970414073363745380659531684845695744610827349824370464377326000127095118933699164635592634191347808780955035237597921754342992063506481539673140727768467856971879053354661154679355364805738045604373395537337101012994735957563097031833779754217186167978519908634497884122391686079658575146721073704588113625902705397544169905573589342944304427466594659282728344991099671462804010817629549409621602723402885194998733894363973196451006882246313605859805516460745680247905617253208688772129347208223610261599216108712499646391115413213106373108211654033311528473467853921006262487665651589496210224709270136259970339458957250654640371004046700428984174684795315409543401038343657901741574540895081132363766650875681729102169373794510028854381872973433320641758709666817928927642981039546988912579848284064699607540341420330204265114726540053129049969783164133997463610361709938929686582853056707867401723411108295317421883569658624182395087459305447555703074879205953498449163120967194746367240052884736319388083983613753194427168896680288412793224838568373054644226952302266765914434087962566347790351433846698509004949916674182814187101681800444230823155185966946494095919017527439604469752898112109123261777469405075569191095817228337599760997761417246892054291748143403802683076972124724856887139091965797190281573866902598230571380620990346512623135784030829439665342365510416129176931971215986256969496762155606380489918744275966844999818540260245106850208013008886833343197457878423006127262379441313712293546121026229832242722363094170887094703969682242176614029567576011373791050111051000745056986531662255258753052164524183589254956437483944736373083692827319439103496068669653745298571378073433621308564239399861960500163798060583770168656372472357829984439715673348191043118918222512300733815998408457713389519936043729366874200119954669734698300742329728922776912203146138317279857104113946672512015770756042496848431522379196446472648505132037617610374980727174309756026183952956952383635857639532961760353820679870802804709904116909121523709336878489048638278662113567728265986115932735101344135740630860658646275734636615786807529214610115316375969576390063823256207988488674047447268193553807611857689977821898937968420936135079673570305478754230660987175524238293230361409314997223286306013307062915873146850575834735379441057992713895359566752828296898471130858878812283816372227321559107955033672588210307744931498007906463122381277548311315190196602826128667416899994131772203813798973304838118482172462991389779615332334298616741645187062132911259832657620903983889143231942271529910923782092482392359338923538302358243772199594186888780105047761723948910331125461075982843063820912646617672337169226815706668836858508386433723941897613969595912311173595072974467156293041214378993415086788792294295937724896051162435941784621232139340649608907539434397057883636918702920766537433946396942231514274826602673716604705192315582015270484538778073571123310723994162598277370113895641272774196690169572180368350541224648178921485238652572290635770828864335382207525079726640063513990415426149078850568252086436484295577499333589314548628336271702087725518434817809459320199895699780517674605836912724269299143265814641608454338486373346305621252909806537684109942379143147323073056739788395402839039013974921427337505174465656604835207262483131234799234411592080217017697810429929966343704053962695676626042137856258647104925927585462555583781160160756613305745100540490564633435891364598134817717214102034906484235179629620974252202791418356365567475055297597134304939186862885241259554170276613623700777596575081197832699226684453193176666752706191880852424015569276879148902338071934095340644949481988174851516576804294450457113361374804258368262779386582116641949836668430146115014998019735011485076799714052251302002559249389379806905058231614558630749193639292076174008864602737001942461101466946432598089709030838988154021080714832635360297370970779294513385550175445748002158350894364264555043956142062358362705354548966538274405048120534616725044427759107748153586566322916414604354261179087444932822773259470686177964259591313697822374385460122320075154915811656479509981224874584813302050625318020194022603947613074265715759341023221423976782051108410406420112539468584579182885090291801681593434470990240257272211715073407165047943930700237222067471407568556287611310949509035134731105582878354431618421828259083725653752529547720840261354290446264101683951703401749845283636170241465144446926593293557314021079966234409709370564560776938407873255724684357922785904955826588028501979446647204885008452828387103199807719703649056765463842384776397017434964852274559289727214413689152636186629020424779448594417643683433021427784985671305387259685851712548526879758258420179494716379967594454932658833097698755779761575718976045419576107714847341209998088876944630704317061951007697938422577544348665536968448154267187228046611784059812774971842234875615175905408088820994593493691530704903938568980819738311468277148334338324298384084586466562288097192045901731212516610566356117505216520500683475047125717324743429714468150284542351967372333064957202355886070158386441947552169369267309152835075338273554787865835581701995182874099382213427673565868250221950739323770975914160145520891651436965613685588241855125765365889572887322582072349285798357284149452877264033271803794646178915819449463126425018719473926984732335890789768249013421722678402556202864678659734356051980227856251039100250325963015224357443652865439320627319906632511642206690276472754578333152744650138464044930849801194537228475305681016526595979564713143827743405672600794382517035095223648767888491839183447709059625926078453637189911667783810939595885873776935958449458312391838816594783910778267148973298337238881057663637202932152302047104779906564790487752557259509776608828988479520456615865801468743048805683464107422884137434648418205172095423049730120204242644438329382051473420879883680084526538174152589497752528715967688616097601673117075680521183952653476559740471091861781958350827318922989631799270556122770181514701450693807592857014067992154152233200875717988809215725900106629266819810211546057808442023712230011360152549235825436431700247889003226287684224077848480515361057576821752849182098992572576419253415639655152822939415771854502142422284967949770358935254334562778914494663335799972382785275838685152290589398078865355744456241372002549095045852154741722072411045780563673105610859857999222727135425877588562169332880803562218217151432625385254103604704030357112431408308850617026891007039795527359879767165828217737777336064940986002694947176841682957716888956513881006457602780227518867545972704142153848640583899437603783319481206944441566016168036723269739409279469790638186096594045839897382955631972755060654985194969297216921265196744765933324531401978205685762692241018959220554478907796077469235423285341970197040543332294635665015492072714700636675188453950784324194817806411546577367252216061952361286425771875401561540855900571413896248161511888617178623570219639902795982411085820910625672339195890817392390953930901509413508568602339567067334203052790637722441427631741202196721411920976015999552637636743040523100968990397891948977282681168696581954570754462319620848287728073608219866922102527358090725247352420036673478807042795778429906739300951026151885491903835959207014180226708004959954091712662498733659418641477577840585779514430701428617432230831934737029822713122165838819943181350110870916214519921969770668398583868547143074141776532725338055946336980788820883250925720970321007020770449072959872919193222383319300150370100523803265274190913249079965717865468334756707704402305263073969903585806415562443642828073388060335303742349247765444475997826709204221681079108212386252706194482296493837723586836362260464883340190762880827201753983623241967100012730077979658706860333287776368826563695829826297494877238413842929694173964332251352972828929640629329013041212387649371763333304716636243108765478024217056799201260885707071033505021495875771196019166861541342860679145464676361268333755206490632960993396491417226266980387525455469426322426409308200079428431878835590782185546346861458144499572079199700374152323048011602193693507016573201072928137909016788973544445550693214592160238457206978062439719896146201357517029166331853334237855530522760042865562180411661070495294419340959784929537715800237714400095547935955247758897196701772453001982059102744634215997820815733354808192623871288805179256341304050319171908007767324558035252232685460203994369395774451131222798893642548587841154425094373100175082638908782653375604330385113222635203656522330101039884346137611101967027583000606550267854786498878592892682901036907662723014344494010859416164792913820343463967075455616172638193176667085070904564250944615908159659647393674382773867980455408453566356673161420906382106821101925097818772740339544768315454942957092557193062946827255675595353955486948137956926261690608041682669170455887284932354349677271829997937268140813486766742789816102228959275044351476230045827843509494968270374806383109026562632392374898094642923651136568141170074455666983114389518730298847871505467145150146167245288253055033295520177387867166544143742957466780050523610710441431186257309366917682545727014966272878101616760548103683946033409181102464653498250953297721865842201031527948487648279683097052983946762324108987099379155038713474932157962128854044806374615156204533810444598316814126872216287876925662723977283207873484910189040523403766187858812079715699288973331828201271560700856832858976266784551295884928259183733136799812658370849843212399290104691149393366047141521325788015954462654828365626486611555677047237830796848480058293453420905909841469051404399164032355889195914301932233866201589733229895169325168719947870573674658962644059682064253644148955317648973597693398377003432721486027355180142110107239283900081588816117439493236532200309938587195890921639757226709651574250630694969477658418767891434808984434437689307670303049940937075997935467051726016444063241995648575790449148539031707120183191524993075211687261598197578227796168294894276020815874759874639347133490312313407994671632327713373648568371677100301922424210205632892558472215713512028590333837407850735445792655462027985062439956919574512428890807546446980894616483191950843550614471015069145557512373162185755268984708992566318972938411481240040122113136059089543795405074310460136215447051912919777662516815206407724954237591307621467528670223246353988481656830603917498686599892150951329293232944471182340302864702778391237755568990655859469820448397609581298434862021405418275024472577586558748856744533989013113439980812323502321544811692523543775796640330646483855066246844625577860347215347617635195378652953574797013730106907243108594038323355025755339427139733747752847126693978183664583293864021622784179687828647690845046068183951865699220760065179147101669340456166554268997598212461018350893543213612724312013145016804733040945367395018579460979787727406946949711625764607412193917064867521886252414231506198844667137818394738404775723266418101479854414056433526602700328169038422010447394377554511160331603986861525456167532619349746989295146760682856075311144963340117850616373257302964312035440618648274834618086966489779218583328710887278200622555209514212638981168963608230327936710505249972363313352995361815098889652991467148167041444765837732164303698407023480035164480087759281167504691413498051211270987688420876178561553480355610610783910156346424243931884640217221811049523582091612558898687769602054557770681563668525675901147217242400578892583233444451075646252817123641748009470994841074599412547983375574618508958237512104873312627171333955201562777024148713507305780487115545150208797398624552920837112962385503056244379468023501299087711406694770292036457397532428843010426118103194234182597008838326533588418567830335600846743430601200422587211016746247776983854130950658640109769230259893315790094496257018149077685193349505279970278664388360723939875615553219332818415148934592249900693890762061877438408974039422224883573711646494084238270815905397366983159535239446619568847423159340890502107878285432473736685006478883878211868638880770483380810592685579455922247589102080612025701783575223073084971379347941773330750489319599585261452600155820117047248381060672100649201928681797344291688427475077561088795470272289615398090373261121265178818117995462904409613107884581085385333320170790540910850629953679286261517195953799962265481510198023718345364011345166108931969830581202465323423650995662449480124504365355023742911371708430273288188848507575308404704050999717716533410097655672238056693510374541677107454679520747463655208721476195703749651741443514248541392019230721629831121642616374632576844507092451671399280698174117770036525597960669236786142877573491995839566223013239247406447985392186678558866659766225608918132115102187523430399054710775947322245437194007418698723679470984527904432507058731630204651317601974918404953054615974532337965008959435941696550480815888952182160821166956763320514738689286620482821825562046748247016709417727384880190292320122806478776586430090903110107824035380653092057462808669843104715645840237467767600054075196243666769059087311428420016270031862234580680211826538433326570520382554673062242409588180779278440570383808632828490244773676581239136680681347671868816751678315304681449915546081239103796138134856657744779216278591257132005621538965564691678730044749140847840074657423596359330915883327175310435649046627712298590604483339742471362583361470013052629590009094920420748135066416570900782194059898003755742974667639160006239494512047735638554300907213967973551620316000022874165602495308376072877188886422130509455161001489443506380357959604733278833535946705989510433033380360475145751477806404908507627382430742165320021655389442666866262679015091424589644144024067984626299398304384622420735290320511917193420927581562573590324611005416169939196437209271935926582961231612736919903055777811193505388858163222530699982670923991830978462411677384916246787370246067840701363988176299286171549756154843839056112478789107159200112787547231705028698515241012581296350795406306377283760292001321199188736013920487221338712164047025348168308525372334154819453723655319709061389764716487118515434139776339970402639599216802489127264364427411222489336552788554992907099724743527032134461418184196860522656958161967912460287213363502449033532257206527050418905268741416789262348461035767285839547100305871376026635642383457292488972649070159713894675194794645728809053510612843571030236335980029654441342086954170816476023124887767430110400756076025549994706405403727633184543475939410088349562670965968135894411707402695528415449024457663085122147882484886183867254686588653433598656972478004640394637589529558884356526257309455441079966689062273216029721477425997629074294476871063381717207498134933518209568772528270510407102177668683022483908112455274407427029929345315069086313532486444260938116586154956992727623006494811522634031564817171720670322704470501423925172760606928620040029214010540237526025319815449574349924369993842650075992601870945459847134095485978569863971397147644468387955982516364489670808098898994932687562511961359254727620530984413898460413685700725921670719065946105636577141090757160726316642807632849013901245815178494478364741829378100598212264098227187292399402461752496242036196371947804811878526259000656641689382095335594258122324865637565509421586692774370382922784975220399990201163368024090017540280166252266802903082922648046052080130450716436179224300855420095888664734423242648795734953585458783973932404041258368691310942174098458234042840422211583981036291953657654936628233858502939090995298076224760405388169810248905226097911718961111250029823214316362226920650263781790697018252880532205120177769038428000727239969982772198904724048819704523944154190207921835806710114356377464387464769912764740153193822520662368699637900004024458133392275470894951710842751670365382140373279129541749120011926122389510331495718418308119257265133298659497073169574000521557263255527059589521591328595347099061206106715584524772127421275949167804726761043780003598690011837917845693324765562445223646746491377194447422291196901219451352234809010847392304879736766297725049756739761919149341998531796816316442276499319406880020493091127628921357382071427006199003577243854697161147208235070652104714866897309285374522689873396090709484472096185914205778443852422199466291324921065987524088704129130543588482361699333140639694778367546630860571733040962541643611226680477565100243892140933551443098836977665229924566472102497313788182129648835555199560060352608042620762333577946256958795902647039529230188125330159961508224909111507444411802159045254097872481768726470031347754192815837383767940195781157690167835708733147179745580278395160116920950118750264530621359017560101810781412622680655110205253031136944843861869220551946950498121942817031093846492740053140124979900571809808234193422058834175593452668936775354636122677877046256770116832086643480793433221856951370091878070231405515616124290263755499107090737679302066753474151860589339945720928813892508131196586146952411834521397421209118443556001030521715940202017888990925041462885217133559670199939531569937875310080665907741793006556424769929681765625322135886708122826373385003708783498837961909744993449734692975823042661337414969922607802120610088689331512375553394192951466454141784996499514898717149557440447528650960731754323004764572503697164628679640692114849158027963961211452390541263416338833791347094105039089099002309027769131007529310333069196687986709986216377391772275042877734740544564928390889996250921914234892100685850075792790734373867593710168259912054356982998335583986738553213661459291694860292662871058454046303729173016242173144035493242941807153925625309194493404216771897510936571308027645114521924254420746177742310326339288444256665594709119145665358001351833380348473891727222316486035871980988941763213629862689246922275351086320142782692883990164238204720415266425732743758264842551058136330871989236250892590192291722238168973416477329990419020114004425901379689319930101984197961324979439145710735309559475735766452354328534971105967892412388772595455647332872152907493094106338498687352027315438202268756986611321400209221616060692891153998110541512430020699866759772530191916668460349282691617196813811052015748141094187700459116151436508540480217344636218040222229859370179616712917351386415988683096978034892013365663563620168628685543453472230832486157085593479686716927557728776761694426880435561454218149725119497401844580765245172854893828333214439209100306388610972391920181714790141327895406616410297170208130946125302242530734010985755669584610605710338120198707044704967497685264296133680868676131259954995349399750437613329327977932904977362623056464454807804832641409650534325740973640021391194870151289361925569723855981701529257571587336640262558862241358849820539575556588684669478468854697754656731263548220000055066325349043718063733068554060971126586730142646737063083565701385351744853395320176995395612010309718930746810218871529242590500481518378461767588871829989114229278146535008228085415062327396160945416259358413644864405730166882760075485607274315550064428081524435371266754383613532711073561279006224062372246623353246236484255033863377485934689375515443232104455539952617443735246188004190059046083493847176926892656446284409885837490445424688213238717780965669376785106093801681970207885387197426182600323511888999674936182999573931894934976051753196821982042953135377527684397475046264826391344013853935286462647418711523093179646783709114739862214873808017258216142435061978078779197633945381347835217987523366704662824602363380687811433394878377791475027566253986071259154030855607804104936875562654507653343428260349881879192614788015866893308191984474322930569427609820802110855473691282631603936079940249798255959102324231826206515996612127209870969174831748033045063205738089704532902984805754730679462277095211757603682168374010767349424196843099997200189361012840679756717906268489860057926145201618767051126566147804398674726701123585580195021323070209682823967499716318378472138630311537018674117053647152857830902477856090120520609901412546796357740646265620022524058113649642175543119828368017969724226017918913188008550132948395004037432090334453822430094621337103810349106116986380776970423524986601979733157544799394350943718767178687603401721960024954233464947148626128040571350695737663931844554302055632714696578629539934453935325414119814088354819406045371962083068413964774463962926494229309543193522694275931161429096654237936365882123847225302237666240294322877021614096617449263839112487163073449654126629985478359527894901005067002923583607800712158020990677085997118147545292499315789765218927794998164718004177449639315315970304768877619839918904231202573417557054626584193099629017286264923365603994151087804547479825965089867599697942187265672018728726869031402515368904341360238936466172354170919417117976216717396065646984598540912374810147433756720146972260846669982043504640994813762798783188652414200865916476440065339393034928577865281209259629814836890902773047875229377443570564509745753820084693855434346740058313026876581150418891632187037197348788542390638807144060497360517631321972397040632301641615847600520682019510457534603757835317017691150565479835078360736285538702877941003884952807826630268529558449464299778328904321213925455470652598881872011874064831856965445906675023131810859305367674496699141291608479586240680254856714222888747378527814668662619949673088984596800290761847849589571138626112900915103283067927578212253253888832411193880051493334665343908533991202908601991377470767705076130397057019681282018339291209295805192938290431153195738755829622168666164089461655953567803701484496240219983664308031859636109053961489754677358930298719065901831766043835326513089366290722563534184623117067444107314672615182376585753194318739602966478190481944002035109434155927876092693137853774403412086743152188397958762306653053245796261244782447315401637360728433325056298060414127998018429115246788595610218866106698958826278216622048283886038252349745673987026639055635205057901847061839480664013466859400740715547179289206288486549574007975911348434569926479882714252027510710356827660423777133196235418655053745159924111187553674887466520173733857028824258379647623307155011173949884483597279492600730024482890512633528072497711334932389834452914502802975382585241813031712798255553362691767698058708632786318629432508649279471283095150602466202912626294837109153063049266417417014275834428056691511365807634056707833063918748443232245828573272368341859400937230902279061565162300064065526962800764063165614027546811349072909412590142170124531316765732388329506349464176379583435521202470865389468952087226596303054627778751910094197775080815961970329510351940112399047560236823642807842213896601311219027580396041981781731085520543908186827926430100192165262796443558739362599697144444119313507546914592886432748841705919495871000635012244993902231071517623298926193685331670909447165213139582418078212822778103757341374045638136724654776768375646760487113385789473601823929912111864719481469366309956843183831803364539996746712294401058409901345868606322908493635152900466031870714739019135153385732763275146036931268567424101920993031931460257180460684057207124830843263298206377546352830306615180961519855286152724124421898483818831257658157232713670529223378741402303128478906897387480216535190054774912477467322797478230033059168558261342204420573768477666027096327065315713417756584131905321518071300654436504227826762383832449111946525375339619776183508325322516658746191785415622119266834650430842728121820746817333500753970806417921697679918782220841708972677787761615679136068507930940724359417221739616231584620489613113891095121873883143093133748559564814402942347205450010926987116698933313370464205837195379542129044722025017638829601877097246610186209434127907048098536167224989181160239759187756207433095125600812152321685848025943016629714422091702718252869700333943712363994929006694730343112610070234942439461024177635696661082979967919411674742172993014239600160591483135916951194125530380878323831930369808906831219884549459495461679229741020671798063666244539762601972580345737289330081390711552397268943448093798687836360245750696718522230103811958544554231799114935124455219415388265348167683991033611270622505748652033750690593049755537851754844906889426707606588950004295038477640809402423389299647924927094277570773372169142480221119728560423456415454043645634741979788571199340927949088276666429584028420222161732510934676324040215699887383522121472981210505423736707629876509298909214446693068357038504414865504844424314974460874040054557574025785069356468001408374223219333698476329220355344240218039352520423494926923318494920039724095382246577180662031225786727051456480125564162426077415662794177549383452013606722722191770488553145135093889664707814345758554333793401143268476890621634100661181493113534352284650756342152582824506063620594268013969109841637622752388903483436954717381696574754332546506995522451848218815386737924486021063790216034795173836113805610528046951555284820426919752030900176262791229884107657737030370378675168643083568747958106096097750524806847361067247971252323698913163272561382532123836405570281412213479364327760661932221038221272173756533373107859748805177287926246494063055505128664854584458049534277548449183051495690718988986444598497585839638623068431832094529858307386371526301095206658511730274974467647822478587146535538738829644463247564567042513744048181092818324452302509032954450560337663022150217408978443844723030132733838968158210385591098927051039330752790264798064465483153931406866804767452656563172621200415824866708106696118155373278454978213331472645210656981643163216748509733648215573015965744820293842955370060118847790327523302642237048806545652022513958282080726598649894853690200264745758612150534896541261565445997866950670861945935382376952910592431379346245647020983765217763001230609669826981078806692389648530819665406963350082200411329037607262144031992941057278421312025341413058045050493624054761227075808399319594288469923018893780020829813973223436128436517609988024525090541347974201488687740564373276739861938750983907568748516709085076503397063743179875602045978192387453303890900598189955856123808433505802752096881837980890256017553546052283485978362714900280073481378216914145891695298141171090755124795770269462188591724422681994451122610298980036702308715431260583289917503841263300789469058884888151125510244473573018324819463912239926301771010804328230689946681230614940015906659129254832209181160614111569934512177831516709121544943021973743538163855128327887830667347180432386066135439132714280287543090264383080950057889866890581674509048629752469740034124545333869693453994148572565277794404939169598000262178899529599957752590241498600569249842227233756317787939606962426848194349729812252613274733992695018620831517134981649056653230737610886760682223935082136178800047743537595240497422346685753510257619816099903634019040234405663518922249186760681344300350811261546118092136068966741635294273930528057233251284491453653195124405371521445037265008568729262733352669440953783145184956989755219176732888430498544933195280498065444944108752375752735887323168850123461900806870479522347912861116571235504628122559464452903492064987547008959001609064676613714855075487642517230269335310630055681848569112156122863062549548310645747700648085684838399848795838094789359521300322463328944293337483582040604589621995895774115387214829807483555020940589924086284427049488703678474482174470769225318540666851737535114184472230607628811370227135392343952383112381802174547300413381338808090712231801804766509483212755598423626218356742949257268703013033748922904535882922316387447197247341178080867741253197978595463329677991014198688493093909061844015824202259997633698993605821256635205969966947961267637323617730972251035975979758246725860261656933751487726243250692726942554858493767070172508966048124336863302971449700854853275849715705588977833716939183087630504112341441676521540332012555652443478436957361751022475294318658790531570934182265502310434650630258509245373958047679376692737640582087315243234769555819220799371448043162945540795325658977546851563836033716561010740542646169305808573798286054321639780516890871804831563374165936386540665432338059833607109590277468986863073948980205347122824460701342865614414423918099890139724717721642061134738392760610119640020953125083509038337115720973319979927922533794687296527771804395568726192403174226495031525099227592577335736429340923860408327385298569866826299509349888332112091375194912202175276913971090666890278181647443116245465754793822649420498515211974624465428855586377280815967201107509375557250121912650359509208437050212410825638910477968963646592590804358908184526122293628928830455242996833535140454424894624509333981827363132178829941261496515980531631894300939107246027053820294470805980920091963333608913008026769288197720247509506124586224904499075201401006846121603347463344983542927051530307112368210321444155688224174192953671276080842562077482799032939280894803966268351081444168301709545597311864825771774615346573397824559980620559714768529057610820039496316868313119868943445007293975250780440122293730163284198867564980399781589832178523825097445742767216761280269551900020805468812770801556779158213378810222542411968913099737443079130816247071021375929178859240972867713857156954370266506711191733997273398802187109912012466956133899575204145612636973609822839234338264747732421341717591368895129092061118872046701656796741934438475965086135314855038886287068352640027036150552783870728446966098656903803296350927844183998938239278977957346003323410948699943432275097629590160561408089781464931522730160311719597319127563782477220708029535653394916438008236495731459640566661110654185938243363074773167072371037284835201549064991171093612699135440699868990920699004217195956146390560888580230428700105298034517526364119673351841580121861504503835688715148607028795170224721761556374822471632740099495474586550934641726425076564897933816334564432551868280245583363197133910026608077054110045461116994887547653804231467516100771829111233467511563758855371123739620978948288056703454020505857855268757493810285932541027262805864474539903304245980426164905402261955984800699831454943846699112211842292693621059391243296956408858685618310162992353993240822508913824066473412659889118756852161607339390461923587171137181195454452777847636259343471628203876611664445988040075942580563904000747929916106826078952181351138677283876200244474519242917844186216817429891930530081826643032871175689349408229357169129565049499138242729398946583386657884978494420932083122445682114146584853347802163874496516037524358321721205047847558258496329292204979295295125212533558569646657673565273886295073845755992283473498376117945582828230520195544186836686910097009780349338490355031997648785823166419555793691307390262219095742691503309383611831837529562281545385989144583132554092129255410106585909060979708598666411472444486676615662748203298917334269546348285507194696694934207587882988949649924108469447415452397181319093575788101268823985029848779019647209363674917249621862893521204764825755944599776162493434190896339856878426440897357263837823503097807951603026348289053941747449595811558124620881589869345886616727186798300443214961303398738686003419684673894889933809454121894035987670020395458770402713791820690470677941830075791152326050404025834126160923925567922764387165402782579630055051030636520118755741568992844013651491972353050279430786780278266457403927421094888611318951007187892847935535630848525454469635991981554457562805880502553484377340256434758105793160649220848341487957857392465776616793180901631144148210360129834522619694294231937070278120292270622206294528866235307623353320489065781443474234093294792000481291069896776926620615492250941327243397516294370905590260421294312860296539641879892682958630316314479812082024272567975390420834170381090518102982388518040845830661128327950513271040271042502288087100714106258546797860097962380965336196872105340745880662094480966767275157756371445326624407873394943471892087100602851173278525943642617805219764723797618457018393960770944758482205705981545278490990127532184736013667551499796344778629432668286983068401824126735991121276246437900632534232049652001646917635951686629380386432407732780115410148579657199792398779943985414463357266899101194508844988877129095811144522417783765825079772413954806819328853796448699940640805611367773678870023244635850164558375004252830575658624378652253570896026331311294056439848309171832968451792649637701231414447476182173610134542343497147737639881432923904156284100659168260292259477398036612433464640596458981574072114777408979954208281168059990041841496531761756166595779924303284591801333033218439883393924358896418126550888386757026430020144499562912015731815676976575495529705264499290644083121507566486605250223308842674197263510638275856099986929525657813139533273646921958873303916120192872772807811961274744467110962574097809195194946287147932987815980940307685649548497545174823172881596955545009087459019541464979546185389018796453137741293118601035397154437592509405444451367080890456740672051616810090741010178991077781001660308262513356499199388000381856683732271224800881825628615168464396789590077152243512182318359519949676455031775964740251807232523330693191715372739892901729877897976458550520404363975518612728299913933549190407609556666833652713078987432512604857384698202260850495851460605932008530477211993206475888148038082801334978292911057119159071172896786995900753590893056828250743135761544623551435925013356215488745434201839302369043416161255358065992622441550157197720818475361348250626116733148004154093261222551714173739111697472619484593922524940473817089903169023232377545087616756204865678063299481165946674989124005389374850110277955394815727632047616483689295940110509548073714434201810652179644235323545974705136054990123631978983892225815685167248385301772609301964467154973205790432794495686677466112031899728584792585735793919685244224236596845152682025089809321892782981760889406006777432211864182159261697343554917011865132995292719959278631626274473849561974644313822115187197372450809512565744780357117633916508992332681767327387405107452378836406719261732441783117341343589001342332076657939997410949048533119648536548234415105331628450205218182375718493456396739786210170791468919964263318999501248163392562721767639647606402972723596541581851728102075691351571624348356894704182615415494650179944672542542340584448395458017161506107797113985647769741279486661676368670700601346043719787004518694189237117357856616519391777059546293618457415412700668094761691660589388136805376165295612394693598196323761982236615975074062966158570032748270528720262128639967909750059765200609200223329209099570408875687985954471474305654814898386945448355450970648871364604952830632693297147150406167571846468362320662055350454083240605919771108185756088710472731506442004730388055864685756779551084446945361306279498521984949704415771315395287066487725152983984513517267480094643642801638956194796563348632939444345671741089783465773600690793262062367480185428059169571522737542683385164885390869533643545198795291271379223751530651212923446106383267586941271905600768384861905432517308062214873972208562592848426234703537108723717633460179576927735870731657889510584494192517945976955941875997907687716732092262221781688014425608083745533447393001734326500024313187830262903076020581637989150503471577255369977115941462434897970563466956115802918106497858044536243773538529178856411027743598958820273606046558431651703338426432279122132537550591187809267060378852279900663264180733838636645253485769480246595581115350773232151046448981458062189586844691616572753208846125179477545182745199941259197409131134644648261076109664168410382863405027795761442286868866666255907197169151887591473274259128512367279651938947029076192905711441357133687929623487428695022514981040895962189149258556427369793643898909239580122397454163837296114903024586485039381146657584595830417860967076813344019721786522397955598797279108244242276369825011910342808993466777460291554064166720363567548709080291503320982635588543602439748370847304016254411011590726705092787885763037014403223960963668166652373212519213875666584114483251090918921849154150907933055439899967191412560754019582915638690817891365238467343290381587346967709332388822933595665017883917054270974076434025113309433835687197038116803136293219345436120916363605943788965385892568784417060432569246415854141605545473134303137420924249342192873739720530322726471659986926571377427263658454249735216520752099754545871178247247832489742008255230758551239532788445311283276264433435533931453168887914423750344055533581024800670633278856852096566244517675157901750970729880093077343793483951265246247004268950272803513988939946953959704562940777609384303227361395804436362812319348918086531598202588053736277225236058634449423778457035212292248361887906897303909419220527669676305226760947787114770583376657863255445719276013747362551528093954008625467947476502223941366635364540288294530922973727719598861243900415390347511301597335011250669829211690542449046810202496748916830262981990846435262528701786862219260168830262211966458797672188398402672018337608009306364431755256154154919346315284890535032045626617014358244315933827690927932620480955327422137775426546875772046559595882516554437296306528681104936448714190766143784276719008667155616943335848373546381720296154003447772505930444564580085427081093269000053357034125581079417255312848514828583673645592820861819459716520812744985929870018174855162118886415498895849505416063387434989919418328435506809793166594069003477148700304726111314271188730256546451616389197107787558247403637472039410355579877014122154763070839554609209146917753348118073608043161872223261454453360461392170744917971430447003591538800429967690689690713131665653773091639624790901805684816807451478188056644076521531726348267087425478406862214499732512761609763958583646873408576157822524794492090090378422027809015583748952723690831303178006306952283020382712975060685152876976573769334230012193688377270585432873090766591627254059680063443804183786006969794313579975511823917323706605254428645960391352210180790702078942493246081474821190194638528317232293056461022859351907789647941687359898357891409401341161001411210814374986372568557669700803294374238697575712307576987190001534966537029216344991153659643665128926270410178056262841065834439756189259631051379524789174197177025888529123049332693007159661922473167230947381416185711309550192780872172570872730341580819522374710665739940764490892652508282033153896979679064957921737826033186247749360453802282689641844155304540759370806633818899425802581985088208516849676777677959243038322123244631614344183969099030765262344874427421771919099068599212173670140729198474834192224468115869196580080999280153865376510315005143254826624131268920198887438075355652588248684305234461017060138677267201481854716568373046918391512127767669418124782543896130767517732557208677413961281921980786048639392993309793304494269453501041505970713849979334823594994617640697965801173723831831666283301705235490807174855340677660338267669367499716764816504040902146067170081518048192685322553994463379444758574520663684480045479411339635164696582690301092639478459444802891760478496461519943900221826319848337381847217939297049998659790018002777843900338751176394282329522976223948329806257682346810819471435360708102180070404870454683720283881516223638800012092671926848513507347180404794781511131173407457954769668171951484403750619201814325355733423535750227079602926568670523112242670374251232650782377363015976921299806213852330551130581686842187034900578458649734029579778769507160684417143324635144662173439204917990046977986390665200095493270125484329322191339969061038808373036440269543313849186302738215015345921570291783390430354577716453555040244281747926672556199077263065343600202487794402661172483704866509311191519478229244727971987456783965508910453282204479776104628828450089564477899050265962779315039005947250987003431382312281664739907333147866075521593865159214734859077343186027885418331320198376703431742278937316734728263320305230028027151813695709427419697922937337975719208729178082561596439410545660360484296064008468294854785848437726559580719803050743323499651645308386858632810258879007133818027816238179911856635324722696367708461575239832523526937255910296213035619502139244489468378077438303848869285871545048464598345103110478588237347396176760492197536217716762349694283285555338254562966728158440820043476013140311462945439304307762444861957576487808449508765638360832813677531867218804257951374882033207030668133379408729057015370253495440508292868101269226129364939592353764806485859488219298462081316585231489241215214871728558879304601718908805261082605943226358671414773324021452757497639127640288553519850179200647751377269784224415287474413598882819686035358361698205953789548835157383679124216708973925004666199531193145364277737945760475028623316540073500349241173608301819289106474299976830036479898082210666503916736450652697498376284891173666582325686765113911481572293988748926540854461273060694943951031956355867907226995183934312345735834873676920056244340313843062916559019842532932542596635075832559000607948340259673430796610632949606396260245127554135250142011179652920542170241328225230532625916403130862917645171783101927237225946322903702865657015259370268036894854902740389609504542211337548489076411348238554558963395666916526916689503262858028511430144621234170992035571181661646192859496668172188770691046902322502559017364734403809138886581201467065035611081740826952239263505552877296791511987137583326354795032872307639094527663864202874594367907356101587761849794852039050842908844660590355041277350663610804517218010646905643291926963958263749714477735865710128987950676620847815161280361033938884727195057149768925032969397148601173488785184780741634917741336931621533334410318799167358723172138337208776928257897267985637047294181764828679972761362689585812123697757429767260292792647101640483345278131867575861291232667830979385085202142413289066882633750138030997322856924516097938783056008923462599379302036098863139061493295327159261554054547533620131298642107255810701610154486728710184527291760582762978729289563674371114493914850611247913809337577550597852506346165070654313724849711146897604314323048137122870814529518401775279327128977659521594395526873930439761487405833936955732484877543694349622481454118083206758643661900294827189768227265366878108000075579240521536206110809806284224195596527327992463309380156924085930083268137389069851084802597761028153211888600427270469686967376062599385170579471215881423785298930480869032465718172311965984900640874625928308283785608594915797183014084219885857463006934821816567519333351562556649398232283588520148726225781466207726506324664155622554787412256387922474316279780608867681821765389019254514765766078775375787573009940900747606265521286075613061307045799772458333821992267886619586835789457750522010248444634013773539567938705263077034395677811038371443328390709491247945811251059779263882289248637375337888369150362378804109493387829276296364586886690179745503128958299537358887741749857340675261320600096499166231705499392822631939475735718367435013008065716858030822223812514181268326784040863029091615176830968972516890458054638027681003098793762085051023828936391716309087895980518043076995165105185519281745027805953149833829667174403152092830697329355327059757784743462908884855448332978738379398127368263041913505723210315001600028823060788469570991128837953169642244403880192348436124247375112000053576070459554084452084687586892794268100432431655024670001761360656736728183101858155471205989369686369336674614725488200242790325340434975804407953116153522620580700929489776160270176783744276226676625881767338778292217451179858482463379741734487930698519334793220568758707268202435447477621919852378022295614840723778154157120766036080752896083403770159577687898419932185184120904970980401554988114844440655543736523062873913865257947939245115674873868256189204453235268585882509058186560586159907317905229164584781164758494401656100264427846109095883210964949877330627700444919653503829003100319830345616477914722350215456629392062962997176944325146416501467762003677249219906283718111362111618388765705557655944126187577140847762851110527850014837851234403563844232705577372728878765609493795391392909503450766858645802002320300497267656196497367640925117564789126579364325887265093480215812483091383649904482708792070015004459958044563445782931825675495846296145743085326320794607959562068321601741288781801014134276240861271204433153853157442471242651593711223315856000979669020656810011173465712884622905596993726581590745496550651919680397224626612745773942108628096726247949496028617757568473222563025550791790320031241279109114025488826407096298837458902475584909460302598380490591524487155479799638107776837116703122179593590756468191326119571389923472767752704697513445627038250106536327223933301960870884414207454500648156372583724142918308174212972989398060956380448329898921207676261635986392365161944769842636303326892291619118751118831813333355215665520247739511768785965004646736008463254592662383226968812023153928375663578540907551719015415057686320969043217020921128739323478444344981477025503079811469728876408345080911332104945707945928661021399952757685324753500335752324969138286540763243073445402758266418038667856629670033542950976385364194512779870892341881906013856744329403716027817654517928309235737274277795351847073605760382317711504442264607979526308231360201625912767052396416021906073510957734260403671121747454450671972600196597642909638148727177424438982798213977966564735450564980137909100983098756528078035539862969268943346928777543351708637686445546087972551468355694124972118461505996877503977910335268069976210428343555373231609087586148981573153277434639493570727055804901220655330359310149664179291227857355923962226501744084495695559373651877826985817925703726279573625471835527680656746629290938061225719178220188603788629916343443907561928840466289668370035166592213994174350356086265910627292619395551590102606698913796871192453055306742772315531481605018448456923601516016529408171439438793469006449765847931396902183473999078678660901231089097703025559379854473049438927878556939312977401735952540833762574499676285609778068429374205398752845806709376438771440956266908609516668815281399434502864883978777291440955240899584722445246971410553849306822021839177078074272623981831053183875921461671629612549518004699841127467044729013688573040729108815941578202051066149079241352822582688807392019410712299682014311108312557681986527426368037772238882302902038188854524770880753575814330105736670100012538477266752446353464018088013968626083019605488529825122576853480646494492365112600175647209320009631245469768033657291406632549134759237726218433386919680703898509538558998947831911206763101250715570890890343010803722238353200953398525182507353238645757193508184516964461784134553708236030281080907200880525521751681741432316581440770741445060091047617746054191726560347147107158822916405286292454188469609039494386699300423710286047803126237165908499218017534271555053283790198508378286469698766803405337956260328343453722429271254337834518311156901501751325058785448953947449712793908433440399996774054642881405638292473080554060139495013267596519626672103570317550529410414501497313479216273782258516817171768051089358460734634662702934098608670323002316721942217473868886811612016454397537169843141328504570720405996440160498751261261071396930184394862411933401333601472695280759494981355162848189406961868667056013443626878334328308649207501387468364606637244881806892079860348295271122015478589991921410088791046033275432469738966697748949779330412024001261343943112300596908770931793702999217689589798576770737354825166667975496102866441933602345798527518237422669036395666775685011826095794543080486189511290980671337076953239374974965804363660788134298793969287247421740190539805115770089808988004688777248106596883110321668776415108383394113811411629639576568349163153352482264981517855885698485308749220282110304006721947347985768841915549024267309592348408860316662469983518481264028625462358002448855058993501019719397942566752050747301459205598893163053408781458792642373217571322568765819567275100809992067608399362085242915147405395304359741374142798086190565178862841255719380867458968933579421275085344411349937896816994101741103402924034836282105096945161164325539085973059694882909157525397973933280318098829470215453527767519185044288284184191968030934271981270724672830682378063232027916454698547218824334479265969472859784085336263544413000124172972224790488324340332507023483507281016151933685602625854534804837516808376894271998923608724340057334550689898912619592339169860886200947549467559996667320316716139959422823834489191964433650315623143904732397555647791661914672527366986490665206843601216000888331586837048570931219822036070886764839743589763823215035679662131457680570053010383620027298450932194558670315031436218148629331097907546943158764307093244096682147063256161335833001074828925256258065490532409135163545639281834430026029263099651388313682155504429276449711711401273916592318183869980281726204055379355156222105863558182580456924539727442283806320149452018185158808819531173835436223426800473380287513573163318192260030544979270042208703020508051193061310872274824823561856459022079088680937549167912144180735847255313730588748551585638410297688987017560364545238638081961393591894096339587170455771681734117479271629093857101099933536784026146688081961530924274328114812172087585033776777997487091018135371856868853724294715881473536798236584107206108422147207767435266070897729595989933623071871143246915387042343237683636830081314806637712004214516485995473941106450683560181228094219036815020943899603235522809937386878682564943630782124100440405376363255556922151968319953848857719823869759648585325265461302285366793977161677418670991539078498340143418690385028891023953646048653131860150717269650048940219028500906894684498152493583665596560793092915169131896063110319045735115503304839942370666972398556570053939331284423858181348398213853518929733782867844103561499998834528896387713651902471339754182256648720925206743649767438662893369808602691777987779771952656697925436167429203940439290558080828115665547296845237567585321907588421540484976438154775795938147094676450850169356594739674752558677713059493086547102456443095336711333162721741476738072349871153223814359361635995674048910285931129852740525859525886441525192664702023836859466151853718455831162186825835353311425864939933092520088522997559507912227211109429727249505071317551844028573957823412736136272776244598046541373072781117221262390380458296245118958025455839485384143391276727618069764223250407107271155628829262012750248432771014639850293024009692785543894600387052780473974610126816363727602041354993484328361562500751406829885324529055935653609617312823206016120225429086873643885288578352725042838701541176725398869353654126700067558514959219417243876088009062054194557343043990072786739452488090393049861273379429751092807135271393053732591516955925393633832009822840545418566610385590009459233946840394691324682906666690423176583273375489743876096533462679185556641356929515581379104308078015158621926457958086733082214497545104218088517441653860090194300923275910218111879036193084064602478899311838670889015586437857823953670212955195756768403095012590704109344025468679583295866046914956694975569209520114785099087759081208247228539443140907428201954923666924583336752788057177283153180820907716696618830538045553198580872910011730421371173453540518378146497010261905762866448889290058447294718368578110042670453524787235236672926274836943198138584663118061796078799551940445401313304291797921887056692548717380863519769263708339145755735081940158277507480492277439698021053859059078338486705844639051499880878375229279832022517535503550038774067141726359561624866830268696403270826840829334718376312268568208346806766659816043984311732498440733668110837763790500877183022122125081588325227250503503023041306140855603066324428639724936605502900148749490281284019822170604983418532188454477780702046373764742025868635748094199778187263093433855580906359795415733338979255635104198610698815735560805892814232138758619790911143561471686955930077457653511592896718668041654949085365262816579368504011438530720175134966515105361007908865826488464294056612995134453382518341842452790319246327603569657429129008442492492568403510723169133366394241723243114305676117596453229917725738854576253600372800423531113239454281851816293133864488603317038452895374358296850607274802196201069762064609161805598659299619172299604379372153898238029818648094247890222928054461312627167265133795633283746967029675158572455824039320448834668538275415270498962860341452942722900289533260466541127329670208083630597968198151357776234922543117453783753005906437168784625454589771549418420732439495283074192942539871875994492479915497473047353382282707849899214396349810021451554325238576768256021709599914027379828360441760783696184306747689086415727041877234823631771544359139186654455780182706453479616382377405596871624047997896023703906310041677031017296937592978048226169213998762736407398671804988788343914018985637581060545005676313932259349095502901925115090999770959379681428690801669839263029359230813508886416078853517032852000197961652435796959181952240474256382113991272405885944776936904548753913713161808467251067961968360828178323312386076892782214199991061384032821361071203065455779290717742266617380060068884537170712724144154578671576090736242061882759820548217120625246283344448474904166030484072537867373399111444171053063749044806664041265573746194760234147010845995142370564663081627780252554924310641561152580103904891702284614389145205610336159208221495737087294680046900102024327274152675987872077488810199217736476770668516836318758934409215642944741653507218274736379802975024485992948235164119563270636271133112237446848211463669228925565922037919683687004396745606565833031114393680884277943181689475803173965828309202940470773024188867608367172355198888863575774000654186856568638911348134006324825440291650053134102331855099978583661963937763326863101864320145251744856514690875983188889113486761028732012006587985166441845196114307963826936750758864367158686338221041856807535817565663924410505435268218584296809379152661452489247156053340434014334179768690732013454867956963974548033919748275324183998186633495360906782860366999992683179830373639371774914226139055395397585255686437057315833033457382055218683035443669572463491120948935615317475555182188770648755787989568930624707679304201915575723757136822811361773273164392933022989033489392020385791843677551280860210149736146542284873742093026831593136245279801340472002773270714150203317382705769155627283836508021035407261694108501692846102959734266206496026052088873366366011381891750479186926898279746817918506365758023153433061395062035284969519825240214586813352743144318857773179308681777166964045244812240150893860408186692685857252251456745248014700587627828563825089787650774986791391925937038782993630500895867359460651022792121581731039112236293690948940852858442055255918469711230674601591482737862927011112561594534785734144637194624153210704262069066535184123511419576433239094132796810888280096177420899342877073236371435210161498821107128853804474701233174030975687321309576652067918610772633777833518530374435560235257165752273156222967888201032236333304706191070401224537773066493320140923761871371201387915328866606757169225159220193271531703132037676332684011224318547383317640361185311505334765493407957347406538530752219235914098130017999595106658718587171218092571490215361701141186114364868469734641449743483168991484865758959160638615438893749719234776716508594202597848153065811024257165322910609008207709928691666807986120082955288073715805805467364025585158180853566956460175570698893187518166549024749273620009856064487413447948327716212364507375074742345483075311884920604265909135377907269635091436721480125596528310847650834849644995717007751094121661572874578892083156364379127726707673468977036656963467999289889188164562607106051689891539284399665622986147275647608575701575911258671514543749354550616420094342239205964646740070720061201529689501864324171725775942505986185473075109059528781267840107062244065116242840208598834815555802303724259697867014169951007468664125353630778844586020732692413578388082582258835318249946909494049623422416825474127408253548343454333019511494187702048607055189734237263388631483007626706876186767564241215611213283115667670789309566578652961799636732368865776201433106339782296850603096142733253022096582917034358680374918011434489110453168183144624294503274671597833555977966592798998471022445465902760870267124103032448913734253883858399277918155478414083597810681311058447702765476765941209097658850814595517626182045558397494847532678358909349913580835508524050503608455197038850110912634408859529317601636131009500766342198745736349938765647906410934350315222359872069428233261324057272075596087255751394983146301184465035598026476735997510672305108180177897521373375275215087356059567921788845480707834315010874989744733936845566181911353394166344804480749444655841310741508117620067135661617028535433901495845759145087890443424019788966864734752214620256633627610542967343045192095453805051601277474476591083300879633200870003697776001842998135927100721933234602544583521522710172409597558400900758290182335370639001422368854550349997700840181555374974435282536374200394027099529484343085088342760991217277089119269670858083667201252106182201548715179343568980119234295464888003722540220063628069907973040412407146884469360555410711404952992632469935733668076675175669163241812687936555259557100326280516332211138728275554499889254284801123390233398419375157320456627539448595133005005983770548929395901633573964234660632869995378273291003330486725137379955880398478887225011753631735617769497833306821700728992534879576590147423382955532615328238594534881063313279929221588965339269853914812790165270096498678312748150797931750440562850060139874298606174361833559457771645282925005544565045685955736893189890954840906672215110887029784342646567930482043346992700375524362592307322508453474092933912501558007017822909601198591870041575481292456184221020815476145493085145912625068515070288087833270927345210753649800250198175822228700049640712914011923429644236514580566349974393532558567410730867052574909898051852124588760714589117186022835291559960804753179899719040375678366928383429953289548628080235701636984847000304664466156201290376539430494503439249851570466663831449258802366243591378081487254818382151863804142104867943201527570359610901239520656854704807602924436111958170869901232388437596705288229939103350533057213489953847697667996693791433499439398377411460191748934309727512985101305939918976705290502407928695913546429790422506968676902804099012222485866704278663450483699549785230354117771234692779381577625405207839111120615226353801794977658675719685171175551205823551935966938162006058571502502312166314719376350227587241326362323371618936237467265320071643218322210378574375713599360685209562594774078773650963842386528514802207289922728407748129355947169956991555775118589606439066702531306299054908777269134024266525541011015175212962273839957075741982209065784194737159460440595321901391079787865321252897466358611318866226986924640108616849455276610003586264632173500662551089663935887585558140579114404746638372028515902683051972896988436666344389340386150457753710655108275085958086065834843872687620994093941369454052336304499552673512744883418606449265159028239182163808627905501575894206696643952049130859754136899788524969361215814091596285833123232965401160326501113009433070438529577144650331711204350871588674097303116841612876147177799270021127196241928689875568666870328534783249451937487360377343233652279633496044116006728744831609239845945873319540922189264486401214700043752076170523777570308473666184146938832910280330083245272740594332456748045948683691067208446223220123136169642717530403615923693830177264383560786430602474162401790620342939215145509741821986548728829735861569010422769928899280647534142808853630005225007985327722337556343531354206344091540870268568839838700174390578659984721663655551938749427117315341869877938805916103056535925634991491377825748885945291310115958968999718659198712986351683736287777975650086436060358012519016333227031792400388600259267590920018988175648781622080105622523132539762101885682722234844671850002868769571230584457719120798043466484422963398963764081112752067391159286633280367863863159790601514943503822652423894260136977736407731025653043716426162680648450592050167380887593625085365916155325116644684984987914148369854843493733657225277411877461293702880073585180696892354936267338440121614924606257197997672590542335469890893537988566575217533950210735079648178176686307721728966860181551311155752101995698690593084296165800469153467722741615159568158664870322976192435815880371795754845526638028059548011769462903855109364246944513967056767514033532487172118022261231091676687070577719947605250821568362357470540540151728029322259740334913084664895117547303146832738795631851675280745221098535929154002627124260960628064467159883156045269102991050085971041773158691792395979440371328347195306035877325696520702115250470911781342563202270072919744652909190805865257183319745253901764566996449727975790575690271254492871598696857581717023356529996215485075349976735663062747320522931524502110768799393084172638728254800204116739803984185570438890952986222112815719789555332876935419054502287624011101207099102592181154929647962945940515638392614551711072879141175679682849536001274315911083001367720855112887216286842928644643744776641153170320628011671067624656476127864007571820587406173139151133134811765128434122044049110326494869452545289093023929218629495879618939900957119413287073236564498567901149386987913202559458463754476774488109152544674356226288688380765790258694564054077045962722693239217174387341637879429458416403356806109384044599713857990508944415659537461373980918015944689120991128215609565413824994342088183290675952236797280940479469003481350956023150772281540675292964621397590811705720415106291276893347283409344295648475814685111484113424230810143282897985126016657298335385475528585031177852778315259325288915448270406231635612869767837371586430306416166684332958452374437372675272565697291778375821094042242009154987783282388672212469144448532551922351769592714029098068756945522204236407148742291072444265953284277088306121187501503833785161567527411380014771233648245486555006773467491983030464634972350313547474337529697285386499335085680307740783102981945391201316721740525036402558731288814530908332010373267470815802599375937416435247229277652286402535462980239803930238476229080212786533752859681191072117758195620881971810685619453163452751045008374687432380359118679267959601032926292261413921931812061422236386603789508722691994439765257280415244984151400944697549674136116745028392457511117656120954054791862218036076884658469354094180014726191801440480319298030025876132398614167252963837169409769674001994425783778730517408682043508664699442548214575288191280959587418475072134400593427443658301772154333084187681322656054809238072335973529025427425556612716024689781709014724957750400942516611052191475810252122373349405088825046471964767939763388452631057641122457581015285722877079602934652358211757543300166383792509940616531567416611162888225309701821813136295034606807955190181874511704351687661126842563804307331367875939980659508533878362609307418689587735148620342739180431116600383331584396891153122284405747221138084920261380888068690189801404191556312587641595985098198062781659569457616784457522109565319713392643113986968555375076308717278862144600888928815986744157260189282841575696537104489661789127969282113651778033171554775992158504868718822102512425435534748807649777294775324577142427648492764628896837087704269901352163211430874159179980613186300170577041061937036433331885032226497926269554186666232817658602472775320196048910851670752957430808698063491527313722486741320888804771944384163540094168710046935095711868016800551368491477070796585097025041258516457468624496467500102517589163005023297288896988415734006853905073896204941000705351658290112180172135411836206884070350006857245276213098465851455018175905273128442615897401310539976574067278241888829975721418783883001754312443840054618847237623966400068377945126052353855666652554231366834431023326033537583352193439296964639647792737146709493728902742289472143771599574181379607251490573793209364087622113604454608397688099939547971491842911976032133018074637310062250846768375265231608037545010608420394742094902395199316811821788951490066370458930887344741109610784256195277264164582428593811402910781178667231523182419486049931316487467191981752826901547375505647717400662859741332334986013148527664557841983386378364275840795881899930262589526354108350278290263005442436268880867571210325872648230261306418571406114877547324386917270553545874920184609766951012674964720004690598479383332429584298565492278714611095806125307617105742000849762307427549232812263564870062709801149811926127467969194556623883941513660757498437983230815915742598290104774933221787903845941658392737269362322823944221686840566740784705413376441883734654908627237439693711082248569512653541169408675538658040110038951301606806451035798910131143770835409212750115702637515623654333939842496182804213279677845843024086208016044471198902164251363236426951322992211348100035468585790788427881102843176270213662136348379651830530287706983633481045131040112560333875464811397304515139323177306312840195255817816539233095272804986448408082204458703326535422164129554026258336640433861659666703782919060170873687127330377489478228198756353925090994178289084465866278181833400982899762603335617643094932277922092970174010278071781917047435921663687347960898688844515763628298022152931334864115874826961894771872976618418638777494303772032806203231627318544145386850885375194569572133473846099615284864217622711286717691085829244014045420568410270914267832617063319151752727728379732646261122298887184728232712611307224426856097925538824577031441394603712826452366406659342080642011184430575248896441015225022896912252355298960908928551683673182233873710829484931698807303037580632087620669999067048888037387630517337813963937832900808408232863588188105891807452234425654065328747103343912832051754099754606843023041258149810748069934329835668540774528528469954819421230618874967085806261398011408498645860552547811024284010729701079788275102189002945959263991689633994131926854388871765324106777816048715212541905079684582930805523162190377005611868762858441379653022594567562662316083912528928507922150168942252658656702848595946252009287216210716728478347884969994336978806435364027685701030298723186668061634525149149125959384463674331400886620138539707174496335015241709443945231588315310949734008673691881307827999134684544605050167336261759040116294245845802503425893434590212205977421274652628863763031745623757291606706270100628749980229307826681866906270007646435125255389059059303975442147203638440584349161407684467909944527888023890689539002704552837632591703503951331541170424806671592312839516032932476266113546447492960820074140896200446871794223704229015241236756777480112838657771451592824864625309830510994829706253847072122743009082198528304306435545337814908154282777412109809462921189973997660146494635142978934180281919739347337230737620688413611251370510123075129563408590191472745960793181731812724761046151945266289215761174373932862010390666522832513367214447761035416686157770789164969311274685932301473837796576394464933333983441750812245499554026056974299843446148742426136169321929260368239169924087961807214134113855523366164483956220056840540273274429837109425305105883216996126820708994737116744895555192167435469151090229710873285101029790437153941344044023809852694143777392157367401652793763434713727385624401475180136204355579347051455153551820141973308336763970849374309014497816362855492502979318008637359864357419391330581547049677498699111077298162565996382634249042779089485253118402560225838511876379522451119711502223807808077501058616576986665914398556783444001879764539795303226712212271759471866622485434566542078608243605820147493287547340031474199039612766843691294774876634066481547587431121827325624889395505779130104194628998947243928707384229942048851593010339198977827432634669883794189713335028420489325085194621851604813697101427667736248351012276467067201571999820351942201472102568428428203080854016920441003835867072153146038364489484103103708408765989985387569557797401692797208060637895797885943836689247627026468784242126877307365066714693095716227020853685148453646873119661949694059448897483245705901324625553612398992578861392180480598224287270649510927740965746327500050902338142625447314439164156033099691373036044235606235408010475078728736978707365640703766609865801915857933727981791524291311630891913138759345521138219353020019152214710362047969955165402633566000725676215185927308372211014117541085968864424981652966696580788597242650240829545187294201841750898065546008676475200832646379758873077487198384786424534530316249216979749799190206373566663527950365123300817713242112809972931968282663232670928529577070423926087413988522632938285149794700660960952056782742089422190709482770070615054678977823412539947186436589279096525843963144260759338963193717159130687997960813392837658437136968879590463859463716198296937902308085697685591681554394958924959190322987657498236299328203729391404059802554739726937698872979298858896998372758675253583139458931472359083131408221406660434457009648627230013898072550113871070917896948594120346489232476206527541635747535027363422102744330447917231524564015932968573759399361431034237240641426959211470928708462919599514426965799048082098032793075939949326874253456388559500771845553803558393072961904151528360608264783066465781371720048336825517739566151614204492909760656870085437535220203898284725837429133347934603098383146628414275096084063529769293685117606814445683592944339214127334917219712528261528634947608803532648133911882400048169740445442548901148798153423264431612803236744233553116862297863150540091207567530583821595303968147615151438774400434168947168702142935216156844502103228055590792375403997279386453302922791343306221684132714200061804490061065123549277347592836543736464503518960321759187125165356837811929687104343357164973701983987317329256658458387067185512666292152762424557024965608147864677816958303430035630865921342965311643109598176305050480559531052659376537993781470016643550039730823117019853714632404765942457622329814515709294593567921088630704833684299720708861333028231777550902794295244280219629420959976892240065184334436250004481347789825922273927745140621104614194347894452309272448748739156687048562701634890818913328440948677523435699664457882296650771192168020425245762563249944502667895838997141124248489299006418769647782572805890220154102211489793457872365373726395409990420989344618560538611787512781253596500125245332540361438708454506424026333552745141257085181071773865437055934171354366096494568011962029649796146190874184798211649306527180616363141590432510637701213608521312891887975427962060161077195656862089860611775864175452632345023805742398575822697288102621231665513657263682817131849189106835963145619697415882791320957331400790094399586655152034617783989905461321894125347896150772418587794898673113231593193401749059986057146646655171861458309039087218139226944147577927752014297861060975466896331538804264504638903579436676779643064620803255956214367680865854206689372089760420350939725354901387867428408591592062007509070875613773832573551296024534422544882901259725547357123207398183721995531217564007559923498768497386966179920369962198048101671773434890036287661112050177307447886268841872771744212574622513200404124860352311027635634214755097499594819645000011303986964514843354974097915483251571467183634883899029712819612683089325793150142266671603834335485834709181048908274091338854934813948562835459490537425787524943498966866480777150466703484822980620105231661272347975457120980068017761208698744929306225716617311862263761779428305143182217148474070361837207894779924351215451164971181112556072589923379700272767616829072739401689360945504770380048021956212726013034291580594082807708891873563821055884071792198092280050077837039791454891063127037884045125052828110819942562342581324181077997704274673150492233862699158019211155909316251618971600510094739278966685102520955565210208264339119561895353338752318577206467345909640205236083263747705826995410248164880762779015995477640721543684566212535800282179058010854625300338021820298066867461292501654953056990913805851525677692562585059492426826469100913402857975852837768947669746215377387511600964887461459862721867399152020448451572967412034913945157114232461989995456689324611994878667716085057397521790297530098568110415549452542043416897558546453896541278337194502548202857367876915053865246078050967001657793922252706784733887097442992116599238813379765294126926227245971908957018582462161803333113208358172928667793104014059876044359770840366670782800780330956328342666634611111577194459263832451467914644127311765079147805883528343893720511502384663919721179695609287577184789699280154451596537158019196592643177309523092090891944712427980439350200490987070389426676963748096075539604733591262693733170465732650326660120084943429891506469546646075019694931219851410813540005806023385296223630239186937092021269077729561666061499104883468047696712147573112246066508768691758067335625666163371826928528996877831061388555575000770651412132739072564137962034770831067529326536088763315657307341260892978132591406166616087176917531710646521753359088398107337151102244666549305264844492655105123242256590096424381135134239317966332474661579601066020041847288489050733055064327984702109665753280516132334757168451651981542544542508149568055905740558758426944008408704422428469286692642647511960903368688810840902711337866244769297391685327566494809264591584224253846199462869530630337986640117840629381751157841910540180794091349093544612706585413912285717647475537113268145283690382756667852899418205806339206686346295395285517169578893150731837619020512808858949739954284047415347836079599191479969262341078442042481485712544154571140814029860705482378473205740706536832813844555459819713362770936536064400151901926391873826723112030251375696438340809740914587097733459256075608783895446096278327199599397914917110813295772351330449342946891365555833258206453310716349844491544794215513181518298208125508478909726907366229446418679553832801451006344394662133139039690040884228829700742504197100027221010364406739492161659747582058704970724615782966292818495737302747230755360270469593389804039567456019170717727655096216759608364750526388140526350553610992550532504021543904851278879584484631710982225400989355920298558532400874160285830999531451021741302759823798297001892917683548766474720328330578025518965241322955502798997326259095209149278602371479566322138676790916712342049167737739578821899226564209679758913829921348765005191609567769241824466334251486390059297949734770833410677630890136571793567973963217525340120260041008090174286525851769707288966671958074150410833361144931200926350837815825992819184362653866049162039389826396075146171889888351574232651075015474343673475362803744689882091789934107230369933741470432177826296317672772788692921084182271669818969783931313325905267807588838583359815818600483546539221399029476960479594423817598825289269024650680431949738177474994923910791097279990741975504845947220803768532316178682591164507082971974434076641339460387131556625959248809017654882268104697182090310751447629252766249841506395078226425853860222765565012766253317817301341038796442985024132160602960641435408012666028861548867036903466544118466898085137203217322761379344547336409713701437063188449496244521313018993250959423302172369362913784707239411146532204487685561003734283487060398093368465847936208472099642651579169998407391131786413496831402268481774995096193313963305561168084392086063508458193291622118703065408362656688804293350455189895548152415774405605708921434099701391025998983156493428995432490339959635878593507472390792551874395669128168233488538128400169623086344188839449731996104664216839288309283050009133674784240047124254638883640596497525347833453445132163643590264753787798370683810614618697800721605469366881892641636444621042687235555588257290536539946997908404567529029418595668720709113272554544347359171151272217371246814904787365887410789352398578191006334680176866160666664671054624989320591390524616713192594891478018341212704287880741817547031462662403072065392448657624772784709926897770812827053434881520449226082628731652080459232329152931576571972740184586237686667714343458689539714758676787020531835358128171491418846999944097113466530611981498545034477275229729406628997694033169839588619773473931846065968304482243949100058276869073260162075157260115451503359107915287290454534231879891431311312251735570646404847584611683879062439958155650087348997001397799769464267084072276244086991731325872233301272762147253424162941367456336109084157425621388443410663845605478191135217356720306435296074341476929702396849235805760589852907024589217027469892587850319867661962352399559478810681222231140332520051800381027104559649008569052382143925826482621089564247358273416500625346113417309415061992309573917063532630554891387378516634393828813626651916611541694575067279336391171776092204322532807343654203893768009213535584637830069049306085888509375742592378417684209234936280829017441660828335482129722219198009121240574956534547000700071214984173190530978085910555527753375315245788500095837724249012066284523911141553632458452518813801513636888509377138044674741380117816904403063454628986220231151285818166612212382814973641635864578969196315202177677092008043683804699146708013154783633545125751900873798722232537277553648738504776866904046212701729099370535666277946084670774862305971943380230296592474287557758066140865082731167667869877988934882428061014875700698504181286079917822669548802659360538089427530833245810161841114784652267676968226690941409977552929428501697701016925808010606943153603372652855660850545879495523964147602130041929088286483491609603944989022835482068672434881224402668018963116114426072991426366556777517213767541923336524802176367696404873640464019039911936467303393982766796819586950750510294774637376407603273893983173901903403248907561372510922398309024288181858567711979759276373916437424368614411811230810700937975444836364553371539965598081254219309622106981522865884413480555700601578588703963582110233116234112141573911595087081009813412676191496536495943389294133963118781551498069589517582745190216012830112798001417850640202713170814535400094755280485394706331851722418826856602300550649957685094084043199229231212901513008843681992694402536861683204461564345833214646871563949476210971180780168327113729555990032243723564384877894686440887691418988869260201938571442884221528773322270408031668750733316328587916821039375201346770929907718479966258654732159425832900201167552621359543505443301687558420945993315599978400901905530198120890952255830279610891100138978582011281976273181618856980080824160142132060891739621929829455174517072812394580545661524057623804123789970065317347381254060257891109167720084327878663166620077254160963646722007138277201283163161298942814328199595274085321041122575869659901211971233100834645584251052461913006666644234449653124775947337789014707935369094047705545158454933727252501519073835898006399146122537473004121171865724125560148795840045375315653275071708055654081465601778663486524821744244957238657914897477223666652734535398899432555603891532351365187533528753191167235914558239378052653793428782232777905997332726829554928409683670529157523485547649024561259034592326357097786999295923018855014256258750962174635700900263127875984597468180862535619959178181323463099476119695010924514833667854164022294375157901654576585503882064986373911892064056995331712081253159210240003798164306328776885463653850636718227610884393733130546927258295134020156422926296059712648622734909554479912310901515912606050985332889473953486088724211180865844129526677118900285874685986355408937710437195421554093765145444347576806933634032911364386735071587172052313476230838628458525443280196246224723490992167689337545265946761868954877444358399709541202735743369888440448135149609146707321745480211432026215003216222172341184740238441560383705343250652425872410281223695748236397224177788425908098006805396848031698337881438631708365701309657784016674467647825552602511188528837931206643958490256348224834087831819264997701016146919363730108691653235094339615809961173655273267455543674887206564303155420618232349482148510261433417848503375907451458712277703023868982652261456123236970418155985411320502342606913832615041645720132773596945605523333590756616614643775081036470036347397993681138975247528177452889297859552791209019568088502613755755150332871698578962839085378159622595441335380057435884541821489891358782963104214727128214528490202436784789623122605245605957673542228479094198773498079093128705964967588905933482576460192721623218989406812398103831329488955259012445612793800827190357428065037650832331108935314202710709249899989376317290313839805171259704849534345069338422253791960625827780203307008349469469388574533251382563390666261547690468399522305050220041811069748346807527710160147031878341523376888109716513291912295134151403108587239683290803555582287907211580575085300469635639298047621270993127644437083870494020994790790378005772425935002036153682864591759223729901115771794279920266215887249240722040140927648611492173081581103135345080005588085592432715690357185899053817829075327069172529313164855682507233639062415926819848656641319002865728636133220226615689343453008242609488747553826831392809001945753715824059456764421421760363614041664587420878634096300487938251537241991011661384258607076940182034624154978992807744019246317052903035615195838939997192312839569520399250065948099944517339831341310550956011507456240834730671757967536491825622562203264600127292042199942171102427278171619298072163789768937343093017844857015338801019604188143990155707827041957801828938908326490937780605687504213311473884610191009150054242992189938747348634763435254108823780620199328278331098628327099598904846398746510561811872452690749275566973211839374635694230297158592453197266448024661332357578428195182494445380874474344589927921561791571189832524373543596806271006510437202154545901421263086610429097914922467798037830232275053888512483935144814966694519472650756666697530848759277254054668092070974424968776979521392771568775301923443180145822103248456851358573504242162860459440129199791157270873023057350624877056106529493188534748454017430185906096523221833659794261666196315805707122208054602355099340185549295316196064605458409294034923123176137979837141176238740936286857783369776199902459654321425972263436468000925057788572565743851645304997221924033154854691687372895078411149780722960045521436110584228037020485719867066821528989860212561007530314580413975502846334584611155282361413169538150163923230646425482456655414468813116573400545244915850390481226778110843867445175558885624503475596667314859304815445848906656147627184018325675109097598210380612355840991416273694351757379907368472094351490236471744253850712275852257650554062062561426694684874133940604307537334306220344520641492252098465566262186116405905617750779731179250372669678257448916217933105874316910578295415367558894417641295438031610205445545311322082629213593991483108704673570782564738462872665625756390399098496624694655374115888575909240583447034793392759662870693914457575007930007878531158192263451357269562795356776756895764499672032797665722853630322704811673473688317978960127705905024982041256087850445067850668194273275749756682111450128047041475889170489097824199164420780820014245071398246751962624606607678088656878073662127709131445860227979753534003953234006974273055921608749444003383466130780393793628292296761534432490402567299657893004360811533538223092576915311554537199056793486502227418965684857847785055252158960132744408362726019993066508770654851535963488565882674841007447540472969232625086973049435728424314787595859976240057316508482465683062381804105971919802253827400374090363698446275281099760495443488412407149991872943925397581700896575734085691393286273947334607856098335490890168226801995940161469060548435363053222591228052790842395687350056916815809083607397941315130735844116042244233946982125278620973628464294327994993116018108553887079466750009664409356994175150137195072950988281542110532647686025745979051265877360878878371055256466844017391314652024749810183836938991956656427777050776201130621270325052086919194650745987350151188573688732496248609920311917833853608974329009626746903338630945301002298717680586123902209237022318247615952156887612219987180212183113514561045103340554284277904489226857246810052227365103418302304636535985270159672933397844282381270863630475892131847094627309537616211494535064481335846286597917803543754000716257360315037485125938763671568399134656358606389247170789718133996989842970975294925211449656127593308571163309364427591754429746126864935470394547339216597647540518884037779684665506420449279407035964669857108950532030605876331666667489209068159129633495180244880376603715876066857352702643387770654236204834928923202563176126501027427950915723075417138342330112205035135943529516112679382815248831215292809841869893165067208531939464834574204954106164113968367457324592885578002652509018433464026080603234577961083298315942028183493390267187409698218837271114178317352476837713845756346804790420929134822862335380985253721467729938009961937984819162868974668992875524926048516820935850496164109198906372113851206825945506873820459272256967859106717053973218807357192313766729601432782487585971707391972440020272344926251661764920244415751467356009193431866536611642163728433965382295373924132868321919969626995164683786191013118734997620117499457471056173915088362721105649064298783705139139966716691757619826080317644438913083637989283175956980357972301648885755133835392372955022018587134415330569165918096171492251174759441853786629874398359968416986901245463049969866945692772032602974774120440349967892156101555232866726124837724165506357318379266282895749091408312913887001954757178718568691319515693749446623313017055680893086175004881754168337676577004278839395973049254074610913140443350823607994882361635456436413464937686314889175811474730533600549082216126592370241130190908932907471021720728915941158362340740772696046995005638945908275452493733498479867143406957851248259846376547919772329082067500256741529437949646619815578123955731152955608401774109031082534829639012322501495327232836465490638557578990651675513650184602951674041549758968803184837674598730882954251556110183704341759583613571059281759754905878380412064852893390075953075998318854228921051496847990110013478841022012160590274247189972168560898792757269832601577101789038957187935258010849056584813857075091405041943571955616215220382509724563540185777161244443964425709590936500793702061128085857645212756196763549710992711731144832418866195176954383701642233848443246240159643662191371199697914054676542588491684329550212546346877038017638470228368148259000026202922742621789684868447916373068152623817151062880407308969552258882274924404710113797561412324877149117316588403339503830625701226013595828405516868516636980526850936497619124294004861092253393223316033779575625963678456316794290641387236877011266141628467075276454092919188791933389041548043335335204862920190490569979134276200804068916305881645762798594859944780973753666517705646132211818835596844798258569965988418950624825378837826000984752773111950365863761674346967934676790590932857644425153822769427447004999561195726454967929842125856306720603368906770031210373859445635730171825738061394316358436004135597703122062102882024846972806201936769153408493661506694001372855971901881854208522338378940941250568072152847101900777602985172833732156201940435292528492514364127422102111998951513826431158121532763306219594684150137488850546838076243302584585327277153978423567430488308535564707809218494160300668108150688925382921073744334632664448386887593319577955649618089174697381860747186876979001783270011588307005236026480706177650353215727235206146171082546067608234544911076482032199788217444707256824936544384837859492988112225931674779830843205709572809009882956584633834693886138580879507574895821588032581326763849379186211190084840840243798401648177095504114698004733297881716890899797582320109006702708746286785589747664368916349130723824101624190207431026079958305785463882464197112806936746790246789507721482641466243681195207782256463843794025394792491521038818184866045658156001116748944691385391490924707143538167827950164991578563436619560850012223985901642249661794687105735268777199259967139843759767692282046322281434816975039119756487386428154237264170753860424913869492300727575323266500198192134250931577911134114932389402572375334039914992613620502228237440552848995563688681719296580742029678997496095856994162588239157991655405524223436934673911508055542176078858614471118466132518093639742809110454274647707618149297126377234058832437584917767690819024487992862351791972757765888558786998737632058661843194195633405052617892389009934707912100077769121872489973766198247002642493498082937033742256199737961278144392135779157748214581590137321204183328539907491859867265819971395932168870939843853636120319463320380378872533635804917743605136144956569951018158702342895778091757021859208165399416494754019163395573825132270160452301178585137732524170005468856483666833782600472351785165297743756454056668043756500275023070953612971681564116735015045066761477606256835603877747568751680811963544116828803540526190404662747511217688063012307423791931700699739673991677151798643230361577209381600132148713866407123550156810912105087344647326985933438355590447177069445828101592935290199518220490455342891840259577740405265605939388717873870908827568229217630848942358295455728983259318434338268475092332523000712099526785723873025424587594091245447591890956339334307482753069910639355352192863020710547429387676525368753015612455381899606963125109699093286034928111446682128686874251407159482412472269635847215078205846619635891500801952189642823472520931552332066425418990608573944561537598273317759690038670373314822369699633244664506922382698966322215890120202215551563454738476875186866875264032784392126631191552535101745512387261130667126807435359005121315167386033141572729016988853354488187499810346268223211564996243376112459253177077918873767193032225511019070730653614646858854647488299406993915384879829605488043670257224023648610545934952421749084363677342479509565634209454820994365989849156696551853576578277821773876136285675937241886884176882248969793778677626192402700593299004876852597968783423839510151458072856626584751056991392954959707015999995040426924002679216434593126450528842715620735929564183530191239603619413117570372514401847397635199598497743355371914453945022588255739581457060886931196855813711745427205701653089093457106242239498472345064894439299499009816009167992710324141847819271289368911392095129092227690129643580995014390337266320954008903931529596656810750148778590706514169431374785843932260213274602536675940238844016116009018413116717677276057805730347915275156752247511400090458810035360201193284647868755477355801842863898016821645707050042009786725821535620457530139690485779194365516208653966336690221335854074554320475701707830259092426208683139005120648631514578122435563681544808105970530181969659347095931407298181126687953562471527291079830932808382612907769154113122289195940608424556524693676628846532837044866609194713473795231474225181752077078807056055211901488705646961203231172948031485085143619270529005247394620280679347020873861945702802230823244976092852635322027953201192433843162977745312502405836512164456097694917721637190629836389525279079803660551513739909070647821468206456447723836176127589588486029028343892743680558227053410452564495400879680193092436110094717654826223361801457017862321719172242578743144458369860732171033835665260459655964670892864441946401843212993851058127706694955595811795231588372873474791063052613252066377231794177722228860808339533838033367378584155134092747819345083966852770363586291319693718758316149497186647441647533938322154487590141284989895701947391195251392484206094490114446737945232452281204037012285714240946996320618955717167740877679360166470246523752176590479105231057573035908474560415333300302766521354904239799149019306232826246215834069749409398666010084977176788579710663123559465000947013810614153671838595591661994600446313857875346531331567201935396710923455080880159711581812223618909298645042237432865830718704722291321000218881902271621237243423803477301468312701432673583235081817008694303836572732322992756564073755492314626832407037679827469051502817605314536237518694827762019852946944475936534672577594239730453438017074496936027983511702483358188138735921998319374003588735032198504667214440193264960765958467474257552224054524018573532605553080653334026300361123650073001729146438390932797016519748064787986104988060616146282023591504032934857281145944760984582379719940559791029681002801753198365493986695764281009421735197448535615865940368673983589459584203006454333246323181806770222757854193830196333513030779337147315815206771329112821899015397392206686151081854754201198732417943324837462631565678378251650828835968916098416895113588607595560888503311728957537639948875228854573950140011217380241023394650068247639802010356777470535483784164065978289114272872352894958040544277191010893272837143355143266840761804614674480277101463222051741135962557084956780294783345757513728186698620560643422344697825598119330492142202063669023715690944223293590582036635856546496133224027975970815873199237036459289481948473225185666788748083860228344517279337205115411694400455492521245044891251340049485651271029081325004029858032167331510778015095365235508740224651786487302924492600722810567444386549059022784097685318257453139289185974723662094577453020155884155207243355595569976395112896732952225008258819763006218709833076701755917443291249935487627231327537617868570365229547090449343984494552618361668304338048931868652658947393174584216576229479418001684442516954678308843619667189594313729137053615253369979955996308425934303393577527102417882839644570695694277546477388896167125870476944301046517099351953994699971247635498470498601140315515589505964447367824586724577707384149108654685422353180589653852297663577224295712416953370856279200783230177753086535844432747684567447141197559147266049414163357865769472439065619883379045198780879030937780598758637706920355885857740468496187733720882082051937633007836256945586026844423797194879961495434975123545397139413075833359129121262059362581424515801955235126002147262560217119384873828805152177275110512437068946621181460550099370338296446190947350603889100207799438943320677253291078064303529732533315726841900284652734258532261386842830578501975511589684722532486299951638165459008134229326212877349829437643150021574131244973998832229933902315342663025608502258070547403354706525943161589987808987904577946061241264835630736032880827847737197038703789936737679947021882296508067700203445478699289607936630785524903044458168243353004763596427081357648126205354908654292495671120633513287361807598875719779893596269610778368973371020567101763037957786079501081062638407600829370456165742375519021715047473809353927332311806672209932476423936984331452433154033844146840493813649000120466187484778289118979686790930973760570260010064802956628624252855583989637739063921073788413696952929158259494880599637101343469483606671017007895725706368063704856063470268401891684619483519833487120846118406627111006456559978871041746079351635049769206219234875905933988865211425493350420640981639156288154681920207703683566072453943909865922047001254858163495764083994979310451283190801426914427049566292404986245735477635815714975223834860659962309014514526995231859105732939284896757433087033737455470972209438534248675619987067843188659921324629175665075511757167296915851661994566230989986665630462482643806421696961162769229278981387626233593376312261362469314219092718363087067422833902604560376909967579891050307367183352495060340252628526292709481294237669821951400866654793363502267366575084694647984720716507055884490822106782691477861462488308843634680342527895834764136828391771881225777460513737007690393789213859317161183072097537410092166815555952354292635858209656519967741486991116570757179217807295760465211287960757277868165182263242768360328372796179862965704960991517149902668895241357258225429629044261175564232033086672376039467626575373766211931931513310221830647754627941772697419827861733414304460181565937162281002364975927868694219729524168372136656878395691822258207961443972858663362699769910383946943912583940206658913681720573386084934687739751540339684188208017720130811258531615596469386297574259683614585148649533810660344816705044191455939346489180665176050368235330267831180234761447002057914770014384671205034530229418771175726779712877110961130329571499567316274082029356903256740661188261000991128727003116155558713515017688298867009703020172070727196194933931254499647451762516754582900314723810586994497781869436789678592018205621166010652462282447580548781008967653003113448807916394245872572221060642042020091197222618121531195397884751665264643646353723469019934403626559788606325300418995067005463094122763319564974942364966577765402599672974693101626951024204166730901059645475675548441792840403918173014376938001607270828448903905597196884236815325068460320583074691142710711158576101514695905403803432057612193196987068212428634620936291327073432362792958237574206802693370205794612892671283614203148933330213378129593846471671348041628818177172037640071520199823974866417227298314091595215735427911184623789934097697044152719958161638113528767002133452313662405678433482606734563911105441510818989013819565811390348838701373522654221871393410393384968619253045130409930013937332142595398123661996523894829035357703205388339009690404368650525054147251805262030724173298280660151355552540700336335309927787069374661320588366477175467896036844321757085651592573504696907774912491306090298839085424465864661024881478887359081536287742769563414972379413220318783296247031621650679357158761212812506593894930977534589005063642520885438554634543697842328350036583162803411228425634894139825396560386723799393600854131251251453293776811116023601736446343899448311353808506850188950150055369566299133675945038141903862372864211626249347291302655555067026761707054682005229542207214491837518550131011908414655922438976014167340275152009525667306406168552509934977583728048948686656260357576276829046313270639678154540996532862008140756322806439274693666528214983993640416372645183695486400014607642541597662850732820483138377478510737248523991083718738947766581489403206810851096324972898226546737288759071157965029441010746799632729719388930676209841717533970227230135782511251400755239524668740192361817475438599272156647623084435836765760163677171599931600069246977620425072904438664707401654681169352446728163553890976262381190757762507222063335201057901726277648204414113890093447811423342943720123468647181881761215764679598117743574043478680941556330983208738076246086628625428829694295239911453385299448415254205418544012638390124385150360122553713246390936849413846000603014838204126246326874163189547452227724762070969389388819195353241718736280188739795229519375457951680740804026628188031099876267502671077616109964791229243997609733824723738295190615081301675641715404147370775607339524687902131925376672577381111419136085110222870640601757448040341512588956892737333099329076820417736069606506882898097699509823021126722252759966077422601786206066981733012163565725058216235087785487346072472852505777959450566074328202460763962743066928920337825769430725891775025813643511481787884668799841199894316498709759434520152617646685582475313859889926812628443761321846286060973934827294027825549831092013414441943472941909511441704822761837056039042534516568730236066955721888470037106420267502906831446880027464668895906106145282624760835174621031772501795879681468778306975071745039454241164567364881776086054004775155199481125467615489191110613638517699239393254787135238813778260062805632010112649921934053162607040797323283009728966908177805994456723691915409602473138685429437251648422189830517042616901553087140153652602399294452823860846829225546476962648275398574387284178820267604544649951674362213735864502498967294123759739792588094484356325744439274533084268186468460681059894561715790572597039697553050485917981687351785349513727867895389979869627525713440705676597634884641259843008659045083318750610085882199973837216412939608641770285161950370518301484766859562587812333993919976404415358849579797506071305601282098668866648768464760476097634725346332365658899965361275321468227469961131324837473205014022815290246431542649427845975796520164594168827993931957611244176426742871459504345485524054406228716934803601984990350406699623760619838285515962575002502059160600083866225368309274970159908013916033917386704238888940852964668864625140641748055626081743364163978618383943567387318424845109298267887824061707913459979705934581867316737637662016480088002590585882454602629075914788661698053378293762190858621611309867943089688050033763600947358362170511538046319177491544298834759363981209045250336505949489762758494956065082248890713822824292554627216365279456110412343439252973555188927497823149328829289658115097229435442429872944750515012195146531269519764691744426787424012900392372516757350931144964906670826542124146481626207450563716370998284667905848820271221629751226122134649714218010910052690787806586384045514820826227539408488424086353028556632599869890914596036765466951589412307170167055391886452414206504735582655492632913659952908617051593559537382602743820863153836325817156915016235362829314089247485179508014537483298822123964091554073949136272054324505331287477885411017882731765955619431903694407461142202423678246279205999053962884618116034847813401999778209147307873638953564936842131615177637745528747338361292716060106228374292599865430996049046138346891934735088194830514140969704504727297307523946844191750717741504144079840279456103362236086897243537688408238010068616670204254535658937527736904422495577033069307363753223749708128856200328115386602279319885984172489865866435982357418874886539203734236515020919922958531658456589987658215233691949356762056835643195238078805721245874254875640187407623182294618903794549188430066885685310223874406399422801163380461470346661517062004804947536978557312491837966464852977231561113542712158503325519178865087237872346885601017993406267003016523022072020051978273445996549219990834778644415500084762285113075660471132358836509427967739113522073233600327817062588447105670384429006552207849730040255486052679466332660970092511580178997238689393703721114626427855152128917141277469276658137088617520277280172951464895412654773545338429142112375816628734117940361702948072658836843833514884792964038269892972964870339532279104064704005529481714018615162594058772004333362732784402819179359369242724541538535524291023557643723967630635503081830468827478138150154740006072555707633217990120348433956969429083133025799562603477820968096368432966762649559176681162202563038921605410648588866736943678868598440842602812987275789352156608652193501663167622959242432510517571904192688544040440105811514348449457096692322462348254074307229916591254574090320933521079185000182919695629534597431639500266266608701572721026782387849767331303052581708290640960547768726691638443938168044563824926279686352475568751685253734991707105661217928593734533898029513524377426353575244195043090888846702804829445393437354107984252277336286015647465354608639357183838983764302398373733682786259100611145568756493494152715796494990945078081667548597832935351309662011996387851655432019728052426288194946387938408906500234500292213653102841461216755801571283032510486462361532298894205025896314333609404455341823129525580420520663634064351440440004506381146572429938910813849583312668769216755041177038684821876434303856511329895857538894153695116999354240609132959436528455268181295834269640849670251860858200520581595343091103672639675618746899237141657393315468891535261138907358178950158984059922168909378372935957796352259178229382306121473217693249127402376854053604068886345038025763447532875486511560985654762392387164544575626235995511493912569975532137767296756201003340971196786962357181111304958533188010529698574208669026424255415097074866736499048238252158246673475414583853645941822431032007195206963944208197640092389101897094917812294281383324948844033855634046011698405468430826130851014455569138311783940924115025772743217576476866568254278411810350318072071067259717596191943411492785166206329035845563978067936704134469941054967612911342938928003577507203063514392697302234603920702514962054436884991819599885112100687324908311770892068871362882174405880069822436331330951917245081169933889724754067404336129660062482448722069844548750149709880567874859432052469764858064443560618523775244312650915212908433474497358036993874316326690065787712803492948964486025706586530680612854145189884501012424366926571970568954793889046069656888941656095187910291352024364403674251047800728252346789362219091417231506713220443344880455561511096863430709404975945473454730982022379411426224277339370320791581743012158830467534776862136766320699389675394922903983202672056428275185190395846849809971614147574906913037483566532538488313540564524193452472684565072059697928374068431069856056196949715981192827707284756570329763000249032455857084073974567694592151873933532562252301382718732056689473364745967059650017636946676121306402395085857091072347800995272945637154649270843836637834770538644009063683135154474551207011494850375779623224850724748389117190362576302927978890895952648085882484747982233127410565918522067720516808833337292814057704329457775714274406795554806932033479144557750201683220088017273505719948168766551387550077774421866087566422379952988583180441832475109731472347578070377608549340443762002428535982185720520669466913105999194130171536827231222776626799619360955376686324088780453097640289877638855520577640965333885341978542406690504749647052948262005443875062247017224670675674612816510342925459981495082177051500620769844390888375680790921529530030603453084880251596952185537606383600619474055586366874705784797691981612368445769001652164742831424346793970376299602947774244093461819450940410761773193134915096013285159533637385298378740482726139420763862330628195149259411883568601711264918941786022728925707402328806106127657874535773695306687566561754515163652390518976058562068660635580419665626826939157210563774801633201927387902019707545819299482306996848308724421244189378889553536944302422606142608494341504201684312474643526205641238276493996997205298736881987109940029952975661432001634324388733927387489552611016075480989198886119736092990451305249257253289807097367270651242571589175584176110514292608678423957028572732180197056995029632524131704602427679938774278378936565613565538437773244140128578282931570226922836371029960691879762606607944209334156212339826063842032920221330222122505902767385352019263404004981946831220774574997955831009703639421080396410081083944802940789531564215742796046117378666573178097752575497996522168466548923841769383086091248473600459688843333972287261635907866297120238004303647237221260955836064782209559154951719367284785309753015188302280656375667511145090342168611628639001471178966731266152551800457442500558016668042513015988215403003033622133825486619302360528008502860942614276454553911817579215901326468493807350962834784537082348262523214841159263930586413127712526070740900073389915333520032821017473701929252156852521437864348928176277284781229058765582544518696858815136813427269938645366266125460937010915704631836698310249329841860335630731437322637628525840092327651548069502323614416718095014458061041358893272709742655554362365989728916161712546459268929034333519706764431207251568747429683387183756889380301227917369964195471362088030130408455659892681686507140923945196929503112950131236094877767756250486687300603520991647910400984560997981513797917013830034114348980267680279947527284936892897223082790348594124695597189140621950809698938230634255103029678755696635917313479549035592625269456028666231785625291077750438441857254227233935481697378098850710679725373669844980015531126064154626013443395632101380362309493131489109859473731198733430665552533762706550064522705769509094916670664019975654034432748997827871536570147328979534501567723173071066545522368239727002857598180583368178480353799778599959209994506266730930329285961834986870224501302338540930095374851904912598746732397906743704093688420546364507105854861355067416766773456778034993529040866967150153805287098668344796493009167385381279610217691901555390970590123804177342407697165034130082028218766950382094071197921585539336141270033522110334193105381316875576145592971835074259896884129080950504248372417881434733412774391336952699398254310468196277511393883222951413036736418084729120205456453341282563070141934086000105682508211927256341642935297421200780910948202103491657228572129663876182036859626654043808551926248701387109306881630795160410272398066990098159089098252228907611122725905790305332642736204871381407716250818387787671224095577338205954463389231970452120400415654774858654158253356647576638576151845786914525488723843620380830853489900673146495539213257448290787076013693998903549849953401129429523522474983738519854208262659105407293693494140459274828742137752234588178003146459609454646217756747480872389795049987151695167893484527307342933190973457046771135835867476044901832162963636885672123157304739782461555360925727669391130611988560129606129658112254772429081499128844820660336608199781779963184941219993068538241353223048374115283657254559277964408941531886860261034598746533848702950898161298003065091907757102907790827183093100591476624274281389462006527169593789259627573257732823652618572228207722360733946750846018687293717809593538778105290351460113096111384759930921701075207828984683345264744013916364596323503541128349912583082674369698113586014238484122961201262979595725352473608327510608307353005339282860930930048719617323726501184607908040238740424484482424241389685533633761398046936562381885033961041529542216650742580009961421935489213005780499619486342186410430964753984675890260472552243317120210582734395718188956956571764565889706770734244428175310150301581496599321467401539845149012771477842380009679085163244748001149219166357141679346544409025182192363756310387875635432186056316470522652701866937146542204472174541859941473825938209112358468379547399803138145957120481495737107265177352916991293519969626317419058901030434549836080318944006445378876026480454665665084611376791372802764717918647671545748435153715287341084102738035331030292528618756781820751850696691332681997823911368684378337417029594322546982410586076095770821000357335613060023365324245953783125860531169286848871672709532525905119792333656151616618348686472793470480177048288102040893236371443845678228385280327162721440213601664538649319178539044508264630893863444781061020861679157102242097024676746309059433148881425162105758455283456492832807474402817675336366073419217881351066193042694269341508511359458827605624457552999289901878915267313745129094410745170580467356581923292495316499526289264090722744951108108400975686263090031567541094989765564733923186314808185514746438521959514185650304523547808639762910134462949504893433636529822745056405479202677941351516869212986402856010132248835832216350572283190956847531126894133130607477533355371989494662817524395422820016023879020983789829426784223015360986803240430129134461760806951766553340084006108265801310928276203186493793888837592510465116190245342191816208391191973902814984557450700137669956630207918449401705632925389862677987573105589021542207185425460319693368511179804413029700414778061496808824783863549831745572454754216795305988097566231148467529036754685234452580111829279696050987038623450381441080672383094449135183200207245629646728371527463802716472704803792457618847156460731958912967412544403065557091161817213234240272027734638439757305921298480651707924739746545920283565567232114476070708046187590533153001477966874347645916687670399533841647889821528409664035248446953974281563205952756671608104985847034804105918605454309411056362929651887202808504441484762808611775638473643596325042946911840824282253627316061336716720640072568926930610745395280824291131033424371818970419228271731084956854566354786441845254439102329466786294163586686663282239288946276995050637062965246035543765549197562407148146898559666227117048597194539360763097660888077762899810912769423088413119055899673977258481381945320979467015514385628696555318072760201646787146521780391487355490599008013237993624863045858158991356405655112982274014155263952378012789184094155197738253213963187461529758160734968057348547855798236848317324862843633390120999834438206385680669319219982726934518139938182157786222234794910207681606634818070505469469358853892046905926019754724859740511243231551406989130244852144642105199360747271711917951642857988417897506920985894479528296610185857711284544067453623902816287845923762036057779883866694132239133760165719270277352539817958213655290746709938593506585000318180366266973256643012703135384552998096102689964464065098562121403538484615636584614855764685467191868192928671521342617662761968656009000322245559432977242151049680132069344701577057828230429642999215304806013378310559326424783030695332150742724435214818099159702885323466565200054351517262481816089797417070557237369863945058404996407012263651321955515561663784154584536745480849500459212272957941516351229296123052554472678373088154972019081730382459573966731116416728669374398924513692480445425093712749540201142953959418690403934556110766943501831176958318781187903466585899480242545047062335284875437068827340745837464394631618080641532389763013129289497544567994724548783039902280834074575130568758655859968793185776577280457573640453958743005808013765254130990201589944571888801493330371428229299913917623796409577868240872975249176258481483300905492317121880631876803649878163062650626534866094032131946731081232630061534904863849071436885656220452456476084322970847665055894118296111285109868079578871092013359991819486007067486427853557374787687671344851629853631169142086668809064073910779620268573801414622302541308704503147457518866339173341343797472905818627050281677982759787356273986916163006565035790740770687888625769705106678401443190194456977875983026972042833015495425776015820627401018884926267486583569742859871729326918467818946113679574419260343305446546777218705432866696182177022081563286628654487136555880607011578590614385247196082144901401237489687061669080731290984606424317403464680936208469716595153379832351740885650670992709889782307188742503143428055197460596896300244894985989714501118830966327291913242566313748003263723038002393186369681006789973908653006499685444397681303038401105444587071381376284754562440896826814693449033165830467112905869679654417115193097623325597408971207599040805113524285034414555904086305062119551778288756687656203209819895362562989751210152343192037151543095561975439671341802463096837179006558913332203971421095017863193182722862365358843387791692768593971019852329056661443279173214089534700100361439614700741409138299807545489495410361210523318218432529918916126134246758334175496185387841658981317983150670550425001919638942511234185130466643223813800166391325658376918424718778916880043032671014246827195750264715788436930019632040823136629267839438028105030826506678880822021708323059097995565362679642959800822342243240840835218814275634493805931595412703794027283726579689605283683544036751628964278581445963887057756667162085625094276251773912178219879044883758246385433642928676050711982445700995816030383782588007839487418513066534970798593709336002993430795532731596841056376324510107908265149519557700981931604527434565181957366568601108638622967927224442337877885372560361031909082333476125454592982097140631344624711561633395236110231023496300889972762851757400646593564353407222961964203681923409427606369165681024945076193296647645309663345439895883759215032809168223827555835545280001940588436706962476690656256390736476685292009155673916252442444417724659240481467836150527080667317327043641396404549199330374635827428543581074110477530232130891262871165776714962774914103709547797909820396980191128777085931530121559538840882080464040214452721120378112631217991067513251431493512707649916722811588570574356734675944901386345498163321761107884363899216210836700194364529790380835360793152408125988692040116684414212425731716949671171749784025642417194977416794592125756710320352075233759453333792023128250861507080845503615767243744488365294182110956073114460081797694555931257383703780232705331039645058176330995555261300279951226956830862501433627670450733232288955128034038505153907484670985104916482400430732504077053362587865183516633914712811059869620020549979551517345702729197053278652618753068244847716687333816648172334331825508084044709824069298164517764593112048482627873643821705583441298145409793991628473736585694065798807039234357300138689707513989838557398728665986553668839522322058706253533397233100899390907593341843944283720591933310086268105196392547101279683158565644286442069367476730383630418909600633372627434961340300694123024379226956333165225503128131063973743958263438045265363429696379090596751210655735778334867243260856066671122362250399957436086220018161021227084259075015196527443056357625925336093511386883835123380901036963351651994531638222804773147578322986176725806252007128938050062204434493257574750025776106215264389230613498001355135688694734543591695283376602116705724221018216310845793391237227772333955606240202879070059865612368080380134442120155587596978003327123743915075381211186111581463720281727134243119797611133260403600267556043553951470247350587600787825185159904802760322286098462096456056787698590853124529051738229665536092333618907020286569253884766052402493810336313437110862190337469922879980166868164802111595463021018189723924262720420522055525100238600866829543623340222161810352546237981495832629000738872543948410424248679672970889915426173049134567563044869130630067178533422110836912786314668613556923747371897237315438912883279662465518481051767422278907387429660757225319625166806383708968218980870275642634002064159952970318722120250495551781310693480997118719569787825809345953167352203034882390876966513486611460312343491132585088528305872863380221538254858603185916685058818980783339808692431101877240928098723400946533373600342272676767238793319005214519186184282741360087628348606550045440828519915692032629154576177731790568140540452437502974041699062806084897195563439627889870621578137472532939768112999214904046605751700962406261144461127614163022329077311584159410263448999649143049913137004391506814977400021860753873063437238619413231658342554736693335150182670184523768193669346405873892697735972931193276238821105269369280812136069131997414719012449306502785347054066700247499143210326772931958161269684026801641383228048230542623675660892843850780217895719748323022193888652922063776653596825417273526151265740573818281701050618360551423496312144035474313091753872431374523765441512241163903720400828887469655020936060968846486017346179257770909531890494357748832134242492748560097351809686520829755952532168848719575860390435771625649629948275465102335331619066226510274500206908890599631628446046717876927773851405001859809060310540745513720086744403618360877479065798536563071019416300979326014041835639479886743802042332611408998601298949907714972553676725807717747538391640037263183181782578155994348850348433197062282930709915473619011939498297939648224592567030866105128145788772136881893387574737384652742581527752289719712335827627863969244054943651782687301296416219359819682597835776382823482041993073615756907935405302216081296873052474969684960645624208588592554421663976455182862577830663961964240703627625170876070975745023860559935768908090366062097929690228065099722572242009918798468849733472207721769839453901575575385310643126372050523003772449288432624356530981015074598809403769324066449289979208928896838750955136165339984623287817515776039674428493104712687113742251236258587015226304684653767036668541486103325976560632884568622822287339112569844481559781677695265520771811812932835381804502552342420808593239122393386739511544918192029733649508387549526123291585533319743652086646102472304205818868742938378061569002940750574942921063745272619534244100405557899615960785060943498225153343950243425193423012917875753221709898327195205961624923804245561010107019590190435161486661601575723496620874758013778678732951368052176562378513624364282451281620415016352049977119034201881996402151367808521588024097373006180479027465618989603912801631970818045849287428910175213415048987748395346158185054310243705256570339271604494057005864500411409867497640910950160809919571193847838058995916345338572692932647823534144756431434862709322994812917505545834550316261946239459374726291629723717755661289064634382029490388180736799026234685905802825121254717134329836627450531503264675621073863093314026470326261779444436731860622235580276785465771811373010041418463744606371187285158543368675291865500588329082174688822403448208881766980945346881514082122755376681682128871697098930402561776857764328371201073341631807325160906830134979896820334356044086426595016532541376594467101252185139131870304793309611083689808832903983236231310102839112908521215060139531708338566522622780941154001822082219353242334328665381225479947699165331861429265000096870936755679489922010118325225223860963780814268576874919892219877290303659079371394709853291739717379171476378522786866045473145443577040534684236724096617759048482492831227697959546510693937649039490187210665465590098253210332303390143481943801967500861835716816635326972357521156847963425697680778461014066574405563963364202752944211217950153828834096339991616755563072720841298980131336289866791783907110545042307375979466445424708558276688833797186542463090766820414312163806252683085447518108866599704436824672724282981684834446274540811116156092224978777267656863119025757594236355971705840624228210548253451756512662421195639195007007257275638622963731037924426101888377657382821823855115442168925971311893222864301762219596980471520421587497721796049426256563006046091357908512342975261316049095937660911072378518922137021348696545923498265969607672254304350177026460910954202415298344113552032707331539207677207989165565937070473883739568401814294011882005266621726845274032009900359188941022176628607346625958294075695406054443682991707801344088420831687844179239788991107874889769910228602252665385714587547951534853689630044617500685112787475072030916168719586368769906913633308675180298737649315665108025729417894238592553182504198728547114676798735177746449853797290611744331502361357355303944890017971924554046173205681696223034331756813349919291180178730942977379781058469792167529586799047544783471984974075500176557407340422053777769410622695547277155500089522091629079767985709833876422157294936570256072058754452166486602807636906253492004689651160524702414376690704679774989883938702574846602716399445530978831177933327823710725369657567230208730966671132615409456253717775650731081004041043186637712912132304547522760312089552489397045438383181766448577959490290782800766440862234598371482198770939964412912634923375435813859133815349385391591956921099993623399976845422048718490859374954568196603593384334044754925243711558795017186247657437447809557271425670232347687932177411380112735441321139175917417752081742902565507652369713720155988982511515658752938398377756616847320582831360064263849471813026941076314525331227546822482644134473216466211302079973008256597874738808377700554940557914926383359112168852987315251611316006652660397800313857544576262697306097500409603526706152350343059772752879938098156001583060847281691545423205869223074790834448166971632656432815779494922959959783557934658292115885972635871407154119339564578712617865529063289468579294681679862958521557793618758567800515605660639945280978413068515787276414644772538615119895029442337810516473434160655642420190361812797366982213868931795900563858666204826133453683978344196853855413904088105493862729224421052757023726740512502176321650434513869283830229254829291788952027262341127573662190653979496977501485256243832659806496922936671375258190371295489398258733552973149233975833896751892630572118639593272574562514740258180352374343247140556562774860353050321488260429780382505945575874782716759633567997811333429625180599665694002848666604647226796309366731848824544897122157842662180697128061377895632875334952780680687162549244181786074753729670082447412746501969157903163296280822874993161911494259718925290772574179235646757816650555084916999427519833963695600059736134236212561679092483674201327563417907240126435007165698820149640010363385139769194091360646331800760368326917980145829803552390367266391595065202035677318718409909587477920619901452748367819075410535364181434673561546856856095191222013365725032696103069789767746965156762312354952292251064404444126569425079226614665957016437794150971799222569163901007778251863516942888872485929668799518438002280182917464421658488235540345895615235744927308100122649674828737383713173337777691522063016741752403461950479840533166885562169213386570111072652178346016056617957505444950568738410677180770507344647094106158015661266084461774726850720834722177416229351355142791759000677388929927724556300615366441900241628741284443493478144141448851834948229429547884019389407992805775578821986135541862131591204374500439935381150161775041757887233781173483859070344525241436690183970595484820343715041880763523132080968019341830889868713348322077431325698997048744137935270675718364277081075488458630206574600303050948189648615036680239214909872182939592861784396216693031596001835730498320017342195380069821285567394459139357204222998566335122884625007054838374065501061621073154788519282265794377490108634831988489668668973489576801561425642262231326392791551818550692769915069215463485032355952767389906907232062095572121283350998002776680443673158110050432952375653661119887475347748967177738330395382403803883205789000632502118423398423737130772675418823578199995186645881736102365256662834111075702119736419758475373375206199953519174653740964439393998217659373483628156266012733425905963842466152981801367433288638937717042699572945578177599492245272311040472850517228686634092695106704977492544658046507014344599393163932778447802179605825307483121964595112794012819894061528537887381894013325952107864316065727589820736593568761284123135243206951453686187761937276040472074548746552291851301288746792255247499531105188715687991856258012725860464702512349924996429453987927695432732986110927813486894678990467382350103331277722179794862263944269276860377919082372948769560997653346819063621528845136109297401876409493175030192982115585277291084365317568938105744704108065426189742729580221265926447451020358037719283646206763083355864215318107159615166561739091123748987506015440434924493595412182503599763836458520240483221268860311944101610462063929736671163440614399872506787792497481771071327895084599251562082175569865434320539617366695533731241784048982731354680407183652750186483003090877851603266065647666201310802716132591220909874411429832196905277052873298866153991741830137552596848525417101074162877563215290712909324059073434889184277529351199442921199771515023948109654134160863719166037793651916125463263076707526550351902053832248007345886678380809699073198568859992398728325043696867222332252484535156742353275522516677589335100211120087297955277427901675572698458084120339854463286211169595997642646782886242426651296836918410418708239630105843465716216461085587747606129844869606554678507870733027423797497484920074806808847963649233833235091830756603649082350846583457653776893968754766801950669513156930007280637749277896770472256873372513788218400484896125561515226151442523404282711817329346771068321001704432421166644326313196463539317956287362594002208273387688022454646003807965115752622712554103485484930049755988725913142782583460198794201278625092543282133624475938774318408182051795378988216962838611459377793744272730643310286709924119511681347526264738092775786582633792382130605559882850912707607938370546413881784490713443561327565581527201298547915922356794613538310415642629540301169372659912726031465053551174715687730897693685771688599780657903223291750911796759665105420249603075061216948523138060271210535419709954294900403790693854951475719368029531256465044797947732828307934252307064142769587869046635131395299374402729673964506074949403818916986572318179528656230051978523213283827865029931635252157145406773298764700714314831998615603046995311937959742243716352147288475500682139369777609342326709757556476584476635194935514322585503422150379173353413835238728333672629860109937521521934552001439352537313539907293667737635821636376238653417217141291897829605703337287415909608314009789102784751403270684238422465517102855509148421716328990365889449404920392171021711900118834104096891501227201951146060972797619815221065086930875261054748546084463353424004914257906318841798126087436294651236000762853187732422475822997629790384522184829875780999495804799822739935090861019019726885081123796763615035622408373015992017565334735940449246237532502992075541292409651711979526025946625226167320125798970333273562883195772740207594048615041754018353370254839804761201319947891047344350082641086870734865317526906153888045307613451036046097160948301821606979904959432909618487307963924301054759691930234079563743916502208754954508505775153003155944010086352136793067563818682093207623456888111894752869150994455652859299102787901393678082356508291439342838289652114913066317482842590622834954967932908912151040344227203034524815656463510168179093872404704642623959549066625454564138160507766113493408477180398662469758649929655037772222370127942751918481946096212742566149386019085163373952797269852671737468409954407059335068858639356264445541275192575290619030324981361013669014888071201036144947786879199187830614471797908253519645427169857484912392409925584067259088514696979430875544164534380093528549519027945167144468527018554426552305398806022433987836448718358662585738958292364410502920426258685150538355387305841257881093572165904248000136580457157917847271748829619656823005526835977921752264716802066033629903545112513581284336933686987184140173701129122168042908389281339697380757986968479241232304661787217332820207323124484747094469583895478119800615233227557956231771879115751914105987369562969784442183057106434075483641335626573626337946954648396141144221865454988332987259215863804935226945839312649061187899970660446225119393867591406210352878835374305329723459645541213548697248189360107005127122500842992556811759685329444409588580158707772017584430275344547245086466330820036244424090338265449745645592186537628570695652677125546724951764166258982415119290294606340043467694648235094862700732939819220231537913479602289725478763964454234063124925855815083444730226064925155723510026376671447382049266979269274779304219948303540278588210582947564543320194878683334129202818214840627823596263633773794410066825688598574193633216572288598210301987622606736289893861776315387335583662892545975619897441862438000083843391383769343698692243214920552890937413670895755768297852405753277689749102701207260855160106491563664584910711963546617803855215385093949224321415817477738670458460977114760825059611177202901665267759380042129829683243837351148951612408935124455990582678191374342263206310805225561596239956789668041438464424379419444286811027104440395761880314780244544680601017494387507362107956449749913240793925567119196001506391553852714556998455971475141821021638931946877883312841483060089919634621030511778937783851030366243174453152808616910301445864782453207861277447695629309945009234726918359475308139915638717205163646521061902206863719967045223461053538600770020422377180940299988301434249030765719628842993496196289224689375784882214209411114501953303095965890193936514236283793361356332873060269319938894010898917730136884253583345714096189164330630531477272976211262426161128384150779288173879842398246653750309718071824990033581042097185019321290035373828484767134789777159574259528475211730076733579332103676424416654390501216047208581859644132566701056910447883561972384402933469212865969391926349614751460759228041252575177881719193656559935701265414987099054585397140502729302014691833504248615043406346872722954107326155305172713238994444275316214736438113761894769254800645131925946538178684613302602545128030967857578054755781108570363509523578119534134320249845108939363429061960980508213854187993565959019731904430839212837324335158728249070014870851589542055412236337260258077172573044089263275766614213159234416656868925983744225366687134662525951768834117066525272379607950597567463703630604049514987512339583003685131246634805492196882801848947536727029511774452857538849794989489743754524447323376715473828848223765951176717317505545560962105501521246312429308680088247899040676205081630266492433927849344448593471045337664047899989357830720346398893489602755172072504023927481259052580921707962516516773059395147605679509429726725748803354400465020159809043830129162102147703810832587459158698134864517469796821684629464063079367045191622349736672495115298995578034619733070296759876176360277355329594500697904502419676277224299922188339015119088558948617335768484513331059307033061606327377269397521362800562090533366073457199473647560666540504186320377857372317207109702373771561088427291041402599994316929239213808469809609493921080923646433228883015481684259622391373627182309618779031352948750702827652031725880001989618498016099921016348512732110735780955726135450457274447352837313347417328857709590759682527258893863168201921291429395271510265087911785940392619336589080186277835879977602582561566883542773995903706845319971379784769900452544677060506403729916571676437988439114330331514908331794455162758706576369956150665643238684218868158639810143920566848108587511499318345533602796061377442887770815065510729682225853444579237733458707112890032592793365251422989157199312195482442962102133304343731275110359939030996564137798660021471023012120435162184525916526244967174702215791839072082609109819907395125030362027066777123267550447518255790430815751719370466868038814676376675572637695619463286566298844898324227747803269470188244418308480568990337984564186216397654201680429764586319720121722520402618256954433632992642030227387034438241831771978508950677423665509144457916447053787537218386971920367498113875709797443880274557494451555191868692340818101185645133389306904201235484258125684355488668210484182293719163956828364874902825218084338411587923325682564671544925108810069639567639587044883259598474181207009665597866142495347611566315164131611446967243117297101680036155813759415625821788123931024808013923778045956053792195918638440489265454346109309999852691722714127362769292038732745021504743051790082490365493524846847513250363397810835121154003441473056844612952870329308129206860106688103642635529460283894055233721614716126321830548571586416436161540366735436963817784367482716031711474000054482507823607041098365562093921410527731862645816923105692076510944317893949212025316964518519236436369081615414876594647545507120216860055854985626652953258599462767963244793176842743535774648942705791315704235670661760245469418542584826210758690286749305071852995899236790518545389212022038217725196673658239503947584915007260294830221766990968712788384388198617404976679452085293461400091272632378286151410339129942819199021902243197209128272085051709634642742547590639560899939335694103472758290011465355354426657537061474216168567998620569418789615768158975529546420129986000614689205003932595250190731844510033636328898370436938799127083123264273283478297974506717997108029091075849042893112825675782989603350501947072783768619732634109914353729864693535810655038578367492855471240851903159122800357592364098204286803709149621067289604366655025628016111492369681539109154697009228287356407670173313565227773945298032538615639883434644415586959043182249877128685813425944684501451936179801938339518559791411074830874681736893807009271394710074981162253088291646103317462039990311110178763415851433034073768475427492100277327805581189206069373187742387191503552521552665830292523597386138382587512151930314030791302144574436289286553968305411733783563560994468033728761855797231318183044062968652383858846307268886762738163719405638593536374516057954770276563006250361482958993024004276258897321859555251338586790177718003264328414836247691985763918934767565637196622717386053352297630667642168460858517998216434055573485343042706136706036217425577660975207989064687620937752415461512783558595659996022793958567120522339394830974465600484358408855095810574513085949155084191592420595420801871975253331237239683759371365311792286765485152962986485762363858357297266678135602449766128586984625527283553498283700181145264761273710689479460503128393532049951731567117416184908310304848088845454731318665146151565788523894131681357415084332800548647554921075291571550905511544011044217430249205059058992385502053310014366238982746461147840959546442229244691934015861485885532834161914718391791216576870549796279874118912948139945742886613272150779112573334955801511033482192627147356997949985950993340330774016252376541384098796997532430070170045936866275138931874966680356811108467761182961269470465188845721174624139292597835822183444468586876902094091963512456808860114253528616269926958584731766073057635051514219083713198310439703199945808070516992342922761995599413281659411119476407612581421902802207715248760024958697704767438596940771864976537842739692771180643805892770337457246654396675178696866541706453906472670792745101436190600326428305408842584268868179649797306166451979377389652753102851864428120057780654826589732583892231229226717316123637836994475156131575234053762039183595072193941332067965625418599187588099414799356928609796738656224201940639916950076643366703657295989866214813998316536190650781767064747430001869337525568854955162941580743597910674373120109194137401915818936790968273309008932352459492208054185135623960519167402299551878205698604423764673725150510906969298837895952500100907861256474579466826216262055125139435152664674628582050906910049984887533613801084739194805933996337982352842693946687466855205971010070833749147080372276096162757340421334687002270118314086116961019020525300974333194328718733330674464816667090735005215107879676843092994751931482903595797253670867291425046076207710757778259536873805115482485003080997742134201623987221473870200838675322637528654677917577302846764160465469278104996576317295939348598718979889345540272632332556906422861176211144548474352665218768085996917282081023199587363599831082201996721290465614897824335835405323023442531543187052961424421403529705948379214578962466094597093148116032652393870745511654908956068854530271600399830756769019669216853105640326934218713582825924928279916202402837176509313037257261505960037595035267907991082519638155721237024177532688407820663067430955780935831419170294950852914801153432794426056965053362778047631780037869117765618245617315737257006547629707301769316012397958036680764808882497629326005203981995644295611350755093677807943030178462822201504652268784833457929351422775085594339408512136588207680036429838130656629718565412015624704277438273811845545566097707119588564203514044055422219168868267114100869673508662722617278592155456641621694428138523184061462329144875779140309630762835292919007657737811226487047373806779186662696645459556442032369817159521120913629699796417061308082490681304735893922404191199392442728245996289400420792642740255272995180807900813945477752771539923239144029161681352644076895273160517995919487042866884038698323352361055115042491301107993592739371940411251078898926546206946397494886379641461200930909960392514919953472930885468740187331766776657334814062714669614983615393807461421604470514261264450491345997766870922689506517625990346640834328468441033083936563810462537881491219930360588567276178966486169377257431581059757445688845490132976026617326410337674354646616846957368606956467764162907492967374894757820524769959475573496902260823164541788984268531373872996963666591502274278070716007537001774906410437396776787817924585726142101103197801914989495477628892130736670746147804595953427361876828650498295046689171588032749490285629916412489456009114137777651097588978428795893993299180044659518586572411446671258030840920311420869717550522284574909048773905006030735078704718946775940972303307329241669422188918500209141285753559544157246714116430782914879785354734624880135954653652897869210329837305900648582780415450710575513192328999289463894438476834475215433011259563911452481712609620181216536379227738761654568186521374091337271574951385538098068259933792816953268732433864255141833855170997526535975878239597637972032457851067556777560022419407316765530241120852034779056661092254372187504377713672276535754034806505536428219383039007843032729620204728885706997599923296523623920096481783529809808911917171412159269756760818603768395110025498637210783380798206818076132107225309868132427616463155648290070952055431345332997977574718725789807365939901766784910888871941492757259630310313180426498636989561425687654103152396611731921691155222930958468336524226480607034404388996228954828077715553258731942643530925186574374460418905588888271154375419505384121414655453377369084197895256114969803859843184398055319686848618904137945338419519457064377913769532357854111060503438804515411564814242284656174931773000460574741110628554459049944123263720990694635788972094492658092839641909836643873647043732613336520240152318863083618653603378729666162816845335632801301073683486835933646417478718509277438187128651716740706368315729820609342756005687618871850971943525384954425927807497504030536780482253210954756737638118250731585566984933468435790683555902778764628250919808821101628821945169668047914096673068912604823970377506195798253216785007725504794775595855774440557229948390558470156895892786066688177070252206475197127830848277386774397826206279336416089717657130491957598674004997431162126161012203037501154992870083079566604768405817810043266346053872415911490136830325396340236592471186610155033200241612490938009309140663048766976062581141457161733827297104751470996560660958963008383095702152950984569635099471141199985863639840216281641967560149441860542388539583604289348445207498029675084619798834901986236243812997518116741555762445551108223801558358574451252417209022993968339355307627722196477036004057237674293648350944139866396416789209221931849077188572943220381208767894648295687831353539569526788703464238706453535048096931734022256212129230796377137871254066237975595845500032682133379548385836724274485464286895124464198192707006602020402775789276430225432611994773221902306604419528949523653055236345708786720446353219279219349298479449536498340300364011120248470740846000806534412774087850669662285450733242828637043702774351383279818878142856760576579549577987258859113324968742117205015253615089341046435268697229426336345427135735567845755973603087466611279953599631164914819328854099036642233719604088059607452049756989244440274141023344990733880850277276424518201145345881130026275336421196953644192178629422209044799260630180134087030484783205074059323991223563503644029887897647873689892072503937389920210959153286795094445784852595918442228545958534270966151818320418255133348710645556262249392653510586393907912543548810970506717730344905659987245520209164553254492243748338365141923622812848402207882420978454729416649412543797468700273744546230558061081531342204295709848985877500049967797134349709247254675721314738490940904036187209809263069638672786546914043142350766740131365472188787201840399650395614449844679397880923320623270638667604462283419878613888765056021663030122851100146947149452027533090054911269088983742037816542078363835023433116758831251464920631311731465648145223967912739006454628537374306347205180848750734332401407831736510838479353747108109010908766295626197675241730482397505323786288152765162876254955184937257241400744457877924080721092059414974160469339393144973182473198625656086908379887158416458036617346879516103472641856146813549285777254378957389237052459160328191253257358239016703284724280674847259814218558286830346396040758001630173268671556705273079628140661047427519152388693665435706042334379643642362588131537947743037237227782262284409300145232271861029262668397658461091299066009202321590180702147125534851933059134523056893110203531381527833254394587708985892757378979282079155006716424722116744752617134837776708268932492195224191803323056618458481213139983280744330268319803486976820366359056441567668098472646227702930106227862357032172484928417595390921252184468507886289743431783488325812802696830166149053405173556353481931969892356504287484640539864860675822638960748091339691072358635450642067867158614791684754738705366510759382630651255213480785298175018075942073985576094266327250229106548998355992923777477941799015109100687863180064130859986028904555220900833199254335423553893902409787410028626902897328405007456695676399327842532125013700725251971715110833343825046722276039707151060493571444994084558877116134328202473073629164786786777341763271999302243495048569377260481226248621125892853111942474027475161262471439591500375748501439238153780021852385303121566481945134479764853801386958014046244616770590192586531918361604486594369393403885543081441660375305238626523405818751060732475973713957059591290590456723556176655001474675864929703642112099166338789261527509333828000068394625604438839424148064661750125000441238070383609075898274463783200618151001160434892251902670562746698099983464503041210869745167372482290254492316090744641911940066760767891088425191154403155203667547449085037295593279796130022832523892002141132906436546445268034235251648214788624348630689387241486215540017151485301827888790400918785304540954464657468913533445000532913752169897446421365639711872905146709412828434805067386006980569272996688336332694480267723451417490135233316407315717773375346577641680693526723627087559558534010803428894592864717966553826354108279200189144597677746513852442659697786164731307461654032037100670160394560567019318543926148032634670560588716073810601628574746896128692733709354592907273861193327100932274812136090329378707155603239279055457638603100075023828955288181563324249770850800808783597542651472640012572070028082510792216183522654098236629272195979248326736180561256433765624581597996582768970084785924929216856082891565463774501614490707646093280708471004313851019553819095577797978827312511105612103119976529621466722316522515201031844019296872832754877787099014050822198816395402889794484288288037412693290428606926157066237573588269496286483356780515861154397019175141357645865048155859615835810498712822322507753446756448941113434375028147467585892024898046419998651727672364305541740150460213526622781061467313782426451919136559695999556635990805536733978292745515848675917919221994827162141518742317888469986382849043412096653982979203274890567618905832319360258790667797510844959978294287034386748450194157551539475388516157845418339135005225713125502653143765218640885410231712329434789315763217941147921136487236398079561067121170172169031426594127288179924532863117666841307784150927045336587738735272545031967823882181551167824574740990695110045335295272486094300155131411275158303240953257209485079703339901812384028462422773004246505053663153536194241290526102085259407359772822225671973327559920351171859963433606952823197213313784137727123186791771559867492959112014139880240518718806077021166759221167364460034219203249473745820047814314648851595179324614538680474537804044412515504802494531620625832328057146397580439635808203085214851490621917800981571501590016666769045400551171533842602665920614631085031922753425225151785202043644502468072528035401518066452030079683435063899932727182960364819061843516263319249365736446931680163429701260905747744645465985690190187528748118926329979111405612771984299518907666585957727215644472433648781928138275000074069203426431963961866889255551390346438546488274483820799279563027371777886617276179086346130145294328082303013217590526836453101403083873261473504319716907245291796849774586028379666974474901901544458003969195168755077808624060379653492637240944681540370219926349599100889210649625882364124566132879702128396807140248838066710206439309472777944717603883758105368571289783571689697947509396898846765171196318034917180074063854530564480330686058787872841327837367354875520754033728599752406252938140875194888165297690793145500573396484642341195522868860124349504290214333197497269597303337972030675757335802331809691677232343008071772969276120801481775816396694544920707210623300256074775700432928710061878334741537130150306060003779523170751258821470803334124456339412349988716563368644910344953648031496497390891348525320157491589189308136030466949988323156755393669112093857114903149788445124126719410615435009698568700143330315875780876029850726864854504156128475211564176779191718330771313307408463653610866824492531784995968030113617051546689602990292736975768927100894366627838505282794427060569682680804968360071651437064052759923984081256867528333390439414967890147537187048222969503342155117431389052018950992536171147540266343902798787151712074495582512324360962880589856005102719099957993092200399698944836505609406015948915001831882997900434447796362563540994065215410706236713196222682904379094361667579489041086268759855883874079463775678855234234937412321822366281219899029607584528081626909868078253933687775995375390044085558884337532866698769667712029093548449704538043963215550930542066453603313846045692454714151622241278065654754893709919482845059458499867884197365025046809966535612474491676037290827052379524170087193168640286959763080033304116378298734233307581492376025434209078007137297070422587541672095285013276521128936315795995864438629836938142551691726340393625020513031130964428224040036480445269720457080703557928865316314814991175938116075843749309237696990006138002732530741392806514923550785591109091647094620841286226208492441531213999907446263398776984796823759145991820468406998200501454651034283851007692572780990211051533417692016687617883389825341832528431629019663015538872170616720146166253609485435397557174160063307082858618937995590716091456466455320061912839656660184568456064785413461249629379272412499869243516193604883140331477829469887153263324195460163166632427635589181220551173317270264993124995252179391068012308239186732527422808725450483002686875581038469084536739883058037835270896456033478479648961697799612478374302799384891127794570905850651661477547280065598029827996224513669662232836702690532677767691084153727841736147018917734670189039315690452086454194360020486157554581030348019814741658236941318872214353688655995064888688175913355539642355981783023939074773283887485956966015865716620628909296807466132982307515954437967627277255280310998269323764136087041915758305470055413953411340228436164048617549577303783602862583585735189901321326847880538757706231165977388038480393867581475489935639967213933806087588350657678579252515158652366088906368620698258807611638163284681882011529430621508860245160642168879135622381354621615268906092970202768890067924863801479495158340952520790060257750166377120939067135813015804334254270685373667888698260772511148961013363367215711332252452068117519095640779444627009524979647787614715431439133363812528880892087919248959414606802512641672001047691065299961488070303704215580199558497344363240049417852659465606746539390777188484419959265204712002743068421765983827294503394115622460596716206455977265723016347087693865684684310689353584453981802135125727163348322694545827290373055425969568995203651944362363053030070808394927190503052115003111951827998963856072203711160618523995386842354974838754263014047555816904843178134577466240190713754325140243132426977164256590697301961097616229342425834618064911367401256564952011380273712257040639787684904587745666852640316774679626841606677659645246285425927601988760216562593360999727720508356271839729024924171136756768414724246432533994319476873944043778069207895220615439315719652518577779375406997641088286855947819957820965012040332534813125472002187236180977767704034568317623298092687977872754526932046608490482588569484365396171039044778271378635957899389877389188020944811702003379011592061987553773505129197499855056574313815401944294700127090469593998407764004193626769201986640871368695706515448363647680934944514633244373086643535104894769980687243480998553004001708468708467386930253936527137757705870136912852221782513755490219387910622763344508094470867013411112098508901882183101559125818679496763543643905588471547970024158801473754578311242873948140169580569092550282541555237208805396836428282285393302337341418347551234249037102333750343004531065512963238159855138103816815622903543628501407743330473667185596160005712390120515009399923035714876573973899279974668539892299446353286961870344255295426102586143563478317891061498405966372734735968532667414922234080974070199248684819098904448534714905138730558296397245279428220617300986199194021581987814534606087720212110817269317877591457675013601733574180723581693363462930784306699269869953982381081931573659187027522452923406263407446365656818574590647455148526815260310048234023397074942247626605484643409033257540347225199180870123434438832025846626980218490259163311189157916260174905522250557031471459892477983785060978979056044574685837316864642734390076043636909736083165480123103357705077902680439372454945338851087732288241879953734496305229265133133632403722827091562837442222691051784477483302659416625973487442152837861736872305846964584022872352060836618272345916160889754840621928028759034926305313623714229405539386722126363431809172675436780595795839628291091325339134429660348972192515499856117066485673081722618810131776858485048636013390561007663217540951083983052962757005714961533156692064611784857222667501363707277136398055465564147450648749743302037565735469932689703123224295545365833226032751482968394994888903395301019904029559022123088865863291353137137763862223434531215503324393303969528403352966379154823269611363596451974969501958610806440881723537742937029508453799004949519289350400373029063394096315629718544576288699946163173642570244959482849366628134913132489398865833492557879791577066212139886131545952018115210407456191159312759297563051216433968424400175557135069038031241617926850958244403814319997442743032753801597099006518277905548127884221373815356494320532851787943922807231883743565372916650859509100855753373821806727716050422171172936092659499370330720774698150840064966426045195617825439265837374326045328557536166015877854199161137637130573200926632834010501343231202865356344817720715301457901952695942397654750249754906282293352919844372729128445648607558854610326466296674663684419894244249045688757042850455378585471027918165825014124138545461709291642900950884067648826741641635025109937060827669712287673599913816390076800085538064004921761406216402772747688754866527254642225400272628378274689987994003895216476923751819876496685111443596802607064581907916909812979114925047034821832308216483023437792873135977311328483665547784914543822677874808402623675481946471390059122060502364313203197098887293247978954651503280264456791475158245850024949152723500165912464681314484760104454717282500235678334971106972891651002602695937143734071366300147222542033402248501974935636835273971090642932589705180003106918440111310154230827951580479000784828842260646209438001332340301373295921876556045843159855887256377354062284681179854857932335676008245252697974543945807813683768983587314182811257122278296918918946852879540532360710670255046251003894076854284601342922058326238951279151453069004239806347818176861425342815244724097342062364591711496197168425454529866938465850649100589562080847619307100234267656417867153094412604949127998969605752275939703885612249304716419348934652017158727674349013395804739553056440100248193676972331267753723920978995472402883672139331799090431589790638743977561745068315194123685644858385265398329037517696559245760292932527162390615259502936371853792388206074227328197219191816613744578536696958298065709155576293168807689241610431307807488869510075049760325574743111107598887725607383756312832033721995983865744969117949797407186356549713892485301215828380151378387037462975691480776216862859930834870234274922701247352726332440855233371816426146515078242955896888417050820829335447915711644596007773873302129784204963755839321530942739066410388520982233225234663059620895396611694076885352651344588671046042935667475883387604996481956766697426151365964045667898553739335809012240439378959635350981293281371052621643293213626096008259260054210528089995791847583321378829683178778820521918985261037887639276583880913021009674899548968432715397896865307010287870994965353549743273637118695351637137269280369251769937356642444054173321551380854847458729103233157403789146702781149215037563664885473745175441038654031203159712576007841495706508852780812169135432914798198696632300034024292154709641603146067306050946936550534335667310740126838460239598854686583872023396856507473926190853103223961595622027332112135530616085099056529163582859182710015397163510302610408309390316842607633737519538760247639017573364302088277959518296755123599642833001051804618079507055151712269104639142990854609913586849699518113005093587976541836073226032858289981554203119274307041312995505464637145711851285811407280712782446458012220631895603768623354273969266835297884531861213796105043022710748607302965754787418073615652691931028444909956287094881024688113407565769232523155084448059306391666076596048219651266759808305935287194563852820716418934930992793520167544738635179241549122406136991800975062949601969322170700922586507403453432523902609428034111024392826460770870299168081693977074583109079218142190586996541970258828304561084972870809829161338707665824609194974218159416708247052604155819864718423440056480826861366906858694668332297965956671638430135786191993888971705434590133711442553152775176760004484273244305506963569390309075940326152010913849654200619699746498926026112802008041603319428879517496180541244104337519836273772212305808565071069635510028347798261409352036456624554703965166098729100008116972944119444345847732196873940661903024250808334106486429903204642331220587820807617634328676332100132441529327375609821762929615749082733896372884987616907785465866221626551091155760826025248369175303382600696812461212556999367206617091747545530059765002577983307109317219160612760238109867311330226936811193686932761453908602822462908759014108867252098232178588865332269797874247238209008403896103671085738451591790194421241728066394297102362513379469809106570482205815021512303228696312856487370023052057023245436446575300193419713857630101530254251278938374697154563329401197386886065876629113670129396674053197197059771733690058403817160077357473889306011168440053389010768024212995540084752377824805513537577157028510855823455986696206070436723936533428822841582324545513232738906361604886476018719397334124286478264087228231386710724190906892122560738617742335060554469022550452647531963777830773732436174898353055068577721317574852523878165513339176868987401545223382128608622492146868712713670613739749680289300077327786051793988592665052610779564677447178221124234420549953929477579368304418386951043804093200229501703832110593020903537256692423466270652882421255743227301226017575713538293923280897052278621258939443699602003695406443673974785825389673479539388590427176816508933536861588710514681760731722644546145908048341719079487598115953358887005279441484317675147895777110801023409764032930762949362588899097647425455795374456480593715021272252165072630079985068998587140845046265088653839264493750201476780661183984698719590352918264741688662623099439071272874940380802836169820492549310345935964829756538188505659744332751781184164967980682436128885306631510514614851951486037882914020285595054127993803792058464295864963946854786615946855847387986688730385691776156293432546341129191850541641005193762041565271696410470914335628782127514771466791392558365272282107156178790430328749774078252088455306708580431597606167813312056320395045329887853375545070524278753536155662144172674245970688339799633630638476407878738685963795693751296214211122930203856219858701323954374933254151262995956214420351882133409335351680221938700787550158381596938339699021342686031944262877758931304437025938989202451900679781667925697321203245434319630712567481489608315247589964596522017516363300971621628155572560611447046933441804930075982294472151112915367587390946031965010366632828729663257451209468293650044189610038821056761346921139130683038313420555441772292845537701595852529732184044735548561513484019265750703400120985406183529125817637688583635636601273040863747490253009684172487133342013369760344065391321680634236483021054649707486558855957739136764351021006960162060984708369699481860330688078055242857222113560099183477837775786688663623957116818454227423841515200064000045216326895139553760596419483095806066910852188543769975991669524543850312486974552774154308043626706871749900900194605249878259611628262975337043141987377136831979295993821596560108104696373175857026999592529754113184242302086512739823393613409965393818518633215641763929678422289166731365626410244400999302987330994126071172824770528701670896816588532113534114019325864909268916582372889267654272039152419525266732366326795047322243677509833085637737809379501725017238855318949000743107836417732982287581108491893047647058171991703138492894657540416274698076556325527531925360218349441577221124173032304563273112019394428904639899012707942318102010068677668656454475584233671852726905980513895465826280946733530631421209260127546224700056358039115995143241023038406614088379478455348012234313982107011854065434473032419717512262067668006529555878640240702114657509423218786780718382153324979718104548282141913618839549353026856735716276030611363287209028730449688572932014858054051381739129331622270806633929059504943077750330420118157898453871395274735889441419216528780629927265249010375033599750297238538551758308967189790554442677841685145460780314775748925297333697329575625765597383751560941481137015752215528358539145367796665861018061932429533054882175242242367860560731373263412018139610076790711829214118917037864927016212588235302139252304320110514097264121884490015471604793113424991141901393295968584235426912507700059745609708521843284167503965457422945423690388036237418651316616195734584680762265455876773097527228680981817711531857388791174243505781495339296060583874238358832014556888245665584449986478954240608928518705951025409102931305059263076793581676891757810552933272330950805257344248085402714964244663818401875476996429830125558318250319296625978547532954520676889704552325796812399322276622148105186100308361353761288976291067331759276994247344090911929082367438769614330629276049355879463664609184106128691364567692265545874162850733049666421827186139728303456325620135529494874088309584869043353549079556916744606240792827168917243583777632887089291802649197981755439092762300051322086668932933153371059580991766958069062049300275974761907049107172075615322822535819993327985135997885708460633510323185826317279221005847966109224889613570940534438281960670240283680354304262262812346625218904277616320244115646532432460245120334051754311666309674040020468048697934362488531833429222229685990815597730531784010762347281986929060786483972251284447915462124856119792170338113510474506332040910796584208691016931132293827802883350574953818348462367513006567429874962983135429744387261824259189575245245206695308405518188465042871173019611993652309307097353986069251110576012349842162233510256121537683932609914293119976350445857843953618389924684414120565600257822326448390495618468125418056674304706765205761588878205733240302452276368228672811192243626500921450620890439529675468940144144409565557762743438461498321100217453172252358587930992524059101610881619625924020888327297856124752716443970283040667139909424862781810667376882110999272886631966754704161651623002983374416523078588285728358585616425268067886490694991241350539675887393864569892344905763276254732578446025424815354691380615875653549313647245755017144901999502671356638127612490953844485712548968554957109180448895843518437925930389010646736460914745161503793104734882136607030428786903266848376367086330252955807426063957779976851254384486203976310098491853097058770721127111577690997009515298287142102174635290584237943025207519892253439202542240073829483596244218197043465772599736379080640549694617200772735734042777772079338333120956177182789202750137727527325064664589778680447101489506424398072796653117064166754984876904642971726402007581172489660454451175590442011571647837466722498763554484788498276532341684626867535657635219306149101926867354253563848767747147639164083350264259460694252774427372241189336770760288976467391123840916911103887569720864691362835071727698479590863600088148499329146540780085989439395447819269262977004527872215741164581545577784925682648605661032154085869467399428089710865571113580174635840954487787542983022446668920911325181928062585182059460732446345915838525675603616689982762039943815340551899551945184199610944698045384277532188356711341031620172126599822010287351429866568756202332337933258886205296993832412330918436481141399908073367571925135700477785838231812741275295113451323190090607922046730424053478821927811295525641477383802267289495607603193313273817490729465078437698897198776597035516694800254259415566564477384948090759931293194840288460904238625574170168444395593968526573603061424528453028616729128215857277131100022061218756413909932307953714917598502854467396750128401032862165275112166318470331031064936216534131736029907547418811895303043620382255574965095207755613479939861553169546331553159904874579302556782820380593608033604579278876669327032890551865281982299472678025477630042447775287243025190408322543108073939210090289488519955103244921583569970352962767128938662035217994740316000879009958896220013039156508207795647894297109638174008727868450684819359674605645682837055568273514732041906507525529649158801112447311679538579776875560168361881212421404894200886914437784854526625058166027380274441672859784105051565185468792684072947143086410922178489458018186520300666881598821082429911742795006704745282197402336017832945812000989320441095302774698251743444518525744439050503158736288493441867989548011259407487856039687114524914893634416959111767059780437131050232555718786946961114982892991776500111986530588818947188807906773323807035608608241641813486232304258493067419396771188958325500224321646000871855368198091449821321482452702613495699755114576330160893893686189296783875676439285116249874746881891419721628303393113671526441589178190155230541710911627231561732873046551472710861125615892591514281216989861287211275332931738355451169203995995383048599370114570263530291215084777968261819100254688127163809650320730956882405461776904886528930542339296996411647798582429561281206411434088404606501165114855337163083508297124442489910679417981635501947720107634369954964832574050711795454278039548185711926327328578209894422614083460837593448377246931287155944319799651183787315955405746175749309131088331482679340831934905420552158211121149475428155591106307585747116886675571451151808025695963754882503229824512801948178585969109343249208581280772407023957116235609342610527704517367463280755617707581031372795942825108271747862206068323718996992855796484648601232812877073379475978400246771868396592866900463864162184430706995544629278590826514514170774100519084157614833860527029232380254369082848965512124883208068711505699692319456903412230777779568766862636969039568503686368415336621398327849159448356560800214047099979089927689549393809484930801879011406205958492280868236619821754309680365902892583017622393562632261058005746667658534457264544434261108486885748880070247301845700279242614871137017800730003608926791657806345081508135862136317817226361964722999539533872884481206901388675857407066378877940154034399638472057236213418626450172727312770883114012747590583309939326986550572348261470738817690224685211250388067126271197148928329696342589417616250855986838823773860693689231549751923075922563116355987777024334073325290152169822414893797341984849415406942000390984068424241158906984977890728003933219684625773269524370494867907907796997584003552033601559665658898064464301468554511569770022189020092068528474263012773949851219421089882474059709159873781029589756422778440427409063787078338530828633181266476118735646763191913039591798633639363574989689336205549767462200590757954098958032058532644059646529924350283505014967435753142015566269138076277684493156253777584482097526879213767648315372662359120166827961561211866042772483935931271589387201006838323991648829803180502025422717284936255375718872732916571597659518732777659163978172921631722733951787897007312335432434610904852046108850612749430288347985776060752810556398922142261343104494699091788129979193583904323282602284294459030847226398548595396538045082652428738377222008327787869818345379573039248368766141326337090151992766032970111143226996644995211508061036823398467469192908283804919469184813027773689420906815828915875945396536636094246241479756568512475261028453909623555373739197034664028850374457893277936330540302513285909992998262694887007962620059259847724632078855070975834988772077172195105828888628015602572156379186751596389689156121919654064845505296192172743131214631500352697735972017692785977160743062566755059979592196059895629572726552544265058594378929614038175860893895602548034395794471802563607981771046835580683269881797247463652992302853468971488697016231470457664695858528212134854577486580573713456205570926894733257434825544573268798110052566418190806139058483940204234070126592057706462031663467099629535521821782258655174518957518176768159351120424804733922715552099784100549406970821778113053803027452429660854822341962439111932410987306609714095277394214971855406935683264744779653804546705499602823652432701612764386876708508282999948895426086433260057294437809304707131858230296376628286717599821338431219039617008572447965603672519989683262545087374398067168410080092613788933707466658888789688034630098753922265849950484739347878728081216342201309360138045224338703948281774156243919947840356039002062935745498251436933462814999051155183642535560861555594544190530649009649932195197931839944739293791147641408910858942429941566079756526368650915768912422021857701306015586424050885629433231795396483382557937218888204474481148265760282901099225687615724617043981568849448726113117248111457848550750317883967054132265907154981708903053004284615148483964927620240871442982531962143904348713872322751801779728624448998019243568462198474163350478000969403099899678160699821010833742419739125894289742602605853220676664911269159077260881582267158876411301655632919625065403389502378389538169848251917421941097170334463657724159372361445563889886575411749234714378955211376158618798204094772457694401486147555909179026881720523786701750562826819198257979823240159707871605962666903790538688389425241843099133873734966415193010630869196641247833417200239040050673947544117750546988951052578691498522676119674232019257686094506045792949274476919044533322571659548547154433747608440200754645479356892847141695680910900847644160499049769123620487746315908181443695738142578842142703062943029151767176202947025164564195219626822010852188674892968718993621340996028322391846616455632481874395581135455372108950724898343947566513100093773896795839144504533717877945683363983391932995458184184367407791422573193937689118709768347794769904684613128771687010973910277503152134715643651166605162218528156360981250170278117517995908917753636625529349719016805140520839782153820872905400753845435430825000919655299973513532554211559955218315099799173671899167225850036257748191307584125564585312374896102183566976106032694426532268140384894383352055951518037611395995865334949699293972311370489508037217590399208691851547093595951084483018982430470442752986607848496912539748087872957735168887928984656992652721457482671556885083233525979385068330005413093667150427233082223687202172335273219690234366386485642096715417929942706473728360465337684810528581343379971258311742715164740631371901389220709917897292433715134097931820954884582723732176599283320794712011277444012406005891070369472729860349513485050156442739150648171353668027451495461120357066523132479967013122198593820664124315130834692456414669610411557477116951915676127657333078892476493497525833635017521475259574239423749913225393520919058383700612294385848435417542770863384109773348181334803139864990044764970844295325131484246256106977361378685576036030578109449227401086435449061102101793792453637061066416982988267494269879992960667060517406705201375393546968257386665098938304940676019229524509698147346929295112907390712990982682403398495111598248653968055604189329706364154629278327096794386584849745063593609319152022052808485880273853806135520840229320006413096765589603344925659252896562845087563680138206554272252126944451706384825436844555885920852507390090920797582722407081950957715087966644626029341710185762317632226057548926948643496683675318095147364355865134308079931632971688086552855919513905342264689994057080390467695414580932486952456500075949980033452201737927246176361491383893243694966341139996542759797047996436593090288158770307561901853053617951824666890712943769914351729764832154277044935168010351436157085132987385677042265678813534032582445000042509827559671343048507685549713808980534221190044531640775923738231686997606218869223989467665813351322241232185246941655986511660109523056892330627837276783006125994930486069105898934138797343590478564701513552350905136388078713831056322572740561531302174271021166351030365152546581193860836285325169718053903263039645550713594479314159633710537236691589942623970585739876444243819030778018636339135171557560437428758566076792387896453112623177007213915498096854712125185530052177709521656985088183959844837084216231636028664996611428755066106240999970926032598015068399447101535580379983090474690368824391377509957188575750534601926032114129987591349582155732091652730450650268515253221289376515267065621870142352514133011245136610232575801736578552818894712179723988342252772244022305769895019348618412299751731939400526011553663171652709363867945961040394386023539816810752278908067716290654156570327064331202299382796221918505042519279718179609495859753845188803717881899636214787321487618452037393272250173545547844953915360814844447176387094371252253082724813901774167282328637701410633372457277443319467749374123549024184926235966445929741354445258188084243778750106392869530551327124364931082815598004488747913207196821006707150827861618353335201018144265632604162590031826178974434283102378347463464383538653599154147429581474004355864913407903284719994616174924604854963381238352557549190971102237933768235460177778943219893053573652618451672586112181004338979841747563764365394498710327650607394091354926287787030585889568228744238164668693191868838704026468007025687156338211572271806255500074541458069615177808417918680824199949135442377048478988310007356794025066337682236126305548500968626747201032114741425221049350382193405133633840331733836156735901831965982260998311908290104560801455230478646666648268953844862737637293924505387875632023097709075734477383400872559740327833660855697685629682142220316752404642927931071770159522047914367930580437854214348325833267248934752089799872524027690502687654650167440098843681954205227267239913163286552790144235598990653129615628281338192917916095047615964647910665855320767054785096564844200112900597675411287803962055570429865165185223235414856563239129501096442526732338421023480634069620406402197993136584909237811545155634351590878874070503818439259630313717965070645972561891302292570390311645391750912497502311643361739234655638603773338092964347964839705966755641787189124932458506395121372863910698295640977611339084735376948000385718254903771290146443045413300795522903806383397588569227040340069413379546191515371284402875593541114461155843932400655677865319405097939434662881093162935377848880825516844432803106006765106138258779158145032955474755265099335987413151612687145897386988704518046323407635686098969502063650555380500985608936423571054883495645464055328508993377357069382888721353819732382320058951636429429564517117394036451161947367754403496430637883087702778751490461352447043010317545869555970154527881748360158691984727215815796278788657851634828211412189753146224996354777919915546184646132693848209932505192388084980901682154306782556701010102609645925063256731136216608164586832751080365851545413720374319463394438447846414708413449062570916091412050328349192686654050403925834911403692036874021316818981202491315690081933951081096379504337278931233480809304817536701714667794426800291303499928253019917263667356107756608681926833039716052899187762844611023178923684005404265635739147876633498561489467302094698031351214108809383060618886650128945578354489377959222535144674406124523349123341927940556249388791888048379581235956692254540285769684878156307418748391622717053144329766947492054759409507518837751877800409787128717236739787938502538736837106302611913839693566158525744183947638857774321048882635753982548892414850899308150597459929246613578616613330245351965426947381047195967632875726238918054436779144530602349640228055235832314975280515226711671278432326571284597165813100082735397122282308975576790020255811796544522412433403827502119768147441231713872708006779810665872316094436237159468324950438866054820507435665266567626826254126842591488665340859430990329771433255846628066485472776499926466626843545374842532879622613316957426110842360919443884789861848597861179008322056928943734673251149813466423733580762277338641827068359927636198486697598399950536459762025709037884009013066371546877266814981694835375729682472803566858740321879198038705416012835508703726970040160499510268451137456349600078992546045749052346345732892485226432312965832322917303371983264293187012680452333217723917335081758468882902160453180863086097543059384822534282319509627557298687993253825634286936876734640382293447040782429162877176338285129266063023304388703973716807694312492519499689962192266881343694485848895924223932730838669611910796899232156278163015439946457345269242334177301062958840038523921779013383507312021208807556685682532921393008817247226792500664791520348006613085813388681143531209232523098177031387397226473454262884587835182086993531544502413647605570774612987759747093372509057384999000713905436418341202871739283000708298562961764648586530906741643350944197787973652713379926410682984659231233853075558723248765582945393826248775966069205426055989145862682441209483457155227838260194166799996537578060881334996066834437019853071608340782101495639328405526784430163160137544594066466644567021603899651790188610505464877066809094407279958423192031569820221408772196607917089938082710202135888380749848756751340569063985399247579187641076456695992431668260274150977083302515939810977089684876819786589411014428752196935367626433804909553744215405608437172144473684426439551957817785932549685617606792567283647559515018815902693090627211089730375186754232569560725799046960365490793342101259472979037781601363394566053165919401804870621723882421099452680731481188759311450674291333609752103927993638860316976659717486000718866969180069555392937731015210516022491837184200223306284615617145975032717873444056645836842230168952335829420551387967900849014183948911712886246933652442892827000950904953994238368652263468410777581457875040804974841443349952987310752241013828732691516763975833970837761027591801029844970950734240955349987500645745675270657137386196192861843663156679894356730895227016134334750528616204805536832282598775732866838338967388933058027734844267038086272097143727676882872215611027970487388575153207120685312698610047542817501838627728818689014239374005270417640195352091852723036573047506526977568654320775804685662563329596145726300377892984188922446827156712590823326319492101490384663039932388002550988170762330157128944435285065229148817657408762737502297401646428818112832519056945836035905249124336637438444431268442881084735099260098305462023904037978892510709512840257960706727955935377036138429654085600490580242867515613839940425087940906806469290048949714644256371230821288547937405072018612323333662072830050200439071611496609053104257862558811428850610181252699770806347497949786824257631050392497658172500201070963449761168591658683136297879330102529247442010457966316746107645244788877144368973896098608428985627239569507435000772620327164514056992802202082307635249392579822997467728156822376451097241890519235688642608332909347393059525072674703598840864798889808487094706432952285094471411395214979596523712309475337231635563157616028993640864724172054901753922065264153427331222359994802437071459065301144758855121774364505716343016314362424583067174430651863486270474784606853025327105711497074823514132602163491142140522000650259941436617501983619871077781962439579387001185878465439227890083329792520673081848042038439566998825117103386485984191035079879471677802304385629963740285921915404510531587610042412322312935282227780344169959276193238874142037183319448953302602534219364489158969501836855767607296203565788870198889713321663801903071850695334996054381555514058081510254791600889654171418376904089936886517466717127277200983266847485695863392310183907078431432922863526686426535350646620272098532551524518986028015847302751321192264274592520544016185018104817848362284282226622071817534750220442771136569011896193743802016470225811660965050420503428725439840702857526383869296287560914949792457177179613129177176856870374181542589754513778707571270130219154251656539139265854150625387261918324712363909054117767171081807056055212965614434996930215375979245935504844690225599317211456582259343235222023116260181034522126877318168360691980195519392730722848557996300805800652167296193829044785002991404609399829638271004806585468120300231515711275128548307838955976120957789612974180118619495402468440379914971602523932518402631783585670222103801260531402701125225942649435054549032751667455129280859630953865403482290767836833495730173434134599158021686497361000711291654944073335260788589580696146919449570875142116834515246576338597793401828625513966989955354191073226140187655874517447269068294101017844320998885754200506663979860061300912314904177649742259182806329605837207444728224969358473455428106703701158603198923621533956483141722261705490016239596765407152221834054269579547425553913430518813000473048409135859862803343506322736819512519455021033250998949345448843690549177035657709964999784608749928235812558356495348034761976877267099063115325455727641639487493854494810402184677101892202682664483207367624421205415894778589727303842574056160024535464581951397969203753236003636916898348477836966860067527828987436562691232944638422787494480661758634484123090712940363291787244926038453706036989771795314407544228626582027549229071869816021588578332184760966675502508580697708180386728945096414615311047238815735615950223980318084063370766844427647645816154161296739452788892435379076640748097790214555403440417469772067196980304860082121955983700423577641002267715460933526939692783353639545532999539443818104226580296314479259885323812210141812424950459148071305997970023656506963131785123596719446729613285374917118432901851384209384815412849426555765125296054893088861355521247109060904087949024751951741837394560954997206130021731604814430711517315909921364689506592884104153231927062471278421834891730440716008759911809316931747693789382996229299924964955128898762866745272512940866549874104927043164617224404908991075069335828037682674142882828935707222635876299331383425885809419347166388178854394502080929411381169085331720337705332725284804357844329721835441234575000963955990256749602613341459405321365242699973182163542032068609917041541610029086078513944362179759868396781370357072077209184410609756291541791577839298567040850176118272052848066715145150637589257321124901655612436224627318608863026542097660289077839528007449097661139873700393413041901479889838981671483994286487801559534037697838723603950445016386683098168790475741165834804169976475309906963769371245215263793108374099008334103803103977557410804960210858244498783575604722420315034034689657823665524443372902780679009193629133867372104813164754404769791587490453357192904859480890181546580142828008848896595223467399943342715333165870137948167039026466966171551749274617930639473866511722082674245828363998927972979259558765018143132940609994056692272290855505213725131610650837206510159565807246552872888147071609696416096571914637529104530581831702354814679431745427065539219447210117311895020238302159940193224696966690406750072180644572219380869437713817935876417303791227635400584225499427766867325504950787714270400612249949769168285142545784839748402512241196453065147206110423393543634379277429547184574100297386775167881661090532045059403468248658464092623866135119884285317694538954288009321097975699199295778468392295742542883143168949574675888789891453319460903629562804204750626536675087692510057830536997265150201129878336379808562538771325325729748190357887919796390757180373576961070868459564515281534766762246201516210007264490887796171150932354592847384411629733397488895064448656529853260781859227261091664923600716722067393295606866663697353142143882503505851495904966840309338444308003786613875036725659452723031506215839593447999745514080338164490194350595026606288797317515999260209826155202597173229175893008939959457499138745507568387276938741069032883993854377630446340383398441819009237003905762764286369590469329445565033743618253227029324633396463816261530616264055519618227958648800018835407193635691137183070173316970401616366053819241326108182209379623522663524116907487626314197629051020209912968495802763928375757246663164134033890674355304577289372016549815136104350275796440623543817130483069968077930316251981010251423621157120213391119607191418280553364493446677585102697106532650507768088273850776053618067637653254448514960795323340230542650127761588081952437047277965993766279523735754023302028942307197454330650161029590697278002082330071884711597715612431025106292418406620859215124612298160844332591723167724483600702019686541624716678378912968936040975708288987652723648119769096536281658736689728372292524412533404731527203129428892204888169847840970215454390758483451810131380917826342392647490829142633981927734448779336912199139980303746180347692702766876017355624056496993074699460504098014435471529622452706604915746000537849152452686698696255814708745349889815566086484422339559859667594433950058804647234794379067568062687253273881185831041163988950378534194311957964728410568358369175636118467257516480946006163898698567488151350111372957607591947842398623291515249950113554132056016186359315094559084668440922041669759079452190155894287642093484353397036219503793608954127648586701983684927581110373893640934495175501866412988424370408216099352374301860150031284512260824076723092855569546970315418336138128555476310237805092263477507834917102844987715160899093612923665414663095287699964666407948913417986754210481795217702139555547124334328141104532995383604391870753782211330575637207498184765991342433454092548769709411069768136787536708585176537649371741879665612134185751121121279958702383865164561770296481203308685577191494426306683406849735027731789862610955394184183981614989306584593916934634637636981766539686266286772150208032958220153669267277578230919961003496220704504085837968427884352640148391432848358074845539087180729619232461597491091299081327253577262456218003625972891883731392729907808553727909648527414979751332703290785273543882603930649247708455109477925251518405121276478859039249994035579495024756676147897276272805221193763419551558178889782144240716455026307513899308314270117960442915549430944121009351943906026296681389957043202190300356909111625321180852738320380761149247307293193926416557297863233873230644641750996371145917678643344090241449542237673665925938622602840740760956317362896641177758692236375421964845388168440630575260256076077115238295328650004956914321579930184125506743342044063250026978414100720379957785523429173304018404087400314680205006312408113885147427003618874611331869843002225251559919866602512786905854779705203669344354659071395195666954388059652028437718379635254823076970027837446016752602874250409987456125031445862328857749815568350408204384120001582957462209105541010972331371757004620998643097852961281297746133028739406798189210104746545992071256040197814402418243422087388218725408232295519573875641517392349820031863255677255048520361053137550702932264056454603939702650189869765184237351888493468778550783704439006111327398649129300653164602364336729677366759797285924769879096209670637322653517515096477017326287207714467113486260525284964401736970875237496891256097186282761161443254195235297142015082095528310143133084411321604469596532866527361255709462062923826140465073656439727728972630286817624327079475390007762250705293730015117325465592503920550945838790908018219432420751846062215708164870516720777753085389446540480169745464676423595077357009813112831500492130651028977491463081322450775860175395084716044832336902449666262037290211876991878094714508687126563579603944583726163566332568653623909596729165142329963108469386179186778739766047441647260155243716165922888217985378288454342349282625223889027822387838998983907479774764775127822028958120947109939563097596284634629719943047248509276806499023303658130360353473886603571016911522148928204761882643963262621180323955097350267337408880268540062488289765327388362833988092648942623389629635340314801316515547308789612918193557737218190395769049843657752548863639712327332941746275825559419904494710905333078463788212542485561684056034286224253864539323319712895804486974878304758945358939745457050135614979357388501917869552363185303498658251232391638559651451060176692082038548919956211928912536713552374829642857312514941711162012659529667255507068197134952447384948276893140088978219747034010876422801993055814862491326828839690202962722812766410352277895686028335501260695696064506149121562445735951121260539604121437318555854119682901058853453397579078110598729566507781661496870714092675333505424806389471554104830270858166042763172541762680539723669025737679344567072034133462745144680779685554497458160380479724923724451468200582463092081676242649142407274529700015982257199445441787475401322566311832344088118516634999346777395689205083388016614529428476549957353070229470993776071576262187738144688893188061366216386468507929939202333802508255258315013121302884960829902597427654970294736351821212948863036803410567196355068883505026525153822084804772832423670575453803106690706458270492246339040383820990620347676295441399807510687918088439488852884865528649592878503995350741626734768335038344271339755591348310241227747872505713640529037856469666442930348251849700791709823686391395613326733556771071598860128053718612401645842763655896671584815737866782653438690222273304326661307117192827771590718823351036917977630625381680319450597526785311956545177650290605499124603642768415660755229943343969957287762019653087221646400591585213405238397941125750898938748122466827654910214947854325717617781026689132384662313633764654972330103728297549261886341841762289873323482803772569271564469228352725576192919315697724439570351241991540104506249825133382265028752888874280032274812928557516530750363186627786715107433776712757624202117286370793135655402932802413013090849843337140864176343709696305393104709618350595530610423494217487985868928441914142312965088066756481501553416387425279606126416274766300425198752120806854939524160010081247444994310131987155696159719885759388270875136424935998154049659583847369849649611956421866949129700637235291879896133507761889568074784258754456212359759601634791331203928324383230626940144920618679412813223187717549929920636819612937096473389912090198481147486713054718334920231588088886008013250470455158653632707323399070372037193338516983724675061782908507077863326608830516280044078866892116731910888672393044787712295242397827739514960767208330377201169488598781828045595021219626162706682489574807041555123741249311235549107718748009387264517436352407112396115161419979324520475785764419662185674858270197659611878883267669515124171195140975794600002230596736563416170982663543786553402590983980505875631475486419574872231199900624346974578963365446500164153544356125374141614181684665676186492159989514776252081058579027853586701627862725841695003448693697009652262402906285121479112252949590185680977368366555636614363850028558292912885050597049581307795262735096162811090754192175638782646453526791135380468300828674638019426042493453479572602508687686890234647964416227530400940457677323991488439232660792564706932501676578265535953251363112376369228625019280678914844070718668756960189716599635854393364636647723911352926714065547479427053680916377296799155215603800831533880899177900077469827610666824375514487203426023055811530645581763804357610624669720768843920673461115584857749186549200612080650935753286817785869333560470696902653789412043860129100261195461478258848612386014734059579254306150351474952071234828086065756451322765771227777177588106310921019776999875036685919938269241384965412907872425257384381893771633902944749623926115133712703063598460704537779024506066832860364916690877010239806453346826686959646425179791777101209276236350722909331343659481577325051369835217044749193155800893465989388818799988228169888494643064067769493238370246179781547172689026603548155823609651105414530529864118557766207510336292429571026250663668138883615590416148354719074285763523051196541869289030664480982635053567045854340036896531061949517555421201988616273763172295904153831990211876667870975511168637395295333520077133246047459807645202369124060178571932934695648893062543165775316033165224730257175813242673897586120404525870346174715801566542649957737505235930129504166890215132623964901805258647750845483763326348303242576737575225956345433690965524184689217778863662814648300489151408415873513672228053917954967205883119480967024375136928178196691534546354456370752612676817170323983585745366989828593178444045335837764320681445259496793934088081878455202702216977534752630254646704050114402361644718640699263768612761894559859647059531697493070023537218008547564881225082843607347370315746365792195021483497141801486067462420606619584080458319675000720583572635600209054369819850003722315785854448549722886435452333632565096262416811644471798397931585543017513669968713228602309122757367053993851945273935024281523305761752811692064621919766440265095359164903825450556935813084834646997204253467748743889529962225240744533879557438836861881955412977184604290955938234902088909997139446412942865554568363692185833169977211460526251994854905866383480915895033694985871534938035120385063519958735397854989108043781543045754637602271530787648134098069314403950316489290485010020452593983198723824588786842328481356219880950261722882414603659912381214057678313345291588391863437478381811622135506891576417425674719782884255298962182995199606635070499601291315294246441526498044944315650421804252541977353481527597994038330932347484653452812402974713038415322498369836305679441821001542195701043619288624676478768323530294577261633091032984810561578897044643810241726637037912897730731787664518129664171887643366713428949411675297519628378114194820119337009508070329784700561586853718947463214639520607751372310789982237558924385457192492582578010747412284838000432393413384323370879208284342458411529490342389202072949091386074502449565530272364306925990530112609743421032458945388019638332748276363835875486914612863920652988570859864928367381478526224544610587558835252674644849441830112710286765010846969290714094036075411310269375264665827999300034310714294854016223099360297206384145740211186936470368822193252217582917631485584502016277871112084199111388104224480934924563457683230941891525688176943482683494718501676478952782313063294737764520564358989924065798353462469447369353769810092242152076242172504309336111638490822510741923452732090632935976141504783769667271218596524110259272355888268634807354796207472156001319382568820690885743152407342545956491869122726499298782245228289088249476732257453017856196290164287383950174403169018335976798330860287691185898888166283378327091616726073640168243621366864057537861053181356880727668661533567631592669107055482977835898690649800441161346460102631739946011384972922055738058368171213516783715563166945076064691991442203929802833694918745900521775354937241971128307194964248627433058348550553543981557427795600868968107075948496722475256707394391530113106939332992335877374200221750264055586469895066960183961620352948271651661237203468569795779133036479835784680090956510550592215926852605743217016209507865512115980384399028115076194488182680821476696574729536971449288596169176618709846945310532772000652268709469980936106584899632639817992077688988139641105358086285736351825694927193062097463961362069150097982176957012853431344096482924818579728125968774658447423065123097748964190258444499711479424932006182299113666315228199255373061142822795771492939023551519369601858837375648089891716944726656926392702883655533103230442453615181866806328008981761599758220818633424790130493116649893248833241558642408577092220206063240586511921394674578276135494487420369501351235645051288180905993490025406062078285140532231135691799318986213281356045338862942930153028733226668965378850127210875763444083413549437258181233610311673141786152637734564798924005451214671234584168421569588778285096759069315294839096219943286800326833540226372111256282558316513259773786164345149996041662306615946909077482325418440775645988859315036066973666395333717307313629419276190826502806164225957071862951785276318185582148853721977258111050576371162957880071908097070842065951846511829917950944584628233952152764002441630392014837822318995386631080151820671247077432458956725340737208285057735000289002255783332860916647726581159637459509019950190781791952728958784758634119269592245984826083621181043797195495054473750107455559540658294893992343400519859406693800605379160085677395543020145535195690023120814190205357821122325666514843154098895260668469231532258686401901394541716608143728805843968497605084739850854180042698345305083786620502487911812857635047678193874437219408434139305248350590381264476180838659317338085738614595865081193734592925802125556379542491592161640347980714747439770215281900781706905327146039030181657014693011486476339540066867801805572497086766179641284239603261485647845290154806230493530555330323841595492590316279414662276446744221973388543951065016053759379729468780561981536555275172450785533704765686946458893572707327890004321295688339513560979809391018550014617458771104485409587120879390478985177734479154642434205836489765623184452636736868313922749454915424049688371352819661062517270695999810916114666688433605360771044253084337808626615513266026194574974697563606932309052940698513226954177738969461294601478954474680700487777367421841614886843435527641540302334576262199204259741366775371941815913510019435485600560282212948015495341775216567639247523667852161873660206988844508258241054332295652868340976399413792459105428566388236642977639487366510275467878620660984067748234223310978287239944670698724082572175612975439951125707166484498025107751708349989957273833816741961006126391027663283456638033989003963967994989193888117563530697368295893624531352261800808067912455454526644221005512134666368446000678887066320988252776377452654305424280103577985216992649197147219797569569737571945352483179536079109569227203177283624557299866127977083942747398878475564885024694068003214598853505335985153854722993595112501620185379715634372968777198661084689214752615521912999362972737577698098397220353440179986717986226207206949261831505908989020085525236404015661192290314577909336655456422220319716479633998705470696118761184711498291843001581622035591168477723782718131830729937368281844162497521847619243452614402431775196073841608307252562965424819319711035442705288521072622820250196393402596785393528018594466549768076629551974619379752331967034503331472039802935371386965419403497529153444222727671075727927682771004735538522102727947401566287704065577558910284643036070264520560343780303130983673725998127350563474878316901271197078048594587218966975389175807405069001084093045473721304795731081907750478558344456248263669736925797866616952014304284922377474939836074310161323929085357935380096338838447957412361756043453612097257721589295442881916828776180134939928143202605191647000739036089757580065828621848985700541662266544310756167478761533311334492469469861211437742272479971450993531148283430683894542418922586282932642689214830193964319709138914308128822132371139794545781414610285601288236630724911803899416035499013388077088068103654704360082915568079966205330640759262181667818556588786805622601640103734698883247449556910306545072894515060647783218049519973908018142690571461052557825600239467233989693498540406466849318511908944420586490920130923342609097880214870152606131020469348900273111578260912926280236438709897209316009321280307500781367156709158987339835566218958537332853788305937625564415191021947044786742965490736325829338808902537906480464508092264859888193280580862309296395052832052664538814249286052575997821454090360425214310543694194667403905420285137085492886927797469012149963304944531000130228249153883551364460741793773524809474818184792397820944283383960508863107365605092153828562413166697098893316001111137961489334710216580003415087762933018773411557432917549583359438312524520769197925619181377011927081041113754058847160678886391405880027237317322887544198861403819811321405523993383233162001688138123875619638529509313559932175063838972349352320239476280247633456352277256989662575592403146731597591217994280650134306882079838306444193627796735481296981123998880284511476188253040229237496997509849129127439116627213758112678614629898315640671457932445484179008699092142482067178151231400943049386958926955104723301144530696872922167068299234460771182603240434180836185008142016459694813013452873591262068571029653342574187981992755549096345722667240720645626502095434588903502788529072195202208364640328600900393038881796104944062294520599805412328667769877403576490226681369995449418444476838454345271688099020042239577915371062372455168433580536734407858238982317246008347216574186450449160452556132305308402278854177447895029170275024783123506121105307353903258729194805992920270452706135864492596376019164629472586769547164066524065092793337987134741543150195669424132725099805569776447570176549802488533254895372237809613109133383450619546077773906762593609400216056718930241240627999840184761077211893075737972208957729400883664856395279641491133066831203096807847760467980528150677128287392695297319389350920207194440007381472937918582138810682346629672526273916466791667491141586211350687780940989387188185105342009268530566955242777837179182690236935440812305383448378381795509969435844449989839815773060070172498162159808621939046646894032126947670644314718062932980334854983200446668700959570567462075366989368581162689089772780281606260067241096869813080145901023468760772289813787771798284032676329503029288652382457460856846391840521896063132928249143491571346441345960192165201624792668026472786064712220811246547885850992450612474924962265991024181739887708464499318174141335561398348802627919480906731473836121576326943686164394579056942823523298255331483953836905220611409479564471357930785136276352267197811865664525683160419658197032291640782630247014632234991101257907494516824113651511751604113729338758573680537508949516219220524272873548139309484031375862517437732243298878697293605371669335542302357544595128517209768068288955768007992809971920773838327861362055659922096013857723633617863577594617235269140149244942309671726042016447395382692596487824679188352212020587176332076293635405174155403346819995350640585504033629763649857991088084159315944315005881340377917088493160695681985924362106248748201100343961166862174131932907163685910826311473115732005968688686461033319298074869841114787475881514554050502601600423139814913234442819598948903319571472420371970809838792733770782793579062011255145821946661693884572505272874022754579740691077221251198433022454362787712234214579467311136854393292539438713478492113701258628741568501817961102457153428698902077806683699751594265848124936832788265094525534413879383351785013037578340695516516932360185974355500324965654204088118052809551806390583013861683030636105098224472071888317212442525739734721725175178181154460352132696652679710521500293886632469165642626416770087911706632834203107396079345309787094874602889793346612153937985246460896687764603747529120055844189450346387884714624468244402547576939936999036162021685062635965621743040041460961619156539758658385638088005159817689934813367448531554213551901864545627884675416664494098842775342194986546332804793072953029940175076313538236083159140050773316782745235514506912077603498370728513329981024642526658613734063133320451020366742157093710606549934758839571263661303175463666382469406770711369610814682097493499204072851557547725467149577691828468021605801913350515354664566024800697143316014423668169565598275146397901189470249858004896368316883317788951673495419490324451549616677126429768280186629166681826630218344773060975121391010976298959040993847431355240641409058016259735591282182328594877955796664237863902396497272731971338349456080737063106254548076136805627893564150464671890775164515754824680338527168584513393587716920354705506803343511607417754442380738524324081693127451517010695295058266072144827096162920724784643303754544385616099817846540601543810167212683570807428072686024314081004645737033965459433132567622857117927867128917400592418881217068310691933746992524494681696313890276379091745822737722289609327703921935291354163641015636326901786999212164987900472460877785720578790912512927279150495004145884630458205236369626637710804897000726558141520859390404422238099728153494378801425675390934564025654906450946346767094396041673212319285075649572437144003045259059407866081750833583658117559536182238657903371575654087666891984740245015053302706735843589378856210406342596038123667929286041100038178852407831729685334428197054406335308058610778485132482331095612414064096791093106538189761352511667289410020057000575254218332964724429615918083798742145511946953859636937419089454317454658549940714122642285098763964853243466775790092885970443380893242314280126753533491900386148766523672746897459706018804663122535404421385925112095552022507041682210819788785474664952221635727845558099917912011128709078962700712098751634211884121632693767996669993556099910474223691007424222812451296711935159273926090698375263441432453770953121234738553970259440415817564877887555769095650000301927407336889987740400306425535309633477600658250275119293813294216566080294027130725868519461899430370991889883676791707646020514121584938293682312295153170010215169668539494353885862592399188306805205425128088398252946390146474447190623291870882910078705818548410344007293961330675878876909725803692817758726621702487281024546859698190414696830729742031930187506709685897974042046240247861381412744283880921890014235645405185604116860447593264529109886523455502164998591086210443293593396987069976087793397307149428055158607723070721139253141360328146333162738452482935625176363295989548346530147883363217207421454779435616178019525936431621849467001127380207571922547125219179406082222781114962751098855155065825219253848886046123994142396607662512805448094974800296940909124989610358641854804359241552586192875850334861085833836175865392025085313804636107573883687172698376404334977362940950126593599388681672881387562241085192251782623409159915539479365301652453205178869252952491921065239225482145104929462201095764550978786526635219219743591502805752469392242633808003258568031902997214836268189885328741508057693620388231764975008344711238931894224273504501205993443805538729924841438042463703290526782202231573430389963174128987981046905482279832804150917572092027917936262862732751475279111307661219286811451304542538005909235488512493745303892393223469933200212983621997214599063420928912065733777509454317340120858900858163262916120858952293604257039177554166557567511434156182383509470921590808282050510310586666336968109296563099804638130168261667803866308545503930679694592502384683540518690067877654894785601912026494706791875817603376950683773327127052341727686400677947480006286088538274976425680209457988153648406278973004161716748416557720210973238771682939791510671777353619532600911229406433454941569093462682745269452473587721034972447438208178972525092423943026212548774896866774677776999139899082807669216959488536463669473909586035204916806102999486419197839278335145919065193681855164587278663089103114403974636861325821385244525956967887066186919161618056152638747954208077374479759300751855545286919203978677295726442554697952717234644725674855619367045783399539922247608228388281048648715186494535182229108382600795420612197699362868558331397515411781235988541408494250477212372017389372231423956209714892804566501132500112871549564819815469156967614674254137640657307570112666731904046783611826785234316760870599507706741530169112280704203408657942602025639401024431908660900264920541496158511056374153331293192407028813859845055738406425764347075049321973649080023633402670018517196445789942925343425759298183538275036919552276486885328400573228884711048049920050039633295567912831447996834773570016985947117023138010698291132253137224851053283423739225658872015611576734218035623648328615708993318521052864750443530840858770686008964875143320213913955858305502770215398418177707498442238566456719066129760621011581123859467865982660763241887398611580157768570380716890427627656423639880183627612283128218221965604503077566622732075214311109524500317837269634512974454301140847909693969990324771882324959683392211393376618847192043379019630480249119832153153820277294327276808597392315721093874858314686612035995712394588962053887327425458055485738982828037877397985055996582953799511653528744908666652267222398042487929847772940355197237018920449915777038237232924324222487931755300839057626615802860673999437755731639969671057641284415595253475392691795114699661281770325839582703180238800821722140771578137971043606042679698215930323837129920687342537734554058946669183751493588019300146867855844351439632065051079345385903610077119287690678324760019614475070797704209014035841547558639090380723363132587341365438727558324037588734764596504342091476373286044488766490356244179632977846224609265532792409705475511169487069018166865174212059495381064451504319318289743731391491885313784892996571379903061065042222705882253913715140045413685664129853729222128483362056775255167077106149464798172018124201160209792829251384417117940415462092855525924584398991232008152620237474812897521130210075009618076319318891701715604423953329446378943562659499704503809794106769913452546738906798118328459245385736081047104485455889217817933757139432106389568700021557063983425655642034112061653499693971060014569011410884383261271063872057937261916697408069795959865679201633502752878009870132682000669872779407784319408307431752803869633186306159947821811053820162260072001806137913866185862574352980384113793491735362938920084141279420065600780971036600194116802180043842190899806116190287998568951338734087283685438105104047559478944139566819532200452314029027227600799221736506264049406721930491945879366801573471732941449456948760330131738936681934940086220136923248114430740308301820517096136766163863418618889080270429052262885984853944233516923076278483459907746749194683441824325141673437998712684008693566579195369482638501606193315231714306024707543371287993772417657187749902526379219169246847422338767691401422610888726735777839262835319264196838907678097479925799257957535723999236911031769034736529062728438765413223193729723696315742018311717685136767145360684263890286784548597727492419448328175146082377256722000743726590844509137088733414876687846461642476509214709716806659269269987185891007834324481794050362397548408587697430440988852036326740817505865047284398986124952262870128769216086414669838000545999497989556730102329150535660014377553386506737296836761841149841903037207230355354803385737344569986795565734634768850179154239681357468177897243543482734402991763676552525475647561875301459954770132952355528890887000155631420785288342071399273047942940144161680176818987200220966401700314902438388664027032434288396459364379048868618345507586228784011334779537414131862593730384664622227783999584647793647989429586380840287260790359900919134293774428704066564819509263787383492210566553609012062425490929916056276426335473455743732379931017694166687691272885528649415128659293135050024954311043426155909199333352440079833660971557810919655565887786112543025300379356377381399307257173236276166154798248385626355780706958385418930158417330735245076250535483927151705654995197485241978696761653866662257278401719078614062377035089060801502322666388688363371713816655428350737017003339750202486651308475374153761047870600233317902628296966176676821277553666387219146044623152765897765004309552954433245526229769627087116921612497221339105542842912264213582966750889217706879767249230926892124630740846679487615390227870520697782040847206662503746498340408015613409936436226708181657030082549874378479851450337427518083794508785728898086912086202132376542755674844063869385168885563327004830310628213099182081413337969734558967798799799983694995188549664290216405855765243300367408849663586200359049285278968434744410190386257442139717360559532677260666747064262645232698399711485731133493133358016146197628560973209790963921655355390015136917188878886149927381052834405291534997902104389230270496631519536612452429322261340046795649664219008950172393390061535953621960272089562118822720594508328964491237554936136697224270821148806847626888258569748426918335432185987570669632450136063402977365204045697021608667588570112321291203087829159282829675464885591513086708216915270563578756536192734507140572892178412752826083582479192467516565015372001306698256531705926058307793698996653737353517955807047698250792140307531626785538309346508729003199208514339700784866694193165203933915337579931881828756488843084216266146000381727047968908730989160029026965621018943070052042353207626751642274169857792863865674205654568825382241812212400814068115624359449680982850882722629742136861614688532796076140172898358587469028230995974945199965565383820066992653617999182620798892674328081567244103363692412932409054390147944445441982621366604043373785771322401524076410948443632806341896105314322876777733966235768693059577841074963926643327852746948054696623307134086363476709829316531201284367356456642569891306020394924371511631668746916886166501775445171909399004872258374719803406725923945841857861839032827133307548520939545719024426456514831627706018501021382311733121195519954409811106897450911742035892073161265963028168396668293241058313225875950721940203205346607005003217850862126608003858988588937193650699513375880341032776900859512618653645330117376792361527131104987467726363390220737245570716291016577058555608937430823206511704091180075595714560707072629136145549696879505640567733635228659780900586964656072372853752069218901340697131602471710092531672783026688396257300389566442086803530763088890288831122280664087132494126912700530971835079979771029074018073825019496972492866316323529109264668708032939900747697558980005045257247486304265747650569421336011375256504584585804222411862305262195080885161579625693431680806103532675823925890510186052116666663351060903845550021046815255638938799482609771955567579905676818459852286440211818976414600552032768775903842216284547896970224477303407739310300297157331894080066651014490015709965354368767849768860221719357364261762746341602743665325154400013854400071383575673406230822641172431880180659208417607127786853416683201782732330665011237058324345778606052121384045670408395835553801621371355055104814061269092851760489882169682386676616465568152665444382159093252751877357163682467671672115055334438803552137003037621071224794849869166208538047213927017696258662778160534357686052852460224396300375245042973883446295682423613210623834188469273659270263999487718268698514493696307653356189219316459530474979167374886319946548620570093648468946726815135005133966149123607082121596608209158736955844844477279918238037991797970435482417851528885384134568146014430718199422779709743708745024689484168736369848279158826820187003327768503024897544773537764081804932850061904180251045718189720153332102437321288129665595379738531941648889119664331212392812865981427924928868270485835293132563442423751598354214217296171253050275620100410242199975292520899083769742879192350683015345640329360181654921696785927955835500068526202112752036368672134002890745450209212046319575338313380755764913056251805099766974730859097829290082803269324645067292287834642033829491794056981769716042053822701655293941522848360801939720268696752313728731184133770929506661178184118406750164764831780739211797621805997512447051026721893348266130433033699312222848911709150164133409599601871717583877020675493678444837773670562687031681212620108298847837607949519983708290257979981195709710932850414686178268101202584488354154127305112078519666993964961673674647951636571694898470659383296661315752904559455050700497589633045694710864679206250708573328999147860488552267537628028338903774321808069181532659819252132757498420727744171937637536457575702221806205124624490539451433771453565250407812432705823351936832648660168856080347470091146685584835190759420504477745211669658669164504076638340031441550657457835875233540320404380835175360777850470571707156979710314021658531480518457509401588905270476167389641182138537314999298734958337772612918311134708270278196870190277430402002215955715892360858687473754192516327340849631242245642030148727151740608405630599641296912296970354655524168028161679266498261337799253342421609601693809453113105977418357196189065863824702671332071043785510083344047314963865806695480597502648478356495551966765760381856770534377483316061839470694261389994974832300712711403704052404148882368330101472387961552460488287211814623757119974777053771192524693102238753041420023696521094016375634085780283825935992344052688228996314771599702264092074323414376354697790379307185464731025120974927051961935546266393408354873475585495136665861951256089882567032059921280779847309523421896429333641873604512039809519277861621589736973769261446152883512889476249055161200356315056868034302486009721643068803533474375444361310021523486339441868851412515726906279733782477599600010556112022153254986390993384945342263464294164113317926549800059584482003946422233990030072096100593867212545206020385017937853924329942149185183101837892604690065864117653379194666835790270179802953509848660543578288878793440682269245885896634054093813575093684363213599117326014078114140459117055277230727000289332541634508328403138996766969301306498029705474044129136149171349977935083785229139197356213787252773930210607267119524255057961238991880503026542159166020622798274118804172845077645233291375844420500792843700781552448985084096288751219023912377679648834367539248288859067835471056893948800077885493508058246062968810752270746485826462843445361859418241529497963328400145251706818530895678689017619684934802621209861163796509468063796873309512294212469731895412543299216359802823495521030235036608685863667281755245097682140829562724587423011558564798492421604462132112635172224303188574943450700880846078867905043292421254625115773711374848295987081327548605026484183653935385774148507557328295049184283224593386744860804441846585515143987252824615706700543775919414361116041094731699943602634840769625227879196278989071429883024353291881444972295155134041118429475765014627619343618156321083255909659627705241326559386731112099926736719434923565735359454370476424173578907398042743362183753979911813157685217176006004686399222082780743012459716750659120272525616472025249005402386094919968801281974805385199786181666023529636029162929674026116850267113758174688072955572329250233057750391651759575418551513487982340855393576744021699784136191173242617085688641822877548366945686098938268404007196429659222324962768457864122964875554661556450060151496130618625322872404780351582754736619960997209200103977767160941748171553828555181006180475426675242846565637308215926343752802873220109496853905692533484722377932012080297752532322258303449383435875841324449792778455928084068537495460560343110460636264567309472838608171744255223418855901401100561934673409402761763172266003986337572321268371285363842800396824804647226873725724992579303751241683606871697283268770912949306631679877605687613369368941718410906739540329762454918849563960716243463818372962009602975036941304141375113734870519530270461322168834718960687776486635147840698820498671051468961446067109881400677108351623807061471979102785173275727996568732661501390190317946051036704840964973705611809734622189190254541493885552221715517185318367980568650662872411010713934016313723066260103534230883237673759599575026129644330966874825239356467165430338908882908946127951901771895966957020580359858903298232218767651281959926302927730903518508955585643120173492942524193951472123383664808413618471198425343242022334203341467978347671961745032017828850713180881980870984033806973059977251967808136925628012344961149419871746593508085503909396815182506115608366379720840232159294099497875044792670360872908142596549346126163686739335311531997951015001281837171495743187412624557031938330889388829882247127133876439707334204960518261697957128669024155345058798587449555184301129891674379403992329763184456966085401935304318594197625253594805850469441437173275316215813252002702757265087318546744963224205280370328598848251201547330642049939301148478858080538596166225704395356748489053431061022390586219800911306548714784761609395568070721054309643806936299050103860397699852322383679358315041045697918568726225577363650584962341537547113250326385361636509247881716621985784970841845699341383816366178817297729145948525664695559082183851516577113223869373215947244274348192533077340501667102846063836691289224398083313041524298277346854134373455393654730059946714329991974976522442160363201007982211709988462255417256211211018281316744191788635508155790556166847980154971556923597587838546937256384574371520632563114391977397949083165397657026868491747683038414379146579493432156759755893262717969153478894787830290747302109342137657009032425820016789482708989717406611030839708119077812734684594176565603224632509828892543423458476867834095266821145150185436744001586515436670399913757539907552549992017432347171673033131618173664866753574764196390977122941480610586363805868966880643005125569606365310027904099326760268667501310043068333078426761999933475705470040887009954246840216567682494973600166448967329815762279550062859896471212494278353224062703732597300863529035030993550732797572184468127963070661985666104511871716589773650622392372661269321365960104541112742939762495633052291910129674522404093297565385434704127542486121937889613216696974894524440377935067509370701648351784201273217112520596962437920950409786623203837454730026576261565052708590036197275184769412584299384219515385622575349423401119351521939402639599844865268230856679270623744462304293666421093934070906263229954293876685022872510290518383619022713198385032652123682118421764468314096993775014327291906076903033922054718066533374867613470346547098752716343808685471219500818060692708349386935594120093229886009363609858138333460556292657988322736296010683250595216123920237170364619276704858849272726556971712534521325660792282346746919611576561894478704851371800649658739445464592546889898764572235902490656076306923671246402150884875708603410584096615807109491975657626565886711271340510655843624866311207897511656673364448430147715734199543986313952085325389325046825175850269148145008791613350410096633905783212309647039286678677176443626261926979685866988491011361611130420689288328982852170242003042862742498260643146154742757679953270016370137672465668272667883237875823350843116490122643574507375733926025105858336334491620086215579229716246195662358513534501047441233988374941189379577600782242916124104105913111447556062524686699444454129534662285858741774034456175518376151458473593114748129712777471582729711020281625572135091730718981602514025023829235809215424447328126945361200370371903221300567900227033000961303550245256262471730513219092459145341806159289422494199566096295096050439996123758590535301913535763327187450423417025099241415328772770027950346133236285585859110940864672760877755590840342082098441637070430756563156366061773183314919948161557804786301648826517466299032566463737333834898924870443229049275132155823411198320073029418557824291387101326719293668695907257377559228099906563988395997694063626444907138913034408250847921727555914614113688694180847256374866349548973857408311685115796801173849922576643565709196314859874393795911665974823936762831154264005480732580644479767237111448108875698209359011405549245515385861979756437433634522710285745631696489552624570972314247236954670310845674381932229351041816010871122537202566311418808188296307027758262364561811830849503780605203059220668156965966137771206414937638687348058131583126525335360535578933918856077380919894541227992318860842024971515805597174231262553185555367057200901693305654486530821998808587965167206224068874260647731966158067809430640904702509825584065191971162292835402498604397920385209579053077755838786691598132537863142933804628509023822192371462855773159427413931648465329563203462543889592973792177539391952611284534690148659905252282833888082113764245952351497785150713641340581434805114149468327345875463084848993021928486962834963583932881172731402726740134086197622190873764127293199752267748645010562376777887376483095704630196865638675096306176315478295044087923251791474760535737472282145786114564279851960529388098965380943950160074870225541654069924485930709373398411814040235502746090249244146621819898379429024807635871290456436187856259428426289762166919392377479233188973855009387719672329709194685520917516500934976308338357210654407574404204020548621090198760379245103501691970088769007070784478912858162157722114028066471760105987934265856574173056720136876748227862769034898729024895703012573168894119040809381023369830421103549498245727624247687817266796983150551287309463237544909648284690482898179309173096674498595817135210065861879902209357311036224223648367600516368997815121141995826826195133469953785650980761220712610562651901089159845890649722481904212002975903626934299865406976581444952469937095359666566983612676589929717671833848384838076837003168372576454076892629938048519100463681723537481508317792353672859059885253065563998622719286942518867858178804964667901786824551932504559426439631218000270763993748738132195178771333619117038777221293493989919436819196024138132717252783927782635521603084754750967823012080979728973445066146673065980140671276189070274000792951997552674470505156780845713754121838938301854677195922030021142778413269501540436303336006560232715086960537206564914379020138740578494073462612416940760556742292842826101497324244708985441577521859339634874305266090698570683395146615632151822226414192322860421068382888329040739142473236450186778013286597743073595932063307816011516702788438218660604445035619940238553653938866383730477153378451430989562528052926492990769209799371713764279726273211857465160187486192569686417691150596096278382847425615727714660659729347963358197100565839988175458117317619527739881709263527822794113499659965672760958891134789636633706162447514492534557016054479035689945336045141649680800735614489572541361835042428240497120334140058488113085248758933044223755003043407659745309137748115684875308380909767643365783150833550282836179831743868329317644696154614142328314810631454129717757169813574166712284336468708366479737951373096510330801822280137997382444922732957825479706279907020960764299581354307759454973321786326353815989209642553844235816885895520682016583288525456481505830590898184667088955795078270529124099721069032511894075098099309868736521514357418898363225824292165248791362609600979921383817128516059949519000325397053402610150572902093257206959870681870848480324436516164700136034935157700670859833226366024947438035684032749282246243293054897050571968611275021661905277020984127886563810086203900130832087432580221222153426453198188370733960311747088647808325858372442491658624556649922771322439443777551177859590175112597848291760550742099939377541582617756158610376492489557989751311472799512647155444649659608060647267141293200853881969770828818074973177634909944954563347573626443716707842751828239481789528337713113284541880318435820745064742493221623503420469089567172555613310941616319821697508013612318490617545470909651812859723688294261811003570057735170692204216449489075723734311161656301892010424706825855054393057872630661714038572184196725316629158059460039549348920335538526645220936742029552911231494933317858552392414568832907498289816633936634612756654749631729460440666311288078499829909862533213178654013618211338525601955880308478120100430773112838560304060411328249641751711353680692324345533453661554505472367656826305099042385162049360033516970909761492716985335900660772478460236459185128480615105216943786194835727988909357688232472340604047062915318879860319119062105860119014117292727800949109020628903946812627816987376550553971641729823299000919834577936216902708718928990710613230003154872057712935855024922166819212798580814866159307479078500712597257053682741548819970539074079091922373427204688542812701792366394685339736705904932948262081348394678105527073388486959174125257107778164782747926593327888936771338676733756697664584957959598701393973155873637447417910567954301001381460594946840139735986544763030200435450012874912665613846156219526257989284890273854370650375453658306929785865374528695637904514546195044346980642296272432068671469695187564855138752449992408724827730043005403377316102638102852457703998375174154709972327080345704741287632310054671485721860241253989547305532805485200091417934100667551849389270518007224136160248443597613884223260144040051659709947883801195900570359791734732840937491114352163700022860128423004083062218320490462778833961982345054098418912646772070287280828213227764670284531756894887078529918135614956342425048634790990773158650161171871747669503227861748590769943005496460664502015994757302784261373123182207047676270817500464074307786316035381011665340186746635674630968990264362892093080498389687451269140683755704663618351376272551513561871007453824463087878713463729569700834473877435511871692678177750670878000318122682521969307410142033558984419511553528051785030116874495253958093109314925440779411944587145026467673932338069504724446920770875587730740647566866184494505257803215049566480534860423186382935570818319025757495201036367509510613562852889843927156697499483705004604590822126420283080680313256627896412727265460222533303735567689335519911328343471294203757762378852818655610357648569265655232914303544058715305534614754544129208326382640782877290055708417381770495674287591499277533536907168196911959670451356474151534534963542668292931776823927610933527995867218847912383886657297320829776381286498444869502012736330035534032197978805839300156777302658953643898858326246429372148106386371726752465395808399443831016578691446151431463271483655593005579358513393869859516065324703183261388411124757926322837793390663033222005502592196348587278483793074353877209236209993267590485329105546664738616709021363896901918364664533519506003633034340548856499966836572223918443657450303558721555314851794541440925989288263032261809326004698355311250928689317695597098117625851509410740387365564040447626504948338486146503614329429439552983375730620372793649381925626646027130480638067523457969145442398138520414981458018296836120139753118761286286918603397544098262298587881385901475068872443878991809567008037560470516806682691787823371655408495305796052907779641451618701986485770586522938571865610128134629514182459692956116332158735023585491069167039402590162371010858228723303229136899046723688086150945329866504479965788192546258273937429237303037603695432654914429990035023439301048415624800520945490266281324678189596575552539187615148395752756594909911460139865824826159286417743345736946958982210784639679642744166244715105428269959315752718293621669745606254419753346066097132694112580992061432098999362533415531106635933449007748760929178349984155203701001939542853383639832943595312635386655894380391423308339177503678397929540610460826966848747532219293349213328941139544760832270330867548384918732004650562958069215529624147822271046115336498471620012865126782475361658565055170947280404960905666562332345654574834942859954087728404709515827397792301593203047645482771231586664865648518352905248576996114232027766708462902682370840157770386333534940290824132398834381594852605790467221752422182319227845294793996734630430266989834419055492144801157429021286641679195539994812476795373936634866758575676537461977550916417846460759419944037603758133975593448473875899938078748779674956685813770637923272843472543770970527987965184273341359232783688525888053712021622128414180294564602628309326688764528663449103344058940415273641096990620764742536576650803271268456458414616539419295807164683789172572662404337766284408891939832515808621691747632657245517970291284983202112191966893840020277444657465002373537964518071858326302726419390678540866041301711202273882797498338795305965694452321890328647229080330733956895106936478146094504661152834600604304711067511176170782909441790571104205941486832840248260038348566278187894922792660071005512020242494505934167577224625789778954800655891553620548020226387974344004020083890289873102776076250629660194311267172630856131572336464524635876072997083949488716328314853783531784231706411740940456700763769078805433249890243791515757652245137237844324774728732835363191713854866242674782884262163428770560255097121095934302205464286440677829227759552265730624109607455108191407690391888926404002437708532767577567232263528571065725415630628457763336884371625415308016331797187463472780313766174754087296095362919710897437447424735074217844875369121558942270651252556534228890703152502554271407157720889525333455989641049355783281831139365097507779628135388936886398437637107729226246201324391590227115345338465616637368139485695342649899000208799564533242505262192418404854817677296606008830609175158156493273813443006166146446239270242174817152718155684060425908182203788151329591794497116980046075234542554977239655003402936811976858567019179159070334613384487396304570511190611575264024727016306231252121264645557330651899700042765805770850875265756156976242762541808586165489153545388309515806642283471644877321017960406417009262176886325288743636141063695805937722153937831457418400310895559554539452604661068123234459245572682832296697520429440062850429669275933167991284236135161228334468653683448190536090892434799595306677536227473222612431032157488521913066073102399050488744181796727530896016048686127843231177840844106102907585675421321172233238722296967836939819149394407000835217447053457039255334851115958823997080572652789743091786805702538480448732973635569425568147890306987541780517923376483562637066802587613225941761042780158505381067271833332821148883854561466223659816168912120794320696705169079424274443425785343310687845657969659370554132387371765613682371939285013260663867444550507210074988145202498823845733918538090555836382876863878217473359814728081501604797487523282671697525870568649711397794819994495286653610821049014678722615925491754435051468140631003035900290695362349194887355808905489706629337922993465353263282113352189022503109305569592768259189983348191597280889483078249606131214714975146528009927439534644630440628230551282823201595536152412312256890861839880145147619165856577230088722486334806290236636225189762162873942239032921378867015813063614612081168362370105858043233916171113656558367701414038353203415259167100542250971317060812295453912197068994090650044175847501156748974007070759912689787167721348535880007992148154495306960714494799558403595305870208169549630460401482809324585904574768720169317599653267865556188446973800360255953930262515311148373027242684996614771253601239836392649557583851647837238336232736994976607612578955931030325734939195475609258816879856620709555571972169620549411875440303579756932068532502461589354002456232753580927154145132409913613681242970901244492387953145940010531632123747766023127246631105479225903292779633390191640339737276806282584694785532131806096834278572046691609442115670125860440089129824948584205061221639564792619117529191439484686077251502875832225557343786183976248381384308997325647232188462627775007235683163590147891055456166093131988623054306470970170817020230061451291459168974000198563163960208203666806616982923385454527538926944930900593774727667276360811064838484163298327038179060894137012695499741203876048144151972009374391601016110462433091172898111920480646559094740548852102449203453915584187403513275750095351032371116042520493704663035396653441744158778940616402196962313484055337836648992801308851329218240483922274392490557993553709818388995113556251975121931947171654387002324246232149595359117562750041143450752668984631371645236592837793407763802662653444231122816437814298413632271299736639828417932911159497100403822564023687508609309258227768035409529608811836227213039578629331447587204159830421972557700580032058185643290088822162897576349798413499453099785053605753372499218013330427057408313103286357267246587735224896830543966461926272195586793755101606637545712940549332374479893973988310607845807964708253101941219602187493399600503505949410761469460857136477545550591465340192308769478679984056170559763833564303288578093534049462922984745448333360672226751497229338270733708486642776010563397871303069482304099770494615634155820627052559475567403394862086885615275590340491457207059665009395723538025436338962037117617777644338263584518091342874467928600862128641086409418323828385423902763797076587857607933756827508528461384627160344133901717259932457774452258299577702011858510785327725673838262335336194493756059904963349000355342962627502163935301348838649728835548414249452847328448425746823357666630093909372248524834732072612946812748267336492039755388922500782842556506922917961681918289524784980389943671261135783525360340652922927247899716255449271513854386771493080896487001926049326433644508228477933085212304368732796513341180351202040726700427679878128525419357448892342954450931551914075708417959908948695720526408170575551965309031972446619640333428300379326995813933628973531922964943481673276316205226321162272179134255964863859618393471524190463532547691358627807965857020650606809877065285215024333587654821116915109905499583400492214623238570862872024440274349667006994811613808495812539091575249900147526393262299776185536116363990049839668735200754382980936841302397979745937595784550866018655951710524655068013060222944452985719032485046584131649535531214161275958959971757744644079798726739725392773795810311293766716122246235110535621846831440366406148748391143319487249988973017655592836414001245020271841058815753918486270215105078288913648007622494490529515270149199013155921988715917597422471122580728517475156760590421126011419085913296544435070113836076013227020961607257552508793903362499710515901068371974932438145773693022651279303807027304877225541950086356712500073430870438713492403762514437995585408104692122186731609538817283289347167297114558611328482429162968996642621356130499693927881577771061261547729380314440297285701131888694813915185400741752118899276809915042503118562277361971232992122753991637082443403828563611613313911975962006701332687916517557252469239156921762186695477682619629948363299792665058543964009108780946752355244403484772759498293833463140424693708831265448161016285114872280532537227426596382473541523490266721099810200558664401670473759512496286887690380736265116934480551250134035268963192669473715029197861464856634571834498743347397824288827691109363519505528469714352671631400065429700564217616496248784988636512447172132500156139320329617220119096600859426728347167056761065257138957228064104568240190275479332309046761699739470725840962973876985734578810446281431545576180014750491373031778925241417120706992914976501325995203254280191281724813672370510610311722686674824431751565322090910088979355958966850977002611379406725469299425243590439306543288685032272415223859601947182010554340792343046237570551729689398932399041489991905113636074624025820826638602209049761723958211441879419090226229743655914472136528202418866185819218510478027026324578288116250486314178278188909740512807130113903855947559063635900083175487387476732457605754829799309586428793716010439607079086157507036690555565192230958914007881858732686267922302683284012420189515429495129222357736700166971027566630816908303142481796876556768629400895588900410010537930095264321072431324474346362597742580866872642091693319539048503609348454079854416836155292040896631084178574088908969933765494233535944352349920928372608321251677096078842296539946945614204781018429077658581255812389015468325482511114660898400512135812669046020075987587241876305946575799707905199560838664976422066790247692904748762546855403347373762017722785449147536394580832163007184061949229265690590998562867302209885245653245686694309680476865044279014561849629172218209581428908511237127246771554961842562387632619903943400597396822619601537858201704799217878532797767957794844183266367638601707543886080338016420201449925251456549412173417003579260937199912107322457535638834276283752068321951107274650389751405417530141097222633743049897936930120924545310885333865256795193528256005383770733538455288501588550643873057302863234306824610390642418317555940139655571045597282424640996214527182455220466343775471805682273196874192951527729920619338969093635210107621935663245130993841480580572312509638354251368693598895158534716718680300317119553799399238769861402049402957211018641642248759564020622058111901103036380567394394461608489675698217467478198594320705036478862298753178885352427111664705821612431124786949480182820512235265500723457471179364962239122908659682337950376564410473854103086101415381903305897379450450959134239436226641775730549646258311742744061338307480374876982003961483227711129395126025993979707084663731412110328215193859813369100892157232207574989374089819834886648551240319699883726399087759005807396699370604853626294522788255420211670489250974679397794321058819048431003499200951781197170772646815385456547996397069190778794412749149635837388259194679717742874384538383759446445939077911715149586622475388498332525606301255916694521913523047750217923070461835832181996706070788327327951194524162964501707189740721511356710754107940820759457102476534423823774571867440341146352911503680807417184953725111908356471408435770050080326219781441217465831852689673426647456186548818658251531309371341121619822191210632329882888792410745746576037874838653861479058874320051371762023264876507048239622053106246452406573369696388352053153044628890985991469199430332486873694829758633830899909306696012881821791947401269475220980902388763850388819358958425723124293551475903095159948946375017480896041034759662643289397028084916226389429086301005837599251039577723271421193072992638482327270460906714054384913502615799126708015310199336873947017284598112513837202673767585780429550884068454385035212386577891766059053062034694112117661032041410799422462486994851184493171811747213416432835356044189586591674500823162042928158302380253471168149595234301191034585350133137322243429817369678242913170013460415910649591688587901037458138559626188122849310215355411379548712835321119586611509459935521794595485078152192018862901246006783008201781426857338870583254015768223173463919832864657726422970482980081335629158490844312138186725208625748083271885993550451533926514529469903749594864705917594280971302468321623974372074346669480756288542451235740595583809106207328940586021536018980014854077034918688742348314269191232011834301703193075822829654536126102224544165136719136334014175428357077847046639977406212229465656904439318695753046592462183739933851814211622492102924529546324489199703886294862625814261578980647722764730538933958427262618667789192992521651570380279948191429940564687026749637938580165167574158292795645776133732684283353013208910525919218589567321498587002823439412056308965631580066943059435906793240818087684787298825670938003302769374541296677390758770738433693297575907388053136941739903390800045901522356320507782869812299979790680895672156022272449805892367725580848739117909568890176220074481801962936824677672308110565911388089736062384727485724581431407124662162494683278340049920296455709529940869176910464374784455834924101110276112170004994764164507698203378559507527058466286195885518867487854962712488342907197893460582029908351378012056194050500579535522777814858311480542070708146155027946982216884111083641917950166869307963918299738756553093168831311855940329619261136540018916857973738916868636588683803861173103190827366526228280517284563145174334117370149120838843735623453315875175709756671596027715138055336628991225685174329868678860322054384981931550679175933056361694350314328421895906535697529884463176314937731863816093034556113335090230266853497812921639014240928688034163433184800977650098678544837976007856541597941527509732342284498691742636116791088668194988154622404439539442223544135092963408795901119087205746211767824822102016954119493541563653105474028163706586047290245500854665713295454172450656611382051492385253224416628541915302959330043912283497184778043341230192362351896619976015805667724621492791940788893194005863166788104426327691603743339052574367774492170330779680551735935036276974775205164952803100689804073256352247823337784811261007805622399605935336916329171818094210225794124986532562151093193213006463655632840521721495294979687316484278528688071822663750196349957596707031980045712847711577520589007903695461068345903051138810563477332416381575145493983531592971129621069026317611678012371009538587849759867242120633871290837564554782496849987228056582103638751647437006710982894959448390081183658026833797420846933757186289409449267673660291682676361264485145174374178396437129761504855948456704404014637104769020250441429432978110161538298090448631667930750646079230028861944239970855673519900604800771074714615886254391670148431135760329154784671091570810107833638733321226845019054776619789617552359856053475480632743939859162656837852775986156845258597678469826959584639083882175799815230603470836040722115077318425899545147499520872435571412172777511415622814999937645457546375052089407637717092653388005668811335774847310481707930530290264447348404999413062203420814084984469844426674124275996419127571210799463779971274975930738979194143493255940875817062706193750186143213838684367895895251682694802100914414256900731800030084869273914722494389775861846232870992709581708847131179664483657372519748241377779488415988366435544564770946769317117404519982206819698945823078034961720818455044604682689117753579200026550372171747493384560253640510041881210315428075543091071359789285916593396482688235745509915725014074226299929723184943750157452961515659929371289869626712551704831448486075638243470815890513759997028365487284336686493122359872781584218486645972113312155738297288437538806031452286078005796765305875126673363704955474467449769757962829399925645020320016878234397168408648733410026267850085075100474428586387341584985383883571844092169106167276845325349278835362161372634483863642112717626326971842857627889779909667549394129015054661625259410307692208107710704013548224159525923507045279817619182538111915804597870377901603188527881356084713849279358201707574606012975290914178768527457452036995885478135850191211800950475262912616370433814701058597034980400348888103484080677027666901958061947761726422672033816934405061671523509202668167187982120022224734055963742779272209196288844211481927874368591096390219952452267402835929508166991739798673803238739492711281654488260830673464039880566814272403202769124002166352637473700742253479628924302616482100539369638588136923829411688220327035320829837803515554425436319818277801620591840030463640121393884996934171477037015968089707301170541139330947701517974149150404721881541636139689712442888764292794794614731960074947743538134472768657222989960738451325558487080242157361562549682598277412138183552502867490303191244705901312142629707275365940805737168392349510077750335221259409491879291361504740181785617250116894713354821440550407368655632594102892352831377268077114809592719157483326677547287822658876638770672201817711855319194551619539997650506367112202966939832145537912136498513007601572076101792275895309518651597312562175893104829864707138537391410015412365882890917557621756834089661292310607952890539444796068907636393247695405962171526119002201928126492939636783656639438293781324348068332894198061292854626867075971831442218189482427831110171997076891849966998144830597724636718678854568487566983993230862580071492991079248548226898088982573200382271093492530022240791027115717900721168071771770129944602938981415838082413800891220499687679159194675017474559636878370521989462780648786243586144913165422789881432167282591595238340770238111993181232249966615665520438933541649719660771806629945197716156793225058096151674949586116507055812150412859755093859468923655292652190567382572513640886390018043086636867663868887644629582911310194092178227851880129168696629070354462294548811233032099759481680757327397941262153346920540753698793563534051733246678579832042567354531381448378095243990483917548222854211752702666397127223752602141737871030578156716054045554827140144179747724418528949937789593174014128524254632284803829551016187038794717777707733536153854768527252410738067632864928245718430525255080115782459812871999802798322941202670205680581669836611168783781188076783786700259525673246314390595928682654019833154504620238624006110185187966010391653059841601380255648642245509270225073220629091291670882574852344768208912116183646363972627341770147550127405587327005001667552318650669297565145772752891490008253364814910923043728046150156895987632040999487430397252671854366143997706816262827103080015969435817293494784661613695097153684269877042111332347499185792576349368116136375220139715649391413084925660999830461329658689086051947913877698384955806334392207809712293851246080764604554992227049953944847946277950962507927104080289798817485057495428991821030369966658060351000421265058843722678438241010076351707209765772620239458452964609701263818332195687949485140245147672939343419597035957119846815617498795850320457661544077515298679059271918148445988365785338849868346514654527133373981316155722526719040598808588800886507383427437294652454494905445011113376015995344137707198452803945806160634045914182050612494261115125977479893073505520240807215277788180979208152467944860090710440787002390867890789186547118862689116158805217985933503348725432099622425357054360322637156192659832527557742228184698093755971767738612442311910952713996498893458095082133781058243698129015344265218628421906711441925355763183813663559014638082385315132436058373073597258906745838119832143364300500415266014875880479562652219834081197344433508940922452247642547090311470428163619362233386052051165553835943530063530205607303006726187991944921715025394223442687935436088354457066234409490092806608183707598136647768165350591115582569143202837928085098330986118090902749045405173788675690826124151600475315175853563360698521623532041899213217896284848429151725171399062703083846050204352848674541156831928197396964705678170033907983302123448043750518743991927502236278842353505581861022458991510201236138059177658290076712833179934833766551742745832035891960839148413663334071643695634741337657262917598709584824940975710607460309207132798385849362686159683069412387605157212594070735203838156327628079403083286916165067879664400718397013683951849214308390461310896471304207916467715032969215849446071945890686111142986304263615071137963757613490581793598229986886290208005164564804703753166061631946168800346424271480780894959603674480363800979706521872821180783512662737206639268261276563175694746958576737305786541811305225966684417856944562886878099335250014957381690221252684435974544275037996891832857602066428901861854761756793564802885707439370062605011189497883179082130895567044211794108119066841606148338047805294248816537194551623484302436043239989418193339008762310516170623768716985336270098477342385966593212939553097452386247119346601917458445899405272033161394755107803165367538234575612593934931075505202295948191531696523361468687454718284070707805430648404968793123268692053681120388489674320491969363768632171643105018302078195672213341287031915526902137060673774870110439067720872574297781230765360337826451913302905603075471527779409845827369197540373710375161917376192378864719019558037533301843335939445009504035919716925045906030234298258851731201426736499714495779147589748053966366564358243446609574256904462706355606963991609208415529823953180860444061193998813485470686608826009646450665937340135874474675722042014499749402696410755329956319942418057574112673242599224790949358546459095040499600878944065921717463103863539946272284567021384959553397983405714790253988714680631323221995507581090446398279979702386627496175972196734161849571472598645350879476664083559005988032113146364774376524057342353999275939965691795164459609323189614458348842368524441800634637115303967990871507392071600673488024881473244813871610350052454013796362664728584827459303649815651620226407526408533083012333659108235625633327031552699852638950897239680496232587572497983637536045100462921138682624001262566384638540402431371043844116941841040577158948780193668230237378175679392106715839502623712252640173475577771291149900311768625518626318052100537699763519236002462649856949906901240084195306382135540549592753753098599450343984630341496013279826339666332709524084899932140523722413522364972121692724902181803509563263731582421785064571925936867175596574664187905957119103326090790556863535678687548444294780402832820665055240574638954771557682835169372206880144511561729902931431360202263767998353057776926957566243417930765205155054328397436433982342568899987296342133140588900985315696065635541441359870514821224630848923348681499188387513239329313702260706475986187178757157629278204369066411435649608549358341188415815537286561776910898061626549785859510569519234717733987440374457560950587586419498839599990821674528100674676249822171351497140909598012696471486698277249004302759656391852030434181155476094977184274901022922435964621405521192847674829113704866868268100667926476547741251950097182163124319083243169361448304409330060458385967211549726641263148353985861230156219694820759465004941787626937790169604080956679851521953666911958702891698613628000082090081416908748995911773352361592711070731368465853704669364737411798456451158493837229250001851792903501702287633842231588888581890285999159052203010292676318189054212588364550835287372529321838359152519318278599060966141588796063837798754256943486919778614903589918089026756461397065636855037134343336611884209227554097903642316209753038816885166777593079477309338804255120254165263618278343317934142338001604627062865673522504533576949273057065679132242712622302305751843309818835319987421026884387141476773087583264079761467600866526515452227693442237023295478854342416105055266207677305636511844668143770424483430698293046394383520188444127359756814548428097546774139019884063358963930612535429715809327001834949352582470690256870937624437978521917391202285989108920369389527847789099703633944059698993456104388724633392993488364389890992485885619471665790034675538410697853316016398234197903370484506435114771618669536222875686047064561843488088539623436193072645819915648020300730142987291801736637882827757247881374946283116779165935128983391021278654194987630482846711714389337632605015633769678028311897978305000974123420679870644744191825900085005950104693088988266326722123537347082176880343143931291055133212852256868976566508574794243702941186447578594187799852136975828453308034253362856011451581591644666324169191555670773910813476802304345416844237572851893333782168193385440897684621995830041033892444506055824056588524194466427353861158502712537877952806601940745253720981437060313846052092480057807930550908119816615065443810248910278397142680856138573781946591307632668790579202384804684051694266569373531685189234557772809607688877647289321935429857913814850841336781614696973393249029500863502112288608469498036938110855147751257521067925506333654238088240852307991573393186392436744003042852848530117027828084150602938398688430227834630029409557204255854638528019824938670910396657075117252186430200632762017570810398963399710095255076201109300683284701324520419054963250630470596318322017281769567306484546366450125808529843360413572309949496193837917856785109159133226260298441009279675194532656019220693378896562439856259467927696139791680681824030012867892203220294053639162181509312067262889678813951666077124890153330424145068483288367376964444275894623973170678398860716158280109652365080935886559944547578872641144614131758000832149734457305201646977926094691584986656788875370483846401495219175707434457100939128324406783703451102511812096920908685404169208259219423508224138299061705177996860715750050553082203917862532840272638044986959985738268388221711802616726794278542126088995606334602697563179405809958751163730213904453606063905534607833990572109815002255510751090145639440943259993086150596243523890823456124627448160665784262473335241277290795315979416878064498584920305759857327960856956160139238156938805533427791491113459266724348765053518438692287890444429967201380403940063695916191623376835607262687574688036872155047636016823896560362204711650782619776602482760445368274840630415618174887778153445395423305925500142643028891007007096093869328185619147986510696935950587499930451041585659298892893539926224289088533925849605978784175402714055384721711196205371875577408147253689843125569476574757470771193543307531027089606994977588058393877731455234594230187325708047437976443559186636888034084890592943388073522046827818230230123610760045264614634850684381178894117339023544659482677186458906214600160787183053594864831653768396294159053279731468531731197008357688420357414625144258854504821104060174549756578006977661751031063610992550565127851761754503843465834484828518939379385449766637359465418809877979027425326083760127377242819404608622359584173230771286151813653635447649251022653137768634070604623528647650034793611430534816481285013099816690030278682877021510465856659965400997212252822723680741993428065326638277400039043683663540274619550195263605419327675415560033858711764889175471127070958484067354841631833038752232912768876971479958116236376591696187505638018428720514775009665848873396717002056564788694680494944822053496368139201190453959611008713349965937922360621567311160865901205241936226992366617429732804841488916557134855695427055206710804603716179925815592958942609519418994432276267892767298207765655589740618036291394228096490447918354882818321404023503080298000250385477986482000398751733415245549285712892722152860591664578589607575850267711706738304807435557103333308633848150992484187041017024766571729800419302693941045376288898492718676392557666018587228353180917934392347106825825780181674006036207440374622590745606623220903961310780762185678460251569346650585690257154870043432620889618764055039167483363819170979116437646869456135930552997338053272432048036037470308211201633999714442758385647386022968228499993702971216161505990933289289752344261700494259618334445846356392120233067926788503714303695062781570626895158297276772793637256281892919473255127737049918949506141097167295842723525546638886678310937660526063677281440404845069869050541015480536104698719787657211264377838208469466505708870197894755936348119132974020430024588899995965767709767307441553206690013072428799674294949452565303180538673389472325146855798771072414690999211001425699848080473112724652693045415889032033220713506376933970037012195570252814346941436557662104191399734385601459837257893990724275052867725970822111977632845415082663277859217531271178986537640707095535502939662779030701093975774845391473279970185270873445379066387066233837527725921705243494777407591114108386885563941164099545659478335348140347187001709554771316326593563821159988886424831194138506093052186779903683792164900446357580754780775057063140783751151157715162122556348717741709991170309673466433709355221922263614623151923609614331818548548411184994348266951935496681574265624402122618234844553309150292203657017117836256394824280243741903835111691653550554428928059892795217390841333395109685419233489631599359193397993013609392477335880822396074558066985126056599083278903853968193751861147914056260046151155222484980757910052876597154890689521252010522670284362987842145464576001652092932321799085440011524217125087504381237162103714212842308009675000340629285910007402637727731196816962231692502129958360400157115078307380351906239712902899477058397114041219656728564847990023996012980691429824201171589181028044186755232212022410368106227056880684028453219414840640453152376351219551667569227993364925467372191303665912299464848007469917550439407118721654411773416741024559835282139138064994420982151386133002692434656098670160336536476578829232522073738007680996362973398320922047142545466335022319220252919632888392284964545792941052083212027344667194196531912846956335378398882163444284939933408644583115099671734064131958430730029118257940132807165399527128062858952349744293514655628513676380375540013142434629503213761517993938898352007912924112029844119300967939687520733841785919082986736826905795138371450790178651582267244085765129103404017290266099191246617182861665306772338985252812190321928056199326335440686454058377170567638288541280246848556680087814926168589162844798816736877836880392493249929219379060903060232820143211836525958887802445701033524695156816207116276017172956737911595179154401625716433600438313454917240230823792089674058937197438481521127022592360716449424602009037726287385002337082998430943705229115416950384337787329838235257252878389528414259499564622316407039004112219854670597084670270234047949388994159697720285930435982890635450101112385052380860212898838557089426562937149834856984354552246013903280059862336392638902623150091324770025158084438012666017418651354144246959651477051356689051103455367441463471790989034116830906005021208251957360948401480569864254348472444680298917795733263346719523412607309364561736920969184228914980179979587723360572186216854644742352710564106448243077210665880113399555592184570472711783570469666698454935373214196211050732670415639809566040356052722620346304915497582700159949055493172916501849074735149231217167709430808658724997900579752791625971943227629713707055944847156719845962559299303080287208790356809207720854139232650276630347972686058122915827271540542743470981085341844799469822192879184879675733076092392472775755515657824749315270634236483415707649759156927440758714285935360982175938525826512518731407733266138072289851173743667426366371250608994986367067282088194954669584451454864666640865960950836163598263817203166850827275957326765366609775585206061770733778874337473799203234014880337089647166665793377125909516926818203786408376717926457037769855636969910200551601706670079855478958389803202623893893904166096703382777716024125701104763647513686645803619101022418824142301732358377983290462079185793205266417102016283641519293678132431536009800736120096702887381116554797373304062307744004624007070515694091172449675631580858739065128983668072933282772817230395623245225112907704120420966360764752763613349238178289370563456649989358570094402178197891895707802585448046797973798529622635085567610015124580945487921666449471078154508668116158522760323443223407122429161518864944751421813957151375529834336817925035263955757104058599391358486238543716205008784363762818844987444186014594617400584999577193551743740078023453295211373372165973596566731921332103075422559150763924426637313467503936250429898438527592717243861683562873380159544208932177804455139961958650048624252051840837519503099135209441619304836713940229100207572741917967480664104894240527384299298505553852467891421308253185350414143708642211899088727400965226243446391569557848844848710001440562407229833496965074226349931197741293738512429543111224655739626557523050448999586947877763771969383714659433476036981351654828195356511973912093298238045304105084644707801347312969178860942381589616131643299280112779099820130201064866878929015147067360359471847120495520610702738241748773882373845572196593657758587100197138429723423324355847266517858919583447895065982252239527976047804174467515351613127121098884538558889189522370657591435182102610594963984508407812412757941696307565890068716968893223821000795262890625486978081320455460742218431372063783733575455235662619638508676179748304944881584278165525251506357143772377034255560427738866745297989367363161884056789626295805315770220097382202441917117198424850676633344331579673324706432252568890675349493361644895677461670194279911355806460287566751904902909015290162255215229929291439882176010357397972252492670918954183147106172690409847472709892660087371483917837158705752783581830199783059983142239004069832978961833971791516969006914648524557119788645489129813545372376513701473025841947581866853850788879842889387892475189412383438912709280546302210222733888947447577246277588970437682003411925574992604905108925059920944334119139845604096698340898814865652586995979511321415815271210922495621139259113216472043114193152034231902271098170483839362656439453950324458259710112573490082901498226799840440221639297854679931955260974257686346850769760150557161653774765117644917029748991915825255451644201924899251607355751315776965201246656329590026433939266628527956223017084154362169373441488977718159248257537038229159315400937215547916941349573067712753264981021187885147292822520361543229687724634355115232736254675116563342948733822965135390620747083725006538756731827761699523849312540748870182534098156742508806655669330750720610899782524222817574555446499140731685474058553327086394098777625930398784066290965683765147191277807828556556857378362341589017433327945454216052741425983744555431749139799483779578978704822503979538865222379419848324569231933698707612274391034216387991497251131966490532385367339462990308819165597438235941222942351009750909139051669814205273758338715103074543251086509851960532839949653576458809529154067835510822791142147229942966872908578236421802077131906233608891469229688828386133683153263192523467588457641776184619157925599139007214790129587210541054077015290088107592066077684689572142593829259860994249639724077113203335609430415907255809570395089091675808936411946655696337117592070858067040537785107093026662891252655106509911695492777190839282708666541699425456669298429591012547357801006461948544381200129573897499725312229029508755449485721799226768212738683966114049986925443692599303665653334663960287186096839351129148626006395026897361274745957766399033400717893442713908191176686000488277285010187178200153384017791356876787428772719831691371484924246354866683871424131194416663086058825741901269844962695468401687368583973431961878235926079348572186598489649468044058411598489160078982626402098246608860963296377719357262699217040988792630896673901111639032547829095912946624555883104317456147787760900647692683407806883802766363508904148808857973858701763686448987499632058637173573078723065621515448384011361938607007482551642698778228826761983939793731840183067879237215933142290419326434001393339942942759018936594435442304738513976769746430764699653325068410400894783146923639543366093174989572778938376273267515176744227158334958282442089333020847435516239626562783693482330459652811846649182342402884352236008698209243813515255932129454262925401573493566239235561450950388584576222398943216567019408359030454608786929996500075421620727322640430233873961346117821925610559578779112996331299966420341174663781412558044664254852164652790619997021556219600472970802585994936818466545301668708435193173757602875454941939485207278413512833686332899735771451460244609937436254372553538911394155449986928626900706073936535096583290224679443227196995442170989381834624449790231373020478167372431830989239454835050597213188194555692482993331075213018240570997036566881039331866862252619482067329967496884134994530422127868901929605524143421417911532971282883504112329639985334079770858792562285254830837411388738323075317832094989797161789404135087178899955644725269969017985335214074459045995251942651268291040133656171433265218481905367813701506741877088490921151757602565139278834082780138525864435731045302177661618339706722794525088046486284786229212564602013718139146502863020993954163873981807396057054170490555321962717658734249197495984984635539024199233523125312198795485364972670981978664723143573675645999765346513935775489964115308783664500287653491106402478466928471641018959097727218174666352096142169285812485755781070057247847139847037734595401019849153876464256640791675242723863680966353166094208127398777682193230427735002255282867482098344986489678683073223547420401186427136204283107293451411524485087655337848465581431809027760620315787698327665558666139306260401840879409154662410422701546237284370998746943441945567006008981955406701565243469210162123851801297860961426394276227126012483061780070089086291297719585214185100143309119947994276637749824779350534850529515908720148362532509399789594856176057189756452932930197776140198541724526881437387437861577557780765389900690556602189573104216964498592860153729691130371554050058362445628973159102414401710273529037517327559413044176784706213469964572120732718562753804791424587287568541000651847108324533736497497830939020579704364501070112973064378576061374108940014506784529499825153724555754430258589480458829056370824781182479445575438555116231287262565576391896040490739069874016659271795440947774995777619842362162369696895867540265679077087915125964359676409250185013969594407673146686031535157813833286629991547440832382758163310247147287841450501520476898174076345553546932840467125164765744342723687284992658318582032378351328824580692526379429720350141346235568019339596938321554006187610971713393270137763900395793384766816780766225377458282312939866625836973378556014027591800089487527972805727104708329368267303254510569513960412848392160293704924733561772543637570721372039959096370242720637025338278315045214364833056747386113155152776386433616364417325020105596627255370050467134212308090128297727376586763281899925643246675584634140755554622314824320154679082292569492512650563049342802428932591998049014099195856885842885495954052142591999548703767803732840631031227863231562299489411095360485560796230761970422487253132052980477646522011311097431714198705419972197086825130671464258801482958066530159927433814908499885498594680119198079326375912507399080617347910554282069850321318447592056046120279052237383707010305206232235745393252322303206663037015725125311540284979916988143470758296724999889883280021123718735488816273145220562525749609577338377084293997063102408749793274852882776524277365622580797840240357157401514651669078825237461207739331227365184876909217767809484410834801878027601725633799089941706800637123761112569705027443917765656239964201949006612418245030544763335450552513026533553494276389598295547069361048030238544398024695599838504855294134948805423778062285378326456534973123280248375150746254241737429508124070482349053501722303131949097419588155625059712190231626785446490095143141282848399362669801673974823766493778431135400045083078207912073605791982085792786308662370428314983176794702329380397911146998876970854854696475687494257000926545064490314240622906732270969804052380376470049463289353827715182049779505512841034200083781047433712541010090712433503384948645563506874811328507700609057042028971663435342255167802048022421265952850672202654224601225472755432012291243125746272508475913384661601056729795541248809208940933871832329896064805744126234263768090298408331780289643899739339773518380635945517108912079768808336804421983239629501992132323229370668212501649797112415980515596372702469467953289939424555842875095356412254562747580592320596576201338020036434141379100649019297971161591875885363540198885539619822845295617057013149111196284233383887747684269537873596908077658528098824882956339748344114584120751228750216375211122768791564682207979229773181587399994611229618482055162398663972655774607009889548881860323716623819798174868677093156819904384843566132877394534173612367886239525651159627627735453512575313771363154982243142833162460552291796928483666867807404125959855284341118034998755564296763031786975904326633614121430601127733412250398627828703549574083404027012364457621309538644986734958842419756611148484801106635950204731733398895228554151286793876224367006045685020773232124412565278406057177851653320896113250066693831685061936935599921035711636379825115359174876683094637148069008671949571005716927639715784142595774431414029882391369553155311653813098802892442832181263916644837909113265194780654687498465567475265702763365653953602055936330613969413808761242336885439813905057662590229365979872306195749120200677114301196494487161198467165440104298969654768419399980754233167984054087733857858911184762241593589900815723432863900918271716431739926226232886172633934678971951477731137376546804954037744542588081529547306859882141427357102208800873628813396897414335968562721118745229167708348950725966525628511567859866394740320584629059053014226199690113432497877479221470714983301620173465630369427314574050886290092637852531733291176537733758119094586607391948739156596341812233569706210219675382390058615625850124523341346896604806356591530137861124004514633194667559294110500318012526413877423758072562375616443229997865428920857532337395925866504102427218649598914408940062129186684401724363139369275452112587870295847401502247414576692784527084979572022182393909746392936145467632797639427421086348920898320789536896886060385517601186332055954526587588737570866112696881293114766173280070053382880927585046108406884461711405577941628141332223314759363346573938600234144340918819445526853841924978964975778836263337409402612512559731517008106212070437799005465032723105020321108807243449414476212211781397079159654575458821091878980175597632300728165896492166553492490698978692402561867511019336640615602619674748063731333982668813411764828394940279204109292262160221905588281782943457209592292689774189455330080947728832457576992151078877639438957403444620849258203533399427761156151745114189862804414711221343875383779268041306466821225615641602501475457463590576762200454688773706290283461705062240616671753599012707201011687821475891204475759797233606811427145243275380646219346746311134704692681748411120496281913626462049494730867070135897689516610980320085307762598654777410502385930784471477645954893022844606204057759756866206471072892127966804686201860512588365100820666402830828602700157490049225957314684198569627935524185126368730276327994369055127153782863221473640635185621231345809715919097091280604337709110012307642926897621748224043364838693219731628429325353113714248679509159072499641198082532836266808372130874240317618881900519659596527497182633959334225263401561754948178779978415929329960849973665894692603242098037341209685493953958626018239564861832659578962876394108867150055443138755621057926663233323277611057206473769939418364779211594317627347049344380249396482623424220973203738765701506561177567080328340149343111492344818392145856601038562004537257257831249579166005227242692076232667554325589444868990618084830237043534632531804178950578499605717750500161965577671260186255468661930703906123953352178183421166946197379078750651158632649159988553650995376845445719293987114273643135087996342416170912266778525638391311976986660905683206793511342891206029723889832460522676103362922724142075681166304041821671326471340892951046853920281191489348726388312875179738459755481192887264196766528337979413358246063135027719957206865609850402362860152190381316075063629647320143891148008544845856843842564156505284245696547650463191415377070715043672691372129432252757102625054517641875145372093772489083459385482026575344188283981826021760399734823025136050410180779068478214612602577330617495151902137923769545424185172554199484155473184454777418274524216738313860310084304127899378479968988319761336734537080108519064972207848808760227274706486100341574254162810282835764244698995085075175882916627021298670377775897803960207481177896529391942296303683128666630822115926026440774262131021751758229248447324175644595740133901146674161232049877461117847704527643146910470492639051166385188683001811104404511524271486061088426114323649691136369667050571126416701651741988528632492295319904573329276810750034489202528960260911647766252445700511305651819045317332627636610358170373012852510209071218089287344861455392713024446610885534867528159519326586100033182175634776226895517922356112581612176553913902182881395570347082458282639675027529089770250932044083590488376083021872411017011857627767825336463504802837882150698870314460174275390810077770374985184200671534000334919265729939393056849193849870347345745721142694922162638689017847782148181926793687396365859166981538992621056940690642818829597134130594540605013122012508640261175455047799801924005312556349543083541521486671487330632076960973588656124783726334846206258819276598099164168247947609664293464395021347695706341269285272072925358638555612362923044397057418351261378089940109101511420858333258785676211610028756231717916638208820521864899096900048783279129926425656884481311839567755801222698945278653847145259340431655468663581074888955711846142520121015406407270008700525439226142702710108719913805572523982012975852790159208576656488157389388407549820943581599049362145136152996947617800220754458820242479955879983428354553600017085610607913852248872045672318472977374884814498610894183632065056082756770783369887003069053836096229430998124800200908170621963143159652258628747663707696020068981594410211896860438652692308312856434235200927829714793958459022643026624590529284865418639969358332701555918520559826494065258091533696871694946268503220139986259243164561151841917954861888722555266296557353537281753179075541964089231358247693850014998967483762807345343770398477356842705633591647722659896989054162810049400493947506713194810675946036302202745854017007018451415864523868324438232590347627061576557930590063631142503790062935398401427290174070357124223950867361377036429865700783085993764287877735832191076009907555711006774237951220747355633670060063990879690814700073691900724838750044002274073584793579710930649112536910288920903335813208488226595228369418879738319337533923021994273265764801745376946743110387959254701096940734104248690981116333759547472371592976599599964103390610094746741776341943032733592038736062628421484600309964550108555177672984546299206899394576412128879487023290590026227732720956704939539404281907930331863590732740700178277313683957929996663189697229697833680118089819044374572883726372354911748253627177152679661831554113338404410977392216913285967030837273275090477576296201376020867559526377235232572127122214258686433890803552749341181806351428665565411233112747652417887549645469359754877053889734699291323283965544482717438732398858282573072634082177017141047467504060940431091384181133806360259398813457946118374096357535132226623884764384548376234484878577274607676368015141878647484972648231875620657883021154417822006716396518988322333270591696367396377309421546093098844267766570636250487556105288808221453315456779349278010004204655383463085312907834008440353161017598614292997189892282561181925486996119809883039685328833904864306661832388260433535129332598761403335152222850013163862833138836412257229803245959592246941572335460330845543111770204687266774991735540548602858523302656021597777833725217291556498913785528848007338595507620013961514720237630934008408393615209182781853721720418879940704736117082796050511207032382431363928481948878225094886092953211126918260195558666673835484477522545045966734917954395067995681180927514066043140652255479672461314742481533920344288090160218026059669625533367771358763074253311586177084628972518304188415628240942866092413215055305126429014248641834222155465803947421327335474932147093192318112940747726367527517476559882588493171398303620618562219148531142995445372830989281499996567656400757905422124508195643000687638702224248866090630775944921262923978132297803649191518973336506687927039540878756464731096474847596623250349666146979342679278037888136251199161067487184780811252819115226206134471852353387864645892065643127909331328217198422842771173292087544417699068300409489673565296237334951839458676075298973741870194772553258962217333891409171038031083040874077538752831621592052807874052762789177230054096144260348905231129033023729748267549672317123876951673897645979370906908922937931126037661289786270822049274110784263263788657149923935667221129994010159363829816451570812345854284471044117443574232293614566702596205865383281104454651587386288862239711848585080483631369659543810032073000162444254951296913916417473944148774341873905340369887438007134763431046492321900824785003586159362562091204776384370713607759058260550790205381375948352962415312622132247291163947435879336257431757649942201061651889395247814990992000460010964329613207936589884656731372596120682283726595227434561207825522611744130875690233993212029321025355244920357679942002436585985738146446885171722710125076451590560578191048742958126860281045716777031222247338354426315023595173970967993785099084454566245024409793279696706399774889635757145666142177534019792681927539642800534546609079034789159981069050720942603452527186021826644514336075677863241277538521549304117712657854870597663118509015600686615420018927284421896739223276991803730413493444991678680976229434726224498844555746704516963514637297164650104031768021383383192715619560453107379848285320568275549207024584619684802970556473477974926411211537940990555633221210177959900350402592296992103085403475517192279262261014858304883493647064331197106395488544384648411491318934303319807374423444285764578046399557325815753497547614566044658724566487063699095113711961293821210944905720601520609702168494198977824443048518055160035868855328908934459265033415076793028511188202452113046549049195830569235649047274587909459077203710495515133866784351530212995791960130944643029817848040247540974370216162399948327320962288886283755834447006415359204729074307062932720469307738851879919623583636428252754384025591842085065394333269541473206759363417131339427490032642920814108381053619154268087487707373069157926020932660448095782565106068311143972148870010309728207746667494307073947951299628031845948406647122769897737680104041715892166027398391049433621384255918545172304662241498178781824856280807650374988602507991992219550613737695461116589027122926693995298450886422077554672083497925188178614547358139708500782419283549031515466591147643388814703504962396853898265680223542619294966231419334540752849341262035532052029063838516246166094909406311800600998658016748335707083110091667281026850545146169855986842888134866790054829720701765658256248279248468508456986927632968137551894327397628393534351761774314156508759025329638650113019653110922414387345378997216610122120238889636028086181089201262567039412226883722427623746700496910609204180548293428839911974778322710803348675902989213038784430238763682012339564912541105985248012039374951327610556734303902443190282650215066191095228516378055185087420756810614460861513917844358074120268550502172769654733746993872370322427757834489493354315135982971754658115544114812954155167743398650648657991019279082941824504265019466039826568681189185047880824414973572739547560282404448413998743365706545079493975879136339634200974214815114699319015164181136984430892775397189245182010705021707609811921208493781079209231665217722797047320577237735802926433990147826415306242500321701299554667627972833594835087411897536476004263936441454195344246334292846751903059075604796184652827342675864903334174743222034009189643229067525347840857313449549024254676602553704041057169887171140814152363258219002397910582800930412260146782121301094813027219039194917053926897347695227955892597155976549741366980573220380272578966992941057640532136622529745689252221457500056397787598332635370072826952576779508862349117227650145286160722726916473169903992661422446302873023341997987242565352435218719317639572286200815575319904350494003814709824453947536949757933036543575897267288024710632710543235675425648396565244982850817467652715002956099937358352133200181698592450181661161198148022731990432063709458428790274974129995296402761770548920036773315106099596296434670979019528952773442783015068112420249095195494527201993948988667307984523194290048221843677487331606117373112912129681016428353574585365329256593630813073239549866850875026711682776388795572726413132250553403648344668506262059901437918174752274623376561528008390250075584937078258379414674429445131183073117519259162718170638762651492485188827674300458616815868183124479231717596132072600972466152555797634559885722468024332538891670214474546362340872368074394888503476718321208856970934263391850948823098622441023341360707581411168033297994771220169072376236710457646785829079087488355462552582917603892983154420039418637522424637212003311250756475919788063058441176176440344724772367368384617750785771878017244967775442435495641988638832197747524450821871616403841882098144079753848193223303342572144912401110617651218629372526827342562056882630796954015173152825025259849188254086790065163307039751934225342881014182963293141366122942325736759317214434659700676829509129629096197858986564346635162567756616059451335535934559721057831090397662846081382796654536821054001706654711076937934732024706057070381183424861669141746378837591922522662443786302479419083130365187319421520133594411408798704831629427503344365822237143890544967926559558201721943322334724309751737891368286149289551499089357365807197783267744844261414346884323920523682798188891117926779144543908691156758804718220409386702925425046066157664676110642790346958698149494779018746033853922867078888878695879340693478009820401831442071794062835427462456818623584326222003933040417309119592451345461460049299418092312288599029329536734816170521062687403168735909163949249439098738776902851689940948719322010121098341108456502585225521966492409059120258433146366294474129796162103834730069424517437879040063546624382362687495723918245006185381020499593173417238592744460107536415001923130424823180447120242940175085793953059779314683158738133289593457724917667734278901123368896733754975321606243758980854220339797069968344671062913740204329711875935633915445658346905899579685723382003989581914785121319145496520201439465436750167216413129482620949799698317950342575504296334183081894811527902687035777366454994977027282228672679482675784063060799404879344381243571312528487468736528793957984102441230897323867617468494033365847712319542649697980937771023553390629293398207707678610918339674238306400049338112970349915580395378165031917618405675318200936132601233266410815876737555202471051761825271768699673060412687573059048931251462447553148655935686588283555649445200903435807104975542764256548342608652946140378224037166119225588949276461673457305512636892162163990516798282406723618997594591858202668680880812888967337492309894068472324263721955686026039290393061057348342152987477994387694792230233129969162995091808805186503745995691418033836887772390728905543620359796591362718579948742764868059155797429516054776597451501063169708583199098779838632847163164608857501709004687720154714918479776896450876599283356542006619110974595735896467727393476615961718043490367207071928637059845263672018279030466890132816793376983265734058936297458850262836652139110086984382384599899024916405359045005425027190095737954968595675896679524290833914117124315165907872406004317319245393121321342188353969983984255491040492406537151496965424918857199677170910597409667506497854127762157101530181361714728946272327130506196919275449678965729062164607205127007889454196952258585861882651856547720012110651871713813725660813641786518570126844411580468768811434674491495654239347760761261603316367008459514012560737556939449758944861963207235581364366560187502793647863541377366095521447243174959070559783632436844308066509746695745275052469619744871032785892113433182853324080434902881153693189037280961621348822384896008411728448489384112123537374225201316916926774257674953958286698548197477074959100783097953513517943268732717747312455848754118310870466470520769634422466144037492194212608171269160229048546455332210507013905768908978725834280914602915411506292032578662362271171183920632597178314761572591841098227575574793979760272759509711128950061184947071540213131090391647216385036899471489379668720890833430210532623129059517369208804426032991987857837799428980802573095189458313196305187646374184917204999172498936487814053533209324713053478412294805658578597105262727911416611253760123795444006194281274633749278692967084494689873629901776673551500794073032371834330868618135327253316619519316839224818448071501540123096884027482272598037907412367128711273489252701559836341248864330003963497773084458552420294952372361104908766107223402089540375633557297705626676259398060254419269957807173111163263918284887462203751989121270288509801261003721624454856915057359544205591429668067177974971324601098497464413565768690489838272280811389500663268360934491991841558274670650236332295567645604655405645678053981922183403836292046160629797536969050043381805762417562256925235416756513380567393612187799354192878913996603385485442728757947578552282921471214344390982573005508040533341333534037828697219535278293080020104472595388048922345576596195416481330501378136162777071905187251702299109190102366887682233554051442853294367053281881510455164111743465541367928631996602065613023431105854304260056157401727142042193440026175914590264157752844500150001605324307317354183994853611087296033715293857804473356575362892627838770498618986264225109608226269872942826956395153199559776626287406288906997117277324987832296871245778082847522897832469879547623344622927633299795904009456942459507613206467592049845722983171180593170088682677370400860040251075382707237051057238009772782370749038230711354423783628443439199069546785672297272873286519145734246090255585060671106059677306939190637788112566599830369910059868689298563059414969906277501735000581515554635307292135307651408247393528388638883265955968857788109737299673723122728961830502622314242991497506872700554972601880293761698101833019729684117485244740506391545604581387326181013063284517512036127544107629190886388043375673728481499057838318460191859209907515957153716951888553039837691807038647046576602942237361076833982452908775651569821019065078705241319854742016578688006125525801530250254894765438088905028170361243330137604249103875581184148337911436651729008087488714829286602262915774847975276136065089206257744417760920403975434755890708738914660761306113439070728186010241578099346834313405463847898669917426231477458538674915201150060098097728150889040291431805639798770175222567663807109468432011693627378299832676301726739020783636557700382431900545290137715454965120129628091599093306121517512465807355185970436647339665020499658880321744293285450770981785181881923787475788945686322421199149621627801358070955523189591925083048374362892086281360100196781556232019479283642590956986441313086401382516614540204994378699692753510646053523172597895999057458206922892495783876666879400054418186183157471694581345153932630125788759220135742810057493634259966892320038478118485212829104292612509114252893509349797214548640952702428284967799992714043105796667100798320477188374592496382141080943397241309863418985192857638638311592212261400397805084005161257029583966576303635522249485410933688969412891404305276651523259792882347008600113442128228293560241663136798185540386552186181669427947064826112045618995542563355055629392579883326745479691173126642242170215703525846251618915184455223548779875789296360758949412418411630471589456246322722839427321092425347574973569991452817923994610415882345504825705021008668020205737015691464118513447181112798318078974321034784278411452612497881593508186760318427712956935997811798607962759892502706078550774373895456457748890549932684549546964763501653613256130152407139491580044459892881591388372782052739341171742078484344645775058670086158790675323161519076937035910330460108153581015767146367208997999491759064742848180790026171458228643192202939718258262667203789571170598895005004157829047234913292233727814319293211860354775573474298880987119296379243736889405934743060987055709711831127953993621825984804202761862716177776876974383391849167626218628380003945167468280863659280734670187477465262739589403591897622567795500010531717976772330485558002205511235845402840128182151622074357847987430827931341221440307300422418242236227478824277385090411972886702760720579107547326700736001602823307240740426042933406743015689093061914859880034544098256518657742708395602617152028851949063323834066978455786584335849243003211849620192200402636679546273619010168818660267207155043724034688767758900143229709350616628019617264413962766624451569005028270769495236163491030200418963686951805774956592045924013379523303873913768418241626424500341659859153531534189749392716432382470680775036211394690996823448408733053118944148862512443903910739313141631644090888404043733161178340313773488858137173250630191973571256708687764202776395597366548747831466298568524956727779675660452463169987316477691500908521290396194869658514820345619038521929368147077866148158676360838307179449231535384227887964026880841950227587608800398572972578581164165477647299861300011430702940247213044173424956520254133243405338528161857782703707735421022264449368753752044576446311251144250156980685528373527803201321678723834876694249619766614605807915388755742348920707428702088163474370163619711091067663000429850949514645845898895781675931196807850215044228798502551309042390904690090612740931123253017644676027404377958481225613469940769770050388282713531133620635906234962106493641260716853300903664634723357413966513233070403877633607534993283416419407614837403230325153161226532549071657583303345773397591680090105955245137122407308902578805880533960014956728452107485965190283808314621548288419001481772328106166875142807748598809469548143736501841049982560833756144489406420859100949712787611554098390185977589640970484975065835712635017448890667526271077557842106427794467783918175068045303939729484086518430449439368596176584094119518040256677660681228579678388980355814125115105474982618887431938772154220414246175867982400578069102842985744675038597847528169575311125738858446456769519804640667016311248195160354486176525574048775462648189582698967330803534963045848606271227359613130660227968267111309821951269385716915227965832528373798948889807376886417427891320408395478075535623919415383097061743225670153593904351712896646637967726374421590360605202678071307534683119549583116597381841596237404953375948928348731004288287124358421207889327349425575171047927066496506428013639364087630558035121287542583632004723187816291550309622109561715281670798771161656965436026537010430623955910149655199623875161730878976418153419503383457305386444238536517678919035121992896382152883326104375419234302018475152298501290167199233413099388478782898811119995068221037367212935677394150836603532078768159115462684775433574630292750466006836620776211892118518495223556488961305234428579275190870300356577012118563802088811844694537377143868716400872942773919924563029175206628891446324874935193576592534122417615330338891927832769769863241674156232341140173967691434997073193710324717913838923730871290810282728991106693024856537928405752836308247187290079540242593394676142146516686488696280713890334135941975850135916019097745351916490986007456414107255808850721619755978789630628538659304004222520240995763559694245177829542832846398211028526337853914073710860118041147787420139694275346780222971615924001486614721464459025177616838738062532381786160391758299143828719487628229971798295224985883460545945345783375023931786283412787108346453449010206950500374361773673812024353712547601933798969414441693747097133421435567318206250363850190023831125331865271221101994499199397093283888426771850740391159466930885970146197620067158896866555162424723773411956344188227931491300160361595302648006462061325161665011306442316720518907282928797688043432415698757126171311078719405243623009987633942073848811741010769322432086248894982199808223971542614597184740706576312332569674624070774845240686782938359384059045030458562368889380126537557038163012152316647110192375068046846299027076293289002051766904788340415138122856467781431430386415983727714643725868116377553627669565183178649207577985256226763725606636053722810869648440487856923247301815936655715054601729307959190552292411289737879428872056676961703056828755815874085062638595018934559444158045327030395382294001551559664165426153414684274432882202494251003950676982435159461719395637567075731904296799444559828724292201595353915065188903595629062379383201867297005586876630525154530018232209133837954520180161942632334840939923029706163559006762007755586621277758823831696466624238055525600233472943607731027834873731961450430269800813900794966048362777510769372757619194480662767269917446993011769013259205311025755077853495838999770946254051132893786452579331665524353179086258924792523632775466684238721761922390630187121848131404804618596217297465803566126713421903321543470551451684201592927516623928821484712489591554108413507483926213394435569561221523646399161671619738680977712166264010250760657748575986912062617131978639119119716230408147987363330551432131099871966287935468652090289113281040589205315142670150486518078431125372388410250135782015261524718754194526619684363738511239216629854623961259790228878505915677546088007850817611258666964831342595844293957101403919929167799400102773631555839629775390721658889827495046245294364526109663147121299452645176246262339207884429911414533323256555714210922313608390914446526256892040210185978306437102669048238085065346579760453671811067888676995551540533867505266051260492229306398800094972423955314160061420715240703371712055676179044697634589335426415906477742194458520439210813193251693204427802896969801411242747716338858914786360921134584468505382990395481028804376147543201755932159427917207717489860493944020785065860961450039706373182637077636796189629773635125927258043311115987076303221474485140298345454218975985425656894836614814169130221212032282569058357027982013593948489016056031481303160950610798649731168609088235562633231044356799081978831797664611779238072230783681990109762563245416163462157685018385000976215940033780251297222377196022924510827361233438516137369337456239394920138606804708593485818062112191911121482673222507780579371072498348804220097536831342504176228544452044906621149680802021688274483103731129613078023355728124287613636909919331723339679544959484700369761928560887347635620584109874338739598962287048970864149949532224268929921662942947223155481159157719272267037148792125372052382846162174488844301123972093973963151491385292106805649499354743271437993399727269153209794359665652491625544204294381672831398637651751515395354320440870335509834648930793008156922612378789146712125272193112632022613876370040112682165603527760759655973989508007119496005096722033160811611282511377033990156988934045262706554238916778588703073355939608305079508393934726803043011015932842123347168231963576941448433335048525851605867541475290151317738397321154602140456411413102821125317339947976576399466235291301526756461241819241192023619738252888113825240386455437121107721841168129172348418133185624747806099381947520465570640948099520071688564798960849622095696164232722149104580402699553641555679993584665605670016480673109409716947017858936506183653016684031817887154348589270896516658607090725425062174542853368806223505767241606014173863390587355338773258175390047095321462710264679641948327928308118381611816042497620286371904486396638350860576672962377501041750365874165510709705696738154292121122681417137341996016501719337884615953349494567653477019874870460335100091205125743852071802440011492887553491720797058948714009220695001900053008406238824816922000029151554690993081931297214003669673295485306533470406195996214453709471802011326156303678092267718208203620716251229613993759985418837232118305503820696554648686672837668352787102850540833880183079052605535086520167353051055382223253092284949900275685271647906314282625465560008098959871987596105882585093712029586809874459186841508827142244293482001504165351382324994808897565936028304700154956374935226319936706191325775904127341419685163611614987174760773958164270234901520174444967320387765169051376263365290900120917165294753166529646652267482490558614590502627567858968545217996655629003466119003921911123434368942356410117486702858166936088593241460846276285510576277538895564404439631624083597139949503962852538250781127013069883939343853228285018664087947099555226580515009567814058659125897922373175507877426137352590909650151787212154376672261087878689041797954138938482633462837156641219117594097634305856054650939355405993399382202182112419130069982581706203996384587834813185828684021679610821556054317401317326871877331118519946222174624706524314359338743956947493551471078135802864659338475841636826462041238241751899547940163126704589793179331308464885849509177551050760232287956424637682275475603567946695749314127513112480477007228349674362010410641559078494352595592763555332859047664571181024544500265398055010889233543489422936571276258556476335015034325045565483733038507708925833150024648566234615325173602698529468378682965677314001516748729659405564968906520582860662030662529283923270488237720602771485706203496411522553547250698795821690238938950854463239157710735844016067742157603267379904761028769482745601608297998579729428565828815405192752534824523108323688329512261571408362341280445266657567160129300963510835146978053123247772910481952694043414953909283821019100637675192866111376172140997115931699491931061546301525053179319391200452039613495594856125435233006433682407511162260608764603636877873906380003843672454150575177586576764690599208883727062485854183315714551506018437230765934072750843965505886457408001120049621744001145299748510082731913508831476446306424669216178180583842854067802627979212655491952677279928856644662382748867952331870989852238199049580583901978072374713065672936512350407307085685985701758993273733191068650157158133792702387323893030752871753957800488301886304272422191951499108857926470771617967903702921017727466752973718765646155789719116224842334613852282619031762678265693836827896839013617723352087232429057864121835364903341728409804110310132697219733333770772674992169844166202689437069029965574185903650593126216790598280156891025665093358868192624867815363692826795458699601015556140411588748048506710777039918787839059164296945310687728016768980694872074490103209713408756363229681431698437880612637391179015139539458782195712784783068487632277208069716885831692695288140453868328529020936103103739577403187774446081542528772103730646714344797769666735552648350900021643838820496194762780083674927492412997001997671708311095084829317586911546679397139111969371213408742252798547970001237479331118399317756083166667013395899918565475727149546113194443194616654025901975983589441629543971503977285555886469777622498760095950337767750348411843056978294704327131695336667786949049509617447689646178771806278275278419008619817423592300155485950529835978466591304628955904413476626452675904880032137280172418596108375404840377462712635909902575042134445241789260489087963370499679854550910769638659412729368975151137835160163074378360901129668292125675161845579639713267825887272824844108147140086543139164581761812761646827537544075319515988705616678874452498739195884936773206313914275131890215452906908555091839151961413985263839387860786309504228657435441777626321137423532646679886704573152349863632176935350449618887259787649386588228693105593093207499759791215012200297066035760453921611599398484145079015997919883765748845582770329582697822359581730695466843628257657142089016154671778541983493716212049146210911331271657224705125701367192373018611896839390323578901104350938547724087905503822700662139939666216109949644759430748245774600589707016413153825809500349699281986682090593980078108990238044199029380551601066082246438220554225472991607482736963067878267767536770980745576150811324803765064508584973586545304514039048655718417466747442141489770418472326176493050313399818576395410205210496698034270514193130485407754369198422631053834790190836278503646154585970760539008486222388252454509749354721510007483950325106402022735869731038869376801394466546833182518953672528976807882437415393695904216351045499858597125551277317785096877324343644671323931689767578532202458057072482608272101268999805076497343878625465555179026163061888349700006253412173874410055381282517544353121434798540286605235939437365705828339837773958490466308530299674856117510233300334468420624906429666426641144475317899569620572994240324420734931467829360590525822620488708273082224583941675438609663965686549390130463954928412299631603473730042207042066113380689956323722452657906499522565222984782321156332201921208125765050709786694612039897579029721204414188746804715365716086756195134112509024229942888532469753364672887826153379433597781795466821369345208428332343530581499112814811061374039460648315560058105392880983713836864193607043909632968792326518095278090583450092220303187041034308871090649865359900266649553031420151102942068836659361206589982692407567853536197016324368131424542640625944071745995204426558732283674101141350005732978898052308590167516133785902474078120044690155019671490125424274577756196536163357034301569003402629062294323059675461123396003042467647271766446579115456190786144676103338187465211923825878149664847341480784438260838971296950777275042436048433984570764495408365825451789177820507201866079552487253054215365594735795994693044273302312857344759342632018079753020818508432183112863569509368943447488642326617149563738270613639835332828093597401625519869120330284929667350666548708223792604322766545845521264210343242020474174626548112118837831804984085412699391558069704818677393984805945438668412401039958314079791623241028640089335517940973684622753943640042955637468676958331362896395196161387649500996502263063535591417971906619992563881403825860632433084416428344105951020267087317289493701233993228582748879103525251779803583311684711194347294929176912068133309540622205156269072759236788287497001765624980951246409642905824179010497489706969102824913709123024171742920014083368316410738293755244673959724561832814071455243519828509108313657914996114274336464656357011008792189112516071939309830306656295941286993441520130678625189871733061619284282507313705235348857998673782527458243748706924108773930434770309502986768429188220538095306168563465064646033184425569067541198430697422380990201045286273477675218574973129578595060277327065408061040713664725552298099959443858624090393902710723659767366928932652141403443423314435153366086565602165941449932924684130121205908079177885717038431585574796584602522290132350402940671434673342168855390543230067295051520390264111761026839391085101974334800373358676176361527526397386359469349440402875506575370177601212213876169959272019944850955064489245415226827803075670869664571100045037394011987233079301610264020717435087040929853431890481974045203659051722459744042279371176296611031466073869832231995135022962686176835686525570392468097856124643504220322892073596716356923622386614243466285702955528670962039646316659615892445734474664919309736355722335538845694188298698098800367077146242575932794674888299475092555723709728678624681289996952424555998882549006667430389750954236994000942842429925992856790054216653206249169571828251966985115082791323471239327469743677081248895337979841487384711757080437063476979367749678458554875619123463713971125385575637625636443143513175869459911404112995675989577105579527266439216005891630002266163547003766490710933768641065204181024466983524402431079488994125126259339679722518376188487538636460914239910161632610204950115296138192326659348235657333141782981169490864736241228296073138983074718830066147539807245616027434272479009460389622729602308584545004835928200368782844170870050469108306585328223654807847211335691208986411922251130145323033106345306905458157235063383369042411881825237187985466836461705514213588976075640681375695843112984187172527345296055543642510889661940814485141065864924564995083982757959425409838119542501481695579794914846355677590661710623650621519416389835137999595676958298269118807792203889634289287440201551366391950343151566480448509890659429085356380115116126331654754326276540659032631273351498871967089926633819166309888062621839738373699110902853840048601129026974019616262878449487589691741641767511328456396835106067274475579040589504249909396480624053607850284986204777345504650681601567573021639655134333377977764834660116884346939637520758428070848938242826375473996228999505904515781233378099827340961388364927022564407547438097846716247635087902584032856123208541167721373918093578805853961261836809501620466154577873762979177254077726963446065631129033058152665828951133211915883147957615760977847727425987389445441405480258565838133464954771285074375583847999045413344972696069452236308259354619694353394843285011807416243029812127889737066379539234458323916022534313847413637930026723561661541033738746572705794477621808499243428424401104288682333781743584049725528798993282835780114265544825188269074706450678846204830285131628855024264914907044916890079598877633576369604854125928956781347436934664014500701328050973228458928670953980840018532407435307995459021210707503973756154914686468148977650912201196710428499212818361926686893858408081592263950448792434056780569711368949277585028177385327624935855440304698092484800857364971990293999428382500177535217775314574705725753053111604404405605457044349919669454787649831736457892249257500144752704673659181103233700488350652558644578900788176719567137819984405747575069698354011941324760042284974315012251568645331433850206837145367718956485000550412305589545696311519004596083226892131506107531343099089599817793903357487878038005839585947411090935128737183541520190426138807402903738692862231295677175935041543441737623595571869603001686023195442350921072635495554509976498894169411769413748981490842044447344666500022377749401182504580718301266277517921438759872739962358700651805329418030921967498681633328572787794333356820873460280658332619050297971911557831126273602035810779390528404584049481780036629525358671653853883253432007220243969000260858286977704169335606519714877340685447522290474527973119617068163836144517415097032183793760230229376007482127596981489261575578004657337150116065131453212231272863414355042283620326333338546620351988766906682208409199913160195595683154438067021927929211786077814796464409204809323439852456036559050220387553337350352198442516947014915204699097251151227519955782787231464915392603913689221059904618162579421371924174927663391791618811102479711304606372477214649610314638138944679000515889261916523836792670309401498086214119492280773158044891879778425479146843434979518940376117300542507791337668135384294756137447206875267578894552220693572487874007741133047735684795870002006942269285682338129010253933153432898651683610555420852378260753329085570445304426896574298433522471703295512332270396490979102039490082673447710731476551452218155644993078884619642688210962387476603186761712664022191741851637319594115683582260641165491267477590798186092172988376221167212551846244336850659073122698393315414106707511995553911920790534484111712938859626552140587868340628843476745367404482303841620902515273993705407830108130717341790990067282213692337115218039845621190125960061689673247901262804488080496119783617699153335612063238459127936119385752872885015905048881713353527480269466923518581584269694828074244526222775242892212218573782356850258033915502429394685995355572515450336771489093997352795884881644278363414151062538878578698517399032733097761267976146634138328040794127623089576915156044924098725874184335586051088704226682712164045022115840673247065014094047782130669374554988092232102665941677357142417604432843089669341716156410331897981721589231123121894947604485333359375611930043106545144470808828487810995660120963604652683355075830534357659558709003471505623418991465555859739687826553860368626058398522214514338985083875561169715266913262320015274075904414066096869432830605908275743093248153579750361018401025563304239719087449836536014026928046965808618788389606013541260540833622726796859601006289510675928618365935174156186299316411774286186169934894020869235917902884119389322067336443880310134573170141553656795324618676915713384139617342262341614147763737572287018368232258761787932479167705110002279128161526704074256486497254546398024683280954264619999785620971989236059041808972163165642854373594706936377528263256460901134735064572049951128012654439981792389959134294999995960327421170934607759273904418566242563707701796035728482425199179657272234215300054821012202700141583406876194500547608982765145161863129968238299206324588300783910766871095904432655060633412764552906306713003019881677131690902341480351221760823518799690682528880147739645115271415319505656767366893319206372773258538902350227243606737295233272115157092615165164991213811425355694657678170493517992360204935230802107157319057226274888571786364130834700197001180156523106936989534516890140053138696849526532406938085722309753626033560532185097294972402906854523042359982095187725970800629117964550965999606743240099415000785237533612937796949687022238169366648071246968464625843126204975809746119121568660280777485016507654700902845256382329572303560413030087639045506174918203584412862674609445826362019065728695989891095554236327074915695635676936244015220130496649035735526646683637812172407175836076842284307022118390296768098758435677118171559322127604299198490897189810596354419846780415271496124378362004312624104991353648329594760525088118711454491274062026520589502715588000621144476868153266164916077400431547453654169541038895269240116709895328466236859273505440239853243016108371818518565808572325392044634444475450934178643348092618745295003985903263535848175753925132353545217359820228852012093992639818761040224916271698614574342640363246369354496722656730893408819821308487659386152087687797858839239370268055561809737539920611390246716302098804489995598454112404840431819485790718416278408474820012222006436716963157842029941628985410663824332565378729296625237850937398879114902806618015547639611835936047256961231322245541934998317702403205417700940743930312579715752213775658579036328357235870248877553541874804993247746297077407656839080959795326816688276296712329292963406058026236428574807312038014200341932728510437840230068976782553494211938720366885981144842121512713761538856347139415270396933789000211564406997914455449345248473509553776158880469153722067447502533620678206845609415192579049989056510220469896296250507639688711377502400712841956349372369996131103648092905326969436634352860590029869822883054034326977185610792079554756456617061322254787898726683577494468635485397191755837032669530387853287406145506167294270936398110532659610970169131990300113720992714286088381758695587507959520122478265981517314346101456937460205867542694238249335132876445056743001315089973519824584633967417528927423737195687690326182393452786843767272393478231418594383485228170953854662930798708461475022764187034687943231599037374012902014572670406254869915363799410518389207699864565375650187375929711863805443781661515180721838754341595864008171305654556757870777396562930862716403368852190049040144149243885783257085017756517561758536844700707004044264518904885710690295565911590018566795564286329682809916404556407884875608362517618432208593136099820137273117886873733027043942168835438446640660712147010328573573794494716612227822800092591627534779219829659810114428381353174174389026878600159551736404114321780864888732505830745839070473088448531059481219329737525376302458908613418504625864149286116082789877520544193096680625322295963418852947164966113611313155613013179054879473585454601265154502712213224225299697118830420814087229134744927403979755496719610719215387146501380186721860036135114059411138217013348219974732072238038410902537791800590453861040291450371547235391802856035830157980364899489501024284094048909198615879937548435582451309563327858160763766887469924448184932721658919419243893194069541571706401525850856677731923289614462384655286046198860754554586699682687190923756245966876137004772016937384379462161421882396668377207351921637389160548578840235629419375862029138184728773336367860124429848973009507673088303017433770148283420835890904528369754319517400803515373526286192979806875218347827315709889825957213107644324928901081244825514420210958928905767834517887014423711356039294414944678223485175329420531356544844362799864621290206249385985661865705164179723433527011740174814407478034336073737467616987229858721422772036240538526942540975890914606676322487904177313538494445819015325867395520901920984727301153918954348623317338392155298631678854662585830246707630819517542768577267860183346747718170326153436721289981631618576118476534948234253032682697131722978293119295706767664536083432761033537723543412505824880358786735565374981745169108844149138222597686456901267679400272232542284910333726230805206761537006041982499660386292110740590935090470904545444986738437397704456849650643435568169783568079589013258415474932197600191495993912131229836881306623200191450230034597268331040609762842578668425361179522215622065463463404280696702645733678045894919540550537119930561356058992492672563757119721568194721632109789519033390981869404414150363620715770110423127253722844061181131262683228354832891036736245951249642058593763259716183762016761922478861989778835243534671557828497575050692959620943228905485229359718625317206663086039088733112026936963365047961598003198982151410016810173411488954221069794691977528682545456617902410525753476289783548278911973930577883539788746597775376047836953455650035105212924386615724129365906330116692281251652260848785134550589127356959260453191988091526265404225310731629254833781732077135356776305605210558969417801022629048505717103883256757180278518724504606632727918348068147475583879544975572680985835301619216974931284490044095017532099777005023811121629428975717918635327904423137226650093344990181421629696601696570689060397973596589791980939349265322435282037524149566376794326543229777125060888083911402971127231765998461258304038328060243722297662554919226247774812870289299072331341663075630845709070626586373103838862066917009363068433649992498561624182710341738924086399031884610254225896277254181640669284820148799317782783960732195819208449166606914346005218683328494780736642183214692088444297397575360764159472745564168204569131287321238376148590854001156021128331538449101225043830097459678192268786191187079936202941154419991415132600599262437874718958039346368849035372139804211299589664257180689414280488747428945221304967712862833993569674756028059822851688697795609574714591325750808384014668702223271554126766763269467554268485232933326293163078103689163784696348340360133290400749799311975452570337754105714260348842874584935241856733409218545476479241385919113302552288200602801191283194614019661191856327923909138894823011109113238118957459577955729345090665835084885974856399299521558725916152993613354748717851258990809425100205290495594503132242686507773512760768417759729338328601919928677679766420233916948427032378961512925396064989501345753835291611043992776821530828359215957045494743655955474301077678203100905165463359187357416394686047187183695178261318053355429342524209790761431870878577256535849462818452486986783670619072861378889623074024459353280499015112445470305601256750891495792307184805797511707950879843309766254740879122246716967035851628818323195697184652276325461086296589294535597659887298914721681680540786917303292368965316782996207313561225272558134139354432323471688779787361885761495522181915315113609262817779964997129782318588425988614342909287043973354191587585820204276187886843805474737697951704710972265260521980812411281703125626319076945199335659726816342616641583796674977936734989622635800933656512637878102953068372534755857842121170158911890533041754462170192915557347669896508299864850766566358286335006023718834994389868662230122071461635936739521844689364377391253296554955513864958291147152929887350169502545316992173524495280921017147407963004205700703374990249889251987400914575203111142992355444056418291953858069800392621715357398058695689951769702028328955249589100875611447484714677315845374551918672818200986491263545839765209742919335403911497922061037115778801358361836575277945512654239334031165801178934980616272574986258275028771966597881066652232132063260064921611230748351471237229087896620311624474312186874068956891224918428532570325771162812988249069429513070586474430383291739851037772626356440628742543917404863787709741132055972706086052763840365396140833853538502583776730542721757668790355346492999363980468884095565757191936555331660496618544583440133637011122718117779535069320472969437484359769051481146377890502272074055968864849638596923601547761643106408990127363832016237014300751129395531525388884763894130693810493462919103790564146639916445129367475819951202325388159697049525901215746585123573174108040588374239621358581825536360258706475123812999551169385837416853710372521501249519615848336990342897532485366044753180538478430890902763382121321943204602252840421852044852174854749372998824415312743298426979970603827158035685844864597527259351396834194825161230736865626781559471897859380204870582328502557109404661484448612682808893720792391799934709126182584883527141224864327451276982631695498438695645799324796542520972980658209618028478529000260706081051701681832113548917204755448418970546103894184258142935918363216044681694860449591128156144628855375977524190744383582208301638158551417421850956640018181113107154511914327854329762550569277312857004092130564628755596819702124575779594007434925650143394355603440345733511523332654200146040682311029563124566404572849405889208182256249464754751718309236778618710355191493654875403520990492497828672735946898517717300509876045878211436803113475641466562700090129836094834053248514703049548669196265896573506720091814772163160003091427860119429885213322068074063307963031867824048534674604391873954980881542155949589139175841271205145662634670916481944226927973185442102921375751987639394846313232375556811803000422833252984774431820644017117336926535731362976572422228694641876544088021612077734120225767012095085088319009564245612657853635109267286988455235682436536400234443230437379159524584915652088489765949626971958447451021532964915776156393180285622867126232468497237034189741763481464163485052728855495654748582694585580234609411501850071429690533210264240966189772800353780282484939517741775511889085972290027316453523875298778748221521359277325664439751458129141877443709590212786075278480755808745335119007101896349128305084007229908593736616621440810464763791208204839866938361629741539565221591625145700073874852521657730242213400060001301452735905323874314603060648600138153135820108031936816489169625652909245858872262915724767909111264807544681833557395949911195294377604788376332044408166641321228330619283767967338647925091338411096238334750307538840084907923634666874782052781073682345896447774960914678283285342674395028675948206119235143123353424562118408564305981550955343836848356718641298730451926296647251206837363056087083306023473176066653797424763779530216948813115122600558442829015463797689548062921077391622121027200320625568355035898270688523963126079667548486996376089377958969077496255458645841729482683703499992048791828292736525817606830293381323576798132796585954526454683573922173127726449618186568974711959236751465571563173762556740939466322951719636734884989015730754042124773080279202493579416237921322886835286654470564154342066040522828900885732194055154578708082242497491168289850725157284187276312742440157124140033875397574170241835065545364160467912308019028814878385349721317320889926763150492271914197674878857994060503492883678662989582936957414337491043431582217511976692674509833032774842910091061718976589093766079541811062584173187910797768507389114099239497045680753566305847786782689663557516478421655214779234475414159708386791996822417305335492605586092128675125338743500902776826787068586940308105440337741120887192152997047307841711289607591902033928644212657370839622126092544419189017204657803270288195249438771997669821896769207865940244647377821875705630235191412502784563828430128251852555728784879168303638854861210150055601242098519075792687103134960654432218909938578937064240433452614984769398806747474248942659943864574698800242702806947767426617144786717401374296957857309552439021393107317437307724810644052816198204000208889150382811655700913692327962773032602651799041881126926669870507707777049334729452954191994505712505243660328235628082049701178971437022483446491291437940582639904196948352030950398847312898712437753971571418204513022260401633145414195025792470382981600841736412961300256776396890042012411739252335770064074148431204731414012775133274402359787667216489603480984250638227911333527060366398315157995251314873716204610907851883002033248922517955227065214536393471513477468895897628916158020961379074116853715082125511229491365829032534587443436675267970282877592395869838535934282783308648484072121917628996451217267136834358276187627993547849927994029054699864858783955203130901529300313438762410243407175225515226097123044612604482284416739978915275802387745236321982645383393330991277841503713370688074351508485427970949129429401736588511057072295388080839063794885980917801798441575915509469763422682858523103556652739479499806373201018493107758564789081878247244974254006437318073946245691688273588921092942460339799982412785474122744558648058437837438847733907544020994190303472769060140815073534590771446597804944507281689449146057641983964002920829854713484087567762042153303636133295962295314840832401729956171089514072043668494556222362159849335689707118613813639031501667471361061400892022690335632743632937195864119296952046983794234477796142585370890664802473244381961088172475752642962836080830258319498357631686586240993248733683955462410383176936964506635923590844843447111279206885963752846390677455302758347033775128835108020825795482464904455232638839627815516123574680680299034038579366549372008162974204303749274664775914909423136107675920399349316791874656765970505201845657155442768421983036529239750223486842216250680425237318684603986100322731855245147032069016004563459819719489069860396182905889003492407806469139293544753221985587372399198881779950083744214988614913300357499447128256599357802717857959446675968981683362782688859193120971026252851928864665865589902891587275578869635551183421243232586174605589044751334406091097392942084905857083870067563435854523120397940763556277152694736869380104802696302898125340552899025373296533508765535952929625955136213428616128942256596648767478639284511516272603522577544328466658003807100054200033409017667201912567016911152056045523992286581956005069641558577781761440926863662388189867445004145608124932089965541641476606098836542823160674947301220732814000817917150119806696086205260830031513985141292633291091678669804344739038003726458318281231433027314855915430759704141932194619311521581034672498010217145000914685461751973729562975276375668122495143097381623630028161877667645885501657101742771587253920851331863724638254866061555735571139383997579031754510667336936131165806019586266885022689130293824685039917209227257697330623436560607259131759244264253475337816598538670646695586977956252242005577647202299288689243613573587857912701396339817011924791064654077940773988599829221795284258683483034609304200278061277911049365508506456617286557561174157735812073954489082868984397183943947161208756784228498486696425339482581104375611138923187959964824172775499906415260850072071928503361227592173137141272831253901512756275185348301117804780119102263594141946274524216829517891700960962764535783089677448558197393222579741860118270688438822169872046573718467668536931763952529950040373619299061463042616945280494335280498046674667007577744248710283813964852443825333396680193836007142812921964685080704824717040952212222062146631349492506646078773020293173002003219398137782092725824255769486557287181743006147920147930585297883141640665717999797515333424624688459625847187952799364721397191788256062371402934660874695056273864557726655219637458760510695202769380413093669423885751174262920535470017135655899388220775011475647127815755657719990105933975554035854215701643628940545841257616028369038230697257767753113391880936648619791795003771679679293962671925907232393176310668618547840465094988943723861853036549671027529784322972184705809486833163416213257681569562683062649237427966354322577558134594784197208051503884494136466536147787518890580897152665593259040847106537433033220476009571277980504534707679323629475468042624287370460689593358629814154104433711568254109654102194905891491811296104195216508514907518076269675183957881306585771176805684339487248418423964503894008369784053709175239423763599021573212248073889822742941407716971887026604387731968113815945492719073867817006919026996206866898286006873826481618966046104121450947319473222569213219534703145642016920712923188311768578523440649788066139432642213349257961975760948904282732846233097589140825250773342281399039446044373065302266250407610628687853178970232337000440588689380872416129584565268013009410084918308865036647944265941656141760344811988785061501515544449554404811820473971133475667034191919334182931867310994166266833610527658720931228225359766919588259077735461277761909163815274318714531507440344786039813244112276771059171100426028006867658041468830342131754086710947626340219305634028832993520608493166650314825711035655637372010899982767212330867265985928020991115743448773528520977011992196252915705416786871414505340096488757559515159334222114064252134499779585491965605417041019538661229904158102023851240056401359442734602039423986190433606020134024607095153733210421063562760664703884826200801240686744850836982522714206170786621357697262566107738430344529128525541186279067215345642611717096239271356398920249654952008786050936151976480399771491528496808608949331304279595764921251036974225298046907895829103542696300041388178798680957475153068905713634616958713116523012857862279997152642449578673086175871528296545385953064436378103694236174034419884981589775333962201486480144705621759256263270136981489045790213708091120390563189529560425603377896300806489433297785106179186736017133554630061788324422245268491317130719376524241388149858087560819655339234805577496522260652384401610152864879818692211512665588559772261029581313248566880117380490362026743069551408231077816546288116959426900715849499186429360081085903905009958737187105155934329107650367330132788349740553870092279658325528936252332899323699986136845185601355654434716644945791946524686665737188129589081521108824055715385920420102604921188113411526025718981876400545956429133178212525249481376947009289185450247242200624842088783282022329060191973907582734607944859963872840316896541301817304329623252306933524932072181514475696512938293423598836228546183396755612353277949004944690534689326000084152874828425392735981046894338383844631565137769204462422334709865179634118259476502663351094287186410213082834751913256878009157244250578479620867947207939136065751062062526909376733773964740704685566204083349269021205621956752613544090133856838022980510868832768181774325465172796634977559991794911562979828017038625883692742481236749436036449757237021955984457532016946294453103853060327254208432621755656672815346317317919480736943640629863429440837002775308015711812903588372327100211383414962399127894609752812712649464367064647045240389152321187721692767398877407633489036180535688491421843893794670479045072259721009131557143803229384564204070697463474781138991212110124051467679648385430154975869267514245391609331635877316475581107019588693562947904959637199135521460261309492987903630201273412330306151454758690630146445716534961980529723371795775496052838088228592603594086035234577468414151960640032256894953737389951168414648203617760561824457189879271660167329170887668013852323038637023049192508577995569818307407055382655549674328960638007037736581811143459674218177632771276375046191799680902745872612306342165207140876057994450195296245614852834702715905950777656225833699828315714354963812774449632256642842494455810298938962332486021543763251737378961677932426151088487505083906554992046456951208213709464550219965238608947315781910073814952458643117900177506132623114440025752789508092105531121195916401584764962206524317724780251360599101491696160680143109261405192906476628931055276767398925258427265164284424351815845631616355544295926058944039254703868561140612761797604004543479055069620533161196130752080837310391102413495442165549184988651604707811689381995923686821010597917355958673690404369496505726711353425348543874597562442986805692757297769747469013566677865123734360366806325778313144216166513666406588112630611426600930055467903416756809181248519512881243415495000361642145883386033904223450553191869998471208407981564208641054037973416986572404493202146843046449258821071638042569580253991532197102021163528078173173030795050817621521996713398532584721680455139663493597279630366191341467931163628346581398439671703579997030164295296733694489516056865540617723895983009689851689319044371217086984027383378806272575129648352243506863851826521001816818173315753800760952988698373242657855278306563339468665577745927018087032746079135455779715923412368240661972149626778325007044839766645132327243378857893538994522194007591748370198362021316575173429442280144511059276683852713075974399360512378669983063722128465849529526894522787940401755115760303670023472639287929107290199555913171267158831637384448238977539644630010047445620543768052570573135946195793937227246433226930821844209573178247562564555615233481445761786685886527578862856536419022904477148317408516028413294812338134283547259673630519658526944758407936108016972751770247445001232588979838895783563010228209663853384183236201387862184739060841923860398063295604756934384124033820020916691001121089277208072078342724944064634717082037794914400470877322332679402943001979815284438920152878570945445570290591948074738381980851182342117868070372537553162278391753978528601898619105436225898670657117848270279030638214708646452049714703337888880289086799252778629564433887853267601309607070895059362056546077466996610846493405753005235513938914619991747712781379931421986338277429235713105701359568876504892853681841898937122604737949895804056890336198579217723595390299643040804536683329756292909470854958663251709732039875184604941961408392132921548079585355173636878785056814108163493663683788018093052594390119421670332961038896705687670894890866308833947580423128261448671428407161907092038688915138868755021469551522580970078185671190437466597799515788038217181732721519857991947176331675771706787482267568847347104307001989346803273968134161367649772214184273653037243196993275778857782026863729388758844191572078839736975857408448608456462764308971891218494826580937359960151910867141815559583393528465548856789990003443447736691619627625015505437844936162178091241044407419956835457374243237941532339439881977800149375642267415565640761950075184848386517127618709576730173023988382123349060102579636958129762939468521087714357933125156349183721447045974260030115888258427358858201043230236743290929501087934883776430389336546612535130499423139171417323308983175434481936661748367425999328676273974300581026261892492699425483337145277213776220398149774339871912613251344033293681940865674427732529551737006359180929237173344612261364295401092842333596315812711413806875900944848098016786450456185210167135659140259783942673999344159133022451277873934631095146010951712424696678209379183622031934499013524149813537662940959319931762683476565793246532990478083594890166688588123173428894201554791039044982092965526136612386866491931591794104121219819651080847980987979214153345852214076069126483875185674650174686031346080220783735283495344429210953496350205367204006547661188215747916691254461090837724770333636599405191079150973565066561276367737990254587772216287618439321870993808306191712216753159295084372076363303988043255286548446768710680707230388664972793565459126253976258508332689040873636962274177995403477473115804029193855484091039850386708196665486260949936971936636509870334984187711979162925975333639505273867534477057035514725458234214526466896544306456719600862880130059711871585938798024699506744532236591525297076815068894601378218436672853765531786899041918147479010061686249835322980755137106051598048936424407873032410659487632723805343367091150602557889973750064151439311823016140407630341177519673169811878336699772595715525486779401371457220782004861426019791834547260420771425283438997126237083124536240089212820396295466480231015752885624640102969906758136231170411174633620421539654966496209591837318278269436695815661505190892715662172644111717904511721226463491256653845918841607774904735463938657520216988000431547616083054901443743270212806322226742340288089950791259151148318481939853109128826557406112469588513181660567155627063543138906846504430099018163265163691046254380995318182646903574274764937050601681050161645378863097977854136305799379736953479165759888393903545214427458815658362522437700620893312116190695455729043704193431717220891280287744809879791114734678861757362077427917396191593910583889253369479792430934367076349626680851881060302992343464912690713705529213432246921411185138032127877609725907999030734777882234439124735182138056700768749871048804323272716657441484589908896330102379448324747818902498621584394240331119528020782869436015673793708224161041282149632139675239602182049682182350276776548326098095908928310333010902246697710166375265477934706095407997984616960058885327015939550125811900969448849629274100505022857678240269598386555134540539995958217693278622069264594039902607823755765172272763361062032086210449582221049702881014716654863384858685137459276452304163591569206831965602425322781363406907114656515563004748875641838417616801744422308234127413018208292567424454635862835231465178458734228114371563449736986846315468947396284410129602369565209365905882432570429710997419746520265664070670561486961666992465442906606954067384993260030108744829945277695236827628369164545197234378910282855740583090120429362690404690882937534280156731730086427388594931396481877314280341207880691428486818154734503787586055383189667575351311313858518402479590060629607385296436904287656223004663101935151867956896924244049522656421707817682702078170333648335315365576473543761442570563314407470376761760069095162980697364920750743061791510556582799475340514334447884957482740003196902011082159543775604968248753170133935635168991757845733450126501605299870774842983856931823359809235574741595441723298161154530839515475887210196229403959150337561323155202966915386268409353887491386796829161530979520241746124066128746393285740477579185768564422235066975310156304419993026506465422501780838006635214281223486176435654611085919959926146133754083982010637325839732296629214270924282716432611087279142371139839983531623006350578720985962724739971180380760740311668456842853030627151990221080946464866859226672717180263372948023946381200483228049307197412594504349756266994359137156729599391151509280689761994487308437634964340565316619250390008634330691170160603005802706301666591037371996652013682256712785100373758557092242896945526261738734166600573151760762019848836659701435811316051871269219343019299659812518165798336934187050981151850999133571866604502507466234928614606205702706812315659848402804784438340540790740491257782945563351996004303022913474453975000934700581802218065713365588067043219899610419849637333484423698176130842638790275779280148221880445783701267026787254111995658183550795182822020931393098492601096872029366490076694630973872532111430144146511820187793498370446973579249347944774573291071911647142152014039003809817405165446608114298769776493020548453231544541026825072871566172980055355342493388254653763050215741225519979917470041851740000030567765050682273778506247064877521259217139093364153237980258846068567348352797931374790085707075456096702530384386793456432350470889195309406627864006277362807051338306595941451298397139914577271196692924130268234922833872599736617725323366601062436095212210734401209406111316027660397646514743700007249140508795789101479331521276768958381666548822457055257807565321338283431415382846333795695841229664465963725666503984678685003947852109051872016028840686381774186824990177294222554780368223804545760040002856818806787786322181830388899791525506288880273595367339013170155600322924530028635788743603497323627603730436828859563271501197573192016416979513230785372105891106466194017801849862667255874414109358473472807060726932786504514125109967422177213984065616729416548720653338309896241462770052210265301788426052068015422336656130157464940573517689593243525504942916799431099874111038386428876122216652379119309144073198673600314250710024828676072665578101022559966140357197416790498266113535475058349117868607666051152207214356880772320632703276392734517051863130148272328703737820182392213728827178452943617860671383815034196586989936759061258777954937695780249473256995614297814096877284355803524276537515397166733273184915197160125142873016899006998598986468184860816916753226306977674211741545063298213773343772815174867670030690367798191973899717922561101976025925922837027547929364067570715706353252400633930920670226386298452653212656575734536173212635905626330842393447599459662619741188540968977025897484541390438723658476363118163796556606919392705970981177363784971190270395183707280980064697039644044909287066746101922754119285635276509618855931102533883817070943187807378139417973890074316914267398744827693723327957000650827589756627291413151866883276625032225787426491124199330626652697727017093984012283566885233797193257218933834516671819900052604635493840574659155645931812641167606344811629029012554212582540525155612976662202530693599902837811202251756534360284237935310649990510206749695666765334555444193701925490711813251365054392396846240440346776271504784433661055322919016411623061330770810334926581255659310384147597469906395883124968536497813321604594227784648740206531989274263814478051648040706161798814703257302164825117992148653421891399239231661630819557849401763000487917449083974961646520458278739269876647465982099645922368977773986345375524482480255413163575642524638795048563332380338495033459683308352378109240308835708207495419257403681991910497154194190209071002099555470250599770344324123763820143649341543878981563267743867522401607171476824394580870402355519349563771156226340808697055066027106517146991916245692477197643219795641289935077031828532023674360497571974409659820625712102696347464876435073056417569184906760566508966027270686809700472927662250776338288310594754559279101881625990622330703521463303656582246003674520008194039845784437989670099681372352430562191774901848218321828539041564485791862027878486992733011727845220951064261742134356517526393615742653200854587110532284577153142148238507117642546241165505850618031273657385676261480981526320628920525786782328796823753354810019680386336115152804544486227084399601304986869110095708182075933764755678049239505850245516227846667325296838178137021691549689082087598701141791892482111612904167528069609782957059969458269215185175308630972107509357929280959576219677187345592712679516456575530222705260867366783567604149054000570887434847706212141614554752864796872863494602301148566180155269801675577054527146173914269182993907876896086784311709781116869213143604462905406409506653602598678046649854983409623538134506310483602210574256037632746907731968761623758020426231899816516617269367094822524754084800545945274422305611565847556955718048694934186151395800234218477314260416800903816953556695652815083867353648733490437769539535804836798664943502371626874776714714091750271500892562117460752075026354808382288401623361165209239178982805822517695287079516874523380305030723896695276502415743375849223501260206769523329622413217144527675534701510592538258540855572603322977391998762501018140376757430333623945472454558169257413373654529926186413112039355214107641739272529493720444389456309772494572193020997907506561477496240621982929913415195705906477932952977674155052931240006617371064080914995231707358825556280997722246499975041133917889379588686005174524132954632384068600706513981479252343417901807328375158235038198939354644233920785328173445127383575029046269971589779022461540998143703340346198991996074368250106033144198064006505851864166232233114068500995973741245745295570227258499839552188133365162601262531767995985806773138115852859533314267482869711396332768430219526375491351074551882356511304288992307247254454564872521721972029235506378741645160413938446939198925930004474765939529760709159546965564799845353941747051813334808492215093031863644194901714685843006547403040513177960533617489599906033968112905305132861752309336567725627469646145952437846793588008852356496995567417350746581591849867893201496158265927479803261000544580368105572262764334771072159457783684998254757287241139965287716566294326489630316109925553314003386480159880073640296886032206285810227848025977244450770120719892330309949436799180371361116157219641397453736660625223618137680381571744089899106513408615577065055987067415140461921282094128526324041868322470946432436795658132006152833411728555698225345914381654282423436937372325991124386701092600955438428656425358865870252559308092638642125171483696526762072886636129867748663413080816352052926215910030121516594642148887318799251122827933013429429763818547118643268215875772120867626714332651434056015451291735606300175164575789897729320486884322400955217419944658509866161685185661702129625318606499842302763096631619057499140011253518740127448752225211920187389953253815542006909458775894254263012939611584368906781806850223260027947094326278498233558504707001884135484862622175484407803397984868613865822667484657093660655865674034287042488546819054979148547939431769621015406642705145749808404650286056273454654998056053020867653779285051120866748768941546505692856470941385981629669248756006938369661800780055639826937354825670643772256651941053943552905726145375531172811938344641251948368183751494870484757986185144990376411601841776639098942825655110216943112175156852279569531438940797893568256920741018511803476607274444928531533102895159246838853801236550745439861679701843272933322224302129974898753272020700517514870761662452911719582055766440872574679269725034272112446139592888711108954250816253575784524769040691315291086161083215582891134098669277957005761828311148524172473766286576221045077252089313449202120241682094249773172639429914959319614399278252396384060020255049523021053518113013250714504394680029962651366749470922217752639727185742692540602940504217471854909752784051715175796479670036546350929966596510154834688908263031103305022720186794491564418294124198602983235133379577526305582151697597978481225726143823793911811307301932793314254562101707860303719941506402783691753062427948856823613879139225672243242000518187584879843654712217628831935068320616923574698506837292643073196963021964749700375138712239591072073918704691755447485474803905333279562417318402304040115597286678262802088931995458314669823270492617927265593444214801458560078906524377899484665369970147780543001001775150425076433353008716764719567496175879096634994217893372005419994764193466705213821691251007286536783050130805964460961820631593922953051033387095268040934080190260658590834684863583745585806936646162260176046662027986479714300534911721861699474263285875536327787859693729848520547492662713001703104900009104521294612111318476309014204159855374803622886600605736102361073812858364687899622521123406981336803697600037776347898989905795918346830165096257987628430604178574067203125480821084457608963568908113335528938954943991095743241426081950032436905658168546351460080151686837201326747814290352175302299191487240556490228321379761743322594029312699355239331983477349158516001677842377278171826932268525256343380307486675154917235259632340000230388290455048518405162256191237989383043255938833481754139056471004944047502431377069083890918116883133338367917308133290874206550083489639970859525610310299233140801766170996926844963907484551602719787240336981045530978317548193348828174537668658141047991005700550119813932903114858323802026352239504770205504111354466696492928213166146489413092734060916256812032117308193175917360399317365773535812978029426679318943830305250639027019547473954959186889199691197911922883755225297920258032502329675885799161728151137219423956966411862983159829940958215917798655627333615091379854598176537101329444791980151724958658556349975033178477100385356982366681343923878437254343296544769132957433314736856295970290874088378767655226290137852278863126055044540533216867139253284012843760352434091133488054236693843756098530917439563758105044779938828292885123548809613217886256238818203542531430972731084775175421796591650130530468387736210929797769153871566679363930275333873676809081048275035001926758703880049479131305895378804290841029262798297171941612302998981518411896538706654223790163135580198441965132757580713649397900553349445682077261819199563119300564439292859284769021702674999245712598170374206138881032177952747456902793603709946824706132515969721517020847983367072741070110029076214377027039582704689463320659259570015420380055417659455071953250163210606893062174505319843364103844871761270715769306861757079043924327079694777942351341307426124445562569370568735535965872491110072321517894835644086553069208043422168226953234311253563461509516631333568532967598402962857207637744819818799022148182865968877398890924927502500578080238745380486221584342985942963860160998112584633263884112805344962489059640710383948505833569025691554670661213539247507441722615422818927528880732980267340207602052498440041396596345001611196912849575092246714337742113651467326342757825880545216479207688758043603949749061116032795685514847863664496978704584707498238715341404959625401042929164491161935521883847464426746163533394858599249326862258841281106591350251361314426790106254365519363747150079247026353350004029244392635649695676032848282586100109467317354557736612515585342161392419047744254467541775265257045304124083021864151434291392021693257685687532700172189935376589951882290447531330376837838337213886979087181475856774467287992409541046570851246876188198833283002523433058839176078613640971826236995167783098442146552243203782822661719978454427192981112940355938510623233489105941936736895269470626881346960384026608099465698361360175934512463975865983573647956187442196197841785427236661027943791081553654876813782549413390340881167569054165896928178658654582057736630138586458194345389076403319332450895915671190531219598890768979499652726558994285797901751074583703966614521002102860200361424889231815013394514522165669925632472446358957391032571336906633869172780365037878210425129116231591938098895644776450983785640146723578167205999170618109870964809564297918465187590361250874978875610129105012676707270022164619995850301299166322202759300650873786959936341742771112233842382572718594297160114629082141594442914495860137525473631992865995418657649915896901248685031452312405120488440306989892965069052794419576390730118476521527538739534104060562743728928601366836347035865865408545010977875649428121736119478758714856831169570219368830660286011919311501882938621127732947308374548503676716697477438422427568242366715891586220379364927378406447171214018616589493036608503998905603731611467419653145044439247587729171388607076014587669729131425154869777124180783008582455346559710050122258808752219078387193854847255826024126140859489562431111821990351613191475267176010105921809253432482820200610607304743568549878031086246532085834133874729767629989112733040514442306694768145912951666010692926299735676785084042056867604808125804674702617014044812487917830384057579273858686023527273049140276678157076888772821001395072029493601693297921598874456734347627891121765161060566884080047553506971958507418658140503382449529666460597931471551730008595844617455234957733303988420040686870744992550957383573264168263888333030322567476840002118015777912823146179198912692451803979896593826608862833261943541838590956588296915405578124103571195039318235574139454333836232260451377669339372743593791275356271672112452985059246772178237752697318451766969500364797347365295391944071449972951078774571187821703624971316862384703867300539441148617840207090322166623719261920896725280134022230598752801234277401575698717622676717269750555656709426607236060594148186868843253397897164942495661996963422140669876072155818386054665074563610696089386496680869995456942024597928475919406867119609083375072534497392611794977101655941171004722204231105019631326658876924318066147382258391957106672628177842853786585814661147636888630395847881550715360597602919922380042818029221383282355319238134258615640026930546602875061234629426521330445590053009898973187456612755450723212570326236649418004295333152356322654583905156565784930165253417001212938642400474419523307656947594932804603511838673540223899501637506493717905149235549870716965267391095289063645364060128036195554161218204358490306299079559525340113100996485410661784186219543884563085748551125324359563596705138825912274094249055817742253943021369049327404239978255671312542432074857502395118154161411476144879148663978361161392552501924120305213618105340566875084119542395724376989715409238135864195273958536524928376381538716505902047121448014771713404290542346592022253382233879412846121433926624613685351454873663669349285721898924567507314740626470297461865908829599287493705398732834676406925611338749924749721649002425632233696095342300195820838136234060318922840298647191850717613287882375752180296824659190447465704920998140766198003191766111872723220134028103821692887093130525830452684125205625052226777046548414761250955001676332383099567373791586358857310002950257860651572125822975248020544463018807689520712121379155062129272805765067689429604509587293560962276013877837242999340730979267927844127993602556784958800793482594346922985199917818435750790801661464928347293132179695806579765216930005084305524200035986724748458748662169099177501702476252382219465653299023188693222507114343214993688911867517401744915439488542367019335995152114859155228629608739623301462803900917472597600805303898387120971621798572002548742016590309959200581334012339490285577231224821142530132575016389740494005889584777958434546279987355287718770239990391478666981185290052761451009857133476568406505612046395726401797220596762202747306357468630815424606938903220576570099057916967089317195070454289679716372995187733241289931875500542874900390173721319379284614384465968348377388902166412962914317098083997527607626154580595235506528815001313183659351525936141872003668893750134868491436584544228706356502711516934112177530913413671601345218734448810867560717829855964287916477589715671396139612210971865119693241284110747926450829966185788378690852159505630471512565261954853852007425149548090130319869781664048215050092716756521311815600514467390265367214032998743528587712506784442924640185082428769387686591740866256319536616957064733079892925200726973026616315418720806747554316339925827386538915985091322068821170849470001754718049115068502742836853721511647828153756433315277380621472334631384035557812858563363491674948697922030660568696926893601181579501824256234103869143140251653491003912372757960007062435046243888089268348181631994308562573953258007409790058059332859091061078265052669934868054437644379592422458530220436871625337806017487829401461959367608853873103929437536588362510562835374643762057603151002857014568494926794701328452566591269309310348808832113261089955555709907461021715949177769569284051026943144630741418577268355491865111590983165488254525034044337829203189840905170798144539636659211498929582922127262019467072765615982493180638250709381403924463720630952226324723053056162787379934686442821304602132327386654772587559250565912544038693964293613796862278358157797130544053536795867776996909143619595369866078481114704859451855123224802905015873139535329189406449086225504129016346788225718832051892352372044212861315423597593827050145817432226569573833027610254760316805362280885726982046184553647201546758337950952449501040905020782063761336596297242975792219848534082380494137920336721267199005308646374513470992962007129970922818493961052529498869410065582628947755219523947678085178147971349577013581821681094745329628011135536759546413073361537789472424102529077234183818380204841730396096389572583395773998967077895712489173878529081268849873154587127189125758450995814616718578492462414564784854714292168833923582055467990183617892083223421544473460342595302134529850811665649268547836013842488547099434768040445499713458713837920934148834305890939023862139729791623442889527593650065952147456597661178023945769719911238701523482028452166454017851192564426187474098732241818914616878190786896212182464079997825925429997465899589641727306279362849600214045778058713906226026680737358519767041181019241277099686035660742959149762978968018139527831546906086155839007398674407968970167150405561487598469763724089588464002660256918450285303411232868970457449862245570642074397001357045686492878916957686364092500516661706393251588783440778407064950909341754744538666037217909140121548808022888402112829065389488473149104915699823400211485601377472811000994592722056272264665606247789075254861482022621517141353201108228695536212043336916946672230251499187236118481933726789805068470539868186093027549067995328067356859330268569383929692714533392577581472857697863492839974434201254187795387353920887056044011353453242337223860583358447457650398564019167562750701280274666944580078203350622816451150083924403057526145277476969357941027485996829377996185150241834047184802584482029816498048600059972128515484522389602860164393111949947724817491508101691141983743792920490167942434578718262940591094375332352458871704406568168160920100590033307727144269780395568062513577003399143121945134560199344104058559023747077090336975443457517054681611523082732301364923041282565423263137402816918031032507082819856984311065925178708764733561130460278041954475929018161193274284550254140013988484259023419098028875488523860081152758032519205074857314994128625614633240705680118401769191215958617371976053718839349128763578793590475439526780247220300545717532471753068833632289868879836097922914224760528592794734977641712585798917760697529677606692990216243352594994012199032151918945000185871630407126862650765130236720501977835703141661652869822847182474383040772178142176771387692943390364026374328570547474659823266734370171436066413974335773693306607198059184285106246333880874371215086763488836154676883455622706491036354306648041848742055863766218077262712443789453497905414438618732076570453709421404842990087338878186351911180141266906608128671010440807698641287174227133708387299935283504429657082784131360104721091456419476162227525738515004712656790884713840062573032679460480517349731104257745672635366784795417279016775671154816068219021052374635472027205572145611962791834034697389564362974016304750085015677248349203532649689066475015263568856834695573345714548787082934891873926663355095557079742718260093857220841301894916133790909892145991719464972244320075388833798266283805472785158477860884618725089138989620284823252957198458530404349083783678222802581847247466015029124548203252995970987490928582548071376346284489470724372535944351929505036093179872413160415162428308806092327928579649186073173983234568857653363433269053982727572728531985568996945237853827519603859557157791973900909604222813512647187433336161036157730861289040430621390009892860294235200816350676327745755463312552950578675520813964118434580398294853723356571836529317471138392603415136579682007381990373971007147833158804431558938726270348368468927916645877855263042381375168794475584279191230897172891712322539585135765769106588307531427645021809105664791275269948030609382504767189793593939516805346489845653972238917558846684163191184519752136023327904629931047877476076555347345670965714567211086051251126868733416046875034762685202320997010434545416033848530571112142788994269245644518381033424155900503651776407897077675678080476999322254787838305486464095753589927238872383562436294860318092267157032463581816845647647422381492255205144634544737287607473658863427003062841281064913388983897827594071979489936293505245858118619371581335413808860658279646003440164851202821173882750590589863654618512474428885963813027550319181762118736727649625534173940129206042601147386793475292467596319429379831888018079154128758267089608905286056572035293559729408254130184056673065754717496989044739551099502605450032987200308808454345199595161598440232086652008759039996690709959190059069851441770521077390876717301539087105473448678557914625411417642274318897387220927143854186693910478381161524850000050869525420017037874906628025555877059525180740720620697333524142595787640332754234506446715829169137925859020573848490052425600352797639440485945471405005521688167301960782687421599747924753012926814848617103716316814404898198313340762407763577432625031921642655652050460566715504290168685346068602897699827587109733980806979145601728037458651669204715534932881357281093428752725085374757257467701027250939144470682428180113947895312512926888534315461308521777397240692234193045297241997949431747429426497270725228442838716410555780594681935421520474949278749808166211591087098232973613266211732753174029589861001354701364947001289441346607105657059604075035413504800648781394150452917257364277257555503811484754695486495183658163306491466967812391863715567342861064898627591404566989243290483534628149351148711714811263196747911308316233675729150984266397447150493584685005704750035838942960614400232598119105586864350635443945036446607708982295956938140049786965199945095622657536395099322174974170220999726546059805418736561987672700842261454505325768938978890253819246313592288056814594429680537579949822088357805352709490177466988898454231478431809857509587067232833761434242289072837864124509033645119777874218290989726833215825321611316077156019511210196753628445631278228136264357439451015217190880059749505496160800549750064608580264957608364591341035533291032973091206305897755705656457588405101543693523537599487894767026420001162751867684607059768063124993031971246918259803866507275371339388412214867846741299195913676573189715403893322207969402075213115601313969827871505364815874618812073229293345685345195215086738786858464820611301610512059894076353003483891814190868395024806118017972510575851639975604424871161879614285123828326853285983887435713467175488944663883469409841715850390506070991055022602178112620190808328514858038536568709852402241259272731663643709590736173742299730692984410646115033542279353545363669863841423651375119521398516276165765237827799919759374729940179408147133459754163624553809118216801629084126405443541721264765829013722491736086453950879796959233876787293279497457377420580199699963876984269919240531463035061641474377412507032832189941233699475864470522232401863878111709783929088025748052692841779611067146867585917446250623079114530996794653658348127168366699018202735811071195448088241628337942160658677768307695555431087376743357825376552144534825199671336637182836182281691419739977114839156541858704990289431047803824983220485367674701190728886510179109379822834109872056282193488199143580683097363256352329172830905053220160642857643354750496465215279864326510438579920389318647590017398537809435715425013898829100637829921917464819651031081396543278182438852335830310087795123959462192683078083800280635507502045173192233239610178907673799615736483709735259519593756756293008029912274877639309713946875894941223417218129782228174593431948589695881471320990434329068627981977477863852027346300479150732572040803166018154995377811223186645274284262444158389682631477263628960101901676067080937227418491715333592756481327713055824039127221833656981302661958886470293629791675829688838994554018314309441586027641995529722393696152872581619806287593300630199256504731059189685155693271489142869098092619327242913218223925563551171663177185345443803238178740166394909600821011080900868407763084163176162612564614373600818700798370491658823315390058137021899179038420664773035028065681686936863281341973121830053517209945336262856427927429372032937452462046537723281032874547999381135293391556843661417322274921472659071929203121299108565028489674213280744056541896378174875970797974636576842524651393768792790200248825276540293532350475260454751473908518332346024712435114955666981948504885644189270069195419541742578232054200067716541746538018472861477517377515624140809742542680287585946730718753744344732920889112335744546760427005700930331184569253575185058939303769837646263323311164003832250621343968681504692974032322412638690241766268505762765280024282669087343735760460527174120882431501771372489523876367689683035642123331972902501826582533443312117768973298414090876581248650611198192835022009719412136404604691167424582913047738992877463073991218638356687056219404793025107715032266030353079538488752747758323028441752900692960533797025865857253313634503932786580718191043969265833804460144745820697981216767638184587869258573393103869209065331079527842082010170351216465044782449769450563689393437385744737659786863880477238900699672599687112822775509083374589379110709475709640537641415690289018157503236626322803618967488843208614749904115108154185030341825363667787181565630614900098061143398084177975965315203276176248215388790255949432053384194154119665064671214873730396271018452122147613756823145172819862541047494812804066111700518748038340223811919725251185128350115371387575177470142558866418483328553225337717806221062042303261658921026775097356479503169678690138497615681170208427814576539312233670744239259146781950003127648726107816672012321199066958658277789632666428587019251959620833398039586089117855143035774405030351109614004108179114821317915952893451772351048315612264167302898779261755774511856138648403544576795583120727986216772493371769659920856485510794487601856896359136631652543013583979187495441893064189721423199915119512853398798614862407905155178652788956832357341219607031791917737903248694169067430857507359346755592273530551197457937037756940396816456948297131629914654743152069051317917064523398505611591494362218489740142411136658633835172603309728992625017871782520281850478436918309137247267898604262935696932340317750678821585160282531016297926362833564940977751538930693173499271645418527296043811375800902917282716470067619434155573640672548302323810042614418942228784243484857904290041506866658685711963287448467838340262493525560781959473259319693469582445455185292396765220791333918474700576216057821318825047350580749928840426610326908611410679641584497925718040517480778082232121131856927754212774617598546909129679446869360092002133452594001961767271761337601457950049033519436856383849793194823195269679394602076527425054710659717478516164990658035192803573934000056153247721322509567246597024803633511997360423345933540534639508201604662889361237537761001537654210386340000505021320530122603106778067713098720015015934782830855867973078930717487288483784546369364712509191764084664374161347996767264858528236455508319581967404967580081970865967390678247904010358262257540111811823422916858131285093749490188729306461922256637566157014093008819287229603698005009154520061805477131107839342496847748419967051855292683161468913720245296547866191748408840129985059184016419778793653137418658882788994584120196104153783700180941894356993581584138022388630581881396838746187361830869933953183127395821985837898342254933000191648939020754197463430923997960507368208838407638590479708530417817268744681360814612335335972614663147790964000132616698107095191882619859826900768275589918673465422809045839491867790863969312000591168160423324833492155385998624919337974385756914269463090732488136050473289226898645530358900715267099831558003455067139890777291456371250461306586962326641933974979750091433967502773340622440100555517205345321604453214883220865884971961752638222155032030447421904586773418590488672298015309948599165357902253055141014176313951084763000334500552600671924106531480128034170223733616984386285324833657782573796470416880934939886375087599511519783483991557123510281005499977988390715651442661780245159253212107010903306368915589821600735701563909416182863291859406066137036606524971216433560647461466417195108901803059382879119624174819695963462951549456078332619505469499379751006217455219484028468916122345936045116364013923917792656462822674325508115692571707458829975552352254051924480383297227092047234441669214554692481475899200282299236439637920287551064721675964517572621148353460663616406481520180931901324114311802344370899194826315302318620868619453880125564474855636702570417664461323886276521889590689442983437639726570037420459973766937882752995499397430072357532600006845708380008716940407879706210226763345215645837153100610932998430707406804168999587025583264562647335356206337464147460963377166377630697333488708897256348183912520379379082562138425655738487638920766325238752146133036953393742974421960480070259722210853760969350596213523054035535946450435753777843400883558510241085900104281401415172891326269276785419931553283926746994118862593151048922547277124992901058526686659081483528152751217718764785828906305802853802259106206048797891284230071326954565867780181491209276030978313611808571023800431284059089318961743078927728406438637418288536245644557721229331431646448446797405992002363267434023610558742399467907272842423574884789213811004473363437171132395684404283142033221578040835270970507092784160059624511640565072792446299380710645983390810442561790395908461523170935469703735459487574152972590055730568971108467341383729722748222972056048119313223183739869775468411932184148808312013592488242952083281066211672011891169031316124623225838194191211216259880578065608115872270945359265660175443118139042427014607922516484115045287566972308439754478200428943005697883775765738849729949926650267113110337124301619311973128846848692295440332597498305484899107878386419069189525140458719661974099009611498007898366266195507711068128922084522832974993423336190424422846552148242245504372906471090667667315679003364997536197139875670924803196873545566573732452398282358719893121743021230244110002770524114704281082180134439631374105575378782707983238445510986096210898260691548285371376664684948175033231009011530838667881283941059100945578172148203109772006427841337278010144920366767120776313916425117583683055710388563043469688276150941987314768408164632131664246095097974236143912113178793191320121873075240281606858586864256111001948993220810451312255480772467592646115300011986276308775098354454563671490767346271377822094016117178977748943396841318211240822331032253519796892724383506156692067968941205290490111615085779956988074494017529946593642320424562797134743887460314604052151549513179637438003780325258653997968169741892657829695185066562062918916478857174782977868130687684158997503208221902889791483979478950637814167945949508669243054825113840934576910563316975091641866726824609691281260539387794116320153990338105199877391142023549842478242923334277563303302206664779752297764116035836488741956860436969712975871843996776808648550737687266486491163696010147503363611834840658876275224335179472110874558222607638752735151459767699287644629650845268789914686870802448492913378139623191430921929613687396305104832411478165502496187213903177082594789552163971126307410434280481239936193904641334466111525207244138207552992549654777747585539710505667517228318862464851859755368763116785934951611277315712645835746470995978155143076488375483003190832234161410489789378169457948187645505092045276361871252892481202535843821429562008459494583922898004152750715877420542846186481291841318375586702847093242692605059380818009972329180022815956303508655188796065660324385916192364843235880774495220804346202500851602827530460455945655272668177066937491562657745121825128223739235877733647340098831533001762293458949241702973997245088562014414833774101214202918405450388939031773848997211232293038005333761391073106492045626228333173814650503842894098808632978499378625248905771167215813791692970247873650028589486169975971542160028221662519561779926610372887460312801638608915643859399711407978230311665388741602935451601537960354869171785452688892608116159534787831827815760419750177049723912484820271861014230688494619311206884253468412081010452895346949839815375644912035756028344869537525796261161710510374601485847699260066182095381166701617020858103360438759632172632689565798957931454266610802357241172515248857412206875106566903718531471473333576114955338969260046951592922703687623669667579074774623927117995314276103023615528943428758560155409246971767726180040205936067769216209694851396244752332170790157804504367118556969871398222101172267802958332816755098326019473657632726243179102407893385938685489648764945248211792900324463237721343660390950202695386713036161799811015669488649047886226661799593322281850427878352718426559774382147744656548509436990206273962535285870632003068515681421215586305173206484121936424613339582874040417634238323251853362388788879290201103033311229129070577937661838111013661760039019095024316347811108356764998073011709866508373422883143570252432379930462192756213377047208334075826726176087015410223085987430671009061330669990365108223920221520189331720615171355626927756775007811063849721443106920977584147944970001298594061454708822694933650611122769409824355694658866637013129491420467394956324613451536856057146490347375432808082674661838655027636972187773437133737778329917611115357987178104894082509097352895401799599071886891926034579783558427790469598150192687806005924139825256207212090007165403397921342824822202545358948789534507781265144914336441647270843178845906276327534373520310960618299201852179967998461250910237289902094702289499750728960722714786283472439236188507020962631415041434184414629374279951821467196504746177506829147518155105652666012340218417170280858282891604583030269343815054761873975845955541786137368490666782777824897854174371111069825420685842139689982755728742644173011615570037050178816872843671014218347388176026752892541587628540033328466205990746115049119072661393641506590010458256535553612214755383923043047103061041193288986508983882481286089921205699943563371070930622187413992591747830239226412275349647817019140576704549176778832002745912432465887161253732321668522294994960680746731813526847843833851550055750021079912296614942464426850897523453271288036647186446729595290109567605820197489971272880293076482606986876721380972435299799881474623833498484042207625953137050691038452365079269083399942843855233443045105544045190874244824454759137923862859425629789414451660848237016111812576999745220211334484883389082976946804331110938557743496843640079938259698910292182719469878740285932796949532202819867729916987890131757106851085895005928436648792804739465511105887415315436867508624412717386485180808916481229718239614300651506026355486197752846481475945026630040199847594077797366388050924899400927077228853409814181637868459517487600519570374935208400281557972590566420385401549656830518476189277486860069853242646947601152537352279130724600120671080869886277866321999214961235354583110471998243259984134698215372658236189243841963135290905969311404470573674278661208668249772781438805558257902148394582543690019134703012846494736310988396745881196205382706283567775676614658857189273028198720042450647204512041329476890358532179444639021308499915926578463038986326371415435778340279874594583888664843633574316524409698291675281859120676392287036199547535345262648734414930740201491945041762772266784306314073704757755148815052156172032766255418113248590060360050157249337964892373745398071435667085153387989607037827920688945560743938353889271671401514544259502618346347635189129038739665357822233980006701664966139049622089497472018939286847408872890847601446728040818149727410431615127984112008039999475932550472356299567552290983115318547363159372717286233669951586190553087079049908115557139117568125725873130399375998167502363494714338034457301383713906238299918136926990408788269376865730282785886283584283429188553153626570666158466499590460673664136212146536651617501456921134888308334494434180551981698264458996341264493622810520191905859220343719512865410029813650150010766758396931657534407457061195542513677877739242118244542874779307853118053801735762972368722452454923035219551808188035511420665859924637348908980695677554654728002222044242810368273099265576268043275422324892466255838746368613804133528972482004753498041232632440733944854367508850404363611019133914030452775254325146760971733066519080591787194239080588354742702223439343036456168838007007512182888955282128482352145336960108175906095831108412854194173910643074787492605454015857822845182605096308612066994052014461096975319450427840416081091813476716498071189038401737314340601938155476605957101964631958976572838231724076745485484548751000986493080354227352769819121667551964211072921267584382394832801253838937199707109022735491004159211780323150732687706957492784950043783976088223687997483526087411079642541432952100908328019925368251984449095224354474973182078189558946297029965852166058479232213957915259350544273617914837271545688338191915140196582302221483329877586123237703876660520910380829278650978858787571845333767509241971240768095927509713773977723953486890659650592564951503834679064572946301827752653999611623563804704208023131492810761350512854918432287428937672208179989424761984667072506948013127419545377575179808922801343059559652762497025561083471494021512918344691710665312213283162917357232620784827797822737784629608953608774288681661403993783410197697736775141007906173645029108076696270871451434000563843779919262928649808333482787713412406160134589238266329045672390850337102483299017212425004944974477286926354145223314267498428628499635236160559542746922291641692582960301182908611971739916500952150382277491477134892381378026310571538855477629470912730082687156012562367027988791658118894925441726339117018853253736482562445271212622642920459282790840167972080878766980211769386156357861473100778722487883730342062755826497337883102646479359808798033742161935702430760404334510247108208434359845835194625673800057483233193038232977192403797923384480406438078934704224147769630626556583994897020103646929804298751074607457039683088698411943436413080905610310362405088427662325479374210121515292857979113290142963532363925355875129219009268331449976413428610693284143735836352704294071940229681140780378871618575813158669398045587196034055010458599911860788938329682027930676373298986801943943998535344714455286493625449729965543869836977712947790734230083753362386623811305944338251404594963036853309236531454844912118754992084782155110519062584023642613451536423085490046034846543277344204734563277069458620826317818718606286088951842534138464677150416723880455186628474842274790949474010392171213602083961091396104914014770095073651788892552451151938996948914621648017064770473135973783266146260773233058808712609949193887944085743805590239631240686311356978665687065396843444034625099259155132269937370091633103432079752468720095490361582553146942497662687011040382194714069902619646021883179664212918263326075110215218239906540864029374256937344071002522408538847144923953628839341697796198696725624356320471236980632706525166793486180098531262701224623238559699734527788233468859923934257957982394522174522831974941139041216874599108670519835472729569393639516110497391772660212358793576554073208638350021364397003745513998474847074929415058264631575847628663996282516434992465510462629447312679750495739899184972396914715050581361678112754426223594421605919251857881621587996071260767936451392932852169727151735217486589346896249858171697080199509229629060820818053437619095496191250107642951528461688467553063711586636621754229148286562761798827190723445974833778696023099705347904213532531140405027312379660733661903222285166714152577333355557638484312095059562654011854744822393308212359892502291257965117908792787845708247469754146124348525490071402342436014582486370834458994642449623043881003988479683670728319515508420772411200025956019361828573050028988770676853564398536590136711653358052068376164384334289772551684717223690461881844234320019115328984446355355728844265813674622149496885942862793470345067525297814303139323729406802012185039309685573405583321465213478584869546565962689362494941377932115387595624186900963915281947114544779726291956176537892587865746392908181145415097091607208577268380036739324609537379051021041289244233588647779299950374155347367320543175562192458931131828648387707881649679488372243723724489030345154313105800102600807478864949939896526451428019573926620564211288939037350607799971675510338504106723030421528154072664605205416083286645169770720874540623508742801160101422709047801045833586381852937980587563164560654922753785893719532422372920454848299508204644296107008632199561806548083557579240607165924849270203764515075756279372493237999663754709746810448961739023722767011070793890729954701850697996019764202911291086763120163773653477693954713908580723671747427428074094797895263702681278134103942247494871931733247974236957140226060875264701475259856714245368652713377078578996185520396113128062128577615399040790686566371342961194288168787995261373157106825379259501921927247665587009409696870438944097682035875644380819647228405706862872526989386885673310156524863999931854134237488183775227846735759308691484496308564010805973463961407045357465793810822843512517879967147505107553129151204155349107928775939781906172786100991274964190980073537253292383481641509636292870673138930777806578809743958981083990240876719701362710789051080314603503882151217906828985716437242883275263639837035723012861832618063612256751373885265947732887426946359401785924258107247819151579404961469613948434208815387948317324747958202138208791925070432721042068853275067696081393822832781325225428123709236546991006282183293190382703289014027800240402324310300892427841067897831569438840899467864873670897570715900243427731206195350209876327659709074679032212335518407578535294570651447366579466544564652882455380988074143271701659140704462020609699917735732293916322518608463383345031930645387231174496796786429301249194145228387303037132716702791509216498286375756527954059665561273964922843487798344458788811828326097647048293943006611480638494702257202943085666264236336272804015583900523013000129122351189965484226805245797763266778206257254483342148156154747602944404240864341517266801603345289338903676380108312537291707791870383156763039572198281924346372458298469665615442065003843285492368834815013971368968513833504958879363048269855629171515725374194814033071043534782967172644055939809203313428301868687800653443333811730479013271872223266608953806838892831904483426780645639087073923693182744001944932363050712768428870766070052843879928499909039932564825926395253429073387147126719651053886065350090412019772031090631779290768395871509706005486554797838204422526978854468074573454291699984986655416122236076699565533921530683666109753356187312187610664348423402776004698465122602439041365497172815900757658250292521520708453323060560453862689151617710962272205005535239916042173200408968145327980611368178287803760288362230499843762267322198336276862089554728905414190921341556025620713063351182681055133568348488865427237576499163592341586284833941098244500759702347005444713430944216411631903854361694208907092386311878039835300489808625559671997516381733077554578828219083256088222657484970171002235362613606458084985629456820037294486442539594402327313200646555246416725343522723842131820722073564151937526796293498796316738541651911151101321734562515331317163229275054228522956136792906407682800075467348475864279538650589042322448314100981907999367106275276430252951538692845266407195097066077165879030469421815970218133493087999549065673291238327899515725792512277335145914750096126480633508863391358804134161216913471935107521828916076148285057104907480964188114011439127792162809290910097645704848511428879282484526625867157227349899622728583574692620882327220902550805593517624226400596381758672902989057414519547188121243527146921033927140756935086526743220662121739359849662242952602114557966433490241944985160491826941940348063675812948785332965925371543656704314649392514151742477394445903174448095419470570415997120979716085098419635332412650555412210064343668885894019548430096304162063790964927903896122577820959367902532074023271650929053763859015988543213209300933150867676498930367026876773752680749210602216145221158057326527373298328029959644210917162942719186122026863488566133854583852620949279003391528532171481337923061911499027647341250087758543793132776651312644339911899271473905325786045483504550037098827916271463093370547556907735597433225536568768560472212606226244681167198057317840417288161114258497346765476627525472686076362160758483368403804593714246949816923081849237364589774303456590322343095304620396394498703484932318187912819617629813434474119730665330850303161187100538089754762172760564722761809706751001612562014163164790490582828560711528058497554210208545640967923541067721742343515460300790127617734059790417123824427103579720118238849679631358608083251136186393250380195546842276470774048853565639081759557754299585078641644059336433269792159351298791095748720946643096321091613097821707201564403512605426605554638813069341604721826775088768814023515644630628428785685147231795466224471509445949340482141151096557240813406395985345576420800379957747144496278366037838770792800195910179684172768216610096859298786389959685361607393909381016561557116110708136719519176300672616275345711045090645854820956241864733292497839985751379264094563212363083546874940545095458910599982378135994155322768542613256621920337723972256180669297405082836256191563495353720848567150440887009422567860654482608703255347305086659686875355719215115360228699303002581706161554958464145319735223030598143557354152086542279380271026897025509659207230745076419480433935241944606577945530722628433424231238803850765587403044172907607790213697198155619349984753789164746991715287154445878004208096200269382533075162761354748882020268007638082256682305889425721688266271769366044224888769786716834898179486377924805772918092088472613516682124304580304583166341568729822202975353280913809511199438108288286057002350247213991062625205619914989739277874909993076549594919700054678200265811939232201779262662574531392892587260334967129448669022979171297558327675658535194074502530908565628482282088933156001417772865570820477163960973791733501060440457865845318071594663673788752399572128544944052332793490881061068881322479947265884175399879440728870172300053306946935798671801262223859173921828036040264395692049840671894452794219306771667795122513171380837135535647215051175145094265552655254799090648640541758945747233948483524956784465755318966682110034443310929077656045622320090475731694363338946520432028963451003555475357446536517728538400328941621625165130344020381502150897986640895335504329293583355313386518928311707299923458550102656909960809635463361574100859963784071502601449487711188716032034119241393682230634389926804296615178126798346804412356197321752500714806395067228890935593171190753227568272435240539566240872066397850469937903840528982237395249565471384748396228807344441305248239707621179053658347315819167531197282738042736349588142033403710655576554956178301478958786056333301873344290261353661146391872811296694472243431497968782393490251179289871660485028535850707835132849102600890769851582658251874573783708598366506818246092451390243229668972376246015862794012181968262361619848969796057310265199632730871972087486132090192554436938426267228774084418185047209144300494631661941351062548808030902374878601086668802141300133787753326706388305438582600216308348168739301527972585555224506580669466713796326420453566593576869346683399030171395777671410981627935499658607104898516482555179792020180777021145262543627429090683634732734366630630148285541733201173797984419593637399277581330279259898844930284438166948440963669285055546583525109789774544159104185610873512186136078875815695373636277169308738359523196907529881103599798938227165970592587956820461133034482646970244241261534752614966140219892613858922833295158513215580475685717597931709007527126016847649222202670893368603040030798118493908986774724945675394128645563796464018863286547598655521507491475774361055224017050434198656782735588902359488427161671320289299900760951943984228869184964390181160070618786032754017286375412406078598287357359591909037928094099260294702692373132945785176869599302896918818350917434021662682639894215664560012353128196586686735883488216298228225556775831403239644776279510982713687042413045265992504013801527738545150346078011926434579244686981761594873413215932766365504471137317232054111044534367265002054560867493276939298773180953798503697134299025408674634519104480769291204242589958991799106413094503826615370980137211457412252410089621431731938209933463379231722935471440856802839036069568058750569289022250405297182230967121945819356614434926908640853970206316730775912246575114087167946522276993314495805657730196686766957684439824270523839469456695195256589856080711569162046275017639690396441612715086692628825676844538563622026671710123820788471281246830615299808379557664988522878567877880245223329282717210550516695923612706712991577613267230740795245380777137468763490074396288945965129154827825560861192388825444927327638405583513061805836603055579444101583469762774606675053049732830407560587678510905472967573292955185520192441947836922786643229441695020541164074023229331405215490794112523307287048267346631910094821012848832948205315842031157765436992739374005829970002242117053205978782825587651257848827599266895779494909348803235085992654215424525197290004172760497033070445375381029750155056469495337242216051570787694017345191223529034127199501721041537562701906036174827181053418436001318397501176044427500065898612669475517644755634883518449857064605466519424315775328990151696904540645417640143170700417874523837813794570631702265281828258273667921055329772846100773036532891282903716493868188039731509197004538112570358809685604962226484665358963918215203054151854902291224104698056493973961189913570886751226637897411165979066343894600535928199638182598715127469558543218838674120324525339527352720930824292209705191329379087173017939322949550347455638192089628643967454395345234241549362680089848374370373871243309659534321135742074579362348371491614419699856092497690400226241620480411843402995120023515719669145573165908393422565628501698129570255369184763722935251963479985496484330490325300320646394505848714599368666147709528554786793138229257238242107196821405964143581459398699872333278636652473704864907518678702633306534398289857863979080429525213819418681853966293281805947649023198885609734427749713052028410667035523258428799019186230529486135362735568125278535500455914455390673939760665368111809206387609824064890451671405312887677465484373622586602330725466078180078093562768488107908923001817869191253941556128337865121584491794618781295978471960370972516659916337677350048381089440852098825650864906816815020665521944911505285820313508318318752330710193911907413510710890272298841118008302332085550121087860252885074702081607433831743615591393772391093847677457200029609913257716584132360150051728372713161649596511271281468057162439272687794603511625187294288713286938180991923812575513713743961127486557829568855781156870601732566612194578932057429899037516035220597247721749752814493097580950032910997981486109279173755664505415296913889797213733633085892845462135427628559378180092357522567250608264175999752066867346095085249673886497198574424793975173791386045713797075762717302765734012338967047722894946398001010510310516543703364751045847108190065180278840692949341023013943132972933780290049516118761571257129390171984716402704811035340091075208815534194404213821086961983961434453421603674035847662422483415271155507713904365776266511721997906522655370947658435404392072300455951790495249714955052606928918763361749971333661976294070085234978534655584506445061150761248194926988521410736674205189017810222885295054725452395845022268828746037841309470527654034975098324088104122903396456940115974507580713576375220175200620694443787424043790335203054180201276614075864816756842438085555114665453611922258179034794273784668744907079615993209573096639601570703357039206359704008758694219032185917862530850817384537134885018199246661777817994299291062425403609042126056034597433066405733909714760253169647907098944513836000645805801388702077772560579664394464064091667287167086468871104929017681171952377840253177532716181736843097667272509930536222763813893082550610375679596001531658289252390005645154787106744485096830682671176655417514561661012080422865105734966284231003609978823446219358899211846992104333087956924520996917410714980038253687544490858956582812156654844325592634260252868327523995381844567729527870213517496769681697581816270061516546804207510271142593768694232564522634767628958932981692751821326147074708293284331525856117355859168669226650572571642944715541627306492810351381520698246817248127799939651706985685945635106135587060112260810143388675069674859751246741766537551236586438129226249634800884804227815457274757435314187935282971629716325725375299880864300279552219397073088268469767118369623070538235513617373786777785290862587977168076402925969324891317087806576815673337086311239171584658983219760223005314336989984593126590499985513018839649070037873859269067113183231226132782849949525936080872285957242394270549234098100043055362671207472266340819531246014920418563560740062528159592357046971547253069678699987867705408942751228950539631371120497667664696704273577716641322953860608649164009708419987929842526690018716426651465443844727241110775081320892267348143131023825152640151996507578435979734245283218990088051855385869750111627823728565449129376905705920451510753402329847135389582412868120343348646452142930133539116495569088578173443399173546480421362452221260949070321515937240261215315359935676859886379873015814557110907358144714888086951814509163071992684094896105301317267394250653668231509131789300435909553192822655563249759668817463712029219930843049826806053205872226720459384068758131840395145385163046878395046563911737191915309646637703634691573982533252467323359710222578020817388666423998814058326455280033694837471163328046825050621575384642052407563849498587548386675088531515893954662128041400991435384695143852600692857535999940582146309529012104331743653327358918602550171592706832283038444104525707914083786196953053305816833469833249146258932037300588060472702225690359025010002609693670741966914683994886545421676670415286228944793275863090219101962399972881240545800651751289620445066883359783044825646525789780391372871239565427897131079294241365213978520772587154191541991621066039057816693522082333352555033628843009551540435320161492937506841103494843134879544922742203942908193746598602906711160980074083805712680929119663069710815195677122610419685866860364515042206301746315936030218643804482236863196909642741030373326625608350196870763337435104192028351307268909572795663380872906814659240123046095190476527845191089693812768102840203171155772878578819097546793442958309173214093684152123707599076658554200678795223171823961804950480541163987966786177896557339313122765785720021314933122109919882993632064407937640495396087613388059162244229262080641591723852660360747163402948731002252096268942594857709140462788450774382112015539097272093375180325624271854305034696121247270465857718372450637311851099359688777305668467026659888861976934947421298013405956144469482420201500783547023267713902112261685580644810697105510521289323137746279248751467013774639079811767742634017985122705892962908063419396790582259580611534490375873914419285363236262083009710460517727400396068929465527804512350361505885286924407904789535159099606963098807404804482387559633997068380966753140844427153667876647190724063677374385516607906400189404456737231072423473534696584036335841998356705501434476706964396376778829335879575004680803506849259330341521317707437198381499725961643834415652677806081216631214681952760035476523419031529072586781066385802340746620484836751967774412753674077662007198480706611321591901631082084099656320094544992904813633689105354460102461536164407910260233533502562116287594745980250323322953280213252971865287069473194013601530585882484157544305351698991025963482631389578845650872372370161911741532642980083115689101131214182365852127125541456626346733854778783353085721258450065070387135692237022925477014892716555355103563976583357712534878925434471355104753692721955231862918343163559548322908978284891675041299353550728142174831463431093604296919816277230315877904531543496555845603288749924342503828807790345407008338153138551124356016008269124094066408585512730253546188315620100573153139332793001453952152395749142699736648757252275161575511168644985337669119571571312804021007637975826964294653606685567065260054171051078295086550986068739018302591839311767023986075535675383670042626915790531571433813718731546781237804284199282130900887632074472566477765063074765035380883823926264688037665369148299773493247180084478680495792192829855895437367369838704151079172342785263240179845856494091314584465702950252714738582266880933800632437335869437382065590778055915347661696454183541628472441133422464588027212149625622089053821745219963134233830883057628956027112296337672262378721866043482402618484484148697210849004653182782117735262023157479091636296086131024938219545074975248619321980709650799442731991698863299308662399275884966236334852760046730820139393165813511058062248406497395611704777958220071242454618089564928741029659804155396107579567919026447847268910125043137652799093271233447609459644454845029250750332321156201769166657873726395139981737158160966670942234802060036618705989787904975012954677989798088248402191575700881570580306542863029008236872212793634932834243286051807832293934666977830385785046880220051011945579918223523580286927197099019872131187935394805929565906171210368566971266051903963569101226509032351685684760144975084483564526641404246866452240975113170449498034129820854317920267066866746650679529661557450707598330614284569627551011310232715376466771345964170599420293760243516337837186585975545092847386473569845447134724686071456077692223381320783819200977704187717811806453248731338894378547239121423035010695815649354514248198793498162993887466756755324722079044711919132993050806465830605387876592010634539404908991178627952164314808443690514030565677678903979773791779698602796162014385550649491182755126920108092517621871946890965227905035718259680610368256243830052186684713540418037601616299244639678190553129324328918656951558573143286478628901376046009412917760021217628261149245004265036998946638859008203429086224833261605021837337730443781405645754248876129076713918451888393155543918754920883436567725133922578823773720778326405801557937300758767629719948217434322477331790348637641132071095374920265642269781781846647658027179174208122191996619686020737690413667150458489142484269034023375688212818573379977502712720161708339089546460549414894747831008119787205296202800746663697807964026396509952972042119363441888383078313464904257203113785803987766038751148910041062045606280849300078451198039351789796717129299280810317474761045437308297946879675978499516454014839656981866484679430073053045780183583181354715113471007820762864556081795350399658813965518532043513643949892151544588427527264174082733740552385880705436376072200922973017385585686678878703036719448979786569185523407478282685631124742298456604349727261796693965396497986735016858125348857183564307897237933563251070193427639761180825555168472813566290254332723193043137945398141263117304837167013276613110971738237605448443445015182303961350419943822349698425200615544044612719691309171482456410204412445735608994278244390459073565133668312588762508851277356184598019300926070064512424599855720444580826699881807581252527340277894616204454697194035687209795617475270008769166233158705494571188273439436177376709735005918220726713620800366716583495557320265753378217360339033398095814422582516388856165125560853254653868927456430967110226460854290285231248251462600401462245773045278161021123834224390523948172387961371384614552263787510598813071447706145506475866753621178036361225769372849211663396463988716043361217578420132205974731247600555472177196132941511558964104552967815522479396652584807790882114692141391696039792792193007534434959871299691752892401588786368190932121939141769876707487736265381202547174942023959677504581423399139282637528888129594769243021640971858727435881863766871573992933787241452180529172887064660070053459580111722957702171103072806193649493184069308247006162051702977794548916181212392090318443741821884250885474410449867030667946211933325020309059673474642522196405477191120984205043139432516743319971817281899340820160306761271553267551353473146643605797670086051419814136702004167209394596531571979864123890737477251373706600350156030974433617789788894319857775256004340938183405021590690605052023124254346265263573242953414480873927089412078086149074851141217707160609405181667167858768495124913836937389869308307804411203403371774094115462593156175794240223737659043206627573203770007945289149279309650144632366480047023416751842411053394781141081118249214574421030827841759723419452140000171923006591457183250535685780435860901231731943196657848245765805960629968873928310917722046304012799156487241981375704077555954540556190195936328366804029431646331198907921463506501736709064037937734227843727910614955239711956416571075187757934511167041064545550584233168820169688764275017055871651325022526148472142590796727747357276455444651383913015266577533658542840739432905551087775856774545619201897416600610340087657302709934320741225965728858970502157952672320896501069185526525448852588203481608912178872426971964453156126838096175681006065112949941548866898559841932800443601205785697101016004475716080288164827180378804238592077389631735398196719976569971955792066675632217250560466098275927547338999321465779490331623603102533117441683815019839141859005278100939831528827375964984260199880972421794836518093714182038353927788799958870999561053037476342018343571640037855126851239488277865992611175838799973736914446716461756880805919880025446040161013251766956811055761187132872494143573330931756097325718882902861686259654890408266961904450670516303112429275504324485139835184424043068581312878792348997327343030562126113379717969380511506457855243042601539796099006629965041947504927977219657849506881518024724940492953617049284729634860148834530000436816086638439835244167916511105035190758947878045194637771696004485203113279029154917208538778896838796897035041403152009677788997449965335955117398955916010273113970347531193601884827118698440899220909084394761560684310152636269416690909704525426921387099057645592602873488294464005992521935059672977441927083657701861431317094571384858920222371105580291903734114596989037206114190394668717865013014911666622493337051066147658555826369503771443278204027030032899713324206103603809426129844482826695281123055896995268646880673066882072902524371501481694036941067292808344050679946259834029265244778397949136634057581765467656437996441863297949107235990395302301150953332984000725640605385954556778145027126800822379248312713918407196709395763099642626679776448981032956059406327094350540555584429774772777162316823633439378019788588890598743566418519333502333443508733722694182930917316480189071837876794683287414753890191258899614180839419766932646946789230100891228481776007801248880750891294706826085806527977694627314230670276380890800811662547975923724938746669036247661404266583167903649684540682804063382530044482120082892282727618132938208253102858655975298588899098074382521854851194782084261146686431275530142317179016148500975325022929929583156054268911324922588660281761074180372190547110658992782609765369631756725702756544643062477304289185947053315102142732491264324730133017145929974961383338164391467531010997374191192091171823242317116899603981064067471961572066287145507312250417558664106837075390057731538259816619244379348108494226813550009262613933193743943435847182342548819931603600637923287714934620943180302035327640656361711246891477666484224638001007064668321114831709644369632099234686814269080139505172371837491207797822737547778927829692553337445639243467844648045062509311138871631130813279200455478623252459973580635373063120686647248139137522513660845215912741376348586633953411098533220072458863570466217346903572609478249987355736130090416640401792242679472995881337933759324059832872283056051444216398491806880628046058139922755718524094896522247120251213385805037745761206457342382751830609019697791661615224536173560319160514305576898118740204573929299586286330373933483618005644497023950468603957060530437619906076919151432367387745073679028711755074956921813058208816581279756677081911799157607429719945390792491920499672494898485349504691580351584957021425907530024910505190877090261433653872666715557853404046906962456996659091605029232393208137961336886576923707266249574048699470528555114537036229247328157187648407109625330627624857589386922498551130140701371657462326185827596281409852797688870393566558524182096206052553957877427165085517674109978270123426136948748466527689185797683278245869780384641886024180603278682199753991264076955240329123336979960470274208669342134011026700089352398244560758674632939379773448714885327030942658271229284369899504282012465505011109855259347306803070136662133460180302367871324453611149992083395296425638698357235979670669604122785166524298958108064101124736317914342829761702115886022778666384400629474372239626492941486016803029030209535240714287645633172821966855326288197646512113463237811093252223662887609280991988778816481897363285033146018602336639928892123779658407643369915370728774535010345919182396528020763239192610533213719933602833891515502140757541659499936557521854767164353905161652149676328059019115366249463150505568932255422681202937672536044960390920873074216782198643414121421347946978617954046038789101689342083385938275179545914392272812438939060109614381108846086687898189334799582329457298067802691089840999929454091817002122167848180555527459955297591339171593392584224338600390398475810463111600401369380725280485167300734522192823149540315985130165408121283181397414165183409868817764719261861222957320668550051231516325942464143065367800002339956231625162103110486759379695494312861308127328717300263190314534664223759395809208038821690866378728702275193958906696560320968875963723170676023748407819135543163233708992723409065474956698289987620842206765079051439566691992592432961000067869345522056356809632661170848026807833855347815696198997432544615104514537074123825144401959744763762445179098001946720383504276843884198114105833727876691215156417623296269048511329987726484745321340043974930579559981982843384021688558713742799850828815225814709421655869105088764098501194970686484095876937792509062101565003027656581366183592356237284241328592587520361404321626987354863098537728624901439503912540061257766998765130035235330117629554915624522149218571086738486012239207663954507649037484971592622281333294501433340698416378674879092577566993104669013962528588849879569616817296184648975499306929325634828851108822564403609662024738552980631563352392031999026201507625386753887816313904409819426873645758806501161936685406243807749031350142309812909359607402047539032029955060377409772879973564689109866178374543990197984845814708804322876443693921034279760630748214471648817898462802097553165054342314544128057997535484145129117650417364435426463959179981444596810268129972067951975019467611847066420373815069377515331506172626553451849262167509593946234997597009178563699863739215185345716018038250439407547821359353333265899323389287695123633733729930940762533556919591293127759221079712483622666043627004656368178021372545195960952955816941851139045893991021814667657594564958049889560044167247545989874236191499330050650611177876277733494684568732477741225556609102015270227668544421848737205915849117533100382840393347831052967153386464513603566029718536032502807058749363165246478544640068337628255240794252287312414871037913365906633808580669199526663771330890755077948027207939897168483428479490567170708068307024633363822784098682515429343238019535228632201155656838981655428214656401524533084371161306398974430388492335968857608223087250181161423431604992818388461199430188633501248846652553832848142081097412067917371127099172651661178815578245167225196159544201085565425960278130990070552754274508212325903490784928861160409762953091784081282848273123750215361602170497049505136581412927703344154676684696985377469889532570131273506249358739205163111115027137586479445244750404424397650273459884358235602021207405231995588388109390121726652756102327949948598484019141978641022667029921251359761411137206771004512950895782353236686720996398238106401784749208457359615368248271447800679510438598762862252448093855929539729665242964948846776846031907755811431427702767207639531007984583237365877310582359428076526861841011936563644952566834316452943964470189011398274718747185764987825511920786712609660736883490013335371785133294990138535532230878953790025204113041067843766922507176916810360433287126479021017801967354960575972381257642073965212959303852197173883361390396981288465764331292061367926591354650818867158636914860668920485084661644461866787172582881211527610273350049042596943878057629477671470615092684850831089167713904526506928876476261137637480933275326434095640640311598882172607498585859540046797429084108193573093791687495273929676706354340405924246085201464585255977458606116991354024887199055225949191333222125568961082826434859688783507693035237097594249782915443541325700127743582249924120808085635809521782347240058878159671047378706450296641916633574512713594881424107786735119463586933019858481043879156492130651203199538255592862344139838130015091234101550894541767572304176447197482299923515496061050717537928956531228632176916171394919971455682561690785591237723435233077556378095044459474136185957735618337463850788722982599189979361349937954803750606466021071529314471075445759951017692899960048187687149096109035435611515827673916074797554513385751392883945616454326851458647229019149039464738337904713135872893203076646115194568596455110883697397549728739083501547976062097443202145594693966256000070426349375704917035929865101095090394648132584842186879364516765216557018326977053712408551641070218470415894854365030272965939170427357250623516570550842041226258801723720135661658380614729022047255656613431788820418113848157686430732991538206960309996798113071108436119751110231948423672032180194355531616505314382020959422504371468454059665118259075690030746325152507969870859297201807666043409305131085346703486777567732374047393237917588970831904498136125357719695275323962729403259759431614345692874497823241015197632930106921124440325566994381072269153822925436235210868429900036161922669686342681636004668782864432964739025600061709386476144918017260733395021925469249474836568366063091881099243118482242803690493251296246201863368583959601360017337186250182081675585120183242599097592365397843026730580842259624627867454788064794662815528206951439006956064428900249881010803406078983033294996738560069287992789525673181023295049410078875405239203906943097794332778072896834881978910858695758913830050195223897021629370875486481524332934224631796580090832130212977356320533544679495431291993443612414907861425035569547046102947826117435876717743069397144301129318188103625308869586105211517732014539040690238406695868051132599445055420192356472936442125875727589368517052491682149865237876514421113646504275422042426744721152725069187031502447545038097671005590465465728795804311799102369929090826653340905280938514416133055942325121118788948794002388007540629805789695509569931626258639706006561354107664714677935133863375065637365459116420028484056383285466262612822971864805709524641780673648569116331710449165430879817183188492311668295286861845247433478742772563521406273142618496085541721238257233752768444354564296274867143430336371687781325036901866417067691117128796719905063596752468711227135206276735174682330144446058871118326647883407199777520775978824871533149858653548454167286781729872945626887690426167815538689217136249126525238234093637151851161345452485221732220381196777812766459642519799945129876606570851268956906929049218640896009331139194623108305251010039701132696952414471188844134244517463779819253062653957749672331362296261352309479837113990442532940979290360534671405405127958573667673117412485763434517028333051286269640894088306451068160126121787762535411503867956719758125758366429844239647658085528470953060730071530017315264129595861281382283081997956552553536195117397906209588001653817626203427831846302332060887794325467422252780945567237885486713901659434310902419316448622565157257661404462949277697589139553856590952362327739285664252313054249564696661427559318212525782821580388607200272901667321939618979600705546789128532232457183327763154104751154848948331803194729783300242138472338251814438431977177964609654175084579842624912060383219581882746380172509815336685224397739526446732493172727491425414931354983692088250294160381161455065155434011927955633370422769049750374631189134120564217440038432263210189554893402067142268724576398984765998270590765015806919505361148839890999047287662785188232020766149874271655497104921201110286516358809606821274135272230762553918118856690963323000196088965397924581191689760674998093506280078755331962750072362928455862991287854044985424818267044081337642298556623211059822183838930751813059991958508830578321903625575133127505819633919721352983608181346042879166547803429135375833753336893929995223909791714920077146898580404858610300152805470984790164309459392068132049273507537557787253959118004710197083041402760343982284642747538679697135486984413081788000073117282386557864884409514628600310966699131463066948268744991331104545797992134928539987841971904125050440867346637481383485138394856494609531010315402589187362549750882802848871794778785080630422131688772526770627211234127688555054844990352079056341814696552146191355869357281364909500954469695164914105479128963348608066108287154806778441567236215603679232888846110202350460060396186315849295947299372440163125107922138904785168088538952539149369714312793277003742040607895317490898413586744516228834568636639623383088071917195964285197421686931682208149801681966875978608170757787591758357796411127616010195268459487899328759765407499330548191802625117993649809398871799483050611606432903782117080095199550144486161136940647600319850004671527031182247925900018638136900495427744467389600434173164165465828036156221793119193054130293231450695696226508811540290571140008544981281185947044400670210600609006522318661288198869592610557550843261006226387768500286952557604728128131611609633483775140363534402717737609030777689782289763775614038498009630533047075634706515221431038129175028453831334064426007053189563497353861846631529541277355633195271151082840950896764873783275977308060628907983091594578704554906971460054196728813847821954093153497650626721087232006463894571703102387691964125062619174498377024144361384033182362927729972079775644020493788856132699087804725381343976599816980173268279929049753795044444594909334324351679609348178316219704353571104783509686067616238206983202750653983853420099201259835389773850687589906616976282720184678051526340891231668256101308869323729656130419948659095758431229783121431857915692941587885944009832568672356967901621566357055280851797310618902168628338256512844514212801838396564525725442957231968374006335122591747150477925138179017969826389127677087754781428341116743179960527707866110332340358457923565871368328494597552411640907095373760509738861029774610296624287877088106417492938376900039191206442521431253353381634850390023779896323037135694870797310321105693477674980026756630839785693940829334088183673413515730023641394540987450641719875863074436572411464376592610450728173006339996009845867253028797175743469314188926278682454970565168563281666689730420506098891879000624677107397380401729041074228611377196853078185208477043373075334815362096792158079535648237584133801375538874334438341039119100053349366910466813146246762856166038038227669079882477157915598069676668668595218750764699107261720957220521360030978289273594352727524764048103923888346769407973596407362725519410976045136300845819947553523009970280637990545277713883126782620819926867926013360996898068832132086588447279317659173278745185806932498958873542594051695952270414334538324868771800974989697710228354542749738410974657160145765086751868384647573194631048673250719867527377352283487988576763311948400612338743885565823515475935343543493111128224736012372750369503996387300071822895448061127286262783445136747685809427311659702362667789247198267187109919508611283583416203275746169258002975806352825807400988904893406076811329823891460456748124333980158993114403393488178356357697471978810544817214314057324700725761349717791478086394254331681660549390905122921766999354173906492853157231851982191771625011480388622579258813230080617358205548688409525877353155375918470818078479750772991464019012821951303487568177560493439619466421245518475886242033792865833496167379804021491532626558051881005237410220789443549224282075348696813773886128507503880661500198668542743875737370127393014290488944219568278955199494164780044866499076214613940689301355833046546601592452663393448499213132786789164192153242823967125258224574279858882143986923025491821380638023321493680181966392104008751285505905606932684622859624891061318607313209138120795069755435820541955716761438726291856720518156331967552683177875591779711269631696673855536408200771156363161912560718736310019069670085290424503437203402091688331008431002572817207050812076450914938463647518780852112867874229006586378795245681597441380125467900374652781332092365113029591015899776783408252898960963005309179882864427442150924055244956679383305460580988702850031899871528650976685722973318459362222963446223460545957555113235283013072851234567578448694503606283777110298094025834363677503073279035091527816650364143225884482439551784951870034468384023546259541730479650555247826544251064827597725721867530020377686124013764111629648390299338722557223448823435327401966100688440556269367864564353136268442178507703396947285187537927340475009238857492023531707821128536544707108279356798223631862682991105983009824833534096125255749232807498247606198621834798317885587093867535059930362973967005574780054381686685630902957360121936339985596844030625737551549172818777536582966878079059511271566243585188252158713029923228326542930970560549311637575996618152461528875501317282819368831256828859357618392426961783209463660307358628964599990493450491507394536176388227586772371036834203706795169692789678565006100178010614534486454534265660155679926618903428826872152350895787424361774686348725885398726796848421244008865653361932183261665162108392156128116321219278547967382521623037000466225851974639423784412892114568963068402298738204875675208119443078561669046493752268078672467969292405240947761275378023888368354232868177104384331010237528726840051253245811300595787421668572197608957293262244423507877371404239269644415366537196574919038183102263640227140601087304353338314304568761788054667194271777174607002986206808867189154484239623060714808159946904241291172494756338923926180357419972872100021084424442025555678685702014808299290188094584449745421079434960798781564898601077212932964113153796286993238911279996653739361569073339295992753219824481397475986100999872291151383806768443099304149814044753067666431299620502608340541863171217841919214702339223704395035794645281064173690667162413248049131755458448947606239574796463597631469675148063208137027682940133542311741947618166234842817949101292238334711508239312440758710188130809688976883418754635562177717450172156246134284988631773460017542402768175104747662812634834002338404238857652261665847387115754062544781747303800727203386135232859226681146002117815375251946276493802652670750586719645480184894194919049855534482231345327104154063139467494776033132584359466339470569005840189861089996868272876611722740892661502159617841222699682397617930125654688829359706170823460678177725004130192945387747932254018044788351797253388006124411229966288662631221023936885318563023564205503284518841838393571767240767052330369491161250794630324453276975093028744285152035128921354967892245548240578806923524450640824729589817507477791024576187640415525755735705982489758603899438464068372754728265444908066100074959031644820515102472005700661043269322271153331817701196713251020106457755288947477695022706467456969284698006875975973415620361407986325684693667934837408853491348236611035139313851912962146476675447089616320232243460651727962975130178068268149530202590715024208586062739458365623768264768765461962520384714722412414293850010648930389850564630446516243405414056812692521962126673355492325586195103770384976301375690485631025343582313886556876162781089761882933569932209288173821139288809267158585931130731764987700586563799961429159720782166748750951972618787702698133455767513991806526806601568359187422346441363359697541229084914601547528536166840279069994658968744353766230085681981332918929328594589360088502121665779510810404671212518219181614724661021890892876584031130813541257206397443827379996717309701828674282072684274086165841789263975810284642040630181735721575381766915376966076422375156710572143706190797901248453741939134980250560465685609705723166723602636135583326067158083752603623371746570845764106222375237364786815455744393995535417519414021671141592949864745150729112303276543771321359880788253696975446567987528368127577386639919234597546544766265395340302268171163967062734246682709187985864268612234455004426944673833500770748761077459530756259735956907075434753850295040645343291483665540364136718686540721544110495725890993730068058981145649701967400658098557755660241937645356110890687964183409466602635932309653571099293327768379657959768328890228864928289269859332637750205144941214511546751022215795717488020345944038769930219146741264838684293836256190500108183728609719542821969955219549571393135736896215823281958725910356175322554359219420233474160574599177292768111839001954906471951553741754404919413512506099185181252317410696679040484580473275817901598053247768685539507341823257002362363932722801713600463787589400346247003913763269279894506107851948514879005054966896249710471581877612668349590129220774463375448878948615837969311238499460433376785834344469051145935140491048341122869262129110911280321254019081274356443582011917588693818292460167218127694395963896221638384206836105055359004509249475432346292185699174000805459695751725520161391300655583050050368808201325671784818831427453522134607788153848122902203315185124154244442496650218145339392503961310206505486768426923548254493258720455220871096095896553301132756882375174903828178048424015562449015302550258916860645780001678933325954885605527802426215650686751798544385376318210049979758819328684271075700220781124702662255183974375277024193682356561654580044502661387306296890100959106708442526207476770893786620618334302959572415399865633104595832431361673281299225129699191119723138665389570942149131724406037134476741460798534276643561683097108731778619246403322151300616591071263774663095766466712592455296616284000743569844229532579381045765365838273432061814702283747409623028129754768478154485490534265621106033405983299606195592925291063779560649820870838039905212901158389355269700239770581279665177621318405162192627688183755935982587234656836630333755408691289298448230669333896961533702270488777963739543767081858542649156630668367868041966114400258829682308082134574538842117100575068962552959204154172881686221675642797703687321916110883511608514228884539711626663976571626053018990404275114953443314958377712215127401804199125106997017876561611270526859966702609671583357277725227137123005979071464336459359803552706925043037607739907296280444727901477266442957039852796702855143531793793650206471987064659840064455243363094347493475715233026014816353697643616994288974576745030627223547887609307335031495289479941777468773756095220183932567611080742244404760513328061737950745769679354897943988030754847737228306525935913843836613961968177626043280875418080612769685747228022754302847845051852676821654706220053197132100573470417308935534971101888430905849842192756436996559089063624993494722007760752420151715657570738264356757585256206336875526946549173181175780212022791187277850599381933955237397199929026759261544276322732504607573692931428278231057265317157172518608312621334743647395644892324436368217216524848949663880977402852632798521654266844390988321682740039407043714351869961715100613990850239585093937557830511866474587302956453850418437388988760013001430625122981311681785155176340430093325027505262086893358425240252392733258191802997539310978603888175633216139903495343590411857650520461803689013988116752197636499821818835849558783780912713598070130042486973294680177316869954946797400108661138167160641837257938594194750004037504239030836508601795498877113180737688868796112611257032742229873777240287291032986951877519734824402995581101959004562390479638680977198167382287876426598873026570693303949534173337276676418033130520990706583143947192821823153207844491173004770314526387276095823347317553265211696483684324676580018096188104574999356916122406643508290698204782048075700117834298340649280535510127477428267961267505221190636040468199313333289177653438592805222537216471915872014221165933457659619759785622895992034063718057161338974328694217070643363416478000089580978291146242243406123107670595230111872529074324149405466342308545446250003842093616354509911817478880826777986361076595324863899321158906195553640073702785282607391430826322692365891202029982884996398308333491503672147892765774800153150472093469473597778982911408661954630675148182225787117198507342789297929104922489851293093426375571103285524017319379171332391809531076811101395436794259753412091669746093035502057284791226124729622624848302806711013982162822582482526522756788930901679346935750083160635680235348683980550043444632721166012903286447226738929087135554171009762342460142909581626438874934390042926221713761423299583637263423938222045332492753688125164928525052485691244314289518346119338972591845916122609539828006101741657120054616176292099600743208671284384660885037163412735037956441439218534502197526872216737170397258853741861901632492630293387966030095600534296713943193225047172573175654540039631869347670263818071650096472062094388942217177099463862888142806271779360615222793404318382036975324874254019837326825651170129255868458504844780932346950449757055086693190097392166380711706013504460442398904032619468038102199797024256441212550126753573145112025433110485336550054932181353172110886363518802103362180905949592522120987746951412833565265345862806900036477495969566445676631026582737912419906405094425550734515477672680548691974636609392210310136512175432286889009080150962281897932821769836844604046119545135484598983417565970371970512180629269706574289765074609005290180068477665218602154614988337095096419333865364739088525636034147512928123531223148617040689726929057935470634621333272236243235341655122337893807523622327925623637442611497918447285549854033259462628002076536955479785019130538671691390926702166577443947129215213224502716275363099929080677504346992350802448002546575360664680351702836752321289328451727288091567371920407850506982370136028083372511442374505658858151739205634776421639345252942658164191729007456314617179588162717892614044743446202733419795295602662630008767689501605623559819717457874391905435095153979287094012559017729285306360755595075292891555854376278870917372554206272648775362363445353565891331299947936438491771176795446654959700022730140098994792071948047177915649800649547192718732516039147908084610432157980441483671358994947463199741135523499504619489652507089505703455148276276026679051751352102655009537195945867022425724379876701332741498105628782508095215910469957634217243521688791737881528102056565968032876707255332024195690808505322943404473455167833138362882504671703700173628834902212062806159816875929378372677319600534506113513017926655362607315315152994772994874849593053173798752606009187616793269334025284940120373973516357331740301292749369481815003959181605626235289055130745097763402470280713914049905393344836662664141731182149219538283234617575659097984163083790358302717271584677539543180752185246427744947907434647920964766567251578432636735192666400582097205486243158242434303900812183583788146512221640758904392931745181320944063756729309518400397602028240542982819771745956863600279929396002894628136342449498618374712728412284704450009957184188142300866251989394037467868410457529276957541342284261902975926269544093225525917644510115969609172694316377701291216539396449036585099061749748980376900861115103900099654646849361963961866104571779493833351014389337540823009848922728584137971690051082490866933801917426136201352976168222104349814126593627108789847945457265589304191442330501690610469498653401769584296658228474564734016195140525060500177599575142693421000332121976886898438356174401394874833894289469780265718603824322770986279836400812269980538937719027823436972929597258594259661350109650626245467346148146377349493955231131107969083254930588534833549052618539361580459051376319880573750752278950334329619251093031722180806708744298398643335572357532420062777867369886258919644070021967253033395902788027047715957410188016170476548356329723442040968375511357414819374661413419507250287201118366865322250084446119688788981844672706584621174281532005630387528700921101839624637309299265514546708744423113369841387057919686729006744556537520654791168538356099462198339390515149741973938380249790545069002244331676917842025147973008324367710237848808246208367440183455970530606724603329501270509595246790507970375202925645849825951308970001679947036747370020344501937669986866945081740592700582012472088044868264630128353182300331367875293267281854327381974405553232001080922518014575129363373048980496008719264662559615958524835113956557996626993463091682911773763215298710654420735431563911004431436526103229382598835307373248464574199022074292555470596401048785854475939510953764350348775966309336682202459142004294868266116768590822452010967977402991378510578327723474077139813725471198289032403190397557789962142610530362459440251914289980991373390555518965081843589431622377536658388671993022605430101921913032166987437695494578740498404422884523482087636626758880386832520392407087298692081781949676858607686193247529022481883082733678562358862053727797498871596606580548969813123060197750624903213470733575369022771715106612849737366037264953779340128821265723317966589660553707994687220001531367220119039511295757716274427891365720941780366836213775540351196435587234204543477207583700281410755616312891779282416373637010188113327311419762872162768807045345855440466626222108810775766787454508568766584752701964427278040778306033915253033980893045429871996754684208791821184657364654126196502897555266613258444879814637716650423386437079027544516609710457940249958585796454165438102015385719396174695911895329262968131801344580839433894207720329479419462956668116370964716175207962508026930528412490331180441617942856656710603211821004399637823577520154346703895916718220224132197055231363563356741577494719682617541177643964054490140836830540557386034124273581680444011764134323752694961851616926330115986150668074214699667076649928770498277667554496326869309257275281122813140957738013202242962653337947590997913542238142613132690452747370510936846180545819841257625994119382533977095893062089588057951816857060229743612070906469985070523468891312548639886673880686441867127395856785056434403310647129999997589141104308828530315097139693838135868079571260963864614322664700404204098287212635223679733126400417242175976138234399069069972524558294947114912917184118950750845198390258752662041370185138662870087904106390864108126461110909417681830985397316229385334513101087682446479915795967677580159993678667442732359878685647759028991960137294094086248692029593148212460858733202847494750328815953696089257248848286600964029629491532749746338893129899330271136158746273378327892727290129085170505813809955644092615880300508724845497864970876413534393265439791834613216589625650915479659346806328593695768213381287056899089217646807202527358038211490975872092834747602900330055065523121490496689642726946345570174570131311519630123831107520682995658161000966618272436209732888028923004019981609313892293989682292674457740907803241856481905893687265840899744744164569092456929667816066982967822421767843571126128927394623052856245610948039744375587837221146327697019605419623813392655421762483735679898240567807045830902731824150074791445820964391506100686316263391202068772901703262715921700148771452996418301369387955458783481089111974700293900393962343877669027774003204149456964728260356518194813945503820205005600146960998532521411154306099570655871350122376091121355241041560904085081900151730791915573439924745642694489947166956573512669494808571636372335833615326775638287339095700718771637189491728855276300571123872265458199269702446361020877953236852749440934575865027403217198772416884862633910596138427502638416369751181789598459557142620110815679021520456751559049392149454250534076199058445391714261323185215847032560774360688308283309808651186422456659418193844952262595401043351884360533930844244226847398838511909498529113664277219943216234825321513994660299316808308644259843219221296628976915557604693645065812345791832966181641584371252275743839038353245464184183856023447586063144097102307728789843497627543620262010903304287388771760177590984622474952376586589808079991329788381469948012367309068606917860522462263060660062908893476293766879608660425636742224289838880453494200671693159062908940359409850403607624616327658461638670380514342189943071678066137557099793794812223678159439164811483905885379518345259011117847512144521521011510836614767235133632879042231459751713559736858617898919153784670222134948159088229084335735516213710434459440558880128229746119623487509519941921022767109892487959259258455966473966247607288211869138326163448977230499805316019205079894764399196070743177576097632228145242729805980075127452574659113070027245686784720724694564800506685268456772237799262472069573561780654861882237888571080622081380611070568075221664340149151605985355304226712096882892194935879705769598647190599604374087086964972643229680861485216902864333103800044929828248832403923828913749446944731363478718297774827092000716994637957281339871917795063790024192867259706619126411366927574414323215568273035946199340056311999401180645030148683820945755560197750492536499197386700378234199609352443727991051973953054435991058517345768504436880502878019486270918262246011764862218841460855055893250365141731577377960156619729554473043103456209975373163393215816729318821559022775324045507425582428017378373133058124225543450534224745492747821806064097099278007696753445434863744939968893461197431327705580889595784967004584033505138031270288623293807634202757581264100487388630945257521796435135766707743147187342269774218427271280186702556694307472496435610660100127295676728885699370911170941222287675621812316349417406847365346722784489939439126263395643701103240271083146068827031879756554612839506018312484254258566354938018646411161374552780519860796659453620713329460885406563120037463882738718606104696603254429551518085063631768654972183092620228009884607595815541615037706723684855984370510607070872761353958815301387401222685601602434577580899086274275747251133481019534390249998701177019068207477020349199820508902632755576032840088488078223910773992655589477960802482472842765446400245826944105749053493435049265774033293216425690752181553790458204549766378421699192407690231876353217787192096070414622050556512567783710700443237244977271394608175054489896224740631612785617073268375114075749463156744201707148422796569322971955186792542986022657707169284058845214724632613067834077663598994946331794311124447315835951331921627059816168742553388710556288487067715965860541198727702464767775972250057654135068310050716921684856982993683836460706141698704973225800844810560889951318892095343100556289748043149984224984732343673791633871658659234429482187563488552726918460058993625067280410235415580405962549076887795266916315054106965275443632026175236069274192570429731985030620931782466451501511136631597823585371664579304531309210615784590353275352981375238429961367517506487057290582244011789339563405984170384090030286629491435552858234034712449334281100925539550338668301180505191969482581325600285421553803042431289070565013292744295281291736472539084357672015570033719383541098399299335907518179137705761322475482431458710891293479770208693363345621426456140236910564232213705348064329974128866374538951118170945029026357947525253298499614761423825483870301825782849559126835204887130054511331355455032945222455365506054959400735684327504051589614965467591537679992140881881959339304343074307250724924082909135891218194383476026487387088832139061424298020946652387677466120409682759841998920362980788922134819819130043576211744252903161260774111823941550964423099886184856804159025689819422265063096258536826214272620751420772504797725591536350735633741718239651165339793678320645883832048494697985361259334577461583626849703733225908623984908432445468414399951181641116501007833459588832543713136181155967926746613862931269850204324150487527905623560241792324733350448221032869185208838480066091505357032690120998564778634763732934474468670026350205328773044369515549557561116060730952536293273887722814786433373991177938739054986839101056789966523453454770824929273838741336286691107084353032398470138498539099486627692533619764689284764807312816215561094017070135814033333452210171334369806837630499779583220428467720078764468898991667884954762101863440783085519001323908956767920873341049412294488693105965684271096204448457104169847646589600214336556434033944540706367959986273927161097383249763982063416973812895482550069600885503505735930276320511191312213603467632370312906695950564217449319428611580635920861988735816396963741230212765300425858476306379983177668511490650044138633349324135228625647519892077899286276252110842415877054327746644650440646789258456226504453774222719373646748548274616418270502441464466729103837267298920212306561749248403827378122181086894474584909263660524502006034379710535132924887465221102648230008830781753129912989699984306567219992815300689501013152238056319410958700389639578752908467351162037715091138510102575852521829337896488868956675604682326116850528769601572353485374799967839447226093169312477697159758612836246622105560934008051878208230732131629169557393928096381635380570808018592506974790258942920530013688470937882708364767630044701309647094382873752072439773664328600752857645175630623474361952609218502163895446801045618854424442993125171889382853805687376444434386668318619957402773639074491525049696043695451862496258671928893062496752382267876649920391730118331674038286315222801153383987186567091528540930457299765129023877407343839451229327732806119925106495355051188088334989174407316513754469980853365859285248329830403911210631927234498000165985985228089863985021338739611267947870650340869609437130267326491151575355007487850304767665531138954567630979383374362848342821563531746421516748763659910436064909277639999656323071143825604125957144086603499470239064643819937224301653305502150611657965012815669147355918003133769489587044717177648101021599401325896356630661744547860142271380974752698889677983732259596446029207669011434101137737026649907129303172206062371843937235537692293427064417392490271885372029908781736960444322053371103522483795565439440253611782417592251032738135972845581328845498474998722241765609102498471332737489692095650976932182216338603339354264811878503902739006813244970354838780839076862524456658104462489917266534678984187873055498401020628772553318148915170318379339412280504833638566617964130389445141480946137765681304192925474790301302956029468560968116838350296187410800694055656475062564522312722992508121990985461547534936581324984321152377217337120580558011669846786565691990903484210356078328144837863573443736874711720367011557973779546070679825300021313814043569327621099282818702570637766776296559397344133263756937947413188332312401265770995495117159962156562186587190168015098183243379950633440464391260033387367559334400743846106814024106912613035708458511021118657660755373902598927423619847002128438002417500051803328060334664600410574198706445925997916028691797499672392837724596546979397462650812530177585712548049859876255173852526270579045810143611915610223782271975682271305658067865164651985929934652375531893605918537485361908281681944899360414292287613572685152014460311606439481765705375519745521159900587138760993578919371333607674518635845011275647682150420214953613994125459650780609525022181447741433985024136444287187286689387999311763560431967367761315159339999837207601261778129129947724755599025920662840675003159335166638046365297093932029908350318914867224913274063598626752073543964586018227382568642053115919892043267852549222300517091590122089578981936252350027476539400390257226784108336400089194076619843933439365542133015113296374511179569786047250867584053810220261173049645844723135616645264179800828622097878830177385613486153528945968570684871983421173613077084605451289678587613432437091549298680914123352807672539842146765550895761254751173237301807601973112983948411998778991727924459779730371654208645238931134549256134246575868046513352902153000738516739086334743919160517760614969176554068357760397148877627806250215036816330621395518758081439744664968964454219813285718938900041989819729717069990413363516370002580650794818288557592617137002742297781676203852086290545552641400534408181872075604250061109332898669474069865318426757672003758696597509588863532451689443684767192915814599851464286475792152234817267592072506903470301252057332718379243441602131318024401715227324800344243766165098871401575817554130278757333735785709185452183215595941804819253767031583497348172412001485575073368534698362296204190739868941167851228631690061124186367257259527193523024567785069127371204236271002873353399710320806984755546577228556694206015305652490295608669795857096190556944465906506923326944558042070459693440767360470378810006029155394510241769203408559929965827240104459301514785487584522962522331434064322660849548941917881934760199891101100686289090313141720631517036108002934775846297112963855879864451161538109886406196862329772231314332354832196489708180736951862791907911798432776251830571149739398124293212913520002681878705695225883410238035318132182007093335387425606950613504693718451010849709707565241106517137985026166154001403728247660083462490371815376491453029784439782480473476252728338650324202925586720029106752503325922893243435852462822317745505656712913147738618440407294179697295956905421688955676791813114178222161664150420241211509547990923854332749605884246139981838490736292467402199324647423838448302385820157605865193348399049706514296257020281078301615444280918365638595966284430108081761137378010749361721489996976368580341928506338842618988013045398252575107384185097053068910860511653146687570226743667416524069281829439732385519254655978635613656886688963590500769172660428546270919303716221624783138150790003153335300927870380690634689419105931653487304868087044535003415798798694292181090213963650012482272365094174920829926073613610145720597821487631103647153049204013573359588551740401320562369771256080786447645579762144378757721365319352972439148466590604095678970178806204474007267118837938926276775477275934556792777659517440818300018234661150469098568940027967489330375309720785595278278893294982206034043156704638503275302178188791152881983207646213236251465565505775952938611654007189494460645255378077491819000293918367998948757584085398121481556961111137025445572135360922047775721141243129952926866373680177157472716048321376602430281175710499264995317114599822471936214996693978656151996820149533839101962820291233972893597545875857992031885405125612155403623967920715287113834588990964516876661743351628701838645993629770754121027535376960173358367659986876653619004415359129906905778331146300202283671799889806201607672409244476422810574272466674207591868131516270280887349137337668980607530629891487539854390150946732590563851725368777219123678813496729497196748133151298497134404298517633225052900036282169726744036236712428278949698655150793468446691433221602733629272247458871517114464308104696235257119915118577636674555407613936363345886253718470901021535996303983608173358494576686580135784561777261323677251382687505729724091650585683851871336614957510183004926476695118617828269202115132890283696010296000036814193288573043218166100347161896855374819926443420414728227958733580298041784609572910685477635869287610062561621138051562979986643379266124082988163604072392742609608413380324970069615457778016726217365575126205759013009734899710920095209890336857638339785092656794430966010684898370556935204835287146411597583546829856523767561525200655365431126290585488904553989617572805632428714231265313504599834388676485692084233362311418482891353558960073475847367255418211403101448327717775158310240540693062555950820848005863674373337128534518824979485425437555236116068137538664472265856119983988359626729436747866287424990030318875204784629683257486422350622626835803909520922640317207257029988672545724478395555634562018151473362377897634875406925352392837866836387718165891138754766302221161462493910069078877136596332640079521916795995293323974233958629903218496604471662416928863112505437672215900438444787845099873471537032812531981291011396016712219924563561407104193902358893269763825948957809414415732664800642232790112537074761370575051847242543995546681897266581643594255578006245635530981590300270976003248495951761880848098104569294433297638063273730402740591880124883077933877502144979509823579272128167347567837818092235028971024228330622287805614095993023770384461592162192576467787986459167306286412374441407216487972589411561580021968124797643692224723455811412824769542673267640299336451044157934276250401614013254638478149454976226779987968242016319291721968047909125558911360496735274405414745017771844759831710075996090619480286367778182282321928035285571185326649644684097554319822116009406542068469487350630834657667503882588783872284745337680593868273626324818528991331881150114318709249535113052511659932903740364604418244621888905195922744424365968203304068994209952558997557406043049597815476964094447896829186776487031685031528223163534920667469218292388745058573306808609923025673182056022457577709109239353498940747950879528485386544765282980198234913415156244051774844484464790566783924848558026889264612771625818824573471748546804501263255608116429461590542295146118421176319519982888086945485659081971625547877289053639798551420017548094424528373755628460591193281496543230287420880717400077459881387416804763242915955043702893842698961794262435479886714468248416687724768588370637623369653548482238801462365678075932937446671158130856883561379891797379195450704749494342161987010093264988396991728361004014597952892737160902861178668405063638449710303982302581325739769994251535920193911857839114207194758993711449511166233328772920021396973140507880611685365771910837693148853239972344616251272715484320086182547444886528638684477672621493940328987461093403920474234371051094422926859759791263361319644713055049267853371206889107944739433608285767012305531714366647975867126676147813682601329807874664445809376398858004562060999525025899522167853507874165853863668881973851768349308715916725656043382225232628205712344110995935672978568782783664197310325668886683642275354960172190393460431360848686329293906539094088239402773683172356401602299905069733325826850909521855945747743063278805569407014814035517295285160889117789894865115020316452560586981250679991316533924747219583027558072084147535868807814570615454430304049941536375196811476282223084148077473090168379750273069258282003606423225590679493727882572076044818508034229405717711225168729271738126054766845176994278086682004990240905586873691969604884069004381283113935115783768364902018550250031783189331214579293171896794714799104770212497935502003441400414289167394840378278266836933561087669904631704086245741866596491597798805229031568861714808481581011849352474090781136804472535757132373885099750771509029681162377145053041702786909205214533680642676141535177780897842005989902974413615064605358300310605797399304710201643572243849296305040491361011885661377810522673644649156056054963180292868232722572737642090198466105410373944468636998089453373103454217495913848090516252807184401660624990858539516044950791406543241187727177427974112903958604818297970787251867374964838213905429564052455986022674620009052300510582883880316943629580387639651262358460415795796155021932613062180500120035803497992747583278187253552774256401683962875352832409930740419912944116021074404633039335480263967119877616659414341819448336804007152219640872813319409704798325393925310305368218182974526500738734565128363416836144525558410848954767183247943814770685313034445791958610473897565403933632882928514341613657836312642104309748634114846408901768079730252204970002767861886080599379779172946667973755369279680592155584672823531672129555131923079693004985491375890489032701897144918726151849672701610063208286430582319582541699417388372890733850702742886118269959899965965472094465225981947717344949570768071850519566342729311160206698584641597271828168732687633909684422501305134362322391595422236771703286128404408136762196320698332852686229942933434491387273252424870924577653408491181627873591365517377152558320735848261207067385954562305404767989426740418635581637225084244672513963617300668132023590519433567398613573649732130395435732891158284571341971041676969099660403185468230522771215349364855538015622130171096182671635666112210849622328623614905281505139616254588713401263747006792285664929362107498097712229043982280986878044191084140687796367521868200457975116933353278490140544354435829429638843031695320550655710105912224247391614803837305520620205885889522857434294513492787950377227275452632878449141486968243898180854054056646294061789677227885557136010890634026240419100103668387023190300877388961668307866831507859221567495772410169450372324622850900561043954041921987529967520706755072857132632158595087190489236741230253834414651995402151339877257195120990809873459045762375248079264745572162343772653128370109249928258309322699223308401815355569833237891301199711842606783248763263272037763190848423965387420352124870029855765467889104726885514227779742446727751140720926696500195606141209870271101116571863357038076099277613175788115818729847406917331678847219981795441434169895439821808199129841935362844796822349046128551645755188704138608550947879457120623871933156072906981350257857849490743657853051616018247929201149951113643452172731740660866097313354838068557446012873798176271181785640021239588790184207341988958693426239054793341065863338493291649907645155064429491179287977911857495179245459991806740462390109580892713407727908384501447260233672877659663892421989080225260617874755843245688841000429292695674134670020115870497510985047325883849511725081070974036371235263795358046087477882823917622684540868883164789264611958607230012218148961325803312627828863239607467632365719474388504376973156539293009530003288148185107838240325422211893512174658316006447088031983373941654207434022822926372552718119897358093275905760429207306165218297091423292537005355972607011873167419563736016722989804237163171134815757391301011381930128046615385421060375971695148248716759080001708834868982938033329184493573772308383685392614079643808331652067089832303032749519039430716746229161037045041112856924669248570186574621643148161724561720652788899609429104235070581246450979688933971135115286724914251269815102641670173941173927915008196890192346479742146879966253627947919939066716886297364592732364209572814276257576424836111086473388207690413133409485685624949336381644827085771145332195303142224289262991303325671511266999814973960937780745445846613346845014328763328034982036883344605220545129418691406226614976601566133354891037961276032193994392117878647734197383481472589820078604705778612271424890267226207442355267579115502625438484969176372573720974619406957572032622587085242269682751230720774818629579215391474690522801798805715957852130029358776870317994182627878630792141376815729156685753551899902430622188579084099705600511319877570234210725907236200278988224600240898655855573336690712587009270846115468375559607794380836861444297356724204683356186657045563394209378259172704625893079307152513873782208820896118790276890050897439753540166650374024033031391558100533452507905203671648673326778906054617324545555470181126624203577784550582568596270881227455963430899035897921462884431429222667286604050849918697308238167259609086001556435284380755304009550423067476469129167041159227444145658398733671510124679121220260821438735628446904750033542309154029753658526385023997667572599528303358191319510202986660007549469216552807623899730778112731539704957444358660601853749581090810984272277322639284165392128049356102950723067434394376268260725119318453318757969154682038532364414090683467658508556364512115574727868118965185984336050717163279118529684882227185226431223063561066929058019597991140827114128607238524232845977116410315633607989546366027656750029756644401768511008618662214949078547250077694116208593338332162984875340989855754164956561957389209999674768038895664326244648541589964369482105234379022676623097542342224470840364245715445713588284471664073559940937299824242818295631705719312711510697092605546716484234569509839444422326079292538055549255642712095884177438717084649456979462412135268254310625853899916245223869160599554804480038327569713781944123413874008331761341607489795045203251391761572869207756933044738169603651853057141692866231043450166710862418340223122358173475662975785429402691307951514086758068472244455088034344255200282564929883511950649651818887691965613214369985544597790929635989294947305068123331950532181304919498437747715183163165181077716112923763707046410996362465236975039144608504676429163580159353461417285104483219897496100903822216496328030144233086496640382904247421011920461252904670578290118163614246682365027793591984260376542171091310619758787207147221789894969142742823511438034016277815515846419252677342996411961537259131106380663151433738408695768102842752392161680825153485421803239999395898374764932495292123478233888264448820038715045216504283546292744917573920037091957881420543804113687501877013845837814009721366309728415682082874420412914136517298866298322403877539569852145005265976177494498131912013177331223274240149948542805065454251448371268407580097435144475080703542988836697170459905403770343702107476869123046234190798696460833977495808687048534086485275350329343264070442240670661276354330580635436313427413541158130898493029673157066789514714238986102506337117605392622982165765936466139054737719736567038482487237319423351480128307958424912324713091723875300625714791501292630470898097282442309888782194241140722445266253158987112004862121698214900875021605972092779852950322561565712752768646417554279474506893264815759426028629736543045111767685449965783178448782920465191745749619122329468389892277148723194160801678763709359162378847998865006930962134863458842194365692307603637006492004033590572443754994963521709765402668184584708695394909731774239813184511118411975786397822477529337731692173419378636093920118176995695013252389828317034629319194277054941713834607274067533276603642037806937906076202274657775210706998274481294446522318981766983397756711302128703328054798510246883219862061710324033063533105777955222115304355140722410487228872492537720262645997797876091082489493955778914681860495358195868908335111996615066006857747297030546233750966216470684891772550242061921155281873281448155892459357172675780867179382440145005086689069167446154759672897391250760300490683601679578635007872299870092973935727382224930924484605163818194235874749550172121677646187375837878409882181134145700864533780835621885612385964769526302582882771166461960917327322042798489174442549358580159228572559405064510686713102340070793309970223242952405053505800817672805475704860160867395271228819861229163631180823563411915518436784055857674962114418206969254270145574732610758710085886832733481895481613146747996367095662653720270230044722910370489404061616426217144325838404513849860839576503046733483684006561285063572615288461134795243658451297828191155585993793037957536543850937318345604631840816394344160034824416202198431488716546940680687399963975252595677559255181808223035411362106831752831678292847489844976258127320505086941430403604488657551502699202723716139447512752059624247623371740717470952528386939793165149034441556471569894550583281532139652685076878578059084749880959052088889231773220192339241532135293001376353849182465921857573682392531832206572277729137352892579029715785110572065829066798366243616339782278222025026156565301961655097393159338696627016228812926414149434241694160556874294990440931573156876702243167706757500222190690312722537053938833784464497430727339766717453560229985166129314464211740872827070366071721170639198944061865146053945593506433091457523540227438095338330730229983636377842307160680757362722151847470628010698473136406230587863328663484085184569270226175604541222834839233830381341215619506399606847616426119528144300133748008937279103647434484385261130419768985708297893505114653091068811701461357327798001454157219362334590399458188512732265817341171349845799240412554660682954029267900470483777467076045346470426615597691926505405067404244884438261845709290898757649015851217049813649772365686617262577415606115533662926679912247087623414537506383778003722386346564665318526099689903760252720540017720681784830281985846263000544216944577431980124879536869146251680074545835352633750555824222663007040338955842542487477370215116272602205878174983132406547026041847988178635287412141695951541944173205856725012187496027749076053673507940124333621811694014778247870594563155599052929369038059518507997830987896629329814522564408702505711759424459070513674902776738858294619424304019244498425268531178982420695037718505333655814101894280493776057798927410571173613931384721434673512169162200495550196606012001176058391329529062648420973516411241644082522709076703198697232208370925850089186457478880894141326903897266861543148377661635635669471143064404865215938278037396370888967806701606998657217026975982754731643907721091885776546185000249958981719056772989268664131087031755872851411552663207028846498159537976993663060322523745538023182458284243613610904835834990696882855918159172487843844898470715228801423964444977842438868363515724863968924675379729469235746387176006898015373358923908139202164651031686040180244677721614195377645504665429636267919733175982670656507226390975306530575583668970608480964759863893921077504348359292537954363668341878029970484670926105871083002501789478330935875035402858014052839650143097644777385172325672050913691776817626365786851398236360849877502310880553417645095488707052042445933029289698565918792811575978207378177796708094407116720103689806115028625193740738183932184151855058986862806664498600690307114312451573244908825155043606418055738173416091800858600606806395609927047119147471503685673627428518071891767304346190008874802052195373983405958354232101321800054007572219860849188809907140564835119520638800587245574278968184531552226333878269129988786209371462913773433519976316345983985921707947864030088685323052507254287308492853133636307565666782035493619168811551018575406044245854202269492142705305983409592739625405476618427679403100847600239183074719426432907766545921161549521268991490325356381447954991243369645764847717621812426077411787042741560647421527619678661362165546165006113658607093992802794511302280364655554657176314337399899972093735661414404340582065286497605191180736492635901410269693356013871480036570518314239575477458443754844448677400373488389900320575483301907700450227435104270718286240847636622670166018900641472222022842116416609879859742256787539134713568702408519298305635177042791032653683388734321661552085532704678326231583267128439355917428362834983138002570684119831173475935021076632053863476523996498751343511480964277788861360924927257334315351193910599298376347019655219936317806112535407133745472942397146624662026883047617536224738811554836489580327398151541369425805176439039566149569941711095326234463472308959822532479055004351553895662178838227828053307221390497636412313284280965184190954871336219774415548897334667203127056250234338955872539754942555895791505545412631083480884326392090998816910005892352525692211677101383972673226858828877822239694992702504190869262223180206027946619584424552337666021438144428360864662565702440169859610321715506237326425049044488515562701075626965313403906449988939160227904217149379058364035018513582536414198200394366402036943343183879461555753464574158606185691013385947818982549700344484793900558510182788852165744738793929240407267281481951259765708575640503753965298017668027523269180844585838642148488747229000783016964189197862920096087275712742195084160944973494516851622875326756345743101927151437748894883894048359757300526570202322584131691140337129804188900922410301125757542634144147284473722708912657593800520379735156457192708553731875995960630429514225825244242683261784902312916919746453717576237757806142465600061203616545613921437205016053270742534134466101411048344675248936241868184862825064073532096921523014997427241710862212688230091708791063942302050551739687095296055097775529633024590385813283372475644928206924304427610544180069582097039235187197901925852419170630168963286129477410362780051222631906301260540857515788096717373900312527363190639543041078623072760067710750734341863373710408106185031044654529553817225631538881073991028231606500282007415847112094294845828951766641019283677394648526625535550435088907638898881863850778406356761915449049097392649104297750621915907648847883086076543936499314212175897271186403855952430201848712834426691963274390053012161148892779719752561750645260884541473957958366235827434296981934995845789950026151219797184285134824596459430008107681109305649350777638170253731527559637965353072383069399942332434520700361240876470590490098308031576586647413659283511882830882273616872330935568039666797505611961325519437117285555667661564704545615387306744334728753223828921614033278581765084232300311094757265780564335949082376845106423146498223647542458035789199018940546695707199732224106531911756028732614687297855199478658572836988489841422221827198627164388795764157646053776743742751306963105431153553896431610304169637900845941925830114224503870776328524820056914729968989172921637187586704492117653146759726441131829486872793702573071541156408888892049314290051642750985653455284284932603947850142540165461493825453755768363966848557434746672925804409766401099405604054389405340448152292992408876181764138409245323960363303533276415666900595125342485240073535416336093376547611412570197738646709258099262172289378829345367207367524626282275394352982951345520535963929180825033415074140152534884889592007889795278563152272655030519521263615156884391900328228176800337739623866424305051111685284439699993839545942228834269934251064394232293138225652543300629257611105938080218082621318842952122932324043474172458480070502427867285993131495988297931285006050853506595464482470564956348398188931418310892193591005867615819094953238685172845170752302596150712638997655999375354288766199671420526359866135915995218883808239647852585722067061466586291524120380015338608379907122825068706820880478921037720512749484909219453236258285369430294774942995381529439540274175317401541244492641934974712117610804897894021843555292157221633353453741587927035370343427018334911233903489705753342455966493672711242646861635338839139923516245208561962672920848756994661010602861307743078367521504050577876057375452904320869550169814807276756043914146283727943461349218755946895659276914722102097954943969402586946083935258453918247519596666114940369769443938443198767960782610809442131785329259903979598733507124444876063640021903125289531717814343585041035555773897670423239085206704505252110246317656368686434870832878825809347124367565594532339411007696129761904611128128846089466120710178101237583377666700806099541842036710535706804951683855430099022702505816602485972553999755918845544973113430989315513493763171886258071163494389259097605854485272441957304919763049309583806709389538745109540935082671170866891069726394694464091830110746665705034488296049772921129455834321742640354301959087448094712830483446202964107131972496323852395425753152189689445858580835915576039331572868305289999057883942277847119784010791939435857410182250414297625690261321207740790294130280249647470199674641202499485364949623824043633486509812574248732835476099371705163306421319209635719543078603016547021185188399981767159357076232980642981311190152750818019987059400575580329786291241999692297374804818918467146647166635501394516370087566613082876349260198980546916438837597027830729327547931659579690550277066702229299129988856001581628776606663991040908317992024414057617737476705772773159850526395795121095787622359358561659324654073660919982995996891996790223452996784572967331403922026012756542827095006874335415211440376741353547511985416159986781414129359763026432908971236849453672272816470423510089137140263906003494147227468368696063209992322190440348483248959494840275272817630303616974593609286411241335827341651734846696580975306978424611047168506144522776825520697986389855012718645262964243018712851634568891695233881554099928576588738020287641718961574142849188744361176503688552167349275273249876419343414529996836976243391586798335456195645149063461962175674527549594693416722654173727637342610109003828532523319409312107641163822749142665013198992384430285713825494808602438624302016219876755643426410903120430191313533423976581701945098031883645976121913735333047186964738494108544593682987835829379036321615324354904528537906173998685206842162341082658696420710052895407430792409118497463975166887381741414398153099980828584729520350970543537806417368846738328127347291222245521191640135344848720131592215864193970058966882461196718224960324153421483933119035888582074201503302188805622084935785402034021482059217750206753375497884630523264610527356705469605676290033784708867752984156767737398259237501075521790539012347278979594138959291892338089466316144673053725300379103522091174606460958436057749791030283403450797723175016371576314771730935324718805469962561487219937024742750655077314106915251167822146664612405221559836985033236326088560039897217216282953223260011194147656489112943215350301935431501616206984853656552011637831779290936372826952449980658815512810481462670166014563652795183269603071551155937585452749041998885392301547938279389169003349737694262322002766287438537009404455285421935249208719950113957208331414111713191496829525832671690543548582319019385837066603456052468063370413394631973065870517651813281777487221659336104940333183767094224216996218737443010158082773255125318399827837797018355482999342395765397739028493643975947213525079663824319418177894773508829072585429801682599533963464410071426577985037338496986094225631536764483172680893118929564709175332830192428534024230454185852759996744103416803265020304218257756091639818132306996680991538463410657559883590073937069601397670042984859591039874235211954571679213343232836482319093045340137434936325454935675233424267311326866600492644832374429219467897867851558940760784551022206394512254070350423201551977170423476364060925734254893463039846080575766674218296753929801641616066671467838722204532217465987927739939430202643610342548182633979897285894449159851705375102336787233787295862735761408282583402576873997585627708999555068646686690720667850205040205462117199114681333068350896732836378635363574151809935713486191990839486357008386627569096977693973154056661928541562565157668122640055465302112916508507180947083181291290164475858839115185495404980962865483175451636687749219252303557597465949143314305958932450593931837657799361306838362594405678729019578507668838336088588587206735261324648582392765960112477957225064715693727003976591147408325065465245169041786572842995302102292437328754415054861206206092997703456997162489340286710024615383315377584767253948409554002879715394326815148708442582671318307539055286574799682902582509192484182686405918993739888688380082848622436932452182929512736597315431568998264692478602155884079200624334288661147783935043186145286310766690296360104951152108349552618615481547315860938618847657649716560437525989818702940627976278913299470878774785420476058197383170575509020201807669005407612147986998054239172654042525870289428275357715008681180696906800988002621532473080756276827009849234224965592078626795038278287084869848873705071571083648918768131120395168005939682393867075099403800495278407265355218792280181958126862131108520050591170152520306626364694725771477964440061162194367348277024367394433770779747848627072217109025597596936829678769846632892953212988747637981957600039795419044208492248723015550502731292596069187574925439529677449576076251630524867385409130970880607361672584682238589843607126499564504263452500043622028536206862930741938203310950550324557272229504519996963299076802490214925638589021017659075759439873935712184530527505824403858261807695700160632681720262808190127804319952824942649685398571883101554807978288512518346206483323331981210963715348579482572250955680926785037579722161004453160089575937769139400810827056009077528842138220005092647406180962719499585123968883251182977482377114412604161930916609205026198677420424054116935552107167690198841736593563522288764894962310464452891157317427518452583507254343734956950562131536644286952588747649492867088831847269625671644427116647366728559765432588700107622486340221429167484129417753068574709172837547681906691084851069395737090718967450928121388441132651560189167295027733444586677048273079666592984463402114427844856299811367926820153198466970767879785680936070611074972247418178235187983605747914685210006292153429639607785763716685261553799875489988290274392508073407452655143293855501909265549368945993753797571579070578581899790909226961183577417309231505689915000999882950415586500166273745910596767572004812705941969494342081500133298048156393151645237980932877922005926779833228547560022228789159895508048754651777549531125454496593725140937124499470995588853666060625144695537802257287907715815541840475890682496547407779236775078509396366106636593760523832897916318702984943280229257252684516864066785017323016808377484353845567121818288607512930551507008253786254192879332881153232517962019951803627302394722529705558684406742633698021874790814147742780820884446132785044809450854121128791793704453320341734112392362437892102505325847612014997016643278779160589537218547378395252457687336830286961244399737879860583792442896889112382378043794639892996000786707433665338767370993429003114218121161232494932974871889602716084126813492426036090015698418060764428612681063164698630034914328056248008476400425690829432974539067311760186839174495020577053080648046366350453412241254531045297153269387116815632567142543311215920869211009095295230737919969805319544767828294324783291347659965484914430751309014049947558796197808135444914474291535080975661385225841479911694018457658519052517985853073978963290209520419461695985622564457947340708173545166437086257710055440428828244053289810851530913275160490235643941694587488121254545202814297402956499313586037379879126347997862202766395638091927303199113123644464129796693800130543279020107095594421263998893033741170490911771246024208960979788515196763063833180685965685916805695685330494593245192611267599988802170722900121447997670720547878275051882651015385516716743593554695418036027658430559529343013918393860621396021231255083432348435358339448044734853100799931816926962531283497526298913839348220091117214793005118704397032914295613592601815029396986222143094209871656369784917984891895888245330487306226961858727134840692821057165819103931669932413165750607308664376990923079447099648270087877369329785465392464290090082038013158654575734876591413675914105119317413963513661880057229319494303180981550599452973357177160624804571896766416481439776540584164738967954974366971162776793172570407769111255842021658098332945827361381029877543031170616267810279539004066502746943707883448375826819034225877529902388189507361242525139799229085394987189322368220569409052346026407641075718444789128361950995289177709063639789845145054348386118643296163478530864016710425185059370015427622663390324477466533839568923210727738542901294220461143214401011182023386165376831811371520306583709486902241396523771790139133238840972289784558210931497583703801467100436722342501961133971422669323345091839506255260120611721667613134471940933285174788582085225268798547671189888446535141290278753587596901541092873301629720195475569195402538695716460471071966902635076110196916860366761107494123317619427175881336555073496054712403516754219905564214005208967888864129052945887614976561219144659809961758813836634274777456207813435828624284649615460768773861162622528812571182602092053529087818514527605195554329879134717586502404290052605386411720882075209357419059840972136128024372835761790921211570089811478135968114373105463672520496770485894961637154856894729723050279825545455570662256979596316043544647908933537351048307872466868699426977013565778484765619537350808737405015636649917060327280137996855067165997521147866422550796930621212174151914101999980592570042402566193921660632716190856883094764732351699528212498044652662754482960952330813397551947421795123460242181466692054093012459001400595039606205783625878102145604909550921189356161899106876871486723221670997712934542815856952531985573572602268443811609850197460285517436092795924606863957654022080423566901214562471820801760574159845148006221058111304385165609648497187386027520692319080053779514864334595755944948455290099393835997402667718135248779279197976660524871582452900099184205051314875482919414497902586728902957931522951843108964047523239857169363614282411996181632368945508313550970586827562186224142439068402186487963634686289246323553784373196230541160272502806217233506755672058013123731318020879708581801803593672820143577250361220647848095510462606333870566604796890576963232987144915185483597299819824515708633958514689342403611718367973204718731202657132394047674421702629523324162916170981008916671305319662042276865886821360370774574390699721178618543240056866235715670131806526550658365002558526251330112993681753812182477880885908890843651508366212685077264198045198943175719643612523312606258888924732895946910739502694595115968972019063921680157707150579485409064915763343942551861858811432728170281556652549490073321841842233421393496280627411439474852714849804169034213944928524901448925976431718216178357400851622044273878503963064393163023913278589740691928674235716794463373955766790125393731480508255099850891993520654419715406447813912744717286629798389827661733403114872978255601619288510535308053467684335089528231952112236187762555640298028238704213901334107603588387317595980774151559934724327257767761042493909561288362416870435337607500854062588165579434703303394552116484939171153173012357704005671503719908847994784391995300378654973954655521693295853461846493889194134589247457249412492997623612869273475247873232101720090553681883491430265103248461720180599303641932057279709832393191182781752585841528394280946119565629070480065780943290712141952621827341409884296912309504432559932975032628531702042177878671388089127439223327707861828991927410151438112381097878164881025668161999636556767911936849141066915836304159162083723357622896732707470997317326898891266401980141696358952055765693346903314791000816776310108500139638774798851243931314335619746090273966686897924556483165642420369624779074548980554243674575134501560887062527496474792572127586809094690417219675167847317669539733893260931390515188390001157120556715657796241933417471394126591296033213923215589165667516687163304951067650957080287408356489506074116687218596076054398086344133133589412749501786939222164546707517352094997361172644755892009249542784121690133635022081194961684620153563316599538109021786336523865363616674376313151044133404630215103904041376672600920524862815787818421943723355993486484641726322395247445116089046092541846715314456939368102726891562434011634007200032142949111482510487230052331124634137168722850197736760252726655021149228768057414829376328772297468878636008599265118493156268248881382681997943293879731489876185407077119396274731926310419301635056351082204023158392102795378365554322518446929365870741551651236004037176803480302664975374484430448604143473319849596874866580360002478426248998062907048265818994340064738370443542253503136905265173649591734559810024605823232298893322053454675817781859522285920356190197897268352027750189495602280715440549939907291858789753448066705232691559032765857286821599095263805732771808198630029301212993840962665320759970135611341555955172134082250978291935330203207351582543831953204756811110339028927635222629430568703991959504745670139349147746215178753551840417251891863077465333412734820366185762879879474348169384437916463089757264212291842393548410044307634573632972345289096543799549039799232579303061829250354166795177039937325395081830878752221651363006430063923490801562522921376834983138296523505247446148561716247579640648845045922486002832617985066816445122558778367490427214955411869606540601283565897928974835339283748486057095536498382280302868927869463097544310066370692645852498178929161094109368486615062769152482160761434396026726206893213560201573606157846948023471632949619966947061625129644272204511999482937406783505110724290593411044717896256999296906341632312230176984917941568289344410027654406973896474850181978257032943063484004801397964659482008429273117628307435566268563815455346800448813106733278952132899837817819983142441238620592957599400958987404561996818623222889175437003074650158093784387899340629387142494546707401397393343506715048127906141543984461521944132691601337104271665711281216263540880152773026321995163247820637136830105546288502100731711871177120191989373804053763744243055831201272317097686750626719787856753481055346302561907731845076691496990959254812976198578582108735904203464734770756474717995035008787852596741575168354778766212448202750263537769645652487321371512725299005997680223405385550884063501384211353505141890500107783976144845940504334949282530341267944668111795954542565152072115897852613702246116657298200353854243534894407488017902035583730411145808745793905840743877069692695683611728759476890451718563245526695450373418630594779384865655475042565319175351066219750062574768209117971582400184132361049608975574241281182725264928044112586883226207793399603490610818419749905076187193701128101967647185749117117717410138115265957498581296076101492351102325550612548566329708917675893168897483206834680017278337186697558385452471460753563999149403329148627517741317241146728234475207697876650502871015080539226133828390865079921583791297111969040398127506764385125643227159956314058325183322905545615318350385376164421454640013021889757489166497270742010069004630068700032991037735434673246433780256746022923509482447881071598061988973751613603004986951002774668282830637444153485404149607284456866986905678158074593586811430458491384742404754453829232896734378708438165624870190701590940988525920284575276395609812889284779197101001422280359174587754554514076979798404061145913898906020739273601842718837260241287119241598103645675245583001048210413933243095156266844333414828359135792845120355464280233987863268419203028412821675053999205263882983262151823156894766230202950916345542354017711234950601384515308870278469346807364629854211428783465868729563532357606095591332820873891605882366106153949710204014140062463450455937759347672603822196004917492284156119689154571979765234557583613403042452716593978193670088712280955640027005231350621976232112301386257984712056098676958946949791871221194201736688170667034231001439440160509076324330765602004287081886371139846649481586897423770974923570964226995830495648526225766005100100683447924819298880313239413388486264063477726972693554457559238965440501729467467320777476293439166045731979648460066993442610845157083538007445637957910547267377734371774561668981483673409596970768911123556302052461113590695017366404152817369361907091464406151806645430626848000756625506448018334660467867753010350703405720109049629034880903479892056953824243434219973192358660131608989519779697975174145820588017614274656990700576819493688874217849562048891267274424935877539929805758630516927360311981318947864767038748205730482774711311211101624883714292880771725569225472439680198081158550118353058301352137349404668260331411233471440786278870769770935696768007117585470621811743230396750596425715350742783790216136981218384189155066796042235370868424416004697194989037060807900492208571184576667552214771200137632303709360816166673814582837203699459909385786722266585622310874575411059356883381662606122275372684116003064046415132988903246603894053589854125938793552246116854873301501335590221919284761739384128300202691861452523909323888956964335044975712516431063553930703334289659796374040388773958883717497577580875062278384770317969113187004020961276466985672195399925727522388704717629667252444492662019550704902831819296477917528901747810284487391492572546869719369113396840387416693100143550264440467826006434045478596950698342309677988931810977452849596762060076592587476523323060331990406497875591534724728237582754309589076113663840668371990886048619635944142367233757793178679898558485216074596806266661463905710997556805097614429274648144377433150093642547642595664970140933560245236567167905424261503089164025018186699306419698471777079131386711279913862830379806869598600524272053645570596984142973535448250463767366808787595024310698362605972008931692420292629408450013849709828986795533583262046185758979888565472030833598530534879956194511450627057631691601056458312759377700471149176891616662211189327096523392919142383207640243176375874763622809986140682007473045979527705336952242498452122158671305996848824796412274929498808909152344121025210598568353629910594214492171730790084147328974804529538242344829203050522379880958983544498496199585595686282384191080076667324127772928032970737280638892011385718552029130815454209092866056538501298915776949844380856204573387753994670540487699829033330094428800204505679166270306371322859207921829067525983171686003266669907658345271525485984441265911255878793068190479917055056934772203705828978774566632747747607957617001874330799198051879609865638281132720552012860865942728518332383870622377855535721169771792765533282843190223248784404576642857038335366532121432399366078861928316188548169076181845698891458895945540951691466055592781360718750996856761623448143238164596820931243363016090466002375264861616420130721792429588187399910352105124317665191021730204234812398907644230326773166199753988935366439685462131179862436554719063502393522518865472557037521592291145281215853546747067164110519438920134042447897746423670742372484545099039717982170035976502861182396758641730421750032732829811277905986779057413225047247821633660925754071545363916066725591970526260766727854844591305061755595764896715773593947010236050739381493561625861603451837491414407009810781535917232240915444074631919594888105188159363045027795239819450705382654861999388559329381389286667521700354669568496832109470466782475786719608455175846708464213520732820407956564703470342402392476788868952219760544882530689331211640849686971082393546683263466152653526369144512667705535651595138304688129889230289967585005117349269376949839569106378818896112399624227720009208830019331505508122887500627890076782346515375023431593518737792575960200349410590660747066710832942673514419885964648178211456963728074956354174617264774323628339609797226093440956026986902013326751485778984178138570739170117355459142341472448122197673362842317929399268997627664623388830924525854399865354734696322109850559038421351394385908855350332457462714639029549509143051314700597573343233099202800581801094856477867551255410665919340196788216270309694673886422981611255423124060206269537477673763706254058937275933271010585620090681210171230353028811839540308938694835477504136002958959984939569603050207232649394644909015071966789056627311366868973451507968515215802758613140798202728307477001409082770825717467190043016321391218567080904483589135120594404451395385978884472624010427204359879703957185765104268174946784662381532549018884330056440121486313950441871816772761755998391881208541359922635812887202184584893322869544692369519142077035722526112040173024554731255579832126093153966922229856136530083823602565891722926485307728717721626995896327458417183064545342258219185948820720436669480772742371606208414364833349613957840677969302777265221000584557900850431412758042759208313298623007848591285961679715952478509736309353588877911860790652368181130951307288051061180745295748358828708140881139643006293738026626080618364769279221138920366990993201533927668175425267662211663021384061664158402608638482003326510548982775901110232820096647413375679375491043922917656590252336466903976247213238175787317585104600697015536827267908589099929915400970182793377517711839670097065070006429828845189832082511527721170161743344458735587981006806858936013214082750770246819655864026899059947062536153556583100301947798310985934781744151630646241561327245543966556187031724779364794480172989536768634273117615312551807317149535879549339257747488546548914426388351602477420609656327473098851633162020377066903019595814985607616560824587191576442251465333749151509680657568291916432247787513919661734980253543955070729016615620186959578650313435821342542500971342747163562360512312909120783142985004327855513907737976741453270696853473124195518198968970839033397115119410906842872801175225423054561191787309863708365441206004159663085171567139123622518272118196224608127111860795058523828606295710297538824353284197366847305042857096305025642186576612472354248316361890869445396141378646549647339628653173579419390095825254228596139753316384991693129649376283040119219978262333983572252115450357723050102729570288511715539971072346471572638853799222712711171794731845088191252475821901390366247670189245152808437898005587696103376655582772519987460307513580035255437097483170835802826427608982724315613592431602744115843896596363528553568431040108064408980633971352524800136353545101873434062278340580113065325598090169450799625502019469628089323238489077900787573886185495420369352042720592968643034873955907494754216652492314476419569876621369696361053630943537206026657966927682027688208995644311349087663396752282145272834513537282345506744505831893253214947162971297760046407029897997473139930857996963455501437023754004254404194415250246308208433036985461393992626012688414616099697323019414787187038306881863556975308322585535256503309450370030515271271491609924779469082253248981964665974926449037047365521129697823193453411979837485460769555779918324278744718021560431207845442642091125270763044262569984925707565545203852493447151643862230241672894896633411721860112125860959353860408190525697198617385907756499995630116396733812485611877735486781471408200650967092668816055268166585700436334087046881933611749040463986770648394644738469730953182684755211047099814713408953835398522767867437256130607846339977668429345329214160855024722451208928750260369881231619682337322719135968182037584228877155736897711744774979512435189680981535569610114710108930079474021255141043805864513193871783761735636909336475819072842714758921834078236194019648670721777674207880746211196444223970139761268863145526627029124313591365486326045283439758215455017641790163853331266717118406495934512853391664377657553539825305272531634468461953322928322092199132739826978940668758279942573732556905437664476972924823354318025244816853292139075567264082930020878425651460667194577963542841066373205555010846391970439214244560149003064379490018350232236440698749105865714669157343100980165140488317577555828718513970175568436021934858523308188603933447038169877079635315496625464644871427038397717758111860521593064759318952132418383038727065765977207659567261071753305199638848881871921003544837984033199344507358811628795482487521804954767794097288290362972623086191190833903677263855999237261246135972106982989706473491041877118179137039611682123693140379906582838812333739586239781476271360719825164452938625048986754890788453108428637006779286460095027547200084585925761976419732484831279066168273181562306577619639345951415902161904774076768978932556927338580300361965730318373971207140230361208691493622534825117792045101132279017889697431401925736824653669420542056151970290352258183030665117135927936939545247443447906937068179951362075774286966251337583113780786949139255599638338362834026546570429911004949223714900959613095337418736335329776935439509649449023609197931309857350326737951469334247432457491716769972225471326904114713086315380467763811886376630786214508564953238689127377847265678652007763936198319226277376789259081463461178819494836110309711344110115137513481610477389117466218225063181093050620330549772205074778262694413326342550635157431691447457859707182175438908013343389640868416624433664320180223338093288895876280196448066389879804228773399064580774315864476660335672941778338209075122384479474301365608299462650719947608730987772398823768640768578088940051394690736607607302515729789026627287064770829208479970226212470666598419074070696361592363151462168962415646867350830021046550684135449462529183709038206248524438646425143945590467352749647909876528341565310695806031275834691111792979716426312758568367725638732976554195621674391926013826884375974282390202385189740718048102155479679056776623087479997530847962847329446552021649602151827509536518519518517156456911302719571449199179802084046460443705132846047234361160319998387078930427960113970511758372825695820023039164286202554745520594330962303356349296280805603782352168101845046571555385469258076187179239557923264191281419942672823418839645016243578135133931369405998401098663496240634664442882810852995393478434214854917954340248432902756193141813403415823218856998717730640759005326964574729110412222531902733120780626577899702450931516999244161513308093387188043701253341154442709748700455934178165742174692626011337267646944036639669633755691799060262483559021097294656459919906075956562432009701769225585443268879532541069983250558979009609275339299813501935320829974108624319733145580085521527103927002231323127686526310070736557348682176100303164020255215934668868434456952517666619349818881421758424530324161343643144324255624695933691733864701840480995799233357520431087700376173982584513107765815730592854047814608398277184285167143287067937309047389275168674410416465269835323244973603096763187322680407908542801774196932952395591339951734338532056452406482513011318558832785196610364325684585375626690522928784449466012454845828204973190515166399279039420648350835065697505160028378941421016452370714439282655323796413507877590146427488306819516955287805994018287894292572426987781376575108539134133268234081904446501409492352577000075588736963734462721417361340157119973453581694387602150002336467828624415898815083719372295788854131539556633412536091535405062767212762201283518557729477250193433842912896325951225509671533123502856316415659729352355467835135266296159998411520860960355975544574233940948772645720647040987559002649573948625201772705523769729505226719082516221605292425778587128985254445222169410275853794452858255304912026223906027614561960081606750657859362094526072040072034102947011504341841123329764194553750803597767063349366810280352548638612975086327413276926839784620244559512893057771487003670968493766492209748696677236015174813012465023493645396480569779092577882857152666595029060881793340145226968303595579120426253727871140411975820624938511387068145114201749481580194743934661508223682413879425979684444180227828541457823142178278016541165941768200222106856993638670157973536730776234652979126771727504383079795467068711732495000097126035605506649408100551392372742231783736094735691603297863915040058556087989374417246245225447981166956340258152838253823882788578204714805697668822552998248096407330510745177456201575365417019316534916104303311956668205565376354936408767378399141537339866372813649941620145126178614954692594389622111671883000053935772041156783111765057013607863629532279381279264523392382484802504683916892785552013491889922952175108724844539696831285869394525807193285335338121949276921865110438421117509605402639789214996590310287831380953133637580334841995955318838283397900055697255320212265030381865895061712108978964002667447787071161260768224916734512059511962977030228522552173932231328291754200491820959938402596766329246959579325876156997188055622810258091877798870638127004753570168195032704197335848697189197174079757432018023953429267510158901050710590860892745239656705324030645453170803652700210998547484944158143482275873950920121865468880888782922150698732316004999332127592925213769131723301695683965090552812718670370953563287130529853358905216060829543056313716108887005733817665272868066764612013912869551877422023244878124687991486256957234217980405507898527269543999491219724691352288309730622948315727299001976348809698575118421503658867388648362710925325251302067551181834307986110165738554959171882845984922963095409897870194860200986854263128328365782077717631400198342638086358221616148309815408996414386651662130337572141013534477419633851494655035377525793787647786274032226088639930927413743820721801161344689260399443974869697192171506509792597363797892195519456245573588809789955150650006814454494526346597053709589507207426773941826676697488418006208893389464933206328698150586414478400914875174081395508172253644400652781761276884106349592019165208361023048353478422714355882886710244565154126787545909186106335187672941753585974571014444014866583049006894131526601204367405848303613469833795916899647477142218686310667056682706079463850518975150993238149480318774156671781482086648288096585874766236847088455928061516154850437761300118852184958167358733410067414743345231026778315271204470389838152559018568393654982915053722864806528960201867501309724882809822207439780411710792279062996224941897202747009501481060405126973775298248089527787573006140679911573122170513487850623909422664605047328970914329945574993840109787516246325194130206698834062064319848984427314461562464786255370497796738522306103296056756601957377545484405979658294194496428867278931021432434640782055214910519829480290900329746997663018502562992098652968938132177340381363660889271687847109827039130140093561246175390277018899571760660965164051443888958308564263601385852872716297292989191809791423686340349337578932258669224152861910080379186190276002771582135829285211541866510820205527321937662200886745484856679872795990280482118208424752428283488890296577920323007994705120501264684874968596153707868538597468351192052487668302274132422256754379156567302740609822823441288321547221283036903596640739531910223905563687733986267955874527866749519838574890852178577839871123871801309067175864418222887534426545563221632735890396873484503641797884798234678222402810006922746976040152596603237050925248745979591860377239821364834284739397867416255682595435940134131163244001402725341365106877263673810330170592147850743378604289812670076334662774904687933790963491931677531753011722525057977147930252284704468368163783299253748458017176865365788898074052196235384161203233619247467987270577903601090009847572264773447866963899741561637142103400460057944347959913044154976678202180485681767651476540711268705388071931367041379980755815481660525151713698370706076363130733487576036037352780323415847191506540540932605264010609732351270598128160241561478765013729435691315473819296625634058878592287099881134393710201194969154351302405974622961940367000534812799565421459263799680669030335102528109029425930844681270232719645721284989325255885605762151495256354415746269229017897565302405253656324227835865894387879830464025488115531649077729746049294492153052409543552836128329215958977106966588249043989833750938355354394337668724945848956363862447861305303967887314559772769910832091676186541646924016825087969479306013887293775573943720501652689751984607849688923808280186470047627859273008353920653986022602137729920364648491931164342922929308986382503353011469798051370604795418232148682224675611270741421546456005875228267504934401506769826397991670549275004962365340181681380877463080850664622403147226565789428790556567504162773897042805113780082820034937520806828395260934620491821085913342900920004888530009133786783337210769273187041183754947614533238910386573780772560826758335756107778717010974012395770597576054789330849361063458451226189552667713046419723104726504070310074014861100122167863631912169857073829193136241360260405234589915470745501349627555352361873272336540089409102608644105122836921187334348201335810266870053643791802163320981554236526001722197845009180752129816838178952870775809126471290737719436745837968054554834159340992668967701544845507051407970914365449940691541844573791382102073442257516764267188551034717896106351009538960074121834428306857925327369389886404459426461054618551026393529729169268100528862881570187391506107070549306727947260046318575640398838667916506741131931657877032705940619855199482880080844707128732728125746290235743274504814268779666570186383088809947192830814978000206677463988628229207687738426269527156773814571254455467335782893394730063670524947777412643034469498106971980871179841163360428600116811469950775191975219215340337353123536441674298852318034256566260933199283712540630190821686158339393398189885829715736028440162502926064521578625815155560745341874843393704820918232497958408735482746218955986166394029688373821118068297736733108891777514057648319221089532934906871936961171141151942195291340394606264779020579154575704480234782807132981368266262836340062316416045558901529162667358163080317615366936713492848516061091100592517996553546925763578494121260452308008578375030128282918706515267873116955591915247527801006962545099190339087260316515838071694838538246185027413688301512349942534732678888021127223310597474712333889257030005454951939516984614212677533689994073579360971570531394410766585607236814231028041350659276419127986773070377262894173653840982324035854179322812811427027980917929381597260000799217044990934130862871761893579677867117296127402135355588667406550480257371138239942521514997738207680695968892522767127842706623760293178289582662735318389329689514272575051702602772086074686393428153498046668861181476999155647009000947035964446255377612457031863652518436559754555489483045305765906585785773308014832426348335096340215082255277320941041040027676721111963693550354664472835459382602377450168577349185690256149971018941945175403159105843160468390893396794126214987942416813079821641876840371124596717697550791777230722357067629020867873296257257580775227319561781045486399356976885496316740941711094638955652834976882715852311266690439591474378674140540891238063196193262748074806131241215196077126558649595470770206878169573322357141636685273478271699801797372975466046648592284826309375140959912701828507967677809879354137179778085848136245192054639208580704217254410335846599545081082515019712186838881582836112798874983647152300427849510379010455576556757061660130490092079689037997851643858473295979906035316446085478710036993828852299925356788286531341341570521028422898664079574392207578984263217261129347539563222825043913525543987655681094571482773998251815908708009088980149580917812464329638390282611724891213017451617023905756226791666163238089592691003398563997533399773773966406229404977657197654739400936646358340441937478411320177349086483121225779612487323016701434369436344685069563556057474458170434435374147829005511410025551547242912073240781162977560355413684370656148038260015936751189562113949462814155690350334441894234691216867782193439053461573756125232813414538180354083426947932263331767560780711035038922939675353896704169341403382921765412603971218267366121984066255479493527323699126309555503146129098815184337194972534579804395712389603757559251846696957182276918616336625570459737518769056427685561928516616621545903150169820131835517320956771085194052428257901199637567054261783617036424638773943520061709543139119525888075695698083011437988039955212125330256964600728993217943575418081871813959466559713359839770561705532467153855595423599003748848184542908438735562440275758601749384345408002841304871082154342665369834248358024610752206953144502544312519720373491204334554972611546754652417735927691268088310267905429914966282776789905881498929540103067756126057534666324158710172457291968999920230569875281931926093084142890026167844671237421848580906863538410881077868044371288319046598533953440665988005589486114073429942221551276652519061393153368476993850328975183950427981628152814364714995311386449619810813506815808156240171303489655012636490281088914851224809358248306163888611343983445984546431857078366386379743824709303218110145410562700440387180778947592096902545349729061374740420368974453960288871416835306102557544967225057967311284604254795912216082923066298809789272990725572055568928291482314993015316075523011102394473875109615129890285275156891225770744812711464357659924721115770079667630663332731598563340584898428430297925512689435233456800027034509970791897719461281591401831913462677839104231186393149593320460925289354362776606134045640719331154943157885567158995711471975032011654744935449625305008853371463931996314731022485062671351068714580514706691988596493037025313398017916958242797802876191496220907415567450631891502599983250386425663288843955403266775287188428638188393006239519390053883669089311973373405627833038070146431171066434009389910397620139728228588449469444659779474792290999038645742486472491056577968312916524994273429790320034852912552952088317522954596688018748334301265363868897368328261974793315049679958577504584129199069841304733346412867283656677030918155811145962903071704238625190727222744313655898628623663880835553109124295519881817029084636302388145665919265409221140829415449176844835201990107611425388048160960231243418681790314120414323745953793177948454928418785519920413929214932935661328775843978845842292161398983013170488269245935774262509820317963036848059283763833531210062549344759363913954680666524633131473972671778180050308851881979836455714943652117718175141686633947967381295492041721043351133377352378665879017343990523891155788574793119464393779812700904607002892155455200616246828228249101991142618365691655841326748249655195047519493941564358642036734284452960491575145467333211294353240093158956112896701134237878745154317927819338754752047120737719083500635457797596847012642399454055256876145756331678953339024876302232657232078810273703328650731891245746817708355672062741711376769019848524453388758073915559606320652934850653329377690074274716100730040595435681342513550166555147119152475658056003213754970622938633898454161696450857123977915825914168433276267050452728993721769005949158996772730058174934617330737609398154951810693202101840369828302360541827076554546923610060252145094483884277440897615848566058946757756732413988270130577463376383405319215416465736262826444771940043754492455356374419098152560253464606050781879311837361616459734015947322074464925848329716700020960969612008932757203480153722345848213868332594995934526983501240857014891415616769950820539305581233880226742832622493419262215919657480520815660897329990941264560342711954485468687514019898465813651384932984151175830997974793391271655980854738130412111137591133975331251826897502379478410428814359241338059456579711939610492792026924658739107442097151001431641401974869024964534382683936504581274888246424214444923054475792513838380620083844763308678543252590824555141263587965765510503259172654467037067529139998150263705076105497214078608372972767766276092226555337442398344339334225681773665050884312670617480360528476041268526232770352008106393773852922823815251430429691835196660111698171580856856127691068185959166866393018704326019159878216158702441795571684640167103318144283506047540029956782520418916086671806473834785589371897398344850061063794130510006583820216787148013740730976979203198694561745350746917053995713214317800824899807578872925891898397315428321228218312486391710024129121793436592147777942936955634999366755307878776686494151771170422287372426460144232937703212300241635073120161254545871343478745926507796818191230952639194436007491133410083083196261906549709613145663281794982841197081667405373212768806437929326244318968704649739186493972632678642866019966291851072242864104893590823957700144322263646584685952929226879493818323480808265698965993920335207645796352310460055691832150054116047929437031691671909354054597754999135441832501456546135884665305648803779758455574973803280519553619255152978323028266823828563024532877945814601399373561487689841382805573061927725143280502950701783425927698563496019089748968042373658744809221988638465733371679536186667354798997619056589058690815902150378773952742736008609908534682054941461561482384006173843749818640374807856411409836770660506129215858393552790082087811001464537659434262768235663803260039065059830092009038499831781345566623016075962331276179829764388362198431856517778478658704271723817525735469453088625395659466726146276538562971000649279958980379969052061154868407824568446450178219100845715083928604380751320120513412528170224391161184312234544835000004332891511233776266881795256986547803969635749488630813697913536272633265549437433718727388254429595398221176188506146352633696038203661497364791167093117314896694501393822936244938201954700165318132498345390085768444083424416708251402145325316298292750148597105584960833027253629737505411204430043558762465543847429797547807531107639910444366318226716900786078056947963754632640116846190490274744035762760594120984553849755321738572772033134323413449699848075792982280068093973527177311288850800748758798633902056222612652560721816148722120776486746614310658426562305632953085465266444103560240837454854326478670179750445607976442168425367252124749584259487396611280713227779919267183785742678816870996123536036418668415150506586795720602649706180677365138909058598311519538499204759065864468653190429927528869452093099319741284797842656302951644608119768151577501187910643519410644599643138604231393745655830875599804327563955871629995661609075668242415318299229884586809802037223562031282733992195920970438198439414304254594582516161095865640534030427515040517614142530040885350954758119231284829655365587199393989495501831921291771998564008104651648570548588716904346970700332735090465544040720026238443864055831313901508390866603919231208278471478534133420294527782471487881644866298388033712330697549500563786227175516371593166878396757958655874457108004755041804314076521074244623170736864440556926784510005240871025822676143970269078378437079011459995151782633551610747066462894699618852511111403864458059335330989842649020932509003863707230970458834094895451871451294095412845931692380343246973154832236581184595361305373687385890204106088845351913903697727165637017476886384296422211678232567299951611639113006690255434702282303030807622194184871634576408008543715102264212672587446592326417137651986685716116790678047369240210966418788608697995388558102123638203723143994591351306501168063736542988697619529865232165224538715661381160688227718300398755020344257597547891768345642306257892261725484425714925496093188808652658910490424771008576534679548431844145850298993736287065117328557568174533815630279413040331408746032511143828170272733986810639219391485337202124879482758598826488339617661017373160635058130554706361946772476750215087373859971311919925147650296019858100245134952523526114954767103921810791245985169812879534377091095566472183667696742306512909222955282034333466689113825656681355336624817632146577673720337290271479215996592550311103107149524092823338758731080879472644624626179860886570798758400194130998841114750688874482193516918946967931233678698549396453260830700810652615102721191341886754947213183197863121992794692441952288895911467384152233980793539111602671909779140683845072798479611502131608443582633486227158810291204655387400733280906723731903898249491355224034026632679022086517791945025878609054457207118829452908243921056929041219439112716212338607490331216406953150748584038025541128690726430302472590243502043078356248080291223814404308719979612633032404012969402756743515082340426705639821838596101984529463646329432709714950058553829216260750359001504951486782724621734557129677390918880398051409606178785869052326880731334414795358675463965678376284728182847807815920950377490635607461241921309534551622797948012739453302959910865741950939796418998051963878399505146401630194794308621353878803132231134554101503717896279550806273031058978113557251491630978638175704598643462087222222315356090733147929739584097463031448680285347421534534965583079005891764214836833531191511924144901158163547496481080449410886473667351186244063785986656625162404545316049437418848333264342591652650689979446812056156237096735585896364257847642016755967439518586619449144111070693039720346400611932522411324187114304822828985350756223430496404299289099732096667536344609849081533018879513188499232525122624738429721589471964945998499935247782272998938710859188211307359012923821492879287369212896077038384642243665352839267931807209142679597231538579641684352926742517299721997604364112466875359259487513732535324937467960699689766181777013452510305957091979348442015233949552242510890418809340819415497827297123008061503246139402703948126555825625782338318536606347301580992466169873425156725011811179747883482190789665941981950333616036173272314209305966089463922537208378083527069711490573082313507861630984183718664685200495781519325605504746444715038123070445628484811496825119666684298152862187974821470063543528567294765425727735077640651911224632057132261742745658299358903817515713488456288273475318903025861904429645345637751144782646102136790249717668512844619123600786932460881786011728031433636177824215120820026521042622937502383420946367088965822596533190914099466688618103397731837160191843386850336594899793907807900648276220759947915434236869764297833576587030213681621788293900116153894005369227841715414349168072513637879018365706982397619422354729487085508201091317553088835962164657923316173927540762750228981061285157493102167924624590549057282498487521902341563951878717650747737976277245916757553583778637716111829565529149105014235531694783996445460935220457991574674657637745601134935659651504501427491057522190075977728387495435657250277466636082471106401464186966833224162794718513121633553994873231589384915938141649825504685854038021242390493455496016591916041326196758272066741789762633019315921601877780022068620145307667188926452662081082021320766028626901966001935881129340670594895726139400175927029687151055873877569053505368350884488249339984584024502750091199797727013790683437616618997547693244307096999447023640089039115304931746982498078234768518679748949618228270468365048186611947699905570607875698290217760230343616125859137782045530147305214876309017093051959107569659830578324205411087216555677955167235536103161789482109073201056806301903304414363767174139319174256686473837513936959591020637828346935837753800262163219521538848432427109853895132863542015784043464054301412690345974733696091379271663018634269548630286363002996108901244461849908975298227867172599861366788383131385058370191093657998634869880567545250066187952727768502189747566466011315484971455858669401307806576239799879664040525887758073412614784000138715342648551225127808887658099276195292511299332169499666696867140430795968325405162346542552639122792716395528837989745566492233289410717940988894257533498830602557463078353747843371239839774230301395254888148055501119088866013009793488030381784476940451750091272788575964411484677733989695577989719422088149317757054172365123237461772513449345846272935985648425684701389775208048950795420405173699889682568495360975422296001943996657873296878101561977938830429349145512416632721574249631581588328460909342918283055257099664691199850791273077077586796533522051045166880896842769641310868594016422874845925934204365874579166915393974001708392071342837441293548656551947051608219577191115325886088120234573464501835774103263951069946301698067004240825381621406381474620494582784524973964872237871282549302969413025385233557509160576608839459787617253810347453493998719068090726079013780120349385018179434306408283884347274062014675085004722768535029540026261287872576377531699424255441685158256073327105623914623784652390086836414809930180027969435267841569396085517540698426092106132385599714977344861155808483894565079649804330829223663142006043383909943915591750431160774133583476595895172272740227370777124328713490001059454638955522699980282356692759552043447555074788156810318449718313734114846430352411700853075317337402861063604003597757742342852961116622836593271070082420488420498884100236926407354597791308423091494011362961672853521165304438913868046936346416806450015354838317000337688353293968159415015277096488094775591554580567914683996484065672053285909340241083740416351722332016859189959156169928750304674066191882596982383144284146248374505307295046914012410276878775513055142655455798714761544650756232464971693644993801125840333299426785881393599431677522916376021289752827491723535738607430885086138665584540105643102843118806328971680012285203894887703396741595328106847277363444609569241524486459528362515407176889324199843569558210401058780768076774096166088361929373556803285027164923452938379984945944515030763094940125645028467904923005611614906584206876170845122152342169150187761912275871634281050458774128611096670524958282203632898146566072782026024328186562899373700805516267419054296167831886385479254979830283504984544778429947057183246753975616846196003826269991196099734750311721957902859575075572664379235856221901190045816965562573491811959587949353292067230989073765179610196812736823706321003223524692724893324286965561632529379194887857458253778548597575822474862909480238101963604971415361993015907506214632556698122520494135486403588046349820616547214647971239103012103233846007073155804787971177267400947604022636840647958605277763445065260748257621657545317684427278431408684771216915883248142898156142106381743792003321958744042672105489310234607803211218860873850973447907060802604107227594690544748457559847769280527529277019895992920146508826159898810878996342593379079856321347943775617993702298803094603837377473926074024692976541474624588076352704350750102481428855583346713657151057981955327776545526194155712756513871575179605479007218809516637366076536964362414817299294691745978565522599498768241149456682700466532841514658102084259484192948462672289666485364855987129531955479165713006868198448447303041278363615339865180521130506433320658009573183938503951170041026700012639315262507217016313322894221359088523787192120994012482100085448375952961945346139809533001675458880779858404532273125919268334112199846584464657111304241125366249722893671647865237082200176313977704257089188251605423299282908425019784143049240298042913594170938427479944085804977568215915901007073825332427509657776504767660511188812672355803336247549068688387626833737949656610193032123485305061663053991977885461139102949402546803788555640233441520037097523123092299818480145539823579358651597937453596932540139615641910815041811983758011131601375729334646946177272934552814174640394804167762465794089731239154062686663962034146981986136655339391872054696812575440266052556349079677787713475967597213050552134919514496745786846691636314655444309688181242409478812652779267961117134830192141097168647515429291745614330462805453042732037376344460956562358199981650373938182130652560835195149639096378542729485200128868471959638123018114558608025803965773311342323607197115696785641937882091350590009281104418430048806841839983363845844064171570241851116501074760755492757654116864691890337053730329509086545948677402179888842293093358220530760778343999676090406647117013327908942578242008026376615743045967239715114611491190234186619597553039557946093623370896041472214552611053178336957592591992080728256842103411958352384311725256224677306601543317334562002837501259228812372608545643068536784595292091132718175018465076972930950944914716768747655710598947480554128131977214302345119429913036780957984415330084959514801731527779254251600656545682852352133125670774746681658507321444268704767507105031817531751781130314551468089206440660625917497308641479007105898571544312234434045004233134021341763445648075885312927203270151228184242471785253099575156487130358445776302214496601751446802074817907727912456914115503191007366748819367609943530103925892752766353679699147092841747757841274227050956741205804958806268297684963357173475165083666283382319027096331387176926139874217087880916288409898479337064500808006467894343184984362321288397238460020232545907780743780448311201085219680313393535763035379953989355528421596900824429154423168588331738215600730400253546548626545152845989952553340852599064792894635786626773251862422606418146364057975883315997257646263494063663440280841382689575141979371683486944740226059754166256623862943388588486867900512427616842720894419855614343157566934214005069850311749264526886162231656521107901819129741627522115457548660553822273928705205096676170629212067032043473954551595172287832376143042937768184352005504442596044471910630131115179774384068630467351146899133196228292975942031305359645678558888965212507444554249558952098736970842652014749659321367945229093195982468281357929306251117360022454218736630765096229500067151774868013706307371044582417365509564049986490718008898541818251351307856042621338083978624945179265766460022591644348635483555495139403077344425369065905946544922067771510309107249937716929047272927247299022758994347223677518725539003554288894542861740322332145671771066442297997537908761333553829098449403407170669013316802293217280058647099069462554471898921262254747357488026825967935394252459412312360603456350136976128065099783904426458336948542491517772600677319786323307507694241819841003460323531377047277728387162110542246914433024205380587318182701006945628009414181692521409178054274562403618160894141162612227834260625732603770068817968811724142027051765601818218728429523339066414200131319273433123055296580549521188810204668222427409801112722203816592430764757847152470068337974357486206730004982064293504185889965967990396762035044602698882271928144958005530914144938982109580278723284944650376652722059488156183673408598907881560197583265774835244359637291105285865817677164525381822799238022660066566754532270741942309352233346658152403505328006229179090279203011403731076589487030192757479124121541815690221232209092389871522470728426991030390286135147862041541819397322068086085202010792567889568792588656946395756666812922860206338626732348225830747535828017047499869893246413259209744924407933046207455010715118342529044648440708337867395722674938833040312202012838731056354133325813094192836446943206173542086758853207385894320298977155242538919874099194467569181412453673662673082607659242718496413985592929873875866771538671356569787613763377007542870564820595542215095308625731192058012804418753329540917195626451790261467860408526999346995080454805784593501047061247599696708058109101990488684129248967280226133792535317002008670928805643046975097251494976426390716917792472231452098523833910657516798139006612319406373660335899765380696813292522269924620277548761953581004161625908391046576383549502543704926834189236262316080157827794300194356678402022180652645521810848128515796145195876697549715116062160981093840589646779218230020863419648651713107399576724535978997458654592178937808835042410201939559745694723195698739921357011167644919790927376712813071435902072747212343727691124215190367684558905311785314306134755839256788245762438085563400913438435617086729899789951094264853461624663754182274720701871370740412988209163887365203448417642373373509771121163483988262866144728320167257993050563459688638013109199255299690244912107984815706079900437365853954807928248072635066664509919145500762088414326323379324303151410585019962659597019154003946623950394118684459828189808512807654524296179567636571461791005563254064373575290196025309415828030418132690814375284678916502788420371638541689636494666531047931636248908627251706038426025586672031775127905057673189296376047673344259245858443497679908698200491162758408983597136021616677763425862376643567781597671604057480634214069359199099979930645132013345361577686090969076795347616031351927377348679163104700839651087830045727808067153644059818902235553709968763134986837731018242667828108517139548699456699566785511159894321361130717618916184302624980966326656234182949364180742236265107877701854164089796959484554553461358747872453970915531217504016612164060786092728952707466380861079007795757258275056497378228767741011294517397373451741620207684576768433349638016928665018049513858065079159846054144596614762663202579148419070174025353122260460844259916474779252713863105868268383351160050849087401371609300064220942785806990055783927859668479968793477157598611211109451838516660236668158525018407821381683454230048906838526958227120568718357903347182416993719855651218197590096477091490472915832982713763398092734333888053870556357301283106311608233556970471586861734859797191245606307680259825116028263824875420576642929875502924975400714003396151278072324903352570409650045628568020602546274962519844430670954690427819376750999734460139442095164904019510194289795942940077691391173052463342789969582111544153898996882655981336076532394598408477298044811468764209063410147277014613639282065255568256328774580305347689057227043525998663647054022766053600830760716415412888144650600077367221881698778496814395949724758162552418652280002602411527621256614503059452635245302679541131333895185602885433835151239113130542614460646092773425826211732974684888909163269485690372078083014809533235951476815232615753601532322826681129684259063365800668515642316108795715634078010394671556419038065207388002379303157388269169185792431424224009434244463481958965500656052285464679502578668753194678290904229011970985054924544692390266256405177344800090291193627795460561930597392111194112725819910982976852567406394194653521408204927048275960458259415683211184186561325802160953537064972761654148612097135082401696457835347933375088666014141580007519282012356148401002846404933459852520357414035243520744035404556379519113968832267032783486554004774787537718993131475418364014743115577588082583858329020133693017064784964625615156737020338568363223932134182277527541191456784715182044141017544141443062624474391545312698236154299166488754903150020040454588552068023789696468032297271820717021855024876104822851472120746029624485132917513595092173389436377948365236321713241221613748492018714648997648641942136375766639184732170616060460351596612851450784106773391434175173956009772391799681611357450273022816197942125672609725301837023139004539904020890621087622360304474883375638236276422364891150158222157969889232240580630943619299965934472642822028176962027266183478362829964091437059300313230823406687064340640547260297340887725246084821203442955701779140724894270863105182677513651690823923308156286916552495891016085990875831011411637963929525266410809381345389165530335690149157084886307828637537638155204369895985813381280035677756525463448000672220461973720046497717656816436294829035227604267089918605526060483112031356227310504705467070266238768037036145480105889544198774720449574299169327369481310846833523536068485826551234055752721668855069596422793892032693676314778499078997558364754369002553231009204557339746319032751973631723631598139614698048611725449606773260158892016175417374615140518543005351837110785794867966456724728985717998019783640889942724844389666606900590704794493836156596448179949958089589102115533062816184600754155853323711661372922908098525579802448151536541076539774397326504632972389897189695310932586553017343276648072166827586258515846708524142323309779912986126632471341193171066479506392462403140205208739291530383135801930959988994890473816797859853829029960727246611114320204388651958332632994498141587710234287638159314723175531232776388367442696725452672777335550933874976755613047631403531883772255945565141919868312267017007998160752817115915433212582513737748605441352582228854519339941686541232804586406666628041866936443547339106462611153858831463880316868541629583120632773666987702446995080860008710655907810273559740461613835923050419724790633783360416406174197534030041627144198138466216732814521390221476211590016587166908485652755412740468913034225616661972603063538892775799988992857154415113770824871775384664067699477320329361971866190433607051949090719744390069945623413783231558566385834469591537824177848221328385701283722572194518166248097976006962227521368913299764631640337568504591915497073293165752741310953840667382402891679354578555791682758059880627454569388422744263146207046603500278219980877556201612657939697435816299230996290512371911159186921207710527134426816741697996856060467887475011902185794188495624100182679890981351576918015449943027879165487523066377301075311737089171367147764154143378373652256445805175185028439635308269155552538660598692840917390504670710740951200301707503524445121914521657638252321038191788108426451391682883752840110058297057146496796026868321544719321688270928691278666428350636207424679278823787194547299150635843179053512697450058259989424224208144699733814804744055785997861228418716116494893332278866195040557876438296473713854556008175601230666685909651380388813065870057714642305766942132678632764639477477692302638032946823970286519104205745487483278190924238668832956637949524894376328099663968050755710462393988420626450783389672900732883019215982687370375150890563831083677373034773753369866990110324250906557361937612705232243723329215660122789035261812799095045120102538117618559944919793410002921211368773728033999405861144442175411847806691933059662882693549048387240224500279123580463440986933620625592203878859055879163764008595481175383083710697143524039745584536938698572863967262275952797934736386404616030559557364704368930919904991601779493406219558564307566671012287945182583278045768354038250905531747060183419125048872332812557142596744072223507385160180852177255763288200028873392309714092769034756657833884588680674105806161311824640954337970446907514947298019438187876784533723674580739250733936985777216575929467615713881184716160445610052899328848074521645609398069719603893513821150534565171396150739113686701955822500454023250355459017736688390090728689853055768006827406426580099920591859867023776441047801455325883906775312932763917593737428856070608395655113867235814891197754364224850317695828590374761616480382744872241459495655790551757576796866428974188968733959442368140746556481324631776388763558489830991469260569630235403586921891898303118396291713757806582914267452192956558094712545559008263381850566445070314565591708107734857979664288584456544485634687231882163348109323432609375620349404980715788906152250503762543947148631380753731212256916431737782710590494865227131381472249153621603277949907319988084134245969639289362143824986145544677825987111986590346906145193659332453831693593512874330255616256432251722191770062435896092373006951163042694045108059289075120823052105677822419203448367674769034559431832796692207149706214379413877488242779678663050575978723392188564297641977006572453690394684897116969872839860806305793740377297497900275049944138975603193440527794892764502173607995329322903869812820201052538622537613299586860665884415906863169182362558445332124150270637793990705890801767601523480552963049225664841067743654323590170091920484694042407614069182130267841768582471166006331147018405812411456408716029462736546969351099541058713766246258581277820301146157493834383415682024884810465084117279598187403406036455767607110410754587302559435565299417704467000843211669873592781085152171092734007823398186018225911640586935534351410215320394742913903514061734438958571698771597337154842073027781031103332904859204075196555471949933530931161841197839499477185727644937438911631127841568128314510870938593080915844288812793211683312248459110823806821436620390975275061512017983522945270612651625376828376603258021466208318477048584347674473385796502395319741751563993368513845820158094269557801880167402001594954392422428476764660987941969515052766185021786997559103991112733322343014178847557421757914589020734139372196345055024555711861990467099773224419615624036635549903400962685749615243685210198672938710840160626359275900995481684404604362781295221970742752666631370124279103652309904396344674860049394275244152143370380977292908915706433081944879828812441328716395593866047058675110421352835609712821769728413324658251363855147793401357355434079483222474313084386543905348662457791297428676088868838421841383272552944744705764539453918855275901293400111591677079762356281103895086218211635044545093018469059720219909654493913632067920998888047413168444972951818080321169717681313503601649116147168994959909987912439547433374713952635033219832233579256929240843023188046235668483724724418450766170499078910370134113936727483812360429712772614419924477725365961215741363413518950569435627977025106720555066543149205011589904369075003218598824043664440937793026498550646365457498402386513868328274003702939815008447901159935247132216395408625903700103095335723510013550730883167487094678469282328680761860803440029565451052584178814333325667535421549487591890045590082998484104092052906745419052450730065235926135367747286119200686546769161362268285419982977919593783608971231657079891006456346672250351290028546558365864064871284198779332500507502770212170970165734478369332034472456342713220412671146085304627827600663453527405081924617529707675545719214208665631284814467994518444196503651654929699765335911554280766120010481814812022273875712234021915681307496157269386136433317432568202667854991864101570482545670782284560046635677481678601653106487439896567988433858209339123505107116632922561830265627491920439974723755597382417548118267730169076574777574326334626734466686017973689605936653591168333811655504719901090150381137285473752108704703656863101213506666935603002869108199901162497926250402436796839062569138892519382784366800550374386133644066712377833447540279782178549031342144405914967855983116290346831016705360930590710652305469039726159924531134986205904020492576326694560076193689079787865229572932982444841110298925040002875599929662944428129345169998569618625352311354632991493697469756775231773667516609469147241873350901701979736297209533287276913354554267513418400409146529390828372456800387339821198882353386361372475827048493910607957283519094618239065154763728103856104999647184233199361773324193473569121387541732517877995205026095459022188624140079379662875888416069471918806810371098539401538202830482198112487633557210287405341176714416292261586741739013195799106140188065979615761304864488244647668220775895069603016016906992419221037846180050730650875191201872446041544917138514962047296110210846832266587593069147063124902431707953611858281361510948856705908141105753560350924818256072336142032716738536083581911339956818558073146079717961137454402098009125107396758999897721478626744797302368645400855212987077012099470925958174247577477702945190954919055951694090052399241302588669635721308271328377222107786946303593406017877166973958435257374068425591666157535647999133699717454287851562533828794354224537578648913051636085122785271259790684703801814864270503499231306030249948234405724622753396615176097524955120648171967081283132541471967779314029882159573745701831454592260902228900007656183337778822642728204558053501946561451742848843365748146203481667456171023108914398647479351241287079876922095124085387267005644911605013906749959841300121771814258724730961776270538311734829593414537146621431402976548554582156844296651044056270791770511890663160629334706592982898358110248800029950634200808173701565847064452437783594457033866003080066648852312007052402916461691427321757596264445983759970410130527051483510274757062274825224863912235513718473525078928386181738659130094954446098777912865365707097336645980170837605145228342137652258705128226868351122799920405923529862468278573913291991513804783852503336912736094833950332604055390032338176989327744388933826333684665783841825190399184085964483703153966120868666888334837286574459675774999920207381832507764117552397122692602268678715919837439387669150102785358273941352068786378582151444218940277039705589038020651201181178343171993478719646225117632058431703281702373818013638276856335850544335956304736605818096500794980644872840245000526416131820676552400007067445267711516029472328753510554454133011491370222888842759324701667782628671785617615166668697632157429271172267232870507271909848182747939034942664665085099679994923825407834590074449343838450026019005305509826461409489157816973603306457988958212142527735763007212349399692226589024212661259828580201109136071417438392330256104097311263719628193341927299854689212259616027010557280905855718812264084683800644964435637188550656641807901169412572328045796801154358556736739027848047825285705115841477378348519460818041493281543706190271577072403702660239788910243138254363829342753670059431901150082597407191088279763245755226007255591156277970247597057742792098255797603191926454395182971631473251795919736689514855094021583237905167401353708692282725803314132023640789283072422985290552535819388818002311857515652138750439500068832471994757329287716273703831849799572998257726397915292581299076015323824383379763095437595573357699515717370291867478272891550699761339065079193691537663195366310482980317718552497274858416658601227979328366626383854129618139671599948675737668041597629117169147284611036837715323585655941510178988002663835399676276840275678527181368041520955630393044762733800297366384823723734916007161079153745305285924359335861769542801657861901168030347564256631732598782054807978796518585023654496026016534128471310287643325667558617119858814734276998166004797958702566533513719168333572109475368132879118436912209521280736259383460351007474015379120994385400344870133584031289968901461862394662023301117252696848271656672541312930345770910661820963809842660069822983698529719692678517058793968063043789300644234113250865884469779377222459796844109202818304197609023092726540040399084975519363308606040674824007831497512071198052094572127904938066864112476063850562601947389009772990097676565299624858871983208440981787449931531846829378499577915667325551124764418165373211810883584933596570395152513058494499476715341233201595003434240062649343800575350719120965325963098083843214248593766981913097820967098414096380769627184078899586065219399910091022535513452123608980387502899868721781283806580502226473695130589846264986478677277380685350970105602060992128946305879010087281118787241110229509181292185850408145113337515738180722629257994872924335227412893737364488603574489862787146748780325657248739633466533820402035441616389414507941198139452156327022845919334929188388664534855038810830759561994254774016872583391806301428938628502464203485583983371063414923765023128451397869003236739320801166072632208809970040249153056910318561974167480378302780191023486286138395886410476447621337053620962708679283311928462781226084955890311199780118186255379157771788891457548415008539739484515033098641671885137514829984402284014189352904437961542904397383107644829014059101053399424538438603311157229834616951517830782882268699502839255081617853817413753545154686482936539490435809879215643789395262993175332283449495384148811487795032902973161316461176051604133550239952369473025979008987328871244833250836549962882623795417332213706810429092617084443604335151693360390940508330673747300073534835193932129040075891138163357805669026361386010049595926598446174999000142995669638125395991898525031430996616339886432684657673133813727219299363483886789889386170593885060851761944668741723872277881047592103751622691217471050545266801541666308403606872100169545641213654454794922895595615454142944558585138909999079582775821216941513345846146998907494857124262320670624815891458199997688199174202122550662019854075859699988753658468395733458388229212489763509466962787044312582926668922229981252947056954331878894312602088638743281698786690958927987664508159943893812044279036831759246683356883545128306182626511267364604669238473080367248847452481240879244246333106093432478084744982377471340990565297911574764299455724506286521401368853863476874143286724402987050382219043770127714016560464512010967501444001355806822873357729667364257066066472710555857739684317776953225246329529917786671108344463218521671206477355569016281893834994709690951579942759018833147430403629823157529457672232307790235558996032478951542912018013378671677532130525487203998475402663601888681337104710511397221229307423186098308149014221521418622463447537586155666707049065635137488663095525587482100513188263238169632778354495487482673915149513794636636713618429655702488116998015674642744298843400014673497055755935075870788834101406979258013899790795064554648482968116342422899073346503518915671144551000031451931569888173157351032033135797331521955822655322549769478667529836718535152797026067896150405585226244670286547805380897827122249887214009572327329432096807903425431734131584596095554441792074602206113621582686956506026927914016342389569684659996507358023120131523988421942115092565579955530463399931610969057978565922978744114993130098076823997469944660371891669743253790418721298484502472251022747177709305185019650386027662968230331838038978415578083024372824293657414034707296917612516200705564203600821800846952647871458000289056818321709288855446311795988952739542102475070609653084799248706025708248428133753468389425915922774377015920774260118974333475729396064513232038752093196668485975993669041943736809353792278337099373893674750128316033344654931662197014801985521439808178780717173424348092392017346442413640979005195167982333167431004826473856990704703891464344697167625653087811465642107646922022720739303660805583704038274760676263058437323196424311590979277742267457319881836441342255185526908626621643688720840201603300100945370178386853832327055005467659543529059118912942492419350783518177831661435627983442911337109990766911628312747221145424651207875725221878407017388847973739008212826062394208455216417264216440607496059087051006719862506424714048627290360017724775612335363334829486360969029460975482242511488482430842180657132859660352569384315233101112187183442564946388278812280035482787165310346929977376988240525685970516268811273135792158958590005501345649985932732936373497825159616093312550596305876925974884503253370205990538180081031491128999728405422356342472689391745948112545512270239492644008785683505132884125753315623025797859860640247291444695387064043831560381282162805765666318233169576005247693927352430908400352979613578551944986841301286861788595166067107583342051318243823685848951005305567488052641516873988012095362916556989800322731602803994892705281410098573670897824133546283791655753324754227456052168528146874471375998893858022061412481028778213807294498358364281334843603065440424363967957729629953955453375324639679137742752982949228998972398858389481911708592082089714090653091368986723395706760022703301071945429437589386630089506542156936427128680610240965454957606792613985202791381429837693608980198262377181626792574939872415281556096929281682920693538745067236890790584109771466184148554927822839203011165755969486660493177127796285190517549552503209006880730098061059416234242847607825588042421974715277395916546523931595028933769928854943437378536973038368908890064332869140924520056450357037302529758153991631079110269374018665931084848284035366341617459584587931910293928484408345374837828962163797204509816263722798431615748885953718479829429054294039295051808944449970430233729920570995497609722616118734845140652055755077353790213746192686355085113369874312455523619471572658311957141119568223550506602541527837978515943041897173979334557427623103986644973493753929409249398994594660001943371854594458560693155334584307819117499329934632176169009690381104776992866170046559426792541166549134859760334516864899406387052745384056734490688946778818197410317664562529010781944528760794865674312107842223073984834804038283775395237466963644700557692480782482078482788796928025052097393477382334250094905868435907186115662047574322184346423505034681685495633615184093981853616122613473669240805480806697403261731294425697971185102478249906508987766422811583686430437476039292747342197898103218427902595484221896958821355762364958246417764758750910705538396823937524093168543528842879713803783434350654597768066549297324633554078188594245602788945554079224426906708401506896431619099740365493813321101438101996969944181581369930871010674179861432621440061196081703252280599595958657845272308845633127635047211767041928644241579762437852015742812707070182663654114301106840912146722720023583936591900130096864182747090096803601247330147190200147172916121705562504301574010743476406672089959542620456943112086934122145527876541700679362278442877523716984779461752011832235974019176686995165420810292119529790775491615117243247343508778432733157042950218625129529549907403992619196445401722400231055814126188517165052365535313770320735615387023988525376781602404629365052814557523574499226864564749291135176394082732828411905344684611230392523096111606953615775351698473055326175500617159067999989602521749638411737563917976884304433685528727117276524755709839008289438784513155916769893628564340969356037407286969700109554437552536326822514137528734149143997376271702261502379827109528820641770842410155267676947931933723458623443330383021252286284410638609274623736501854643029193407996202744764759883227222839649007244734918359838486538200003922888498022233259510430388755462279740807627934000540982931079763397711738220963167418761435273763016512198294491099440998314331404328264927022889163756186766046866862883365662550012290324286707488435618076451097692966212454027365845682254071480606841899634976916565614083578593727948415407604447831745241417230059908527065667699180597969746812136127389211460629623427136568010204584138669350908889217523266507037937305114292522701546936314148999821387134764014292998965208405071220341182063248562014367878488227188730827428038919720280324854755256876468859804564861908494284316006530784421103578777919324321336718153308836085189258644120232621600146589761074260336841421535691360882964801849267653982447518582081890266193639090328837077454209299398672368993259223510982682122731984591698663095715198119004416763077459123410900466704572354086613639852021078219636487609499292732594272953444868982482298944006575362603035748009488892728538584150681111795667000002200446839134800408803715313306045307438098666712137988881142603631160864885592587104982381577102395287185234743180281133545417895606027863874322276419776288719629501871770488872788739749217617608741028143973151399829860466976445283811505165962739541332493277643391808371809508404160774458165930998626688548615385148360158197907150188505856635749699996045393226674229674079124927038978227253981658839392810995871985145065692789911688520633535146282256341902698046793323104438685932926153127017304643639847316366308789174490865272759826252064851004567992321581134160281076604215559569099935252450362865020391110471137165752295117483107580191781528261015984526285278362881422819602935557258410415147826761635181380613292680181142591266759509701367185474928320060447378936656525773901592606772498628286895527261375691104723485791030297168565977167912530604700674493878951973331337124267490534783921990817252422469904944762771272321852761909312323903221383985456039071300968741733774019001379736781375730497866245078957091314853757775937148704247693862213185154849971447391860570246837449724508882604504195624492225032477471881468608534251644420000558713275476139876901127328813924831225888242546831192332273055705969158093167809304623075009088763236251697246670409840350304475309128368332989102610981761366307581107730212100425550236214874671958972665958676072966150056346572027142559361862087199729986237592395125017824140356769476895517097603990494760646078336737186601042321529935432933262470341394650479097738273680919179942513720799439944179289613454815497236695465435355708453100164259017690325855159762596363915218330813873880265145456549771877551522795528078938678131429620679197198247881371638594392059006928611589114869603429557826259408571622628132495385049832426578249713599159053022653082143944423419883355078131716876980683717522762956597669789615043852691684504695851304853970442768086311933059661003156167266896022905973644173525089795507091778814072203724335733638054138917758137718610778605700705893769804583804123482393900394122287749172893623331863284941122034233951219479018112951069734050153526143188442896095864533113609874013510294789485367848280503749119109986666631000681340570356612200728251152888256810123027713366742997105806046609852647399932134251127203116508108653267878128434728150815306447892837431890176463134308415881074737068200021395309052165841243395074995030092389114457393222841292214883193265722263995198842324023573473349247139420840040549368123754261683813941294920723688950500093376125548871289014702243619397437780218282522877599623987117270593319130508153305751329986239336167234814536260783706947917497322162936206363247548343231410105794346236852218615722066732688261439740012705353239128206191131353017995843663027033332048393743253198666029950955675317455597634201532544487936179312531469016450097994584728718516084265756014250487084499658967359049352102006552651621954313517523410569809584037685165022309954623821249514030285586524496908635986751369416351747046709451229940488321798317758106932833729326030295502300462049872806055144582010622621737902769112280831793246469427842939582453043249801867926022985312301721442102152912973028048883912792543890543557229796271600385682691562534221643799152639871109616739556229268237314749833964379957195289948331452247380325864704848205162901445783670610986789708280497479943120164778156925769505060792014371948289165000782190619933970359026446862675330550008649454689634058831511356852506547636254939886718030294535706955739162588532143322899448552332967049225685408576390869530824168144679823597717926413065926150424175975538611254222203576021200023991187266506071497876181765456373018853211943758910442568743919998960944143671230413694829236429661592427077782371888086048552556157772244656146506984321626084541825429560758140318982706578459658131398034899249471103500486575894571454078588719157857825430355498570477273463537032918187971435421755536066235364408289589275573146443287179396843287150970975594374770454035660762317241648800626109963387300088259698249533162917045420330288373586152519713517392071816535647600084133700547957114646635742959386717543313662538205722648590591015662128814596260839479660230315535511868225918731233751299847432135703410632746422962694598711309430447490194714393672905027954830545453491357812649075598620237401047469688598096406917099549156584916153683274001939333513589260050607541891821117628480894403159363469234339004581470845492347045193782236974006626671041177421563421086369178827423439584959362112397447214223722398850204519259917135536602311149496989372342974619223385454826734131041488106447021293504853398506051956375900568909223656505062019172357098923898819292040368902544524922036139043650014191135922952252583315873375029259389305706948062569668932358656043024025963259674805941811097965491753912810379499191320401121900601968755830373442174574103515257731377950352369027890795723650215936765885653280544765311623286285542914894326880175299404907345477494785294415705921093580270776800508193150673823962268792854610177288289109982544127461679689495157053195782393425054893177821024578362592655158412936248982698158554881937632783924961081273132127106559128278743892299216732660182002253643176861648111685944863187119422675788408225043911317197354447950496703210829785679245100380678305780103883082084939621672413931976610592446400080342252673622435045596618652415034661449094441555699807106085299648564799056598442711896453013254011678471544923990527048413194602572254653941814856094052122465997574045356238878479368784881043520484178121476531288768410784504293504786367016876567347189842358430751754418894190655510111419075317686697902829665236153871575025860851962140189591756573963209474990742282258805159280688887802766258621954967935377403878118452739393878258306515466012879831929770352424920925380032762451917677663028919830312325039541586738129128364246274028585123544798651014749158445562937353898545448444583375886726198284551357480963964331344575888244804024402433109098810046568749576777086230474776144128628147966134752539392749874150389485982047715711119434986345676898631767460035982983647168059135578340084979347402214249907972604970068904483535556618706124699299276548035939159221421114430100273316004027280090135102695017713678415807020218487840540989226399198355569200168954430479998696524044157029834967353612937222899464828442667057164879986432123901143680728641615804318423694150757677907237564530957987571302944689586935099482717493649696085337566742356963889812457153359962620851902000779146959127059407474393371096444057067684766499202327982134491599974784069338579914249390641191601133634751658616857292924131808556496019243143007365888717649774106909516628636724071877376381233376672623381337499665752646889414817107829435975876864565617172946061995025326012810454390329465120927809181638334429451449339756294065967299230314379159551504272943972262426693895689998190021682395251976919349600391808181224372295395455647319122410198709693553584092244711521603981093829629381196594559538560038986792465038081318955384345317014537766150451087083637723966817287555116709465613581423196498240566654440093350840409522820631986588618398412024223940086858965295181766409524565092434707858673493672158859242695696113297976290850416694227937646558406458532587952766265049221106630191195251342780168983512064631262225336731905717404836340283502524248951356199559215950030072924323257326449773963247118447468054421009489447976715414551125824540569292945114221384752897815138038946530136699779898236735470863564581634130784731083835467689486539031823612626263776407416703653229994371497451134616412797605915769757071105942014926831635007063911823244467910030663189479502935961709068036867027831119409036907409883249318791385174383774204067826179074389484189455251732195581680432957615558772608967711092105787507804145145141582404638442164676585632868632472356107091816220016664842580822029016303908044209288428380613967209273840225757395992147032651251457948230691918918080174406214872321154061678457041893109312889369179122722972795517742593968775334505534420924177588726039278555805100856006660718162632194930020841875876946978837573189683194793909118208185093281996287922399392272902139569534303824225309449555062152516180766930053776903678249786819623444899503280754642183183759260668071309848748668454826482816973035459049515914791591500556615781830656995035985524196421182008747904986046831554985652404536238286194871392557830050853577246851817998903634034299406244304225702868530055310890261120813238741316489954138846144406014257376284996070190183197948504766039874616072116186722403786935551061171786796554033194334583508840573184620495644273571755399682357368997678332436635133093847898570291542746901161748172841242699954159173301359581522389065506320548501908631934687188264743440130686927790619780570121859445555693510024662244812738009040224016024331625622537646493066324879022401270506742806014692469697431672355171488409993131985139991757379310894842347961929079185850811206577561279415217729335220516897488923780167129159314671141393972606634629045906127342898331945925002253181121315766852496790585956023554665128175253204810369392879228277900456662479206518247650886645144203361970279352728295857196754493695881057202476124948096042218224991737716324967866446735530807910668571029273621486447321022239961136651847249077227461408706231205016084813532685205062871493054983989687781357797301836045231276589689967394461374362048573626553635247164768270496981910993737328701546130961331333824162939405724519988906454118136418022772200632831107542127372021765459434497038174874577119976424086433909522470234998011779860433420877432217281189657347352729081730583757419953412394783080020142015024462892917520008761153358014399489018841133119191614648819751578849228116988991057808413073387281796500578968212604802102237886748043772724039482140741683359045657269081832729143062905208414893851349814404408184764188065618852919752668238826802531275773067957538740290552551194767237420779395501045445379788016994927760055513287331111470720869817397010683375402305833214077887332354141972872843278269240876669834291112273469623560804106886431745596323524233933964207106921070403050854334526712698699272813985648513864198943923410839410497926180988519833837612712387239998802789916657399808809065953825616511791802434239800811805159505594300000072393704805538442349565273766839131176286661730984079778242243692595761856728088667905189409360983211602740628487286353191718586245602554435977636793619844013678432544405701432898721126082362172572689795407150459211830713197074151273568644107436647675348507765152703742242013708215170409001875531360179804450946814765598988216027229894160142122609785929411222735289859830363931637095884165195314545391142667705326022273128186726632449041371601147285112694701173092370760686901765217011767588486422479712440019190195932929680790419271651896996817379522556168099736055877408803664542128252486085322642578207072233284775011454040031417960374422779746720691653067607638435114597164325780399010244976968738329861430194841871394521111532440946032610143372903570374508133422554462598974473507424524456148118633171886958412121309133220943282686492943381977992167928980870853308929114088744622909999302181576916923593094931385098933975566435225643980643734976965067858588991978842004915578494163899104755272910919609272416620317271142299123119001493743024389869344794418469400752482826686516959976615170523073365833942560781330616371764821516522712484304601204501050902450431631457712607693284534355673861833771458274153797606042565265586435224642661230531497607011217578141444482323134842758560384534463082554459255996330317804962797131836054887600013719112727480584382633864094997980357490906889871397843312649042350408606334464975323799966429591017225810030160366811457099801415837046829682748703110082228268547537601714428741155844631862513806682102721205522894263246122709998766536532429938651844167673948260537339445433629208823475190647260497535983417214148396372100371543365133776143386152872630197495723230066156972601348402084089080558198730528857780543580471125840837469290226147670689474574508542647433718416915483972107968338695679485430692487316607718582421919165987503149508000665170203409324386221647051322220846648886599704027258519410650387689402797609006190716356356056003306850942596841884475073352478658073633966150862570456581373567925554742338819744808415963212577188234153187221010727198108021500043579937300127495114886387549360778887778646168678692132882639113657783520186855742971885862973179574421336763455916693535075040989909336824190136998851149143597400925887764551403338919392722388574435775241918252731012679022293685343748799621821798375834067135431126089084202446333511745518734912434905647541301914911904826308341201729098334273401038371060947502568626336367707738552923893095515065068156382369990602316976875630481802769394103097479971296560640054661048222008207760128904407505721219340285963369377731686990526863265327771765121029334279910398053844379701232332719762936250834513329902070821886324008875314772658892464880492968276677265782702519517082107131824008478141511432596547932658797535103147432456307088261837800463115322473883213544226361447498326659059528347039549764036044052616883747810738532190405207247011603211056436998445853441822016535755017793468110515907579137783650218984978066282698963024745942232719237189992964531643220752528494380980952119395147707605076289344381720456874078822878204123885718876294900101132148744895614139931629963781729657446203873456855110839420808116210793354436420970533721247146552746412340913433336166846690589209792785563668772115895307537624746052503264898922049096409250071792084720507867889697894420138829700017135634542033205779574106766396967211284115641124713924325773863557658082661567704614919247865225029910842453519862654626521886568288704233786390180596742724172806776570106021885829350164722600490779096706621409994003425540334667688208344840487051280041496933075297025462058762525781371904967470845103969284053051452563835483216130216438238592388240599887544753847606534513500112420569744397902596810695469782490879927888271406855621316116413926935683070890603069550668545035736299277388355889222137713279774216056610166170834478263614301015556553375396406108719842536064183856048995596843155975603656380392004543146537353359541123595345969808716513987871984160530089125182058197019942119599108232160699523792458591826571444174655976715846363429446737036565228670011339944202899456511790851988374477451912950779633920388266167437907368872135744837396840256416745740582559192683466843491052539765590944628982669189826428017525297946332312152092661945249957563546808001970688292786307681868535639097958755136968573096404382758351704389841521128250515232844521382209409287067463856305592978616624739166424604910727020701781969493305422419368472531494245938495404323018845774670812901923382249128263297554057246165446125123358075283886820603988099188907008676864175833456481432911494692929264633546204476017465288312045383743044094519671464854419839658099860343445947097354528900714513074591493408186051154445215199033332327535281992271730179738532455014886965405543337011757435381692441327146913136851226417725506899927410345198064047284914684856549055372873267581378018148014160804945535633129127779979956978359577466146121947575121988345544274654462936732245088881271281376006355806417763565216649657386084315013064395676125064607848680482358568878804453876375199372038351696251623881181855677993373425282729749868845990295714008929560155008447310547167323962682846249626982093073049190564519263371817276216874841837812692317828177972433717748359875785125458898120910339846759758279253046246636185023159553213069741904056866087365538804493925129504822389245465672795578797543056676522573703043357515965635373012970399647159846459774826372126377682827257840747215460179350914487972770653920708253497855082520821509056739259047906381461276884352541461119123330678022064981892347178529937970432626917692152200315322752731962470192242545626833185359336885012885736627675688456392217113207569943851368547392476167728430501612558115933889340749806031749697563895905556742130556991149966223816607299606837179718459813485335656961971914675785955480345336194648875003865603508126824672693109403910294879164934137886543699675707714350348209036645058301526077831288963695270989433660277767315765753018780611329070476323054983177282320916311867126055198754099174710430982896486479042493961481839871247960804005354529119875332097748099938460686762061577062021535200784086676041421491871560684782013760823525327435495949650465040699600324270433455502564057499663014106993370545968413619881036491769042138745234020145897238630057942298229220067696327303703745426969022711392181236243288790600857136852381512877208661644852563380794722862204023031580372914551942152540868052498594074920406636630476883556382799869120826186556933508233234107545577974063760566868015915448102941692144266162877263592052221692635101438555987424667572604517524039951366848655269609660683043079544940186693548085187616441531789272471115143197249706663978887654823502829422081942142049427884596886376069102201216904288458240038468869327174643964786977231605139756930719343980001625576602599488721854839580693654727833508750987494839692519325230332245192600351516782447436676205914952224182533489471662079471134497979488654356735618856554830678971413225777913836108632812892419248705703939091098567775958696783538165616904540690918198943767003653974502283069171189623004417598908692851955097513698832781333307141313209588252962650505201230522847980788779809396643155596415770242903391779365936730879183532844349140400962987923636358116679080436049263820778199626266523708600220317361226213860724244575831825952595371945552893566402005093679675388890592180890452762675651416127530188677627168302690852513381487677591482133790711683737864420364114845430729717737775974218675223625661604469599281985663499228513675438331629266006739629604531655474688034364840691489193494248052839087616672458092762583529152404035982621311829092070150392810769106411545611418500287484838418313760984067369068372405088530930395960878407861167774756794775450451033949573483724327030351172002101988214766704535212617477881824656063253034028006304666006901371196772047487516829923613174143383663147880881052127092604082660613729821904132101807433563095791705317236034768732794530127856197981625605250415677082059856687231319959419563132341194452368522317810078281923770575168023210685309029301599039592130804885986595816879526634143183768782797134738660546836103598166850282975763859778966969873335200972699300465905373491615723783421531839723763745855911448019641254409866922438956248108576401041222471613631545508032444350427227040240246433598488311015745953691034018617053662513856547907338564179696331906001304322021430479993936290124296351081068274743000659430487408311381147203518955960673655206863337635935162103586200204270248885503779783607327472038667889333239098480411705213175906614021499846939033637361516574105707133214123750652277157901856937679478342736062819433036063770708418155990473614551195636437492417758261079400242823721463646516398428235466033407571301622475461509340684284269911947974972671003332877905541252331162303038834430545412089277480884027406939813161912068051637758497696183469285323617464640665409044453537667985482343224850195496183192126174226788531120152904946109556437710929857615722552237215264519217043388703726242530475761318559532010315910510179046702904557793948131594546875275554659320582087669655857600406171074888791822498823251721484316353949346183310012355541162636334412090288798066202359872142106052654651051655066767841253522122444454575337144396846172295345219647570972376208644745490145953929835495861848925774763329812152496608611102562761017585996450712563009987107801885865271769685327180464736687762992215718960069646673229880636545451629992848844373170272314610541423810259575987627170798507074868775295739452971710726518295912819899529386804960805797738112051180302583905445697719284365535108296213823389298066380526930831962319902365453922417869489270108651758214949074163877547236405147569663983277437249777754685711142240262323853292704568849744993804241614797167885494955255607726880223241755117251769300680053385403517740050874850819072097576491969031997090976114075567048217074643295793219136397415537232661394451138612988119354707660121002080016352248317219060047754071796219279261889119223688580672341789807398923807531770788721712389769541677550162414950690128063520538432069354969284180152487085119248635239759393019038042427763880765419345220907722847238970900844892435955955942289989499514906515219538385928910656378088307236066627592882789901152971849742422461677186551909413422918666733579350240875119317289317927857802494586142613310439994574464752534353193391296943042623148857411391378085494522091626380583839282954012234990418491278800088465809714783279634184931246204957291848261470218038087198883988346624523425679158569396529277412348743413617655688920528763918273895375768604800494652118871792777855354661680418040927993940949488254485929208999949228087741815158030678032988160737419162906318805342993078853170004314162536093851593657158432011314335398089155817994456725758972480398381371804820697705283905415864993672593112262262270407681955705066516415590519366326111873176804105761119614333161792950967410191212673367643718840237696042593098838441211122137497055656448200474651181066385193801700038774222737299407709547916115645681416538108163831285054853939017071802252279935874065895918466022596352329197708486699803546714636363117244195993704964948247118719657249493820989712029327717900557914035831700674239811328042588869121622319659827815685278235872616396001145125029204758580454409002572839891576528306645811777311231945470785831007916751089206912964472865693265534111582658829288464289775522075088566405521306092006163349258542030736052869236464318980413932271736707359546716348624260819689379928215730573434767598539877666713547758510892831922978319749833722828930886502583617857550243180961286069636880237870095516793844315382988427843448189279351212402553221543865007731422953108655322719083117738454629957845371859605103736565303246910381038322632258384279520261612836551882796855150213905979244624460541867981262985065430862956213143068710721960743185308014611042450741875041527664371853883272276576838929692450738936487164086697666234378079160043804206339661571640351993945871436084063899421126286985374482446735333541532239480585826279446962945487156425312429979612186783477815633476526924440730660481026911640456104959147298119129274748291449921411408176628083960366350853026632084493693498386717287810378258901437312891412121466994353979045827951586683954551404885793870303900976777526728110005370247922503669686536429655817795115580522005619950687420572633598764510288852733289623483379388113804284653265950889759063026482604873660419138055817086918515264366081716060549423552395636486042021883194074305984019045778601433429555007006598414394109699163278969445709553150607045621244150654793883616609134267348838360971756748779446772523600955652804199219587610361007944423948181324908768706379600250943160570792328279123999800612537619338418560816308141032451606589607827717149664992120877845953306300783490649924289310149212118684077869582068677060332825596983743873085852593400194678642339383253260186742002949703251848519701929956692964780414936417246445924302026342717165168003008441284162362616739773785183119464369117583091238935872761789055247891333157385908605570738564843975985201019331642262521119912885765618681154371090975057158200256420330005206484726528377115409593257977851085174726872165118908588727904752590906776532687092143247951791193194579412566499872337917082695756413879800027041296298751564253101519203922433355641832473361647989239310734945062231009199713664258380252618011927381455994088450459007380269188109992316627196007880165107368275995247300252089747562590686728138099395686872627170598804195609902777109183108474929316277888276566794034086287789109811403403124766060805775223624329325149575675485523927827085629326597486607697993531409822813670525480296350784350075459493936675765732859969555352072098500465422318785859559955168101441742091925790728361986364024363484332885723576977805411129759657777472625112471856577477800457212021504336426833671104871560549569651914911824421073853217304790642161323058977436232798481295464877447404523046803443966514993105433414362033292245413452524522689100050291590353323961183294400289642387483035372176353689689357928593985214942906323328834872892478655674776906421952442735172944867878427470296152553853110317363330494720016671159230392918214334181489935870561817932489175925075951618486030414638691271782508248613266129623425056532500958048008724347060153885564650158393561543046295412779716929428181895197669003161613517539275131458704560785402568020964227831983814333311746030745415287406524097149623284011439720488166591252581579203444915500803672814749941185903316678757626859578401321329489315342644455468795008837165171097833516285083963879345053028579380879515156289124965776756400771088121300143185595217112197969970013671835920654693755296473082887574500474308054408334635882235309914108196390019764829037338603538145646362673310977736616241640135944810032801701279560429771959472274096535029433808621621086835002385304895550109846038232915202979463879014981670531034571703483246187622226569508267226816430420252345301187613487396184046608376370605603641518060183382062377567429322128870295195608624306430856267618351798746579907186638119296619991640094975251731785320117048453525115135856152772294230884970516520683256731779989870734736027539199424411985625476013170532004465295130837831373346802889330568976462963000842188520363151783530912215863253713120609920233283361899479331257898058487721300752085274551827672177229732553606844734631106479556571568412342308268605440233895111444458822294184011296819637932689721018272430750866311141880664958388836176944066515017780275384756133434695215798982601436245854489584244685793694410115408573981281004000430513675487863904198592324077700442353461689738231826603119590653920565357926205130244558388397695622089730707531925299091098060130629860679066997215500373951217507308443483026775531413796721076426501299156810369152888005535906106556534271389262553158285461997080258519027648750723698363037580339282564790978757697227847506715690077587408087090855463403969782584431129359690586423819242478435892774429890293853869265421038752052471554600326134033407410050654750445240652370187237395059210209926372408366476221924041463847205210121866860127409518766301659281660720179509135420199643741836027767791129629082333155482872076942582432611647686721359318147312396157245098209129182341113725220886062160405833996236900000414908503936798379171841389984558635967095284374085632168371205487389389256941326077485722257974391470014721459996053636362574271784081390460300129350005944279013319175980907761732826240172402625548409543117557119138597247895563995507019279847003965712523723595287907297782009741496778788353230751980821709071890659705091504755934666701202317365357245442619107709839873060148886312533060457395625081316831584682846403181514523894627345958918388506224342033011554752329467389315105724099719556346920233027505514365358728588083657178376057401799588491211666029934230571938973003883704115996707608755088686343576520147619175828119408654875594483071839434967022259710145308230654427000145452082144880265339082064886038740299562477335636385119283918710373234533387162401280890502619970964531606810105131029479321090859091210799184543803579595320392919663211782992335016368174001710649306663033002498934813808391666299612368079208075538020914568432489946523932284061245056103746494454051150662793110645165868613081648028464810260006064402875039586353278844070379562331572647429428192657329017865839650865050782763774071135990527996348059711269601004015555788951120167186061534026882779429004485926908471780657942162844255458596455298860791420494769566501573229449501992795976425140790934435411769963432021001948923335968141758574544022151217360752133085154405774801136251245890168547166795067270466896457989695435455221864219989967386139043147500918019562810072885181907995786890260188033726290406460862811137623637325294354349901415252201668709449166680193844157807708988028804440641387456712382624502651487244220547114071660608435177897103327737509757009167908758586517227954725803989108938297062443205449703057252962435678230422892398347152598358903215963764870452421125948122906943441155015938264286460644909622965484754756019072982082683875473640954077670456998020325109193298825827375558286050317780736052282667480693263826966866988213212319944621627716662431624143916086823820018743247597319865572496155527054004073916012156374273732843746229350747687563294321750438839525033794622821862904292270450846354230403484915309975275250293459946144503278524801426424648231243756027882019286969158351726425753873074272502771294482398247687902964856115955237440490621046548792914577020250857885838041816386537665230577762922683972179240269579031202355167151745839179595322214714074241315900742722132451045479930569383748023825786739159548401474653521580311063516393139442790292922707384251935098765115272888317069991192922567967025042360239123277879795774345805986683048939382666554373939380887791635910282958741012123449973459849217941887733976994954596617546811882301153478548749742889601787927427804475398652210757298905112984346936488932602916364569482788524700880416958882803452400085884058761927723948350935474729319553247104317222423181381393546225024139763329236712317934185445779919309080897994013119440578430833398470353636584147626534838914949449632168940916591542876238726754665313492980315189580464775373517385439170473239259566488406585744231307688494675361228961890667865914760792548479378842301536502518105897649564014377719528922693098023497860599147488646729667913434569304584759110378591221997662987933582164215251186778828235396602367905706096607732047004910216620772937117928354572700887311657948042716175725678809865240576410942641554812892061013971083011148227843458562077160527735607005703312047814528995402907175730926041580840007021956213247154111335255857243265894580726810558093269585944689166475527024469261260969986565900049623008191494273239510499926920773611802465226392268787546994850454574337711216548379706707137547500797505990293232007097672739224766310211409377131554519649410895192302605443054477080459267309836351803276456252732396583103829561809925891728440311622370650626840671742209661372050832561219196440377086537699381363437673557602311939825544615712866834813404544442213685749302333374055783576208458039657411980128672977311942937630370073227915771761496061288972044220204101617040561764288680815045676380829272668605541258898648891943498109458811348072185872118735426962310853958729671182669106272889810987681475729590119902262655472716852709366630455287905049220305319451280171623336867837099529519199623856446706122823392113331217216831589298461080033966020409444642009659996526593211659837932030570410151157409470175834599111327114562607710429140619442020730288589082762395022312609437886766961851508021688932656002662051969158503980053173445665616569755230068209837961362227828401854534131767852732417232076434412106687275581242580139729083696998478152557922429750869910509655420911598946230260108939854822212460208021953394440100958399692782964446911271532225140371278585992836807279870296822200698108117251459595623053775473848483309124621921058778228209168366388394462500953869838088110087786469702360753359361086863745339417535605207085864558177281048589969321673839344823872876801268520715098332486837760774602211075130527222335111126310889602784077824112891364290050018946345015614226781953530505524869688174845579783361388431300082983915812391721892470593814607396517625807107580259867197902780565112695939357374886027296007134386247661450099987606408503293841111865716610507548655189365692765599829460632104437688972819155308899817919522562308011959124184717619019505057198441598395027061658122994704665899363181722418140737370381059410198884569151550153284121596846059415879778856275363723086319008386280418766799319492231689085754366729877728866902461975965682901719846169784757353494710261774677119453045375923642445510361183711457043091897526763432430041693286039925289877223979273114732023294096895743189272631807518524762674878655534110410158942727571114598142666351919176148532414730126102774871188350892464949206499072651444262335685734858576587378685402824826093252007715474649132278496237608753973054236587366050694454086342537523468108893083605599837225428073904240722008100319317747158787832699286475005393345886813135896057967966314429190477606536206312818587751927117197320186007366011208560680050925338385634177383834738762379915047506542166732320807062676103056718419184301048748641554998918590788402287962068997095347880834440557004139345850774088470743223599574122464090783278424033893812894032872357676564083223696828372982081700007301294057698030574216050160011433035433273928635267443540145031459254373698952575475807510972611422230020890395853830877911373259012467796867603312193355715336656966383698078638321375333629804275099613498063272708232833393391295230580504522604911991881804312144075500903056007169480323572562200644680329153247336595728523478030027090753075969580823781081300044608618753717969690034723138548977206502180967710161313890009651382727702463011531657491659306401236050163316470412030838430709966673288459212446241074542966890180964302738002370391514543558798580890339483861754596822296092189882919647505006806065959518561022588115033010877438511092299556427772130298759523248628323507556397339761160399009588978938238242469737759483722419810852367501869413067706800846513695224300335381318991218403793051701744956020394881037483202586195324479433419889068913169982754453264640494147697410501153848382210210842733328783620611551978181585654869406004817592749265653932538816789845513135370328427502102119659749551033764249359719100349867074643129949797134564183409040011624573482681817676572489693403538592928213895162951910501948039828439716893025375484995375380422311806941919737272668028242401699177616096018430462457391709837200989614920202497177274743430708886495149990619856458976662698721724915236884141887226199471708830985100670189403738152169706778175228540517935392799731000896931909711034406626237039722601765114369906549370397346411431239713529142091286241936071318166735281215994788397264235829060056317451899576544292255815725434976198814211702603740539597597570501163490686694342493236148139429531864610509980070609139725563476199341615237346026709561972203199334780626848049200428430414493936111730115517734238085849398491484217804961278228254123760980316485897430053249349783220550662590929365860606899143422519733446468861286885203738265007479627635138031144629840110067720270979389449425160921427924838725837065146959687377332881629602303270792066289893022589039151274388559268238654589972053408383082738644977331311387652695418630492310704138752620732742952315092291881897101094480143441452567053204622581566118677175766899939098621895544970662653023669072088083764797448742349066832454830185349181185601333600433550724384419889624711086595591172594953034508615058968910441387636654590114358392196300896991297397668300843412605983098080092946582704709451054734006590991267696170949779061640000483291493395619454149023136443931416358552661105563872318767603128290012520653033837235562473575303318861242781220960787301776892249926804490839280553814618626200110912339352752852346397242494705795657573731704024032270761828740554249349672860219850323993316528036885008572443952017430181754951541735358968093682600662572044533885872255828344679562363273741167473457945376781309462516033988828523845538689205314617005273647408619478952883285053536921028227792648930564717551500083027092464688193790033472850292652262508674421633904683957778287787229296330640148759264685285109426282297612274880193062174290440127185337097247130542327497322441128605352602685623596307352429622276396326507117267350370632352077555048993435142776056495998722378836801203858271025864850876226882289131759545420087296934259144582048152758331958339662416342198589823909272135860831024306636078781614403383631283328275567562109700368824181508697660522429410560667603820945134829725201374468026503033473961978009381778705084745976371997107875464553366702185231978298095093139621647375153966901962271351125165287874955124222988178368622214684087921591626419682762141688823988809148297427479300476266624220015960035506116100780555639409418034444058658122148008547285281781118204889954451299055768440740399043490661368138397492695015088569980598721461742057179651502001140522557076658382742094162589518027086932723244156983242236801363921437973018033517755215523166455015597602745720220344989162496886932618135764382979006747145855889207327426693316741194824986547548394914271604083155174165824127342617577147607149630850941514477162386704325379590520805547801923209611874768074572220952806074307170141956140947963308043364145382904847840329173020336058617768090873093360634308546126849178451883544492185027148745856885458633584485768734534021147566348937828516936999561195194068698307549424512680464460367725446531198739777745891888267297897234606504188792182736521015811023179644315703793839036414393055329743838050436136054917308809477038463447527826870372660948780345657174133823569352626277595719716633512243238292395663721786945630149345123898860135043351661468478392057394355170099777713444678434321885028168777897011202959691115538648973179552406043395119201964869144881575492127869258124488864314544026773344685104054681444060965875149050581034717553109377798377432552508659538060613536266805053805401549835676907793357455172371525876321615190618691729294624613489522954816296788099220351931874306173366822594038215397953886433804445571473387670382750616698717634458712561971000448260234131585256869831304892709570252675733590834312291387054672669327068363542638459280649100478427860931317377056386561604761610135235624104598449375426129642546239427152358021573762132660370906137733737248978840973965961189668662733919944837404117728912183526439726279878415378821643570360167179728679613756334018631340014630854958724188201202485763514894205690255803193311888947574548017428919537956416116675202910706468403522632356592155965753950569143922897447233150795345839439424989193079422084373450136094340880266836729665791769774630785708670422864200738553375494906639676141943674745009378984143339128639443385827292977974727410457026745923946208354663455375046669911489876108874819811148973258747132252416743046918060056942295149965909516757599925267673762039416068738846643494079677256876980384691910317133783167019604594855453150579796711689217635552617884710075618620995385450605424787367362777965928445681085462799666787444923831431428498883678094818705246598187137173818451634160908344538623085242006590373619744925768536122473059734250682492379598339608310365189499121640246182998781107467451019389540174632524306852821817835292496958906594341330159610104238824225021490707634604045394685401674250526045513697427880047369445551551769552577688717531579884369995863052264469455897591786232480025498626729511182720521223467017409445300486443056024582669290104113500486372438879278338545278819716929799695146957953336795681515618326770757902779986796396872335181835083394255832960916992408299111662026866674339128938254338859775030289304943735298184425011163551661804567141439663297568129423099149182005931444435610305464718058988835231792546485094693208463566638787572632737245165365052471203691630393573810568701757030334699409759011415493191401855402919554583583082425314405048074397002044849356069964984104014713057211004166516191800994318761192120571258134236020438344590220251253176284683316891173133512400395383031644489927128869604805921769966542465921266522793862464966935371676694292289853825048576661395938069618385523930575579574704910376987222578099638439549131664769967748043624135649723019594659254213243869991617771492462261868694196207331063537230753158622963667180867955088388835690117475445093388680375468563841110450444701270237275599245670224331623848186572488690311172730865713447466787973034392516194400459315965043140137886761484891029901457644271026573424628493003632185600995940266982279354112074070347434459663749515844284807492462369962723257567204498936886383165304526698044835126664905583642598259787030456299560774290315580040356922920441132807011826764919095379829505673546918593722440355417100713344791013971912906668111475683881621960030802470797433155622024796818618318521907967657773479874726231489162687762283032854349561456487455794988809997840740026019813847668524375546328907266302246275066881280482328816732684174006822226656644164771271477190931693902383544483220694709468314298996899658932308489244848459132542304631228378400775012613486613956130593509503813043168851718713887174044771807764771297451272165679457673345197909616949167361307561601886513047597769010899579034810846324161896587592109790626103109553910235928312703034115607138954424608746582200527350738218656900529027044480839828774280008346096816955208887306863464568795995285754037003154400620654190732124615593895863811742378631038844220634706766494355622580299015430303217014054797825671466737558771853890398852349698729046979415201729933107017979613957667709618629290691540117230633538284027948217240187146986865161569729004614451122100702909112984099539542872629014639905484496487854702290780609979021293733448810831388998316325515836615209385933802370374416535771752626213553490582486818782175471625705462324166481978948235353300132245552943058287802343635135411205197309138479727143282004620669918872919826650058094162467467865974370262238678644458685801219947673672521299319180343621675784889248730603739996835642834015658990485239336090417365238115978966712428446781531176716146189812056428998338213763580950058520594816394430955067759551387563097331719598071231014199895773222321519129621361258113779675219899456842281521484909760052702664994499122984038020686660955423906559761058945553549615193649421039476164085798702767647209936190628250206734291310364200810888275193803372028237358696709572451560675026756178311104555974098029399263976519430675489293201747804669896177553244098482815769979155923481018564291766572190918808325333589509987947481948225154354711184294854846092652303151337723987611823293842274116163955825199754601090393815569515034511239888784652170049923807320833357878114646668610364521480293459662258577023642257472533655228424056430483779277796652311596777979572219712592149713607160396381050272054807362447607247215861827554447047551389663206748190240634789307937466687305599419147628703386628169426073944907826347460365809985628866972505822062202902403562309535357666907466517961026476326876040014590758759890526372250106738568014199367025145558148435658832378287621984200205453784251715641376360998476233343364784813936816871234291402281734053499633532646245127789906304735412379939200398406523830812969650334114000864441058582224764602543338066003023347282316485867339883688881719312152753265203296477915850044589852546348359880867104552606462170487910256359729946290419652155668490078965954343539974100827761256505445128078127478380429604918990490527489634824226019303683298762122052315178472429010179923083350081664011583943849097695252352938534543719715760140058563186332925057082579521371261939361240812040188451049428204588015470704945995567192876489140045400026642181143214148371989446995190617032860282864999984559514637578920736964291329768366047082794109384768767828374633494764043957958143578402785449982976860143436259427493598917762827753964950878812998310793780301404805626389136943284796551776578110394599868063334503642320390070890934212823210865214372608531418957488217733320374728459150394626518593506658774952280128849883257188284275323259885467394293686949599950200604714578805013716528150176752022608086353901750656221884367732581336588272973070975203170194527477481133141352785628161561191880330303155575102005258335092055289173756183242825371269561733971221457628488736536090735191702582284572531936786305723835835191637442694121072423785059433428577040729109366712444245245951190568096720647755880337284402353256625386112508557394125167308515967673095823678682708287546097674900767355066950114576846519983011191020969822137485383318165502729106807956881203409463281838219998238794972657602757079972509043107059323582199903108411470645849348975756661636886798730021496327980921320317479661891057051280009999512368792746895424631050421481025894451826510430811367553160666456856412624693783489821600796416544966245799748098849440272024884345842811191223522444554353234854845723036359476120100237392287012705222239005945129348069546922042084885305070498639768217039787318342460121860692153387937694770583470948893845471412351756161509909542696470509591513817644090283356562596967754854225481721724071018604059389375749273800316075205325664043388096199423962859624553706932073390995796109386709367910025400523850223960349823290637122052750946195939448515510516285398100786879869832361814426632640451741592298963977872588892728283312050275509086243855654452501185935872574026715036898390539164640274908963303533597082401216189065765531204853244451089357821581503495588475733012973595793513556209195911034293376208816873396158360712468116660688397453224079798689360508887825375104464273835495205881839045163844814324999663566786793197114097256491915046947435742131044856361701422761538094671758207242918014565467667025424075088150167650897377729546861465392335737038088603978809354508510632280546332689935774048563593458773009395783879659763402321435532356196959190253447815664514517674871360801870539614049688720305421950705967094122821479246394601219385431675749622797929760895765888691773526339928668837949288903416745087471211894521879863850221787698988540136350557246807367941850227622749913697546963749916354758990134218788239585002093287952366544561557567130632275688668871252488904368604865795900594826220364744480531529764048541725500954642110179089079084642048515390680427763445320657782924761402396243917430736850194752817253353717229733998342215669107330413281093070097135827682957128701589210887800942697834623845958183698705130211145398799318163858732326059482607735762264489606534724120799345443878570850916488658711099607436597450258365683631200411114925571182931952397611327758592680702259212289469586166070371309221701978529330438660057203022868655211953748165495068455278683417483255370307556633757221847012956520262051096730937224892950111148561892405843342651032889144470081857193920595612193661814830680998635601325144761629252813031980012333246564163517561572926511435527334866951355201056598528996672674617602026940169862421335993026254502151709478137718980551513934071580088346262017533682031378866157544459171818285348335878509512286006158299382668814773530251587181615084864747519880515236716381738344111589031931939041767675029458606045819942723572889392472427773983873059354256612603270308328471452288465031547196265726387302232573054510168452443437873320509491093853811847909265831868375791365892965449425856620073009692533169593211041999750204177035259377541631162592558259083744482248427743692205403316782000438465625283205707277759568421278651799900975552766921249287837715998770971346202990631882597605833887007142485066175748447309705858615321627320347174407488817434759066930633642404399170576009190093637268882203254393956609496922893289788934425625583565529979677705503393216122171128529989099683894046621305499796392718417192826280193692867567919866249691193982429427062206115503106963685717800921447056439788513258146256182435699588789111354995340176593086949516517355448425962010153075302449251303763065280960534460124493820335801353466584573789904060292107246036563746272933165285983144263855889550517451038297827478024662594522124151493325977521801205219523305563236169501908222726927104628258074555035003170525482360314738612013288862326040972554224886006533055732780467799455323841572901797360398347369240924441339275014434543226261925282883648188700645339008138598923180562952892851532467795840956844951595565070683764058440459266606961345190272669999094683661227096228953813626530818837517204712178774649113411564665664305579141968977337537740416141189306044233308299749970304379872336532527238840947744135424911506539224871670272274018119466259875609237310461689096895421652234342967345477221177747780315550078896897861108989789571187040163252913221074462265739285889090345292324451231150466899089507755164198701873155137508506771641223815356879156814037377138509351316934588753614052383073464550205318392872904366712910457338239813471651349494730150902311544025005756007511364272591988357659640454005933479768502822221426871174684912072720903949187551322911990066031374671718302782086886330563121256654346276258466888573429672482883635712523990003865935463416761991254845042373658594457447768603816377749107998960864545581907541024639575037133180017426218936813246977828522927032294147463250421242413117621509993645528556592449609920563294701585376622010068814710875338583381446418802452006892852290281733253542395311934142895576281844560694183757280965205303030530661531307923365628398621063567798036965481632856579582291176061863706658527650182576141382813806029585439867483519449709016514604944252713032782947265683809242682597068982978764506068014936809162637188897439974698051726824484839729450841428886753339480528566438538671508392597779354413026517617886094973825095387354579162953238744668066933828889714732340971295709977967642172185498353980601850407392173307176619254563348986780672040349638696686038325169375960315800078276463507102005171386992470536645404709211484827313722419998574099886366047975243394737840067234779177846956091747734513463830677121581040071600411521070183555827396842364840484543901937923757587901221799378333504346172978360840452241102420266175965481736531291938264008208583749332168191547946178059570808033098735975114187194436979079388379907531246653655863952534980847904623315630829352054242587241435563282780824169077792590997925132099471914836596916747441363333286880082279210558453513960472230453944653965898651681144660100633297997523709710110983358203207027161917830039452250057460595523240651585365445031238525643658591270734733576773172153616526011005991160039062592021652253430586590834503873003430933310416117600341061580644510825673253619533727075752801799078924992159690011749939103071801114435236786215425739155001957734411400441871246018526918158750018243420980598811157193145894491625687690946863511386846707781738559855808245520699369553535108143934403888649679504111313586087591875557392573521265470985710985163479864059319841919923136276899742224681748544079385533059870036152550328597712580728782703414625966489177496302534781321941211693199124942581684742967987900470976879370952832795824687849846750678144009881401858422471104896123117514446561066680053168090671230269566331620950188081216160699606790271477601906830031047106866741001705317971152266046421053976516647792071441840560160622172609130462529609198992842525485994225196088907716091538569608920754860247547927761368560689447795888910294518400207109017703515549162913302419401659022363206456327376278749588726065326961468664605128242542816842286653253476478076773255357926721156443012568929622734177541528484822387440618918346920348251088719075320277403662590000117064936161015545418218001756397982467855262488395775445936258689255482469389345811192785619777515827666274041650775037949502678359352453465414516306018076241875545899726506923175026456759791813638878748354377429600237949684161959779940446063709622703897740189322353493673045037007571083278441483462648626969316645958602410444725928829615157609356004506170468142435356818379544816953611440268227589517655322087858861883396898274571206738034899136932633583633665645426585119813632269207921113143220022538865999458517316341480582360658254483091000346314081821929858629392806216700572701443992138874299589325707895266363960255775098626006693458128237303531118170523514302922473120783965722282308599641703549506148309765171424518900701500672143163408800270244537396734223698560291327792604942517819179138642644731258789770857739810675244785730054500737738205479325420252136943522015453938615647443846159659606008064425587490210587972819536582631032067116337742049795387339821034357623012407378532170090241086115434154180758331443461234776910906508960106353683237659533343010051783058245304269442347665524195558511902230174000285674542466959564173434159525198235555460629562928206462990260987521478420109449909912385017507154492409206214489829119772321960539356351969834412062549867997578397380273758934168253469995476341177981966731138623258722601602392406481601620986787255396948185803102125882068041280961952614936918877765000512259924270303200800717377691362668564010920214152263654889080196679430368713520422768256141858323746445451146994434005968817865119211443543217510680799155813768350151098810811545496359485676003355262955379103801691846724277540453677554210844099543418381996642066157564154154452623363566801268657721577053013752546377541993609602471569970894139662998424613983587296543756841406972996848236786237974347003508571370672380770546648020345012437058375004983372859137281989224449471160174594779175745324197376155505067994040004217367653739334473877288110633316563797728335983022411303021213609245277020595533498353325422634749317605305738588403986836800412663483908125053926379998934266124832782938429130711037071222110571023198903853271166804406240403043830012458657550068768822916117524293513330936096402821276396229571126194409964891322593011639368612985368658931482769955644605849763224061335208455461452058801659338379867330350820183433483999226433281091307047348835019569959419376732186945788791066770583183239437305761659356895734400864156042665450519444742545884416748901485850667498268102068829791515660804437828241213416748091648698229712353795396296759383299389882400766470177063605982142453612956358983915592617551964563676278967000918763132183563945302076600886678373652825582200011040727018541544678614546277000951518684540034454837294904020792058028612584142483510397296642225133350856316816016199197275686156202936718529509214690538393328990599871243492765123482226917796924223734867997875343638243744692749223552078609733212926122464496852188206830834596776480856471263093162260588707193329605913692776296432691960260572973252246525449104844117017555038857560854255644565028992432601518645700454779767190007868365613734219107582031423995820157361444422886800147189336206562398713201793301606140930068407895401945945530164810752337030706105230609577241859242938091872014874095093692865794704998471051558730740111939999800442487692111998419085447274775222637674268455696833729921112564812845149229669842591897041505787922867031447981900926504793073133333075190818196629567681147196503488566525434167366933522888108825398768070471785361255697860613625116894605184470451859118473485038584304946078126329119086379123236724473674562936010933779829040688909327239066805841690361796872506882725545725446084480847628163789690650842596024494984634066976582822699675018301879685422026721780188355629876754402439518606727020287492818826009584952236672277023356637284216436441566834581322929835487805778394637408754859040482244397680458423074022681220291551177580671658063343332585395014528009166963391052412487495185663885855623510086574018518368292316001921528429249667253435228479274851951811640257885180842789801179939322436029153668678479674436249717974612052411899799204842873022187151940979384718094129545892151703256276887815468335395866346198316336838349788551032262370000591878531364234695620240771541621258951569352720402841530570325045007520818630507172975721137702922266524599932162426522279356559086088752711486410434988213394466263856343909071224680011604401043831439934072319089343097053128391030151576251382078880223661090478679288529257020212298616427822521047253667257489713815774988522150781676200477469828403164444999646258850576203283120485254239725493983320021321970963564835168867103932380470416321090266626350454913954856766268380673396512964734119289899145798520164770110396850220866900301617722795326788818696103279329486094635127838698478618550125631474835362116359208345046805123906752482989483396415316296847812889093642788030056514155644054686360967741646807331311971081439845525927502550106039260725601502412440097459977810589495523694665094557394218322520883809618909926415565314149906815039850832310240578651226899451390086936515776121957907837784826015536599575154245238694278706015130002271569609288119731405332813983707487536010415156132810749483574682038343254496603652766783052928930859818813303399108327192799767570196912488890170470353470622051465431253905236707266939683274568125066189226522680109216667883238456741427466700396134301798060623569107637588556227292986245352541971004876684575400763575206356222329740373115490029465189127046898204482002024015413157613707844332333319652501597349786728031819859002096180990118086884010389213840062337288296270662862337924511497354720088338103567552869580244667273923350062752745142029682296630163546191876070210341489494538949192341704104963919017991676866123252112563041047591453440012016282117326292657637716358835874215038908356955189702134532966490026469886418090575666494796064155828770492070194405018298766513376572649276716434310202247060311426839705175875756275597232359274077405502939118570809313454800163174082569324443285534303335809592338330926811037654686729798107011306813390197995907376668592759718292704174326687172051803730335680873600564608811341414219351816350603123607359226230661977200315949500511446326037454876377661946047739023309961586499725173858998712988949092322711844563445038356556379349043493381587500003190378003089552429237789289364666888726972320656539685938422635191404536667122013726258938419979160823960620362415727385466861786955738025622071248232456865552870419037055044179788283472385994885850065239335578151683969017715348963190967080688685892230199538500979577897111628065402798996362868895702765091247162281114495158136191670572074638114121581417186946018734362104114496589685351392653704682384324226793324683349382625960212249327132322890626609403535451228247307016658821825573230509857644000739234397621427012042345165676493253973725411662172111692326036867550159314543206573941164540080296314083659920338087464985550320934892440612935068411209189436564599508724729282197228610296756406501447205275673740128564298176433113230219510244007034904464588790166028452427129799008756797693541651931815292763377849138773760006692258888945004841657357770591694649422989294509156193549082572285740647401252960716532961013588270379470256737722601252446011096910650277092245375500101978199126101581479418309318077801666172809343798217607376099603272771441536405189071494004817745329994704280603825551110890056683700181316456726366215154703506249691902567470754033393046193658761871585327803766031702213577521949942371314366805593978606612003182195647445633330239219291584361535764468516413855467569781803355085329663665811428328610720405160439832268015659965594721413014258170863366929539719063539406615122025025294467125700329448053821916074442338643383011274746257453574600445035153779516510622371965168674498221162354675487385924700836215804583240013626959024242683021159991943306408479662587994077131455837359236577180524211786061574016835352626272523825692934943823642653329772576000085387183098798604730256314877370149787092765789196689848719718239208658375064419380561567427362333266171368642852886360151832593008459679774668218797975699779073387581800102096991907388662724327201320054731794545223534025692616511869341500640281085628845138948772634325015017341361958025040239356271090361290720046046263020188210290230016969354808691117301055725120265017640765173241479495638979898932563149025503720854970499475623722251110770285816314062393513966570772384206324043579749392011912348171137627156092932604299263827622989648697387396379581128990696517568165030385512562446962567962668881879307587985769420609046562354789920496732607620482243170595671595756819961006259909412089093664291310914852693770566230913181888493489962310279026508927441296367148417198182516211927782563603207238687301589812596523357109583082137070832864846929336384933797154241186814358377206620128174019851547775162008181438400914873403712783106020749610099946431911331571271828651479406393332566453516566329307279057165422341557414854263062173567117442064080276114622620569592425858472780680866293798415120793185992553412433389606557844129384951379809613039359523659341258414716870779127017934543567363342123710430856538541452843012628307054434274965441781366396815431315094407621868318361464078891074890626217419235581052434958029973401567375573152970384992887244863258422408328262524097743889476480784699070955484054548789231805431910497016140696649884606129661823181381694875785951729127947079649770443294369602727318740274175653666080062715001476099572634925139435858683036208249480622769423188893537485898685583853377220393831057127729597548563397733370708482246172680457547365107106309129732640432707896551394696769661183282069051854356016865729150055981132123658789877890258881386172828558992271504124620998333543715065592000662437263828898228952141743985095253940964052830609536811088311585616986581140897872262183454223482789093979193532132579611180329731991702383279531794709875421682535915689608756714106005664117432655917024724906429512528046035639063726377716783024267540769388510631266854008107900452734619259244185450211564181766342204617352128525617167474247820743571184718163693279990296525795947652077293726594328669310927249102605636178049318923509916565873791186865393788646891126092100487793783229063251251737792871215782141333448096272202396934661345033858719983661389827505864024440717313126352628798599179806549992923159606732368975835514346079376665345819643954477546868686433867916777894342212410603331075968525049568641411685610479422997171508218342804346137502168342138376789321596169630485583329530237003147634715205070535643422864130682731164974297470593255942678695684502414781479786034209027359307229544722396487144329592673042235629811073408234626944816369564958348477211457954340041469368219793268690243008935991676604953081473805458124516522487499336547746819412580245949769492360193822598391878836490620496197910028998723847043214423594584580144396127399516193268063183579087291513296276511622436076070449541464067896326699312646934742601082777398991567048868446927871876193323087238421675048383082394469323126954440245609080600093017505531271335870285748042031456283779334016491147240092547440798870859264359226054222413290286310762714287231184756269075538942812446681278298707984199582095550949236680315400589168202544002631483513582857039981185185178287011658253664765704389575329982963495931229373821094239693725165024322476193979910960973492779121857585289225109081424318460001946397969118593622657786143933162624226842548700957073139686431029752806173333607455504698049212664813630217139434180703322460952481978841115211186201160735917736685895538062284024839671471430661368460507046188081069032992830371792441130879837642119800653017152323690879583780459163293596462420673437747730050184765816152517655405896906578909075125366308419719066740787842739853808252131966649305484908788142891303739977716699259201544849743791027845373956729107664450010020744415428683352609810959428976655355063850719983077599193737285972090935626801848199764221324139800049462719092925811041814806733850733219770863708967080477739670479139736925870736734248010523963123285952922700488052191723799606914777641127099821311205826660125835332766447892214154143779297800121381990940549909977377550136405070117394413484032929299958395835951579207376924558545008490762101580603346432558967594044293210817352693392571310776683792383582576996129389001383918908624635916329968705550666858508959837093286912779605903462423498415615913824240465123491092607251587847041971658828848818109252913388751973654970700261272763544004207626112564336706493187038171731255659552117651252573395417585571717068364968435616183375211273861050290229602199132844959975532473110875768837941700308723295659200719304716947355165520831753002912530628840604420054988653970478850659434192541671025933974833723724719612116138370858995768894587106787865373387556656099089624852548441276428275007526037996265028138504028537239845217276885998772449270230469337108739544444542488493078318808498333943687994967005789940471757391092655951181562211242295999025169099045456660575132251039802744307437372859916096592363507583131648137509709246638294668629736214095416341739896591913470950940385016878334493859481087418958309476253533211453313830047880540294149895138411409030466822223565822927594706667973485577520000444543557737276749172251501585342820693077887116173718493243631149731319690735444653379863850298808744503956239268550020965684366272891443570723017581413476429340369375018622867973740845910118764812617275560165627181058304035956097112260519212197492880632636287564043783218441060427389236024001533652413941807111873383261863005265114180449792952406818817248500907004918193043835292745696832419545661498122788433753221955680758198576283125008407352929686371501773400618068735191387712436529576297656493034442572693903607063663274933323461397351745703383727338809590647561798140260864002914704170698218029464703002614502347975887570878525357169201832931706477600206509580614137316324267224107252575825233950848571662465154398780865653514623894828235404703828266236821652998902867449374715979474928960043153555084818183775988681369163905313417111416998368184938252082344805329610083154250175884143059634719419775560655654332701221180902417286995811837439782995701981162586470695102461118238734760832612508329641776293940348597855063972979257825566863552016678003524061779340897794226501681848169456027594381216321253132896895966502491243895092904665778741675213958995960587097433376336018281111239827226809364930398219010898454798320530875878391219059998849663087324306606174880612233337199194529469368575168533896275908307211190113392341023048313226865549219885618650205855171725223106492487292454228999061497762316039548040674598645860266648504284686825659732718404084348194915150048610516739668744786051088376207279831547616979841530214222904456110781271041425243265066940377163416510070982016939547863900853941183233423407667806528157229319574814611699507888295140527948186555082557445792951264770664335886138473403863359176613528791434968739830321986853827002005321194218037592363706051207078547067843783945159051602184382208306167619210661818294674259452695770032161702985961330559503163136213818095603921656284346748582050961292164814630237296662238443742318233975134041947698958655544932212587816498340519405256379711220673163493531343627743928060919637185143570389536220696759007190769919543054731648171453140381496399175102626885052351661575356716721213511944893465069927211691824628556094150711943022035191137370361969302551433245678032190025730253324153244870898129121403235873331843451899842671534982637548044802418642112650177898710801370387016441526679518110403949340401562907063802187119411193548266030337887461749209424725445000187032077466239931692966205821190931811688962015843574035531121904130614694644895480200851192552978028839955784516897425249076253049190819162193654658706269181110463002018971597112953926146982504621497566488898511284166288352038824726542755016710996162481708127938231807198010452433851096526304336105824987087119917309504795758726010015406103479652494199135501495163691260356835490618998802679123814972359639419119550377208320929765840686181052806100068198654673625993274959716364108480609360194886663325480754466605672896759923222094806322920385207120389453557697921481486109929132715583924793094848666280396099004537571270891509960185307881114532794732177310324537678150989796194191600621209107397130043584284664252276811306608925748557327035095711625476467499555951108057855418310360930847890732652880839261527514397868360533746263009578997429361495300013815618218876177235938771017270815478310303205934761029610018674002321188027748693946950364977650163385827677282416203927482406113824680639187508883696541411102051310625520660549354849381923466689187427014307668194302661541336491297325993266638893900837692577570681590988545069811429485672511785579738882621586297995142991282658000397336583166668752051296967147679979398789701995589509284018886106971549624334258826275254221319230204244021607193355383954893860177718618916019468918257007794737663836713710259744669639858494242237906659803070917466807823593056913533395698040017986547281028438497085863942685261819530294889414588445288952678030916714539097250418624947347114962446865155845701162531122376526428046910214156448790189980674928811747037435908641456310017669516288117367409490506464426623166189553604253622442400970139776794254759255605128622250383614322115915333063788889958826872511610165051818944598597568527196389727863714484170145396665529300089934266414940911290442608631608612220507933082312595789281808370545850035862374601186527238218122303970368374457705912726313176294736169271815253884407141310440356288962622598194155229573598677102630051057178636250723860130462489192718334069702975472304186129382424980141397500614709373504341066682585183036167923782359234762524771197445852617515067739146133346591624196187203088024797587933914238563104263249385922220476129643034663964079343901870431286766095291922496404491083688931710268962791427193981375596168994431965775995177278627516238941060358621613488757936123233718611907823219150909092637997772567545743622650995093105834936307575046081063828021573546765175879598055442905584759621235859878233826956083781506219390875529060750393828923537816694935908650719923347924478291254504379755496497019780513417140944112632773158201232861159030880082728612391384314984754353446761457380907167437481199252309155590795130371598433653051750628821118441680325372108044689166889322306825365973841893142731748372608536065804918685813475763404905996974663508668022557195605739436052013261754612957592990061628407518747804620134987983141186183788205028853054452336396723994131697650447038172283742330239582647678551741518366120830153843810968661615356504008012677336713065107680299037957564715282581488783718103084256336659167824906858438500024315175140679104286771537702679078271978224655028766837201597468472322844286812179399188923595687857503331862147198359868572593696115673044836694732189934214023063467273259425596877888658084712268845802217697109675596782429871823415480624474637214984194768739212777110369212839837871905079303288199292260467144023744995124013462104172183691694021704084912497556858108220651384807775365253478159958579709929872799665124476954823236174490429329067823103423029333188678079109141020104094884813896912378765481586847694347967341163492552778730173523303359474049749415248634281809325926057125999175248953114975478364586585445453142882856139415675294828814753428545656360035169512290238706105906602057345885076396737017134694174294197850007497951117255233342043322777790501628715244308732307395204826212202679874756905056805373501620896768445620685559046652417944508051106219393770782052165681396537204302601702094527651813611707528548160296649216722560651634588747197433689961604114499582169642058437503631448636209431704676640622663777090033214225698750178550146499549404017344359436410878230109718190816656551608883838478507744253076470820727993840727656629317373398367969711383278268130281394656384933117472846364069349747957057449160852301954504343895669621586403977598137646495691294040404684668770129103517648333621722836652699899021729668207641997999716461006221688547363076970167263054815091399040641708003724545074436345187690032392864971705703514256556808548976342472052779709500842033954453987797966106332871007445154563997513793948516361199684014833254284822075699242253115516673075667921364636866962306334208167138221590512932588621131356862100027448397561586472275103875209397532977321110560387840576875211597179055356882534690352317001419545000327573280854959486073884547471728001132743009209023081823986617392989608511462895740386371901335292719346109315719727796059590036900844315790543681556766887581173431278408326235697007267750264910143796261859881923428326182292094595245300252960845313246771927034904466937978359934564852250013559177272138250805746292567332567859339121667080594018198528452258179835384028981367334786660378753715716504461583212498107385955950317616832708566281322798885438728391173707769407444460869713438084500269584543420011394679849045696682251558685059690164556870412891586287084762900700586294157676871688600319620179402659777984401148716560956374217887760253390567609255614561330767491421739784726533764699074033047405212382888520316405028176392418998885857484051630343098324184718380242609696203679287956536082195490127684595879929224453990366873253301576034174870515529992216491788781423178671220963917256352769830915042233401474964935015169901323649545673714559862155443911495422683818569414196719651380815655485984203679417117099880030168833922012547274444387628440376559830628789914509909436153485441151076688211160228937633748931605256210960759934176111749484626620632313980490307660958172802595045225524678128983489555974861147910013530134182942012664490153206987537991272075327779101102058488735791346337567377369355945658032844636259652257387233580035741546477311550699669345913929688074189441291715074305119847846505839492627561705380223401037103834798357538859936244402280601330196493340843838781874713204704773774037997878007470463606364884587754057647329051740337356211110131718719333243204768070528183130759142995120627096690325065011495210159695371960799727863543692296653827639969028402933311899740383289380159220086060866325217162682332409238570728243956574146633569952084162604493743088442946055732689454553614510056543204232974964478147249725522780050512713864000126847032177501620941054885435083095763158402054987175210635562772167803270215059359147847784978160714115671726089609943148990338458915520354227295867873214459683664903894746492954716124445738414635799207537134424910385185497558462443684355058126341320992042457300776695169679194292276886703066749447205107099518770944894412040603615030447463761718117182719090400686398892949781940177376331545058423904281729435196136389926472273395551379198682613100242989776174893663147401232007137441030203932288268662353813045888846152208430848764438114801270818452588958649264570661603333242608593139934165196153578862737505229088601446779427461465606199089168164758980917415668632323064607684631231147672751136164740408040981419458329932923014957031272768843783066243154067823414850253453822170039213034926733776074666140272942695524887940721947287792367266955718039197023667092942899918122299796659856715089923576299697605127249244265263611748830578957121115563487357688010529760941393624912313552884248620766634433455115890322706646411523113991820667286506106602914423887158403364883412465035789539329340227607196624090801857410815171954891473297271083776417224982014626948039603909320074846939053149724326813636034390170030533166488376060768821288603165377675762580686966813212205622380484107709424230938300554511140765779497380615988114303380921335705903050804948341469275412654223648803598598789224499847681462270168400416995238507244548248306493629545012736825706963152475649877903161865614139398532415783250713713666756339516139067367833019538045828603764110615033690445321730612316089095550627150040270394457940854143293642162262047055346156236097231174980985588104763585598033336416846232830885710305700200336411034475426879800122968284679293546597421980110690987150687695083934332978506825307158374770921276924360325278449806763834454613768259644798944112463767001222978500983028412139481825446708179392643200986313331563256975542402639024234925579777778971065731415088982354289632837197134516442380354114380168312478463518597844102990028076461146513880694320836528117061082546670532634596033690093296317968406463039001631746088730901753763110638054799679524202245066803793798065522671018469247418606540401172438802781909950374714697498798991325317493278518464996758541207439380685345501185960328014251062785080830776198755665948187696556523579445122568912317960021672481208072475567726106025018206435207745554649657089354053506167310980459118778862574683805251961414732220305500701313395513732237768815997363589378989443525167654450302303527922949198758986069688164593488125749322500058630989357861533026710801898943582940396001801292832358502080279387210143499823769769910973094380863831447077856394761260391734482701481786722878592589334097468218867275377547626116392647189278477937268990463528363681322327404815256609742996879013902160333579926780510374633785626821882063821161922308541893684700074630013601644285652149879079390221228243348591536139735371791366580598410549227362757180632689616895199990815943608918353345477039844357214038282899086166137987419992457301794552012594657614721865527454213963414328388675563882591199291972620756114572452101148618833011945994669858337156489021753016837427614084818179999325365711325295059075878631725555264153781867382638427427593987690327024067059148046908355566382058000183516388205003409139713535405894223960147904663763775968304434442792236551290614652934751271604095893995581804751952655754393799341617522843661473574838208599583807887048968783523712017692652017705255111174295849897138374636101539638052269937617062697205483887551840293310783199492404985078211607972897631617065066204202080581652726002563734252586277164312381793358288215529197264815437345604053171351038019034385615430376382264586938277826395782639739568147416415549307225688158421346704739190371246636771681213399396956600659945112584959472648161441306419662075871334314507769713580787385364428309325010326225036395901001885279785570198354512871861198726297210330710464426854062358721131455368596334411480610437935920371719840904471219159443761597715147302425919460945620598584103084941196058622654077298576662075758529861507433212542472593683456528374563963813028212190579989091835199077776789930303208293421178046291788009782097251577109861265506013347913005786440603114115662603305970643217573366013179499323129038752210712551326128314819390579318065426133627809886615798053614545629383153744524517144827678193468395563934040243160263752120472237224076991271230505902069049436522285842612084954660039929144159723483726833971505470861700295001627008250294750169244646096178196064639214305345971279589478173166182614168823273798771352735416517279808561392093076662038508618734197707282859992456363761759985082167168285428070213668534088106378399630166312429748810414868814592731534750124747187079139893596042585802584265238116723281098936590704009427856105874143158704519286179066572147327235595137467187550559722069141587089050563001742121067859763160711235193069928013589053290687186501532159081623523064663163812846078080070764389447738177974156085549283558665147647834892056923750791754313721900531339850453257810295504604470373278426304462918100018524271962905765704659782066206412850701890468290722477688073705044588545042330997450796693456603179727573098086264206656779094254781279848019029171702812775009989658295752753267272158099076868601505021129241522763646900026119086330165107550992975715542489483945215720062338994086411647917086896543461864259143870003911860616205627432763710624486035430160199375458586208278774031708088137740839157129006001843791980137990172327826515168679647042285870393201143222369261523539590802251547550503022218092312472541408857427261171043435376715631452958252096445421501265030044077578391363197903067320008808421457040049200205526969997212445418834542576379380865441438411553804224027596756629179930961521072270358447264260424259733161442718986553217268113785054840167826527511190924000454089870247678930531838473640707912608390496692654404947383203758985836467343657366027793756929848206524513639555914572718336862461457745137972449196111713648640358660460732153844236657713631069895304430828185468562826596638023452427591175760688373068136713171447355996330505737990037125682550267991613015533860565101049778534963736452830663064530772551788217021180354704247249564937223065456353534825402577454935930249928773209679768562545663166875749761345239736208287749890460635022880727857257718925832011885602808831409373326676097824916038887190478536474479141713162203658943172690781264599755247624882545291080367086307874448192364584824435122793049246798629077810915102362594094744160153182695586976594935414832878666571930389165565596204855740321319123791051680566617562249795102090122273969727478102439880788850523039912061778827718761027446152136760639261198107363615630381025831270346856581053114607278074751270390156285688822370045465805336296656474342491195007610117903128912777192191862520632679848732757464360786896349905835959964926276889149830452855531144545067702856843106794404146352381270214349288429586903669193819482291104323689841158299743250729781678281650902082335086074583263411956565528055363704933016360959300333778030474279373216341123152906264760783099829770402409138388971075998327740523573662271248263644317242062627393685507294737393483346397609218830028307286157589540006447847759195433366124276157706655563274401517395305513322535099795636614579593131987483245736660229775151055186237421674658089247028400844563704527658631379302858081554679387433470742521620814169153309332055284515954429550822997469617311990353667257835856465130393862162151301886602009036052444456408198394932387274217076110433353713261200904799072888468293853887892458400782022459795002109171109285218988238297475670416701324968278204264781558180924950046233821691597002682375632495675312755978920203167301993385042909014413440891094109968536430074759940182156009529049861182045270844295065494772126509815922983923824747683761795700898092384043938435789362457947056667609456035990566653691270740310210959940707446583208634659991143305183166814588396340974535556184854412793858134342641504740308895371028273158902306399661440318004200964491427648686293312747564300470551114734901099814031515349834587587968656724048172444479356151619796390673480974336123955617728849466322437693819740534884677647172943302261412271443954397207666394113205326609454459822996752939550020310327501967176618994182269747147496186937393442696277980260071277673642861465591933919213840527845849330514446301260120659329559603769699615625715964224072294381592376659256194563061148063383297468220174527238979427555157552072896146962795000301515780696613368658642733142849659364705939563876930292166835653468311918794072704306431742830263267680213687634970166644175900196505247522122394138688376266275150361645583585730569100086805836462963396060984639526790389016154201764503159317859055129244241062370813841986624344431339493433163188602318461694051990320359448944486322536390035245250874314772676209605615923203874422532735001464265293032756533239576476306345636393715084562618165324164342865372143232575334578261750486952540568127602408463544786641279155044276448162895548193115496467521859803162492661383040978744863879942534609240522122103729423484035147662011406837053375022925072849330559847093032859983566246102316886051064149697307917010194783223056861389605282899180151758898812657613702467867938589865893517408449721777183898596937193597336267087841369770288362962523371296100635087671357493853579174366669338545700666211060597163728518624250419753339273107271008604885588898640245164103382424271793695244054420645996451019994272148040062620050185337490292119856701200142047196457830835656895983109801222461837137639758183230913133368333344851267979821997355945042161831724290232725796554530975602749184347493675103514971652059594388766501357391819990261860655396396093567517904067271907255855018099088634465912989897216417917417731207425050770203799858071221932557299252715133497376436718379168141647852401906591853651120473759342343018290779027302962598872002605611875068523706396035452935950574406635571433857034568920653222003767171629048787657874435210701783594753790311528811449765787006222990166637840992814149619268742388636246776127392558585260738125561246354920328772274125097981698542834679522270703348247786245768941902662162817418418056078673696839823814162254955820627495763695060203706560107132342975131064944517247133112699497105771079307807562925420234205261916405057751036043571583800082302730659574148079980600434082887383972577234587619762674063800698469821471016696219175759760056729704652607331133379817047889075759148809418769407877119535247988270888860040394737336648639484308355809017389375612391141571279578251812808385913382478261360206510186020118393148134575939641252775407287127938126935538108696768172017389221849111269493606393940766013724360965347369834322121216295026900392439885231721603213058263691976828136229616536786652886702257962733930590870037977751032310140636221039481903290540470438432643366447049201032864525474086858052132709221655296711711058820049943655759916138406721202751200792436544362268984923954833371114107243449508821929874123385916743332349637645173688836347814743902008340603881393706462154408757803286334365363693702804107862441191548281969858395978294113844853232765329853218581504274427052038144161664034251876337334068401837089274523133652976639435726286874119534826153072720991796903421797872115120883677646986225637573854900194311691848154845551523544126603884757526274872697713372038103881943103880267386052958822533033003713206647180639659738409115660116723226075012598078659690577175187432367377347515745403475127900301570512378286656157504715565524145187238165923724898182355044183859345114640915527482530208383725498106207993190262569376343934610248872507744237451904987042399049751517703307297400797271505043851019474091880907869647064189299686732379719478274669785818449856958337101841392657776542781838378176912099893886932392180194846926871008888118284595756329223122603724112794936160922711933483734672753732385722632356068502357491279705691978819473047677230217515812018194308969006689834610053259605815328378643305908569885258382256564442428128115557288016247204362220899346796408101701046516107629130117440994678330897995201088498058747896387503247588962286267020832910291520407169099311886455312084208352982065341472244243831281903243445109891550605404825432513156661346347431881454566575724050639413502058283197401903661785824087780341535521757700051790674625485646975072020977591400618327361197659114683340974855163066790979693194257204397011796272088402528140353486458513826076738338393079529658220093220404942891968200391435247477300398173168363018407275829112764010389412505614785730185646777518089099768098118372801500895699217636820827817775183233126122736763651997870883865804058231221823859066181673414917409471129495334221569849570239283577542855174077529927860075970045631654469680145705876051130441837825821455061661304777400707603008944834779362615569896243302150851685124917654130378025563431596545776348947750750599732788109997455548982776646693696519437395943815535097520638907571648458379374512753453863565702832838626136200485122300802523396067147776062205469406776997935927121902211736566563142268491147949772196720200988980991797233848893169732063649373431485829741632995911087286407090736667534858984395210153230422808033362942545804267331702552812692074334417370448272794508023823480548115817918636464857097641343154057134458075640094627302809779381992993360422062306479246738198676882313670888000372907167368820811704931329358061968699067129304046583863595036423444418122186243994865767088836181806894900899774406571024699961377436712151715530770488510062316232532606373622246534229097763230394857502767707853292673834198439114719858832414136417398079971352623050466658721099285874089343703588214847532737506935170508858807035108605015614621310506537596087528622627911349571833094023025271512440237409406512212117676142306200938793498673444006780147528539191671295241248426754474331329474570636633559745456761939357109366546239166294156154373527686120890473467542472712889730624833595618426884740375262768502927575305191297125994434756616342249209134615862381990485815379407631361794380690675170771103987733999879490648726837475031854432204816677752524153438792446013506480960743132158560783030601714516591877094008808536189409699375389529014259785030556182609449923230575230116716601200242111802288911909784158530518286759425738007492759316240014272949741612113232871151931611475938932949091474627801558127165374750903221671326846014218618120159743720598572198305601124373539178108389549675216476977104788955449820472145280478612164212567485472847172285659042519850869046389400101680533210104169719737462064243250636977996851471732676873081651445558884127809509436834569288527004429479529044695802833334925854006122598988392857691315716228305423302818815324298725098726081780330252321635964320155062555612626708682467904661288276843360094396042161884092649987780631995123158708333074682540459702233996841327877813902321224530106882678366981937148405196091687709014597237318780085045320088412703630262105410141019247941435154313294466753435178136031463654192440302520281911086652124612255343720522048049523726024055537903250449521260031530655518391524886409621997881678918757997081065131597451164960424974814086023739386081056271932318481290993210884113633856489866431969151803388535123069431926102383143941317119534138192307455054713250725456628291199933779738729341099440791177661151083783448439462121409018086803910396505457194830540933572932163541234850668777314499166561408587599994251542803607303215876616000544480789404597631033246851391949604799450680201375869507003962845966780508162604767886864137109288561283227188253854843530676002285059147103168970645776579293441550970205288410620452859789926798560720430334335875626962125053247503192536470032556627246536083677371193770223753803646152540447594200205670299439471026236762133996500822198810528036671692754203929243097268628152117215103176966997361471628739612698568005851812619721583036499564972120026989572480454199142888180869874366352094879186858774377068945057709504398401762556322461888317757408662317706116454125751626970267193305084437503115557336480335691904663966525852339628806613161972264998081996932006908763457347630943680841906354305937651634800499758298777037087330393860715418622667752481300451757770978047708327383643842939210089505678334622683330056866735707846331357977721775464756802420146093128011495788655499061346935664772143400551395112831530491503702380006360324579325493298265769986403486251409579410419534063859393043512895480432535735961788203201241924409094951093572302410031432334432659183468958834647150412412018809427756569723223578041859277626010934296773688033801540787825675565799585334201039369759918807871677825988128503686284580760771411860195551660040472549980550232578181387931198947047771472144857106027143008698827895302918772192856939824683554367327181058633131436720032599279425910502437280045047136838352954792384842906149580129988842189299790741939924479823494128862937482215027997281881769421845006473758927721532230318250974729680475814840229020783458539945197324367544507221140830419742606644060612346673903584702677920994380271971449734763184694496295055791789130593254243228460470893628980113510758978548542091181157105688998253314894891361216833736852325800866157724342446056682379744105467998968789646089081102500967658236937474498365422077805212422722751578126759157106192204816251332238542393062179733700062799911291189250857657446524463627539257050594927894627243079719768653337313689131841680764008647008470733147723931708348815669740299942388248842823814083473871476966562496266631433684428557243998926182376040955961709180374761979798378759566661648517917764182660401451514962945958526419255212378176757434009308563313206617134352321570668917110292975179980935851978868460416744161248432627456686174554749207006194582371016419667607027950721866141233352789031628300552665003781719999390657862156244247677186792914242615910041319439695972213269473723056947557917170884647303573016325202680565419599489289370397537919000921090203281268231053060825323875245471745946872253382974631162949869349519538807398389681877898595825568385536474349693112748809058485616631642946057951051790473169948417074010882042984812647724530063770675071455525858989450482227195073645954157507255940746336202394873240087361281399653446887094496746923982723510093426012123495254075467285832843074888745519354273260779654140215508981707979727904665084715707889695316407651281438405096097853224737613693520506644424769124841056142647754908671581909277456655141469215066423687409273126630882161202387041397870687124265354304929639273192335042222354084970068788434126611873286013096358346165474521354085183071861889228533897517678960333324777253887701782742158015378717847286346495099512585231677372967752376229882767377771431900275342742039207123933426454791103264016390970869500761254711039302300010414689927343627906471994908233126485903275521193472598005265590890252067987923340239503948798902582463739759031284591660975466934721076035820284023830779578558173645649696478126965390615735837770932647342606156544025609604748412861376042683529047561861928391053175670840826228479163575787264640482124834818175811083754210049000385051387063223545883420921540784348994993521011026459639477166328051286299762912120817467111402036609834148793074514625790715709081862515698912152790645258074065164331265068861602724489265522910738504025899896372647970709485259219615731263152596268289567010780754675962823526028184327811650931964977622872595641546174823015284657317252222673053731504347971816314350965838227867344344581272566198131100943490135918882625187999624396902512946647466385486785316978087976040988055459386225447890985848786987373089195219010852234774221732226582070272500548511836752134473052347940410590653160121083204191518703944100570368916895091626360466934399228646121160014656129673497219404546168448236667247164537075742601213595639512156847423559933627224088777108425571662926717196630442721416952342912268676396647134422994269587241417865132360202635519290206892061570792275642030551811049706778036476236645829722950030165129177744391180375397065542951642085590957464807382882160411623267040087178385498036685040455740648504834717153776482053395684097258938384378144797550952137177082244299730440042272392163791604239569347162486883821306999881709953890308974102318866390979284140536431248596410956863737828025417663827860864771917325260994088713451750397019009913581802573360996116922507692730673169243010802001059907253073616939194197193626154162053959975348153079677452323393688534720839334346256186727477432607876688621650579505161809486258866030717250531591695213537995528027596976706186086860499761405901509232336747642551473829535316189261887547940228012276856570037822718254137195559910679741065437953231336692075426134668367598286196071886518511933312173342846701215070937156548678473560111979814981904727897008573571309271448313150208589102914381973460060687898131248032360499661037454185562047168101875248349316349923351018879626759901315434196986428385248367164569105417045510295338816473011370437842779964786460252747407888083423299502676679576883921945634583111098052839283181865705470719237404147691253093672155460850353807350559053644132431478697480264771674918129077393402226445189194904431500258178315714758707806679509618224683907135247424102983437178993619185662368396436499186445076813875411873676579318554076855312228198959571741394211985366033020111897012575830421755679623119720430324861292349225151663374732540066185540176746966622394279103100451601798956945580559378335558266794355435399982456980089592712700421094376289764681250405779852453662681639565399883823997929589807039566109875046924158797654384848027055653046825229601947987198053799595503474019991361493138596922939370522596158353280636948512733078934784818327845452489758674305184422401932230437261293733132826499289762847402636888422882444033908387747156307562585463474695499776189306919362444644878936771530699427250091234061266212537152479917963587098752394496841527980564129856599596828374790391225164278589210609274117849355397116201930091722869139477929222238400073782693161040520247283417912808458158067435061481071157008307587478486827186092322439033795130650425937308774697377110735736439637841468310418244107637813096019171548713240824450964565986396068275347564163894585343211309811785131340235001016878408569984949371458901333823487669650926631736086957137687730866121366541326787882468018531237163409631675418921072260526843385923585700576489620855418065220582802213861911954065099773184860539082656686958536679764280332260772703968458005353294547084707957624854573198567778909778706307886634707507581920309282628150432098371460517545534420362594838714386064587817854404173614807510586675767691388492932991653696170598210846988368155004799529312788853020405548195610860229574972207571653078796554663946765884718774614743429861711931421149251514356584312312563883021496934738661826742125711032388919127996844049234964392662170086884859584488637815382339133708351106146946895110522008446144323010048325049281740869292981060810946512371634881476063470996512929010653296832015296631442882708064839771985821603815291966159099622823316291603539345335821853045655442704688307341334523176613430426149099958352783549327208119441714740350419256699322189311164161866958570396628748786192922014477825673600842258018144984488210594428313919656089010721827047184625262092509737591910257355272721510556424939426434070062669721483452958853122855652229459020996304373759998244295516147254617958933876933612133455159329908838549528873747650868204219873260800871852475135814641049753565978035761110017108363989130800600954150044086126584869556548243800166671378024729678892904816065377974052312639657049380622512789200673569962620507967348325567589189001685182010595280571675530668314865521451810868846105900222991499154743157086332237190687399581860826088188580835400360770957871807194294047740384101113620646665965573201554177176630819021400573579684261942533741768225609228038886853678203687201269097291868071945932250309979445289323203441672166653683067489645972477981746445842393404875560906741223409295390872752718875978057540009965297168393424099632998489353830589975331295708984775033234920670259923433492809838723627558216282878730395143527409099682991048032340216357153569647774737797983360082292912010341147182307998073768701930737339945341353691906835701597763058790462614064139917978002328745710390901515580840282116473658824821712046538392506163166106330149848350498331583781500519184297832713942922853620819513416951547387082678065880783344435796123373501562393405861980362702851441878197909714228554262967374296858541220307476974302509023498596821893492987666760162995533101104657534845637303397324478825242815201646129689429407336955627717360419302531977134313054281851331261633085759905269173088850872536804276446490788196510711429767407059088925713661034015213645596975444748142266470930994230331775907777074872740142803068931450315111323507717170852364103923165772137010424791933900775017401397140752926166444651286255075633039239324748878533237073745483073848036972092903144324832371170609146335145361685340195662195669985154170040131194389197174809550309326883399187510833345378107057773876396588209266828405076089583804581744310185091545682891904205795444061597900873166570642585765916359922513819813428876488231210298569094996656625396108047726185092573683087773914410623180429974335919579254498160262663637167330977142057121329282401311175028898171820350009626390430194497586666515645017510750381346173387079028384106771840400868036659525554391656076607102608608359746319359324162782164614199942780629653561211982177360726496059442853133997369679756530743838506002531109781283067356069379613031996125396809800938633227074926314086356731741184859429942940343482306395914282706673789518542749165458197851480866344625387047693721885515886249553389602271896664002452395693192134540897409662147742620439989613980502621510024073533540523698364891192953314334404985351054731676428692234218739251945435021548157131774588351265664522880874752463709246471455487001766240189534311411704227194025077237646384259870052831143929109797345682159548332045885948626650869302035333605271301464050505375388402514767244875367958033262117824780570546492331232856134943702184316638685684874078725329177781669179483884957210352330089099691512113582930644242772901584284107706963592010654821277219189518360767182145063107315278941934567741223806223675146976606546194716417614111302875655411972356459065365475541171844767977176865418398162965054018915863885570476427342927539115042113240424171293011714642540017868407127995768020132874179923878091348690885352044603604991245927625494438944239108162114141248360193321263890144539792942562074745484533883846139537449454215118464156117036216786960597301014331573377442552359746149915896297490930465718036672930373180082380280346222553383223722560697734981653311350019548687140526979336805086289714296496213159060549301648048889926097795937450389691518242907636765874693411300114606362816196816611302999563089362630498006833710188047840757399796553362481714346395716055760519091360062197888596048314861317635762376503532437165199938857132575336340276416207070467170991286598849338798473454997074978028051334070929715267346126155217770188111199407374557914169839228564110245751117137144621076976260459686614949465887615199223805306068896979626483541311196743025671450540492302884096271019009252254179992993285717623522162063934533082809088148911876071035587018107231929588722106728403077377322654343936422807414555133203682035435820725676961222096292539932455421419635040778163619275873088337734997447692886661646687278963920083117637855643888866749988541246645986019338470768082742787063074654551815916941520288400094457824124069743081566598340270083585655901492342982161375466490914033700797908233243253462827019347526988202371834666547800444246543235489301245300510528453709397808068628595485687151624272210795103358369263624099168261718965338977383861316465134594698157271214683954693482701424921299147815375063615855916827767702205717916780623117171415409867168740897561079784361728507160373709948036000778111423677770570038937357535850074293953858564831342783458556233274618359917762548657067063529401211099511894890793488571929973426028236557901517676039307196626951665877838389653376332674291343256339180739169792985532822160729282026327843600334347627826419032653441982349908467998120890323336004411318901163550539401725397823958848733295321787942795131329815212106265837143917060990490079022629463305656973356093488852524672841374156727402475715511643527976762748283408188640452297877547251891769885072276857346619481047731235285419401330614566486054780433414707050298102876250148213116301901045362404085972482822799624772265542514547477874962762581266666210322514270780118265414925860460200107371593184416349482729728220043225791512994095188414814239348467936989127769744153139389362862547174894168230977496573903126941824229461531518676101084347134921835258736956575174522992661341800352006702551200156344027492809824061386732666942265719136301134317608245396607568498973110529839830018738995113649686968380130561858114984912781262802135978339069876463736195954800284249218791578489572119509979776306992063790759160649011035839811609261035958174847495501828703925956706927950691840951359698795594745939849585641576142617460985764594618503309762584778166953838828659674633165382297188691566220770300666095288425055256454346606880171654663578254394902969037943154885757190969797353456116890320095789096712658865158557827264627489355277595893164162784485942620515124822312184535262766737907064322068754770150070828802727897740102303957263867901071672595599162363502819436722580147977538436433808420547316281298433907010974366550020281448338085414968178532170652843054046681025496687740955708398355759460386384746406289281084627221390649246422253953833498338721056307988205758008903617966375206454787199298628083357215185199626110946139689069050932580553808653004669506752194861950467668537481740637855642068499929328373248176437734520221727228417024608372739329451262788309566285907782483091091283260976197270802953094558917937474264802617131723260479400037629400242727614996629308386411732668059375563339359355238459660866151032904680379727379641878152287439493000141639644187395223604716919586818058615168649274452290101189950969098567694522525700045278163990741579134044908921572706729448530214258288558326943945175558811573448593513702734197285551705741533774406131298031633529010944579952408530036892486379331770054133169200109944121920662740125988789291694594277938910092621356330666372648602478575127099789316247717867317992586129793897280739635667498217607336734891095353563543080978093475414943733390669938818984792103862913161438174734107489280960799650589671137443327837638947894151548592489814430507625123832745137111776834680708550918052092400417993138463751509804170266201783013367964105805573443724094091901128492789902841582585637482027561754539774140876744728530594004298723543537606587032461734582061112980037899444695587011999592678795663074328914901107976736513490681134808455323412142339024592475294921600955369798248751363784889662941771907728824785234187874308883921888722853295881185894178164845669138957898720620628579923933060502643723261598695778083243717346536732444750645394417302793365701037032581341877038304934555623807356488512085812692371336448896784644499324786287330717019168357967145305454965513668046964853940505321049687291594724882762289296478602448320554484898653906558943993476834460058348077546206899887265221962675497321887534697164611568381917928616066940311703775166463705717972918870287376373314639148582872964052240377265374196473841271303599072978807757353284943481694682194524623405951596863174008634697969577205999721340118250518937937203625911435816916617158911160597737593813271480471918254126179926446846658011119705088617583785108181427241922376864288464211891440293632683527488444107323429165587892239652600779517628426967598748774057525747532827680112153955403508427327712272247556257270245603833118998706957582067060382995348558698054531258477549533470959522674684461274743897551131242264831127294269172806911629960351641250202899741207773410837404836483752798676503280407505164023890313510571167271535177692825045581506893895414071486010323750209687162777731727667027195798646633268232679172556804617225175611894630984189519657411326766647718915621613628207116031058741277467285566636643752101973784479124817690797872395894085949609014451218850395447998609124454705434122533455364494171485629099957570518053659465645682564832938864339256026595481256631448272688726663384211958692022730802223360189901944663495288944845945942327015620820198424951817600246657597973722715261855055350697273783076066598151283068801611234068853832910625825387999121370532594166698531306729405839149498643216252303780236786954114687694152590871329258683071629588616154442756338034293511363071583244309306496889231094130505177948119020025445404860335948203695934262469425315552037150085691294934944122445136139820756056955324361735092557432830072126106368959971249597204691711459468942595734059832980262523095259281642229959174441457302274936500261304309858121363492410480682963814452028062738573885127878220684465662662429250148316179653508115774694249124201309824557924667711917870024155464793872091032425865102968158965050421086024661241478581301957000328264755067193552779431353808267122744328676858739646534790641505746479948594360434406742311283388714555128699011157136980996456766973812960192586237293088498455285660553111226972722497879887441975772751438844881757581699450233711453736875141620990885672271412852467364761327925038025897865777273534614566373506805145482036525587715861676029409523713061712657531776292228513692721654254293398304276690458998093393681848815781300097416217571720461021200876066052600273175404321624530863000675737134614583126636177116896373731035944581170497351100440594211039015861066984467740716420005644337684547113250906525422123136597476119494902528503284747677714162550200637227830971271721793637524377841092194621630319449299013885511877885573210860765176408231063072156068287259421487220043195380994706224732656639937966048265520770544754895440393576901449928897669023814664448540791558569879717808098886696109160367391645905545829915398998527141489169734893045883721229887524376688449207285626286068771222765112675084202298876971424850796720268662550480747252755450479140414564692695318962358167606913627945238428501546564320034192053848778204146735407038130434308751873685685118726936819794422082374429342515484739933773579297513839344806940902049348749389470426658806053693000089061675523401629151416727185616589631938059911716792502424948613351585785934066935174500050285170336200068732558805770800610132991628495223831136589826108249624166851923325266520882619956827340596539634439457657104266507168411511532170125696784269702905370008773909705495628192574573820090986201091569101115893402352556575404655730924850623341292203714067272073645079979607521028443299304006994329549961430333415451415422519059047683198241693400415454381226269551516936610105311592813969366059693116825928320790851077018447173334888080618659592250274789819111388296776750177538724038904774079783267417454177750395202733346017828125145538031896997470750555020647885065408141859083050152673158209140593867896071438611729078000744436247575496717133422730398905599121783401608464059976550009060753794276035399858818682645008304818307137354558406970350811195570681497528320597782475342251208989923923749230399005427909825718570854707843559735224428749105015030634960449167034325266195866756253743308760147457265219719884863088029127976243984159796314329312475304523136678133092459877327933086234454538291681469543964172112143119985579557654799584631161199263217208064015811049430988002410186439436699608592302265922146781983095579237964089810917301449020933025663397286539258289662564343784466524074414313247991725810825053201094607116037082814180010429683862048138182207545170658089582190863085745344118355334043349120804841220738711126211551720551830836268073146742010814996842728517689632236254017062354937444373241281041142034154025269513183456529417295052148269739145415721632273569689411537494267646836700113286126202910080650222465356536745381924312200135074539925825695958447999352416163739756227922988822381833655718854885081246642328989877769048797863987788233368126030971556663918475969420966097798501575940510618520771696090210759132344078597595256847977324800138376474307647972629275449862134078063608318942133533571635300808423848901458850617374326714710637283504841070926924300177676654259149635634365036114840377413561558553963904805344832726047100196572143131182129395926189608399972758616362422038091329335252342398429556278045531949946788825196930958520549238370425011826828577812217147683793180850688606193425536995684865538860152568644537551570610503636804878791910033556608946430057234312601558599979603964218823777034579673080248158386751458956221297290015534668950830832524295513557110922454717460612602286074893424777644743818483395708780306737596874395124368633958765376143346085751333904426756386650496352220043559425282929208123871659442411882432617401114850149142546635179200083607035088396669501510070055584236185905207626309602062971326119699520421465368270224752428829273619946696054804143498990932462872232288316941114402586230536050637091863593396088282539468209331827234803593555519066881735972725044330218623421021108308321218032137548519003037745616741230572638204681794183673295327859018213827788687603070637308856435194965040038885074333456148782995221387739610055684916912975043004876870291513752160048821077181164542449252817623424125174883414453858011940177271821654867523239555980704053280201910127952507233802423894753318484506211837373309325737073376279178592852277393749553985939385845873033455228667147699924314723175671529476886249482592609428841625892745725599550490163673901746846780576001456574786548389345579763898653316389898409561602695943111908572078116761713848288354925720827196825992208121453354906986241887143837232719134540065678556207857171469282587257511673837768110263875890202898144038146705147914318318047808033408168663207026622992923602016386571099935541286407371623447114747966234574480508303254664414869947628847747412893471929070644407504093656010592234807718492305005155677330486026297097232097050593830634596870061700832875188715921169515367597940380272944294736498999347864051017174991637760423928682021405272239521814874369161131346428583998048612340043407204872858443947496663863413420899193038435006507873616962295591759410658372394971443895228965133497878329954506046161490506995676674450551015228435647065439908794733676517303113731365124030013948299209042440510643736129576726583421692320095828070957648160913115729846521184202913714176166826043130431536838295017993348083130881752294494939880313809176060492849845120321203676151071823226500724561495851451764622778884849244405825095974626814648425277026516214212622075686932329958550272253683243026280504272152321402609892309755113376092498310972829696966166504139684905384699845714070728513354644701499825061761384416306546993001397888214258070965928772182476188053185701684529885948092309999456463242289825114335977626860254712785302102943568165707099359913713593971623806634562269584712915041895157901476802233219589600269717807323692473140335250980251395474314962614080423156475830925402520754731501962050655925604094046335871544231493146594204688771276756004244288563868022227625359639117371017819078259510758110459289415176638982961875615387461576000856879702671419201442587083897335313362015818226031983039671151271777258548113888148416202716752319047270003861927945546152520870775033962746757551151634471279507477344455042785228068698566715533918876094256637405550182454583518352580687838128377195598315453901045348513497836859376847572464041563066627248845430169483859458170082642286337190896856257074135996543185508698922486048527590039386476601010590328018302582033381660116255448041051449309470656934880734984309792780964768221130423926284191664033862560642083961307025687074369091233099464473905647710647913798805313150044864905553443105855139581481198065011457655658333536832211852364466505335438064130382549511125115174666407454473363287972709122377322269272319955713843986376882886021105493926519779718061701958436585381906850401916651326882566332960878628689020702874305058671309215923211079025348911162954500451279627107491409071676084489017279903374781999400668202675344448975810838783609270698766543763411829279198511142490629444243621410580917911779063391599271837992567005199221497083825125963756183830741357957496730099612426010295446726721850096085960825786373492103901344417589827246165662197324134519625084929351528419606690343002166221423455593325534382002353093870235714335591370366297143944207868177518712423240318509337415795158700762903211613014946331866572676847881053354219421921139497824267714150657325544557136553998366304677423422143296306569849063593986151112772886462022585246852982747623447804657475243058628786791002809004234482906144827038170770339343727219158710588114373933641012169071273471730942346410134727413045493417426230740527988069903347004419040027980197758023765204776571865753182470322788893576535157128003943081162294333070166266337119204417880221429199281661771838560548386375891925421003984959253169767829800002361243193600420344368372991284653057065929715146241822537123870366261209719336949330279265584029473477850041896002249487781935286770151274572729303823570286267367198036722970389018777925274594841168938732546656684810851108903132184977938979151917736282550650571699502607520852800507530611287536128331047125296850151051624080704257010830910617948228480721489913655266595685384356328173440207336055218707328724692173445307139254788941614919593227277573526416866886297647392048079668077624964677954799149958492377557339486065136768905803312338270635725484135201374671576566497416747662509064365296777610040617474446370491372176504300850542331978336130299196256549904853935235002437380826700812848836467490808130470060172055893366142329145690763045050287411935407418804652944604941636481830397040378260290821787685243561966597686129711298132713490305982386725886510553239305178684175758470678337618171101606107496170826320643454043376497399734149163960860061117108788543662838009704470300789857917373713181552557049271258721115381359092233033410881641632153830482314196124675963229314868019306363512994509854542996568452199878572104336996907912205085832662880019791126307696320360361924047044036180617498310005924873289482313054267600550524550548935536172891091270403391598032135735111089275402069044914398421777783806064665155886187987303693774657028261346887959700809211404000154852840576766531935416132125267509146633553571809144097397176545185899347825118745888583519064260311478739108161936437828016547868142298028749659636520728067492719577685726608900582858127686369352622368691354624974025709800502775527463658239547671693701219586791686759533097214467206681658548761063943052720189145990802268503727130372710510943213982309647731907618991551584254792741465220177229758947959483612876543771079130454323512475834797317032734157375070200030427128194131840204012729239451771891158366853132112687065788059248232318835628851784353454022872873067562268969881879922625610265088404491727279213689185749726730876428702191091875867637598030810317294422333277988630873952897288715199754433586940095653526001618419546257775416553453481795997723521346009244598734643029046128959841322218706076157666333006595778351531846107205604459594185373037384650041357369245077272937587763371927023666907188328350426185730395653474180821535428953295940281991250932503680562699651687704429008327359675315122268350894113741490349392333539672321728241148398414156804456011889626621401266519805523485139956334901647985006431550221733509616198039200755199272618974088598806966300808406892272824528211290701524810233986092722287751689313912931692199235852639812669396100835530859491377076030953724879952106439580781073591225269691406065809717972413254662924130874533760064138493008054578576683258360941489170958625378225559787853821773288404863986178610861573728209148842282340501228528940138995103218251512100842800054362662662836622994639882902885035494174366181811109120162336880265788397571278229150484679652618378737492082224320364199814793808435917601451282129687292006230299246922150577255807376747193585998689831971049552485277422059691251352244702337704088565626795269013854216585675221516183793929654266159658616218201773534316637896938440156932594761285899792030933410582179617814799425137678072843402775533786859537913276607349265439060916689411472400936797024821923544367034341554283290221939680799194060262281231466423378358952365225380997605125599496255105402390244790300658686451847690291705161093568061673718103883197514004950398297483706255177884865260800610965968439059172315022915544027393653102303326052580257896278058341137020896006915974490957231286580399664587951741369247446543359042656887153301030754485930299533781053035778469807492980157393093189027488403869296284678476539036149644631727103890138042225348112399654254451484260206695331735495723635287055074328297939666103874245512788994081144372909570142031134110548399369021101213399836676610111283820580195097760309030489052667898565498596479633786949763517472271654261673797728134210322339392447424465043643040482501425312267805050919597131246678973621640474006826585658786595486843322354041561348866773341114345806459335285743230274270753705225155958322420250350558012043886187611597632571316842618010023448972420422468767962165537379683495671280784740380482044737193648729904175141741424353729607158167233674075445558888179283538147150756826265243025044909661797084520893249784213013463358433782585352275721353021640360822812926998489583685304508898219844270765811568203372742297098260884249006868550112571403807141218407354276797296609291932268440404982193905684074924460171675525191378938868301065076192177064091844890451467334345005009081918879418000447323002471038512853252221858413366220207411521711711079058851234563433177684454390660036180329725585705593188019615374357378292525964616802332871032218496131076397618739225716462133855681125376209106153122327235763414364678063131007557693755316164954483776710567461540920571821354240485246020869354593812449642278863114164927265051875666078239651951845406171628524642389470642699903709199160501889528297646009596342154090084437563186457010480401570801681431348239715904152511117494694777387446075914544145755499730687555197097612455634215702087715054755683872939343391227790293709379737002310900323920429500186392630031193401400496016319825194027375145691597175980214540661668735619296586987698026153439946416882890199251666703793342866270545786971890217780351125011179353491372571362063922754758868546669962647558678439483115159138844733477168000143773395695498972123775060616581417350101980981048878729684091538128668234152975354075724812403147808857329713291580817997536722429008612387767172543882102213161850367857045134553033825222932707933709696362672535196900312348580348424454345796589794604353367690516584062135344611171721870059187209746355501659662785699645498844399930383517849907080885043003921776154967736467385340413485175490860324532532221838146264787545590768329186156759265930687341534649596769507653521161226365443533206667789428814869834339430478855198248568679409528804587273106977456961339679793981968096092616587097627825815233283311414052825104817012884122802921930354544048071526881206507109695240731926139054997551766988622668350372317226924968136657603799718938850528059040924435238894857554150359640786517604279457358047615200215911656832834541117956697395656182917390521983956655973935468989824372448490972355318839416661164386884373184290909706720041432858683777588879998997887886594346331402603144136596389080268703598154165506168644902864211974111702348169161437470685991538005909687508828472487621148929216885084053211472497209079301711690153180414855496240901552886844907519703890371178263124720550732705367694782678542372683367207811321563072191413091206033885701802108229839755920720456531954200266038904973852816638075331119097552165189595022535923685029230688587508603774671036994463219924379964405863410063290940108897940728511509605634443456575290686441863820496523963040390365850904205583571593772138458119473025581112707376117715369647018896206452673612129349480862347564643580444411178976520962872948376824840361412788049657077107777322237448497550754306845566064078247326907950801989874114484004171465165122285282336783105979516759033504977938454966008482519797813743379294974516085097687051712301573768954339896985716028113781936153835912195400358101895623499023544755692496847581558900030327178269526512775479818878762493644201295365567957837883688144434736755496865846674805698862572621261059038079722107870967053431810069504322747582476007476489863332722140649810850139913244552274243077685743708538528808611961937807091790030762312465184325070377496092098415532994796958659291177676251310832360246779272046852927334171164874167812686723605292405524242719690747004677183973350524608776739793213657996777950271638654397260542135586743126694341697410844474027989221713982944330802694460356266653790968137821892018515172220613992361661794545666577279220307964409142022836582147250439160398445420455558913471331891155487963293901195811823654093612605869094966292453123649955290646317291796764646993169441614276126330887315494485004474718396301451501223280591633936883081829203586321064382614685837803027105673968832956733002529582066595076851300320602500382731075079010032011513466267240622275781913687115093632473273064992572153348992984846578527901608345552320850710238276109828743427823815574905749940071240036819879651748852225968845742404167223403671264186655194126865452921674344643459187023541046507640466450993987206820296137229817959130297875704878026468318923524201447309464554389660350000713493421527709116879133731239036030457413272307569937801922193578313189361994286860549900000573365670648326914053752228037232590222927881912541314587108762121611869662782361280052956261184647107816839017655090531278725543984519964425837286519513057551342303008581491268220909945608443288237876229569300429098060116672872910402272116105758662613692616073059058390352803381697731899341804960494038822868175913977549027446398575728748534334603149495376164545452972183071018415468063470621339453819704091117469511644060333521197999522800089602802329720894899363794900211646409020255525857773177047606308201875467567761030323086399722841436140473662402611768674335992592183146881419799182041281540337859020044960815167130833120539263180863856309794177008895836493676011104817903258320324349673764078603599285719618785205626467677209835758355051617831123512092129995606724213096762597413075980530535535216480652685230082234349446288254759199400841086472332824127193297098639234421278560781435901772700829364845356733178313990339208267768471049892357396121488302498207768938728018760602179685714212402576485580554902075048621035826189394960024445721781476307465865363037674847871141800772875035769395393605098586070496595372078598942129680185372036677730462963300359889570295494050810042168014974797450604693382652454857311962244356510272183215885129941804596654530399659010878263213204347438567014354639892653509226471509084084139817290217211915394201948500921537959687301872886814556530653968804583954846192277242633044311712860293111299002501068393101676632168309823364442613734590645803737229943121179439160483869820886831482796774316983673274596117482032762664675678026025079886127844449209019623352007075798384622976903687030641765864945543061096514512647207414462899533449162524302286666316111031051051325216644423025003716616124604142793329360674329862240784605563983538038827036015030794806551903809919532615360440555624865801062042716077393388710524585581468766998531480506949440122330438843330798401255779247877086220699320821041637402501345930728905302730802060638308458915471516774333135263423486519110897351445438712617201699788917412865410741705093242766357068932948648374567032031431465824244203189195738272993647711115377950492888461529768100396517166113409080981186446267942689115770065339481462580118147897755255051461557464832952908678155472534987573337526491501711445040391701459998565501854641589659267127251628909838621201816070612262992761204438764559439503984154391786543949832453987869635985278552424662273703530608976792086430626324415433863974068869983396342420140930868591711199067953103674714670983194634561489790180186997497059750330152674646569560545571311589449002995742432460650982229846786040471582695682823389286936903396669186858365462465341885626118804466314318650703935244192931619819746308140989298020576989458811130951642572398978655381391497787378622855947240929665945329516245257286698432564143029514956867459369626186203886165336206193452385044389529404760997441716672887012347750583432285679090005531612381328036702832581707957113786839857927843700884630823579388743674462881393955593231723483782258268711705082671505247973495541064005857293302220316436706208602182488541966336926975797254126774462655187954742710682074976851028030808721432025998414979021703186268780953442495664207237052115302811740530765870790838979247992287032784133966044453514808899932395484832652540821650720167190150388311796989761829727374675341720168502968916651840256144317007333985037299058197635049475947645163739276679810748820821219374491216590692664579424476154743616010718570492276809447464706037481459265875868493306080624110946511042328828900194528768787974044797003637739262253737365508822979307286677457948931457556873181652507409505077432993236700132577358944801795999792520988793198992798492843366535442583739868933138589169953307153021455931031630382435381147616969726568621348120244829982251107635899942716165960614189092335831430478857752968466492019138240353347285509820110930224827205843552221145504790719384053287473690590862216305332788436931205178476202213101965791622814296773231704132983590533287075651713347459786164071641628101441976306246548289298285154772496163097058525597201135486370343359795988335701863869510306433413344115089708121232811851078641362316792711870125794296750528472179469224487775687206786414902081099938650789686786022892457262664739323957965797114518059413097869781107618008735883400222960578772984126232639566781635912353045847649756015812077966849024734027869379672172932247326968689415566097680231477835833133603806565091999213835753786800757527511308438365559895851665703543803616810846419996134846672943367940542520423402178876815198506132564037625390527417368618996009454448886901496305386343059217749548965847407821681343406932004489427571036455082060118720125971586725933696870949220190121816557404293257823395896583282924307437392905627673896038405853618592141013128278696462221777602365202110948896203430312905007860740036641817861450078168558355996117877325189404735471883297076501149043193103789800852215946494548386455942318817765702502824056599454897550657842712920715907401105680129872329737043326892982068358204318928840755595315542484572105100894546532150917155467759297183681677616788966812381516302113587356562999122698077842771238007442224126412265262675570626503373890007830055355583577527855558410957365633449078060232501777586068055250816312364447786981659579385638246383642390805648106719688025464018380414875774695975694027964520601243275064984444097327717347037038106348616747297757914701524677937483326009893242639766351821477215298921249457273247712874307759759158487930323140674403482569769532942318677141076371433950733732912414795586790625650856834187892388102132401746454398761547620378413404801920165793984822949065798508449656126050131146974054077724376068460350227632041701969895348458281652651714837142635225877338040263226472508569449898621490076532393911076084794543713492681905164046034189961234829893236276189876439767726191119329556448098645352951819064031955142948719773855419416784100833116148151864348553753829801049236971534485631011443992033194003540070080186916604519216629239856574990948193214813854814255946022561217751386538266237019101346830288080010014190590757133952934657772415044183741926336534515541942945402447023888057092609955354574752532287265709812829555302519083336700853608312676600593105829669317491005036300402483715541242515607953899151799794635028965198110848243784303019589987266187915567178920744713229157297942563028951335488627043436517807918009988616557733165552394327175417527952482972627275955577598956396506081982258803697108829153519650575905301902654088726911989044368274527681627618923612603856632316168405940777628249445074311463544400750001357725253813526555848621728494195450868899193679884848792160189574711027579799133702610407682901821288196498077083202881507923512591005433395650645240478412557346687862483848387753141167444202706621866212404820459885845756803475841950993500501604221741475738861007474988706637784495417476963725845254418817476792230167587456175288786892360546152111902610580199256180653330868953401588182998814786409941708500302818776242775881123507689812169793618087217536712061401184964358241540069008952501336812977951099335747338139219259511248526326898863480367009782000765342687663934449025665552706118009037357961424912419601004098102405034802395742064580425188640024032780033390218791051279303634202659720260089999046516839414128725102598368653482405674548233180187169105392553120941790985770700046343975884383302763249218488453109046482721711432866892933118337690999560900230360291345788707122244772022911599623693908278062457502033112009350309469529333152982042281445086833838917310146498866521772095432217399469336623456784362035284307041922782792981429636053889944420595759014693941844450636963390155965580655094692754289404066300807917810369008069555953573626031543631591137729761652346823289219496346071118951574708127215666958136193620767395123576419184891428188279208789243356587334321337004096218271125407833000379401897564497237455490066572668707498719265192800091518845884990344456597490568629285050856128234393538900145535656066747629414677549048414811206384244116509508478803131827033748779897206290044598146468197410141985508396823433665338614610849874770354359914026813188963547794781616983158131892649952916223073956815330346640820466551508019209560197793333690324929145965253064203501228327525994062400045355446487090994362294124282738729744167048083724678276650175913445492132884219873850335161943818046588726580346347570619411967294141024802925055836543584206333539176259080034874002097493925172136129779923032367878659791386723588186273599619076780261738112485710296709043344897260405157933651366873171796326375094211591073956225068070515308695807477827555313087246597049998271981362637432995093858631549258733823952605970996121458615204259946655977529630916936831053879662149998309323636553954870635551399715585822097676025458183308543064383619743766487970414719003827499107857354006924923147591734149703387894010271601825183328097662637073246143336269206003334684909232967220806225603504293200396886036854894956084291753328916660484275260155228588918599804192484214229901755413339620235505844922715624048170313310012476488616287134276434167781227805984826024131389344482237780598918962830980735759233695868384885549066364318681252922735278633188789022905535563875669348216089962534995212422803373840813639232291208532344500582198201619900045858577879536703654856154340858402501201366187148817311840561494749429020570244304215831487476320830542844435471664042712178386432291251403148399864853973608593587582517915588056475845271242486907599449950545533508685704273924266695428884093482985609544752024192543042655305710330640376018336086007406420025565247714673620479737870206411477277395838825916309463101586345788461680730490319122841753616684286460884520384895975157463389102900839900084571634836543783605167319518614960039801219575283735535180608441640415914991697952908621283632761218862742642195928297757688005778781615837440974450986275264673003268114488403987057210274289173978243611772364050765341155339843134750651148167204261192338455786159269028523404727102820174055389744104285402595644492282361063253857917267932619944183534959072123318432816750950150421032999415994175471326012493219919708797305909521355826959203529123765359803228914475778888608549730749876478690390676751714617108528065870766567582399704641379240391719218906357327884293529533573515474010017156626764395586586327455558189510456595053645442234655451061556441357486610537282310717256775176337955254833366984230704518446399080230037595146486317392816339145929604801714140472226239315928283077708787803708408506558927039005949594225138831082140071773543938370606352156239658984795491671509693387786510489579886044200218472086433597049493712909799935621060899065005399275306127680537737757682319672846137116600398484126329530833347237401117226660994686358861471697042587807573961063401745842715902325842785293043513553291468433188115403420063522535680430990724741564664169870089125222781456396961614368059281733838907231578266698192300651460948558319224654640416713225214143862760738758024187098266084847354239945664611191435601379097802526277721181558631033034270885438521179426379352628180012281862182372938882560348945688113355626128285517357132995256761702732720530408928870983649683540304981664393586299821267321147246961593079803563255631060342805837096181393614328242907997755340755508602524084350655680228242336598489448194299381157365607536757647176221550464354267940785828833761928601739917964856596329980463853339566788049077873608913775970840040906801397457891397173764234548713255772091671924859803506016516246237889259608326100883705815717723986496542801243577713469844180797209253702283037984829749686697108307154848197952603583951868603930723549042132467484315642659520489217265844339166054562279540002684980796058554232888679468527340502244452728981066826343193120726317976435438980163110195385636381724404374633955300383099911262652728706239791430587099852602512885918946423923821483585943379886622222064290973255697380781779176755384202519094261733779685760809209245641710612167250882276349768093058476990924392448196315647288988757091226224744906762721146122367231768177782853764048618539950444785112894690868682914590107707509750086699420808178835091692959565481348509018724282259588957860488473653258977351015833863013882569609035208761688388375717638888617883311103671446396083513918616774592588854995502142520649421404953075913215619436682219775370150308056332067077819919143634225075478085860498431196906793208565418686886518706149231331702457710311917738288007095916827332274261215658749840027047608809041661124834691396518057922302776043818262100017539834466651029621802165809720123181491663331845644334666153831283175459992937355631133531414425915702829688108851351096746373662357202255542801244027328136341034553368477848614435249801805260367302870372885279131538906241630919097741052736881906335258957877437583019846038549581717681656157740895374352343410016902276311558662944170633346299561840555593214828860552438927855606165603489382010576621440254154845661419069868877394249521228594066412619001853404115035349459006478767592674517926117254795120178729169066095082386321529210061226017201350354470991606630520085962616245945274433474505133129868981978066916244762016608780995889255213204944559297450105508685869881727173330940225326855586596851717940250910723207805774409795796934473290001312292603728391648087931729332715245039278550871197912114634147199049368728362661994489661503662987481483625964330863115353621866658316650303480915068843376296387897223579035808015598938481697222168984965067958255159252256014040800003183663352150993062375799953609397673568403766233214977895602313984612437005868996610224311278645900890568547944826098695894874701705418518146949784186554774768046204853256577936740670991511972754179071998663093323916893411754916962596672812537937731978117233052864153489666651062746743454370751280024578991865636119767372260152281369347965221820079311798425179936345354176299456634150708749650365850639051673590205963484463601481113804584411913784821780861220810457466420107514243240110074887137340879047333811197884744923327696607073194598944763519439807133554671969192557565554941821404228779057402249554964728967370546540083208409624974937149840658501793142728254247421703113643036154529539773484550169908181794691972458392868632263920207492002888436779689577167448356288779959388383829572025136228353166980957112428248989187783514576596597318370530823771616351576466942761504976057606910965584864512313096857068851862128946482940422597589279026002218571458956686870268124700068669947662289469080603801933770895120568743210254164293402181267836441199816074089693617428080562064462301238229986455146389679501280773964195985657433977846225878158499491455050376513062091892765139332954369293951152359214700414207014982607037268267690892368246339515876054897296886808425523165198877399429046098559987372967684103218573440161990833683418781913367342329028917884151042224678285396083827202971835300836103646779486481942695072318744196044358509558529943752501380343137962551287893341277407160125678637093010688804781460482116305387061908587417940953735862884584786137735282421471820800650210756679135463432318250486312797045739504362411471476490630821504273080758536225566611761082497012077391686209443071596797886529098699724034992599046595972858156843323055832728091329195051281536703844029011001209160374816134866933522472819428705184046331527303863356543373313943907980502243057150019096671588080118708914121111247105921594459743231872196465978393646356569237613917802443462883871796210527362689226825043807055315331549919301761844674856534257871097987174419900193613515526966390472442369241643920253127099863851850754251575346661884418415054908429642342902787253752184745268484500267470119851843407894041657168020578567852756549112640545277924301994900033865953372671299824800909219022683393710332124042759125687826141421469062405200522269243375284294102258187678727738828912701921685820163003315751678021011126648521253629063471662565161805753781024566413575735175776177725765651055675577210224250048179053483325382917209373177862995818220055439745877900187863595143395127196026885613992392340249800104746053945028398136037406593380050084985248082019751537819833644055248897249597680512907393960278946439626138743368757685075586517228550906262566994226466479556494832535694473633394432724469987526403607688704217001512045457576367653366613494023908907247645667352905316376465793189960661528195147232993910654109769543745568913407206236720596510602832481384322856433923402117936715756550175322329487657810170709026345516869813683400450881102999812952240759539377162389640993111944884527013979897862572525685823693463205571135409008883977849060567753280865495660146644699877915867050348488654998323376021825277830163865360547576703736219134116535727539239374674974844941598985418887470663615384289765399509794196723306262901885927028714207482401499040580920173395377143805942584272611682924474289060675491901368204627590932844540735545947641630257793202458844843206931065081067818442946543831708680774975044862900621749420806211666654012163805706523140478121268988015209338395558002904445205961010866749240620053194985547506455680302759438897856741985160393438367988182186896420228593377439800358887900355281975429447140910632368673744233520046478030033296623679454885015853919058164688493034397998227907268304174185076245026940365600842077323619868041014375752159208990371265079110859049819156279294836909076599659809230901045987118195881744556259307436608061911635748877369361205006239904536569136308914788005995340744230793508615158392827980047180978678083315452957850318443948284982394307039577961273800170366805030231907131447345523697833341991435118588268415988378370673122960884716240336539931259699538949389259955976236319794206632403558086157423031324394660530918710400745604040368661426084482928813670078445190832457642714373754505726204182940935822805368009977038015142397509095728904576996272884691115682971851984737976835986449405234096761811873374146898116572326713874801745833191210636573546625456264504835580673402167062810688761471248209751814092564467117153743459674309621144429334338996464315258666722733071955244736642958034542893058592156644603395418900174708372283024723878418082526277216119037488637873679385384906199592774882684353082033324233126334014398900486881089382639021189779744456146137084762636939680606753990447596869586001601721577205709561181645088980622363921243129162360195523862329937398993463835888355637512392302811770543341581029483179058227461945044920668978970283304542663332376990218393515640562046499748254810670243418596131112467071034916827609919422277592473601496960211847226962856527110575832978510743110984015869442370461806861872766841578365558868471372139331802464418217220710260030950300465788907524340339268731397865971980608400105006988446613342799444240900467581540933769270585972793918062336872691262364179401663379446809983288635784195753322308888997852398287420032052130323514399355895595636135947847967552729484524135083247065085339936433669861959310087184213847458731412901630179830442962908183438923286926512424168072395346066487498001773044583744220664424748949364542728134230767208752387126728899553508417068325417908928742526704546459981107924694628428752792877999850675006061236842847483692678464154387388884140831646440515330325216585693858164295596320298363130486567860376846571922660761801075148973938777162434309362451479337883674570503885828920147260587529237224984532459767282877823478708516126991568881582574878384004922357928638219573523139783384012688352740985932730465102105235115388547130562458119371746494755815149923187937234088214276493727084078147006313581002373584786607213312105475648554705496284549730378773488681123497427219243117336801835966729816732591010520686893952798922276552934691395605739942970624151909259152347483990385617275146083305576144579864923565542323712605910630399166074564062433274730438715300488259577933232729481691869615747286989071893436987474611250907453467132171371331182785150516459293800614275771374164971975372854565343372859948122124415996296826591831846888402184328803080505364637432567718539445291689949312122054975709960765250543756649845504694770736469914979790944894391134878872035092374427337668552616152368319127115538513382589443693464276218359461734583645431286922630098875971335185777426650880579322625147487137225749478204442626950905489216638990141419313208410982996144890435237839825511852198822745038133448570047990073891357379246198818887457195224136209340328178092879701117547127954175858506130041836794208900466167373402040806223453454840018456800951685379532284188799549130651406309288744760047515601121596144341826847836192558771745316450233375294336249297040691250933968814590692734984571097034239518299467597357711968355174677673570422273031736253328325229732011315154838627853096487589929661092129748777170714128155318320163144560822114008318730822221668102485804077182485619809518158545660046559478753341988570709998414106002648091015284679922967961760892289224566820238267279776242257346467450710474241616178005178496952897902013599133237468328985446841808908477135256746489369747312103971985103806816027685883887007888246110288234890168544649481976738508563315403195266897405001686274137422547947107151819062531039747558560180515928659491962555266439533234113799683219935804905801592397552461646567586406041677680041281846708814219935738589921664978700959798074699368522316029334679044788178497542726063817507945810946329255663814590661862578752386097726064719484745526845938182796063058808507975104581913103572018312456781790525135356516006844147396227891766023574946820723544249673010047147919704498717775196255640763732748177497732174159582049189230702592193531506917764534955283621584773075510924574507498741765754974246932640887366907635837217652886751369245414427392794508245961361939676518343752122821315567798927054915155890508451158064449658454436088008092997711091682603415810924746366233635320046497699459742915110604980502197114412773950669665100700016155039197923686094980365535162917185974408984360960870299886511466689257999388759905674705838735746122425415037955210882412031475958842594449146015593648075970454714167214623863232732727331987401935401294566735043998418659531461101932151392041769642780049436093899954694871775562328891038329028862746320095083990592123991301941482764644665319644258115678340918130372922654814743741467951052501330865390202566907772459160195315813962133332219539551578891059889782959057986829876719933528459290893798876527841285317782407422497604235159036725653138406536687269082463544030116649563427294651634599175023208826298063451571207059212866916290284100538088823853699835020488994232813820786293377426160990619486966718662583994026027367797216157376390062709569174195108777890144179721867245989033862987543515364530687347215551793884745319956408824061820122764451771061492439514150963355425072104346697356905276053841499289492801078570522883450017755549759570475713706282443333000751770554259299772796308318049357181142045654003846686092001425961968154262528619810331428351131208175710954208543181549305184302005044847113495053530220883216044360253966070061079216805214189515577019286360589467812535598508595144028096126782935557945886031653711117881983013010216911332287009884474560617214535514903365694604380175531952299577228227515548891571220992848017674321703908530095002895915616111527417546279056570947953486423911952039526669590270917819044441592908201635297940135466793127289689743905324557649970284072796843958839033536091127478097629480142755940247747412809381721917822178625342606451292768153126262685545774067832039710829551110667194902986700761968093227133283583118708287852247326868174175384856803033608386840473457140937674863082690628766353552559693241438325052501089452518670088163496446271347901905961143389140894566350955848669589333552257015187420604927551619754369113984007188744973027499371771051037578833091063126084642036022503923217301131485027826689765236966830147891292423147644135918137323757049630308470928253521053544278778921820368603853872583143168506661244501665529229956416614861620483310243315998871003293808473036140856024452948399472103600918696507190827799632424201380371629723578849175720823543860078091842558783388525460744068675081202421534216015657776195159372807604103298603817605618562816334968617747987261601473395449012624582694107726336870501243014842460769229721290238535644677842416342884874934231667217953912035488784539408852935502514817654818935488327132781302630953027763969701867808097409491984790742136899066932309153185915216183001237972077911959072202641833513240518745769358154712109783643135128382896510624247633052023319235852784808778702280574029829687633345800393842291209582079459283911533419859998634095829323583400521936199946344224463699813308859439784002794639001724534543088203716269728557410472246207239136879789608954186458747187198135716404871191240971451090571740898864321238893667769502416248099035840663358229086611316201547458535760638670366888050498202929848349268553542993842929165927329366869530173288788701676455451242596914927521108109362746392581828633254111549686394124907627523334147558047845922700805071776017527284867533974650972011701505447389428011859578116286540900962580880925499136512597992087018981635088808538365356396811966905569354104407890440846452857026843686365388625505050985106983962413111010524629460035218120357694813737182572511540471875355978942180212096372900902293131555134411149806442019131325465744340836353084717303270171149610397449023901931914215834427759984002232928464142198282074782417581214712378407210405059031407029776105063999472850792582797173295917598093915839092938161961823010447305818256081992100364843543073625342693136158011992139010058503558417048917858199354137964038467934360593674476162218290088330391527613475054767187141414023168538203127672458851452748039391253795260413023013548858927775698332846824559772079929558470813768073010408525813123771767209920824097390729232854975821347430772493831564059223078137201385848222889853682253235456638296345224138541863862632764151102424622506152891095419951048523860584688131093345795288546214005429843234897245944943589237292188296175945719105003143044224848541273832334502652506463867442177661800007073610225630702396628357534389876323266289754443064644835195229578116150438445995466705736356757139621852399425375576002759361389924387872504044163974843303128946430859923884322610041550800449258462539625412499133935382356423886581310779461642531478256532288644143917243146227888065982263242389924440707182878857613253943954246423613642720506161479364902412906544484950412760538648982282050851798539229664348916902340394240185641212362317236285899811825157679065854973510313442683156905978112755019127126939231780149868552458801477127895630708972927689984776492732200338509566764491922958202588303064909751287542717957878904013924136245786584971603342222316317125975506989359094856342259402451276341508168985214551151582646554956219630594469416463834027938988429404726224186007135459333578904191922724002679708521813156550795394732730183577959382392258626705614946199256504634697621036329542079211229871789721421243543115392219251670388520108625413162732326897683247924267401291551240031689183359176978130667389236889225830318956425338255693031173656770449708527129757856872824117202212669690996628351309572432211999229180862717916814363067907557057081687292376470716616237667632536829889473833118761029245741093512613110446150157566004436945442786825673218215460688752740537845440588251860776846667242675553418458980555952317851722090891157859455291807615261710770748589201754566186170028882648922382559340371741603696436717290973503376393892044066143160682734306126301142226741875266892208840223867092423712204496456721302076359978083556118988062505408947488689947265450657883420985883528769487823981337195447455712098227587395593197274685915681929299779412927968996806260576102319093723273454095605583102718657943637001922036940682765998003055825862404414714188545835873678052183108642956261388100541759176281774555610866595744841859128763181364271251742119105661688627619335715673030165433997275340507603385260015070060742980311894491564099640009346875007867239314460906929951662994331826005010759425373538727786819758228290336965599575406052692571662766480745793260436938258109415410116079322908789359848263576670804829713797387897907702600250004974680362924058043823198938228656969160102897583046658711480122632904518816181182129310073809019763578644485851095601467906613129473679887206829389552084499163391568918050215388965983236411776277871342372980106126722676370953057498072255599290940943110892029310731977614872627377383660481516566145306534694704185535358961019036349903240122528197653600503927142810549214058837586296113999190594878851390889733279705146274771288711700885467614660676261156063519838576212077376942006388743212036979475965945376770585682077964670619197433919184582028267796969789638083924078811440904807311181850986182977359666835683273071300370639126646903745065386865035204526764849144855858715668628375843392437118847901721385522793406500965546096628017585375108085298734031089377720307842225383821242834050655467480749857056379793881172815489475393442310279295768096851304516613958950869442742521071377708054682644364545839640490566354306216752404835226654777938934965760579091597185520709695625571423959842391259726288933025957884621825926362035021245819851130653905970907757597225591289127179386202618792620403957063751170001019911067529881071833377161025414308124143978235691259339367055026724460456426855688585078443329258122893315276648218107753302814984537048231537604924154888580440581629265437785695978980917938295650720710606483464443258310412419913193323356994025424683148767713469861413591380510052147606662581250014336091042380084983872517936287055099094509689544846988569581574752392007778186354907097770755179180933449316659765888484703896230131705849913676697097759061061243219217723805223039726236303216791202384520233611859070103700586227930454740517205151605183206698400171275614034029815617418525987200784301441503830757506224802776302548955454759453016730419360753189132476908366795889320056237581772683262471974195633727916505519976445782619890761886980640229555931610128142054048161253411922891033660423476001448429290927435856949956358522204591467161430226442351762625228413927483623965838304408689875106775043460614346783969665761525184966133178507411435948571600113893422240077798769203786705984579134259263302109402586490214275421700910649978152859549652406004585951837256708726253220549441591449298698298859030401291232948879185316352646469361744196396981483701896260101803623087183126951649594909685670208187825766829993975036772618932413693019256121892496276699120581520427379436615453413589082841647363706767315089528213554797324164590149880081775408341332762858856871230937484760579872185347594065932433464293431443146622578412136412584379908046794762572575142017436681801517105743282586302151918864400313062110972996656285818299605663227452258970874373043946534056390375103708494454267669306570872753650346126760379044846921133972857237696633977350421831623122790260321915913076256050205562260023040270868068034733611609126592271247629361315141750973180794789703664427431935242799613385533084361705748452410048970574957996160151875159123812988101510265787126994344955328807867284801961640612610806310879882983128147724577720363769617806878655769850955954930168933171068604843922110690114630293336396159604442229848876554874809526307149111033906720940068579125077020445489027553423661771313489153901835866010312738749124010023415428675267906110910018597989811410053309879863636749932713758560190796719969104367326963768953291495061047833630197786818362036951195398671668252867360131008488467012928130067215324045538470078090275879456057947938597312855728708624117521387718593321480070822633092766959138029419191979952165464100863698898824248019385959494070840177951905596935572307022555236977069966446035579030656074302935050311753341776422743033397668717364169153895354463521265373880628261114082281400906698264508878586836881489376035720835432692598718437094624200383628063621305203589839211179234554490447270657893151509814974675490905250714079303710735671415872990024120025288831181784601110866730159412726693262242327305184773681556359782440531619004571920347407919652479922452374873751572622015396477357565559081787132983641975843081263044263094522467025358026086999787675761090939490053449325367700950406772783324106341499303720819585711105913173654159447808213382227551286868313370778506463654308526133461066918043402587797853221931445096057623702258957584530333579316143988753243785619926691555503119402202301761687501679628942506134926376364030982291928674619929584577083210934496908944602010395698857495840151858150224888348606381861519115808509856899592494935424835639956577279782952371966262376325803110083002582772830051156697362109368473849530505927771427414653081931170485220257642266033095861668180318213239162437717553377362008785204686270532561825594058131129426502698913852387512785699605976672421385181009151426636548561318868978857229014882617442719615046252317772594973146842529004453993502650991176399125967207300427195398330913454288067070093981178911822324391523308587022326180885060949982310098906504138612950095888156365160615234303134979353377440894677248205648669072890732879624588188114615280696133080287044422662443223726680394451502545646558396308550252511713899343705850303897641636186572323569858035129181509729482981405869923610672220649042739379301335019429668871179280021804388666780661526282852049094405348917675714436408536923676747340900538779362682401545064563575202287122892261849659931381446806151742699489839556194252502832633720188294339641678291082562865954064102431506834740153093230242878027724662830649561199814396105855119325482229428204263920170691725750766035429425146425937041618015403804415456872843045739195380900506918062645629977844867783805991568477951320893550559640672034344497170532179254608286215878673171145583627998953371983216152805407758718928679136765598700617243103135617839295100670298695755522245195863066997210843779002108162839707503631478621203866125730911890156254065965730668758677288979048867395792105699331546928262194033277469178721006235308276818717465551194948602085856338892408714786948323767713075683392127854609724695259041142088334277750224629810325193153254588417422509899216098539616761454957264806443114997872616679747425313707732227440646367580750425741070925026661078610566500114298784201343838934823026420688196978353064444630779459741905417967345433908116786886024636415396278339265759665394429575153975514510663095226413974591310032200089795732248806310752905063952699910163441801130965145360347857707486334276644297053763901822156100551762604203398829496292936335314454708603401276611736071211405826553030424876993935809492514272319580523816593788222942860593951282484730591864201857717058575852811441258857733594534301427632836243178229032767223567418912105458930729900415306255609324835548000361706873577708334886760556603110043620802119592037460908379131153362999547443466478440603801954899009113761741421849212846850976713186593941607646381833744184341411987668738896385376329352508118239223451437259505399413846734924443109220403037567334953666314578050019464510284705664816976020174712757122910923309176721619379640125757153542952766253751462607636193235230055544928032527616780063606313278747700022352411462761056387008882928897292721273707633836521639269516244172252663083671114006221570275036308425008364431771638477183133567173841245776776620214945618132650482410296449069944560366396656753430940903708788060797158099936809400325289221043520563603750416335496072358328629541052550632175548084524715018451039011616847389496862509975554033527135724046574353415879288049600281169929908019405517651054222362406871437436078973605691940917722081271004090038779245489535931950489563254844138563607931855233212416889294020346443767079330694611685620056348971984365320560098718838384766343530241637803811295833155308356853855636474123865204518726261957939620670987635036728949915899367228059944585021748072596420044300677146900372169785576283860234599082762029876375432699206114031330691361049055879486726872228668045508144134873586914798667847918791168726369090173650774013308569247800428863220941332056437280696781083235513559689418344927028521301838728752701555357411105420190306359669767852474619475143870269116587154625637453088448445062063748218194747148289945267188013198366801958968625435624356230076061966946606832202445070260213319018477140877556123436262623860857467241681111415112899705609367441856330465516486622250487623221582309103038790933235586155514955531263195650750626746442357700729475810809935137636280569526482242151273447704899968342088353633718573900484350985182915432402204999854166486939126495334999303193892106991514583164552117493701097157573621388018289166364145038396807986420927581192466279563530009039771917272078798202088559950611326051356013127496617393278021270565838643458617614268180697898968167698092288169265787110715706702297236415918019984658578611626566717099122024238215457057059029187381856265702472180951492738787662269023526562972064239580114482575205328741232693265255579921894144216542510217122721183303677157824783879654371810167958342141294610297482631353674102745359025120357759382626420383220858021493273957526213976903091185419435979821513915561720152654012910752588932593098876979986013443481000853254609616208739275082430709679184370270349198539258985271752746488296781556990497261416878526720427229567941895104694849832734483682253495179314742534806097139855715862839002397002536791265280953399219040204056012405429343760645529372356973016265064683397806539503969889917197157467294006532612922504166615491641864532354915974398833945190834834505370472280500345965935949975696846596074486085866741263024975015909708087198636767681657601947842193404319479200300901254428818392923810117763972228861325344658053985798005510317316061469285481174558213600052262797352169744853700982873766733206349433532586782557335352134283143848876955990567367609419657011704580494898464624506487801533678622843203773637061588514971095665995112544825736982195779702994971726454738047591774528690226021523554831896505847269618282479700536937485057925446874441709509600108226586059416319938397922383606583988127886432880804816278634146736866827422312978887909217163427823727330898471301546499663068534898815032969221324415128062166938671839795805542984742034109096152491816930302353076232284562528051569379468554426536019744693977474016652174718281482290957435327569698117461771516341975965174821576900937205499113296121105589082387460744691100567300650891706660068646028114957372058837915714435498187035186946329979991465741410775012638831058450014074220479995746210526475366030490067880469295728775199669052017516512537345592088747729301676042117519437160918147140098084769164537411809118331320091857566886189873731514685545278212823897814349075058228513481239132448870458444559129010456358230882777466786456080761824223347559341361228307469414437316813862779823774583266515980123551622580440403439685488320031868201536945178605572509761659330537410498208578639915888570366639117812363486225365143834160327835078917570056877210996259090918105943621178427371958997420397459926851790036919376954215300652680893240184557365594614320335482539283725206035644196884272084042294339972557612869132166004705189179075347576613080433906527131728460741823673291405985629741566069832464398027995268923184439991524956905893050590145648634140872653385629657419366253516896107008323052637065493755359679046207578262434492166147301320792931287746148380458884685105713643005608390128325548644963603304133738947963590366721967457015962051237579638765459683467628048460565076964197380228504149991995585070303054117837655554307112461988496608164737229209709037312627113669231866031201631251531919685228866269879428528269881513390384451930572477550226837704712086378213455807947527563589608514998599043949235839657878846084896642586127198100100687023495757554445499915589081895701660689336390399939600841999204912011198149297104177695823440174696350948005242064358821546079115657704447159767071775248014289018372135410450884678251236491718522614519282075014822825378921826957629488575176379727935935828018952950110515095854965645405437110456038066171152316021466550580142040011576706275195669374928105655949225873676789081955685786360691356042520464893532666949465328203062318510066025025663728843986119258167487670730118526825018069784360734324892942970129981108020576484316548524676642870281775700962200513819290569365007269855359702102964841142755171434260364471131273981405748821406032023507129064677671505993680282979163177123451933764835647735997615332240352629049164665774901175919373296452221825350018573528580960865243081125463908515695884670681966918003034122374686278678085746237601444250353285862217344752762556454474367608705768540887126301172989700513743553217936705358783074737757468414353348177653079381020949275062191018714965858971429606207680663067750178705825690679677497807566204172279194906333702655086719673123744199441034458161650259327386070103729803263644282894373887611375681539685564703123761720592003469519820381321676712953303122615531317124196392120819109799063228747956228169364564962732434583462356187520777324243244266801479989827120240186716451992836182191568165572573391589127965584553385372468274093438128539986192743053390405473777754947506101121090451135766820802806884723072101995168622848244070742589746595299666017809993408030434714829646714907140501694248168111619883365515669579259259626126068913932461398991201898275807066101268363375103421329015148633203421630383365088554064052966767873361839218328261723831163595637823324142041773877194960330217216319553632447237633142400460481708189161752020756267197617040477206491320755063358298527332673102701942122448774031724043109876995892978380567865537820347954140430107743213398212700700125143959428923321305302886599593409085880854219291894305401894504349725348172306813417002238675459876302980279014782980156447282322731440451154972131786293057283156378036232786190888172462958239461992351378002316975288526642200661205748481185033861429847046895075018420787309920792312763142568085885683761819071412088296360817729751505311808085889608085447180678412116019318567381670142038512706456722892312351851189305221107532047469145193701796006170742906980693114681776724524488095359791541824614695974157487911756387219011821961433632804663315545233960869718416912948175728749166011861953878616016695159511328737288351639100785479554554026729580895519306366117016155282865246373316377354700244505333438197600099157836268892538518012866634245790167184938713812820845769292387071452857175183545267485969357590578909625085239529103156433992221689882494213408508802649625993789963093713197543998725787979354796124012692032710306645167726567014931035678908921534976422619898430580790573672424055119274155060748379511541270078186522451012479849343776897469037187696038027239734296613611041903624948034634027281478586741077887923959271685356289459071344323024983162601423303405475888832381348036030933147204547597325260940739323930525589875791028880502420169314194525507095643101425956394886034389159957551496976056321259778613893085359971778005455557738418488812145258836344216333104991683501930947671864299372890134711744829719897605539690337170927420780292876911823325179096101297485156725321091949078153434341597980155732421456830793694163964913409130511695970044417220292236845205615675775041808343880573883415618199671025555998791300399378005361342056789301406431067372318029551084600649725373109107845594935364515968930919615093444666029998483470087366146505130445173219526222737774713339973071766464175841517206357235618375941494205395518409454543963495846979996485694102532790027184118581154874884595410051866292945957814775545444249698408504756936595572620836334529024336639018658964165139258213772341248253376903296475378939873298492707808914031173029157773607149996525882922751974065444604309550849702570010854393189524812730492420184275552552809489166309372812910615978709267462270005976409623253632529343686085445903845731664382184790509489585811011940568256294466580758086163806785085821786248983975384729968858967172835416348674677858014603751088857622695389541554125054711250066823391443622493775386271589904853613444061381415841091671106372075635600958764745587307375220892693905949485705785887022491527551960992782345959783512228614976362037857438266178140169607032060638919995311189284093174011189361195387647719809538784803419509004889828569165751715263861265292470994361146832027581518743080395981686242040687590357106179959859861155999293587357866378245757201320395706163032372419651048327132514179696164984868377701219921578660440517212044339909598773078158398181430707952151111684930063505383207202548806730326155105484440842747970675493728813378769931233411000980498968666255099177047609850141862517585633918836085135298704595729134233099909005951858439380324164424845385189144220573787510143734386300829790256791072972943310422230968259955793632541721726821239127580617065734175540000017069639027631507495872391612165802132739881901846862421523172796075441950183536897154090547600266505047460251235593150509692548954218366128869844608195590565086144201985654625962401643894800028435044873955259037590610437897505527311750839217039292881378362762735187162056746818172391366961407496858159183209022719601617509641359288506526515302945773592557461884004644359356353551697302774190194587875039472637404023277098413633994404081742161325126503449567988150294833336559257007241088941711208199472084078814705761525599138204719729464577074495025872779081038077783029232961669733668818326319374311649696659448173719229880703659113530113521934425121274651102147486032820777153081551742099806693218789718946994214781355460059785406447518459199379853790178359210320588693135581592948192863677795823416242251714457663614188002322110050305941614296027463160201128956547542091996291074313112232431713506454058398169871585684236443623447544206895063750183767052199572419685628790426860667919667682765061735288958128679397720950305882286084934275050842693158864854557303659016310363789163299559167180259340045849376322630540347644882618907034288865696627757064281211839543236274313316344887577583195472140955877757311281135762457000131773975065379526780524773881162021289744011013391884370442818790437252953114225431943330834201035944354973040909360408302372063342689947732682272741006775562648880943415467470207194244501281094354599408870890378833636906795288035307128297426866597303841682017133049013299343318777247773474561950326122344092380485346364590429668358905951191909118928589731141662106216328360702121954661002341337797315169527659524127425498066492883650046705525063409821869463317101194748346234430383833702883564971204700555133507628830387537081830997778562165159161309114424280840281370816910650736261109011561885504443111369681758641482486466383725258818609660768024895977588930312039546791051138408711479191719454499869243739547005677186213471527665313002745787179089549334916835521988253031520418627877839543678357022101029700762625189690781948046016389913458969309112920766716732387510746640820004808151240919189450681012483245244783088293631832051759368672120701991273822337760607031332985495526966475913126854700989075939362829433964256489938342401234465425315457071197667643890526933856665838384800010858247458282391918824747568308918012158670839753161591738346546895387714917369889387610514599993732796888601758223418694660511775113875619708570296708084212175204776970313327916117797660837181760276475752971303204221467856511481507571147037315266003644877867962460642550307990593495492599729021841769832216547309160220338600283920261862039724340412595788739055464089014963948885397258287201495826021109767624449091943365557415758772469066338352241665712575760696676639243311040720728938384671111253826239230927250103611233784684335659500559195610209115796935343907752922367035339723332374756675287537021091972652202575360394384577408333009369610824510853025642434310953794629017347582283193461766660036876822418488029264456398591059233891058809374207002390186255925282064370198419638895058129798495346211207236548230332779521538769142581385951481133542440046776454398566643155150892376517732355094687869829336496204170856299943899229436498688110561965549993873857519712190726455778823095332588544465576709942876486178961970998348837343369936362013758920655720226545798734542991346289905163944404974368601199524896757104835641436522581519158407680783983981561672955185304383125672170484401631140579249717503032247447595420785560965263834174363909393624619102319384247389224884095980537907221031007616237013498028829217234404519411182341414476935080428645100422256132769357507690973831332723581870967451390070164569831896187718969738489584923167681172948731985522233198688649239804266903360578608847799128646754601984748676992501278719193536363099066526642421135226640438516761983477888789635786718995016973126200007395303046887916269477298117785261999111666937786862758828065519983031194439309325610721451728423560722954633537698413010210501707945542198141640005319886116436765134835319150918003365415830797091593930413635040786835333044664490838065050397942250738857188413052180450906899240127107708228764530786180653594422010239277951655511175355371912368156227664571625218982701336935904292988681427850915691688840969553117039201669291016045807884316796907066675945314330292652279281107617836683495720164048533689260107031447482857549641326848374559097756213589080120118809293948762065143044406691295553830246844017376144208739418149382421902055294263338604921156584667606379639232061056184024392029112045675571942619155740007599653879626359402380138593901923896958616782155599592763622560555650246602076903873247623393886711424997025771431105483363630095095886100278917711314705800252838706487909227692833944199860808945828152205471828529668794259179222493435805421682412494920200917232495374474138551610605441274101631268437669917304384342794695660495928469217637571424228193954026195502324310968263823685245209904051329379999180066171014990549825034316564888260993577191396821256970178894971491493352332325168561648164168363848913110702865862635864702392925141755178941823002880802579443042412407328533083418082067761480476083155572304265120082397322426917255041896823949826580016705777194673774436272366390172552849792569346883064437825098091952430049838492750558656464916997912462478011764027911602161186816890007310727177165614925693307456328593644738494420785101549618424516439781989436119989757949612510422184423210083112165143020550011864854367394971283756258563175485230408581265284112799260287290537799480824526562445699519019637202912606487478690345606616914922802534300503446553348445405977777521647760013812764450963834051052616510672221882573751635617433216633933468217664522489612022631457503118973136999523413280077003347647784208307068272186569478786675931972375906981612195869170827186223269631995695877334526384005216899059837688704808890531788293621955193695467839792213859608328275680079312178369321294518732374872889722603465301746067862321742879517351707944792790526842183094254703561673681133785245129412059299033557877304085153278304267313348972173539350386403274944381892008455938222041688616344646596960890938423444006362358672246907785888396000984072873507697047364902922516758837094091956011746611952584978714931940054340775765124927961517913995217863716543224335752958419879769933261364581814749834426322771484835456516789268805910596452484285121541390644097893222261470633231882746459860421504015055190827691950875180404540524210487934194932661631007047333661053737096204979451443966812104844761154682524685197622742307059727383677472252704091130552370012259655781712922821479796443354796111851507741093423654763138554115265045903557189385025348855873009387125793450178210608836516271582668870282920278580167792437840404038895513563508943771413743949337065022555474262081439951410198521618949622058347687798281906119501762938532353106987282015324558210478171106947080145605468494926462886415169434488961132751120018028354862061493480426951937380812574785076065965007854103002594034967237430168424974260937214509572726241464490297402306447977824398886248459343635118651562391745334540592396924560065177559032664730912828687919159923844531077559091326920553676719790767300117352948097742025801946851589297554938526011759481791769687107730970097190124130176998475056268575981287583597608965350208444102704888273520911330651428138814346302147485038767089560347183313631356888169404806592058111343046259846100880747571188578797890708324203738999499358401724918347016079064786184448476756772527325511308799324824199569693129930615496068990556426442231003601678471622337420206153852565273748242415797616417495825452354783566150084054136437707641535082463809941601985734810561717458048220081672160449315076999280825795126250354586663840233353944319586748770766036323970195993236264072442188547386047342849772256291567954679965236490489259012708685871685170733376823428859073921877872417483216926945909548801022784335976379449852364232203265762703232007772977454830815314761098431719896782733472992209534109633687940073127842075062716188285377141878204619114182175517635807959890413726843628266658382329230165211485182828530721515375438762427198173817832853287907781748466599796525652629973840058359350022608157802766592229359045070400127663788527567376956002677978184952492257897122627419635276439591631883721525307959206996830214991284585122061643411791074941454110782197110560346014458147625552206006623231037870752811002964329695127033128429246921162884554255326792046091625830713378947891397010555285390692184155250204853295569639294387115203337567149366620143026561602076939368841979819887907067838794173240276967519495738556259454210669591768259663208790546316450481760935290750188050217960719315251881375994682409686763733373184858717506505012349566513291892511160796455894881973460078675945815616753116682886502466874973933198181498994981110380160789730593111530995920429692588418209003078515561523263767628643114923274158493499207212721248620125724310181952196255460330568880342478900101465735382552977452447797173081520941800923891366124194642644791362915085813363629012032305800985163837297528150209470817429279025179866449074954179538303913745698253881004559641938109148904514628218117896998830954786238716200613030912471402327233861921293261216769233064084906751410833348229419768629311490237412501304630665828343523234379167940902645642853384814399938378058289385865089938102316596928005574522600234137478805287391512988016323776410079036293185705776456381483081782007225198037056328344408874634330480554175969053183821613692503169385502960970166497903713647274438721345335311064198313139043766524195846604452316785197631769777689954620894542244862991679434765947616460516410634843292246794517938821387522956563496645002183142736326432960637105430368787696536401503258941782644776941416445223309656945769143537627615401564109508869665177197165805849048184881524050230986071932117817172196911973755545066175749248914592792017300330670504003526089771517569061069863723381861926171475411609085958691965052268479961518016310359929968055705465021973394303693222963259776062910067442494387843739693743522311255319529295083961689332748005365649048132807335161012946239364454056581747991402914211599306915444443638744287980722916899885148267145991392173876190766004385851854810736201781367993186761215265804403300159069096103583874837243529021719858746744895443524433608067984016590562892387628374991352677390318663583316554890923325449345406871628276010825973184982172588711454120259334337283765730598270705278843726017468028093490146412537984923709232495602572253118741936598034030163379652958496625366361324015413965482662788209328881637026502271651518564405189197420100845017033411755434803858765683886030576945738734109840139372122264697929651060541482532393947735000438412322480556760186397448795673320462163630884990865640759607015091344463484192251143204518117420220802359782969030060232532213084641215248899435634049283217097160737618728893012877258255628712835423090725243669413348278353477431436525308549452509374379086738392254212140892811501819507767699699692023766952076410425551596554458620097464649567270805217733367656333555130600532640994106846377486643354077056750077978232911821556930794766417049871151304391538290272633539512566213836044585743360175487310679545788444660715173329665113893140722694827737493520197214505384534245658218631711943936613605012439882323188937024989572177367067577358375719702508395423676593672152460853831626982697536904157451753964169574363513635107470920105415419946787225445494399000406039096255119637228998596445756697739268975977817173976093254026388895208891412152069351930353652407925647681882886684408723235143677331469857571897994023533598025962443691850614815025501842600852397583534584980996887322392880466697013713141340981714732019122755776021779694894531809511423935193911693592730303947496689015705831805768071644974556659894134629758487512956032665052472764581193781806988428143424586408431880223685773539137996764737986661257590740287261934536720775690286102808910473281768128171805964183258647263408539440301245779474364818702818088702696276328103718440614083680304322362466255197630258145495085298419581088757849887349137800685968279862056159558367265866368057530893719002356781705787094350638021969300291067119072254509452342094805709576742915494932262949793083818684778540239129076148891095650122188839042991533069449398878250132525736925813118666385180613822558490566372345271544862700188166422718315161197332672176846235445636480086643105354905621029434768794105089375008604112207527953399632295932628652525208363179176974705605083062112632628675784122115554250194081403656224357719344787268945779267480227913440752151913663430261708432398040047326657013174221056422954016145422895703218174793988208009088800911129602640480920655832524703272639419472780496966605965452644391385259460610836717207025122671387929489323677801125769816998917008495904852345911566616062258546374734034183191490299196048580069677990403871606854721225857801167504302134109724203493120019974643718647657906140429931731739117567145517123490900627184672309329424146730803995540122806255360600882631331947510490359686053975764388983408849165689713834775979242627444225109615916577152161315834357406625491847011531283077997323853100916797931628866180793278953645775747943010407986595784365282737670720545640942342397425330508758615671529035947461222829735736028599140315214519585249742806831719294861121447693610913856777311620561225019432876507854076021925072829639676786889499774085686610984040251994373483634960434790015858362738224004344562674581096341358347791230689907165588844609145528217220541450968377676429759880617565401025556026575256993381945546653841498514902101184747844430002018473502496678663269032387423511354379319168801581421655560013986697736081716219265034001510449496907102149194137326494445978401622800008207384915457330646503730505166185559628455062722611301277869444108956431731357444509853087125587348457734541539118282493108586581514427411367165923152520646702749272769920157589610633763837034325287468478902729838250877828079981501183744330647181091716617190470093649643060354874826383762426389440649401553368628875539053611891497229192597203178090367920421924710269558280809443395367964165299183717710707856298326880199509710597393551782759233641180108805956258857590795802254137494389496761253731246667419221845455444574327413372200216500229722821450281723894074598904271170476165731609454743178176515653525158345183564358381624453904215250659661247773399222033215407784595609197342273108589841914089671816064309809363058418020946092552583162959501574632752040351942947787232393902416093089154707235217030903330612500149194096043468310321832035414559648536508450614020660398124442615639761943721390429010224202970954583837413663807636364849587366693327671844053857403846946950711781834262953073605559322808617898993267628766781724246578733673272013935587135717144768301324637448096243972441237039706562089256666972317953034035128116516471074818555512113042680424968984852926297543513128012668817168661188391308744128159098971732131217422510925213070305707749616235678433972900735770252389187133690375850134839112355407368533699250855803013630537950837578545585837158543897441306662982924029430846892111087245084997639290073263595040525444082797604845974669555103496841153239235802406945887952301417857409614172268010095429864115339433762969599265019373664863655479956199253131624037078131427282242921877661741381228829149230690236952427557718131031417872247135981243990962290688938198144962522907740773675046992126303360431214473347612839947485128091876990180821849217854475155401753997366536424183385404485040461628056766391655328309328122794146868393554285230277739753264054658729048839727481428385980489280435902964889386301449501313317178226937362365978081506994050250103617911523357761307445331054774882196482737020025916545948312668856725879996395784948747143530915682590479528073816476001357837750985093823883533545116682558536796364722435301980334429727644841174066702246523141309988501197666102233189943731897330299189441476127163449693065673504461317612931824856033460552990066323754708453242070599494859246363338131986525070257602744082444763814190857975466386351143618202722722639850650216039720897800688228197368305547265200307616721452110381825482306601736076333898184487150133543664494274645435056203897670155602445627549393796969917383787166291065122322130008671671346749877385988671443224659591944611793651757937519287525062193468540215151860523635858604919148404737207306152209334494690958479487312748329791696037204238048609004675203181423348653559099469765463849213416640861800803403803912776237606388417908904250383495912922558953894588690744500653140992518433445856347448086486991892316672262593367864603044446602645187023221429489364401091908785791993673034739135181774124002844211268565646615136459732509539860874420678768688537092353112818622416429466223252869724309657804768966225654925309365279237055396196002249016182815117849036785032569880609821101109397554260472618176868787871646952549048824214629013178751477938375620320387772753326295504325241810668538704871910611616589414856172109316774370085021508927475352281653916165337536416814178933416538490363611894827501945133080001779378791546415584251417990715736216605548640851105957134949735727445451380550484774839677400353598878565560713945248892388635958250805505744006953594110132936301065349457977245484090289565312367161490385636467810451838099435557135237678243499624646553490418689559953117493594473683079246177527451257223001592059373150014452970305738298954935748896097087608607424575775106595029810259424681830726482424535442371381971771006822455948973332096552474366737538649107653742253689065949754921866977572240657418312094026266120818341341466096196204885939590212211899790703360520963449537179834868155285911034108942929161398910678325897201130205486072593584785828163250187035246872833487818924846665234196538541972293252872056439758399397344000998502326985608507544246358701517229759634147627415941835030449433176087993603883061039671021453246832766148121104767858252647111968700820527955344871226212324185768217591940589415654227423809258766471448835765647118962247871772406149201148717840885021744317743950149750406795533326556740340475772056735355706258003338065304151315261016130267383626316830792524179715841424860778727500137601203963125153091861301446982636161137738181808378356522002045708254969313036395431398476814772791907361570718451123266695589659326127665679723071624533985268208447631652022864787236741455074559941542404710430746540379334649644812943000347461864158707422634708212854985621612745840379767256805728894919752172689937074334953317977545042698744222017958901074857405189693813285172976790810321044242628589344632614512061204682141182769052234245802801568318529356669924635379710465651518122479463659265747952415180490790853991914214491526380636570843020727235712466926369081950832320576342572481494439033680501912924661708995478284064437092557525490889917523842837830831944621858159578002338989865296279480417703528859723022107274994033348058061008293203459351369721434348219166842023600450483377624748148230267083324176343504758272034619983933975286529280010488659335127902875636959723504709582767217789863177137904886421434443953140900130220017000367195427162451216095963913014608080714999858587162945972225790346526968705706458017050989684218558283129818788486182193735519751128546016869075031054862953487165695802875016287394500091111529390102253327570120022880710839637078304999257327571150373490406030240780420904943435110742562654265532588494506618374213082482018324127845219053907378261678357130081311282830377692409538775224750028895697544936555041402663117716895482435793016204239686622885608761277244316439693749677136175261591800458791150050481038568537245781700061650366985914799682348563521467855762291205545642499824588678176879730910624872854651326520169577641460570968629059060136341687995924549809206110953657110984515750569027601265814362226170162212132529896783642111024128743809796933874589250179953230840498256001703057844562942311556075851422932911837467502427673681297756410798143236085831685611352996408330833477065183515118819406460133268487680931605273477802106463565370580362120424616598330232408887075249308152578640908561501251940494086072669433484029369066100287451253585703425959123176230748175739288740349887053891089555980161551885959906019391034420761706287342424743125606720006740152601697108668250974585227953136239408308205324749611436135006728925037785467432679032053386745980217240174921451838953299054573400621703765678827740152459697671208863835976027004565759937314159193958951376046450790626651206020806715991345766188998054687339545550834762958802197247026773739406943348672940325657765069676343076468871818911334289868003628072387426187465727607675477510455815171517684530380573671325102585172661421672111535121040987929292223588008009823599973152000599106169275177608777202434463160847676455307163125284517843523354252785335169237907956495586142354798047812849299156755423928762008413732563036336331445598940259984495404910130359939774037223952165870027537455996315445970435279171870273066786296552204096101454163556321114510783035430094350162239937954708848265009038561382750089676089648645348742804071287360228505334829436458543846424695849788638886490145808687990637089350941301327455362300921486282497207807360865708589927764151131930325608604806055856443875354911298978066041798405498462481067158000629456122171541715052916222899429019649660395421861148787712250017679722477837396522011920059553789200115452935222292663714702718041475273852193232577387013314753601761427205758699715149039027049141413481518148096940333209414069939296685803336128258421874595030497083273190007935462105700527578923784483704590059928125301981001780765201524873875760822669365801909645490886208133717155092784542682431189751384752960316323346506844079847877861781340717518891383308074266178358112126871905307222776681987431548678192103956511465377319561740496915365842582853668074798716219069828979159721836798128347780432457315641364233473610377233524625802886582467768756874948892448463154962195560489095787131839644973463454102313077245310746624602706714082807270914637823748886835077153810444900765946681582918634549887450934819039833608475017192771416545515895374104899824071450764054301566319541360271301712059799925602314746878775557145823615659264829862783485374010799708188229246546293891972475900262140736905357306021027122098232712817111128524692314178227239211306055741053995292753062713170375470283586149608772974112843914806993695779962085896670084821586436656607498516259637305852430049654282283514971905905143350545483353215065052619097687711680560919251133802220027309934850071848213170525090445451680371750350282692619613014411288684429239754866802982025619740993216122702687279161726018695887259395451455466359532335386071505815686853997832888919705105986182351523833001651464926559006152169667478116924450523939668063772981027985881486439494523725461991104094612484156952454701366307165802961380838447856271198644560615108493601626833112079125066702430998053703599831646491902261475719186627266108373601119797472120190173841184028091054043757621408785830327380165260597930876283396230853366389095251502766347843203679237039511483139237829411493274742282460439649640070957193796635093931770619848971046372024526623475673336601596968068823912492728953637468989671182063465063946056693698244737208560110548026810120905711599149838699203222848342420209930708710438247512383235401467509569172732356208617796061599783167154163455854246020176439732645181281066285540092994202470660097860955508723180415708525432412267789509828302151016746902614069569889688510321915205571116716662606008276350295161635152763324837281392810168004451504195412730462086456960774647807016826749682846530362957773876936296970719810397710052664737369228006285261725955249917710659503241219268020035965820271545263702096605351421781119796941008080687528924034333081353649394865043044139773449794352713845482079361234923007871619978711292269617069751046587992527619865943736684077661535391024490207153997818356678553524083684966450517681204969511637482545397475553593509046752791292152234737655004211537472067709716622697465593976162159141046752014999782360297990779272861120683659825190303609266998956769436666348418735142357442794372248515577258474511007565170305902618434854467529319963077242178744753861633387504368296447423282831466185696239463856331249838045035045353091979022528207580463667119079127158766091992679841492741872212909255707345730997073304668191781606726462561648908390869469247187503062860882748681419962977275837046003981534308171748890212012894597940702906547394776288947129792562430903845096148582425974839668642228649514681673802312211605351744853372703890443036917712719317015643824433509498240696748584608996819806678362057455485637182138214311479369627400168389999591974066525560514859475876730450091203337853430842136294761889069654606141938691485598513464296034242319665826166504084577156234405676212436629765919799099412755291117519654732023993412699413735288575103964215359937016810898287162704338067347181196831710714992628126420756246763943354321690087412488565639655646596462746003406803452450870987347390183735372525975078546850433667880424223802871814967289829299240768609031411917870699135980577853234719522027154012838384103176406536794878468642414468000738222546072142761444318991257810581852709337728440638301967740646902754110837095888249953422444652242734095009143796789277009418637367664934840758324777651529015037728576345952977514748604640653619932518083282040054993898190097752822365967111661449791926808354214552935001667742223998991167843258888191899996605756508836830336123650589395755616632931731999663955767632625206733889813503210008541775660838680590176772048790047145077047616479184987640093273880763255345453216265155259691039353233712755220351638397019243618187347834560339400790793608738483924813112101611854143518875843890151277775892921327442366176351394106407338311266591343005041683129188241211619419596543779235951821720977024449396231499698644579992618546622875997509731155998707312852237991565198461978966541988280875530835753474147960675645913712755560361508875973606873736394893122285163007421676392017296856088096653730428101092047681319280025347917932645051591066866144087633090139051103780715320634150575466943848285657214036165400073500001566481760598757078518737711695029760662169026790765898646972572792789322102574309593456862543453523735863359153837222944878264346358407994648685001702134780380072983061200565213089626464762718520639370498701560018088180358475844221181708166147984060466184023619187363424744029712995543944178333810558828659194039285136706992564885520839835828702071673189702248996029776303250670361099784219650094092455957215128523439418671267545017891691716449578058042240389104812356714819978123073834491432928936852447709126922454583947674188144600959716307054452633912101498429242876397468596232229003976924598151624938671892022205371149584194922502764913019634308065123802192727092301459815742125113413621320612112784989123441073258369079687524854563991940574979783327571478211109670181036482449282871597237431377444279275336182350102575928306689272336803492195036450728578599836584847576846375006455807681494975411627446863559746795536337052609353332232055334093217137754828080562924256238419730876620135887012827714755934429265255202124256619322902589784630342863565099216093919815908161963082467336793106259556863836003620840208791381457308075778873993612454949783318441738284912762529349867351584683756301665955866139113452432971422075023394274811333450675701358101465078362107206438899276918807731382673573426539300973042454154005940764090769832829517032034483694456843150744681714677010711688547702963224849028578013291890402845806070629073640315825760867565459702619108387548701988173453881509023588521423175360721002968835065518290922794082925541809043901140941570521593132159118645609266426935372346100509008292164515671007159086922272223637021285797144676347894148313752765966832724311963990959025458169856671629242650259865964466300348014269958036633229268791020236473215541720302421070222463388069579966072830300412043131917296512349912284252836156891455430920603461809859490560663162384289314205382338749884337980585043867924342638821752019758527247111338047324084474051267262180141761265684436919215651249421143818507108343446697045598860206194931658536886995805069919559596310162205979020194757940838012140080652751900232535778651283460247240351901852086707022870173276105434722014734964003440212387297794445877450475426877336226820319814255554681955941557232385634303266099593581680825334107025784385903391283259492333543696729471282993864642117362022281860479825939657493830148520193203047967265132183103148981887282915610082845858879416956133500347799388325601163328426719610035268313675978399058223258904263953720066667131457050511018828732174567296014673595182658118090615666773588528101239894678631560406522626138510029894597207566523502458965828933546876542911937964673992850218484305326361241244058993443668801161244756249181466465724285870993777170133647112056116491280357048187689079138447934210020522969908977452193358433867995853424130957248353322073642557280212458258716397869108456629115623532665730137263464339023769840102166465858869341043520732666857475222944834763573199297995961306373600793226152070341818082587340199962046499977949998261010691122946122915329265077797662865459081299750221678339902910839639191226841675541520949218253095860618904369545277075204112824988335754137714423650554127722220651393948286792476718971029746351907155030610517297095147955253345095164746762210341367326454162383426082219322220296143415981844794600258317032540794450973199831957972510602623414111447186661293661312129675608412372693608853984787469115480616614540286615189472633537756319718624036161694728343165525575035177480286790262958747322109589727512387357807212676678507779941827815251263137191932384384122929863845594894819076823732496262378928070484089094350170931563604265699085136259814440999804829223923464343916292426845991375533041839295131106816200450037800034065673911276617875805452038363914072923468562257264610091608970556444617131838688109011457448540010385372624997964320561861582638311225448109854497119284718526390543553218259595280908105363271143551133024528850748446180352113728140990316363839441044294864847422987718815511513510200711373059663560852510168832560072473538882458227467191544394575012071038128857069073372591534178432295540233609038035723764707271110451297301853504184726012214198919679090946997748251567805822307534599922846251975601466654224616124764753138125751525571381897519795790749283636469693624336311725445385483319876670792427798839575279865627169476750521547590872285211051497654849610093703812763756997805283652115103488450016469506068213418874188037420703256482647249204967286288713921444100687705416230153566392276119457248210150577634413336892249995353263988136109449543577913159082623306757932041108621450480352376386008382958786296473125618357381796758634232019564798892201761342365787319992779492216361464840935467149886714397042150016677330337318909469597155421575648525010979904956730837600748888889296764747311749623095228902115950962451280646792657105024692603281605921578999954610286114430095739198491487281470943842634490019473255273999120524313752997726289858899590707091442631540039678643240173417987286798335970748662665355820277794894353441090812442350261022228981771997227686561552806580554502937942323591329248000796831505120008615097108257556931948403180837397443391905015386335666800353570098535534541658335275380090419715004704062096802269652144123357031745492262951698215097528926526480824114535862122288283436871070279444202771270873229512095474459140414902623864396061993709801230159071005128107884675599489177825701226576418809816148699190878649864652502438957977496885967235422258611011408520052092511444140082520565440467415105984495759961873727006305968054460075570631219748496037693328242098319136866141247984229579149382476745900569503197115613188210459143921648044651728407232680381081532995026735292781759241734446507534040926566985644360628269811215078882329679998957133911091904303844367712188076203684409877312439026954035857303698256691732805864083211005132422056566009138005303846596746740351744173593190373689567550703555605377670172142910589256224206402507961572292743457786075597972561387398946590472177222395840882326551112901846979312371221681544103377434369775392148660302591246924855837768064043089551093776985677349543887540683178263098290832110276414677517696448500174230640742405408563917122610073918300062010574935514414506785483525464715628203646575563424094629882233135511778998569233399236172204988781547687352290507604697791910701384499132066436413470954029468870892371863392099964536778972770989889817208350151569874297934747323907377060681414915612090211483811674191910341235038266234208851803471958827362295790855554495945988156203930381949695605779041695467171678331456594665199112318667716869560805924895772111377449261987786884828503321391140020920078420799247512348803730582036847631107697521440686932542768113835713579144825214255150409095165645781167058181791040562621612427718735792139920211330204463262177177569658182621300356789266344694421499166914378173692413914880663826868588689944842425626700109659176261234725986846631429143910210859155958422348036247249707192382676372052442324283574274191750060844304446807864817166264368079772269966614939639883765907050976121754153550038870357736902962168799625013469599518286309702381162906361799973330509627778918018246806579715954066216498589296529130145694391522794583263093647971163205963037614239681257715198936982373283070687214167596053120874424380461453855063052124295388319440257379011832158707986347270881272096379038621889055838243754099602228920226468994284294085442387538156480688610928204713381401280154021135320547453973920701266366433322209966385544347595448269307062979993725904509685727405384636076142730951954228415114832872351203743929537432143485498118622578542824932915970404184976010684166858833747649097684916408629933368766066186197733617137983802901804140788126880829524174009546249279377205449252721662292925808732902650453439402288905431396934526568120179449189091893931656406040096958273558448826401586297655765699624340379235846435611594997725187714556426633728768675458079376516536538106805103506068140021808248026879064346127222070380018254680196235180807497296253857200433137309706257907162583130630999461091445207639850410184176489700449251128237967916666459744417980730610316333700971545735660285777798745629611490221628628320690216359174874981954440717981553613202931239420136465820318103968415498330438568248504410498542670624752994953473654260941178367831644634110371852231842433205292098510078663693567529530889285274495128866233779854597907608470678954974350919391480602754438790133137837109867457771259030477531326690132057905227304151829296122294578965989523839444459851685569598369155495706274732355117490263220033157441755721689869561884657189148413382647495977584277727063987572667402446611858453094345553189570001959216136860724441896191774584538203960101551331271577194451338512238344101639762685028414220233858813256798045408186749124481212151792725587413737789867293805558286442748916593479013804765782299398954577173133001922364501138938911302282062076459690434283535068037405289757751474381425809194533542566337665120248268128060279821847003995821082521682699175562788149626219215517104200108861834116230642787809428823241003093764078424250076494893518003132883783029691219719855066702185631653111700625162602292805192995787667518245971591290558683844320466935469159564520418303165103498592023074911255506539504427825399013540508123791587312150845560028486646342850987112236360865559761014526355934383348758143788108170888338223604446568205317816028872724004545770323333856199018444755957129561499814099051758050027762744856046278197781989569959896766951168564443799703986749008261550717984194995027609363051264099106663647816506971952003582120429644094678363378175136012395991941556230587606689996510790837657143009244379622388720238114511791700847028751219565240789587063962033618112701875068377573749306938383186718300331360080031815392907715382655438352949338646799300378168509370129634200216999350856079297144117073469292087868195415226748450647350414153315124330197956459726160651435499373299138330577840667554842777753824682371177536853467295685077014129910016103870478694825570890790840827509657716774825148651446021476862569523549943074169144354786296924429488502228584064860221353716006638999611817648836926992512269668093881065602844738978069584194010405757986054514273058941359788385844182456509955638028582682160307150645642761321313935664226490016345328437762239090865850206810397846596398514202733232909592573813541607265894185813343185033623741551621094840325607561723865291238291510846581085808719693264863613920800084889060217759019906732926519103567153478680891389459237012540469368753580754942424510123890206757559315670976061688321987938812677886476935212722464155842990836871527753539179017556650483047651749185837423392291882026001866463030851769864463238906818984251435664037319985450599126908295417098974238147413513629649362151481150027998321634591950532063053735131086262950696681896595319492718556928733326793853926419317149229309852692835347508894055749662314054289542865752015360231229350230940275746864888846506158105859702558858988071201883044956203106966692552093088497953961061704312317997919803467861595725446443515159196689829859248074919469073927962562421305168690898496294582307235361881569197973644844706541237379187423461476491551318913327785521728149002133985334311206276746892797391878889838492257805149424841241088676701235278143801009540018691482839317862142676536157936607104274410679344662280885162053215822860769628317808335885027515819913939774483049858710748549667067952526982538466707144407095088510550636129667114669801029766378028295845540296412594484350164361077716698308425246475720377929866311534617707427501624569206670286322948592677474311455932635157901485356774036181216136427914914079121358067449735427714204914121248303715187188929317947288181968217089250901193654028783346434678483919873367516612009430495129566588466495151148307710402716649783741892796905090084165416763901127517624731169194647092090022936664514145602760775437528741673166106945197903470306043874397495430152148217168733407610366773893984662619389854334316439921911325444030550622550884273243312249437989148664456319600883703642314606562448588976864608009234944983944937680949478406112577628067846486555251510958964891278305108753515027447832798101903864218619909072245814065783827571844109438218475314249818253053102047974306774293628015767282886074685646718941706960418911731506281129971842868676056948875058915567627997820051068591083223555349140805276715225934570167280958119427029017938252330868073903179056255470541589253740747737542199035474477668285318373499843863784288344257957884358587932255645383998769295302113470797452456745613434780552348812161977597448360115990136484626257577559355713695457130116452546128312234158459869895922668597154128989881785249018602333667563619150058606075034056575376407688382507413697504097630229237801587641786362216652080371522643984185619861974423386502834089143289991604150522107783033934960505873979416111357503299867443266022953402010668382417359044918755828045978114243014126945437262265552064865967744594291100097757852869611685423518715796602739226388806683890254626001029907826197765263221827986746474773530146339165392513903611304633862530727079831595249968630156346500853659727740241940578417607038245111427367639968346476264894668642380655691748595130859490058120752923606282368872774477199303017721187560501818615011160477619596842682341806590396499610373383980487235987684348066506372385781630857786390188204847010492397736290093300270554193008655551345522068217204521101778052228561645526625653009230116206745568993424497400889197503735644274218030897240404635998116430874228247857934802445262681714095068937421063283294724139053875301968037518894214862321356328402338839997427617549639514896065677298173640555927442502818361913404854295195611551746148311117919297572469801575568658870746771397395728465094289962036866405958335334257040755047058203359377918400643727656109358600208550616897476772606636208128623928205923282128296884156467302968335708528322123926333901796122169627276504817508218314284754440350243667545823609149768045321780102928765288471559784370013399268126671612470196445340742627764592428756720136609974783847026977485471030725795380977169220221099726719618389766987260361714264012784170499461045765594467599937660761763735791232915803107803611310340341898869323169751424243465265011882858660779053082264564422623269741577165674276725126535000043599256829350435750452026899647499965626852610595726697792727140702457450276628677310869331147431419653382560615590790498169736339821317738188497964011225507717876044585538043661505428330525872975695943130524100749500460748143750152150916108625378112033486386586461186062025086006694389134427079457543472963460561672323281897911322583379584091198937080531075540124363361263713133552735168901878328250544577591194496608166184945828924887940482390091822835309243927499777742287912715015704523694422976676597185546422992389758212364124314391547465114884582912127564265642999444096755626798246176850726285986000097534876543012445004118088081856478293924815117001016654568955900231345830108867368964180651690891415168624568370548531452519618384565761254838824527827351256530942660285000924244786212289037138655412571065357023473535553215820662478818711548027915394079577286234793467226343786974154864778113838713097773257302886830911219528192546102986155332125001524505627244336053151960407098448424300991051519986047532793268504335461724267610680454913770097549448635736729795696786473357300203657003203389460649864052696443222425152884437835551979739525085878694212507737557165219019998933418091372875388755456828748891101665371407944002483083130893374257724779358324626337304461340647901807575447755611995324104198908947285216605352793620148542139569779852558386696652608405682822670412595040595000972804253521226297735421924235075507769504567792446285312296065176822005519425671236764932947564433337162864804648082259896914984926509759635241192714107168390172778638105204859618543929532626798023953860481844767719547360427692705924668742753904399455720135805119900762979469486081173999764943503854269272576889911064078794546133687073966338428513025573646907034844674788126953360348882850698728715188147656306998737248851138192296048280019322026435316471092379100801952009877623998560582773994493570943930214832698891395647904866965817530784938743368152107674315150727278490926285763571905136671939611808867623099845250594582081919830892292736520131927495727845982954007679923359758676485514734560089719979225106291779257319945338425256059980945106862511957955772243220890410138330961131447469264684674423610094395883394014822594656263867130047724074872099815316727355601550966197590544933439070044999351031169570685242781756893284602800489614229468018169443354443855980771873833549236442003302949495787501557810797574679128296813369089975016533814427978472436663243855578869070452503336650273117177427651549795077627744270804980498483276496617752310790283235635857270133545108934256290516595311848492293549517548408077345850806504899354217177422012303089160264050587571070707452051867608879526652757213673405473460120099969434980058695589897289675182439898067539549433113941119811266480422815403389316910794601196884162989902693755733254742161964175602485894449248008997030376655427676536781899304005589390071732213735361731143429980860225074240389479335978138254504002516233395928174890603739428316793383467075558236128781185492874289598592954767312919193358835601464882562599093271945282930146390519788865361071062675107119418247327695708167025611664739698070399517725050619168055289085738760575144398730804103451443705535454169930892467328158049626586186490487672576969548415912084918179294738549571078529963043543056537437159589624596112725133131717665934018443062249297480579722994159796231852382526616172371218128338436443717737996596046336628187808758017611071600555813386618302393289513563156348438129668268227207680638874220378142057754880450414550223075192970342358445310978307925749691135167070354752896589849473956926463906185840190742752009727702516626234898489080913325077436858500569143094113622795394188902017760769388978478268833489112846377218680370450455260070873986921577954297528401672105776723585251987331388065324535629400345695697207642881592127208172281035891265904573945754383629250515603763434775928821811711976203706857803749473776545019394716615272750974126422776539860928794258011689055399704412481159585257936413902676353053326888752721456944485249596323352662178209674118157747537479645401588371425985711515902050281121242250638738594558748000133375747439530878827219786836269528285814639494816115728230705746861063248479625552794418849339329116384396240128292193530373781891884563972236575721494530311079505444331584976140629267240877179619514546720204958122418586650492599500680023732850885456223027440344568448925344987115876814212644756941036390803914449094172236322169524745965658000105553424861965987648080844270488906649325838508994493883261680463851454797224474830455252004137683711060973515353839235300719224420875391679271143471591176455616013441305073623208034583660406875881692128297824899578140596244347594395775498868917924223463531366811946393738674631675581315870071885083246269332963525708255932659944966589670933411508439702746750482917886567476662799835609859874667142601231287327428207083025151846862965079996036324536337566908744502179364747288398807358456617308824696800145848132165508906602483973506942860519847128734284462182475422887274020617378356683227337047867789944330244773505779670714659003982804011491466643475279237395875948753239394795625213517846224633330323582960665416737841868135802225161580320427600431260245388597828783951569072276328742950690602404525492471254252155697287899821902826689219695787115655482760901426313927529453515025340438343665546245748595450861247539161541714049767353245351193624798162245221779141419089249653647617246986528928627705908206834142622755923233978791265935632446072845954079770763708641895281846019420308730624526220785125988706777362501792937272567697951006381833089872055068293685769001133042559583453820867758239581292232899248684909159492559806834526826690078377993605895975018418950112995239785183948918419722418058449849850462786228800831479465381656457513030629152472245222412215367634455274985597348492897682933346787543784413515790674516363111389081202941534499853443741662896203551859343773079534239632675110696270194694344631690780404387546560976493805192001077283598704813295933693511878952542396086204436721282763171939067642653600129463997189449019546066047714626711038035255545071831029035549598276301660803110109195899364711731159538302900652613427591881297326168936628521270903462051452974610993168761875552875596555311513160064684947172573158801241681592910559482060029332913111571748985201451251302869774877272217449776859521970669941150776452110411590016593534335748576813416164795438514112785179261049165564928842531548483404825178705925341088727395756094503336429911771409292687652208476399346122879167666596474045899949949805177050220599765260160380202443266887280830337399262469326956439419132625538137963737559973892473286105826615700433103494277976222190133936772276732306188096069596848935671373482428479104962279700941659616344816534954691507017507976331715259156275188541921931066022988916834673892238646342925611418163171266003257415239742756392972002229916662191953002654078575309774794480309946507890142323435176285818029106985020949439274744938568996504638402236644939737872822499651100125201417251480855940255007056819972580589597295629586156413519234660163227164184524102916365170605100731673121279957681176560339622920555139857493250349625287789406955651965170910629387102293990787249311196789254341099141194428924217154300964390800901672992932607757412910170648195422945752593626432045381944296886895028983193204776382905874044141729205274623936175307853436063263873338695826795687213570845943419930216877435155971603729670322614261236855749700200605800997668267974500610863632472953375630711484543835164058245360673262650233348748076970918540245816708807563384977365764783630385146580949151251662443252589459762107808362869352067621944222781184717735981772336226150556816697375434466454061627180671120895048047815784927740988305398515632690390672437806484305825095171989960732391443693422278097598248747699541202912360199889492811713901930769893105990316453595673561952506356085317350391215123802818613519909961577818983345335371357876948839094396130482253037911234432254855117314815093709150005772870371071195935956764466435897648135963407863234159809016369790358929766315919578549275486688193438532772632624426113899001719803900204953047482491513266913619150702133734813514568906056912931518348005143269491623710205197290958939234243873141243972323656187391998644237130759964301178824196712738704748120577452979512295246728069210757490788982172536384391148947083377840163968463931917418421015883261404860726239846566680052005279004709131696902990521664622846616512979914642804765066870978944069708925015281788645764571036521475304326544058721915879455831572841665164953997821900614389765978287646519305218206158068652815621031497037488224724200172600999175287966803009387145226141682786371257575465614461950495031073253814676305551103191628433845238181564924049916322844695351375963151058479698854305855945172270964014023750699029185832232995305471400582949645529635141177014890668017185819377502941841061704673173039796444125881432918549838760456500770206803855257808708435271677062214525820262018894355287576818198464255975781428497117471100344303094805869135120106327164812614463446084404457561133863088235762279202262429260884808279151838888911297372219351666404058362136184202673208326914696323244858141203567211517960633060287944443519666795320320631809290200001606222403633841513825483495336429411872081239751584235414314216043547181271330397942401723237068882604987472911261526985558958194461772813264148720238370883994939129360545443234634465878703086481591598143444957363288399603452461373645658370778159655322892583745855258967133253317687925547397881702526027370733800821686617557685460996063370350723450090410061479553038680630813407817295460950087289607341760238862750104582159329571053150789707328446971745058846604508464334194558199985753916182126023716162944132715703428932479164537145992422202938277175354752600664891711485771086255635837588936663638864488151311325178855566482721595356998139198657962141462595120862842646473636991720498420518332991065767481857919417242967143150203463560023712065739008589842006016615591055311655097317496796787116372713192877406549997375681368424642501862684861966960099566670006267155277924270524690499811769388019911830878958506403136291551567324581181260720465106478452174958125810671412965206288779625567105253078411752197477547988534031764011476963609708630075324177764287422489426205536695709448933319575876708858040381508715326034339072214220360750409029515040010260696369002502041348913114931395160642169889608231306187033192350185107620893025462460237363108107415420594354019695123082475933344423858126041614050340942604395798184020529371997577328911787566679178244096372819387552130792741053980455653581957796880593975767108837108224570127525951961847878133372894381020098048912543674320195587018878813952953465473880860677768591395194930503921908087780018212760562946391081524267367323552145185533147240802799249322889791579390212998889320602821325737543153804539297150945509650883409779236838338112204104490188293717084255495233114430807146730808852062441795230739018600986391834653869512167718702679927806938961315524218019216113694773240455739233739703008333873836309347634601499140562542274122737426360443699725847292682371960732464025548867238559328467363617640205057838712135389500428098908801035579824210713431979323432567174206832300881404005020896829221038130813641182837457260279637384074149670574491311204479445439247355873313013950640684982331830260756116392643076561394415874357541835220172843618246133419596129514127260935835957358879518518753251802000427101172775689268499579486954741086596938658567339878736884252301977300044867744581905078701129288355550158775688575198737894711501283953397187145913750608644604379818632739560262250170969981807811831648653939897174062391945824388738353251973243255794169633810057003528072097065137945271181188024414738175751746190825304063266730384525510030874803033491368595638288676997332886282627193154027745438604826229615825225422583955071426113836606846402194631481509514662824494981313725639646115623190181986144037278866627439044328111202904014333494961750951621082138142951898407133486806205239099358072375387569345373652448405087465245067672950378447468012010156085419166979237311958820593056549089879609691878818342269012153838381475189608213431117173135138293674967090911155560822086188437514023098894794461719544678975652492518822999440755592428693885147607246348341234292251428930248445636847492898577944994749430648927280993657246412593879038480643208725840040156150545484766704602627507045270390383856654091350932785798993775063596767282267688534087995742376022375202247176600028498314394959892863951122984258730287289833472229378297872219172385015689345639014461582790274619644863390982282864308701185500859184396110134445306958043702173995621590528950273204423889886246218982903837332023349842912877716899563690528240482312537862941389547049380828174349353259389905530594580488018725900728995528825097226729530708398452226190152801034449035485326305325837238493852618350779859150725361488018606776181048071709908540329186999271835901689090657398885212974745525511170468381199945124408026975719230542412512585871333648248666222046205682004213796892222095667757839988460056966688456039651461494781719939671834304156481001872253285031200446526811033600721109740810203704922305866286106434636346699079290412748858703401669437349605553747985413687478260631308233507635581176067456293930411099115365891426608391187117531310979316254589547625540416947980325514023396517318336614746481452210724464220433937288212959132820226429855407305689594966752761570414832199088020226577414008536656401445308675561278665459284023454158462888301964613846986346756004828765972500795580164954588414051981583948577967054684033730860625265864640760414503279937359672108177857776332837485154164173914500117971218539556887656503436916124538704464583713747986364785912112667355196607105868849240903499514807098118532223259581488591541002457843309918132979575851158241718937250651738760204054776781118169170277741975492563162299191650241924146886959676409776082474976921581023814489402688794544733350732649632298176859838033601196515005295898594936124795086194117141570718228112505460731351332196683991369702210789612600432540145895578204960469368866669716705022935962511399437901657604328164645518960932812935064688964413045321435854598255944850918438641629942836265228209491679975726637278388051837271127940541403097552690839351467462318044970717658455049034430029553767042600164007205495351472059158366410852685316402089958873507057856701267788043717910498122406369006518097021571449940587671318417546378100396197168340795368952660111721951352440592082349417290482264191467482648608347730627511666639263313255916019126099353393559537599859486010228060727660268128738546912373885033026855837868299689060947350259764162867657324851833140046850287911932091134526681120738609433694613456768034876338106857219264140764404918047088534545302067476548428982494014638343341144804101688451737712868978221965223125287847296932699735621661186422411620938301622100617433339960118177143114287715731931440960775716250307445973856220258228732078244583603337443940473465960140926983429496177536587490394043314317376241649091264087151851082439480024926982741295712769040637291199095085893089140844415013969715910173918342873931978077046790722385719812769389607548486723106362555371042754861628032083744390331360431668139502874585245803981082619385376025346166098151878405108218180413026253133248370628388839692785236516285800637864860968103531765574019207553734583040946468436378437875346741493734462242377642145034674203278620900443122094188023154549988746459125548973531365984205620821907340534778472705525371539602462597378176006591247234041453030601360400976054605370684655988754226000952718198431686104670323692609224104135189263014274992934333847329032976009527282057641961853322767182713838663173213104612853746972363406833713823774077655830181170996230087852297754103941165718438664739476421510169674191349531077162172293549342655047654512273903697700406964819538727316379051995350914871106536196734948009485638309061915788723409820653711471583486319355628607958330927906103045246025897077532907302696495674575089326641851906048219378257240770406109872513876533350195498803138490313164941936666456217633644471751404973933320477239412345604745558696248989049474960486499081746509506882986220239516143564108451258830860733237643670879435082074901580864681808232526661704283338237635891898624186157379218779277861067047609062459570288075397208059777137906737810469184505855637713021131875954967761475126304858185348389502932412223240016516154014972266330015520767235912554608683332675089060398614536775515898399785624274019082048040393880206592730465520782464519595893388616119139491737154200114538341405925729942558765803485139236594565272998681589510288453889641143116820286641958967650278842757466278110084925376674912890038112213018956962074483680537282925030321848015009820759575922936955802527164266114106732284278798636179358306314333635487111995525028908028094593727987274639746542893151070098002814704372212551705987721032548825762123602887845486162625772100909896981163261741011146651390618786009475271927136145305369410406472854410851629704158298347206948579945239291772700652473489518652917113141242189939530356341756002957670859008370864676736032774227438147639536537722452208977541304488527630719200767476505874769480115276811839779432267869860696075962831467450989475241621874791700855214656184226270356278594781242831052445426826232845631450789850351415140388982816424634034461369584301999257940829614781432263933979853019547261346120626056595813448015793804487710722914298780857025745579298285258117327115812099815690346936096547218293931840359213539433607397729582712137524765363507837211845905560053435895832479080882960510266138546696611781546251861127730907455373591438480809978595889713330880418142549288064855691416184222442839722037903723529312588362416438413349543068519021190808176316258567904462228224526450524734994262817257311996867669603786125061616821233873267150710898205248360907422628089283394589039694400922047513277459409147388687547867857197179867249490117764091155056342733648370994078870281211437278631605153969918494841714734211488128992615217991308962768822353408596189752194214181528048617404419122527073738206313245273181472026120026354697697956530593471756262050554253740990398441302017220576345612130482658565117481273377044580358804973351838740126429095038709764682921439146647121772650832163026321447220314555632641367624217226142338421435166801138838861902235185832461899823716462002949984144027921940786629811490617223372947477622176330514306349737030202283240420333607068791967446240418087348484961042977505340853469339725351978254228785518636029503643995691707699437797878879998859651429746848081205842995881579715077670288292489149341086453893276917758559413347900142057782011070894021246269437152519250679715497161697331444567879681487019677664654703198052949517560703997159839780473799937771658147264657124629525224411761443285370781446062128292456038736392921928669137177765082755117191529269851468467260540928894120815473274928633235950885466037196693425505482111553077268862320107068257144740885000277339776205636742851666718415049199264434121176258235071196352765242662304833205644225978139868874759806639821561577389253999053300573347222967987975080510129960827892940799764348791731867226161543724641246605290971972209395222928786338446702252188731577835989993027986819700366024898411727241746325360804793353037748887765695097673894772732354945453755993319332377815840484926203762532048802231482652390852116968682492434971132881993347921077630852285740586022434802294024058757926213968607828580446180573590618730108163519542950524943864237417452427289384628790441060287191007417566009412893163374815356989355320369536733761735644414352306700972864418423301618794741049123202787798297351976531264488510324321027300089314777706179819265272225908276425083918862320430112004777478193399507824482761546227922788869995412673700379926877365243710877781667778365120465457409366872169161699333835097817457817379899865364559543792942616319275393509937857813894563753201011091390847618115794510029628310458609881112828318173451103505360999170345609245507709541022732601619730156824890326852024583988058959309057717220372335831149413274874979938377567879147589773793597359035498564540693823614253579348247220685699293845295529997397615404648269821136346080421280824891906028775460423745510125889038042883423129424472185160654639175257325688080762702484594487063087911089616782568592930103919471178119357238585161069811425113062299992068605104585533269384595211343364764831681300407812937671685949607696885582858394309365787175678338438839661682745153573365529138354473174278763050675009360228589981081140434372560604998188720816632709881069453950965657367538239981961601789241340954744811718755148186628404309555729823587013255553993111549198016801088031930700847409530380521342911901133574858686554540553813069733649521981990174632729025171054788107610859446105386242411207190305510301049438163302921599275027115498403300972954832360729965758181187305154185612279129996764122669334300778198953209368956003966504626341083223520573495967146839536212343750514140327358416282569994401457976853150298687671231027859267598311328129478954713182697320230510369703717860125652588923159348549378712268389085298750983916419347078368364892042925167530197916917942524598928335573828482487963017527229801532038557379641156288375468428813718837864347069916486317264258378715258151521257661014034788741124506601143290591476320853026885294755094387273892309869632837243647707339335714922913091060999055110431146145417055365532147789076309810592755804609027869631942754460194506027685850891471392140767769882846956306234490734669587390640669540073627910805687747174096428277516491309304478191463416803740569523893658253796529053971166017022350963122053278931156143471906354851474578534321801240618296327342686004018850609430278926258987226035696538537118245727370065892737286371474053476994622589734281185020170063417241726881224113388368040104610321246802909493264933527026704186969614034758649513488067582283873302779113949930772585091500658235597322821277671814674527026645429993245986931150819729119012498915607534159212916933060379819480467841500159704720197794255253409131620447323435375967394602446293727533008620024792526359583602915203376364932504328296197176149928882549482154749015825579236232723904253493786872837360664154575329329634060905098738038462285830789866804792420583298581524887607734897285864386790842021993768311919393165602941675257804652459506215752361539392424671463593119339909268970616211525345498434638375642278375284734886048038741967149282928464859172140075728516639098588749877207491498283442620620189599353445656632084308666053804415279311760774141625079118707991634303453407249650505871838433196721243096426603122462733502118665539232553255572543601212997838940893039507200809916390331766846485628412416977557495119398068584548986416592573680283455837360165670412404781626651807997110820178353158560636232793564221794644165568975482060026007587337205232264635259600644800406050503782148742089019623667960804109676400736692546154384194938604223881568952676099993927547513091485338688303991783706584861713582327530729815759192351885652833312154147862744309535530215888189363576799846488888843928414399466342969774226827988454637574366720251161544465029171692854366986181515968813218349345363757103388936408419229281295871174614819434265485156477082083918460500798273070964691491885206363577746107641834241057812396012129168924016556612288536488098605124567494608753892458856018855024514182761411359184217053301962608280910597023078852719647842304413836337646978835989274092362512837251477127185569289853307629343507454788942782253051568654147798537294678048319885696291260678381356296445197269844944845643779465959962606037563202673867184756985898811226271702700932385580054979562527880809299087749065881907742143822557226189171687590845175991986965380626716634040413803206422806841329976861060489759160097843576088941669448429829896645134578512861205087027711500262072587879826076961860585523934648329076486770426982222540865092502945157466471726459649359263456958572159775562808423309572815379597446151266503910816824434803188465991977870408796916883229273643724987636962230284143012493812474435728088837358957355683260207556659634521215621211467105054165149253452224550638957680610132692677160056408701762827950228491938219736949666111551657698268523277797902625394222922621614756092543205296108323490271579644112691742459501487310619968478440820365314200819347700938190071916825899258963236291212421108452335005044987092917837739988527501156756490979733602530802210533422143352100962572821322532010204308162124149519003803795595554493536048042485028842958326937726771058947560347661915647843113031784471104736462189228491646341405560557593947232553434210953059324002507876989024644570477662053128708439442181633583567710571957291260694561021942542913428904284652331781567438618144010564678821828405655763461174230175685599037579205478365128316659459743653959973299816489912700059801194780980071191739345437601887761187206321865785967535827667034311449599686486455239954379508663521649613284308445983476366137113372409733389442827799958923444380367220798815134006102286474156116607284091320888638601007578031739018592687731646312751399457637749010230195583468162399012832391957380815447256418344168577452342122222556133328759592341928008902609567108633632905200488594661690197667166025944240423599172933582575859556831689238356426815167402696933877947613942152140662280160218572551141554782147479754584641960120763101602181356818369574444300491402404578195266933071575109938758455919026688847407236798704332620352744388927259295431360028102581521954727244121409373294476929260327751761576084815741788447962156870297037140840003416958736394636177019718847434746954965133712602406504884184704023549306634349095191142377586784997016391765384868963890794318498289961289963576981411902719616124566996496756694596635648925060407134851582744151021626191570869946736479387523804408972826587310490234281538336604885916328083029499643848444265929092595119956832406847496501071660896373921299432634203644666826561431611558102674869878478376557599005458419262343351875163217513303288489133156667776688532352659329698913560608084453567005587235445637668252759108146390604318813588485265320068650964654483992031538067080644414414702179425845690028392652089539476597340910812518147590635020895187381214295403034279038643642139780697480644705540793133661470427663670894487560027365855361105520465073530809638538733463430254601948630327374536024526285505680190180112280323168476007795456174831568569760273816793009332660779780631685597554808269208654795174049925469507996344468539948355109940767524620081271897625255709269134907257801649933880887265577831057204610932823498752304556025656444141510324814857941450656705380728796309834547961990860197797667264962511309032301826636288572873939119637527225360738303076559889040533488450079903374567425360330535258654709865398593067469698307662768123296326299780517276715671781695097917155207299346818779838812032776760184513269579981222592122951956343563999486150865434859317492206923605267734111015529774731711719850647694639479134725715367929791863509044584996651593029114122841904703211868992518893631231267775257728985301192044750645230506145258134387203820388086743246367752162954808709091774067354510911468882216213601206948619412763427543109853198468542933574029240462955980264567058317441132810227634659981585597209623454334079932117481734760763211133021186262242548570970674981050249920859435145744282021378747497593465683726471251021831929909572394976249032736890395335609415274395043997649871522980189461381510430377202555011682307697892207144427599308181102096729231063832596307872560250268919426517593443161374534743037166948886836529723614413913563063704041229722610396501595335162079094639409006812717330510837749623972565878202899117746880573888916385500337304573528280261258144367096370061222032044839368098109376498713753652620932976929553223839347023907463103105729858231911432630308850379650716170054687078716131217379499528800780585329892365756595883420016622898911866199793159663426723989970339068470789673980119342752682643627271904279019215004653629136808945879135818659444235869138558507778000795572115461618352426615712730436093294746982754901977133234337205558247651086441768085197154087466619013213731072251309746767040759221508384766021814824669493087887070471118994413674146096116028819959608752568104232423941019174149312951460845049489361960447072370933492284397397508899767428754321064397685559212223558852743255633886920291198053770583087009315377250095911825137268316677378969956730329044960220695899001624923698925636055824725324902895875797186110847245106806639130475902665932121040287325734338669068432912280236485483428989028701966109050193638951497313652452965059735136088801436576770844356818607944006762726040743818097881929164897927814917780259045763514625423361621729210324006132665332745131321235869569073262549933771683687842834855449784932075020582162385103671188360014523186387954196030721437699728232210959238611388329298384253822364521323127460982084788175013466982152320724183324462114770119806584742407217540330691639960576332933669041092523753255953625110011311744612632523735386974408472434114125422904682011431117333192787615301642006174816771739566122737579893128957374214908166515794751513250252474517900000315332214408643552480580664813833365984658173506505439542672974912578126441059300495798118422970452352135090912253933391568031765139425267582223879151941430797437910836551229498767905654585847363349631750808837792036362590192320802686496524555332254772808226795060601283054956573619038645300929922807890964874642525179145657003592852590799877659606494901926488097083605129945436940061802346074471367497650521074570844315472824533034546443035625190013686834651555748762150867073325171895756597356650973294975798994659850238934322477984074261847256016629283849962576837375817521662857219120141847225269814452600612427328250873667462657836764795811259397049262850128139231694042542945420561444510041432906781516860700895148319638118320660220609840835326204492670416215323189553845904507049741605449230425148361071827173148847473578151687487169190639036495107204739112645159533953479217281863243334827494946822814390930486238437188043689456814813107865450983835149367632731590259269342988480735062889182329538365080685600730861818719548201128069183971027396980706121251436409237287644782400572575163921088108894433392541298814655792228771866760188376000616068979797655954553170064061279327573666902658258199145283785256686690763188515697943480750553379545276653391582246436560844434353760887285932489313456586511648366860765163463534339023439050014182983638087685312503867007737235755475354136693365472308846355207659576595048163601486844891044080083170910077006376098401175845394388003513310520121955560745904225421154472799807456586830680961098753324042852011502342157176487768708979544100656734946988846725743040354851478567129754952280608972648042310051154252190002495730483896940859225374744085909555450202542363792622666020753672561403462041792232916677316147826701746456628908377604164340099933806671423825716381703228444734755322253299210345201676090561140809727364950298857148518325036174839591778776578545880503759773337781766699867607921543157297576900628128105614109612302972826028672362021758895137839710032425209413582051773319696975342457745334458659085271688051118383896124306467126244568802943589368834271970697589896575764149508576797132004836479671755878903585059669432898250309181678959878808919713023474262041713406063748774199289510054021438574668839794665301779121022844039862030077001887015188382127381579235743542289353069547653189811958996259932637433540304567781521664937919403024846322687617540876386094828619025183901994567219675119304775220148453330229417155936834112787315889692723252017943277596958115583227929038199433901714986964103815265936546495250862796679743061430759931116201271034377206287190210782251988265719581368668631162154382847669941913238328434453725919335138198766116431092223785698230433407386448945126109050933935544452696793793360862472032586312518260120168739659227294192100917137335990642289927281132459204148387838352043193672079499488267431828240490849948100103062982923663680326829597407543952846742443816486617387143352269988796044254387354779596570832547196436412537621996572116225506433127765165299525870133634606589720686086242019337043261430896174716075390636676021596709594937242422566923291572739986678715390383820892765942349219243407630191711122271670864060410448089375109507964908102980216983011963737162998276476020078412338250991945253719490537147572549434546014462469540969167321158282173481830363842326035029536200400105497560780881322899949958915726897927704563545537228617135267467990910538438043675547499549948750691905078872944672156793571808628015918543543376191077671059550014570643891739741581270732936702299874371168539086624894549217240718627316940124363148483677043443367081557768631836083936760502011854508368171426408133427595560680943575536873616886735049255715784804945630353534449170439130007767849446069474176271082437243584772683808153016040901229894260879460301762804870398142247710810792147087773200076636818220038822670924756243917468852285098784714614641313781751198848872641979947352324696811307610602881045476179973867360373072774092542056394721135961689439818643692152573677103255828551815323914264074592788875687855480693811080584194965428231162518299831000361297970683440145234800726915164264528216979319083970605646572086925363135848898422486593576130369924672470634714174964324383970637779439922556817830831100528296981024534770893318407229103790358446666067327557125878015236703015475054933573681989779522456541570694977265747336963581412567454954286210748767654645832324233552315095970918942228829764002365625391709834646380240611576221446799151261317024406218751526109396273577056577829574358118117821474078802143314181539622686083076932455552542444220359655887793501745576502959083506338597572179440168875096490543357374910995223100984051834579983826282027559505133214456975508890493178381116364328873614878752749310380851706508305551408171275780174925811136858741131521309235807188472215581150098761842311973623122568166874132818009687325450426161685484685715069940518009677162513171067884598799259104770582006780506902503352873017509710649774544668276713138602446463966496511929328491550238119937020719056776798296345042524920418050551957534695066621024218766647401641226662932685617758534882732571954245346185495397284981371908292819215911491393061658707345696864480563628650140872253617399171588455791842063042664332254284963014254600825089714951466536505243062660340994634199590620957279186431662504448588282101207485870123520147591214459804701089299518675042688999802322393651190423126428081677148618636335832578338553149554791062379536322353998929641729896742286670970741572094346286691419565333692626461816011760228829844993319407887833871521964920900953660707737431302432873750681783182371633563692628656062172777181727957149037649914215083186417488687359835007849634728328176080234987279595645499599824044863717130119106403590808466344329017505056505962998827054920444156259732894303967994615888696724119843710003741665413180778144980007902298046381839859648933295838353628903002621949264061396115991144324073055996550583445644732643176737783697651583627985687358938303741550863638412110530419772858915372340453683287143034350028193270785795173630532509177032372074697236874712159612743572049647773782549814415098706877289868262287428325829588084169590217381193309677595008007143835481685158082825614451883928955390631981091502829862264850603594797817910241447238875807831393833875967017196786463194449577682106281116757592405257249621597141454147067075505375297906992972158301571753596334674745122181573164459938166341775218573121547478172740861421337701710081471965849782857943204542646281430824384162420864081337375755744603015513636156306163075491873700128336214515591352783113296374030737446111176763933796417393816427508860541538674982367430511125481388672628436930168205590720120142358833553521655105801423111868416298112214411053795243122235863236420286263739866417716958418379980783317313528524402605797393027497995956937448367010677114871059147001546574254821103426938906686490288157685620973481068047263147169640918132690626294473869553438641717865042278262055460702299098232283041117648597110347393575892724166430114747542453072009535693050991534403217556125771992451474802485777992050513031068407010806243002686295585939006767857891690881062187805374020134076054379823404183023127410916819347269075042699067378565685463254772013257931883679865888777550832694710186861891737583780366950656506376724986466370876388528509881053835260512998279835629327780037520715116522970885581224174745999677228618858070652159537706706827962106597495303170904893664985725006854822593944076808064865735877970853121531407887536401293506249133939328155645079371546091057135998187054848289553200272978103135174763199607891086960508620351240582684941751842246360624132685500047031510019686372225821175384349527929780198041989490674192544527245357185047738547678274050213171384732765643912666693460650657169292119200334968990398981504396985977892853332237144977220525947906093397564262300022964507919902849730328613749526401901237501835671354225086642177686379002512531622493147241685164936815718313712402775509520609627539611139194458446567236470378627589563262467693469460449416898684343643781424862876767536187674044154821124077955800609669159957706946473373792736272273248142396000929189246500414212280893427650353953751210967737420516104143873950803233934283768937727122594647858964675307557095501105555291310137462719493386336244042509849428555917828975303649587758449942301438936112961279835748533689591905652142645911262705468844855308809447138135894737826308811660009908654911494941807706187133540314626782302327146652930009005749378869615869229256982617411475976110170276238438642479244507865999907886265065568503087237528212247516564231246355814333893184076289120234581536609253613858053897019434236715191290456526005647580464480282203384121465300842313776856038881374609955484409178751045018658464032121537827564691750982462383559888067352009445631275740909503119556504238823295688506662746928339227612778910379984750439225364517678301933583241393568893910671971936372731802259428320079587613360645929151951702178091717445293882943734742834380088450596823481650703628180735270270501649414496721502067366960239778265420789755269191992798941249090923344175357915293638750701109534721454040081763870692321108985937778975083364547358131742083571994644132181154437557406598557508144338035453991804661166351169971417326542706703952667699380994922590825832269413865770637540434801855128837477540695535462882552124955338601599928200214848682520685280496282563184196529689891906269125356178081304339771954189927655374002755221937607620821410103267089033229507614548126284745164173713522869327969410710854415340661987430423460083622777462674083831499222366354900623715845035076815633930022053732033342665275149089163667845244206261087346376064200148085887745906984362599450323168435222189062648808524706512181115579558588537493938204518927047328949197813175998047915409943270143960791783480438856608606456853595152721804791363162065695850116664532373324659859246400595626857850414970988112422938115702402560367645722507274379674954108516124945759524648343266171734772913314986387700741616643587480508008355940713644117742643252969742573802890088573421009039397711612757299367219480276247220668801318779516519149671704790805868267636410184046668155460366172221040989097846604112742374758573694443127926150531690052697780903185940149579548055337297588705828933300351689359571541229774387118345216659838185476645065388381423209792919937439870319535686678967929109670343475437287436996919967783590353140978413116853322274195447932335673599435748983438634079311092936056875603665355826546628630097717743161183701594894028094652405672380557409446562705326382359620059672950062075943819979834114286514372999929417955865646220598618637605137426237360978817405977318918485675836849395316310425343149274840743324453351086018767170641126679807449584211140259942593194077273620400571087845237120451378229949656133407509631244426271224728089649128344480334872686672294536718925057912383201079528499742689958921970494104110121122808785013052472716509884980905617694552429144819921044415040886194046564041387488393428729445788601979926001746609890006919290188200368301318655038365757524828519616834574598230333321171964925675311474824532202294745622776044877730144113296683489082677312707352208841365593872522448245948613576329730175553725283963630272013237893111447271076788748372838962082907864035779700506014110221109983780093298725201281350949818921493262719421336441970307232514908651446082147688619018716131076439891581042415937202986469623835271448332484540651195295837966122801311517368906371825569829285645401449345981130686471560008849299823642756481532243416122181650561873173244436300371124247254087995238533418693658655291010747468752618492985836765373093407584876036938826979540495809189904268205085699572111422322127344892264931016107001775145502686577123271825229150556611651607490716998500045932067244046415017028357504229571042889685390444566449395804398106110464750279622678345278661083149414556536139806813117442826045979213485366756512835443875222603569001596630730847169100938007818675671186316169459261012643518585222993723113496726270128740443787344404284441055320681154263173049716464294746083893783982770494457834825260231317081956558278751545286385623661309407954253559191519469447631253685534720202140762747608175945641954677109851764993792263973711648308197721965476031061380967541551913523722006141870977250078575422304166400471288509239103557518185553205113217377122439019074299171734122555554312193539160549975292812903289694520369546378462850756681155867865397269414897893883781416488575696805184053526443905966897273882634141355284059228527737677297021535470393618442356055865508781172978520675495324177860629152314566412449349450738020582886359975375769240816246941741707642551598435648545336361817255253060739364213332214270339601018017566719932422603116402860690375693104879761188956080019488093043841319346083216498906887417410160098480638727539969293823311079697305238526004571324791571108335694865676928512544803321443353595350116602862528344537138848460401445985216687084466011335401181711572039068588369960340625936152221771856401561299786880839364213176302276594129885536977377906358714405112055270341057496596716287167205232739129292379324826059291330970263087477841533863986733579663531977848230650650620298489173243981396775082277327022467738552348697382461552561579219114215668473321017701785425645966062493574058401862024073535265926815481812395077812080547615728832238045137435171336041615949961374556324844880995835360130317308414236745903080805843287945694418478144393522648900426639313017605778302822842569189023023247374959487373205392472343148458512431693835280906346724492993674810490946550495399361803939933389158290629485807876483619920071213869554327227859287283916011380730143139238185681274389185248705324057249022497117688544650017650451521101513964176095126220797504295650263658799333606482601357273372283954217646878484669608203299265088114502513596108625158345482924663754845236674957129040601249773318422562084463109703039958951967622101449349494759618062466116939674635324503507723389035815288965912225997922726982272507837358410808548961323851701885206223448232659874193775454864660161261383531639685229100398364489025351054874256936132688428567099985910799119028302178786022889108303647123089387695690040019584226174248421210283377513636602728132842651695856188107909303173882607940855163946961838420101946959808000522556107528952831606045364326569028562134996193471701062003341964661818062045900233422030141088457891892029921044139268601796596939741314057447803151665533362063005750604432918508167996764232550728058047041664464495599826353608684739362170307302549173336083285798140213168145082535056774848419273280052241027805116420937870017731803090689344676788467369123732718878505249274455367220219676515571129312657352541363216256753484368473964604499091052319267785551244282299621166909790057024960608168011603621524422062001596802691759426783414751040587441369549964472528187690384349382064227446843547542297596215864775125720778764563991585069642602520444347121420874378948755942074410808603564333081112374379218930362017795157349863045048111012619846272879969407433541651179814611938285237403181249993532338630853909556227492950076586450178863195204043379003474715853174298624423695676604951618031601087585497089092209839232982793686093590069244222168183854553189683413799942515244183504869473176410753520976861076401404774880761124796396937839630692178476557233432079007030448251723765410814108455918111589657775185467029079126805617574509209458356617350881104364468728999787915020034306304118430010193724359271428461461562907025086855823749664040154513122443711595134014897133424272440204717145136517891815548873394236455575125822046902096252998740642142003379609465017351740702147657066139664032381731366097722612678353231757160808844378092525781232409427838380630576660792843952395822938694847239595041069666400452484248961225179768621996176712263208325350396886741180470122474908672714142063471176458164363760603204470238848433595907380834109835055181954478354258854904564582606276655849227583111007114639717074454591419038040731280083839272952815248851050711570677446037179564850692023688056381783423546340235481913200561863471886394094612706789858836571386563891507984512498969474836907491239590848881865826839790613549864875346857479196361578416067980323711191859392962171962462923691055391967583375360636604852858759270232869978422796930509403706277244720926892605870706218659817982917815429530371522826663063850621684913986929135418673788820139219835850541282256033972937540868259969753216040387029726480058544752642985835571039152082388660804284096090236723331482929312305626020354541522406232851372565911410382278104111909457805904543120991834392417923874830474671316470168145515147430963673190183537099758705444035407959077951037601936907667226183101546396826332064927099080357745717829813721588155292168820045156949095735487222303729776072957914168695087894684851023013570804389226750758616759847451573889093263393285380261273812664910624621142965769609974526010484173983280129075317777449687507272529972072081998223989166106004042742529806845151039367176528690849589180467906657056580421144833827680684360060116719653168421806283966248245312106949659377723132928136618765258957266063691468123572360085224152159210136495454442004468348552174679792720518013728909668648158750857634336193562521976307306752631594126471206024287078476720907890945581903847798486360848267932292200020473234409173175980922492573704658964177006721387555842184692296420000314450394456344029631735088600005330664385650075593720077239830962382018886324031514622475045651335044798318531627804771826680310141614495121944940067722320437466206426988227984367001309514007411910485233713884214271411902388014323468195807416122114572168248461949913372313122655837719985375382016696588926834140497166494309771244802120339648691079428622076908534849960049056316565047992566462788325892590601745758596715482950741299968773134326946227613445360719837049820721083975804533414810384789647095504159598690460423259167687034666662014211064778112712416211533059612705519680089996427136370801455503165576088774616068512036783833757484077217766490066269177639153901733278283689900662881166978249413099461218397122247722726641668558584397534398553196014277264620503657530389337311840045979013181590971969867715212609892669295628191547381401687927761818870727195967044147886031996815256397235742764861362929518777140321493319973964242025133176995212081006430033781765665604596000956815751902817709313704543667092585634767937656584914378759240647913875971424731581756550108325936932133273569603691202935624513607255308053011470531753581742469815207790230008509919007264956870805585659899428495143681598255017025095931113256442390478003417680842392682171054015939440528398950084455667088928213858233701941273993058151355799377353882803821184035780224906932255191336980113156138783083448476936460997744155672632754803760081780604327622420268853800839741900133123845881003868333931647704044030665801098902974591143137275523624287268736098906276381100978904796053527534554862371454305240015974825426717102302241053458629040611576660631602895122610550113983809043390170934858081297190735099574170193957567647062278912071540959558942201997811696348025021877951570255027126857089553711303151937065305343082830758553746671673999677653879552600821021488975095513703679924630182973863768657852292114951155589448685146973125738973961009104141175019257774191285187321009584915654972097324415803703038774308873772868093782779854568279571420707511785630775272250636626670884487336768066878500722938545287350255855564670192716213729173573128391208757235024857985357891820743360096989754824208571160658306981649000794144216791246112854038155569331019291224939613783517773076913986148145825449815296443445581145584976408095271699849096434969199433365522242200222800422333200604772228393693632820252651660453262312501027285459633171530751044355961192479588110588828302233733508326208803624773171565541257441961106745231885145934440852300738821648309083641818426250597409112700764861814398330324209232955208708897987805633586401578474495745304078468160350094986598089662289142621708390259198092217869675815113907272075017848971660978813805502629748968773485369379059013568951021096834586831282160806758872372199786855966800313619634485135267448170680044594474630708840724205149370849630673947179951220797518330626585068670485205817525768923372856595911238209411425632110797982533700246910468312917898322158267388463504355775162209948457039712501871904877066888546192893213130584534644580674192235235659494823774689543090268800308712681262936560517017887153143625665037641244166913065453760544213972420357965334330646815165284605207959281808783673422019444310883967583953963293944298305204678466903029348727141817330350428718596514971077163117889687832050841484153174662787229272266833367596827582475622870719158752772742914182802893147318335268868179909677663344464013470102990660988235150429568492274365551953855556090177138074047930280150446894077631777572396944731987749377988501079652292466004721270990597748919250429612003266664763313917558442230910555003999160005313997943775119504322171930715688415009957241159132667232359765415139644133993790400751378994625672630051485395525653673221067787558340341574618052057451263048549296552366817648998075343916537059827080071422314560940664849150942379647217884734652145557614028718860874957663189649809933348788150979870524947031558649451038712124189064931631277970991047379971862129133615658381411762135096516503667136571342484390328322563885753156883694201025197461912872468550442841874023834368793765317848526823798597080795004547525023523940103204801923148939416876961656307954505600115162800070188701147821758228554880198985466729993926368937004872252797102136110230260889674069980709919797508566388362974780359753307577543535426916892721675553173235523714058520780153584561481085768979548188820148178272256134938076293286272942428734331451075772352765311748779061623990933568253168179080781588723685752703898201310495422833789917817256447704350294238818988395085727391524744727422943381527514236407226658135475395203281973535634916334462691499500523792859018764607181113724839298904183709943191000303285222048813112007327588482090983349657596988337521953550208978266543323110277014985632180229171792945241766542926734733846617129178882383956122193193373403615242003530924436952513014089949447601077773033553672110050291521205461746138664828076420777495582729746835147739325236961692258801162340439891388082817285720489580977262903031140340333663818117341249503874991625300745219415953263196556968320324866649001637069442185920323748548366728211456531814394428452299167983941390142210767211706287789523051200526496457075759408189653729360466981615634879831794705388941164519541691926923902367950463762386775472823909063628974897962640701889327181219204366413246497982425828260280401562976532178558654501605137334219704215305037876146055571342529729106605586725593066036526650431599463907644837027392147176849241930386365780990776268723844426233862130329712735178751678455816087162247231308609130654770559938765095527096819162711347326300245787178215414869171878034539173871335253117123873555112739693381004153298744984086911164835194890248194650380789701482420375453386643873689532579579426381732925328068000042757831406185906415196658722108369439262925665593427432258169584356345170020776907675484342554296871616545858204087525511850978580735822364169358615129761020448779910849193857609067754803871039700168268323241531407513096203478310337738124205469481222683510603099960656080486405477105944593773168658771327742110204480131605838374062159617715459840252504265693028704109666741866059281498101927757590985936296926890020931296353385393121951068114345525198446856229155137422592912897838181541987175260686062178490394527052111629126463193366061315079472124738172922801417765021434752436264556991333141096171955149824565546524352749421042005730087289786696387191520517766563005825079912149533800500830035991146010973825525326579689278427212547025629890787682699374456470730561642755701050237806693116967066803859628436596063191904203479911316722725627186227028101898774490755912156899832894156493984028895372599849241565113097706517332040281406439233313161094008823264373740607111678594987682815375111820311411687905527296877226626578895012213154190317307281472378619730005033872803710513640743132656219495636456214819696446870994312493686265157348783063538883633816382865494408530222180529251633645687314414279162248362115675950101086536134038907089704531169653632805767474669828848658082438201625805158519043081051918690615421222341261567758802253546775922426007455394943440700857683770903640757108322955755550007120140081953853417618916333175917104842869226895631721532122647002767232309959226195932140501804295475671740610037764391802486240818938927473033469154381265624320182004648397391035167429476847341442256487653339570108209605366785942385481398071115669789701094617017327968774355693177719879322947492744866330642754974814196920063764790311106853952834757723805198319181270657443170772493739715622533489804122894930792963476468078650188622099036211270191358547447511712912595482177567986870475836533818573518685046260319045534764684520815292482969081840664050662911829336904770387330200436451637994178136798298617813963208490612285587874607293912336828316059287182825256402831102242803950557039463324397512773755031393880083614116412378965766617185931285464219213159057391753039337093419419410030291683258354815332229444257363851772888584852180734667504573440179728580912065922122003660042959542967298106778042561393051016979714957394343646498062382530945476658905977497848976445327205961044669771024407099407289512442003244992720215901428991529820651872457498226815725588324684978054702638708290777998975579334796505414543683257028948509301986735037376936249346211193079143645042620151464959279228254787253902454411614376809691344242640210656900628369002830315679750118808927350506457849706835860402439594832181141305827898720811510232824748302042547925082973523079036566314186149574052317333531730905695105165371041215037207669419721668019410192306203854206944360879481038469814436190124744932418241526142030814313254737039245552157846670878267803412294447701173683787363969424258218111086361129292746877240881743296698474606064565848949865302607102492248157664782657999650945889874321781730712563368724792692991398720132745498007293983120084113986233823399171074948053043150451027422236274099176987152253907806203841720278836917647055253406651326304750916930022673508803693853754583240794546284901250216411592668965088651463514210665606607494499210728153591511392334597987120271215581882105183412601927575029138700667127448614467927915991835324446580077906716366719952783691223561427323078027504412473837778172131008950718650452868138859304226823311199894492418943651761306806177923971981810960206458939629289155008836888577991873876048527265426803621152685110378348516009946924036026758980495323209726048106743085370328492610152244246557378234777176150932582159486675070148064219730121462060103131517316972207659978035579869214651678873042013103132286184948697772683262746855005997744903876898717466597082531635619494168704790829652214861039113701914091878627092930143234741086968423462763095161132635467131130006324842891823698777148787620967486378132846900981070907587543212398122258369418384728008988517757054804034318694207295498363884832935781837860850250212145879077464277136337664810352797986718856768775933590137986820445245507401239628989563735972935863204698839689632556467655440651040460650580747995356961450008594178938273218590826655030412731671243374226614767521382540778121858390307895127491403536429667890428752029049854009944384161869403659765655167135733115742968305384196670166732543812012752940187504129860196488067002646123784532298751336251143329611345079061640100850853193363551253293599044365545149398684915529962516396671732882548087236924068744334360150959824854078366835091765112356312340047639009494713306206075728746451817275193594679825770391707430059532623745644847900604658623757863896800577012225009336663891712182895310871337516481785707817551376106767619598420609468559311990248945277684748758671213954221215123814433823787856134869835369169715298794596837293415606963152159966371463310365061693112253894840655781229054679959172569568941064111154474173730234041881444139158190696565969609799886856118927022212696399272693933592123630211132527337008636561660394500037769043319602447134787507416486382467390328817990783702424359737537524060632527057170120779839488060105124333534820887201462534977274242184140766821514624266855168329655339700814635031951660592507732062337281853750775275167811387380200762128849173450982659847780450717245127351005494478797360757373696870093341950382770944331926572216127508994204208031617152580979796507990171697353852228763213120503526525637476823772060846981882860949985947799733118545788641381224427029618270733780801518180453575873343024886461712015727106571207824594466952026873772304637148763919879938283001322743786554857937555454352708104327992424356855461367359615561839664486033887537705016886416290459133218306499514684593534081693163027435254388116851261526299621942714646993774895186712217245316963507982656660511051325309793801906268832917706350995522973521167632776503096072795657785898583361376693195114951618419759222042138445298915739350734042529888813696432705785626995089812534383669787418800928875452015745535868926527357512139655338301483479431572368297848104367776762943120991237522904004777399040993569581688426441976417539480600077857422732967101036569441566799312771810632334939231410947376151512352785996715477181076495924022155939392568134867590414194637144262493994426086917319086389251312430176930839653028419918907549012777965182210120034639894524364128083990874282702848161492831329721263195107176588550862739265040743225663246359612167940592768765097644295054425474898685302651089440587547020794209518136130833744544440717275770314219835535196024273187196783046422422606018451424192261147836838180883897386023460206556589601795256863722784685783031073809299204905063492265939877388277672489511116817078865607329928543101834830993448518468959302302047516705107781694884499096471769637471221489491566218450690488482153959507117040253436700930818926677032996231611752303093496088877146425921114727343693097225946562168010491401470265385659335462394892197456157444664600673232994182903231545791678285021573961810923342456441440315154809583429575908126351876398592781469717041636687976944618439811136723562088646578435335747659151022683129234971101832984502347994192760947405660135284198140735096292030136562853676705952374840945005175391099593762766723814606207139128397541908373060130770795258947378823573315157364977231552358387282952436348018222154568283735210254109102127239079149944730018968224379871475570408428016003912707666035221066009541278813988421337704440076468205842962167316195863727359998187463686437489958406935586041385180247274561645143752672649448307468445362795897484117612377613078807819262498862640780972932466265542646495953828847817532754286790131083884637132384775878970833329639869137040990613861280376021560431202223819910080230061288879103310627624327489010274321286429731778101566048809395316223865204246570101344028308241001606949906740838072973442419943611947370083920840092902961749168367218081094845027806670355376863639680489384872200973851998336769201407521643047448219842214120939924775732977331581318167184121653897771973193263526448419680607034348316661660479355421649545672582896867089853532353267760543925800346306907814412180853656387750416913693305447683435372360435391338885995476634283486909960390127335502591345533922416361479731323878792666274408520998985655317940240943912901280739503879534052936238342645112137420649262407509059366629742227210087993118545704732749650087059218289763543404932084032326992764389093318284595998004117733206043283315402534427792039860301375470917667554801581517482897309319872868935486902202179820160293693374357163514384843154892517683441027879610548773501825890276469622481043294043743949397954548380489638419843397405863683817172693925588829328914787920934855495808964023284721997433882626829626605496352069916548543861544455758996394361377548244120594563014364224375658344300940609479912335590329894224653880849811202260443381858648808865187363083320952731606253409562868370743070331384141107241469154628295815534959831927936890519808341414050739847900195730373309236781274283779331241680467909094419636817454539469064760406407649783228167737206449494312968776991786082769766701151237608493228769407892784919610432982970064006862042933146867150458605681732413153096126368069070215120146984664864610601077705771719270732637336209338905453689062779684637553208262252754214206803058476578940681455421296381406906182915296546538941569466591589757192489224979231757585189562556784137451386387622863245065787337582556472725824402754196474363692878366163174474014061095955988283432955392606764036824644855911197057762387641178811959699621466747798013846953517286171930093832775149111678888735154899686077153539721123998533585969725427669239057494165536494499215489838718596482711868241031068704176913313769139630214082774813332492445748388392002395184672349480231644058939892638698954251144477376722250699715972825595155975104926364850402094827829980874189335567137967950578656916043015840391343952053902363994079012036896960833935281611553068739437715586853982695804943556589216760046294811101349836946106213722887749218005353403383410503521786159059053403234420163586404641076696728804683024422059669515692185542784267668168776125862417925675554510715821877167260431365758592550014711325088133484694957063454607086537205514596623568417176164665163548035961333121067693118171108582923765453888227698327366820531349918736964836877638476738470205965253615897224246862049616380256832174454097865568034670129583086105155010805177008220129420703551727619041815847785614214480849193799077081355372455506609515872188543266580828629027892008416426865903770442599963350657771986205917842508108900778545788140859358760675922957014818088157925377449668558605709367513639436712800221021170697150616212466215381915548170496553329682434737192937774104874503398297908949342766593346948106828310672218563270496514937554854020910694970073694935687182365416477597093879777244597413896885846129767371871220739365162008381429027635551946029514366789406428355607362619728480974048452563818878391832900895166353463370521807204633854668101139746384780280814225613684794682015046479938719845557118135712301339453402023009469651547323885496352463830352678065672649137758743961210432002516220542277385641947750228291508448044570354606763346501862871322234964462418973300062134135880719215322093127571604932194689897671659428381143677364709529233935590161844005775184913199346089154948920176204386307072637248135575907938751608465401811066154812011934126049935195587097065165702136990478008275676524057224959583358596340854180920677794148732121593605805187105673793959414690998815281096999939837861042266898208885610296616746233097463837347104311603794307196492558807919077374092081500797127687993295437334954887161926898073848818638640883709589030871084690807312547838311158935117119750320396029668222963084141170998945321786575891937139247845650099702146212232656643250398167268503633828553328617285503627574187314088616009834391285317082630289869695476085674032409126436590425349467209656873679070639129607741258902005680446967151801287604516549940440296936776467305015697268147764622475728280795774306358491744000527561869973962840541049929695308642058852233580663402930968421453020795768364529504580967046780587359374732990105303150237313488934946993861873421229476964451311997674945336179090931034887946331080563333511449295455694380514206904422524305998444718107938022134389374487001661554993362075074552704604726747861788148665847582208212985353090838040881598477736400963456293710903979622829966372816498884580034262525339065419245604705681320915265742981081741580956208257075435312158905358860435075688204825999819043413638832400965048618071351501792871745284755205683377457686124743915545588220505982406355536334295931966774764826486465078821378428380463461124917174989027758322650286151909691260823818142740121137154708617017206771807083695041954723316119499509358743952272734606576783833172916514771975420249634830715808817431597301157007364699551257025093142542646155707604291448048815869152118182925273897353559030715611453152767105314607638669749304370447913886045677393336446174051831492453088812211448551135768202031996082551366673461824756207334211635523035362132590606224476972432388046555886336184658849046695979254058311358538710739470260020931330132476282329148694137432232090913011294341200653763886531216042945206771174670750469614591478821328403908249374183694999696832278495305407190927789108032188938079678736750156903048886160451283568495013540520614495548353752297212985125430252357387945358533994009145868361755663247025703824899763151444267541925268987973540714896995827373712643824346061062171872104119354054191661805510574787645016157164892272158500019971785360537093740850424875440529678254131718442636594261477575320470299565825872989844770566219229824815402832381779254313423685691913318602730308214417566331756868474928368425046130047055692127773178079071498972040392440586098777067975725483919249684559817063169325278309567714630508730856936142055598717472364686062898122942916747545065549861541631909755686169911563572530560275180850930292049078655597468664417578784175608928253154875884247787606518788317058222938949037846705523067619010016929465075165690645224801043292022099427763629045343139679522336258783276077500747469825755951654350450842664706593846001650826787601989193411731748743354143851733904189388713528474331255231799800058422431893600757249295376837877551834271221435836141924319471537819521780823468346469296207093056293974935257362681189472197792563728196543903385153579240790813090547472915040210200710979967433919909465289109060379171075973590378763706935674800257657509077648969215556190312285578352584828412283956125220965106673008035862224953073514339651713056141995392237746010566268058542202572069978045856588322709394678232497570162847649536382116523572835080993585151469092161962623331455398672670608794725882954541726932691809310418641934311612239379154207384697134514504504259839705025397277511163907658819805334285561553712223127938668964789414971251780354805572815147373979713062515116496757234546167612997974835926777993172639922286802836862603889230510212026638234520559803847071534398978720943772267329119725503349840066317213119950906637142196657464944734605595701272512944157640263415009522906583557451592651327822938447747364100819172399383276905772245978648151216333743416610364908716792484644093057432536497795404947115613700533187796421730307706385150905621591878351253950855656803779448748384936530826698108129673162806836108726399815263178482556044199238608658284678428954421186990577450710532792771884794998273431361275905699726418057273013388698315968110579681394481688443952186383572465809405230092194696609538563243003318623668348260870022905049674228633843579408359485100419807289532945719694700117363561104586786651686217798323825698161160391097385420521290014679810791161220653249048951754089434452088726940487603957352275841539867729101865418603408254245175246218072840083909167189330535655369714457185514550799497167537152011198557081760366715926299029740133823709046564926104131675376457129476041128803649140661535254115961352152455252450908530834876511918706807574368494061600635139646405391467883903522502267157198589655303016813643705853061856173744906059233031625326536240341657050665026164059466225695657709799410722257186136444820986702280286634410830928081633565974076674654356055669539807856668506541526745713744304238183904463937961292783889987967688130544129979870546850539240263682542512103235243722099784064625451611711916984154835752871451019425536269075871416914787745933623585439174712594898715655858951377982290997241536450408903828065632147593240403277219832208933312358035787852046027769594585556427504846479185837504672389629287770554222917861445625230209554131862268778872924516504136991215863320285673550559163676546519332257436452788366172925828912451512103465412791319689203187450681249511257001913820983110270176964159543081226602398033082043034523884330165481948010251120683959850162904625888773030552554232754226049264160493389707728764242666004024193638566545648377644946827983675413241459416123611568322127641228971024937004667144014163918740765555038344023528771649034836361383496241644018948545626616607809526815487355839512801650734229417572838395159846757854894233702266606187088185025956712066703119642678427914709843873043904571326232580102165764092023463001185481060370774651504873836235215533315400887349220972274166989193479378262933461861872398986844175733376315491800776929839922711796284814849921215977758048863363947603349197722742381365954217585482940802908146302796253462053048143875546050194927133097258842590035201858658472865534294674906384401863307692932438079515827839543158234425338469646463810984211168992163245894639996499019285941234711073871678415454609673438994337180520062325104922787908508249116015522956682505805684505729416770151884469617020418597106096336429650537321962844415870284883629525271473931457799797408131518057274690385690930608317802074647145363004167707951099567781381605109883243998500626232336770608041486269765106531426939581902269042871712770311785548976272294142529646812922672730946783738725475974064913171239554650420998140045012259663111922777708901941146996462445175924912407741715929871253243627293379981128995207669034831736881198629466289625578571133273317264471425036574303026465177226456366257066440427129710741970584075070851229878233585417394541188869074392706407319293546374216236777319037115605430642058988998098342190079927001326981523653562458888499011563600302161265480438405465858137690625721611289912664305664584624094140177172803240756969434483039922130620558792813796709435695446403990852097344612900553971611033248423757594928612360868784666657754013136012928096595598596779672602196415198426854192707630096185950147806475422065606732550408427894410867948246912675083552391117561960285937850824849650089423354694875884055111029896148977018243406670753941866285242634757276689147246623955037940138146124574273313305309717363177680452632121455020192416020071356189215958392534406108382627075108470550343833775653795981618588974732998779000816576200358368731378782141609692063673831840761932737210616819714101317743813699923029739357311043176293175927478387157310236103203079312490184783358284417094522173007105948904465412461780944026428836348429472149896710287654556833422485896189819855916769159837540026794373609263621016875835188210873969169202125213089354872162090157945345657495698197217222483191298135528180942390437434464317707695650612580339234484539154974398744978194534356716442719354128159135358540654333658856890657547133199746752055107880593759511322362865257542812043283289158602408864231359730679109596052254948913129111228198704637404426184621813891364728409062591027987965393932958539869513063259880537956680597435177041404433930965496473741185726835800397558319951635029677149591422754683705047873638084687850271885325268612829380153228039812596646090176860366926867305958615614674130027479036831696620471149373521912488236362312830361755977250619580939190929186428565249317524626506508457364810017177856546001125145937580812921794822814936841582544206487750534088636400598378762082292611755927948466656265169323055394794513250640228909789994579524285342660509865860236573157025387544165607701145383997308608119006957443349160049733500369194763857517734762618390448390585829188349770748536886811849294389445277118662278260118893973106008770947799164894979548726733858926960115413045563585365124988784908600396600076994335163227701634518781396480319306805306923048269498645895421818112527481777277033571714920554018773909769591176621655967689320649682288930376650321908465828234281292181317214806204304655476670364860611172071701529260134981717835455133074784592279315413735327479836892525023331499375095680917895056168740368255097273229213248373352371829625249256863823355056898516156965091994861652004318090247576644473473011430846566429103570538350779982528826813404986131715623096482817279292002170577507926202239965742725256020537075102331718504296531048514556513624624928173355028903398460208832128916966911052607575880772434995346265030634524634043140692143438725571845453345668206606792047831343582693443977502352256417363728868704267815450216566068586629064390691240539838472678372924692433724276301357346810475802150721736734313596078333851868653998420309887075646231510948518973262593220528239041924884462761683504838714816888620321977297544345295266783954712079058092849088057990945898813436143828386494352452160880229873713449452586449217216028475786428823523098452868285353137012140579109180731288205292888969718275786501551921083083645912692168917179704587027806670457086361431135125617875554697355962396270955173903501320837466027373772500112174337406469046378581513891423240848072723311923044881398156553848810861130806343011936867963158303226542969701294659605602369291026931859298860130120570123736899065780119666912320441227994694435556853896539952854231206815349564392159652968670974738118201304164066598979413697070535204273352133722496155420884035344007102483541348262392425314191532605082350056675307473834308812033465770674133372665678526987438043025060562354001917350658033593117084072514766910950276039307369012729961452989021147353786433874788997031762341996965178826388693019563575458622173111726761448486469556894680613985967817928093241955268967113353035011614280013779499735836057530074100115825360784400351277661626281764103534530806121043504383480761299588824725502314321097202905812766582705010611970204532215265586510205614423261102985223477368423103215871640744620404731442649240236616352578928816587245294898698735558048861624912021858195962569218751241700279003783620621544178042638588723370888618497072120218076578520228655721049347677231181607816253653286472829333057472766657230318097502056014705195663041016750230569988855057535748576952390375951467272396597243443830349030851789789740306957340910978741360733417558787491373009622103114441196925072907210653091881112958749868113830509034956945885632988259677580085108917619212411857931309949210327787641720699004397777525472991578623466137026925145420743427433636829382389905052177711445620977480707522223330519392376820893502024345173193809123773640618130277571532458662062227597789668223470170701012080671415574970814575891636411115973248871594818416523358272631813525574190354870344224560635459975759665307979104082075911447443697732861820818615512656064531573469076119056809927285497634380699624271678571263074719164045738092106251263081951479528342189009445342677722971629462161283419542416196493215453103368382300063073765392297617985918983781320270588998277338334432107363198871482801903866464579228175939367804587962734211863839147053004252224961941890238576394578762096676505981290055827630175736958395990179058331846337574992885596701401431877910311269734107355934312401791678329466493974421360479968911790047951912358534029070304341892003398575405559569298057838457525018605193246440891767085307296598368987776721125415755230890857713338900752056973984069811866495736122752471417883847236604590949580427000764383135504657416405891469727549236639880396363435284459882367997463893692905983208325372303329116514497154312296051513437680336407753933816884623606133545822363389179405450447931837705680243247844241728829372108233497019112093106042307292423327793741733453965431099221039523221751926028669952370162420913476871973153173730529416513825269320392821889926569935722826602935628589506345518274663456554590472691103549890846759580452449088184463275875604329584646126676871879671579100122529632238962074538872516393462280725971118686540214129518827456069387573387196116689465339913121535481533310340693716208730636618036773717940828841866571426182115635988292001596016905498892138318965807221955030642898697430946075139438486354485552333814183502057328176871794561415816041046686914551381465876649164727537626477977736381112968948523028093522919692203445858261886359165985822462105969442320524977346844535660272051383932634692741683080694417259922839109875379471205313544329957359375790432654890808035272143481615228905177245083503792908134681320930821809755532078556802042795981461865071373010356554344090037332049783105620259263925025819571602965487597112193801635352337386549839533448698167510939483363803068293768104158317573644680277542433419702240397253312238910799230823216530666886022330116939972414869600092428643389710966713957071501478409743732566184302496207942655088234172698773548986337878588415473283781089068799818643980220333618916173349210210062784436247989441389706209911200007995601394697476922240303789643452410387261587188632434679674413488356149414382604836743511179188806325373685214374122250327427010553422739308987790705778043973240773788786572179464658265643364401261998970207784175633478918564779324136025690700471804558706874742923991810226732870665174088413486677638268501327018706547168629393028096769192040874114842886406840347284257997198830492350492544559339658580844231753705914792520767141223389126219279368349372062363789900408799937506049471187417043503441276503055628516365595624872954976094260238771451447070220502703396968918887909718331864445843585390872029537617622022597751027863575617815545996323628571184198817171384180314264592854783819426551080420200038627926428234392266322058090476243764497234035174621315152546478262050384665792076810907112273826862865191730977837470155567587187267405701616132839177637279287344737299809228542873178276133046860256309391559237514693681104474030723799087822821231737023421892663709398458506658800822500834257234936351529144847205627409286629965002010997623220018367166911632296300324788346092972820370122657420233065465515590469769184968876838750141677951024577912670028613396022380683165349060811129055434810395336644241614500965201025706361751668224850288773564811661705544291587398857558274098295968392287654474902297102928409861969847290085258264421206755858503502985186198104247828480892089344046529066372770160461401063838527937793957027077891287626800491447941557405280820304898503997916527971281177858233537906997209374534710746440443988649316846223523769811733889979335461001719809118140245834788042808852661131085759084169125857107115820469614769770211698779657638645139509813409082888024572698782541731781038905774975756847748362939004651212861579349822385764354375127397270849853540974003570665904683701194277170112449693862836882438798201483357414245137306750123908144697129777185617081470459626715750772810891393332366364475130363652097715518751798217749415126813670683602857154365837082968433587168667290346584348128385052723572132079242214240867578819681549188261854590199739935905906501814787169850962325608588355684494444529480648329444282015351321286812159643296162877318686079207471646562498928834288789500109005395451376420926495728876380182675580260609380714901487692766295122630728411810330484287609847407200196148129219747573718721111202187759381229207397256156600863476955751060250886835888372885836505505580407155889243401658538274932778524452412031920806234715621892922860713343783512910234706432412243213898399860384568685507284456616421145470387915782558618657255590579806770355588706823836704802158073783272870938772398586888144953127861538476539905003151764293752500504763906080140890621731197806847763334157245273170107214387513587010906259340825172505553119533091889925049435755826634390226322037329449835686885780104807692283411855968670805919913525985299901150821090263659595469678595822118297020668189784920621073306093342785449923235106223045789696927801523775865327590923454176375271896093022875885777204108834435231823101249245964052606233812068480614162193465478769174000278509342070658173734218965049627194071604421758159485938427292447809255176505624100371695541902742321825832775916020281874550453421558900741927772288717219560723815539116591480624753873914578843125721234169520714271091440731393169501831427362639066585062194577758441263122741072263360586162883170865988980908871727874690241188961062015981303694647468134661428400503455190811074236485795268709710990464688227058853579843044249851153463016315293974754823936078163502310834277597074347634444667308407597987177591972809410459028863292134272327635047449407702030253953058886299100918723071206857226098474085791562987329293432057492932042774753697564458896530193001823807495683513922683181260516206587234400556896357174659157257269320273911316602385694272577649525336134038244989493819795270405668049976934107349136868336678567171506124696109960902174919217779071417021028266463772796695576912844582746340841089340905242040416860146258625864549490962483183365811744178164972863371268459908835152230242413008328332555441540947532819026199652552637518807417700871778672907378681235249872207577812633968635589870330232009000130405413602295527119760348242847373539166773017142039473520093872525127088274494929228439092203818001232462493902498355819828680445248575612520508159959552449141875215066238668254761334092012848050594711978840343431363732572332644173444170042771646021513568627350208246230774408550265147804675112003517531602520269645149283768110834340692844413342858721013049141530296258454071310618219907014373249625690622954821336079096235329727042233647191519461950218611579086970485891999538074896665307959947076817080069869821550696175089829154186519840729794523915153917436281921406297118416818124033698958772774319923060940829372026093254983434572060246939225158146197462084809477499784752253344355475307380108093409403190918328694832784545714275718843943248852044405713379094353065643868705873542112362938074697968427287428825112153353268462467716303171978330950483455039623765279352884368420118225273358960916354424623423158347223255700434910116134559991668019375287720206955781593287673075485982410964922380169941081066778916237676174976454822353733645404163731853486467917983524476000104558027059496915247599722325035047807766022995273582795927274196321897480107590264026137500746451796110257160665364776773245862579842833791646461717714901106751151197407160628589802870321298127279528981776269269948948505434132088746856784415967865583110490348486193216420719679154060846817328505461446860544125568897519659589741894555249014100234907857133879174251021591434679837109925742672778264989922328415622756155014859234571234193862994585817407702832887932305737020165657270240166695620858804336724085753555381244218328567294098517301999121521959403199562507568137586897878447522500872944851994575616922525622231568946038495787318897396649288113105464310243124952302953329086365372047930298198075264115870034142780544918129628358131703348724300836626230874242300897355406016443272043548087233376047490387328147862424990033638654833265676360140504111840610416070673892251454696702262389015464656962260269658560340137552307238898691317644903060541368573755893581889535928577945380608417412243586196585948853126553145241848388620748198516971789795262294121044529207766988572383382812715530794912220523486362359715287437197654410090223713339075965893608263821800521050796802740607109333028370511081277782314907612294254052419421905301408599626885348426321301590305286378262299898016189318683606657610308552051413990285210121736409641327610335812212869660060473374783206335721377845519676111989590740968776964884794824444457105987466142631649983463385506728706467567983919659047090481244236324819957982863128715633617779056610989502385294901800389242883784593787009469655071799482940603379288273635699276354168218959511334438310403939391160917004755741766317102897014960342701753662123295811707655731428466005586975025749015664462876485939447207000460407125036364158150736647727397500562986979267113131652885417413065888705978651178969084726401635417618081521595457546784660759115516719070269889147868928367328825453861692703459667183612774262574761717820742386667663235029904762338621413665096329677067866786050308332169279047667038539117536687396938553838824014409845198302146565369161438444662400133704129988480318195869923874784915910712600021413680942706406982449217276355792915092913113589920141119163440186499695215621045363006598961356253382713368087339890968721093007202569871485422289842317090625317838535876362862326452119356740876496677121538702092682017868494725917932969298899607835831284015925345450689624798349613531490168572435784763920952368972843102263800492157362599293482107220710022861704803067439460143290254456443101541989996398658111787686089606250339550346685017429993079146536461393016541440375602987078794998248619519931890051832378486856816646578270638742799892204424776127835912939920228117927263554588595128871116419621018038201720550341332600878944643655898964506821965215586209016010734107575073405021716776869803779101424671488523241020250361220202736806601680241690832932296946335459594136552050768061518199639482867262263802147806071295767741321707263918103679053256449377596122300620558278849465898903225913793665462465871376447088511759656403159584542851247313119775157304650493357126608283794679419944790647217055402816208789788174833538822895054690165409841858373085341224494435692408276792331321086088637522477292915817506139069150625678259067727080416386895234049122448975169801226009334238378118681257240107194680430030929908109237514196100336201836494779779832221419692523708781783218352435681930010513399663992461750991974264760197192845656782505179733751627963920772328393878831995218114801308938309149714895969987449763818968243010399424938444256430164007751295248863149560702679889888929539068436252434236229081147427803713047374743201028836682805330958251038286426429237976131747713972711202776715241264676225256531306094395204421821152695417044825658477004185613805114753187326888497736262274232672031797263681521146511574641374010708120194344392079581794094188514310931248045487927986830221065986104931152971653409764376528087994098857958587697850141948195602220437278659346151770590544084200160157393245432382114502637720224439748686000561169579315715566841778658655535221084229571622148516380432026332347714315191736212309930020566939230333944220533238317197103102061340333754633722067437510194696971476138439500617431019769906945063923883338940093196383278831448699884278365456715740614494642837917202237431078481020369173533517846664650679677816596607457452310201089061443456137293682545351445172500202711261702601866309509943906032167291630389906700851052289541630045260285115837526710368189626136680716435456950870695917487827356748887430502561835131973320370656253728880957249769184171813736848827326707679519706300273574920596637949554112593010518296290398262098602524844557185410225403573402101397061524923956463998577342182082884911811885444085074434614916743756194190345036042129202725225518136707591077688012995014999561673450410448176546686812070727698139955486720480884896642124724870919701226334128342573949216338405868907288413169104702420681500895257326198235481492205181968507507904885435910606280899647107684710000091727306991351186619449106030185238111399688176107638294012738391690363691222467997434519296768268031947790354526436097393825671026648057186628708917239474320254846458019319872499003127630470248637516953079516387479643298541222173349189997673968794422251439596498470291955981852895910348656596591529443995636961012854140529323101503361209924413650390861777916809399651484000476516357103970985475329096767976658700753632141201810694578021241425260609987969152055877999984982643532937730531422292510905259433214857655920547078226206565208063673581191561411155101479179283760818262564703208555209576139625123594783273283147486276612235298561069252436106608357672280960883019058739452626329099596770036721193463379286178874784804705847346955650268237736500198857483230775309372252165736806877493617583155899109164675056678837728642224993114753523831780929971946439999432636517706894289296638660292729431760758833752231670200487534141221241145435157805647958676101500448101491977609496653221102406324970693511258466795330431142239526383594651254580688946795073767485904763896383272610587646746418336223477068520599525947940851885658486950084658265313863042646100801746632436019691505623513813118749058277724818951283721398166392906702594054472770543972109577779242213514013746948633654923029459338397757178013395094152325093664441331456053188673585895784821184193936354518755057143839509625969270945107002715130220131357454071757069035649619848472498454879298135767354718174180475574162295826819406237177150164637510111920278942993280057983797667744363866146642146243428108050153481477686497620242782667445105626256725544335324583875249915263620454805263159003214873309075086152165150580290437761944431301781930153113701594399239265106653795262794477868735673390301288856795644164498822272811229471875242240925807806150636992855305038988166274779238446720934424114066428574597188632305600894550970585104045468804950514395801234178541000358340456284841712123442406705469165752156906879776345785929830233568005307089456823369815620748197667716141958346334687170357737165583242803541053495876365227844790011859257082275376250740964955205037293635819204101318449049779875127738111928149115585631580576062955870865621583478820610895561094822418247565750423108376104124987266928278261043472983477442229737807360077800077384048827659824499201337960438534027260551601576545100227411377401567552463320886483743905699148983280844715819701572037501548518031662393163702189511571094175355038589614257619823258127398657264245783707634352787377116581777763427144843144342830784530568766654767072041442279157460746319282490932181098388333478965787620705784981172628440623708303628413959105768837091242025121018110254037967649400454669079905095938843107430696323966767923426878156244845398854741121838225285405879933396494867016388479496637893654908964327134431786734320169629810261002743077418622671061249982083043418483481292138103631788096993934440808795052437039174172901613980875482829529167097647839858749577890486362874278201420676922039435969261472860250742065498588275536504714629071471668819104694210246392148181422421975645692641392434984057177493760055456299655888316515624754763447345337949937363886317446469243213343483301637751743546316010004610162581331334359953845825204398882555438642224483732143289106023958850746652024020641089102652970159351404130760911021183374194332155639277906208894581899370668912388870322026295470843462481375749143537165679783040450980282086535719282296497250493160199533648795829393405811604945110079681723469721434229669815834813184520390728077192024335505053353919609910579220851365048655932246989457977838257687624717103633801327675318866240412978029481480962207697040161966909953231787323781545399404122245979220653218580538600340317342140396525550146370976494959175073196810661425752175808422015590586613139291345954811840207157120426873193040693752093721891687051806068936977833729422302917664506383003195125875581706019782773806614988850970908050805943987683096812895538640760094412665281550408135550909836462807726825825163195142037947772898678803888215392808495470251339806982575209221877758234191855760469271325863572948799950956596190338672524294727004139540610378313711106602366230643680521592921267646732566231193843757374300541960243386428064332034793704188346041258959633737539947672849565243846064904594287462552564909104320984943085736318089133416375083638535217460128246506176420863380694582883694374848732427370286554352990429768526763812089008772271762101168062812471814290948773227459875138763266583226304263815488096443976334904280657029496651771648350373048910791350327691882598264687948379044870822846923113881008412356155103799445777324538150359355878707486533214926611487486351831822738555955280662451223825987294022234714106366591479865020791168892230635724162403726156113512325207919012771275115146394409703142346118538705228155976454458431774074462340380534805990211697316004620415361232636557020866166852176222800882223629069958165985469094672535942264280182927410029350442434189965283551893116350856418101748559074366111944872968862193532032601311787427952422819587389184421127165139229998519963998798415216354369560836099974672725497082889841387021537594010673753522197018778262119756057101230816195992085746705763546302493368542541366064956359915054096443276486613775870328434042959850303106444139719708456939705845326783565988848091783328791869260140226091563480571918824343075278959453352242547972227441589865991003215377586481221726986244638172634160300210987470932753037594256362742471476182668262988267506563009902259893151307632027267695563831277982607345817737638614324780400609308290820853165443072065258195027031647989053052914759036504697000410639647287144684171321327488361940021011066460228102628493105227272542482400171296124581960011942606734416015863032531418685873057916441612462392978309328266835367833220270150824685508426862138476108412969275712334941526907973420145574196925344262740937992844366272776507778724851631414316186725333792069277799215348670911807220599787925159763601247474606236841514842856034458973035880277155831028285677209431761576905704726576060238890191313366362784540510651547525859795454191286599960977878927354898313246998286471380770018220114527542912480062527069783515609747365387178459985459196623064668474656838254751192074947275919146015274849604053329161299451895558146351186371389905205882958005740777300434409025262325986635596307212843923532283803830329695032046749077583680941513370140930901590375872238361359872101162169070968888678601384267643150505324958090552383335863730949790611406457747308375888962085643059138752594327037826885110098394182052983032188014092290575735050384960249309490285560995248033607208665408602913392505613597035308697103671423160895948808733165465568586066158323533196872119466788482605753111696179954982565287686599342875568770291924659890837376115285981759593386890373583092079645390082730835327429791509270219650356535545686923202083687935628839915591717303573431694591053933819485676391827332173049276610599053164304312365184836919767239991196925370515454556217647837105592276684521487565453281342526387357638212812076927930876460588848453643498041371553869328245426622560054920827485558531287613329136203724268200107918710728191114916189174041606737195533962227401579970647944568097269805759483786954070238381633198208380147431000177051618774459823435010118349358684055532512109342765874023148933482591881973844028395708012854897942741761991241244790622729581811280693118662332661746458575542343986937114665797211345172044418164722706139078539561991037535858676892801792487539165320784001614570227183385038200142310208992625062910648363782662626859735214219080153745407655036967693504525959137656647630369473725202291444722249362018233922181523029463807614503882485886018687884862390865212095431966711986343967426682087098572305090886255849036479393546435669835552071424062383106620097570281205878017176741596187382010493671593568692693309203300040643539476194141725800831584171196077805995386592442138680384449485690254121780323562390998034315934001242874307508330622629452119493093634948710238413757158305926628406161722494506339308674221520157508209694539945108077933397855242484990143480210373126703759024670047458119594206450893775000922145481444611376452431051272687957700463690585745740014502786358664277870000275366727133208653168043759360372625531632870627022059508650906095302841593864435189829225476193764662669783051493944989638504066172089961442354473409493889996011154104787359223765005846267199495009839803378675522551627689185912761556332510593183078473789688716170662438122518021721032918472154361274865026661733585048460451404581869511247288068096629226292715477008189735181717930054088414494569771935348293283143654379303660276751312812078715724824297962198759378453527868117907727154369997699575125554325410415220113702689524698147830208984884006440713150905536175673234419051152399637034200891609251128126231579090988088566019862530416998991676906307656479130030623040436491437544668187256459151581619457280941959674535090613284490012372960032978158574407769849969083469518473538860896140694628939064296190141702139273234764052823387182279320403837902180940347269230707021934123063827262632278670990030560919300861029913186844016660170531025910303765883942586557975645872830821870115573203380097380658157491883370857211243566110065792164231359407666517623478551682295207109041893041854610291438339433937213451443745632100219158691353385681834592404514724861656904155331407142630695322390480214707172487416818904435611439466456490323579844179913901553288401757743506357396479987976957536743785058176331137416587900103409099481817564357088717512840710624562330003848195470522378050642933497099125000898079242739128463732391548636845934439946411933472089707362223958008588210171267834300546902174275976059712622370245098217957346828820797740900667776956392882612582185199706023816903054453349115160168131420751850116325991883702463401007492571641194915786231890329907279197009955563072249424957229173620188367791526561933873523997342641399148707954787014545780663209831110423064028980751227861720639522948777078214912953354059097091890463510745382630091910842757710271644457864134779124369345471107350569561728091402134184017577039611030806965878773787144535511407050558457290981792854232576315051032673513556471590832642227725428778220794517655297108878402505830902440394831196157874219793981607712872156656891505651368820730407931773457693931819367945756202634098264446292442059550363720181642048783336341383463089698820489390096330210508874382241994891772517945923890459906290505141772274310791758562542412159111704914068212311001135737698636678796565517210294018984196226411557114538561098154966529817728711436527991275778132883263797194070820570367625759155850537143835424227771477073557823886477582826033996024353684470075866578467845812453660478064711167116002705742521205133167643754506276685463316854045342124869693677081458042466775015010997618316293940575081149918102784852563752153389602777026574660691458853134813149101704730670929595608178951164106030380607781902682785511947654069080823572670733426314154354872316768011729819946290591757546096763178431499876177862942901418732347677282059567663796784662211023642496110175892635524322386185417538274741584648220496896501675085494874545716544807941100875652385153357383009071364441009308847596869323835986051347747256138768777932539843488547219702773600592470125845577140834400765810449174024720852012851603684415669095771361647235448841567675760650012891424215002012681921442838991772124359785949063427404086345502516738178811227575495656600134694694487643316404063848168240963644243640759221230595081593302526162876958367007785794144591231135450615222420801542592852104933086203246439250124744495848424477668229703027014417818854191738643420845349553939862707725991482734260078555013613381023844455451574325342014120480010961380598593435908278277051883083992483263206909062913337131599228694063887196030206962630359123899579682232826538535655771221437256550649452151873446148142549943519839898638317760247851509282552239140481327941660828727130835877953574451228245521502564577218655667113340545447868606741874304794598790455071323935976609218302146919267609124767522959359985844310169903172128814085856215911755592183461316099970775412502178654216663163970603038530082753340747611400852541330218063049801664766587229319748892045554936657552227145007079700710246338028234984501728153066199107489919877856810644439450007975052334762765102113986988607542796303748402447497143949186815388246198442115151387141791827574936282349849678789497651211032968867064046611298799990454825335040634634270996268448963541262152836186878910718308721524036717968236898238787428184573385305003981406755329149092803912399927682625787704171462694382163161730470862441161980861531130817566796815453092339036743983661596529439716387697497479271609190330984045307701210199967141374482089351700776950349696189155145222090158470257210252479421796524915653321393658553997196916346592710119238395704845259521113587678715777873250342675112531963866025685542560304623256857815846482000534882127128910833108856739570280135124207884017052327741359879879250574217636236134413838866358562689301687599879898388208844227229873956785640754130216106716231889644490828550006199017001352219804206968167180781923705170462039975845070980262098913983704680407625170282602553868721309408664093040710960718997007410990289890409423571799683688944680883402206228878286164033330759809566690396409493186944228959642546780588254156165614061501910004502718831752972427308643588820801453488626166324515172624204378567710263952741309813331433558314189840944882106122523402467087949465688165997164685392440974855170297249913585300953593847871213212348912408474068584297701203928768759608254190836604273977951306961854578768081105164352822130757438809027836338194388978743051916820649310829794863314489843117100426209773714946231721225818670018417430898957426731466150031464798932849167787500210213119393529212407849765192636769128214609086774131817296634645260935607483618516238363834040167089670734589139632897307379655412761151928857859458359440040081121451226673512467776724903155561722188435249341084150135148688987570597153020635718133729989916537238257461659928386467479071662306032134365540080122537637222653020351766037820045965704840857783693423980953171081341028876062312419969811694612812064432905680442354184698986106285087063197116934852237616484172872213305222799164561817994134645166638389499625645692967481383925084017237826129091520583275979785326112208925382500421308675395826570078552032869037533097530405586469433206399729204533007757905791197735051088838103845648287490924607325385661637031779088889031936040642397750752633835443440631163462327761018285942515208485095686912220963563912416093587642689035708149251662181456953176862716050143257762452874655667712898053695614405444942238845718592657436981623312242480479305674400049397354847970488412225400493860482521724353725561937665290199475565471331331770500340384083385826520252041907261414226218589405864348636750678079947179358296410132229342856471466690178433848759666014300735680118148093766950760636904637164580981779915167621905077243555757451039785998152517174146610888391122875487762667752793442007238064289244028063218511531987573117060828061227557693256763158416848037087124393113490209456336000679581395252225844475913477746947000182191547468337552727190645604677743844443667754253926047223853647932354178388031036971666038300782199877843218654978330541278483289862529529806450899713020964014233662609758153176212436457668491130825096947094006776815129774579297431433518060470252201321457546006707228916678811518773111583833718549865540496064961112210626856325478155966717994714682415288122825900723870633988890630316260734678552764113183215522149131186094619519957168600469539334262893756716744544674500196162995937986842308210180846516773464310611012516925971053566906031275752561421147934709529610334678371701916173954290329896557831894771339233002442614224881546850123295127062045589150177940674191319467653677339027818456221829900539815365001637851943877917967093842057337857595377620595424355209661831019247533482453886769913953606201189278194540059278191678828284670989720291730643282288014725843264826631027734852896605103528791476137268294136555541716829380483500302443853830594814289974474617191217810099452616147551951832776516657459216077504440086396225502626965858989442605811991553541191104374830498116201608476064455986308523914033634747553858775583899599799759634054274165996430268461280475503866244825661144485927588337542791251137635932937381351257481526161424340709481387919391945043377524396186787202407980876547012034540000937527738187116012107532499923993392215351517034131911264277177230370545409032194214900980602673447932879813327305585174651905980960795966734732905127596389034107939900031548751373685097237002153447348465163134261111749804746221449957440147798280670867536591692618781150676087142367677631204230115659793374187291148018521001612308999661805367881801423439431655034633856395920479773976861887455625226124577727996978899127906315854330216003575031400311251110466032588750487552788614320106628411291837858282684715459107328041991871850355363361512296376779300216746024164209803967797158245011147169991769424004735939659835525391939049020967728126393279077254177337312228338454074479772046496230024197693370435381203819363549310753393460375389501825982007876106046302246923489174818716358134966871078700607151994759642163788308341691792859101879027589168025600031987706347073522142344912040898009880776024588589376148441175926933269539247813425564322285544477972450032162759994024869645875918467100704645336521113220047264180322655201063965138650817755147352616480581469387127805459220702788479412229819245264579414257636339064503517274155874703838719597991645792184995359647557927832876309657995689899396225067220311965615719614760959104578122086718457794606150170123011720251521068200606015831149884540303645343858008612402202928601050674390777119994937957583327319895354094007539048474577927475049019034534674142711936682553619477535054647575417527956883232074313359770305055488200582956924241852328236120708289400031897064679358780874841132240775955546233530969076297781019121422487233950313562004372334990237289338214614786616639571853397545799745002847707404664614106123926711105802361435721706998886610772053692537922905606926394216570876875394354962513372019965037978352627459280996934506021697584372326184613578567485986669846128740457478101619557373408990589194225641554279679142743212480994932885789033595640979412133269065583131853136391858256205788712444697059415702090256801387844486655507430578410485909814026298103939312034206405340234289999843343840268994258650411335416246165869928358942568149475725497112850268716716976423584006206477648782387566643489751243509484991131006917613237027520990387367066853229540049595139363369386920014788137350478838655216508923027473264283688816364971868864361768682813382753117194574255426886994419938156821656474027923229710602247279805589415190712840395617949934871187025671371968687413743458677409555687435435469936863995932264077880272024788013267126658008443546386185086365630744312783862878148162657955707312750714127840195586156016306635644889675150174912148806571185338571335813714943457429072697804360930212662710733958092912609009385090302013367155244547904518782530174984073649317184140165713078332691450442256622811693117739349979766058373397675282354681977471690503435408119293479202300772823698296532927257604250750946700461837910764934521019078926461899323887980349217947793497982217222446092223668614062163255453263652166774128123069863327225587604235386076284165840919932142382357784843640516195080933296167813473332209746746938904966337709516738855840134731946799555795356520385513979057118392993640570154500197840677458932415524136710851692871744500253588247116584517624488298541995066098963354715863521476275235056589733693885015952231554497094983875670369993118341852330518354616207477059656089283995670704198483334560054617982146713081813655178009887091720045823261796528743422224584562991573690687053172228936790577122301413568785746692008977110197030386073197915351201298045419804620474628561560134404634379198307003576170038889805105916080510403163005206794351381770980763501702050284601050163859634225899814276022739157725757091653672608135919648757547449997589795041473297805188418878873852197041629412579015595845089685500365740372134869798757558603633612676382975075691855871511616799884721088042222868290472963235012790900573752727088287943357433452441046625117362294746361192503504159218715731015618171471519426032771597565450131899516759448282927183486668138035226338211737272852253326747132911502134174994236637560021495511866638917840254778816227106884884165873730766145868380553210563471694609419359240301181249604233256695990731948410286983111520534554162674679637891369909243382432939821070886970532452172755766941398955983247059457979296125939173356997367138668940564069472738997590909849832592470108263100146963374778738541321283631488678971878161869499531650161811257822499310575694357997567105343419822177304890930593495071863457645232193220127979580061180741978235188584534101285341429593719405736852768418726621291517831359549915167864977336479028813006372545086836196365876082668489032282426759508206813092026976707529258871383828582509434795977524172958691764315550233049463365702266011707547181617417497838133467409093976504118477706334219739292685980770424635129029623973385685680494018209491804255802288610131730623078983892849852532782822936335793914221239398997448671746458542897257346634337035430736136044974516533136772112867527589403209983488670253783058966449082289470863056010349763429374995030706802396339061253519004611512298033657215334311263126452251746386226263815829767109198256277849496729005999729444052043365164847710996023900956788798623292637961026254749157795027605841112764450555297170951976172002944036364899869170781734756897866383083729411056534558274399610468890259524758898514709819147583217946138293269361210297609797364041279620848967489057443742179920071999072282765463408206723858010127410371532878491649206376144406987119833437998855607381526153765445378923963129628150456723337484419490467905060178571818063319758929969319435829127275051145426496011798944018929062159516560625509952102388640073888146992246287976925510001383521831613771289558000036211232543285150699013152023540654926576380309561693969872516687002861963403532990249315954327159486247377158002424148563884641582219293149736304390239535868458913181132811040346077515188963025549622752583339954080432508803021517187007512544615756262741858458841497051136330349733203179770561683376818626515741192369762556917166536600679573992753445067823648161455961820937166197146175175225704795809555960339495618113500898561145131663265687781456085923756840692463221511765266905538549445025847440336238283268152937805050978447059995275425411439684409342548407759405042610064482742916402401986208619901525126294119669234325059269597829540777427408993598266765791808872940963890560517241345851484345972706510209539983397727235251466075369457391971477368782568907431864005280675295503489581979572935176820377394395191849373615906112220585237835575239050533797390216142558047443463848145608857834154031378020855886769795267519183479943111470309799715363678860021146733551483761231160940051288358902578917834968480447060898592929907566462450990731408475316099364708634047862780201585258466653197136991214959908667207659587266611032087089324347657613306829731729204599312394622464108509580387482852283176742340602726756743806930968422805058402123073520312410040060906348189390283748637485268369919972470716015696615211144339743793466642261745871281806741847100652249522541421213235310975335433778870331370632462689545805648385071979047777533803697955187844721029744356560666786330609131177682721781508712209710512832156524327648687714002023998241226831135150768640329690493585304935228362368026386184247882449632949778801188472666964952261315938172135103894940214981715400304886675533466397183053134649761523519611309374919686913291318239820750399475619511445277126295975003327867119338664621515228322473265562184750224446244818034933613165221919156957876860011266678612858674585005943892701367457757456565564771718915119221641583435266095957709086290033587346786403502373906032751346087940483834438630378204620405342534196378895083792992131400379420047686316782244354595103579297608524849215437352739136218283396635906094184907904696250064808309382035092630803186491771758675951086743326911497449805320141723001197470654372634121015493529525400119438490537375541854430879678568500679975005081436632225353605054735038101034258257909830151699424778872002812039493886062557912079221440196125806575227546393565938107561055940986740471954420263179593500826980120407368953398106233459621584142487167481742280198460887037119556640803032391361588427140284248532059283866642099946136229085953214111644380726548970454994784924186585649026681021473810221555568549385790334205587487126550965512374741754725373305886285919828108244716360022245114091219303223353434404085102113542935542720679324256682012828434713436107411454975096557789538597767904860410298937703747412479415983728094569691960185112445216951694444478067401826769931592843511209820024779675709785850373845577023126775478286066141597765076522455762379360051881521139956682326581102341996415002053544306664166699405642143768806735338550199733128873895774546294285345042089799107825908670575720164379645180085727249030535497406281356454821597602318498363022729086950232109267311072439418548502714881649346766254406808518025227631386332512736768752007081969702494005349987812698025350715363980155805569011355105281561234565909665957663990809174546445914770933573896512496780053766899704601141323822663650361944233596509443265839503525840880977786459829301973800631780636416847461853623705431276819389715039860757661162492816486951289878300088518710695089478060079151361961567083833731004877826796038138719925559019150495434368143900522239024649471801058078154567781374507790888001391566944736902924058351847636163937826881336286875659190594483236901550449601575448817724486619068926048598092259900935351386281085953584157874626468018752009463553654937176043073105351345343043374555796137156735962945183170716160119625095127877060636961429229348304327380340583366328561014186705737327785772664666032545570910908371234710007699687197482735734124791269084605365996207464151659532546787844956608789276478339853419116639405706648257428815000649347348160555327913583976612879488857222148136369546539282209266463093795827108688812770992006495209823759379900036206230755199945511586013055837862013075461594368308098797633947370331122534636849474556050898812861913069439277107751144509327739063649355791615490941584669600485459631742996637061887795260391553078409900793216956570167023790629974300872854057400843735880944932768480219107778179782857844179781370436328148064347788012857960685996789762817506387609255459040854842112634628719269013716841986613086110902617403472896373331683472015612931149423095740380266360890436240814806354779606300581442295296252909971267059824623088789653074615035452803823585664227067752188580430420430749846306961774007076752500048262153321437992269685921140647068334796406055809867769050297519175606318264180769274022600671868990303268312647484792575576498877152393956844944439475230026670259500365114517131394716408824945830736668088427669834364622144770983356660589929387243780007817696921004259409085560141747679953510966078172768722164285557589806040101448918980239953396385839634281442864394576233154384095951702566979753159363433344916435917599817786279749081613243483869459593419283759138521371541512968862860933165414891060494938753856175147226356143817159390522104045385605246521609716803423370690030921898187839865428342510812729534942867689567354481766397717028826354295935799198145986094598748085443096691369225295329561685181931518851426686400501695352093088944987178899563092946939259399596760090049849913034301878753149262746754401640837396956966087965459138469471744886206399323816521809040382441542994966677984690372334632066235156124575084560325236141794696926364761326381047584127422490300246485921208877020840086833788668767579623189309564934573838456579946555381971514285421523716227878596516015838438973769056055996207887473768117068744721542283345018088418862231962778349266477162974133187910268561828765075702895479154367091263550901109829925687522265526617942884157219899962167287243837751633497784312604490639449943016885957492910342966264517759808485019562118235531846016092196585724573068940527656937362220156161349647567976547497612048676950610353906120525094553254572558378535052103387834463808068278114436738692385317788262396786893976728713259346080055433584595647799015490384522471740782828381146552733941835631778234256258621070556138522424793318813820294160292761751502784058776666332924806082400757018749797390394550519059426856896824866323600867172709531216911286227820718941099496253418502593341752699628260760832475282407490264440480930140328050009210943487983368928655941611378196212642340905088685248740336135824506088223782308541222291464227964370186350838830072356096490811240724569115174822916376519202359189712185578726017814834913694569927810600660769192467294080621434689970376459032321804504973285362517322814940432030416722634066047219406785204963818127198716654002487325487217755394272661691760312787734382567723023744097133452323671687693049279767894869987930542526831446914059123456872984679177947248759962339174158744447608290873792678940357629311933114497869914619754741236665901088039682927791183237323687084917422539254621797186227956370647400485921253042062612381464030055421115198249414706102734939108110769097544669717480870957212159637278085418775360705247168611093698969605885578085283528996531637064268696147627046587061843402953961608791704402715799569098179152994053296949154709859562782842099495069019216264618429997190305189997867492213920101366542045596096682613137009668827457823746237767318737131160920465681657351068317054341035786611737314039048857733385703621431053309056011430710761512646737795980574573248816988299022930323227467767873168304637029259110803994084901767524500378662980478555465564307070864132545312639643613720524191985841133281885553379253633379107845450038950268496698654773400884335923700914757859208873123454171578034857072265306185444789681715520624770810393247034335553977666753127535050194074555821810899391053015842215779267844593101584611768802238019752687653674678234486851755723673271681432731303787468667523318330953534554912667960707127629283488345681196867469563241455745115443426292598646242980259823910323338955717659164440910693627664204386682617853225627761455866524325758947530636304660518432592198315475856660663175214081587796634205782232313473352542325192109930364927282852622448786683483746994053389043001930727550512838226499996025779218037404049085400356944315053970883708117565407483925622105498664167463544481429268726794962535362450478083582730607509978150130846829716974332223150510072217099262793128355243975582320576895619896445783643708047623021101237010121393442021722524989136514450055411750131513351658495052086333565394062141766024870199443661962883580506508518135362407447565628000202518385876090484543462591450418864428511088542606508929421948434219711171077036262498790744519380678821409155364176422925266818028778264406218043455172095076514134667107821590898423636854818714180438561594244656719338538266900063503109511311045161078662951376693873199648491294406187988860709812045062943122026812258862152395362758028585695173488945702341693146669917809876902556588187949799985732597914763185413256040510817079755241573256555186876424681733156083233101142464073738412090267815625969800061341877164315882799427379117613648874110420760769523294626649458021814115620481563924411324589441500404472743390044381568162385682285872275189771830091579920883406844022385704059888168300881975772134276000503614801313071320958062864922009814236216909621184906366620671739872838995393949678019629289698395103104905654992931009687374976648208846059192305637422921913557505006617259666406316145042166303408810286984278141540807493721491070831424421014292259621333771817362377319608500426477699956280674926946818458140455148014811172467270477349575835359318592553912906320984299897385328127428315785535979070871794687198195981666775628693462545241755156879334786783122806147795316610742675769787374929180750019864881954106889009439565076757141972099404252105464943454094228405621481372163976342461729331217112576247003178209481283172157148764506739139783833914590791814845918953612403854508670965157275679403935313467482636795228327344225564559828810841587047795171012975259906119027474222004992585628687699938611157277800084302285604236988552459820332832165730585417710072712827984120671392029643301664568929136967724846812592199732644284439547913531127535917646015925211641081872696106787334904700231092250323618072577547615715677781953932006344719657145784224533333690445011217315210551488921988012479252491329886808329012485189698159055864827284490792135099125994886435563351130087355381447993484331588445014246892845704532095218739775121290840506385991450271873867040904593081732527726633062284839372998781866140838581914528557398583684580645183774721339075244350580418630156775830721927542255663456593599008873967807659545431329342516292058239997786230521638220323959421753535939055037727803305601784555770844807559604000886007141595814227531236141458400280006696958505368267151308735626243809497044448677543983731841157527115376549398793423199236670871144575785814093384418084610324326767811592364804459481546895381318566238237458732564783599799692912502625841575802135594398518107744108482113496934484482289246003641105327474537411071479467036019454070373763987701657176569885366569521333242033650915844113385541664596447756192737215529170719562015189610102664795878183020709816021728536088749738138250261067318213317564991277133001101061027475509168621389396356140649219233547998461903045430627898243412812297064724076569038891574451500084761264485586924024565425476523941123131947816726745308878055822160387134260634530947642626711643906968453300963645719478385641762767663352947793573731147208066436888426260267121035834300231880552074813918549794791292462981258934399264244642099824393804906139745534769362398131019397084851199953773123878734893610364066280346101117510757699628654945020205006133653081632791159969869469019751565186040953660745739966127542340787487399900992395642250277102689095101196463965470815659071498438694432393072796881894270293720243759250833013113140841185481978232455871932386717653694382020187847936827919837882648154011192422123926653197503210898480676154011023739187886646110045667321768993965646366692080299596379389160546596395288127737474250989885975574881031781903984086161236517654215512140730614256827364577833391855038351604903767285487355989734902284742762388556919283946419208717686881482912862061397396302333208924914526689601156739679154050558345142905402847174895751086445960042380827857557498102339633478312761506557602935165035247145301305319916852296435883847964174071543073878225156577981012228122463415386385104539543210670167103129981183409984629837253854212840956724709066918966965601082671361021489587534170469848914389905628550963062131460670120446720344681940552756312994769054253369535024745451110568010516044650996222337205993432639526479562051128582557159509657456909195618430432481699115645370418140001847860298894655664352021102453162374731974393981031279082523863375311433528113088785501015880910504180314249558333945531765486551196339344401485211700514040217214220981007102120817182827361233876680699267786939394877068091702778933339221778282959040902458141548322077395813504726875918355983306471185830887515213352014954912169175501076928173873371514162292474115594131942747585285464828140433557336242485787330621373223809111711995031331207155358127997664424500588236200296726683743155921140705297419583045023221394148033619518305207554051762937362516742338227503298537557636604722901782785267635783451251639253855302217126371077717575595478429038486879382873526170553669374021560111877992234801479918066915549037121126591109048792125632489349565439811134399068956448057126899639640799491319783089016582707536528048262498427019934698596056704919782930470697179265191316459150741501191544551026442187188642960244933218320197261725516784083280107768101091984635122978730015272376172120082019805607269067939493609134908863284187729921774386642256547581369170814696486907024690068898258040710839860285371885680879682237588640954056260691536292684024483890443187960616240344089075372134889713572623090367099704037789484719608731756907960765225225230616514545900036599363382923992529654033147932646346448045477007364109449395887478043309151346954865585709095060096021940432925675436072402248807900239540949137240458816324786642402416194295996976898586160138638846948487730786887434794596230145561520681228807162164938756748817625022985447723867120490327612973334276444692757607605677574331682887201682188948832393968921188758778590642844360652460692439418362527153628103860463926949154609052552127061130214598088187415207838555756059099752120628965499990535947276718463897226840274757928485968608657905721269614090084261705795774930836627466351295770508113918894823198464025296529237579404956356944063809776707570164398451815753213985898875748062324565476655154792350777318465193493777419468919591060989243544227260500850568464801446429507160459517159465276103953803926858566868134697708920196255381207600032843507149026935438672837251571699356786308612462126956447156759243596222449133733504677499470665450964169889581295434120094344869585968135296168076873107630237306094774272165302619572068324740089554228190572986487969015996193891033041749363389949269503648836513215422227557730594945412641769429712357176791547384306507055471491687501514364382526909931535348530770516369472566111505373126422983187201552978990138739347502296993336136580966859544653289423525215450973868218643878185069883659430999498432269173443330261582853922681161313886740894306671356777716072977699003066157601963505141398223226695035541398183877152996731086721669221480829829281324181270358004264758574564762708372934405836670191707082509253283742624727727950629939826141855318817141506120015439283313698429575358739915821710662765035812832120085112263695346278188619827554955391905654680450139117870408524150244799238867023577954197789807744701596267092035826309228588575694459769338953065155347772957903340210356198760901915543356846496636889027392353539148413438477953704687683793289362664359668706539281306052185763152867324100671174022389731727408393584357831117382007623621426196049238364150117392617585860350049204186955807894666302209706815590636064453399817477187013519025082901033130332395429319883054145357030781289514964910098591821688932033457773896847637298725365300732419676389157896791307152874883834006346587288905185972487896412658849472242987950415927103895236164657715553676593087571052305836642277150389510504171498338477600638526256155961599132002070569593790125056380267464811138122085220110282017393052341219257487936239551805216898206227368397406856057201953714419550753099718233775121866233749228277610485266151452873018930098791974768426015794732917007331397914164565860843276598248438749133900646654739674748842405458606266445665305684025014938441789138578011050537339968758240544471019157836817062165498261477727351929429042251565031680093402521459106890471793020738795271214438699934134027116901181343158023268766347392066976744456255892320317520791284661495281329465100777190004168612988544478123078790137872168825098392604382840079688632780742831012770093528902425834853906995627522375002271841037428830827226464059693356105592492374150157024565482459574651186770405856702057568270902767272111724324675329051483052120663733640439304526509594465616929479251672211987754195106374482502065712200887156275531703424483695872556388805769982187245260690364028075625808439652234815628224609268618320589131671755480597692477692065882597083529848652254529325482698793248478514429160947953493869342722353468740533950143419195220343749683964218088404449745522811135241825404137105497460651232882527330755662260736365750952254928823209076539452512291600022057786490579609788686094360514499442461549408715359533058550330278889914873111169546029139105622939319314912649990861459151557861721177723342021158642100326381746764127160788748375653500688875535443158366456886257332321246933599238642819084720849630759768240618488238479474204833235503607450873263488404366250633328872151944090326023158347430455614920043124414316261568325880913931257129599815108888336403342631050374124890033994851862839188473049900032298877251210758597604011983107580679436276782069964426584778620978220881438431925794614833170850589278413826722054943622206392911627223043171896502424538155345253117435441267245337814070449137257530677155219719796380126178119533555160294586716393906797518960999516672173909710722783228132047513426789725128604709321597207129848193046976520997981823850679395791044599282551083119941081795423884010314426426991370131348870210357462998440619301765028540096799998714351598642249563388066050114438791590724206409163737884411049864847231698135095401809813252752241087854905752885124970842393242638172224672436310925430346596070170147385716400855207576051473909501196969727737371110566030820543208156022799825293630315429561566738799440928416502817550812562585511690341832514244715081188725050509340533974528737183346708131110147310387998606115555981003587027219602381188350150298979088382366379819166229698966228520199856866447066686483363685379022735337132359971338017964600386369032980242050039452239727019293689277509779577537167195132548506364331058378248696050385306436668269069699845457015517272129385445698546147587336321345398316408055370006243268964672441471661248605730234671053723243091839241997922937842343098364136106082651276075410809862566461959873389867024652916478921221518091028036955907882726307713378046532118052676822318436269466173395780436277658461627132562667934350899395219632523002578264630284693819817907689810247847792262144449640352317991857872760489914996456835639735260362146685663987411710752169050540980671918386625281296499340782433724660575034429190464149696815567415034225625049361434271949812261401388905396006687811360270973072049158399968976160611332647842279135852803206542696269577567897427870096120295187427557945007989223846259575720527529007757078377104500133275914086453593048669100514640299465760123449951027506672668985715239087680344271057943861962539234375191524288731774422935971012793993075272648127762127567847542585552809680441385465181760658892102933996077784330755734985055748202979236611710109215935932086499875497296363703399341330370126340251277334441440615888598970783522909474279871882411037440139642761176950729023406073311819228210255465239815638506060005686117403043979746737529066493561627958114995981494375739526332811070108167776240803367737940165119163036952094258760828505954519346702413315968941259874684720282156654104730446358385731928160434064138044459362014840592497506830502873738261891365647402381622487035906611996259238016494910195960396851705902974233994270973809867008525705317629029042033694857675059133030161362728377019091525993128177069286030477823690215719195390760770170664111195097790492817958060583874801571787955168946489034059829575360671784715501298539939944928969654575117575397852039159600854188931090783483600001081548090748253959281775891322023092913063424182072431279021786488215550396623054666309879017778175108080123713901236760377005739414592485051195092188846358265979265350249921653625846916285519958864158611654365058784342921914046013337496064865750040523381263800842500349273268897654832816147419668892193578321920042709537882832368319718928958090168399523343918873359466006630401725840202150802869868915640243859726184641977585008967624309496501601184977624813542822586508961145479334728242789811678786813066849316540628585266147088850257332261622017417918174304914470366798086833452777617928328097089052502842359570864367703892661006124785966758790306371484874276422057445574685275348590307264102755291476285294219459609823644465893314328249221867443267173198855824253006431096194850133079072563467988579676065286466350694428971402673500601224501870577588641295316135263948887686527688114307552752523897025812846945091257264304297043180050032820704549716592916181012414679686645936928531639429975614570118567614418772657661564392749994223357683109250247631652804064654097804180002658377936151674749892272234142283105293961576881133844026501028320347514037761753001791181593675367546702220075354974236612225820227276300327593247873920833010534709890996690369589383944813152924899436385239793966583735390232108798401689882940410984129042327992598408147962849035551992417488202008955360508435687687513235367938436754735277371082341753870868802945219291878868940136587990935888643478134360522851853910364959157099448711290208067067478349538492811158739316322048494029268960283869499540401239026564578871815908791576051512522971664306794092064864848756103724199353373181883882635855982314798764391861499013009776001721987294530690854874214145268973080641079369379058525544022647220562696146409310674786396485202853049816492492114648858827538514739226449704523665371931362010367388137452736464752813367351072171948557924882651961778784766860318904346549390760886195804249632239362032991223606080631026618812297705457056073236110097027501325361184236495705346182910394889983549563636879747425558920700701150999151459413423689967028895046456585502137603741543894939890167605539359709990254224718929684697915079702961739230899368248252143083632585469147474180061539446621956332990193849647937762826657819949475475511163894243284172570155242924346524516773325754682148293297487687070156216543058345277130272417385885846177826268879298309074925929541526346186253504281280526329663786826648110217187957915883589062515889661063983494812633214190779158454552877582340673292495739522237401790830133332343516715849105833353001379495114772347452411644152877827125957537277998119313158599495478486563593978411844670685110671601350102929414181751248588847897368057637687674770806780642369648323183255254137199880868222548149381367610417012128957730096388050502475792582750364212783049285187278767344295169443644867932294978027044085376042533664283667276148269909366963938510714140726827296228255154909124227773079081070292328151707541142013028003465585386642206438791377718973924172985686321757299174486793662537200583049427645026468040219651319343799127734839176951450839621279336932127957640797895744333066218298426777816119378867301915560053702732074820191767152993879038239958973450844477563338836116764110233376921584183247774207981955745148762672403381080238286274213291964127571121281179298949969868227332179324676503489707622164847357546368669417944939743803736390460304618083012919087349299309458876260947796356831746955307480543496497641819149908539548567521836753921179690161157656639464388287507920864139831748760101340983760214630170489164288647055451408590184392064405925922939232468263393428722143083795865270445240376182548806857159385394456394167543943330210318250938477553860559067627606328584191763015039312078070170145647777639099104923802728578270733904648646965092042772674849390927258336322294875690305033658938787998156272451807787733617632754764431481133020020811259962786763819025847009226934877563627820381394221503955608312735932308531400850211397287676287608437552695268521366879473639189237824810192830939679268335766652031859682923417517033945589687735792538759901742905299125697157015300311073512546142697234516987797006162335549810122722425970943491378585983153555374207238274337524726415186715695027260454710652368256945908717222272516785256851847524899994215769559615156574712830099530696710366798425181059850424143951413151387301675616507928080564735364742405593619149132097700050698924795559978108779845787750655848376794070696097503311685123909701866104215701325001368041689070506181526074333184870840319520000485489455888660829531506978985011826724450428102002977146612875028502958202928318486640496775961758230273182144287902822714710819225709163888354362677888808295644449906216567185661523665515565986624286572879526334662078505301186863396879006820467486143129448185584652454169338842944299327003899274165307983889900875382999714717552383752423008052665502607591655729398731379367761255525352694941243456196602328498780605509098783765160048441391010079720640300701984362352751737915493623231137496835110969875329801635425715608182638810357804156504218437790364097475102540781931288938827158715771228410442698394093697980447056716937042133789210210636475134145424278490867426205456314610109935955223518672637890391761367139985610585333335382925865105580557590484972517319964229036342644572801857447173621369736322370890847288351615810812753733295744779223749498012127111528628062371840401057707169170012307377981784825915012335866391311959955366406397936219905636400568481170729882386222803341138367694716953323117540476850453717351739048124754059737432683149477012120328432794056301198127193174910284920257366024937367216160396916941422338052730844335198422762869072428905581723032396581435160577394949440666141428984726909940697100483967579611949223350484546072136535715240162405646879400753356378996963687193475038335435413849309040991561429305337489016774596979239230162550231279149694324538217261441031336195590616835353086867817712191575412702500452886961123961841263170758350488539192463356743106595701468738524448389053027076188183864760361230054452021137282867645891620969482738900473758983325072888379385982631662792209889090760993644744407526206715576529378089479056252851713144775601991226397890798770796706666675836446954406440554771731821815772203817044434377283993583955717527603833730401365486006972924889881867445619940656815098428432032945330745350296412204571074689112514404942541195146653903367140311420010042739360473348523087436096337284465931139473791368670191049407840059640109926941232268302068037202076468345532270411652334129154090871885558924827429311383613504104841751979424005880539884673629482082196336184054649744541553695433749179813272094213926549745276494332650672881229488854681150174280809214446656714212139540929835505337573233077166456655215231074735946061097988977436880138593735745311724813501078732061568807051100267639794399994478103302814051180887838264858330195331598265034160664988957330769049624920446550869095417320632593707027405901146713467194290746417757152807651566647455687923401694027007622555153254359220601580521171786079172929956645962920000502371975021761909820008513321257224427695220026168145371785480817533076607673272226027530584860449852182347245449394885180538650164170082597672641583327734435792953364531163183522574319211143731123494058208509457974690922358639697896874853021911027853305186136988612076909984326877021982136494426378837744016044058955869663902340769440815102363037928142702419388602065845916380474972705607238224970385709278391515869275875463486004704737461429840059784621688451629941522898839240408610017481783602334030243161611721136462720933827478043063560501238400350850074223513669912426488184004348958687681845331816064888019303202358242229981040203914445327333277587656662878750485644808890275966037619647663720660590406682446918176128630902720711000897868519803981018325108001194302577092996562994951898289061930173008078937015434803541696489878579258224090790770444012482205618076687054356000913115532519220427586898174403498043872879205807955936645302561622724059636670063683291024454838012146579470862146304743965799194917518692510123802488841697515972237899245828872114600119482968290866318427338596856947371874515211858715949958530626777166192799875585186020768913660912946278482724314126287264097763036567955987562683320363907519428778153991927154294143459727687690760105692734856249062974147927644865161606782608491915652133667049365665895098105057793524793040947971967301251143244289386615221297107938644423115296750402487101592392661363010013726850776226055714887641520760881919738539718540962948160327830687505848544114652815839637902193881641369882826358917984837959193675460130401757184881723355648985811940728092598799425287406718434646369388477595835681238292443570862866292889279232912798673031440591331229578512547325206476718948573109566685373173903088630583211596063800202335981724692068813146392838796686582427619285371534302144696748990180071938180652610501970899056359236175166813891294412051915253282414138085010479570012146015959152577247587084586310421457805272090557390596034855102906171958482320144829514891739389002317379700228334262806371774812702682178644902203011995047395406631914547244958364894369803935711147473849393864462199571891170194521122749828326438672806287012748295234397462133044272661527115081299134004417651026506825385863135058506821753458561343860503807401683808844302089453565920964128875367261320163973797456116014971828439808820833183498688029305478397391192801455224296427232144479132211198256011033969071410136268662718889437469723348155414699017658498751419839962216378508154546471465626958891168093346655772678866751259394191094158775024730007260187251460907711269555490842548563047059296600680333799306458730590588714384099831416539635035400411159206228552171347860390293509911838921777570035027203166961944907294766730490620758513867778538709998258418382916611858588271251413912580395540894163060295809472689029867125326409007983304700927195400397574840634681846777458380072837740158854803439706360459646385167369698440361759774528229409143419243891832019125257573072302491384820269010508943740200007276160423523184408019385918195987247488120786429143318434364338322498568185411722998071408907201811633914265159946472681230211454357528056434534907532268035564600781838625566272289043885445738842833635000535278320353281527103006388394402549560194738738655972560864236020780536038729139181896919112982531279273399350214719184468179401182179941257068604573116542955272786285005523871455314121142712107340591301999165052606303777146634826972640440159385183632757258164732785340201519667641308609258123147063718239685164594846208992906808043915794798621894493745558635534970904954973610383152416166811940697948246190024561875763558897978139148681609125360010116349269986858845686233564285137648429859607191105213289475482738069633492021687672177012830355212940167911731718623760551281594104913289642271229587755994953164853717843887605029638045931058833945968196659235602959903165113944116165418324513028693572902882978924982982793543880306943438680110807527890435460474909668971343346537652627316793314779735034458650667210458141337008592827268748715768039861788705402154468176309535695473284965471734732522029270515896018488090306223287345756719248126867851640628432092565274905038725816001806699964347301739501122441699924987616719975567413570580879037204530944965320940251253059196640238578708657074071680832611935479824269445024206295595846538340156227333348876182267342327962458441640882121237056065574147443395766381361703031360923237343339074245559437714681316852798928384511574646006997716678656217782318588784966173322774736147342087185023315861249599847372062885568631313660258151505200872229482194783237674689524137821794751259971589335502423250071733664865629325857374646885818992985210893706294303472406882695850725060688105250990556544484472846224931074012322526586150720150987373203573624023029916848406373090504554295376392930587518157454180119874580365091201712962537697749075141460768607623161073189445180444786283304911584870658504699066214899693586694279253204107195660783396508202505652759259623113238949461508853737350224807564985596410554805008815775505044194842657872328385910424939321646776257331020829511752888066806351150271833224095719389086799099386877326860812653465608006552975502629622880031060947195464101344015977431586576368297375795715174886959358590426138926755388518944850063341404464577871219201399373484606233485198459275743214961381943022013270967644641135092017525430152814926006599588134704205756409482532700933681547757087992681150181566898356499716256934033238868795886535573402839083223165530020707696404047379044175352452871981076910795018830336244726539251438969366501803659297942968895393992925827369141937215260538357543780850735004260349224865641083219470088981528515214303341110733321467781833259463898644838702477265706046718621142002577659008526571683908500342392509678895376715055509632416657800157371392033444800135481127118267665382887336458385070668789839923314363368334357471331455828617485500258022947525094027378546304475401773293950266967973642015719684532165683418114767164622003485412180512631895503096920283977248546852992288769247401040187360491682723315642422355022285393006961524729829420259931142088110456188635951306776816292435115436405883587186994894227908977876960450536948056934056519265158370704641381344093421449258243088518929239734892344767999058070318398112167212019443437633822220737847674284669782291817522084194851088921747253544902438584732219238346793942903409058224675042689505908139140862529622233252041054940181412402372151092992676676548598039222162742907349960364553990349794630966927135820199402889759413616709103467326888109622786155704596848249044060478660706666834491383446013296640897154091239991664650131811158360744497915583782928427491185054377313228476494871801132190271125511516539991907603162312922634578370221151169304174503327961468938153359564974924846539010731863265616676651725724214266784524034082873192663127279035404400075707450299886895764648458579300037991083687376981203190901037021426795948601052532119178854253452328392743482080047694730318636615317789995494933358237222456930653703077358458314159183850242203935208415543710484130752987386184492324881657976894896184558262936181282703125484046066617227553121676663453383453646605505482796672676284568344346066317969064821010262873039785452967638443675702190473325775176378516612642099932512664226787851948560772598158544364800983782195505421221414863262046785561912179855052410281262110905995474971084683683290754979222364787343486463929869440962268057406343012531154037868327744606825504775122966832273125079013142739118770105553955882342198807156297305174028334004730845324639229294558850289020410276774982007424863586460793638073399460235472409216099796497574922892896378340796982276167072419471603479010962271658410296010544775898152422851216286651780009986651157154887887696225478334146627964328135731788713713292430254687748527999637084026894385281047197577485433451568724485941977220004418332417129421866746166432585087823977207400259368667504324628690751117072801229618360228057180305169859009299280109469750148034360028960812351706587392055697276311491428204210804062545270269368720050674864965921988976279720476244237453422680420531295721196410902548615079903766839592089334524508049449977788467052574807299468337840955614839215704642135628160020901220054587639495541622219019321056349888065261544928676515503517906130576866727605855115357423324323050054101687220047979634913015670944838913550425540176955432015376922356237610517097091344097602697918573841439508737741703041892215557597229861695734148856895131649665170094860070450213989222281265789145338012835445982588474709024055640241828467056757823718056249047029511357677631276106017045331145907820688996650277284382316004161998782987534759837615715089334988909916863397946378822465146940575037510052528093292083808250701845917354889432638685574492003700047757415011989701682654503504302479523299205139394809083028326026246068677887480848361044569012593838978348487207382623146618494990109054668957795629483679373743967328396837197261918857490694205558812735028941000775546348608458320036916698387392902041512279224323635209420873501476424170158740502723577324996265523095842304600290642177673574408570896825627308121136614435336561718759450796267911293242036668995265560191216008328725570298617372996133926831165228646904770794424508504972002962313374016987464469485662315402019375731018731545105329646668382940784438545354755418789264003988970348640764959161302747777355002753431496901783177429912051505101942803038778246234135184791655552053120104132284714202296877793138293437228783798067600558539948668179578791854583582719267408203663425856602421216629783043793530531631879993080797243650850490204860353418033416550485330229663845528575199376306757844526944811062989507802620359959127593753755004117145736681964853025278793193157380746706773098399759100407864825604824943281316535211015108573400010199579578363774229153152894662850017474258416245460918116879837841004813358824795962358176507077608428203911020865532419740625157103265796061606567306967523635244147923161118330236611038777193999631133261102078514640147402252373227304891911429118746313171576266436752691237533430080908638508089367393070258039401478969296048622079372605574408222100950105936249200753155791368259976239320883776565880187223191439625387690752913084753259425993353019016217438103083028159126091742201948506921020557285320524444671033304685151697502885436348504846190052817615916877314489592580942376637454085808802462554285891362109191405632937410669444911769181772521263020415025843032722109393158288647238754916143201363041206002641905265188180821139906017420741499247371777747367120863378720970742647747913165958182394511728347087068900491403517411571916671100993007342669015736843686083343830293119624944667390632101918532865115926600564925414605252562111005279985221714392982854184200897942775696072135268538825237527399500451097861444254658902331092243930638178464290911576196982697589377603419662367408911887368829299492021770993583091376356721176773182368463502649428921072923773661989737881059985075197904459990453021278600357279803951471315071092989831378676661830341980991734027163770745782298163507728745904801593616348298574695051965592972748138824843108271410298067395108427713730254371554195408377898630908562263253855425349215414487118397851348387229279170363407284989565727706572163362880432793340445336349742160126539624085572559195717019083376182078880003109788102380084412204429095552749690159132119030852811638208503328718680367291992481179236071812726297362264637218756966151636086577125731733645363412920395285227326771806161628215745272811065291316773822656738354983582195900964242878737737662718433552918963422133818480333643066671825865709555121736814968506569089902283250808314304219328819927285303620384232847232751498911331752188049791339987117368100753190863323585580170803934788967928923767278979763348345026216769477353792070936871892184164266344950550166910335170954804504317362056171744562431259188512007429887351693989825322700379842712295667489608224261626034527917390831535121772104561466561791851183024961964369469420313248830552863905121075067144675455977937305674001905327215915442378871032072463548479074348676145716558706950287784212215927942375945057331229744409890521417921480765424065057883817015562800048692506346411594363028309843835432782413054680148993688960960546642723556340188858789707266004700211883174580215340529610284867147801946178540733189236650160823442247085638687631621247697687332600585183228216122353951225610506100160224363569854640244248947332495096889138111574336324051063904367490011625181491180868464729006285876466561484476561874617554273204543609714495377911789743134880257662354326935252072017301412867216180534446493849070207873172184266345315566766111830255045111098186196195369301019708990970406385288334798102406054669559730702891693826046698206672522138756993520923365027499504413633182162002367955578469671496326731023446673221488873788067773982941516900879092202478140069802516061036340450580000827442676193376423832912765634034510439701021070369610590541218084790430120877126884746765528345716209377047048397904278158210988874817563428819872905041760416293797862479055499738077046237108540864362009777683671270449620437036910495456860687947404032327300061376400214593527013007459025471344441292187208482216841600319595637269504956905893202035612148362497512424784955950531815893105768311867510304445589557324636687246847395466977667548019081925072381621835765027351318757832796618036157907841485193406240557216554033201633828763833484314727714783658303076221758889869709871707580820754408160509508312694511062534360174560291469067109697488403144382799911196821364906888583561125855377037892231689830073600878302454013999438591996802602652968962658876445903125926039440258735550046469338459222583129814765432143906480648120993106921077655523304920028925761871755973049643302067956449749090733012359023556324487741218583214339562083673243003262674502462115547147163966900878836218292419867046517451770534274906371118700838610979929518629496365662714191912929378035270844192335038420848855125055024440766110195458085628166668844612568761136031871239077004872790908552743660744106668596946947548381854791689119631404169125979930073932002049490626993675348750175290107431161602287883463872684590003543720823493247561118024780286979462523915558703160397048107834577388245554945925900358363852428864442621815043594968997715283292483422554582211446300354126459744551406049500473073056273025131518885029502181948806299341921838740331364543602793630362166688045094333767067476932962985637521459773984634731538882807786752295656299043948901839894868990894131557611442236415167422467331899228357556660460017760905312340147818800259006881512433990546486924968144431502671155618270744836348594618197610174360353237321988908862800343661209699377800584711411543432081827886104530512012470680565141987879205819929585535158720934307036784833399868411809970784518436554892081640510566108074764818438794933812690093322459963298551952078439317754366165351400225621697352412912960691879729449197447405347029700433783271104513460427433690478079299965206524878304050386074040240102608824661512790468165455591149672774085495994482652042168281719360931021763152102499966543451885529302710907535018708416488390475680810362241331862180969876659036565219924788884109635004200562194890360237313142799524010216801561172214555396552794068404066638064807786151082974082249443162171660227727463230868947769066582485785382997512787623051800978537876179073519785478182615460862043037456628543604906209394660531660279002629169172130387871461813244459613085336959383700498156709732446556041329683701983998675492903379212986086087112255068043687349264506564664384798714784535866743666083047287955595145238149990643264946557658205132623340620385881181537933836908084601940782728863875840217319721136889119196813923943733470682587872896337416578255890240051888326091028553335839284363965874517148020507379488936501415671062719677597239192244819010476449908308268287759548527613902185439468943422464498814200661089971906370170359826190708896732693402850801336050110030200379894075562132889768108268244822046924370377258152791054913529464989104069864629310226215000129605093494362099102520399084488181124056441039246128846110528529253570286037311422835749009949003622478018517993971970048474335297126666086327491930761873977918089009876107371254932439211801448208169916812962719221509198431969843551494998785687920668373657359292330930391646423471691215659509922158103968147072969572486971643332715446829254439190555678037196126279240450870145670342457390311954758783986020526893103572116261826426728965932262824560243532565422931476173285149991942677133444370025388339756171115683140653852974657532695419329582118316539054479580018950336326545029857198905522402787583177760503563737113411273199401575690479266092696793134824975378896379683612896639690327354214922461710299174253030846385354087292860846995848978060182093197522377867200683799919920536628025464251934035763888836685238627861315513855135628874427385257876310181687847342147160650587453925390744537808467955542908934858496747088024191977961605671894008088775887589200353781017521458576149166170327682835325335700521598580233373224309710906059907888766157196465524597657899045757007858253464569287827052048448765893149462099735805190976706996466048616176319707158074934929210586560325956252765432266493983318122904322069021570226420509264672826075053283259229340427991247418906872010226345100234893997804965152835019201223555397587564377562239281859155755596496838256012286213552685414432810304225426204308635161372036577075677391360820395965226168950389637855832192704551750444926134541549241358178556636395942023424056286286322386765307926706608283109617865515227643998019769849736893620614644581067328879804697444762979472682680734235025567147534168142604184536208824814718518111129239097090245447455085752516991842723443820483638910101217376360716549340385164351834085202297886532758408196099221457391824378032071434189947791162167847156067082917730676768373157275850023798126134814488362342449481855286673842065031758770660265053584021344576748707659692499630504192675468834742721394738783520869447973951117208281316413116949114112687740787209034846259753219220933771832291144587689531910274528922324228083401022889206890131865889443269285346307071378227873083538651043435849695831165561773003491340880957079855069312888757073992241874239499061632456577810907190049522289367691723809964026354340852859283004716679770691272698787726794043843229473612579807530316361303679915913750349002285905364866056263049481137573336329156929163195013380046992174348770896206508544286092303290587979964004482902522079025113687746556810502817628065143237855267648802479479780571093327707373595085853254832078570611605967663146726160169995317764601882179445000398977267285515866818646581499864572708913785234229330254203139228613232492400370047668630341195681619396133062595641646816522661247875662342159591758355199981185372915029069914373539574057360928427963756142795560111019691521357119596018975735989237283907252159272734778569035333207112253794976676437317232605117121531689118239094070872112432120098026284559645702812746619238653945561301138844275393355011941722837952524306522930092167533172544683206388094313060473322827370018348190220864927028609966682383769495052137357421005566959592863227540557016809225997947302739131607465123686837624796811782285705461617830492659343884811401423237837990145984065049099930308325532609178279367661218411104966654038600051899516580475681890573572721222923859312654316594131051721694752660915498255184778345589853877580656231360773398729187502869597733825552144772073644601783593139449399337436928061300743383153207194944569461735792301953433795991234841374370190230842640548878858023828395624270819391651793152590219127106806230045139279147029016528717136629573267859333962163559958790315629069572029955884159408408276701261197971398122383564278771346423413761145433559147584973141750947968103853318378492306616274957157980204506900644618566859392945179189469235508244147877070942908372170441744282541352020327161971711308045396134508949184502200558643447555464497359964267980565164901986471990912646112290856949092687499238688643178069454441580484902460736794470106613441390416247414279066655453923111159118655180117363240580894257838462318585751058002618428945345042498570114090553157287728014792720903292986132363077114106145696251026328556768038637522310304606951655969526943919227490938197193554936804490935844439711667706764901476747407718083398685769928862895324187723622322573371719723088206629523879119148883323832800919422758807387976862326797849068621284662306748923424776419126465721125068788111119214167433935529022779006896066708422706917104162239449241741497039002389390146228068497646759817582283711586061728569707980289038184775496454868911965570976503430798894271707845961450986234617538940918600946642729372046289569094764898435932844951054007352047465734844076077708711585860290956609060860216599950423407008853931557068199580452658319075823815795492553804105602452177597866329566698928628043819122230740185784511805688218633462254396617191735747769609947028227189337360134959510726248020130661004858821876271277218177238753286121608429479942608443900784105732105386351762566742684180642241235347328080853134741942997289743233246315437698609241316034577347894954898807470477564100918760160297075495791270543062026145288510670140184643585730971275673720168700998010781460905216262233882222263109051218644094958435784131095623751494857016505881529840310586586079487473126591709054241917290009677761247851938059554026332710704595336502413801093335774077835184798149676267407832877086492164615195020836736718740579972317851943795495396423416772303226585815213404205317676897343332499748821081347504970060201834478364744166262974838170199947896721152569604233891585042678199060507106364176432672004059454909152164342461023142997248805093448106974572814131079791532324150577536421228475517568966684106137485482610266201822168667844703943648540383493801388122791551607772815855064613157122900307349741166098237684668343773209795971978196898391290993792126783990159655295796136964957576198314188742143667744201652431276269971340523894819898123283267357232972708744458993991337307647844629794857204536484544539390803287933712755409305045501171620287114591317705555235988966783624670336934429203007499071058957474529124631366239867416172922787392503600681012612644345310191665114742277686311923315731540036054721580134975481873989597799266440204238434409921289300567910439956538562570892893508693997514915789649364054034238809374160118298762542419743612840126670010761387720743345851076655843984566789839260363124079678440571414323040616107842445605038360406943139819223062354639200136945277560188337050938022055082820765393394920124115232117761161161211561820378992711382883857488310371267260745283741788466962054844146558126659159340018693410652506020425135909266017991062703508866790524582600990396862315674071837613572299942738748022583691516982550257944964527800246165841506657974245382230749844573496039129981073839579499085000956583711602582511510724858025786721203689515087224161727309273590561835565880577781250663857570680204722930805585625155330917528128325409861707188612116642765696941664232265413590132296617633545001493349776498025991189756874917664624467645470997249897542014660509081694102740536152457358294030088710315250253326252097774153328592031959307486123510236140684476989076814367814299967222944807336984875829822982816121982168597601172535103604847445696874238646934247145873179167235722852877504819997210498418785413463038626724105550293522643867139397567359532710030572697596085637051495790467723274597694175041255657026526150386957657404411393453128532434953330455116068927158246143514190325465418557610721143829957812229442940374211160669440317404948803307804113925526041922617220189034135725735039742387900053450857514665484522744944433531082768593976181348503885825560487795765756747042014572892383266831829709867411118045796646393901759004442584960511909796841853715321163220526446114605348367825272152832853528450398511749467605840059769943474785736878140162870036015293323025399621590603903701162996520363984589934293806200313414336328060955883248260213574297137338856456030555042823469121778004083831241261883185185291248008222064818706976266275478213613038083868763989122689398367589127957571758628964444362430820201275094846544775956914762950676704856965492527015137906527479243137289556816272747372687417165438489815596028238633707074860889379895664542093379997791018653242576021476770467556331299039750388615258922300662311042892423147353736671115098455006192956890085013024647378836985462167959440351684264167351461205023958637585689433511852913025683255718259420482857018276175196881776212661129131386062391157808030274209665621571964695381995114686008443566770238203062840562151315230847513596697900860253653699430414393614844046255296260887426905541452624728898613981757052547074923483783598463440777534744654261944583056283844080451904106898912391380431053506148057515811164656738146959870944452569108942040378777084106361973306251638176174146005259169839509890249333837189675582748848994542561209500518038578951108205057036757209264663377101212846474156654574708118296416707601888490153144428498021532047288838497804453970706944205378898544880882798623712785489083168195266982187040290782875317741188764086027021481657884345862645921084684696169410050919987929719617005372478974192563225992646669619573292946739327489347704708002548333001435014872174961497241947960164535721857926001738237682367174241387386373704354008837781396275530787049322658165977662327152095120619853574272355619957320013012923490533378568149728324986048961044117382053074333885496009286069105652749063595179122101110055774669155620240513741177788513286402201324735502183911022124004594401633909645738996309457514626834874147739523649217528825072847097359301155954410421694387899294585341430484178461007434944082118074424225012418816108108298977765503816224248287902380818377331633527571425581309294254231081620625680400161846916906780175960447385644844450169668296218289089902283496554417626213059543903817872475160882865556597599049652230916130887300203638578072721468794999050194699907277931656072773470465391890482910163075962943968190623916078150162950496142404879447230431815986988630307887770517950427345685577658423254511197971204066150741950534945992402373725310753856872168099835569984555375540842170024453110507481787877708687028684622798914876036543239625870676786688651188829621460718294504897678673975002813631777148008045537124784895744223404914134090930909430855730720996337620681956030511391267285662377332544164353940262524033364055477158622239731288802312505251465082530550744084962916360394208918349974090265540451828727043487021327846895065291253007431703061962588061540246165447307583874676288123685708495500933583891551839246787225284972018864939667362945967504708281890348957406317778638963882912514532430309417757560223094862968639485436024919671680439524691561939099420516488381990327887442231299328490800648452293206706323028821127692660020631855989119743121424204327982084554522453334858868999224608280063152986552214425994818799883799162019559915315233380520773871470698543034519856214280175297321608128599179028730025523165445026331390184591028936466485603200415600616485995571823300663294144305819004768842940982631266020477519851467325305117732053106040899979222227241838714379148927487314045991621838537023860441607104613871072391415909422542438184065590009570009304409711936313719611288119463375289262528651285227292784814072319238123173508090372798366956787293498978320505304652104462612339623434697049752021053688428412509951073360850196669693472567576534686306800784553449767017398000001521396407268887805935088835962180083934560967624464404231231144976515545313205874180386832661867050329384198208899990037131332165128595349023939959778872602122775739312551421197925191499162633001869736904338186503014922863590925365667431596308463497966908653761851421528108993820003103815175642225741968778441590529940864501868790505340500848891362284329334523327670515334628061011612652400026411317622687513540843325098374394767048868528946529961837152140086270443901901247661830296074560840041800588421333880439153385934811602060666256832246790317728300973276060760737701929852716819335067522886712119252253706163255386806476549619975765083857921288720958783563344612117934559565027407013008929753265236625271901618905258710115085801651880736971232189655652405715802750521625241372799025100724265452836205405103630268205016362500207060632800071977106344913295427763327664417802283163043050764592768269475821973247356029685401794609207913308458607376049193252950527158191038245485424730406602242865760082203121652705940152989647496896251660920370562108612531880212367061467475730159618499458414796176541292075986745304689452166764241900115147710167745766559271685573903885225913068311822214943651386217529758071328609499219398140713975753366057187487823147711074151488466649314676261472582929213351437780296521841726199606382989265064248473003014091408281888752610785744419109940704113948923878709223596556016224515838934904317066957182044636054990826294346985386369736431415592379993466109955455094866926749575277998191058340170472455926362866339645714136809867707168263350332555067615701450685218656933135285839204457814583277351444254356407696789019203037221910337839021247863649153972849204447661981607606583803581231067212149965743520795365919745075159504135466478654497336453216878933464738869184637171339939409095035710487518104973127523061121323604194023044853970366662675875732750038895107273248141088056865903875549545259752787043826592469158651689576969996027545057411536744665171375788885001910766487357581532166850251471832217106116045749991023930388781672077519164996782698597974688747536261598979324916229955454880313693808832600750761426000872650259896956898356139224525935091352408545557641901863081170274068065937154038147968478735120004036141194124328970298853931227603190113928830134132214062513267046877529636049031580409896752061662998427998690091421750776246532350407590926954979297834341590079024731775575753808104449552020909456718170932439677971376554366586502135744133334644019687684925460624539900018253889779108924616280756375267699498247924563247178962473263665601660922400621308454701403412141883518168434674020308000181921984265993505505388900963233038592226735291958174796566945361908474015723173159493511544282823691491003363898061163599712721841094864172583502291165483915837181577099209248824157714438483673991378828966160434364770983742740363134484810838699474162632720810641231545651047008995490494711631122418882665451905873084990362098311728456231517872142698365649994888964075117793074304072897316049080929831442125329181634732850297954386270608394014769480983555340613804498650345055685061385622721203998739557432623044912923634720199882936109778878248527832455180159713681709847963232128218683882284986910025555616498601702799349461878432662855879198703994600948485194470544860765881158685890560645324120704468188157144033848936638165017677492936466666491029344868007912854516404835615186272143815507521977954102811163619879727334982525860313533607962050536503094293329464167721444600136304856910853861601018791918050986750095522863843784084952066426488214266226803694926443301350542959037973527809097443003585210770204800978303321251768613103460398747704574596779122602889054132215449750454007451418324610600760677278208531635820888863144261079452507570181065462971147898457700096137120010326605860572846950445779218155574837444510913950619925862202040230920963381940733850809075196728556279854261458183656892160867440157567235371258745556008092372514815861464148222948604670991544391524985090688721367337275895927167638029756510416326841338611208534057415085938798757783289900727619005981660055691065799648167177125583192668059934033647322446605874165359041743084043030221605963495732681612685315849738261383314289268261247840555766538301564641550568921201056283776397169966899200342103407073963385277406027257928981528639809244941210143567748714199908499898543860025139628854104936700719831957004206896828059816993237362381083307447330671668562207388526733130917954884262746926622313707013062714900407403297057666160059323469115481778731392005142803388261887052880829072103499794751844550799292158201822379760354721607008917755270116817976449434514836906561146542712427584455172446300059331917046170157485526621912686371728087912994055307241715311267139905181468705576071787255301858122416063293801092665576522902992884729163258336681592024757544919296618610215910266222658792754565197169547245990203581029283107107154086828292431023137845842578364899688320980800860687707459792562310257907355727167401410340646397038634876602671955049740882615058162146511961108029731791568045765521379928774028303769718301011236138196932314691221237291726537688318696145010954834756721243750534967265692505690990086736827135995834376330751814716049222622048090373353344367826899451853855961388450330680562438724557695317067385263148663945116940501329832259403337032526951984219667545115222407344782931780454188708428703369806015115922620621357260267722603900650123038762073933321798494290877267742094600735243200910907096558826554056140508516559742645495700284688999078078720402125685939790736151936267535846437920808460562490977466148255755853487226275655172874570453486692780874980115696601406743395210279021689638999845497116129357862884914524294525708186684532603187965855097575136895078090304299608216301702638824018854678787790866128007278314386301273419399650123559895147757810811294362749360615301377749711911887491748898578198416867785382075721483238955286521146822038265644897275819853679742182276682527165669913399382722290548858589347445397346483498553988843954624927924826383141062619836237575087671072692175529633653345444950559661123784815375192691412844267644212969697671479064174587512014304189844057581494059763530476953849556536295461960670458659975242186979313471270817483233594714938396505474816862659553246721596296363701690683376658208128432367374895218618238801526032925378634959756542649923072118694251641355970096756247939195400535283340260724255978122189100857147100343125934369810366322315623599826879516337473119321203054184541462434324561671983319861790034004170094535420525223438190580784952825227426856672259528904665694307320512101669894886532960480628347568257198675731937257266342827292980635864234290929427336823601768133701343785881718834215970926585717803715232347029226716321889697507086960624184368989853045536422206573398636741695488071645637997204788058092389184356440011820666551354106462239534584968613070420972567216351506679941126973378281661749947244972830394644261063718777914975994673691379187345948104284931391409439362951039230048708505083579894975431901660188256801286769128985401787608519398180249448393904751916913613526053023250004889871857161447060318231528703518811056041606778125921546648304378639369606094948250489535141915102059270208018803309884753062334035302414536098591851973716861653849925088143995243031258162493797347888244496402719344972029539893524562203766282437718097155897236924413553545638215196903436458453522059009925487935369770740909044970952870621217457296887631739168114387346439531617322093644073239739202474045892763039471703062690356754995250700576203141665104419220317387763549099674839187438611603021519999833979889034241017024920096739397090071018613938639293910328739144007366608840872594431011532171454090174659239224781866271117362232696894400494048956311530522981875228816076171514727500130522012309159323483017186206836219853329590458301171512444149748388876183348467036920639209813498680698089799759221831723295879900409026580032686055832408002946285330208519700262843416403582523234677375565942442774641985089901889174713715529011787671775991273312720944758684476880303116602447905807518244142576268807373427740944455955876333338550396144663388589125460406977202185460937607031565409414964976431174462606174847536403958186528811050597620813606997385338418643913026803870408668333466179106984130675793236584727563741046513643416322370752038016746457757181429613072891563722802012380330966911263989955808770437310356301565833788700299335008003021372417946202647742901233746897103651107238643114261690581559736609388816443307856073299396266011773273182426154430612046149586580272239943368475285833101319185207762760388203572673520199923140154268100768434982522709628293050632967531734821473591686188563438191398234899594732963688541928576871103463547214714728128032910861713933344658444908337846970408318935580416448607847955529476724997193144990601844946246631859389187372531831358864781947519030448509410252840480558396116188415936630399981883305922267312956977695667618191383346693215136927351872884515270625502677420572828799470705801175690948193203331418546697404456971895087572852831695710939098288713297628388056411653811726840066846643787219278847924398697666079548701286295293274020499606013624410533708907018129130588776069891881074151307651047363731629548786845937072524030226549599048619670281523280136867582840537788874882363451369154985105599402236457181237707815398984014710579606482673396511750099859088521990707898785753951928336098834173875078749596863062080435589986131469381395850766986133628111870400053704559725635186131575216886776187241418388889627398875419628694350982626625146814844357211925556584141568507997772242600737319807016390371886374203912218208030675498174354417660848204176544348816681078801796700108783505484944089605307450168278459345496827565745468946459007610194143361379242599948711823059107127062701519369388418033977149476628585059463921206281612808639407996534226520559805748593807564759206070018990598318586544541959004785112600895545460758082275109657146036277318788175550663123718222094235201300964309289861970258580147851732872791580582988094674735363327330782941991377006973048079126193224796998610691286073011455918823875052508450305589882539243440873230200930665949946903815417009190473391787852571236868475457484139532225233040754698888773422952552765868909810035978489118458566772774359170575546236471939360326494309330416575314161604192453767804206585478182304127742166966980936886781052920564451586837171310592859410404557214233447781770967000257401324809533937476945526734397755648428073173452021899456144874232212305541539223382820252630413383670211986279092904239944977830848870546054372103293895057106759548986543472204157342052122981481353187344877131976159684375341493637309520849630168610528355051980458597695590306739361721334764267499864508951295997761557061639436455353859432854419671060465280985410021949734819225752517727393206205489988986329012853614945450209483252871207352347608179693365556438390291125100499417443095005051127818160707589132430221399143955734316231557969305466163712813121121946017125732858690489208159224247881447089182226305029482717729326897164883625294775389888111304348316439714335291252555819573450256184902422397763556453440265200920571591077963792215338787511694259769957725442518642529304136778397982942221671648739306009700096532164885818302357564326315931335169982907167031719611312281072365702822388386217458846960577095939087728152989070638582447295317703498285545144905793562108532174307064914942345055796830929340999024283089080553536141334269513956627817717449205766867169921732444357998016956160082421361878970680421671178862278049364646960540210513237978338845123273923208690393903958546429800736495043785589118971010253022939964589117229471580883955795187707905903118841350396225984603938516589617897325396015998726343128013625877009020135941196586761659490346673327048384607001733718798024863156210639098236905267207327763650469879355616675632900954563532807891060943309491323822841540537389623213496261588475446260332715089268844315039182357984683640181126202788901521779078889011687849956065530929680552167818730156145163091906983933361505805779132711170802815983739379427431570234470241780241785204648985910908011556211522863466462082402180947369472767701759987015061933210446850469373473846803116479487509699430044843236453189238032261883895111418841710264210038452053254795338044170255200154484977978575236630088698633838992320145801735689753780765525190942294815530851932698170111746789744878256469192461253532859615398621195651991461350091487156614844774456669926129882130028425128592059480523982483421809817885041733500390937906877938623957593453683713580041626955099715519311721601662402984018284358241808589991428644218316464371045270562139201559645297425261819434593033864144618957929587015661638150180349233905566711144742877823734718325687596884343434419901557090649904290392072055126548509232400598742752954742052630648207504462114286328783394038815219050449723803783438895098401642181533418385341233776002818619150423274890088337600297956435263733978094861364901523398499880157077109773305733660727791963275850023644205791579695609430887274927766866091464903155418503800794886025168058275673325295820370331590282535960676796467991673515094495936513174955422846100683358222919132825894583797470181212342615530648712379653033336220368740374010776654698674656411025558387486662892573633690891931616037757223565204343577345424243048893707468589900966205853494303472789906731829509270473028264480948133412331734155559301208948910582347901595911970631317203790529124911575446968881618567600367510044772624112609723130455797370803341513077401418065829001492010768091803921982110912352146135594158449988044054819844158410441634404594583849578991042710915987019174530356190908699670736617700515105390061910702304438528854888740203469854677067603641426683965062386959753472319763224933686617009017149591694385434269004712201615983326366383205532858824295204343067434944503161511315815896671474701508920905731353763791355173771365015527523158222653306076699593327568561798496591357446939710896031139219295052493498713504216036303695035434564650065514687555214119530443858044895376213092356627219301513058136838933908420567756122085126286289918160044395527248044749433955240561335751415641694442003242671051877045530517250608010553602237881469769922131441143741826059430496873972975873063569212948619746369862701358893485219055159256812137610046717922436143904145827762553511254006851805240480130887353243191666634492569162177241197520773542732784243326771638780754486362320971565377701360358691187043522057446045312138858011081933459128814002538364638451899717147178207828372256246734840945805275596054404035618264458797468083622719907082583703048698491675983480126977505895985496436113253744681958313883848359940508848348521725834964058030697459402902326188110371299207113771096424523373939754785341874423312975818654096047509994422525523418618146606126462013080382413255234995803206722085422973502666910467708269632092111924284774085537050518470793405495746882253201803982373631719945121429503256764540158359914783013928528611851174422523342891814791582036918650782600343962902270413189035724616702110278671711937970778710099402745252019311474780746426169132412379620649673021552782246641682864780572376209187877658430234431842578767026122485203211178609840672563680433258730001215088305220955933424964729297356394441430862800831867738611733417942267844623582215165035194643586570244734137376313524812346868847599750720592756925753258194192009254180016104572168961786146525134444634831145491448080817752141126421504709559232743833857119682066155854049568637693253784966041051809269825534097160436853590616038090642713616140833987434584656261479965412825966255456215980369633196628463238763244897456251725060763298094760353359522744803451275782476869413431194637189602130054021070522181470372754291808880953036220323278916286595696403441108746400034303607948441537116588216350105348078452172530545964355439099993479726526607369499885830145014475698888110605795232465373088566443013139629541645791211024943858242608809603219349049614798347017894280260702400894912207322954017207602960520291169766125176722750048192106873670663184252574065519618628591056689025375062338844999076410169646972591937270902431884214808919389836779597041702935229812167745428440925226143075186035400608839465912278702229892509106578089719122838496141533678419557869694279173528321165372549751998201522496609267216089579206056481914281212410661627800686303825026417911799217475141053789552377374432758475792387440649148782728900807641126126504045074829677774538616280294012271744604428075867130725536624445012335046277690819637985618579039759788763092179707298811035938730868268563104805071935260501007572363143117338485303554409399536801419614012508545723147510263966522692138851837918432589640960713296328759856214995750618562660154849932041605596687476493923935616181946219959759304819543801083610213646776295252577173481357603543962471478321746941729489252029769133809315245673776993960745465701147329972106543050464357610716710121471776574554799514080740612836298962250380213297741552114197089414680412244874097394908853679938371539221887051014377220569486228541603545368514743503178057219463339296090562535782327171554899147296635942506115999814156149158609701526733468067177680163662788558725004704990114198194111050791168298956521178735538260082077240944374285095656316979525429039346687542251221469593830495010344992914516508210109055171013224461668037276751016935464335221917496684917738035259987449256777963827508695088534503953094580281141933968980382486383218514830582513796058165524955544299862648950904113539846247464680069829424360917463926159991605382174264469105637073800024389889815914083221720439906584076884777227831804207953752714872172810099638462282908220043853678122497152152120459651903372455878672981522618387801783935908510777697449085002320841561561871999618207787519031704939502390889508968740455018910696853028857266235860322015140959678251097316267617714667868792997196038334029535756531471143741228131400036062504196274707037283513123956327457465069145583457194773494116547454171151431065106378018870681173914494929691518651209448475314739433179542314747964606823869332613505144478916464912996969996254585698365710771722135447345976768087285316182216204765111520980655822781372066608132836115452838786151710542311787242808989922346549942065833357874856569815116092480038159011300534042828318236313075126485688631166718062880336365885981425178985327357600175159408534318992531637455092477905788399665387459782880399156091503627601306220891516854722005777080880177042672727803192599521446676222482395291928489248760395874386695122833746845747785242848655486678996689923346643608218744262553884780798363918864224708219654811159070041825122758029554806166649948602515628371923982363989718772966350545342087274228830548697085153229953834181685117254389801016071592663699825717080955645141495785007393329545515789379951553720927171584218107766641572752682420308671131008065472357524937669653003679143580963975255691605959445378730981901784622767472324244465325666652509306045909781178117598898434333998271015570329439022481782857809054763133554326922767716127312023944408865279317183289823957727701857969404187040520101422291620484152795059858595901324326747384527306535924758069608577768500945049983197029586494202869747198522959290064497388805021581055131118830562062772452325158608949009449985767444824014104530860521615796453051475788465795550675860824965254408414617589928639133127541392118340588056471372712194634324329950785832834267859533614784171450267307912573519962465708786690858448960102487593451849597976488253325316974437558192179282830754512322302607099155747268638518991592762982599085610681852079968657589870341338974718502645543438114735754983809067882045484298679884580891953018792002882343110871921709970554261415017426951444855542449289486024160274594811620275064975836770143330930250694936522402585564445422393136278456256782209050501964350688062379550931991012620496347915669220361736021147768440992013525974005625256121589340798598325413938973059189933327982905336381563626897374680903360752823027791258073604150996580335705047151386137007609517767981907369001678534881291748896445705309931762773279021141325794584188054851117041845868381607561980994600862176064978947727802869669793404036865312556337372907557702785468055944785497526286893569831484512415331793374394059698409107082955894528055693177287496228996873493700777498332411131374165188672842632193156648295103068692457725996421874259306072748857506269299697562057944800931613389796659044015690680802850121404336970415631259575602299341703390503138303869721697605175384763884167828686263327934351635046809727046586016484180038175524338282618962032785842204372869891119594503374664396538290712837457202293428874782947148508443258211579285443399862094668130878567424279536707154720332892185911796700586649151585772624560814642267472280217197361864275355680151375798861577441421324606589754878307504976917422190951165144191524446190455077627681682177049542989145195834656179613339290871864901413913829564530390701290009840624957684633231836805723433697720673666002388016207576974592399659247132902620521796185567373002598716299715620323359126932570768226626782594820656258827554795934330344502990011806539526342105870327192084279255754752701017916904740345564166861602355394523651527276789282732219242219958057194981242466857078056628565805356028574752491542794088251466630313842178397754157520700352661115928565505978423209544612891183200071879313693141575814712084863006378140348480170257880059881992503542921305861085709023897710835248737892250894306059774803217843323798248863266871657751318738624136423420176368462079177080445808780085756955490815580923286656870236117669479094974699047165238347216087211979163148322866628893896247839453842887115254531251092706231977395188318016051826602798105709926746268319878946117385263564509175413480580873256906690338531032838678895571989407760458897767869773876461715421358697203163256638837662125130749235261286386205572649092748577179512122288844598654959802266068644880106183852087759301714579829814598370825370160224027406633349394524032576354403939895743340573673743522217376904468054189572365878796231845734743743968987496236399760911329748298778707902085869933066826205414419276294626193288593418126376650995162328814290118347412305089880078796638100664143794359522163545811213444396480915061297798745210092093587079351326350980329231045517217562915426790092213565507556923610621803919621604095016323692894462604224213698407252627434411403774479668014671672372224525731746094874586931620060064021487010739582002202167803333401830863850916293447599230705951645567729977619183885179357835428233109412284862272570598819526796509147307810023379457317117985544065105054588039923043239774478791347559223378529650676570433344292068061590883214946951773741748673572247845700716135162340854952193657005484725477151922728543425519281809039698382819272782417935439059341342712417638041454736402396576394034533958037941573268662851057587528746905126840560332011030055883164000549320678011218418262520359791171376220682112431070512498941776059366401558533896931234856598522030546580758213324368375945414844205665731378588352793993487811953846707921284903647516171924989562946170235243806074316714087700903982821805467179972486693777956050997133685959129110869929164346128047732382534102540839875513686853064753287172633859284416505794183502440037767187824883475880016043786320372169161725598944450695510509782056354639403625573020536647687795300749319716079718880004429289426225785733451035389605065614905890621820786839714324776597441516399452729403854493881187418746706734743287497678705605146715222741022735550388058061458210188496415023007193443261548105643824951367887466181451736049174724126424042743766847555346922583419164339649219168177104416591525344448093422419891802833649185284363651516661647285840250314744240668836073560114084925637145715655200411281809921973066962048692278179584976272333795704944966773777343845161634451394635586495716671557771600445162656101380334163175691485213228447868404704339192041772657637858192146295052136704258116163093243761790530845159078259229279700875176579954990254124705277122776550825246565072446310900438620064695848678425946867013722741279758776792995242954957133199054699803376994239353849076156257778820161711215003893203791394275345857279092152730274173995393067715883681264540173947874942932682158570734277850922248179341557168809155688176544471413708583869188539445641793871193307218750294073208365222348143216627867680820621424899858497248176188219401561204377514708745621567302529203364215801165628173407226802496424411202220616357792462156744954224886474163331857009844776793779904528498481838006695360251266832266049666104050802160033607200537174235088642533616781676525249141928035132701488685222389658343324519499274066637866086116074860620344367832751514301847256823157806044335102307735287381747028619578304466088701360591091573162869657363113857329360064238829565978195749998744922784322907103494683266950488447341636534832394393270925133790318034300065236240214315187374162747371861145015455583221245212237563605409628252065032001292400638491356185223709620424802891887558871771143448004550628615443194423382611337140565886457377466521526148077699281256109700062746647468084187136001357620348647289424121627250277531151416253528944607973399967771469190244242246480195778401399882030628610136391411185298224155230097948265542915936359978075120161447377703164275829085020445396873698132725708490138128124207097386700156572885745404291107853836804312392167275369917082472028133318040128388265616139644062504271670127304468637596225564481051531958932401786327506348197819361038919064997228000073598543200839047152542221458948314274082954252509071677087484209526247119947497058609577297595227893753359715320987558893354210489747071634998480346822390622867157242970220571334363614868945991645427238767726991342798049966138064430244411582525600928116220529283368655918962484097317612055676907854064468396276468676950931127069790000138674279466865271839118123821739969409134897449570098785419049711676745953947999274576207029453876605295056666859479290633462516657378515706298985828809397880947720687361394894244703429166615916211921228621796876033303123104257275160164252348584547920255026882129231420835742541047288130561361703921558110599397090379532199659043647526130932982761095235808362317146270454345471269478581722619881058998121973537496879430684230744775575855011649197297820130989334991968090211467895380533083203248282151441103760289489096579995294457703701027467327053243869552838769066412602297384241207587512124887912478748092020112427529984161390052216078065529953762525473741913368007967067299613196866640950493232157059247031716941564670027810318935825755361477440823816491667486374218611463629286028525578039254608131689135031156710867715430163835946223674138521265596772727487036504164393720692502225932128891501236884523143816267149314884101000113665079252074600529356208819650661356239206980627114955755415055468301397062614285885446935840660190994962002324231624647072095103049346695902347550076174360428889652216225009033083822544677920289039211435121804130668618398211187029606904945735657058539161299229548200649884935200911433255668470110253760998992220897910508972498094293151699899879178968913154187386609081035322749413780265474382162234528673589231347251710126830557504860834721219406313960835402561728139705726724176056440041140487581271621111138701710515248370449418263588243436002357308718830504612458346763448272999251103132820901576045922529778316233185231106068269017667525741589197608455408175165380000465057499519370547563183789057405856989938339276535892823485332216732423750120668433277645690989697555192561557081314043807613370885944819989784042141147288958786178350732974669174223236450115384683388697221753166920507242856908957322817887655049199610395956096091143215504759103612075445951618254813443401961719352761194176457559003067473351842870730205485567823005979111563643603360311657159695653545235255181007595244354972602188806634754803980115194333073418669967031672529779421043894811239878120697443974420365267219780612407048079338391978226311627909982515532014216060791856127789538314357213924505758838458524714069682520220305355914380941688527234301641151843458055682237049167911791095952603739534190172564503703674148706091515701105554291307186762895032425719522332874938787570361355336774490992210103665071121616314575171032913442021804289305450297451714852130275591145265980016599346469379058137238611365290153143593733265055540327428206448189075788920412371668477070422288680412615465375777538342646974040705264575577652689989493418459751977817934645654033448381740926203854638165279650580967228358506277674586855508826390412949789747454292958713046195124371255404509148937876901069861816151910777422959878565698528524368499474633816168541941036209286846239349986043107078167709516122334734987887334740719005173266763591078022145056382813614110314527375766849420867006099118369321743399353237774031864186140095098376341938811268766618093360937225022472296408955468950451361247064673574881222793362790962695096503171106198663596669418501064456767206444444714113887093650516109077827428199948764878088537823432516732135793609545308271269682293121713432566199461002162715462636584942556552679138187434041478176749847490920076041306110815424693135268790702620633369448460214337215230808140434815375595560080517713080975867372416859292779604499284717096318325145613729754002281008993694280952500763371360138416809941826408511390782578880685996967011268296815646332506071248423384732478556384437796118868702610697461567061080132132376317628790628115299335307246659500041141851455019706356897611951838945003589075214284338585830925384756051256187118788299337593933987020359287872562229574108813330432448024120963530057316254414995125479804021136333226065870736401548019974229601912844343607416022061827472145861078581687939583208722244145055347169407081347737209897631511270159467588289662477364772805971059261834329650827776655021584721147256677639278220161957215822919925271182155162622030362644919123172601190034781381709433095623295516944262866580185285661583561490339612660132991790743616640183658816911323405424569392619001026482442820100717572872518279643910513979701207307428192173044768304882447419927319748301155405870685727927447368159575246092897001977747996083545894788845379911963888041124134411121343623530004934697669060514501536001774552096677407327841067836432374844850356827216932254046664738952305903218647710722885662585045185110814087185572981360347866537712545713859869194133634163033742429003695710154569847562593183977426030937459919375434994032502266232774724536216162743339159708897803150854850726204083956755756455400846841456982272088960483084769132964375992790406741106935146423355991318814260995695220641412423976196611615581951775328350214951962135042816052203487139730042310965933422446187927827251098731703993410240521775869176800432360157911459473597200834914857375511292239968115278683401202056240194204921359490979039879204094697104364409002912559554711696077123356148425623757325018215615979123825756112095191279448355745970138015128452335245349242596706161403114188697653058200683410120238120906784834077296519857599504784019231117292558587862466534215713456463049795724934202513503894667458278630837791769958890498493600573624550270217263133005193504443033836596763833365097479178072553016419091456423350508370625639854602117039783542806204141676326990170837079340384517617887806209172040734526649423347997981249521619129374555421917659010592644343399844133535546011955260420275225192194825237800788424527229501557279900971669857785667265739178944337329899995574378933588001485161738837806193833330168015868491922386393140716760931352876933126536057851325611242546490723674805611783002772078263010356697723407631035032561046044458732786308734194752477142474468580947046520234539999712498581540150969612410413557641750690614844439228708822631635149610062130446974927279826816155695575298331014529079830291849963913484564308411420387045579350522415841668273758995275024753047779077906672780378382676349396062019660901360842058235299862016472588828143676165815844697468020198489630715464293902317427802470630761318315702279335247269474132349631831630277895540563689067753234347084298570680395051324195486156796820517554037341745520028649536930354733991612220850972307494748101872984320082210400164550427929972233905061360588921271892208484434731026617290936475800479014079807261753012883759172164165392725898466107054547107548413567233608967685210443056909844319458309617727786867351158192599213426957703423542008254494496914522738373665272353838620474749216794909062668709605471123057149258370178224786851853956697785423327018428489062986274595757583938158514989371016019018786599768543797795247034076304636991063718191345182725934805161324052797162169560014286336772127049759830373594438375780363149964009365658238327073709351927333925941378851919351815973712507847869923625589575334154177745835757875172527106456405819193678646335003686803911628619824099204899781731236306067943325124916650888684097345772020730603979575251680941410479137058972187881784531745196141688659686827421098417211696581643732437567169836863824822068324326721847764233851721725796799679380872589909855652707388485393068530957240662535543490074987468379135195550856095401555527147230529762110547601628059595483340633200988001280892252681756497759114418798395206490183287264844052985259834246287658526678422297354643372172966179124984726114323746485262177087383099700758802740016897729047819594351776708734601884194285423443637348070765424095644601272324405660631182780734384649293529944804342817719661723512060837253570620223608418951257210634773384894705526256249782014042270736718565455253917059909666248276047830675601214872406329003997115262975983995311994357085274353458605141335667672502091249501645611057878482392297272618452511741789584385851980572155701125987534131306010677773291834852086937040809423606037215602698598795353099539039719621445449721839234154955593210175763374187601317755732882495280877514274282746958441562094861618465291281483545430637445267412576088933125911948933031050491954327975357785767766525297719258798776286236234354422394788239136143002561945927123161927107935614960187457509204565574521835107092638816777938046019279148243049526960925745751985478704061488350332488790908529665985888651366335586454156427751450896538576738157037736480912268414702944108160406525788363780442299525427646752534967755411233205170677557485947246207984615164165939883573970651711369669663442191562445781566449231798476005947420100391158969614594540045297083002068765405036158362890047352864926888763874733444190262198870429178792235724352231927529800866858306889410368318486711190129433421919014948146892066328599598212365628496579783336204375837363707689780518756150354920847666320831432952152908854597257258115254948566540839422412712736825416565202370896046327760168514817216116153865439906338942023575067741746965403159971252932650513879683463399246679339303993877474627543122583297734255573362079141954593404616093545375647918708627765908981953532339086969714835015804426606271537145144239981687812174050971135359773936966956072493078308206232940321315393414216890786861356421858613215588475853370365636704946240431743403214519088908604127247667066092657838496345031889584899589928459256002398485234279725730083167798155407635078292082660083103310000998335415855015835521050443902182445446246411987004507183779688647137300909936000363835919960998947186466906047395907211611856312722987443487973120234030333599293365048324410414300618199142287233178356709316953430917983303767869705215587502713037625948823547981895184925773785380021235134128647036812045673509536715739822556066832317611670319757591645495966663896200499677152775482866580252493760199243808327490970914176510356306537801623796086863126666499271153947810094610832870179075165933555515993130765148035551197145346010849093490294461175122393269828865304506813953378049585309304900463927578624125646087765228067513712505826557569773238415677021810852995100147866204871841916922099248081702254900665807708330911021410240390912764156598504598282856492532987173516163179122805864511764968670145976046081871213128231350396946612192928531253611602605934213800675002847547876415001943152572167257074098877050710447686118309470225373143615254380843410956677331676419768605459368186041496571789511344710045456890413011852698137977305324366347364238675311858695365668719489633439546705453997084780462688901335545608980510756551431471784933955347163454094885661069489820982811273654269478615596398109690783703755319988754363724549140551609551960281799162627054052500044058724953390822448547638450633852152830584615112751252745040749811114175419821254380779359289584956408397676164126089805593552392044495196310193406359877676234292179477807262512920893911655405761346938134105325705067606918499870690573166269979850849319928266992231492329599649677538177560911567991843161373657785076327074347999687373906553783529994093178610312832697453242520915998411497679489244784558253996555303325130782059753187584263978752738102169987215220989733300498784837635175981980303850941640473950009631266952689675278852359531404892300004284558398271581043733150321850836419842945579264492830562018007041150493961373045044808622430780756304057540464002170695525084351938346007027196403780234756153744546197300000430452375393175574801863514212654913887219808720768653807839558971045523608565970874005273545256081500888721897804460579966671611139142263941439734453824357255330092074996526669252964076746927646973848777142728637719343747139029216411717905734186707359566410252659485177431686128046015449199350094760323946041392793902370200120142196482229874629720640621526832585011317929397231460409060291659427444598731641166819928636425323566827331448105855109729954933756087771502952220769933936481051008783895319141546011071382256768836100439531474973480116371183233069474319180863417238165974253525541542808081051803710320378216368099467806379004060070457047075237990077594066440530397044363110701297318370402814107694814627601445171252920282729245355365579528121095588197816477606323243886325878632137574760080602252355680559269731679270034903234230538657090281824526267457900274003184376842988231007978111066326588119859494321168399359599920480368342059142143240054394001804044420301681114697918441613749692923771767228935771234042352334393198643271632827667063927290478994665055311412377685009633759947536297901417317290148973689047398535343736666506432660474382201461568798992065387683471022601739809052094663236608303102873596346281933466027138424298305679952458964647834518126393403516809873481392599623548134792330760946167170189633827627383258280594228106405281738699982362486034974432681702228781068394363959084317286625289817299197258957241781509089594874585906541188574467908517697568366980548872605510452299183745630974281650992966148516334322345910896278988086480888334135576265809565530831439447146788831759954768375705136777668692774291096463747339242844564654813886575681593216385966292009312294919308937365125147265368824087831163332380220846568510212021517264314708591294047609706612284926804567376087083279203779376772524174672220354964412258727252373890700548249038831640278734673959588805948283951028894126421702328741903702411261468746023010481363135319639808521076797383665821472856978972364273016102047846113788354764915711834853555104681821752584136871278461228295012393839688052820712895698040353055373654782764493547211023396688015607103871606188979425788619455915157902478874937818430132627739315268877656456611066783631905567663308708805416052087614160839973189178971428729474091831458417558736214150788142107903405989598090288121638705126556600044261613210947762521630483681334320520827869371380411662226937050631001505573828048160777945121239717607189861093595053908726009145612756295596603650829955716818659459287500517892625192683721310498605229249538637998138620727763030895036908374372814118813352422711596783485137337363110264723363510699025635249647410622424924453398408704444809092695868495826978065274879983932046717518015140607098567810208650203378725088194269676859660261872570827251554733007130400581217929099610961887857660211957778076515910200003030552790056875139956078353351000423416409059825229391236708283370158429915846244724612846082611785589533885052020971096799731274454636006837337871367335028074725920580026756388119897388523925575429640914662156415262331795057690649564327950931813759320006437273386753626418488006987853646029691334701870874323602524567857174339763510191794338135923497920792715963975654480297117610513084890252848579455235962293035689047522630817585002135796923711356859129206314049790208339255136222717526566420496030872711542055208241601115379556486305705642815431233751403775266984044217858458764758228874127122764907887021080118265906857951631030377738779041501416231454603224959622810602690227948650109028858870149946306055318825668396996856031269490377328110356461838230338103818424978492441609561246197033057268714266578454133095963083635130349912643308386947432811471226258219479794283972209062002820998781333221870132891050943395757784105237076760981362120307444777264721469481869108965672580951803208506082784575340955336728987295079689367835872850636953875018398632457976640322983454775315365390686245413433783051825353116956318662217905256174497484733801711623408971066540097668881316417684636323265696277501002312724611330918458768629366626360617976899197845747245279219488958583530333289330960210539889791231676606663386789118869798053305142619031420389886976997050939142865369928659631275286508734452774449048874461606303660200328448585040043002885806778396706091996163553744839080733393007221333103541081002257938183080451565138589097475794950865425189049759969227974600700100075696475000180248435742827855929495722651700578887492903078299865436035589005184392162369848447850182682667084653606471307189359419581938086892178710527133262276374883704998997541444244449479961135264915531167683510996635354856261572971157084635210959497249500562623855355876026859653474943559224265051173209441437720865377639684377910816626491859757001268226735790800817551629011678484409285988851606726960716284758899517949468335414574117896413542109036731280987452467116904555773644396138207364007805478191950416737325240277429684858099192702683986195333666351653573859550801686374631036075816066157903060376675476897907438199665432917289874305357079857384175794557647519917937627318589614502171845472343101536314773680954533875592409467611440726964753505046491812980053652137219062302268780588424812078844720877836615931613284720202971800002942768025286771390867902483223384126529391103745435050366613869149888895952754354847440470448976795155538293379146546470982431661977075555168037296056579371942866939162878195904705824271808207495139321387590636117046210321809971195793475661905809202621861901711033999700000071750720932608738320323668263012582034125192875901332557354258539190230853509856512029909263567034054606248340200521913868489860817175571234249368387882041524643080473462169149071429862236255312727757836475177098055947429721439975449928479735091166363064450856810130188896366795956004823662810696181103749306524819477497805934928853280794148982079136903014360021012587383736403723057872739680199460000741823746966997855793775893587251511249219039183291790604440161493508067035113477354185180801116923761395544955701576708235339210810736222465474720219872703315507557322247380964539227237541335291590973024292400927108953211205459421257197926915398110502822873212257055277790176246245458569234100561726031981775455190576640015440279130380005584281577943438781544348096151656604894177122064840865073160161529561408332445936569465755843689823699049299906138235918120267310644901469058772539357036113576155879388919567009632990134083442750053110750809050384352911882991497236076744404730955624115286968961202752530083284913425934919600237848255239663249310190368228990518042555058704106363694446966917989539028520367522929491845451747652276685234862546575881028541561971941526270384071482257716200507788866908929202291161869616418491988624826402927590329829308161411573355863132735006802281793074274140838006764464919365148130108085138414226465724785413623546426303139594956316165196305592213334693618464638795405634024215287565178938050900524380875751788435549770994499302787433768224795090637153947307168105527405747098054880543689959489561550017668145474050710717651682216500754362120224153261659227598817579771062913452461009308591677968037792729155065670641173067834705276727701538400053360783967231536942979107969355656853549335191966528031945342063104326912454820041292843179092174401613293379853014918487695667770397663751823596256215418415530083984232711918503203388611331310522190288383917209259326657162641542071478528966246303700442527289960299961494638876089073626588176200336246382234111297111895058974214164294655360109325938711785391571622344496242210624395797027216198551946815862181551733604876898754960368503831165032911666381526108698648054010892768338358105207610141724701023067630167289710255795150160957228095374320376241904212281748698735868365244489198915738237476745493862965023098579811958943878734170922895670975548972849069738290466053404354338203890265295944257078789853361251675022954817484676815925383073300508193777311900048332964689578056379253594896070544494160608413263254140153439605917729084503733331927000842014625865816472812221664239159901196185823251440640535496631441056680509042428908069352053564391927690798519951537906312983356243941454669284111428417777616222924949169643579135200934402439294550943454412995928544867145514049220128608354244490449130808259998419038754032593131128969834055651764522077416813896780132792428904122667914828788136568063428604408801389879850870666530954129415312184645615906142569561608317127583454301486244415355752658982776224418032579294107081175080984379059603917429007325883001351624489605493318421565471761243229033527667352494199501364831810345762268471987347812052361870837698166653784156969711477652619357533072882083155252669409518764697463689132413706470862614706353009592238571681915373451067544496026502152064931009574269252294306082285739266360156135512742751149154446722980651425333990964901446823354768226687848669750855880865270143211487532525391505763679879069547228353556091829350422951609378802396194134439427118830737541522129711984965978568833900789937342597884955314320644544374817039630032665983816888582256099595155574707085275269382875709771480929821459877370890152268525003281978113990962278297376986331818027684618085572401807770901043863432503586041034622238991293788976390834025348159092926382933275256191187384416368016272447593600933811846462170978242841577459233820500140930315597353477778382601551395187930312280422690879921528022621761440683584846924410239221162951622367005016386827528893735402459182222316310469204350065071809405012527686138320660153380245357478099375579561613361048617483796782068904182728099335344032615531898038262238379864751382756042675134616074581623731497245732166519150396180847061058296068091083986504524339928357182599349303891392728991603812424564950132779487815866895734177183420887111209509408872868267357575275034275684718347693093011862963614766041194435138868987055855056971356198306721188547139276859827963094075964969342833316668127807457693604851414769865457465554523634638026541831016678361160953428293471020909482417594001658066919383925905915666534959057617907692320656005440370332476760158636882335587231462412170502277290960380913554646626647502147997307673272137527354545602714908876625620500146414568008266585568742052579609316446048503288542838942663532546427421159386173129139156682937470057990699423732799565018688590792777464592705636883383256922466166017012847434632848963565858667613663222780311589533385557790073198169179627660211652081270283472021638147258831226522574303992390506426936439490179159264491933017640984793825130172991637647122999810558506240789020398706881330986173843878121080204051587135421905044214813013514870105080650708472510907709738591350037681969234371393407259513471937894020012883162198921591614022638749541670364232352451929005880850275763259404967655707552180244979390321746992211355071217585553155863037338163959884729663580815669059017545902845780257049041225696474585236981213166505843686955848531978333302052734669317368112329469753475190442722466651986896913852547143373257198233735038581660887332081869525247781109638938844113797976996534422594089850907662934796442074857327091865994496326124692935634590334958715005365185828438308513474153949657254428136226083720992446536861510662743391685118497517899081972480402349045742708614077576558172568566974322446780741039035941620259183280252483243205253079264454129972457231630527200436870706649930902311692543090082292595035152043406032670694184390919196506866026299428533242320312798770377411694353373145929634429087457829937195996580878671623238793580948653360660911996075438661086887718783377668055051430332376972794073888401763833607504345242497302238865590396847858328166507961248148420237160078634380309377063972894402301729507887354741603578586297723122595397569344477178062086613901332648940498885247382842668147726507241944780967869485051122665823388569098671624804689730393718173384063890584571880251641350254070365583206763051090527005651398124964834751177473842683495034156338606060667773305020950969931323042813520788969751425484344897086009917536671898263140724322109476193796026560972307787299814861633289167855922603601994275738100104170808365966033147417632547564327457538610565308866323464877750151542777016440379910773503723508835841589631153336253489967404631064078546269197431979553800537402944102553838895015366737458115359592766995640589640938417555513540642878140823016069827735162255248656557830315391482859867304975478077242742020883540607808623814188085057585309559255011088482115307501622575731956332275308120422194833268911773779646412847784699938489570437923485711540550791102219268607376600646224092082763451748185599286890790047714977972990077302396082140270928622445394406237017016501397128598823642171711234331615008348450891501077008753763445695957893087295349790593053061637849517075524080566109895743485580606055566239077340134002643890711694517180505633638383365863662621373926396872451107716204776658150430823007433021108325291361245442460670916688910020744535477881415867243130568785057307598261200489848525010349074940067837848721039888213640778828751719914326299984772733090149236323849983798802121445002146976918563039126525756571158875067798841798286954557800794039439230662846796567511260527621624088469111864521446500073360165700455550876710645306218450029154615534925071019894848362355808726757453161142631990443943992702584742729307946567491081771991102243677703222311993422108911482091620877445383619839588924575995793650858922202891972431769467889307432547937983554140623907289611336121933071467569485380706277736510057839069442867447619968764933825348635735195775622158170982622110564029692006695851492539503211109657435308729515149189447771257754927551873060920199918174507606202290988975844895308664376183847355246481666330838226748805969905521749103214304922128708026511451361797813767724686226394675467989364178945892296454186583123414294611434281728611066703956593578767734875677210831096112876785275913768510944095457979896862653516245507565703873193378804022182790282084581378884560605349385679599839781556435051831297478047068081287394193464973952018436274082447200210046109094504107765162569974814252140315010703564201845018538155148869430887328017533341769387449506577297306477835395949217227699829668260361714256049315991760203826943195626745465038884428291095240390967632967180420959121290076957037499055943859792117310999685753858966775333435538826286868528117700171249706627733947814286137858253508441946323686499203607139999990389105513774030226603511768749905504306561411397681039416040311177347529241589124122556242288743558737571570454427007196448248836951101867448397276069035862200651841216690011668228192996073039208455106335520782015885044904432588385800552944488348077288504545586752284261280931165229555224235518201637031666146816624514678623539094101815737637294158204380418182644363920903018436243917000075065356648902668256008107689626945787828540354222004351997624944266775414453556776516754745886711522995868194088986962390392295844019892726781006945323805059606280667944454020597744290739719140847564386294981377527438159087453611831196553651581340152424276598930483828566744379712112879033733586567820567180417424225948146871399362520828646934027526883025605488870170625737395170077296320666326963904504164155376381168227140452769405657621235805680655213230641320345476685301803153913511554874468985138690058533247359044380226485376850645641403061294516501048637295459394576750714457652728359981645634685626282201061126937290091854279743885396228500557610227748613566033445600032379468584262987782156386566481359618505864185802341407623138250522834133160774886258631952940910560955614025371778630326296200804580946956381728919049613351331722952115859553921153824186007498180316128810737176621451632925278097201718646126583326452760961830750176907822991709438319499337016095025751975929317804466011354120408988631013365622071758955791212851763534812022851600515089052143581105056342880939962980408886838339990484294460781399928791581946503110579826538102535795781376898441340033319620864956448146045850562310027805594371272506775384613388627662473874529773499649695413846033049841976101232370802403479675137773939366402916874985116305008298287532780986631701980211023040705423140245830121716286434545885587537466556674133067703435167832902718632407387501536714715541830123118043968135385659176416401612315052732488711907254114254268579675555181276314912147406542637989827077398308198170435784369006758805581272204783219215553596957754699510708919434842373141785026618378103398267717312986752599048812435682095019829625576253768521790355071918474285081765940843983172525455218434093957867211585101618349907592714736235029232633645773218739140508794479892941377426265251920717717568016476353004673645534658997821949458147467908764148821563017708505364706337802586480143210224330791501133362311314255933873202426565780171698345824930342378703158883516394335539456428646052130105327074187395977420836276149036206399098366019871512273920672842667956135758520459944723198420954493568693070137988519405269898927025847395246013057550055698016463152357699285413933044771582193942226623184459475464758934566254022899640944579211090086557321818939887249201799803770106595625423947740112150254200015465714193367432347140624627534492147769286996894948459153694627027270888024888956504785714527942843440356372561997842107329681093840167455340107771679010681892637913173172691803527908555023270783967475861754649592069079491123070989748810266053723892308203817145255898405230071171073371610658083844278763863012521654566471637174548954443550681225948192119853724119177634955300443192387489592069501691219711230852342921909338214263993403918831568815125380670768887070081932398953885269704961997490163696839539119399747222048745106434095074058669401756837278183888534894341250091714091044938911513746398352807782194933130934171737368589663903038395175895649485446842335021331336995261317041235271356331345823690261012703407511960871492854074925004466447556793700791064376210078011355373405161341428680008925984896520096904585128933217569777243422051809788900263555615042350639923149938089931710990311414065509930810834052981880185726977997779779022702851270851880278835978084433681285129711911747028711601843814043808199563501770080345037291738426787327998631331880748194234318781742999987725096899258070878992741204410737394861287295538135556309679959392881202887930341613464872219469981937547153153765184809233642243308371654418602379727386125940030924172216483365404986585217372678143169304638067441319380714487068238387860831377050913167417885799216854732287151274554054638581709412732419484473545447175091456943283653883472202095237525567070994579764470694837024217218015843124392282054711648633003628817189485177461175206306454804138320670505723352386650254241103942834071798106357248315840309828828977834959732087968672360064377509685151380771376371223805845738977874919227933470512125369893205688540271055377592141474641540924877502695080294277087301247560717611385939712533132275238950356850002402280577443813669658650458766433509207657426922190960315219546997428311775309778860286201691765820645672602308138021908725729249751987179177580207772739994804469449469703338156089079724307961508324896063817735480503959109055522288843582805774523235384346842192679496418922675214277378139907260064813332554679064074066140026086029828538884645378663169656823264336007694445033803611681049166396289181347411644652364548407449706918851698135122669134110777085941661207376299856615302774838099609762861196367614886748094544343984657957381330896951067472752426856465814022532982271997708946632664129047918146064198397887744428353375812810646612334205692574861010811097262223837749973118751828539707887000315342011269914421330382170026149449451313143180830853142539525628268501497559615342308547155228915523590907993467029268734881639547329866565171419362974945004463616002172409797454723915895103765939562970295565094726314089791123253799543381824081418080410252159810655548859377550324500246140044386545393126593576752628228277952657492273409176308077155786257335602302366920213645099283766562443994256340613219002114526667030378748751763807340926500104402440999161331627714793048671233088274064318971962648302486706263351513153616258824858779889533738849127149259693746981015862046023447776126257255783872504180795772380332813049775669912243555931414818736828764406362820083934100559900523632421619302585369207432723739422713744098108800874939664366289960060273786109673858356725220375330714092826420031605585502797695228684286008069503435263171575574736595132987175571862140357867831576893320674436138587969799548368002706808922016427707438999207841430764568354456255006126563320337353903052237033408512484183709071136079511901155695873945599423027273812205511268985098205641333815221391532822147424964009958877451086811830547549523231236469545656313052293148398885149651419556841626634417028774254994359267520686092634618550278819225929738975272319841591169099496383777791250712808871447228865989202400871923998839505288218228424331069673265575316883167882602488151135452593206919657346782353253765518210253100186010098068983052460210240060486036765785992877587706782900289516555226680564547048820295397620117808765852856328363882308010541332690026886159038769452299912396810633424802265897174561456466858763933485637260486195570875468848291869536781884621493453795287117175728858315044882367968121270941539664414425982953752993351982183886318893908072172982549054747631652596338084980088021978926991910437631469471242740926720612405089185653993529679232052653797293638806584048486326506437298513758052218123145545623318135818827652771553791230168194420129243121625181010127329356374873425606713569659626504598308765624861434132186233853779262800301457029588133409739930950945130859225864755400485078890863786506173879914667133095905698772052211156612616438869477956144596714886150561405021324128106781101150020645377546374106394202700979713498218706389300950094600396222920472919449823554301994897682230838080257042395224642445000770780806356325497938126045633890233758692437157317219701557998565268640832178115931746913285916749567107112935825284827987418119927370554777731219147494781478175063376380764862596765369403819047648082012065063322085708925065219531468924985938990217989810827949796590685263211184302285194553644051325392460202008992617634909324408305635756982650664855992854772160967439671784001901850216884244489003843454935991600141742506666309470016666267753084665176025758487287982426293147877801189293339010025758000179203391525735721626905497326152926876341979206731525379919339453376472285181519241878959780616869840142875965128458737201004053966831497770377437693668166792380031365095367440961682611064040254812589338351501111758602625162641489661998252745991402614589754659006411812221726217324365870873813245671070511374720073721148814282984500925389948438454822153966684397832118970187711661769557161577379434502470321767929709851495916628061922434249771075609821742502431053685838146968850810968664852872446309241457883775081890095940035712746945770778930993009774862636796749069959399124662354389095899406221558599176061930982789207118037028818087580959946774985950893271727556349588880794711566307386822225669668211741988561078169881474325196775378450510999722897634977177378203656929969643890516893646293161111867055049740257240396405522907371988058004745991077374590756976758316159917242743649070855106982437535681326908832510944724190461160478197488171948209956745626802033559671803973342932395728335595227024675324792278681867176100786414687422597747317829901845438770419025974764016434138055564996174186529513783936058985472736345206965995194416499501088823719865579694261188306145737515436273168517775161280045309525013924124129133746311571352620636532417447395748920090387884024234821183214656448382142530033507127404991098777292863235643647373021774034883282420793508929792615835077923738552835688619487446075052588098868593658809929247736481076868222080528701630172392933922644189145028501851153513431229023010506113268761053271421589866319986614322343716684707319172729165946411975727853682527378516991446887603627513818813879998885061868312931463488299952838078886212744245049465852435337204265552179304367696128153020750996151561401530806315211120905885458838583853684685351025039200658313384677423925877818349553562592645094161937801161778810940289598261771561742399989439420507411978677972329274580542773012235214133930513091991781627568561095891714949466154884622453162305164371778099729965400670417797071151910211201381160433142267209858814706639601739033134329802789338151156395456998649642677914092399837351810087390265950270901894854500939444381409205347986154547675377271584486023114891335603001735361998769303690973069238686660889500335320531310180674849890224541301470720705590061509361081028382058557566283575339810736609133688631147447556611940191307125114120978385616743218817796443452184220714889205647191919055532671682416217175276274447699796064281593520950227883741872340380920386818062207611418646994757071637501197852637569833520810497413399009811484641541842355688463510555246303206136976449947905285143410864097966123691821079151440401962887105739349885501439427355502416863740019468413921319367317388444195548460389887964793124723241130919734394175394650851805844770560548268305374794136728746511865703521822654122752044158382275810246567962287965200198626429413416704531761447782543820693230030421445477476384490470778852078069308850276016915540955719491098993934722217594182041555790604965226589283876182458743137346743232663201976390593307310239576694428033090983349861131208711215767929784052161589849076851210751535344280838816921863592667391588364695910208322132196485088042809350866876579790781574861364611404541470054798625122041403960826078725571040271139479652552886255339262176318184940349866666941530980042838645643323232124061048083675548107658686023188424827686991706138174413545208612905850197655972221682536884832521981531040657204989329774027542518921809744006541896511472164091865317788400187813725022531316341126177600915434977030056374980646125967713705390690702845323668948383976167868723206288265942785743955632948003927367840700769972867095540565861529307682407570579489346342089551155900086556532705791077156279147821013651288965114827209068140864996177981749932321951347624092020596180333082250763212978233314839907833333948337165832332682679936897550162292433824263732285573477417857242687218706975198395787273138509358410136226674873203205448889583635630655106773733253295082529760701036694690479474138909565733033675799086381114880537147263619484072782664322305631244157720611945115709377119621106490466648004146741737367242989206036759113584384301222146285546091888096182632768591437361918704954640816966957846935057107961777124228688169103081041848644722568598803693852613192417610209157358790688235324939749965054765690232844437379427313785164559672704816830442461836548133851207889379671925029190418175544239274703776856145424242122548896159451587715582768216533008730122473635742331476966154483092549680753118464758461039283040558520677843118682397710778861237755722003343447353943904237593625075353452904889795285644422820282426491081214775364812639659281767801435430139759923359440517465266060337973830059033714299030238102250222230227700097711896081837557597572889812274904537910827139076912059698866856704031955369474694465724379850637479636130540817002342250244399055799579860809479554931565831740637324216790757767206787000166483153638718107108617022195938223802936903888455274204924424882752671328739523242886703123073313457968531628191862917045969360310248244156729369544349590821856368622230434978257359461766247663656021979094590854863304164540324745706424631032099535046097378285226106987277104071926578943538768664938059213796505656893938643446513010276363761841159746080872712032263173392066151891919728905943102548423079917113728107711780561323190442399606640899369388027992145930115956097864580166983372227926273997406030935955916394487935572156660630757929559815789613815802743041903691652112934700817426416483091028261254774170290517378567097006760289090664451208323786179111868958391303238679925749470988307603182430567422968204823731878297574670674520811020385247635322010736279659387405625588440279655882028093316820199377562368205572484405250627431360215607737400547579396166536301394285358487049707138740878447808362569787475200540293644348980076620062905994674782759004035882776221015785788667109286816235121362792116269508879135007478884527080490784207666543604400805841328198388586401448520790946701272012736416327072062857890220000840337011097223796521932742888156063767246832550204916654033670331876126399605340687646596619795720303279849140966400507012479032327535937802009527699538401018005446654679729011998059894993404083391744604977794858262443743345179745168661793501726338339845553014368256823832651414627608831476588227565480947029057962527139483349756813505743322646365148891040281365000207121898821733402619378905776955729525208885921413418084483044985548958956036142006985142928263026100371407790942337981169536598761441394497506981071773295538190976067751703595866647988603573282400622494095519469484186330665170089170592533551160879423557408415166188115948518091925852125376252901840964599724246803592506494639829434535855199963173637979083802253535548992605637102452390070300075692040365093275051728834052606280708190609690728780200300994364869792760302147476338814609026670821681773575871547025729489248148893525290238495306168690182654845026445554686528966063878097040950200750255663903589240916656264107677552378876603844128415453007493063074590585424148098444254431651521080794121372306434689223821286263717645370903546235012589085630237704880422283276885447917166721894357207689563891330921702836951120735701259346466058251068058261841366277719802994764807367565569713371413523581768986794506575514832284421822067568503674803147192434910566742343489252553542044359372957703697024689262116127460947478820671514056816628483614856627350312648722232256951116520341741304221015653473187127012782623728685599387803264318726570923802563231573069179315579801130483683486514956954893514298972665823565086292643373740184688798655939840996885736960984888770088724353465634682879479745482854895342844488250935932645662742397612818894428286616929455649000116699293314506427282534191578277875983619996894574632313686961542005605977489402841769452888004582622939162299621767121261225202482780837682966109124644252232664677150277978737353514914351427251096547649800261783766217286619573983579450531463481019559461058065417408072512394651466976614398818231303923073253170208837376453083322768836132754100746058697797303166425078676873941796368419361528610908629684047868172744353484233234680069558154965748284358159654585429465208875427729243948173679556097997335867856897418977205425661946314191611027420406977092355101029599030944775300122820124045792579214487733283293529459567302989226428831654037016949209150976055613500894143389406519220434564582086585275391231124111775166878144074227263145512552381790734292763990711140791361146448805418860207529423218094130827893434084602908136946433119407651541183415910147207822373026617594151371099102358339292671941335034275882127696478010343402713968753878330145343657943060390420314948251031086679221068239409359543645565859623738980304735413049732088254263745593905011554593529171718068517775966721989465025919208389820346218073732631248308565145527311899595904940081621362694716561039043551271505071092787893695333288867223543370387100433121631473788350458057555974635366163705431738851695814363070173445881331512587921741164090967268416522559056583051918177099497193112704548546094574293885013087139792730985720055091083630062279785513434751834013825253170056544254011595081867539469451320989650174020698128405745875816457858847294203196757684181823047484208447988671367059759547991505960819134815594957827585654924655652556229035881679395750982088860378485218963234472035360938498129897097257495919984416172564835631519753709447807200530839145582747455294132945856912268493645800702463067599772705041709998417461230533280966766959862187239562039481157634196948989064497124886713578707571000302303412449280767753317391582536922489013129822815178253957243307522898471231249594500715956799837373990134988984097265743426629946550743722047279656449087408632878670837937072891707577988557220500083862494891630828365667953681508773242614972076986173577592384097272695622877691884201466708414975283920623037265647886243166251078119826634215576349092503814025346070541604899272296922107181435472605720148257773022634478511370230885577338796863892351304400520807896892750133871179097877914529011446387298450136123336214500988831853051165292974874224174022692704561151858878338887502911749830584362453538771646519009206787617626716498560923370812814493462410197644986070375331794485439257134193487622044856402406219884402731191019902987240074438296864828478882499861947729139114127377419425228888741335939742497088800071597059378281205269731672548352114239296075910094102863371258210861709350336460124920366631020868991663278826101665628530810713061389674542113254932062639194433898744304941533399150347562871057071470439519186722259042593842739389068517541042790774656430300467254427146418222227357127892952699626187136809277709557861305530305433476600677115891536431171810158463644216416596958785721921759939341521049837500693405585211229632843560536297672403118143431285926591371693344186010300456637204708414900399410855113756157881226605005152668722302975226236362953186341727559522402604385686452125331533066975796674120342524978848259700679555678190927070915458032160067503614699842611932285910759904758300946677442865005880750535384055365688754374870096293308160898074772089845568583612005193755547803604523679371161655481974679307327124201244771378097862334017974161704748068315361693386659273984165585493963144002575565447097425882530837245202263556248144529999463070799995345232968432360550443031253951483429099808784975472343868184939008380985673682309545904498553419453356610542625128336082882504188741456028092842993081697649520940594439393869121465846792195169896358955476391615499833641637181044878692340917239883274745480031258670983173723581248212753147511838786120566882719805597177469499046668926686986186053200678019370241067305214374508581671017335148450208459309165418748715509685116580522414809775156450015786596352751495339844146453500099854830264267867406694150622862433007629254687870118891776983720685705899853863458363280501043127524777049473090897072067503512850167532397097750778177793370959336608483042926411515654048848281523637140883988709049741820680858755938144887297639398944598936678227145300992108384694300403259398818954853521196440055405838151541748585146003079165629892371697858458072002110418583087984849555578959374879374251711654937350917549414612961643962379570475969291831021743447265346819795351132653211588293461207285028794427029085308567925555454172022103783658708274346231622385428718347891653248959088583429980545882768292414489824505619591145253162704528392647183222230383579962005951912662921356711613353977016154328550076987081128304492136722032727179127335541712041833361831255376069382261362480739347742545851643228419581800745326905861785931646691655594186292604031170592205504730497098909191522938156204273127837879611700550630795509119749880524603412234452796684754171138634896445287724289933813684060404749496592284008981849210453614851069966081420147114152378180701739296169882940100887390874811005947798739146177262594161227657982914016498978350792137363380893523135404650613917436463954700654030175305521105065896139502972541133699309254156072017705936125003947652118858778056573309752166857693017455681104357456669191405724023422062179592639049505742523150451221983779729276557715693871550003964796192422271415644747250269286404666857074370204117826568354446632137782739404981995482462369059222527093939006196563203767963261733367805699659657911322651436446971429758047151019662492349701180576970209312647200524889730071930038187926777094132013956907848792487114095215642174478169089411088491873818805598742263082083323938218576165051946978384756756918899820215345475596298702787486872023437851574031416609895407104135973282712816627639659716493971580410557216796425882958326900054353640360807421286536577723507494606877683595384108698440100700799962747079678281547819203462888367174604795623084717954587733699872302140351183263827817307725054345119856001562658950986826546818085399744223296813098821167698866272287737147258852472269409689266187309537760779485436077067646774195579228428056716445815199114566077080208484499334810482566433034316522230244930883598884633891333342660955109461236055555484606480667044518948983006082119165622327768349361138194071229963443686390047578479939371036760779364769546728682984257902183782151340758973815470735382674858328008454936116910100803400103592332054834175709942002033308034683712199770603596548585099880368890427517201800355598451432372728496525160026285698792538329659026289364282511820226565368535108850307528348144680137161199181395068287773879771343945041405196235381455151124173879568940755915895485123846114909910434382362718198074766048591150007375941672548829538221556820021845999385548299917610303899288350428943559777472713019684883030206628988200805825099030293174265089358554095005025576659141855114819079157664327135288344690371373959167659014642183705910733614719443388829153627613128886217678064559666966562666729878250131416954909575330877345132546169771278484621733819326325415841843106581873273175415265444733816412060736480288813531014101275946927680574258906758253374744328807428486194523091951772024451772662197559741227600422891576299078774203867704266914048096237560175347481307102243089342256367146706383138517077710957435409029700052471476970655039585838144680684346611696955585404142600602826603282637338973363081918028517082561031858613369160802274174689689682504939972608238088797954693022778300831165084677290002086353851272424294396616842548358857552670858138775680094516016638298041505576764344340947203089833059538236668700428099462364119053754978287438696666638109001627053748084943432734958973667240165841821583457906199041188586087806245816237284727326071907448183171489368466638223750881434873069525599182795769243972202522086509882417105476422772064797821467974605376850767653943953388282791472941152664271638337354627496997894754306849934067394044222227001026887403339773516944367565679150229022662255965111564450018631830579940409591530028406976255609479421875930835601149801416731567224326313051717872032745062620642933026439022253482613695413584825567159876438720794130678879441896491954639637562368892620873724424011328623932003037534545707138359216422760562210036031479089817975988096541996038964976585379389041396532251058969208383098938858508377540427499433528152600888796611029935237030839561869469696725196265079056868239796747588826797251289866825674124268349944675360562810247568341355840699170691523621833825687861518832654317851296537846785375291751814843875939084011922580816541331944714428171090047344844711099313780954972713241445773714053587649419028553476790001468423729253223339195382049752508185408286914239575149977159366756807987888790134931973545557833284900087371827679368757494851121569905965599577937354185762890421282778598935894897691144359177862105453356657783425692147663350974329204241998432178165358529246916756329169047958321209868057000644980828244946310487787898167145103145029750006425540726430674632415472773693657875525937372195212057754827879894927690526504931764576958555406887464945913090752845507189524485747617998159243303979213504935235834710324947366171604820820868556869018318271585660985772503636946300103768677848895721703954825112470316310055547845703280168224998718325019265305867022601089868233587846357075838276883356114073436718194002208820422294416699339425999420286443880457545756064901159230496218684293707324580060258569920939348978058112191672434811896472739608012760141707030941710969993633350020698728807304976682566410487977924033101928492453865985806009769846035630835775195507976723765430266114843018134237698787054560216097936881437884002974441271519713768878008598581622907310571822955259302013143016472410117889330668558185794115454315047369125561266362226810302697560407019507851221694624688561077070509343554406361876108117740243786020807959002266928120912760176718671669889984685114357853365154258376757176291509369924116780630997634746569444611979333046663137661873494745751604910266448347487713767375492665923758450246597328638183870830259605750038457336529027570345763759742230785981175233680798889078278055005110407123702758632206475877805467195030691088944864345674252947396223532689941683128050191612664891456691514339463713589786186160120415063474124350621413221713842782646680198345140639059894222663624443508216394375654027182927479340952795995346435394017262087997077555851150218761675038887063139388690755595376987160501143544819518722426287554132596212574276182668435379719436450422226445840866249472482372379295918445192939449239491488732420340496217539954106079576104808287343757706585557639180314464272019113441553370303258186520163285302577714911638122595989431263537303008605925820690181406579476959709599452905060362854865347191431084800237427583876116871910994439483156252117529256748024192741509479585027222012416523948187988251903212013997717388356615632351557348312265866039617975755886892514681858350834285564896580341736175538308712480606011596505522760423455360682261687765182624383615236658344264996096812201191272479948380469948360398200013863215634659942635255663631094378929639809068176995157782907906716354077059969431310594505344908497537057515656990472219345105249641517622213948654000959397119672718046581294873085019346513680511670391485958388737513012140763630190810958084400799231786973191568460811815631887388387478056030030226082027873992377268428152894256590313225272984568311198330362265414608334767357951497388017782411658616329662451253971421149334466548424689095301955310398238154158594804490163625684896488650967755405142125490650552006638329762064092304302187855531084403243662096130634225014008109256583424932934069255846722572799354394822808099956356479074864349520920019950612873438810447821152382697186833219108882084235157129599816267595703501328122258390671585362962454562557540199558465983062818142047056212952910870779549709950336883287264892318988292646584104165789954240548636584167929272335599190587755360192111529988175127611794304325978342169518357515844999232598778446717929477859553257361451508344266073643233161282427515262386809389786936676911112504017178285071968786155380342562183298632655904538746125445925094373751230284166209553731187400433870312396036189383645973432973356812475274808425284250659883898378060657158011902249407831964387926213153437006928871036574157331625369011338113118647573157694960180250565305628891556620926640056719508729963112969021872059406169613384614926273781047653194935609293233813834358978459703491720750941442943499128428333380678097446960018335417387581425098179445769721128381547861202001652565798860103186174481081501678138803306809330287473285321685292431149681920000607289429015792122078226015471600759165145349638664104939744030145778355634096136821966346869396426228516128857765061956061195704663943517859300626568933399087916063690585804915175112900341761955241867380749287653420288705849626338670743103657309431170724172454911819097241385262960346441332506245861194336922560875987830554003183751816837196642357177576255673894272377436175974260487335016808757653737654359047472200886277583315979109392306077491256476839801387907722412586826837317656986645413624944670942934583845525883871556807896641514542255168670094967547833188824857501509646609534883688964446329976495850709772860904091676383343330510242759030845475885383252163370476426975637628828164624790758276901648527257580540966205321746947768831572941641051359086460947935812048295548341614485932918693819403391678379070238474981765403150176974388858897847813387469694363679360088342953485777755090068351784128047655275155035499047856288593808360719122523707582488251144333119008094230975466339033869760714784596072160055707271398158870351120397258109222888160538925860604296526094235392769771851263018865356346169687797002960622844918986981432680048191529343069512668656784900204348175407506975508354794177557264218303271558019892390485527135363686769716079303566279378341403259467823266066877768155215654431364620778562436100639656432845025054200367922752708292941642587077487358825314414196038079178261303031813512785422728753810528348396829185295577316864484914508424469672427956147050042943442385137706929271086914492738311563451437288436953068929309326379476564891401704630757745462091955646898195316866718920647996841532313913923050069805272844255530148013081807750384523300535387703858654567027703185374956170981895733341456865922127680380428784726892984808527990490505725228636996026744599126233676951447281839154348503835003847913163200148647318524318931142702115880359813561486782887966995802536305710239017480720749651427011020347889249352074957934976963834018558618913008587457847455777691461034058670012342705918021259848301293749501881427202889369634330360601032572131629377130340234662278489792099186019445041000918325965198480385150902944246141941322652904696271789819400598899325504054435535041012144056780702302416002884666933283697422110651487552439339036835625343033381752796325513212411585163802390366174806247473623067751407967251409669273589611060128321813439035001304820802719878288922289728402428854017757688820018042711860822858681535211905105253998124440578570795782763119371510495776130773503891629016437966576143405576309588671609839850803305980828751036129075619550026888706678457024220078529333976035109853962775887836374655694360197411172414820865171534536295258787038888547980635499377171731124620054938787411095866313612180446239311182469830451082626586985388484334961511535238248651704663015930952560935138975307186355938706489419494280163499613824788743618397457282638923887736580460703291786025896823989983766934056839360507357897422284416497155473558143336219750111090133907477394877046535381501072796735880694763991079334539269935766130668334244045868994122519241893425178171395076720709165912428020721271625715932463778782112674737035848233448774694618551859202868028327935732117764146188736393535310831929375826489755597536817810555344836103142499988519567896721040510738374258866847350716102041013412156360465055850813289126877542042726845847331594266236765803006739003059319430506201730759850144380199799595396110618310257955487419178452571918925708343657065839567821616657575704464106131389573013530706419993901482899435054021914205733719642719809125021632691168927629368199363786177330268438002367046957129129539691793624328259655169278563985488790060537171446257759615254112490387312732441489730718386673381892987980061046814125456854273542491966538213185421123393280364308466037151920892709703532435558931053633157808605431446756818961207017199034463937423250053515105306271901851150307546805817454258823089743796619858553085257023052635388129503490506102933338120683058622754135894944021930543803576435933062568937697887009409139867623401259429694879465872818931190040424708109870950477374936879744748616287943332784314555228369604714882531806141112270790138058271104320597188438724549623700884312662006708787384893013487575090750597480415559245885802326128884481835227612433858673916291658952455117908066998846836644078426421610381169571511033413055636581285625669500625523699006634441238312581391782059529403721992848773653661354626196119893948692597336570856437000952882344300245186629772063496953013955551600994253423428751398339829100142723687755381941461381411819174920100716488179309073518606509630844967615063974529359185493620250702878150427614825578967926871106938468749482752379934301809948127719098056928545312049594399006548657119253593036428859626300586168597066255763333848343950927316465352989112533001978218523718844421105168421881581599769926865195037161630347979105069691687736015026984295808601298228083335847825307297625300696809776077853263119513525428670763964585984152652990232968146773237263150277958786640125996137388263890041302087802943178252222807680988538462617055384408975880959122022322011457429555072358444861523221109704843287491413848356400146870435568898662127043257018949866522949463597847387606963329096070476338044446965176131746464125876198940773920355857500395029702168580225374536937964219725642280465411461391076702098138611001599145077983323045796552289825041157253348673846343204538145728673928307761533683053935318743570578826658207063453546072597369886235207358594273626364227854720538287408211151322738661690566310098759009724860265877808992285306882532251180288672813147982271447361772033715896370047648702227194246019000525100156772646063200577766372540488648310271852115728691708157484340873146272639342236760262346281095569917742919167939079779172845114842835403303360001330509075774483748006522799979441890369690721533538743601032982521603866656550639061105626953460351662616396775105940820733749381277724979902739867202715704014402505412376993585517431957764479622401589022868185978760610766450039695929416536532866289598449753494874424369721834075637993115415088696330700784875520769706002606191554091838237638438733681484925771826868263543975164234944698857280909423593375294391097824809101736624493934583505885903786290469926473329905249111304420439893040426411905904324324898013850226058579879571454382781808760884779853589275044984306733286014618865960322477656791487015567208145483770818622252715173948629587845588796410265144590777187032571670259075388268794050710069958901734429172678923747037855716791863747712707321762679249857255471876768351626302807537777532469594868858175794497899680722489607966310482398740071153467387694740866708214548177544583737456869062657864980864566468097064571241098034150046166794001134594192413616253092843262146571481585217812836411172955631700122757867933401838396025182027625534635424513978485998083293795583163662546512547920433994334218788198061088737238966886276307501279966644238557302029652935804158769395749489099831511765250375822571306391431992128001892742805486061783282923528726835708951197205453189293224747492869908044766286560593150724734696647284832674289540628376795368764341384438682539837120667718610892919340972440392240594950724020255738423017851562218529188530645289144366689556935230502640098439591305565333024264726726871408276515090281423609555120771355992002545408109905328300265392023155306321632229345450049111565087194504804953302662087105175735301371703291536300465296434799736129595465025706095239307028391658092780245065124041284104405705123409883528910628244242485001062891721219094640816260703556160270094454637303352788633513667532223366472001343692587630750966340556453634313613160949753418939007344689427505375968201194606089180596560137508356343063908312616961915008250350029096763929992619281145365003823032780318113815749466575128806473911709906947713712036742701677215383420241386076682698289677045634692901224556341616058147663840184885964272842200022356559964573627612912147844451277774591285965785288189615072225558855759375423484391633766489210956127723326262469848053258457904206805390000478778082678760886995602109444224311755341520731192990116505037198964115638720371119006110991052181374976091415707018822352615367383422128713287901104618950401199277476824409296094057146405182647041620524753381725990091218066740166280171916445941603285429570213546287688713212912555560077657718774221944528303441805700448954630119957808845943546811126455006043653657074563596860575808075223834279169282117101768355950661266374984797740135960268393483831795405481684539662547175574894910449185479681979355433649501512091723628799158086380104358869949676389017983839965715378426142155548314583295779938356655764652413450898120494530367576349880656979834881732039207390451636527375044295720913805284086094409321550890239440835888122326810973866909322218538103014162663949324317749784669869486526596308897465800134200583520152134726041567896572901138798294511309552218934582530647327513570500015059012770241743756683985590401213764013416601107180506715399631706284704875004949309852405994991832055758543530731942290164554730956116887924245062816827113296646041115616787248891270115349643822094268875554668254779489204169265204532785919931501716717057919396312915425920470046372425634869774923009355006774663202373488565340636877673849859831390760492881775908384364591318662672809147155787609043817282090080300936697975509699171817860086200535052288310487150850635653336270909348795207669239925529544948393508687717816994125471461786107531448380661761302409104013650262910492944017947135833396302726868156976246881204077272957586518991955657457924696477522500078999417403892724703268446850601520207487374873141064570280403514488220996196943991894849624292518658398182240116592022822221477038992016004753922854421071661688706249076691855065457844919497866979746930397202522037284255482116664170611175782370330956306066475987781932351316358198305097035598805752979990965567878367585128465310305264696566451225016477262449728633214792662582898744086137362762062853440118689119407029616426530821573412016591908487587373517405535749922942872286767027026381967017666277400410116774078659292968560897684505074140370075932832147064190257244899042726934787726207666541738638327898143046862120696698388714513026979386598103214898263556573328846161071330849250317949099181137753718099070739954413931052572060583585023816740776731668790638196834939562307846667112031460884944700963704226539306834616351098805182388110285415752343271154706785321896303773877234622897742508430055701183474120770533724153280024301506191689297622995566885136445668693632469844625147597465258730600596680557365575246186861881226216418130470837545216900186447229593742901426720475566972117712964924191015545216614183824574992205866142313485696569872122359990057071669693999448162334508795097702756889747732557015004195093812899211555621113755001094856407511626535717465632316601873117042354735868158267132620119688521483641403851214600088623553194417453614449380004570910040375732839006651853238993772533718966170021089039318616751819406009755354722580593307971133116169334171515799891179513407901079395720853804703225802775078937898753364617608666394273191897857439320659539150398485944311601952605854699863343265942781749279982584757585892804697145693082019414390807195243618888089583771507467651439331304571134988397521480565081828204023176026940919322140011765255279456392620712565543576715452532527497220515677010907937551745110515232590217392283125603230253216348365046742280716771853836945755036113779986357279914441665643301423920274973864334850839501948063402468583415954340633356262296974973450773329350140071285752402402535591002890073616805764841371590592978561146693050913044897143422346077529867286429692106368444292142978995559573049692912696527344545475103710982622454484476075106290659533917578154701995374008619885398507821948209600186464986494913860737405915746734547055275167069775347201512197320777667498361238624602551261499744128886382295536509592989606926012289111862337416262373909199307690602684320962541704952197232565776179599367715590976962198994627335293452011952129450746149231250932956522461639290501193057412519515676960710019859548618451613230294615400409781172606757129037024639779135509313582729822174290032247548150029484080128594580335238250673290719634174759352905131523128672369961899835177870143360861342199505212760043305923199215502779408081100164152437582135092461408591004958698168781639784582011236244609240190644514665607381011621940834736895128739362979981281788981934396029760255923760797445643909786934370942380612763815009712193929444657390842321890972993437097525603266350134681669002991804839609627038289532140420114791718698832834066245486486973497375841795751635016868259262379254693364234359328389087698411169702508513218236555022879130220646422751801085925466080439700569653554502849222275001345955759050659574523975366021561429989882210554184812707846871798267522396884808573064598067262535851440868547989665578891610334927090082963854897649330031196359611908969540280961689183541291440472209769819616591102068860375499830760412173209571430532112351882951366893392405189615536032374402598598779220375735534811960501280908055407664506872276732192213192496826364831783695212391446968806675695937263294938910652772451580498781432161033550951126441289557456601145885134621631412007614516773533374612095486328391886414477969208831360430944074854009392353656455588697120740691682946766503752611272356810786482546263563278525134521429166806417269905708086218365756745393198465606248197032635447968407649552926007945332698306947371020303256165516532590409543848211744321759387870759291644844297597184647529566474338198453788008162883552172045011090094887440115866483254289798167568292711365500722426046496685806517959664020419597960337613500088614044299103519694575149145408802439691759576004222173158728223858708726453096925315861544421388767660578819219626861719572006404584761101588765779277865884920240312550393427763926238438064558388139755775561206501739114687138019244252628862172525047666289956805200448119709368434583927549207006558454015318336291616883068710583335301745236701001293014186076415771737156044786218237860961797252328941714739602588907387369609964480457740630326409524020625422366162682440602376755923376204942423290010228268977362656340519913227400399114007943048028861474265549339569360374969339208620573812431898938645853361604183989001468025143776853686882110469758364551291805786412008175357631889504295249117355117493806669568883795358800937213366020160637408617367392239683420668928639225765368644104563625185784997293978897677932386550186034694113808025157831365603687636891774131605131148308299614598955780198589918025476746941076185784388715050609527716104794306312517235521613066021676889156277476755840384353940884330124448903026761126274999422279607194129970772553949819995626373747721344290032181958175892094752086667737569604943488841164352485871830227175114413397083881151700700485895323184204507202273797544249921193344624162237612054504565855797959675193534304628647389067472115090987013200308581187881036760385576402252229805307950298497041460992610511398268143976426136634605648084076204016324357134806623554761566615569583913206633911431301905038459630195171759308974630628622505824811879389177582818177932339802217401108268575811619324979205418953451463071554819329506296865324496067735170435435562644500907385295091840435103692890651204006121275251442556752275237757543069016073402911300500396350101882456742778688141519690887919083576315635775156445133399177910961843685242528278102895154476489371625860163394882888904673645119464649925979578634160964823283280026079947915754375096493274212201453856490326485986966004714237671840840532504335769199287569161857685972854194066865519244352594892441796717026436782829027435713693414085616635156100383675856898034823393425522001001545779277184125292830393725018509679369225032342428331929243767412568412798088793836755706950459930811932850588432035303719652140810078431305887801143022028742341870830707406497988279767090983464209161328311356491105941613445917002935305068108767158983201995064600185142669189385222795606873236488495451897715724997817391740141609561171472981809339401740593249422130465600557171376799392752548726897408146932212661247396553790309718111425736316883211990025798742680988508007813172062722179932282247210176539172598703948926281867396482359654154277708827753857823978068105385058220962213533468693234252350554392299985641202297135234727879221634277290250180127430864337591157803045330462756895787461409812173201346040906866453106197530317497970186263373100907823849559807745644100173482264336779084016791663675266632852948750533012726584811384461885054088557058168798773923563345731094189944451174781150487020920794735590890541649471917869840798303627729780793854848159867339038097937119599227789379736512183301716319987439130723045066435667620424539742821722362824433231450611093500377039652263770891499836724261450040884777733170630316199813550651997136733230278228964218841382872138558117884822380448865147915960979521954727970036442913830479149623475213349441097486451409275267699538736610717692856778357192635889780094825088264731582796939780076022327770426731914225377654584712347313471684174110614935717891773353567227182023683572512347625342676978616146393838155768236971069866628471165895849530498148088980385693521868218932797417109722628870114397557493795793798596627139226028352952169378949951798144221227041994535938552346461734206081094112570632363730600746472482534652616783714855479636071740082938128114630521500568421040754552024951394074175770279866238453448326076710046064062060968349336993292768418468580490196927016529247477028694805755671359883207704332731702259818544548888265386162134847203833001208210523423528657640926931819333916400989395900963772463121401065294836862906157888049040495100686365860365675258351315032163071797744782699523206014009846127722856453738449684044956298073050342782396866663416482575956150346722832618413679729504360721443026558544183768134145201544138834225667020708501250480845938132014079354863489256782980454693648175450317704059982297297982236523643764013599016883554298648673855969384224196188375857584379813071872557025597151723550684250120915950641755511687687297098569970010996284220129402318737100420524858001979576462894270805931120347292940147350206855779726713441993110136391839045305349300087825772243233773499489651545476948973537329699817592593636298831433493613330738614309745961358577999056126895090565266792024958063887546236011305289818483245034027002044687922220308322241771439905959287985559368576134678553370962331276219020789966081365497229373116001487725407420104123438735098102851375700304427961378362749512198784488084885491320286647084893583821184349921465337844726876109999594804402271752191762228183222737391140930483665304202234496620204323676735377366767007798452832164757108181300051442401513518999408755463484061414723363138796106927837793405303624189878820521038596280326242834750463913097425206924262582929604806253592933077229458213991230282370174347308020637944609480897359439181178839418875536075325670340090327659145962747817978989053537041202421982480917517414422102648052177896986979991712451316955541542973558690802002939484878954143336186182657661340777895451531087374670268585297199232518141150126441098957599112162174141225151488079813257688047888197831360865539864336421571734056881575156483962176789213322809860708602623036262201295977669606840580654302374442792525866033349551469151745563484650152167423105058319793535768284271122226733273498960692426038081735546990272877188144168975570263405203514104133936270154817247241661816723008908029739011401454134463472905338713470566771294354909403327399391027817942907136070237912228292258742660852741766223695048121734548373733790972115917520470189144998122265537548546926433403938170645608772426915026388809110688166735690020653145371041675177294216013588492235082977710606417804693536526909177903565367489640992327364957526272308679977981545125419317356950739935301135968636914267394712858302850651223630907888768977020813302808999573267478025200573878958055904545321465037634674370588172858379869708418994501839664458585448514731900085020918407704087917506424958935411146720451711115871229888518174483332682018008166903138635028937312364297444313014607813153982874079600376807868395777641867994872185300010136159599489317246064886395620635540902520341244064408577072969756768934187939510013199322008263660764377534723685729184238409033215225483953269491870375270769481169626526215982000595716937478274107928807596308103932798409030382753610897575600675878445597859784922893366664489190907751387944711825504945147038982287740218690746607524147468773579577239314578022387021982581286117876894271371898062032051374116904052344817367484516492510552685747470908429158631355407552103298515256923402904138972501485663456313910711862377054683542266736880441491452107056685202653724335338597738334887833924295626824334276127545529981282116832194465658629691830108317599205795069173284349165168501607727027767821192093014768177848418771912952925928270459877689557255797855315869883217805646778596487001763274448845248359561036463339225024533916469504686752964587304933126998907452672584659104896175214822846822512473819955286094951722343924248336270742987108397905643762618190837962005007601427429954621312800506913791918181663449705906326282337010476053038473701398395607862552125664087653025311845707345646580336917913321091390255799531212251099516080828475346746064948422606031659494915980673042046168293402221174476019738091795479457503025424572856465562908788446124350637754044545796593465566350222954359655274797774504763557145348581065485412089797597530423375970214080020750905763472779130828394642134479277517999205241671478644279554543546230783189066318446038228579065556370821705263829534702688504030960975639853013012231627609398411268433535792507477334155214170764017850605846404729780852292194271385400660264518779994820975044953751235252453936009109986834038966546400845479489231236482789700648304707173918944227721253547290429945870388729170022876361528378639679131173117956617099731459368015005752987019483352888169692978166020626025934343504736309462501209717088164240469969073549449987938128305366467731196231344825265152700751115254003960456084369527944684327496712855680364620961545186676390055356158863774330198534114805913983122700919272698178191208305435463004839236223035887025306706321292024635352346231598420705000131047071116582085501310424397218287698664769996182749205957075529833814137098871842498966818602703473416575482697481857706166581780683768162847126195470813995183642130484029977382422316302851875935022751583613733376435437882926374486281114931977507283189959538860648806811327395044839887695311052240744617106328795722000925185100695305110689994339625491979250197980882545962602702922426630828633534078524637729291909765199848076642393881691818468759925246164684396862937555269333179518391825168389623833135748731659734782100417415370940259695681785314232815443310608269875567626951365826998248714151900457972332900130324902498079703512655265571981247206246791404902903254509619716725402149868060566933493942977050123346539953429640884357647502809005203821786754739351085492356135588088090525648761842764664302229616286517262500146904047511161141036217098302540426297723877644342429639871064610555156264081723959228188348585067163984872009990801345906615135620648535021371029624492861447521864580420351554864709851824690004953601890406355703559939350278825317207899744309861849144379188226124674848110742994985334072996798603245940723532996964776624084256638737923067521291172788748283743556584369636999001099426315551728576808954256959997353870541383943741189715320640493660464218407026664877092882940631516654115106788756125670698586534850435268215040715992380793427727107418694826451539497954889540121255727692749824310047407300508323032921844638515958281068282764180758802902211835835720066674586929825747234691157308765619899566303266317545927678159369320257925424125620217722226650182110011520469150769933576065961623742453024989213334515355899569103089838998518454202468313712138318449906949583902813185435716850082755108325360271050266813602125254001524561732075712308397823579068262196617845763876957696883114816906464275995620147467007094128578432576142274861422806264237923600590774656664361119441382675241331266737327050527875096894445414100152077847016475747823851820770815727057388549223346660138023663700607217924213643806328428531068023069263398316221788079076970474626870072427359809316596268693371380060871049322496836281145867705155643465814235268815435514129650987137482409728032371637029026644699274249755287520229272328005464582772115019490695464637487822759981536914823250805998777988122032951618766417743177933482691060723045527223068033024799720388478266703190994481490041024412923191996660777259165480749254973821667247876697030193602172753405174702785996463768404516913457695050671945195412698079997227824968173462131656355419257110651527616520540414273831938011418486826566882255208481142787816922719631265369414262479255745288926055086003163399596958819078666625099988020297230160717747169167968070080873950260606191971202798611890532331522957766291351738825906555929914348950246353566395898469950358714008668178193840725684118399907241188966221155035442000580443698225054844400661114129907022081423614384726050132048572677729349817281240163643125864994926096607625559703065720714329886447787907735331237422188181192125890163093354394463960736244999951807276114625440375438863467712816331962817669541872541826192059102027968900708730814258537133079588042848764029217679938586800507756371494931467249618191315383905274788027611761457741990007501608294413511111982893164527599930769222077023742699782906389595303716347735182339898052074105171446671379612202706946507871534902246587690759364731137745742024611936792694345626679173157898244426271763112715596983251439362817932362912374552274610471285420690036316209992017784302750354774561643102575494621564077858695706550981851920835136251447109854967274875075581045554476467603884416166087347853478113751048710233647548665486500266423958475232860115618247673795992027778618284547955270356843688832126768960978448436232114991465838995397872418992511801968130867153667553640526654055680965928002836939645978247911868560747970625432643778008797845760575053549451154667198543346440939660116640994052900660377271106532419281519309061798605618839109269626600416827846541442074865695285866808437247584967345827784151228507296039725331641809748364928257806031679087913360263457061026255252350551287653952865501808626130740825475693094932910325324204099105916079515680684076686345340434599702463985642005583914072801049542376164303553069942062568486509815852981068552843032654127366159725131663606480600938887870673769285928727674749729900636751329145657455312939551625371259239785861330487516921257590505015939930746767218560932981898025086852683719039079533424054375286398043788479003528538298394726181004089075624115312371004613635815699920103603591352671373485032765865613215108986808355171028777960412417404956271902218402470251365751520790604588129747076630483370070049953374959517420952017471850441581282301109443616613526082206218281668150227786853454437196875254628632909683456034649615979885599848791850388919510457802288610775027085975507738077805037693288941174574334471981572165537871862421093037881867505692467388896082131600836927407576689778570142460545095205896985284949148413796155710208508070034737737935591147229798724513596723634131013386577061498607584079200732317765844774376217135904134404112681064221462651655197408608460694023962741810801355787231457276044614983020477289989887681417750284203952010290055915123216506963348653819852439804892539408368647445448896939163066718380395558207935017838390395769833484751872483233363824649722557430820754614033055091131950422760362333760483894541686006348222186843511115817329054585827072452557769945032240787623285137557588567264101771645394017034380362687128682555594975470384259161361689965733682789430004262407972171480890373500786165562820746662884290240775014970536969721701266438656869177175387387700172915075509099473302608249961516310229561308469743187581893705875767923602629574109445846662071503341543187886837850959498065715440970526420206839533525641428349528577987688732158028214524746472089309178661870625462340406326261679128233633781378874578784093911644551823744518712920354927667568160083829213523456570959897519916366334307142668335563526134834455023117022367612756121448789915717140929504790693517051626536925474367692112652222193036984355243581640963368745992215615871400253636886888847395984484190399787089695656824304458112717065324865872499522735853321828451269801154542235489713524426381237370280372039418782069904502619058479007876227485705623988830390246684338430412466848315220180053038587631998165344596031448504441945198404333377178650003783244957698547712857043679196465642631514751180705579145805546055561465587298174553681913629636392204594466812024874456878352927866880443159443201869366832384177701815213380516439310579870667627612407737890172663458809408396691936768425344827147884596262112116766918485555640991615711364829743077359957080440499447247249826436383307471833605618755051588204872628962419703437254155488577673299469279653467788154748459693828307446308150265100903178513385467677967986278987862262708787125074828774966468693867942022528354493050978752542728376511700580192319072944635142610533073420464525398701118476002906010546301375677219595736546210268140072956062648512493588472690936878958864946781250914371252503727154860324368723218976365989217534459602844566909180462651762030889233158406972196959382299275757423698911250677645889305893729285794815307738134442856954347092615089064999298858314310755873965559019761860913513448370513663558162087211672446890138695962702177786730385720442214813923311261254278253578887672951804265437810507693915544029653893090450863286018116945717507093742774865441946801901072967797012811898613372432358320768418373990703505871940423513155330970660392700115285981844088608976439495932949399272196986689733306541010368635785823612064536444077512738935123727514594565037006604816822152116293474682255126597826723861986743561686080100223682681247840581358068716064783729424893546645551321174877949420946128837893506869579662262520402224960141046090456408439926178273976636264612787049224142016752617364594375028633628504919704991327654341957933068552194495780865054385644221845632109865337424352098410158710850970703739811091319768198120796674794210324753317723419251097974192425368895224102571171360297260661759663564087853011791612897464846770262549370234185998719138774224905841750232455905844423493367681596025822731145528317237031250871973460622000757430437097534240359929151063161537013963009962258208809719799673740277027844701614101142500656386860314351186962117774441558928496517160021501272363166606018894854198578933476885955984163307268757432272169199488021785861788571713674189113211477597492115740240465005878073739133686928870050776333271567458492557972102911092547924175092495883621290334939350942568872148225455564688966323648856962101932170645140482063680582034882488012311411704828024970724370621687921693625181386809709570066952179273655065026665615748261353596934997908896974486834437949379855509780342453253475190863654271411520234174227101784933307251021197880020651032920361937621725978498819892455216936828273954443840683568498464266504620898157207707994212243275283193742251148106996837772477855082013143377863025303262958668396321853263129538516783699313791575481820739133303716718954781942080601989362202066097739192512359456145697249359218950823501839333578000212942238055531873223198482693686909422744254130442670552572752341898406891566173931222359932152314956042291474706050061521535136989212516286489514846265109771443378317830450791594786801825009403962832348514670596519265061428805399971032580461050683147004861224460441015932915957240445973484031486176901032524952084657785661240138138351390030860587751689830354808008483973905074521185781759293025207673458165761793762124343557084687206466356433580994308134513892791820532175207394442967907485077405298352432904146962224891237629085342763598273103645631812976516787352983958105445996534361532461987417035381098646174308376109173876717534736986961246326517658273463835467138150190231824973634756939350027497928473447043952177403604378180957692339161353380453416166303754043904839952146933338480116800775105786641320037772659749768944892447665034920574566088747320030029883979143489551485958594388167556917376642116446537037885531293358328009023539947060976075442748532226749619453469389320087460036629374464263674369285370401898895508745127255062909831803516980243572039414947750687659042042225352607544676951816624955137769630520645923866867205400714857683973290108467310687808847124211868499885373411505052236426660783003252686433474428237342886508941855380532103489803827313616426746018320590535889772151472026015530546450226995986147364293273284306659201412695198031487315333830533427340835751312723292863208778585756131671675735722701126941642325831344338251617920353680993585442710772329385157610808632416114509465266883859845057810053199650829611257991176503135411857790713476733106621394118577800231441615719439617473527292531726775053925627788154109562810151046807257250496367974693592713222464534353918235160477942778622360020052370754776043732268536017184855037008638289215822061939597555231100857287134829538479833167980249339398045209048726052219323159994397245884183702578426501718567806405832835907118585307786085842936015399116961896110987211897258939943474824762575080601168369593614008467422423466230451605835005185686822114889614784263713982891164232148722721094625820024504347160430473138346399628356135545298299903002846342910067902676469375079859005921076624213637505273247257378148583639529846327080294822172099506164107294657399779163253993844265150053396705040220656775047693155285412382801682527821434906792781108105788776843578092123916196599754524790372458810323566888715835458742526543510117448441350102788855202504004318552054212799418302471963127932213159552524718219097866677101483612467164409883855924363380888059428985373843808618898684793848845738870365537402165823064285326649880532400176008059091382050429795772027182531189694910884125494623021123772570404914849523020830365660617909845417732166944936394640688659452753338830889357512129573363513122322011900366207185626162152425032235041691481225115893164832510319719718412606410755264216789137470931002825018197670029500006647163543221779752257620569289104229533111583999282738577605285548068628147798744490261025852675290889592598024726954965447077463230051433683903754647644104700778675596391674959141417869662153367634901239232061605101886703390311271963390263553943462681912588795403790287754191447035761150032254858748607888490213870881069788899687391613329381692379365807188079404731187816117583363721547470597518853169142258396506778114086579432813901588367011393529606752577341895113693123453602668123895990835900688020675099574411573920365980399748504229828181315875637712269440306214494002373285751675772889668263479913698913046152764750047499315387687163106095154606392371742728082754697810681478055073398301399285799887532521239900438948729158865442791741627632440013218643235411632830322434039848628813626941911636708042219719051516023636236084430237717900110275468695216954546591522209839667300614963811221408056407636660649340228807426941864963141815871571561548201382282970039923191203202283421299084652851899812855901904882145907356175979222455324489361375594546914680657006811669441102352663154438615774142331761606837674240756509218649014792359311190862477980026651850076136192127875914856925638351488565185041663444745523516238963192295029816390589078561558714452525767260797459979315088514432394839361760305300681169995335325202783134831403537535739503712374708589113294478579584686879260092087894652224100302435191892827618677195619704792858186231280649917114207840966495078157914743476112493612418969970621782788550378322170536685695293257832221327141536101085012824030610909700032777786932300084408120003055319658914701751978858324717393876228203340631398604711348184746040779067041645618914279955831470826324416437231707554585794029707316370616852746805996955950348294183537561944070497906997035423152138817213467336956813849988874619434557020822802666432314114781480739800339562396102830025979939698348231410840547911045374039174240176251663627958853299834637612751263959942389471179840982788287110077236566560195046143208370060635908403870473652224144633803571830709627835054297714592352973165563544699390474078991515818341765059213217375902543009058697937881825097476442417134763468124760513797134404017037368292727496994951625356812716302509510959756858331784271113944320660604181345394707261905262085803886386064879757702628813172070875489338888737370267395762522416719506753459118333689261988829057578896899900890934417634339989584197578318284733082690597112477980162770311646427800869890666564213710269028277264246405134324858879007846320336417624121517647385440133699137395959799326919127335895120426038730900499596831181383719755660672520354703601815371276135358176779732788029089327261445426775236616895643532786417141242115014943844130557619085835828276548049627666033074044019734051267105977927304357330363395062156500824934028584186998273328415919343116750213528834306978736422672831304639984131591510499083057791521762136276074203277361461709853582003903077498546812122744266985076517344726623697181463899763468977569888169772506689812676962307050489524157770164179861198061987411983329887204318456536324695560248480210578831235639327648404537525040707180893671605106540389741514960188828063531302801723032439941572999915493481701980136569390639447334061862659462276802225301758686341529028507997987745983807911040578038549171501420740719588235852218682610305577847023707913315808280018359355464038429699845582148338418399121994220818998659307179180936086009465748003843287581329486705486311904244082802551433196135422570572347396205535240122099957054376425048711162368855066833103959653293547989167493918149409801307583634971182082595857834194385542111221543767297357789045538593862383894151695222974456642373486643215117338762644484792154081472936853710977775482548886549910199201271773115578603659491859349328194644576230268963955591025298937179100462264549527982179706838488616718898751719904053983107891926755850797003674975263177908157665998255781481013809047238850888308629066307353735983411628991733896694070508472814050195260169637737006926572009793257827428745534549083971736532647378514272342380943411540811253300731149347330833952384941710663784038131244031894873634403120541273989918705578677870178294523203228210093600859125546960850156862849232002744126247071595617818515830166139170351348290273816623802671573291523760895737476378217433091713754256897794204387287834727275906796913783414640153246690669065329220480502761633708028017287156126470610357401402598733319242121220164132317324129149592042055757148922422739304770336749477839836130785587179342613202483527688531998862414143458533499628068221551408502546695259802224491055976264231079806687558422423199937861002128226623387973928420217691364031866980912313880300452980124892631217060363871773662577463781037832570901675378968965621002827547572608968834127273370844869206877839528611190843241090583792319024314977466208788098458562493103093625058903651079887399020525512888332381847386816865090188929206565830620641379372695946361600495201857362234629629920689570614389340197144002858246238098216012266178662217974057994082837545808620257631642609820236443338686255924531655140336798638394674875627987578997766556881021925155854553152249090515115194870054842779117805423923455268260905123818449486713615146751257329006492165819467933343361459953207347787206773481929963044148018071759647426366486909674591381712658708975204815530802478904579956830266974582211172207563668399967212032476204314729806685681053737456577133303394369989761960861746036833926619355288991724467026159645037210887507608133409013010881647316902706837294571628906339924899243254046267685955882678836662867350971948816990122997284798204519080325753860801173819310479954102603039855044056567442150919084175107236201010787964776513877633540566694774468967090740025398150578671904893035752279326457741757213092483064206536438053382116596281205258167381323201090274838479933022329075251544378153625822462482593751312449681195745603340422128238926198551268718420414833778438891579133048017195373036480982772408320106213122744267750793359253274740903379820641255517830439002518447855908838500461331124455192121220206626728490230303630980343330798174744678325891084701995431882648805004580918295690930345375565085852909422721344733181966644365340461711785226949454745816988390869599387281270394170955511217132143896984302947312089878647629110612096465919029061599876995219047968374209351793847294479184297046626250812716842422093357321968237017657788521537480944830045319565302969241346011928185059839528833856380519027242695364415207777488950120430908557032037400934937285782263780016324673351539725278014578943970659785413708745183040597058302543752400281884091762478413893236129993120511500137763895225805730397978703616033089447009113350064589805072875414598444976529748065680862667919625859395345175833763727968210837190711109291614628160671579785161675413513642345193239148101534540970377328991972288577992540334054138365030198529212828283838304283237280586005014342853972284522909783744833637266190873395203169075618783645305682249405092552996753901589433223670134636074616709213873503477911932958942063687183580203929511389684326378968265235586510958126943375032420376338248977517796933616729195728428057385471576670524040544265169452486804226174062610062888926410112650932120656633410960836876806829461920482979070478340945890353457901696229204848754589218179550201185589151678901832616775243127931842214710991488453634211481476231629039270943631384967141710494338838879272381872907261155674493584467657979094172521603612664777649649117137184328425097741948930869009265164447985809694400749279702804877493833255563009494098660793853150087912954044050881342195797628697748633566369918303157698054738899331339645292170135118465267481430503554066933204186389931636411655044867516412855624976966298815327958636497788362464656835851799030180885092956140182024888006908132372436352426022516250385968014585594922898221769522839580693813885600713035840184810306991566219562028558093726596222316953941314562857737358752036276093158577388406055839329759005875870981116217994774362719396198568446648170565845957531989193171104471686453914001634335838545684990356875405447529282581944995126747774369741379185810145807835200359644562983328352958882971577546476452666634578915463208645889758615142695307994983562307359576356553820951696606803185998621444907641035545290603007639605805533950415681869462561222200368830289933012260350897358303581852189191384008565872961804678204717364518699087921882236556823198483911255699127949822690364565099876175206206093588729100719176524667332785712889477395682147355063691506388652852994149089858414001718747182809034193619814442614763488237613667769801068304337702427355585144037903157331148938017093687901615790303396462179990837163653598341107079157661848575625418476404704180518215358975557431351102818397176352031135112579411853844107686353041394930226641093599197491627006492308571798951967268643712115307586493653068230840579656064179762263986471472947517149966354851443424465559350882841220320314826408198464493162755078845793560336716705655371663523240814533051207250517598279304159242194354428436224492687741225508426109343174849760470856328757195004451858596108674306719526091840199451943014299894605540575396283564801498657113216876275641465640887218722849098166136396382643596786796883767721130245374511215765772082340840634292672566314379198859992930578292079232630880819951748890974986398301075491053029870430905537688910648837296290091541873190615576031619133193809180917687316691324488244963356397417832495300563633115490495993488694148138274562028534512430032872060066949291885520671697509784711140037021038643578148513628510068962233247654802299334879974617569044903305444150303120364016895736786325400848252596203622378405068990243847045444901933023489244394260789298055623172454060429286182221492537510757463197698250000305449305472792600492804132200502852431103688004472927745205977390545750468814730010497643674171157194816714210150835306510210604222269748663178345847550449286035458372151367482484805903796994940982664327014891452129756588324502308554807693203040180140557833267960499324869573376226254152232520840589043414406785645691349169472834148330471953943077012743756128565166859804271695203319803180716760947437352418452877484432865699135201029946119285958452368180090737100116645683517362876015699809831628382677863809368205676100863638702466611960060165707639472647395289070560392337288080606247107389664680987523485379301594758679192467165493329158467337195359848658398609896209336959001596646168380076438755902015637739803833977859619906669561431660201942938307240536951638400211454701470449290897651016738759287868042492993443294185164090467588704219567794710974145838724399304674173851631271104899971695187893855117291150298643610912868389662464980332526222893208130455339036274625180126512724447744290818150956919648150615050335746563667427394899106229533607080924797065366527389897334465959045041218914293605852528107899973358041930335052969125254764887346678123505550918097815146290146927215142464419110596639100847714993636308330116786590191149304344940697741858178736365675127036633387398527154671390997911263164923322651925481993946625326720351290854145818429501325110754452878076040961300974190257799912476041150700675114138806128458289841939273333158812370876860973401750816744441174061215283162007188765952541903968426721594224492544324364681739807997292547298763052057119828925696753436387390226915689999619531337391866342716730903213682812892248549084699013992270687210748986944442352622665552651714275949171345073451676481132369692309220908269681753114777966962469388383601507506686356141311721527083107913904878280304645953040504145233649263272053824344097685517903889561122137450876070254822778070962471596554150169052738918995101641350941222920113862766133141191566853713311238325278320087800149142613556033280097872512939702027849385001020773129430868330931498988090969847475371647876633107531945618587660499816703868647630101011607201317210154685828056515995013170495284669747607432450616604467186060462297478659746684734763253924416095589240311441482964971175718936079968600153546138444786376161099126075274201828997548122175084583178228716806412812247171540747982557394779813902246559771073778824278307197686851254301431943738181192023587028843230167664481234825438144539161161119920923012822440539105564600353115188001096240811137090767130986644833578530906228920951055315029440493996991230984846618971725779108362901728608818042601417250706671203051843925926409760923803841131607823406634541882216944400108978773318387337765681724539044888708321715717128694328300117763661778533471224470897631120454100020612454612404169209281750780287753573003480300421352528140824879469752720109901356257653934305207355146762803973459001345795828818340779305833966663196909515493324527655043228897875357441220459538325878699265470060781924418685868642043922874971516507947098563048825036391451375051867228234065036811900217504688297050292687985111647714767945021840473447385065279352861834668933635952218596559790123497800370736879726910638138453457240383772639193842448864115691165325929089210230284579831943797493652389936381086702894276381592639675581001885314430126237203992436359163728311216303004967010704069712418240858008448372225367445444970444798464943563344535244068523870184188464331844104267253162557607269422839144898589441617179673586141098204905853239352009121187827812340020633613436489802382182171371064005555550608081866531342765640965312724205568997651237331755626768205076026270097400752542459688749803543011565755815086584569825223232921973909461026632962023209619601632370918354718423859963793415151077476816580928213788880474097906388032696079803475565776974174323979282181492861745331588532373332554442576781341928450002240204234636924967901981945286592335193512871771379486075812655194532395210080637618153649034079960338090739324342694414669308122791464878738924755309952284996248874170179688089707404622636859415330970485416819137425906875597857995730391522534345179874431796867353076062198189265962067280683588213488552565179040578036635441995111356614595528709248054821734988291316516341416628212082210503607142659130087482699515484945380401826269166296571161942483937129324728157902796719141568868042820408234424215849384001550235321006998348834096720954185016035298213179071320416184620766429153435729729952254014624448132440733451816397732199824375374462416937570017440468066117760296328083884009743200888326862896574386064692930195325415109609253404705206431135935649247568797717473177723840410131050373182303498797888203420651447413656300623697303613452088942244005255501206361998266007598911537903661678872217450283977253144885670338948413011200906326665265412574245899549405872202527625578703809362202926670472872339228751003347439912575518036772510144753169152897009631827887673437578554522199257944676076001543440290466137477065958819603083199626453122118230266689566926511040898417432749783343171069383739166763798330570322640625959298087908396922596304450380191917621161928978744239979459162491998500598381256138542082607273243483422604796164229135073171072090715850155005600288401092637651069538026418672643912733672747638002826594627083021749880971791929248454898356549125434691029261873485079353197068620608205310528968850093416310297661477163953681342182805289526183302377677440126307907299715642851378551907603692588927750402029726834738874168425023795505867554796271183601817227476448813453541066346199813858918999144717962778463202343347598848416573564539971909236349867015726368592392656893405216010235592819798844556623497667858598576510431198746325364215877843104885572349845050059933519027130377791006022739611264139110891991914175751753652986525328928268166375930182716006305347565091015861062301887304987815997301478658637319855584114612482120718795110883350640828400728814734434695965731656262410491776473537082803288528204795057172457153933729756763397235060558853012975651826285112636529765177889944679737247544369599300282563806032395701143827483437138767306725074910494832671757882143521612916825717445391814052226349610709935432502477279989918687392065768097713616916492639898936093081734278236506783897442396335909531466215449574184300557477828387731231536235936972504972110627308720454489423393263755900875317637382787108405529964467153561289995069415013337214241682771667026761529450596292151101717561432296090876488376046235491747205122224453510580603948502631652358708700422000839050864860793115577095428910326552699805780192884317844624224382075242108501922025971894301265721219122702358347838173307650245677161287362539959187182595021563262300261187262136153989668658336159377085438680961330288679593357519445623312048316592752582700237973021949877059049648303232604907354755975661485979898769228593858440467099063772054918031447642763789632541324113337608497295429683019104087089955447147228523998876641463836455633523463731936868421543775064994056394315716704347009782813142292087550366186772289110625663220534366825767538855636819034088045599297599336101003851575521235391035920103719538886026080181657227468443577095989581795408317800594104323747596574382328674711059884384580509601530663640573774102636840749148337719487918840081044747158341242090999276840417790387872943238172450108042536969964053822507269783449367266960406948380126918958171317326505761514357135363060939995433028494581729525529263307842573716410693002291870753549306105859928990851698288431441037880124509322195067179039903114511465873699130313516238887149776034235082911315412936287727912582811487832614459054806918702005645968108293048492126088085000874843958351484171521516237978673884260839334597217175843638428675239935842016962635140217586854070452933394424599139470661477324840781805808525274758976370896746973513066278414351936331712923344290079293852065303564690493051971777444493548352069674905552284757987965344869511740204981347083261713521077702415872605463900374658146551657674593284329346596994062324411582633132779972096069856249731260427468368118723541514339941997693584631373536946481787792127415930246091451781494208684809510100385077431578344749383650912143351921928403780751871660030456714679084161723978969800614374954606835259449521250916504179634913418847615710345434496584489153067028145444853625545366770761879753124975690294339745175189278230301986332272738062643299019533683820765074593284965141653315193676626643069363245189409128793620381914998438189596655554714002755826087124149443992041280103620975901422265740053107461317754302084436371672134003331633601471977181605289216854129357466525700038537950882657245758619978109448995318526866993516366271146187237060957907680127618952446554714492661197222613856917712100416270787613183961472228524592571592625489088756527972885855381482853176638238146316262340348646308958633926972835857592762073736790188862029068405626586925512552600369843946114633957713604685549606775596858748376733512173208732105498118208802666198601774827444656244555320114934402391347929888804568535869550966953328456554843243364179668066215130810855551086761124043270223030076780462567384073141587353688401233860633087923609884628240910233462311116001989461339371886486730998346942184266113835428739080029567811911066805956200995075069963323339778356625112939238578516012859946498622511656138991090889057307377125980951173234160332174206499329427089268699565844733600767374840771253896460814129981559270335070184283324111646892184823810325444415907678766326698863656527569679415462098950351144248305914371395424924815390352887730110618810598315564071997577713075303247313458938266739989601978970388249740958350295704133711184353051345489318933593249418392849962241325584174244080283878560283243621315038867534823238873086912081901521638591520113998882958501257129104634754948502021671243405587765648850797327874766909352891145321106449400599948178925450909428773431515456765782214568539253887437405091278689277248146784193730269441605845057476180271244861741656922206911522150463489491713152117668319550209578196542628466604566954226272208330402198221791803762151591461351653913976263944799687451994004353313594760768113497793786306079612395334926178124241526099959800282961557139400950589666598670048451171708932045024666232154634944989376904979896216259808569330083274830884765702919060887015885634991200007791293184708555515091993385730736739660654499027699563728599391811383854824753324200871158904528435825818929228738755936091158942850559947434608599895604516458021969477507442072596708445818209667277920883359762327678071611346158747795885272702830797661830110351144085008862200499647868159329962727474469873211362375387653245699660765290613169509549492777594215332642282561023679269953916069552858980692420488561481185309034751736779364489924553716809776526266521328522998109933401060475448344922149658424237033021621262720176233105328488921905707092356046430017913166844403928274400244002508122570575204711945335363993677535250255897545075359219634875067654104826727934084525334694507449088472484681659979986355054150683429388993843089552173706275742416802664639419032785234417243770794375724779566164194009526377741909238881629209242366308141080928313321310340477255325579726986000937063769260574620580843400604107449016403057239344873372974239515822049054583757293318173226136443289127681332779338736655286672446415251143482274347919876839063846434507054994541791355478675393595597345678575497127003309172073380740213027966563928644045719625542528939498682025844466457360097504100975080285179548647655503219607510946349867618570845553568325832231254179572226062522790382688483494521816817023920130745376641121462024484728741378034863386866981052933757056269766105884546701171053083650646716590374164333194263245111879961235478600350725306880517208272973981471289249821357395702849031668841538562530825700238882450689738187328535662506637300874186710909030543286120809634633755159697258828639464222319255005787549663802371053956908873741593887997637837059010725505357550634408787805020864209726629023728855877281988020901664238781669656367213122833321436378845523569015728037566442706350035569468953625191056190043409439643063179261154431133124918351599480153984674524393733454354986493778780736321699668534794694816905691407370225579858185834033560003826807583869709204489001319219770152985859067883562789320996002104844550779264282575462235704118254638254106492542611753529373599981869708292165301563877020643544027042787131220536715004335551172427306398034264402817711015249064841873325113014236689610722170870147116560860535491194434711275692299278066418394801692095682143957605602169947596463490496325560240264038491156608612427749475172323009727121813191485671758143039525514460150446855772468774658293384170853417538942928780724741297910959609422053919896063514693333057666443027473599594610494509960707848082263082221165982674109787901199146471378237063684456155220816513878332212513980741430991325442099392903499151647509919535598858134361583720744520474662173858897932692919371195941116521961358813684900679799346569868787795460848041216269275377014384228477038753607205191219223336918865794003175772693017963125810479069637163292669287928204354811055353074362329668858676074862727657883496283724696543248742277750943317528698646206033213605626017219116507519183848037665421348139877028071778629558939793561184398697842557302040311531706318334420401653627560056530988323373582572245151261845970133306546833453446328007355487104652195665788219686745373195568378431116280135120082369619825164796169844449531424750809668057130075775690739017440914619718399298724270454184033100696826743958755148732029160068182990562615787635471407203783367833116369477001949960565857066758475867299261635724343692000120872491985730452820292906966471938695312926075611681049469159595306119287543463184932352774436084523618625571743721012228692498973436603980402618140740039477115751749893276019473939532089967612533949208390348883995900141409855958165948887377840624201124425464890267008717427134632292934950616137762997201297254834183448087353769849062070035949290756315377525259421942549170358061203511651439675159843648539945729170780864349902533734755509302939840226785812228366885036651913163664055430386488908089657866014107051193126370650066454547716093720464173693607187792031419660842659705768291185922349430024195186918247936527429690881486297705126357875088379467045389897251969477528035144199059315266740947594418787114811571027341947421758914698276196697397853579516387263955839594807724361973264864062029054098338536636085096966383996918439171936064856643876165933656864407309720210367796878207393634780260228147645496867381547147528636046643053448872928217157349449555037031635990421317372130856497143827851008441331918210073183801872867137902248429779437413332504796634224900394544801457341708152283913891052588793879384484787814169580939998029348273029585095882950233326867217473165377202653007984103102766748443834527909327324680912539049148053187889436888949143780388712542030152722124403148611872878550763693589705137765100610020859005394102088734934291127279577980257498232541621272138651530947429793774845307487993846859514128477282998975934165375461603290892791892618181258040168251294689548743997692072726879500223655626648766123417539973036848629898115997936793562706921908861631595369874992033436747585826877317256099192199024654384352640822517592632141469707383670405768905561444853779503719664649324675855988491768008989155916231912602146921966320769057407203988263318106538198369287029923243724491059132179217070596646380844901814950615289186097606620116637336601197307164809818848265163714419471865886598625011929073428673356953298231242519719953103698136520263845611955654652804148711971158715974824474770026430504408915118221628220353278546636141479543222262544713793793113876733042977602049348990073215504956561859946653488064226179585150034835674869943373755793174123709535489487122980480918050835314036640821860768721214435755722263469115735801534460724166960219465441584553772960772373082097754465718937076988214326242489884024492594638675316005917374379775201822068771711551714135904951404372464954709796984065620729747196655808859903911565977415283862109252997573311758126800480913235354366719634536820731004427127419265758612892522207010831370466364016501216187498645458079858951260087476978914444344983104903595663949450125705997681503892552451589034953427785174934219024422726693480558865742926925610189785011449106003439382437703416266241836035053512742453006736440479402388699898868470963771125711501845441069241852313350851521885603206128812277688165832181468091317147106681019345987353152702007339056649622812054274518319581245001450896779869820432246202401719281222717762164386756064688535692358546638678675624869696900636738576952941117677453647624992355955683778978698804660519680334473239195836522048883762472263445285810265995538836234542163215053456498806209151626776325049076693233132794638814858366808946773762914874670961088844929811219830768408425128933790059486396276575607463375051212556380293514422194604796014371273495038971343014058217128986222035854365502370716393354152634602594144117958450807748489628159159609055369965888208187853913196383859173027223438755442803435725103046739691358277720062864623387479366392735571490976320189569181028184080886054451423754444777510719079483665467417679733263419706095659311498414273616555255540059401416975236370082457540338407047607633617809366878471636682576455149531277811250705582504126038785102951547165383156825744566544401061346705323110840108552897537325706639455085459286521018993802115236806332295906678929586214386686457083077688434707956657833632779303367954662282769020882750549231533351014732160614785771915178090408589731903614636602702853820449534419024904439733409899526448745734973057665884376793361547663369772338405456219354588278666972179054180441104563330237183695022570599699687691066617841330563125587854387706180302268730777731330494029470770003839515926741106532743853081496128738884486778199607966378513425898888764587391076310121294787289172171731105208631009081289528329881698078162256695951247261807231492324952684294139639893873252118675949890954681336557452641544328391076165210017322597012073095185137593955772442922427902757325012310198908550352654873121109650815772767453518233857559176908627370312919996974728106567719744649362832533883390654457126103322931261415214262753966311928534622312615911828506338585439979229954093550594095420785528150380764211897495524590880659933470322185898860830092053708163823462325172090836282742564564549331484790615368401318542357123789369269060548315081690900738293152487791581284802532095660425301309280774076550651596743655618475937031243873406499994429866633252404683684987095003481618642604152275939241016482970563182111806771587472431256713398082316751256089948488362484283080439042002532182711727738060723822454564869785005349222953565489418465391215356151283265187179496819417406796757681294100824728919816082489265021635979760106346409121108076169149263030629007674615014651531230920449460073660223413205002340021130170903498802586688044706320693124802030653924009237544187398367926100394307745854346986313946740081875361575002472398254912071510902186954445086255759699339478218461903198739303356914877570114791179197278047490315223963669583984678348827102545052994727738265519882454400086802165224660527955185749246031398679571660664164502542175177014527220908189272591158179566063616640134660090302013861934240103989999049199680004568061066188065460000621604906062201558467084877158099171550467422767487273312737652955421894341537600500229734569241431640951662019148602506463686333472622227672506369602948533413479784662504948821362206261248780755954281134048115611021512707722865736568993075185364841278125385980834682391266686121493547421346632524865566709049922483090317111653398412520706539542394336977351351708839166864089931588922845418391737805039311748714062053670174229768309652529524750414633969965454303462043137449583968868399050656801237394081766888317618197785742514586966567398283647307795420835339161980502024372028575891009823527195381229573760812554123113266616080632876943384729434540286971103107946134179831267823712888997988946356885024956068268629514854478670090844876030554803748972661577495693810525632338121887857916612285967085960651021218600230968154882695328184198448582607572901074932795663644611265449198271575927948805341827268350047414215827889958579916355827206567135270233492079751456761223261425692154319383348925105124972806780269415880925120445353760293867422941088331259697616412320274835003496959320504520727286479330745412565556398042080959189494807615652588117580685123965424186965268110583878940350504591822736134318496045719045876309088748991973900702034051568079304638568889352511374352907949706885537096429856244987202663685127789162190671117628737913349633334772063041881929514317236598234551983324875391636524635650972481854590035674349863471934649575626806410982155295082885148615778972341425233881292326409998287875540630401519608050408721781386753747210845682061983006190756954938438090280897128879110398523768556531540064037806647047899493225607306688435130332544625687397820067484944945952464010379500667697691290425862035033958851742885748515002663273683833416330419932491497052260072537597762834692077173323313894463354895644323247326020025011134361946347425348614647715020763453551242384136371149965543998952818210309165154811092582111341342523290717264413761546027516438733707098865047111620395577035414894503185363827085991679963617234259392480978835011992613266730890784553506643999443213457153721379215433344256777758698438727629253546579902453537679271965879500791699086590782081397377333369325627400804313845259223606877914392733779681538045724580720641573392194521633916870454591467043736663252805788535790673748847712152018514056152317919497981974259392189957621246987842264245933100540001257065674908120397982295516159725284399174272002788028074614675911053100796913927578830734751201310589742350197032836517256743715520623581633449034114125889961403704394722025737557084531596280663150773695142758713737018592566105064557080232219132623931705806416580988112813946039676601403445439250571103028537027628750247856468046683084500220530485647734112211907950472463692347615497870634367600506641499188936673404818140306556544764657659064552831038075227782094824149347496756666546468523050101870597695638870193273392453170483444843869989830845341413985922877374680924599557860031972581836498208133178884292426052168707326034652629446715105614767035953889491654161100904541102250175672349628255647087524384718253405637672339849151146182874647672009650167189478528454975799516438991234992712093282443981764782123235298715017168880477813079273891111133401432889977849799631210832953311152332809333255014454337699954185389058711886919421872722605584062950956607265828914618555561925641945014329510064030256133117926346849702098422455847764271935816330470847079040845703501826489427880778197080117667829746525980292650832529016369958916550649035275864597013054408179709887461976290163517911733235052607773899456527351900976325338480042513346976403709735909948507608907091311964469157078111485580260918180852974970849129162422270637329505626758284512492878241542945098346011660137680773775482974823995161979709487182936329805535057905586268276787608969348459671529206511447250214083698432693871704790396727208196623130254180756015724257057289004364088212654644588587778914377947156060047754247686699618722958125685597259587721385762631392504974054240464330293381512798084745773134633321646570540730552306074916916047499353144434623713410664033263292186437856361111888211253508685723329027911826056885306228961782867139719287530243197947223535891121922721440119996740685595345537822489168260122810534930357285177028069864052296354183882903550200316410218583516308928998003344837272815903692328005737475644664241253450123409331374936501819789270372376536956450895631558770514175756839907018781519316175761732886896899671834960742329917885700852844431615417370959718231031581713453885751422890672283441031141814194740491390288768494381520935608827708186412141302067031113370919020312273749517347458830085989691135088238399263428697361282775472845581799229059978347382627873088801375837142455903645338758239359152752789395367027567180624502343621404662908184928394985933058849235544881817435505838378309552722115621921118988588143132562211376977694896039153787006765127747135833371877381536199395654531062085776588244821396652346112108569675551580793454983217214611510710418009325250704565537347676423324247444899579663092494634542335434190394727380348001878175379294595561071213190351228882548062016141239117052299186721341515410890402331226402975161961528678960875338358443063167891571912357285277623043552566386348942489293379286297430873324326910542719523293025161151561525542986764596117769589861036959370365454241849216643556910188904544827289655029195036434249858049892436733755815303467090718105394373897592012672552538315900027990677778642092476771882857004379291060772100409953237565267830095719369083319180222050904484164170479731178725361959163891195823622012518001239305165716319341852422493779268356103039661950019030895733918257422891945074696045098043441395994715577944100970141325411447291139017980775430248772061194259107818376359042976345713918774743231019275808353422569764063358564718694869978701016488940620335698395042873255740591843715285687376467981769285847043919512926428719224257786028740095341713512364530773319609253329365400095754393285941210289463433656845130925154836124374038623153907732345453028281001992981993545795804830501641517708528051563374933752388871839043712888116594263968995004511257285460453612599379734540446232693181374883425260604436191484486614072487543248915054089501384728755637725429957636874619591273615561829768759971924358189981842336466256549231566279958585977701114064591228838843838524590989671144129958692723989802018719468520161108180587678631945135792832698832708869008158971090892375337565054133376378494864532375161500710342456163020106746859810837811740127693949031143534970904957961580691542741666555262094469192140121977689353749785222089103354736443200683706569228936212049787033004644063956165838427869018609119015220247649651570990584276605491176682655684654552786137896975778026410634619650976403909321478409681543485796234892420269136372576736000322427037373454468868451237500119953636669436162438823082382733037134766367120149208599105345991240084556046317071505130127191572522692170763912012449603037376841905613432811158795913182448286402694663716499168314593392674595714266525414535064388078762273061960177025773371148839292990551890337972257736996299753097855516002817527518747427317563464270686496154013461027670803062362092661638966564987547703925742525219970806420842201632056783860125559024394179852494139928403681647126590705196598033631630047672238816692529031040219222056615934750731725732219072740575008112192903538539921639929215354587396998481118865490185665386219221031792487019889095193101654721214032518409615253437405060780141413249269109865794762571250829427087855818061421072635822450597217312395079169036017106158610504090465010739779100601615692242346790085718762570494499579758059573614790169440189087384780583413852760001518024323623653791257627409146367812651508451610157420612200130681704169637778719864627123335730662397471661743715405239707526759082701981423367959892053706333565414177286569678715020123636918165231441728384609052371297005136995261207229522042944897851603893602331085191538005016245716038426125469649566869618875893985131910910470633365769922398243906682796794115876521527880093699086997292822478961589436814424482458162404561945041327605371718064720778516134772435369012174622928063076736589804582163595222899559871535696122470624956621465048986550214381376391432099336338007644526586199490092587641460237212827346095058831055403112438507512691015127339733711949327139342640167344020859394113793225921954698043502518739390765625627788111737564243255941954716637455383648257487305706954858648650861784366342832309417991666047794760330436423974230420036640981910016521583078184603696253052671405349418273447197213257408976821420719015217397059112759485553707852531004253765520553098937890178607093969561585127793420715236466135981898860965817460659923663327954398298469732377928988017063935748409621663925914005762082768477350253137229929521649206914112794272893790472070735741681317363332603516935715825712267195715006362001530838457170825959556875080129477884034132609004311726364507845933622741238574840467987585537589398386516966919755532856603702009688380059028070056785795459084609898997365327245610301862862463919227068305546284351014027002346350350034548125430295726950244478945159064369406761757879119297437069652936286526843007972574457188423157497878448685459453078811376341457636340837903425515682486910396258152157924275500850149400008995200054609784130572852199984026427508207586779908055817214402184181932313985469230027363374597461157071082682140621945107415235398250353897355915970211163654357583583501746460967554215108546227692488152668081708721465265369838050489250511786863436361081282191442041873834340932915552113178638444450001134765074335380720363087966574332877163433105625114996236205633660098612939905010160297843706432291792418196009871898246536765912174648478895552708744364226699248573034704104107917459047046573666421883288846525910883922837881267391038322438469013552436038881598707475398891928578556654813040616130842371658766572526745771947338663970395202101200258595532764752098171384380377088660166400012816018886550028943025032560880044390094143691562527665458343246756779257427446060249924392132265571357413798613957724132172449196507823501484686194179528248355842042196920427891705925429454182687731432179182394176413018073723596305073668006294206521329479044361552628857676538030552481555742767999493653153192855955879043633727956097518675419126487845675357177055326625023085178498770781891173533926128647775262592543854391099223141530730404284698373443231866562879879846386161585390097945495815171058487793824664969943761667749011040106570449230969199952254301301505850714108276123930090546831468105221145190041067271359715017255991891132795748543950368123934396986382338696673824297551041424903370095674561183090049057854376537378761022043890063536958924039206961666684169510036742787005479861351420426416879569629545036880818433727177866846206498966000788008805081352032180554888604441938801254498617947509024020782057995500142791214217346541010054603156073868971089192210971359336890813688098245778527294795206799795289534471454689958105809598857890024954846681855322726345781768814682677381204412114813265959931880681423026242708437506269454273096215038327472551070281949467855353352026690192767215144434620424504613051757770701633647681674332921305104049993187250914467564106376995630526079453490572169382404002358544210582642206032722001935637367686947691942811986274693829089925425837807806847324672144175248900178074486453313869226942734362233551424382719805878405926373949422699415155769862125459380124304648187992804314729723219066375462465882751381120759943176993813219844049811974467756648279388056610164152302641455190782413388879897420805887453479977585330154660757846699343703473139001180689088244768988193923790868051229551940691395377253461354936438047001001729773267250354014705682542336680969163045690449709188190555978788220161002668157004679028952389466849782214341709289223995935750974374163194298693734681019173847328334121698116392949068075341930609060913234247379438121380572844799277375041634542213075813605672170459603633903846705650285778088082149528771890006735527342158279522684320334522474640206705268239323468963714552805330331251108637370426139628783174872489550762453373976691974273832005468311237980422115474231209717943613223661112556116207193946684885974032315346246344595935947860195148507093479728658494690365177884366553841509937617505529809536905067513408587433458083243713610488979187898487705764830600078910905483301176049817471405068957922140027160705395477144829763998461605587677662015548197554421766041569260221329916030791883683373914960983363388969156182202074246561055990564499056384788078893015647032001629312833065954253825729523253518195379764413445797989077930068002748257119935717048263210364418616287873293452284741148994024808810400215707358804721726905082050356247056514262531313741391928952081967616648986206357496218872579546155668328433932942418300616290982545935073117681493735304276020767598840914972557558423668986085427356202975883564370949241213234171352755081994968143787747480077980359500704894595287059590231535385693474229466261630973352553779110300214578158240219053223509325220242208849147282705387783864449914150919108807904768280725389027639738032372376135336804886732263701831857001746285286262928751638396308592588239455199881500242910236269520979615725809674482756834622184291844751241314301440401734314119614017613288662323206205383367617203015546622115509674801981961477732792149485906342687791936969807226961279411900426773309267996622744375485099419494678443898646176946935954283417509998894566683277789256308411164410364306732672437803816377623008423874550103603938043990200847310156338056680779378447689278552226143343396735351442710465011960481266570169243326908709991644225058187703332721445783600881387638986560606012402849116053357926157263818189929791393281028986984578002085908097753976005198872769377765899979517917420891296063134759484714044660896887806448202940244766241106827731104018863679426420248116162660042451590435649827267018952524027665137469849967093825349045805801852778960784923001799449121091069014723767336029092253859580126604350171585675995858354320974124567566124146050260357612682552996093080666741753777608299215382480418754105788515604236261699178057874695238759526462743829375165880014262467209312823391079119198097850737283614077065051610324806899590675897823062941882565311607954268323870068515655907379000491349191051747103037829862495775778640737368157619102938966995625262468907295180143358293170096840225556703903474759979696540538530375545574776665184674961433986538776135531009410624733821033440823086814367966231930429758116764434774213838247529321881967627822059315586061614424041330589902027681956657907446464590718330442343304656504249016070462182052250497297056632599861591405361091009585415998080967048148852996153502818723252465331956025806595487934170530109051006818339097487650534809351603847753384099883219195501475947699324168809852059276889904352732356823754761610447846456826545219717154046048356992239825804659586690108873186976709642279188118701165213199654016418102126130203568730303689766399416565031217010690234545322651118269970987686384544446678677793132526258183272469035711573095823563966127011273687943911162444044743622601704130427353020298741926424152795279384010861036308207249038461990560472957450628064678412506105710589109291480282436512799109787341353044613293567018405387548173480589688966080640204400833912731040233623099675845081054149814683644533415168994570079378977826477939182677798897875496719818191484321207507824066532873646244053270175086316260760611939808867006124659626153363241876432369235953540988973143549694102463904977811159263597173990750605753489111119891993603853938911064274079118009098208383008346524038799740655297170733263843054843232357116764928515482235502325916714609111849556927216462497860358541370884331562942624796072262369699356191470395578787075483608682276148508491238204871323794388428724103010156316952610082605885567498715891894846292731042503134588321192656067600244026667812434187197471160697264516993222937859629574644139818634514078260843339433269322160280257825698417553362559486873309235011655052185408602120878804543915783604632473878600070006966839125915249104984116315957385635519135352738403767437949711631130947148076594403106619145853333770924184869359984667987907309057428535586483254275285011206804907988881344579489573263992132045439272676249406392220097578288277672114918957936495437795154599468860430293459044999636640442827405095656452942071441135949787901727252173938708329875962989213804606982394530590471853479675303053556460093531144051146419068129778334932518054069004934190086717986749863718766403610007204212542558364407307881485384532169564887587621657122189120478329961710014139371741448266783860550181047493162278654397139132357380563043048130527058631599672991403536037389561990701756214153887096321347142173645853548303315146190352151378490738412037822564407283629698702093639891513177923282217019798666337410329006063281293139241061665820681691379113658842424091556350348731849187699190929183138266333058106807033163594140654874015025471322878903262250337987093058935725093764021160124399296395179426264306442915388464041886924101003868106550779771735936719743113604858981891267361617041726869456404291962360721901301797324552543745201406240310099062343236032055450111446915705407438522658091015547427437726340706033671209203954419908909510863286321675741072119223589020538633822503052616469135443422583836152344044258991786330948315177878782818731311039307881376619577379463832873776961886706124774228587446232630806532464487719488557824550364564536908846834261790106590021133951416958048914113371475799022784414470734163457992790577883151498469647996028595617200969250889107031403569629109219534079682976624178136191850013760460818642953495238858754477383483766860602622054875317042525750622542880405133035219300986726820643801876537883828376695308609083321409046718302002061028023859336601989118989652067146285574116807642824288475626268391310926597584960850477204283931936089314649713349296344753469038207110492992533137644755159560650893315285910462939367869339001510883607319882769128444641497748276051661968687413017714411451151925485711689834302783460350800882046728882029656927414444031645412663964159862278324880437411939898241785041412523446117495487670104242222736386387956668544063210644649094287715863606084622254539954901537196567271795363336995508726604710132423342751839021368839223599999376655403786661114998248351684982577614335790003724349258072744487422470905634857212321721577612565945329319315849347855905220353218639271077160048923162926375857605753880395310144363001506514421241996421533878569459278540227388604879203339025626684999672044960236862705876580057821273058173596204070769450552756234867063586771714950635314842616573127563615535745244024061782364425937690291653949413123786933016616692340817649243914797900721658409974829764570598228140866629046473603564852980722158604954139729395812711171982725821489676027750673743197479248310545606390382712142266714984810906152100377038251202489310661424121007449276540013179598066746666931878177604327093813750911786248791456842922271971898958483111764228854458463108952294229204408639205106773839371237410363484043767000671463299156932425522236078816194800883544258007913482746180948803796482340021534276937568614328457301774654291458619594138936792156096861040022443000541208049002635704928125534353765128148853863628372789840137443510847654443246397828625223402432311615965949056168751575430684135963972650871900744270429185656144116287314940222142591801038693550140605364894505222034825068339336877661365834702784231291410364899867551171166178161162193672351325233420927455089802162619907726210328717434187835981378211122524973176714015349920425903983719261094324923718479196172205140973720138886089742860873443377894069274204819688212183725134923697492657473284962150422498859462269088918400669906485150210614437726254988440533376223897744719565546897052783916886956282716368026055864186075454477942663256014272056266251496093421194190000583288770143910382460475850346403292019299843674710623984786671379522513538121713553541487369117832195344025539204291538944899989212518241895108196185437980248552515255422530782848414963442464985210040673599123453954672532299278762222009473379992563309705438289956546617655842465145319497873546734206706768291685095931608015268307092127362918034725607497238610515285660413031613032747940133392123018733466906422369286502071835662473134495031514633299501828376395507878480830690866975125106583509173514675691934710106233099370276898509833883333045400065590595855531789490950441972249978439225873642503094436739365449578388309559864216553835961703159346474837510349093761926463588723266304003367826895069297974773936635968952281726184036776706463855154912924048609164802693374864291524458708907434411807202278853782664355573184776357827320482743814860199564579365999182666563720697131784481968219439916707437964152941490778553137603654056601297438047365031288770913107313753901580912452283843078103113738512939114908695905854208262084258473356474959707262337776099908323495584962480143923539288424963757510055518289231879306248624230406163788215648553924059297787458776214520672972095159871134587501940423269879374973756983548169143989962146385834651844505752611543632511031958298152332786251904110441531017345243064276452362488056710643426322958698624138497516424459611601397730807963589544562315196890836902621012940015873374137147964655194452905463977288140508644667651246007333980054233465668720156411590630913157088140961533261112781750511563599713885867295047981842334977697405045946218392449671689458686058816536126278636817849873714002743643357581103881623881030987684313097550868406320945288257042485897528366198322781989081640122086989825332503283805139752202596615055905403001849636026612152302469961609913331105058335002954450695003891804370898625939586155410146580581685520618162580794608572341286743964352966510008345942110152894427663197114417780038181673842307507982777029533182610160004352773778764146059001759472404548303215699062836125125387701664564049492734926314465915835265342082132677433657336442841381384781755140236981521544159066739398265089045806178209654559913501955192273668444392273000823627981220221512917537042225891385159572922602076603683128706420081555734839053474167917435046339648474378373804796089949899177357044133607463737420064350897197833278369062404779142469361802440309601594028252502849091484606797132220488693287471355083900549029920517964763967921025899267066035522351268895025416825995389695274539879007898062006454692370979137720578371599346570167933028320932435611539709913186822742912788119345566504692928564566527560263024335437684098232303227615746318174312257392719101011606114742246151994151749453781253404347091593700694676834777713650440226108798496766043221281551660890611994423712465911159461578416130876926952486579456033103739523082627721219046550006376994457242922855529632946824325695745885486016285459076430187170448617997647415470813254608223943078731706156330093731136973871769487622960517870171341086356627382063943039801573027647854605920489476311896068131718893427686379619260275743532809196944201865424484696642059976458811520895534476780454631356507481977317755646478865576392131235927607549389331356280393232241672872493819294586881098042197858535500778926750889363337180635343139748688170603915487661558551092450288210063207436748600143322547206101740218357056549441019609102634686793885593011295203539075732848662231814424280453996808722022956801857310591685908903592088529118421274810067372278373183170033213574049814069423988812667895274377800576421409850739622538979282068541899652239428022783509475785275927048242937215028046509890752847927324470310365076116185431676597383241784426780214686537564672007045130248787063800792448167186988573157857142264807828053993851955734094680767091908749998557591970622699037291889400391125581504699613549991096847070771306559090998687756173575951462936939890092713168607614376477631859789209532889670134080829779294687394188448015348604411383400352669622296214917845989645749913521308797543238811883230447761203266457504991810162171895102401211366060689337617860438927988277367628729475199838945582982190394768341598015798290568545902461057518283575949002960479969567437831562147801981423074971869231394900417250327585011457968076190323122598652800387310776273737951226845493147935112439116783159523401112134007278963007470223676771300243798803336455368825195468940948150749050405927442667681896500321942747809856777219359824862563511182100616129783300913150680141674975948010939676448844595306671784646997857949410637388880326996518396407602871655262784390982182367647183667953078519039627970520227740192377441554060094757992028549149467673331576599292133746280845004571057227740321029464487520410562810381319902276673482948913408100048989551872271482127786408934859877944834472556591553423522483614542175730876695473777394593416439295954222468724938244546425923762873853819042000972182153613174123908252545975403373559240621967768059546705206519241391305855226611990784892677756347502703819565462793683420082780035637540004599552478840004577063925560396519203781160552670540265738947036561450988964917447797078372000104192662133114833002796142458201797212417986663183048472631647483222117695530034930900576342206474823156734175221486901867986570344961032171265935988900978617122788235687545265917793134033985174551102145814564959282288629004052885286358214682295655538018295124539579585150989925200528015012060771006469798397402294045057651097320663434157751959591976833407845220502053918847671424264710014256158705187835590526342344674661993555959992688964586565674111952938312105402896725026687326953717006657482033624077365907366559446705045200892192073534524313369302938061851744450933562142045632031190138248018303081646302361872323807016289768125517742933978456816928443371926954265435437571803232189366034059679652641042097504857625417641230880137314418264694527727673479926110478857079600267241750156727403461447328702120420920202320208689803000572773691722315251038124045913454586607950989281656592053964871151358193747857124649459742941065292047699603763847812916516158716179510509038521546413206775073390776254966975489977548616313777752070554882446305318177471555757289422057898494974169150746121692980986032488536976450592550958875504587100366514603461534703542220753214559461657456206981642921458601195733153004264478610792615390585760158727046367776142354591037037228012049758991216849017677103649756392927677854952501107753093635090868661996820988011814514817875503391344829827463178133536933714660945040821271364194474427703595800177041776515061926777036918468854228078527178477121474609803763363578081889957395407643646200681149641814693744995962751227919623355610009701415465191492531283314684118868686366520724465182988098893330210788703120687013900559830367072002871274816631302541778835260649525543105645566916777066043656857049928832660639878573335812776867490906688571326475651702417887706783090755833457153457542453204300722135833472960002732738785583133502600396032424646372497809385194982388543762259603753607866010331918973808886576930367941600585965312117073730268690493320957966633685806058536981838835097525685124701020201710000462901518610987400737922011112785406022297081627661997943244657038922101500789984305549657355151808162490535899386593566174099202685926201021327996563677842864903617348393822534671440815404125286692800754791525268579498959402444816551171434842627071169497430931637517838952173518205822804920686678003846797361413185517462671050410609314765015491229206940013399196596743774170646504132047886709481355587455893546374196655952187966830569296956909587890800813306760469109799006079335504958072666137965934013390480873044904997439627291616390681952084631769574252294023739125455603858736005954087254670546196139982583185076174347227644334099197692704346074230895016577180221877410696455203755367600117465747752766842940203344878640601033213692684017431262960802756251277597289935387250369764559638673046293517750634335973449315146095163082198470217113060396231826615814775214575906258318851987463286802180960994080136694779477462030453113389298955118630245139414951788428619883551594679862066307763665791173307280637898013207249484559696185610194326643288690953365892782560918327385794398158609942207718104648592293171077919653386736125010320424031549601728633198272639889336020038203056895238406390617786884607300982507626414797378366785888308816318952747255271626538929880989539862338858364539563212214372951227163253948253775108590011666131285622147908518780823480934349127855017726370531436399942027766589274575374769067531590839239497859815797692142639132897018408559899335698296366194231321094867845321284646152884668315760411563882045342508763066123005180094710089191259452057875616181947701584420820029853481884255060311854986255249999473505780897699274462684026482199679441281764936700536347539597762235574172261702933316964160265852328983044602469471454653405408180401841300781249035679813793509707416055766389469084144092724043395145948376232455928964994283079201889757765625231731798916973608929775706211598360096541915689853024332999504102583402873704539166101269553815138750609433404719427116914897235129952446029151793832194033970129402416852064607090650260589257921874268453843385154588449862016340080250606909858120106655228860541799336036066323511583776285307734763455994400667855049921239983480050868980048111265058867956850171139121002849686427865910590290459986617695402043839113922908852052278579064590015359312514996277244059198481430396147068437282897498569009095311081317178475462120984426017925596327342842766504897785455727902175101303766381234389352254080608953579373464685453680879948142859109277324306488524883367014149231201449812571620846068460390858525930714250727658184669119335028256203523813038316105970258803007149774684859541499524177065888857144086712156809632358436840083277035693689399999879954455233095887009133042573452452309633596445669404779584548415222862267145564360962939154715956516688791848097908070747741807128948171760802748522255235128749868592446946673508539955105016954206492040313393921159182517976224369131430506651733371165247073628634957033250152083273391909887381795921384836693357921076672955260761281245625862171238746554051357099985113769073327380120456330548498610114944792436233015990221402566539969745380011738674848694239116670324160317278340434721693868354388368625760825881681447700704647168047246529924375775528504191495859231488707981820963723980192858791575599888200341441785180386299702237243196011419933649092817835162102497246544172860985413479824008628904666415064994644406976045380491079121305992002816977978295235838242913722307808882040043078970394123835340826982001359126077843334970672702742837933258941933041311631453974176034260071342965338837052005601109455252020783966221372144999866269778606354722547108819542231001533555684758558813524777259606778179341785835370836137713366802146694098562473380666699322948663634004287864422857086064392489728891858348179532716621933143360861222694625593853030521848961831283150651269170439224751156584211578695208711467873931190355552159690750309295957091065099902126612046137195560181446669814907354488905967446670544553519558455157886162693084824326857960443863029403774004303833525242410027824126522472240529264087596311577552305289380519056343105163355195363162959603423351991524157408019746632691381137108284297191679128600685190446194319299600791037170760820664451175879626181682877001267110642377005272209090081309451911669982078101510788113403834706337288623643942070898945453417291702405759415941907699564089336627390079507700727213825381879374348336839572120010212277646175264403095634828345008874163634545634382859355370127091786465492273509126303416844308709002650460052811071565488502711611500027417668296085876454749507757779338796039608109612625426141290428407314615958914994168523071723302191244470694557830259843641073947364367872272623752109661271157951638198675219583081617597528782127305976027367741517922753165817715163751619478887021156365405120530379911597710504185253576739569055785488646303400030801751702112808026646403383591701378891419337260718746455814082285143798087556544556024152914691156756798260132043089824158941737353076991803216459379479161167668915309181562148859022882796280607066966852876237511968125927783207323936405943344293554600429151472536653752773113869822697765073729828778975536353963738795713369340636750872553559842556932007027732619123540652001445383883071409598641925735941066311327882594294413058555719119176212011551751601659205292338001804969206529500713906531527741507498342169150855633463611744797922682298160450685680962675581878805681611694033257413933596181418706564396232006527915710074643285901807354351576566864112879269801462410313653345226550379526043295910153308295260877599579218459130466207134956796090869471298299696197190515250063323348193512637704402120913366180458034947824901890000791814325837763848938856218935284570548128967775815157470811056401586973031534305241436994857754406459891821611653974327318528788317878976035255672915681299446117992839497407023031842532526849129535129512069140367935165148564080783828672181322342863977307553900280695735608975593862975583189038352946514727333939610423171403638228311185634778072686816517672351061640503161439878666357595732148137277112918680950694023328480986320991550400521469026130752695155096566881692093871933013080976642827694719100263090359588938496437152467870779341684655114895062396166420327041726825665785823047354201575319847446400555178520714552236508208023776977808121685990692436511842922380169676313979560204513116312004557031194710758213911803491204080697701617512825783608523279866393794966689294180116327444595399811531633990623257744323264387018255938860801733200947744830695443454965746655488365138383716821541349047948582334473177536868494404200686256011708119108836048950684255280874965313997341381144530148275423841965443517259392538107303287105601791202779107336411836926294600931472086006029320892036443671870889394870404593490550471228348948449384762039780644976808083371310175044612552641382894831323529002129187223770209537377821874786619922957911261481112226830927281472703385683216347307321372108919546974313752459830804612322126545815785197780121746274473089107434826007735203597473202049362023504393281788274459995417317677049879053981940232695292234433680944021351236931414483252282842199162166636976478894905103979345420858357717641677983764126152755364642078220680117189058392783660219598787010020063210697402661067015967880021405336187808773962912698877632972126867589981369811404372331346424625139271856234388162545878162405905074384878126507363062439737754212683889398838682760667295304924300916001957648660430273643493012472638447539051613535076131930467260357379473625938933441857894927616417842951267032130287612421027976725320979598300703964381528758832188838885596788946902414849426808992123573075997743197222679150855238231039870077353629000698673721805334975505009916746254966621270982284041558480784364946721370979087931202180052955334961558277339811310861797603604108304284323903559995810337495224031872869119300675548559402914948623491918658656175753623199871574807802059926575293636157776111000078179357297218126308467065308281437007156059582065218039638284349751730344865329083906391960019193223879852105049283485585722640773093467840942758972777206651729185627540951818638440100324427971931586521847672344294088177311279557492614105725324498641786481111428206076102262730105182653037732413932405437489438589793809375920769275735972406275338824850415793016909344965364726756270121988984910999864337472620883469892591824147990946045427649062470748597434752605252026917204419495881003355618669498730567949377201075047711301775477407252360175030365655444231563389797953712400936497470114824427103469363410760962511486099801003967931647737502867858045041024166384309782874434733174207161278283948467825854911072838061242063906761983440867871034947960712706262927871774029568175409351436875101774195902576898252197163184508027952813814723128014693405663234080429076543570731301810795019924679341998676130905607335426151468295269664695383629615311550317395429624632485060093815726049329065029603839914648383451804838559931157015103765416796620786294788683861091723738461311304332820469989631114310849577693233116230625948663742296209418089940391310698064529587061957867058037657110516366227858290223149384987601458399430188767592583662296923220757361155690897923089763319466870777799491704184822806599093916159017143303281132842599187957875277072021431493904354353228344176775579106489833162183404204103642836852696330176670407455566833643729288579642449224247741038798330751590924214032307938556259041403777492993765234680628176368478171585593765156186859576929653558710095677635643353725890525466580301540493896892108404652888058790574582641073244422077660358599626656550638781486000953939682553145373063478458007967063534727420413083918150927998007326687435097382521228064651323751714032942573644240730394721782955046240459462756763947346093008901637349759532485728578143065019049192683317533087557032919090629589288512134430753639683343708311096263800543982806600971614135356707260644784984786937516716959525313547333634676527162303419775291053705674817725132064438525017330647760095147277986078934080121015584134413870104187514617589759703887639579784390446245541063940042339723076376825550313748308701226370476591361644781027524908029130514468595771842567879358185013825323372784300585161222567857779925359002706499201800181684233390926599160709261853396707203722548756076264683133601856707033986527740477246698711975632440221610083226323985856288161631839067118367511283977097495897489659164616137279019936960715042882340824048989125864610459374811205608326016601989358839091547008763500452188269532589715227236807000789028638844769609397031040846886477986537299403568275885674598103800555095193337962160752507202923470888152924391539445980819402300141473989969976387936328162038385105720871584743349651963417648708960735802802004637910978129103190918318002213236367349053290719089651465369614534718667338180431203415612825928568977239526912820959301529628143365919036922308498366906828559669601832113848980990086467615334176596871043961564858953059123389293701660935540654658754578585314751560790348639271459964040334433561742779525171735364181773290806418216746215462439514919286505099448778200332559065265052099163887713833183047683010220199695305723677447714833365180535056535001046761526516449862660182144777585015684716930281173017277027270333555062937831661257659789951954533284123643583784839715599223367800600087054720872792448279519061374183383283288444502851043534847625503064154595965493403054693091259124065841873450740050853754319274172033213714807779621964312678545609026080984002784917613091914292146394018516478025407832288421154626084350539767867817627705421840161446674854341175327822350978355823633082423352175748706089296223006342058569291141354356060529885567529943197729110319383779716420332987546873691932331881829052573751749852346001907225100840779594315384072521311923780099960647294908867074261101391862515851355677653233634993817126759521020406018533582873697937566477895662157036082304936222616931929503363998758727852690442158784577792356108606075396222238263395134522636950607507362533829596175145125422923623673877943470057327214049272205730749590757738937789401075475570678696549985643516334499890882523955020066372753996479616715762624863886408035806467173024524182282672135814748228428030722676682593848962575392245290975785393270456530516800032934428950705870361930919037174259663286793909122765100039143264625127727225649124308245311613644928254345959134523097325662766471408431397717831519564548863859023030298915326661163227304847622792664962335989913969572254706691544123281723092675870790064328872739015826759627821264746249576266103948333720386184391075138475117104514072616520696460442275797225562781107545740160280471240731894829063812215307440957448283129311928226892839705041402651244864367804617462339315260353311478625472446081421147010861513645206167371593666932880170061888771170206759396782762734778786458829543894760003394448761476473001059733583032044267425984469588580216109216937576862872797996112407259384461021647743153092994752326348939505376178421915135096473718954221662344410136633193707810628010633082532885140413056872053665343246336896435893558560234000989503174255375227731669325613606850146598346359783867513749991689425734947848657388647683224026638785632801049920303624081544697937553523680093278759333490210919835563848386222464743295280970340994070519715196281567317849271359085014357875663172567065099820992415801374389176960060591303288661043877467960140104616171227999625685226982147737324625050827722470585151289536116841325927448675046624208889439167145207130655700652871230995622319912527071930313847393252606678067304627707261500151002004016552050139988124372984451171624035646341146584433881149007517999807627972339321436529076602728334645508441165094383978672006799413670360385126853142991684821742749433581930891025925875029644218172752141309290624427695764737532065671279475333300208395075886707218612200780339619497004320168702863786791069874395872686761503182067017430809860220156805449552212585658275738437140276027164023834825620306672166171752526877761658803754767886011164118979833507895686179419452620935420002792589276246499894693192336615171384694963753456651016762493394761357708829041917439419255117416109333394907168668503534510344158030213845286222232944441447881947181785035201165787679623762695727177181464687284800561068578482088764032548236077416771365796024767591785489052359423096288725416904035909706313195358777435073945915311400847604128704136862476719033038567137806172691947938822957872195003785665110059710439571007396078293249040040456415372450130399122429322145111283851314859797923118570028695386828078341166634269771415900626436971039254576439471434139757023767064296555391792544875330632353805947187977868146686365050794195704126963238446962666234966775737253701989538269898945084360581510837492756620866887095314454760075249178454120916260262081767915890350048460459140905003025128177254244015845138372859317762540886307203471918861289192713870963349823258387705978183064615354760231197625635697692907660482534650586164236004179771165883590894527642744653114117195400204645408810452890075686157440119475545202105718710015562582396501701887507130864984930260493270087125128490483465075450058213650353250114908188493614088546673809095565123295208677059451125712006080584392662309476689065006366637630966736254612510821741405408918827761099260756921338824943705801923611223057584737359612919527454233768530266403540918953396772689067016217439146537024335770930878557769159563669206188302768104442436121956081062897568287273462568644925504401762346512381924297540177986672723575104648844438265047918637959422677240490284059890481758438054936561526443359225899316657846235109477294419923080356670495966361012262767221949559369185003742179377038756752730741145750800282331920508039003203913988938130364325523940411169353486005145407432228228094457565577648965821556016285842757318932478961248756563140127137978328961974573888618690685010156351304716849410771844914565051319818814958988814769692594885861825598632310042692047915682089352794777199882868712814000982786441869751696955687570230026921609464030573252548293019408041215997737146155516969019897950738052800772353128461695407995368433934489990473591167099581388945032497078792976061827107858485563776412513657763844789780652064485596874109061534533756655635030393214627137371746368437964364189632564348405327304965209022963384545345411762059150815444254997159935806966593786078602464095268545553135675121543317642373951741883346272923309494117001700734635785440362275692675520025079660877165919213368044300512108303338433898094408310324691991394903643182710747442036546657450431768619466490019051071385602392063080747373522564124181752722651665747892797273891929919459230499223728980274526152632335624087438603799738229424144952221964890516501822875446343900031720639965055064670927483063354132838493574848944138863519996821007835733694479093638171605177110430358705093136893319347320866660618110602479737626754941710024355303718914713984451647724024416225508255330944772549187028789935524418890438338636704950602849140871914095487044197190584146506608323376432859705353989843878992674353063429136092760343494005338516297456320612476193873361938382705720466171187807916542313024204844902174835003182094572097218966630209246352170068724515689793674172053949976490547033517146802355628314885419942780509625656357625257137025199145437536479896495874801607849936290337369524348818715096223782580054026196546300915056885924173993161711385844171726526804124845739664120574311810250088415528381381664650682980776073335143110348029135692674799292835764242609565907246253736705024213229258359251462805791854065198783204864055127246439490016589461610203145798462368407746588778700737741369143255479471003457422414262160139588882270613608971492910258748562615256587100891172852101152002267310751085947588553196575957029543938623111851683739066869980835672860889556977539630922398115607661947881863841642886806320996808112754962421478621306966058745098317382595046743437144076686951975376478257317601539310045511271234322683853967261056663981068234499358896509477361856633326140584834033812568024881887748878580647907425756704668202354312074598192726292497268082888436039918098184690157365495257588781717655600321345796147803156560217445342099796205775691965191030367436318173463048427477850310716679866992107860048315809388042010266659670274281330435847989259124938260727142953710162107593172581831769176706704589876849764133486909460334259660344463433908165931471547487090092647439350616397080199854078876828027510468367315713120416424074854071605167642730968796241704341276479138385492278971146989946058369498029374398711763532966980231874048336024628387442765225855134967541871608188450302152372275038098901712310231711805068698444224386225958358675230136332000344937022768793766180972556630454836840746057987551504351774799303292903341825416673003553268654536248594127468158522867224490683736843470500649936721156007031333051821858731980445280354483794080432297731265754627952658078223193269254854422979243622513199780055634575674294376348891573542839693041325416261797457031525859176308784250476603622505194997788375354617338290540976634754016831233972178644656169419252807786034436244356199847988120706947994469889810854512609458269135320371615110865411800910921273278347530972622870933016502460314326363348142932451389847034754981425714263417300261109708537842263498385229465581086300793057901599461868400553009535201184034820673505879387848158756254632658253170942162827820306362779444040828266622031523061968582085715824295236675985096168073518621129159867421096652773923376004751766942909813237172040887899281622468421701015206711124996257073298825032682525987944638617423057365694215089874825367762836030874642164852495918517081045412451192477190948539636116920015436388366012668711908623807816919596413517378840706714020564903093378382624346313066951998343346779049121304064969601520086783786043363584731643013729973496593243138533938831591865996331996433315230646858436078155059794606998153954115210935171436958693695055996315247917501280320038263345274669227283750584739937679742790514293596838173092323732788306210753930997267040769244041731609462438546839606117675646022061937825824920793800199627363846879714411634944660951841238308506987673610525430867436383384707086266794765679079029772611998119196822770615495637404951378771802697849530613303307027113164408793029705267632942057379018671760029387533054913592690006417927880840683238453212410106068220405201307197540210550670977370517759206441810302122711280040977534018374712835280055273378664304774587886115564316103914687350008928085129201661967601466726389204284344977828803502147813667382682759658796403004632910582441237531935206297210932059780907716344513566532449450352685411371356906185106504952803336545605150894843612538822140701322232350437927328582381004659671704134338218111617727923741342965544212031936692956513798430016260288367392689901293927056639259645687390977065977173192082135807091448830416567569260486605216503869026181199435606032166214366377978863586759639547739312297767591933070288499147184609820098308551999951260865133059366832584832673676590358969989169567625084262843561044933597075937430331732354711666983476770076170532668948783555425441100406557282395380951157645280165743896924466687693719599617132867618488525710337497423542033670610543025644049411274379497792867884044628501663400586813021129448643968798212639429358223766023192292300793288165994886762791295869138771109532735283552095119762103127549719307756815851747689640951938200709669940918324659216855998344836774969564686925906506334865244296717426205428900000162916419088885662292496762929636763473701339162576760466118716648769901307920152982551484498928600984466766711017116627424456160824766763404783902082798937354172317629470778218086559406141426886063919890163598507201382936881906979534920761082785965179879607734755155979564850499965088546748878370959693741446514234008323279848966051491655464584398265290399942249775922741480254548931298431016253432263949251662716592305492059508261458579665946825231684464904546558483603067739694276173389216940979869872295737007729914580280406224987840686785705004932457050265281953884280189375211612546334590491243126016576236224338558634894714671761415751324933162306784446924332787047107316856215436354020057177650395182608764622629128576479660423759508762808296676467617087216159670788785715623022098810577598161893276845541947707141056233830961168056519722896624513493364150277356428162229184117341937979113872586032853753209084563604230521998208177226867578167225768591244249280516538769648132276285656609965197123764295609759759269143942645864701956511650845078293766308955880221903078077705891213959829796440101173882766248126477445175106449816996729835223012877978376070627532528118486870282207313344827111302459511696457547296504858864669360219709978804511654125865534803973599707628261608747462714885226947307721292828596947044990112853847142272551914011549179154315551437552314905019823212146646481026563841327904467042879621805729678659890052189922883885918583880941098005658169003643427982414914325516606172508139980539339982928310746629764343204489037251064573938542844476506720884435885723833985401069605997534124715680909819108411754753551686815936167957833585970656031852445898221753994511908702184277632409401657933222500300237933755622951787697770856550289589827330658207857350747612426273615219441179042087384745940963616823136033293051900967625712945450727696641371993121683201130188795020462660996330329062786306299758074161597748883485270873197181948198293009136277565855972332642813353914527910315039888682061327990312314781003911006808686389703163664049061110058960979324084152315737581810482007930947200749614377462649017100575270768889612841723918841421209089336740874105617986640932847049823744355865309299896458881916939685150366789304764281252032712189674571157024717476901962997757188398355156864502654183423063977137998819417750195632672951966485735333133591669855026306769038662259890486974538499450275637960565912732676370180634311316395007422712356113782724700563888889613896233884605461578582763899052009777605244869194814378127598800937597365282507206559547835463316167471113205625070365727501713796340941368616980037077161046538418541789461841481669077916643132026754936886000050562383488120152851855037990818876943959908357975826631419975634931499968185512017499623039641411852679723372393998457175918629286491008821983995240825970828888488167332457565909607647101368121627385125480543194378151370486456411902903515300959134155762374819160881638738997931553938365099337389916487954685571879955172776054906431380884899302746931833908803080738644519660706517763384378254627722326442337843731495809116353929893459321819214829201078032484174856370518194901008932172806549579214827991237108735174448983040075878692868820618984538112011802475362253780087336331217055062222331354893188007101263827832770199260808431355505670324692648808480425996415237807668636425845079738675846116838713369220547177708387181546411910129281422508223260097465859832399863227743930347247171500939419797555581582106353184171884198726865948791315368253863460049283206402388772217203581835593245979656807786319259003585242776515487182840850481862832643532807085830819864978988364660389437861574548052677797182621731580278354144651033368792676064155269695501895251521673999296999123524294772885996189494054043917537819615606631110948048215403550221926145137543549383620021445241365936117121180848201442344219481867828912987345308377075270000930698966958880963125533017636635753519288102830643439147453968574843518293683329650171452092415400651484943231306577111273601144931837602100871763491609548793281417806597589008704536439778638554896413073844205236187183941955046293061841415661311487451953489368403669124660886193185544952760985702737043363459437511028712032197684706138713744130528828025851438310420423520031505430793625803609179800875301753756278781779219760490886661562417239074720868217453108822781675408911384439079119482725868338559572667143718327297164571193150045407043993501084918963914957029029050640794529914744820811393639157916172585573316309351694946584671501313239065815162934510693451293450035440084862929057069888807210951148469089699806501022418041203447657687743339496953178088232796492605745034752441765696065755329652933722904547897089822390626310199101728044082865509106141311370023664333773155936999399999732133583184695636597640501492891913389723246268729480799958327466453484763818065856548722115533231037500996013534961041796287500936321362716459376331566315504188444805683001934787546196274719534328352035296866930951967529104260832025136010292739668658660776190380986735521268967663917559724950387995251430767644246725881129955471166987746840491683402855419099110166841246564231298159117788270323061586820192809940776151557314680555853097952314366628845863239390436130817264850988288791036388434334211746561984617316291673036152157713362304564012153719944648104915959828842675621825125226009892295215220580828206215520754439420062547936987940883734469743438256736067759871770851113313800058146348292119413246656042358625506417183125551526699988272341582330174299716445782597520587190777851294851565140835795260987983994412696045586364258390359541360904733298537890744407066320115364540022118245657342401038940615524487174130502910371198788019476343532313375940318536555639592659411422085352075378354288645048457333814522650635753010705313373992635865746590053747985098623372272727992514906075888983517832404153138698354617208669985111457039813522078829931614108041541575962620705816354646725709360458515038532485726174420057847261234509248362788248107212257855151792778498387322264365182629575308822724341294683606831488482156684726503129131674585016182598148858976414953812717434242421531290614887833474220267107772501580060593636703578327588936108401999199067788682059584761803680135968379026261040447283161563945595801136451624743560669356235428942541799730967640758170407644235663774617496812707089801857100378713666267719674474359896703575031923344784810157910743054184460759388459645173965746912941491582816561914573208725199513646004700460693757560487375703660101472304635543808078978279503342228593700637615923465469666690921044503905798581542633121936297720013331867692528094774056649421371532793687088646972275791195035175277248528300798547385230530873408868636821080881807994108264738103103682714228925372952373250231149439501491573172779070524341401247688598155830809776009087240966516952865502972505880347533220567542833101103822106427901626455558810202116564563877736121019196652233450634370139063276851782867757985043528761696235060870749967957565984904433285247281365593394283636676283195876167056541342184255429260027849785631696253573771820590531536012361643788707101009899069387657261068092133236358281853546422593912403933813929035722361869662138857474614730446700342071023204293232669542913649777701531457403288717890987455293898826096964199303054823826837329590130981616407576996992458323602185078686040921375826898241872483019387805052627392607518601744927376415135576339766725289513773212532247373775401987382589915074598110365141496536508347839346855963157598894129649870156843000946377409583527731076007198335961076283915253199899315798511290301720364959194051396615263755724988229133345273492850363633800015420610883980135133556844475617416195228463456341397467040511970282625180850220856742671928297313096263319948213583031686296117407988202953240469101947302366997847191250383446406504044348972132373535336831062575345230909296692343651672737264588240149222407084936461847266740406841939895456109947585388931533841865162879933750328614679390326699184515894390108683425995119453193043791585349729464871230051855596777926161079349876732583223939891844935068479627384096255383086569817592186120851596616311562112325761106729281486540545087955768396971752567019177366399007791960598727817168705250689140303374094382430298391460128304018070710534653801643682778158465622872126572337014663631035510881590914519247227019431386543695784029642106462721748802695485309464638976080693048828233654952917488247854009393105591366856348756048261001144334957604622830658635476153184333201623275255281948797887644457176315698838750242026981743563672300312399097434637839709676187755254369288830747824806904476322366985933815999914792329199457062163882505547316219668059984411091872334372323054388211537392971185004792682214079467226074707508479874162805523802611479519187540796792258369329509269321459249494386208377696600688391526108671656729521708900284045144293986847105432366309066280029450137002744871408344763836675343052761076063279071606264503234061490371874014142814416051087284165389007735439774730631594293698199332455513289672361765220117175179937542103580049322705054784584436912727516974442711984750677958754628640766989339477273360692671038427390569825558329173459853683575212875148775621006090160387451456436311486462208843448336276431097311768031772097549878545377833353985667930765696627509137010456708639332145065174901875533757031385341560027956766991006983955893363657677496170680576504805616442043253519281273899421789212655404302139218299978992297812049567455833662324657260498880669561483801357935560878070254274208252302764337660191139355467678668487818925195004882153187320701416865616562642266954244679523014385734620386548949002997365462202051103766466825094233751773058574308503159866706826197408488008792838318984081881434411897080525973173354818194121519567718643188459889367305425274220016010969588004232112091935725122066631377111766535920954112910154773944755148717329142902232514639454286832788572310926758308500813988223102736464135790054980575997023524073905828110316788015088793770964920195931218289017772622774727243969199223837156270058005921129903973628661405871568219258701990715781907243665487343705746932150242872673817919705735152113631859150282830151943439513121287084861437282722445909036492958050283177086262908410337680117548071061650811526522357876572395874578686725265746425751626077629529141411611403765843492011722270958271102488938592050151322786668081651456345354022416680910015991843127708770350863086881499047405911342603073584320798362491224181876945021924531066143606155515609796081558482814384486361452355251397233168977476501668708450358527111114734749945914633784692933562523267872006179664492099717117031926649862588760793991785124164261651177488306361861193572322110567852197430621532162461816189799663659120272746935600495125250472607988600612493467905800422150298772014747640674696541850756780450553180152605419536947154300668241714471565545958646242552270845595649961388489162740664890316448156602483244924716260829513520565342142855000534147763100269456533231829923241790352584081046127202205862241004868382758315437181113638465355937854172982944512787301594399204631814857114698443631408528333612059970371251885815185153367145177451175215865391065353041018145495017727657164698038797026646615593074101360598717372901906326096646807935345710014413004320569360746420407673963194385337825097100722402228313154342826531213536098890224080383851246264228664732333023588839721951746702909135867489908834455435432897509262058940328617118373276849862126095407603846148025093142081099228131418182035058044133901002627195714183643182889722717501436038553801374847265655144368288710821427039593043004699872631654949234290965957494915254317898208815435138002469423496786447392348659755532516686311928708670882834047032928150881801231274498194247371078947399475107163107450022196030427219701529128119137127170557454181811840568333000317282102162676712646042965031022924316864513863195439004727990219059643644867455930101554983215176586551956199114700850137948785395849414881193566816507545825542237995869492906026772337295240068434931828144608109741812766016823737320447952196950660368018112859562819239515630357989097132832547343663099824852565108304379176282981024049639158303986476259765292031887066418979644486695625344316228549817636123305192195779557447174643426100907471173546044644882381739858715368674271875835267884094837224172001415523246733743312121311995591276499090436937943118671837410681949624109082991445672793775998788679056358516669038009489218883067407007950891244590544107847612530776711094303011344965041453129222291138332374771551764668136837504081044028951390727849262480571272259655716657933521120832729657621406476522313381919182282002458479554717365278835079612302105755295590857161979912819433056470925161617140126203420436470313465435943216871997653733368640980808507648855445779269599450123158964847396613981326439436107353661285060142609975369546707326283776602033296965969118650664991907786047818225560621455165979066502814040839472151858176391730033093660680434740007313504585563682531839683760043090941290732895676327539590273465582729461617368348762791599817658106154873922535762636028634082862937968232666945349381804836309866593136439031168545129987418404602127506866212845907363143549976598079691500563690450049646055239935812746515159882425045863453729589674063849908030857696612059332565450793827532409238440333498512318459211075489459728615657084722680623181011066821266558478444322215763017205827566942578932689241942423051744816281345687794103382205496738353677031379572295738366682556065317387750290876161713674592842206752303774569649066748243732604762626934342002246783364952256858078763468024512938141854747724342159079531321289619599911842752148087104931321747877944669694522080847588109368514169740744363760926282628519505358433968821228073199389419125340603649062751427173225623702086263665704295718367809181802755457360662224233229110921732729518633321701883663993097886313038471479302804381581767792927343027288363616957929659643442977040106813149284212345514780647640108667388609632090556015494760225097756584363486326205196084913843756741379466825183678235864835026547531669390999423107277321718260818648276829022487579161359552155023438239429453303914143306631968961440034290192543898999986783604862965664687357453402534924031549629855974252780671745608706041238507183364803406041009490547327268866368336260742487103251079827718133341181435389478098390166340285639361795402056705428940683968822702029968992108347205866512025421764507707026801275094867497924712990538007290870664097406444754818368705332309572951566058184178928067214858712765515580143584610788880684216458066593827163734521541961167152309748074083690340369173461196486876184842456067340494873268227597868987990654831328557779296630103880595950061479031884223960996305975384471393163660303013343867198090217329989110170603282971964758253938329515677803540726694311437389526740538892891317898580101585772518657576073003654015085273561927423193474802989686836894822906198249186720149332235039536229141545901098794135583458008205380683994813884158794540396356775390560195970210114297001037137096382032805659622700904319233030353422649763098765210331214366960317700076274950748789413224104682409647267172755809120988004403819017433466538800727866473876759971689821940135012937561633738422886998905904494418232075959482491669097264895353430442935186000922724221593116763831177553150767018027637554134640536966852298410532061608090793959153060251260289750475483545180295271728521997350061207600138442214718386310774158149857209437902584484692649996019353575497756670032285082796280619791235369347324153154578140792395728944614906559327192584514631167181794564357107282888780597736281968474750389988424296520914002300510064491117764376702447617498205554298423675019171500845091645146284050481342292544225509600729471313653440392030877814851701986174572681661098559937330531363869552614976956265815185966017936463782157271041054609079664140013410766423122842818544377957477472117638581025320712726844679259600764796526545799233591693449036961687575411149443689389738659907962881497947660086758325986615900452506680603114674648031958399360938217291528300539590372978684586200739224449662158056537183738990862037884653586178659164402851304181195113878335155345800461858122958526570679102702611500966948971185405800365762042166695953020154630708842037522388854828454612256232713697207843905004379023753397111539740929336924944229224084467478499714258664699218571513383350761666355985531560852446813806761638787032648222323372414021183149321592725630840993761732202878341690657748356631292482587255485279111944103991214221520805568588721038116128521084806763814105920481519511537097861756581036872377352236644047400048469762768166563941847682114901998412011403693945924061320121366326233318753576415430932768825586312929627889907547589666098405395827023222884795457343863882820355996296526802592006520357062042931121810756903802759838142379539211624752073443664561777667769633667041842871598955552331917669286766219456871452097818835686416431953122063486734789810237101261018614679513463108030395964828519969332493653968535102621501346586771616287649480053984780581604501287323997319669788500398002610517401429296271572063252522864787594023143181682738962469402826236352139537372151289065370652055098777321914518977593924516530258076157322098868229334132281756164911647992437135493821545007797397269617142926160503931998142184658671627769856207334719387034773742898061259670833106961128259476680118156145268065190299939167509634813872861320875638703912873272943092695939396923885109185219836585211171918409147490432977394084074656547171661373857543202354530036967805614837019256008288920417887335374119505399033963128288400434970513619614386747622956061306817563794420540681862755071014537579333066280163028944269229798999471273227655662001274568275585973204808401348239407882559664025729953894823067249172887699499926393811105335757149057609684190343145566376674117801307175191530181547002978482431273745005800169884480947315529588333129330480239718915906879095268173834288185144200097546124572374251147616137216214577169903280079486576467396584878685230753858567324213997805046254108569189991460546935732540445637699396902150700716493382566476306522989667749418224097905670183189151176814735049576616930679766158380204636545780056142766795338252270220620282254107086951186005990417873804673608967717045409623125256625940739999901625169967091709943346065865082871889091823480866737468693305186834137459370639751107543537311133430691374773771561833987520970694959495686648426953942607270506173019657278298963664175187715714147302368738225192379494646577544949060353865995040441643378878417496681748778205746724300744441177539373204780044389074567773305275366370921480582176470399905926947370171669991031767328737036515386610798665589216589565145565926056551972655381339815660337275898759370146274757231856837082726969379189322039476958574812328050437754426428912746782471499294868711498515281436681885341591937461824023243055384802273420311371885346722630312001437563925873960012460081392443589713036502478033493673027099827537998326603065041456073062914559351849916367711400184586838719860441983268420469963415426756212746038827746474632791724358374109129229680725151188517343617735427346668766158670710832933943293203828147558785226095455848626935666536888483886928039599393441380361364749995384585255086643361257686337001214869791389336435701427340253722612613163416955620843745917947908138102973078504856763944209933965649906728225540570052548559047701028723409300736537201817845024751819088744390279732212531177247546656502579883680092845990581110091862094998519428595231155478721129727327991123955031130601892862176043581547113802254670729793625797974166649683106249889407187995306615537810102110367306811011708979881635347333732990310371150627640531487806505337679662804494544823184107069516818236566362521795976131444185195502720083689814543583560586023413047932869781389192597898423788040415915303111276939009589851875769495000133195482014990964687516331690224409419400565463475444313543250865440185873175137519891503163166949900416438690190343835633957451858853209464961579643195638621007968147676819445059013892673227232536295459039045127642961680082774625794199779184864593279271779480964462518743065548193166518008575722150362969694352904599090356667589298076036451931623210237140672298398205453211190892388995340201664834544485499990054192081288531057037151918522322368323647488840479724974081255920282242622581064064372342054069804563002116862440263428962852792312790422342717640190494238502426568526706238074508473371826754735928882874369847247609799722174274798963180829033260893201339058738647471247398264443306561451081378118273850318147905268434753230879638182484837889837070855081413689095979588599834147658799754564688750878052354065343321221154952663583859041701431120093238503475646396357515052317618583679723489326452930770018610088900180783724771264308353286541798097892273906700186119851093604662792704305978706357449430912834435664211804092361943340032633387268150088610381754462227877452359545808097946999914795771000351585358374230955125435662330816560359085186506888715730615617465019863552821549480528736310107866975419660242925190161815046108084447710817648037163633062970762992711364603757440918883178787829891219237925199475264695007929730483304550911259087526216121722203764647623258045755881608744022244832259793327613755729223080429262350405573019294066098621920639140624728780918916033533024486907014638786980820515960555771356071623412260870246829460924747175895866939166158222147686483873387016109428766933327122278399001549669212460548119348964360800044106561913687047168763001136890163596159826724279700943785792332185355553299173434160187660655433003136568299520029651404903691527324216683938852472205944160255824456616013345514335102940095787250700030620737457796868226070810362853362921801108686277066028442400580965350173337409851945332553097825393749502870800532532957487068486914586068523809318117668757081308621893464942985214990577386066341922400158626190505373068280326645361423515968203918392797514982672752386919005218174858767630829287270390275337801304084785919316418035133003729477968911704281595589329110850477287914514639324859190577669467308328003563818390338815601585840909085273586929635918178753042497888246825253559604983066366178196016502754228943925020882764125311375994365889732041802995046640106058093725835317217131496673007413846039951620014093067741233425547160486223813795511038634575140459648455467026333723509703280555815262450487699727027148777408939289869492878324612551210220346664109024208603573456407624187697343426693498688603738484707468553162584587892530850195912728443759278664705124822322523295386685033417837790545910862653947910292010846721514354197241215243780955792120553455463166351063790024470197328100134392226836567304848596900272262248470437349469306916441134354620087269808125898419007659206372752979071837454001452402407816251272170286786825754512654600849908407180946224524817533622623151155390740628545053122404894691847411984965025569134032658958993372342082012557486850002239714637603355701556406910982575314366064062883188243663068915683809459925933093742674612953312246941895954423980665341439630341994943369867148162305432954745482535158639518017446651170955086705071663937383537613013030440838358228681662163678464448163911697099478822596649070437748388397482204135158883051176656287876123374713619387040539808394018375328907002491780136257302006787819596026725766043666173418363392096130499199453760989773447047692416242359578627760355067331704050643890911695369645940643129432656672928771152107675757882838134669442639630430414051707623618114290715881804560600939588640081252847736175905235473082440026038679808973133567898745641375283828184891730556414199193383861687921763430941786725509683451716852740522793117078733846039950762735633257916849279543130633903363744960415977499305629128664934134619760458033120615132102258318369030080329092540217494776803820291198545700542856758873451168750229109042819747334242117460864272516155184164908926485775093010032662615330848024326878220381368674746118251437375289861126901692989405564447725772605155156092939747768974730371836934067770219977924780146850313345052927791261819411892855377921807770215557438396421848011823904898921797495373712895855014265788144067454993161778097894235565018172100227468469432519861697504416295915393726076996122818386693158907622351843086590767654274496207161951297131907415853359689984042491540397332687776822445738921801529432706834069479916091649332167962663652817998688658382993944311349450807534475444674078176465636504847009201812495302419550989316179904475105251553215854158863704238706531755320955329798363870224383859116096959857387488411308851496321359827580823568349186162463713674101854862212306342199463082954402643869660002160375939756516220510554264900313697601420832628381561925882295666227425750161087397152977972370266466328666596605089330810832573855442105136527545212554561322459449533565095993916752963863363931894914779933449816609778457435255256785377418182904751612191393253749465512148100794320568725676463782370462059362616192562830802346820638912838831360934993453900006926675366662918207371343396302951679514828918489801003372507552286720389625783454003302222623199687548289650757079338990339836692349862447595760722871103590056675886543248100801904565566496542318941482259947803491347057214367158352652032792445261682780268375532632165510053114277476603437837793661045457741782245418736690865898976837021862600663764954551583060108293503390713382364722907447008569176065207175032761078119589144420929854811444192667723536056580120689081318708366171431142772011279988379645728867056938600099978584269975099458642624736249650556823059370934927891277868793414679113994701207720725122723099420520213443838003574599406684743863391290176932439446539941861389735411195855757602708566171854035739416442387551897541032391356059885681445837652382297764984196155814954628494314383100276703662304886674057490902542539495762308413432881659156514241012462442778967017953277015657879530590249109356110630856113740349017413641817094171962527771316872051633928867919861310532829550093328202469367478656138469457316460330288689940073154883934819312186223922865559679671703312501425117454679318291068695437368127399322169914451997094348690805567336089954974015217160267949533803444511580446276264258619561390267626282749525241343269602544328528261056570918633880613228210969479920185579743914365194882025478767359747153693682011175723958876779660463862871975246528795667026735426051950616145153837422935048582885019852120178017294711401547928793221303373566345434630330697672308519265613134924001228300720368707841058033842389698139630301972722932720894666252900491454123612449574215761584490656156710459835411016858039979810526422578401761044237005209238263207520458210019793307884790988877152383751195577820743909233531490976206936039686988941721351435500643128706872624179879926692986682400649696916519526685306095272013969403368595990251643599402426519637169900279831333858664719045661349542065225206914045729644432734240559565262799336866594527355270479127762380000582037679697874459042725932096177669834019761640001339421758424346767591085427180192408540292266354127874557099095744653558753748187331140471675198521618866470124563578152238250066866202236099525900240529709857453151362545473450354988931850063686044476746834217591129264651554645354285659269113306625647809655303897623828650293880694582612691998090381078902797731157460481474826412730117548446565502819369289997384577751348788073030933412266872277119596428900385781052369619630682417233103429071514606697153424875954640698468664710363455010405246972423190172967960938527539112198734278162113770397376736778912609430018276806240080921433920626812556361935495415202305626804281386710410671813602359201058091495916084227860060688441631305919951424583022112216163035892853152283521513627075130103754463938165876993435531213933101825253611242300322608682458825269841114197562314365255760016855398475022133276421918088918635704369439032240778596925149140268638255385388921736583958350561253505030973511235487268527218870886708753395671556950996992988104713012722205265068771306010887536757785797596542642384647170015887666720094936194265204935441057218223166689643078226370519044492202469228841697310400488893081275516945556857169292411112992019632438678450736680018764262823349147511723579933085645737196279024042196257195164196175534786103622993078107571510468646533020660441264597068953130178836987206264569848140155414719191126693831336139530386718675343120379985175797268350774128103629583100637303558601554664122616283007109107660852087342368955770821068634268034462116372530429640295964956385971871047452527442217192452109404822468406901356124620772916503027038402280549484432657307220029892321249166674954398399054382138562750979474570272994066804085668473353304483342842475195125143378730011658605707558862655360213014325568884220977385651749017096915406259704109237561106010353804650658005961198785923474809656610298393908085139547834827143469549759505192107549181023247284549681975826592378398237876734858439954998381769528626688722174380683846326217820929255999864870795915264546737118404529528154140893598513698137077404737739706199221304714399990994079163858026055366439351030665964488444307876067197760017064742639388407123557204123958448875620654839699380496724174299401936187503318259824397761298338795956670179772035569924393046997767271823669835536359963483666708064359982554891741319045327166870482159587399105921164456088664331993157956561779739279223699634582802971746922384997339927119641280715363680050910649830250216720685041079900042154029366233997168863311381833434406732762603785619466367777676618463239810430762031542087469154289104381314584022159593925485357638783402686550081361482833206657906481572468350529529245737059934271472412646168839876474467073915201386833592620772673428915504538068271848679850883712735113126898587086935297239364022483328324639991644197298103380540649085658619568712526575893795064694941365263998941116913800117818043483185727639861219388356097983068135393571271296611056960683174757554555100080909447193432571825316286395937346390738291294589267705886951132624160139522906898019584872628025425154638064551409352059375908403879031882064542429087807798481503800527728094447991336754985365438574074460104924749540097011473245287524328895740357883043783271644421646285707873543537309146513700795851961668684592563742541445024679832996128996110203581546941946242342666365600970116162870981090918406828712519596640455120558425653898035804041805450243304791805257261563481402170044124584447376965123286194607489765132821095282397607887001953449010406178998834930726824413378838547650092427504250324512852011260406066919644209489610221356102708875853302171922854890480583602812373515264454379926666307248566977340901215222801321589915967754780947825268117745877307450719729401759628968811749824346738963743272224279546122872604486941770552744893408746257425382647698751966135647979111030998253152401248702260681069339773201391863610473455529007361123914998437350606122960452792741360413470432464387055943511209186232639903586379564316737363114820801135877232090577000906271585383003059499923074028299233260492180769301980914637338416244429638100172296488724658644635521734732615375539178801657872051500936353844668386044842448732429091524230682247844366166955468610748799647752313392472822081623904166659401317041186528985867690906266130649405631588058208607626099554313038179278446045771567901545716371150443857675735002018426035218900559515409442389881318360638916967021417136322134397086080652571667177457534870629194906957257496383670971697978018502006391727035696173941938409391321761377525414327219882493849202668605856977753659229718620514547888852930901452904084580291606960240721651562391954179381070331969526100923735068062251316092518714507790233354256252139624318853110266800694555681199403033126793373289318774317418447036374429081243365167479875354866620376220228095928443601884376331972643661354089145971070952227662359355739939409784599680283625262378332382551484580353880456416117805985639614196174495909682064199814632012736313932158008025529322988733830609051521200099792918860867828112021983129501853853768514719505650365395884781026733952430709344363920662888746001106843788417934352209783266930696979486587153562619727612918836214217900900687037827784071759068906403836091953322597325666803742824906154737653388616742301943856938747950927488111455710360628523105793493466630123903607868369836458907311953119298283064940637030241256499428492626241124987523095433326831204835262567979365052321719134912336496549221007216850361574705796408779307488216313650704859170766083452016816847063428185653533668763259634910829429439433637859899589077800424757675082158158016077936436236999107300694022256434318380928558829647693945355367752772037491589656236824610875630495864762535326902725543848464920002868023296645966200493842186307385628795518630407934542059356535261560419890159405718919124983469403807629074847014288837040508902959050586962022247678431382312636071252619279572768558167288976008753483157789659240692030045745835621283542782363535856755694820980452217767170496914137843811569688305591044047114824021649982379794121274165061212731734951913961743807621811049788344212213831092039128718074340147980749874515151112545154621838153656078257215087427441984838131708769268989524030664014511658982369045900279109144553794578995718452081073259338177678439377132774925658453951655581550083583819963416430748762515865207480213219298291705223821880614604583616390505424166684970839253262989039384363739646709891919301731499023799686653988926556432299092344857895758188183356985824060927734145812177062956781040980418666646545011378919754771205056260527966994831072378815805740364457604289007113237813238747735673126729973432330663646541448051937082321642328308253409775314962870545853655151419854614714761755905556980132539768058975324868475474351071946134762035347998610574730941751153242265908567532654712235274323021471900507325807957422398561807699213944063022145552609024405220832843389495322097928173117351348821849906824107147134892899119511859500049923440207342952147095617704236613845731476033441426379481793160254807499560807822747510757771087968923218479456193110969379374737571189568648772899763345769254508812901885898361933874447281813096485691004015182492009692288291741280656011519581014745925431117894262656064612376152364087987179523573142381467666457344404366048908676630812149309420610708436336260832922566439736070976410125988274729892409329958837312848389169055886464710806033825405204568893574723135028414719092509207737650768331515580199779080911525210633061851396881393350583372312865513242988860327958469982551477743735666327890919646109206843712076630311108399710285765426258723101377421236710701887056193633443714442094310612024096565767370829061075311656197592354889784946990666559699127497184254718424093591335412169210442491283808996857365320824343131019794557519571250433234431114081805119931490469879282359102199318195632368041934920421963874791115828945202002567560218734508372817100423904655373341752581698532694625897624686546311230048499540099810219257274865205618059184559812192125404750414491573169104806770984404569104707264825765258587796928371122924484697483457492016026085098193330449359747398673176388581375069782422522401172882756825489921193060515974179772205273267431000535635442666112462999180539327245272386003838974345275928517868261509134015491677551712698849231744640993153215965946023574880278775693063634617313657131924994335273682505194881073094062694770712133094570730744678761014823452172465374817427306247277473558613221683716324803080593554474064338819532497950371342702778666394371244521564367758198976134448233905850112750084925907706270142663800539905792702839134598909521334437395885479357475258368172605076568057426048008800574984410243544428368896427558925579033970480059523621713746779336079182728907187665615956064847314099723782317197830972565368580356662075618483968965636669757428029795818283677534359468607860920252078166322439620587309908271655968315049153522743483580561410524124261416081662928866451235612252188946774338452389871196995407453847038514901110824140776587550148620881404864146743590708943359240599947703621307001130036705300095561425020889397677314838269156568783199896583065724663184455878948976127831555391274103907966921102373927206655667529286637142929017854072524477554118568814080167967318598670621888178281787272103483416505458065454615077354289833688925540154421397197809880102685730368798692878807710623969589086439868085725004924254661829818087072367936543500469361749176053074584588791233009478195941710653661764263392490572415050985982184423288697571856497420860312786647438229767956666059693015044915474606873047017641688773138720243937688077531960794233810553911259141815746944216436681154493482866530501758411351058199434604445777848959568553513601739329884438186663049746151218406089083727356484597650647374155871436576738581136047709201242142539491682479396288927705537903697334849799586862943946793476267882406036874490710402032240814809782220037944608955820917873659455815258137246173336426196029081794531580885568049633479874426934040422956216414329116159168412484442235349482256015676829984462204715798850621912837069437013339566282720271842222425660686004385881626032970649742140520135453690627406748515354265736248058338608616109223459798305619842691519999098903502225036959942717665402049571156036216866484473109990076942386133315550721717899793985049547878297798824955393854456292964032130884853455185771350079068444280897539131676571876145045154695290579608138960751601982322636073831462872052608243755845332569465326787129374383829949890827188352350420245381074406128393282450849589720349712965079717011886807497700067980998685176804259312633057151922160171680999669357291695325947254091881597874728666221646868035140993829277412285591442320942610352936119754225130024738080881231306269719096085824609066595225752420472996756635717372400790658996351623410436055888294286454537818222804390243465042332959481035429766441865559389197220141749720911822493467552632470713520631890013960532710461369673869554328143874694849294954680455834297276051232854129769421451563507991971333655799696611801011311063463744011955864815644731531517824640402079002027710636212147127174056564979577740821298413379342240967094835325289170208468370623034507124379221385427970931039933964663404926251086121230573334369120435714448199611262349116977304690607012868757624491401037937641117220606595920456936432819731896962122944608717826751887671326598741052953970935254979680125299471414608498328715961080056702072557904654397466806420745948590432773107087844582591137562140355835698603632975054541032188612835623832184463478961096465833251877002420068458301334143352528913420015238667274852909167900265753188709438779054833000672701795216327991739618024098423988595932423720803093976410540142488112697355168561826027969701120145439222419848010125882290081144894799159580390527101591199749853795213460272267905471774298281016581561885557866693777892218711954192960940355460039870248942871542321670927362469739330206501959513672295227922636596408686429564817706652332002883085834754619143832070954319533992365863387988005516829134467034840694075439545063242539109294315914403142610038230741806743131569726907897684997095356974798293038857278636524121838341501790582251851553658064738411775690107224548797837873235714656596155057482364527356194675194274095572565548154875459939443370054816284304040389112180588112202063499748914883613762658159351244631797026023933819788166135669712691783209424712371164163779285532263235653667899409224718030633407390462183453675965762492770986556964037598028501599303907412240992744595912117442424348304933052743071300596811160466701983927063589502863742627780642274367659500093090954496257745311414129120583485550487325541823956413555587103719887096432670811221134218117950223159127383795309770786562943142478305865342377112875473468509538812284987737390528284160374391182622554497589508568226428234009930151957027864575607238071389639200001827479753340541999884551416802745083820458946197009090185048600154423189168909453592654549339487890662656458619184632155269866936662501379643471965108993699362789149471334112172980139507362098949569074472593929378353335111743950309135340441952466484448588458276222952228589787653885943541760494641727295886513206824315704892974398997380406835026868891604936652071882661108078342943000729764599033786468998321667587567877442527397525698606017020352516138538092105329954222725987036830603231722958046155249399779813073065149397819054494567091099096183395099542037477651646675435672697092607307007468115672168283991498840764888066293835513451907654601087186418775476884493232599001421736300635578072548809449069115136394432009875276413036731168141094238478763583301881008635265663698470473614001302463393311727103943780463288357143004157667967632552076686987036448464940045023098368221134249059154110863909608502019348160053822275782464329448854212096121246396809493883106128951337300793686597767748853206291976872299706179393097266627062412745277649957696485562058203165404012238866096067676827464887844663400336969898564729896721858473077507207309491341105027006206084351818108042404902263465994736038669547747974345839078096936466837772749277084732178547414150587056232724476164524894224836810208258947688499043666765311822491066745245149807987009701732281587505513579912758771068825549754256107079514492884704077712652389358894297712028437882663889828553507879891394399487777800375141503212877875298266912708010500982555820150969706743321333706488177011833826454047100851145383342092915264453952995318058092708810812553719203227238852176990544054535520529298939231674940480448067328043779886608974313027649166396936111784059755549431989846736826829080297463007397400038258894351130970611601666163117127690199955524646358552172738921893115162824755574376703333145270945496714713935050122707214451301449688534001871756994913249374420803774048301682913325997816954136474708575771640467987875227478126399393777515883153426292294581816890765138096548365861516652701275317390649136669367183392636178829442511969105407086122789037433997044785956983841275800048011699368843543742630686577920268100437343971328111384800619476926735918580825206710624276040561031877712165963625146089369665296697540660729279725191626852328807126146639323401030406367118216480858413240295033405927023973913731209593842241036447193362065295716219952488232515797556287399478342434044708479809987489392910091259624543959488232506018734382110857026783042501542185676653306797064632847858928478405248262274849410516564887052851408142999697185851588558536851068907851314065149803177672110472922146493436485497194019831896585101400022631550774407210501427506618147699980442118795076894046736078198758094948663618360724034834866670331631668099553638430913550903072059160474472259348739310109602839737891156657945626659856199598713055903734499582532032735515370092681280131167390073654648913521640837055225880219882408104943295937615461668968519897170102600478871577440081588894209349044305891701463308123106975810420220921185523679236827897255135662939387459292130553139816007368092884572505241095603377829150947648398629326207937695933682998000874356327949620929277285819548703206678836763156064575203294478715816850709498262962495060907269481618018482359674863450601227824583026166425816613880671858512146034285082059603083069305288682789840378403144346497577686173785615386972580942044029112945524987289028964216443701135173990212430605899205941431992761112059336061593403900080076807312258910492085585766140673082875928455555083440708035200383672999140388960952451774725889259759687559122112265142405367756427644109912468689325377382388567870517069370442252789738970418706776783239953958047387720262012974563372745055148447472672159984891343495684079390044126889002739606297075899174716265927874319546662941924249586019574632403662883365963952581375194075931076245922687034389522835385424342908239917912106873515425685708502413083537144000850143636998373655768898788015455979115576464890666335217025324571100173678596539082577655439723373651652556962645660372901755441664820060071314443425482114110885004055234764972171534843104209801410838157825366203451628661666437646122844953658558782517471346381260839961988200158218294082046031718746472437109863781647074122440360068990102490152758190663994782292764597175859169215379519763589615861046409252649097994963900408939104210749146568586370838345190981266337413000906050989904623402332259788403291778569915740041503166234166998895090852140942157475560781964251743004387686332787633577157509643211030271291701320742268951592038918297191829267744124654401639611157901196471237179646145400293992592593002809625581165281755098902175392934659933880175619202579768216192176655567220554234831513565986481081432122549331960971090764212175735234426748597512672889894628208630634010373046159776055721265145649507892964559885875260194583163865996144271586545674704886935539068269604175129324805419305461278314636070522473035940047257810028397275281630536137280989382341253891595449654184031663067710481697148561438648549039362671043980987215328672663360272348428852873518083047394233204859964506606744857907653228333989893794110335039933378782779672544948366499114285459580255982697095215465741896651293385244684245898866470563615548873108205711557739893383925207697339815185698163828939573951215169869071436440539269435345451525399840847615489692414241610495800939152908996919922565403806513034357144838300156815113686271044052542533623280396057146669820359782225825005275057344878764516524618341975573536499082845907703154285601877313533966728919353116985288864987821240263382255659868950213806689321747032859994149413732156645407675725938048534916882842482823513714637621372154001604568569320759031083106745877745049752295344007497877656593939659317373057296691241096314102878032892911650549916162991149253605109121244951367853962300888491302770200130896767929678754438818493422075857522812182666521700800298496131153862312055493666758595954403172688919643059500602049037092868087795494633785277449796655756939154450797991042375463700802442940763255887447161565789443015799171683483138099993350020705306158449449485568621148118210616036835877040081926056306264683646338840273535833658936985232971213913816696580408272657913660503839256555557494201835354060437127812902712321378193052518016412998551656295248016008056412916488291523931544578323571419328768737707538197437054650353144550177967823638772730245337883967833837321997786370915993885761426983937882506527782429882304012902551458398526190509203550219299144497062335898682747661050190146454101029098386017360885319025490710619583990030804775340008147787231500968854087958916326011929171310534286528784525442094116407551227018212514155502065659029867190093945373044933450774506995547678513722474012635787083372717691237113524945865526695673054839598285136353713391250126868839834174333331674155332718719012069275204631369830853053346530914283204908435211491323118835431090363900665105492812242766098477039509358184360903600012358469819079145495577842051591687698516914567575300944640969583603291192287699668465704955340354998443329924484178617783075673824911614349021611399077447524113231965280581563163545082884030900846502447728062986659174786252174789311038283761276855886954256740027906036413267963425513604758791393297000606373468009871257605456980116502232039427269713696762343746929009699378516256173237320277848250110021472015395563902331064177897047355265105399892450695856883028230119995239878213114790585567836883803765120852662328026726738385611213326604872837448182513982711505845101678638399722349922833680075811363657984767223179103437171097746723941695824431957962485581010800125307058222664300061718396048317673322746477607658817351305242689112217116446074238430933016870943169766410437567996034483948614450077525016817048036887632098582204024216375292153394503683016768152420405546917801108113621016425944619877155595258840086744614206914125485542927018902094326524355221471244796519557748263781868509585832180396072521397309983589625780432295323692142313121939363128250494858112462322805239045445858895687861933573052253342094030876672831751904178410344847378215847131306123279750708718001228494370698532980657945363835296178066899964896630013103363370160087224860869569517779931144204213375180916210867356893642430860779837505626450409806655726939226468075081503032744057834398600994671043205747463768989103494537342311786700943330063232265769247704359046595147266065206930593010801396065755200485002538304459896661409612193487091467738370366236313088988486893531961891818642734061186150003856666421252499867061952411960130856712298263689444476961816400723834978574610656925046019269741388434377400502565103117780188180941129538285912259961406472392780615024051869986494362980308966284663704410199275359773418515467969838430385070647839870246074506269112700024737212602179326899230240329014589590084457193028910069120961160822799890476145102512352718055818781774681090856035535052550995523128179896469434581759479852839320608040362958102366571011584041704281249824041704569953219512278606333522564947477160184983837182463926039924948222192092703522473510715140969302809681912086180376700741321928408904038167843050630770690127122036481809115381238426630935356797938421997672881369087025125476452811441124915783343975353722032049187527332365953231089057553598859637198535027998654790836096721306232921770206632661278029065778093149722737704013426870561150436522921094767604309475270273697478171922421794292970672445457498516612682331640830936445451489905126682905411417396863748983652642544291633039009842044315752401104658421099807681516397474703620363194370900276174408236477104024002051364075276569992120238715840405777533314802637055237619490976463924587980865683963946759832562347225347411922271516490733245789976934975747156818393170129662046909688827579465476845142667047146329685484360977839399031329274534131772225749999940823550564404724285603919293949556932501844442873106437189814872307031776035852217241502176575960716690008155558594152878134961363529041333010763400401247529135796088884889992424242223086026415781263279144034501502211310533006453790230902911555443329953924243584080003766608492907486515545456584683953003867392411775117292831708632996576722670318655253106223649307065287864629474513688638689210562786608631869103613345219501492367871283444992752153943329930913815122013326794311651892065013291315573853964135189772743357389050201635839556083770906002050146206066739565392851520650481703713415060894569554319327148348089757299781943108729457784572802792508932182217208576475226492129487184473135167768959413570408444093425561817559836819234888705597149628103421110592888415532140158575364923034055318541380517921827236400498077624387559534628378463252666654341051344374914465792156502072609599144189802668998317628319680493440430420589083597190720564855378340301643932353860650171578274582804535126769113024345675912803846800012304744981147764184859456051779869644052825821760321465686060148734751955535790613075048344646726613231773935774649709873215103946415224548023134465731592159807721886147945545392624557240364411789151314436285189847667498844132731605309038723232586607775164651268785186576729495111589184680098953094631272296303686556710491042968572070387196239448158342523828787313256001517251395989190231330461983157120635884396706579188820833262572998462179039441080099950008293140759082763881590445945409549383994296809850841000284854736933340834498320597838713662118583900858233491285051788537396352758148493193557732263780150813539542131054979152208829888405505414758912544794004634694977076471558621228544714866792274415902928312493038062000632644052104647251315621498357043458260689596094451704809927949056481455104255889044467055903976896364664703999051336073425425253353662102479065878611513467617537352449861004866411311524175968463845718251839340537069288084531215770919110371146117346864801037344296219276682093342775378200649986597765991341863683942389473787488081108167975332070948588134256163607501494109379954848433708747402374762704453814509581500865425759982449135073080624829762498598185638223559767044247118528055944309625003486525956664918257905978484625887159480204247864351054100535023918075835275825557124446280635745772283836951441021285315445146347267738132158551348461869092752731333294787958186387122878897443625731171413956983014262688038132654258659576481768549575653232239568206072673317467931387948573396733918016843507384124559412544582761804273127989973049020831648203083568346958450824813609637297397974744099173180395259930886485761009220239215361433728508308988643979227836494045832313033956873879468400788313830657299986362285466239396634762077918058505427331151583318849624759973533864173394098009161047811291066154220478783666419854293071550631145408575067133849817551026993613501774758518459909656434086893709878163462755501227097018894334340325450706128833984637596398848677586425500725111207765576341511437298201295382664950591735722010146239331923027352004053209811429634833633070529064342365429310559470463191300987113215707137661089104627569153942930909885381171088430352162416934813372007476518464740958980042600390454242810860462697649952568495692120806284857107429866942832409830709971694763732679847373959419361664398055201669117658473449165841976673417431796416460370049260660135973150237827481002662863027833401666781608420695317221707354424457052636810393838435597662119882651590480704408243719303984371035555849230766966217124912937036427152085136992573670310839352204147886984975784491134176025278500697503648863316963141816806419772613154483923796856774589187250717934387034735296203164705478847481987865372793649944928797858292602140133604573207551307035758285943460020091447841051444584527301599648670484754687535649825082472044138152146093570740972022697342058389070226556810837995785788232107733316309899130992159342973431816885089748572729062717850688849861838731656114158301713117170316089333936420631538489914608433712218731734452666009921111998808732161457029604235579450840017256437474386965645904116009694947559344809901859312482314074204156868457088961389985646999060933185205989451514547299008855883696874660248722513199161763173175888471041829051033940860844464107129680315476349242397442585249629375191931035783638171340424060612339568598115536896537288821804163002280539362338876110687339672373583507052796015775711699498100767285159656318601129186212440864631223166464876620266105943723352200916612869003773730093594567933979646004047962346169005090486890224300096730818243025865625089900770355635495327952349946172873330246943361417463140908316190446542176551710888203041758322105847684237928897655458173153297993891473476570170045505537105766053079781356562010622140223701187973026120988326947890495467936030421051115355742417748264206659605004572793064617887293914303546842134880005175452854508247252211621389746693081901557616208432810426122331548164960935131087187376958931757591796205733765471142220115158203974739136271019907762135976466407709205720012746589593735712129883730090196758554972065514304588919021573786091423515997636133407873573191451116311325082400391275651372261351207476630427523582235380655180404820890535744623820655097278466705339181487576402334261915906362758037752437538425448690944052172427074806309192434294117035664161483958524514363199244563649931730941384363993580669691835071369604016129443315324001676441313402575355182426960687629530877648024165352293663334378942412380968604855388728786742507758502897849494817677698676735156093773521401038267233666550411441429051446298363460921319781104605019855415045123665912620914937685247825046994793709034656040956914320142755898677710856589089515118103662394356210943490919432079845762845024774464769335823031889275709551176561815828774541425642646930947274465248669939723994785462406388221401672567041343119047487497668951095295265301195269522060347392601813415963019303703943406140423672382456933602560128064327173601188184493378825464019736434880667616319264002953687888954084246568771186514568285203110889769569412554513565951769999166658527420697355435445029932139301844850966875542899445807682240453941959808980934962284645198118589694046477337334554673235155951580328674981624347899600974685499632442011690381648485143004520655005559232237652000212286449542450746897867478896094447772932248748378105356091167975399009623215533633886941383318826389365173136201542674708212862880312247575747778028981795282221874002844910927799966499329815334574343409066016427475122688138863336837520396405134343999005959917859395212990776599199287726773979832171006069187570702112524546779341753882311676113499006405356989968189559064764455949386451794995340815022071453157710877174450678440482171530445513929481889246230448501508407976458612031440147499754225448999855477018482416732006794520968511211385947490680050093316819342621180362668266445903847723611966368218270423602808628083808327603622301988155048487275954277103543172836267469286916806819739916155170836718613505162163037877642373957803315271097005204910458337208130717632775588170519853916598633623171912398888929019636759399398542515853985787913526382900719603361097954901409624773932663438686128261270683160019008064553534842957959779467541737444128566303246640641050918092253516276601659170928034540045678518052897271906147412895743363344732564480389570212181230217884824851484253291656741102503060549601803388769921504292232475262915980995564172855661294401759639811526805557293270606599499452400855612806420884695603095824862076228380859460211110651993747234327487171979793274796518777154855283021394164884147937564623605665622510055019632291990109143194886952832911227466747526152476562127109706117654034235431801723752464836881702069093081030632594685035308691808471738003296783686340303390413329563816870695593291048062621767379000723851073308026515095722532679252755456972931829721035049233191288050461741110834006895949126619195399582720689878947574483818375860367203323402616819396529454889978685820780733185896804456923877588340253523255167982369626740618848186555482061812067240905495405154231674236538188323352087687662479251972390635672954651527708129151461163036254059019814376402688506083096048573635269885607122187823520770522486248897512608011769205309482593767758135976710207130082853086886383618969766101759145755845273432615061191280201062685428352240476672840302765013438375079296880912093073426914678073436374912931334872657296428776704353319068725868258228676330285440699113650604088838116123904715606197417607991248940425161476097509933270536712146599125311863782460563802069223975239032268066785273661015435054403169397641470627056645289900552581367978052564273817552304261515276324462868041809857404963535338271752444577574957008814312603912522828406759716681617350335082335781607156704741107981091195783335923243252456310104771093203790115126121371825827733916883122832358962001999188382322911741509289074160007187040900445586558247674768781840379090069500655616438479799513717398438478882598681288832924191122180326358338133799822976169820331947664503144072515244368728536715683853484028395765673581034885095823979253622506541801579129999441049674580087280442033443612948881407813625426616238542922484845443320770169479059507802058597964171218936057370041543593272551934402774662780587575405589699264869728431643265492828021625588717199266293210487610877347732704443780841458813889718354621293612429732347216928860197376251950157806854148891463392621986072325001399905643295852520676807501211158505584260738134938836785365658292775191857001004773932245583981732749295413074249846450222544469757607311781137889051260862268211907279520431869015374132271752198237995280740942654411392132754998601121227951917693389912909870704919979326675649465758314866057035153110171172021677948042988151338375546717223676330878161554821068855069927480675710498993337182081467728862239139648695169441056201323699732442674384211255770466144487024082736175758572488940871277773340557914793526769777308685223701650296258312814448345520243312338968400916160280845781778946999738997978527246883991559496410891880449466528465703983341979074534005724695476612135063790556454767996555567310718414132036182334746484690349448944282055863274353559830979326793112005945918251599799910734065337564663487289115168006830804523787681834114703358977611576647410190295254241545263935810414468105626071281196603989405392246747555671899679329194575258367947307578971548300343850059515365798448405435087682536028489689991264977141312892936111722880700060573041171699652868470887235023482281150634781745081981025624580935958651617345734638051471619254697350575742988644709257781524889963156458839546004072050529840408192110214971443910474412417642972051239154611388314621563721936983464362148930636445916058663805166424288501661569868598569632429314624014795825810228359982226175453067532864307038088917292893350633252646595060052107971038887421417625315470465945224449584951592909726853486967014277893891872166206788563382489283880407525928013521372331549852044612726906531424096410237325076546355269236761158273416516627816704628263976607786374504543435683517618468888410318202777042352883438459634105859581863728805115736058056259192429695735218778475424872261233230327706317005439212720701015420813276247938055158215611912531030743308843223526406467880034128686025250032937015196750576121772552949014196401513831184768839471712164778431709369923678422608307037080928891203981795152288090819072168380127456832781156206848208440582779937171429492199182079477252196829735442007230065052974832162296403833272640052787542896830539740183626479052519856948402983352233004786050964576091893668545916684416787137193822291567072862447644049510428600625289808816212206203305574549027114262108859611177620056004343902765010506105607822334335186200999906394295622624909017067505676449099324904895532246214962836429441528974165603448429386680109875581564898084095024671380388062214383626268819876752489915941716304936129495543087285204087698783752042765740365506907307115290127697167438709710417732642482835979024195033549966720350939191127500663041854341168966366288024218136132741877038616056370307153783443431407773712286455467874132248097153562615347499326566359785705034010674632536479728167593881108133991349492994647671640480246242710268634087991689476113103602471587057185691456385549377570124146174286365411881364927651441463180563812166505924296471352831911936156291081771290104769488907955986114129399938315611609012108148377781984190948845333765421038960767947065772951291293027400892624606732469673857122625364559831418029049384875010430494330903042909963553366231299481616782738382745691148269799463198552654854287211036869911467741695441789658521759019205705687647512241464844288652343401021427552196517524470841481084572908117392778448164351886469462904811918522624764716777921766424416373398192284698516012492598616761043675476241241808293887996143183975375489017549845714664767816339447384806237205077252006404960496346091329225145843792940956943453540557252828675252714197733430920930008398551707830168417780657610585441245348030861067969258432770089181500430112066218021489191317827195584675355719151099639226626505979763798443770147450270517203805150738370382736347265726859535964183245451965074592499764223199407044175566025778530757621335362172646338751842515865591248533186501377454600434724797130325966681090986504425581751144128416017248057702172287170357363923009481962309071560993470561164381767498275608912370783410152248898622301989624583339164073667171628469524646303236870833843325310417051156891439357634224432639961086969613196386657918257762234606180187300707985114163592190594764872895002178532779350433066281736665843783318653760965483385561265795658575009472730552909213981255735716389923435894961137976983380775405190389843453418195788542187508300784968018361071988745336405385730827025597642385173679216309553403592360722247897892471407036259920047600555911952934801991355075415070079822982180829963635972531700100373607534290411502206439433794789811340365025079324200603440640094577238256381687596097812741337438404640162996622730629997132190557539531836615124908731749530764062690337558019152839806190832172648941254921128028611823645491266614137202689547641581515481707808722331051240991839122256989216171003695961975200643578313655227261592662986668787905095869698167465589500210197304097054532601169137873261940914859914668732706330039122255699436234618020846288304019819467128335389603593968900557135810015875781457052242252008229315770916770970799661892062205283569468650515674630923840700896151904319471391075033005626069604619715698559904093040212488370885049538609010351686310374631446357797402443431962312484887194078408420987432978147240277377723330784414644118068699545484680350465762799072216877062930095232128666627830831733514595638469448389486740341585605784138612081986496340618652340437818363188600017363955938986445294088864642938093377332270559976071643431372717807194423629431713602149278561209313207392880596913311362331538581730646445027749243229398147369739290985489297463277356158637179237135627748583760859770344252723130703596386688231155329493193441857240391603912538473121843097568835976550691127841682757273809105157548509472219662669345315263047125698432554686653185971206894745006214015931228458137914020447477493591947067364486761373943797334039159814166961578964232168818741549433764628445793168750191458366488615716031478924916761294314163346513912127287347778145502435665550715569595656344536499991874604754163759755191170673539256860482136072275220942642587516103451527094817528974351061501241660906899894403364879329592524274203346264082450630229063055228654803466776439400726185739336781589356025917224750608972961034138089758136310384701096707666516612466226827372319666912401540644064028670019163140738943855368350902832473309652048425357327414644497399330410282007310206048139098709540376730753782160610110439501373189830268094345162249837683960179061690712366604842236873132994549347970038647752876074155375178706751604278127144121748509463568544431175734404881483147588735241970971819155523301402444105841955460873897952117726820695964882752300987399554814883322298891344524975691890897811334486302689628709564232294820430180260350217182875424734335475055174412653242033056146477369911041900840990746541857064294910493829708568116844607958491244348771792187595247300781537466932206527065169827315644257795923667262545635152999949428153266440692495258235107935493704053301782426267378954604933776139415052911196596861868327893505919045519903923484296264253783438824579484993029686275044281461288771540840876328286628321802986139846341439518001566538151207300885758764388611253588107014569905225878655075170258794899375984536721695106442408306980110333826874502987852596546251460974011883176169597277340297938367080532769055986563923124652123429126886923581803359594311552873946150649869252119732344588803958802740805046074713506947886412799572807179247332331814602605744197233097937491339522543742030117275003104884048113500539472773939510733265647734170671140933570248291792141788316933865512292866871297328176323195669057274934677526554465658893468825636545567573074766551033011074403682339044772748881150082032817530448879144291499249584584625644300813770556770325899435924323086872495312826866231314547624980665955649849652262053081235862787509665807916229673543482685845087183317776923720052921318766020375628106891002723377970324823609003949290781718606576252151119192613813018700019123725093803023308418698544170673427607375264202903011255867063472923255648916961101512991423684335215002275486414724152201979432180791495946745315968012663550541172095387779816650090150945624170356405915528786513712856954770886876336369481686196969858019230870262469422385377205044862412779892832841649059589800305201911024936975010753862191594616935255460605941590001665567374035364096596084924980479704010563236772391196438134211874156055163532857410637805370581496202077942813088713392679395979788373436237015867942583282296763946368466401222919132130191286667056927991323092576122227598275960873685191963232896743525886954366976243608043769276390951610037142903501145618414307344025695142580831055050537465669277062311622129688371032615178112235566095498287445776286347369736656598330604570090330867997301173015289003659711793962580129577805387095848308499562147285252641402300340736695417546273511424056419320253817649466310878406461146541072716846275861094356978515591417151329151125813648486590557241080889314005443518927673319617913352743820408007497448733354861221627667626693134497990914214664652698613828036781315406243428274736833125039629779783325997480563835704208233587905393594093786837451786287405389327885188275098513564732097108179825468747732069346036065760936997436364309054370590353997943478475883182981844080089322140047862308882337250889634304834887602011627621013358455343456240930590125983553018434023692451759674314589568240374699050135532353882466758564058800851592146677277774827648860515461823082784974869161732283956668937575311113944287173173483898679469967751730220332126867456695339408029006919241612526953192080770543124979772148736677853398746627070806837200154285989640828763304499690099497526138331987059230922840016448805248960268557065577270180029365367707145080624824383166952647305031002316454569215388593736309246343426864872257795312747149606364626817799625932402536568451249794690371611039158291515812154942431161118601121621671612493403016730038802562819300463303228342370480960099636659739823623331394763802673879594709443964344960278066180643572665105189332184353161576380115378116764148612556735818766236475295630516579835456118257180615912193542929945181110405683078122951265306002287433500589605361399750280088880700405391065975590694451125307760453527499451514787140753676295826248787678730930873245142088197277597984370229387962305794420809580867691119927442358240128276743093331233865220316695301696118005584919222543403156284664697705275747320646604110748322634539845144774874970715702783458154082170512646713687787411375599041644001047285933231524689911876367367465281270969802764393410093667284552901884442221426794403153821652548060024991832229376114564306809336402701216262482792964733139132967818813332615123933639384207124814165434028723725575958595665685298463458269423405771557153971706138575250886445489442869305836164097528230559365024847265099793180352099726392160016663176323173867659718155727493698226451025379182228476393973718560967674866619451344616897094278334309641678688967560235775079057054090983345914408760393708912846250172860064538671147106944591374840349997821954626818678553981574130191791869306994223922513704489686222900882549123940301439591963978388210707738067656522925252764466491194870494525818653648814177859718363619713480504503187550893093600153645383828010533883148594177933475819252920329143097111381923884286313743241971526341637655008285949041774791139825880430555688689920756611868012979738794342362193889361751474204492821338717858495334134796836225719668996102909253270780343009477084099362933167237265239175191538522328885222111728734831081959886016300031864877365826488735855874257400928652829815893882902824913614476331196887475504786030385032663791746496024379544112632886481434069305522258085249999841863737513736558538088088484329674221729903244486684905996689160761675906353087259627370016998613877459887670812986034124356600381246968771908501730834271493402440493287848093027730544857640178598143357080992404560784133878464645309822377181227805272718875008792853172341326234143986076109569638636364223542475930096900680315469720250308784606130536996431878475487950370842436669902003917547125290296413089703845036160429634905849847205179069880166974360171064804915111870612538431087184949605271893065285884797160959774443194682567545860156403591332961594932195199700532930761721724670110082418336882210877654547333685798298405917833330965484268241569076980859462569096134682902846950712888278062882537532550063827762172573863597492431965134113215737709652486672636780943975700025267677663591033929810746858385769956124385815074349801771979756960893926899988216182780064494764890683643404908520690267866552236110885740718462593549305384009899851787597213491796589479769508232985611736887023121947017436013175813189354992839876066136535326800004556939594106295265022014233364342735880028445581837721918063938601751287395701129541374437357254000352660841076787525059712918048527731945050567917883163972238888335500862710520477042899745749118485411724007121609028172550062268569450194881497299597499726890878042855751672567919442244464548387428062370113487540054611694870203856219907234824303958925542729917502274405068965540630750732950903747285886406106439526558114452066237065184509694948671419597111192266071893354044253755861307199512323701236544918609322089925484271963091898054599058165680534788626407924018599506525266339290682378166609352543277911827269924892044696369379221521763128331752327366651846313699159018261678608010948569658839412226938766094857588422169969181961016355823605422099564855798962298841227158220888982518041837413669335948259107991227907563307097419706814147241247735653581926917508041568405848583792776762214861288716362087656604726210433914419741195408051726163835023206673233622763425953756095831946272020942715111377978762609143069672297125991153285399418520003355621605956962273393046594663306907822796817763871806885034786051426338046206099111222037279451751873766755557569300068721925683994849731471100592435611904603963808956978276288395365189285609113511803994330410665669254137881766292896550924955977610356415159486930840532669337687817586367467284820507741169078069212783428892881955368425817798289444447474199446738012898717307702734084585977004801499313283133681823931287161939315865003810010205677245946105305141681694850294265862690907388576940422506928725961034305182369439820690250905517090408695659653301721890312894020850977744768216157689488224732288685111738691663353848478704422437726108930150391049620402179126148977023885318999611786263119181840774490272519085549177993593067782128218281474629816731926195802750142335504514767587013586084554634645721966377224780198854321465005832734298730080033204643108149305347266439433851455736530088346895397775096211967255043821112436347424332353085414918220515332403088027621613319963754845190316763224406008880534390099222148089035133606783004711205695726367109441864477336909984379761267805170630886709036684439627359722368290042793201836924737250837428388966600520020294841004128671528866331121184422687200516586967879725291908665310045060435293698700160041202487055328817783366405492077462766836364003278314493054679174966104083205778040957540166316908332137254509659002228885153339715583465399501487075919168760152135788903653242914490822023470879068919895428277026154720076764337060549622799732947135263532457733048698144421639281124473121453736912166884884058353547933731986830029364286397229443440907486558225048765116787651717377396264177318699452739855381815910968328130145554103615249040570943020574034660685522967936118584592696324553825550662296305006853268677389188478078822212159477277572663466544873249972445033878221690112089635829613998975792786475384235285903670313730073210389397085561915958774940190079830807209848105083660270439617892871907091997279429145261107825234339888190622864459228312807836487170509135356381394099338273404610079342480618730884325974911328370565463400902058725938400489118498209072001111294292568761773613549433600163466513057925527756147160553107737048160724475048419813803900622436691072817565947657737422974406254790102243218942570794963534589939300979441000709252378911216092308590188121032453312122159732483032994788197094028862084294665824317311975172616528826635590338358674795523018913109190531719347530274182266419589880251752973563796996176245774613727969523938548089370599586000621595711290748648166057685066030536782367048816396384732669082008107285041366077504496041860834887558110935963048277534753025324180727973441729298543600797732475000473085117452571590812323373020703506031414180808211072726052057293018960869341708253809033949054595682998186918796562493015338265301695601817364455004624216252891076838092676802308614720967100786566513333465545519275672070984028225389163118002890602001164440930114600661769978419937991298182919735053186444634009939757194675405645341063226408562689821286816937449767395033949779149549447619198365921855034220115768444922366943086305636429747116384238981413804774693315623155401365459374445989365561895063086466032308948691240200862595943535551968357735912716795085995015199589324097976505953954841866101198037915338614264826306470912298526863074675110570734452100074606348751301433065051768678595190208373115692585172655898650551770949943601913278479047947068944274416440730673278938148265013934795937534675905406792668111663210672874475312687969558541288556520493065323259228106676644610976449914998168458212451113885048969123062695687870130194801927487109516156274910111645594142213309565668316345150360517751752915755340322239180415721193385400419460353052470635799704790059306460859512031401989455436693049008395838337904365849712554545664987548629016232890965242966981894139927534995610782579260391914069846908421918544383353771037098033439818703170081103953712691732993079525271071553941165983181920216955175696604873372935571310303995848730338018554631049929865050613526715847014686086445575398351882762235044294527308011663370684302859565465460098000027372283161818162413056638663890729291071347337781265599655822298171428940606539994763235531005642025250281395936360252088965873926297256801209405765582692639275656505375104363595634607080879641125914007276658914742734303268525576779098693568214709757333485591573413843549914534607099556570563901235493921453428675739739209925144556566693917128532789039570301204029026357754462685814926391472047803784201407176458698454457112879149332459492845049851722689397957636486248131230883649027101960280011447815135326456350121129963867930682439097029656529965021953224741667568182192446739218220049828892807546998708149862626767662354203506913467250794379727258439402365071461739568256528980155487763440419246390726582851765751551997140450689337377677378561430794606427588051139648280492238685558824526665433062738929389414358600884882605086342514439832169899323767288395179454107624771104271919525886315030038274201124453270179095578018605236610509038702948140250725922588635484947775237662852605574584395020535620140380093613007821677345023904330739525669834005742163819803013636089630669577063436561589870079593476151435506181567518708246080737753395581319558527581568156955904430493543677830239967116167057084337464874579281285996195503817849439816252697690953088487928849511538492008217202329557635409196625229886455708895351149484731391867366048197558681343110997022893772409424789679120575622741567873557283162294544307996607450772239236040937808817697517489487828617362922370727207527690620677951334998895573986191470502860790597207019389950670251285302776426170606207509329320473964726413130029236547830934406782028257926368733127901738217771877318955055688501244316634207087782316426433678254236630185799599732521429388882988928831887145106237067032404420175403957888448897783674574578467639298721299384302517798811555619168728597094492745745973285790146505939997735987779056472856092333179735107249493697399795019967037950947066379463666812526413027471738024371428827772392874326712704778503296308043223449415820529213621890526232533013875967522465984222391320054284513183140379793853674120821463728499119073762174627542476628508997698798150942911514345930773754206927940244481783699540114760590966460388234616211856211030136341968088139511919039965155753258611574294212069474092168459325576027371449582087317621522301054600748580986843872753073105842454000301953112423718583341919274357348082599442137221816606337956948678065018149271812873543253661791245263691770070232578712397231473039942504583310531663834654452016448346299430496117908292953170284842738033103446449854531407764421663520460181658088875453537620422173230036766213929702110332462993368054668910957903491944065401284883834239911375887796787897526090978643407528274218520882574685101549855834025954687211139971179342852469950192236896197749289295639301665474749771177129123559220456694851319318694342936717894122388397845271951915562684953134163793545713762125261568186440623161521917892476419858780949717106677766309810534446791989243680797690804125536940246893474041940504631935827347902301252194538260128229934693186475595389640214991232613325110954728422334010911739390997764885064210492455896310429280233302522097893774024552374702471207060096167254367565669234288537265376821240004667400184739183488506262117905812567960301744335560633027745856634779411707846456832626543639127278592230590381382047047939993830592076923725453793800499073048094617305450585956968910945710631498050410707371859583361147214748820260380646314408282812508961229262977877301841401791673815077353703628384512437739267563938753143893256585140574291305779169814608127810772267787572217563213547487192358130081099091358885860533167220588375242371190687074370557618454257153234203253863329764663601251150102465823859699771160751615173816257045511470329096114683074031168835133747855126902667423742728110130961265567637745496229886901206116257648138472007502195698903082017620931904384659017421103470240077591378742806430443808735173819166451276148190163146270352167444723789233962820892931597734737334055513317435388721727646500400867890999937515846298107960132218241990319940282560136077283872024039688695161209193208982961675856804914832520209896282581194773242336401850208850871915080622608827010995787290825550113073479973627354441413886263825523295292011384927242506781678820462336582394235898812113263040690651755101921424255255534499957689878995962731115051511081364117850346879172170741981135926295031592437217218063817149704819191544204947201653280084188890249385728200001299051788972258409320111365662802640324434653448155844519665185110092699992847036245015448275860726263591103700123896950241499954429341258430126404138994803220788424999006909783112712584804589751691882371763524626652316753903367530159273222493906627132816573983263679922829929507912314260937010480799461847711979864152862182745728894880632216430749444389459942606719442120332854779957207357288842012087419865957849514939647770078083597297897707363304712051147181356945181014313883540689548299247460595555248813455895148441003673451590342709871461176486268105805233794898004876121182362970835399195756988687923534391091795241604382294880233432389727375486145421778810559525457097687007711912793805205560881034200672070031235014584304321654773403770173076975390775187135275347065143732191401473419037499584048163892843095437495715712516491877147511831161166611534572383566129410580960250750819083517356687487895248398173573203779874499787568952455314875987419717319121025526454860520063007097463211238136498122932512427903753288374795258978819736577627046656405793128850034748987738951789235934784997525365146622990393865826371844556000072415553170934441513603853678042787462217925893343217116212980430150653567269661214975033237812304728177638055395432652059820525384847005198297716899883923078376514333377583169123978572867807408407342022663593292992062578996305532888937976968181471287388056033418257138038637251155531992423210160496230113710952646615456439547909144976513642036672278590717631222403462691762802719095380217526995245176388060076172421343935476259647282146039194624475491038737876710445145335856197422466470223533811152804207792070811137423721986338437682628919369655682879390755246652442624013865972094448474046806291505748477946697805673953178908446198116600126839649424600349980749196166993939407654152498900067855150292767432996505567169961598501497267607561506436939557862791624419680971583748215476410482045807775216953109675915899845918573660868049849395226015796611351190381870855523240480492038970135262492407053924080270825197170706824967782932102217745687533110015918920170180600875545794198387007281684227355372282538374213113687125846561420140253252135735241476841974232022484346117393722591488380608018371253429781713659222570272511419156095186760468416079879965925454229497475913891876520964722897209991358293225506811824698444400931855403406747560461813479804755484006936517450793100848608295980169470663960261839990657122177048543679968111773597673258187440240036820144905425377139878584132828289507082478198693656866904829599204929892433744428496595592174881721388193242571232823158396125247354248048966266620065963281502665867180107752678020776915870174370692567459147650996288769259341077306514623424264261533621944363376353122882199886325527739978381371645955590673907483217732316095826726413753241452128005111260263991136778371617423240998242775969970876496895353576755694030657610579718643808668089875238915295551067899406463575066793600513499491540479249438394763478731777830378852282412336227143002299212519548855359276555235094571216064160074698722487504354888185694552487566614200303677246787204674638501589619774890709454672509957226877472517656674032469021255013425918308169712187932575769819408191152382913252487414469666481320325246343409106416388709712949280847811265697528615136973211759748738037667630284995576000847817352573722622465545171551709200517721488954858134436999514648299565393690746492258185080984644185439724898363395289189310634331341186954249026746171191362885299556377658619583765336344960484478149205486797714134858239067208066835215773032696825636247979203369012968863284750896818508877195025748728232008642078333673287824041649315036361570378062581768019604933839352891744980528859159920019492453616368635694441413272296629965013272991835758617478060783586813746165363367848823298979156264649317922263046355675818865931338788022184368426478787413316057950928784932478263980015618187926601733664927296635410869278264598083199088531283942356574763728845050862155751397843291186799431828420431178831721495527437489332804935135682262425429074093947268168777009325614507104057706775726320034683317630305522710758290278846521668630005518781570081869022535680618922592752767873373341136317935307996647011422106514642565053486382163789285019748325552391827155873649017533091707088798360886549582573528607700714317009637180773140609127513620267558820055488924183138989728313472567293401527896160125544150626951492368236677737125529949592640123433853017011630896313133738858051542173206443330667118485827910320461779835538898869314970794335204988319616071017680019026176238495967495925922773797299267891432936232210216545167691542041958192986472093313465638857056111918202920361447848848830548387735730505885345001942252175516271141327618292134901039783738468073727404202907979195337245678429826526888454286258861065083008106216621506792647557817416046376357770630460311210393622746424501161038920457884534418387391842695395976755676694169866690028516528422489262334254453018753325599683411796930793369422425581992634557235031648013758735788739567854420570262649024970395173777480779050029890203053779609763098370533830220702324833599633494771206021164550454515139190518669945590240596338659418459283204030404766684965983085328224560212869215691856253160885503371558438507880799080745752869564338532606944389459868796259940261534654804594067832473347112311959243363562516870666238829993375095062972760745948091678461593156798694167216354638339624957756044256646027026436052362603983360631116708485486831753572365284925813244650527554407759858046815088656701302983714792417239858251906581218316851920942317229959504086862144559428087893283584553218249357619770384175949980531699406396748620399312084845032204508463466121821200045229426012837657180684889070548089845272805085025224432840131283036058609254227626898161775411507473885987803816405963406666165245878340605268461722796244608767727750985643951043352907537415807796574288241778792807426546882916526819937703675337654504007475663313923028079756350433246641837096892962512785848718083911982321369341544168104412747368652426126040022789988793958708170918428028682523228732883160968818990331686327658021421452863281788096577451384693973770040821144296899538492495341676574347352635263371011355436311735192019454733960373538878414291728788400446909618113972350219387445180387705451266153271900603654110194438845925880357820070294254745394453297120298253532181262563411585729234198634464039580819934508255773639050519119861203755368188542216156291723464067463502370226760485482552186657467971514956053654292560181214621137278750211661473807002548980797211566206633422555137443290590928113994753972176093581222721076302121591383267672672479676524601014020994946206742129225198811262712076881182338049474363143160768333336418587629141259845061061147190376155467435733021145145314324622849890290538580246587936987452673599184245814148223365527306524691062109017464376231925570741023079181855129526941766052856137769050085945203087949859172683051990210246099746961867754685608212958609653577362621354192299331028334816308414036211310289164327035506737325712970801824543025623277892081257408842812076022572308876228250955924100579496301372950647950302156311288455662016572348577507477698967340298512713426617996124939997525335885612714225864400808594755321587376453566025350408064380118306807317943562037090538646182037203324450593892788334503404270704068932996881951358186077823639297330202955152491483701341580719597515304091677080824952217937208467583949384580241804692726740940975472188274386222096476187903706395023730863209855425449451898349511215032049641266634191985101746448761645736390426633806924750829178983459811554356124967013798948132561205972660160577282994636059947284359783564091750092575252774267942723573345913196933636419591404992059575566189511113401835601478154566800454198205378860336374081283273012052002052602664803102396921003552294380636203728856565241326226764559239682060607427582154058242488169178346155613235875619538057270011877598152303448830305559228922463487326299878489060303107869791375752445434743206795715978058867671073305207928445049866494554272931789016996465574244515698115526388948938279616596162421419298317566996335690695434240010842027470253071728273321803730505889035065317690025862516539360695997040763942377835121261526197400802910707462579390404706210656917083000162260427506392320725744527786462511551527780545610686518154489352305386853064236503521158520390211149185802697353315822131254981655281368900496645523704024402120064141351896478483856567759204824279476782272385513062156509668377109643411935274673951947043843043455170680388303270002346023465379281378588107686762520400982465998428417136574634094384277868823812393438693343859415122316322902532962707084760011722477172631813041408526624241216268095877618428627635864672962389447995897948416608966599372246313385155973461156833106553906289524221126985277697255634856235407198136395915131494129164559277574892392366354440828643543885104270524723070309963759916694838068282338181303225643600670699390248687510584624638787983566545924888827317493911996280010192061008273463744622459946192143164061254560121861287605079646600138532972854847188036079914659926165078286558638533988790585238255291525378457190527281198860973195717256312733172422743526101895916292193247387940649870499677738663500679978578413703744856558554284788469906207100856968937296741501665990159964728924688237544120147821624352422895730247982460850962107225271896352070426949931176410304913220380786647109319209374559224041083274680683383059876990282888687064851224223423619835330937872731667929343930374625275293936804433011935320931994932549340833976732810272827716598433522402407839986082033766489512415807399428341165696264256138041432761652501083679990265385435643935885280518633211367548719310697020225108439007152740708925716840828322781291827295170826787115243896180029541267700822165350726134149442762824758398392602623373604086331083078624715029084621175558080403032966106650999629419745391967831033279818293689918902010442680129480136298808750075374524606020944979319736430376774630674028028046819408757571758597897787659315056743927546782393866940636170024439252639930312128832822835708889747574197894013509444690979647427087834832298737160416801170238464546968997093622853223900826016383789759203452876924235435909057952893595958712483610215698785834477332761227616856667577799948228643900725416945847890844584129002187823836264841641486604419926474530133122151785930400686273644636420515857040009561095431773335371572972432026354599993120023902962553500752891131243264751341545162753385226011502975343632514253595831541251978892747973773668682772718947006508481662056847729920570208736985171263647243213096609295470968574864113630213710806417523255583600981808374804336640660967060528153751149124778085152287855723535605550171986252917351507100206818962536774114647880657855728512265177124093397996707786393753643401844589549623183621778058172936290894419715155493162635617634462381042784614020333061648831684082712634258840914304174910151387440131721887679872406428223465583706386970424435492484900471764769260526122509182751015706749787565795032680819481444786589712010114988108583079651234366684539300690453961385301318256773990959385213888528131819784860676955893519891327933134760776208649859668795125371092250093617423253683756476659625296045840707782956729995553240380760074687895212009950325496368365186548850198600876229907685083681356088022809422151467754837704469166272154666678049675412420473539019054346095234059498833174223729852923594540617752214112057931478562236701146266485428944313832674933643744169146148588530445676113342116423367531986013132994673705908841544985124491895384563572093044901667047745432438679597035276574450463515234191161636360495772770149203898239441014589106891813765615043594653407840624855193776953227021500064776374780795653913253947052995582480614070851487732276497540393555245789533210501185988043015963104845534988709921124429044441081243727302196252798058187181543834610629741931239930429774378729059287357550817658656258475695204350446142121110906676255757172466735470884668384446445391594219962284495796321508061029700088430377757085983094871369025864681024336659443161225482366375870183519772048115106467591821126894115560181114473435865370330946335041174202232227841045454716468053357819753616062219057408214751038061439585356526894117716120191006931682801512702829043824774001350064367774701167479427113819278175170737503847424706209082089189494041130204747836529949129886788872469684952258470298634888382618313502441006673425758094921764535244205635855224320768809967772250502616511186315217933168634212623342458533969914084187390414543156194985014934322392435840543424460685283850614568612438594828541153577785986143231010489372584073600082189677918489229312335267191522429474778940008808965950291285616535143158717761313123468082561625933716244050694751318259320773069626219034513617336909503596945350004615654319068322003792345626756108000058120112472753315536465200974431453674675210512531312464183192328189493151009083088407301021215615793771878495819126220900122462160599119961848380062840061056489828939340707717354824212571420304435224989664605950015440616544713972528323047105141692635099477173514334259203314283584022920172433642022770329441303341132437878972606149781486616544920611382592142677918031078155558654482086182748249204377048011724464884647024542636418895459388637377451083114960757430611822652096493053735844275840440821216899369257520930647824035274730929916294872966632755688932671179338569132096333639173583435537824246245835466034323553878095568205558361105752893484676389467632214433168210495586093945168213949653982028922980902180232992507884363404217677875965733878542086332920882017767277498521065209328433324177301267772401560111422197187983415145123194152666029990836685294686932599344184380036797132676283651250028427572691447019797580388450053020604045742025950162837445552121199854866474449653879055030926573785897777209194067053784638278432110528393196191879727109261810037100459572314704664952653298863468629685970958455071897771097673908650181236380482908759192122124334830099882294104604930711124829904253095971033620250391856151813244227849330808323269912680815213765675096967538217541380626018518595501354676198032619919946684949481919256301277068864139755846194155577227961458530562396120016217818649745286945078377848832600305989612061516053619076243632433455326837099825919881043328645216811135512658960870465513924257691855035318794235014663832256341263524597819036314595046849095876202793023018185331976449857285403325750191364321519089964013627274219599452246240125960999929368293339918973007085203969885917431886625660916633766780222439366294017335065087979706051906756626376270864300122075384672121810149795068445932097474524634479192479388494048285212300174157355746900742510888062088261408137209856225876145876901117953776803086334066245546278661691750247005681769632739712879807910108355289347076684219737394503829317655123985870144532195703328840534246244471421238575658310549150112155151540792178412665052540930650978684881493115098470644306014584431976495123911245306832271691582682090298072088439016403015349985986053435317345588237990797285472635891513830643385277523028067948226136137314261410778509107519042980443429350570014623930145464852630031673018864061016478846029755816733604391271921685095441511723951071338700163498986855358849194896321347508284822793712582374010405456088478705093769484920307987942979192405417368963548947230495731151258232457057035446463534955617443929798208438148616868750716823065378302169424866780338889045109272454018290568648657831531162927900486380654817510176940373495335614025572479833518417160888705759265352966592659826759872068093520747770613669209159675164760473675976458791360819851493118234587375439169651434888988030956356227085926839296268961608198361493392190361564993637312045655626793918641611447460733644753304360028532363761624636403945728593953164108242889907226463356138850970236230657681038281060291380944463906896335551374901310225509152978428145291186177579174380504211603210614262283666882994063719814667474299510763851587451785646782637941399299222414930908456369906080917454800410955902278110542213315500380899411820726142564964983959290507834054252399154864253867637798009087698290820365780673679259714381116358005247512290910009722757114274254282877167774302467075751402357565321791909511114193713761036824639285175196531016251086195890517174840973004966045064415037085590791501352663647202482674430472969791133257067766741644345578721393966194116887457406851780480196422279965985880726327797932570980017139426152583086768890873376364164676621386492849739751773144166673252234110923324789862431889527124452685185334614077030993801480658688030300075170906620970505551234840376990042847040221416920010841793587001928389028068392731014741604159300691989983978461562883429883495883323475088115553230976717197433206969581289826677176083716957370525460474013131076787950366397163328618359072879599336663278498332126399780127095280015518524322275789387363954491168163119436326482929912153389787515640184366791096288096567979773953513352412585796161087936005613983261489360549448793613936776599331319539482894298880237387316808710043018176655368930691582921489309002660574577235273273474119582065182689112152681760940935751756678297466510424016792504746947412305559417725811960761781663864863424762225737419925834038959321470786704227464534678047190900933421079011120903869326056484646760826720667974406242772945537035311198062645386677821145889420760214065776732502285463635123902343421246937387864270779533080012166146981282611278852839222807506917958307826879153766629166375497822374780187788983173053054328998510468572943780041184207743536049856756366176596372860857480214571942867781840200239965822655796669238952529927783871373193875546641694114350594369464837641320268863879393004351272849832518116988580142352355978036451408694684051612184133202282484057521522907845056357654430951809888512773771333598895840244933944934065280147358676469183139893686517441835762882164803115160505549881618651052060743727180213001145592353357698380534407860807733507283309086294791961673620572126599054619490460111022190821609692244831241163572980582449855470843867180913446602615394475248821443820657024886604499428019254855009999466488070812251062504789186962625686413109557972142622711498092655224646705627756207072031682759531980249552952331893571623428146280454149862764531009607250047877492025992692855679410486564464411799772665553212449880844006236520892969828726027048026759306557461783292531969081904098991088376633132007417613181216359316433168087300811959728612467933486232117634105185791310471895781447462239895131730107411380970247647079681473735733754748025820500412313127012248036191188674893606712932145463939643198138720029806876800693742485875200425876769134596317748619473297015686383551787254246130753827725805939629335990221759524795755984652479632814773685309820068454817626134474183859247057446564469102242501568561774004164329809800529206810922983544405281297238472262035295244015312899064522443624037778559782233505783103301704675776859594292076623263410519271407594299578759591466678375803908602894729680864085941333339884771952532816950452473174374149733376126918778602356183706376699966349903246193443630828000563527973033808201539883426163341037371472512948059346248643532617341041718614131685617153614767543405052192322334777514893501651594946229519267338526117081329422471977441906722621776140147612042231965374420658198757943042630557749827471629246362318106328929840489563240408863388982079174957629825487052166305364059708740179186637005442168015570657990010284488082506749473056005525288956944088617982415046678190620116082396249966496121613653219001540242829412485273851781653637395163853518770017965342170137149332572511191114292854351386732520693528867522722159799548388075194459486240445443692278281898348076394094906212566872596918072199372816403081251276078291675551819509286251146931907941606180908310962459395377058899723146565516116141401161838139224836386308272397267644806373528009941757557563807679212958307575823131348484193109534642684685558982537504760160575050474087244952306707492377829169666763287747570360841853531204999857346164252800280219168814958910964371838930511745484755915964970517911318359056841286663126235006764722181819751882248545516576050488004032476797026129948900706577654486007748381735572802058738615649090078363151645765693903982233969973531326841565064632226606602574932724046335785012928431192296759564695827628592847998317326187049665786302889669095636597085692070767318187552681602374016165669680181703128884105995324515066411854763684931260941767820401987370215798818652001211995904923853485921884529170614899645779671279503636822156928035939928656109895199997062226517887533324800371526258576573892242912130865010261461138725562002311908539145503936108943839609821914790403271073786292030308997027942383142329249872548393068356774420004001459878143986053872124100770753148814006447493843488581251601061225371042006008370217912113912193195659897533794934199623524386828161210152496230382953735577375872521037768863173335689050750342683160602256955251610443258147413144747345995817757729847241269689402030204940483609545189469873711391447161027974309148379930078163663929020942866036579775574722689215168965198449111707875396921023146762598291417191068533016609095936764242628716536551589875685077509827585577461726524611693705167383955451010519347709386155950561842847964341133234428433707637896078019684325050386400396082715194163636193623561042254667136314314382955996930055594541966019655140058191792199025051841322912576244472336546193571588238157436691982042315757266346905841343536318997160839385360883097385938718826118070491572418956412273866572343704281560116588582537203130022790734752875449143293362259917106309089697331085746805549053706016100999931590481613040727458981019281620137075535321533781795483415963642647742675487104529407201950489512653647562017554982589977800022260169123856305365282241985071209579356279104085163014230538659987406638803237895178090442912416439903407472933476984942812560041018536031026961015214345963738131414090717718192796068302970960486412650031970925402175136644444134191622349750388500879397734756258078932316085031141140349105206385980836802673728929445040350949977764662657372626464207893935458304632728624328536712039998807117125370176638104798511380960828567746726349138110400291020869550164590457006650632743273263040943309691565304362895354328117154868458403812433035762801395921144691611534514966869412204892354291828113484421788480652186351117560740470885294919358977233258915352446284143776704016617989762834543973267136585049275266200810538988273793235312585003259753634857342606681208669633974934318902852660900390393557489666753109816762501133170271407981337310223480015846133399297153224501078633626683634678499107890977692694701929008574825787542943671391179920923567974140233803465157687060510081420552383198822396740274839947117422930660611382688325510947817101979458289738396812720133494700568374834976324930352168750240437535100102488152597869891472557755701910191897432306181582494188846696898136734983628092626584832645034362866860207975676684830509396176352969796839900228778797866004123209077651427613620318057363881690483495429245992385608365695015429205662148541736733679662971823973111216649964179566922215673704741490276042189176716254562287627471315941866142179879388312492917494200729777543489972217789078783743851112511463501646767035308463731838895529814348516830594856393018342069161194502777938499150633560199540463280432118833737819627224287339418240309011568270818408731468098306830816764553400871593823532953837814794255460424215331281310456930579145783013814216172153701925613341812169632144538696147218217224368080078969166577485083711756759532060911358544344674715488065176290212309888425261049493002529112984282365546674275531453625902605871480850778118581454336961462901778775588701194101294190617304215264871670882693066491924682658614217319635872127022217941728108334190034744104183101783550998801699824202448902228835047230902547498776279984723422610663161341144663842852262170871504948863981693814842620639077407105092442624587164180348933737031663824889807215767294153422092176476052877611782263796240125265548754909690345070371862734069135073863777725715792122104012246663919218880812605741830344959953111251417577708234193208776917735713216284882903246263484868627911045424938840214096170251826536418699622262817344719771871960188700916240453799282043203208254006500821456925099474683168024334618919833518377993245158424510526577574697085135124307372629901155345680265854694044896290516738022369974224192022645205648047112811792492651054905273694082174740777051564884783266179891237247513820657260515470904397385418953520572147133131610567511719218938424398353131861657663553675750991564421955145477687491402374486682960873211579913705059884290376954997313337762945041406594158964233169950778424471908988954507737821253148419215267314845528252354508852356709904633155281429642031286880167934635027695150569622400319031948532675289811964778475150192036479594230764250978625587920464106258411385702592762877602589149682593300167906341471859178760725163886115406265704159446985911164062591554593766862222084747120399632948390497068967749555780447444694723342567537283436162451339332148661676812305974239742790915338048176283611324553677523899963742669777006925614585760801642647771196676729099428445815108829041968533001367589259701968159605141742384399916105999551274675928997671575072123469107014420181293488882355441377650642914109600348123196136996073132107958972862480368680488126624540418935470274377298671269878387048479344302014376555228806316689937730757409293645043149267031921639263378993452680762477061327749821489899038547191184606223652839272837956807056201805495322838376259497796058829221591162982202517278357157654150039679919193769925546387319184665686277334208851783743204161824528610821256638018191691428203713578541682503127465536180530852410073808896781366479378306825319320773561529497083117665976001078564871846529520389572673343745382198632816384053700370205642020076357675776008451503008596561502252822277067430950099873137970637237109976710587477026689273669118665962022628035661371744994178177414765343578748033656345829620960459057088190192046542003604301685385577444449788836940213321755702385430288426657746771223336445652036446270607881706429737131792588601489967400960392070826001177910012017593707855306725928110461160101735904853362645636491946963193905010521044707790452688773020613191023563257193162140567184385847855642549303868346144033488716418191697506647958765953747717507757328879799448941450081646968731139159812974273804386705893723861979857719708121491352143419844403982186580558785156323127926141898471029081937708399107683265891665233638397878839667234684890400244628997741152168492089830474015106084628683074990436127745577831530540976716543841070935031493508458237514055299785141322573568361989191026056609188854399517310837936232355568642369519332010755909090861196923634282819656291364980480262436517119920980098199604218648107955792809897802638726408557466003299376439076787446787667586048907643591624032695438945517404585163878413518605412809412059428497235763224230402180505992218120316465886703747269339640702314342608307673257787696430284402980125268144315543100713893481993170474374006963418711095275183236185324584271851609837929721230068383785819994151166353861118374450105519055393392690297601973416965431800437436225364736829760856373790814768300188178232379734953670825358051715481505627790901860416252295534391188324768480721244650301469625783451919604005645735826483951880448672581265783092775956064588299753983811171574173551067812855310258957989186925391616535951612591860502984869608232414371229690383897136477250339993425649199606672087906248054538468669307088954902291191396059021652190299784900209941198708702853918833950368688463753702422641754760880496127016791785394949941755860616515567041670141008578071141227864387175828695795166259815867857569852159488065220268750493887382966028334730776798898030469660155624003166767581035272556360619787498082915452079880347771326988775817348332929402718310368747065993718999049702482194417960354919221196161726968446183642828932937021128326199055887472683553784909044793122270821278508976994044285572694113782290086393257039533896255949466474991347438046499482890849975305066885798042374548727234118195750847384708348798994643567861044046094030090768114210293991239442441871532029102876475006792044691845629114263080266247254773263836746802873015783597461216076807180537735587266467577545171251986388300237405256811536663722033636011078665176396020990410476621888363698215571030528499066801557959153414907554508623450027159378015060191125159939919719119016170641594354888266017383137111740080966961336660411735595820802175294040358320225804845780263212956950135896687930415869697005287219290128838254195785409596193967022701964769366046791126981623248576618997565792833929433698675310600548270497098965389521215456390880393717277542793774826302264310393899618443249016183198324248393877894232980277286746031686640304096133218411366222708393523996383197714198101882889990581112235449858895144963900936854763600931722776917115873574267831502201125962624849156491899142308289527109701938569980509319050795933804857963976820294635584510400866519507065796800444677343778107887165909963987558273905819432862023653700594623908350586807026308341005426438467653112792781222645082789050903799028488643803985775888237190704611241707368173197896133096506051430126040195575068134261771649500341564017309731073930364927023429545714609686664645288837880531028016781605181791654150305871820934957493277191098340100535262147223776006626394935680131788439581427879146384553619915529119706762303992885345863133501142664134256678805168271134705118254221425076337546531883851617133525735747764173747218385857293359862666765693002281383277373950065111838407721913565635919075714681617015782404034969140942116475418878837614913020110033237809367919664962424048644880797963399898891885838624706186265786896369182570609103788816071541953590658486967580855983410084147744613072328287632264640821251786118339244238234430932802462276307236763775029046133582854762574536322662621715177952088370019438350249484216920446689207408080393433869147223152464139897108156891580181729347164845186010535445445056681366473298494935094574409882573671183037642260830382934111443128572571384343175036021941436933633694948896265112555455331140830345811024279272570060976436819289147332984999405580556368486120664126099648811490887685432546053192408965367129744938776943595149320348685777934390624338341319867907530234295146701583734534556215268126467602838036745221156851605074774226935904342223620059354254394230974503133520858929151152367247393889526191667720697167276859086128560255930572505474667466453783084174769774113015579366794878462712406611394099371006683299077548874572557716846194389241311208943552356892538463026458955007507367294519505335396120102585394808882647314404324838606310567184759759845696872899066211815306264152656795710123558960396450581665343461317056049283949467400854538750879533032936450063891680661919312882483689615406743296314602224777458777584416889786413462074877840962363536436422861014605024944022804237553355021660508031509793818390594873997023139823752612283889224087747195786786188769134797619847929304845626805508687500310876484361504768794649433155141657097629907092772429933198394899568255609887570628956305990603531684695193033246982747593607221226898957153166612165384125304837972551400545062238278540328379685914747294656248597123623765846788078097286384866994053534120181857286176822172478830660867092892415404615741475658315680124814789668695918895064985051496762426627024929232526507794465249013169187976953076308732922163658296838685897318735609803139681173817871149230095054176755532527600697426825400780037817894698841593725319869968779824283345735007902361808616138545040248701368956933184815832461908012941807533810928905034871251262710786606201625239327643422954735526970132140814333503088676734731752690450881748944128572520292918648274984245612333993961570764408856237232399343238765348321310086026628633448119471134445276773803664105796649338408900752059051503412825702283241439383362470795454878129513853339609225518141297969584751407190689511212089376598707490304066033955467597296765159311465216243641173207327432405873721073403537299286069881208800875856934821983254932654709104960556353601033709911345090483259725777317707108872464144040072288506185096467203851911970379849401860268321331397448017427214391882231179991140036018601553904954153476214841547576164319884234980724943186429830743251493915643280355086866887519070298275822273597114024236786212877595695740593456983038527611637109726469566328779701005744505044060006459107350450363448264355800577378865106185703013548817035085471288607243379287385793499657481830338258962202151777029865048014656713259457381554204664035452442158772103526475940591122061871175789225856140365174749486219165553010604605914315731306749191408109785306508791942695746760120436886859309351669378479189258760967097111824059024568406387780811191304662966595900786094642037332003872310319729617706484627817069525361054523469953285516740422822355048767580181653240786876467952190728058282325218465051637217807998875974370208935361764090664353948662344289173206760740593735960635948016454026617174361607257962992062972967157691461737640377801536954979975077239507475836959086563470429871857043088506216299049473641095453646261535729195033714318856366968401883052376930140332602103187302842021497661314339440193072199494575758174448227052178429265818700012025154903955565689149509295682636369062151705079086931322962200311902012028195652743795069940699857270666265275076766238325762868387215737368810260441245349847305542832076206559275501637102604176519177852569409652461324373492710462722117308574709059810110392310789829466427391981555937315273215004547204039452936930033656317878302940026906268204448045926221669565538135326067969944546418473244355239087255855280502786032674962287055053045243066723634144276952111221374528278210828819519114368031944216075287390439233335593597728388165013948880309354259159774173226161952792870546095672497986530475805998967410425011334585288013768626931616842952621033783607523699859513246625688108570963616069265863397596362005758684953865881522903411049365676142443240819561824092745970516203337156946524333821413623770809071489179921729989927171782362014846380827425160186858067776772697566385974263328929432363722442309421222879169201799635108754527989242917445551491157758893330487348501928536074651449271686499298325931664492146533973367333382999431111616883024307836940245354509967128884220946001086503062008070483625510191127717458091075343162063936830917895821378434070566724593441164705968212512668378626078541292120056579213270310707479987816844999565949167246041980426217476859743857427181921234811850354411383976626713544413716334606908256330134287014865592436371703945532552556314900772836841250072689439191851300185440483548748361042119643655517887276058667920518512435671960598420019894142394280712992078214425706603915410662319288902345824017143188404137286290036880557466952944230919672131403322521145322108743771426325544210767777717430958059097959755618148541243951983769389545059879090198563968926538456019472373158000985333925781122060781923710443960429498793010279562472444187255647568578581165724811660184626175667245809820944549924314244284501888117239846072546824536007311653623764868057019137129090675349646324814072979951181107352968631090931350631026279143799141955086024379174404355921856842537378335404156942786428214885971729464966934162204822641032302288904566666067027778228203626328275292633072386186874208493394926517975532598096666788250280449064349419124666368509709065776266599793149764793600214179096499027716583432154354280307914279168142722964098565265729224003332760943603081346180587180053307375469178863316444432950193834131131442345898780877217061294532125240220674675112497093517087721968259798549563397148409392470966085114282345580047160999140826661758443690876001147248368066514171671077032372081211019718236965115825892952788937253229830502609026325552569453605731945246121953541758420408497599176658714046850892734370097694138343815595043211637439701216844409657631942668590875940487273067684939390842064049431805978446058328724018930855236507915470128141298272206783212106247467494104420244311037529217414646244846738838963973405211607740794282564421463772759083619664738040193694359998222747303618893244355259795594683755869831346708827826077649744045584502705749343110572213032168033060258702003273623117709017504913846856437893340861163426248225025138664753864560022968498957691773457217242189868324101132565600343085989596635892020026676686937968902818833869716165610469826620942088594551423317935294691401015471449522968395287533067589662081188512236795986680202028975099805767443547091264893478784635346349902093286287905992374877780183273496689243577186265315812178169410148210440289633411381463861987636812423716629535081707048804787372357363361057403074446281545197357440608627826454968413776990996271544201010389865424122350941968756097011382916623597960575090449085082378180020562523807813196582859009505116038928493911732127348618939113529457172066630610331412139356504671925409434900478767958461728784411553788236475150111118713883948181534888347698067428365564511908092733122466398519838033896176727784784910550659661422072627755405364578240573381064931444814596589877386309093233393680775633311345568280688841765779679788824085453033693263910054710442781745866809949756591877785373579868952231047241116683486283675120193777958095932118131419292662019507617210814136460216535856275383197400418703316260187851363865308936770070963022322119805200047349567212867993415989334786805766117712174960029738863340574243499384369638223555314130612782160829299606714393680554377674356779180496418192498581623290705073167298419121021398979842463347029504200803123793625263151529439059261659278982397399908682614298517549655307641926571529562439470430447038032427142076239098566068115708640700185407024535059154629784430064120110587359560433220075454483578076574520549556704875106710321733398256307112893004894012171665955445146383768051912758338747045116854621774581797371412022809319159909851674761145391205267497964768626646036853501453833288175110995364547111922569294424200768909123766229704909962627730593046931974603897594607190268247681749705579046694806524591178440093605949501160692497330253795163275414636153805348692853616583140053566541702276283315430427142380992817740255956208108669990273653824160184785829965423383521161843430378617643424723864606579628782463697084247634212881373409503800952395541392614664028013402119979499542845502644659812941693622811187972510678670892585478151179680479663738675205659240129922470542490210733554299202936653439526720660068910877552952817863586897969433422161798310965792099394365805120999152893000230616799618179839850351834537610403849512182031435143859535284392280484843960437319403584211548303495277808173868923692196506270381255825314564121204493936249523111937839506029161266392418763261725542760083972879274329825599080624432973515969798847158918651110228716134250156639964334323775657560158260949728569032143312719704910651376333810682824425409306006548651599888412712979926336526605032738920116458281522414830673019868056693969886877577017004141545027540472304928741332913511531699213606019786147490784787202747267851777294145107924987323040008637718696676231097251643775574163284703388084085492247050046760600910370700575235278147877003221449323313813270666467849191204080298970998846841879932236210307335627272992314436330439305304605839944804784870659287987976821743926021690838419360569311693141286034414594567548808673414555774682405346889717733421575512411372047806839272560657503584318175565176808281942582334655592955422898129609135002811050778073077859691113664368182609692469906680860313626611197218612015173756850037455251786124047185735659414177425617572317937947650592016128344783659942594915894448372286020793760252203386416974085434532722072098565011371276377884852750786067109950594328438013523681482712153571807649525536654194409637153873946489982310720924403690456772039505179894516069703132867942184264849561700881357402357317884465957632551236447992223665084517625696195993152488402839175012680108327262741482036753284555725751485940602090269883940547820004456382247512658924884754102087193441154630759386782771782393636052511893088910045996745853926977715090091798492201419111452556477706963449776938110296030051600589043153502949272323181022042961960037049966165012919148956711880178548812797065872640836390007315150877059276236427626038253109193465458057553744445736600008502150169480225470999066943145275793269079102979333077792539460634408181724221424318878512480280752445685000415147067909667782430834032300232024333426742364675773043812208549117969029355147723198676352207144140931837528929207049462788881287196387151520909928791755257265991505779024743621658238565008997893409136799497188260651678695801218894671747233583231650166008561443170666376997943154941051074250179304573180895637987627629087367877475728984216858293125509103262477341159718239003846575410355708342678993073813819342165459731824281872752578568495601216863497011509676639557169071951617237938541481622048720569730248783006396761155056761875754776282259507649238244735089912468912252747448260243397112555862595808722975314554947286279112690806631473251354869112670342002463785755492652285277236932993055804457768140561154945223839653758076303303332625341171051994498235495630007351453768161828131669845353186547912206250152392220462380751422790383577976530740587309501514364500403403065023201705012440254659773253728473323100806725460557112008867173110014601998478280557668292852841811163892972726994080601198983505823137526214773935904549172312179191153879178572005812681397171657284438232988133489933796988412649006834274609681209693285485168563244187441148680126536143175340288500361593699359381352173946875382960827111548905782409061421630052850657732677708597126129569180482189419168126765389400202975163058599658877949973587048170933407215339378864598411679512988120146793928856569052847658935828483592206081383621566991372904287268911899078684778178222324144662828630978350560055643646242219845304105457620291215132842633233297975068287593144691258444766317767573519518389003201308315229513934031068771270574046149067466196737671636787488853312996857814924218045175392814523089036340375870896920579087462982970738826589180784430142384532100347720327520558934575981273953279370910469501192041986895048528960331569812486245842299653683042866523408326281453621229793165567862753715500512955674951847757711304197897721519004156351981243152789293845103965672560674562861366542423090842352718224801562351632491503802969294459474109562916611500515896894843134440630456866289540871923931338330955256737270006646177814451724437386989390767211609335852156445413765945462678764825219143761098984619210554406094281733593197649113009801812368904514769333695970243479876801932126241236677410547822973785495531489538800427235494881495007791805030449181074659227922474506179479480437464420135521862286874384360919995018036706570134956170647302251656430370605671949261275235628406635562154208407554320134420164527572672102810899046576458984799075390461043630379904621815111435697379587847626183585811706689448826954932196973114080186872791400963915232477519332826306979186565745877818997262630211613410177776183638969966310786739194343020654950909888457558852524467190044311580396177131438075055530304077903733486307962210755824813943925330043535018050369653562805972750174961453524886587443675068683379951559769924854585203390583353218944376324693053487383501495886011956074702269028431812965121620908467791494612094811404859891545547652917097010259079215729292311966916004350055295331603735021350740860894473410052892273837382809263388143575915389870061487011121901007696043255831201655346719084374089044934712193433775683328862578091855769777228320476434022861668772667473548396080215181270060116567807661431367461698958378196825157031718330044277078519434221676989397830222330488183557131487892644022201276592108790062689626160574848386406791409684820329102947259957566500976196520119140872401382678627339421009527299591208626520108478050835516725433602143039524602234271184100253146778180337088663362114106470336207010703295842871739214660306692574555507578314867207516229727051418036932804471090640252205129299510419783067430904748072956537472402654400264740981420219956783574160239481619229209762966968297870056485364440079698032180821635154880439518081477443327768391873579566377815036311354135039469958993943654344581956973623898325832977911948869050865852512948600578174394674957680546456044918463173891242606385819231592938638001803789107824651185881467371582091895316142240047152962718710052923576896513332986832372695313945686171811991803038558636535903406674454272458933178909569410239537238692396722491420646543339289436307533542272924604648737703916996663344465927765876031410585209380108472330277184612828986958313734552333513807327194585664446191299177759935835509939711966935958404879551911247947902414785052985062061280096297690442980738332544502780046082017381966575267912262566296726361204690780352369619564577833060869505566300144696467656438098431655542978947082010012971394470539139613808344978237329577064152920939002680048160153759618332048538478148607651614669596941335504899980807418522860267469085508321315836967703217429159196066762326674146776992190152028427746707531324630197857673938937384143784340162343882570086680193836181821859384260594782747692207984382408440082438155722912168014803479829360807438039250031531567729875677538454659850517375600055240998033096055033961444713156849883002206939480342727955553250713932083003962619691724790295107865106303008169350806862244478237993371225505542681734498245053747005329553815544311546109770485369610948149501153089527644487202907896576086869904803064837008645608354899529074457011083901640774732312247975010559000651538125463135612131773336929492062473007673870758656558124173781900888160700679338433360556085851887205026567715915408928316644684695689938371585308360254736156432289676690002886035747194688691964794057124301364884356112830043810729294210004699360660936321060071305194721785530604579598118444582053369582843458636776920228958857663647884728021913024021821901612623096078898722727563083376129021309471877818692298000905492185709912103678613518231239961949187803735594884119398428831209278580643204537078950062050961923092155669097993173784873810251308371644378172382108859961630435422120384151774536189643088253402740680455612123615108843398768724596415144953316001332178375069565678694410563573815896243680175696363828342695791893022538464577647079095288540113027454197638118342199403401714474923649320999756794097426874129375301713324509955452636685060385986872228979056054738577060014704287778905861968359984856622624230785114307726990831722582849295981793717091260369892680292865292910269557561775453377430655862818076035948865553629641778015449440499874610019946136301383655974835674092487289041513454308408590562542802973935388945981456971621991571461002266948785629445703202616200057449047753496155988299359606655920328389464162427936004844365544329125898462738175949257873661445700111717687026097050204274314545970838144179497079024283720111541969453955393687419698215742061770463180183492107729545589464363116370450488220654833432882971999499332907578168477636299617631129425901443936623247857475668212354768003320181908537911573048180040339422117918380522041349820021025102534754856300920895460021142703586746581106121870228787331706250058204971306589754567230759499922629448652563451939116126894336064616993712160156719142021280483749886327883564314486224557622803644442070474977761825857948510928481851602689773214556136293644375010644273806998767560440483330287521699972951704221225429438439829524026355716084069328846657289324456558160131044391163211413414651660539671839551488839630072086004821163061320322192485404627712679916674840609702121018184636038431130928376260120879693207906694190320517278159201391224352407739465578636807793757064122508972632062644256260533214319538982194293891289858783477650274581380079711798222281271732244115111535217907270652638115692429255856140568231247769386251799305251667695797679612076862660129137342842522849740329882838343348218110632944213500875207955195126086298964032315334341000690568113258346132990269907767684684652442408247156375502370053797114212284519712544495188728124400575659256634362216604070954193047906025507707294085900589997500265652621696441186358525846069734988119346604596778189735972954412053512336281931829889701906415444925214145255246025026272119312908103091320868476125235689836471316076303253163985394662226443072193772337086480440194040489711833243848838056290209632409715058797686529456075117749935122730211143840049436643279753413577066700449337081228501841010548596677966684775567731416347896571799094117736700564906727826927202724904882752296044781677527792830768218037825620850282718579691629536126497117893356679000644955077532551153271254476397258897871868193077793536432298664403608640859309556627278623086822634552540660076727769477911440959422837350133824032570365534741063629108722110831502290145465238667103904538656432588473467653991444445707732839316142339517481235660169413681472338426095473982841403167848411377424268344217848290385894074285049325355314312140025382020660618958292102747021660107755081195657890167779616562816387534479048450284682949289142256825501511679276997760902243198201265871204287950651277899547867737057445200359034751392686270843833865032397259201482910537765062436120099008492230191569576200546768559115115904540418891177705980389936763821770140280190757060347833119684622788084710352439532411789528172502090257665493913329462983290129490503501994798388323616274379067807470227869851182957286356076223143790947329983486208999955376557943330263892623914159595599696114219953868886504532924986804804736654836086242172465121441667863448792919123468380010178055918757128506271810708146705256462213643134488169332216012505261058677054986216641387216374481095907636137092558255930158251567696688689386670320206660036486757610341073998838088653718143002868853186978182162975252783527030234148557590648234529334965604787675276275665272219083250024751599413246788588378202709556148575078631102935989303860456894649790961159647552115787922151729657882416253367701533630732664110054903599833608903733461771322189793440503049828722220961651727115413629579354845862253112317696566914502999260583874174562284898624238755544806262736933368522982462039301673991168408279067846440573819138825019520283990741811940988585243282720508896186405707292767908670941517684326058165409989628581536404587400273167733052029511838012653584355247779485956172414841006122137808782604290690936958520503837094882360810414833225209682364498692640112005125433377156100101042824754679117433491739472784473524014191270129824676498914123836796025425963702732066605445161478357486149875331533312793007366697184488073476497383691923739189397952139657509560483348527352255661558279236207599122761121888913982110305508660036888753716974929208053704469175595871826369692261476455677656185932295851691760026134558499724954878159828875798418084022352327859466170363031013841128908012282180005493614142299969375989630820212485314513827767281131548437143161147769825764788022038886446652978174202650581334141170614820923996954832074315004445026076688467562302483854411330788145213808482644453344105254773998530138104599154246549856192163933946579489911160241568871600266840586113310786026376894680949441771870044789684826761867888514476658493239425121401853040763632360398652813129755137185658567286182690395111604463100856464705535227694553902584138143028347376557036601216598265525357188774133232360339782228209916861801790702365490416739393486116660863494513845532949706083411408544425124119585798940784570876645952322993185642101178489272793634400342863916530976503586055308291260722846319335993857252616771181040184017765421538874696383678718434376785226774758997718629851082578228382559352160026713790814977181913453862414084991566847293932605798791318501718944178717819123067057694663692131906147314845468435178703054292457253262745181656380310033025918628902742549655291142909840913671618835818279657174736949142342755723505768615621073718470747239079174583265616167542115512898518908357054211610786669467135453157265812856303420458668627471570414006497854437061925313698771041513407815612790299737548362678173709073405180355706901874683305062191744019387198064880800678054016359891300362986414616208688415183651982142041185105762002595005842296933628911905171542753169381874444777131697812225652749892100866408233018907907397803037237779921168941448357458852023955729349958334433710678879820908931971409669291551023423425333566043900025650027031915265438464826470133511305368590033786196854971928076278993926885855359918485042375635763240744162043376528346089988581150796543269176958877666106736113433400741303274900049746917966574627693651210383528004365720261338415513673982234720921066984153775071297840516555592418420165941490390913704111105994717679934755561173872734970756755080234080204846376020282275353864491252426719875296886324566339550751819891682320320440074430725415355583618436347040623594026710545629294161841023011203819992259014804953184248264409766549036128522398761465990294536418941961099430724473775912481517041076207682983541722474206327434374796341476636021781849659802436748918055740980530423960159073965380465861479097147307650779477657880706223630775424922131967205657478735012812825788849118513691596895898450988574114293806809457065026194510070043126228836753188325328034066099455346959120122197673266624283398727141586719957455343942530230160481393908188302819301324621503811937195309726325322010555607934893442957446587105583926728558695573069010072688400175088964934421162388180899479765725971755648508706057230170162336641963450613839910525701664676557159021824311917175233164243086845836725293012921982955016222347542588184723693355991943847343011159119139836952982141775436990976838638285565795136435203249121953707116705422309174102385252835308060183798312193781860489842751942669071392832532692812752419040025134202162102306188870860451695294575345010901160055076080827573726288589260882136849084833549385704219633875970464961102933575377700661711917265969944531871283342522356908174675596157988558340704394095059847025277467527196089567408326350575214800454234520651498234650993739023005066270492337632985394273966912376585166306084698215441225697561351016445345715550535307941323054242771685397123069026798657783276217845799253731769119072566856139746252067715754747947830139502229905009512467270847296055088808740781711326046714016045191597947464280580621400091098572187665993735310345270121501210051347122827170536149415726780016681466160782147233293098356528188706184161921308717643874707702796414680978893437476503222233184455268207524844133221837260185190064258572608907313125547352665521145394757712961173380819056751855020144683749627355972549983938794035710807228181075956638057384802069042473533339828415284261484035813208478321297986428633824995428347590775992207738031133147226696284000583702075005967425005499476986342046716645385255953430899326515953514604490081224197926526184641217236382932529765500364428671325662588669464705365195451542173032881277217232329128478400074119594411069547214318488026661386991186346802557318381278934950109328761527558879641782029095378635379761563089708402183302256326572316163471794005018931891768323143644080747277942934599102836833373838139747672994285060060533743685564262626077910356868549393922955276078289259597073122448794807404839062370181215842541620875674950234119925643606258002003571004756836822239321617346875131266760456516939318314890016726364351115167337104271992594048364080574066808468386755678960199727514183891827038455290815564933959592268439684839000100812653425857947720454086252441292708207974991683182216034530061682299322887519454443002758948003376939441689758873413317099702955172139080906026195864665975491338791242162387298333438841425891532459987267779869563254439623929932034041620158038616833011244401219583079614999474319734127891039637517045403601124885852160148612455670227457659531255234055868706652855515729620633391830869331607357431538846990225741497050044979920260654493596177448489682896748119374534859092706126412118424408082930257947496331069552657416254016825863059976860419390718124000063656392543993695379225757489106352179647145386694325958362164530812128729964392970530657372026889754022078177658352945805847898585294741595037374909656023247359364187362719694324573334944281590717894385291140118667216789685430858567424346386290887899182429676143183039305712994385399158470593085018232109757693561582585200639912719958200242993634178327772405980255044158566736017001149267509273186268198522151171403295175277559870665344531016660415808575022024588623404600902293308338753756457281433120499445335126775486572898831212640721808802646097338925348290896719299813966151171689112516040833085230929442510472498672617089361257373132978984159785277260338760629225611719260507734580732834427282760989937860330985074692578645399034138974458817253321461319083800058854842805190346646987846152080692011636361571410941044908831510771436026799741130069145543942061442887609340603870580487478169813665504530818585094347666996171575218120219091996745476108568560002019242244956723419825332820509377932367710781769797568560843444879325491100735219014495662998643873638174815488953311199075958365439331086323750531460391276156983483522531806450831854062637777955113299319954541286689880003198751484365116161698607812065428347509710929476478765104179483355115642917228857574160445223222311625041162254686479344867854452072917503418126398976874369786723277560293279365019955495874562843576792823545555373468758111836604845350041104498950732044058515668650322135875095243242600151646687228521572650132394282821992226304362268569717340688374533577310339282361260220997734443412778411771168328409854793114465336454268240289774711226624512291473135802597322780449048931976225547933881156035654430299812425616048212486107675115313634386529529113230066868224479158758329778307892366844207406295670358532309887844199294366223533226791777044787220775999030039064101036460321016737100516881983144337781024108313249393152833055195477962189737131305188630792733312355531090481550811002179593443828174962264218572773176948454943609300857872802130711400701062801880168965960132653678483069345202232440956202962480770564981599637254673887759327141219329239279674291545788323891556125439150070888524069915037114920027988956512196972256549342628098210878628803870733555889269966912790441594278733537652394646594025562118863496265562974136886058766723478583671692874885419259426681808037035636360136834332630468025307570481835767832431785781425386287284391230462509097686805090517697406081548808721980359840582721004127309171796366435826986020340187518991039038300049546364607945882004567555206826855400522089321089343486286022371479813666180632840950932195319757572605016473951322256611496891225096792550075487446667248897540905811044230523440183356365172041154718571569159725777126329255878289930091690287873720791589628794492970280934376459297946067856322167320697246611880052660905350687122748253522946505020388053686093157514576873706420820297640790025624123591265275664326605713116939381382574181929035010690611882448068461830321612940797551200356157295057895733074976560827088526012730317028021351916649054501973637343280970220402217444816107778309013066559607629351773854051472912047706932523415319080693349208210469129479949206539803213479047047929391027430136676650979627756641244046778354212419930607480316492008599717470871981716691933353016054890484313652385344755050723132891884435468554938702467400108307149490619646881832091574598110145632395311170279572557231540088621900859780066285364841879508020558942940064000308841236703036390788861819112920922250232738944484920864547887177119718219464824283402992887765170517689001779649725412975205879379355241876307897350309283956905155947758884612646299415753476880675356650952084245584750461697037974641174470003700582290059620020115472807232563841577982114537899583701978543346373144639488980455959363073065942749317682405075135363662362374921891868418429193651734088551459634346267401259418014182873982104744582962612321559813960008277443348518685556936171494027582082768278847244848999455799917204131211338017394381883113468362748501300784103983238660909109735534629030525607196878599119961129339732501316433615159904518780246285604843292178441680480434456446766984397551025411627685874708424428658714155531490298326016466238889684314914259003583228722503254398933998303645512445000130237447611909661001652641871407460316047343909056845372899502056785229830089081517238363507746870749063902988501296695909696412112085347544729420405343886616815912950967954913193108291934419283204547104520824419440942897324946352913802807635562205738200154584107598252397800463348757665994238458660138827132334450688113039839469057439823940237185129016431550803686651177612354713292168447123691379075575150684180677096227159834835707666355662552350229786516982037271279392998805244093702516564998986974047091753125879411032597207155582772374053017064060490253221778038903500141427197001964030700788668549268278144750489360795026670184522883602584409366375040820780670693931075679453043187211459762873326702120434188990483535721938327877107815353498366728594045737885801476917543624088813545755555443417634010788309396951066364588861941332404351737056077743917818450364199741635979805304917536332463190041815111682388320339213635262438546068452631120560537162154151905822904525997573296351120487095653292730788469726432744485612785016960737011159985236506163308468017146328285865379243469661757302930791317716631228582743552342116087566698196189428389589506728263150641536132179312353174793435564853172631522556008716602696015705709574474134434974211241437546892769899004741091397872388767849354636002952011023492736726001951610189780302365281721369605895301826635861740432125665848837315418138567342679413049165345705814100751837746533139227887737133685755628990097116749169318472071877137175045597838882731101566409926175084627159127503417616865701527430820518335232529675128868254618042192110548213821115926676906057256822084952661963406207618150862370713786691990777251732026258102701032049184346783890728207853957473830242251462274611072980203792125577494683055255480354800167317546689155284754774923186993961964052448326908143430191605439174086787768468571754091011743709614563111816734532476241641807481747647708555301486098756326162660944225181792844619709381296724936141932900613379987826492735815054659309019731486632762257062347113133421487147432150147022670382763735407142557888691051252821421797882878897836276756838151707237703235422571604284963838366619696906948708294103921963577945649407852088266405624195061591466322288578556552618736987956633818873017132020864524173477368723798147960148375451112330209884367208488479969073393914910599328401605234337808988049778558989395082162175416795505762934423182694286832745784157023376955323689349852211721529481534859154531375112524837991257455111850560685051572527160061351480125173882911971886897574966121539544238544529982209766206141789843973496794832551405927807472841421339658419651605280677825885142377015954893144132391931060147146137825535462576176521767661411000356400878753297489956508581050072933283800196179497369728180006724327165753351049256977242430405798981041492815293886044672569455478539444029001958571775821808137363464543714361310670435759065064740967284449919650753710007982275041407239136255765492131722537229696168474392912393583352057495447039516166835608515471981317877364830258766909673452398343739715542129379681564555538330909630118053769328568613569854902429846752828105603262392257179301277003315828297904926582541659275722878275459749558222352584044246978405109814068848704235817134039096224804554754934117037564420392419863780751014297821637070632776627080515292537778909085892965701623574780971880128520394311864497856335131925545774934498886676113024432570795001425445661212361223920791217861966508471773675630827350122961615478124358429925500379155391476321123747800473121470327577747533301627387937266786049184934708874714943134163396507757764781808751169084901906241865376391095346063358101107654559197037016003640117387024531116003859296956502825854344118302511815618145266471422539367470069773062534271517311081381303884820397018166283364881241851786895005758859613076376849986922173499175469492787917287362671631339851339510031632249667603447771749242117566145100318999484933758685947744001104551025519102047870725279407539803670058868776213529099866896817292110047717956118968778669762359331319686665334054560630606319027679206394374172460362472062631197731801041067243261320362362165209229519865239619038069366248271872929302444783310857935517630899922616748339393611977473944972507654362164898291643422334934164861095438925841733545781448248336472674229449297635534248833160987935691539372496380991524697100618427699564932568820955307194213718551280276667036142680863141507466110386647151678213971102842862976360777092660490552755151911668800431651665732355619653638608597039274138053130358735737038801182138625362523013635824759304468878088295106498002143310976987749917703211523608909016229866210453294467228278550297408198522886527714226143837562636375775317351937523301694081747101317108601304532746453719566243011436738467740116184370093490133467565125955394900450001931757817071236916846495292970435723279470277877891313522720001054138252960675884104623516201023158889965661952285033552813760931898242985229307236941319252168770136454811124372714731371448119672886008237642767317254688337940692286943304232277912307719483502937405189142001499801164342697805909977568510140425707241948929602519181732423322012145355828220226258612246161204101602812734890085518139876901430863636886410490689593122976964790988014708906110049928330348429139107328906362380292477552991332163600241617085441265289514972227752611567825073078539291965809736922331743782933919814832270641530621825353750552692008588449032054236854545905146443583104401640059356835968338122867681168585141064829561117356024977713263020586806645070418380401821346486994160620482896672989705309793019318647280676146579367065379517467366765132854894209379623851094512724875677912994570336087601129167650871683012417153282981189769090018216643162272220747063143757477515141014055801466659734691463781925785180734596526533919173143712512682489741282470599030967613824217379090507021750747808755553687563325654977050391847878327876638756890564586637206736054052611155681440221621680013206645221715729135678550970959395498047211797032625621865620822213632649558670501969610477428635839726348338005798881128991554241888267363964155293441110159531472311523092751308266347311334116344007760381509859318376567576166011049062096534517258811509883480454409065658726340420863787986632139462029424728658532854391919334535784889294941657487074775904310177100506844846440169852986234512014571664232455563912470357052955134229169584063677905779732122836935597778715793421186940295241584741198052088415198501688963790820670275787471877384792275356558568461689456103915455690715408545465652613778005576292268152154673912198787211778322063042791127049768770310245634876896187864959217595315840534153311712222771521615015967922493455076798511655772159266775390393863650236371810042164142220367404956646845932534164111689530566084229712819573427693091727005619921246959969608058981345119131412649955488909148481971576339948423951309668322403599268198610097350866307872168457321383866472132452862227742934349445540719730462632021489469887592205430796124411450445328663457259788048622996625021025041293348541911308443635538828061389380771405363679890123450195383048600820949049233585819877639506570527877559463781988923869283009359568553657660579968315450744483423484471125704938624749129193841148165486617849133869315725327243676427037944145764506818998111471709538014681336109593058192395705681447511850205445681333885556572446333719949424011653944616846628188658132740746856691769105871888232629627129646375895231958693670228571506565182063381409571120353506507436861309528970963393893741410775853532223705562433283566230775354426680794968980940357180033036715637952535379997037796007900212147538036436562150078761899483168383984758889151657272632465086582833691965246667549646946901181147557285739500721986743093188897711637686504177438740800136828413234907183772584929436613094360541236808935422986076587612907162436726453282895182768828884404029504283378936215067973079884109585978562475030771445797677143679340425930411658543025523367607070022598328588559874026877445761233016235357797978913095912539601298505618110304788762288974027036403305859499401266271302966830678399370764696952282242273324565109927817884601037837562913773838354351062802053727930275600252397120816554283310559496700527066859497867878925566157143141456925951733134279238004751817765272850981366320593169762162461280263789481743821991816421605238399514993562918106718232984603644365284409917891295065318774405894119251472551371878909892204371043288431372535762010091942820190441349928859843718943699306266648782542369614781579478391911746734772614795967851070699001665648698251742913092264975463776747544197400437300698757184602322809341825981082653775249075973614336125819746000558601777508249720886968610689900530359983600202517163440475524585370694968755466225730913377691630899456580690469249959541276577244073887577317781250420518217223969773525105169079645778343930830029522981840649309956149999822624791779979909705366695374120712097352291739444171543832674846708039591878367849340376146313309159408517662685322876391893600139031228851946600374771640890970507294893434900911449499882546701728149916131431141024609750973133608006405893799495860920227977090077952370129529473071400729053219608425842306964833569543842602580656897254822480294578689834856753190703059122876396542513116100908042652451079992248816176383612322375487026674080226182499436291607259946546569258013590770476092419621235326459896789067538346619958876198803365339078280599431708436740426307550333186448667567284270869536550932537075644832894288659394639461160237588012687066307076589856667861647620242399346160437942524696632031602620675684073286521282001983920469755263840490288565892192906106226552228082430371774502455569248189631168687966738130866677976897577518955850875604603964970573054827971458056529185000012835016538745143431650741047827924544751256277712755698968258822556945598493140515754669439724330849186101504740061581241421092747336819998920944552640227436362304729089878967069913323066275078437439504966356973027003515868744777973561412003439795780883581309393917558164303225338783783572945041030180927452957978368705106966623503057895610757627180890928562794138363612595021899126433314330758815433710844773403841390530181929941069101176271053026414584173405469733453230765819886251112530335318670660731937527053295903919612937081827078602652686099458255646013124007075937128173980393610298397904001483635188515069110619719073550449101635040024533349041262306199274025690653782901290497552925281101274727376160091019148936935363559453539266186866734272791096713692933963399120651017186828281376260341333493018303271701182669875371848899700562147177907343113009684509896036014109352155029648047143789549257849339230464062175152229210775088899071993864987232273066280717055980392829581224663545106204975234302769774556745212042288347326500641305998818963547696484345167534383698664320062373202063556016624111722284959233899451102019081336011531831379455700893412687114777073907156430889123329735776028299014845834769306762090710679149113067885498233654692233041120245367947507137622817869375258438357323544006336934225251690359407751299588755839135487331194537532745640758754495929865361608153609601666989035718267114642635401144696588522774797148633795187158746021804308276998417349562252474769700512832449521338606917375315166639096037163438875899675854975221977451982805318977305021586118802226246774306345026693819002937043297543775968316162302897956339682237287697985240116961980673133616990555373544289362887776653571031548572345984857310489884860431540423456413505558024658401519531924089001731336075404188138551269100505544452717670859292083908268378510262389598042543775522755736757444329252627849288231818060015957632639719096241911362500044805794622025910283749364397081356600617043482213123618810169645709470659841191358343443173488139615063101580521253180757133184304915253450999536077026670354632338482939668826658929461209477955942843974949510994599628613929825461803006222573933845924636307098278002497365015793876422641632406964085314935167770407286942040141125381595900410365635533635115960729467392123603655250934983495411420945093437525560408916357946721893354275497304274213317178442002829163772477713438053785345287464290562067118549716238789177765909646845835515645253040255906656144404259742121436257022846192710640906215591972846653779089597609373765354562182409909743318036746517163004398824857744319332963103182317104318810270258953419350637218991240544749245402723786336051452308373800791345147708283953656276883591953507410591977624741997172568351114146336609820747462685937327086047584728754989466534431854558410799875831741594159245236217206177108665995038686401653648980966475444339289695037845549303140424418657716896016746735478569367157896773356741739563929556729915553335894450726173677144446682334506783058380526542030559014961592126048040264328578708432897895905671012953671814013761514761302916800883891842807633588568057608610996153774253793379430637564050843009379530118600331150181837710044872098527318930123983565702560745898501164633130193717883059894797570848674382328801074234354090744465372116162358009802193270556684624058241088942447448137634226524547821969015134617682117163149063162233990926109765398446387049105517619890049273783977588448310420871252387928534721054204249829909801556469789458334359027952264628918153598066352575335345605423389982576906181708036123277945888506495408614761504556690563666121640266863250099924077213929638258831692575820012977696165492603935339302242840968575851357093771417323016285124159884322500121366461655174131569776519769589846785549814485339747943831037011174273239743414014944870146547159241808052972574587800966583714351541971845188825357886131587288491639083578300395025451572494712902900774392254692591659106343442042639051063384089484908565276930660307379144736316916979125817890861814159087238779251047452246353736291829678717705586114531334863342582280882752348459055868274576659450515760016720119412365471103019308077687327302015896045680085106583043426609233661334035086305764707841420952043155303740604574017186078347557302096368764773046669056885371153832219989568345685500677213967180314690716673700574947483596249014012218433292916027900880063384401230434783257113522228768974435645559459279491593839414748686944616009573219965968313827833575576490563129791981607071829220338875547226069722243818601292591581426221119409088756462933418747096852042540848585763554964361710610893518855610421187586893237955028651514341374483116743552110184927127958206233651548911696246750007177429223497530817976120388684570921997750643245194515751015772408365087281076529445361671424685576665759941137682852368244592640246335992937036787108354250646742391127724853455625707677320272496528672957689437047025588719184438952430478196961437401597554969823883627440263203394612855806982358403372490874225334494588610962860822624922201595306360520826421712669621646924931061880085211749137873676558705076351374501764154283677294747869515073754914800874494053780944484827948958637822012452267771335086495784309812354437819512521293181090671519309736241171525402098963476470732110666059907939796379866965409265394602292671003290765773595196352835902352313431478521325510701969524619726959510080535958854975913284335203280836529162773943678141067633682012281192359013099984019436510902719920218879104207398759294245594447819237350822073592472730321078530177989428913083388045262542417842548005386946990580160829551041487644307057878707732131496375685326511975397351423963327596676384673317601537900286125921290433581345803600584172678416551652414862789945307413934274591940239219950066118609419368555432133786740752110473266195361580193366944765299077824005528013744722402229807074471983745048884468981864771529968551110627411071973524373334623389529546822214890690055732703862666032978486049265738859216205725945085534329791895367287969007162716164970165543684116265822127773539637458662109453858301714607210042781110857945471066691221788924077845232381134188173101388053157856420846533471573321394098047454579154610521035759767184157847063668004535548737529607791908488994919644073496412766184284801707675279548794846172822860281850756271716097261019930748470556493357863101185377531410661468463403477626427935341008741167144454486230945066234688664108734971534008677615499468738784323930390266650508036158779275975743357497173472172164748536548115091938580570730050184219708455425262532017566565303121911282713772934295529210385917826473129611844770830090694199670968626214797411347894932022885970974339419747048307810601619204050456318525346792265234458607257498375199243245927293104836507980345380287007177026932445314863577117450879584417437408169918793337676639729951005468467970365239227273008957722371907565205731546536660991635917461097374999838541071518801173145095810569205960010905764751311423654405378304879034420888884179881309548025120494427259658977536489702717435261633346680050954177544466154233667298719997932360050989227799081887202607219129831517624310656278586082220723994966831209382948918190208814143287704667267185066844592634591649758906018113224441895887146801443589570655783548651916971439414150712577831139218534039686031784608275116911179891396859954025174655046661957039487325297889836288016324771265187620291491683197883861816942835545590744911201581360290744196536258916573600574705116317676394587695051649977718844573829228168301987452571677936863370101576081535897257410736890135629217622324004954330839555216140515314148021530463184048675221553067354519656880324028289192979217525108821434258730492359808832138521476960845741261887011259477847428480658930451937817758187763624780158743462720934813419674357121991482278868880516479630956429613882955621674825734208727740713892619639017292699519675049453122082510673776433568116106924885244376880503657886740936918102676564116854722952102921253551691157680296141884507111359415021811823429919085297915061154456903869982191961590867541719449525351197939169431061409748923107269270114352444156352548863063505760430632230570738488784197151242997129642597019318971255969598864017120162014179435496410285720978781169935289962606247541993095186326945447032215511514539348067672065941502185581712161260175202122423526260771054479127031801216478002002543162020256777160114763375094141077130038307653014085142746698101266198417472140826730462162340960714238920416187770760129705115460241189925940363885433979678339505509514898053269370561828113750509938660542250356597713112737756957418758259432761303786717410049063969641621050723538746604697199344607943472221566192965361471370110583665166189707791774027643053096640090408068319431303059627999810865843533392297340402061325763320331748402569959967956059751035824631527310054248753881615462252031511592696770926466435643165124361550355547799892680863831854647154229782008848836429307115845193206616250880646923811820118237303977391336821635070833431657423080778781900822701651447299854197747051297731306548899062760087721887401249941385259638975038624429086328597737963774084151655652663808672321231527352518990170263603298395488147138454114376355283521665459053881704791933277432504293644121843882163406061518438238667432240621240957678428117135357176764285686420100521839008812774929111312752404327609206558467677142857515435542624025514952921033151308375820177392820876312869403998148489460479971478478270332663170481273671314170517327874330344766440525695176294930636155799211701462812080481928383899081481714243848955878961439704103453072256433973221266468527159943192559966489211944916449703843495737465565870880471378768453823252741023111989424752849636130515815184513578268747172745897451365863888970406341382550105233311131836322382342043390966764514672462512988303539640379664290879006266036259294715699074304865509089717286147165031071705849626669206504857060025377112636202168083108187025819003988917397511373296296686845467961855741897335139456354067686318998209543156843570905490409367290330680153307210008897821460495790084432889785098798799636566928617968296225576646714983316999468941725742214582562178721569338080759007816123132004648258000592418568186303964152806079761648739818446938156869011533417635290294303066906635986360742692622395844835122059161062792132236812436184877599237432002543066266831944299397008853834058924719479014456039105073000626039909197250819660773989835055375807015224970710417207742773930304156008312695103390254601630983555912600238895685938463250086175741628228376937264439152297051723564439468158301177896544687372809315547968109040195377897640752721332791747885999449209721735642857024049215044430275472235624912631172797079400473369990128063794053623313701118217147101944990618910254113593112620151718951368078418357663569670448764278406786526416503726148279872681405899837115236247685120927643934517882871718803182408950521435863244423728078609241335371749312544811764153775133859923784940716375370149199001434560979955620185902831826981150540453975919629901618632153973261433186526246054774721621845275636649644992850661593498275067439173634268372515514142220230036992483150917484290365647895820597296685946021786158006039893039673772671236146751158582840084234895377292117701493137693511965238403937812448221836937596621422369699315058748169812330595391806602393516634330197275912782129841882242285700466107806941572735037227384049236226492188817803865223950912127683810591534063208364975335059959749558322678386836756020231219774727107886036935493227558128025166663578657219070783992510656277487901863465495503633136538660694550923892150145854832880234701079101214321342503702914803195510547503247941331964356640836843127388993376991723413075063818707944401881527589481359638940764423193131512983376358622663161459809873377756510618030960520060255199190929302111499121353015870342464092519940612098833185683651570727167634505981356682202362333172384821981160943816667164334447006585263515869807591403182228200389817893169078417635932417950106817010763442474449983820195921564535299492418374053487489294453017938568436158395172929830229508477874887960421538987592301124524424312291586362279765314337931866582759984023772440508018896513635285852699046769873430271594260020012014872523045766076617363225616427388789541037724935460162141541451294966663076000998565307990304234641658036547733967773793038051943719433805038781777687462854914847674133754369694027169304042808515862606808870302468696932957629250579149361350631354954255531777166385350161215922749120959173226382846865531963983049906293045587778146644785168092619107584247201206691014629588632107090119775653876263393282302017343553591204142072728706800288255462955637174913599061796736068343814449982423952307266882822454167359668702134174857824131128959750460621418136175535066139659983720566614866909669543054187998748366115994049911453258313755072863810653973255065465327176629030900970321431774456818934601264811018779019112367854515543202642718463528381179339000984203535385622918150651432094773614534453465487620419326563441178317363586306649218722807029707633251108339556418724944997456331602725756525320891861356928565287353746237313979676182281688477690309510837394687170605391122775792216508671728465348423642181303422631205532940687323129552150738437105954285251705310396977122357170904844136695219234279867774280642385082266190639641462687265736146860560346500176992399558413191229560316435666256578196580597500140544271748928063104136705930627952049470535928570000906976616675894835127983012437926858710960772419034780954666368846221028717460735635411723538339626757985710106717403470409466978474479667441996406829078687803458039270038736938439140905295926633408863038186930561670279008567920171800791587024854979142099130042863303099769403976754465353420115375528097651450854901757939496343565180990175712423078222283819898233899685360458818272363779039427025126696562878520904665583833247807374986552823739880175686393491217261697581080684768663728836706779248484253143115239112117968607087877781809686108227731207470283240773208994939425070771044696987502542513968601744772437557702046509304737466059054985663936622705972889430864233312776700686143094804275875238870343937634820036195402715512354558792655993259585306529272416292598441423612656548848092512852702372112773140051474918159400791746698154662964893162495088186362081453894181857044492400355136186466566581318850806200915668155500048765708651863890890009810858412333948468979749465330675693067525203098683816564140801841305361339264077658512116275369275378187410114626220816520015476261031990613763539336993015521624417303705043282792614605664714399312149735675822704241047589492541830986369089055579325646774215025795133132824372791216796683112026171396876106621054351977429051985192435546522990013877582000557212103761505341332346012402425610308928890777321701462020329981451423524128300240364005792218559885788507436280565756143569681113662579860946388996617684577685848080416333400385856790362512528914064416138293933340259033996020165977937409460272333868445696454508286772760792327561381184786918298798017590877919339433988043626686054498258271629618517006280301914235518913063467476518104742554773656860861116064874624875884261681221564341994104121666706384877445581628974878936978694061145162690632100588912101375146978744379203160688701084840277058391425731109787074924146431705463939177697715733111883253020754417372284936863477762133469143000808731546921060436394750712445121382644365560740346000259489524911677328098256594310573065178612065510402807743772361804098927946139719150606864219233984822328938674581073025614038087543972567777630971837854771411862678690994693621514373898137645659318786790150457533659305028529482009069947055628858474487844590939057781810320506769886514105706090022921093113811117848737136831987720055154714605427799485411769731609899127947332983777006501040549955205478371674934207653541701644417768468097274628046322527678346566014907013705515122371697615080223299688442740962588576101122826524321231291991057441774635297767684805685147535179696104915321184863258053521736010098169165829237561882706895930515693993610561035383124932897323015419119620693201535128948026477878040768488776608606960639211872073865317902916819769595861998793567944778022255516132613877549423602308461722593092354124824431657602776506914883133902079280381644438329949673320126401962174203676413205469437874242244990296905263582996761836035047157198329583656921651476139096568081294626246249765644319511077382305746520219229137284252055422411855204879932787991637269599362035042772777010900698830270047190268449685818514678135845043762201832217338341907761817789629954425050153669093887261582527684615010958199627918293874059911541390374173238971356991408180799123838671448973956928656387905664923830472707491622944835822290251815022402158813579400577477877368568070997958171173226213420906497914540431898546066043559675980473238626823069666922570872370981891402612334893122575577707118791188601677417687742433932877202087506220920548729565532954916901218814262269244597810222161119069427415110478166509910773294277500990770281107824773595387565692851146095575345415244006389650295179769008194298063027027241873576653562544440738825962284436800336846814439655826562438502300574264927429323582342499130547891116131235013310419966295917553027020476708730644651001826833679574048788509719251789857476831958389316820173471847899678284599503247229569013937505533459084567116093361093229336005779135075764095654467429707037029342006461616414684488446484669220460170347078358561116627285487619902501652467209681625264933627743335423130509092834590523234158918984861793324282693816163071917222416949933210987564294886233322359422940205616968592407408822927994134249092602972575468696002703559958913764985339741155494529318475390154397935309103295789551678040722840001548764987615808366497456448654510249584844387256135115347210164572453827459691253389140633465026258027408699273579883913188481322791791715557008604316831158374519002131316638045111042865908948973733079197132486376921642702850155394334994834600492909136474747820300095679544256713139865630527684664338543299857527626126613938397811707202993465473092446747692827858072528240123636663831486729261761513325978455138015843263697666444023958635497577397045501239479798726093870773486484833942195557624190360770207071217010981773269296315096035740520184347143026341238245350931674924473780666928854743993205027355678346190524001700090600219650019250963359654105420020042783040493218363207171922734955876801111742106765053799893293391161365436474874647589567631499594069556737606069244701498437646027656945231759853570343534886519166250262084852795476285771286619179539015143370653883135546269987596062737338098392992187594988163517288421449460359659794792982330370254010538876994365712590573432811374577061648911632346793410193259073642131688239557866658371508691216176270640983334981563241766671228648270287325674690758553477473893309080633212471389236209542560281386792224201037744732630467731393407717967113208322218246943692890862432101588631159155096135563161107334898678251419359881625051527444151503797600866118933691221500090321227385752258993183799362928447399323920955958487275523492369919650159004372315648637259217152683244735512322220313397229007363804462123915011075252178539086570399167307760447319988075848853527093207835149617858147146114508425608143597432775440304317017499201687033092810637490463585420219280781315753651850202180987639712729085388976276391900405858593587690581959739162487603530899337455743375702314078854278176501900753792695784074873192972944973804506856209929032378558153314448907748120751879306913162286388478507501931054347455134181673898485639456303357875590710161085176741706334840027718817740173082832063377800046995163286593958731236614214111429876192090701449031760560905639360828631940951113876300738041609390035516659880006510132088765996722806581971585942166598145594290050661091141058788043133133449892523118581967049896427337125467818462409163111930215017708520495603085228893590942349053364229495121486939466616495032146264269085581021148434437902727835001810850072701409370839979045159324944693443095268712514918515563870690910437359906969260057938507299579135985979786023827754827485185460810339333230170761483948905735279898229883113832159047806427584845751214390353788478683763539648075401703349962742903762955137785941544474954325314817438619966606554689392301903322051542299674514106536453095209617489363720806702767737034020104765112396657398517486533273639200641984354718220224871941782017014210237212109154065529400225798456516328807110407662830072154554029600128036538326195291898952148357751756259510368045876641174467447816237967177576457666094446896870952561698281241832008767985823403020180952452604969218901630925016070626789037131638553990282664497052327364152912766915868193632690685712262588037383631144450865143936089417978795698763491845472137907473202088139664405564775742588375143941262271522505430935548637890943680614846225979669047307480725193608933433537701021178363300062457607810594439838231383850868450799673483114714789116878631169606926634464256975580320822859996499303018838555104569433274264559042627045782883199108946272395091036119598115184861848780734971489745147441669009972700502517153742000852378403349237944952179332132945386645284360196210732523595067125068124009186112489654267409803247637654250025162260761612494664652561208621777851296329522882243339663564558969125309071406014887725416192323063784294791821794242226410924732103784877195745799900627204446281416922460532650792418242632678868250212081514799865274668444739462413434578893454162674954028713505671786294553188078865721238204806849101173474862998039258085906529344443240646206244696742568614189283131733818629260679042959218481375435179907893998958475845769657439133161573606183938133798884072354893211650640354103288721427253632630877012654594225642074753260841967809231524677385033990968635929666209946146067830206480827859588294566466364908877952977338749550241934344963555295821448877844579986172480676070454661556844191680654452524340701739630115544299479845703555191048002913358634256843901376041348419774420775107568802425814296837511063945187781204099634087996307213724811827447836218941524250468109829988918231813983805919675774564557448999181649742665775989512880854696145544426492081048596918906435737411858102750186027741669178689411496680725532853426536712281757920157927786554412611334327616670674905734767392770325502735367655927540874848623512918579072913709464504455756494150711059213081782986583198956761060006041471153994449362071523243265471751255585422205434960243548256442597710494620011006942508091267016197938669586553489410476225412486103539797297330996688572908940764710718331885580029804166619800236755602532390146042103359860871409621844045840403945443628850349778324855359760516746549353460203834186742896010426974544403703614662066325547563909441305822157701870582761318305861026990910747412581228195855673538536565962280032070764850195734266871910151959384719790379210713792470309305318350454638769936716826492985135967306331879801972310439658765479866982536088936480393763739055766234657842864209557887103660589432604791145182519135934264770438201712910042913150572761227889296874314953308679061310102692907108046860088944419479732585300853245402446370881855796817574793286788112138769454318420395366040868656529843489601891483543622336307090063778077428446445338457842455078867443679911257348714011658649765827876383582508509992891708542321131558262571622703728639502973466979692671711272780237644497783405064532920150234716576814756190199239687489417284283599289062863211829057684961836481880538151032706637620293499704211377947742522760363776324716322421569792558248111059868393463653845114143259395196050763433339591810371615114141540615747643008967309934060481601335908746005357154251192972661004798592995874726052444058301160855519638142106896880196062192708400726117351992103234315367373742070663482981049972126772161882162203093479684930837873399261853425185322447590709499007328722981295957136817545926120561101387597908542666302012795208330234839744483894684633362858979336541786394258722813895003185339170532638408543874204133242027395076074784551639255454223886086526997658730109515439576901055550241337522289365348211146272030704031663386484956629144421792198441087165826623265460124681370962261303783307581855296964643803219808676752063422731859851324681305211899933465247939404309400505117624339602780061577367094099674434761951773152449097122558058261408992994662717500475043673416776577377182618512035674824868010085903664511271350222169582935338572825270320661185525674884284570130337121334037173999202788443150359819775441969399183805299075629859751380464161709769498639967838334527793474529607495456080572444018191538104224325993577182823345159524150851028817799813600903250390744040201799035879997018343135170907432508529733702917871651601881667888679982487441982884512589644229689414618188627457103855157435333208800313124010844280830032400943072758898990382355622903974797480264760978855644065743782644826369356482860510866817872918449710394711604643009853603295555604764403280181644272080330042395253311779429198598260920933117516312802676848487210648337910796503992953032531857752062449925383218826054356619799210687737004281410316660329534661960958956711093867700337038283685129566869922364126590828464068906936466174920773049504067379052181736462690898311865882209138088899248138515636791937536434024145752568050732839639596266997218718245254400153813194371368197040954758393744898248638348609064067548701720011754411722201227311524262158223320670292845417735535053844187429081408848877267784818306911002778662292953565547687295721612645991354278555961248574565204217116373724402272366838240055251185159372064895867865166769854324548599619467053954233704421397102816692487424443220160037886425668626187558931399322852638657341331852190124063856501768882886330158496353282292449668894353836974496810530759561586942558706183291673520795652459332325794167176468665512885624176698777528604776453707827113831104614656185533325900145897910559926103833935809204412358620365408185073187217901209512710765020913955376343585795061933459727221215348056066839724211978964321285169769495270363920096983073701297476526058315817125886382730101985548116570440707667995758833050448371120234177109760140460420347272103145589366725905230676394929621141190351889797236484227907754059428768669626882270731078085454781062579769203244109182464017350514642218622429147512801979846097628290775493789329667495933824037692354242095201338746843898221624669654533383265309491965116622004398601569158916339436613529543703878204450718774770261316295501130265449718601723212420942668721659855259109602879628722223364506852407578899836416698670082781696949883921420748164453833366399945857636304897152220676943534643624296619638313130096411214753637329933592063885005232508169066071066721632034577383269136685176496543468477956470481550710439803044263824527766909869243084303154412759484546983141577017257460349816480945805775167067460398873973155886727861540748001665838128846129939144765417739894223704305453350878270711967146383973264787046276221972186347390880323652802804436432786517469633834021060428436693965403727790560608272178646966285349836069019464473026139172437573536054468981104183514813363552384542813349910151184298354122332287152986651229483397958287617288799679102271933036974246787759516024149905726006492355318265690359086364573529203100691652981579285171122933898488184228853516160354411712433530739973013363407565992528345806374791917758405436082348631905197044650421581625947246365082910359050488793984134118502481905298667844329375331303252624647659856470157106089551808670555153408934782266813220704696431648056585886000556006415014318598137026399135490475052596109846843608192041967401775897744025219695355716352509313285567741800509344715377211896082991839215142127563018426602125691894146477706830816615023409372140100586374446391141330596448428912477773860211382727424019901829598116378580881778828579722414140003939064705255752683550319988781268795198918285271461855833594725633217204570667325979801480608103455869690299640593696901261562419809296405612595625604506431009303141094226605776058818472568706445992388252308517279124133601035604005413669894466205071062186010444417614153089634850196107209822706836913335181132061289767855831275700305011055957983445196130867908772764675936774414125199942483121507900795668655422191008868959910130734989349060964835897634149084733830431348566443265929303877794872785004151645182434167864999514106559912473402790980926150308935821407826283677654239306970727419312560533550150596879501923496789126299480102956101032669280570363188920012791178541680350833748253652664589994068080975324857337512986432197643990508711000276007138879163310025906479168164682547612467827262160382947884912653837910743829872486512415537243195905895341252942600184223695062146398539805255513590978445870403240111080579474058518675444905792433937968656309999239136787325299366963963130278991226413912324589693585941829129652568568722628034567486072222009526251776258513741628451448095341388353423952835882298516405889028146009348411922335052205145035371623952377292923073400955362111608346023034192345661155690527483078407512688571794400923375810556429110779313490450138173130570429447110387471695821974769836117324215328647634754814307209154111662689840022662479512864642840711111829278799789272369740248802465207884867459938343963850572881437219150333510423483193592829150848869438739193917319483409564515938918821437242318674782385750166021013548149640399202665022940944931034910712152922540358713333264908341519912447688585537756720216110558782471439520116851918881795048868469900991826129661764600485759972205701073467731780883272299897177884849747131762049724432692482479385667414447697583458894749927911594814451214670390229558782114075289266832379901197248373266539330961579344271555894137648876362519099652347360245541456651646731602855205952415341017280883702838375351741449076752485971549517880008512639986534338439909158232497535354031435703301760017500274870330644934181244169056979834426659972136079451860851969091956008114302295227654847748524555293567985883450047133954253951130015659827927100602637646887474579097197491179963505326383603324963002094214006505067706898493365667865855446726976449466534326005315478384968613411380035259419505341711047488297353780650334274087995698659255029082158261619930173917563305878892475605068011077526785129167111126452270728931137304977150162386170156199514849094436398606607164390720851828509576561838775856741573002581822052695011556628327491064940291704176973706342599098312838643087831811629861382360655286060082892169161432703318612814576201374250747543461251945606167028911356828303513932775421072056416027077530437348649976129013246244131003154257770054424012128800485111610500396256405804189324798083584625125426142684490999576035000384742867339898255681790062197455944145538620793618201868472632308685403380361808755787421313209049646627834353346567792517380026771020619352962809744640322983642947995789719804624337836649071498844563384160073856232956638359496793339946547824419816936865297194902573249950971951109631104788969382154939362815948047093675921713040743579339860244530858359457792945922613252827712971244948832376581968744864822420605049781679525745441506505256929191413598695345048045172943690428594108038574265711097658254862871920780062656664259391621690914118183683796683669830832411041278006376547146372087413410951737836014230366439652222262101632128123286135199598612163409063861039600539322062955647328483181338994444224289671937943818368307329394208234180964301491205044703013492855752941070355335839012612166813615656410810021142237381372707991712877946603538698789523111905890057057786837370470608672040345404428868075134902581856812586652309294452638595317581720891856561222918512218731285048021020010341376727428809625034274461925069426551048685360963324728479497364512957242296982760072780230317130278133779717031914004541072030326062002978638208366814950402433530360711243766659321939296749449513648840307317552351451872439761365291840517465667713552760615263672045252261135742176620542248823208337407829556663289276847585040008972023973795924004924768794030007177240922166138631557107933049366924742366081108286338407691657153762199547905551742184106484854983186536622250283841496345652964597556381094253488121362430359902524575441521709858808542245736478929922573570532816190408379465555860641818227203187085475418742313093891416680422789719640055824545579778368097475168620542823369313208875617932816428475513224945966954577199862069660986643307211320043513776647299304890869551826644814995671834958580532952157145711818885094874898699805136699863031535420024421638851205455598024890738917381003475648635670695483392521072438373456078861668604517817151360060710857912963250186816423391976337706607785367042902638164217355860892360562026571118540050127840828065388520869223763875528400179889902832398406472052300526850328900404626537639777191861713929179945230640901558788834444871131484883388406838786636256617846358327107479062980110292521458584228027869478695096794009733454751747929639365874201507143434219312060516137932910548615081474032984560908047709976377747172053723137009978079535207709828863169011529648182120839346769481972621153686396708755852375580751006679889792945377529529606888694378420609694321814519780715828263403331704973897976111354813393250805879387774343633431830906165249818988118451001846211080344418159458962362255654297257286419279793718062385936036420499639177262554667834285088853638815690612186625519692555545411720754929862879780318684349493778701648246743472034047947934511499290970790412310045360025567948536443631042276393889219716914018672213524366893953745674586353529482958636476655426300539227042096218531211380459285204941756847685692929187840647121850203164848359111607094297820008831680350863263909708794978884211073387633745809320086064822442585763045500953694682662665259445926077321663551543433546274517477490682863333107356698981383850399158106035355363676440098089295961439814455125062649007246345355269813988108023510624765649503743443222240582734978572843909802122101133160060800938987371047553393379705362638200125313151273801539496607960920204433399742134048404305631535254905614190415289296256493257028553648359435214660747522106485471331349454649326047697013501591116174563618483867853277140360678239663994713883242472425717957951329912735856982925972742293495735497801945452555221013192741589789469334689749098668365169632182702592790813593679797841126526387801450140253237202374976206350897486123206526782712645113004168683364630825679725538519759608459600241253307560101410571500340637670182020775009495358913192800630086905488783824628701372483666252202494951548856762015260277363333993455176157934629483458832918505280305302138968756848722182248324830818095670569876253853399333976773995660637897883876722693889247584905079903221437819814001083621856676938552082780890232385316091170813864367154659434315391853255222445883442645014060104471487763410773988419591464582263341706009827756417337318067902782938927554752292556898798084615915616785470469068392648856615902463566010087770020797278835591044044741496318655356092592100398596387711328866096661318355996655584958638817284356422806629719366430905433159494134071803772997515368617753259628667953548403498983941845575613943138814866361579744926951000479513723592137493085797800475218808679252502071169983855677482765662802932115184742374449429720400169649322751102702388686517847070883499190145669798191738781808727846161010303170285963737463960359328124146336877921294258966749358999935362080155235972546365699897827428012883551807376402938552493411309959588059785044998436305312780743676934387787793228428310680901980219982457747418817487329421552596101471505856938283192440815470220622504415130022878261688188348626488902572881362608653588576217555836579325253169320728295707291731225324249296330292858429002244893939074203586478352155936240733211176465151570987500744840864035596593796633992082641050721343938968143356526021165448506461942680401908012655198916657888725487045431821066278717560359563169167670076083366517777032406016608188738525848019894334862903316959954197038096696669550248731587908356966892055148390401706048940383622092605955117311428443593143276791964899056430590630322221167105668474005284036292203268587949672065849449097755787509856383901264814736881084284040793136391282130477409655546294725281491057327142061748635256213348968723500226754246002273120694961442837635976537531524532731515265775274031776959418200888408729633775084058047158132174365438908447840680723324338426731275978739137773102565448012281231985649321740764673615809171619722744700657661416762159960163487819598317436101487897956057826408370736620338195912223572865823089781161599466940277732936437588870781920893486594902621313750654843937844677555035963097938611220421933987968393915892591968516231224888576994647916753051637116966686416927933123020015179286716550376402323408473635678256218861911752296337151369019158817261074324959637266093549854404875682382819669275737873597608320646989823652810835466057384571841853387849666173358414870605798496363564589427342480532307955862256936383273981591064786908972178344100440024597716962956882828323356249257101245397367957397017982037236373140843113725555438826807348683325535062494327596441342223013227774702650801169344003728504529542868121612401065867061345786513019173496970890749304867269891956446690708613583928370668563409573881527833233457491911957462632088676432184262206347900326001816678095181123449628113579536023972349271909686448344410834663168188499265493322012889946228870694208674311420785565776532223396746083016773711067188022091082111319412883769072821743927932437176298290619448771355967422426143760401682380140934777511301069850002225245538389490343141598503684198281925204306599028520321926283676348037622124458799403174358401285012566344450123404878307337859971288205251530364415544990213097232654865236835941571692929813167862386798959273738238626613920278566661741163289932914243902383070938152086760409910537663718836236215424642001195704003524332324468077934964563719214287519803748277719653567386292417025433812171565363119026681868472272355549682618820096682591264537536428737517295232841054578842916553446386891446075166333687352369466283293910018319646515855956285592215682402900423538542717088253101499433840307517463791778295622450497839224342980502546457962046920699187367354313913114306163832491223968700401052204725433056560473977019745912896990614094412669755328090444457117743729997559802135327229305429124891798370048464754930368940415537027191334737203428830842581717746076085426498570216169876613235783599493292645374717037827014052684627333282872327911866383419343805890946541951363689168413933906185483835700034375177134326071779569014401604754267398583623720492254937822386345796359220514816104424078841387097546143271374974988934568701688425660045964731588746162611546598515535819199914243123296042198959709057429411740284597705908040706641541075452326139666559406379665900884073534033978536026738152563969824543734524080594917894434126726051149566827996773563785864994971672353369636281088244893747717034094982087775514292383463436564338258359442885054031091365224564091307064088718792267961444772649971338101585692223926859749791136709284301526268290431456952113078313794572277006443312321393055647938495597760026098567401525847824442016903591747261397478317754834836665970063871641951135074137182225406258973348375648574430582017627030160636116715004019542226158726111835509206248819148555843578982871458100983261509375959677656089838121054909086586408288639618119761252955878196257088395071482480336484111003287302252000361479467513506512535151648197937235636671046178403485370073747694689106561180333457546858599990714888620800610029390408148225000795687795840555113754708386515493892740015837085376290076578122999690340882257273536644254882122466657112063352119595580574746281588869370107587822564019695320324639755078367019987180297623941551520821653062034990616983397133323351347526715080863267397938281164391503802832715988712275317648169072312278795409751008939027741897223340822153349521448422916484526869849092708575026086759078381117331344524660391745869482725511145222547739055024173155624191748373038746234210208962398210749068494709076523840792555878973509233644840544682252387688452874867341154755412092746542791629285057644109959976273838629744365271591620499181205934598304377997069262787594431735494427627937635180788851646917980250363283980833576814502724553476151323625156776224315830704808339309121329018035194345789869227197262417427086823408177355759356634759587875153161857633750335163850188884039147895981999273224241995096473783280115986301814103939812650705728911168468568984478393881563544193361091518094666533230674525529518486203837696099425678675941690425063965710593657292377920324874809192959069377896094227712704392089561436688260719007444730157364140196474931704490813379527417828228068458452508990918432265935986723273290767994483516599949561784803666447950351717413155674551429361613380149859841564827491124640200552065211880086445130190665934294101122261664921817496125068387152022908604203280222404213670670908303499684360878909290350230080825783018261970155424390409096853990239692608995414971642458862985308508345182732592736731504970644223482176622683666421336782394567611639257808348826091775185279144782478191627504555871444249075974206933022769857883145900588161989386810406022332186252119817316140211613940512103291764987018154098026770035766018560293009516833510867779510379027835541757017092566528738098867467126931977429930291436514200740876212607064894419803513945329615968464436898313994958362367209896782156039174210030711399672745832774883294519049099772075899876543669509382167246042840911352329788156235686602961274434813651617832189529995658553912880168919108919070233623602950980389075319061124989405388117973945579462896855974284572950767929904730013642695030546746899208998995236099660079106531654007752871514426576221246507537667226285395641783247009274401069107605504187187716039073467419167935985940180089654526452440203456679903310607975543563927972682249752547038710614704020471867546197120198474905620611887091831782578648098733182823647907778231496634656263572340090446222193556924585628810357107687651099235055043113702102757119873233572273172188628506223961981987638717512214852925056052104798139358670545384322070018326899979452250284065845081093127482974629513898847442883885090024982143985979468469474328925753682976891301128861580592623300224546522715412857805794146651165282673991902302022477713404600188568019270988452237504358382514993245187612965732619792693908672991929126467923253130293569921380823769401096673277300393068483008481916724767057439520462337277867359350047877736245634406119258403418843677247507440827406953045770915953776883297334580414284019511839350142819048371954598774771777248305560600799334835587210937409523001222149738970490614646863467323511461994180110644698428950731767175306966061244020015353243105543680213842612363058947947576800506838237344688863860750416497483633058050706990964829273299623061665152625810443272215253315540178701611289220868901046562929051162070232491248196917205676222896940084405155284565381230336957909633555036544839537612357836877560494700591019989142460186687728276445585633611500498040804477188555846490704334987228263036980395692014958218578676533795781583712886611463530248107078034666189234605520291940533137462688719538109502735705353943485978878187084550163275037022280496747673031679775796815916159340982770517640760734680566031059368509031764998256089534169183910046893309492238446088121888988403909733732711825050034236593724417858469026682254278030352325813596972234171939656609009428124403047821916686233536624867806567418383566908465127972710713308754295133186670132873429466550111287321747153108974029881083184431192128726988959945832137828016619208048799059354667502828844851885724014865856393116326043563300349522123529859308144392602059087275926913924346790572528441514735653575199765951569336981073941320093057073458105119665440230274893874357466200361827469454210758118284792488655892154383240359181325026751168301287224107319915354566463225332765169080487157203977083093823363163570530084170519042889490519975362724208211094911094787323097202262703687763775182303374972586118862444781145892325530894043368426794829875032178139426786189439626125805810123838118464654183411852391212327369625372786982387676443129577748438626519435842152296388721151371888796582633603558500631285883083501678129912266931335330307313035698620788560477218204314749993932138106235616332833907642690506752588983386479253927796037028845296718889044269933658017203728625699789922615160407757231920650101247778881173960708009263293530241582734665769820678965105550109138753772371403636613304470086673968239369908698868313251385872929818141812026097065499506580273695112035379664625387546846043717323908358986343047189044457621705081561458515218668174840948000419996537514863108919758008981930415358841926011789554065382979567873834764401677430104412710580554706984877578293154431160812848764627039811828418840796528654719018448028160208481640577276104986965699404046755755094252758372546267621179377244289052351547247341856928013556787016230871513905796121943164515111763251048405887243522750021700397570746906322285712793280998894141909908404834246380644360031341818970283362888323328854784110429962140858763716772873960657499409446641552404620988394380312718520917116064387955701271185824446513951663080654450283104674056196774772763194660868579997032021649121377833892458652573598947206084519989363954263495338603701888279380945390897607298823360306808044226112529522283646889148818584123238138468175993905049364267458342653307675458843260644033394078090087217091960632550774239452622044898076188961525881460209063891570578006716007425178402504442432903288898767150001287854548451803308785265945949800630205516088218924569789454019419030775325534364865772270988820491276663992074206324591270179173910074380362324440959220165156880892257363265554717381307674010457974392711757386100113223501935861097449963157312451727854958747585216458229892696245693986121151384059109522046320630952553932046376184226303746598237379598714598666918916050387231377900900052452305461998031429273938442393113623277900907644813742537113341962217216173143887996250528628391187633520332500909757483442993017212595234721441237134538244032562793162544601788190159342229052874069309534714362934516474267247920243004429723081193177084300686096271947932233235093076972035690644637682467329502890084564882439972307311222211645315229869971838015301686739404153928895026985850731788757273778057335845752934927444143488361642462004209657487417367838184277439774270587328564311972456633480103464624355629110424144805370612858413598829600615867386013742591681508867143918251800489442736899204639095856907439225270439276902117721678826359692972084477894718571422809813703922948965694445820631365402109251288925192559733093357120441155572032499927719484050194722425275236499103501098817243815936584664184804108816852669904467618600040704984634382413048299216088865451781734055519796501706631261188000558233890473309409280385790413804450487680995331653293940092630720294346868200316961498013014680629048551728968680337681213302014675947480766573165926016983846576972130021156765716516945628214271647876405323381365257083029621602477530057915699808635339617444945156704875279528278870018606676286590711657621896935003922379323514940093060223606909581904563652068394548983024364764065329104278623953349356326414218085674024150503172629964417323182907461566608591751569691777986129646106031401081220366718577003752758793684223034432056118092715257210109679108810305376703975410255357880181925594939366165756550509308423778538013927132351202528764011682209144817370420038690567923772031913818355267264572747556165593937172279023539356155656266638190518131990177687078944532316621732725911119725141664046459948206028790129735064661023537997130461433145759856772360838520209990669898103730428514142967754138582684256672168880663720932073161186857583510825177618498108626062128468457329347888856788900797116761513541643495340755397357041787850941878147512849420767208020748828667926837644908421864290092509203930625370546095947129900954000215945798767362617671056354387784153179589277052576060854055590420957071289939720201065759396679292630506721406751323415930964520492282613157087877226742778801513636727738450450469341058816038372365803035428410752384982480679701644181834121760514555624828609930505134895358560708531813370619545607611427696249874245528285746622028342249352226765085645297047853544451458367565401581968206499294534940525739677771729819671447193938017964976227684458952486348859847450732228508294713541252728618138682024365968480788056473853621711465338150999983477438584436170772124429100709678115539183863633293941711769963007088027799165123040247616418979297645701523435794416682226005816244144238932604595640310709455192045075278690065831670343502967962016836679122809953288510864341116815859335652408916085926063217495087113385185204958181343681098162415969404119002181389750627241013693821475841285668685000549622631983579414793616260608407255238451097003339785074225842864204356141376740411358718236139915203569291651848516158274703861849557917925889319071994873783001139942008301102785433730185063093427877088989485883931777538900464792907090026816510368738225645817362956518769977369988313519458446923082066163071956037764019441739579287349274273701562772528048896478204310107581738568051794538201531586129817814015445779503474268828272162595581801212229788254390967314717021735208617676134023923719973983631764343513824075431387044258142453560358917224643553521751559837820254353681167074144569476504604782135155813096429633906840728764235082067158240906303121170680953023453703806871823877522626560729974317970682158726258595761331850969937958857557694130836910200776911378119465434131018532082230239766257478758913474840072731443118049676530963430866946057683038917359455056248239018463508274322317543758427751674375102518353413010696029164456542549363403179370747092151864010580531470988092884544789009763256799062419948145992900074511818523031371786438847419801800147842932097416298976233340054141721340308406729982776618173819560075780692091493279725875927381083935343580038686267090144363617227379452957533678130826204644733908188469833150445735912571355864260090266671298219398035396034667676371357394983996998530450167204430879206767898175673604321578931081836211811946782269320185337349588824778261108632563826326077888559416934388069427603252311293362144986355548232792771362409549476630768129002906594834444461214693428710251019616341531750755705693681225565931049683871338271344103848731787318215881940514444190651354626321153766138867018458370820145483903195362688730826645093914834331675529869501876000110816701710409369619739836966790967621926747171601823043986145780178672351470747307629061535428239236632289865719914354026782844286877884759433287444020679300147922895457333260759635584660640598771082119780670453947735443806424788753964012384618612350935772099622477325998525582804460391999491527272831696462750840674204002648612006407444905095890476513667606974860443995688020441657847614404158684947593781120018028619942283353003956303500132866964913370251381877613274662356705235153526754782825395477773751172847640208436884204324676245262408118452258233128127941166595369777530041185045260007452698262170356878663888397505140152599450101223804895712869256376636972352476520548557434681247338646881827200565535065146476259051898752014069153763925978509359179959131723191014909149527861707122049120415372505997368723193940997707576346049137141175606627856015235922017558620347029992904317025393947572447263473948268481534808332509378915576769989063680725063673284883290185794026591372924258116811422667649053047703621161754906022863583970384593223913232991315450479229115764920420985173251975262271066061197779078216246233147400139259753525218587859397441410862040658684296066818876359267378743236793394940774726846143814980003914136201983289338135832190695322873809007848275954119935865492746012081922792978595786407845199889581926185603377038601491003151545871699129194229316758777911704083910466862803108302160144247571366366734052356092936741495919185443585052898280270555102406930095739625128803503311296318328787118435826213369929105280690592675417809350046366463273153268915757179354485443427149514487829448025745259066050134485493809837471425488958378957541480778153231744672624044097517878519635272910657401461622814225411916273461051308525153632295108859185296456129385070769433609980450559797915133506097477281070464649840182711927123143580336636665320373428479879251709599231852042057178806066032005290042458432007510056278810698759609699622027845060809032340899923569428201294996708840106731314396029965822959076386074882861800247826851069277634344952969032985948658247170949646880303672244067030353575446960730124862076297946184598649447763549434973890272756469174690702364838738483199925432375454345763099155216715660240405369223593732570417119925516311827954869052737346368199011011914738130328477017260087751226877943332726978102867069835840709468973981939091812069873552851895011746645356837989540817015683963657163130929729074129441988420988579009485504138965665348251727835413463076014181737991698388196835348840228999092968982636923153741572244282094148406970120532270206896886483840338936723689274423766899995047851826189232760723182442899385694626936004134683261367629013648186745050510702663263985643649522746337408011743083065767213981799586407691605324145488175689593856058784500227769725490161852793935125868675068807287421291743682477209522312881655057085432725834413626331634085098096360457749324120068689416186214286173468140609716130740401703195265431724311849635442270069835043422566493399655549094021186569266407741389948642585488110287710566799826267394894536075857339389713901892598394369825678977584691301810285780570012691858043112808144453942134590494486452707545058527260079455604511923026230736301718787850319851116626428880136684641653911886059276909648247849999701805555900520315117344010880900417586233312276796912870005578948066304846524270963363741257337535240519272258225232224086494832340717710241397780514542081077248117654859983250574054303437595780205461341272314672108504388402948258508256060159281609734519153157415048013824034755174583876776384607989501553785877228364445775401749629192052046150738613290676361280746852184067107838414953003952724332781204902220674800449296476661107981346673109093984328497672507030502741082876222972401391077821816014470806324544261729345509847802526260337018927154584786718885777756163201707582696257466580620742754171781988460127648645311536462145603847813366542944766651500461058985024993494032386892902433975700207171387696026862810999733353170817118656749592424614965649873990410984706357653764802349907102100749375424606204430504897205818049356649401176145736119860033326063868336718258586870275564535238907949261201087586794540046469430380472371876815927825788781312688596410817214647166029920669467242690430435335175019644854176904294257467140879300246765835403778355177905091748929235749997208446801017075025139742845745795890739062413389378424782580729909385462718472683594404197310049219639705101378861484559044837873562714387915620370092411122132994881685428069847996179855556977925316450555099187564358856615112707081105635547324360786210102980689338846738370010955428173711751358481626479532257796317771774815245346123102386352905595086776885796551786014709778263382297357696379729401959046681408171599123644315155510833876423358416272005441889027773504433995090099544839996408120509110126482764531916885462830165775118315377501778371417912069440358748491016821888803702317985304739906851460547962863891090538293641655143624823433202857890106025973864029078590378757358949547845924770187207082764109335110916034352481794121243477158971158781825861697439822564342202746055833244951288889852624274759595346613171457936465949676575569509101718775762697478225745231833975467900898209506782661784583068768521109189747440111338898591967113662820539734446864464339545153240594671801939393678174430004205963871457101355060627217991189005086377600060434365840969933128395717255355796262134714568558157766242593284231709089466353230426953792029434173960481768611720854479904789301608150118320466096035855207939263913838149899780632133093797404991213272105522618391733759483217879964483048365513755942550251149645678781665433372571572631060425970881230088280707933292678320471157545389787851501344397624195205435340201379270029107418797218612958510010991703178831188239623572565675343294436812151884930867716928389962056166264750169354753036557944407154913998865530076476170894728903095173433117278384195179196384784560140999753057134657799146771614260737971283800654827482825170235901141975306103716585424930264750018031822431880034733354195353492346228389643872686695925527760800407939786632404241221654111412417381904639916222750197484480353496915111191327810837862748273689487798805453008161202267408819207138932416663910748127698183286771120587445021539163211739217052800441726004356173255786990476064133052383562446982892137636155135370959185813132368709546292339215185108743887553498751086167895653643840046344268578158929328985846376892961929495403167771924494861345522953895374129237283179723680553242750114719414341004533061458733069169453838734722128190638005292704073036104168984898126588886114358907029895446232752265715395471800744563846105105050421756427633147565686456648536804992780357961805738522644764628803784442079427673633243370449169252768841343159224719892438805123121105049217553695855753515710439445682820854776075742215238449736430509212127695128755178474462193407863135503131280368850816017216934688876125306431643179925006540823522055874375034819056099050678219146593422994444745192453104807581976644764978233488006859965279250574379980580198888412572996531456415102128619607058887671823083529580113785699457356183818874860069800300413862370142000289498440410880259765958940924189481308661636360037086180385895691320858533773864542171994118638437973376069793072776337500281968826702320931134328342292437848708927905593242397920034796930556728243274454186932047402677052533574371174152460424591072389781597741008111954797764116397842896348844582756359194679164025150981260711995348337137999274561056625785589687457968108035153603011845473313516318952170349537462539544859647620108928636106577184936173286047296688455458838579085746128395068745653020430311411143295009280148837174187519261679834695937972097288291081505716367322649372857909008139788685697159490760547736523623973849371784118798204739160113971276917458443937193949776294690084518218794344847276271038676567965841859820756355594450011168306569680814610341048161512734601732489763044128457065158512597544229865596813627188028713318358587582865606525270270644158608587012921125677482027556546793325473874421842980116240317860588063047446244025852337774455345508240182432321235025278373051186028377798382009314135319100779158954776179249744273861291126608573415409379904962229817246033505052164895029298559854452167376299604401601473573100777464830169002051006178752970283008230025775504246216645146654101876826511240147459902045678289774831790298661775770750552145252007052950472145327560323242739787171674613473669830080556972697827411482897601932701558352765560638563281115273044972233672615896485273162146042117809988414854856503517878343275650822262709336352510481929644173082051519487550828847621269961658767495832759682254091917106729700059185583848706321544771741621616903930964677998814304462448980416992285066418862603203491606294064391708581524744075687061040217418819808699766914005406565894426032034548422129266191625073533563187788525624683292257908651592807674567972475583649425874836771931510970911123962355271828782500459334692518822724712100779793829789892215240946953808800095317032695777169198912056509146652605232243681080615300819423114290440013883936567683745929226005622426308021040685399679317578150213316579376551445383975256838971991494909320305157294544333218780817589670715615609884124922652810410230903342903276458353983822032995293476360545962389126117243406938100946517936913890151489527680015199473484342079176241278696538530362369229820732858742172498866518638365422608705398942203781004140188656024806305175508514300418114255491778829010825399959861099193689322516987356843966441625199124103980369438685980609329743200407944170603373619918632149184164583974325362218855930074692950689637974229942624839618646388080088146245962849351110079340515136996702992283303907446891211337014621482711041495979893709750180103682941759984024621187184340337216353820915547523046026749231232966309700339511531827191396370455524358092078429333674408287465005738297836845015705123038062719767224029499016246040555347277461874706378858102880751874328172266158089477974481523013134810974966919518948428307214498502183648715797727220772811321045034504277784278548735876684289698185853153941700685069110647559873457021951502456111382516353260267641554410813086726301965288010506302088384091447673505402247856366930761212450257209884272583986465098717408480033155340384807168632179198846389543674411500693496970721875600117626772590639932691496389547570538464298213847785220120267224396298866481114624147294653235004432852626838395890698535611633866786307960452532374774674038779703309371385497530439095549192736497784509186918437418819323921696222966463456803073750747846179350870518316340268574602765463153875916655783550641769163881970158485669483261156992700555476311890369708594262199088695502641009925510685202511853452457919310193352291975489847604505725931301540935232015123728426818126277851294927462326207432621531077085660951444150895894366018882084272520001783879235037783516339653208612050356344445992115024896126349976932880893085322877974763711909988031357680743577359234582937514593459436121329613530144588403383882284674491417284020410747491431253625503820607973885358589521748355766644277209255722603728139621101909454257477573800004642583925943964172530924520098495656925337692221305046450361195476543839407170464879662610673773187949506367311472842433887820184902352596136866426534439935342618632874492810839365441139664414294033510599048902933121258949504382031119804606293559338472969980137508124055120278335717626275591821173661468902937783860890260075184511302653842744137747791638339517629672936890384298809174675948011684383057858663797160832353326273410326155230398306702188466528397980692068338336075823031797409124788777444001481568146379558306813471045361099863860389221543932684980775280718540022561139631384899313673854548681770819932755156430184851982369507187497179728387263260694135430881985173631651474857035314822514596988931935612569140061242750173734140051161688359862848725325745063616621776845835229054799416835255237772118908174838655044634134335743856982413429718498521973957156241572463623529343644945654967686731898572207817796105717427370696942685839395006865617485037311179551161915063081641187126841800006246753381321239569231648690678499454035055935608860110233923372926063168006282908322892864928221850248443298666203556017989297290173534077844878147933223269530872097746703874786498319288687749042308707317113743232899543936547364448124959982665930995238644880411874339244418476093358382404423654356933891351157912152074256091571043075677645835079689470699204794466983524247731281540348225195461004997991028398527456533392364283557526261334408974815066940901501611266613881178221290348403641253345651416875660502775321639118942204578736802048786117807882319346194832809023985814955335188106837963469160867449075875229902791990131200990111831964210768297118094238656922698938783324835049041770610227637955584315518915855992558415463590478881133524223899527595197745189120307018417697963144184745908217836182714057147543234253847459685020892431878997223405780240207030158023381775295981393711862043053353060153488541703425996194522493334755739117405698989870220317253610146686049716195600087619663233319381151237673200073007675977396931717659796051632058943352036445679880227175748373982964619960499838783626372427905441797864036248592630146883658686290604224247572290106568753320108745626350838258130562977258839555921163539866361639525996949260719262636785670342394077581209611657379193433844939535896153169012651804202936267915060117517658692783817264235772028605424253195631830506536964586602117613475495606886225658818871070040741190706217183321875646680331082997135383018406819361602511945711489150875771701776181681940392453310827673459223080228279444653387024346512533068173857383500306464597973902034703712655087199159805239084886133511432334101484406384280157465174096008393435058287770065224373416922235922538627240946436060835384422209131713170403207538797611204993667945385237638048690947809337892084593389282247544429199253423638679955970242766944134374464230035655670719375511119983591878247896648868729549532502683847940598276634199424738853866772195733209235897022152015874561300416647651360067450603239328695024339809376690371176958776333272425574779560875025027681523080965790045048665559481336500429760923376583524827631552514792265139594734727704529090350943232989408841595670937629376080713345914051450483083840341615667900460992326395336737479164787016074128190924825135965975511082273881385255122189816473623617998455427206994549316541266929034208024988493669561705018556759754677939155889582226762624382549426618359138712793760279084385227631159457046379826641224752511865463714715181446952915655310928459801742568074872143530784579618149697338999344962053147210126918900605649589871404189462119693508616830866553194796928488849898352797347979465498568021935257284862638176168402981183351082723484636502016082170690510896085465315869690445361952470104268937381155157519063398654748796627181930445584948073268140484082873568883171873118228734035618745823893509463703902454029914966414949410439081584359108562158825817736041881074340089396655807682562507348079489658152339210010268331320772589319521421074812203180560943149966326774515383358607113618109375792676328270857889093089949283430953956183507655578831350948606795846843852524756770683354978157364458556330045578577724447308784733487148319891951008318104625859667326416053287406933664831035699761685414979678683699130304868889345938686367609519624176390630404932493798217795589681837517670984983929470121941850415299620957194839600508150001982062249102596210518225768015125525238210054039378796592215116992581458556751405394423985689250006487763980244930275945034417334939726690922114865983472401983913407296374880339686125936246502220302805809487473629254515315366447224283736661315817048810105934468190271526804995058194065743160591758151735883498604579959695007719863415285608748819599193028751669425523777442397701414564539096396176882183827557798774259331623754550376367026349326314151388902763857098442290998653838713569787936678706661968500232587924709293130934838992756432330388068524757963594987684004169995899471911459120572318903681100361635969727493700804325044479649037847439698672148736379014461740699033851280713652534546786698475258642474392845101935398247648164795032634488975557136461127547758009365707201907022343646479463603514044361879791668341563785996314343926822890907401954418107323242375353092368619695912043020532361593589391994971028291376315684899934638776931413276118573121391601686669518956627883389175791087002794696936801790473376162716544700552270474189586423410002735440717707669729890124991456255778571037854861506430065662201705710673364308004327333608774845670682711861183547984349799661300922836465006286247951677272657293328104693275709419204615550685683689988692280773349983588019967581341503863514873735624306134732575640479755607210456215867983993400147890895630648927184334575196582479912070857125334934316697468431719228361022266492093974841163502353161307657652051107333007564540502574437332209288457148956916410880463987565682466246858939372459796912967733551934009979405564766405398508494629646186353373545299227026604745937860918148461121701163851352678417500557101044663345441558215968582365077961672583931195379869961121795016207600358763462811078508575901064413536787185174277645926708939013272142744471267217487948842056430567380408075822351731319226438714092767397261163519963561185135614760299826018252947780644417662112654473719176142636055381607049633676697196608014269445508648033598374391991063537690285572622817163621174117443189768754630246010699967909321327862314005157297721631871044014025959587762651981449067963453587186057702496870897747324335262201334330451122082991031650835404050558018802845921137314041143123822828889779072201767862751066739602836182388206829746606319274558055083936972747960559397530114235342747015814068466182358966341022684903095692057094924177944407419676971475042953828470227635950790031753420163851322399429821073563498626429137478997355645383810986691055228744722843759756686887858716089384627790800235521893011245626771952244598281112842085622407014264253864047931101644532237266061271683247147211108656171358678154990902963223236378928164265156403658550356464899523055937932902374632958394190830410049561600739117237990854776108959687450162350403547058280776526347655717816027575129786184772289943732560206485214435017066714233688141881834994396442635395738162098554299670205825021958152594529588613170239433608160050324190404510799468232463349073754755770509118260666371496391061873057946218686890317165601734529474692061938190304287324427938333618964914643722496455556527926963887507828186062637554510266310237598792380493074707294810705794876358953466267128827263769569630600812651450549779996160347337584983433914143672292891163982837824271933134496237765909795633980622776685222535713784774378200265620843260206373579992038875377352694421125174233610951679584804323022999753713667702036738906889595700824298745562082888839789401994328583939023947774012364914776576804112387609967328109753663224833895636035221546480015724523528891213951027892845972485255813648121642977780584324494802670612097514111497221392447287023880220586460319642699534737117695211310257405468301654360902124769919335546937474111777521371948489398017601560740092229265620289926886205505811933494753439982107964048400372505954578110339593102455101242413127296150039680802227088419997075318698609623467149765898443869968071850245466082380929707563392589903638728772187763123067432542451223120808911740793212631793324531576150879932569601946777487786156888135296736744931245896875911974521648128888534428197627457411151602176879128227634737220416705287836306677602105844503177384878148310525018116266559967285489770763507385770137676244009569306157114349567689791728831830001847338547697882860845683243021537845561772339150902383399007582891974046450887364774100016859924143426174000574698693755324801276034464866513504105007781546369504549499357186924278981350885306536525076172498840393979960437169771254603440678293382204467466491957884646174626859587266922642635527244806877430584498904376706516785042183286058330236887272378612718559605837465110718933895993439070773448509813863673206430987170645119940048271007559755173843061596139372509217425782076160415601219894483873853928652903791960006896828218968441539572321901684146418560374436939472631720420844558050120707682138607861763983003053860337729510994939047990453511606625462022849123219240236580950788764013634973748837456878005841004837525320912331567867999260460721956955867039878144248287122201056589239505525390959064105488804652155185996305579454492766120044800714831284783468075048041918221914459069228233658821419508043290487852512504074006314443980610801472735632470164619744238965013479566351165656919756291464383552152435761006306424851852282021276412029110090074040777059181582809680275617083333818117202430420208971946963846973976580221055786533637224189916998171875682883148571474980195770049872742099230046035787111992655177862766688278372144392785107745448752028714485296779037144918693549211416485275790847680250498732393390937600528973398832110865733859116620769945313244936021452097862013767252705082833663101686536365610147023566761524347856931880792714290984163241939655124358952266096270967250553056196105453192223830618836600855284403974876564514640534763212373888049413414762534041786613951472607647125695254049110987063369881157879697723616462232965428640409701536452388363279611966354516230668665603664692095848680498400213413773997336796962056246302404794515196843626456076689847040785638441512336067586883707162724916387013408352300561184208583715779312620833417897742662625181411778936088601870431948357913464820951887309416999273856873682802318129109344317097162625725610963449485623510267627564756426278305833005819053641829957140059038005026367812721204360598030325020468101868829110579163180263955277127542664784672742987195929196133866865677610575509930643809671164083841090235135675527938861348612043483831325279983638237625649702994556098027249220109781175651110503517250690209592731006359240491242141026288287933617221531496638828204498712987737901010141563126534213073950218474189751968908338097051501382604071506402616143391591801495764305046700338107969123356741017674521064296670841822430760942624465363641419108971369809417233476006846326634498803557055840363636103507348839262442323759544811640306283920767189931841589466339444401765112572155936976361830788275733946105339433650758022942515583134576094566215885411383349153026231955668509495256774321151917765377540653172052180101869810452192950993198112861954592540407466120230286642378187539366947515403961620727267754872935493756498407098199851215179906540512758429165135099245881516929035274419322825590573528844282182445600913291421241498744931131886834455539882284909247923853654200028774956543889667872910348852011422865132353218925998427983802536976801952955607913381088783488071023594858652948809527742109955713052595313792682948243763643150219064560786741275278858889477192458485958793834746505926587534699256812213362678694144830500030291837586988464954636884933947995400704413439424345430726372803663034278727854059104309495355002650204925922207762752795292267719498035255673447817374275211327683487031067630343749500691648902405767421333811200547188727177658312903462291442339392290819194585292326588240219446039829285673629354791592601512822736661327187830395858917386339677804579556752492446928849496038979424753396830018386355022709640336840273303324979361443943201145890952106869034287522164920401582390045217509262181179447025384002984543006853180987564012347038859056166737087031944649544542630012507261859929110091094707378246447314457241890664227319916694077260641149256854800405564981461305609788730997650440055071362328554042157396814768199666514019670228113515716006245615250583943557950835418340335845937671802847501218993753366714567076405696049231571406655949173204688118995663176851650761499747812355939929396322790164100206796931378885888910504095492196638914252749968052943831589427202333365101813396035965725581965721965576383168502932147477982973133542462483566438300046737249460562555070937948085498521716318021657013641780236930582068360849345853581596983009427218262501248095810740868755102629760456395421599571521889950978757268577897591238962493878830152375282617395816144361552863767527133014256898351549012772601480837777163508107991520547585865834086241470477194278548702369784256950404976775247784539606913757585014189005892058018773828399597629338512738904564060825675142598354438907244386443951596003381819477118472183860601652650588953887179327820057322994563015664574798304310674466091439139623403245230862695814457586220737911582154714471228935377310478298868453254049969804071779964866640811784626487546035474780064128483710784171453680306075118137012109134371752730888894077142047251895915934096939015297136584280677762407056639700631817789379309588678912451687826276286428072374540834545145253162679675872373783182376847909734770814115813563202883214721147157601192442182751192672396138143709460039070933979963402789317383369596940759930720969399111309100317801217762063598296191767717265634049570664461861336680368475598346934118929315457491072161502253183329047212443724164723417743189677643197049342981761171279455858993359025250138490137643449001755796054836986725672973226786379900633096996442186280980547464420330254971955892433015298827258145328415935275787283299534547255578689298127351860947173592267427336316257540217070036326628597505065627139037637907416191761798826455684592981800583393402047291587893004885881136865938900944063831081247474330838741313827802152065101784838837676577470400298033404714510154232223704437788294332880939429430779187319186690646320525372101016356647950808359619238288177583842518007695810717306073570167799204940484707970798737842845229868024599767452577141318306643243095349707654176987084810979723719028367252456914560545390379844271636683019091456728686281528308365267907652403250080372017619900664255635488957218926453567172678465830565808690227311634578735888101782881586204911875616507510836752836287287507946345385745781871982192764577472816622565475203368340611619905237956294855382867335982640664602050693563085701131389467571927118189237212592584607424389399053980970840209195187292300043985573926821209545672074742941019904070130079756396709433213525050409620702605591098616070979979740963785349816325202191604082897189793811584135498078179937677666686045301769590579741084896019630160175958660928026458857299931497616449756566453786283153231388276764651781947902337544069035913054979505148145265217372092581519955550604937143022741728262584075576900550376424971160202093015487052848938187349188151227261164628352444980163766356449377318374143312226442672577344523786544387242256983176448285889912901542457780464254770297494256670159512384100830018803289842089246482681693662119815837517962330269327004729016466259079938317344318090170956896967695187909159304791423615266590787978971646641122959527424864098669407142185160663828425478390210897651742966115666196290034929549561358900222519978390697311716683451853323888140743710025192902224211284796437237306100810068572176036631955097193186399321703494609057454970199561110771619926338851191532457297784137537415230499212475441743256356029768193916730742008399576190760600859777179664012045898122036862805022848359012545551063032581808012696397124517808112547450451963755348700820989449128494641994309891254970715712038322708619354171068441995780441517382162686753800014598345228266836527753959672130043257095880446611436804148022036994179752536660649144897889536339751680385224136986830071879181411531582165790783433763608544397181607708025010828400715687762042317277734622543175694480409111985313986878415812583344784232729203314559941250136854041500124384842796097170660643151765048918316376404513729036470780119363332173141450487667446644499413285008956130290554109725003864913316862601570353045736193241565154596538978068450985103069563927596126886898679324071825756054235974599640559754260155969701495900416627404475839395401346626652462596637560293796231484702690269487444539373303814318020073303947593065346544365816557109078512698704255009681721329701731759169860581622394487973454389224568394464306429738938176145012690676988049586302067626607425303214343861446362204669133644805205969581813725367587900216885374871754940666987665373939534237401043515101222970164258420994282941597421104747718126059894051645635214683550097756379664596922170370695933354589821959145347018625766077873051284307149581773053564109658931160099755855152759267323860987016620654570910780884974353548293792989168495648908963870107706544228487834329669982319343609132829432081142995611859000236572710251248550223188362379582929650603821797194548317207787676073955708521633937048966346756668522525636999956001504287908035174133690700067738035954821673147401038563555436170372355911012299016608941607163613584608953617338041149176841698221504745749690494891911067022107920737411246916586277474302966992890375229579133595208121979894067058487460101926022164983978566292189982825273421962873229753742877617659701967331229582130582437216619855722314722876078122688662013000034139272303258035955295121951947834574498090972149427662050740172981443366599758555409022265787728680923904176426617564343287091709918364078462694034594984010550869687624941928097662854094593048735154984829003690767923439113680272877792713588356350850107098914436877351654260171199432556507045712926491184621070675541197162308401080332853108784089557755540414980212474134212181033187333465634664611370311852513699610105265646897580178676839868577992507140493457215230307562136789109054527608370020863275525241029838214942313364200674172601528463428085392632670829667584589083897933495865856700813142298042932341305197157768909107172171355458348628373584409959632305077622066157504894976596876936954816963311305268563310557523226745624987948479928608487674607922433776044437494673039752856034360671337639741474681682327220161806774345656862899421308042011045885208126716733305305282727738413540918305317473060572190158711749765841958752733039223721869884734348795111209720993665507652269954492063707801694327827750660361825377388551184612889037592160600839086900844043410688252620321603290591843704818832253424650548628148116723389834033477860223730132305992276083099379282962136928883299708955797038834914915560741431035471037261827438541735543916106458672382658822579679349174517610038519757770977728797143485151393230158011756949308366466067352603188912853426547853831861052135599002715529388218982982222846573078179335748456820902982363888971664809497818883052389503496286064199718730555868830200941937520748493525054713852177421692526668474951383513140533958479268527171169527570876290325255307565225368839076383474411959504245149013391114346986528939498144887062288479869290508957392636571478579821476955097729627140365459147026560893924313174675142267930017739659611672877938004545003505439289895675720360799259103281487817906402765123589110960120330067675903335095576568723938881832856478768758427847537363856252627374014303008932450939523719010340234755091003202045917596656826866705090011211998680718143709720647644334521565359645673042417327528858438888337240811469639183643751288064873901632667022940873608652577643309188554180130384754447843407459915662793319759141015582215162914380192873978577065273883649848592869352881749834267502947076595887132808288786384369172206994826408818192338286596305762399490566663086223134697633421596524177533538959872910237807772613810543410145885022949024439655975035561882192465762829562727212626785762116540815438731832281509020536745431365481108235821844734695134903484679412826646605878364720695097385201751107328122613117249195733205172156877732659780957978702763540164795863470209178576210439750536783963974287368165096969001057400952016107050130094223875289947816891929491566232001960689562456480397704406535006869829998099500344590636487863922603307704430499785367881016748046737614674697178455212095514173619949644029410283885210109146004983021565123669480705145335398366940262125356415095128315809623392013924497049763689434042096854263414019077487197940936375127137690480929498886971911993168513925180624725503445460918664730440684550795005557832506390349612822951942221386696077634252933830180213128854477213782419982330803897286850566310740496094271968775613679802777669152624682973659330371731381869296598798223165059528215209902051105445357449159202228073491770715759487283497059747889200036720502348509762660856335710800235717919942784707015331479260269993367313965532430689025133758365841138659053643060060593380863712520149139881554448784717911188466985647531534648433274816051304584687483786462860823208515590200586084594690424973708472924645112940611350757795074925620145050044344508069158178115763548425908752661096322492299275603168117556305488203783406660289854154748794078244011256382302121349549569046349674704444226731114118843862206678491403780118005580921265136499220227130441817389192771033686435874387358871136492709791727699684725180337250601009881345394200966400248410503978160969144549325570401039551214708349685875938234614509480061217827787162062880600508633770319124744495986076541010622561155383628437456183259318139942858522735591328620743038747028894654499756311210243076119095803877617676251607280482230768166925379613754047521731207014848236875715410406307018862048777862573462450663878378698226077671282498287826294335853265611546544989618421150241641572312153470336364783518394845287496946954554976037240596998523749613489905483144481580792250184373663703184745790063665900248167622004640700502860032978950456322782950048201679047580025270513038391146072163473621455417019660589296592096510056685591456772241090677310357607278051333598544197555647035150626857881950445114954824770201938430442116225158317319897659234604865405856953179758331479121083294949244585040928405457856840576778229538416396915764200942580723733842782859189891722253210755148911271968273624797178981418894071168306251493732312703507103805165283088590207270300309960179347566666951884716328350951201209179861505809466561229305575325233908811872213425053647431166700903209633851121639337126846197106956988643825255569518223302847346888220285368369054222146644947286114739166035605471445655255537374133854928779585551066051344646434675988487487057619340965190563947679445804804600115160254109398095026949871458526088884057291411452567440622710342021989049593073061466051138718337740648076919742438593589109012939747859167080752036206518523413418664780858673542724462387646793188196474071230358564128726995585227612519512392621782566402392884679659577340632686930531927029908428703702514470327390688386760987454423187537685412810496761668893850598622094528058636710741349031942158469426988763099334570966686628116080548888306600927777396346526962845092349448461253638407498320758826490883035970289010050198850813208231615896480280434312994415284407882663203053030435491713894027477480380050127356400473592947521124349092286206640183651105075639434345151056381578571595750290690193606250621700336386105470851348650582297288486564902669939707776801611796658316810056324850874772488483828436603875224884160935737890837283866460461426476723747886456228192115239167895471063645338116415209831408288915504925206425621230335054397963825182801493335932582577174278475818147753166041757667930722199434956659305091265618010501327045073666147378611873789433972130957409681636487412695310677465881820634358310375463859429658914558920633053884922530894095961366760960049298567359042181973324752715913639272680230727223031661712698616736814535488270622557822477973145910164350376438780150552197918597400318160349115250810733119801182707393607233264154678225181681274821154340197206101844407366684782122150636069802834491442768562056014476972466128675824266563104570906684079089504688358988809255501684780082064861628627282077884119687726937774651244783458273187654825429174623442094989915550518303486197045202382311497137396310713123768566461168361685125193939573554828278879731285782932114563381521481319504944498749491974105879827204953813122333277220508610972933750169215328455933479312568518324478077520030867159361058365502161434483700440458459727074782636871417046312250851360744011776351034801552005934832456030561567757271062428525973315628476615853233090004561439511204264356488459446595608537055423949181576147126270572248146642296347223258520409071099288882382819467491567971448856087463485890519151101668992197496888949763055596166343717565218998420227109975491782670210310530551896646974341070409237191386006240863009356304968204933639712224206672857334192662154283733766194425308322009046308529865964675156289949024149649437353093383468273404436697379767098863365757611894982445743092103588875052628744385185928748287597507571474111495563082910762113742262491308721562941057653715939335888403908096805015111112276674972746709456112931961605166778039258044903274283452047453443665066603594677846426547348081884387062821279943651164198203002760190664340627037617269203941280312920127143261062529318682751936477049573900216433019713098224413392743448725751082762703926052178594885544348430397336778513117428544197945544449075358836546801877650095606964930524437275514428462036129067762194128801466787210510162632399556469992394338271072766784512654083910360604681296232795207371957265812785431251983084099539139782646764604661013794778422637085728142851584842254618470035313809815100190965841682947085638989860008702474499733350031252218853037128642376066888305536801886817505093273048375304337922797050414309660689594578124821947560169616377275317449289574212150184273632781178028362857906368880572649498067225324529816911324713039840270780543456459791057507215522484266516126142472861717176503869900821057536305951043594131737521865312489788325750139236380732861437519787577161654894283501230281632613409893492538296443447671205154951404423059322885531928714721909400384998734689007045250782179383809285272264748086266608026227640078669069600700703811024528039654148469556896649452705140282506969889356458264027897958607032833550723881331551316256989186800400723788632454518572491668075331637902029002390528734826708312459167485331691846575246746608547369749876051985438845251633140805423714914642490910856742263233146384742531843013100919437723772193274623757964057590827916973657209349282675241508840012453494216155254852947896471314651678811989838690929555062802929251501467445818218440207572381069829185440643409922783522389590961508542793829765560709328335455628329011369531156772733251954176206540831796228150712800524759480852354445658300994462097273213177866065826434584542231312027785468567944769339745122226175642722516089146996253143502023999008436467110074465503474197835629138963143136861075238155527902977543265738871904238894336251657153845946594623403455831907905012924793725174866577953767983206061974610916179899199889125430313866019953555864100055722566788856737472040461548848756581837447510753200874690749793355416327542657071160085322931392481883184260083665297795024988231567092417388560101524203910115928766901587806449686368693844861858390734718586860975695402669213104493653521509417252018212181754710085853313108580316637023182079325278441800781777897479546718104284930913730454210974408942064810753982510253681406974439481814199894602122685796913859006651807413366012390085171564848241421719775767314930320416224179726555837469247000728361029657195127459765503256171713145588190427407966817202700056197133460105925591224220665342357468478188908546442122878900534416773207616591437387528711384131112947482617880732931408972210342055880850066673982889253609555342190333349367358426825417578785734580669529910681602092561365628906621540994684914836322784405809114992340353108539840580567136509565661647624601043223239476814996869067436395750137654216677733673382938502814043094416790267698046313583334146374858736646085449725637955470340515788071230330694256081039437509875840028640381751974537473519426224510208752021252884586923826279580337251057718831127566205121829362846531131667624097558092354098433710781789637566664024792621308613584566189036032627636194512462680684578049891431394881574485978087244935903054831978357653872946557185446456755026181906329367203045689087374000457273174208782779402974530271932415541352140360245255496014645207352219008147600294006933086782040458634935127242547873814834996881622188040109319539801951979453935973293195688479388371586732509323498450926911041063879617590713556305868178563960186999167640425259852620410254938109606915472377411802988067317534589498240768351393363529211145105514484829386058126270385809513223769253587934734532311617289832420186034371423310681524531001240341809353510035701176280215620419038041531414048725224298944534675950963130181970361228061093798154313063243200663606167234809349070570401484813983420555047047946992719977420445828505455159842375420364170152437919398562378632621552478717443254136145730532505302104926757991204501796652427537423113112224831891138578190816698881388437766230510215042432274979126792729650831898518174445874731387722878388347339194447562167539059942016870634692669335279215156059949097913176287630140782657817590072414471578962913873562460491570636782306561535651305076867625816049687756146487707540167586987689950654709944012793334153146295689426640622060732497737030653099267123449380276358997593714783037873520495159966747538271758449984508809543772475642281798504492503756390774836751432239664987300054417631748437489366703619985470735266706336672886887462147072203569729012659935423111781507412141501279340795657300774857964675103276364772472032881236354183152897482993765411829431871333728380744050008554287537020594904563559446561040647214911900889704158556187807747161852774237649755062698646017354307421588141088832133004336036566126051367886247662275478148872689472228508091361927656437021970554333024410233190674290627652952734568387834688323495492789997210467952236438009250217110017620207501353000724643307784710329728144618860392033609703719176606458789183269505215341465393187479589229300066503106665855468672413237069816105977823009162273197014207911115647803118406110228108150870737794835599827951129976822464576275786739874162444238177900437876782697038196752068849920699941585552610916931010342916983800930099126234109464144528813095193662795839039736287595807258914383063679323820894863376389441570207788936066945897061574457937389733259639040074781033731382415234248472079815261913361401088256142278610578702981006114128973416607040144071306506037004680983454510893821627821082454227329634566001250532926772184008158384307496430356410590312061008151964492272134282612579371907984561974131926548482617306328686713739828756974201453179886678017809242804155365290070484637994968027584989619637059671195570038542926175097947671292088782135757973155251944680851598590948802701600287670141549489276294451381341192059503493618164970721826598001797216619588182603915867774316444933884533623625686326167210995855079288067151466018638552280872006165312912665929418291044957808063134537445425204857875224946386939288796167994225984476061838100443766471255032382949134709590337829743786079023370838484864256335902013974565144591997018488133104478067357452160924217319604636589270188433791350448109483690118757459111541200304610786023328855958730192496504401034523006495709460370128005499090094878764359567417559566001958470584433138820018186874746204345902991233653164563229381929068183766140141595405819604443790829985896849688836428604521365008638044323014700592574957820401902429592563417992194468072961020472596419943552768124548144697698246393316366999065585044366851821560113515176096062381049576381901996143970147140536597567779709337929251308574792141444530897480892907068520988903626929138170038468096533792539255907315857436314343912967806209710256995929012154106174764610173195723021645783994472975499537511319758821899154621811495598451910151123665603923673908777688386890242025761870329719785605164458415868578562476906844030420496235080554537173339289623320161305371594322945965188711385717968564798817841435723627549180952889020796252544996583125244893281539224548636961601783852832610778223095955693160092204059060658840712042635232613993745429704517077719270187349677347718081623641708270701163416816281950874474944809136486020197096502660440654707367981001753970004044927725410098791699324528540174551762883391379959840231539084483177616085499434581194552677862157627641427826118549852001801341490129344067844556598438871099140463883601838208500123878949162983761972826573490660705109801134434010657760714060615413235595516040836854271730756288467163811493317503450969420153344446481494986001124745231183867382885232349914144293568639940335528751464977833940937805826099902211717836016649320912989340716913412025218302478158392658896408800615577284850250021385481163119521710223117189038085489080592991132093350289315817192953888854897392213527464242617944521985376865560086272826667264590789526583774994857784265351189576590525593040284850362587447385728080288977027465228839772133332752146311791192922910278062864968742378970628762966445534609144196568500830986233406567053223946019794142046340263972106243179423109402507508405704266492965370397902763426176238379602011203885125781943753544998785790051416191268245098050274746633235584339946402268459729366223098944136143978234349472971857933327000850769133023468044659340151035025270293940574863698110726139617587132290320180577021329290141084804874698594761819704633804000019002403194002661650758381715766606174150200963369618754737284743195439056313299264996790695030406866677225007779300941125598388685277973852355964386204903313737504096415353647034924599977009374597317728459160480438003074669779856122640970845723431217684219970368444448592506065867382004136925692283766213103758188846601470084362924543443676520670082882593906112108549841998613738853189603183433161702608359514469291226885283327687094761934797395168050072357898606074104176006928458480425668309850142811501281523387411475568434835151871419928020980003295302915441867260758629490159295567454039047330408269774517727111318702360338803196407403733911994641228700448099135901124930713232667771819879058629929966123064243895075349414644607776569385193340640859577096930914581705088646860689481438514646963796156984689331356454056730472728529101453803352277456766174168618038423628860944496807269779210490978699511656166044492269122660663191267238931846082860218540375443392894870167944922746447587129369254920303930228074897566280853932888532627734575754074090530926848064819247382329767912666236965401536547730850251793516605889165031479429264851569820643684962505890683891288239114145485516672722170760560615865435278832951234535335186581296571951881298351640584455662388422841733742681260798892281909355987889848699418657408002756501279359399458089793900233352231530238068328126443748077342902375668223789735458811852550699842817240119465896109377832573955075999227974127649910451823575714452599355357248886783373804292956571826659164118021014154120190180748491640566186370410902918585389879406264779826307746349689675821924388086896636733147127426325520951984517582850652965233841535602778253263344842937734050640132465631031187674395261232580374198433624845007051813482214713366626048082372896781128653029179229001718846662655985660184359290733580309394273339153232357636261621540811470888763852505793066864305464808268032995152823089170618455420947142827691810336666872316726373437280568352742182256122384939784200106491274982445141413824024588433332824404880112653920048250558709003837543139536523007398269509937087922313054991205173951246535962768791175131686564287090817375342704593932354080720251341196019447007241256754840460034077642990554152064367298943107740456549920286478584141666623965471621277915919141236340176993535342254154064020694274914393719929000493973614334135297314691088870494425565358806496222685563407239440662828804162015474415604366694246165760439568727714567915425621780187852456159254293158460213359863933689814691191574542351545611072131513148608440234726366039366938304775081173898768314665087499975711470072945186381385055931057864747245549457837717706847305352351390422232718137499580953140869151810472504658286326742124382062798264439111191507974282879718971391610484896919649785256719963454622014625099794375126759142161734519542285619037984259970055504567453331863298062888693025766262072241777949810771071422355188850223203544210984971313023405920012929392279944852346983472839393954124629288386386485168722083807936467510992792315541871876092197497809189848416564713253221442899993416747439799128754118000634460808479237095751326316249839298782654640659223118614060621305416436520930123642638201713348577539186123771057803222715094026108830644614099248402881216747250308395154668964476714501822246451612832603288113803363965370009744310117301139155616619745716786176035215543515421135513505868822506162292062139497204096629143589872316591029357257232430579272359740655065390395026996919593916733464642178500535438172663346881083126863823522924653587077603591234732787958932702603430024808535014189615598938420410618173987561514380740439842315581859108620600580394130069322657231525927640859307099448796471408551345892958190377417246594289382514988601418257698463836971091091562332850354053988548455325685346648064336886120849459974393355843121553008184111146537991194834611978041743897397247413338798467000428737557899196043431176707251913436666259258619472279628485194203878068185091949985642208476662914318860463385006562017634175904842378714975554043890319377862922515422439029680434737476944749395764984391136535438612028274360091496414528473741335870852702328035089995366103444146484726523704466770194339441697681026258786005525762692434643840473185296574520167613813927099001858277438580139714706243659124633404370004558274962326819726850762922483717286252681007225526512863646634321773029058731866040527471472272697018078090779585800642944152268701022094695718041639491007769342755098245150323971720265727742823510469656176073038070811249254900383198953029710395513720598809230621615063599761168576361634078585695915357278846125708116029476951557657106224016928335434445580712793631105449819447301212920137752816060274539937390760000917368619192414042692212423815047973197119167588455019983091003774913529363353567685532651982802293910964990261102714627890025690316362251929766889429544859110289940329641156175454775227684870069351371356030395120702468814266518705911312315428557970005444960630575370128139667270129929219105894778369028346696288880625795849753205552391769763918549974275152906543311453133760051360460518200292330471273479855244326110720857054931839891746563276407495313356305678178102028677575075426757125114990273151911867748701227883366035722350626147530332682681272617241962012808872453521919152583972312515521194483972321133392984982782936225466616823920551426964470220261205442217409418414986686289061984124038577362468578469672249688304776133326981787523119694160549397071506187396574620027492974733619467880932816246891340906430491593317753697041817862374527634049365509019947815541973047705341226042779501846959957183791294287831011879217069348132802540751540738171872842719908257207764168436516483705556000029652035886538355642858469344247150100859351022899793960935327099871678160814607024749112460459644120531220062733223037650454764924559420946947766565066297348027967888401456016609886849087873926156169563829505505901701476704497035115567303602190693867250757870944022530446329077172571344575613083995229683405776081138155797810566365402952126542360026261730098643366620822315610466643057248771966337230311132283303296651820660970473643322599571255646802562852420234454183153818140425863289820934742374238380503089601428831725952508997248030959824614476941309520643625854671428656873019639225794307801078333156528768103519553929101619022627089652819796523919942557668801402410914670322079610711512229752617270788540402217114778633596473622546027454232435034962307598401025313141597903974630853589552118431441133308439094628912374598313811213242717924713433843886394950407471491033116927822925289668385663382909077529449109917740116652429082656104850569893205081052994877179108801468997981680218233042781733314448143047077624614936518829569457770111147163467844691962225751924626122203321926381833782172352555480291110766626450944519491251951953984528385889285978113869867418953351942420047658283151956205323266811038038537494497105378604094679492962804318187859048408045581030670747775349385807907505341387608412910651390604649501534607337585418550278244596608981811070968533051795725957958140589256188782066576596744322066521230319681508566176435447874301035756723632305166110675215991194046558358083743047522204398968624641546249434103477729258525921647278774023888876134070047750854682025644701821127779627987505179770006852587810796386631804022383982135844993907669626452282566258940116872370646215685466708259344548774943591550618084161050401190707930067818274821571011277275682892478124856088735117942262741292920951308289992270978351642513029692636291422867049968069378738350293279033417780406826936462717511507332903063401115868521343279837513881787911538145009397465926426951130432635115894696386945579370985161200602415387002963321663323632730003274161443017416482389809983445736787476998452399173348881077713278040908238354867989632854176774353673112108451810372797592208436616795584223987306043391754337183592265537134879252065715339301953719475647327655633943087571872803693813500753725239268067268069229913232838064589908305933080397684459143934092404786261394228585821889637999348911460348341038235181539719226804644484812269069013697903706518390676808205303390746711148058252068940934292881234806998588715222630129217393440712877088112516099017751954293057522208828075786041236802327100862127176371855706323661684404862431325530000664293419271906481101551041820099061034574447590832696380545138235169266736505652171564245924279941418696925625376919724490215684600816704387132371739387069288507763158544240382450397610196929219359660650207269468277899421682182860260089227092770690791650590781563423208749584474568326993108991991604092076716336258946642312594836178792663655890959474015156952858688312854972812781514110262137143559833676752436806777969782206227243662676493249791704775923801475441148626013654589012880785349047325753345823094662340542693604192717542613870037322295820758580929469574073833598551618036771284422461541185157714613636970767231633760840450513939679987157297968001720048139577756849834012687172420726722474582337062819876013707645902249128149070860670366283249231130514523666391186379642402986734001155337804014396222227176169846156746486996168205386453869538018263861591992478386485567052394775348706667609891147998627197721504237847416717980345854241986372809857482721573013342570792773587089232806409778863099574335028949500116389021876479025773693096386841176377060755054492512662937790770626950442168336981277319352395468917318966586148919752510587509185815357908242082235954461160243769560246828897835101835287647459777516832843864668626043374548867198491408883987050228539001174455555213138662046667695563461319331357470122027142886752874052958400003940248200989174928338202240433020138805677711450671078841151115484206628513360451210852329903337162717006296171375256980080278678729803005235540122810306062610874936110938500211143114355938914203248115151270509889833087302814324312899014872873109628503054538569663112263654866819038916370589383403507139678663596167513456378020948900327248046348107645150215346948927065647806754051530533950242803457091943566025923441999002281337387287507601010362035727428611268451628582535398803263822947982851294098797393968320231308465441104408552076635692286409298454622275547837095873962019249986128220297362442601749670316056190011473584760459221855734128700939774380981723433187179642464976191784133080496096000924210190493968962252558682775015226328058370810587716656463578340281052781846731355483721751648088030862233221855448587942718290023615040538536871725860338246884086028016768053566702794793321263278371820624406987002706357802445223365561876793084075018125451389812899017959704443522152315358417423422488817742617557497787921582509598621123057583137960157699599211890219677469832597396294889445387347753734033355296891992025433760558432446422459413997239551996529469713921751643801727175648885749082850124861329112984023449474479394145144293895493878783839948510723091237306328096722324340537518563801286391625576782841709129907170603452875957129760695880257370162498118521082813770198564231609362733843602168398660458562915832089738503206640103319710248863706754192927595839694770727257460106360535421569721831829622588714798458963052191051069897608225316675731633025548313878568566384534885639240658723583700407549921116279348450162420824757932322631290128353508057463347060243700846789864823920150056386828837062117629039582291062705643683695887070884764173427312974645079376947489848738551044289433499832223195550238669892636146212433265206378267075360644827624433630840898978402230367963266381613603102262043740758422241184017290043840174291070475941862882963422410380219125949010559969969784038497712413167681260518987328178430435129505361351970278000066991087111410044028560568630754169776350749845763788406346118614005486118670218926795892806578421378994843632928582347130703180411366658020515806515176630163096229633216078706488910499072427048864314070340935779024370412682978486340290137827009592699341855906546284110351291931734873441389184797347523916713761676418343492775842518397085726617384067608686503366197082249355716188253281322514278731864607353526086565530520350116871801100910008188365093272685159301775368791868237663635813358601602924706150562703396401874774738744736213816847962398221095435299427753626378418420122301982889350215416077459277228471928266560686425178656968587786278211073381954365171500676332258142984061941749321860616829244809477843163134544764224226490399889220535347811492890839595416647876073350260299456726214690844816885256873933819666034157059244104409892329653583328776027528532175266785059865963999577930997986491976724211824827890996114546432029031046621470741993406852658975692532214849239994309694653126521123597706223564853385945682655718102278628475232654365180722653293740524258625804608043057337933047149074472373024395013710303550860817121252352572536823565643652851350914721420055794044877621348235878299500607339912077948212679750529542017233908923967220252290599157795585214464198329285949498713039516862546860908115709937381111887660480783213130415581364234969153022534890972036079199755990790592705688554436446732826084818442787428467433225306406809524238876691562670813132096870350496322867203221089885448454324330855014740399324444465907713150318282718647996550415202261065439549488983154880086930131806435275513689214217103620791016079822015180716494265275641174228435446346964148008196330296799073312817835283900402403795786955762897507290600916176583530143932824836729122509186740260522788265241847916989866132908465899902556137271821085291414960233640812663334618943748604041570965965175314642214241520747706270734523660197037218054107049640463338102950467789012302311945213386502201106824107412304262665798602533785648793161751034478798585290057901816999456580576146472142185937096724696564772698204728776146659334555025607155485916808897412146684783000535811678147221779198077491104401048467001057032796361658020579458533552481591805283767546676156211414052608126714580218740406545371694559015180704396635115630732170015617578240252065663386169942854311184882980080831895934363857924383915427317054713037439344727803976589482277296215364220001464122592821866816012668546663603932540527190684823333178470465954219805421421744036090835382341401139202377652622407856996187115918991349037136562900564176428292631208664452754427432131609696118412146044599436362632832631984400613845291154286745059008723065370684122963113082551841696199108129850433213107062097580608900122940497593933861154027882274784808674770427500364479734762289218425560253248746687349103697814909545122054684986739116281447793450217053753924715249744528659490958865282564253429190889591981989140411905013554981325673034219262965018839985862763077182270039577403987990938876892313487296114289316544137424401620950052898494534952557780777729770963135023119345453340888091691584339920311514874734195389425804798864188981489104075182168846945088784967899615509352912913506717294170184546059439048168728866252471246190550988245659594383484976187374466970293443110774781628274428443966509221103722943586985176403861185194574084871757005319667916105841538377939810585821095692316080111676379519544117175471961287082627838894591093383720813972476611314460784589371006110305847972913727096030309185967947863824126246585491971597632148431790448391365476267276945611512379256892766179293066865740388780473093447206397186160518007137329427589633557373009612966502470957692209639367940196478429155117050721165543166593838070933373137293600141204055848061964601659484101282521110116187160090212536297977352618619756385226372851585009860847839406840742372478079450270154818948724294011237667585344092726660244197311034837735510286743969325510889258255251963489053532913822014533381721498959995300745681867543661440635489227330245119574908738649891702418044596930083644642621588565069275637712415218219606626364719871776257836278007653381182513387061574261187483883389501672865485369029928708159018743812392659764308561305338644574847699035220087116017227947539511547295179307522839796259437198296103402510891812170995883064207196345263402722474033655180312040772070723129876715223132215513937074369952573121338696949625205207167107352783086237640142076359826914018986376071175827541521928550781002805485705308233872532817103717897899920745312301673054129690036631889464406072164524024862574727624362764972340718090785498230618205698900117744138460126472306360334492964984374716791052328167463590419735521551233529308817560032561388017193566555782192211714873167047711384960906781796466861690798103642210531419969104016533880569753526325059422015213878426605284405523715550609699254548467516332304779240821037338283179985184555557534677485024930266409593590039307901733924558219624664928432156897412396571115101427352741762128045847013194509928154761343932389689934762908646979745764509828089907998284633514042998676454915935674820571547798160711151604348623693820945532016298376558958432275738629742755716225443739057246016089149580151589011446009502331456180595521697816610558896953032403184487165341671164603876592961819889785938005164966896115749895066754237850101673004769820068385406964516061810883654496765043870060111097783599152701348772610720746000048742277744508134544551838580674906813182777767660848602917358891641472581830239558510109051125090234693583865073209617099299595302168999920672735978908466636192425218580515821482072590302567774772596930491875216208999948154053768930603781147553486100070319829144837650734363167112587173874800742016656723458317912644748024743464448331280255972635029183614617707463172016432308453079256892824280728032817425318044942491224814258445571023824993706076568025446760102152315780519106661723492756697865894665805582112766878015354275824514699457937673782895104936231791099727612044798930088108355728522050513523255745582060197827045975786260764791872469433743219715126503909505956648315942107384740954015725652009923142272604833067401394069447607510336889976308099681675875318085147084435373846803704801602063570127506513763958066080875472731678985747346070551771059763958479196380752263460769307485214508309845214969439189182842584763723598084988842257169087744172552308950862180127440544794916663669314199327402553600589816299730332304941504286633377958023279696525384482332584541632618509580473189439556835845381694211861483851446761079975596605110362068763065753401725967441878357988341030598315528412588388090284948787547543444131603734186804129277047533073466671408989681936853438988415931754403102354385530885481722510150068053081926286272597479567595727570521131889349903861275192844021596000746014696687705732086081630611949326864042227921551544333536812684834598132640637894429893765212621213511557789887299944494090413173059099894409752699330446344654308495075513948257783758821179020027242498462256535252266186304908459255736743381111523554961813858356845061434780776877506745966236305920195963082435004322420969288558210833318045032348411652071096431172339899329018981072523784144072071355863962416174432995283196118325280886945600774429197107714849805079069142092715223058264513563355050454428263083564971051928387304768540802841363287076663518530149417790642287318888426077259039204774302205569125509163446104732605471296578272954381181996747413766697944831339515869011859192615905284681305558552265885121616933831337320924026783470379591870947204775925436477603599270788909188108867221221397533496783371607400349670760045007573423836512205831897214938652967933378346694281051439824880716387929256847732441921834541983328612487662583126695114616610408502162987888665818510514215021327440509092140850622177832902166545023547392351201146147005471630178820492824636108648429659934305093466664317785060196275197242793455200806232257629401249907308540835501221672841249019470775207900231280090742910757158340850192459003579022165823010990067044637499565046312901786722648902455983344764029150491797103974634420702440164849827071604689067077928730770909087721682502375472118686730340550353177603673425629610603852060297161254574288563508888789389305291647204060371207128136358150358394685167271451106554180883326250734618908266784594214380583544294183288580960288353096481595810868041810493359497648639510434400308667924183696862075492156865312578377078733451307981571362904266137380633042982436789180003101369374580871458570378740671755543748569691213943591950775587136495418154258685849510152064722628727048663788141638959465065747910100349259246128348699291307497713183244787726766058338312355983761790382639257153233807937004292850055480890476602101083996999885769222450355711299139417218204965178346356215028861277739781207283944663592284816364806273115742418574442733335775170636335700944099923603450657986705057526539783207620863012947229996235154016190213516744218698678561727774271797256999594086575974542380968745123139478916188448679127584217582315938986051543759659396908211507507427347490351955584451509413023365770087255744885380408659145466584808075090855764293503339604483081689991674507034269701637950743137434989371297372678521322462567769662161212432198983751900391275955329671244742832018356678086325908009510562112777402137014270324326293994798941655108980932011138747606456652064862705174820880197966473540007390499102867906004882658008363656668242545103073746131122736487076431531286106255476871842132150613285350399388276449065705189154725825979463267895516509781667072119023244834489379691958922781472382191301708485716104045201966267103615984745716771185093682019378287668497839413965899795765522967299464522118062609658808081313326741566248349038340780191992628233490455141696110098806506151249286936825568034270644632750855070923459708134551542581657087991039280761096765026070031549342011722821289556003849494035104796754835246419548384421704369467717766511719931457093918218696248288506715633267100199197591369246412895515219935274763456015947875549243674453561760590675894404840454538287022107972967248220980874629070536448228924710128305994507912401069056899664301550206699998029700212824247405060064026023603837301811755395692444743163147862877741400076377129402949248500992935795711736890984146446414337031787156356614937948818905385980990169436636828458703435843306794955997496800620395217958729881199643422698360257970238352117948808973683770576402532148678314661092608581255510474784944593278911160833097712317517775924137531663539569915677046590910306801914746344904959806569922034073117591893736940445008847664026358729604587900151596164642959353693385784663908798586224596589231560903398287657569883292581931534705621109705331248098452381531209195341458031570665911195577375403614292055756747738072556894636212928241577065191899490512425326222787702432853453300104209901871551071397830627121209093454685693868643429146370213358076244333995378442148426883446134538882828249494106005289021969327628434031961466744960797343260060768214574350473103424187551453769649077080320957584739910090113434663300495987661683034729948847682595461228607697731034938707159983632972542278055821999558122019352979286723384961372320200321236328460435762951082876472078796745554391378607033458492154268801298641080379615273927880778606426653484143040576511148162498254651498683794946809427086641791685813555843386505279299991821581092578275615523035455823420105574657188495172345516177972370088211871066829025599033550775033495640074116699368587353158000064711486381596328976030784935940240211071110751045121557142050772575443994530138720551292768012834602754697889531826185442346399516721818716249717749916858917953891503567664134217120667448019809281438323312718191422071845539332210601165538554239287752632229201741249753591996148237020710120823169144721377805602052968618485802510434085500429748705874646184704655571351688493829905093544384124194480133844823705527444540980038627787417914189345264830788727499667447766651912247124496469496808152002972599983509674155230159132850190902221791630403358389193991335295815605101068282934929531891992997583388685213919905900821815561327653300958616122238664221330902149340258658318185272200470570030733146446089469121450287891720809182703055727263843420335729934880978899137761183825196726037428061929323021125729709269516660781152781061544964036277064509846440312321644778637157882305008138791396465203998745468047698021180623709248946884252645149152659290052168296628068085598526035995364131595581901327286451472836950666769225025803588172199284833909224898747355127067090361300579319715073801204072514345316797238573309591799439340921910142841473121159196242798480642092335016479030938723746376518131547530245003574450440524266213483621628117163631566968342718090474814085358000773602321941264920281871442569869329200017641981500089483769809551747392817011453183241322873214176269537826472022746163036703600000216738186994555239296063759833442796266211925257053526602293999176602126782426709417222604369025085058258284177882444732511053021808318113920753948858912865953135330107186537670315643530346471139206469018438118783106710894752722456373255355016721725903586811221977360832413202090811513989265905747467509133634827789629452089250132999699827591353800853138865025551393670025335074056224147949662769530086751489179514894219963848876828556969502812274619140536091553742845505180400580329470927281586572612003112379963280617272291368146007290375851898321991577401899257982941641763106886357695098019307902398214415650932883452517472671547790631776032950389156821291384301956407953095559972646994703056856025085480553935874111238113476458452967113945341923189738321688838570060020521108045273818763226031248187364637409945779793212155125421708493189707320812918330190661361218157617035461554543015927745102799852994348421365427040310498704976503200741561119969001051521887651904781137679444764547095779975255561741663861795910264753497909414750774689488967711593161791848653161812802752170859368455175329161593717237543331288084354081283041444502768114198607585514820928244386191299584698791772782570560422066660805459563005156715638933495692345721756722682149159987413126386553123911933375401393382173495122451562096295396955452532670302042763844924340267569595117083275788227309041628638145891227935438390516651932428985014460782043089026793949954060537390257574337896269861587621993897515044443460313855061806217427440192967622198138726134628275282761774559718728444180369100897217412005682748901487278733166436974690217576005031467225481586181137708149115760911642793874153363072341722564974958089717857521166379415926247957370742011036636891306843162634560225258094760995053262018286679846317910509754840806207200287166270116501635491321285410011282307348267364426284849081429352497189005707603659477878731572075350296822522530776052791643122550429347889512127626372175597818294683337351277263824952718265182249557685136217442054534485194825800935491479916831100223967203672223126516760044143785974458896226156655136978365022401677655163435738396412439610182980877451745772481729521122156148211442937235331322907667249492662576289513605707492031524819700573814735085542443722897130608325520685018609968791847126398661612634836870636678530931884626514044536703736984286530827464267308361155422467524842473586182117705238755249386892667911250073095363079961014770894310187848006598887730624505790258751127028138222143186753203788197032779914534705868287666866758912372750184163846137252854903147191441472027693034080246384701422279551068876315337155886002235723126959908729657252889450972098397139895977222512346273956659094010553730916535348114437321177359136641226015548795288691302099914752555798100385355272943015712409684862704711559693378883329377644579548798204065506735197670337735764539614552203812671208807929387300205920972579177386661443699443881807402476506271302558751941632092409129573601031641616639875099220461819019361437452817392636323564265730936613880848892608985260105630546822818613160190695934322267396982321247500800965333275770386158291931294605809364581129334094387880675789804544269571553656767114430354548012088357257390085653007471353400792678419777441823358941641838024560989335404345565879380278187426800337089323293963963373090451398645937715831310713565545740083397930139937924019867109155674642370278581213784124045130337261019104490913198104949968699969830635394821894231010983751112541869575156322121017047518111641948549475963102909389454156953760506463717825797241280280239026429780017996036316751543206580376325295045439574862446332757866728274836436187917586609234801791862667618158772167510489724314473788591393604091375918253393112291575687738236796194165051012407897778399750860954139014785059801939157910470999496590856060242127616997941903619173342398220609763649326593240785207168408592659583289198323157041500456850179943432588367591180829037739570158336292977257472877031328195100443577464632711711040871157646496286974114782074957826332322503976167035667622344704954794449281096144391806344812063314349859657815219464085957307377005971349322877616115016640633080832351993627741023897539380515207983143024467116485540216342612191207410659125045982179841641471946322841208018756494437277857179118960848032488864217176904232357375843129799282460639322248743980997195890990333484130663322390224206585766141176564698532715865466818456809303383037301932658443510255999368478696254436812672344623884666709972816079347766998913271814655848188620739160338711589879514142015289808229475007072369170772094617207150391064888234323185610542037365980485963284952093409169158073409291974943757550400161658076630583834960921521726956072834193608116867604760498261945234099011495896525074338587841341461939347186277867671246086039279948437281289604588760447615513736793221725618991361644349397438718368172184544945639286745179169667477283059053623916820479053688001011170072789902581137243987186916569133002693358998840641839923426555864897071911324154995399360064731271391986828473054267821242716320878098179740192638408999556113435670293713529197789098563583984759250075443518159007273300576567439959697205764964142937930746996062617219234416515160932584517131505863820871035567364171004547536816350818149543238972742445687588748223533392260677090936055218459291716607414498769978221932428284071091503944549162274408894404109366391749305983899777373150106849193205470346096069998201456052536906310643713571499620877526237426360834484099072655418061860264283431703813931126250097815422247173839640489301602751764241893273373144690589399275675914760175572111575535381784006400336873551568957549852042575391361804184005685032141151507089926097374243118529067114099931380836831790132684667562426020318243495383757205128173934785003735306759951183279886463067812714986009322474856742814102799038678476181906037947400299827216044690564646902350454306377250739952981188173436249748430266123011540737788982501538564696384835234125408766551470173317194011306520490627937432605531191881904540031160431974023670013281733316929897311423692119973969663874109114503117654094003116615851689243305052572601322801995405716932978146678867627824352357097740219079493724076877190273970312992843237272907648386210923186592994237197543864573733479795568483198485089713649424087033028059135021609483243953611091767185973703424926559695423359365164912136438276994990404218873905462076473099765514647698204471800019001293301251020171961421386621260348815816901559626864509949500602805087649990287641754114630148824157677120615672320949202925249738378714689926627126419058038173086879784375892420850815140211775920179014418762439239109029542194265001124427248267820201223983628773404445592008455438866741890521454632238866024293984960938644761719055081611751473069695988425811562501852844040696905401750881063789140606166973617887526005963252043283022193326015389357926809285195959194071811864643722879440288675698121189329705130936228841477856888096030528207785969277207480827062680822777390341788119138318841613316725250144704927276822562024603585297062054636551634815600445918630980522223128606105445108373449058478184158299076048202592150450894645434245947641641406246571256030911038990828008741724741386187638185571863187200898748870390062499480387209392585286101466006096563755788136718034035180178860424688696934866866271812959650016522233438771349945248656715705378463895444831583699657460753509791232361778248476284709285342296085933915781612802557714546453923542844959256018839123226265641595030283084404591016106273954046246581950245461491900019407125499091868197923697503650121013414836752730496747065412924521476277626996407352184802032883386676199084076032713904406288297826511685798665071513191197536791283216814462726590702005690790494058017224555757857818588560536774452666638529651887332860818612948450335640515178533324613291914483694044316675309344700605078571990863855513838899325600806938977528434655689159073884683589001271725716242713546431835041189423294962139277229942335067307565649774689807761298501367149215961541134600045506048480238177153784972121081972252576494442972234955012847313907060241017505224700662883785983439511501181679851996305646240260065842203387163627620216501850553483427086133997015982561034012250935555893581960148882693904320505307824223795697850233191168923899058436550365747448538433398794818953576859622174195537316341939129947628085916894955832435260699353580972926179472075042278808334726848177231571644670338184311585012179010591815292343899259019059042346744724244421075341792871178854647005747856251284514952502620385091595842864070830758778731378655574923724329631620777996414081356724549627995235799844509133317992160872670713892615317202585000195343536550818625463894473900102611805059516740124439139029826036969846261741414429684457442792452328106274997538247084561521162156759453552059637980774517624973118033523390074172956158894126169270182689578562943742532042911868587426368311313225279338124180418373550014747501520403592160403757736916365921045629453159323716151159089325174429552595158984347134819061848138592483654332981514514886870202723380516676398087780075814311600023169645891001973085849782955501163484203188929271598809619068901555100506625793163056421454769619191628094911514830416066340550980890459256640183526968870377613642984044868084483694109381574775348887033629235771077575223617073889802263352372807575128428664557976772706347379501311499434796517818640828765401781799262227230279915021401959421769470538056832223340658441293745839000273608445018828726505230552603153897235772010587007504866826515335381969540249602618725000032732358929171693878134430892005749777792020303278161980712871982974023548881035191034481655041882063803546863570432927221999238961486108975336725985065932018134016729626672497171659801008969860414109399732721517585974610319628922808534380344280098552160189550116400659636334734215785773771139462798668713346639846544398900666385327516809270674178350923276439508013876082869322412126412732285995320468627249651710253118988406451522949985026720669227465714883120204316019039262121057419172551620941194158936072029248180686408585312605961395771563749283102282867359458459700318463146241908844373209423309019898496187507339101458981393164176583948388005911605051351258533808906234193162702133388558559594043182350548208461642404195057500096517465804374571397886034165243089264005017657881204115180224504629419695498978789192566323764077245976302792604850784048670725002632652749199712410356529487357842221245891939035028669546656119325444184215940503558873283847595890871857741710793377891506049601475868937323274568085355574005488963270583286624555153398875192788434747356868839525670611950420886568587131670642962540092709826410947150994646375131820322250881936528284070972232269931186797138253120167000438253191603175011107829603261326777299700664207430294940587606498642576958505600433592369176794007513550193792709813296156941495527794549226145965190985153116735200637873807262062172572475112938532702644644003136581027868597711988130139391931722871584534578650157599973821126047931020021243443994556977761871134541721908091291867939998671820082604798140346153058177929430729901508347959198076005172844428755771814406467964002499917155269382437567200342318449734957847702311018159753378070378284053287024665929626852187854154067377256790810777853296553456015678579651462164942007152291168029988093360967571661683026073968169353676211931460616218844960435689123988469117046698525392512675602624428525244063625968998602561740340746960136766848027779809480543305695268520972402017097017166402452156915826027313465023104211902792215166477451043167122687603976841534054372579387293861442771783228997073075172721534107473366609074602665525324232319260388608547068792736030026639221975306361690505351015713456917923980053001001665152676096809072097242764102163262991419396041605528657661187263534051731931499102043228051021453623244014716619241188487170789359812390004293686709257147721875972215528749770578615148788716647351715902863779736307070371134318849392256199435503708377498023410710057565017763551361380130730258148151318824197070659095939578792885627903181489023762113983607328462281619530619743515547748278220774941702906040047415853984769036649633735200453310224264213060640110901617886581759483600278796869896971892045176190705792889083075904504418368447241557062743495178806415230235744628690820092402871849367485136135985871379483041538909531579196932039886751727863600012498809269639288614904775539655121818009934637976607267575205565285407472906930045366131556887321933651649263727435446120771465900276281590898327029858295104712400333141041619771462262495953485271210920814275253613200012974425128206870564988982276949013668875914723270856179853132455898170133582311962613667896254658768198006240776143436947526196248854911428875416713270423541485677921633675749916723085937530713529063750037105742556211116205451134469082872010012015206656486476927558425668355279697719312597267257888104055061042658646267798153962357727951904949627368368013987574997555399216201874608518434317712276509692862447375073671377523682477818292701928548726605125796081042016397713487648978980800420974717406328418366521160008581996819223501689321482647056789735699882439709219780851139610297978442226063121655380126537981041074887050560547291172937429030391111882254820198934865236634752312783243605310687684657103723984586832798220726440850940533387961494283280106506294739015324367840813600324211054430883945182965220398850428368642325286120112965100577746304764558220952970609609704296652224889132792405779508375944821684603186157733673676803913140485095932073293420666448310602231385921367790106023922028989591296657233114412748224478161578692008351695885225625873387375540172879128120546716153569655206503275433772018324340450954486617342327412541493078819072546240547193733525986541084190993417611684755609356331185823510187993669082617425057692355118534742820879920476837878017343372999857339360398960124529555666335836171598643655521359082774776873440021299517714517853300376265127935522881594615852059224711188194190571667059838148042572526767113184986210639941396445164013653102353228390146014112068660144819091555472881667091209651425650797236816944929068112240749680922036583905851597152510581144418776393530606536583253953660357277685189432521070491630971874350010743615280129867859533779525358838601912400853181857306575186151929588022224639313337382590627745103509918734189981696080492051342346654116264682711666530523707783179106774634745000052746903776346217582606306815354482046893928420743804134431558931537319463402711645191757333272464142228803315803634507557845105029523399128394355176940761451834363506938879842526657892794515012518678822252386201927561019711528763003060941607681499517451438097809323442301647751709880552793960224216561364234031145551802240664940688558242181074175594272932537736095320699853233844936108519108201180065296883642794306151862598399054929911244022333638216863279929453081758075929824586473847516977581577388944875081691519768128285197652360942725913035092220222387147510641975004092571583875845381207218669520005072033224177319134093984941596307700229124670563196797973194434739569742101359241666125214768272511455298394935786840923104928967797198487267070771813140242480245783677328704761175502471104886206869904712966370410547408920919128739339493290523886456599333227131012248500232701497454659968497085039564670338547282058220213662226834252591226176639697025964535181006210392864066652858098221350598714887484606726099344893179467837198819809221288563893016084454771660968380000118586671548667768209688168114875074517125732656401501133785278454038345326858810748909458249600564727433501001878088924412615526224477652818643998793805533758595768818812560643288610750161670723346113894205615672074662694193254267306934283388034197989806550275057604382607022413186785427509519864304212487539791892262020895931409738402860689645837424183126793951915178752167398290659498634618039240800486110645664760605970103823549223822196968144818406536119122331979726548237574708878292840540727816306690365870537409496401696622138780845297308200723256181248482545897162218357460117308016987370257447593407586477763712712218067117304612943798117366940859680498930277649619153985875143312348557695088977753138019310008255284826908095300067964293002170657700435467325344124468269728887728144219951225614332332982565730111041618876252244744484500278370562862077221930985040249333629121317900539591411630505660495962373258181797190399070636272265693782804923584509145847112043603113725283687078025634376771225731969522725649957649579578211009047595974891456153044286545834732454611727699978568054883594624303536925620290484568222798266478471957362360338785525917135107927015208671227802410856731208422823964210200719900754749099287421944514373276776229256639802622773214467882145200521315158579782602445883578432641278566589165170194743902359402497785092290242100598732630596912129628664738850426409101249815543407618098972825874403907104549191761506205048659310580213331304800983738414815495569590461792622118477382104426806289342802225784510591347302898858068262660926906114672573886684553930584924531124453657243573965773658938772269318793777364382630303110812070038160597560223780861102904299563183132387746726049415299039608359163396026888521937154979469880927395596259493573066657695293330633582516164206497799078491466430100384106838112734507505848013772163413403365300857935124925088617345195351737839941159583385919034820483565755106146504799586327559718733781004500522790923492960325403687525315474591832455093857763522304328292043753176629018096910525546393405416083434857848357453268727456011009275685211946075642469493982186681236886505754389353816872447950549908184749730584313335868766499628523413396914184411064960736633791667932511732819416087635769364138024274115683686864804660248284765743632424540032622780074738033454750322103553369280435260793283033514832920383438226755838150713385710500730527658483022385562498057551188135672376193293205971570652922766508969373834734272754692907341971588943958169046720882913932976731431181242186391919409292174643694551698504408695266283534507517794549926588566608601790921947957170596735934238154280748516564185220930367003124776522169492555376478767364217453631167292999237937484458454183024895408031868235602840018381664901422243140347612736849319905437478758788437367348501852208419390576175599138646073974033180707736820275424494406032237325048060546410159445243628255494427955127757835705808224728705918647457556219885961284014561327898999284685175381422915505072085204066278944597740648503365024031913497316179329353379115261528870926866480938170432041002214236342241299445210366038767946210712214079435189535909147215119038830224383451507534159122745734896524714029693230615230109787561492126076907364223252960287925562270028826588487908377363119987987633045774746117349858286815397766978339708552141056668114321816623520800338769128364128904018756438504943492671818299060123421275642504594041492186879457871083477945293384067501810083656427042585939220874365378211381935946325462583761802301805166156825627344837597409829982211515799044605335619963268699985273978581528684182840217856493382998956689588914765595061691260929915501867132901937656966999902234550372863164041234459262125270153073754421837395260803870591381903492426391995747019039491335023989360205336939444002247510798910434670864886291090731160367229266326638631751028579795627958907354141114928058886187608742289210073205972215235744117072043363920581230164572472576874560353460706183413690068372690238485223086400259513180067812518970654695071331241491041453617147589100577066502557463862568183129661888626705354689214602538761475948176863135217839453108498610274069736893107668751777356904608221012770858647977621836805809013420045669829713022273271720316377380490453794385061201519947295034374162427729576465711369885818797798508536957371247199469547782534733022460421753272154123092071760385702415870187068538052595519589230531899570279980446010449333799054457186380027223795966382613509077388887305736099464105292984322680009175082829911955437299518325689730237311202980317305391836381694892282348122817965750224142881181520096869361069905538394233038230109089924065155568894027930664530405899900238786515036391291938016260884454576351320281969912432944324380205406747770777845849355636001177472223358919853893212237160341586574700498397781886447496285418383061178106303558238397936523456852353190426030494520019034943112374318042325607470287268770705604941032183985435062845155071151467164105153517068249336888668132126925926447066323903658843178841729852001080476544092494627465694757393066707833073789787497649908136383440806381828396171152299342394378096956666254116877335198677416075965421605264252595692113062952759587766868508019633956189091848555879502497233985185952018009083275014599903380231778304143845765582410062487627962544032226528861437231882630956941364536867953733912589409674873874454760254406248248512931298892190473864389396084953104282444059675793549907747661235442505019293745083559797433512732968921067473241146884056739579402517958026341139251900021665946842821727781011802296919037548747524877125370236436895393200829932765351486164765057505166057647544487636828204458258130754351220345120379531827688974224865400630545272392476280976160743417008727802010406593898033749472973275940593403408634304794411840841633478922404921954915264054267730457008191925651383914372555583146173763822577900231455562402470952190721744056830337496270513620979514164450655690519810153191721306983015102597391824204083148657176830347669580528249276595310541473879528902156246305217669168255880696158314260949518180683641679149197450412366645430790743798413965434798916276587559308043441883031809944456528649788428820941827998930160966062831961897231735999106232194458838436119798691167963803519722004661610514038485304692313398591010360752366975904697696324735507335442956299593709875514465016208274363803148999150027151748864701816127169592309789641125188610632469680365952095355093122826325154567254641620611218477623114775158827325637602870888737094841618969241572436207711129392519453036133107445481647117888614936017841091615144163458766889054419211134281548563811050023704119885811611383293990009822641165509203244407346763239366458407366550108110546876115692205264583299073716956637340051728436118070325239844784356207983488551218231891094683798251320163740595985278911832819260286185009117924751822638971036803153329346865205079110453971771988984405222054914737771035816117284291580720016189784717178017352557434022937352808217168172482870837918132341893658828456986202757015687018343354916263114511582655841851676293383444554160296268524596907749105050053312673336462497189435286552726298888135770765350928994057234659125207379367562421288711182583098033348815779862367447885248196658565425052003290621932718716560809023013975964825811018713396200215693168301715956735482331290560507047868996786480216601771216205278104286685990024259565285728692396604519615201092275602750699042353834045148693498136585320375905170618538809075612097042436111538194946893276126346129948538008998182047272428490955223946266805000833642189433424872409979666432729891481784761695477396231732941638394857548668620410158831396134999154186117717587582853224981535980480565702266909022497333486631562985613717655048399015470163299509439122227866280635014934268924729487369693523476093207460795679366397913760887231810524692729978554024781943921305299909575530919727561224895370092365374733551840055348468939153533626738848441412693608723109953588940184834320593033279295441188488556673066061140153480324082858651615876674499015365827935071294063328437955302790447967282499116751772145772849753858040804084807757998070781394729793552667163176502992683683887007717149292545728908249458298234818507054679273176434345573784885403929095034296387154150526618955790429223184581643348722533450834949535768938322516805175734950500652822615639391645881801277976262841989987848640547840963426590737453614443112670473223021192975980141798138414320330093000720508840241836157050521675064516635838429180778994438373431470239138213569483606378596455736017339360188156168354001914121877898772030915969092169994138981928931010924051402567892954289410890988231176648669818605383817751092613640986214615713544726599512437215329533269656335169363416879762327964589728216398294028609732002625288113531488570387018888770211732278638966512178731618804903190548565355208050297078024637259102041110936326356478477182915932888527307652294915246132884937149681028132782608112340047412635726258380975057362174713913280953642109493704828930730478060499907510495399519643780262037410795952780296344267638784865472547180640483334638903723820844818326445068649842816697913377713174904393980011995056108126918023066411073363177053206267802473803484624919034713123853556339570861409906196364956361804932660107422544577852669086283781058392794497763647581776697976045463406373641238931191175144863477666803188281795709178311786418360786553605642817108991773239641556486186781680836736384076740801904258795331352328594549824702412024026950004868301636561960993041375560078625931557945287142369682370274518049253198775518820570114280494714061764811636732118422721995227993606651735040456228268645276611517030476231715123408861704204268674224893524482367433288148354559585432915632358359799049025676102144180418705673731043007830085238144041921983012397541372526992736685472985756961375001362085970733555520531942261598247467219710839830467498070238102661401760632883496583421551624994156180180140499986353600230960360795124154286478162291135135815926374057004679181412884077977075515053816937575255934803939459447458038737663183430619246888654309399714828088246984293971259691043811869177690379562011845149549922155438087671533291291830972943245847309921084127343658627190134523135914938882527495846620566665271792526190167092327466961890144913849719145564671601194621052580471954573523045152047586875684532988216234197396841950364075371055005142208600973909926124306658406668222360376256203088347106284264910982673731584687600530895942716200727774689209756259160824881891791792776195435456942441187595824894327989516922583510051319832913353200840159666232009588791435974672189173221030011119212827091100330494930281162088181891009586944242030849492297938813431479952737721710404621290518814484739092147722503561685844443411031021781780220051272305012992819820735982396959255197218425474838908125617374808518847446387483514769369427474911348265079851938665992518974801129185251850095345414123402697181884618500485482578886785901943511346103542830580860971668254800739136516901599915720105391642251854974114226747980679427418541896213815553065299649670743488060270976097195351360164383254799641161480492423095261519595865668055115433745388919582342948704035466643539439244088346144018753237284039649721136840381673578676190138637004217513653625162663543649218247035559677642341034425612187877976039966383967882856658633365679566837945327347200131820286267642161064691779557946235117637254815469732328478061726851407546604855496764922858315135972392434924541857151831536950902557780134490855839082391058127407371903946385938013140732950517686358896177641566571823714797803944271163351631336857597972824986348885504559783217471615313076374758456697707327449579810532132472277488791557119736821865322182541984434793103845867835197964947151133256394107613148316375853920732466119860674202969814751336576183307581162461775269719535505776907457122233274930031249432304889261947355857477600768576396308439742997449981209643113547616187080317583734938727087648479611243600154434940013683367516027145571750476293311734484400426419785328819272699730292327678487452032839915077977151963939823622765091899817898301067891832976124601778887502277846559384523879567258504070277257779696023861105577807970421936021785668458261628991838309078417497362447991826812290281114815988889754303247587125091195158038616634539225412968325347371964689504907030099936442734373184964356404308489182709905084458559018920669622203839134292967354887154277565788884328156041108436199933552364367506008538581850010490827485913742105606766202812352389979459329056011087137508604393248165411412343310291595302156940885407465191791962186764133307816542461825041339835237526558034870153258886701915857686082144332136665670753549116541441494357866300018023911499425128211746405023574277148381704120962052108655090003429180669693138454837595837270251958281721112411437235607026773880945817169979571036671265412194790445695779615306554526581884915418171185242100327809339418143622547369443623356767599647479972129543108856986204705534667008582889615596231301043410665792921779368032865086912212621447607004258259042266177237988001546376206178198628353871065366064664156812451583065854566313729666188319467016974143926311054849579883611486157310415365679464064281869099143354920861799212295434138557992106959496480913842265865803705899365953579248446720593331522446641734741494132988879594499771928593981693920602841331409131887610002470650295095237067660129248995781711323664471045621412557197231172370871813184549439028579834359562794643129443740823238765780761993709979438460779419647539573081395428648637925825770653052152045996810216210837080369161002877990551152030407740720740899255910108584952881337271509520764505791992422781268517192216639632722319821436524083300674349801681777146413947342531400766765013824929443614248859505194457579352665491602517594673994502187759947414355779294081056840277406189872939924432854531289812925565191970818525326653242566762859864525822645421133950474114233542182365197487601237872366293444133025491315860802622170324167652878385119086129121145338167617005859112574367290545595210630832091348221171643520878033570704020018396385555956519379927612011396892416069173763651119631381201214329606674251050840129238328996341008808058311521289122032750036512478725528764236945484499404226703132309476261114643778756735877138195839677466601190126606831253213756015441305879220943381877251848872692754845558381400899534788872756526127840683945970908390955752960219164299093210096136678605400334138319841637663996119331864578025904938640132801184714864511078320525326363903229961864820392620666983945637468876266273851955086414847436972623038695246033757180907127233909877965448102853456680424044143150252422886504609573723473217587342487805155511811003526433692717790282948923718158729229081959957498686665732694388369993840131629985343505884001921120848376503695866578703758506559249228876582175899097349550471032583283531891876557394258283695917124821735878258788248366606092960609123739652310738070205657658264450299644998875796127774601017490997631804435084507514345332895411378185503847339957084212459625843255794404495140334878356278952487204241491856834054847080469004225943757825712672650662172019507304024951482845886442121633492658856724907189508584054109461892500774905452615836612438129940606179972838584513955374890757521507414967177321895073674998500357966033499135773942093018002242799306400574020159158609996497908766075662676806317258733341863524687741727709760982528186550041033753122348421948097399423398957074114534516858135342343198624456421925512353936909333719603776681398664516539415665622506483192250679621057638272341647126703111785150702678101893773411409372568177545835053594020160213238384666451166158352979214224419564168991348248348705387824322487280572006127120570514530223409695226933886127301697467336822379076885821992222154348187193862985758648358534463678319273621475735532820864923377116605195189216858811700481679095275004018113060338474266695491516450871077245251191215286816602221470738624609638556999335082307588222829657038318368500636948637612311074872820075372856969170355146513137075390341786934318821429007413011136468554763590632277000814325603471805748030573828388857051284994163792359356251676707391195871514352077302073401420023210241848123333408753672393663771200165194737700207036152926380482320952182653340682217241759547070347007015416921062330385898331656236903259338464968046533513604793626400496298760546946380005908665981673335112884159765777917788214271124238189680311701705486318569254633272027491284168628950529658406850588653605583225920515431762416205720885543347019430117972339358294569860362935189699272252302254355516131433443453336222145985513975985319645440623856361450555518767292566532784108110044651035028014800651092236947996715806134410932590255494174917542266793018916942295941034669409127476089604402274318656160342237264327893394849805283058471350543931035285008411350588356765258490410889324560862066849284074933177844153903405380431442412875948023411153220731382966433299521663837773520631297676813731050228627132035200544950549969404542117515456747888988284744132570286877045206668358849420665086858030385681038748216155354599098935532470165229986510200710748914943146028585334778582618066148327309534098485479294645208036178664528914817893255745897737920372377758077831020257070446869848189354162359952478546696987219767263405356845639641781822281248672593633567424350492896678048388027707765687833469991358189884609116011265341550554880425856059725396765352951435910561996728179409871247667713463855740099249416740599444049237282076863403427904182643574919874728275666838779322954672136108769253194399387691461662990908451524139616925065361869116898794812155304258839670968964721192154212665351095643395771387158508230089591475770341890812507445591109334163803535237096352564203012460840906458284849466417597419193384161584485954176341672353924637506363045604782271051481196561691745014572829923234168810177070425845640832900500933697106386960237824352931620759730221545218650472246671540976698457191273147762856299098918214802670321504852321445746506246820195104105116114959388479172968340078583604984313790383420749636331366626978254023135142085975201180558072945348167969680765669206604422290337446725547893913965431957857331684237509629762561974856919996975460833926190449486455294991860653857849522838929863229433255799433822956683119759898185120422329946320658248878054980466180766344636993456576568210526477366422244558603288063424404041573292518151148007105273062267186821149245382963783718354309012256393336613043868303283337574740577376831431334295580649410807856328212476710037298604607239174981816988073179791178940857282952398146694701506383856140117011108225611212760748053884595902842386112773769658723635897189359298138328959989916107263956517334593516794770201071335845480987175425640133478073618588197841477270904088484150341019187670740340415318552844629924350300844160332234494841071243824083079528352545676633887504382541090819917190385457957031001645030987832357118357123263568141234763221930133814025145502829318397320820310300776040952509599952648375815251083849557967543531854499162531860629007043834359466087246225446834563036443016280166864994624528811429266820226597417129221864132861583302923576121506730825434958541144832744675222035948657210900960321416276084758447443263829775115880952394289403442300033827680065747853300089098303705773945225659493385045528982505357928963980314127255115361876456447558427976196956518173593825692700030465362978255188562251506648442843602911026622008180039113097927474159306313460485533052579209201575152164996845127420830441725894790686562061475068803605129040502085458233661618985210366018724079664922624059981639889929877749729831699847121436492178854571059236094983238720227630136561810676533208333733719411765518589411512243497675848224800838231497332325502769185870746268714259974806437541402845567936908962609206420133551152878156579855073487637030079821949913300111588722295022275935350868732926621986871841621848728201094700020287503143621859900385526815140546018883774696389936807850939604308181751585122425358164581880212336152284672218443476708281232935558926493758412230082248583882088292471362191947422141597874516990863575567533068461485616296099990764602566812179035575159535571009827859951806832986218541618010200477947868899393599534301117160668106122839018701153521035929447348452976675954819072119363545310114069900862293161481579553008659451202130420030434181949771607234047461990583541712245745366788305585453313677052247229887787412952062464056281156987053793523337888955342276793170711443481114425900398205173494904231011174085553596743978207760085868881358943102907476632132671795392261631557883712891860759745296518611301501662262842138207789484850323488828137181566235965819956363110516508735961304141359881397302654753778757205463431192435377668259140925596859838779487271960616493343700890120372792689770938471718165683079859220058486334173953261553160338839599356453288524502540631722373498869478164882068229916382491768142004347240275820490242083559555683265265755670675124247352221519268358766161716520807522957757603901850758031787818626266978315858583556287552844260195051031717376479280311272013981914411691202423592510493925639919365897614311279186742500630875240209904575151636049140464198495931799499213210260530616302288964341402337490165799470916047748459593137519823327943883182095898123387772381536146253763447255886640298883893478527586792753190744457309070297306596411299876433394703635364216326431396054275319133252898151309077822323719472410754735981551893158285855732787100988503443232354224179884895864874970081005809219856691834770444298057205996072026006605890989908611339023020436444427396457981237419609017879757024429607147472091979004973431758538225170181219907689496662756854233786425786787307342413552318994271061355115989538064454539032183691133280274858943958128442896346194794463117739403170111815071290407901482346356645535804883740747146427941794552009728133594438996093697709197363186709586133901577736508643050695911429411568931703887502190046857982248879723724806093439556188824105659478235392407866470711847641798127982615150743637382129904119810543727098359936172776793538376632913644092247610066263616498448851947561505116221456204854754922480447187355189927592159046428301856950910629363054953243553128047915325660881794061282720246778126378888125013206423258958313653348671870310554882998505881688391116078389586985161661498640914141656999856023945207448088019002529603715249732946139108561404903043973620146601627402906158795941185054388364329005870611016620774906651856522834919882111992271437533888108582041733373847421945637912485905126175503679695127795732757564354063055116970331046003180983232770966009489223693678356439706196138100600505090939885922936535279580886579785592883150410620083590044563737733866132453149525988990711335876618000102018312392393743320922743606273182438687614150078484873870073383158996785896615993096970892967246057518129163580049570162671429245446298976636211614303630324740351381823891413383117463409954430156530362578759147761658129961711154067025592731102527775329799697135405375864419326596055209289360577406762478032146679612987036415888652409289176062624827914313570780847437758833159966515483615396752438326922128496293150317066056627744204602467139833841245047430061727798479100237480106352733730159994686042733486762655917021854684515864084284415563856880706484822896847662723365765483492054392270315879545060941184871853073221491136442815329908578935782588994356500897782180604674385024034963199382666820943188605685948665055755629140729621588603808166415491174783316011824509346469929824201215028111158431444727866554442764968396051100103618615435703125280974419042457864174523335100442478712010159651052572193761716186170681343957108275057035933227772340336285038772667868190622355072903474521930451467447424997969579755500434408819622812769882547749422549875352242992197690594106465153154754259276064306661621146837390285304173529662640150076060639098969693965738052046097268205036823827457518943343317014469552610293713214151276080554141973985537908661702034418273767186926385341298677245601850703993715457036327929356661523224091059644687425369332483913075553198427941500493896452612461576630933628253410926116761834842115490433667447850814917031010613165530501701461390703067172117406001493024410913325728292213137374839479113950539455967392381283863081484479256492728546470889680211676339797534946362346437673764722440139387744217458479277384954385402604653825428481664097218634093985003153497623139550651477811392268406597855420561925688733355566136734104412864683276563994865026017397104584894104829159901081630433081271668408411818785114561881191191413000105571153208832161201329950860475487057246175328437837975654550976254313844898028323834773231055691066054174686267256818572880218144594659396297352097708504214053120693644816741946600332686595913502305457901623024206643273064204498995964808751997336754250938532233295313361950293636838735976788308208150496800868599503960809321310204690650714798161274072243104736179235488123634403552885150801824199349844764479025782970851749372327902557130428486544764557849745354132476509307207662550023118688099311763859195566502875954981765906072814793328804705016376455664732665251155566473172276203843095735749334426347359661574114808047002568079349869668234080323412448636824263148391782109874101738334532015430089771855827044060664872715356369744429602446628527791976270203809665202171773660349930553601703186551489225777579718071866151794134649030932798942807242313037660023195660752394189548329697858109618496507612123227257989377983301272486715552641496708421653359346581190340923119961199917276679125632780545771610323787123059011119960887297390317604985649181737202138988816469129877519285237712173607748910879120530628504270576604354442571554452909920243673297201493253337968833132684529816294470647258679449848861644591633839051596243593513559607550569695394625325036321149084661144312238724931897393025764412058666874398924407552102410004022344404100157596586808318549658152956576899925735964775348025137752064575317513169034952126194853979624002671797281286491584573974688363997886918545991018915543530683289042271175609364165771967906797378719776308514815085851644938366176312210191348490877049866656213598525583740869674054745868933678951946465597366132933260232713589645070092531680585135698704154592791112311716902793382818235543391631453581019522771918948903129142620575081862232300889120603543765109906261364555108821903218030423274252863149925788791761675824090713784301393853634228514646385270091182949325122226668862511024014737198678305099467762054491049783068856148486286644700336318508530963100677500730095708004776135813008010622665535969892192731459543744561373277023078658540757414214385058012087193007246884640900441069953689308222746987074147477979907205878537459631997005828396562470950521555400628231999219662827472100045302838857938795932756368001640632853262703312514277604976974662411010237612822664941828449462218439696259742471792328680271860923186119292181980678645426438354096705771161061563016039018171277953794631980737872409763932214647545923327156532759109149026459618796870327959030163504392042235924733833107985042647250546286017539121128990502367008873290137470530110191538020164547995556755915909803126149592035988240780920000787276505344393797157131282262497481006375038385413769413736924699887610647534357531630111904219140667059785908592715631888988423192743152147760761523867882956905632808155406519578226476291337655157988691283941708440112738819603470340281388882224221790129228414474981033006936451041042380947885124038365498168699291054834056598112526401871268554192904527248342619838643422750409805060804580088146421908396032569997672729739064083586733624073017022501612066211261457038604633062206083436952593643916546993856943044092674491322273477801219536590560946315090341950208779823592232501877608844783560087812580983980195874713730376288813863938747844788699405382264816398089965468038593091868216847042090312206461771011400287794242766465218712522496750828374263255069169839241095465005620477696855139139354538019479871220501548108447838892871187125748829896026875031669270034300975575336978665008957845517190254955008318369971157546054559701763903049386346861365779741214158100516819686643257422851978807037026969860963486514462243874287184352360630243208119021266885136084853355858933463166747846458629892410824964571932973159957055015937248399972267437523592420381048283335490031913258225666439434370290663180997242586642222918066201042364642247241977809853585871534530215644156677263045398199934817916532738096792147806262756820855130708133780811062862001906019373213020533848430264723751380648878359683739564188635811119067015709562497118032844360295377616209257819992964794692538848825368219782077818371062157979257610247071474122425134685872741386744904116962764926749678641992009301098000983984690557528394536908894172376870778804322381280737085086076519043492692341478493829738453010266673378006686476872636623806795246482435505446151391889323236491559513503660455834349500320104037786222611165192094306673495229315889387304294706516253409376441897143158703488151775370458345872238323519858255080684379944823711567740441831316245723450798496596557754615358753535592380091459048310641245209952583819420994023393714427454173115415100105691602747995490481635643164677926693149296208918845201215466056650822920393021436876165318419469091906454929379735653483678646121926456299084437278085844154562055640434633187971099600975835231211164939077474203380964556616204963592271895958165125098424684021913817939948788081654136728720590305532865865909507640661620533660745569102532434406434933225063633206600151129308530582662682376928627419447531427834723476851679888585115262549439526344936537923265455806674757857867630006672528362794504949048870334983766172365854872861796737353997899134423222068267652896379246207891658161007953056769792023041429831630987804726863931027520255465215379613764891286874112304052479084429414898812465823643852031260124996489322932783302487565800268384988198738995391281608754270940869534190427986001015732847727739072672996110884235005875804273162260992973594044963472481813607058443699321197181512475411801810128906047143158901297808925588135789309327181857460410085301985949363280509111435169773254403963577237026205665500006063614305749210197457116274906523701613102958410550435223852923929094975099041535149383531701203298553269937827894808055131372821808948548733951076190437594775441102375699619040204034749068431354879071432603177276573667216709268632073415513627400076518522207090424216347249083797089530391766223956843430240739310009276398506987408648800730555372993453799867841042294843957224073285652510092811566965676804146661431699108820390639104957739497794378614728684257010341605060139286702731594768212903828845063618486510984002225781961647738614882473246977794627657310513951678879155399467159236956343010229810700524007488029950587960707026517231884073249929605343470990717588613974221927864405319388949799153760477599777275252769988721015627768344917599835974154382198881302670961915873024660902947711066524182731145217632466720476623984542949022614034592111941078129321952267960838662580943040535404581997705827716262148944577464694823088494148499436966689959201498675633495427788977803590514858065669876744691901461694332654386886173156405801245606911317958262082680137125821696585362515931986571244579772783025188134581856250686360825604226971320364448350792255495194364569637695262336970079345931611400119345720536199988978473178054825431340192803600657360461518500180362578633264358887547792364813592027206427875450637307779170139194079458274034087576414524216686836453978930165642244909844037452454206716308952024438128939015312837434841949912461621111130060961247596014466596062841590927799380838788013253232859825288705919357150535544642251790040217680640970773119208333453982590509066670970343520992059006293419158436095128615668752267849951209700418229218813279158586460572123771119252892712218864069111328878199187127239916867929174997735052194031694032082589307869786160736768628608192943090969015349772641310927676855035251403489679352534474271332266207784717811280539355391331814865492050784511398089239669379212101945945241591733865956991611545583462872858673550182772302423728155612045383533399519300721344702141788340783806986676262862100267308487523104218569692808031425502752736530921921125662289285653138486203828891355394754116720050519123886181269924355800439680302689008280058130730373343777586321398086634779524120843047449932466813257100949690749834944578029580326634772458225522859887890640299741941202549699667877552754072481341934639443387844738996890898468511429584452935477612422295094853312087209521392880037760987769583682622070335013069446860675559486472239340902916861202127006477767834135264785520857269004297145651014560425874803193836786547217459334040331383842557262277762130609785019719610298819352664135320790998505251749323741045854174415750541968078355185477608169634558552429231768576327897652912408098720758468788529446922986270381684828968847412041913954299582276561564628852943117767829768479409587860621366901292148873881082378594930357512303149093891031645074531775007078871739380054322381057355650382644934633715402921943272943801815022630312755403390084261059439323688578950900658454512278193820009976226100042490724213358837835726138549366875096704257955649166989418279081854722266187897552726117625845678736071703966125597789048399855997158893924881163333421234596996440024532865282219680524357692531311821959169121934544339456319375255901000117380255041223188062953529925663278446350241426196421258048373609335041492595352349314982465433795691868381835618085669546708427450479847806840478136454373387918492036274027455759872494811939622905035824455898759193379168626203588039802321760164398716555348839577282132590407836535929058490670010594379965230011496356722672638020590920269919622638784075891659308613045720698040914351269390057084532912712397495181442965858109464836468017699297138144211524968069685093117413223722228839155980296784601064565813949764327175907706290117922106388421546109194667005566802792037252180965332813169388169284197646737260359903011519852636691854995534488822983559155556900832218891670628483836330186292262067233251607175505605744677478621886709035091981949867837545064735498923321801305344236213295171764673479195290624152530112717263285637701134634175943657342907360270425221365686714286374774575063693242405712547538975492516636208816136097503688214377082341063736329591471321203508572547062740675373282468519952660275841785223244071211169209660523053669962929289473584186696408245828190815910406711153342929412922785392907081556425781936459192298996106770787972443773345331925270970356362253821988171430522229163535641362611886055065641095397711371579653788690110631118353224067407367712604367615884496268914318891557425640773243439348218443488903263479762255726334581319486842387881353326447195044460520880447870281548766363554599071930238776777584811834500645123380970351807889250978247520629306395360775080114874476321110897648716468316835112085971642365737958601297653596038511116573229492162947153066295072994623392239349265085977296878644881572681960671531432807112873476988064987223460619414629579483888398117886553947737508247618509461075814991277208167074663883790686966041848202553632383225928659726486471893435468165462584050031997990430037823977443054787954585965933997445414542484772125454283571590046099473725623708306544224358392013503000033068562081643211315976367789897339086552934327399107358420122186461201618670813598205419930930007022336755138064873493924147149387356700227509376028768532134285889006905248329134408141032504237484006593309094697934487272788439942600708466377255521062968393376869016585102389750959568750649368572827862276123809673423108384689114800733905541504150223428413412132704610568490449477428416275466572797468706849792516454971982275568240863843206904198522539660849396876145619098483096976205069733925443502954536150102269418553980772558118505499949570006035593601822461596526824334280387032108255282098574138455863394623011819204387942737370357929671626895485764897622412136825672856266527839390506360502628596361941165964147140065801670340597903709863846606883809751103186833446482586957840113884517305812284466908819800753812537663262217172897040541056586043290134564013199430194278865238217090492971152675947228241479713404311832219014896846898225140339881837821697869296834347004354611324455018368636719991796244717426569892677618939675869966986405903439639925667739090809789573597460653007995314626232445852635236658773935333197187200580998590025335302256295389705812424855210577512561316455104376609806669898696693106030754228847051434439455213099031518164368720554375116626731972158929643012120667089956360039602274978705013571423834589877602459546680028712994295707161944344601176189037800379071916434616493346626401320083533939384406551919357182249285711811528943257689847327503067148242999093337859827433153192399100389997360893038105971854965566097235825029695917891102350070480342365944390782041556530935827873095074965633592530922747016269613084328406431452890694611738997573829621406418956327197720128599996075468524821873545850028464571700922923763203083307017870097349144376347801067273296575742077932828021145034610557392872590206758704376151444237655120122987733866386552607876673022793371503413505018654312314897122006418041407648208555280761123271529447590960269118505241812125551577488065338878644316825442041786245733790346273116867332754239895060932235276274457482453458962574490296670123431555124149860551786766316996811699943561756085872889783560564912814440729896715742915982620558561730284157349168115558860288705612360306227729045985691155038336362393394164431017433461591091772107768916573403860058400091550786748688546325127770163265028568645214524327958776045051842493985970391142311877145838920661518972644883909812050996425008433096224513137852932043139533227523138943977030639712388158014899477286582676662403230863566872142673269472206156929013697136252530539323251276750154338305111497511423016794486505436388034427244011544240450227481018830242335297515898095687392846888520134191391237303407178876281872801219849541905026389290215583068521750282227427672257593154282299105965942835549539104480493345713734698772362128278695974845414687350030519727328482695328872083801960690446902733704021842791397327098395130928204080264760583826460814267823836058167434284445066969969422912774180788636960065127774000155069371265873283661392621507272846670933337451825001701681426133795345466285342724089879481543965605417580727471066355187320749418585648662147824041887286270832174504533238870810098343195307524628614680281545066555308815800385260968099896733184145368044678129557663312608992798305370203999868767788379589260795554995215198257697469872909243013288415551859871389621330816889456177867879426997576025053627257005125204243242528908411126986231139801759250818368717538786796571558662323305377333875709350429044027570344458525447013875161747883514723644851553100787025429380204706863111222060521996592388604066694070058286526861832327041397851820838165697643938746575921844476088112862867266076074610953933795790206499256043870999466129145718590615279340125341733613017886656471529746237629207863835303241701201535573169465085084052853928662125347835921663282358250523402828936467841714695616132715211653446100781840955403517383294291854253093850517875087430784185126490970696036173638227560009928412449658097263094184013917524462247796078677452978062765803478010733285807866739394450687860635272886687857171953347932932145251121197784010986708729363112980941223660077916687019210088062621354905185605197749343135321899769362049930880725265881116412027165538270863197560784036253877376979981147800008891657932989529152851013418430468045385350048353484131533001259241699030797129683712094156362843994290558014308498205246762011672352819705326606567389964295485361237487703302779052058469543703180202224020358628976301481909631971439072404361986799705286595785073440662518724587195312251990973272041406099378841722351543590523781668379677687761914205067386706056494471186954519895701305540851816805056470733433412548838910959549302885595374199787513033681602639970464974454164689196610950366843266594234673886798639713653771556532657428998507062904480872824241873282025629663289981312617842030622633143178410469632994640010282888205937347511001591313814352884262629899982543336530816639055978372897596758210563188224273608614631142127598157759935937067839129501631667545199681009145395086992943372800821769280434734235226851829973516923551693041734940245795458339854881007198415392991480171112507400531848088695606676178518174066184116305494094690457303660568013758771496878559013750075216638604755609909897088674092855999691206023347844219945514994015029221415051543199675782452718947694986639421279259752210433042017213726602804997733198828613257581720002166075022239587515052880592553094682459923220731237828851830024494917449791040576934136945274914265084387025813951229606130635856403922193161739301266794907993938351678953217124461462650965680716972355534307403685003892139030292605534954055006834856753592046016553783460834443218449667938320070785656780595422699470784043819705022701252984976563760541328522003904083619586326434704352151056732134766418218259871554873847323524174728329705850974573454816297516405868686468325296900500859325115135688343605360715443736624827745983274715645208575312071672555642762577353166685486732990591684745872759762519369713535087994402266252439443737972235280171124774294615929518998263336091203873999404227958639277671960200092309334565188721375969418121166582578253689727849015247723554592887065606413045095092436871840775637015684878378111506351820977443830324908402395178514813736644473490207343835721146931309404961603275164676840043433306980907003184392005029747869583561055483038537211151871680749565917394431798593254487610504356827122818223865317456680632416295153353194832968505341450404451516547546243621293102794748330700010817601668355467795009324820225126923703834672566183355480702184247258339940247552357711989059756779441214035147148515485607392022760453167110975482778515375037644473494496751586463694646498770461044205892236183249228186200575282554089147093380060885178881516753893438205697490068999277760589969882353869449975610993346669940770223758292100926145315076116888049907852926101785900132964163244069668504474697611728037834033972152545658432123342080190875506645144625636965363759727334638232663582806672308759181787045520503869944127067278386594153138060566495736913904567863827406084834519144690207053589733371796800379365747533656713762494777409216521971571620709741332778951323849421371643413409243387446901166198205796531076661868222026910337888786816876843722717497236521416031413601915971854161438630469711194511559816319703279418172452399036492049512730837501027155397708419724093716616819497223865964139561448157469949384388810130571719352596617739827216395181187121858002933550337041492548665552650428189801654154290609290519387125290785440818251057005478306286732850840753534460506716424816607944566770966394299212394952628028713172220967074191073650272863785585194056749911909792989721944446235586931144002707183103543589063016200708234726056073226353442926208982119108272171992629041068450282602790948245049254977660332546658207807544083111770463249999403619841911560636311453899437636112844428274221751553950501178338860923407641788738026367375394204756714381034601186927530410253441713046453498753928272812061535972999138523391720395629765751219017494990490980998842511133479305729886279619893282828849188316622484265698035904128933813798948971394847880588277057403595232798672521253114889370106347349436410786767961373097845722215660480724083945379444997139109508911773243143370210298272729614216319163278384046908308819044046132626812551485861361843413387328162813587504489977648633115158933442397205575270808696052534141534883121900991987872973492005886754133767240969948481792031269415574778732734046795671939461268434299035672403424396484666885964895020440505150115956586759574454256397787816734164804042404137170986986448057235603378561625738784287427646810100536301213664040923912921658142935320848875926599772139444038335031650008208598553940848190919526972706398989600555721134538571470394571250850569799315168805716751867375830693063194671645138277476739237959096166260716853416726887266452597131065793569808098003651141266587965794858854605833263829212278186145236996144617432193961653217729096094619174018756822243364266059818948690276435132860919180544011376612378563687235727707721850417263078469879215969443992955025307265836175595155204662542368059331945155277951072225879584720505586614349937261235754250773204378568186950454030733463959549467103172117477783424596744222647478368602363544089826082650615242505970135294330947264523503362309897805396785061162423226874607074530747977597113706411789106191829682755540401007156958012459151841802089862009824081834830883465512696110500378282302141094765275230773834968391228986233519647870500000391659847975898400852072236151976981019105328802737527239115826138168783717321604482702813574601905722907854572793801438710242768364913980451307276293755597983556935784642709321077989898887927751600540838686514930710634059535938010628962801916290020361684606923214519441528474099715231165165084063369890450128262360568762287994877460834418654553851972219730156266227639227603987415843526146139371202548487498782510197774608799907343473145600348793502574460092874163661062130855543066272675803696073395260657773606316038540052390426905489766372558588780648692982473317911017313213008693010230551343886220083437453024721058890412060788780298819002599669193468808544513332681512814091400826804157677877587801029180642199026061126738787838321609687228521486283471740465155628813246851146726296658099736060818139929928576875912452018838754228327400151843921088960749407078700456426569711629266480029553847479985500247253594298237471699041553950223914698417745308889644808552058455885346864802313596362817352701650517043040218193085794211638413074815341642656580898703889901732700180782169922831419191864492728891663131677697800903889071051244275354173604290928022534258699318489127520296315759021834569382632392524100590808535591902727490449584004786349383719883916518254125022195013107879678199368189954740910899222525624722415620204017429030172257678599300509318382988119441589147316568414342770261686212014797259326580462716996580548887645081458299987695576779608735404123029736934391801067345535637368927784742557752023820603689472750017429768990519415022857871102147040844605164120734839498687004409724028879621320914747158179810857526390410541000106467022054392793757051833011839647148601694682794017383981058000167158383402160689503477845141295494457066568742247946980008807126880064627113355788209426643356561726046119124613399491751018929696380692609055033735435770822695909523253089650939630612681738117923339942305189589614490762878145946767190966469176296825289655132027498175564602260429006293736068544761626993122673795246756005520325807094954799668189674816185537223983388719463597060270113865198681210116291419300920612058857326246149934669058912342439073992585688773447640399741442413044340505730611047992175521384564834756042477413455422524213677846152831141144737966002852973773795520792277119461413521419033862164619465593668589826973168168068052232403711424144271140555369323517452612898476526847162943519800645593138457437926812507364093660881435273641187523427794684770703049869718662811336063753609471662346148050992729877843897524534958635691851941284337374638015264168784098803221291934332807697283686103249220353769550142489536915517088072066828916748153454964202424839121776680706800971073911570666599600167773533368358305202714965432313656807497600327596047532349446860256020063217953004111688585316400799658592066199188549123930904077242068854253903167293928257877215202086278150470543029183140085901812934517621682153327764541557829760909917460486263090983334176946559006252722521733819980890446074661667087566136394785136990393398370007357575299378819683822562129729313578132501633527579455730947232834717477322837322865291842539991829275388573570293671304679986257567349151871436026336710772117506455439414595605032416305592040485991442571444007766296002430939915687987625702118659636685617803970134862553137796368045448059379068123004975101174560050289048703812916281785260757664821873465461113628026550416484101695377773710253330578571855992526520831478203301496399239765511894111412407246767055106800512015079271993315999039975993545712530887068069879048507888424140232180676751777608792461956366304430276013853280290895801021484701927774703055104981702082859229335671481038004589764892627008188763968625243279414520776337144165288426724242615158920401380746227912343610287780297233110176600188459416417900155496552390065856958839281709693408455699400095559914603700259052697405169323599848536038841070112010144694433620238483553242182517067386074594580230360619527329776683361879702730668567825587774760114650367609058139717644151024060917715699454172397374063989066150153009057950945931472802427001525258009926001242946658387999305045281714333140531858500393438949007640838642179527015847839287221983283541537524629737010192905484278639973418974997024499818803699186193430057358135393860437507455312440030111226046717841183724182165551850664853254513092414204232589314040532454193532435040521330890140120169019914808293517005732659897510346532212936659862821915184818348820441192039689865561304485104791208517528488588662187320984250419015551431447697575902453091538759029421147731475693096212544009628409143322181346390574795970346193151307480440932362941212828740549776540210497859439177859349843711949835104555219529573517688668638471390784204914360441070785015607261810579679852922973580743512660679814564990878984436524661276062525361711387966280079383202654934626415124921853124099226436736003157451260128419010027581639341021643925106414695268062158472041280702169016797074405154110392220115905156089562625546916821204238001295157353307421122943968242851451827617344779101644698022459416808112154717964311887156668135437238070402625142279646013176265433800653545765412782650304572623860083656653682388267105792769813950653315045816542528695507807374244280018845836166296710491990324699779365604811094654814670606175593914582997620242541435143292658518613356723014504989158678198784084835403691002622220065565062990817643520642828552469229459382981636650684519948885710544962452691902727240596730451378416491029984108920652911135387148546951883521836599766817135923179049642696816966125458508093612340607354373085309394794702660333049501990814082160579854382352963589198155870302757702657791472096935573849801723256777390809979284197845643447101613200336617523478035550741158723491990894032312168340194262020576275844151641700434944557950376381211468797278157705615736669801593334368862290828482563504602741223120001445826283203757438035442600927866198259667637505406765961075420193951934889532500064699736657262409661622355931227489803191552379541394185316556500757245252445449255360984034810587176589367774866005831431524930938196990510842919518472875597133092746815257469569933356097238930647676486343644112204776245218721635482641104785581075399843630295606107802500691984725518345901232493899041413519281125621751353526200269915119908245354778827348628016753537380633286432908798391712062380279750170385817267519000769606736880600980142052852835242508843939811827166796051117005106535941433998042104128625503519359021819224935856960285741268567622877110603035528140152160960074602052985703011704840553953098489642966233884218359706978384435766738966100085135487940617328183738672440902871913671533570048739656148150234881187608250073197045349627331089462950163942006676447485923835207380765076389825102755016409016167512811040488451730519809011076779088311260512339938161306429778963910341530788422798894844159638651823489908448361750634321454790840743630569571098073392149300386231713200109673279114919879775545571610908213154242596873624111838004308316178314956283528843721530830544436412853867728259297815567050347762656908820444807787645474027842613461064180549251734876832007972595394994836946867379431325024810130001135350693243749609555072021814955782193865988337235050695120501870343996081265438971733576571934045273396744389354467889606430584424401913853660979725392466304811608483024881420571328952781109537027880351217679971256164075095471158132708424716414574748278150806884177449478647520952305818045697083363650503820601730357358773683369532037241798914092775135475248746275155350461619963146896354207861510103703905687109556765816147142160410345781574462230170613533997868142402572582692008154369958522365180391010358363218052029989866763363738512687472539626609522557944630500830402603971591753899710872339742195652169832260778247271633510242277750860761854808232085160288804918374920204975103104062173504367875099791550528951652575937202271869657431705835013326108886711468957925797938593231511527454363548363802221554517194654432787339624923939501357691841762915763227304217703927216128251454629751593058174592340380538086670502927114324701453531390335635906510876364724029503156566486695373773824870614909840580030950846576973623185567600717974232866410465454212689258142352922369878889171383554340415348311085665659650378399318225349307452072322197502579902542084641487374377721547038746313672303544316151107813482441261689688895315878643232433217952261757983243982837354692693672476300539132569908988286399176194685486025690748904420170051524279790190707382662786009131745538408975241764247140053124055725735081545851250304667913563073567674852765839589811595729498744974961658631555630978528588445640825014777417577959591424640537947089732216159120613039351028390906273511957314207573808744759939837914570237366979674513504331121015069271483863209700581987917136064005033091032142746642591560709730083563144141036979762035688312602855236681573694226963798594006551937270539427263561131494864306392252639755225197586578583847201559376192899275891304041191671747432519147089532638578623989743998746016677056307666933431109894696133008329371770941417311547575464316925288117482083894201891656116032285603131957512073399458959134854513139037102913130388670148629405178765819338493872077257322014549666916837656385510053135720359114815828180565933448958367128451133130274699979177222562339386695854057807762647793074317563767300527933421273911386390666843376962276810662268604843899697432856430976642174100398993227638675576756395780015627611181661593553589229184033735346089303513126472550599699530572001462889316883922947516277046798243613748135860828240559377110142929247766680550318670463525123545791019344561174466242069660313989996141966698950301627340205970113543952496127607799054470326509574573878606572464905350901674833699367488048548729755847589329225818700007429449632101679107823275054381269126402268366803765999658698610590984193349426479748115802492296781163438830188266305654588090185888724006277451260881928040019400787810840274219588897459855407812439770111695546646336189932620931251878320486794959066205120318018070274558642858257566558940563988206559904074381670747329796921721905480805038796703578759339019013675258685043500667366460034002097214581121367517674431476535123656056367474371594779820892310902651708096448862680765597672109941920425671679372765858341242031492338320131103519203262678981308917838180685277603435812316725787418239088244440047859257423552881312374402650234269920572979570964912763671646152120677759279870878951958621652998814652545851120216911434919459322241649626438660331761484193072695462450778602260418236954934217518180195897482065189938289086137863961704887230013098217720162035433208274176863155258173206230663764854433778719023872376842121794213766695568089053949914675244819690350644866812323312265622147667581560497153797207267050149434871373541525731455543202151799516443374746943737658602504734248329196921301898382145327564599959748256504453321886404605099192837265444173898559126239048625877936553664944245938110010047930733738381296269116897521005316789538637649081191995275413860689921901322975388987264803621119984796811329268997565111002543665980296215989955562328868859683934673483725889156315086708589394425761280119822647306908755269408488815829641716851360095039518996769160191677268715415291659728778374419035505166405404665513652122201783991169026440131052876252893602054681326823882182759474901614793680039854552322812239831855766528182916586415531464922545976033867418342240979490124036916478039131127877280974201800077135573084061175735641628895815566146411998751747159770352772879809798114472313131768308792355188968628350254516695398337032081865102623155556211318375837678480358031260436743073394270642229769967567537105129750998916927966772567658183451979124597944668429397295100020084263347288407576294156423098374276463338418686614674421805889712246446924008819334164300431562876995150786752062165654077941377306127916570777303242448964763343733055234439996894650652455394772482409625160687125063826764988396441899965775339708832377310856095503200313296072682627890962431237607426419744094469214967256443154413035741041882950713774812457983405028069069646751280522816656469484189429350077946633051815280092098957519733263914279119881262799758548834450562098201958447129787149828759773250241038067691676706223509941149783228703333686330564316431138024122413930543452681405436386564741256393456888055937151558589891919554462499860726791944292360544739144109369945867468684764013411985825995960972795536834433111080043771989200474373541661544826641426475976316382772551450530725350317150026062193357100424277669649640370485827442009077769638673380385736411901436272977324241757227294659775547896031150808179805907679156860540396670000166861765263750164629958057643160897663133029920033610723262804309451822046929312922134660742328661271594471666800429922561437761234201174851297644871537950864561332869112355149982430444884196831843421274243433185589657864566144634002704648435159227878054513345513935569264958561975262543753089713599834975552813775992120064624287744770194817571110849144254738061401687577319151734947864344738880306493993891363446225280228872296099043854132010411486626234472829034213127869839555270882957185399602607446260642632081523415243848429569352064881014867390271599456466567692355370384052625361557356255422351841962175101478483828863626073587539149707257228335781329535955251063295020862108969402026994688205800626611486823406136075115223646203871307843063037625916117081559036943978933404134393890591588274483862546963518705731131110401300568590533903376775680179785027032455132666447428579605762522351729540518384123817276800417667802434889116490171766607783565703423943806632339689849257451237437150071264339484625292366838323229765105075100359928424740202429129211534201116687449792154313678314723087651124840307979842231132273242598133197356321804329483787904848772895043768138542464311107341846274799850025269148779064663641501706203712488228327158012905060489447606222530612941247319219353237876315631275986299627975432125182055215127693415057607931990427288777630631643241687094427570361842324680802163313502984010446653063518751323658234000353281733867953669732572805885658801081139613384368809248637154976813813707900638037562191730290797366867584466320883497974136463042387661765106643356532755837300644186928371119447479562315986744074449424354648097637112820602627466452660328213452739483937952528767942904653944308850737920359805911529224592679534638337042696440218051396181197224928161391207917175538002740823605102659314158007447853048782498668332097730199523655128441750552581933965793490579223865523942189750106137547223166392228782588601469637382826428069930874362911931513816476435740475824594228953354720851032757522034142370020510564626960224651539039363157105944133893816767626372969366194533873330988717400320061411951370792031249700311310975343003877560521034271534517269888936563654159602913644217568352685768333052164278716931550316325582253136892926741303282401927417571832230884914763881104871599428602046869047546221773920348544974971571306473743792409187544821024089977607157902952368402704605933117407954273577083955759086396567875206990424094952704575254624910408223251083724895027199340125066643227372136856196512656683870815644379298192798182935453550724704423044782952267028834140394889995866816955694012376126482965894154084441296549013794061467774967064274504562998458506280516996344862641220054518334797897432387388327692545482594359136891744814469641419021298599160011772605419088552687587033215944073146868790778934801226176532392241606596488813190006263311383354933788272500841751962322967373840108968025804782224762724887348354184197357068034916404700239158953987333090707612013697406975923621208153797197571708012283727940964048507487097673577368259981177921438385008881838367428801914282483411479949490654219491887683002729749678111204150272068515043100912116995950874800867339197447698379408841544291315701035018385587171087297480960698272278147287058100697039087471725768396969637360058263654936071962141685440134373509323322319271049005753216142163589028861867699444546834756961875608407533879508572193357520923426258993037596761296629847064715800531927554327485380927678346155508706173250812365096316151460982101356266948292612302009421337025000947552635947434163536195348406615237217586662782061395425207867327753900026510540736921709170525521150341476909255426625455440784013366716075110471134716554225303276305462716211379172566978123594160358388863936837757106137737635882757125514383892702473727024365370049043591510006831558944905439098567311375390929953890332356850468411769790973077638031895692648110891615034144862905624475636305064487033187506622307247230959049516166987163014905723293407052688751523471734580665291770924683652683595247616629611765926586906326790252814557612300103805867068614374176557857766451054306343960176221354774228151936613040919388239292746475000195037522025936047171140008264217113757126960091088080944759486187422000625987996875591027398761707762105823345797735324911070953806977469315288664722629237206683357060114361591901751551066449918573396809445303907362177765799939190200134552315490701501839318867882590413989106895267285291798925105170780600995748191311522295938787049377889460471332285865093275464473928974962756066505602794709293717923089585919776926312769376586965345488845434184585527365886612386753931809519160568434652782226829242999788910654375734920422598707092311744556369919384505012438983356257217823198067984016123823809526139852527295365183953958585887457904345214672382249531605237228687406537838928350323831063947032603247546382700463041455515829870660473228163352860260007320569523086496805761528808380837949519336511932898302490562925911458431826289902119220366541311265324604837838635941236240913584143818453936608096505126053059545043939926887079849244109770320574610756997569541043617087482854609802673531398416270915184650336164783707288475020659512400340457782045599201633433945573757283425395300707242090565691666128468719893246599358325272230403342243608585261059275142970417134878307446660395105360505324909164553832048619410701668401588258345281393710037783678724291886080725394305391587764840273444547284665965732461712019143040599782259230027612369330607363798906033016185425361969539520235855161240417035392761795912524561117205052503464365865872039339551217166428145493522776385069481145132817239390089135007143741014754024438275195337929055581158588650240505773409703822950482267836732668505004990036411261437379161386571371729951304909416142053538462625577499219855333159584601942784571540170754166286229740891405400632861457102464620143129095273783636346507124086357369067266142008709230109584414710802634007188567805206172264495341437447054183388337581498120796663525249545592908544476412997924719933452280847987561758986767033839435131202248058678361196841718492403030075445547992695393900472413664619930327424982899666277866223774857270987747602310400902186500963717786806870800024648517612593845146399357254392455514671526909677163339664394928803422991566173977304154247063628807605948556956222091825994474220925758534380450129008533894089839872941356485393553707858058293618771379185736681936632484266890337056844445210561238963786334800194823523612347509690174689487279781128580169969338653883956468200151413797475157381712401290111290937780175735329640785980406561699184959473872578375297949640294010988576539254050267022466222888354805840438665226514251877401879857618695118925416979423236844416515117001974683317774261436483875576785490657076230502375534295911682057800225304691703590582147406250132014182240570007347429982304583064373269049114475108860463589550458233944096310032658335148068623965458508932573927049622592194217899431818427200702930784814874627818434440223788960545351577705021813585959211426593589867291996339657293760385838479021683509288998462645662560163584751449982695588753417958064866777600754058287765655591126088821901727577117349850639338998586192666494677233419421605230744191111623224172368281864041162141402602322052895051396939950728948420902328540998344878540118040151179916867963474323438945182514905970940828962895800624680411954158141354329340484287384941021229595208400619894990888112326772189306001756113344770596588300156273679771993422205841253671862518286073851865630835080694882378912215640130856659665491673055299869649423437225818253939603085617624716365868852679503705845208809895366021984100875329553172919372735067244463219951258150040602744249956274715629208834804354412210488641557204592094760001625261609195463413603611345197332214945718452069500426972365349856938734367898455292864868362876583757611029863673778414439044996462974510233932430373504306287516152970203984505347016410016217196101811577217459834578965925849544116243083591429439974992103299751953295134792243258920585660047820184855359380295054197162953959550868802055861609608403513093156445043436584328187428535933760764929018200086379033101802629635010564673284632935143675459248851933881227570206480321306505140226199770848917523486957092538438147876337385632133232834955226056381954431261016439807019777602881234561667742181010468681088842501877699309211738083735125881248759950283432736828042008666210093057077959401124260734508984245654970110853308016080264536646335877955042359219318304418106534026628528163262164998192881923679121502187927899434841534596228682667566625723721788042465926702144665371838493392384541151247101181858535208177316438759284119132511620818428501087830812130567052595834570005634702177949703632697671942172336970857325419865964325382115566084444866671930580921973795903223847154274873105761639546627980428032035781642389017984935320649936923653965233098497415988654240287913766083363162299472254993275345461503979315824647130160045697266383664287840122178442129298602097958188761697461248118060816084297196671660571402443353488567040700357812174459946968371568938118655709531378481564148027486074360841443543951229290449757077164955906849027954657053353493189441894400755682622337410636430729708454681899841608324913610086650468935058012106460337858459637967804433459938692922080066692973503896209352642888035142690613012387034442526724768477895236116896685290360657040347542018685342122298377355473201859728116883723955224865705450819685344376293949197875810763787927274811489526187474167405151552913366800874508147866438286345230099425488055236832874506321317664184206106995125283187797528473489354530256244013206476258075271492056881818916359822414715405178154733772105675925354446434170305600443250414237599125363379428461112571994522776591546322452374986258706793747126672477330791664981545306509441535182460617040832240241320279452031589588895599214735836842591482896501065325971400436503762761801015637492093634159694156273933212497488369689363048810577364736231732864716096231621852234533197817422975136530226298797629746340596287892989342743292621693069839269441910808000844142360265775025836671438118719673732471849869553849793959137196812021206760985195022247363159764718457142867346323421694976780478772983740394306000006849826604527655304910101360507965629148790563350923671156579529285353942527374194699683632602501692100077741105169048057710582276747636930314791120820268063177334829857290345058440925265793006525913725270142928359663677882965079206170830977923370587175198551297023046684654793338431808452849203057505269046134326731015009314661282832548532072342607529027252370051906469871693257667979207485127116408933615737087726345763232120408769194993252877588522993345144368908900414061816351759391750067939374330609584586826001628571876499089721409666875492428160558825222047198508664028168889451950498554840948155999516324038329256786579398252964164629679820620322671403768579610031670602024124597108200102758030068671089636728577284747372438983975332916818038779001112967003607492588526400527703553602718162195946982005014158923836875830449929052492748955780657505180198054447560237744363183902468863358313046052995195284040942574807745320565477255266145601105323181950693318274525697263726810134291666901636995594137539156945240589071248369059074092368049782865297589854964693845726985957555627603093450676739888153230197554736448246132625414818115797431575138613501448280688349234300024539382336343600634322165014171889494034947699644575325924238970984403903728080247086926328711366566590038250900776123744191030550974411615946045484691596046245506658701730373883253502765014183504430194325112912161302942346758615319158636192323111218527493717745884517766051677592240902983829888987792445514960188382120020310837238380375389766255155157093355474930998280538159165264184264382926168794875439197322022291479611427222453220116636766719360209090285335115170111395390734136652345452993721174862790782264133960702578998153892925511220948097227218772243271712141107059336955986920409702262344183428924310171844530836865634163266125595089063160794791637853613113608624589560112817936802501894171283074372352092318896062995297200692918032787229989094546426567846189821858712600543409155589389274343411160333088479666690573037995967475308338398361478255992015562954381628704081537362472313225227897789268691764395036153328828335610518377668211552437149583532825650570372640332886040779130466025165608304917628767517794640232353371315239074221139280390953943096995264116186062494435421903052647198121937447077363134121927984170632228260881127340509925453991248291810548628295963990622336109193900055155458655282993011092225091341488126325679582027525522973353131057452186141613720286258776133357853522486466517265796812298111473523758084121311660136641489491873948836549323912366441756734093856221915958479024767421225598499089064023045037001611620472271456308238025298438656380926079080124764479508904419313520051880234057939789648613996698831680397119890794239439526719613021577816185506678166146478078134399706459380050440857133267982403972987908956445189454236047243765777038173429375818322369900446654108211328055056402782356264672728820709779985184718063467520190168008582933828493662479696114640603904088778795680959939237274183488536765294078559444228795075542299674693642065194552218693549825824488532416471020981241917550309787648849473124079684249756743224626872763074933709692834314537635418105808515074028315852010281875743181219273479727816257309687845009284053454811878252809464865172357776498968760831967758250917536152488327431731827089961188599481085388831588555028387316233158938050532073331334014969637480138260622942779782662973848562377622016677636179786487157938380757832671436353654361879554840368977483302801300243797195491740552544726026398093267633258554867429350536694390344430889389047814817095386805696212350505300903320995743256405132792822902485641406995282054658979722160115625606246581633575121759228855500434106775433867158113897399710293141887871038280020697620043075457869861433922359047359533034758254737682278858761421771735789901495623515377827905464356560400748786918519790840346102682002787807577526502632100339171953333698014027849704086915650326171911622713349886294163704386439846913168195979614911502719634693377406909759927335722439697539996166708898674361273719982521232742142351819442138189513550504031352536735135513037686550608665752292757346005865008780012619478553935442281469942221803415065632143937908442376638217116043444778179637386718211636686746489752755540148841436183344238629330490893342102292787036236639010743996895733764775058461159997923392782709649680958905592187858846534830112106482447243764901859982945483395230196206237686448434254587409883914504581151567513788996485697781206717082667236003375698755775732665894381229801033317252297494262937639453663939444717266800557847251935190583780012584751403620612945904429201241697077324788490999701990838460227573933331810059032717818889840380818873538543476066457598528144800069214530777500579968433732494367344761587504342328075347926463923807974932970629015977834269561878168669790892775266992734281450043410891494424978897331581588307411544051579689993745320027077801874511515008106651583474501490623334163766416611815384783600577833762364822466396861956935057425051073346896357660146504812401912956516902461179033524312174332225116348458606546644653721457627188785970402082047199118766758504558004939650191638012746546122346918455923680752089772530806454576604276851647820086918565072353411834305236838052828991831911950791431665175737669856898055154551593264123158146256954385283272591400141812603784499638319676062446016450030370333576003499532797654287809803164126456276072679928116268559184608732563098087554487966798995000096375555231998884780069840572495388340209823286888918198349053988082783729353973953858150007739790114908856059176248125953982727306829250348944496875351064579623571272999930242590657789294467153949939344473348426862284529213088228981871947214176660455223031206291284116759311037381656700479811150415934843516755224501514862513037860428758243263316356096437951289463298971056295558759881136227402822169884434171627906313575731333377652311102969208855138816138512854735539358141624567756636005715295537110334923918992665426197586489606069969961478556480156494302744999624071118018133134379602729189270109858425839067577193400224200561539760761887267220282609091539723991175501480646573704622567278409058333352174962034120078591339886222615559507328821100118808457492583438969775096825346688812440514638254063535380698550377932474943766345411283215112178750189835502136206220262523646958219767476062609222578955410971468010916592660633993888971096510443064880994709214530482606737712419605962289216284884715312304035429255843450315165947943900019842845021080089952912268982714281622731971883842040355513543036121714550416499088406551800830285592624525026582604225721409789724803340250758053906429224564555716540178771946264103977723964271044620646940585663353978225862937540556275590695066713297116913574642884804516971803059913124505725304707962167008478206864886310199164012896167691662498146367426733884017772720947221442894299173020443122517100607014432338768987543415248940724572874397213472024235534022984589370974911598826223836721872425534549711285852561784759712238183822392950328358861732658514829086536414138471776877314131547929716190714889067363813339910364322344930055105207476231372701158738076914057735148729780598043134606976988206086202315369191116253885795830088772452114646624140022009010241441195243547427502092457923074629575320195515715271557507285989134460961608494307893190557261415191949977010110328244173678985472824771180700230415404626176428340505080095155442279696702823002269466909976578891547274749527854595592617086789269623459842971693855436784744878081456119403017881434379852559926162623878141844500609444735458866072931097182811997183990425321623801304060635351277113157272373278145203580513800077726984738014281755271406270973886317927242300002937861064831822898838578416247271204645080136437696909751003427554450599163574197163360859295208784728100615911407747339992854444462844489003369030747744760767350907981274596614671897650361577136489809178650934732402289072354292721824321241771860096273481325138662634943960698207164817612952395296728950657961135075930854070611001329182110314185571483970533580957619781473345485368084141338480730967315263591336012102482476093555313937553607167597160243863000400218504700635547430616311473200099635712058900788636301751978552704406866493536041725590173326271566150746017627973286659162603787907588929094977183388976839241693199140205588601047550298511888302958747019044017278195905989934478723938815634233070336840255974426330123600743160830194510121094608850199486175066627431135974121286222790489806984015257918340399946300871739377934310695712661778569505277268479357994068726705468656920605259564320753709775945939848239811376941486168708515636447170207333999030856774035909505287491554552730733841575988029353406550095296914934008856624572686734844202242909859085373233075098570564381979432813220475348031551316609783516507885602607823946402033700207343266155012122083667272604669981348566909997083175990086396912511208287037349771015599804293908613925448486819358887427251404018033335022249321957120243974490564202124412598898652649980731435886271993823095170299493619789365146648608954940967271718986261890691798250676785735516807321088591970288493052036519364166776680994574777006735885045418992918910773184096116566044383202120078741517579530688133819213399049586771266194494827646246268782257640825853016705792995624041771072651373475436320349520875569597059133442471518162125961942226794459185676303821902157364774195174524810431936430067111260958764750468861134467600860173967001154325880006777733990971681137525982081395568118300552262661046641183554236255382846842697686898631138296076952667011974660817828781781523849657248858721356597497856232081111357287776405275699584310756899282598196745104773521204616022969761689716289686774551330278886671910497376774565721433475036440884237912760097444052047328468294680509001416548479948796261762270281077575613818092409718808662508661000825202195300417589576145926445901758983272844501078032027915214351205064820583544366682056826277257488977547135585807196719107463532482917537751270325261711725253306833083357730678482949876532138001502185520988593669900791128415170046115843339114132449030842241085782299572921232915087101967656773022519354010866376534839506538979099330807667238503481274982410944767992808063823531806852558512960649403389057643503542095679115332113932875532453789145213662301587541836746555011156707845449291296004210471607012771429970900364060350731439382052186738380858476424675362468862500394930621741719415044849985487821276730797485372431250177138751451470150860709853265888559905305688237836966223121033431329591358964719111040331062312271215211114591909999633377422565607341771034447232431943748201507203901127980551659269691921571692700262038037607292409442678775001960834247282345623948954306029929225863965238331463852235396019645731221090067260630291900172377452256468311432329911174743651606894715125709049163051385824162490541596928929426609568361503073642609844202225047239616846840343954357787106396497416830071649664593743293013664264584410035842175371246636170136300891174261328374509965732946276286432355244271751440852635424533672703952065788741975260475990372541171539986884749678995603256449340858374625202263700769905913152746398445188383769326627785252145039837981274207544308503967964479268125497856417933722768540310521101940365647268567161489036213707174287043437165915228919530885739159521142847568593421054473227210946937586534576240852597981822918463392708029383264727840291990385940651234432184193071228253499055750716497904105358780781655793797572140359090342822885182423959552986300671803756508196900489264170421094470267878889501844192461387064452892724373074282420474331518306202454872239111082624135951738857517846238358535441096913979410721030709271628807240940405437443592968461430899386707415202340589288745126617665411735643999968603543800617561538239621400526437115217416416960780846520028103914546950535642647780839024085025428344535805838513109744172577330249480624427609750084516686423177276192713124956116689670009086454176547502623886919915618269394870047867795332621210604112935750232482265181687409086818093432258105911661914331203379940037956968159039898012085795756539814027399382869844551322290161721427089024243221638284417910482500605479198237514298083921383698979546719154457248943265127164366712535810052500178618744838197907660280169926204512622363488856328768437577004453308795171096456376089504419538399758028687822297057563338335055578152133294996610502548537472300287027544407941510404700547089326018760567997408222137138660905989010539032946154075595388261150591951981185239138315225352493562164651001419401741120463789325063414822590096524926677248238924727265129743125742133697401628847909810872550409819037747475435104406609283005544208353705628581167244494606302894705704489452392834963638862610241121215930549649350361045191522973239195704017955943774879947089901235919841612465032809644378260463872735160737893729493503654973418641487917536884693976819852610117681900030749442166994557154799341677418801146971375314323392083915325557249521503133038258294312288182430731520085348292401757645609768602453241366632108782056233961754851177329768086844012298362248978274027204629144065220886425137992697145474042385561052080690774633859850558378124062209931486976013439601668382366913223103448756585533562389008932900416912442707292179434713270297202863781161805116751209484097714394750397927759687757785901667332841752225562429756922399529547523981870220212522010614198284906081358369471293970940637760157872795142127617150182900668986370399309860635290863660313180090463245991084067022219155012232803678861579929634386079934450246421390854652010946527115991575164470634553847425349083006156039867931097156435028950318814943498898111836246584629050083496465388271786522448321829210361149594761440930511061784568975890961897979588277951204785806442413558655630817740615367723790754612723758398387608610443944620054823613291789752390946007837988108829708150034640604178931721014477344697030547790381623715695660120944608493066192838711654602155906055247661098608272669941058892731398300277236502305152216455330669903897060352957939728885999257852207899181471474120067557507810035193140825120217931613702584951903542217834677256229952130587586667469079277832205876559302111752460119854768512794076851017913904577306623263329012755866189550675979447852001110560324962851629106845315654235190949352526902828329747688204509995069066608113868703851168231797650115988550716318887113377749499747800737571410248645211823628939717068573333171622514477406042110433617057498484628576327761907730221457312603068578428424161488574445703708004390690931274594024527600253391036480141979120153851904404997261663922346877907146387867185206018899085209680545265575130362947663764791003159854548598649035756038643146246799712151583437752198264318070915985257961375400914736116491438216265107591133252703363983955707613829928715131321001589053602773524713458966446438618396875774105137661397931086081987551711196981186500166642132844660869913228254224185439621921034440066445852063804412995974658457833011808349202723736101181602247096055229191534091816678252277703414127614078583628977937862691188110949403599927220058317645331568175969587317497373927930010595699737248148331854447493752155839555955478307050894549198553653140008969533770964464101022096872016514467379278326351504242394314830791695889816742704554282487023441247817240847946946632872668722205152749037004658559692953844768440906217972451849495829753964068635480432466981707502482516873966019182686671821033980373372623911933623474286097755555137797170388446963704116215986556229980987329806625354627335695801724114864840337184437045859280983327822442422208455631454099265389843517893772875297817597734660087637809165478783535160913451179378741311107676834189904590117480475190863371231048633384656197449727982513754192402109035403175100200527782914641486765289041088528090228863181422911806780905816375735359964154959419192639868655817303042953241760242259615942849220187936280130641303307490251562409222002891022738910556400837197843626736345552143956516964940193582707675435761754330657266082353016700428857524224807232555254017140009135912525232378551253383337238213765200182862931249438333710267737392878067999175627293222566553592847876139050006374367452950877727667129693532026429027140818693864322638416102044519228136916403281643134982984802632286751788794746135636796702124662022851737849507325159894567052824484074442279005124241446287046685020748082192210433218940906114743667208313341026045940115541334209209392713119136455596360441622767094883322742390660475528001197247258629980872689998808326313741347465737454700043482910705179015068549846915476850476993592063082218406847589608344556723242877508228861328855772834795586210787104613370047344975541314851102202937033138509565562663741984192856990694767510051934609799228869946314267873240935944328222783087022142813746345541096119425601748333125203798206686709653183752728785553704353879570490450246950833169241226068381112144360101398502632319963983513874815001380672967754251621261190307994030591729639241710232849919271977711664073650302867457192555825943185147501858707232499830564865925634916561860337234137487017489743834675303945328951181279861835344833626603066223586721575658382758856187767530911947700855356177458803495377956998224830169316939962315737077373385283488537607117821988911612947898483915695213954724271750261577100927486485466899779621052409841932197192622869812887861966607645261570702666437539365263005875124687857141793468647435237102052202953369784061482264282807738287524731362990062948559764666397408611858954307120894446173406876306955723527296100739080570390533561798334459798144621433150665752544224292247250241286373963380221051480863732672953669133869897925351253029913241328341713248448638201630845449700662698631244681743231021087453780405831836899011098980169542456845778159941443324047555419042105013307813154394223486376740305822167594080880405486803373108498706724804133179788827586291940584065227797685439281643181162822740763341064012234632986144568907335601923342849414536904525995564005334530550768027550090132036830417942156740764798239987335366158264947964986288890304651823135220380814002477456337881751743008236373462778069235929493788499889210116945528432593193340130809522647434497640571928840153527188201884515383278888005131204695369777276852658302590929143278707677819026626149193742905853910864905497907670596794932354403915790010542076154806048273527400418943560368626548131472414538037584301737125731999714872695295820473184466439311929084872935482041717103957760718211113288009088149783975380614110968759183682128776518284357635007524389627900209616869049509872307047765430117521534500282901026362249406087891918493243789520807699669250615333710541485430413389287425794511046169604732775293469513579683659690332407485560254431026690468820744132154333682050998443882454924118036391851495648132719190696539554275927208760471634157612299418744604273831211932874290395220609653916909508281046050355426461374582988828986827817198767706368186699806042869031577724122939379815210881753981212110986747563702910316361421566019141129058091610156592681300664993844561998312137334693957174109366418805641574030704320062910157040354425839325371518843037703966367824359008906551783983265080020200594714795413321213069332553239021050987211565352964169671752176551372652976529360784579117357748808789056724139873925590663389573230364115212068290587572541967120724214793510732657795495506317945707210418186585970571566977504952652352224256205222971250229631320050449832307744036698112444746278853630094490605952538993016484969544537535132273853554908003784829942944364071744195369092587981470424106283868007346681991053248458298636070312015837455006924470950150247636512134466723383948326561907136894255927969750824503767263313163171143009025625064508552939988537341287248277080491294541227682444775498098363319606223394463468147872265770140424920917056577107072141572825241533601766914114432357001729113952646348055550490189472958367274729073516136668534166796396715638319685016441124831041641479423769241216063258391106881515120820062366314749372233446873474558845012578967129705707545861456032154928823473234737015032758377063529656018266470244169551081743935287565240150145492955020031908909876423758725409617936896652614350993758726094929778486156863914620130303544542430231923538070452924563948841778667732282764651575513730823664222473790946554778340212268614165986804934749625406576881179088110943069068983962913160063812750708161769998693063225963689738553607999526775298528740061943465503384255166782849838070922802285193642381752505118083103966726673711867280205490210297783974445557241458964526782764172067236076135249564296934656989222859116074600989142982256869986303409789783909137994448897646410073662039751026644802382693805017071757587153112863445148498212920517482385760956594209963121946627370495058420353250808085285684602451735446251183620625406553442397564104867702917787733659548747067662988877889756183161816260050014698112549082625876370061319866370981932073154634822256810171315289877843072621274854948433643160305888375407678801709799362088539928951300338797826344621747839172071644358903525830592623216218629784906045852376063158506161804892525072424933772275167115009616460076513342717196937673518937400439832091490952130983597758284476429411709727639187379003094570486851283691439180096525742070464527409775459766361689098660910263236421318821003023469034513119245237054994905815358941799343821684823338440548188761937928752790462715945281347810187140505069563813125978734582453373633088233417545561959379494782075439550437381228361054625084959238916770225482194848413945390076276786268541911170175847413090063821634602090679484389725122632134885179152428663335081930352431323835864974082984554773751352824943857882968605138005280306929159560890194551206467207277991448883776875214782655603583495676055612121353932682122161622468010208715141344622597603453220724019804387056516132892136061385191128628559351196924537299058349796560129427052452320327241570077469523611906339633748240389681447401692031098517430493440327052382722216128109625711909205505392985749449133621020401087788810272029747059268928266453559862656162914051596193731788884219376734711410259102333943040116668529745104555188908312643684471700862269668045762828092107680076857746149753454649238308306307916619877924270141974007316335014295352001590164480395521362363485100720753036712829929198510010594812165318327610732139881410642748780885453424296819228197558477693245451297339495036268085855818702106970505409219375558124173052122690758859384306959670300519793561182017077604688292450216259350688480860404404864860805874730639994213550957635865451115871924217355973348427232608152293784445143354838597672591104876946397435485319418362948921223991386704515362526538193034324078991188999467199137847348030640266293653863855394748595880352778809900661817080222389405077619129250005506459251217919310024673613237849652552051619052094640562100698139727485967894596220231607028598834440140222116837677443388187811758272751395879987415914039963729663359864846739566952742230710134699482856295880406064444475794197856934486926242950881962078292477958894728415658948957574238738346048574272500009621067829000834681546859129040790771367119641628213871913761348172382444817834522745333027450401004948755401802490022274549061849182626983103242084915222281191026165203690909230040922892808992169812575331977867369641896481806588966093767810431175730446236713103269275177058168114455649996647635482276580715644895347761967166772238944841265813057125731964254217301038712517913668751530184286128920711342626971805194959962082997548716546697477730594730165379401126672692802310744669375172460538990275461993355879298207915960081714919551544983711973045798675188313888996824340554359753159990275230777216989674945521925996784045893820616050673118662681230429560200680848821732492206481385320108478508781778745522398131220867720008780488786218370076156846677360228062804692220556861422015865762674994091455614251304530721236145837204509566391311568625459036186900610269139456156556938913800596577351042662919614743255508713585506420558540623014553648471199139184815924633284435971366528217092719793268922274689167728580723727786467200219638929346186308856587129006299899417443160504448291187287833195268331554411492809601119962229119006567724026388656998594711844514829230951513869307812070661749256723450922338434470046231541642459139000427271747920679932164332358911291389436216777255822898350772568858631376405123407139029969485835071662800554977177966643484866947406813228518582091051424003732507277132751468166257733621470697199613870755990998846757595003838322328698398330205907741174184549782111455304164414709594005264100334053718421338370458463898208797795351682058685883775798204816762861837734635837095672453200034289358148265880801694247859902154522093354985882910899851202578775174051578880091474416808202823769609319909837125334924349659442221717025071137674997687812879993172685313275222189426331297262197559918213318173212905305182384097818642560222708302741766090230612505073529185537097201012778871239118351551087789736784968851934615193448095624831483647370934448266845028133170306653487297532079960319997808333219269880800059754415752023764700217365837716441962535717262251063845651997139222255199711845830902172598987637290408237795875093285368428402615928997620116015112692370966846604078360074763446087051224108471857801185493191137055754931964535422532499059736892553201656289892502846514059225871112997990361179531847533572007514552578642886898908761279785583619626839764226834996330454741682750904285149847784241579785412724185542647486323404198543733778087789779180532838772648662486018817202590465645264551832023858340747853522459104756520115664759544187845868258787792788757291438270904056298940535528828375356134489031861068194852419334965688167292718276631563042829275864330279091141434133670282053550201953005277689487074838340413528033647244667975963729801325476220085763291027619254358707614771796128779178703341263945764426859394321108776741426305606424997377170411220522810963439520990175560219390777494695778616465447800765344328805381025356553606455230215256570739719292479334277381433906196357965265973328386318445742973623944591031116602831565165589469493485854324451927651240220045779410162982580373952390197178222446324919296401145000954579861121972713596858914921847897093409293387995917969484538539343407182990297475327121346976549365189542709758584318760766391417110912379934510882730969471892473446914764821904333744432365955683789659229947644897072654214405295547633309222479084338973020288253974759283149740495366207850526230156633408736355298011799577317845463760657486712924201379616771203903533766588716975260957799185923446728675291217888413848487084758735872654276570949042666245886134373565480498954312324653114248960760953966834956993300646234268900714459369218944834077577147345064879004526504683319433645469520583505522870223339462501660177050154925758746751545256944783117817790251362472547574720531357775890085741867778785146649787190602616072169057833687624588003835446553358818954370632251905298309978735059782870350393053076274183400391677760805300804083400342528670154103249969993931417428747039947070356450825147133369923158759961286442318154620479483137946202523860561678555471234308556006828632086340209220211073931295789179026341100760120233900999236039566946707004020705734573784078367298997672965628865968346417171306925647529467446400403795650727665140443509297506760411129523112354679242345293139344320880106494932809386204453012116508245716708825000412662192628202316081669847793783270236402599874805697290958366378303617151846013445944654063467299471304935459015857654319135890477822967709478277609483040083808096398843705658327171429697814109291451933363500647553226005405769254207946945197007663286305893881300315036242858531743880328085620172536008024175272621532414027792083295801040339584332152922053219811425920855776558216064996245752816606277933262055434453240632135153010425082690958010433268094434682086771693732037046903564528964300330773986315334829258399371822048798147878775615227972513131292053661822124141903003667305245599997475149836874486344616520493325165752211449915175485892226605619813256444796673055500015239089806447243757200443209487931179238674522170037772369169544383695183989314071206824106815125823196533346446848971160216216492600454226805645407663418487749022267731855907875307910016642036851610429137568524169538900492018696265889607214243044960300464965455438872017848891921027779787499002706999862393794408774524812904477793641640754520026196544668799125036434352447657082578601840068192769764098871760434871916466538404853881464819643799748243781639950795686740517546628189453615025805729745023728764576753103528104304408807941575645471067554839151653549688894152828044040120237600769634754146957672782673075864908081586065066226817376095130436068607688733825427238119488129369700016862911120074903533264679359044142449503677123363718225635217851037948122480956143266035170712684475705651134645295739708508414251994018042166982939534432549951291973682896893735051752885927571915189905792163247173226488335053196621734696898000692086033985222103205657124216219275710170938127522807108626390807465054007555501620396426095292159876864518823983634302304505326100241428955220567805077941004768219401580648876894067872009602597617405519387070468978796989318985008866910485173786639410460596422733602278084163461587661127512336496931427797971907893066459608028173213264388989400326790019831903165892551539701685883095227412264607861573445155654803250652723650532995407130834396944449290813406781578695878838497287994013609870241611356471955446146441384933578094244013168478821595080605833668658565161236431843907884962322144490051948678966460269674108976916037324493324582635932282993485720274511652545454967374910667519148499046938904293986468701301944640917687632152165789981588440431832990204427336635307815733005785216607257943228881216007858213332825990920864216099973852136621047405915412627720240033485976312475069025598877218406014260418750085807346903076033536183401759076555833956462108018844600065108813157488951854667632524862344555885639308822012064411273581309236276388152713721746120149456515413308775083451629257628986862545632209749186639031598473958241999776344746764297711328423185520469253595582125689120879492975600998265935947886303253051369196799537295205335127714825154472005667602455689237325828491785997015256549776816988338146648369682555970764709784042116976760655414138230582506490208723662217888860163265240527365427719030715215304877601367900928106849636252532980423007091941576001766805730118211464311823489341672225495159023283559038168146858345754131687296693040119669925407363145576214429518374989649088950652198806716126805226631932005855913483165789060669961199719266225619471242760556481999863718344860857455306433531716566517770755085531033229158646895113914565952776813047034833812207110592405811938536722017996765307376732297871503155642010316528786560271009225658379460548353589627447079642223664250225826029388021010551265787934628331707062475221536882759638666187784327758731600317482524972276440958324079261158120916918882864482707376075133118920089801745952612399243340808109848721811400370303539085776252128746514951108560876825019969821272973626017834694248928665849703531144673555088475331389646844922827653040290703054461821749875695424085609178914375685691123652078454328996565387781643710920561503163481892830450497689994067001826569988427154790086694898468756128584218403742207364133827757891711167473457749137714682128556641010610619020500911623836578945924105666003602661410445222061044377888161387629197665630009171291107753294281305350430465340948870455816897965308775750728033420823503698196239270442664886241731358199989950057694035526344115971740990188097045274176449526894409425302555525275480857759515955499194480381470206539178644534621475725090209691010204137743857121649107200429583993494769930025935752559336017079089028611649783480063218423035445102137191846698635332475765214509438898743106800367266270691194511999482946871122157265621389774942432656100818916724048463908567794491681300432519939613759744368698164595299514078848743058166119423480047519191179717447923333081517406059479840414429559106681418296006938120448802265335682275207590710821210954115283867720226703684510670364244251655093338361880876431182482515081897555870729641727552838723516296957950734229942426906826297801859380518108747556573777045442332720539659917051484025961036879872416177406464759399428459555456753813322890126385175343161027471505366966380431429323525902491092809930927686684576287595934823591003362086252492304893049966890642038274055422589852287609066592465176578649677413800966902659963013723742748809800449731239222723695637749854756615073346059319025363583257897897801089784678782509059754746245858534715519976902013799096594705030737016631871502358817593640941829213316386564627459107347914691712220559961537824633387406844299898176116331147619605485935113756256428590607660053984818210743792496691699108997464716162544101534543257370333468916834522053964124357450940925796444380312630615800777475533203249054496700795072538785106411895145717795037433116276836398783366528062412593616739825656903653143431798582998870294883942254720998452292815378231887225398355231286405056628144060134128522078276003899082027781201913061750394721044728464035409679631001501213934799315585704000897755684533509670841316112863304061277924709108451403483087194980150491751957518015937263632669314457501222469960549868131356621673688568878376716633482447987620499804320832402979686887318817411420391855896540588227341453662716757440766441383426363735928435941681684970777715353371889015019345566497256843661087600134250851645467987135668897694108525992070396364760711402902281432669554190571664788444152501347751014863337100775939269489417053733657406840596058541256731009278915615124500611962253450426221190826619757850020092037336228134894026063602821998755032459050976749824446051947287587267235810583913346413346551521027964804636119240315222893977112024316955835412346897759777411097136594298550619343399663748929630716288228182888676291765844636001696173073772317744314652692458165815505220065245579808543035096147621697357712250943931903600996828530026754617616705858076487972447140632984041824635434980447074138557770482524463114399527790929157585732600463281916248119738073136582135149404720539464291702858244309905845388758221795348822877589859340594934638529080797627808041027858757663349626543454762807372295774200757304640361465669202596650843188277528562417586745706613888816156955992728209493392940590274118315175015458327286665219465061001677289443780995650886400043995066099223435125567609975933257554554152536716943865481953487793164144887332226635147739677636264899025183722711231116230831557676603521998535366397746605498567055586867982443822986989044506099113233410584614652930164666024394576374460250725239785236337840223454080211421178297897757817817397308312230820969276774612316466095739416717365265941492776673924358827941504188589633849725759218058946356324171664022639922911078959786492719647604734390829801175246805305208840511094774999718472369800001987142388403368223482023290242468667186430568860456688291309386191460615141129145024088944918137898228777725224342850969696903938154894037783918813746852639513702145808561176079711519217560521684634242657653698888999420870821426944727025167785977887538333477781019754901526235858063322536171177901252725067273236539900793311185789825780021295439823074679203697444814117853322516481332341520703596080658277397153696352493637200450450477399783488555201531506839073835248353670726799721519676151943083154915938841714215704959704520200794396685101234293014999251556806054834436142169446992777532072019847803512068209673819254511797085743788593097119962688067701140076724051675144408776760501434928806880104314409163472773134207351990543980460401691414478030073491054580464633546636453523370530632204241438285271499316857789248881685803388833354409740676850015279569936201715241011232789652218345730631839796396666077341539925533448910810198305591143914413263703856759736781313346518656203841325249187476509059612439533722024895014142007330095556032980930481265468526733375608989002489690141072511502432825508335232393502306749639172887829380806822075758456264985035165135184165751987937460935339579022445140530688429443597217378501081441456163989155159793580195603980651806145302086574261201777776992732665871783209591100343685352930006820630107154862556626564928807444811715766243145923927795911481215173321228590269033206983869348782583833697480452817100735253504726074515667863376438164641086376580474150904523631933304468265499777111634376971356379755771497541364910664098113894002797716788017199363255510231144273515141460014574036774157375443588490517021000004299878013918571488783734882586693062408937429496939238467282695500719954683454603455526672796551900126338826697904042845519369930628217844602607151344326126795881206550248528899391243966842860793744888144508107255521369976329837530649751633746210106240053234004956439842429270544886530270615082534286211722723358401290422584170567777018127136102195366984084756003598890807045465395585254036308885383834142759118962385900333637393157865915472588772738118972815104102694501816529379421467565858760488280962399826140272358366648681905788428579256482232511825449437441467377288342438698556750473489719932548799396440006968161884597520123461993546605497986997883390173102345063865501294073809393137966249993456384770651637350246232115256356726218513522583865148142768696648822243005595331966342565806809685003939578236158010980443440154344580466991522524657594475117095665828279685492390090052072190960648806533132566001138214000905705407769462002189524773023375334704082014392132935569523347273316256249740374560118355240418085486226848406733851080577482799728155482097759427072276424519358060204733501013612581799948353842410371408172397076056477204693322547069231987890401504852827072813616002394866627603697133918351059164415855796540336577585287554610239237701777451520347292724353167272029035331297530311431310291607164761925052598558971582041199009135291863843119161283812986891988014276991773667860770514057545202057731026557885691157421829838050467590282666070300557821313024631473026934243403592590218712658804369721944585553398453876209538019918578615173120814254264824025722578477147802977716259743810037518351124165854897139528092092808142078839007035617218698379515519942380581854250651849948610803589084533815755158338931293077481253299008715009712620953672411403166614147936041577012819490682398356992186264322318361715454455703755146878763820761428216577144156542883801888619061576952994073651599413126818739663839232208027939064372764330430275038543516271153779254223714056202586376698293303761817330106824468914622288381945510042206417409188605022587768372213883829208704303920908613610075945623660693367193384767634422184136382743579097959260118267656196227804182570208189470651328361961349256916191631284094162925795729901659209550246839393223452475311092370996011938044645749097208537510813296137872351330200806402386090041771629173514358350041135083425563823255361560219201972605974192154079346467231169389200652621606496062032955649060599448962328079367121288215982736371415593818136496250410834267200306998796589995294905717617434119717047375425618392945561191406012077067285880091117299015442652711236796064344931327787244085778441910297635092657739741580640777664157359883829171076551210818681311422026514448695602229899727057590818067864058904736190127432572740859103082550060908606661576293591901532020666643430292983731404941120074465088784750444888502610776164242521257275651127322114432220497503187086875210223763263185424656112454413379648995182407776593483398796761013927190732995003234148650952116337752309410251648524538729653215020407501026416725914835711224961302500485665659681467168043414437708493568302968998809978261137319017465152627970869282607943726849231732507678195762600070823191488179724635575036806611288656344891518623166462464289926979744387687993088050843667328122967647606857681677984532666959511634494791216368670444076951584560916217582766528432950316822401306175872638557172294923763033901513983476000638598247823074584111927494382273360715638322456024565004360801412613229337663014162370559508472366952943967168331141524914005194287736744668602995792427361705465943325569379227669806361974078611631780864511545580050873312567361005495268769396286510501733336079011907460682972775733071408230011572701032596732222160275391669096151390929581867805683094317445679529094146094078649979303444359256852804946779708066142717705751631941489896033113034357215448881322462445689213440373021802218803283309038220353599582209214702808873187338384823625689896691052965676283471244132026024695483681698130546525284015584407729719200128725568174799779435264235374982683864364195797294426441994828836554887121486144229058564045212472915716934375375935390293170089697695342209113860082132759340715618056899795803897209443585659833962065787556950088988488872224298522713878860957292138076520337495919736221668766435358913494323992629349762556441061351605819654629087267044862701077308483498477917952710739421005320521311711536985573846106982658380009085798493202044762147412213664978732673919129076719089106919131595115070926577311849794309155794647635929604041776365625680481140729258118742400713893309696946430892282719043453813513882792965789906317009874611368520240079661227713266941585763835966089544381987551042190025841870057666055140899496838832442149080393173446800469883783425571154766902896989842506555359362761491338738595143763907088668948957835998994737024234936055515997327385583365581060545343058361265254308835478552381746213572398402019572691318831162256146042177070443168365386239893991782815605811065093281465796745342250490938575385619970915796498268398367318768863925668220471824184590118374094945029370181370985315509723986577269741554543428799754167073476897077774450785592385574078528341958943816180331361829962781975613514837716181491693186669199378934040025734062480764450306050604785148356395089021264910126285068648730368214541080349240729320263866996101423108654409802911645677390299699772956716990658430908753350357235096603592641293423675191324246790123971025507493600743537990475502493072816899481066557039917952371936795718191321419891179975041551690313896965757111062807125494941116038452951568360876290690955488519030904271914554722112207378878421871865158865655619539049401129150400046156779163045295610651059477962006014308723495273536508197174447869116856921387577539151946984851152414014391424957432800795310536811324212697782984079370013889347565752184586505726753501490313710628375495080142922954134419653210973405085395739910602762104278742155403643049296399569937798195419427788151042696090380680724344839343365673190528552491308227434743838812136918013605004737940411429870609660900336108051317543237021003683785478370055012289262865670363816064195379680284806984778152490370889814681591005000649021948987166386185550996423293265141990230997921084916081867710563805283904356537759073519911574464727142247174737410916000930640786826308262845255461054222668842441543611100349143993180071061157470155388488808336999464963133840510751054041976505230471107343098139583553318017918559173421763554855987226927102050326359244991091101097479940577248548575306115290522167666747451909197633439582435219681182873049514648831230131056928723535756416350877082084684182923577504085166483172653181853568776009042245658083902971373034871699341851171716020494309433956852789175445182353574886755543722426114998393822145925953417828860700439806830267519377708620947984394974236673422847456850345108897550065239330128209941547782697938618028877749389659868983822575755390215322164437897847893386952011709461122810048757391964711086215383831596832039879807368310101477376992827743035535533836546695635323641971854123961959625215367621614518435696593453728739950731865872184416427130959549160576071209336783647128278600565304736334613279248843919215588052430693806098584251968858793618268463652680742541747593373301893994582930172364441408102380941745113495715985867358741760920613689859487008312302893066729458463921157562435168477446379985143165317288226977623223591076661443073842131851995013676985510455236374200846946720902560311988995916885237067017618519462223475427544144695075821533876667543033707260725872204144044312408125131299609999246406386289555409193102423708155612400420952714196264223762180479267770324678288082573230706095192358374701889552409111133315877657260351847193767306895197616325837005249925764883813578066582245767802208446647158979428841165242722871385919922924337462977275385510621051871824812774434455371285216380639737979657239284300070418184492270837419218717656224415373696989387649515925022007159618280892664818293210487981003934667843713446553859966343992951618006511198265119099544853758554016477454284117196650019405488179182078166123131619237818047287239666386454863622381357239969467800263589759482502012392852371709890084239299691884927969811627581677325032455762443168176766651458468753577832229322119900312766591514260347740976849006164803433079015295494030947338870233265049859115030088140779534189854309043961228571860610224470109178617798535662849705498056848043396121884027057460460703159112642804384987716236066955551597345977695712567819987641144102087212761820589225566029828645907857138292895654161400319887688363123454619209332719269457385057656041532514686347007748754628721054823436336199314409818248018550007488077737299839207563427073862257125493132082510094769229018078126394000216444471327412624152230457735056810974690479766306541026970484759136234834402874399814030894123386620103291943598943988233950836625905769076550917996672443115931403275536167475959562292467223387940909712404315007067859753268199711950376485864444858573896902903825919180996318806861171211544663154168945483272821874687630895609650170268650034773702485528757328305559769186414489415338273555633232496293713908858289935351516549373415477658745236029100999959163263767761070640746519603982806194774973991212487878569731530872301393431054137524327170937932292076164394295133492915221973939570149927069686271762398514111169971336001680736172714193733756229731576222331551328936165352384441038861053319834124322661327041776880074341507450829625837715967448213533492997588628357423151064587236012263444310207295045450946693146310773121908334897889162144294042378255909212060190785233408103128548950325011308983230555023348790118789848470170415322323375976355100558554936541430966942698804053946967959959245938862823117068146637793496259317616900891403278763829656318740036795899453830936766485985783952048306796304446571002339323311371073357948781236401652775734235537185366872649671348846015977256026124236394053822740864063808489409092505038892938059691118637728360001542489902839784302555043553891663407683487434308978776418948426866417155771535125987724876802589320902970268816448095322791652208572764100581496111221276530549491540895110074450384892150746397539920222643640013083528611313224349148709818889065638736719332899444501668451861275994132824002813825935940922179327558511039426415806204704422803560393929954080464235744270403627407035731826788520752802637348991091586384772353605852219226299835833966397861191765784648412783711780890016920682830536924483496439022746363956870589560271896096556067540514513201084767236800193708121920759317030837031018555011598620598247914599165527246285857477599445400869986590516392330042847051639794442170294985992897758824250108727276915471522324493074212557643081742686545602139535483843409897057710200947346427700918825019195580841578634760589941122347433261635463472997376292689137138172985521387771356926740410845195692310514235975270182531015243394450194840812694197778877939462200371693724616167038308489673212178516800285957910244590370252081487208666725546139061915360654689712045888437540054938222193510519273888430379822567065138743846045350449400552081533120923831136770239726592518904642338359513946891467604965249472676520026644723268142425913233192950233542405308292205823342028778198550757166272307072275798990744722336595641207548593270295015896990586922195293957405616846255467969446234951238404636099888989578477017327888379208577815583268898817350819866410708371549467280217051582006827084825740898422348057504459469452887289255972243295158305134826704389201897724002288830959575247573391642245517997634302779064920130784147930298933284066464792680489801255383157716221465000147596156660498462407328063147122757538999293761359002228906821829133562044232397826089434623338800659945974958697005395137662739815152102889838369563972366318855645292698540779886676296072951190070742280188439732046377396621061924318111832382141476000813464060435311722952338639174585302249095390234017213341206122511878118995348645594534855590598969355881407766182486584081337598783146982171593475541569962864639264806185114514832413538258565699382754208187505892199914195918660882832776373653020485524141522122966931437848924498716139637461900443626480898190349129810887583339336700351064512914456555005059416829933464665346025554733912308117739300988364692938312238778266924134362411116237644643462240324434375848531915063199612496341386146647872356411152610918695033749827326265625842267298136237582321752098711711606724591714456288459627018605949588496550221191619176427942140159623590751062208767922488509756206685687015277675036044978903023204792485253597974465464252456666847547538845505671772072403425518061532084168705845154019109369514383389051240030157194778317965593180664589886752261218125193448829196753740979428060104757221051266261964018502056257958889664633160257828025981461539121394891785791565632345676755418330210027726962932778827485385256366070568968345725328016755445246330473644257690173551958245832595639274812195323360222798046115653910222612384055567334337668001206209702903281472607754243602315601495684568551569988927892191982343942953307683614901844766258186207524248705918544514196148783020978008273739191746140214643907745850818002543598605290644738804321202625643147222582605275483733186646371295073707282339633023812060172271193160394067288808703969671426710531131653979428647147182564949447702888657719070949957888043016899441190685741757974586582738996865402690145710436044046665749062402413154329075836822930025409313385862599549487073215074907387094196801491161975405732033360681972133899332352277343730533671265367301993421244508567336954343132275000278555100820203405415715751538644134763647646193528854404072132733159794123024099700659649677216281016228009141795765421246020390888853567996477303308356549990260646072932575795925937121156199584952479273198765764800549064399832316555050291448167509270152482592871575676882420095861724261672506410772709996328660030895098818505008777096746427833559551160189900802450895061488794348020212504866962769758403857647423842039128012846229817998963110946891950527321912966710755479151773179262273101277317239599634182047661936975690291292539534187983844631293807284555867482386792125461468185567068666632409395425729574828764127909310529721804309673031640683529568813638124840460838271487217170037967047823189235432774798365904809989500997149240339046414509088414639045006730743268226056268460172979839787080713482583840676211956781063866947386152819230380531749318415461202084364272010083899267948894560786888561832132233956063923497637513817493404795143123574101532111537264209662065761739331078771744099649230701476552804416013737497602847824720587646754742553068873162635389616868118599321501833164670231775023694771199184376002828224089002219173908677361992761852631636688994380695967365939187482862346545498129625254923013959298231052207790068287371805014555090100026836848679898709126369414612889763558577094602429890079712483235756998737330683745421804520373575020628000836145717479084275927534161019397536303871199791481908795203416161649175822082689064611852328998719760768663468990066117739514560977462084738514381215283574633125933520779985451770579666976329244585112717638850531635944018636372673672444714851885117946057445394613737797592369454889036418339484223213458468998551148749602153716866365681581609587678157771102587461564251738763433913600305419836164706334033447503590832145417025278978314382546570706512804938835208369803648881065579183203817881552446011099358025616688107761477530315392234924937767350038640073725264301175738537339705490406816440185417621637181577683596447148509246797575139007503908752365084288185292036531589296263087043094057237742290760203636007675708582817159480451633385685221357151387322048395915869141352146759202631820403490141102326430527779223354535732685301976494979950603804955322320448242662366916750402662196930620407726610032183498537645795055078907428584893772738846539596001264224574991561973844811552675784491024370534133176479320506249020787930364178972749043513989103030009311563219192487731275588625441044412725223842384233747422235594729536249530217421403846256678470134227497190119530038456459495282258071246092257618771466189133880015748929176596819935184364665775210950705527999100560935850803464644908468872791860689582451223128875902215561333297080150818766263148236784962874560681033178567961125851832164517029986197714290212832217205067287130292563991926217504180696871791515445221972153029021160575904104105246182725183325006560175188214341168642103482811191835376986083557082535039420792921280079440329933016469553615434782911212816745983954283130982370799655402078586696884406797366187508959669667796355865244222821029070866097613747905542746298491699646285954302345488392086886374739973343953935128638750171621103895031846356759424098606667067256324353301525524521174548052923735258867924957207436302271026522829040253633624948861965723731444575339370366361052403182088301313997685065579787323507604861707006500359753763364106598905608155237413318029743663199045777550147615060713662789033518500753251522115718727841342492031517988388114745169295874041257467112285192514867359258914727675995049283194287189798217368556150547962721119178629945311242962125084233264074045268534845002404668232058347947431631895237895141918989634586859063435283770407314842262183702835012241597384394101376778703426566524822493641793385156166782148163158016342135153236267176815062895406492058979117133513613963805070151891344468584721938998351567180643379513637176253281236437249756965835399071754894287186347521845108576050917697928500124586550446222770290841814112055195095666632770049244986696381387286161449870508420043165814897524967367029616153274802019522895892065158168094121939479255067852367600917393138015220818025499104000376044285552886582256309896477826699471029980586570438238854602220345915266266035978406610225013277781437110533878127648094543783833396426826748675372319372546921288984777664780279201823866570643749008410689389782069243485000265465765279040432376368307874377383825072618223673452711147894185266913444371755949753246642533656799155590754775603080171514519342686580394459723945653248801485661407421123143121291849395070684427577049744286136683635568107833523396462986089246026386617305018305565918951146457269166427754266888053907136354495015945136189054788477654597875326705881417308556153610907436430210492322731770470501065885862009099776673217936258641046717266875101244192216909084803689062380276561514022723378175697502498610909153120875736919532568364645652901810454653310921892983992887326132271337634039427408547187564159560663495983042875093930932613439168660666149111475134235207636393025735421725128362031232199627940837227224469133142173520801403248961222284490102752934093438728124024324062674772606418496269978178272521810026298112196500213452504480386017471958623230476401870889135447349646053776759712031901843464689320634672093534431271785312210638548047974502452556043859605213757543513550230454535321568508348146526676355347879816795470572021619599818925646726219400808067645093247153114359555287670968073912810232937163156925635602477060057067429094980496056822326193268388334654963513300827021184701041135258365463600358786032307341536856935969849478651344274749707430069549998497067638257037836781021912042857515633193741079279229258853635348411488497439761329113420010017124531474698315781828575071956165605109466163970780546356618399308843794208564483450324653802655327912721366718459893675025882564646399505151032540327772007088350279155053975161055251777665490853098849819529972573919607120603026235040779590611825642182958699811714956358661012740154341944870530339126454217259936817825684158269378361270739583307671185881063653642728140965514649190383262097244859874327685296940317374285508786599040577944774925546826747252750490819559490312066482114827017938217664389677038844262408376377255018733351585693032524189469158682273539681175497314280563505879225970891962238721186485842297258235316508254736053975150557801698056505804591356056734396587449712630955993913468496756556488901598269839092740400257664073947055956310850031477009920473836835136293562684098584724130169336349832219640994453015731870375481091976545386871878786192847334304902657911351511876749774235314968167772793099162030968434563906266339830249092137491147069654960376359193844380589501641875454810359382788556196459914587847058588762907498720567894417716162870425892211912601853871622179312354055225755909807887658935086854049313597748877938403115424802642696322838251865237454942143609528262934927572599750833138242228803952193028108675574788361395706532418164999402879160684972639632681597270409737982960866574132126564527400914229502619680380773935025811441665351417302481384425198762989180140267637539934058392020384444756435746388223949683401006032667302039765949558759814730951107573334175059144811141259186557443569362288288176832717269937501119421055096485728288828709109090283792001342065822076201177673240958975455523215596501145147399322652843710692918919441520850676130391914571743704963890034060645830749760987185233477636750658690691014864291710025013068239497458849774952657943841328043243577259219160209337091707435822500535394317516468849000169471379373425495199039671979244077186976595377901008963201171532524135941645970784283748042408827466179617793476664472737636865894067531612435280841861963758056763658056415612318698277282912517517475391527982029486864569234341182571622762844132489407496254984465846481025848169331542159821049163492734680411384311075874585562785526508255135590845875402488428559191652725897896789012116042052690923541672448356393191515935266331159342415094915920767213284103189735595033877371771881595615442285922069214235847515502832095132680790570046600971992715006774920534807696422817754816059553280367867902821578307029407885829393726023177305858648187609387923994778765296189020189024252612714598728430036354059912291904630646332134195440691924832358268102684674179298129629197826712880607723778888571650964116235343499166882234893020896038693682345140394493821796818905218675940977945404762781219329287837764797390846028720456933758499363981513109269725967367560492981214289280033029369861854240957986096357625888341644969406368637606491199663997806161899854031466512531712016771814949780385249290539341524359207084125546706230084629656148479428485231321995369346581809210064422090320480743337255210662049659641735227554765093308516003122676393271671442048860853303282063474284275739988383728896624652708455443792943749331894331479101007843192056690607112616453192095118561750605268149036687103587500868371130298721586344269589495807540750295958974183260619486703157148617649165841633087977850185573116906219118833078375056595529892843844720305765645051650434563369519749800285576523202249213254561896249087398975725416404893056464597176488749587809597043690283992930330531672691945444088984646719376721201403739027877359512381325538323126056535336941381571742305614665539342756524650389696650851281473357939471696602449186724493150567782601868112598426067517486519595085933392593425008891526081574098388131506568054361168980132070664362364628972091919048374422726161858539671919713750929551807317660740743106525579410431749880545368344312535471609378732910157193059806863271154054368461491431682431559837782415457878015425844572050666681506841840267609556852911819191233296145757082132063408685985258762480169084360178362188907134197320469118430883781624934373417575034995392464016806777671541721292885541288069877561797042242401271397220775495818413399622990213699561663462616410169634257476352873365605702987328055619216122772883688059275229431377522676632664283399564350238872313419281989930183800543783618416640071278298734653800647007148875505303805936717325700252636736604446520614805068514246310878332969453385345683157692776666822158552992445758474433851696887844086610957483465869384636567207175736453070321105348717791195631301633817969787563809579438133841985222251867304400135285960151187179483854714199169849860113449108226530287668951629147263838797558784342332242336624821113342365866309757506156615362417187727451768338355626291349334767931555295743815673598763083094785773457650689307384126967600513609801846877367969143226996567753294003181665238630942805123071783995749848639021676617778031555947547818624684331737593382185315335939016866733613360850003235109062862621819806605450470855235714201342273006218035268752092431549173790016358557863425349785114083587525005569833725408869027257385220546828720895431022442461595126903694813909269713287235852888435020435862632296455280605288178770054060810614715356879309215142534759461082932796422209410399613473304277206552989192051208581915365438631226109808305272251871490762046136845000300935114545890691673596175781747080929429188352374607956158724923891070037679791637796450237537220596473586126237365960137972182456412764387664778601348876602935801581501279231727535993201459254588543893796257013238130881450513066825278984236144834508396777571444825737626097088343924305804038395672409547577922515475396499287723412391815689054668694396369704842308245916916456251560245244917429784467829267602604734958818916709601594086591167722763415090814453771723641600203105620617394589597988389605262087504336162142012525731064633863391257176637903671357168349053631649233127496457364705727790559192037236048479993502627212795823144075851988933323365297950881553815806977180197144373777320414600028381550849731517649845040992468844433347391888152283152824404369062678225427963934065317077333820657675599066538209301532634456056999440999655330591242385639391557535630513937890859723519288005426182779100760865804684262158674691148156917595345070314280364610314270933868511342057111065969131936637743344354951305578592491617947251075083315876369427000188924063725634909764574004434308268816224264277310683964690143611359920012807659024798210460139065507614192080530913479700687140778199272472546883286542711642038362155063835390637114673523731446501631774062581069042942644102793040479085598803036940752363465123086544664311416223972875579954567666921041825210622766330395100742948370170895308254170148980897638444884899515610595803785032700777644093344841613489533981222532294391573812151257096101118562755638346993124120647375868932430532792800169063340348320702237404968056476375724168193750386067921800183003345934010722434761991989046633960488616975282033722950579475268018943505053424247275386316574027992913333057136040466670078259648325343590220905455679576594158799256785504579680936809639257155666525758889183031340487299965740198140850643177499271512401132729891483999144185737507625522618702774540002229642603231468976210291467838479060465654324587903872685429774881152710193618949329628942135884344994788496348524641949584865243902253282938377244971331691596225418642116635700144667712221828763999464138697587466276933544127016434829839593208174884629668552212848469532716602044930184671472927584539624940040422671404698667133007060207477739807858564665273212706497931215431248626970429723080236726301124698676548270547278473234592963313687373291073221413858506348973558104489443310300567161163931826929119354904275841734747429810196275041497643661236994079196570689025496242938535083257192671777865401505081388898683863703251090761854474698589667238738616926178381620260286412302376923225350972297709548043101159376223899208573618189357694104900880236317315596721256052108712333810601940504714872794103510424600240087050438597937893362194782675945904921996313657052587727062735247226799856007485454533876260183579792201032107778272381617408408713265316024804083396327809363015782835183409371138702583630401310798857337507969160701762231355052742206543556054878234724634059963729009125018072795651835452583794078575249132733279437117145864802592056018326487046192303282040168506307628760764578912321808766577291953581584292472071001918917524534961695974657348176280171850016644475669970347278851553555022976521003550914156860246399264093491734301674886407530730781137322581326605171393894835432172923751458987518607021089531354789506653293310316490059990189469067799020886711739033437352559475257518489025321817106851873573582355488363595806152252477795530566040272014482602170009865564058639088295221756511675277711940267502952049871559370285490537613934164665397086549673926014381309470729514823763194532844765238995426005397081720464051022885920278912383813823412279779699017268212104871458540150303216751321385322326762182388813199705281812530043709940372622405648931689023194643660437194654931320635480908945590453922628374787268602326812652253610083048674195846601028892512490742196170686924381520541004935305951273711582778660853795225119078439645925970413804234746723166847877168672250844510739219888234299292216680508199753237749633028080881776098504155850316515328064414941904359707090054440801268516282064035411532818349317998579036558754366812240457018473677693119131765200558851296100508376437688852776659320379413171307941793141092700122341925875942738683785961342652408476295692945487379521574269209494277364299054151164190398498491263213485514651271406907559321705194303578312092843564666369670305030573797141219045990428218724110707103589545068573032658809852905899027176343709926782269429434072536127026058717157908109876301397633893489795237827295908378454170003224101829632300143886740702616055669244349170260389030442300750251019472974020596908134637898132473774741324875414201839729190581826599126073063339724019201973290840604270520106523037154966533351504212949816393328465029488788512906465590253701427529793777887642101065057894399580806414276942406332072200732615537520139539800042882823171581439216231879256217372142833739777522292900429227549717480420435650288288551438236458107485728685916865841532576431420318593050088622397368667168465736903289217954787178939809448726898737329501648054843614572543649525885808012449952899955389903696082705819104207686880231884064256489619648434081322480758688462995042741739063865148711100738104241068719349546652666211124929137958452216745042034828912146335339729510750329598999711741937086159770778091970796692156547401633489761063075155252293668300924275248372775273193313525379294755369213883718511762098416297356456759507277093930361842318743943632543468713601974468470415550902555432355321793516877074296023827314068911069340367554932547469612299669850028013544723598368648221243320457425111233998549967580365471102750944115122063021182659160211482525409291452852771877317329123070213407810430931009348650284213794862734435155593651464087587392351214564034786344663586839995280285620344048264947122765181454031985881931502752431939647792690166352087888939986400055459639107671066376722288855073759784731037213472571627613492854929915720895088226007913662373753049375020746198500262820892758056027188220794221439128563038081698137625676032202243360041286362958243136168430296605406666828643988100993015029581671810140124719685655033382593542344532177561853319379281866406358076408472877669209963261870315233420765712432420335354538283481722029907407795163100670008802354535984840198758270810509426392233094134642643841856087654988094648495732028760564899364355666332818147775952900987796095230259368642537184585885512281756529742967034643983386318700228104058861153858258560841858810962824488976326497470028857484528701079563273648717288525251621765899476110573639226773231078193549218939269348637667429193160171670292017572555496614470545102065857019065292184094617448576509344087540913774997067271970230235317581227641631053470704579742144883581381692768590046163832849547661014363910401578008810747949960767413503991796419319468788843166230072242078702957143641622153946333187236078837652537840401024635901653923317683072370951955585848852443775754041904661949800077382076165104617976694375876620254661230907784570432575089298598035535506870273353849561584133734361863687678857664606173006270241829802620704683249382348049556572783236887260962811073408843629914707306493122921835237140293913741012978499992237718598374699093981346730792406754576923652174441655942612700535492517846575909735140309009693690975108775509391867165616615039894355117782312001982402423483870123876273581739670072047576012164571860685430335230883274798959289144823381720082306259107461041713539951211021439122632578700778873713504388757404887753251367129557316163177544554088202217944454301891796164107976510369676234165586994990767307156311426138628433874071063761734161105883958337871584972233675298175140116931707547047370538056356191782443111260197062800464097701672080176105771343363508611131438683799189343611460973975213991070061690148215806716305413687091603344297592216351439700469360889827286125721228504114387499904605952144194086718728035002188712391066113148698980681186171303198637041724639580937806580842095528110492761172443731171129078148098261274684727634729100413787957336899469646666686569423930751695877214487513915981299499593008116711188451075487752609979879682077583862071717521708231206125149451288296276560745790173433454869010843692888525563473565747530134599055835311477671709500724860659349769886809577454998344044269791326351802911307296825935523179424401808940952226675945255612015945400458269612450298855964994726245604197092977458666511487776877192569770356147297024591210263767352939203389464090100444883870723545984441325341017941660719331746955008914892582893155758066220905757958422576110404302753589637609106089942267700842936780650114811825970011175044338424288986425219233730380908834303691718956147552192206844917447248728900847137871729974199901246721717873605997776280868300702899470304469471971761923385220965660018797774870676838865833200930277882452235382352654794079145485144566885775949872690657014029449417714078715850590728345783300785187476226007700574479454116167875861403866063441637507493938248530478682688919847208456748767988328242111218733828034271526691219459122212680064922623830467772579829740957515196244078395033595836996077245118633952578243668659455832765612951294146757001866953430076617282183129532880497663526094905786777553463514314252575805982243339137579332437068512953759482476767185049508945622434227954554657300246142407170911442453591524443087248372432894807472069344414770999883943351597793637829464875045340973329509002616959916829370295840061696544201023338332025494773272042190580125893120374131872346397693903882664971317270549074851122401976022371531422057089632896291959272581459264132524672888332502536975949403457981230759813403211404095023567926623802957502923634142146729541238027137715421302808694793743654429097493699457375692756974365127454457123791682851007370002602326910882887026870545813434955032940263851032827690233253604754727818979446608098615220889322867391596792641362636144866609480840273603902397963062701490068802577027628803196863928955843612457055715174739252693707644976455494947867992579775391831047283643528467595847168011491252173895141339856621520815027728745585698557070763805846172819656460523399670964489173805211037004596884498266424181239255032681648353401655451003415014187007906639563579066463451286891945076726888308243861681257151807136993006109535809537493641060989048256721808722895739572937549525131389478836332102993055784296729035764249254058230866374623638196163800726053190143529273480048220898622780089734526552504885173763450588277527182340930722994610448624001252527372444834819217114116916253490660333243252827989284020679405049166501128014915011833318931248311527463490264750496357642851358646488875997500870773879123792982590805246349877881938877506301442019966348849012055030362958201445501076735823377296687063842878235768745447147451500886602837177359690379056754258486081375926436547951892503268229517954443644205362759566685201809806451929248949746970858464791982437753101168320674568754178128845344140259528874196571068700051450226351088555694880443100597136874369034006556836556953109471424361908391361177206552384255994215792427413956053121302343418595566879382515388148125450222528380926322013294162463935128406190598847230554001439397716848300035228035032623113816498929024244594762060203781331769510790562288943604060394085165687392693948358209559657733312544668606399233327234711777303815290580017663835918096061199144248573187470759645632961283072396431087751774279231596603210781522434729912452724217088641291048498458047801445296069616946706433359467467902355748458220940052328547250752528541056005886604903612498882831279304292364078989716545591934072009773607253974380707646844880308332766694955012348619845619219464894201554589268261672968454669406678434509210400138611345983623832408432105326505220155451145112349612218350197293688710495981885281214065316026092248598422751398633802189071011057910412060872538994374815170972387162831883087425116727998720372935774054927911065376783495077284583913123884531706457478868085374839638077563066858005218122493470490317875813599118047298882601504623224301705803021209425019700463388056777049782058206285033427653132351551471634764372840235152545648538539543833583927049127790104337699794119515697722965044571638352766866473862336246580967532929969577416746853456536222358005927573979043605528984235185550070338260269521779168751338828655945617032069102560819174524926390232679180967891037697387000035603612793214502312822757652641373668521596901851947071956353756391362952476558047223955775883367289459320771226075459935344025911871097843035335893691791664682562730953932273451324928480847102323522483186561483679013747506145475857183326805243446685366448730976787819309482155625918548781272388975764506214696215782946970003505728981836066658393128400308347373893881891737478746562533365529787676124253899111181963537208100514761702164952106375480760449892004320585613714331016420657726629717533642571262296067379832802552747237467262965588624876027240496290022433150649137733650812736321239262350145875635039396990803791876808711151055201639556647590621839429386067466691076300567702828612861487424364630133469154131350884607786483808322898509220709964541684664083790392985580785881838577898908146053857793440794208093047006705448279338323927786429967363217615890396240775578721939782103306324285371929394775008346903245139903426190068666121549617818770754443021608029368849539149479365465257295726103448825038845888692416086155807527877650019006229864220265916384469798469290940987155996998495554875899325490348022789528860267227338917528511452792278690855205154956320165071393081352398816344058371185741551589946142129371438904267268977384808118176411773467870659433781682058041178045620719306733995201110553225690598224698963680541179862373265988517492250706957522678834470501611795454494026245985040799732498595240920258891442475248036887367392591672284390940978992335234902507734362973987240313095850265210529988043143483236784408090421306862031672176455377589799137099139763914477220259016180830305941980618586920137759476659547400460643856205752280851292938156583814335849591369944176658315153393647855014320533797178989397734517937313440468190271682128612164397045912380989543339894006456776715814103544703143804104818944620059057194510288795903806181943159352351422122880483213763170051677128056208919756239511504207986796852650087142421879673263104607770907117457609949561188645411344447415195926718031486032074637014468793211556653006599405478769130395124580283468749642838361600043353093286225806207864378909859097610009749695363611893501620884865770056878484988058939258447169588016136643328681472595924416456508474403550497441636009777481871627036949019809018752183832979940889982816880650788162142382183241678811986057151597384041971347707812390848636957331979460560884387871777223971712899887339639399894505203553289891978390037312184523046159037324230394898355118942261142911621446222628208234238170487643180443108090620695955977991903257010850023593778561972684814177245806188407561039371568813153499832112497228232850947052012764913297907275392192010517194106839282826415806909818202485001716247424558188248141601114112842880803624093867981100669388989185354649408137192205658832636214998745484102817692893922545676349285017453277556565431669823705047379379624645322834739190069817480190218248954277379803215283169074365733578294372594921400902433180205834937203938668782479984864187055925923612163865451773196778789716306989011170143156928302927016609368620368601527017577500951458696025924387119621743260812148670844297202274960308755491661245052383982287850899870001281161732204047015425788844377642140238866703894484947052609874313675530779263721500620898737433604165286670445081073870716629824007706220367140588269650231171879465917454882374161102245894783585050026752594303250581452707786232371773008044812736258189316048675778499343931045029152143804165430857500304781087711953857371670711083534777706468194277554415532660478411030119894536521584124814762839673538669461543806614091755962087450573036416411568245260951327934770181609254947480234784931366742704912484997199277151511998239028227686201292519301754684723639501789071442051385357453329744468976004786278683558395671432648036180087944586992873579027776956328701771114434335610398677899201872439328358564225324219736109923591979654349765073265217599767183398996884171816493536152255414349992746574879770860237329544415541163918199211223479939743004730968535178052697523547671747617145325418884998147207390990282208490941006248951648630245366324849389273194157249017456292584061125739501632883037180647768311951497672065169879697056242514247015941603028752186813558509541372559289849945778715624371564035902686381305337226200668003675951083952413767172430237028500686170180236945457431724903656671123975254401623043992541835006978583815515626913749041280625691605400597055562278202221490961792031250481256183041236010398284372203605959606271977477496660510435981152536049768694552089088889829949060624089719640732904263640648555744881909934383038815437585331635249365644863966091095183710411298150001842137834717921608399793840124970840131707266281793133773756959408766807359343845585347780982954844287030370907346706610894682216424952420385875596983503567532466511754403109486074632327346090071198277292131049285345906989118478705467440656391076205699527745773691319920820782105608923764746699634725858670183624240067132640570824827495553635244803070591771980231500036150243301208471230649798742938635257132134526669216947837452955527593578260048548492678301480845985598485616346708138681401381761906608710817931015126797607655902034470083793995065167581870885299188745586879061776384284220192800760543367798346419730522255513980192903266753004743456915642056002631031718256244028829380924427662052779478419182811576611290247738061457790514515151412469023155896543217115196557678396503652049508953577235725385773263304734781658389618517676605314365724262470675625973828655543065802474768244451912103791020393196650398469542962355411142220618600767114012806595639462646628062543385346173530312654259131442847666173381248532142506811786391337829111255492495462529073434073941055101772729679775111039952447561942394348216076205543410114571259683097358567413641551581004586535551389983003669255141062390640149351125099765653313802461775426120037418759771567905469558963020382339186529701205826370197665487280757674376796432733289135267320378497172110331103584207098777781125948800735475951295584236456537169307780630305847361227750265138985899548119839567273516076823307767162061360638183303000729047247430817491423973148652183237348007413684023305443125093563451955078832757528877659427113876573134304760143842352922602083475620087656940275109325370976315459432834673101754660385689671207500796865684872521746346718841829577104953920732864832235038055561158990859348217654811375410844128613060236610210532914383680237664803028122807360854111687294181247879337914215661409295062729368546409902474960618624292066343957962906270949858070578122271268904696161143494567337256276013661118596943337853567528018421958464619186871664281554809383184884872488444900166813903449522062307979176340192961282264136653682983490748074593997501361630190465611153047472257187308792582764010912654382686232358140962375458581007705326371776850978738828173271546205091985182329656411164555886379862259809351882994931542906031113031593298807374868377819939388200813869776154329812997448434342419559591549318691753209893333988175723022804735816403030486565414318540284136011781790420557479009631358054636318301844573334703835362784864117732633222005379130229986052713420303696613246999058462515031634838766043656534302965937381049621430716781778884970484095542473429983360774775629420373197428517148001044472882113252074463205872450274658846657293661320003647298631461541414660480718765454658215975465804817552468843286027037762003260626806406761729741326254311414564242517159507810333904005948371048521533302319620422858399417418370524083443329749625868664940677729353241108325426760793117446466032872570786221318836531520166052370961734959605345381028848467984896793535787442439936673717516530724317351032812003907238135328072506864798806168402914516281961784099190116833148700183278537898591838680183816374952532913091081319402780255016042765899943858328896348283719556702259049455124432010903192410332538549077984486627853278570145494924714219932983327621864517922811412689775414756086178858951576147087599571550049439935852126589692146115064579919261805105747825967928029261547446610875202366667909940283789394151217011975883426355410317413965026054688319483253021224327584360235093529483810951787919516359400698504944615921366536459186966513218338119900470753713386582393575176563181624499952609041097683187015077291452474778796943354950372002424891998436897813727324297548751851993014875877421583954632375944589167515487308483341827903111409171879026342736944754414243403764850446068398819748786222877518212922641625073790457539955554623348932684932815436716413384813560598156977661676348788951280660441509332872207580825373556708293035359824572260846827826053706769559458846737739539845435850151421401777745876726917523443257791943549907324575664421078312059754857634146420956794152611963635920731807022598384524134576410694425994580948012264150826009568595652718103790877158435686250851668565084615205021528060005083952251748301657329454867866419239070703279626167599225955504279530771160193622251452738731186734043005411591603161996102918787489129529973622225739365273804479897633470299996154032649107237308966241664510367749746586897984527916765432501811397338768222632870592992060495827880746707206634400204074072978470305326669424910682742896972833412512592409260638444530358523661098503476506485953655237756271211789391990293070135197810747332647960444299809343874068069470693991444063683918197561347634492319291320123028399176700005054433984431388264495655821381432461362793424986572582209670974804882342909521636236884994127142248085394543072814188372354620305235539520750650918635314230876491910098382867965311690622350379188072190959363873313995477761387222922520896818778027198269400094294469066135180953198932559324283096723402685883660706627107204273554535562609208924963942113539398467114143060630196700631225114485285566539709810282370404198031298142140079369003104571952619714276437785488436953016968911079471675536459118430124021684523819488265504511496780653625443022388815662057732891286729759742645807525367928763790074274554301519132295038305647739027378774966583892442370923422510526123440578272293924460253873732795801801593633839288252375791870205495700972351429832385320433968282393263952808764823602963428102046945221905527693910918999265648061108611329897727908991505589979470645084716301940132648169025219687190310832427649266731338221541040326369137363066854781706245351915022287909309365800907803734978907275950667295258835958190713575978548737137047420434215639872869833216714797109023488707836325535350983171757821683378066449809643660024972453270853803874919136212018801969530160123741035499155866939412811049282802781127812765002160940098729841035248841023799901202854695790409188806795825031248113635955849703688939008160887585373347679150612406855298028181365238671843944183092817194432690413309087657623392621987971358641727935332898420152089853782867970092654753963084744510312341896890718077141429868861993947025990200468282147128797721872133527291191929815385142318527817930334226789465703963201019901924672571649016965200839263947050402010210147825479121845793318280110830549371263784439268331072771416294211609102506887183002365928568496178048471733127117858898707109408099367029624595276755536071020216633696844087634130082522974076675809363023068298645633326060248682245752069026879785674147536343975170326774661753153464040923188898971090502512576859379912110038416395909841907923346936645174605239508710431240770553229457095533879041932514068665457810942532082281964545788105664627156052627648212755614269425147221763906269357761733690192911361882762478043512752359718499288992769064628858074696962008639032690116802024967068784477301761829716022991032147747231209504753597829848965199141111188380724507601161204417292252307510623138134298975657500726979082676956778669290322344027975140740166481798275783922676174995468514474951279749995556804816395190275655663305920311841931158502899441497065299133636826600125685855527556430519044928728441675690665522274402962610597127927047288661291171749592776936325122994425210575353615702320197931804379360160484011836552593852904138493595976132438379902575512424536811559540782100651031348163395127898306255503755277873835293280765400275504497348680994671951221601783614089281273923780587365318930663232880842403889134693208517446561486550083369991905832130199131987510765337441677017850839645574010468677240768548886682397032433993740788087234898248094400810545607683607445431750372508212877518620262933247733995106704941471802534333589910376844879335827728558622224247543371525449000916818081029516844277161700964142250726358690577881466429608801291323329113644690636360388687931076615123352132724220711595131363510671497477628873168953818256379437635103969467924249396176340550501415599523526801154146193064592677945162848003894120352481005267222653329143787213311491246401334388510964295424244180306942037654160147652975680947368500564334810877029387463210171579710569406083757390551253590001624278388844278898684150860041944889311020634802580473442222116385763393369157624253944532042286257132195721477638038578478206819480787901870271455044865570533168471886253081479023146383998153399657539824999778566916104493808538016488083838933135856185393152743429669347253897544655460155292770589240024291955664471164400147433843872764819465759931885553673235420276950922785405603338097883165514050086698735820507789260323060748480109154236613196074835752758535615243161776720825709095846141896305174815603883854233960145143459467878654116739962236499980238293717107357113546641130398180193681695126890374780469400900314529081027992744044543046045419519499070444149952010618917479025151167352683616603155908725892664397799106511364229395830553103019700834564921314387115946710766905739389543201071342359244370780263776385391231367583433263808665551854977574328383113845952368360054037464827313242940833326250812274250291299460558831399241995056327388381311359392175398543241587641712616689566290638907504350514470204948656177893148544618583648737810523482925331846464871889524586196071820393834483154422185746858624894817426335818302685418054220898414092388277464234718786990431695653459441121246964840728901202237113421419935538220320604459418809998743110838940806032310111440790746007243003245454598210126175637653157445226005130627836085247007728630113183233484779868184281684776955923654730246313178498480159877444225661917499893780845245701850952505527150327931047794890732643461220956253002179770916477223610905726467965133473904645985029736941227080049420170686715192983189434673507883785658715593611406777268469763258585284552774993505515416075465108842060131424625071366994128426428065970149107487249875968819598803393005355275928734947141580113273376412465569622899722556344022823197158955757962917594894497992011970919539979316413755533960740617302417412897515114088535409443064678763102655378178893826392143282916701671556341870434793533287963682307849199740089169192682096212436789055420841324827609577390678371473321981930207261988033162374028521201557766644388692163709800567279888659234833317233553771716818985737339189101120960866476801947272021766408717009619803254090758470868941420041167510392800923092405825638591964357205431091379877765497165425126615896951520047240537984390526766827196734416533472238729367049461707434302579791086348628594031561707149121541398014410431322041040550369794195463690464156771033364242315194237680159688967040080636182816720947807014938789044559027975997406247404285738661102772806869852617295691068728589388386826813716781054614867702584908014625049027478086565310077116916557826234882709984525076086452204564372152494341502446923427251259119047821978863801757620956788763423986807719000185498473786035103515910267206611822208701029932409182590553179543374799753423902780921746945739201033471784081758645567088850535030016959977718847816960816465891837537714972704759044704873536128616015727312460552109991501684804520747285364501027800083805737305280736082055527376781239929844524315248710188658354140468778592974306893625196907105397250802250806562618831446781819594083536659605408014906139090998901900675605417923550153255381155313286677123368821121315376248242831391040666194282364994744799254443875698074876078578565291942246750056010582269845598068027010747055855563022627973674227532715080381509192445388509887793766844644647947547105652716024435612033902827326627349936265329828815465667626717045037743013980275907923218651031214259609016487086496286648957657619563776107416878827233389093090290377167624641288529604945199203111088968390613522688856805479011770363657331803496804812982585361103819169832623197005088972462273501651151013141673114778659588138178536920272759386081150449890791319112663343839598688397363313805224834101467766410934975039947418034677382877107719969991585307840142162520013470914728474980765713863115821256870003978683639831792147158179634981775279590436205224720497780262158625636813453747727352122133745057919568604869283585013205394600170086703589122616509388717390431547897113470528151632173034121947746849622459105084422783182544587781763502448639089027158876728523048827523914761422982076194595940477953911305520603911306575104975317896802880393972458201059215547974600904765348141148866934799802294463106310392362571067842469449853089998969924089064102423072753292143935013146057051125752865964486735594153356937353403575271438431910354827916865585995880718654133930053041181535356145933682985872111828410614003224672714017443411690181413622953446905945660175772252569329341317724609837437273081658389390492854808699004395772100636270913868287487075338181324038803387074943686729541536128031464072418654692045142851040863393457057136248142779902470176055329907859040045310011251663435549789738629971041430474653603949696392711777709952013850794683429443611938821911755216756945030602708242789926320301165663670177759618847113935257401663011856718606955461900931552286778812323206638742565986466134468909749164289405633226662668755482534079123234940179685891024308829408638401892387861800538865334016588552362040346901654163660065434799592986138603155057947522443847145156544640758602212976218164713475878439990498770508233496216304542540626484281444350370117729646853864873478341524154527984012377167473917588337638194593629507149368345039456144179470344604343735452294816885366736797208877184780223012783033037898474665643449110560759382456169167197911034044362566033788615895770198562379389255922948708117477309962873686347059715289515350718019125861667180544305872109718002530595301344565383422618592991764191071216450034814638095700677114328251945041084255005337523833583253137311946993305405499892731117347341437420392832036843682453154981538980246815995660842605762130795910055942632330661688501772703833916591008798670437176871251413554071097487645133489443738584054953464704881064950775713587077447193122182514763560454991278409411011125998429608569291207254936283917464953545028627949485886651083753225297727519366303943463264416547290213375937286321887080643979233438650279479820005853872022901117573897137923036953190799058083723820058252745158524698190658481773083239650973582596362833896564071857556869898437439929773734758120194845199217046279582075045745858442381752086408080612690116965727443502133287586386672033167290727942767639814538258431442708625599208403156643672680799651663315770019796047959191885605612124823693529942122402390237089832601225349824985531903172245607595918649915766324562048607516654507174798009532655276044079996892463292002283077925705921317301391788192646910767533590187072688990030758211091849550998059393260853224914683197212527055307175541334369363684967946783225536187962089979587797811181140177530066424973384037864213687628457777215103950774949120329253161053690780642367392188529722873142067837797244751221936282722365718574015949222873233403182385991956338266397098370017536098719142478289882006715574697526123701053543205084355500276035706341196783121376874406011275008766760582301616457388117365701715095385439077902747941622708800492863090475668744645936457072456553826800564897168446149511570919697309465556147726778113692267008329159676318230483879293181897186031268501956545095552331474064874193059252630641825967269696074279612316093192521679672737521057825418612531570538249328351097759041053412649672619060046703177682441585955663968373583835599581808523065592484466883208905266008206861372334184602275937324984112111451293355279260173056408290124072058198587204078580182822219780413310699626885353766466034516107219704579187167407632572786387612855609695266703267341407167394522789807618503760022450636504745540085490201404191521757514302561999751666525000465315739706696610253248116718031571288937395634591520020460122676947061133339296037040425979902444693873030602767118268723088328436119135451538968718752299417929154489952199305783381956884274700236148515618024599852770420111403617207841220321016535692123809804072203580884282581870043178204505542711867838231653015751796222380501443699756477779490788346044810518633980172639453186856916665765353843371934451026870942361401307730107158997875701022652800075335492078572432547062714380876775881648571517190643722756082506125349578449976020892692527731942654728277129153161259331868932766843007386134076173647125341954933481639944987677871584299658975088563758724761234858241393621772483761070538121402937108745599620623975480636628898729922060736928526561841022056831522559940348572953915404075454224949835928066390196865915508994675841407134752740879128520386951028946763225448420123121124248111164288341804099344048851162714565787187109520131685180825590741795891590914033642881538662364115267399858720474182336995559443658225387988385926038659324424370359662220650574042495436335866254292239236221756983638868570576204394568084273846547519687010873492649710548903413204811570594327730810584509262480383227926317055505167504712143733995411598709247041831600052580051214852861244394263114094104735883243229156101889109667565732920851149567458524343772918369019926157643004257767485338801949377467954809217485555634914388593215875153014312886854315803668120464943820665627200565631625179475602854096317210504574013560410484786684128015218444152863803606240687362107482935344922788923072248313543486618789108413741120051752842574549116162399577286920780571562568169402880740710805407106286128460119701161769750961349395679874260547082440615134233167635415628802465521421669445228800636192393296969721641223053085649965975387382392227312473087660762163707321919412217678949484040862303624382756851361118894756953675520665755195711029067962861997652373169760372654013857940952539742500096478234112843626202749690024881387316673780841646004014451101054169738472907291074691389216660105093948841558157728638589085381537146275077620730335840713356366028982834619964422317123339092152763444491677544281959928662466801780299538625273032552615275409353035098267973747284192490864386997183137936702957429951379994268098096764770262582562223667560730898868797543114780501504671818781251213029066478423797947794223088938234476842384640626615032070178388655262754576099658759080403904485884444687291910038932743962714309636834590345685083164691170901057121200076198665694260326173763239257670930245378329356043886126954979831579088293123576022807699320111416971391912961090562933154696039596669385428848569105215808094983105832043862262807815824294507475649265455397988124280818186970430221507728777908798988931631534038706193625319000608479874300747620046684470807758253096605477541096081082892419508318493913415636258968692550902260335633735621362966199243439656299172308347127301187511656091695560334972566916528511566864459785783008434911450528215268654439320064762434104551773221242881491462963716824235139208819737674523911294228186114207664769747468104861250179382731293515906246607068258720717998954080740608944021319507422072045765091971325912312286514959039355661068844533071704079939632497450022084567665955029284747439344062063184506764631970474682260871943536271937736632826606101932271528093099512007839961866162892753478777457753382544715081770854895983417636311835476697621426639376643352576880346491367847958918033062996642087612712674567067697550474943655422674763558037857719066505022860719718321852195579878174635226086506222943216728313063219709269784015425200771016404435507514832901978359000520503359750892430803319779924222082156245925367889517935817575861630861803881772063533272069427784912807384632387054059543601530174888464595684123530299155687798956166060366909918247275703718635311348102054250498356135650626774432496181546151943480714445428059653101761229673340962106058183096454527194021787683506174892759491006859538066663366065540041608580992613900276617733922502065258632523896546782000959761502823108776275798510988994126927591499794956161336825368808739183324032172388368582271194879622438593573395942892820911136414921960901492650367324326942000576615032947455701486580642569456304338645990161519203897477071422535935696553975879970081238065561354580144210895311080551755216773474692732458389283114356475592157200063869592295466341609868428248144712444455554142644813509586792054418411431494581196561371102685064745313175048898836333157687133833897984399986932638688762529251242339233118886036234825367812454099107517685034331705971725859629801052721464024773564158547748475317100388023162188777504469645038152746715449843626740097292366185313559323905926693255036542491564016438675989592662122742891719036286561687711564212367789344790205363174940442711291941681660706976993113153441900680888228831160465665188589052351872115437389317381578373928548608799058552526574395651099679651024984317958043552963925364787551605190002436105382323523582099732421315453071094852877800684065111471395904965799618060621674991020303444814290510891305504278430651871298149586326353459147827615803844055693387342572842186337010026056869552496376486213790108157188835855552492244852340590573090948447566228299357595855949663348374756766831748682048392679813448776749058313128097919913112183029577237849781661445217224946109063610584896030309694326626724445100123455888181472064713677531110280954353862837665323357342989313875759400867591250779689947983964983102710767433544097654795556955135385948712149144984963048482637248267364740638062563245970865659513056048819989747630063309584820454513794153701352711876479245324457450068996213760444031825080249435017991224195232161380644720809946573903462604735164792218655333624376777294080156585099678163210465223079827299722032970416297083868708768412157775579754947649485467454831285875151310806978468251170411354084010819969955076926743294808251242524237532339160379515420866491886804495581579168171325176025014080237983765142350454190654355470489862582875043389867164224742299660948413838522196059957088803306338209658535720442536470013802211731796064659148605050491225400451184147289284864132014337638651745829267094124783952777531790070847132020786504329359089523277132977156438447203054855943717800552834424002007144793441411558541060835909127023516756023856164213029457343132716206085553146173160473347715573691070256915584558849462550750893496814431175193600414261532159865454366711390565750955363657174154758701653323987362381187746555970751232694363803598869990350950203053780446089747127301201790735562213478467213457351610451001806412826508728211607263838244076460876255712023352006985003132261771638921354679334319832604876514080164005945314451849208313887190925171767385754947705539634961235992882186333078304115667037360974245487033799078303052123027475789034493059910302885923252711496131581082705023748771060686098321948749417204799504641101918359541562530779233767140104394668306580316260933325859956180431840719206829858486556166456798509930447626225925077625352255676855898830968020895363033712573015404374749018351896826361231897823797455099535071969863972462842870322526199611569703440746503119022218181314979827068480671229331174827561625948028207685694817729681571525944774697809855760876334549394491893832385402798564954752608271930137280857724106611804351347060173059688631853999901095489173879053981169211806879220368253588813769674205739833837124991538575700179030926374361475768639366462494715738514068116708709191699533208339358500285389221435441189851481705591292550838777066398825977452617010520269775632368030115685424602298356038776173889477045757739947527498894542267186903326418725694081581806710704782704254070214180433297860355324825413856088492978896114020400153047417252366558880444408274116564695996862001376952847801468250040489633447035093391507292384827422951285477412413794407926660725179265196087730846574275018623625349155672298480393442682215337374563358280420640402612728781853332107327859754839795797793942862146904181508918055452967267417994710209206305272365771318445969138908776494085108603139860932064675775632563752420234941134998011420356015895810223572927030083434336356149086467807490335177614484220551737448488138053530194602698993949391926272330396464843261046205486896969218167162213574781479259932906901230994423199121622513840491656600590610221627261414371571896927708349584947287790999781204291426112053328825527962110815775831051344168196904103417617633537876546571142480421332314581471251050891168566266147191773909005510008435752031003175413216703114999610608406212298841887424736318720434251170583187853610948908820060126999949510342904875050276755178923348825647772933588051262012419610154376975526861797595159721464539881240077656934225815880325769182405109694942106442026585799619761770101867882184859666411054051650165706932931183592198168235933507031998481656765721040338531952821163283464447645156333519739178899239306203375185879965524854954984733383735500513001234218408685588970785334697039102458045535609953341581888092562889193680096714973917957676008052597780066721033267886779075724735810993057646397401912978573970113328166607808364964220103892467025411571906325410018425640022957757600115543628344611581040928599133097178282645628347386945160619469599542230644845994155572017859697071997480703016693007858294233077281217643669257390445479826709249721444447496401449345818138934399276720518914085864743747523272843468106718562062593813623571475734366810536853013738994113396693636109329992034387387305008369562308283209367593235210871643688601874315524195840579234925884559163634379054416645947954228316565147803814451694528624620810770997840700011567645692006767527557055925093602226913992525652323243248075609992321320054559507430261857323654039761296427891823486883825707167032677607537513995649653498345302098392973846651660451345690488916338944244246370023395164803181301112529947321566149606796132620794013910083722949081666631290454377869334636506579091839159677450493909427307232512395280400709536984838805115581891051545172323700114998599703837174790719927642374858124080847064742800904954254602389103769481909570328632664297724627684206044021607650772535767095030892206076413272187295436829428865801184820094006817858134758364326892889665723513945074824606305321179194669706956846492367772506571462249209553899381188558371104035724144894942009792982821268963655594593823079616595721470366401298446013202703440831472914203724597016194282811177500546158554406003787157614007754398124660484587411839544697827035068132267863717337279028138073277949923317249698451493424826066565126948338153070009428956983477880855978845259500844902398326480929272366071885349439378709151864929813764417259619560793584479361996012317355749182112330481786327615984303485565932847755991426654552995307027778430788573149001350496466348477149259540865496208343703773723339992030792206137701220784306123996841008173392154004973964327757019214418482116650020461244453320406568033515711604727881485247585953821050832934944577309779184702694847407149027939275090707847524669363008570378996153172421811318030423119734104027468234239401079618785589497104363663323246825711280383281600325046061591336767503796155280634036983156040935891247245102305166250605513011047507545117467021190336300988728161023109021448445926008131973028315695953651505910479741983264754262229647313965188841921398191864677963460412557394815163685480255141524647239636106495976849627157551783237197731714717867541357311616569264745079403647204832689921647341517766356391331906539898923932228213868993344340136441566183142657049383231088230851052940420143518297375709655983003604949078223368230015826441514690127070646076176221040774033620699925225772549210803169796776504494187354423044750151313121495902642558153474406251062417718244510403504532198651428680273381199111568313857684347801959868111688529098722172105019905274687539082755754439120810720009869047642345349421136504923776124973278410277918724521688314539166439965278268845619913069626032869099463552823331190998982801258931646413019921254773435668149124525936321704043972366688777987434497233992018256241237664611980432104987416750152902745514312948173682594938376888112400706686388656551328864941713006823078044403127816360667378846203760104726680680738569893166628618599153592185862120009053087234555904871428058839504949015527936418136495249442995107381591653551442762869769390589911060649586233338086520410967920143427788196523920808064943088611636850264301439089333027137032788113232936903114506417568043156104404713612576454267694413839516401561611486259686565640207387757943706553212927894135790774175468721634656103715396754721127090545223826224764574762894262436256270642442945478863853306356261048459952885420315437264275860817758602285966815243807754865238803056960351519544465975466183279946302216832244626592831409311376344088831502779068501185726028104315447461209188894120103822429017785678239157054129968117133404550516199199252106516928090723155339011461037818563629007662499890128983486965032304197693879516727091366040321350907079463666820134494536945928915484601611421921178991165077683606128146116417327054859232250927997611482636577998221739605593539587821506742778996855379802790273003962836284911659087226418835467375131891669550697107121458361008450668952859619396430172375998403221461012291678495417225790508367182138691623255126400927695656021894004449640547592829045756624986158935555738213678002207323214868934963355553023868384162241196427658611160417658583044587006486051386192866578053401669082415488814978790710361130702078939195874087217887383429946204379210902200056355658553857823496607947618988583158879957577030311447737514804245938914458080298100426032360415255794589577513791795898978298851912388936796448062550440307619352723797077788595014679653053323060484805557284570802354402272172724833242620899156303103842136092326264660711468359970132307509197781539991352612233671465483486544178272551736565835218845514018027832577422110624715856986650090286126547104796396218639843352695955039123527545079285944685084952321731494846628534948722515776284190766337688910094819667007497238414325773472641618299500269106880481251924096712571109618738730308322460593909304305320879550155529737943533307769733513853785558956465968121148440009720406659129781431386115352142968670815723555700236696997119492016945362906872297668353027128106493325642627909182268886313597802695539360100521381982264730355688341072467217479690038752106342348994362532512047943604636509538732407513698565906901123744810145777155555099353384892456566592091825855129437478634429467852286257089942250997844442560016514358906432183649288608591168949074268593374950483506995630482406433786833703527342442501047076460287921726359528977201263212593516653923832802951975098656492714301934378831531003584545212305854469479371141507263321127764140601440347518277133270911705159349520572114648284608631874004792757295434062594523102196561485842347092923259534950777465370547934503025323372129117069664539295204699215738246731214618810889960496202590300774082231664003816247729685426448003065706184505739747079647827903592206471774162448925533127855643823694472815652280812550281221919560831057884636556237431858958947756526630524539654982372399739279689861367876190780124432724758653796866503139920652334061700426041300223498891133326900560267125862758002267451015832127940615823349098352606306669301610906141240356712331198976294123586824247300014736104736158055295673296859902447022772662911905281092305042859057407809497000149378191948327414944340732411921202227888286080295229772671460196319000341618009747963030624007032014020361880572628264089603007325694643487836102471248887770704472938715714580357383907237606569557189576581725460622846950312995829638808309245135530725824777111631712609171873264451977505862739886856458105701987204192235046181093343593574989120323330359139501133324864556434134127845628991740863873993128168251568203676994315840984642400699855231599465712849395966810507681285004548476622756831422941950906620323570854607427188102408292689430300134226069551029043791743303082466373381615784536544180746622865288896301024996843750138668235946227549791366974613996166487174895758246188907716633663263687595891133222529922097780398931255291369079077216867497800358046171386074089610516657921415236903717011917078031339848426924003204937466163850687858215383488162102586719544449346617558094731435791421589468666227735127326088207989019694299529357578521564532808841791030365803681753440436814788281604848681602856571772200120749093423411807622230576268014448495734611660324932322832118934372277187242974459123860814475140641368768393507560137225979275435375375558191147364512903274574915546519485267956611629169387357060591453553613462096373279735587510479469001398033025316077509600433251661859479886190153025507839470304821095754708361009012949486928926304640169830692017108421214059865078757243426853273257789701634456192890364817051286764777866220633190196375712815683498033662978946807139921918764352568406615790557930502035110891313301436535750451376217314193656440019445113962492303151743065961247355952394217228618464209651788228293389708079496602411928408955893361963487882128152290683243458742140593524197447006264146052940334126369574887609047179210750010326310370332218776496000728655663003736572170240136751684609757813138433025623022689868116767911073117916505693180456479007071273153524628409510088271101940632938293087590308287610592213192357965210338286542695703450499897293394980853463794267493069575036826059827493276612398977018363064048080413088354710900199743914380881854618440146464465057600959464544186198273432886187216413523955919377172527802464695087361738531382663355702294975791859035917831364129661383628336892653666018810714253950876404105503594719933125508132390368549278804666340342000775074766415718664011482362639489753097986583059067679252903781165433936074122541261715458222133132473281853680870810922456526673542831550313518675404023112638169232652903132232795963207925691260252212283855584578453933865195468870205085334989699302288356747117966213215561906361602729922567312385167357583079988995559776015564525680933562002316419948876739650395208810362875842572370534868435369411908512443727308709190112864910784970236555643137322062664781077473768181945971025802521795335046518518674823664731206778137871635051170458319499174183240103519782590683708272082706336726404487122497778416722096325543863096579632574764693027297186638822684306060674575291956662459996380014267224040031741783154719787054421107778795977885000132244668002597287266845695919094358602455871296098543234976443318548033725532835567167992332371403059222678628192080116739985060132632894494718161104850926871825403107951583166610129320459745136909224894086227496908637364481169058637130034389207401884157238458901580158378470668065286373364863202419866706078894967611488644809091814466779728317608287320686141466245141076909448140994066310544030702011491793005134958992097970853427365553129925712148546175931808288880731726342298425234559828394387074783023533703586230088031503594052169501629302437834550816638077778499327204078834029368498735873789522468788832150175930283130382993040848068409018060301819561546678532082437443856572849576277372737159534933542308410337026510765649117541462154108497885219662299684531060556490408049513067907143105390137794934989411241730130199011473558635141927943190058219983524953812129812672419559672416191263052412893313825424079400174988949875987938143203963915836239515592822032953574698041013771402948816735116296362183526209969388029082697534042574342426108312649227903200983600583712667688062928815276083686838187319109157726577509960280920745954276699431036113569009906708036987756592462800123366972254421243834569795767500759987400922298469587292996837993130898162841504436766658835994467358206707032946973025995381115029513483683002897505317454558640783953018936151278544472479186120310708841120653530324360219737709336969066045523438100154100699074511426520197902699723763516255343304965995698083741510839336672097593800494063584012720073445579705165283039761144712528724107552973776909586017818921119148233291194985701109598408529211938228134984786812931083934436999752856011627685145267219679399331850808529890156614074655969529809095503237716884799222209507825283743151596655758938871337375436240661327403582864365422524904347119242079618994070313244178656667353808910128238863331519920991492047655986205564184040603925739125359156622976694160971635379268238230534982881182669645122079677184792891426498188600839005303425682817712974439019999595379765787227234202218486922909090975607636187943231181883544175486116511792662263419014018747948571163145308369957041383053454038686647572482643476553023764761561546007659750120224572761101071693815931794665335439243108714991103937513237462650007325415920316228774195701405966247731697530807319106139532126521572965191148264633949975672626804117150919364514454600954843057898964681203489342258304092566609236409079691063538151127252049891638753108914392376210117841751323570680539969323117473366759977977068132522337933653224126612845957743075758512643222307640358273978877640598147874262927194348333622545318396134377759222074233116177527821906670357777241562183862967905830986291504269373448013455602247047588388063754956076438365243137104160979044663747346056322002761106528666439973531620634576197771283283788297578521840088916385356767632565703739674553528155125155591462765995718238089153100113181143748593664324879106034008290076451608282257145856495260799666448376970499521310281120518634210472559948167672247691465794189232407278906225723382739214611479830832521459556649998897769990170123985717731619560225352853018912957476126538886192281732616679901149989210561072340967220030226240498213330076643467628776944294415666710992642641876463791216367577106022938687163082477260099295151046462862027423729592992911551294634274729947383718530626616707610884777980442102075200263574873767590495318338013685999162405392219747469641827244101668935989270064075291696346203429668160693588696105414744624937313338774266901020129196288998580349657871453026406719373508097473396093734041091956750142562009012831062014490497344153715191890626299696209813829522751376941222397894112266499286226858829351303330588291520517849973294070347970121322903049938210361095707886439040856856782189537184359561302727582513671128167728961552515206049338246161062963090307645200246567946723842939875391458526384375128018491111243170575376796881628817334517613960252356626744813567018914293508626227717935333028600581330746851177069868963623025441714376965224074359912753173248326906887197117667181927359768178675172074785659851348524253848749799876611643802920274735215172094576556276618102698848844510610912728219211210504765552569078886259029962610291032293134186244080070028532291853272893907467872335417767979890481756265430657753913487559277396923250405169815248070593335974631511190538195822521774857167924115182303144015775001595426391384825351991069159444184365128655611572755227332936563036012933734421808854194261203045187197218159823027775275247590541474778133362683613935445828760621475824785548106575401714072014358778778755107902008223231939152599074476710207767251047261724772240738018976499612708383954285515617358842366624115159979781986378632495257110672426561960737910964452019584780717796341364896023735673157617961488653363082607137994248844351846780327268520764375568079306594993668144006138585556039697473985555238463959727226765182661240944626776980656829267547927285171867649583307142680928828797117596534379286561119814794235379954221392991695626177105423836908204232252161714522004936542669671383950344017436697232186846488034474786852090597144361891603273757949497034945062939284508844303916262657444073071955511520762821703190823112791133115357115476416371450463760174706187675244967574160352869673450194995571896895352764559329612420946883856780096439586561099286233440280457240742330907502886728146023091566046024869573377589991466895327095924414803416780231078608600028230278931048722192500120106165408726050189759216944065741561176182840553372858951726520300390930453940772432880927436314393051024881022821065122559452731505099275780973275932482957904730535661501417228886978897091217301478541463491288263443227897397437493234431697527135821179766070337965570841190805136638382031057109957588037776926810363765150155849945812438705708902755555807897220520265010826326257752285600298045463515307367982491225427835552877520731436678038871401844767473587218739536563565486485682386249656488508954398877270857048021744006599767970132249771004608400208954284900845485697841592664993963018933659632119785348296546074230560377181286458192619024854825666715652636270424860482720862510757931354279110096296432955392375171343025083132559836889147923002027347415137797304458829571129793166492748864830256166678522782659431429681099784498123311369501798238837404241875405615745255735664428251367103499258212089417212004697530515541528598595262403015628511733265756100454021191262426842265161906867288341605316760833354619069045055087959044567366267472596551998034917940008065513411873783482924204459201791883348025764745039038638848519063714610989672353149807695096956174993443103975983811910980786772441723025100710946510247853552801668920818659686201053411657553045609904654831600460632959684304539121847193360406108511899386895107200088313521844720802612616375583917108057926972785853778994563780932781504548717537143000940915504543895777765287819874338541372856665982105880415860121893408228759711034761428366630519633332361831410000342461345178889196025816604136543681459708344869311458310370913002013832472210742225965413290009369779634647884183712095247236078580278394960041550250437221290923927953967669779571081708024664469569078401707550488559293017313991519292513786812375787666017001229583092324531718099100726084588742090375375938625142277022344835476482188755403951009031778050594012822019995917416526875269180607453556886008075038180143233305998840036746011196335274132695306923713137721459784782133848169220708645308890281925170464851294015255538625442238473030642745267576921925863455833341256179265330068639005176750095827488290826484698095855533308777760848112881881014951912412159791074092794399736560754946704003161326040636065481527124394426283284625593986280356192132040436557739616102103421234672116455808780520911164823159803428111787938854204183532181536997442376588309362281571348691961840513053573202140228933538301816489174866386910272009035360423567441114484512091168232102515954901379841622232314583228525423891993047152393749234506985175182592387140397603814441267470933076716959862902173933203265590290760825727419728279921165989432275730150457682098719176041867711372081453729368804423934461803191197788088330734194964873486352412263069708028627043598479176666287960375651360293906719890313580224094562811022718339916536512477609979616863540521423563371999228164622408406886535441585146144553592039048644964250412914305705229672790678314425936561371999599690255997732171352597531273845321385428389476084334806489737504327793109143806824254611537772896557315663142442024507341854111231177285618749129385544935274385344024190871183303029129347001468509714978621646886203981119060166269765882442521540104663059911811406652316026122914923665324054139354648782859226556470775096529591024016086694914577948178968206075606849013584493269647238011743674236883476282253973894941793975924277837783185941979415424652738112689231049450807408062882673664917445649200611511771188493136931373192410307125236743928139130687194510584774089641116929627939510754935495425169140544010358915507208586005225180978973498385290504763343468241468605222862616422286711663397337260949232729024445421469402136538298598808481685078352612400352935684197126081247653958055543636836229133558397449784590271300292208957392084304078885210929906744868684055197756858706403338982704963178756758922769836059124122339799339444021065223331382303552549015809111977378541518547512438637302533196390891498283834956909732994046960400790657405454152159339784667784577705528047800687251166025889694284099845246878772782152881652755869855171233766857680906126044729845978674048031956130025048635157856280086517118106010611692122260976895735680685037837114058203672206118855730649077471388955265429416924659121045661408662684511276865656339372396863586278912290499176243955895528069535881913974959724629157571671247928973668513083358154467900660836433486377961204376572593906639122291456329584348098764178617875751002941693857974903504241627761159776411693823711242412918889509133127459900145106475748580204930704137608805652992889911010949591712816912102470169954644759274624104522213615653888453911856065023776118501100092075558859019796357229638549842136422879038862185596354250839261041542975854633064407877224179111489761426126418785272706834332997934198361515525969007085859513212409185249387977562154507976141789694220743489038878392836416387786631313779926926846851189090806800434562153548222147887819207906521915111900947988491299772401319586960959584184109824872054650887504774142731053102695878397137648190469395770489740303345923822827102167856769795989061724033538957925053440505040225951770195954892473331383802695171193329755807178112239375094895176178256488485991682671575684833793005726867371154559747262766083227711131530826083076069118919276567966784806754976380552595223136133054360826557420269548169419523017066963368044510021525315834037206516263148683142913493203546259207840955344134192973754001822258427913263794698533954279464655076188321282297405085853043148499456115679812663725427134224608488874892277994986920605674168118749965197836378518058178378407694421981733781832859246523273768564433094692465035521507078782754289802550108009842634851054626834222283087164033227240948692776654336543786986040732577335846693124727278933655763323094806252920024112502523496492225611711530790879763849728197292144359599813189444902824028840454574506964098322269764286609345035195042841505188635361177383678888199702822573360414139452487330223322266972928275062367866864716789094548387436055117610049846548652018432324613543197374267471843231939932017796866391772604753776633480257215435299229719180052548013321072002701065112217404514032844289877527742078606157226126940291894293394381278152673014250332286000115933106539023778302866809185144961009770873003924621330919404344897689062228853170486399779024896650861917147695212841334730270719747346195533506585297273519685164337345211005529461229029805771239232145030317516438297922416637975067990252206265494054636947338162003537114443400094939721671435866464834775140051267528397910829532111353248970071503530451317755775029856195942061264883077289299840953464806788900639137425102464548250896874658060784908684630594171851032098160228323008081475328394336212294562922431849373128430001590440659326119309793386917951927983553740708325659840416766859461698834397805800450165372978745876140862207928322307319337255020779893411149715404515170140152891443898543011399753496239131813159029520879565869987739231823652215875931348973572088033669757233793139990768524648310516692425421515339363460864336464977223337374240656226190472628217701421341204841096995895288027504366289195776760794694710282028200819558080417558877582092423935563449142536054985755125187789925708322084644604701853490801630552177285108568311752638598936560511763868176596033535401843975644435623744313961492699460795528388466928070207542878849232719697570612892934417159046315791758253705065038768159557108065594711732815335901135931370188657561229846177006433443964224455779190827815278183017449685795155611015379159225241760871898784825983458222119233419222359819298223578389126037756845862153128905834953936462476215674547437361908694659214506773263741292242536083217437827649642919130799946961413567635975418979200710378965270109933714228832975538301698067679458905375566538774707053773570113001067467088203092840228578616204245486628797484765264576107130917186664446800790606893833532893295646112406604478322932933450235417109196056034295843949576798405186281286452374073727456689869447449508408278944790874899804784124030444847471894140570315030938915332633919700692789438796952574479125726471238362737945897731615306548988398364275434137835873884691284202859804600655350684508324639392606146058413981475533371466282759873277518094061335202779314750303634597539866383186850915829286242291517713068120206880034660638166388521046560657814769580991060934263666514357287275779082518568074587340379474286530130582090217331295211868976807477078351385507901962453507775589732807412659298553887985404868796629084736533054579775700645777974248643155827952994906729008563580347577195288103734455148737134952970093340275714914105231006635467649397962596892767584295479692080719023854926710915752349492186471359136684345291127868131920705911036701153921627098014711243478786456224939069927522375791485211874592010364439907181039354350222759183809846157350199957696438740185026022014942629497907730925301776053515728277713878314399178835127716413705241781455728052892778767174007490337541539868981041106443606977969924646829541809021386586445510051234355826823082207925198828172051464429833441216917213535742929940123602644949238599480888291844409061078977286253542009046628070681230575692688375012242437706144904604142662360534805771483589720473950235645486320444917245905743480046872744944483926687643828033990029924493813781547941280302349832168944693744013094482027167491485960671377512622600362834558283496324618603546767902258420253071059677154249552186144547701012762618562654717861097953899746505691664025045649244582051866647685216707670410613505899426355179008758444778851261699790228127038062435949596982014728940550132518421848114714755474532864845374303975405427753981298998533028668379622817581387101286518665912801290052589597741393441985183861110539442283680835376956665042311459098020354708563667408469269024377283625419693164348710953736018514168925559488915086377259031391612350875593850633230031298002244697131278675438814328916752984668135415199312467826780953174608063778234949255548215277732550097103930186232802774265968971235722736590615983780652315743554423203350680965227222586344703152748013981728870100652698990295923340710368618849287630881459478868060202643111794004870414583081906088747322875209052507338866270085723307438521048893410130778725653049089274306505074495370448762023616507847434396023244168397485422954840515992159459183642946463453678708536071460428100688322174257141640373010718170081821475638133001068668329753109922314795847950009526473300870613329807675438239866886974061282183352647810511098557306599110996099570054879050474461918987107947959251203162075826765260680498571327181110949912075207826890430353648536066863334121375193593669020490951487617329010213193386505553928482556333752908357793702759145993274079339081914258459601307526741875900620413820728328884878890399984929203081848044534883326992905045294299845842748805794399536390890760927225102489146226126296770822719179106914271999967305143099938624651856730937339451067032729150075063791707221541888444234895570317807731874043950483210675565337327642402760271141650442332752199581437824022312902123858649783905641830276997309483068876793083317262359941785759518371241327659855830593593169755721599128118860606783780960116271750898897957070944430435180351391529176196935955215920466002704045599502456156343184556455542364536276662610367614729192736979106945221693790653483252762811368317710680192165822123745980178104414961454800875438565495912368472339668837949897893863434047863131868014409291941277705073733550687075509995557455440563298888032236717058079119442955653453045931855338651678372306906621710693282650647426648566032882705236988179581401467127025925029094641064937502843032627684773273484540592255428013978302955577946049146111269720269437466278383747366827359297920732992610170843449790841652971795757668118217204519143453688215289056285878896113834842412239749955093236645176086373502588564837365724328765006632969569574707986300020324575389772266333865103900389908288095984808101579140615587553321265257172386723104400504477369923323077862183240649800166625178151771139346457485926783750918588675840122438436563372201397929981863948186051677047645056128867753356078774426361219491072775371732074814859421776268782442414682361882179904656898804837384847839433933351134072315744663438358286866148032297124167151680379726654120797965675409534606678857429896290393032189080483433538528252288459466777125047431058628481513665994133508881264062872206215362758279791165103385267920982198475258918587176881452380248531046238671333838871223569469591374070915135179908704862015904504656814446569003383284521018966683192629334708434487022422760510087556057627983771409497633740967807195423605567048881430017902868118127219998832832237976805445017640398684900581539218788132820409500421920071820691568559496431729049330345912865170444367149546266174709732121202867429913065759572671420296756787183171742602256705500297270836762546239517928499322016413742254076594637507171000682071231512206295776699547772967351181800246891062303992275219318007216566512317473336454819838516569642646344772296244888743380822216431839479344951495464265339490642025736786439262208915805223811455025137648123105270210705881640374701638920500234952733278123872338719085874453693997997718316208558321403207540647238886301298843029172415924650838910078420700148319328370236927450510962643384187987453492387485067699760600522727220467216474498366914512676682676116460490955179701384904925230832260204949255878849229364456237796996148197155328350571714706652001819236363319779281144645336924004078880947799180375045733813850238685527656602995468380562156607850141991736230861356659824367608872203003663968244165443483962313808936176289034611082907929090489304112288020707295511381914409960801253467907024553057908445661054156431204077214084093424441517160290556624393606690211322743034745431060865486696650422793592214709573371203423294884748995210823826523325313506183298255683293968079125722796845432101757620056331906330783629061938313863251905325077359754025726356065301033268636639362609077003397880776556594117310608937538371584122708481519009175744536119371212854168047699001519215683673573400659014912564685196229449279114129697723000253479291755421616376978556418343417733102352297517677350200015771522782248004306607234016205258953304129977467255917156111326433596327399331751456167686582488803266629422715493599063975267908078463867023062116078203842880805821528334290276181574418788996299576168480232143355027109747411263821428540108221998221510849252373372611133838747521994648410673365444600763748473603580947904563437921457065216700358779347366838707871101559462261630541389329931383326534154783717743810584867953241285380877290237435728168391078917472508322318655086483291068534868248685032940976807570341274313445465365147256194582507000558548993015396015511535210335122712306089578574562475785089586272124893598479643354512776181959436164437533816398107068080300179640700685968775072587257292019305424194868762083519140356987509801601302096237383869034740132853353036824715997024948285353460880980891102604889727898048855826209817403263936631073516517252835944479435012045962953606770967647024576030592188619336119437409607265165662027973685941856441560138136221024712534428034942942927507649389396951322501231968782398682570543076442233418508098408676323023993600281503644865836163329247908384308806784478117783434085846053529120907086079899983074561090031695543297175812583741021986895500710173192803285980334692335484829406171427126010012584919732456788940570373818112897152521466642986042528486727348754536991271337944980510079902355562340209967548998492726881196037566415952669874958974891793031695228299643567864360003924008539993321198776999510731184974847619074088333919105788492643091949523901964628646707683493661317765126147966064690433056658023791286609644531189844671141121133419701823302268965121033444485377681175759910581593037380946228034221457407443084068810531082162624140908223981834843898602020937977621850139860023227893107683476889652932823669201347730066593783013144026011430162470758671516687231034566039376287147660303469782930477182680425606904454158072884468782632436780623676820037415975464310445262784251278415147524054946143680009491905135386797698317080319237530129851032409285682110443088461645105083307860117110346938985842129202112665799103406914243683788618750370210266495242488431633070462361395568841215507244470082414151489185672457515396081493189041728237155575358855679137622701538697164559870556244293765915050373738983023465431340297142274291215949017014750642139824786306317271096373547015368832106707148024247176623768793248435353169605787789119156974713905352155916805064792686370640243583456691615044152311727029136172718036613848276738349830276601470539229848575229530172151725667521957240012292715714405180417905634706391339561189352733422280623802708122962559548468408120620012228496301060092941877939830713066964136775226965472616708297789795953117016209696488249057848039296849175783552269384051044042268654812546430511385119625410636624592563694645026481532339462183008645768835027562163950831785018533957879139796480637164587772952228675272951394147299102275575492936689844086033852315702179862656822207410708732469360639243029280754662233772750884506839719880110547419496187045390794804976590005276352839887484895822699783506519981704442864333653011694238377799445476426567016881831601921334541900193616037511283187997931006195273225004513430864519247656759184985745701715334889639456615491354034544667937531829501847758096487332196298060517190737146754460274354796273603264261697319220812227049602471593309542730635955925042711943760715118235519489216449830516060125860388974080020297515669628987565019121496415710737140053846010008955682784129439943036874086980952136334602743250005333516937385846394581960539118324337687956444564369513921883253622567600841389492368787981756741048201422845271550689930943546771931437415892880236574886180135923840045688561841197350184057656998056028098600599779835889720329002396287044942738648269505534382789274450601065113135787836252443777968742712647919814683410180453395750753910246910464557157997623903683099680618701121971683963698335908435153348675673068045553474259105651692060930863599451692553147186663629545134208778358081163922722147587487363570128982487585971504688738575208127753595497135593075761990661874666708754713280295159934653418227522808791013935676739454607906153012817969131306072611438213226395963316299180844380680048825618428937268682170688884704958624425853227080123848872178069331157311408757054955980214741704933755093303310249878290919928473755973517881757783632864402368330710555995279310809169881555786321422288449144126177996699008627261778203571019941015261569629453962715417071536223710439425023770963748205535269000372049473217626651399332665226503987360387712811735047537167152960302216012117413565116294040083325615687722103536555747422719598166330894702219868569852246046382005735185627190979159513408262288030452168643725797281657349458655391702208873077864974047469616839742290787305346212836004025099806738097217469426911159652104395532702580338561787140243177329889692648694863054224602267836560940331706373434466053975827314296254260258963561272839135791102820327493945223204215166911182170204893176747157599176833695761843773461169832318137507375684100134420661161881683258526795043590714788822587416444522946123405361514786000012808034882626391758328798170218150372735663230170466455097280336832509855696519931092930258188244599647662660382386841695919482521345824688381561518838042622539265902875076536224218355524745197019762975961780049155141897318971593760534527648183989771323438816648663058734178905326364918933556083047793089152123292330972967453220249694034323431475217437204379022934393804377841430287201496402068875553218668403062297150141104332949188015159596925348373714030805175085676843458556797570891949372917380125049220966717751617111987999833573206188271664109602602999134360768547091445998207422275855433182269316340969268345184923902316432798672779424061748020880871690348847733231738914682063587795062501522384357252562023151936779343997231696377924122548927910000314388883527854029536751638344221139335623283741100151623089811588130630249506225788295287375112870150434201489757825381228077468007888713620812883876588466522902300717134789272755861851906572326385704326006478811185436514020042474199767420980906260765992382422681765947132440107595657754361270616583617802250043647811410918269902810876845292442396186575164543020048098179110039491309917519837045490156993249961288750194813185105599217582398667286044259685224835994377804891216452300021067228792768012794075585139289653014995737176466108035147217032558849280105876734919660430179723948881558413658095903534078734305600602255519603940446737040580497744666448694529798298095295645632089833750076713398226337755775809459035776502160600439616668669073736710962220968183034982322449650832617982438754398390951985034773545003323731014774228393943505695131712745535294946584349855374658896055871731564627723437167520585865934190440574541086272555099410765881365098924830170074558268209709725337673440400561598664989172560591181400194722264295025188421332340470634042358545045407025346286579243502059464323908414101802576347216287727972484882399554196749648021682894485044695640617533652201537628276233489947547680547956954417476326992260066829110200706563534347818858283082802547734210627150613313100053197668050896077324288253152710022056863347718806383602130908616676717929233021110917359610099284325506050672043907395007796597880568273987248894458886138416975143523966337903422889145417426040071994258394152491285380406080009298573379486566918234858309953976930589533948271691869093895673567736823242750780044677660154156271472163070340804538886870064328716071617041194838553479251403778409951873280618825934385379436645460710281797301590332658129973161284171764582062260354691919763036351762331050664046020768299885920095081099715939353781355948900085620942694856213886774174772800176477170572841072216214709724186371392495754811549507537404272059240428421897210878595309205259759551308137386789491074145260818089887885406656526961228500838441398326362837972881791739021814845574785008601692938470227049723570791569806131144954410124734985528391636087920714947795709857174823030029397535789134736044255642941448797481538728584534970545366886543792719852968735341839475711641830044145769513895895534626554801592043560564672046379011177008924101570782876347567922920232787403357202844363934705470255981684651032715087456716415846305372013255045549241064212765568602608917437974718686181227798258115498415803180610444196289350910378755092006211844395134476703406748893256489920553182214631574276039301455787319648074035939783454606733103212259564526931957776221686669048403992161793071352871080127115788696640151881245112747537927841148934410213074097657649639912169823876855729585029397601388263362756639838748339858786758077557297709097469385950977379546241323333917934453684786789439626426760317932494102337173742819155172565914260763370703479201494942465954416114154197769837622962672195788849455564265725223406425466830742718496782440590939189877151578946596072521914640076696438593338125062415514768459538607472779073218247188203266324697252138198309128927588992424298310377222564588093648531520148076571740018723983193201539335589434155138373785401047548373288700600796532915610047907864036411017266541663934305444893345513052185545792998890261906286502298950692393976067198235956418615299886671753558900088518272300432730267004038506605204892676218376342920467467964463608450462678029236596004497567196332952171068276144064855985764305620052873172193278791390601406507593729089177430520237477373601798807631473416690976663141360804567579943392332923963061902945511257015719048438111951804516329326608016356934503210694252144727337048319212724154933232173587377082809706880296409704728413838453545750980910650682623885658678426107326610060058103718682833327286316920627601874706490408916661349644817388603395473214349754673445892418940166021790034326925067090495106768327690742305893880999246699963904598604393996326321074905991671543371857833232824734103250595713419721363528296283775724632664532369120375947599085227173254748464757002133584160389138651887760351958090502425152135074965874845980407701723245573829989626823990398437535208994605047942448057615298192520899657164434106549660793236558735032198203957956204326440775445481343529321108226806806619528910768363388630833773884731186363623567590414905336015785284034368002805478271107456875891322109210321147083720431933542063078188750643218758700150095623053768508854454838999754131175243895891248685212510865144402863271893818794982249084118326997581413665811196641056844670770877579237966441298547511144796647928813775355596902017918284154344696856943862495790302610800801003742259187828106026652605091213024178951152641945250071050729742564033154292408300164057949573189132021372192196911756800468124475870380008017701808864294545704703096518167838792612658339219982074755163046687441051015205996799616091001743682105080877128877454938747650027758565409223251833285283222934135511326376406116055357090213545358448819624037027774401199209785876205576459830060056652117313644095242408769614295077618894279487735501139669910063064507273210758033109562836730766058184679365555602240763688473011268245433308440813992792222300204275703635168498426010826203700657255792971350940073592716213676062899206690854920600471163238199684559495450389542573636528984432717037969950934938833282347550548465252088574734812375990376962438008368832157810759278998622041234817258013435479942469505644856893961707645387158204778446891967920181978586987857954643574878531441859741438090515413552223037666605804073289708761396210894546630481609997197859143178983751518219151271999958580948292495877018376469764354243885987585057977255173476899931972457922925267646645452355341819804645635919069462651181261338985025534958533666561820147913220870769858876256402620541142647238188761718653819235267380989441809002579363901674271647068775410512267675875230411753449848114457046830598767178516695188493093506861593458094199249829694306211725962025605511377367585872436625446148889274987567287772512570081014448310536421393820933405896029343133113023711478730007743571539320696169162720822805510615855545411937285943184521603601882019861334691494041097492979169739998425731618175763151843419667514705335579039421165773476137886509054532263015371859164382401426348859674727558428802432201028376287254742699056613190977782062036298984502702567863817874366382311985963146485749546006043401349989952747202935756033231478716146246134853497263292760263302874621329140082131942069856748950360068235125123097939535087834969534527470289988858447523581343099656145367668984559958314631359401504993877382145667478338019216689031213852118510784399042497909746515293877035218806720399310894567662164514442235796538987999053721731899087501341085673074063023528160274952780630987403655764958655057655592902064514886160023211260394964688038195607924138617781202379255028763741914882569565641365305611674416960032154192037876716917562938634766310623461020558495165849162201468541705239168067247246448249253343223129355624097071383139373401923616560875171799541632990466025676787057213342449677006718307862842142107232702902618566474519781887977105073498091419339122191934552422257178360621135497658941073188698922895136556023178330759561606541535429834683830730783537794037010300186599892173350813655756023369009033785615092339783889699316500697038386206385238877781485154784413558958392201153615810640464561532081389013463629545990863540698165354589353592078138782125518974199593497167221419036710533736577271746219516032500934153241572175290171909927091207347584024528204252990582004782690881965710919339022283930343345425526760150574277379670187609299771604474490045737884127641869784845548734450630604953725585695964538016389000980182426534784299471047327863320338549009930019213079786374486616163693929384275781778102992608859183183104120586294695864738430907522735360962831531023664214249331208837402884634379679567246724155959508964894730539354323975623651747304142242053162666926325806063357304652977973394662515737509181293974453897811446137804920408607674587110273742724500685320341864295420056801644411250760349098511725024072457622662757654244150701919614782036403518334295596428550336083948832426411465470006601168466698259419678817418026649386614338440016315023026624656936441434740176169019901989639770482783187173092404666216714040454042045365745623518379747835666331599128392592884596775539513493574876866445535725937781985876682743677553527692964736155388703451532560087706178202184344848062250672137744233132742717376431757380803455877053457111742842258305591837025099436814647116424574228449696697778932440780439574690250341344188217495073458520665680058292788558292438605794642222817058100855527406548241842566442639588611976433560904610996932500099016125069062710533445213296978948794181558819430778412579037136633529524826700668631311051756579173242254751595509016387422784168851898231949683639914039537384215003027131992015917909006244382525552410135115298042012732099773901739875771448533298196676985310353471518789997264903860221427733479284915857402529005667010378528256429091661105432464001998682750052695589688242439366126335820771516826262113434317469631642886977547836965325690998496049760465588445259917061175150110101796884554204316180339636421586068145054908101637141732435886988707456315549883976496011029406440460761496964505159660784457012045251595151450597890055873539308594285348846313159978535954743670948384690161365027200886211320688272299467674761551142195339724903176231784937111386959243495640999725238691588610157612518470223661606654038457189148668603747798907722690421585838471400630355851924846522814489833165829679083413453779637984503663884076181065491192419598889059897990393647804682208702156460953271277483634600137611030285136531460236036350958774553727878439755109827786299005958850820765772236117647548839992910162717907791440497947227181119709657702802078769402661915069928943006297912514050829218764589504761687080890610633950636761596234754259785307348470765298136478698438212868993046187385988792933223362360745419469426986859501971608214678971896164997111349306990579410748839948312307074859652018560604908682893347169934168148683642690181593037250203407517676979554372922322690838446828483193658617209430611747442702536807155155257828088678231274791359454562844759535309099636888016324056941908149461402185593556868417326767782261384838067413134454123874744066609563185655162680070923596657884120003846347499923139022774006315152672939884410387989785057752336094089759572953012442048931576128188998774659906172041089417588578792485196465117730184996993362358897896908071716373356976821276825741575694055650261742275130328381189269415319310980841860702927305307317686363311691602003183757546014704643466212899625204757270996192511639573302629521964312000909199823201312383663428349887485052289191244355832600459875123357340570192250924398679010633270857822588176650252514122229013451292901799635532805036672715466903200210578295300469559676269908384560716892967288229358947251162971943782717902069849193667823908652584541577595002804445774236551763439949637476924230805432680383891099810986468806105171844101840708850919982137145993073827581527776033839893966968871078997377369244986927222733229666424823798411880529350646906786025868794646286277467682893451215218141211187147447512784069542910772118473647846233376453448639547989727802951078882254365691136829044587052335479756528904510777446408689883189962406305131575127184286514055438352110051171116518766710028408074355345013495540287564165698976471065115973412796536563049652513292417272450139629681178977099666079694298852662694783362726212465674909673498355107526491559833156453516873692193529518416964498706620176764295071774048423695621946798736546347932547388475283255081317346816968551756768847033056666922154811801282117534886687243500613691440948745099037187863200343831760727312066790930504689140433682732455055103306969664704959441482978830980205896038525583684884540580466547011075375476428034345675229760641365485742918137130930620266537693861513211605106404895914725333350879814225481372343437448693065035976006344294657160648779863377367317676598606590379554348840328542732567220798776688516945916653107596632953192614624773560081113930841231340946147945999968904614229444046840411918073704718601165159302695651937446610936199224194528920805241320257350112767343496221110868314444570228336400487405508668823899704938976717765171603944876421235187645265133801858152805578868007458445027436232854769809405387847516148325335220559588753321441048327104076573055312940572506723864296641981590583376921680469659835717133209857211026685718535710888693054486907556832266373781448453324209097597543550871693065364979886138317369451413668104574430385945551341506670802631431557683619437280927940807612039582916792972842505444507365623721110972249165048070900168893772203561774324816805095991904002582109495115956539700958054036242895310461586834463494265465781699622578916879033614889736291839771182736815422830988011027016362279763443792606213127641496321142885516813388593721947861335969987282114703182074638979397015066582141449337573561812707561591615182849253349113407670376272242637727629068696953765286454164461584489331315454028382105086651481869994689951993035831497846693390069244440787137127981561896814045859809512077712310745699775343282526943903244461818290725881086862094074992625332084078364131372783377193226603317347265903866527123078416612740010341771483134316850905570134362678526066794908480588034358251822666107024511035224529129563557137216567821512178225162996566613051184741248327367172911039070541458849525875448387449002280552005442510720237989366984846884182915019674123743604067630995392059418268268028541247939701495375010206336130993021545520691014637104639010388014610136505450014679220601208718323816187168283956428650555848095705583114621900023107111393828216684150058073815430199274345147705303040292931152989248458828462975298376398248277420756704932593543237666037373714741389842673974178449536956791109578517058852597896375428014085198921382567797358649121065056272823709061406567606529651428283427760409327266585909542464755972095542794162634683669334672604134356378500506107441788623998335819795832012985190688936759468663424721445240719456894091248847856651671266678940321404684180820108438396599330218239636348481923675314285257832155051664174900130522179900419962571237569301010974746689316503567488852893362389716594202713189711266538591439002275127559768525219052427778528139500493892536687920470219721593064690387395885705626604751375628981916289060551588263606907533352328019067628209378831040490221153226169434231377584559456374487760302142941993049955821961385010629626957109558885565678636457832198036150449006795204671573323104848285838045397403908105995733014639345129336053102601642979226426069410205656707404965744798017735727331788592790045897534526455824590943756155269806076937220176861304488409618267759006335089728129383800762984696636536561102294892513646335718116394644603779270829033783740114848693985103945835089965236419556723013230994930719552729008900127616973165909334588369604227575152251597446213289326509976974498607153230802100203681733365299034179965964828163825202641392943886243019875581771813399273638405932881856125504685656985611138421912512983440252127295829482806534561067733023684677304709099446720248262719896572832987678684052057183132460339670163449334252510736179997595781592686730057606348420112275392977266795718590877223569429553071746783953836337078884438814318215273091864249662597159442213295535761920208025249583675008449271691759221655898469832518046370417769764357126245088086264056201084578035637755976141669156990227168514862557640661485076569760247661949550625867268564938292680550559686724723924042766177854802206531719614142750525593169686606039367728638698629936143506343448372790037151455073843455573607782494439949222133757723564485392851217144550732570597460392609014950108571596540679539244973378918257289118193999431129301892041867732422398831364853533420373513775579986317566738143360930484907528963086207486533029617721957166300630548244681644858553704181067849218142147192983313157511969579189881071830630177028975943943647381298449065397863774285942246896220287930859599056246263391600608274204535310676854143978165801070990303432917677139465422974991175422799519065595308323136199244612830510849065740641674575102247357368645965490368066057798129339525820342868835409227859673337015876296686560096054269272843834033377654905327791801595265784971980801314898703936121516231215992417028748027124954013333168303468101480537686351602928399258251537454293961994137798620649850446232523493534780872549247460048077852419050501629976068467749531753300233059731353574960965507918264383444203474525348036672818753747059830024232829689085153682145520426227413537624511086068426928549692366312291833364993042564429646801966443456837114463047245436959509482324588140970462635577398010536592646474560892447073353348029146515157683441512875834763349056652729360383334483344171911047112581569332405375293980103662337824181241659303138537039683281965802322921345778511630232681910540436185719946751470965624601425174888507269900300253656169818018789521478846790054769110528371682441661505047450379315439888156205328069485206787012503565193102995623706604970230411002988594606724904949721553009973556413168532967714755927637895079669111023725462439890159136502169107569756490724802556383064361200119666876611137500058784142286525651321408030967401458535864941933882262623224428289691804767879368622941062153827527263393196783160179180477975435033430392414374665853631347223026189895113881512277891338187924158371270411078057458862420558486482813828122722574003868840209067881868060264068392955955848986302449987590467791900388394528516060636778217422859585901041221111444083852360721703932739869047933580385967495198391001240940731637848378860951821047816675884047805208332497400766145828851880402619000223683118848000416596997857628610983489751261456862248005056580506616731588126361803824188808013052586338721591697154738543120316328568593432911226094418283454472446196199202677349221357834559844066486202158291989701494559363121001370027305761285442664026318535828981455262381700330324708272924856214387724499033359961376196633651774349415793953677199741598780942895777841915490416908083226469093868689650276132531466026361689105364894307092552728419681944285936865572952811326941045995412997447840073508949700821058657851623704343552536004673484918132674701971981531522852805789196919528822105673621202100613836479534061554315858321582170191204809706559832273717402351205421298213864527462334360284055546685626201042192306659860461482450037037479776097502586907930348473925353007723724815663775675088274335439272577734090680704406756280115763357586868615947839302380232406726819225821699430637135281690124797020537886102415035754646542694303998124296982734301261210905622782969153548138341495646136028769804645546868057959334857560775769703338900152908792414101061109430467904299963498398395607062210054330695890493304558257302204835819620329964604698778909761521308045772175408601517810925634582188848422011861410209353581669552139120640114405574429167411553675973068005235955522327731857096073419534339411616961065158674928390336876834158568662400875627965282565364142872117254794079853886876339840200604575833618590943376469321102800085247305658860802233697745630248745543686713942299325214509976442110985513708184910160842000266941986136514553143117843821202294784713084395858595624260023388977714058068428009558863663090257165801888192961036658705593832708620212710515163297776825606600119373410513505939763059280208804230578184574615798636836026504506056444141382461015612887631851918295472331589210280127811641706614300698766686274755255042831212375098775745470094138331804647346786005997700437966979425966002008663435657168883150576894306719989383333238552427242972860288959934920053780552630629798136953604894993478684889634715800863800810789730170218827392257974995255043019300504396078999840103901487073733507964547921361902186099863208744361810662066342047769407563720177139521413561921701530977888382592608546448663370187582155303372791265953794381648615642982645004461182049766048172382971720804065473086779538642868314218647472836252390316578222802817086028192019931944930834281616807376018989885720976098266036324772750168279154842957872404343742714855953997536424454194951353599940526249752459766246217252771428033370370387443265557295508607140380624448154829267762091903522523483118731682461828357865827602330897403692526353933629473396298241815639132006861535305559732936662604355713163116675820237225152539318183065155482098849103125890650892478280035138313848437062893767374652661437438576874552994464870251900393475962020056861764503765548253814126974973331406293662436443659249075902312781492696107181410600288290294722764237825612052979395958994713761001105278342704082337869884839119161734797591817661325101014423949971971075486776162095819425876503241042999081869315428768046900399950581218432588616492432035379796511037520845175732601762995069657723395727933301422668645692005239561410871493315330850919539441259557020515908252332240444618300258093979856491857392630979639388813156844002053614090413256224242188613219306838878390831040935506023829655882535150952085199533974991391569873500963639601946623813884967459564048014887786377644121434760120626829564747005759387030081275050820077933594018037338544683878230599621471477340397525813705931585193579567576483781879698006489357393064670532197358875586807090653228788895519663379327030489986599705954373205509290163116393892468638426359774007067954475122348638461903327710066547627270374374930417408265022226915341399502469258072821221058189960624064988445222863736683468047686477260976041858220033248673897386096461292395145036658033981804897213772039659924272616917258042119529016865668930631239044682122022203712184054486593370839524202166999985282380518827676880985376537218518246160984241754050665676439836813452417064382641497403751208396921927596991822753409399627423962226082047046233458484709380596017227091904076664065393329380241603014415306016193020046188753689868084218058989495207091637346009234641053160423428552067069289497147571095893127123480344822805080500409586124851054827435230006070845157386163135771871308505569092772983081860017408651028957882192390873357372759706475424981519391469581909497466875571952264693885067387961065053805409585826287366974867482399321760328043331669609548180484969503778420420017687552013498815935383685618504461327945038385929809781372280141149051785586619327278726364417261034977018105748268353527777815637379640552679889901294240990043196083172084234756715429819275376546727712941895963003715801004570478057335027716235510543207453241859920883658848481029476312058100455830282676897132977078888127316495622604016159078828350407554978486616679560298249841072018837286337670303074965472981528969153523336226862381194657033923626824050582761218128272073603714891780988264635270233900285014923087515676054307247826889180074593909715663245173476694898597895054541441162131582142550465076911763557239478679008590648380292006711156193360029431243424739014642978724252406383073206625735052977684900877020748166131416262407110099110842353804554447662184060419397650173290453975663546866985121941263690550957865789339658461046565472494136859683935732970519708594191257079718309792518135993421060419298709992196915476029769511257547838383396216915298257843843749833978385179368379861548200067772356575449543407112447464191971954819208161762428667485550820319575582158775409422948816899581592050194602084472636416269171174718085650704342468581951403152869975766650319147774128912842845633239809586840682513675319133103122317039148230336039703395600169737447249169390526493414930509216654816135729019361572690788022699293658315158286510711771548273161283791176658565156291262137168865045611105567089197099885928071382394011458953720511396033620217460123423011244378359817174562725270649804065449857449789955247586071426593784511669202379969742131208598481480273369121804700117071312031442023792957024484775996988842978224767962358587085202104276264759876240730527224792465763952791961819630438455647507537307316674313216505296174477414287639335183557261825231021198027270299568891298780776185627291329664475295451838763681948963637404272556970135319064632349248106329272932546258504461134346899577935216312162055939411926786059326831591284287351192715438627304381708111385530179829356849078944385972379740310443423785020169829745162080236443371531970677454111059982647742596254812546890586468384107860957936390788678707699213413676671429738687697744345103507597488896062274216889607128513821354252932290977429269263651978887778195357923028851461506248083549426253031275664941821513823547338243280863979622340335599323514003765016705976266207228673018307231997072402260222609087547365365767807447659279672340363498633228409516511839365835108359309629057180599791305524925793488977820110071143457241440002581093550178891855305260884378746902796617896982195811922933687108253036118211942148977148694315899136265831832782112794725522849691871457648273328737705679432490684161837282476411897734790836962896885026403173298886402285913397103319811741405292560058515622685805711512966889472520394808282154933197302825157532865647456404538556638357404207507455191545533528544273914517414464314484509831153811283727083606595193607489270932822828797165731000826652919483291927384595125125530547586499859750743754610832942985678786567776239295502326554802227515436610216029604666001206811452558000601228155572702608955853522437337876063476265627542883413835618632785506471268272566977971349104910653035123625671255864238586451301550718782341713982679696633093855755453952703249209917313175844847092208498230483975493041649998161825283406684109274403450566932236335171382472339514298323461518805818605666213317142299156494258446011756039262305451414845605043308973829083057292255855052277708744379452929172679842030892473900556055330417963042156557020853077324383446900731218817094196017008240023674640676614183344586569556491376924409278147111590905617084659999354972888160103819039382192325051144990267410261097154213282191531354333460638406975393610474183879344852026365797203379757488691997625463540475228998613270088140910600088247080924083809696964818485850110732941532647937997429148612248024370703830762787876659665637189448982060589292858617893297163537692625611275993764482423548541596568327779709365277302347653268546888670241156261772777972607704112209316400890910908758327914559952322110208039348715462198785448859819031820259993788781506496679114672741516775051359158008688823882330784967145422507473464930814794637895675462186921518038767660223134728911610072451506007946634888187174680863197969627523197276798166620844139515992684774950770373459538720952521819323373503123050135744587066333080874046191124615065021131928562918411562723301970050016978106440402832547055669920707246747509968161255133224495344140979701209412451625144854305296695624196216346824316162249877351758765509152832026733364533071379130349458964100375844227065263242100798533365498634611075837625785318990718906873987977656211307786910740152902470640476770371119538866724316498043003564396267710964874749352618839217002938271624425152368938153947152918318557932782467806811886771444817986219544018402419412943894231814681923409915093255077961367721882830290053484310438206030192709946761066814343539978208356591296965880207742948248697823502471412829176216241138760529036322059840133376634767053408698400882876364972275229323975169225713447806872794731842481141112058145969901150572731764109659863069252507843690220036704256802207144701044524271148001316676098746506953519263395202340697033336358617834368879950363755706521401259406751736756433773774329420067680361688176274455046099532252271281154388761970994541946425288408289028127254797560191531604786509835243113647744734326565306853691756061432460869886580947381613013329516200544375183411828570311607824354122770132479106345785073411661695366351604181805182069419463595891595410387378246672340981068341959789178149981285354715323127141211755929384878985288686671121916638692292373863576767756513672940179533887324176590425883757799740982783909845890747450194202166822470165526869887089910707075667160217476966638399271089401784282720372845449293253157452843863016576721736747499604953346610310526424050507046948215905097913801159809499325565445099896244002505246296142446235770928599724053301108919950980068149786188968276033547544119795258193522431294884716554513886853590404795920244079598861189996388471286749022569961297647234450812126301354404119000784400582276210846410556284002716784293596382581582888901694579665012939678083694846505271440107524884887369716451567357957369828585028217234806825236474829648084246276777911798781760974021373079924079697854571456154839488961150121244439207444477326565185068959963753332515107456638563588964006434677518704444664041142019325553881368344327701555821760468107092510884337950806379338999267070524846167318447265548993532987933188614490942945304463230114981444618137812486729828917686791123468567355183321773330807152482150004435324713167863835819316919154438907480122977487507979151825669004163773636620184978634839017962525207541911382781194940590290274202504277725202454099248400280023159145475572727306845939290093341288309968372484665771417259786759058600721132231279398356619418203225810244573798270766965737740219575469895306490516752878276333627744162954470418992127048051346249248200880845713713820234039234208193844044320151571469482461652391110862999971011865954922598654293996504028873751768467863017382113787194926355746779626203193159434689296023803638826380293828531954737739598786469951709068347971178295179567848523571147217190448623141124959613522069092789152994283992039685845527629119856125504679431519395016793454070811910739122186758912460548128449946648697803021480693215250693984737050903192218500018813910775416693284954753844304671789537054823026974321780839940336612963649652436088274878635639448903430849967166899925656806293366418691305404123517802868950855650208049267408109740115954100789328811263810785247298477226384096086166053371979214259513949129770348898153823207515160573025796897847088821207698360289183535282904026336122298462064145581144680262014430763185207683193458972336989674652572141711948318452931059916513037464162381957812468771178435956627055146151482962455969218164526599091535206480379641942604787023705313839832827555615650126561090238963360511904391116325750839573698878988198740528266936605373241174354806386215445112089218189592000108991350840663382521363845685677834041834305060966956719375276921360673336304512535333548835752703669100348181321849347298371413763832141641099395957786392123898916434667950725872700737034068241772891694482922595966606849319507356028253004495033302781881836720554298115516867976230024770162092903445665656317899666999998784952562556743324077997975936529369500300800149937816077671225432531817525246138907688473545274152326458343838587368886226048184367613122729558233405852440438124195463927561469281484165333123803263318561910914603531236527251407527175527241696258596785992737566574443175338046825867870992785088469133655424099840354037241586779153974703234621696021919205230346470798026110154214220244335753154085078044332778026084178460542917158559673508685786877624215647221425349892560579532483999064478535828217053066862960701289319478132936918605706069167236907832231076555872602482148369638459582906431897677524315283658316233001474766537303516809243812818651987815697174893001587028602708128144022220061262487650013723853233200847999576159929990486635103969006400810532046799526751366100707703826258992731008201377985729571708476770405704687526138162145122990413734935417057834001250420937572693265646973233304299835551464825729257391599676200768671017568153391524549095738909339902391037661156346244808499525451407612735643901173944223236384170576428167730148399627799875749035335762761734927408176365422304421993863461657949379745624775537733482774090280800406181308754974571253869506494583524711377469819062962665301904236153355835159707246401645175876738965914029829752908576743201583847771441042954067318992764626179525278712278519745707083856181103071855273123776669448467131131173228243396168528892888021806989767776508696365399031468702411690366965322004175740984063182208233140977634618611367167223944323701627828295143174762866954294251996279974455879658392459848245635572209396709204009438853744703942849459579932924323809566545247877774041362780999089585054069301110024095669569243663655831568374517443716210877923832685380348876133331391928006035893878050028602604520903966035300961354431012733465921455029267803976854747198728190884262720605987125295626997132890731949638293470119191508685523288221121931208878655918271340999055850762030753829565265802715511299766183418809306692998749127978826142445496569561909316037716627425615729179977025294438873570633657440778569903138732957191765725681683416372077011697650623572885543504102523261439247951883652588908741946004521894926907216699591336660059079438756886776670400826679478237926549421637374896210469112871415114844327358555799710130921682564659394667353706069521946628609196958437107070459810539655054976431159758069636344487118256134169929098313508158027112289525759858401849114276098998569862838757204969280477336948839763033042070542923488034329157833077577227449213333486796696835994285040409016082554893978462579679954725496491892652421596446962634663483439054574610802628716909145976281294431777882450029318550364711932488062379869875667491178667658959495217190291425315786995496595930376089119320447310679312110373229382366653808894263669929000753265360263378620048935275205144012830059861098666489490676788456881239470373857906789409144075233275240695211503605534813516031490671432434163170393486265309903797202602947480768829088847643377003792643915171255953802172445526578987701232525792809115416279961781461983017458860447044559084007049548221356857694168882068530716286610242862105348621392308088868646803773834757526522473680772169374205019425929526773132384023971101069241897889698221845815071820932217987231244922285427155333239795883054435835956731037199595968732785800664034666562314746636662588848368528908680584229393351737433878394203448757142740724176586098165729081201523737578492377840634675736584953287921069606148772335632382088749094581308154309894544793529200221905846672147899063697730747511766862090088786185874771712450601607364352016066530891750972083609359370174365526804072174808974913200148072269776331020276571700663122571598494075616264407936616528383516903406721750786685131586037307892812788941646261709806635097114062379313953199141936604455124673321221038820967427115034955201801068368632066847732185371727962989800039370667334129852844647490034703816883576391350389274847599269458209026383147534572808047400494461474263699588338688720322790043656795514047526317760330941410115871122539079114612845648873681759793712981884050998468768311589461938421232063734809809044165774661249725692875501391838468713204080999784038912490127681859166128092467004882163151372373333265627601425682513668581684836643915586740549483865159866467390973325056503725292246636383138862560836985190307419595999627786030845565212977427834862548206582819742525455499517951747994640321370581652187821420862946483562708820250569253262136900577890138028828816241645048967980974490361701233979719053008882308492666568658983586295970108151380872656325744377091656954517466949638186842135906594530442799589354342200050465261696590405751668962265459001532819304591685930171340152341387290118004890256623620821016935584301405141511110503891827420905194294622554296762106344115246099123998902060464033557686440292544448383882528156379370668734085709095481845150504278661455752929842443134525539903900361587454162228514136241264451291331293348102188124132108088052532905971249939529367656737790581815740307158948356436306625254281775328227222008020353616123778248046700969751441387061558997260315803783528639213478039796432970511590469200615310294254163517720383416697231741588336193736791605160038061971304491117244566471389459410253686179727394134685635589394886302659365507214526904266238421976607503407658837796946631955598404326064908112009908573277835712526746670412739717739778108521612409909269247226892084240776261377742169263977295848304496298508361988527627833063656260768156762080499014772017681054020255664671965312848087283206579335437968340916853236422814280796312475700116833928386270961510522164477826419213266467765816186110368186947887467725345628325374220122193988619728792415460645935218747345332659363144567951696751880634712192522361415300694255042748730009404988471122513558406848283677145448787268272718210847873706519621368179583601289790915889201825754813132789543019311794812005217649539267719758705888765943943075314041644917706035934155335965031117610244402559869471485449745090152729603684605738849036538184206999360065140209594947943892614227933279375124824407409262787602587779854553255909113166004459646377488655565996636992709260921039900529668410208333512809148901264275959084092061855958096054925896057280026479549661614477739967017322460523397493551673391807047457967317897725496503816847959989799775247423345940854706719471505384671351235392219767134981156752609018863768479624488700114760047902172829775851311988311184645158123719404382365229453003107515272999108523326745027001807259462040270454712295242782995364697726397508464008777319628039891037180798749000246302105611325048922855412199393577166008165773435354864082240439720663032989584286966474187582456901073441653262562229795702451414892224340805278072422941490630729066354795652444122179038647671520207240130864798788594209044001017469461465028432616781602476225208957623606885607800940486158074320546894042866582518923365478046040803492792079891924111818395010466682121146244252644598573978116457311509311448277933958305101846923906881015962969904144958020529216488514224723262132470517462472784463196127105613157685533204395480059658885605957557257327180151245876246777904594054577233024435691004106931201256224720311970781382030073323208589910992103175397660849489279376596818313818013761122428728441681347438704958003260659921360498252916213346603995500511190451914986524461516060918049470120212215292758143569307244888135609248823216184930473626729883581076738794703968185694062957683883745020352740540908191989917608468448289098467575011548414319916728682548806009521536028346523418743772402488911239941169878732354758379705197008567957533074139242377577104697041035970482196562540690953964403958868965983980339875261409927349449841549765099396594170887672705991310027372583646046234810911997582564431457916374767554030126059408488273434876464891039980073769475881870329260416145136303706129971822838478496840930186572310789695806235058136303550913569293532007416672274336136659849897873639743534970752795460367336423759559357293759125978449293329081515021786242265801694205859936226623086969614990604649039395030912047329507100088930730408644100739044648518309788062838722411042075354824267088849358607496285847057573130971067156496285349695224364924217209824173040735711592438713858622836895882205448713331723606586756782913948360135650720639709270499323707676447175321030367305787391410880283942508671370668024707621836084785568141572638147218020655204287100019180539873302629626768911989458562357166380730247996281881574801360299876010725242674662041980870143893554800593252102251258666129376317558695765816949813843841783612119234984939247180687118579399643475395860521928197140624393778933641106841646750724684016586419103108181200445103674709654460511192616010286323601775471961997282667276325133611098928783189530115240323329031611279251274256724093783319770788312091034215886484012607964860354605800170953939679216831409526270031487923309034895943593386544554621300759192661638488673748772310112120973228737323003416190908199870394472790228655426154618684587103934352899760249437490522235125991205120112432826319137358968995439206382454201091194272071480288757724420205489824277037169669692866250665469927914211659022749171264051917098784591048678570016778146057058455690794662050144242662887339128676406788953437709871825943326760498068126679103391425141870370286363421669092726022565532049140752817371863090827119905530516714739842543596654510924681219409929745310942470571764756857158866634243986097349087478292644899543917641702972871655577451118855161318614890299828150980117990241387403785221959535549797849529650186724070072024520141269631670733887844991462002465701177696636376936273803891671864950500418079755347325576240283639266013539280601744856566168520872984127854613410810775784668234797181968339332125631188768254268130614210352322978933827169351020763114168062743490911994120749815509080224394206970338503323796405062984671343360502037591747899249811212421668888189112412925213524724582660282259449024822391879015439525263820984704165182636580334874602088554935715986597200344608089450349835565445502779165940360524146003259924379641487832029960119870234675125421531466342630350402409688407232107119786809281226714500820417111580996205287151049300334983988765095468866602519468239098344740419809045447252167415413974773143775205681189817673226387917039512421614533891266840818358668829634784368649860755553289167184772232039498685747433973590207244913587380141050775573002889924782606474821177762012881889984896385753506130951498682204785403991420856888591847675821792792663978591913474026893288767234709237282827573113929960050929649544848540160749919783219431166698157442027411334084502077703732687443990871061650660863638554414956320761605082955943032027910652201557788534654380421661913726199515271207608125964517563479645800640265199829729262175543497507518535946402131939973213638685883422585967176322685944153023579014007779855662344192629195074557840427093659965018827914258214420612001404656191719732988297193058608931219190998204865713475585504737285565674738459200352713104617705301910311803434491285829272023132205175774112781118104317556112961534053579678584941549574360761311781388960884068457774425539363917592416101772081732194183597768856787609709687277578406750161766878738696745704663134374242122591044993653011728744928688667448389915620753705271944686463734502542099702309398290917645346717978049245280557479500513003350703153235683150582247806879101705100573257224977286994495471508134409889913789690864505504836953178176333131199969934520806723666394132403881735440531347193452544388674993914865858641691195825583991204803654278612842245331389129956163856658823684440310422654858235027120187755939555027355761808905123934942804230786455796838137853276789490727583340826407025570519959347136009004077539479802131918530752524951213075584210240091599537323357992617581938772127345585924828836120026227975959633871251998686037368836908115703153205059757701390056861379678922467517838099584929922473234406245121524942323902239004798853809518832864165661587079241043605177803563588792902073197716820440646289101599986922643796683024307751624521925054659215710866068342804940676325418992409973465809043773051235572902331868769125971109809554488169973073461012364770917866690863579789288154575062071111458550935482477517396361785267587528700763256685659821629527400297735373579227431793194946581244149606386540290051529392189437558986422314705934460883254496360787693849522114674969651788439517150639474038037321145628244454271740584071879376802182773943433708909060328688733211475168045822766591633707297070450373931536337723525618891548614003743881686333256480236664271135710138897126317298190916981550362873256703236504140641587721634051189973323500912538545225491726069362039194437217989053511360156806907350736847441189174066366809243041007649015955698172181139073342808079592939796435314280685572286755532379507239492690724287379902992702447150654781557197794388653440089816503849148947156584842047574853656212114179079443208844835279841048089172574374352680081746799994249323630516682958825887912614795729803868758842602467313723313917352770703099810263244865273957919610054294646020236403759471771408449920712277035820920254597066245655573678351822969777780629867942871656864353185678981187099975812911974538827824146429604220712243180562323223106831261948348427155197754271479228471011373278921186510018574527626355843617254405349138754015079419018686237025420227189776378511878980129185385248909570344462326343368583554699915039404469951235860341669583440424602929881339566073535993123651199915060316394277962962479400357146441395981067312291258657973919694786542759543271629315581871045110889623828102607952789460904300138573275094478610032643200424484141437745910642806869099347183617228213304555095993923747832447013489327879519296339861471841817405677073638825771083308882767068651538334118581371760668338144526437624326075922386276044564636112000690892120662158676835507773017051449724747256794481360226155584868080575056889844631540666310250839250853447255614119614601809743770665909457101721719994397833012951991209581242358409224312641456636158712848457100052772500687951648735648194227886782990537669321623433711802979481418224385036440793454574306257303932930874368349102874790563204934504505314182470744614060012817477712480765045832651912224718559317720251094805738445795354635494180309719060683511690187080023483831297292028907119181730451775174216350310204146024160988443175902351470376944688115123612704449993654364323677887151118894840602755105517033815744732361546662554199077285723602536562264351467278075374801533318662850829331711096239234751441742390439912001622530907162523100378357714389005043517558914890223465582664303539569111324335476921796169509231327467299294655749916081745260845154389255817986058269172616707085619808710197061438106078161298130921749380664782277964432415722838008317021652385169924366567354917998004322740976471184133897944451729259775716279096415771273572196653495136334873482540695075171038036722392888577039729281358513256957764416651950002454938692916802589927931142306394179496837230101904633178591501221307191088331058900964427963356614503172246553824946270219557816135774243144501805521626043192910337835100444731764914127527098469285115931637456778615510162785475288392028715048689727111695211027517618547863408550746195893878051051544524707370925931573915259445396055440574813071804641964390074111181166891184873770663002183754684831616080946250734664010569534497617559236166613654595388086190445843776581334103826888649534828345808140966453870306909966424432588181715249246990097438249634511805549298650273974891691368212096540873905113500337746949715686502192033510277133824570721756665787342695661238808393864026575619425744389379139028233731492744484158898362130397974513733260440016482187017339788640881440450574033701185998822641944635592411079599741098240820688604103367642315943483630483174618980456814460865546004810594288808912796582369297901987826978988008238661377468312914588894681193186093097632661634662163917496759613340268048657336545977346815393090034602065462669161931770287950554086854558947709815532797429331257512832608751515412156712318167976687067990250957265492203308986362474168335168606758992722576969809060585130595778790598347979814842670290771251782426998163919572766257660627945565491671249174883375395897763063261018457171021751592654499772670692808559493736845800207644937036355105353831328147797449853757504473509264604812098003017240997804607225812599246233374650688550024638354531347727900620566968223596539474964462791768483651098035129775644997134198807143648256235662181627756313153828617529152139199212569840953097941845640395801883493287102210125882714320239731498667113149108541553103922611162147971467560114165305776919437986047060101291246797775052106377169447231087966573468217330874991981731681885340244714978670381134250331565651119611693203345775991138018360470424889568082014737573055038167010670255066118022150132614978055567006250037284464137686163868096562087522431999344096458613598221488525426274936361992381541590287027844915795745338133181329573722613029888830332443089175693258534904407062161359820875464918600625638431589565851247601110198970111133424011843637169467244328011390058908593314922644380278031551951848351973327765917320189969794916378387027382044909190663530454410620565621255761322527649794265551366373559252792733750779992408780632410770867300180928315789776456554496798919186870023804864885707719672658088383199952324879503197581635419666930745517251834787576622585208511815800597427870964846891227188723167062538053504571777339691338408275701430540136436337349066896710612251570333629000539792862209087493676723271774982195568576997411085788243867133902653420145575513743551092093388731826546751572572361045518112357910427673447943949704726356271914422133131361052998058916656029026765471433077751921230774599379539191373598967678892855021412928046242712066909582880850227658711443588237832748992084123079562576333220113710691650254977824159964875032424899218836096302441330296814360502981148099454748027707913771986105383636234766445946346283146156962489799846596315744059776306224806259765405044901735603178832228782775946945112216575648196874910034373374231997171719330785204584324894718184898781867605716791832079207920372154216428577268857167205088218792996953017693774318421823494053521534329055081533089143913765056965607877051265114630804483401853395113634461150905592428341489632947777994550417110090693524243931773155658698828999175191367095674017466583101453216141004220857147132608176317228589197344316045242212689599608384334002205843396886879047150821714399706918553810520347642046249827376119882182366919445513059691397787975707030126721509133024621768037981300360041398273469104970216835587792277108608582545927200689887825470967855217971271177651990119531641368597423591177963553597868092776873412498953193530239263342996738987897509533550426994776083739398880741872210991625354708429939904615290684223455807698355425413270982461040466708051027428849965512746304090353260866055830224536220363472987930908116479390960059248444931475543966282428381291253942356116768424140985252458187182345865704616603986567259206346485143555598459366639192603086903315485872901537973456359298405016333001697125863740625367652087709845027626810928993020029031477816542061942546317407516377383869709477587877224647439653481966854430993845127436774630346053122383081112894368317903681031769641752197241873846744425944731443256541161835075192358994321015272663744779111333487915492066063764991463222049957748674485700540995981499241273419779297277749718288941099597097930333327406178133488140755235308429039236713772215487187329007546351793323355304930520877750295854329225785259856804272374292683376848734682725938029821074154733911003533427370446669741752975422474702392798086936409120014268893564023657411235419823799674453066160450969296456492266487791317731441065311476831610750850993251716154251069826691498794205080226606499020857694348540411058034342877970975131911600365576863582120010512041028528473985970955306560801791679791771204543643084608574470668460665703911434919230308775831947857465128918868933364408808167112268493091700698821596721644248708008491031103816446266426515297490035123451687249823284026741345869159619973088328911641930548862388072121481678314859234702971991408259065505580540417521243294247847518249671956793412575274238685088150438150936688577594269777302911160009836037277300180500919890860341580789180220130911053586269709455575083252014335807441315482204772574021418394863754180978175986507759685874323853212038247380038113142037117119487616970208606668882000007251164383267893074708038894710409091903107052066914772831153873273102998345009739148411989263018064178699897471019497133257558805011196161677528336162602816435558072403308610122730986381592917052287107516933090211063781067010333807093425594472518949049607352765802328675273937894264518580064973860615663714985671553901413003642150343675893308960826694246114269944660203246476615031493446300158742987335456018797308495602053025728651582156877814967724388858631528028037331222977586504753046191806620189610482334907805327510505198918095589052211251236931228201330457198658275677200873796732870460528617150493353288222911868537231735336392686788903290160774795269140894585010737465598513401624144931473974712797873226531571302150892519838159506623904320108796038516108808611610726761380244223524124275982429621609640679358729870717057252992092016119297354720175466611941977852686925292255894365372609474434402973160148353064867174922629522298085577705424768573905237563833145202069234912003946196075698365977828286905271440308211675503037992309660887416530895008621496811498362292130327919309784598417539391382487439591631043623040350161245808343362055347458694641944598199604636015183008220071789047531323737149825797702485675584450337878127443886647326523109198582033772615314987826796511858621970999009018036989358260720744109198995002146097243623640787143778197030762030713370996056949105933927720438755453309102019237569558617169630118532649247429858864231729294917300967308208587959713364885833848984900383316818917049870171792387734969520300917431917853675199607948584915044142564758149569471212332543778022872784710391051266077580527333929996175534149299593810009236289852073640218600690530841852201973141184584380583701622222440390754026606614135867799618816025686477114397316724897724668968607084000784320486473901069693606473659124339100014165436563340615303146902051728024983470454269258768718968019461413975203226074915886362121037810993141300767775555714825031383471013991384348714462223343435602450247237288230324161497994930959282726128912872117409367391534429246382230925131122536249957582930757437643418612432565728107672109853449350726245850179975709750878158247562766496133811971883108501933106278219333655428440708902118410722819927998003627672111441269958255456250772256097094654278446895475611850293268440269353630310027292041319254465870045255886764955077223047603499188735107049029513130848812667164096092083136253583980355988936193506672151648799248697195426716704624856975826846953143122213162332558076651322215090765411652935648388900915093250281085861793479557817374276401273668218283752801474082020566046614298137882753247907571484480631822660325948634539858143685672723214286450091230588884311769515392257894791225694711477618494074596581926782680871141811346025535148774646209932098055289660185722643397770268840578146674149510941482942611299746419695760386602703170886541924414616919263638315581339795270566786100292978323642962706999911041567004958119336561858956141848105654357606859228211119844849725047715248526833225246860669368280844403385746440416945598971700690301787340960989371102260028759535225690092927485793653640888231207915897925683775011901103425808953033744982449998821919784833413549891723104845549757162336106280199722168690386443590249317124401778452730919049004939166749830287536502131370914850885532115102638641189616385840931512673946656543289870913974293454786376433365468107106189359171925372788798130343632845931854777298015840409047644239971279576938443851264745683390466389373247725236893439542705825218373939563397414846495953018083668272492019208220744501447936843891899043312919874083550800179645518158357412597505082856108299469786144066507849778221249881966724355019657078717803752519596326487398719395939050023470841125978287128803748664552134483851711549911357441924759818159181819827007930540541526775379502763968271312536313087668611150314539215716317640162993414030243465853899074652948678108654102982821671256080426236223824937457544881192874313275585633104533956478722477217851294029339030299867147122310737755721573857574795298296144636810943891701831190177976480197775238585626851565350440766824278660960377732507544209599279889023388007190306610618121920024900255800597022479069938499170064472880441336320373630354331225962443062984215549252657133767001542000216257645874932063432990562716992708560663913556703992529572057421442847327450362577980832699653831022161621801399300030705914470672622241713281224426795430793216603940891419732639951551563282230124138929093156114749577450184413805201953717702382094167926686558055005885855740037325504704906553497051600187544525101081630264104479131396270093069399379303317884905939931134973484229060166387002964755349868464181488775846957492153989969144449963123262975511795578546202847884172463260902881902181301797752828448377174586883917383106620022621851640321302960005713442786981515643253805289647208236539028695134784494267731786123995023216612182264788818937783783621147287889926632850547097028366545501088287160621952816675473379479421295430267143591664359211125305515571569299723688522624018594192660733215290532764190328909570584493305644553080679688808488147791456198748950170652962099999252306283474684117627730467133540224916706120974848962988576310760960023233232503232208489076744557583292033136632614921155351274091112209991425836077024657666595789365180315845317057562932050864115771959820833979170628540825588254608021489759161815316743268829139402913205198607548876141514454879439656545357943460229387386740617342996730041215658654063086460708709105240275433505545192343157799824971778836243525959156881541362354315016514747025919534125275752859477494610822703489036101765209676082430625368609341646984737994044634550481432532144652997337482465162284288463029053749175425619107615455779711606875930150031083336209179056845775039102753388392174925524239012546091405951571425629654368532909218857102389523743388229295502227518858159108885576886309269844859876405230622582900305235354316700303445998809656201862498708914802255024011035741228668696949031794058438231983334422070205729508163601986318996552194362682550483430573680609391747224813014668591730746305364726175862393104084892074828632119576935278879011006565262950955939101677983495616973857438515508714393383483307912923226212207090885322840397498635522251087819587872535471579198186109633275338567581005569614890282896513662085493273979852369791243306964859287810861180350981060795927803837263090157053569807215442939770599187087368294103326464366864718789670311987463900125687630027466627132388008612466025333973062038620382468103360552838894008574833680073544250193814051715638404676790015193791351620078226449844913710464083759140345677708090418936099814135089514964237524680341641475040486955565523696849637951066468310652818461525032568931029258496297969190054909012723247546752958559141744007876276188776119214713088347665217375427462021055977091803900885928954708435533786035617304535216874389608722230164054567457195645093713395850477839585026372896862310547129234827158778448300041786640372262752605339480907130581111272623421434705587855905196008803125429334778975104968968576520644527685602749853789850219180129155984677953175097858855630866858233390519158704114765504280046394481925618395649980356355140985322151959563415354121906430480924251495305283662087338274753253740513247127244825868602758773251530392931561760248914980578453442432087159966130829483091156171576476935745317170241570332306466393526236216648287178240460554594920640619371445810735419449518259184494635745236429418866386084537454465274785575909652440914067636332869322289760693616324949134840465348803009641141815533011554542874863875815721214740867015856803700838119967536703537199303720231427217935424131681825082769909432362774521103247949400740445494283800690361256399555757659435700322743337464940069904408300660728059631141559831081476538198012591643599698755182004695000179809546408322505156282427790437111419113461710103326634874683507560597600526677186776665265019524296527307840982064484950820131231272950019187805841584516925223997050975952999640693784675247069396422901165958512971145069447695437925228567512289878103321490424262846964637658815101704640166813753293244041838214011030172443470494820050454998657355837144237900724292673250090655847079779155203389064005946511762839218694280503422522975008728676886425312887404598301776772247899359744094936336058767171213462815503718891904361627841330717955855984460803612966451407106893328234795791593093704813727775424873688277812861693459492471165843382545505147525670879405516376643204227477414155102009316235734267288018084421663398403950834434004725013310937746386979129486272418361200688356298464275952694845755738824708107217300422710864843326358284571597053984037687217052707173275739149547477599188897108864586520767856168563592654793568529148056859943691261741121794970426350851758144174795596429546821063982133506061820726933793172623128678437016126068883371616139460038865626303254223470453735946299715303646733008823234503154965488048621258904450532626793720094931589618027290087476149111563657635501078523478840118793651402814632766252067697942723364577847693112130891841669632068099866565739932872858380695023426691054374619102502109610490764718919953118075746006824369874201306574587966429845085751781911619508184245616935242434976541915312755834213671061891549135653486062114743053521603505838930845645947650140669117654294469473330904359862363767962641820984048671105223350585376205555230519227651963509398826278142629813281048257704732932125992837515970990575797895639352655635790146386462905465818176707068563283599794151401138127280279357703949367309823464790004110850142474874122389176194377051197051708371521890935945357934740235104323916826371557427838656044275046379010590896700830595978059125001320687424159120349030953415267502081046119505481453701034973448585350187867793967564880870657108539653050633934772749354400585801939437478977343230650211979064812220565188354739633598827072853946912675260155359171988296521974306272990834576579219819527709672258132279851054467236042346145971596776906828485149859199114550080051327504535896715081426980064269411890275142963374865039737783810946331796938125539955643179527474186460715869681406779771090105720111012697046282385157824579511496052875834411367594270260492641306189484943061961216940411685046656400254600046915179227718634861972383012287358172767488884743660703000111110239153593134837022544520312441474988254610133150023279354406122643756281623827425076953438958770986262695650312240794238109197997673243140698367415576230083433930080057759053394158018308670933068165101445835761342040650973811017675981842431236797677958179347981914749835418129692306783509768486252203178011840383737659762306105192160913509676135115204403594132886209892404070651123596185052750028087572821372295889951992103110526779852855805369165743594052286641168244965481143812538906717620540194071474263734341337291539725370489529458006593164097963558057598655722801061862281152314262135729897682840765197249314895019465983573988845758206984424082853215295005235402498186335684630160512461923290644860842614747283178327956323246158194164978114580298388137931089161662180901830903851483611930751472540784352723000066035757431924218278796586212301835246041476540605707323074922962187649059160926922009960877610492621350641162087809100034648707359209370290090960191890859585416477186960403171339579078381442485274736713665718523378063285175073533926156570383017716988615297978892983740607344088342437027895016487185500646638561329214280448032005381845241920936192914157175243184684440429628222071470798471200129642813194317225171617756071838230034590612480404791881365491530938838944693143613371289478467173805545965742794323712959063971712344796840978210232798014764133518453777584526082624595823847704868442917806270102385328122774254172193169326565777165698207104528518124650076475235285259720531784154351294163302968277141584251720776581126102383616548528035891561122315037398913081384571242606984956618682436483501687000870852734080864212028947118509708955952208287127863617177246972782212453731395633359118492747898102516923667168855685135849024106723531051314056936332474099538327017973172600303942353794906896410539024433263693276673845906752420670706767382803038774378779318021957210432707755850005023955463183142833319220945389322448934460117816779132389328308247512964425419270150043136652791458339513896775044164629736581799424588429173989034294752596368398018875726691039007746068708101206055038096615462440283061390505123601615468132080237898475272850723258267275829763170166077159522822111121972785286283933689476904348005842211086720582487599159004158963721513880009205991197891598474279562522272213459396089341726587915720936240334981914401989337430244902220055774434245331293849259541717479375197023257427781806744840466391104022514849606864751906972144292599549427420832058317240679483699360568832539500766055331650448307164400067212794025558365133444654149510872283860240038933532130186504414414304289434493544247510679346034735019063595353778151507610870111796248550131676601926523410719917961751288882558470118779546408930122419623599183402048876228061407774086217212985645195566893989106644085596175796206380637372538120862935587891542453598980638265478668029717771467983562656711098428537794662690002373347501693107723354729608469494742654341233531872399180976821201795817772359708888830983044475132911550158595747965496980874397147520832929687294343720476742877620538130951633302778217349991229811730608124297740460913920675050996271736202727642296484216703483021047590568929729061577501726368372814555296035574534605895631979752338693199560924409166589703718187720001544033951313353908153194783698741911002932641558880055470508082150274131601117252753747905483275256622181875613430157048732494671460556676164021581992818157280390263734505405812527137544557121217950441313226068433121344852593340649993531535358736918783293404296715973564953050443469790917875307573518713333563632859102322775906160499107591863669968663419972234051546542384988439764382031343790967427249215116175525695933199935603364323470917179807839556434067902651268675344314521978758807555773820953018435245734973848947722276549408555877735895502181622342677433644028751827283178607193039772645113061878823837783105132713433239851471617564464738819135432959127723347688506259254706684257602360860097451827684863641625866276831550709589459541407773816950536198846907486106365861959496980362827879587501497317663659336918233268443413189493905336410989335353937711126747746222385040789500141510697540871084286200452431502619807651264534134321696207035831183229698033509075898854875717691732353881875360762758666416863409291619484204803370064515511115237673045972724472501823754510917172151264197275352805545433126493573552161621080644647443320631212498509239992440054519108370344506804896543148196136263271953281062947990390141465350421101400569240610157013149933687991521021930467424285362878203029521227099547171567318281188366124065707231483036054165889286512351730469349095589327679346956435009269748659800558675674926357896402207867826954500654047314730027076309138117911532950119724644188336378167374087829720788936679395297135317322003371489696902411102540725917612157861618589469647085186352435948031017379721055155466119413424766519000097839766874181300548743178728064631987872701464813520518949436723743207976200726926289725961415335122775194142631790502405246416815286236395390511472513817122592969354927223979349449831808164898125411435738572645570923345076850611899613489652863581262365195741723506626936251316443531865913115084004415305038196238257110167328280869756336495564310898403822663683976698159005768581381071159107070304895274446721886826685296441484378751971206704125042607983160627485000233507254706902876855705029164788080203899058162322380215629100568927477947316787434185841323798015711857830614398263001284290634606102530248403284113439820137659199739260888211426986402218192393983452544789178916389111430100357641893749960925523915219970086081986166487304288195393864185899168683880569788605552635990097545543645050386070636594520350417595175476618433679462118683233630272492904372043039943058372745587924655861315583863049740850002613331628445703718337103303555627987837201422530612969820051350124957082632662596296631923407167824396752809005219828695319457137200808670757058220015229892977686139437265076044751769333801958779685467530640097468337703953853887781621447301624961583219875911646529726241343839334859960008897298706486929757914548782481595665612921826867744851580021737938018500979693138191772139560705134548802865840906111799633341949620681762773631143665853172151078496016131442071219979790143393005825569342614622408520707374555721838447329824932932867948201013846481842926809195388226748930163688961318445537200097961374530778373498439662599546994172954954616623198079624518527852516594572929375336729953174379972961473672051657074263579926186421744641145451945225921011826728296507737062442168351750882876215819219132054234258842255471133792145197727185858413532541512920921086141232379149945568961923344371469850924334596864333103674041470847187819891088957918712209717672007426462907590983812319051145291475862799766268545720543688407120133375129113896871857433185462481173093436135343451256528786718174397852443157535184840349711203590178748595219624831425169950092773114060116553448117305491679084528473474135319085144979639983741164075504887991898956849318673038519800437116972041901215112907970457478212537934259438646044454205455522735387668748974092938326321992462880184291257544351118206091372975750462802129000126579062628342225365978280228640898747646643544343354175457020603573204808319221865526577901514916220789637769689561369886628641485539020029549360038783377529299350146304238524262609830605526260459955123514805294757987370329280916085057917498068177671107539936443517271977633162630923322167411277656844045185468318142480037333127411985071259136845371174321530300960218113540954670550101667691198167326946836360403607532237991025246317548331157685800902340815435302911861464055704351203092251190471160827691478966560794859118195031286218632176650014372047504626993327646805635562422449540659916670450923467419962165542377861541365547764517191788352335084579072519025831136658223372100854762607012907819759686988298161997058689856866640289538045148436082574833391534194195595511619220636985146813081023424364219782346394390116460294967751702389084018443318827341774447475711712647131622256596426437153825479981720659441030282984532488636942094628915309623436651002187528463685703691664759221307660655574096795658836068301628892258877615678645494592087748729203718949906422068465909576350287127302270306117798611548962288722334934385575692168235279032829269063778617028010823079682951130128790835846225790815841142257061567062384454361018293345201258444235865508182305357889406083727245198081149379731768814615126227016544768766499894010331808447712059410628755905028063218663093455194601229208461627514367832088460245575585022764682067368337097562436404053973273993290564980570489851978141618348992574906716940446527883088725667334336530641327545972865806372516007447764002795208735876697727192568367330615032659898978829071508732408665563241677480621629240948895771276519583289845376852268735785431903464679502105983706397579703716156525224551054178354463283673002137875711874430013483338844782479123741600689865931848241669132870348101158883707643614393022290860561883388781677037364220541448354452561003092480093892893754844786455308865335327200558327732255266354026949507761365715200689234946414384833140644155211641825750303944395958892654836207844229112695474935655222941642537837194984297011804264771734403017551329178906226445066084872246634483110642205874772194592541701935715953721450517611842750644819100327181947357009374644013578939656149407616304941237292956999146824951494208998253384306845302164653834081053544547311696106503999410553463368216364528952183447318773277850973374868682516294723627708727539020440944736814456606334551396575547940248311785632669527267053061885106864454462820293485902092474675125140531575580325899263105484827297975136445730617967905938695846339359232411521038964331602081641189641943593536348222438344275897922657486985725249649506084742303720017771695295313298535080252449832134664324960148606112608307332541836070495953003478253709918908104118797912944066392461961790973207627014201382080611002512032385850942190076165802502953931369413194609697087482931525212970447407107899988387072110857543343588667715457958225582614351898722749302635852762386978898550948040986578216398324153472775484783651009958192785579797130606119837131518993522988991187645973676610540244804610654642996241499584635997975474056465644412995738931938799587894772863354719011815246065966563021347068639598764742601888368089441317380331975984575863756953630731626944178809013337327558245682981959052113562393518710451196467325242432077165905404800100971388327906925790649734290180670724378225243137542474258853259505361205150182096303490370085551430023901370448766160992654362164354520766314391637410557382930063570545196072788991542695479547766184919885394287656666194309119212645918496027819447584087436194946496877057290545690491174496696180466905536198018710763653673959964418181603432287665793325639497435726788241292702978106131209572943468858746495700486151307984385676996594104358542371422564786441508510228160352107851961144623967524527950249617421355880592235311345773820928858600049442606654210925724013341201174416451657845715759647692639864166267557660664918781100812453362771028892416671275770019657552908092003211233247568805816906170475067986086075676735393477831072936469994822399411803682590460123660987551739230835894534308418841434058739846714468023768322035068181652047917993927114459680895067341350838932992763989930711237872568589170793864021674220105037942854740522240031289070553108485611703912514355944428545076427782692129003384970846200602395813648176055358484567899426896236078591264374201616054693835348297888181941920273989530639746186276088332450866744040473379267757091245018325054199840405527794137248618227030375972599464278010693233904223251654786220955383447367045195450865732665526504087545721741878072973578437285537453215879384991825505559718099405491735033726259190782887226385157157314627361819205417034674855596282036415330469367649930869933662848356791098884459973506101585472557441904047060748287774292780866856362531154886753653813398533320489727785020980038311768178258467805584379646530494024696034035860827061542751462346429117985427061695553822487345136350114520143984276382286747484927610295096656811218188915078340498465964492439528089926478933275227468036134362880270662188812532293429657303597720855255995064058096234632540061268518931182930526101395152680771813743855272058168845081784501798872667289172945700359191858944197077608092747312202873308289412147093477014281300176022009380680389966405611455580119169052542896858656749061346981218907692760322239944881676054382405387402699087147258797182713192462413093995938438527256798134933477486624277983304360304212622304910855849830410377908761898550816420519441335266200693704283248456277602181095382661119637061486137408199396277158054311777449881699898262608656448842641011773742589657894249953698969638360386108386993755244752630705088202792462624507116867731725668234069903947268864953493146250635691099147913569905156413463657132610082012090506597759275798950863790829262212817227165398222458042783308561538834315157993994236558782146999351945138317179010242591824221607654642631025931854823155847096933636809057724283142288935683480366000598173279555102706686586359825541752896525974927874325995070613637781419807138789501010570475763745307026154538003656359729977414081047538736612203312025975653840897932215994470537902994691911532145913959298655272712706053253195196182419967595762669367513459881077742015426199559969608001068773976146655733809965076776737910466073928547888716103002739728683660569307311957119292528298388640825281580933618051252349791256033233143315432393088980958595698650276568325076712702041787310175928212074774546148191108802446609011439714689029533456042283823531868036297974708393377371418921307806193711677470750737204675586662154522290561996941444141185210095994684415274356551633840122281846459757946763827019397768421212024857074988272064292415690330966195698487930254166615195698788244090551117562828724800099424893032854307261564283949564122175639950788909895004187366098008064807950649858299099656984438202577967486822389678261852169280429541376909723369030771405672258417346378231345212072032806584219759721532898529271665517837284787511964771271591893808446793540347577167521191934973636052913562332668110957122741244281189060251782309483970750356172107358801002227256296512586703460792743819763623828484502877355847431687338867033740232854987012657680875678301694792538754971987767887366158116677299422724717154524925354003120703534904257835140796652268202736997658469171882017100272964087727115808720643092764968740827500452392278570481161961103886247497911768503661617227640613934294158836848323192322569139964814668334665958560275917910177383949541028378152787190692764606442729516185842359055089658057703394327920627746213362954046814781273944556961622859815155593581840804731336161049059177175543465592310898757734813982247517206053189033974400028406830264696651404472508850018147081770696668582484306572964581731023475723186385828899528019242741664033619067459312225293606237546665475163352019265287676301537765261664138675322917551181437943236072439573959058605365402918725633423815633361144677342672153721966095861287601812123756514897298073990230730461442217400252483523074671741752581816422216561067173515080182669384069494767491671020561935113171051893783798585211430200790870787703498991757653326415104256183581573090267737288052941171210942497414420300433545022047856482992067531481006390769417373090267508958935256353037037486937904833444288348462778511879180687414336817664579278679077012029252863002395382128863541405671792398475329420727677707372438621787639132395478772031974056131201245211467090662389003730219704684204782285492581096062317349989091100578789867270908853853942397311923586977420993448611882132605643423126892790247092300499860864863353534372628207888817627854190402008211942326552422375619881086778710597851848658397390855884329407993144006260772918394726445104695568606641168464477259029932419632175210006597658575104315708779653747030120659024032116991411724353945678221774770010171945497250683547814790096914765010009451990704751227044184905296969910451578927313300204456892480281487969865247301070569507318932057564076985699666149410397185491885505912357897715423554982865818812613223574602270958069506204861031198143294141400503344191670136418938828185007517007158351582338137165494041798691420436408203355043677901590781926756128883976877819496761664584663738591840231883506444619152487707227965662268920238332765855419382327201359384658687110266624873298527211546957546943302399473372114030222104867294563363661229327966442597365589471664105015126151224178344700576390706068676005111295264090812008316184455223661010558600949559626578331932476470474833295519863821210524046413633897451908051244045165621326361519872881090133397359468316920079332978917289048719351367705424045095890097045883660866755138034905061042750375366010930863844795071801762543967056078954028901012600150184291819644268259115438003401908262900805542470394851051692482028633239577936577663516141026710206996105874285057924630047284198635377326331102070642010445615468370069867565655641526711459302243487737904064875381455214805314118678016511554497271287317782146870213155168862589792352262272326304256462880560710769415951195881976777639554594860563246875638379459120556719209449779069580748899365609545872215130232137109182567098400726626481886320471483656117754682360683649925536133348565284370507948046732828036583296328679427557626900232057078690934562418321807385652045591728219464970603686131141106174482394330278418885132386105967151782991596622554226069167145320108912836471058586208585003883903282167848079447120021335786809040262206077958473318065933209329468925273335305920483404863306241019569327046232921411308158292709026878059892373607760774044866935313142047004999093939465432190706522064325114599390332394168011314180471308833002218953137421443868664054487539763297388895033004378303064413277501620627623422729288623441269214632750959456609949777292211546613808908844232579376505492083864721101919248422517251047361052800770298023602438450158056043667442653640213269441119160581458050651074762322781993662367571724094060994468309565078422219460930968157830184481392427647443244991431030455677950198877049534376832947930972618752817801537726279109967643129627776211443714787070251229039643845997649271239478564609747172957008922441708238248448231395824018719792861028287017085728168075645192519803579197787697772291316647911797399714540940748620737806769100933870999167405571109993889514148666977222821841682748082214834111780094837592516735296244061978802106734461946594752923647514830878491047203903706154769442875711218162943072613819987720572195741215544948403391636653788891641543549646793191661448670571629422785067710557971990794660253244891654894704177320746206550818470599386989699800559999485417706303677533818907297411488485245683801486313355796763505217717564764956779939601751966252606707804178507033171209021080875464797658868395960892451860428765213980959968582281744666168568624669613735299652694091598356444486793039250879995427641229583315949353566548710048143664411143791552037616082959399092972533658079575329236406456124980977132882091255738941793382752622852551906361982382426847747060935469850762220500444840019622198083010649596694553556868130805237229984428780189540752261810472646706039420609650686007382578618387729851453248613522745353077043273330436557956938681826061221168799050231275347864587550063130155491810999182560467533217925962933515062640065679355983798924923421144031619701348247603635244034492515474175697438591816271359284774717136439299398282780085562234135662653895657241070980114073437999647704289090541597343228802202574959062898779068333507458944187872312936938830271814898983143286342053666496110183548045181217727335174407141725317102519489282020712213907974180524941591596079623615604118905818519001092769937209473793306156080721752235286616015496642527640908094034162760873189452343623890562035620986627682311286062053067744892531804955027969605043070804139410316873933473306937526074262627540255506072748501569642400581639702488474786121206411814306789474835060652878060923014782999697659843670612230154742983703056971885879902832602445659354900598571459756743864830338088400383564807027951391532828204503626505029978009616219700161644483239834440659048735781065113954222085929794711775194814304204355654442166498105535714938450361651362643734321433773621275360332915131132708842022717705412162418604080791512792963973751127187589382909640350509814185297392625878775471028350972291605488727842782895577191289322584184489092004901996040082939585637915478735026841588573164602241681914209078273326891350816494459869904946085556697706953911176477730701563718407326165057210088857532506338153656474028525227976489597889612605751635831009395590062172491979827579486607817982946162770157111589001990455217476642209124243252960674058606761575699913119811760616483097725069128207231835793509338431812276815297173034098519821195067743300660979455631063265976500740064079248833660715854076935866327060538156672939644053872794283541256668822116173147690406027619958411625337894695173379087402156421210363657465464978495453565771103847642202028152496503430475045109799189675005154551907738343137982959586898948228262969111051663651835464882364798113631836192209035269544287851817839140287048805444986818438541522162347609739846012841623776443415992660333314223409762581055158252959922349168274087135153396102247611707164568482789495678536573006451619383437845128200438754607709020605312714638140464474216020736173491734990286309951292898042544741064334439158763832201370934688121019240726226760872845941867956965278010182327025228084431718362931147749344684011215355448441250007137370626192830575988804983658523334954771786715109957689400080169248905951124140857684257553348028513409864108824672488488407595879342917767808736779138801402723842868444622651151905012604673097144279917722776625861811926559791385835454286996962833498620825119261792752417180212549643837769675607552190624936080965696990005292316745684340698134652040814300859817167450076119288755703400604306222348397293889292786817858110789251427322438607713843076977991337610223592904961266695481418106383399175410093500263630434082522928493948392930539903057328417019291252264049422552530421274238767607369052249142067682403263016367363582856765855688198228868945589385794655283060639421352528191509209448189685316120238212819901717293946057429574283412967575448315725373853636662496439023561400838958529341734509901907656827048684018843116150117453103033194860435375730250664037462619734813137186474765185062930718641120486408481369643487170037318172484257384813866363508344763386611798986765513543772892681278681066849547291655015995836533774733528006562913968284765490110845231917749904608137478979125414612405878582497760970790436506088874636203836351034246022703080931197711107842553617436759352479460483047729406135136788506208701370451581417526489409373094380837660816537672118105779043650340438822641975063433559563823172074113340419841913594140075291892166280199784519933850470063342851097602473191335978290365330949400781746766114599406536616613264071423718381282905629426448592872089672138722117357779418797884014342713232838670498308375093178605340688805176888144606887194769451350095334520486443885830493385482691205558382076471729904477531696248610843735761943765158404570802400157751002628310812677465290565676543899050291833315137486809797383164546280205088361190413665024060834918119450431976659834698606255612944880639324236262656888779945221435690262581872938233575905759354253871968712236372131522531555242175963241162798822213882455051466659053795128666437909813750738165257978076406165709940895829693693497961970560591294856715366145211778384170199273967276211778081292112008898641819036411082772629784499542910236845731341159239148914584262352215635446599450335232698091778106936023261549981061546048454104542424449673135544282524202309019167939058039621925918865865469839947610039146071279414831356067070327917929407850590312437765504474958600837690964232227213528288290436994422107954890841152037277822301694793988890581783097286734644205896792983131811415663562523586321530284826666465431051565146786291871705921795649669650284497286483984828817471580118909361629605049483212811370190645341899323453686526069322643868866412133248630993497035793962745617274084518497763228252072305747534146691923830022151800703664445964179633931331411165144071533996026371622990674952479438068233734283274009127051257676058040286323596230440404146957684680665334670892830041135140234305918729970609435185171687524297834904760942296257713039725029529533327209832526537175211088234667543217027023673646918642606504280237099286584803710605185685729325728213069988129925659184845149115897159981490606339681983544324237752487821986744431262294853064589991499923125907987009962842511632263025754885580051032759828870843451633373558049003947337168721856734424407011518684220588861628626999230267322134393061278525043232042725982266963791210387567632935336427216170965745835369716035093030233718272415859414850038826003052762864822674321362909858814132200472753216204496972355772899210389756245608428307512995402951449348047880117527911356049647296202073811926827887591701744342819975501579459830080746979667128959250296987998807403167542422399751721498195542897986500673985296334863857064130230915898988224614737333693652194808532028727981582555497990172702549912477192684707350080127040543251459487415788235220213560155068792976576031499720952496556839720280500000098412258570478251632927197369989698880223054964685405365404892630131966539312092323753562083955331766896629769200290125015104544854858507744060417747447641791351371408894765390383380803107305442436013297087842167457893281687038445022310467493209444459272054282183031622655805365525537927745428549632757610351826022797065400464529393410137116193962696612100595730217296142128396930368101980768417081595427182922981483491268459875597919148270055704097271633339251676912278738569084440030953983140755878883573870043434296047846980040443414362963523418628888686074218191250020481836167359234802689288038305608041282935871305680511714426323564215506977844161169770051048286797922721352251405311781945124513019716503109271062163785686837706236881065517313236694963649897507759136060774937845399491050532117350366573370119756483148106790200433480570263355541600207022922158599497419447811494611572287702530143168732520270874905170978276903708764927563045328320339405243832994050460827021123173091327033191383628921974481073503256051075350758167685993206882987780610275600780357255881886018832205267375592992277014481261049308460901660645491937082657189376123484727324454934619638655103803827759433016229525010471053612675863873355336898853832271914707332641419662666329704753515225917798326039891831435614467741450521392985867330086058399960696678527235817853613858702512122389087264107138298850694021979452528600724346578073126010055710902000093329075523909728085365366943706497677083594911682952830206364959310974389244205798180673464086692375002514699416846401329884237669227368450253260146929707986743737439198476960943034223364704809671783382375902556863354515130061397845635980547325455154298483652414591122218563489787459118180745256084486274045081559297473496795720186420271790615124435148062546765692986949794150646893979823625372403530746847005694996017061871462590941102131184706207402145238981323440372726561498076296594537457693395881367424639109941200437174153738831678655274310618668313187100970656092324554725939844932790806090558732207431411904111329559589446403928508365018773339888750321483795715811972884342243335399439002852041839687967087274944452470114433364703711556256031573175328838992181291364509632100682310910722616786315478893612231204902105312600150152044074674887311099115338244797067851138250301393367919930906173520455362350203301165280551702394620230212218306364803859504944785548963954962709565326633770880502466612191074452351730052249924155765760922648539292771503268487617737307728160135158919185947204109424261782589639119394651480319626200001762254877875597751414435783350908049558468644200556071263705834471339490779712050374436114561196075754689041768800903618461185442887963198134729829513390697605472652930436261752984162323702013663661295948907855233801880857064636311459858910562891991710824657398960777601500345328863456901961314554107218418889045360033375657976759435304605539300924770148448413220506199719657951649559347044591827315111045522548392942853472384075893644914013395963272884301074470178079458883897320189304461447090161528478911787710042093549445349621750309683673931676319379074900878162115501343750332852902574903642971391284723088689896989898976280052259537638468101947311496463656936076741868004865588605777863961782798156016879592764130065251672412826775985304811272086155760784458596347914344613469079842658479509163774806989854886917060239391275714550055590518104055892075810848022150891633923809736764154364428301538775345742234357452712816409327489265929216362923154671470095884987001315629941061946343392417285772563042149404668605438783976921013426490133249242746991685954766916543509124575338930954251355269655785963173307823496303774778074070489657794205698807034858567581198732978369406756225701884940620788928430663308797248992730578085423367610258328738779590001828068146621712464630617219710171993696114017495219180711326427919509903872200741475271350293879401374473467909863924577506039129970685467714445911901646851576109302724574544792795806768395511409438197635074688954899620958865536833156668111755863723475743603533530409887850031001309941835662448315354364018038452396087166484342043635233256364526609832095995017434456296174316949827410361855030526148118252200648250802907611385878326152570425381450961099538622873827053455357169088680080467801976308103790398243770225212681627693627513778923811945745065242112547695188418834223014491840907418648020216942970546526132595403441555950807953820636308420799304693748987847609093585075609997054842145205360466169815289351994211075027879607984514577329627645199407085013676082956416697046246243955758019389697525228301420328044809616323517862109910844199077290167555963336979059438095297705696625774196208277702083484898139873509968023758156773626409261443827965761625517282164378615195488012855765015633780610317257985693010929847719553914685148121550564420000549344311947875971457931700530252639182848906911972050702539875372802365196720766488019123863516020921962391360040933046020123677702598686696126166650439086951999598840721838113980373132319895753806390918895319968007030373244097299940130223252754148883122965151862004215330781751381721402600123072201134223727617938006103156601336640154070800995854987554795034720231166742380157959496655551022607426108899238962238366305715707179792375269165005575671113894034332575965580531676808925775057389744038827915155162878731464522480577579127844717975578365646346000893951880286891807047034231677997990419501523573601726711904965696878914459965421109456056197628186448940327599128007807463417300907503098333082824107085524568478964378718179692161808395977222938933023044846669827479701797031620918095755519787845790492475573576666251203319036878959191049577032911770558771146275309073627200192582023721608115830506495873362395193640289382834923988205839787545917058566930030745487177900786528404177959713823891770339207082960428903177301921927522180071260349589619664214107650672640574697631448335465478102924371394935480614688512482185868731102557088753712731878269856783492020946065304305138794876285256137952690795048625838899394601292298629069054384128767628858882327541617071711895848243153396551459996925697625370888188830501261054182867544263751506593490170679425619797771434917571240063521841166809607917863645330371567793408415445983331799702576439068388115879385793875448928123611210857266747030236825219091351335042597322892558007390176667157118639420726260525802837350559721740430896899128261343185641642316198739139795861374488619604678464866863861231366982728824380547494564986842057274128919506230681035588984419090736978702045076832508491067606024769185902121745994130504651579849251303345307199061112981699558068424483311092358282753995000289096516025401273606508221535230089391802604506848635071425770591632037872161773167883961323626860916633978332275586859654424072519879551420312631655061972101469990044574822037217021796729739799654433222601501369603520405387943321900455555766742283310401576600718603440895040712757844110227555889934879628043261008282437508992518689043803679831974055709397719867969786862989900583471303680706868150123872655960853342755160159827510297556873595923159664328002905340567423603110452831953951634985520614439919850647628987759016857490419427712258946560880236329696651762198233458527661606939838086488296851802186997346664397889042631534720542745829140542575119169246184618443878136373996277727772196829395092308284863771714143850048640945734727419871150567655200406756224527655911601993954924011496916526913451193938670636274641379185780552002277715240008900491093194689369583358795456408893636539000536390495712088741221900599317461171663470257427919860950469180427658270460044686486378072941407455055789833366945719623827149907094543099221179349079402653208198144917574907705105149212137217561219318267681425178653670037343042544862140615704354032851825152577080142118034172399167681298717064112470927777647573530841441427354784577634777645520429874915102195150270792218752025662950464175278707649484126977902114067442294388009054987716827282684148582993049857826020788591215633605983972781764973387151685584444397519267744352925580598626988802172296543880436387555716857447188590285209179183334916674939775520059975239716609398574109100298971545190958442264865354656989747717659175763501850012803353669909225318583134005023510344237949615570194124717512807883009716254293624165302790899249201288261673233180031179863013179645713813015972500523847263590041657626730216187710653906630696394265846411342187359563426198778915515004481129142090889070245118003014612874866473986769203522186520216216273703508849846470810191782305114854039109361866862025885164236956143350839734683155063285640689254979249590975153689812340915387020108907104922034762697472455613559328846870859133664011967867852577499514092128431948775331522680853184740749149186283044053071907850902298448249297577477660104932998398191712974042269835839424360843279019044797170489497331365375780353441730466584938930781424380772359465972667257701708361936668344260882378877932070806467173011459536196338842867228518875233693109099901663996218703213283556410931599292216776413952111052204148279772513256977826606529030791326936551951352959321390564212163257017783834629720072863549320120776460758814209903874264380051554891470690001753746707843583597261062789735532547116025426518132904596827857136802329984854977167833926574820822663669615366413875035319915500125076978194349675253910460644427377535722847438805596067963232798481867799485165727735894567993439462821139943529807626831554848198713977951919653606306866648920066678151754359399575381275247162637865300197790711816793152918756856306377819065383822779678578233359100504123518044355346593333605238471619445377434255160626979403529115178109148827354476134667478042417167340911088899617389573832738893459606082481311041603118283114088883316821551426297993744311724205833580511164199358451385824395161468812414675432100663197971250864971370665449296211343067683897624215003627051351008532343832195427309394386111341922052417135533390988016731608896954962230488441234727423088844335158648136945728990300203725369072381775660609049191984391948395952415731476655732565340793995501311146328745713813969190070861980291790895170293424345606047718048819485734807047998857357935069221955912883697771002389076339484845961031336399432206487795489065693412711506840938545456687850925800504967870656610746418226560295785543316507906108064254027638183395342848711682396893600392120999858318790709175559813309787607050160057670634417762242059368023741551921184826869144575144622463820038867833319808405744819118014272679102622588635564064108392134495008385997493311877390906658407786988353987848963396136062124828927624025028461011636512304965590541971742841030703373374487701984815764096603941215960334920091493489900759138828953393688301964065923587847861449654120223069889920044508219930743704507898839780777142522764859985781173709512021578969131757745026419103709149241540383441539803148718246958408056022098800834168215406043327908588378684667853399374930097709375469217068290344542676999798740290746071454006649233202019086167045610669662609813206969092153045130680080331132756448793493542406956581791072453145824014261067944559264819699460619500694740735864479935062229442102874036920594987120585737551895301874697969620400063660557739029845614777083615188244894854110850685053718146737993798114952398387588185331500904393603757125922851998463240936674472782908538075028713934996043550421958080571325294876187405083034859509551588872389025321453078288248476949218819179182213598834919767261584427295182800525156328392420333358310605723835258867164193865540437539342019721588019697715302697613668528810638294728679227319346986475351719529405513481075372995759093715701697480513005929061475064820521406662196502534223036776952647313550259144112600029914428913738844804510049764205485861199300781645263653348881344776018134703657107937608683171675370968943592562292441036639244979658679581325104884607693449732015180991858604374343949071713266778994553519865534908363784806056309178920692930568797013351488739589755464176294584410156731239994115570682005998850734975424881108092278103748604243510509668558025940097602281442779789264545399037286420941654027829706921182845991126977784212623466363111817048084992544750013063379285286211916622635993925593321893965609382078833540319731912963344012439777901983945016930827705747195734522103761515627927673440942202579540929509542894016638082025102683408483610699592556243667482094405350246240605584076330254432821194216495379418203442512073316594370562333181181275731793065266416303391853788476633764066906765663172058553108727868398218874569470030150801875024547728376008046721561497796431241602464219681165013278707141017586718858254872317673040595960230288603048787606705959462052473702551312608570637179059113478404634354224147568558647908256001259930114017506880731960441708630136836076139787558279754513115745078599174992404499157681520485015190062219120319273762072579503675648164453331954030612635442475616103225836911457532951409015335172060310003332993200605985982091465633523980635615921096592667157318098318136634674620494924079186931423443753747142039315886129346279092807586951764729324618192825853736199371947369575919714940411956800604816395564533093521217442817537896849917747831072279000990251485326300793021896718242542820513256868531766467322504855135283071645522631741301074827125825366418518359666340555873244375300632665067937676045478175738384398810576098247156005979599266420168064271137684965843632027284302529668648765562216954523951958101874883976311125806688461534260406902329159471825330316214722099403915039111315806146915115149439095989964639528043974595332106719408052175327196499170711005290142438649791428790084742155650181272461741456650422203162129422799740869143516155980447492799481706147217116530637585502203838138096895368656922717208435513005112240637013175501914740663094890886727555461785229949112164725093077618461249506215415694304763916163533689024760470979530515143657468061513610075455287080066864850466272356204808238681637175483928851140094205405723476696217628250414559718898780313304113284557473656483916356553904690053681043614668492236404121493576057797786890828029119228341471881263992834792747821307258661287109763346369867872640854475655702585044387102208807629736212340688065884950715262659721226963769284953345987982266261545928495817928745093112258614767163272267448879147015654175194458112282635048719604585514679496357992428281792608163161535607566147197036792945102578353791336668377526012441883336658068991738531871109885393582402681190119744708776295947220387722151432599331224494004249152011085566135254324996851624828772152583750251792450038339352223731424981203827108450173944670705465858761420687267211973351577952869768387330461782552174344295315245549873624096617106384249105797049332158105132570227811470350181040307790503594159424457765447762244326846894489869302853477339256892667860869697961607332578303217274309661398045758187579177365260654491522986161347411937286264335579776997700332700449996759173981733124209143477160279406105286152384463468936900493160197000602795814030532578356490438218672718650502609478330304235812893978827686448653923720880552473344347366563618091099634336887099830046772418227463652048337444933189787239325699125268665194379475756665261743027127420440387330221900380610443883172035924915654082086368638784164848077238927591351802656360836429035174941940257805462348731736875245496601094910063490403257260834117673009659984267944682595922782852466000499308137644709693865667064595822809089797963674718890734608334946844222300482952715219389071281293527980909633246767395832530563347698089471278883597701135920369838651063421903860326135502782430104456897982477892072599422022484177912967525359140274599659850133174352594943726954502610819390396210527354267919045054432858923767884246151869383097600390944877046738549645497158376478816987970119777207144264092326887018153606025285325856417829239446766374099891309728512316829461141382787689608103956837382818512017134223581141335104207146687813174230679840022738121859954303571761207621344418117724966595424979076912596728601563768784234858799977550409133391654543746723076146101223453072835289499045471180988580766587805325101957999339502688421607269557144787940208834183964320523411575221565070482276358607782008467998749301729941897132110981590514290055394987804631402922394041142737807435058107220493017493807241084705578840936970775227574927595307589972879689931222619187364806461066818191597144226216441943935379892704251436881604254673889827437520598113543791107575588786952037360510050441585613418149186004334945261864916781604508299167707831953312388917877296857996007716942596136309249130635201527958010001321581501303553923299484505797132275039244808437721300966496211646962234173399338701901023856660180863111776039175072859205785182633574412579935190876366485762987791757520275721590586644890329032949686801638299446826502770173992442756295334698183680207750971391703031849753465239113080605381113200704595166978614402599331377831961761322802322869933652832778479455677826620991663985964085214236781525688304734167475121375430161180692674872963083896813869750648128164313780402775325828831638817369738954240458024055630073511164278772168577425908534012291534075937694068827937670319304436973934003850107178560487217679560970408051312332683627044383249138008139761179221352453606147941416833159920806042625730175251505371477845917724466398147146095158109053109219255772745489183039054092631545351662559338079810210237098743829998640533297966637416137999339566629833650408234885009300993073141970195341326990372619243294445995892607980490886671997424209303166348617589877842734705970351648919068077591823226821907238318045396780598163728125007546932143119017512168621180438849204949960329231160553253230494267092122193895749439836493795936483215698903532781017247744109394850087832570704453064120739520993014760571373065780847785059517430213654977816115946029805716743879084466204988915475713207401896203589747427742116992315072535291318454152905646127681235842847444658550016054047125695805456508144300428282715783785915143623409225512842727343664129679438793506669745330428990480609670231644809364260284908893958209700476048523661583889918251483403032628636772229684467651327324364426820287656351752840358768736469137410736014348542271633583074826097923425749677212397326083224951032004648584393012255435220418408487335065641597872849765950913037783548463450067354789511316674860928140663585854294506093516595334053815729828865586570908331813056505334609192531642976191142391659252888816394447689518114102386776394112253594484854900626474203139412278473209651089021518834720472432200207943348477842496614043895023174200959706502697691805545894724041780679749451670129260019929432600184570310489685758938729116184279222774041972651614331111626907611069987083264633583442621102575098492613568143493660319174773886223006639942993166777324022282757926730333626903052892243531372174259836503012370774599837062062042240980833145207978014294456306369461150176605007738482029790831559401743004462639013841523854363032811290661450484329868453588978203242226179676113637320434110135374964874442244656047042914556859937683003282945958462476983273180964987895720614264094294164007675782112090581729160254255695131388227906143619817277871746191425764552880256947318125479492894356017341830058312826867758462324234941653840914307745666911909965560153977042691803184885973453083084816716427305482242386773353646948342556214502806208821930105599212266962096407485324302335672005841843491114338722182819084263547347439920220440392496941964194175895072196204396253528923260109176050164076055753983732240126443976459502142066784835023276649150832764409590353801029759101812836083670099312302443283999979603748417467354770924037049616390474468444565172068606732228315257882407479000703092771144677131111471687330253376663535289935056876779244494331747590841165880359473061966461337913975182133265367626254500945392407479591926215244795291464231397718634214652893773667995045605535729405725887239037481723137889063242330367074190158746663444380148480036591348714421651530675008718077903144603866969961545782335451264246275051897084013478069437271947758000755626514218374526511018653549211627675653254343683402075795730489107272797161451918755017799514921081418622665018130532233422430917962352390392077144302497113630794915178887476871201791236497277506136613223538450708282004435635510357170964882163417659391151275111306232833909538321682401990911376464434485161728443528596501212197437607598016818957905681091183772343375131237483008313865385928302376544977790558487162472257182468416491688987622287644747174044555441770740203595847635853205731104327828363448474136184980940043643093906019780820149375896142067036592456096440895892332187875738493863947507707492794751931888555356385508338935582094168752518366162557490004981522561030246090770704743913789998386207519763144296477606129850833433240406991697135502542127934926758277252428481981211449653934674961657272352410021638567390207332909821212221446021340160450429346578788154892875435875503917504034909598522567628376425522040545511153993291170297266081255451774672614611766902578797958679627174106025769747298776444961902024431586735826774293203843898526863489645868229682686622496985191077086364973044076077166568453604253658638723946694979073798377598633730690098908941709138845472920044046666834714171548648941205938328531448435319385003021683568231026912460652996433662725614597913973454354739469355098970681371833404509404907339875356859509261262242220717476673473482031838688156961227337311439313070471448192384549789501725362018313865455837141066141086283354570046582690171531077614075125856051612327654162022902086900010062576262313894260743677004560952858118799765360729338813969214403209170521981521058125556049795170748394085743340058959482134723300223978191594605659199572541855597344447103313175243871464871479872174510675117649483922066740847402105918972160790856994420947400612635573656169481095558390786107152849959093135638449683847840037720350356205812127938646243751967282745584210418430276098370258009620969336610378263696064548568499950345888320795515537260303288844379019922596490737103133445571720077253079349741702655908681355672143260942676721417772959312517905800828046552179360766211183979863352472284060670587502154511794703325042834945129820520787475325649077251655126895344437863257898279812070313041135584870340328434261366101344774471840769287552243553002456265163900461220409964910069985850276618074691591909723887637711230384074593516780136136890632504638904185269124029202412864146625521713503286151500798351653400248986114121524325015497123421458454588886785351882457473665248784962033178428333908728856028521794902907897540794197350871329031058760503726841242457937787867914334901773419898909709837345504347436711787212583183423117395893720657246656351585397605156957918524838855696460154928322321742444711508408866732999025855080667739019596411863745868051295393849726287536944795326466682255022233240093868195097149275212230231023709080043643514566099389849973944812280042729095790820799883365145550835457638137863751146419757888539187320672945710004351314496610602231725521632359660080172878697873918297742113045436256152648565368412246251952594516742139082425422870873718218813450391045338096417349299511024340745947266935500976164118500845133293152689338890432743285685685931779799501208244673855570126731732116885882985323974634738146910647713543760208689653817716711110393826771820380608392967055665047092444388890487121101422794288376254607619472920869646566721529533387863449101004670325417924982847787164007527819777360818998918099421333327164690936966942844141543186320456535300362019574989573790978181033051882616300862069503824286243241785628712851436724584365574250665248969011792208915932176959376259030854504239162638138912664218301525294603803728587951641894739721197870095928193260364365210627502514264469651240260861107510228366618485968460546642985721701748372271886862798316394688457486375435654974248510658049336943672563697017988358771861736515864446439012324890900673380539344902250628413044174190839017311299881686655869850640058436509315599006361926865406251961013046308003248052685905432365549365882615688210965332594475284194638556667985104135258132317774713115090794013258914941418133380571553366667604372420024830247351790164443318121715014862277370717309061311491644157025900372830345001989829758750761584403975545309753321224584827272897414401725797984542809730449941851042725806359100006162471154515283082534432303049037910521083615722839507569078414910581707466903423782059209153293492474761433431822901191430714462364971545818850364449335676887879685439452133985455597976357155323864048660133537031846036052003475933560663967380703264058392841774139024254949918418861714858470576457436512794311923911846094673902022872023639235195784613518782561551441783784972459417111061013329030422310202670459881555918408785266104237041734447104930572401720806668427581905291838114365290481541779685245877766047575373539507251108811145721586664203080017049531737752582891783702348968994097218653753232509521035961789861057839481142927476145296999111750318422772217117632507184461887905299986813586322796649568293255584385399235253703142467233620110498354694247809800233103994347223752023689726851936392421874364036406547001967704808590846066929971658993925474605496057567325749075152495022382174414366728285662830902513472381173953302024301349416017563509350121625898178541056382341112097534797945185335167889065725913140512865326960582155357792062177119107778136921667949448997106490170306399849259058615071517332672238039962278725041476070782654871163012876273956821438597982853294751560478382002847245317250353204556183017064126952795909655172285025756848232426643023573013957694257473295212450746179260552422586884450037189015650495049763373242756688975354898460896248020021105835730884170693331545857126706826855196393495539365652060299288702550591721877907435105618820569993930626835089924745633674598609368209127138423116444780514689646879849868435736819757999788381013498054825343838265833762444000791699634342174576239027871068933636402665308735543352161635847943133217988299240221298681781028398823905010429405208674393321731809736828465443877944994086351880613580056818560975518425434448166743604660881849934906182386332505546809609050033450627401899472127687695439235600367323258663033611154109129415716234373588279391249676422266382140787714917323823680219751766064447339223944134256553247741118702337272141466931326199119510042954642668078604996350080232735501554815158996109669871603690609727919298783157663415382333945624536177245662099257265309641562572193446789572745448365081314472609232908208268568206021705493582269819129053712570800683024334941625369214246067880196662840131079028075652626776792496865573650016082737973851530624574199866415839368515046362959741107560112445134238266175693001038153341406891786020778596229945810700554323440163008205302261033328718751730084040256962844434136465712636769771768048335999224521493884401363867476625236107702178515612917385330542542381870884244160682281360771094911182652371493301167806457307456056738578924577272487609432067522781399266451127669185336903253801881891204782869532413547339455876513553715870814609316365509179633829514906510332774464060573566066768693239908113008638965602634691157088222852283476453681723940185059648838177143226496499649182204007341102602533548486479496319131256131665776421241080061432224666695271826775657406202880670006194550659548160944879429300374931818061631965381731138703220177870363718084547111067234224238313381769934182694885000823203731445588871333279351396744869741250126741241931272500375016116912803090171396177888354184076732169380489604798184737834459628550490503371990634656839996176173147313428809414007378699416069962470159251614662414849823070661383608726189549881471425041296922231062077075997882678824119240374351979221507098688779339640552688247609703764315027524660480044147627286461544512158984900201141089527854027727844328219712756771506960445397050124828047094174285368022397415849796643801911501330356876909977731564931700033045562780901794550469877569485171631711867606723030723241752829840072645294970813467993297427576337059445779374620576060668876910580966277299090409197922439972582683783470154966481863917555846146880013238880847751864592831818706270312231208069050810861952817934763928367110509476675918917424488001124532143650937488745427209244898095996222527889950957518828727759976039750133321518747734106480332603014876291611761834879042259635202829841201737315329717680748604609344597206378369344603906380619608936697877121937205546547862631695885523529871436622293371704513043957281217289811408075974664505422898868222143975859267157336504429861375440270443304335629184437977220819229127504433344461594462039816499572560848398677948377053607075719599596767619046174872515803576444425187357073304981196478129757876900800559781701355301152737254195250096471209903808247648756234701029581714787810098766273909098814222552855672270013023656732270389657220674990868530045430992774016670843897049170954052013301412649505268702610638239193520321908196974395316513849233839023711110485670262879635989681479528903014897432218455439516874563029596765724292278815990639841498111168880866535026687156793357351898160024543467903287243024654880648608287598611889620377045283005025903655754934135150347630995243183836655526087034027851734619277031052541823154885227104104203137995638209836432879066971148080917087682761517401484504903801744693182159054312261668150060130139876058481220492500144215117865689007945004037398797274656253596984155985533298342369916294538723070152213390981812072386425605205512072463251671765167774667748342206133196296830122159181193648302921312154411607112579683779620648665265396438014832085647615739007403738915229363137062825116292273253665567667575387846198575121122845808483241915200316914200636430336552667868175728338784601212906490934852609795651243102120420301409912335625045262478598585086105387837925824749468821835039808233488951010362704002013257441889945496094092268777379804407811905764801955789735451749751331509698626603377761033331432291940278594012652153162465843548421663921327011060936389075601130608482787727164247293992640401252357030694601469410951107187966514393790559599008272542729124921999803944587946462247993277058737178378114369773855826606059502026969471050074370993112959146803011646748557658018781020522988524732387362441164354134019158925004225247531534773999477073077306323018690243126814347112279501805682811305405664831526684639449479530926129012635109886904575204569043374524040909598009610832350939842245385518935407970729824558148582902725710198288206990960432057806390070824611471509124513059403662218183830040814812269735748912811702725139784382690481535156341776184346273103272959815251450112272848962014913299306124952268226853010789875524756509304308878580560148383184131504724550004522590468172460810761126567927550866620773740865609345085558633386215851291718782337587072177183080915338702792585540402415154161177782665878634398307414446163978555486183790024805402387316080215266158036144423490772283701633032321888411672856220590001662756659788844019107403261953953639393574452596875437790315104850112761238481124496688515184117250642298548099450843010226912318765536915699561834412836747492464030663024843534111610166709024416213517959754947205188364882253591947382195605293109618860396617314596447159073130992535932521715546671660961288373368895333581090219120662388186605618949929872889368438711259019772328147417137513060445395021726526549024475549838987606056628866970390163274188450147459533699118905278240107546006187711274880301074940940170230156955436380584454199571954622029157880938476755520898926567331581078321408945479372906670004645103117071966416278810553741893205007892114112352171713001561436313806487470364082068803044777995981116589603759530630257091449897482594538690666958459140332930575009646123475087459275859074356609950320426181077806040087616851002106340933052345108950225051964807691109718022286365033467522421666543249515665147290492797209913365580279801147056286473212972783483742167805721981075625034963023645917115376435399320098599518476780380293594521844950982205925685554936305023106060643171400656948879123820917756299071557068144086102423441273633159413868976263016323920388196686874557491955184949737811801246269946815185817658854671849474859644678740884556243534753241370206751035698160552262634105444722463209721319580671921624733232041988946440546166333528243235301203058184316794044260988933328608931260824050003297815923380403584926926627133244617943472782818862765802114926408311398282312182642219210364557996415259439652827397214456658262732644946202356285909076360336905319777285370364482432367096898770542389772681761193826224882463740143386284451097560529326404482020456884194884898895083458703752769247303035999860095393660341082606968035508135347051465919315808250764078719624248419708919428169112927464272229378705054138704074492422255871018285122017121777051089892207115856928993390231268716892078236254166632076844940809284490297472806072366964557297358184798917131250901254742466493492524368013094702651827893053209457483708365231422531398691584456751369310555925169598099400196433670604929135655452432335684284049616838680792701640368398619579009546661310359646968941153000843539942889520449225114098480984078571765527570218347946848268747894937380631489675781361610941941024783447662268440763878588795238118020034742315669687654369541486855542467700211331593010534329898476312895145764629360113369861998346321014480417007613453227452521159112607378940165242427220539214592121920211881779780303500898267080240571068700307512832233580957696611159937613856734482811631624847922316483011153683786327961197270079402681136961381515299589534967628007447644663465181959881719700888180683320826083377274799934992607129838262613959474747265278822533505656028753151468304489253447043847128801311563254598831377479822228449544079498522307486780125982323270009034590248732738039484217387882701470101125001717215327365711500196968483696075763052414483311717356759034191864391692542414648332114729983560889620563695538357811283678692085295811569197212436891976033731972627357931586203452363411332727241893872692878656658317880448268594616710824243709385614513328947237405154554805072597675426681279935167280232701897179977997626693416064580677326378582074897680611832018564488363442256169530506957610981876667140369635119737197558596917307531514093307864465705389008850844913950192002125439349446827075755005297508841624607570130150763649128217111708100142501769129746228284869552039302010135813178156272640250209416404462367860729434881487332407351731461479094180576611808847532582703214547591403896931199594412153407964641107027804865964964506092235892243905133415097690401373340166944233347245894802052958532557553611277526287326110749367934352543055520981942503662736524242079986735874061247785357662847150898435758815726460216378103205856929642420350356262900093005207347446908229907647770739124374989901486775134387086456257925568231976873309335899059795845483320740067872446893510942552924698724314146705450024534493548855837897204041824196208213468854297656323380578737474003754966138881527766084783341148170779496376026547731032156422608292538359340354623695182063614726107168481187561291258655981278692557686328832409036886169565766821640127019880146862558257572743610367510464392045768985901282799629769472137969640890182890022058730104752908381915099615745067660148951730850153639614218490809992915582211055592072989016335627815984536427272495763458249318644590535382164219504915224604295498520048821498346561095418269787421318913454228438634213325128448709844280549408186627512352650208108128628434792956958404580622158915282711054483223611325096565673254468887503086933361257510847177206413017933803569259853296224086374989598146628296973708857588938503652205238139860821421807600518104121747906376694681812745935386205125048619702541045689732987190630935153113697714652391646291709056448376277871836364794243785841815156425915406321137495142164251183790501523264707477583596216428693826825212159734631511058481762308142334094693472462071421275495518078355788621140904999325941309107129390716630990930878825188160796427624027627855288514131135124571179974481795655972852689595504635514816420554874531309522622853076868435236073730660630806803735928791398782361523953778188604800383499658150389978437391382243004520207520968461797149989841780052804621551794186486536637026094923052632763473328428583783175129375064707737272649221455849661600427133256033406358045643216515436033453753266078339295500432481768175869198767905194999625901403546961553441623390325268057172548938210284276107882065749412218260055851885999734537591991945179154533884121864077939068619635230956321399785645895393462156686578469077759576588151495369753842214180993739272206495868006946007618210193912365593277482733350821043183499949473823193380880792289399164436052135624946724818018486639647468183282448136478548111639034885322951828800834407333321103155111805128934617436614395381345848892379614149481099227569241508501527920187339083209137283948726496548551333897050376820680299134684761360978142933229894157890088720873603995629154455110164856792085902053182245339612558387751547918136566117551485129400669979484872377138947719642772511033350227575613867067535589607894686382327519915356034006504667343763635724022099838523776415213876140908731669438340470770433093559422893843681909885119883727115025581497386408146499530264287461999227458184572842390235867034915046808105240584561765441606901729778088642493991246832636301061676374474959355974733213085299406969056157228069267033061059474368007967548582802962770885513672024317265186247193579887495011612388729187773477042011270727409852132653080091928231747332082270076258525357957976500255822365933906976531622882565233719963086158404012204170516057363880019548169115284376178656585030497730314866678470262867427066785866273354105844729597333571760351205219131943166453358064096628527188591018887319820406426877883849765836003099015887674325509022933958534859465179369947041525054071779145431611291496461798362413686413172334290571218292026110947629205472922931948156990794870424823743565471911245263438899306428526780799206917589015914792612938043034909481023222600893010906976385385724328963988991797323581302462771432359103127198434977961264767858861883964757056417023710159558760430910133224162997547275783189232051453679534898030739309598957054817570457579191604048411528201120623545992631785041880359468553860351620979318626369810046673234863227157154409947670095103731697268703221562041677979577037378285105729499206696336215576815508380216886940986131192833349825075763554331778986722179325918085698254959917489554034366313719172422528549500348744770158526461476928868945804954981174214588202185640266223515385273441696401675032150681126140425737509901434484222834700629852092210022825966322059457201833139433607429407610165778308352523262470953553176006719777411684226848619370380041635636820398894193798476592714601838924400622599378566942735355999596787616687843053182203670673856343833080990393596703789337403956339905615842811334855504064360271242315915031485714475385534819954992213893385557460706996842509100017960974462102642969294268966425178184919080797051769715382260159456879284379912620600708209523029521903841758087115545394107967832951673847088229947541270724280437679186428297758853704174118735283321950767224765901663502243315837239423435167900585959763771759128001438879801060605970525373173560675038515885162911215633675895941169156957523002028620841932526684020422938513842198832486149691919176978018934810906101306261871266770157409184129669431898267300433515554719560509161375352290450260287092769247527183659413638920807560826946187966631298881484783189882206040886026510307954078711488338046394021236922983865093280269812977920349371096305909108110363972138320418159882663248415489267038933148405507961929610671471228420836526230666307124286713052475310165600442496734316839043673032939960376322387715249150766358511874247557410198653362350916249140996552808270404994633595475849219483511934027422111547987444187833200120081610175137446740128377087988135873157564159725977419714596311902847223062642580357483648957824199158309044853552463214862633553848675712845196785240916645808019208482008372012650192836315876297762453471685130550610724154468854972558786167934832934859651903069779123362205443745719462727606625194665701957658087182522678754118767685688318798439954162251917043610322415630735336700099775623364802726785500446523048210025201942177303925881943007555061541242674276741698733728075654662071990684452374928593941302678801221077477489111514918047862291436060102253191021447272889802578605691816952740801183906356477442871346443879691785201928055831697224988450966186947867859332210136657723788730435543805045261535402471317083410132386573927968960070179980347250292268323704054883976811726822920619012315034334828955243660698732571999651941099573203712233236205477550995527909484409198269026169827436907520424032672012271525842724762960243792770819735150482108481554153422382411472969157108057078921026122935270466404036327549845026429345646694150179075597678840651656458598550842029177529846564376809826205439223004980838966361203246325798831728380981089669914847289742496125902003075583795953719986666041347484232388021879744308585941185765380782747635408046610132605347515944837497401215429579964349255010962711009976230746749070087700535125804404718737274209658595624491481476949748377010442842157999660482257284886839941613126703908800129427213403306497738916462346398180454827377754278558209721073351170743105105791899681386676702852611551395774752339642495392879753462607088782950220247020087448366045360134751174265627625788183256946795934810029126493128674156394970349720673445375478163400007354778827964283026754890067372950884208246311771093975645940389072216571587837417868534384708595458194710956170373601450443818232898641793860883613619252697433553579486953471428845840713944969288142910276451604208474531917342376742675478519753047816469349352248643737775847228535810657350378881500568314879320884336203296420049877138464101807706238620183299817855194978790290027836315932492689316320689062157508319580739236714237025664411229860650078411274442970639134975547113558890544811684093443862023614374155842886947682498519494576251313540685160645388027052908018643422934025810568899948469666594512937696802867662191637171041077167582203094898402199827749723804262705215093907395653990819034069435288447037979991263871465138339803120713467288668194290139219835104169018588160604695623227432142415576942140723412375083297767640689328457436781732895595377015049517721873890807584342788973492311114490764655442091852048177193351693451629572570835684139931414156161744377773863599465722161765829424708403359949747230018763049169101944433206238915824489960370481735925283892757502150081719958753188234282191005572366962909208080514700301153758775799209757053402555423559058313185382355478667053390824495098062372035678070903325182225067919292667747958906972976743798609477377133276405769991602560904932235522791898943397516012366053586457494041812689961692818852368239942508544361499462723210366570572152406556407064081631130610975881572683795612499515066551207222213764142390844897237904233161351801134438440633103989281611594054390177079549417048613656746134313240846096735350730813304942585038707835458149046626812136742024968844407389575540101972935879192631152163723896820744653906751523913141112555928313588498844963446774011135192582737395219788030525356315149189802011753161386206305211669404326481753414182789525621741673078383381247602398227569833154013791878047783325376295644802029443299870328346748226129819035212279754001697902891814439431541956198469005114334126882158483166679887132054353977328686831141326815602463056540263338637790891699368043399610647394583018322397604220177271371584557690795784607119774838843880453962909124102537142242985107651835004401331876160361869142694563633866366624967432098793570665991576551407379126211041930751914718540770665959209748210217224292724546430013411142179784721405784527375423574533383562914653219662670517475053076791511227934781031590540191577050431576948526291365928272504057593957802727049973459077099003026221075034322810199018938429814741859986954797534327403312299229715684304463592779991677549047218251391339188502996311480128573450980633986515758093023554456128003669368555933071042125372207731761494954347420853202213492668384780759914513373856894488769619258753469992243972116096361194303560829700978016431630647723472854158165286165882062040115643616970558860403082333604854916511806773914246741861705004592565438281018020300133454647554127156763427605228961422203644930237996770943277096809343608902952091943080566100615808853782146268188414348368498802400659028035267116291587752302554527539451668570669611316623945170579862771190312433310657413562447203335503688851382138743425634705942872274939564499989530143493622181229595920284263080489942901448685256734613826484719352452917944869625712625987094319121721891807278782697089762275323805146318940487621521312921565374129559235938774844787353446331523674046928959895134209262467882944050185887328939180771443734307977371165460911177690005925170748670916814980335884385932644006528272767965325749347985820662625098531129040155957157121972660466906897205161985417212253507561552951694110736331165420356779501325777338915296004240868606683280546960863029995842650175116484537552982391668167600744459787599393866380173835074900528256725382846269318894239177242603571572442471179770742982591440949130713892520893784797210318787414797680934787922482317972251613069127848613679892357874459879766267321561678247189032845628842186182419568231919615879313543270249560439990147428860904374832316086369243057605637307677448206068499986033263808279944397666742789278529867648072704525647389060184205750192990696398760335754354965510222584390651155612923252134674664402293688498922467732991999583478148040565942052333956890088473835861076547016769449154219057648142889051990165587183716991201872273432759927089053096790822068904252192718550314540990697675946503884959331197680290168964742236705583102659833001037386013765620181519352644176853479607538803854398761397383163570457982623080328550699216493119151242090947545712405449258256534062785874383694883691483309622744686607081038669567511246611844602306582198005671956002002589383471504268936163730256875349077631329688543826103024840512463590686264055745879053436758528032772395529369276770493852196739375164757524920641093418451858907894639685372141505968869527490912332496878703229360776248111515967559963350179812195018377576876002145001791606700679480817512340551977065269935013448433158866428713858238796591074611086763693917291438820033183027242202257277333523053233813704401247160729190373264647160301194530909669246356676181867486922331900940190508367013198414045776651707600742701136163699681734707675105059361398269126250414899115884178040840081550695364390126533939549014571693119235700123278873448786032888797011941644580524024624844336654190137887745142305203482951393940708214053672468782384093483704358034726728535115650727934951454953151936774599819516030117064761123471955413037510387870182512628946665028860931154400487389818246268358264091967164561502176046450611531240405046576546840812038571822890861634739216350363023453811460606205875292672732167518337953081477193078274937400859669090553987916740819379861401321683182920623110417589418877516811749694862426674537012763108216426444229250151261850004809129058252073720104924124389110654368569941414908777801746587649681980441092778686220198516590963471701330594151470689292923077102444414684978093119018903630476394444978516189546251552537373934522330026128696612153738204582719320625209024671916568165726252512595335238606428554174336486399361076310929000423570781369524873709839751576793830493807545540050071399147456446692918794886629259251575752174669758479961194197482550318111975508362423590593875081440363254328598294395211140123423623974680286904179517412997081557124078283457771214162699050889020693048332582782994707145744853827455155347671405522715492658986440782799664469052657549701917658258077865950664695372551000432462478024021165179474265800807285130423428638949136023406492274334554976362229224210642373964724441583232453587308332147762033760352476176243574488784564585494426099661715179247524926886214981800553125981394313113009221309295849467890151054376901252136668180546579827585578512560504945122318212788408036804622153713852154545862856493476114187433548619182101901854518434929715258541316872585149561823865013208509430590139203991804344481010093668660609205848089326755164726517453325368023605897710358472717766074800965821468805075078675973404656913345796523219690207808231986292292095626088633696218110777522591084250445158399151475765553525087277600088038924459903154213028116609080934311604995538909140750115110290486574963767558515528406564976711303881805154952824641544001265161740778445043768571935808778522400963755088777955294854767891228358416507881941802892670739012774857741787952708686132025277166143409356643590993083476224872384874757871810787691960349126463154842203494780342451466818208648352068133186518229967483982786668823802387010612729981733728489320183402154958814735410409589481523720895064357914144739536038317300561273059169571141325294374040479748449455060501481363835105601304214648500880232123513730266610486309684680223329138186116242310252027335256937857004066062907828242417316651833806966065873307413334435385469283462183600128935799058366011914611363895366202737708881120247988967979015654986840641010764113427638824009842245070985298879955419861116694067641045420056971943027073639781012249903633054991695764440251846663171186324001478716478661600556025500165326521798951748744146016269830683638956441923555926018005143114108872435978213002389791266332262138898563777654251196951770142405820282655723261838340426776287667513554402962004201830235847384791827568187584789888816926648903963205322529791848740464384809528420948844616715639445124185587430544939515063136777468733516048597544397218998468753000543377652637054654182533135550877100630968694145687790966557920252582845556171658990277898262908593204147188216886584182352408866864706347275383434571179910005852428033206895144528594766487813932182954562249950075590877303569554454108285074905825536825627194582004990407657751656859164744261499649668893338437946830984675678753875894526052177648365712472180252008751217626335182481596986790686989322551083437819953284919255601063977022847955794418296135352609388748455907813924274726124364240864702968066222679787528856633575305559748536489321295870067872494301091153345260367879239858859357396552143944482537380252381218786702685277178123976891356014706156703621741036348970060910145427934552905595735237577321197925106588151866707578087398202445110621027454980980723869727424440473049849022327591997298776873142790150151837440241361047799260663214990788519033231916324933003976783490542187364315300230821064370136632985757013477322177109336040787817687344340572097558404661975253449779697618711547555691334630040363678136092550482087349402870161847912199789275363505620967158247425022684024106492043701458188672239263227007721103037280728671016577998791033262962094606949981665068185733739983528412734901447350348651477486802179757660836027091283029630599249159602177554084211420258673787407855324862438265991903104584486555357736350610034359725913548494620103167512367870716499880628600082650291039300734031091751755967484049104205208434579059418044960839186827979216070831304562543359711611608316301065254543128093479121282580155319451813487892965887380489149723009913348233960319053223803371600420809150131528598664209957986819992891705071642474226848310255888099339742300622634392697545898636569150080941155294417006689993619731339756515095946632511348474294486195907653421992226496393899945392300767384330503714175887398846171933674488405796311732618951968966755013691870530837196762214015395480991342627238475974773391982869987935382979462572537131127390398828039641428229070305320707432378852110418233703064939026476465935050659019570288399051917377746954473462767020987796312228569459777510574059332424081842069358303781387386477543823343575495867478009136238762453694588425124599410100898778830709423001348362579484850265153117914619242725050701904142084909781834643154573152923972717373196137905794274896591925029376553422972718841513139168991320562708684999481532339588692867857057912495635044121311324565943735432845670519182012911029836247971093507816362148744323795872717214427310305731227464581999134531146573003331856267787379581875194162917077296754227046289386034606435483766655555709377596788965604022446579760056861796164688367311683788979168635846087655186829707377068401277477407207247121421705402610614684904152039039991622811006310738088087038461483017613616929740665316254478282727326757959573638590539854732221358381531030405701086194809639779868878347395935100483917833569807845804855694080108856731613510349455220501117491121119988981079552070588276913718761517549578050699450700343882592533139034760574075772880209593109375413738048282438403834611739348757902001683851126988427479202591694255767183187946056449613641017131896164338962890261147819455761926035107465528331270208506894459678407721773646156504736291642306019349212152853601852496888019283646634271078205429312179730470958765494080895441563131434450812613242379138878839458225558793402644746074446203737262671083411598453094985547031100084981472117792360342791505329306054131721514586444668383714545162678819527769612216018472332297271871340125300313088232487026547280838624307056109938135474842062585668886899001536676840934023058354596450435697374216108427170546393283110795806817466943827881069499301786573417877205914617509351731499500543785758945686486214031595686603409527255400902594513950905128453292086520183687299439757084365454569869969710887873375919571728663174865809238502789553462003221099667592439342326667806479243454167966602851431626211333671906446483028994314564335329019171868579139370451842793813035098260837609288885210877083241420057201891209875408271034192485537923518123941159630665171458869736832696286138092502170884197739297176704835794198160025550475058646165844533782604179427012170873963032717387919083473607182859538479311530699834993699814824437923221198936324227459932389430776536900853531849920857001186345993749199530152499307350687440834628546933283083827852422968251700641844214503754123495165105775564097181302999223393838734581457953797685009778264142978354379703455408381274921406359329150411150990116833650702530281662917278114120537560438595843912489469092304216722306984320327428244726178810272685953557316126971871403259987104846476679344745849237797776594106167553282798512516508479438398260859078409356447729694996395322016949319347611349414063257454334898196981116663452836217394368548282354127393029477255695898784786257062383309424917599184683658858923075216907873270692759363872476213076676588108996704634425351447952305710326383886602107559052141210141600566241291079311165714961070237158633128849039053171096023371895049740659119757199400346215920555671653064729204563123020102520356586581801526581176479261580748085488229395233075337543062860206942104795617068110474549259029654843255966035069402651446527946771956226050269119746282658159634088066984027735424489425016927595555276561088508506363583825406585778624409581611825821142935539501866690537315438293821812989161513430513790168313553252588174005945937429514408300809031672044842966708978980246688341829156494674921445262843796959635751836218235304473333724078283319136076294112096877141696685369448738705372855780131991926834978696404341763277235326210107454954028491197605722167847382821721709745917530614985105848069491832587986136392781085235797319711268308398734748169802477791031568332673660820788110817606393948567013029853991354956316117531904325759138946660111973384604914547736555957514610119058486464381360609575975648665108906656044233067048744499405104846926466409249852110974560315050053094802766974099642365731392035013701508724555423417607902426568311398514402396977536107940822513074075115560723358716216827889859642621922734332593478767854239113864184168914100863013348937184929106663069437369292984405368414941358670868094255371813323017033592705896746273015774859662984908509529178362426691169547295913567010410211683225149927898316528074120836513404907284273388136844021990024503265762281981481064735793332258029583413414785256869378803204440926211746757708509904061935085213018387902360164535487312566493323484907409002868829345135040714529011116107435516839520419233881021692204397825800335248168081986109500729875346377576594145695833462849596830230761415459383386474035778653761145356940400238660397159939966697906431778609575345960623862380659838617270479318135725636640143344239326719620732657173187226752477271502011875171228185692103140304357669602226862496017950849472654076036377509891735716132686230586567485133341921839198934997252780383519091652813026405567222537772941266795250088984808823036552130761871753133170366867854400150027458848187740445204132702181842038058421814891129939102629595106582745385693238260681714837424858621091819725787780669697922025881641318137382633684640201726654858542521236338670740521512546264782101944430291273162796636812202197302876042958883217566483420341124526072942827752866766284593632533230525908164434895939348215838960994997696129104993438269843236965730253917676905110740500888083012650801039363528890139475940377480072998032282088226545882143461480700128555486896772206136018282862955186166094296388488566704839117229891341537606464518737985378647400043599704174129075363456181321586046186937394687260831713990215833357636311335606619692766306247470777163193876204614518242004531435328589092026972098914872143269219588147546975758734706946609874169984774327301585332926975199704084631415900602742932036176551661938105846134252619404851193887721648236234737873447555451123396031618065402689742798520161236165273184457238735061225726084544251840426151435630131366295532988048349036330944295252297852714532650672489851211367866532489164375926523068111211131196476580246277347477623704615345173905870578792991373843022294043490138420439654653067779213531044746393494881608675325615804155275051666228044361744451646576008950214062948911407980586555240524030711670024030243919882683498693403915656178200881570437298889347962197367922290888901472106181126959326629155248375343621336672027237434139524615591329778827421548738321290684375275370298270965237504484189599042770690150511548555462444910809826141694955092656657776543588488812623721613690898108034466954284760678357087109806324652631719281075491214687977277050338851289739711374782058046334285211236450842118936715289646513394157570862646049926572945962634186807283949746709877212583252908500348942377198117431549866170109113627667497328809403760455344258455221099110648661531661917350897749485491382713431631394624941901739928335318408419256578172454593971269397809989059275332433270593871142116328593256451176161082223794288189987450692249579160324367777358588660812305503331056909621813721757906654976024145599105027402190430871683013967407042425164842188095653579025741022231596635963816416543985392563530957990355867215917637881085464748686096260681284752731534750539425664308622865573887007494294220656423283594465775622491042887299026503722235136664033954742223424688070944874539882797662278695215206181765226669738464643224254035811886689960060965209940399784070537943699843075682204543531796707169826854156689420072069489237085992118253629857280829318317346470617590937985929739012328986717823685422515891322589004716329955275707328786151933512514030491839568444425582346937965770974757257128114224466609687242658571564241387860058061350662674602073095926441857322732302895429509773960616625256380884161416955826486874023188986311109811644625619210288510901984547278306462161208751681802880865328930645584323844775693720035378700906336643946001537466397334471362397422258671120396073802556391381317281208778124919856603253992905157308868001446008948875411433763484619430598050708253524212935079025245013353593860184200179032778195890780094454236064374123690915468303061200982617330254063811591963760935936384064653408856224011494284379803509185199451094704744663389171610518621335495327068673163138157330210183834669198582426261423490329213221394050038072119235840012706026949558923793960690110813083974576024341561230845758077193972275884327719093670236079786022562498415741270828970130438675581641112872727411634711891935759981515281336702465131643274498254529809137754851907813059694112088191995034544546157154855202972933848176795593460763707836425541654902965097341574110196973120836873082322425025174898793710517424935977238255860414752329638882502733973500490411417921614303708931920534067446694066633015938480976146873179218553019561817468631253857297158972152092814975056511738042271589915417976750232148545409520651218035175960886754282756907495976214896278120335573767590072337620827514453141300736494164115285991081082787866951965156768674045795858854142006789384884640047450648526051118342870928637776480164524005328481834274866313415656776858710277205958047385892506728148925401029078209810671887104463076661811272233736220843162610582662014473934291252597938616547090200517069737237539375872061571248410219119665832071993097152997097046548504857311282477048894769352856119952514459184565272878806097801742481700181458644732328513488288518050116006334864295800769113897293400667170674249098977068556897949628023962812169206407680541842573987665626097585724139729373959783802468391475669970925754458764432485734401143731659280843881803631634724629846085058975263366995705096115310882777156872717092646190465924459557620573230948161860731302891438363163127972200405263107108413417569363096384602517775986852325527613835102399429740339844265519308068334302658357548096449372193747655765068037366525956061948353643329562518436708653059573011625430191997751095895547677644393048768022247400892337266150063692745411183038817291097720845475817784085290414052294106723827134095281418507834501456214391240532187966738179202823644563495091309366877922946174799393092995928045058499066577866613414275746110519592566392522517094534608660949932776032144197028094406586632782006357132456438223554852368474657506686932927453618911958654243444156584683296603826159542410420149565095561736714078771833224867022816752196289843602185160571765362076713968115781821882113747287647354778070891121795197608501970509109998319046177040152177403149337100594589566281212142481494238464349854499576026268386891487466632739515848651914223666266947982137342600008520287833829140235112928237328747972311537756805435438049483186734322990638586611866968840270821976208342663985950860638492484988308930149401955067233926623091873234078281712813373365209667112365559192319637365116131182696057695982090327594082401990004094448062311516950305087481899770349067318821192644557652065261798494530794418599829856673477985726402891860725650038846210561403371053616195191822792006063693277435268207685414301766390708639434988194265007206467164677666512454870096751952093228346377362911442076952522039045697843603529778832053654265953707385598763519149318120855673617037219150786909618982057421985406440575657659189475092831998244556744186188069451660325414096344549928596442108629521304867376515359270108400562068411551844782461091507165882797868768944323119575883638427254664520208231476906315986236089294988538124133754181326147787360791057982213759733767206693775195144457046648131798114060367111982644684384265098578725021782024510834095635087720860089744215463838613585577203926696202114511480354123621259680632905443130334490139421218631880919563353679645162215046222984100125407435591858539776057984463488562999949503133347814925083465407458309633989343238470014843072181326528547490746183864678054811142886111956664642514188488146192536791307522133515500043573672155220794545627742092980144010993602150405957134632124184865056750499634065948993911547722186830038911167256255807235087043495337185521603960739364168078222227696541719868636109223292563273402536561674413922006993009067459515496215724283701183952410863041365336385657087409454264104738247337291677913527832145138187891398710064288983308233007470191412451660391582717531330769188215374921404119872959088097483861648445045582241163732665057267499671839828120997158006808131163411720244375379516598974964842121897144215445283483398839418608494107895483897866453538776017058874019189957029893344090918318861143663523183467175220222191077416867896012778389488579007843099091542158309208035155579474826947869569418702981896904779928684410726555640266293810440424961995803328744401938689577686235661010905957212979635978421392404190009553466686299255615436386196049442877493786533344271049960385819704284606343096469092686810921003857144300387855360410084386800016562084153703364089542156325720166578208199937619044625521946277329006072815876546825073649934987620609715866934496116772860161865524748381066077602532600196080198410437567865536362981138818984286163752198832426728014913909117345228588837367516039660562792260570900179226670072889131449822027977237235626261720447970328057711923255681419401140545910135981834869274488279531229333903438637761082291916894417969833467228977037977934999199742276248144114838213172023709655718243849983529662215657866756904729348129878995252300396893694760128360191810575414208636060177997953585913127482661262814173509996555875374555792759494833285081408862192477780833282888383587528572060067128927983313765150984366059270992468288217324141120778217908849990809780094523720149563804377080715652352062285282116917117494131798042195661608206928309958063197287275053370948401132966273553840861424036340120718191542157675424864813171655563951013716164969316275909494169967338502605160669909226705560628135821409257494127595410273626913235572476332127139141367496887990658138082137297556659811336187099504006367185595127566383146814605909287083098433336657184459575512411817267468194660388856755565850095067809031356839299640530610671361332454276538504015171708058630777569110169709770146729263129301839230729071700557475344636152035535152931045278652645624456784135821836406978204522933628593741965222468166985467071816222274639375519495773139330503037745918073427546381480687901269046163853211335124087549006747718901001066777390803794013080895240458046516709697453467827326413027240414426770951075125417196275448804395353420180449430613607526756783613692825483235007986826665847455636937536893151054800221974343037898315043105536670860455385354691786059817724256672526106007571923510568798677990347768259440816816884756888712812720977128955055573588255317746159826004394043056303459494251975115502105446227289597325370060466912346903883999677714329951429011061743481408909196880870710690077036825844896254114923908330156131831513721730953275782858208201982379954682311322173543459502722731959174553342597431700412364075361677000165470159835553490991514516342671236183054079641870916440611965660005737442979123003714438890774253667583515268460642054624698796159474328186041951774743572831422397640792236627078804145248397683183393695271460126182270062869253811277283104681496026915613768418826501201984305511636263012408992744185609150734141138556548124008364171765615366812854801151180463808130476210133956198113487505187879474843709614947367737821783125302050263338322972257666595553568140700870654505812401716005437287698112248738307591811111701279227708806444817508139255447062448631707290642442524184533793316230377094177849338103178992711861785008071179341936376783550104218514575901262895651412415468460237488943100931039566733797611093350199209652989059663557311858955804395658109256922472118986333214116478368180448214184191890793329330979947169520010164501134343417756938786803487508183008587696093560065110748064741835518644550904158507811016869669849373751639953521053803157819091971682704751048125248322490942655122952171850988853245292959045532628396457206086752526633779031773094218167876670544878600587677426531708323459005327039270879710426521294057537523741973663404679483308846757150154456197690283436465698469622683553657549852193804504092744406351420312561257931969945070641776071417503482434532866945520040367583158033226415237427187197586766747962174387279277717072787171613052520354055735613993775188594473219594227360419658782440196553970880168930087595612490243607384368932105464993799805902959337813378715661123678363835683619168309751651861449459921645553316778243934013864968586297753186981946089205221004827777903866860971370323457853056666795331971265419932441394709551239580186115529703668424254643124166743743768258721124701624546319495422273937042309873510364590200211350408078599342537934183672725217628371257683021423210192229394717040387575734277635105987184226191524926087884596231543173510074569743502205285504666218868307085037908806484227390788636775266532255111573864025982129822621016362182496113959037883673495042345465830416863160974611541671440315649567325416236344525337551028195139660977072872788234454451125859763964778987501714377153777954019734635151142244269945252460024993644193665880388520554449371424048681342415957175038211417637801248569215468836270926935522198344234175216175510396238031345801122577830685929603538843041137337029996806522831097576647714206170987575830925320345039690492297852182912012478607048021533671811438245332220681165911666160427553581857661791506593011299417285127564571407532585617521807362123323633665217586459654336693459227707948089124290881754118008370598300282129759668106248639282790498632150108432850355591987873160439894309932670312553104684660461888052933902225813874622158666527295026110892090798945633063299493897401509540590430509555409522647064601411641746855509438276008195959951605077610703392759729872964804170507047500072341450341660786453207695035947581855245861811960502399454765719273462106110813664736724151225692698024123016254327900147129243403891103899897889913183274612217742019404184338513115551437954978479844910953110041740592448592646890575828983026332987873435384589944305574735489038763558111468793097972328180917680337051830626175536383746976345346761956621657961645368096147687936994546261734838042677741742298238113921477810698902572217528780463565330712740471890235246589038042099435079756420911799801135951759656185872189469670137717143882302390012995107060046569520890940003050690155733621450698843240235293548108768650694746244044707121269458309179683376815151858068015174490559710694146127163482274674841378629570802306884734210805887218079106309759316884799989808961113656753176227095638869921546198398336349650113137990329865554665715581613496149260550989830813054564067715114422756642671600554340331701099477053803900034208631677397503422913423793674199448052772966788550008387548636620040302942952463451840935051495102614016084143350748826504681263998437703323251181870429433514438737106874445355253691138574991068843917822356333484458734922830000599640517017001232840496345291815256694353773054182454412797669979798172965439311047815703578681152845017188922083636224314165946978439433935382624122774634753520171308227595539527806325837803482093324619979815830771500750970674643482566108038887586314166209474347344862415571646575749342047222062929201935665752975631518669659588985977902806474348849567037557550964170469388283016687107156367723844818503764649691947905373513855104880562606352863885480296648210647309007921132082854713147297233848041858947995226425031468966977823272214147480980342308415157746526548925602873071089492882661206831862408845071149568152661217280467031262257999067933706765808653549958006941350980751113512617133146225996885385762649145542595588277591275061297853952104766631216660158258486493934212138862165432093968919583000013439024250038060288866120632894403089509726618113367249675506661963176796003742989475437540906422686166648398025242996845141252004155553361597210770304833747653415825006660851330945276342672864456089356404831886432239506846030405007749011522650195953402438974312521499551081403445793485979431875426321980515115392915608337023863383418429009714802685339259233602327124064055540383154191512129665747674961111426688985568944672908674835308323861975101786774802345405360464070895041876502574592585581871805408607451137480082517925527841920627022581555251584761561267574255628133702408416184515199948718031167980674462020740943352274972287965657417771131737690638741384280228969502674040403208928395227274954940620945194154575700572211829525328585781662580911734095664177597757143926362004054154189078400389297819093164463328844614262276359709694987467688020286171031290879175624028978478288412323820816744369152366420357191815852191390981902249146705113271521638353484486907048071618355633826694185744244612407305020813549985550726372667555659989923471035240710164314072418466693179088976014128198156954430050421257745686379995428536417658751741041699290650110700908915031163450678476657438352398252461941286030635073485513064710977610950052650433311231959486807392246152922531627342635549991029430724400441661473564231354617704391782717079992748837540932170879782750480473906821995940070717166916895732874700752067759973882291549789098443718543572332633927924047371009107569603605825288836253595157152777381535992816391804675750665838932780447975911081615200859327724678134362028101548290291257624893593797039782425132065869854502738465667961974097444982612785699890981661215802335422785787191043826143552990882373049993571880517865995079106079283730149939707467823749758684603058123979220116603205135973084508464661030524020939157549515221127008248682546356374659094558930379364363900068578784353011527216934900027538660543177054343461251192558396853773768596356881209860236302560694235159348852960978366690256480895749635379969041147052521999968572665887377816361068848366655492364357741232161662684656104333671873479703649651408649706139856795924056640921213705973707343261539263281682802142894074828914525687688097992495205889345420760375168995724723885705204927809589193101290751923437956194813336556921316426892125398625868585765391953570005875446551257368589274242452704875914463368049047598284677988719265887350440813594027129271891590915763402671713322108435105669655847767236137990541024448996270967850944510770861514932385392786535477404551910706404436683387121748926026130745055948601519939077189128397474998080436765441397243980213846724912599310004036030622852669655963196851868879753865470295160592490584969411880831832178302176736781363043209938846922956443128490246471568936287352009158472988401252098613269609942567576777933005613610931360719642502054056061422258800757540513083249543427386184724789015320131654169079217541309567008330555078586631388433207610860858180281224916980321088448925366081899622406339540012939298175215034309249274073771099543191266886080755602033225983680042301386484687787856211356972047445025113408931558256537892841998800294651423429039113853061673028380712159115926872897570729246649223818329680049764669450811461883982249614479201025776793616685718154493822858175624996666871310197054546547891491810695795386033086567220170053927496306986912454130554336347800289778728989486565459598748141560988966169528963725813642752333491170535612509365040829182187903625127829860707741365242313437386471373159384571540649373153617157948179637961169682531362127294817710577089979042924218331845243171164845100363860415435111582215424674563881779280586017253571874053993512350307476057610483426842577486655694119096101043484810344154325419185628496319913140407016897832982169237301074886423983886804387632438888515782013427144779694046022729821384669566179469535410134598643910234236194772315024774238400800539128541315540833186628288202366318474331697333355933152819097866546212745170786248858316069907156445020013916646555867138766858764668323744894837701758251319627506242373966191828459268082842216196496682366184846375339478421740561494503985678257246964705124186817563997326049421736538817743493211804431095671487933650058386816835215406174853010617915168270159658974291733620227037646237651037825390124135831535514248237701083493142487843180899059837644704638951340686177547066105270592038628087525628545307848213081124085420096760764162766810729816404142821999968677904851808878964134708143798516377054692399973650603269074394656155673240345743475519368144350176407724709960049191680283227928008981803445530520087285808231888621061201901469599397339132138923173900851191382562751853889333786325515458464441152053054902678389778357064103278059734399816730338830320311563804814920799155939297443541226905063704674626613426120345657949796463607317911689014217599001646974136124435630881707592482368915426513825898255197112293318655760516110838811124047996813888190423314889526849452240696464128983319285314292469681312691863935729461619986958423265221547650623232709874099967227520605111753957019045569841580719952603176835876176914072797841982768359008226130981967992803395827708195594183759796218166135024745553650912903924014568516794868354625245295342060903603759623030658182312643588048594680236735338930932378991190415877402188819678520972869864228575290957032178015182039988319056919946728564485699261221113660906730166156318884758500640188458749099518768549074713543226044183000812913509570249513734474107148294578718329768401910812238741451512847359254761535658794129215891394489428897397906883265849589565992697074889320572851370213394692283664639258105546983279281138903889619442003210665946515203136877670787909433830843369913248859742931527652688260041990438839180336876001094090775831697454816784068204651074027196561341232347399738392892635739994699679798673435354044908330334006838129588242632836787245364234677525628182879910416319667421241609139692960993545877895400574239286457925484055067010099781929940747317545620171193233729021685204383648628285738135121080618198493493354804370752323598334518409894010617483057366102392752869860539437892359541840150938940907757647708048365586560868515922511560258141029193464339361395716203966379399205588950371307579839951960499192503348942712271159247250991993321632874424404176960285508114298798858167809806610031550496965974319401204020382483647835788392744694270891001964826977829672183289670699260969226367591473378898049054078362885971490159270387806449974994514099322335365711688888420946149733108803704551103551551873698736718891603809537236538969635131646166226497372224446642941066082259826529937415953361381665627122236869618631579891255659321679181775695562427742601465843232976042415727449781891774711102493362660327502953539037438216984656220271606956190261288086573410249608609771731366729412095497948653048849615023939331889616216935468651386904216084883651142785299902447588189174062803518439840356620327528580575867311740972744971086427029834112384159024812200042591503870664023553454264275566804515874741311510912601386289226727254865256297218471981780186240535195490840203090457211766028405067395552626216234683810908472583824257834317471068203242688971634185079220492174226493104593168815690608680393579880617487924362666467694520531717374290204369205594475526907924443477374565243981639621944559346794917867688004913588590652256153307313415514328420566831120115744564040994393549349134760624397031947531804597446156470934752226233945477170476577833631883409322387897693687288775212768903489427391132979509512455888564393089248260559830398542455246678625007585636433535142969748120925671452067796016917605085929568824449530451930738472490916233149629706868939816506387478407187066652156258998838863898120808690001053980361297023520716628246978591923942096247132138681061771423285651133388027982756241132473878616636560132496870140418108958082145674532712460149513732120967216681449196505921536626597920379431966575392030205909665639007949913449574897559553155363641255349586060208068750142892166811630724112519206002231009547882787574000140130213319641115024419662971972509572897936554377489481421871329973097719360067466624166201479657602634782358930453430513251870020349450394510587942720998081965907496657944053487649163801067174223217668015767517971285985045980727069733004902485173365084293440378124421861548636790722231525128143312223467056223256293955078623958844744935272435999026084741561283509247632634611423235360860003645409555195228201096978378314084582201670929032980052789843330568790081384057520183574182750157777563212544767394249198112200017723793841723895836579972055884714502781528081546402900929603654694727246872308922150977538908630284793404985520267292589206776869489334052607141344808124214811424367425036869540283384653570926734186111612450586761747836481744449120551874456918481557428399649117595318647832824134702610648354772889799534636354507131189270881759727731813265755559977959099001172258875328850538265311304054778790661351091010869969940351796722560605392192636994382268143971988944289999851465749362842092734026209978153396289664193378291804752730556604104991985739700356816348638016747282712610089825621759300584857085945332365566660201838458270495644591560919317754306497354931154408627164362399647491119900819444580316042147494247905002122369972814607251459829700298909615228741256005148358620094261153370179020074743567803785221706198837657296936793597910449251224298177144671222036526177909502431088901651783846112798319623591624291725061720305540508883528981702287318200755346832679846343860801101429956711772708260658341290647353793933601674714655469105944778334429632615653769432296771071318280242163944376967446720600881092452520963684023620515947029257588787384667037374390333574892286281636909762767872331785270543571620202738954182866348345707838178564747543347185254286953900089974240706147896808851509823991673571617911029769623027431541633637729788258360959513791101047796698834817006184513574956905371639737286590973086101662562175995506389147520782253306563388084605576592741914132932616627106112361753370612265544946153900323931642772016308386958583747784939864721231383715365390819398470693260591573457039748775885768764004678352895449380314453271415359661214529049431043988426593178000305398029589042336929127574267395132788361172894080377277401968737390003678447233375496157945450671755344471379033108704748427127697549855085240591036529622846949054163256009092331922542343664921583702087979642937392837496741997520061597273511661460741382181691057967221609266637582851041077536817303308780130616356825896450703898103446138514333035607886102918854104188005972012881239217055528843025604010282537187497127842020683433341093560406312711378477755119483548165272674548380759721142557952711771927264709823160469131916620944557699941250888174087706575232810472489962755990307131082640610773185735332454254505930801435958936916357406674390414820616943143844416975969645842171514996473412204348540676196202170877898678514067727805505165784701266165291909398475757550941956719140287560633958199492903517726772686003080922939713734383091156079443979105190150782909597108830858721980706942825740038041779296354429020627746929379481928849264015152485230359401577661530622889489611711908843247920245538789077384774166102163852045545002778682726836329706398251191305132986431548009713901387146864453339226835059356360738889776686319336572624401690637509399948699654527319556205562601766637158788038009784510871220991162236191554126309793558626468236169453312707145000873328748252704640677800563821494931354616671409055998573553980671850656683947628090572933805802126761653915184789751158622669113659096759219150843149472605841041670874458017604210467730517866600082550184924785544547171517417139532977961318389594140185401579284950482385453841967628139739683409341323697419489283130105646038694618866723812089081762956943646264367474111120420913955194563023292864400984517627772693974892433681251869094540105574902960456615396413204314109819025872706136141259615923148527926080770514300928022291385351429547125112413720318215109749814984194446791417405222808834955825214646353544174786510107313093421069907656817610623469765002701081218497088963202508172156142853109807216744144497719613861613180499413372343345225082283392520532925954903761294209181170707971349329291594692315851847349747240492433983876190404100198307409528433623672625587258287585249297137970434507711793446588082110124523482151588757963333789787030513960325465652183372709736991834638771393586393524369718686078215372749719884265358838738523902224301193693878826648893154314740954766941545551252474399429673862342657273216173943461477380258026937963033888141313613228055459513823207496935774070419468111903549654219019176790705415924267876401175637352723295702284266236734879609782032543624008391612926769152002071438663665482060011353773584348360635602100143674596582179750660731453203843738697669057943065535653570536951393964114042776103124598405704035471322559694781548409053109864037894596210656037148368997159586597850726232032071596201083952057027837039914758651506771657776128722173674111491069308882520955423091233235616778307125763002229527677380166905950613045153274397160603029517945168921575836734831809307070366587887691285946485727511743472624753642342171186618921634062210754928868417403415366798196270692456149414508647261011953364532034731554982532200703232565613119188416339359215003942953227559751271202063487310192301791261082268185239286627799429638391996397563954091294780022789026420984919271834110009620671927996559228531972900221433167526993949472398595238673935210750185220552885274331553729172235555159972849269891049318905429909027090939611453539234965714459040854524349716594830166379735457912056071983815520151055040845029337480695897049421831272963647937908112616458239884741920697899068630769548796374054225705208893419750419937945606326823803752195389396276202487336681528303670140448360807862977735025597493688822630576888823554358973457904913671467094952173680645482322548787127185665749402300965193998894107520584486661351064479838625512063762369419589089110003393268193334632119407483895585201823095087358049253664559860253300894017187195309222096618371965910420772230747705480893935219087110823712137836548479017455028046349515014396207380803681763897241016309881953958182789094127126851171307210622288495118825258735336784242533063886799471676387379380213465267335293642273453987180628242131629531497185728155779412272346074394385600925489666763253272252496445175468384868968107735997478897920314719793569440297634330188969385740504506525489881009241779855218079075927555402970619778892391372462717811321881096896612678629414669568406170833725332009550312669328433349533536346910258904841527340372556468372417620330181497410303647352633242484755952143822067693858643744388414100139381560338777043083598757115946799768972502663839772107852335646935255200634250638603542681785449832318008439146664547929529751254577329364605981243269634569148533489249030719966233563587065199619949639753736519346319323271334945620070180866551997270079276390241045849969009344148884109912886911958260861545280750923046801043687844991404619090026254132468292756298649872016697219410822567687562437603045791443860674529940905004535529549914637002008872647704061995269083139965169344250284426487393518879548751686419439464575566678328917911293665735831354706454016135082576200132767594211441322746902704737916322960091494576362712400879518530808847286790520729855322474935298216882724725152683766714355837810512569438154463072802495454245184570406451112253849443062542103499392221075515523372907410185393630813764820151371680006716473361721526428702653328959942214794154877138039562479165751272175491790712831482605584568479850273462578833745796906354980942988306393158734705547434250395869034886660566088388845142570609514610200773729414672480691433426572528247566428573802138096340714735009766339788571499743784773639019429826938065650344501125061558338233741681722185475206989053651707427576978039174216741827988290938148111713103063518631594161372761788039784068715759619277776536076526698630402558045010359249156035548899362479966764728046859010707207960890524459735117095521834685992133293044524588285986800940528686510514155054176397977672417095763435838963213460000298023574122616717538435668092259680581007275065683647307221203295786386517490212276548111644445547055198096479620961535880472279302290178892266276341381499818908129156372531516790672413877190841123458735941459852685930150183982822523957160837878483246705706174211335084813531331283532317636592886123305962941654985345968750439526469359885551157381500280336319940768888463462251854332775613614454782935430980846289475157835818386259272420794503144682026449735021191100850147210813080362228714359008141001192137791305492064395228587790236931828828278260376333946119303292149014402401183618300343542040886823044865452345892984872544208316587107548176563187019703069959751484881918837353291170405839420814144791077271266730795128041771563438810318115148636440235984993596209993976400426312596625390891685044952434404472035556148812598709300869674325741683063190760892180577922695284486564588336625135590219371661011630601434885163041620730691629182495806523466874903565923592965310190154257641634670456337696370794769092577393346875070076425840967022069224115115444816912697184218877500173966498831364390807651414276760942307754134398376149860616406574406251807625333318371934315947158044544911862423055752539094408283034939322429556506904376186635353397988024466590128992640661683969917183077294497949439693884503632353045127589267682009951133042908606346543859574943726941608962216746528172214837993206136373758750155411792879771957227834027463683436431915894696016081515150376349601744996566756821183487480361395653226280042171824662611278410303204080500217724610940874439535114258934562071275514860553655424460575693113027114591456777923955102505734379140408630195657740852275792971831732610746986867543158016983728837423855009108146865479847792297945339894600493666659012184705519386720088043733059574149406565864965292170078255927098746611018663628296844706800883329548779758963357601006060485476005469426280070478611044005239700690839793510371971620201218669710481180957218752117252544836887520921623312805670691305394301037232945984700279473263743059403368899872832400656044479695580330170371144696923040506768478431744250951819222419497997451354161916208334824619641933435810492433471093746798973638799951574092357274818863848818051555006127247704506990154320806891081803878823699287487993129683203495615475180353612128786514341480142944779883020911929936180807229979456873056651251921360729000544634534773996450269383599123089050907017381028658873935653635246685438355854309752287096847004309429915479198516879907836050096990099703861200797459748715888213965388927339795067598372330121235981503169516391529126386860240660686319108471914654485859798080390748560084679449640538497869539823947102185396957155546126950424048483884558807262130585333997223216138043129352757320513399652334159200941398333873633221518067086757210153706645377076241049287283115314485390268029268272781237598381443804062431020570629896399579898193137261227129863407419820014364052812643769062418909317880569353765436791734804089874481657728192704674033412810600218445694199261825090061362673560857931591311921262467826319986268829850870108120879794445030195502484841185954059037303227805376879940574849223937095387704916623534702904906349012929913394387587934835329242362915666430203898159134372492023266706529354651714518551624726624084393438433199762529104410648623744158752290312353138904346727144454291217067075318967781289137593727525678794585708511162792194100778543796682140026330076361400690741835927297798717318177534742024297448280248128210858731422804405447938892499217729743729387761495421902334975721726580809393748004823210868685081757891838613728905996922346708134660393092354720618990266375004185716742331327553138008008614600033643398682466111578884101415478299299500036648343332039422852262217401895564013209269587481527643010416657569994953387287007841494089081553252587105784681051339236541075678521069752765371670427449965216568412479784064634859357836794624470215870742043946827424864497236491563319016978565559124643535449968953220080317102317402036154000090432209465230077015343341003771921871828839890271884561227703709004295716635670171577160000878374950046451329207402700241415218810557038500875954976075019131105472696311149973990116216364270381510411886880041085238420547412998485055874286215427752643033741802836792883221195631266368096008160203942223268865008148285952058517242203951735406246830910617449696609594060533790163848359755771496837449485034052421542627924846428407449805642577353320519248364274911988899668253171418412828585391926942078048835073453480324596122176530397109327080728441071160779270377449773296162654295523552919708623770744809169845788838562465897211151722298325679182231599961680548589629824306927780829967881825634798230471346933652271105468521578414328194489459781623191143422862151497399709555178241606270539665103263670469590492666935627358347343068929447141936778255946877807419793568859418931148168343814041882407270687317964934673881966457687229085843252594064272183437113410715035186798303077101012096687633212523864907424980595378480069076920714086334935652172064426123719839351860078355910805855596319737309735492045310704307562232312532543890600885643747685849094545375323159496654368477273370520107185641211466938601380076406263677512369402850614553699248265753709018067206864243418820757778827844088814403736063005549500671189467223075945365359657547350799208012806461124037335255460680699097671698822789340966228764845497624307514589968431938477177161812146782856632967711765622914686447023086306598337870819304220209041061520174989608647454115773785967440530024806160633146683076181956763910207949793638511476048838335813409298989414266669419701219285248692152086185671612801063054991953923139693866125910200227775207326161216042580643200574597753774632635982630233645126535928858388882555697120679296126162051139869332508133230495008820851383969130917648862065712412080327861409073094518095020451335990738625358908080831965996686537307206197433745742044458728251149816081394526160518620245586345870278034198058715558902857025927219731445442662084556804180604889763487997412123950244054634650101785498942325854461402262658250040246153671506827529339565226976449437769159184081152982140968205475629268884711212694081941102271664849324522050685478731880364954196402038438139215702168309857255476776283473137495404234238121177362064956967563736675225870879639503010578311512470959523407926205605436550229370048259358356978388848121645769003431486242240182867039162682930691026560101575553007547172197241786028767575782859002959442977122148799327851166391003071648670885463308916354315441292721603329014470890572213830864958000886297299663181846023573257246399918985027487287472603960768440272221890773758063120870542558560263547428687297539187155810141248609340582997088135274694669952807483700863685258499474903093067721405865332185103130153490425966944529413856009764951821407919854865444633753093782547106860675187701381968338542849253492940645781769375305600476040141601565516568981929659970762933779403760286735585998540627384728940675043853317818007397221929417623894117744214296123457699643403298934069179752261732588673913884975496026971836182017693533404167967323230148842865901175112668566329335112101537778007556297104146553442618291002716879105182357777515637646288404182164568712854566568074249415664709868713539691666772854351414866924197318751735396792588168130191307332338403128060877702802382046507716529960410926226738037054205046207723958853456213887151707416977913575866362273421370476578770981003992324867691514800887078613664827114981099481832009163546523889747529839386258280682716966144222474111243154354151410577192384687944024468565266187412838197079481218086671633535605109375207206419746923893558246950437036940131898495526076840201639303688290678436398302407465864570896386104685397537315129057620590240893727923539082534189565099936570436166467639176328206765275238326579462535147419270246757503087290879837608678956246134079842797336712454367122391832043640371024161982201877097789796639598011836545568728856756830877521479438623391593248365397962259304100044542680508811654528261733908454074977028988162020578642585126931968352339849856274098688383092058291029472925604964193426789909955731877409464731145146788064105049025483220482600456249259313395704129164945275543191909405771285972682057660788369267227552802483267541577874114365907347493012409541248609689147969056315427154301453286057399301849294491777332609588123584450137932144563007666905719215269196109122748275740649492971646389391541735396815805752579423450956783815052074319266970375181059667291848480209220666547254081093651433091799957494491080835050664611861628152203114509721063820574779940314916543621447485072584395103022291269239516094708665189921092747720718643465197090721802622262065394020287760491782557771921041839556707031204693693726298078753406414970028014262389645657211105465157770077432403503073867273416088010128003851365625586713830733006560776912520212678282360722981550884589438923395508936608281234950316626578129290304009257647988433245637541130802080922587431851095450623677989196357196151602001816723645917818595892141818770142948712320201112136557343438034447580197689094006800575391337570499749547791895866435708475658027303766731455562174645899555168960893422669149767497586914711598451473250633127206151876669393369782480494974989975585491743499759898247400448537095741436110134274391625168754527125071829872410840407084245331510259652712629788346493319709670449239824957034623151719895806161195511368025271912174846355290734638677566346627180983709248044225310020133962037333839747569243184386203007114049661618733235327988881134018456473255139042445077029067835165711430951779005927474010774121797002292239023011320785594855537240892447860837566707025830734053825411141139258414394631297124649175280450962902487072879071870208300480237185550920937119906371423998793128081251717904988489854519145025344855061058002500469877720887442892375230117956742457542977406592600403696102145123454741495667997910360392920024529210232711722622578757101887960157942518668131129868704147646521502165735656886073275913165462840842466321560920783536992092815362006826329114153634684072279300730616818128664534209879226311895505573675788770304869702903664246854884710186105461135444237070500169441928623713351562880424888320337650396942269386948049993757027022805535168238289428460547401633203908472279011118126298597305336062603561434374450741662100830925627138167029630593344142364946513985697746820569538295862207393550936654331738057759533156944084957207899641486737690255376404441078547832729998045695795547319954270461426900727159932790913301662873074455910924802766704998345858916435674390366967526715024078914368050799193291702683982943795818132878412899774212114612292777782867683516964927805629439160599722500717992425639227806828867536900923853790947793382872358486511040600913157579934942576114597480317155337195005944817564915895304996079713214013457897153362716248109231509851493433600025370136782052731403479434686401033361139814220996959309076287971807385032919431792658452615046484068218940551998554171418680060126826847109903419881660476331792088416528975045477610060319285231802341017226078731687539421630086224991622177663038807439475481563951285603413999663330800699898389621173801635550432048079687987478140307132596113058269588828644708127867721868530293265086952998556125909317385249458772670129805041874358961485618058760538761251080798398928524704131150353120445577307872515502746591640652101514765686673072989334811647938369274312205349065691250222460986498015254240669025083316386520145219324731457575469307266902409392056732542521911743742433597297405426891156888514399224151047085322378396528878370234392491847492099509095034963867954931156655438904787099280208503744203387475276003565641976505904932427077626156641325627588759658473405672205251223296425700922913485477395811445197919406781269842401750787093529471058597036123444194789667978602421256250467761501850560366656043305008862493397100567844813777016964962606081280318243444107093756481133692069277425358308557258823680134150924117522861086436783397415628423433377431033631873418571223574671268661989099070313719046073722667604905264405366650904030734564902390892840030680281932700820559643503937552193759074536018035689895923359704387534528571372905078478786598381784124668290984870796189374977003908075853941901457588361513658766231897121407761738994844015177685956001845642839836253298352895913067742742621646254455618243316334862001955495616612162584364594952732450840724424616689418668374021504790426616468668505924827999727257789860202802233231206362998565180108899647988249627186859598139487822621468588888636349225151467567464800018069142045694365046799500247853468064614884752111558807110696343460981872953396316519296141381316811319969351526902493679410228322217465609586959599378059860457643403507111806850802689542270707506764426580113385921900093821734860290017640299635384768768434690478104126065790993005355808118207057000001754846884024160251090638069918480981686510939758486833748270673611015540341213629567088998780807340475212737636481760271071701150178074631163646412840305889934389400986653694723749674991954136218131707924320310172164219130762548279762781414576342278279790273042892218774281354930715013149887582881581073867144255057101255546513149745864953082612366884538335469578575420495336735566439763980127604239679128960813600350355945110244240333502612176328216509822402091705168993711429006576089645252020533632564154076787133120835920267889108455651605049299418051012637630348399584088865441283272810143669693590574468529617402421955792519210528077270807646142997039824522201441855092608922532974366108659605633209238440129319437676497002925341639835162687569781378038310756025134817609895071442684240233187850211549853368424694785533132694069245803532078902217909147292527506638438981242976350279728615659174484729932672774881214793684408704973301049099772684013569921311234560013008983113380008484320880956762081019540146091730894938440310412267448368035104270574715752930366866548296237728475385360123281122144864236716311612360379380384792380288053931856856314676411867717596057802417487289422729680969484406780112430256966140029012999620385652371631292314625602648716787168638244233038664071739061537402351333087942086053324169872047587288777520114800943652531450824683491848363620725972062215005475712028142815689597575150396046698772162419705692683535318574570281406954602199212305095620449143107698095148103251836772367998402848791628055243817881350467671276872854063253606021514145456102986560722105403631856056506355938685107141448181729809245683750883553408480929674098618460063668133653502540965303651950997384016664252145010441212098304431971518478264471657790908738785244880196418112524889300513540392651794015221486407083182075559862856614017667016152625581324207140546689005205733906051769089201475985716974829941353761634136483973560459557849701762745300493398185421775109124547825181037774923179720725248615119716849443978573611336567736403067686780053398430096879172333419000694728899442546583007212655314934060174681236376640338573356611142929035328188208957557598802447984852361765728269597171179965492908624714079454196655443031028227505161215596844134016657677028799855871279423560187966632283574775275818755920323514844127604223539276152240246267266289093504593147110431733360761532294880235498051906237881168566561209860159364687869777708896311485452455890584124546599737218660435130571899587242940816380113338505278570029855863629398474392512119630633390156768427908441903996775008218099230192701934754991316532706488445865198602567016132333706068573383044395398312362267686323382324867397566668203620160362153543237747840040623901585073472673980269847078598873047398905402807954623201802010239368930296128069010767965139591353077736027631196492308203729771744064609194405843310710132952345350902668965172637070250217007903756263422971655159086223587268383973706614974133089605726841937305481672335092759648193959516599835311070087377332641341886529450611407650835636599665387690008137294496115998164686477111080732246803848829994506022793957170559430055605131875619749344553045157557820356127475966755197317857088827936488507531841838875635815181148058837663771960919451883084807429265964238681008114080176913937096905301271933763936867200496075462045389137655726345146293735367676434213702061905461952999218453284104522968305574319141941099702506619202693129141425735476377039500576137961639064959241457234493057722340110873742592330664845787527195210300966683121661076522672892458089783051928055487864934236510851881689742772068917578576595075539526064332368304898738150219666263060595192101808345692651207160520073526384198862960481431173212063074818178564606434027723234631648345431779760163298116086376415308254588660807109133878451975890808332923216379300747053372382175698805394847306110861233081646890131149628332565288606009043324846571594537740492706203465060533931346357500375212810992763881085479487409729373118374605897872302574892303782537334577648225168473616250142265953849033636293718994636598988257573143927738461018490243373371482304830468798290616390715105781947287278340807460295203467866354993499413405011791192216178621665023752467817064400668878447997517847969164065309512460407794184744443270737223536411867235369367672416069309808895903016774886314680630764183958750946339671930310922660899789042835486458963107523798589122085921677921150818751289716863504022879133710097952075588086496429780362664031236448577034094128432152948691056097417082831641691898527213342489290229770723718461384869199263688558493619117596017109174100473265707306048893250809319368393690609076436256731617851386174805142423203334320567643337708606480646356880280892294663483724083926785565424982484131978999082429295310846592218335774627027399049950231336817186576556672696733139294840275631229086085324141596904469512055833766799779058397428492581217776605032002069786957725035715222106037199215019666911243390221265948154923670084314473977410217006347810397773865330564735261684376232376124133608508345339662655375924775426596302287893721522369119281280509138849982305694740852915708068966054412738506228234100459105912095664142515406449308204368933807174667213698839559104159349877956216771619506181276118665589316268215495437015878906591127910089838951718341634709139090761483948277935657688005791016837254724580310621912468259240027521069981463519443655943741519201622056197704636625364322254616959063634144437657857777098475890628352749014515297855174891931888552314949189457968118487704262109503941201791402140828158829456642197559963987585320293674959584148004106491108911574450559691926530546733451489718995503318202890217905225536351398684944322341471287752409083953777307485892599840020368697968773811448418264151977484846027059441356493853063638376421762938322836509594296975229377008266214376105950492435065984853974048468443479911054562997162164148221733709251752985891975826380272710882169691193514783416221780974942613800473685647367981017584120323334593753470688999086945381615576634787132481466374853311505974529620033480452950338141609119193794306692580724538762433463270747233317471586662432535451343478986724491785304586616232496716367098974821516003517914612444004171594876209291098628988620780522303987604173900717523943580695270310892485186196697921849182273604216873284019493139639096116246141719288708339065594891694858019723643488872418260601649454570965269123177090370096960285746218935388197418359104197804504169482272732014762115448077895640491863544637325132081221601079256140156798399209563904518139010665990948149789545139529874015123118731957877284634932837303835539628206300995558067800655181478223558846464710628516701558782415858162000297748636416441695432556952966586374253735478214941498826573830493474027946770757822810363435694293522865854078000314037833961125486491706389498080647958029679766702956243234820473841454006993024282789976751140000324439395476820899562413905415736374367736037028586501777422367805810552597931691476103471960090275614898409988862694586139697063626594075860523089927440112629654737518543467044378571001032709722095714416521309387947580195048850835675245509919095789850579827529276180042002293913744959674033329995331467803080846672304211592635587774715302145495130503604605085296499944306086155855334811890448827177425670850703605086988088718834498410031393236989382586153975290852318795504524125223044961579767900327752712637624363435238987636320169149248831107571112429655048472195665448223501008339693933285075535488632853359213698861753933383536620888053014903187486647248222561766991671834470002790950329563619310295625878512437726913452361351711012670806821711359957246376457237049967555741426287485163497682280742110808269580007512624422513508490552840781944868466430878813228946948891727679299984727893407490697866972091806264722379847845026545121972920325310819361293299062421201145650419860368929847112508665833339676849996838617657164876191629283787339399916749666330627011102228806526901993379811079244838142135847782870221317180000924038596755084431000352222120850551980352106854560829517892929496942208806180098329629960730751206729598586537322867758491893231788729638185917553574691114468196082937560145387083390362769637889190592812631930080669253606081091267255659091562992159280334856245076452337826539988336898782292127105016271745456789741942134910797995915807613271434181705579858069745269274285798288578923104644614922923913083387018016402576944486678045852010668979806484422631090814670251204042086512615204046060720302858965102922132539992509277544983784162513762708604709177110385683632839027467461814652037784739178411231287972471330172544406211029766307495206671219328585381291331544227659558554008830511508997921254947923458976281014066836851588675069644956422576519550051204392187277360728337407169406660859754670609795754857622725275511184836861262585740763033852472904311174722239082782518881011292599667715640058963119913341142422700988950715616454080071016729086352574065248082119400667611199403355090726836759710636438560512173822097915699476917232960129317851623914565386677662985660606525896814150484564600105797720823302896615138786003570335379154099094310155491999502432031382928883355938635610875700887166241259082967726943198723112299833295009414475635958105900879756827252255490193346535510397407653025340448729831282493306903069279585132233634024244898707303300276406021258382529553679637413036024448255691144779165791157258891934986430928116777482456013229863257454429682031884918258704134598017478233890802063678853376372683308768498875881636213585311822695806136837576640763712659579196140687297075646307843675826392653021493441412724880673564958237430497631507563779500168366435095852025323446731810524083178179284431361998243818955974874264501540603674960475214478929542080491183348326676460221914665922100990232964454884878765899955398163635739916914982607971652731147974585795745953065089825913378487218209004432627246964031748585804407440374120360566432942184575819090821966762050146449298304011260354467645451931538293514213401077153590469327857162827577528699023114346632028690373484503541184371485320173373850367788496318305190473087191706822051780800455567164555030629765808610426015466293998219227415346139540937641855881630016529097703829553511698099376080368786922579293014292343580820787615543171967512011453430749282860972292099615488503453043980774097888627549101973567153919873007167270827478528060188126837981045508351810401186709633577426152184016213911787495587786532273168681854630739366648272704611216212320038654629223387441025129087393685670000815740920944733323799869200450561800154512005539141044715637634215519283364574348949440582590804991906999504516970463765522216222083369941975842040999822615712165117121677057848923187800772418268491304702072583853846579645715767447771559437531837829682730237682253249622874964800766791646299197024302048016254703135183849309322715009197447419823225951711015376605181030895016667998661770723857783328159130490292961141024318176185075457249042984621396230727254483250699016358227373444290113838668016854452891692711747939568705172842532192043243661161679779900167626524070108983790534211380981151932244184661820038414955817971205319208285427453141794634395210062446133375951213974462547009604813886085204947857355050553428582792921485677770232784755349640230406732357481915178740040394709530768035784672431624101259999829791066701373420759811716362691425622925558005498553318513912230898052989832931122265393657021801315342077103066387431054728675288872350792837666202528499575743876522836181437207035215513214656152041646004696338444725661370899586568279122723641698145361446321186075769973271958795858829516155626818383129197392666905078793274998602249682339372166835328444800574850949115618805352676619079883963697411755956350194511660181758052282249965519391596297965251949558382148651763855589463603889293556731849788167880866109890877600427113902780889306167058036770736617093921239879767391386315871987310930489720074881928312285731983733150713357476950097887147704619282063965927652276406733011785346924225768711347417847413750103142547419530511396510450938546498599443380488707804661829145779478384021306422125196587652584722848365909327197064220011892457723509735719902686769682860927828614216005052684594077449110284884827933236602823591764612276157162450708791529004162891488321527108277750080494231386166620086347653721011460429882349807552141191179571027569670090543280322675305468256924303662960715394342705940776222419098923029525155762026043216026452923810447266626640379222223957589196218912252042230052077645960656698793286095135675320508031568214231460024670574371538705250067777457687297122015138435359510147109461233451331464317401147871936667758488350492058135699259107393903538404372918693562150231318780455528538113345743586459564861942641532718495756066039146558310431844902629184186286864340371306216962205388790292773048685085986183938289327643762574826501042095691901002927395673129708321817051961574887089853163705342631367201911954402369868717997567222865851352263655170750457630361297905166537424499046639602164450787362195227044353020348692052251192431620397205070983414522374742178332024171692716353570367793400603612611952972707723236284507078548447037807396381791552067671555524737360780748754000760504432693979417314192823981916283183482123016358005956501598876719747322852067405549170028011153765425008354114069193706474077043054792694325466584682576148389968430367765109555275860360491890799844007548028984000843713297035984930659510085797939658099420237582733031571503826663327349543300991242058126502160267919710874136891253348914809731665910976617254623071129409675783141196072488837211197982570571420926524940525305215811128293809667479620220897804925898018581945669063512995685487290243155238907107207780516734050366651695227507787396217640632981499735477455554638423434351597988654500491451520603569438680340268817033853507617851570680136577784784338206598761638457994052715978495218879604692132285171907943549257474295402377341741455085335265358480960710690077560722934397882642514359257726531882303733256883793743790731329989266899180223001925409971481105648563413209210835204062897947557822354917508289454830184987796582472009339053437751757204218130212227029248157601307534755173651778317606876203109248603452115440325937366986885384650128521900275318795749833451249052635108614358923583394057541184441611920100240161043329641236652996862631235434841982737406289962139303957981749072046575588617479471578086384723490932628838893377007053206045733071434402412033674799981804332358319878260695394791429749256167310929732222015475283667426251173269035155424953176095911823547091329485185238372655099723659335353856237364503111859464723826744876102245749424519314910456679198317544851948747559956961022523706265359504596946016526478128694390789060048317682323783142598253322548789372596333957550842467168825966236346731936810255369112613480212517674682542690719501788917913423540844499999618388728114832973915299915632112065437187305682879034981781500151754392713545515674500891112100900436045719839702188798957190578306888885787525380209516716173994387921935156928776154048795158537441503137648721329464886799576093903769234259054963554807218914234600337932402806784234572771748772821603529456435393103253727021878957591837357516697156823293519383008489767268543831917068506782210917706011592383697512687828345668489734366848591976449435228855960194364483656337324926419882425258671452019179501148115636502390797954067671320990691244874259325684862866753382521250599919684425692911701032859475869922367369528026170689037087882853045935043263798269311303862095998716735351378513532800972982679817340648646360745397275078018111707457376836661321182691094111216713138869621223532175077381966510915145622883757510921261439803513975963284298735485008512195853653013340049691547030392518822006691840640684563977060832782775120840303595223798280647352610960692912815736873381882422997732386556433588377177471313161521546711683232814725940226798031065382673511883842462191178057675777317129570108361395996106100534919563427596282073218408270390032435005878498018655851076213223472899218560323508014939949929943057383999369217364271604017114551735359091327338634475021844428736272476225029364343901519239187069659757641825783454745276979321150625248943139767387404675612424270539109905540081321958541637947825830578166159786905981664967313355534863341487922595245713858792843450916473725751192695245246712300330389907563260192872500048141914462488645026977189359850743114857832244124976340336012750437233315930488833753186338144171059749061726838011363134045218911038406735055994678821242947718071260841650229591515851103640882103228320776117334513563963187468355207327340632617713489584952213996942536308585879333442063414900281000658273536470232954465159894025664424979604072601598545850328870646606968314681831555496753816294741823345636713805362112734236552923163378874053695714428374659936521671977040610415675372257071977774913011494108784185674479150501663320668319885975040091442771914199013282545262334036792230580983397956370098682370807336942690846455364201573529786557531300728481121594590591737537708468831248027229327035041877613293512560444258565531559449310083729787217608893355560900574073483064631322814416497452561731762056196320833824299553619123112530519124681764409552895988966196081951401059156379517500386017781180917435502452451262393026468179823610693636066023923719337542804703075356850652056865693935335149749378448489301799823818448211929088920158743442106890212811313205438837706031900801405574314795764829825691861989871821448677628603547849430496003976224132126671179179305767537882047008225759745756920251314135996435013234661503893950944976589611983008831357318817860289541229248839670496438028479375140974211123886613676324804830873845575988764236803128050700038412884246058840735924146578223491625599592047238606658879615987741370392036662231905588156249170467904697547265886923863370181609995554095621760529577219803201446074129237539249585476241068195138194904839482826318455828399125992431206223468934029701304059034918223783609059295810373531886904766451034177083427687929480059695766928160340611468672736912804390852237160830173461747648648199959239686417990725393796484057773422306817379134239260518090575854711212102757644990089748375189502559204486978476531102799613122251279086450090102318288410174903591147864906544718619029500253651451212071259086376781193483388327745750698270136099251213417949199181662139930818226239260315532477909714997173913164784419428769515370482604798176290701372972295772819068763983250074304883299955170848101748370860709006914953513518806036720935396091376247328029022424928238290651281935551108463823710053367209918002241225252115416241288596333640550774283516586142062452116900242760208895744162967279708437708158826732653928799080851978643293266011945791179135407340074142691670896683172749746143872145462378408297616541222424380761226582467191749597851976753298920272690834829249777733269282767295329244290135212544888589533944667022922511972875682373278144503387602638012101760311991442288807981381311169285542582315913832277089430430750928275672572797360352529477629260353988692068121384289705140788921022154089600705711115832073329511869585530748286410944988430343060136607265751617430438539072463485008385703657422596189160741574357395454694914388178299185704891640613578476653699815780498660133341164682359260411662979149682654883988958618483057096997855416727038162577101560028692615343551418674696194239752416887498831016773424254791924041019590619819808975120955369063331150573627481048790883645311004804347420856250234526684318165214948544896419821259787437227490107233742779909619890487744832620748003140005188096657735747839631558872337044079413247990147136082388687467478741340279452528464757595885431534223271575918171341490921932066751140472727920335508568420851370262569383641689585115781721559179742179636092443642288863248164586572628908098840051655521279525778893757884661115135453936569360675416140610181054975588633936495452447995341693174222627801622280822470318271952918441313252038364187266517863771166958706584726175118441775384277043585693912846309924176944398551822045751310221455987161059219776597884106836962137907163879870630267400503682710913025335986965555665265066833759106052676957254079462204307401762770120786483311293578710827803203314560581211323602542739037884518384207876959811503485212436694912531058732692890966702161013833075783981564151292182924615963701351681240206200473686045141694879486384958966727187474117737506159259991900052889965080623842233689474156139955656068389666321318451417089627971195490774831110735225412703507164792052268585430366357838364458290209977395845756546405199789086228530250301340712263890881553455874819348468376073710737757312409603984853100378355775723323010639369274373841903739935382950407914803075045756151232639848043126796125876697686867880187213267563721265671501682315197247614702468897509301212964623350205675995114363387051207616851363624196916438181080050554479142153783496593798537726123076691606825304150955722640987835756966293906646308898709687938431689744389997335520344408077847058903036860063334296237380286452476319878578792943225066540427996397691784943698486693367743580919826694463953640755092319946436072941807596128304188718862566938213337781667607694168225148503366253500778519118243391739777845569208905881475004816141087784116126611470629202575761571061675395696298693034068989466378616312780995596634726217802343061282365349743046336198195837226611870390074911372595807337805847476613635003772224716427513068785698606174812444680199027793223141344712137582964120433916343082806922233895509063735547641261009817282678623811461941886618940350262621890598462953845653073039942259049939224592572007962289322410582513956725727465370611272285424997047761796996189008056109292862593145180337903325981707345943699429234256152127492070183472501162346052177074485044650846038659636495046388171784454482994522311353779409845815784742690089533181050949132537859228566146509825856348308568643111511642533863113928472877747925256958693976068531428723722047783650180189574663996149695968416488296630714934725731201013854635282633646942435659554068084359949089010460100558990966480588412133192503436690479725526913147328164636266682857243194433788131095334347311346487262359647657845845442841004917446755896008301527082807379597078861239385885414623249435530985688038134411768902908170902079242333388775661949000759377767630096479333363789829278611284317697168366110874409935969798213262279712166939346202712473681553081107369083864888186419124998921628327588809475961599012285018797198046666450800970978829457633145385439331710785421190075267972612874157500044452442227503786293640982468656812745743010172809840271568397444603279189470275266200305405655754199861876164464159953302064656017149006077829931813510056965800620759982774347762199753481941277420123537840287633377082587080709084622948138277401238615858175869669627980019022367374392254162906413021613257846765599987608226936748932181683990362341023083740876363946149845740556661671474194911626897283918108349087554525164035614122231228810030549576777318749801519688870267558400084980500428155878738664262665908842039919376437907317866316028638773007858767275540210284742897626915479723167296525588783219995160436647505122885208477646022611184215868805971900886133749482468031444071583189224225452667853009973874819149048355327256140456063196367495175116059245238916411137947012113467122132491124045207438118566005958986478323632475582979545600027394267223072405302480578464395401094057229042712082850389204970327444102533849796172804239183143831042255665674638946978220221517072918197724293436192810752093196905013302191899028999271641221198629025724473895485652940681169980865393569501666526614229221508514239774272618061539518675480003102728140421550575207849018827846102249556053672548344180317792630956670423578778524045622035050233398331341466058465718034830914215269968742411777590175344902643584873278014248427062742641735386806156109040977517583170891079594547450540906488084803881601987504897870066835591376300387201778811816360482187793711381192535575215190710172036082218411464280428165358457240074964391004814229155067567655450940585651853559641093213868246437288094133710454348741495670561118237674905423437425464160590073956748696905018489036102422630024196346098410152277317559517394909455190188212026599936203108486576786766939460873948791772673828610508386917812307232877749503128573435074938316202645725564100091211622187454028239541943617514178186752249313843592140606114198771930007492665177302684113457371294004488707212056644793759089648065999738928009432869956471306212316819280043863472686681978691857150604984357678363403229803745792095699819511233225807636312348233343781741793970928288992581115862783960929488933522029702407458800033224123136827583474703683630301371984306063111966145468893110637097590252846394588652103214904292471523708418172482960905221034530073015337674611581339675701671440960205114036060397983610310117255587286685957687082199564858736424688280186279581519389866341176769611642657623090754092078609352480778660931766185085482054672810334539704299882877928496250110012692140309673933817184518134426674405301669399389212861675268427339426722490089286987740229693569987440269767002675308495641778550434049183126665253937812015238930269782228592791796868448707938577048107872717820588963100459753707438845344370143121467392483288491964422960080552350686326287973940881919170071096096566607561560227823250043687598590604911790916846977277397296256218386844060429930518706584467049473465415727768646346932049303723853284148007850566044684749295461322047204160417305935126306346524491479634446021787372501150736766008340957422763067916213170008911125426389712760626807575429097189560512056705589640491797999599852803957599876055267032627055472601767576260070972956370283528579261658524605050069553435658897776653987787595849160872141735979053328698812212274325204646871339585800335873266589361679504846130333965160101139814820907134644729420853426629622589347338245294702885879086513354535153594356342762508231056567787239458166572334287888320442080701175763521485633415499799881324318792979151810738905206223466452127163727119124388419444960982785766698531251098752433426835763661261095297797320205785196458962225036342381261635713176798018801054547033286417717661379495896352984349647192359265175299820784459290094411654050437823814168450348845097776208366503972264480289796724885320636819257242312097208185475974750972248871505498897382423407846341797341383576236462096890576688577369332171034777147119921061862143792962272760511033822454873897348640960628009162057455383775973215407314526725154041254449167011602456932786257619035058132939127385381864974636931355801135581171440106888398088301719245623527836818138747574286527291148308272536823337663634389414279640518443404380713076277331944285841811697024134879299958273608208996844461874136007715609419753727394301841910948719228037757793795871130617084706021654786464358359302266380144758554221829985094359939668551146868805894764051383022992661931639414315569960085843882165847347416245686288254630607816072748151877491663560730786495369698334260339805845325251084112750843825704152727509443597647459864124861057826507080860934628325753711046828577583996015934817804402074831300729466786465323104205359831771730480711285226891399267842836177314419843758466337615914592569086323630981496041361562328865023500461733916515862205593739888222870946075325726685892301097247307468845902360219230203051908981815175400120610411142783599970791552873551590250695111118611848055206175469372943421136596610015980744621642520552225847680596732025371472362444298589707888099039381886058514563350381004567504434890315535860997436676855914784648709956208231196326175559307002608634153524406237154200962994728722153031293558574096975882467617673011571464317131027038742063439085290437215352889325521493984497532527332601079811432299528527655539207277935713498797606081191911849225968587478506272670844941542711567207335703090731596595260059137232713740129820795495686156475213234925210949041717700488768099603287213815033351675143568642159561870367077428337238074153780927203805508282672193217880590306700857287009607391200798247690312513524660957176247844297092178866633453111686418038892579262940750416208378858610855243727127865477002625605747691548514234518756139747686379756353346025338995598411087766035556835608158015887232058159493343432445546369855085515705323408986047351737186734807659527143053436023700926043834701798290812137379354088451737774132099394453012279578300618253523947214535097276128496802451573231113911758517921448437066214854156572755578029969632202068373505911741710744582770374908386280839711765912880180196479061323333737381985992239352390124587293948978364963493546864002048704758217233046638346877781224952816827891312411093847265529988840782507667790249215487859375072144093961359437702977220004125984039221384743890517827665251857099440368603959457717206211129139275524744674923758980781851496561610974945698533490741093492211178671185437319878940987714671028914156417712255383424972270193944080628422626758918745171271984947178889247854634313398603830965568757673999902911069555365283749010405281172793699887363032154104079264335853435052192242662191957146693352971929659016138732035744250866299244132978007428530919527339304279644838647350848127942931870369876052373479040644187339721728636095304951137430786686921328603069177718174830073713334148128751289328138184122750076960743701891535568233136408589236522738146236682054724541531134122323261635487117646449820558427612614035614195244204630643175505881093162188411278601214613131790335742146580897272799310867979905218352943999558183377326381083065023880952092061391374529615514996328783930831771527105358151938209955446203709197630359725227971655561784083848551075497445597792999855883294621271325688835962242480292276238983914160392917048423902365754905753040058670585576724924302511966713932776015737495616396714370351837171753795587232442020391275856925329389392786137462779025856078517951265712240503184021813011175142562915035948393732353008434860982908869038238115574659340108663477841336276740473255793465640420080453316933094822212306863809568774928393878063793538156946710270513191533533955212632634639074723931180697711369246345177034496821154658933124598677001549525631404340803069018236699214107247897423729581601850584573306193572295943492571977888924342969800870987603886250755104681463478794846451619098220590552326105706676843946390618907817955120753248233236180514681177931624614988366874681389540276126040021014424185648734674665007473731139470659082383194441622486782697410990678820662030056193643277333628369389179466999242654859579512114614648269840091883518015517111458797111383707054888493734288228291578123686744389688992786552110445493998652704485122245961288856113811429036671159549001670053631136917087328288315695512488937603336871386184487165058010434405299457811285235695097748851477327756006632607916423475372599725921719948880352532002474584758146718569289354199475928872392469405038105708269830976679446211460574092923489701546179304154566396112304839221211875768738154181154359882414546584332340403209091264197589041712825031334566901685766250093152193233252381495057912476976004845378494871511565675625243373937174667124264577410284647385040321832726385924453889804134725212510731614806008320093221375078301983699986398965580013129796195025829757471027582894416667590130273691227898043505508601184987359571507361789961594431370362089142165021056784444684828082794384915607407396610906058098063359788302527570979216224127782372379338898507178374692044717402970230005550551251927320819304180479457515623791811631494225388201041743902034483107605096233579767066985957722682863464109246552532446693872843641667399469726284780010740149773611367908391400983865023287047252568900732474061871367893052932478002629311436970289662302123509447164498733177210232282821877558425669542395013839442774009206773816788898423516237835285891121062949455685141243280378009543977596813031199767805966837025185387472057214735620392068781090055002015100381323299630011565034480722889239640688643844476026678940334623490804354882008503593301057660315464855295534662205367206041213613850530580572655959730574862439725235224717959432930565346382627251650064371031269567725921284367850621513737875031198983988448489521084986829338983477606590240119450219192098331643144254084460008697489540253125872906408486833994118557403547671363292567754557994413916509103085656219176701720559100028114669166661443037071296629671649628662518954144222210318827891121997900192213303847900305614520094025015911007332061587966004658890474649913392585099288564343369534841212177805844105264878157613629329443656891762664457809966528144777966182356876294219616496222465372226619699892756628697871523525708224238639948210868896869349037716901244450502828191661825920654893730756619751011311075893664902815630482566427512838771332006835184124976247072005544716808448587163950939172593267600861620117675360288265959310205320352653472518447639914310152728593438962290629639166676206245522465112408541220996246268133324678822172059965621403158508339181309373353353052703919358392453182413180238990458857219682780996153602086168928411256761819213845776401067319826028326498654647523816869027683463552114820891649681822096016014972098885871345376133293780287392617450836446446895277408881681165107688176148386155581217290205177527270264287003911628326311623040605803533130547361480723611295452329292947900967069373575185969941060288335105907636465902021050868136743073158847005675211597985548053279238329994329524798648498091394152331104835248001191166456871614567563507490641381784519227756809287588277665442779592893138349679445488171511651441443157261317453760182073958308367958960682584777965458938290026526592409851218622639000575111219751941136990145064975967562234392388879335226485364478600789386601648720152654798113635844723220652142731081343396076451469310816119548377531224607421354787411888228214132001471096375666870406020578547966569502824729098483604274619844735965430937238141143292973296963566828351310405584235719093237920892705544974124013336969380308256579218879742313183179621827029402917029516080280137726556116768294549338344973263890971228519452738496805196912195673966209794520629916043810533307453545817693286210262776795388131756447589517150022741107911710567588497765012826246941168615342602954628309090866426249585784951610516337789057536901583655395337199111951921462046196346928194285131446410400425759028746807497932165871667168546849272687285962292522274141141287280825012748490875677298260527760613939885063626159861058211115853403508633227485016132386023991465472602783107692664494216619354828354983036550546289860096527587641681779386871734081581989917025732116225685749496789603848038339153401627451416015039788533200688945596335061321719491470215055508500444342623395557891600726243700083667437537820473262522698043686768531575218486562927494243780387274875096651753883670906512899950511654971474868885237474217119021992488324464692799337594611873200202156741805733666691902638043380568585581066989532591614020651888628365723191316412720887109967905172702252585221202432341629212641714569965442675957335920412018878557548738659508909490366693966208243173941049865890026141536673585225086511154084541433451841534732225122684600124454516183026395522053074368873542242449779254111901141618300545275248639524558905740807950658665169686605866604510092558326994287730350916792944125853533135963503910895663074382886535296363087878505293494834913628634892029614241651896201829517253371436453935073574713588750828810920357720968927557067492126261180846658814699651647188174041609871637669722731014006814096156637997652100860864217221276184962569042758249348902732489500284018888186116296209760441453053353679445451058263134548425479565996479875769593154862816102410556733935429388089790580659881074831976856081297018442308849686878045561599748890965089534734438348343776761987428763959555848615759923266031330444045664502514950690047199947000371865413320842192860839920608678165881179063983040135887731342851964778606805663585853502879928483898453085591577803736203903793274189087951387785167381824168001041635378898969479402077695232973104485713422075775597026482905553686657127901236734472621941123714239764689400111010604236574878082569611973976612706959786623017947953622457718866047619385927720026302546339348550125489594044870828943818337891663112099415808109025888733706917588847433171090179919695423920621291200523976018740503462878312540473407186514113551823742530053003121852536569293115235367500114008217825874640204318749271661066974950870746791761199127217197454590003218951362135316159179439907525666303644758307703181276473139411000930419359039892717836113346103814914741440322733838192784074313648178137750211986704392677060913210759076567288615815719571343613960783283069511197889381796265843721190136324306826755144479247343002946119649477596262028667023168260547591749182643171365661403011595097943197840307146648947273819016176769319684625297723095602404930151727209228388498595064520418143084023258720241541730555607718305372300410677970433577440020971428901876516880414811853935497570320680623607989423462755170844628369624960537156179666706422902306707444226449371571935505898511844815940111699702018680519408326366124409847120602946591285278428681186685830422329670740377883802957609592682086908796850917119652813072585021026164106061869692869506400511968032986295078019518741521562477133564173550507335169842358915014630775144745218444691380399150755097972251137688059853788067052465102162439889688527726445110625166484825391407955629361097989783838944000950036618470745039503251928959975435521850860031590292020295732609512674345121005140073095297315095231777441339806700907054130156096281876229537663989540456785535981689619385235950695892165101265003997298526756967831958943236428892141425049937961052605929554796047968339059735670175594397278804167025771287344862174557982537488632025355136953268642771239191899061100397008670767093189829356372991451744180488395894208017131769876237713054045528704685804727395393373336073993279568146875943258292989146791634900721314496736033254580676949860655986199629082881879703912428299736270682972359829200432497817046560707857694726584557397645841243165161518489968502620131818904748596960574295284512524121220694373482503898664204180527625911872955540085780768945523402157309019300572748056607013427416781148098172527644745271703420417531493395031611682635758508395296870203728756656685214208801184825349244898494992585619729695400731015226101817924616682442596023583507220742172503879997338632391020041909182180752230292870564500889293991982342611758029565278418977285987256428308903565976929986579782722052742114403304774182572654109574772251096289990222627802501643907642020531190433706391097695350928961843785468301384178253280058139652352062460001348486152075499202120370045359732473161154786025017408605698571484730448481543154056018321963013592109457846119141729712659490023159790821500961712867565743728726511264352921330777635635631309955442253712208294804410555586804234547350208344919181596353826018640917911702803528208366562495988744783984499368214737292572068142596504432914862274080666965716200052312122762268966574954657079217301420797796064081731091288061571112203015345756962538197274023874019545474188789268137552626005367287261428562118253100711459874542660583167029459228140725506969554029812994886976512705061232795172468716365362314770801516306301923865372546110956716572920914168241070067278208258461090591331959643456168635548952536778761773790892120600027046597606557636731738459443829793051696023005935322292090637066638598170788200432649373604688362307477795999828275209411443663291009993334111311218976888932465370120426637894251079053458075315669605228638296017690479309489173956808210500638313375311489879781864886733110959325660231930671937160329983563284739857046985207577658550866370890382697215635494287891331734769711690047588235974011016785868152059858132161437923431293987653640713766134144506481958582955604319081419322910910048433195218526042372882208448483409547196561780721691538979745239185366654431440748297809451894471821031276166511238957020195363236741672038861089271896170358597807506010383872013833355497845337973975108732973552063667568398304331588155113371566145866018082793118522764922140084059895779607384618291029893516702821207779119162762162175154427860763628838863212484813067643044266810375387312016218129228797825898814686604649587754730732449658713880294536767308023228062773377812220737918692705047046987737845386046762217581345809097611191011417791909636029494706254951436426851786610586674767079702985786739473601300052183412103725013487930357475834513434108945704901436388245094427951179024345908807382148120969375271417380771603523544183112578113723815502689318932331284820963926858224089516930472287162171287637875634674932769248197711514646100235603980234508882223474456419878914013246676956868372491396027196999373476669590860224605720241767532816053095296038360576338020125413866137947335347462990582676931987646168402405534961285696595460983775364861933783975346643223023517376008291373195822582314394616920275548888042340551163966644722135000379296918141651951821990522396863062837423033592348929234730779293427894625313487155969521353979915176948433345325841521454398692828860863718083723744134990913129500045839216034979818015453425386602059530855538877264748646773241519412511767740459851113681852549252097041741760969236374670977035980319795251132928109654378884471683917581387145576013820897317242268118968918892468196606793673003414213017927961470447954479621158332074757962326578089597573329325915436813719894958274139635991188814579127749677537253894019928196497082447901052488040312810694906913511746145853665685223261440744867253701807720362593591927801608226761241736732343761026900345421520496415135550867580419052062226525378903850466374682819433185759391977296683611754390040845272180440498022078721975599421419431486826475973389471638727088532342796372184987440973544904896827602079246714508584282423331692739742727163706612512877780816537755192727140174747793098555099449672021306136340259531895588188429768703828636530699953944145530870652903251824881426445276246445170906833481105070247476086830057291462552999017172693073344007872978292062931211038659191933772769070149347375805633398002422747098285518508880572489011758634596075234583120594481544742834217901171070357936986799215171471322292040720669663007703735794104537653793151366875167361670977864036359030514237007089755718577318036959462283157433763553511993813334784265691855725436838827013996135167255528994720773173781723272136480762891249023571944058871311989899845034938455829872073489183874725772463459097340848834703214418306814131775879624928562348840950733650455514707396196324022100405755141427739935121476727297118719387845361764276327490843356598548826541828568085814262913121328119049408702804136046815894917410027525521906342723601773927764886945021097312262049874584560049745347520678817972906102789574338058160574014322620216779024708863257725170247376653190193145293338036723726622949049266142543910822367914629428655773365276941873772045582549450538555118506995771361673867408917253334031271090165859862821695074198108184380418557538231843825287669778628327055130033691786392810774635742048941668266041106980432917682879610724958452927728638872902670150161066265116647789932185741095116508415034283604869299141037346571710840985815557984525381050176412740431402891117080818847176124319475532890677130080002460201768444444644482593198072177589982024641186955607078303763192222572016441849437479533541385937048024038102327614541465288675858969830599903373825034219825833774357395662663384714467339263882330763380196343831436357867645947187115150464911380114220134159465162542794158076098058679121724038486298686664631349176110747148622347905449894944242852608394743190433792066134184128047446217553820543484010524569135792238614194156797205183243479892517289943449029631902043160861709419303623437067980525429390752372859515603743401498323054997607161019279328116729732167537923562889128180538026523561626913164088112958527221967649633897194909264045196924156239644323950223524912830715017519947091915271580167542676110662754469847808204131918315478425808194794820978883249789757035480601529595251586689005735145589263068299263540751139460423006614495936842576897301612316793258599070132481378261168444113863245513418818134743019182974852129988513064739073463575534485573841356255946629903991661208017208610925132542175808746519995745489189737493958802699658842459531141310865375965496357275343205758084261241214152181321283359756550900097242594379926868870197300733846418937161369260818157540267737905034199376339078969063437077168768338207487070247995352129036754443457763629347979465671250099469474650417517641077976655278823584020294040632767965231794800478544853894311805425468387336296955382545082914241789712037626793556612190500493865539377187179281651642926075786920704763699638700473937525920950637093351184838681804418578252914719987765713367105157866181755183760704206279598661908081509488277257221083504155937958915618166568972882342577801955759188513961019818688583484574240511681394476570533033563442336660354437096056895202617082932219449529375135798216088448078061138615389258814586404440199688198995171851236296254061698041511729609183214685116267921106321852427765950401555169163010373977847638880981659544625135696767492269325228910123364056108224845247683124777277526626061942837520604416033152296204910446248802042651907887814348613328787359069809577459609970844010974638012982226187128122098522098939427339114055410712431735971281204075157159737444393648176855871419851583342845266135647633624465017717567845283031223063350623612244371865969498495932373783808656416360462179185722610801824869191466925365093393173346825856128052052091300662720574752506374996515933389818855339589698005038843565121382307048162836205235133921048962618510083756173626017397020905023364706004060692717809082119993553740592510028591365632573924118965965508867323137601211239895007088500681722387498800365398709224338401630352888054611540221959346822812118667038234004814390587594734745341538789005929670158293628148200155200281383792957752445460988933761568039696842166917456018638134521453660064348281147963892327861732711618921163526919232739322580199766295928848716147639069893604758112890392522456656423025800934226095652059510613317283603368969255696351194070667200693574196657783421505735999047941636403382711631577322264700285141355829967064161900426262920886100069681393715183913635187041607705683112745461510935903289070176730192934707267576165341648526968034498812420814510190332093020637695135758712930504119883978105691258732942455964418466135699126388331920587938723939431414123702945729018989195905011047671939418362957014162971523169203926594204512222325235991261490512152969720186726395267413822547209785354020133494271308633025366213805743847054130547592175524330218351522579964291272083621739230327316124449794331927999077083753505021138056349186833005013772299187125567450624972600572189942762394593421113133423507768465179440057314167082048846761990274520732830899481595741773805053561379000421839418763412546349096222944826463333262372800947246055381004991422368126507271551059245798032992435730591821790776907258018490328177372664989579824696711052408658360635881450635216139925135941575714159298731703209564897238792101578534022388567107022995092934042846925067673893215212548489822660837373439107935526573243265101676550800983583619529730437714206658968098080401112179947635288853446524911058328056791411501277413269198711450158943706067732687303502686508900174309032773505582845258915380635446141593513536000074730341727588246841624530427072655229028621156154612636141400196821253168533727558596127494720684635566578415387724030582085823383892226346095383531652397578513786438207647859337945238143695964969204656676729506096929116058233237410857108644958538704093646027791193966351574688237915248840889598374311096214387248544560803185504440061116575535640116098833489692848352209991637061409418565052396389740938351831722874451528206000855309895323279619388958951272631192405691573007563338809771403611893041539130104669332925483529236323996093830853852960315436503896119511844553551711117708117523053575253843304365262384730552383961996969965511684141538118720017557615896659118535966495758924215397935179612356882683403851317195197509088952566570283874043737092032704312540029956373520261221856817124648877419411729343121556349696867776625406605697550161281594868614049366884795696319613551496802820899883321905999132000122401108463726253040814838185493316996834053754504065078211457637232611069166200199046569015103262036774809584069634018357587849708223769963459303413040229877585585810909493986231298195423211534643377201120177406551418935663520964688628060600771933282836108015663512243620961333288440733078219574732696015064533575923606032862806633624574765188803447845213154845460680893750589564505680097368868935884357818679863402090020223621785198901490895770780779713520711740633675824680539719204867229214840389431662193707489535442424360938052820304968413200573085881381869831900982591175979199540223693773116060280463221056496291149644356901853423260878161169214071464427987010264784765707535445555320103035080079481590318933670823297852516441143070755213746123006279572852837949765474078405233422578349680036089712902635970717841803710922473409010499560108569227817780735462985864893417647867429764410823169499749778131889428521436128910324300971996131020018222177456315226290731783803752809539045767696353385047814022252903955181219209564915255818018564840365459455735507030097298704054112066867456853477430361085397848569186065793262560100390000396562178922666729093850803292988526115440572725298651956891166521778953321351133662232043989200268704659719973830082384429749372760449052602961133429160951000958194346972320273993544880681823269162292110805572987121349787118264556366037322378470222007131354682607040706744639895526156913803191751098407714087242077919049054259671872627045799959296380710785074231837987831936094165699264632698608320240918738047319029261672625193171244728246050049921396255814210773826527805528266493777683047226544207804276748538614232018899409822152835830483516771190163086016676841757141214595522889287393222811389104638092662235846745433006047471190120082287664128669718172481548421069208492878951854958084175685503671052788847338467678624831932701767341609433492158433270552833696817554383928907683325919736907518764803070182300150699443358620693375805908611699083248784291019012693077527316771231285670005835236830071493370436054482310995289351558942712433591348181054928256649479360047832786692303828577777398990868944091257599098558972027536555185763826303415904457839557388764877712850538117034715043034656558929694123946976057831378583400522219929803467248560016707356034285621477461361506270926415667511325012556904544677099282010726690822767392894667848010492826888091391566787026578741299112285117259087911267494918385873461683692043985397908213533871632629710704079437263652337263216930744563482226751814117411727506929646141301219676262045853622605665690446498704317361080864159497420567776063387014891850319185574358567932873423928457841027134305838917757011153466812846095594450105886281747724296326433096046789751649886618506890191450164237589544966704402828911286280553240915811530643795429509263315523345296370041498199850206157004997718388180299318686638102818193931188916822835109343842330835118934538740658144130208304203170673747026897974046578688140765920594850333077748923961275346237219575175678963964625768436395245307679125074320437693372381285821319813039314102355451103519103657173489945483189625414175685809110506395796365094919882085688826293089004055386507064241712190899015497404255854531260666297787583547897460132965893429652614897553608807835643191136997802034287041128777889860520148280067360684736880321152427125040498152327553027908363423524467346847613486203751967228223548390790430089825450529245922035533530199443319221841324062450205056140936007103554622275618099949236097922426452453560743046551208479481765796082653160677990585024698144181883023555764497558350875056414039472756076134492282763424514277005024594621397880399031112803740037690925424268939637940424854570724596158757610068024184835247722256419170045319224195973118923113410158685414511079387633722173502445592478696941211935717549169152039778876454780299325744464918979678556463208687406335390236216580668290832107982021354965352069727042989162818586176817055025911790649067238234165676586565284118247947177892849071524319913765082403783109319387073788570756762766224887052101543292978416843241731275355873200296460338870506729516515124134382986297496871906025015649398988863368440949757780658901762066204424995195037396143455776384359219461519380002397442419900791368512217518193112734832405736475050058840163118857760717613044122351721746283229494263885756621577849310054090274289549628675153140181238677507646132611682163450203184870885047753449334151642268485183933809223634101061332348980552187327637253523062532217448431214597529344769960709548974853086371110694318029820698257020070543257252192656419295880064760199093194235442013926689637311561625906458245866508736284208009338540797767117600557299522446873749028967924694811030490526002161785663177576424321397806442654015880063220096275186890517419298466363987452177632475112255102481892238387145474455654035401022945755092255857039344794965428012604923996742683861439383036032529218798085777148992907259778673019704655579823489918880047920882861256045384351739056599289364656847352355773435021611119374273685557696254635511911774585269491529095583079687490957810112962008897069139112266368622619034619269369189443760643668001910439403245678394673053414211395608867955112655511400176696683288022028199433928916824376682262559382213543828892402606844931113779126283125401805862910069015901231787104948030124375601541458640823766157100669346946126236354596154312833739455728623628162272456780226686492911987509578418348478892135059621635356963326203501553293607116410676877820103586051903414862330112995430896881720678365675072345833852379002211859585738016378154727327608914297619252522258466410330304526195569561026750211310955425448967366973358150311954243409800432085248964041025310697441964190649496238336391911004703127043390806944629885421331955246786632799282341433325375960945545875132192841802292920166871912279659156892908877093347560107383221145165291985024287436348094207379570756066244301023106864476448580837831188863314051100561990695243887720743739436569209231337713320068771012301364675068030468804208777895272781769339312335237514289743174994927589124700656777897342359112267435437093944669314939603489458772463616348301138423511766776315445958247412430357475784097166777935682918684364591054854334506880479830688343543411753933825409530713184667139865849757945826943717084604134808428075286495322253605738379981001888269402961014050549723579647827672342954105210479456320251950741795656601244273132317867360107510524693287970598346471883630413723338042227092615665206095768437538684024236646649802873289837330506820891431738301281452674731497668797117249426460681106099741698146324775334393904019068800138137505848330785307085188052584897193111476976234993972213720518360238451242012553312476567221331773092844331960716052660127919910732558347468767503180101285530810852582530551295025918333787363632611864932069601904481228536772807992610371913666944470550056659682411918028633978234441187237991707166549189747327859596639614876034401328144533234177537629268839933806316948040675505362502471653778894363745847976319136578438824988269266286002265830090776500683730288376526716537472589479054822845300875012759064281411733800636594915271746485973705026506059030451272172979975736192321373748993105469846327224666584305547426869592855513889706163383666971616604452067658506384572145004453017001627782358472383068095066515336091686957752744139453786617314808371625712898279525232600987734926895375598150991462953656469331119558167843390604884355040549854860182332419656273794825164693541032703680588086134754075753962050181844834661642813547432430860132379265863393985245235071977995672994878159763067222654943085154792828822331477409047582966404898074552974981734796918400343104173322406085083394537403677204543524377571850982927386266726462763823253323114400400103728601911746599218122010207730822478462113559833794209975765369540432773688371142059425069491562366057080120101585870569510479818363809916901795558812359981041463763269730938595265107735939590980658622997076343793234268807225202670549728958549047367384864255932822175588182245494943774223333738451539508147211286173106496401909802656071445937284495695125531823505992707137544485320043085357524833625545471844149580468604139992175188036277362441910975308802337954320421321035486558830589848649916139743403756759353788120063027622770930978002500567156443889813158741610834547565244483059273097649079991350456512359559389289299046829556724340178057877507958888011496684631264084665269993172858585918599117198005891869676018216113527325143612390556575665378792710399795719026277039786364396523130156430589808199634305183565928741788268909611601345119067724465428346366826922915747998174121159199142015612753712352859693327490393090357205561728526866576025386017693196656372324563130287042660122404615258167622015919931041119533718104095724305399185719052550611174326331171784987270389932177709871355338449630341661371347331815790834433268123467211964730075098475869517816314497132054513413734423304315869962032387479483087748134121274904735918682555607003324815589862174445539580314657825459575157896398351741995158715362250400411915005921967496326062112658957212155104605822385573890920721626467584812733033638511273760866522713814497970551789900449491837041584180540155140795791658681999920434886696052356698864421215976394889643235515821551667045511644493016084661006159938470937716187613232345003729974008315147914612287091847502929783718326180101345104932473902144852722618706362234093506190186566198079827099547817530019959133030849615564893361975282018404226776748458617243804042857229914549906061038704784711163015756667246883485628484244407926166104011194524429080032170210725263473982227317536424313487101191266597526874457670370071239457737904944355601165940275046475706315876929505607821873762112744755356669413599061804189676724862077527416885714512128633108741940061083416591308112510869696840501029158846935029142534007916991170745739938571679458220502136336545296202225906562782007936657944345880132506609350681770917288029990442653086562787878534796926474850652766437006430920027234083798078421097857865973016918181444938436864500946578395940248648216189534892775140441554306800329439812918793069229589492140346280017759570619797281983888298520220286139349711694186039344228117767411051287763369120279602986806039566209335440160241917674925702488888179092298590596804791549769695773619230128006371510339951880268246560360627810487880993355523981185790305754022548967930698839986231156793157593377678132622570183934390832241508528057782085521733004232542225921896198402929532646841424683284730078248744030541641546222867762819442077880861367171240782061340565840435478684481796393815280976041898044485906352283547174304120352205048620503672078945059463493351699509905840954390707018584856198212399544807654397939033495406661090853472020590610536017494056217618568078127130151387382254557154227725512409304228353013509404861265567818995025847566231686898216877600488959138081923890485252993408800830397551631080614180097274701298217436151319269623491284503914356010919154130731274810778142912380436832329613125282426950805230037933025766744909979817738377704500636152464879142200450747872589550690312817437492455675845342896300923879228317485494146790837362044629052404675955020724189047544635903064900698172537268507346892476154754678519851016386681977632156583821595537670756670858553875805914286574552687020969097200883756957632470965725689595099432966922239001507362017466122069430957534369681064905830762587605136401780822111689582242336267679246644267216140880280625720705584970274024331699891624975021023880772347344712464524361454668576897340916649669863089481447931678743523561652420440019157518918747906643366475049716133640765727426738792589792747582665380098785810732988906905131740484479339899878736623273278833522326484686804397213084345980197550749799064351932429437773828612678470933498037414219347176057058496656492017656713803252652649703907990848340399874521462395602536792271142891406739795250614468705971975606727921635106690074185334033999572576796233477192272482095295806954915478826188666741675403119952254728862582525858927960845884358650974032448987017994039289087554329292105628149392606080425033413439287240812472185101580374923460826989946925026773957224153039166099953671817566776475570683603790889817015024690802359209971765517508393585367982301098559498324579644833934195439272899292355265316463552055003198589500750931074542764677357150969487040936518527991635735500085716188634477216311592361965843515883863492615876231147269874987677970628312357628891764662844294554287605350549231317825324365912872107492704930296309767617750566183345788325397720570669188994145865963921483082588996942257633380127335980325145942211010806161441590419328137481395281865726475791480549424691186719055363815569761682406010365029635656847665043623734888031631280252863291050467777234788061111034420155404956996571761219384038317573954522120078120441605097164614953414212587849248547539865553029662808073785637437955428509684099427651108443017975051309056219250310506707758671179879268573024439411348679437889638070073103192400737500542616358376602482904321246434302219798235637351208087948346016802502800622829512424136024791055407785732632107017498317043560865790250749678207519346641279374477117710955301414535269489128827347906729202063247611793167895159429444910216128209540880603929345529511181648275314612812183561442411248674735190395588953824877474937894843998298294611861547755578750781490982542415856754501251503375853634908011784927031194417802178857870745850253983860967197454474654256125635606250199389858988492422090794032964486598523512279460759322573577649507452098267644236027281382784080289823837881722050466738894197807017366954361223184313445109732934562539370162631714802603058403282453863782724649105753002244375816173179629783570288275132631266349618842091728772356455226960060097806882713011450228956492500885467340506861922494913113243883788230695546215592269232911333101139948195409000586785214531586658573791425814436236126315134211467073065877522838839396957209506163566027664056621888209942987396284979975386305713524869966082187037426401319569643679554053271068288437368332266277482453722174286289364046963529374839805454648700467799068645057151690340517553849807811509739700293675969311840395783105182140344123580685274825507501049569888087332583959377171030893992702286938124374461298511705241745141897542683789228719959981374757686879758546897941864841054175359957140719139250237639794202453897980383158025705904508643108929807952453019776790225744990099333701258931702501593765858382991269211483817959878938378799138020547282315131423491801744001886298346561261791175323813123912771180411323070059596277467582937359008386087152721639429125214964645854694742221261999948194313465050632947642501849640158032506381896292548822158145135992271575433073994028731845839501446458615073530202133387655923757238910318973796068589633861682378400883450561673195035223377388751141025311876862487230153795449104839312244757506313819235312104009943479395110584584458995208785308796437184599691184025848684279722567003068188561274075650034337788163927590963969271720806459588610986568459939619947154328005791930232533109125412289847732428181572631073873618456576570679387609577793602611231387529274633377184607846083552167137314635671315123616561038720155120429443294128104180192763620415556950728157316054187279787268105773952983865296982951940578149900927508517694654467250231261425866566619532625092406445653266549599338707655008224698568156219336271476071155954079283526607880932898760616577503054490886661376429665077929460200952506699828760737999642720483675635878813420739628901415772226795094100606078154216899302691121254701156482052523127677601700138088123676485635602152616603254360806035593617120678367545647172180034845841665532417147419740940553998288833084801161638017556105240256622156139881040390543899626925350090258727688725310959261130185104626767320807218201004712157713292965592747342483322315449972380037690865722401912986211452719542858707741856242416262690907841143264115175289559161942990223453485856788349343602580935787372499899239792870616777577167421977780368202584613518909555069224764972495766018636800238976312585434467348274199955264837024407163540753828711085624895072131785098403454019063303096897454510093979797757435180840690108472761454247072001230949543962031823627711444674359980954831949542941248562653558410270301641241616902409298269192603564882708466703500764097366184647531251707210462117210414776500661840206175216458323078827216188125528246457685511473396342275599982533965313941277580439345756936071712791424991937278932554887046796205257540282450511708492083222622614880724141449381726290107096433547171286818336898295825839176643846287031781928198679939048582109200538946102739324499847742979280631368518380481710301170520488177250599663536422611626471100510285268858357772456295932795165864121690966141010443986588825707560010497651402838216571490380991643519979405614256488911128009065731513335842860539349404343364226351986898920962559707090517014911434331314538596596854984747445730168304757850244914669019290112280104219292094281673451020252499653033446086209850702762645522491490527091177163279305907819108883000433405446581028111774160708331457808319378490597923369689003452553608023104682810499459912214213996921045433786679362147748878209905930851756407184977209684110215419955689340336096687227344823945362952169172393308698725820454885866053755551860424623089721379809813307580798390495154911210543028036273883307122434911022948823272854453448286134214806213557585498648085106466858053228748971099558101932324395191886387851020364880560623325369753537668469715300972226043026173582087277965357549186109675624459083196236553700091349289955145647723078012212600639900660591006476000112460643575241678890566383228962944400790507246222837845931144936685681322519162060453217851564975979371178371092639626119523102808323238159903318768084045324676270697892716661529127713493751600266582903234601482409344126507263387619255041937383395956520884679416563872059497408779128127804001096661391651600116112758972556260929050740658296560548749796744286761083143550072882062336849714648784097710668245865692016582478402642508818448148388971574943922133241336502118778178446307519291777465046909350698217307455132519799573819183717047754039669861050660446888316251529268322873035942022999949772485845074263216282145688404946920337392503723125593557209382354583521256521013935874328506342910866275055415970707388550831812063026130666644516471773115073091156893071551685717800511943778142330385244465703380495843544269644322587081323052498494404543324851613857925851532570831241355970732111996589338298262001058812415525747653149241167867180533309440068460202975199888201841240564379634480412191917963470413918433044102315149857042932957278959372026322660702288641947067160754057453568954777685088157482363556643317033676504753600893846811220765766115677416782286756584443009665293651225616548016267453335176752093883124280740690242580868403667834834026718149215735458527230080556012518693785714182030945268360237462302231369843756283829612726286983097106131149967755671413438677542647547184300871401624282742926531940375800977713610967884998085621105220587713766192012417462711642911859355213529192461179838000986541124508237019900269571217825064297714870737383437891631767010149984807671906047877226867045318425073410624265894615146770557866628549992816640216341724762991642388575962354435428305125494353186358817766981109983263649376012432809781035003347479950558927808466118701197807478684188237017061149657797661360180950799498354804986175286453499686413707344723926512249821994815554900197861217066948187312072103319879817355515725868512642034345199757652474574279936227646917630249955116741549778114498948653927802452653171971331203577114606754817987317389260943740200173369726348989203835855860048247334707126426226055469528931230194096070835744512828725689994781759996781395237794841181055105630880991837979848989604840610512771366762621029506582567986719708757582930097546211698843858303150839066443759672264627755364489605265189229592138907381766820651651023344107819457861914816422136147802282523434452679101111160692745166270790259831430040294174254277967217420220078936677585026531270373536709887457472353047101332078075694697539249536976080200032588883328101903519458995252859219449110796674082225289971099580865357197350404683783595199543039203480884163665189982193468453515595570957233748280658080527321616538751265887185842653123218607009198295227342000800142400861663370415929142026198049128987572026788662653639711789163413468307424193247654019369595464124706012467137575161966126414890671477488606477677895967573462518247721840540331423256118997511025658647656999375264400533739718896564316099397846012489243913337761495108197316615044096323786786155784027452598469137498972874234042235981735286699684181865259836593443951232822805404821286612191749042595370491111445562855616189262801354428621346452131049783801059124738950394678595953965236500072220390879066893146804335025173762416713304300731294513494151174185886779507062217796927718939075710174186844245666814206522087401588818822640660858784801673823982914349350550208771384469996042570038508066093585340075247540794808416474209989952968807079656883209587025629149202520077122019789218021897259874507052691499768945135412019994210763392985106270564811970057019087145091676682320007854309033349441176463899732342921281758806667405012265595583864834105785156882312976859622683130460364608407940829341162871406892120086038896551570629786833561217105001502224393056749524882808300832696759624484844118719928790270084174360900110694162569752690604859234628429484657308546790682610168664200489283968603836765408152311172137993109171264499914488921473493338620307902237057867120021923219924331320094414801378688374107725523359874355852397972364748529029612592125453318263007243784338747001586509610399773962666542210641180826341844337307099731576885303176284946195752940630381396277186872536177629674737061338317864830952845030666089247810836959376892521157198584491295862209710664606740661788683939913679362377699203179277184396254055084093735472061607477692480557474652812967818638149877750763001422429619737870608345075111113204156404426022281641669292950242973782976952940614268155959053290651091222987027618836267691742305370251212189356121279250931410045751054154233097839636952244068414869688360219650508721350964148998101688025908883416676884933139112402971157887616212797761833333313476148615938572785073499071968088029441993751408746441921329798098865807408159267406617297103396859262021575671359189888861095458882439893944784747874643973818777059311812364120215880067971557008586083511051360460101636337012891683378838047053150071846695966420589185799220860355897296134713073124873086588112712961099236005933030243768317621554654955636218227561036261971016463688228262917788074001524975500277304451709626737703534895900306229926500783859814239180738484301871756820623221873485498377020989039498270568976784492714424126950025843731979389958996094897651236947883063626677537032114559023026930837627167412674351561783379013419725127574384196445644978425232902933549120653737880084384317907490897547912716183055032483294233768347473003807634510437313498534750138148701338346263763594757821296324297186592975052964402833571649582936030542746921115159121896690571715696857348980536113987247355269430200013230289074858107240151813453445507987404427244739463652866869727758351656431639119836464554679824132830414061873753576729682535415242214265970377055683431701697627780405003717867766368878366009096747301213088722534402463378806183049992468919571803244507959543257258292352232089426947414614404984577538709812535093082396357646262637947364375816289404352465768513220519645890537816972398286399942307537386539903166328972865109951880854888944023672465822391383311909271539272918761728071308976769703174425267068684041708746571016013696820806845651727766430887373063404046434542797827778742964535406055062439968142871439442155824007538448842382433740550411101865914076617071787830531478537604838410113523670101057200645660945093486115994598902758497915712016287153041511755025117447141648278330864800146395254444859823670299640137887025872484309167159739500482920651729555085820267146338645793605936769502828033432965200149534641548358373324985812910207486797308001948946040709132245973168582994756850478658731840790894228584569086392988831799605575740685383353263641053154754758016676364105829939517050289793047044222588556269332755719901893274905145629520144241934289042670574736976292888205377811638152536115675655333683914670331242620034045864762806012753536771651484938536075482585956730174038380645188475782123165900836041415380694026357086032705386369340259465118566007810797369054460413765119646917110303349406610845631636509084232296257476027191678002530101638350510540706496187729703708613937643007246250479579077646546051374761262029727384880999490348891915704539845745042745490098231482796365945296988235904900415335426150891085567937042577361942169748119649259041335507061453941582937879029213335469319269644712470215910356278521840886992776646714420758276899120520769882905522092473209421520303050186327427768844856330966296095054592277468255023490851741194514835619001701608023866328513111133533266093139078398763036960571642385006732774807739671297635211196317427617412056536965503235725673634884355326284906375719757488267598173257365803834315194930515128705914193907836702862831910014942248703658352526374002889156577780707454122421997897373564051345415015715585151177726718961276621728737882518212952184220010107000825039470569740906822443014010713049797512063304861374825697254511642171788730524365254079406805618196407655662002107374320918054685820070069661156235510718231672865878702543122355433557891757019344543504866709743828982742883103460743234278150674479169167651232157284408311556656507858074577749093396083225599887589084041658730497768799630678047221061637658166338826698445521517839588339265670132373965864027200843804459926744316354353785178326250926431146963458463933647143879211711179488990250350049539803488508671007097250570177814584124948337391951219133221315308654599369619040005819760111466143111502575439488575309983098315729498686552753277091602183113236602424833638226551194779885797061814873240322779276391674823352616041791585861676471967810310525752635114892124539635552960953724752459812698492852857734166962750124326900671938655020281898856149963745646829826504308543568469169029947042784525344285461932335306057268563624277845152549371986910467745200122655337064424739580998366192194889646867679609453841565043489376519785286998275084302795774508836303125616426988579062239535190206515196091940396008036892722940066813321329376792964109350589526360382544493331392406202232317449942885041878424861994345422622517163515661447728122382654461038413486266991634714158455447838078012637427012979079835825782194048037286771278391845946156990582680553500986297375572439065758342013201692261736314336012008012976196035161851093775611205506547814797045911651742894505406210455751458529995926940048395310543184552203714959843860008800567552720228067906509616115084276723604681282831548268587199643052326356538824296455210020887364507843969382586284276949575925806418355823742279061475888129781264806804930341152868591977158479934683514279732400430099520268610328904998204991354229983870147688228472184623136095773199078942949032390017392433448882751156494122242166570222406509131226546427105552999489730509193647108415567467951700313820836760589573808203854819881784499538729754891607445478176704971696854558864379425290886175327228290529325084457967965528231212647593263705068271322009303800757938758565612768702363169987245234458086406438889221595125069941077534046605292506000306759071181456220945551019030733372913217083426605725952350593794290930241713261749676513177082580483234026876559622599386978368571176197946778936669482894614080812489690649758737279006551023282662623295898014074176956628448153071881965588325166054147466113858548994272934881124954450414000805207017943810871560394349347639849881369500974928058622210558887020714431535382804511095102760252753002739721098114227053988372398726231760225301536580675019195202952745436887947246623572084680153688483654613634626181864010470985701043066392214287519927912422369809988367352849822365212017926653277577710461444962098651998121638237962068926241865623452947066978837848872105506050587147181578962354401485577725971352629485329110649061602416781626463795358302972366336298508041704793529246085506175233233826839070359217534957759923078736502416675259752003749178461204603585704710612207849606050300996146655039209104464674852862589272569966367810145864104362710083342002576525787433940670683465196073261000198925422918048737963237157963981811140293213538393783890231386279039370247634908937498237850315653318618909479257814508024401817752670504318020538265511705550696280785379613723243522182890706487020284339275059736286644390635358302122669212232907612519822244241415284369848529885214613481320122660502892742527961524220287936992879233474699112980874208299529376401470141544439757444815997014303827660463392317388668841992606209414581386887348392807825150915904477360381653798860641048528602356151618923590840474285544593367128626055231217147706361693447402128552477234011315876763520747111797627180866088508188047178954899332903724078800499486033514516285341695182881894285906609121649025831617229913154530948866454618493795392487056167039952624070133660429827238128119365641293614527683036046951393710815761109711315078783039769385342284167803456798316456898272370681570370184518628089684106127286569780680603022898010641983186369496232375877697197709260685906343117567809328026960573470666514114696473406673390920217557073704318124222597643135185645885057267284415581770405804026132001552073875113604474824776981962340727798577345309862054568399418369134825607565918861827175763975552227498134480014232319999578175114178530170756284769029484876251798426869315240324378865190582816342086623589715908162068207725924684904033489096400911062171995373906804976692984176273063343148364171627863125188208260771668318824486298279601273375282431490739351023545519964113101808390928653672899618751621415480110542655383065143598450054609590053801860720981766007891915319558739893335491711719937795960612214556911261427548337468940527762661281223397854651042331888028104780194007728002988590660947016101278658812770362852157209493775844236530575409079216424664639439988943050224855099225583466541576887921804935038690544632935623622253603724786828646139448101184117429527378823822026505812577156575470254232787807413846483809978999655988846823539676818321093033560284356510548677720506642551069935130543202944217196385305001729630191545458118766248848366038513207743032157346213658006662083974336301963726366639416570690247417846129834910441076613833717026489233849444881918587410699258095408586265132444539110557318043322686100139053010913123133168394522353574674613811570724659627413737168300997632876855128415923105647081678393909373234822485915982035403756106653153762559355351151214148501689570537649167108352800502881347690653499792916624536468091549346838290407240818194939156901285538367306970803155865884338096738335201088625615707287065805506470425569978065599315746025884517644042257013358020239577451982409071221299038984463627949773767792964399560598870767320832298509904291790330234979922705478735199587296100229977095026463669423721005692545349105342925310988917312752579864764959938614395324304236159169874053716444270077548647761460534567763484964918932326345795893586788319474093171068102004956159728813094611122806351883772139120758392471459308621989742186187051603817035558073526017740412430031288780718374138492818961571895215269363430178620940357472173100905842782041710436389092796209015979777679552937110956920008676544201755952127260014815673595573923073468313786860813659258051989486154917697807260394184149621749670485887753686838424384575823039190631436965992029610164561064287484349864410669993194811166403393561198114862497827650944605618254253381672252884066238506101001685126701884651814811176995014767471963183184182602960844899293061526674383130289235078349374273882313244311897697691875860740178739076129653553923427007104088899872548503076548250939481494528555638413501503649235610851449170576733403542130295349549784904382636861793771807980293409707117808534885475643818604591003209509720690241558234646110265210371539439536637775457866192921819524417423698913201346140366610063127820539249082279021580980847534545361760648256612904384428177898416674192371985944182292623902157994729408130802149540444084761354271263334689985540081735768292361734290808492955360045603906697903376313536595495145469385947803889041439609640681370706532917817673849328144907620720650596594820975311775356786368974897869713995742842195444252800561457473966362120888526616971546247514574128742847275697228251519009428837458722414859715358926298694063439516119371934364258669283166593330414850729712911481678065658667992369519070976582130230497811916394822424674612257040906815837656506009499173931205648959230674789161789900603341530844170194836754422176307771389197475970042170784622245521908167508541452875637094847442398836968469635110209980763301880463947246821482273403500829010811364324394524199712116672557983288357889621978839621554148749063124291768900393910795832504047086921240106617882814880332502095403253660103203371948733829511761042123192117769591458987227853726432953475893470706075199711374585357072702475129751006499594454959689372099809408432533063363025267482960687508502142091282774708185817688283832845427117041108557450945123261367919388942129181089527624332337371954512971802471797261010031137034497824940803843065484171301801574200746844718651630326387868595827355205321578793539020281961071420935089853032993464371090526177404709865533228833566412446435920724333004349843558700793117274462642407066445974681987836048249931887780993988253743423808865467865849705229815904168220672683430214077627029710120195793454418155644438117943950132874275785517887907204559724812289223308396103202264099741670105872296607205274264772236192449831258015962535827647301217272561303918888121890008462918175996916723929988444825141974542505804994825634849096576935792035817598359261070732401379024331666960430472578234861167612012430263864676702459901652841754711230826338928614416769251485451360508885502727345313320142270730598840984518830891073562230401289197874855436409943852746929629409664225741899617768029854181643863781891478532790700763062655024174381518407532914073810660999426817566717174275201672058653912422427305436564256438616745202877222197439116241988426465972988819221155559997857705378732883676792425060620226049963924694302088008105770852191816354760985917805414534077285951488500199539873362808558293004809494640440048805915960699474898800975881159437625430572602203847079584153565900620253941679748622796707870234805985198596205126328297897954495995126641947450306265881119675109019539437886613395370866672962727172432144098636736354510303466926023100996943134134468479821454744461986214324211159573315713099965328748892547332055620869181274722482086518458638402543314091637616338590995054090149968390764255311630021592772119924271700176568001549824781948670887264811507372483991770748138462192185814447600447227524759954622808204210361258205108066376136742977758394902160281187629458808279693122707155133441701630291812884291248059899062872802232852799860363621101457567588232950468866043383805965666619977641288979003148896793831111177349118003545134147820986953387893589110135501936729492140447725818327464581432218269234442509748141439918677174461267294889371791825246925675124452443297255237819277199859510886395131282555043388713885916033243516993464718284227832094003433681626754184659994058155661492702357269717567649583769230885979582291100104972759976932206887707035519938077838793555006461318153782949147632919150790476346291072423769901466405779009412698477928620603554620798091892742210729482211700430306006083177585227471814722577852838085917370537870568985503564733556967018902169253273676355287661378344108864848475654788443517652226648076203178970336959249226807336775357931726852348927990489400524905303654245810063986948542981792824696196334612746028498013706344740296832950909447537051009214938750854372245098891986369618848836581976347672487685380409055253094800107766926720302660743547174076670189935491379865557591176657313615989146866057491925066675267864714619942211183414529782915261803683649490535065033112351173804693798076842605785806630810436458571146883101051829579025247616382098455224097520839605757480867405667793656017886964665130426650719802423163802015070679720222202527280304905657450368300348684447566788176493451157589378909143655564410645557861363885823125905094502935653096895694357471297754862305130117955559230287654827366616464456137529077505191872743000874198463083152160339697044634741157261976310766672334929639430245017273045614186370680563383900557339260161267870500818991980191170007377976798393200530099300723763012438914977614833466066753040876688018276222504142160523892431848720754292749716289854786822944996694168673914128173844731932519212125990146997061535987011223863675139927288540772772276045112248890029506997513370460060121332730157716024040376685694585881288930779528168424106567874414316795965150954257687710674105570942513353997774557609318531621412789636462522552534669539956874582606746011332806984361289810491910531240217635543822076722064134860369617425429215630836581823256347183987096039091071296378233252973654890217162235950983131163445674807182942974869852771321916669083482407802119104484781245779154785793866180202634425734815721222474491998607017597110138416103940900037495121751637092853073078599460670829335001265183440821604677002470758847461234051948733834101517582703995043311909960035035621483070321203738727194761419671433753344963903145119777349205127499569500071764849297956127418828783568482532114072090987465723880602755071744260126274353212114421687789643105048886268798883344892877257023349917815783763773427966149479253776025835945033730429102423186627525050305632197398902060329854140585627135861816309854710064370649280385880970883193362826336903879219860961001227281895867227930756269063368099952378509833665098355836456618791422636677889027940601847436838153578021270290516871105253432825999834110808327666633056555935320399343637482706901317871257085714983273013919450248665039359267651236627742297027827656410168750065406089051497721819588395477008478767777632938713785787959145579115504262053704569490700690813559258641864880958779923334957432306363553355678650450122065016399871119650064893130773350767130113042667029589093950483747979037505113168469988092883536904744344094278635833292978694110058938567498830967638410465253359996358288550632050230169552502934909434340050576725325117530625461896307088220512419121876001539175718854142767186992828510882914264680502501111034521729107735790412523985094438089663627895842197672506209075332443077571491827525870063078587960499687772530307504327526579391028378754303728072566510463338442180755620037928182244113181096039216561615580164834825764354167014000220112543323568790584828312158255100740309218749172981596435873689284969549251436794629678976574509961645152968608935408682621346293282203792700948733454828956013179315005426476768946071287339289458590075416852988683360985762494514112431159697043192918059783354871923861325456897190219859686819876462629888329908444664025407112654625151059243549175743522786565192374386993099472107365523629350911376787100588024521935362662802138257377889697534919770705813265339185690721073400054652973600229442359256160511438577566202710684034154329441763523825797447971602731039594842257681366826744813356254732040097934758896937041821003041406793704098037018906123458621988616303141279679887744243187108672547579718131254034208848514824167939805656345230828551144351733587347291552915949318057290375225946646244755003243785422583129758419557465571934488713314551533650242036402200471861629206352483686199617161860093910206459267646762021484090994137628516178674732971570080628990027671770059427605929666957326055999668909056163097137722125353236529583316918800715138138807214819218575471941562987349304202342459806381695728293872937889895743727052176617425944714796755842795370010280613371774837569664289839893467227990074704719586122074959388413521185461528286618991513879342079615835810407190520131257574722482453929302627908256949296113439244817900437526306884112183685341082421681546178547840843977942389402896271923726340800678587711728147503768740440856003255019791867670761011083735452978496916110169519662256003693329016282800400105078413249005159107428062960204101334486741614348332388422794864202786670211921448394982731415725656911436294333542110984848242021131539884626081121293033293816096015307664417429039132011164055071429879533780539921233567449917295322679233012442108050410914208472677675543739776710207724140419787622996402064525851014902545282693000578580715139740495163854484189683574796450168608590726898871259837411893425857925370663362545571268176818513544808370836824759189902465083358392697872887173259493592496442512908988730228992224585911200234361329933399404889189457020187525413100737712125886976596746442246800293020575106137341102917471840341305113651072548371171011823549281676592700057462154549948174470494264093616670894579767360983664332724444924169610062184416359915614584966724080046352583473716215617783789524634479246084425103673077719653826709625662305824515370313079062670376478325236342468115137144496674892594824717420807519664736755184697648575729191847296699393446568746955668430388991813372722739389438257063132547105561150485226932797095145107200326444697028194634798700221065116720738121780511553403242299795058541352845126289771123791733297898165082704624459545893860303926416388202764401568885943378336493700249984290593842611463433855298755829504524015116260898598261142012898910487863888024447022567728385392806527008138882759071469898228835422908141066048025026623588620353936486385352228669740512861969196282160727549802202632886741332729495540754842606411087437238082017671783025119641511985928339238727510890944731162406153445964862112244401810843844118296274623188527206101172356370417960161100672689707814239199509013737862363615296874603465919976624382609320480429714968349548458508442665825697357413447400096553276505501071183574535395180550837418491949366407411376012741715777762991830882078487033630424728193966441084941045736313869160787154089910802706912525426092587356542866705299939101155047191160624112624532154527830772944140939941795470341249968395430791395015345184353365990725324760523087095051572509133715253084603397851617034566185380102760635744975660478790015966537376730813720472950479308013718352340843739714686567656827413684614744527245017468390615070434089444215462288200699104135556124085080240485212449666185500682763065672508827223640177772388596966388258317633790792947156271942097868921463921440183170104122268477143087446318704741056596274555388781744989561063849753049835316256644800283248268058783229187574049582717352096228870890176869203829464843611358405897779285391096448998079694393818711600287670667522963664560277836571686569062530508092537083820536098524315548064306349072543922069168016212304533027451701416464185473202108055542424274566366217123090856551317875200359313479900133732847206974261872153126502347759977497801082814864342244095989358796045248655294016684412851664103846865707054341889375965029188511788543013860333084093864783579536819863609794674715242319151868477635015374742512378170371292061983837793716684228005874123544556507366304052083173894965561227720332190942656441190537922769901414290592865094797324627510012953183955745258380916675886779444094221345798424604189063106081861621014508596047755253723133031650178098866918075518902731941098234902828312168606953033859187079910295484461512851274894666538060732963258050636256834346254708093738928549530644891654740494896685932692166529097247531675999739188249522130526317204807030180201851446729346527108581377943050938728747593917291391377140806865708708797991846511562612953954773829123453641283555723359209040248934408977559244633803647187962022028905888830486429234274904514030072351936717997772385429854879027584109400537111134396837299171338005144801027153935941732865647583930174338458544713237389714835634094554419171775715689961505840119844024896520240028766333248097308199649441608823713740112949435125300151751495634758147199732129012682610735460641179122869231751844283415052140047475525033231402324127711421044733587439986515349347173409406920557101207428301199619894734407074949039911714366685707205825565370974692869359563237669229968147788963284045793151185298875489085509818902804477130053785870824068360160434465028833138871321604582558078166507509090355745828029187110172722164193358222215264391936790105384244410030376643361122814213962229153048564046819555778686063624745540335598119424422666536946521220038588095653805430003779123075872854139085821799543298902725962663329425288752966001719787401349739122419848569871206712390224702088043629327931837759325286609400195368363490126237043906324740808158402510615395908556480209202840489433643323368059803624266636552578353616398072273182127503468770046945563611800982909576764307643209355763620023956326978614092960738487630513889517712670509662420968266737574148073145128926613368321281788797205680528098711302248517432616744740104239522605230324676116042030165331834145333705983014682995147799032680594196372473757538608712778117692238658988903561059630148351131030198383219209027721739754124049627497469620992276823663306519089700414297963524846955170070489292833878578357477453987768942164793643999296098992548237027950606728939402473113496129318669639795255500012543028557893069661607232602591808334463168432461256934807524688204094451657680551483947532139521898578689632985441598478104082759002325775528612788653547596721015672358649155766236578337576690879549021520748391287497967411968934212631043658515822851830264129780308420168246706800849788827819662758476865016073085493853236443858290564277278098543135587774831165598130656934214382477515070465341556507460567791602469620922435575118316219210486342981337482726041951042951375795127749679953484401050863881198792741051684026162395515900117460303521492294098864077066436265902865179258254731992101008115799857573876985895141043629655635441736252475787687662211160787001709203190449649079597067936901617301580379116580327187235484894905711800281479347698851853108626161016818607182166444323840450426579150080548983463175559948364469861152964712210266972878273717786236660587173096482901722626072510429977303983999796639734144309620513666062975888576336409311035049157018651075163318974949737581109717394341993366329671466327949060785870861706521665486025426581204694109315933258817930396345481775859039695247477782805542155926830316545034760412508830386940413370346230654462931343878416111513579931415311746751926801638152019933476980837887721130621403674811711425575304595092329874884294743874607693714110012600411646439265983792400491905104157672987338818366586066095392934562315796470244685696118875616801340624658954134227550101033344530397471469442751002173790864030754410372933081522561729269784585016109055388685233060309507722458857465217618969500156772423492254487481787476087587113463422663057502177228273042866345279827061349737074500822252121394806225113173946344409355419077278689644431034128870001285152082701135899032552414410332841850734127376757273448014328701379887975847566464708352007913859032760956492075978100078126100755356564370743531360177931294913787087877383040017180784890866237050351708139528910475762195870523104060367808048800800419994701813029453728718220692806072721309455470279311194912935440460856965086726290990540788675170687856754311795844253447074985430610393315171460137053180071883100606413737250235257258620780477770726480812488446995206563605002061541636647653644387885150047397304269270996317558200531992726258118987360152047027975989730360546384824699178726766428160394076198645787348096625907021592811684257738934850803646100679381359132829652060582354190780598327333744787160526593291113544481079727697179107734238045034554502010787544084499071931363464569575112871040184598443196145440992507585615710521859635529049861665273372768060792328325875009092133314721311239804128330209572204716547687723959488998069489538790703926605118642008700381293699618031805440415449852572433584621262110032319573246837773716508949465816758663104605486394228724146111620336051702361072190380757780070518412737722833406131428479460938241863327962765966803344902033188742103785387649182337566002055937761365435312290565871646156756434494030201602105685955463768486554403597323226859745070028723615786116294357783735351005792968879474643954096785958049582218074846268183790235375129083155908345097927081211755658814163353974546985715583283558355900994238611918414499208222499769530469434804686758855522149729930765021960648463381899797286811386413508134046667357027389678764399519329395740503794016457494083609800372932585211604564693683294145867136495173325734046545713561691934216744559693503128845231923339525496207031997998571805259206758378268324411087947044142789592428337946208189039642213655343070300189027086810203116159550055399502129455084859696613506891428686706494469672531666282110598729919550138038072876715412563732514198073537040025587527165217344070967545351268553452772367469777916121980495788900227367531987044334061133439414110988624987117981892545310600800960687235712271690271196769219029836550952696358950900573374496952379408418165676509298005947813740832547879807932059844793714691891479565960141229205796324136343562507279411640913107041702345551277513749419198062996079408165457807310131011385694092557768616918325622871463979570622209859859566608512317220900651162326210874034846958638951004192629320238857289032329423962247739939208197593040732774334595072521941153411509404334698133173417589053940909202207184558122094837279179235844258203617526814477717234027989851458316999433741760765765445229241254069193915995985831615094749639913237356434443869762381219915526007400958023093835604224438523442279343380554878684231437351960099487716124984955292666640857924465445829767074212144538102024017798579216748538386882861981710488771986320761082926886841459955177766386071985470577544334614026892014593687397562187123222180432584338469842583276089849771749842882149968331363537670466046603878465938132069186513526138599109139454866374136777950547065329309061958133696998570255521124159472286571558219434357780068323673149752406327363219056263398140681802826928625394174882803845145026005999034132256933036945482293731564630097055514906811237213679850536174822355496597660194481763615375747533666421734788860310763920336760794635789641541564167558588042832184026924729495540563639410724835268972559375815421778316100169173438118628193345354150450188171520904084047868896800155658088507278947411644347359946866962332327920333664615408449781384815925775609719875178752215743408221186118001365762843826166256581715727366643247807026198426761876532919148010176173812802689613013568895976137725912419486061833422923490467880559979970294010993647356940347876643922406588987308795617121941691419694685223828404981316200707533167075377053782628647840502090436272473270027068576289800313726364220478466561801016030273697655643584128819679687213138722283784312568988434953872872757784009322015500703525593892111300728902222252440988063050060791631048886359752693019608765408509954054230790264445808510025951732956580859468750904485291132742226695040659161073593856006112302750842292071866202359811791563006156845916512676314890804178682650708392422306870440189510331231078775768139494064020361020532274178760320920662586588856643212854969234180730745175839568785905796606276232905567636038938119654779738850012449002208302126188082200795151381744905226170307351462617010321692912678212468135135853397962513208550170238955765818528899985670896178844995434271341136563852658986111260312947418705968971143117471121312941230441073499092357014187804263063327441582378438814001808598976193347996582874079188517970764800069121605292776759650900124256806357731818837672310151169742361989972101223471857016790397291342802001320224893793161428649369572446916751123725968083809835110072605023800057151812738701906496362642342759294487325242494340009235269944461306246161379347173438438179345660719201077018515957779217645127792293031273930640062859218806780669067380802542981048816736615940244567648476271946509376545110481473768455121780746925781277324859231990057254428823817212394277381300396207828128765304119238162280161502283402799616709873887255164230312351076560263666773079475767183092150705868710784678389513769759468030860169654751718176857633470552427983485382095056824703751272487941507071193909176256935824203134388854352630066377819250135391080500419818863605019407237750901020618181553632544054854457916149037855154357225617434994813614146850445431346441966951493495283194891745626912572721384096442060322781982262476567200696080936715834430217456639531741094835279405075770185495046473438726866547141726784646267136670139872127058911464043222826573059394295075554644864591104074165073715793236441342318435466141870978980239888903684017278837337584443459786626621278532369300462802431012806332292439139669892798018576731195839454444635013922493339447804156439886662424137974165357560386166829362776851473186855917658804894172648019997648570417219549819628421079439717761301432859463068045801438258053096743718327279688433872006310179396116828691380273722845851442137075059592318505010792666461865893758926782865626502594680804162079711947546365618586430862447207012148965772397526781469410975143177874507893921138862682271718409549782836234203289340844107077012273263568539145747280879361216630270850702626908070891145528481797781014975917062987472797823379704521561454409301009495673484300620637560733209091718812885007426962722042043633256828772679626863443101126543776646615033615252522216951109838475118957145259597761873421848927436336258486361626385052141182165281042633565174573666740039889397462096873568082581495650119744496781594056006290036716878941467029480875266227827282322053182813214636956246870032680664682670694414197709836654945324391295978904653487479024094039690205098083246894613639844163252745837311321746867689131319877956893715220218108345217106892831528779641954751482852773230747155012863341239166840802837313045514610268036651748672768463926680132650323111591673842600652984774357250202824194785731890392148537436816282623102770126873898928152182632940050570905181358017993919315373562111506008604824147631679449269788316995740747076968421989230527446557199476689575350963691502291545389016533473851058663672262190735750875351709994643962583142770598964265647699322763614219224938277990576687819125546631394611607144475515612553467056039222087616730360453136180239485174956835426687191089393504610166563212408218213980866914719363833934226964863584829221379650565213725936105020040450664316454730211769450920447062773053016334304601663183710753576461190276781038085607309264719426826709227690413024854851915434825198076033978329868674429262716070592139531996385246309463086972163282644411518014694382517496687741939421949708812136154264531370814781750135717499896283453822416267576198742308115131417836220110711596956559761029892934895240760046510920888296533180452281149143832518344625530480418469523921088936278666743791034995378558214301167408119181271155758036043791094623273091901186983989010287001932661532705487141768217802823121427297120379811741350546682469923517446299829584579296897943156826629186237377787474426840633340125317925624343665219905505639128843082430048726045242696430709054183728189119540763918150079925321596804917072120786781841622850903039986902426293932079562208915565785529270650774519348758314184441255365741037525559646594901090784857036699561145735213715429844839753044341655285884771968309915880922283494168159341643848934830167644914224872425839264139431025223784489935702274356982709194798374449916823733558525430509633754651649967752948967930877344145596029668625624998457753986776517267679878529376296015547003092509817586126067223910840680791000063693302696171556463049989675677928615854416245799068319773897095756307083090970858332099257352435070680010198671884040343108894180152892284749397235459212683415416506378977516670750884461022205687732552615806801128447322033138443627723982717481395959100594172546586756706470655777239426931013503808242006657488417913020118748955379688735173678729664905596712496844968374076400957882078121019056476875654622704120965534755761699053498845912043626867780143569124724392704327973194373771915566546908534744586378742114529766211461541307328114508647568358660879566950629434060275665904322229992247711911760848340699720188403183882633224339946644445972789131434804855057206616842595767957863003866654547925045865475314380034090117262937677185881766312424279360213371422370688194674442876030634275540623902803904815822630699276247930026687383057737003466916062441413115741280143687576797846558014566759052757572038972934896433136449517985019193841292981940311925251272438564527423389366328003239056914202533353596455184856729736074722989395974531624540036977768302152039859336548250393613017454328488398063644862009343079388118723298901230852657616920185038274075759324170879192839528704126939962188206716005248244395604854619261999894281197639000158277922870716210626181258144963067133612860008517894297482931269357214022249360376674509566869649801155299909296892269857907216653573032342661357784277966893433460835281670814854441773369590644758875622545059053566730798257601912280288581588567384436956134988495484246546866369074429522460982790854378755028776175715420136737769408576161712372234872099761746300010597938926535974842701106752829408974851734209771432009613349508106370126627480749246612203248232246868039531464286784801304962557578523514807615328565690306385119324062460895040215544091646715318985062348580653385388706195679107133794403605153431916644494642338926179676502051298955558449077640732217481820366505959645948405818746026218178782055624136371697474705608473037093012073076432439940066665352282099276523309626820577554773457837208909497761881477086065272503985314074005106323928788218346159785413844798844632289670349294854272264928579019387043509958841623042844545323051030666754954301517731022953804807844808276856570276888127207403462077010031242114947336955328506824058642315302947317138211897570294082705650989141855161314916418626116222261870619209683548191205551199224299592031256248277376478559834486087479347256091185433218988196902977695893298827484663068686446912736489372659292674534576853617675854650617633493197187054234575265468657291371172615262614614231124221412078221019756005636816491935468861022227377699651912480101972213567015793745536289710058259483052822179076242182285868056754720308626433285187042416588270369879772051541125375206257771560291661623641180237972473852757080549407563270282913470570352614798635464763009289441940615608100389001692818124923014250748980903699576331789117703109145531051510173106061362353349617394498565396842113690970955820270181489157812604906404577861672331351558554484580984618578533713426820678382086044394602502886988613790262137712229211707259710999201296446615112557934296314704518497917660842850958686397955526198327238773152487474049513885420120800979145406562704676137594990734480169986565545330718498284015245767424044563453837506360129159291564308689802241546974331217576814738279408134493412850406269687549563165717248328351508063016948052068424782679874399991247558270165671856048141874834901366872696528454525321767083699454917102678905699127053086034755501049235891222624605499457997817560112796840540113590961370256675655517095869137076139485908790580227610207249453633742475041907394472907842880664872923739215035614144204010229152770403998688194118354695248819486603069488935521164778869232953013436105065056345565739397374041860577316647049403644347736631864037921629088637761885848744020727682182591441452053487295027950645405870548518179066711659690865474198838968243458774314357950380233524191080908569353539346667343082566297920099538138622125026988888334161696835705536604489725317338352028785231952575623100640403413017105471484106193576630748552528347073689500513731097485729282901086780272196963397007468983284347865080100321943249738611349355484882266066636097433922270924220742956666547068545927800175352274092335537765278599997495739728479471806401117009810241041711499871640991663519254197144755128141934416471122915903054235593702287513755691272702194127187431760933522335347690880776680051691267683467232414580354583303458371376999208686037262297256615050526728153578076637725712618935758260981307468672750969751037618349670961156316246695717850321948442539842858164231058460009382334536076226535842111469507622996546593276655734342763714106343371377260903956467876160762141654162964577321291668862946021849494065291753113587660899337642703947600638429794816455504599406216262748852957058571242123270925836381303912020248393457728505885621960606273147607335708599638709977305692538742655156850319328241335340537420176682411869793445319521021276472947746343457919674753732031970892005355615002588046209508866877405302734107162795605387374015673811366474494673518416805675645051165038009242319029347139632836245486799082238952863067283079478613300233638016312773356201884214553084309539807211711716527294724706741949502928190148864668024935903104289789780959632370104347449245522213276540273097944334093679901522584570021061439927547691015943311992090363221281647271365667012765782813007564273781671849540565011974991404999376619358148747815555968911214068412490302275399524116854642874474698111097099963729929930804816158169558110662422877926560575927599700956851412775869373183643875947805344408144301355775754751059403099775125725279061969183963415911681194487858520650479077880952851404718246006743040609882232017547815559074096239450853437299564604503783928152848491867845458192266932210230090899580364428852142943666081990152366156103841715558769506287803230818744048226022091029812827526212962963781279857627359707060065440079216465700863800985070133560018517836128225582104922628487042887621106492564416984985730861127149511868290487008268884830371416884917221758821476531018782867588978602375327242896505363967457182913210918184822224385615549975267479734362406100798200826343481178561613151023252405322537866578098132941744117370127296923582497127125965733359427884047918214899261493978290329284647067989932444632201228360914718292651523408560627035725773971367009897955008835212680825207910117681124621840663494486364893217356341475669187066055846797158645565831882249433361965281002855342306044812738974540556573040455697956111100314654218050983266807818717148182766266548348753310254953064977282792190951334582616957095502595344151623619130176333071172295629603565980855220326352507867177238940589713635292116210865518168428797411215109928911476704679815169346427591426313976695134904597319899937634424058292990250341430633335344603164195095876053479178678187256012650747202302065828964757391156458714151282209058898345243929085766711402363458722401101525672207298731796843882785286756094882573706923638244243988364865648716210169188078147234703228669988731875417914619750810401281004881889063285456923762302122616138671731861845157213158986121202977666673821568563808418502971658035960467241632464958546076569551893826626820254356023758239770800950678087096106924291607084736820886170886579731192642249847498642140702978169096313685302015429311080825406063445320547593088456613801210204346595687734759242540695921489632729468471903757373812241849498949233320805251625204601493833544721264800234037797697098254310687416092651036957564872478602470567754556722722861860998111809206166909795125602523506409559130806209824933718555996031268592243599799038132972376069685780336869284149622026564927868315534437836324626860595090469330219000658733957425905323658278457226657081782595721612290464854554957089520211722388745282779409247999425285266423553804319577671442735206324358982535309999200256093173015858051493674420903098585674289117887486336470908288396624674788042745474060971069183675550082403171526154288025727954357231068349773549609343926621949299647937585350705488901370771847607117440446080745032363887241923956293421014091276217857645518327944528505043707882592082380053057504747968903440650183580649243637601323621719735552246094588973896739427871396714601611503053708691499924243455830331811810143667481615228865351971310872710551526801327813406272303594025599852108095237456116314197463214355295445166963913002276502234931023710422925698062839465184363467537567836740032934636414567913385980981825385526601609901504882169210696547365602564818825036262960966165750726186395928023814238192919743740915044002904686665787312136861199690029973367073576538965513874573188009778017679025853627028964336854321371997657905524391000378627708302884669910632186388044515869048317897795634720977447095989466908867403103671301067261171186456250501063843583749556899287886625987630181947424564823280485102948474584404447935359168811567965670935752291002916790814720648573365926160981688979881951750429993144367363616614795575788374811578064845322788894630323648185830913941694911786751664936204252887022911965226638764922322918540933805968471551653392095486323271918329626157165658542904028683166501116585980362886122527038884761009244970646014532409837729228839190077636211674131214702080970571546011983660989033964266319610563001135302359329661990670499654837495041066892169131759488222466133621025246790333295851446782188996288859849992127986075500014000594790632275776761310371635708552676796354874270119227226265222829481272228799199282615536226935460809852447808518218894494273027709483129481752677017036338968599527646017290585973114272872763821481501742306553009850648346589206098749467049462850850171184805856281792257534885711261441823486694605240993759457737082540373229554117100337782761242809093603703787846354266044857374985745109113401647126343640745385589747919608722343400373229409727017799519129928716858102518141822503503608028777820782964779264025030850107244966943252387278689807045337283304127304553839471486831715176136313111648962715563103922556595053756704708462460702427410718461450415254274511881319302427847533386304983261033969003125277321044772662816414657607745589927085589568545489612291525310082248967099502338105848785633663925639331136813259393149526520472915903899317317454604632874065546160185646269233312772710705777675526605138549461070755766492467145368673086814082624454271534110620359247277744909754796876105407124036867053185799429700118740736834240826137726821725445257427834527639063068924014458845997408168022767229056713928819718169128699125563720628852826365156033509396535431866071191382356972367260861351940139060827347966399357787791637023105238303509221058375246234728857253903718926963429207937345523533246266773788648291319307663181342339276243801295843222223244079096656223465317062435139938175177764327104531337937500129182392772874850533673959299483716516323584616669044315817268800287927492676686625745899643020047815472447784385924036050175702158427614602988511065827632285492290901533433954911797529627833021280781763539621360942170738686192940163966441112941743909777381062182851709860497878159712468121637801984703806863912261828860583557763920731498441152866877934952764561657526771731013298354828037060939836522308966932864216079735023144101053135388086360812942034079268168285325945644938924119744089798525600101485968069481922486926746503982095263323225377301711728054613925277571144276758887317014447233969274933782883902711106349792111542224855514048116936707379881443445663644923004176588302245070128466828602677050899896878283187813086215994424795803559311184522235488355519833570000237479322589848532674211817254809964026486043257173760207690737292440049303219493444286557823144435022142504065289693741992375108510864461643188038450686311854366845519016549899399909884381536302327998468249865834956238451371163339961086428960807579681385163462369479622448231453799849545854306550568647266164236804192272588821986733314912141570423612830947301600839918828703742155147318483103854734168226720240133696499231268586480114303307817923978035438408198448987560859713344623828237341586714680600437043854072378207358471355126503726647690913759823663424223964418802299081687225265330793727404143474329819619237682012973542080226450167063803351157902432873264973033539334916200866747926650527226144468782038552000777871002385203821161292637890371203111575309127759011659107072580196052922075012153006448267472668654864838852284264167270127420234888555617095828369137781098536404098350766543044372651755829682288673155533357485560836639943335656197260707799982031681706196729437936279630779850671707098812736411452973693404364834092147702781201913677544759139303299633808907260944987014532495950136199721369950563871703332542140090371084100390525189283802227542947292374442484635276575331737617165956640340983352644819738166864041641282610915462967068484484613907481286404234149482312634414051234354156518393579453109177060772600043947537798706187592383779332846562382382734968589977837334558661965674893650589926689015366296767381914622614199428857080573813655428050117973916124484530170834496714945327326113053139087471108869837921384652833465479030763115402086612755654370450052419147435178949156232373968516841064015681016522457134715953532108225797067948180542878699505213420344722883841467585910861360101659156993358070348962544094218528362216466462572571108716378058780320442920080793112332453850815562755760948223999322943732001418832131028207576228483832830857271136236478134040983129325048329676622182850147628382613991594388256069521252526064908291947749535607079737234214319458262004869162165946764214799921994948462881997661761151138735217064842238388738659894625319696486979580936304314143209977077682998924451223533837917030515880310958211865211703712095143373518516120344614341444617116131088449980337394671421542789276940218408723657102699252410018187350823611196954377177618715474451635396792570465629312477524277204668838228133968651813407740498209720907752217799944772460972976969650875080610234548460262450509942157957314810475650602974813588461967065953910974830059517849536979745035880853522672572065452633304005948020806598091092459889425208573802125937347592490764225126040706957630240406202826883922085094576711060877958932451169001873750209258500186822545583258279767099164382908449695078494845867802322066683370399059851740652764042563936323415588164412988083700492579001374745025842322858826700132411473804484430983786893556378965338409535940884305564982168046154095979056283616572250424264450286907466828838157650665867394174024619654179303019986003809673206367511485419235519696479126427418570822953458221410286972687796282179217492973580386931862757758739489733154470467188308221873193928464254050509610205724979760026588877300309807201291736122103881303891993559553479655601035788320856298558769025693364306396809765450020400506288910626594837406224032654746394502538139646107605659765712225927008688693860081095256219788811621832167948148674264500781550389709596991665199399071614907408136764737545471736186009615106407565626543672436900397134117845299483992129276638444860266788169863751711993590835490833288033134429789427118770825309654556888318122478895113847154168694822369386335504174250788201372097933864710507939330554771956464733625945073196859601306008622631489446244703942973753527383545048439088068652306360351018257379660508578592374279762802197323984710234359357449943712094546232354325167839531604198303014181922335978065004908760255709877360999557886545073683137214128446888001063613254264629034993756998838269487074920342757634365982401413275471168905815987354224222839238000554076824276285992796222908534180852636592497796977654314559868624788016485120827253810611327418810611787235534473038777067340051493115549150925549398193145703106593506904464033772452869639217741391536945166043858453140912177867798137711951377501641670728206374107705937393071388753507566107055859001228019084316496025558345580805107315692537352107107361480055798357293182414920396519604656048664809570826173678919922437578750715024624746468502659241838653576716992648763203568448927884939977454388051954875541762587254141754011236319033408490159325642179037034763254332816515533825009462924311393417700463694378551939443360545050054177330405660312250093211970262962857999395431868675712206808236981077911387778644131077552949057829642987917672151170960008506194627920151159422016374875922643660552175214110797880871252139969817154549105281468072407841482940380934124008467028591656900714588371368821796390993769790903956653698050627686162019993516184068151821736585128904827051755539961319787116606938386530143890151796719302989081545505473599071361179180153650674668154578976661060412472024977195675422990420427643848902509043762157954243591350581658130244641468940456575460200741519517547274133532623244852638353214889518106818899304889969028117568802716659519439116235046966580108502289578000782721738748756591093793601137638600907219462913403130023191303575731906499695580563760614664234557557543029440548979150933694468142501831318969987257410517576974257993692636048595256837403840647742681151840245430339306335711519484778866320959503901722331281801385958080411234903274938610618356524379193857805088905091534074191185542139971698568133548755505826417599469955054451377277649527463121548435900312331755944308703263779458932174069089892135600020925765607010826283670646553449400971024905344898296968957933115007212190998791619742544080210533349710480573469532154975341592826771862863550739705141457233127746777945643486921162046968963743889421129708360506684575840259411995467047018557421732235689283153002431116880496920260703370409369114899483593468466814851283390635964336427318934403594121039759221534864351019113647249932634045931790237655286953202911026818592175492878940024411092974825853622965610801601692412581639181862362726030069366009954186439993904300765256034501026663317492039594625637951840523829098237137821524181439566696364521266853780050665727850306742033354803232475036104698115880339165163787791578924771407519106177037842367787398813010491875425175546367661078491613564950808935954358527415141527652310069244681221258124354520527743282897655474081926781173311692680571373681419399026844859574927384712418744636590148271690484154115064043578251914967334345727471610471303049123683275799584789391196878071720864532957438028353946427689195828163085370618013618966482048063071437156730732871062350008860765211342737443616482383342061757258962329899111150259821806060087769420420608861064008722503079825958855159874806988811931173203091908934770747023254064663075197623121210682152270584147456271842402815391939066727856226731749562249495344784253511310093878043576374608818444970654901101893713446396072412435786893166011733592040241284851885481736232289089659620860532808308395243077962426808438134102556094360576933344737645134374391235135700420941444894044973605712587785641795505794269149083323288624161225220419779264552938149615295855262773268312534844841519825167965346977148944799086677805828428548494788800094834118267900203382740343520167302028701967971478449731090219997373683557951033262978609881146719739361388316823621004510024521989975304765501082554005845693966692211147980512094960903447165604290181739125680763992181536978913069848532068970604579679146199372396671955279184956562361073981129971992141712220072637674376110883613041981637596116427767105229200887593648041282522553136258783723033519868192443211510686424989977363655104481297907116776171241775498258196876488487769547273512341438730351968551115280972287628292098592438839541650320191117056162699524233627070030899388982206016277416003207520021639128441098935505460348596681760537400167009130065005812170449701625418032233077751225946196156633974185374370253317208887095882686963063304027075398271012082292357875375161281583297661966327462347953090766697765854506965170944341979523828002677358962359320862170605708139131669257904966993175715770352828567847740213627333595560698924984223892453668461779486050940238339509979531513695490374391725595352996197151808490806518625730191454892336584256651025364556097563153411271347873959827293470727402487284868293009566034290897706177321038543072407317587966490818902962060923744783366390723507240011775428536482656739385910236609575010920102219423141838939303320519872886712913569975589239336852218082561816017637022712185042761212176489974849035720583644489932984224675361404953181320128785186098657919446869875165493315939232824720735230839861612709886756924409423411773211096688453090619838734020677740048196074403523034130360815682566718111548478396074194226993880917849795642572637149598293939723824448285083699093729469572911853926093907164015291933951257741563864104419306530872109647646848449676559705420488686045653457697752996032928445390225490626542259487895275699547759279013386364510552561495395371897846365656867748581632588640956392042261935946173623338779272954784299679820477845600946458203792856723181538323782481113544756977675655757079636831333667931109079943419409916721047856863290566961229064636611940942558945640632619917429184716483817522497253317353437725971409370508720638426933977415049520389557902318403440577280612220759961789116570463263269294737649169887290663999181744945203530363587104836698823154854159131868468542995625563401473692712150885424791363468331866607518487190643451543876659820379147432184971413354343798280809470961904198336700238917002966025747099621863787802021251201044800842387254516395068440701370218788612799147981509657603522942229258708132048042203849955792241871469170959969734327986619501794606458095631807353842526258057704295718303875494537955259087188692542346485624671264523344930745765337332600312816827129252371826377941715567174111732739466113010131918453723751234798154460391217252009202170530782906132209467598144158789838003334944877423816214440863684800759145984082432842228440828470584702783701504621303952588617799119732018347131060592729973486752131018851886829513696265138922607910578045895043442587546329798073250530090335752671980961050283995038411789577095505437260684899972349973885618293071188384172183166928592500809688411947857737907229278874415608987931901915459283982067390091479908706562545607126952407423748348008623395161971748947247718454283324102904619092733534907047895009616579244731922288867268728342844645037351848005080124170485421850829492467409946157745750689178047550793845429209596697088292222843555227808214430964038281489755473619826257274002359309415134249459350624938953941912600249915527247945904576219090819464580261330645819412208205789246371955382423080643537802652899672058434273115854416086016181475331180059530568615345609511774671316855535140821787739776619440431826568458987441381419734624197320105204192356240531031979579752136844381299486884250572863099347971567394911421015675804242949742184286376601823220115979970515916620753256575810121411180857160536531203890963697699467175740619907572701965431349545452120994453306529016127311931798640608139012040391561763751526639425761706814600304533143937617173669336835828633936837538963608854873943472007595437758691479667095870802821495178216139230887700125451991216137952102543684376367040555109443063633401038524950766988790685747173059018166503911200278286448206334770174308280421072015887029236673255990929783534520161711601099111563014974979007863524893126970174416137232561655688331049140324820791531844839794092795616741396057871108708341357621630482028868787267889325054878817888146901426716222311636611742844318496470354902129643952757171987787422844508389889463965986012591504266107902858663089792076999727483466266495891587822026890671481635074289861062150371389352591155869489402295860961591405570756092825335724467045754046993199054653291414598738431044429068496592381362350752829316574830572293031964553849219468176199056054459068635653018982573933756320958009909199318192661754784365238613227251045346619382415899621760122150114036383441773977331780362236442574058635793575511507810131138777137954350288141300113203362707067478279579309981261455141728443727390046686576652788843008005951003873806756633853796704538183816069180901139807528402840203782409245161398376674655910094292309611247946709631162148950245370860746120050679568967243623915035430970038859923361431511593467385504194481341245993596332045600006416953290454908353763934530194870356132154437522357771043878718275119336422801303171748151597073903940754152446875058885866830792441226350426822226118759865862216780962104828361715917801296309526718929633163714875677495321718043060576183120951877329084240453517747658002954178751543756941829971225025067409700178974269619547952871764328709922687717154358069085694836678464984341841952515904531909365867957264944546272211335916882711973656515644681550602119589192105565920492624339372110760693355469387313770986629676914110399953988557068845707752216457317261186203272833879365926455224915384549306836151485444572727673085112006908253614490964132518026242715544579852903316701252105031262950073288951402919160710938407948142887678764437326098203132126983241835344540694446610959394476606810171267392635433594294782031125007088276178547018918856994261809466482729945784905073929535206563990614166413321597794081590662926318863288033666605548549649515017558006246040603357842919616537535201795611265894013431636014477579881612707911527513121106268081739065279245197154969002975405017336961956526717448317522737818547296393596257017707233406561013220718826146483894285818915567263643084455114159455424453585312174391994528104113767371514535329230192502346001202042853631851592518519223151276000097809416699220017993223948610692739624242261197767488130061479065449789639679861681951356466759842690243360172473502823172329409417339853806279700534606030671254038320058405518749246192628436589042146750305041183461563372746385925405745137447425448593897142547806731751342169010446868703726412783514598004339299104499231877433675965600746919458241727398161184158908821604198698467800889211590847730814525067747967528139911770273241853641779926393068283931157349536961867377798941511046598538403400779427319996572035205458128331631737505554005694796547331373764767704865561698438006787983892119968240061181517355592138378143447043411644294558099319724986621892232322541677273426157102224685023098451878413491790090019196184889171814434281453147857267821477851476601373127352312412662581531255120914794137342488693892948526558895083800086840070595761122562224210353043022332930273022318611748171827853927817617081183312000982261060344614781316302697543799981066383543365948483512866768355461449395389256045632642517521931644810754399994393359225824186161362726972402376864744357724535433810933685590154404351100234566865421258350525223082006762518137154622523146736708722962133736469435345364338185072577175977147590313044398458884785031052675443091241088344946079912867401972324376547131876234133709411846682958302134728532969115710158305303693162419748951135916639008009409673559709006605406035346039610322663480708387487122795362074848248899043694060072703821495104397875282174216622973181679084237685641960552807364556154038460073455923846466057372125814672836765580139990830285094462531529817624203649187828509780034215566110742440216309630532285643778308977215339128481933414125483963337951061237505707684484121781934421123606595617516682154165922754279121214897357866693556693505562358711620536818686277804782004782118398139068877590977368170083892598343783662254123339407201224949833119681251391402214889992161942510116691320446824724867596651069233453027590399128780912093965622786634963427679287151842776876347853668034313503859895206097945716959667463010336772421230956789801074441400086715889301125929300271661121364699043715193807416323719493527528391329212152406222076500778503824681271785058041180498010375735045689216989783568562603927057737138446822804109327983651287361301049425248329758600402400404387709202996620751906356912754844334420121951854023110853020045158708563942782278600231765756182374746954753205564112148295132315834576036388470693189490985661276103096759844153396943950921251476022916082712295020644539424303433579458067033094071626778455243163493003424936273101030225517913158886414649924442832304049366234852474996197768995728172594204386324418775254476856499360021091153224297225253482802278307286265023303170445525016492760466222588756194643830103300076098271061924288177689602073076186634301715769706996152370309905032747462342686625083028430825187602483314787180075873092313508805185137620280043157114537425124895531032797833255651709190544162975391896787448651701801183431816453847032726636257354656447976199197553540347372384140567665677796593364894332153057532223242645986109008230233438118427282032844151652123389505114472800443427243219378483423463691993145303875358125562556450492443172820531471353202633828131496650068216448556806779397078942713559251370883781026444767031870860467398485863230731448175213995625752434321395857231620560915209402272276538663770197512639603060105997714169974371095381045121990542340147838256010338652542512474725373891042391805907684453160705190249936447591571854325991171510922943867015665695890387813794431978336921371079109782893500535375874495783333556026302009262954201061788233674992335255367727749904319577609443005910955019816272480121848265981726349847637912181574142836350514176656879646578153945924554456046151619643933722480954521300719922605833286879373784630789696150883529537410015848323973672432791759915428428622619178581299926252088600770277186211478508823056981105998202792074733497678862371166369937310748621057136959774064929014522215665653290944255097601618375641212667322028203470481454823009800000343521614082791070334543493292756981212243085880167395604861316934227549772970317824305166311038990828292207219998374080022261521659996235813921031883684823554600180138394070586390804596479126852224400095517708349411361075700572493232442609927483285013474675985850541371411879464500636895083053697521885438342204470078187827156107909542680597063442920478045917774874824779200040983135397810024366995657722753417499418127339098480316995979014939294065393082280892800728259692881775315197863052595655257590656842196868223381165369410819889274407887702926605582735648495768162292255142080960300950161751350104264354736314524374024631272386969147142212328938424939623456234970139276406489752743893668479696665012407671287125825943675223091095961376139960961133408297039072209843073082209218284932161371042082184604378928258617018248680846123535899865542389202658692626104104833483646606453087020210831332197064632717408301823301105174917895062181062145980882233082956335702241488717917558295223592111336752358380313878343681446326460325528770905169642818040906202623205004692668579409961778499827165919807133718127594424430476176549934075974839247996412745168200632608515273859607440800102665765068375510888919586197120767578635303354043049009015926100339178998714542690128477615412324253059611712168500403748170849835157898346846431676675161609252135039043605693459075046007765232866623657012109396145153617438097457643617380856057883721937185522553640542597656323751022335914485781526746387273000468150470124841061077822806789230199368385811795659685892290579284035660876743254669696978220093591355351151242078719630789849259769653096990780220931839242108319940157972396066398413939900540953385003840432019540045233817457190707900349343159402065864603525064229307308055487103254482206309739528494277690097316748607930803784438336177959609538706028393399696739267210337254597536977280156649115355164705470570701302718715099908819656075363916842764414706663982050588346622100627652110501918267588062761635135643707140184022391466280683507020095833419389496231098108503531479006100324923628789132425571144518857871675475654008156668076461109493817751009732399170113015492824029126284193562930213576011910636486480668663343495326659584186545480719287993873574283575658390722654298827228523942832519567363519335235822249426010623794538532659455520357675207647130131870491747678117005295827607367602094470280796577963645870606550608498694814346165672043995192098232024568971456390584682719786371922262984626701248224669899566320213303878403710090923949698478883819205096780648630068635876963977358346913859694053431869847782619932634421691145054015306761914252227904633596209769526584243118524700896876158692972666102073629694927517174538921021252016461741899810623699685975643473449929641626079350272929260764007861233572574664580765950593016663695046156600400069729189729695315430887303870771191959766550907173108085700209832186889587723570478332167291579933903319018639375680543629853172562340597443652359275364424187737879144115541714608086244597091727064519329561413350264261713407333310727621574073745813306122524040384848738018760555470967978395790663915050497335487263362643711466451464198042670073627905844226748990646429673261539120879025667235389537117908307750584205860840612068113435294232884935253871388819658895791991524705083471839001599160248071079037294381060500070421993335991678386499945395250459069023005236741500596733472679615453178063798709909380592899449535202607432417135111409579103139100100899680575703444107495429622715731823096026198068601368079646495873574837296287770565215424632238762465233566160265874352541257446397819820506043318044440291592859330341296783233955312538507126112723771171419628802637807507350982770376752537909447084432742300616968807402204422405027216025194489747197175506109189102932856652756594075354089769800521244932191660944269066209234935167630865848861341207611770014648060870029962765192381771867577937338647979224803440924583300109427790835740262022809582511282582791407174568611592540931191313467440899022687016536716253280564835070203563079543155230488489545320079189117050785306047759166082687338451218604449458877350848213362563245897001522295991898009521205561437382508788582837192663343673938179586174657630401451949526039598533794450135063692217367407855280269213423667444058874767946221399642086319602544585241175686571673635647107328577682226927730642893425411875896496975578464049871522182134647899208650549085440243823751483047629094919857244651456765151503219028057923763468255633598744609424622597682099580140718417156867410920327428053864561405072936292437358833965897459253198990237627834318626113183673778044276012362095465066319838314152568366092705733640904132616908678914386842083012380778452885095435285659034564601778675860050311753652228879720049605654038368035200998902908361277724145201077201311974210450911934314736647351130811251199822546482147690170490980019776865230353025801890815143162968667757773272551747868662397754621837475727761530719716791514921671532069313170393891759268957941490607323537221672247176387765196255027785070541885457871730642896817204414079272736498523035035897340029552885437689470824984423312172041705910839448384388507146333913937999352875578036213157732379527869294525521488495419772273767687651499430832817769095679150522377592972891638251270243000605781745403935318474688212852465667288112588027914828598313099736355250310606934294958549657544235278577320923142503141273057886536027243005220685442260435851956470253379496802994088933786838099947216704194541153559425859136371452074004894520574108256125484279636447203730978406608090014043556422885829763701070384253458991710384066707056877741384153940965351441909414265821646099023732574161458153988631401022692188451786679720458374620302448044547245165255756257470525066774101703246321277301871511679228105947207072638106776428553061229262861718778236164683327201783880333738254640149371952018128089142645765721841423274582047884974740348138112711671159204355425628825741316602266871400949976236350715501947091560553725593843065939136926149219923904200115143626365858183528244694943057655087558497370393036374908166562773373242725773525515022952964986562572020110123938486126184386112617002782862805653929836215643205070926667996622702461330488549622493251873477328888182470722748241176319505277711793053889718297383051468360204318105679846322039950502750047397399356748255312632777156521665980124830305088925054370058795405071041169328339129282115575675785589926906161514278245289087957236451252421256787167064438798476234043852096241341887400566467202548992187291249595929981243617467222873439589314232131743400219437508069966716367352744086617567488527599686413574217041111213757961903732741862888960221270361604434209522555628340498726069958744627354774098830416134374617006294016709569414051435446908469990667751583026401385498576623092955674892125937807322530389972188140288390323434416223505999392500929317253160703070748186274190442712858810393095225702411089502900335414054560377527259735185346776898593894030627616394543822429109298530935308758356207115564134631378554481679978909638442771637505317400955696226466734131009502444430867078382746439869824873158851036410545765732689000898821091511469609357351454767821335385197652709866988316007096558656351763246680480389747570359057784957794511769972380638886729329177480446901455717669580184414133816430206864807122025132728989614457337904578422970976506734794295072087281151913593045918026223128402439303315646779025647047450418800384135932752461384537666012481804265821871592989877656580258406589943696431396558908027976552768724732181489823565664998683058626788164666051464449063637704292631735277184149622962091907132130702497131173885162889983142480122584777840535556921972572269618296597691637391956481839406346882040021013994139156588264891115128176631526965920963913131771407309738039785770753230464355727425381213894978060359412191132917652827434815411877753475819721732681919898818986373884139943934383215207309547764748752237505824118928470075272488431219890394928274455548900564091398130307258516781217028978141862152488561801442493038418012459322038100716952683894084095179891678731115619975772191392009598936349799972650779723288542280962264868180474097561485408492139640883108129526012941344325202535793819451118839908678083048522525660911194362059114420269572813771775971878670584222024427381904229206621955547062071443652118606074957616810858070722309728478051098611058952634992909253296041625606825033884725303919852651204863136478515891734220643557823437718079786285621136207787550118416710643717460097939033752435012885696552847172583847181418613782976024210095918315801487551336189682538118016800972579243537750044194219756614701213635651501072540478409006247047629124400201932926442117955244293871691468600817042382959610418203189408603815089464428885418959156894484374491120960716020830372147282258735190983053247766700579969235470093812830375118386409473779009896255493062362083432353192832852953675291783462354987223569433081222501583360220044577420667506901586654889406199303460239231409133564398767752506755263977591408264458213926454295042375092757754986178448192993499004179444677809976054393363040052460125862474859807943708291626215058928142867141384183784585966488236423115403557362141609522620236244967024292982918496977572102950007464005899558780645506140692532632966549495121978425589056542311021472943223568767127381952749396353792885075937240097579805711551910213559469869569225167079483568841879026027823886133146153766967735015819310453199644813517890314948320024926148899688935079303153870255184186838104620479930589208242887320060019990422106580023899686149785207455187460565291881519480749148019427614661508310057142455040216762527754905344081427354759153401158135932116236040273509679085991608985548292469021838135583743500612993915404536314299038580638602046204863503831212816138732173471151023246140911151548661407677985781941884905010494498614583692280374960276009099375175491186760506247096428410253497865144763596092646956759447191633908842859862979902829345858490515926439897332975649127021038829486604193980637492431186105016680976900553547299437463334694218269056952691984780598932318036654761220404415637029442507855007789516327104662785173927753801436806730342929589339788561625644347607404158210011814257038911934268751114330854099915862568872057578972577667563900672732399010110758511513839326341647571378862544308039551913303667592750917345999895294957363675985518817728151982744133484038360368409216944776791119658792151289795826913894616313330784360574965934286436786890615439585159883698730826384298568910119136695657460066767714398372612296320488445304503945389602653031849638510176670504175480199836822426167184762434860006478115814457689559079092756511583073876154683834503834756823857884735382237717919828909099790098023364896701511193164568348861580919709392565535339463808501780299852348138129092775899260564606291787955174271634304984947552969777982138848755632256571607224260858768144305157228369729176402457599508501845998086429086278382468799873410732223890393253428431159791404924791583381734325032361706693085892169154074167640710649440997653850937159090375360174653087596794798797112945406672838784256840091124474274283389702381079838208948093306996079020871763152657126313857844656465825714207384044897188517611642723239683836718880796170075881130870092792911233675084570582291522229989113557335101394638719248559661675863465955100610931897331379279125048713120166548855566626107758068078688900182341093200941475539584525929453972544297912041549430946675705658858950296683510245833050245934594965702794524300600662632183695748050957259777456454858402956958932967961008242435015115529609841231450453147310854615669118917283520580921309261712076492871128708785520245705960158242066315935001235783217794151293389695577075080414981258499192719482220420964437877079688442460684723951521525355427088690556796197356620541148909131328661037535603651175932268824024376551497125095941204173214732550151404915232225300179850834225383876299129164656995867873570295377880241533779521358004132737017303721663333172447504573490970790580386485750895067507440682933703154586666502776450528697607490425154153797464743378701901147330385283956317309724831057812567914713805142580058761400513561882037523298666485882366566103065464311352997100554608455575282810417552434589864380176699784377770818291893684963005923886566314033282350382116354019274710703916294087392288489370977213886393546527399981907227208179203541949877106960642630325562755239368114087111737949206424066146612932099570339818342393468921399402402775203405243549353732078799817852736652509795595761708142907038233632554153326003420890544534271509969319074832978195233796233778490538547781160387202147838738335752860017298646928965618167852944559325389613216273886288883325279103893025577396095442895651901276728870704276038189295710572425331490479581387799876806445210182659622618647058443897017157457844130841178117680123861540518582622955557419545589213812322391399862681183878112048189578114423050850851009944606757129134352741821364032991043438321438063122053150341403919940526654669593548771504293295424758686433928503773099385278224643107146783858031196712255517791380177339110575292170714286903903207641856151947206775858954048228822384035030753500948361573806390864539630355417823946998444823184870195020695233997684301943923235664344334817384015438794578402248077483065285791506925765761927270927757175636405342155484076541872545999184956693340292287511102054982408606555983503408366381867186919269390708946857724181981887634291232426351262109025003777144268262707718351819477743190211917396674112668401621474707917971053618452817658500333948857193064077964189265296867610344598138174795574115652670192702555342545715510931130928385073968969957361345532513628537863069594625664600532705802902800090970903716622937924707794714708584551834440181906632186485576864930474702889395739936104955220723664194511363430170703276439680760591008345341219621005237362395327430090609695477782126140815729030400508915800305470279805376994752754224787641925420229031108196242538476409345781985456718504797106605318569668390239419550008736655945227926005427270889388166966431869790518106241820596107557673714329890153209819661405934037263343446625775825119638672872100807234392761135877108094538385142897461057776276073821390839600251325035714193389202134283966272100916415718834068078327481899320564749228065980297659518199089182429106316436774697487662526160700105347033065929727860109697354902400636759727175549468903005239451382089501967741147882749978118152150045302690976867576782589676212347445356269429608861204626757474292949899900323915531665395865492760030420874558519848628485750210120388477859763202366929640850369595803623317736948792085798132322288446883872361413001197659798857793012784011687118075442815589708317375454741917094213659070282299985249194161196018605304685133333096705278721650484335487049091196182840020409669730294109157700744872038537823309394415716128485051619518345805399794552183189806048936891580574537479506540986111176379063153315244679356433495814961949662010047513877678132840569113480907636013720730586687495369883017207166218254437112982286952075655538869405975630057177486346268688886447666709955271977725248797159786206068513928897631170960333533774555229101716165691108224002114292388212685340896472802996516929324008790664731104056062551105435842533863272878050676265669825371483170213503013200112360593906249790003581034544837733171701443813771690407847525187796251200498527817678766511416062103530655511277097008222856510012110723568258739373202484753559360054598848014354252654713258794783455165156807165070835651002943359472464505702857831610751412505781816859334486992106046124674363216953729363866428684456533376922191746086627053515488434335226433248239343711052457649236902037066665208937145371750272740931022549135804320673232637851651975918275642705271678890725127036611406382354196510957843252879371024420277043356157287350709721061992792396925248311188405147093030531028495963012186122490949996269318695632582139464611275602153311216340940137793656697048013260175897346845220266768915965478417052913542830827872256318085463846498690901416710221177163376869426082747330394482260229522438143433880125417412834014637566039308855125312692560681216208167223883689791935760526715796175632090968283173060153674391741347352511232368816681639896072257673767216351792891126395068792504593445628376895240459462802171175561611704236107835566079504599672877614960774571118797093275422377777595461238520272877405095432762174303207313177173662852886689044778432077035011337071806393642382839500118026230681505863283305525064443916167165392181197346101555472239302563705638721669105176159212722988490484148998621517895929370432714074257925698579758272177313927982888898682539933268525937999579951947393751520119968662092170200724476818184737116712807025328172326420908413407812204316247954737909801333647586527140174605228720866729714751232774879111044350806434324238425839545634948926307091262643445327532285994958627080945736576837751151318852310151151630734705791977497112925418194545890988875845819367066944613549025548276903906019116093377756891725132252231036476981733537248631579849040182756768227854803241985301714923458738992045341718951122728452196570010983610471480727621147699429033821299999814096824284338249216685233731278953113729338765129447374580884821671623888990467420005609168597814862779731186767657063113407011355625475887801798963258674017294659042064339488823672056832524247579061603136178658528125652489597209328361253514447208381766115565928846790982805222395413823343008951494286368733619572198207118118385379798081577367144201636076310773393454119561124189705718171213651641757785638501501424467674656426555089909604329802852476303934678602553303056431218115964701423971042980542735919385297345575685737317036249224444603861970795658770560391025935685084072889511194928292599527052465436299530343288526749914847612981664443033067622173160112037707885302166372679314543579938293230849491266285800675531193710932526557621944936619982458420863296092534721381785009559152395788595610005074243424599472429383061271508889896181708382539924595299738906947890989941281521449312760524803941515134521483110627480218473604491848867324997641190834007606279731232883583923844650414579265453990985914668810355842356590284891062993812204551856387891108508915278920029729330292784977887785864853911789311897460165905066962320894929616608890959497288127154928169099314045319735362260383981654349735059071546804777554262851078322579819645970487119114999352971683719950456601379031784485474353792168102292237594037367190903297718910083469091731829130310041840707235423613816154566123367604691106328231300712471677144495837604552792425231697160792069069623679974278604979188999708006716338906706866552081853104392740944728649525645859081368947383556429852611215278734569581001106989254539938532595392055346602083655972241231160247788734185380364682019730207127209581959439193195777036321582013343520853304831444479212887858026598660457440630622037619948109410030957220736580808141619527247238805440798122885242114394815614362601958611122412278333316368198091758646964001279418070415019007556534024185865525529025367448025856580020212600967507181554874847728833064059984146331071388041394534474865377360973030145118246609554568487732369484781328192185149063745760935903266615098941009479396153717614729160790556019367801101645777737674507112538467465452517032032425515174120335551827247977087195072892547412058835157922181167070427159881859793034825212602181540307974277643046640612677946121885904880343109404948965554506904101243664105286364897693099498601959396244801228798992087851492456135897856670593163477023932286360870741052480236209137742196028938017443979874526417973147578044008573400750395520272478528070335428593118025292415020528116224051155050862374001930262282889245104982039391902378595412080314712649635990712592355170246481355501047588852417050581069418997447209647265243035431135137661009129151813944779068723895196845817400057201284948227280920357915365441970085819047963412203476619220370575072101986069071796256052564836772769806670090254246603643715490989973782787495962403085464543205709130908148305168500669495865008968277921486282672589991237732151608111979821447435572216998745464569006980358552629680403115075787812017517904195012498122284356425098869493656313083925140505537659902299758146515351271037275945188149713546336466369862496024313546093978586975309687169512011844647517914476926084966975767731970513356272722461626936647127321004799582209542494608094790011421621823699556183488057356984216104128042569854870551978558039320903222374239492630526504737173028644771490501785592190632140410402438618294268927483263717137595338423323383655148770759021147186481168900555188189355913496638601976753302228016481450547873999763874655075391170967713532185340041212148538380962609203761676317114238082219571608851982297353846733283743334956870543822888214567395910607160921958859703227680015541386565593050511551919241163148660466969503120109893696614333761626828482152136420989040093765944261891132860911795139394091722940961211046707243684946890915480963235066069189178460972835088955355603051168335108497040149707540424262054210090683025515034325361826398136262051880697020550182560116259266684339204231903441014202475131372037409757962909120830747472630851567835638923445230334920208836546299038841046618960101379101235078852098779412662950267744003355587040380248594657991066416818842510073938203727373460279977802436032747965769486500304484140612669407337566356866627668358328229140937961583904824841979271703124344156537465591023483253604407359567187620611012898095076911977774723987236113037228618212487178801940772817847318912771444641167827632824171772032509354611873266800249231266168033650185321784818164765823400643346712506899935585953333752505078012694009246787040718748289873776650000405445060424266026831150813259379387064483067166690306759999457863530007438852865160321251556511714179175229529798142386105001602688570103983314903530495066344136708272568932250512515308035146993958827228298199332283213211671404006553548470683780451578718487951866105167211834324882881979732416663590326351126808737180305696696830035952538273635749139202447281889151063704651929454893927163323876958889880504426507551148193389399109824181270162222502197284332450359872917493309097735880204250891893487880589410874713805170278150903659306601889756455222520635663843525177896064783939272759044149527660385690909892270145934998421059572873341971553129245168746492170479189907903725529873086430709827624689122637656834529784892575987347375395876285868870174557060260615011797433051147874635624524950951408434021682449798299177462477738498625106061470776991813977791794019390421046076581188156520368921322335424729474004309015961314005844751293086614610615160202695914841263726759079811457332890518396074614280484770075064627676957135892304525827470347408261982184393511712266214995303410853496393165322985426442128810415716773745204679369011690583732077599184514254165045546172472742285052699195530168469926880705134292865599592339062647703297144343748341885604895707194674203099950123172313965636527518519958348696687413047231609216652653882130955775283576682583246217946417274505438243108191645110226401658415654547274286315461631556713492886648212280288914978607099653927777284271990844601530483556631452318548579479910352609249890722478200687376778684611133405695644691794729810455335312269859111923200329958817230921415844908862788113214662893655592646899817760834705410978704808689688893136865663169538592778682693295305583268810988520844615192641244296751327909657839819215794427046169915300901943942864445340326768699362142151615792450867514342415296128509820499010788997990271956901894092362532273202707091920116023715702322086269097476450350646123489874046482245644110166612990296771735260108853888257506243521764785566975082662056139605204189584753974159456828063746567548533479328188664153405554113950973021578120689678403459238198569999250475983060282060901164276061810920066862347398473124331435523355793087501467404258310112798157758509403798560796922864972175680757451864454935020112428106321127858035545660609313188639112975185654214847124573115666086251389047801613410357618381047731966108902699409924189265278991359678473523348004999204625629616928283110585385056334487216328934131253438288227191693047725552179273233947204807262898556134004702665718669483249479173425289258918297766436618903277533355025373107827365426164692463610428569334446474573798211716388483233595190299876314733680708533184823272031235973010788280743698299555056746231217598425231989467102458173183334817037663130944882243477044033066960635902008973958693916728554263215434080210039682598113225600666658366581055392477955079416068869889004170898790549437518455361633326072180895376143159977633403979470230646807371188993243877507008181997679209153456801964791826557146044003490077184120881456933861340264625530602922680850072560458355852495037382102178184182942652594763820467417029486447176900961251398445491053093089990223866477931651382186873484061679914991689226453465227366989149346054008788434726006240527646617499573809631602120712022255109237596841897708009954670668505141619111541618716148717845374048760517051370534498392355232839629395586634377094371360409722797257783022411917688938372489987115031745745417226028025233987938648771015707647639158028771044483823143101608173571629151316591604269326836336536186368796483081942012086953258097739347229263144379099558766826808470114483255354139757032911461364738053618929140915431548404880106203235710081023527733939969379435196321232898225919443623784953116238079495608879156969001205902153874370130267208274090475232481017902133390844407527816271409012032681196744484380555531131358959449787797205236363388832566280243018106215821725216232105285618840167829837714461143141348263350521453494732857472417408158457202122155978705728906159062582468386527065139142028340415630404295436213742712853155960912841401370244027991106934445609539398100800845627628552240857727798611862219395300411935934962278882720181050570184247358749259557858558721650261998889311869656160065610018563846057661492193445042670716551725228611243345770611672021892888049618279417584233663140378165371037373594539958837181147807976428373791459117527460742683981060560321262150176270872991876027537054907024942889315667172274836404897332961086509553983620731971718679336113900048456790941420968631610208520072537171867171463297537897513459325299996626827586860541109230859915359308831756913428459232991257506021174286130929762652755931241395751077803095264043582449541110265189097514684197177884518607087734185124454351189466441337983349592388903193941988943588488391670628625804480341452304315144317647804674806204550914793113375264697468147860538822031851116409919112428649520407520006170286297550706364725372098312333009931978551861640610917282250554757916403646655381369243285197884189795658060171550395617134525455772526081064786949974151014726068811441262817312330408978558517771258184620442472186817442722412057117652219856968057337627980310557022436803573824504014722197918315250236566334974766046278304360359771319621451684978117785370002630027500639594889599059610192284152655035311328193297677451692568409601856860529043511616905529598163510531583284472651454797785584256845180935449433054041538593533469460858411991462489403196124244099419609235447783728293206706276546685797216970084835880030480415562449253241507098164067822778710768317084221284693506979805758093695662806498459041360983068686437803678130378139534291635120393149854664921049469062078538233057857455652967315435501076449037911889429717194841520563879496889142525722745050355239821235598041813797332775496046662317265845158320920118983286917252733573541742802525256311719529112118768269621734723580828298258837445489541244594808394689437314851122537113729739985975406647980701106172574664289633624948387990114052084450868734699747693741690131585616520732808532187168078904549962946974532371181871111707705258562476797498911259160776923608530675536723352312606666322626590296060199125674229750032693207884079205895558797850711203021431827125953290321455225870143947451132261178604049446662466602079911731959753620436526728161667853620979055166314782835113747687351262784634626924589686862444006657328558980876657475323037504787163113188162548970694280435254230133226600049951471021513139178247005567632965622935496891265624185271692158971783229048195660457652610202579021510110241577000620278271748477520679859079144658649449748553574979077652729156646878211034415873309517608601164298819676142854259388612513501641311672774140129383457248246131542328454886413291777926074089296030456612559925830921489052222584720422018730910374171881810338701708143413770682477776171237454340422903622192697499991276849414421033483726168110152751207836439613966281256079510911389205589919158543454040360491013407661051374373954008459218306353959993801351494324565039618998343737267090146497636578780164702994312515783238535099876293289386314458820467995627563732514318258608654110307768099348536896226370909587782070862806727705019130964857793910550486553341502327831759200180918251642818412026429895487972599361231064855519790745925846556668270538862409800759141311397029104569430759129312692647043077537348615721164793528563068703753753794905104373337931430905220099446267609074274443448630277966326036450037516071782150563537716526069273997568855620086900410900345608872924030363126259498293554783145023685807551340423117446519894817646379966265716123722557425309430757954950965441912515286743012444179141940733130257463000495574298311513903080994394605828572720750746960452679538751078730338876024338341434132879086302009811728926610889498228494245932873055114174991763307027894283876731947823164507408025030424282228420078312022670479583483674588209907702746190761398961764438270615360009044568081396050397520605286484571525782942142848668764163192564473556711114592247198649854877028533694516398434075192393089972443303132762521509504117918670709983863438155614345347487961128806709364598726257601714370323260244743926655803430022329068620171211439717083077711613769209973740850864716291637937274038344937439210045298026784127186346073927626251785540903947312240384702026994622087717775398333333233788474461673590530107306787106399754988269392876114813207685463289682414304442057382731628476154091888512923497206680408337193823783890108280480990528595246274061126634458270808254037090496917602722239302093297441586236657729713132193136131395701840787827084310428753308240680246061134603828252970940432068411187456212763657946156582805683753435423625109579010991327953115858173314906989679210456152113277356564382198878877742107051813608276929881446293486390747895493475941624770620365143414062812700219313374965071925104981995782943375591766225073550360549667638843883980149737974369754401956943459263745215785738813341073220207794625988954194349380854795238719156433029722659980643703030365324104709258759583300857781968028397865218378148111195883072675198345773403214944230365032152855784424800221498926399306517303901580862853959218194464482604143616112243709484568342478944567883543068203741457199426959070376261010927275255647207842632212990888342114198467345062930078085232122031786817936952652090520562332844364962541013610956215500617993096857341556418618922962483481627063584757641258576908658565252488481568781772682838030782973157365762734761190421239966574910451198362781516680408178060958128580242408594272247872738451925504738826251219590887440406746906966954853543312223866454701962845706471454964537810020249246462413745604778637985427219782607048858019130311606860117177007626347525473798785084003817887365220800212969354675204783456995903832094362314708239709031572023353141276402410905571182679076677560362614847874982598627175714360561014010585874534285821283070693558401909539145086549703720065215747586437758313390435579659695537921821349656608565626541934644711700489243193257366873654187460950578766319076858363562884804655155473955753480450302890220369815689196944071239477583550960404805253865681109972979139961234027544611124450037509626107531454052225642143374529433229088055044775767003211228173347777219135232890520535118325378790430941771187834591726693669921944718863804034065013319210415909077429742750138703915510004221114624182921221066876266230993650742528717594021201940201271229477526293026713079033142458628220459272363452882185412430906878622330713284826416189375005747707909709926512503406088151474263317334575025772701424606740416113054299373691842452655733762834814870516765957680805245233177263283382049574508243079384374177907848698040302563059768888049812313384851116863952359956248314648150971194619452427956244064267264351290279203636126723120231042387127579258463508196549047564281711524251825503550848439005832306216016572743548799246899857697328307833295874961563580561630083482337927560728502199994211941299430384898078994225651438124571842883481853376086917480710855418174303742635373262784245026565192985000347960248897333062452590380782131356090412861321795251019411653865914915636777881906689165355085211796643955521726717344657574109781512367051348355757488552424284678790876971683359037052353327853122979512073201601538831486492827601158789849600364377413803964001709854139111559179122990932966092094557565427965703846362579701599797871720367824141193467839844524903803404818709251437100791725125496211894297573038142073655086666895901701206212868254020643837625632403917999401261892334952014824178224125682337322063515379179959625263065463267314416675844572870663429992765205770290056223632438901884409779169273405683542162682783821215235225311957509687126555075282186909976217340137018214314286233915354892453661717823525714858984235080338594591663911160674836681346880221478319560023725906687080782475087357205092141772862033571566357644754089387295671228703295842459801564219637596215020970457957195400495129117527353274682768624095462854693355339327239310701299567326746046679811864694386591966802351291394408794421426022861054392597082846114365265923810494998159734162168784589245957021182118956124979958469629448207318030274956908673076331709555154961071603502006624124451835472840070006167951319603363853850515004681320781361363050957527095867118154861637796256874791313127345911494668765355382366451660778743529073106127146902513424747770711603814397981619285300505685166508447453347270196324541577267568630534027583688849903743623039300273705638762649129186992159079241897251983584616525770192764310818078916852086531068012486184770466153046448267713630782696457815668967150502959161312160275235879748884485052405316999949223783478364833891471422998436134646038805429146034054449391643866006298030070046263636757019235864499471291902230787757217984056182365592612511252901852955634913490145092603854733580415262881476478819893507564978599511786999397379841089129027873335022803026382728516275875842449637369641965771445395794604484256083572815128408963934273768832696212223719544903606431459234030279069411806418255856142473582746941355590327696920671083137047047303478489536711470445692465522155066430826454889792839949441004991496812754729935320140781542508460367795435280631811772635993629250636522125507653193392842565693411690843682737099482015968129701349093429478273565371058885722321831562965001339944810129578368275846290672912794573977378471519207812826183229405128267629861142904037423767661641963170591278341825347800095031654033006809655736448855573156388922078036716394289180018144614198071322776567496080547486384002734509439588734890510223496538299808800431382842426053451270996844021595040635127007322524366898027026566877846898611835818183117900776022116530520605909456983426173594769902569590451369800301529136009976188072062941826106135915230110082436938786707087192614715394966976353756247276689039351827145481943272290990690882537283061427996366621673121824221391307312812832776610697136778764908830526181948557389662480327231708617814064198736081501345842636187426284164702118116372117194769491511922741466699462157868510122446521796845062689870702402276031527954333599691452414275300193931177627257664435780088677244418799801398402533838880844826393899953138713428283332412474640409561376623095974771352819653169124331415218058725335759291070494072167559445257570975002717007506126648694565280820125411881036694826524123785642694452820918291047891985949174280003474791883762589228126988994158189008739555940356748842056240135856548230637396103485129730862415968227472531495469535895610803848065863695721301645895907277114767902494368338581484985782738884001070154627302491379508737712150157910257429841560513344273852925018360798507325960005377264590408635943373649061314335235322354310767970341437885643143009243847979426123911107749185150667185571230824970949913358200299785845537014808861968782505717002878829605581586546200163458425527329027104688708505186069910644569495879945283691352543317971222185095652031303406824941770058925470262122073754545185822039591477288546818312933480714469626847929451113960392687982172564541228343920950752128335084905127573921376746602553558784237668581506311582275866816252331405228876000812336604021612108723554262254674838673611427966777233780689749040310746679669637280042583025468615274080082337388005179912190009371034865092487303499205341484754468282201538489970224388311535809166783386898278849701683245944859749506291623033768945296031788998452868128708190557348189780962283649643645547881086563507775869420329434868060491580712817853743758192036520913268300591679170431457684412043876449246771855329828410535557803659647724552288760585111323372565850341562603301369835812957703148206725622348797355623562947342875535584178668413282462662468482695850312795840907706265346222901267624171760462711223482756412782465660649838769445242667921929546787572600779221922515318149604911849333226849683471792475720852615404353761128958433766207925840126775610923582395581239945321083356196223662709792016576924758583844958941981862518009193229926853970894835277234323191589858611274777880384054061681978396679308043612878886852098446066546691126042224279391751104064347398495365956336398229834658523353440423240715602609440772641192812543960046497182303653921487812210551193753762934785893378776190441631055460215680494730335534422198722092383504820994737614259598126885167373310010766307896825818757733049179730614638141883079571754734034501904513815938088044973168831325540416637199732589202181833760840430485306128182762510123452018046633192108487998610358533404133237335334904183208120170622289686152175428230145651812232387705601915980113304480457111072462936728817956124749198147408696855901745416293307852873794654675445289134984225195991528891737080114908840910746154001960381838736975998046776119287869828744838479270803700978226255657165992929277771200400083564741919887021325638245186725439808173449595544870195405723979449173748108779550366434057778570477364106238613985317801807439567645511906314145663281513012468054396272582764286874004741350790179592569841388481474088454138500297343539177303882729913705125403127846636737418787284479406127165392556448601181446187582494502979578164911930096469728012718439566624803920643546442610392137662414594040676507518024324341154728070561951679139525283573499056260963249310341004581677217750598626159973978544107381236861497732120247218454069630031662650086159660374725669647440277477832357277017031169369112698060145883376744509233114882809194968380204178993225777233342172385096073560860118709085258404050282377681647013099713368576268796638013355669924376735258212769740500009691927672493439878862647950941630691129271042181019879609151991376385695431764379304846102955396519848648218904241055793909613070206786609609098014731090448101212752518981998688175869766711687725676977883932727396073049666709409205494527787694277022595300621847566994213167430688590451961819624309196300777223548116835136926042412138746457495826970043286326973236626587155152812511468233304182018062773737937530349950843032506026989502175201748769462728081019036101496269052682996043574405027998510073396044573296491410488250141206211522637194734463093670070348480401204013205402553878590145112109149647864655863239052284980193897495857902453234029219521577172687755378781910141965335274468187878404644851475671673104478859794955414533909634269823875491580685539386946108445040233681538918700564078451643740518734795359741252958279886624501335867595673674927528152878153155967516429280773923975673803401593128490752529093413200932833275513642057801629798677405104746169887045537666568195282307242837763562990981451640492284626338337493714137251268611477007825955232356602814781555577041297007889643041224482340577238627389978988466469529957214728064063420645932663754648414133572686720386779970255428790530822291460511047272022949379514714576118117025760692240110547781053834823242703882566426043260292918455223472541480785251553024375615392787089091317256211219101426035027432911816497171979126865707367220027222873847112970269350025660419276755474723376244312390726326618926200781865939218688383187911521566689704103608571921969993060973537041857591421182365877602763323158255734656290060366516542604873110614609744330593914711543196087178692699503674261553303783201544860788326842822296952378619145931909873723395054917784054948260791917509227839501150240325500673943598722293718789586430571308741733765324731859317137063343956417283422556114890756313199749088498092183419611447787362378462347980063824801153789769358692275648129822674066673362478696992278153013407749351334048126458827799542874973728472555563537782609870112717856807000798421985616603082906066381771455805844780007329435485676889347982195730677910685490916802436677184897688133271125067373788275240325314630426469237493795450852103468068023514579357430588010849705555849537123835445041489895442503632653098053011672679633246864999269657873472646060816226122670431561859644020027835395908929465826124753177467536187295582866166070631660204988699865993259622440525020362081659489254427831161202963217618977826668483296204249106726203438886978341686896154436051650162922088593593400815062730863281606292035084194975935714469456742318631301566029952558988941982885467785437095969945476242092693677546251908448612359867813522657337896162769793720622998625814374609705794875349943185693068639000622739453319705618071325714924177504766178644076458866148491181291929503227813152892471109215995806147136579049464295980077864278311248141456576536361497169676806059688842571472209672126132469297074688014218328062051941683281806778989838689691951915589590462761660579807767787508660446540487625918074197654858174766741583309512613447008580426120313702066428261525688452718206996931759633704143687826847160120549752271214718941918678946120812400867393631745896637435677319861324543617838271894175642480341120757374914688377765152679904955454066316920239063499029091285601504147759026855171018624582445800814506984834033674835822028090459040051431225666184509447743191198285292406550018961133287546217123169104482759073217593174294769073574145762402886042039052023872316214409229613037697797458965751512882393321511205194478307191621260376514003618495766819814110574146881301136570562336053905062073111223245715483111637574071226299216649316360032596649238842539852914252002840569683347952776962526538695294693372411140363527935900317458421647932110517206015966713607519838688500581870918181463673432164203514600430651626526960005881361726019137406553081103411427700835548176128085412325091890703821510687321276394015440225242434830067651672234744637179357829650308162501805061008383478007326870188425586824466452974402628305848169298055500009513872300892576999440804087129837944070359224797071596289414353650956832641032209045280568410344573200377312438763672327361772666616292478136866700905694330675030091623561507090087192932892210473261652031060255305413062457690815672289538112295631960367709435382946576767342144692710809716437689424528242264638626021730123173713702725281584688086882860789801639241963836864226207003945068134777788834190901488021295186632436821094298054838069370953683187445866219669712794583692429480716410363983415700172770086744992327305815974593858180318738553938298397069137076839312956835103723908766385299050577565974447636623572935188677719089238413984053409162889310218261035716825439313163627058424156200315991726816715665182142410539452399639661700498796535601029976115368563810451388602629135179196391981347863969547671400307643069823884924485048723420975994335329352774804162913156838616604235815427869864093283670919305271010528165902063117997696785772101468165311921672733065612615481315828049002156724816510152527198110741455333773237211240512753338507544011299360118867011117063874617429306557451301593545504721134456647015359201143468407719928637885011236368913316375773163040399280779296718378268784985807607277965702853831179545860570186471332156900836302169118131568907053703693322881936097735444041801969990463821549850498842367246089215965112683828106588312547738669506858467985096191574916434075305480802647249290447880596618814241158570021646784514279180406998211867818898857388261113051300433835164037695692867798022234166997859698266239446868940622112872174220221085313922088222278239612746179540769091768925374853866429715743411262413557641683623903229694967585640685157199084872731050090320358970985610541058383035371365885297308539002865027599117684115003890864499117286668134076409809168252623855494523830525788849323958192172766053637132688546389183545914498488649890408099297641399529161445362549886653042100788752026250498482443329342724582604374408262370378090546379349020749810695890228003584557216113862218640540953769889381205331938680446714409456500785119408294490381409157042288712610120825284409051523937469065019253153626658529243358589554242786542989389147551707263343208574012378443876871695345863948924142976423979348155929974123549120273808567368847762133930472873470469354368172580326550038838653948554120460097018807004931452040313619970439916319947752146325847429671374024383815223847994387628179393584304051235514265347296257571632936439250975339362400396206758448141087411240145213103319984028875128534821870990822344522298548871184002561384592757621167868134813611510970816932622163494329190050505097305813151893027385944443371151626964204821540231701289368000677699100581946380838526606036086071906453693569920674752788900527052366674307079416175371855355141878521194086912567281282398700109143978743515706230487769310836609563298479512443577554146273138694776793891946112744991637418315355388415503540910511658881695323083675545949527309877854475521973763890323059277664429705175753928584158997985970151403610998107651087612949816192197063694029959205127806235943977566351698144883346819478523759937957512660000240855071441247193186970192448074312942245254198605156115618256246744162214657923751730518188624241836774416072072486533969738994068692023499669435367363914866986334242431198705463761157900326493597468649799724264615525963751546799589203142122253983790782083101129984659381523202992984681169590174283150096572504022572243596606998633575206617038197170215550175559988249209175949956911344611822977938630163449137362842762515979599377825997121018833569001957984933352145444401964175324750027875246351493273664398147756738961673955525711761269894696348719726948739975456865642777696086740019742949990190849298887995817012739295947181987832357683440198880139018186670895098428126351715627671935749986721037463053448341065818449732827048538415602126633833068965636986439955117677218736886462583638449138985045843006381634187089238898037070716931273579573717108247697188414994528376072948279771533532855877895078809073523707941342481035908430230555316745531060147196178544713500581530165161496695965285683188137867617232309534858841086713779856368910258277623430174296074184907884545845858031068900365650960341892413082422924886021873722266523392715358574884945361691810333033413359985739688695317503461721286889720830106582384576135689929584203364020100447485468285126432161364351132702477583208781647977495726743922909580832118051000999182439183858778543096754157569911464416015027477796253749528490965423913423536100192423989870982866963912131161870405545446394776338463539633177753927684667342861621233068342299988766615961224557409254325824065302515249265482350178781026040991725590808430130475669270108421939130492503822443677427801051470413699916955566901374576976225202567101541467230666224860820811904676597511301264431617254952084416186447682627356400136965763071805999395362334147545038537555242181179158461872688075591770015051745349132893793749637809629824894846942499294343334561328281840636913346862285388275875450367751883088938989376891109765317867674719549773130836833965137488198940290757468500385796567879801931297129103876773618021163264874341119986003601382391739965931230178173461414484030925608457226449121000514570507393346608711203010178780830511789416620801829775062612401744345662422871411189139368604136631837368537510931611607719257173960266066903986627825877529189209828812359845857634435123602850724760999212091492204548314635950921406253267329574580521450776791750164058407941549629057085177115212151645430163920068048847991289933013869628513642143535345534570166387757729296464699040068685244714339327265876375180391939098249447981614425382752781434589476813861626829330510499693623870604397566428485285311829540952565488539160539803913927546897254585320683841543349960607825078662777616861210421236431100141709837244766618102783352706825719488834919611358518494195065162190444769223463109485894999139455639102479702982449800738530349297299820589985719079183702585387772132804458150948882418876154145925510657708167721873306708183198405028486374199990391500761747184046860374108273135815262624078028310254929136852853308473242812203138206120520224900359435211900065803544101708282116886614628033756372935308960984765350448179777584768807158540955442942776612951641451335322451624916850182844303851907992206180153512899012068508227051781203928537721910024797507680259060231767009655462515548267805897339670085426976243299843210526869591683272699225167818487213274872660393009248437468814410708867302694785939697730046367906910837139651484661469758612248405369511161218982820664871885225521725626239143365257185927665410905276366418896773971410872379571455350831407564188107989824321483691430444101916129426864038100988542630295647416690390761269557376050087622447091993861744764490854951329704160435371691306261989886577498683513933566708866776687937886388682932949264185553391068500257287523259133401863243008891477312971059001712396795889364763629076518262529628753233182461085344380952602589747590380869108915953178153662722809405847334991146641917022384557615665424665231198438351494729496183144383455441121070544618145576822038840206915443793723096046388597701154681289736120612943057252355108583918678563366627134997731875792178466713985083579250173652709331175761310048913030505115613703352248194549730045089754606572513588479630976222376168294441457615705950386629497005215656671774611583351698312600342165756555790674285900208188976791722308914837412194281881005231174322430981565023781547068936723348095359191636693078309912032169135732027378353746994436992901864290682520997791044260979884935630480197089942136948102906426943956318608129422364352413418178945714340722517111423691428669945571812852744534049894247813247141031708116424824216521106663513759338528873399244495043659034662275978093784238306045240557864314321473059735219431965485978791286553488884140968684253253147414722031384304380450718580233681502806610908195843549708317360246558197015447487191108889158658266756810306382637122029780689423826416744348823445284921572274371640829492187805019500130765630501417350246901586174555219042221959658167450029489780703813954190521205930553112318738417791124745023889384347427059169854458818616421800573599801649977179654824379361064118433209597064738783133962803602504699100596856461976727227914022017474686312884596162965908768160129549412321677543064286135778714618782985430149501699892176356339951630607403539510147238164832823178938154070741489279137483392143430299266303233635714628662772702929775447144258188968095516093203347613450604699364359711285368591329843083259982736664763787234314683671423717222354296202690745185832114365660977296935334312597262710303542050863407467994192000190853548092631853264124715141618847838918381894278809650772941995730053188156652344629875870380761049126520904574073888673211820086638713192690831236430746091917035668002342758221126518459155495024228877934903087904790039954613495001646565690170959839029031697131917120466842665913181412984897985640371621452754303574591060272087412746123048662130552246833048807272389590435326741194911905359961947420289698348572528824710388889595878138395000922212241625702364477244932150619080967139567005413973493368178987374358454269901623718789852848391396978063345806315580304941251100740647992977114936815068773849402879277815293802314882582435765390877479686340490821042632770573073224501573375065695928150205047672542098551171953170101164097589634332172507983177938391561937378034985331809549464471339715012282087787197163493574161856063978837823893140518372992477619947269704511222671037194073623338670259849380186240034280414574364295689814592567307951874157108000069662288574947481745455767204088608225730783077704682142092611636815697016095211755468743050864768925806292429828413444165136784480736242617155089542373031582533551181178139882201937822004141143481495339501585192168439817019027718372723338886217584654452978868619953699955289267777042262928509890795782544976648929750792017397565091415344015260705358763289789724430750526338487284975341002397421826187820550664694376610927427966928922985406614297676251811296685176711196504692324205317546286057022038572112140711998207034498363432817175284035356292009493978719345442436663439017042966715659603712586999334887273971914644969549847944589706621399935095800695137540544462102586574322940570993169403559451997627449027800008088050622116008917114903062268548470531680936220524285265533196813020906052895718354965500191649021880600989288241876121099874048686275453046197896238316492788452312113517295995781679850337266935071963906985752624244756385178629104757386542208313439637438047168242473635052689331749783993445064442326054422885849060841148808462669774609490511569246124402591686856178817208563097963531172734418047868757952534076558163598467235625699523806387467056686561811184686089189695085238035345717327057476037033048694769075822171162246686863048427645209912442792552418604319489284375706845519556556428804273751376637109876809966208869518821970723385213366708741086497703771865158041704528854272573815168806170181140383011648006746225390219841774996910867396327519436184594645327764705793335163246853856003232179973925797394707904095972677487344458296501813615837001673863193854279465081355436644374721087590934677287791427770918458359692800312078833433199353099897040742208846843369522263855007569316891056391728201394830943896017052603718663708573213413259428462509506677446276756144447399029312380288656018229978132554386201632446950558798118378813735429045404911082724772755977064520222815705395609469235750539060013230916607552289088877245973767814155640988255991731550084817596657610068941026342490352470886729007873295140140043049540632485531485867549431687629272387280881807330402769838971218584092340895726761695924295593238306802146931920908244876354858803458322778836546362673023555614084008710018708091995257823490407104660427070879953921226778021773698627000934307725833798947118040969274353071392428925936281273418449057983708970279941768558945380098437479448930161657842983293727780887287149514926163097114589465037121469091338189846600611831352006071317981988471478359229851795832181430933449677981894142679151471217271371353191704324217451205586141770576845314236076553573569422183445226228314890001999961215652952151745078618892164577719277783378934108199287478558238735542495709799523303724366870078476495121790461586495801771437492109432600876948667724122502914996547810208356636661125227567211674295869951826710572357001870988265778791507355655958594983400515399897657222185163515563348482779080201239460548516839761668290799871753300198584016554402471211542246694681558162055824067741938185106627721963240813622248123133720497652661123048110945473704150188707787275532483111431068991695895912485819908237692565504998756097596543664046614752658739622848395950075466285527427590617832424774540393536765486224201112482644328819684122834192821071415494877702477797267332590968574821614802613368729949393822825383178204885766751127650602884501535111608553548680181620014674210516805038965966344479387698944624578668906879414753517784341514852761679284336015195463374705391334772420661352119321234314420280757070287848042702454812274482046839703208399155153529197793243637021243625428036542859824328023445008991804428875172784836667719768823827388273233170386571285072046253374183584107960614786746560542482701224557484164552773640147071001431251563938014789865957040138540283559780226935259855933330326753108087035510168479174766825890603619131717549759903698536519072557333792358781940688794412277344334185772154268874118089939825459709519211798529843688950941999699985138957195069748312182128152321798129724869317474163069884828884386722914686156902469326764934008134769687483063253968415023797789199856675024426348940457495164029735505692421071675624944747677209386512751953496699683865031748203681907861791701883982790382348724188349067205216160984543140888073672435755825728372958572621141217235063554710436434288012438850234150205618998871177527786694944130708371175192601199885784618563730511435697404199427542653824937685923955970098518835131247165233947610981358349530978268037315149148605385882191454716969248207328062671923656756094090970080498597986424247397000196545423048440064986832294266854751397641319001981155257937127229403047135310396222362347277733347333322182947092683132308607764875303926298469716754485673960335393952852444455234963149869852542484440204550313152579921146927860045979272689504509418735675310761393645705618088466565933430517180242067081875421819579817163342570307800496580622276409482306740642780594285449655367507325126805039882173552715763117473161587572061664493363769934436388349552644883761004678251055863716884594226479341056556176823976269799085772550793938737209898821591734426405818773758013316973316073779188551973547770120915414686424860518715601487073661182560598383129676913126984335249540578374806637996854987795502520971056543337332579750494929896323728416462363486348800011863499622759187993553147179023497602926028537018982391899192942316952022936449565637598440168856016405747946047728107329960853440086348048651688066767609033728546789769436747171986727611548385199352974242992257665804836775684072904549268335350065545678943442947713445821276225609381322327969468128202440466196519313960374478289694519664202090053140875809594261542603170218078014719507726207290186617510351770417077055329552192253058079410598113475708779549096853285453175864576204931477348032439765893413948639895611897456581113831536308257501310915072902960058431255099918071624981004023448877573525914636957659167550028970402605255593589995884467140459004704013206836475620129215173447978566506724981448731839551391761923143873787286360764326855636672475928502485578489305524676601109380528260905806867735695240898803488181912161998748407034424909207262679070913160919796683701233472458322450934122077816592616604222190427099239325001401836215486071218714716619120375521365267453860651710398156046451034171280842763441371361725950496041516016072267623596657577827021184380009711677532363706677936536400019407262613812614755867223036182895451213730071045093850035544274674892022060455392494802348796572579982418101717742226955041685481761265105342433383576165531396336284245796733745289582187340805524546577326918883627972525319527162879802981705439864418497712133765721467964586330474537452135321479320940394314705427572341010352239604071726199438894101402135062291997931643984677854028761234900284408111198980923542591229986454139577956856371806055170766747012545501378063154261037674312126476400072082710917552812325718312331410789768790413568885872254942842574447129728204686323415193167189042445639056746455932790257906919819590505204445009917684943621370125269230347139819005915627083793929820661176586958568422347485031292429830014447056807100883850732050165592384226526932474075631953384341570392300202023360957276354062642964234124777878053807350567447351772825070160661097656591103007298169270492277714723617936937527132043078108534802658137418044791869283234580554945966602912120747250519472619506545920257203843481447383854866459709696896312149111469170638288984511704952803377168704425273560619889313647707728329468752934985557999887701905269289391169485094108181744118167020334104863794110309398288901888208801019155357193023712770089265414672269369786094685801706768641436509695266168906522754200223980143076053149257963601787774002748592498215287609174220994035716517506808927745229781725775830688801197916169456340009107945017040547131773616000068565761671783459457083637596663662205059696246737404611738560118953158376645695662389005071116022311353556711670225067675255427054978446465399593870935605974483741228029400203444249068258387287705918617606915480117834029698540484205811720169889765059889147016491800660311122220418098735765420400393314484030365154101831759145340549397386823829037460856091747075821770350883184258205895031256222869441431794219792304648003827937075781873224192540270895205720872565890302490259087128207867231445499841975001306832629248557302687760525857540806421402263711409788719229272350380704524878001974297776191776653364592728394905918480912996371472297809509541451434204564790916175105073011435651237875884683095231815441646593723906270391170447017784368395826576646300903569499548605363311274816839396327861797012013018744044027610766027645304590785236743519149136872529093441463637144237348178213238015296527222376944652833529407083192339019633925341065335167869287258643540679066658693543700901620477203616030212125682764100368304365608384816503854699215790898730667093487102628725198428083495754389463890965599167311019599634316862991496838549224374246738266744534238328964684731757535130722355043896565921118363117598412229080298983158258850790583084609255176484966783437630109584675564465928622517717911244571472675996161888884669648451019221805335586270248833815918411490576756975087118420750354168743297102451699286674983338827138844571993732216141871146998844717271702891813883834118061378086425038854599482053223583493158729254223272570304032914967607369047507775550105068652369032898445514243234337091620563985804280788282412620453113122823611779031880052282420495759234326461612123820716805576899425502883919039045843335786549118734595954875057347624812588051341679270320468128272761868790656980219435075822240200890577830531632020347898000886486900249630779976873884606696448102273821702938028231392267470145615117954362851277549259319267617919299866064764309721640187062140705259641879922000505156538752763702257169370599398950489584623895282634715674218100626806749830811696668617042214734455677248727758294190731165757425096675326510002294984505265137556654927056616847797827063176130436735669651070708100606131443997214387653639054743321309144589900747415998095195489508722641827160069130038429293868454880914113896733576995110778396246434094099263248906840765648221780074935575246391982444779094733141865878639481417232937979621479285242147477746536765800127246344852074618439202006033365385646175216221875604924657718082838473034073417159609680861311355736290283624451296489927632190573516103304056374999231365530714459446568184832849858881269709475853290732474770376746313164754471050582505909573242166084073123369862857307258134576280231961266178092804573238705528943009749863558991860337142312371258332717612134410239935986450047438342945459384952409220940893085160743049811384236388133551364767246547420406573639569367737791902421983655804881478058328965124590748031055827010457898596132632446650442055865870904145175837574399950838834603437197532307685850503688877489664353733015450217605239086523227635107812997826901238154042162330202542855753533437505058196245200546683341569494236978174842406060935812145260020367449788209719803614615969625391000428629918516741167549279847738995099616272896618499112249611237240090835268917630871780660796339454490134972786164742184074647017957922815523463260362049737538080502245766332434864556963200594818709847983182641839228822515770293393917674983194404007828289879018741910001217729250421039619870055269410783584576423996280188511935244923468546365580063038833855142311655722748906063581948270061253432110761527541157816913687005076698126702498212352720305197768893527859985118901373308686549007059038086552685178066705848316462982745384787554075718393307274411116676692225370619670921212976210614535346209967868751304280476766601311280300329899684650194795113049881221182929620102868026998580869931812575054935367808531699225432820965081532917870265185816282484599461271753416430706546891934771068118676542235179601908238909554833580749784573881627061926878753442878881358634822430211963805946512695880170028581556166172974642290420293082985199785943810477071726753763611011343349852267488151502944375457466077644772627630336069583231208310085740503894595056139932109005509363276777550394242734870038584589677125509377749428753014433050862225326159610632815249787264550628519441335775543297925748706476240477572719588654937016515031997313459368201024131386017859555533208723214353611516420429404687265142979628834778816951397906367591809579396714931477643870729981708345653260296276159078141868360933165480756804479666602099712196181516240805926408270814941198576764314222515079821696222859921336758106104038198751929933980651303084955107675674300407212862413244002636775795292079127075935428798362283691367692808575920675959444426334295808113964777988204229340589256797639349755518496178654113768980240053149734559921468422538627770401394433378644859590787904786700469561253785910043158585607552118700564528248611250348773067439904029856466250758526632629222272562695413826821357502917548370917090197336199148480578256919937825484908368496016383340202885468960407192563864292389109416423109166859350363230902240085001420316575349802239932456256159673360814951852798839451123777291335656762371566217713607603480423908858145325286282583600549713057232230315315999215017626023874467478471660846700948674611255160295695946438951954085240090927847077217457222752086934931526881808567213950390221160760977537809564116538908613025642948780665461441494936493590911758379488184759148500218429187576756614346596094056688853536364395493953154132557581932086056955354031473385740659195676487628164098424047275856290798668026190411040692050414977078282252653154086715348405617886888893468859284143056201396753596106017314453244319580867245373075231255664562103549117486615242515238681634199338726664797318074895855934128426859125173046735952331365067499506018329544445085965282855038818033853348925617935666872100691221462465306944350191976857732478463404002415977814637218880868301934208703236170585298606288385268528127558036316332522443311752667086766994578076301864124158454578819105890506580687411689100174149396420295868357120602380557432625467091065400940740320413928927928150156628067072491428859658439207797541986311388950027157440454045548159563910976962155711741052544712946275480372650533402776668352398511132896661270002472123858156402557683136033739877483707325598913745304568443441372509148008926316428679132199182572699727204655080653548952055267687139753535329574229072714361887042622416493401453193490095904841070424461091665216904824189452848496433804042598069286748855875364213566087436602949690190026119442502848906773236360640959026007573495338368144201405939422192203360724860801187909561655134048290716096298345425304149068493371624273293982563237213064375797562102075028178965446436395104371511817353042704346512764174871745949114406263917534613647881586010766926656370961828224038537320207950770797248461680541574791962721956624150688208241562541425561384393952289228810106002192439405243598785399709779870648191404614254984780976732085764045657070511094886893701826380589174076536544046856357077473432059502963676031336506648738744395302446764979055619223362132782466459031529712185060015978363927290569648521215508505239547777009511116888893431957788996927891516768225921506954095219325680440419287347301206957262652226369543167681445273331346698973546661560789846653337093894202423989270470720684069609386117630617319657154248596405040393518644453934476897309809132502283799990651392961906706364350674978331271352524099891475809764281669633856123709238601304296862336017565961530298782509025600676555765637468418942513255693984059859464285808399007216602398005143963538052464482353864396553024081295274771653489782840519315006239883174072441609519727565230776394288781461640548431584381791653501117519208999863190113637062420064266020207357254427566611971224252496134139559762450875938676779065573443077287384628526933190293876798379780119036848094173455203852123447539300395890040375667953839742734399844870844420816333299346037248946438571954712958702997721548919404042169819675061439518731860881420721145454026600221422517235412265731717138452223488413672813769453567431119621439630954025964152883651210292549942804937581388417811405075038640272060532250430421044936874510514696304504542862861293682251942337261874586490616340132169650398360907777975745655233468639633301540095701367104102032762419543099928739772887937554239625765250991309765103521707344233652669690736122428210571159992963686140221669930311410398537943666505122767506442007207314831620978160555502278048837219525382542774106030910506000741771451280498597901003048020639620783466770880118474741759674198058399861433933052442870358521968753651386843891723884837861609887549501601528872547204094709867042229635074760010453190127955280833759515027283797358237796701405815441124540166806287003483558206225299912501265870153052747980161099278817972867442378151278794274807264743505050404971980615089538009077183161793799813583212629405424692545686279770690968111816683407558626585888750289680111033291398556755521066997001336723676431409833109900148184981757373776939078031485037701945031338088399936665049917102205721115997038270630325063299797250689239185621714074285058727375151495525770051355774010398491825850150329088297151580092748948784655281051311774752321709374623473691771012405006196750798410112368182848259339079616089811847074011835584689915385177958112960138250145064460861427359276045420561837932772083977497649254367656340852742605155120752943912541010815944076633340291463437591252117938722465815580928059818657082912018921839901322917011842875844857833316965521152268245344962235953651375544261794190509730298013090334569866447730189199839668117242395314667220717019716705491629599396160314098077212429964667677050637397084915368524712788676247183912118294319755021134800274090347524901017020821834632719017571862836178019178082039403508788438418981402741552645926726340801773041113239910707843829051880645042957269789748660475878568746712515926605892465401942145308163930931459216196731713598155618753962514795377673895575745983808706078319113689257659225818874593663146045457798717744424673880169989888081538836170518308531501881787490226730868048612772611104169494586929184777369703735829381358296234580123630759108508825848791393102928654222490014468864920094451698879091916158219623702572312873971731027628830508699785175208689165144687728046163405711630546354046867868317352075466243746280073503942239013357052323505866003132522598546261294602334344996671872545983982444632903628541985793051392401277336209212140612686301290283755061532570684283010123568039697771836816881761920507871377753103928800828068946909259470991885960787643188853811762855654065135374925612306004673149118770865752960837642753717339975695788306701922461635096116516487676100785567330255064679232262150839398806163319704952210670319831887026207552404479222577760185912831343125376777785101858320088427235505838133952471670508124390588205802239045560898063939575339175642992695110804458867062838877169810679318946019817145074074217071284734568449319770044866868695847731098043287914999416941253430882314202040596504706141666651564564857900417362656069276848330487196521983903667051317729758008286524312526173758097771358187986641301153857762769581624123237723756647408538330019038676716251430067250024963694363276358190779393703193666351801963703903244450528437451867651880300257636431007742765797563016692361683668257055522777935996585040411999828868075967824409686655776704589402757692902912803551013989895886811404234355787705760860597155435062678302445404561185760904898947350663961556830944542112432767394496452408694000292110170683235299788895559771503634835507505050708862592015703124290101292113233824762930122907693318628441983937352921388155103153791367369037324657441205606296298403808601647535570421847910934821001481379818437610603217826247567097429575449444311980219726490503386760898573280478381418213020569919822727126577818149714683409351261399758736289147443838253185716696441638192982851608234335436853602845091284710927876514435835294047356525783176615458634670899026263272483207332851646840974188621787181100360252357071844403338589732782636176801465263308175464731728525461556687427294140930857763184368033618818890723538834011863583444755687420221496849641824256004769322569188588782463355826266899909782487043586682701963639260327818779982323828364004617632836613981325091794049962144447882267183149433389740262777522342026152255147507205000806510794952545082494131394635081107295850215545967955641487785690731379923857867010328322269159862350495217778757376715681940182721245015706245840796256519519396346344703939267379116279180572298630011799665681485259557155621663731258799777708688068419729096987122040262547172949101117341213980072521838138907866628921773927241806822680755851830056989681116544771492996849759331089577474339097584132242103810978447555174004453829618955948831252191470961755089460147652124625684616507544294809887089116988008066528915473809793789642491635203466955420286262035490039043346546257480646818253251471066725463637156108516444319498315304933140140380691504115803003395921564792391466815774755412058845166917911057508398144217426192282073428372701765705506646752981004089780552050135935638072514638544157254066380463570907936980841080464750830763253484190704422942982534831373579247725531492913975473192407914584764648874334035386161076463818883091605343326304260369647082560343456978677462514149689040519057678136462590228785827418719456553145800257677321017940886791037840180733959063720397028090199129226353111392157572542230869500158129141282824826865932525445588543974376860303427954172552707388130638936541765374773423718637298194964964118654306120983848008879114121301019214273498094979106959485216275593987293114395973362399695879943179925330650906054174934473950082541479610484933742434923685764945582134231653427848809132653783228462442238230820354638878165735083646306272013722559841374801467646292823626063812500123487291591340914829213182905654118190666953301923820726874368909152126698258124621393606633245530829853429170188529266856160629662225861120757840366959630926930091531740326702378305360756765828256032066613475184305952835004901013819597320898916576290569899583908196314455984244025708672868126864302388777269996238069186074571656519703355755496522296455950362316791169458161285504242114097589048953146942458920569425983377557500346090109039998611695410453245942065024140363024090641497932426285669796571008756989261442066879331083480793238783314203792521300414516133338774234952369170679330666809233904266326348440175462175612014086892774003601797405408255718374000960658316360573319519269850689748561697287329674473941720319424059860691794280497713347981118026963603293594595579883693920953733556165956420789825432324995463372501805044911608401025670735903320438797138369722205133394297521758895301973914938432669959556533211194297366855021463823711722644793631361501947861798078825995942947204247129856100015225592911970210680397274943385412626807802614543962015682188859254700792014444468760072002168616615749155636274139072782508990938844319697065846971410871462976852124247653163315023239211895268022294761243347299054317245554662653200857169802659149866254679774271535735880206642816926107600964156030114409300899372975512140563609870312451533908512600375195161277262028101216186677827178696832457935137963974295796468070635325906890012912147726657228004744129343779772640569759336273401351942372969450703192480269720033653257708278951545948545892958512688331454749667493961554415526041183027791240178928372624914189784822832939483523249566143912575952530208157861107482206650926503184996057987428911030494711864759583114741233975024283926465536856820028013141547764934504805754649270652423751620510352371108243294092272473582836983997710697845454281286657413865160474306557935593871048995658191176378299709767818239493246638519616390995946919164839951124766289005551064054895379660986183888836179703032759906899848209255385926799028482143180581476738223771568137889517879495001630715567560388759455586246073454450681338031337396748444222762709329822135351936549465880000187658347316206724059237226157482616759855807699035696566166520626345539607760491982449676045180079852168932331946263559246822486560965684961838919471565545236777352023180178559914250053096406187854107616713350168529420901907388599675434885886057064269263230996599592334335773725457530705169842699311170157099997890162329821059785986122912237583914008392788779516665993970971995620868911991295085670803234988757580904742991460336825230303604838563832130701607624471643606165752467609848782796345464006259367699412042498249018858331635635810426746611235715978570479057324090601650490910568604892885298443078160246870080970881768112015156840570075995686355184825368368067829424042425470250656353962082414457851286235408202749544194817523026035776350575277117213253019301839104125204582923523085686353898217722656300489978286421316302747055904344932520643348740353010014074127292032232827884025086937008412993913071591834642737112842714387550946115177646657984839202103464228881111446705495839563755896235140480877840495734697885060009605025375857907516003494429450297367085828831102472609911545039488267244679116801273725601448818943500612050586091823315627823848365137446366616361645641718855795290945201104224933659880553491452857066012812578730815632702467520327778862641123633608940940760082082299538312579848228852585984196213000160146832729261572979770273892886335180699355001509840221891564773987950285086935321345391102790559642146940845745317943424992925239706740972353871689010442132558018115844044915054261130179301602262773744031811084437638407816647570969695231727711183159689228617648026615130089098308495203114638225770008085704349606958511288100898555891317708020989794332419658413329976539503787686738643264048657657696540090137339532729781308153788634125861775878134013785205561012480089851879164570057971091446456102989357942353333769790830677371666800980802301254312052015666022916823657807514925301027163147875885811052036578181750804951821210595702715718465166755250552041341593458255900388565904259840661916853784588256819174857813298110009651447933875440655408840261303281327079249476532862453961415235950517581758176542762754033496139766704639849934747437700531496206554682487184975483297015787496530817582843611407183128559911403516391242592533346205438506695377568807312360887233987614196342405772729094256137685951532525129070730594478823973186713678958055183326167544038592870898933732312192674457810916268936866396047905487328815095086285820990224046198109259219772973306568980197871593755784335872532481734871674738194276495915820832231847969289677101817341496362048501578694141596501659794177580753972306548287299182467129608966286765104941065446860400156155764114342178133057988190004300501928631870316915409993303486854749669858913104876537674889721155052336783962537051551215251529265907612532796458576874562986847703961146840857693006348255662506388154448506140074351491419863281020151650160930777143906577573321711920827411948263146299076725718463587341495153983410075574064709741674106969287046502127113599507720450308563620808252451417466501321362571990217224444777819664369886540324266266914242568979581516041115280704876870510938004475410084060978810373662315972536799292421937313440490356201927989359213801099357653664928329222941932340046813988717109266898135511848310386449856639604438265534093059106196748615229418454012623746571938565556160604862088882878191702018275608347147172955559134464120907433487244947117810419168294315355416053017921583106055341815029657165733402734785541941169476398241749065851451974699330331762556496742837699861284121756070412321025627014485701308831891822403969978847477523591345681909202994152155133946070448332640544932297494376910838859298937046968869297372520449115255327490178668399994824377481689156337624659132883889477730585773962823697707572571451899648336876029346343950382346500415251617000158460534673891843141585786767092787599542974942827356340267909637129871114851134725175678569769583058409942874734049878072584977362333025520245160078560608651936233991261197841953532486595122263004202938355933994078947693733322361403360799250303482683963648336911292038542190807354079719567160605847437273177932970401854455300904818859752056965151396805186004148336188710238063822071789179682423514118628948541226703866114960566961826399989287570828688037410112944099160345918761005519738666539982834069933160084669462926897506485077415135279520642880938920321329164662420174860957112799306541021507022911342893631955264663226815863013014329688581242486805264541834460363916990360157052210437000329330247521429121911535243202867158802476495354362234393035138650035652121459686114041864790202420655176167838684462608244946317048201400289551557377761409601257402536367009559229505899684647655014531190847110726599583090851986110842866461955884472539507743015445256034216324694771515210037341423527566147142939688760458926283217558681456504454189031798022632474074288270531444794590888072354268057980551710203128192375497669160482362086728226604410490554523713907603106425323159568401899344134232771884106000772332721307884233958355041279731143810704670696916830459933528120616927834757073446153344853469631633516816591288950544946560554037659475076647685139503916042309689654665619158361577317028853278033390574698726387414237911559382569458624516302946427626271836242107014831204775430920673525504052232870428108037887689737271452902761777780499805519713363701078879978347979561102286144069054445286384891153829908295716030752529067425089087738655276989663186263646014001708829003636074149469467004229980015181388387996789155236772767712192687924593970851292947798279495168997403109361900597224595499083553365698166842868407495019881612035127927605274049662698238495783905355224499682263664491731706615457291909727811152487100292053499177861796052637141956158748674270506603980921607977547009974688755839347844606837187325296531324174536487249114762663815191903911603804927009290391999080080635012575695530372639081083834490146546460119272351604351836387965086973895100752682211130525428763502103363423343883711460107241545504912962921767581160657927913027453332297944552727075248619871933319876898129697980421821991724707150053068879710788009604471129655928729880503256431070282054926781383884249786507956061622309227096853985017102690641133428465137583373190191335282158682265777931111007861823428903514848047308820524476261969649241649903572730947579468939622998930061464801279513357439895459512643655973924233107712450199947952480313299773067777249603902547191536140002122476433318051186061845647170327858044816593326379466944569021615102242440342309169941918032362497100422705242855867659740746828061283851451715579150106656047499400869024023914754806086882497003198876264089541823650731409866552488999517283708801138975009603345493487675209845434061611982627706283446580466089768547099024209040335105592963989263460253690583574055082908219726959559363931077685840340479994571808892741488334713381291530822452572224550288353604326043736274123349179911001161726163065782034688565386099688303192920369134539826915346957150320555524194322368203894518040988452180161004581641296139877019833020151535653066905949211967274164106246849230156115874705952173090023877121316810842479887972531536869294714426092948818279485907753584661837320274756649816685427314811470374608963924818868749906416867178048583735857370143700474344531724323753605504219563887609283671531954785420030062325797142025769307315058116758018689990983409211466206626359766244692564601011291308916632620547214416635594958530068112820977705168114101409513411284729564937928679362795995971577677806592297202640035685514964576797824840497089669930744435713280517064428039933192891049729729847703764185021419042374867435714188711710650565391185014491988375492056212248621941440922392489982818124549237238718246359889279542894510922215423993232076605084996018783043977617229838022881293928386624844307647261887975199719021945714895728886319484922701261480725678035972118251401915732660976677993167265743898351029402076989918436361700560832307310403985517336957557751329229158530251430260463704393719368844468067912705658718576773499815458744963150229767952580281659479263411596657491506766260100892926082291025827472084829577023433796494654886418797264636144245611528387274831110531733018171560542330649797223032524228943478072807181787074774953970801435146692830953194842201095524191484727002030722180274055932722598823427548250274372771113220182376416849215909433040376904306263731911118488714614170660355151080988233493449438672338352561615559094306910271204895968470793060168046501705266583722750020682728084366422562899422042147347683199960515806244817173333447098686490150784178272799513447633377055144878064066034255838240311151360860998806803094563304520069827536853273270326751967726016086848074762960134521856326829498315741301168668231890129619089338014163959620922115284195307733885235038768039861425628923340315860808796222468592909138965774610713548098737524343321630062076071414620958224123581944138751107523291517576610390121996022139869753086719568762647248868841811004900130552280006339465752981839346889544910915498203492296682887098806871474255387145265954488682201570395821586088928556035775361933083920747196322368957073603251777406817957156109976307391276587181441270956461733906603664850907955419563791358471669997207333927500915760849513905424569793820814885697860384075362089185509210445169446808566128983342344840318662191547026908759750304186642430692137422168587422263655577219421921042414027668354348347058822242453735611015415162521777517684631755901849873789627127290897725057017562071011477662149530432123495720761090375997549739534716635052057346762274004749149830662585168048670496773838825589052627439123405468246703703377664039498217878584028932909085483990324612098238612900390586053573464043910649071329451015685308591079315941073753951381499673777369149662114101128647374264474114220516369561056062293570095068220020539693725552665615561680459324225239205118861194907277255325545532093852871034217558475653089587510082827397303915875194641477533315853046736973955077282881071355662779487844137957681514913173999878338251536098045463530758289981810072089488668907252561117410603323653351581829166880694309789365758176200778018702772684787461042746107495894430278313345106881409339330452211911699327959995039882013769336889750072477632423053955898482207237805794288457352014794177751508886041670844933013444312745332478620340138450285756872150362675465067340658712481218369270770366371172296507332150972755000937883185043267160403483636280447549636399940963350398125839720516063882593228567075167507075822675470184420233705591743718270734275089702470345399556931330147247010387171104013220511012756390612728795919417908110968741652398288093106479434578256030449840312924932245014954981516281030875033382792549350729983850902579903140623890813811102824531475762871070197161889371022231130692358314810448841837380999158763221485175540868280556600736878913050022707477132220949617986364733282822813202915038341572409654385964967098000318150797464434521641247534644314979053332264488463910139562581152512888249835914126204671329827669900334438832938219463192629180035356623637819873581509489023068115974993645405909520625697650995007012065972147941188963857795186198288428507026597097440093537620509359914364489715482976170580046240028682756467995196969518984527472865071567935278550175015441781554530882697429191591101227444067310060362938130296099924477569459347042631845773586878619133572962489169048550418862123696083116447270770447387334690600860726789279563841857837684439934428583197544948515518924011718356838226339335975114876344066104714796396814874717380493798743520906601240609753802150081177068229899035551443694929958892742178575415456540660473576139449511391659417657790668371327513350919315100635815669947691920900680374596998816461706958415172643176645930186574195366619743291405126849536717008452999571233868134014963249100184555305158302911943862634849049238444639215069182895693820772042927445212597644903024154830119129673449814700112001545669238107437668009055341859418361111732710017053799886527397702947352707586730098722724900453413482332744093625315521822424372522039325710360563564594536788459860266398138699480831098234941252724273436609279137108942812295843321813782127974904018506262434637389999930249911032017762593675770079791783466133879705423095095575211817837975856131368994516366663794832372812857229265107117465397106794032770575854542457572951771398711121450491446654628710672051099049743970122357286389820662150836192309110946136054106407539495193799941735678595188664071872859796540230760968537613680216923259634237567229950987901182483578175423094511894887846779149780893067419646412108402017154668739960355882617266727265875075410938619984129854980955371479816560583570087227346159906981153131447758753322580933794449646963490152628301960987104455607572799974425573394169824473757638705471733229880461732063014633216411248334617901037727365149833805880154248964623583416148226549934407936619783757893837804565473982981551886424988534206243656908853532228013036405875381412664640632789890154846450443756809645135446251948726086132229897113553996950671965144736947896356538671541190941436425402051741870962459861096083727678336411477326106861836783124612134141082173323207033807792024722861227471476532537883350747508544259803747857340652001342905477570978094086483134099029313372322984120698003474893298016003679991301094545362011232841698195185964879212769763210967588112194243315166050680587318865771984722437258415808655933357199841660921075075068354741720171055939108149557471238201231670173318944823595245877610358685711189663737879262621810133659192563052734684873191274106470799288374793495055154477324160681888063132581487461251197811243516732862567752277807495547428478319636154161056227533301518824690115950190152887716338165645566890727088409414335284346565429442577879006982337859704022261831775837848017167790070729167813510215469579477122447459307689119884134914731202900793894906481219833856689519315728077183187567383406474124276680109722192523706562408653504350362092510700019325719776834853461018174999780672679348681019382497030972552640212172399728613521229903797846454257635927570014704057000274067271054723662396218715376425071318450901831356490979131243791578166534966714689555696496268268116505946375798795484567444963979921552097440213371360686415404993568441835171297658011215436313395086525256135373437094903506741070697625387866637428937376410013627674292886058394986047353426196472128697949401996997417396274295777400354325598350057831864148287881773465696755703237134311124883984493725327203381554086514265693186467623076117796771984409516060946484074657620157856147475275237268128067836552595981146991196939999023927963831600274585782114659128998996872524011946420813826860256215400243069913189981667490455818818696019638071348135087343859058194362520209052275230777135856139310753503748904438667340219440762110731026210750078392864241303316924085577970547558847591526598273960221164119953209164379654156728951065929373439832790122373037186559086691853879107062361628053424678001811465731010632921018234772019835211950017497323204674431527905630642815699936864618446002870033608792339052557681059274184318928454882441322743033483867449398880870998440409239648537029820184778586703481938775311633910851449730535024260910181985105261181916546245095894765621153796862472040116617572588101865271226981465634426050659304919972337908243779038529744826951165108994105681535861683821156351838565234317086528246629094358438414720278430883188451590992576142437111652590695780493454163986238494883056380618243200873331082596607281730812154924084694182529343636277238718509186449565584750794587420548326000360121368712488864633856555485414438641090178520472198298531336315729583261934204971703491400815258412172199007502161324147033968688294682084584062601845743539899248594351446701997149340612597329130100782991762077311142963950116601686974157032796291122371231998210417124609047265841280573833776442220779338255529306337471024400705043737001737351159175428566242675542893156019876662349263783413982659064115893243500465525127481459351855719797959780043285645250007956932427354844206016885065679840523086322553306117863516027050598461571822371258626320639252586299421170046378066554279709131378782778265011609783558901436708618160930551316987283150799368283527375491706301768515084390564075776252368926134474327714538758508956519723660587894257943369035050648551766030390073071110552135778570784758636959845596020866372467485080751257921125386265645672128202367150220486232648339111089894621726885081188688953284664277885065089612923210818753686583536516331412485558047510868555431342675189691405395051154618408663433837669875109607886371646132034546907365479882925746648569308593978976875898069768886021278602307179521892734232194318971164609419643292322321342536352564476990284617759674289627189709658081807032470925659920629436817731717063094215041160630458525276271343454769572947533590608019456090500039495890304516758300618440201685970962122092899489649817935867158604711027124758793268497581747178707171484827993627074064552559850596748295907597303642292247789814541958318070475763101916966647851226828340656205386170593678645594275939988240287784011984083918474933053990396275381798583402714610326281018016024571030060431999186344713841025374713276342867094556027934348534860379912712318338946092936453087374428036231035599931094917384710782153363882244498029195158253335829517220496017157957004315247897573434252982929292982130711073835229721791192119032136269080572095510471990989307966654065735609299062726556385797434218542701091241355727070926935484925102700103009159578137762713721208552532823449641115361536650324262532404473759281437528538715202086566113361646525470281530300843575246084887222326042738235265347348873080826563515077874141389145682923143515539586862778820380849471990573371616920674439008269050747581291103640720602895336021651983579563445894939117359683784074971558651349890434012349099651305696207188598934032536738029934940414414116115169532513714095987744969958237637477813177864938135489436794524011288061858360194278848227441725283637304192379472771701472445799389226943644464775157165962347975380529861670049109241563593906197767981265347367437691219287814433654840477059113690311656264362535743462214764384182446685369945626825755512784449398842796644373502230204127234593179702110595563397584554599799189939262971751290196523578189999339551150059633875092064653263646945209453784970360796313248896552892145259503597087158618460746048962022652696526008181872060916037138484077484300474293764522431094788250488018028549430225972399927802655044428844005269854880584490228141310708059501443506242528699926892602124628265291642155786234894989264961353118250885696774105509846023571050442832019125750162612520733567824466544386467955215177110459607586607984583419321429650119811247762912748792988977782846517646431108089860454617685889146389996454704069620197568879926985425952148850088178543318816864556104277027515430579154384984354241172638257327141564434511739189012843755651996851933736818682573498828022813125078502083870780506178337109282481915108725722304492452610912076178040757224795705277701289052250877823958406067231136976903406216363985840833155170680604341754487514841380178306570750657640196863384694782205947836034562456403421380219640562962231234458062843898291536349245467023148200202454318114414283055426172061727547505604068912220387815383419189407844594249656893320016228715436268631542151874523390108946584404526795950769613994054227224077909017225440401151854588599254814107456759465831882735119037530332330306940710588914986183289222576857684102982030674525352328700356932679801029829888354056140163282999644952978046795207702747239792836809697155618276428625968500403568513207687159566127481051069909551823474600683260620733315038967986836966098182096219995948697640361693811011606098566204551100805263623672763664445239897986988997991166524075671180248760309845603764563496651067469810073910730542983113368615100832403821637369480677579707369499163364139370460504183634193011307363528604115487822461195922334278128579023128155385024454369471880556720015905348968437434136748028066260360999161885534488018746274184220861578816417010802484489299007302992668579566754552423732886477788460037819726569026418529192532100637101026824475552396593030739477249546198893045698003256574250479746146858333369713901564496689452690395216068913278290411729721768715486895765615210532989547329890333807796471478251746495597515645888476275655483504425198174333984604936049193190685944386502303844659887188644303243393964469599828484004687680261665816670633019268234716325188338484406790617023535286797361539696370289461406090962046901192296527128014907790686786519024562101842023344788824798709124727858980695662173650870303419246735365331747060276376000934042075633019396101810453517083602206697028199591340761256841607666645648314068941409069211890685732142480967946142422264837222394712525597363138765307212211435081688800880853322845430254769385452531934981592417799722509085755597363244771244896058343918242452673673300092664420710758652232557780457718908788834744866935407286989506715147324959672196744657422163389599404327796979064991647299000896431726561900180975433284886946944128784454767357813950630043736801616034517725008784254604277750264213620910264803620310703586267507706371668942734799542922102479185747021591638149495448715906777387293794293313892973974132118460782658541405177384241863718819823220070699849619067770707140167961816433089241385428732347470910736230339824556710579564291708863256450115947898567890097249602203861617942488689728730963515036805585182128604671752507788272998130830481673050904687552483404623670886091280847798654578257771547206526022724814770230548874397662914496878001540109073702841972232031634166346980774804932985191490806931859279575215547851430754653126607914175079060844611109703171448523778264177455107214206108059334808114047882318754985228932933879188431850699559913329862717553556326576074256836722864975483227867680094240785370780541262722771597608474873963259505654138734801027670985487732727863428389359643352508046240544627083541697304343176410563226272761794139201450851650382745038037770116003126990642238750314465049896988885680182387406309313519363742901760841765290575851090975186083226398763755411172830883100875110797625277267847359435308522851020549645846243436665268598673178583185262293906873112700541285781690773187257509068209128569810035718310192906729817104053547291256203333156896421191306973936444708635696709001620019969012661323969536586724923620988955168796983813124914080739612817564354152289917659716385859630762151778960218856587876140892943835768561793009688987828754488888272252020956955494765027893423585321830124447213038010144604323835885384042400034517107195187512509363130254794864939723719237937398712399591338624878956647631471175572384914228104047316490295607403304210898066413245991395753524456240510873082704010532988150538610738891997821204746555114373148636006888229881406666222712124438150594022237831412008086552462014056593817571318985704203569418995024063508078299553350026254269363536483094159456714064178954950461993559614293938805346164327481866534604278002721459011534448507514801246084461123487568679420255479712579392802116046290553381421585137698382411349682494656693958689600204213660098910363174811261628910597609220626000411201787501839905131935492013101052665317656361311672118224339916019335107189245621607645943220671878142465602475462505742357822330947897385429543332435079465499477971555222679175177491124284798031112634352137087258494106140200344650690993241798372759776452789105103436288660447501282500692554964657450983719092239961129305602220644994116675016195517746471255074423724852747823548213776526506855682632515687055947130887101287580397945820818076638875583903687623408473559281438094202816750566583034747966806974240699450924214277881292826962714121297802127851363989010785978636994492038440694943039893718446822417067469406385083543816260040232756831870137427525862257255340680014484493316439775691877082120990269828758121403482982931156798970333868611625767314110761748254071423806388643257007582462850896919793350625841619982214416826367492837461307121117935357575669280438079007737767622064977200063555783444979125844515791753711848431057064070074878975697166532793014134295930601814290418623692227901305059626277169751629025777726389772022363479191152887679112464783718668542671734731884230409462301235396302121109373522938748978279993021623595676730399039306658389305823102868854787186319147542497451672665146854940420999574967046755386150212245502941709864621602393180706193887215713308315717872858844189723498252369457587013969431805247583819394316276825160739211845546464175104149993266485417487461345812734467998344906669958222786143120637974917045387499969680420051009198356722465901498537011908565217495475596219439338435910001496218887293358843897418475310115841198657160711590041714584482809648493577402191745238097718426076838977918473327604268414013706174227593399133471899381496981604501391244446735695246062230728675617679223147974631779897512444605326019832431076623536526552602190127836475780508532602319510723258076647325091199827550340941091563660197878592474205086825395778769206621663745455540764823428909893505061383074625286078395890763491360959255383802792472591019967115390795391298834591206769170801999252206214067428235542148019125922298986116144274345172846551447412615150474866139864570446028241842663447125883595460171486495611639092540544227655140357476991701476998840854487092178106331601852245829807747393470318091848976131741076607378567258059404624957694478905975392189018881784162841941050852570219239496219551662651722354085221802571748478787787439294603166180976992826762388339334492117716066316139168461445493821614820577857069361640234129878384786903665743585120022500779873254671487158601409675081588377687600494842779929360470099768503237335178204447506696775643870564945738568775482220120797905225540250032609832394510698073810639234682085225267222427126319918468103219283293217038088501107772786995032371600765239870453605420301037782298776880263195635826025372200646920563860388694039818781152746076245288881665242277275121516208820635178635609774483091942961784575473091366604970782198341343958454610034832971477197592049671733839649170562163510598240569843782554475106095753407199549182848171115481862750529441243014106241474879795460727845314212026529509996919588195916221657916603109639629675207517070360515490583351625583062418506353331952989124279804977269337495076728091379887135654831823536764926618200245184706060622253798712470358006146044291439123460897257075388062803361932099528853230466292635951641762079666542151801026330684103881556394612898777471488814681097514618715992608806405439756461005618250586091385575619622677664871205401149834312689373189976463407543683422638263905715822536124683796118438726924448255816437371923752045803912894516172605095256947692369444479940539339216603245321190037032599842092538930306205526607394979445696478998265700503641568727718665610231787048980469087180859273395543251100567136524395216387594916675736271074098838226355635926394650437026143281384766656850658773570914069734847883001835499102700458136910441786291141977312232448586415434501100394439536764630754514924410843007061968051969407165066614920194120951149170006606055701642968081037771871283767828735160783382465578584389618165766902050929618086759454611486751775641911215978805637697931469860026832788858865937836606597092324709890870546865371011507248401040687139384345776978275106097079210898472739915168078216096912559050087692712839303033340588887065334271314922816849146981966382745494330111818514835841914203228468130218008552323292395852133902048927805033505596744085729810388832307410229759838197329335039106683881268526852552548405880837386335132980360917188840982997322148866563124380744130711210048446365571485455124013082911748069297501136546702738670278358231034292904826453765890900595704023762939747766049545905233146770637222321428158348255488213852029467874087487524065211091484696205371252298284984248158978501021976092363764353805467994187428626892977188924619328637413316779207989762761074110852637636331183238552995963898913161217356505752660044477447341660581153874147015480364295487627613141476131357924064798209942833440324981625336982409537998647001093301062868218092907169020624395238193232980994002548032337323040045910144263466232895921967975455019978974065251416935080721694542900409826965771049719532359837755070937741809003575306250170741406652996492258749190560203415550569640401781723399756649978494213794248392085050372263765829956974881666354095280646518678117158863689555978627896628829203720147459394391488531124650726685667677095440797848401894065200768355366558531689890909792858563200794922426204842192686206723828699871567638700088697578868641059845650211990440491351448740295405902925648901880555630294587188936113345541763894113232264152784732054168455392036310609197166747981904894237131584664424154098277042069911961407907018734623343371735149767268405659311281877702209263082805461915502122153138473020276935766301470650447796086294941249522957842454852789455654122272201894946837830488324768120776884740831133005888759617040961230012587826064049668781583071787815924827284552009444998377093872166825549347581374921977302165490583595470549829782750547167308472842277852396514195760615500893009532835503962299854597603236536222398550333163066530882872833959581394155585973273226034245617053322367837957630367435181441198112046046872698294359408354768339631815084297043396641541514077540832897439385375706664568774993603712641519232724447555246419227275720261321320727561832425283461792863177381130588616094203232466763967326405484487050463557324546878420928399381945484486729211932248846351847797571108211188174157026790895267689445640959687610841441622657350120976465780049447598528549040928849762008836014421289890217830820118753150650879711505723566789859412572980862428651310225093003739138037821534585958300827381713444746959962062752693624818719434061589300950387212571364346576474801285796738477412414430487495490929755968267296212808828887307771463072461099382234710225476292500667719264696111445138824297534907356329852635176104197638583944724843594007931536383169167011804263595295315544540975711552709383614336876757302309134294490677191650441556302869460141674316171695678352693591285848225360512944809371152114651584671123251625783607447287414034940379070105658023571168981514531339900587271468889505346927251338786142514973662974408413006914216376461536952836526453490811594568774906387871352032781461649054271953707577758859489863492043636793340787579887422315087894861297812671050453654278770714111379181824423930150932154409186497331772781059777930286449508979363905079354905608582438842287092325068391046120423499934573296311473522171473777242338690188576641104780512828531680279905749798395859883136923896688995593177801340235107171565222917296285552148429805435794294317884676100374989934187076905208084764918628118725920972757403525473061103190911593545390356210865571473162827243964514499564193265122528101715434105737331953430487651598936291877480889691251946917551184151632246052318375108745445422254427332138467185637812541066276629922534228239058516463837139767828162626710175181912730457805488047887665455824416127776664706604292157892830031346451392879498718316260345665309411315757882359620338153108284334072769915411224400427967689642170872708807414421830950933404704204466939943054566924688339969529637731092266960105830361553276325310791684239837374654823812110481492705725588899068338071749564775311251849588381540340875518003420016505328065807390712903248391090224617385877498425471644992218186117423443253674942372928180415962029386886487357005636293517179175925719763342958461334287036634669069091529248026263231595903644804238560456855464929485084161573971047526115943505795887286483369325913629220729270918773464965081053660829242845713831565274965247421609109242136049426303541452585272901231588556328719382933348909123384203425896979420551965792622395441623075259960524503567951351712931203827266123782853573504482195472567119110347624017633800805642574722089070338571372772077766257108565627565176921537791148237844731946556910306689359686658320609869941346165928679520465679978892176890177872139489111976361524578959283554980989818695881819349106891433566293752496260462546378022791970317414102281247861721301959460812354385785138051468188820340407515826226837456600558285783409406708278990468050493631842760470991237403651747176861030887403587561102688196787462010354544575607279305928145850873413823284928220349614304038115817432855843289063487308018204280206054192780542053352224888826258790291784078254327506235612975435346621402182575073786713948067887444392069857487403390313275239714394578774047988431559737795558287128727762985965314064510697284457587030517794699265470615201698179035123662893980761251516762671509934875522020621076331926853538015764195610191312839541637239177761294582740962204919527797843293557063973708832882347797654592878839655728572347059434410703926763424601776812462494612450576559087602080285709055561909790252184667492884022878831354702384110613822420358774292986725341899952937816789057893286207711643222116707184939609619862133666317958868247906348225144210645286253763873673545086708347550323105410991304350016118780040108119066443052759829417581394234882438645598200189866524813027074803295464713542778870136925887009087361711674465650616438632200945389011692889531007695032856619007800139781083039457844087297615889279151914707600825287292953947707310565368516389748116428815721766550581788132695908349571450422310135412929622074846625361425049449059265354089709806312679454801931652661276559693285737875442439758684434671541509061515555631544586223100209041125677305649941444866490259324404199362313555343913268049305481182551083542318018784733019984176791674879892858688915990777828310541380935157086227059828328242967504148756749527011552268940619798967232938178436852930209174327930963181006453521672285658961596366738985076741646466859198968796497581502204261373233464273956594554941695437543792317145830469157716266544300961375915125503768832255642809061238516518182614733376086049496734521338484407157296321711791960975459452553859847706983462612629028096784538365785614221755985227973132641430210697867483289749119717588344054508321398714870490695839496353658949629548811321129406822837477284365622982741486652357748874587613275133246449856567163284862031100136033499692217417797761547105777383118040926293987609372358158132514130922627710875625075345802627605889494570276397106572794611045606619514200691739808612306266833352731556372917220403581609756207737770057268374570235741610731335865845664140635027878665447811327921912602166755747600804554985975246184545833251937134757087464803039911111028441922254931290812639015207420075095796873426185193140480967208322701419764185656092345345613442285393531381036532335665548623072004615546649925187831650190952941102758220805958663097317782230911450190739280700377095396578081549036453661828679456752329502355063630995345338111101754817570469069596601242890774576505469095474738910195102359960891739632244374795576166922121396589038210764534051822508500378357350963254190317448367621992019039453398901160893042774693692526835780266548574672571838725030397754746456504074765971399518332609306949998826173115975984776241032175201828031912400346086792666250428957476717331845582376271173526227829189154723644932992905642378397617092746074791383049888306806669602179461191089144531046253628090988705850369495270370116091500284727088453559871720738947189960682864777723748639543974805758696950552703192167221777675949723260099361228874888550303866463489126680349853587510761645979933317443390754469533869116858272037540933709354675066842658580626259355968335318964324906895773480270698181869787653181478185491926936522589558847108208409178935830620016918425332332608041104121966449699993908072046309519950951797369546788397682390340711122850199720893871411215503925977667511371054633131143919334891063210777187871655218305239768694805310858751931213830109157322435884664606049329790246028551818518585370662006683427924194354084720816287344828693008505748607641179265681761164078520987132353715303617374992445957728219270891282521739705743846364379490694142353286501882231856835955458782774789449097106668985581863095602003893320796058573523998884905334418234130697546129883792189246103946987227189093944966842437490394222952268910762067762619458212735139557463243139620498699949412660963487944833217177234019065760626061838837717575671469577901122623999306907480390367591507590447651708404954943251150926291663224776535304665237342228128937631428631869827938727098736682657016110109215034025111957686410807960156421983645408817856867011694979003093115628323009944528273120155486716042578623523874635796265199086261405851388140449852152654116789706209117290710385360220002174932784055362837696014261403670970500997653302687193415012782055264451107603073967434440392307688046833353372980610121565668356201781115276216589142781243325393568795747059730224259255579968500878136348617104022392108488602297302636846089610918161451395635577964109423003371092757704723317244492828084284263194445424683691593658203910926163939017539864605717665441334334043839869496132490504540713743954984344111371496277685380882927477781213797861705650409686294289679072862879783752413857961860860239945060675760392986734120160801500284258826876333785215484690282295324595797492417699777761436814359309378092492253222350826449490678776885974267279216156481266030788435572471374910597676565407378187246502306557396617744331174400209894307300089554250149341329250647326319363849831605801920708029352960908521244460569287145858499636465907666505021529058830194428257644737269705585222478646953336375221754667850325904071498961758967790753245693690415741388882461421345424155704758747666062453254516812026128005007180923859154495114735216318231786157494016888533925293180675996116363171932024653986874953699631519519029273853249585744901137395089814927396861223725953956728952286461250097652033466951807412110668023842374366181998680647238816574824727827588287282949938900653790911795841577914124081768889822025310495530326225654380761208614028314283153765926853369098490714755881887532824649286957224030487620837267189510084463344842888010068198790533120474431270051630598994110228803229476983879515918035173030627076006898385629323674902002006047369440294877060381150215165618468884840015518250798011162348136561406694491130867475945388594641252677919627313476298099288808078645340383744971137086272389725981143683137466475182106110925965012269096190467128751733006626084918759296186175194367695000444832653699394670894990847398214116859874635119558389786300980223681542307391511445575107747013869285781849473016591450191491879130243936432104178052961375516500871147276586439670341644941974165446484277409718479619158513943461680223165433698918013328494999308605287185072117502944705087117615342807602556929284804816248861301936228142870701008151643244625260266562645134377703406423622079377887960945375708606582339496776123143697642073586784227485767276335531003576152342709322701585020659422688115504671893957935697482317987568596104263614018800051800800574100801042093935109714385340881342600996062490141094431750034790084434468496566810225924375840194995315908369716236779658012685040599739411086113423061554230798177645209523044977318486634643876352898424559499399810449282314750108851645624722807623946053991215917060834936993091867384778289840886316647533279572327844143549381460839576371906937104671521507951141817152267698112108489194106805694475738793794335809573731865227219045542310698016012727427296018415586336896187624610474607469928694145612047455303905713581540234790335623831198932299264083202882898734299006390210653497529476386306558322635693286567781377487851053027845551753205445032150052562991524101693583578434744418376342972565173169246978617851996096910666016343743543255084260541109665846768015972254639099107751080550793361861080715342385793646775719236683206688837220430560155078835693205553728006426717082205759562590675445683779987426291847955736983093337341398183396904664404604842750009202772393598897640345107968777033038655021384570902767101373695286174965907584983649925064209869277564333010961044927754757585392736128709487854472298322093493948270541063637034930823871353943703213550881903704246054285844216850919427631607126067532318565379391372551941562535039781668366293843271902894389680878303621900937297327479963426675779457056609879224478432448485483505328233482276929267452775673512857979517123435296218164630102570122340463002289545582635149710089542251888576551192787055655725427604016855262210398028469673816205360574655714774960339015172687751619518048360203968288195189159933802529946863766962036146884730669689069262048487905834789856959180772012895572050600108136023871538143826569992688909815041473089131641695602631789424734613306426140454194556814746175795559446716995774088643872291811329480068921377514313476364800908219382571920871417115327360316897804549528474529608175417687512086792987421331299255129120829495432870397206478420293619619157988334423333417753284700360261537868215186836278963011704409720437299473954901163882762268044157830635039318833625403557188808727206592619894178277214820726952783762596661311621898057586427985226140844064793236693219004232018764571383549132206875247166886691833831512787257465148243121353296714175972424930660737026375294468220452018492613870246094349019612417039139889301947145166509250475729790048353438295557152400369408931170283844347077425565026288612614078125830847201817553338786530937390810516680790716104553326183927877473034584364468680751963650289793490152100564284436418934403916575293153220440344127524957851240735858417682177607083123118375191815239848329864868866939447171526502279502813824873508616041020999575820205550146480497804941054173677308045859873364484389100526423828026024466779782274100181710513385887930630264729716614662223890625648540902959499830938591198739732461158461742909536028101330066786916854731214540340680309222402502635690909164525365627748207344351020694445992765296791004000410637439759733740440409501681316399786284495516746550978537011221976325190909696046218190750067763925943495915585113575002595215443798272869761705172692447903889365764453524304852452283835734851084161779145077484979748539566910993417435452679776226493216229244924393322465403226457151999498734494526304988403581782242926695755293239649101786346785532850854895847557398097477959034679489768592064583928033971516203845321788204685349668174615552814165836838946397772837737082969744917488654833023228314217380944299768304332741229546569171935408374344972806769457120752529904661181108205930755982941152481868816910209459509675533948724725286228400034825173603784265996486119867128908620230801284354962624664685955156250247476308853550308161552036255290695035942662943914205480689630085253409760555000699403409616819439578239784086794426665653580393282742112419991398341437853917151114837311536648254205810780129705164789940116297472837643743431408880017510784905315383040497574462870776448596096178286655338046068547608448047258979917647377396365382417282768494048565394701309428829483134813083256299599364989626723396488850844233723926434864997501122045608521478353514088881505379203413957436573772655191818684646549963361509439486578215933948716729998624598624769149827034480626279577143371206020521221920526358887385889285859718474453012151965504578336601444399708935187995616961923492890307536054026797336490648553343665020596075597156501382603242037847836670734074054842707354959572157943610772768294788747362870974172858123227314693100834429420734958620306634506926927149492844105995318709250959246182812306854786067013055071633051638553483900306994289943289826841545883329945192379639110611815443904536268083151469181318623930048153434342906241633964357058153355702087618711146018763385366267529450559836087274281159581604529965105153559205644288849868621749853276801380110434906378902652449886579320128770412166616392707093444279905541027790863933523683782236325922796195084828318781538722044060562582801130206831245804465670079968779333177276214242159362914254371848630042481654324518186476661500925645627558346492198639247062024874221544110938237517798046086199180277123078600820219933514946243127224032277595231466338412658830951030141007388817328968486607087526477750093873859517270908944339704433741157204031655543113228203115915647585816001282111923174053277136930804213418067340272540667080741384830228074187825842808498798802914403819837184772399232487204816736045607436938184875294830510879620344642391342444561147398986520217038901003678405724431863301757579666865712056580572605915552485879995635117535661497012467376569298814716610007642460025349973277128478246157132517465940439806707065684510487482232279676877598774684211262571025860209776006887104018142563384250975067024472372876013711664933474309016499554836839547366729937792855144008596432746089958606640466546930660005233534084193487655580744652372742478722149135468726157967079799581475082180753328015450459124892770741654113950164048155086543397813049142034691868410486929193835215720065303021528384208350233656062188458463995958933787779169905401213325088053868005736575221215222168738132210032379136496217114495008101315381329448365537475804032852416331762467875899371102381409807845903060463003974255460864315398188353606148249753432896223011327641367991804218397335710170235324041928028549996886269163750998971075469537688679033467344653486934277001516204998863606501246097856260739806795898463753619259961533080880876051065838957507495629498029852017905669934291635762999419816142348091013698196302865735440894473122198163189484028213901340378823964447514811669571905103312533024689822501994383962264944600893630851190777620065080384742164486295441283487276700198122658971403039618291758983600753527456081059344829826017693736200771191786927676433036850816682142248348563951207032483424494733153408134334694444091772673222462507601055281236125233247953879436193557522730689599059133510538338855108159923478131473859534343740009156235663102790633141446995116544676399619530139030599222257457466457377272257193070106165355191340843575169906697947864802678248131599639587269847851071808400007533179070007575592749518575278612520275004011715705559706327610889749286023436735418049217428491443762882474053263262084831420830538731894569426537604594804744784010960493229455663134096125381817749794341498565799980434524809283360030037252426844713824433032123300141045039194085552294711949437515980270547878129541215941294808430196728733900953576398556685824667496098719987031508324441597539687614578237546985832214798157648335347183808870775369180092252742432020475521829281488694533830873258797802204376797761571659708025069678631984994815320804717194713749044096621343085784447167760947289692981315955463444554316584228768950687836491651250120587618309253661393020021096649061529072066213127983018082447799679159264859713032061394855694715168277427426049420972176073443506070893396057609206136477160300283277382859955218722594716302887500412863087723015110151692572961271427230511578592497080839133826783212229750502131856045470547319559320323483954241116497958039290560095070433489392590400196496080784206935456170877282883987949455327853001026303245759156371924771017685063673365525308116375468990920810605031249991255620334098624357735041458565340168490428250971040072027920877996572066969672007579293027608803119601014359435572492898188514711706463612522374109538391283954055168187211609565520678318223000066061655954043300683873494397122420860345114012820542167820109678938124166610969454135279951571936940540951491037006600640050790834496632658573304774045009093676973671047387443575530826608660447875938470899114007664391242355370663755539223498431006471441181372339441973169427807962269081701675203695480590186273795989820986468121220674687480743130567849678046458093592833264440576337672471852361196362530080452079887916939287163113751549802655279384595079791661204275217737669743414045123023630059747234651842265719112227245427492700634660722728674492214309361346458700312587030639841521953232010373111365134245204827060044350445105820967541004342985530543303885774695983030715986525814306929404748700981453160466593788105418232021644985611813820027080864548884208504546666132498370364163857864477118370728641238986589132300608764343862929102282194475776843620307505061381268497266412306894986060179069045992033328107921754862966120780008666310690280752310384025862661973150155129875924622141893173202918536555123184579117433192394548571847054526246903795600599537856180051394194012755992630292735076749211901093734143660771873238939724206269810586654893904334016634652130455188052565408624170372561670844900577178404372554296413595543630357838655727196428948735617867176827282822146773768895337512330253559272944272006025405177617837094571663826835878247016300090095955925844821578851580107093708886086002505501288723791522285550963722616388133047799521377830449734793385941646645875297457463880222869024110988842367654138018821343380725063482418373282868166616058001190807670578452164989235207493646201886584066397649578878639913003885096143093292217984234436821873695223588456672136924535005960510640073347587279283187154013771975101600624196442062068741763153420884030321630863000833158292623373498601750345148916009841551831807287450445163633165143731545114153805681188345415205328179970067872179847476811690232238400557880061571435454220321003617403966566116256487358243932645386336528848835880339121677758644459869612235121382371839469949336416947732892545804745684815092172004911471171393110944476283777102237228861981328742672856670587635248723124676586852574347087563136890893874459608731650000610001702873667131529127646334565881205229441792011662552400163707970254988716742620152874509969016801183979829458127051403342942265495098031084419941771005048108546455767755992521877823994469415878973717030511100186686131381327944438803410217110055824331800079904489491303571629480827051200962261329136025486008355478705508319320718469503418470469638522839258285632317552837285428293779771330427427090106322969553418758789968261871902470343737743206278965724953740435941650688726741054041364602472260778042134100927402363362150313138246527069081857776639758254675820138203962415840358158203205984295886223974520283454567349345345038794185690450476443458376888226605671706674687370692318256364809351478223346901958611647321005432231427147948086336769728980758605188787834515330341295299834757689957540336377900451679163844564717706783090151817834033354886365230732473687760336953651968085056804478249667405516646921079475741493412797970513307699596371906933777518507811726099499617387129039802818782590822785804211541056595013783395072723960843673577998778273803635215252442058610495729299801013785338968445698183132989402658795011943830117822501921361773459430120403102717600667702755112269284551097248868419140045171362905685977940734836394276386283429092014219888359531156242601034070628771579697701402104528770623383902996350527547854946266008594136506914427100213696781072575342642806075440419982106986799725135713983756443359424441551383625454204127397100189906653280520428141736662944397596869661085216115042794281217287063811305082671071197829060431607889726301022885512320618105275210610775808756895781550826435098571117245675947220027373102885031323916598268220491530097211920647779801334512477441226216292760927850428995058151034302094196559905665323054409485461130502905781259099790530350781387397703094260724124615691714496330062086087913251028636272282906296494970301687556604443954310917539438766774208745847408305201465638448514912140673725176622757747285617428797088437283294592470121410471141532352241433244393602022388921826542279171627647687908178659844061042724151389436359216334416360217053393340736347646625185224886415582419719354869316470920801063230349521163535426752309305338852204034006125063621444949096415799060463153314573088496450229010004675650571889483886196913465663430446281482196989429915305833759672534294636631692429891872326000495283677835169703794298787776355246609906636644636114249059873850596978352913646282802266403449494748178021322175920634836380745206870823989915088318912632008627104837824114962586468830490624040489923672890321188544414435641127888754182414921991616176733056066397021101485709070141817855235715460155269889947974116507597175570965060590648843290994510578018922761883347783669867226426324696105039111880299852254861974353214781038700030959215542437118244991649878637387834770869542542209354532078304180848741658216645732689178559752713683212375795887610622807873985893184543440704293095650235222893737005043744547618713332195763721819000555389593132378944196272402283773094581421849572560017992336843526359078227602472639282622095604155314221545853842098006229109071328205876963924723126046085718511892718805974255838775523288354536435069268117391270947482371666758661413106352403645994048690484351928991647882641895553502309573332860596585673144624404403731907214047035195981581471170705211837541567721357607926860626158134082817984144214727314473432655960696228215796771759275618375673871869876442696260733903202320372616044998402745903027496457377173549741120231202712752017837346104470317032546841681402099860922058561861108950041260429326653984233519411221770806144100872397203685836065823581521272110242524022196988239943701110735688992175179696479342272921671448564505224821714562402861506006215120574073568183562442512782349260181431731900710408255256176229048132229311637627097199275192092037481321414360044811019715706415510684513002691845797943972787878896024029868180799775753765672900854158561252344250031389712379152897939181015335041837138682779260324354925402600737920434396523236801128722170115459844566435384938082986786958500578444580649860183244425427107027054147049025984368921994481271963532917447794854461180394762013470904708776242334709113114224426078620536968891303574444460641162322856075935770368679121890412301633738546842802648293411444572609168177173635537900303259183153127850712635724831577464030438139930862075880726836301681660760361926659117661270528477672103750801611816668245899833727480655972110692885509335153840562127952783268125890148706156579588122395114508799813361456945208362454077771178953213238191572797069142463316427756494070886196243682017675274813616058899216880794954778155336939737845771176572346448399474275561382735798762893947813525868039553154421986601703239149239392062633225448263296593463971488207471959657633234643260092766957758131775918714826536676707089999854139320257702134956278984025489291963282600451610344862579551236373449478203486666998388957271231241362031511634915620525733220710696954557366729033483937723208144976103409254555360639098065912844364405187956303142677795420942909507136223966878248296507546851166099727250054553989823673925537275781262555535710711459830085575579153097724406288388297551755556295290119362007387232439777966427332043026820111248555179034962399319038403041616748836784842971235860646145342233786903076065400000355934654685936245714225691982731688012087929275275409924185921067127987372430518556807081419214657094993909079337792414419947260398222532218881453061921286200518798045664278495763863834239424032352355043338282999028682945848179554545405874566824744221251265101058248231311289814066509100609912671928772710360850175665505458509034745592028499603655899601459453676688102761163899723896988262390763785762332602145067333480807267618380014228514844439723091596480230642881321979704791685598242978483466282774663196409550305215379270645659093492976450858811599052014812647483434570185267456829874541882137072978116167036915827983017380755603978845075971018124322639336466443091806233216082745470511669547297777237688898487529630449157165953235341083243557528107764923726909083332626968407203324811542926865507490281631577938668254827378897613914711501565870429112161935258190261674306253936299377032682530093052225998931192999059960976291166563088223581231292331017289064497605550001774028948276068274590897370966722105113496106062338042040620747665029940558811727193627079506390373072815011829978787753674206381606249003337796264632230507902550788958311746155707597125593837179688949022552377070123365083606327254766454921793856118170271847642422318590021084048911365950807295729020352242254870967976411076162589931537212690881823113452027829421451114889392144111918279126122459948313592285912311595775011676419381847179863611829097151833265722860758738038658475039950761586088962979463464393794714523801829403299972683188699217084357946980212523252263436820781405723923708866421541705524812320870484381648669278217547684225703001435387042180997077890782985088451730614960045269987428667119201886375218238911948014336653277185704966271545917176802665586980027255834603156726423509376327902322545749744714556218813491781161380811700665580987677914069010510512104907785860368642767691948396032608631834816849384777562137205217886872675022999321272153921330791826408878826859355086093978490153060897123022437367154190397066736145571172650696712784651484866260266911502301084910151891397956732569956839592519428125003280128336430566843853596259428542958827641766670650017502359256800733586579880182071893442714223989202906220398190315171539959115767665968683775832534773863387078226939361947829637983177742044013922616314981100921413884204757111049330072832052315223989433216751883880654591492815738749789922414283785225113454279261813395763225392697990215872432424245341052661782817180470633458248793359697763627000550560534773888064503075240238233918101719502488525694069444121016301596638384832863180096467278100849971175162884465221748442232667858387042705403349769044851370468860315771122647897369232945952125040689445279952727184401959679340452993664154874279072952797601978298152018502375994568674831609434524637195495213544874106931185681794813546091913453923900004737044854826398002456672507295386262870727358551905519149970303604345857304413454227056429849619219055195980879995445244049781664795922916804920462398416838541021724843861039308478816123517296614474064210096671713957618394070565169910635665763599670977446691341183094576339241250536178613297653434778527412757880403085642339067589211954872820177275489975893747266108443117304796636460330486662280493197669611942823126864975886116036053955684862509816713174710111168766946083051928958473421813819084674323663254939815274807831330496656758406128765272040197485095934225760815709611633056153105295918668158326839825151712433164603711375521400697436007164650930760801596196434202570820056881726793189848927655725709983432336588549906382579142703812735100047459818676416689138987777839780468204053586525711781207014891648905075252299236035814583783778220093127899282313941384131274023727363044754925874430796555959394452090598045021485958399456554928974110271165754844235250005751467729504129710269686750365996796752184915834079620485392874470788927840651698338592103017109116611516170020419979419938255126036252607029792567694252315009686011560367991259121465859511026290099582287342323147319681053617890425969210486122813693033658597257380782842897063802103558063424142160827693337200841586863586654254435320710460092223284583682074315611231542535565935083733699449117581325929014972981165422815301153705207310865708683075163374869307144477206558532101665007503223272677824652564176580379455013580085903574396825540392662201411639475310182341999643338591780578499484864391203550799671458728135896621601882597163967175788906262779467709866439966625742224031630365669126506431765353104234750699291945541836891847678490613244472133057758223305488552630137177521983549915096325920836716394413746899323666951947931695542651028161397509857168872076429629533147332809462049317048236345503275321145607430640577619013776272268762989371522542262314431627274805408060736427243885346905820718339984845762498753192000109877126278581571166044993907661692881959782793211506741828605878658915872420523865866192969468033712510969207306219018734518613932740079539652715213792575839268846156728590578444217326160620047330794311776615145886530530348966507975423442326036820684618027981473578260047141891112582474366287058743713708730368385586208077024149961369437799657726022810883087694501612716049076605528261951025200104274532223810883714965343065390042819513086359840291041636772441608379235348188213319279472014403411998055303272511092434099631422593135099089844445950272096967832026881247139266413849165380193139752644771938842568766761194348157808536168624199987372199358546192479218628942202941314776066906160285772575094065638318831832481869254957382527361434216508114399750167467247167179999993964095098178464304822078121351944725986137397899080499810048915375897503981004437281572796422794294926187864134368572081300581997869878091745584309203492317081709758041356931851866292578045158754667461281401440043790647475953669583099683740461367291400207226455470278425082103285565198846381220323739734275809184301505591772803700776740952957933239434235702438846205965253545986920642894730169398563104534392469252140594589646018040529455497204767930659360988347659699699438175591978087890744869241496559507600574508442688743557797728705175809476232297646352330202380396382401039524530211404946410945775207546009925150644809853513588970621414331820187775886779280475093793942268269720784610854105305430935891236458445735042117179160170548753213528000531090324855069927716945087253469715400871982959889000609219785434091581537462497410066003897936962668176741823691810497190474744660918419051501373133570883953811600369940154631957582577712760452176403309862122060374422239722488321914833452757662621184995251315769930685410726435822002954854231488011646621458404349985530795537953845172370763788989915968904384776131398748987926964028797934872054490464118253813463594854722330378082640656604076800110818684514659020202939741399377120404582700171011660176828631244897475820701659352362514293099665609638517158369417196114196358750494290044345863246826140808054049330732549142706601591592800780906011548269386538199606037576093915271214862266592065278777831725594065588204904597292142970493254770333986755535967802684891948007160816827002088155465420556132072682701347830071098094615188434109740503409579402106684078108474437392325668966051838996800311343442394756686606262047842039885686080500077937578826660134302961573613010870246286143293640125241888267723179149495332482458531728966927429518092634479974144901641078854163324762146993806002408218076031948296140130101595880288561046879723147151516373421267455289568939086018033413926850905970072934640078522651230310126179047804101269340426775668480414206787112572001221281598682227729273879013417018000195082832859793670388647525240795066567507995054085911893579755987579067558566965862984244354809771730264198044271311990827081167524574973123819544626045208715652803518504698629926359871591864078677327136217069187621745736067306617281997063974244827858727755843065157722640396514225243048849939784234284215066004738335277359251104068879365114679033985544903815994532019034221009028687091026735600552404475435926083897641471932127233390180901235180556395152359980402608864844591711534055673400115427230436643451837692375557333677164403090772087278476024185309196665638556456156844225381641482835813757542499548336042344052246530964593731852314010897209351660814498117564567776443032573433180640177996688823052384463377364485809302370738446759025316457558266147525818917102729100202654568876650250955121810372386578511468297775636410271026517357352842231526906061550337578228819201610295981408734512182779577477401677135182170986028012304760891515079955243588505082261036194249069715629011245945681683790795939863900338001538902741087615496548142925582692149959476038528141455059405110542543332108788965134198372645412400870790530575867460081570284882771160067547669525661109871964970932961825164963642310580715314916859430270349307920659239493475249885603531388692551773020586965080626484472852598970323071423922692697281076567941642877671955871852325496950376034020576081391575213637221925361804743630744965603591814855092637123201966760978309423116428509535742670714031417379604370150269368835861479047132301143016966269702868286109742187943936281800876003023885021656887693546417228136153640599791843370784443394538963037487462568239936225640937241450741537501051308749289936895177265553744234840141785724570669126112866794661572838885746169736545879801284267739065309393784736829057088279843264031378393942559441403572199623736430613941999580261653148730385050489667252271224298244168046009607426323301863570163455387501052978047383645364237642713152407630118538393606300203275713022251727449074518790215117925534473169115885073654495972275213375256097561709480275727036334727108520503333347732089330752798585079175168628589317806995465613841997688322725067901786131133756634288424532078513553246771888300797157936158647442032972594227758684782463705712409603221033114149355188413230123900943612508523621130734524583214152743298674148463998394063894175776421868188891189918020186487264962761231255035848750740323634155062595309462160132650554150308413057359498420746564741633633286067508944251577651029233784828189078334521115865840056123324870380098648546627475862925870677393870712938015896079826834611921585399110817817779933217474953640322531327380921368034380182302254148366130804097054520313587106643996518861965910867823203207206245660700306413817864503407778984176111898313435430559146059888006607691748411917890738597940899128966840500782738984045874711499802986998118290504414838086533660130541621291597623953150924326032296467284370627924751879103607666628414619054438589964028907212982839807300749964685479959404515122321071585780998511987162683199397073819146680194076375283427072436823452960160904736340460683724715931982959811516163975195570251963159023966560950399856345053410350986680320162731226720192211033564152420644686504970994294533744217095069639522152931569082561618938798561492885019443398320146761039448006242223394692826330074585572316082124270301505264334009601926788107801255447482801165505863858223539079761165877629973920293901973419253122439078037411450317417330612486605726704992450171536004629725186952438956025324150603954343339579199159936761229132171783188239381461748868706525945612706480033368101614842886120507962034277439806132014528001767019041170695198444707275755050278232380997591371147325735068822256193314086053920873449459006629037985110164667457938752680825188574608268102217142032595028951814752338080019191632263597629086990242301406701918565412008327499373701706310832156534825904694610040658624461497163324988075768688836690910650899042332034520313932794464149425457904564344413772444712324189717455866138118249551344699001480612928522757534513560568054028515455629017593079311117235509857435248204683945443683669674508637120489563479479495561585645566421445423435825279353516159762168634519188016773884239541930393927084371776184391157034581708217977354300399780601398901274351494154847010907633762755615584121541050872230508521450845625797105131987961864171127610341885705684136090821385087177871764242049557252945814320641126120486928158643640053732430109558344010784861237848514744223026627877450126178008603842964316817262766375642724491914962767713102845191054806752832325564639856517827150402344535941278398693840861639497932973595786852558719030003728042974401450897899252779063093762051296370190501058843789345001974534368970980415928525998897061220790167095032461610850310943211479623152592507772090677344584279448409153158165683770431674873048517492852731096884077794929557110357824117103556625306976689816723415144126898602617303843447160711100126501628321846036003645824349184737311124337172321544759984822304552967188974116240296179429494780152841248917846564406038332298634596420130265642575299278084216055735224646872694049659779886321407947092632284913141029329881261850698704803666712324448018963216335372936814758502003954984663458414114468032968775061845673935427136809541190981287428482214572013046913376104968426889993878846196376661248012715258183853083994867034577748912862231386240167267705065724320855344732022073792343938848378146691509248544437953822086909995135912671562834562682759062635612487878459627635847884294036597834442036691269020879224499450961803435802783480900935152189953349532918133800989919896220906275911230281492739806922274029279928838279862534238483218549988031352165377871603791211031674604562782423321090479151278042623227802066548249118875144029729211712821795854813266135471681528688921354523899356408841579290628661430678772662996214410789973316700117288106275281180519229642964174358536653536303596549490969769010365801755296388590436332300414057707286012918109708636571079043659087594653025070584269819640372673469197937964182779373916228614911909167412887406799528799206509612860745711129387817485140393801770357824171515035833303523393996002410608305792792227242899807265736328421329508560897578508982259071356246927417172658301998913961601616687934674381730701010676569859933711175098759944502131422835247038648070958795880108046933152768715402513832136295627607553477701040337076378590220061826099439625331883254274941540108594040466142244410139513255889834686780484650894885391804776448097491184087473641590203770835084762109011295688086912273071029560486501439651024256534350034815934929753249729748724520525698042440659974929880334159087749083726829222007275598710771796689185469356816983279578247402063245337244491665038489694810172544333783879693987210669151185878056939015063672013062643576193200111265133289459166992775870393933911766728856492595976273100834892532928034862507099422272709848617156866224192309195444996267927870044049525969546024220131250626931332432235069519657325281903912164244037595316034842167490844037605202614006016387297385805534970773546155797465751822925335388369434171210745135037489542372994594702792693334139236934124620093233003323237057502050139000399601797646603963371450769248274848331170513011861228789134355800688634673532170464454667058429584289886953723876936144722091550415351056481120192526689186871209236992226149968168345214175399169118860828713902121413155782242336908568408200482529530101061331097776925748248718213139210883043064658544933836698418162412444514286008093113291339601803198312285325481994528596263454941362278866696948253988538108977737986581456562782725256023523634047783694204193981688021458588265732109942642379278473826907862525645060311700962142308028238819879688671284963337157364496883341390682208334256039742350909978634480802205200479360351289792939953473518941843933586382047001442933210326669603431135432257112533223937058080512244964351474854765695811169323758448649355620817246120818608344391376855146515449601105283556459199156959790095059647691705268883744397686343075876628927194597749444182860002321814961651266562236446780581839165884498748896695376845723957698827218140910858596155744137862842279623145054966385889967989673369482820601316040888834195448532856345537298739814054638891140883768506050321135235209074616118522644848846180582349196328492099237278743710715876150934561986819422896306861137481787712833559984213446527712366417826474485120163283083112832225636827931918498822273937011833738852650023799257841557215448974652083680785613884826814222147472520550353861906243871459458701201416432253039609261229434457783315206600981071655965170022716811621490335567867899146344838590079694658547645046879357196054758394780405317105599830668699639694120055521169305008044852259037906780516655136350111486102092705942014288980596837678213865037861256677880548852499125158229651739793853781273329551614482221883257489651656708433141385517445337172993084641391699529464204074577109976115177612456018602103265827789934378347002892447207039377078268716754238087489319627739655271742827872365989673964049172312458331162130767292666832050381424581154232939566867229799559811411370533013034907667900783268952988035867006089544560405704262646923236797007261308060781092111238130954887344881676806260672338082074157695865500464679946224144565896784368594970427858180640536447217961417739668442820194800905136008488800046797657749986927476360541976975588349265245164332607880913745497294359296759731642453011066120197407250284794973698026570706629144300407058543257180608787754377007742866680749847259535277294114125273829230575855153358146889572199047716159036709937675942098953829472561157442225383256470487916320164401812497022380797488531671801797457554932011379592881659051921286157016302975772507306410786849175047820262804956593303174911856272336556606250785053541185964943238434901819452140023195730085769877152594201354601819381290186603052208991606529325168805381297903219980639111981099339867835550522748372248013307454632715738037194550468974555898593258599623807625294806443392686876144920331494645231730061839911471946573068600087982766646743379514207707060903023276957139901640562936624075668799827582683523780255717284860560748976713597099291575939605872454410426013599091260645483100695521101555733218595177713924334492767142041299101285195711104911635127014657991260159906081316524516805525395017144474025631835706536137051734312739229222179063853299762560631027427072426527002512505340220447468763624125909329708599762011081962997281662856309918978055059128508324961061410677116948283035216006455211303022388947446515879535986317605857113839288215476943544192551278514250851120487566550398652444992247252196378589067675250432066603767551390129330452323342158790007234941946849940551020200494641642574928219458178289411573596734527348378969565527219991710512235115307583601059001785728415316402521317856485346139383715382472980360182353776228338489668402322309124007080686345156983921783096452813960294556083786828543985621186488712069865176147920102478749175403752110734837232597631242329322475788331952717489489747367454540531682376751274396035820428788747529117709098271247602961204248780366825560601310696488926651171318136087532583498019619652610933181981958108344816081502525425644445853551143703932708297265557236543621266607630725422570195044754854202473458246408172833094346146926424267761789179063760552694964655296861465308031671606467168665704228669998027381080961994082081792820690900860779217492232735392120106835658632550642991211796464847730695534566723927413137449457131422309420416278530953917196798212055924774974311657201328197757482325933781265223896294121114877788363865315377842871626357325229594784915710007658494779760358679603704517541563075758957168785024399074357006232986015346337284585112167073830821296917546340599399557428674300221474727726106042118873738060389341143351121798877524416349254914475837148847398288021800069493236601210512423955194558317375238796496539997944162626560123147989843391568145847026620008824207945663747402585132996414287162341021261033499797081537696506646505801951091180149716376663215391302972317942421514969183700814293015117897728202135248759618983936880057767783471321817222458000566835872099746548430412723074226343788434444502782259134959651318486146599996484829598447618871039688666842051194224011741422178332809579140867275789860004834185856274279946393130795221524664533069203518974602899554973111645690577037912445431404284659933684126535710786008065825091386779283582286798907951274851765747032510885010776315356988319067541567532986247011711109682473374267233168311002357099511739871211363343218275283805306509527828896674286297666428630243836252148717145121024450157635809789539666758614605026437570059856997522771020186525438456894931978266550791006217034827251397394139366367373238893063364593207149592368109180574493570879579058623133206407389363842389734820531333517758030367948739275098454881301902882357779381488468202275145627723069150217582023236610417954446849238774391682707115573653761373175020537040884899986887764187257061046183481038366123882311535213108514380398142708977075919214019495263185708247274025003728871635766297412409104304494736523275168856205135908081383923343014924959991025343440142422192911392406533335879124150303257751488896598134382051549556504852195112388210669941012658089485053966022855246719531365920733653227732009891853620447111662854347837546418298274044958073655346295091598345747397214569593827940682385608989948213803870425471798019467127979349831331528605052574074488995111710381408726602533078593765494953339494933147657489478897184642414651460847436832600231662736965996440311282850125558795501803353041109701946086508558193297226001009563834575137321013596741433951744576139251723986719801179610742448618930417966292052691997486130181811051231559390562122190517938661331094619733230407321455170716751736428154938119478042295131689480919298193791546009569489827356141025206762710552970624441301838460665440931895223078765562244874960393041354738526117090237097050340755271564422947959531222370075846917394905862880768315398529836024656136147745855318077180006838346866433315675552988281348025380299168886798839544910274696499080061000738012903958716083652852687144008023258043098218062961542971593649272163304913102989479636376744218684270166515941243035600791891952014900697907182433212732187452041036503203236355226791157707201576284073484505223153580975396861355432646770141430936652057893445209032324455713557222984988886233387045491673135513365909047297948474947281752060979851532752077114395612503046190648339790633267354789080024306723956539363331382000392353657283433401707577026543107639760438735713414119924145612537139765137702167321017319766893930822391848642030151660793836245941583620496049216224583797105298918942666053780532551017023071555769955903240725807073434783922133411604729268579551968671004706525733367229247230302905556000343018618947831704547838167268517566629247969570583541808420927894403765438633376947916070744615321536398634212094024030593269086289489092642004035078552307042255130061685928445153365064985629537159063269246811977313491087663949787665119393042802476529439186225979948978134648026935222179019544983413187703466748791636006052503122954775139813618331148046725387913964848435943836608410406492563959159443283170759763410417451770867809975042475083546326805778126367704597373791633970080674201145480309132492784228431290412463021958394377143822763086648657768105123803313725321862604214158527314391980843218028469911416656325639533676735775757259659496096020616318860845341310830378884578747193153043221897686725266525957011134552669590292436701160899946527799786550531525709396562359646283035712843627849279764557502617483488679187739320228572677537280526709717011397454617104055319075957093268666672014269535501390745899091485420329676552919480414720967726358017380755471543946390746438175014279138429710630826455414389079279736014946931802930284241475671068327235305822614874600201632930461328546831065259717426565811110900189345950815910549692566738587758276315125970578729964370030817000206677012128979306167776259594848368076156496175850617210086775286312640923639366565038014038074081018835691800702176701032584962298026444403995491606236156027641819786748612722141003002949158568715865250922354183984670310302619316508086264267907621078382121081809620737532063472746808939137389848453373905624919613711693480481678188226577291411498877143438074567667108982775231856795082313041156762871526678149212774376174407826885714888786058623903770712200290233103588483140231643733339666925428691884606319560957080307388978746300704050882600753252958212637463510440511301028058329730303241891952434894417900620654118494705565769739315746017458031347917806638278490510807877332840724038784667663761161445917865189924685082331256668942715364170527368249885709707635541170064628433571543764848218393617316193727930551945184724328441642080825555545465221434352619473816809245111486031643173973401971800082779482938544343643971491809755265440104765600980247251136959932226148800411771706414987433324109180394662604247425744203975858027777441055332956863752338715291607711578996188956783513508243473473077494705964686122075437746845461764624276049753658897994867179188878776905618385215531291823233398921685713566529130188269915394145737980253276977323638050067334502584671707041113060071537928059540892843961456442069651564287979271800197906685788058924925432981768967068973651390291613907320541661853983275200668059914135325142508577579652724895680241171252417625566702705277749377681943873409315550364531808963356746899369570195908634342115254391002616100473789824989505028016165067929597523914836331378495135255946212291323453910441331466268748961793012703060500181561382422163286732194396874174694000484796975517218042811142854221921667536253036759848659661708858558451073886968273605283563628307067443021755335024080184331999383040290740582328654623941010060964286659071227850346381341560148857594355921925634603702316125473473523467927989603384071294187238272736658460078360788521875260120663965363860769461510552345577710725907785295282021720275978515135042396217957991792519359004756564402888641278706019287291012406150305932104542227897751510852158235708387986181840956770078072328640577721516985431735968859450242813738948813338190181295433545863743191822521179122917535765082160630981082302963341549756240919875123585479059328921037276125620940320434063486161626515510129168899643916841534863743894112893426158422756543444762122583381534652382613832462847059866692359297507661795333045434434463245719179580346608812152513155368922475463556344543034635439057774933282253505194595836816992686165289489326643019672279888073950636332874444391349763544823996026851494660238504731044593340028477979938367749967392214684886207954365123397554661770276771998494135055617082383561449959537851121758014737208768056606073710762116164911134250860731291477414699402728809615234780953888689007545158648676350929471703062781663052995453276117697527465712088755848671748305921468656345103728402309118757120761277715682112660387243994200400759421555703196271286988176267713032636793914427139926147767781149626932254236217401255913064943045178592894064108119567680866175367951451078942716644908240986240256538280085409094739282434985363050503964584142514276008819661503876831785330985767085723732144252388165793061102394671935011771763512438220244353963782940270452208333345925826333091417115945315727515224566693733101637138388889993015845791556014696440483657682486657424208692492121065099274385475569894925170300416567034408321190159263354483525866514197071308850999841167543586571572009786379363963573933799800973503803771426834398095409280099006542183875236464219513362601664602713492725335035530105638137427155295705733985714265504595105752893337210171598530223013890331500730647487382806851760226708169515650459272959187295491822835922561748370704611082241158872982939639065050937737700633285082703210375979805705012715159901434385299579678016510381902792312013582449397541546329457400775856003001171429094990228763681512718259965751884945260326839652514674229800886658665456503482331383822476139398225178257416504298941333791155980128813392487287304173076879759172863869507489098581302842280896776815233440848426129919167634719907585188540505617017704970775180131518977086815132523381755507575120402363747217200536695527315108278872766537357992421590350331596607141124281326932127938283453000141750448213982627255869604080435282937114437843756600993756841212955290037076456446245777395006616814298560753882601017846158839499304171319723667852630016567333671124216601727651148234771172299922398987103717131693629297788730039782853294806115916348804810506197403926143741048051283134942260063323832830897286027351947375449728964309910546174920780912787134754849408562790837203580364841300367289813706108373818801650648260321398022009664289146420480506732119251921599766992034876564025152246746273663529309769271558894981506156296208768326865160171081481022288471348694466698379851639580537844152347181387244579643204749569132343433406304570880150285365922106526542020596029430959255143981045109377956032031481644272708694685615020762639025696143918461076917273302936646755161275338062510865171338182605350154991279510616813304347034343097635711769670459258607497128171233047564340534282006332289811826224877849374691242489522837237584817829335122485445870159758803728406244910143678663791231391189487457279966148177534736431049630466209870064662537361512929143279238143904971326953693454880626421978127748697578882201813388960089756911263256398221000666416985411747361888613945711036137150322301641890796887666684956728526054855457244920781482199484443884625551805482786361819110351953854575678051582618535470378472254345593636673298407721521304510904951590873346584453134508600366435509182167435499597749099414068658865844523550866621946039396488737729006019929679589482434574305913441981770739249042447580764065379811319164970391841256727058786387318054410895289104556098323782836938464262052320185170286146094109214716514902305473039342759649187682469313605856964727380464450283338461709609306258710943612510431828001762601603321635681175131287567585726785017214562739587772991622309125754955397742944197124230975463529111867722937954732168729026632355626683469446783290637060088018605981266880759241513884949023237026012189688327179253987378029973651041999253725796748533810203115318468958576424084218772404766273807773454151165259417409199403649128092139973363966574218586781183405160452917684271568559670350800930709842827916831487081394558317829578907595601577724667897166833172392945159828999592406937064425024073317153887501096384263211544956706394990647820539045142061943837808921335219343083710379081130525273657111800705736126399837884842465195231502906924131313739339879082317272845670024669502802228923083891927706910716974253163475039923003142896174021166243489065241625992884845293128981603239727788556123253140417710979148323281871467273671457763631095090155239868504638275112097570229648271949728960493028963861248600136043954949934049694234621423574767770141232009000046325393658328432350212781537822434403203342095922102193890351396584426569799810202180527881987326396207285599510718110854202643458157402143643857813626486408777647855013182646764759367271721022845924353930767459433504065951638421184409447190492320671510448231809513026747221357228228113464775210949744327535505374482552506126180703826112222755875014371593853671677608555467519829309992164114725572174567338640969589920497137930040321712700318197295651767272011169059330301939112487611698645269800805626181822804028657118308684708708837463768588494818234814800502471712980698757131315602479313162144171635062767049102426259582062724757573570684675073896271621886840322582713751804629218025368202953247461215364444064781621159076321165514150291134057736891649316420813412155039592476697371647967739627610786792959348842803968500081598311308733240793100953697741487175877763574872407150839531885741700528662557908822073039414897997166157264786344772182745498183482559640949776249265995711319893184647972602497781372753594733620521063023662903265151724116786297260177170612998543779777399178640855399968534253804658712962546678511789235863960908354677203905774937246130916767027368639693570264429870054772582605501323548967236483351551177033070290242781763651408344977191815563657664857361708226156788193317983342983592022173658258122179589146051164854841895451290591166499160266766332572556559720643898287016741765188630808956403594638391336295664870573137792372263165012352619646251133175828013816687232533475267991656745491659651690914149961535056801733865574859144043119739890563908170032928340754733004363137812009202294726603851862631407778628168755699763491336548185880545724399980485773209671765853431081268747175377540010432551437341767259384285761741233398459261558952647514329096919625972608937185981090404993030470690147975928437760929410546114637273144327972072740575483430027133371576349015844055756588620799311429475882337535236048392864556668196303353741303582062204540541035792050855523122686128927538709374393233672835736861517115944067550117097906902117280036297620911912113167636793134606509009586863600924349228758548780781142056337092718289514662026275625875604342156355725239540857791428735366533806739332830248657556239564552534391791842692480021261569423188665880455772431253522781307749522928702874474347150284567319370383358625185270530813769787000217592177123759847877330614813547753880969774915560928681205732397066975616346375867507442550505408276080571459902375646693295594692872778343144937752408828863270941390143723607665449184990343848252104120150611874687448987293473223066510451344661706632271232182006894704570383376214918510630664198629792787612716793359563541753851043294436509647518325777441952774801937220557936836046111440746598639250169903416889091442266106361400524100477100353732286548942233545695654755194348847298088173083562973434685366213581834989782289007926413871430899811261430591097098347420906926369659871691465031073081400568002549148554545280114349164290603779633512458487358666656858066622683943865587403116789634380970467317601711832560683803204256832019531854240390878488848077142403410070068683013851003471609989058535520562744739805156651883057683173001667261218518747964311024987234553767523429834381389748436910470136281058650183558516154391012770265191856704266328713265032713870009660045178239788800860162667939712253674419238384563277131925150782809639341221054791138193538967629730212132299832297167483119220191566592795471100962034247972840287062985372978340967428460667950470587363056598534969539938058609503062033001081653303033366260758699032825375367921656445172158349247678099316758736182963497963695604707326256383199620457462926323292640561452236905752735109065206142675361597168615199600391354133143985078753781626193742042481881526101945258086195797942773797899042649268451435230008744010763679082175915713549833877432250996331552022327114925263554491364557556863627128665528854508977233419009431586391167571894710641113280959750100814143443758932891100074057199108757757901300133529972467106756413970975480506929205734936312403687447806014315604227130598075041767007300092940330514535625452850314395223158284498870470379402131612581591169835074306250913849706719192963452689819766378264895582915978220093608378277181997825809498352351482803559757990517769996503357621850669318488160071168404654882852415008006597918839260825273084548657810600242908893726940617554563418985808840114235198098457474767831199015650927422708202368376359028597583514968851782650651495948499530459823231793569658380890519378017963027753546775552603255284731482388767734863040831012091129888020777241212271473274423810124310771450162001963755594612779515997578906854034816922685107426989868594616223581887660467895197045997046330225473315847119426977569966306705735579750099268063722515503979466862241190581202303307542884161826056422597237443310288384134642195333222088855577346303239527207186635677545252505692244265283599703825911766109449650781470736287852182388576323982150343667409908859287190267938626912336485830504492548190768271329607508424010295559223305642933306043694183390004248104247040570470267512932834975902021228324815857505440602497787309368986217313036546647846366312323147774665040480654298810349809123542915991152075889898999183094083332495899785227492853342367982429019215756064451307383580753410089534306612000165837032862173800680383577165049631179048712197544815159034170645636451081612359774359317699886266700644983923049750534497746846737014132521349938203179878492764786416269003461760593968914601712870810980595185047084864819958635956270080018807686982638063771567665881516920828140664977838487765085266839471488799567810038896434461958724657343599894322243233996894036311489454858203016051405570376321004181785343473602925769608711003541879403896267432831684269297690922353062365829604015884813377910489516002739979797828512613614634088192981021115111302485321780272151725324806970353748265553632948468516727217411896521612910561155373283926963917362694912990292727613937689342092823559261122561410062120925437595487236806286245149489130625263506633684242387924863886060666774211479901393280170144242258513305944920646542042592453665532037870814999460184285867751823152610428321046962748861427433763936515012139359118388975903838976017107080567133993373563027182139972856770301943033793085049970563075761103249590189792391403465243572207543245612056174551894162062375420264057026127434429754381674696845532280405132317297917240314028960642310834090668208093028223793079933443456688063363092559270805518931037792374075037324236854648928706995465752606196175653133356648234006372124781992435594598941840977413727493130788975456783427086644139334277312133148802980175864616821509561383185415983523801912367942325155020341551571377478769724783617005520548878946215201072582175858998870123690331304213300742485082171546122880543991447733692077410978612723264686475853714520672352370550330957314551581500609175070845768740373163669391128569218840627526751320950146458482674555086104701045962562064708419850937904663451587637774554279917991349438179032921420486484648800681182211719056576651185227458759713457418633366708659074796337968292646593727040503011208754036800750838925556336047027545308245008158862534271711840380108357030351469876245576128660671254468663110272914363022035192864814941732083750522525678309298440621027930181892150412974797431447558417658069216324159723506436417674689946575977929980328311155167309317177901735889970941199340060840226365269043903452776085445221207046629925534220283442585548682813779105285242877873596411037681774928049793077439164147641734042977574617123174988324439161312922486018084427391933829217045677545917275308334147061341607642924399539983904422943189392039072985661386813512229292228831623807324462669834429521584783947273198823531797432647758229790182017064622192805704259867810589725788850587400459862177250922558287912953479352873036274017461346338465278393783987923472240236259354129299009226183229292442178236013476731592981862779432682623936853007466900848082351254398544455921000829853430650070057356913761277557142351724627746839541370584978334498947236009349892275655240030348879846029236823472422146002069917439735912929399376424206424321997845188514624749650055941602847652827266478518068441974322842261862327576157657408751067147131561693822526643427723705064262479140406653552839963757798716621696957035383947096016117494367233356325538881564600428400905633307401949152023121489076947446514220198223580685428044848340625204484759815993214180867115961226953535655490104946797440330990312925911021165382387966453496004080294180097923179204439945839965847626005282803321276650226955428569375624024888508863197214790940615230229418877626680121564926373980289662642217127050740539399399004551987532003086891734606871061937144815436480107631686919850315698735708491714674635021185649232360053465210377189963740331238493649250050264372831459455208614204626245367772728553012851940476570906546831098183362237550157528181540896569610718862886814192621904738834556016279425835611163679436222684205789140184288582775929688775220873820559176576280409071367432652026018444190646312992187342181597994918172977709109309722352566055642139590188958473036066713164367822519275211458907599082955777858396582700119024882214418517223624768469908061473377541157439921896261452651189950621145261327204831167142497833952184395904914556901566753048230957027629848823292054831293761971046210040282675875425536089418513707728916411473095873775026890797494783308067363269410892023584657237634732926055262432895759236834485441876573528127879377493116049396203026600848165029872435860895727623579896385474360459344291659618199002101133033144978767463789453243259574955068066881466026741285142381164353943005541239772776479393050314539507034950211590484597701986050445394400135317741989407068899273400223940831350457342912791392398575576376456522102947719118503893153067477983104822936499485102624952427527031673893653636695928786516557493163068461430526577204300154882369362172314123924004438399189639782842268021688761145149722637047678602272304758896402902704341700743945161122910307788817082786299588204835645227231816718823562152866231018818012100615500328930257287506142658174153082488056703413355794997186101963202933148591263258492661195927290118893868993456748133310998635056812719819643331100704482235456737693049983667980160265383602367194452398362969823810707564092302107439485502976028327070279694087265306302021648291382289373009420589895504251546049878062928950642552884983736994289733092689857144654805011015530752958243373634039029837136286755720889316410326968403105019634474911562112594867097825726450306014261114241713471502573595581789261015684757237032021245932142957039774822267790177479729118738601314159953975963070166849656794512016158637587995972543489090988404533680594882816231902765386514571510695504151477328443570798328101464080698076840632466817228907986711295308986099100995938813814228317978931833411314308566782269764326765404605090561214149633379830835127908988417868297770424227070705701207367812824115851395618124399948565195819436367168256298196077105492118384550910488855356440450125307553124065008399227096994542375224145951880310199103601649474907785100028723939107434509119803539168891923254668233863230317716988877469973638474871793388483970181501796230909733625847810534813059166015222631414629998708818120002222783858380063839605134518208709832378462828534534828640637163150178100755835074174413092657466792226059420884580462700198339365676312671307903272069626411692061461042282531479674976875901830117506510812206557190782867701028371892002498811302368834318391258924086630675434123428480715732082459188738807319862319871344924452213870354666823547389061984528112184909633358736768220200962286220943037529916565095057237442129557222604271713046416123170398598378036404438386738224855696202498958451035083490719542262104891335785140174703099722097864552316048655284370897909966311251562308582748843392006936008812433120195180655262765172768098186172728880658225412112530028015975493498095243097337061574147844798713057680486722183242007719761186643313395873888053276713838899165521375290586044651525788465691398020580226839714375440009108622567144048409918892474325585267417500111014168520697046649575927966226572742738740256598329910526383896196589997479687530886644423990077498841997114307170469400250183402151849424603229014412571368267214221330286608870114678102511492999472948271618189570391576418413464646167189473641063251885579819700865514755704370633831254924035765374531878725572662039931538317967421590776962973932495598653401273689364920100004025564536689390544662969685422957683552431188208414016563209911339545345294806023796306908557961424846435137297422462196305749821666368610103009623549839551706481974348203935725872397342054788180160296107198401413706492068940062492250319239795475436528058978716597475096081290076716972826032680689456957291875186163680064693254434112071094747028824525492657323386875072853913322700320507008625765853442518429561328285664613532443077470034488960274746094130219595986820898236921887285247309823641172632833701850648610815358219211778622453286782691634410093946273011634303951507196293584038723214877384258680447414288761095856138741805157851320455559632662816999159274644434020476997779216314494385066913816758577777002366102785310921840548236099495882654862535893602274086569769469470210063522144936699342253077223968130298320353213016516933147307012755747294072008559400435957080575895703548597316200677259617873892142706640193525285310259202087692495774083066325005799129721999885792058114205610128422739750450821851499307802268805887516328829334450821674886212793882633552859947160276270178221749100733722633364331266066667221490054006901712250809545989274022907136605224166688972957608440068348468329552070042219858891532287932163990199302964267623065933140790458267627190442554410438600216516249463347454295398528161579268366726051588308504977363233289555401802688762029376451547566954438981442597815488863149716878812151115492660626336814444429363737085577402505548186554428165851516095835250384056188141322330108750534200930897785825713421381084804252979144828883273352124629804034577576468797884209639176098865778227776444865768731387222011229123410769082805477760454067804052317988521019402381506106356140444129648307778003425861347382457515297946852897393752472312805680781180226642895838546302376142373250576869153655918662026586039420614982752146044504195568296976609252291433816268651527857927680962480460620629783300520666897472803508116640722605505077075249756913334740803249210432356827476707472412041550231711651599258304136081434327577961417174480732002444544887548137900491034022479094604493565750487909714687657854209038557830097745889198545237576224210041503820434123647029978034587265648230925537245606438295342466358343059877980684156985965160885301558502888909212970078575297060553138029432690712049786330804639612405142354810350970231418593770921797121098683535941708367095188015260569936133690922773294223991799607967644324305222144241167097265987017498631583364750537861823904451881177363574008156523655290690766151891600790188950363940236850206913515749257609435955785842700424545936356595097839131373890294631069950995009941275291106798201592035485505815718732432474052957805896393340044673352872928960906329716066341286005040433309905722096666632336993436254500371167453145324250554816323136662965224721394874186492205308032864241800936089254459451308459914299916753276140159717065177216579781725338949994768368205344248079217939121167207941746318999639653982773783255744037654907832632189499680462654226658510057071062313089846147519711524923759114494013258137919634731677956949241919105819025992036723776568622030642455477483031207727497059284903792767934494251646908467568720894569145950194546848643519054116005672510131985265067181888258890775323652383866883157319287021474695135377929081661734367042644834486617117467980820768558565078377911042327126373093422724116662924254806014275990134502558795907093794757473343977844311469158531415556903273675660889870167198653404096722683207672875698638085491879162935041765714931013720232735712230817482472333543609270432222130098461644537378591809491127758888358740639054684113642844059708392699491745631358496989357957293520632583559564923354849033061962854376753430376719869095169650223800696872781106030998849788340361814044480282084386356644938281718350042203491431204222343804970894871419041710236415031871599324844066454783519155636743959744222518289315079815569302448367834710942347391451595170366832839968158483904661854565183574073936173567949516671467296524896381665298727477000311215541977656887657716702714228937571336007038775213569250164478439554682357734652663847694825764390471205998760130940751024854318477144209513519935593143929710871056940292939947172021239644173587835502390521495170476542360032887605880060497456585108738406572300210548959728407831452687825524051497276000105055706227713172755783238572764343547352589902972730960872956821705375451876390691306532526954425067746230895384212176177486572339548993809228019910778475690037471282240613368555263141357102304639040564110265252958778777189174932939924513287527366064737303144672639784021656717103745245123399419479213297014773808913865512999945221449345567827070210793768897213816685956496527698791161485870074487380995861957738028647931668058028306350909914505806866044779856572338910012051308933999208771709704048683410276829125385906834146735783670759285083138125669328001954416962090751856922777144548761854915802161042562845899389050505383658326076839845117018934563412661280435577658903406518019984802475446025296389599606867904188737562932609784194193700702871121406621517118025076100791725072280176572320312643437315267360160390646250233945423333612600652016420164498543634552186571740892053836582968635910301020695243180270980385162662797989536484108343373538202032165046712686923089949578150406886423964094347740686437750977148270059750613740805177966485488848428549656450376688710777275353222147248486329215943556588248151283934168700813606088812839995571260957120150984090113733667330670004887280825406457317867034076834940668415947967460952148096295821288681189951990471473892242799766648778326962971733570191028779840959600892115649688890326425309717789846851159877532329103856775966985602002602417512866190414806914489191900203229350687350094794675391708607051907694812288878193010927911795176800482442143103515137446267252807105670048708827371636946941066095493848877269645540286423216591255872419459517612878549158306483173831559437954126867998352413386271364337683131156835110077372605675511897084976138915628372012287297898443712813834459543615132289461357198393749727557493506254557711320048677303577869222937789387611241158894535393112369299712484038516334377540285936978253704624543405724318993599612883986864256872295875842664690870911984348656779508593727148241440519760171923636526849608543856244162042670246070564484564281497468928579934142772332521294546641374606793838044430537251909922811928002441715409411267538605432579921378859189460703665603253404961826050626319401971716102771092764675292423083449726511606768971930709478643259585262774613176578170062359775281737978140693847406958537084751447137923539291605438927164170321176704911080912991112876104828817691211457152306576728162600175673493000632641402357853309415420374917431334575236720700764398136201314180341996435918861304124753739490527563470267418078076603437455225182368668757875547601494564170309868869198119081369055972783832372023590679909583128234618193711215179579824184974342301898293875012070164602696151485256681935912607640250653713503285612808102371456960428072301599085910177217203907810637754127231184203972076158140765803845850145291748805624179794447183464325602642344220653534272309609636134055981750602005623043174261320952861651003037177860900855428196833736053374221742750541845690096453217952378564969302317302302149498490767848986362005634090602332114594306553351147680953357682536548731017116587499339316190711401973328462171389535063116037465816080464519577499214432498003518603662475289950645076408924048329281280764067414290802299249177665347851548667355066204876943613682243899809532160405776082615653202538061169030749663198397753579866159462684964998388399005837659195873904740338251894214139332245386761930471330497498954749061286457600854115943329297283734491074946485460465030371619623987506699419002000589142523542081822776371473023212890174948955592688065133306395351055174749382132714956130408717405133018572697435990716295573336867415647453185560114825785009442692871276344030816746125281038012555336071112817537364446255557965823376638431607924558140774283153317374359397633475914158660961313981502620802292830619429178620991351218779556990325051177775766114444983006299579105082732902653985728994612584478740646207378977143872591569461982380611575677306653739889896763024234117352292274232440018884903086312595988842723018579782244870614778998800633793072500327493406246582922622566346004603565870448206716210488505370091773112235973476820427220902122553223091722029195063178449864542927970481575574965459237630490139500141986809596055522424920670034239317347966064152661965471321604694589452379918199544112245718974831413264295372360074311601914933066925599594705757778265935130532154941326834520219520033163990708018806545570622050316201841125124167808914104924634712036171216162763556227236304034422781407100920505494789262431578152574303824174878961982988660395212090088136011962441607936771291384362250034083768264020337173095677103477493741465804747875856152452977712860120992708248365022672306310285971383730658949909215368469164388838130567282717913051025415809604178011890945417341247259384217358071408339236643879740900297932649839070296278617252020137014649034937453896577042534550523553629357764244769247984591559558321603271344781417269721747816774970388027091902338940254001854073529660975385013848166484124392463602829487173901586079137956682371632488794650353810418038036912789698420818016831523153999939064680555521856014637087456322381712376047945797034061714475911401960309072555197331321000051331677980274053065723809279418909606575205798233238304100507987642566298757401017789093360988714310271195920662650327177883838070784118984221343508844505335653388632654562701858687959099485570715946379247768189583405144986873770603740377016749290627756334143835848337545280522422829296216983566377495001931285212499221897610376694571477332062854514788396067805300166264947634459894223955345240367421046769666378187617648910041594135171195178339938343912089006560465629655257759177294312545269520669862907902309152969804264503105857226944686187334014322324360387609825560372916023960007771585919014817544371694247623015691340982840171457051808229154986107029679680632519569766024437896405731389564551186278738336559044345154758939592690624428248856130974180107507724673197414481280842804174049555972932951583055509559499411281257656344172304413504858227398014231123070832283862535376089555491792130210335852938532293193694151106196041554021778377462793912284726308828414123337543807255998515392542087072187981049812390008837835226355806074105892106036627767085214634220214821289419321164304770305463736396825637147263310152073696053743184858888020775434843392837213898811326596934634606731328878633793807633427984064965180764230298360973093460640330124020019071656526174499883705314982676228498145057873527791915738530971082148182486244489129599223062834448368027678882031977064394065409396474647802208940975395754762393369728054270048131398836437326732616406722600820829362539661454197860618692282952042169530137892689560861513133636036295061271590395159693709924293049099328722030642570069870509496212018650917092369069902218326057372918309060647719724761423078415785511556284165420737103867966635621261477346934133914554800433960514882642437125119277492426382149102172078082623746244683435475919448875983012054436338479414183284325233581458503643877961906029352926777579547546681379519620097505891822380523353062981363457724184780825877039688098212612633087389172874185869823859386087970217870424541772508687946393815416176628167209121617598721892516137430654363435544744607639061866077765559995875936544984869042177856978761571298696004249078146809236555816881297850132673477879169571511040320623515291043349431890049993357406477565591387049789779128194788359127817398094635711325555119570005348192607446842038325556534570267758100254673505208127194992339213940429560791786071529915713437954291516475140320720952853405945030031171223245633782986689102491635922417418464799142371473209311471027593567743834098188007294468739547052375152835947792497956314159670282112411018877518123286700692321342775160119665682613864935498193506740781631160079857320221410526629142818048576018045314883743443882912552262481071377379037536434028867167349755505210987613811017848319786996771219906185799310307698419781032000745051573808187819682603683576789317897022352493332381895881972143195889224730197288758152549273225211215779555482677726683443310733395487623026539719310850366507828153655048803754678994314874694483376108711827372988323102575189236887138018461477128795547206679192177693605656282258760995566970794301845966628854844508821319365608503787781671932901651605789214021335924810579031974283244139946278650031600327795183894827880704869415795349547989522940301896909793225847526343374386970749768712056692936712971043421038259047054152294350885434032090539688604843957556234341249494589150322520395171173856537833180805266960535297195443496652617145228006801060191819741793953138810069691264218781672013156095368120384458028545207230515362567619889119968425074157004374584004984138401969738567020793469826384221264526313929044712147060435973797083514792795527929806819445068642262929241790667631350710123264319941146896615390155120813077228019426799753776426413960458428308889833087359022652774089716321260791327794642037246585252718254904682016911589273016727911487193900192682068619128313959850169752599941172055998852179963572428057910241055592083714163784883821260463613715581968795264638634933014472830235336388986656394516785658355791245101832384128119383766057137235641308847989231884627628819520257550065317941030192766260638351254946860304994550224708197278347500481068659196730046848091045246028241149263270339394370139215559155514059531986726161817184951264310230076889108754548025786854648516240491212401929277524770787327241682185140541339083316953545847702217928343885584886420490289726503021273656734831246486941368560262410205861531101904485711787554271011746763500918815588353821868207208847046401711234829529561600935075694851784658449522502558318136437448682834964982687889403663291719492223787117533043893969289422881557082398438985948416799202587403606549028576483338268492283208407543142059177876219097818827736331681367448280954038422185485166837712028084964998862404622659707273579134504975242588410905501069220512986044417553207313226617848446531139206617331095831871291168015618322529097806133199448299965544977506129588803410699408686619877682593007392469171052038193325149676159359695100971867482914257920775206085525705731077336366959741984888521083155771348593705946930148387145214632547276446883572217530724079124748456696688235993769151286133215472083305422245206046453100158815202035935291550141889922980828734706114726942677406400215572975203222684155404971769419390661959373744019977410197070784979983892329063051179660086980552862926335796588732624997475599882865006025776181485076501095366416242561273408908951047227116463452239319591341467210762782791462801018029613462879109480334871987229227613454908514186299014755741405961537037121932552493862091020610240910988519779659196864823756076268289264618438546266094237074619585134163153696051991064966096578944240265357330281845856954761049842306723123627362473104818115734608404343503561133716605880536931063315085032723184396157549241706101996247320655865126810929401023742509452430226528227660756670873145735380371360555942330911125463937075929707589091094525812772486488432089690571762745432089503008785381646426485617111566326734099332995013775690089103572187333684980919073606923585206898048653104914592479555181996308201123707388417515220551373029411687189331431624300542076440577524989329455781783309447821416225742954662907305637875156613886859346507041702317634289629483807995456466939704342383598976641240547335532733614438536110471444352110322273752421601759637735740574249870164041106881322945585417967886918393555232350525951438794223030526276502952557775923496344066305973061908037934808632494876227965814656664654269821036415883418210758579138589816328268819676272591703277313061085474378084954274601394106002215575060054527450368919053928832133491136621854579821985895706422088073695047840537488660348226609863927732567430121114559055545185830773331860102524351766154362115897731435689159899264673522798680145295642134132847674500327559565317205590229262513085968646545198421351183122668065237465674309142544626294933696535106082799767773518675848626567207935466065918478213844914552765091732869868683280149346215295504108601769260838613063655144487244610489710747817728484486571684695234458614928276903750588790426897481339122161353095887915009794306662859439625245694119358910348237366964174557429919528701268266900983923377777313065365648550497642180233219649485963036840385335746388628615364501605425343993512469383816038874841828365411026042335059239164072925901972903590871264106909526632920071433206067989493841497749741659133714657707585780981991200224138364507049622714092685285087515470731653218419105166286296284902422932759217968160815410861214810835943080300104173644376500147557183953881393358588422314524353835415568811172712287030094320292999512879142605720497500203723993701301636444222218358330921311019206528495185449602853313965216115041916043181723719140751541513235560722768100813323980542634146392541537772880058468826505878096632103331627945696785765704119994322022525807231343049883610391005042568157765735966156311671517108473153805226601820926211360677741809256846963471073443755520750023728390013067353505796008614777555464145941952397429813509808132100202366212604419286479668469373390669323576456999208966710144338842992003514817140747773721549888943891055535360442163123924534274591102167593825714909129266719149921254979071306614790420579128143694021472914703475767221765957260031371510774645443871356490880443801021715528560529394807174151426990180287036086863869107737533460675440544215567517701760588003968097345093726914885797741370156906554745068852504328964545925289268392933241811047443397087682386089067849401366230785726949350734467431409633801019650150285301084915655074378865503547780350739294510401046477240203777285725865376148159129818790193104863823137648133853857413366800070598653222101993377303786289002579800535803076922014867339466628262339460369223879295574468422109263511611165130667255688307216284906697413271909982786542734891515119849615788025899507413927972618468578827981948435378605325560279415461603932569289048175342888221807002600757798487156181828964159987437162061369016388927576195372083740241878764038545087502005830559171589754367291819126489011112873208604464600831597009474893292279444262503144985722218743946478138323218235356872155064817497480567398149232295942999450516730714603748803690103085472035601485937609400833221270318177213366662888838020084903450103838955605882507760494682126842664658979141376123358767677043608196278262395130936274533867848338175735667486816242017759038448017519708701084779503098646392989656612889065709170173080397044117532587997165725485158499190165021473765828144925317843420496953639187110403176056517665495746481623772513513427489238116440527357649616353775418463164141309929273386817071355333866593410900304686258106699483896196588558483039407451735166736742480834343824140157746292465854431903139335601573181779117039572759039062711021459197311832581378417547798039927873536984252879354826023791625014186120328675041093766066437806919060045157061384891751640150128990844316222824468637449669607460017325377845388101881631011611252700285405138666356703187034802162615022074189232560101781662455133538635460748601614141726254140975614978000903840646450470518841038602166900454242872012910264087606827383089045788159286100688512216447474104194760293548716765587541528992447702176747265453183538999295181267400011351457482827191157097541025946200654476549394094405494357655923142477296799619222356524134348288233149814272819348981957162523209434459564871925300035328691373200929027894185485178522518647008783443469155638461456092457087798529423824181113511501667335805875641007508649932704550965279497593324765238839995592056581751754031179874216592522422255615039215394339494962342310654555879614435527756707899803906884452069888224662167340385607532451991770226456132088049596940331415938684515915573584334628138469408210084341566360364672648127804070047217061964001936074547570546360309947412222816013519047254837236386698404520444621332805958727023191490512931941419951160615636623792499055200816217495696210054148259666849683073002174661109742311281486478335755799476341856228695951991569055187286211035387422067475493770821705832332798203812572102438463899282600692171868540240792053577669226433613709895961990013919505994906499476185385773262876457865966353647400711973916152041783079076856640292605247589720279454815927193716880169290121540626247346260908174171757239735823711412938904253930401674388428004289163727153456554499576642760114312613418382405231981619592052591347717536920538496105241685507501322650024932984504205633156578517387165052727575445613502905688761730464946586950691759294530946983373839725958399953938499704374447453274877347303215897607769700742875122249193244768989760290914333418208745191704251785803613041593535057590951552176440899414472080319105504724281771529199767559412860412413831694508724410628370355998023273523402056342088382592878819997678705806613084130764066658729354281651497782634361027402238145811219114891703168361780243043456540059206072446394045019181101972187993744146047579675528910671552927730355928977943705331031567418945165245249015941323109909241100090794584647877817722226907661128136999534441361586634281638951399376861871472916034746802351675548362283978796921762580926819142224273321160524867219765886894171506899001089875259121356119431323351298213425058339738270742502960191146808189906194306745276842009412501120352002203176989320759295131406388377853803216184738026232957976966395011516030335655125240212873068339605812634139736528400078502729563657320516424790938905699880492777564091505262561389058854805582455437290313270466029851200319449214997990361307022460329482641907301088824689885126812053552591855478658623580949726458549433367317699699525628693578393130257273087005401043307286177176624455940334786293298222965186981316567483463911494041884270107505792398993798020700434582711981017004691578568770144834480343524498860800703497355368048021715862277200156609076402318572199972651260818877865589905196982894279369374920101043569164663543851559378094298215873188980830451118254153587494234321481335179078052539573278778305495359308395660206127183658663792129950027458920779161098190927865555620390029293825576411269019045752928859238997958702970326592349990716351659165102404962518040691360731941336724498283073383129900804054446503667147808011086984138639088325599658636913528917005751979579696873855172814139502904953428926555573000750715894301268932874191386836719255925365320301656262522411862810795070557620323808753832489696439248659527880527323518811889756820346373475268602546352320694938814374029035061460746974794775060844170875815920118510536068001074796568271247372609509977559834651893556979080850526332375451250723893189035532033273448535541529929495539325988760467231882438695163354391693646139784390021773133789908794884978403737920925489082102842017072602045383603021495184636420901572002822887093863336667447579784150695406178391522943731236036268434168354455088628153872628529379523197707543015157521135030121503116323378192560833900221213803833151993578414148234146870590409976682282026004120046252060902703286642798164993751029426818111377184910644951007612009018534615590969888868035331401200371036194971979931791807096694170348194029484365735023693743148876369759694451604350976471808530081618107453970666610011783330557717590097321899458264251956684410423491951163955587961988559692271355276615453449681714894969105034393552311542573995785382865766039763787538034891919659953708584292530862221640098029137503318028997012424210924540680087094612707626613751286053140264062523117040907504114750797071747867475401563451087911666374318616940427143189857932141339285328109074340513841206121737429788547274834735045285787967870601229467966042817160690329500926187575811171617488374362003315270719803653594621741453278109066221868337955270915957847122918490088775020376104973850237818352446192437105527564281844087511217808727137170507059514937763055726030019345106680214355856866925965151982524122665384312210323931032489711770324621493038479145108200977065419049053033625719861529740297931104443437227338495416579747111295450522498028004736586843664079572657503389907002440030143555035491567886537760524053467226828224806236301495532271934149959897235933114037124291088922268226270068106025585760561836242732228133614325877971654720399517466983581390407481370965641124219806916376321490069967493097807028651732755761000791959597052535345979114597286712235224924411453001248186904111953144065794212803426063590577296103911278016657403542051613719944478003639872511483977552160300311901527330457820998452090098438320935731645001716781216264017666041505621081841510848590342927337443416097892931545167150520362025209293405609396298903576173950702314935467222850176584600009274784296456598521226355942142250775545944249869659233722612858128499569290989476083259575035870723108080497831817895254066766520865892033489261871810171845520070907728827196423024555246611696146896191176164383257354534114618645028055472552405772148078418559365021712308467700930490120641417562571190499255110581583097787449729445069235023498143661584455553380090546432752586421078386795512825712129597979727289215736890657414404524216216030537716115098931395076400924244621805834236220839339630600906676852780165430916434053719249373383014377461197452381350514149446530978705096823933582184947374393915328848692318694293057946635641071064525189143833679706213609685351985038132922999048048677873675286445724903052422014236227178772116544017475516540290774808370656743541308192233558545375295348733566924156388788301692337398948669554649082254063898074217025379757048385376287799216875200489750867531687205533403908421167132442117415664311143849698797747841469509323368634000023325890464661817296060731864709513847582194961523205904818740997451152962891315367630435709717402320124383193195831961782439195875530537834236168598193610021073524986490793944780739455355897681357459804547207187970753469824536340307292828356040921552803454750941074150550933850097269906594452548068590215518214402181918415049920677282137845727862981644973723795539665840668414751579795864508703409806267169241843413983640276407115345403271298777220780382377992681537348280283702193155500600776515541925956093941619172834056000622817882055516138405217229978016550061432548048685560287892785526185443867801823348530643789907614979805840204725184029687869743939322101787016498598393342824927684380710760537020039246951381481601311017782632086596780973406467737979626291871227852505599358895804491326042095205266823760397074721246329587534824127330480719014367048284495641811308021559535565693218390975459014660239177260426918386805551306371196850904512617986776074100228431626349707067348540017894704034546919319779836256465465473552605116474396012157637432407060876789511944659942290391325871326020608109754357575792639740951709679421210046006211791558382316010040815749599070101010880700506132849434807958444252000856578885922331416094081923134996766324888073375792429047785906785506289704423932758238327875338047282338287538883594958736495467557621202918361728201737446858796316207500136130968309672766367494622846144706826174782313475210786446851677164025226059969231100489879494268251400898279589382243575871274375070974438417103741199444277967000418501370919537001079953981878018184859733520150078765917491483159993676440439972804086496400971726740876893491895206166416845679246626378396099522163143304895158879634714030733810075940276055802624110764322015934380452211318777105871627821639613575734105949495958665743907992532198568128306873641977661940286205834711366911204249976547643052053155938493670704081618434515294498096972764163349384196389369086464006600768483467976841696689617463910658097397976292265787232885773110385812326426552815729831061956085157564575922552835218638058700056884409306424253281059553454851867959651960864683921757515179093354492801205434211291618874747652132214953463747007360265547557201940055749035007276120348125229193026995663259610157751344887502156838931091007378433155724502412140942352332065063262980833675513933021558611102963479263493842138818185837409422414738158020924719940657818997528497764184007009747729771205079023855113142479324641550903355823908200043563414970770423792756235249794954298256890187281439684053874241786906104930307283197986000517590801317705453869720575789204985900941886371262591649431977188572742921661665597554599841717731451067376993802464620404577975319590855849526905753983756374401429447121781636626393189484099705482219292633425359545677962490894149032510030852458424583854536009655812112040451897895002101810854127055889081265866968023491092430538592878231085303281937095640928433119710323150128056588289805235209655510304293208199677938709605547559465492286385197317488914048917390718564373709668249906952543181714148873992773987908281268032986304012971571611265383141935994244898464327148946982539775580890667607150086779351053112817399818373880775646176890859177086515942094849761770894120536531910077502145268004788124567925713757810365224537524712517140839397859031371278767838527576923436550710798544612397716232941889732721822644734309275396021961961875339914422889887402059883891010123835968676831095920268251757413679237764889517280781651412558108681191857826733745266329403300148396858013593877845853460476586235337194871220498541170571789570718426117882004296354309954168560745250611502506302936382727988719596999955507339145321783605059552947498596065600504908160580375005400512257913051678777682352529619394272435135826663347192062718244698398765154641204435739688355812423578999573982994841896752278932353636914960636589463417134386714117484739086285649288391943397712304449311676025124692872022364586052590438200414658943778351435826406378864820006727321376045377175947608644638514575397743704657013405628815562734080945508161733963463099568489891749313458838104348892126348234372406918835234481981169130285950054316296341377315619158419024362206505884311862122579388183722434993831397806391290654112013077655937095661136081650676340859762292872365904604154781787353955430909818772403793497939309595080693995670139179116596031819293213146679002076791137032040308666302823204226389296897840040363342189676335072853968269295845109768403651074504120861425274410345176816733092876859413120353368169918504508994183790506576824325513455087730808067835868542662563027216669627627110241244978621242674168128614057166457615191819307564575803872554556946291665264064130315165328080985889133071635940399716394410725252762767773676526380406592146223654827438644348840291156462217930950745794229123258316527610014639497385398164009322070132585202828091996670915496439199955400617226760095103781322761302164733412580456521442193543811175667502504458924649058553153501189658484256641579247847920465310799463811547273203309840588538008818150979415022259594405045500600659815280089711874313361895119032480187435270170895278551750854422784616792624235483481946055760543580195380018614931275220367334337796767381284418850683182606834780477625351009423684455314638116819959455799164272692982159801178286887172815656547292002101850907831287075922114081447574577942960962737154504314955348175033423353445572678030049517748023251022664481743390330177279913956604808690518733970820177317787924013060949690374034920207253133372824664584664818969755747465799148950666957580509640427049959289087141308468388008660529042286668663725184550042274986526985748277804790950643077623577944709599612759567118342882104337512439778006148850375944080166113902767873687454577073650927988234396937146468249909705023165885060594268036309223538805483138691629507901222691404703687367544579076673050578081540762045713728962152598449964868017641813912254178564415908558888126452060132418643025118362267435944209209430749548050174498572177982145528299149813276765640872333007421033150081372108599623424239933813473830213940350740559802831730756967215176651222162300959762917521975517061369035502831396186603157179597727633536537550847881507077146216062601917388890638908801573149070934423100503799834158361863895987191935359407025762651244930654023979679411313110672464264936907056468293002212326264395062189506147471804046779445287819862698729547259638152984066615866123509000192664599105060258008678585305591095637777469569856668809367216211261761114230490554439783361220425317056239547170411868946540741692494881715315869499298744867068340614523401249886260903477750918191562254468800795032380211605924031202771516405228834205191304397122264383424299070148474933069067220049810968580398132059675353603262556631081079230696569410471827300736477517864466458557342597224275507740419563594249660949884841456133026405872225949746166217284437571073811125067336626947672279190027223704886295201374162121020136825979206391482200036773902597722857909889757349170910990800334428999568063282690679371378519077877997205632585875496816185416147098220189826749409476123587183143882771716254712631553738362803899443317882633723412759975822060800497551830899050994631510157434963696754591244880391171241794480857103941131471474787642990854148731664663142781844026455800185307808519693907300788701885656378597676235512946602246815430396392951340869959024430192575082698660692616660261454232015455869019586903817917607543538763065336698664893381452960011692765163496494288898860161809954459349645993926886403831379330077938745857500924787334224843846459577784033441910070873958097288551404797680409476714393712543962474101319624715796345370572221050912862294657750316875030056901166148671978902910198294569857984039096851231703533301472474489638520697624438330111995286387525969402662783929442270805607794663343599233142838349878740223475043753626504009592065675920676544880362446392966513092020214283475179628763300136011346916039077911153364719233990735824921233383884974729019627918576617180133666618784525912861612664412662198340618644158863373124057099227418567810349385580568669533237439365895948970655932995417675233352694775732527808347031858864446728127026435860931281073657812037146697092885424013399014780215093328413076027308842768712196851946992658681425381747036171879203566265764967682087533751568851460605770488224623197078361869704838576314493222451279468909072225359068253776875098853697702687843389096106885352670313905601721526923159077660837033023541590033898840278533368289085562650251114588722220831075550676435804032075747262043917993099338775844408247066425435718725275076421289034824757140168557682250505585770389377241797754895272366204132208669071343076476140187909418648855545698522535221717014754417797308546929603463496934367399768634033132269952334609070529131786508441145713797086304935128070310014020752241697559278283056811341397488437327859660358108890538787671064251490911333818507511862793974511569071165921277494584152992158524169818611470191982779308438332366154723639722358515863596710063362478765427791548030317128507314153336652476074337525282988675421620016486872239247803156910026883837340840242456558524375603088095619859570910728724790952391307414711735777341298651171797756366381948484929233094825474802680230356560691278034859327101656648554467841270307499521154848894959631839823752850398712900500882411956286377125339031690643328214940554375225083071899787327329597056770073128420249314946398121821248779747895996249901015268997485432869057389511779386110159760938416567808086697055073325378059691499003292007030615176466556981822907572566909941135195356952816932825936971542647662496016821576184889931049734865567840197095750968067431465321866090030879129881747635135964773160663254648729534956584003833913103535404842422794889658427754951758112972616749750202755957441414501772159777959001666598107141088754275085054845085574152465138100786890425245498247704532971505760354558640869922640292853774300129000564390252692619130417649692717233513754755200961089140787397322635260685996903871170510830067697083796345685042570685186639050195651352158700413918871536233241359634080951821743522554399631986781212969147719120423199564731608106364967016891456756200988837367692064857161096233928999217477705125435137028112306532040685677360621906353220242949826908805277094842631046063126889669679115404800253749134797404572484131544088228760749184120156820906916820025682540971839700340010796377619054755945280150893888102184152661160438740918525727529620942008576304528061859672357367529197817481993222521891342462968607361279125526713872622130708666701564679977916573387104749763160738124770366806199706675216016097902736240701628106033278923822673817226758062008045838696526439050128792803720093449401440160088523622702788461069739929410902249141976719394317380172585742517983495307008799131688819842878359196933038229045132878798367654759492054878572779986893416852409406696380850961709711277830453638432854783699596538505088042765340980322445664331103697252125364048828244819961733945980192320795573389638187315036437895630999490048061132682006201789897147197035091195414760869252657446207647658533611261635874564839082500583693460193066217090624882616873542476342717719187520625265603434544516351514582376236483751518324278496514214744105694324161949175503748507906088965790879752573378633692365850850036422435365487590686175423033088936756569933568205134547235378900990366684337565183229746644749589924525566309167158409347616611460812222839796734216364335459200666488145610045169370049946378280884162242441813288866086061949250197756497579410732646034892693927717300995252057549802857776677135154277894974308088215099427741843692317542649591960264831259790337435726890859594152473693637464418588261495464838448754230766678364618307487564608208156934270058849167958121471994028168342364151778167075926722451741869862348335039235349797102459909352709590877613608230093604179376509396391432875360050853623592097665063817781622806655511356976572999124455375544921274949107503713563090997759905684538101852541316700783366548344252570053338029204949540598488123590289365068532655225769208783470180605815065392154043375496247035214869277191180469227641918073771296437181201323915344560081345345522033471115142488007844251800542745365040876001140160462256549353175448623889778612590276695191053645774751240474581367498396404173419591768377650954675732535031968526284962228086180105722654854899328313501291731597401532920378774120693046392771033225317659935291082746741026929697684055636166473562186372390634785987469390694683402659157644050150820849440611304509955404959807833167609925828701411805637970110329567762235183912539178866582815460354852737378378275795674543789140987730387864657353373126239438248553505051457913755145848197583043915445700633193902238675308296462957578041471875124140451352785739649519917440648842754525224667815978440666296777368857063395388199291514518151260999328533507398269189964010456429871938431729992638620858871612525073978085484009078097721654797072767142352507667534497461089914457872185253999286013407338231807676030791130979402204506805844914248802125512042845270484465281059594237350551176088737683057066221429335652991705172786234615706350756510895700384352457801962184143648136660502950095423458204772136520644274553732111399184590707286812088444293072606760245301420383736921918326466390947532384510369149730219993575811170218488517178982311079078389251972377333171415748141429959789970204657313560535319669500779522806583543199563223289808115109465377690414482479202337493290796522875880482961776666332333696489854157793777881744026488014854674239804045350911367026741788359355566519671537229148822629215969579498581475120104009385525239827903234103365705599000845269908069485432640873244150440700731318860508676407058566082931542543490452752493966203917526066084076313117991070096877060530096480798760304442819394091343981915213587998980695405134563977346388427626732566237807812446335643872848119698485693169701535255050767956568976018657527598975455872293377732324524005189216111568599701476662042890438115408405026722408481151631239010728895845785198624926960076042429417275849517016592534914968554508957623034249230835617660560191894306089959852275112700290642653538142222105354800034532571356930273355468541089868795625960713383700779013268020670353378280097831972242658658932512866637995050711694696730250160977000744887268848303306280670442081260566054498726983384917278711419283868536853330724154585826707733382499704019153233178544941339766228472333411460123425432219344775433732889009101822807648705271559024978314485702755655106576459329952049868616747035164769221021594958271421768152447080161223158729367458775071377797182379474000422683536966433275991200195759324275970588835819106022684160333764849408939214876691025780995056950549612712141067761653248997962303381798294270049588141656313202715471312222113797237287839000890908520812121385868141660364257175010323830010800064891377968767477272674184508620000094283468925895831362634064441634552124003955642929780678120747261122578213215245202194036682674148617772320964460625112185998025952325601666077097980777341076107948485030083168953398380305474876629572512163691667674707194603600687711438614343772799380032354983896869800567359208261497541640656004280590430723757218007328624309190141707983811660450344181197806779828208391839929317525111249893427295044491034050093563688974935413594255902011371384518449246167389630682791320555032618099037495507102603014637583913840713878111211385413410166585471660406335255046350565079123339122333888263382523173921545117162171952104322400278933945511898944140712176450795331774019499727889109030862698959488057251849837043243436285348954011719574048395144431378428128421932058858910460685745465511998885564219370094868029177999058123057973298011932265644560881869254727159608043009583425833464398947473977748565099606017765063606502072161495169726281269285632704200418653352518010993460949931259505558134320513328399231520128121808460089421168521913157710424299544324559567910226576774107783600412455702567844365203012389015684579880179886296346626833424059985767106709757116370621866879771294276567903013480357917868858925955022491876064900485675919938216978551171172575240562488814202504674084934872648048320746295711408648320106873118906572844405438398667133547438681086541886620622243364761614626199371181701490348131542520495926048521626732536341939056383942736426188727319327878717543241254481141720157269754222529399290316953842378583258652547612365149250154000427441846209553758292083138781381389442801783332075583152944223732039627497019442973393933015388700624313644441881105911774789528538380609125711026330403845804502541595403783348718478789900751914948890666745814291000307500437039368135981893311482309048503714409418682485177236429882002121960351807367875620529945760837606226173541546298162854301193406939318467405376382591086944428707134140076311056899319021719941424585257643582454632565956145555787437686206939885772332304605258631466034407736634348550555481432376619054853039452563884769584013343016627799826966025012912536573022482894648872084810413531228912838431373880595049966081166520389854626963361476221816077381955696030568714092084136485983743979165097157919277845528753320503731100888907795963021191592102469805979503015253659267320581698104653437267787398879015503679690991089065363980802387896118849955224511819753068021178879447301570475081895697101485623865685765560115923164478072889912386068399646520743250585604438568704355479302196057741483258226696619258389252353184193542542143563668171688516876625073490564897181593305547563172041592531647710819412745299989328063899892921618446898690768623989915377494519201095386908554877965234912695724982143736690284879918014418051464238861210361033025765030340368740381774874333780271943890119434362299278347300208969498330047333856719333391866044262353932803118888257074261082300983849266519974197207255943406807668269408980294007501316654207512425094754323123915107166159924565325734548730612773961670372965705035644893109122050066893863701708743226804935653484865651079544579871229752750814629748161998645214820779400274279247692186574471301521843225315256881768379615407324682732746023030085244924602903656247529840316847589876327907647959311325653145738665013188560369867392078685856565045990600732314830955472933682769862360156550153636389119004787445705980215812519515092475183989006933307776679358957193890623245198023356628712709881163613012838127427844716460314184395297358370071501031188868881244869479487283714130311884966976266871684990927383212993661985709488254299761235914912778445589641334701086117079267574435784601237989215545363523227698982360087682435523106384951175677315450076813871947846342387768173260906309817582484004130059310788975935254705490129637629659450216037451762408060302338590651837217319601976945687941970028050639052141754152099954805460328093413881605438179413709068097227872777588760075334209883630486705416373926146475592421897813379677502215723927701199333513003271593762141767142528214875468478954598978848499617648281572566747469380196202127285719827027869059654989574086920650838318229442090574060545846213544555396377120267922343462509706987765085593037440776981792483482566097391554536439472817261532429942053521130798951629237732269250962529307026282858798857591648558800731497317197931158420823933645197550150245915217735990977480703754184692472621224882896339209586102994275732796469428443746782776543415581126753587039741579503728855858207194200535154855593717685185990789912329418741401555139370552306477675250919111119038653119767022913221778202348969915927375271504721419267579507171277714599342273709241852421859051405501611664399657640457535818107311932179778662932264099838649170712845870561785631269352726164438555830159014050507031315137776014297894749068048190807597331235293991362224833745353060650394415119658514466191396780032080523735815482427684757541888357577634182068593761741145531098345949706868012732063912698514742810108931626097536371701059729967532535103613401923180576811722484589220857409765806168367901833590152766857277753361315828648486114558515120413344233297645681960213404784789464441846891874002974796393255942587103864009967105082230822659733055619349454889324854666405165430254413870378658303253296357670898275343106660544555361988400276291920458783762320317995898881400680122722702591768770988035926530316390415604133549993908361398589341213561261972316021212157076623080911795164420588452639629122448265601901141961471474928112258127126010076004627756317118019800430709230790225709242697933729644653412484673864881478081850000364640456265608196311844027933713704451774289730830843167032955170830029376982940516827979144606924349407965537934768958028066458230237413980900031159723504245379092467458713541347436601955528090149411889558041738919126289417764530762056853185556704420676367751312464829789943021292107774293194556303157743691195189854319038684047609834496834150727942558124708594396897080752304973051545338699230857328850949170190096772857151615213318570441508334504501865396356264849712258186204507104160301264380283293839527608179463403094923855306872094173260940586054190837570490373721882460476104982898117623306839034316544932402855523800161738793034647758048572515383979911873513258801964629334575778963953729791397351926481391718742208895862641060207234300092620562388889221303355906867493220473102029654482251087633178318833523697075682847361552857900180197514204860920602701882548656202881859380754605481279720985260103618857945916591715952517309119983688609583665442842017396077758701105991297755659931349018039450911798083680448445107223667986758181877552336987637235620128044460205029598312611124117214195936348282509102470574233051641600786987147201230252823643614319048778416887307253472756134721990052865592319333791998236798684888378341886876544812595215870422618112263333771492250042220657505962530643875382665586551194084417425889458627282237804037118515366583997068470720546494855435021120586305814843695045841692556239874523430915454546203806175013051834411081968832376734663512841016935361378619450967325164054519028383443514769162773693571529431399005746031999945374497639487600142445065686299524753666705881602763953815918364681674715252469044705953129821759738537809888397479256832810533883267688310436176481432517300683237177960705245819049780397401917561318974817695336805811393998755219673119733646523234013072547420712906762243221575966219673875326314312735947362763048974993221568411967201777045715559419552676086697053846268717169998180344636345787750981626132761303151019771097156247377371221437089996633392931895836322086384834524160148208028733970771507778410979717287266237259595189558939128424963569420583255903767350291149310270834778707282044057279173582596148716227670235128280583880017169733316566301160777867015531550686172962592121758197398572379986144715025012087194077572411733653923880312009712414215369354263482186074021223600031832421440265540815003290953542069124592910476381530162600415729193325653681011866688333373612852177711894528099110269480713161041951603848282231726683336469866837857143242134134295613507223914395131573627904942070043405556896146823047336687725629807384804416324969696595723048537526389717849053865700923349564501976454441502508657140702641336606656676952185841285091920409334366959876244978671575166576906143533385333661984578260097708438206193491318262330681535957177154804296952499080076740269996982450102195872337286175730144454961734486176170923335340523139831373050418214175205325206675792297069781319043050094080440367936739342631231864365718014097520586328689541917313079117564533060762193380915262765432854763379140068947198539440745447632081533936238281442634015524130518767193086431312340060566697585460421212188541592037795103396831004752103546905611023049986391225940818652744585152886279044978182166732560228748510532588392963744231940689866437701013329764643881141598796390020089998970902520043945181535517451064067445048095949774409475904745655033243740013653603349544867109782702459473483730617712377778944688674884665917040477433919709340393204944788480265700334612813521522536683156333877902031437533970888329062162447572238534352007687093770695615462367578692932823504657556518406052787678732837275754095181438223101115131283543655070919457448775599961268707163122891891404819194741171385039608524355458431960089938930750630909050040200307717879923324029182819450860521210736742333097882949075612204986461927250733096301012826004714989882907774615243463476228980215970318129413270182234430031990709938656893470431823702300591563210492196420318079545540970022471364176861161581184705247345493689614294419693062070753262198126933644868980228399810719596710121986380688696725630815827152899468500706936818398282930112096338712636968843917745145641794812056461668284616218548390263314303687235203517950183707537408729983940337088495858086652648873556982204654551359571766825435303664286252314900130533318787798393706800025059408009213774216166556265209279762733258786438859661392899730964503550936619036529074240535998847385518222702829137528691845068954266086452377008018220681997408002573183626713471590892756862540115369287024411442365596528908091853176122291560420375365533172763891592111133296716416564790587747023564622479758849731522253840109803684177740774850637032169753339246102641980068791965073412989981578642313144137315836615815024187434391616938990897282238084078894647344298330750509762263945377379553275759987590910350233941403855837644998218098684724157023593377242631588719876528156223867170135723122075379877666307256392170265028935673568505096328833216005320006137668488887699936613437727440377975100334054360551891810027424787220333473494986902834508634305345571464539831916145619437474447599089176177773657728910449330962161374764585671300368617331301380784339662444841149249521749623012935385866371987489129095471956555657882906820517864304838200053294934816404663408332920288835620017834279830097253703397863408874025812892068045494021082474410324473063935838934603825631498301080670369368455733131582523357472618919837623806488961034053365487408108677913551986435352176395376051338581666921297247138636050358339299535935715830849303696415357451551108443139765360173293690233574733042697052894731055858027778830069884538548607334615245361907377574197730842504612369328762616657015614856244097028839923230787989122767175719737007590870625375543399848420660395841288551949422716954465309711336923708637798806660195147894220557941337328698838697642000099789540293033151661122494300560883177055606649729727815596909422682812417993902753691527360383854818981044549149280454488609132135599934824257156249411476547487652070940367033028079580962040866467735969344464449400790971228872294328188567392691498200064510652470233273177721569037307000311358951679056523554311185925166350489703925827063341363995529641432436105943690883666696272799156977073318872912524700198324750871430328669113844847272941113420407833098694719137951608654127748949702269940695441950883186674819906183775665978671529634795471416758549909396279710958661385199950108610267222879459151748769291282629066285260716106032247566095565657631868597167201477970582916935519046637717404878820698736390551308823856485775533157915869915332943918818727713786056511224080824547486578801694132081629702751858041156862963208784167186664275847343345589417532583728810217130069121444051557083181040851666859150499504554253311725289152325870002357910389043415172709696838701688067083279838341761300973030543519418889541215414718804881699621129508437585410533420508950251414906224059413085105459167596885719011100845954469337946367326745044727381553875404117518524069967573211675695961696533259794219125806031074179347468527228563431163115791013266732931662498018738567345905645339203825527805161289239436633066441677602380553263032044011427492247224670816631344792263377059077160701494873089858072754633895509591951049938442116828841638134221844166613163094359676663487042520884258724191091496902052484117916845544026413052968766779781490354274790346864900184040294053603569491078976176513830191169753138308691764981586549509830361573929079751837180273998177062651149535696683434244457134271970353099161990506349975325227039338623965684653700481435770762169725020960362555165537287700667712386781657149759777530055359526171374214292880046889878160395009335625894147005756363881256656092615403968898021586715862153471827542697655057302073937125765687868128657462321632978296337925043211291575549098773801591676125726874419348776983272130541659565781161159951725969418778047538113963988219879054757933779545412115591572926077595900249692823868175637917370087934171288357242950507763680961495405065054235693418726141305697444947275625152820630838333521409619459708121486117418301247950371661610620538207047429382893975727799514521401717694763381263812387233957956427578013953757729366412963100838211560018669655923764301010738297561808998548157721262173959377296122314962368005676240730628857320477173490203942620816407282306253832025116771562375523122038437690287823619323804073069616886104865853809287115270490409557563911308895030542672620313712899850507813578436364734983652688074478520981882898819669980877717624567664428079813924160461473936577486618390485125501288248030495101393310906000400395140547267224544504981278986793284293860829072894461513117312496003433698520263770734972587380763292315594512316010029121757611367273920600705294332843244281281338240455956081075809086980519964073139662439794994103480574428752654439316204967782463335691114610056927349691727753327009572367523198392666868271430115607348666661456326653564443027497708852608441188018614652385886854709752165892409159866312699833092122832947930307421006552178747097879665552906307079525442807883040094433943325012792944004954828574194797745585823609062625868130946304173852481902864726906380170140661577001914627739789397079105686501396287732983379951016606134346541766042319613831520143131834435454527983909705480601309908361178925232490830498955118181221151909014031664030175129079576133604133335282627086342801911726818173359440497900446350901432460727814122463701337998306291266676153944083246884305944052072282328588286589821233859415022517592362440307061856933505146982948130795710322330352025869665696870152483877711672951532576497168722263065044298231601470125092308203705390393369119849632501966344881298793475542367729736049652501773288593298704693471727241975214040245278361428740482566030715701673753162298341470804900297110647380907487202592327748260739585328207488041343706930270277405886416435132937046420588076661259436055240572896164690078086565046009293074816512467714593261142845241637035561749306334586409374802960409427112166807570720669722672563473109360955485643732561282586005185406512298947338824835250292352591344392693871710220595939053378105493579108233658247474030400336534398976434984256432682225204383213758403510271184964445340734510794914682002415753937060844081818018411720819150218979677100452629803046391850455709191795770653490600160535732057000836037787622689624581523864554258811333900948698047949373716698472494568955354947842800365211763436606913218186879130207843374042031783368306086092780497599683095243193007830372614367443116060598850594386361653233215808778482686234286779278833119729396748040238175037105712172902245357448089245957901362027539105548584186912537510449927660145743688906416923675865123496826404403163681275701136251717511478179346922181868829617877067925557114265678996688557599156475836204809407583977009028866945135674527497220370587827789344105736739969623157016581902313192501163298088976390850853045870548851558127721812595295723990072141059638542113748282235774324688360567003130599297523828619367512998908978492499616400421009767622047262097962520793839774405329021225175773246799762220698507954551338300418099957598502732693054304784434366656293647838740108959019622869629309492929903442529520272180654924447831447393222118307132276805868754732116749832399339379340632266808093681266187320713185615766584036142822350140061478490560899560445112507006824975313144367481801482555850590932202136540844774978622852043227327772340288685466779154085825019473910987475603831817527244587373112351136195714910353783344206739555393478299459105203265125339464463098186649639505020947817981016842499146358305902910082430612715764555209315080397691170905323055481752194633790145697542082685026786832763066808899603288842293169920807829665368179898369177734791446014039733076813609939894177273185464875888675811356844104441128532824680253989405593596892714321483635130420899789522518953911794744007581849227453897553296308180392687708354233033747804571057249140235519248668560905113085234737819416423267678251859824143210274193294841452378650468114802329641121370465008232245438589934579820953069693029584729671507151188721449300806391759715327795480561557453392908876439241208969379213386749586369190584918841224044193941914468770284097484124800977967066871995693547916056400009860302390221486700607429990872582819528401141201579715964727749169231428283429243326784698700046652458577801860559472403906564203429942768312751857812443242869675493565386701180255483835762654728507599449591833433440147998936183912413190751467961706628409056065670184294811944791524796485376964135163610602335819793945549597173259684088436248368490810586695535075513892247496913986738650568988907024378180775453174309022248850521292540778034456975789575891745037821773630458346795316134029095630543852175834067113134285271881579480797711968790777314142986676575297117324870351464335481161228565893490920458053756999232523300590839708034636994800664092120464366864509880992662316066969673947241239714567612622633260064844577354762917534688505331638148399635105901454635994473929294559269722931968457916293425918635985554777740941293699638538337130727850197736386845154090544970832115770104388333747027284187309614732674618583913712017401178552940115781649454513492102713544330764207342649169054882955352088583830801283834519877027092154246376691444712740925734713385631704991037361938910016232470074125420022808879219163281805796577333228837719882769479720108448791921390928570671480570305197327976240039103865193355334254824808975822650789414893810131482283790882951116208487340266274456312919171288016257554890130675387036067904037514504882621488192081300123501020430279994476066210347121244083965430908199667316154043582501307357452172656413157912186027093021784600265456374261776619753883398256747373170276926675847442462501507727455854085953236395932357830137611939612144724393744563170592677645382895657901320121112177803741104834616554511724172708132448945671080759319402370072389397500634343860484393529911093451738665914273539614475272605602200048675061788637152318410680151767605308251826217085852130279304589944021642733348672380050445093789523353084643928667806757104429673314774857638052237075173802962080319606967322672818822490764590016116101828328210667322452954381294469830222715300573178948832557903022219358464718675964479458995693986285758756081813587245258325541856492163626712927960483679628123002368406770530972081934098053751886000602255443616683025668737527534884004085032265030341627764830752774575434863611702908320473444798231992200178043598322597124991004865793776617815688985517939046513437129358237016827508510330020704578301224474418465000826215512710765040506031374775846928463537398456974744657093641593926568459935100167472669278747437484285849890604400888281488675617840570079781926555169156661558669248592221836999187325139363745731383297805904709609879876700037064931403367402429959343199366159917110840016420999732324291295280015503922192798758370816663917098051639296167012806364884093171641059827954367491887667096752109239159737869483138612315791936035211149777300945597645076509820085919093654470078195385392715416880636425621175580393322825833214440073243065924253694477411687502364929040067099877478041711326188348365576876020756703831136044498691399555111253032585174579289999419299533534517984857911266516697023700727970977775142747737592158436996933427850979704304305686519466218275488305469921819379798716200075231090282694371440393785301326909705678943614785053408484971542257206612690616924479287715796895560000677478425464807213410234726876168898411541470121245065986568062447610317948897797340808846575471020102110918586476779047085455357492878876271070198408983034193339305104468262351666463544535998995684224927384074975591401833632305969577498327070115335432551205110007900375165058251851801750640110139847753856112580119134205601626948125863918688311300552319083217040216496568474377291527263756866843084910163941638827359540031970642350810851285776972967697398649090746109798307507035192521339529848389517520747727545920617176896453494966224609848991001294795084384052459292190193008323481162403741567521638749484368224526035768846724064852993383939756552402286880659559361111267323505546428847788925793081275648631728070266283852439391378988661933176551961924278853641689231653718831576368327336150344501811810164995793845841071240406805509691814635348074758017008297069301350105159374373941865557746425228960007240528476370933345331162744234218696395440696488536303415841878203746094672131943522794139678467085753614011901218861834528728448473528704144692542467977072303172633331363575685991208930612430714982053118836816758290922317392066686780406117372148796583780797330464566524704409372720724556750502722368124140442498218728569716831707421595642695538300749867358003380649486852497903077432340630914425762222399477863141895309641915098792648932481489748430005958018632176895097609699986700872325211672828794508647329107186948652025887410024125803083834499418489314948214569141364725631969400109430710451390980339340659745202355466173426532528679201021120657276589543200451243014576113476554534586348075180574017187900413645666181304523752567855042648299470672173902711626613370517266528150636246696109677508372187192207692409456788219402867121090385162824617996702400839972823041248566453292840001908445328507756186895564857426441376569129037444661306805599845397661672144123605828453651180935273428770142055205450268338693698777689385073907212049361857735227061336402909503314721124439029535037599826479901425563883671624082309607587736895955232141786835069536923337148048504798275437197071434215676469818361491211339118984861813344631055601702259066166789391599398984122677916053128681385992136124447662168925654476818865614859621083675801309870549364943900095192601608081538758671471385144858879144723709093311159413974829524624233133551222487110529394264872258664025099483776359469486176493454977092651442505754999154934926689235990101677994974525899148414367184611643070856428398087465104194973750562385464381070058160290690813758022858193989549067699695354154031939272634134893699308647272135648414432318011900041300621178955637881065015409072629663224702419034574972325359669465655413225436691494756214241850869771479347729158152687058273248451536972012225161355769915024425375370377402766423102346789751658986697782576559255362749967079011264748017795330412591375521201684303963250205659883666747263070025892515216461052019642647686330254708247253958574253519732473614138809001274437398795503683321073667776186336017582649909318846590021998153217110830910413393303770005448532596563215677546311739859960580596298386440482393844708473918068163450225997928951671032334491016687454467389632792832295897183636702571919070582402749295023309211039707335729018659819604546369368830395343800371217329249018331976171453469827346620165781065107137295467570714030160089562707483135412550417675784630169120887902936717184837712769823027585164792318778903732430453520857722320071574307796651550497457855371075038361141857608004472006396840975759978460456228226116350559573971841283240495598493587571778456457122109042562132257573417455595329374160107218515861900179564634244845140743569458015318497018262378113791121017442054110691962232728406253927847765096277914764531523498924923806579130914942323042073730397180443754549211956865608140034945663657344665787096018972748017494336903418243998867685899048994821592978903711146974163091092454242876091216134288449927624155307962732997418906239499687865794014246570390176269454729600451561580939622198173502867756135210521341041606350992498768808811248687420646186618489746645444212572633967833245792451796011167290632202942926613148409066211729904689041842116005684128593638084063274089149360978070461532564989859279748671546040420745259403085203107174602588675980501587833480232718067294914600632174662484434197485427819009575224589299549943521961203732387118302364366629614929447804612039690831992967593002595346490896225846083194199636637731274296784751346662302223820871102498042148008235691163814444877706072014320336553955603198821344696225794269496320849986293107067937288788548357364852479706974526256915602731263546316692302504628334491638314256124540882916254739626158563999534390859782693698530283025122943346075130551039605166889910367177824712518467060473539162802574833806144430983367742388534530930717219068718353798834912382565617726534821254257356887469543993396516522173596650291377238985014158732621188377448659534584329892365337675844848501155556965124238786693105743579481034578833185147913210560899660404900105321420335547279139265432662198148290852167362858543072730340935891342509828960882268569621566625415531649592088287420853098973217695400488451538419430700974596810541569891022717314348102117823084116911318834931426828830416713849824019476972277064881354919934278188344487627970497367483890352773879386257828416259933648995470970379871449775122188340719748649014022158070016648944471126178830141858683963890557416749368076409852968557121169371255739822751701760644070807427285115955847680014291365219081995063647986368312747504247971391907922287966804738198379111916211263561661358250987358076966300828150809698301397244185709563882748073054868224499314403182141113306044626605150276525022131477299074963464148811635264058052353906464043760878726207121431303088621647763729567461903233499216255960169453494459646846507265689656802166801767686445585923222093160836803487541892793278257304119205192655429556217488672096606512086935408876094040373775555755695076186323450637285809210086656854452237309616315096090766618350968801648026653229244351928721791834753977478647806374012294686791132158551609181843416755817999211352338686748085953404700212577553352638419060377252026360636309005210190210298680543771102764485148818467317656882527634304200921637351373034228854119747593796216532976337149763580041198762111665727570524850216275271864476805506089430757249907908703501310902509218467808507123777633219607867913848961326609738765344001830413054501272089729400226706318373637610787233815835128987719639322712192860718042186779551117265647216108861694432373761964455057443979983705572141578077797491054207731092839765280616048085732322607628707064993196985461287775219202674121421934314768881104816330041577792774394821186033520594949246033680048027041114716912147443946171894352275040465297572804119116263457278352651709127337169218093505110222554109374302112948334338502507179606877599292302935138388738938304089367642473420674802945865421630736732413284986865619781784793607307554666626897265491168922473866275898199599115241567217215323365897182138912787817188459093012782577396324634200880754808792557635206412923404268774938940320235794257878062325404513084497632854375451660998149172920058579702517545181550311908471378401007859110286340309718323466420467789894126857346227802166423012287011314193504509285725656546332717557723602139907921728495030393045470587372936143889443442337605957732319538568061725433831292891116473958655215863041023410399399209529859994445761854757535641376595104960799160217130261562756491891338542155068302242269311319416159691377162718504737459481009591741086570845520041822943044844104882715270081150402719266235406359214228371069696541226871572883189022557036098367952211399698900529175668415877707892081246795175095254777115643618404885880238971640388355578870789752289619789005809612413071337074285748421526047380926830988752221270119816861769276479349739894302902353549575367647946676598111004713833557163938342563157464460702815563051788660848554723626350950352657376615720972331389813878147487484791050885394631672304184854184367568802713673751338873107016813809440773455704817341614613608162774706753700520694422908144008015292640160758419547434794737386088028383965146279138453764628658165590328265907252270257724056746670227603550972529039738768260061957896793770581098827639170201627391262756637893451205808389786361638918694297814672278484477185480906404548059849801799043001999997256501276721949100499075861367820026358507935035236899042408536669502160574214434875441505318801490127501511892457675729496456145056058035641864820418091621541363143800503043125632254901102079900271801822695659796882339786108472254872785652411981920036698688951664864380998621297530773025590995180907544121729067300246393414277641346839481060402380565910099974029092896911090560310574070797640761900386247743792020390580422248167164491894472157490512784138953259416416282164128452308726837211003122000739316382860796100992132751914876013865062287877845975668360007050582064926977449300118701101245116162948839178948108991321027267973676428892372122872795019393975492536222957637688483659240776966781936062762873481227643200764815001938860832096095588312993415872750289598846314722372000654367260546404466422399419891929088353095504250295398769649146623284760622963728851465023751978036737765170186415966742167129397133135744963560450511186949840657034138663200876435899173615820157550294010101115158084657940690765598255345110061215083465992792256095065513829506152798622199485068907779564497870781736095222859749782219998162917025084559970286434805709943274502024951699862502058070619409241365406440730641749455838617000466973032411465114063837457171633285935720056914158315273514988816911120309275010130593921654507536658667467511401611041005852393036418310319152652459384991951354935289878599160611523164035053498768977263628535281576616198230247728640202228604159062317181780051575414430200829351655478304357678686365816015553869888307697309496707712161847274408700072699846193971095394076453333923347928016043674544062915110511428773107848154906193439454525508556884762070935087957179494996397256324941430885158061658900800128188013480385826415630113866040670381119183180740641734022646458499229784168315972090013249937538267268178549186398197357312244857235893497406479588301393344030828020084105637678539735913252918268516574103038095976046613555063875110911082973424935916519642770509811467295455026123596034095648423591490921279139414628522733556454539338133505109049746761924377360484708282324763526194442188127164881766312194785039268066994554584723370417255321563218821559318821269136955845005332554789337112858028208142515287064023937064616180091997865525025973046513250732268323247868562135003240457967657134822122430060057374548912058867959320116965141396614000575804845902033526791448045201212792692844925036420772924455526643968790186280360591334353219013687980874127964532835833887801525793610633791811814504675081689937381922535763961707234194787861582075276178109438490466034631952487620791627003029980415919303836074890031925274602554561708744101289140354353986508101396451120679464797456379274064434962286130055216543248543156733989975380830417414376140523039451824046992081453107125078312866674631593308941268317805896092022444350144409326727490307867821425085386790071537461141474338075859859539628900587306772638254921570558132724741644220255845917122407967126730206787637839746688649562572398780614301527595582705352620463137683456549225169182036057579940292769265646292625131007292133334325093115905543498073799287459810329233043615453495915605733378829317811707971705212430661656258738015240946952720723067201703687598558255423490303924865724559025707110454143715233923231696718966653106892540689907314338461051073234426151361680187096813909875374015435742681041581915176851205784431291827883401653849727562064607656661165562572981652034393099346769559952176513771306083338411125579643712714419043710758459422935915189110137945893322880274979098611240163612723150919571890441058486486888864547516675717127127674693106603628410704739433586212616416828574192085593907754619633700147895271130660844214058719086641258139245518043874591423561063204851959577945073331362547187688899515891140125904318671418239697674490862344569761932473092578760979630865535108008809537595824113607705181968195759653683928126002633690195616982061953165819718164919210492108823423874674861080800911432837221458844083129164549092214209482717870222683454779235589632907195651455223396561843268153453104494413431315286589812547981379750939862848740204808238013737801524804237236590279409404591202553889777698440281329794569779324217903648696544645499708050416069444606740511059518052945130260133171398835206157685848557218983214126444019944603305520919949138577421887859294359611731084880718901096245207722505014345483399262190971642497623737795779707284673218162343639164152077650550682969854989670136196735238252725041390397289257276460273519342495739260588059969342647601823888140289622663260514427279027116509766402723165937533115465198921789516562477593443195858317038197448575021539597006662354269437365496715246719125284656669079195747430650553257010245501570539370656044336045199881487152551692206224542516620849024365879498455127643568500109477136703035858599924476028544235926853348591593313139920544624217981103010357839636789827061775869322044148505002086891702083468748834301627014766451401472239709725697019634176597409560650729180577470018974205876853770314194320990318378350135260187535885549178373727984325398075481285397178194857721924255383355520823020480791517151166190267662753019773586693004345961539585253655306219908789695441019408896558686150905999667320454919515773502926922283194804073961254149023964845439254696545357684363474973357197366386462965818114074051504828725922807861546722050135533224798096387992175663456666580889325863229225706859864825791598062547458739899840736083654838826035178590089714049123788465965402469401070025609236216803483168426074979674637629417179932736453759949016097169354552447245736836969825962537751968462230231647538571492326328192537164106213981361155519146101555713417058843475957971407345934468208783887466728960526045361653332311582654088075384888292435788877648410973392710678804727259193431398963232158272132045324039551928710966102714558444284933390684350522367362235637314597690458555763880627490495694765458937627575274070129990050467665927272391637166749626020455954275643313213798480322398726996891569860470651942049008570190708550828505503683703179746562579929582043134473292336715696388438400341050415847026444174318730614788387378122277519343254249301334545770109222256398263223230088740872104561302229576292526785765624434348228220915561107548263785684267711115808535805889317370058208962399160922430511586145636562998899548768953430682142943966457797515509614783112934323523473795484185145770174259766462390140850719953895140808960749292825168431905239900685863533992396243961022808731644385786294955393700861174579583547560573603369566663279712646015820575730107199644523328772937509331783157766652122711161398284011638180635319352578812443010247434620224821722533498198156320526498344965978866709840100160230570516866450321768577514385155966170907543702343737764270465501792734300993482698533898354352120563693558508977836056625660431172351328221838389639254178331106227634254013712368224027177201163719207237621072430007720489414944524742523713017034300823852292326583077694909189566437710420620747223861155422288627980827840168699593080264155284792258342404301309397070834006632384310109971646340370106065247531930976624072052939558488386245738193534655661371610389745329252874215276061754994875581770444572306802853266699275246046976480128224568300260578826309804377166183279516672978427182481793992213876717743131657642770481499655351018792595167089927601181489632215055910745338166966075482929541112615117176593089646515861154046193304695855132787854646602284258161481271653516037352930659337309610691342530114985021024325374662624835567198854353485371762463820783617499277896483564110631567402790209499785124983372412773671984924890689547127916361739760590295121447579306949330889672837100433533674738933226907014189281573117048583789981400225079692055086197616927931246116652725687867860194449861301067266071082275284740598439075923825840391946910496711164325180821212591356824445679148432825350069237300432218033138833675264246241885206716002173888113011386339455367242536271381533535172524126216468929660266718237008464687931609199770543752111643142711025190963341826033716352448896336085138905273175398816732068555498465610341360101276805952191002727531019812867437463457319729306027696072637990056771692546545975917065660036375516155613153673081880101464662232898524116436594580817413281485258905222483768043127686653970927829887065753162406842669525574116978501173140385019939004767173368841650136370454076668769500808517162640540990263451308299026980398947512878059398290551995652637698943755109578380037675422390392745383125820768776080893373167213973023413228551524863695122931085132427697828473645507235961393089453525479939800779425465315200658855452423284569620468869028620953566315886211180798278220089575517455002455103353804159115612889756054306355139068864847040036907101749790851525635274019873108541476970010040714718669927021795301139541403318529891134898890923651429223286840841489132216041842587453904541557336599263882597258833402533091332409930912059342738361943000851963928351960243324906367746757661741247662924290775563878595469255262992912370216510652940406319291965550306356435103414840422808859690221999489190929039365056835217033007400130922002977109654525464930693630036906709169552882479772550794302471704834382881090327584951429934243068981199727203163988959312737930744417774603757298728523015493502895848031875718266296073311631533222510988456200384777427125314793499941621362281406201107233091984868062707844355265348761575260796376854370863879476892467419976153841296995000948155903372871477299817695141553443314828641697204542520946312302462876867159919149008636851015048632382042498820715308471465364761837227488068442560078233335102126325123662996962839814791044547705687339425034559962011682423717265137659927693269467257252447189603928308811244178186497055168594768358732822319109271969437285216548251693104506057669471381485231347085422951434691399864271824677248011278992489442079541819468816403866171323579598192895889237740673920383251366937977771911857708512556929194947752406261289385409235926960084284801739539594375021912470600533751284205624494862502314517021894308773207378682174470313606598334761864663884851929816732077292889076570997374343126978440701377111480595591029490967476915918697769188532549140724511205074756058479539742033258671187606504653959710303570824923436804216343831603895025963968964727772055970670851794792520410781747581277874840706770553168995400109866105751931028045210812049979547449818092195642662048136911852625286144448808387568536087139106972847274145589540718812017323064905720569450613558796999128271652778566455223449719863302989328460158686068944231391426650127885504304045450158341422912834284099270158729975369417729872025263913342013203409646031696541245190315890064806826711757302248908748856985884763083872685322819458264587757376297206951294849925819829210615541098180051140721089494241517848549236925457990076630423689118413596075906325617686433154439667926026391913930072210262213892216086568189305878794639963313453162607709798011249095253201666317364984825746923314857278844929157765003615523555359068073949825285735365894896834566495501495305174476978765836748410004664240913321303462736506803168266784256657676784323588043084226936361655780406726488123110765085865952016892116301760535459685493348781438995863150751648785858869012861332297603915014042513113508198901182115588855455769189932145519715752561029946747887580718410541561190625978399680430761870898478585570061327672426953172469955706295790443787906423465860243684470513878238526143101394098316195815956249650007451751375501826279382870213723752200692232962407591988944090072726300815696866838609042891211086242894295990713425811509897867074625496798988606096282200799403227842918259379874899464654028392445970695959563346490875803865691553061464891748726639994556857464823111183855474884638120604677887611118444162553793050130522893489448033258438267894209485799599280912006480916870067416713635414045575944101078866174887827808652285045652978811288589528371431742891814540838534465070667335291949038274651739494831323217540591210690657037294465545669025767852784223663508671363147542569993695271381669863227150587267046587180166220196781067702415764230597792591347262575037603430365464858614520121169912455557078920333059119452248920600429281235690135937079407990351330125626393970336555831743417429879658488338975978466617148029698873617438669305472684950821973855094150722695148914098896662304071873473435269654146932847185604374837807985845295204798298813257484109330522709461212186117979844287280997990459255010347456431799225050425182328335995363119173631918556287241306226335192011105954803252223898093597833239214832632216913883535198808268105245239603974326068752981982440586121102492269705105065735589034347849287530815419180756239941729925815404278812207093520180039733328774077822602114067354866910466162796090225536792781762684754974563302996137645551320788520807152259281485305489747851308982389181109482819142827444340810069436532294662836687913104376398657385295972855244611440403836938525434507621041517652828405493103229295047425220341116054198538919470882279881200371643902666988973847780144489690268986305767062826669630714103686693350657948857993607687765371070783950177280972425168185862307741267301422698660522662336695024667627373984307851152327401021250170752892896393444825375743337437618535873294115740614897273359858390993393513149043514366989974638211872307965960106599315047654880768934350711876395817887258958192052498382214109798059838844679745890346570919005739463145029478395328854457150777906763609323035461438155187339608070587498746737068381459875662466221818742457799176792376431555650768259151124195189253960355119340666901515307563826944399519508911717711289600714572330182987164159089769951104121984623891794105257802983153768862389289209666068005608024125375239278786714334066555053752209739465142450229072636320035450390267533754697543071301334045666997149630208955348847321938672262293006254148036634894877288585608408674462093660859682301760291841440130616844029145732839124351029784894247045908857308009848260143164986764217968034230834251593134609306962128291594066653822487778965869089595246658412544830951135378108313078152357878632932989629046077050965955805386405730354251580425355297066360681623505788841317190588470986403041491952552562685019807061829923943021259621215739220203608924917713395094228141104347446570996412924086988854717169396457781359616993135542901366792731928228448301233337992575478732845439699349993591298955209524775366288133071547112410046664276967777370376878779151666777833070266129911547407761517540519996868296216162661673011801940545253774360147090097763189096195329375648403608724583552178163168761005403977647894198642355721966319068293865171119088234461908198789973397048982721973165311720770502022988156144979125464424990799799327120488758304658507198938316511506033008681755515869317350818943627201807233883967087270503404806813973175254154521512619461913993494762719851787900469748393150363029648804414373182454006170516785800223988816249848222753887685294570748667937256220934150395493399591945286283837217404723553071153849815027217273333417787587724227324655333614814055321783905009325760314840103626354481274848494470970036034013226176564785443270345444067894438365100347102949573005823811980895949192839553260697160341736833119771442745564456225907100610627269176267453494958941559950064573470592879711147032536755762231050235586129705373370381655167809193463235970066882120902599112607145397679934500058123946807807439182900921813696460250148399954660818565098396182000350276716827871295180992607865837515248907080295722925453168351382201988472463896104082258533532725621360995185320690612101974156155623314966492173094361929519836051778941241715350196682490444706090329199962269285997959631499943470814243347894086222042575153587358230334189183389921311547125242340998216664483042602130340041245515501605325871151608853133898126004930481174414817411065217983117634094183306167104825767141360868460799732176339934360118928412967987777446683012439103815459926497909266721085206196526088147447047646169849048617284276783364364530406522989747827773602843287095078356746291300228717659324438958075088822032445747895014752995152990682825852304956519495492636725517629589685380814411030212156455656667137375711890793293441619306994710620914807561947736688335232014025991167413635661082566547449852491436977199669559272235798002980990237285748291294217150391230817849197388996915889381279170442045113791680124739860862670864842244774659828017401677817823067041207072469699381192573983372737385090469685698863021359920170921477420207115707951367496004553768395578344006773363500483159922677197158253014428413065848259309678550298139199332818457761531330284015701345474129694115486891807356869525089821646317902348022901581487012185335240450913025091744448378678244800067330764616990397012654552928842049781852160245200777536757815944170046003684034803278335768846832320292142459063233554510532640170275656893189820295743364119458706004788456807290245315368496640194535203959701052013971652329898482689686008882250940699920075076185228986705025130290296703588602541943992453545239428376872703584903085620083441572587320885355874199993329169692683866934146550113788528637031929767149570793626638501941570257501703750854731506960589557124652211489040132886465241105648756147784762987479259694886161535581829738820383541332734640153712808268084992825874400884594773091001444642081194360668330968892855933960764340806369441292481766682643549796185322217939303813948144281089275220773343367611830366335865403755363203269785601034818263751605799254515304477401175974781095722822927838017503025246567209631933063010225839618508192331543334572922235031417746331342521575519050835329824298265304806622693973576629451436640883788765864573849628948185627198154776422172314069817430802717792505208336085976458299864074377139152419516815471954644842545396381700526341138170761021196121143476268249318835820918509791634967182539637578414920883426838255449408527937821010096957206780498380556723129530447335508792354659996389503660489198992683065386819531698031628311876974883468171648335826725262582463502995319092777989560835774058563643851211028696654872023857689481968759249575481653868706372809710418636995804080311646973350452471712152421440654060479613518205766398303708129973626238748182335939771816759481127001509258231835331365519916804676771685012924598707338065066921815936841551069798933149879804668976891418175848646116315277693192653921349378404974208007357823238920025818993540001855903438523475769244289534944749923167192312862460987239590548471147959372488123914124806934944109976533885843284587269200075008132049533040386583554689429610501983464619011503306455095728130668280186620182996175028182151834131465357566529644047707460997498488274110274859984800767524085994366617024110515582083540574072971383711118543224949972249443932330109591419371009712446958844382546457075318819196919987049204723543304376535518143720583011068507583369853068949333147973649632767047260868286841709523885819098907325466142205514158058148989713230794544437555973236194212710533755259457214380130307468302208683968817231529193663613362829694795655743656326847206819175400236684048690347889918512701018447494315103006487653821894562162271349504184406133344686639871935307445872177889993509174334950171314642063012512906022853871119942544893576553444311747589173677872679874765036522661604171168847784299501379918931365094211516489886652019368417852585020600854543242772398373521407356620977123906878200628123397292155314858426906712737228687495917034441104416134754194868252342799137429293294220867774382039550419212234046533647938012866569048251752848248388937455241252061373273562657286859137206061700146898834176852347064215461716771772814002623954675759840677320539817311513661284895918487140014406979353490062844928436931493332039578272277161578667957739899673599827175570512146736888326272214261686565474259948680431776008533355923183689530232659355904631501894501652728485589477142072946171474782957937111317311852443680486241716277263836532635444693342388054041395847683637750987552157098358180419018741536433879707095206753837707826794529895079291703435650975859944503134087394568261210509925601322415061461711300505326524672012314046464537560215671630400774004085385698235179061826089773956096672866355854027609709686518944033228351025618961741760816975710352719624120897182439040570735457055648647910777426948712838904989495200576511918433136573549963353342075431769361583401202411385680976936797688407044491992630724595287627611784246321289662243409374469970728020618481348339807980278646493113386742359248132628892839840745204213359697967237876307321593438347187983083590480837874544403485888762375048719831964738253659208338552869935425406399183349603225009338799988325045318363457295281065557195573846476716963025920043683323582546629425258011257753101412001321426482834232415766555825739764548533339914391214312123600877488476352726054404958726191289630742421790681292045608643473369537439885305286285851381656100489227060139377262987068231428184615016956692241043718236040226044095166034377804370860551200624932976540666920368288408813229837237426942671030678316549465834796880244136981242620959377737252586477978538851279689611910942578670416348632622225354904897514192018876532540742554141743775094334929479114330786439960572685263070924953194080385985802814037057270969705173315345822601956377595913758389327843082392656447597139736804438035424545889738598466865521122815776920630395323532850610871172115587009872822230266720549451157448854460489262003732788730427328223269363189574825530502124190106322541748330383223605815271155888154595766609742770227699538175693020466196968839010891788415376460985609043233744246136567829543006449272787252935276733606746766326855395934381328052667982309602903294904630636020374423699248068997069384895124733219065851150167014382185107167305628316737881524212665856821646510337239541144540261575822206147370765675255303912984780478246414304137720804439447810247456313055175405451434856320863085562439926436188392289973493794340429279684755174738234571413719798945290124860206977002968581314632832008174944291401022942675975505192478978835292564098520292645796988920961817833140148972998225731815292206433553367849444707480330007804398056158553155286914659915697519648591608054905973189942919700275687003226648076521199302955612693579123509178498120167178761088662456098422938335851420439584272201956389841474954850442788804384915253540499400948943840782639571265253731783687081423133639331379120723319679157171781762952705376299564178583959150239321676018929872776768859498873692667018554142793947142503521632200398278992224605864972377387084816888925547744540943360048197620644238309090583920968987000139490645258791992908391659423030481992237520786798458454583636219277361545620839330412941288931421641311330649619333329204568780362682103529908995324581748053306333054697341790121601292417996855493260031690724677554807575702001228655745817812656043648718866806673213906413922518731408652763174886523630401066147255945529364647168557074400689166462128609228336747610651582877546605576544100595243463738820531937765466938700541345258156402257954468006391878718708629342160271152188185675680664194788923774246447421414851167945047734893776439123373494193474834353820719708790573756128858287117676434631802291709958205024334693719110442770653999590906411184992531336637892975108909423527838681114021417247855788137741053010866994096019971352760309675945095515644181905376759187861625253407272140521144708412943083578781133028268143068855737547845800978870451009967462989349792872174191793858452150632654867619625521751163351446841962185776257727649043765972483424358855758384969250904149627694231785142097259541480671337026491900380015880407672041655372509717893549572805564980228067795934322004454734088635549617469794814747669162064600868593254633196351116161537317532539470428632044509043137724601685078112267356332352193278345838301246867529274176898327832061300309357678477076189661802598742284032431936367838381342164462953205599187182435238468028599434775904892610901473766955454737158332021772553413352230575335184111498703477303730886259963246601913511333411346793996252144661631889926219861781410261442921366914102870876670614154123135118998123457336349263398579612536716841659680657706748351638456665630545250675576199347853858516539830464020806451317560546469582269986086602159253785416674492440839181022338568994138707847592024638971070528430901003994843683784301987858548810702991362066116256933322854226813390844799534275500705881678547611380270357974740263630071515008857206073780694199181265257444606358077504461947115585713958628755191731487097404881458168949606296097406535687867430594373544771978870216317059199176650238922509176714419555300433380446644405527659926734143380757708402494957714160190265047197034066511320945883122451104675506646598011485201935671279189284970754679635691191926515718250705602222994071487277970928095585778778054475562563797283994456516304689425923295201116594856829895220301144926331787169791983663683768251994538745874217198547409771924741463803914769904524275281834798983767879630633769015367707468257498449194039199908113204721810495230890980796036371586625070935095130996270709452745416107156617534053664912764458073481631675510012437493631576637085544078424158864479460017114161562596785877865122201066075128577851570297779845046263564771619345146719673986858513193432864963869037411666256072369302842829248536970473297011100246407083270096811324108188629572440111716756539254195544439076958501693917107562310246589699200817344431157652256471164920093185186714027258306307703586607186300296401533620958803772291582906663316697115071576447949714410016726145805551920169783882594144516848753799046220410821288241282233235371636632724152891717826406590212913735548847404756731290847938134534393325125248895105907094797295877021331652915592330228390113291631587463958891101030202561414337600923097319926448232188356141422015095169364558898645045782312389776367257455232295126800406231005559186286792167185269039047235780754067982791457483529333956737790080899677080767613236736944934206598234157528124911023161975335381390633214075015326459681933701222417202553878201224211251801326169782784538568069571891251770231641518230798248301924641691813605106681299401088495075167820551259580158310076510121650682646391524520918600810404297309131398869536870864546562507311604729575606077250822561924532558788134554947094352543471653274182612498971740022558201911918924685406229377719233092229597339442237858839259994724251951033457084439543724864448864627597455028879040850498004973797802247991538089593756562209391303860032555542483824764027795437888573808179365191012587340181305497373125246584755590474081340050660499823828116432575280842916659580999816314974512981203452842081020782597937673065589852545406524294905521283920093951841874895923229088169158591389195747666589018703277077669292002356043096710214287350569928011489252406117106669016732504826171835771417043910045372939669061153246219615617407477470911625822471775768258477885247961367071521524097768479001151674298729088979256808281292923689140044172293018146614159978598609004320157154514347140187213583755719488859851317578153714516635368282175350290979637588743202946500292301319027852119624215509042287665107810729463185011867243439554012443551030400780400659894973860043354307716865917549036643795289541012227324906577061581579711575343104696538550828591470553015716550155070765423686213381659593999973904473809053944293462617213100256347342327079885511082010853424130373739699657284431644797473781094738486594676234024815240346107164092529407223203500810588664709537863701596200493042849895491877358395644754139373334397527803789398312248082984073385976798971194972769017147772147280454579958091450874665125381531348352314309179226795092035290262005720750700584569655530625187882345554690989225569745315840196579396253436770416107107438836243933957351561053738736159933951499979706522548997105361064717695684494386883324833712158582283250246992151441774666231289855211758431217048181087223250371369026399229404396793559131578465545268025374641292945307826925066895877441100950874675472489891606392022280160893630019797169369911954009367310010598279786241613337903650167399996804357116487254482886067159038410678407146091249837470290995927289341684274740720506304671288498313481228947560397765777699055040214979767806622414530696544127708286883840544414447175903206987191385267838676591370134820946213451993431813665077025900467753717593711793024053169379001266829922222125033843004854558469935917620390675082482809254023195775692747447203071073820071988714341450716719969161903462296731536794971080119878444277539823137976605516314030126848392312056333777074041438651402991365864491778313831594432916041360042052933519817138611838879729778555407181191364010601614211494470413409024371319363173443247914927817831622900667273186994733517723438558206105186383550047976046718931548101621799115773356684417185856688368695786036707791763906744280675137579335611571483845949024586779712277700421233647782551119964859618173229986616520143320644142420001261282708311798760619690565542009459981810766515283427554357732669888338284792782399337619701481948209978344122647422987633869482795624070411039774506654654668658418198785075889670340828095203673817055026792543340922257883415744860136140412701565043563187341326152994683525385508848505619341255644963966394721937697587648496600747535928962361496869535196388724705920068557934273823519649672046911148542110266670772725175915220114091927832881766182031037901478020765629083406187026491919316345735234092512700012208879677163079832337729244604729255632056549420808989342010091339076382601847545368300534189953418770384538711012597360808268889003505856254600760160605124176686230745109384245683191283892491710594553911581189324497364003599763698435524695621773392949985318192684961141565645203519239140642487106125349182425794893906614901698339883650428962758325445628000337581031777573025584196321255153610827425878391825333538449447041322350994097474891725543730521443441686449307969304134283022665057194028823393593949851873468590265193675188451151713993806791898439871919948384479396705361781290066807316208930728561936756633864275577618081322834311305367879498462009073289198613037640711438074080113227602956070002225706604932575881944374707021030701720640186041944814323760742228562856000849440383133262351930399139114752270452151295081950044406352175390647644767981946881441968940878451268648917457279809528520190435505196035290773301738394966622869198613988812222331317566931134855585549657029316115458094690260538132513904333436032657254612870896748074211004910716809563577541831597139600997849601703888099543563430236061500778921505489731860415312740909566636876468758926808779119115429834119654621743302029198037430195250193111682447185458112336175945322003151077295524924909208023597195438268118168050525190476337981934518616812087167774413081059977458384230509669068565622706193798110749001305737725372791827266761781660696081751379852580380962964719021360660193818497759887111877558860631059238800150671244425704235671325102093510004949709119529975130391460379187188194118330657626967153564675829848311417031538365947709069528848602422044581077380595898327060414889616511950748823824906108912866893886908940142786976782265149452515097015626739969659653959524445408647073022749039008110812756646528285707709361790313915931993052403160346401187314583999009641352808444198393336155129083645310248387583801315481561824851017676630732328059258678850138821950368727908756852837451141994738783408315784167799429956457194462832014799699174422299912148250694292924623106886713352788040087462086313169105559660616597959507558539190397488267402118750124649946515059385674724970073947865218663150460290093178215641995818879734869248474254115376006608947902567126468323002467067392076840399534404025707577715392990892165376825892872533160328171402417194208322582813199947914096878749291321880425122756894081729789358218467564431904902657899881161572932266875467808015141784389764914154769222597183620544000624487892788223715089138557103692643556312787726866025005946189315281266651081378936042977517291754776236537007527273136487799598477456968984966746654143674237529258392396290758899193407561967184348405576951921346722867497048961899761096259983178259862884517155384673057881841994136838207661624795137228495065155064255993652065783508452074418264457739210202628663589173701222804212939107765089275670300447300849374393799431329686624973638229121041465708300883812002760169856046003233080816430264990999694504286484982695058313143161202285541725202476916090064369746293295765214704164091385924401605155876986286380496696463128297093646222739330732620515518020231781352053718297767708000574549221308410402350904268195958285368724785776417828241661337399729258690534551834624737987928739589902015131509762486345613183044100338622292947220842479024447408454522607703204228081214770198978022864591162015103286215467963910805295082027754520747921854581004857871135691394768232421044332784179614842856423385304619948001905480978895154323003267891640056703784779177246125333898362771887927563858195850519435910320743436262098012604974008382483258252238871458259849197808740449451685699320250661971190352296029042143753452037427863850329294416098965685175744285527801642341911194159246339979340282279212015816126444780837598620212515051609222892409903271898331403745112444850944838676360926563302811201682693077354631454458355676005825677120019565918882467022226268095147557742523296257836262974061513687056469613905785735457409658665514537413454349562207566785307509708441943408547041781948782014073706892608827109263117900461829388768074189786679361675968122436295892361305117012867453922129914187841551665503311739958381260147541565038409321695579509809363139288436360831309629243179837219985578145108737133743387356968019057625796811105869502157280914979943553211374959556123376187162554615130501733483790956861316818154123928095152560087372553005076482038044268974249680841978252403535056772606903336549058927080824208862095605799399103044624686862918751360853211490612801305470153444690377722518723022795476536352776905414112867010850106316221128852952679384194744366941318908366750097853823640275963257714559363234474637166183336899022712807822944675511056311891673751793450490477505293357876127607938346159242568747011124412969553006626935282973163489226005185647189056689247128135208652625158436000868487647321736517755320815521773664028723698252762598543479462993041180722630418864819356782306300937749562181889189080958547708834443676437921450134964525501739899562237530990388085711988465525428642124589087782356805553054912091952966101054802744498829697517181068726112712868988719627028380207304957482276404489005711429745053580132382104709248702607039246893130220861484034814957068535382133536442082844727824620851866051015198595072807902387154806232031164197254553974208718300419719105051517445967860627305212859041192177127639648927956375960913946851107245249297478010859946004349439025838356702035220841777007247123990754585301656365364747523872933280396213540751006972276490969515895423981364908738620159580245736643902752507408559416955265502308477695001396343471429681029133661054127310409362784697749418947388451193551460692018378320022576489193511546843062430385727188981052205369030737459068922439218894978483102926291594098246636315817832028103259969768098021792415215959996295570999847407328395858368330385992525392138641882416879496656730411188733760922635987602095950980109112495267184270327585852659498373988343764086393398635055743032291889652033545767620623226857654559400774207707801519672296657935171228086691725603930564687165476257396688249641372958797329047968689693815053866077256501241355597976892345413693392977114977461335918080243350360103016458288167938256069051212348507892536320452131671615860561204628806147688101072647306469645802200463854241223266068430744484390278518369071093069850854260508521472146072292183995367266274655467630640770799803760709675805327121920798705008502959015555925119051559280940638101766978293558223453628663369009228441811627464701571331753454171924234169973974315535713407335528399859328516799546169811676472513953279086019519782296405301363005036624343985768966888407554187193889844956364293228657456471347728467079527853079513029987347999219066986643878591528726191351363335402524915181344260192983024963845479466630666478477086250563814285061353253126571832736746965309324620126974619100291183967947797800896399278454169156517178452362711125121605514132644517771059148713656597352546942025206606246129317203427700662382971241225013512334845430843247945931719965207985340685343860475086269100248181148707186010582690203358077114917237079823219308673042823967463567437125096301537602185045646815575261123758561491090259291877156137868984840046181087815401563827540473204916628155645035635336565867629675599040857784401275745842327361958396015115645822609950757025533358632763616425721792354951263712108929253156583905756540302475940777855189670999752230332501587908485162214758123368861825793287280472312886613951108483895739137206614981469345649140621704986238246573695040412557541844520919771923020224377032731220231081356263623725912266664341986634304376095742787354738687642337848446505024267334267836176639678592049910151003921965515762189884764479148786360346989689444803749083485021542556287001255933875790790194887029408164812961437903775340788031147564663745449176349226932756101696059794982053173047101122151295905333359085887512247326177749503236768766403212767624650730128014509060233536280957375822081724629312565803711316680273985577021623594059460586564639107805569837458787267486225816049908277131839855632115585602017278358958528687814338090701987799287717994197551056524924551708959059151359082633901237434190631812649943312901453823736086031287721529663293226906328358233419930595223840478143977474948427008268505999055953396969424810153393382070233351174213474081998155668749552299629878272830555534216426644173748698403813651488910254249023320895844447561779596069617277188927277539706592042185263496814410690814438586666894205445234366586916773149661655951013881700491481564340859030231987324672576414712967861168129465669152816432207730343865378964488890850588665802193704772356389365220843305751165584538388507971266563587296567399192262341760408289758031788121079525875307067952619022670439607011203615316800350086152425457307619373248721243367855564292720314479197438919663853624636151014014003671076780749995485427219698643206801458079470745327136174931012751898364624663307582704792247013180780370689465906168185209442553023386096868375695874953226720770468750078121588814211051041073016423024279613390510523960776149336457021133516881595154971046979567103972457264067678862378730489526804478287299313892706929413117011768124781316266902857753394581096620396738758063794004962770889489776760693152507346127987617195417228182454696076832730685270135923361851264008876720344104447797609395738254753278419702042677461361285922071151267973590548793891236540855143782342574400366634866873173279731829742266178113756934961195070123270616497891558364690479543277545760965811044706704849670923827797884829252643176457549791333529811700715783249984210554690819612130599730432634202676140523205295865252738419627439983397356879246846867450060822053008296971207112158992903509058167790677273680980772680493960032165269377615650302919749724708529044697645062827446013036573603806817338733582351054670419608651936814540519624718789571799342457454383162869635425865967010980591339340775966387673161550442316370694526329515638338196730181331542568316629962691391458215256142868529884974405034994280351834366362399476414473262976152476104057646144875034552263141191149485794583078918060473390228938204779864851425455432917457958661896200574066477103183714954505158678397359123081947563610191811347429884173739325154402697165735310257479468366736929092823239880029101141983807043611734690562179159444461712479252803875980578554772038851258956751207301019457103449010228192102245287321938136647512906806597827062325400823161545036293178537976757064483075980210434748460870600656065529720305391675734687033892332161651924036577783947266812663988149041145102463941289016387900589577125518111516123989062132631402256891469775361103020918170361913862521642680401431893188415930552960118645123960948126579014732653284567755239114943840406886392220285317580208552270869587629738132588733604446863599335751448076615737156983023485491384955334788865278343637559626678333852972233038254777330189678017945024231787186634459668129942169875034026425263514039765539064640271075321848150664845893731577269466212731997960760822581727192948566179836880171680334590775716562545854883373541179328575699262234945221671703843318407960075377152105617264961411125543291091885039524327859627997567112193000100583909415549186710175995822007080742766473223252148865804305152910971147864288116990042151900692269268475061511760518142775719943343605617258180114571386861055441329461894764360771330996000668378304987759962029576446110946431909439816090655275012595839915326456907148187737761000421519958296092252888014354477831999109189106443750453983104577927420647350799960242785061530152062803430496465166271140105063492465879125707001167131334614432569973336548500429737981945153876691087060116642423523720691110715750267153937167452092644139883334903116868137635016768472428641253268776096259377131180278699487589589636758335222312949691889669555555455651408292219196182534413574892756064716518770255059039164858000247388738200225795645502037865996793343741024782086394010321488722140895816075272802863264869671826586506155175326312103334902384251442607584188835552670004728175625529702601615732141289066881612328942267559588194214391810734423704443371147795948945078360227619372688295096363037116561439722783756527626454472715592944730764799481234642462015099491698004861034049002001759226647165231770821836658457537901406516490122816326226724496031833537942166635847197984636306952042246303469067885112781673569019566865062934148611408853254013530617668837611800203653529193121699152430615915371292927852639745400845759174412241178622594804547616606553562141642737721247209690510216130426702654407785160580869182799244808765704667621917166182406788214150742866625674781941503981264099358734955775277847910812466606000559099759345746680704928739287061373883560552609270142760504497307711467977516397031352037286830608773385098042914432700257339475977541436056363082241650038738926816315284925249881962554805853203595030039203905563823745482367190415448813142987403783269127040453149808220474181712007811894261335427516277812508743199107997596813060422039995506369915380556674089726552029041342799316003347287910048582759469502734311766227570752659740430210131071528403761393547374526785055890031280419057619233791486473279699549546771558536692429645309970049504779076673574449434872798870460136122269516847841427098698903413629518658759172001706725519883032482211291129456224944645245251762495702626666090606765371684209132171236606567926133976777291012895855079059551571700584834700477648313183895964685246655790557643321830281112683771884949990559858743583732664341123455069416990316572543080585281504081609973097790755998006479978480120558196574731893769465891634006338051649450516803576839392890356138159273008685466026929775225170511746614099299941089975624691473857426611275559405521609485013371146877944866887990109746131842726523441677321021308973437570991379877897758376845961033109028882759344170474947341666514886269983064868406963613955295126861326431621448306426833701090828000603596365369458726543232573983593306922065164473122704801963142052450606882149412517032086538916845413715454537025933626956549351170673112259268795180496594432046452585372508838054380928147554842503303014175379456968291111419546834397081446252727013705170350756968246532382871357720181725163981408114609202352893602223475954939201651894024477851266873465552736592881722258970525895227605238164259943490646745953445136797432795672782871269037334185034776133999938579688754262348608084620493602965410892559306152518676907341581498029783484679561345887518559042689129508387835725565830461110664307144953255339894371436345318213722020278790450904115178577123271597490815943929452459946160499456583012342873231533371905696630879651996162088253272509062513067617052596502440828258237236652034549939671063758760258768527440041209735928932453686332195440000015044237021943296400422652705080281734501298677505279458514884718519061767774625718906328805121531269869277132048171793278474212563961909430548764413240724599933469003417256525456011680304003486981648227777624561791775519145130024603186661416516640283928669903608491152618536934715835224865884758408021537398265663479327474100451552912216211034423642180828093327864448512330123506291688792413980342497747222133163500383591964510331437825562396689454897411648667278273421023944403446361091554775880863935382853463593036410987618050897443872255225023960201050304912427279306165201353209033995868238099070268555302710803566115012572273523379665989090475546513667221084540265866243895127894064950237567907358111591039254957761680844658470137802061786518007366564566576428542125056265993639248110909928835547035526974006145178158216610455908885119562280370226227737471271037958863651721895683171858428781629961951649274546674665644724695462984394960915682713061299079793102779977174432380404001495943810987043205988891744059079339960477102310717055152003698318992713003470013245393160483383855556134588788533138520803530105520292662495358710313429637146800274017712043164384296375521236064729061805704478560951300217237951652479003546419545110584737472547940959571817973628999312851379748196438261045623524466269683025007816480792505567278705432887537984648087550549095642645927196373369243842123879340974166579497498822532108638967297167505646130193041287606516886836375975319099241077995972655992389832663664683349957996162832151420175564470833945704748802679802049672687989755864018745391664383587196125075492919191034520170653458915760686613852942508320993210131937622404953968943431594468097760285842371679053724959451146551376661177121147370266752483975544171372188063518131986680929510624322126060961437346303167336194282412630403764884872918925103056940994281368047276413063188279069054276376177770903012779466497338387104848466553920992856243309877905740162184744129140349114974380333637335131453545585148857472006259991403061581974740745682554408633803291748113402800120955041677058114876308846498718454856466483411455396490719929093366636700905635288637664505671743416978139488980107830907592260609772710764430391172188611219345553316340604989615097707223252219881080315143946822541578707104139753724765490178740884849981508714129425924135017659011393961193767481071208403183397253576674359651303570194282547975638377737425516510358414194083363892718470270844697433413413551519212004201635550473117434852002062410263310311408663992007054738678625623490085420683757875454377189149804305240718213013184213356150976503011478680901039627977250787299271408185285153528400455967361797649163862482974319596623725335641332058735226944262498232828892345773863908134028749714477225344013883910222517834202161100344269282630940663915103263291469959618720375594059269649373756224072613535307413676077761250339458102011399261561820134475924448420818520830125729822371240311016289849414516316042868719639237439026701326597114904815448184417388648083193329833737600258268288147417246517158202953006695411723178906262091526335747342256007205608516179735004579672893964819942363414334012995325365006921732067809976906954016289357973220453504932534061378823641727461947056927809368114976539078537989253613709047925850927163165658835605182277299376842731344481297283173543418241622650161135321123276095812139323344337047904538747534007721362007827679419703722812030480640260977326175279497788811184678293020585806896309616983878699431618012122067083171327099194707317495303174771537525378820381039568963433847916249840625755943423528154206646392078818184336238031086538546758475102875163330796785062676208027071070446552303408428521358270530824623906699483146197603212694882567773042739288370496907051280052642508726157226518899815235822490373787121104950937576860918513219113559810718884894416481917918572168313441722003059612705546015217808989100569889892397619641975890686786640177392241073666243069466968431521253328441366083130693386131598445641404378809171452414753499775145199461084382970649648229636205112327549409249020837673996809733247683001009750824545098368257572616733460397116146145214263411645947884116118262238406980189317892071497022533134906102007457497117816073354627791640667537600205565939428872386092087222857773992179986012335693333440612095181393969589310666433120384487757199473923225376166090567397987788736640607568541661289577378711800210351261672356889098371557672453776779923486223808543120075172546068932249561533584049216411012879576789967998319821262237864214762201542700549773243195259553344787073727814660659634889631534143875325830629986617327289747507122684329706920119410754449360521055500481589603786103029017839549342763223524837962289774988987863701810132925911615950618407535667846378695274517045126078228883283014211973730407705037146319287252174884706392667681056813635140084762526013115673543282201851870037065677661361488517941847854335556168609554256260576886965416863601593293422274997526024793512467280217689793689665844996844046677690134269840410055603633813830465898392834761681024045603837161958318564218589591125573582855482884033014571095740125221387203471109631239891666281857392393921009194060644971377636239794398423530730627875692475462764301431975426485225244262931383842193697124404631531190445792084311235954327499338071220909981032879657460539116725647538751062962240955623612420890189044400038915766783049525823817719617546316640046444892641292253307233623597698316278784514811768885431670407051817100401107939721825885896826522264390313625601473694566252243485856219331525763881049428844935577423248695541903048672562600890716822827578941210659868965011187379115518230859845221945594289873630435435776387617494436392427066539551027407004080506063627683347370478875883759101067540539913049184300701242442737431863664284044982373470258880037305322425843344924831787767744214343348748102159883857425276662015974405942064827139903459707984899280732454691520202102973720038214813545675113239203234041301307116970515639413587728142222080788944375922171706426450740397790144446947964474107775262656045978671291844601669048476812857300279024444656263015269402039250125481574479808012467262037988960531612538437365554955580589624477114762192706161802751085345539785554964856948522168461386533054830819548545138805149895161022307252113427274456654884628861122327107415807923506482658295712861293216292136619322906698198599950160984117861642769161206111836316463715768117004347236415991317824227918190851243351850952333766984931166842051505542985028483831459754643558375243431773007833411050373739004248856089516981709103307986905945822032999126241522902039884220147045803129043169592443029942004411250282945848422871025304577159820079631811834075770024783456673919633650109558459261780781023957313762053751744387335294138178460901306572232458414188682675678791755159120967692732595555646746060628406124898063169413937926645973180779666764538854393122730599023100904506917769814965790485016753677243062145989813660053943181048129207654115276654125707253642047031508606174146973976137119149370568273216774635133925629479601351624873971492771141808207425722282477243115994575037718300062609482347993006602307066030918658941368818796066669161649640499057970583447034324934227257422786031874801012431795055064161980235765762971083922349932490252167312707685229154744724061649031844111472557636145163421220638866686683593984683226944515071689813801082241427054403427119537706914591920654169113884574158708528055155641095018002666422954333720235806904359770616834702917169228142656455650673362063422495620829402100857838248802907362422628444836141497003014337785843301768556235485614515423593899717474975426350527926327681885352484836873812770939953103874352148355138425635684121141986132837507649370880027165786042524392337205954155873715577959365454337073402238674053578751880253511809839021930094562783382101315829890439489024632833051924842088587600935101856609856897154715746175746526504353630637836506897542183102195319096868936748650946716226375666599027182350759479177937347125537891742478832324755745148035273540518072563802964131720967430970371175102207548192694932875671082130653428713282186517053837001711722832358265452467579159978160617365947271989217325246857599828693572634028325088249217715308674981248317732635180167998481294518131180877163702378675877734379510255927492232298327751953169960544026980162600089018194604808298700867937998785785378062850079659616202979696902765659891141834592479020254422897020194301470658842521505770853630859655691341578748205626674164887808372297321588616704524546339330939023224177092901457962455363505179943618028544617724526335131093091170800355087501552703640416603942784953598369961024412821436293885428907573409056711105132795590784113485215897050658345354676068906280120973911893755438731444984156764238220790340865484183850912507257469725929754144362740528273473041692926587648042634031735662110159567725814859046728688145133361626593821056808295160837143473178001075375070203960448465049396274878446291217474297365326339494553631025417250436959244318820945066588887720906808494008085817581288185013434605217710702977526471805424806264471566942854699346722777482768954542611234118765471170069845146903821032499727788904206799917159946817880881672725760502723801399223487697371508305844849158264846435702642838136998341503145969855751987571077389215578137931451066189202359851241801497480179545296592020847151713545695727714061393938982014693336750893521082204185945897014656730755600373717559891087991484800710765846584382017699456125464331694429490098459606633415327996843075825728754501172843590516777015586434428063447962430544368027253286867072432762056346973851737217382046284458758722188714632617935285621468331458649178348996612118386052616435055342043257920234957052541879274405644838282992260411813183046005029975660632199727117817886559130380032988313484421758937448483473809037090161437583950376204773215889935662010019280893951636323976624854521178751844582948117232346652001716524012119187576611474899774010582526334822284606094170932106674217740108300949423503286825912180223870011619510692758287302311527589950633744312376632433637554291191368155412902650116778622231479944774021040418118181979716786543353915131523341063853439434861445377940836430627512856091967621952497990560834070459693724194803666757593426003347493212156661727796813105174392191059784705232844786737155178850438654845431055144951272898684921936984089238097394014388580687591853346002203449257568058941304078548903026803752183252347302155276015423961226014684398899092525972946882067169800278889159871698398941294586846646927172134452311038579738145270936643949697765563850056880441982779421836777427029460895820638520137252004853190538836328086684073743592397820759330197992353729313199908635110053125933180105579422240817720067844926005989278712243614985837460613845735599263383148688441687360389855574862473320950452736011351500496475044257903845485740677273325605575981069058180280545914332146603540332740916589701635731361453779492167016773162360064421128068337174978142548480400346772217130597592008121108183286686872213760879855876091864581185282352958023153919283846790269988430387251905783241760508272055280774989941567162849313310615952600123374722171673312742588462023548811138421547519333240945957217431342251723112344737454133704354142692886911659671770400381163184852061862356683052233397656770539752921105584010654256344791145015726013113981396892447009351640737646329971988449114296367489584822276866094852376597572827993193225847251179327365846304668987718046375742893623736326237864537976548892193568361874133362821746526312877937891188634354775698750475491657027099033241895273494898638765737765274502751083994871402101594871376730469578442370799923589878216680360714848949336912397309974024682915980686119227119767083243560621473660928165064008950420820600683227349686583059866654225705373992970541315708769044824321286221102224589039433858432071264318242304496422387810468700648212598649434042762044883969912415237635382644940929622129156911867691766505325309079499490837791114695577883463168338350750395608932526613912761315198188008494727280714739478536073539177167094767170551200949933170278096515943175318287852534561850985718612705754872859776561920718283351619287317995911806758980669008534685095771541600994828756232593356937354291084525113009777356498655361027498887315664143258633658279931547907832923427624137030481175254108010947156517766560864893696741361999121972223428253247095945780126966903089180694598652818206177696528747051813518846586654620331538494114898128398733351345060934720804503232455984015977159453927163652511061718782691356911674224143882124157415896212855973821318812080495347636562814939592720341084068744724324853783544505648940719311942704028950218662346921251174585671402060030331849866647037888778699641117576888607035133616599183370049714667702973742291204691556241995910403149368255957616316939487159951723268747524099827974999179573965363151310541257881749046970265491292575757752603480623326298340845439674075386106186546321464604616165536973398205003118629419330258147027921830550722841457808161801764429262956857839000030552922533907700651926313986622602368484053809751707212926698719318201058365765790167749682089029795893778177696561540283402682351227446231987632315598229957616507420389613830954031460464170723023319513232761718548106571822913946622748557031863462453590773551343030838065049860900629787537190323321192232702872980855490760969906165616837157548317497203131821005617850898078633893349620813893515800780102984201801937918659626782202717497063963775494952771740432447339565864781443194263484789568980639878757152288734722663536594163981284655849362343501990183364242884236420404795207814181928592719166473008470404970916595768877075378375223005239898885311014880557714844076116041081614309639266258961912002847809001929144792125688465337042857913979664868916927373473159180074851107944777212881647042279619689005686504092666349313268916505737014435336642226187782565497341054808676136492810223803247666373405087330773749775482340857432871868007956960472405399589336756202354494612085238991296101619793087880775756378638876969136671773430475094362393778950488444268888433075559917860477405476299457606252958902908973533112812218693026558168447066244186264691422592788315352222238579153337857181306720714109892089901329476936964245103787732554413771464623147578959050008934889661123887006686685712140809386770337016986857537235469696565373229762081243857139892124660458296586241970067061896474969061134669247660982088728414003972529154254494048576569549405179541360036102647821190588570810878221356642249803195241596234832784618421105857316316578338015276384382429028068876800686221201190809743689528934069910239841399527827183271726476421810327842251442960344011193587522714639325536666178925779142554270600972458855209401078593419740113697867695222424629431556492280819855667118389226885239253741483151246175384155166683686727910835855710945396505401553193071487986718850504180577263536837134328295087020255489092466945837152012253774376314044029034619962898559234154669198683269857013200923683474028684520135433722583605198290743253535247891116264371540848121467138976366394829215736741177342025973225263036487408555867383480454271327914863418641527190134914190391553270426172465295179877360257669760004310704390420811276146334163168194595257176598633731261473055490283469585174784768753162763168012367919568870450867398587638634380477713343863784671758960176280200333069146466971338755497575329729952129347264396715116021324005502795697174480971844652019210546663376207543366595785655998314679616678762845518322018922043312778781629723811087644197576901728031963896008398699694704568242464807023528155223551656809298623604052002387835561600499824040971253886134030997864003386499781785294568524303697309241737036963966217926189347444681133275944423048575000341945506519421124141698345635978031111092190173332378205030036510502416635314556647133631196244105033170853927021906786127412671726744427924485557986794371380605990043374847574043097795921248482826778918204546052296386358957053983555537695116680882064202391450560441003375928404413175966193314752871495690511767087559164556483517148746453810491431922983484273077530955920926964886281311121852374656351442059626763698176341293271849534584140433780312911635371765811437241168437461009807744332004506940095580965085390778099804816520768304248300308505133384857540893137592069348712592335801294269601760671098208693183552856126746447864082031033881572975688060996589958330221532982232580936198291434836084837687634612197265834589102446058531813921690495585332618313721961122857650441681495296236821083158038344835757030114963895450492634158127496104680648875139073859139129397700577757842555091122998603211929711786027507055233086109598010580113740343491792728484712310078130553405246774675106818176008010493664620395847891074619332561129130960753331384683777431752140357177469306367926019068748119662753752171267654524123851975165553620275552622870175804165379001423047800741664748552279752806955142596272687784132385763598369942764959888716433655066562946746562226760295910196158797652564350367237876725196124098630371268096098404637709599171364791977812861487867041326629267282546090419625204583773834661986900611318619932229060658661982061406098779357481450741106379982612534281822969816196787076165522834683517809961549084893850091973547780269176231274820280981935594310311164822790611860032361534422970093935762352428549048545197568711038016805264659853549107034150131439696907142789361517411828799152845280466259838038669041120451709755413777181444428196576239391223133300201203217674357217465044313451481340949670296311500078343078249059157893212599619191398516304089634665475773282386783964898058984448012360945874210498445970253252118113230124439894130515899390244228940036706763180243796822161795037198966034746732575978191431637438243166633015028309313799402058622850269851623536173805838699329502304948249051792614151403446233296347763103565442656652233342170707179163832646905854837227200276991475273962985143720208345357537885104141090602625817950344301469471021075862028413445958289036426234561791156448737220026813707663027416718593234615672680498570122032329832737435951299163477517444816768658496774129663545584384142314833714606026923588733231101714661638608364349592937212107889010410670286095447643780779445586699005469092401455733745003606098462111224508892703928516434140729795620978348962135608125956368350582758577383376739976268771188819764017071680595057144866199491912686543432928619819146479825337704105256666014279467522835072515122942926718367854972382381471440012002843014232633225773791996359472497073888741701350538602715603613709192346702965162084898698141707214120210682309520975037935126625162780163449974758658052230851419948199455022332506996773521942761284317219319437425243942333744581085004374338747945665217455367835074590241774590071264344629945834441962094060565498606790626257707640780540887558302794400956220971527480623900651325128571987973649855630869775268245427931600002079719025211870864359303853559061576470539368839626681675851867808890444853267219261639225535384854452866063597654525739228058803500608977291846453302623751642743210529714476976398035969704060723827342257974523946619453707792741784801057141939835543915801406648894980114401019594400886309386267652385487110313231849785689559072343687207942093860181051202945043434876547959013680484442094479106045573514136433248885411452592876756846764557606735359776294424805839854209967423148609575453129191116004625041673853507919288211438873069559391362980036307171847612666904608281405482056042411923159408146395102777363838335315177181824744016052489202069290449526007510976151283929488492003527841774175074093348271742240695409420838505685079268496336781827906322535487513601315957092760965131953576401475655095596880740475987175884523603561041951510419661056657337322277370706727182119866808968741591167464551645369804513570351542792658179780659881208252906439807548477579920979812034064968559906092706660779830815529872344077369891064980399091511662104348597987525754860197901997861556059270681684328020377593023742682307994518530548797877327690945231383917947971169167572338654240620611773849358507877642064422178194637306031235818563741709080740667695145285427731295773696256539232053812333302260672885118105257217039822880741655874527765181526070929676028460071098703994786711809403691235432782982131765762820218353507424983759476252097272136793328026377928639833233300990949194273202641146527944274058237639486620764214566685155968146365318380803173177489173816445463896264242683204733608753689731208699416913560519961588550420842141939851924966160516055314801739008167372457781181399606236501533264228305490254674365029499002669444988866950421728565274747397274768602347432331155056433539645936370013239181975429179927166449422263719610890182705975544465822371160563917948984017369813064220063948724841812507584755896750656067668885532947990787224491751881769772101148325384168548855451890542286739747905738520157200660872442672250667135336241419111695388282608404514039068294184355629952239663244104495947909723302813066145544469026442596218453248584831377008596718854798280609133245942340619819729698877141349503930567394206789720849331217614973276991229341102295877497988666714633902995729402226005652491114725711833524266959388725312937632814464394799348908950649825549091348336728283591667999684426306115886091319075941920305005293462217403972553933934429384941069863044750494571076875219364372785848230903639945058066199719861633415558662743642548745755159119816783664040050570801727951704668126514999744895621661129264393949762073232132659748546185066193408680275785503448600887626846524163912285350266402678522060161151366575475173928512543714376581359644807983747403912902416161125817777474322510895083421113375668293857055981820164485482672455953167814798335374917780373523940623262529371694642020865189885417925369243699646329817544325060131761291528041494033944872215699714174383368480351664134731767235383416454014219232312373222363536140137931807720604045928833260621759376515979781931369213273694820304954594082252054649932107549245442578763426211846211430373292603588427834905063511619691512321164443858821085317431775285800578688995671038869000501425755057961689457497254527441554091716182060912748829793592317704273068465854298740720477041200734099107028284210548036469978692970607431845194094262021398595950713958900058024962285245221574651812102318521449680797368131319503348466258777058904169440551021746464736034763797165331809024737083308758772470973111369238734368255063662929356326537893842528302332394201262285067286499827123994673651296272200678878333345778118794831628324482574767731649116062915350527651861677327597544459081212599483594574492279645558840963300568251583198921605050695631673323909528788879229229868077701319468372060301054860303040468034629242663510311392268301953813669451404394359046852785620199399451231919468976491349309057205623751721774698321892046921882899573178857636733514149379879946761479665635904534966853356180380359825601807776930474503041166991644345177904176981105035070291223970141075127655589638708219998948887828674462473774192544076538359087605382040287140190338518144398907897436824429373837855245209648709527067132787554921890619028986457483792480211781759534532016898721055831069443156252456559477832428264480714367402035601965981387059908040659238174085597699673657170703845418560061005949368003432310840586064867023181777424105628303905103897686754941865990583829061214031806329276184505035794052634215761376997713236715064190376762209330502720845001449357783501087170863134559970554997745196336143642473030521768084535543633269804578980371725823840088226587504292380355148549290431912846628034874937402966014313526198594364925581274233556876018178107286086134960852369136811470439501685100787800964227863185484013938037512965720205802974018480887477650280001111778436847743551747447341642363049706782491895495719609867823254479332487952639928338484848930993621492557722545103245322407757961151669266382354910334941404731110422994122721059472167223058720921434072781220368254983015395678414690418707928076181682183041268650148752953977472353033656618402338860500902247669850578758995995323808468596154332643101151926687010012743772734311011237685970448946386381341340105876595160354992373567331007653533218113353889669669680726258789336974205819593600640752122153969906666095272930620913026248114475566270466602154708718776376036217072386731870302044781176231488793919236553366066277737060557492586952829225506293296583492139518278199626718354348305363838251219269007948349784349442676223687231201515206646530987707260436923102228573889450225170399748235265741856161095337680251150628950968824228659699875849356692806861912925171875845079888170057556757266170962165606277582394060823353364329208534689507873373813214760961691208805238488470759149359043869551020499257545397223867693434509887133224855257324308897857905084308648330858355492869687110453497044682397355411095057565260595473193646612101437476791774715141657392038629308243478540354490168440879357167288321094280092612303533553398060519713573927408903369767553981847855035172138562057825640535002983240537480235830509355242044173564524335803410274431999309346652080229420077874735313887149251449548978393677293993020270038359348092387935834122787179621884566948512344499831502792047577794112933178214947476443311504478952124148805031413194600950961034908422935809488499642022113552550009242777558985351951297741223507865098955952452022042091603123910677335961830784623472021683845287916097876645931976981211348373966856175290757325196728032259010425706537594425850762099298538262896475210832637935375346617274669337390708960785213980084785705229546253886775655700367189582790960028060971815883352235048086185563894413135624137588002444470430681456308781260235936222553172269790124564022814998018997875011497790162667653746836141352049765349640676916839392794057494358470961478834842428500742445002492166263260111906206200537377286056440241269785023020066723258921081083803267638004884425234402763079120150205971029554567648488073685408653935665236926786193577299170439256223442642445866053824996610059561977575172332977988128926596014255221568117019896161054548584612516470967976494964309071788023628640905660097471488469324659411249256920568232935648319664901523080129394067371339916757373000548174983885119773536070697482335129899801187455365568323929610177589277704558948500912845780437932930701187477191255017471354970185257537961148574315364015123944286691200560221586330638388385563646663585071665832265700935205843987372723135490025592398923403971155061949930591043657219580729665456680820988019324129646044643984558308777327909751148973691583324639708684311873571361344632204901002474783488460062972691483756669120720948344002973030152824885014068149064912456586852918408078702544342573898531779763098061836087273559341476923437411485488144645801602760231447190205050187721612818791953054895770172382599944331598946438902219371884324496635375800602203555334916653904983750696766369600324257133811517708109897766054485583951106319354946898535517089843371115987360161015813456137542760794184944656471175198180609071394984519578009281566094723702284030599469834421915659028637065281540362279375280809094801441421013906708609459614421348499459585468637331158660479399657841481141200664684133787990836621129009510808295998642632139258205857965213438242660877260148005722804427770838614624856718498443477558988231504572776027051780486920713151044905821822178007770290894172936941099124541494254064111430874402257341692560264322750582851160941907287785776588330317850719114506766919866505364679359299450063260753855001764698415958061482414652225721452523202297527484141658742113873150451910732162586788014921508144341405619609400530616414381061916414038894871577935215491850545616892136048549237763586493913524877303902461363617368534936837050975904088478559512269518891556481185035942893981878507769715523776064423790767546244245543803347600684031882267337912700746179046947102679131377447534777608356457859106720653781587542451788503725928828838794045370530477394418208851663243866673142405249072129993376453193886160281637753079011227786604535634060454869841143329065222791175807320786668093556099391105925149351870945392298040038329245572775446782983256213211436673457556960165062375475634653335149925297118040519953834747408737463929826829746214117607150176077108742497272356026567831761680455404015458708768803369525293779233492065506423383416961261902630222766590351376317361335134074987328880018153928062481569549571053289739227101232385406259522085673938844817612561093623918319976493080595844263736178846625593459333507898809130548257891432780955811140075548541232702295995287593240347922641155405326681028185917790806159243316261085608312046288723116039582927918972146804944424706133828354773202090630770948735010607442377737431452013170411721902942856230119814257192410307032671657096587109863811173933260507910865273052659372267690125998493190944307385402601512115798765480398188400080570462658220358261326438637615336114246865370577352285745279692261631291158311120007073310045971589919905751903088269494337884901289178585181038245397574143667344913872525065594882179431340220564571361507289506260805957081753231976793459863840142738827303366256659844716627781089734129082210002605682698188426900620351742347130149919879347342247094572177682729110032755820622646779981704442309711102948521054354721414754972151005151984136827426473974035553314592690486894366467926841690512090615180820134824019126435581720711860856385166995299326006760488297194428945563411901795267426711074917339579338505781515871336504681277378054701938537752571057974208368063044692891468420828320942709437735269608168480777797545388210891059232271502674729993283985290461211255479461342619295169079748235346558273526953172112674777366041449347753614550141342861201522193531459585666274316463993269658776208658201401215432904279263004120562249317167442949831517602918168796544912795057998721431939491726378163384171892785515584372893478809685889320298236016726437295787596285088928977213206677218280466961925163434302587373498661213293022382460504368793323042301174698105673319688456985507317549472809312137195769388505387988860793533099364771912533474940493352130477657110471370556770226138640966688334330009924229351442040695126278418212047026763078759533743179040578527723841068880973924459287554159995757368632987128345025194343474037385691515159603717444417894351176331130512762171433613360469211433974494648500261355265988183407931858212159011832583598732673774827787831514840232415581531839859115552775788296566554870621802902802013967861855490569695581341996494173539727736172927100564181649268656351588753293142777441726490220065263936819240098323381112871524135733925997435951995929529724893225450034852822486372527004223750057012327697919956381736951744747757620464113020662564463427128199095202025576155731089439007917577285871982069159317471128254299287452456402858148506003807262425233697900173783535446224963391059669485773566713658065781949168158037376408234392880659276829683914240024647938170648531068460037394245850805892106490721807724803574757322454908994466524988422395337726191030782545569217714871323988875459184771897247766610608031784139048023253997301338535496074371169420391088526219229863640363538039159594340772621635407111639250601148270122605184037570852267205290929075233550538882633532845166472125514161767422866535720366109530290713843413181686682895714257212969013803090660369219990194106089878370952995485438835759388451035283175197539516338234041961430997856640973231750897738705653415258931273756351269218911887051622467753646272892361674030903219244154751898606672765800326205922126171294259324971170330650483084580789480334362875233377877967261066259906633301423202373901421948112736878322883465145139571820905950725571233066944351388029224247501611405884066384499584519077503342698691654838830884592179111771566670131416942859615913053510477408031788622632665554218721623211858711392258522431866406753011789381433707840358629083599455123447640725114056433363856965126399492101293271495779854659795879608034056368671992261426316677392328411527212161989265929640478027336354538511083439357730796791592483634661351569544108641901158205424957795475530215304579906031099354198308151595937646049334489614513536404559776551993507287839223255020778380979258985870406764244503076780833593802785123655275158163295592476980249191643752327579680393646066146478124787358436396795553639707937211396373038355296456161467540260542677532409218460162143755923259318751445494481710955815538397041726412940401637675146065155094487751933965873571083306885368665994392085775915210835966312465133304143514245596318942343017228267249987368109196588698106102325807746230485363635940476593390765773509450264449801811962540306239330486048916720593195002884164590213403501405638061527335979321190511567834433026475837174124304759764381829915079601363729103598546952183049116670065717668332337339520718446805117144713103453194088417271485498134058273418132562050365725998374929194865576712163927740062338754813054901462611145498869987346472475102093566311152171380294036675260868778801141864416230860279460741863966582645346065680390161591727790192263551025496359280954205122157010333378742588845127465649462636699131637830219404232862047386738744161844541541400237396931684731926732457646355194486576672555322092487365219151365753305188834658672433541787008530106663468391978211725595526425874932769292952625981093093692123129974296389369124851948563661263396616761340603992831049280098365565705964173253400302085679697376893139881766962887898954345072016015201887449874792432628371023604569986596698320585738918774251805110806930713995644533352312912251410851655416908846055872602917428878085088594002134028658970625489837793064780660955643851472386455709995290011951851450605396092782562928743393138549564064481703448712242839747268213449160718296795644483934265495075368001924241444866700091650963940711641218809836418742947640504134212665989593499548694977884449474678229183298454431778631825744448306402753041653613855003257560932617594210350484293486675384872399033694671981598826288556122103568685340853340758315074098546155193806062978439708538767362576599350571843516961022420128931745924647944233125249688950435768088265865558999663584500037296121854722299948854521139673979746704218466052494767949687736237379627833596545695648258195288092805174534760765607167539246612537142088290855474983332439321027536240008298636577196248261501850089213695801607877923980414942965900062422131851345045013395362504868809367354957356346493841779732771234348008584774674218190115834035274318169527670344041437506170630039458656657076820303933230783879572202432626755759167527823666554091524922343037929303984272561618644140163465460606572389365036571815299454983213627567089634616390530669427950448061092610519736780567625525650109025136881062944348257880414916925457953938622929983585436171441238067669506319358353835641085670658736882843020142265979303469303194462998247122961700083621348428502387731814805052562060843921300474972461966505465148687726741971541766147278240500452527062269661669558180011318911080696712434694511901509370490836271914107977600572970995899565538221573444193360110377079415354535348710182263807511315087791430290876886497139225038657725561219547214013621890629792647690997924698625738674064920588843470416700876827266657161796456994165120905538431570472733030936973614394907527243226662741269791671655405140570053496379325629436791167477557846933070199338324263185658750385326923375250507490318538666776252985759820153724646743060668241504217276636679482404288545575901902817064667228426072339985752511715279964720676419670136384845334580402807473937994933512997951248773146624604030409543519455178458731124687075145209351081461226573385049123387560122493579724812866078545647520122844546282578399400679421883050058098770349929080583632278783344804548807974300544396798878388125957663998050825827702789956882559636623779901582318450272846568211038374149130222896685639159621997105533174003915807729521003656798274268950318934917405995360403054030380007604870344195267302792771002008716926090740272377660843478333649165333053853180313991125040665764870597520734673871960529677973934686369827640343887681975111588750665342437852992222531431289299045200392606790528875658885513648180701938454706469741638034046712046080654313392703391705515964296684860582103994673273625027277352873376130684613984224216961453254177527722560871008093159341465275149425238129307451111409736641610352809310919609222695499486017370935212841243242865431043825341836764911360060837331951133778748285056924476275342115268155601112677904253629184005375170822093550763452077683398705017356153721093193444824183625397292328969266449671742196980332189194747570449501424507829756763048863699824094129617327539492534697286750275419175996221113402249574779037503432585581951881248399527235017396304173195683540126618111701247380089070744020075002756556356277098012768997036933322501500155997291055889424220184805532059245997096112988189134190774978664989223679993004647723285612640693956482283455246901818655782097998433171174871592012427924087410770924964515057310934814997623570684135762813143208486240828847842256906485281485648070201257282112896749757136559874555949394447246923611309172305911476517837184002932661298529689722493349047435978999711918806642234332410043659762697410380447445915371223233414899536160693434562955538017530673418954535756789559764183940322578015175593592118747405957268783425572225223354127547677337018207191557502450492434235087564118437377398871243658429716606966221885308921308244435847943109488994012381428053262241829651604257378780262876919141225198942928333867187765299153144156586672327770552741137920265039170178874259932769332545559403671861505054911645909850310105112422456761109259104274743498816432372734148537309168628641725681927785465069449789736763579232549534949799763991995369367213854972564990449769949788964095875590461345337233458488026435670698935472283525076936927852320950321069585558112365138989629710391700517399640302394169057628578128313611027762455860062680815707822274807058454875098759273757773705306419214145514381898660715550808649621677202353657381261699891535276703314414406502249519983289449466664467030824410804077514685886524587467438176860803857641475473964267191313301517220180659871815545330754893214287952841817736976087722434343556363895362440995189062507015449836195259502113766145420733303297087465757245194615118503887627834061888549267873796297072548388263623915964632827407827796415418804084271169117118926429727531094912235993749994510531154036869454065440979195114584973169653335495017950894895755024323712125727806928502936672820243960771455454753207772030104288889203144610412977856087246485579208675600590976450722198654103168462161190226289007088089240708144492360103705137554002673987692380914952476877240082345257314102898754492273187402307407993019962617048443337056825525099498700350401184584283887465685878886207429380695335546726466586880727470453447197801668756182994066644961396167570267575682742826686035052104292674119034818929092806930371864796741957866735075452334344350830812628458849813726351801568028564749504846223400097874058083755936669590605860688537087400168828477591065859429801829869876161841294610192530859243229101137645361150483959787134509512648554388256006167399374903455917141177426564883421823096221292437273228225397875790299386676209845706623594865513296816051338373926213652936129696568992536259271459384065371460838965214220306690414199769243899454429857011932578478547752556802249255073823523780244670264510165435451703485081066224566426697159492475134868168217674553459854004516206209063821245062275008025827853191490380692542172965190193018432957465052425435016394639532311513825730753073843710105926608236097347977289581242114350751752362129216870916781299340839969678222539612674794947219241716404307857015462976619512383315894366179099910858207044224434314738632434580738655132076459001526420508453849465647087781078783539087109908793941695208170404575295896184715887690399560614356196037651943241905118008497884764701695733024974984706203140817778290475083811181783778987898337560794883272455580323447825703081702422882871944960518936264685200575243576533596340965508394936742330622724276533548749132876070766019855436659213387995073941456064513213052266040072357685563172527176005842539911951950235116526714947233678941574960838432085330090145311080836758253823072374677509770285564126596854793695351810949390608866344516110758538980529454440288282445029350779250242676185019766735448375575874551882277563214286953540423525857117250626071332677467224094612929324583140467395920463538178199615846302609711245894172849861549266888485144400846277096916721216297879146527956600349438867444697607490201149907898955445927726166676144170213852368480988001006424301513010737715468775486409747312909509876206945166177110755650626927920432143804095409974692209005550998811776947310964635764873561392450717568874190628723317880640337773796930437654171570862743638992478874852997275404627980551302300046370423465086316741617623858184335436121105349359068115875096263215464468632570142723653623132053720920365200445590624350472319794215166023180572455903177481723812365448647412316641589869071089275535532607880144131126742658092189862348785735576821352686312845637072248637716918725755567386676819139876998502670157791719449703060121924654522080075356459470494036118178367659901893183935004092913038282969156622111605061185675914701549109994254075326347847721999865846607173216126655713429248992569882131666822521138481542488440859998436127636347946731166382544703660054973779151250271226841217349126638446449710490607482759082028308474370844145939220591650567924301830490838383202241535160623053480481819368542646203971534212279692960289193204394367867764539207090049950668822351759678639103989585293988473638571375443190861763261617629323857669669260727477577894393320304570764925347534987800413584137901846735738663855814770837117115408918232588384479620381585325668052681153693329104108867979157506922826399659044873350118077537692799233533149598402375581552514288048502619567440162763581299291685943819308821286501670342814956358918089143903786288530669182611895142836591840124300125259558548487129078682223505205534396617047962017198914937684659569424184927748279490108535432479425518515600128102338699416429524630012022925328147022382937619118104502099893367833870367151937151013694855121004362970740273566920945371100008178245637485303807923833171860629536965741875070906433525865621395119299408967959030629184220927614007550167347999022461387223278895996448538348507983170391667967147919946822337521905045288295066590901914200429626815145682014409980325286558879734869365151950933728609145360024402292468730516642955234971019940578869991470630685055276909415451918168280072396633381004048826409095245232043090335159026798910783412064900411129957078770909795594377404845506027466229137356632112728478977662270912220321594788997835543114020287318761269325188387314570652219553440086012241439872884483168610368066295618289061324755976485478840294851046805208493536052705523538282229270630399896418042168335062360094152397827099044890178365067146757726869094212946263924635622109370062402775652391086104015070572727822446272172355883317051874900863486820228850862627906967422266241294390354590030432943322543422857062579554204288841201281603590680335984308005977675884197971517880460129750347795945656139326565369472694698906457184218622880458276458535692546517092079201425910557987399380482592768161113197539555414861762314608879160292911894605986555978744738305573819136647609817142114600845023482582014595004787821103284644495977397034403060167338367880802338089015651688498589902015191819370467335721258455865913972580356512519452311428147739356140496209225768523020104586853375833110269209646259888932852678325271553061983472614005978237677293630736028891974514427353978049020213498837723251849619903703937140481370131059973799080537101718413169983851768268790074588879959039544640124844755081237270035209884939366690814970206990901480057459349284362508887963661015626110464113090458866673393958609353698765171329064951453943532456318418776079640900361256041346052959466826827429283805711483328677475500131834313996434796113407250273418808084776503690018462124734522407959978906687705436743291593285197974224300883110708399002265215054760734749340991380892032885279327453591311762764741057656059522348781812417107332759572633537573418045359626496141762841961167880028378356868522404548486602860455815985913677804307546681892069615365166057679240036638950527365884786414699770492112754905872001672889229373191958635632353394629601694537217380047925359381913326075516353793089466572102122513067738104844366592141944014063857071235420176563039171549726433131803198143200730693520251330211068651697327461984414635305967662185053371586441518369300654209396709921584358574191209015433495444994009883252562536271006707098878203735374030601778671532437983121299494237359888507591907755351558874730517305342314628388235231761961141145180852956605727703986692261522505094276411378194196549261266108905592613763035632451722676674414536937374079521450099708135443654347022102705755671858039859105713770827176127590244798785100527545801760544721884161681721897380971694454099030492300983089410461376107505195727483155645418285137587446470395785797203843050094507314516041592053601558291092806875886037281926317551223133590482704237868160584768909661962525115534260591769412859971270307679807232144487064092956124932468040398335229422142296150647470533069365945061374583716816639920425913433548215434554176109894811689294227601810835081051072465196566203739397328038233164973887954945397987344916497437422196746359873757888396587428190448793960909744898272811842811664794719203279157523439915215418683072997845203765442529208167973139662729613149234300460159806748461315712766692790165158240815189431617534966328449767709795817168511018730034475151142286421104397910887690270373649419861242605362408114490095973857799397113322377385411129310330500427717881387591124396175686174258606255098679462652671071975674734554584187318263682111507243197709274610002209815734532171720560507620523737811790472332879913505090078122032525213485852838502701923301516750859113529363204135101667779654687300722806431712258383919442733565489333281871922687748724270506624753991193627294434544390903865533873330708521455057322879456270897797808624799855142615618027526302009648896022382791135141451286779850533192024652120477178926111283656135625441219369595049601430377817626887653596760526819909093410079817237532606409649018721346146141819923797898573848471963838942092774139223565900742960698875853437704496892266067190029094725063080305797968706807678674770477916494354781815698951893601854846262563441097496077433303503304239860515330348196988207079724643679659951725363193630112002580116744005750210788007356445703746908547739449203699285843886185299430248572127798575703200548467077934839272879880744427681284846675409902006521980802941703710909137876432877279892700866694466458049118787255962789689862838092712339999114623051860879701809846104615131407346892906746198742149028895028736164165446997418997145436429420941935848847802286173357848308962666567184868358831106596799083650220160731636092041303783000635102352873966396693542592090801493250166322718166306574945587943891448757323470884263901982534548379927346819865266225399531396248578336655498213669455887490359495874647500438392501519052255555240535634267701686047397517178630496464539047368095421347996484929156728858546252211431106806854221631805137292026277726786971285542205156112412476054530171817506461989806102368016753346994056530937691738898213425078774221841584946149270737484860369196414495643974799883645913310887318004145156954079097569633662919637461615644885516221991284458914152214897553437558869512544741656137490025455357181763251947668829632820066562172732530352167671557095794117738155394193976743796640375975989034037542755001452799279395419268874351536444275433410237645384898934076587549656833817249853556080045526474678057719638724115233295924014119827277013825316340803041175415532689326618551113974657815875440535105054013734047793670701561619195180127887525806072611925854048776949280216471592675183848271121431700706919719482331357110125391624416818419438320472017281255814815532417186647319501203366683400708497703491036601760225204727473363693756300401243502553886355064567402819818111519426322541040129254514978205089733796275680340502242682267706612032809753295565391699614310156820432572966057531998391425470075049798005483031044419214475697962213052891556644529335417379806992020261180945454189821771627381530589452153066185478402525868905100904960850663755726431446439385685183787415329176363450187459648067753792682065368495674353855937312449127148741818424106555164798046857319066749414114388155963788038440747938893207518160931909546909373033271648992714743240267595456592840029379479368306074181975839530959425016628401067569501307797486829825020840383611454290874688958039660657538784426197908890929619095456450301581785155475174097376198411613708889625345884650415270823541774097865105956190862416226983342690366608214764718863907569552296830158025001547117823890995908797533560207681700468761857199727191707276708914537373000199539828627417919264916243690928018744125380002740306890092008284031619480288865866635565325628276967023287669085702230606426910037211541121182608861104195805821439050125481769107784565656126412529436299643562699491202466745218455192607862250372897767721005236025551222351822583157286974144743731116090801172570888489851259613110569148938316659522678451086624456619024834589945693039099229379033678676140809210994375251017303865214059163235129906816252961689049751440507657146972861008521727701877963583706369768660342664288240418427987930659292369163343544902778116575162190199078031042637327241256878674623520269580886403863206236077206040616782498746915762992478660947450663634269564403299203078784580486892803925481550616784531108583496106696230564173033463541754503481384767584923816538006549462375721433548137830958743648188118516864860000889767030912806595524341181219158256535883785546235236014274630826246049004114482809010028044512317686208368758716293031055209196823508440312667513179855161177391668738745941045176092377556729215329472810483518694628662775038124209840946359138455543253161148040471646855375221018848482541780169791430815045998185920274880114702845315390432301677110801980462039273370160346912517698390482094342346753967801513554137736974486806412537887567001895897289324603972362480766468627763315316785912680624846099780558863404819050002956338043138716641661738238966687538330953973541939278399998767191503597301784879546026475449205588891340889985410317754359403670631687982222064505359783012862626722647836219645407053046600342960521066995166029636036713954998822160844735084762024142276132745566604691769862173329262078463800578874865728379620215561859120774165815571327793413646026497395415449918107950786531104155401407538265742888312808892092286599444721170269715161576648286901217246297700742953173408028820686790988999153171196749839698499693886516013397914653956318416352061351700140241116695983906161910203118767584150655301300281191380617119785459572895624245955650950878752141874527693912626576977269052981248473359897614630227430281496563165155264789996025539148202339199054850378025191421363418290382528759792162795796989105139896421612583094046374866318788639404991290264491507082604052061880261338573961851185057463923183503548244233185486208260632463917405463691841945302449392055940912313744946873959359375929680767399727786660220855447001931812109334772443746512621426561601879034325684041879575313987227337828635018012936816471642502206486781097204370960938062647345770090221421537506587821038393028336109220651532715325163200525262604753062193983329605285560711645400445888770483248194304271790049689378353961858987496174921748230068650228491265222370537720823245756823076660632412875671904457055655870273297138919196096409034319718453197486262050565075366863589999673140846477705089761293319766730569871126042451100687872816807753002715606081730723389927891411291208000054965446038579996476177026944662182380514085710436469990655016261309714044527854738549304293710400882539490428185739928126307793489696216881254862106111506344449947348804864623351370506698370385867010724845976634802032555410947656883750609794128930351673196591685699052772131360734249081339392893969816011651692159573448125100558361662421990981694439664217060929536723601060534496673236698961129519469687102090284988790275877411927724424367946231688724013932025648732437372934544129009134821053757303816781190129568572410725021437291479624569199737477193578344042406526245348208020878054376371909485672236951044676718092724515234224796169328956833002342123639556156339759525542185596163461116770510513784576232036988105054411610955965387188691907170220062979420460488591532064409621020349649329693325798406490464492641731788986565659273783537340320523266150790716214569166319508831758560010254788761602880244057263614552271905560552611719964671819478778345399447318684342758969594307750280364594165072805749404535634931593419715210216522624172942941660304525126329598997848709388539132814522307566311120943489704815834889155797176097499677134493380474620378984681347292813578024676350505581342141291829782205685928090032907884893771376622334664660521648947236875136256016696472503615973799040966022692664117913759735813281307583146757270135173798815422497960755899240295232146353964426574136172667078883000764356863334615580224083887815941995854281146287887752697521110287089561035611063446045129821441440446182568044533731975199786099218875321815221410116617049219678453210858045475306472560668907959982465482292624889340294341456686407451899931920378557541701052512931417741540195201051318782691152482790018911334185614266584063599487262222411368344554657254013920594279492531475594117740038720535572532007677129922494709991990792202822378732982612443042926721172335026987153109553250736446443599474453345216344442485607591196205711128376136201963566906897629983353936781462878628549765815148654226901323564511304077767770715679086006681043512457335250361953928002872193903450764368635039976271016084033267774552240136124854385583384479129966352954548954464418305398862216204327455606656559909114251918321250981575235713814689044441710527360784027694024174075577874920462379058739013525526279343274271039212288161644767000442747271970770747085351637094056774769201661296132978515408606927276523951849198194143026706897834497433527639979134587042037990031988972185174004481190256787685398708456352119186181762417671947779349645898981291470134955896738008495976537903423011086861018511098712818104093461464712057111030405169884855354210752623751095777797611667395642748858106997964421892222319194806983908662064216635033633893706228321140538122428974144216886924966717255082568460631861297480291554305114252580450954519531521883197209317165115777026505019686330621148756472130463801332110629484328740471456779224781089194443201615419958511678760457090458952151831243067992526280095779276448418865759724660224126098182028571568623130085940207500831871191433150403320928228044363464227054058903238316065407050711442814254936857718508511112521063215613082398822888632567980077823596722571615719589872224240816759922751849697030970781288943647052258271418267635856886108675433686000533905125122516170938351866337264982429406520910671198472145783463045774684371179250581624741892587598166541836566430505193623780309426842829955716483910353014800687503263510514246049632357710768308482231119316756562714187839245893113320945445741673222715408026458189180084924817539107698136234240071843846571983171261852058247086003043303752959538619553605075231737626204537308422189985556007790210005157805372062828732258656816048971618127197230714379969958051495648493446641556348401383828777175093260997618607078827192248481572267564027422126516222900346437772375509511177626371487676735410491611391423132208694977710977284832444064309372141068156526290702147744370644674909398464535161462202209627247439797915929736033600177018063314194636218409784655165734887124385289475634301202002118949354615455272614458759083086288448734415595883895629233203589072576978579620067904588448447866087663328520293277934690352225051838338955387987630440417520007295535267566746323150541145606371883927755183452515999941746307660116151135237457947086070845031777102928501121631081498617588819352053561040030210784948429244468192593858431613209212530274078554391784545659818720189719564878447502785115212349528362137576337990577361987975629073316474132544660819355094289919306495146172555412510894931140818681428612633975758083817569945680038544235201778328202945251907440970908308709009318919027045975418046344376420046116786076588047195835848062578958525814749001873172925745563760777155436111513571033970046323730286971234848690243835937960110178552025994418002451476214297490492652188756849632021509505697072071026420950825957401893986416582780632943866663496888170769302690863812339756874086797263884631185679779377637795071092551311550838698210130390346873182814073214529087850518566345178344625945003219271283557572527011169681010996183947728480621243639190918796255744619980601978445124926412964270767806816240795029447728387862318418954751620529881876824610357126078761233019804452549296603594055948704825202514717861352597238399736299737198096406116553069810513206753290128186365763430646623601580611643448039728019329051940729427537996873848552379245385929144849582397743396279132991554125355236048202633636976165721188240115571034093727306602830841045409559990247804155568079173491884948462023248719043839531832556626298938571115252935321409195160535497670581876408047650343410864731174205800650290116655454357171387137816951208480019823942555899472760071065343765955536100016384795647251228667850459736600715736580452356246757778552680168140291261467876029942735844250895505478992897372048198853118490516468076316096481150459481938204430336895673113326584366323440518301353191745589853319578614925432639381753699587174864163872107442792845578515021498514157157176819228151672105735323800609570279660219048745431966944159559835251721809289707298672528745407056113606284027517075595499626257642467560114154067663807844700104196062461210172202949666231488036015695705735113535392633552395078153818692711386392753259516666635474903097345789137538883356336405106832018162643547960096998727285850184464512767240112659640307124741183142830074201245616195511647614363290517183690550757607988462799938607356781978370697823103118548681251986332818059911442483278657111041813048389804526728787098417188593874882549363341133213128270260307945558091965443563298564845111349929794517482622745306262657353761257287568744114008180130370885799708210473754336172547799583878354115566437032374737877020676810464566410756786667084939575533559886875839332075901401882619453047341457311218678425229405127057929017339197185591435332445183195696669802832888633756664840757008011450726379438459216984081253331520204862307970255664678236854012709763105398417273053678093652587155912296057074744612900618639166401684831797977948901098369394708562752580819627594973188220360421352594461249666546772879713702268678245907711884268233367161515243553600656555985123132788039143431150541099036637282293880345588445887059285212681453242676526270825397089661661066254584229132676627490893562191007797290385156539411337714248991276918878446736586429438036034817007974171232108335643641798612489915766364474016021868638347070850160035901796428013064798347446562144684167344249906979171709223469314260249780109803404001702110272675866051584768057526322249831357796146111297711100830926502654682702776354482702492925007193438488329412258607379554948720484392131757849401970821706844839890722860521925306803459199042811722841201401040944093925479239468197659073617588913568763041382880518915083153973390234318904523163240060499389384574166248155562293777757756490311076929911661651733693394885010618531416445721497038530625566845876114748270616655490164216458480505377638588350912000123536276031446249895602358233522127187276680701849807610185120167140543489581407806365751893023113444297215331946743853688379942816511235315308493426266932485470109299590086182921909298837105397891910687004398791235527160727238070775220420032341572910370135771318555028614726756012018051988603019721505187991577044553904405550992420617741119320764766898798317440679516314981901312553472427944644184042935067428335794400030624719664314971475690984968599230728110529066846536148085098617716198504674288812721182483546162701787992495269252458548354191333959806723017686812408350427039002320299036510017805906134357783127657909068845160693896871864242404606786647846253589752234209135744190693116406090077315192747386950037290472313548997998416671199897561759451025189857853790843144523083645522629983275976802678581585380833501112442389430265858482612769504682969919698572187962201414338827748713522525142144980071552258960083820112636046628266340880932869559917582073333190133197134558133844575883721044581323148686173198783585595111426761384151795679903100739906512608008735300703656734485891443192896859079042551759949747211642106446221418585007346086282938702618469551983157751254938874219615948023500610191392563560571971960433802386907927246683939161668429931583749468012838543056003476749882858034121145553914641465682329618856161346298003925741989907515952028392359042725558769162675937849750208125462535755826635524168466920853054122862912508891271606009108113946417199341373008260742204242740130294750640220177634377902359163012302831528424290004892179524970130576820358220213109458340635886254893997732807551178509224754188751687282567741948914198773607506897376447956006140734120694396216882283056542288066120719977289937796337104382577033447117414693101462340888904852286563122233588473524316638748279036736339821993559007441762100687201554236996484332760805902778530825532650630186372287264142059641435766993279343827083573290769673470061397559612253162998067399350070018443877485265443231284621460590536033548822136464209145610323923464306173324600029194430586507462602929329140630254190613942119445024969507447056608282982231214418468000264282352035729005740371242135428168634109336765700048430211495351568883733126561146327785462301481876991031794980347746263513083262958047262128952318165018306317711737823063930687708724261794785461929967971856621667186647058603843879645802242998271436084197090087699723447435510073371622806060060031585889389729200260299317318399749134147825575677397190560721807816360874341575307335702827348701030689206035596033614668102200066556514056622261397114057928132788283812319809208133451365201758180139240777947429851701215612690951001328743420074130603698367699974349430678585095836275674925226167389816074226250680961713714522361533414796979442094721649653098617476810413091180690541408681702777286574357263888648907035544503460561972595862903190529326513213634228374730574974972343857693590431452423475564982611292054605589673999962318166895755075473343435497878703094031263518783384846510588572528500578700751023242599758135752615308121752574820173893660984085068216122246896416969543030065294942550336865192434136063099440151932536671857168307138706010804675216919519364017654263218985585152999134704739095349866375829064584166918573016213079813887110763806249690929949609886969202319469344981333404265942409727724113536334706572389452253781944932318789214969272509902991214176503659258878986718145992757804945775242448311199512586630901520237633967846809445558798502349740624104012661637830591474803906455861294674384742062569365629682451890594433623716421710852781264831854271017343484330023413713267791831923909015015849773851849259131784859299987336109961281183979292280909058768467605518060750435636467112684563234321921578917306151175900788467399455182310879594087946179483561783942355795033751567141263652133385080214627312329026108228139970067020353592090710828781127272324903555495812858094261550181945510574566136261318160213756733774865139412303002048180695289880057787010763960891357352932775696333716522767943379926070416537031989627184210324419898271343409841436899160749078851059753657592046218536441867634424215651953071729884153222267877652068278500783942120420767596743567816104016951485421013520627486660380880770038965078985204716333326696450665042188625267560843999608125845223824226246928026671695173009756801854803085715453672934366188584424599935558803259409851399158847561222128768708455626816137500566898386096400618788888579117130994768784721628044757363506698104478091957761266138862534918199053964684542235670412184401087072104433438221208066544540826227940094056840181044601044735332682256262765449818672007241743380055368315210695842676483517212628648044944351421384068004522943057790201215927156529132240491021500435054494633783001776218402091956237686503519733385846920683005361429188943004399814506854978635080777260698739612345804952413383237392535890687056586355033273957794674713010242035225193891398308887624817320690570354520422203312466239947830746956862163871974202518751604756108190436765764375012759909301784325990387777984785253420962976877019224860138045083837758594199781828948752081734333024569457968669745273234975176486656291389117918794692798281469930856896383664113857573603507824035041358476922695706530696768983136636856879777002739154214216354585069376449323418348210999824480805427007829352853757978452062246373941182025108741190033476757569624007949521463759489821897961617024059703466656722932491221147516744996691909262820924299782283029805855839550302718981832375141534627197561732484408919382785073324548684167098804259662558812016928049728872002781763780302162919313526770704407753926055769952054753091203734042699318476814045567581443862818911149312803479954076212976320167242427385008405304568028423979264193313007459523171703226838971123872840214799213865367733069950342914020748773744269971616715708037877275548217087665769326121614485315037217973602738383258586730398064645581919426719270006118668480240153857652430315263443600055312070046193580418820734245876102041184607354865708023883607738300958061660727062869786240865232841216944396535627086259113301974330108759699701207005541508569371372050587708707745010373536144176290379415694802043113780482009551247843627549673375228345114317541094451100323068019270903107855777970348409141172665823522352067222318215820994978867438754006299421712449794028028982644856202299044528308892862114293346468350464063930582406886505643496354669793022120544766576610514985280220863279113915689518427503840948760398962370412864964562585903326036973412209733096424509083409312957204215765196230082609443799654989895381226399586281765835748074498250696469526455254073599751053235891314830288832408561669971089875873617756820894762276702997473838929078045469395214745712762761076023110278713246081241457695248933878642082934552364617208546554691633181092801034381672753259312366921518750438216014138456656998217699037346310788041283148498998606102944174495513111594914926251210413732117457990652364477766921538455456636277526885778564683450144282798740622712062516856204513179154524051525144764991043004774970329494385946681872225040357743353461065628391793032830135879620086896788422119240432973830885615174484631369156362548594228779245095333142049257914471254502070179625964567378389328155729478807930817635456401293564764661699166158649122407504704672422537616538515784569966369345126366910459971167795354587393330232434861768263326881802710892803187736723042881389391148778541323792839572693337290877436956124829477666481181818167912321063550792223984174392418712069340644720705787879860248092955015601786855298278264494483001250130558785315816886284016900294644763094837328604451029002839786685502717785915756004731391818079861289530110387683413617176894153985901211481937278486118740529466186610934098973449869062454534238856328004032615099082040258014227132796791138942448387377550608781547755759323015058162882220000881931811739775657476962520268507963994259853501875517970422631049234438088290977524872249514142721274587399304281406882469799900374477923483822986031518948452324992613188060311059586038247273273411242113034545216266058998744151543907232989529970713148842254584618847830923066872304127362986587057110067359987972146822804468575015436695983382067140543900765350237297408878608054382092318273246216845270316891141881074534838582989549320214201419449788224004706514128948173339382003585326846363036543687224716647028889694461909576235888918848838325290532786930484377670229439236493473936064552742630598493535186307888684713350840919256146100857835917989661747081812383492145618862989049978321024171154250925826733180723386263405352658635065266027217018559202366924616065718222604240772724921171788707118253632174410306260320751299452029321658186310272210484525482438122839862989924720039582046224035078652932974609546658289978288384053963813310471752156112469590064439556139050630342971482707160799223517740941061678096864933804261422770553989875146625186294256408391508275414197184343174036752691299008510207846263993721047265330505110114354698482203516420784601217726714687182103101179064636145464647993586042919653332237849677092611077460561350802075636301388741106674098805422954631080684644768231358961555071997601600473039069889503418119974747388061806930233782359867245773386143792036798828102955145932187650637263759879628385169284658856949290928479235991719270030008162794808817926253322997407354736147555865548549333054197077701992362787882189725099883753366303444765253957370771618194990437489876174645899868737630434992931354723964725823785611539183112161873936264489396400242601280723888252745702361080225368321102344516615332135309862318194904225509954038104328462060247110067519343330869311838202847522046345935037625291813484879926735842197007606753540411687318206437246274075912204001736452119056854747942811357259045831031351119164289707950512534998678101757723834348557274113755889411077282820547279346403293053888954153885921695848325333164529755940716309453735392905083101949458403470070545309949649785585423653870530907712511645733603502157276647292530652197634325893031748564637770129504653286976377482412522809930374254964114782775027615478866428781193636803849992115491035509549459690880677667600679280729434632765756835440571503567067732601412132617647736609124544968748779885780086805208513469170421469941296820038905267332121082142128208307874569026731498547986753810124177535796361918087784054588863089062944138471229467626017165516819906837199482265795935367050618174198358128386196654963259205692885799587744996679432603895696618171173385379247417013966552890277880731829417085214026762309861213560640486069765918886366803123718437597075449113808489813867496656645264061247904294643595037498644458010055785820683115090324160118405775796660626329964667796618530191146329664053218041193723250279749886175808398804807572410066232926454985246204729426316937720046777409808922369196802146480515975416005655166122428534211682567055712554386841163551953633839219289575341045790993071407481563519484828091774053257021588944120778454740246528639220270831292883849475677211198137202566921133460245908272190369283749187251381552226622798382678502183138852727480470717145712395400166235515288469987224112032072825150911983961508275308438043382399645647645010149904591427445114315941798851063721070247018301363425928397008271313953523308375730239565152857509021149642002134357302972642154458642538438777924058233620935163584074939117224848365035902804054425427546333848309181567361288871581010186144416980668898990262152376932772305050245658685322744332991584623597684488265991606812352526827527979455289372918433179717157736089863824214298483645041245114549857968052301869669218057055840461235073994888343403222583374049083838165346387961192602547484362659303616685294076521760358019285061424945656370672990500785149547763755809533942813087168288582142568277362680251278933435026009061478089436821265097381398530093053545613058353861474534957552383524263488854867558050621304596477581274076054335491132814716178027479325026365642013150687063036739453196245929056360871010056370546449766760127144275160092608183084044924583631480157977918711419946140191513304869754126464062583015888225198213984735704669990010249765543557162649905271994137029741716065744505178758714055510609962523480148146632717181259488889519930509389225573097534657484599865692938044208810507050420589694700328464145073505020978738067451740471718219648802425279506761206605911385074931045755682434663115137949294593836155245307016044409112669975300613510342103996591118282887841620666334910896986466376507496222776767428583076433988346924830676358010703161969514499699218515872844874220204569981531869657776341876990865696146622378109066528078643803644671798651652149979357194157978248157857316782173501120059762452850954821805691816939822202831743763802708197259756846667852398814453472065110422473442827765074970985667979580574015235569910333224803982106442601388362850442329316654479191355594939822399769604050854923357921488175967258819049304274938654710589058696323077029053819994703414513899597263801368969094202424551564916815649785006426007899847342851736283623052695195180583088746152529560373944353162298469088918252248713547842907588311823984333036999752337006020538042593132423125150407136455470455481208695955093989408819298283870652891523165009913521084642497622138784515607837443247217076869844424234267936379181868029318681416386584532736872072008645682726203261622686964718011686129509488316155181068137705520343025354024421971196259887675206134298115604012286876006965214162659165859431696999394822705918816180350291622635625347481647745738440280507176859879918116339242670707888043284560466960169987124903238070620761649274114944865593682374331932217763992680202990144774574794405448770744406843844786528671471287422701090628655502511263794188029281549162809546888958164542992453626839951656653394274362446510162162471876572607151892598250990929870944439491212657050270981502558695221935832322776068493298735445355097035566372035813213361276778184405326585767469978616455691036159760220676279059792032815613377982190658950355643977070152131710200560401206854727784976864574785007273896818102728383135525415506486064451529328910409192376243169197913266524753746968299377208970310602246529622833116229841786349563088549958372675918239188447233065462397641635425636885787965177656925834754971122432334988998224368710998837295083591340342986587991009318104561109708351404523616152547135198046571544148441485994013465706121486681766986203619588443958906326686529371036598489787646452724044754971494656868243016900411879000113547224558974053195799560700620756769988489794065983151800630723071139641811021093876664035836526986105347588595316614360060989491430715450309562191018324880571825848468460191882628927943453332670144397638277956438312631556227283612453616914892691657040436992500655644235643794088018428052322593119644777790641307335637831239242052131473054489226893434370165598215238002336900529536806403872828719363283201759445989607206058361940531838590793912274956628891443130436373533156740951119392056744802190073301673287873579565242999117555822977504203772279360643063974524353714108123657079684725433436335642151010993557279748656901169752551630094096111274789293534603871055268952247394555224026941815264806776449460292738153504828375055546769209662760380198252642240123722447318756168550340539040614173065234267579066982454298446581476778860941922703250381594892998508037120182882102279251216548156577509584507385934143744910936087977732174133550505765787540410016415487746824254244953497285321800318120506208311104706487589960803616971096006731150980310435180033232614310402957064400165515990393505069047879636620999717745167793304020584355666470518031214803091758522525033411020996670491054276064745687389709024406804807975534799276953384235803763009466719017409969267589728882508067425675716581150244417268432160596433786888389749627731907337074285029575806416161349685904993337309273509858138428714975406271432797820032296113420839902235902731697879683135493438664796278117059586017983722135826550670335116385184674629339056365243837261618095355172648500381832799646989890494805106749959160058817788123982196832203069981507312193622566803167915859828457691685385621228603570252625994860304706963592048195817575075518178921319056567872805212774887347269819168451523619164239882056073188320382955975458532703905081103132868356302439282292116618889457779305645003775206813189345225990429671025728835053143202522883001369760128397808242568359988821287898254050278974219618316112281706924508381312501521050359774906529253997839505762799919758008092089533298159070573347310398028130679512557864655167375702924950433806713302958275938302838281509262492399537739170309504802445672848056992401775758879410410843056845930354458332762628576649328738537100071215649333712725439696502409955127651322230941617971586180850671159202105943578557349853479709627667607853309571893832843535424612760914561755406447221163498470769838857541472436092252047247504548890850810708463247532761681655900082152749326377997261730941482952886021598196978859361553368503416466057026885375175937692525962146130356822655779999689152147650425651177857157694483892887180303720230778453194573423699172883527559502409872378753630127999288311222443985478345739218052778006981359393025481821923770850699089401228350061048157224730900343244369259301390107235601420674366967019254861291446411209871097034598791486172594142976858479079550532820226402935712905302238653196789491500273308620811257225792895050766520696467873228201067291258440865100810586440385083200568356881759774513762987444305035619887461410071064963393495679158329806770713464976835896347937145950851094049146303054305214735395330435514101471225522279820173937358018981571532768472884657533292092424493014555424640313227712019104752906461757827309115079741495683586803334354969085219959046664429682077479345250764065428792034072172618032128782141156962625223709965225978659622665833764642030768213434437931654783664872912175245813525408461139480908212374794379859391533273988673839006926564369223878467327233113094202960855394583390664951672630058787907766539364596424149262293917011460770447667090438684468016895460474334772975115331042409344343804379036540052995023674714342755785598931350995764590920246120855025065360996005669296966087981821284953610125057365660448893822026440473609510657165781090385992523978125947692593658709027149598779528318599741145044549575475397282646734663944406370357786185923244213583355786504257214720192278960280075567959271886795627240174340203093686326649480246525918595449549529013003066977840910815464654931630138608925504043432553131048315079663035886301711859579441119433058777639903606074241131597690185662072480692350951359932235389914548701448510845380814381434625312619990926094000389549953503666152440819963433169857163541365188195236331646740520157865251285332453544329983316665273155605665722635849394801507962422945339044619739852078587133892226897223609388407442995791715718003102207697169467869021145657196307683475422130102426818858732241227484286334803994739768005906662860986822020516568334070457944604418924661912312986492527568725997062314099705599526329443265988540011543775178573216200245067680502304439652037784810172318137895815335433383511918943612958242237561710269254929157599696709214219587443607002422429485967341028471609845006189733713212777427220041317410230957599112843292538765299894787445694145240551119627640433346295834202416118150835549792755488085576556277207690334107844488616510713546828862780270508259512823024541234550329414315877824860857817801665864007477490983561036424457166786387697791003900737722625566908057545085983983990828505196586188423624304321648319895731066766158091416464968088339245948804509115844193729370955600706055987254989173518208812246907259528472435596898639289144988024675063502678801180854693347245352871184713398315214862340854262355421458430450421851597268961821537398086398733555737833761989031284574648321636918116396427725360053836724290589767589564030460203585804222366695561415302433287102411228817623516010066438327073807505630055040547241632446959644012117926118253410043383719952916453534442141931909945808413751755921403798134221085753413911808644621905834749921368522330863956204782662685097643177224726902691408820312178327793886292900227388908714720200658789311443069950740792702450853911180676527662529811952783328287605766117572715416649033761369951391208565717009418635806871449214818305169025570576692475431376459551738990853855205375062856671889887321433085856412001670258228725294169201119925080209900314576897402995070079459289006619493505060744009123748577579306678293544506946085497903069828766080975944107436081724253814259907403388994044388623322270482518180006538855113495500079819853276444147319988705145692405251495239811485039316753520297664077841061374932866828866603008223360710216875552048451558818257478885848202680181066488817016569548861399353977779077366309459774812476730697379799406582480219480317417470960910872479990169737409037769656161341394494692442196121014474687655858949816452114706161196929449537290673698081448504606694019669758997192901325026289610189003149844129994051442625692580727186528244601306842343783606856268759288821914232950666209759538764640018488522471365840491804642156705308623426064696203514665269698912942623319450997680924512311264211344134920785046026658487177553845492278231548871517741136078013023658230791242379656092551243686461100779818694329828624454618887886065026600441291530839095725548194182466721719965037286371147448817867477598343212239486213179773608772199280306409792909538507047088663461077590737917829146591255682986243036742445064710613854800190112249453972163258686218116098277121690214505279630228453448629084378503264725685265170347385338435120569080616625233886740742357853258186319263809675295538196238751946888158593136512094032288209385869691702641718084473400122359614828992173302551542193442266937668420081594975319527490731287971634426711938683565326307846993950334966466464839452009683644773436696354920881752521106530230333457452451772635608999683982118055543294910103416603070083743254504867647372262478084237159992359791024179808280922920801393818000227959758685750089287820868340494431563233384642541711908931031727470213083744266677259766624680481093985565126491184372472368432885159446300444016075989088992854312895479994516288643942749372583769517536636653421153110842657156262917145385538601662580968467571886882927675618694142952210563985619474776952573813306704460263786811215121559503763273865604872776430885957241084339570783634671354832934849685538271610832985652753363640607189041972864157535174189433276646090835815901733626842036166935212375101551678976811318428489836120915162642316347610784606595438464120261041134214390591421368758240782861629085034281680274501058402949487873165274076705807029893366646122588328440097684543171433859472248669272272005771853634291657590791348165698069423203783844258077924970338721341586790987894115223930476157159637203814266565420613867119213602742242488198111555231986309541651397724643207201701404177636878914207453561148490052381282205536765632251782169034709917829255085224993419845098697462143724807639184022489440823721119369374119774016545973710801858053633621202783588168932242209331016988212049298090424171963814238395078659319167080440475372631363139697932001450244621907039629071717015668095429239814584901747315449177131324587909287320014007945010782142360327981536918741319264247926022737416197699938280003610792842975325920687373025097164805891357332333703437016193682636246738804338808015254660459408888177759910339039278301013735519462795885526125106133167369581684510412257636403053621995801396500491391832737097932237396848440945851970909784225178562964338190545633460754001272031513482985655957029638666783735112195262830693859267663126211469963180781712813120818062359941530041077573370539156627085045626354979911477896777761222313648705274484318630334427370025456130988081603943521126690653166405377958433871475482404213106284863692542097504161091162214280231857302144500823209945491687714565741434453597618919806715795905038630212080920608280756995107377687880377168111769547817929266588985024841309973792044418067088521621098381257218584234708672999652321798946921322831562679233030163268484032128525110569191395163519249211372587179069340340207499634984563841772794555376386095068708441248015331977699669682652540217805274258658843417165722971860672216984858653117965171615154441499611372347913376139223723560899610891490154815634876280071569234838262493785586572847306385948638287396128593298304140342077147723111307258185183532268937552514215980555508133990215775238752785321086179771103231309534787315019116435899980646791685022779844864781550376310073254184984927324765501057996653794815555755151768114502523752700625004949004144401709026685092667340008712888315111966232631570376578888819892387865754848192461453190928895310246193885634841973243307207536218207046890661059876844244845891756106831992666713388026266606867788816963931856362106990946897380143792354326777015467595881398330009012052284827118346982503803673723824111511258445465452337762773361082860938459141299384620391731626287820059034167942523113055113512974453894204547006628614421733517421712455208919450700017670744313480543653548209733191897974103375989598279768410971175581013100418508757428520740093752788253930997266501614940303809381194728558648685811448241638645022903212243582709385282088297418203370236475130628693082856352867041732547058238899809261940611532670149875844319054024207793026428109682671249375722687026220164396759080376251880396136112919708785851212995038890370735919671073335368909450378794941037086970846013880892982996751027453157845029240571642714982981661586316712906793438879149557344097955585892289346980892309121826693555026055100061392555494020409910676286838189715153879600544294806759075039951685215176215125148448786553386702584958583662241502741013992311031395201925565497740311639078371888455442711037800234302345022730909776807476010481444261478932979585910841531187311554511048019642262250309950073977553306459160324522061090933205608001746966169897805258011520999434180372692230422346065297037127085084997472685079303862128110631228854108325445271988978677820887527127522687075000491449894788689080538965323399465300750385475700582523695235355084940424703002448241290838292538268546826333019786808179593626812223696210396963053626621750611632859017688709279062167216317713577190433246702966797136314297930835897824538891192191278799746787888083971588647830682285051181397349527384183811591248056969061031006701060997721206041442030814745642389349262442743767201374463246840595560285816683924001450978282423445853069866254334316522306135560022800933866815429078848212077948877638748597508794438700388019736184279298724121697773531728737579103689574813282567276521785332468696925249355783784625363016858695635632625515112538667969802276654469866775024531051698161116655820811991419102247532170617499761504882635601762739994089118188757804346256996187496334559508494177249109841740495649117447313443884601614867009299128607978220509986798753424313797808390309073915631232351136603198514844527231580570674897547779388363565698016196266650212214829415937160298540969040248231691210306242147885825415597133522565227554252668419571750195228620011543507859200868361015411646926456594294887114030680418514053590884613415452736845745236700055224359713008204743994236338389228875441410621944569159762214944642581036508966334695441952634042172929880101087268191118359787118869457643601124404225189213245479225574585866664216380763660379660704949089544568158884214761010467952518940541603212164649500026926268444752978839512849548071785181683301140171871839086083443446665835557543046126306239648715166582200173051166003659978227186001890307901905310024300014303540023003562298000116018687184204156041971541385869350717833655759887001000751925071637705205544264573790043780668653301850033131421689814835165137217551002418905739307086436156206877636561144614263345753525106197894698876710092205914961148623294346021308401399775934814477424633462586525816316912448268983434596040807086216679969498309325980321611053893865704042266077489039366361048307347680896194752590001473560023679432470820556119239318936121379665877980224004932280092099836105070728495711772453968712386788890661523961569033947318174994979509068131284432861693015503792345275432598131252613095552660602750085193506943836417625009471084740519686626429399580264859417373764808516300589154055487167076888181887789102986382380471594109015361303409559972294008958350613929448965388008785158364254787674198446067431207957577747724249088362952603123986043486143822710465130440042704095034298911680536425976631622158941300342627933969578597876248303938359220369066780770110562034707244907050793737506770446399029493298057502761131631206538728017650054864467341203308035024484364185473853778004821996407955806679331945944846665669398704710055091988195611891668372919633495722970025608370758889489056095486195727955585728359573228427952339633311484137315457269384768032360604775161061740659499738644291991938592760544179068259445645918599724860322172384133994857096992823573383277220225436396550017449831900912749824049368087680925570369817438720846570893093693796205752517427824350658482391081647332510566095881897944477783296762336955878980525716067811590158534137900210717372620286042274850312229975863267489218030388679952628167094629769018181444872845868792923088224253402825724943852351110679201862940679145414501492531700738287400808711380173933792049913553336958594082529843608987950599114958339045176760674614102165298689112274766603756774765175309510903250061535552713778770397349009948937892581340747735326893741305956500438382481000470341071919103176232347459940613353310921668129929864902324755532767495120802891939703113691938274642380814980712555649723061040418680153233191931344490332409801615012271160537676597283748044135264198417318191051315318233230508185968364343563165842331277769403431467725962179519185518055296011241562326573674402146860402283157267201900935263593171872987508861894933759695572547425361901746903741188662985868813033638531711756979075154310698144172640349336198915776629124267397193170157034950377978939607841487635483542585532424715631616419568167801424947805774999040200308884354719729598790221011838865687106771396064813991689764450583980920671348083703757284884370484409870057345069905449365578241153874166077815213101443705076649606768200076398496215991440866857886535389531931960648218031161394414673590004869740079057999065543843709609459934542857087089536339150337060363827923522539376640585957645370030333878866152620377646702990620594920082959217610361875295436902862025474109657979932968356651263283853098044105813065899721347975949377487823360352042036771888737861430798059383216815951346479654300320687798775727076749094154637648295490970307776502316600030388554944886528647340681228389421740455981533700514570386010028858473564576620923091863342611700104765181861456166976082862899415665209244419285633269466979870788742957541815505009285706702020683111690038001055583225221493384972865535121987108890221625806042293213808066455048064270022311215067721803511850208873528020910532756570546582633483146491521974726284540895518991403087972608596555844227821679332120408496858623752206135010371362294960674205639970514507442588876132671376553249459739215112260667790765277013420386967013763054521277872911389940752755494881194833800978773135111387873284819842045881610239209109739053471438612669555603307585992594368538694312454732819192167923162612562820198787520113249128101893336120319170610366464327268539965785474596853193043926882090773327911101832224553758040773652828249755931856001635832618638953398997391260715630488539430564377595739426941701634124473067153519781509870393805669931786617590554246127080080168170916422254780833020636665708186835189820458031191765491505176233484224016182022466820411471802650565828970045192038677167077117560880952293246128322077438843352201147726266841070524362890126101580894936494964823353927036094050514121824850252691483761862988382613128813546320109607840417602470940459575436047838024638766414874534899250201557425534109292936877704977269508894660511098340584841504987485730776337372485952489624658425588007210999708698851426709366853269123820487578891351823948588081887173592913808673087787565867092350301941718431260454671417913943145472115534882299332712417627320938989031610734007058319893872579993526114711756047589221232581848290436246545410266553502657611583406719014210306247123098466123198521374101749294664296613936550689728419842681322355175669950912038225768642626695793234754525016311475864710965953641905328852678201362883582416251283662421776255458614436688836430571364974737066110008106551502827759107389812493468315935667931070921419527618585497796983861689767261074823408779122439871979251043047826213251609154510574933413690954391847010380994155518212703577893612752285416498998202638908474084666397656060822511039783160518890500967525466453509292015317192962587244699231192406971502906064279212530185915264935514796506244844376851718234410332177081191507600287576759543118565210577132479643612475488132882059993861807116413408728013857619609238559543730500711712563136414876620527826160029658241491556625765859680932357222978629694171379787827403000309816256908387884465406378202952722833970524913282292568257081636358689218225582095711528593452864211502169528712313065329604654309146783242864574507698639039460201426012875283314461901708080684679620885098408042523019628478135065904582994394138473950250124041347240194952134097401994512731799922937887530576527000948384756873233396093564256759760928309244376814593515041983609564544305787411456149331415838593122767212623415946257413565238330225179766208309127836810256018910775039759332674001353448018543439255716218929946932720987648942701339764930002350032669103079122113613938739329105372086741769224187559661656776598643233054218661334108188350357757638747829176092398400134151577668146811881158303202118602298504196765195692422074148440996215799406046884108833900743002993192566190504311000692178690852099583049431693106671161062097926566912201581154358095270925674324028130124216772337528710428393771378041299695985747175942593540113901209348865478671480766883778402318071329381033547854553371623574946902596174922859732697487596809097772745551576206021956949293866280454895803009062552087734645112847681569502302392231697783088347839559181534556789776502833949035135433788832510013399040642978167870543739451469051384182972468619771389490979089007891847992625208458435589814949592051509624592403516470098718873807493229914961433254681135231971677581707004646338974797842173859602864189783153745784405963216928274967439519915145260651762348411620353015170393492074949420322673354835257283163079063119039523838785631061342061734924813278591360907524714851403343757555223497459575402920228147133738040701362391278702147476735529063407951137233177089208631685419443381371461151159007981827183362226303814935974337206034399461561047003722829997477809116939646415180186087919522654683602347808980770586140160011706367094312287031664852448551667433361367661447584766424052288243283127363032303007322427465864762112301343203916877778674944114471287223188908785044250169342357557227688914581647874110366854144853494117682685208132007423283061352265118092995187865441901368041111868783774471216102513240327560699876003021647204672400663209273908001960264664778103279445735189566856275811846471893518716761092440969601885085365660139386162241927166470313535233814314428529804597755727188492301191477552765636899203518997326683725233652810952351483598881148038280493776439052105600509042335630997356815281467717806630791849566707334452851413415975622277342198534880387017058935621498896938038754766333661891628709196907447827191847669116316901767925993224347344953246983401529807240833533533295206223908410328790096121282819434811805667326511438451831687042321004978518546399579146551205301349205403138671260091821281114966914832848496802702299264929961836327696299195368807569686095445889545428005033034653919021568482275329108429596828014215823594739925547918203372254994723581457724374211201194195706811779874042771202933965872332585846547691482598207640633821091038519421789656479103182185842288371418857081338793964627653626893062313213802638301167312241038224377710474034649066226387027248119218228052703849107200013978292732031048262078462063031119174338109680109414568741791259242223718320629960259162622744619982069445329053362863311912733998843521564490994709525075509224200354535416409439427479181788510951338029582138551065884236856447635322078942595623616155266776440863133293511035442690315883549727669961233827477424557504881471498501997996781485247897579068687657682943197651666770748409223702202825429121088920855401363885538701670171875594951081227825982661589388903758676755155412805461425046787689257010745890952097484609846206019154688020658063856936346429818619249505101616712297142313906217005105148172907247091237835537512100947396456421844534516259549717723944720367105101635538381929708964294711095997994037184089614974401132239784141175504990133598205180404307809712829450768307656982255466681337661865145096651040543616123901524666943007917978859997818659179468171738614086588945525089373806285029505296408056281175639520566571966430411579349898507905317783250309119730366872245314863226584403428579561705493713091396542667415091659851928342469524315296836064827382545547515296731005889109152209734738091389656232617338819864727240771219075799421751393510141762235431308696167252158847952720446556928809796437707635634396801083438870265757235178246625064622701761258704062448011569748423216338699599619996859313142387034699711433076789382184585069771425415666611167450507973890468744619899774617066313931801541956709813584218686784259945836842467856971057817466560003650728907507138957245156894397236641776306264127174545003969758533336388798560426033611778455921788866662831265799157892084421397677160830432882045157375765214042653415091955669530433380967893821629739207646549919371193739636660049449429010474329474252011747444558192913394934608237613912473691194881467272097444729443925048814784583491272546484403326973740361124219081237110573002801485498272142354557940926325660598531659811373290204242106479616445757709228647122990061795113165440734968262620485763739254976708326455232507474422709920391009461231899403630947144930751729913290064481030656838600359394781226407302018041912275264042363845802746225904714426124941039235289877047236846484092219106955896988770471138492996130051546908340487157230352614476833185641484975831229472386983144190304630336558246558276377479630755072548534425440549962311777214593627566381771467915031331915085014888859039664799826793950545897163081180646638966396683153907068087484147746469721386694716318680704349434961205236625160047748887089978370797337739075794526460672802476614515506324375035253080234267817907454052534763671165715433302182757216386013536344935071172880321336692659583546765088380381658982895955537830256705530991799881651803466361804234328500325235665942958120703893723187346241478334587699915395124364723849219318068314483524265869709306873272251670247502457712423399849855063390069286160887664117481955593162899372675554223276522594358143120945860656410298468943685978799280023309222087133045256908785232968930118770818842062018964706523624745146996510568674286711798050710432957673342814794583612185850140416768862829808534872986131270749082773856626201284331178732772908851732137342257154956829539559431847419925784686234759319176783627001563448804732651766110049858941566468335845520162840024773012009254186771763797350508668612642404107034024865384650128611718691934382944773555382751199701288202371232776545790757863601579766439161259750789944181660058500638219171594979064487849486714484420215923959526051006860918317238647993480349640527668239995471280523638912327498844299102889159850387996406056401111269119937444993687286079125907379359296753586769955108217283365350899083429143954253014295618857994264635018686934658456948137774599445270843729762822261929141860885992635990508009162983520462751865731880152847965805237416541316596658006350537746699626482370028758041551679437673119690256791551599642096277856829508694366029032004138390553296799871555181574127514318133885581403639935409630830067151937771036905998868005720253919083843357572237093684187353019715424619721368180278779095760378552028837341127428484150998953775877493963300432425435933527533238124341246558258070470698576365262605973442154458076310148074449997464325348579221272014997269304031857292350094921535553302848346056924113870290758997062894429889330244245796542437871406067585153057104097573406070714533444463805570414789619362541746022498886516682184705531432777486339275527957411162658282114613076839023548382411930775747984754991202532143160506919547115395731759513630973749732735203805388928369919724342947168581677608474914862827221919552543357276041464338825207856389413285256059263315948725498742177344287939174023463946602185902477314586850488934988723545717032573468005975325834667062337090363791182441411172423021037423563668211653788766438676065409606021518569895312124759906841929299313429890183793841075399039039287682330160544683288329538337581784003772420865247206172709602239626446203308311325013216173841711957907340559557586458792381941275226880632034723745829563091522891897012523997716793503045819774318587583032925228416826592026788890373143559039181773016642664487305742859011058039148943681706552107397736221371170427990908858167549500563328195302720547190927292467765128772632996245821618230151900366929583110142768267165567704498871933042716406215699238254240412379478701896586218496531236553212455349172943154796196394572718385277051874815815180190413322327718838171641942478559802204748912035063440518474061681736883328545613772834268048463544628651330459280296051869478062196415306299030489139581453024384632669521003075987405057676577952697757720926260157161991448136255362717057147504267216137254869216402318931543420765815820372279539328248525256880472213829582282007273938972004537852110224690584657224135382769584070926079748110616136101062918522570207698601723338982046816391017874089437716609137731554352722921823611683110406428285736812710559006875187599571870075292766691120287873022507876958432888155686758284683724990736474851949868822878038562860092944877762502296759109025848653678181364491237127093299106264352485331583987181122397680968960927191120862884992617570484701722172741374558725133891962486053974988749723604980187110522760365034759227663011660464911567121611835978851286123841718983124498170701157290124701253415051969540089617468765889455909167311244894024037292376206830747473911071626971337137756570271277569257737410366205400812773506019959504817655968349224611942210679009452287055962386177013345791113991814689472833012682422697081762818521818381305743134771361764127979170479296087424655133325659426358891043986458713934623501949334171536322026371420271132076732700155188675950391765808527897661921800336957994572238679629706943617354456876119538745485597803273103618275976252246059535777885764665800548026249016581149723309384387683056080369271618465217539477648296158764503806576968915851968312531871938803017910301024116588722264781380365130764215875510535410713051009299488501952644560418910407362246599755477271935672634180587823931863459835727997412207379043393831904743293514603562503593148797652313993276578239453383595860813480366021550128374618292191333015114251660736407121164816584510178063208949392122660453801948014633698062192828656098965678945278835210550510214023250976817263527220331647803930604252680987870724652301285964757004054127083706572694425744885196725701418575815862716805930338234047058402703008793439104856187600235318102739913324383463175886215202161866109592876940091904395671510404259117280647121306441850837893365396394423879449642432652025668633112939285046095950785577308929352561709152139089702583486412969079570118126024307567965064124614213389053803763918749600301436021447075226979074603659737526247480268324022228382566334882997592920166747912965896744333882800514519597956137808017680885672160708988907898564488998465408579851253663468220717590660962547882489299352610876860592305661854359844172827185441107066395845273483930541953328357632555175557310862266261583061706897074406145808473582083205886426049972731032711694284355606116192264359273878787131161230881153145329423530079567334567829625199641188281575959752405936139871789936436487443168449781831804368232117214879515718219225678134618178237996606247205934551531606264153171612416590209548234974446346261084986086196196309062534111584899754971902298708605335796142391369596114055046021796387583776346432699278031536302018185591887339634867328108566295435414766294243349028455187747249135942472979853219636806969844851529573477822594553814576742001824623523906539191839571157876155306518206798583326924583194185548938717319900983764726543776185458525104960435270329305791043261781603702746149893644202417100407776327000505835887534476503048078164612983618424732942381955922494779491353938713078048238715126152699916180993651703875381152249564442984011960411514519829296660179136122121967278409953955221226779360742084970622648465413549649392534836810410965534685987968769813567223215190002105239565153760116931292189429069234393898768111771024116933547978949759838655807975307494780247138739682445774050996028661884186555784679334834654704647663227440275001933314335460917737971641702535505942236517369901486708173249927106926744432874318100456988512354918068551813241853895032978590663361298102077720872389107709387340733446739842617369237010705146078250821296792265433838927671397401717168895224959317293454036243915271625814638447103763100016221170544853451800130915725970149807303216329285372553607851496751606923719080743476321707997747498122117054344489881518473896874663978981193700585648329805184321199156362977450952798842020952586291044038542988042392840212760416756652296325365748052660829253783256283809387872916909911748724219031174015862659852810863387528273859520735657357897558298378818946828320974200218088827001091095258636333693374352272490109630720471029809817363442767695467099919084222990344826320335661132528225829796023807685106870289464738861965888554935634166554462438392943537968464018544175532800970421158950940033900082807109956736565477427728594813630676683698633357466703428449856363042326166217656803305435425161886193036608725604608089970701010586929687998841176071739502128582181756823305349659862678358842986104531913428685942024974285418123113610861272896284537307645122544192167385444105766525700604776779989104277990754805218203792858119997029042562560317640825260146016087149751107069579576258148040066388779182715849009685613738039358535378420709805191740922503121751404450854691753012911040788289320869801026409287181615923225110202825784759651270082453799959399148136070937547020994534243132624470138609264365244363770077521971546547312048346574034096012529033927872289150636596757671446095688661788455402019658794875677578062983863251053982210414912544937804187404125019717719922014174030868791130130203608224243596179339674103142687644226431348323905425051759886014775422134476994978560237886283269257678565553814803016297606108220164224490314907528002291449496400259153811762702435739666436786772278571877972657430895023982850927734719284339190104263290295477316210804482615023200914321380878280462502285184730804762360571025485681534312541122288097892643661095086253211103501062422699876441350464662061011782259834432593284486321431236694053333707456583064910324847581189785554710483840396352318973657779182775274383959220177461999822209984092374293535073441791846245004489510347707331015466485932695460603668758710100702499420393255939214480513341605861022224673916890441463334539876551011112390241959703379945253836426404812578477305916326904123132626536582246978446823643125841833297684718510249432617182083273195897294599779208485638847344133228338403426064398281889802492569104550622144562867229102682512914169330493902741234117784231096808702241703938704672493069417374330114951941998941917629374179274875620824959786417098207270803801080084881140397341585931977849985724669435020108290276535454475286581835806416345623382948023437734707117630557171880456032767610922905617778378910677265996852914105382133152800320520063299048603837269086588900953027304544271049642643857424764526884212297628400016317411002270696281548660511882472536173683590087413311523402172424014031770760530184621679330821839489329222910638740554380819028924623287200424949434750481814929133153256665497171656582353539544776353093008351239364227192508985188822896858704198421147171401085063917576428418325943458832747620238677581917812574077531152004762125371392532169598602274301603132619263030808538508660442793199190811662008528031389462943145129057991593492002431351527553495407807757090718662670157612252963928118032055007762027280985987279827880072919718534005107169267016653350955126175618394153318358979067744104415348220635784873065108534004166024538819053235008317402878103674584141345487489964852256938959387585867728478125982323298009116901889270355587407663153070312742999887070591513572983565527614912929636453724189332578780791987465770714796675240099802204774357904085804832508081032578360646860898261954738440801432614569758383056796969269149275133695967236291723101805489497765106968095005193263545392413782279282980056326211039635744519025483147106295200945130856049056290237288942931331006824544499157103447488991817596539803414259140527844718362026099404409931049949404710673721616299468702321286335815318864201885326401965358483476555141890431041917229006030951401929080716746356535163728890093782377872345659397427366332613401264193009848463555989544525674206436778912685250862853281729050446663666705386063507189274869882805778821764273547851176376463538499763225626126691603791362247140908351081308681970256977949262059599055773806023824466516824914355137873250827825694696783021904662623291733664026223947130240735556166189026785323858450810615688265663379655487575008583502608734220466812111759787251650831281365060433911253857732925549514883236644363254162396328904226239919909092615351873404383656481734699194041723084549711017460773310939276251190810048979288387480363889188536848428152143165428934377041507056606276211996796135409800186903412607215680942230169424391673769397385683852981393845404631674091611832254509975053536543985156273363239893755068458360520100519625783331965386488755922029171854066108734854370437639351045703092810583308973845811454680843662612261719534907539526334049041048654021898646229280376440722390910325946255790346775925873415092955444239523445151585888651249909850224459471241299450736863358933597304542785535230816664026079898118748688789259785208909620030177270426622940751916691555139125662133945644883188258199218010052052872719267895739047705827677342010457441533019779009242524766837991684103401529338297096838572741078923935269638446587722069030251391152132068106028367943245549114344326885642626233828659311637744299287878724886608909647281670872941388000489357653835795862238547640930215129301901367174805693194509629088039747033040076984893791528418857741385972692089007907573823788855958254354833201756032307062602242503560567049733000133214939039938916050683386958838729878226612430788077840302832470947995414466986915044925509555259051115618486545334269791705172273408012492048894968383324191481977781106364252737823567805942888919298547097827285700661562133731955515560748845617555721896628904786299379371115336712758398485712259607112357092032611396063090885800006549197549341026664932114726437722974758347085540594319876845486964521422178996517398625114702619478413447889761266825939844355664656784990816941110627505525653485737005619977154693087274269222115351839755637763254345739925654856023977153209683140684489069952731577388397622585663101077378636643457816219982195745094397748483263124854188122717620986143844798812267349729214613626518663358395210556056096255640527087775132240817056496651704115168998615249564372273969557652819271698725457583627594566463972412308612029349987110907043974440863183270315374421411568609895763604091389760572595897097591126440918720692236739046227797298037517107781635139508934467102546154445487078979679580567726681119238957513796437986360193285827266424091140423533811697451145504760946204126672488722251634863870992521316518827442665188040871220606020003082282119620010815236368457826941743888647323231734163892723284813606068833903475528871256361032898917068332691580018354176568918004189924399708901193361859497717135219421012643401047388703709002867754003906734697604459759604504050578571175466949153350174503835676757091803001910226782462069314175326418732950949333161007250538362781083640301081896894757366466667184157266924129882684659967272560364823107912796665061955088307220174141698599895678668037546493983594409229824756055143296534302337917326644583557216225877571869184451551240500876517043376810419757407802607801331888915978740723428922874715638087118861044495332373129855355244521371285136390507198564061404525268142504656416310565584671283641540017968788367106189188263914102244326405860789840890419355299737297921474701186581985978649870464657008996268875618553198014570957844474751310847157604276632131527824248347039841297825187726451184937629861294679065763327672986624386039618109941065796093853680746627483107408335989575679005508985826497206599050003942220389718737335642889490052456241809097686768309967043615052287325624726251654207133646122983749666461765451660981929681290017882190297728679545224296783410108203213966383613838231454748500899766545558178416851188689377974677769822749724748106136764924463393154137565462424298396991331355047207527509603081117353979237443846521870828599202546581076643207927434618173480537005781726324763294316431832159529761064000779128828946464835473112233835677028330744457505924136618931701976946834997640291887080087436816645287029801096817236272816947801895364148430335068349233833696711660199620539411840174931322824036972385339808477902049829256629547357609652464924582737777436917475542220647437447633812513597791481642195308037539866863497460514668317453574203948808011282643600042993200966315888742275672133536476890710632311120531857439304090023756115723463397759418610720033183735495282807504521419916321221799200327411466444512045287494885808970148711967798200192160990915649200797532207705374191148349750257274928045622539231200148766989509753962445142049820760189752221466038094500945560456816156244580023794586019724114541841089701252439233012859881307467167310905470758712518531892659416089970348789295479377314587175111511133782154960141460895115841747640214610752291018425684995058867102448924620280940730026595473993647129889475156799107087485537962005421790761124678595817997294186235905174021911223498554994601422923536204740422497106222882188317478563830878676702908165848432200325721643927999522615161713777948761618739808495082724937668132769223889199407190002367596900762979383898423369640839159063005947102521444774946868260278873100119229070536934381249649284751016980597164329827537159807702997842121366942464407660212668982428114630385545271178272742609682681411282615562318435441733822883104318680800943602558132251467381894719044983075330280739274978390252246037420814094945314710857011882506831553259803209476656154057487907784613025913431198902146711950852207722510226322188916595475264967138067773892485351090907156779840595930604356297938688176017678425696708224615342376268273296894913300234924892210381729873610039006072332978777785959851362323531261019419727246879524014284083045714718648961810558524678860295749931905513448231618425830948481602779409276399808266961140848956795720031418288862573534542505479535655966305512908719396664731176932311339926917962727840033634793221835102977111369001533267515733582284591639179974908048805834458273036417129002418541839848954994035300194704176235997522094109904146834199655077011090929456398220151111682351029824435741499913685096112995993581681516559728393623535239924204408302473357534785622758800000295342153250906386174434362342907029495059969148060848120683465704910498016611085073462033049188111100249900098894192377489401549108783557019427620361273697280100866508978519720060725353314061299055112580896450141053750158208189117213129724241805471841174817646938589907899893917664301256804856027408605424827919563246516903250856327930055231539922247698735960442678614625338163246965889237191177802001092300653147582169171996341046088496976357668296985285016182424543041720241508450346450522856584609542210725603384017292482381979121972304963352372354444556022606993010998380095008751559380792590386242889230844763273298167242678862033166463567530046556022820642461932086753396013294272000813940973181904656418862149998225343427259356979015193901139026276300756223931655244708687071534889509350162070044709678055232481250724622557803532668828687545400648353453704094754592320170152574649645558072192786911699533672797063313823320812928578701520029124556963857137747906988664790175839053737500325252414376887764640781467106972653553382029846694097098466961742756098644714497127427366236005415484744335886319341457323566213411100780945740197293287395647632454645137813689789710786236294635491245271346629089315990901274393027231742188342095339187306945221359925755358394621549380259079671580259738080514684887679438091310426977024453720368127155550795038116298971523289925752631467830558550852686523107007068169286035895116144965238809908561378353883919242028687070593775014509846287397976999411418398604254543535031884766147606069417840509298108501612447056068452600541916662093295624039057628666870068248736040431017674502535033488748075987437994036792240068298766781594356209039521657522736686271100687781822096802653590276825776816846170127323878069124818503639267798926104277122985220367166070155861190092319180156478703766201897450916904572787561330040759887266252553082197258520376017164521423851249864475872201031749039123627977213577470842386713926893373171722133921956412800224322641666445706857310878515092200482193566050318912391980038386604984248081709684339047866784958992682421383581620858360961491980237564313906646503577909764331865418033742625733059409589311595430319793069309687827038967590126868570563003816929001104788364950444399629912460792093645537622849900619990865050859078678631961646212984119677353611764668662624718913405667750844788359421145567642707650482295766230916092209958247164454442078210364457239018938462924847403616706537618917309031201178972195853888381842495639160503863403538884465272373532904456983924221395081246667245004650559646820225155149511161494892126672890558457365843694486404801097491883314250353156430295918325619510783712272203324390514185073568348574615316881933290721968250028837420721602709574189117187393176366677880427701347428914703957631259179716520612928888808157279160073028897481531075417699150590389904653600127327989182565459838440362783172504097923369972163979353275789266714077872868550925224649933656654016843871220236414815232692773070047947691387752413492336429300859746952945048818875064359419638829710397350919873723154058168328311623710180066464531803333125871597607631155058073096067677684622695546491747092129062624245694390613215516809308204104953958124377236012596474574795536535479024970229395481271124247767345586415623670450177660921597927570078369817323856931686569934285734397493555305630068807770603963553495048471514281998055361660532385167901678542036801153887219561508746107125031410172346771812904191858922958326658030868391197911306565318901633028558302525979267558778567967125087113479674225980605838069723549309511585746120010780217283346075192689927075420707060990083006727739906800457382174844000551758771044067684163014703767083171745444500610791645749714766662059031334813135173221521874388380862722388865112468082427537026694615550793519803183180167660871523716269932720724779287348398315685351721109850165034957449317691758319077710961701059343755275345099993345000878708746104807840505758871000163403250829438659810603230908237829572297328462455252332511343436789903305515893725178406118108055614736429471635695230184926033633293400625194946040621849850619460151494721780667340902431227535935536118955558581129955017413651839040461602578528890522724999465903871300215142015401484364157596684168516200258467111652784267806637391572258962223933683599189331029918133103620532343861477810936972693276232733148548589599742227195411809254737711980812239587693958739768256746050575388474937099586139369373196804517437010109924265123926575981807974620736486427914359272459391226161360018727244942961510985879264834938983909968339038346372458111535758249994413742538619580342071177369160695857991475224355502448140090898223188409407876059747095476927517845798343169662464390110423210816558909369505792342075223084351440772043460361338365127175130789530440441974255956359599452113697111460692050130269398104456159973233552442489727733639174308785249251740332279750736205178405634920183117852471013042728687818919385101316792712679885135490316790718329421832093014398849372915219455719894489020016014927990228231628202561082007780910641666823511156372671230149580333655247443907023566983820275672053147388023087239336520038087975231412219193024801311980706230880677624195168640580585292551200902665736382891112592201267007361689467171401676293002937596434644290977097631076299731553989585133190149605127366666795133491489916257149194314474982037233647880759949439012023940607017706975920940747423017517159353005311077426729052795567936314519631095863137593338831108301962091472807538223159163661474947149024067506326057473898418163696434381477963548458742643912620689768897378816978356778925468487702929256154926641096224054747680644049024365669763702826282327520899739566329804363941268874371042623643861534607987553201353124196961794481123330824959389676394853451188692903683371219710231935934391639304890682292376525552487264421425322728955761080530005985940696598918453455704330800504797969079584453211585394863880074387786751683293635714002421857255852820256657786160674664859104670897289568785431726631801188206948031735711022575010574976263686563765608338126301200199459001548724072299224680796482553120721439979644187244396344006613160639286828111146252683222214898825217941006998418045274896502220041463841096451761483239260179268390492332952718370345051583717568648988787224468463433035311461751972967683691406479844078708645862990434870956055781897787841337047586898365343651105228782453981780915696184947667313398720588788087349684439875138536402986777560217650591769671080612693630992365972696966401552960171195847996468016649284051242759763794593095841299187389758513649309399361996625706993400893444190473890714648157216498073738628703402729117014489652876426193137930289471259136654892879677885333135345474115742608112383692611670803201983265952616795281547336514230725614483723395818285200483335093715456271701106657501351925844453187345099519566249313789122955294831670309343673241806283798696290727743006585299935246435583262950985593765754065958137142008241393998743969416359869887234983291118193094234211985195451599467076445893100936401548545010771135013072856951333748689614853474682520869132858219319888632485352638876260076426523886335451113031507756573653633926092545208677609508298268729662203460607552264547095315124907617801626903106814498749284864860261725198104655522787844804933565965293159595455606101770511014371433847521381824780268495348576396152137943721285475953131511112321836514443203025462646419087960472247359336033633195602445888708115775436044723702890971380761389272553818068803715084511104279258021985713513979250235949952379804536637015356931646259158411558269608164193236971658129902644118198664265993341430341841056368351719170646052452500043893608699946045916261301401831155188130975320996355425465962850769852022066047157439969924155817237738108637184288432732505674593640463388534593025792690102705707062999365371334692610250369500215939067200778946520443770242841756897594902154393307416156312776807781932608796562367415991575196731279188005782157444467061098517635529297129408535498536960241163805604242642843082141668429087191486902963238776648819911206893898371223451719745571842845004870503598381641530896793989335765729086351649504276465631277360090483924534098558876904144049390386099893439817874605353674251885714440088501945886426492700658775786241315853664795852030914265476348715419339184640823105140238571777006347528455760061622626377863829883074548827215891933858894353457593749636635205078687552944231822965440794977629690293053371505081853468662047233753046747330797127791596468779202105056408165747437686807000399127309458250807217733658794053805388547631971911164412213219987162998298081102181547051306611935989362353769668105362809403736059598744018196325502366877527098965454708040179584569083908779468740783339341700000814407085480326502441154065083121738958252390714281493292129360605926115607007271239026016605910667087060264052218215074998654718135847604690929879372478941411166498739463101082944329522822991564054450989523769832261308865093207695871701783618622185912313223395759945662985863924325142829189893404686460537972914642446040636574651446404911000280251777989896450342113324390068260205826735216402393417619247835247948266319034280339778379217353375475022364582519267683661519931270769425666600200588177175425937052636124408248743340239866098625889880843392535083311830710042482556969101496837752130709023939248686707252678346972479584131569235699365686619168984490066493150437416180922715275480541206353558492182806730105343703807097423374079365737262876036908278856096547335263610403123642572052988938358687733184757767253049901405302232149482036941003354525208475819723061492174197967911107315750699438250039719830754504541676548764319482586967359406730043055237234863118775985337376507401936203355018718665894213315224942687621291730739420799505335439445408615796863875914226756587233694841776297091812399253293832158367850936059803473897060405903538003745789430325442210216249427923454213431834293801464888265387406240944718856038687991941615845774657372663459603077798700728069662206840355435315576986239599539889816885632180052321859492201091079047131887584631924562560885859063608515710241335720932455329410429192591109235117179343634672468563980445534222057681668993738576673678697295001733984229290024498006377092603575145743011275236501034587160985668085405528961162416365860527700871576875505511267992115765338004459813718975555840940235483675191473110963894411417032359100456810855282198046592200844836026390008894417237831641248134132549481553551941883419895500063330245225586441826694600607402931392164584000086379191663903697437948296952522063105241701415495386269327235035605094965427033327585272842512030088229005254964654186023074338760225903462437631488018667602743500394375626153714981562589916308402685912637682720811554485277639597735620391930434523531955250275227017059084218499961364965767890733369290029084549001028117107378903089796319692044607632348590641863201078319633124612284027206720657239549267095332187797862463634399157072604710454362827349776150991979735735561210382234949551189931272866308708286545437397862454902663433331450497274374992871184989361548738272893995915014422093395440040637560912773958881770597987626318280100619712946590244310570457898135899027400366640443763848444151926055876679324598740452554057048849061609163846723125541451011068280382959579223115853060092047114860156949646307648519504030317072020865137695711500301633082313313043194728320573345717914230348101634834698401826453334576744854069778873164878791663538759149165006798428482123861523186863196453764629826846754970505294139560487006191132847784969312476589805667997993863040141115563248311094399589694242677529934972536690241286325883898686399200384238444485022014988898798285477294542066777178531332860597459093074755315216451427141085712539350277181066826719141473860159493272298588684313608065075163051591135392439135739600516834452566987490981366529484224095531641702982813434485667263100715120457797002241346175052873511944313443514398277455790844294001603970515427175788537650133838659121120936980162862183922193124736032944751358995071132226453034079620271314258097028684432267551186722941236478810313580544449116326386493906408127693784712071073926205988492330772948661815802903764847435813376329250741242218539841806453807176187416855167350869073020942283713416302276825355357219372904913544800044712628894938560847339663338942316853931297480689992336420049807708034815584677054509623287214413261351094326054052329691792664605327772096292460593427054338222462770021680762625870574820141208570145467041380517580364731609052669993492053542588862359511367970637797738632925619364617200455351182942336010210444710740220683881528330265192358099998065105214621512576166688017113025998547363417929361961969310603546143079117401650388486593813488149189020355251867662867926377930444236759444517875912152202070003035841932253102205008500116161576998392633962041926882991838273271452908993665773962953613277733110952752094096170278708702105368092501646011102551655911509125628457177484965121766820746903352558824292536216620788010761892970944883842429283580012473982305853746018048900960811794432093851725741818880796248473606249647050745609415369980465557606370476441135453964857339233403757003226536343961019616622922091209080375664495543103436555971588239605137921265267539886089359953012186766230690616938613934893166895321270570269356157311412717682772862669648399447829276875631210997356216180606503985313124864157307394928368576103549179605237384736046569782033525020204696277679302981268844984285449366740975468852426006696392381635718382332773196526674197077810329665937649027132498583629306941835951798735425751789403055081082934642287289424840205714520630756643118705283838184856021057090206642703781917765177391417946016865330100614701980131885902551900635337240668547509997242541085854384560674812939919900158770492708718516120996369418386925338393447949894862491496894837572031404261741910057670056131176092650804737664833389913114522974195457014157303205027935726411030759488964440631427366748372270510682732633166874111947732928615638971657847194964499485034291412528025980162156452892894366133959728995100416565695476117533421992362719716570169643610764664969778548181428151927511785246719376465752972659580692219087790802793160697232908970427872284159508438034118357715565336217784026657312937313553594861298580884413485181850264422091180702936471861293937595641924698920802520218974749658554302092173158596761715311916541289937079663586441473122758415539419409790808555479923922525103414263141422033825853517806752413162962129401417758943206360315286949392887145652435077871232728674749517167620553358048225585854541690125735705063209304770354054249317454023218011628476992555617621311395309513129947600450601961977730062348343842619083716249580607718248965432375732031176088361408737770654160040367259129175546043233025620252317513508048365668092590053002669180897654904827852121994949579584068225599453135719235447646908651116646315940750147836931495010678493903337680949830745856519109086807209724047122899872710529901299986752641611347723936403778781157523206551685352049635641641072735740373470864905826173173084873840051807878974352872953041377615519242760902853100981380128525840568052883118323046814454130748042920075326317457843907633353597213972292121503348504833378517743342865540089170076011105797284773083798965846844848471689740450704300683905434958929220141646964976856750259447889768473189655994799008750645471729584205421876467832589152259571329005518012512518952289893319753128014666569979406915842310290693059628350973299391099380188414267541821847568670988887085990856520124682136791848663623450081839361325518506377870619711346584409364871656470166204489927879178756990081043299822638216489428338640124255872301203119232431599536104065711643821937133295132826702298477731385139677198217523077684467047747872758134931701329338739374901254689403708703803226622796863704832424896690938298775323301878348545419810905527061751606210392722202314151226406195182513224079772515570040399674647577396822215420685814269336505489403652967572680533833558740285303296136852305577848561914276567641761371594870523759009822752349025921606895364792526716919112189344818061912934180324853598209421258769732391637918437723540011502674100506318412021618874647620568398784531465231561532318341357968667191645001427993659887498462397515058354732622815837581086806181781705769703366382954144192986235390465041010562742193414216039565501705662184415014312579539148271519864559651919379530933608929655387003234819068175386923437259209092336055887374189209534223039703992014183667590851321083429778962664181345921118853694465467823705362968359276101489513624437443106921221695076651732797032544272262253750806026250975019241607799422297263117180514935088184228952374819380890869258791869256379695298562410358497339726000865421374623187636577353465548691334543164566794233865150882972120410094277204374898924374383918860642116012482810912013165077395272176908373424482151359190655665733180607743260131882045472586163024476208475207476816874934536498461095063350369497914697724211020630855337762716532615934459296488775478921419103124292536184267987642005736578752866062960927904095660619867035528320392814739913181758727933068999257330948176336763969629007499533016882700936153262585408867067049569655177343952363268974394199212773206597629738125058844150437396415439331201450008789386822676942851354760609532870357952963533406055235100732883516921170988627389496914179625369609814456545043979823700374640396906314454717057329364127529016143468274575085617774114810304715494214455711958187000093300056017448158405193621202972441696311686354329670626794586163561178027332662216344519671958079069633100507823053441424192112810871753723945297699464178425626689720690716958031342486975384327285025392434031053125236528306917770470170882500577155045809974249885129908784710132475686620105273827509382125925794625702599535479426003812320042564689289099813836376783996954609530830030868931984630827148507335739069885711100255681670262808802482704252188885656463347443359880772303486442426378327339434735398605592889119121328561235286805296405082930312767707781244521340949235779079861204138204845460424013878309944057414146973178705559601246011041042967450593414025235926008148033078540695526001724405649542166296434904628427537294273491381196496146402174833581937715735195444125387728672685579879136415214698433990025098497305102356370879400381526187836095713423944437107614176484570000137449145704174135194664785905223304025434098813554399897015324381425562787082029354131771200189425356640054346108000114978185345410755985975504208224392888280344874182125922257195581090037791626172212047393071925564661798563099238322443511156661971379468196439628206845679471549243900048394606826170823102494230866233851165225353013518156324964591113052503149605904103055669984439436522643034537126201379341377982451149795231933202899196723019418214758752657248211689532350160796260887171872771438767450016216378338225583707822118321315116835155311062541441575968177745320859104714898833821473665747912724021525588480919216144786657795425490664420603480537521808916271076560355428601598735896750456714457341456491976414841538777609545416003868791220083901444803016760517153876614932159077858218225464978361686863412556778417211274221879736628604654774836761296447095957841209919946026104312083058009910002498885653872639443564450254780824349399531386699015790921009875662817687522028572096519764619649109736528214716423502431800457390051136929415521028101583689366873739997205079477025901458271301191192613684683010679482636347459056522236769815586240040347390665706052269244492081796444215435597677334031007418187132684204308742360362046522450023566836056188213170176398400877350752328196970414094935361196866501530358078964077538042544112520405482222780961585940302500627606081118676134986229596364407257382851002601325239925332122813158596867928858714015520395890911573610846943518180424337156889811258256040427123836499932628770682634795143467254886287547987010237382482667932737244230696943314500334817279134392262442657484097559960070636469764062667454444253037001286296082503565728265032838240418859638682508305027151216422774628536369584562192894326757037699534608690907712638024262345771012774072579549020260057353247176229429603831983814978269417030879532649791393190906466968799339862460828283644427784444895735504174332440079983918633736274932437336109664316127489075681995495026000085555148675529297788516187147355341098326763672706463978969841602861726529305134955640747768336447692528287874504664379902837538330173081972197029867444621572842372497125883298327008615880706911720279154340473301439248880546642499682725227932125774932444085689522600969109301056152582461159113808161797115963426173058482495761651108286845396657099902692641952155234305891282509003048421494568280129594338348191461338120301719817519218514627764980251343057013588764589119161850985072209721067069281888215435185888085968968432816321037818410097375499823829827149163146996584086451216742108938819237810116014438382849310611240631024222031438418854333339658521818142898179935512874056517142107748105966663348733387383284316457536003840269702373512624260281568864423134471419576963932620933582506519097433349394429698021521582135197306140023533586625901322014461496819743894393644127031280014555746548392873612797374120740750815642773647787461656136309119130981905485393814227910322835183186095836829888682789326371775635006126042453949023725085367386503347186138589116769739289624935080212313531120253909159342291695840640222564930516252243448303975252569672595723901881680021111147666649328528222679605576055178599082652846068390031896012924638352952994799848906047236038970798910040987587042288294398168680767980603876071673046371461624474752944438896656833211999201350672886390114556255233097969340321324150307582708629744995693435944578580300663316141384481653404585922321875037488994201482895680955747078241869656389266991208493294585024357658367363338488321691825919065112770962289499574712565023972759381322800079448976255149102150559401655549831604884554218952030265206655236000909081636426439145961820242325919042941868592336223749619172744856924821646489673278055550514170269359694142478146768611111889421503110717643253743493680305238752320718370984222754480226860771615784132240276340244942896334421398685003500926709947810633363498652748155896560518654000843335876150951841845586291900313503547959157518382329676612739678087621664126769701834377773501677324098459162786724860016578788927616728061030189628926614430919257739118805673885529917895578302999653718937878371102630938180885296865872479572406140857839883951583535377149480847198281215311748318682921241450186512601579195465345009274340929519568314447224001282199878848106608019998003930397673482109076111731395503642953988503994968738840603866314714102157515754145134441893862076262768294507945747051970267754713268633481862260995118557378690635701530554701156865279247114555117389264910473989237953207841931146275453177866334377669766755268818014354360399218654888211682484676063807629259354720843195995278964772585983476704533869610865056716733056019607058340375661319156079639122497447746865002527687626997418028207868582023747083519652438450356378416799077939108588974885485417900554805012719723253259842006776284126060041957928678560561345177641070878490671985682087583554049313563465015087286487373190131820515225927660377392172874380014961556192994899782729465967112547969592070212213482540516579410699677188388176360847587538146611713159355994078382673424383365463138443923050280692120608247482427180151116365281918503700234243234384663784614703645630747693375476068679650410432203011772560322922102579196938536299304904944714115822050265530352915453997958731425398386618712288224302423197963828664045403448418372629331045305243675277929161043476384525454551330016500185710661765513089174951946144292576104230411050801368517671731945615220220195363776406818571181696290343882701990311599041743256626069132242688454349239554151910830152781821506050472042429264440134482268018597691675204222988385662667105869062358629073224097995007100703560116067389343316618979647732567091032355371263548823899677309928570627230621635242508266004613989003315725328796512646025146132968832633890235680499967762089569864467451042158699483978855182353139669713636453699260277081407139564157392484256424172308245944159281215997751030587889488894045171517895546955588350985298153389854356257707230756721032945402597140420251813386989837880672157357022044507630899098553065836798841887476299291678096233788494336834322295405219662678584716972651174407211707035197733116241930006493895698816723752421212142097741107546480157317813128558780965631303299086342517588849886453899673330354610936706667452264955721562914728160707624563089059996562962833657897858731635897164967896179656377813549434099315884510165249871952481780388967572721683703750704857353204523293522212669948404782697127933951649356500670401993010868288467090853129984831339237587699451904535031799912718725198711750156592483084172107452053036942104026895140166412573046551512265590563135042308943433974996644091572470404424665007970909135548863258973259240676258510206905947741568278759332044175427082425167454166249788389511584764060375985926847757737868620963210194051395125332731337966270594232547801398446517024107261553102229709284318415747271687310586120744545467212033228396307753426156333492595039051919508088086638060095721426972795200767781107449798846869926304373412569221881108142126391126426040848880878488356042851773502367350933313966549195384311886660448327774879119903601580989925259557538399363738222700294381928850375146903167814476439842438313141962861962537286910328144653965545030708456481257263111145087287533258359195813598504544538530476648373088286899109296167923335720553753645757390650455634101186019571075467593232174556983893213976868486564863147836173960509178058646260903747070226589189342127701594495649775311418034054167102976590865722014577928700605911130618099829504245348466302012720829989101958928632152087505833014187560907270125975857846042561967617368613644017462456212516445617356773617557482711911260627753022397591440642147855015230601967426330397498885669973418264861649363111916991281254111086884303008217520502792908108057633720883042137648570110308987688421344104718110379706781926046788086685442919659771744305127190037013543429120881946720717565677154633449038970723489494600864865753726255705198340202073934694380082907381727359218824374182950354082080142194403476878644068720777516765410375694901611017037324553141128359790068379174083266204476852097171219511885941733290095634498873712891570586455702389476330075379274898184437055406634439497431900701565332764388761834853229871918404736319529131985494943659524631566511907891545275701886020846797378119079826107748007116240604041904978328723417231097844965073200994206420857545312341873378817735731307055553321576948521424180699293694987066412594019266455813249585524795643965891851142944290913488945443569859642308174388386175131428704234107075465930637162226555658319691167749386355988234439976724783269643344028984469269536586090219853573967958750344335474205444521974210553030926061776601144854124915395818159279376142851997322635510566760725127098794785749769630704199080419079943117622197885723757302263890279220783811702918107828519254322622244812829172519402950165516027740102057127987697359114265300561506962739191045489256847628057176790554926656555911346690947222402060439558436922896388804742495085264494756774379656485857894182188639189006472761391925868038091000330273009556716579929455110586987484876340722558220014825275516850371333543170547254595963101827580235318060507438759372760237991245324757576167801467865857259031658554351880619819972529880668484608891120273028603144718218050443684822671055242657589852441894617066494944676527029091823162000893355901015217699873343909454873015389208091575975897019966686835087496252872698357163992974115632595408571986702232676703514212300781019539174221684364485137338512683680059040301514082266899845442108542118089439246120833882608120154052819713875721388117399271536880398029230888505286769106651672614224550832753585626498010471183627122177715327442142432340930288728427893430751571146361169078159214349299170252280915250459567421515461840669631227692759406210860059893506958650922714208464147180236181685234000958196052466050405911185933244055512297878606707626214445920107337441312702051576804729614227619888779329850936575133961436502073810368283494534123236531742978025984248443660689374262257254790323969172951067680890233145880391972691234522455070494909461077700048756836260704935079189009978181484223875591757835628537490660103890872387344567558326758257465487813181541293560215011514079099104874967972679149637139274167873641362949701418519869724386007356267777790281118732983980126027755854438634611167723290599848749575929609036644088123134693314143813196063928343322570284110000131463604616909946730157282894449746990834167077445529361403788637159120621798558315564512029119422544530586543851460541882115771013688259121479917451118288505428578514030048299196167519220774440826330117771213290281656977649006426060763237103603831282918617195825280485075881329910603624010934330551158157668822737936664534146470094531754075810939854181061194624811983204309868813718271598592438542450974583395825946098593098619181061563370530331605426210328134646649274474351695419957909093541953432853146775567151859658365741145177537037072543340926225555084287665558044699247566950893331519312988672688513542144071248917599050570820180510836870584694312873925924640942913906550881097816036546061247233440715375800142810470341542827890970031075328706956125661446061420742427355461709749228431125534629094233112617859342936000857631389956093540784093578076354763855525647947890634015009990519107936832201772220034115642099890652888212167218162999862524543534438007956880597207080701669416679279449724000144363959484035648140165294675865649219160573832748237120783389622750269702729016616592980206951231316383895663333476734449286786529953251168846248956670125470301236790392123715069437393570241670838775771210976997509321325165802273666999364641197435215694533489751926763909842102304951562673914363443351897333761547755189335031518060807414607105876102198165807161599996322857357922314684161764674304098986937309711742347972314768611492548567820701694857374016919526984115232685486902628478609365132531135672371519009501749204650060402278308501190310027146615053812542752415423532657182900444024465624219831200359519632191337090313499511891230384655713738093248201384312681169379650571997579235842144540431335667012573396663575501018197021908143018293970629936199867281606332589064090199639536716631141813967457959513081794441629535357310318756272382000258522014078541357153460735546514625070001971206599231217508447957979092790536710344894311204270859123333598872401963408349757235017149248237393404160131405580073722225078557959339841688321276744796697280799698970340552441624419609515447699125656985057058069469478628370022050371473322481479565911328332954708085638231992948798369035693952310321408334416020548539319246468164789915748743550460236732098465089739346247314561233661824172233525759018982329901720373803175050927887784031082172114674289258250860073906787846313716551515852988408278124635973117928167388475343605334401956447013948008061931505365293960956568476452338224123252712942899697530776616161831527682878076251875119646394755444504806821488781483257759858107478037845345095984451149574674265715707422895959345679805078965443387754304435143138743534648895503397426885347721515619848050284525543799423956099798452328230248415270565508481325171000764875827583680326849418873170480724739962866459270857928781791214278991502848409881991997167663362704884709614763549543027739417443736969568356298356540917357547616303592651296288031696290247506298427901972549885365723517248343229337850700898015314067324374954745764868379531099951612017331397133545427692259235708702369163734626327580866106155658764581973282367071731618562390433614611098446263391229171521204774078792558174662694948017448071572511152498091854455884352428032264924732276903473552536467424503103689637583290449760379474069428328283073815010765005359420694419146520216560934673631478044231732480308330293913495734386064778190618201838247716465497479568476533798617289190685360746715051328671510413250901365921796188658022339790167592938340023628027024108899753347317879724412876975246463810226396327575843364943125371780229687624928799747651928025098181649009239130738915645851944349089640112308202052356509393041271118803634582658320801883154037045668987457817819732096116902925966043087214301845316471229141918382670991037265024789138309536355860993275872807047405984176286179988926235902899882079255495355843047368912966992283402376921182136672414735678426074872075926115539445025318504765094685858139808590167487992844723268444374493494080096244369940817285806924318116842759247961768668285765547389728081425254772972169603846153957980316300932557490942182502969436072361185001775333423234316753226852000274540744930740973208910262734174945950746942254925832702685942721532420612501328139568483029828691686995938308439493485346747506237482548725442224828825865007631880677415684055664655731729660373718828257322647759578643851766314321867457400366149481330968520074060737873426748492407279325616893418507786304215747776377072107162059784366739162090243708490495114776794129762010221157356105600122526854255814159913039682151090680244769013587749966500236796087002225798800527625081607549555606300991787737326596802410215903271870200960495852399376525618186362221759939225741480889714844426032237952823405264244727771221206093099908770545082262463622260140228701971084750967423059136074658880597722615358844960654046451528041431823394692316623678420910239100708358476014158986994790824990826936208607170872322041302069178376237042859889325518669427659145211104480970043712527626515694137851547259745716858003147061841984551211162795041870120052810842462281568894801028045630338608713034505079578084129724708597469206033763412961716044539702065420774992082965669812913230177161938491624651480276295385885322493297839951082755569850158208782504072582865509194130236277807520850513235824589708725243401304620339043407234887894381488825842751560550008893775617561376875728549841811293836168715764625987170450509559495071765598268560532186386871052140740311089795225915609161803684302907983364765804831676738783004238612981067179502594526095124254226260021194619120946596723762189888928693272254064120619296652352840849263209402245083029184198216405253439575693252634461168313896422683551031786669764665245124272943273043462220339861710671200297747286889187182377254350453184896868082944573545790382472617650567178437018612552749516312685653646790647729667590483694701067483009372183124678742353770446733474227472796875409393560447726517790231855598592410768431752102970068852521475539815681731217463940971890889080531923318492527484633973253190178834358584667649860165145413204115159883619070664523287709469967435654093776977603569342536390539549121965137541740022282282549379534650917067768739060339775087993965240362097558630786071370458659905892320989019269621272111760264056861153746474246917162936559553917675186159834390708108963626215970391978836590168891307384085347862267500719320646680097614632415604929016900436721430626684997131176887318343998017202246060038190133588212385647120079375812110464080374787077893130666790548869657929125464902492259958699434217802593976018926763774126393028343668859792713641635441492748526055917105549469505152124270187636623996538917954760638908510745687281335511260763759444774975380112020101825627324979511432450663966812043935132900167237141110347509494852986412186105602528498096021417803580835020546171511142178990137372440069389598809579217924768877600681399676157163065729608894405705537848613252943111198529056615348232484689765866140063243877770003490458758319620452345168542160141481470763898433408211395507174402041664460252625456417571282975653538166461587425092840509270811024656282497443197329002698333689078638921042746397549852805268378382406772673616519520607698313893458332814924890551924012554832722414281393171905487357338907114649207246159782397097920221838335821270211381409541805687557346326947908269786804241126683370836163345494075877959168389725957692457859864417805184489154293465459589111748184783897169636275631324456645387209945197366402509536788568114865113004696001898905504465663965560250508769716935357766901497255874210584551898851427483332469887215088605900282016173503004456809999512475259777184085547819860058400230895022823613816935430024021710500257202193250959685543429687082619424461414766920293050195361312847467961535088853628798359147729824045744763204967115140945137720476419254522349495028372707478177020789379604240402204118766647631527314841354869578148413412589788669113654832679174258830722604117093123207868539022967737646270366317561413167791474174560768941116711037105278244662610890767535653694976388673011621315115565940418309252735017640679614483889862856693773794614759003629021588812195440516750605958267959781318804007673374149935515760070055411201505880122729736146268544380922098080439346553063957823927905240248038691790461987637217873880296252027030847266001769626009069266885599114784618674545513806600002650340350563972389625692224498691946611160715757480880839108179861352695338375768432682471267769752248686747082253669770785194308986998532936414656167056137243365537463236674175033940428450139830610238128791028673377281225305042643043856216068072213028625043790513230522827459490737280433582946499541949500999347982956629172068171627638115853145063672866243074550705812483657849170845561465001789785220804764470596639963195856726979994434732755519448017665404301292271909686085250115200833735110789705411825973134052772627509018603008505391290866441683213688554234831861082540207618823024793757703804230411265005325418579041947055361250011988856221404521243734308171432586889344440636729275548951570495713177348938133348970191635263502790113584666295705830514784457681592936606991760276524971843620001882330815919040056870016031149807466404621350371679744530565612280455416292738577875982729488613995428149424309559102097154367552862086418181374161938730194437448154137043485600753928378509419655588903278122229569894822763694180925585428171502060692028745350268216635560079281710994103665242148760111809180352335326426413263656097993654266553536121693664096761466127747075394582755526845641483108385694926260656220174374477604247290836176680599801645029588277718450548950281549058275139584370335138477245164594281979123408534426734222953877774530672629455085427924408612298207054485372664780335724235460666856153841017507714289463303657462411953375325930728830194692428232176917240694422511922079854037672106952060813018518128196579669155836792317842591300003222825887669725372043843989310823701837923426021001204045246057710261912988894850993649190125143122943554225169961569451090587745060179938460658671297424563083058470770769172472566539046175073919037307839503973409277726893790937461892032003906027308912289256206624905612821487447906260528613177837097581284721091278437160373444816594553845745874433815713676755929314933949106068359744032553091871184829375519052769832058273202532461846101439905127628425355256171899463537573462989141382558391373981531435648367703297373422106424716766538432495146667798436541301283914116917278513999876075962856532373408135113685446121858409894503673957033879008057305321317106938157280698010810513923210207197549467323746597057884443613759603096069204302978984908920716115075737331032085448496997308290681854392249395444019732988383957247249227486740986943824744546588535957933586725231060762899529085755776326786377862418125975327930199406083778291002954151302162944843899010665645814018978416615334746263245304405468927471479820404137626913784840919351542967933913717949666002686495950256201308751193193029478628144194233169031408711539953448320660703053687146901527820564923124151560587130627952548331556987364242155576503738263533316305421542933995894929739040680867321367077186707121462789152774598453559073235520609151410468679779487007391032853736421710981430704453568537906408855421330886283658130105907075484674428820231835768965279707791105977793447204032542599728268654507445616571389099284509849721158538197514772308967235998740751022665391783067213029349251208079133194411221150859477098220547511492203840585010913475071913193022129045115872663497965240909907848701251155372888061376552541348851389581897964430098327979922604193084090364477768769850969567544962434994549409587220734484149562922448113018290118526597540535800463213600235751402595909820420017458241508514587781581428197668680363658666844383784408064450955656920889224932336183203765996868554047609407610364673137639149106542997349675472026815845163305934000259999654034034449648125176058162549215254749781911956945714422716919374575507228682883761289413854045596399062610875548879278039659047408715534754571572013527868087173793554795653325664660491931634512561305653393196735163132825597981622416342431640854158159005400930531789743072507796266983710240357331327170027390205432969641325631773888086404893158045915624138178134603822770666030691513773795645235064253668500796272565498592745698222266335925626357604066125902593681328931479385715243985508111221963199293783698911219231433280991375445636128037922169810270990066379975546058646308897758124999420823752407341785394253965079986081414437315403581962765941755373209845999530876434881295756268349482727235765128768406930777735407912651296472916817090686513876838113173285800061278576827768407260350257075105757031587378992890296506563803936352251631454260992545552766932516057229489438392265333834679092039160842400781920413754602520581498763013699597421222236366054361356282367508848859790535446243331702044902593027408850075982842788350861399374593223238019538744018624106854664506041470902705251710391418365662774510893267598292224045948412251067235138580008493276307005856366548730430990113721038569711966068127625749426397545478198211847194682926978080638214333083628286459614984603042853274711170922824777041488606946979688273171974479980607483085258474736657678618462723796722251939350300558532428158041473820989157888962811685870827781727798670731089429387876989855203909308028755160267334440263851858180217287188791644826278174110816547019429417268220869821476233039280128696161280465262727496886752832503908879961841059844955377988933514616625501961525537807151827128107887559753147110035718417003582923483510729633010175197186647181686598957488886866864525222227930544518741610968034755011442411620212741040118594607131678515740547003356583526984164056151678886606043870880907337621201375998157164019713735046408863966711744178773825479564757575191639664091810894390038451174089607848583401165562847049815701211326488343786301150616458436329161369963142035459264530559567863780195521523275276168636568294337190919037919544834866658827624035835627786728064144980610213398178926205008483504971114222035377921999236431728721048180700637376900173820433125777814825542949973477873828048108198772219530218272045317224026434697585824584197833289763582227606068263834043032836960531855725999268771822729737131823559508521405820957814182058487545509090987428679103515828629658254621624698175019587222783876279185946556897574647786321863122074059782136449111252288415973555834297544487388411599751671703354626309381372986923756017155962643357248501182633420131862832099365560632611967706159830933961913482267716388634519347899122120924519418756180322275518563040591935557685564353379200661573784850515631849838222707566135011988250144490881897073556902695838302683366538556765245860638401330603913942101415952458559257577276179759606755686923002179170700545232255995172258306831527992736232712496667989704996470841856307813796003139573283998069744180155975480880577350138021170546764593720850561911268692660981350793929925050758205121412557269633714640878648142928319448463399155652345330555709544375322314174805436710697023448253180405058762024469318201389589789811680530116933602412762565019997566193696255164438681692195832442620018415829847728646895742406501378692821325194036088392047111585665933445252045509489762233764233853175497434545379732473365652717163634865180952595960367306659707073102454866749698434931421973940494880849936175704712850118710865262821357658903743118122025948700541319082557460642585901251132635798912144263065708250192182789646904896829301272972025220177890853188860750215590880209315977127201778728793817288760666551027437783541599285569220392625871690933919374074044609612156696927465854973743367737110804659949566256052222712633685721030709468911109742178237682924813800402603689780250746313611886070070788722772068859189019013264429584259183338354996598141321228479977013342032679804940993797056980215355811854098844342387051544228917438955891781143229828503110764274652634276028304487011069087935533889187935784804828244166101706508208662808641289330835523975537169092252344514184543548698830933685289605167321651293010678283369857992129961438897019393476727025516094022501479761866447195945570695364335851178146258864638171164759187213148800343457939444311918638473348251113716616932704128073110271711321937638516722285935731223173503173126645024794447127101267864369851673477825035355576295532547669154310817225493610503363574405606707485886678737847132684200796906502379833189002544807373947291284356978429494437569721035830885719197135439073295447284134826430485343783719351786296311830113025277824766972563889760513311497218983307309395612790451967522695563602147638644578874511177830043842450776358273194523649898887041723317791230531912453061766190637100333003918929543976018558350474483775400490852262816873479827898045802782826667287362558100474153649129869995230133540728535489347394143730694512098933213375576184144700447138608051852508764648114479442356552125034613212948596923692588034650651387994143244171204956847316830009526887682729655083192508926250772583231028759540336470925869703016111410564046244760066218757658226441815117837077913209247373015510686491840296341969061788100180915995747253982634297293868366476690812910098286520197135464656599791273709726527869591386735905701551718562200286009809387979351617120993324286137128512917940301527412648233601354106082636593390855243941174813504283043094008516104661221465755868406283325665240210744018653603674717033105544081612093979325688640011657941379827225837276100750512484523407379911099432904740113306896147216092203958843498130850094708003362876504809451956898544867006381001546242259182797861836564675199496108942562261997584828148559924416932480545697881774951995499961487436806375901179053488658967040007194362476516074949280249596409338450348110067856098120159301640697678807401516388209965325761358883287785777666313836390920164968736336851849506079212064539762998104116784571266238796533592682385906008109236439370627181130727158455251212890650404641514368452745864400794919629582930133731921181027349502413842710393893553396962443545091254660829855937893812683520389086034706186164890865552196321441478904891400537456857266201126930361785409713812917351581180833543610061382301357806336973738478261315683086087250652087265807719092279416782259186741224356008021459285822616617471461332937773838320119682969795333963114917076060556192105081335596280890302317443355098350900087989056496818546344726104019995269908158833174164965350944760103303116018593954118206209470224951300447777612437579051831972618577676527599453816292848503097425678395236194887006140986355623297626555835871417247649077506035099401836782572672968228275791874459864211249279456263933265235969820614780459899129568816758617531819154234275180377966292423274729843533419472063022494261202331508744817192266597173093471895718200139158333502840423593151630620923359734673468267618159090028669717062045241022529439014918298386336892277257636386570017173613583888371331657463042196762451610437708891079322028215850421659512570413054340917256971492460512966048918150175433561269378591785605841308490260368219590370194285654429495858885110809117035993855620944731405488924284392135523369176480855275161122778838429672101469149046947676299024932903756205313562610167627921368060769889986128871050519052781231251632458324829786255414886475441798926775321110663505790265725982259616773178313196268511320388882081911125459577272404981945215437202954764784137393767598171536582836116210804513089211689197372786766315468151465698407319816465889444677764145154523803997751306364987247115899009502962675173577551891075995710010199401631420436015420865961497426119703696236758679139284652301400245346531005297677288507324235597964281104384580387985576932350658565270073551321665407796068230178534219167189539313730968133716986827254924607805079682040374133714077527968716038558528472053109478663732547653761645400606037483032208725147769413244685509158694728242065246516251426694677494002672209589407912024940079188170360066195828704326010392468912193508935341898204307793684070853819830089543104162787779418837001171380278593742112109727008388946995441913380788048072219618514597011845014806331598624150347095932776748112750360240367546674005301087795251803782725760969475626582281556504210989264152327283693642207457623219670605437098061681294053925653366904836819538178626189491582549750135301036452497579659906627100532964497681815218492117448096018491463570188955257525395803476416614890450981014188805963374429174999288294416838826651065808764939606393941563444762976408830044393215742382783395854452975550123030788082861450155257961027810997662131889633465373535001857082897627848651122320217283137696234998621465177554475546271270016043665439562091726326519493232333621090146593161812686354578587172970642878766674543806900323483004373408486363794202293857792256526417092210556369667989433896343117141183616239878508024762140009935997980494490005634468812245325899135951351394304825677539892245921320851864419002236015406309348608958555204619575783628973015088839799224777238780867690542377424704480262994394075301723553711976437389533717664137916881935387674104073867888236746739442774163231571397606448028601750338947133598935554244113398809022129353981263969766096164670488282862236631640114561965464984997070919775700583443956482711607384977434434179361738392196007515298411182414223412966615549396615747530581466754681305699878837358562745348846721531006271488340068655846837252191889330047923735166842853022138152013713926386960172252022649555626499342509741305142692203701310057599159813348046281892712101437143508850084430533487768435563523749545691181284679019608555558508693203035130064424106293147921665886017557882283294918751486563173583438770829038989609112087675800629484680797545791294955407417522255683521265446145275735774704813170384628156801982005937816800281435863359555309771282593238312976577832307361266032149274720493728096098812542745856806900895985933799618572624949265663006280115217109473195697526768447178687155581706441484202523310111079142535772687893761340954984438328344045178987463168464527659664793974983162972628753832119760292999873957665881113566508683942008251104501550065993381709691075198141433706775112645466745065658483034884258106501225374413663816177490244092373828470754615177074405219609189244044077504747379224221516766782657912334755301349423236389330125985336755350618037617436987891199376288202201886224648356925074606465991686187171881253828169162713006435610560023476336591164476537651214186761764509883711914027611708170586236868066651201375448557390919737512781068133640543243102784768135539839075511709545765786043690424278609937324842554165151348505871027185853784516983233760528883968784387939530951940919574158119243504193039092078000654954589325957233684224625133562165196002727237834502135566063345328687421351307720516121920638101922389577060475642390492530486189883020632690470119794068404496862606250778640130705730247318981010633385128415286096021004775071436978019656864706666843157148723056157958459847344140100288560052376117332961922099630535627055837393923133902880914012951031850582622429846031402130582042966803182075589076225793762351722765029046338466775033483179719988192451257178147415927568410767635947940973755114481230616081034103944107827220186195013401088571293754974484441127536380564532692416635423012973423750032532864295633432676186319025058771175143544292383734605791911868416295441973399859170067791771981735046983980743326034719585215982044758457598026182253205581782792044730982768286740739989731557949114593847582169489664384839634135743854484664569736350992904170854477611086456724876783132237774124408022333582241108070013786218075835757138451677478859435867131704170266257800010203261147782968624695537429340396070498615354723585238688239065348316542757134306751164817363615276790050946166985812832188805208976523623347170879611173672659214672246165901890509363685112887849957990265184894891344683378894658274477672856857151502297134604808738232274564879642210595880649293626235323385668549043506521404883349514899246470016383449813693658411286573076316304073750483773314969525824333561237457559798788452536396080638588468150273597664032701829376993577785239683110602079454068901103311354548993710041648091289930972710881188390744910598650851308895534036555792531191708753977245042468034395798924940347483412014182196844002632124460776445540216484323585817264458190805557980014294678852864977817622159456415446120286767153656122257529480206228772932626704922991105663222730360493937219023900929472284761869591589581700797810881887850368738748183920780690208466999621243827777343536902098684797287478601096889845244120394563272561247866363490432164751098717274626777903286759092352783105325959169411986108463727706746575641438892009447073484660224676696810167302317214954630507068808726677904916599611047609702365705458555960608903457952086787628929310838001533898813213269321709589186446818415657571900696366909467928701988051818221186544962924505234651389403700313127165400131249379333164028950058446913467347540664305785497622456947326562107565049175946851177961051201039831423020962371608708810205096041676135426471831240417429584730328923625102852127867117699624616120885404915207725476537074285565998970095540292348551373038478122114595324123559037754848564399048996986816208127166520166013299237670653280828995894887674973391280680186454651874206986055790941411021016552282218364531811383938884007860843016835236009403503260244650313185747085074921414296864812429040429494973448742044674578767605321131400768044058944452410127782871390086621186107755318462808279404697082969804109209262677624426499781106446985020622760767994040159030484823895458412009285933401135428851412010094369192220032993598379707945566114509805026713854686823570197123294297232832244404929505580410059206405322471850270401158289121354495275564570275829115063563156444821918978386054527363703713494225859704896460054651083407065788922252580493176221818795827694961647451596165591788943022926300175440882312184012983865423683825479271632433407211984953960002362501139397080477593988401142061546348073700949178742648591996974460322541138090529304664954136690272019622868115624921002583706783658882515770931949954466368871216123477680755538348467831408884458488948420339455248730276126186010607366642505586211816703064617961953217286237793976312996700087030862333238947208730704993626126464053969484776418363003592591435913088821614843698317000816953256051764346701667493335843310472656495071319406559757808503910812722096228141178718556090588936104066346127499381727728098277432650379895869421509461598294932524976380031391631779059276903089766760372955650169816803947214028445285801036910699137693054472046210403796020970571836622180314403951304541561682241079436141936482715189245364148132479972109000207530893281228640507850065248482327895855699123053217885038905232011813584096894684946254728021647037766326854817735788008151593303355872345260866021061839542001344732757032914135057446465722140931319790526927507214487941686143361833924861097505206014810213395646284259348765490046577132868862096989604039175836895395282245182113307894978854113641850786721050032566629153685189459153285408178511997685424814700655141070765052297872438311117570533640767516518918046915400806946774450666855145603169390919402167013198330495276481807730083315061043118654627292693786673640258079266932953653709301416042477876227695731323083111280894536668966078275551163348820209294214519436331835515237346675990170214444913768874649355781388965604428072428042357247103875451834262429703381791309171209348673073422248742915412734565913275828535126854974713061315801436550173800206157179089212703113953410775012861601646330740230369920019570393144527471998295607213963367497901200734520040067217020122378735715187194236472216567219382890216752057153744205053872957950835326360647801815462367669171211732679284980577024119140104461725953344394226929482114028912516963237209266630407232306102085382550421440433778118499898293297713562685314517549062531587408815706575598523487856121748722087590386415664790331400561554428435918475443401733244533677086430310439918559170147439408777647648147732917629225392920884796657431560986502563885401957713254985882485549749909233284502887772773892688376768223238781262974394642083566345437362442824525417490756323159690149138752360945041791363247661318123300035521439296626382852735424484735473376817390645984879295539291869669763059149314259094843617420001604799191667194494048069246041454411143354261529260640105734801049295984003949014457082773433487848614084634017449578162427518397484849804972406447727794283111042644019968395988739782697392675458726666450760784300016661039125570276955119689140557726536143308131809290557130421144760254291272842929626083309417025947475489473841022355670373089827101424820926902670169049855812140318368952296975013457760247371303803309094199601669909509608113664192535193113729559484846193062491026513898133531678787208846908716800298692300449202632129800715463104087896887846942385381339133391808941225707345251561389690977315092126034131190506319296700654180966271225318486956775045528230930250360643851137557274224960045450668451112478085742584733763470892571507747631903126979249039603936144250729545846426520942048202903739929235369787276957793314907126926955643852225595673169726281884866218300187789411062560191019005864629836876445308294179548804704224020401141148113676877058886442398799184011781066195592188555861704421366926690099510653352401607340216664651397502210696987409063645516945865174812781071263722245175502090133185444374205865906125086554133104356257825680667328818903609038424273894672934215440883756129338042293824111164682757276177038317526479876713739457742728975070797506216052358731132899072286643638188666026426964245246726613960591944172740959071476973269507551544604731332202286611210365336869433196890434041350127662511299324819806229992494818148155399003086623624244347716211796506777364121340400974436687386625384660113892415416655039686018439696483528329439150141017063204142449443112560240120380227366147809660522523903525191183445056627474591823831930139865322887639661590178323987442782199745831414422449552023400515483151151854451040800779402048453188430460065219469970036566501400382599888480851752405114692377313562578432281229139541270786588643456197567280560110629687945853832908466131825194363128454334862795625373602409872972578275485025479055552854256969031831840916177899327968466720604880496263329533220431380872805437912403250357221357484603614414897116679195304496870399469019872797112040921472724555322602082074730318378460912775083464236538232328614415587847024259104401518425155942313027862817534388580444021896409683567611168098144465305208474751459992860878137647920539371311048230946442217374773802610652197230638948111843497741568823217567805978887546660864057922915873729615922484805681901758743435634650834392877033877670838397758097739073320866011340894122152831958572575599975898511111844488811771709888448758697440263409146141531335448056707107964566406291572981398663787845465055769202646214397368950005988743808265815160427038578090077875560084997656544180524610838455223104127954029617765850318324678889395803726306167748967988178430634994040793712976086298869056942529496345938328496291585673303305994958557710013028980045216103295224305995071264261642174452332439064266598248042574656480413614736096250981898296681526136996778843595359910115053910691269267796759832052342994360092445880396676577953840080306608500316606988775754953716474115171476261580853337902596718311950218972194406911793106219443469104380361760291874791316750604999901347446613011779926035624063814501900379192897093360549782834281708600526926400480460080173975760327008877395293245430744519467056804398028356631040148160190913583286159881281848859612419407012715659106346800216967098743299184911534087865290777670338181049574491020868726834899491560063529290427788379681350955939428409914899617928727454918645705790526124918273716001074097790987070226829404112679829430346997839674719067303123881134861664150966883225580421107929918461221460768879725226575257776939281991247822538436175321600992798818890612742980380607366549164966987235735725482800001617821033619521198804730053481236348605494700645546531844718905605647303239637399427027119741318880018981498517897429212417250912072614561559362481166670469890434078770105121844833998138445946835812045789984649120608387123256641514132502773008249681092060612503491318287632589605874688302645406753890012032464092534939871064298556102410897108637668813490735290528626598419278403614896403328726756757948633148763216009519091074410627082227723899609463464426847944328530995095872666532805409151990268611258989977417597052467527871581553753018263624178627959733526188398230004593457229340514386897527792970488894164363906934837058820139261784487778268875638337427914185370415963372770412243124912407533426976786600180441605129174711006305392539590153570326220617072045479303437730446110686004674625545697829033326622309377914260737368967768072086601752387972122788839754398007281504370531332319993209099704306191646419502531253789585227067392828642995797788517186213734548785554354891430013250381704238769082700503532061933053451628791530094215800302946261502138419542108993972019740329873624408804279961496671227654166456806712629873546688687624243648274511534358674350864464120611839486728268946571708818643463471509413200343962904482151107988638586373948219705104039156284361401785711880266758018302855646765425063304278960209102441596290088738924924479592625046366501406310938573457882403003158632574069796541883038350582890513671218574875840663964242386509315262189448726294171984750390007238858477577616443476734038374036618850187106214785012284517129323705927393283286796400296132246881515359828969238096222793264193736990579999625561486302797783783315305135699489463383446087855451199157402461383259479013588467523341817040533012147101199108372177272679754308838270387877671438544255241162514322546965418728385291066574392370920382404562892559864006321175625963363381092682712490283243830679365791980382773363027778638147174197885497086730132491699306728717297779076191155377852599012215571706317995181950184427312673772879109701139479753802702516818464040868210125008688191160459760488561465435034618550913536040246051797786718821651820865517233014326722995639247431258177114710528155947728959452274539400417199042578932306963236031732665132083396490674927044856613595320209831150280909216893619407829065093529230499552989617130719360977534282155564272020750564282482117053293224583368066741479590781843466999018080493835128527850927753300704264678059144222386275833551977407783426286413368910104748890072671006944983574651996314850822621833773550089337405382957478906556888002568716484265055202954835433293490455705675273969720708268675635466873789351021205083273546464749635030994244157809838112186940670617104075985098013186367450197673334856147077511142628719921235631709295932287408816077679984292824712030161585986833978373232171603199270545151136828223507230145460961343133765131154005457551478951145611308173310710438114710214636483182350537259722293786391757381975955198906111857340543618528526403104223056202245696171949102041011665505837027304277209167274953118331467278842704397993836141660381803567468150292066280911048100907769378634534802449436852870199298983730753262115348169126440887713615626936107777055262565476642899524482487012418266944311618882945731946087502759396156612562267512172695703575408987229329854786575690531188293439790785438331382144483583186074875891354614592523070744417618455887728992462467846864630468141223424968618269046855362767484473733330229285386245142630500085676222915101976230715053211999808307633241442625119695846628391340070013881207054313912586725483390409102815635651383688335691592755420099609850849340940748920278567463780981479531030441040888208124985864101314859151991652044043420249347658591945659467901441990988045405830118090850051762478087222835756897965392952808871974367069594690343912195144121729690203711998446770406250512868132017770528315404281880299656391241498624137169591919060646561213507233404798068193417965202707296071164358843200199469192560052281158887816319617791796778585490393474128043391609885470823659123521769747600066781373042000725680291019320834813808607330948739679185840763875820731963677248458947864266611181187520404761966303700124457021520085536593501408586972749838108313717952727522035995791267234183213193935665208199520991661203318769512512421577352302015741331534245559147889016074591534229953744001723627942925400587511347701896287681703696247115357538314237717345151506148534546547789691731211203452650531891266894650213365741881782033965218791952348085659018963563055671468546894234815126996813321373510651556698289538846611887213967255380169864195110812853345298313655128003639307859980652949861998706206770247856226719412599489287062054639620692746868283109818356793568436177062883431987328338004174079022416981854904469258758089145922441907222052372231355910373667692285322963271909841500218559903142918968589233709992928925196505620232099603296774943556082212006477654668497810014355061880055009088770987962618845918520281249538813346899579399225434756059895413484431583641529000120709990005081797674318697324528594080697123421143530438247625009308014207110237975211962695106269889371673158492490079268927447186335923146010344118135502898648597965324843767214070771894015906332616125241935887016844580274631443020402409337150701182439200102755596551653643370868497391050962162580592404867343917851683757210863056666705722135968145980549594720445396162610365128777562533215431907607364395637396518043781854235568330049723842908993684938999269853594518179951299317632973493021243557383204280713528786946133260092864669543860515607594628984119030254286632781596049410575776881556693949309595726642065325363647722047927964065637334931784260329171404128202945026682325542077258571295968905820172629618395105969972903418227871864038730916859452954190889210777954348548135003377591855975413484585051740983798025697759014853251327196956422809804845732918381266647891979249599907659851521908943957988638453641105612492248748060402820660140453600512974747550257234257281220226273784587624798998991625697935396470910693135073960960513943811106039868828372793588793883736904706972193744242933926205309931567338358346233855236890704598839098776122262604926657298747996322618333769539675437084692642684996312022496873348737207280818710514204108118908351181718605481226785188738474704540658181939163714238740875373244992365175521518258700552895868281101241117448787681502891260004256728466437383275215228760062684509141273307282717767853112390068965322409392568611539761701340721593236153415476478349416602401045255102789521751526712811162849379326248750649464779983052310628605458383272741283541804754032347921531134305609813987899936333181156571116997880655641739922592918088796781401358396757272669904876909619066207968552392874703113844044939683855404439994526561210057326475030749863564005264512410634886482306162710288576424033088648709802430039744123138185335241236691566259978394428298472538929430111772181762234280601221549410384326563313464694827459285670076561941251168484292736945858143731196564162083601531087834598173210172433639693203632137556840364281079416443565460301873774391684959225806286026248012882194989985026748235309946664324075565262248660026953425366640779517990769801844816224365303064575304283413861925703200779329153220950152361432697909122262558478183311046471660315860848755877136456663467844155118003714075578697874771316793805353887932709662502201649875305450602715037590780531297140753648064463805000137627748012785241614387032104291015508999059952598327916280322944829966197837968487564522555671832641445437959620682130776828894351224696582151849571896663452814138935259639679857229929819545630885605816023702947815432472960332275652824339969794794413235840867081292685994876006343956175855227280085110799975254250073077285365840359385253646464185116412596930448373595419464342425688230937617367898744330558422367425561342988637331470293484096389136990195050417002476002579762314205187429521965088116135900516278902389082283057594733218206982906317563695419622903254627773573602309417322136770522130331749762536053517913626004729750097011738360702579118956189456255231157180043802321247061502802699694715613266734151419164347434147785309282836384825925293860338639105099061875440572257448812236950371133244106198055351750373060162377642520927786741613442780151404097615108522180958879361447963581387919911945755123052381663265464315277234795722670924173454864227987598843730103552820095612419432464132156118171400599282661448611850931679940469438457379879325650751921580730410904264749655808419656829704512810323602717680317529786532423631048331260223642365205968165232928649493600571101632551756969910337973917363652199312645178078708061846880607027369137429047869673009803858035539684468273779773141050726947304075669645656579855309393782793439495849940358902197483079179842912486801951356450248908118892313307343326267377350978802900005791945424502234574876576547367604636675785966781053856840147242076612898142990712972670866952621792173509211924681657090948185150915257349592932701315148680413431413934286030692815220533155922597629458582492405055942062056167000580234582433692816964522692019141249398125836688097698385767822615228391665147526369205236827937127228909292897024310005107999530180711000056520694500603148075799401509918265807925627540371590993753072165089716811157291887278720767890748859841740507437389725933919648719310235162915743255739158190691873430320761472090075647338855019818977926893252087998323345887056871198373552823784634247605120838050345136353809490842965979260537379979752324832369060663313671550162457614137153013755388336062157290286014261747102449037309953130397242171524646381343148659949238357304894680562371544321108498602723577023489473589565355162563250420383270410658036702954053035802475715740211130710246310746713469364656804439768151710489075342312480627176311236769511624592712901946800222950036714859904112990650420281436956070576197704428525006165400161398970563799623903669488754469609462824196398910807535003536633941773201284679214525173924509587509114135226030565406700107928447289302496613682552740127290506068869633376001583015719101351595677210958963939775292214447631712369469870202547557368459885712835141300199818399379589544076000411658425766002700359210455882590556174132713417681836095627209829423759761902367110688857117702004182371459752206962352649777162786064282136281882679958856354989363011115423419631694696234754983398150642651596757022808520054682614535280446201979231826635539660617544477221375169923004118959306402089118375147708069348861136165137564860264794099693921543351232231249800227836000413141478238790785165857374541491786876561254375304704439434518750957119591881104025115176647298801226099598497638070242380490845091358163178180132236166817929101985871972935314190069454714812039759170525800902965529357659038365873204331294853705619572556877161832121738957033284403635434069040755490511898315899433798960210982361903983039411903675148421401908129409859899070184478658763321716748411134078689473644149726438291493006014228775863574096160142158907530663745556349846075790639216406453230416202586257275415296002980583236632791552819056393614611914694937224875478904139983250794384618142452132682316754046571798659711304659218741162644400750662800543534984789879230114501477993071978572669896733694464577666748603336869394625121743124623496871464531237695103014106767683444287449132894202822838226471209256866793360044590962865144767566343913221883052427804952973590926337689642096051889450120049322321767668634009022856583040604134635600151735102859576811310920126054164848087606888599541566418390751930508520249474357523886619001229393720204841915059268865953903281781679100556317703069052927968303791224573272141329539408878293841351555372702223676533456210563952019838703972876171887967658097046494568434040317600271830718697781282528441112326123383834554377619617251963157951287037640915566207693875310417909324977451623589737653268764763210608954676961309029247863649856078870867575656710924751843568279137667835520583130693249925683824462588033755147625619808270132671827758583597707995959069786147535332927626376963265434074778317798609481115491146155936228638208110993108297403115465136317688064311237058407476931284851372361985434579944572882085394363435621682628772294286026589066385526869109510983148926385268919368264263165434399117042379714380197478831918915160155229361394635397989912865829416167750273549434166446269599228212073550374989052079924194293970468013074427564067915357105544718042096368784140083348069334301759855145004685094779249384717102459968502042557691325599235549643620841513126869764123650579200927150415750178538602808667393851145802740784773185392846699305883551073200482850540873096016022641148792027150574713692986341457663938137266810462052071723129456421968362846817364503638305811655903502915948768139869769419722705065094104032852966045338951674032487390705755665332464932318907252614397424825301892796400301578110193953018573818688730314617631176981677402258131269217013112847755959774139731713922039344931914548473593398543902974153368010179322318849973734691097489909928051627486038742097470200352125999971892575633461342873105993648689319234408392522788873098976984784030008129206156733016732161180471444447199594034973327994634186845970167229122550611214116223050589383280956972109431696685216212328347961342304865742544203146884822889703112587146002042609559503522412248036349197559111296093672990570453389199763753967957107531360892492600243490426854780901007323611748636844261146429022707500783184011189744894851057241686351743748445734943880582964541571106766365835294249752196407016489052266090350282726535882686883682039938359465079394333803103882913051096969741304583372627665842962665845791564611449409264103130890982889641393454879355764996379214860626868640716169201144568415066207295844838486015811042069218419250059995050319731127532651349983202735513706691859304419351135583405883671515510484949588466772711827475753781466739192159682089296902344791107650284963361277393045768790040318920329428921264453876020570247277884564954063854027867642856434892984680777920051293007093400215017533068316661530834884635553969988021802696922107546967967212781155572365521663044954993093224283396159029252002830823334347605915964238142592712497536488341697099467169902209268467905768491614901569491161516911285048414359925601315045789071716183002934030994041304036296163043991441199989157443266509702193737925282058039117340668387464569821437164059105358472659667808860214708329214026710785390561893265944570966790488616595597695023298688212077212057525714003192578378960298390937532256717931504477428896415519876035251843801691658782724992919544857759595078263884526032628112883427503887636793330925565016432604246049920358243628568279477758358069860264279388498015955212535886911036948102896920863305347916520828525685784477665759996407165490052627844332100249048791910024378363511323512802746380036331177195929287354930120637407143340082631580842322963872214006902360961322589686240594676298998822247718463252228280089140954142353375228738016878828218665486779033414948999612998327297004846039860760302711318615736329072871680201141106688105353043671248852303788992380039505468026145251734394212100348061779098260444203397013558211783784009124309163665275430403790792639363812610362318739419520729348195071424166705166007574894102227488085546603200193925094307503185877581015772098363622303658328841363691183603703784543091037761831180922964124256499840932871626913618963154829737930868444963567442935858950895118847680782177106581371678284973274319897519657688751483533061031933166574727999662375387156506085177506691942716222281763368992934872527553726608177052920884908731387956419139312653343707957508566707270478925545820897234757316605313915071584472618426980443403392236819660871420549178021540612764953221140113787966694585443963176676950871293847859781366728211599671577579558577148865655611040729573759906679218556417753165213023874204293812358217104283459495119562105820070964745245437016420004306209115411435438448083452394825866995102653822164754888459729953270657025282038520264908756832939284341748675491428202501265049279308807202959514657073591794099198932564791779755831759394993056347591571588863506102091519652509398029416955888899980906849483636819877721884376724633411091480542586947985385365354572402613753271580872286386961564713803060838205440434538312829248077408092258667193417648490924617996021731869217796057681555604568927011276251064309043593295384223182977938701112418683564945434088631066607719249810412341424422168819786140407583721954257539367401161972564318620861222767315496214431737238658308812455700076286984831453104650300900264707442075297134338892263722961553360655420490257279378439742634883028622528219681585848480953934548884985782731983747246924335358038368617076726441863466822011897052854194893408784976767616644080629083990046850502867851635758667311406727663483868973640603228545788292138911914800410916973478378080310161510772790975575104031868979764370633555093141890149470913681227111918228861633007916968364291372556265433718747115712846450874952136772442694427080704048331909208505904629049542302853951195017266222068704621645335207653593878872317876835352793261321822169968363236344207812527112461810815035004236897526021815358455262468709703035923614584792871684387250953343631806501507361606301045304030808608967323480772889257135771926128266178825626288173997754814329471979305006176006306494756654419071107174267208866638582886231441628355540354343714020783145667302480223208845990979985925956019862115310538255142577454097728152389764453068502672836432158049071662591452106167034983790894322163559225410067544939414004394177046476171189964817740049782917739590430672391116741655512394256100058917275193861223815517615845495442272858521060679200725063246361838962790704595432671185325803862110827982894260190939094800381554257859221425286578099963919805200035307822350376677364928337829904657766735376413102849548246416343868001934470949463977610744884691576485572438988821327654250427965793138954807084955726786215702972743111741530444100536527182743048766893580263170563898596764292861467397964978825404002204054521937122827619656941822732912547262231138005712045201783545858955783869753189751815482307195220297156501893796048993670789459120326981802899520630759871212302702603559778086882489723049830924789138899319031372529588401786262633112456982975627591547736036470032397204781745159492955531910618189007544218236632707332110685792458301881465634533304498828924870676407924635912264344782449832372902692519862479479039869117754611830595591983816947403172669950290027459496286241405326658871516368113579870259115109379717601822957760355327564988793649201691152794428366865479278479868250051876639459252121237966024144860807784868482881057841377289848978807851818885352340500530294270745321319785359490103024638988717333830808483345927111109418604855745028305988316504347729953328823279558425517385196930240675632335667360690517735072390240170198414872369140227197730860539554142955655089038242911241043649780057233397704936744537001827091981865861171117315726845328736461857212408619509825375816059234715768597892314819193177298265766588930541937531904457443277094417325501727487566071917334538580930777231109153813167754940220968127972182864775631007761088090298994225556148166288247087950441366810987680180347546003632642728301776710059736627835434443656468741540398241327447508288221754606489428141783610370852424934945084274801301681228071114364795400288848809824188995451939608548035279964174663071144726919332193522774076918335341872210274418337112671602161000508084516150206322803766220497603293187853926302445016189855802920554472952732746542884534996325530200950263577006775201059157595414625944557216224954836729434579919305028871122594588293593434943562278839984189441351710593213421386589315168964403614835411885759768725086828083822189502373602491355825581642065324001592590632327353633890018315436681364493805134384589092269437303929355737902939661892097667484838666415659757536013323405549958062871995593038557500164647406263580683939155307348706601314942917229869307299845028061979811124509471795509848685107904558467105788371889091751748324861658370651107590193463037265472130030193566159230198571958378391919642681704688623741579766468254924234469867349296261433540705116498312330327776216186415958612959721649450522062876671103982169502111706539670700926705667302093531057185011828014322998561067216197045346434896863538121296644833245743695491985584185718952500689923160829901937930022626858836636881257648802415827460724991270535754333729112659353231349805511125468561571029897439916887538047512747471366975728992794426558722795605301559751354860591456883400982986719562790708489620741446755187258163464076288107043128530811825162377543586105499444005856384529238843907774949497236674884982418122772945158069962012048591607290022320855056938947476117315679811859224001937110697194514346457019963726700403737253831823662266651142278178236663400212991693379184502378316760444195549899913127292828419825663938687262264855202838396520039700118411960384813727317755189878958683107550620847606238948976758084371541169120168737966109708374923596079046166065347050214894819521947334844511608612862236881235821764960696325664847835563738845447408957760020228074924438716036244479685939370160365283899342778729097869286600201540437095124082083024654166363160849038005616968886368629295471866393950605360916709264555193345800729357890727321462441947131484937930562657342824515641670687167924258451515784432289658896938265161623556266451959194647564627012383432820867209515099559596578448265160759580417961681699358133132451456041933491400684238315772682866232142032435770424411608734941366979387020866701756297184262842596543289340211011132055875111836486448277293967233287979240839170504211406929624007986642760941488410141030913493903203867388971911418158929431090586421563717959170385091654083379470795617850405478222905785774865692276344889677384174956280367242114618558409315148492521248599444931271678346333642516991724596218367483291685257926588324373457235058363511536993968128871516932029931981701565501667619287034489010573093409843211688047925375693565875122789368025307120237206279012007786082946315125130526069332471199200264168562814684255417451467586890404853607561287128836983229512720130793258588036169937108354639351608484050817634458747887943902186451560304652266429243463774203871890571795880910680384223046745956688330661899138822601158407846962341347863332289185196336394995658587512144726788213106336453355821589186245546549290827355425373857654750352079413422379566351402365624420132395222494378581192977888132068317942942298096492848559276632181673219685674420162131597124717329849714438313167696499773635489851238817360623102573380711124100579312282678828673805528320755428426403438395050746402309059786029793811151943966671457036386267679462081757645348630266016800411418303371785799410835675973701235568260160719532341668276900507847350609350694491212132305776826551113942750814974103072801907008595569830054360038024708819696605281065155316877976038668350484699795694879655049533452197676505742562729047362171289181429141077017387675047824626676926247229765757777134454548493485321170911705608684856258480898122069766436694755368624128381248203925858597309584278904587597456735903076442359702020401096342407973497786661950369467760658161456458484434695686881897899973148030127496486510139501817263991271473282476009720715886033850230532285798225101310350538655891538046801263459402399521697647037602154919015523896743209939691057289077732723480820369517677081132411673695725034474058052837524637112396261645326944207411472335257022874665254802073933180049361546924079451536696691701504388235546575814310297884593022966126953062949034230444371312618794644043518846585233069639504169949825261671289806152539641126650724493714524303008388743286328539155076282247125774576015482726118507518436717377463436953887037491612119428345256219125914218882652184678415619534305789377707418104939770629682606395593012675799789426458371094716541906903506848709530110786829991646488787978344888780394967022155382927512624598982655919332842771324652429848047534164082668545954298265125896408860125388232306128250827695968417319125783833113682091838926525174673303334972650808765934435946475219850925166922057680453284243562724699419799571040231255041247117086242877769128448359752646990072678171010195506988149884418652929179903861592334541971121122879065088701863392727440802345238121093628684724420785964518687097754935014845830304975328544653208644915825235022505480944151047609451840819299896326016987482388301664345745182156564843236454996406319222007759421051551054935005653578334284555207553595821278825038313888101810488893736498560698582965085615427070117041143267062456302651975692347422304394926552644207219791580393961789676528596819260177826799513156947416793430241854637387953793541778913656864753728723240027865628930004274964050806261944382874270406247128460197691268059781353296204948159767811019944082376236269141131837617887224432418654397320948296234377093635537185568470238130042042600405615277133346198149723363685010041510697587051168752316573140076808019903087444718334840070597456422881266164805843406527952748304846174184313134629958379409654783539801365523224058000353014901288270629176417317633936611577710032432338160651648647104346600220495703789772279788839993519249999283340868967611088544197278785955983573106317309432502420450904638247971435703728311357225567703044374823036227858835050174108243327084316423278520209388929195818475416302160822481203748614339576046353092777842710783739305843909066401911716214354277655978916835968870787967309453922898392319278243053886700209677080628958957538800720797376490221452416946957151296676587313000586712242909081208044486307520925459964476803383026147283928853442883572623091073164403347013266099400800797887182858148691746709281305567008785705465076410893695838863676176950705462784751597640552432950080563862338051052842900971175586939543937674470659104301460521784428376412197140292756285662069074535081998177146986226024685380235299305793608770595717090977867794918643706637343552917022627566198359467315867246750835203499914049969917192563639708401888275928210035733086262901846454823380557885201205440435741093333677740683393904773651837068293450273552496265018562091489285727395796007622257876205109455337331568665225948640891806455621969983376662043558217324370856078649838567296175352631728992330471482930823634695519679875421353050285477479493534502827467750096912313929909606702992129049913774031214971326506103938990365363201539280441749089515732659193365397755835741719906112068349069862037092630604692353945977440945081165313683307861978765463368450217373456442941293040283799878254469455400826319959852536669206724940248975279726381111938286250606848802609262146037039551876732772029634181224836511011069967316760878342577417632525875649034739048248469180066849790362658581869909099955940517499809592279910844253030175041714711856195268784729187989796221551476092994441160040838219488907261934492542393074126330984520591927775427084784164386455100171880151362625689745083408190768537148154805965331293592980094577056487177275347914550525205303460613373009811930755405937757293340443928507941269741902267650952246349282695268362611851650435809127550325016810270390722566117621448536766028502189665883887394533528869644341842038872885736692149966484339265384308992009470585839258046208781169627120106256737570302885214436493252287764716896254537361422300519015254368050804442321328647520273351353984297776163899357776565815479578543550023431336084352251989412732831517683470832737203026023684941675350993674980982637341043648734174706584212102017055789159145841051478063448172235116861837401543067796584407142610272798225834053237252424676944441581496222726356940685980982346121200995389675717954035793751157455630266873495843103177379043594203256554302414255291214550198300426426513380907431981851744028716894614488942053681906036105633848991759893405217279371345588363189659830411101023178914152742159576669933849419693893157501632431664622082096159976757174957431265203208118029564533023118763743646279500240316242383629516854557009304660426836848488083955869297703921348774567262026035647374666483317170543954000426696283669370917778470558371507085314682894724936899873676939870870319742001192128115014877580572392670250438706255807018841601331772813392310312441567695250962509637335728763168172492703971621181362376125999983991285681666813024774345864664335505905633082608088578493961518452151482896978634657620742247442081667287937420906955176474171059797967569375106125069123850698427499223464320592161398442671471328128483987712534789670436868855782608708667557449945332441715479577858192071060583157807203964175882086908847136030296946844531691467236112158467321434972882941429778486251885832140558280209111706527282897503262644022372154846730348816765944853491697836647023449568625513308119383606878958754938540124295531443382933022459787632330871770800962171288552048962253631525420812286908707350147604786804686975923079937016933505483772286653756849281804638989358504520197280732949975623427946041372827487112754859966056817407462304545481071694538417011389926476792197690597150249384697798749792187509663613144032516182657381199077249709558013101150283967227596156267860628961394289809147956979724319043006963860828897126147565577687947361143826889626268913421721861561580702537218442321892967151317518743360323154450099629851917350461247975233548821733198693864984688010608025752974174472825803700171987366020712791362846680051012013818209952794942831515963439933610146549741980986853106346915951895278285590313463310161711785406063638717725564152120998434276172672151558641100588982841629228834294801774476096028163258139818156423598796542198083689864744896950975571301761455273402946878014455834360583387910860100352057957296931882644038037089688602449228950762115989839932536934570656634806563332451337346107446848704968564489069475310022821213256557444879764158950870241331402091835266512152296301014169823908788625527655228383547439926113230906261313040093802675016985423349398176283942775704427718589578253269880682131133914743254704221878242674470877655140334996107533655099556204930318162671136090388529760902332224351065742210733710185382475879973142855493524851530768186696446396642985351058078454367639663913589511654377831994527981531663238535108121071750884343035207813891537966181429230948515674560224614014430122879419404994190958849521372115863840630262970595465812931292425327178719255322141226791538801049136528748423910788962611293640350113181261440921575195620334345482998698410137720360338608035137472526188874686158327699535899418206889606721916897683690100691877955704483569270229563773412002553287948531547076114154692344881786629451629861897916940186792465196002459194814659132186773408604203257483823474728255017741088516709012304130711009295707622665696622104823253222564131414539756477396334385290029182787316661022384408406108462365713578458693148272932402104446739813703061247455083822872292753038990287907840960096941700024012047735512061806838047292965698586137556432455127994484180452605261234471233398408162524798175935633462889691482981432510756915574766655089196548967122297373762683735656278456479698121583073696963757339421744394097622111896191691900332431948341758056403310501657166048599953667979268395251748135139555466380442122494739518928232002808698882673096830821303415524518425055462275651736812587601380816314607767696898081723004659860623080827577186569681632469069714620911049022828697111231298468261881220641618613941974901119073840585695370055152118646271823895679374610103023789198204937449333957340724870327351764829600226420726314745816351490328487727549181814570491857446883043003657634556465530582457918078999106184573686586829569669036020665661187350060211364811790825933195301186880864171262809660216606210674065708588906810253098854103362661770818355383179106561491034991455294510457883031665536470097209725224146435832099362095492000337860133710487479617990671418996283208380550830757595146837192289111910078621143505579217780706587768690350718521026300674107111561204106650909833324611209514602218120183819825182842221075434692332755523342370921169162407361183190086448555792151805865114339236780703645016930244135292096145732729116978909673643369313051139043208627487231575731571883249423540554738545056046362211273346072253373351605420887251582748179543710940524535807714201355529611597175815657906949952881962107044359459318699184779478690736936972818619521089710233781293340842858158675134266321928266616674921316006972804927144817574625616774337170240199293778827153525918273402163299051823550040916219834680020686833034922830952042713841629643509864887423486720753910739914496030287339979133946656827831960935746139386600852740748024173006686807935905911425934120781109628794825209874728526015561417560798738215731767830122917187027572268077220701476861615728343189857316993249160506561147030186184858747014730292041455906842345638596633137623217429278798232687752966347143601822531548827571166882648722671154588181692818675568394580431946540217019578025115039334239667354874666409664986790528848914991640915895984290208755131699122086748794872801320435069119725587983992711051267595230967590753327455191122583721199201348246240090787363972883377073261784429683706188905780476280271727100472096941333360860469541478522133737054403547126220071286739071189090373382517719381452263412917986243669928912812581668292594310775114256352630495333972387964262352734137852100751319149319944255560311715445521889594393478303086583246614180638548981244654319658971058461398876055154137571579094419797165026148749309773025455000137565993473744612010695804735674937574465591912312014207997919969189663174005206434045314502945657795717996470614538461360146340452398742763776219263864782985743934668615911745129674589217934319186304675303655506117273977515482535246915107489205332858497274061728815559178445272347607060881056714257736816737833026375433240784860061512844862109799729061727848384634684235010386838860856878567403316380851335225025078518006209942180177845622166581398677317464149029915014758379490915200705725767292480849876614764244603771323550709545690099442848072450199700859999031534495323724868535903348204024276340063446924267820176719038769340020785153711557706549747781996064544308424849875149468596760030714935924936594413029972777905055425924130315638327322974110243720131973768420124285069767167828961509247334636472082326551725684566001035077227895556294706762039469965007621064391585820294058147380004884374076897104810904632561200821119432440236621457584058383504675659369715987852124898454071422763096310802375899191586089912758585558328289394743201567456280067176674619720384658155616568167250263271538229000295416893080332169814379572066950806004062054921494209722361881548554925758326488770328953380446555355781328573942573220668518690970479043450694241791049246244817765448559860240260967088814713757732816164397248762578598900682820884632584961316045477104383278999918744027598454096428924091804615119819153644699849366962147712042132581102822687843660299363150276002251348467252243136385328363755614315844880712759723827835930963476848941067501921025931508878848958152399380776402149358733612487454882298060878722626115863881441953477036355215659742955406815565838820341851409360256415688882594087335671188678653035141896864024494472971420249502007634448541007369450264375588027720126474412498465536362280827701885442717673964441209606984325033847567501772627135962434419732284599055453662551542067756462592160247606841496727407101498501226112428811558852596011237951594783836491735238677805079194695455525852404655051495485021865625135063995217320328865926699085784959897895893519452981212446248028540902000587926871882015082349941484244113906848976848121086875784764950065026491426224394138141538505239338789819508057882085123845058066419423540764289312848014642876021628994790925423211037434541086881405464405642430943304499654084352046038161191082262312472202000647766887391561730664881401372945487826609955418379952283552200921498958494939312096062137319979471875535625739009438454799941900436952762810123988178208469648539652228579729368504218024224108748159387984438019344906546301606770442741288761077172199120886532068190970219968398795487652347001184276367195075946278280442621778029337547110856354408326186452039526590852827989154080867979970052542938714589023653760707683606393249699461685312036111496244846329329733104402590122939528602802852034564257144821105143148815609218565640932323064189254632087759377202424274642356782725808445817119411693324010191024812412267713580144587226512436752879169797835547278262077372423489882479129313138851730559701297493495858859920983578730360489316938599059685755500805343177495521529553283066077261937297020308399972321062159854091696414848768807101892247625229336667089262417969341400715512072627931726385216938239610656339893708627119883924177192435451431400932190887931449662632325054801282600794130897824074477016021153240954280593539093164212725841010695811691203970246280330451186267884386093350453726288536759888667350904910560215778381118849866979580530216451205735546486844590370473523788574584543152052030195881640388779599057442655647007060957405730599108485091832025423927113334781363637621330445644858162330770402394537175655216818433237824684991592742569461420224214540856141534927836718118189615609254567009430588906028202622203444426388308188222291746548199856672594943826907759818936281634602282213931639797239320814324324418360482225402005441149571153806328638433001214641701591519586894562158269526993809857452400169092793584440409735992482542746022582437743456659901698231800892586737816463491241213674770363563889150923549620112838276490537383332688984474503715624835583703505942112503630564374947547973008691753476801776582817199039290439064720043377864934740695360171361099150544200786540365195972105812992734105837905358951058189513807426740381898329021905825322225482612374225709044348198219736493950401655112086522618234338913026189686822673407773619781912120612466911908201402419341201219890842992292801375498576195890475177586918656621691974441503581021149537239000951728395527576540242866030849462408394109780719411323646427566513845532614651663350450512600118796467200269999090841478048645886472873484300866136029547340979541114691256472095933316284695475602289731908094667726119743764388649016357939806163051515580727726328879672186896150045137079895733956698945367763217098350947764073856858511325774887503295771845268364432621564080912813798522080404583915413755626070769636688813303324406033752806855325893846657082297125559242203018880258011906551395851907250614516003322598466971972337453223170996188416002762651875069227884807757453642212723619353190212934848395097521396409668443850578290321771917933639036874250428729907141402921681175112119382854142969757223069131171514860231673092601967929167075326593521213471474601908309334591456969848448248445514599088302342271488964485127729031223808047752793398485750898719101754506423060575655991548472796229038869855560656214115183398276942562361518358978754169984776864290578003318540874767379318090987616469410994130772897476761303151746241454778863001629085312774425552841329703883472874129539606426461531719910542690344421878272275213409616786291065685879780809529159334724435878239529726122527113183225891616000927759447264217886536732169875650035287217536449220510863503062987353579800945242509820493789240622085350135043697898252839318395455262697230477557337229692220005559778282857760514036451133758522153900773361024502737312144296575733465565231825754953935458382568926444533354834088758449362705385096189319024867543680474341674010538796531135634955226353989804125569554119578595103937568026654018016333381658960528124253148325627105664498806835607776953225051208852098605898913415839224576817777773243319825063928594911381403632531124117303202003443694578003771290631456669371503473219543706155274393360724955417991895027142441151697833221964858061280480996417688075988824597912286730380453413109248509080267733997480685672180646877598363237874141852548276628183219077362994565241544313129103066934604137567771321987304449332750409112955833900985990996949552424387605557507004870147873267160482836184950764124729810274709587814539147375562608808603979921425602192353769682340209152197348446038577252668487422494805862399072521925837689363679487044873726389559710280507552610602638359888658809623385361086518737175876786348997532962714005988447035996502415794912395091934590475701612405184956135532985570998037135058060003005894364902756986980179607777912810954077201519838926488191782803762700628296764148450156308564839419757846565297492188793283148370596427238308409100479255279577004688703809379758334748532209206375468074563464834350795909675388031075611607495113527513245766394050443245467714020017920249515125039800974687517134797882707368569276709559270629886123675459668202225517417724995201811861677523016528904814103695833477944702708884355931394473145195916111986615440280263313526835056265218406465705921825969536654176274070734763276769883099004638394182584773646781106052735098411578019587561733563787969031640687643300035979488856990390700198023509428311706432146963538434042446790787397828524484063512091156877254255885151969301234299329711489687724717519853822736265691116453340297910022312475722242870572902609604700590265442786364307252127056683049456752225101455814329136857659043657142830521741510860600945502255279533613885430576399223077256752651357674824090823611427471996017049464828810226739801050643474523752571680215660861194944307227075221448660929760804549812492215870759594731839592079604487367240181654075135278590517572393926960840651615293586663930381764171423124703409399735098633318391601968547773986705070808955716919162313912959392449104488372239708740538289248484738291758955594348240170899550594017014528674134619438558379593964019004069516045572891524444585339763204378471434420320757137546448171428444702388763015110155512496654778945999343803569861951495086286723204252799319503787015519369810422216077034882862713658080345850335916465589078492559693537473792012839918846753601754111141044517065603598541260063114496990271627990033597344372065212000021083176768025798122975145079525357213790618868403372848333236592430056448345047929937345676571945853465301061436970224212267741302730820590449004742102076539678714445936992102535842744415762951821621369271474313976372877652110363308636138176210628813512128778515627082998147799268840449728879162396302593669838855320340827178980908615899374441946814130798613421787413557389787276227240720894803331555432660651287265475867401010816493928508112850600965103516053708439192604251857727418606475752877528879666826231405373116825183628868025673844230554580329000298446338210281937719991860643795114184454131082162379345784233532728358863250284472828667666396239488597428065753768789839477996941931449103547671892562933642561951744638418110715511849097742913892215694304217352663865963281303462799821680347013533873830896616169797355202556377847919507002936435677971849787941931600127129270288776494090703039667020988817338619171985306994401882704561065446556086459347507918736111715907217502410353856607875014005148815473877413904554751902296859752044230035754080316910561353686805469673452956603326539947123512151380760215787325461430840059744805067549871262172735937980108838854528801111208250619913716200588194981610405380091752763577323390030799847501733623490533360987133186497223910435401321888533029789213235051937231249661247791646787073795424847719544203022937946213877006777331288373886527198051300406214889515728757993581918956486202764840325760433811778412961296349660640256970862192471445337164905929186549498266247766190333647929227648025132672951239054884755940720465371418720917155257617160104952986547803656317862324823239552302250127749960364235903925604618181601757348973248923321381744764076293887075152527341916798289421232391757892099310713264889072015250549347464967993498735505684642613098594773053793611965235046893262194783352906600141559902801465155728229970080600395105372092778470027972156047972613889784744501338359606113190281964695605734765822945845194855351122654592935538413990627493444439866208777813593637409753351884792723581401665804419525727047552972398992533867383437449843009172994477281353563265659727200848950507961170750355978999280835019834022187945687450585416306513525802269248571626127732383861100455213168053017611704832505835795271763316849942704847167993879758037391129651447257793888891351350215646147106424695112221838377477447078556978789223197341851372004768857238056725760732082864089270126880010198225734698013975101238886284702100981096327865999374272421006509670802607624889082644519827329765046443403644615034212797368585327220184181411973620850125672723581669789999220284903108925746287334948345006564536212482002773169728588878659429512182252381580698575873355021590211073049102483278394409904947439537583431980067478558469239195974418533529751071825323923083421614260688414820203745613613436220777571945793716893515847689789113164329948890451429698877360788059916322993162416345507071424152583545405506415579065141039073433633738083697757566588109555564093096204313043451859338692329483210922225871945658459875810005640171864478901121053096089169882983546762441647898153705005060853454089030636801459464243026472170150269720503258763846812700052233439868575703412306775244047180917653610643560602937865172116694443805856426387438493185850314852454484973361898892939789326643801130921333316239112929843519507890022970899347616453393720295502143479411810157539339615495671788475445784920495604154331387616114516513173445643435167028682491018405356574983928216790654174322776065184952372536418269647860723170285770568491137376724225581537477205205362153289394905487440275819323494906170228651549139711120559495665885973809991723239963168753002993244001368694009638593156987691294624407538989434168596618246436476530642273349716274218260821638796254574168270277099336799104215443439970978021752513868171226601050715736497164807269790758996070032912745514306933509867544085181008074629883985812717299228309957955544914073704394712641094442048199894498452928489665093111169557230764007856089454198080381991397576330930000004161081827735729918536087207357147905221545883305668907756840393581536007134174396138043926844127054761747484008532481561545589071705152953138744886110610482438640511020398310555032442660179795476697078180267340080422072528576681757697748911160319972421905017987831869399064137566657150955835221776495083886065128649054170722742265397837674645388595146225500219775367506079038164742448341214971537953164168240025326682636958699245537080397699162699852502858211574580721691399934571474878196768372908643573279307404284922828969848819952530477161587831019757392912700888259695947709507517961817362541616309345218484944113594068240133020584790377940744838013722158828036907332041253580045583442404186396843030016724928578438701444840115503108942073760969810030578742567644170217371771886527968592401573830545128603326660188107512206298537792974365666055079724451072886396509736748395104126102484327607973479048004591149420181786613621858985753121565459368178847893870723079437707782760643026750006878205436839752861078325710852270464980710780615953543384948119246350125778797010115964717059691905925381764972563083357222343046088494995880438445210851478033878031917934748301299262089065030498415794815930888720199391210535737802628691381575059672854445018002498399751024568743473003333246870708452731207020620398211647811619283035573254532912478059469396713702183418605372100767709051492909407002528843055739020150618285036330669402305199624742003763641870477637250296865299878891248503021703381370271837761880826222148334586337646320043944217252473771054474464578015871975956877444009600479679286963674710275295045263739110226182071379408331652797988591347887696933529751499941526801606034731103285367268653485583572195003759755583539363956534769098387236090997259468609189173056056288330788411644141323360720183397348057501643284791264390213404446186136322131235016733598141778217701791192066400165100654295139461512387652978223842876976944103596390562821430814421146762315770128240291673668702651760424713252109300000265387299740387710616637157472719069171163003865537448384177671513591219679780783757510259534340231276623425129663094679900148098697015923114569307225674000669839493439282911981688627979851338722979876790105672391205574119905681343498208959255384348232669129104921170018691418186989279842532994810997790747776388346716373368585482285592770057230898774801227629585114499067358839064206802212933233968902326364355260517741621546229218205505489883700241940639686289987783534202583649720334746665834460279501604880193330658862692552618030417965821890830422367529662330834067088876578842321039336264790085101685770371006441094727277742514237176909208985879888899840885573651237815683217791694918859451566274955073247967461205835753451549690515287169664214275346994240007307206419527813577442930934386775726786670125769158907021328811359304597941294389573166878434835305215421836954889568086523806874967456970285409843475977523282415639335518756538325016224387665075972090869003682822098055283618871037570548633839789128655026364793221955115504372973461703332824587817387482202555082684595996048601843975506724095275021966434229818353718300498119364588068049201072775658607889348064053018767516121689139040071154877163558350251104721629700334665472557820619527415867662678202513507893398598211529289171934099775460983654978375850459010266679573934575284260759018495038014009584134931596170043396586153830838542500366098110095935227822213905230936841062328610634207137562084548593374956764848312326368672446952306725402343976826700973007304708202349618015716838304212105859589239981710533374775660236393108250443544584230225368830188592575723113370519173811867792021188941666095305363280286073964371537749312537318813900911081385650038818341726380542414363281405702255005604447532430732150117566960714110820828961264953038354663739275027228387921328439063597604721886996564106894890433014568056282643093784747957482527177616249993429330122055288165937806293983742611268569428987835650765114734760868483638666713024777694376084241781437673614339909681395214838131419636714009966983557295269037412903165936032800565661784678838329660079395641609731388979034041227002163347974413288402208243974082804528245431630762891126921085213319400213970121757610863603365142228490691249105338063749174577509955284895656650185754258012780782960280809220420725672566498712756687377652131373420830132346203812258513191403467651447890281142487803674132710159166073549283900455069651212256814873045937821703343422704335222916968401731548246916611913254768777515495950324216826110629636713932767432952239595464094325714154548003256264066568919126229845679087844883785754709107647669222611001313907727371728908168962822251663585785752306640685410399332952074052143608746167677797865985154670376642392874191839137554372682653061708801925366341111971146063532315009591648263070677397831351238323823739506561502310515165835336149284633806764400165668094266525559801644253950545481904570656582913527289663337101123431493842292971156373113380381278547755135467315916114671907131650644002900789662798866603852279675278988363774965583659217383688365881605041690068368095641234481111370663612060933243125679324032333195576545666196965749769224411038215928839788740703582854518055374782446281838771000234766914577931005251875203972065515960677509744144027675564599516466774012765403350554970133809001401396535754853504336827141966860750692044145972804165672366807023879963235541230693534051321427127527087999120620586599985972870163148715120023162386282079801505701157155818629804840317888380196322530549704155844742419095940262397439620953044806077374412331949555130779157961737740296337691968570836054219364406230742106935268336425708742183873165623110041425014742178968903351647135822400020320598427384511057281174667128701450631629116440971852988928543503075107095587503687517066028002020293536383492338996655725114353393941027590026392314283413772807362677622525235460916241190537036484519232481137633835288842811591398607979016413985845014738843406412512684318622445901795070738364595035909744310186764599585535163272654501400085613262595753835686188704777307069110002217550802642055078874340706343439760741188285871144271455360302277699247595771168846276514573443674259101376618889578818681803206606401371056252954251155099768239912721015521871726253321910833240825900723915715134394374511654401410308263411713862761949893694523523778222276609914613534896431322763945211800617904679687542128313439308216329479691078201164661977175109460937630827602836734397670608892990430602195536498799518576887352859537737631162656224094955886951854767893639080254872668104857510198965322592432780134153104806782985751072679532657066838120351636768083272564823220790648123135480641711766546220896498693082884181567301856383976282747322113272462580715048162446880136067970390036681389969451206146040833299232077466613048659568058469180531583042448015170941008912142387884896887294467459465917804712960509736393897714820302215517581893604877609061178478583150304642881785351187774084237748403113402764303743942144705931105107861913602818163880384752038386170388084306348564683391299715250890302179917292971389367987266909634038567659094101015220299971648806144868200130860510145890377060811129223392628390632679778399160759903472089021658468167687353397506114371913377280162117676155830234825618843735608813939002751269615540185838579531856861906910492106173169394006497369725228406604212613905202050513314038110724934243144667838002883975167145183112563222230764730363365550566287191448928952356007107567184518558293016163522724534728374540483930966304439727000185313239084945171318513989423543414927362201623356005623781509994021127668814511938237840215470309339027290408054092154317169335828054841501006626583703488659395467545651162584716436388274744134022924432359990612873487095042816018670433150957515892040373238938886471431995007259133694138742716288331621232217585472830440892233075410055401736820952349838334044348979607381204115157408723488603092370343651424084056457647922906775086206228694402028364662061944953765162039792646259088137389066748902493617069854988052315552232338250165433614903912533971933207955324239837664330176029283827244073695871302356790462386779868638578725873479396366196779647289229382688916052125379714960452647044138289035782345588255549516950932769666229288059434418058913551560359386862490462491115014635669526092367874112130257338435270786152096714920739515585405022193541920694252573697730567825804948871846410870639197983299347446294418516683054895252945674985919470330042723043034561456596056432258422088209510053812842434905840495018014177834369219052562865716740258799077954942088382481193627725543874718125727184352640345211228544096805100489344332644097912244659501003420279986222814074521539878080101659294023034175878995602710706443378414113117577145239895655537212126106981289834637153010020937191107744807773509398057304407689602676316804852900701465818211455475003442879999538436227326191444012715645252221881620937738478094895846424853561691946885292272542153463316488622497934722204763988906364393693724225169734725338160093083957395511874118821703364410790504232393032235844886919055880855163550593114060638020767153123730281243481504756684157284916604156063839110953365416693205361118639278487698414865979464861516842017757360704908101716497176054976634701769493776260839305363027759915981409365750155793353706780576808736789435311011380580921167614529813262776442016040063995854514994409719251891193169237971529652156931424635556578783152141828839749550279883351386338989713864189769057813204863649402927878608702723178594246287705980560466986595835454621262146172337201783524853395610457946145019491738809618423994495149140491965936379251398636580029128861485044860642256857754661327022141730781574451551581572411274229745344417078320703239076263762344193460721244507433105667511501431652225916676648110093983541512153045604121167288683267810836074202183239414535095141017655793803642143202497177442012601978843847791651985477734057731021294078822797848045336310818751308558221947027421721395592993897264569856816997656542352800439205890528459082601563711445513326784469028385538944406971607359051853800335395154366435046518174134781982035422542229998679766305404752792857000506360081809626991031848811581562768990063299454289022415491830426522238195823927689538854907625300090714484342399574365168477707602625752380379020632781595793115630497581154668416685327852337627765444021672041795154298425689431110170715820861130050032232366865781617873927113858977898118334886082214579100703288963083599680523080451065803577039520813846683924855314891769356131982506847941751892718059739361273922442399450345904730654560767666715354533767753800014521674241902211087316708723783651701915148423020421851035736889361510625483505605878946693656090749612937559180223914862191674909896292009011644008672613702891634428669398575599742691709781542823068504669133932107520853909597179917286582854878376712233877431335670444477639401941683130950407247560267371390342028683401840433459548121874916213107288850431347824791386288010547522045876738978964026195090003547246121332503691964888517205019628231862038941203725826775118620744357448059267051350339141388661640024013828298084995671490345358446397478874070574991318259674844169358643371349467858358639325605598602350208079692360585972937548296282847507390529233559116021125726455909460472880937868687751884987323130794319313206601664240427945611290998218378992486418163734391920638668900524632241117551080635241385642657333337468822282352732774084212932399995090055932232904725006290522875330758105879033282415303363239330388649529065070109016891392130847716250631330238727957265094215784918177935513913552335712130228782022295390767439990918016741964552790722369191180207849290067078763325543285499720757165859592055682060373809601670171517494986824825788578450165286908272055991097538770994687888023875112326620696626318698278304560864235361492649724298315500953544528735252838237034857314281195587427618159511931807477083103231072338774927300530273199679957373259228406636306544763509974648652568422548874117278679951100193884273180028533620416271316233746609834849677149009041201640315156527550980178410432892324948547359443112073585445521870126707924838349942240269354669287571385242139730143450060252861306708617098508574952572810147767452445700297323363082862901119223551330467536230953982530260534159022484429361894479558776588606068706231334187459083843151721564450316354684784225683526694487555196264872872060607319420638978107292053955738961394459379345186632911018315437500205762931102486877030211386647238483106807038002528918734020556600262197770226700677810381587627163486903149007241777174623507506565557076951955358511601950402337189710117196432200616932502990227924879617959384594981882569109675270091261819958377857484371585530995674531643772489636055239595957031134439757798698888438511350936542040271093438066658606124956615370802130603692179042523647498880511518229205043121503197174663627147408537431976679690524266443812157283387233679220191194623571233875662293488013276873619423684526318644243041125365247391100608061687764974506416226014434793072836332833108704885831829948289822281650416333140832653217198503871695793205836244732347453964047621188813529191011536547331450397197214111652600634535598995619018533905494492606745291350547898471723174328387024398117780502538419645924266060879259640002602450719789252422580781859600754107851725507489683912367331944253372356808738766462126737500631514673780398206811825339114135274913203897007975106736405442938454807378035505867366590413137164106360210173759431314213651212676025033580569944306863981708144382287077155317027889336044089503315115349152966860621242692859404593785779121389179332049248636185800968440600098263980795868507233336548418653152044820922698612384652525526904697705636247170128836882167448314736831484373003869560601150422088586820342811146050826933287993609002713300515847994005153152473352302561016255237548961333089757926572803644134630739307407001037053846486863704035694248391302092353171179728688291058396885202324040377449529029415878771214360490282090158414883280675646067891698622774383493925555499307266466385865750048914997596233319579290051758034732137802391542794860057700665866823160101440030343735466944231163209735354317709197085311184564893413263934807936455142878260468026193686511414439538471755059327871530689119821522006023659606079064710863193239116455308707775793429494190277344914155965647958555522396147025346512996411137213128760376900726070662750059456906190357290571563782020855430350475701680393735223111310529042768023781881740020920882517225401442280762886108517597635754592535690240427156506767227972847874583665292086710034754165913367956025557388775835024443606810590580878146495910601350755793429026176476749093584885447291666573650662333801565362576947713241132630159718265352832175306519438321854450997665581252954422850507359825562414315716833161827765026946465499328153250156192223392547942131817421877403308061179599620396757966126159777804355255024630576954448423103313662023552492690980892137488359083249282229826393901145441232195062621415428885750705652909217922368534431246403655900076598592258093794567343196456318032384899032320315320115940730440630583257580381791975327545600895215014775198632240983244164067653103088955247428690659317869318932090512698464837983936887383040661694298547095172189591065247272908888613328247927866665570078761933327156673107459907309512092274834917921519442366750487505708197421557013477649205789945350070446670721622886628162738255118139866727876065989989766279050999376473753387823032923604913738669373192834748878352204807170913798411743911707252046423005778850809275576766267732989063107597714197436109760060695354232150158056866627308261700646129643498376439073179081421087769407070760052174661785360522895046246102962751625709226923347395353794069843647542828115978399203336974622582869618597286844655373889974991219992324329082206719994558582281806668992924497499282586654068902487097460511251220650847635222976127495561700871490431732579962404591849957227487626547349911997002068470831084428770316840902472202880213206501247972415641027210605108968098551834242427480926687456267686501310557421341916211081411788098927718153542830307842101419645736460297659971997437155972440566853365821557195030453217040513913892025321578441512112512085288108071815929754265293944591868612611779764623572302137487683171469805515881995584195683065562913465697985380087508232451171539103978093748729874641332129901807035778539617120873547141000951642709581326799016450420256290582799697428379109461467962944850773587590139018098035294475794057617618292047898976602151370852882082966726898488568255633613184246366890603376009239425092187759645608451904622063982751464341679047487005958722921742137019638690598166496881224473111292014573975964862764274122441969209852164969631809959449681520574237805765464851842849953464839670567760053117679618963886648030852705371277408517631618016801657132594043675353303296474005992843364366359344996764949742812191604392297378378755996009396368760109726760358951380071442426915357332660240092281384257236167868206064330083051330611650276486595295620108851821151383177751129453534611410006328945356794006000627129503651388749219046899989018329565700401426929052291157012830547400448801407041775744603498541951216532849341720107608171840627476162794054334393093466604845068154071112431915814795941087634449510092857755521847518242100677563010602677047625021634353867100897775123363025477499813872357194537223797714772510645372238784908170459040847421078641422005209535610537608041250773067263785035081776614590607087640414740327109417399347436506442020562320931889488379902603317047919192637276318103003637034675033923575781499527929300352344346853971037362525526780530260561303637284272016238978851238391078980216510873979799617995783346932804404806074267502480911139174763580369926282887317779613936852697755262467475500676615505470071993043214419644795952236801572112810912679666821123921606409761264177248171316618798777033980090470626390233171555830510469208674566266814237595558823347683422111689489483740808414102705726544963458285962289365202014462500524677469292951067489247008054603722098703356111626129860144932102029496618422283301363088093089183203365039754903329025488256145924697845771986199804308958737913673462777070648729583072512597476879984172491319586860376722846793878538529670120122880961129835579892173679383688709919461067602478864125362663035089667990076419392174231426028223884103123999997005304205728944782306583948396890221506798076338758113979264439710700033908486609697696410761747143780087483258134527431351817188556629032025125438946934718659567326458151737797666911380988588325062642983492167312974845150858155468828101561503671033825853053334732236271198983020012686530748040088387049640985295368985573430733599572577705675099919921333930962509348818568178577039831511391144403524565720911930146167632924714055419667534599226699306208160221450130650253939248215824118877863165490297988708212128411216473608443257631097663662085432414111159215980554617669399361264375670922111826969832246227116651028943103610963276886212289160698354626395241637548745817745121908759535315267793517309319677282360252702728338066673548020498222206944369199277747860591354376502244625644629327021901583073358417799510593708853343637521915495369124777015922029821223924366264223715963397521272378781114240299897892588090093269040494490427953266509412591272944884531305690604554625368346599561594743712705152819271935647970002167928433986156548144144907098690585577566169625236046653201164235511479647816969233000378425559020304557325865025934786404917692270895856227471405319354399255079707357940224987104335881763529830175387953967726146509100915425455628162869551202952953522400899845304247558376640951498943782348820037855792677619953687446807193728256276622778466148746076776972546897297084966118305985431474989793362862278356894931784807276868809294652918788702481704557162808455131162801572078750110377750684542109566614311879083446010243306465045762914179251196852196928404783025596305124267676005913653328775659987369641025733708595764435412887548644116355281594368733091843494232972673263784852722393285222374573707586135703041043616715507599147057480103114036091279591733695649019252404607894892662619522744022916984855788266260231576757188167988528833414157927729513462572679896400770557455798078235741266812316014140986231500096515799725911767716507007333497270544455930019027432726480361491281867208638254638005238562763201512022738799743266026593010888293868153094039920660622638422657842078665151217830839005625541747026888155568203841940521065945107787222453542357587105416643916707159318570054223705201368597366390285921865771173005813493495269713766107442121121770501548348066548266374820832466214043252767716884531785663989638855261639493782902214834809372030614628455982031342536030115002161487972382224027428648060166556146196599551193299605824325138289587494152539484743164632832277031515894866547401343011101093526903462894160938184195482843814015184803994623318009723531325309333709169179465325247929309040173670760113373870874641324714290094129073714676308993917815475880484485591080947376222013816005912689102098075948051186583881711052725976974018425916696180914759745501286806450998828948761927054261510502784507079649282736591691122549975930573395664989144904131213336382893864800632502507521481334489026446817155768738763572030345484196593886913400539296355870388922786456963915556075631027224902535638746014258612493599441975150400239663535414813257230932738724324084518791871537601903945293282928278307581166178053203776613347021727143949756260682002456014051533379751411152127569225850847652629434574228710901262481414337395333445038846037857645500271949063228334672614406824348602251279067801191632572505271340746410026558163594174140581513169086353528473636615518869984269617873787691454694719303837403742823100303393427932288389505248300522693156361590830264976848299988007597066378607646136490488355902792673540484669993021425825361507849769466144322175842847172551063692250262305838828140397856720048847026087740404088991684684770198235530772973870256813587202703771347346076422682734987930806164287465354832750193214142515225095669223169861978868073228678636795619248859957253559180374968020517251133000995138735911558339439430359036304027839289902729173214999024026021196552035693100607174897406095562794069824430392428017810940255911601142749885371847633963694250072813218971971975197277457046643373066060371477060742900068657241014268491250724721264817442910231397235325372404054203445149263031111898637222185436650843281420798316633079010703868412304289032010547488153925506103799167329697629594749654040857821003391207206190855383587719862153164758251891816542957671707129048338486944721391196879431428173000615448989719819156312690671523648656050612885838348719941662005795724200049285280619322382742307685464019320721882226142954084377803442319252248262631671034068422666668763792255273885399081187722328746807928667553293562821264759030149096550193707439111335861544945672446349887697200186282902945966373044554512326625436277018430941988103857755885733035273624800147868017410653606402443892857944409247249941297212220040841739149762195912657237086688444970852831185584025720584840798515867850729711790061714267116487709815871604174228568359400738538216648914370515464795625411303144728539994762017796448859814224714146338695043703736330998761132379998946521407366774891466154884979210700851944997655914769242734236788219343164901764812228248895074146274635502086090235949296010615083162018733569451692922929942652071237462337172715543075006732820537375030268179824388776401931989350679786406231359972590515465703964684863362487408046527821531208694357321419325942782234144405808005992169106380207891352555182203019182546226508258374239095524044037867852920725603560660990974323181454203354484859820179015893413201764946615024502729138045452498956060573021339991944415347749968325913415414036616147255989195830611424294828503716942992691101046007294166216228052135297452235786844394055190231435924943251297298348676479089849925672455360341061076443839374424739958818531455008510948932146106866500064164769758457114870885168669143294019270151167022117600545833379216012423420159469788718769966124916906412412567535879952332487651156925962946478673727709195948986110687061049808714302288343949384221819893201247845801727486045074839048218551139240343994188876486796620492456526529050717513458319147041487750696036688777122869715523662156427103340895848289470769774302056025976974829963423514713018600346743226984557027600346392783277867206357791594398280988894128261224394528584871409714639471868139624260222425592212186493299268980575769314295267908128049531822905235414532014793901273469136927909547990065753126331155730625538176633606984805153561580936327325024176152438732906277497185082534928940677664038573727257368974449418734248652959372739897194263390222533379587497578279352353240310367651074982290006696223464719490050331406923318863917487444568468603932214093209825994524766851817557115244203731343754546075352621376768239499389184229367102312486792968378191528079988273655035938089959209061296156491026486243946371768413095431563878360416067652841631648632677932229557927811396705922479835184457723205014567019943052042398605121849080702952292575180249844369372293266339968474873489478881899402735567983406893898162937684446298948870074787618609054422283250497808242963379461508430669541248265526035510540391661970797285281315081284290900666373470624358323798944436158571607696544451759609582575737737665727555938185897938087397561459357549137438074560461802306184212609255704501459581467107009227744723178223839502664009547848612835564479884490187261251789570608012218531865496465316906911517442681634154812969709631376798739817698707437648478619755619290412411989996810958857155597703253905167600959093876622263547247263000031661856500658966654890326049161118903678498883304284138090745053843251284898181233434043035801019844219196399609938394128639870542953513281212515343626641521841690894776753072426187648623266307647685153286115315440098726478021695496695403879187674804358648692228110610843531155409756527194693024483030185191543430061487504846833212751002359276910596099805845310939250139916717649180609895199530577544818622281677646837779340521145611216564627082622158801836532341333100423747839793938192024745282227387319155429961196102583124147646950766661291625460692564712981439369041521682100653523598756083493991350414608981097381427446576808028270416283973686990434133713763967341179835579929762008846316891434791341754710852157214412289402930922306910715758412053163120145844485741020242170560610305966146931703696346618244826829680449777661205308148659635476128168934154238224662240788268993456619971574168828733887943382346666815989396982831441399027744167744988314203976085643347516715343779467809400796371321410169455362927551119984746679656306499644440594725343467137522861703623280658388804004857853904638509453068122342937523080045509162109951358955028389056206263629496605791176369423222738891641349818819242513650688879585044146134075979299384525734800753626000441935272357853332513258804835299183195751249261434600018491071524504395269061578192317177847903617225414762434442713196125640614012472409246465378620124497919518318234883858287713236908981194637925645603272317837527796923214341562125731593988953696027315554570457331965246943102395210371285073109048887614183707414795313503295691525044850392671532442700267026884520953625402801014573135480820782298233461254495509453060932536578451849461503681031823803017799165698802145270084516671887244172623297028490431750158212345404990629798511919931473160668264890763487102806370079010889284024007884654233642383398343127264364674910443337289451938060239819051764146482025337252580336582881711413875134816987012367610535769091027212752493718274611224655189855405363511233709343042108374405451873172809217492446710868192084623905231584849561605407365970078112007404761281173265058303648641198022754851828870331711985078128077669062468443141186648339247192598130122822106410974342817531048943419039716060873513036581272331317915019325012187263487206778585842150373089714053697925049865476711777293286035728376856366770678273306770837559063892904264104930921528129969638793844383772691504759259776736473071340258387358867789271868767791836880301133314400923935810512912733971836634013355088013628195407472941504512550341747955719921762378993482293119434715962767421812209115942704150899907374985627286732658005175385724198489755696025563132704849160537616915729033884764731127969137346672654659771477283285511258568226234532123163704788234567887496446722512827534442807531461410039391052098738032184659569537542657729502946731453558067588898149996267243202238891156773046201932534270551165915133742023198235679644437163346029068138889493271335284933045288531795753766490493146438071879744912782026891631999738091744859665479882608206684469610479374435498585616664743006937363933889235008713402076229489172139018199597150558397410569419520138866008809204949595966615543420322624516096897471123967668896345010545094849841061030683673978172224550212096625837580980427121901979700883753291748470370603196197695967316493280956106337908073409196325029567469211237781232514811318717681746934744309414979510675259110564801715794146750167574053654139485086390702621234134428461548155369165304090776849884303155314912234285718650298739159704882086615353093044513240744651649764732434713159324892376615763833634439607747428806595759685877821691658706475804808380648394655312791743600435650808515525728490576022346458117183367502583107960669842532361659686504590420273529490741363344206958216292342631756200293677885871058344840451176865896270965752381263854318024935378284953307281263030472312440693625236166015541977881487531848565149751359689833876913156378689776051839361352312213719087190923520835150527121330319291390123906285453127545592141282651629695479500505781520129790968772147335976800745111366766344501015437634606062594505296684754304298439962478296249902377827128806875170031344761854922796002740555953270863206507433358267601925869163124442847905493491237704222516522764913436896252716023408294328444340045086680324057431382019093174008521769346500538990573562861205842672266059538002413234736570913188172667286886813961939643565183743463877200487000661304349777212970025448482470826133170666634497656328514583371239980722398544631578581265972928602691070579838471296677492252187835942705068561538715277805564550540063595503498288288446268965076327414179562048333063767261830519105642482225144950605516714048320883803347403566930356726259013719429787830252640352731462832611385491969974098740636180720605284022842674781806632759623591437707702098949907020188831427903258690495100921253230340825907640129349172860591117752445352791876370892873650868678540550713447246512246301048895280388355295540406958206730109207735207608053730629681285000498331851282893517654323054068532632812923305727892214376760136623174517513650154608823785016073333749721620093401596196295575835610010028082653299264505092869571501711720859527017721453880924827472261467068417777166929150252436806933031793858169342785706120170815739135265140523798815862715098668065583788207124379898282637728136481603344543537912386687111168790980721290880509388868626909652928043710795116536487730900594230629058695390583607356377280460225933597043747827271596296883337618411397365827651076748872259851606413883324938881932592504987056912939644991295905207506223466358092876594836300809378376445406595299005967082792915565341939340188910502894924042638595978611241600481713321611336781660233499584701028705352393665878478076713888317144477637967131413150884375009061180856186398494803689117120918683257236544852470871218245176896048955452686161514818816368835547255212618279704745008388224173402935557784184912261033902076248302888245083671286292608847616920363303737084725316809936603302207252268260946879034476112947745922137122903063797122864025154327893696161813229872628243555209918265890414544944009808707953278026641072013187617511830554918720926347914982645177393114457490536598701362603169370114484579071221644391631754898387846857424002811262673323547065289246235425167593004058136867340550673329165759201329316614716099585914616336352209396039047660645028030138161989178056276294592194242373975383102174025824973551379269292631864001060772602359688876217323052024812896693696189222876921837230622279038239887068470967690067126648945928530350424426843648215806978021165765380525844337437310901879110453970654175517747464741779462987813150294122451417829562688413649484278306732154602022965478142600364420959648201139671105533410717368550415458509653986658121614836865176572334954228194913478753895448277713413752193781985115185293768808197202313787710316714750159956538158226169757961213425174659778187395976134348382015075029287368797045490193550627533828544623902053302755405730760760848201898613032265435477050775501225287843637755129942387408532786137678765204965267425062273144671965164329032202620300662308515484900941429708315955829007697277956531945348634956085398543596830253450632620008142902323640747715190844140547264064011010902859429293375027636921957749527246078466873559793237234865208961927155463652951148140259502757941759531474627174007019004443541219472167309603098025306593261719054936854137948855153135131968242740624429499995796139684993682490044437792763208985771347723018668857037097410606748417939976088169340797789539796916164956239650346010271093980963615682880592987146250245970472640450435852452578833381917834856887805933987839263959498764237974475529348284113027766905623586110554035944693464568748313808635869484520994479501340246942381238367550489787623214772975945235738438882662697698456764951807781394988912881494423254510685796748314872418022290589721496259265191028188283707864392581320979596901267258700480644690189913472973832428111832996143326276880931107740937471795469038544866333825523118055622096014233285335816657264810476233725541646700561988877902494040735074055303368187817353579561803522054770607582852047157676698926515796160356474050780968901114303586640384626741232026229269295522207498012948267182384922546652939056532988143754283370143968783455290156248299649159384123691298429760995039145257479238410923509221189390872267858489101684063305129376920513782886622453116250361213662102161683296734626512787735866114426469141079039665500730641579191412037537216261948223883721561562335203993910252643607214700363287263083536841590013431965539868523869660807684029819611014261957342791937123971652828069350834279134643933347454637146874290573902935372337450348741915340645622335470222997565449974406408179762695384188500173300334922341270826211553204684862629677151472185726094692861277484109572675329815125076052872952510173506646487260591648761791722770887639761064354081028872394012016267330956944656856541046959611950879667342843068982573989600935190689508140225778011607316060558511574086566931948811159305523087853972857074019537919686677289737287756578074864704607464685340964661259819045877807852432149546883198374513615254986982181006477658794201897848459031351021344509329287624138731662676817066969985988697478575972757241150549740409379382769360667470646974350367408153274421409298523333275003987431026113653161728837103935468853284139499421010123504275512318782502946794788218070995440910570787751205471558737252778361359380445136751557601017188716782546976588426444853400152244118512529767804749058818007214736737964908464012541324922800721739833734622257921480483305573054941369108253209138579866030685606509475594069078246268040404363351289914366037836938466255035098242392512613994279077251110285453455738802487779255125478409404862460007095461204300952262856588817184320374378633308625999247108854442628496032565997333750718349038698509963857438216237449694064504916200599351687836780919575199941734233473958283553049239536165058601183043228856103895066621238255169453929496897796509624709984291769946258031356590690532068680796975588984342362254102957277129912891137880894154678289827517557098056605630877222763460684915953902370378388444336060953558811958985838128114548304866433059567995640852066768621696292364837047382467957047095149109241456613902130546420150951466227314056476968149714065773333721648933835264735346116373753870188678975560552020963982271870816187200734255981763011507615797734439383719613948911039396890022703063152577705766753004266036333215746209410508606073342485293859123537739373318005810984749781391709105952461158763305025117166102447287416782863467377090385224437347694917869826954457638200208338463519306971060969335735409937917110209666800207011743457021672644362290128355347055134342018516988884959563727872676479949117586810806930131605537471669999371866862149661315223804787419472639789020571549981605480080391530996248639908426226926631002732853596371742579654727592350632086140566405917114584004829660914844358125567103190751433721042971112828069343251251623758147312550183416453087010140703520666184588525473064799235008456972687304686309053123892784506703951005922373616049430701929230613821444099312738359555390475854634045725654241974518966656989666491853528952907085507198097894533752438470608972394487866769560851893256434192950122187692688036585630130947372198703237927121874657887915865689826437847168551079079450362931772769429534388187148369926476874592198287612609747124315062466979012906198192825985229457304099678738231143442754211179751775217911118214087659777335136275239429485975261729033167692604081430860962363769748054403136103613946140914892071174111361774689044102695081177081379089848909860824320628269199260223607920698427501629792403576523112759219942493615825161127158455140155176825756907008562341009541586999682563096949148417174945170338893448071025783936047331676107543539108082541929000654494944572376981460148508064410703544457745004176477524190380924079362762134009631309464438421021143455019270682775554403728568135509276220081427572648578266331127391659647999095014702343429777064983285783250066935278585271700898767103572505603185008023264277594797316052961349884196227714463317605718328318515327637764543566457341473475338919319111556878680492742022933834646216077386811078067359812271737731551676112432482156215946832899069103647715867626729680930100713956314332766224003175620084265728466014013062456874055094103413182710775899003144641452508583062208840555491914487479962260822563077074360853563438414098786458478249860271778033134043971030246180183578180862087543308535706511039207197623070975799835325433553327856595679213111051206552972817570104865411897631171705075360976393446805199057391181672253730556999612779515742684313226733054888495339755038694994071063627931014514719295401164326141179044399388028866679258970143422312202908821122979426051195533738945205297853079390851786077019594825405292340811563736726221896145243511326513724843238057266742594208795734461682335047035964006920735051541996172416518991338604687721235486105703280475970351934749384659519492316968251959879982697318558024258628854871792359818205298210054706167287661642464605979808839167517200768676390850813019867303469407052852547913488724710587654185557613663185372559476722751164591629221849577787471071848473792379767733916315419398078202639061796239117100112519537607210475715615044828128976803620892143164672866776073922991875126699398710066949426452622836472025901388157445500380641635367769826058883604478392455896311886795853196829278061778104133615638982452056730155751414986008761136616906553296520205884978137369416778993865013934207288078679228748910134423605214462198907910761526562722844443268333395725784012545836643386185871144068869877122868998233869007368516321439878750955325276994266338764360378511874580317097970808845418232081559432363099964030933099898667452316869135918263866560325924554542508787533876294375671111455232924607217960328197537573352827246196041271541579520119562255735399712072105242253539714979423189287222545432881358327509405788936422889391970729689774958472204500990412623411906915979592027631362060738860507973209238239271317743186312195792927701187053450126473827169042852801854959198120397408784753324474297079045166297423165938922064728397908085017875123870812649048620614239185684067056410070828813019470327512208144922318942174459449199352309248411095528488745772343530828818811204620058975860221570751458313197928301499183576184627424759834652049877697237446129927644528817942905380545547301405375608976045838221876486950516372294189867853696698296800538462110695585424719866129006687497401623196483902238350130226096405368323580840476297546239838862800344505580549507324407338254078455571178342362312761831193912491200133522118977057267799783982222457622672290502494642698645608180996334889918391848960295386642539962004182305736718498703949168189817369437527623906013925894367021179259216826844730599173519992495568786259826539395496035042741158847470006888626029730316265901575857429133711588784595392022471247179344911659298239118710854469527634272570134020727290298948528128953120403959484678608437533396473858316870243362695832473601774659422759652563317564909578326375635621226292278261847975155373618168622741660996471239307253231510034375709922520500363563540966841849286866906988502293900249990489966802335747942584979264547879914542544205114830843373320577998518471120814805963890976287632442093875538869082161832472912196839586335644971637380285544316539403056534881908454563433591162506507822326718540082772431847394756263386392306690217654914882643747869975716376454825242557753710450050290463410909586010808532935337768572462929754421636435305524852961318753422313081062739710290057530575247872162546081312285372328840323745879767233865143839502320204767265163860397163528840166070100862836265973260951516535976222459730430079276209594520061918473220173629284541580115604077049952237135547824220936272141970897289392466999865315511640351752279775587367080369901792264237840216364891016802307907552403127872560650781200840034340436117220733558286561822879775845924106790370029732306817739762668014111322940097467022678369497423017021384010732402281781395030829212445709532351223670620179543168444170519028194026249164606535870853885723245393342216309149828204652585583160128532452034425641445984559455363481668635355460621889577990581399951120724885692714438392658273701842645232905744139167738749040306122762973908543790480452345527666298928768279099085695235828882841347002766667416392552095915759975906058900159819332930814453004261435571154864800351236958991932705627020817601603042380949689364299866346927697259807326422889451945537407967198355116326313715784162404812844624503745452894105289358002114849624945580886267547743658373451615051824529534739238933111375352738859339695001292899182539202531682652268264966421476592462140282248368627189218189368565498822631926905922666462411888509071215617278787106935782572981612975351503861042126447708630239707732897964210273829756910045912249002576582901749382890363509940280632560629547486712815391729599552114694805371676146014147462322255312368897787900019128276451786323909555189186683395626282746004063393696922846352270967197816108134819673667414045460318739018959533356422529787546264405577760169380808541909963786888165263044060229787245201658734376485409061586029456518918440637719629370521473980529750160014483672403402513012293446867731205770616530463924222642164463746443521304855985272625462723827340788397260575858969544209891755386624384956003088481144309295193093054681760394261653536347654029431261549002988633149630828753567990376991168615131708540358859557880082986930196511776112498556628346919376085379852588813602576968974064909703143727623291059323464836275854823853157009833046622795812054621273303826589250098765388495981498554121545878406154292913358741529721701938317687451052876791373736046953647158764316193098917866445255943432942230513144385489042727234715399356586376387574835653886445501684202479891836540581674562144794438282732670364006336203930931882348336767267765646975039039902871068701205543156466648220063135664859169066807018211077224334200364151034879990434983215172171278217773168910347412873876180524123207851470454162357586798661866831260881232845137574083556051156267789505466451748685815705647110831946056402157530749386071980736661464193171859867694892634110863152534605111189579927552337605468669210000898138138418309836686102420556003860325602773546203052435336791594572537606412778918686656848685892283553801672540051989016680263900592320624673755714577733195741981472001423594228170660634150200336296111016493994361751263490171054629460390301473023613030900745272829364724491911390462579205493572078789465695502277870443579678299780227143530713821147471649793962224494097478100908039798582776737742264630862128340052574643726424468674979071855560977570426906947064564452496919456054948525769932064704179754830551555270347238438825364990805669709239416995413517107199520579046024549167952751098166466635968759533250081243277228335121143530188476970088774508504014998774068623852404561591267463136785089135399395504694422551288138328500166272162306433769194820406670945146181154609915038512528493121101507474552236381975716314581886938138975898087386031330986750481043357334237634269212401001608892366601763870384744767531829167620155221305128798574546797255084417052401776685087809238786948589422459525418122473478517923689330530852434322594809799446472533299116733660238712220680720783692545062148279588491728549251845079012308408720184507782842144257358195657581874019914996252760774342178625475083246557124718090556464084283648407992049446785676437262830097716293973045413279290084681632819385083410373007731347392788175598097337568704988269795700508586453661689743538613816150660298784739481119905956438739645285310427806902408374873727142303839136344234679754585210800287583782243408806801348766028302139804994807931710314385524388532236046431735897829529780635458356225918685836449368239135482729764776170283174397317792263185665872669744195171121479072231781710145736224409391388748863440548581895549520369524270303004577769909627198594507367298207024631867769332303427049882618146886629616120600427064387965121156144937078215917398901603308335471651948004411804771302755536367431328744001282144622750685950318341100965644940261531966095108548919065765419224228752334677390475918173284148823741860053540037025710003461267374977948414785110254037441188662710294784050591484888160037080040081727412304126764603446747619281796649019352742884746054428710841692945722007360396657072684324199850412517591020837820192525973908391450850590768661981424739835737557132155201699021709704541519675765171156523676249753659382331317595439147021055652517160911164121235671077355220968794463425435258540690948491253804586538166449770341399191773898045722363650185277680152160744259805387920248217811452945319825190752826529956639162146385555438975535486572687960818413576765963567180328030159400007747588842690773819257585001709880334376596779444351708349534361554524006075172874299920106554564982669536000592956842353383967322213585024918363546974703187412470159584681514942243819317487289028053925190641371171125953615107391470044780671810481869488817234141754997210994489983566776311224087700889448643965346194006407465966835974373186846225608534602685679690727643205504682438019044113478287547100910056174576745821613908724680599183336830258700891599840637904429938865633220937363478952152208608584249653129401421077523419072153463253472805538893368219030477170444813562646214271791336157848126912389765267865686501538358516143148633569447745407863764113564420508344752104106465878863558788880885178988639556178986512854902977968857852944567278634330208689243598457983914906014448137083406492374405447703929970313720453805379637112477205565194563735277918491535808914549027763827718920887235898263252354191161987877693102538934559405712053996243382124285573745641877744304809225429263937936102262399943794576861623894437246005331028234301070036529411412359507920912582537692722960953372956446824809272431068289639499374420599726265387088117540078292360786234528877293259777929617859854230131921162401834225319475585112796811945542956758054255292887122293924892444231307655487859999788961304727068474694463879074909636556369401095787696357950500465762681200327022605444671601332225635456546196802923777367161090713290173389277772043951083002310864955710937017473083826582532066194877666155821645715687735226071822297908296176513802118006653151330132152366545571842541044723195511132977599820234642454863528972006280650787681047470814780816773310158136558621979472442729889949164810861043634749970633302309035872510319558602917923121536778691695640247743412995735903719079177298842462795779639853911366212413843735472754419309666295589606666218927601935891243374054648594819207703688510939139547483766352081100881847157806123169285755480619973794928225627839963493952819170892209326609004188908615866338252234915375690659183523359788144537259233353570943038772088297557736766688107929247753048489907370587577634652134756672974048058787723645107403465518508276382360566129457013158831910193072537775541689051603198383877820531218911382099215797005903978396333864190963439790732231121885025555766620829316800114851012695448132470728837127043549673938452860795419894629386832305510350277151372397396689347968260842237216610309069733543296994157851706008666183451630703954763534178687581616676601315244853029160791068650139604214367700964305448198682395805932955537980705813870602666117578442354660436753738509107403042461253344355549767386765622416621885036362803968459618314879243485649744584594196741071875270846391622043554567563701428600535558709737716987253352455408224217039739788069502308651737879414914303583441335950593285882788369674222986303309760982974870148559929226674912037738400419952827842823139961209235132803332771908488771678120115376500048153890669864812767421197314714891466976479941211661204273511496410697038038792658624199569235900781897090668741447720137291744197368207795270758050232270381573920125129259216959258598489602534564874353998573240938213656153238424899366225346320466093792297434499236496598611480208725800146196329429568209239177461625259705210936646180830312120924522236977650908863783139984798213549408259360528152730786028985294533504014700375307878851319943332008875369338204896103016507193355295753517120356603744812151492305045105839104873373820172151421052531155793219301577163360537850052841472792894448846398726114584004773885816133167067682253006422220809595017558952249114659618279592175544791352164935478069315023028197203025592069982650249624755590787647880494016387732621453393065495290785066739207849256391419777213083995365784927141608283715811981470421534651049206278034573051637342849126004741118679838063625162803499297463488114659391986377704961333670746731422548624013970002724789603429222172027633839370656711735710817151108290626307411622263642056770927664125480610418039482938786690784327742921490574170564361263693169684353998151851900827521002160105289940281203448920409334582451087036130855726910572415046191791422878721682147822027878375188918581563716768157970003815868677315338944676699272063736757825814948775304048235163794369420086197020349357767035753735955539311381067895493662317394699271963042825844494286602206247624470823178283472116414820032113459920435517987996299211339863660236111034334384419785199530624736074014125695763455661669877604116987044637981518202190029428828043527358443252486849984569292727791441057259743721033133473845892858343827109887747510795721614332496824626666095615014470580171513382783814054202934897797764118394169757010512947253531521323274134749798543007030213594584015669601755982736098830986406734198870563435789822708294981798524983928739256364382770671287399148208670030420142289161347131476850132004608000778858466403701086905001159264437137891316407568470235151608419067305594554557952187877780137627480735850277228299066658192151727249833272540035715270664633647112742168620728447623232833226784311107241017557202910543051075570126593961119304106651277736717582703677699791646309857831889612399600927792279938526498244474644690809425532536117186659160015240040398298098477857165102571049861400237563805431852109573292207620138909648987566231437941657044319645328021115709639092146660310998010526761123648397591880227002292950321319889894277919617932158438376065191378333741311532213304999393569050880798608764468841097964892256758809100858416966522444981427661786317753451180977847740828078736750327457330360757344858527820894735487174783209431989998326735439605910730096065793442611940304384321308292854424055663203507604446318288502806522897664179505092019511777205911697339129507751966075912573108108837558024962214517910966699889247880231985326735319901324968763953874895435793809988618582340248087107622033046905988266623381646268128354610340727800671207261921465781171199530640615201898579589016696582774647610649467161642271064343980216172853385225193638545131280940181301946301361702191388423233539703680061374059441333488573615841561194604655921178421099960745648810101496227039777437652799521128854820733717285200966899771801654117797982332942982903684770423697702123195741818912715319387075312728672815857582904964678651363196234696836906332327374595648044985853264215226932618324404853562408819047784678809405250212991101140501298344362991281976875962814578552919696943723749890827358231013222960895797554319202194857786361349794496267512093319302541180511918439056080746647247820251949779448428677302359298695651629532557332887420731257533832117109916223205437258039720704969174569427486520722921990481285036829528782350505401922561617632574244648945380302850293863574040376390497975010264529613019713084343594539590793093763388821834417931821429953883772433683326478605246011215295245150758786534500434050679239294956162851789006199536920298745137084321849768007795902964802528160933714732848785049826916219846272023308640724972176959977520014844804722643881884266512340622630657316088276055604705445964342976415471413951991288155478672517274932861530935101466005227955334776596531804531589529391684051402733040596620670686195074885876128011907034208522464358132729365263427473464601288965869802459151272974449741376161351256959119781105970049799802655444557387531897742620649440410049488316665292598408923654112415674202866680513914723781935396284828490846580789355088157390720230566976075413388368067877299270985157870371395051346997191434290029838965391602630811964155867824980386742297587588673875851104775499090174396491571386770466441622649827454473476373803591079078903906590270225280137837706095166088690693520957203404836441847134121692986318036164213783289645226635444481046935650471655275163089584109394345054385239867577780051683601859092204473075606324774522609445397312545781837011049090926945959380176318302474138547791317796223936644743450508691592222427365389310812434325184872621707298159753960861631972755197097409897525829881923020264745007518344824249468004704347076970441733458187583231028779942820301599718067080432327170686722417412401923509866064503639870596593512328393704125589874851767558619945139204992916728558480291162414371598945443234822464770354684170733268065188710708519702443572042773631342807726564795156688934813442314337183919931301205076569293805638558167139865297054783262165932984995904419420581976802697820223570288197817366636760853610274613568912786434253509487376539114703664795012407341665273499252789832258213242107629301247051086454959253452595834681719234301901458325607152649662170581736062995545064992725787892069228232511434018905486130727500357013251389911052465374119505020529579383580425980259847553542738405294215734481317375789010802429404295987971392509785806258586903902355856128580737052186459244532569884599905446593009078827564558264892599266377426819305102020210418768178440097317220369267648782276702492602090557357108743820193290527279562510199071719540057078927178954201035315465906022580240375011241276483406988492641215922995111714357981878577818669626719201791158628237110945671529127369899178609580649986731773704979959344648591300217192164669077036547055029086476504733021570273485618466822065122813485026240138485765084115844358639414355990903080495150642941192598168284509880299857164489876477809651075616517843313967335413911075030449516023113754195172584794979144811002533037883434306132084542330321344500117370407304387209558829294164884159980382793351715635792644059107659062037472903028562746683596556466480814569429003794579611267603721483957069765761660124432943192967200066610641707561199004408991510366594536680571458531590974966152360797098678293854753446408314981055530825469603030415762130234059408822337504854450239878814779478082766408276969705036449028554179358425082606829208228379624654045890607585184705808096821544696206045756851425080925236368743848884491668303298361488946780831198585598675397961999298430457841944392529880615247749952063203118146558937913954151349494575053809259775901776286108263385937790043110651989733634998259107133330505734420597722851737276333748567189607708871814442321073328777297928713573989353746602190197264022003497328989048897112785773266934883681962871582085508768786208935660921479940882442144096244663783163548398404219962523838186243965263771182637646685336286905835190135118573112068912360593514290854265586156043592821593832330787494434850274841718082930969790884289898858680946574476018567423619597644975933119805377704980572797519343200336844791384720044652345716499885501713969562561362538129467176145041831397352864107737737021920342119868144150849650041279684189204783613578948994693074457989882376072116029851811521684426914761419921908223587837057430453611680154507123588460171904892879782744170780932771720308289847029552777084378149572109422927879693211614772924557976481849396823857675135553204655197823425174465905860963876524067207667085843831216889675974997404840806265972725796881088666669498127390627538185171081340286860443047645209128118352635789107498148646537875101758638028694577330297868306352727609825192997798057795572422638731592216104473761166360739887097663637431971208167675004509096789036063957969577980239414406104628400038724613756612159593367788210896590942398254301858400633626546891744581298494102810264112734226475213366970062697359804256300947818864671542291140196038665123365769206017017712259548734445450051257484599352971167536956619837374653745453237921666806029796869606792429900299146646066706215174620592763403533649893761855538488589809606142029781062743293241967897892762946996439978289472571322474737611572710474328753894295819994723595840091999031791701582131261733945719366231528359143651116280473551159955384142506995704591333093811467480948976375541200630404406653387831357738578925813985778045561985443719846806491988498495758655637255941932570884724405147451460717589537163036522730593859524974912063108879210716416466374975274550005440730184099406898603996883847018406898116178818826484780412435868826393810038277161869978160653302240279390221393051131451012603549033078571413327920109085874889450869496066974125555212675639664373334126709799803269155493663521265063516356513022414590052712090600262635359131665671316971815796367434785880611393385219935063436670664122259305876418127674091608339027427828759524253074063539879963155614098319113002373678806704020845080754172827878727670005578653920564039149095113016528992430275692949324889754470820509598618034579199963758789995348049024961527418078871796767237060078206096309194508828499424620681974434554822264664323256382086937818533669123458708361497781010198296383138279606181906426229554943050328577950234760587056423173312100182134106147304930451571669219413616139160826460699058180018857210340801859260661720797248965109109071821095727459358275249564451308776767259060243501380718318992574333082242541273601653255160586904175061590647813315899954370228544085270439279083532463914646322613365881694217181765628729184947584757547327853572662697645842069935557864272887858799259704228762881326141880802124931383539561853949811603819852291526934613848213117484248814195744617268300548644265218686630741361916767125486410718075118936488516889130858022281854207559538076005619273471856606259080947050030328339492704003361386592724794192617417010037652763339189077462269100582937717018790612389332739702798784449446323342499072383491011184990370329836382692854516999310372452561385259126603478492526878786012438934157875407684601174421030081972891224267995997987894715214903132136807533310456097977302852922702214372488459279474177573886790120366382811423275093881544026488681635759464666680725558063519796366817720928306356478075306158328543827334128853593733234786844090142554981079349543168058042213412880546568476268846919439304631729634664573413497063089379241543812807192312588783765667450695362258503952470153739410360382378218947028770912159141971622391727782140729802818613651524492050258218100965760894107782184866067237603192471418506312364660632776207962793045500357358202513379750095952280469497084353400334060270274301980220546330754876163875011900942031398053229047820260573662769858158137444664413312540200137780756497865118095734516231953471386907423002153245336487399782660852940283221147372237272430222622431421630944241321194718848043926454352759970428820706779595767440173774065873088660618460412062374709784712697561029551334906649783316899701478373989062112866417257782822398616494697039277221446648110607296084944849465776937601282684675852680691967418759536263416616650507063232197604997417894366739875369867532341579316307155980050220819064990361619958857064317345213352123105860779492366996942751707233079407942234088975549887026666238150513522502411212039240437251777437627744832096463842837570357538020596367460027852021219626996881072555091053583586988530553134564350625994675925553000004062206457222543395375814063846339839216354294487161601163431357150114744712786688368334896865263930923806527694392283785609860673644374154427315834879215141436667796171174640914422992493033565221685918127716929546276956469452151273534119123642691541176274167293345970155967215463933910780034740416841190195667829733719701587318584662038569877542044462340858536715848416532775266226200051092641504602178929338846330601424725640747038070359924921534611362712080168641828848908814346204780105506857162710181359125467026494444186158937767597003344462435351568228580700811646286407947334746853166465003288551197415288336515500293976733083511518523193016699814882553368402833528460593046112080767878247557894639377570004191207830829184574734451655770290239067862169971816459510565574395808095146705303062615902370553211447981531550917183406387221473366465125299791483243563033754718020179411017916491207624123903699372149859855617331822536355483444035048804723945675587119256485383035411368359754707782893377180473709643579182101475717784733577793273732521076487636875445371492092107415572852026550790290511529126617740871960872059572090899297380105858557976741810397587122051244139516128500520738731973822642138010655297365028208930518497176834523470967485656114518536475796575836172650505185417702083789882573295084707442169619204073922365896037856650853970714493315970444686080058931008789196777418654321507893905024390738883205633950383488407399229754799449657083986787376750324493853331748050160557826560386917924849780210581540018582397606367502386562531682881885022546598754914097038337199725136560657984423748062472871271891125904245668858682537523107797217404737479554589073414242625853125361005940560279751676473747903998707586761220110039754188977474472666409036158784875903159220971646847187310976356849097827278400837903087874155887232218035545855133497527657507689353028770121168074095139559374526574230165463991928978380814127715583653786252324411989965423638362230204726720074439561360474992486243526316094547169547740068837364257989719737030478870088962403328070682727686360463026664486714490589113922642925203279758222657077851378050635009555811920055780325645563210038443505336929411460050876149144769164049546980129227167535351169307294520905485515621286012100684030680644245748031988230619733448431165153810691914593748839175574253109215917896694026946066088666056472679027522277082928944340846792564133910576519269086858857856176517759513391207261176002534602602731996920952190183869326379063525256824712292426632754664463842282850650352697643018850664469470172322249314308452707722403539125066551172563095273018730376593162678840595287821720840884619008879695409923973610605148479898664316750424736861085920699123283903008943098683638060331201775461929430274765895276797446169908603105366319558276257196510789885192593952467740609684472210824093304832577586316744186396042045857447371686667482288639692517918159812710338442291173994870514179904043345004866929392019280925540208701362328505428185175502074601778728272415873858961357068391630881602694637201746567382986812953190997086252168317656887178417605826629415408196335074100238467003127814670607696548220099077530164160840976204706463766149597201517025043671684746991667846121018122656157671745439075810425313043729092628138189121393283196041508690334126752860981614282999334145391035530665863329871709674269736788269349014797520007837493059370572300396570195776506832971416519998123878005655880228306041147673397507736197385869035011026282931938446535278416727007008692870736635025336712716057577577412232134058149249019356394992493212849883368270781230071997236185258201666817696983583518193314525273410279329493105374665617566595568582090505539716954057296817570510763392533415516867611327243483658896059833625277415688522661629829407245962053160577914678633467749084612154128723644873899020655427635643677766145868930017197695441558970013162039037965511524728333969838940384220483072811568913291040468986137926796366585322902047229682368982525319725786839919017238882287349920164197217304004067234087245295583221920142605358888595868696016677052442635474678808615157597957025908720943123234754631270699197842924443634862201093142281312359855978108678053668451735635408577928844906501415976611183638053691141722147452032779512716449979197123995269857670290328405586240862918893250640461510995132090061601732923591782987767350650131422464357110749277264623141885377053027047171904990667474498953103708255724242437873461499605368643498925968030392905996209887948764471540213439635108555277079148945491302007645166428981955648973345863976952879547950823909334674364838774366823763327637687469791016501615886563905968282357676290536169134674473983981576784782314362650905405711224681780456146588863053610472319566443134429963416385945528074484837247227515779968218181006468494335445434993991781002237870090434166863378653250919492060624398297829019140345538024009826404769549820415909697138288554541304929676874810569563764690539701176773324204420532666222378349844907876761070113986872301835392846050863118102343265877524734422864823994944938807129565145538231801183616737198618638116666100571003570286873831387445451983211323269779622007029537707103816242517621746155662515477268436794479941632495337603732396477099891554776336908789636061181656048455557817113094348263280820313108680237505135834772897863354016581192133633402010235652336736939207127691861441723299114006922970642008554553087552716520768553924379398871134294754785515975459416695076272594615926120804959070389377909977150816595823124394526850104410438342749887807043967390739327103445596324863295928853735557182040758743559588770392166089429815741950646575145539817430944614055650466361722104033909762980350225389562661238777143936655554357806308868941734442021329122367126267552041526289182599537881501896940795823729539502037029110936899081378039287781259330880528292020372180080956480708808798331194602270587055522924636867458057026506851336728363005974388526618047474882343044831653391810595132347317252405319500041740332049001479828687476878680355620096783530311722545612042219924706338233284581409968133402082742775172855877201922723960298557033210592652133461445383929972794235967329714120068148090248127349202099072250737145906810697078858857573406517203592293627851283631003510465736546293005841798725199289017467796911228900221404605969569727925567335471213340192631291188845667383850684278710214908274275459851043814996694109940517919036891140974357805326751717182595947642856773229191345620637222889662174544274954058737481783100092644454188865426975720292007761582994323435199738193505601585792107980765529969550247629385511529874949513681541229325533679122609909858072556005282022729449198934411572496405121203329221727439291493754992739287099785800212178916662441502283338421834277997879812240982879654371824023968608655814917359955074466316743214012381244195887863363649748763992413531703840133620390661108473032786379078470308588490569846524872658186906848441125218277315469273973977603000025213882866121003606006741439303474025069634868734487349475486997547376329416394312100248569859374298658325413710443237806412327583457176500495499266433949947584419824730681233515963457824486735073830779729600959537969245827284154152269925986202522849803923477163861154167618205087608217413408084419352352629477987633169037099451141161422269123785215584167637984160799314330483134248326634789764707868567712891682557799697210060703301206240199921958358129099597562317945879357147295792190239070780343816884037004262966674558525763201626312150840708534691313020115768879847376506207618633723098641928125169151637032786542433824851271260881645564786868003581668731416738293206924822280522070802476623755412794198915537113980035093269500622099162324106483592773054689640987687486116753426215646906150473320682001407657742436050991981901141959451955666584561967595510707527508200405590923345131401815420370629449295053418728718246069001158197650546535154428594878721888020564729985905546056049923953108160997053967302318643631410324856311798976577407955461615929888838067469438982774175884602435652897981552157259656188989811771514710677314555169803437520964968471455004917343570469211835423673799810421005723230682086587934983132456407442269391565403318298591002363025534254228236101085534329177376118177786936734224946479470862827602966287813794028086217888483754514891102336727612415204382321045073978875623773898703514693615051479354948237918536572502335417872686402512284619412875586989809780779471942173457424094484631133055377521748270528558633993017266214886383406053842805786377551085071235710378023137540018148494122544050366928209778465908260270989099455600517770469596915131037821032628184769451146997522004489046983352665058486527776347951753456882280844392055666421039653667631906251686854500687028435285527639521588851960559777129110567301007582010045456694296323495298073716853773300904314025064366401351942268226170110203142583500359355653085176649727679991981346421650478472118200302923120368356992715766867547454794166514849595531904217578828840162602669911952820177672144218771686815454080760105427627365879748448011520773885350266015844983851823897051964391949243997062073157336331578689297771620814975205852101848585320334315864237677829977836543860890686396397372367753072758947051256887368951770265937683486847066136690234247658636248241993198535913650336297384481609390272212142547900445586832583131393657767336515188397188993972696177249213945413325818584008094030105003628589295393544111474561478441146850583111469091833537136513474296583447179736160913823573296293278316848973578476571428652381963324598566619125950277009415998416154190559913905658560581781156902091518704496656420634045185907797088811939046278468847270715597144035499768527031727158249755419494658222484221930084503121256423846949496379993561747503007381108849418578080502798060114575051767163124925418092746910524930840248142423626439759000496116541261888655950272689409226847323561844341382946490390161018433541887729823082767311217559675611033122232236721013656260436742505963861250207576427976640186333460524835345478025602311869644627148657950385706884434986061565943105750459741404690574828975439040469452942323262891659551967825602873255359013117118267567453638024903434409606616773771479808804079837259243082277184657839872847170581447757438085141128928858013597615971244507287883199887605531632535608154785154865155331729159260497991128043152464119849274901263730571422873842098799767916381138431048832468660585536398680358614033920405314078090601705756723142108909668741572824451472439275226500106381459786333696931373673491168549090775807665420425163568705341960122979606773683037792135856254421437719415917634003233529647288121136105332483829731538156220365445194053246518765984567990984322260142619847823265674089897737199423564732870267617090777849552413090156313622114048853674735315011177465903878132610000127860064760703142481778092630529704077092679771760182051250244384480812228537168404412212967730264580138288387555978290086719825317887271853512493013626705773940625386286915038149609626115155886273927740507444371399209354243363721513593098299871453466998769976940851550530746084015280974818633592195637054853427607561280615791553106810896351662940196189170227417460855066007516156843697098392055729479755740682669127054056362741791652598849958278878831667799027402062557157437363653909954270994817553614535958469424934198320791310525981071874756516737257501695861960728107388681426727211783165015229534338784713478448099433847410022844587902965621409020754027829383484184814701256851010871570001791422050116866704726047144314807830190264453253416283236393259027643618764115159220891777967416018623837151011991505732844510765943954306414688569271478500570428207093059322632399466363605732284829530266437529518691048039755450029834739228648177474934689311153115099829518128979051749858357986568635437839993210941751797409143557996892249626436930019248479517796517240028510884999136789539457010801103256794280039256586701892484776138749423588319249482786992038399638970600614368102041457487844740835325832386476729592692368117926618794577623458265341613940331084001532949649364513561150858205189060840818910872658306642747539124665285760135390695474888525359899332027154968587647221677950253024024138192435763745406418179510037692675778110858581127900644876750009483637171038045191251592174056564630064584157190249747114739696848116441044942587256126595328834815842125408240563215997301769701831496810410627288610382858717957550771861151962963898003284129551133070861190296894152410604219210478622354809702519791480348558907354266318485410901092420202469264706327626615505092878234015566240377463385562825617374592414531297890101742198018966546796144708042971788080798046078469279930559817303681261955335870021378501266856552576960839962344462423917150116320957164309404267823340938416541783703285289048423049562743079234901855036468313232304373250759286883341755832185447542282823567670499679374525714361361687070297412893353577097862404405263558875316986403293575230137068097078962131599517803037392296430202835110048374249639806174360598972014104117962566842666980814908596330447847896161921861443735332622357647959708906220144462746279260277014221541090685352531232309233847578760160124156830246808269425793462753736860312977506212163919046306420914390555893621523462482591983288407446987269118898933748540011291793352610458964003756910945582001186414605093273786116322955799492425758785555758544425712637276311192553202038657000435227478127762916655738564288589862201981953727151594471718531346537375359151138388897024005315891794611002849949272021940787681145166647226639054476277650665722840501099931883201540720598209201420048524876623845977561115015892981099871697241726758562965973336749670910622567927432790600847065239855901513523569911688898495457572381639854883925287918447089581155707197610362596655417793401369954066185415271102286736529822028558440453500691194264438685392800517117041297943521680568092022876162225590698410154619692342140327859964125081877991819735150644855738810218764873312435296242848096381502257274405136339116595876027218901601960412516291280280239140181969437343207197735246677743316406572619197947474681776142933375892997645208609314730639153441562098669380166389669737470386598616701815569322455923138839066256987892971093919516797405734032879894814676675439017490542915089217776566690327073697851818558704688704697359812589769581846477773741082018331432809916807895882282062484505766001382085403586286757765664484977584887312880514588220592341207933180665523443760705566765898323466546596432825052802131464389493240137654434949932942000823924704702112543598048169275423443169939129229432003323098122296724899487198277045275158213321843091002126357861212093043475402363667657295728059477959963613045858741725482514152196547871260643089137046110296429436664789062859768259956763928936647519604604929010475395485538405751771774918912190630737250986545559389017283110686537010419774120579024612958001781508328086721432324935250612318567171817431878158980868159846425551856770251452500695145092210361778592242082170660224867615187667211096092699782797632402273095101814164396608412422631393026364182940798422958865510374045302137978676662545149944637711490422137932545712725393742895576425476599946869105744863270544787865624235673763970343072960013525173377353371253639638780705302571638948445792101444782278056736547000514431705465713493241179523133332362162328158585862350247251633509918808399838126984468083136325692347198371308827323832723737400648312556562659084904795544659752183782836562275768312491471847178420587624506664389803427229003589762224885691976686329289757050626100422762430767064017673578781650576920258027121254623088421342169980680846680824440148114773881729138641434019109189169538091013114415432599450473587361882528120160857857011521577873128802293910250397048758770277699856162926525893644064989370969619868403145866961181766407598890845014380464822908459450298296422405052387263694249384263694749143701749477697654984251635606494844512338346014155867287975854496584667675428113628695238075137006293456493026292135650191339188711979665309837122249470504458526346713400865695287336099185144537885177552828326055255316317844923515792344379389997882771784509457889553237809328886870368575401251106594387408913020148081027773235226834864791972026324235482841274008059025226757143818899291374941396173209964342199325972052042878348489073594006996155738938453861228751406632373901290899888029083191915881906821395216326098974284379305242413043554869401079140534618928537729829330004202660654996144721041983949858661128048023980423130824131762575994530614348638684219749852485360380972113298207447771769946301151798765054236473030790750129604753378938936566815332539481387642169475439096617081321087187588656873557756221742031804000080600577049212914830817827247812599824667468008309944533842456147602606682694607970638594218116587955432609267239228456302153987108037024195179652513645851218458584590610097643183341233324015482687933789403141136087531103254135134870590727974032671019333870455680274291002935733234927375974679690980075841680430258463433617973108409238899725045262996388350304830966275155478346340462533860583680146023476635217427937472408632793743291723009717100615904716046503427770820183431894513353991608642728984344754309385718107059101167747573694520546703366403869061948683606108035641794568656262271918091406150175462603107433197303734497631364338603861474782114966631375752771343110519927332733981198914652057091923315782557864407373027479299964241190249768042540126975571143397547594408208723952939381416180208354842540601923010849151299210910608234097914129426240845320391058694774262686160341700418144339710773677854010439391698465484207451739027300946483279137251086048716050829884937128580173102903263835617283583289649684604260190265760231780305139725562882563410212150154398747275428521574257387728327014514074213694135088255743235161954622260725876349282768059427265324630135245628689956629719776883259162556752321651919017684484810420586932265452043414901227785699944615379460544104960709005858614340131709615380139046585878718412843398994474732731311353426061626127252278322259255352692532980813921032626814539921001582166491143011642135949450261595425584679491003235736622639696305538315310686106497762681744926208642065128960202761117758468138545134893846429859591979760587861452435146124375868190208609276560953715541082530302166303366042595007445464496752484194312531217286281105286581768004046916167699715800053689312359805833210599565720439073603086549064917110743752939200388409703253773106011765059482315429459153790462662072587958218970281302500289423503006855169101596942733594264332335067689408759527565365484336342133198423264683176009278602622825268347094383812477131254386421772917776981143364296921508902843697481371313967091066529640126560192874553596448388294206897656469927972690907052663425825006757821186973405210555120287579224404559795449226713849052061144048623956353666589107404985315314342471442236109552333881833244983534524896651380702944408082654983749094711400764166262359833366275921440149280045026825236779723462043302410521065301186887459520293397967675901094513022077506215610699632215591916051163543356435808121750275440380652835747699108228974509036529596153088892212147897971970728243671981767316229543083623154338639948959814591276276186210523904913438843993335360036495839002952940743664044242957011009227086162157832509330604865075459071541914022404109775240892609122408410536410562151486118255605222118865483521875558602207350898947172671264596960623281392264460193290318128220012346768086622783069768455641919717101232659109493730545825931738163606035388485989784618505360244138112149526721294342258950967368249479123030293785450897234018464967535670671459349500250106730154210359217419859791954448671945598111782105369994608958041160710132910633321059820129516162229869864026392483207938656944940152380435469466950693482909821176544091170725839893820419938794516660521913404449415629465631466117751997033559492306131552139025992622638673851348072648603053441213496290494691643975584897035034360133144459858200134124016464579825290276281807709540659954033409182631677388704562682401350035163331866666614388962521784315130711311417391005996409083144577152185150645324249689517903977734230980550145144403292079211056501887627798413346969250093881907098167726853594806696212144639825657649392395486760948465933002609159534933599184913106129343662394675950849307549570528015013594053309421721648341468114546613367420520940243131284156142185380540280645772339750544509531163805583654852421892114409572878076587946999294479513767163575505138823083060761391979069513103877412718959830900695007941908050949934344437299981882807942586017960688212266993984368656583785153467826474875612704815413494791321561284181343184359250476490735803795767613817461673391203271698527793872368606749427810428390851596463915661295077296558501197130396607951438935521591640200718736025728872614028168686292358735642982268991537604842442952738068693030077448243537888432552373590130614267494816996112818828090717860694892329147982595295292602751660069732164339665795595362172522420513762323273787035138734569126230573400440156993703618970122289719754368223530039082948580858792221625052943833267566400125334919696260899523376858243160488084505162601526366683577958927552898633436756680592476855644082663521579743186101348397366380075608937353717610961939142106628989923139919840625910988373986607980376527640392836668628515974563735853370889443462374153620299332781608150291615125025343619322414101418957871557636472698759537503635212585510995598749557324078783783906634913422085326967818339766117243823156196487080987409943304545044661931521275453728074197523804085672070603593857401728816372307389010586475818970919265260419553500745522799102039263531280240857497360316154269734823038290402070031452588131177813479534656382399755887612281770440351342627576930357003127539372346734001037495120671446624187370888819641467166327439362763471510919282707189038502348857528524915936169130631340416750390953723886866791450916706654565487188456778384993217373636112516457845976992356804031060549442299171564106554444558171545515963636334873312032364390289223940742830223803892441191686379944509970183301504492806641642832725291178088220914894180500734232994933612551936454179263951498578193793357861275209490935873016064937468790238758157414644351936256274667906195630607814345357259170232043370538692140594730242008824386704842387349386444143087941477243799960538845109047686984209357884686725223065817571241242389580372011536126736773927486280651599215970360648950522742361058694460025252271346699346488276222943802822513481442398954712761895148176734935127519214914063741001722617048526132350597289669667017050397684365525434787753715146087248630780248672478965579952299035166497438768480830071486024371088324354606012872372655203631826403938991445385128555332760620976828790650268740578094700968925584486144203732882851007972440394683787721446620361830933612257809435225305133865513571425162118211816770672452127972232792254296632611443848105048803775589564061828463272905069080011121517987786335478873293412395013494084143125140372185997087187368795483587910354401181585838875050040015131800369492791484387158725974706621939217116551486069482521928057064882960308577848676178289680028370928738134242128119548837161536518541197068544186282347156823115172560764686758881390690263947890201904223100969364781879781748727928875996448499642423440577007906875273600333023395712436921419698236136533972743970023064737689137866184217314908048149938838953392744097146923919648818301449795700340070576829027973692460757155298470854087512152533979583316481774373808608593961241331913312429617368605106759884872398572428896107574221563237216627234821926820299738318610036824895813811257522167988825253088553687629630107650839328664710814796927012535482928773605163425535124007777224958991411834831696407359064404772348437589994410172464872708369575613504197458114211946742073734951783999869738037074545552513634210054186379798106906646909596233192735123216631686521676785510960747546568072773497089048284610790091033165289581177782009578110354930007680153461491901211088409321501890889632554128557090158136458781830453927754419549956719720742998544237472750976881649915303350988958931387460689197407538642177124752122444529092385100363637478106927798882284926584876377552930949862602479964620051904389994658200850040877706183861472531147404142120201048705142655123849844423238885783479696255867323538844010100782048957286630495991391340939208424000321064076252879602151305245063207444736946408807141064799807428540818658420869143717902999742535550506523548824384565400740502403184688388258476965947509255716805168107685557737975638158037849213518960963387649771044178458379174260606830217619803383331579354800292984750190505759916209987114667936189235773185495204531488115309101986633226202614665298429562277993062220722327411139767194838242329956896448126025280366014109551105453005658795868945053658331817316131024417298685203010174911105789843777182570548683632444388343317309455835676983183070471961103241359101927367965561678000602999590865596226325876627024376472541106629919798928463408234916952212290814432248333123352348353165232133843301957836828150385072129361081180418423260453716184189305787449619009730363366039815389168097456228493606168351769712276411460824743979546629871621349091771564528444167565614805254331457764665336560644516397607371757483606053319494732095420555137058463742084717334000147280845857023893991725411566104393261874361201475049896398668524881022049518695329134670263285470372116252606724996636921667386616771972162142818181582928929990231935759800251946204626475060713919359800812707162431805986147433708896200988439082628468076999226724357326644902855497486727233882500761304625895560817020824168944105061100672877260681647011352600446191676494476299937996835552857302851649983983495877998373660144268161237683683036945677469043128210337769799061498774223212815222667338066891154304702027189273167233165444973512773026449696518731416888372168076580474442743754834607544548572214712114176639641249354834495200292197688405378572577869981257889424337085785344498054685629518078513230516532188982162261739307056051266644073198868160476704388232862303944617229420953817060793491754329630166623710821096378421587990913077953582733775225712754454363958174092954257769083114878352972350171127242859645080882540706430184917707215003751166109358342172574192591673833944007537698368395335515193100854557442061736473237858665440003404631340412194903960093845352391218440269547280420151299209911299747799372789643858835925911876330855960276718417012010124167452593527451586421476843178790178947969477399916330685759156816254138160608500376758842825581255985521557312636886520242591489952710838339523762359182622110014988901578545779574160003390655397621836084591484380753816243348263193883093428955495464252133315904686332994440967938655761384718726211704132071503421838321704180244390306030590837512903991659598695274511946843324983313823721567325969876230305127662543559972124365140425178283653619163805604544218573466873200048867352207241950960802111102949433299806082285216278885618549073260335209933671742976865103719754028418030903708377136423475382609596867378080459278960973793846418214016657155623447514532775785861125046491328173041858400546163101572221720745091498004338463214660160245356032670037047969467723651615443545872698760109317882882188596447282059602065919482227844764975292129916762235429360815915482014795249968727427010588243179732144621040176603345642211660870683164608555072144688906283236234655695688735749903230003074224807199299455532952304148824266507066294520954310977825905899497357296533463038127306656052685667624958819286079927112743465945013180685000628072947899945231143010338854034468821891419169720565809054284437419208676061598030458564807933644054072508973890982654278954984342397743110893597861122036826830675512830076197629087326545914048455730628411747603224131735866514457912912903703899025095811263927472243748095061961683882145485796065375073467647224711286728930242386477425874510578132351094334245029286770688334398623338633463920601331043274688340704204234783093215177896303253514902134915444324630885710371777563603191640160126913208852825536356200316866485725149055802511501034715708925052234350611078441793420040457716289765741126453121964532919949562294875109788471158306524025803965851426924523415914069035937493219008442222920977491843176378421990167602386043062903082267396298099228667103969362947306115788226378147043930636705817108210818077360995157733703552733862256193582997904251341749088796398203019283463759512408963548805824522295914500175835137011745359164325621387506333389080201130347843953510669743685485930989168430826176348740051647271321736162088802862658812601739778633450470630519871288812090553424235964238528267113423175362809408095591394111972482133844507676079914729149869604054750268079345808973399081957917220274725968958088722563866375870589129186939579823968807662912906219157951803405113466488814947090376481926364295875961340604224060462045139078945443298767842108531207771607531286853509431880819238451723147255405596737397837503489201711341333789292857337399995464888108582309921022655136280544551098472506279720685036389357308075700904995032666349279256457905102140055892804223288526727945697509086562082040877565178994095942130011916703724723668094635736745988483598471601670958922019955104774346219824470487697227111664442587681573531386140258284251411333653894467243117377438304085684009367205658873169594418231957822710515898367251793576580859689215721959942214582677969508358626747020317629200634317447679382454073935714641582708677092958222521564951984485458977565468614076447992603123444099922936037697772392022713899730675570674165040836304570029905619319992929418097624073760853818697846740707645148567259588662446633443309463349656576021474880697859534303894494831684842759490462170173576812240471949705303732671158250593816347282697861938077055440439884660063485636775124848792148517432047583892604244166323281195321958870730678377626768479381422239268906466302065688166741783054816803685755901933450566919668345514415016653890582607371368430766801240749061017902031413099294749182235946648891776852788704939804934254611334324901641333292214178115588107818459770925965961934715652433796577711601533161322696980447665768897536109909445552301890885773267053467872638738007617261563774818028301928997866304400429200449790725468642768808997617950866663068843866080854208455775800165850562308503068375027999210848993214220220065279690047319188740693668871426668081655631244763534064300184080921292367267425629212545880469748583062732623642733711086784676603675372585166012644863255266328415269479025862683349745395086217627983660773787312090952303885187142060068133288509607012394319591124338155273293826489357076989987461968755358618492081567283884409425030651068959260190217724512210018103765418794177969695388839863845054299543103123124078450094009857966818809160447281536645414387879002171495681103381323206462363790417464812505013777630905360360277318027012953560573951232970187900761486689681645094779430055515471671235862972415929435148946697388928328430712076321792362071076779859430579401943442850151211993662673819604390488125408746893715934613869271590805086755596091804990757353224888159690156336488227891698326797509374242446633588094640557162430461518834026656435837119734132650645305503299930571813330479904790837908183560514156760887799347658260032617350458551512958546230427479854031239647597805077120762731952278846353129718244486063795224301204984300279118408996145832344894683462106766855099265476380834178391035989339972042921737620882530149367953698148589027942083842833062315643031073247421526834524435788931945180381952577906733196605943450268912136706551480125251820985872199976052715194623296917021830364030315785025910766027352271170899698462818853727381489637969693223978359709685378721829025807315346220788789124632546768546851618110022617923774531000683091442413360102017881880250652069258440665217420712913892830385616548847849753328834480692851958507375315356343598577724887274360624776755572150071783828695088369549462982775898926539792757736682009597245046093611165916666122460454550169496644400263581813354411607168936090611520622825267251643502292701581580586307516981013805449032346670103747710692043255167590647874087315435783082702236115287111226036287088499481410114792602025004189494928724703764223098376767472749555065695253270142459576804179261691214660931003922184956919990656699129578588642242619682184855624412875961555151030614398750262729198649722441436882442471178333758168272162106161112156729160234393729189890955464567658870113713320628909277020995640724807243789221712039391034890066254907713472573299000517284706611503365039657683611104588968232985923544450701889580802250657454425090184222155904439970729291329958130185338097154639150231534056811634165048677267632231796576872955447249246986913622978007697245587698524374480664604694215574949600034479594316284479395816377860401730104165018279246418723531460085286855388914692625636879910056911745319381481234332648162273362577717775427099481345020161233355923862071197383273287304248495957357865117968499135012874512702289516287019557954714888077829879562160556168745103703938614573267480148699551117707709317178431605561092818061375775922029933614187045525091730105167396700163276210339884232617288305797327178842176358988161359288383373180665119144832710002926134394740515352059227130078950338241240908470840562982312081982557105250757198853753186884138214077835723123418038369112075113811800393013194025008879897309543890133200354836130164005336519439313892570243285288815625553545130850341809449511176771773001324087015692285175088632597348366582518473932514284128699998654219673241152189408256336796379116493311293839920842288913641393070839520202168329879852042250890589603825430995551798209926066336536760579658135849628797505761502883728444681149723723772463174405237805078102763464552457269852429357718723798579956691765658070188714314315023563610028799437481473389601217086207858712724023718190638263156611880689116631303567146431920619857571633683955943500842534796134414114741138840999980259262011362196096321452765027838423324748012767869416800335620244050285400500286198869568867865692553638627790416912937385260972847056601009564426586234884275457846374022578695239636601698288973248534656096425508581042416507390918993891119028342637009534177606565922583250462361488396401905242612400837326996546881192080778933948134664550515131000581792360099193984554234784099467698019432918152813401545267945145463260264315601491738566057952674108531561630614667532512383077161454141639258534848175613826629154606497265015530523995304552482651443781845022657956062780439793449712406420694774136419409802676349558978907119063200866534252605121530406470083699678550647096982510917883804417087944985295559157973460151277039116918704584116566657532758860028994331010744730411195238593653968863457568029324657165294905755675732608949396970136589886788015243769140932182748472666042809136088121331901244015490877825841152762705031968845741553398262985687151409161547237051708796587433482370720971606772145968499648506069463941227978557464710674035841309345258501366425825624131620673413318291810683491210120486736123844152401667065038931753512585868910554996342659919862740228639797490360866533743101489114040896842387440627946076009829160923120516718729240843716365376339648636645108959771817847313753910559610869992385625433150964582104274368986903252483777742467214605096620912937951261405148602150932399395753307340498978443662837671031556787297061052730576984831534073329111129755244904217575959982394784214138832477196954255640050666521898718312320702841473080298125324447770908497864999347924251525593683102167496967242581710833835327035440528156269169802913804216516062785779466085806343590172245301978808448612919861418245100105851843875434533295957748727728351921145499903118064586337516709132280077654011309152227724501136726835057950480469920560541965315000355767704085401548249980549528189106030076998526176498062424372903456606415099820173788033497380960927173590286072045321222514479929467171196433160061928371090362057048202223404488042150215991456768074957359678954312921945845902278849012058655877689745981127849540330434220175756849876571259740887903514637416124646162828388154726096321428266524238912345190127402489520696579340014676338831541637395364139840280434023367414903357494273194743189529638130871441779064080647858839374916786281559113409114741088087348758597866522840916397336538918621776740897068254832638218313768833811806962397813674564350060458136862046316633835383868362563817427540060539833619580615875949717863867025495006637630186387942509810295307422952032423654177725498471668211602467086015802404486314344356847934754855828284614843955045729508319331363971430026089169446607388187571314783893285479159663919367351171560489406855969010247279291916854719057881016782229960825226092382728974287901538200321624961012957812002306341457023368842239413917876150105982020986807623627784435057809257139449481682790959777663828969605735772063033600553319743805669139323867686285697545556545935869234137357434783219252413358539215516849504701293713625145960465621530132027904944225136878346971252999283430281746559368520771547497183182641777304579303293988422962978207242202432044297763680031241885431466458942358576255190633289950274811817162539278684081119857019311780775470923988563742965041079521461335723896642150247273760715906186647658774322434730739927899830743810287149494287831152330437163334149006628607100384533649952766465917545366137977969222852651999699635921430299733015048311834205036293323402766810388831607256363404451530553408509621357286073594664083299031175912805723091571935118603709905366021665905967776245471775603874175892634161265646478032266577044561778071946436528909492497624472509415422324862041971281245440252493983859830119747183586633387306644148179139054158651063448593168288510233877138724802952626690442980807599525169961289294145694332936998336510238299838546206332884850016919299369992971825759937157025368120793718364259690314387561257157603791628920200167470719866600008816240857404180565505265397106586489086915959935530661415561815283683076615240568790384912727325498043367411092825441989892206124318490322794229215762137052436891068348221784923573695274808458595707858806846509591826626835965986168638463823560173161222176084655146968286141838116666895017930451395727478244353691703774284034316219447617323559614861870443728064813603511033250147113049347859371134878420444920908263053754144922358861433001311684477982484831820123279344883334786588462075181744327081814127213555500665977521683508864497509540769358065370933022647590742540305277047623073005653923548239962210765044565138431862567406705949749432872673909196711132866930840234635926149492524876867942817919083475155280165185843139500117096835303472917191012281276517244122640817218024417552985455012324424017127285263151557726676852253927469236643191580258585713853898159841134817684909743190076478022050623723098897209672039969556552234559928371976564094258790323887193257944033314291406001857532792620033048638122343792750992715192159032161876299975334802240469980867694077891495328079824329645335310212114723740875510668724773457478444382515802927883651582133194119873264134014274221750924259650104759366047567085861348459180055116451795394704473359555385114943326011335271053292673844826005131976403442251032790512751141856110877807201188482411770822522531144576782542848960362012679664454715563299766217587212332989107683711159912237252066493930459001149897964511511115897179600784528196381612879834993795132484436876414008352739191315966917967831496855253674743864972299288304992798021041491596170632961077033312745406735050204604638406560586874866457962877748640775601665917842141298874476181843668313284389773694804542905434389070415839552434267100940150440331518068158756196598236766899724743105693627251002116079947923941262473081138818425252670383769416439812074060578536464297713194884528579266478283314445777043737826833779594922562918984798799922479953752700390735112887799820415770463385900834112352015972142742997039179478378034845285368485951583435156168662737972269111480510388722961063272922223508073747237578079424295802039370182151675344692272265074462414543757712763444450725034642524457653404960183057301138398669796417018325219292074283384396689855490627908980226461508980903524557144118426356725960644825177495130535865014294990904316580163991872987095261406848151829262657442428648038812063796887070048044054630436450623635395200471151967261364815849535413873973244019522358667114296895567537676060431072024054995976660743794483443119283434513262313361865429101875987522851750104830671580566347176474839974164787412817505174854534161240800050639390573142131747742279395746237951767061325999435854971693361882949902489028837758655342963952609910860343160906484836747888059116639193013592119513040417233965762294591024185937792655074145905177209138719856855693537912078221716229164787667078105063409425337385400740207722049693484085759128317315839203114407740550817224869704579929292124668390027543985017812988248818547293991894144582145949012660383448409691453335132579588068364183913848716460003136489610728323343193593309652859069703121540391520426342734869005591520646900663566386445819371023910632110646215399115530753233905572893864145224441880941960314204297370714533169066984566252833831972891836889958369061318120884956771737300431166075410019832599101658394064145396394758034271589596398159305110043637792923199663596937694395240523820765164152301637527684274382081213745245383354133331910893208839520424750753938255006025329843886498996683053778181310001048134307058265807907855482012116190047274357374147864458299815680223853684325854134671003461326326790823030393631211332039506400485656197130434618060036059178920347602273770952646867691777284685897157761950625959834712879024474538359559523687560802524494233225274676256018520238344257930532729616963763288886685023860419606574184700467819528811902745708830642936319823231677329197527469004882144905312571126925509502168378146629435113605457089455608590481759945902632169991568201506763397082819593955404138888034680534019201620002083513898291789152296319586071672234675964799997615987424586145331726110498480072684204389349865944471712439494954226390013917857534831175817087519997465347327525336926726525929212487582188307267386136783097983717873710367930532575484613017587771249236538932906220142986490529703394591714618105613173219649871821090092781441329111362773441112432575745824024313358936572662515325069797435748403751803632216473242715478204112812601289838699368868715019979664863649391047599745228952909614192058936859438542055136498034760174151083895180666790662920024397765779149785120985901890988501492532199888837156275434412544428776298013898781984997578613341297519040552893918984299322843760768282236455336515412655027311833464478358355051997576239734471419449377230761489069662605402642841635207335930659564041948770915552755063926521555076133834987929424826979372048762759321617241498109889863015410945593553722408461566844680392125055033862498332390131283900735242114578015417773795757969857812550090822380945492367254904723080796429805780925815113413127395498528800790759155047368538460314700419129767094451562903948108016708585383188038015286723066831140181798161148963177951461143309534126188624204370363428726223186022902081711637501356483501345829084021727365145592791465270835974782862202452144481817006421684096222354817756556644177982535331916360275613711740718799751487723584442091141583693119596659060341000890061092200328768607090451172066979185110193186702347753122885399846889427615149438991295983381250888308297409043399143839271050087324849123650315006057971723953234962892789900551134098771170342361652274226762931028598253656045126088507926726641853444422346677263768353037107828174214890836269815984646650899712886804766475822010566001611411981128855024880071176632539556495923752840268215911559689689018943786389396259577192321597917961953706829819891644724904131164545429282599348649316614833918905198251332029636893585654481767164148647966335872005952437883638242354208656152599856254180248051459207198035518158218267665246612354023288507134918682594504655786222956228888341819364037073271087744539700556992803882219902738056604389089185405851020276950610836442257687545921367938121310509755568064001426114856297294688462329535649492306793798537285878864879953866221944173080558795851093672925269791972099687984965382428367173978769252984781128367902896225110356171447570302952651260462296228976820726899161149903617606170857193872142302453035194482376864498610724277951564281043627855326927074923859052822427475841985217795437670065974872878029616867837267045288743088012140581390484514045939372515936144214339564486275656147209065006788658735637642715916241997535126949936495819454430450450399230996365812445036360007054876204454306145622570653491209876783563468517995083129423420054758178608118553312408399878905496170031388891242363800615434295744917390366150472984478282256484504439037319175954202240302406109612785967847600416462783124894607171898139721912350171077326188669223055545656674789045817716388193810851900950429161712718879827559442519643865950541907489631477943681695338591415587961805514136620245929870792378962520880753424873823359246956044316061946874063708697039841520741287658257836482449308475334963586557761582242154258315345893652358056957563814990025315593172465052033113347611993464055456129905484788758536012740645856951700822139552328997842520555869404185895234180139596715437381258763947221112518324762136879273641638633420190040950042703871898708704446816324232838854046586037660147610057976461958299936516992719414726442847669474032841546778635010876745808065345952109099640222324099036388024579958609820683222503614236490906802094376830971152419042069877531564733242220579804920075200371427277281231824028804559391080494010348338749254025353736515103060294295042872187535967093765214678970681799680027245729311346219647874819479862275456354315699771583629231118527882787078839038181739383748022823660481479429502213480329360282004666361312442888574196263160960746574749612675298915798519874385821956608297998406874926295370381203468030309215402181102545535027985348058874121537529790262506796383058027069367843630559590145380987830238816814960692151382407695412233629225377067852508649649931260819999140806492409743995420500180953808913802784373674963304194559708234439920623268614712313841064212051292598168507629569414945855466553548125125143390857678746213322468342622591212763453888851384043603374457581813856453505713628114453036908673814710473198556243547454062687603794292668026993825301962876176140083644101656532005447307897031546570631352652972501111874664659506676430586180738587382781882096953801597804269232569955953241621176927119389130076883713052893546454700078952881043775520138929079109431751977759619464765496464036160448506111430599933045091405711922953837733445267503970467788595877939957449911332993687525403882765728007010655812937303061701081582392629707429567262239867380573423867404535479232333912711400014479050337846664621645561446494727778989003390775879052934133090353203970268024352462128270288795333799056715633043764914895520312894926595863123097100335602682060899440625459353336284005131753732181979151824807876057399442952621534983434514170376518780723524397627658088683786688855735104363286287913567560523837092490974438961793295438805311784243546450644975309460636685080073031909328913215151226918834082775877692054135175651050102387920417254050178793201859932150554810226115611639122998452069328116679721845817620205133337351478049642165712878377071369738407600720248122373707012364965269445559477800103191692451565120483675436466969152964531366472129309904059447065324476885689988570806461820275840420158890447018454160910310745050964346840168377927906350703980433759645128970725849535415498218166681226793880993059677996708210430710003131221097243990712926379099983211212671394481720664263113186972356931579856159642651986158374653928390858915705265644135779297880376382116412568253207623050858760899255112464992908065001438371706553360340788376203834047294715697518028224991335888264694549169741033349272312576847745220648810103483994484224071961376299800691775249720749278312792506601803581887474036458404203359641149117886350910666622027823734284915417671089371517321779669824945085617507575548332659536931860665174660177733818780172208266864693273653671463415104545020577597114343657544718175961961445704116509360177137011018748731339460056569141322873448367868489594522324103311638802296053021739689500483073523191053945743249836170578908030517631487772125349782968113860162141205290703163954950365603097955138623226033558773612308131825791620640552090645596450816594872967501321735843697430058916182756781383784297520289710649807285327303442216071313356087465314284732858632081898120493090423142750465551754240041557694957483591172295563605993921547092259110318978042756407942784839374614601814211562139468951613380970639598623995983754511861084613993099895449533533548592859163447596024247608292878952680419282887101939591324606773507817696149209588895785226843351139951770055731293774054972377918637266001224245484999751479946353580084146167257167305914067964746950461963800917194258808188489310673907991737079562217985153113490438669746711022696057296470044179674228213826474460854937260719009137346247396004828693193576612089973630873067471009743922113806816527985786271345904855764191894838045262282480774527629579148278391724273144382525152680122484554269211045133736216194255542934988132445202256767314288087547687306278627084331098381790261866239033670502650059180009948791032381071494132912917065731678001003510432182462893954196455965247567347010727155201508180324626525619610620010772540956701210028469117499029862411531470315135110752504473821008951105629386087559533119928027910019442903248549360251552849071199088718817994688772346720706470105114384224702224358855656716550995856346368468855149223544146109896459767403126825926764317423459599403026703833441757036624335003558215968966087248685067712484019283699316027402233456961475502417879731519830921321857704743415341093326731253055459815902625067776715948686703465947885566115085199554971192289274925790174467745631268451139880646311024252566974455848389741807910202459434933527289173157997946830863056909321335182280241484283230579427657496376751914979194845406499475795717725305640107056642471329748704962295123666809048303107876045861064638393950444798427438909020543436757599052238642036479087059736230257546956914565809259982919242256483182121943593858264519375406810234768824622616841504290991920522206011491509917156257602586743607880743536337559949152334038539521781956980900439882462357275363896119956170278893295455222601958635971176329317921133989714162908879593202326006972169376560467757985824542006744629038680764618404250924609223242522292006030245761511140923987634181777251463737337554453558047309477919104358224225780835617669904461946166107275475112245665441840079315434005725800236170985457916835263713234152616625803795494169725966603346048745136600857654541649859187733880706568175172638548802197301071881649689941744094453432997494100607544585165609770686384399911012844050747658033300395967774890017353554602203482287588146793899406152610255071118868687675312180713093097919071799946149405109427410242351644833819627729781505877958873838730639777963087246744512269502933050786703753297058044439925505254737714170329903533540301219066409402062856898879986677856683549292692172958310435419396807489236963776347983544427865403787546591671558020771215271597450467732998229011403299698734220439948290494180771902696746829135745756738495791876302172402164510836035281315005802919379091841530248070108055807138487764927786187436355345234264263784690236837537338911294513399603297823147804125233383300949123305413049617714704403219615190552352038524735348203772653879643195257209531080264942922778602722936469892988249264200800289294337300392527291006868232604830883715368973737145370011919756070825223939980931895810208098763683020461497954588456191187937018443992610911525807801751852556976600520770115503899735847435000030232054046582604218366098565449042648534201857468997872381460688988715258182889264855354430760590618262642571525382406254966737239643572161028740413115646790001525972016890052832116974870006723831942547410983656373756125289513574477162135298341828049025709600359861912763089267314436447187801171683085606008440994077687464255376292890369923327026193870682823723365532832145862696191736638329213091297122996969830585870899178375009699350156071934177082918662284080183909926376599546957273474005873774644535100929228608773277886053594997127497504671597241116761000500312861728161943347472208803308281666223549266729117344156566836384756690462018037122606028598966208562205120669480128127756122504361984670588298292417840496270278242312070320011151587234896408113321156724897545582515253658920148725893209802150551051244946715872806690116531361290674533848233249575761686520647877519760294830320311993657757043916480189830076255582451510312660373043241447843442256369263338264231736497576996873162933573720751223003737219653299937802374899421542679850831244977599465741560259246495958460243952213243915824370132799385435462233981696466786926830839150972499708701575894431780311829525971708024293541775684873763666612196217063901126808338668066026385134424480176113883428877573044137798718760395198838160641486174089936773133882538198498754303238724517448238071274853328662345806231452010000777475620040728613710372974798679771559918966632351919661906363137641034654911186325010041846614293672054345494674360298928468994263695581092687397263867874384950154877632826420175197759453851099628751290777393057223652526218580058824826663380050841385974730095028930525229493995460393584158579557346009277125959091188074906994238809685607338551843231672320446833464325141162904587225651299788971118512391303023322470039501541476076916912810933821546370316612708841425487196714908987332992533527744900767995178935823343887597427243287492987158350886341096534254576733563687092220431317418590598380459325172987397266019870698951653077203617150352175774222583770786366946834747073196183916476574725788294558162802936914600356689842795145600232321307825566451684152204081066220437676092006752747231218539834624929272725079822605414234924380758332916504525197807715997912267428651645930460807376554616914483786235923807947289729919283910366131744931309322209394723797783462481647074811271172527520946677517257377957264067143825764781957349663057039585382747263122132289543043120206641356677416697511568364944934807143448042894721708470035179230903603496313274197519862598505660679914856204521217159134140528905933640592776080720031907220690166658437417178217108250847613889618490137186138863687939138902137970910371353804484044795433501876221428591342757767234560325851163920096623101978144737519487782341731759950312614730244632482026004045497349410621164178574711899083333655856903596717023078105020397829090964572879338523552665631386712132402669818775184172298887347884198859167227340528191391018146654469163893927973464120007170294247155486818176710132176112863910619625789902647208950497533825079360534601576727801183149901036860459612135996397765646548496057153458680422657108078125329200131332768402008969132077250947708477294792816546244189772676137463513827364276600566792647054846146285478990630021598829772400374086184721198172354671456713137371960123515990044404783361736120517878229752674315764558917753654715189560451768219023671685906129800439320707519388301034574790902979864322604539232009812618301253410269123762977181017675910476190669747531068220953575583444666399763190345679088075371154841539473804578694289215486389198925403712616423661924610568817924683765811216511411330101548029090521676654205464715322302096398859273865789303367851014714263491421368122436348412685215565574905580681692692533048222059242460658239925260514517434742991501659738309478593527171998916359322818793258138185238751618813294414035559319663581143821773603030040628610479202836593075258728837038352635207947706887079666370012735868825750438565672224378360959774315666959418129470133685466686898182871089105251114837845709032106969062018767272333306374292790780910467160585945014277104575544007903301984633884422788280056943286275860630966738876336441296708114123483951569963884775901271522012344397245489367736982733813541375967806673913977716208103602228363462443752806775489883589133101046015921249170190789920335289875471310103736615177114917642213287448539541832734255194015383528355621860165104367456893243691580144627397216389100259683217620524143018191463795236347540556173784905130428201105224533413822018508594032608585391391371325434978977937056039120709127527226945761478240767253830290493815106617708538158391936223658263689780488663300915675798003203903283091639778264619220932179250660583104015815942517996164452668263300426902124704512007823096146608121383628353412515996778170999890163960712573226432858332386361397823591403885288004009377301742961383606060019006932750253921812920506248432179530928521917558162696409726319545378813580518442807498289657325551883528090043475753142107958289684095284553190983157345195467346189789985494717567940184155600135858931905330785888427013311535801674630535191633736267138587766171772662505522445239266316865287358590871766176690782455435026155107245391326773930654222320211189268380933676524911058384650213383110952301033373627558141386433968392451376832079185989414335385130950375951457761479853699289403341189975506294600297514086072367057425714760473366471323849852031473277746134450955023337663958506689493825632204160860664507708116203396396942170054420746863517824759446412926755780352429120563506897937950645839740626506297663127045369811596198159488763001598742732282583587526970225631428074504897489355655600466885813536231342576372792280990655015643044471351598071874713039092344004858984288237760825324107807491735438994579343952302955565780331255004009276551690845233008333892151285230717379286029521149253586651854442356623164634174196841835032238656356093295965796833415113688887100873189429365575659583718781501914035410139656826028650515199988967300310595930237044934972472903946425110998859641137919736203442942847287662151188831496982006086303037348670092606567436426428353069978647049084574232469029500314376898821194164559519120511193723596896480300365829129062571510278155215214603148028649676624160453973617295366920187740600771001398074124688321119396824878270764774317042086924030681883895036527812637277662427372553614888624342304168381481720936999224988169429180488085996614076038695422183120455726505518970827500864665505552522937243435590030026159730642216870240163017259520037771088177267497967462399554507503203557303399900853512183106276818923401104411168343739270131926003428186606554062972705308456772723385151884343421615719812265928522422007815730822622097481878916804148252004742294497252401090584583720944331773349678558044265848362744890657897474972420196251651560121384557598311224477909221014196872728850453861868930389726590677121162123995423533803938343832609077038973436221239711229718659971490042160856172456693660801044973469104305138687033939361941480523415557514350236162727405553808285117660675187500975502320102854027677242539818017249813542042967479556275294452681554331396611314807122967421500660702797350677651104256541440436976767690335201077556197397565739693358783897880586901002867655064569357873026875455946840236774063508885566123414502590962134841906198395700083154522848461332652663392054542532058145097728058157407032391495842636145090270860594957988936838305014709975894588147384952635858826697062834011047617318862816151416173443195453966570046112342846139843271652517193693476301105077182892669893203257329450738596476512937719112740045627921169840220662287086517389014284714347749101621719920012849333625160138459666584076059998139047476454865179869237856177342626226296254851933848475832944348009579013904923487357440623765898772452678230359795881382166781948269913780358199893047391485765341626756010365304344986349620233186881227345592678537595686986996894638984686818399610661751246096445903768446407431835853560830086211045670057698881329791553651580915418172276158970997061550845799377512746679410448970096672635036983233416196451376735160177681693722435301908701238675626407056653890064637486935780338802315667019865448647599684710476483995857926150330271985858235980409419738608751099617796405510374358808733009055579581545316683346712991688918232263172652596671230539276688010649787753251413123748614460645249556355003137489876336598882676690736344517549832210995028681260409847374400486743943988487827517935595022406741806049599124134250539671541369836388970941638616724226412183232404552203983803830008546301059476733767178480148076063602822656997851809172350277023459741101821993604480921411121261972197921690264876965726794080914531388474314407601669675370287741888646795678031960122429162392398302364263656484282529774840094738861812665114963471406314904281774981473414474057420833806628023469138409542387155202601541253402560678225638443667246346197035144287109326157965477979369861445429246828554380354801245671431767683914692752838051073079712062348694390105028751020839623590115494031109431460650311843178002004396233176760380717262167409526808644999905589925775654841336217435677967017962253388797492426776069694647585188183265716358891602056322252837368803763969187091722176244363524292685561793253517205751339014235991784914791321836534198343050298540539481363623033163766204444980670618014001450264364131673887990368623712181355486442162125855082554534363993547813320144603266089600521310941770287516213427967804714460674393347462538016705289748684746804454714003026554028356134078334702988771938244738207940532216198182088231675007114285448391521836668716352606275638326833145144776437824340083997828572686663551292897895461041741570126973180780649058138551267927361154371003169869963446205395367069788579205344748096250276669248745281788866751746221136656434004582988549719340387081492693462109284922039233186428959737042563687463438925587473921107269323241814360523127100110874386407893921036976114893380717502968457885277120428727492404609742410052900467067165632091422532727726783909364989205629055973978509218512362618648526086541029659871020032774297928886936851976887754928084537560614605305649005586074468910654483294049786868486880390139535802228224515290928741614923483293829354739970611896342999818185526145045794026755249517868023911137594054414939574075259591798269432262822025997421715448302332379892271268708540350508466588526966706064950853416186688788251950842564688192482563526999240127288958970750660304754805617567463954200660694626172672770779895575911955019596350962921007401457555711451293206757427143919924193785742774342293583529574363680518317629895591362747191641296287600445707622929138964548234094089592401419375052691006671883891827452711884996768235600999308497189227204600925182307044722966291265279784526852179509418458785196354709324960002118502487120665602405155735879107940104639099066165350259853001074405951954317861396058602882730098109782586596613734828616497441741861182807294607506718159527514189313607120179494354160842237846786354783340799664406917816484257340573460921353804814595589062938498302799355254767710172961661964289707514986320093458957669417889706131140882030119429574472931342366013383637616644789952856730375560968507267053209146479298162569472708484291466918050920261797932068387006363545565447527419840980948374687631985304368781832302904953600095407771609495970251343594851524159607334796762934026730206366715871062915082624466318118410512707213693199961436946417648592195806919087154115596568972335531103940877724832447317044655741651105296107858600594812946236422188134767279644634374271264127352456854246778477985290985025306613637732518791120108230181066836965378884151866374634489697244639248027865833669428681091489309681733387578026532481494005757152419519387545052503712634254442477957937486517755055762041650230040043991365747339608912919298074980317711550225658932846167942862861395523705200310398830927983741565090605132162268276837013570339787088210268734684456560498228156246384792242136213901054747858113056241977518531078706496868404615244328048822801026515000921539767797834292736243465478708758248974210323237159889999154030040304992097303044448143502577172162911317630422909842761333840888862018330157992271557025822811526898275620459593737544431768381808864325592040499865332783217343675186400128463059152367745875133086788408308029235381588739428612449624739612250102057614176163223200401226889390397234620100299963020990123681919620675675839101667016514999879478550156084829323956536447248014064415764015036576680350067594289901645945747502309094594903668149439642880442719198815082087694862875260171879169000055863802487520826620973770237448902588393934264206039501502592569567901850304155907582412892224310225843019884924671270257896474205444259884934983904021191354997378172109246173067918899488130200504170785238701148622802323378352797234037286057729323455986453091999412370253031014596333177382612084963248543966998419217660512541411262433856944608956860694664220263154289653283258137206657851146334590988426389170755730376580537928614120168352170935835997397456254078872396830661769894228751758807307216288307726744462548631952733272131611904732890624031814591483992135562272626704211217692782920955325893278667418173693642335089417240112298059384859680680956300048351257762913181125348334692974463250897335103888281520470374222484685226608133183082388059312252513753696764221837041166977686142057741586478679510620659449890888925253048496523311789812780969764406841345834897394236415019548711874263612253085382137731026299897941454285271202589989522909004499830922465523113525455435297410760393208950388766615839182763758716694391209766102546511729704665120568260107841625627133612342715186468195245584533840156251678279944794784062694304183859226929854823411647650678768922564266001932211639556818590468997151753520647088082025461454440004628989239655836673506577639397610265961016214809330223418913410863933811623906921918646321728705202468371022559909527526830636826248199030823385563121506724644330410774208140570197732098450738450081373804085023105979247544002820759601432702565589316921722271655391952838836704676455983710353931469243384225118141619185477278786010345350143910665864312216913519894953121463387701008895968012226093818876212130493950224665009560799211931039842354167084735181652241478439265439525320337741799045743335320107243869459753096548950854869604338838551151159434415849306808204856960283911379825043657065661828383431935870872508479521988181110720466412213900640726748733482714453246740387541188974770924264427173327927009455667876193802584186977438757276568701603237453429547346851192570855723873057646143842298626579985589625802030180439803688658388453121350272392828941995720087593488079230734334850449055142339642098881535270370901806759894416254750980261379403088337973685974455054967944012778072997879435730813866249746001927881929849689541997126754678305617042747716544607880626388996958970216558976732926911547752709178985967769776486103091577565697108011975767620218147023208673528935655743834160013864410144063660484919392144094412480770733726259867218715409398605667892919494555356942074802239888700910360942214022706756657920335832498920854557354205927100143754777935872637198708629436807356811185441963308071916135998298828319041507913311027625221603257972423767309082220303703936164552916342226476507018250749029984972184316046556251459048174762331547879692654960681168429102082005444732007143688157728157729841164112285680967552673494130606819250289422475491177894363174782373499240461891552232031009882402314383570799069488033376714979700602165495239662033981559507437655922199273496216253109276194397368849159000154673143077772111621463612914100026760587994094927476797850393949866351696748432539026701975919023520779165236184717694041519258949129978609811137199723098618546855794906299993679282912405881550021676565985105855591936358059011885979846566654268701956852750366237792440622306181164526039801437386321926641733153568613654438221251066464466926965016632057346558205300639704078139686846777952765365742243933408702434518217089878660889390733698271664124306941469035342491504240622736855896853779382073133907655648747539824047931570791914205835211018589766105888920939401379038819236744225530174745469683683368623550345655454318216235074834796837024153192102401716604510959621248346978154813586064520265457466229573255325757975723552108724119665314236729087672413833265996864288843546060060041136893055462708607374021775086279866410728784497809485694008721527838699183027161195906986305296883877205685896422556153180640354982690734530957038597943785318547583505744741532288978100373594836304590503322975298973902695432718835718889257971738186070776818932439019921111467603276258840896097160680511284664660821256606702491595380638839999826725420233023778534891481372458607052549323580705539013737169716576647041083493407310409736581331313993017222723773991003248741831659146662619619113959894736604901219804931652324237225915131827051017374193182753061102344046255340516584388956421388146777652717081435769886288308550321836609137011002073869681552820893648789992737842246146100763316693244738133881374828308938262758025085944098424149234811693894261151904942938546534336985866511730976158306812740867678893431773239105601590058574037464209396305196001487813173281328481789164434379895614267473290199351817907565649651539471122522633789289773253767334949824095085912347314023669464675184650972302804209447651650101092777748035694776155769287932934356636923252327943349378714837482747296675576537494966501339017633321986448428350729450615039304257769282472254557386321319733189746803184889761015659407833427509979967474367512284244867395957142586206829190187729153826478347322440136651935389244806402717780907851506286664459079161702869775103976127154514971501288025558530809946449734950251738365534931081871646403451832590286381871831033306399982590274071883134358196609815987780052931934404396211942882598711787540660545897267697241763205486556292732374940889117616952722108671891822330593722151195450987223643512320870181602190831788011666255450438061213872138319928796112196800636101679365138336514148421688524572588151245102500993640651490174092570379021581391307492985088982116680830551461036644357714966944357925903878478432252663490656273991387337593559880952112953803875796081145539125701052799287109774026781712817480831311151174186185249081028281269218508950674826564950406139899853560040776779026235416602471554407422876146416582758914319561466398313781313119816701631740132474246989882208981546228992120071151519639772226093552755061125014391767832334872316349575975356878557591695457094464275077858631380445164372297956409289302914961012485306781201167243641742987494679525541434171408896857698455956086177313666486315079883545214912813066381429573122391502146398190039777179027389416346808000387678272788460230987081790079894119050617426642353658250011244051735557885803020391335136343693744609306614169021921674216612457648575806804531248520416313690765531927364263733799107332567089246070734833437961294646126492707795747136632429791839826315424093671077718315257361085370612646624352038704011424729619845635719358631116292937667092493574837950480813714595863070874419949839191614392040934343056532656201400103910092026501716413029200764223792320989202673535361176524121743619772608930702636674844194650772816506157027577767904943324467362901534236315038763148037686449340582927281313650734402829155640640709039973055438560943099723730250081061710014287009960242816934007153944032042111282021189073184779303009735153435956100456464706250268079334636603384953905546061031879611310293020947545645562370551674353207788079474643712205750537431431183358415420749987252316451820770648863798585189724086996107322846967788539021823283378392644298273806613517073375052036028142353669800713003406135450474528858105197471244233602141534507002640885926495570162973465702909322900442741820499848156382148259066151104040714428761965713177326980109826916758094296057698852243728746801863698494250267364259858995230684273376962286556925717632485045068996029478256224296598447792312830325346555183771486095886361501525632431909637303875424263518952173142395459561902098211957735076062347846791696429257307690702824879805563551224110948837364749192695510200961363538479663155331246591432909454810559864092527735306986360596419505574984765795797120448618958916504544675506772907172936205103698790277592018806842450412069115200690922663239176701374943506837700332783729169869379752117750735789125266553129123381844911203857641059202606913164680094779565546683134419660607795762381245851974782676544238008728789107198915503661131380061634902832742813643007803018581342637170917329487555127572328797379417019511356540028873054657550196724197324142594830719458407358448880517840902973944144609089695158413641038521061856825611176088185829488769915313167241863632176026965369160007289691807250359693933455766261027893699659126824960124703737255322435540799434759007902801568314009875946014812147992961101757818464430499085208194022755421327849150129700505089557113826487094456220035926111571317512636671090736462254247889973965218399743578977950247260767650397748321631664030697844634359684335259770009542382127735828915059404878017388291192341986307625437695902596860522281293179741853494555937529743755489835113398781727020925212015341059188703999868953588607157884271391062078509027010128053260836899861289335286293216660396975400796697014665785780796081834180459093767464128688354282291581588463119249961522360881432236138778188071050278633178788257538473715421781638839872894939017811631526511187370680373298276321807510555090216930906141144482570037025202188755703013800838262666621589798794567848274836429887991691689597435787744822116791539069118860035650672410336951946334099252688784108030443019399838634103304152903798072967302464376633530798138704206917132077139961801434230253699508064000294323954498009974673634361251354410386672901211543214585891243118185765986950809744058439556799908819240415228224249143129699083885928392472682143377173462725121409134747954422907992748273244134821176288353298178920064564695930048476329269457379849993899840832083931280068625207882088603267893255104208527304242444402195563236019880419394439785901406884806510007315640561702070363809212930372588268556542632080633867642383043409639383816642830728105152888650820676280379813068998378275336529377789707968535191571399249845071585079709075310162877139879106468836473951337559407000543688617245910756538592019111087349082356007063299776336343431102333968020823012697239513993384407528774843631320241490001835882087338036898253533951859284449737458931876947112818583130642270726062726615868877101841298037868603198197411123742564015124908585966953776749278934937320131743561949715285840373377020418397723608148449830167350558651352229810892498704378552868119580109758983650910673270012389412580161171553427491468213153981379759492409250145643039620135802456744075737168503762474030606722571270057596687097889315244026082873894636169305029892974457860445134643696088014433152712515735586038118531498138852423102776928470984407012461039272366484333215317096125176810330195378886821890528036880970861679462002975019007275281666972827591790751409296320288982695631480113989113444576596821242168156960425699899698511836357847308158670922817330837681286423341471906649384044881568890222269803251261081131830544156387050233766603225355216624120782252682761020214488310334502820602636437072827478421801812149294994084850958471120654885510072219445895943892197763006727132364282125807291300809866394680132090247568411301591645639769261518503831057258981619521364883036554963182124457746038351122357455086966713848746500678873281153316977218878821396381243656829397892314950956340353382717073650227033175627602954863109198302117202600866845408955901738678094852011486752770718059286989117744207203165563205849001374831913472674652965360552731940651926581587515253549793471678345783726587110173392172551360143225141419279514833039584637604636962005207415060680962356704362725711303419683918991201856418771739997253794948134768283232181654802900558571916097432297813956805363632571300932874660338880798373522323572320980591696915755933595431690017904452444467531572557606763402305777896229695282551585111245388436676639999762347548369943046865894040143378241297189898430796574893475266162636182868502547248214189500324264114566346765886503990200056082610975702756007426883219552456068919538626524720002884592563135810118763980350219317043689894597513572132207140007139735552304298869612592378539304921005804763793810304538811851599205621380306498932587906840015603529284014260044512432215395883582745555631619530268538426252544963762091432856770819270402597257643690014488772318848524635580675036327588907239289813057022653914369858743559514976038238614939527664674184800586862913926957890270029381511744594560456886434900233783989990532276008937564844257853329069290994629281463160671552878530796362437344394102193594069214854865960889561751945450760466574213532076617960166080107292702549738746469429294870255984506732043153623086506609999559937528936720104267228390978697649774390483034424955498660934856766075819937102844209807694130725638564188575630537582986568543760653223876946918396205067741197916082698394926387385845387584531858102374136511115089799205962552037067323749852164840951236233529687211387365352882047720894732466130739838892766139024386755244162368631790195700460597111017584185460132521090186103733261494938325025407169814098586375574859801855660672497015597974221983214112827667460465592029865889200273227899973117227485120428869139561940293351790882185246437854547903573795796929921751694771480424036617677333603001206268561941170020286901133694454346073028262500973300270007315536183388179589439568152730562816642562957672808106210553026054088277542596300386532625477089656517593821936138387462327977652839912469749279315763748401185116060139203494096460548910914726608693542081634176392581190180629223202232389968888698098286643018031452114806992219154510464333490477751032493052413106699109554939165503983242790234374572144016257216968663439262806685157657749281296381505672676956906786833556673781143395834858593405647064817867973222453563026014302176539931668381453215856560438820820430873217663200019585786880005002781642816337786134194128337519103238200838094477337552093762108943966478987226487520384988798041523533450950243930676517239503516880164156573518808357922270082433177120041333522274509268048026369791950801918235867041982750932381965574782645241209903979374174832285705843248637628304547683266463016200779520442777313098496917441061354609445305333853693361466960738545414981256720389744764173864113614603055046771410629991788279290302762737211182776860545541697989636390582664577538529430180935036102515914913170965525491218222364731257759352677539201178108524679640192601527671519376361606694478213595622138587900746250597975722903161158471613127483953310332793507361712179124682576190601861071469719570390548761089992214611327847285907770658364398660653073554843714276430914198414751618358609460368906586748255747882437857194040306918028812543912379945103796426364429721924951138473787528978442712527046006009595792121207809593361093380656688869935356133683959749105100773521669733184527272437934448371496611485134685475497866801304391910220587866873112716120642106368722893715099249856162782241088244010741463057522061509468579775064788899928225031811831701028863312145798724307857804910225129275473085408789236531122681362191011402796980002063578137868985197339462272272064419005925591188671505946145694601986475906533332408600279312582367308972447537612543751737200072226160497648996711484583736464507449569971129341805897380795063334380661253833046537111835320446014849328689125508101350714368084283164604458423699516292271109761636876609962656176374075379081301608384675853577012672350468011651093825557064098208119611035295119306553203999981607784001131278947186732113506474422292201375245604167280632254212920802964980742463912015871643667221455908076082088988833959114646934387446842194523997842127447676194082778967852449269981208006073215355899802397566593803463200689114148879760333481868415171096449521702490640062376670875615464365944028886867487503748623560105867221391727246115291931190880330544031982268921459369190236094799295214301796659083509026528773444793996424616370918035874778214705501377334095891774489561600828599323830941638712531142481279648232659530864940001468589982746812998318065065560145660786530029064173270539187031461041318589098793914704515126237464080035413480107173296680676926992203413536065013868070682266122538864730228472044441514878332516030584992476280609942281598786765419090568810883506398331553013700300062122421159906244943972006515084684622346483420440559024817708908547266172144618512121231874699829887324607240932137485480381184869720863264869017455992535091103636004390490221952444944093315367744718079911700655269905916255921850419443745677579676782515630890296166466087464618614086688537102408723597661734674331145107943363209521407010583952451882872497279587152544142124245197632821414288789871506103511244588050558425758959371894629734561151487635435457805954314331577964370931353584150001519762326267033547070345536141039039547183646869277741981848523562292670848627988911268725386387739164961267151521012065755990380593148062819142695191539784018152974926848592440992085827075928080733451475232244897806635059329817653145639607425084474735355956004152576863774844950230842306011135407524457316789829424506728568590938542333445787944796304518092132672858526780715514805439249890495974036205477445416434668273175418294388740053794411405352896290751359660583044262034118120669702069927220235254067479030902224556204835433160393049251429334092717058457997462210556901771452373184028206775076975666242923536802838662967002572035822511386856135521182748607029712131480695545043959340132520821311361153961776897483507610509493063768171462569962754592961495186856478101681875503587710520014157678300713245180291413463066839926562749944934035363685025808827010101773244809324487320068227315923682825457544441887938208710964266488431989507353051207144546970645205602137377826052300726681229972133432926908029961299731764782642813725951773795875946213789256128036660106717333727630098354497265456574504359471087615036446540595373580229021087231919557547966614164342229687452765111240959114757562333307052819284441692059899659998919313629959265535143948919702617388939823097759238470594640917758451661080754096722809638276986484088616047426770558436433814935001765796125576052665253757035688795053103752131177886546655661514509022210763641896308822276397966146768061014355012442906366637449535616295039225335673675426643291443030828356191696265275306279367972709579354240576840033447121897327520801222741192282218825507738999965807469496852221982686322806374965679901632295628964217880464111603935210620221076671092228728114255929538877443441818318169353228832732696886831830018165647622790326826727745073310026375424926857840709614859322039042505279327858911021526471914695770893769271182627777419257599638044001132739508808205512202016818601183812407028691278934981656239059753996925333961528535165130570757877333433487426704568054221443446122306016736099009313240168619605315915621665740552284479181821282248158145951606134970605112168584952306174252367879132796371910860477204117918460000980461908910826652722818266212968100185074953545652400697830368090008780277951582468130263533107729413857670030559771963583551398228878908390642527243687698084199651464154470624198727415930956120179543235099422688862090415656042020210795644016619209212542979292139357306538750917905273820743915411828016325212885029448661552554274546171604895798349238996276801788582977758061658124582002305288943540264156113861909109423600043188400113289935479674073921509357551078024159989229376014473604711279331045776789116208437161173216805107258156157694779932231930836138748289935040988402200107378691600385588627005420680384548184744102523788689297191465095952948850850887567940840394567600729570125291562071219909222238410473980382351108586871870466181536559977332742187767478279659817641397408864458408800939903703824256411356911824107251968276090642495260672617562995055266534275577785727839076932767968548845942998262009448709267865736994289148721521033609537183963917701197369439253691277295076491199573094230046371719434137685302593791884695959819473558654753355721698715390017142630099776928408483756098791311081540454134644321640916158615287716656146324682304478826209166904352112868867751793562307089743030056407435067061121489728221038137703311198086921938315625566624643616750695176241939152650012793508050055385517001654015181978691837503262673572736572646494912075648359910599312925059426669553980950023469190510213252604806607746611972379499321360397262700400580402963284272508110326447455014966139096495593744909601155210611382236508051661167920201523186755231042739250463097529956272052501079288859550229268818735719001230730473379667729448833150582927468536990820370064481152192284790081005728250231955894028335533717129972960181830509305661965788190721967889326657167671472647006019623655613146958278337542401915882507548512507610220120588874274371975816015827992598985793441983334884170661505158150100944452625371536063820590736228840156558747735563358789499133280803291539612621083030207394165717333157328271954646779200336295957694944029268957782112704487401536568511589504457139508959658712288481327168106575944527836141753207118397652072204714738938464797215788294781360291363186676184750529354012784486156202233615958631425538830289443122291987037518041271939333556600318762896083511562601437843635666641298427569206387579245534851504895993256326695348147009564249080827918463298559762850390101450099990130083204283048758153345231495149253197597959043354360863906149011476918071942043067896687024660822575184152464924653799717352666333173992149699584930359681375168833985169243305129340325761388532845833983338378157152323306241167060959895674938570728045867235789214505249500266208397343834071822262467392230995676200014089655279234669500554547856239880861034150616982155585404172107317912515350963378212330979099571857830815815599987102219507072360021372662061949393602308141268005958844110248230303667772550921286272467454319028368459656317129007477280512576973328211669848209119914371725992106702274851998776490328065353296477480804457138164353628590643396176386742775933415138422711565657047589151742675587873417058345383373027305486013158690455374714289463462187108542091407886701545465617250881162135305173887863513655121425565647252746878059781483210190051264546799644441727411203753027836179031307503134663201659566491261658148270101369110018447521615775581839570339518978866652728616669227363393341695926078294015862199338102167932856951764299993406473247284922103402314389955016536948119661192886587414865666680976263760170948005922672298605715847224355820352699752582096804161111956866014667791827193125514719754089945589229447741354175949379087889818417729155855089601328180698768296420771788318081324117785299298516402343845153351490304143063603792336416827879852778348482107433434807720228855785232267272893380303554681850025330573915105124761479260299356570128854613742798326356935375385505058735564999345996929536639130717561007051642453131075596844052510195315577213737952376370154662360191132811587125300725852578037632472907177297735012589757843597998657231618171100447190310761667460586336636430943203957869256243839716040751626827109728090465895512243219508606379439047519600464457604760070846489056048979460073748280493839707070580878229853066132361806709697881706345024206935738082204214403989441761153213867873355391897079900897812100390596128273266158738093976650081175835754630376660157952628859592847241192638940021368458572814145908415189868267462353433363988203145569613221582765862104551531161708874818545700457064775730237492276285756631695711714656371711079752952412614594044313392279446780926868511343403823188082392911320519836455957385024576562752900853888089282064509167070588182470739811191701732974113678834385762993007228991371924497664306038559387168983972288949688467511211286391998904455287029612998488998042667037456803011919999761957688537637994215672572804911396964672489543937506312823562596946618448970626449128303116758465185291513740184183635770496519237545294988359539902471793629615950351106922092984310135851028506231122384491189558599071983018038635935328147829713637228528464881133542179402702575346178374649027698626362323774941475573244902546922552529381108298696363250316268109414646468575439293888669832379621842223361738987986867306792180825862358282162111700337689785740722034443871785088116516611113545181551028282132350198007296299796421028419190486068839992702064374909229826064357452215010213782521557719073411781180315120104089492630094075976304498187584855872841464817436943573665163047032020485446771259092567639393789945254225521874352042783142584850324626238289367674489712694205115030715668249010070370280720394517277199271292628170575423339138950445037303916934059234477434383028350820098304424517821831156653373776432957757037307118654380341535247772331430858564474283294616694683984828429221823498148419230905498341199006378146526492318054329709559496311812724210867005340846977117814843997946419136199329691831628034132068640930174024323902695467677784364544989648434651096971979835254716958632636233409241344635082012219715508057687341387442001567016920713819751974461723164111156096765545564196673770121346012327758027601383697556948512174145406398790107652444598356002216053196301413751502958186406088889214276617109733461547727387098192368545417075298869940778445868459098368531887721111237039453378049748667116492342777846881428554756656359714080958136688890704858228891651248432899847551047283509804886438936154137575464077679043229950519140251969114394668962533877902757360557737309155008312155846444687420999370190476017367156999226593028426368708946871038447692362572320427078101380553306717468458678576406243483727281270122816724258759734223743178278150154743742620352004635545178984998270347828507528701843041095074319597497227036217995204439971304542619561736538172985531285536182082651682375231111472296914272164244342510963927864148271151084726028888789512785527124257612203743918936021767125539889255126993757631141797848566418543790078842018738135355732746939249478400592242337952190746319631799250598593589829611496891182718723596554132146993645369697740448393851137094697263341392678688355582985302255704291743951093265323733012784555510733940256033269813395101856504184737385527248420548363617182960494876164622878754957235473797709696832028757148847474690559944516687310243566820083322311206499686618108433837632695865505454526755962235263827250604960406783315892114881490468483563886465970400855988369719165937987769029680192314682031499956322578395619362590192719994819472594216548141972290630170128933766103259089919896755485859529026321012264192908775834925096019580852278228066270370170161960335400149176491631855910016461003971554552944668205210225794091358156178682647797399978429823675162552602875354694892130562935201118014185649272779147576952223863616248380893598064308983267013737987868286560680889218261504718427426957551831239777394173425417744382367597680335328762521981847362395641690811762507955446213399652986834954887681182399553833372383817524408137847976428954027660815864649003991374982629240678277375405145024111967565561123139324223794222155457142956587269645780188504261668299866636084195390696925322992786266273748540021894245602017679932870712969355614746388489521338862381141646616928784644385394000578488427776660075586225534106431605182706141686484832326208031519674493889987253167598392579114249506126227235572380591056601017662037908092452351904951100865367278977614251767459555380341464019194982866969201962890210168767622731764185214452765683741928708374932476859942584252920384407905710891034998868198293388602118988867359266534074699844883964144329457947810541134698418153738744453499438153240098898583356118070997406429142063941657243060860485566829644397114119291684583382191958237207309709030602621410807168653148340996815199619081886003339300373805163665193862569846826091849838949525206532239076062662364893970468855164748149518599107175262082348911451896724731142710163740337755400094097069027629943470524133315077568524937333125327725799215320344586551023190183659547535604965844307414160777257157579753115835051509891341973050789813285124581376731374863175507062447215616399610783161943267986547975875492921541877937465950960957661993438433403236962208369619783780348047616556829052335993805886764437935982224129221229023705599645855672171203219370086650281651817768697598190398539612779094813912652085968104957855908181239313143429153766817121580773872745725598284815704800332289276834196931126644965277187730006879450027491341190067364854003917844964401968275691726303554248821388995854541115800397186192938084386746376464383143071968954087087474050949649701143232774370165699375809354077331803276618338583105531433875831669368903186121299558740382189063895998779967394025120227407605108120466464591733384716921734633049142130579040857368861211194861857487164058880037423261915680259082568141030962223402768879756781280899356134682039959372853756269034790614896571329763445744183636346154395382988924871299437733721280392821858149063876116195160366845094227982735234499629670002765553326471421756075701287602546916609500340412469788297862586557550936133002720501351537615628682465062286839409597047620782996401175182318818025466446568927757171651378677733833633985883482176600334027063935427904097972194806816759821528150957259785015424568481841067925522757874434062907928482030826169883954464877520887320517689616592770450487005710369514999037179758894211336518326506438567314042031446293149802992970527968357693020442630644200341004197534125543240834967998840471181153339218675784507367180684396135161658970773186517959022733389196153752579106034498441180143540303223641677085743056376837327130829897980804169602777044482951632962345878674021619610887600957210555875126137116647230937133717777249207911989228460107288095452635763414088937377877537730772605408433047927739932311928768827112991174282159309138116038133190982241861817851688134541922279458599831953139160120663382607437621227440930788841797669128429451404945635068256398052520697787209580202471980677875255594410502491079491787844997139616011495300989913230507293338201717937679638592089037116761395788438515224293071537879312433683635815120128101853931515163078865778641411851404997051051003166928097674736933971723092052249999620979351659372100078532145787694260281469588582208233179024283787465805110001190886369178977922173399361371140756279588598367186730468180242661044263684311468377593044064975227838596556292288535572878041683741519728489933109417765152443331747153063926175432698454015009952798921776407319942157259178452327997950138102434534132131289179659479077135036179113541581005730365825034235115144872941911686495222733185293889246165310141522644335691547401719776654471427939839027673783296285892717960777878924121369524679287164537841307257076714402079715284609234848491483518995406014523173602865513231134077421419651846799435116084824736464851978061646681159899580412806635014305337855494963065255300665351347260511743577310505096492153556465989450039222679290372746571614582889597573556241265112561818380549107896538425435494006144354814252746726160834811874626908470542796048376365255637482721703009602653191900071271879397337211086326406281940936950619062731051309092199307490509585455234642961065593750421187448334404451834911947408058945432099212080378138556655053369466567089126930157139555343658920190529911310128449519823022387735613875759304874457167916233556909783030993337546274631457794162831134685576770405596103734282976601296410075540334564147101754286703573523838383752537351178420026354535829221961043481301082400759426021133208967592798846679345469380290231123809165230935470031875265966767118299150450887113451883257938032380854615237730430400306205516801351134408975680884070543895199234691711237985434456287764529210785143151997162520569351326935295946650692204654653608586529905524586067606334264700587313615779983320564849750861113478477943378261836082171076118825121916656992988173442064057151119101527861108015681008537681596219361169234680011818573116384094921958956877046726858785278995338219065714641217900431292656034642069548739641165164986412747084408967933401500149811021513601085691828366858770931086393225417767195535642646556267378239805629835152383988705158222169456902923970666273414066420721676482256819338712734973188676915512639557625643133155499563790352287232540059273140520731414196959982543426063631661188057472296407827805695752743071112521228260440631124897533744660929951758343351942268728629494856812005527254936157859423025681074861100185463915486931413931329394779561005551231157490678963472512507394461846928336351048067619742628535381464208174636723741951544148788161080211605673558932700043192832845762948256416128305004949667094883839879607636936930516056310433786362337010539415456191964121301612176972948639145878830110213342367560573123382643337978947111107021330224902094937217547587246682453610562000995458313861493720610319497601258395703671019439032539393891347044334588873468007111219106700511654834493342758138699437553003137012759706210876216473318508947132414132281018903950879637201177393669252388356456556257090333715545457399578052535728264494104531772194498230224328819672788134695495531261151975677527941033665179573002929632140567946579071730873950611546661588296581936605879821328718031360073356859752364442290359093965962206997592111343115440859940941246169152916264765313238833787143069320000021559178533985657624586557219275229894067476517925209080436987625825824337491421055363157842818345260664542383250046834887784022967029860648319450902436642561119814001798783787440666144611209139942869671578789994932101093501983756092529006179520906123462942056747017273981520572958204333182064428605210073491014461993985205580627125845852500902922203760710393524248118265814472797473969515830412739116229654669419361723048954024089572712680348223789082792894162660788421871075429943599698744825105626649350558561479171724998280179663380787531978998920185091617926316143691943003443619395827706297382892130385257861203296927226225353084888021199716636051958659783750163264732621703117390399763261348607957246431504401214896903805236100577414680269710081960338684099306356336981859915342847213815838245953116528702346731506200248752455556519356927152174212983010755784016004047109094029667623746187126629328810108547270901895596313006394787829759234022898383116234262683363476764555487345905458918971753097340527788326094966846578715846527867009998492679426819497048701224232136326224732184456655096905535138195585780632940151864430481939403307915147452704697362687033601404562466002597319214123646197483927016773317685663461097991477643570970657535415893305879313580669873604269833856806829795960855633102300723353275272764554277597505551798441530300898486296039056028625178744857723198253648472543369815385172643020421029572825991191363955754425501001316650766658543344634358302981367295617110265112521793982261319941091830374118520571636836545221477047176820689390182196413531032212984818541431176576124785750839591858905972626010723102407708712772021027097270693661000482644175580378473281196294034421454396149020830059315413187478407075333763256975234037480230577324089032605726981651108875017963501968196999330604196156058819618980546393158386157142948369893918113828432552128655158379707767203983912257420148066305456320967068102637128597221728732007833773249121718892725885529965211715432338779343090757763693228973384531205629825899594410256179744508319462783545726815435414473817135397069494159229289254640299807479950550951218783806126631624113410864229490992125095956273518721243271050693102752843428094942593497498116156605915887290269266760384054226819359009560807947942854841155746818558435249562940597692237899320272841350077620533457141996076503714950467443198091685206687271970949879639755135130562180962461919631790803707845020315533649304566582797437652107158679615829665137005291211896874689286636435647094896592757550873932275432491317018713947508099105460511493723201263333104664183700655848352184371226048821795996874577741052259969880119824143026379975419972185039344001963283890622303233961434864567997005623749333333345048850551592223073708575141591043231075560292651891323036236273696080798199520416417706723878520156204406625398807936375558143878022955552084625726064607749772983920405701763284819261395150368342283874897036862245730978158209904351972604846087735534594017373162680044029512764421877780903230216058845261927379733170498477703084860187260782205655672650099524221276709542989623349594556813378940698526965084117530505743358851221730368741891341984420188874608482151057982294527858786749714753706780538194695350689620495266606470151006595994889625657383849890271888516657935770829078478195811293828174982301281359378221351550182475223414334444601562691248695467184307957361120936423216806276122344829590612522425726406374562218012575352875312495566571614747202456186937252045170598130712958269822206190444234105774969236599373684564890394056273258549189202069044000912429918850191813953800211924772235307177250508525459826860192510837611073020935689191492405802383270177287289577704520634826131886215673055917619539675411908229992772918678501957764285201587897923924185064939699312578954637656248338625358549371707913051467530886880397427675499041328724875069564699212636505059250155633235562431859843426753924267314186135565486727572470897814585306698257879241499289760741789689590860135092371480802308461634956003546264269116403576568903514121459784000032164561210773218902079954934547088193941375017351413125147099743679275649798461888941137818377493470520974086836731461278036479424438439844128792086542373923809417755385876516846576100984234662313208113044528976453621660410179276775295626346020166244287736347776875582734840919353724260341529784625401156704670467989648245446525262481482862206483025863666674963163389634734012166733688863445900972672502069985078475169636966265262658800800613915251314760300875580653700044240216182245124040867397475599356916513144531526632782967091410391366353777744925808539964700602512309448138943391656756831807198097992187705437296966075262667292850463445381850425549680085485974751535812786884823455739365265559385919498140250483009089214530086956875463718120544455431883298315840754413661401656571168392969496274770511391954490101151090062211492963434960561318903401383153418696179579831928145496748525753560951182264934521448020653184880304639272766842765878723840449448202486844167871213346814403799012377882397455113080010362690065964423526974825976351788482655536978788062056716323593119783081791132167973366179879154201632782912525153193946891750732961772791824030415314143023937271354720791629103134867141991863314735056552624695483807087848880076183406801660563225412670995604113976141519194649753242584080452545155021797192746074889142933415855759785149398925727328491739501311609840522952562282564974228871168821452336779007845986365403645151532360608463239505036264998657830943224164374836319082734465057692673313244224100592601646362198942511084788091116412898180118503331206402142829808853962758576635767641934678798254071564534498679506181135532188539567904206463859755591631154316823990798760939970865384511638521883668790819845100016100519037002134662015747475124777111122828625772029198996439221278041044300447898841717082768314313986098916411789333997627722488964466693906578327140329037108365843937379878091079560351132100210971128660007644024654837247746781752603997019524688874471279974531241395982919602779092416745561611709093328397455829331303232150830901130172980883079180390230951548416551628833591763212531205726006403953331377012275098639051312874766751176895209262921446251246507548284799784709791006086048164564086198972217267041646364887337596823728123128399276293538389894471039874925212443186142557400638091379145053115186970769338571069249419083674628261570251033848140888861830505542830515672768735348602748704541026631011407329937965366136120915769126663667547050247323976342142858227369109986710127376270047481346552601168797181661518981308688970897143365017588238991216358850146846296004926345109037731991891402194793269882072266074758182329649468662639377726796167478276987175105080094223886632949843392732022141382230292740722021887316924272894073619176527564973600624247273730290331269752362609877587571713883023966846258628544482834316523314814530563450663553766008591246614913457536139626480566109901217211643894544152477200520883697491922061480808772907351007251208063852873137987666951872806590845047628719569404372606783893907793772720900355923925011840946213641120895011025324270155392510525117473127170401591626987861085619578079508983474156738878658473713856321794287767055653257884541856001751390898749590279944576432185223490531399216695573603890026755193217432532842575182673832277431420242365466089455995302150676801921874997220506397801447089332065415461708504691079759374361487271870808733031468125539944076307494060078519381521779786635208504161334917407605064435379438520315129332013952281750981653595066335956241970795483657744982534014179820374201634771401729656415669684106648629851906923776640682740452807291714106315134222773778383608296008675367860779332098039061444629716082395533645659455389165926368829380926483294732946967736192128774957329468313621333226975627905842960237444833746829509417673264279049708855884255921043765303329178920341913528439638982886692423056331518340206331749501936740647294794215127205356725539575776794712265141729375388275150811552448688898594223727598544870494134717806300817124511017743669333981606648708077658818349389569116761809691065087178135484694344054133888854794111505500165485101174013797632274995687239056723833525612871978812783899460489647010217889067603915736126606062585604553594460117384464648220118356446878567115781868790603325403323181218372439515021580238138076554774436354401100306829065825461501012867459692625390110833119655467795157525942294645214429293737061720020281510993972436821149960880206525755615988779177766571972892319016970545586680125353342462005230378199341687845986559220328067981972792485633623625163037716656437182656389893003327359917690075920469596569701939653312094607891749896430146366315198760344436626901217405312896625915945495073932781304126517578166305374372415769127480165827301462128263515462315952450816657490141470897158111583338917655990385266461062742330219561767315166929269012885247693696308603322566250754444817017372747235377178067044992527828315501911911744953035331690324013326042954968681741678501707447035577456190810592997082728972535450451731833933252770507532183460273999624776367270294113799710195577453167507011207081805595110784022869655760106283837592138007341498295493109979323576217206878513480683424130794718721026393776429612717764006210911214445474548402941986850970261602085612095169810561459351942673625424139791962624013310714344210802119092178744091159672853345561833480261160287545636429045986101469081534491592039579570609268583771534636924956693762744374297045647270445832874394546187534052889876949936212313163392779062809512578461754459567693178727098600305594650421972560761868619695510260627618840179507804038773569966015255926617139274463047010986947932695161805652517296428883291280633257397354861706281308411581300314943493118234663225112703937706988852889117721748739204273553941440038580928785741764921846906698561822294036392998500542138750272673647725864052792792895886843509649955315037667710231478218029379937478551436914826147797523956209752925692131100477727243030624596146030325445985664801261934196842941035097120266338139629571959787626002536144125502073693728863885130608515236585525720474446222688510154567194612376381178727287151967577149268818784832489948678490496195796314977647511947573131451715493555217570599205464225858733214419891820625950686225773395017095639246792653546708401029047881944703809125126798157005566318790153236782821176139128188762476173996274791060161942660607726039468785261063616181015296860024692340880222046595857241307192085150923823901562318426325101812882815672757722849928445487359104198209269920684014038863370183452652344251071260642491480956686859679684055982623935955973063322087889666463401056066086404874409583425716182094574626113324127709706510030699733662916654939447733311241104350542010163284061302786557502597179717708751740752853540997040007773930503553270452692872690089633649734839408190544817709570169012955675856873765794708898962431045243013471805898038548261499367051530220387161799698876313174823158065819633782057366000614071645299974756677195026352664828145521382886883458366647874168998536584457314965295977768144485150294709360951811240055548224232469482276840408616477814869616778951326028057342976459443791520969242999475816729108355192029760602559100632596612556687738619233476696445126553777619983271713898243503903735886456153827470683677663689968714032441530475653718024268612079798919292525869385155399332701797708371163988047503613803670860553143369464234362416546133770341612392748121539761655241556079507968772946554417829973053416067766629626805643912481171741716483667319972141497880861116187592510544172787343911490455832385097272683093678979807425818239934717628627967694947618571913657749281482594616274554121223059414540354338892548663803832607557938543781744149265359072822326410604039833451818036908174617323566066357237043139486770203421068683113397862056714669890795586444761811694723594698287715378089594184323952204951379184534490657905443812577780084169259761004584229009330561986814406744143024334481670424489536688640121192494711134475720371081299444085713315732313317229568364420767970506708508947956221844531526129876555816269191885081590136248358617619248204154378373895628265737286697731941021883998421345587121740280603953430984701831692775884197665286457433379998312951348959819231135631777813681535676735037414143597127945527928954981765018454159757553629890382044274464721579442144791484895403103825730981780756208160419980988705204272906769082348894739110350922502320761265395624171966711338218467831966638327314749764731509727440348583807007943196320117167933534085077346669123924458655346086676413583662097611668073633920308050905441116463435675980245649635876453079522038355456130865947204721670875327691018474742585242485680565448734455839214946428816673913011360515596682556751309813079942881028583013107258512842863811972373471517237997250129260992262740540626702679322631879657884116062981247177597506163759141507395543343547036225420199449442600481330983687414673609496334662382705842786769858148607597494528262309930981671401050671070467839938521183142203831841137757072052464363663828245171912125509401110185377759451650262646456604852479624218553736478631504708408978858192478023872095609742754506141890566756458679636896363964312200295421026481693054508333878584790468099059999934865127215282308027597215762119261908347230956796362380436342150086626386709847734907865903215170935439336174155195468106538826145906795745365659478893014546767942974478965654549605282466566179406934083727533243931269762052193918604471489377872526579693656658360555403936407834186504365086131669877054490172026087560907715696783420030550742131484260479426227323564369582048476565750725547609625757905224654621846755500248318202940706628484326714175066855745141592728086372257246997547825459621108930502121462872430165542460918986915900586851073194446918777558173274521240091440822096373926103842790827421343445167254666060694155193797820127221147531754639257057298051061164194597501017250176193034784417641765338552262332415380846072034000763546378732479584758638495137294958314109310779061292489754778307768125933205581330577834436217310845872322928648770446268231898319992377931152797605973047089997462769058305599350709851843042263220974659525727082153204069372381818328577738476937797741993825394530553922062543393250245492300375940149771200424773406672211217668075684193785011867694764950079332749854862855020998780981297084504784150618807314502721021315839993834020592976758141735121900293352449777538909379468334134161461735716526792870187130646537336063148322227914448187368922861204413971903497031159314326327334226767170713352027680078030212395225738406619101132721871830644346266406125263409684113090826064017358647543456186224379705575829753241947059928706285113620244749179519812506722872131353700767813066804673045500661749966643465562562445454103256359085530367534657988186969979185645104566786015381055441014175447786033641541515029906427124176536967717671708027503183833407603556216546045900132848011442071666039150814002631635101290134044484647612391952773812140196574430479501646987005105253190619360203540499467131463432425132117851719687016739455563410669152867352354368086191568947633735298037040868427613734583886136030478596785522616686651341619028153197758895924316230912004139045643823988296480444022763341780297922742500472348862508103431954211405194063819076825371549434844419675320101347367994648017182949881622320148005464252010861800393759571773716139136134883159666716198188362555094618358310070967628319353722526528211443095462240188975021856749985566204662392685207180943297877212068599779678346844086269867232262985010020008190136323924041930121833996720012942722652691802674871084993600713791356150630889973158165628932360677104156943386856442212017644494924656818434658913427346410076672557989643490953956706868775228114937826517982534722456794363499135617805681308081412782636754664265143900051692916858110490473882760950725507968304507988230199113591531389340484141948149410226753652275357408289987671753132701911149957621090032312004631284945513389970093906931692812843902183344446447203400848450474891905882633086865746442598109106620263260669955656926585459039951883388022213707109754124778909800630638032673886987475220122572103390286369174065500596586452377075089552317730223454040678645485294615395981107246225750871033549667799740001991825541196854444101502114415421003821482200337392076044208895688599815147713762655060690130859151368063577443078339959289517642693809076905485590400458995909348950005233732910033362810246183998503765532354437994577544118095640614682959912189248487083689929839101308347742201519882125182458257758082796519508041718886360139831906757417042876735820893763903334601857907795510449424766059492208338263359575530966761901311148433455301027915658773207784572303384235410937440281025505137636145059263424939527875000633082813216686249792840522021019185114469694084818658857156507432202285559953810941357891051236003360525899114606942714364266560882414583904409483736884144662648907366913391229432142192815888645976516302951706864662521822929682822080893237857197141172136945833481902617617112963945362219538506772460389019062114041673383077751067812589163031826995252830706463516663950447936325002572294919457638487212433374897761048071124854391928462355344249429061672471679932688335547500909397958264043671804632583294350517511753485065705065699575216303561770246735572060284459397145010987244647916749401826937819788206070211536360276328062379567392973495672686227045353659864284262577971501044596898493331025918457591085580479063517954732025083953077971606316518956571798391921337771253148650512867398218559362642511586549746026103378686483749738667896786550474215894418075108965823480052635203622768976144289295833197124506835912916094732203508008971517687718209147161122481510004184603569745476077884784173459971611797186334636637101334047858479370668814842263413446388084386654207854219893679390037260710335001201543971785352779268758262240619331281571786734637914813891623472038815299177319773387654328317145888614039265466753648513788336483019699673399815451964551482412167121442873222573238748935084897918586856779542773910829827217421268826062072346796737598391154233800581503019304375884484594838416105216051927555594816279994290386195268178639998968554013543115706384545069927108951135433616515448383324133828848367750928656914078829959994954824245344012012334437170989926330360421584117697912607315150670082402686210434226473314295850731815934436605130832853369153356275309890218057258241035760432817474860004345539819580101732957516870887787188496533227997584096815744968365763387132950855211041740582808709710865807920338123670773061073488683553299027310195525757301539618515456132490198772783763665811685446007270297962111421901585778786444675464788445469033770804108192178235300353855791330742584694560479911543033159944580434420036184241762974271679317196688623544992744648901988112472052045891825630676853951892922339184172274845938326701241255158421990711506346636695242880059399932359245080732509859289781491380318032696857843105320196747854484598362577952889714432534576718099549033990250515393144438852620903639423260131024107464629608345273469400122654161051052853109735654347595890153274568068771547989202370533475299957408517935460281987471354779792914556935063071052611007590517161000786447903223445678453810315371031712481179719130591675414523971461746302553883985833187417026119741700730722731516640715823310493391610104259103557015416162202243672398499807148394824735518481997746266611978752089285154581227492821313490477571432171296039438434845976085130401267617679576699658511105121857582905851688528296081082030712157579386254385365322341927916108408241664957683558108065440665849097774220660951821950039281799870932123586247603646199621861411796286065938731892214089941536269428916417286578631181216400451408357575791533647718529582099581644074551858468894631812017547513014639858410387960407368269877534749223188722064890996049283464930706825036841911603864739647752783389745356158232251725809518287465587690467654005428858257434826601870822814958815705171705311060425072945259815657676654440022183340146649045156116113164091912556200777542191857617649488143152290444900804350683172924083207125605527479883738937572979928388929416497128566657677978028206400612328218478656151989047507113614438418164254975299770982827694091604377016015570368011891513787429815400685431882537322392269044175890333182316540668371034501318392559842781678031905546011783550796786840119717341728289450996699858290714858073067944485456835329382804360372105204568092199740131078576462371085287202147331679289906565553004154703317714759077961206762906240437095098361794241327504011269234678309372859041224830115557919734385866209281684963515500104868419717253220547432624890423766815214613656950279010783304251071301230444445984466385169246227909488183741985658795483067877277061345213935357161422117322123458060377937427450624740603123019025450880673236463440816951613510512001025474653932489701418932610570557101462773887991846711824483121113146294235936038962174267852125177184196866023281775090441394859295301978228031067768779982778178900282090791438257002434864659519972314457231828354466416875207976156849689054823249487559150865839458214716246066696080064466432104933301061032189883441506852818249826119016708722559483045476883544939695340464588354867815831029013064215669286419186769587240791137852249944725703781778517132564006759618828400060365009716697520624635962746888157456815557856299172623238557461685222044072724283557198629417585749600132085785590032155542030986286569713930771450871793619071525752920759477007917117199100412586402926147089077355266079656841853423192111740335562935369028775758734273754705759887230957384980063709136987562505906710383323792716853589687706516722552175376955858631565668484768498819426834235213080129548394353126167836390200661358201914540314617114388257285566518230113804998352970180284940743142399747692683683077967113340320361955927880865680375511044561384904932294746803173993555615597078019707115703231404445184896764551962060429850985016356354041821805087633199427226040252519489871282684150264623948512875198802305184891647007181671977497015151228544113434034477736624097792431788839183198190144484520047925604223916100054458101286218582015687395970304161767291729488333538217499011470622529454487141058355081201317268061244226824521309013961297918204212054709562983672406586616100924081410806764451246423213476189361648103670022741632834243459291426610048256434857507326978682377474345536887349358314196986491676641356473758228403366022424349106091032998261926314417840127242534740821262539681443942348259662310425059165368980896778581487311031016529510805361802349564902871174722748120728085623907962584138378974994321129724720797923579886145224223543096659259263975238183783707936079165713261904798867222172526679626440379222893336117462575252257526044318344169726056742998580674019063985365955958943611930154572480251883773554455062472486732785425216115659700220649176115911435698764037554259190755221688021458779400593883748385563323572062551923663659080483656574110613676331243882014908127772960319799857553106850855785762346994749784815970715270430044552395309097265429431286462173162081289473703497140881087381936920985039321386317045352363799999426311025201022237311248836271028708023101093817310926398504944200825705353821838087211566788255643328748886097349765799588653513520753265617735892510426753280524253848718286733074217879106572445353694860459848117520922504049161475102185764442711215817093287711349265109824798226528575533053002997634246396814516181941506278543676772214357321494777549364475985906441976825293250629811356811658052830453926848189152913179229517606561923904364921429784681142152292933934831932630290997997356545941824264557481238607947481607359506962209847648558031769884686560531661454722155301043666970748668594260395147970204405908340693613693619553788535967197368975646592384662494073822349282739408578618466392615906927066838105421089881361435647367791266554860861434272598851077619781141203718747499922324900287446734935015365996356856253037428507624305513517187283378536060483213947863679373305831552235602374522274052676402491126302131870724150022641472890244378286703188858363946486650215467322654716363757293891545346941995876995688623326258438677143206792159725248247408282109155542284079501302151496698006986527978391997352283367593515087742937768121511306654066729501363611785533380942569718770638101406358063649411995918512240198494600424255789118005738892961752197864635177615672780115481519501667702090567569820924726919922363359770352076741589564850597632454939765392480357500209321508485178001847122803419986076936245185523234998114328121786479991555542342526973678945653508309102451649418629806980866044176168691260781405574956378474836296288843939694003209313709886850003143343506724591201479567934517908659463974099200852780922030630069466251918756082165919169745243410304513205563386611840856863510603965291418588893835157408050056363622419203743882358817791304498576929687025638327735339561184567075737700760949612198222496458692964152233542567372899490480853689118487778249539852113129167774693147678351785047374981022258393860981628388230128094275586554923270247205103682834190959490313062829706992025168648801092995164416990512222694856263177201454015287885252808180028051479756251729928670962179855681097715385426676607918854296328459030499068116304131288596035548695300164570121589663678339549700297814277937284985102166642332042789475601619462241170423316505939007438988356200310707998281934558787641951707564671152799842817686378159432290296003182268010544844987107451192802172074446785988870318539584362706314268134690260856939795835115930968326837458725821944910035481745348373750375313727317637750872228079119938972347373501575435042017336750578110194941710983614519231838114180231665286364557845792220748847619751613785352663075478232552263685421435648811514223114672819958372648505476982265411585677310941586455942608287128439797470668506795172217365117346079327002402984850512286041704167065618649406470437044814132705281606325540657059635961615049297776247077686708226791198477149499774783036729615446335572520887977772169833827895184295837464630072487307248032631539618403461716135791356024319687164476974224157866873907076411400031806389415093399052440499564812399270499003778673685208021464116622042262008963350345245314456355865472639962786047205302898395540345572649933643890138064121950563617428637241531007135888604532224227947129349955015985687381120965956319637754512842559889026144950386448468887944428513091787113861123263219490688758794006452193631357978069504170094343426595327757821122511966435580165855492580341260504815808868428620727163206965694290065660869014052334070577641682270741106513424483597414614536467128583936436239670923436923343021966552956389642745798101004102225090702152736374856758184326805692863672206590495429055851889569043035896079305543957660480497465794102980578016650507475643081172547180644779649616492260380288538316853595073182192409510596190004089281147906149049148711819573799765125332536323653182499641080231643176456948318627382397537360254127757344748484191526725652024529934597211590770334942003631893273673557291529642310053486915301200169891924427227558457837758809293542239522042574587800304320760413021735204310934184995067666685642927928964263766885153975240417732200042789804794615206384652306550013915863213250882445205108364302067610256165616897918250241836850128637251877789102399513095073951134002574263193982454510931998884747132464350609348978879177361882244687647288749406824966614180461758685584313468320878758199965361300522211220241050141491316827932692683603753493354275714643787758697932018489515940161200779947183996962352538178714318127269570351946451287746615972692437691052711546773617932035805599606454894818693512963777626721919473529419909439780617814337383673211336048761060068718260123921566682179869064089957068394886203595393896795313432925001760927593121677749108587016200999109442686174449093290011551599504011112485096639914169818658894502262274009093667336206851859169683306118690538924875804739500818026668045906183676948959813790502691126522588720853699741339036161185011495119385233567310534274686721385817497154012227700032646423827909729009836843399377190600655541567570716181001211104513659391308711064259800252614591614848190175317232014496301819931352908490395182095280877744446572754638563718733572280672608156683386405203889888359334531906648434817837319194932635927184767534088802801287308820173114897203269459345800709627385016214180145747596891651999786077013819022877722952175721865558258939642382473943083168404921736633177950698144038332157894878108677471520309396083475686538610917669072373703368623113916817913811299669155013902175431319075989197477288068028398746853153581038531211137138900026977505161626427092479366782791653360160771362532837929922753247016979581993966475141946268831347807392506393541366403749459439144622267345322723893988925566858469070796149899323964619011833458013094759257699205584562658507286074155970956516126941740996363542478511722928030736387492702712643587743609232812444089596090349525803931380891245306419325182954235469250623174563157521673815386443149492319934839676049164741683413339832567013058753904514768333098334355620278267259698344193158012869198075512986672797946059818737575412454819435387909944250020832697480686689332986396585390163954054170797536164181259054986703093865247326134691650044150226155163829852043709506715211453139196797115745983865697623192811763836702419036298761534673332290012346716317411725680279150951598440932425201533813954653734730336003710771296702331604343580464542147558997391568574734167194019780504860134729696325309838567211322241757765429132405472221776874344277260158960468512835414468980973078255212929321070603464164761608789111215135295391970295051117732177749186245853957098831468563262741229667223021107369569972764917954235076939017486519862582214810793588677250632847429279080035758556872871616578055790195050232259048484064329127551136113911324199332096546320565339560121021484236438533259901172407242871302635739767309039545160710469052492209324178224144129162046588904199617924138522372143948208333891162229709892835887614142907685370770081997536990722723078476283768132151173846355990819515852866084527966449137109350271418755595535149716798620550966757812109411807917925829547583105426509837629314279083717366750186022384857628597980780184728608518085892739650923425369444468478885134133016145077566546273658882218718598679054866773779541045626297753876185324624727533660446389257301254189919076139224081390868137001247219426682844956275760669475339418667180837961828543104017517609015099896164573134375857364538251780275636736288380912343984115947577084833686929966825878985885284166968347931840256146553673721126049582732531714812678569247668312594120083792318192036635727317482066720459143442987639334387731153072837213219313493298160670467343958959303668655756283400323743910113123462109799038974930260550869973298006064448357860473202525284903769787381216054373127712019168760501562572095335061590287474659192272874501867555401764084792245910879378132811115894844807475900994289730939835693654207038775976139902728148260751780293837207934704736963013616246582973541957015469229854979079225505707315441200639406220673169255188321635438242694627176590680539853739540342743496262142938282041874995564668796422345859084494559127525495869688109537062645926931229609362168359011649526566897649020020271812323166375319520735442475438170931588807378507914848252382963736236114882896166881974613443349092281002750971220693232682562942480119042255673835703445659258365754498447746480311100549996282527719985304187996385594598184919922165246883436453582282416034135737997336098099387994594015415618156019981752830264033457579185924801377637220078576849828056226094875874824819563543652196650939801750234327927447127380182656215290412062980774610917797244222142194789559137078257229128520458005290265071163243205855284232098825880848840117588925059596870510621891069173550521789883715315789226233907441525115923920740678784229482464062772405103884702459535451312911816157175872811279054908213543977240920657213973798809850459705016624320713846427216319565582384101353526507914430745118472793511441441978934293511949123559746623686997756542708730686577558975387572175552544803111981638816741304491844265054396024019785128463915180454955564153139946931442628704563417391540796456034386195018073039538861460821801745035148087923756147988831246706964631384880806687339802364420348185688806560628300296886507020189824083020206179410907799147639121808434078353734940275596157568934156197546926663626673904736480967386850892233089491302164734520587933774325925641934652936745573249764309829558530337713946737668448575255290627770634047119931003660757701535595232507779722855489657582114436146239576263379211363618142258482291160435180456865443681427736273006423864290824917243790769588362421736507021714305185640823276090163307485375444048756799849207906740449239979904582832221625252717102098571496552353725453872848788603842957516515322149818878964473920699111190045946589537033192444172809079495208819817366579339339690672649099458861054034374355089411722074946419390997577694257175674484516832937562686359757456982441163896090670928368790472491974420457679901245889749923325574149654712836537373192082856587847735171966425679269607054368659679909935660523204710038734629871773324304071237713581501527005865040555901156072967136839323066124259109125660775879910849483753354228250592694815888437995134309040446080340891049088516574044976184711928546285245192336261931375821721548549482730530334647376519082220901937646314158452680192806052600212699591978482354476746678948453704693345919276845710911632730996866043161804434761025136932654175978271645240082890320284436414937521948993695313553931742103416719059859009847486407864262670313023720116474241629014136702734407574695474570989144865137421039575156587774689735466280299456434427449202369823575996686449263646753772374162731241767285104906544105721414325201655193908771105810405205161733658150588664405369551553136832323920704053119735752416150784150759561352535541706710776044834372443692473198339394611003978896516886436022527962267257464409358771614206414331539405037550676526774349682397120278134167064041277316578403186357443230560500648860236626433781828822102412159212158082665622296014422284711993465404248033261699587051343587315028029847857639877050385330913075716977912703631240940357079677611927298485897804633685852859651663510498732352989994491867941638580465554625984704839697438919646822667353182011828110661710744136562475043254400715348347548764829673425268716066228080263496556851417584719780309832756597711062204614347642062801053380728018362373937860957227236102511682195774390539908916764499016949044596897685999027618445398820184017245574993527029015570983684714781529352859823065728115944195563066372331390013119571212497392073675949206264704385521444645208229237592658445750787891665075461675250841406531430786532783651301032157792588523356839698689476002801705912236923603915216165999906853175995609387711102431871296000234585354818610645067245145622708040826561121868007690663484578652002451785124651962741641734608182637111013825512974054705712474619783384262575867807892257718508880088313366775858217108966633760459831916950621416873363454453952091618250685530784791873281092934038932584034459793599842430560452514903708464332792717975216444165199966933210738698644785997593103979192341015581967298712008833616152952972788805908276912319210956295315384065732752819533051191586745976842376545908507579981312642618022659411867312147984560936490800727469127706443028047004419238753033667705090971447321349165898132515051486824747380852717059692069840227022400944004358127123888677583823714165915754827669036125806296325655977078776090185058143895824775136250602827962103722598776719975437905900234693438822163524561190763414443162659414607819852726222400494633135185683611276476578470911701830971739122583763200233057294022373438817832366496257849081430835424348962976893220416770097299149108957559686817196430231493203431601318331177107897535677050202401769891355630301207979821819757491816473470245475556737416173823035023355892770998237689006338655312273502843542806696022896716363361741730975281896906972830295395531420348601124540460418329633936187184433680483734762359407246742913225885077790121080496528233991233673309809342645394466822122388883275384397440291197161878233338222092159979360495929597302468764578398437995945984912051282358305449162052110921001529199428503315677213676827921241721671426906974418212088676593791879735820947887076602150069252040821672121358021113381891285731265065447208267576897782148263495461983168400924877104511820271859344862459122758389347393645966952328880646465835110664514805048995311996711138675220896528666560572991744231676296273938660233998842190871039380362799014167760191004768733316030224910346879607776584879620473587008822693827755410685689783718353098241554488913183497714490865219461535621781573867041281373398132481838277761401509372134369781388218823301564515670965678731524185398541155340694049648172147593866172693584123456118330796056552937793596325666605206387274094120349443413077693371483166915764031750393026109027457521494313584822371676253402237812093271148311190907557775758845035726828109995737863244586020672689595136968187102482141211414036546205194967847081040643688353673529634217001671355406457499427703085559881087728292669293578320029871453124154777735113016420537063378003506817422275823588891035257093572735565266974889643400394098438373162546544757125547570533842314704059416885202661841633988980620125833031126610111262607987399257806105959605329483024689414579006381686448820807157799350839613711308857671166582959984540292628338654392362464943493475537518288557226164098821093695928278214816446083138245352149008693096198106676974666807594629104993042916570224452051339697311151662380426692935956942844198882727667168907964312463636697472094005278578112167944111503251404106907253357323004178906778625330780857955189524849670144222464032189066065882408662588378755743386150753016035818171241852288572623483218178334747400090684643778295407976067281739995560025054047540976943171411870356500078841420612718778671060744151512416308131667140671913523868933268284135996233098271413997528915639591656863707524484386968295468415878238340266190752216748840138127425568825921197237497259740065254724429771975094047684973715250878008172571552773734321334024472501527984536000060615758569279056750931802935077582321061594056780066992757849892749621978608714304283122842929090609319936337673236129830943419804066535682442604683107140776248221250667026307710541982481602463798802156630492809080975586670006017758162319668281746525772161710553686191738311032109675351388180154454531688823076162869025286452212353788754931621120281480355903558595739043333028749813460470227807468533815654589307192065536026823617420573488849676279548242328901213011512479310423884581037936128640996651617323691914879232761228712117804407406178372250412847616911859454631638277552447253536021100125142771859008599930556333970336384163180258291722280548992613281259708281675638274738397888376103338476418524428663015250716642905072744441126066895718780415107581792844064561047531705156933932564385135568202851250132074707180337438763627957031797825537332822886702836218187163114852543857095952954748365639485931644332385073099046353193702915162432800300822886138737988012353891636763340530388777995551019036690120347185250873607033239110052417882169775194233691339180226899474280570696031468664348298819198679027734697715320475043578575969626630898657101672631695964529603799903715415704835527105423443934267261611355503856374485428562969718614827828626471235309275602432808632582238369766254232235383388620385256162940831224065225157758510183003433423216132436500763789314272471220642221693065741895103208340515464892074817905515603336761355557904630607381565066494356849616151632201581337774773284931181963149722520856620367953044847534545346816475579197986107269384087882848642135808024311723886096585305887946470741335064148898891572889792458865463708550457270248862893220404685945272530702103906103771886861103995037725242619674479779505555505973756574028782013724970909253037984462000525955945419632296972004050419776075271862491421567815357406343058773634591541746514394092602402560120732486424842205363982136182497588043826559919527348969979932701237248703868518923245750249249432482377556739220843344398565220977396556747755413895183391749285613450219135854487041107319054044735033338110850084728120683664106472430148344483964094277800195909963750922094764409191656441638194971816737831752108692543708868966030313149626881075975378601286542225750795555515110074926910475726481449464591643857521905170705313226838439120313768409562765602161781597377627467057067930146362474339538554653459419840764370244705147070949466555929048454488899340215896779776418655162744436984609360622073340440845623313517692948527947909068598169801493064972307408190841555461757940487710286304595040285046771612823870185783400907560294451915194726459651447159223464375653674105180649389997310268794049403338016635184881295512215539920817475873321439074811516536948324528950256056315679852565933243050042235371745343587819411673473473012275701140050030296593195326024654412178563974293512948731763382350266099261958348982815464229048537870806043528124047669225286704812585587867571823127200115848153125985723561814992197089127880856447651062377860724890730874550169327546191423314507859956465059199950816777136502818743345065791756728055483124154698883003951682975579397801795758487386279999333316869753258845024092861134700592970599364525642456320571739630582229027113811791293889797252884035048078359195695492035455045041516727286809695617176669974159928472939884820021716286575680654640437055720465528891665346433788771803847902752004550052771816636994957581229094996303974014977019011624037112315631609517939226969392421013730889742117073017250522961237031330397196463488549764523300012770421349990259610567226223925115477270483224562266172727734148632500294861629482181272106175564064690133947929508008556467590256639357327914220006174604915377091191047498469283553273014930253697687989936364339644572038938095763558530260497168672781641460956543956446600058170556486169529002232324111185888292169066433981007597576410855279878556091648027904963181071745554225941998461734389539437216003195014336790096043427817490475959286868354075188660521741788724024541683509674523341634380944953077918811258684991221941496980037522589188352822833231362998097956503439411852935275720156698082136793814794080721798569372828481317501481037306824744135374661372888703772614570096651943840037312129250544286247486207795741150867786444272912077472191351998602595881857009036360759205518914207566221567203206436913311010663130837457955136972476456817273947592009333605300651498869695321953786044831662088721427496337799246267151343090496365132889929880563679282343572642785306689142902332218190492542644394127362881771812634326685056510508241548992672020520079425999625426915099165587571974063687541949357111709412082126512079282462989058291190471793651009843606227973427452962621671885549569138638909765107312003588271641557438540349802795317829548339446381550771501573271414305385364925384751492511115819642718119295480973687073864389472811276669883600615796947672582237582268830320024415399621404467379368587831834685468301933244852313831059597525978728512509031641242672292231449186875496208577503069351995787519377839400224995353314001148558194078779136282106385624183565636994477974095893702539284703906246422601469603281594884102211772381084837261115896442898531523938124224557273096409675779743940409334458181170666841639395691183038942909698475388343326567675380474970452078682089487430324476723128332053101019373128804008677458223718831411329321849918125845612276636330240081723777047137306231861979478313883987725361119259463847761464215898263807813686420741191779443598886632532816979916914362395239951129915916840069779181870153578348094025773819195365265029082878925357472982778451667670794323815814726046405047837155088107035648561169413234849988825668196718556027640649975275965971015875186698670199823171290530170016080285734200141843720623721673801112133712494236613119573245699336391155179747257903110382667450151549342853357786548993080964326212370678495536068901845914800197410184905231288337647196040472633221608194321158506225868266137075066367469825719172752127951261024483074115948262012784774651260078239786243705579064471858568278513240680644817971250139653673742125651258618346731235839081106887348059482894705731091380844914692508738319995029007211679970117726139449296676630371971871704427558963759530263600182805293980299453945731571353092191794994158698329440825869447633674920490915253089350658181530481028152282349511507404549968333950021247450292281009726670954170814444578688995675969258375829546255479235014691843797810819193383236174520545105216406811120676493692665543497646460051553424872942972607516865934915413238376523307222205593410945273516666456725839851861812541910362193563359839295710575836041858991967583658141977874827524075186966078590903880666715399814536452290382595353441858043575897974666910533805943154942495092870478418029288273682769389716110090990793940160969017893945103280457540113376943991122102799043144241176244579087375345596236360831665574351570557311514838077337805531831210408871708037433019171426138242605609592175609453542678259320838759820099816030359664527764660507936209412455679295852616412109026894003632769516026459089962681036939765363427996771688381747495331991966525122597311509818600305479748174314373483108965032905142504621865633465608706956941270665883778813933160603301938736483092712578666200025865633074929863873381607875387060473106401887020022846666830525806744048899465563176701427492252355114279442230856474566890928034932873500286927335955675177493140044964071390270501043500174697309427438346514904266242287288469672183301801445783813117066390730127452511726659360892988820439119623914765111575770759857347304695808933328334743955905333985341046305959792017812936219028605374917837609000724188626137032491794898554199572225987889358597464372211923997473571763658309561932459829236556478820354014419724341679596019785455852522852548199944261766450511161154353160360100262027962516387892234761857120547735672651330199014351433542320645213403072595931174517849300889845009026380669740247186920596016365253851755900467381079977921517320774876135906627540960747491499630799359072112639130692050897921539611037048131690413194495136209863676508886073039752926706471309578848516185108790171691267299304081556701035286319773803639221084961175084392643071248966915573102419117768947963455266054127338177866590782269136433271971522991764843957231176771296763051946234252606129807220796074719153997946462367025809666825961548033051768769403358213457692328783301521470285326296173061802275054297446100470135513189247631764010547177732053333848998369528063356109072313877520677869982768576911987642493827242482412069901003776975184244913096889312541218205973056397932891827239392924762567835759993024652881383919608060849257203877506591936021503795301462519394390755130691018482066977408638070772736508335572350089811454377632524565164764031847656491194907308572727097313156081417442908928024902235315164947743301455028338531141240771416763943050189306167528742484739363564727292474335639601451754980020227672765205836021432802026167178507296651022006436878121475582616393203285353588994734520071180747564248211810937997796659938055398900931934614022980294092644097868947001317628707187014398130938139195928335846145205686279438015344487076803739294778913721530494207342627464962999046715754308035495039513807044209576324634523659017532761349762844267474468244324798053888185329003922809018371028840289143753463230555156041474519569131338683788736940085813768455236882147336014579293230775330497340107553707960189424065611528625046786524582632237823274353501640140504751932014481776010076947511433159089404938659557200941318440541300533188034449066258080418753331725570891448083354219813846997984168603160321571811269397843986059099825828042713825953269696114746015544519418672975726659275684115560297361519043084984240845086350717651458035469737040851550504819559953353294673004650199202497094941709329507630359354293857818913680059752060650858239224637004069410703365404102700015050971521966745697949991187761276270417665707030044953742701630011259013184190430001649148613564816606289444397573167304263221957210862905419928277456523674357738584823397930941863457275261449116706706107667430833823465220409055361488011778531954563256304893175242800679381287065032291253546299646568745918354209295367904218763855301628393171251392969826449766809858197239641236264911404171337359431293940333813142475645167574027565728786628957880297616809805781993348076834992663105289639888326779682171635047689287735171420125747477659386651719426386087973750019327836725357957470255281296664313635639805657565716255485876551804604736246949889778212463327181424884435959612439571375590076961148010872212164730303723615852977408054931057634083292193529400868721654764320221321610563996884159499976356293516283454338684857527427484859509956484016630547778845748436818187909312555839063929695321245737751527102282887171541952043266702743195241608229077159740214356343597889383850549036820116636511878293331331824025865876134115952737721912490458466503704966916351716939056820315423067417511241851759325492593818444258400011038514223130412003293862810411236120961664374453816642629840634216094864670019928411579275768999457407790835642241099489300514750851343436160140951683446174674169237007039544976747872596137253409167226794145518765131264771272681931001396125986674434472773184422630897864023348549076893328896914629667398503130636361748628837418062455651576163498551335084977501960396870130531098564779826363293626771253815004351043456546681117372023081411887410332588753056367098107968109009468120900718936678451901321388400190659627153049165760359971973880305008216019245352958602230315808592848767023495950164798777527653582977528015366418654809422396818913267272983990986011278707700207944502798658356214555634775984602510305158791596217334980175457892001312311464671153586383040290831913558248482133075730997333463896918398247276126929520899003754296826932558173151977592057600650681480604487391662351046238049656165820690295670175445162373832410669166310858249096732847460382739916102401193101105087335979438935725969249153961412618182416444226757896690128312958028744201871459014128824016456184089262711136473160373159840684800775794240636331643729036719512660771157219652641314828967528452475445965648522471578532851907831776999513937142525192148370679226184876156414597737814527588853302352908933779718249811732342621838098350001856308431322769594883671782604663385784323878632714528766880253893716878505589610986554908573296965803534249543494320416504733254162051344762957994697090909476229954433289301225219539545800045361752637901323199345798636404458079323629887701956889231265127325597095030007654808941033911428684543148712148994004957034698597261228367360892715633154999952608057973736201894594874227060092701815959638634335960668690082873992986482794365708319704742842925058144057927734115531378754122218909086272259620984038175944860079099332246227523382697862905015756319367373647616846040394786744402502541613479882979670406873943533491566037057184093106843748584504679182814556364985064662495222485340353001482787804075981477400347560933908300155105340921698186909718046469397282197216156155110358989736064228884660559241549195809705305827794249675737197147512700289830186445032002703059170116956652739230330159209255562250978096709649539665731584769545723992227076572630975525338473966372938872172502940025114243436352465264690993297627165198349391649405859205595380862425593387851143750693943071854113115433890451034294031799606177712241529078031689842116483174129746833512721418684290300501392351874542157681311542161891736871002862872374054038699405470874286914022655128653263312353367926014513655251207966343237377665318987743171570527176141850436422916531306835496878684818697477122828235594937984303122815181216810642334385177632050361445207163574766782575913031718517707465331474074327831532833700631433649898113152131665373665823500204421806031949255997539623490443134501473209028360126976646403785285209449719126574858720171514800027827517139217399462843232325317145400296932636956352072319771436831159930388011585033050079172546774178892068973688141054844586327023921592182671381502062762722025063216408257432797326643745865753775180432585617304241993125495797671732173775062483170374095308268081800638483810573256655009151835393289857747303487112099375131324817603985622083210047328304298537175267362755160872916990197187625628570183198435892855627242998530418709081034394569857376297933871767066722955168562140169435041539138596181174296228771855287872413308447595945450975389743355716547578962393664205175773030852214928256247508054233342401784995196501766639885942330007372811362978137258324461835398855536387916834404532072420973162941742336017275746876623759994358959832373253866469021703374274785572203385864833753841476780196872956499006921718361058774187235839141757967786918201407539262390233929418877817926103663882446384961584120668137079175098935931470549725699670112334267368884580714058749363059934803380762148452750420791914814004161283744075396164653400389065115938706263027662639517693057379645786055978931158392938996575116426232870802866997121474227394777046399195445248096200572327722948871326088993121658380673505909568196460197608353851486327422317743023045665228528822468856007366334862420073630637036530328850182258191799260202557811511456418365650234866444491704060288841873440247651555340978771517679971240107656010846183920105974379096315929357068181244720804286460622603824467969346146661208703756186593568350597816346832201439602667629241215948067840377807904121893778330311453065264052567096640616083716864403743601515029680708970131102084635788995677413111386464934531938714852425231656754851127364447202112899103487804404578580360631852460346047029696630894547196467355326750520131588837787131045167309478107826834931308851822829617620868543840109160519254075141205199925638555047490554826464121981477484647190773890934618439085843686212148205121316216376188139925990690181065410502939295784022820334487851285043004726477779707547935431941591451463681617302545829735185535722901774120060897613485662877889510684126096811218016407002178240302555306545684531110118694986724697655282391453894827677080867273577646590115440208230139223327106975937166767593014286771130634236969072251923746295885415806555597097244604774333024982284465065625886179972537860462682387374225873741159599767919200469166284509067437101681654940933431090572839078354046665845595132770404965085087110957032662419788652957145629084093530878531952514831486637826987200409971960124209949868431712290841808722832131576157756442341923329012276701482650677846625791239493951315409250462909844751177385636773212658064200317487153585251169769668261114835834987197259762439847511534636492607615558846732687741595938807236287597952237783391840621835823140484467895217752972089762267102177960980516442802120811676279101007891751338387653701041289600293768080923585684535286857765007123982897096186789894512041376750209812779963279687619008001820966841212229150163723061565629863105702035816236681234648482147216872749881468460034867375528970417144045786427093867712398607583948887054324195267261448827668642059384266249658918980286163666715451943215898168261991194677766855591258254269176639173988909048156546130147752355860173376548298965343454712242923991955656455848077461768437157317721815349720353928415106064696003113357430420755360326702371334445058639199865738114001464296782503490245951729277332901281945154662533329335717165091043631900966891784178998818314981160393795002317603531301223128835800665058765740612588353097724162095330163081751983020269270994141766976107513928278275955749381436107527093764699146471421475131526526923423926766057248181429339610195259240720342378485986867761838556426680779162443372833699625521704908822294925667483353579952036676756921009095012108249158173640975589028169730714115941878774540639563024662333619411375633319050853501345184148532168131851667750232908162316131643294276105685348843979639517283860611453919129220201042885969291859386559625232404266230429933047239028793652189788010136268273961126549403297162580818680463494276333021428409023505940024551414667862826772924725399642012540589152963906937106019402139902505067003938350381517395222820891582087690603158790285999783806521994170496897871100847710543229091382778538419445588947735753373586019933242302757858942039801951377067230447780517624387532438649465589414780962188913686110358138405510760103354342892835930868183164258120340242097374752809181737511296512608698826588264600333517795588469935268301759774460477481794234602130188242379897255819631974138353523313387618402027398678600160862387142614715203106034662012635111771146077861218127994682424239250532532204398255239092844886456845377713562568175510638015485682600511336041123197477185149925301174159519057663036605634083485338793472675699355287161973561049480279525925481152354836285753443744370320047744376882933761081848818163524352639432534473770230788829621124025071445880085452870784384858133507448967798389881568216309796714062669644602194701964443773271235384170715850271296710953976659280130828645581979217281223162933063680752622708626717512518207809598202627718811608829311680271019090825250390979853176197307729223296071126832808465637634233851400805391908791927212779369994095585258547237640514020603404642996457028152431559743505744885514769213809544921627845352830445990742484561547128984947174221238834249860059425434935268611949409869092308453318358625447021084490518696438759173867898244267497492422200417043308228414062230046178037978376434385122049751276786930195867419311018201923979797546441145184358199888451398761355514370805900812723171149375694083518255765745937424473627232324748671658390816320143752333737694858454971802905842290656052362636149187124637909403665119389783911002423436230814096948744621234556915765327916430138296089120043826597477797289212157516863406944662765957657026676427441384068870321631889343243000099362443159199497316097395541555739338358056684324482789458818896316747289409155341153317914502674618093082367184511813528137240851694073553629976778988554090082854762555793924056778325997344733302499047705987031371725374441842229546048329172685441427169757912714647008463282222809369990769997206090544011080685137836183864601767571277799966643026833994271102368331029948573451736801794682184595944106807124581610813684524682531625940469823374829558189926778625364867209253281864726978472756576270740064974261782863481014984273308803747183106613576466147701304555590757071063472924293431905520375828956949003567164914653336721862262792213093115383246259586557068487391590021348132337246013471205726893643015217929175428001385512170163222063457481205346856122398716564099311626041781690941686082701309968837907392994504647258048367721475728563657046888424731736282114851444004064632243913847205722487428113366129245376086076768674278649290860342729684441181304423651951465630502005415421473314675771693221333303374361044987846050173986271976281780867039060267246899523977297710469702724086099962827336411076995373467091348503032732661547997554237152658879897928826502455014343409641375342215762313298675095985329070883296904548397134397893883630418267913596879744807500925642928738811940069028340606591391399575960110309704299671770554404986519502866307209204786149577515560347099284795157397478010982073781470229181484810069543636056663024221872322036201037768789903320141322440594777680820224007422408406141245966359967272612355657960000804483664403828742986932121557094615107534450880428492077080161417796372641716560169910303446411074516062096499863042624188888925945538699985496573420434840748052485305361153163350358960424987163520332453875119993161019622053446796149387792221008310927159540843634940155723937505825166264394391825447039260000344899547191742874436182075185703944065778999847013864814750854930127606431741638889913510099542109316812478281923554659744423212392554745850742036417502495168769815328591322477080844733272718009100506219621075793964386426124130967664210295272579990630227604281364858333000041231817652747718994382475729356383350323621412918585167476273881754437342878218085505060493551156490352666201111610981668965422906372824740956980776176106742567752711035984709312399119752630814017692742888069362890997523054346026778160638029225889074311274057945977278935694810918418063451330346509663289950690414857724276383373412150606753094648598349966744381876643150199163868379021147874979017070758925570046316178629161185580541395834515407427521212270309812564675310183625823328648930813993199372591454574821483940791012601584547764723140279044954932339029803986697926292534055962408756816675332652680537587629595351186004985555193340149395002269303254780179245804877857214500461208391691000162390656481216287838452482166982273204714430089046971884559728221722418661539199609196666853509603797835056013618386728990670011319010781101147855605455350127446790377134665448914577226164576180871404419004832146989885619418634805263283012700960800720338172915924739377324451196637662207220433498718056990873450501962871196975240506934866266661159479990779131708977966377703141022436861224678643988759386264730291890604483273223161344136706284444358992697472842372181061561199235097423745836241428811612107837586311218535823846766141747814901136178795145492885653049940115929663919393153342827481605303558219642889496521491761010989553852279972511769577753386371048475269472500952602940868386376474725703357221142421406764673448253570434927428956692077368025182949482033329517070617271441868941642182180613822114723571006380914289220466867274583477616826470541974388256136086739915172591043129643645151129276901512311705763596774726784619801904636123024830429420968388388519190453454991969180069918279388855206011261040490841993600686723825042546918373973428334807027239855509226209996313312272073413682718691774558502666852952504630255504928771292654579459998840409702747574291406985230651679325512942567620139564955834223735662612036572205481310374620583279843099162350298429468150731363540445887448342510005084394469770365164806521101167543189142196555491368596867262390301235598819453344258155795398557905763388714688244546468218733372982754383254387776455413480046451687011948612404946596939376792563709984974631360538362074060547683392006708455344389110114068316819767891989494502907910089914044020089338747439345117286871214934463874002132685202278160010274592484049812344660860420219025534652462508285685005952548524676290087117752103549229871373148605365168890836394871387431979176576693813485556839986067700060586073378455836854286940822183825980960983155069977961920295256183679684472300317962775893818368787430105366294264872869749479034450155954298878044654484678479505271439574176313183063999931200117066925309440540441402959095785686710738068942568069590369285348104881940620195683967220113114211745894961946208329912133983254829741619436884243173048651298766669847027389139547342010908709319054618241335313711149875179865974366627521528884923578282180589426854648850319768975345460626199362105250932539587269871796926988933804528095893473238859750144051632609480378976077746815433587436044400345571315863748801060944288668170217550156670419844800285387141405206975493734057255318400770324156574288355610834809755536703466967543227904123852543322504016559147751977637935914779043083517984131080445859959500144438619696438944433040517441691929620704442892706220947399698092563952992082250668757960757440238782843170246490296999348670252202178977565340622309280069128774270433275739028800552022960208289791414082280325201492761757634334608666765810466598134339466513554991230772682284234532783073034122718390679490118650045053140077154801753757714491409423221146863228240975433780215605968081555908827344991715112772999431894723209284686151392855712343053327043571267752183758465383010759098374317742193378207858959886747344644518391383845232216442729361553738532186430341881283699761461929674887891747286831523236166158056143850506049721100822197231178654631357473707401412747504850233141389789760269533078642863678639771498983053542213511948647384133430447609116532253317432162940399219444029036720414474156518976289230627319566550560515315658996081918313525136076687042647176295453905616737831635373932786692746015710324707130328840105730940569281151362896729596562942680309172848583659172396841721322580900238581264250168758213635318185418198955581019690049018085280277038043792217372689208758078032575123954704916383622352326793181914985560952500049133059682475850337561216843694881055246283762563079792963435585055774798563814110170189417393385675058849071225268393238351036861638226402475610045163638218136542550920588175009142188934796124069040095042812707125142527317660566826177178843434851735908767993465835321867497401125409294562006374854359023848811942009544205680860196755015576676709944707614517661932937986470624260097320235350619925904242326019603605190007169075064958759503938764938536835457244346295512799488189498418886229752138657126223909884847989500376506437516363468972239580956669636584816377202165283191772625684047755692624785467079334648718155610344621576169485910219251283812507120619974992316325001089015728427397453430547431690787686301329558650673258506301174632414974978238946946573618619324616578228027690027035413651790893709415874011312815483157439894786762264252253306852297739081298327093258330887584040254682295340173173860171389749418036496539732821049065232268295617137397123389981362927765642760258909339539416785928470324451911081181132899982492632668626995664005733402186544362419597144971847484818979499197714572636953851679373641916299452612035893269928621455669700416894561292278904542685038531616359984229776278826360648527456184598014992467482858600863383522448277637559749490304081750815858630657483341541431869787474312382118034717348363233312553068125284027652612544758920166459439876110452126895776131239829664432155762041986120592617102427542051048926300193409095020301108703364461144644211562888404979184217106161951338671706914679768582278387137006122275612810334200805717676177661320430165562065354192528371959763044677788447179353856421372145475632698733922430644785704527943272777470543413350777067976929145742094990335154138022727308534538072891826826142045154798074117607749844955138416952701117087872310271148860043143410970153933800373512461719869970913528183282753465839469871452099212118108554788497075316514910989123383302067446822240465185661517663171384498714943734756459518111183035025549376014020034295956212609657849569157673342378614939248489384510763065170426356885264891035265247703578462612688652457834095402404589102293821860334172021069832325272107403085633098205865544988415165914565862241306113765796868541353962123551074097694616346347618861203543375347891041771147047099987621412039823954963063682203164219332679538472378566386675754131617414415263614025863175695475479346395045484481765609523295490692252654543567349735882090293070422031421722859014216048109712491901495285765426460642324480682743536566943039527853095524461632076851060587636199485399265035634307331110715229369385989644552796909501391448347273583825834777436555659139848046215791947252980707475806988585874511401949742848825446414972907893078378202966503722451658881987768687126995995648516371915609702780903818984206438225868015554599704170468847495773647054169092082057309267010268101418328782763450016041460722730076813461598009262105979792243080690296548291135792873119968095160471061046678227793489809234670081372354352902752435871598910787060521119069192512597359742215227867579318571220607741573093281854565377231329410400838742885428114116257386389591514095084296666962981253626512001283572226598470040009041607861983095852614129262195122643120142650955466827523723248253259266479497782626056928850815592307044780066338303391952500750899344801119241625190779510844927805812227022394558572468962657421372081399411351931202951230410949064953269714989858707568042715105692889361555101477989719810664237166999732930304966902808882177316318960414393285708905082227461554407290752617488283208445402830800562059049202327875291538883309010291378413241928803427946091231013861255172921384197669538209245975536470014351397478113637406300545457551624081507924862237062623442457402023528913916340110161002875447855524686207448770681837093246053830436059339714767886932788768494754572582782181956283536470724727242952395964240412504366552729375779995272115164787347815148101122837209162547273766065252311271673909005016025453830345865620700658309541125155668729839812252993550729480204276641121078222449065075455895057277189316328267298321296368761717321183328482231353943881330208571780344503708498006644093975720944043932314814699535678226385978000805710771300553590813332909008120481306412671028785995657532001501384306736102289721396523583512607621521818132308584589652153060582570364178328836355974435450078176240991024771719146641441921282198235005864181426411844885344049581933043380200362712831016097362834767675929117908221762540520291866973234668994296472125601818527819566046816172656115995383252306247282572596326294193099875391850057721576425827068056447301036737875280365585077160985997384313009789847352155695460861091929860319743723179412055998511056283888717143369503376341600699314788579947889007272825052970389873870680560317923088936329444362849338071835960986838122957057083846418705763915903601998869772988257197992502560222496438120923380167672100106112161165242602844590449575778072303464692550005555079835919192719003437459826646610408915750443937930942652611259323809013642819766915907029523078119418293771078145879627156305586791828147460445997098813891110102300174782007645081435031020648629899676126257204090595372804514616597158979854388325334434658110053818624222041993769461859283410124409226239919937554637296501508568684295425654265544824989929863613425368225385559957071369626416092949399084798288574760360924442034821689151902877756529445824831977521607109777805342336205546679601032594323771697565695339246867504309282752055773600269811869024689297775757969530594423638400953630945911549352615528708643062177584367345080088191437081616991895327030475759595389520080544247200168595370427967630440265571025117559832058593338026169594519580484527698744944429857816209429987918728052991588984650954421699971341732085338718848704842874610033614835324553940537058174717246790516280332653892720539353317274079156614709039213196701562337838329992622807138180733715156240027494035178622739276945414669576159915056306310387636554325211103268364285428226607594000707887632808058117776267240478970600160817483936022541304823076973069049398334838774728811904265193141906329491926752154783165091878636652371922128015414232432285449441375139775650698605937691210062219511623406767161212791503411746557533920356602378635458094490596174427044017931811642627052803170905357515791515389757586494720151706844389592602930974614415746282704988254654672896944841434812582872776693772880363680870598156631998747739682487905949206069954416549375050549070272059484414444594236534876885219014529785695039629311196537140957309956507111062019234621930122191121991110793532785167643683550955087861493134257792400663748762443033380882399364705624585589842817104653704618472011073013732939321171624843910970975804562135652970499903209291070866588840003994401556367287573222735936754555927525845436197850576501797505276611971810373880662153746204752021689083568194668634654219097872383329556623619206211343721146877624488769780312383857414247206932593694908239043320961050886517602876619471144334977357928558199786512158986459969643289006327602174744022428816645451258137704601157158929618749080672748316460974058059691367787542051217538583565783308365598966980884022434150882265672348861745068939706626467355712183157025161250412582630678030741482422452700169625739140708802654685486429689873625991496710032272467223282045195104884589374924649181935640884441713893598599279093731580488246770671951030212112512712751535130786658296961345716495444728889077191301151391152732800445686549225128841115665817120045026503025758190564351519930981712662984457376772937241426425694185047594839240724369413786027297876514799431970537008040254962503617069836448854495095845944350158308713642656756044884503143666958465234370355443835565057931345117063363554378568826655611884914579791825497470749805248997988403485819966771022464698901808052130190394124070189175665799323111471809270037401789046167279029953553521616300950044483827764968322123646249659982273677457861035338999545300072450294592822360144888983729475136167612272483087400627643092855594669497110297333380080464081063237133672645501067550145877966204849846628166055159943017176370182971044821486051498710363997653053066968323871249873196533597502244485959365048319435021218464932105834740631067364117236780805589508470469968815120668282639701426167422905198253906845949053479769743779433138409176874533441223568420506341158053203702916408242045080792452948238526092759051314413888604080975908931246601593280078291074124510523416485283875645523220657452553106029225871250837606414525811916822907878560549102381838677846169952140113775541416497921412980557934332164171751131878629116471230248181227765614539292368339896465341821154584245631886579773092138237920380546812694758649292993337056992476260444964088568550577865269802005208127327700965540468843295380152081162186782440197296175172889576198056905383434686994172061079330718075144651843972473782507746295799799892145717313781977101627748393125998253482785698310429695520130239396319308183102552869908104946712776627893080620796123450375387593455352010148958309287721369733789468304284563894163453779410000734936903349534883960793795718964382340388218027188904651781060562914419733549627432426409884992090743908099703064104396722712950857166131722961554855100115642539153926625067844958703669611094954685531264055655768010283629747455670189207148497024542729347988497952097448095623476652917586938189833732053012665871574245615147112843500100249262123259400174044687174261393816832872185528843736648341045048079813416388492803952483315638791392626658926005598921037040508160037646775241897573553867435085245531977600077500085980735716363979739619027418746897918763000366870143640931208706443069934335510373462622383761397825459943050167483355576081613817105822787216643144789285253510637120862613235668765028671725120878596670693963694166967403148825417623914861455776834267037204194311757743041964506837057408826625480455961567948894883500999501793228271326990070337907611637177025467788950823807036438427680046343833317799988722221386611388116474488191176776718656245958479567481097726487794716694958482844654061506375630938392005916261640073260307812418752476559878602683210204227454841828335969581286641404417049007800594163488421890735063525827223927241239588960122007255782262815400217926448779697839144534197408914354785862507784927706961504031768178933657674811770434812493598544099531903086708471043136511465125869061196998408320960019451932555836550686402421056379470530106327071887937759744286490482624481492040525855196989142236469309846684144397325375583401435657305790841858423405955611560343883378157724825044332469410722383592082104880902783060702073119093680544660015010963905801640514501221757938659384359067983964356869614857665729592694968579501324660775953622268694805288584670610766931629671311841349185129619983808046827946877716752977457289343553571120381609837354375853898119825617893427413881752311174806091851158639814071015147472038224187204307737630266632647813355473784092614533147158863706354541883270129319100222133699701819724590148150638628514341546511283193514510420955767384438686095703870303864817192707606298913604009930557210172875060708711777370222156626350046677463910666903590034668242536708158621367931329573934125765890252920132589149467966243050506410676545403039989398874310268417343153562924947293846704142908066786072788084588673329956722723554203431394769512595203235172459351309887631339448409083566170215242141681495386043167656187380521562674162730509634063467422913179974158712951692406117080387293187506045357426010806815034021388594778167378696627700763289707788713963671007643051517529274051808681749970910775383506249538976146212999964992964737915865666646480717953890137592843433762493894697431811346578987394231790091854256598100524334906776321257669032438483777400116847480607629976940197618262006582059642604484339676161364649553109769705242534428047508689461019569810256254744576906354697641169464185656862594933049473799951215011841206347178907708992266456368851014792350843471690806226750582877490619420656593968360821134637684391808608120944946944319154614318808634327109493168224214007304682012207062934442431092074560254250829948032097106052353253792624436438328628914683635836384340264690353166310360023380615412019943385625805301636895659615221468605672052219702289198446831634056077436149347030428463199105464025913786124236229757881307739402379325298396114616365689600448547266548484842208425144868095715959450899616662405340862569309018897606213118815877131754429729900776601161819085130639032800823326122601176701447029637772414536050964606452288350328920584796365845249839030440231382532674025657364582156061962989023011828479096731648271738085209858714540750334501427924984386760205219735191539406041852426382557747137167308824554455421095136085549003655157833846368516592562451149182784396698141435409966031368106993720259520403586529290685241373851045987991250408073526573561099238823311567165109119450921946391958779672770335789888234075765254548650381752828755801068049417735703526062231907409088007685605964734350530761696981954713951999959514821129246559662548292464896803716074116568776890527453253911331000183241725568577800305798740562253077359736742328074123361445145551730647288876054422575019501307697929088293570333138168815729090464613192853351398119165236700586025001452835901832530214100612461757675083237262224105499654474703290485855507725537792028063519724759369681326708566921555719001160019077318096362416983638194674759424290844824547198261636438045940764204409043019053707958759089629085600064529215258027324255975928422326170724931790197222656177682923460704082449285836194814479465220594223873941815813102696423522074099760811752647064711847201569833581668021638407722731271257168846463122133188912819994951116625009454141643489261258827572097683779605270098585405118778112235060324781002036831165990876515866714993653090940085326860864800939578927763015040272837590934597529201554419147872553635056933975468645853725792549031821651330497461973995138436617668664688324181887653677518668525096760033087338636488886307290825305038339237791894315061410477542283558528216909212669538933744968025340859787802568379873838283639946300831115382144270427599591760987475088669222647608819980676785034215776262371131525305190095408558633876795471147518306903744057773717207498667381566893196301801093143406343834381339281605005402388975676422675023666290241394202973261989716269210972339986595345886880493486306382802054752731368962020812310719540451852739747675745380858763467721502149533709283723061707628793325866779869373178177405710346195992313903346654143827028762003014008122398083666934125818753899008460276466138459849922513252147501065623681681065897750275402169589794188967246977419519566940489307786051324423275066805772160053395120537929368428282899829272007099493603447521006639332495264976685047523008860895646953892830466411054341476190359242416893044170044312052527255521520766410099467510575796041569081206799399987335120516883671637702238696167193143808559388949831766634894047930330840623484852577452610652255506636628565132788942119207623680500555090376032002785418503873213883238301349099840032154033391982864952311200074022801797525061108307842184356592899991708644655059184554491890692224849388900154866806229574240553288597913617908164289126650247176223217996667318762542077980046335027388036276922685942188171714027516419706499691518035216188160650586693307552375952804373134164014932051924068497570027604421945048702859374644457404480208091181743989819685962691750008675512107761253606646100809715348973719642115198577452153031470548899658745102956062937890403597637624815667255373448893958572921502815238282819697360748373479261585720142861921012806846329634224499012599006063569021107435848360629798295230312189583057493917051053619531185463024378940022786535216154643158199201543851465342358101823969547490925136616919570066042463601239023402229045611802982802807818173209250511541629696450875752007854115763650198711780942229666210059562909195205348266819574051576481213150768520768132803197518551497873262711121675185204481315844654695200411692897431282866177914843696662848882718458182188845327529129058578693717778186963498355239275607171797545248831223011400938585659149574374147260289068886210815265294071793713217569830639848076362118435351391453367154880977307914853289976383822332628478794721047240401579436059613865262720747224236557109885596871474823684810782908546871298957875230481951106152029391158864050408410479392626789902787040337497915853897909944047156196275613004861180352073199641761868558156405987369811522895753774105139839368141862094479691461628239554514316175392598477185945654635583934239282746147231002954591793378019087328450593121365071652406796495654030298303689583515357951738458902001975762181768129691374679249278547783685294416057262943202638841555491575588476020426174496553905001164572145233733200562889432350675943515246891797663304766762909543540710606974226013553641407920469320724158485556096914980189129783444109047645311196627280318962722445530528512483395646516573410460326280059477046253284212743773618582827483393363910851030229660184081925650423416157431065395539678000717858193005267356924079514892152829329646602978052206601373887868087475532829650921127611793418161618391046960189611413162562525791167879270680648196260859402329635579279846892612573612642760118292619519291424123743232555393660203000082071992364002564508447502243430536666165999677902364266158875282684384723081577956298745845861367362832156310429256949747510383775037419692976299568545905322945099012980039048817413474740177060745538394577634495969321831154898854874038000209742586584301017728402647311257842189185793948830479949716545201288863388459724633360041285560185358458490495151922371383866229296853289771100637485762705338655012868073977935212973600256557238182237695747490805483002015531022525474480072236209248148351437767903733597156466755743921591278925403321248075736739881103280893686374498601730483941044773237895393417242102049060664804929157453392124287708721323095871590439129889811362790394118283449710299714157052945208245897230610629827757491055945016864549741673256988351182689848648007721105577067165567690667118784273606229434703118392925470078799663147949806738161495073150491249540927527012192878382182917373744607052555766587857697326443505942751649885299120749074253899737392867462566438840662409299376959079946111922402644641924212677234816337311933054305079818534245046661951345511866520301508549216669808914653775549619748478781483228224798429217651838108096989081096556507665350331769853162595482385991041005207703451484773645910682241870568120815206072265198000261331419646171163555034600288098608092191484293644850944455305962930921422474419088722863248519880338509196048570887524754412002857115751347750150655625954101394839829429216115847486405274335380409621100032970121118255026296970145519704365686835844385835502039911671617299929433827601130061725036533684386061512768887276272599296289266413661931054064969254528984006746341543308360936188555974632346614054942229098963208382640808965437068530973139599592850404256212532446466693206805370328065496045979320852690738956106062788401917745069142619628148236983783622633818310940086927106669830508394348493692115769260027972616977761927744825427663817230204644272108276442731491897846557179119225630157386010408757897807445838434268112025027012702311849916138525689312079744235685322467780713828289480421698113546122261283716464373621996436844964627179034507779964403720704616239036719276538773980752559506205876550121396910043270493422857532232230548969022702541437677004181851430791579532450102127155264710641064267259046188050261843918093169461842347062427734099766101121683058567111137691278935408694902257635169849991282432496607814771545959227117548903970749874576113649955594678258410405224219518916941584123823185777843307021582867460011518024832915518197808744577464761914708074978909077879565491835042542428677769889781901893917552443853445299463031303365190057890669480618258266534801553878107952926939670724809736771034908787671880926899008088970013093676814277867413513835522842240967090699411326155420857828837219536256390655349263521742336390189117827626463247105038160704857374792679010995602197202072899519968779801231364280536269794875886386190342018116925027099569923804575026825108000591101648928515332229742921677748166174207567560834237913545468279975342597662399755001957198058254735309889683774477074765803081693173122085514280576038323076270052372670758274445944037364446153356479240150768595084777703944382357750701233996465249524740726544081874260777718755211743334843250113183184784696751801155322737203480691227284785060333458761276889552476142553968826097859661864847167856405280450882291608036021980409169191353087535968191028189060230038126142037033230460353122277476367982187022261770674583122509268390295025271022334803452792023759379612181582475717359305523598188151438403495304511069597380677746474895557144633161529714240980044047443176284104379965690611781109930791417228721132936418284286470329659445462295131129101659130795497216069519438386106822714470022741863889101403484092970722578572248844683676954002904951190222190766611992908821639823790942878770850397001786529170674574711299255771228051545820950157687013187412202877234771225630815742337517750220130712237163430913131516534402271520694570044932255402158670001072111338018275617499179005227641054205103753484216368755378796096822095258449144795217875146239588866980501719469704382025214585128698237672141970888274553738716018972845844350194518816006556981042925746833697403007226934130856864550881966406513384503029449899080764375949533517654738973453061297722460306552790600611016861318923730808140846062371711431839985544846191348590493159030433737140304365284760766471178798928147960903037188304514614484031777201106276711759741860283209971944406048818025576138288475085134441403234534770337541166221939321907568836126293792580881388796363440908801193371382296590846032887580581796459408499994417959704402643145463886365385183403967099780336342468719665558768599751477327235931790800776884494645520255721810113823304854706397271783685769656917917887973219605053692117597741855895838860644793670863393697230665941853017406484587503022895405204673692185031176405400492153489961585170437915877721737339507796399816893716651979954243457807276020956014400878278615200864207563569132010610629319061856826313924808622528090297526810810338252348919315892526965157800475566122899462304088107114332668227706521014005380052444344401186230040830746319243526475691742907691374158469929940444389684806361256147917866208864321638277111255786488401531303569522905902980512746248322533849532193894701925411774862358753880587196974602748380731978916579048744310990826801590144598754205918034567866136912540346238661797051830283704534817215486386521205042058491426581562196278715620029418691824104511000975896284609298886360662491044137880800707227583486901408019936815915696218698755292486077439627328406975315605103683188051520051709163671476421624762716757733327126168924549257758841197644328493223277170776676685558230014382804516832628005842876490433725620213403895274150829109411384096311048759407810820724761207349576976914392440226433080700942146102952823000045250371939378173858876999169427848843513498818574942088169687943035066597452671318274905288383227758805180600318700695035292210668541842197387485580302509245327557229301530046177099159600938346807921170433376523227670779872393262779135142850091659320064278037944103341614719957891374087168499771593727428163787402631707623445483425830624710307292984062191137552171110500572982168016529130597990360486559839327118575251636401637261390857796661435031937082528062740834234122763977106147338639353330868330468200099045990319952201167379259603625192499213271395324266976341275169351068912711548546991814238372418938871798784540607969813023584848518897933680593439922366900699989339092434656956371347983076815452502777191363373203301634181440351884959171489426822012026244684573853820121424030028638884885522455601137431384927826719729158248252426892459011313765826347042234874889753808599858668460645130570909281929086068045295068481558324621634048088710256465709887275083609522596709877356015341123935677849631427797934318332677651543525202465074424426534588800684888467715008580907523730211219036731961406324731883369830517703510301569010199598276249185756393610171704808891883300795571284256383348760752677824201394343114922906995985869181753452011957860997100857039035223460442499019683556574167957145471915627879564907262866957834056371104475492628916094362933776605451866041615999086417194866595598426898361725991925440279727707846550915728900731714694391797096273679381271661980433169144714412782797872862474263205952444578720901717769790876978111177842757565617917814895695262266606062100764400135727027505661603856389265053483629641183815393552838893103490073539135734886146427882085484898822541199749388768205692327130136980579516794534692966451716013583184405444630245050051460038469045979699718411928469166517951787874703527229379425608389614822466961298997375935208614298690394954235660950129374031347610816056472687433278610890433400571775394056494012640530214562408691927345307354322905470513042508665012523908588271042348990385875927542875436238183728494657282875166078434621567695645293352851595874526835368708129043922006170734976908609538750707325232549865888540804399855529991713868750589268912444148166844173382075377416647573501378137122367191770878535874247866982020672764028247396564750195618431547687816994423785082025702899291024370782479649547487731809137946745302192194791587525966984914776340863683690529594372131934060946284615109802977280197543391563124345235877753161226551703301226546154272481023324050290513190786383363157273583705852271888159133812715329328688545418072139440459866092686699671453974821600436545853095310002734324004017312829351898508724463738097499554262090220952315850347571682705280414275002564713054381021256773480451054352093618171553483343164562363760485713740260952568619754574269469282177622869792709605313227168743077135956262813914856858360883423600645073163124067280234239963947231162904768902860928432353777890275912981694983619851828758217501643670735669236959116164990514950255009937669568658518727023773036660874238478740899678003813910247353720887569107061587624544614707309478612230674384304890959329364801963205375932416668265117873311230212712070002464182865711720563961064437189691787453470926884788485852772842482860085574009135367784442641820857691635681697576487112048225434031706560336305882610306530171942565770493725037179191057800739752497990242137829342063912259330276196841075751211710774505307747224628064567237882421168692999998249814332485858445653116082661734390597535076581471070580081818150474837993703533007226445928228421109623857353731089088128582702046435661036408645483438931639690786088177225801886580430021375425588385941926638745098893563659149329508592935025697213627702234541355484067946700160382737758754558338927337905039631910710397366956523068844452707725064349160400832654074744952410203037872191639419971827209182346494288811567964371469360294692736043843839280939550837585885050577265639394276913300514319441713025551544919106713769292105477468031979585506732826795016329340811125041211799440010087026927921071932685158277110429814506938969711282641184184478217470407574505781961277567178809601936104852222565766157428219023564898626991141333652408398870486598050433127903773279598597891378242110450530079081085887061984609245461118531299492187942904225209050287427636737399559010925666234335263775116782482318174133666303846080529845948221919111917944903433451200234519852787734934601805812907273529073025756197383800860596747591586390763373780874580360575041188577332904260792100975088013583325747656669163493108845025960562481768817756852954861252936650192600349785140571564974802806958971698879327660264818131641347900288038350349162241307406026069411888980588580484136492905318056344496642077770424854112592115311594184998011521589188981254671788783563608985197783509675649559983265458179306370854755099964209720825096336466379820732088964134741641323610528836831468933372769575827556203684824783108581350277332039764034375726198910877614836570248784500590957583092640219874905683530823508185960928539208629444362917629954557049690976011132155630556696849190589988594232969618705282147463313532861512465025123834462789472150771667478214670139691137030103439592021346404821646896372027605317967547053731052101771518045914565164717306345050569625096874069417393385595241111893722837534612207650123856875655498802691101377447853695636148277836906260988436824726170737536875580318077670073478013309729147458730917926000423378535861592114627764976685865099673505900333600552077888877193803988785470103316531423185298016103480359865293588345130631352821829788466982241934166326833925256665742654634612114032524855188119288041119772464979108865307054345372619028626525118334984262905637008886298913176194569778483959646891703157112763146229836102100826451110480148211840313624022953251194278577681765213949712005090009629759182544700905469670101129036581456265331092832894459285749095926420121116808976053513068807830202649407699713373604070953296471084932591985040606698738383037194246805599261014376164149262044791465532252670487668942650185316648666419168639889020015627848739503745846517737373298883693647571934588095484912933536776158889449212407596300263588116640746734061142297380545913501227188508100574205768239346959603529629621126508209068777399869288209281790980351459312871781335599475428096503327875842390547031075716085942979907392030588835825730907899183807987708697183895514359108470098809287893403198320174252656312275519095481538377290535349745211481789110766373208391503437439982381377040590742851619436568984860660678841489302972151354109685026141195094261850862643598513492504600607692766067507906107205714543843857994853513428832655780553285513745465091720637890738445378764316835674519341345774042777734298148588922809585121170597247986282205516180705575579998670126740768533071861000370626208478886734629040104236521913092785894930714302741358574575525702819834035693929780864100455056746981205833997819305266882204542933614577449797687344935593602703389717430052494156655122866654462554569297536697420412847320320503061518576431576053944578054920457806646368086867134692482961114440505624449083196057390542269088935327915560068730405480701102263441834397696009030865744049817387653022232400340434748636704951649965756909498340504029440438598866989305588396450159013277781026442693293025934828597631569777912659274593446685586734446514301117297627173506135971601846895778605921240300124299312149369992239936764080414163652780366835295354743395214703068246841291219178892317869110903836469704862489815189802436300039259874131583755852028180444759625904681137318098198079604314572501581246025667142363982331706198196171367967736679419164249550827688387895031949903425733505381722502166303593201572072890844692581865599982996393767708859640190519194813189096524720541903167421278072686715202510631787977665702724405403889533471844046273825808786995096999690256074989630914466233053088640974819846258044954716666839241171096237713360468571983160401083260986134330200091986274256498883552280661783075141314393419835894790918845431525450043430461942721098010710650314687627120295402188738213870944831605870300443269816211782178304992577486227522362396032142050917741632082075734538476777416085090335709180087613100324355603011287808829490146303318324733392184301496044084321207863110655347729214851197360683468342668389119604573680164351665847830323360292224950157053797715448427558089714952654666490248801616740105528375764122499079889763296634634529918911321721225096501137207589083871731782327478616959270352787801250811063072454664626615870151354091044903267122012377522285363646352437688675656964286229895944944468196208476575801637008309382548845655419721069350856300348857622406238469385935999446109868664888607568470916067812335224730712150264725173902427499985020590906055403801037734373905691723434340178559141054135492562103723694176089172463918856254539336763823034989272746296554144615919252825907766965573754899566328075902570702621360563152954379734957685359858818083686351241231285549034113044736203745432943810806512387820543855974188356346855794976457483101241960136293948028111304305135065613032752438552113704821964107201038614391641363019858879476687906311149679759150114040565889915154309116751845188365307585601727522666595254263151390318497061197583394723447612028042787448476931543250015573113500371427683692198328484624311024037081409721368111025791493437089437170470240862983258891356612041433226722191920260702252029249140198628137325698706101694965669886860763132467478509577482469381967955629111008483056728988703357866622906575760308919713979184388655248303021646349806489914004053394795032425533471951629027730479989708211477843964334078514518577787391956050471984369602727159954389028740978787946473146960964183074114328269933717126006157276236045448213250453033020614015647157484155379002449503647061295006398261864135947442406895129990940907821370114986716851129053651226719419902772748749328496073110905872669950401193627404558623136872393104602924842549471535262496013536087592312333451203242158630001692020392335129433581929737571496227933177085927148395581671790013914328916145860039083273434409449005578668719774514096783776383501869857369193204658320850079966262392116134220981526984758130537787946111640032898282774992598123006308525649717506129835038398136471498006640804436875082259681792982372922224788731574129208467381267725735428703845091066828594215041637734598268235095760257658681506664212238741715754775276317003972627204247756519627524760720927548015124987410966265988324887935890462905890827875862869890704906609953983552945646195709144202867865347031552390717215943696680098843189785800637883320280257864767523119948361636540672834665327421362783630488149945563647816003639703459210268267365664295354103697918467361843975150243546855196548440442001658445149793856766203656113697504693203859366141676911215101377393119738284044075257359368562070445183038909923206237671291829383613625729621685419808173968978818512316091724860127769601633225238480907887650922589204220024537347685334488151808940551736614308538879267212833289207257886299834655492655203870838973122666117543408332468763721604230803420212522335079997395767500743663309038816080749433694436914314761490109824254801730911415813128748590074809798644401940898953927486787019808515142132337042074997689606938755641032787558738551077722726189659095204296978161545294679531486208816585622448220454799954514007943558356207756329777632869078880763664093669307738328148884315015938025210255970433798399583765005708828202284355084051614096462160146988192756903148904783503682479007262467955535675732950101847531475853766286786181682710642291881142890985604314118302840010744387328765729782231825837831246262298775866347992009753674337779922546176001626209805525300018950735144402539212225541422778698327661576134764730314512472385934491446440903630003872781119606072263284142075373657515043967358696870295330628039647760257801616141237123349160044658510458697672294454417064466485439092162523099253957003748884961613946325632586776387820928779840451530845608200220867207297135191813430510601657936709498444217690792385508018500431147455852777687176387294013870272359617670973200732538564427943798649240995872593946904291645724995261112627072932490483056191277083865538980258520952528095317827180857823183816787023684065012271248138581177637465974778210681106764195721949639181940211811380410213953623037552429795697747500132664662210211271436764007770938176484028750254549071750637171153408390508496887735986805409969906978971460884542474788592309828678195990618426726228665744758761256409537823660096113224332281920718927537185369473801961355497667239849508687936011238064379627836811130375278925064715557298136717626867427515369769649664204035346477751775755567027224461351108691552407551830812362499577192309265717136223591996318279588761907740826756235960779278644263985125804699078619330996916970288047190628348535251385960053122861337336269990041382637580590939475992290103396596912334315828653248321185578358728885403822011275402831246878579482326402516904437935979134631975104273256325460320080216961441109203531460622715357159430882243239760632661291759339465347158794490547450383734723795082541953307019597641920996085642720120935017931503510071928605383627661389155450225547809623225412087545083366281792269259433336088890400871935342741335337774156060654533611383608193884991804383143413368525942862698032527801184772817971475152631727942705990354545203096359440850237351827878645644438446762638759461295305733797701973429409843415386685044242233931915508042767755193455801088503259101922681880402550703404524561309714283029370803543672375410095036342763689313975221573497822851275747628562463173250270439079646072594552074563745030298057671760541527569988288921076433928480757270544201498148118777298740547241527675667003053918850543266501219657614245978038913310276322387682386705453127871962805914985406295462187950137375142266504766785143216127909638624588161531949142073383514136679127647422867181973117240382403432053099945316865379771873509659797527590443725237004206058436118134321905936246429204030381615379171247813140511011128490520646022611792609879321901091075654907091825761325495508176755907312456425176028112326646500477563497431696018983952604448074913691349085696678633086838077163690126998160481833289100939550273930753433148367619363422454422628976694159982917741931342536727876483070980369250762072654840382376514642344776220891218042020691754992470130664576123248067825792420579580537690033454060228498382829670075702048782058506062256594580677922281676877848544235464293402361833199075524904405255014452949656879666771429818111704112662876987824265404024375343715319120631298161170861315191584836993250343757740575871464330400570425765308703888763989217632888582140905542630985648107345605501262070091319185994364436910543571238974162351946533563899074425243387762277828313952968426757683902101102516295062237591098756561947028857763863018898571973184864625205972991322577008046218243055861241357289475525872905292541116026384099931846465252459407133310038239363107569340832356904324193363909388004913780571595045957427504407743437938918313220299081669451469869200064140313005101046583332131934295322293607013613426667477307591813992523772241810768279309590181265015562313765637279351022904513947111161539949056646657520182855706729832215996599462980992662036956987298176228293516869898385342429119641973050119197917083251816091127408126007251312553913453796097686568429579297387591092031642658189431458128179468793204333143293452551000599368862343461838997137098882315259683569826850986232154198515508846337557192410156935304043297473210838943274382283236819877577893586579872616590563739916201386969925383393030841374881787845724079929130358459174096831325079078951051675192079947828425835063884079084524743549866008802148345487401231160130100923861016452458866237187349994140107020838899467366834617575360722597436192276879570051041348265280545539714685545611115021395724997337395120905625312892953612406088502025207190629921419211307474681165722647567147202944836264116650549463288956127381090323057147026585867456364404594169706707634358788338729966418106745739651248630327880304534932258112499425771916417254310317342922279445850299366338249696867175587295971740766438007803853101498795419407332451306063921348905070437003339070986700470548893771157415527267231921075462939398021964925768184768665144840682749068701330622150335210818232672275397224384139458286497592642700360021205544864131084459878861639960912951256134874185463391593055149458535604111674382299509607837692380250727570651621407504706365832420888863850035564757964123098257715673205602266611917524547238430176121830553296861365465369061574916998330442159930258287966138604205477348153853577913337983995004467922826975717208461501587145155342592196249576770305717403594475581830539150815525300944522921216278932779126816077729541838702856847958189252330207632270197089529247754824468261477105853890650469125450853971900599765292952232010755719126178640700027758427463664969394404905573874291954524558070042830885803317654969503970338749324414325678567232421753255127980285460163854109436480287939768059436832062337620905128662120579733407357457494465668282894568175884511579689716192955066820760705351716093119936613604448266498599215881196584661962403709680663774316945154994583796685817697429009493880960670273527911709895003091068812636812893429810477552916105246357058972180538378973820871356650979552712982582179048102014777127836580917468466715889925308027722292107126197143350198212241222129473514286088129768840307156728105831079249303586153454401409977158021337152640166906646466490187233613387222527719762648200838414929701122442754221400388146163180533551078342046899561518068444446248750522629735431465983225934563210141873952534875460872126069288094554637124186134552304496926981765860031673622807270973918320469234684663620639562652710447628859076413994390899939449947109361358545029719595741181807720145059787154305699633754100053044881491455105943068596343139736105012777012309836883897370040460091666395469759031808665788815916651586128193334416013978910976441190971478433591341625288458555068472185017117443054967334845342309466283053974906077508353262575115150339980711287987470982219582508446965665063689682812316269289838309083304981492381997966450307498438740118848720879452583727311992696861563935645503631571551693898932693356101727682884167637153400763735501235035988962056492249007813440914248133402112234245815497258757841373349927486833130003454274296617386914529227426581271586569015545801009561219449772058960534416931408286043404805272177984963570651572243113820866061234768363807602424267115527648131596400708464884800805853498560103819550658474169791064758516366396841508768424354278328529637727291784995539036886473336743473142761362906790513752787308260938071617969213129286462284906595366838300503940263573719698320671085111250792174354971467249100528528490985077565657490976058992566009313961573714307234808800103622877742047591877453206243463058066429786338980738949494393098638844914138598661429230160215608131720800743130409306751063476116748565413179683780056972365537936788092274656267039227365794830774609529427015112462361454631715924358816000997347617513968024130077142788647925409469917663412115499683365385952812450492356387114805059306489832938265711162274584015841589521961176504125737061152233448561204266578086983887363148163375242516124735904803327454312180516182957102513251684974069177409576836599253149494296420384517684158464529817852683747345824222990005272193157055918406049891955177783261652999294541573122837678383746671778525877534861801639654950126127287130814146126202573019876162877252909727601481742434316609778693117654547486607144416772685167040834916449654579794640084463758778237615966410587551196232957254195549659946401314320619258883204885267203543264713872610052306583175054122147819610781766641537666698937797876354444088890479559996291106289067739375175190888880887603756758718692459992989259403153896891269528338503982088464212252333765252046962696045296380141883947707184486262216179402635152399867171123043679105110000545311577648942482831831448091655058457527258004659323299979234684034038518436474664555638942326483448203084912974875936001094484103365134215444328351112303337419073596599485759294827039123391635801767186300286145669096368221096979628960107597533933460987026796344353742633792662640101774272837564850147461923455768861617697804292018764811157706024782040897402536637202356815092749160428305612093469338059859493210144279217188116708135496886252935965649645945846319345625940161932973367714392166206954070289036181376325060624151726266203637081902269018675709594105508297391136592373977747939087905869627140112261855533179731689695072848308975163993523588201542788402821021878501547603781622775914411960461684307832756872037395126188661566344034468778679448078187799152875845063167660146827644415752415716865782157041457014172811509285866115719568261722231436993090541148014459576256824923040141645123295085795385324466124978193704264220288034130785941901349653432058434511815862571806959173524405896167426308831487160533468806844309786815036801626408579822303943061201857366790623706310638106576011168507798851335664101888754582671460989765874958037748413943183137038765961531166733973396139732215429354905438093799644031222876391715215487673195800036073853894830519103739059409643881448100946474021504247152026526854213178591229394221714725214255121844001552320182673868608951528959030954635900344243675977427637680762615247913620683662449810480552673365380530412114299275477487630085579101131927405102000551157699655177101488101559200705761193856142692968145190618755283370930556970379577391966591097307530642544550170623523399735395800116944299065927166532146848343034875893701152125762666928180877881389494164340540498211015856223751433579897782503282165036839616675740107718032938696715179997234982231987843673327395949657360902722678036204421026643681603800944587054334923194486743560073826967453922857950866548963211790461817992235317754981578374650122703762130994365388461399242950268922283665201268796247772237612305695778807162588379418189128505251572583474234277013094749314643455322090135197098474044116526920639394658844326403536765188256640694164462566767756656922011712407007675042214354962341236482434426429788659955862098070919569639110292971374502433883151023172955155315870984832784189240183362904569347509677443997189815172913643467410475431850746896753756299559641321242449920389339584020169803776479939337990621992554843468039033153288807227859425389390467918020242068212117122024766027096740134338289924119712031081869988477345255194654863281411071805203652601850631471310161695224544899731421333413877650554985722851950387960062448977049702656243035980306247659732141986005647311408370488255994765145050496814025307157507110390787119528045736593768830284070145117126557069806518661879710101842244809066478427657980482733155825698543461587896004698522787223168473730809557895513281304906119751286596064169368635906159700874962228838030248470437507140057305901701363398021615782248285759192367064561549492496323353683482537054741890253371408940586060680992777406830079817788749968681074804711967539683257093628978454422251527365663436023200526838250934321283711202941668896730725167440774090680561726822414163131054744228507821451474951254405833184910617919785039628452250615692618824555385564786113286051714969449527622545169211612219806001241282658121306896546239347640524921504943645098591741965547788974246349711154800283253659212542988029453462468058727406450230856394765127651477478199344135704029003199626345401882494859953906563233365066964095779724718956167248820269259419905344823457886738712341912890304674837581066954643886100915138580138189234693078755833322406789329091623354777763354419548584855173137321643385074282414513254062548711640784620007695022945025029773782016979903225446489306397101030164383017649675527039146152139716807130280500324205919973340515019618161319160830451235180189526362045834269042819437243060140770343083691726721533708306089447058226035329177088778276734444125969942100231189834234991982784677870943426888810988411499405167775284819729436529196140709435854542501668832000190274317267565679902500979609329222538911043687780712551996540265195873845487980863121339355156381733220009009680894393389408436440385699809478693130896877269794905986489855809713652549060578247819045761171965072949340819629753229722852737536805845434184988018134710371580727082511650091436507190100879922223883681494497715265406802290738132158627830132248772001511352962463773104072744545604421925748532056832897395313057171626626448522364737279519792476569116447558994457452667100372785201458471466486896762428455714634869323877454076862744593491602771952560628689965468092268843933230617858569815837110228100757112968991536729541778312888714405542690950185516039269484658918881992809808850687331117353718099223098984779882958351986947200394769982843054894321690471092514953421843258848318038709314660711482806068108493539303510641381112600345696182065075969837419244847157048022355080780970137492057389631813265776500538395801166482270142403291610577974211929875880130979761551923393165889429413288802421149622262286370190007837395398588728836378153943493012117114957784050259187346271348225391026753535500767416294999522312253991985801033384661706496983030190372007234289987188939442501870805745526471366560079883984073124698931051873127582713391768268215135842259284763877652649773945281545626355774293942098814698703209954100370498509233382946800321348356405932534793591586367454635871606808448292481915906847801950287098942413390889921709978455689711856983909470097294361038897164275727359396119804626788194274556367876427737739872711799464698247540217483253712758673979601618560512480538387319377802972017271253172746528150933412658293779335032487261416068154059255288801615715769372045677689795459702243209534160889548635581973667013688320738301259213789269529106847900917891073236338514385373765490052441691373649545583777547365035225184517112955841486691601175621794852778648102641014150725908519495808843847855299029702496803548305104196123763770279903343902678357473006610294237350893941402749460921912512920279485156128050242423242900161718461685110616909922439674490530872435887048548173941717557292706635311560032358430221335289572748965045174326932040179036640805551145608307590130323773807093580775517454305322445552556042697130689204198808897543540537232544685161120031906461625757565965432729041187027502172072671657701096157803888242650872563349367274536884174032695175876440068525917177281886982970001334682315950580416476512507727586533899805628445615580228016654062185912869234662162041224667284001777868606629719488184278066156264100744312637912854261010240136400903337255086662237054165355282031257352343160075288413096427261780528051770722019599701703442153692084768713619668485537582847533715111277206691544873261679530676845198749650061800758598425886332086048344395031677770535102927390351986603644996904631092172004588055282213769283837904137287370462483567497405782639777401733792299658612453540501006856090886343109124503594410993329749374972904959353770136954995720749931868952313888800177020742747407077687559053700720575483193216048751831548920359648715248086181936169227415945969075656252640412343052684769850122173833186606666794296647306682076242683930029455992833508744832846725921128448752555718531259674415979973591298496155014872460298080773155347204384287552634059420140632634460423696648304544950308447901295736793634775085841957433944531242630044134512597303617283089492811868442181843123624071122996279003159121370097458401241338933556259334707703175819392357076619768522555690382834092035767293840818082242941942521146949555812634219088971672250607070170370219074459099588050270758806029002391589057829694745529823670174905384115321275301505568324741135797779102343478956434752199043932720843272669724598440728198195846443675721335197184038686453049986774496238925656698051632509363878054752281145423443478883975685947894656082326035997980620247721080413513057511990310732154733887486863449734142207829049672231416614683357617407742428201510505880869702940160165375298796824503689164269839034961323231077225590326756386908788339958138540030417370171422342843376338840171248513953996514091022792366111650438340359619563453028748211949125703427493963820300926338691039909722949557523409079311109277662266544381627228226670507669146795414286394653409055978854454337236242433711943286061209710281428644268375372715619386495185831047492426047611202932237699560348815396522623681513128963538704786814202065985620646650977950101048176887240405761371249010677999983911648569405852708745259235637681554088089371208675624050195300208294451054359234397652391588221407758375977524159858582808224672830315293469911073639263128478389059338747501839086637146888440189752426486985769664264788179794340553545034426777141775277093014950711948394353283390276289646808917076446701387509867282679489229664312637552733961434708233372992925561368507437576773188467644429817475184927118203056923063327553518264054309408739894893576905048453916596651677244138860956365033096105286066409542373690655399212827527738927463514142311600928074013103838182768418020768548037444396938952821221837488351665810417616658219925066216831371601347831722133148288291059196254072228373518174835203315719648268698310604046435363613163497985560552787906366709447477116114128466577430871255336984546616355262313787638399535945612067542713250482027496091004885857427955455858643035154869833014235632507065037027905995999052198679069936911973360297704469715207856537031244380697155636590214086825125453132511664056653006658111827393971489609328905393996420611456669970225187163317718288557966233626193355677076770093930904726424520242949384303640089334582577838629778735401155790355140237733766886543366041438094520328306379819039604165001502899675968348616626563141563261247035225664608891381630830488403524226178900997825237877522325731875539087020185070311166777167296386480584211611335742414644292485787327000166790115670432510732653070876999910683406863467037581054893548608109185187584363779240729407240401577090467175586103878854710720392597130585296797676969152119289256471644394930333132772544551703614874037356025033476789491048528071952768923715206787210530114701173924663667465398278157081221003867403259256220035698155345547084415090823294762311903872660041453431014281337044219028477446063876922547729264752114554980045316247439253856539119617047016713388124888400449836125178258009801393578219102018413157181590279332978882881815867090124431868596873798189765356195092080940820141248762247079461142872103823378404878700673878865647619897447047144258156733805952550472142299811251989437943138639852152823178299548034795057557967853424556702946477146601093498772680647919191171892343478716595673447829132463181323775803283050836105569422899567689565750051712706318910607024732003742550703645077054992377147173984599813127296070996129370642459245423047194113929463875329317718179531153846293341475652636579639563412745295190604818426552538578636990686816884167364975866292348320528302954387355574842403076999376071066767187219361985008190430758275548289256100201199296145906591821277931317482890286753158769602274618848986193942399931870973737530431204082434847508064295464408009585950858231101834745380771859827031466048564283106650541579713730561646621345337784164516253872507427662178618971032459227387092854526806119901434504105183356276594399277149559573263701516824779065651515809571093532409355967555922318276138133513002787041059272446936156977882210831833363497459189907567336284087864144404254253090967867008734851120319042982313951309586532053235134433786891654554303231236225560732832036176577414627838945854742595890009291592626467731905395686670628399306795927426478734601920432859869970245039369840849862351712652052833921951971540276848640778273053066651970128595339937108365894072092090583670587162040682576475420754829609031422697114960635024168928763575532806501658035744227103610098352130374322150688559982916144725544856127849185307723410892210218557169057666378938369238732438430308560333946116513216180199937749241405199388262562525187902153827620319708722765903083799275128193510816141209633489474102936316208074861310894084533911593469122534001591550775491407277358414254095895041856987817302510135385055676403540050870836125122686176650264387141499064978738052206083243924518503107670216626169541958073542111816189735524544915707294275249258481883340793232968511251275898564641271183110485843579130388455562079467794139627850871514651560888721230767445660203573736368963066839113013837163106948582915855228598245587712178986719861169767956420789895666886088797145043428537081069383475438000722098716635334540878611991424420543756181906198184996908312726617006304752190583650865337372531531428901615923569203944306988096536247373390792950629928437687143117713198490482673700334330507642871280890476697620140069758676055321795034923647745681178876360563216981447351067126346973350235363160919175937505647539561139836090396278583222951446347691383979597795358822907499683519212100396652274532054903108817833593287291171318497185274814668526562490483397120621955987873680882889080328119955210297576300207523177803842809680683757354130620881291228371495924567168207420052139944204267580066194193473107526646773411312497549769396451710917352327470129772410968707387053947506884360681468861953197239513110819208023006832941204765175910056175000087621554994351214933889451306069106704800773412217503267006843168501513311714511174512903367861197618180330818945859397261159068730966550918905915301476098509507984369980429702639758072691023262332993266368648961907085639988796985424982382403556942275488598149427023439851140544225052868230701452194571083231469710450577996228201013263010156777611604970785221150231608000358159101636798340079433817943361412090404522805419935914100458558020519731358721854418334728418516537934014557831109358117668056876014080441960908962641017917673628073956237913922438798969169488792610952779979838154655070725942562014227346744261323592866490123658272079620152263022001059927290010421438662466342882631541381724161169120792835409698954274931849987388644890383613150696779766199392255059029345638496881530455658923943938465352911955360369279906450313003210342609134642043646628337763665251918093346065987585599762478552166800730747615944004463984252952936277041958221713421934388334849240227634985102920078510905355800749149440325862158306798708711610806423165637332584078304476926843394317535028388938043273133005918297955700057608634531959001864799796372048950625137650780069594247351058783794078971279520560773910266772880968861994101660540594929542703701982599221363532277968944743230248411829887543598450970005516823196073337678014746582889096137830294997369828597421491778558263612984229579063088146194796248700652158732902684090141594016499950854035475436823697370228007277584887310191877549317055291803990950250889391977861667434125471313154073499742222520154256500808361455519132631392636967143023957532215168530478678294823380710867027397504352626019706578215872802875955880437265684489112758154550532977729301520966746692774125060326996713695536556459738159810135836684036981298383177443334995270679566255779038878088386147236938661218558686226042241471122912337188591114858124408243640319673103935210574556277329860543830908963362522667304626839491782157643527260100862433516774341889207102052408370238930399861320103894843680243163177371064594592145239856799946484741665281685337678472943096899720588163732533615898711794286600268598181173007336150115374942561376213427994021157196377129977123137518129011776663747192858917222818947559946929883207594040125191051010489619257706264645320394516892250589866061438501656967103398540750179158753937138463937384091540017884640518519071747359947186820504433649136571159881608821944077703091550364463967429071302716644940026145790363437481974899152444334736458495352636400818930246935509766021928063629437367157691585061570260925518469615893776074321068384489267926366727163776565117398476522201358792001315900000348377264421943190011643123264564126844175390069729860827611041640597995327339469548596570313428322567006212240034608275226772497812221971540586707015869380810025409812695878912809201904846231756511547707593046152602335780034394493909183851112336752233174394058843585071319303752967893943731058909350312215236188345723213296924824492926090115362869410747820421347675310591115788654400398712514222822655927269370722162345658893511717870220725422509486540379936806564181005182301524473534456572992605140268820905440727291479980200915881846342072571085964523576377835028127851517393257810975442858703901489956868762597022114651227800523323589813718828289885370195838466760635259643049489790601663612703634361110040463915544351653742595945193998324462632507542901508347116167797195995939097612224339762202070573512401526409639207087661682929670438554591897270812109684830875014395178878601599700019132681051879317572895402533406525263352496142782034931830277287305003294441016326768127653215153126304149716190257271691014144941322783405736675006548020629081974895330666130590321934951681352936765811975142540196631312725556087384006959645059548481155737268403243375529613137157035487545255671638127433722652262421641761498799231630101412574861038331419019231855874032241254404944697554918735176440924286391407396163916005911447187207045219680929124833458251044989640096222094732056153280188527488313043614975387894024480023123537292379729972656561347273182054263247185736065154175209250424124902988109427821211657538594669592156088461562633281110435614838127111255453888772418536232766203519903910986140168603396237825893279454942098254413862332784165284483516824634336876747905007443938047940964331171976493409022378296921450610984861502071607603080033710037110833106252639056237368994647106201748582985952249886704562021330680806293439773939169563109156816399001733822314273222586186624313149393168505198676348637428622122702662522232024872058575563598971294596594201819635766071332522142647123633838594265233864515538061588301473119095017423744242862523300397624525162054907164703035834618481534954509114125856078052014030495672207047171699294178700911815815847380387390659864909479837284621795268673585074054405152471674753263121720810388111889146650973303252190696428290510041855945512957301464425148870157598726295582551782157400713902661560670860571057842002660854935799331551511143693819210307866576862944001474163575030239664589231975174139504386591432616807702452603003923109484648052749773510440081642253259393266504466849280592504981456808376927296122268642304523048245810551492600534867081088744541351337880561175797019680937795888194412689569080743658350477064819572674075789889942543282909021799735722972163991869837932602756442244848456581874748714649132401171612196683926094359019801965136851902245415040367174761038777618798056136759850713167358162777909042987036200920380755566391197801019725287501817251535087350290688955162078322445386504181035681308400384391293659474632783730206027982641734765163166218066188877957019150054210125738222627528631196212953748919529993165131007333719137270902467349935010872277246809235229162851788116499065563615516836991640367601500946342344520178530285661721133495345871654551512257910751530355492266084990913669240494260197048790461115898638112726174368400165321008451341769753324083414617261129580438787542236633877534791297024180823676242390282281588032455268844889699735969923622312717204850190022649852753864293085609572114369420096553893502177150984872953790016122301031038746428325444325490101909312626382930355553769502962001128578891534784944533755314595261067695325357537915440792485386798883471841051274252764494278992413786174063423692523354473182955114416543880308700891922105377388627969069778621392303733155374528794733418870856551509993531455486979343134439235846710397744395608677490405659873856720339910852937639228660600275664770865461298084338138868082368362724170881913254856506420609421532464094096728730581406651838892261356909366243098110738802631329853787549364801399482198271086058824324637905341181078168147572264961463404080074572385963392802993139022608002011107192874927887907592262952307861223145618688935996014503416152185310436651961097498659427199472132181723058739246712865015796509094906287990520532601677383620417890342231253832786708914925664262856288341862158989571583687905022537555721760888227550358881723823427451646399894705293765695937684674117575613185336021454265429988595974737738033513635059409813571254572741119018844420925974273861716092929195071488818943215626384711385019990217031418906347072722844025391554038554844794486279987010421901222955103325892230377630302446072883391539466341285210637072835983268904092929858509877055652660361232841464831152106149048428790491126011536189597925830476306780194536731306309591113016534882837984420822280119155924648975349669951517093216301107283282475012584026431612299413400971111404208327045053333497109632492972399209677363808795424988780233071612198165851336112471108873636287203856754623148825487547560191370327937002645708625719830667336095587927993745314479914808108744191106731300222593920268175951702710012483901116262696422214492567491101526329994410886038600524055800697958819696260726458395819595550853271601908223576846854021432943962028215199844158815941506624742076640579973426017255254150215553130228217427423920147594089707556240902860678211171024611373070631209788940192333194086991820867805073239525131165300213243249089461853219388136013090395266199329956019900302204243204882649231104727693948247147773311885036993073179547324732825632688330191629756101150249885787555938915330262988457738029422983222637347275343024022622491349557875317273214286576322090272468768892485978832126652423139305100091625286510315037622603492545569988358800945757440830066958186401861843878537289202894701492833628021803137542286100978851791584604954190522445397685460273157617878822478621998228814303177413475783408080892218897669926691435720942144432500888371319934664049608035225207194509810510802963941554139008007492665620327153257219315738439495767752695632837768247769614768953875339157043231103671806906812492738963059614494511148644766038646660084059130261837590389735986914577803897785899644837056119503621166603496747811496180132173037501083991745730137762189380248987794538637102166414079830699918426086570750186289989620694828086122538730801461303140471356633214087280715837229714469629892570048930958290845817004368996218486752323306216829445517277639080685767205426516980342687598306000913326298364311452904846020971316476182902294076485667479004385906192682642586262809772604147231409689173641769337195284640320207066419426184940022360102519794973514372438372001504692053453604486392715739138190462612904862855532876785898204165086801036829500505705631009557984584046291019118491833500735127327241349296710125111439932519526890720263811884288344648597951039162681446375293442703339764465004899358720111805255503829624465253695629174085830889070227100117965652758065757894214143814580160897351295953361777982652904806248449090968638069317535240439263512557758697491606967769881036786872428248927778013117594209560897627004094780766374048899585536088838587113352990174646013531238081752784741585865881908456806242246780782202002157337444217105638714134532829642838187403608663026857772208004051109656581937573836569475343153936005172261033246107604104919337349550397435326452762513016980743301612719266056752646574762252963285691626758309119037711964574197111795869692085118734567068019323123728721353657644181789852839798525267095919824857159541643912974643816545334444553300632058362286720201540736553259101291827478121830205388088821084976179827348642597104602967824077066663504391645562005955288939652912023549741857517525542949756664157664151902232615564998748794750737587462999813566214135015760512780813762895869219844788258962273681674716883727975517056070758693752631040272950303118673491359788875201616958023315556117062566617804782799294560150912399967182593791899879984113984881291909733704428070581825105350409929391353659671749087677983511041696847660875429172302288886821457225015391714468748477448960958171454369447895839623871753091214849782741901905052981740151834938269243760953453555152302239176420868398876951984726367337092164154274763150430147853906342886809728975077873998694158647770297014398042116493903231194162859765256842478114197538905830388770185921372916217450456107451936308367362966634974773462936817356289261174725708811801315769100875772343390475651880530283457658861459856775165235191732322989529717937282415768974461266142316122420857179996072950750770342223315977938267222328848235900756672021784791608207514282068413054225912663423346173053433358339047699072523192368821458710364022146620103905859397593663705328895336096815564289770500963225126346797012239619726327079912061014341702091601682943856781588065956676679942963689600286296490210269668690450987232046223553919477189267399021310192535273963615930034308199348363638597098216287226967973789003575070472001677984564465565030691707084351821791187380871184046552716908945969744818478402067416410546918790339185288618645744110158747432093835650433596041584754005472376028818991565770204684000133174196820678612254590375902370685966049400151818878398665404958979284826792667653409101748381202474726248337672547295587708190758766283369340036120622349136959509057238934892648109536980194527314069380705945174856760205246700265431624282398354740407932893085118439745540836123597190574994127295523736164117381851951538038666516437115812699701929307688811089326089040885842110616817197664757899417596637341929260365901659104864297574386871737640625032044422299442043253203587655647455310628183881359176113626088916292836825722695501039880144971289660428839875637284650896153034698797075050201606463811613520275170234676445176522281183281664627169642951509620438241238778617935780586164361035848063133291191531528210484880826316883430407044544376882278305962142615628214623810602126813211018065740299478714483019604191401495364809784048774132137274405146559303279199451365045972566319265773486543162536277643327660899118252875175417805098592098912831993955803828700323989633054344420964918959779716175550253555474192740359778159130269744370541165904812951216742061777819931814903741370052477529087436588503972286174209246224850435804957415178062674253219329727920797191234780468277071903504648623734908199756811380196811512127307798767324615776283515123491116286533767013735631522798682208697463784512449695382241491999222899393146987163968818642114084632688987260302135569676943089156811993325056289695606614362675114764434152076975880175937423311354580666951616425254697559455211261418973058084745192977562819645609109414411403676742491609556727724154858684926538150814725865583941360129206105957061450881809629821021673626080067417718439098997469021666362137495435580154194740083496455936586830728096503220407336132386575502855398872553597362479640705337156672551885775121559963580193922246643266328768265415582421909667952494573112577569009576851000510395953905758562892100897947054211328724198387780881100064860832534658663198426579626526498517561702514486682862588535488693300837696423956200808053385910112561798452355143882412777829718041362031448238786492052069401767093346372091712404007669377614215222646569546776732878427274886103170530130859178852978675684235476978918472206793517170155981267259166759761428247168226702060276074833596616784460881124241322274129826650639474891710450640634911107044445386112783697319282750385735358770853349215820530782485753816928132940192656074659772319956542425236320422355271017046256847083625942066540921226441716984687130432309748088195682511054150627775151176567259181198602060226111241661345679047837055399525816558266149759096868640396725910002661614207967158392604347996970684691041078974410092962784368103212537189753168909517984773485773018111400528351136235642877194685113891708801980971754585478682617366697445640245756724588302497625800220816935432066867546068389875748762997260495421953439169117010925099305943021018742433915545275972680546728257110824418693343318030055611510202397066983097891542363180405203487308053992775928653871717947406083842218062337950367927330615274358562787680386890888055806975592546478951882609514369949575831018467580973121151654922005031083640867744952698211257435220696196593006467499453131740641643119732471750834417912914873840130345318412303159278095046463841875583531848869788846876115089639743376251383892136159222360888780530680335494429539309743555155041693998546713139728764458037665133337600053024373009014205425279304180958402220681633991393555016346223892470694685443739518537376917429918674055081422936032887792990734403649643443373603580830987549496099700033428021302368296656519009552866196148120692677943944263959105889693812395605118037048580856199905599681903522543242724116652649664565901666893942401699482289749015180924468789173994018414577397645770174434542217676852886938133336839416494710993517291763393991518761046186417426949963253963828564166435580197866579017205040943299911922946222556603777641637679515689449583148068181140775458181055275802029423429439820699897991640747154170495974528350253277618904203644185601710866600911305519676613485561411675513850435280225242099705479481759769466649552821271441923079201343761066355001832504963701894847021076124894005739629496799515370395287687319691642793006651931888029360235809318762984610415164244124775132152052307172240896747815989275119340603209234660871871115245043104118146007081986762644915277313402156561802330732899969879704049808978770641848519259897389845194453734823772360977418021837534244123142544679324464751361713513484186870573758147819933013122350708303290175129447876571581473329760223430287268923595031469828136772624616233940748037098039482390949280618272470987536901657263739078299014071769576256982972907459496859513509219926486642644770430325270609054322033911771852338352971573739282369160800067919582853075327435553237586865971809152568637233272183659508767375168542017592819019444657403554997963401469329940758685593665696822764910260111455778936749803401171914615041140087248526265377923663076226751043843131432754108991931351850547805747318700524261897394212369936979374026832943868528071829480314811766598886492386776990778098347256513133320738958329235828152194349687863430167504248633584155852068165789664392209882272422352903597821203917246225256791598903099555022953239906944807150559677413171843569306345034747774836259476023697744185451858960018987437998769725472168541227867928983015594980836760356469320471102351037161826400259471283311549386974717142630466196858491688398029677790048731631938860531450962128237424380998699672940115509603829805772397941023821568878178892785919204560462168778857021753423172578336750205316454146681705552152942445449847249059250949379045166592885557807066307559067112829540740575627987296190455928777160764885628890089972188034031025830993459396894502464116275201351057016676807239439227290906967117975901045381983772013235486404623300995234037211573088027967586776908888177887259838928343788804832807712091971633227344385916413128818945969404974862276349280458549244207802806117367733123581133905583776282986058268497957619295404610225332858486868753195845737146021093802171190498994850630432555477263575448761857354398126478891797513260342307764622020079834892429881211536721309810853782360095191803983674267846412684743611197249913961258049294728177146357647934247306693298480981784114995346548197481738917131899722229924081036461279925301743327118407087269431358334632261582079778721893570160604802077160968298501692169455433721829907411058136818360262612954991514351781030607226916790849199361130069367603348303333806421188534582691248509039109809849859856835740464392111065022347645639456856539396334319441372965290302101925547515085652907705658175817769033464339205974372498624769013206068907025001701609203998113501518566780365270471006373964779465715659470329979119750379587433039095351544019773622518192202201578110500572274181598788350611872598449957542041443300846191190569479746176386871879354341701085707402742041068406733664836761748695755886130615643151295715730941372503777962238166632526710255425620458729888327864635834275661533307537687141605361490255019822419546850829891686776526150777345878006566417533711930271383596351688903419523726906127577164789220005980081212771315222684008231890171410191375520154182894299806308504719236024957629615380652696004498126492068108279719571765870284587696509735212419217161694991346297997185411707767951118944995232837931265992248277962341271649513967116887161816382608958672030248892453544688295896183557099492915840439680318168592492559988236837545401107101495308152275599523584666404981262643138189520154695959689527174634624569339784558754311176979759566505265553395164715185452344902802609423842332128524487350418983064454239942682604866689961716070611326359060345517174735836864769574754051499339515540639645550669690376849142227698472377714240608544918157094009138914831153068725437574260787695765068850906886051023358037276416913018772413623786858055763595104971501468844912228630302168561543852786557731524878407305358179906224742434322527688628811621820815583439889625922247294174119171996588591825451220631934956872711891795195144689463636419526942449856807129490148327232808109626711337923729641141442150180527632054798615242981924963435215765309990992657585855237516165009380973144286211889246027235892213743941465717781804268147441110192472912259984339795610737681241584808554442672824598793037201621035734265728478653664044817881381332317977620230664860064108396960011059732476500426028564207280389683878773238898593610873561880897809607139660617173979460733507263002294523071510957184956070869989423709421736411679866470975511216234028974389953643901625335635684939336176558592205459323246303627299318799830432266301181110036082076768424518900444906044903230025256248413542546739902156615669303726399157591826184068949051353085103037666067553627228498879994723442120197411434388710403945247298160861867180301336889594423718089025680804343953437193664722830254654358724991822436103147365412964096973125163266650689920291878890361896358051611540310613870738827634349566469664693091543898360601875496586209137809976709367347311785284091495390925518575532142184032814191792187337588881786709011680502606097070289658624371256257817878133291695820212884051460545187732413104484267349359898719397101368346919528231046941651134227461290844070985038620404160929647245045753141045037059674557549517077297230199775978603656208590932508564238655340337296940284709867035585057440920246491024200703024893789029426078700305284758954274514978964016750514677077966994703602811209669178063117921304850896755092993267722662835354786071124177389027953345586665798534723199009214019619001353075254648082451041975747369623019281248100856304228733035879553167799974310710931627910194173153353386591194687070748795405525403854965884361757186064920409253403488863723245169912197501341687910373462364726982085294626220290367241868470455009594980237955888160645610912004119319690876686877521068871699612813775381006314682646041683501366940597253559822069018103688245209717366418560074658655444188311738073588936047826102711493999718727411341440180983399049353419712437648550111211910220507756029572902989671052246065217848888807770221081911301030366229087767203851074560484749279348211928323510920936395868555804620164738775183842570403371302397879220271055089691932758461643953734284205515150712447640487231620253556546987292250863818730376807654589714669957838864035897102608776537319353034298171864377866991503422890598292770843465884892364508000080996597915819933883280337548150411087616794279614476220528807656250576836350667820231786308056893439685682625775358114990486633661243092899165112570519431085177443389831996935246293926731854775176910292965197031320631851223040010924049651188031196990869067412360193671621905796315915958717856358583388004376762252703789508659473274392767575019240227331670167930556092436489705920839980090288877108789768873849433110798966773088281384912025166668543225249183529075744137505302182338666346972198920063626644035692409011588026307875775268608541953625363588709292799274777985788993876166934246066192529021510343590017919288325562569792106351404129891103312287692520666561354610772951489513324377772928241495158032726520704294873543862545358556066879843493800872171485040788889577215348611723212816903101567258057137519186146420762459477061194915312335710205815946678076183901607484376425584803225272143607241690293187134057848670922680691657418130615706372993543993384185832740378945452238348022644449177877498637763191482080272970519034072424284774294302739268503046871358369693376432348723607288413692391086548487938003192252731432293440444360920310681103891670267586631403713536804009316258329368627129146743072137513812235518961869972208296140874667434286763482708604003814263177642038977794302984738450575360497600060856526061256586982142584066956447343569394331526062387725865041468306920256828054980012423036317062181272031764397307501344174952758763347615967313912166564372958585797964456004789915672891049795700832281074490475117784527310369716786692793189573839298864262721920924769457998536835770810839957879730606031699685300561421092680337314157791985350453757930716943954806510963071994931933557407932425139816194865606237330425203069087740778084382947310161448970485895344006156657544751672241863389416037035929184650167227125530828482942337875107319998341535805765809370866984938821015940334619701656048161393383692391252166343138673661820858835285941058783463122377224646817258518542718080749105151714041413412036308330087590894189950508290926041597125793201228510179379591087666976540398158029690986126568053046325451437231718256082093907534972215375938121668691992159755823465438530775258499971371295501339347461468875626728889214211526701899102003622878401135865361069468356756101054338995525530389039843553824706171494712106253339009547103296003637170353079445682900235622969808606547825636857873874089364203439275626776256730508605867591187008936281977572458523231618693138837739678045622906624914687169919822704779287409074408823968417664600295310274861091029539159761015330660590507330163348188938972268569165415232595147345448123229622186571886782763724730939889926081264288122470215793237228673324939446613402093536205968226394010691265255329051338638481569320298428712686263154325043697337863656030404957054854016653212842131176376700615086302213047165032560231459968781311366647196309914352497608233227607325995693652822916582300983696425738101758678617717811484002807843275026582723309232411917190006949016682724307498681330043771214990674179253492287048039229002009331712251078846164077311478797902797584346518603775096383741226256869737267688313822721601343715531718249949529741998766492584475269801927316238588115970771580606150322363455237277983132755916305127590677279003417294365041316988853092675741035821047077504520479503896551041689337119198440821305819528644596327195365972766217285107114175475627239008901431515451124549317061349173137406584397244902668944299295457592819895014036984667991890268789456202819840682387413743933972110480238005861637291251132114716299902346886647159800010989837992463387754098165176500024602541687958580279538005011520428321295010177477972736498956023684654242987122826622670764989434902162689690236591458847037863015141257070476225527743538889168932987091990397478096033601920526307208720835582740009756111351044212734486197608020804742580915283220009554793512356277470940986539716425787312101700414433095864527923178568567131758671651265478433922953947243548976964973988305881415607060155926439492082752943381199887077931011589022807677989425835928160909979760534928080768187096811162425887649756532420472309925022748533369708367558434607816469215616433914883548411246408876744409816512934800863988158099973377494903560262299155199659515025903937459871696638911869158672756437976405512828878973364920588796031968043237123808510944159897716935436084880311001206156571575609841526141517555611658075043584753629253045073708774842129929138827229827312399518102586111060917519825733595935557988800594320775815790770324895424986707864672336420330652230573582595135691799225357034850419908987923834697219114036263012405633706690999167376162261098413110517681077723321682890137631274026769496419181301348254991344162785630341408266264305072870081333596054189067466474104686943778482692457052153499766658914963793565075976276871784073693660430831374946907863529180632111668328104485413481395841276918938095956641952970964557620435054413845995705583459446631934591314486678577465439039503419324544896109071230467840609719939551346677177845727535318441250617793477184191323943408786373839980277936198465821009346910776705711043938815507091243846084614101517930413792772001391776029097612436309011219508614013744080090149448654608740758155623301160016464403100277311326449231613878933233578150483802853401760648014770162191473863773306158544666466895371489364448470840098183815843858636355126144499575007855757486140116963869344032735420387534451448489239499921228077102606083202427097688509275217680480951440308505117454810897746923441919637604612457511682414061648993080556393874832034921000055703413368470441265774848931257068925163513468903409830145374437589861899091659360811400235968102888023157987636853881660356438766045323076487240053871269286614109403228737189035030383432132759975917891742795374993321620233384162599540425648533588417820694499397100243285174451389231003459501732092737628948183206398027318899502649929425722944184336837017372486391186417687749253678270192120965059374383837096848887984932761021696791678518428681940503512752089241965205916533176397450374498105484090224479915610512872082103789481595920243800827619400592898018564281710490700276945670059006763746025279148367181630152331881449388352114021747603989858690702117871050537951240855577967355894668491336698970888733518063730661326913389239118021824243012834587594960572154199725182030052340394992542781758143387782962568610996702872081175216878309665963442659902853988447474610997610427611451663310606537068548794313339829226537392568432115460745276765914772372708450686950038306280759642035009439930113097259067335440797504685405066197489556636717624365243872332277752351840048004405260069744122352032772982873848273256794498163024176129046812856116343333070440253146278892122028357902668151694340013553739411411924612347568685924856427526004303364944198680321335177476775745832498902459820818117987879339823013769829780778526128527568682685511527740597871624273877559833148633305487788559123735857995258448042718022319488720993866519765485288285744263087830987094609857756848017899562530085922393954371497636975047346834060753675552408133981867613451373494524608868060400753508323453059246155044824068873213415321955608581677276508441358309892733624813223866446570233360166644619151542033618220037963206463599215509088998807481020476680532610127010735700685969949969919801822064630451608314105453556757583164571111195716898743727172176976635372338899232550564784323486339230936670470246880597678270652184042063879600083959411940724775973495388357877848001473742397127118558331183496600236024573352733070268744369635019794267861406963346040977366326167565068858681601820714020036211831079723544252407570816133270035217222321793700263436537193246004153793294555670097296350261635661814347944051145926334305903705829865492716294310269098891273461526940918775400076303328271872884826592495479201287966101559190675892624260706089511174999518428750136790536546473213716736617689818649891487945409593784273041743970809392776903064312958010606940898763013961458926247409075376322971690756025676484261362679735838578395998506419015225787244013287468574780965559868801041251618439581360832283676516187150060395673106424141677319820017111061130295590748218751305817238859726609508465378404760096045057050509994938705076925996457108296029235752557646576952619393429396766616419793774042217734014146332945145831469933848175462235987517843715295872180688152235184668177841082844755800234315994945907556447652583728393727416877575587537568764593153608422779283704638076871014829471971341443966081885598510147868925984260197709786512708128829091159863671160847935295332594320306858152552989610901164591731823258666765393166385019143241736895412636818619178351777259133359108443371651690092090359853274865322403007653743515020618528344089161143821733467910282443134261723791731712118335454563996148343054363994836268114548332837800446151963887439395043134734968505129222754763565371062519518125797536937885864429250703727480392780295174689072085961895061275511179660749255071044292649253746828620439068013788569740986334793573218690507400847573893300390779135294293009015911664660901471435863638097905384338631029020260639526197592130892368623671581978393034415163625779245393533727160632549234478751019065334354242258862710177294758210684543772980228739166774079179746648634391747944804435200632477480638253361348838032444148060207886687836621606547932735367330774815568803220402652961367290737843477609969388037287613481462243941780128145305766260578472692187864970748271751116862378410376347553025707586594619601376649495041523820750725504170811214299050726814280950941030896811231875410885951252671403969805679466923041292984959764370432522877087105005531005656536353219587470263715122599006328848467207272996462472519537486048419864034587395447131028988048837288290756087456816848263511783288522707213657123132978652176912879974442763665101840934189532840877833878538231724807907430577623187488506082809109455680932695963881419166796073888969913714961320101353482924576782673962228893397408311143398336319278632564739902599177103896124295272681471228606645214682300418086155464171684218702589854033349497849473845908358293250240834878995526516339198193058294028505731059670650629651952911962382107364220047781973788728565468990112313075114268822205787753881570523180461769736894503713223861599801555107940326978225605437058078869277384409501922752685708035501655820398640374220840900477925572356406571174745091756811554925609606296325628781730603703835497298658621127831024572032775532678565852760612143983803799765545654642336947605982197310843280255253101959957953527027454381884347462079556196793293142781072170565695909033871593862330069309664425519457771172635947367569723074503270720141723512845011193392761568816342247608767323515040008148855550863021158678008846032814952903462095253601409345229451113598445234362002234815233730476480577307205973989023277372795003885087923825658746260786528620501540048029806076546538121179549844080963376533763488967695043355679762475913025419476594041355523882210305725315233464758833705753246729746775828892997845961540852258076433694696384275696343026375286730584543702473537222309980239801454022977026745417072499961868582331784434171321654853455728350443109460713557118797723616797879533488997270977757011130416512871590200840666885458320281526115320918295472309660392938283944697654336887227003487882641735065097542967439134291507980481639220220142100994341812031732755246452367550283188883087948759987351724334230855945364189763067884121111546902041998103011002996239523664404632094304880240260899123162011330466307699699055406518980711438781899165868103999474901802073878186738552301486099938697563334995542452125609397337014622037626667927140551024767815249980682913228769236058800421929291979277117486285042531034258431372250693283235256911821427162135120427316544338432066843523815314623818569810021473053995418457296989896018218814791982815047653562298748116506169988183837416915083478142429506378896183825108521758551875010813881936317436636242072967217672973879347803694584355567912725328325283337271649139094352281445132246292556693826334228032294551685344749350395037763870593692032434504968222896941077077881401181325209874243302577264772693411143774419433237668242650996613363154181240187894753985408563339975585144502210274278647912443436441662697446507972251212709651747569109878013088335628505167375015031114095360087574793228797427626448069118364195553295698832352275068028492849986311742460336493496375648690305177908530695334321710106891652179130781739842993509474912405011395136381227241486791337857897461569340855349067624664317781120158465657843308250366656926097254318937079596934552089148531631269309228681176853860080007418763980434596295568263220607331901820691291714575656304190151644320328839264772792846281438570250215076834453533468505075271160383681592417933762551242774975410802632720641274301070086666777842938423171600454606687894063289060352800692220495734939598540572285266361309647534306300624292867997841160364915215630517795261496076151946607969506897164231983469347966281200889362573937419219014486620841579401095019849255690368330561374183890268770211716414190875421970511654474304905487746152950793022960693855251293650550674671190963806398693709006817944094293006017328758289772961468239584984117366527232688202305142104582531192990796126734272836654723456395655723208603110993041021103781229772656190871840338884221683689279545216014625275416361427545325700007237897016138754486237585796476338942731380732737112514018673668280020239825705315012870078497665633241028035427488766367474828982541083695537525945891864768226002824399215235536348204343959078365105292922009709677697160238131691989450987477067008343215633556832927853807172624160883725581681863694888967544006788612637363839438485656345229352987234630571424754493529130536806798938656728149276871825578011375033631309360368487388905775871270444361245799482646976898555035127081383284060421318200594394436473332895170453351180465879995624926442155056662403908172484502544360738842516668118538086158169942100503728412269079874565223411872243844488928597652508279495610622290925701376293461315393549273286748266734251427944053193572763204700813341062746831267097717129497654760980161755129046907418425652270176858147625992931316960021782761237354971317393736683251966023164286129905171333709367633890875881500234739265632197153660128536842118228021496136724048259731959748441039652230220655590964283562494286064526137613882671127595841551051995340844521234282641457850937577152299514505072224313795079464801947506015021175148113571936920367145648796085689773045153250479415644618226951807377077621110010350589687906185235430315853506063999169475470299463320108375994665637111436247642419937252038240940582063244197419643299442573244690284493481622944297343833220490909971289384270312513162766910665010356399356043261999087423089718973181002087066636488121006410097384227698804819256649102461248140074743058838141311420981726364827586389216879584800799883317702831748389050895664988788705102699237705342972264388837871973181733882745575800798336504075400524607381392965190603331118042333869119682875314825298017083042556551900199966549831345905214886408250416047054009050608012709602954609267720920070665657335748886165605360179278376881904322216087659734221941052823663230573845610969943644240254021289883220914847012831809111513705098114054592285689853219395755276643505701775143740521875575252379535041536285823525065617372922261684601086139296590339075902659889984503072634388535249751265470311892737540975196357602648799924152569387511057036467998236771249014389321723814739332124012793398422929076801271923628066857295253273228586720622833677969357626088802135506180155706835005324707396655402740231292198784959094684123035932743424806720484539449737783434910364226498540860079573639698751122236789611485231730736113649638853629396341705432106549025437564661006023975513560245061041482646699556661259039824717729664345470765193932793452370389491816706131787976540913918161329680077814232862534326530938777478149578691819405853921775034422216577754579920752813573425179895368963281192017302368548519941848897923262841514651988676031847485116606755441875977507034452061494055533013436957882335484054953074607456312159611866906346024763012800787904940508112599988161485843967186481234185814712335258518061759379368795534363595244142546369207213658575022033075672687710788856051466617370257132894651148492545998228267249734657104976461194654808899560034103880612281273917451734454817249930189352710375490981151548866963383827636890357749734585225877698259204297614773980468893570504204913018211627937224660856147338496221741000007384423231495521641512966987061621352874124929334688786479727875109127518886925180532020944203530363817471037307530839551297257861778250747066026127491225145479532085157986977975418343230129350557370837739914740563191686059427356324817341393444418261948238295575154147777258134468166090947847456413656262651743008702215854240669942217110959547667898296386171637353620091296917191535900625981929685230624937748565285406584125676953266953218988527426578822990553926805620750629557708311273938845710557038124772537799434150486614062039353595723112333492574496132146698382464709651340766137652620549028392247159782863121299480868511504986975283837045651575208867105561579590078309655723183845194074922836369043040220348059200725356254745042938167273498246020320760447377742921622906892651058878888208340283165496141343597174272424033623843475947095310405073291531179945377232541408400512255283177340064920779775109357661645781193140241417724961474875310267117340348806424046594098511959630404246564185472611117255036716955323365600726973135165820000832442653827601857219923280487395869496520801053145799377898061842737206282774845707634681927983982116302856843650832220912070630233431872167097923778919257461704844657920172022783569804136380132680915505903778019519798671119778252051735683020641691087209193392312016857644290697855436731844832980516961823189477006093130735921155332205626456409489044819963812614991753626931151934282642464134487002946547657162508731008103304759086718014855427631929578043667263972052920066810359627246041441719476279579698218837299924456956799665145732008540695895443148866375573953474959067011970088486140162850938034279102494208900508665269062033035619723384638137736149173796623922651595614132471078725067938018887188539742695889118215099985140287950172652619183828694989579845144937600652422833347093252468174621854396745329518616083145735102996302186036706356498871254977614054145572673268589702603666433374228103610726660047100141227036706331144688566607987136173297611948297175533983089942544206007013320875749774399362892414456174491906512534992627632369572306913673426405848140797479946555854422264480423796370079479511506110895211395902019035251271959500274345959742388342483872253538365178733617961475109645169795172188342679356196727181008917050620245511626403982376637374785166594881223775149645339779989745819555325255023179618756109950418498791150467988021427096166862392056872223966996807471128745507196695912341473142558909494595307311359214296091840230334555236496050257969713621211404047353302095467729380051590922497982801683936746823130221398410209042271637306309445212932978008974889084367544605235069722423647748153830166768875374206825171186695489363278602065477158161957299577129382108540460822261459598207963484678495899648983285244091771550918534969927194714950839154984786461780393773190363211999596486255202783807407261906813705169033620945685359853338666370137554243463152989813985180289289196015429728809907881420411487449991939543399563076370522122857137234548132135799836638760145340785234794544361443817444355988671803180579258721911130342453423855937894585904663979909409701264205922952277093963625125934899568546309361925108970583918626905366789571711959351577224349249731033145512081932597587866916060031183294974599064256096521145323199921521684268611881229089323949445717490582803025667379334797107556763227587189968556060052960629005826332168349846656939172835259137912985937683013543401241916173853666350859757705715144847640385539202685424017181198144647284191715611170770562066334992313723047194671064090523349365602640884616652114426781596307146214357895157906053243597403529398426827562255138662644101973327137699873549254918160509719270160079797149916069116475321538682709388854383185061365450053576752477144973586420957225439168310114993862314438912487475498017221010381147795794284964051267244174016861265900466896860581010402539099309792886528620933154464295199317783415667103702804991102815285496347088835615006742865043984528425914250125561017803556103674360649586334875483231334746331173616339038658583160322413741825288196259926995564748190301999323169635133508162093862572870386965548844579555908348998084168422992485924781193511551186536610173359238062273507234258750987260369943900823588842966445610387419259383807406643630353478145430929022226850044913504709946079441721874007969613149584346616519313109858754475774841697169040519256270306835398733704425433280469819626806312252608139933279918760723823447237238884535398828274789331412883957730067065146069233319883099016838667221738141861142125455296685590809116209026306977104412881605595376040604399879968634970603520286763318869407717264667097583506545695973760627085013438578799521225997700046203328418042870827691814809716718718772999243143377817709264077156890818416086356839261578354651405531944933963051258669076326814406688498166388986622869945300705957577857430901739342176172554423867417942627426035696342644506425543907268354081220342588055952257957016696064870563375581222618490081363876340860850209728980149552397051712453673472575970095626194490748583389307203086987014812276910886284821338732102489431778719434298178454493557289348119489600338159984132858431358790822088991292344530985494050826944174295365884261385890301686365282059452574314160615608293187057036682481781503933859093704840952583606235412623635060226277849060309876956963663882213822809969521525179221496763661592283292982654605043454849213490104502230522250146947935546119944278239976795216349670658676525535665349646580029544154157854334943580670182359369029457904001935574802923905382539591138869267119845139816692662941883452295493332484068869459706244430138423744677985372128549321120788374136592867399317214733844040778642642776937681127300511889328803212751756394342214519399851817200868150811968141611723292499138018148353953140959343913871794394270156080865019390061423386312885591722045404273455451701286108150129224114530752697932862319479975858440346879510645098096907564945230199414880494815566290566028526551263219476337687570153708921583811491877958909118429344842182285339669068269418030278060831286643690924704948549313713246439217108589516996765077047552098707887775250295478536194150676155161444651146356230428207844731250936505448781349751213985928780428098600612980263486232148326533792605402827424807767366310125011155980644771896019605294635051170087402318576107161476420401440540568724761490113548625296398028134788162069875879582260105542833803105481605070117837629656378790167221061241831788750691502039751926118793581471099312277579420611150469362163214502701319310191562774969470265842077104958969313541962475408750730395259391154846497601462938522530967142938348248298755869932066697072608732651579733990241596092689441949380429482246502017451921813537117298368975785459085570017495126550896804393906104002969442311300156978026066511520043525139709993115239037536588092008854168049613561962666713199906968714714103633468180258425948423612929537191358411642415025289171044056924536362453165695697263305181778897641748504203311797328828615391721056520195930409035766033430362727190196259978453669111814291360955017757921577875199925080405276607714591551395781237054484291287561305519829735154662553176274291841385058341501259432950222440722376196538978632173260063858914024581893184212662133322859367082141258272819114145010527185230416712465908804412205668243759056329733798276180168731102267615521333056241772153055344263688920116618934503368403815542870136374545904201781897714599128128164834298366264648949414331112135529600176745116637302610959428195715844434514196655228302873846295017551301347395569892202103250845279876462327840784421774720664656183463345933240489471759145582604761496891565729631858602865240698085575186931693053123980558332908712722760466874578434216122130490326609141173378549227428969037303812680864124671925759531201802928750129082200585154619159573765339954555736053488531608008984975976617276101905292648074663737660739766361532551189368052235842128267226241000732480269375456671862009293403112949292501191492934719405628736795346910691550069999279519630955381093916257882891409443747431416261785494066726231984553906535946555222269111797980347406291474821387493134045845948003082905409655261629289374594997992807052646203568055260049614789930613536877643792492432961744705840696570922375813170015725757803441299523999500404118794992196395630445524643496873299090379569572317608717491556239942331401947890491135598337243472980431075134127843311141592896479264939256725032189215254537959575937650254497682668973099033266252158600080137273449987313871974857879375326111006659843330693027893301936108689096823985751293499652241018801679499830700769534953812963854843821359791592496861624506771422830839698760780547006022633506766157936391677272022539781604093711764037711914644233685768635825939470355710049617651216505290702088949633318247478820227166174237568023916766454516929936717550727649479970098346709642002766277270014143488430217395719056394936043887085497015907756871437334422807644097810464316954174069751034510029905441850966619144667997952303225354264613022285915895577335960842957555934124996982234730795336211661409107794541640341213228501131319811966641981829208900899832956078148532127194518834613627944339522270511598604355283847790625863029662649919597621912320170435279908401481306576107260943243516718207583629501981460887982611860095397733828016875153256661315441484256359112624056290718594618692673096778453067329930953119496485309576513608769229813318462562627999017311982561367362388753814162202634530744309204945749573666639882158059810876099102032020752009381281330540795970160434446866363747133081809458302953073606635354141428570924960117164874095053477426707783598731164638340270844704397795335109967380892836076059245847344729218983036269077358889009823251288908967074411490325445320725511627843471819839502438121861776861978333119300915865536803710725934156419188240350205087389780099808324123252436327596932666179084460278551292604465685053368461582560132808088323084293689209038389386808792933684366054276422930437258737862031509896569016487233050573424887351721220737038363043769974832377470105797923450010351293500466624195392366739068056302754602298793274565305845480413197595554058914292386775513816017143020214059017661651725942245218621147584125000977518197918992236275855668230077687158760333185309276727925870173359269748240169663782073036868406175216769329501432661834624823261603615888351523465083814272756583131390651531681611505675959737247780544612811684806418751158411167202327032813919864960731581967385829338829384151803392425832990979231989583183844293432070630248193533387861303686101325740813291951153628619959983835897503775163644900367444405991161980428262931756489082045597035715035366581630492500281142920989443865059169545076809254575057378534680444480510362936297217948255178720373599569850040274404909108701471129321347296991829840682489825393281679150830706715499151370137434720048521779654740776047729933126816618189760940592455091076877054740174517803942061672287548347220385807901915012217743852584236964973427969987218469106092539079791123736434554298099908699429680108629588304284235185258096223549386393481205978995862735070072999986981023150744564364585620351629407784170150066942309112471809950550089306631097616500785129602376564245436168190468567355421918098163825475338196896414878756421095494473883885603230094068257007939820314003410606975315706409761584174745360142327413667819947618017217558493942259991603547975531136366615486044181546305843515345698244443331192904829295600425877551997535230469124098709042918042611192966114232802606455063196624429274024010191745163938116236348912196610016165405579430141615150070722654440976880532389284132397208781167989281142925404206029565745164697539950396589950750855916724608423942177955719796850201351180370750134013461890338341815147298267540253640270524503220831194454263744274987353663252060506519573472079414160997545004626331375637612416913726079673392854417073283587436754520293019430815737266415764611486122397210127744434245690972013870455963827400810440187620217566728198110209691078072336688645800431100481138312137829195433813681785650276237504659680940862478193195071326230490015573991553214534185162498261507640090353155029296326435610666842004693631546850733019640790169422679539864242568314007136016865056473564352248400384562555148453568948567191480467189883638643102610880147244440992312603760798243989456086751817639402606378165165265324796620089195053728364315378913822804731179816200996079277727816099697779695935700517454384254601319498084383891451102625645900061797298833191375827180644603543226420101188235562755407648803614617980166821128578033253157629545935822098676895971153368438131735369282439943284815219888630341842381830211174898735044716684268999138567223235716214205991679021386494655082088936294443167997700619457838459463156171989110783226327684655953543825072028321187727196420958741028946802158303667279855173999180584798649018262438601951825704753529559198918863964970686414394100176475396222319550249950896544836832262100811904271384359974437588347313998156850840810372446880262267538993503627680268931037875469779903505564707589352552854000175067833253758773739940426429323186944475189949257242392396984582828564698744771935338515911057665234376647799442726149389883998552172974335929784569594098632535529083353686797579094453680272501289837730147784759515928530273738412106226712678371423282459068654945177948101697255418363640148081762236855354383022402862563223687391042843591091950339328143471960277933428382513258330549647792372899317657840223412604446869015795638528678445593813110539754562217214452471763352120528779589070605892587246647542888454510148992563009009952946215752379773870194092406641966592887130431084932746341119986156364129243609149789395518894939175781546108503114117296414676759243761527663093895896721343431406398595104507547131037259783181918088403640352023709409541596287641166749606745612958558866702785372764538493949534147138687605989154065444692638191456094993284824508274935150141555312096703867940217177301325819086144320665298621024800290541899727259997132935759649218990219230445071909055259680687452448842853630761291066414470578614125727770907071451032122151522574350623255866040262463944253642921605864110978724634914170079768680502273810739184828712531832835223379036355807396401546912445232683688373354586196390403204606313730054002579881175372815450605517953466736390925487444624071041530965749192818925683105954895416699001508553123060968298629114902851436263342324035552186844206226633325780707474017050549997513786327786641467283707207885175945288052280332052235541419166741215923657652522172841644941071764287756832117870769411649050865617293611823414214015301955668770836856189672636980544235690307352981958028627164434828296460544609825559333836266440156760058351350491679706912187927209470995115865353950372377267185038135328628219425686925988452198026381436353359208192575238228050828938922120581619131930039832941040921301918586200171660856476425085585654733053118848815130543464938324722548498576722887389825414981835493162991305215539195655778338057104433909765535330147758445802250695668696925481044835402785446996974709968855241888032760523777130006124985021299218557427922515261294553159117256450535889977888826852869886623384925229084136774069359944050577577050391777769128270473485311325828696169753519691468275446619057498124535068520032571806108543635344077765911409985101374973834772313212875296776096899222400645648024723532637903207090038094074933916862228279760170165480244621263899630627715636116979169622164307236258798372119984002938708399856119872471533190928899811221541013013710295606566134308607268266314271223062768383279064048735113346330647297641239106800099017446740084295153446287676776519532436693624416660454850989054006012940493945076339362265267237686094303543095580684004976218335996138225362069650964603527803687614813338594950566384188354668085012732378982666497152783244798169931371131977135102821407672015955943654211451738947519741410284987205082053812504787892686179908526545052642771753467628906185856177567338666460122076956560234126713775350482307582961739007266157482066634406949590943837758886193126031587840674666919803294941786893119732945159320792209649522265270968020893949364217090056055168369614494882491224473756932709564599103722020931490644182539723987604956547862552909474966352638961458985096458050258828519728961741661067324185746732285576464015236303261962410155815208215974262541026946790181800564587754173703412915438916120361966743712155232033134746590581718642930136093393720801125385855024883835119039010753398602414468884877259743910378581221841854799037980888466376849566702954297225958841722115574887155440003700651228780166988027832681645170456241415410233368283491151144681372361554782739346516044722685377892346499797215947367028016520376104120964279971095312514673099799530263410103094224227144528382780026733929524295735939763423750468254457166366129460906779987899485801272364469355324154631079770352513320538101164655087758988456477256295449152811202105536565647911189058142815375851842900903240807300393542162428673826240331056574555623326128047212177971777300919987803566223420135263077843795626322790148077185655759903712722219351486534053376265808555666899608689769218253262224893925770180967796279091020750856740334045185199828383746636172774351602483286703452867678405581825264286532311711722777309274405516601080972250290107843688184102395052435614154199978080457087283064738970375473853825085350500230758444344786808825545249453030627762917366761164783956478841496440951205322243635748777846271336781231780979543110596394771079531128273139347928289320230341147967643646185335424665158357085819937589375469374042192832768140458504473864304861412798850444759218580514780229065245762865340955373020239114111949328982640618666725787120210392712808417914911085585903080540882804325139496529819826103804729108075862006717401355215772594304620678887711539668817260254349137111356447543154655750914998547009480452161706945673858170580231041234687138160383383170543040112240701933615462051786129930564636227919839053760260217242698053489677002028203996931027274590543095011380341014666262514112094555330498354272020493708153353113098896162273426821618299612475031570398668519220729163379901662690643049858567492061159610380660470105034674877442103136746588951847663009270805837170202571903633137712945163813889366297393566521778590594803725793465813561371719635297493981829716023284355980094217168608215945587290507879982673782238842895869301222416968252689783152696811223212792275837532071876627384269466748636417581883364832519143652219612831081365526013795490788391160875926603494316897589235492213025586264638512596881397693047389870682353465772434650044766357597755699726052689380888233397898499947857317888157191567570469105080272254241407049219007510681322786346621405792937908850829154828946394113282920794148536647863995588627977164497445637418010955934014770244948180136644612692237101544003699676441839865042512669005043236366649809502485994504032108592719841413389140647101038315504648159669357545133446345464549312578707062236569884932505574692401061154837558855737808626886608891054208723408812775134157114126591780926722941259401137724808498796329012458460275589143831825301095701208732514454313581340392491935196512690564285481984583655725274748976544382772393555754100744266495092735823428879372233202418016368305637827293853854859230743374907549631345677444045061294543656929978597240460132620411103520309745012305865863112899235116152533434132443470453207718789600460481976059814333388036864747314746663143388744415309370031120819331935043066395632848978928508549974898782964988374621428511219601921771745897683696013849853371042908180873577869580978082995433082660512877618874692484306436571968393583750532303422705028857813460196866362719574467989090796226205505586861203288086353710717106308022795755646094437478072821011401503576008993298741172487476552017709878532493074446879294580719435425942458031134986956047862886675854207115499131375135959967832591841632662440154130356451511620896310873883069641085415240942386158262458876026401446648436681828001106193370257912647236931428879213172335763981459505428756488108205300602629408206936262654208861325819977081566767113208939481008831366861620332649869407515748983518770223328513291259529202966956125204094779469907059047327540682096935095358460577113923412293533393463654131706520376422058542938194764718568707658319852128210048769203403817112307233833679035390807238875063820562989560628225833057823214339743179638989320857046489999871256687277729378883441651327078711366736562796896670769180458052995177350404399988477996812022762152193016940207574210245894851899730808797104346489924168283233437672317747575102585854939562736497717855727066138636510400030423753823353251649171073824507620061324033760824223551890543075568722997464065304588192505916813362435897735040783286791068201476402472581060633812477546445958712209906690906124899092971596390028291024519725356954561702668816579558318351710307806565274239660719874775470346718860469623931629296011161012908748475498871248249046129723308420033272802974705503323583023231064569255047352721163447352974481223863212153243817560223573849352084583574999023192483391076843352578195711468941534295330758344287108978887707802644019037641850802791949244777774422555228778865569019584355662574045320822633544775735248213838899673617427917031679825091617065095765099056672264125492886318826939753361536171259666452911837876916619469444096575981586236402184451772516483290127826438647982420920339225532848455737507177195341581016386654106711407113977609967968849289466342382096350250213651875875811685544503563890149280863558800198430756483789179597865612297123851759392783181873714216669361456608909864266138444630653851943645073204165643811681420834982259861795980213013227530659283548858701500315219754087386706109263554783502766009330611025221923377437054231237826258300423938769677884813955291803214551358968151295476655397597015272904235047964903298409323074061059368520385508334911415003516529236036434879734431282218669989631339666967332452520945272051939874554547362750653726334474202518143207099700848353784546893108905896581796386565225367342500984837029248230299585620032882336595599043705432402852213192759615943776783470693043295049119555229122005708814680107848803668853864264747619095763396404664356392826941512797972281178904277569916276384263498382933040771491911907446795407517690223354248884221434473176171479633189461927730454989562201504636788778275088043099712128862311742981134090511045177193435968999151260497569893010111492014580705722333504365195709425631603289291852897928877115345730180792557448107327327544903576410064591708380506779522554262975207165092899242162405067643315982740329028413665136718597829812415977651961667456050241671419857270809385009955132712324918059971315964482632659749653643165710341918858778936866013921534256394343986798547719478596746291013553596541312464319403826572973546836995972945445386442071624522244851494970687269720124856584607076902026562375274837265688935542293232990615097532521085575961218854432673719844860834227324102337687239120376986804870529962840637355660800385646508425513796216798415654075996897873537357951671863875876382644687245811375366531169852347710775235803291286724673272879731157806170077057288453280921594116355016923531866586307117891426509141779798777086635989918095163652074293736280916846221211222137744252039118843442600099649554562313859772013520747207337194745983060775179731817305559687019497037232609761134361944241233941607619208036427950696735727997370237227691729475126859367658434684283999017778773425116581781178742951065842563582927366722116646593250644027957492937826437364193506819314097078980978790345729013864959606994589068031369008688926714329141806334469876327954098930651124928699394010280378030306823172219169483539337352415117360828689037413323048703622183683667434652958026462435526657950781313600627021451765328174741034669481617982470145529573156616487262785105350854717658242239333550424793138690209160910755185261357184377839426234280975679220380534047144782382088420073068981106596219649689292054696291152961245440105268504233474776065909641958381310482823353726271583287726753491290279962438125311059595792896369776509614656846306287874813202285579496865973646587258455233451729533163013470628444241348443107096485819240059724485693793311812424670105844223374240181545686175175382307478128717587940464179659506944653033098878671286320867034779359768314670155306188423279460569532103096481065741268351311350164742551053800693740556800331333021809103081954277165811112955080438074610313555311775263594012668621500537970929585429140472781923252938304741574444270074807556153929232747312015299419516017622777725739538661265785638573509637776320999758971758063248909542541455103137284321602308034260121981065244354437533354681913497312743034984478655001802968494549969363029760844900216599427449949529650284942708534056847769197016584559113699213729787304378085247078291587571404669195607896645982321622599755182823542278784406625075432577576745723795408712664112351186449426756947953445266725443745750705795734275476981760804983706490435056990615232386209528438914705749534086674916047771905431276644335304920063088667435579871543909612445958569511189187228527910253945273972003352053333224874990591538006579526684509802535863721493547027205136029908913878725168507536767590116089244970545032069292621267218900059132893610538516913195616171522327216771726374627383400406551372851953551018850139076946345631293190898827901662828008376210270355894369951734926107883900606899513397850429796733640933219110828399415966139103227024977630161541059365250997083267732409404564319052329314126349080504319017435632973274741535610979034077230022202891711801290931573872751448495617827447472363614594616081400533453127364792026774828959594056887331886021628584634273498354163514234044319676185848909727606092067133359632480589026875149675597639018490043116938927191162842091849899003565906463803558755463693466049658899773804951682955123234774360200959088089927350171024726322303654922624002885309091954340935618091560530106247401467281943958444161972653286568316961651339034801907619699005514671851146221013561663399177788686181623834514179712223127535972218115972478327750128429859840883355200154748853648670752948649862292374174211964346152711693840159348101072474435781916619247734747448757660331870144185003700684463779277496496256320994626947260042851628871197379355229808414225202766406730139813823404658750918907794247060753578728590286981439866020844024519302118235806340471236653751264324048068762665237333469916969011280693650366561420321569502101992023894776822933339258505725729116570549848904737058217273782806741651178558280814207705754392218853764527562641307107495190695067325181351556284547674338081424587705287404259343105629866394247622621780083144530875051023572504914308309488526714421632731065205649129623581842617081634292307488056226878284109052600691898889620618392195251853056258653028312549009975218317491777938628691470771095202541246100894147564611611222030530726815200950088187977055458487901485279850932289585327535193455625670672569876896302972346825826857856499583808681796782245297327938181014477951961511326553877907628788799378474457239865459580582511859645978874368536480915349982911788151313572547613082899190641381669729057474196181590596946600049866231758365096439427582603867928942515527973829580001781620339190065172414121591124803851085678889281595305829571306202182078151891830420995499669430064644186004541619939465419678438689254289794507322761906962354754071190747859698788374371902363070397823903464346759933074501784471748522991449184094225026385781689287209457156844341247512500573440297674187888999338604761368551776844030462062962632447656618009035757397576637167087847981491302715594412820478828817873457670558475964987213964447629718612882571143010577686218002414626727286391013824539868742606870100166836698547765922735968061400067681300881491119955352350610209803618336035388643077210454054802090732249183237338069341188013889342475340243799089368189748899899176359121107432320210018653829504760192661949782404554573564735471666177491089848423000093365548187643750211558838249893335436258103048467784467654205130730775233793261186814837141437986884293750420515808078304535554680734612404150406816195153895643252041167414455643071035813486900102083627156486926185879615849176960366826561143242431815822449112620183663930119938891403910311328817018459324050641812941267779454093674668839919687423012750609389503461342087266095744268074297678227552824266204934636904325210355664473077631857407294267705115196831416201794167103465148514261164341155645181582676523728050612502250624960348815567454403919542334144010565580738056742340821974845459087752927574486095116193235152658615980068660496010383612602129012666524947456980102372122212758388520533339210181939724758862254813482216250863080415266769271105316812885507091705215625877728251730888026611979025679037461427484258788846365959329614759900999991010427709445753407925268542785691039528985141356389501648794797106977383381300125900718573815848888399847900832037381524975569859282296020771266603543201564905134938681979457647841607595828386004173291634209794783739282297351796768284388386789377380188583000464952304135588490438702987941204747641612167734924197941782758855874183075483005830468027406096641734697707930657589863335670520233892390594626590144912055634882880664611919128920564260679081146944857529329617668135404598748584640549714488978277949555682764476576947929526266821644833912296664211431197237225964898137734947393056968488885923806005587727189725180981873279715724832148331060554240054108215283413565039257448296271620521872341290089205564027384536298691113784312348526175935891967655785500604732447244615560395552968115546066467172069324925018559192776643913494053849519812427969572227077597215585695287598483793008711867138617392524722253309946071756406007129837480200142073987043226226367518067660451546410634410670088378654772563205571048340904701504197459291315300659202923468474414528705612218138424262685939535933568833172912841593138983288802856095284105868511558613994999679411705343493276315920458768357930720778297032522447786431279448741144938983148579126418901998567455848757035170456462263121597710498744361482814652878112352251815592168563070544823441540212782529455343801042605110232362346132883932943630125194461643992104208167157957490671728117823682655243059533771204488341994454833897074020690808970702751148937701671138737527227072666860485931809512162479815591197781340596224257795900560041848414213761206369165214304069801908917387676775121810864639298483350659571545528251848700071805860132476564593813562232429661825583100884450748355273728937171408380948887589309658945905121683017973062232028154873892401381827246104332495422429698768701492281064718242016503350483678509838548504226755015868740597719404554522184956375675266476330402053735702828325786963543941920521626263690831890086222001797297020313369078907773843581508643589319797381058980047174445346083888902290716545126641414373658167936375756040562607012869632973985834648427876589736263699278955695053085114383232990681182635807365218115971582973239057261912418084077517842617423879961282032560304041871302010709292668595090298226510417538786338862691186312369844544878243061909889954094325086427070661548261012553051533560425349682115378667133238939786077119179661875575684205585881454399329982446576317988531590673215915891273229646775415990641378392648280061361629893911343887420909429553478199108499269838212895303022502817424007320297744565755260591804074426388020113117521832106749645006226908880350006824783107728357444002393228310348559067188668917751664305241025316575238413408400802980927807700951012351808513719692421147251842857526673647636102513871600458799990164381892330144970230924264767881669529916182402245889198556635096764648572284548552358401847933104241201434319039909614410347435880578924208620350671005895245174516351613644988263505905670583884978163890820680589767315785613034163345991936566697020682110970099642718584688671226770094928726081729162704000510564715340224549770385105342822734247420245865988733385156228760316766882878110507941004484227134010891201668945395191587884747323978519081032506076901865880981659114635579596329718275948631549300620721007465345390476045358406506039070062280212054812973221551964196801928167099750327393320688186072960023561758440862165615289039667233788150240555527218343494931400661253336920378806204517640316412686818539636984428246297739281136032480528992084601102231680128334949754739627201326334091788919539574617159576326690893016475601987002928479198624009091682418206918699804851850788500873565173772940322587806413412187343265678759737310636904712386870312192636137754929695807197357293512072974661644738324105865838074941820338091522022375875852329791403693117565961211931867747219556112405982158717917040840822512711088388965010217418166808076788215701079660100473546200113586978738832811971535056047592882703754155777314420815330064569342353648323448905491489329830948478090299537866059844710736080093417564239363617357438546214817351872045986206800941628989415056372755419048406715852421411569162041112780527824195924315578707817244263087566541053870106129581657444107693309982842005514038472096535708915113584079947797190676331892023601942949157012847908926647199530732750265866155030367095602855094716522999584629607032925461417902762251839566651551183019526603358680573645670030335104834984636124074379646487603424857586018995876972004705590602911508185672327756184560563707045488002552316682264358356518429525499005636047093618455192605084595524156624707710883484335849863426689654062952431233230862782899286382116881906175854222500924503063839075424762589140843396196934861901697375766237958156271745111942508905889979656867872764094766809197658847868161097769252689975045447253521190830445455364135484419441305620879939557440328961249855665372367695314344766099764395357064656535111070789477389925414336344643910258450816531399016937373622857025228243238134269661100068631571988962609188618393997091131093650550700425302846803051719964219342059060567716467144066186477551405104546366707448743857791049340645851736391121359264981333317799667873165859149163061609579501273925329811090809940437994269795323038334093797274779828311885614667498348179671665223551282146269690867598723540752451853222320158747023863973842305303106757424412825764929927381679403749435445932680740319467987184411766184464091956636936641567603024018485080136807922543870714121634880952949147291845055226535045424464329826562620285786749760091051020298792025521696431877116731288843587378747668107076804795701152504529223260517081563729104511110482074373473307768654212721694146819172043147599491863908533928848220245270788762775947510102366338662433278942413702071097398506898648023820625906827264470769824682745664046775045768985856205091675327523063927180597750566472069004375329299497781876499531872912311758673566394573757857985404728269014996379825020345716027525338381752729760840642933713163715294093123725365472504022618406343576841888745816132150552465051622245273647299356233718363861203411697072535387142948538606842449423507251085814308852433851035107739424179129089478915213077712929869375548168553582868433639828984048316416101288499382961077769581347984170865339793971313834281956188397955069909136025071431879333755832759740938525944186239286865744821751028230328462063251623582941192507249186366919940921285022898428187488846646605488368108442635160151421307773365264632497067858432790632783245985492706998540033260512815750059274880603062001453576834947225446672548351718445000461344676523161899748048935950768681708167164581255618234410572178981759137912490686193710387830821827244281617846836678159422094341316446612809178766598154264854380349046544964015266776085446912034024126692068123334854086352068591682458146470631764753733688613646466493121756469467438315179424533524212315097581250120741168464708599141217732422451445330185282060631234602348179917439664009870040386953746820409647339249653882077013411807877574374997868183965232500333163403896360541992416094817396943677985375085327320471910956468933720792789841930930264043371658194162054051994399399486890779377861312219817805188201960833551372547865328093214574778867947855604631248650378093953902515484281517343547739046977697103546488224911260499170674410882411855088793809872581181534004745332283712794946047975882827284484861883464627057890941097758549983597334770191907008853433252300913017187821831382843983367014279319309334832574935256299666344255630230207696272188880858626038767335754790751802414115433831980922203697277774626830622727846023587078076664799525853923179206109143839704773164009593386830027817899042676572271744078488995324278284095151043388239224256126305235623034628632729353593598879430863375655189561861648428347344588682495918163974850818431596737545373593901334813329257843550850103277341462916488455804922672046153376661007246234134169171330755017862907096881863370849099927017635112964736040589185706952941994177350394858898588892176019767615745913387885278915650674219318928065439730349188691126021526748194388015322035915984230857436669184491575451941552840165696762280709286923532428979118956292461043010101846169799761032740164815681923325161791899521791727498209056253172467514367001499378061269364182025562409106967969197066137568378042006989970911127750968251362841854588791309942292071458739395382645644747673282802829728396365460174544643462592748860945513462342850671939620942290602883533444883957580453460490939854079789055687445802583089637552741414853075245225517270527780417764903438644274938406667416516054211722927927655485523601550943708048514327290053234215667869172360593464265482530961195225873862808242563011754111727564081341737143392997366027128340457527767041121366126195264987704396182486845587667933051868783311926866301442257501084178245670632122904667543234188913777063292439072691349917055108610163340348397907068718414974318530523914788828143009181355459248146672782160299830693888636322673644035065966011710857136289510593554128524218273813098591764374006314587172034545664034004635069663488609280347613141076029121880664341915506613048232873449807143151791563023843683279331103975610569674588719321429770691840875472608129442153634633916438364631758479097094647084109416183996938156836226526985358582828239323387894514587153197407117295242943367456002616048941699633011957514994182873665231701480188259179839615324114984332014552594838652185650420324758992905624364181100259523622154596132512875380767134506604452355013027290682333847783498622654527337009264982883295141541088901695915285920194292910495390976554582465306975535083443933036354363894578467044805304114950740215490525266033932375471366479073785967619078091104802371200392894392433859994532401262259376521162610727323509312391282987870421266632023560249139588082242075301232055506259711819235649517396939975617267958233529817816444690962111735001056579404085437625920669641171290706504503398910808500589838479981394498998594658873670900048335347300137931503627370311745105906882960697317619281055997489914680748003441689673239190945152823979219896498895328319882247400236988791638474554007126854678560599659863743952018939093808987686046485222146102538278270427870782782035132096140802858765833118234620867342364872706296404794499928309322488918734415580766676300566350282179951989087348117473753513898723246517289183449252806176788191555278020569107170412852934353074155947656073596383327326150193716925905648407137796437995287413649253613509740064976629865220925755237313541117860547577246783577813522703662399752596460422252331510169128723656548592601850154382562851453771427281867666581084604453119721600444397367247099811693840007666068025779958638059401577199866544013709260896264151098661108055886786816449950614406459089279561679843984159709626814576200872035363837151869331930544142222322949919695324247400477565967012245852618373880074090951364295476917248446444900029123046185081811123739283988354562183548233921697820386065065454840661936619745548001916418121735739942653247393293167218829325813471311415701927906052495432965634041138097745581662168313268529444102654435895588340594008911432394496248779076989798641821572910760124294368348102768046684369977121617778691094191133926180340076711035177763411657738525927308921602097156476861112045812533290752553742654990503990887130044705333768270099076367724070122379159974705474187126606704245573528348847093929976950738605004235382449713766568005512310768493234138318442498630679756197586503621722692147138504716721449380131680927109274568912358784781927084640306204483440786184660791428633567464691290680328605129927787499725713279243761674263528044565758732773880717484079132270429887525901779638224747107840382050323215352825634101793770343158683999412420005295897111079995420774747376914321464205965346962281104091794154816676239180212892410039974676598972352647314225646686829869139649420809480787462875860250416073774231456172668707122707309684231395149259047977396283639059320643569837842971318496569342332483563972376742899573186771863115012472643530105829481033520041450562360912210629647715978928289205416675860242340627903866298668354641827106642273083112092342050510530280770584040057913910179924917156892555402058890023955312495026819164895616073994171292783840334893574563426426298586740779401386631199608617111328547278450843785821743271863630072609941051626095606006629993339440913338020111002749854092643945749029866974095656451508836573636891102238327981167093475210433876571484418748903237683383620409255881213493081791330028772807045530311054361636467775751160330073677128669374947725541535392085761419977043128905302975690524053685302567906269398520836609992677965118068313766225730966194229810823414611306623544109029255782038799523909762870038167883013932303679099411656664812509913082120709752973931592570516771872077410692700075366266577207519054579254600258407129165748672614536571556842974256963676215863638096688835243667992944402949922792078226382711630545622545229355483564869946377760646198129285407396112958137415824264417365870001297778231771878517279695477785947667400887340026642372177644180562993697265466259225127058229448675546344499495726402840047977023225487102820321186636936167661213730772875365739548171367019583073743914206257956444604151241254612178440072153276801835815884157762390464989295748577482487802716642936611231994542038849044346363560086930786128412388471784384298533449800516873496323965134963515462770337073568445895933449035424175285144648036338150149618382588427710474873066209491494524783662041943759914599295265809920264490912257168615411506119568869266103505322799333376212109641205293365293080495200218548380419793073973224040068741301056823066683420006249222781959948001176062004976342934603995649942976475950560714409667012981572006879786227888209243556332845451062432346182598313663653885790336865909280957852830314844908182803811777038237255437221152921194774400624091572107829374962261986113606546134238256002229982314567092360631030622234158836748035840936127468155125797607672248051806414514343659531869245906866862235948164467157185839237621413529050836764091432969276388418529388128986645778727548675602926912600102207326482155942408852888053428910070442434722327175677325346448872163186870208769271555083206898409273450127744176286740015574845756993395494334547433126704645369237433951071010953692932195884171716448109338847832278092894023802659714818487589485728115531278986706943614927088019650704777841624924474884122346984801807986301284324622282120559481217176353600288516712351294513249898202322539234173889520163881718552315671911072652123259653624897314808337537573557507240389601552721813974740795907510831983103985088883396722237952240379839963636829931344137457150535798073621253282293457989503864712923107328892990585265601075131000766099494723792033106459870761168291872908416629604027725922339100775012738694376143484164994864085686063626322353805382063332215278798390097728496083052236532842219073459276558374067397055829754203294029371769363056904669369057754374342564547290489399118440736026554282359948942129685095529977764166047741665558047068684249553732322004126923446597667528014672019356711621802961950464275559191571717626668617271631239318494625503834464852045005516956116358575870384191064418378380916123940369932723325350227337513629281067265843847549905471237853482158001381831346670584569867158059923228341785717937103182440399158537759021529571358796327616395640338119806485435208680730444213460462137017266243125358089966452627274613433026866675385590963980598226566844401170828954159185165124762044685017763780009432807550935460516176720289114160227927492527522858117047578499620142036105694156618627185938603679610072119823689269470092008117073611678210158437966999571396783532732419926007319810822795727828924765779313171931470514856078444685871355565000945260649117324251425168942079774693668589795440084170638649293488389688046526446191973060468191471297250017246738179863177711502640452711749384004347697892328848423225099213845088375954535848113026135761798255622114265644765393370778625676824165482437662560546275160635571514149065793100577690040215502855843058609820003171097370729545166124742005223208234808726209789500740750126660589205548475536338039451848735897216459417274486182057364709592931407646352897036552646577143572145873117535703439818699536903472185427706924792066642458430315551886299593001629918339072988704986066802777160648141737562338896506409009924699949860172169403155527496984112573972128017074176403835625276917347910391568735426990849855229214846101509741545165863957326575044704915187241341800840578473328673890618252043094740865340770306615455250391987938267969482542575263672348969530214832246298876414758186597886740837635131435602410457263524307085882055300032769473554845799993342049307257318318436562106197980632870948773905210938482551125235923080867139183602843258741064210141796602194374113844343796430834212830195709142358630262122136878616111470791970641166430559472941429301321474946455277185340935882135972012140033366211386402048208000149966538558431650297850282619934724729575987640730971554900788297455650550200799269154542124092471657601634314395857001972612392022794550493652415215809226014849742301600029002699647322280178744927905886933683779043428456814648252064290351961275389183102654659791842344918793769979131399930646734451516749332185432177535753754815767578363053931234197538521951517253924065464041336838743592898376262850034582447257195689451257192386405061676867429035375599240395533135102841551707354934273515952466013411742800276764081220758026183502739957377419165459214882134443579955054244312914301564679060430380538161230195997160052504156254016320740376320501306133810469230349850230384396096659981543534707724828324440898860348506548206503380505783539832228309563203415649956611499426199684409116988275665879603567759688916592205994898269586374796984140093937388305126913619720965658683276017292012697860552208493629654821109370855123689688595559763116539097259665047653119619439093016308696824274274842497724651473790767513019275511052008195893672239916278180285916185111454794079797911761361458730145522584238683326986404772754277849734077433099411485772628159540470071936093717584918506087838896286712620115657106653397888975179918331719003312807077117558531788416912629128460160171394189822587258110135884960835556698095567361216828047121496765294692118113328317041799414740189205911451597581836625580379877667038901095905845381944871054996012949824832211767480410218971562813219179010644127363001647104514324146117800383316411974084825423732837452442366121549986763131100392240153033988605916608150318407595233437377036912218289885422857810490734217411775120930472493058992669981963830782894290837397185105286222075788027005330010628666352972383978227964983144437083011910090278743981945488274597305763076275886309741298272050828992131411470390349176561346524894751888971577084797570872855601726616621742797017416579146002480619314883637545813384103949504537511384706313811562086711430869374029631805067045084031012323472181374468446458196443505450899184141311217165184797719007386983299016477795744300012341973093041701410629197004752832052388223992254186599486935053974022448216876219041827601437821678014665868235019507456037685265369925031386129564182681363700431727774257515110826779808570850887129089269188370418088328311759420452524051402600751703319444787762980859504876261682379588637753438789317129188823556477672065000640829586111955873340361309937069527280805226866154187896254212218170610618817090534221120872666519703596460292402663943655887742741124621768305401654562910664879936735067304122634443965866128165641292081061957274757261230781663037976342377826730494195858821680684902030416458055112979580913395936349181344695669833111600724177904897317842059558543982544384727845662770349268095135472704987377105656893793508077511933166771542939796858174701450679514841694925727244007926290557024420196422657185752738840965105069816538419992487583861916785641136913805958360215164390593388640179846212245615873304326880385603954328488501692459873297144369086487061783601572806121342880229615146211370790795537787453232011695888565897443635342579396130832376496876737991463559910717725938850775296509258078011472441360281309264792795007499954818369742414233075096800121809134287242925981814919005501076461764424094556937212662825103659619375740160697918306603386182779842084482532516456746729163822160463245795158697918787465064554176399778278507798102670747221443258276878291880570398709094007174401493861422826156125726582390667050287151665448611677647023176864661415762199207253339720934789241382695991962727919606143459871462070581974774565499014889942293316919076352583444903246084953991789525671604255541089312401757038256744149375849930930892702982417859871509922925007463210872114800495857308579389542191634922654264474232766277763186753721945157151510800747469941752455716860952496754458392788850846296733778597607577838430461946198837334508123709230269264356064788232288719991416297552228720324490890203788527724295903281469716187805788319471621575352826307564456507033837587913161893991322539205232798270126931480994849164220136888967138562034736725541746909481445097253572601037537443488940539534529799639507620876685735957217281144211127281331203341493485851685143256831260321331230618798404280630536798835690741394670626018986120724655160421283824529943511659194001557101416694468269060379703730997909314166323505676159226798457348571850497797063311786443113957543311686863458882140353976964578326509899273807571269452305211932144589092914862129434255076215617061614661765048841089508959357118151936306364969672646955078472498930035678045836408068392380587397859463437076094213048526257633735817493364722360701584253044837674187493093814261715186303340876991856318161303484442390821111983063027076846393494323868216841089447799801679466948836281201470296752998246067674017219360944194106962412609557031207200396588730306131215606697546389995667770993949728588601864109847269600153240796877007286762465144809092468135527706157789709633678045223664156714493940134582218093386034828614352620822357680614407799029955479554819188302510155430063878698269085257542664421674431946849502590243031595576041749211731689059561572515895316123139569582118668378978799803492915063014897135102684075411297079216002686977648765531347378712118574335807921567770274639498804142759382856980611729583615686453107900790963947624428079047865520097684171087587473155001131232596671554982384184145205303456782606231692922406627634404598548197621142324611754401593127728703739099712863041942301834978878551660374927532910005334471849776260332508518855153027881370338485589237811140225461462632134571187445437708667703677728955947311792569783188707701350733006534784741989274115635711543232902838494070199787037042340547458913992327941534806561659196250146107746969663201077597878019301068723653612481430521282512620113766887995920122114460880294697859994539876986175536433195243008806446050532187841918712943540367183946241194385849894666906548252036768496457471686168879595175247648916321934068496565791165470209474763698101916746477410098236464080305165152953714237855430574293985961408456778874155079288217157680305629624278163834289806644758306232525443872315534961426151719967569404735905529451039753390196048671332652100256338033936352286372411682753864287868905956770402418600696090160495205139731846897245642629422959757382782341413904788328867824517521186537618566495401964497629502526633941148492518604231128787226282661843576113540493721689586180929852346796254106750973733877954069709962596512528624614408772801868526766294723431602458180096150519150945410850680373117808953966694695545610416667935144995061512290273125600783865572121550852999195035915699459103578609906610146803231951548509712472628340059627360144511065388395232991895814259301097298533542741288285369571697073236727908155205298646163070237344179751214291846960483215427777762075829096390657620731930480644619074941375272173672366546690797601853681129851361788169944919836398183283830169962333934780490259606427834562287189135277704881883103015115340270507698859340033142194923331951890821510330960402833761023981556372740173941330158002583447446732175132792732389832235657614366268784232490335994165028921675745598425654300840917685995476514057028916526837374920262271586263839756143526168575843396634113825943113712917053408398987333831665534716192141470252986647031274974194024674671761515188315198331016373772267566969263120127833568411999354560233229112650675354481035827421095712559144617551914328234540089834138072760137594898217140986199309821081405129664739135166978625771302456362839855268315539051682743245099414864313685769932056422468657511911777116259494080961767151594883925438095950170590443795808800651401772086887099025535736621535749744149684786526819639094934672648691928118569784534002052858156321426248804935790392534873851235029978247698725355697308885296653143032889952903435044435972795113249839496070957689267007494783820721034341055216927075803923363426213334881327017392541218642768058211481104880661902352531993779875168488127460834870344628948204913687261691743206659655063354120482335423031167013077026982390240004963207585426445432790207730837657267503602160195315852893699759515927071148453563196833048802589697443042209112228160532026091209943798317220513656524382836663978738094862606270057163485115939559700191043192329862070750794950379936915130551988035596509394953942408430920032207738756703095708205578962916115816823367690842189980661915535571708855081526294578237465031870034099938004379421027340419599072515919437504652966458863569997569882954195971375242168911922910025250119948278202228319316803174407425114566588475493457190181192736979673868942400935633690015933333610620188799411071509946855746092816051587690506367680032803140665367748346024480097636292608749335613855757085562356712231939654195083392722610615163680947864163130738896657120288474082260202565725423424225517294522674070781480722206463447179305990566422362359033414719766445558543264860183001044901824786375394545542616474092691781419707156538430640608298943228347730358312918482098087690610832712023092920458849424838014064498876098880081722180246098370039934299410392962617284722077137494587986393181890724097794395065704792277513386896907274078177335331543868057724815965462124363593728389206111361627063551140917489033482928362436097228043027017021408569860408498448658486106882456745461031665297794270833772115860569772804254424028787831410889281489042393762875270468153651799098086112296614217500062083858950473265268053252464068170337594311817316116306395529147244466618220150276561604603223429833272516740943498850772685262647384340261702920279159777883502216366219364892890529113274823349302752642672646784421705199104256125944780263479067676414914639448894327750789540128077032600402989873994982424113002755458138760270967589417802715044847465172730204146064605294782991114624954350745148129913313949046311743072787153283827534262893627469207925767248691838456108413094444854482457998208803196496655199841462249530196707722515986919914000506832983185555013515599471299475840175186310409690480548750772209661734756563794920518119603050853553122139341509533353286064837735993393486957386047214542668578095239644891245720066002130121856775867093044217806605556770093591661448388817379595726101264449175118166860991008550583979775113276228740436798710956780707505030315067785181886395422431334144517514626726404149879689803188117919817759129760175605622908256507449608715578431530704393136441756207476495096641962212298674794520091929281965676751938345496664108702126906712922750048574272079510078154631196516775316449613028379173608912208701233690149678092185713566255729849997995482250621445455257311693066368677184362583518395643250342210800157823019112190741365441368272316076430982692951618975082870748556312381656761286526782631594323766211245177673473578800531942762504668422528774257189001314218855099937611556741820716640578809241588946038490337555805231924372094336549994093112746492240717515355649337012155684361078872006216726082295016259028660477602026413295113541066013285636406807490428746841160858395950104520870314198328578095530819024034541277006845483484754525509853470595040661176683220123500957371246717717563739152667127771592106164823325218859034505814811740498889913519318673670375534688457119649533438652862235050402834264653764620947480191280433941314019068144252756958913073006520996160035238247633383855976488249391284549771670360588841919332774355884142812132178781529765515309198331106583357618703075576518664467338146152684609085833477475929464171783745110595945883680906422404381927953543837225902940765714435862603154059372694116121625658275886446840586404599640209944642496356324615680651554006807156829321862232214621400655268400173100446114712088729291231933813953190229131661372958729587889101965811493763376787500610991060617952503791054876277750807417704474597983771563248390402366272814903891740364713304035794327683057841078987519274231284636952668270000622922784393006770183657706988781283697861432071548921402328868800956947327656302792884718701715733420621022113374510268468912009444947038814733326132022369971622185538760726321756630892659861280334843990451172601277353099825630071217240365406339928740074167287100154348802335736803564659571202328049730381035664108575339172704273199466550714987625568864480475725816955793741430776481826004742666539304538243008521332731120820300112505987486922707601259540479313115884019328322194733789902251063866059853247973902378098286868462113433300629421707240093265868657043903958179818744329601044517192223624695925388217997077243420489362998597133710939746357887356520681870330132972711360468164999220420447097239997043929461357216339023886931029334439689696249837155925840580278774853206775064098147766054296847408919509515491146563780948385017530464513972069260408887408299406792678977042901493553225730756011514458365563430226473818557166121964320038677689394581635924345083925463710644521656655755136883023743151000830268152688703891100416331278139605330072717505916550571288161808147731420864096755667624948393962759192979022147474587658359191552320713167471512288136994632844124189730230373677984150477214481083858873373722121638002854100453060668711832112589880829915022631508620584278033881521123772443930880697860194441993941941045538288283136722427704182674355329664830591430144767347632415150759682555101485549686021234964308760297841484489419567236509051914367104627947361319429233510484866673159642227518481578518056833580936605429236769799394457918155845134948224467525708783618205358329042706396894228099511116036802847708105645291035952794895139842336611352387199753412356402742150060855835242945008169784934965584955875941292627652264586718688906666579474604739694722923683453629915055910175044927165764745498160268498762627532808468466661585094833956810238128808693266406846132254026270221692671971605034848756926341479807528458805734949754774362347619281553692536746127531867652275401969456431999397833807221163896477112394476556845120654525156192019450868268922200024909069318501761500572094985954905098218132899673792080982582952364630130909577440462381390594356355213755625820734260539731537743021018568323120733813234447690409268711660292219426964903978009071747666653042789097488881235152889792334297083473379286270478949555734673073053848512506045078466761290934602805634629671425877686429572805792403144090254750561624311044612981527786134579576890302420527716605419832844566736485971484888766093489424775140703375102966208161325145669896175127598534380126145568392043984432900933993139368653646217046877113181172188013499332230087470891848650487342111171494663480122043235792754157288899831745579683346827215959310617162985645123325752880120676953636651540342854295882788963672280199838356643836717549592581061829852474019147598715803691733884062744888198351765953723038134794990605921165992911369315402500774765627663113748002911714475995006721170318075245949934956449564896846230953752258803104959799937071285361493543941451426479374558876936799354865048626983748071581163070367007707883713288835637002576255151241696478940470472212027969642482267342883582512756039126677394962372913346571226032330352000762777553104828024229003801708126238715024618871178211346023343348023731837364049339859341095315257041883212486698153976407279131551059810154144018326479142927186367030363299699406305054849100733017963405246246421245960684935486990620377117934049719996757452149816462620871547667079277424342753291541937821109322561738178807116704407997688819575467460677818987765332967404324593524612325078392400152303853488499160821475348245529614250340791505219469983992278681079419844878661862183241637029836254213606663670502044350065907704816544250283476463465447423201677446551320631718575556252364978490701493170491919768704034464838396155187490777249254840189871687297600548323654237954415172443441441434224383682089537940001678617007080256716441371191257029828083900360712533604476931182027591232836300600255324372975298115456542215873586839402952517584178567326140640861437400651998179495283071195988344596563734321192987068186796156603416820809228095778647295027876126548730668543512829407877171225273577103324943245474281706582142206263761738405860322397055333259906178205475085925643881838039446205640827881566569761714229814637785400134226389427623709964487613228054504164755974407127884556036138714079485271445652626435186557084264408524593411352288110211506866655187215738607071779547484045142042042601081138321277925486010571394432584781334672999353995727472779769434772358430166850779378748140836509058176664057231160673972633779380414330204930902067439731365150387161086158877322070782581889324906126615227971472949795064804955597003362605949466082965539853813972436913974884486335048569982858874598658431205146580189100132129836804934119614828218213712715159755983352899205295087497769976530087371208930099323404791026284546596375876778041370030127826666121064450426904630061435682762816629091342309127276025472106036802899453873102760771720049589653998020843918663973676343599469174144304047947665080647519708504927509158922620279486152894667001581484189092021804344024893886582014252465848413997737464254297080869132599519388135210064005879244034529977139240905685922989699768197220771106321749343710253567472281106231528679323952081697003408379536663049784874257161888257617692600093351976885053624219097779363375895688222202668922007946149487878753734432595201645883129161777302158495328018124597582372269577195227891948644565650346029368804669427595720716299401448444107924631822754245068690859610502716554554845188928203551595829166284345041287850878142044142813067826554221331400716563053331637152826995527177346843434996616357052917933292239568124667931955601922344929493601973807838132903072722541604018168043104913180422822332017347367832243825728913690119186660936697561662178079953854564885649051545926275981460742426316544855025822075914968587347970902539525315560381723433955890524431888338528123303910432945198269953176402911104113896694870656166715575510498326186960724459405309344860620159847089419891275862241476006285475295273014312589048088813466245045028176148889240171334275086656704568945465243335461801017814788343183938935120591272742904512771954483439982222295381108400844397006548435433853646424124781954300281389035764350344295864988849488689078403655957772659485389975204756741144793538076701124742741522547810430502732067447924596927025527123995847719947479748581422827754857502077387141572253474477012352265264954509425567857233055582808148485174744353360881388699288685323269848203782694648929261050889358303834644770611994741384171678792146597021179159994585314685937314572007334850831347532806152919523165815638265888111462822377571791439076220307635377581806693579887031493259703650534434744840772938193664822199990026789548371565090675078367000884690685863556357812989693463736437505971404708640423548780768634025419582591585973056743313683174812312307878170627490122956966670969154431430171610701006788035352037726285605940817819110212142972579184825560632137295422643426835205056564603796865604346686512813736528973175206533572514555934703293029150518642426525660063663496502424872940141672211513860797487075615984329744627856518267998248178496944015461167719383626626672878163387177169125487438240883174071236870008643718401304691729831936799379301005559131266566423918315039684699955402743527999789093062959985287800380106202301587608520669809372617410832198706189888757286808791936016350182950965469600509683822567722459901853213791588945120777183774590525795955908967717180977208927513263852162875202126834370805180887973967018650142015045332283947569067019165858124141437614772748242937349040915687683199758271467694619659451701847720088965486897314543623263729993006576202350729770459576371257143729267889244340102276174959361747551159582634341646383332102759039978948569178346932831677976930803575910646529025167772318387944496624348222560561518023723865683281609429246057627231535728103351922523528335857574533030491855082653197222745784516136382573170531379096865918907452127529272896814157041326418382996242682460758866061275114710665347604330532122931377000809651645286816906050158679001042861927614852423434843190024621374943971557472541106044946296798454438871286879064920009378829604354866630651745346362940091218446897879235939739266258559859873168711688120344884290292000863792498052150822756205512198121925244531055526686818465712148424505817334919085129832503296775745025408049949257702202406146781655777582030390590813690308708973329661455566919520613271739945109382693184749521853699313173758670681571533297466227698938677060846895563844214247113954240672601022839861320306851336074117938809017965243086805749646043941596832057977802385417109174220011906882556872112429852490874497059263856243235349478376281410008565085676344710585206913937450123172138443962173125838795105894460757179098389300363092387424471652686623668126631675005184551348239569637185582374416706508912913052727420645962747207691774459450823321580614670994742108156176032803863985083031653423022613567325897259186845121566111823407468401022983461080686759599211200077978307929436747740403542998580045401357276518308558162400654510819088734674715375129694158476224948427600704601185128629489895074300562241224777399350783557980981339529792440703204086682760304276779222381314718980943603066984828585913522414209814627196655104401970538026833068399215280450166115145609062301817687456690858139252298280034675674148207348654510685158000906196533923800593290480458186553056996074718007889848539206255502375699870805423620830833868392200688557918107665644587775037265307211204250058302911921243326913485329933716493684199194332925801410704288608168382838550817848740008243110454185601928921738392897252747433715302461718840346295750582500522960535108577971284004400866370262925461072978216237371130618791189499743463953313302157280704339986831318668695213039861755598149252759320471216476583661102801945895938872817259011245248986117997572927508053741328445607235494481581495806935654049039489821321998239642472647258966838397052081453553979960874871728373767590659981707560884995677679411712893685783792944692534279510627365243962467425847555357145112270939413614807230024363296094533005628244335431439956097532548777216418045161431472132460328976195308717850280778466085858144186126301441467252833224657151753671217737467582011255569412547310386588266179039793184946162629968182706608957484393199575189878935374606653809200945779098945596869192667351611659957086492162880337893515371509018100780154363370790073259960075381859878889512678194107186221162344055288997547996487018085063420538146730003308710899747666208728843378010244081630809422220647931997908002787491170245898902383117565320645535347176855834043700502776260760534802686620055753885400942490629795391102039764095590660618553144054904075851770478309182916102302438601835284860796974953053976434388657850896634252928472562847900919534496223565219072253504663122750227545420860768061210958962151246289883922092265646593424587156353211133285713471045184168386447574558119871461707047006839112679955821363764107581350798017587856928317553349117605378452318834141596698773783784265779087736303923585219978341122936961611024361286920337934630312279140171878079191257423163863214554896211871374074807117754780043582515339716407068248411664688778063675688510664311763148300779202454508779288652009313615367144959251442605461555505782023588989065483263501038417056345801950465702285379170093713206055271905011283313952541968124872812836506090064409530149892737099334850648332135226225569607040355740770625925740260693877994524398322619170304441805107925817295113398420435595800043992004935934763137655417111323790950815222556141526981044767465679080097504492289362026926416360322185641858749592589709263274831931611411291864970079508492818536367114768351959393182946287853852865218184891364884182369998251282352064818737404743007202743242508509275254704015045809889687785758418649030940654635049456501873492520451957347728600249601483240031927692171426084301608088817778114986961335779819630306547628297631172541373294580613890967409564296654868151429523282092778468740513483994471101978113917917380252021533664262874552029726858729584830971374028869556225472587822978298627604589157650801508008068323841287542322934823640628778150329071682419533446265757635837492486224580270473182637813693256949425720562186885985587066928333186003701617071104057848754782538705081924276408985005064071784102137336771735073530970895244494339594172161546347637866599414532728835934346568938074964406253583685025728967947398635440058958552254503414707190536852387147182202424115987984664383929608441147838834250370109782970013159104090191515915068552511908336343736151999448027360885775865444238657025570132077859269486371786489052530698125426456934479911741014479932383351897198416475728013674242636335249340563050719287310352661955574003036876682907288520115439725687709252706021119271324265177161103670950800922510630130034282319950481104075745084509075563763034633503025945416226701448328605585442177500735604710969564256016717016546037357520061403756774665726661464586873786908587754171682506803462907456944065686955503602516693393398942556182031563863936804260266298740153444174270933587396690157367949064884356136836573596024063949524745277060358308705928610270486582927987767271123669791146796458191823892610966190129289085210484882750326531496516868020388805739368451241849803968532352686114522745305791613994061654197209641979525058868641043504494599109837384773105996239411254208849730653350549698023296117690420022417793284257138996147585051936435710321477883460792684226053670332132689267522815745391063932398096300498832750304959852529097824756543752660680066061082006269136209367220096521429107393500236640371866666539724107511983977965560489607499934434931955677411802145734661791703172202779883827708739641039046214130152015140224679459952216473659732120076039747287577191717254839354326388869260057984709678273610049523771503755709542105044563350190228467577629411836985623720887849017754999562588149888809146943186656043455866942706838190442162057277999612621449066785054691199204209940175572575349222374595326319666406586942800119088940331027805273496539399606447846916907901227018562631502565999396461379792856369030209322527459224825924834381367720170294864722662515926289404296760010753250620031160991874124299681026463777319794506971166880216770787534522853176569837266191105967533067028839893173987347881520846053810320980181605178892890700301892848275873111801860617409592655329843196880304908065504544829743325466999191542370514966842056700236273641530116018163939312886333809993382581851697284857846156032987005780944651333703969382709883037678277649835442252679849712508326915839651732205587375990157114639104442868036993021554206159380386490637151444431711524439676909784919723160580289365505959287721673869339288222936317058230054431682511937492073472654451212025881652283720082754322909789414580811391302499835971910387055165792879890711450032092917833762154207341376403683307065322382264253950230465534221556446432582075939748853200330033352024937070141093624662601815748947612787270631642332850263283767319377095023368952386690315263503078726465490636500151391213125635366998340821253356911098040636763365071069323624587603055139068127827067460523501348204546636030518401872927407904380190888605429749003856837208866088572730062957565332345271567004488743799282214567104820956762706120414657431336344949128362302583658545946724795019678663622067081972304618291125503758785168711184099911942634336476639576821471439258682912028968781306742030137089504239599864385574831003126860392203687174641979679016079650601543072936711087157492116166635780497711989241080939244757672014184600645905695590099458716498217476723548553097363353293698107761896545433366614534289156857694782876100906750893093334910231473407835532111269960236789113075303575419619071770820568371690170022616150258553745403860694933212193124800631528871913400139191583661766285412259018157362234438821224075517749339740671721963322820721313984234970050970086439519444653471398671968840514200724042717476622799018159957506340273687865245967301562501828905960291848204764757644398171851924876210455220976365794998847948638240380822441861303000454486088256721913771531109803679763675977205271602355752637424283481860172981420046093017048218318424402562923938873719811397540726310885290779181699654904867780751219612968142004300539015546345448476201516920235239285464526432597256051356274935855899735528750088109921214860914342229424890088182543872921695276425542699036436759424684299234317999255964184534590408893616906322056266063737252030881369662615929110655321461214552188670968078452337057169820363334398133405763923709776781968525965218524719254614801218208891082521183311691231096960692989300773068557472333298606637731918461455583313036481797809763033926563915510075973686160081120499888410912751133105611662292346727059779566606414143401522520748625607934598018170495222551337534530117820146615917130549009937118769069543402120331985104865489400776192350887848701915818574318477567187873883563067731843635718989252389404853638472045451468681558290555678829675793219846605399022409313274322196193664462570562436741405864367782629525390295763316732497429864370465984413455158562527470853472048989956341983104783144003949509000132654262116249576438452950898480502982075785615084628449725342352851161531701113833531255769369740036121149773067869429106120112860548245912634850939189579161805163667299913334683450731636269384788563339502316993684521008467186595557715049239806450383973253983550222302829739250447765980377461425755853447980030733150891751038191768644377546752692599544196978780041240559235264595823502575487085241674835738117560458262819310078243758599825426487849115883752166308034125242450694589065033419114442844845155266176530361491656054375000293388473102090790698831346230101308174384763669842239931967917244942311303550456912730265700736958586859835343832289715639648965218600902799756791349605731533749557622924273375058950974879749579694951105066035149671341355590088831905660666278633450919069536847694949067442367276283043441891875603231065938976917227137049226457198450184168638515544289375021466223583823730269594856713597870452814690231496275077786140404349457838890130942800041583733848190387974696309063538021356507898482151924360459431465076234422795362733160045120399917222572537337419847898614713892223478604574871647599433080193652913379260121144339966068322490322703722277760297714660617725674138055384340316680853254281679263916027613807936905727231005451291781095066250277677620690907586992582695042206389251561455335198165841335961648948956252128431090282429662441815215365057241180092954405950333328456633562616921433421664365203889486135523983887652604543930106767803248034361952132724421823429949470457931165300424391862003233637661348385100055139715004814314141817366123555641760481451002274519521655468587559624996140665251326514234217495448569901569042919658580047934992930368498474660830312936528001089732658922589263875028503413969366632810224868054906866439345337942191322722698023094777406301592435124525103231141794089531579948039455141015491949783417977101489689456677247173148290660917455270788357564192318953902734668151054125785592741069577343048787398924220080403669037239610458275782374746064459137983900442304441568134272696627772126393028167409670572706647041718189377241988033888444144569253673246315189835168613762729706007574318053824119679800497619762641057880724427104717908751393295907218765235631432128621434827804563887014496258230334417759654276159944502401928259709089671635594466555970224726275144088722563433206723541355669253986683964778732983586521019901935294477693515955410191556777975830083641425182137704071052536002886988025024830972090884551568395948855179565586047962345553337060671469639454750553929455626121885383481544616890871659174151222494334065766727557108027648240381624781858440828137763271505952346130669753798328759729646992705862508990048858202547074534137381645869603326810359401193778871264390008413224372494355388416042258249850594162005437067055990058325016885488678749867467892742197387683300919888001590156744316609408191334313942367393856752206748265142012976372452680845756874216520496158811780071229038005385661647431908717336774575832256549527311534994588791102312650965465471592796900608064544665945199583473033454844180737273534855381279333719911245271371890805734717655441540431150127603675354891498787520902333682116296009713350518241559116226908256188685847705113371754748056466511681536040073979449893193436931761776858492452736860490639131322002456315097535944117657637530174099368026341588073995817484198903975852983488538954413496963828552115944577002804489986137810842958359239277500096966294369837178968375730398453127975335830630831511856325719865725601194588019869360164149202245435043519452345669657630799015908866812135415614292113300378731611891431454963289834516784420525141866724601717946060602186100576959418911359376509339161754003989581610405485135182474656771325783065260343225083830459535154439306936558690567483372084959513518404470059942791162270969634451165501520378527901518400375948910139873608156383916804477982470705392399309372185418620515610471072828066655891668502809342053192794748015862990799211780045341078005268544112581143631960974629304434925559718077965228286459171462607109866599198294599961919489842127280673374951521392243830581336141615315771804376025466284151721628880150873840338379354502185585621459882653031474811315794308284774038669691910905075177124760973228320057704143671967931706118854434808306861695083763338165746787867698278578743508133186732525627853924163686276033842615261735860492358538999381981581303994654700389937920767112023096590927389574759647538332421173122714954749558466894499923512567827211425163609865230291662175080871550559415807732206498398359333793272266598231070138325098273038920814952093501389254009674501782679077699719601625922625233823429791668909714927811202619800187399790369587660779772328664699647213039998163759086093617545484735489324630023819837017226131030340962850471437202812087768660117926783694669414872560254862222061477748778648313659371907572069475581844955433486776546400596605747020336570314736445517047034397253140439969618292427385781357519424958166106487918202110813875333860799403740726669824189716967749567759688713533680089151528072098638561209437437075488102606954996457448060358407961962362321432088260490619743286797501625256928224226336387824948959853076781275073541144734748534068293318711748493616959057647327304278424148697204566887285293214604025797793601350724675231130129635170515340382085744018595686901275997144705918997726609235501692276351271243321554850320556182878683308408163725019773621825346606999907833037959767350388861455250129264057337203517624675530339710767970031388832437598925847116888445402622319469871855115797885904606512389151603360125174519761377932183635771647334104331140310090521136173973599438777252214318559244502865892807554526977706137241472698207112376646629448238057231813980372247016595188379979346670023230921641060713667212394438507794426012049376892010076490488311529461561343512335617667745971159440136719343435978278554754601784141518019445478122939239714873058852929415152068126362271657434037383534366994913081758269525747034115552010221029715704477749779713061797474989188078765869303460523153650984326491986923491610106194533940901023442464719836629852862711847873307789731694438692442894347519756227269532510510992785176217768654252381083445577975086743557399886136727787932138380872899349132765376615933177019460604844809487399897027455105102891094008153967195664090692784279195403558067981149337514449460656270617523948798153559420618813730164965938218918600495630996840614481223698524356637490851625592674417693424139641752422444747636981617330292545092715191038508410848433348807660135894159760348247747793465424921453283058385780733086151484086730287050287314345277782749152852100549463762086899068136953736370402253991179287487558327565366461723610716564431160888746692695297792035563311251484888820153540312826164751026736707105124423551999462077478651227999204172440658891274936919574235816248787233027154413815630037440276269609197921140288700692978043255457179344614527029158036435208494532671537917051402734393845494446046816031993701694769704221055437839579070196621313225025012324787133492466510786446468187223198659222688351011921349086120901716174410638830502244563588186985211641977703724411564345246049161817132531891457089157790844966173898578414698508936491216985284473215038535633093589051747566641276219733641315625938520010869711131057068700254671577443798701264085011412352773558950735966993967466503522274348377150857105150850198089579440370734767010083286482274990811063047467436833045003355448242777099508493329766819030540861627951875604791328669404426374924886270611503422299815514654470830058897069451889118641659601301834756455319451946203603175310863528642467396644753725555786997819602160914059917182577703311166816666952240776048444524577545530688476868112664708786783516713238808434415527750462522007836028443314160587843887871630883640100576093848036793461861242764486317085883768570477694622252742832235297318268585412460325296544722849438152581450213514150585507648509918565894313738801786396484704907690147701028602680887380475671455961394925939136651382974649964042899171689655557796114356801312126128055452882757978814293816978322636201586895769221795072963183427367630122736203223390693755247308197419930281188329051637126204747312142456324136099607916617234731044389562327544141099760631321707091272462157795301030313183381002429689336471891878190801351382659034925018346073421297330822988841302095461072721163733758740660489711132551628608394380975412913657335282118736365300418280050435331639888106479814884230444299907611899343108636260617951717684919048627864342817758361070678378163198832565760827371335489718167546720370089095869617558945502629026749449937063820206681861670858114267687463362214098516522494643942110162066154288452618477078353989412573249802389871552559447683478710272338224352865405136572698184364807365971612583309248821627360468433956294026289377895828418451101054450225999048712811473012857092605471747747045664713070035152611567782172440832037695295565640108064880721210269404291904693647160374392972998095350800801789287646791709651102016536057728835311882099086478512367145733106454754323409243761687158661955937791462160948181886132222983055400770512115627050090322733314813113573703774627389300054324479025353172082308071427871341805592934591562821897467514048567339899650004743472757598460132067522870455950813580295326778156631330133359279828316391927493897385625748819063379114181575136680684159188918590349067317937842653602909782406918705307258158571393539125653377733182855609208263084232553801049347729693081996549825718207421546173658802900916486558067280557436422133510256320428995321389592896846025474615725011929249939782366089987067067046674315399195367180287703236388725094414309879184398087084837792989950001959659148809224152284210913664951524594602755826372786840562819086870835836426886335845268366272877547707408954023985827363145192581735401614405560734812245410245312998681356412518443427162354172575396674484605984831395593393657538184788843769098837869559221731585193906828610687399971534250815771099066883139415863719017050224107894504144546805342639006290345076082198755507784956844823707223491620520049362173628625612141295470273910395664121498668560644946127683807013962050879428824474328833859996930332923376822612085470155188123638561035621403310555567625554765774184983280359580190280235073869714147316796289417885663683580670263168926995005734408348279639821477318575883793818592698146551229508514409264903680628968901796199849757724929418132689751667095405543113959954099684016901682187289603362211032280208065375895220655880972288693545162845558478273556954240118243672957682660647973614791056310714071126842475377535898754541926217221584423496538100553659437328494739276309044834524989338383884062719742754845931066620108709295750680757686601729808166463277607826664785974932570546894638718099207030423704199610206816093146600570750369435030713441750522214648094040511579417164921736979958738877566779280290346799450231284750440489438825897873789057159057239779095480326100730864058847139137648525857146971307184098448039240891312877673557982836084121644704883846372612898883999526228871167638256753615290433386875503903407942404677529352498278954756757444064998134512021224127519980694139374197255923303520196457064243333506920302302249103258484382570682581951295023386159061448392970288569819528101897486784927348493054998941027175821198564298605637259050658417473994294535513989818233118955389211725426294516966262955306642475060235415382639521237737403000644683775682342208854012957281671291087058096660582018773628760125159348023044293791654347096967037300351131975390619517225363340196765637809297704824116876137367997392045069675596251364283899338016405112875531855515787955071010381364284032460753775610273735351428880878742760833652769052466153101169508838853108308348285092964397814560626984658690644032553586587326723259266884598177303016582135707064187716459452448186443463575558101968394067604894622770219450739463967500327781518648337379907773519422238688473259841684713046123737282507249366749346355440271730256608631946396814532923846121521938058172924030510186958514352978880920661948313450908870671790246375084505951780585900145133138259509207620500602225771623169314520286060045176526686699987429474063943468553307999309906160933659774029691230622978647144915337255139819837471557436929571558336675499494255617068576655614099694007250741080939629277413270574027495122229617208642132075440476580690582367448889174185077169785427350211843092254601486240511462024974831128827659306468243838807014261719125667489735732626833869409225380223240652831105702111785246672064608168898505963104435195610042514790353028037882086525860205739330161239178150161386176730536355040507839600103236718371923812178702700878205895926798773407184206212656486721869169712347018295990231140786680202025135274614610320587405363828649108585702054448775031591223845980700683176833157758978797278380834793207442338861305984835208252254967665080691778715948104280696899085426189607234788779901416296131083828466798825188749799492704023098186708100711488791471154994643611137052882771465741163545704832059326184655121081187015770929845175121294643905999563085220551219424787690441583815546409006919817144555540659691231934466815138609569465513117328927673945437262761513687522960125460625817535453369985221404170419678963785265496172127486101374812561283645180190181162516178909522462808308810150140051914265880876142914909562203700635100992898118464000568067194554522822431158476507474336760067739199128542565003712324283197774629716464447456483576127310584413110711989594299490113564755563482462472959311526011539845295954257565339191080703530580561849717775533887238352009236881738929074784353276506593619762265868273354998663364774177495657651228130116659811443459616080254080731720237751760426647653252584680642589802146830651245086663435924474452082122647228123371643310133577086315517916214370824985249234898144523117351094760646474503702350798495772656555102760848603898312965007044292278493457082438067921653585065927746385066737192596677796065913931601993709518778686009225635638489221457102519614536930500010413871942865338986569108467039755995941156437891217409963199695622958854738594486513788246303743060735345441733270605760631725332642384811121675162748443996926271928518283042369913886912138034535148161127489051855770689202452109673857910209850132371037392072670626122468553048207474424436526412365721161105766372657610038403878642679361207752068585733017709593593416759722001692881028879539392665304264062981342763818044552335169952661781318160254145670862288919377784959001606031210936274461509840059561265978755305430674848408872914442810876339557875324655477856067142476881780661480543159958576672669918091911694636735557611466983045673263335097762728375234995491050371657212498085701489024859983496340839487360748990124441280896554339017228777477785665712517266196959775551997710718166057505418767291817283885447137088316029823357708539873899968930200599065147526006456502056878018433489305292496879335989310893828944888767634651531060832272053661878593412643235691652442613151974527815661301632112332313602535553070411641412961339998900963577891559390233797098970084209496566144216561619940388608178744966273379134993404474974822725977761754450979032729592689488030884380567446773578811337632041904720592797714863192132960060701582693068248402990187001167733642283355602930154579666350387946585255504646240960089456000034565087277489534882710051624402347159064475968377821951685178016196018294903116560713173548320422116768337630815238090085747764909724213172922336712140038389317573849259505490632240984945252479155305930802911793903716683415238100743466955455667987962172674902475334037848927031312317115172850249310425137257878652315783277134392952023896504705169879924095665213239309252980317262388770469156656401793962326237580139216569949499749058104418187867556794603408954904458248474010800322252405082063917259357947605034130467985088581225964471031500171471581586276364354149217679008428770955439977992514772219454893073800993607978545546910146803637285834418550289231015063849780984833260509400167545345445911027225243899942890166792461304818251080686112584461989003365648730878862881218728169938927283108059395968992299243300514927540187884643141596878172457231769692315770799963158610252440935843207310273318864376792057630091543417258684234846683166491677912731767698550832311690837028126931857112910199647933524897611535548813792205381111441212786293887882734350814414797197317276190444177327281685063698740836233534380894951492079308882148226747790181250831801308284105038696096150132255781550504549081535656994438593709386373710470523188275141677165356430064962864954498906535721982193852348272425447367150307445273318156831520743984273900977202753511590808464171697952798860068669289793569376359000124463186902797618505946390048473461066095001646035990985774270764882780479687798785740154211124698725870661584460518969916377366157460393286564201335212035337962872282543051485483268868699565776988005638858186824969630888552329634886763604910785160349096564992080051287790102580988933955823481928400917796932407225464174330484287683849818751121764635089848705202593978906534740725155664207255601556930181556154430637071185244068206970817760871308811128901041220610245569223336886677576486492635683477445757445715983611439064970054217616312430249015704185024344922885854902117736445931388585572918780021513433933664375556016167210415597580433696569751178382922105385400533619321701384363661073997885811980217735704511235392351617024186856221041384868697874316009338711770374376644775942369775917324375811651391486174035107268139082985531662354081058403225685468178649132746927347584244000359641488628293156812586156508886869927926124481821068892255168589466087634233429455700046517077728754769542408091394597915697579198008786643715114109414662642670443422502603430459468745699529760911105874423232367243409589782418968835042250762221652556682352978648298333007513277731254870105107343127599460388618980972758008732656485992402237367663735410081227914171330982905178996699323451712234499210016090550699356167995002542753069026285477933738310148623503995321879862745642499062423008016078253582511159677967626937016139859333090408098849077101804994887321396589427341866908617740685121044862436938812585307487361654391056920037497181881729863370368170153629538958242421682131891759286140915097030066027752561027510193615853048705914856481236629272271343350158772674218294182076149831323731083657759579821822295018574207322966094266834165544051958607657865499382605094464057810800475283648248347765474970475131968892236138337231243644006823701059795025861230144532506053415895259277165243758349191494899087670889892339779835721052781570087620329724516315053443729862764605482006694866057416424303485860055724879443132968612357885082806332621044213408874595936288565852583722824412727819075810114443123709358695982632380316435891929692966611610144150811043157353246260403680755424679243150461638012306465182647374868711649014511536584377450340359538397546408184381237715407720256137956494222059058061239929486528465367145323801261223552975363296130163788699755724858604843351823048854045392028914188188112719785569885992410449594178888943248235598037853220452683445461036085631949762313717089237497210606697380167253674553525150104044513576251866846363624957012781702426750026218966235971761263632195849126282040563361323005817102627203804308401876175983014707841738907737038130617814999534641706839439603045974496756489186964192789788005114547829174163477283957617717828888117709919187084964023965705656676136314185867466930040635835689042886053413111689780642321888980272563590352222171741950799424552211046130488809103324710381288074182230052563617565914142137702066597678138984792865110276182391142677825501462885819081821878721881094216667589069112469274181689990037043397390191899199510695496683139918924756306269471623070162532253023324068943447117230639927742817007001550617336414116353974961947094546483369591871555023733755342909581305647494995960242536258556760527708929950639813991350491979763412945402920087710773840389686846830217566091689767243205134693097165179751168999014683212991750493850695445630167626843735282889696201303882113600272499686645574663342667085254787857581168611443558173486273304609518197687921305919668699545111387035207971769963173643071381709005454991156439795827808162323841465095233288991098286767615576261316903817287568952584851706018916377166268321439728570184874691261879384015343455454422382768899438598248922277070931963318309200822386755043935370395814767573455233082823696885148172124610194906761502619103565009571552556176308253385993266968696723378192329919752698180194552447223976817184457640072642878118991340467806552250362683188627109390702363396393152057956433316788596417613198097788395212666406434434386478631874640292521823965483822534263111693116139816240944066243361046985410884482752824598990287341610683152761489912476734460548935705715580341190557346382790202062119860698135826068597527037642481940487258214104126307916123712557251556301197915849211521306770180866483118138184930471444892739141101848391638767006902541403703479626325597445577294567256530429836181755800107638655096018532946171673472273568496835368929616263148099994591441702490733376070256614046985504537402219543012644600563855556637353162442382822884474231569820117564248510717294932248832831311566082991696534356789502255813569178842143515263109517530248971995638778447150948001376434996262148190044953701793410024727358199708572044126456116756586043987917090970881416824996499019937666794719736053853802578380821778881627736393994621514354563728229879833212705281614953428297051713386763856680690600005056511245191632545290032149646466245780842500589940615271131240054052741080768730270326509776155977416371178484170556312024223065607302815469866561059662768457334529692489982802503326586563523526295513815311714440257035890190554310722676829154759976023337731556289254571813442532576572007714080903291153543686283071934705065421410806824004860097158275156148710398376941906615381783520286205752662120524464031600658154523245889215868850579707403277200671046002133042073926153427575486367996423224729360252894568470530042736354673530738164226961751242889729192886722202476006040983352453690477192131300421832767206823567721995194604934114981335104565750556608579206208701108182193039761102823015114247575902077625451635178084250103173311147044294343065247214494978481241742856226516803336984352041288603146951072344567624004051251303233429261430390732421177318344562392456360478317165279111264342595849447158843489249905233201680016237637362788844194273338449483249290237780485340995487421175802566682221144471963156428064325141488389199231244396410950040820578308292977729010971494670994486422279401106481664590177351748973218803686139806730298180030103724372268007585414144232404250882764305156356663095617865677740814628513318223017060723692430537479943325156674579553355221498244483980705104710082076573895550617440175203497340267517877257054749597625667953037170217952815326953632723969551312785517735816671182680419249132625668120914813784099330841904912569200746878017373225977145325509737490467643407603232841385530473651978488836539918133664827454878850147371246390136168270875353137749519601460372246519165034063309119750044934561848375993320380574951525086676687925848393337531576394779845951830035927062494831768306848473077500447884701306510260112561672032340044554931140968837725852532927029471573228829409488354917169685533404135442224827052084351035804210085096476582501654956968982480941252533090933788834802292726999991759100876782200308801593604584333183230953595835808278716515549982656684433177215468846780739464411794869422161082557423615156756049884755842570477338419674019638711056859866186685055705011283849733995828341257531045251295440120130084883711187014094008048709055289157503406750266152981283131778527695828657047391322708015509711644549732522077090645797084176110799220906560373702855020866896239026322022007409688562374851495502269814702533632448279528484564686452126042974739187007896081846126453897452713622040471611032837990700450298024266223334456340046317306511162782783734314563725640225757712920553469106739399731140499270793084422299549291584015253682894232068562127878412358053452662619493191890566991816569533474300223868790489623728930049439884172402131145150540013162611128830080246030778867239850733547681643172409196577897759928524777010312035824918437017190346191626059422661616102033329177615242180764779295152966460341613779708992105639282176392320027494938098236477068139724575608888701009259943316421559335078542703622811458546873935149923205852118844138914383625895187789556312085722427635380702215264132185159346477430962184202140552459433763425162927508401679225351843180263302482928309188331466646373362476616654359923649362824101746887320084966084303645248978249412608724259137367116927377329732269687626641777473133343626938601545259658100579242350891415143523796471906436407849156553916601815868366423701474092095851275856485988110097103105784477259799870600337824665862877928364053703994427153332753637162548213377992997876881815999160348699386521231065055339714588154691313420403628893983083330297688964236403554434144788885204047186424760451360082559554751799799710943644759338351345407764315089692294556093384116170666360343772020560676442500208747968642350267390798927457053863364270679480239562055982851695412459809576439021532532584339076186494918321803675968167422719557587854580320814479060438362873162775403822135095129424468543270268826456046927594413874531467609975568863996490198741542308551784085928928006685986764424803808109025993206907435281989608721552667389125929789117018069597726519811846417565586055185362452744314107445062976418479979066662102539132700956398248425257471979973069011907666524078399567326769008382947671854021208625630095992986211616940878975955416103231375088021751590725314669618309771319690070584498658825809268300866517465843746108598640500022645215583233305204379957273780057433721238785788559391581418851951070908540732285377384700804254373214016004080320822000784504164559305711071571219917807744261941753557063531747539329795879012895506528484782050601652040565393139442909144468841866809671437676571945746226552892230395264438860064120866454800024664490166285688514430489367158282721422867546420309581557898323713489560270890241170373692211359281456485574596170524365699003655715910246414648323214231928527652166345098564674067503059058186053412693210696257977340335660182435053710526319913413193203988597617778660431237261551807323454709909522570042803169497058812760693658571008423759584304845964807705289298724483889460077233623806719103877661779060293422013035609108930089294953044828312015869333841244280754827659875754798276425021133094385026640527187521325395873179122944842758199995128953400324399727282773384533697467665953033427330242645637138623807818608440763353414854034605355397228219850560369792385725065521821136252921907843550856640246250611263346079800290935788542451785457674481913549316010019403499455708659586807677457314653549085222333251334755520127011475275823036623205404668831361321787934155874952292408388839687578686964534658139787950315752899166597958365896354445676661456383638598538540690888140829974394136292677629135317134791571158163776537684247230687561795920732242829652347791957802518358255776164672651380681721456487849818320094889636013996663501030219050267981458993245603131396473564996724027445373587882063830048590664795472087775177867927264835680444437826702621309850636605636945434427141612849975150251336295686404794375598875193205914632417445166080105538800894576150306949430595830752653679460099599627961794750121955148478026372593794169715008860863652650959775508442731019353119558028220018686504058319853385108948796443982587661368697597544476416910134785760685359925525124338287997725005928183208008087617680285341161753681314878343928415513066806643962053019168266182572012851623566205384622239296321934599061837004479824202916519510938783919140536239284096741772411030227128221198985105219734012646176782514573003540515353229472996179547200272221416101023792073116511519881883538376184629630097509430374604632612928586755746612659953227284780146695173583864256141416292002155333822029028623314651790846788105753430343306604279966564389812593378227387290303561823762601043320444336928318501538046954140402485011574326016887813077181768320579415464663194996404397913467705681910781680952850300207694893709960179232293187125966808036565660514782637595598119375797609541643395993183834325044212859179816683470860256401722017046588392944861338319936001142146377232259911287586782691199346517111908092680068179106992021666497037172471071750215532209667673645110998091972950203648274083616025861983009978242308895054437907693171027544137824838745681199444377844531544863734708937837801416315420006344023848173619149662742695932410963005558942464751634435186292857244347762111925080986373807392249823095458721546259690374401861220444908962218430589295845881965358716261039858942193599094526822121862223953279862517656441816870934582539705176372651489773424316199723502138604339940061004350117337509356684204304577092562478694242558341544880708422249193364518098132069888672994356336845577041263545039753034736138864751541582788420842466728281647008871141188031661677538917688194031129924211548784772762791542376128643133219448346348169031012549183007656892647310030681714127449780572436471149905153585496282066958738840316227213122862591003992776334844353819469520746144293145551533531358844631080840875512808961059955636742659029085711569012430415509290858917859693558937139298149783830723598205264618134138678864805189525995107645124848506504346641711270233947355491418169639269481668372093001074714590937310843266844646832737893333185601760676405399885431137503526231898610706690000395537120487550173656056834756334220277417948122215401690675700650314864640233414714756319194264230753952727568260834654572851254279671040271422526102075702625359273391284365249359675111188387566477102764251572963559188323544746858159914498813289304505128342819214286724798312155975769334135324154895580047982157489199029814136634091575818771818470422437900737958878693491843472789345291839169542006911415621003134541610330058366475847957396906250453802729515644742033522773825335416903996360318520143046005505322535380515652655457679787985134590631546138797756046252887632163305663748786181072149756762776386067516927006643596308313821436169034349018128679051528276900662787220809128434313488965344015642154368454592856016372556990524121484997226688446143680413541164929278321784994683855985828806375101858894903608396754440673538109872981090370638021008572232892377902600474711186233540513620382876810109216295679720569531356255344044324705093481515009382786208572405927995669898451765783712307582273281806695341140438481370253543034783321673452483115849185115480087037106027519057271883525501546451132994895315404173533119114108148175878384424936459662895841755512076826354016573549627325727448870021990702135265568441903184518897931890491415007138789092299405485048923218652835998446577435157926094710005245107617969576024997954398217683689825813486519081263795607767232212436208926497625050856939066757900667564445395781116753085411210681920399191495774850171378094611984167986800376217189953543696383524699820637468455167580022164004450034728515874660633826559386151016741023886427118211692191808289511351014571047777310637318229726869372272045748099146748024488958447084206405078572679737315672910913629207554813791928308172718187281346160006932005745379766393095996307664329229903611708403990300436223720250001479576517094074123495331660794388858024273397507573740101485608887614603654084473997139454703461856871904205075804075265796755602959726099135854243978650143011612339083837065205197879866029527500034036234826981351480241344785160971266542333551069811500237207731687250573182308918930403554041719101085640204343067144590303925641146468566271045276998039979505332211170887179924269088070040551931787645565174797693989229108869901718508988163879144216835174003527899807358200066158789576475213523590486661778588346105944870918190708039752190270514604380958292684668298441804984310661325924282104695112693655714368132636956766742479381372931152455688591892675426808008510416637322600244600354479096164957621413325314125405101791460213947123432946773000470347056921688354610636361312243727145683944933086575898466939808961503435117812652317102658142861646015277680431035398527093994988038448851018575909184015586757814702259245002894507699298928839973986265563097539922674685502118619322748799074271058901255857193762882864564974397087120588180983711804966790329181613271144449003778940584376240236253030590152356699266093934925605112512683008167195557582280627947559972302024871065340482927032973327576171755204916612175281497139358784311792882931372857484684863455863624370590995632816836843347371712746648901808906280310225483085570079887436899425501741931848492011982003900814667702379601194801710115778272853008536578891217524361925375818863588476853329479433150203083592311831874977802296286592347038573537740825669965365247154753647352601871377314943997486511748806775715949497513833345434761349930741636838282071845564902036531089445833151454820294239730552301402096538538873797804677476903535663832599606409803199871157837976327739528802825990455192003722991967609108522589643911991653715346912375690072547973131760128606664907263629195238657014051753585979194225524637231752217852477110288221803430733645413167072105299621691694731963094009528079377957283619957852305633315580490082490368011461092937071765949340725375690501845935357960822749230502763105084020774841232560385561404192787173768824207560705052481110868522151487398187040763608194536184970216797704658290039358891923584509962275074450209888455261583110897191932138044383735021710884507980176978467969933091413624594526101008528824118684133210875661223840442724246497094530718741151630973889781938690532419831597649255769792783308246060252193715198138202213641306872235128975598221371329217601579339854063681521370041870317285079434436933796111421181361703183316625678001539284263287634973554872365338343497060442224345944257742549376098298316313059322228191115168654807843720555381906058221873500975905630242433861935010956589631229692455546876193793391757546129759452407414844730234133380004039260905365074481705159201404523899741503050345567604843166965201511068769089505610635262159799757584957435857130099421673405440120165930236731146356723614673736869043110259583037834843179435784899242066960825877934932744268404971685798064524354797565759908279276104152931669692096516499122233744353446896570781258830522726035879248212569948777570459002659772505242645990878517305187399130257731312528601564539389925646151020881806498573451882101297698757306100153911809963113769498787829582104843108512719278160941534766289952776705190935478214888315617033625533082575135649148089645044640937981483793176059757881539699091671415097892385310141614635176538258499468160009505791630394423576706198529132115878589606390679026456787338481119148225784421386743395775029199713575867906242637730531502917087110568857831377543329369279026699153847852594801630650366016699315674915010102312972477947177527329314119513308517001539347134676680624053461494382595380571505552602885814814382288638186508060258418082521412857620288852507229436199040367806924000200439487209728196768376465660941537901869473705194816771047918692881627561632985383606493532809478826276530090974545083571648938042180372399051060269172876560129829254067982507671524157247128417086444974814050406476799248788398868407220946745940498892199618713925541764235859283794665537026204682110553480223937588352082670827549034031357939603910231185002355046407954578507175759936224733832987408057288636293199365850648435043608850089758511369112981034418130234149793133681559175632829985717636786250028533896379476339159588648762320746639524241346483157630803771866018414443016132522068785858978221990117638410819475721729848323357058426036305587334909811482960841060034503851256012508278277755741587700437601543451710222348380476056204211174962467528073809166265352916007712336163491266129229301526942904209934823016012113462100851911366802160939809428348278759168042181556795246714432623768642415853106737496032270659485245314308095786219812800620188608698493685251547735139948634756986958548135805280032628800398411377427015325487107682308289603234131188387338293640677619261196253341341658710023318606517762056212245242475448198166729924306092485311557277394226850772219869361901606424032638401024086064641186608048821489654024220199037427201899803659806142996177569905388028927305544363982356409848952123752786052725887494109336995484176114027130319056916210458360838791521426755780774764073591572431348357984123521331268897961950509343058619848256071211629183962301083695242777203111187389902128889074213924405891092878193346534443239156791861247897555536389606318492250040701682129850756348977828011167635760946051421395801948710017074490752413161278952671311680352106142940152005690597907968133425844814391655730769410965726995889239143357559364296381920487254362583098283439261531165457703651918561044355907828313588689306062304100394749806049257045892656610886423466949344103142001230006347215862309366173141473798961112948468098114032878724181296842110813793625478585648225932239628473304684674964374763329222752804921928205894279814406698815982463945378634068128695605519595768432577810009433355453442819468539424170413724762524171778359935979328594915108532145027411168819851137522808897490217572535168376465583353112184502980885325907070118180699861243051036204914887556755868693363666536762863282264801042751446948308786725341705703064724466493982920177190513278383418204439465871396082186466396561402239300820342940870549455976528245697392513500148577900086728903584696028666742003212219961661055216282392490538183742561109932534446785199225996348981176576529236251857543414700042418675980096062020538365805386829191435587840835881337887437030113718879539834229596021714072593569556791182010058073212884500383638687416317104171138621582941150208770615683830263112085500868425431235712442348292077493226051029914031672704409509069772090848374033650395816917989426403846298947653600899314198462213085332839856716130041452136132649262462454898914216971767303104738738152077028601736643924717707514828117653884781744161886393391410817615346291861840846325895206871522259590877698760460137386543164947727901374605586370218122745295681816997194604474577816269825496835890390545242021099521549837420765843020637235339058346966599599471487823485150349557163071447285288535668795495716088440358709972031850637052017838758403445554497509770682584378613281180850740513402407106219474621895642843512619051948392602811477308514937270785636820981509225118887618884382871069688154241866025840458597788674331545578431769983716502988977040838580594466275598161749913649914200087582477978078225616212056000480309456559283494040207235999229211625872995947424344380184479246117711512512958101753325402974543447131569319407164951839055940633171476601024819600966386559474903558895726550086969159126338090876689793394117152083624189534845782356055640704111222233157958874383461537847921121589868242126833757626126519591262652027774507096776105147900060678243169186692585188677206534536965792376856061786946863275734338238779795063438709999869875363232696103328906543977862493030757153555401653901677640542879400220767975256436354460138858886158447734085782535057512745351827435672893992376695275507593853185885060071405639086652353198548841739545420132330369623951023457782939856484247469333471171869324535909338354597155681524563998310758068137358305706564631177660638706796988971889106005103100169950353955441300096380825301100332204883658923336615110973526526621121635409566631793347522180689113283358196072447915002215513672044580470314547234039061499934443509763086674974530104595052393385007076710151289060969509930471092091921632805344496036939805629079771134218997668295153402983764501330508179971401140137025018217026849830075351604755984263637743801937075738218212237657669670391817894845206889783089308993245704474173761673624058279271807703142394984588725179237131408994968252983511283931886381654415915496904114344008344373134593487674417090823006408920613458524051696401635830859063531443280697205716494571558639269550576038351969427975682075284867425134091225387229253402593594296389920574243769714435610488960606183913104735037145316827236289021234135831242891040669103426457795634105250422619992118918451893319084143870114886572591152623064698637870874413896927435110890567760346204103582857884514820689379548358089427208055803892721219954287062346570007700440152149222123593082716840744195763932651987408482748201158496679012980849948214363897558785256409563341375945338574922495851823576669234373018429145559230452950724722141050673239495300927735237845054999130784172899565983355191288692168675255972430365539475397503310412542404896508562818849083774946216787527776336283296144229427832009027453735146384050269016583477647843544577006736093710937189749781865499428715393583908294118897172821901818994585600467290113241588826713932737232094113199592816145757888018973427074620967040505674621848768673269532001524485378005226820636304224445025095292558270037718553858989139927749328430294851054613110158844200227630793302282280865062763617250388041371538306526915673669050734071248113396405328654943184849446797614742982020462797773979704677154956190447787600685442990125813649950022284748981414160501588828941908456163490359734072250769644329968250790888242030945627614140067956428036695685756440321604657014042388212509960118311952517425922887179988479694308082834407884126663836312928624421693208360204820344494282371890319958432013835924213270227946131844721258114167650049162902620894459749664506778750229966071375064135314510831842882557022072882090245565205510522638698196477674470039675903772007175930575369471392915479143013247955805927463664518520519102638872267829500473451785990033293870658779062319639868193106232761410344661338260361622630903883847187307408386686900285189068381296453855993625563099461929796907958486841491389039936378881913197247306738364030401365529973324162791215556294859043905365801702835787906691297683208018766887934972915432981844148051612208938410216293796583845576392712852826820668353827635968083937951864182459575598900322223508225751641228254895543931987109521292815554055091054825184415439354998746303961536592106439290680687297828646483026215586326137009750338749927117683811529459821471771047506121209260152722650478399751099782539609439306765292833602174221550078437345559837377831647937730159780365359841061831639742962138833155216643989643535410733775109494086855714931167327556749965721349936549982221750800585337700220369915963334966372845704841882034916215443705291960369977996419774199437844819049090695391514104032469600904892248291782155007231646396519335310535512710570632849366643697696930890632873601204081163797106084470791460662499615432279792304421797918640714960223737837618568801690637410925882241866775060108964797678144329204578092860267185820257301803811942054108862451095581537292064132108304429567559364147534881243311239204701100696151134136004123476356076177045738166005473483174965607991722660761088206605527003664418016919469914387821420692139413534026590782470137273252421637065970970686659302726879651339518823331625593150715240124606646379287049610901493969610614839107070212117431535546722059848440615788220674078260770615731829199744523275649064361439589552341871573258809912376756366553271470016781030750527557580849115285694489998812102010306154122737871582777071505552898513845407007149586679791003758313354728342654185456649963112267910242831497843008428166025926717836277199331987546472870379849071534003431493345827592010287744576416855779023469308741725013718027172811255251863270071726965569818492536734135108062154508416120537691927096752008534321420513590422715589917159415162404815866453844925380410955257972193300181963988572248346646740215759790946506167365102282726232021063196852743397150709576019488096209330015160916541937127985651477299055788072742344349504388502047559975814874845530039078482192149393319053137061334968744358061899616816331260499064917335867520905557381641817141722544329620556901861035266915615602207379246806208155307853074997129992451258118843361935647088091821558131787685087965454379339608084865598201550150609035063961987420476879968212747883506078653424887175311938763784313714031921517886111717910712420316085598358783751949825487455317988397870505366823497089888297554562892924408434372468770610445784676749190971612926637340408911072832628511833371984206741638677306786340463999866906295129818849370850066020503680596722776209418794586525197867153125868025721744748446625362772668236204426038356194913696664106237325398510702035881950750306708038206716697663939868720043907582449601265697091035439683926517238779587013585668127082871519496114327553588739274592571328179309689787063914497584804367023315043067098412149118549351547327321486468184883480860435400677090555095039668799367173127812799972943253342549818146948818221096387175463181567637981096673558131775105324150921364012717951768540330329294058462446002937763092518565693519790587235008197883800990490987163562916397380862370907263352157594313296016420125104765838006064117469910848113945680107505993963623418082041871885253773287605915158598238800240327681493135151956973029855097699308510451636090196346381635735587651775265556220430310120314000833976807370383440649006322006938743884319878632584248355382177576825512240630303691551831306038645776398036124424911647744770036045343998352053637461267584302515234403765881667829633849926259764083915796187147243572561981657760167749734109741260302710580848203175638083776933780967096793824609721518476332042574330926313845618320067476603455178079730979781264051222246217441829817166329976406177465164044677711630135433608434884258218892274948625537279836610400252939071627983610678262036792742812460207515472869494821220841032524444026217967631079540263564241243652327755776490472511417121126753883319724112033216227080290857914129091436782557475581980789356220604051414878881848378368537553271327606800820246042374705600113718146384811792084552352906453492835350575673421570273747279129643447559581053857335145465510601475902763468982116496628911134027168387258735791927968575924067042158418079532585431398215630047230231000971864944983757981462847320081622911660696263691308597759621473665064388193105503746865734280913867432205668472881955792539262815154158068421198886148715387834183911326526702424869744122251907875494175260101579501293348884566404808802633752459397518579292712204913523582239676380844775481589532287420214703042653520567429702909467103623696411743438389034879015049611338479570913560241875176795238411725610627088867216566806440261373645347281482256051422687695872396702920233445617233754387599268275078860768193881210525653858942382254934027253392655851841046155294070314574205793421183688340317439115301719335209316672939835847008342275403329687828118582876365477802261354405043028970374844563727831054317488516543498106562730367277767278553189511232228405571790320914654882172691500475824131819499880819121333874127165075442097119431903067654474474018323025509112215893882332429714298669053141743968370508329414679697951148488592871601418419656543378657723784064526521145978217461739698130012936483106608462997405485010182673785773921803276472151854815019759336545592965891265407535264874269890405772891700583881976002084257649678033262239632818747551675297848380834423310158681565678589869611350071363492012365121152471610350887192383528497369102932305993877807238979243752953707899541640515171520184406121954502063873619936872274931950237452841432265056412679615498915212662010288848390243965866008082318126959514010468976278734627142181420296669597216320012114461002370699730532430755170687012186255183042885986855494984780076478518042263509354819525705720888889164590571926351235296436435951995627625406163674853123076408651715388444028361009143437021636787299787413584842932836308845150347614820370531893809509561644030091670425294626916895204537279309261328060622016154180671920150382746852747812987485495767387595621436958833206482073588552488282684585549612641279597739413605055753688184859135769189946065235047652465029260355887918079194703189900279699135644381353276434307704475401216280685736878511400244924065594220769317629885966670198341952304189933793068499030711996686723210115403280796777179340990162262957545014118697211547465474860870247669799604398141445252409508872082297491779158016149336038142014102206348684600846282162955170425715639426179666874555587063569527029686302460699511554571808946538688803636114184877538187936715255419536762887698619874986113474517388043340643499035365653325388345134325600054511936425556460680383058796442977127083667445916524206380204779024939680444024116885759944785219957084973593759855031339596545632059056334172386555942333172953472362303992311334706785897552182886970734706291482636791548859531337835247577814742956245495899905280402065877646474203534736023060482798540999025971847117040626815088579843606380266463926738249600912369508095458202174842526541574048167815868157214915573792871538040580625368729202186631248555329794834142766607352504013774059766125894830262472938214790769053447040465580253257289553993927607018121890509108763061479220045623985879074925810942386445206990222433468838790745451012450767785204363813202057977045085760126342551893142813856855329089355130130198361084645109915580890894724934705750460693568977586874628594608510503650371712912415126973390825336728768454338613302514474578402733269739061016853400163065874491060062727380872807012382078015242363458320911012163673376239477387546098325566056260982393368890489797049401519476018613191670779438879514065928152471080876682994535882586214515824099939392484028294301059224521579764233668133028907798445833987046646340324978030798471987923644703753447546277673719869377678407176936614132617264055491452051069613194309712812874589704437812927213556341787126591053301547919919720213796858203451470546807357061236260482740981164990924707763324832454161363086092533534645332397851759217370883145700147737499176935316855076472426086105385064075223128924717404318455823594041983292268890887965418308889224147591798327491998586213417080803194420044358255907523631847376934059799411412804009630123317368746786592599673743263310475530742867602044873889175618699517344856206208240155343933158047294091710508685061834501943918365104323253761634872313624178943322943073294425700898645624480089863890588528528314762610155899459959984320874163412264041194626394740437558416793688176489688525309221022568602422190246073483929953672925566546851392763025532386066937767127490320835905050706202758650638750425260510234284654209454303315110815356751943086760250936581368102590786052501770662899343313242315366363362292187987099959034816540146841587541093903905185697665259673068340484981483248369928061117902202093811414214821890742525321010403504286208555954695758439980063484529502600906148440034574486673495870137975759918221058022929383405958008128192560045579543794563586131198549779210280315110734165695425418936649468729442626850838642174287401926002050912081598103520558323027708097929458633597279243484139104617318317482729999374284305558324911438960500944710095813626227269170156537861639979818221811226219202369199125718414481447781467357852050671953088581713285704254182051998241749841099852663317971170356967379320169571755244294379888709920672664475317048263477018949433763242420742554503300900744990325303696266842368412926737655692535762610787154404221407134488131877529191757322469528456169311612211362085923098692436383470508781326622186371947703658259049940089397196055975933136652043017534459215391898378323673352177068039992368034337513307082202500615579958554998376379875780435853705984421776770675938373185607662905685139537836716078055681473240359907275650108719038842896160579216933691444308302056436944432929132742927556239034527518286072842633711801952618979443337968459968084959720065090863618437308826832180101619772023605901428299528235604357696085605694477808180830581507753192316703320118520484579503489157637841770310918972474966732638496194444524560677814265782634567839519208975141681257972193392673527361282578303143771656539027670671146164030734541598764038991743085055028175301355873846854719424177940081053521062291077667549002134978788372861172147952832880391779387022641556527819114064399960822179499076344875697421317320254516449682989673284533938045660851482913226993609444852426216460300482540184659586975791590828302697150792084475867114160937116834342932940323943695200448116854542069318832753755743795594227191345156459440212780815371555748915378513021801557424683779824137461409681573444184189633981682915688853244247011200230685405105689364812757045849193220560894508640100269907183040363263680615442784263313940977103540590732552387591940198717772368178669083939438095446937660611967675374465787468764188632800211520696390139861370948960124914322001579109840241569296200413097650340593470803012605280695787314640852922091188456301390475689495570002937829198269473639475551179539389179282709923442035355561178813657215142588613311116873152627752613815938058214814667858867817641001501590830169207361159629692772658499299775705781887425518974883263141225852479105808719134307298649932924822835757639659355887826191285522451293112178453332755175195164861193557323457594874481682995313198519537812484401400229169487232463100631689242672690233684467753239437632470229104035154489340395087930387974264721261868687517182076810395969235411681055712101930875212654273618624048898750088642535456186980716330508780366683225786051344118690265430450424622557707053258932285752188722750099430621687440144692925288644149473022072345254835193678046094503365986651036645279597489331872359526322932505421022691179060723047066677386304323603843110969588991008147121423220305367773978044336146641226441192093763167884780419812758909797757942717799711034273472100738147505692127540614482979441051208679377379985618586911281895988290869162929729977355503019543675496314964908159067196646329538806054358835619250082445407943560738034794084523910006580369773304388145532292010295449381829985950859979348233368367892301792868035663218763776634655617837590785307614817668749300013647491853618480967671775022830721523107938353800000378561421741615062750086051934785553569203608400830558535728169048790979938905137334423417035559757222069367666591042203573497143632761480600120748356134872266192726518148661510394658192969384332967101619281702360039967677703929169578777121224542547077225656152953792461610901539902848184926732912936485611157496557512579597671314841985448427828293984618216690154160970594028424027667007494927942584915873519816325114691568791498420037055454021252057512652692053775517960450330874083385936667557210652259375150230651593552539702347670902900606224340788471355397279029595948118382937663858382881871014191708762297318580383315533358008743696958050135893031614011238762506929839904830729287157149190929974687882588191879446008357061997266990890967452875231889025675106521444830893028032774372539759014228301319055382673688586762168976866003644040666278195100126911118578810471153888536484563874397169043483944515147519892854576806734058789904989121774493730346242437646227296017599414027002303344479925813165423721258787631120236490921962788614435835024288364569803806126939927504673290810693777304804571471691987488285987107503916218781150943203230537227118996028008137556593573109886527724100699968098626345787778793755907184242431099743536441550260343411196667916589048718417169894985392127338513446269300221484168695581249368586811637109705509355201686554838668884699836504838960551527517808213321805010962722969275395293375500073128600077056810989021455873907416452095177155689540876505476620927984641413819660454690556724005557616891320911660582783345662706107689066332185421378560808284885257814750124003334803660440274879087975275495268733269949433471116680256897749978831129479973444704481221334952423084220437738707833994293372211407502222382083225028816475655642668763714015970519161236892745277293289698146419364160981630303215652341656720459092573769376313509231632538246009216723113031639293153159640075805410924661863200209237934840151166913559036486403404490257136043172100147054766829255699348044701340829888732122417497270330522212832817272622978461410469448260352910073103764569894084890031455595920608464342843161490715921869799196491769481585380419043520909014188609442340398668787197093385494608042376582591399752761474956961768633117648750756709297049527519549913472712590313195522409349662593217089429198234707167159216357635136350393425993354812271525913916447258910307689034327667733692403663604756750697739999990048242643071834678639945962012413918730994306054815605887578035897163057487348013652896254959533882390954648850697289155935880551801184925340561217744650318408339960129049018597069866998950808807250395372820860645427949679994983906393924769360971687651255443993179188962630968399881083137992959172756339683451754997609459256987068162343404066833503221679495542350591032947726757699708645392051401197358742269053627064028150238801195137485948143537790598637292793571186818120034364080566664716573223876830337461866157181248258097684652303774242663394774172440603056816310669528014079820623571786375860844452730277492426588614423821657446865887507512421720422425237864622309759780964007213014577241316113728384707860428997088401996559282900713512559546667001925714322298066965252442793419798599075216128915791264128292867537026140235317615975338715710115330656660141991535102301105038174178528735168332096198508171790765394138873096949378156913453948070714849082200907854813869036411324269555910433628825770341491778245428025547488233423723684452306356817299862354056787312255676353197417438585618101160303398829106752417135550555278426105015621582820199919378562609877924382445826342861465187660611549755647780602794794693001517528527554014157784832846212414844765501348040636573453923595074788011271592647555226651906377654496264608780248031582986634692938777559500757964246081253659629193907709939835229888933818160438354684615768678423287078032937408082056506232259045799937074812391416231532001467196899392812120300820699271851568086214074294910655281910468529018195808058550656056570635390121927809000531509166726338144366634445567082633456283008115429102778690993904099238528313379150218202888073924154996891533955473863679998713923854997501152687578734209055304388894368057468359515264083230742878093012565425365542106153574592429801317628481737200851852656490412197499264803167239551921915153346056846949406737895722675731765522156660683634457377097823606001911114813336293352178193435305415305917830656979930548711133285430938858718191152582721719382873598985523836283094690634491444601431371362291689991879194302060197687370201834777169763592500758872385094910790755309720819025793498604010780912050609999446284434914324651722640157954954654151670124150154139129823407310971036661394255388239306261215947181684333567378578074884487229021941109794602019007499780125071637221371670716412785255008981245419420280391653300929229709546758160394254405601437674740282736890962011917254637495532770924861964391933880871014283291723051706303465780132477086194037333272714746135076752255921958158565603932466798551319217442409288775129376807296456429811497208766700568528859663115061008966281281949149077280537171304690918280855756944321997197620817740553487750400986579879239077338835154578946841315665132116016830950301103901787378430215763912438484486819871096550050674206550864585045773330990733427947818099168832742655467201448918217915464719559577832313061452208447042137350399747077869739337499140017550211990484552681119522984883151366455319757443407389325117760163956438052401797308613887931553109577967044772704785263434123855761880788336606740700090404016876440525943359280316389569561934883030645202334279427375562397025951079831340266052991864365366416489285780352961118991448397685105187566536396060910525567311883196247617398931139267120865975899907501451811537147531379753071850291509837196583580170144089849462236507711155518804936796475167070195601608118356878359977876638213188002053693975438993354565297005975928321349854590606376411151138769646166839619348471492284687276274833085080918886801707135810121292916031352812515525983879557717125956017253329237975494846831908030080370285096664394355144636831027560860476825551008236949723950362463939820833435727742008311974423472709522716044147756814236697276621321940369776732286974830570774987320350660662266039455583262374628737828828688957424333437421845580136114996865140746298871212289555287065247644580168252807261273826131161476627527987536686100708074718439876689574240725016473415419621585029393823309575068129244141332136412904910346290328143209496681605105325626747080247803263727258062124647539740246357516143245573842322265047064365008751525645500364031474843579886606611898923644054235251301916816869796445172372328735762885770212982017814896209851500317847245001261836574750423970415104326731942737140933561490853904929551798867483937281901561082392187858569657322816879067742991380395713893666647027496132206007921418674546907357181284179989159193887166801797818601729111963011128227441241760978363169804151739548398670086084294150344739894161182416275374975690223119154420193397436693874976994110427978709279388377258557946097588035230956457771678672236865586267110972068573845841257935415223651866170994186294212472782781973200297212670023749901305924790127198246046773019839203557012454683343895929815870723837781821768098305773191687787476387724687922250552446324287994155946547327044988400671790562297653959294272184999864117408840786520609992647285998631496683175141362409955961968811688854872718155915627850107112352798087855000795439337321918914916385607428481848656449507839126884744120584916547918545018933745438933342269222547052636891528944523306666665909714637647330216474445045364398422711480459075524560580504530782133362683020092737200683563069933519789102741454609345394419345243158984654220769489510951948825339948880243142081450559049135528825303002435802300655092055440134349757576503269565294504772070399025095613610823326571850720292596403019607856260744346502910921841628289178236539399823723030890847923792253437041437282505171408331433936343968053820626931254020913948646179074765257832234088346895834304199132489575371050249657050072744702462846833954044123268127820129688559759459411246230831419591256287294518714401337113702044886143876866453325906502418067613713096443655699839918117930224824441179106858159277136717609387847235951664577134593865937341096277855419069160265618829780730966358027476512135303651384390874601456163098577293785135375875144622489147524667937841804507481318671784597965701291079218321170725441109419472561722262903911914714034644758005966016755301015249208146200363486543885777341123483212293368347497793554516759945761716360713769295905017329660056759101129504842731789105073997085905449002529403279054410723160443889656085688335562500026050797890322791481418511142317426098418483903064780333356413255289286967150776059923013250248163316519063844545283122771455295590528036820878848839203143691862571454321031368938967940878569725292177167952383757306335810741514576014941801602782057953868928831420439842798768181697006045611565007663629739830084569893075115387217120052514843417559035802245555740080249879757310603559496751792081087685380078847264184400990057914283738436338781584850082183251661877218547721096049151028944078357897776599643027876242693805604914287809343375313171974702557861479060099181364060858716510919853521327377058876555475299912958058092083724313228815607738369518250160745976957977169184448774353830225469926935014683712782611277277232879975401109645423334845917686125352230417165527736233770141177259947141222789440628161923196167950448636351104795981020506359312095552499461449773887822276408586615546104745066823114920082649726934182734536742924954928738194363871999613230965436158543966168873171386049824346388787661867240427171405942934496064510524123886787446458293292452324499773686551061503680508069543768005548921629104521637355830486227513197296982791196515637969060642597838397273515717496122874310832713737514004900169919729813571969783040941110161834506535341958046234294735585517952196432153753216569186270334689429018081241550916177170597774684089364145484172429412953649530988126879035483417552668339944224048712495333282423845778620987574895327186371101879753968998187970676772691108400274665178226459389951915705957100008670148862449701708380867287474477005260788566088734564369270110087575136650730835419895284872572225938703498299761276480645152022578069715956200491560956372381381250210592612915297254988084860851912875682388094353926271157566823665233111585925496013444246824982684655605003297526729185816521408826941807565080534910888125557292473149512186320163310327049793949777366903999519592408830846501627422381948124696908496492785835190402602480338497914266142806664787582227781307371297509648855191220171661100744567100716396289410787413670972114668449709318762761814123275506473050609059106423794709919467541795597042166884137217490486088504906812146116457897736985359912883574660215615296676034064329063211822404273998287179719002174113644972716230852668137178849968802497846289457625354721392025039145910911741365861868710288409065625092165754201850768921798034393328808023737062984939130688686348770435549028691808965197447525835378561861774712771769467053396022816985364117529890899158277463600361475000256664850539660079393937930168143051093637231130675748105238262068756002343657737081641148233812881065637078812839309647796567395655780860813272478879272274355831515520139195115239890754306426118665760228294299615162795149751780609247816182497805116094864555809678058966362111814827025037857900510630091789617140329735942986574711426958933541833824269658770638286818588892004588841623186785633675619462608078179369934788529007997905029987430574847839232833407881122299506148582238863790985723172621809282131531126592001109639332522720765293966859969833236855003922788326596924474911703734079489619310611993063846330774808239412519689045150068668935271393783948582312103897893915896195513936875380938907754535526459460833339701820492147048016552950939521750843410505771963174760721379826778138481555570183862870684596263867137828136578503702538035962848824320672739759243170587654950405585285246122728788024115888075322352276211041962045499432430161830158353729820350319850102831946629106036928266251184337367613430711653230661036747805834665279909924243480062535867513503292137494838958590824672349403690779772946361060966689745770627956215415112019525034647939668336538791042062335910609558881002727681735351170787195808409900232338568927947997909555130539705074382578068268650856446578412156257058972488632178874020217565439473362890065395297121665965874313866994886526662816589481026467314214571446437760336558291087374428087402916330283847494125497756609001148497440658426270647053549160621785352717859976304193185354111482808614739335521261137649644329876376082051988279097574447072695567878395814231118560196856639064055463901226808195788422217025996968377219516118296753290968741643279158999373547182602945136774067007276865453756135426774280587970609451961631721265272114117839416635579594757339469490353900517817903930832050828213836364273322322650331230272650878873562784467491080903756936012839783454435965683696480651909287030193360130889378580867451534390197269637432007317377155590531199250196853518595875964259690981230874844282726580362934820264913124036483426809616546694984825262844418337716562530577745937923012960969594826019247528896598323219848492080809272549198636615639392015793415951694661814490114050414283870929181146454454324031071143861271495476045403700541768300251066154168801247275504954823684685232264041652932702163582610851170289722719220109794931670396018217150662112503823748474207117155783522108031907281946322892302372255379209107661920909261231745066785746269141435080204998125211459081955260599270459228724981346342017751862942139232057866447229921770937212741093541905957548079945889504420383486977734742536472021045569798914823962134459337093520736047907145399028677580105777459286106352071238884715813814758029923805710469340753538088678639719653208347640126011444991454298160147793302263891499844345568281556029497577227125848541533333823537959277680300120832096540068928135656002911052249914858210162310902646847880419831635491867044881844242441539299092572761273619285956670217387192820055276211228665792422087883866923359363094032885587278152471845384402309090023478732698751222082540926997286710106916717029659921137788852728693038026043399050281608514019916035922424601275405305062660930550079031781158272938707642802659968358645187179448536556559430481399304918918121013081261011823015692640425779709197550821714861657280003562129402022387452447527657161923456802169125422969589844294459663622236253971156883403834080452448329583791571797920995245320792732963327261607525868881674410991623118058569832672042642161405889603693835568209266884660569537005380630081572241729592567727835075845995652718202166829083153554719645309465181053143773214257442173111755422143204053736278192142912945355212730384364169305845869213075057480408687449163438833403062311871261024120046202916691739958504678510625008872007849964397234912423962294844356723983038073613959532028754431338355290529581693951920491735487913469591001349709088433396150170530263698841342144064851145441967072547705248149603804717084335644408647888975947083599161018582819921108075953385006791939348289089450829123060582578211588284424648639093803723133435445509998284689355581442838432481010985297143379930671419995419215576672365264710224997965427418277756029608909840628052749143900660881209191183008741893431977421404072411464578591936472390618079700813398464536859856944124690094153625276951573961134573396380480695356088098685890951299140817234133148667408051421308190761549469463807353677952859054628936836998019922324205206295229489974081391739177127027721747030596570548399094994064867369883027366417317742539618619529123710157093886911128027814561827785088514823131644774333388474745070351995197184184454582130462114049557171443180455482760352623168680726089891234429926181221063362806186629825033954475886300274608502861854677472414641295625187559924492315088465105141929565812964245781938884621923316238611134192464983556947395522600760926302768207825223214801373956600515016443638183962401712229664887164227332779960748829920439187065658106981443419085409942264485609618263860893538156145935475193414296249280053502939277985584086824297201710938805679825900689437618483813204226633830061332405127355096838581659111465725062600617727367423961548811975712143455044112649968470734811780637730662110273879943839845012596492447984324100357497349723017394956930378006442978697607410629629831350038716373627797239202809069878585700083338172171434396688575702589249646446481544699105473595792500012746191072381309983178401386974395256772568145058551357190949105707131110527112141468089396625758761271479323741737848178276940321122741558022959585180743033507700300562817637483376183694330081858310610178362602207533539234019194337794264910666193056253953867680930226269595117714454942732626335426887139953136024503213642429864856418197008165519826646919976515246060843145820333392020217826210164131061230092552542057554076889743565890425380699783898372624083368814487464890838957214512337496720822495829098949338095532404447634288877749100461426821903219835916868220927942459927961157530702320406145141610022210062255402416581270394514651049789727971590572648169481571928363197449357458211357540023724000477784724067447603213218764374739674317375734524388233679734710339665813213642216451888976992097311808405595688847700002546521494803020839755768262175751592093051699424270190556394454011970699062281152502244834130277975610247955535809918062158347109117073480032264420175901505161297203470494978993356094833133183185232823742505576489807046795451179208587350217333686277977712022476747376298543603294590995100972509260710023236283691009538653956470030800076391656315762983134323107231376336070685749366839530905152392786165663562558180395983948773663952163221697318005435760191313432496300628274080256451805903165561274628989617116617131307803105328725275813213618288553885612294950055384513763588737002800912515909556211636715286731678339332005838421647322389649205881443544636280620892566895739670011725839128782885246519518391140982117220871368243866500873635998800343293102174609858329695607370567709198882841116436154744272894792325428194550778430052138223643817462039011656657928507316805000127246106889888720370164634665128542072078385663587878693255792852075275415403162770217345639301154781704578505830871310642596742858456688936626661086895265378578939014770990777805488936616683665747382461082103684562804856134925838049040942573281432201021218293051933006733450125583084465751930316362856089794627517486928010209056699678060946480027557005660715501097660764237022710934853250989933170803654177784227783628921874201366370581021629591844354877927162794251866272977667829752377699393901389245291911740720973728343331488266877108070963483895248133933048696253903952552026595948542835370838213773014058364076898307570343655849941178095002003455999490483302635348225544827645146328115237250537333576694484898337382659366523303365037701496133340657294581346860420484574572280311433933669293640038110657052543735434201092045916902982708215452979850293747270825672065520827948860352211195311351472302558701139955868337017914151949479747666709515667323644722411603855568997653127206057378296413011539593148561006578275049800703317055485911219544462068333371185883006293659567005766731315465719668204386560383100342832767573589690714950440721990790366461900489367136959087351076131891779428084886309689821046870299306543513025526515898094938097623937012707945700648076306780712271860354656975575227668746588403722983618997755214329366999280841894761504374070929677396783903404373322687076747558727626431295902284278401683798642727114997878399775858251240864319665691639607937124025446231732859820906122488578755194626909306992207825217353339352353352660995592707582130594010901240345654279033702951753546450175385777643197903067291720842281231749814651218465062837712852821044346759589177745814665241207179414736628846435093681436000607188694768380053124702502813110057166196575161217415629979852197295705527051455831680380044176034677258393293120245115224793221221823845249357045897502537651277026090692367997451838930594219435234981795341269301714710953924678953372043049469219917113037339784357377262913669744675687215398823894483473521786141508531933300788736308445542088558295523967163618470802767024543789620350587999783015544020583918636647546321240572688298116319127132119119386863048483278332043374507130411541871664578131722615627903698128791041893596895017859267646627940390589364817588567438620057799555188051642683081036129435279484113632491912338551020838260394891730220855960346271665462177779799624846111109565749032046875570507196845633914769332076913357475282588820137771758657598571453739485768733096675343944701617347877330883055313941409935310676389211642205773362516689978573359411085736690840851423471248695686416219631573960709454469786114210311048206033708543420489075219492998974709879491118434056603599786590913272159833221312025211519159899518912659671650367589743946672336114382876621059249755688573977015083354558878917649841701699878257980112547469537133875548552017472675705910865717131170265147701102157858345138896824955735482791029776907037458681375116678082193624904124527302466563914400100189567043042981371406965526588162631540448946951551629986661243648384231481304654898624912288344466168415959463099452613665054130633732545798887514420488772038303237036059130317194727331440434795615056209360669230459011936725465506085959733114366803803740924321408759516448300696630778831050821344632359002524667323425629875298791177768588103178698503744361684502565054788648240273051837843518915134855038694328463319834266831712974431206193586441050733825121885776624330685755030645622001750430707728584589300623579761453297010043479776628860181513919617242466979868967105169681330209315698433530497479286757699914987498196992715751335528210265280909452433575588734935505352233651077584504996789952612452910161836765788661248604842660662084255076943476546563821037192552358340543598461193145056987601233221642345757364173227431236920078472821559362670652843626325289731032096544475386459171989139785333847752847971088079564951890689314141833554784649859566807180207262013768581071813877207689559247467440425820407434863077405336691562515440589276569248099259123649437344630540854667169515191210430685612646312833258282866291099333327101192243407432423931651679272069211427721869152427970716491317896772785471415877882172616461112945560847650020613992923024810100341356393234733500944758867779318854662253511799684650665043466867321161469111153688008572334114695556098175446277639782959960618604259045837556993124702041050305037492682617419486939479654175656436993796233366371668945634014699781536277032140592384787938106196764675902996642111060245154358541471409460252585557736168568420934179084264409950681820127092936367127633863522391130041610823578223080872369553864672038082028323778744975770955966017029999862411004936484633183415999372114982422104098865436695732191920613513639320590831042225547764243004284901401691568934987736873211795815962810557672763192373129189644792031807000523440926273785659451549984491354786619342585107665649508155927783591282143744100666035842881134925245058560029146994891326888827357929518089727623226073369527140358226098419675193076090904912599013025554955590590054707131888191535896019831596986396338846483425822104131054508268323006949281916438492640715331559182024282345049184664903079113930022192710200261566117153637081450408413772379561788580531785082694489679036350260540105240014823028214347258424491133582872192992840426980917757879998523250031673916581277236540692007946874614389069490905614551046228868082204711185347404518026791264504690933426823885619002670179682895915633652416050141137302131832061686944774868168074552567629743663883771974514563071410914792080988103563567562156085865333799072186540587919009704049643082690272653906243610220818501283737555888394571911495167681508299402742697440635830479215135981752139689736895274173215682604329117868377814137937661680529778506342834077944728622844026554231347676445990630252416894624715036329551939842083907606765309881766204998362715542075665813879844700150604281676681251686717816010909306681661149474517510163471150924795563970564908260376521756745913602264366222367658236818997466978606936842822250572124208973780340232766503204968942309444031066380107930983843207309941794262623859200934789995688144057628714179062606874878576408967796884643491536615923630999253580065274237609650357362620358522826644303870918135960520633354428447974560731348566568460642986962644461345682803567080971125648291181644711237834184119313574622214289316882194678488699247192245811183978210050133077796326012908672384788885853898165278385086222603808926240064237551684384610227326474734510681184493625064393350196884839990777135904292360818761111616627574782830110961544848097581340059292662265684194028950071483993494576178037970709448364554797831254117087072977831623777773270984283833561821650360555958367953274452357483972151344767122735120660584569293418730958335705989961386733624181456337098374678734460603594719551121059476308902136889576341643329982777811160724449086195943006223441515903508971750764247100750580953308505740885915719413121656128584778026659874880044426469389236780876675313106302448967627592250452016812767655250096145455660104323742214903535321945265142705696579006101231031404328697055737926604387797162441480319864766720179632898742688553599709928798837680623396888546385640147820136661155004255197619275083414388516399979159662461929855845297775856081506893133250034520861641540941048622768471541984379142010203280940796728779118582452241922161408002560667640543057361490246199944296583471372341822898532174023882202955122311217764554679314490844742975131082942990993986293143935071633956372616951772797970777440914828503520397797283711674949944338077720842554375766163979657812891142422400046402444666182366927588356297149249045944347839137272198028952672470052947184994340240372767149433892155191035358128558864712446541070600795780630150426107035109721273691952033885519548903290267989254198257172890928276657402935630352480447499065779184647945462514800893846905367389647366372818265740063782747863302385257618273628366416269332167147229883268857722229468973011300261327592648235411809328505146930496565068755207492484977594044876047172697399550362393095350106465693409597610755638651873027823968691387875977317545912563177132986328373247846983086458939025959075501915151620338573435131820902382494652635285966909940436235028861752016368802773401750245476931608606299516052308320145599530002836532678863008088772806568076017747317911567580469315237092853741497285535017399454725520822771159077294925308498952735632836937684220819616697974088383469697623673596232857651715116930805628770999934274933920544878596021676348578307619715703431638100922266738523334543097380871485862237531028812325173017893946387576424859540930487948965083006222648960557777608906080184998439716673751786073036691585998267347947608657295821820430492411660327519716393514764581151348641300480176519513998466415191923773141892351937731559589398844213593716626409319007280793945307912046152564488231249877039162831354040293342583866596740253089551435267560695773209401495462700022600938642106808513647266181816800825588597316744477670900921636986518911899128486770684795148300065562262084230012391023240133488627752895551579249951488297946065609826575906170321119901418882413024073206549837033685221475203670084040208317526821008692774187171239995848827192422337539990217262366470243501876147695105000707909978357115346781562237518167061715598397107153760677611450158767370779271618247000285991488954473786573076909931008895103730192689448794356140337512247123256583547802593899740918274369449315221672519568744260947382491877705046114994214805735622156395925330473946636868536286822891250237492124558308728203549670316907215210514968286222203155808972397042387995287679625183752663030448663352469185252267765737669608344167651490759116853664966955482511938608021622941064386769619753115189794673771873818610450274744187003209111549268584647053735303394560692676440110932195134604613571077325747530680732205055290982579668352990860021585847661174702121007856284338437159458575452102480178067275323445050939640134571022815657514839440140691894570847557866954003077205935073381231391814554358949068760030729496719263703179897073841217321383188075719074456160700882898251536525262361023439605359432092105530749821510502684994676454570841182787806986279594594796862193454316318874010929750411146146898514510753016844660733565882179871617800164963557539618616601085325427240729535445054593309956210153576557793085004466806185717724617322691434749933153507873562216861762296450371093239764983879513796690360112249177496853830066946302903941200827426459784685267206790104374030132884523630221398551542987667903210793556177002266657479587906325471540996344423284043874486412270536764384769267657365584607111626018971357577658668817265769377603861386344487684740629663610338888983831837250042526782833261668583580665668484364767190709213788007210433006678388103196645941494129768811173740912410430885098658898533503675164628169447831682150296349662303102629411176769232598636505067693364193278442376290775020469544805487286843687067507107473910528050849820487572242760189783343678311912993960356857356642176767109627645708306420879596259451080511853436257462965671026600012239266679536168052592074953333467956222971018356559051137448325455436591508062773886621058651052881586691479167872624576643801040344659776569214205580382764269178930620133602962583588492091351536604383886517961239015133110629680221601841083102912732661894663240535720016068321940359995164890924871325226108429599877551366563042200787262409416225897873038938211371915582426421456096068136881980266739816635124680243858299966071752858712694714807608954127620944017682183253241784177631571636367245114982063604591318050209282318669137815904825095228979509491202489236976475412625979373288190438056151012439117787194331741935501537431651614874075070325555135682275979669341697456996329367172670230974857960959730750814550239346345734484346049959141101552929439046091263865450947412897251104076280170408038093897773061803987996007279433839656569366751812001426003508817976632390710328397018859429982220275450358736329656952004230324101114886069002740442167264451610838517071597554635680239566667932909485614733575310153352629993062179195005615099668199106047696459995122094564926114116643443521898773881760516892697677653367305628743225319717554132445939486802078996078559073731800445686141625546727041249665099022808566565369461060920253914146839011075275781859608012245495471685576934605952546657559272553362558695258475959769668834090314232476920885377448588529385526165532042790039812069153022117335940814288447918368057438217349448342004698442401272723299493490384217541272467796538884670332780140801095093217194385111759011292899041200463169432618660197285224167275694102571394227758143990410988081042706185085740306298106499842985622752254274416390103811291550153653174371161822663131402316270451650893448871518918259797353547451671726776306975511885883480509138128976427431203253052022825009757129919134007093229789847522154132661014058051890389326966109902983437393570100311624412433512224952955730101562894413289843690840120783066144042987129795287608951158458912276754264688969006753559592535357896905390237957997895651755118035380895310130752955496405781657746272449844901798723781508849822060731189025975413658136127831894052681544142563842160305705105598440389034595671939258416003906925040854567178836106827749636065431445612014673167230983861815251620881205773021556098462712696361726473113750200426702324367067712076100412613670622458309207130405324062497572095774742152692457193422110870946292310701954586697754996948863174799069262812362292217629556705834537032170406694724264222076939452735220884151580516857245766628152414633083590768394171646288957137960814976065780739280475881987305600154590049045266744843172662141427496756241590795166860736974850299510684796729761369203036794407361421599188141912552394334688744826532057081824095745195345509233941114943633322539360513066935836271241007070981077642296858977491648104128955149224960140164335979562399615227547463468359698861592269250115610632242447472973297602425663808447289204943203420790165761995820631476963917461914991995386061001450934671351791139508383478521227080407328353694705807203885539133239717215668394720257779215754415467939699965953627530154734519545622693450458961594777664618234668975816294794269286424046339494326435239865238952775336477089589483464827002163026055125900921988635923023116606085932018536042238729256078008361420278269122280958137340499797405561878816773875382402683549143466588049617634215522887934613789127567792372432480674044486056181778286095826073205356659273907191481332099990164142829696199799221443434209049447633779318679374746708113485953613852303230075980898230979061478459464346261374773841904822243581458031540946691855541204922811877772618723178427380065175033095095350503876340817650050449425905772237679067190912182806799295244590590980695880362707431329543544774288480298872806923962534540823706646933769294410769866938834145471233676063148855672916744660748196585755807425072342600290917869866621176475806888334242450459200715073383857626735878447834063882707796774068619815915904501028984851134220032501739456365544683403076840182592391291818451895717527852602784025828621929998447828158804998734138507130288512556799557007848941449226416631704284517919321209083587947744402892516542618495858417334400863494984609942140289410941439117884547831431688573960144192691101720189462341742504110052983938632390947536526905239805273483251380421916627145513105648564156850265928922503943327517342717887751447787450126443558302478778036126339157392916257553354339135683945014183020727338457704529853716699672444217262867215943670229621930826831817646153653905380612605970024839565729737098586458191605809331127890916873034079215933243296911054585756502728212759996624163727508212362911964505077489371079237073597262992792721430546200973878845507848035772500852912806192209754446164162779563050988260076893916291572916566245528768696030706899805477622250716054128898250891823416599872685369034932528634382973282596585602910542210476501136523264029010203834785379253146512536795285069444942449965974289594129515068861964393138260360932034008531224146647923108060581502029053430254823951313035370079961569237887127763963622857061941348870972211242104483822158370924160053442489477489788952563412312244885281510617695072315042370504404160229969250828063846672791837106463538778575540665991648455551005514888704011302190310426156007454210755182246469655346393533646061088508315795585928707499959305175927396036450484177400236223079443540162200691570095619977048435587211717574885170776599837531762500941940183823993539643865764107536717506088561474549095732440670097714348797172030789866669914893578845900623421743668671686587911319608051123160835377590632095458097723429689755554989446631371058320002792798423751294287492112210173256120496047685574753649859816267525800629561610167835479493629786681821820016345881836509601542128323675584527831630088262564395540870000731510601025285047980383811471888718102101494855853516944989727349047026258648969598550285853891580323307468423802264752216280887361591839166832288516526577085245987969080427568634382936996830712540154596616045517257921691552414888389374525173001812269921310090446735849863659920720514743456088821792634967512193833936303934767895848939389233748913124913210158881041456580832370170927701602888027961460393329622759782648245594688241690804269725249587814688982009608244455001079608884790356879355438804945894780060468159335916781324247970870379969382143436933968425291120877661229663413583900856509608609263789861489072507675904445144527214059896900928251581714980669879926501926309849017481071403602439923596381519812837936401666701261189899092350534956775165974286128985701918468517626163004373401410667179247444658993121720858880083722405728537602998191608017156508159248235415630316286296454389596970474315840118944975512562290715485043985750069286278893666540392865617303993450171638379819004444167363977933911092962482367018696446791698512554488357761489559075515919082042879418863044142649112734817934508697843655795022391140034749547770079578078263048305382073845059041418617340459159168103739320551429919046357313580347753978926783220894559284467114954790987775337430794820896694160897429465792006520294228757952571136198265518007247212901296137550672430823921658800141095000032474032170509160076184639578099079568303240401219200674921747210826144372747781770844350963671470305304506143406245639767106775161876385834248723822718384472899706207880839492670876719972190718119399056010598996838249785442809174755138441619826487542098199293847330921359761799260137943277851693214163555854688429977062259325138095781954797133206234466356472578979481774890197384755859283560258208203817596779749711669955750734528232260004099724843884675067720308254298521501120876865120901362085900042194542285656082889538363124943664905783219030616159167179337955687495863798370821700191386122761562243400313081661349166429189445262853848198789889326658089610236473060998742594838123070098064414850613064253788532358406535871640031979322569096704963869382671750077875257282663166732161039787866391792166771155226493797526033924142029650592853073172170626600486037324037765385157808880198563550556915989780185183416693900799393551792810148316992639095850234614316248281835184060797629702315108419003458375168537307548516530238835784242235976845143625725032897198071957834717670931389704312319898649097927295066064926946087068381590267150011795841289892809236819367638561677815514691171018931049073023887148735031256030372058848111653957117996045786803372808519657972018465705596424151645051611810144256979245894737199748024319827658195647792991096693394080080743001280802604623917406198957998508679576876545673236462549315006783090101250541033084119439280326874511041545439583690112740510802531584210492692454330790144854902762616073953141423896785318867688728198964684360393818304303765492395001708168846742462873102645219741172431068626098852763241173767407524196659218671674967494930706568306640259658204202978775626800551846073819826610814239496909647530709660616427672313589557834061324396973476837588393287077814028470453981719357574536201028826024542238641170896438613384663864283230632764583078904478609537125067321118759769143758286899648812539709266474738128533042823048878603369658762176755561636866430847688578003712431435678751626688769463825886601686793621657171823097428355977664150395081623788598573501973229598373679610403782364153858549667807967446954366022234827126174790935640413563608042226135864921181786511421707699837142154214562106075549725649623905568883867858400613676438057677831472662780204388837661001077160177128389972626360531806221931947620995977084306825015202140678172010823722971403171577744829460688627136478857232246789075454363208642951352757031839389304284823883701473195591451013810478066513075408926265834181616411145332485253717789898249095595881524312644652231083847461532804677457489816578382488524568534497764073135268800452591571702691702746619743664323809043037088950759779512837816705996643964650002527996011782898465187038627902899454103928678181962015717485321116817691148213298805302762990126964421294592682853322012463580252719700043003510252934804839017613230105515782336420640391504660766840171583268123206655145652623366080075860188172737265316295991541221283766459811584433092165604722209338356179108730032481616618615909291776465151833352384724671767930728892932608841925432415782838560913432489128153583685545870527423375204485418963576948955120484470795590533340645861947995800797806123782646125500155538172014718443640208012222468243119335113504694145936873871504253897759832335168831246168482498223858598709718761195346171763481463907356259817816352951900877893823373399333000609248870995198051054300819723307827010020826584436148951712187946912914980335664691238957267629415085430105721850862316784852287033892352342220490074779523865126360313180541898009455127168419582113903425799292346153097522598673314100643271231568938957874370533643432459989368132498425416670029958003316222971742003102193626669849543528898305092029755425682596448855479071503365089579621645878782640316540838079545554607123109332606977796061782321432330407718545706881781318537186306892852430323550130109252043762513029640943123047656049984856412043004653989325785655502839722425676728363780053634019226371519735031247464376862395097624596756481602702204131008781283335002903608116845994961729544914168127796863950257343271651492228006034397269829772614892937878263140745724468918423918062238790205481515454271209119172753056132282130478240818932131165186429807275889402693504616494781427103191826145482800867874844051319501060462338826957004990379604481801021464307820073196478564777814221770398734046857143684953135016575607426831529502987883988977568256368416860487041363589819848640688422384421987494296851432589333413453131354917524696271912793420668019889090790934051473914263122694256454861854940697966125327772541811790096128035357326556106780082581974944767985632114171856096310134244485279599013507540002190359491808064773771719328625104080633236236705654073219551539574164739451308257443187110459315011495972866002658497279757119284986254303476568445966309499684183169918997067303147096582752780412693687441929663129406264764651801587504083679058330755946479596000367005316615163454361737374378246963974453723736544099624571565085579637344067934812272715723247452472375483591971663792683716789486242993472220821596481211908322690847053679973319372646517461730567247211082725599446893131278178636695649379017487044280502377230986030955333231204753636144273884594314662374369787117866690061647092720353057302902011708497826711819920719822602880447682496029127876577924663215471860874567615013080561206890245486249339412336137950539432880671089931409110600376546876384836983694629331919607365943175244963223969299042222942890750920491671805495243598723434457778387919170731364639593536789943369198890871237774390459515199273910925415087154456540329724495527166817218731139759102925898502213757371190560925821642960776129726130810349458096509983227150648618652554717509560115374819328820031179460006748385961241657793982027241458479694156187756509553977968791180551526232983607504571136487327363473165220885732576314145459593768833759806167212772737319093576879544275544624392551756829966902033923101475461179769437870773765918271958815385465637861272015552279168994877971411011662467051059363857284552415231152366260957458182714398602410871794864225579150634041713074798310658943512498700803253275884756470209408632200306070848461699968216940779771479204584966997513877131743599162782632196773512485509418769549625679400163099111458783639766379242205751125894379084979066173422889979118801016296267429874743009207440804507150467261508808935042554233325349684766821248778450134736302836627606175308876868359967084191728262531052227793953751273050292804172536369379306533695032980107303892041350291264261061874235091540129649425019797229941248794209382380144896892743183567508112542543474659376628816691124594620316534257881315520366578739396027614676472750667935293318893961165268819234954265384261201297634078620887368958934171717917411280276432374427349541126075369334434070926822916514285266252289954508608236625950384911229202163255772199971059950538895273832632350299412663146869353735671561461845137223073932873209749925881093172561859696127917264899017335012280282026497447034106231612427876890845315369691769554383276192798783974312206407166369399790748814487621774082155280909192283918139730753888726132245226360149185809041364615943146511609489754940413322131562559443896591239861692787882271771096130866062148141904598691150099233097046856869162644059865465206450373406871488512610034349993912119678542739371646126489437455343987246468314228621354930803219572780536875253330108879281879182569407026587935788268457832574813585357808891933025867955709698420192452537488155165677744615976084060997545413005582035580430846350109225235947691476668956442413249057175725704533252855326036300384826534456456805043264158088968121893766256736271375295578774147178150460145977675770125989675218806055548173454044489083101349414906622243234621944510935932558452015745924055136488443842750824709768351311551641322369257883759750199217960372051173460362114476903547016026749806588509283747559780139988586120110656326885759672204095227886487604097606408628955636193114046160226740363721867768103222495311267903531627810899367261125607935416783963865355910046672183038648152127071529068253727414517389123092188760764993307365309445814959715656053103528845908770786473538743796518060075963275007438582192853040149118886154368856697584744169025056071939899207353914055758405110662185739489945486661221328012996318194598983378844221960479889922681064727028036513893949528515046164970227294471006906353993424106495970984956543048997814535230644749828274011671730585613062721619438601199830556439601287662302489938148117299365575511478635029060461368130376046061613590934778482790916119287944899129048810302288324599214808061245153082091193148162395233047408458247963015819346098491554832354314779873021422050991635915227055663181268917355405657157261529059607629258596368318508166440166590366438870262744904503911464801358331556115500382747251685518948249548916222594660682514790209080251293457939524821469455636477052195312413693848314515794915939810010469441648126497311212272505843858845656621291225743802557415323497577870784751333535902818523059347821948432215423672173788343606112038707488247853695304156078268541717571582695167353003022360410608951465032881457430981993394517981935384602080550525993249883069834327236445489922359271009860362816909098692491377867785238948831610708465687030390321739419181252813493743060683651029143304091177970138677813551515328124070611513455274305060207051627329004902315093842049842198434543539147299068199857620315244142715744950386617536801620311982842876607695372833989860460256626344845974417509231486742040032658964944164136597700633558351574881585398689684798261346369311550635665656946417631926829672082850847378779875963244302764703180497060860704983482767612732403772471686269349626954611537161491093845156214584726076190697030967923632596536893340795831513731977833522894082696246476225413929211081139786844507100154537773886391741372913899899966859756210459180653607614933238437237107095458799537551680941740889552010165210298796890069791152719188548284832475284454654429275596830611009020701621990381083241611696069982519740930091909559804217887681283886661278999378874069283577703848532573223117006785835182689616818721849465048376308229357811382643571216553658922808830985325999558594359464559538654117203628054348751172289954859293218561372720381067611085082827831723839003619395969291284600444731708133926088129766298954486474222920578287540489111767171532495620114516151955921981342938354315074374430344013144982353393149950679689647912238815909900273750737844244444721606943787105716945317539007075047468158833764078137142745934233247248219526950883370001617133034602475951314123215983010596801121436021868666334210534030662187849160296977471014862559093376907067645358490762911671472930647578726586075114374800888670491755082732796416447999717137875831901337453740363921078332071098078727587543819058586917836276637481325178346796127663299790002060126226938057915684994644341131835670305663806453802658161563202939605853666301928795346360117817031063118656708629400842126655533840239180362499767732935073480841409639957493694309315008742303261071969428321145856368113811969732816865729544136017607584709267234188483154654283184164443115819949227180916146252235115391480375740348256506377768637044764504250315592207038067237950016622757383826231725627501262575969936825655038161874677024618632680708709903633236564305892661539566821235355032984670502954214552237808466788987753042219610816221533522246014730790374569791128423863208826731287841259242782036949252459015260544972105069585497243144082346620247993909831923978976202842059084131808413121366344931659341060423767978809436772142164478796167061609950956668392561920383382707390435649681984744166013977360334330731490999629061671110612649318891416675376834694936732698838436006605762191804388639009530580628640437367699080813064383293501529274143886615509269909742431424839584921465019381726102142078055265639130868342147843786831562257008548567746492335431474926037794314637479024195545107718208695769118544914307207373652468403907177952891263989573660867762915119624029357800749849212952401357754523604766106898721121081917529955890651186150610295703654415823782389258002523708795884415572616930507121957013739265359949799802427464996117005034762333640284325758251821379276497278497050053154183895789572089038841581257618666325739024168741468730344653589133477910495224074130640326714669228225075214422543032490945148806160109365522818105466845334384641822291553706246840839008678532869752135084421189853709917287631229490778104400504310211500587972476497329148794043445161786429169412209287419236323624589057352475866648705803301310743714972121883976816888912847633074435527195292205248336128620583039745119759623260762515574063244048363185626754767732484063392807963965594280022502954522564264614867515764542213156115598108364861239984328458611183439606332019134256553536350632921009663071136811000622101875725533526199371990742492257065381979219149308690018985656621462020273983156963288355165690647319179799335930248038767020877421071872936373455341242077061674467712880799087760026208830296776955643946342021599889225986739288682377755514016693991477218429204610667233704135350174343063981851328620937453458583584435120302933446658217402741912194070839787829124615518402358471572186907233648126116175596228208645672969040082015774127708985553078244516195200507037827003250764299543532162722797888283479502932467727878053513297749323796916370782981230760551718810345336042047569597666487333306804767094797886539107629142162896466405954842130904704036788178958013462621554898968467692565551085707462501560401211797132833514623796977847207241161129038945205279724424088925461503095400691623777268160645280444233926986652538290595333923250717790292905243964925326245795723247997642436403641433737819461050542006576590366831741455676104655726329161398669188207536491058874491810149656096941300569884300622010301616974086362354822257126254301037794274779914682630419102876285572017075323419649919849754947124725254188924332473801853544141701227354187336163107901954428781132609032936062843047526860568031810768633000232104186212540683960556835154008129798270995285216673342419684610991863868842624490181296650700739582895777028766274305694177030021348749851959648509476528043189593771003789240541926074598758500792853983721284074285188845898776080287809713137513401973873802563900550952874354717497983111091880294085686902643141509199115358051579127131165786586747406501700110053992895529475223135678902120219387248618311682555681134588080642516101693559979001851049913458524367448027130180596159878466547714892281657388123402438572920003836812581256857639787890114313687767643173901456320716817691825389643216901408410379174847543754100514479197443388024489366701057667876041111285904974805949367925988376453819886685195340247549949459532909107522676742916960119793708466224521694371954326664641188687558691808532825617232801740209283991573280545024523768890446982424987761128778236607569700344965433353686396006151950344040490967910651665025444162270395893316458051079831449894387127903271280744243917418028378052534530958099343003746345953306410541177730878233494453784645708257371824684490510329382177447856338868729992395933014236832636576996059207752681222121139778570438500197800124342550472131999634619465037393845677509241279041223903586802574763996474660221773777848887508838580208687014673048064146645730721438247684783010568244003276370985805288346684654549564514370394166207536692140089728484477280888981962207071172036359977812555153845020768013180213901121059164077285435260047088500220703937676889436417309237776675773859913404331589538649469187579751023482286835357366019781318252960708134671301848305069046405048814870142703117732941337219774174548384283230627804932673558886024893760048878853993522660213311789926815622395387455522785074118211902832962327513811635378510947159273388007215412049707535568306684528694592533046752345703101160328612325393897557921660348575355055688991908168250637746467100103888360277454460973929313278978866956930422421279344230240650616735873419396377341486428251643703361665322399325113794884401340141732325386975419091023881666839325514609105853982083846540270098482059243956045175204411037340407902318691967860034912958219029578993236834563935816518574997198483908991807635552779611970441803266246215356865979640062740820403412479424859062698778756325137289911083779856918223784054354275080571840053827643172402588398711171413995828096958128671364067892054891449190918465198938509456793253832142976712768021360849761787154838159135485509670333904441256216196579178874781090019160419383513033712873509632907886892736072629506988963098974273675488108392937863867815255640713818084306259361464354133368662712826409928096845487381852028020427318778303545127157616927151252715694809910788264676385529385599216253201282506556834587552291683880365404142435037323938396334876947191019698960393465466233508846490065769300604587464908501082769653482672684775060504565604766377398099954244844511152661783975262543584757004304335624686680553045779202665614356141418910051266171495866592383376908939300266773317350902045572021589781914540982804039705543771573010269081110685851565844265751823389905099360389492379618392488730435754774544853061961298769291693066249591338690901718675372562973397048712275683157473833262537993379823654094369875342057822173084526237473381487684714364254462850238216518960209746121989151498429372699227016044223996564069152954015755478479660900326745269294358264549189193771206110353732720810404267270609330277645510926835024997300047369691101182288650727736694761125160129371891932284743230829418095272869875042235484837761564100740134049563978869735246883101026721399230481431415644752306852351211515776108653649216844726128058596178742149480305764453158361996855506884549615788234409166167225492471963349341359032524603412575920892769919515580215381194956848142314642466358207669623954666477614956572715672896655626629684486859284866700125459581209677259043263884326802467635631573623862796868918419586988263878697029085715878187112068060641530477705524458390191041393806589396705944397558302184585473539334192058700970561921873251931856086179946648953004290878157382468666547660927791836246704899035983275752999778431054600077111504395347258243457092867987920078799042318716932385324876307778364772167358827048776686912461670790999695246894318420485442079722471258188958103697162699533487873475716756336427462841030897260487092888622574768759525979803903164682151985109321852510923468896474292911966347641708184461157051197819809405053783856424058593927918341340417082486434804978927028940312621779479041629494938110695030833331699472486298413820793371208642135717357402934534004940928552698293752501179823567166426052081854631071134121663396225942159536930662961269902267517940246211398508467144572272744798608354360768039369137984048059082525705889559489860568249118961015801711091761595822128250580276792636614357202316195756131968679358679472209798044532526145349870789909595543203837957027205415653791619865367881666873636035270261521012523668829415262323190965246160299803553816267588546031811851129420478124609643954629149237545027984705433679884681674229863435818735176432198363297893826725450215981032523697761335153949115655273230007698605543885677806238344630584864492583114717431007578020733600857133147990880297170644765535083513944449228770167121005649545187813846733845789647705392463390663056271374568300553692041518873766295568309180116394225519917958765270856118042705047862607651619301372691059755756481827671627600888378067978399448687481595935118737871337885995974844620065838945101665601532092908372377609838304571315159719321161426552598655545093791313640696615267355678698252101356836347837242375414244989717429652846805717662698016933460474366084393700250317284517534008966969628096214505591035206265088825494780401117917136577948990664731651788927111095451304130790708537319289770758301030924499092063242955810453859023036469304860125468513269826980347238433166714966168545297576142317100161272257441969928109374399528606395956780709397954608589983386032915701226526702804544427466770038314659294220150493257123241858275495778154422402167450990483961574977534521843390499010996112767322608591751623133699625040899171841431488605113298397416091796357287311715732808603401286534799664450653650335322037554759966602742070922303136400169031644228583904916242600793223142432451340538370488911039572201104330635921507408329206908439874732063350463361898279662258410363815733343130288852935326133047233581293145188658647215313951003501215383337349382158659512129894015889376201115487852932587247661316527111540820110329605447717667652548907932900232945170150069045337750774855767716299609327126984484553374524809254127574843450913840904929459916224491300056434176787112550176200267568488724612866178957256179872014021582931395610159955979935593850626057704913713910813448235279426237868136186449624769000732671528902360812524009293923169528986605413757416577591619711675380619877670099999383729374813039695525511362315300492482669350771333504874836350159792486006326290538297793514109318683767771839381776847995615815044940917849621449334448247861916350455082921079677818538282828023794981725557380118359903671455263511252880033438882769241793335112607992961881615664986445796181080858464395880725563983732044220351783991871995265777378135845876137139703108330022729674254120487869300184814386620037822114742086973721702115971657633798574263034229671509872711102160999772616898359449661689482287134594870025898343497666193020245069502995767622878344768459382909385412177573171364999976315370380637695536765527230499287588988374878347896276647742398924582254906123296538356415897164907177469544936250976268313471057298772294140677423870532266367221041936136027482894042936506793152389156439407918490023573306044215657886127938862963297035899216869802623099570969867531995871589082666885443532361116380238581566932201688321287778558160463622012144568578641015000891421210456209690471931979884427711723103114403745470492186857284441036742590532965264960015985473706715636585156555014440081398294559012800109365535974722014249452266705441883549142887470300726711835479924361848753623041279024558345691791482659162906061846352020631234902090951215903963987923345463305286837926717831873423572066004246593272712458087764076105342240276400756635687378352965322125922959525336048230594437592564779330203892364452977731052851323384151322048825512010224357559809170089182590978736844377677695779303398716724233230023442412526734284512650335131886587787806522425782407588097388650664619075915662932448531671568495747283188346111805726146262472736091148271604886796075205080086710534151210366953917048001475721735495296893895402720525243332840744996557692367573602295533149287420028257464066268381135735903461163819997454777894212154808453070687010601334947949217020335671886476620023710240419059302669549689526461194137329193101205779193797824608167406319975795366104900088474598241048677072949072436005005204084766618795197537756347714001919237737672654535987285744284652735354631694874827394671675970950138451051317268428090639732765172327095980023066283650465017810024634500044992569586456524325725756658517246604437661865018457776403474942030825918913667276827899183307247839145316395190617842880272981880319408122348052871417088404897630228622066675721119781352182401176386370656298421936959129169152177204010552602823789730542987767975321466892188891681435976312044242003929630605677562176347599294043925521025665517040686234038163938243038070489212926521138496019669285933876231839814552938363031244666532405834649641860293507513342076091608344914417168678158724892377666854905334619114101348315161574476022728206963385965391399581983923106696786010885550091873889799748839498463441541962963336214326871925929193556690097131059137289273268139041038973871556927040829632596990249546546504352280516494671954921157600452674538922961632955730247055896470762453055053154633195258755232732559678369279096804306890844956032517708335667942414013457302740458893654783093849327528776792371458892591042870255561542903048439913750941485586689834396100775273608963152716221355302521981610842112769153908471081091827922660701524622862928123714474234640043160268790491569323119977513399632003727732059604119776739745145451490704136675310601609724732347857432946784841370251814985334055406761109051694753458644611559626383368743428639157297393122788480530865700739565339701239509355220448151057312023355426369403909567991455549956749047918427281121888322031027774502963049026308295132549592479043443664180470590123947191709799901565963040646760146968761049462951923458420407452279190920559071695935953188382916387917106691575799790037987582127602094454143287904742235443243058524107144709944917199498547592950668114298839679887427669945235174396655067078365697405284817867218431255773999117772337856683281339417944218454709447093059222559119159665847458551758239916906032732648607707434549485233967444558234156838408220592052263073695340470192306987143139138416516355727092788427609961354200210773093227293668867981752640949428548176694747811539739133854617657092428959360431917359846981546365548602742555836983853774140562908528346319661518644977303736632688950467910119341258442871038201771232559292207311387549800232029580942248050399725857308531763961054705776499006530798857101522231605938537505049057680182824170820214667473934859368785972113952309116285983346705207025538315612817911886071064590746920258689780595188236168351680403709874859550378394866989392140050278618687892596913852163933585525843569717040922902454410581202595731759448414705489587198075653345120425473911071348488137612797184345262187611651059800789144350938612969196827343750743857080951688685561095221347157918471532960178906549817405656594793102211530246476821827834661082961946555847429471493393989136048626797787297098405469162488466685427218241995167322200743630383492538465342020207339873405210530864096714090599820962754024151801813825120363189981340706950138430604505104747211184427504460560373498995488148332319496483843209472358519034608520741667504480459082038866870938875252409194433523735080698903893398615915534103203197624173905080930415028356398029096642348003779194579705183794140724188956377515367219548956600996513126612773522073037122811968786000790955562087343011223931343411351258665130283801597348641182462978565588532039404350672334335056054991206043989462703260192264105551208304875961321008596079057470397387649066865112107869891805418719637549525769520087007839628995646506006245817297709043113153834415969975992515728116022720275000505912538237613466211970566175899660561882680252819493661045770180318680375873940524961730467343710335017522022707965783972740392057712379899193607744176323836979222242271656803590656543607115234057294186439600693226362693728411453758831221956616374853715194003994603053949576300935563804278654788985206985693524013658000077155860560087106803593698466379288982922930477557895949706097567894844388736010206368302445985417664839684938288702194159763780692831972645186175331924966814496747778312393126371660417142571245431868148983720594044974862782736803534509779589659405454518276392557127595524906992869964681464468834709011928794429223496580065395814628712710519013222240165903165964661808316867657154006137489768817745279172715904797619215281007985529768875931721584625633098702528155281561452454519826799175157508671533524899971609416088813711572860903386752058075167383446281874597340800847071660116892051868644271534680547833767250542968031210731021572052071582554120540445136273403937720934096671927314733090037340821332860759918334065585277234936289876630958228031394336365821936431013019221322717877861026382693343774939009501192071401858386283925087004858328426843535634517150272145423908350979328768646054182207002966877816467693625226846573366478251005899329233112122578695275079672013923414237631352312164885915907532134413884678587781869310006187856114689944943530558623708400322743077234812556972045675240582688752453164394178609117742712654695620098475528117514022455198956343112065094394681094421244562001161734353978362794854861459845272045074730065051344841936242764590793151642615503025742771695132323307304219574929773407006174947990443875164273300049239651890515346741103237147448696071602648830312665759624628511900748613713415595403249547957689822033056462092646415291345568437175696944239057130529952922269356525739738118292304702351849249066913566633019036868292522383763359940762426034241024341979830375019283538211082237004459924448201878557413182629457464940637137569496472705012759484571545546623923482075200923021029154153745263671273378757575680458651562184689418621866881695824951346085943685354709457454344769563522172058694049889440054914003984203366061305970083691237824617919950184386021919354124985217203017779575513435462832329847879879923301437270659082458542848472363632370336451463724168596222443088978494146456726848867743416181069906874613226720093150976517758932498919902027354625258503554823635061607905372455458323811671140041890061390247518656021547898706009951204976347129216223062464367785925380618342326013021873951063971114625414229848293113947655735122815976436010919950802725766513774771973406709621040296091471210234144729660701479281730152239420848870974273151205823856926775067190337300586065415847929116511665213866698076797444576372152761693073628414974936600402967612874757173329460901181660811617097137240394308294732148977895868211055361256272204249966659435054132988159427652235431245937194476629421320439887116641474702399992724595320684309657275049396664010745937166253436418843708432682380110923709700364852357056057263502425707083901606933447169615616993764058353445700564916012794378332804526682273337637449331390996226638128469051537066694107990182478588082916039750787080590775986687706368640723149639237783456095613362239886021529935954842106670039892364307636887666806319232525173918929542997958698974197892045275108691305868457705916611919456595590032960142841454489886035679817928629579188697068592568090710608781659449538217693936683546534253344890416558883395000135494722757050706868098108494879964788963892255101236316853815693609851807195366740799453417991102894207776794456679871713330797490491430081308037347677151656821583155658458706953892006007199143861758725267385939443660731074570843792711047891261924472596457045536304080845882890639402393368656772931138522906520264027539669728841100876934549149637235376700863609712554199423625131640819127810649555265290158611149557870177755369335057579720524264937544253256626526181175417839464608861424108518893212994222902000042979344600272015779108939353273428733421268603922753964854001976696352338842445446685521067312627536696851760683854695342683518432680151512252348493408251223339205289711974817722982886849955818913858740571350879980898809559581415942471213306306173543610702686702232238576508125580230552913745471636221592300099200199775002017910253491059604202170074076260793225495131818075667085474720297437058600073185312136658511535418177764686655416140826275745987560706584534227847531407872761238439914052458877854694812849673322682271763733661367425871714832295800740221928462574640229542289106269922195154712820837081897649320294620861078406986018503215103131212500272566276339781777678301546089013925641186176742375917128295718065686278248501719344412081363617419905760193816531378636704238666828860662532048254155994804287112978279915175821668781122168615953004914817529986198745523960207229069259552239469249730096399918570078236949565592152964866433857978670394224462054180236130903388628141765402602171083902452397417845140041690103800549498617825231091327159399808366199893406892614270032846506443252379979126619004329416814673861139898599470456595482911984364154362088152736029969096074315639388269931654433343991741713806257478649127075500904316188477894618826678634030509222508237193201548270447609798529532511322406110673209604704159145032482934895720262463600128540264292637211523342289186308128547519602043012542443436397271460297757242367137392935550598427006817673526504675666141662643903532670312416804234428008376202388493253921364547486495542231423368773308217465153842230225479596077283145344367162119840278911779756056580564047745843051150031503761258310797368938491758665786601701764303997082282477877396965585041281149132558285979187120103495851511742920760777052783020014453603206042779410790376075449152079981034067227205224725957466409498387262587145211923410909115901508844286736770703616134306847717668214237015640225248690418051103927748437470790266796382577074969828632029588777011390007988948338288092635646705399702800074564387261448853193809480969672256286798251844024252999750526178735024317580385837775334172675719717147444922887170257494528969881263350393863544234689492840510267588891704611381200309827133611399877527865130149407410958244462556952303928159679122501586510374305830510864994723932016730317516195776334802646543109106322483717682222289411013412941850032811550103656235412853568160329097363216875248274068229344847960918971193417739337111809264104820416129776159121562050147488159909332395662739885667744159518424624898666450833618026062281634328288379456928421883790910697153806715606620359922328307229592622014401449853686243212101232634041665132228989656420525291300776930636458819496902834529241796860674610943413541742618223992724437148792079727186030898921912533520316730845215411919671102190847478874130154808080163894475565246811725570991564083630390394373339486440384362383600109329766578303998001720910188812283576091460092691386841600150016195427180031637915881623998736483715115494250832717603751216566053907330597327770843640203355786466142223323991025138421388021802342619914644859542891000520384781478671539920508282823722111227070913028712483231074485913011728101551210725247115756670804851555498356438203005101644415983587181657605504218971228223110078706075942110991050374349299917088633624258473122312181520048681626079013657618862253425214809432802764329148438239860655593913079719667426055071982691777783088407201219911392994279173001328331756422029493783731543135955739628921633489722355607700158126797895099194859147506849044331716681350616381977345717821021279353415443473242290932559944191914737310933889950532891225875835252827541700695469009324444449326971049374922276980968349076029345674274420658371154972963282676037068441958034368753160266760571225416025036276845470226323393785643500595843247223056395456889489392513805470209968271325294388279395985367413062469861512509867812837924393939978207478590560023385203900052084587712527007613570207027602791919703147658368712547993429087054855174892906361307484126078637648051459553927794104961270608625536872443844081191367659430197158739324554012574859503709110951857134931365922387770089153968425319784685697346800570039056872723377591519713857055441450799855969006266056549399557556134624843681868879097407123186253877187345028264585657567760772116883235263606558394682571038829091359831625861980810892483964423332759275777595852525614507986465910416219395554433871249197989993979947842095258758295474614020061985841512917317020747076711229697343433518093749542685829196187060289822494232070511285496959701178694064529824883340138558646430719380481705425249415468946509445374279273023799180039474013983602831180329040702411759958788172399517168229566103490032223969479376995790437813002321586006701781809539250235899187672942965943670644723665603354480017272654458571117269574312025526811400314183208447676432504080051808809933804868248137878416691552693539768137569382833226934515449515304777751874473925745535390565315487882848361958054198759229582624502291620073247084229741646718492268286128409855887128330288258686527335874817679437310539495053961458211767466129461620555488270242459128786605279691649513781410136193995357207487234252771081197044442250982348773712302095551813220896683093965082754915535396341988236176391904203318783293431906605642214241580873803039333327486953691412726989615984752897619947042457441592495363721472017673114928390405845899979499487024643525703497532525065379813727963908006431877063932178379340964418845122455309103900893655532281732275894663749214680921618688858114032923274775277146652206306692031080174759505146474661242951544462416893759636191688598775756389353579968096085720127821642498722926594504653620646668112573413024917375858765357156541066178649656858464558864542961784399657365115293054762468709756622851856615522323847316253012194849277627531459329977753387837551561334357356608442216519860072505999709742653764404943059748650082483508513872748839986170024250020345404800389685336918070024535596157179290403983685231707177109496907893429117352886055204365500133957997561590852723197504518200747640207186323029728242274737924622068074680509462980523256580742665632813111157270556991788182888747011431725881889125422648616076246380882476999032804232582406845103028409043689003089210810555084876670175682023446653585131996449345966050844441113873037614911193122866924462750285474633735234316141650678867202070938103379798332760404841678778620061480152580325865765386183253627899039377045846526138857546286847311594011016030025204407677677972246293711881142908709212932536378031512052997199561421676398473920573050505874995227488523611285049559924686142800802655260350178078052464808627812074354798855834651140649437679415490493152822389566221984686087161257259169080608976227513783326128928142403697986545685311618654058829746370028020904095432251756631347277303919613279536220080657191867042802903415882774201390683269746196058123369247811140332452726798420630766892014240444100714655100290650750085346691481470970202332144536118672647159627850046483455859844366866316597440316142668485604568350561603882653785289206606991883621727978740848851120416737335156866324693726491501184532551516002403556372951476105054731111323671474939314511125472614882612546810144220932330974374477518999303286282111450335766010222335663636994814572805069957401219825241949104482192600319920148170187784808596946972820919638550377876520135562453901354003658451872468707282556165431501862181062187945632751933186943524772505277200817680883012044886092351914228325212650743631271706516837412378486269684553142698685263627428322014375305541366668877779785703718238059014672960013222088014427656655512376413168245165279544562205932448576492973895772535905505827114417546634550179365195797156544391070671560797617874263800738960898583695601840975995353773188289143592807237000277229877665632804146815896956326613009004316927562202572797764038970315104230701002911177328703412055427881586421446344063028784160670132279764421245694666100090460067595187642520049157853111792909386747020154333225726501640378391604034702140417354594268406858205647048312111398274012831097449270252326823862816302462612302247152947440142092865148555065801856531054094329608790822702328792580624412554845897174445826952565211029887063888214221001290516740260253215541187527567461335893855711546729993985098623829322854421710835262656741242772191564572042715408514783621757225086060117364531935844997695631889344548285081506490465733892870812727692587954097963307726515643714262973437921995487394197236685035294002336420212669285684893316858716682687673240630152128063253929263378105648968891456473021896836643583029751295432694539388200909920563023411946558350953618894965722642111078693336541939946268382328748616690357268355161531144974673942209105020987217263444589852784632923388265012445965447600153646086846235927594506794742254173501477963503581065989332284998352044272419670162407607620856530436336716072119728968632446343546989496313803991207686380134383100810822013466994567338669022683062443742171746519709471938826758391892822226693104971772054331284067164017002749110222217143747879033683262332421978454751291559616854512410036780413128201442402698676423818526982232088996215668526806858195463512574188305682045177102339098981048105219790145860717039818396484162347336693109547385509013648925145890140596082185269532971584468886463545615073821385628727474464038515583717636875716026056064023631840909285468219468132546433715986469016214953559078245304176000064576166404889938262052171482493186503233956456566289927470669620626486636723900769967694358298186745775413573004370295786734680102307294043382655138024000492164924667357818448248537229207875488968492336232006122304268730475084659701057982554477700964932832750805110287410625971842027327785221476421993240920733497631060307832070943314103608148208920333872692711770362872621429111068618081932303671352498229856314482082380498803730139637270229649402595443254982672829664280749607520576545321941498409573531852068586061432611501631989377696627291687595477443127588175601063900950906340491792096683930104347730296197403307288370694413282176377415069281474808357603305354083479541142173767435016627514240283799668101514694812718298696794301624136692934084757723193277638974293810346307366037689253997424259129423937242170165418165075109355094033352844321366658692035878986242731649237411775227266971540342391481603265417868898425628324044472093501060146585674293072603633001048594484590475112758071966897823871199378151514876963297052538073784534581835870206357591601046163579061876037017045575763499027567075691487226572637822224839885330366994127425186888450266301127469489077454195323180546929008829810939635600629403327757193419626078090854660730103267960839441526180318208064951819339144469964065578132422157139662791590855015580869353634370938581175511186360203329642435533721499787699521120233520132984898648422246210392025007819101469424549731904529375211925740646782188717228881721640471447351855601802291271845428772422868892161943584093850832041244000060513659474039464602747661897355129855235564157765293900987030800477848776633861379136067959473566772401739745203615244941028907634555345869087805037735090190495910908544522237637152947174680102295677506893664535566077869087274590896844278504565507103535966291405285557458432556515821918452769695677285832113060133727310144202810801176446700248972613877344024498605793625122197074267875172580685858754616464704098077058852773238689205462169646454218903428270334248099732107444278173679363616937787102243117149575581861721894744057765642421796838145636055079234062385693404784723920352854174406361961519791200676697641786060573863830911356157013468008881734956097638879314866103018303248652592524328789339556318393330641160902341224224921928774301290238300895359782798947644101525850602283174105443419865749686306207970597354150588680283338774717995343385093855677770318797979993719543783505310669150399769053744484069755678825197184002465425944362571319562738828119893847280358744156543520649851094188851513345096227093537474925883527956129180374980517201774000084961802647328144363668801041867767903762668152940882604734035274594974681721409769523936851693422399797331579702464557093035977621553716796948317235106265559247923862015876753546181919548964947474539633432790960925767687414371854174816695632383018610416339618186984792997286613366398260029087102493070725084078339697886653974144560587496188831466489762895031995843240614681182822129094108794210183506145208962483973265082557350785894778746897955910077229584256421758285229117703533743346708245668049115788854070265585492815136535912234815343068688101469531648609159492758795078919367282361314411006526723558487936790609353554704984435751501524903028674363093078141198622577560585098228563411527596100942407879416281956979337484857871886901981104252132014583137615447531997847908192074488509232995330259144671387319061008896038170758102049701823664460577490566306744310296560923387763015956092937991751532494190886350585208089405988519768823776733601969044701447820370894808376602982599591694278121723842499458626790544541915652924149667540527609721673595574410957327004904537520543105019950201983555186530753157955997092741145881459981686294885526545783916127819402946407024394045653933584383675646499745603965424880759334053448090387485227960178021077839924139296863737218885415224369806792841644056187889850275345600322472356804406337712909045031448109072774816369844825629909956931827575538835940549409168671659378053285324452351930273921438059448880866496637048851116463500506214586083390839277756692254738966301369697478534087122382284211119880767666758507257775806157499745692959127047033139382012275950929144476901042608488071430084654362144243480638989257669981951354381705952529022863920555661257111125934195674574268569433246667758145501942314901177352077678436358793778876290393035278130296102273801788573349032383914943155771335590760100455633661584236851298756351102531400552399711945225639685521794739011102158936823018200419364540426420552346998807219825887343519016061386686604537493921929884578942168649803889068459874942202478877421373176587503202242478061732950387620937804443613932423426999897913902987341174619755452736534544342094116745353250234942272109949722515100818503502187482177359801859689602898392555183826559927864994858267267839206131333636919053860805045452624901564978325848005621248733364799190959495218493065960289872627682029622142392884973969281693890714399588200603499825630579042889222250105209306897854042434540305774724600952302048283255210075703738451213110287061532478428106623348046577360887239159951557473271478950008443465166440755275786576691611115582779075213908233510396193299173489042532514214906922662031634152472961225736938907590893564618282561708492921107270434720136120247560442350419540697199752983104003636734030353472772434607676889520056604215726699038366879733547310770923946590590421860407387604692241709113563013978605266928207948005294407104906584052634589825862157381672589676208844759908900686375919976768484194743428362144858121010871576850006817418826948682128417264293564652147055962409209201210795814419182926191850447515560127619473379840935783715421845326411100418439251628734590897128140167808175300149439128986057086741314867963079791806315704993423292021236623228112713832920218201817244196103095959555218626427590043559383433035713983135838356486537223899448421143050068505502218509970944694939978442059524651057885483014804892111975703323698991588626276411765680324525292486949115462100382712834599456656923377232103300539556195742509571098416338428598868851960185380020639678981266940822128136216875080132210487737899117993216875872912305974197958734503677435875506955217821154801207417136054044950055712300379606669441238879816932022911648640302915846236979248748083596794444953961143926458975712894767966909034145161448636776020260512101485169823268770194451810012675379997278764867028112497871155656065856102522076449410407802995007274605913634832338654733604520588467136675934963602650290270372859357597194738104511003660532653338498612939418059228221482143542652359126304057130543436828412983908388656313661173389293171499543769002983196488346537257620576291814564143840566254580889282130526623692959485419079472323180805634972656124033622009334221546685988471132023896867476607296857745705207449452971303379513626604832004450176894387766300447839404706055362733156648489832114937221534614534832727506976928481949677395368801770778389024047780496217577885073113795718086230406627522599840019459439561267439365378357804199883026693351306269834930851262600124112241400552146273788242930099977673032441334043085325497610616805306979639397935753641426889166786675719896015287836065910513131138487157294044857554969404580285593490749747946693180353715825166667994155398580286576160712913264880138709940017015026758054452726862448087763810721807978231578445741061989356509264312726887098599417448398869082360912175129629893867913832959909632389358237022171737892019491383939351972638665981148050396625432445912021639916482010924110311936220311632618079720227786154798750269344870914565230759799345410532660369953381017318720570223137372910079757449272989506732460949200730524298211470926342219745857453504015579738119561231958257989188315543787832325972943996433653836659527243963374779088188528404424596725808229311923349753857889842500598964945331172591468362492691459382407108207282488390862135972169842522818076526337607848843174539489142320267302235642375666743836094422470230064293850247372006200606960269790456525233000697315282466263065428567133144289110266781524603285585140942714841538279002748161271607781125076688567803262612782933905262029758408431657544835460392020439304292978547439501484689029818537779552149811400817291566574388821495989876203567264527699590031957270216044038439756410086729800061191821637999144101695285862282802472831007773475274340757292016663067682106585884265978377697240849127936424072970696179670331069271393508136621894663328867298507632389390424094341199343279753741932863315690470091111055135149271981473402083689394835713529336763833027590137193212837750431979523974846969169632717823840169212008201776509381478644926379362778563827147428694625291650317882330562357257100711451057280068734064557743691120549994807792285519005652484057257905340464814964119208415353052238632250407604056799817130422713209748745344610880092267668246884127478860200816396032275122226657930211878272262594828878082818883265064375593252563079756130218326450332997449401180551219725298311103383883608939503375625265767965486912834762986779172980286796995838275408015977698221597473686060732618183424576348409792036462260338919577988642959226856925328372601138763468235659266734940596212113286941646072159532946791440510014552270590952564557782542245596525342021520163988410699367864302034323074153152585643137134145198055125941891306291050491435002606015631878934060781408187245656353340868875040374958933500159630431853342299311677633414736735264955225763435806087365690373996415581556196385278528918681956160562678886614319458362554249701456257798910783450159769666687849883209839825685369244579877868085967875399802503926042392831198241159183211212726397235817253201830307448373051284194341343051501430054645830733754954861127650679919407063054861883631037812250647302750899889303262209031614031724116961257621452692766235622249319583236546215919201453579555669130926495492412727582896381001627695855853133416357911356850846070318522697373031251940470568074941055943847661609946321996579776884849293879457126702255741911726443382438821570075948883729696897465530485080088114881900768465372989662000162335650011087770530881353102658717257333133956308603620575830558944528298595410224623803162242994302932466567019340833226352542110752020550584674370039460080151763171043664659156920288137595272707123172423280377219373818162918556960628551744133862103387818350831338572418038461874513330920453264090380144212835882140341810585761263030565271586387266554508011725819687650204513530598458407209226848017673114791402865951444578197226043477749582494395315651564176220902202091823522414306825685222285301480675132431887901227359012739102810673954614535526208833515988401511138139665909098893963332531724223836431353051284308790732527959712589238946871893782921568566792701027244133211868063416616518099247552800178732315378351963454926530690020561241939228606102263754345516423370003770771589315576264995598619344355557588798911842931370129391622506927422702562712089145362856156748978704729842254573601237883766474375152679267214102891015953250695350414163314803913171353390864279890743438664090817617839456012731249459227823011290071266293782237808599541928596111939324344019247098519849446595673460452592378467786138207252719622443427160197345820706228633871397325095578821326780033400938035113798214078371127256979828814243445111530900116795959106659051900726289406910207478129285984589914266870029829109987539302584504861898369440821384244110889165970166002505504281716314778454570238671648365065211530963035579241402239022045811895743577586949047522098423975385028212405024416221063611328761476673017806108247873899687910701268433801169723228817404920499452769327602870762374396966157214876722622058982800563587502128569349691947889488856171277371831496584617162928977894061635917106914305714951921786324224393266118700266239287865926891255350935012789000142830819521063540394829020914760296174850013071877609937889781118895288713064654731840628970736027136941482028405643749764934547710069035361849939261301930721847284403060091596791137538581333325634366336248950133052426025220004800742547540874216119334652857632576795647757692031172379729467858604954172945210417031381401101103132516225220413989937643289041988753212549849830183908423775535540884526290649351890439715862670116398932421064551696495572999931287501312232021893608547427235071619735376069428303462074314868235716317366193907351405250081365547394818899321359715679798047981745501618506303038239442497898128708638164617975562105304312479282111767947286867447639753872647849039685421193798272366162589625020643987645627691147150515274417786983611413448829541309177365721009237319043312721909685607138938685650811978862576391083490735022766457850771260075214020333880007595966717628358771511566278667840142359922147456320776289805080486770391754111325812807861536377802468388556783720591898280499367632025899611588190468555830268936369088630334590410015230053037988994275290423160169204446704252756795586737803604099899488097096979278096775200194358372159965301293689955160714034767090837308024447274183283764948258249372078606387760083021205932610546095828154061698642548929635447361095190033424293695744189673270820630131439012305622390813299345959497345904907378112546893310533079983218983670279755182310771294103760296858335958000115435325638364606573660763536087804755309109723904020457045169012990876257631974390550885288587993493808643833712225764181980498863191049606418399245823530108393108462267916018591350032217785972492539059823629923275132540407441074764988670111219915093079036406150440641562721076228044968642418714369850747879648013026890036786622616580150863904544544445376892125032101174603006017415614490032678079808084173942281026914229077562689926677789133695094631341532741017015608880741932375082284066162543149746362449430485537155732513808236401613040023541162693687827892961160580053894568620606890454524252785576075855403209416088300042200538785257424595554341280787266393715391131182649465612723274501601954435197268026719954909930009941454901697219850801240196658156649223226032272948511615998542529729466053881260716425869251517093401328678274319815815164316637799821983072366312152743178384864210436126919859826407390481365052884808691037307362552202154281679843568348285420083608873238776310484033593708496357798371584069797952884354397915090635690749453368793365314536434953794770717960130913193820004083872218245212349396933564203548291399621625822394701978638013342549351292071927013183727715703274807365418164065704394208061009932460490168283074764432334699769744685826462071724624310991572674110760607215365419635890527671442116774013189768667935668468819161147368616252481127136109691167288477669118323747621738673815485077772705720198146051911362687603938628728674094469289880840148158282069324596581507506487779610347115589384905969380426709511548556506749228450061545933222541949196597393004410481674028656036108654581449890320825366786586830173969279310816207778897154030140079320997372594620024001002613831357208287112277740184472973739282212673700742782836008170337603491886984925000819380920868450933213317289780284753612356731023316945202006517260452806857984635768430687308418163382513812706766450143994609801141717967339661005685185738430111644282296814075561760178948665530657745178462781769945783585361733403427317211816152380134077609122271702189473848194124074165086339299748772276211687582135280311762722909391132449180051144443866194267183305095786250839594280499798201390496858725840477894599962029074541070106793686778497590516547000246006858572352496700251403448400768628486445410935104068871760400093442451262530143235205771244458274963311443473056704997865716979117999384653406841938825239705734115589470317779637737034631636931028499582125112342994575906691811354486427039696070568649781473462843531249329822079561682239827962365974259143979938661494161685879976881454949887459393180934007070165948899911624531101705688503257395598709170871756750835290440110164975230447352186154422701182173812530029744870169242329568936588394975672948766007465230656281460339004682654189373157357684097883809701758675708839130775836503846379264985125751575216453883771964839414294759486820453623289995241816464960167092398340980013205561943616725281708563833638229756872901211509323491736946973011377366652088736412126611552053724605320741081675417835938249186656853102631925709411614598046582442871589555968770037842740863237805174218658600454768219524871524340667215369023714634887553754139604410636645728461301195460677483735299033052468491324036228292199480226654221662116691892108799760143335438395563103095770754379344364600541747158274224948174046521272607467918585611602279353348705324636334114357579690366206086931758179580572354808438662987932697817982193449108827517383952314003510251501886428463942659860172669560681839015895616021519813098770436045061710163064985961287436206180209775873777326780961137511657723781122531191160826963562057636678213572755833349224768527104926241619797401460846165332777221601829540943441009243356241663110931372777199553539084837367834557853133964369417205083428197952081420567305406387925948206504392117294072393796504351092484428741325602872608606769333551625833341104243602615451486328540133460754469071105686011967985710675703335734326884174831637655273892391526995374226288915700476598248697021339727193416197147430484182223807402770224369358474689331819320950935188121418011421377501281982473306523100655434407714951418369669487291482259226004599205640727272637951027471144712417398419215526037703624637044465130761403265546327499613337594107730515044522448605755510745885481735295649388366891559912740367778176361435796641740180253587529768941714956641858205583282246234558276504462764609193516067199454082767922651345044422822530546004333021739106355289169772566791307459890790508343594042665831835458285350847832836695863523959711204117851265467028461910404236486331291564919487500071926222634601665820868016811760013582540586232225124408148111391659084556107627996332651819231896758762167195621488162287011281887268364323065517666019796313036288744842741484941672690048480596177326259884731237396865694626449085513285711879742880671029353504280347673508530694597777336072104974835875393516350773028109785342166706631184628107927897670661313912126889255772385242072218875303983642016448038904284119964785374609422334157414498066978481678013319823562525559745989941715804424119993187114087698472308282242896435046693453913839296740452333339770304886091434653807988072910607753511406105533783102998510189078746787222023160134634738622134863035195534786337189524286616730370935163640188341071122272242125229593539359966793185464231979538963430671920403430846748597529454286434225806488441452930436011912606433814766876521842214573702880429071390422771359203750316101365475524252236459143685554209402412316503534027197449227329876928052553489067333563676659620671292367895233025862982089068727849477287885659805963916291758197194471880804419141430994620059904357984508744915025719039249699293342376008894717868708973144605923663724118902944678737343576961698191749243960469634523355754937389679611728548488863528617862273707322598791807590469997678185331037986556405372552031617883057251594608888216639349591780781938684627832709801132889454922929285148864531831644229421499238975992999885837391900783989212328002034681810240620234697770296787378847775974924357277416640085221346565077228033373392001347055184623657361001835988807221997169622800386911527624766830871565257545248719070560526828637734188760825915670671922041577795811745971503733347076013394485238960902939175742708905309880084223543826890569010455349125324294184636143053892944603369049580282337524865415413067833526580400467980852465428253009888604231361580667633357201505925233796735258854349842781632898106733038991754696980484330273030745179928621640628241063945602694519213252365278356280732696332619524016329055821411296242919277480835577470330427726508039914248859752373663863135337322824081787553867221763582484211323262759808535424130502849913272571044573032373464978703283961716710147540329396986231386153731324142597144428408073060865601801065929804465214629472230015608179783279679154910613779319032487459870996365558985018811190151927076326717156207375057950361710127145506835347704724978148922095262618816029383316753082145731710610122916758854843238490096345903451377137285589541966496764528705818614030997184323026588627618087162270951953110204693172728278578500730118968698321896546049702491110697739794384889552617956607083523268345789426555262318175260695751115115192200548364195723332357559297335826149689325925827943964769881072836392927560437630513258045986871383392784153420127714208344021707791653163040952906612115850023183320320358877893893173243587892031737402978048605357694033422349156652393622799076736015293444787410818067377086069239430795406599599584468953847509278539243530179489483691027946889500855957143009863963717325583522612726317832213023186542050883987162770250071343338625763771336925314512709659535889243378183973608127766588514666663848195967400811185006446499795279990755149653885228587780754444924650804330503482562879300807363697723143098769607181923329356025525577634362883795779942619314658857875601707757626152165394719403297922212490075462134673208093300127654492169617815842542400060735028225735887738453139451068676834264589282088603370307781192278324305206194813940818376891428024625116287796786916870385234250948932242604009359453086204334429144101920325529946158111767933000623655347200865955386658711412126663089737184793155212383910805116360220450406238785576710637203816374424689290749196887110297941089770750169898112896939880491325887890507465550694180114977056324841459262514353153435586615625013203705650865904420180516375184519115793448066518364120639000085330261691018480151124165177607365226017351961140431706983444719944797678218615744259139107944536872496292936180548685436758689690183907634726289649283552692719286623970669055404941690265003710646168246841540889937520065401246911400246602308373619725906665439552185231563888932389871451581492947421744612189395453244024552814627889749249532638293352674742971773487993433046255196175707115599783348749040372198330654006058524464043980137735054124209853642408959511771726695121892290259811155312103017515399284983692226574828815807673465227360994236594234565823457963875516079193425124470811278241014751596351374733827532930260336605607929687577148434348057158110458458678600325752865286796574244269999046411395155917522962882607219858989485498836718007836031990471386571678968273952582061253551539880603175051847697509576545667905013185548213502879991065352679745117101222268687212665672414620478143106764859177091894390218371471682497991325704916004378962423163147797489143089286807691596276122297317300506109680641011830667626810623446469496040613041932233787767869727022758706105085856050124752305147414511986418332324806179203386197977048891911820578641377931121449014583409395212108379549496225928370174396386402110441488176487260011983929397523932652170596414650698587801035391586133842468514062075957378144879594656730233115817188796686749988277210065145023795506394066670282220382716007697801849535565497125606938751525899322367818500858979093153765484097527983972286824537642574599266013273419126078453264009037422851970683708361580277264822006366162460262253614417462320452346740761493694534004639864869954461098528408512232992286012734931694858392224472334870252821467853398098053083037092315132223609953997706018528524161200069130692597452235578668973271141592141699562659072854780970677230841960680299569962708209316260505100212203863927937766354977823697912455501120109862145270712146858152713523054646207365760280344057639495301388267611904635707160716186265278090863907571022578109074094451479997100776265132828579314975643348816455777971994075962939882968796517472525557492995899614425492313232308328335252298709631481482493529442684128607867844886317126510116632523309337186917305210807867283896917028822701511079702483996603689807074109548455598971874569266097605095818028044252327455351518292201020317595336426298733884388677381832443226197425271108356585851810954727072725116836698563005663748154602624415373118651572971198954428921398047167566368490713113500092641923906767879744382351691585374079844043503494244435260837865031798124312956066756785641308469702464272033779079235138479045232944586332269236044524534402283711908355290629497712384382410842710523260955226123770761565169686502201711803951251799247078541509772058315567405236220535173945643719105800341923680911781302818461481160745714706574149824313334805351186958298779171151871406179741792106187652582832586500309318435906999331602283264321783154221933627290975340277855819841557394986570658153325461325226818084267302634824466478271486409704969255856429043533504480518347890007175326054519924269702764354484642087845999109743735123978933080357079066684248398484822491654904257158805934471987899357032056416152829544772939197110607769134716871721626763466817406999566132824564183490820339749920121352907004721257676674178269586145021921188205386064747044763346489821723351238394502452162719298662858274445174027754245534142330879405657543659969985499153083352129452160046999363458344693593405744896068213794768175427748883936842656368881182448592080817069054361487721889392028658504578461798186534025230245453830801127713910931815487354156476151488270983483455438928972669859166379773433148494460947220429087651189729834560782516347110443809607233433532331915647995489300285489912977900995765029246219243167877013345279089686989689125331905578784366621248927578844880686534124056841296139079940583369996106195764163297195040817481197105821678255833707981777794164273113152311091034974110585056253559615355420051095730372499989894876664542341236284187610906727129612805411506775461519315459900403458893322014913568705438964944383601986653537200639092096126671142809415764070490932110619096080831775416476414431234892322738433812998549051765869473446876377128008153187716510714943580572087212386649111601522861862678431200160633378620126578185086671746839136907734528435373600377441574113416590179286613652674226490100518101331018611226608149629806998576785436734579671872166888763070082729882526062839269643937555809417246787153597677703936851411520839743047102930553761582223965804664228211121524992122072642916496283223476088839209546998204974974950012164159363010186884214605293986529177058425333189073896128096650966194050310350348335052356233824026439374808327279118491157346294323639205192913549970762038536836947540202303937991188693709298987247408188334029994098631640254239770073739297751088313637218231055282262947983827853848878850603235315277614344945619920260659603704247010866579589487259798184989379224722341685754969301012521840950604552807229865619937419382720970801588272759896285590670429022421776359938782533117075620176583123039473728515188927010948470232727721455423994421673725395756954424458035884952118258828431406082477250724394764123609530759332470281020771841337117319423530581113466895492807091814346098452307236928185427165589571584740514820348007300368802083327409230469247780817651063877802758202992506941007237918857159660426545601844297545815637217329686447127265073398895201890272270246089316946118961843414122647870764473994361976673517444485135024102981959822571299225190547135031853658078524802938606713418176466549086871686064808599028676262226415299229029920280890777210687377549685563333414863664810046853571223115673794241208341646412060563111511462876456359544834811414082122637869833139754223884347768010472199871638229161466443648925563645857183416875647097861230292825914017731179939775057590040462380725738672870472108488067543385053559616043137040545981070327990973602708120044361969313288280698172915131500418450420230236276918028513142705422005910694589134770184390849576627340347061247965966590958125849805791715082777527574448917632854879811826990946530911508917742365185031331608980654166193877535891275399438460123876119752590261594839479052618114280330269592143628222495213597774712892666073262410094667999412465083119499387707257464653050151606548995845411908927359489089454482755712015422956342982283255590451470696549823748976266185531516098025228268983521918999016935192259427857152889020819096745197469105991428206012920512581223366798155911058457563512941159634049991733809696645074315918054012862393094429703434734255047241362324605648088134175761792587085132862290849361531681834970638846851852816455942397029769835323048135651828372741665268281462103769791871689809286239860869391827509184069138045925763676420733288099480892295148448553669688323589724674026835245887708029002293696527474889828267810974372963517148655610922012373694822463968452601009205772475268193040884001992671382191879002483193148183508551002639448153406355060249631421521714685680577502986634391128621129072206474788763566432092166377906604141370051710705696504933925165431218588858859516957656440361261366862989259134869572391999670180873261232464504692055177097477344077307537466673379755483818285132268871519685411474374535803057353705437581649271426095426180195895086922581844120804687001803069707303978436368142676677274848848048209577332740587400012236972756692680179898630548295878069511903949178360491946316641380069907196027482583577152129226762142687372710955378385464364098759633443750210705563151967830877840862847270421715729073472629140495029419687674991037474309393431244823797240644669492665623550487780930685081462641812853224076407136833525457701366519677922125218110525734653374497492142940097695619346919572287108250385544070602784345112143176573060460757244599982214591501001234907992983008923393915108487180211315407442543316458691975045748110324542395136113971653105312625425803735976641342551202874982052384771321655488269636854051866452501678726387171719116812350833385626800923492868983576482365385344914811101474043747336265870379092143045055375535246476467814568270929026628819656497901151181971060164443673326402201781096491789728076045254343701191711983432454660840617335398709320349862533660795097123758897330298219385013774131957178725077979562180016256537965627006432225338967932863254682517092074371125473458015041623697034447828000023047891000630802070988433788374228900777023283982257149977306671053533046120164285308978497120381668836583394301005686517429888314317915906758737057170293117683429584824899672264946020753466050375739198641476773152131543301216992201988849146730732879064367215318654313904807253378292238623202561220712407512251584916958755031997272879472553632338340079882460274016966750400243874000651412048070871232186778658718283184010227098882121201968546482957719643167913557884881261614815713351857858135979492766081950802923844332850081636565025353691551530381809907512402701024125285885725121231612158986622401877303466368563911150463646693599785921580089019846907306591396948229841772475620689012165866286105260038711802504835804790138707900653030854542972388148141399783742861624823953792953090136506580018475090986843666206019356030514394488906174963223695106126077560646549565782006565783858598702440263038021267776421262263800121250996407726879790917457627784279097460812420248514376333372536949966742353019439627929294975552677090483278123773762214242666132241191767557572547334582777277452497223386998534309509936862337219391351722483880724583485794705853876380203722333420296027014392271435684535976443180907736985577740792557706343093712660760764279913125301769844200888477758362411348123067564278855682896572671909036519140390881619561057789763203684138280405371336190737294408192248818661288334309094286012304346014907151097479153692046183242023977669496972518008595557462628301250374607113955314353553516212286408593556392064832566376353005289250903829658981206259542151895046870228838402733233249551057325184181539622588114529730161482500289580568085625242769747055572077434070095586937685119537534425304880221671480219098561222638251646826822135522951806730329569036130605544439546572361042877918009252597217528719383443081432725082322741532465965991374695092862326100610002519199437546595183129063845521681733232240806284406037373472274892797570271128286588542805287481662382466048845893692090453218694177497441534370165654037209737200354378678863835758631350507202498934877350507990310112163451127459224013795369321080274825376181586013683780883589796822888759140279964994416489312949343060772624316693664737037574618158869302502643324021423363153237736378569774182796597966603411275601209194668822766663511605418616711214448795784294945351024121760965766269593743074678435590722323316565125212530330400011665261645617142786865410724239167798765069084448640751111426626322013100316985526319786275552391416334538319180978372109441984198311198746160172137803736567600745163162733797027258159548862794546014537696476044372992916552458311385605960461761402475577271917825260731825334362408180553690645700881788398362732962780823470350656857796403487386785230401291496095048366025873868800528865799812690556487526924616388801137119197923649703044993318960603839494933711540028543339009036859356486230947286624322881560660884859180478229342857053280273975669524715155185913972036667846083132695629840780310763136440378281575777324619929577847891044899517552281591247994159822964800406843102057948256847629680596839008541989148266817391513470177865187874845614702344223176353322377838592153228184670620300457277799446911553324374038827446086422393738480050539434972444787595004863918579202836803046125334844924588923577190552196774080408235676031445868532185382980306846426743722061183739028484052768947003410061684907608519466911938676384773847174103799771529372077842916863581672263019975482019334841827167776119059451652241111986551330061208996199950995854954130771886253210585175272981757043257427756299496202213887194374075191444980010347382750414329128664840292826976125757644162720563108341397211564993627283204637916487703311106149539127103145027187253471474135523460581954319916022633860489401692464812297402013868322222761065552383927310678945720020318493222615623251015182440872347228810421074272631053324949578131996121012706328928351978170770390786002007388837314947473705639293991575347152820333535663350137596234495719824700638176334523734571684056148893361104419529666922359714259985726522373550149829865046783615778598622914166224897530286738413840036856348844099694704008505303118387764663163689787536283791063633255457834210122329750305482177822914303237446420161701734379676829844038229015224759962306362353757186091334655852956830618786173271608155956491305736730692684323287607648314013764935970669078240231807998343087082889375944181040561650906131631506023845426054595744432011401407231189679594916851837826162335700474949297824064110245700809110482201780588415649704817593943487190821057785680198587624693141413098518559988268455018182367315674275126969544358203434225829374496871545673901647991873885464540935489698784045523777147488875489203370771469266154800216214473584186968237468643501844747289882220347905506783373601669113994498057420111180128232457454003401021426644894029839141091720015718384373454349029090103286540527452540064935280941000641322947607824134921790449527658321228670059936919188517358828067941396956541518768470253440744492442426904235511724645474825351844296310853255347866360558411206265256343437648635767948116267247711240801702780265493765835373376125269722328366090059782749493863755854160930876063016534749684651651582638617915207667952840800399075872457551764200909136086632141993191970286771484862466706996372955190109719445186461886069993625019629707418905869234260307570302093026692727080834787854030465793158712140183033229532081464628196808775783013441050237130194683198719350782653785320511001219450741753442192644851850933188973215331112046901716469484539399251956308915193232876533270165391033218307657896556163510515908623044995992046342167297384764745200567022038101168498667173733754060919331667167119447844671938851672382172185227550045555737319950592228367026790477242954078175286691062972024281312892749042426300331668011771375622378502337657734042875665640087854562038465471117081382199221671654903076490892304453510829861034088418117698161504676862241346930285518045228284400236354708955329749508400310810148251228573154556452405704997717986139797698704339357816130364752515220317859961997537935174570918227111634820408205207842408328228633925220469438624635707903555849406277314061956709225413539335841269519287956718721131894294000465779039688152483329464780994821280624954913972467618319247539802849180709366762878972828431869264665421679871143457392132070803687598788011492130522023114272286219680329309295382284742442633027158429593466527884725201231408493857062131419139815163857017581595927631042636437753722055134434795785851892448444601040615661371258715567926915782100722987263906164082184663462822230715646487915838675358567387602460652294409644879514310574819791174314244543743252012674068159420502444912270614668985522703155583020752197146835641172665349292330908760979857952809077114990476855859293357728483322029323372418505306563430373800804741568203101893700348410030880701660515968877583548236349480051815210157361858016946018487035973964961873429401198193632248377249300487389863510913340442167077689702778288814783356392878958692224189776664858202035215091661530678338986938287506896722539198028687650719173254475890076414921969646369132679047800825719921559924862426575138606055246293270884594560698038819084625568206129674569297286560003611430075830071503827897831548559656802548245353074210723326114148776198404454722861235941874975551266486613403891671560358397729756789615230247438533119378442486955677914986432079626722478233977304046085655890317221226282488434790240072675834781624742625744092598341980680196197147974663798484247651482444270886222982717418699676511837377749395116201413317133206396451253552012833088959582971950218097436742231108712252817862864999462872924155645822299991116950907453773909550856022148746094160573802451917387530007320321636079185955826739167419023251887018789965064826574528675052563520632293176700192773922040154148738841617361982141805615098242681971657285918609263742897451530392294307536735525032197200211115876156874976934053852379996056087144921282829434055829999767746660197386420082994967321938723364867470285746473806613264963511817062511395351887183770042286124593444336365311171879163107475882677929344598034484544471023338871116256513569126034998485661277487964926123892606398021382283021063380280266603571599945568570278408599418398661696791339564944792180754393361437401106693102539485688381254585160757690222796675391580841737002946092298938222950261818307361519646412000981457769437413035391957302795707430334698520677783878475787267310420076320755638466033267747109091657028411553013215210823546155580420670399779723028625374004205186549660851938297183134547948055242215077164392649558491252139462235989457001714148314598671290892285150613643927524341941782537594414005711169209461019113772668463534081511089346261760650857393152212693872239585530820875692359778684867215516175925739529891288440821109219844127420959027515228425509943700250147656947616937369969704527244010785685633573815984780841588761133770617943340556509503586035443185686189507049876334919648508788599980983129927296047224974490182539213660859752887419693874993998513247613524972063249276765147070221948159186282741462007252363850489992241648652231659095804367915194305867980023062348941590138273581901435851184009031502858246901348070549136035410151178337963725896693896306703820436667207597839968614253885178698450280780429486266344516052857782288833620650453129775115624820804765101665471701576501338562619017990889719479007547349955790587901553298338066242932420586855466887806194854784211841113206953916777810463331500337336668159212430061488654071938068654935699188671545276147157503125730175226872562216573500206854153244074006191725636166108249258635002242926997859512501107571598766763252756625936387983835877203648471421627300376727615869094789485366065773240096773556316533876808285274517422643400531953210705742603539424007690183922366135853749293813571805558946551392031212961660197977870398284609625845962727252530800117685125104440936401804091152672998990503250787225035769731802475881552182718770376915821462943698192924568874455302655692661387459657246737951021966191265718052440881866523012121639331015945608658329248819058732479944181425502181211631857202542042073593290380581422323033707588684130225826385643860817470519062668003767972421980839811563931489609050184709101911799805257472361831279389734705983374359947251730787930946398625605225477763317508809495926184407221548183318740960342051995743904365061413237526147997538641283687073394435692023002829950810293828489522105320159294140544126945152456885935862673434066989328343128142704303425537102911034848676842087938827586052793241685263080320795971387310141525218553915452237016597382297384389671281295082866300297819596615399087760620402880586129164722979910603932622040650581336795293852780891285499443807018966608797054413219247923733870678505265941538594776142006539548611158374457227654771820915335691443089881846910568854314135444972098684406347696682165701679883186834951898521472716786175914655577673934082761561898517607799872747513753093031698452045120231200010921645863841005210974452782717883435390135514757057925861781474412682458821511350864111904282753455040306750271278064960413877054389044822973402968054616897134420263160745918594685388923465571440600040239695715273443351080319212049672457968701567219346746117285071022525875152911178789578222869407537510885244888023392293809360123351532350956128750945265720945166238803957309223797078793223480385522360163632802029506690434144484462310270585528277380208206615316987109951561202125614832451614695066209029246003603912234926315116716154064666410842607988162762291186707007961350729314949527194585558529403421636823044314931435221826351180726764751709618883525605681151520219196942352463155832144806067718753422202487155485854335460562833217855514175670610632583135187064726140437301591298329727681979873152977350280145030461430312051590473032312429083619999617501191287096281028934485703624853636292120320364179454712261430338112228053840535128810194058987474375451109602080398524386540863819531349726326175472345254692320247968642697482392779138118222395788087891786502643916175454420069783744878126569340631731867838721488237212375832416740214480592085902498690443849245864608450727634610344709979262896156159641053212611745407008830872528118902739050262087518860318121245429488829893017163067318979537131652763653618979656616119183987871541734049600842964941542815793125367528393263933616774864178614710849291842938255893472828047712610747105398831271478245429931007809681097123517904582868672162800825210151904922535794760349950211562949692567461920539362270400057523845057445878384775870019858279689929466550999302251150757555651067365814787738903341869000314074928296156494201514658074652568056769356689353200775338025340195842470511833661630518927052438441466069623871521931396307735413285086508540111948270423673690985453214727891162521429014709517048293630098877420826597520531607631203659314072980531297597704963692469357451959333627541166725611256473814448904220184454525740677589026472964769318263846478882410198265466716959103149609429111308355707861127607396165459386364705172066034372422519580682513885508496654348343451098422227283249374003750738153681922828919550100101904191756022876493071097852720837929694472926428539474603646073142325524192901455674767221103315467666859107168563351442876974767930083986335230472983660491535210397508493790081024742468245240831382577278668959447725320648656104865283981681111332392179201641234398191383633736992516215832998050036028242825939733946859276264663453962152351722102367222437225226154072541538473115845345458230916065137908881081003716882642784022759802267744504710075426978056550570716832120993335995931415410310445462662809676576726447594997704435251757201630858328926993108831782517359942609487132082993443261405544105604301646855148135247630568524038296534407744294435561464196733379952035363064493096021066307403634964460150145513692702088281128069619875311585452084264585168448993144860503065582176447526782343533194440172947441356380177988147797960038524887910205721387696469458083181739011774428117878231507128161584122959683139962306874886131614442169282055994077511484272768990370656378531827178128299678834230501928238001457257275439213687308698037995536350387602450105717499792383393943050658906890580600814561534030655648475535933912697530295781364473164902557924022438219470762033250971306824743421974296386981244105631685077047514224775112173749480698279772783860777507380664588039243212641386800357358539703752375237166130963935583411692459318133656948472639469212020917593433575178127799199164041618672544347104868389544853098195229832388775855408173002910011303550568025225469358022946723806659268855568983131015464985523952797966209687889446968284970776187758929291874743052917163447235689422303757402337452809471942495056019651792606696437499843446360134679719900672822525530270949235238613832922627022625847148056200671077686563030891369623418051113318072618719305834932904384605883151961437238881855473033366680477703278078417186038672634851672605207922962785054391799475896100712387293899904326923797557317998344575117583705770311618435577482231833586350559731476791421147919411199993799383421106036992359342059813511633195360499642254965677750519044061703121651435136425131936619286282390705647774630249696319452516647848823911176083322964433223844410295851393713445645712482314926233906789911750536609531466223391090384638694209707706192730961656494465945119486028797506935432155049195207385380961337785256408826879655841408613769182466730792023608580983879687828416663320241596798492022596507171739624083495215615420558864160514311967779153307114440081806719910109069129036065371533315103968427563149859128947848342386892376207022833240456828544125135885562791900318657034610235303904271064397099253326001147076034357466556621137814037834034093075305592329041654011317560465120907074839735513008617035446139793752820634268700310066399439042025406244267477107911646400330334037205978138730724967723818541300404510644937243760063774794015515904715626101064052330536675957784671654649500393865567700035937524053570591814887657617035152446784907620957636280412818696113595267716135340179280465007780910413908912324080567810226634356953186914956279653958205668032571705502766109459863768179618142683380726462871430583628699802575098350573992477578003157698451286041805368502061066193859351578411471012418003802706470072781919006953193188557017558191093638902427815395291404464056678027457896183257497864576320709500850226151957396369619684875449477059552252453838022645920682178907032750034834196167585868139860669934928479450060178692981883197089209052227987499863036475301285747147738263097098105703599823618513407287470380008702624736255754482410904844154155941870213401950909270790346829346663370023639312221865635612175890055352961011339753173138236610410919582934693830309367243454419371188095556585393794991135088080393379176778380909851172417630845479399708224497505375519973253882139227374834716600155111210018986628347757480177997819211989295771164553399173623636429071985557772860419227724979673424899310119539715831315931279642948176791556159971817309083579913853176499415899128351956115819493970282269076598306325400877992221837040390378347641820529276501583177236695071865070983964963075024821761942215503614808299919067838776801310304109439742152468116834308215542012131604694327050358206648459604278766346930337396028797255665988488630285369640311534810944934760122044918040784331345167798568917057091072268389374213469496819202751227864933876404349759487507937756167637306511713584289552849350526091996910836302297447529126678513566309792769665999990886082688498217165526088295627405097303935599989855836122849082673010018654207858384523553827429109908939925524775724246166011262815538646492596769357104017033701655262265961558826220601465570363292413384754932440994205062410819232375487805421851059575123045361282835376020798011352731807530068656536469765641840112843553197656302814803108884959160715003746578894703794093108167523795692346782589049279625650169765791455496843900467137067662226334797772154435399104905967919309011945315801709627411375988182428303324228792701797635893135441510612842786357875784978799329133657829217651713027260697056042160571844304488560253061900938229344235897921290836876738111096552893909584071374305319344745181882655857534976281057032737034020193623237136087708201873927587225037431235251625344262707328446619768703894719536195186587384698585011491902342535680421566265893064757084606398216929716317252636261615339102111284494311003892748580935234549611593042288836654081727611561362335213738189328572406604215302443043900224381487759050898302027427158647177528541286025484477421308118934586094391757195780189052958792657114097150518224526775458877994823249003650954553369642815510739460068761000348698084469090772657718683784031473157320417773813134631764927494581719363955574879486315128732083871940310677444589844923129070369551083903668227994435522925970459013696254338829894800019073110407200726102234090027488107897237261772656301447401946867129522682032291864559019165128925485894066734119683905027246790132352786138141507745210163305243899203937417851587202744883974975139835932611687052140410491884481387558854038480735353669625730705670770546238027839654811383681630641991947312698789362720375582914634997528644145990483723780348656955147091665130459211005549610859983463221079882979767841629772646815099405851747844434402666541187067655095745855736290954745725193945030268145310584516629969640329787956328879577487465378329023155571449192373280261236788781481691269000464315531818776572434284595723135439189691586107133048250162140115682656416430293546610146551335295042900175410634264066239729231788102809951053629033167232632988499408733491874094115789350228521102011046939142307153831671921746379555884837560658838467604618904218392890074226539513886301245226730802978135751854918947107531151903330198032281841768006236086215400565377097531246486373341790702291133606926888311374282377730028259679916931223701213681878988421601670451503781203283652137048298608535585546969898332487795894637705092632441633973685155454173644098150783732677130703072289199196761409410403772982308453427156432525537301834831057647781113743740736677732701107046892693686536434780705334507164934456338458898925634586081313554828346441547312244858731584521504985772524006897690172058810570276652550410714726092067836998363617478506418493753444097169947176958354846120727131243450184711516705121568451919593585203454553765085829925878412980076062054740482701714702530505616743497228162372413992570625690789164223770277733065881596787067028424899512436319548788938438360110435567137105316959994678537829227910324864881166174395610650406062770430660228793938526336075234410724160399632125635340778509974424290274514795564996033652057111156387745828811551010396905904102515525514700378364247051769473343970587639777576653562356933165776240027587968815462208265620302901580397857683639359791220983751288903565694396078523674090931594981923091836764497301472791162383666583779269726184815339704647283498359135453281072900849568803221145105365799871887710604084235314871148022556380419103966641244507101244400520750848226507644835958899548596434090391515299026289268950693823412242686726435820443788592269535923455072555159502544023338776884295479298818195831703531977515329032921013463080544081120034269460525527333709320319829593613755450901852139121713646364705137767626496119247993455120939753498405825244414531510028592372212933867075234763953196911459295286490041109526074679531334181044965862270267000042086783632180681101691508905832696353017636936534254598893222344561694283198234609439842748629585131610687634376631077887253572395259911601792037856759866819764183267319065396921484832291267842368420885555761462126428606270485928244799674100389636248635968842261244550615494674300884877478843941429386533853238410483351252697279162695457151003086280562193058347708408191031730975447222008726703493010578688354837873620265456753943418374835021473550419538642396921525277831617429709187905542541558526836758813109772257082948745013011704991742271547894541788952792313486529675811578225625678146108702697877987518492247194815549544236362201164271985150364249373008436557103993481293452735524275089886731841252190955934873888992232361225676288216332453338091838099279313989080741782734610950161779013243364459136416974721413122410933079874838929696066655956978147503599853242595594516038380344909646978843849668495293450563179628747676303291017263019443001630142232295754067435277835053687342834122265218419026824873629419493248381748421308049336470859030980694804838889360747062121548334122973673748164383492039639446404212469620061270274141375137909710915932077752287741608366279518081281236889726404380083278734572877231250336492555898708883450231303590160120374395908579823306013441481282110026844363771193019022889356839505546300732283640886645499717555361529779128152766458789526909993915732383445275518680363160651761381721201733873162561631663406101285252614747014964741025836722743052040166029747330535041956359851191654870675283276565653981664431194558886874282572138137211175787083943805346385923370101836067338740372101901470774469567471268357762383749140664748466170652741491174786822496642796318074328852988977632871958111745220850320838353298690292683710561109180446221434704389626793775909609030420344230625238228349275354108749797845840646573520328014021538765190202041992593683227862622681732355420047983534066139732085932363153049292265875066809904110352159147548972647725055736220582001863921059095813612252626195822278626815865547798789816155935397978862724936284409981853106869775815268595009337687996840380797107827947071664789794001821945388782459134156113277271858074461241056347699836298423117955844929281950884718675322346143799824692187677500485700521688402968524222898022840604925103596276892026397621248440895237549367069458105195311321776965067506169918441043979596089394080724212233758376574646441127172971387002984780109029212647154585205530922989434544238440848444984115613581022746251880721709609157602604902659140513419201278601524015775120694225443962943656876842287582306127091931199770449962340479450855689010611568729829688016064813838217154665970195609792822336237446610557691618119396266635492301411467513566479459120649093217965599398914997651491949557433200630316952588383255049550705195562533459118555645184718055835312297144538234996486593116466873296870181327136117806025431809073044342937147766049205221503918540702716651065385967206802169378418265942621408475747942829915827771508576416930620988519425469838478095558687723967303102992782609115551755885539462303594183194852117651603323414977627222841114784671865496314748272260876790078404586265453048201880380175950923650704959930318961109754842780936820192418783971293027591471746714861147976927810289059723960363952902059759380685170722723286250244619277003451201044740922678667706372150896344461972468424258466751156484972218462011748081675630984262655457676460898514436346066560987513930196661205303919248592400635077030202510225880608474566368687957521779853007201816482532912702754625371710585196479262076514426551275616717603069117404731788234281043895296565180633254453194685472813000502790811905054955080863059916958367482430937394506501888554236994905038038968431140452648221196260875509573006855376468536774655548529109696992729187705242975381137367366310637162798897564768556036959530044009431240361467247648822471889300139531461440615713288569275780712834921518936240356581193218561421157687541512750107658982521073164254215653896836123186455621749647616339847451665415571055185359257038944149080910058407333186298824875461574307485308731783485064443453536309945271373063229883658990909474410288643313537095812200352169966190465482828541395419814571583020314900728128585683487030207921830243200789669118831608834465858955453582625462622650637759067280948749284762703840181528044937133788275221518747048053838113112684829288878454898757759776449721029006341683258686789920475996491834422591828275595346695253800369524229611095218248026244192397742706703970326933409249465472958445429189671373062356868763459338692564661158742517234445365338666787997149021086590444343169911078904230676391254626940028433304492673920184279165789103082712423572376830767289064969063958834599803704418616384362065758699454258615255052729657948046965035666940954063344999167311216352992886460177688752432083971695334510818630091115544823182019018593011965292226271912557068020620340103465067886993646878660679237743434718368798239724924514456452857340863191930605270119337602197025279998691377081009937379415090465442131045886026860978726778650208646726535662237593596745630777130424838883167471202878027160288823499404953207914607837202902090529132666922341524053100748784637807305670978518333804301140875404433766663386404446404042839977072431208920412419221110595587154652160657640378105547133781731419816066634307679385521410481516598128994535691221582790468740518065891112627839056445924108045469028845268386382340762309255024680399565980529199492004912359820644362873376378428473580690477352076337289197422963138111681545237912281221848925664440960164316199802139866605247452013129152910258291232341073064154506460352606646312718819493618433543606756489934814927493549295105021708859896936370586985000134298823034145424748585041878451249210568180264120863125548218637144349009603429254396178249522318230218527598098709551703827830693025185861777421880608140259057015316904784105586882658541777868277495451514797779751316914358523092916488725697985504507834921422809297432357250773081305212513400056558191561799671335214215463627408742291996727428189256127258079164940196645088986903523253247905749009576980208296278967095422537213426637745329622571573925265373101363518139441395208838188301486688127184807898515080009877908154491958952678816100855283173977662866354698833833156383422997144779033928385222908206116738583146569726843776645873665895291788301176694609594650517777825458094951011199793610266359135919927935372624933720479486370340290704586320104608311971305979182779424811137940113096573143151763216418883585156722560438187785003205712144637438132451234162173814650018178499475516132117943785846732112248735487926499561446311218802624015810941355243294048799097792343322864396194285094179851701067541263427795326825931275739708558662118627396163319149596630236752284373457615853408494968875547409559432926146618269665006356105708413877650141810094913156589635209059877219334522734490167625200737057564702925071011073852055296338117568800391817975802475471999044933526181924509320088503519888059554886698436216852001075317963173673721536001714223011779954366485546432799555498092551867939373355285037689542152575812033469050388016871095077618208383927977661283260573403368307284790861364293123968032254710026483055092373570767180953728906418948031663119284498102540978348687650605894395445305480118548392622373194037709724640534029787577236313399220740794923992684453036721767669163179104067936787796260057987459980594424083296302254317691592131817709165801521144496305991319037367759030516413477305242092086620423114759773950484190458670499465811467842108485509420074327951645790381311068696293750708535286630202791865217458067683009402170804634355903869012507965304366215972585630964368210068390774495858652374479674236227599663562692955366684264857984191444761865956584081380201089527880654879392576629263383154287275424083317233418513481180086820148589455696742683344770460949215112890951824527309741159726143460734062204194201696439723663137354631053654877930020220276886704066229204161155716688036039601665194251557650179709440824469571487839539468387016742906882559247579180621021311602734979030880237784316244670305367688712768123498316551041790435132536898359389687616465344795966087119324533200925972621295923317933757989064278112131578636157921874112499451457796021361773109566018051748360885386119786595777359501829880253145689499733431007287320630469996690680319904115424576366466802518852140516739956681501574258401284804304412058051256051176941919932305907621130427174856998579522654295217683694240048651249349898178140001691459975047527770985591209432365390527424341544632742042069312875622540548751888214722479731197527916874609796748478669643247684682884664449488452960951047710411039665811611799988166939694080875620006780591056562658603406021653188148411977191951455399341615095520211899157563761391247990375697162778301556636314443091264865710211897764105412992669630902039645592330025960720913227001004181436252588480686550311881224355844924222924535755107148506858847762033432693326648976865664372397683412540807731649747240843823995432253396011909093367585415836652975733602526834057298482219336982251565058126916756266159014363467929084659111221836431576712848740864211734789320792706774498515861341663159423001031637346461367883856326236706169828925794917529969325725233713160556728624264592351105244154077541269971326267228866136128225746577993001989034341837032756182801327765114479500980133784800398881159519813324881012351842817297687110797962175563655466371926729946653109420510952904176447214381974086429101712295897303402380441717325811961156702505627294436172880816491243451767605733344271956334019843981749694618515242033289267278604772737825504131818675848423828870801787792616001970110714835305632615825372762532783736014387191290227153235816586394056458808096497372750511726629680236125075104194081630919468873818788874896228715505373830274447166946511314409256564218101863750351381948620857028295453526074761750150260110703175090319225059470010829049008231084925271751321672281006759286414328621260274467329608302803121680771163619795326717969563739606686417760719046522101777339870453305231149882495887818892550701828234262230240942152854409823329336535023428732884544282555589998762514636314016728893536977075021861907956911756452344625568073095161807639135587275865827170775393582097720513279991679124052286052139301747455015317580304730537317574313895995210804898849467129121893130359662237872003765818657058768154745053026242963254454975802471775757086825861240783714659656182139070066516190990544809195350406948325276276526536049811063135623406271174294056724562078226189568315100115701822513441374773043791677990636400616184928132875772273222178705531248359061641665905116449143016722711241069690018074974815547939153269691376382882962487537263009334601288088559197303405642426957214552423311263679962245905861800130663180652754618953515757103370542030287413671827402864984091007063878937861752499723401794997583670565282311693278968491450643563576605775436502146272259458955542246029759736904428331422135632283775452198555202714833385811144499400083107198818067656066671923479078071975358909583524396165454072439120154239547216302949506399385631143852310254485701340662267980886003376985877518763245150412004238362079625937192659540351083642278426993054054853906189701193195481754474770202603212713744277009745129466318305246221012195432837706085507938061483416145031067739834744811774441007542666148405252295353897406367745081134728901868118684493810478062561499697950896369808855020660042625747548015967743290743182007942345709220417320279265208940808172430071738606745427890464486230772728949833536411787038718082756533555885078147107275646810243912136866875361059317773365634377427316362017739729868235135967690221992983598329175153826196644183513411586302935108085601240400113461436532487924692424973056645732168726381392049355936028497059044231172199206805906612217730803909549332064616395770982928958939657366572284924085992491806516979291101285171472334254669775124441998776380745434075507152683695713544880513569946649838884371959439661364017935574814219790883952485754630797252196661095327553742438598960415608002686566129619473551287819111811642455591889088113444380350907135218318902485063123926749422249431455062197281296675581394615396018392233700130849575013534098938580302457865976199275279818204736730031429915502449171715793390945860875683207819928913795603779403351045197832615712921803503129902908843577755931817983453314292601936306915333690569844743047391023533720749049724736997913976813086512891533128222393646165535402298467108284337415002418782624853979841361782551144220699118200346128880961640855733225268722437072204439002951332419909683527935512708749457193408474207899970021200207174233603678427729576523215277209691224688461269994887957676868081861579620833438618452448836840839491132104185490368279283233138393776517276583606724440024494678274973771377930445354754702503146500578597749750137261736601769744495307205878170554178911001353627501634451777365479834845536963742329736482676554289465115396558826781833680350109584557439749183154780116941597240042631874473718197915188626339575864688227219683986579448136761576142077072674641101084184562969894857672754394722081487425078467653650579712450070381485036124372277702155044016110390109723813899166270968436122073123976619622060364405493551456179426665391800692131056693402366042959277075110895856017052467755290056943769713673886923245168806992393466183141687288555559692533606592357757908961282985828264119349373491645079453914321792951203413778479779684206147112365486867641512166479673882777675499984233980217014787994112556331485865445902427674167044491997088880834727942147914077481763912559118422742787652786775405701246685533216770225386191242673755949820509968202157307897501620620725217373791301462240566248183455125286958994786874899930168550275257549820986616245776213059878587540594044634433243904542161209310651745941378640683418847449823936983602647498351586669354410649379475242507691141033475265506200004668124676848427827578057628582975947969874284054973040449033415482815857233076865710062809415267374266598234634591915589586369798081515564075412527279569888132178807307344392103001723011684179632042791832333911555049767009598814703563269807987818970170398087130982292462501170275995124950568947179430526006281967514516690425790590413581187193549673662055671563446603414024831461053512696473106773722627478429241376818143217548948931645725156924990691743113298682726456703540255284216246069854881882852638880090458450566090149887601585419740601027547857825715470735661691734399064821280391636977134255428143810512501287735153079733098744658834388098427597637325412776705742144302009790664810628097745093434574083580364278859133537951769938935052291709608397849213054112092762824678839334992004966502315661919429256616548401551419174478219608495015706570314236221277512672472179510411904383721843352212290111686302792670779893591228037577240271811719173758842033376532120291993475362643445390676290824649741467437639338752380604046663643065697997470664613535057905118069363746273112345981304852848972282241785496528030657256114239382749485313004167891843985180805100964116199874154097012363464452038085700898628499797235189884833274637426194531934344640650477717419916266309465361501154626936218271250389352679654713030208378024515515477686793451440266285911745225520188159935109406206201794409684863122762946609413115279783380857289101492836515428576317938794673175627626318580749435715348634486290492815539294525272956879973069393856426186326905310761208041655877900569266599792807368862842433958595612101542073527219506392621461483056404191297600051217393785681248300568510813163058762304211988800611882345095717520508393650845613340673951075110801234476624002560506460457146605537212722599859184393684090777100803309894947660946167008027723096952745123203571430420110100750508005109266895863029892582475996322994333457103974492024571943044143703141650168580770627230969473451050263854055133568818318687273400702436916689213903890451745562671941098005424019283051823465213483332947795582766461507355673335301489899452001311153966592784824048498995144356802748253269556880785851200243719657817515728474026463558290507302419084515470887784302462317043527507677864402038891839412957508160562301806334754691632248344855185722182517869738113847859556376270682804551636802196582733085008889598247599691489683123287134360294784949797371891015796856831324633074659487110404763521854626538167835655740083676960936397927995519357850887776782880089691159725751552328091436650328700820767476772761269905477834836429570502089399785302524409422231046087969849472485120325587796782838405071794561843597599678026447300238418698222400739410543725905468885816335891060048010981571544876485257147112669346806172921525872221709458696186277463161821410717911463757317326710461388369811039170273038875856284343894706499838006934348718987146125554996373953565826713712138377411233675417662611605711991920555635480422322495058223267310284916579248322120737371870132655957586915189592767189542970136088844639381931434362707815778115787814947245182009122578065162978524111594374873340787172398057438317018863594962443976494993973959221960895341765506157930512480632132758237884396993467779862134362781774347409284872501916842992487779475817608084987905258887208720145835446650265962518543197502902937655783030808932102158213392685921861320793820738167801770269776483327127498782008387520661439928993061595372809379661939765295422325259189244125576208874125487892106493771772014823005044574567133645945387265183710485328898400071518157829576870220065357945588402053407816330409971072842786370452498209786792956119849950788505045332760459903537067118631918113392835320788694188793704347272578852853642747994311956146291803310600715857065118287811363334569663291258226791975343173489060240615053800035187286111403270788534897090666554826335955100284670774278301269678937259050804133194243692513636106346262395737658659811707366899343277198607189546006423501328663663598548404686781802612833157813284283195587237478463732318749016844604376284211687462235684100851010306199310427620704701578746610388646861671121138893887291596593681141842324845573349062716248080032019329136553225390830802584674059925469615126484985746135973027437060620415385203423046595196473895172692615279835456368331786625576825572026964568659725937920324724663935038882478623744026522924709416773191009975590700338036315936159353447171721578594907554040837700676379815636483682274392280855134091017619075221043321235302225655849178376080303307374127549879417541781401210187663172071980742914436628752327277030112433652704727720267879908176588908796215131512728886885761397269608675521637571925046149053354235238810501219942133867480874721670198117477236496721186651356463386107937266327275822932166429263037277426870972395242553253059627703896825345247616245968848035126933164421909389658107511241967954142559283070076582874146086851350291282397453624082406509383205253262441856709963276381298343829271366243913304494460612325561433675207611319545432609475414106741489886361405544821145675066104316967934305523781054880826795623725714587413955948949370246651557324634611354629110650722666764647455898859255962750738844838834168412791585506542508595068167505883123710664681665621832571717354668402077965174266478297117169245208102539725450486040680952919563208340884292300819642602996273577006128145079709476644429180942064683480177527825454300036130670620283346280302421630536085467007496785853366783198614563129865236816055200043096478662060625869862226361010947084923656263597706187296095370299285641868879486906241323094952510162411131663641890639319720996468996884881393268254173759949038504304014099504018667142976197912437821043391686225826397667049267492756314136368669313304398445598301182206006443149124057419385275575803991702316436943037303015621405843703394819870811683418985465866382038281835282612417130335344048624818887479910677538403985003490165028350268552396159253481023706741512035320937247352835061355077110044842480641426405900981139157799325371161027203088503771064056840069034725338945711752748562123372113215124130044811182489072710149941617529417728070379358991432082759478063577345609338674196000898538531892992040244569424923784600080262208028165127020341541211339610894457978414199678098280468459747571504650478320139028837374603929687466851098718642612320505263334576034914212184098441832455579129652697498168757948375433205326043307015480166609185796526402648497430013447009796545729611141238004724470174905891097642416723937313715805539048867385166532857596546830821679948454518434394167521149977256254488195650606599526803248717971836795255054259501141703708532025198744391973627850838757347393496701802082611008353530683304715640858925856046416066527297197503103205092973512705484962846412874946321279326827197337709743719052190582852323052535285891968962844593599657629827914671604314473314788657505469891898647149526251425575712699141035901397579588074793465395126025266259626080033962481738725744868309723840259698407199642907290336942859520787290799080224164361734271002145905384388542891601163844889303530497596946573831991277226251587229631769692476115841802435446284789418800031817577433172469925197530548077074537971570889582991734536426865774621583815630421869271756907696564007265038439324147350505930188001685672205291062910403843507343538304444138981390315541850741876318664766042534466296083597556720207952082671363409451367174723416811175410698687955789495623968848908426335714891743227718883575946152658937508308434611564521703758331905096299233835366926316099240490198495779456875044365555675717836277705770247675968129326766282819244630454275326406277164042823765253727296715769735588507263584004982553217185421356380914973244025309626665486202174178035843303330827900752848454694903366463603553816570360101528390529043050707028745481165439632614611976884995046706660034883612434979604524836107348022820215881321696628459905870332821861103445512092224512120739650117505126679204335499856785095896698926398024882424581714641208671590284010896617143241623444434461306401940352143125350771265934799567028826464318902234513501347001812463196461453557054134525994995317100611216729042622594097410906870496029174119985806559005098544939487241598564636870468534982713182186162416746860263445072336539310711199127197374761084600025528997261102504308892459739953381949602528446559593907936430856895099441664372364920018980482190999183516366210702162762194974288850035736815546814211670138525183505460208562580371021710469439605247382168351427536110755926145410377194523164384121448687644852344934819455023660380769154907215209351175433254235629961180457307211854913667368131871450078319920984463853031452017067612630542855972199686267148796595955280321789396402233703297869474950201727160887800129265720604358861775927566120640162778760687075383262850801404616073015914574004637049436287744207715866558472681562673530313939261873411843714868022461385892521816623914097832367273903862000821930702858051464413180749356131505921757284473313575755094582300492828338130780245951173060833271550617293327645793237553326210358578523519680244055066939693397879476057090102436391270861751040135621231668513022666164797582160472099584078197546892510903213038108763544001637838452612613432001227962591702682907781937898198039170533252930339906852873217821662526775058155904521083241518083139804676337309643699845970892461205679976829256812494803511210059471850875927825100272446049550627010669566616350876856137551841949635201870513603719735912641574114311605261486327019450456170164049293695651167251024524621774973579997495002231168939038017064547092774571310640815044718386345002432414737933422961520186489500776775483996598627250897518124672761325100072337250148715621751540652524271624389645192526650331560548470517724585687785492361679976065013157527893036638153819930593986157865315365171904759308893329321402948997030002534827614640647243572135110915451144489968308139556693415055456853659922848393897489248133685178634549702534626476810536728598670945256538053816246980242270589476994250438631313012464902134389819012193953501953372015229376711191328779313951135471652413625740023196304086301216501948847128641935377857125510140804114241993876295787112528956878198981419383812428099674944345013770967745018330992022843919738757759502745746802360859949200006823731149674555793744759055834271326192786105973208039840766677993769067506502156007512714366709879923306537781860409776247553514704877740611223317580295968878647811228810772696112840420663555534546386468568631164057961122802612870478180223311689484690984164710197785156626175829375142731342791514315118365735761433364097759703190657514201140456728541580952848258965598328261181686436948169429183006223075904695879352810489755993811886380799959519549755062601774204579840561015270556515162639350453667858138405748846542613274769029178265365304792440409943188148624264270290701978398657102561635166043648317900302657981124035798111717338616586687782202758660740339821795470567531199059124706465371234097792048589116046383551557237194117422312080438206020645761020728261325692419772173878492030312726082481526062861678432225399750513522498261437611910574873143454732520754892410674692741211498196851879253545595748861009120729165739319746583272300963399410663599424297611541419863964174458880590226766693320150923294692261516039511793292823900958017987079570287451356754814002731025120899074297529816859256110841239940726715916660428985521898333584009268657494366491213763142494251631834256029049443435099765347529833755198556995854775776790398866891359946215480842181058171166914252282089059828976961216990220318903154358963201025413738934378654642732901226514509080525776968464465140687032016936501259580486331049972470329271251780098979092469360547009767777619627109136074400691675873786083947110206483038979300277182040099412670323797766191334056011003629735857496723797824627024709295890038541936059103850744994665559495501114086181148770896640531066986293487243835167540163457378650149025950007364691579655557165420450849910591385654720188607397995285675369476919175576905915656735021072161055044227504651833584979683343428207611511534169871908909764672409637149535571045769054544447381093121228799556631799107551663555447600032189772050144414273332781156396138568615910925589006564507398844227182817885275689984821784481061218275476145575226170837267150419851016918324147584830300750967600724362734840893516909767822965093389664476459122721446221170849854421122603549670806085026862277442164921397938512911835805243059691299534513299297513459539063942790453100539406383305973573283013780187586252139269971764420232371594482975745062345184769916785392969455401340502216320956061377696027438099001783315660791574862674610785152747238786333499921029373375456972451032156804252115287492614015749218091018525322529809236941260977427244147012967318139845428008674549807974659970102510557466117678747367279739959325407062516899518429814356738603431861190687450192093717877706419248199523075543308407348608277612799186937139640939681085407958784839455728757179177795184903842299556523549073105429946234386069017758978471106133544880040219701052636039683709786567516323234358922911728766273169110326559007661235573162118625659245680776914797271001658547484870346748099777208014635275139959897252846659167659560940977279827030022129459132732937303323129564737477364627267764711824895256261785305717828879357697419480961085836571127699197071260824303331606651464475483242460037499858746080881170359623660566949238876916159645151134694383797648216582676246996510200007068257300497422732201723426114122278051728241653741281470937560242036523290629874002540349239598029733765438255480568586094187095276885941580705009183959371611726072631046586986216782574357153712100338696347130117517525874886510760330513633371420690989801061361050656087070212609444029597195186992952487276202317529884821588046143592629688574482173975381944706891600454256056742536841735171744556964604559609335925600780056338047878178859468283031810676913927470547285744768365095014377775380723210319581906606527671574590719218212392367185323095635374211968732277237404948276727080820747438635430300290716198443373665670016833746330756860588884773623759455313758631032984948141169984391177214224207861693191299125842926708413073269924018738571265324800745823992300189486393249755326916376493774661579996312001867668063995966961273072311326480804006882737782313800767055681659074008720243131119232415304985690467246386840793840016396854113616329059444174518723315896057667452261745693469877041692412140645588217787039787031477699501487221645859384103525811947131064193600008534728389047692648109143652352899449559068024480424394284234338481231192142205680364542418154226399544890632566422468484537357286572351025928288359687411183207687047121461135188735027207934800680378797886207836317297253538291611786287359285642415541509756406847814442085463266901498653336851276141470592741203857077652684180747099179144866914520850651135813267518676297393053896932406518034190225331029913958631773231701654121124908222411416380794370191026321598295718895748416797546985703625326046417134844634585198428196434637879258823132967853802671344969659528398801872259533332286420322954634373641802817607946421165282802094488083476265599413226880718521116609397029668143172025521998129730003262477409650835355984478679962234932269601852437077017417453968988699826660450711300727739158330519159669589939005936293327806315791819794307184290048500303864663194735731598081110061220519236000194303669629470783530384417378488432926870389206202673324584749770287998321677387778820072508922606926909971482463660384037016469129699366722464731061777055904376339206779732266796405133871847398008084087313802188570672161883626328974046050408858542913118457134797308953500121428245656409504132978833630430726824684840031497964265395406483941974689851766351402904797481026537498745564836644620665099367338371901852970093063451845781781088048622950173318772443403707786993110140240096740472981868615982354708509070118103933536461261607603321097114473972351655540852430377196753394959067834788617118097491489472101302867396232377624141935581128738859857950094210656673574407817726903826677326920827558788774008002756315336297440565373991126898834595348127828445982535034833888451728383715948714640375170427708888152324855691144356397920353832012444673540516376293936659318893381704913825024600031737868278529470198275298882368939270900631803567808858889166118487473935944658047571105824703391470962946640170036262255428156409799820077626134352712381597555324055005980824719712789331049059209696406827550547602516386728153430312006138702751268316890139015396112245522936735601622595648466137199795721336327310135075594155657440436521522803112655438410395958581803610144119266918993633038767200518080117451973000002495690008714724372575306527693524230705178658989162487552296431654460740874893782220375355387472094686395676985479293363887663040488143307519186945687175679260311669166090241770857745789645265913701258004723434864183313188233651136419623105848291172219591415255123139572816268525441890036307569628262578878812082372401962605998416813343195346750144424990645109154583892726540244794893736514559848809696202144817144649896475864196681526736083082815788283643342943698677734303742124696176084358923112778903698777851656796393885081064303588757954998463262196353706687530875204558108834533798157453816165063753911840723002864153660639996516954876814925532652575624325251089407390138916562738332493300547317172197437757926670035214578489299760663377033757013122051381513388654707284284794739635360008426440365247954043572679192517143876464221361902471600400380123635678721438096779194272113713286128814198782737717239262889090328343549029664807623104156699916908632819110543608368058588033864825583797656390108518027394272268885017323651374276943580176388441769313195260951941178471914000779215357940823388922117405085731672562317944232133368953390720787933979478967297214669146377672401546977602088132049184244718903549103142762885759972144659084527835159231895401259499753525742272729708563426363695987664861298232355829263863346296317976385262142356319481723410506631376884167032899032216055895446073307314473276232579526795042106847040456694396634304811081758661882976335757394952212637488912052963714420966344606421552639295396029828063377212320965030020900604473738812468499954455212771448724037951603302836703453675111904371295067798548119201159229915670653474248397023602720320031264074615994482070454552570936667525815390914170463913184764354911696605488430104157479228914486545431802514819735144563921004190264915732409363915407647975218021838803904422615398638325945109378393054363341116366749241571967223032966866719605707166482268596763646054009128415311381552467290768138812291899772153361687706893045452046416965825070011667644012510349637850825615102755365172166613822595818328008837270858155815466923197668266562429223153169632806071499816851655314058536402659727724601929097614574416548278002091540011134723890183558299981760619004213588674078193613814892965524340928691283320283174386036797932482472226136322347495998446798512128576475712730020449639816964990346682495942857629977626211200848992050878769625554122637275053825953104982072921040490210765302905937859913683911586323415378528556015710635391365300609301101605269218382839345947595937902335413366503268102813562275237442487351993041654396814354558405725071743558256208637282549218576730439122931546385060442047195557884132787424393333800742980946123778454446493498133660448103034205195055886432760938988786601200003356237913684483367488266202670745092433971936181996467151311976083917825247128879428350443607349293712393716919836055762829009259014341027587961347046972788371008911185116739032192697782529253825039195095398735590913017239694998416434164415944284323025421689375961721371784548273516918717917192956559631989967203916873857878949830574429762462219930915252555417782263688315137437889123140956066732768701907345237090147946533872541438769088788487861283293511943821325510060615670802730846473146425030171010057368058178973347918338542488382741597680611234306002256333300653739088631193198292686805945237130632356959031084647139375859108362896693935590702360768926891150377703106623282227619773798664530247479663001935722661941194744012221581103261400932707417671709020975189308242175392465854993700975594467825787734067295093783551372612947412950697108511445557042182636062915462491816574106791874168847822952735449838439544709335215057007411069395420702099954401470962698760748567581088471493116459007265612465773817123339721996935461097129021283991143670120276216117976406826873404704494421602125927531307860345902981728353418755442926655026241542243920891897450723557402922349727536274507813580158847591872822611119956038174983761818164375197132774980557599956373199152993173643945963483404031919896278225918665520103508614776938512422947624546958141468190350655528231607566878247610003197710791961559205480810632282663398240580915209600920143208708552843264002509064978165277814600141003792594917302443947139514820252567301838022664042096210646578561392523939603697574467785179140871658820826322692850476821628095217120516351282225345191635604409044762986316552606958935488163791629750978293222828334477323819300177610073751016190522672108795541105924344115247378549599088336849652044634008507580297121750432212184877654715823064575307331659376656735292830736653058278263734827792913426012665625431057382090876835448006679221581941322050598509199877037889525927934923887588619097365090987434968922274887499752674961267719360143764362135102024295973402517879324171317977837819988035079559217357763768364504676135174400514704731327874456350815116192303015023455904285222299307417652528294308706570562577149533210742764489438702766467537734084216296467865396533603487992209282190574845378019078070879973900267946981382970405325667364077145929767253003292336561606220392728935367485169704129013451550047795750410460698060602052656920189990905382118974940266235422455705912899138801455808119297276789286467894718824910577382656694748604346530696347838514666145447553784303653906733964266420867462499054196397121697093972647516051482915191053544615695732944871833658848816394051206087830953363171514370300261189915349532011126453237658439668861686688718974730403414008005856592682582685705119993106816621682312472113499823828978355615849970788597973379476290262929902610070902361668561026637714087967088755382920457793912431860269328616911521419979159050977229938785310666299239936935046249825103099050958224882109167239722473759913412301977646532279491786060121168808099423490586598958146108837166587261192373214764025981059398806751281103436102805414233273181251841503667695265422542080361129101645337020471239412323694362916699978501035747607355927001757674897057050640521920811155681544265446421160268702146950714409345501991857509668436029384163152476116151496418107783216157229100815007371442957791818051008612964070547999034704324553527693776907216660512551020583695821449482618439189159747116837056133581704221963282310763591079689344133806737212631808587442505658884573557847404304670882864779809368486336959515096129037429645888701117504296957299299844528777985875487028813327764976085956019529533900692692834252283822915703592402613617510684696960597844839099556560916867487241069279033584617027137480251333497650367576236016007134465427982347358055900223457112231911943218868473569710913900920448671290966532458101426826876493857786103691923756189844518201075254854168771397322174869236760459735797972552230743903676054944972891639592148236391671141601048724427657096148025308106769647672073496042798642934888509825650322731856753450385416804738753541492270219239386080212866719851822503909323106450594577154454639751077430335405133855552376225386931589994378069569620354700692240767128282543139686592723148626124604021424442684731358799604077197782870848767290196701040437452141041360506069648662814504506777256068845150535590369587202097582395788921867603246027113020898146786016915108161121739960030945976296802501573954462943521104300055841981434697728419175769282753587409095878295559904620128524499147329430720440307370023716354720833202742325484043346627655527107260147950705027747461590781062744047746167872436471028446932639427364909271183313940746345885487369979967141943459809705950613278654746440214386111691004317498188858236152523776568556026565325406884724359356611267126852629366217622639675631900579700543419869019299554422692680751040341814936213848704821089211841192513978484024299919520670810472999378986941188330796822125318275253900022570969393892549874253054862075377079943612616706799926385441770880950771484780046492540278164705841088667818331177582771384218597753141236644728219979895052927252054561960609099260382029931846261418090138134491808708745640253337961013907175162891459170456143949858441904366225256430782616760383041853085601929632729639531543971856423756941976868351467466173930373282738389072684116066966422063034524051653629446075494331704898821362744302501681508727859589449617370978354051980635482703780167935074510948468579326816782559805788142326714457735973271472149388269962452392957293120324234901873499687468666117327699552177143171497509375822758516350113510375700546512011784751271607840643987608208908315081343719959845794253720126424049096601398960024105021362150273109570750575588752752078486953435267636343019899311763034319413889633911560423928120906390036435102841392232239000836907406652826801361069942053433857520250106478395830196232799475241959073991351645985503792425897312028446569520098283424051117007276284472947859099677284360314134792099052098885370102151320922755390467491076375694004696046626552358960557525326069756626933363819202006340105088301853745772742336242144051835188445297710018390720516630922159799391765150144378488483568272422908175975746689146773192429688927307377661717599171782095344294669121282541907308400726415760252775547364829182974737447654317098862315652515097760001746966048907673269258980207226578196377154796296356606047273289582888090060868989448126453146225919972930964014391714174641592887189394627743422282002178639785298448458615247194673268900795354657594302011646741479633956054939379134124168020739776270868630175213324353321540761522930721075117892921755340988564194232788667402689831816727504907060587805425858310325225704151983426575586636951782204445808047856433563786894538945337654054799176955884017545025252399006275296571052510723307783305654232585411619373726973081131939989122765812995673448830143992155840489606437381290233634795568269763795281082340251644793069979118465101446606376315110388072966300770068765169985649237012006868274778085833772691299555336581504841863975966347137161768571856948377282802499936892640660602543727159441193406482539474648979417525540312640070268122810859659729991462913650970273504630745919686814003811823877141100100682907096989555301656491837502587274853446412986977233555331320394408873505399129259019640741258159317436098253674628397338345587012902505775836369028110586124262165878250292745307224144840021461890496966925571529201193205731416147896584599655966579283692813593250413767316202286821574569376696068449807961111250051080503260368425915134730848818522490510730494424403038542645494754842000648960345020740743552975613045396822051832942807657776379172628186798302986457558212706214725926339391268165659822644225979335819434702800174734797365265016633282405608886559802827278276987100440205120393836681495902068395157426992031189410671238515393618033241332112092930347275112043288330914339140204036906736218298905155306495621155019883599362391206785162627410208806122118632694324474109911962590516268546012245322116962443797866706927119636777215691898040468799014279981068418194623031560890911565690815160228657111202330072913593120786367470740335642518875377534717936401106069218448717811639626739688036609729703079119103341556708673782121084957269446019202972609456365478876085323304751926301073516771274056664175672547716509144538731151500549502947185598446380719776014375722833348996437594449058766042497451666388038795973334878832740315523554496198097601306243348028568656129447286528850027811892090822209905708358353171137015355891250766260515498025069322885791457159130831195488610878564715031979847176630377686348563367235561395354751965869935985992825982508864884306540788238077822209635185487959129713038559150309640624398037978324219352611351581027616996924971776998227776687530672307307931277214536131704605081687223584799159922390655019245421109452129618962062682868480252559009404373072424583375221383339486916065351569490404828162992852686444688588391970293893054238648400865946695611307178869049462154534078198274637186606292214781385326240365888942442760139915008753150434599212842056126029621473295484939687440181972457366521931683356039986826637541629095599243386142810988548726580429171400828086770762906650806909789797499171251922162961550710423042369524406928610971832946673417801757125206690281211208616737322194852774927809622269349435631260546068223449161886129988440784118765301459954534785516111337933802988171142316675471945691376709816492166504180539563912614255549438711131167896037842614977196068195200870182948683717909246785028311166014442466789248627169473552029265362611838116481739974088758871583055915545512775514554177004644278348760105914411391441128452789789627590864512652201840365802048401231343778237452151887690694114645033187737416603150521839493425697196087295564058803587111825631650857794998759721669787663038101842271993027491340473179331416010168193255966092203717217371047370347656427764005115078815705454667106172809949420839570599996344431514716611690917534358763421732397476878969248652865820688580298765783659163502428700350589746872090437761145073643559685456431281186981005222101328839435354237757313497932099412230984964011652619361525871979514811504343177841364798446484794444945887784800079644657271304857151310539115533503809079326919205667595245060892713950882912303076377337506731152692664829359423554784430737979379258666905515649272873030408102530235716601994056439750948681775348666324809125731359425727059652641185529634023651254044192245774722734079029012524628731438472301979954366751792506446569616263135342126226202842619013568411031763744648024282668545709819140749609470463800743081010492183886490710548428559436899889789035397661416077497892860886188844441574463177062047095586486719139106522807007602001866034198943432462674473210771487349174784533405474030504073254471328785171067955495940710379846467448054282272878365861698985250505596649022533725393218159303863293443045149396416171295032489044541850850849902382807188216176007695215814263152877885169623084828800347706230545262733897853820051661562443551759221223277798340911061048666180381797066225817061391471740788485658771824769253297779036432502589155528116136120669356979315243963827534192593460664318115831230888416696656912756532194523438912094382506634975637605185746378024001218718433245747680343733047337125543715922461760584064951696414260992293932047109412366682243005889790235550261935999136052829157247287593998945986263441643277066283158498517557423980932161793674629765236029944509494111529330106666255682184328050834434091685746451807476944226174426446214048260979985165849213246733960699456221162095884927244864063993358752729107547983814197171580984598010051837393838998752981176372260982782507584175204755799456640862474628055450016999871213875966000254176681176633229904169484735406311125148468679451435468527413203380552749653714781591923911257924154052414053669374255178687590788344262974876782341688636641129310949902000557243603747780970085033975643141591319827255358125402357476404572393465626744690230437787625496159856743345615282390071457694698692191698299203073419098239268853454182839849297958136574386846646543691205413570749601107460051745806959022796854670992488429004535991916740940450350853715804281881726888816154289006205587074235749953509516816619022209174797246955957094667347846279564920241430608731086574299213476080412542058807037415910626720730618015723036424883265859460216363012363580933317519730783595729386512835740058502923694110196159129187429610954663177769176568262840145023991592778242389046572638438555966482156262829887748170960115231932168044970406040064887098785032995732317338006598329182279768639487063473299878497018627664610942253730595068749571613404252335186917972801569630215865438792733729235912027515478619734087437271046045306586068482364204635107111309227066410786041161776867531020933571539201845032987146551785746565568339600381227357323351736793660133071406532204776013520570158883947926784916647807767303300767543799801879946259615398338830726656430740993626708988120633311617937521205817845502880034879724657474920272986165951054587643780382317019801948701322374151878929171792193083237929626233358442980943251692495098618910150196547464031441764126380789814865013594651068105076865148949353239585642502316711968997728866769199971762728729541298807546487704473174232676104975954510643176541780688080093461425427880680073765012016818611394725151965546722767010709138162591551438859446275925451485834620215117499413182887685484913546866042976665293386359518047596092634272336959956266483078782200161312933963645013271247024147854654741242883798300299314535577169386969946955270650956281760790176320387644723452778258680808735955129243796534328712149858682197346932329094629087051491342439007454308526570481637727999180037002798444458838220667045824367012283882045300978770523920713870101784626564145324999576597404346379880113558553578080950176735944768038065224122875627598241004260986947990958257702728200123748370943881755299302785230932608716739231442127254020460603913616509947385203323265574033803445817396840236936627358053758686085426748157621045212709111581379660541985490210062786369545180666884103582372594920250543845448654789917808061671107756419094690408039802565765697299396158673107015958922422624662829847982003257240102703009691835257896317052716570458710403923833347331611590571734601360459039838744212517480332117998792275648852262267245118605951466494774400687050603198013273363051156649034637007340388633375912351028883866203057535877690435137907548072915491699952532504203017781347632374534801954224368231041573266725900228855164563655201816560436725872182709297470511733071058096642969280105000740254559306988607408465240598600455381998566478270030596344818411550841816383169262248963735684041842005585876299006550289406523513560745872461779891557233785862214092093159714283605073129844785951819103001988236985006786792110917821982868086293782488344691528914690932593913229455160796648895962808027839396948887784845535923973728241954691682431137465623063167734902637316568427502298160759945590113445192492093589156637012657311232597780055600531104384315252999993826084353869140803703806477171621260349200343532463640823857339204926994494906905305311389534019491850293671275156484350560772861848587609653124214941546220355908356775235434032492323792261065525794293094456894584732256346149158536976529198668502399226839114447794398110941371165592272411866954397569282209723185276721710490410680216799727049663808815240745293368051008580530221242143321560538515673114138204715657261211981494553687615376770160318380483880579711036406372152282178531693616392256917632674984380472875804582066086553085693417746284564652637822055308364479750347086811107890298693433119809517793052669584297010496414604289564798354323260868457754965850243622192372361684769572179839269218576099961098142300096610676480296535366668509478065949521824554351620227568509954456101688073207565249262652189303841948788870840792995198576639763450511294715714948006315570814327393987017795756397837583133127217885632503768364393088462326870557961897731887677527511842239877139497856824092458942078487782860566002542788765157353192431600018009827082243987680183617735135887364648264317761187122462334938570677469647251619817948807604013715382035736919204680775450635054491403198515153118906797185994777519912159020630238974964701765837197281521838206089638374778575751180587450544590626697015091062806535462459332886764041032707377705055501228152205632152962762667963261734172191059382213006653027640793569946118539356000091502115174471086771297301337534385130170835003432994096217836635559944940118785995194622269273489082720764432268639848985211455944238530495673218218452206907517524722957233762619040908784966115398952244137539659418115076822851167106654102016937883365162723022542291805751694213268595923893129698607712502143523156792409579616553444690568737265284764752595384211691349131542916201090224661723531899514017185269710872027258262838698574440836744976541391686704766004010261880326528231491617431364699895221471585731347965782957209270283100397277487261534442420408243619666244395007204685670114484198815872135514669867982739309761543910175392865709146348797926120857922594409415815161881355945394569535826580105650689927214522541978245223565712616867505247721378637119798126491031511988792329476730488562799147446490870054790944884087888310562836291044352022863376251986913132116875247508047869835953523422022652850065239012521991404391019639239766875353571662142784976045866830184796979580352583605987228126720064568387523045024982542520636240486411285378094857722479962103343488311906205939767948587542383841158627216435619865915118146600290998721052761605374964111648977349245474358484683333097281322249344765981299991300535032862366496352630889901317747667765710496557337556195667216841287259430825258546418071506965009163158570075805712267728033342512105061526801826082181010736995128244296984555396435770147482891474781476018019113823434525183672331759368036909862301662098906002721880870315276159357534613492157095796687517108333276065786516342212305051604356668724302444636011602281773402171310619373022499430397227184072129158882149594697641534492136593093919310332488360039546933490332222253416003898650972873776929835740290292389456918383944861194582445060077625717332565762100271444505861824882642542916447415277357267358733425670321530512684864676321892279848731197269582575599561024616235882275245619817993627055523172385209589969078730804892476390215440643145631172741457361345113563618423614558028363298779033826819437605600522797419100770271318358712350221550061240584699633937824065969431361090044976399424011646106245486249999170710534726203501976837797603169251061967665116415971350272648784670159261861176330382160301742137048792568258624765154806857217775865160654424803526512268406114603227388152240469085535528556322798717595106982013098658809650031042410087863314835244448818375241975457402142401339559904204950414503606797246633379044443123693969843124752719550619497533034726784565596231544933774487771338461259082216611161911353115319135778489251663043650069886166331035951068128053635447251600059601626219293098264169184226118532990935073268681573911933856537777812037620010590429211678534182525983074259496207792012949736524929733396299154100079993546342717227536219415239911281794365287530460709679366620436747108696309153650540452053067860066253165876443117304930836311472094078369681628319958157992807177670964612125846448867270992340121643418769538384507202249045879630453088531023771459832277799759946816898396770439395578853391846443028739993787875073896231926085977671726987991403614779619988561634446062405022495732382215260202132032048178847103693663847516948455304031841168021182594407636951226009047401678207966103006907795005935342972547840341220900419184048284416023693461774022513713416961851895237465943410283621364820011959021900374198205643658892247239522726021660434234132385429150351535877706813359753463139237538415205077492630868762105827443584841082052205912621655487980837678411378709635823659698730693188263523417889759604549204898550908571291957379893957559545863855199576749498448182587916345837032908028562046949515759071127318952275207434589223512397649387701460810382109075667747124805169754805072651982645483151332631451149823696395528875738802180365591847824758077293080908916558664367826157136346937454138077918659160373748819111484112077496879166298707530773608682037840711816824019577684958794349280743144425233711519450432421589282336846487591128513720183740694852423180346634509714768981051662680673370172643727584783396172489949972948485880336505480815416161689993263018734051252279990883041812766877869435809971142585173316087204755972120765548247134301240752879613760486316079760362304404892018744698279700495621758527769083408674514435529001239321703158191146221685417256059393400637881726616205299759693177952683797227309463967583613701498693046399313793914194045889186092051871103415062655536013287998962813249884385995683557490663561406336350941447321578129844814783881920333553956253888682361443093336675855567471043551989998590479844478269345369013593515087875521834328849288623544089502319891710233500394030588072538312330041885235675728357272859200679036193811330636664257710918704681685748851065219625777269756422044886960671253628470114543263474928168419765235284866138662599820841671578466182337841668793030244572561798441011878719310492575885723348157457679659978621032807179782550045830010466243091443248732856093444854410439203828510516093581211382249795504985737762380406636732256845749800155895826018113865855756650611488246108390998738115419122987068475390905096186992197772234399565466131870105187947759252743274213089753172035948077804552168012670489983796286926881677731947193721291521415800541450280650031093871672927744545717478843395335330111569249474548640650566177337817312805014220884111120748863613027851275601143514765847932157111784403999979712319349369484580720580917148905759312558081792469122647046408851969737887727164730021917871846254846489727856111458296840646649006000965308414289041017011914502683815145391296854752793666289553962306819983601947030721836702468900579159665342191696991577230269784395154693033684872736145848786489833489285844866264980055705813555644226636511368557818324083821490016562772810673195775467407425478260661403774161274688501608254209090207989288088328430802568196428337021853095597508878056666008200987636741533801044540696964537086735155743639300220646970887963917716132082086621129639540681339021115200526370866765642287422620137853212640699407025869927805899467158218551082960181343058099646619470397370753929315380174334692192052459889321157298059349079846073449305172582270190798864304868751075349395363067271450904347320029103824184586478632936781178105405868393152397264215825853218649123294230238329706076142659368037931607723354836909357394861516721715164368709621552345607784024377283241582957399578368070319930657752005370893793967209128640534538183550521147394044742380505812275436616373768173001472851476535154025624315326966054378048978400245944764585453866004155103053249646763346824801243497663792666608845637873690604418555679107679976298848539998080973066329936096920995020540862402698223341725067706735700455375322533578709105940436144328246399942822044545716851834369292984806279814441578027035460484592496825345208421662206407525215035870753859826277675883803918297198066810742285252171424234269221257965165385103201542783518234248589043636153959291376679021709984426141477677227529422646515317207119348778968712601482711411035654341222352413250144087901267543464124379387011714158497921776377138682207020760940931081472937242005538342431850777424900349900053254109693725392087977945884804628883703445152646254122250669062112761056945526093138406535988539984829159011265740660128805993764816386345228047999269029631385777923126666595455408569897430423191794417139910051461739809078414932910671236538520094203335256659941098506723679531277333448326397907490342988019084772238348413945934448541120514067644001462007304837604414113080303919176261898030481383385825026879492742470062328582181862157090035577342986533240779137168458278434457708491513310082699508517014755642671203054469177608692723501911171991721961698586732843886491924051676691007304084848721844649504782241819164168577668664770569464060416923553055524401264513148921204844937793276515747531452053545791379701978371870345385864626786490631632651211738651862168449008755714331331243918140514535245924067689934046912797148670635833356039526925407953578870026278198071786480928262225851165137972407780978183419918450764845115562880176868198184117615937537279441681056589939131942515532776544367443881085089281297045080244490439530918866723060450473317514791374890850302104907578048773915520976502430501217579153172133092827564964511175260980226192599336210791247913971313029569706878739426484147236551488932994434897623614334677665152714095013374889785444933220885197010214224617020081620322498915962817914170146778618161698777725040531035081372220933042661440323118436896588158900688535543673142019741424907242996202940646783614963908573028867098906813328500889887606381606416700351642663915861465057349938644791726518405099638812648297778040155485725881051651405369499625828759250405159626095678876548469515257818122126400754694432092018133192067073858008690385302071322013557565724123087830202825841956936529098942952512403103577338446179639020415584127477307599037369966494629978915930213100613788653977628860192852682207843751208374720373401314564937641911900138791911293878532517642091078698940408518934922324830185565087043191549172376306834971993511267032030605526966812796915027655733384174058621795737408736062526191154485199802561129840259001816616565887636673475190571031069394188283351513752258238087341158613960868199519577925980695327581633945502842637330297925087204493942178905487235843086023332121435047718793818148831631871181793649440720991734009470836079926776454678572645470537539316187280359996177540197011442747263431945733741650403639886683479356548341012339028399924400589133899474526113540077645584211751836259748338175974859060324483761466333538240817895977843679854986268340313290567348376152403640502312447751409362594887563634571120940979162361862988517047010973312070326815636533430241913080311492257721180665292047111507429597340520408920259863416307180077584808911338341557353548660734061400389188509923232011559099726369455375531845335119477090878406212948579106810139185315550904011952054052796135531792944072948428842132804538224511442177129590457338871244878517169461463969893488658621903579463105436847259238119428621276523460497237222036988181238828772905153365672462904829050599809261811250483559172342449615474682569969759261701835172120757274159164160435271384745032583630668515245232440940736302769340679197301082781156145574490820657970161022616781530109622724894290262801707206799438209939381039310718612969675449690927946343598833318423391812912342192147131400845288481887430242166230917313017442351862701167798845912864441225882041195014491400742080949296057465364534891297326657883013022820560645907808491929788098799202422726813699871478216192221559749034485079017047807680759055493096093913733079959129714754356371314437944999892996820846122921853019836636641188061881265995782479152068655578537792538807730753030453677466016400787232514275707746514525437155442922307195888491229100827486754402169465221827153660922452716148334742224125718908245521996788628103011706722906241936247038524009861851571917753248294037938298415847055438760060964726267318110479978000696050532534550105017059540921370876437486535343062550946139716725959109076869348666847426112399130077619655134864092119649583508723964587655337944943721508658065839901179395584081962510168353913416618187725208101095796516848870347172103906671646101688439134131365574233762450183498893044343478507357905000020228511707514943472359709334433784766343494443098273967060445486554124467811973656321472918798042159126951042606624967071997164947578310793740741711676299364744706152746150397144447877029024462236527034523697148523533826125491664198466726744733234122837034220359459905014996385913967026799790020544672352664900808890317266298141924136893258939577568713372321854820248024399757870460566642806478047846232698124477770260819741369819576690850956922553295140583875785746487910568393474131777736323963569950189466893396878980115298280306266955167724601880025170271822846421889456563018393686101226189893968051798885319128255885785722182680159212537543325098317472374163124842387171097468889956842811940625807117205144858384906477051085319990914900230856323320668736849756140320655757802353840660888082686311715700482382068804254695419227237928327452729197362496182608871426782656116127243983643002039429316028965959639353837678628611664464824054093667757019017743647227060447199300136432443438077399762041720329050827550624740798268347428489887644522102678079574064778522142725331603902774396074563461485573477173250113055321873800451291031759230103738559685053435444844905757832860029174046727975667874491075314973854278943667481473638113358054439943523057696250750222937623647471027441126178669755658560755729399909426350534185970082824523507354130835450383519368215345732543136393983998352566101444641528937043494115479796106717937579956220859554023894228789698405455040008231495260096432748483401119990559787892756582204595415853059476017712645488338210180816747360768501718564981038577015943824849749927996915714334820511304073803337289551023982816883617850818001717948964499811040593035227908659540138612805508319860840837392467777929537734228226285603927398044230368294935994774970746434507984690299304101374100753671441342214919242959944813350206479591321009438728206973940886638100794711856363356946297742450426998911704107897306677597183560939569575972440839683328495029562270442872018969489542122649496155835433839395168439728083260050291500296165200275171769950755468699725721259151422802682513776280399404671082556496546617403491025449620652776409059463966986004247868508398454215591172490242887450262495299024176076928974326776384740311187892394835207705887227021136550352599189133798560036227421322351434375490630347884412501357163575023545584385126546771230690650754210678913667334330863722718678934400736842050068853577638531810335263842227020782570043466305457400990126439293514092897673777971026750449886864504735364411418297713715637843433583558617377032339659105741612821306530884558316225197756315746804970398922219984171133401579325839811628749258107918842522432843441854499923629566180780921081852003503364426740729044444042038556724259100883485657190017506784878919895331515838724539562755339941943243679330922784943741314492201562149487622220781069840823140934714722394074749355398871661805416155638491175309589015354776696763848978421010521579144041312417350440864761595906526220576858255471734201420132812979398834032074982114360540364960653391058428991924040660356496277365350555695461327741875718164458609550142107588851931203061312860002751026161373143442588411147426723379231884657404024207258998015465187518012777865135547027430781118636189344765252422002447266930378393314691258165591968457524778572774797244076125450685123906532425525392995728212316896336427872053585499971288494849820547769290305880783048527441909813552460334385087385597624891522524257929689546891387972282543327345816306174207637585850646086558900691979497099019736790121558899453044383878514665790799004452862175712921496926431598859986071939078172576097514170701911376819917161624224334961335455743134309544924129971490013789187776130788856807670103211045148638176972031553691076831378525337529481563646177714391893808214813564753436322593388691619721194652275373254595046013788431736497203435051125399051668357591334813720773452712251719666280568652323509520267466289677577395538820345457060657677565430026333491117192175073629063580255658971337822471729192774006177600122404955465087900569657971697857643252075142782772335609155249243815938407444193264845496071964804928984276746925547532126223551140153315892999359484637127077023495389049112357888666149945928846415973285304011787898084367908093133038099178705304529872103663411392685274561056821678202879545489842574298780390490398671920828386308758174031181500737585385473610624230740452970305265536309058257397617562373436422395040396140428372393310741388823542111600613091193184309991256197995525769297307232276809801280071815913741713555813540105091065532282710300535576134613628360638326563248949746761332499372342139439584811489078137187885313681790148310435214889257732335938155823695036715261268567357325498657783610120780783351633294408708967928071852137368430928676358828803428461284599709378977985089891342524575265566947509156126120926419181129169625485144604770738845013707916608894139293439013470719554405131233849920593356137741246235458879866498999727721231886483368997212348460615294440234013631544130382824760786704086094666567278752214076637059546483000245204337703389540605774199123527165214640860760237057774623255095860146316955425132001103120084823349097140893555913995922791359729543397482023591020270412255026765817132506102374230796872940927576960886857342362411990641326842889495780253888765649780019295191364225846528033876678043430338055336612142020399674458833085035903509067411802234937111075848684752888116546195257294368876391484747270373276618556654247655934037467103577950418906551307153929629290743786334264022691674692466873684074759181663641244004720740532807532630136361073235434973440706281434723873826294455621799226316932509269316677118485810824211542772119001146659764458784064099188388613074744630075404673662888526365218592727140846969116239892083596325463275191328535287846659967396996534978603515714160000033957259282563016697253090491039382751985500212768964828172966867151933366726370657931975335421037436571499986086579640449833276413891975590994578943347877886040303669413828632181014074372090016382960729814395945528706120233859227996811968499720656339859737289746351775434775193885415720592787597905953709691167148001231422797051694402215006161271457852530344142310089728122062208811329175573326311335391732484837631009398906694820908281208030200848097761941133776091802321961255798795570810021309202431030173951823742933886950786631241327247139696275242597537782436444078782656731718618709625613891147149437606602887626481871345945212390652139410802786665258539827382237433332382150542175082326175678612844952059328486923306995438867314843406713832554500429372538134882340855839796208620577212827295971040705806454182323196143231798310463433086794824956972681860242976459386206259758756140768385521550588009093648025027462617764994490821940725149381342154888479000457049684396014506709708234437232158077163781195054983510339081950160079423963039769278706985211757909422973217579608809367908285019885264535118599131430354717626857693915011666606234676265670385786830082442712779099021535046329602253433787915687532189415235395246082838185933664818259238054248146163472612145863728821663910785500200245067328632427291904800934787441383731587772969931031904240191657811503108831617228960420405914952514166220487017296709692195690448496045881805441218836924931952644718806129728385217096093770090537077587864811294953023418855712275801369743471769514427927081388986042162740236910251980481493464697127136104726107142967191611215578899833043481384436098315305509739645252568544377109595338426557609573114862815278758447343913779272375885045663273550538059207627746766770835272975166164427324280727158101737279458090573420963826819975155156500063756914371341435767807039050597337332790749217607774677564102144572287110268243323464658458215820150140089323551852937910324244656432490436535008059868222669568442261296208286475157545678220898500242759404909268844771991936323685121009790832812914078965176257694693236100573014190615685515268632115121850928184585730524624620633865990768755562622981001401185521228020962976078778777151671161300618943742214779212012551818395057449690103114379911399175648545042867100638074226751579658365600707234967148387913275701686571552754902904150074534162706626742511293867068360772248897687214162384604477535629348365098674642108576915238833685630944563011597449743250164421676058248838335285864916824563943037360193650718966527875913324693357835957615435942212340982547206347659477107241747100438799930704409496201781768162330842708882861786659655466451989459873706702303045914382366164478548875791011099732699784954517411328679891342874632310342603359732450849651140715144943376721390008268982986329278674573209979370548511848618441881615191753554172353430190207760971314582674626014828736339262860742396738959287036933920077254638188642577377078958507252182170815802559986609919789674949218533064760871012452077686747954021339945737341424744247344818906740194715756763214234709629502154566886770286784532637952979054733895110627834656228939716040025435516750893484038021682895701298326033340242139823121986524164652206016934673844421598943580496949289645040383493516846326502933803178981359432977000635537871986523640009904754226266472680207062241546022835602147198349133078222103526374099618199661741124165994908131830563906189370034778152600515552607410672784238967144536539036001574895945831918898263814443755395563742808207327163035675370542410954914423924116550019122516361171727199966168488560749167707543864319821911986187646976669879314692666757597638201108509078367860819036040402999305716396280798387577868375140910789148459229328999969174975588125269132971235398457924364805023135720609788454386813708668183733639294150833593977313004824189887504252977948111604466292159175419972810199999365613349756465233065188014854843753305528134084198669054363383781862984671829639135010928083047603558859091251574102793733111459021023492005168258653437942983021493896122063602282725296420321255504259542795840999500886263706604036956996527545264430542570927727112027669300912474827160348030064916723431888709130893656407886948715362296021444190482692517816984529088901421291981410634010281254311801892979253481063508686597630682341097985634205589642950653462327181686155406060993924598261229192345055226760341497730784508268064612139995164842046202097857107462461356667636623159056038377580331650802903843658619644788354125368698216215153648045884482409975155097144914936843389583159869275142131908671662195190730389740807273353010203974587116162925930554445503635487275900775402988514367057015863269747399079425978725849960020276877903650226933005303387489673700428326170648153942514295971448025244727188505218419406549759183761067797531542190481575700422431949327120630417538498083429384218688976670385372767567172719898353685799706965905756605797176059791802070402916946945821308428234565868915048952547401760514793317495925903159241656525124506266511757398745091631224848285597460718971410071111793546670608310633105507809664879588250176016119649939280460634422042285774239177142520608943382513284975594241682012826937962038111499067561193426328338969680793595589809359358704093760929052312400639728750036976869981634265082248260942682911170992357568912535299301115655837870114433928872862575795103645521711061890527191101234112437918073458444272478733467714691594348013527213040088451641180604883957095081179564315465639877591734881304657132621197335375312083117219072209869019987440820410688078579713495432443171233202560398498705631462438001848510960067000142016177652089931119153006064787333289417322489793216790848469888648232484905090640800945548277741939220716742413140527110082432214700337231377964758888169145488394428940281879884927974507767018447752589896529313647446684428577897226823281090833785519961079168661021547845866226227056768746743056198612615080351524279192859631831454810827097641141537497163336306109257697695653297364541240062771695449290223856716379790690245506557558962320980595181575204447348034530043501082835297535546492815946019197021166702534411241513743874965142258928541646152206636137500688072001793245811018549501573473108400833416021405232662006536719429587781713454938552426948277775602409972820718693271976520215360148929542985716704423241976386578373196858270997683129096256064663375843972336792488781775454736392374315980025041219809986011777026987685232846220148053054979450703517207639378591588768740055966362245547721652640433048696461712001505747651478848654122816099023082487234912869017440410783051270659308159400491905341131003909555271634161170674645873654306429526536419102243828809650597890283943401220471178732717182188677630663920559952643971160469955456708373680407205264799430664390697271407345955521228204719449150605093923289240735591769671491184869007871914644969821761479959858315099962131420380904064465168307891224814110295289115535003297553936359811697558326649567459863225037613677784764599508252444976617048334075697120765305686295802732818762082591508492775895872131355308681530310395111578948656311965527480613793650345973122895011010201933411096472829865939286145595261217862366755790813708036491074122171646754701515209869236540729795586084627052639329926073532735307432089810417462973370493677544432769900982699705189080380010354864634710113004499637506447787974921070560458968653419114205338335587074104509015512233191694448384332690162189563409712365749608081634556388201323769431916962824847931064415607903975052932770851913558620886205920187962536040706871985307673224444902690977227330111510003346987920605038674510365750100493563948892637931502899656603261496510187418426989306416387499350569433522856467385891868052265581406977928512323795107538438757882105971276029658631797804358521871817799911035547884217213840678932717060756537659460423620295984289418069568982312869970869147821106407489022211735083001956162822854496637016568041363489255129889847470611826207802660872941233753358351386951990188570120654213430610008335545514137838426858693795370955224156065877341353169295902519876177793598018155586805420573623749485307802800621556827550854970765011396525147788590643556455151008342070445119271423204706660488496476541907493560549189010278220232085465015041017443975235939995894143314337174711383571652627981533244164433251766191343812114171836059374378607870451041870954430258284276314104595342739714596748111910737196431258751478688583489407562502155365976999472559208803054995537076822860852104468429483879765384226354803451198867256044862792695673295941169410206112764968599419099992842646209191179304883063472597890918565365072280758518475720869047142692433239678025580881609334567793385317188310849046536391403546542812226069951938822810555431573327574890133559036835231118311043698613442099649905545287278286307837967358302486748552629587074147024764280124089054593260109211926657222710684314437043453238149079961958081515280697366669491803321080097811756412103082866153981313440362163499494953627500712662063122297774960381989427120311656418017375346473315879506426733676102362565287103110437724465734409426787869707101943818249355003494687035497745576106192968097973418285564249655674572087964744869970694812115780184761512636108971629810657573003786139705650819259583215244268824694275934878135445919097555400101718706037577984438073802319216478257733140071584339637426078911090081186583690121612254334869438638598741170987109713699575367411336068084970623954631020868697547492144276347115916321024209630530614897946488945549364900854998522327090301566756091079747573363087946595967048531826776509058340348125908043099723900280227030009152848588161402537249344238751240175461655184027383416991293897127289359983098147171344454569334765629733562487640727203718107379358427792385424953810607115316728485648641975192920448434137886370990322140560732408890220317770794941297273872062218179371642449651279975568499804654126400827039204992941487083457891046851903242348213296578547656405586119724599468118772460928111467257891191011401525855417867372645430077527003274667141890377848022278482831019435116196281622979836905072724757945360830649021856301344812118736351416494138832002894298335542822589586591897846173252154476116769999632466181531480500780748021701753985497696156661115381380383029381628058507656598880012303485153391096892408387035758495334504300204393561182554157192786418159349853739854288009881773301809841252686488308465518171171494971756918149559331252816087206701663020596826548961824307542462959571447274635702126420158190869758384745768423070233322437079793155366249936361000387725258261058991886003562209821686291162184658565797215748096316223574297228062941607691398936995061755865132460888805449900578167215837666305662838982706330804010672214323657239347452906274790498877094983436683453083923355850380053906768639179404659607659524112665763946253719011662827954904495317826963974220493470391378266498844448555060215248657254791147593509858137589568604132976842894376581169363634091088524747930408639221999649803686079218656257190366377396435838594708325681610729419498406874243552346361901322710403858217654896133078636040640281154570737243650656212190295488662263215570885086190061108105404817578879250429610079283498203770700998894488651847328604220015444580001473479625749336781123035337889327375177212261172942269846345469704333602835705792432676812800491847482079891780896060278556732117224757485084341471383379357395332822617000930555569739205423456355352475315348377896681547393397779481054323409747366530470575115233517826212665849848024768206925234295869651349663128734952272896153836061036760597016087428276300405840464749065328996422042116158304777840200450480929138986405336732667118431034973798373549858565025586377198980568188928825087605549583234595534030799543323688055155087140554039103188677557120542993734520464443008508527509554962131190994495199986299643003688590052309239847239844429277929020071068500697479831782311295896431793116664898419024685637637109036764723144873219442894154895448714828444208717552886617026549017331868938856966176025249976242357857616088093527128757822196489409752129027074193456403495058042376157006475612923505407696846142957946395980223615148354673636253868548067135527420424715573327233322703500667345005720592798915191105806948158985794726557218111723507110527734881164312753019478839616606733782731439878600287368906154282509964107176662775351817725695721426802416349831883308093394562562170711190774100556745937494938502721907401999532522265077950250355703053873606760727472389414325221690735810745330575388552829321876523069121433005561403654040216995944044924072296702577396228249972546309773091001130968532849210916012829856343208920140524672302652592750764107660228219974410528860335925821834456539676949811497729569903022966236000092217823794920025303444048571405602263513973288832763853131767387366538095795356491623385006508091519210569941876735907794201062562172207450563479765594056823456610477428095438769983831873467332504055573331578655504479524333214080041080262558412794329265814402896428200544971442475343147169035946603465786928690601674256817327755104361134373977982136233226514095128214581913451935801329730324151407210859562755216309345287553962702887313095073873694076293767501203365641169240514848551153881233339383921250345694558431878788522779205697528944565053495799857569924434785820283162664137417193695724812304188306998626638865536714582757477757899999537159029145814017403769195175820613193858897146408744540910990340904320830475534744925262916218254143284881123583293982696355080569434798065962140422469918343084898950052264719296538726113079546373966435323153767221154461079610947237975156702733462090726728013091126162078063548304274005874659200524040961884752906411265161285899095537020629728722910600772488135847681532754260460568452177938191061567210897918247621244194526979746610089348022294003982838762837355687496219120418991261290270040910094320455204400519753340365588323159469933900222223618416435067579896106046230055476721025382233472917532383173888964267766721470306555155356089564675761010159284265141786326000191486047446875605867440214468953217247404456073314747031613711113789505663976703660071378734177096575289586492345031179477110902175830333592712379624871877952639582099843784231552559950679155540226109985133360443811435695178429435174627453914047736856847872221490243011122266769119622632197657944172242952598707319315038752290908737839557945673171658509217069775800156130365293264789356064191208244830266939904429454506305121933861379905871873318912844332298780527735946376094998618569144722198509123097735120952042038750173373057931583824189773063109121839642624365452025295494722589286960639196043117279228211212571493344266910003630790396954736107591070391941900543667640202314930077442679482262985893069407254408915246454988896975895077553845627559925973272678712852039030413832115684807361027354707519516787111581637391890803172771046037911946935130767022436862195981693029695138637036985753705998240230260387004319833083036905875160316652979453015754530830867290360243953197082739118785069496119854947413846228681721957672855430735945708690772300639260403695418953839588808912872977731499557862573211341507995076830485472272109721743274555985462592270292914689518118881175268481257978661804944029070104655835415641936783327917376802638742074536331380405696355071627812516600195111153988404104562411643611731680051160276313895107312977894751734321846626364861232169154484996705719130504854684602994639816873564321446056285424756048066997936428665274841250594231947286033991301074184667779741274111897179619186073436601534934994455120600544342913594288844075276377011025293267390190014891198496876310713057062208642674648149726247670422622445564193603967466288857623856054663792715234772698259180604669237131469935380323341874227529973317756945737420418114748013106159543170297846512199694654697468070646950418538440207476918223879268505818544666738257734902418094255687443934159043684768109825804663652961346541142842185259860556531024610998021611118194587204881326518887252400459148346168805283194558645735117471541132593252145389261478922197132539833463506278726210816198102953317030818113008826326570439001998735001230818532506528745106702774973134586553584113247150124793800952478369910201238460261811676403895830827968149046041148096298570676179564444822963338587045815211707183085868417632783854063584759133552873882414520626651645551418240532683157996456710431735950311738826942028422312746483526977042839325207734065639013680000482042017197777618741648058072867038060205059684562852612580171039960716663525927405594417187920333033054038347692143318920724913406685535383141040672502821965806683963930571689936352525347144148928091371379196195581023333477631539625104999152898780123733395069561861188055973320966758718448274710473890051772976175985856663806656447168776295405627076561162540475817990949560833342331562956689677507651283402911992764017348103820310904155717102008272725548396029331666313418769975081076853666303713029717930489274704255043724937364422925736053339532924902477745660345510204073000604442055661465404884614918608977466455925700861521318857779010642282345765810314678228154165862039852931125307696151004651058184346570908803866578404661069716207880127655599458068323692326652176607759021108747174698702685332121345079438847858748285208604529929071205991084904261915466852329134176201752498299445952441729402544270116556270278549644200216255168550857225623942252823904661924458974370985202863252279277488827693199132291888075277411918894335853470376163623269169356106692509423488518422800883339172671896510840721952433118315372058028588890960934590939715313335065131013494332086484230953150981000128822890619127513551348792385624770555730492308943393665466778311240369495231461542880581177578168825210614769707497547639916989981192857322745243205732055152146163969230711649907599327491101388690621417370383611868628273479242830327714248116537842285182922295639920407044927520708920319599846036119039298372679289922076014032264531140954018654813962458080373936996650824067463700406148942516370991197777581108914063581364643583710963879743106292906369901551602656468384003586267535091754371933526667059042400681799377753955963231306505474800649238343402529079324796945507102358048327304038484423907353610391486418605186873650765980356016272440796263886529555168915122396354767636550503032141711155640657153741124466176660129900358971086275277451788422131401634344420920063162751709700026686437172587952091055423743442423094334592676591647578931475625905722751323372679535893254518760784368183386513408759472921232746246101427470055518605572643032443434179545974369506108610994723912579691819054025819063453778970435103436929097202643058810517467003245123149519365628011479635891457818020866077157304483845011138825632864545264737267491931037874984410025052672004093702382328108695634775326754392052657869369934652390967487636759774588085524578434261200156580219590903930338534206116511550067860218426936144359865203760586935587657668634303748150849018100895652845747120502493086180187353126123435384968588833807298335961036860061875662008372175796765087434656563093061892900075028766118264045107248865860010823062673064714663806272889096337708800361890014946273703155932344491880336346285524617911556238499439360362636774726153330561866840340049836879624815224626525419637527987001310765719147898242814848293920241195037840363563364008310263774743042209287229354565660867209641626417861354629365309727493104327264108520473987706577913576891553184306458390766523697632873835810172802906188813498496934568960452958550123958447880989020076781124746727623776305140745696395604655459642245735881729973515504453291141467520848815242366625116912440629255261940446537439470102079604131059367233885474747372347150968444992676856639265295517915668389558720216718358245657399990747725338920131031017422456799707206531164141682782291370395493070268223755184090148785059427113111355714401352612859797445531855305561166301607932639946796381785256405199368290587749672261179249676179512830314960458591794084770991331337763479783589108421250989409492070226251874828989409380134692769174532523665411778247456383282674069653155582020410676581985539098470814116714210608195432570473445653598550132946653520714300400217027592552657618794923400227076154151943279958851018210089252422772698774321877238803511297228239529305703255690187128774302914519044250704465063406955471024774557122091646046131825021308998885002704785006882339787541963126958822970068406760843372525371986866539053451808175006116501324883652017244489304221286599478114630888182267976647843447768698289796124710649155156752124860176115913146348209509781682267468621993009205957134817186976015646004876256625279191355901341273395493451065567093382204280885106135011326321066788596579601303523566299884196121501037806390709445879018366123102068051015870128553212227807632741564484280546139815493989022940895917815701331961989323290676231152567367140130251852069218493253780897804183863591064014180980390774222426921624709213589905678539502122992643216013717072613209364305106264709306940167323454327215490441285690771343400686234184901576801290132138455308798217821658044521424018218714943120295066265058251174707732317980048956782732700903818304284573860675277866770683525360657811093871697099003033912242248088225655820358071479816951618517039495805892453091247257032666708743335182151744750392422148120503497050288833839507038173827996185238460821710493420447543585358508569129198793677472195052478016167264002594510583099720639004554697192617919989607178851803366802610806859692511165042196652965138150590885478722341391427111729106218073834132427404653165615689585549558516029754780156498931139181575805322252468516690828249667187993703524568585063653715767261591877142964140851246579568472506628566417543780192672644509450787288666914579609389558325247241831186715826735861125791013729190939697244744278272068730684769735986050507896310653403587872352528830201371853796762580717200018418188948855166566684868102973298034361497419193407698232642901456683454656512532450482843519262801604957211120453648018175085802873512157779609457121748352673946653497807974594025398433878667192784881241833823494798505400825104466189952865221125084739462987405373582847131501848881195938810193080704104812555531553908644630305403534130983628251351201208254912752651875252333119627313447854409515624379324373284031762546757967040830745253338569856204862392782147289120024245282346018599646123432828933727244044014808706477130250639187825410204374708905355714341298155599253209604690884232900602879682360164874548412134181823090560434783786885706342399883812003484843757764650560323323453347315399277342316147682361227832097154867717268554015620388015716738390032540753335562776268432030281485031890614814251301744985510791041284181114175548992813376822030890890118318345002550029893888469504986437303946349575249477031458179221547813400072266701833216602160905272322578982573659007307897625072450704115536633281950771503695915314039038518572897609783914224335267495921179238403580244950290878016911438806431290433492878934517112435339666634799678959631644029299214494915854190196367123558518491754609549218768182045442455700684590074746002856894326084279462181113771833014772814992382324068380314925594478897811970834985020995303899539912824252191040716127249141350192939566039778840072741116431567436554484559244404767481170525356695895266979351626656136764972161503227129754497923281272717192670102043583819150002302588902684349893833745020128975340030682530658228195317985120470564585189451605038984158401649382890152958991411694617751854196203016883128150528553620214085732376259319006130015289896841507096606276925071246467796651037773089967461178689129265309128412888003696282018902629874250340441376336913491794619351250188617910370131863136346579081214279775228745721379921088157837082749208801381546268381745072365231077490033628908276513410345193962615711039409533813305279778680124064488882304901040662653629982126091961878874940164650272451635997753173297955220038647248339112012138994492163865543975033036375997249294638543097534648920061053812385542957608070330457213253636990400309116383730340298843885546974587254044882388814200340586079649549388274279907071861639777720880180508856778922363268032582152496534951116277706865444474698609511499025167653922500688015327787793969725396084623152615062972585285627050642399237876188834404675885049301046163225934130797052783156158559123068709368403696260707375044462091012920108606338036630499813854589369562668757487542986912519536240266329505614448103240033974263042880419918620203753201844078229432949679730664011419063697627352613205025452908298240692342097959021582681716301059115278321012827105680163803480325637719897370000794052673479283362028442462496725660158872211942576248338122622338504294091710253317662011203547894114310455467667764884086285457093242067383922479628717867837894718860185928844379959832881582673158428953283538219759215361103487570055634135586647430517542148160896769829190543867450513642731569937022061990184412499990422920247426686299635324747575268743049822457669306453357036598753166855529789466128493603653463184289360192942107094117808036500005434211114255271133978487256425949347713348790863526063639201378891297949545582316640408908384600658830586952577567171172997632119546729154982185841618696401151906931249310814573326336228114884600005593609651642159228054143785682863643322169480479032978005231064025017633706986496119138308679297555372414154632274946966749646226266792848347127711218608542745165538555080241233138403320471940485494603953147709820050508553602600393860079872348051347053106039716765597995657101383476922736668957381403547842482060403355389368072346203438730316214983071001754328458952342684377167003071259932684942360807236114700548478727695889828551791730799813618305866426747744401319636743478839097828557391670025951125843596499003159620156403051767143011013494425671130642404448860047347416866386815756051381677029674989522694235328046845934580997052363727863161690932143583031953792846720899327571961115089803958011401430826631862029290926991586644999656587718364407234613507669549980275642042904613864698990715502873895195121170229187749311298619137396084882950869883255944586101017795090950152635278314366580970390928559089486432928611157407736840636178433888129468419670640114839909088328137499190211988816364549119277788290971302183919609280326612304546040062282666626697088879205462240743786164004155318859998231128828183772723661278011153191047203003439587465278636972350539301320978042497033189236360687445849901693023698612820553024635393275676439560421350236783317506117884659091983058923265005441134863698640011658878027371583390408262185120570056100388929701274718573661521260922418368914877479266375754937748286318860492085265436934732264807709115648237573360851131362107023333785387837389726947693095515725261175206980729056206401981617635155906990946977800859676114708102915897596208376400241421573993119969626601961018050461028602940645714783335456600527574959324969191413907760892548239459880673775797068556366174116908010554802965318065772592521283534397556465154304004093764694278555884818511064019465493182959653281443931144827752039026673773142869404656426294430510364506855835768758384313155690575192914534429406098621412077585232294979504727636804222994425451921973720499028059030879473860402921681428213552428915391477938751101373885537325216359712761966257555705428167605429873881819906661419867477812141171974012568313541570489479113288317433753986794884006623296799684652110370375913095765593641187235878456544724022330238738432112791492591547999370744124608407680517293627796771309888776355939860662113202075212280115781636637299331576474604560309272226787389424206150633142837902645979627103936208010284240657834031012225051166494895141212306126464556060559428163923843489031460595702965418574446489828768355776757666416378500445608124772318134308903899932729601418960694200844568364363521367780844562742434665878182626154360398941637682023715703457925092792422698187795014370438646881603938716655114293492035488587619880519717718445792376807699242742342468140949795208407855423464134463853733761052491626304902691185027277953467754997196406075732798302847235422921758498367119426644283760028099284096521242858616432614906473383726215718733558340147161024654852551060525459639550147365887219314180053827853831329073197661150548271038145126685834804600088894321751477623322681684880753715741114331475966042726610591908222501950194297767417845608543383949285670542192896627428543052570326871195691385880383999446830979919233295676357239671759365946704673123038862238702321806715849792058611058495511971626293529007200057034652014574163366626728851495325446966628824243973632997357633935693600459294197153843410567806679788541776808071566112922040057090141640027612256204052297288851825081845453433362907189940084459764857866689321330666737400689675996431240920650618907446055286221210688537802918714989538153187198428421048333118867197897829905167464647750068073685291582894070662678075439619999059616107379352107113891409423394047298954676398872817924184850633823938686250254121452654640956377923793642201050510575088561487484621084912097914144880020582458528992544502028461244007253974459885671186188315409490771386074096652823827966282577361200312873950639250198117988857478297648217036660545468427880627527139910339133835937266797596017304038008172295622413724516528061061091710819321046074991799158507070617694407134799774822519958023954235674817435763043556885578181055592978499976191968142876371764652293411100031475457238950586325956840110478097674886020805719856754512638187133722379993794118935006335935880103321757858391587812526215334822713018307553140066098211005230327816272814285963895424379475580843240372915305932080424835729445100261010359138818193129800746634733410203589722325511528300348683695630854817967862701183883801907336620811794114328054348360077701875700625059553725084493886184844201806934159803685169891059189351695734739014038587943079110343033853211472419495444970235605388480311331570744727162660150000056319140598054486794264363014139635867774827215068760722412854602246361089877911644904988470534075276717260654784704105577756318629719909179754839384977728795826456059750976605163453256757142155206614012300520294781107906054972121521862616315009194867678113065881510489619916547648657100279487117211103593586123775303735225634252319492339388060523462610509954937950426651545781718303918831280556476692844881914748140325604942384111587130304279297467420138549894697112557368926220988406963237655807303798626085644699581975146854097066066273295057981412813060598214682512771466393743594727748381302290192875813674054104353418420389111500418519037535492694253028891767245037220418514876229379215903882508300561007658003213063050295223076983462595414677786446441451533238325943437143721081395617782296186169835592011161625061590939244597486239817854257631433641843054469974623550226674850438910429244847324633413278155704143209997427880458167791039828237451093904996871969724712530635032956458855621813386136174993250070704356669288262213986446880426142791797172902999600902863925131181957727553260104840280636605337353311486171404410950937916051911708002053909908880525189405221364135116286215794389848772767552389598760535215897537204835484204183189153745582524297508449443175275352521514397734105922252255706223464592053608973006246945009859817068691408811021109229273804134851863562649340509623958793451852361097799995857171221755398895123863787843061833774722931082072063576389658625765363333806294759040012792834267633778395459498135582028398834761552231694949863294603893928705499786826559509330972510230983119732956982770106901308752836059388226803392518667995874230423769157072498655852136046513213565297717792507659516987222192233385490966860274580021284304454831154202337418885608589924630583965988821422719812821220200090784193545144776070484248541322855490201610157868834627542979675853773198246856637826885418983761022442933570713192423683977717119528842262429609260585890847538955152850579563446954678063352487521029359020802241520188820241220553347524661599362997417410432519001597704538996347500823450002843920231958963220207813401729434537976485644388553898387786202016522519548435151000857036663990989084978191990961695077834504895089429828555489529063461790194821892108365989415632065176022727833494022613396867844299573395817224093685993242731636693755904414833360133921392173418148551566411045042653266851843279140773909662670563657430894291009801577005763103197271488976507056677020710525211756633645829391487711952772983500900398921493899541567696438982862999214753890304567003222749044292320457616029923146409686244941289278470742937221263265626402908775567297025625717625802749239817344027446967172661264808740270555457663512346776388059705507435131734657194105466490326904256418637612430842025688734138691504166347630182944857877116156534276162603529206530854647054199670209124055057019967268902241972813025568983743479447617470508176294389651265194670501004490135121955742993396601603096725977764263962495323252010294263040933052639254119726534748866203521863188319225179725372644325688832426643040852210138870244212923050689612934948031830978197596122544814982887767597074104027879675640661600257175831607574868236294848453818277355092746584234417553925331063399258175471845885666764702510729876622676749354006033176746068949215709923073356734573915605898258556584000330640382904921410403958706680892300281744059052045207605869059858979707166826554607174366032333181837893508698213023162913584553309711499853760254572232917128766361257577675621230405599455449196904477313519902817579513849426699297427984879582160494141141393716332915598711578275029126787878612107633583131539670295647260298036715914581791997243189079617270370374979641422430876088890919974058697064172626032078961371632066570715061343847785969858628822868985416662801112705174824691204174594923718771506946515278941777832115876074967099121871860977180662117202119683031250105311976056682784253530767381858829555674162621218547070748779140228023955614518337793082179956856956034764488629610451858143554399272789585691570091538888357348175431044675888978093877354355344988265258762863829777570951764091798115522031123421568560767209771675213007308473119657815790011905416806040585022477007231427763961691171312925523180570557204465497529513570403341527396457692214240226528695169497567491658681316124940040593471797665596934319190761563344128098220082413559315387427128840205257870769984952502555529232674711095669819373027500036166016596280110581924328250140814865427216596566307935622276559588820808129686101853073637238720001138525967892442844502991630879907464407062313746395361985326383495702863827348926667603205347408156459570430243795034679172385460968118654553760655823792004785006687516574137845790414409198203100217763604712097850850211607103840398126434962516053696767893218726137936559569833976704444212811673147044213806139952878385798140401390998524953606160386567693405250592535058818153961143498861603221922586506733455590775656120405708431174592893629451259487263898430232956684108167402401572117577218192745024116416396204711488865439721038260817341487452689918749903535279270287232372827530685492371762264175209001516894373064702155220248334557188688305130344129403434052934282453329694971052325263097138319643135900256663598114627687525783842790188796297752819410052091848655793682602689006020184624023169206972037575235210917723523284314574145759362539305041375628517906032361864637124158941516428081929179652272198806065611879376400831303311273858561181704588291196851270604479609156109949901399336539885136081854625470713820257612494569138289818335901695104572177550142844148034409125757709873202183147712210580277393735856284217356194409024250809002627519590330798026003476024748071863543289591515159649173702453379071904226541605514452399827756601185364307480077751687250444453544545495009383946738131945675282502528465251787914254481191293209904539214626436067892664932501495417210585615080788490329555265863938833709093537404636325145530609217762926962432756405719354368406018290752474512218160914829587693675687776304540656000488047043484441330381861394797571368825255286590063410184470722078491046735202717023815167603734530129040296962030975277136499704520115197956938353453300169130712637402474739511174244438147964249304762325102201496556578124538740066349087184779783589250268927746771643540789557010237379648734699564224997023969418328270555697560764590334728184216359709046632111353215350777551077448646899863768888180434870716394978980288899134475435585391244378904406771908506307122020624857948126764752688683774763729949332236327041195026346965477138894820117774514350130852434549491688790842970990780194851929839733103729395839946441118969766522841062668029038280841189246867041258787964041998932883148715968165225299225546812007738846072398497329542853271130607580719615255123609260286118843067405404594640639441795258515585011306084320121877036082988495239798296907350532837684444113041016767133055366404604846273422810900346965243970262232910587212888703745549685100719811466444125492532770025052862833275297011873493031116510943089247507894830413237826410041538807923240446659795063066240283841528037526975635602028693175361168471780436873065952154761839281513438769150634362934788249073398059192694301052082090949715212055443016082581664368637870171726868894875340863500633145233140760101244436496311266589159379332056068617837509804980903321865983862832235668015369560562548163965353224416381891212924299548040116550657461247669605722568817483543933015849214897532127611904776375449570229975232263162434836944706395632724594460454961506920437418375754763031476661355912162201169841570801678068971587139661433289800204443019732150605030611758874447586038327076045568105529843817687941894884122779355346059389014715473073124886927698557466510101150167015869475122054192940916757174018545854358741601085049418496454098543584632636596570456159298759661028513757787506699808698674073712903425056431467866956807011889415286332188904168653284745579013641298446192612643293350777698862104577189317682459253413281581649523024753775299470978966537433448480269817887842510905792657947662875856460449685170198619425833641363331170978318343552726457165471457407168005183612626257333876185602639683204014720711597058124029652082593585039261468149084500045914374416921860170810535283419086740403051282828892965543806998842354591420603502406583452773862707236621306820851463878294664129513835260849874901390214825205538112794744900692765770318752464690215912746665423586828924731584949858928322615688573155205063784609294947883713964470534008777621291802999097513385315725446578760084147794837254283329781252797483242109141949190609501942059318527542756163989591906065401251130379568954346742602845846209588134334643016828717745809348236675090323024155682751796619096697860094624813644383623268642398556928079295565661720468796920281161638097635918110431941181532453103023315512337615947609759148054065962890172932191138064042979871252056595385543829628136257506387427454299957241275526997781554949484828036069741808157910887452751751748606245777108415551214907553668317428987356431932912751273186939823865169847613053470391805618577473516003245532949689656915190461583020018387235584302524157993616704956132060633231829644437884631418332371261607712297411232089516913739726843688777872039258565538031510869187223679877255486873058225809860600709178362277821250998788152866034049225976648776675474137045793775156337664781385602286037698801199724608404802473965623992927084795810461603715061199458724136063281411712451309772474505060465502923516068705134498235499868726725482240473589041864577294435174790155938455262072984709648918004787287074459541208809266855937073861106069222378584662823713931795432856812238650512897153819657002681353425214138289719752438698015898392644779524572971403968197194073360356988972599203340852130281060808504720580355898454239094853979704879173803355217561345113916447072907096071530478365817543163751916029148140429976976523125837031306519004815271953223386673844413696722972296994708547008773022974498405473426848541885970261378395284126531744000874463032671176818104002088790633492540147194730899265395289314191385493372934059948167760541612022948221726552400041759822184902681232931558599369150894608129758634432410221327877266743743186426154798533685573512093544008485631733210750817047382455856463609772098452580170098314260389080237802180121400167937751017689934293761179992991385459103679162044815864789508581011366086481472747434179511473638005870997240279629557850087559206528842538828345424471038221690244056296916911021733963385263683182649007464216269766717459576437925407382640890329767886912119357623573163739723339074022725159467057086010333018029005661323972489863499834062144266856984801585619389210476270915973659106710733630877652683620931601878538643432999308673178864554228864976842476098555004667530839717082814770896520010354202058424250577602636921629616608791185024556670060836058929663873824475739418879485036779295802930552919576212351851724695035618566606172733660378743304207300072748649690231045774725926469548237737265572611444450384648411624156099867307787836951152626460629741158193039158219958165493652930551925982787619235890835154173992421309012631304479250119570661870472726730349548608077866290708528017621345382557111853231215035201052758309424774955842715742142380825920192521827083391757724117134034206128206114646779723731798000607508946228854710274310816035253160493435877897794113699375297708387646128302881506185947289545667867853960593424729155621519157599621194358833965143246688231847499130958832058924486637306713761129311591895413597477438437739815139046306603597194111545366535815672146697025908960001817769410466601292688873523969551933779668753244526138663184598108965124678935653466462690368933104321669091363518780921593921846945463837661838476378934990423111504036498105157510082413984588920823208981525257193342177792264729562350467455047244266252775624449343188189118415877302789682800112471909523057468179129660871490823025162402792417128867841334756007636755530884663287114384017769354367021546492502869655887952151673659769247460944880056021425074923357931064224971670280558288167184114966239544366540211625376369152032807039702843492634954218427972573754435948201833567845193611834059980271767051000344575632688718365480529765514720493909657858549107057629603232173453343094682481191367288477855617888935584963246956323350472967924378223204867259570721346900037076312721308065314122407154321830661780883380448658058736460351195561961953694607256561413912407718551171912333508097668565202866744603335462760668857929384706676391204879419926171938575445552293766864173697393210466108883220867218936654487271373978722889558745184883418732672007209755587870255466677691324282483831556134346172380742944067777123539399910829678193522980517386856859254639189026494959502286589106697948474075973626854284562506633246185136585950712474288938069233423004683902770049241007814972249196871406684948406626917789839370989458086970158117357363726978763151254039301601516687968961915405146724264315808824552677044104872705438917439461620706695350245139948011249165717763901775166670572996294163898205532426689568142348966056561468090919252905465718582238892500014298762315147851119491610336557022166656578821392144301428379118178964955357629472330480146216842626275687708180926161214692812029563717951988116444633706527780250396935742427527136124012838198190420022816224509828088211038380937819047710390080530697831095187895860517319696502222132561018035937644066821604298410433722544883654497114451620278753658191195332014994226213675699899147987890500361405777374272475231946473232006159103123712335624446902386752980231755268429495058832445460679263385489823840798583570938411930656793164096277422182822708216686317898607595619488922767040629531184600271001098975870263410191215767848562570520807150857221771645138560203847794039432059329295619412221291241610160032000517294181411892531393077667646658651583219012345834114326724112615905994698762201819206579164672126452542810176993669614628137618091594091103657207392432375607323991331233970134665607443103449821117649992727791281143478603052057929167140313992249811122298720851280041198079184975733222850603893950555411956965649389318704376631788558542339185064687599168026459110943524690806553834419085344755886585427272602922627620615159479926720115948100249317766384448561237665284658425404801343796821754887502172102736816405398377526287973585149811684612868036220800948748338902166098951290938538400526204316677711047818449724347627907218171524489133520226859138509714529314154125264336585777121012416421048286947343883843556656303893282173530665660422340593965406166913288502140245857227686225554898647498601024057852375137547728006456189881759993842781888776104087389061589980742609577343934268489058218265218947619328813457451423262680338957907986870012129554830381831588081654036326027168431036398178932651040501332487667358137629655203994487954385094323990012040356381700690022566883578428897724435095944085829563561749305540184722800963575464366468974416830781355603207971123262694935018986414358240163541939669927538972376171499773747901050270668711645833380466184638560821472265116102011894159486069396207763918186934505605109386478001890593329854393020337145348440779562604750837026202420438576905334090000538997561813504980604792459684643441992283343273396021195368884582697971464493102340812621080881076143658522729270901756170896960647956370193399919516823739293255830416797480787148444179190016498737247747784743022961074074651891763836069108027029291903156373440442655014658369841457776219864910658192750663049082676323598868916357312229757897825215551241727615454960465666539925389896084275899054445356184120453788246243152030070864899129760322170043149659231820137305237861962770778183912697186086287211771797142185128121340594667648902670229854558202622091014705825354588993659214858701006681685132251250537459054417360666298118577678385018063518172544543306431207661503611243446524571602520589085638376080931394974889305366159916404917439354551783484865552993420338113725820573025567794983981863062693609079590256594842513317451050046185628482532465875896478786901638505597743590609876525212218163242785004055827299338631286914288130665695894020690987451938163476805319135535002684405723416492807777555867025543305307734903234492640286153999347852587615953524646911110816229872033693802261461799214038268686536975210440409275576302434455467039350205835757577575157806240518160507570205992930504908925064996755882549285031845101042680137099195943418818048796793834160179733966223652858262165019170725064096001564462873369788449669541316645758903193598220662504063703105960957264856897598596004431385841660233019385094736044819679553550880566333231790999297575902554337118796006047101491549858482637874181433433129917825148444588045425984821766735367930690070902751031764564347194159475027178092183796230300705616772127593359968823754655650263397819622748060342830747709895033046037380763060654439625849180990357629891677480983753364639116438371963978282406812555521837971757366111185292704144276314383073524081336004587938004877253130965887920786394216545771323852001344582249679267951209364961680056177549585426033603510588197585046651020650159640097785596875730873939345258085494101223696441808821206195245898951029259056211622233626671989000172126246986544877089818824419674232767381576520925073597228235725029555205574392047654065833258485286620992719125525475561279408690030175037792244095421513730747055098973241555708936702062290360903414185088507845525653499900296655111261176978329625811975911291659294952145409407963652793513740391565908618038542712551347317470906197370345701376831672153811596249577528365048406731828629777839802377435147438633039605044069127602827212077522528004563079506993658424427018995301471753053933157572067885238647912965214135238865228984082500036818775419442188029166269350365396901770101435797545770754409106773669286173465159298730074223227170203865149047930916214949635412017313099464586527240375183065184248928737417833742758781234848351706855726852322697254563299665955746229611041785613163993983371368228924324663402120416326925186097935179420547577348806709063467063462948532745263104087308275016717198906818316019921356803842728289424276461959390376035253527707951776716564865386814532985032153331042051250243638083769185477154709050832664469553180051029032413024362312943931036396129635502534384982496916478053248194238196454317332531043733554691076387876596846486955247276271697502473620828515466392400121662836438742284097573053945373052211617678701396629523302618450766903532828201111455448123883665935178528949571012373579745315001725065692437715010744458884641290399681224615209682845799922657518272274196772973823584500579203313031159650737183165010399090164645006842904593209047316130280467271669793989418004072587867969121549192728079385318440106850987560456371914547916443416630180400669796015892000059435752064278044687529141907345413394801214851930683705525041675693117041066249669811277349901528332265914177844301954338064652639951635795341165889493297789586021507974165874106382720302692740777325396977322286545297408950050832568095043750612615060414284614830517343057540642734648021199882665581758854263828221905459440312770801571954753085537980487188343135163722825240502415511367498258586696037955256527560778246623737225744733526911343358112444842248378936530971588422334894311573802611303311448220698520239129568130433203508226008350671189699694117874624885654375901378349844081125200924204441774619359271161061909606750086774363800925550238238830331207232130989129465848328527803480482223817513376640002414923904741997342408285033675386794642119206332940923869217775255187984381104598722346459151750774849999429273113747599110507955303736204420291828054668930378938651240258523910548481460011721078491053277371130438209378384042416774837164354841204831052727081709857774256026432152544587502519698619862149455743580486605274211824891407997302951011269774827163935448836289456397588306151764964501641718313012833815631727849542669519404231329992467163540272780442328816308039204957902965118966613236896678745695967151531534809437703821477904354788150143243920536159806590818495221585663939357865420359922696391459121730493121598015589035815523604250181385450956071430515252005961444434631982914783805170849018837572088110027967952667315367354430550972846054294913541960907573945634900741640513223440032027237413373130003156469217292202967994600912584096313915656867156836577656992892442217985268883235713613317295344723458346779834343177268249884083659689446428074217858728634955114163852323357726095583474694328199446504158641122577571392981610631997307204086666046610038384890376383303627838005887163833700052631380267133979348841320085401614693340189412836552128754101259925378974248527794207432898550017538737478111870554783481199913376267471931925073767091672192868406031363669066530499068422125238367009526609418004217654840740927685362046690753098041613838350066470775269780109978276757059673997966481908152573284970717056854942015420503784727320063128450597193855526474512701619280697389245748897948664836507456478481615654686003117039092617070325908264606757579780329512860693735053695724674807435464401176086239064010916552500618582765262398678425355534722835899742222465987780854884368140673236293179212134433403079880220956843589017057434527653574836768129163869121395788823505477727170327863184539393178914310615216525897787324700793824387149687680671067033927126674605848080407698908476060948066682857854096007213277348989844181877779299806928857781867597920545770972734040307287429028223598014816180254228424099212155116513440501043350342093120176200213500195349027756636674467671832354639318286715879779729045607041399002572303380908787981508682099526113406467240544747428073730051678174694662810727330666972443581145460493858976138754588176939465194170692050386797709463410470810466751580313865759181847759692907941887303739449169735457086399137741758972751047113291549168424584117317649368364737637523149412695294527823581335332817821393414999177850277802508623949061645882183901237426425356897409533464206798697858193828074231475089089210805492512774122016466452510817075857090032983347686112379370975067540852332569736338465307400878260120649138365110211800540641425986724631025096094994751824140320474744502869668789597663811860571202046535576458401505248736132131139486230544381335578233373248029581986556267583660124103550864298691475431934413620183825949233249048438495399141896044813492852201394257044854394200968256015109255715986289020423098299421144499668970434974466933012452440272518060162413980911981589833460815187954130256587291602591810200758289917863037974522337187635095646822764530466610310743178547938702576551513710299448228776277168759136593694093310194159453651404522373686236444405425862643995369570562368287676512389142582567793802722431642690827299013494545572323307806594102767506419183704515694953270952383555557334377263484366794571454457818798051360631166608545449160557634800589331633810111247385140345365132612011093644592228458492365593554635466754949953085895721011436655733232226028650740409215305852732125756772831641086047709684214457567250539050206127874363564227655139688279755949436767930109873808842391317855109342065179735097774258662239633172462309997733461301873326496326445842641951116451339837191866789930291359143291056118581605796744270591791892965424754880292653294307523609691335838764368939663049234712378978259239965477316074126038641974959246778298428073094214226048351335361705352970019400094349486913947169851216689067668697304415866086611542612582505437292547606318773715792688772299177838657429360613849547604737943440943725551832624966989844751415813580703232256519373997790790468267854611103998590543840698236786186959025131012290335214711511887148993929370928019754740158950473857338580888582078185482867396898384752432119520557656442363984560570177851339116901367205945078992528749660394877225138775148426525169516854779512940931186618367648455445527145377263426390168938126162039250826600538369745377215985517510801958956687937687450404642606167244641231305939046160934984908654777029777351780753101307055207654609841872342136699077277522766000870681524518569736359372939209492487424048109532556306114066567400173608756397383587271624711785390540367893377506492751976464382848226135953045995190591105992991708014320767235740677696915467997133529446565504754067814814206514964191045002864754744692439711873816027264914475013353989570289674441617998491476204230761265576275299454454848919674697761395628562081635906810206009683547527885111437862858085831209841129286482805867871840917466853329539520204395007629341316772901864619601776341579205805980975114243494934455980050818931836369190655384513776647275834127006926999130993813825653911629518191641936046296954070376966861072066605002566777513826676665657645980510827214557530002601880823127136754001472805306518286282856277622822022111866895640876082944748990457688828035844162217784924952879620322052177208801317199840282058999222333223884014606115336824407742891528000351867115457032296829026766668590529157614802597447472009971692645175915534690495340828317258039277033756537851663517083528261586009823313309776425464818653652006071170453348117627952339024119715112203127354496018830778866779579858147720601449541896882325858044904071732407030983622725038131006433294187629503581094428575960638227035439320451795658288527404662320524250376227551374681789790277945216291176005005568071193482342410890895319337994857709089124256913727078002001453741947336208340707100847081240209027619304982672068208144584187423494955685951831469529667822766186911095532589708909121532624792791363811040063837487856321498846854403141011127187114787152134978016859420464218821736211097435965707761921280033126400815417422621392773711722919897321052856141864173519189039928987432371198012002353027613211109182387296681033890708873844983833433672204573029932830479135148996063441477565550403241891654761075624810571967082731021574748632748194775219888882382460421374194370420438651118275250104209147652153436793428653658382693242246037440195817478208586136219487855749875615208772094030010317845300651883890088773915179317835754901749809233476088182084549908983527522336625801709304903789380654620131027481132816625722422057368439760708377662167118899193776058437194714720321317805411884795612646105632735505081092708641491021398868196440484227441608557409290026252329874573199684151794729621100340404452192229307195509958786576827920740842515096131356232499887830953337235465797784481705159165928862746192528138235526370206950572554641249139773640196122984027979191517252757869553146689948582938768407225327628751128749704508225358049105554884292561814150958490528392840257464175232011724897635527505247601574343845397288862434845101453139626905063621448918744268187668566452149819510986386128056354078447090382634213149965879464067864293647440854756768996095457183229849583634122162304566918011628126036239659481854028476743223363450961478224741719094738334463632083700033807532848811290695274274034755348933938507789066386287279899674878249885791994562640345229716145848000467038896529357285183185135338457447335034998169837540559555004137284603646718978053828539705768243988559290501327077108873568478376312361198830377169241208765687005620836161715352679282266893102519080218095873142794946947632849472278718441716930944455892921433306716964097492652702139734882874038448931179149721689380990070573336604667040988091800146635624931284058395156354601032585258236084928149766637067726388983693970830927163043685054260777167171832904651328707373520014171842770704789704630624246917912173035762667865791390692404138530412404835179641536950160794630695393519018423561644590166098801789427761585923738885301655973374590676279304981529461453158204851825788405034836406817503491619487435926059175311278204093198976455282033547523867475794779927863553377438132708847035803789630521188416583348836030016373387401297472353116763683291067452604750981328560168050992399509345837927284183040365766256308989342924651688107405933466280652412717068637403228148139610421810204349264852952036297814868159778975984117508384070241847459747746623998689737695187608539325264008894159765629227908279262419504941296973524443540165543875865990505026665830612829508616832640541152475234999763656215611928776501931215084680056139538468742279469928702846758676334587342151063156736213938518186328618324774744059355002355971780498569689157290106359709835838003879166396618246498710745270602863833570051824429244353249156955278874961420766959617628338363848389613155775852800788840266853404774946476616200181456380790705999208488704651743385544985566961064083427040387481427468220805142389729858122098027914010644475074685545795571481058747341769467253194956842229319853536192527159186066572611893503082574813797895171621280529492569178658299175478936975824607060252324776592815282204810913942133269587276830848607747536341063593181777886441457534274165687945045010393224218096863938147582559240065797354299351515474904693236342084884251227511783051248436256239901003277592983169098661633888136739533308020704730583709198787797193546114482820527540702904062828410341007645129000945437089573558797644646223232581946494275216730114484621867303387006585594408734139812379707063967343393964056795291540263806376324184147764154243276426314145721210934575509152581131019641167824103414829278969016071075853315124633067632438920697961031077002130695471201019570667786722153013751033190405124367586374495341708153129786298063674813415681560186914626898075556900303266525323641540668842323885884950338044244724945556625207036903908158090130610215058648905058743963555379832835430908870140516611778660073636903177855964850893409194627676744850591711086113088012131408118875655025362574900149706501051959366262707878432050110532589241370115809042779002299631871709747307699571162973402244766186383334112140366517071152410483001870690387450110243105570838348747787346510240917003105255401155088303197013621010423418064422639478412469208805778772755026692742819834933461148130605342102584864216528327054464022113380880599437973404381824294263050768928195090179451762447845873366290514943897531534418117271602594781220964196821781203192212043392387866926142377229112941681340784668499806186711633693438283458517285439804914034966615084777693928704279571517152591594423863997017171296494301538137075908303828795953694370534120651625686383660266424140573233116822568308255842205471716537051062027710724089967594208169938802208153176887951880674836481113222962427378659476689343480089398834542461074812078858780507339790739663924685899203743694992625558102713027985719436752976531696898176228935487264700820139471339457492136215139626060276836928607202452467936025542410417889892831603551558787651031284105037848619266825614576356449728326960509233431131504977977676883103956901705044282526426730511050075059963485850681407944182809297708854978981083133581990072498201912910093470565811031091768767371779375235516937250682193115412628714951991354154405611069787374036246254687747717911906132719774950736216131044268992240433433536155915526432259547472274791468432386710669820240507296255655017754384142734466507357843562706429160654622948002970056551379114690656247023399921946554360470485606228182030171933860113621034507658132046089834591894241581493356484723776954052819565069606722618701865859430071005413669315021651719078670042289211298135821777334290273567316794458007006058503397173870032056285127682379733130332058794977073258917131536346686420770969128279066884317488220449673871703032895448395749734773610928664733732321129060180194042954762627364802700700895014057616871544727807896595981310731688839664484886011302899784195386986427510356357660252707762827700437022151760054717286372377410018366379375336997910028144785589828325108292017251362726534484694977065041237073379332475221774483129261957030246259786215704318019153979106309692232522264228919423309777021766475372150547895953047247689753982380871627455902029661954148463869773056965984797004763212872576385504942184672724036431111381415784924654105221771395489241028017038593312646982206586664351302819515254544786772213769556248484056787248029009449721610706595539211749056098433974949832588617907615120328326700653629338678413456858540693931233039077812341083603265020763137760389516438391673309732907397221800775001132960503905843336182035979349182867672771741067238080991627015981717874691289042452575592660023453728429535318348875018374200093769716873927611594228491195919989803119329369260645815936282521126236114040957996673164093270225341820898423394976359085439698662783297906470764694459108849290966649143636471170154541008373061907266976089786846098029007190043530258077224681327128037334432336176444552598787895948210988627128990930595253397490510957152385564520189802183942934633502547619180288385914431562667540209952160801775044568567637363001023010896500201386850171237660774544606508712806680221434265489627410509380927512003997505287712090932034332020448131745014853005369694957688846728703755373790669068408235021723324499870154057226985248191609623888058948202804773241255134896141588172412230533917971489120222626333822969962158078575192523415931790841318200446014597458554892278445455973445490189267905142556989719235703419985836233211031393765280382588349548908693158083540742161557841273889122092872405033721624362748554228262012106108799329541407340977533241498726048526944537914750096263400966890197203100735913959950769625897197056906495482218680989132234939838412376655017389275168236465217569109985820194072709092626051949930686354525184596878412234807583783340971829417241211196154771274795247315907455953069696048365642393616113889357988020815078810833652366016988164922661514125207523169712574102422253583260460765988202755333180246224432397710441805118702134670282363762820181929817194949666218417516689138662555372945456233013722409923217319782840150667309628918583767162821685252971760460034639873901056698207543503050812919788832074023235320485813642968210578625748475880495607072131222892184460569827137968367602374405671023736983456961616489416457802314200671649788228203464566824103407096054876069002912215629660468685702571105368919787609501963323428482219736420485522982432896565565652424854318620651481622831495991667892855836352539482525039233011649968919938519106553845078988180487685018528716610998109286011791816931185005085442277788089707312661980642136962188681867633827468896401727533067243903305992067812309214952711347196124261299477779561870349142592107577046650162926158531173617882568682333898932033784949058005528543699186714894816878478763338373195638148788859665129362251185260846676029756954067769235832735374511082024745482691318747832422285410555115860190026704590133276481911688984030686421666688085526661827747918461540603032394460689040231449952928990903905023174468641349527467714061409459866342589722901613243820636673712596338484988197610459236312839233253370947897579531813698717828534302937697518457246373714756001534896181911994502852631966814934550589440713040725985050388184697476379458472825203135032793096805073239787796948693977726282414622695892039612188972165411378506581100902457394799204686542630430163395263240082540215580402179381348083616463382424245063717496177873163016945197891577427514966990175250383743896753433469778498098640477198319269407177387933408948997886155352210287346171801216552296285916246197666784490840564310669199676920278217252404179133833136628041312207987699487676405471645960613331511990309596703566297226261839706060215879549400756380506528931395039204678692207856685691392428914909082543352690918970188387714996072750194741727274496419549262198777273679257040463380873935005369139948554397551759736683778452488837902639795955610646613769266161819087838008150914470243098938045668754666521510464323799251619403117730960920723152286302788301647046717652121226592627589006559705843946905907317120223249277679730684096076178454161665338306911825572182880130641418499496065724227178825806821938416379948078946689878942419962555898607582918024189806444792469343456068060883392517579428469386525050368424748585644663997848268788697812466063739180004964645947726004088931596908858804727543794583756076751520494052074386941725411658907678592072935681985922234419139825155231381852869848174187283143005548689200681700184886350237255018130134567034384889724655892017379971949978593742449137149219500883853862492801475651135463987058283410379436580613807826591106448842075374170619992731204995598662317314007312051123551313684496704524741265228673593242285041838050957208608188662026605719165027547447188141417634473504923319397350461123346391280469214450392075790022428760742716073137262428327463008515571423383803242611719039391778328091819838155785889045161872107353811634065799391707689844125661109883887197990850370518223428317978652563112044983749879731788767413672075165165971030915784099194637811085662388209625725073754479125380776206262550641393749690338964800283108594592187199902495487231673421032043338125050034276111170884436156245894511737908922870619510930629754338525524397752765482652030367758464419997120017170516823904321385746044119041796648156899086989931993347372331562014181717617248644613572049534237307511531520053238851793251488733718660105289238882158460218824702633642190722305743533883190787507590476691039454153628948097938374774094657462275092326052208712625897303839574683114103822138156872721503117887279966236795793988160008548576625240291109032969019228234793392570614499319004801560571689564182083640901461593945306587467900112810078321286381751337339175042938404065680701189101954914337608474220624742676696739724880163407969201521037905466436484045649311398807629199166955364333135735740654539547291849131525301236096824567733567256931674829429446033141847099909779123684076855879367320470263036309179496319416509801238099191500610401725428149749723835054404691701969427868898566961070893034511281938286276671188432388451038150156179595934893968107032378408601550522001620304890779207079041386765991803608302458673979661412185841075478429088700946276381728404351837965625206316197051257368653504400606398278448139712005351680126277983980110693876287839642223529213294074574229420074715992188385862502519683485279193101189422879999937274692479978543707429697143073991806125924288772432288548221212022936870687258650940309209210471259775563051078194178344135574443625887856526352245291082384203716701817598972418260873429528457349678459428104194986659325144071852716383000758075681554885065716116175588860934089819830378204463701588412030441266695138231644932466315292336763623571525244725184604766908613129771877220906036612857434469787569333868574865838739502570182701508780237641379269803051583463946130122474296127501062318467000048492124617407580464129331192543516235870040979437540560995653258575242525613851781997817695769045787997007241295475353847234536053416984177833864452322218814999544087264192122663619647542810261933285629810152239136701803211669221625047983265345715544634474904209119880293079032472723499217626060917505218649675160739597587394250253422296876664490653774244586365542635419264891751384353466424756462971370262425681829732027199192329294570110738180411667248189685077382191789886901059377035943360014634779422171387081045530543552428673945776060545440076296078257908916089726217137974259813207687496887491505521201272336638539480517165762782815411084711395829341644231961111848993786966903424324546538866112925233217103132627129476680001562208719891411975889791935705100836953388492480737873394897783345711470014073530618715392020622381630952042842869154444521006108305366563033458770983715379973604958943090757268689691509463537589605313520322972455184488128888908527889686168606138813406778400152668930299543524533721854977098586453054902264509288962531055795993292219991932324442505024499886201830107418692117535916690105546042974992304184744355878809513158840168570354298716306798376619836910869428029765830007581399641276129508195491296161251556948640069317336176435837187075899183394023421659453440309042669433574829453209751539400746736835097301132918533031452849216702620753963361871329046802605383980596269079618719472743192625669696817489526005319485840059876512305015843549518274050165275114614132485087046097091950424030699897639872063689990214882837611154980947307725188654306789247612184447996574967224964673541158260613578831269951028337254452162178626401771132528995619370159559764195846802866669153272345608983416679959127123575393526017682338526435996652715933480086310734475306053924756276602575618979134934631912726278914289141455898633868500466806299650375314524609383665231899556519369943868807881563707199534724900721605866139060413747015545586451149598132842550557780903645959152295577773027504619574250212380471674018331707483216830773433054668014206278283935431888551461874288937582091643767197069424621936734220773078487286624309010482946360927869884027612074988155002792346909718294933575182580638987575077061548523488658694539937607753734765019259667759024044508583447736449985629520695904949797380623430950300828114613104942200709782693982470818557456748011131461247002462949692542910894680918327851872356675300346988612032526668923450205394162541635534283711022492966255178481663649500660534315875094135242889269681407205819150843716904510725633855208460100877607137933012397923005975858024816795250905795272367815421219408598636010360037830606537677888915842368755824720037278186716411026396955314295420030094965200204105589709433742284151252191886699481938353515847758457053022788342822587221936757701809392017830629645068907772237754457491760588624995129760958786273919703581787842235855876393323599477340619069654160913093164498087922309605856234329721441306494824190925439213533108089239697621480101124334374065537227144673576780863992992098664083077626369582823827780680108429233092628111119659301127957308458090333195744627440258378493885485885794201672815537163331450283497289608527924466788116349709193155459033687801858942804102154102823645824701185989440319106274111129058987245811888322304759108518126330994417467459729832179298235776235950232201087252382683037236428486476629756656151763142850888214336702947895814031663948840363577031220352968154018961198382805375090558757727134378049105505656404745997601249620962120242284083908216665406423727317726186462652174422634613164756687291827967184912464225145717884615259634498615506681854588608418094324585077780023879645379793506344693854052315872183820806950971230179554179325451880001503920377469618255740673952734970145907949722423035266875911277603971106091766153820140792184460917894154079016711707607502110802730427422499747633051634406313601660338301061498450665087252206244277815289978254958996833166923634869448810928603030633494024497230832957000375202241249592895092324081168219862496284442457087926673587095118877910807518783862623475537046440010240986835446093149102907187009040055113904679017390000351709755225499072046256813964094868408766787182491827719469668800564252910746503195682622793359395113098169630825731546727088692313121113325017055991440386825258898858592769099087345951166098501668182427398082397002970654686785696587995202913676155003759259285759773394718871915820677483163931777949740246659649302270918778738800983061905113441522013428723494787211840708321310604904106538692135166985340478813091750781512721073190250277436594921323256250872523428034231310302980180130666567756551459280229322727358740534541646225997589315378440323424527042122820566311649196904147971053526991741197379382396813319710406508228694773934205921229931520057328764578817901376816242839272377634082158377601087894567396661853067212606932971450256506793620675549046841934960315204261841073645541939240441106036600899927908085541628754845761899328760721836215688805881163853785783254843295386857518901230788053911835629097347990036750158055404211969085785293957516259837549344860634544297731171705780345546047604033978230860488052870468195286677123040395698427937659610570325735558054985335983635770478231638623383780949105704816794499132912316414594638934640640885640485694470800856652683113128195700280846445859863604713274130078164153660460136020546372189879181500071668342249579585194234485718016667922451972937439485921104848284996273518298228785750490545866454533517835556547584187850605774235819225466747075402394481988123888608222351068481603320944380319805728162461980870426842570025335699841466568335264883075412525866589318593522907532869140592720743760749963354225314383714308819560822421173115589621386172404183942343860983981021627903169731881677716852414094000395257541283172095210035553506974379662850708797931403041262335742073399963832496678270055572086561565078396877277577631477259107263411459025150517830714412717272770558107879779298504916793084115335766755194306575034410422708567505359016750453347881870596167614461528503858330187419823619172297890082039162822928856534745697330713034550687579115297308303670960516646516306398695312681774288242020725676046001778435151686020443984153289042877807584799307788263429937444059114067703727467512227742912551892172010612821924762360747393960083170837369682298790865224259271865600380172552565347225843567488484488045838037785274517581343789679988321862323648660839278686118252691801979038993670822579951276873891400654219425146849944962998011882454833538328010936443250045096594863217421947250244029535404228946322767965963485403097331542428344015744743141871983829032576538631918406531150176415940223934064772336929703667522445431489833082554269887748140267072951206904204735637204065349215194011954522998424917718731294748539722987692857220779130612410540746210442812285686157741328031802351186167601132718924330771805650169755901626265775908531763709736240347608564177901598982079382087319905743012192607259832934608580450779834056673713336320885668866663633590649125922323321251057355541524662382330451803352092000859860377861216311111097033238767675424397940595892333879984595564651422132530582995858581491887002707085059667029465171760970343810618570586655364378519022801625713756707922108303448330015528706582630701171955753196737639012226138235773594626330165971815493732806559558651658765292418262314684013597116620128453241714079886881992521781297312611701434635726675438833857156022166260823202182885656839142515759087538433429769569086021656475130663660270115316186045788597288466388298926138228804947862767148008410010676821410609941977203605857555783593070008192233540828150984434100446400971898387258863321673824189355936443117187482882305203071215569232341054905448822166977526120007426937517692589088763739085195329869664216115809432355877055771496029463136868688420769321128781762523603197477050196366748785050187689398777401352641518321953508735012570206960750754967256926512782910119808569338009516191493301659897375532851765857680649784901192764664878064772921526721927047581001923758867117737037213963126090542726294347916501861117506793381248879367375978806345427899363195802934815847799306285583805975601919643585650809092865621473004764471511923928053184552214556881769905504912245877732853063062708715114332182058393879697699810192903561529245873031324547504257424261331365172020105960243260484809091015498179562032229066456298556262594563878396739183894495245466686496022344376748687486028334131018647582549245301414956356366674053825733626213050535551857412880264539394135496333648315425842673512432168061684705378991020817553190317350556628312959383229134444405281176414145553729208603155984984231932936443930018483347163794962654675359009056775315364723599117963927020716649085937363573648570099198004543345927439049382189773946558432783330522853778170911912836745647943082048062030162988660101402773928409976864325195850758928423942005770427462718250234984000523720420808241362197727719253313159854928612204980265453553625002557682704157527042918138264889036395844093128931395640990294183468813575230257926293314461764816540654265990754536206229439355525848713871116419818103153238719211130695553478058105319419540463753242471326042762837863606848093949259244479043786046190162690144878209262899497709913711147247114448392608580603428088817430227616349033504759562259829050241520385436108971027132208608841484572204034589879622356572718430826448331396976330582998421363506388347835961637289255868006027402564354302855702696356038041641200875231059200601819663946246493891430408635074036231368574756433378030251454103551112976994786385496226402829810348075456987356697704495906132137715413867504710349956368362719794845033096308855559252477178245068576635491382952177102647780643208793230918202861780406516551309886739925179163075134639798205474176778965717308956269136137909847106145583040848310129742435866883048789409473182348960226331078705483251018906973131314561849730008128793591628664172808651911765740015702835064427693532983530125493153985705165959847437547903147733041635106432087021559490782848194960758039194081015960952195585507095194292688911007274922379552623792928684541267816357305770288879646638330637230407085332018641619324649521500604533682212322180037043212137482003385861605864295026992553210089162792816316047452956439755796183975612897490579920567748186665912541669557712027518063551945596618305018407075790129566367611953555915526714517919579013339071044463007511677661833196284632193686216026701424929804296829205007835764174193431432399790048152989399815274252154586057482111911391404285574767530732466959241174315843432760684754613424411905969657471973952214259326140336509704581010079321541297015887394898175946731302393132210578965301101291874134472179986415502875448285495581111056806679909188546178489750187452299829848662426690535755337674675150397803404257388986068238310024588216553847935231811130963704717599136286392176962887354102132161391007623814461634205045774206204025218392664981623468726832531230647408003045240492513362216209224053923367726510316887509562511829912422451239136795748855435299854326073994490474393507788650968155781541725588279966506158947421093782727791009809434662489733181458480365211031396429640667629193558583580744674990953369213874181415347830721440315458512104669590314041879530300422222662464081281791906758511758451762689145527286632377687819935177831265865993757022032000674344660469723247543549751558025092996622489208755831344376974836819082203593682116369615135773397980551771604120723801008855524796484354805033667400833389847418851603511407681220217550699169627385748239576602954018758980520713699458629114056062918713497430651320952420146980225942289919904929483445387658978808476218146697459485745452715123697709482575124291553680720269450126542860724783390627779565072634614439429145794463745670380629790010181258088313485419758099637179148698326100608454677149099499880279487609716981833115967185685158597524969759426730196669987572207885544065677397153869009091279334645285948149091448924246912574146756896455004969411609974281124206555360772432231342602924704833464313228245529516587208918414205907732096609791862073062450287386322149589746712295826251849032692397972921871516860694078470750286848396124562899707384578934802366095741834742848857852686558069985842434156004135777161702828950184977715067084811640977028715669526927341415107594930672042457224972062615210532159060006871762157927933786961942413828791867256300596379618450733046265116728742998153932008323441150389644859339977634145814314170819915676088282265546168063792963579303118094677765040951973125304319883889385202524116534341125139534315732271661349511635463060539848147687861916849337199664712078054903488619903116686075113469087429774194695568568884872726233583585703123645028378376862582772599765566373960718027868762324053254195303282162167554501056869182069958240512138451300931511752806338181640648768445775210463204034539334195483191034563930767506347137991308121341854197311035742650388884889076600327213254613226569014791817013181925591881498925212654613469846510262221255457013253560621350889525521437056459060108072599589910618612724818064851118259084983035941643265684796884335646004666403694224519461236073181418600333354178278570872962183161725678209425097892500678636300320163570207378755720698354808371629732017110598508281493691483044603209600295480301147242399714870118248116129018998321344896335859585088704969790250574656723729720497152027626449452755024287411868424335880985266360194511416080270657189015136493584259296116241145208488163463528907379374893649794651675586150923554809102350689406417346462787407086254794446396912687738528997145376303895857937866298184083658173461579716312071383327763279884947299539631670399848519964880697375441262763355635056376764248100174142407345660866633555461949468673674500097902990915996625126758577034325410360486820799731236686856478425506230149257540639419701195143056997137833475748356705885647301166673547002816821198275186223624539710880144924975164418326330893466517958958617878618904467863639436716710907394275151471544263373435421398888451893839518247081273259699096742746242917535211935788298887446162442835956266819922340471080788746281319311717377013691010133423032235636102980225009381424394649396842224359124883499262747013280795478255103033310878352356889256613911162134680736231955594677278025824187878807737337564251700256019026857517331434843909091454818926351947953530213140303954545571628031581550142887070167740881246483070033146337728291904313361379140305283622146958844074942662638821373479364425658852767775253187981953881032423098911376295114714998756645485425857118090602349444287906143375342240013891553781728461408404638246203695180149821227074454731563925422422477596279851255915707160255251965832627741035067082965817150691982563684718333704307048391029532987974665958890164021795097586107928255315621047000298006013894663011753873239250551448295759897770772930523466612154626924335809794646897013806123127294221076761071389808861958722620566737966471478732443006458786831524871769263818286789130229354335190875077006477823949157535292843682021561674404243622501560175919220724230946327541395648744852052181036749321448823013482451938018821794814439075808788044540151314298337716710406488924514456800169596229604373884729993491113194150985201208822129416848520637280352398333449433358237260159508211229962983088304630907355257222215995748663844179707823545678934142370835712728123054718023124519077360970177223550920678855819561601840377287937925583904259079642218283691451380473089663354549458262985263679856407989539835978891180916983311045472750518229321383480480211042106605205278220023171199236523612663000049190141106568041869050063765516119848110685201120008967464345707065053064799722634033796688834689235584290142369937850946495883190011898792768117005465441815018821018166009903151256521187181976727654796017359471432655247705530577457745216976561615870536877347756374725978898624704853146259253982969239904529820344970641986984734292995431530675102842690139285106082992498825426009414778358391116623286731202220748785299755105841172411721226020668126009473453196887500093954315635923146997055106525039510687759448381883828434321740670827026896814718545588392078861132871005612988427377905228459234074311039112157645501496209562552823521283890616950718682881072348558275342543174170770321251358000430188249825541650257581186421640942306025470248777901094110342727170393451479545954515902111670767828809969883813310338479265864319255383662619294139793183927225992914860433902031140942685071784716131024253822315164116637694316397342476127165479409678418481214807145471279922994972387244177470747656493474904281498780137285218493634882989982640058791435941504507501608345369597782248675784752121336928058503468380944621628548157747326770310941783126885419252637826247006984242569754835252478560084783793325797763498825213447874926299308640358055203979770968276143929991961278747735126959542548709042717513760155173274731361308519709901712281702425761335510497789903510383020088411024023895271173705466193420988197563202403680490123997793179454600794742318892811126936157194121141559373699821018825970470734127163121605387734156512955568176045217854708389356190002070573649213604185968524782808280698785691389896329319569758599769496090038359482452871382716761689158967408854002524607132252471887507862219649026765959680055543335555806075202722890153463314859745471923004878252650679982262415836045015836666598888543087032648370505049019845861735516537468824029756428321859277567321461648553712271345125901856831888771424180222273452768927943384371693631280990026816164546056773862692240706582684885443298910622576992196603653841752307571517855242541390727084697154979274449996755470340834008886774107482777615025897794722030073167127735722599427394751879556503150562281313332507540246164789166627194197469409748809736228929059853346987341622185211256744428525142324803066930837467402695073035044647312711028329034150382912934548752520654151733967822157033984392528762907510541784642044355267917230551051969610111805238484722599145203705908376294580974943695895002011842589408250006089829246100333895537575542643729554859808214259021666096263062183333522745831731771804089435068427072737371080407425861588354750584243918716527046976861265985634750570776257737520380326554808907321285117456418066656504098106217610039281297398308994578467128586368655081818142328423255870649238326567139402315323501062323068750307808750187526694699954843523475863890879240835599649358185345684627291794595936658675832259125269508521695660980819688471889406682439485508688165758399824024719591704742549367248637768798271202475062794327081036100479030663783467465775570399644859589400380218567962167615835013964715919333787038485019244903605209198277933303347568993615830376900986969520632386068012521209255468716297073925311287198382782268530794165866679834676174543482118110009857371355690733391545057029280458293378416218169567179207860470465471043625261967225378169164267261494021186828237478733225744875892494104333735455450714876355725932092140033591255149569590378954962751542225235987060839244842666891749760083014657989915813410364100546377563216728834938724639137501461652170045307870914810086607911405319479598280666535265333509886639897730065841800291907989183932955609601130695947389801039015659328920913638712725774181264769153505289342160882378221872433880162422169857806488124686445740807730502538478164398582577325236478463846181661645561220139709179437622811449179651519232323124628237462731944764089108159931107730765114586668812372629617130288467328772378831042308810967424084330159073303735353435275631124643467824162193145115576751251902679120296793417543429883838491842012180220011284733333901083185302067298983344143663536231849159204279732683022843399807862052057652549194036674233816599278409683006128271924284384462033044488849145185199076326573425540397148645523271533917125687649896399501722137701677283886484149673214814408817543673018441588992993523003500088720075421150633534997481148366043671773244944844224179566423697146747778794832156047027621688800566723933285487800192914382365976421846284819043044938841804033615899895281646705725411535642194005667197434070458891619420424779582550996774618904114162448725898284616607586423418732395792634878770403142948854463213405674886243136200062565418274947069641154645083978473101598864717165519614958452595902136132864385703996681999217018720570924815290966393889932624012308169649399147431495612741500113845837931742707813830250100496113650053538103764192193221925469669569395249335624424146078702773520772719109643744096276197905137974836352637533859296214891808932894937759962434514469367854101310831432205682528411092008862641857883789764889981458714366358202393259633905311253569639056564234676549824213476651740009495452754837423746051698243185110808401427426835648820715515005450330989504618869301901180754843553150940718167649188963584676918194996823054520493308252974304711135592726550554559481845642154669602936129054303138212359729940662885308391252354283280992170254061513342712751901474218739288364770324133656818238069265467821423239351599474642488795784586631539703922492179446984868806561331530772415534456777130171868554578041589578808101337385603648530598156988055688238440889394688771314670647613981929941513816380237740069901967037165341717533659019113972534432461832671852729206817316098784832790693097247822171996085336143109719723329447509223588314169261281034146525372467439770573513507006724806997548148267489313906547857090544841343671778275933640428151653984538848713655714272175196464793766793470395737891833653740426231404263944503564424787060747055061318184714074842918027733541123382356260183500856887999658152993997104839100639891463904808338372471960282479419691506838643840776183806524889818863520047211715104249231462052044614962499435657186942335026589143245735412516128116389348192398967616319795191893082608920204021441137518513174147832851166757548039527061197179713747041223323694261973821559431219123743616478879230245749460778637953872654694891097098130768454670144869390033539148682878148134296004556419962658000709397713055110649022112298383775375173465679954238021086431138467727144576120858069983135530930670427637497878084689312319254063893652105039912298227790210461221274920891295570268870361983986531491892403471096885088875744750731947220567572950135409874649887464496478483664565104044246231647417627277217411751612981557779877638985208615749105148125613847047628478486667636436686404253953221031219613776231966878962397140559695284698462980011044638964193014087593534263490980426119493062173117935755407348787399965979686152605118636293097070687390200943740258958332115322446541782315400753925133485607085451521389081221584916762075926959246587653553513400052390696356967324658784406859328866004355266723578389109868432309152131113101887127212240316274482476256143243138099177350947609792108101261796252250905455274795856897077586927523703269712053878187677441615217567468089857993531065572927135540487811587276834882207207987187759909324886735671330312985022748410725634502569540011335435584481978587193041445395371788704248959157787838258033339118064819632307814898074743718631308686727179264116024322480157970074364507600459351108890916607526838170551970960322006186774449991021211427452787279235049806457844623482987202634680721209763827100320745229404912679819036942977008142289151800603796136754199321359148528711482254449699902396813301223853201195983920209270856024247185967885047524506624048175053769567110993532962846628275223737684773566369106482745184663150425344297936480644416920989147318476581638959140103551274584785613661953871269074022462270192898225413056647301104591316695476642054016173309265765768934100428998775882569719782342982904694897974611838146686911071006432352770994006248951550263356506651926614952070284520933305863351806877886751060818799990078386172469727684958135744998360132894031361546314010556582146182467622447566488090093439988611103509151421519818179359438667950201434344273165355044782146543746353033418604349239573380388729955544050099455072797211365942699354213934213734794135347037648540320055931885058892875099365793955758171932379593030618398112549037756121078045091883394272216789652045685814034399836041358437614285901956135854598864022101578328558903766808812147035584173624272639272267288942531389466729112584034148357873986965174626404562230492488241248833846466539236307016805896105039008653536457323428429518061393393934510481016200220918827888474481984675554055156856256490617393288214920332441096318049552084161167863256402561844004921624762097190801643785655649413317921903794685057226955844620667947646493667971191842581700882156808155830847160650074405761417592572375230855962026069132293411288345924715524891198051481030136441814315199434692365215617921795847319838504314903350355530761381513931459612010024875850284306691715695692259912451543698834117209109605974538774497998701646022756898388042368816593591588595976668791358975707318756937972202089357288454763356918715057664009171420431221656435442578145345974699778804936563959135793729910944922132312597490888743126158693114466343803038395753177676132549847847055768395184412451855723444817402863069574065787852183833256438017343363200922217538077490397070424353704452178177558521497381520309643754820420694428575915188660738876040972391586520934385936671785019818815582552473723624642101514484605057378771142541428290063616713527658207669147681483645491602900208023039893313800771101912246512255229250373237538913223367136860513535019650734518259413115185058037119910864912959854073321911901154862217630384453761359499417362016645294314623751573406317030803522381822343369915168754631220952528864241957783934459497416717790744924733166183170250632144171196586241636801680264577223011085941828221286649980193401323827065176383061695933483937658265758274874752646764669840858413017577363542173194032005654440934821110672119005110611764354679866345633036031870066944413191766109575003268901067973888018643388532011370498158639772648914781641738268841678633416545172289855004921374738753897279820847332932055599124716634014751830646518506340312690097140295367698619152005289783410905203943082020938522567326985260213938060224689489915748124002226414687079216021764755381089782640325751710226529618894689195406275718783060449357440968699267491818538783292107967824673594923662261639709963718538992013075020095405620680155862654545747725541665793581626441117830505037977889557174240494463395585056669419001634219579850701175656993010622212502317296891798585724585885488924618302894115276845298923703877212620385486885669623841180401477204226974725118246334833446097007695770442926208858122399794918385485864386758935204945158665544878771513379363395481165593464981924182622213494998946713804543144875874583578389481299428676309459169261544861385408646037198339461439662506405304493069251473418941388983971774656809733709315862603919947499256782396199709216596152719441202157789836705653911341071540698023735926313561798097068936163101063141233952896192813971262297415129376554372812344663274225035169175451139983321848466828714601814451771626530813322678813015218018283146034512572930787799622317960702518607686265656592985824173220521525073492581796109962381092182518401277122657840683374791379406127953849069991704489182681251229839281752529906919639181946212471287254105836181705710897544245886463017246089944167918015466018153580421703312432161016700298362969955993503421108756450841252063841068081957503233342761697431430003407224166255980276640377517512232784818492742237320993504093590305012599527820186556814845642643021243933714766985086328422518084867932199147853976778517563428777307197180610817735811978899315357945560289770383399706633425669520114141310121830753939637797815049070882322670503822151380807374224438682441346176876587062429308554423424933799780331963874750162441853607165691588916150557282988539086402329145340250547866767792074477024783417177982159106831758165483875320486068153025586372569827901008052570873332842807532947326853990478171878506252602067225866284072807819885623206584687775996520261120858227428998002053393963088792465216611574907575915869514941252703251149971607265781801372738174050666682789143891827435165544123349303518096618365800990723227284654703303752987943246818107114492610539573981644976001402764798063675615092619769529116734275439677291188297544875500945941811414184963741982706136979340154595400353458973973037595086034229419205004920160307667117357980377712241862847072645103621654444558491128355714927206041201541498628372347582484760667094743546574607236615562724457162999721657701804472734388215291588875530228844035383269939183716800361361746947744443701403161821746355192077613527599283512998784932826221231352123858194122450618428910635212986127770054731080295450135132745534708831289366004425536806148905732539237505591197221422796878807113253055066259549228862676888733381588651694293997778247893237962730754310435682886481601468850810297840645864474890122695960867483252263088240094872564587854849835670941389729533311062966702646112544389159180689270997487385207193304796104984398000600812595857161511823132100211728418125547032448416904230454615806214921450345100241081358507988274990826149598222095729708942368867846419448428561882224392882164409721735821403882045194065071496907354404885313360398904733764431292173258975951383351983372383798917725231654415299005882588040655233439115848262081614946002191355165168828889540153944212955733467935101494430002332130411139186481185791593093687534029272709180690024465907095506550024315301473525628103727438187570994463733253346418378303925761702417557867897531267762313679730911079852433309691872337389289474173699274247141955134261752820336971388784305799597460088380807199418484000322675599455267322527413658330878752710499620775452423638044702936281981795282686367874032438191016385943050960056288108556445243500631426435331523250750488558347070353970051271066747072982836804860179370814811693488838578309828997136363162503718215540016236439832604846478801796995742702498500954134808290622948307076097227551156933376659112814567099400085739208163873713577427648713640338677363983587981192117347762796775083757378947652267158773044054656151477225294500592298551420618740442928719238453322161799957173085656468899202686506521019620598744821785903626717255970423648131227520008598679206306541426480150875361347753158265753837655289870238282282574420542758594816069636873362642760026707562853100319109260625485011613106855875446347956782972217538979926443751363119956889879104281251535494587748354673006630567679977964653304201787792065914091837061695816610752126152284689495671700430237201138255372873177558457679762369259955018450727309704086558052434468058721639580308013948387306331405032515225776316925685458859648804913546859204769155405459172181400096323542797454975615940990436572458178540935683321868024231665283714978602505099862127241734592814829199837085432693250655910259653727354679363136990574646896188369389498916717458276544025727896144893564374508678712452172673358155879842114209742930778324425596330126331657102138476733218457831687458810271257652767561467035208451556759449230009370018337581153026572629003060073662250384784784833193877898465496486873642090408541318854293287838814325912567165205893523561234331663584903986035475672043000027827080725483591305454984226523643803013647266705133097970531630052897163811301380771663514360924422590790914230906298463589193167069488477172388397823200115657371028413100703683434922951114752885851513667259637971040984534794191146567353696928525015705954806097399873695634322258978756138210432020801181519462842761284013848985932519666473755257294777200956309375579779817194249377738815703116496715779561387219991742450441324044861310033556849501798104951302699483576372375991771336136283357271479969994622131943581087763642251150339028267534018461571876445690472543070796876327209879763849788096749033747042731143495971369697193199360287667519282175200404589338538441003372280306607816298740986952465794035762281903582672082998507628303792229795720430347439960043516076673560651526592045412890878122435351914421777979075035345546324885951820290699946896950477508922636877974327958589309460580375693284716921564339748477694025738614429742355094602325068518980702973434517888701073927956082082712921249236459309131923373116514684639778758672151913992767045175288861678991374162016145875288917502450315497160427092621256570361950981570471285413725818571731146917315133523335117748062308380826592425257957318470750855278959226726140210088533461084480957895063559239839559462696106455523238850714686680832986162256468051448637290712710930725097521976897434787875193216054666402622925866892239611602944214236560542603869388635992019783083238261536386324467792768688647342809057962181257563775730136256609092442190986656924653754601649857171532378026604206773156641029568862827628934107648919230019073248272604968739506318126200393109370693328027009335302436806844124775532555088679238183998251415106312920748609811022405683935850538726591281810753485581208451580777837682424550969971166432719398864449197199110008373955858677525790128387679642405218657871210457567066118950395259734814624617936704495727577196435291181499451976808408663701251734442640871232219478093845430575884907236149818879813437647613814056131344033535294908697927697950097415654898224539323711165411131810974032150886287562968923564964936553537885553160936965085101193314564543046429487677518494299646245530272951488534551116826185736988959592693899467447803524142223875967018689677965837411749593984252804717462719402190856063599187037947149475514155558449526167011925315832025691679598112207914668554849354756942041360677040369664139379195733603819343149402760627545482381562458999807281820142297847435101443341688034639015279256355373220203358306645113858403552538034779810311900700839623982253273366543264571683164896066635211323389673710081155638294912476051097181404574140956142192063191298727637795446516424263180622448986371580520317387496651963797618393001479192036961630358129386304561599228199447131220918815923539934723056057654321452809606499661461749675206424168009489327650954574513134761882035796579193839244889254770277888802854779167138725814922040903489515273539093432414166014521970649472756106465155456834152743717399110213716332486181110909193118730617939835228666808734177089939480886576285774493608953935573506238249747258915249206483560802277543236280944886149478342233108473352177918740186850690617582743588937812099780719135763991939363554789849786042685769137551455801640712181865286829076332130094628204138448049234979534252337119781537475752093471162934473408531026014884668297049169575883577999373037151389522759453923703646168369799669508068322059279772669487566210142474718210409700027981582365841459546603600711972930053287885781448283733099047075583732471221746413692326424631106749431306122930423074646342314372217409577068624715074603059200338001488187385016036161797802660497055289684441625744032157266846766618207290779068547839231573697945285985056197236050233299922834426925673869082364295216689787202617131344449480052938712185318142788754935242389837202275998024802043252178879515878286726353499267613431871093735402722507530046476987113995881315198673208847751423444478309574606368557015937670763471511731569099964282048095784134066735662004211891259420825532383872953604844861723391537518020327429145978928486984270460403365479779221006186634365241773277441644614431287779187899635761983946670121899812349635933163390920305537290122360491943574756126678811851717656173166979413915888980953916039658374810487532128878262699813612459576945012456064441830134071192411799293145409883073749820458319936803671594948374567466326004626183578326446401468279972836678757316594012583084298749735924480930734038997105458874290980210159328085947096441199255709467968397792855797920186680624349519460377699175564369094250236452707853978535569918956773594363813948900462052057584556748132190817456300186434872073798971330879177658994475967886952972618698670352936288027081083397820086113643915230366959013909603846030679118966219624502815433879469378751446893463632622214444699539687508511261081419485653806528211645483578192897985671730352756307621245418296120400148101483814123138754550155079923910107244047025714378724501204118614236729097682656056503315684120323230255114417134470168784149662076631838518519418223625366986373524048012948978446748365076555773957209328869293677316276718465477827723659913072515294293416325580489888814461708589965267171258418851343211065987912977371027095117300159171327326362946287033795458312523813500839015440330329636111692325691740863371067042557947709001362135050835260831140533738047924052028008990314917993455594074051839865919816197112120550753229352188731278784883217540919140964967434040256598790818841705461034641945331440586582389076125741509455663116043111699999885305162718135082568192135181888672098428374661112894325967510810802274764688629539126483868641263404795070076568897473908408981455616527367554243004124052535670355742673486647123898321466566151573824199541455043532415749863730203116768919258446065662290107491815892603272817206761491429767042277316334657195673619525336678469964641096744300350034080334373429064526614967745592335723720015660705182491254272501637394750260933186173911611352267026556921681876138147699273591895020262816829813054773028235088951289532065434045867916530116028948039137211637997700679961062932083421399230641840512630564705094977982445233028079027724085445440263528533628694124814030213604756527891284806254763364826881496980591010226589771243694695852185376783173193084833801924261491701437955404141668151451700652640945327940603684272069312467517910956348803351428292557741434924538582938509657071365011755481901915467828242713067365578518111115110550268664343170459460067878472656443942866244943690496102846981445328758022168089719253365252964105378657631694029789320362986331371891342017589039009776257272920630644885487108907381756131564603913881006267724573486339680762035962102407382087249360924966583935873596894835012165612531934895681102588413918618228851530910459977634372672000911233023719458493030517454509724282345530378080906396494418870616065146866086026778261762810871319704878700343736816560559822965996544537873430597373685052605221121101231619630277546898889537812443325721637454346699195697095412490829262726799549595944596907604615635099672700487564508016980132598856011959781706055191392515886923232783568514811271304056256797976701871506298430030518261766899080304531257783164496831612700704539937478670218987356530233240639742231021247407649822027999526383366339148979725727421002115776152072786214774722139836490831895341130155958600718451735736864758166851248822027258372416717795034372100032519755821849320791756913455133684776157236526844527611234070449206369874771832968380341578536120274834909500663934771093662053822332050627858891706604799822584242714903022689413911833198040922308204076666088409525576733569842067201314646886566095040080380254086338170076775558231181181713956458897159951178482159090937523916658296020467052308097009880944594210892371417649962539752520147655319599256785182262185290017758946078691978659280833590722062787417877101197788564717585726893302205679390873606518846244502927926176730702799250087991092201769739061755136243658125442952974510276177312402778409070670023118448874714478198337597843794183407766271340789925888428312051220380039282664306470307966078448713992626412102074967974411481895637686823010925752940358296447552253997051291262418409386226961389030957088093669138200055985583985817745419443560649451262643090756356098417414218950316666581664128100314844632270268831490414151486082247946128223225664780629630042536588857927316348277638283902323443677361003523047913921469974021689376973504738181919735827602342862403005384719591780996617106484068515483443592202071587855496652586638554027154404587016501142768124720932243688869531959636959158042821459301371275047924884302243693205637325239983040190191143376525950937746363736500355212800393233983451930363419511054448970599633881274135794038833992095141458689371604605109141475630412863718757527806845142459989958331968641931453571778728826565237446174922598622803230464066524973700172278969607084528310423500965443343995563792465027555866777880256227002042319414786392203463106298205207756888957740274130416744504259463680064743803648491380339765065200711559569093439283551848032156354568804662853283101160060859084681564981705392804535883918498971606088065432771058781107589084889618726120446056848574381021378444458780804269236266759176936938515270188081484143920872099886698601254181137519068947326863453626678125797296850380229725669414157470651006041805223478868960025656898002146447708708796428838543289483769339735652055211941696141934693948866931233605229593641599735663619718983907096108701329481406263876989752188570152065141511303213803061761182998904327722506234178693033489570395213124712129880474368785348794725870112803787067518916552387615573938758045843700098459379393709038857382861891845292262847439984808266051307341431226705209227592123835141546325076646689691241238591319515554039406869101731258940462048843175255298233692446468610924624931124740225811941594737988193450656317472219993377518036798348343167380144277539443099470274080095459941549587064431384507902174238594862697383470179937801059257963052706838996383217330934260321719607480055955794355556594933054508648709199626926228705562208512370615374417660299149674696068139706151662757509000796122267640460465462644385459113908427597005273732585623811329352720359108140664472520476054637549568578260117802074303182353461619021296860058051617617403512385065511396000162518401582737145523335119029579518943435675991042519121033658919077367746723949438153781820620396200580672654475781008662569500858189168593265096219141051894262527516820179308880767397459567816316772837608586255843616395358831389886906333580961810192712404045800922920437230997732767481982817324853447436836368511971382705259744512274280442471287102300743908980780709663901337443388166287285904711339993200917184856032184859194813071506285200677340998305608286333569110478052291685506999041340982663861451716331181834945537359332153788857051340265895221343509388794994303689939523082117643837662537848097155691324768409395211357774049478163856173605197234878305977008401250732144263718812474793353194327480872009204974225349633513541034159030991093052397063934499843262831474395818046001093771076954826133681579936716406590500684169335734464390779879340310525651703800237097048445190900931374000938463436787433848556884033043198344292773834369728217494418079321343846424016267784962748978802175767802705903681215533852163741555191947732486946580469547674850263806637557223834036497869647011228608370660168507196514306487114184313070393712770400433754905353289357999309509839466147650683485398274919114659054294364598784840901886451259921305473024680647759016517040089525776346131330204401418248794564409731945740213313672104858666041828014021048057793100629594297403401856423210805400172407702132102566063548128715496786015875283553210397925576335497695602853850296328708427306165868906852771506577665383943958085632201191492457570503384561645319755603188178230612257705752478648789583728534383375718302031600288996153165945486079207473203196382678183798102858516746346688072369457794217860796327698806532473029179778329805753599060424086162891181946535333677179420720632069937030565833508852288636943454187812721995599319376642731226875085282875363643393857044267421032907590990953168856026927536869696834162875354607884421379469585136210472073923995412955884634610506192623655310449296920388545083713609890282473099968287562841354616064441024391253549527828789391113696289781042604961979117396313744741446017968451051984026832928590600971899802829787317247302759486249668705673645460675105518063706905341575660760341717411133793267923080413125686715713686302771995322153354847674595761775690059861691405346374064186027288122861342494432194837371246187603697069789497789686904048054974936066283797835170808699827468223792369814314485643589966289455511202258483948079284712668482039956308110755084391137442028547267416199225969594314416660741036770127946739669035960302454244205083938519460371844248303834116476733689985040172222465141173024533603921766548156013616537921366591859971412247088397497765612859882842697195808676620512527836755047654669389701735062305562279901726538898258457935245201301953808468151761777646797181505543806212822800072923995922863910737567774980593638826925030683329588116649854221618925487686923836698770786355365829219335820219962961500067912947108165505021351546359639226845248365534969418399050941896571983011325676142011417808652602732082076500995100051178293126748747924198136095553150548574128874526173294059601762907317054623201765759546798988771430541945202878504465749766605826577304896158696614687746643408748531709083399701602970590551230588514715436112420087573878947133690668031210918541915814411099056949490119867237852082280271299054728821705261546439897722160715482584715406569941472264561854642194927669222695064895938749730183111087501678031002631198650055897227022230961688456511614648301629518225636247893919715946214169833366819652724631039916476952146391711839674901057088508190481794133999063626574686399651872112473270891072212063472778407428538650453574844156941003072615708635741903898304203710989181335713918397587870708913649788810860517050108427447937289498430695775932641550289918782613359637693191643501207402629504210651378921095608496713117018549478976352463486935898539934713041889943173787207608815375421576178319341251977326284422557896357670383489649842801055286972069975134786242106285605143974119330892639461806518090330294642708732870251780214144958689382571244337279257156399893883068662400807918784660002151245040947503484033121784524914377890394384189887353259920247094330906768407857176831910176875573004528883979213028894701635497664008789347319756392702049239287682198837866006806674387155298985770291809444209786106932507045275196176968812206200132779945279656687806401330993011660264373730239534097806255706323582556227479004815265359253600870656394761089461664435666983709591461497720457237128544011685824227522967560166262643934203516021944516332999419791696747716433401744650631662761976873096286345903494719039609274680051730172406589767074626300224990656230595974719928538629519780484138112626344830427793941131730267507634530833740308304689077987590314629488178495480787173415764385691634771890512187134742057311163928531648428822877468254640881888508501795160853310055657349949925384481746331904750530959637092811841676902009949322740955614829204962991934669137992586689747584608032213991981763907454100781400367633099909667426105624358115586204329173710832123899553512406340414890574855498237789526894193486730649156355818205616220755403921403849270591423195362264991214160579514606639680983832108398778157453445388640634997955677508915559833703695020962892473684076027943313074359802606324873677507580425340622601953275041762124407509110832639926520609486378067416463672943343536866936157401495937542002726487419858290429751154311155613539891569167115401738561911701196833143742299304455750191629136282485639454039082332310242804740715772345507376278705274981952019372157792545146587042068405112491367415998344602516580207348876954811930667387058387699039913199186763644241621982786649035264957490893316743389963560239831496083519961254303033925994425833366039933017369768415981511165694622433503278323025053530358933026359995069434949714845655785254529687749115212636551135936785302723297450562569370315833364400691978352612464046910124312578038971640100829214772742753249846198106625262042241264796812436940629723029185883319645276487219713151813333077409740536250535728403352916350874218854758742001747730249803448306518977837076939938699509617754422533132917211986973541174321023868345242000123940162466527435332027330132784785160920938153039724782906928853430084068059194952940641571998739162912326954426549954634521467005408825128861712558785185289223231981797337506499928650922224847012436937084858326321114948022179573281576822481380824541277154625340918044702657771016231880936297101482208782450502448234986254661501636625057728736060241500679437325268917009331213578068549575717863938342337479861747819362271783371447764392523389966224772648725947893682811392935797440560809471284441916251540414517162094546062400190481456273196083119104295872811558302750724200335615985470762717673256864023093849885620332685622784653251814948921087449073958784049467969146217573312983522317179574565039425052451261648611825133660643607623757211331151869990041276863865842521222205458048021420153688713298268832247173698723528575302938501801569541265425835750705491842164856718041037381166219791566928954671148068242695457077704240636259551350808330424230731812187948644455874220274187330467938533591938189722481768220526945887444837839127674479004065759561900505827310670945885017623311133363273752664122322009658255560826237576911875992269953024891985696183362144005707535472316870020687855517715577202686609803311016214383003033369199593077384335891952577281888431515364001324915469573996869659245847042350869323165337170135872193141164383626083174864896288261675086327950497482860766213123891346549723720418349461648440422367800011546497836647483140306389365741395683568351394200872236501744623280647682731295842635375785800595993381139266834161617171049301186076372817122044580116347814584876063603071852029554364170805608455082703337072465222574635453216025717328057650643590136222424817526847027663165697153154138378843571161841265362244968168617713181847225245745189795753923316895919331296644701244443391712276749099519003976152760991942719265125638023676754459737294009346819786310319214607139389973284130316997266617771261715624232248562292740262966190779463140003547120834354317824161996999819568370641608844830880290075680817939192265950735364491605910183044291626442791308502581831771871153556099982680298978870860915142260811693006601133392358319294193225717658574530594047918104834646422066711540479287715661215786939912064935737952836221275673384547927199663390778205128206017530552390165558002728493866673857700171060751207058824411584470835289221365480139690021410421668433697669084288697161681867929641185256116022970029718225754854733721200040948991738827095736883808342444734371221003351355785477258421844583672110093390238205029184922534537509663663705118241708864603860796498593763948692111130597082807716257855161637459268891043244980539214351810312127591279874053465203189582332206957705868551783986512245039267684050829542992700294462105209968377673701854712476528922034147675781430817719487084611811913590890565718565022383271536753145167848372358354882684815580157611142328494086578599537002778718783818566161886916173233587479903580962499421878343463840599617458042265524172355574580800391436384732892387124308883560539524805689230228651069461008297682991757411428839029407186921610182141525095901860435858782662853242462074748726613585363309494466648117830964303802366169348883530385238811776489296174808137511749312127779510590220633641054296963630492530590563233522353804045257514403469706653697272692385047243827658017710155425234568911620250185400842697863983425298604634881686364161754675439339123623779263630955220230966427620055195895406573836146027626221546934455919835216181715313873668097440689380440565559903847560195744346342962898896215506518140438690072550998847360583639037966727997975704329995411704224765220259513064627027784625161531485634740279543445736359862112303656644755979683731439591011384141603796029168072296910654541899782426718376997836513343491668724990826743491340743277942185561692424972088501903897283711189887268156925985364725781782979082243033015056709843002995785951871761199764198075915970440777019041314907800667590657848592289154985767333190632197182441427036791268038580636444156140839746635475253812875650680320606843537468086811435369041356498023639312333286939437724607248755167443710317182969327557095860995643199708795020389181376875477943416039563997032586234268457929910804947710569121246291138386875527470900878304279260141450783257088841320602973669253732150137391022131079009947746261403055322927360846735751923370085851273801254398387526210035089000860662815765788382743752244471654537472808768000297697077940600664250594467997565510719238970796175161644998200229038129060362038513825635056256609396990688958450029606896523515693557338729826290733747935970932745477300380247865914179330156242742946982461872405251776971564011461306852573206047469142815578394827300582481454955963828073531132696477030338679178980772157888756138163446240294651131214417066489049914505463045116998528545252663798951561565895313519392246609954128980865528866928988367052544169299693385845009706022664024778202778519002104950043391244412272584380364330838269493190445990044806413095526053139051814066373348127563620735618385734790723797965604130843490097460788327866670130061643000342955550986894281384780173878743244209811375426885765897174457586101202914387408277359177155730661415444943268204919531998928899436945641602444298873810772897321392830133808262012712896157011204519711794145271838597491254228698635027826170445013650536187710369661550921316755482491380424218376872444910694268242295911865191108778487959142326514662880111445716273481055421964759019388899792443563965584163246058427216715894351084260012191501303853427269715618610802307641548835722368302116209504634489929693289024488700903863906545758209025690678270910109033802995367359329187739837734156355314247608907435668964335154486352381363471246308818653377189876177927860090694063319043245828263618387186691094507596417774678913890323172081630823893678877351167409632769706943141913041758407862552168920384451010604562820723054465944501237469716579712295347739733766735481869173626263663349703213751344713994597350012749111166172921056575821935651300819912322527846417020152846593154433547114579267152377157471931945169864936166859318995685702436219872613571941930132841968901547233076972211717851414370094223328182257866527494381089188095631910987982450619581034870683652375881657371533687117054043751608027060357139427717952373092247868541737904671203995973269371125225954375410793249374181522826874601837316112834291979279311521505203479309657920052704153560191595750339774741527592054377229617099700610850380622239136208433924382989868551169251741297987793479184902527146116781081779637446329291640221808556456969891905123634835694072737222600372280343331620478486773657304377020728025051365859474769611730276047786887034107274379007850047475057587515271511351089601890368999114981492887581846810640222024202628799225470281200281340177204631299278472596299293936177511144838390157160513083856338791485221023139839443512698347539803816767159262675752311466706784809227627099659110030123456000797848730484706184990505351304786450982245342260811983568553399479604230983267229477291839545349851370128527155758597778160434134193434607936261441685790915178012096796594166019766912310915704509391954971244885323670344917488855849186356803164898163532179142976591645204226354343924654743184803870513916535573662873872699044893223122719570422880572868496861048225174931943275659514088618335099530445580521611564779429398446794763672872123560477677762960286121728787846822333624187849942900009847887297932256227592406934231055400593455598312654611970065949639995743686214997290894824865717423654656527124286849489138654289239827016779195225203324652387966812857079958606410231589083872515509813861502318844643550430111102107050444223600154038244491074904647298362844757038506507293445166081344382872744797918021767880981897158778586166912011689550334707418026854751818459839905330874244622964460727360525580012500340241313012522002933703686144324211767335853606117577013984468287111067131822449576812590696437452028095647311772349130634321738540584499615983877717706461599152562399543488653767093190094298454719516214082213626154311277133883310567668923083614425316146903861666271344021272576615193251703555654158260208017635355697232496686111828732975415273739911656840177336662962191020423296769021062053949484918915781596507020114518762448746755890118158948569187010190378994280854918289204686566883724309139449597813338190792054124725387859974530451499190510236104426438513532839394217123211185017640306423222247442193325321156837148447366700427364129980128769862852919694557208651114589803843311004330403282739110510317329452803678447478185441902024725228938028080348035470167726969936270340412242724761091334360354403457764371052588294750451283128927748166937224512286103257267300427759482918984034216987757306732308793629332798003055262461149326538019474711577779348198111741061502751052816006435946983858838093213664208618141688232186853151680272781423223235627673312265660843301776706868251546924836665488785755818993554040934314102196803406884489385434480161521418243168813910883582387796723095187411296639407911165347723385778123434411527424937525568177456131785348716646923158904772634344317445407267932424566303485496208624527486431036188784702220515469984324403200634749502183403766112493793204156210507678443852592726980206649494166784440865638572979984198480710493961699571456150139703674889674324409903863988309117560166950367911784282189886835447959199831700528967302902961265231453720517051101758516659163632784261655848844527733619988570100905274226907730183776802289855178629480630934284337972078068298805497049779945132304665318035839333252586788661082402946933678384812981989378717499021910805591983035486716524914318567200646627082164258629701181529088357147718293093996656606595501400743770201331595166237817853128826485695679393724217737358922054769223069150917329563363522836339443302328411337769598440340284266037985369756572350647706492081955136457239006017092172734739399624295706954063472783702341612075342357669801404358778322602367718596334067219143821399870641558736016280296186469337984114986021638004380854410957378864725704222540117368764211992875020462908160332914142745680775719320347461081040163842331219633795964205167311483348206208960717730322915248116635301890222451141626659029849097449889124383767135540632862884104876537273843580639115830652071471099585953000495660880416596575909823182353401411065862888734171456429482599612060158840313914537937595721825630543344163958868405815120232765308946925799215498811237391726655686044402157458419374740860241249621428684723940008708310785848445232248639368403768134408160402516575765663318767451804996874822605737671136781422135286503366665211772950068329128765506862496259334125910018148663030774373394044599966090570362424022939356340047133430627073020162720714187377833616792332162065971354367601334345087122545814730165825950794212515538026064027948399330882907651683953847538812453391996137339559477282627042131416467572952095965564521693873901382442882033409269965705009452514212388644363042709139120847233441879212011521482254682185315894129183299598401352418785507615147185701179050138764408062061924838968643137714233394746037437226659027047236777040596753505856048095720039482417642589298575629668335734139538767835298406834417136959138924755106404158744896668573174211190989933502164874095330843195207334651068720400471190608411493676240314780070326472643090965183756597163117994626405245745832355062526104186278861117678455705295158137913670561871075522985210270721194312136728323431530777387692868063602789632914200328242465566131882230614413990089075787084289301788010611378961994902418829343893369705614165596870385755940769146243709093417215511084001492700285776605671175536809660725045099373390266035346739097044328603189467045115735389879660376118293866775357672990003616874690698105217623057970082935809072732974355248173221166161923170697827045363779561202449139841062142501162981373170089313244698770549314015695492428069072874967937849556826520310649848953153542373110082711696227830598630128094135571667748392891279971239539311700964111504915579776692236798915161425414011632429137395591616080113380282765370859708223828236023330729110430995036923276849476135704426230669287338003087410660498716050777782276304358319554954475785389228416988939681039597066035191062718454929993832423312640189748112787718340364416309455457458430081955150185776285582478366465715347773139735088712257608001724749452212050881756991939799652378456318832845257908415369835659298943826738075658476795710449172587004810176324964976649006583140122616338325710889216808846187504941511816148231861547653760559651801742388485853108090854804437974305096328778287888116152337360666894975472083761910966267059377509251120204645604650652587984066050033283206778111146273358759128653742095907984559635594331415163132279526377877092117627400910709422468890474516191920444946178876810208865455814242469769062641688157332465676401526631226597311401811786706950885706843565266688546645721069787614145686678037216428567948281633732558962142938426198586103943982983537665664827865352363659717623820584864871535495210165745758537998871576586683208589137306157513925951158360654719830263513079841712384312979656037423207612910127578595467661517224569434271994395218505891853791122811981921006343741228418420846908311228440921138732623723619469032589070774761909959891588953923310373711692456415011486528747546334466828603182968053388452921580691807502593771974531555740813584005898319189757146451238630667606227828543892651761356734753591159137514212535731312423726330478768098165041420764435034763065219982571261055505457088478419449299694311327321063561496144601860538538232888390220544275037621778356505693895533741054122244104501534514682523424460964372109024016783004069796445635030030172999068697941578220420145453329905217843169760937662824593274976678151379216944017468130490941888112173926733405954685287229428046664957074955045821084649732108444341273844554741694753549108997817957601581444044791693209119609079410101576132162022830353237245623122774698424830743277917980631770450831204895907465547865337582095349565224934174269273146709356017224715340463488835357961106302440166213733892682802276349095198764398155835411356731883230113041889423252210227043765838713241964691159614199633119138351120975842076304355659466434745884282749814573485895750583625677203014539775665145385249961727882676729027429886920918364937599300055695921468353695017326373228922501879971653002813129793107285498426527700784819532717454127443167610086404784150632479769669581633672249030836571017561497708547575207898437841779688635989428917242742260639667517448334487165446040292157010512030657063209654037095310635978972233489199077368154518352364619579596919628957953378279034829406060127785150424299571119730847848072540191949787502666984827800926588897824379378800612722433507514116047046636867353322157653926574556746166712091021020490769126317604315948213661846844703905900444951845424377976518991732297164688041723417968829849761153889021727660952041171823663634380374732533850231208964236582924727504948675482420455346731866648719501901506234417783364184029324663715936564415292507739805750027578430547551779107527994303274573688770052687315066041307816637835495864702007613065219507946678292508854447980504215194773508425877187516420347332213389195996627438576056542300199329939439854364723338995343022310112384508543585082357227019733603559919188664861049747250172482135553315812831843568302076529283057505293780606122691619594759412921281722277484943599716540478434288637109624034886718074578355251776999589824378950084176031060467885146112941998849211513462371494039253455941325144968275009092681296319814499272699971973214174796243106021094099235315143336864683532614281004447982464784915875524646046682166089744250340170328615889019676645665278574039587730210908185695395708991780675865051227824781009603697843820321381320179312675343935079812208824885893938204959731659412619681027937258318358117654211103874449281003164698857168654932999465218758112006740460055552212093682639935735274225593819671073745983780386327366525544587561747660545988565166127107355293537986082712700544720358019715717505950892666888638147300070924069050303368590993067335357321050813138629368662848379633672969337578197469668237977288814849342191067910086142219891269645690618702820724972798145859600519358906186491102209843387274216860342517030740458381791843876079586210671051160415507452507762376208509722139973729080537043867884656848068145216741618613713633297596209580226146440810892902686834685011417684009496771382271641428768310285059714553735911937247282473550105952105774562200101405539712783424903444214865386950332367642133349217935848638140698085449551320566049388003253591452472683692246222975087569278335965506788518959881186431138031655453151110288932997186448331961561038691081650079961028936426997855886825731317839336203777505638459918821632535708864421941931008738017391159095529698460807977833529862052843309517433860539628352725353059852826869837654513943641182942772017973912497021976256068947297743596432703469352899333896868109476391746820412023154602613324946865768650341499952070310794335841202743183786599170264381789952125351470218283502681312940983721391637757515766234526301190414219908630281060536983405439154624888974535564798809677468679236514632689475121150861369751656631936208606134529139354811591667411046762145853636184371622524172153939396098880033395551230534842243329464315499719956825522415658060256148643712548442140279960405532280948864616212308931841969540558533728875546576519461746035606245039550205315375234934445957470802354666466050109215887289974924597305644080682773825759645942190190287978747556037668420086300846509988998061720485385712933396987504153044788141047092829140722046985242540518026659379129575791697027913303884732812000154689856598294271052384782575246517798454884474148143503766757528163318339347649748073355332887667476161009808777884268272317200427772909109367167427128836456880700804609486835628987548107297244180484524319338263912904543979378372743073098511859748248044194470325585591899809961689795493435531567651653666240424267027295508531592873309908775933153933607024739141464318240193081314320433253231195642502353707543431643763771671057210959822461904038453617752091837496655894846717142764836089255031834766994026959459481091588412510675629932162771315281142230448874589640121592788994915313407870836397559028382089385594273294621775070524770956084918599025375681509292328353655815366373774455591716812958721237955224261395618385083220802134327859537863884786989683250039427583999095681053300124107356291768731390154594031954446324216225798026218590797267374730531101499009458170856719810829398078565434938685095502125235670682567016771780213760462897751625049598088425642975192662224356809062457263320144172208179917408776983880344498384295011953494625453707366592363275617027289782567041575484325665565499684594243682018399536167012200843878749524503356808688748223925165587160580833009302515042281543326402333109192182277783104366289981799285625213981761150474404456354981076254599376975507910195918591991521463698732669223837908467329923078355672293331672349822447281867669302550688435145422178679182870823501797887370547133465233921067474528188091288569432358129194557842060065875061621499541492194252284255375293020483618776525656518482557593207874480791177673895023752862704419628781629179863275902709400613469338893441534368216381269569708121956302771145424487259119001291403018063979769558417456649603617339360284452538757796831965843430587244858481036614388125385241443864240807624182891883925847803678870990006818786641455332242196222886942281268232132861562451442380572237860239329592442556351025804032399077755882333199580649402405605635514772217787768390292883324498098572917909873399184355081340283938044594229550909217493533877174032555871284132470800410854749057109549283869280620636631012065849447067841014740056484881644884285435133618396371667070979403130322117457400594329391196902853530319083544846330128587923963838966427475394192287813677362084458827745836511249686671137432959015705883677613562770239313292697103611596296983259775274912249516539086322278884716698257314093777069909202486889985845793890740240079500029064113763334467167381497097678564071882259444598118063963953586506176259526326034053124735156756292036900476448721588111745310023279543514069914948742248087348445407176470863207767942889067808878905937509363564138629047004684207453594278674594503628758730478698237088228365834686296067645809689629139451554562723534176268939290010132806276313254600090485414972110766700053875727767313339989760770674190669520855577903139560747458550168628168588792936181591761353686134259209121360483868846081054017357472237327388586110142886330796213853369799465672406817544165056508476410216544186151472022335971096399637352671703902120032915751259335190090765308368391489206906025410658607139018771601937380217660124921441040748684654153972988626248156492681650427979647370736527102855798820068642333320947678458903044473040417582631896643132381479811121951230480454096145782934108132174973007458467267582263921065210623035547461877684690554149015305955313595146394566427882261502701028351566107087866182034445078059126466201032188996355519537438667912661413904633204727358509911406167599292383142997906309541357775520788837404587617285421169082643714168980140860456119023607289180329800724880922813515687527270907443438133558490826914178129705117188944613187916134580780779885199968618382640304128806742241335548984326807656443426509823281434576375122365369152165060480838954071975625239845136125549091691456715461038121663528547219303267859249616199912624176614299210491429739266595792290259359890213343833302150832383365339073663868867434965690976459486351985946054541790870859419021251539783659248225867306363163933081734671473711755757474957932726735617079154166536967325538934940368029912380909719928313176692924643789452490852964408918182403259665030745372923340497721909585757315803485398028068987034057767190147153819541572329596197528651842017995927179453523122532362484302418563134831345497239399005108642317983405865479129985728443952579650321277014048075415677499048035167778372083693743517319891106988784374580601685077225481204614614511927450328792972728786152694866111670707486965560030600366062980710242464120113877588234267267505828444098959446232687414071027344248696009605719627908305422780637921407958607224849144231332834451322711889708515171962313214767514195512915433832825917121109518885831554005361611264362949155443544378422239641416700216819146972802502593895693935059122470821753361227873292253869177371084069534810988294626376487673773818520782230894474427130535206469463864227885375396311370698645233540126429161943228291564376788573599082795464150667763328972947698928411821063752131377056513242388819259427259347163329263501694923979904258758154318515432987267395935848275902871254749077835901315644205513430087486288276506306681890500866149995824455779789831275538626499788676502565105693547640883822864552660568769266495200116718764281032767670184466584990933969015163074694265291260425215314401800263418065035446328032971390527099978565396447211904385401693428880236429894879474979970580210478993451663413731140811492034924958912452322878679876382330228269663564036955118523964274986235276540606160176374557781808488007382203838046075363711204490021853171365780219161590929671445622759317697595824965809978318935675288922377433688627950030386576460224035925087712765581271516903785156302408202969374042144863830095913315512725598651283498837872479900525341427102026412819001141411053412362004017731765339304221021109605728793784383989616482281924449337792694878480629642325682343452461505102854025514410255629957622773804568530829066380180871056219653594522054005691507318611314994706030587147517435017390062544812652416451888606547515720358327350852097004918403571317548950107519176160319265912339402579287531845601382626059444967877448535816903100679448642750048787508338728917338756169978109467206790974869504114411469156912748773142617651808597328251497151841686774086192403332937693176962869560774441427499521675017211401451891951246844950642882094913293431125341327303838074273939989426978628695261682046681200490256891682555175940730057377266465164658283119407386432440224364925066450336815057324158447688427151621558007829887740936481608723115919080018138579834254372192266422821159259935059868715107299161702152835253287530475513934051814686508869678309855003689613279638710274119884533994164554584810829905838002962862249476724617455789394806547925038139070885855842276372785976989916007679262669051161897721173036304170509210350310538156885235301960772716145663005654639120918653999756639644056434690925076196955779067028412768343814574625651297970421245086512498917579296172678205969443318148634858430187810442799408581304747828469302117723844201068091568444909778622558847542492684414202530765782504850268675232967624913198495607001245385219917445742856987182182194134418716462759229707593832039420606080591441136998951039701146349085114483052360130148794433207702572456058992285503183604660240082183406163133764371862884273643958557662304248604820892018244726018112261045428267548596777841911926360688665084173918635794376791566236994338719547034432073233883998289582897522042420409606815491036188778307766581350645856207022308835122012152446446093881638610422082360326430478832719145999141701554922884969408316015475176030305710210506557050466802575518572530280655979260320216861956557965862056152897789748208931250492097429585997521293156876777928738570850771063679070813192935917063285142664832954977786151987666255158659453302793592798010383642156804605263578611211403262812493264790026624805256836665037589600630786605300085942359877915657124945704003505472919090049756665097485879152546613168983386563923619517475814997553768315103218800729368421470684965303082449248533279705581088274146418289610665076279366841428991842101154226764887175107256411264402202618411885302769586622029810157239124938337333957248534387489842335504285613504262918924974909802643375362577285619667485637786364737949421926254330560979981302624954464508012877427034472037758000472908575122448779644533949665846385224319583649230989687509877650661982995988876961172816914977803531044496573268209597368965624881637704181712333252992932372093208987608514139282526396348178532195616421061570374705268110011674372694213098809133778592274747896708104552461168292171489442430876099721156585911969711698276473945033042710691378073656653719379452991820884283526775614688970828145985681396770524597148113721444089284103746895357913916518966330169812104452420790951156960916494947333162683032804520959528358952520492783845152506154602564732356918902515698872505079311765899969348482218691937656931865835590487923971383110948842466457330585868168280987081967325125565047968421660516063288664594704678561285400844787361019384655755562281585866681196531157443074877822544115881889446688791431711451652055169008732824874242772928749863944381693254225319995612966708495095269957397320758157903938696943259905301826412204565161644171910898922655557486282046254105643151340316714593094094530754510665056268606396141180431848375310775728814195839131110208533611055515415665811268623867255415258113012433522980693665140911080807766573712414220403523085211635417012401471382684641980434916839358720019716915025701076754515371722953885445892897547606598625700925081738606989513336593830535819678256016506048524145203159656864766892213553766741931596100507566406710723395734956488470796941463803796782536203149299887221760382115252096600899685031341475522715009552311653038305796505573449355599397110777589213811666814488244236824515015241362018109734972342183478997852125616282700042037808544880167782729541799421164581416565010203164060318200695374059208229505356346999469835184122654853880964180410675517291607743649554556281722593387316846769353326239823880867717258569405752054068409677528586071333379724914092167473444034847449168709530013660821296254524479238863643570952831428993623383407743411310043207346194453588567064990295549998988213625112217024065422026056590402897534421728680850587527588335018091739839670851536865741126780854252237812733036094740281591013761169533793484724079027696727963125126309670528254923896981059919432681374014014332796287173062754183551715268026265372701813752455313527774573169829409797839415843025472157298125020023300052497949058677956987088843285965706869844864975719045901836090974557297166347208408648355305175113401984047196254818107758437909032430956583031346183604776414194684370011296248946672825610132920906030533915398001268055406585696062259282449869788766421526180103851411544384957571466842909628709125599946397687742370848878447514288329530365878889897405492108386080581857381413956374649053797565159338979069945957532334458749882681082564525607697478783888528440688370061428852308554134709359777534284936663004488036718520861796505028846264419230976352170277837634508040550430423657004397656140859024983371331892609193775684755192304096722224123671343672178633138975547768183877296944146797620850144582481259165477158043652249882792580399202312127721034912162243048630368575116088914781952802913947507314107424480923708401807635188697440384229871480879117685309428506793286741432810601152987116419034586593236190500947474490579334710004528897095050078306802894717869025940906432120791284044813004149745058760935467417154701154118237562826949853668645545889254954383072068761562874022384094087086169896526096007576712333942612541323324858440896789558945367511678206618101176236469712133740393409824535436936444925715669713824002310051556431480174683262603949652956674119488161523235824561569095208099729308858843698772579395270680466793112409812633712335300358725277453752167164756961869109619196028299796488417067109979043778025308545391533630165081614419775957361487778461278339282336729924575249214434517591897860752083861344556557115481442103446477099242853183073037982550676595563485080776983723882454950240252729842712647547482292701586043753098416994909716213512718566512741956522486385512034556595282881243340857255555643407408200046750183381117854618303213325518132780528825125774456738967846758622239548965066206052471304212743157261459198374656001247486139766370688497077706123818556665769004102170143710961355916974810298884196543738384727247699612978858708148809519441175106635757215838346540349140741607905160688828856026452204453762289623387371161030353285531595397209357666715127178624125940445558335953447676773688676312551659124831303424534285197633143293024112315965542191997287551644721669376493577092336884729772823108169012779939610669015015184131967471724659084203034579779807209538945538450307098586335277411615654329110464404494440863807010648246587376199293606122331903284752307111084774369148759045901214547484320774374894871636960464341375270753222654175524163704506254614593136820088385695488871194755152560834441442494971299419043027030197875490923135782737984624383412919147146731310259259916516572518819694754745773152716973116673161351250716799269878774715378006835788271729003622910419324204471343317357990164764419011147777602055570751160928971701921047354550873308821153302106842989706255619991149303437238889625637581614438557248954459283471679283049664313603329933915489303980820167638420549523636106470113374630096492891102857375921915725112924043916225316985005531841605929304837455282582334367076405480753251164896505197495265025404486043946928131895431637291542717113574642451238309426331821093537642946185747400942852727662572682502803438759169342159987748118262111485343328123642543777434728619839463041653080530777945863052040114619244460744058644422300250426710372610100350952398453134185947101509157885917798500544954895273908894392812572089038946737716173858671472831811141982048138089353004210390670118280566683901902878812068784724021760785059718855925683767259000793391346237075572511135119533229676991274677839090526240913761432893715321146059687721551359724829616590754305171128685428618698068817173374824370530394773552461652905625215627437023638267872113654448449781735427481718318390465987369314461628763028684248400096487173450434756798315919535852411095208887957246474043335916461233774367003243509707167527159790256828187243322992140086904415064554353173869814259668192896122803748917402404269491576395113087465748727090786484333047945780925193250873664392650385341965689036223633898041543110849062225085841012518280037730481875681204363600737075981580881320530890773700732393086622447264598710849511319683454402466512321047148689697224143298877893362212763398231686807965509263509063353624181628888930572702084782732668079243080810779805500024704889023991731535989489012328688393860594864152964887768969772039819879858248915168094884267667880788830442273891052256509925075349080540343222209633543276614966781535835907882873611824809074032251692918864897276948409926465354157852163205697378005210368438189474474872307348585274777865443539719479658846067107043390634952897464586157108727606712126851277276195602126596406987567152912622873581706892400761010234579571000000597481925416882233491370662254172837233108268102792565605286759267444616798066375073845875367694607123322536340038482248893686482251366430114265993638401382645304688136070558745192583995782535976089557350620736095106459182003719362293028574463690321757722921616835715982913537154297984607725103577662028382086789044079925552605505656714939581933576270715404725131470818833968141580016614063098346244373887269469609693649303608320356526002565682487796515324631118757339874276106839900838652984973352558417281614522278096907340634645641993149243456834117513000345366553554730501585650318486963602332790806399387384751740510768837319359425438404191779826198852411560876327285188781597344803180411360774684933743499312242843110897940392869968526832568672690669388527587647592498254962224212744647106772534753869094980048583133350473875492212982009848410305136956412870541696339961600268557478519726642051753365402509323550588096771006381133145849277949564621270395783031590160221142931580627117628470687740568599322740359181735446942880814225860685915086035360202924783704653390913716339140824664252949460444907827951383049033266646174523088256887153264394200579548476894044181094703484505297707203648459883365995014100894728965296338339620962046581689212013521689056028202742689324083417837352042911840909154967272342792161800191946154092369427289810820107529443737522466988188119307684758957648786705855789816556224988215503175317468084292586390255964255349303806804225066640981548390412857049453430567445220536387137965213644188064006936032296980601456384405933453303926149744298970712991304779665284175938632525671093532807650204644319779358023174538268444322982415526771155354027405216659761386921303130013240786637321470149004751026770095737382269568845449616559461559776590016386385098531846983530825536834433964019911825982084984045208722606755021879750340401312743536601644427964349195386219492178375828903705442914793130393608405690540549432126967314778957704604117714401304969403053767379563336622818401134503678354022647756538051821995246604136846868634596285552498380899492646169667486200673028818956116247738605919528823511865690894544059299919299633912477163394054215439978580257411437820186303792235625803026474971128727677459358653179424041131534130290070588182199410135602824682405061586461649217018033975528570389708310166215484217725961548952837383027115005315989603510487313451195494919898084216986760724858022687225945609397293821825934414548419213362395229903721406798315826536992495176228408252278483234023182248160434341894381490118373782377354965764451373867955178582066190731271687483683093707662022353537779521291025086848750120463600588450575324678845168083486159471389793567861921261589844345204410616556891547334426570010736087559783035659614768365925201224296648386270309414089036098195299623571276302096648354058555307171759210565744576035798821285893006032573185826012108620825003191512371518301375514730870124110031725426971036464961596555690822806669353904239231518037701078254536054493437995174158611340128046507401292212009466039262325561652956284834041896332079570256082415812901540851423754044293986454465236898450018177694332212231754831832537513668018532354691365692581092387210397419990193046666052366657522428675146844070072044414364737012713454575184549843283487622414745872824204151467811745494440412123728614407591798196301659123275906793503282566197893610005087496166751129566452396562046128241052917003234866247861433588782159571256434113160745781942222765394879195429709406792947389289435837125184599088695498463052999534028571282800340541792505464800682837765789852307664916216671420717275954687379802975917344755578722813433707767183321606727972957483987769210774738484724052599593714699424796539854978640928245740632917416295528027643345593474590721353617799749136805212340442815918442798969961286060712064708070452149496988363172738791248839976446866094329504476632557872125239752646952562242705068967776867250534026017861210266138661790299363819088193712387191115226762843695841358412898593803224696610506707647327168699394308714776895909708602043842131680436531413349478014741694567329104505205164224475900152922033509625515484908719868250163969535363254714136334042899828857697205881032624204638466943864932616878473865369137723005621363355810844732111009789027939724487454616007737809804780238475950972327910506116426958740393106274192329133038697849051347986561085598400270602426173613271088619907380500624605426179570029209863665674153994299178434697762697111252534121422594803060993176343861365240424980318511660012687958703308899151755077143955319209399748073837777250207002223949210863075467554013736783126411806635264683186932537062646969337116730608324487906902231680284645954740774969198700473793975429092020715144975533399044933348574957023210620662829622950933128734826639412027245085467678240823400462636970136862952280043646718867080716590151136656929591582134213735871873155701015974720225047819219784567922544813367278765375093934515652860459372055438240659847779856862334094172800601221450737639518900581313611047225603054975373264549174229205234745383043043152929911283529434641565794643888516811776946884384614912774948073725745033168685130501808746209629650756286367489898055198806122418573821925207181805731861880152167927055651412431796145764943323850379333165968064806889092148052142607363068869900174762724974938087071583151151441547224602320074662173150952620543957188786983326691226473711831253714618531265337366667387540062301720840935066039542520748480191451435082448804686776447379425467080979750479479712407428768367074695773657057478302942858656322801202781835717539089027488554219085044907213351421690640730168056593870643239732571795332550581559889030756016040741409176770749869204184140980805785516906543743815168613707199351513793920607364113357467805224153737438660329784972852060506081604348325681223389111837323025325992239664387909311755949948977565082304227837950977080968153677200603153519866584309576459894734248316832261632394100119669973802565044030078294603604125051057268250803722963334134837677602820370740766706049705501340901645408312168274379269440397095635567905700084187885964960638420336623702018764118945640197596854394409053893260537945031218312732873714646988283591837550211354669946835787455864310455108776762811499057688113923020019346045268861324261774220489308143630803377251320483070505955250056558289379799204609380361444253815271138079922032300367546374957964244723068326585620279072799823525893626911991665003938422570539920299260024928790512080800834731279979002991336806110742209304441494723809438865116404379952773728270519553518027657995373739950438934312106897339215891005320916727280409253439169397161405395600226231250041348422816750063473059153238913343455651804869262197056543992589327827950612185608203157421352347242690410276815692629176273039466100139582068061338026665449701507166721882572602370641987372735488137042712103958670050775590066556285374293831159368727338558881434863067833055448229172811905263409254285521253103543408494565632400934524757741472851803979373022034003275209903051833604048694851515373651561384021239137615435698775256581985900136232076135762710497738359007153592195377808284466447867395584949107617074356486122494023155941693276170510046785386040748790650045843132845501972265407706895226969627958169644187885107115350782842082545036189497198207033339643485182385051769586931193140547353298149542498410671406772584879157531187614237442201328084903269759808170603172205236672642844243181707111736422415230089940894777066040964943473041938036174970932586619870220568439032589414547656604442387086076607157691681249453449054924651130561425810618394898850260092534316134023813965086729529930100755821788741515634827118049439222162087178771152435790536990820345643908546444177551495992024856944077833354320102436853031278699159640398294277926893605987790696347271899075295189001062133632385693897305627029806462517115259998850044319076698643333734630415594232241641727774434713573515229688892474566176140813984801682493728500207939742674395531430678707337977012123856645981861493153541776298474882062470640208822068564440939683335901049128362636956196677067063505280388723944675137750068712433792568874160356701854371739312623193671865759509138872021668134362397489840958655455880194724485302728266174382653770560481344532119800416864436992351974828756280623696123294235193496406870904201137300965114529151544140901650066574000671531265839836270652695359012991977355698376821535774973013146298822297426306587529217523708927216232323348459895993902575270693635078959924552502517518652234232698036838677879899910888782577135044394326767331967629783277150223477338849073248716945031389912530694515584955353496896173620606423658396124418679775469810322295102442209094635987427697176683701081320323270130634269957825380120583047292613315060099964357122845784794702433389884670153223077813790390774490090621652154066856037377155608477775937017657234236267074810791020800762578789619317036327121058377505612077932086708495494276865530754866023152296312469640099486141373309502257811600465175588161127981040224090937656212328587011114222891549077259668406750078273594792437436405192451402732616236498930085878904657339510025039376889917279440774641917181839980723162658293300100294815302298745990650710590459092948490032910786752987759365323875588033966669361598990118169888094623552582138823700357153726480324760296976636952786091915912696201167364816016789295900194272340145957224262167964523921199142183428451260512829633473059860417200139716155634921679403209918054267502088494676546774374097876344989822056362026239890674065660861910633696175899485778361496176114108549841308950750067361115863352450975473093044854029318868557477802226709519833984345965256622903689625028094246353180819125316518075090348983648905207096195150903177720736427048926911416485092547582261600852688128542642793736990543928264805932027462887138763988104035617930709229976114470292723097992329907249535209979218374186148001201376161791325880910930370848541419753829167563163367924431410315377966097557691265493027713850559141103656395143308239912769260791839056149869958695833524997864960304115852706851933577056054645006212183154619734324485296235916735334079798028495787367135971266564212204464398477447736823201416546598627514033716429733548984527969304092203834945660438808135176324851216751525239702623183809702728518664985610544040301601366585885814561523349774370122705436637978883172689708899053397468940716096117727342220560527712819634832609847877775649637541494653808394281644856659230120907186364129993036374051885798473094931107563547770289021297970219246091708748947166020826948803642113475094076986876554132444865655122626580206753998683479857412386615261543203570909315473890093479489428499152393069016099256353474099916049139043962813302049033419160756570268982703895497444440403650820614708248866878044939653779900240712836075620101556069778217642566588839649369142463819807996926773519129766722667340562074271877634186208586257512157633440770184495591393576470923227338139690389585905055428798329726893512230552224518437945974945610344617705997936562110321749573763953781050915681139059153304497401117076790147148841805070335728797084146810528005243074648958159380198637396238401770777293976009921030487925414244720342206572748662519350045475136727520052256298416419485109851695173365666426273085742482203386299283340564856831736304650209282769811408925853154560344089019294047936504721145467593598602305358351040857062916919932917746633827083185065736940688468997755212473939407154745344379264209297499776344125018064895194205079227356116512641105766785861047890063934945162850997804922494162069105814868218397828535030636564074575168850872053088816178909276716774739653271448439856732513187461312484062706945305643738900702365685603969357077714517490122661303007237502714742492057145358937530109863231202843766977379878514824273268262985878590313286828297426530467293949007356079367486714134512561465039051571102462502867754826638009556941731292705857247803630270550764047513250814221108590670951084601478647010222596006585498428392806938941854797722283119016642465092541372716972463540910176897159052744577055896329288560443322594330777092551653192606475450295026814141387720488413424961315018916334516509565151289676769295604677851046615872133318173719306678525090159818697748973767194541455661568700906763119991892988210005449910989748018524355190698080550591937332284075811047843561812259342390628609944536641256814744874523705264491278642262527634146091417423743930605840033129239137763584012004241157051011599914881009530176985174481304379457214091082093050437254712714328827179079641523559888522087699275817622099476488971471269883712023989720916128740766740040214643959211328652030239036225219404167854594771670240289655997173398335609820833818400020179184670084321247577763506211673074674068585907122481984161963272028072750521774514907998772105301332825792699371098120725132885919483528098037362994215877690100464955664837453969184267717484436588518004577549079041972639124893758518815917718342970421349559901097260976714029737242037327580674922810635951790201458004789095410086485657974575511610372528586894941389654784839992218230979414264152446667907182065340318461133809537760453565963750011515209965942331421293985146302434269546153717676172730051083357070335701222789507322582011286483049302065702425023359255144386010050643167669753516496476949691301496110113278375614382412344523497784600232757500769747827770522574430426840513637052471845897197231269668963852886266893830753482414824365829224793157894305441039594903695279391472988357318884094884214185032123595515565078081666762967975203655011613035169167948764689721368426482179354677423430413604772976847515857449745512695690397945740791890540474692810300258915898821529745531090798114506410950535474947222291619208916269655968188618850341835647620734823328150466998307641853465497295937522848726483964722731044220508442185420637771083209923909239941790970240351657516886294039653497480465879975857652128922298494121804590371038982883592431100003589142420510371542770457867521360242861964677848570926598478684475868714339366173783566332355217969909227660146859462821774020599306573022871952396721086346799216570981757039414249723525304205221015971705261800040615656437946770381668850630107309413302983387900201126628484595537098310850872363767309956624228234386399552200921235506718183125507466952670413740852939441501022604001472132851815535669170896253720411982939176779014106485008495009446916317957843841440503818933022852189540925884111588495467909797087069362676236707618917241136283634524685925105615712525905834717652511977869009627660916907322118589809243908275224820347910459645580454754633430985656430366392247552825268630588113262121091777120589856808008843573591791019404913011073339253058580581967396406211734173172371490089965426413870855619395689670181382704246858534565906139048010713396298656695413836610713966763907794184753572523446816970099796718653415098838123940779753703038333980804412486151860578729448588644286863670900786654449253553087300056026322085154316544626361142901085750293270881185436289768889140787124507122891287855715553641574001496021067593611468077487461828669410444775678480221350280650364444260880812813350785061526296278316482363600690714428899172097834261601178182508035409223802604629244975472691476209825557897898646843369337176313073037059959500225121148591333379566208122975743444961537377050390058228664560540954984498590875544013972534738254626647402873169957393763414730492922851027601732374280946558986030991996206701841807012523076334970003924372830618912830340142116929574755415731382388896079163944592664964232623149749551690647024784738223716084099605414458876730122723442714313804940844585356232727386945940432457714203713473430123364666977186249866795805323665782561937485744598136382431009028959584476399152861682141403144775296029745976009601515992800576845516356925043812061916719535787117676121727217108008696935462690276025152381490349593649753152698409618775171044690628441548990357656847930178790045066817547870172165310890461082576788254860035741039256360346376310098741397499013785554338960288968896758010733332383813008939633074990403562930954260476305224959945785273967235061104790164162657836625022873294816745887464872901554587551320168243299035396166540863214128541061063292465708912315544652050679980683985835724201219344735412487086817779370604098500126846561783765204020756510837704352648809228861677421989758799282972294386505783243844676108426097076536297330161948555169392808967827219295927461120859456465147561583490889366793994303577050065852686787910384233075989184511200754748105769105338182474613669700816997532858468828129627891595118959017793800673227534647909399775545384655190019233907311123746787305341255856614134442052751323710504010190557875085512441498412409334026608517255423981072252323971229844483035112441646944506826670783271730516176818263757191153560197211536648585433095096410826916016180103445988845111138210256988563732853970782090262647017924131686268716598583632411547917456463756039253321351510988642213067566388292586668330660943433609452950559536053703632869578898585959967124684860307610912820496200149455692035738798980376548742774282890415551570074418122026911965648402741757949506773131082977729063292153620414629856919635613389077853457630766595000805542476526581648532340985282117377029012012752308720258390913952680230654835482093867322408618226603585769284004625869655318474625720040423005234419870092621027889907360045829153706191372139448190250372012127199529957431484869279146250117013565656160939820201531594583589114347755917580355836253353626474688638797747280399316800311221329013670655056449779708908019924701992119761957887864560031342398744471153172919998281585995050547995947899393273485863918511253539544068272022892636964537829231275784367773635811053837702011270336619193836772895908209463669058398523189010690010268364792536405298989273276700664613626056581064310465363134558755195041221809512119228285178438233394611907986569095476621436568095555593109951108709984232974702990534486739982246830922383536212927947467099498565290446540966524595217806002832163289490147823413704372448764781380448186933970105522237845449418083705799698626205631473375838963813961460780349675321447213477227204708315754469821304859781691447199925557296386399499937578667844328231353632303715076727975482702155877258516973772822861840407315619263560892833270286835374051668294499989233109130059906541349984302123890855140512232531182493269967809082681568514592174774893056602540157133191483700473531524782702451934274886857953574825521262576956013111940719821637219098847597815464144754040695770706391997982388453366177227995525782768558612336480535148388452840730355381661650418127525835296046518945016230752498720026398982681068252844803639481275601950475245778525670592586690785344350299222022864227854182952894430200502381232525818217140018588874272989820171058415462034971997280404824730287121742387623430609850317820152915824433743394436980681248963624549115408830267765348155879158226761708021446177695754863544585904110708539751947212109302237962611463821928988975673258657525464069266288018066352827541753112095310508161307251906128470182265420461569223685646047333024726350217351242117085438676845279470693920418109101123510653800992494126629186668715422429416725542905379058953239549252259942470507517500902983302934099353610119233150414362189106949193286393800647085661972016016396170672832388191166338218539833051087972192255732711268595055596141137440258757954963627833097080845523412217680323896460488883370019752073875918584832653341609081123430144510673703687309095786154067852617154386666232958954806558776882946261141331401071586419744226933078262868079824679729577723390967515471242539398683798077839159857769671910752866372674990389380542487759628365900739234831619996564312867334703832007425620579320434579484796863224729978854438645136830939245061583892068603291445455279567113747489170030960488770131293478022107766790580886889536251678970444477718900711438827826339722890723308633734560989197218317844628801944723732882600959227260949295970860271212402781398232508691218546770599402983319623878241109451688890604452458601879552695622967649561399973378789321809246084321445757826059174209539821796017555400003985764283216983385929219773714264724120272577494243586867451759095348135448260823252948980319469602410217788517461903036572178816905206712397180802132436509845112648111991315850155129565432591166388758663982217320906049309970337435979747624490518370372151167468284033357187876327816708231475387716097552629445629850584699219338751670504925908609610160355806930656422545841833337392727090729628593752567245963564909868051897750983262521486431679798258402212285503851265611066185261586635388583084778710574882489746335416777720425030608009199362584253491667385765457735066392330841021844738131512150971742652997020550121028747125930433455698462293890750974939970815765022613805334384025814261743996850504373889207845496556867302200020152136754383272988402136165746259949540238781793469853971419588848830426594642823345426241987464458820461656926792482715008929478168059558584937843982874007365083282042894974166443698243934870346842645470212887052666013616184068521827041959538830143912536974191717333245594822306001892418945008632959166549121015589520077985580594704012534194923729204575055882237928563727344794716421755702700502244630589345298707529713053871699002500700489630696340269664614173256591303530098726573034875410587413474454817519283487140168501876674042067365759616700825896443698508670044298906468453310143948814420916099728694205973942896895070364115380866677299175772183983521869139384994695160791605946795189119857819078273460890680822154968277871725507096926381716558253328001228351949744171168730325216066456085208645358083304458170592634795009914689650835722889014709008448937584194143488648132205116091252131224641907686060015282205987863317005816496143947836798936957553870793293266169539776959944737125686602983819202621205857323903023169003823987602066848578018539038111525412484574421436316070103965343097694689308492867957665198808094825746405415774052854479185311221831108233778769536546618555040831988076596011609905247289790684565282434614432236683874762571713817850405080991683466442008836047925644430859634198276652563084471675234740340488009285529820757607824832762783938692672003281510277808661782579697671547491848556883960305436757500713766452447144937762556010751800908555064111375284715042480808225958689951594643880001865557151360333297346294661552481710684206186341034155635021311486162718481655191985126463522937431773910692611645440628267441548851042752999836362132904854037584232295592297703152042795899722469912614349461917701283459798073269649984857229380756896567861542920026623233159902788130546538444471711498530074746377443661868331444703820401313418065426310962105074676001578066693841917843162240217144568961376241929650615273280950314068510967952513869598354742853791879372312850382462351938191335242088029305314089025741466036452924978306871399923732799240014627262467176090856353196208051105587978597807598408915980954141545380163387693989044416630215306538946599377366837193405990168434263648352150881365453828578272595302581029377342820541822541780589788995946643890978041906043898302476157996746684301365198556506152723774850831135787987140067306428464412292627284233705648544266700939672745738103585406824122319397207541321034258762355789839889370677588941612764802415314658737653304328634305934278301895220030956991662739698578074193597880139640180602367027657894553774605283053351789378207959239040643089607448105663317009992702798595309478587328518685444356181020439654167232690347941990295977545028957994269749221770313290820154827287724502357777239633112788299727295487560608126326075109203111465329910783822676420139424811487809741236721652982178054323856816661807182303265728776998443774304682399033030075421260733054174553804328564765044443362882200975718631500982661261973433964357642087947739815856756972066273571734378275462352511074105566242973182381492839718802270306363550300983794681009305741824710072528477544775966696602925414283732348763066711911356304687571550210061647903280644620012053679006807058172949889554268459296033790735969100299204860944748565991969992190719750544507748153073398684371925044232038372292248599244875761763150919071081081315502257842110298937678322744158155386227150523045002090159850323748755310329989077658832725252151218577551961937617594771684629263493308272523675849634634405021451644875700052172892697653194515386059069714435594183866871167319591449231674445719795506155493854141776797297517422943758318784382157202067499909647565868201261608642591352870857738324578784487549556526830936693258033252291574098419833409750364804871712986298259828158418603842452557833281422637635476178607842657077450603535300225005153208007662284912662446898578686555574695325121802186425145895771686139324646442446839866193070848666594937788123604619664752405936878219379145733299816654794837093778932741968764198453806848418109066971345562236762081493616374706444545119770263814711230195167756763601937722253340429347564107802095202498709648781028535570073307389752553809533484585726074934097393364978354795538770296232879458977438680027202976047824765364650736318371252130518753676570858474201503967030085928766183432020424744678007595188136177120933985743663439861330302124563536077060820025532731323280049188912715145904988078996157373165988513507598897695225214405783578673440776945335619280563262764133443772748702226676217715279456834644454828300343421397432293738091897841608396199461430691243109469242911501656132334866245957218480882952340783127425695497283202708353198949736871588443031900928149809615250855924708526355356461052768521138836801843198588600787326629108470553582013520760513920334639742890692385176761955893975146148572324240850208998855721344872110782030210368271959663827677269864887384739257515781746754320312984404028304281063486949373881180841809351095617442904348626840771061754941671012075035056579941663947212767229638064321929790103153152201534755006156383991815826233166064165171012115700286052559212761031001395654972594714516374751921355714332534587507885945457061169871221373391461925321368943782825256890598508880566961527836276600442866429950926873788586702964393565624166772219693166648409859726653507275675666084882563302920977741626081985869611045396632280255400740810151602544960090352887479895741896014630363496388371299883129045758553605772733815449378350617749472998123018107808121150192145951052086280091016199956466949964138726119339177907918865929145493509258489982800091399856338416023548190639280684707921704540129559457832766745872165910190015751546665509522879035773953984930373638803365748283039479672117909640365315560761984337245593332415103815432613249401534287608899892500074945092046712984858436211025876012761340982648864392012890634255297407938476267309761755068418669261471764401643053572041310486443182361929041930791561147580459017785764171167743368566896617343930309913533995862024460757351232274544877823714684672763271267999401705904832868208173545958758438232939493660915068153535404236721011108668931480726707651056843953305988645957649303247130755123260999870448004662435184784294129678706863405912080911668598407346273416098133230140001814069944927506825895971613989799712227215703941638442540301076192810045052058498268933340287922061289009112593933003955652241201787297284922080703547897638229418259008918034411102497597095208995577757508746376907612902963058300987743500111324558197157758769134586529514292652854873341718753697450338805783786388222388507461348833310789743875263842936976260655134524575651699573081883047155079553817636251576862083377276308490312268017118638523532813384424221878995600172103793698847106609829756281487926113905272240121629811198592841266808430371023974701205146495534733189668747988409282701471924282290107986472072171374392200674566308597038694332038204098847024572493759848042463313567322597776485980479028781114674783607128258064008697892301008098484712347082327293280116042407357298884025239537381239345194984399923509521747595532938057272357318145966650659988638439466162857880738296479916389502815098274830506963149885928933490177485699644911426243733358459288552956974592145718852662738435471024377611007510393339165301879068921917047017220903776713915650503867447358004007685630517526347462171582345407154828630550983071965704850366062855906238543943121441251788760660140241034708939760714539219884046836232636830659326934110051856065625842327071030002001619553228928660896447760607787711799730786471354916763761651652982969176671026511754260127220993874965088324386785875991728485302400821930568242740846763267526351328184680499948662064250158066655237930185567510288767597562497772999574686619664585764969749482878537086914411001077497914163034727754573695562345484761159778058187700605404174872122916367612558513704918896491575874033935143678351950639731182799710056571906737945605428895880987242197253334209407644133962827843575859741887877616276922248065843222762161631426544124833765458394325077448720727026639619969783719642094136232334193247382055322618469075380778587244364516596946327566669800366122116048330516153978789790002783195591824714491955371406883125720868223603809187410548696916810434720899354843575704448084201166648162503515038526238027018960349039679728927816308793264353121017016774540601932702129675935420720290724222376471264214081568564465501292425177381325493813803206367715736119281027797533589460370784376897628991276929725845622408986613553430619041713742224642274877221251944540156398060234664917871120131705956526867107514984148300100494065815442427529125876662098411473041347992271726873211953722568407791201300961634821935542135806268433014514404388248559830820288257162528557441220577870891584727328951125018000879705069480558466758375589672712870189507808212290364778615695715985809292903380915728556967775403407247212784595436425199736178827037498987219197200159128591727284379177123259386021532172025909436302937939464023596749911088500906837878880539043199333027592731846582363782069384965569651252661162180275154244582068695038993205801079263008457104144050668475046002521449144945946117199880031812087894219203560402468181564667546089962137360912341247624813208676021405512112783211651403595857179416335344192608506933956312243770031576069705350281603433951648868433540467022438881133654963157001247048663020417635063749744215386129935862847132326445027250198117157340518784386626876085755591938499305936795779454765410046710508671816997747338479830863660159643113612952337681383912522151480780052489767069361529017720730786059409443155584503200140254057829762441822036365333853945973955273740065056149428072341663430953870176295804247833670479065269266050521235887045970908293048551749474589479090853900457953264210056570864495787961012567891744064949069446098140435461488971620786221010070677704541875508892848742497748236921537882353561714852599417126729648651880339082774133783555308921807158128462626435365680447303251323476320165739680659613978030077380801209906449771894484370368390625714229200033083534049034550022034774013819768032421279438840707222133001735721861051457341724410823031202148348319816449872219337043672602253662056425061195671166000955581875884692233861687187105533493989728148625148920823903360759028914406645258215154741223394629812370416528453872466313645620546198007655139371380011452171558887127772740843327205877999267952657924593395784588205468126334003445417654250841846286954623229194047133661285781248456926608713246697331063554913325282781749199752066041102818069859256273738919799209268324091875095908038890575678440999975316417812296773757996908216749052664778332200508958758277482066228438516086725850282522480216361590424041688448895270999647206568237468388440535562927225460668542791370600618060034068668009898284218892393298121867314058253370875105884686603306601339702942908986167676258617105498008562490182680863552742349436200811274555868948646142003709813233789640179565172157003462104076236003236513255928791072279333394552368834764298824164277202904092556502349785884992973546161190305740229413252622736926054774142359106142206656040462647898429989073028948161664598447107606884207744048315826616041524957430626472837743751106471187704614733623927376120905198561539779744426013514825167117691536497987479645095558744406419922951421388294103263869947446127770891410643395734695596164531902795107223146839916688827560160901337549239130577176784544651306035753698633482707306977577081318071667224040816236803833037469667558735735744666581730908281791954996865260867909129643801699494013049690968486887166010187772566510150600677931836121909083064463907034071202203816018002028403181757781669780862625464218430404942283234684727125479092119868658316579834658830087463370886349139124476831751075241442400940608992138816522870930499861606012231011248384224091405039452582308051595708501408606056888934200338642931961578759249709898840480255344299215926462006267252271582553593973648325439707438644975552327264829802536491485079806027596893318214616284223503248249122191744526126430006862229936719495926987084851656763838198900896511163870138659930677483331107631345575678215281232533014330452190533616032884414093956911430745632468064647936632366493585297911447472023462356916443083833775576513779570237051266998507550314159009979989380187854759171025467062028836260564745939308119139540428342979437341878832356011041501598226005493160037509941124516847096441735925461421559396412917414659935764435929230935864354288275952158619613450920841596675970218998509392920570141132557771180952842830244357234558857108322851809724128486280548819212321078433994861659067979979904723569799419649399481829703877316737939055743915871799353868147813232529280665919819736249807729952897622173385385283865960459348058905402445246190833771131600440530021635228773084402773050468003532874147312562268090210563385040056315675428825584826794447826160676408302270526743140496160318906537484003994417921771910617518945274355380777832096140270073400119751559629268076876478519348977703729347023685355471384650778067693233451952906609085714173510751315625880626712601172176988349823403355914043700235214867231886182650053183376448914873085552664821451760403532002878269958774474123849978517812200484780847229118668191396091184863211629251725376866315495694434837374943055297579038221350514826042610153180879797962757183916491444011028685015416123315579871015894968265371200250154098847440819527409099086907774765394137227489509263995295507428116209348681007464389577693576363384233915817582392932663127669410405676973453252534404688320140094277027489285350980420125297462106410987980811111726160842971183892583234403761022893843378841764813196612341387870735586978785176050086029110302404012379313382607390613217833400029363680530939884527965658091361402050561427373790466005771377657253121420028335273775983713678124749675948898056256298114420488216007193964100173713204556254801022364798549834272864596377771038178769468940723779306978265198220287445913149363350330766038121154098608327793558923334527012256148740458692845792835353672325079000951869564660953736881820414403030803817521377680297466899725013907920166872042464466689805672938967808959766324291199445755712586857426153915994522675184171321908813656236142255855770137283464031017450658262694199687228729589354777850344268089552857951168942972785813492354002032924944554774720206371926046292650320618863908167411383203744289398713192522500855051458981071334692825637549622368719125681278411607205529361662089814618494497744814516398047512676300621915428121126415399669507639722937529642137368592070349110241981394869801582913957286700028045211030784716424973684883226913687005378202491031185061552709150744466294355004723265216233117647084543201694540383608688023851886260129245828280211164582936055611948938649565132010579101967344627848106265898445369111312952147469583063235138837266859078021019829115963440308928990354219616399757650288833659506353066963230922815545089054533445354473126098673234741373120930352996017937177562359877700600084544346094070968374609000627299937274211570831206812689043950139411373088906222511378130933099841461163327917511556878820115529657749527895003679971693428949345683626409899618737049844865817726660065166175300958397224624808420941026873810518456650721075680697888860012928525655284489185617513549844599671965535060352525164649371767899139717844276198231363738383912111658099016946962007186646432932767076491923658217966092434217814139121011846409149478815245735259820412533286780333855595858674124258672020579612085416749893565176086172342284031457564714643971924305195581727402951477602888356734788983087956215307901386719506696859738612836094381049173047510723934845294086876540881717467454070365872242246691271200450863212363230671130423006023861818215389107413244744676304721406682445015323032755836274077631133118624019677603309568840029952693278639203039989466833516746620007182967462687717574927556480173369657591090176675288195478870860271032083766484024612752716975691481884879214083479282351125028665500334699532510353660376883324352538217598416864252366993433935722262034696705526877529573573122521059276876151002769886201789899955624457840884934297046754005119623396642978707382760804720028628310302785307881449840146698409194333385593408936098524624527154403553480703464658864623454621511147507504681948368220686650411830688578371451839224393959629998378234904819327877357742090839098059650682394311162788274036535696260245430352133218721952011854490103516736747561174043706617190772985669321364653603103467043850468896176788561476774698075391029357305063286847627967089911831185458363105705525590967360902656645147897582116589230298972140065984498953230689922456357530895924146246247098450296421885518971000286624560394198955686930922364093565450041481038988582834621453915497313776979333927705227633971884252038300921385062904387643692518428082160671418501913033519136840787927697833132434525683019685927479451842712276605433123007569650067542457073406037335483138657755828660115277470578349832517546085557114753250706787543147869588833260137720733812275654298507729430565062165478180087942353319413564909074688399654118873602191319756779363308850821463829879079993209198411289488269818298660465467805646393123867894112369600738711048713370953984894614263971228079451812151780288633916548615691908037086768121827837477932624066612897359122175704338711578242660992049370918542408763412762175832296348762094639789685614618118742922220922563488441364094037856194004974707659884129258823300172694483620140149688801828626667822961758245865587016166263383953589542982119775016519394895734281501314599158730731628073227386810130402488189012667028894205355430671705351523294499524093903179994976067286766040022917895474733721067818477364616013510069370425005470245619175600119174797505656122502710940721893479210610701455248068929546838757358237937457941896837289856564686126219352798526196429240662562829414323207921758628362912945018013140135144300004748249549932667575879317108312241263766528703443955031050414131166674205286622141146309418663694835739360810247241543096489711974891418844721004982893876262111244257887071762650188140662693660396717632697054627448004586023908132384328832757373851662142099138271886103328442214267477109939991264177498133138187412093576303395261768568681221852426281700424760982772773621124600877886436873702055451287740428223799620622829016340884002540848845092931961272009540816627598662622647972888006447569055128712226947479988906652604694958686088581025404345980487754839969945321891095115327264640467972487737013267058870485963056817494347520759587359946370111603864888700583935037002582930366055420360953802273324108035567301265365306949542590114010629098306275866172584651941830270746820530608956001446386093201177136131398722045733832890521945428937264538447713999447574765904850142837367987623988507032312796197074729250030592629356991463299209498303985880161192934965464498417806658500994846769717693135852102502506760768791857081063345072297925365409149051528900657421518636480731937284226029014224365200361487653095440365231045724175971908148412345213300694738107384529580387610409946313341088496492601552737003298017740687000194233396489718438702042528156184314029475483239126305470845913669246854980184757590377945172437995628466517234157498431987933023921996731281136357740110172642317764782645413242285782576182686923012046988132301681524312655135097255562157324126143635622762393157478604229431622221028421384496944409260847143687368424981636978114970381181585516331257108742208992496452613283356594852445578942909941785077409893402200768497939541399518697780368820994900427840316039079458429223163130841793032991060512288210507275083441960098481480173437235743553979135129274212361491631867105243455908629332837967323128191989695435034393770940703830110883968961789685054385273694375197916597302480249208746408462095384144254825105003936601851391249925121182689317464217388824770849900518734978424004796264996869933411526488594000290682849973293284578059340515761475414702865359641623398952306622935827475204877147107163179880590905350024028885138981928468649431898618812439318448906640728079197340368041482788542301692185189217013623290576437203130462477532859809689522234970299453515537744443052553753343896426683179692510021235292544978959759225776458530465907198256848613297994970895034550624703594845798449731739461752783998556848211694672775833530478353141755600665180052197500022929130861674473076084563381856085877352504323054376384582517784725172017321383146879605059542864283774150486278186264566104401211634647926791256143443185453048385661886043214629602991811854193185246757061441804965711299310618129272274580494944213988878650354474206995684146817988297583543817467755709145813099829132086682991634761588966878965646324679783593218897690589888379404346936312478977434318886526656526659186080752525904404978574268414198052475357819449826540543509474598139069301586044814533255166968927433439090735237881912203451172714924781206583083327504780218931874431303146830143325379932513861000972751740922002819709183829731492419351173637349722739942723672769820482661135297889359490013978673861402519033227749196879119905488889336046421864483010154678045108731011273109103060444495066767095921961842184334276054298373322854975866984717624431263224070422133294086250893874208035725253829739049657620848714317656457305893963803296612872185694309829293304901591097069842704352676162952752349321442627621721434316908002533724269136791423497717903532478125560476541142575997452299734919225850212066968171290797263324780591195901183148529294254882546994157159977715752677664795158986696766142791239404530528950310236040262361244105317584547320647038221704118527625209816411516278492798714335725061054097775670704867268050164365372212125767818500661674412047511285300129692358410163982542671214716057590466656003142699310038636515200079464919653049613258095270689504124770702908601316730857287944309383396779611299376016883484630545146545740058971005404848303544226916227884719871415461121474911004435114441911019155378258532681924623433909125429657277152357134815265210134363695174606815776438728686510921757597019790409132523294327159500890383536300502874013691124721747509500740978101023033576438876410572015066442660287737887133229758452307115275886340772319628116308290971801212081426790518738120182886813039103379054628937130248311809816423566752569332087067680403306424726253630894614232964852946597932486537256625341706411682666647866998395009366269844123778085062122698862303998252941853950440847994808810995399598450380199866287773155810954756565931904631070163051624972647777161702981689429364453205922065283088751002233968873064513715710352460065103935892632056021075681510791546129626729461289810642470172954317607754899310301693248463424975177918415607643805644255857065558200091060810013084049576818277197592458466991523383733635085827739997317947525826822988906583487547029912083638753520500630324709568221254672011939433713345504442134399827014044405165746825971614583532791929975540615280733370936469534849498631997320471667361284092875505965678513646721540810111158444122084752417112142671343079967517803390504501519010889093563582109995496862843193647783757004068782315655066083666475536765504599995980313700743361194247868696906792795684847978084753575228522691261169656157939156591036626297763308672473693759552737394958404849565937292453177584273255102317686604980811758015460569481481708875435560440037179762150832718380807769926569079005462994285574451288094592938890649514082194470699800747794684309524625727163891885732663673531389391458643736262377614718928735143269001026579002633116923273531086166279420287689155175767299777350496306977660991240582197127275513615202865787207870853128186853561891768005550360662496278569489172543193621302158391421936626140868025668363489328277768623442155887246600977811243813076036188767114008793818265157362578272359365984719608949354423893914945497905582822801292564454766583799810058012825600448161265443975238611906466738708872407046243650702827932392116695039979318019890701880076560416351311501803287620389210321533194901976188145842308751844105304034292473894422967096685334505808658732001081660385314778154164822482348523393852592047647749397194897962603122332002585845164269190345742759252591080176112090902849302700558307986703605731616815329450895859978396649615486585636127195440043799060433451761878979783276168905162747467966351005643625751398858591026393763471517769975897123222242265889770395807784812156935134113677340761288076373865236475782605701156789998256243785299500087542310547196895848736341056313741924101312669449545238562051119393332617879465149426596352228185004724448726385247889254200850581543058853685954980088414446956518945050664238837385023759794892999797243643225013234418097604801447196025159754042895495605514275902585950864425823949613844075138195883236567561750317267573142507707844346791328227100518942163413778980204972325933119429951449977680083095670542958942287327214676469063623782593513581682209811880204821485203667209099810661640116519974377005052650294969866376027011078544441263062619373351087892665652054665633217219464476846471824391298992693820779007919915063049631542144941843027891948903601076479131042802291260893397668346408259624729488285855165620201023612014522723204742463145168784011179982025311930843659351779647863172753069225676112220561309320948027262975344088551305684718726878758124005259871880837956496793986370386515850563428048225755363978558592684190099312747730251837682014980685776218154021679302219187592406075221571494763813021477452874050732674232098919696221769985317694223911473884475677793901784009874001360610642278986741309876912130730344054435358973971667738491890878021147002191883471831659282537780831615868043479840324127821502791435994536764269668546623167089413761984327025452528808852219214657894729601105165455854529399357436672688854688028318723732457445742100651507945139003302492739731939772553351289932903870511717739331964157386959242740885091325461422486112927358274339830796529277428968045025818405206751913970993102226669049075430669766867019816617821697777851459402541305051667390804652146609885368086146914971527503342088418379192551716586198410510786174906602173842887778604626447570813086613881374230557082396779816875805247716361601911469364113686513838333365627973087122432212565020929801347152137289313490009758073055488515244603491911286999796754991868768692269503854193010292692521041833148290977822180362598882925137255500564039011066423120094012631430548619093572601340456984986146641456261211390409646356784217735650710135508728588628543631227095204814694360438594298394817245496264032463543720675421663277270945901848612694334665860841962282512762228169982132999168824996288151039949017386166790011470828567264257497213283731608012186415736691638490917961983119259710281131920390486827479576188928241480335875819638711316739738721465722153807059214326473078392582439837893616422152009480272620201606829383680260516676973952345648961353955719493416361034818010383875503320985631628481370940045133939790229732996228605415318050494230336458237149179179194926754213982574622949156191020622445087250360964031905905672124491582336229065631761467577975371869771796698488903656017003084875257575229552511325073650400405969699115843425412825715614288738965745681075667102466234202087480805780562568662831494499076708894755485360827877677581628740049416563132159334088090450911544405727391948238912899206308768485344073890425362638293513885312452145434580478518232336373338798321249196350302044442705233806350207395911261219955278711222259568507466568191503889365546609699767689598091024070036726053034961609376822285721313903708833501630102565627743446569584682663259902886479163017849793114542671797246870074855941571738145667769866076596133448953611167415416494190566613858681224182286451534344323550541839152287508462667095535864543316675775837308816645864741197927049666726348274097674842036278762003665840350312165862395575081085101388298448776142406765771584687357271198722848776208397890702417832646631006795269287964185960132609445951229033008070351809268982314422966345990786738578791823393384246303533345408599618633989424614633712131091419901388011578999258492713818235712960443229027512305709767782603607459788096086195629063976131742904653162354392380811135044194344796528272816016025017244627407069959314708995252166868052994093573557528158895260747745993303390139370716799904120861637595968327267760067858898430461623361749782084881499595592619421095886068699667826767329421158017689979028826557820356700883165667670726262207526755614740382114705841501630064519210927498917612277519055958426480932809231296255014451295790561951104094373430153138607758934412584896508089093807174380314536060753205220465461146223842084349162519925344554220613276412113315190338667992860589332577547903201828561026170165579770929153398346446039211839543928857655160855668541557237333990426337548389704015354931471020856882766332626272222894253587868942959208214552538947867611445427140921254029781706973950052185206239792036504374807885416135081590478993473391044611184219853252659014368362102716303002093686443692996034299322461104573585482575352354102344892969836889502436214977239499484724613036789507785717872026401355615612568807889276288135422953548145808818651444388501305853578126323990740984438404773933784625556283252320720628446061860829158021302582246973032266970813224221517343419376180531893830094289667264644456265462288626454035311097289570054245784783556680062577355532986370923840004764902256951793369948768978062210117680425976852416074639604625617098745134753331109396507305091201165376063342724991186886326036287852370686284603593171601233894715269412541146544616592651429784147009202090055127623020533685293066685383598146695665139609790479185750419892843383911785320549503474320079047124893135385616698837062534261569863542573727584973049589180042801620908583393889224067670994646627196463025582500562246932153103295518837443204787423934103420816466269000549397254821420083850600418933228972027187826675233517222370790113456315650427741055474855428744175550945894466374990037550770671324621959160345398704124639888278529624988068502457171937819334294772843557111795262118613605337504780094634497173994657536203416537975406748694907916430014185988648476815355453345914263572922072392501770006561392517821802322838380859493245415747043027593999795001287771514465625423024437889990605932989693205190990092632595085001912552168961336801675403734304794705483884157664060318837580924680428128576543006650325477325111478489368617259278776096752950365793493726071158260987804447229021535852396184238586502079877565528060060400262161323373588115185754309663824425296977616000750821659843441911852142422866091612895732413841552311605570577986318501803307694903378496497176898076835184555056078328821876584256747144600452621646815863847820037034047477485728379105634423283808598573335081030211233220198543704247082568271589698329289270389689914042342007147775530466774068565312377711417935655578824941579598550895604537528462654092262923398623669918829386091421300561663854138274952191173587372149842476081401608685673200803949171649254250020950202275121433756793169103544516834357695527327420399010816725647396601939447989632398415162940153820880068763667337290519167780015996890933729951424753255308519015036850827032383491793907303556448865387856637519962113485942723606200502175783729447850881815240490235227427798525610771163226624509633721271196022603649853072674015015417840728522644037092926369996302919295595965429412145527774171533163045776011132462011288397399672671994633443847536714044353837114798819701492382580035670153559763821908756789219422417836353474822335392563384699082419410644948508002679793743535183405797307305782823464361274987448890872350499006891172428429515610397134032144936541050394537998124034462781177141101329624027345650641106564968687360630147317628290940847458496204269926492278878381403540235378503917284198454774789121599605415580664040143715444804262890334452030844015066234189499948937831359588830434645048696903374945093665132896837881285129719277078780707149475229986456756321077704096131525493171421640389699576362993927099019324987146977135472945121036787041442912396274493380095529666014353534389059891856718562867031051366376069065873559300785188982158587671412616135038697732291135994212361931880198642803159674431701208112956727412655744726273737110468484274178334983532903963392241843238011488361906531547663694161839605452334879449530143674546948404088462883040091417527820108831970222194572998790939608239715986206729502258962919015420494070518489856404949061841739161054814498688326341048776405628107635143682348983013476239604664792277363386883170946372015682535166439965431912862779486826075125639041940606981525436883050630353516776687335587504221091484889387312223292548494212425770235644025820739181553795768706996756819968127629182334159414920037074487150355287624130833630900573235940636774509310410268571127011835472129392343590719980399596938213983439944392500623758027363802427858297180181692719333495733638563469425258710904220395869748513128020724604914339582392383245558548877186409327906396793882358194353117629055710805901727011125728451949600086683839127588019475296951275256460818141882034074043063527560178766732096650162497346753099299213858615764110539520561975390919333536955193261699370251974776033560344517567131711552420407745332972221974623271728589197004164329113955670175858408608389125735316864824963250942126562542130867815816820177123093312937032403517365210468892210569316771088021385605706059786042252553607733330396212035014472098775220548559052445026705009999801997562720751596444062120411388477499408555010021086153337677430210162562191732941114702967957033804758266317466852411624740811327685979686371560906082272528032099643562312029969780023958233263694124851403242997677001322545914605664709717349833062784586656227646763925411000922668177384641006968351733000760917924163699650969102726037935140167927784752355498849170549200493796974614999549664823307313404882151513434115210075673226126274229892599276245753662129710234844186660274303411135966401342224585168719759256425289989931877007559025275693261198174626071788836173749366327845635578884899807199399622420310229141817655468580193772314037675199493332826799423676856144542912779299300669280563130603370174113136482435510687249147374116330039730352866101303119452590081980188967247789327837019955805954170793044660025737120396501226353972368314986573166987573780620748789729969414824494609187541793094957051228033524950879262903837126226644805014781786304387972115016089103892025989026295864519492518259898301347749837427714833851463413353194723279235014092971741946224562241676833596898365670557370983420484368364699965526811329208352343994101839854949659481036584407917709799358072128795236669794793491724895488319954244600592238204215268504352060020079087767485758059743426137654236268165473386349877634407419620839136057031206662175553711000647757122073655222501894171867532303229072628654634579010535983083456117382351777685789747244726080144469631687924449131527375898413336794635073401558248955644822412422828271671358033292661886420767665644442736772986107819259493446325550441471209088521538810172775547887768151415825185577516364593435735753719427114155715522878565765894916832931871933018517192773561971249670868665689723338334887471587584195719084453549382898782968492925000947011702817518741359167784084113473289170021756727131237151343732815423011201154216812127653403515809571333542048163898085018197240232240334946174317545210206708424698328163178669991067991639725514717701066814201856949512285115907166421060903021873592811164936934813713190008715875660788945448936662527431102225673396488304186796025368430426700961058189970197101728865209378087366596100558171011009645043024142121933445784619431777381501201039002282296370386106623059106069702545992388897788169130390558957967084988079770886103308020520975960191200544248028927646441195795239942041628833314169385962659804954585075022190356532323578364197896534777703279384593135453478960802804548708312716982691543141409198786742149060615175200992153781580935967922075140119679857446502584344444782240900674698309028733270248924002296722782625425557527187260718136923664498893153661238922102972920114884107626666902236843321964206885234394937799416576167059146465509931579115183110153709555130134872094534546836770518273604606662778209869533213595710965118719520272983696855754516824540693668407799336289541754160464427265248268589647378577752846172664032563144342142780230493814568911842905302643960977704394488705034994768563813684434460093280578096966443266009591229274790436003836636407546262281410416085374935462909044068512091675951331735028955862856865455583431045332590671092430254249231493684590409863455712645507727701015243358065259869542625300907734662085553679229708357882585084711947571796859702803347132750811844475922807700310103682474824915107461344072309039833011622618218545104583749327378048275162074012109596497553157595945302974530903563155016966058281243825465542245074115160682507514768632755198013833443772856784796310455453581587535618151479837619354378413734842780369270889032443918490858623554411178251217686748710224393807526284758038720027498381243180131938624921334665352534282249151246156883950239664417309948438504221557845009990565731913723628466185482359127598066166452917604093426464683872130445371501800505039104893976052790735416596454165641432307875016726214392108726006599927965441417209228146230036667338897996892288846296407533740962548523086059707428423868161286008205662137390259282088789040404729213253421160158929007700142218461660835609884145920100401058602642390604905913918771861892519984940525498363969146215882046626328920642965791617718757044853937981220763908605400006243675536787210152484436069188374764737979834430979531629718087491355604236063987138470904056942717078177145455605584923221556323540888236221380032509481827048669688477611657288871655184507312960360547390340385040645845678007185658310046599417312051288247112109366089058739737022387263088521956406747768091431895189747127055057921042536935903156394581951254434625209796075786644201482475272432471540821776935826265496104052335038612781147883965423005672134958190160433152025284390057838283856968680043215369991409341022084482657357813972784024734049605137232669676315994933620919201244067975613852318234159169558006708715313124639499676209384697434505847448602247279917459434204392794219320959688052961600970613347528571160649422667552296930198649886440381270438017545941740396090888592199272678498030022248429448715030746581164871061754941628682706067720906792861059654849040912084270458510004482645551251563389762038331327772641355493981126141610940734916568218673131461350620114667662114720823347344317121304396979395233510398192084327767563995355787699377021793436763135054620667963259927319216309030317124216895950587842778407707115761099104068752971615502419877189507737923862736154159825513049241584483636243873808379397163754686973868255435005190797575996704805687983682313704023936908593242011706146936052082631315026427800369205793845727666038815616112196659942659170374574473012982514417568285164850940089242787102603709321937636392491816843124399390658504130410318155017698993710269705050015647123693434238083779183226201793387354212636679036540945149090985267750243636468530762837196898920710871747605978515117829152675212885111064146279516916410573676781470097621857141919961885602044711635860549794199788397457495380534420219375149805972787207000225505670408341624131287837172430666373110061503155021834680090350007189189866186647165030795725492433619258287147573975914039431390667385892851047772742515423682837164630759228363372312094002639049179225104853673994212245492804956519046833734172154679075381874647023356455833991110948791144511143550979463798056432235685888032943307201249435759016364423015923176271378408491223193154426417752642752625713631858068537688472388073658122317034236962392958578342355089832113112131501261751435435408746523099740209795991760616182681625355415344019312856651210943310838327190797706336892151829570302104382899634588306176513313847775431078526009298637310954036815278804364141064231956560508697107241050958489430371109982437791307627208315049339555510405443076677881202413981837589324295880652391620652139638274346459492644956563316993020825261978998864483341884857222726553231739869249714449496907267704379699937946461891582031342572231856256890266361427951497568116659671103008086261583831581990846566358415568055902725145933763111057635435351749460929410573634933899808153960649340627602344575223287485584068972278257073435463020615019109040204360058913210667944224053562206693352436042982430698073414919992476208190379954405643782429321597307899159131456978161105762358242294412771087184375710298318852273466432421202904585054484843167010932033292271829638770777012949605284947070088974894785875191175969682696814063885371693619898274855279226786021576481226760899790265133585266907809137979331735132063449302256205481624035326301179527349006771230270163027017322936752169628972440623637775095192269575773318375597479366739463099124807621125924694428280715865179700923535731087183308899938798731470129076303366495180500655543960417998459185744211520969825260742945017278431479495363102119400318338416525863670156914597106703744412322107958719646266011864741880488432318241392885238756592191136708904515442770552209493910929283234339431700558115104590438361940336875086760410356542893652214732129690402899757192114815229581365977504677682473300338012439712725582716302482704282550034809137057387028297267118626554976502496477166956324182379037633309507998662111914217528464298340793269382312792140771368737284709085955380294200738115097129029436851526775589102397125502954493504047096353893877051660901885589087795406702863152100279416543195137803266702348587188127520646597925807245483921581089266646019118249304066114773164703918123672047226170604825930536083666629115160727972199802870640202953441456453428697954699942941212031718368229528955458644341936994426516903321215328412617073142048656524397691122030710011620741897542598019594695937041803864323646650328227465050010777819821323532201511361838184506258656569823422713725712610360777084779891976728307370622123192034781316247653042946777199687556478636679245421061708160603668103915427944403464932161602320189265717473432699425673846504770367463602731375610243318150506202728886486598280326673966103554656605383569696304229163539853883698071690823264116178119560814564230024332758565128805478041505814781606320083639047583920438293571095687781702684514752630308288669200944894299703879134388115674388760375044323626453298190694633237009610906989385005202156257656011421138608084034808336728373235672934072493551442272064532304716554042970578766529237918427581028968938262839987199730766124952778064534702370844931275307065716574145227569327719311800844626162279291018947731728421786655549495957274408995439274162465163753298989662519740278426854056232351134361675619487799894349302263756834607516204627380221139543073115709413475476841818059363149477902739299870106420951617167583335043347984614951138934844662197095236819290911682096062101988508831249697924217197749198445571441776507686548185055886763217272062218910794681090330407775516232567715744776985810725364310413455321492538655127148863669605722348972673292258455518286039148036569093787510772463690259232662883826239792514393801067298156355968517384254311392950252893665110827544836585474435492952437215094826370269115310335737769512768199888180610861388098672216027634501215833510829653964805946384538584424340705414317107625506836451373276880328527847692110555203775567927405198537974030037152179387202791221066423645832166763737855474577728230406030886850260242947825030727237519192977132983314052518806452350911185266811673816065646611486177323268906659836346773988564413117044900031312509648261157685314303686045591089170267745823871565519339265184566271528232718598821589794182100412767621496975180350412307886482581521292008245966870902727094660354702407449323497397358899165344080221863728818278714937005596097114494297455468830857268333772477994132221089549955966011788674529492491690700593325568874693465871592176847478513383939648726250068928327648729788437043038712138508315211695914966294091383318514334137105090043448621430879402390360570590434292177048846582714654900273258807225515642680717652713986152334823111378766858916569962643866626961606160487464563514838089392739760890384702107027772076424423823694546537268787072722990843489148859967298816432687507101457924351034430071763382660645782121133247020065002525424985368027008243427805492920044567530611791515949072570685680687210095668791244939191273973175640955133820482699216407588572363387020158809232522954990373281143818308577185511805897668788655657283497021223904967383688847553187619439163859584305706919866651515405585177923188325057720107707589398001293089873105209930454556801255265461752661911080337596903563417400652742254009721986657069188349003975250385204175650539519073666453952884589220817722892035857243143636726420389445526552887096945357329609814381113302739086279421498375360053830575829357327758664376653375514629860587207679038163138550222788789826281389542418604448155866593809910906670564044383341186274096752165745892004365710369784734478473955696309700897274858898391196044655544829436698483181288548369210483035623451997415516152556057680590611915096691065383132521157176512000825988336225792017211678240515439184814060714706583570603300976891694560462811791169551647308036573663965409978042459364704022405235706872535691861427477427233642524601375383065970419579937970540945202048444420707946762067987926852556452109733420519092038185839619407291634977423095389410739359634788602623338190230965810611253771841274512802871138158185565217736793353351686208907013099537432060027034151278583600304090983571563118351829955744733292630525904299072202455847373725102727469454349381477168206422803623387187762842422658948896681653764677567186948711647500711036035373509320619039882134421602667462001143085045848582772039489927708943160806869151607350673265193472527627426727833267054492650112625448432459678588882465747020783726071054179588686303439323793255286812949414550469556592019200176663317032076578366217917857437103649504529491368376118268541024185666947052844044048111819019139157522593298222582155637580856955310602936735006080029074848814623095647103546472696462182855877926236538174205448769063323365769725010997950374032189281507994575316839789516118039364859957589573581599104783457646381434156944459542667854262545837626837207145679552071487865608736739033620434874202320191245000825665473572834185868623327478410943813480765782991666016740946230351676374441373285492019812485876376811675269105752395558477072104201711644753294595330278038890613756609954608709390151230300588506694797847832394440687536973477434826309911729329365645895411612432399610123186758761836207829222002599440313935815833346666128734016185745553663560630610023411560783711887887999379865758259251250992455420653708022485732269219381530205377526151240599487597836500126000491152192336842807806736794269700587793706430717493909291381501134847189569974421420658420185705224301466627727214838592802983311105124633202240261508647378451097325309718392991152924319117291405954266463310215050211775875304541176272318113628227880303538653120547277491014587206654834057599897760712841490434460762227092311103382397049135335134265411717916437154792451704741651426572965165603607644750558905477226915444956926426930086655749875290459796704943081755492831134819541975503593701252985560249079763405787655792508237139330383897884983897315922055598286923600783489022678586121855646060938468466050631028960527687669395317761947458499684106462652501496772986921319401412860331913212977200439357603271662014811721998438886210056637409393530353101157239246173824062807047232578960956658372519153811305080170177209278973699827669829081977195384265042952939374403666438260689246497773005506101057147196649877747045607472180182696755613538820059949359505285713405616615226787764167216292931914211724114846417268063816276121887768197972273763619104979645605654712825068277197832118707758799153652891932369897746353807847632853134023845048234984730515468140998227750182767313790391100129244240128688038440453519140108316994276196471565587073434373514000520564263236300778228468046696683637195625245150706546380605437057254185490222672468980369650249279484580728267747303682569160792764835527494898677996081506925594467970834148118739870591887397913853859193376722702482748932223881230619344568527257527157520986448355397948656951568770243370275196437606803620997894642271495686941453016936989398774332858742687806787473137740697607450801079479551148280140852652050697944423911919358036804406736123582502324725752434071733975109458568999238134031095868075281038023190138393784866998701218721667771405922912999010984680054293029078116845589622619792805810855212757918979863152467547977965484504449544413335552586656727037891479597602465336743500218241735209849988316864910348208856811637780960114222435937039446762648955382844858263317696866565702221770454688978882001114604687013035826652448651012690421183493499613807525858283908404127521318205954225813263942034570090623246620556801496294470330086340884994814695824123473037126718962767003831756531812197993951854400573198481299355396158341025994213936891807157895252693524578569360761885191569035555328753400467004161651980809179568075805209638087722592114194614955585616635849398065355815030221400356967460041448426783951501219741427841417947175086732568115254714685438538160537496659065651698007326787783750720035892963553422531609301796174566538035830594760821077380796418016695815967429045053783004175098628263020759559480317841302396360602817953369896089381710160795601860453814940660934909805436205244279357860657575232541503851821998888204636395113892644279833850967543449607780315748171931050882730217529996910316693325701588549761231132633326875361306967535097319205222505980631895356026948664246304804403815652220420321989143177519707795828728030448390031188449429324358925978582765916414719330759255722352290240009700323271908734870142976931777322146624547580369939532104570758191404851727082439871817632674960206067226762792955816619121933943754564966579272162397919116957233070154744401187677548337172099371867724273032587650535369216527981093307141519576119338188460811827670255844227439218846181873635122963237188178508489789710673747854584507139554081190402595244549575487195528282855216006119711183121165447943771296396903236652572435138235816164661321647448525620175191793081004330466901477313572517968239878588753722139041248433437091799795599861366869056700416200104866259501581022927967946952587171999883068268111958353761799258919894709034099756333019893303271404119455318698830337504393563661006133095647018593898664061817658869440618389629967561807260992499669797830792305397661691616857514879702448548889615049451581955439841727797314655309948196132520741441141656545262363965498585140882972630301479935489125087892899990497997181966471569462719359800793257807113198689823800032391063815363693350254414488364202444580866203118113412873226013617994806959960746311278127317498757490561998722917230871680267109430451202678316215332788459789677788772495779051961522260568308351727260426125708015754770244387366015253396139896291079220852543923794336801770044138483734117153982139399787217468405057097182148112940288953516906483958058881977537465341099341889893738705964731948964078775432470043196358629002607062301864254900583468898145828700462071027633342236332133281993748350548640926502518110940443175913764345543522709924686023968422966568879895439132705174268320685498548220292366985451027577197920453906815887767016271467645469155196773830289943650994467202081586273264366576386749731352920587221542628550432166023870336976468686519014027549414238441120977153008900256657357997810638325270833787780269755849148131580530696189084177235239406218267271929223424685136143025271300026623201826706251000227546981425224570594096973381066145982337242213578967965599507196421127833527338179553997334754726011110418857655821207436911352561760156308717055903160589016318244996004675581499883174112308334202950259797012767541682048753689015634113125487007191182741738114463542293107577736033162579011482326475429416302133022976526258892162698952170495700001455833562763310889319894523938493931460200975270773658622341948487943561598004485027255224591603758077778490021317254039279611678665033481080040500870447759589805354177138158793995649714507784804680406651873120197433077191046627783009833799408451563385730093251981351391310231401841057809667818709759930462035294202406839411317859022384547118366285545946743449602358023632121490824161970161251920176434210854336334650568898127336822862813080901237389857131168989545268236461497478629467304106357753806537776514132913917840377506788519130472081646706623487241162299195604976833492737575505903361536660372077644687482673413187575479235848715376358262234382856250886200295774945227820055000438526982561866191470889734510375582347940876765171977847870862931649873598008019286655870409449975801783646661647621748897997173833956077452854815243997452758475956257906955698306485949478335439762388445453605113193016128188450519123994865781532670742456329056799175945379305368379726287320289934985334858519801259342493559192425057570935543972871630699243383583880005500201864725366374487314043152940550366355575146544231155379252854189732979300124725292848323529509978561684484282383398325016599935482372296657838842040569943217332131385299774329677058521342956019675465213951141793277600891210590807691519713963141766588874927105323900019022197155097314921460505792510180018377821846005263139730217720102461585854344612639405947867932055196051933533298150815903916232339706658664374648665296737508955846427499821889705283548709885512684906652852974759552402686340062961657422332898344151148654606409764957401873318095906952018280746944942092176551909832783311357584959864397223482925769549657039764541708864374183936776140383874485509148022652135324988630097033762005519986434738697585575297328200209136759491602002515907642339802651305756650760151515935954181313326276544264912615425191794266525606866485645204170121297165244626498209832073925303488088374764458177001852283394540291057728654539561482976367048029018008114536044322608239832789100682297063101114118530597948858602096463055658910477651725911754895214428660741532459342117061131004674084748316653065442164888873467336027485203922172600259321607448674143912457183729146003341997460640706870937467585754311575346782735964345860357899679750870009593103759698883684574825051673833562032488419293813600483763394931532648691705083932245857894786809405144274574650235737304135233940793713065571035649829054865683007497425342908449449765313668854278770247464572166189059441126730236096496219850593111728011317043953909935379032005385742909692693746195747829037377991132103107341436064648208362331155917849121454322314108701434495541579501592392399305805633012925132138780057502160915172266792840559949223307872387427598037477069348012519163465279074763409253554036732914420131033981984686238094923359313715868164129563337071729255226376239286071449965692252464983512701790999794109530154641557930980192050355163409067307708483699993181241359516107542460634027317804051110994869765845167871483727903412529111893398348243544481804298691273613855196670177111830993540783410896061400931027111331094111893842597128417254278146084722332998064986316070634539513928369962833833190920751155041174659199160080967055522631105919413426943592430669632849155609646992681722350413643090296541291634650005901617368915547126551696224662926942457270205696241093349066447898807006614536676036026650812321619982459806950590674898031692677443371924281662018694032212383249757551994007964583449619507551963402388086808736616084471058787936843954762337769981757837829421752166444855405653470831721657885268683011581961526898425097361614046292550502239098401286675960888158423557965623242444423399791470138666183558924968993662060910701064198643694216259725530697100042674651473299394509030969553573780158764747836424194631094537853653132355168447211189995079269160134831116029777023398709132810107462215008202200433973023412984048785982162069693706721208854715846889137282317654767830140663202649659467629674593072670661737198323815295223409429341925921348971277922731034275689293735832063910314808668928064130320683371248754677546159796716790234745315294423594385570686704040978355395267800883681473909080630576616252006937917109214634837529162727463844226847588784233176565973592497906723222088309419347915369008704347497034901329572536996938571437053519135072384365039561010907635432309710149809664626183947616592367455253241006767656256251144629386500540959945558819757259055574029773934658952081972487113080371436415341675543089338538850219408713337389310429673693564953881794961952460625508720072528146573157540047344059546356323507717212356798959014150661018265315529637072535759347146652461959368745493937553506456721085901588530155226238088660582584436160220340971223541221182122287606589248439768124181518127863979661910395329232223160950237662449986946379600468683597647028183624533505749657715081575397303308685146158125619586960848050577509359333929221123955056263995385332970727509842283294847224727104435625538116304747663129583329608168887324915806945635122867237079232006071871590521152702765370468746782600980879009339540477634258667318016045781766952012390408803989981414808382264985926958382622177024247018991150489055527080418030033284067198207248985292156707488488054960727011969407679273502413604365616718786066966135861024271851004423262244905039920979236901162296839140991568471334513770305124206110100751972808501604252103758939321067456685738934696580490318594679759558782034442566682237082036129207393465135236820011795085849559166598607406546400980230143318943942415060760152908101382536491863641285714912979987847469915600940330554153144293094074788147311898035955319797302833851396459981402813865495667486294646541665196099949214694846870835560704249012411786017387861497785267466900193128058541100034943382977061916134936259783423946219566679594339643351121266437575433514991361122901889198850065114920163519625505163355091610812688719641864793993258297946062085703446086612276179781116229265010864586940670755125793390477129870194374050452387104698998574320678683957766291526733705602466597905456769637296369111678103835019377297881172466874760493985000599216954353443353087998190117304213518244702201389728215296062351710107226999454753447203349599401542337906099464873945978566727044634498156956607872819900518669165205633835963177821100794596838417729951769353750905683930631852031802603014542687501567882520512523812711645221585463471746866592858233498904555174690299200230582928189776166398572351099325121940168819311808918742636133640940971644589779481815938901457480733435672156781776962400625378954648992183174475437912929675468402763599241222051470767634955754570559781449852096246014989939322161269893629913763380759721216084839145420379379517252888877033010406828586842615642053859621465027866681543629515378650397646397158387791853242923797975805592612796485670416018400708888411644988711944735142596431921405946978790582914470302125293726137044997832887355110605850679746731347556788639907045735000738333226757452471220301058759221138108805790861871992790723071334249088766260128003106989685963154524867776965578878138364668244596690439433485147082453682989360906126010446546788055494709267794560864182898354887917323149675588365119754405725853705690203183837319023094840010944897332005700352251938035271600064843546679405052433394920996773744193955414362174020746498816072307764223138872990015762709304852746494918280023679842815802263858178895118621395983509493908637420490844490627812348085809326187588137842368099922550137372022292147042150479181730073243481273592091429726376564538338280076482587216311557296955323487944228122344596264795825588187012772904973955920371741239538451476987826800271978351120868863273799085557241915226498783984028038429658593571973741584931825007235580735611469050208571331365082157682461867806091051129827928197657480549063954929247612810277213047311385843736849446040928390039282909973689827603424339925631927325790882318058376652282126290624640495549955789451413273499257974595397343013199717558396819045603900459926919889672072246297904118363866841268207552213406956796110566905886922427175083399494615339545728270135033828343279385957306208629805676247985579231361121004695301645635594634723916443454993096397784595709501723622553172006025744446251397804769944754403681769304176161041532112145901295630922634364999695296643037327345452806297598131289936624277211903987171193537693167677689774965615893550519451617372506017189021103559912551386894439288243006952567380108679592437142005271276381930109517282518059231316164464477526030096827864008696343207235786357335012028048128137236513588173107873199101884520687547726033223324641319259597913689082952192596312056454253443970905845024430843213773862907365275220348715466459366687906132600727841075781482688244568072116480948222762929880771951188653367738719323056664450547768003174933932864717152626478305790383044630198168962647995351133288056480441536521121807162280083015605664656062056737317304882944502550735880522934490335714892133481845672476765125344006488978219771482142515791152042692400050975385571492323684160055282384659812643546062116944657321656823142629126854484700881239874337884259186040685960833720139289137682880141405453180485613140373193914255432578876468323888352371216360900760469715641049163822843994459038885335379941190162381150361077898869733430649501854802987878687503704978942156766211273961654052605676711537237522099971556994256230435229477400420157873474850846013551980822833990375906749020802305898924377959026399210479687468042335652119515931127004985099105293053340320773346485501327598169798663602350043029562841740470412213081231877107107720901701418485164606056942485860037879885485959575960811646858524530562399601618298565571742661067566718545035780495789000044255540903209718393939881497600177610730700951554085950507115346034004512169217984581677832154745389570678646467770539251770604679204880572623721906482021744866396945385718059145652935318271001521308051158167230494876945132658561820657549003921079937498784209870854078065869909848714470992816681859424840706626955712184041521759291402077763308329260193239444901653382460263695749061734702031219633009782536407646026772956209802977360531077248178111100272426252899781302670009414946102711148247076017310899812585957642558638817200689014452255313269291080083885734656729385980494791806188635858398158368196122373712666215136966993276002272083117110766803328074518905784558466593234847037077200097045303021322272185528251485658613933036900641765860925166241496161520508577584461022334280732679559732818978847709692938859764697105959269830734827870850766050381279763663983007628171910643727703109129850524485914402024649804149680138583842539487522337561728106755862807111378966695602099920025078344392835921438162661335899182465578558420991498758475963435850015093968773097022050343700097429470088331876003990538058269044574223842123213291833312807100931900876964200602494924981973395814793781976655696043586711362927431311988848959978931082271777951088355925516097870350970760512874843996917751028421838437696236744560258726443320393187563999320857328669891691683613133860517112206493845976080845630784402483105508162821809959115211817148803504065120534783152526017976480102580443134446256870074838769288573447695830299934438474006147966542664560193616147312124281785367840104945212850725951329594028637534692893045700815442800682165642312177142037341179025694816059713091928438789173319046597412224492421049345250223204321930480465350896605447900530884827545924089134745671004514880876558021701163677345353729239599235384550630032337633551168392104486569967800994689769269653250676091075483558921226543311823772173235905068139982301037491045510736953865232063376806221884871479955205565579278804274105569447179476299325210649448605035059928582122847067221553761489573833954384733394049329120688761108520850741608436609031284964572564834190010334159285123521971635766059625091340386660075414044304808589699965395345879008739640503560993957572254872036673028728078870518827417954119014848242737950995808306037386540057877562261710775468493299128635459946407644474801055391322375422249066483725572235852292043265610930875081646468280182720413783454980977860014940627402371047982172430409234218827834689836129480050853880835984316972349159586150554986732981420383645446339842061397850367262561732891723076207105225247060656984570135884583705855902079110534419421131537101528664049053650775414472827251167793081403355684676299677579031771944497050718670756957981730573413715040860825336146328343903765959022629355986386472592450137813949497124446665934716322476729275211551748587826151403613106524208508590920003467136932272048773242875416081200587210247664285381625796093545584842547785309968568868855619774555435198063875322406502213243962209674601837300779112763520163169644392160952180679525025695487823750649545681317596768689245048642317611044435803070476872057645849703198651614522949512300747782666116034919215969048604330936276431671512814206642101833845412071777768888624577330240743915196520403196490145246370273214061566298867806089922958055628632838933445413995913853750319958715522915675339665587207179369659158848024977001486772213452842807439734819135067188470441399646985352414151072209845068716044491953129891840695340344631264043313835088319138814370910087066488752610938283637722326676335762608614035346679529729290804807587809109441071626617839631320200304446588950505030372593546285148236950708321636816609904290418111929330768007201271655521361515147355047884793139861413045338450723293562304702212161389869046889859728572919616667309941124778868940263939366112631152543574161583774867672313287272418145421914288407667719853409588259889149674292076452331635207760060532522423043474952609927244451263653946976901509868651369741598640489345694225576195342786228189952124417273518093152502925031737198904227157061491750814344949282414243795423876815667582584912715880772641350471941230119836270299843616349959888487412046287998188403840997113980966820972155213928759403550337486147719822631394495780120562635460876180736325630665923631355751485308884823757736614209246462133464795695763482273408715956487595159573065429578554212005054782619869364876114809793955186121498371274742793012004459522889989192751258542411014836740495964583286588396206109594670482440476606787039301304228039255509252399376918599116695999408359200859903079788040145310045370582474512114712253152257476124444535204584900407387785126582891481258377226022507554975254465418616551230668890920207167346847393352238011081141461322177157694099971312344108655192653131687892062435862577607726283799050020825182152149392183581637347185366451758053304572320411606457950914312236861850159533492983566637418282817465660965946115257637575748795972975286022365437089481053097546463672059346072792231739583764590286843855838160953008326724561622006592196880969085235509864382223596103079748571983835661196917200586570656138754597321474673855454325447000119259038748780275735679598126780383084458185088196814337204243740023771225265168876745253084896502188023186416747288321086705776400614338692925472447021059335280636710263242158507302324422406282939324663392623220264330207525975077251533961507407020792306493541443290213358049926791272478815828939148573488050394631685499269769873670559850879361137909514472092909125428402719930094157779156983395920361804117023515700652938371551997767335865715971294002930682871282745816216838640363476537107673820328334146301906932861369664609480370333510328518206952922891709482876777494893301711592832600780844242418322453225668638650438586927796355072485628497429236732321678228793140282596506327929415489361367740837834701497670480692180838464228052809076621882509848737895847494741661755218505799663340782523215166650523796305536716509177715599541515983031460965873723776205428072105294871115254724135530118651517280614328703492728806203653895347027380175349546771861310142815548915242120809496218957993405649240023449426868282396638051638143336960528832146394440776468946664054586481271518779746712180653115578510622365429416659378909290609859453128546242386273205222434022072671481151609694149571824635328312847142071445204430444784387896508785574338848629063949483793797747660642551455940433853552023283487702041948592051278006870553175257344979706130874474374984378252580597196969210430952993527707453008734157207029883166184792547284137560540769559524749577425304856232171118169041525988915437948497015501516093842434369316319849268175781381914578873912805805707545855701734117060242267475525655666539429181184478771773782008338670698087283902642124018055095060883530093606728775319875850996905901156088051518430513218822399928161611891517953531184487862572928585855075266630370285529951076804374715432223826298070875777994782650952560932321416291378012955364365770875554462309721947850683452326477355522493172319795779031935592622261689850169763111254904843238905277891317513853993799720848646783133260457169968903915785200694248512239774794246135304892833124025680644235747626592927385531997698950689677072099185403161185637290065739665373424073212989351385694099585461497725612528547975575412095109632471246957730458240718982915180437219881010987080289048087793554296564045571526416145191581066014685314822769913979356243619479059091915966396987477142643549663901895701527810492403795606692877657805640096573012211239504060835764788470871182420486723878721917329487243138762511025766599575556786306516076749362623461354629714932169216016427874784236896600634968074906016691196398887453044314339436039699553299710336844551900110117872851830008450355055151106106803721954634434364792147439219534740716301971409480363108997732763408824374457523269133553252852394991691556785393180948553381115632410249764826561929520067628363230400531756520713486738376739957923841748577217379715016591786374130903554390196589079716139812709511025189177820452311040548944864105263374564105594953041545462396217485749894799711153635399189996960107242324354018849320218762078664543248660436930383495735582883272872579061731661838455499098032291734611570525874007218335095184393289706215719529997069127631661371169968798750173458687678536217182324013675978523695815512183274864083381778619625973705314209706166123455455564838097591678507203182339474893301267221273147807933039676481631155037390085510148416958751514060078981059103559460802830435861738639630533336789371483422141293913094667153713103592061679242791478972438119544515579963844353728264119389766478552618694549863922000980219133466247137090808495067686648976210510745420418752076949816726707263253551129449468341413199165867741441780095615605663223890219930678554055377238684827252716779404170005523491810829135147963603026248265312363700555217222163290514649308280156005871077392700044786937173931267040235021595245479795911411844317863617098009346122012710814970713466852999625873992599318311099894906996928370317411643194491821165359109508137742465825483179189793368738334327854649423570213807015328692326965490268523667472070428336438397262316288336420133100358739188683573233768810941058315550797008562765909947850432850096541590865992911532766918617624208975601686995344702373852339497540765925730929123260584139354322165930477215609018419601571795496238830217878150871458022095085911193580232675431199077330645822110981379983531992908073540457332100917918061619783700228657303583888467085717125544549123345678270165181354263422753205950892450146909877043225249448533683976688278599675441050351200780543060225194214227146647419759827577272509971545916944146944360930886354068022146336021363150060489093054218940844623051915254429407126430818929716178971647724884207678534946252318144716871942892179983897001151028327943012419503754196192217918715096311381530630054178550546361940324441948203965129633447828863361525068581149967172866615652175420407866196955255143357112949982707167745216790661127150027725881155147835067984648610481722431696853353863195562760310047801223845733579862011048926303735324913648270080400779013429151397427248126807967657336291868556245915506146569729531122884084448353718562684263996214541617494687473832081240036132866005877101079078388361833115644744705890440943899586448858562984480049873136780211087824780372701769797060320985175763653099860221860344305508283319815150535440011090675374211557631445346527350146871445236450635606287404694247037255566475852785685629697978434145487806427892331626191982614430266614634997559539287329671459241302013148089805381873301989330994510512066546915943121424313218779691216975560182024168538192723198714145483958013254543884066540741528185966322127528562657517158717434533757739713657933501015323596290946297853510948477208766277795968778249968805021326691077618326713152263467695340218084601465448986987400316728968829638569668610541540482210392247409850876333570038935054689276327391005969727849229241304873339191742780295698511971050521376597544000579111806907096715722861782346897994444653461003750619754616010320470330936095612835179437978489054175825123519327575715514620458277263082922254736261452983730833417942950586127214420217032197797367846024913926990660217434645669858682927226469895602038322910542453054803471831559916147953414468341274624764393932018090669832816307191531869813139790610262967549923134348849521866247910375326407540436156257913308961400905632520426279772807905140027691173620633253273434919708908533970654685447532876373409211765998408798043616512380442668315386377960890064562135026617661476029878045999817968368759976547489982230953152191432340938289047668945974010512988920231179692485897405226489585205589283128778814683549140771799849284860824559679987508707504915506830542003043854273084504920097217821769331459026010611267715615951477937770675625231884963527121730133334175093458927705566503992823623292913148320034419874024639380483655551294013498439289957115484933692162659226600764665837540334546405907662393937410967986326829172737215088544126642310783532910533393275634664708970564887187506542517198876503995361966389838674019744366132639052918842079678145377691822213656591512092027771614069394904363876582175271101708297662839565540156898591899451527340352553113120661950036704792029659548286486909946668139540251459827429929818298536343697712072704120765415197869201807230845612327448013453589221515637857066691390941221287555503465341739432992699388903070935590153043221306173425040563384589864389073702868298515447237679552176584885427170382282785511524670307104577747317836016696576075832013092958306520195270319408617916326384657975068444959850755847547169951372913705366809378320850917175984341226136711951040475385784576309925996040242552575410673726757272623277750567656564052946532253400776239248801977545436918641687528116060023985743972499229631492438742499078367873609151575174420961822392908917030921956823175727597391703617043569305434544821654978205867308332473509948461628526555067278024517129632374665295935645295900961166355557944950165806508237724629736477995126614174748565874912049978432385962541167725276228726401474903913305555115890714027070271388383636703269084860389267347195586180752080130434285280010637073549779517804455304759010422682447906423154040315303436431902285485707683473990765779467588347373420262718795663875056326381707576713133394996115126358095212025734399248437826871798642643066705835564450912123057876231405964910505537425644595463469570326995730136094939272914624778546526208576098601529431946147471998447078276603451808013591840262241031495486091464229795286073540719743250054394276438945618413476107978047316107118571261916090929805166545220374550653585926738248292573078984221954061203115218716739820619266314351301333274515220996182231169033220125694191386882732216789060504795561319023322514039217853980077761734002810385972530329372977534512935124569539208000443501479392339728975239165878737522056439865969965152981802507053017769224271273328949404327293409623304243273520849623990927642845817367315038401688997066268694658833414912506492469066822623148089124325627859432209372901820292776893737272533197135956182191204789678791051797880053969444887839434977468782014531556370535557811188862141178351692676089847659620066639660588945842894399092831196634399713230036797900831227240056009680347588957775194765323904788642169721747799014708454636784884898328354182092481014583438220959208580677012960991959880322534560581244663150287441219754313378033607519882453773266345276143169983702634186609281496541421297356102975157964630071214424035474086644700413323011482631284374185743211021161445577892465264112512621928974590434285215050709019781231152386349167682014812329277325214848629435226095580802154496052907543826604144982852690557544510874314330183515379714722205892529516261619526731112972859023348300729056311211750565915012483606290160841527463939808010269425960325549925456185138235635797515564889368936340326468883223030551693664738034385218929884182636047584776159137704218191266301737653454836386044899817791344137679096196745164059974026780341312299241109415372990706541741430307533019889842850940594782894759512425469990341367047373872486033815994662829914910056596614688013306139595460028324427989786342685290090540640658584425491171410762315193941174565965134947636274789148962777971784457742463171477260937847495728052382461431848174349159566705642626980515070113264747330423124859108848123833088046549552001776234740964589007288579842980502691541695571636408231803989038837266807571105645253379521209744210079277368587740867075474931870058910050069961594808611795907720382454416147404690629650489950525062187267472307869248279584207812764836020194170341424297018674979604516014642445907357067464207517017688232772610043440538559911843363725142472794400181525381201336508232019769703963765094477459635811397881746865509859747722728995834306530165665472488717970796651554069315707917526496010191633492223271576282481705292894963497956031786897935253775060287630706079715655766934839113431678533590086078005205257696791377709896344499314410875024750873480990005919029040158382451004885479011052695139508566946037573241165619612983359168858422251540883292466133360572123497212416281970582151473589273633503028091033885454842504758801054540268202946216579600061281080573654075445674856362343878875416298725106500600429320979875620842639198479948105496533740327176336121689373618463647801107611104759408748579969477020586319452866670531072768645375882732613072519373985079903018712098838221416364405085151879802341422806309544866153125456635809150074024502236018148285693973962194635790176913539757583340925044016571815905373824135342019941045847892396080871866912254387637485436324773587476499699767786764841708892711474906324395051958712197797379322698809565439374083731183385097727303453114320177991181313280587041638425153862723697358884981077526401378473499961750088749929509012982256133374522413784634378910819309175956182369436159739534061520649014623299461303993340945594545791906775624421015540308818644618015436128043637500996776893249983420105115160103361340361985943792914079066933829787446816361649224193313168804121362144110204913194823209820824346269819522540630190557029054818365384648639865167987056537662863664379944462870093496792822464430785469987482470724727093814835120119647557518790718321979881820800843326218634404188540441477878217724634106146001223304666945195315814170746118535256250590579985170382431655268421776680638380800421951175638873994008825429908533368303453169396778981051749252442616305524019394588398419528917877463085232943362682991456379072421172890380411157414413793347787247668976585439899359681181824947639372694547724055803914658238142422580839237089010109143818100287763458006560149653080676576435214598546367370104045626221271676956506521320069683071143377671940697209238989046915565744356826281921436467130705902553704973931325194075001542870356378863402169840002416080388418001793661008498877381487341154420694881127559847508039561711951561904578257252059359513455348220524901380916610136809401840041489420959678978427084981195124003070876140112143966681652026995045783114804254833658896262858804193086833985457830173178307462857001488513346786133629380615388275683725360901220870003939608718841975444196535374742194977000403362818674900853186448693761829893278946604795084828675350664352976640134075434069193178308499687097071183867910409178882753048662400820710420812979797790439075973911096231233676127312509510367705875831392370990893189895629237340268402107491837454994107093108682885914323758827900850371925211469311601884945064369840592359958548098641559541786839973663683193505528403073806359981506154099821042904071123416773197919442892652497775763020603412588220052853028564323077678867601191049860080916219971948212127699023693713946970835371271828271699636520117239757634221237128510636818487644667397600767975430310557542595461852669329284755387691565620646914066975398759804604805426400982155990110689028573291775931693126771197680031628263018321859414193125985887933898999705345917428128787531169049151097751632365572384842303337317207150483844898369068196768580007075945663607954029699083271360739819797524164766831282910113884407894276114270418753108624046764046322388287666707596490934664356504771017364253850943047554702648747050062942855156084725994974061555213810185349428137168781885788310255124366899651247865074301753665848854608667494287455951167431521007871860588689646139782008546658278935153508052890132242828460949851420706979609381703132351978238483788004072497448817695212012257239953666576202061080661084604959986942977278892735031082935669336004435176156232017983312934574851799330561286488432826525208067879116866241913442203210363948201053814287836851467199925891586224282327394491547900326128926543880652975864068896287989910846809806434178379917742749803532334523603805460508106217478353633873539882262966269290603116455727092154687208663474612136020232332793652081190833362057007502760924689625240193929020105188458844369505865851070064584471142612457254225825117772494940808019508469814185618533032697021609307981168781295987256441669951338553628964912501632122431127453269717044195355662651960938843041291988317748293555996555596416629355711440325639391753131263841459737317139434055593933905220669504995486813047254717419986067499293324142718343880221610697933305189479803481547746203774803335485200524311891095017259295655536108161316495136970919249534371324054964876414527154610302006327992117451799512131156111129446572250347173029361432017801047629507320606211906305716386600572468214135483189965764862578495697645430189739032132685034468738279486605246098810213270155077566288228543340499471225590517235683999277269992586908644033245043163185434260945843533111794941054798921885355980482426033888430658956624550748912982094849261581949523222448038669689303865783002745299745825824786401937123957982963617818494406350299877238478748052926056572718992071490088153822605777996810530248564167337286354988516604401606197469103074449998857815913170516817546033645507263499782722470774486037978168576235440840302314004548528812213710199845992744058964651265789623290215591423054204879922740369605061456012827983567021115868035230837784263475100583019997603814614936991666409256971535909853605640024927838268386615127401641247071187057402958513053845359766158796544057220510171340980336783411353668541589481012478133813569725347117568998936258727223921771396637043451094644255926697537203131297393974655819715471652963713312632516869307491884892992182539948257378569899246462014484440246960402307487059838800233746915215161184835818249062161660708511160146761737243338307406857288949126885525558989834830889599687337282482404070525990509512619238771257146540880915069994313467877949776154530409378729844376812658832817094046300104656654067255174279126008756931313439383807920659491261768151673850510333444325026973561433862202770623906917818098931237064540244764486438870679672525605613104651471551959028443391852147057427394661310667131203363764494604395504812255696130958509804135659075467270876669418944973476773242413491515456101354918603936207433888732525154189725164785702942455536174083935294130081708525961960148882521212861493343624770122748168140350215648000845479037231806774998738813915434656406430117284054842196775844297651617596964671329885255132857412388943665819270692266854123354451329473767679276483014601410610761929068789877563344870954907196679630235369689623566099415780739359284906973844027571642617814385779082821113280668516225917295580311945540270847548496675657124645480983257481591793964542692828085726902425095982331314269065297873875140452094005351036302429188457859511439221744355791352973891119327240149415217347609368442548551619934595122355921694823043657961104000464012848100229675345291076394176979072204273834656701617258925818201019978048931944091802871018398874080630839226565014348139693780206300060094627772177821416064980572450401466627419025547381200055473368635345865265945780576538541630045081474137662478922900957883970602508472379265180534349336227654726788232222759642109079411578685413306547645853429180130134788069346190071008890192396435703969868524006998200822413873378786254651953386927633351522766569993391539998263153641485123960275042358102179397647192698324532099935381940207500547513490807718554210894920596370520390865240833583558865155188852296606584717962693399626075887901893055619782372755167491693091890812609066413074771640273265526107312370660335391913014395924629280496105793350756699721074165455002152959028975047564121501869585564074208501624717794441625350435586829171044639005507473563139209877648522777078081401392523019608910471460922261974991318561699198130524886204171534434230520282799486151742318461887053373461343526982063311786148556461102215139312724817444565626146745510043476970161874888976623302932297363324704799693255803640020079870370002886362171347111694005302902292169622836943393974553285286088465854108160712823043664054288055867512508091650336375463864141095821438359060290296403793717687391102698342685581753693363611067463933332468278377834116376225090241745386100018004900200729086636090001809829764722570679146196122629483868762839454672741364578024297171587460458436308414582579909584044993529772954786602774024231657503356753855412541737166088712451389435676319956630652180648774100317764902895225822083802698340093857338003095431594291208176874476511752448520667911561289715575831670068104822862936822554565102944481908481087328026112172561231896660256217292236237838425957915297673461573410191319982052705502703717618183669531887280969547030933275300392904954438426616588368329429638210279521315033972024029935304003236470742538431874991413543439793454984603786207061664292842482170852495469888472146993665146312162606261226533228460867397215037449438497842094606763748216253840282144398666754440368619912385527922925243242308347898420953852697424142825993386388165368688411247561004052905784272985523771522858122810894142621897449288291763336969484420759426430747344626604431844548991356067978378511174451703286700592057527295867985022142334593961481291424116419380823931068400328916220254368987523515923115293125058387249091170121318211660847422655797903514810187365146308855331656435581860026382216397456570914177055312974158230131908694645947274226445271140437794013816929015639076260642074647298836940408110333569690083225281744521017817162158379017458642650139194652445360052425836759944214769096734032884862383280669555542702710496571637541021174710577578302518854108534323900303211544891923361801222531701968593260487927560055658526748761118831225445170527930622205211953567967133609446152974720618618962051289425721931210578846808732265624325550812994179693403466987631488532670720685786481638182171629428953061397885557215817454135611452837813537291207655339200299809218506560082688744520855318845559143379755884235138002672790315443632662639593159094644720813550296834291348627655829372671355324602095757974242338992640695653023620182681431187722771268271413609385889744197220189091631083924248061338602392879149453940490191245730229196591681364739963870804818667306250346174145127871309572017215849718811922229524713926571460111951609481567216634958379990309485245408526015042053401632592447078294910604234721416937024816221362508667242174747327856794338207512247492060530764722007357619021145199864591562407488968260590958733394409864463952185087702556875784977924889556464848761385292231822423852293513642463881021477404513036077183963046542930177444233615223805927192005489327763951458389866550960606545103261288246916418273047492209050637031525853163784896299442933949187587450757851672062103649507383547132183936536928346422618048672650959517339933640468888067932340991775076333891419683425371300903113814191149904570531147054224303246076341198415357228242016166582497826393340553177229816736573687483709295107012350742529546527952617184425189152540002448507822819883921374780766057694582655737363577203169286353313298860363847247999357119648596698491538619389927384023887600208602855393292834716161169938185639693652315509668888656256571999532395032030007237539171320801309341893152874265066671089541648745978406704572095812148923589285381025912708373403798000517456009065035399877579942917291180033965634162686946814561377633542761141223277450451884561353677414885538415302633127497599896210079598427133834197980074478663938543356569646659721666074778893962647955605834697506524040813386658216136023324974264317292102277586134152767248763300632992102608455688721885697770571102676176345867639165234755997989400526464360230292632965646231582893774057039290335369874391905002166828306546167211619705122295010881608019295034258316377809133502327707315472831784709060165513607420782352117704554974539479050300560261430258088538033485785496013350160830111861183418824285657380388957900427180547810653828124688103938734180051211763121611354173907064831857856327107402535141442222499037405759280986908080758586458029215411480173971396941040097269393946057896905787559174877162814943993659803156421155392847560292669515132697578336053019389939272809205599782375577031719682020436313429340762044365304957729223494225817863009729161496870294356896241221498221830920183916331270972571292872405392328975159135922159199415076428568364162115094237979490547853048970401386483790750451646646596510231045663020384228184985057279774996474979241733777029042710207432894824627749901392897917939271163907957095872116222835922348185139220189306527392653445643453053826135885014092375833422568658896355195230338464048709459792312603607579747845501556518796017869231913563703126457944550040744279839901744401693665572101629423951095629360286851800744127427608751110555728878791419992354757878223949442391316965694349959920652487724414586930138242643692362227987811987257777844151574177082839368095265374510248869920934303063690369284282265702318995859225081194157760009660464241179398817250509553727609180764475538544665818582703017405795761909477846828063983496646500783461233881640368128180569200350249289770870395773642069806120830871319188954648239713371302676646407794154802916381670042779593713521738144668984003706378494442885585053944776601609350194048811634316033494687233973734240413030938500591766148507233687630222258121064615038502602764934240603057498235969677730376738430412757124500558344959462699441108803922815791905337421402593463598616864971648022733595460163491388321797700645665290524248453674994132060707201663314501768705333681486396581159497250956481494772764644698183027982812585105306392145282830989339641161486112624126312930917867661541127483676808500877904755024886095599736916888847670300680192669640203222681628183779680438211615271985615728747466896109571930586487262961360881210023960182291805790051262264807978312529519454845726450957932845835735651866801301912594162944236069698421646701564862794186673454677104624260745962470395486765462851176225324645369277440244205453468609450930514980028116061236924077724579692246810120896952709315540132221215750749125595562004403758824654634394694330689958889633616127103543985830703476820346315787992310486339843498183042531629022845540137623915238540334393389200182565239097268393197442136899098286080284489080404628185762500867826802119561376572603596333825963613415347372846002409132276411971564653058013126090137374150109338807812251398981771237919824018781305859016647507875269198258638283702484682472354862782030544863002825379863690744976394808543513452069653377639721710986181390963635090375767573577667299068175922704981173934084607071381559594225190843798169057322986499012167596974909454638953058735933798632543377103506488628850115116698671339943151205928012275914039074799125495080484189141030610176573252895312523573234080104238277303495740008485659168271183816296795332749797119491089746382622092474681285637326301152495268439560295005770755455646197480520463863426392862610825540891543079758437046924368534453929469412501285165067221108444679689304161942706606935360439305213131958649125405084085939460300472471336614727931325152758168895758565507255387954787368041643905248086515690796893797043344089147082447927179163362701014004523361979598149812305316212799414530799108413521738527704315133277594283295438528701162921739210494087859541854855246139280665518820276161342717912217033474897202841680331022667390336954345939327895928762554046705662649249841598770570430496594881062565991962004615928069575046127180576615211786251932762757386695856350893929747483971362235593437917971059737244676698699892677940467700289359379689816362989980396301327837971289746063743704421956155504454595700313876382931791953857164831193582847962357439851320908758106547547201546970744898298806065550897764902761549172182717582864124353377409733537806689305095939069373815604567177686898618217580308577137799163482445080204924863970843764667953414781698085622643561928749056162556810861527777902078760135298232625505208894863853696409460148027724783348538644748701600963454632644253583880638731898419882701163481458231205033233212416846521966203549145181095598140189055535813926570518979933896201748072099673121202093099467357443279934667867952394350970998973711494859967561491754966037458037033688687808775439666103086686029054032147490499812429096366334059165407153278326356163287191402628456143100865698943051105420552540537865477193992094035589335844626630739721032573901489200800821974293468371231986298457687426177005980156400727798210447564647555595569328155284316238010180967556518934951826573577282955553440084380070639214030159801506640313144229078428619159007119739110703615885786274719322294848712853173966965694522542226559234574571955116117769654563209942760971850553202334594732251498861693683503531035158938772007711584749961716519715806846255600524489519339511045596037397037902408075045561761019626842124259500669013189718696958938468188528579956611991922884627375268229387476036560705619720248430552523132652284958157203069895250461713051342663394477097700852699009748188678889827822143922049857006060762237061537232109177785077596533711523544511468177161120559783862251078254429708123936852939121564926539834875740437146293908813154348290123988367629309246140984515227811175429173411567904067161628105756364591969133310503637983580867661378533578853465956354880061055256037216818195722276768437187977748083345570119676161003525923053195758834652401805086236436934057442940199081142793665943711398697297454118511776133115223240409167745155143475832713909351032874707825187668788549573427962111643933440579470306986514930196258122199759001294683993483710760357600895535815338541349349013400823718717369230962799080650901382072819980317508053449469135350407200809247721803896032731185568543754310713564020699823635905838900682060346901868851470070905583609401423644943730526345559931495619697242830468213981307011891645309731248003325398506922326183657747531027073869917812023092804452734979418314149870893543171285188929802673027621391286290559374997595271449260235017837054737320435088580803654189536853058738879321238149966725849089257131147809970067723399976168267693767789334473317510011257577964083585037887805373322120237713228597844173746580331788118872142456006625375919462534317807225866007516437643042146752302726978448678894956525410870789559856599290070322978120743400007039465111882633122663713817489401843399125526958710508108908474666744865087842831609268199430235462277992892205096206600253623043049251438236199013867034370640172505142736225012234443959682377336531314875599263621501645579375883716507502179685912824379023894487097056513830918575654916661706266373447967352215365991388311875070346880324029036185403117084647888752892217945322712393572199974865782022106248506540615321726346931079710653225984809403505724720682382177928002469403594116434724865013930529058578939560217937644808252688334654495706162402720615464002562943767105056311687619340086683131833878916181945861834630577832536911319061439885875222307821799277347479792661302067161470604658378272412728527347177463891573762425188514423433107626941247678274950827314308115196203388280614582472367088279501685025591109922932031448906414572802452718744392993902885938984443470979213579361823732928535632923747875095594539854927881211414019819061220641355317107386190267576853463206853411361714076631765366578006111440839979509336560532262858657892982863113184002041345774629147344894771098327601147286887860571735353727843193153141592302126017216769977237426491954648988626489683535274974090701239325558020797617863072060303123225170391395092744259139642219267115250655716661547361951123094347653500110429990729641179907191685664771129805703185583804304848223860030881807644139762975544921482490160244253463413838747523999233120511447958787416923012811052356053408341952903438774016380102822350672395223972309802911072434201136872846143694410994551600423318429800844033146264226447438812290079980116793846111669409176430479374912741259848353098658471532598771544433670354010735853393270099041690290023947677469188593376926025593686044108587241576433462206018379559576721308723876169106798416344862016357323235527296513202210985012403960179524242266964678600286665643223257473819019692163630596336764327201528054197893159839106557188323105472814770245774853178459975033157987188533854927209585023484377675455222528541312953078724515814638614204760160483213026301733752097472624410256225909408423382326753612606046281985287908310225458417315138746350578252698978112368582838630482606375195234335473820340883057133223536574500216661672955535025141169255423927427032579712910982729642157486071321060929677142009681794604317485825641781038595199810274123150248813922834470543829660810529147817066461668396230681106901450892040884282199566723257505433402169548558325578823819889449558204956547640494859471038041635305896197133695019783592320791011831907588680392039201578268360520389103858532582585967240999286629947540856953124108443081358071281296374577800086418045698392254216383502304370898703300717125953120404220206514912726246332569976648434565873879897239271831591776307193049566563111966518002359838844170322445118585406975748432805238321441398547804735452336394425947826447335514332341842744846674820454763795992597206303434776348791047556188590770924650246515444809470507299644207579788531319506044589263489429705577225065056535024300023229946516353006690168777090155476484181218000472425888989259901439984510770962971751864980873751016563760649399327092575339057516047404342935657172330650255688368229038640132315932389215412996727225897585316908525156677923231881825889992058344757039367452920405229639726558650961086126153368601289252245143043936919846259483346112671110651359101980851977302074084074839839369889010544923967952537209978510365714133385561744093644929691322279744476186341591253845210613678036214848726253896393773820430570046577229411824191503777887978499757658771268303173476277292477559894320130764202118260390771752578795907777998262977652624299352909575648707622051481672345181135802808287335411537535267165589607878539399897539922982619735274058600480166400031494726149568651798703404258443031607409837108215827261662248597432519986358453960567859034189328215986259390866341080774568809941987699016227660934222267809564851623500697906359583593805034781550896573066530599212208783764275893992740487105642315518874543282678094466562558386095373467127237100404970254711905921700999202046429593734831368686870708791888261877425610751394504809072559682530754501375107274388072415455961605216692832085232673824431547151475853008745114377536340272675702745337929730121142225252386669117105112064113766040035226051216215779701913055023445283040420134259859362889040267649694981377330239555022459577999892351586447912614484204538461419470827466868392195516115574719170379372527197089492280506855407522296250751882133365225701945670654749928208583864344161867278460735521515846703025478061531947220737371678594335786682060352362054773996263212890240277529734276502540968999021916205862331834196800894061731987410206560448590648665964786600485982801206724467696679186062426386943888108755856140376892060387028276668795961138446578169444753886539176456761824926701469650984281970377786699886866380664845156924287298001360843829124963550581647980416184545934242766218741586842909736294499031780646036679122430877025063981452526266622853319612135686652047327553064172044911276585508376614598393089010775165073102773761395710069039723718510395924594527800982682215751664129675408941310719294545503263990926977823491052740625017696693461138134694239265425395116898156904685591152545042168789042613015881492073692816113234325485578599882237372826809643759627912796293268867882832153432673155366724033864261487127923761610696209547080494453918827161322877710093825939219230006259943357599721583655710757314884095846755169077300825515261772404533403858898944832313874844835355666261671332693006398506143605423558852269122533896329341002234631596920407166507468721235082463076316405527349642123543286295843310613881476538376089723476208711655474415532701487786315185799968895085723665217484955730293078390844400403631035575047126041049938923285695874533508190026415324876137405944072434352543153459073643826569321923642125523852154549534740047417309729960337291706842022782626274885518386917313214866454121930910268403158427505923360564306383584195773544954650869623603996232151635865130676723167581742903411145812882447204473171856765390644667336567034591080041935854723600143549956183301510583071551651192963030095515288248189871497751382635847274410421988328507186497907801917201985418186954902561481915628511150584965010966560693235200492739680501592041966869300575414815356989974040930568561413343100790757159531102289255112177751397796896327965845327886393147495799487195252202933242799345943206150096432097048666493530664121466649836046076549765597052732878390050470321019375407400926932331019476329731663512850117560085224498780697177651309640865038367629209908377690116757218715976121859594064062436624467532031787317911167553748795642672256662828268256658559031491621706585357463625054230273072809980424484172910782988024221035629745239597751318407756171129215189692617154134216552467155463708381325934770489850323843669350875243285501345532157230527604259165593517187546366029019846697351447929324983212726428393400197292116352668699315747840379142752081602720900113403228036459160174768488006228018550528006308243670805729994654998491894035961849282074982819557390005372876995674093854029215760975384084280188357419502485987013526638370244374360316433654178175896049484423211913216178953411800661761729678111435799626188246186777532178590343013990373889904098316885519682450511025171536938865904619262789513078643399504775939956696450383356216314261772996984629859738724262084973771346608375268197371109334157835148603300537118553649259636276151896798176752787979342304193765786563698791235821541577753128270076087561259565881042252084153195437032815803092496746887804053759911899244171611268356498277961451632996747840788793888358462889862985712701254008463800407825291821676863229983632950987635077391751945234710043365090298497248584899832833965494386874743422357959076147262813090245193187489894259120012214980843174934593924024484666181307612001533019792095280696809996345982652656428983841480955558363071264502434174838992643678046004943540441413045369589751611780969004798460400349978581311852134098150777687232414189869994859745935518271951347175648800568032696361555002549079036000434370090571408655968062474660482295102383935353064173343210238779349968544899707819333924549935177879054157309631042093616118684263955915789941451687871055519950424949948010359264615980340150598029061700465004070619130162498955973846030392784331565204002907424045392141734539438445083529544438994635820334865684039577835077876663855835017116334581668312910344442277695860629570994891143297440059521103405886058873231890123953804390855446299932301151978225424661254971765704455423693659377788644510442835433192293874931868582957857440464917829130700039672942420162640001998367485931953264384292028698516274553093204110198536638343804240491602651201062234706823445870601320959504897156244727234080568563732440944771763356217756887597751606371599042896145819594350186293800225716913913986660255214689128132207124035943990151529577777937957131286037920592791114076704851685609718372538368840161295934873809276678954387817245845570806182425080696536967913473062034490221577527487608961274717343064113001590882001002488637266319763993350100252140207377128622344201384014887189019494153544007879483001105889599907343761456592526513228535708545931429708864889592483039071066381692487005365758178713885016943587366345206667787148247047399378049213136024258123105539381166501093670294734023246313938819486590665459083391312634488629263065696895747809335588019330614140295165312536066251548146441397594031223158989702811710877746087956580185607055961376709331652793633344308223289351115438368862632288800099171409479540269962105663283595606284871056285968332768965633371404559508703398790954630166491716138825202893935091161032188725104313771732985691309782802544686348568679281641394311107645577584900894751865147643702035348074357857454785240147843910883616668670641282948031241854382252094935685704238305977071050129609256538839334709255461083903182284024855676975774730152550679773052692530694269317584297798920461030414271412472805960409311855154813808704519440788725065294144704982607638464167087415967918626237286354900817713061304763665237125576139251618901043518503318405327292740323092218853736629722883572201234168481661792927968510077021240091835153928842517748947535844940935709979446694494483207907898560319218461227955272707338725629108995778689433846887788703192607880334130102862486955246656787490252393564879533753307576648474283263906230982185917245598000120641767937242024672715243927872568410479894186203557191016759880745472601033527026826175696503164697741405474333758001237125338775463391767339409304671064572458173134345440446981029818220355352701305922645904864525990114576717667974710061408009451321722188223586179388648132080669831797087553832193633769977716545324227033071449713154090053927253678488091826106977303462297547752191642750980200913265040687794625133118615023659792930893818124556706449858565593129230496858793194553614788957952138427773336845019400639109509352532909055524222218406042098009517957762266550321598194423939792194509096109016526824726469064279669975683362812181853602333849976015568864197043547423820550329723753496611109695817637665405248403126059923978084553211613887556549509480805815504242168608531772738027119144906243314331700931039183528389269928249048572883638986196192134233074374883743230782315802678814136323651881721650141877393205272161030276876006845104912602108979948341863471584934910089345326894489638564239667979540622230542212430941332054085250000772350740623283704249252996503287683901374166668965706162645725608743434914098332261915410867953995530726648230245906452516092958181328626642268010174923507540737540525107914823845367297410100571843900530959360651667778433952544806619581009573392811266823425505186601670951122366903196591530541571310349251581146987165479033480770696020861416863068877875905744995378347206769375566235978066876112510536735822226994083981024685450879001037359915280048202605614662611927273847786921447609862200554658382890235772286937272407989314990447311397760924496960437177171628803520380785162657028013043290312790132344653609226623397015786390578292952156349983643809319171145814158876845796699361401736962031915819753012549369284366260514589825021683043346424934582897612340737379859532387146217270254495282867372170320189085092969071938462076704832851458095449169873636822341551368122615640652553041019155568576589729937479256209861271030336553776848936493715864009478280673887190872370409904169644961010717082205708435694607879819596966440057863379026904671023923274821435968907435602034588184131849933167590230113395873748836527599186179185389782862656024363558179391227920915689465156018701712749529836513961910560331068789851249828979977862262201240725840543381857047294665889434647053551655812376776262089205117157938284502964945350034787649169948869893518759346200429568271745344242814732785392398146443440328636309504868717256568321991606916961923766790745696497276310994283819248502011586388939944973797943054667037881299903459892874185856560576099858975560926575612014587723959109775565295289983864029795459621419280300934097986595493131340666159004741007338995665565581038580141340812729902887535617495499314706887335126185095293064207599027693899585143847888641070505542285897956805932450819777880370269850780214956226038866761961998681809884598925096776999981967232257686525931266745315807131427583457784320816385059752910816577745795579432761227968665844863703365702470677346307897675621450978458060331647845937533270383578970672546374353645372055977783417996566525780959074387116126689945980130722632201332829101351022150234190867158061230132660754429944623535364777295103017596203468014737520990622144153467845119060615343983743634437814239264993950868721841508460402757919502837204558634401444879870201084067351144913161029822836952572364785597906650445905900884475904613605583698209911488000390107343264791209308240468377328082419739384734630945560467416624155514799506034698794242404240565278327247478159787413067281943080934632341248662462876804013066256159298083942907785820469170530007802320529299770422045474633569315273969236167677893873416726731867427102404644718761074638518890686605318538812859425357454387095188504772607056557692657854407490245766091568767291508310045098714329288292968466715669625487313835764641130737723818251630887161914502192563045649517845009031258196894096115768146640282866769020871014307117935318493848322711626294415516973302959882908549658595855333647499805463003226953792341453523137497619616432922900588934684887984593413840253890565898821075772321637394928284394651901207732734074299010908345930107651945109938673364538216492935761688507935149741010242227504732509214120965404009735188761261216048155676205150350082249406046489456838822970991300801477927648633949208906766735194566869854375023243320430321443632223725989671519298546961750155814674769751539753413907095692627853385609805048615958554713469622709867205335214496172579233542346463905318484725967914796006710142901140610904734216330358282126846856380001432419188524206804245218509961111369727431250735380134134436323747037874117285526744548462547231382748660281808576376972481698096258685235414603612559158021999974921530365038916114106371080570227317758530164573242932894846912571722983483286837403176332264771546323671058733386161022326620316686326198940356113364800302380706611351426074111590543137863357969283326494165088054649574364888872716895767444555204344322950156726109059393236976529153075062512598464955807798471076187541782091341834411901791456178486530662827525093592878405385494186546579873847966920548487039991898655208750635478488249532076251741202938821697405362391005548373224560939088051921531394466338816390863899272663537499925881075883661786863183670728257714595194347126313760753403566477425641457370157007532423266273953475618766852503226509079895364302414837964179087482088348073322708753076351659772039877064190370501773500005020624726350835281808000389465096778032599927398894496042053201677800381231120753504878848427538328572677238025358174731294586567014286844446079706347261276837325529812955364132868241604608364100101217701068593101209838725442918579622746679051118779675994140710973555215639531140260327166846813194819217818494282938185184863742252003593403360263303043516299443033008580935325956327018466717951431557502362144296416826944902995323891126935868657562024908319753210201013022537558841304736892043109901597045784564410889993287204480088303617616114759942175494123286316272140049162301813019397079506565014375331058473780178993277253171961459510302033109411789435776210556462684591726272334439257269894518830647522725603510395810611067881477665790007370823238859077020475137919042870795939160057595159508889770196269246608867727712078968830836772375888259525301382205936867830320930720531463185571205151282538889634589501215523036533924117729866414901235801131735305715335008142329598315886679281729875994503248180076819802782839774822346691294525442744388311185002880444289351317554833476892311542335603060275436801659860319667146700285185843822283778917592069168940036871118754820717340764917433826812207901696951789675564989270139878957595081863989425693586278330893388322513407967497665194258381731413844622705794940910921276901392413118904416149274245123283090492682712001329059634972596440358100829526375299446679131054386668048661233516221960082749925585710731663641154642103286308604113027447804956846564462559264436346453320124360136546220942216341018031877652721443731042908382697204196584544278817091764038649498354537186322343383905828698679921389537595439391861091480989277713623411858162906485185748623205060086353610775594182312640587381908135422371392793626560522818672328844415444539683110883940535540506357491806234479394397654685117397023343638998535021517896560356300032587180735956944379865004179371150041727852659508911291773370663060620349699093767351141709683798429068569507595685209820765944717798016425392911205557893099217197873683070259760637880261395884672305956782224342431319468476465005425568571120311597809859890792044513999617439961406943635290173122053289891593966524810268231414660001116553859560173910300010740230410013716139731903066164284187006601547522678259223968567703510195036675799469762927872973529003416027243091109937170396985537891989411018292644177052423107987399491703192428393384856410316833519195834347934015699620931520993518234907784469077996494632915348202192153047492131163453442324163559462804830585747257970992553129443945739800199786329456348692488215151680573228618996126322645230616693746346990879419984167652348528536548629688248994385424618862184479094296040984484680374714071079072494673783650523684381764976453521900576397944897207356242189219948633011483972758871662936677998545931335958510231688393904732054308639057490983118231677730265479086007454609550865969688271923324661791477238403788271569627358237704628858598704240787155427262774423267598011181944780356359712023315132128851210229697979462323939465033504706127023585397329904683307129631672364233918243720718941533883189985349297680582415796149894405747976812908848017977778510525755029395539708936804029879351604878739399521315884259512993859530260853762210041356744120169617232928823634623310979242836521650847610610099920690615530952480505302205341386297377069808412073245281086944860323743682102603319637876800160436699954057417325574632696127151914114717673839955516887403851995546861625764253596067056484229539303800772099826714950794441547019140571146758652146288331916344987641294310307227056289453170325476630970122102666550503209565893900038750809875565207594336202047454031392053808020275353656905358865993656709220032938669234472812425563066937140164279276447461519131949475092160399661235645767592785404454304091157188533183796307136447129810832690080953447078602770200838547024682306105505703877466396031448183945624152473307786959972101098344831540312155433816238376205435874873157058187771525112274656446189883325248513471897937893738075815823421201641437396613669520759029597035079467949263055557959090635154321831390363052555303515626336522090491235930227606890817268768896130635931946284248453313399235254537033999445333695387063829491885186356592754861956620953174204463626154355421184873765788873609717813220301788759030002284862253223593352380767370063289378230220648376928518113348662728934882402259281726377496738647199389283227032235238786348688031951537137272719989945113840010714070221118844979179236481898426407580336243208800070158987376723029968224356555467804342596165041724009846351277641943500380652318642728258203667647451018283171802837392793031074247594761005702736776187409142106160403434421105349095956585316971073203772988687895178660248666724565540343479998629095075755839702084534111382564269457256415072794158087199769366015368632633338003808282670633136982769975323113232545176119536898198659084824756015531710187736248677137518493385206725602506576705084737295761658398757594626732161741349999172439141171896722846818798381924277355975281895496510158042227939879244451713540893456751417546163317360026311057828093541497769851371465314184003623420768222133694931847848844478011230521708198858926321765232029874782140456203612891712698516641407479718468765517217141701056394292885538063194410905064166256231477898986456509314642266622034289145661157698276634400724624806817781012995909539868740130705608224309575328688744986103741094486077393574272717917660506775235236966990955288559453091889364029239443784408175736725208353375627091184383127689016073183282355520093530907829550183426890652083437369436250008886018697146497731573687531409573607738041641621265148039780360850372883642405454743895903300861658929391576821205257404327473053273811969691386686821257067407041018214105904879719691359104420494583219906779863483600360048032389077860794626567860890059507300984405029334393784584001106892887022218293125384611444820311193539521050229931025798937806903988118828240796640293275095907694606757464501800514985050113298712059586408911931813897145861709938300744186147330655346115593980146928012646890179822134816825424320112009876624314679190221833167682497058586443097106623167279712891736978673841272679442311388066711954225002149388475953362001634964186338034471637362456138988163658988214191673890405383118117112561306186307849701481957328562084613637371063234380342211310546557912779888219996055654355924354152987835730347508433659803760404670251062481049290707771085419140214564762994377385440279577819966574834223810519869538519106430899504318706600792100011200328419987181399880809578543832431321596533992906018968422831101021043913539473018082773018763069820993990063079645495376415303636488402613422897810438926758849725677448038132770500318362677399378140158259276933767915186352041525324960600329668221152439670060363677901155666521288075475587645979655759631564971613409461612221063052515620686468439117993051868397572358426391349091977544949670426066777688990080610814480986403737175731490470732552342190745775991258195856171964141979079395839149080012762286686930623383413433786498461398654061876576566702794388835558456558375560800453046930654977154023281108518159326540824822833169032598881084378308700980123613106094542904017800858090329363529421832401784428962347763219910553005514641045629995810639004067694844038486773195152720246255102021421359721059273480662083284192964063386586905833767991435679585347977983846026017812645943457463278541963382249763531122970047942397408302723975103272127436540517826819225865766232300642995681051702373917043460067613546238086636339550825257598998860862470489177873715117591067473692308741412417733093481184479931705730582739535453872262986911643450466141755933469888132705765477740916796923515147364147962481197654126062438613795374863862011395974420267050418100776320205009175987354720924610683456008406338466672134214521848127239205775097315855235671967417410680926854352647389732661305779955702874931155839277267373364058720912729093840369809253481760526649334895076087313740186183092415822583552164684513026649291110727180329744533190868251269364012058672570059728303170556878920402049923609589235695125713490786113314229365991767515197114111540885043203110272544811946505539147329963546600742958227368626005734130969092093044119924526461712412946798998870599070023226767166829079732004533866539512495783107882083020155746287913389157273402574314683724585440293263863759036255335212957904865620671883900532172593153770965222261447608247965416929288379262253213065232262062467806034135672719468534446525942986250430479280320783775824734415856541369277417290744941562757877478020985980759124232924563960427651239216859906024706665918848297969195737340861071939611531302472188337588049548618724352757090314149241095073925893256263785869706368222911773949050075490491084888500379009824738696406622088854898370413633475133863694397510244175033932812322812540110645450705684470060161186652887777842467763916287533483205910403318264339317638386590471596378860106321137126706990094022946244252979388298228315055723971597630855249558065530540710530843443743238474648139463823392222199547317648375746164116786693088042810990664870609798394894462152984195296609030802524585705489943013679292698655290912451569335885756293442059997380934254827083644209611125456898661207970584463701443729425322495792179696110890100654066584248987477030861863985808412213697510328947140350004573901547139493740488381823171482776660949908642780081787045277618273935158061449643451557653233075780954561837261242621117222905172949427701875596514280750541024031497503792644414217223942874322811875123421089614733468943196312756148897334638947891061067692380511836538195535392487997497110301568233623390688107224447610051450222153600999687007996165187833974235116006616067333537058378005892322383170811240348177532267408529564961764547952578403844719080965273481418437629540165449563802391231052107675420913766010963506948547256265289119627824368337611263106805302094501271173745017688247370375775634173593196582832497449771296454221259249434974936589409403144546257762610966464778518283990958110323320277911795488078264167319496524029355976405713223955817560751390223332593293390416528191958533448867880921568714827058734203385406888957161834390773707442245997708017537391637909154988555770488760027932144420036991949937924431937524736838698996807787975072696323897850319982147797245587589373552472201162545249950404958840354326461004378562635027250536186329956585569766209301933628281477941062404797042679408773893247790172198117444690288507609229300857999013586189438307553884509022078066072518846517072849538149873927635886579074441016566955598649624792668594812687849429248587912041324249766531728970635416970640338931672425592070951657271815066760351528955030035925357618469197828709245464055102012587179075111608079773431658856072833367398013348108189672858659774123175333099873412321821747205087274558811663775376869745059395992061219895686290314655688197052109503493775242974421367053399689658746157532794142518246599017184365331658454815098643538043478762140977067433753419385181290542162648405798101467757672743014533317495464837256586867226421166464733529726299746314348079951187163820646122909940537117101901737792633014577306678038126292996936112090838906672185912158489480958708852952875271749882791595203125672161567126029374755429216868128800077816204669928069948531949010553052505824004850124565390789267342112142411863154122099909438560122463937084643245292787480382615188592139741644575080580130396182381796690650698764207250437399454307180037583058723702498597014547364430350761037380136594734178091089174166873883057570037878565735532296562794434737715081395319589012471351050116813898909958692297029060646972245949925777497468770433052631132949371280488864319271781241203614660308366424416988873388652356587546431526721598611240063630708382496623844343425312558571540223800665675505739109256382739582809407396582583834407079254383130202472059538308629019377227366333376320500759522009421377198861015442371137355273615984535911034299944402989598544394790882018317281735698086237348688489741588625737298552946658651097302834940988662623657813018976532822547988578032025800832979070123795327072026557537077888923844709350317294134364140132071266021454045867934669716883944589539052033770053362705954073465517054028027844555971547857670510432948356024884439143444797548458625182388514007212745530372777595367335373842837517718078238466512333478029197156980750020097815801524416062155644625292764838590363231190400766545726841664429891213768298684456752325938143835306216968645595710577509050886219976461678781209337693485357347505754577538433192305762703434220785725743655997513870104192707839386866451075668868157815162061461290531548450954820806019051324724216432983973066081563020267407479551380228694969419686786999625134312174321853850985410041925034445192518791424233988662656656458582761150467883507974495725832970870976547964894908880244263479387992134606837000125319660688967755489481409978721598025127196643111958008986718546916632835814266075491995025757407862602392411014308675763176892199668563613539475091790474173511248932006140466716968198951910179512750245219851829371547446605607946703417477515130345536042729568464733308119412077812748233817044927464795592789880690762268128120672807668170893172444563753591221596650597038513243520361781893909625164767517492123295668523103270348512391326963866471021220180508405270550812264791469382193175578928491739499701264941753109970751854530371821465874765854772001780044551943786930463005620720347329461447536741204936061002873408488404932550561665758080610363168572863261581336444800520464732686684357773972626585190256027345113010146271191828413011760898575727927251615643281911782931655509914148234919281955490534468965425695765949244281846052615703041016295185136710723939999079765888271669983924115546095627683676569632873623192201101694847218643852256808783559385437940013978107109931268643072878021073725299490063783272656619510885788501860505853459157223790103219303421754988611960028371870663555365865718945941764736443793238804378593128119872757182372640305528418531384888632290233486397323897716245631901128946033777511417001221169378552804605811780855998567329313442284576723669504267120198648756723839930971501813230820148617012799247000274526295640787250878940652566615050512753353519267081146602364371238663477261734100215647362914578944090588101366095757035023779554863940780086072521637074349106681096150357501213285874343614972835655327037551951821490134542485816453325504387824416330299391180828145181411380618268137864320284851820774711003094204282827490369064261787275575243770457753994613368301729566144706169920271355239209595944124747084407518552271660222256457032024812081978470558376423588499826503189331860143931835694151651268787224748698070073191266015766733093465213198042757104809242363474454871111681963237408009341615995783190960639968724035455957633804988410808175130974147183124270231096674658047354566572594387181926045922696983741187442763560557829578393776606163739326503982329700487263918977359447195285917686025239614933690506437103136666427424360261645027510859238689651548215381110279860509086294452157257828925924078460496063707934649731337179784733894668835704526127929169451335517615875069559530623564247740311813664706456505766075073260970579187139444884878181380982230902441014119766141124964238598105995693566295053301482217302137351163063503247759807168536628785330728071786909240672709256145544632096909204945385609204092311488759586637667757894047875619603804360803560697044058797715116539210152959099341871627079445605680367987679827221781810094788307519587799380100624838314825613321346494804065278724745738387572006953891431679506028957223055758078642090120129166286591731462954549431899460510092882927538987674763881127239091302569005672614898465434819060948745979790693625454070553852779822726374446664324356557399537709697191317724141370220582780695032525850964522664147760153390982146266869198875241535188427992861728291750685554206019530154330045415178223110474610179865652644132389260958784730586986877291900639598490522401097228328152212651210662850848035061106405342657920136674957559983917939427238351437472891544661409310258261000493510015889497600087144467168053505322972776781004164207062922040841905914497693367121264635385483588045895895129778506830564313203584009208883301769740108493500855138593389200112245057027674841736280450832989397734200305689512836759354513913496257171261502417967937319569909184762863289064566076175413482436924821106768782290090976020602008952361251913988803279669308160134482700040681843640380597277576164483462325328692944764963651785529172645720005301957762180316484809725121430495515034700193205340592283123301046097829541666803666195223180989239563650023280610220057856809881335696055188278387779132696301815125117773761714285330957970425405368423365490794232650378040614035655277136119284991843093735915755297969593478518376516863550986770775102542641300862722037946265574255642996785399840926739866140750234846916897740900209147072011270686880722385897010299928631531770659540989445613797462690045131911806327175833426627226385411646772532339368308332021806919840128849923884479061153452602358837795295495919826050145222671800892243143459194949114766684588538338747654072247106982423223742569943029227874963143095655329913818864349060324835903832086767551821184689368774048054738179546767914031314032489870799785683522579786084598478031209400719272310766371194606152514367681938092200548583008540964832545975336908276444074433916734107957233465925847424353496695924213329359188661692546955317745656242200770432908816795764254758703982441149042501576129379033589905152554353809894602351026075471523882301500409046705272033471617231085140721761594181484932322538068712145029710144965757039464945824378925425480028571208306156739165297707286891536133902465965931325830063666072017897058975262096634869664856345434652784485500670965416850504533157779627283474210617703055615825261641906043010009067912919228459737491212355488140671917446876925624841112492518807678533572390804107762353433997266347075937976997914015303508604278941032797007205880048468457091287537410431006623121070356876930634600036087632034284321011818736088416514109405876576794445004334129430209016247473810401708954007960705858315989295077067797810866410123928741879864226439333202554589140881504247021724897145433454903868872703547343489323906515080017650937981919350794348475807473479386049648871795815002350401210390669268559521981121562181843833620055334297337816822383040175753511002848788966211758438865513150392773322877507296091734039804512525684040615503702078482192766495314200035184753597349565326241935603484675061282762639421222944750089925588574145675922529270827957020662582602452013610197230242121802307657878480696855666223637653199769854053696059879118349221029167784584170638709732409294990583846357396120491302479472224804217203444578363762047723421372579089195956434357051547876451513673138408842022683704924673563917372216261424607917157964370885305802794866820390604362125222317584995055417874981406931298032921484023774557502951846896781990097016116757108046296405700253906137791394007306358488588398094403538524825559686339996381298558777056596737309309541452129680523804891033561734710068526149140589746430814563514974532472011483366892653803492941004663870669182048810682869607421781238608187231262174842887845262244583110139316036490387915348238677122617344744092816089273262777637180204911556453415844415412196116808459668412476668424143632712139196833557577610483623067917111822901352225961649390749097019969971307999579546263571939655533894532608359214848180566519287857230876062329292746899330050502141294743797294120217258264396023689440472449229744703625373469237083538001844397805768896911623988634793099350354510575061306817453652935022096217513948392793770803795541548477304294411248151025523456985648310687478209922444212406178369786793851666636808597964229593066147162003742373694408919725521912760680320957461456123216896155942440335063896384455798602636828133985920664881275405517471449798049476488647141874761724934808952989665319204571616300034756308357205977353887797559217845223558883803092112694446219677433592585288922527672017401034283899331575550379810996014538306982329130846995910060098252520600827961507698757463774346354806365508218434673380550294187997747515997273099774872447405940423979909754955449152363889610209847555932926402692658942330809162555658092675381303986298152210536108814253733071516773836678784190195268395595100835065654775091468246979179390001753077785641340871776854328249671258173664610293618983351113534797438185055397419273982398052242366062958321586679535963972165438132020828040948577575050838452510761714323550564219435663334917911571949294979977107736290345423918575852088163888749596538074087931252184243944889663492738352265025075126834371826555136278046807095748192078330508826534719345390556811532181273800967832170263162952715402464019321221043584656065299397401439848974410201415814633398448550880488487294619292270530543811727991591056044452093435898685431774755180553356010090408592537638839306515245081660080732955922039487684865294516423131482569387961745209223089062845838633149993980511177707953135131470703628430669415695588641164391790239789825859285559466287893653688344116868123238703941710342735859131877827480303467360161093982476340524097881362761623565684673888291170150286837621597991690531546504966424726716555138295722888460667216442086831890018629377089717317827592677510236580758565156801896430473892632305005763058922732483212383452328893736523023326920486215420004765374659771222323748481773191379278138707579471068552242233845881021549013972113700674171244999275513606718228487058480369471417565783307108379443155997901929993296140388765523347590165241047842926765990795499901877329703170328923025752806189115015910623400152226443627560200729625024693477728279821916237175302248733757324753385776469807688575947152757107364744338441880069342086110079822736111853504577133043338729950456405594244878590786502246259742289739675457911328868572230401496757726315613656653971367467935304314311613193921031583853835752094452753024975460377781832661604176946678373523152688581743307754950519976450712959215020964551411284313739556140933708445941762077861284432217785588322250232697406637839006756583519959952606223181461347643179478720355528465920471588357824614044672339331247574096534161358395883543676815271983117101269673049514776194377254208370498884786083933426004584107865084967782277927048900961426550418516591246880036236860374163573477620132781963303733499475955072550977687095109733474599849197266470140834108567070844407269858642951061782249916997987970082038022894608634035876250946661587834324922322094638583527505423942983606332902858413102374500932569559775955644167570294127978189243677943554272091971151459789833940028643018970098850799286799094700337124839220104764528771311594236386422537478598037165136273762490240996866676184851916454001305370195650743215713932256301167388571696175641128184301442968156808963054912426250675127128456356478339503130746161170752696446622059308595899811088521699218508301978259758616192751269884258110758040527534146447658282867959826769450739532217030778253514303073982175838618804980963459056753633179820216049532538685388675493862187848087315950737949525758680974276052397353377152413196271425920051371232834095009191025825554021054012935186450006479448003508026832100204650001470928106035611392509185236896226864121328460061000301305677551675522920495644734255274395194619218996103680373136329257240178243236627960863538087281656476797269656969390326607993785912817841206113529027247264084279163749963427494235104520202164912008182647845355555128832790070530938459578918391173118948664015923822994037713920753255754519598624506595911409892197751867590740026019442123190554921774821278268357512360272031212898015353373549554482760927645616016181683736968837777845204061244517434623970396943428162741850466319220757289255691722590467789127444446903067694303809508104229216517760409993108296910790591099788521104509980253089506427120980536646778829735780341669968881695142580602796232205761559653555898906552911388872506407665088728304177428622244760486464060924842945689113530235066511379850886405393933706618120156666465066668281303672532040386815960950742408564856738371781043112474399759844932578088812227843227516850854742582200213867194769268317452261962694550569214737182285206242087797718108800670138014126304703583899898567128399397635890157283120425817860183260697448075653767073021668634939015844180652510637806803411687111228893886862299880887004693760373427577343270507847848838499383755773166315635772079883587778501033484224181086688980410413714115810585814371199995229370625768503878056388423450422194294917104622286716494808661846840349391692699186447464179027839356758826729439911882324168300844544041420048789490458543555464147949597510488577586931146508555853029301417171940755737818238212615802010275563801140283290117059307089961160153792906204889125291323492970550991682281323783798453192967792380054986361070543817832598578669482564336097398608831967260057980562507101575914364251613633104535093925574693471163663366961653818606869282463835464901777146509037583835370868886503800045207412096011877147604252847640877211196284959310705102551619997368796693765034842401615294481814186160294764887520719324029520426648560480831767101761455335964483772294370859460656665160046342879408098218736907883539942555814026506902686169341172622331406049432488494020530359830455308707353270349901292015338762336558010850474756809184260810196987590215611455339638597319136612708362428687963637857457193654122692602056385116245999134518742773392258960608840710696622383472409386210799743518901086539514100813811398138066699330531534187177745881046711436785357075483215652890701774367406662564489973546513763181332055830390704396136368155172036968967065675954759677041218625815395682512483596041190732022575663678461530886933141074569571549279409801510955547446150391738035274092704949221632748468981883111016046841016644582110492518345171785917168267112490669522080565891987873632639155457874257649177766681358597516279764866956142733432382122171370630698163751226270858221907148774431134021905882917927730724406475998241376515381801071144289456008800730378253521792269243068310990760269261767289796644973436304209721085038633816595523380647827037419926307966287817458392495705514655112845349659954251514031843863721065823363009603418324493908640385548142719919315162034052914456201351620333249032993101203630440611867967893593686636600988374618540511318154850518595090464956667912828040502507493564273284928987094251365167880851423021838042120147695123810593858699432509119576363231802579973455751090444982147868338425190001407910076778183340906940920879359859931642812906739547237572554617936655623722613495671453234067664424729706970708204486264888768535112563713438631285576906757219763592795983665454217271834371333022856287527784901635752766932261390223196835874852168792118541035647117858488013287463719841526177079169994746015911442279606897389034027093118011891358327400068232574047594985888858127278617642689192676827596821346302273754935184986681530022036625579121579087951423515106303724590259167470508176281625767383815584669956611082322082342713871266957417927023336922539455548269973871926918388435937445785651820557427593501354534271266064062348567527678039112802449462300114910853788427418545243253185064212467582633076522010025120465296872992178080894062713889391937764251746493193891412518744567082999096382893946760027441261074500193737253206106764706214731268069711688155451817882003009163703807655333598008748899132903763004411888072365607647906538956707772256869314542663958346397390724289999065959273396260033291824981440876352137249421057520948159150751713970065593465375201229602907389293742050702437342601417280272889927484702387060097516635066619108671821530019153709299892177815742910548608937617686679105793951067451689765327320659683339706289497836631696229012616346568177428260508507715015028486763851182453829689594034035705414367732930788490901899147619766843832832841128619338209151344058648148281985388231687763366514977715728953200030459450353501543775199534108011508068420380177859229354891654317851886503143682529519728726293901538422682058423298382315597797562027902665877723155537035100320715916234707850897831753525513999438559863411456629319913438159963060660246709392085711139212363289568230555304980090074903128783603746055817504712993022610277725473974966477997512902681100968569114112138625278355808313085650728514539984844547375750107846911152753364934498230225027603529681795808575282441854572982446561018437295130705968622028292158571301063053641923626370231230965877413673636269095511349324869291219846291092190239265353483807420975236147682608077306879428486234972823459537283416766740454766165684254495261593758693617541404091321648216535127371787161696707637932217834096905572113721034444511607400079868069453221614696033431337261931144401182921548801001740658418606987133881506964223241833170730179952729081186764267617172414983244457575919450525756117478757501859915991641767530370500587399427315171695602903814800438342732203057428640005742815137835417390645418702247255842163086850878415777703667527700918695666348321927586005763175994157505221045356182051507583267806556258082938308556885376882957447975871059385270513907073171893924052312553063237466652355420247690112248777044765056841563704088757446641139404363597941432322368591517896002402620181014207673781669630388965086610037423019780262792338357299236843260640689790320069146515803801925911803489128296010645096345005680841026911520082462823248327897591237217781559545186136026587857076660476889602159207372882250773554187941896180322822160698169928259916022061557600838521443831185674153900226412005304124828088243283105406437941625250809217217249656508074218593430281739075286841824954712457536941398461547843501240518623266724037530406148784820901756405930066931985990710566413229922272763588664235391202032071710406229991250802337605527308284251883618615968680289979567643091839413750957033370390655427084320345512282136031299001953507080560003627588602852513086191024809907241351635447178449009571982443050418870245012428791950841825937898223630275381882463480853657840015098235397973193064657636146821358699539118751399230878570639561580398913507781209746437935514856564232122772254098608675677261409439453540397287360581752507120612865324025836021405040207883801779948839408290279296334169189638015874438298945311321849808842753786946840756041601836777182679842286426345345399397761423471236408959780280290352041658841699858947637938797990021278585867304250356510737791777706553485759986923683073655859059044862830779034958531388874688834871646366873770821122853585156368034264821049902511640139568469541969005625321988610741285949616352800032510502043206330924894357696935546153261117448445970761979895404587690343170356776605851995121371747029582633715569239247781960986896388110603266261110066260192956346063327085212913896539502951414972470265593391822439265908018790231668042180160534948648283105026854154940511002552656434514362697380890224614842494575750060273586379896928769599861677222409073703424413722407481692157986834176410478796459387755505349303558342835641057880409321665937393004640450896757912026286603574090787864068865595552033960247121938414028522119029724130211183075094273720481706795073668363024909805583586644932417977303225662122065270589943681888613776920834445583948517339710572917441611926928065794304127881426903321583328978921409767642713295930978828610876652969888557339603650915500401159227911466902018992905286754962102904131198090387306206840812044585424244588332979582268603573847851639494753858816799915581518177263519683674125661383521447244757952078248221894281623111033237819327550489712671958028341168413982158855100356215240427335012052268884540962140126498866444617249881985608296920396819147364184654235353714038751602893113467881023221749360323680594940173853590828974079807526880415222491705247766948406293507148660653999352466231693873709880978590350536156269337033191034721335221711926525963347757186127298436020708935190453881015849985094742876561819541179005974188685717778463772120892294905586638974873820057108342036610656254272577195933104388051848503289834640122281348543679633556447680803181405417203249047577863322440621566476386742200452076173364826713483201770266227978053716550993557052024264289072159046912225264573714190875651285860195443124285560479611542555026562786802051276760717685245068869206764838931723945578634539903411476581462652855964951693809445858040618154859378917822896967857580461227599527849717653698514063191749501731195579567645264387283288917963497598283295381817626070742145963220295022182188762122247582262652195715177511853477983126191788251202555664900193269615022071520589043164474588828736525321955024632037488930963710865735946379584858237858040227901132659672267749204889680114756840711431581247497958355155249017190584822433233727177452683900166660824289286280978224653459566763383004633985644644744040235918963013199185134529958146560947622886621807723087938196923549500096420306226758020063586177910799904285826897875897130319303786353207073097351708293947349596309414416272954576937170790154236541560133196230894756237588100505486001391823098923014549889297458293659201640877661111808574238376141005129499412593875017131466158781888371947960560530541281553630578138880198467392294157111205318401558185996165920614593887412529534767744547270601657350991442108672421579618770068786902573488792637559906037406831564632536372170645999070580327595788389610246691427438184925205439383475035575969614719916837900747326863289313372769827333067445869004131579963642164868770228920620110980770779935699791950588041742145041200630503365452102809346096424597085923912501671856430740578075755374716239116570866383610992889098269770277843812868184886295669840349519643026340952133570114419472061077022351035063638291154964882517462348203450434350821105176101670495945686109065308460224982728721204151800802177989029186025934132118558938021075163624188879906855296090877251362099316823861791637037450611813763078202023584290897046742331357889974685436302934550370663479095186959620741575631962490013810563958992531972936709782679285912201714693293857644588003671635271351081119104282138816764531137098615718703866826268028090641110798819416076099656503180247265026894279231680831834204001815024813233652351014941453167940120447627880149191880044549059809802457586126348663500706551968835750153693104936968236047691933863681720546874565473075513556705900962401672440235131122499431875144409458430967817299054869254607077538774387679582295893675753704892998090188362425421239957879222749085297553721388675691034228015642955507487132078645861134343660548146060874919554242002013553363765139505865137361731802318804222668461174157575677323315030767347371740888152676703620172061054610183817252153510768598383178907939976058504740866907778153251432217829830177756081161248485548117018873372232811847700829091673370692599899825852172592393794893472964877849866933093861695199475089964524907837229103527256013857202057705406522450090258974298744770388428927270268677704550813512712581425697381282556813159986232166255432930612371588990447685161921499789822876904788393147129797116920603074934074607403256735461273311540039408720233986171655229764884846532656387602554098570274220304521291428130921463174585336726534135313283212062070441610441643864319818940101080319291959451477773026906193377802431956153163982400378198548576980594750781062115725484004036983971108435393072037233824454946520348086453905184204062635867995499641727443191228959286823439303504705301626969695342085852565859806522803944585219240677976074235571909010623594297462399382832301562864145222013268329284544191374443476714313346457666667815821802872572667284215677256378624973350113468421561555322670547211573787502045668003676517593849432011169976260830680043797999346159959827389370427015191130852226437934394859145939157172589184487609460872411428996846194145232076301823479529210638663744094168908112843963363127101840044255322233349640209051989910330232667779565605194949661604390907221287353577350225660367625282046747247388941820941349436247151911898412593835543951299274780960327896004256883336956921158004783163696454691001865634655439344646063886698509910802629156154355642910291449779266630052745442627264858084503053927600616883348603989838731713127320054704126357547027228693259032823287823904780568164138563987597138179115165121754840722165049156689453288108087190956234533566003316783072364392929640718320959593543378773482830647902100392509305956382148647645314496027316241153559601544589076267909868021552036202593001134407580655495711083238418876457355663038071006356767157310708237780444177686241903473946474017353858446853022576195748156380927705933273005464535873510664863989503220856663214890028424355597555740995500216672813390296134283528755096979586011797901700933017034957247078959801315877227559639059318561708549093061894564898799578082267173017677017560962614363626181795256207349222136767144996407220661273200399648843672362466176284796907815773961884473774084801790672945027441466868517715585095712459599336583366808133766490148199971575006653420377056863272754651429868685714818222492113939608038925901671935197108143493650565864100043186027644948421998617085551876952153613310461269901199003198485144077609625568041523027138099131915197790414597083990029559349927981720122052694450969155359109719075632407245983709540360926943958255100780638368134611717504420513386529587453942500608428015073630150001998476839133477106048779041764121836711669626768926240921644101213187997570445516350550228849635204675103997729264762227951019471276732052365870601977520118591638652129579501203836422853141372309597466417872712538138418472480852312657298562206113144797320425704778096691942010941131629515120988057446286397861109355098340298140009227281768096448837492648643887715664243349785651174907508552477132506559144880720014836793372911233975735757842036907125416654514685573582946027427277879106975110487161453379693835271194878196719889450686658040601788788861392808475946917042475473986811138669220525103219173947690198990719289718110749150873910467366610334692905386999666076623478795721301510970613553363832267093479306092874904975970878513677074653621854673958663793328869501557161418979866439929871387280786967638956812081994330626890254491764671291338591937907819896906650391831420104678787730275021305851057494033677069480199448060397151649200206982444232260251572478425945792852735635246579791241024661773702129570389127350201701271271833810707787644057602500999325308620319024395379615054398639555099065509246463818246514899195804976534857291326388925978441520982861011754759387455005038695861440987804091692539206714583783533107254530144680939242859244202273653266771644821943672615239581573996756979813963563111457494220854692621969631097166894932784229502148109142207550150366760915558044363226159862734129946592914422321684019555887743695240217962875043414975204904004805198763847922481274389356275773421204693741924042790719802185047972506901103982477487319407253571110898473115916251867342588732669746413495257709954481726653870209108651223953950117526706525892027587615621715696544979294739143890062149802782070465767497907450223356184673110579582950732493205686996993146595841870741821207772435434951095131517538456348041155854406488006416478626238368710782563413524582716447182854007886677339808210588037108115563250501111002614407822477024423803247297014580128578630345126732897520337591686583851152184517734678742120713093203113043753332053966023194988396574184158317084163462043466322848745220044501939059387016224243192027748159657045360289111709925880137368169474041140199290243785461107867156392412498635759679298010227979406954926010463555677395196332193105043060831932210985150638807741209148559958265365209682431301905959206633666706030292963844301126099261327951720413499227785744893156803739171323853264265928347814220631940592529742612979639067106290934063145271680472442100415507575731916735333400358869763464116204670320740005515915810599619847371424443358091710829050277887250383252637392834300754376617318087171624990988382381918014928628129169350000309896775603092208459329659966853521111917270713453466266203787270331289456025163925502372515453082015761864989152516994966494458364587524996459513158176652967793783653957854009565758808007570433348170939844223295897248112167801629253864344726991097596733692852564796512635277853416687424521833756698291285277993379643901264692984060001663299186246973206809204000795992509711399025706808804377216169285756847998265740534414836145535516180425072215033128246122992217286952817131212863435440261017198583264587342320295237475989324505117417684573445724852740439456740012463692125358351625364601350355309036724659135517527764363115502241165267552621603722141432827466716471898086224666484759414969544220909074969651630922284674864189917451157366682794493589105964058099186655429267729743075977018177163334368182695680671056948147182485262176747218435198664746081360195095876273272092902654229400833590675780692630662196074587068110120146434064277907855919408854240925782920622562982057053470814027385820517932116817670034072616774066868990182553029690368113635124903959052306670157578829447710037328221993821449769323700982300656441658247536911773660536031608761616277219022005476919943891136092755286012658049359016173943546842714708855946413832096728174754651315221071053322528056067361656718935224179321652695133159933811018186010652168590268561690649492269928316978575856311529933747626178756240555847117331439221612319991271022204227499255501871668685831347122158819076549053878066330381855333373325218964900088513757141529564882135705293461381912671482956399552586893110315457690736199996919127408638523313408884598101669937245609601848856107930835553119553914638354189561271133104493476292840908199353209588581745135692304461389981480627752494152656513620260122134977665814411260638167295921933058427367162017796000052358186125166357966415122957914873458155151173201501984132955412880396695018464542544251409705677316113942568738428489864694049378615114075498919858714134673307521203171340633520805555091058031984999459388878568800976659915333079762279857318025873413736809282484729561176582250666156545620974978420208855992996693742483888436182481403220755205797019098761042632570832911992290502242579964089569146661079736653778136930050758863055745525830464409086046275379926182896181816590691090245242674367558647467680345839783072097268908113465880146143109074180274628838494719348039986859799256567494133448878389067040678270999642266081550044647538885737722651248145585116880522499963611202431990727973680296874987939426824970313104301210195908381916884102279242406338114009376668364757298511300724632930225413988726175597225409846693168282663725818534865651092806979412982436906320576670281412923723382947267885713997245819289661873914696850474242959621030494228068818855774621038506988764737457941032470582246873540200050802661094892100032337364845159161914963568200900290421200836230655793045610665861932978219417379903861441450859398983233577228720916889962085747665086930830969961746376072706267278444753136406554549762982933825126244635636468488911136333609100586400596114268048861993363019032315825309234930493562954662118314971009655601775478917196764996040753769312312392528491044627232036342969516301515196633783007849392641483928449610353839562803729420421681353860214343149503287685501283008154608926440400425668118016199568578531638221969052259577532755407113244071380413640019827735941647677538422972951239882427436379176183165057804927932780059938435622030524631434300354451206657106390539777654351306465707650716383127753817243582921753031753695311453828352206352454349702395101415448611796884801225426107050266558453325381143980421789580707689821523557693652872804564536831874852154471204121313326941391280221012917710695432432468170425430338068523828533193260138621074359310239424753945133555653259934155324273582862322415915749909960467656325761102290720186323764967897935571030150410204808266787444291100396425475945458922621434333678467026074758326088170243219804653614550344603647569218535648241973651457621871460394119455900537306860697284381589127908649295130155008800534423146770351425172208215628408314023513520434103008913618602652590742807358674785470114575387094341717187554096495082903665408100686734757354411868397762978263169173552446388235138909404865611111188459473167133192700649654933445472660999206811407351365090070254819566412750434714316990011412742247300012799275300875443980588107639174564978672827843198382483554513990835825626406779852780761921510858323236293976340097996891420057981596227148303288504175779237478026624823524614491204159258281214944995744106388371521020300152696727295288619723968414468250832799264554179331155269253884854703344580085840754172009305039925243037096455303558400988699828436613428110882438625844458431909380437317738916689067617587106377443186166048383046974353140227176192969303493942045781976570341045244498926212030523876720301044590199547945260835718219012910851919460066305701399685268170736518147327725563197782606779010592494905870564468962302762383927656134158767989960803358911083680586007243685465261700727769950121180460757507047190519034679566933287203321149041517094017066340165200132729164758251803576351620759444883776697729140105586387616749429291255195977303522635114350410001353541667745603372460507746231492210272189872674709724781879954336677624953058173870371852147403274333969710836972171227216725610085856504441555071491120424242332373066903668784811272582322825556929535560481663619345247179219484707667922081690625961693643000659565560875727086130400720236453320733772262791534166296675884172184741848227908642687460698891537123301204160388504829223001640627969967117798784369314047718312147754368014022029947880007643175930929101368549375985047914893999553781905960991705676409406736780289589083460601277267577558660803724010741575128883081277826227767808466696419177695906931549679521843558836901119389550646475679409262672484792110044198609846249168283047181329770610944364762493649601064180382588172443624906950967399677758194774916082536702721657165969454533009938753345883613172640616480372047309951952044879941857244380868934405310163335189850550707823960628089157337179706510704505860018572536229568219787182489592241878024845532477388838092072621973952404999158237957364285603777557871569997490687483351465962044906262139383755207466445924822152500921922053459740139227645475425599207434016963111464794895557604418880514046345225151530647893103366889896716408660342683351736157354234858650966076950493414844526183600592955496691157263323336910971793324178333497664032646198117976673237673550855808045737823767200962675332086349879114691486588020455925648669409665918514666445402571784428776796181021662815605557448743656960222668556045006672420863314075376785461725257741910275846762088493296736260536054919666487986676900264757930124145115467064647404278238900429892158491610660851701682275164965557793574519476151431311094346584130427406950492676976525894933064122485641301105760554066281379925067316182961639653361507763331116860679951508152204884311804731150238915207957281207875586540451415552910007133352872080033877975258338981104678696521903043430637403079062955567750799453730907765776956611423838305734548059746203536861972406864383502440283407945018407372841834848121960930643491884208972331702348955348886009664700395982769458431812143602132552238968911458024717846226896014898319942161825420703103370665895604346140849533543170209040952422208075337307194219919647608102292234877630934038793065723315834196898862677881196817321768823333472770623512642564472654188158241293711752456884455214563534003412055451764847590575037250304486877225137075649414999486724667229239157261138805966713115644252018930422793250242956973449770351872848797146659971861200902246140245542613388548095426604066710425436853733679122697047149355965189856277377747258660614647121794319769581770320262462142793391114117786213584845719253970938095259562222790982973399955173650574892859371406985824125726053193078311730356367924337547477635182033244906441045723623682175859935909389868372703526520489712483532072268181167110002356905627930187311908791275188841856764427626063365849032215975662550111589789607649177038030065103012174289321969007473539360535465738752069329762170278030241543436816529137412643137872193674257133638444267776365679964157989972514351469017039314760438665602597055080168245166233894635004786897360780882754524431462297953286783378974877342232949616746789292039517714951154185214090059664372916056397675043859077550703372197285277548588614762743946849825774613154226906517421130945461926860441743083655547624079802453765486608365647931430209065355978838412143580415177767203295035326300023860549843486472402838934593405023213148715704733487174773436876814575496554783949288585852939064685462954415803225761469651341190368328838924699854666736905352261506729769120032625710492878984299616220194567530756101095539113553939620198570041462690175369288877103599543247145769589113742829752136913369171424649843585907066140965579867628322597560775608928693705899066200272966775418434306836345930607712376889825120281187036010631940188572510959826221409077386229154668842308938504833657552048460522472827921820717210134452355950934581164015526793237536279496351281160041866376222817241052710777601411308383214370391800642083890672290219949459782739798005430549110829997597864223650894616215928665145772095248437298842913139641513451231688649080304320585408953348137689989812495131593648188037372364549227327060014527001635667739834245367165124788804461377437710929522868861646745706142574623984377452462173119503236081848501790421309465260270854185166960134751881848348966390449416120774120719767863879734161868175782741439400646938146319394681737178223665862817031318213800259093913438067726641905987388753592439193245006386849667582532252359184964787869408484263692345463879514544669763751152618624852373136444543723792898949614761733171563763717806910671390767637248342482719501558187996131148604413872663076130612210944502279683373482831412006484759501095127707541631935153131248356161454925609631397770521492065161954021510379320336250468618056619608338893938846039535674191526979181929407736880978520365967656498087070825567004001387130487304957135773696253576222111632583682323293579784770024371823360496399880067391124388160828521121117495989384628440544433119560073627969838119577051513072137254348077394507180513968067487715054166677785309601715490633611333544046298354408852013875315463413417887265485288819946482376479723922389238757766979540372976885050543111340623492142744723051511457959294589815591395787411007631175596698287647243415835885230697874535080061170600702015360371587182639741651828932336188437371707868435919934184480204523545019764893041954498918703853022157738094431146605380816772869705611437507056132387419806845639112744228883525140348788335524963028104879407061124530105246398953457306405520810761228226930474133546431185789905518069525938194268327314019799574814249917885273459757117548784425082168484886295282101387724478705045901965093272540966920054416166827587783027835159607117119992924558181967659072082578464772004713777791065846089827107718489090520454232261479128778862620453492103853970824895204607084756829574027258594587593790707494003778751618021744346762029761066357016955470683570288640904829138319541635510180156299103342445852544391260568642359228584666384168792108056062171244855169586961971788159823894622428295070855263754259250551006131016872117994112457849251427043991504880598624479324440149137871658657315312569606145038210734985987064189055340610081907272077850767207220298144614798398110395000551540049159451096693427918229060615686890111862315009795217560740302011132711793227607233048699308756968218988315124611529336015609297162101088033366883109277755169592587727867020743311222098237045887848537800524151781542199729155702564580731892237375642937469950837649140214350324482358964085510041651966635109269952346648508203019386452397584267106857993354978326296956044539908372334158555861194629870283375956439739954196362162311882294937982361349527037974341028774214444968881584369743665932309307567139752508159941970465397449663020273283175818312828135063236781375861735911998340121423546261123432643912803292919504206974035847665746569254455363690336468111239757525882348930055102387638924430049871527817023247546785005280857755945761930740153391851741139568442819655928724128942971997876657379451736580030734053245372142089177624425976195947486080435031960205359286873617280399307471724127565073870066111467411270450223691139384935082457463031692471084218212824249407616252327723674777988701929529772663392616010614083918871827453268335521033610505793483848992535216332409797147551612734357590638099828635213381803861204130256810883072095774822174672198840977946965269672009396936755977370158073813145730188032995807477606053273957039609266041273588445168141867713454966109894283970962324014493360245620870598260136032600556816431408647585209736471983897111137476305821086989078932666503966510059243823507279611276694758144675381934192392945586858373595095104151306044247313036984756692231340603962867094499349316222082090954041063346566564717361148897335219762788874854794311956479481141093251073396762012567994272207067234915601059810505340998864332415250408048372654170419557031299061531554636362944524161007447049918004977640510384863939175747919877364578019890462175961663268780092739517978797522661024583875237272109766903049716116957430236217720180534669980027598420645737853536665355500991690802455821921912929976803579929942732819411835950530042858964597012279389451839107662674899678737398530789855118213923794912137672534483221258923804123648750325970965735302839098495093524898817695802222187681245733134601668606000622424584697111676279422079890992031943397254553462130613617156125655081782411636221350896678417930543926986601372171077758990509620436598408883487706040508715196486347773171828183870289445712376543297734687174899062990680923093324441741566043668003034640042727774789879001108397350679026691911589070398236755066267055485414766522993448173728818830500066857343031015026044101071334664443086016812486161888552020419141682659127704059053776422975585380184314100137597812502406559493827849394085625011083989505670248955567017465277540493086904700560685328559836148915222115039232361560370735823812894586348669795247145084436169266586788405381879331982471821211185230027602633225557347293302540796890288553569880294826402271513131600512362362419248240695586522530394994235409626709736185513002779621608237291536868209131585159821689265119550960602727188826881893045826571945399862578156050551946491996429304727979615693949334419059242157827620692463820066726857019630149566106574591360418728548239909446607538860138108131332130321648770627435421594001552716915919709859018039100977502219332830209704395773418128812416261135405783058543656277381087612171625686596367094969262432486978270369577649699471584880821133509079039273562207328058926292456577973535786148268057588323551181533585448503553070373923734804297857433061699707899447011572961654912983721119510068270169778240329781973105734524769625338222039494704044566845702276791508910510768088944662256018655542760491595552298266273425979215231278831746863211649891341486076839562347279976440409275668363168977011184010090719334654432381518422984911011333939057214469228617436488315515744940714016790733449651378279081266949559669090662860221610643585689028012028301277095141035452055220656889683931908527020268800412363776356855737554136958521801595079140378660006294281238680568354840959533577231230058520426021376781166042916642057742929407000704672586203781666673164100224377378068130196093569232714604045863226547419848231415011201042169499428747774133719613843817679668101884994708647053336118038143762694236150868181429846095208135761013638041358170175762852876158566764549626752163084703991009327966628004497155103997311362614087624537657324898579157538979651980536892676247947980823027805462898683430051870637362639878521757038735282292658286719690147789178847104184542456096742147656969385590051269413266903305441663906039593701126243683386239502367241987756619085838040258980146826211458740563371464423718138416789717410227870548288490151309929274853155799326341629219530183674733900214809243878455133831274994125996592134675573592954476618516118499956797986976051822012230946257356115214657005485986258892456729419830619721939293604960465442502687354677439162808873879605952640673382734571297225218398311606696385301196321214378428945409068360455079461921267491459103610850351378842210927832489778916377498346470248794135566744274731567249763860536879524559376292259020356683818544645119420322884070705584551942210060701706742669061696123624538873830861466775836396101819216407070937013366793131286516581631394815343283612078643320194745936244224094247190187323877978126409978653771428650079020310403357606054804452908640936414836400578989467331733583332602408424186984222420096589128824828602274358405450476757474290971471671948607826335918014785980633268806148188661605402927390869170295823273251926738438148957633534970418720897491679022396808124424606090417277055206540163391226930974179966917824400289943351818972467707838236628446944343399205208625024233039084385453686515549456752302885310108855600691488698683854930476261248798035403018630791453024895680462596804590174870731141801115328094813650526527966066659422214257196230757279472860178681506853417926915172334898503611207648017337017857478891448834155778152143704817720923554626571493229948690066745390947972256172293202317948671270578700371289908170078417683917632062480946999360096513013986421106999144233800633097947091814982375922807242154800429167843542701046115332248375380966848045748429052287533351457580233463635214123467448888009132451001203522338505462190799197971769407691824252373560277251760891278771534162784339158579820271455775756916829212393064990516757587427122783173207764552256130809445600481471817025788207664311467226091401204169124837852681979067781592628246528075578660363872207324740305827606629126425716839042005961628129281193852742838600769464657545026418846789519197867432959705154585576684029280141948675016435154018300307311583644559735684000624616514394949363728453557454413836336950038713031465907920431547088510300407950962883739417532010871633754109484682158483249380819741683528361229551807698677091510520233396813984004957575201672026690830896381008388156212906324741895769590462029404450804698157699070631209304191232554865756626936610601135698537128810913870321569595211302952985341165197499017646151242502803503647429600080541175291079689953358638600470834287687420081629574848166997032555205986434602404053913655519247039242288939721673157100977150762396821174698132771062541360772409197096289679442142028068270724678846414417333213122321892036105760386498392540973138819538356709393952970300495816866839699462822516291397486834577901816606472906888179942847106195418572289846967044660136691182296383330006840446820959392263825491573760314019703644935733298205379357348447348331514180507779162135371862127429340346562465145711889631216610625690924892071826399196121665138872865318941119162013227928080361585962149630967659634649478289780051053250667609097140280283097351688690756840076194767283184516544514340448652631064081656349023302139262852742302389091033540440997180265780951453158020677845177014339053544018772827070155120672208245744635145626749091494913681938837890349222805350474650826397954818657644739020542258496490681138198098370210340079107814638410757407731217388273594387801459599339162921508791843939124177012469201956470377079332456270111808276351748556062081369025988587431507141237990287014826228959079798227969839158943922337696894265597664473107017101874710959224772170433183742946899786193999250898542267125336682312154114549087291029559759553423035622368816356195553135083943301180910777261988881588784345808684201015353527006669442471315021179752856516684974405887391779158548006753744929646533953849304709543198795064689236731705709420430375986629733112226335868794685025765941032003588018612124415567502206880406920974681977349020087031156110849441215009976870716867744186220236581030109262661613349336972964269694118490332572720773589440563759224416319631726183427506808162142938094336812269094181327199712728296511919282128876055485527362720047518820820941862066280662468489559160488521584022560566357738939060243147385466749071598740500632144643680405953282502554216739983379788127498260289733345599684654479651153083265346659608614078565504120137964419371451352017618787871585430891298586143041432936769160876696193697832708936898042925019599102421713040096560105263733563032121150653014975867314368396333791567154273360886824458428732854522960110168616249606031189835735279446963321911831933589005607196317810121986536894042741366342920234219661471256400376327340481965365338844568818602316206237001487202573506931512463811784568385490137694698157769035842571382653870130123331701663945214862620108804623705960400852911456520281649175879634592434963638163524259215770574376808629554288738130680285608547601439583356682591007434950655198671856412341691183177867486246267417781587905558275512760229809909104881256620519286362939213055427878690579873299785066927270318966517909696317946581249158778740455949165423757126172688682659629164324431167855891662188462781053859649140208848222374984507877156227837404740383912281260592383456750123846918146042611428972373601730901343639830120310962046428602929611008938043343086912484303867195752362927192760268418672240739870130673867386912480898688495969433641732880020568906152551220216051578767507993349868500071063970931483967838344579434000124376750075319121449073716766663871671678005223905385406676318053275500036055399698301567440228833841056233758573845799596642156850496069331757107627075084336969128685031923765707728988196283654899666209065559896120604934072424557998679010632070177483314724173469971594770685955012456748409510750203817308238828077266076283647174949484757122439193253046607648272111759751350296407599058153773658641518003122087811195570967300893337935083675517783131011721226000036553129112824827260595583887420775123989689967069392528372717322494062837156259729308045602886721118537749815865124666288488015961684417947481990327101443718047942441300917982497150065063544014085924218944552994843332132760092731492519051410766707149385578612295375102889471036068227833762305200865655824229925495609758245898700369361076255360003538497644299013640202733912278833279430374442281745621316543370004414018735797915854737522028116951762550969239942098365322720709151252108031176361608925050258058851026724252123673511700234319867685865761086437013736976266292716692017296327089067552070265731778072382745047228051968172835483118881892022929623276040071917525943768508438842754885114880742272135617116564848360076880699859280601727517302088633856461684480179684378918921743021307649800315306836557860063958222249756665512940643500425522379456547099537812621473029417463312385364115774462238936333265857294153319377556016863034182685713240628188191379957372946688418030109434866309125752689846205281979128688049290577044373774873526899316065310765452620000627161790875453337847598946575754445421492569591461624476024112181267387440525502529637349415308884300173006208874311395154326609035268436013035689060028607614897378704133112338018275379827466304689356345095317204171146480721330343824656017300405541449570189751282618629406572379466491212048786492272690304491848878314203672117296193413196434839305229941401832072218656647050601945714057224009240668885193828408608168460071328444284117930934077982908898472994649214654764032923317545060622430199685599761717851986921175400849625983828701130580723278820866212058159117610377826091757426111799754012711846607669112110395988885994253176424028148874887731790457849550169737281548400002926688290618866560513143033918951933626967922496475015721646218273602609829945069189804199009485267393683847335854489906210585705583371310536788011361291470326645815395621295135603530088095669290512071980266414357898702388782305911917937369444577702477455009372629975192887959044222407172769273396178617627791773507521162547300048806610710692046376341002066713348262904741919683097769191669197104866646911568426454924722500677990509407577121953852842800172640386288289612781547001259240795054379938130300373119314903034532170142785750207887950314624641874645187764622914697718336480287784717145093309254435149881548228657271253702052776682175929901556540163543011325174718474143235132513486742652233413690391336798888988704751346681193799952712398885645102884863311087045946183922716230745500447571483528430741228752894876009398695486604291707328439247390949206029684103983237346377560212327664438132184442369893654902662987613843788012041704892163254292297034850886702819775535571310649014976349074883552827095501608784729264286768484515934553151746163274828510243988683359056243866391655994134848197171306138768836168381841767124060335977292700997695717496801693890560367536267251171415306842055173180066549982278546240820522172770087521892712753888099323110168212230359958427384348377594828299557942525237788554645297600380759327386443191140574277934559992706142014197194600644550827912954465141499470275376661808216874862600077910982359080985812495394424297900464975635533075383971027025158386485143831861414873358296268350660635650517246075139481909454355465919132928693034785148359258343434993556813494528199517365826718440313677368251876357134721864752246311329203689808698330383178469552451192836863784340485146957171973522408146010157190253185143143156066436061296224792286518122960414137241403982185076501215817594174206467414250206706052411789843292037953305952192308770316422452663851359464184608451714970886139651380801646492565107911658217852555600118727199065441335772176202983036285174127176701537561566940504316736110754078675242677710257351873057883531041117968946457867569665290449437568752282483452081610748022565061952537222150998664484443666708125426547133237406741444329484739281452331659496263303690706550419820920052341932147929506665961984012738720312604670739499044435857962605627959355647364644600857078251832677441889569879859409115225797499230575004550991348668819646466126793243151024056074773772593294468398847019329334646473850119916688359559756158717629534197190483777614190410344964850688389852963807491406823085002192972976120960509670393816105865116480930766669008725129958517373361466322220877366928006626239434453174074896227357700961849782819992667249290373759735728134869771919391934189972403215686383604067851791817314183387764664062794102209346288045025068926052891086020133741144674489939158181383390782409955168330357904452178531657585051500439403266808302926449177794816788173381173988146847603927729349307359005824189398320932997185939997605093998919930405377766343408346836642157311110525339058002763358423838281203729538569903435100514397824210072262503351549526940304482215515774939745440975761689373887811432251761380718765269047748043370422599293204344491548175825233204620046655162438085729426972868109408741850105314564587801330507679784785466632158333928867026120784617781333590771980539066009438333962207791376726709464101935330626378617007257486193709401593458011286537866724531174931625363862128405899758149901161794931171310987158019211043690119973066963858051525420201737330074168910794817321699018118654718339810069686694374085614050936065005316901813861843801209107392846880438156392903546069832219019136641985519604051537634351859181885435254745278900338586963895422384055394590916577036081972275466196614439037346971839349376783049542059588470651050515213733541692754403324244211480279013500420285729037830634743973923725924470273732460751030169650077360550547278558185172527556017434304535658963320831055688842338508685302694608648409566936012685321161930573182546501515627021311587868075455178502533908692108420586454831081653939081086349322547051393821213817744897265751270234163577074123653588623814263698906465578382169540826561879317972152640756953200713219782809417748303858804775623188936345104571736604525065987315847743246318888612420953651284816233733616339714864258933529828472269452778633715347163624895627702344441823879206149881687121604543231275089863865699482734266179128793425804067087675577693006371042880711710439490992269955259529164836100278773241544642257177293428553865513830298469079026076937549507574628998447403541084749803684058414075231727611537772396595846967749677464527969593420588842177142095853377606711242468329276311924601408147082581686226860549347743893333349911079480951928463471304259270074808619131636970864319521825738405253267119743410227246321868778927885010578652843079178600500297177786184890924441269231408987583428977126353948397562782232031616037447200354639900508189506972857993235698904619731394912139068837808354057699396289299073353678407916317476205162118122036753075929681720906551841859425384820386588598252227739316497517494523917950298049981500108214813702286424115786641163244419086764998470840825704713005761969832122873421182913243734422880220264071694903156219981055500896520328118433733315517712839713067547616220905200352673881274101760017986998983280367028764565853743008189423471953875856086831791461766758729430183483404261449712619832140303671850412415707705136242881230214778388442061300630130057588195779693640104273290823680247831537162760043707050976346086371098574711309124632219844191357750114530145550223515967588000754659780864089466457064541361828353444707257597378925213586424890621160924684897286667672866797305852568716240216921361137993979653974833922953481895329632255944596166720782769571614073024187856500079361282921201192319869398205952989762893298164191141976588845554749053715058728411604474735918286701214019298151590552409275598442614223015286315063923382309114730992713702257615171986366001723443448542086525023453593446293875858608126852418573312690948523567396259067670285258801211725967304832771982232612569164556069479939430806094178383768179211632326105318462959525802040452476821446181208629700507131228929703031123440952402340700098403098151243773122716353363934177325521081387360230915303039174400468307241328033203218875088273346852203209870864131445400440584307028625003726258724856135804427082609344108866295251940583016606364372840692539551835985519701186605274526356833239562366279010264657044151705189649749073301801968718848341224413669169145935843147437919236993355031147221035827906862267910976307615777293360009772837478562774997764488172375735571092361380655282162013045019214754653788118418603062106063258785677768112301780787887129346560305647492239350198985866829464852202402261823598345592487125544128429748329226197269671183798429008134394004873304907347798632162124184798255000171604870419418043902989409053377539619755922551211192149293639127329412615863788710798760875493574716584429084068481845991505760016219205876522721439051174284713273748314052304378898563369597577203904568508072062867434369575140109887973184926616971357549258587499825493918245440888141875255047528431856163767225546882422523000311938552975726893830119402363957151348475317549651884822864695691793977506892226441653661121195495417900879912786173910054282946809663217471998051933767505825655435682537778502390310409651752750514438188295017464955911690438470892550166929158053024026089634886635392191078808832721921054922520368769596727985632266016150661449817751162505538022007000953167775777937856258672845359231710521241326766327232584554153568150893049661957263907729603883960755599004721061195234572544750442356849770365889568580689023639154382715262425799566890446766408732121890911583315413304247438708082064667737329581612059363628871509517159288164879628922530794610001434798757304998016058603634785665743585960565520609928690907785066279494146572909975846410897433810992222854507652891570145450953273328301222534945857080707281508019340006513685960491006979340882098058825876648956586579755193286049142100090425880332402624294273914141761978028590864900687886968531535802467813724769997144041134285406578154642765648595312862210356561658979012378948547929123054083160107623501412874555459276597611983001444834759472879524886134226484479334234118180566370925275128402964317616977080870854460546951672780879621779161857620586488607136762771309218066308841708448854802260057198232157029731989156378864796779823669640109660562912162479869254264366525647656085905921938429327477608610215098454919939702364744173587351206192615801304612789520777044309853895834485622372182139342113328980729523518834891467483455607293596375946820060269677813901313576096588181116508296065384366389620958634903727087994994860425521857595471916702747962787422735163797731654219646415639895090813715018322893787411839862143662967098558973017135894141900633398907398213552604194494750250836432830114581514282533133420149879551573002858722308090233513624361787454573333844827005307040128643438034407632587881475002614082305600913718624734343105766451779678425592303757564348684141300694290976858182421526024867698854331334550265654892393569693644221764882420905755097611693187270190109003702310935473010517771800453456719401601764610959837602299532890500548891756716630890487258396816403033906348093818453260306748000650612214526626812681376732851643209235052436040657359483087656262820829650569177004258468606553719772068382541425472453617370082729619178523794773406653042132924631294825305439761635419161125145664914156152057596105146878305371420826840743156694804008796905779850382748785743114769526001868819922901116148089037576466884427216486815752110229320135015425264127167920416376752911427390837604850236668607733797599295998524863295338392706605516624137273967789175448315967621500795842974286857187256786347370965502023764616582965993798202259566461737798592863063302509740232610511639075763725823802883378533672094635478565456310205270776034809751689189469224749635878059897866149625838533675176415303286784828213705240360433074567059066467505759644640644469152426972600518014454006697348359023976370873381570944746952764015192276893586769726791549427262521870511117494113213462585441471421469474840616044444115471994698438946066799058980243322671091289787550563642991863572674886974756030569333282601714096152167139789920691447925649345727003633628543159275690946372438736171114130074037445963512803176508725293267424079405501385842050855005072418551376462598082508505082332283875400869917380776204370331713688476299614724564470322692171702362330332563167474860909887002146636653624216283587984206484040399870133500176058559143329848598260926609237683892043792663964989903098526945525642684334113618812020912603085997548314141990817611147738817060761993667216179213888677238254362264857209822555436601506199313751837093823297286567710089934926941162601886517071353993638720165291547469765531290431865325711853445158468287768933587571353366143749032959344653891554196542350349777104141926567272525952091864723632835194461087719893382465663169686514634606453560405697573766990880659910485814693301652624147628996354731574424767231100017183730298724190513251084296443855855749727178132186663724182639688395520660538944689981518691356577933846326146833138927192906789327159326567816173139068747841240964436065011747182417586942579818369035973517591535461864224459796929127353232567510074219805169809843330314178326244991486241540024176150701587763379444917717515276815671504350864424160045857110365228569752635529771295877927804687794120333521798114319348312537289884352028691018631015389386439836131080392711546121778845687002804013446577233764194710872646256933324313222103851691148184985061991979984443692321033474981190333452194604896452880274586983499412046579380492365914351747348602223165071143780140792293707375636913620663000033875541296548879608366196038409874765426754215198049612881131948990309431507681987195481414098696151143051074871618425721900701155835338714199337909246447805429340549745447548655996036333946846977339724604384255418970380298097975627181053505397235821884653200401663586018578894200877584626760270197615714777323810825998361959060636112745882609719439259311569374244880256266970826115896896624530579970084456169199090957667561576771132720839462771507922829886576990561553891665689976220253472501052158186724892656256996029716294352384619618786482099863239601097473928225404217360671022893247397136965419388536802300711388509282944709958395679291224611483870608956108226863745588003403595496631219979242445913219975259945140495300922719072764942970008092494822947387539231174897480073286166754075439945917657623808669029347399531187532094963057975088244996245242266975786018770675293831709580514741153348831705328681674620209727928170761572850141021749454502296417972485427348846381059479218083443003572883840889756555972450844631663178784147067716897483288299694778134924518812004271928285498836228505155680838049126161002306138254410976282451613658378563623674859241691094702282456925931462242872005988214446347656047519685562564973816638796734915713897135294350721059763414631865469499914671689773487670536805606263922438523372943691355451309232895469335698393627197005316601515783402984942787142260946387323300373134567423524645896386577578324480741408293552675200209257972291365922566787442941128875040969253365172662138248913968040721086788356752899000177932569050021703207424503890721430820000621095631300915222958435348726513101317370330216812871415134597042353181592862525630843505957679687664394054019092548322078630476260490156592120443454664936977093492024687868307488053406352613024500065553915982572538998953523603613399306333042560851882272455937490982821937342667262775123188095382997843806907909819329328621906999686447467880786959383096931565412926806576872445446966513034758800371206199525611404911727733464173902512742652068714666313422252629849467389597511698680902112589936954936852983894728640490615153073690519834792083764334246861756060602898933189769062684516152572055183446407055955426594029394009628819079074781074446252397799906923167229759838135654864890726901771719258482127428568391415864219224915045172263650473600714546741096174944413619623603898887086308066419785981379863370924515666769540091591856306187919637146101510209702192109104391103414734295372682298978097951243667321608851124917048110250369284624599475756574062193194577161715743470091178662374408937533874562324017969578529995317707073093793873512099396401680061628013801453023629679066106320636651708554326157514311789320134643577105149191049499563481459630105960543599087420643735933204429951402877775577077396274571615782257456989050679856407782489586734270371083830532839108058729382494319934723859330832734514332135904334549599616182586532960035873489371977917896618276837971190776781895347772929542313919177242763731864367596380609896278094045634705419861305283217932714647896736775608198092158958439676563511900011769122876339342804647604791889896173547795871051218990957946687576287371491807507523144817743917167302685724388375546448967400955344673716205397646609528911778550440405483691493895988883251105126657619888878156482834226541330193474336324242566472778492478189554034329658000501770931168905495647057434887641491979213704434369911149994128807370143206059070017922414414874071854650371522455898983346775499052097027040351617988462934868800710881727643511954716991091554124165758307532913783502372186026878586326559939575558044372267473486134009142730596663032081815298122398841457303135867341285424590036342194549419876389322622337536518726435701002701220059288232743729175480769946174175837668366919259512467701460952749782884911070098382704444241922613540299293957252622242984306115070484204380954403068297579196255014640779286741208207272895451619784095066075967074013210545073284859490288114430437790414527240661597554807042696118694490354259141907288727807128465032282061353814755118468771612851213857030574013125563873115008694212865087234993409880988782352922140686662051922927024192154546751139405147529869975398974517748479817347600047944348341089236750294638929560254199593796955458565941693809190315186786361809016798168628384758113917964533111301105335321381466269528818073076287310563767719017135719555666329191932880699918383135976371815096353876409474251012299395360780388710817384024765775334900653672013261049908518804063322533026417092906196009214409937934630824872500472701971164304473270355681439592093960577839450205810133740773027328458936427204456768042156618352270739378151078029736457787785014229039300945852949795645003081703776391711431823933725499257552054033889329039773015810586960134122312108442051875842117951240600909693041183741717482467353281232989031217954319801014129461938034436651176370033442122789805689820817023531353982863921163018562172802299017758668530867951238300415273162546460719022504644053442833524644214707294422536182552185358035739982470553152554408411978640419423761166620691538688460819066879325348881587087649050672578096259276631506519101729219617278115830544092082305417620964392847388347026620391450655330273118642963871816697649238648538600770898593652321576393170467378347976260704391550239447340501937869965432876975531153762574736651318643595235761703368778198383806172603086404529264141018167752418847831769956319625456444124550989281560867220104639180505808826804766629544993608637741599467117558279940688285175123796260429980439443167304667729508635986703777969372528035150518233385473667836060530310961350546848245354026605729719311049495249276068608787856251498993654040726104755892105668918134998453675612723730308383899963126367128630317041541051584560921599465704724889360621771842106388767238315621497307250970742446743272014046237895261008931423994152014531223500077470339779283387384507680099938631324498570070872998025857323449875882056045597775653767951602933471633567309429412076222236228056863470223218882659051655411224381036487752569742810595876784076296054347423997164389118311932733456696372517508675387177531867629889491685965581521822968542435377690392905164106095939644031490351778786409629123355812352933700996132740541615155075864021111391794333630276597035371472258289399731222287333738009795615087727499947967351674488300433666793869347922012599081131249348374496849410606783728112531884921723310472497172861967654064819946864554539680646553078000743466365168183400754391014809326960326067839984462199463032838534638126741498526815186395287408237159211703058569397410910888507439058980913399913545052958791557506829785100467517706010433388767571111090868731659755429816635321791897040005578523301646221621920891111533745387828565597370057003572347890454890859226959588411434869809898783273932646226037182484144858382814232603803462401833509937641622763179221237904931385707279098378856954174652989380345835837486268791114897282181726762358171921049923109549185681041762631994844082283402335987892658709750227699063053186403303188163896019978084039635203413453615252197562286022355743276993236923599834272491088793960535285975569363073919231824242562141869151061233016594824898547218117861715201850836721841860861638558276572752997193393667520533390225213164098246666016476695428634160373937195504753435029102153509791286163589630826581669301446482232323648232003609486787817204499267156727547002302510195602550754577469846050026115735715749286388934157063638680892222888704826439046607343460689978498136006434600218978357447808125585949025261717337325419027483481863647597483783884976837338675882019448654332592388325721960006947533177028678078983912951135179299926234319324407340774238671327288686758990037819991923556118098874901322894994054654744949341799291477063014031599628237907533379393054075126131220979804912153296265724158403392796189504095537927968061997078192466488962590331738964782843896575345162535044153342825309216599054866362286204548565888871201569778412868492141967580508438743804509642555798929770236935936568918391561639366396944279185770795012948957620119077731519848515750824665895681942158876898820288240605456132259858651459741160821060244144422935996331336728233356350717222494611680081371029717015652374549832907254483786706124410210851890165617878571219461335798083655582000194835010070845353742973490739472521716668581715454644811664401453087150675961338013825162083968807391719903083657822893702264768851985305206652116930294344527286717512708219071877793496403938105865208661903173419493544683822648088758540410865104171661125643955475180797419930726349449633296049926456556052636192621979111773323683046568493510358955380729011015003158682121637766019280632629890853447639171349024049749330362348407208529334877447795630331002383917608642956707685857245672076002299380943737535339300286479659621013765868562010234419443421902874884413615799194004480098247443340348686510373614769119081968652100101050311199222255246997184403695956007993281238385987226436054603948369040300405259721026024349007115806223344781486346487941844999123696037097464862597803484415545079678455484750027751681360144939276331360651794220156446780915964031740102669931592864703594695106894420242477591345051005046586461579936429051175524187591612398240431278147827351763091331867194674336265094164396493177934510709478117644753048137287234511213052742349732788056395219047805829118325572956715800831736776380014567772641478764471041581870522660405716033010515246284877909121342487174763747265949480912105256202031787176183886592962745424008776124904032406131691544384820537631308864875839617501550118719037419016036834287573511588926866438197337479428695100382057832967901448892778696667884308536757407413944668353812092524594466968143530504831187992974030243079944333335739811015496114242101559310637535040593231195798049410347273326144100524365722255288219178523169171051651355528437034254956767739264569627612755118804591619946223929029674774411972771905934295425051077981739051015196491019510897306470074264605839962644243114731230099927830208621680793668945324793474647271198682557880741673113579954758094203115570535317439388610288814312204408227728892007072813112395857244661411607547198339922340477776605029399747251470334115311677209439434425145151483959024439661487829243058865101468068439463866376455102852705396051559741126440975890536462691223256285198042412771829355221414728117809521164346005243364495341521903932926294414839776497412029486668368158476951607567174405828880479242549246321705501755811818112759396919384466323305320327320774971431580325972408097736200466539777835443247797336865203894082397073563454944393284248350278523212962994750882861410973520907822036998102804137453966578740621102124080739654351602154776676308382627104402375946550595616140714576086673679619747888786911651142019428262085139534852282399681907908773831044428267787764713350621658538511579324345852525500712012052575295764395117026843208145251303035456302069805226274445940092524097222402815059743746575798888504288698801442046863137715076711106691983575439496354189582982003579580115148675216051960427470700441989395520939574829717339559052744454838065286643734805591645163286094596638136350276085359872964806116623402898421773854074441752724624827447102585377409442648901736502567043773350727796007608299164471211738979688325907480648068253782530545751256838431803300584632960873377740564591631214275239366196928224944401930057620024100629726220464877554542900292554128102569017175099465301519146721182908550551207432499133726007530452728013717311099493261386032037689802356239632550242370388230238911695831493849937456574113034162871233770349479364903898349792443174098392719938799093856286866074718026481381485482507691590146986549043558800685237984001812945153623044620900414805355702789967274853231539579302295793281092071189751779563798585088218554567776703996731856955517323315240120390351783691567793375936011040144748461344641505233560953338758704109763358374476718101519547999764675545017217923463755921150009985745657821099439716443686153249377009875598635769105693566647791613452900362147042602449200985279108414986266425212827948178738548470807533424227435540175677376795934092600092055956085556599304800716454123751727912113388047180137320924671190578413117512566005605714485074267204085515331928199180267228240967965766942756639715300737293929349581333110859626612366549780939212007815035818697671444085857978007509292010329811060686797033714079750866917661641381305043340234639308846912943550031941640966747485563489319752746162797422822555830370286580435809033905498069861177646106491671886361590914945868305917526622887045130546102648218419900883905302344890098048645103632530710861647471543611957863888749651345226942363196378186429324658393608574481711466209145047024656107215396273507965312755061014691572948390997618532243364366665632384519525621074997681539834745741745418238595510336225515179807589997733981403218865224339403880619492940635727226692495631370877970799748355817947395716571669793152703941931310966665194557257459861012934733217599039368554557216092709804371682792245989341240376415767038959735870408518682297280400961947383341674052709688016701284343665998737532267692980643056791309153890870661538833092567029358733165266709263671794202370757770620768354091921420510151388951903960884373998342577981799905640717928520901086568377707622966028498259853167793895195188194513245845859774064476089185208736596587205151191112003841710278974823224834887347162064990432185945217104612290200244756456319254450047531154500610149146430006012010334561266540467728398942216974939009620536192463218165235772591233512254817629286505191078099153956346692447801937309430455546328756290946198786939868483743525430843781094639650975127843861691159371066282602425223898613482731771052203156992751865302598204077850037939158133387276815280361209430027496712286848495433865098037410149780999843305190924484184702422196090246178085835588444004215980388639464425037106128538543688982630389875438554711324938213154350804034011094336610722088245677429212169284500080566452605537716644784695612893702921556350760205027952900999467249225670440672965024142051870833823945235995406403411377728673712876721404508115729189834834000164610907911174482080751581875584303725717762207598904335138996459560847460643131492214832968061226776672516271858590650935454448295367089821459594439494671951523852131265705656491979713626007340295976627412281158411078660178216413928161290603721789941236811756226899757199104508704541875491636019560063767637439003584875786550839069166220214896918453648012266289121489547863357662761471316113269399559185980834900445248654795705532571423453649459866592448537228769160914622048992667218482458454940976195359586442967074333340172551688509987141084790575394814653082033400239360565602843342679647909749757247542898508943272151842785075101337568516564744185525118083702568144916248536586051964049012380763628114913659089259255521736874498673262102842207383061954297299645898109338928692154346489471630661670134719172409826523471010452640821415151856741597088303592317304239868670392737298244482851263187168488323540457437549520071563293779276639596298921933197697418631079367339814413499156146921065538088765948406539930834054911764178861650946146184200037446018512023994717874918407468390571897249928907616357197199690704046302209305999447625236100539651645103022510135861281432435534962435617128503043501851598609363161197076880255870141978447412471592232454156994083734806922273996880088864196096291131989056296443675146982008846426256704555695899431462739752345877388338107402282231934027695973505835235776394811324914710419026509730848208156740154638012423012161811595547714103141410989033784321140442756935114571276414501368930334356051294310012368531233327184848855315279660020293917613448684560437730412498238201128431832430652950914749111849462584253330346919789020737440683587502011187467433821538432122770614916307355692122522949408429998672434015177919776412032211115257559621371965805543027648393664205379113329756890053883006159806282465134234560854715481191105621102887450407743401680109562254574252250600182176851695947466922586100540724057085412745119177160291022132209358235937121781260869512931412628336693883152309510556646167316476952390202118863011567036237259037039048771280568261075715707717412562435080884567766847090817607974947615426152554829261009489504118418551356290896977535502761388451681339678602690701093715685057368577527125894099272988568813650154192776436947631676152198673084990000713267923097159589836425519745731605206911671273978084748179348335489605019998168509104297345451630026749704688801702199667313263204636701344361396500860610609035648814427447975329389751230811757778704689075041508740006305198366012873937229755650593829859157821534469554789535025458388362449941824701169942775147944012232268095043840291427082388905152580135838297499086329959735505457893092764335395813265275496203852547534200281005175878727264413778958421195605044610181207835651835443938155414108223020633983521013855161147535789897795723225128316271152025532085083560234673268315197576948898315614489020179184148849430359860689173356276800278405915326535952301349862718903784988810380105259477687479122887945312618931841794410508397042682901614086033709680278156712861728409137030228843246013867521091404568671795783029231580976440020456284156608722818147480575373418601220366540508534803149634111815980305785631820085486141813542009824705646287234387600842284212661540861834009677601073367155761930972918952932873717872022787160921463627757866357864329730943815566932527257191225584201947337641239822450944315375708206122138998929982747856697303621850161988780827177765331298643146782414817457644449216987053594028679536493551409871346080153694453888236915327692283006757797448595727584588836386269498173366034928684678758353053669211153005687236197478312257602572296798308669119214698980855969085247021032693366276472975419166547827254927861245378391144651920969916637869418284238683155290819373364208989429436295999063486893431474270254689328785411496634672919831160094897297970229485123613293193793140917350803378596928179337111834305726845045334633865862302387144944859599857450233388196296430919129121984996572082948091673351740887743026680155434171531600440294510056572335220377945974422827670229802564366790338310387086732084575486812576256074094241656518689750649656466929416157521312308813119548568440877101841282707150291468895768000861866719838490100602559710967590304694780432033306176167425290613220883881810586433625239315727663916773016802617865728616081835559068370769000231706356243505968150831388552731697004049434083182619610060715971060507055475600690295710543250801343200495950192007559419905880139296325069730718645580750940110246780044172820660365208981658037910900178387239529711791726741769086953675213922134852879607552827340259231029361209438042436077609471876099748248009968090001100988156648222002470504990737507166107458582956637354625271971972263475400495439439195273494615509374542552710855865734435994648377438884806978581961547955710716654989599110819976567563996331471170846649076381411896173185955992226250529573386561080654817853528363482053807182341837223134552161215878602461978439579462014080366590216984634641666037215445930514268426277356829706061317220001877113255467463613592948428202610844536370992560651746627578980456609700830199235515682709894718221014975023233606375459833632035413395843995317200200051489083935365781886806715347125057775367384128752522748301940436727531060007887146974890529477060538745395502777824552910139185122350605776275657869038646398677656933475959346092536851292948884149143823783461704813224837598570462814336267270747227325955415045566012230207402768224745506825685534071082890253295721146105337763895455688430035292274936624035953043322068320070686123903536779385785910489556511482744024584992531329346005346230798059797895529061650432842780125702295549050453832256049140336487168498874381740470356035694315660721727931041133530499417452019280076344831838374127343962163708447249061193531938619489267342631476491389028463818924495479044939145222207939951482179918558500223752692646695776908257694411599790941966303982512717362091594001607206711789559492955343948951908184753268150529542619601091354387336945530448775071992403868192051785165799659724596568676692693186996360229971656217381797983217881106158424710962177185868794213354241361067000682566203535232385019213532777303316962692645096951295508045372620875272969763867231302675373205058516499844810701092887779275061187975474664021183565639565810179185171772763852721332536753769757738678878155042961167059920413426484905560954699000107762654014362391785146048774772451987539915837211287672095865025326668531369963162123193234678096811339856014490739205802761389005629685479616978059302141893114694921645625601466040237084075525465267595231599261467178942419391159348408395820738466893013440732804490940182037575592739566184968080122126287397268368731703035859866344890942674401427555978336375436334843303547080507059119805934813490366351158091517331337647062882330629409873123371400192594853820906982270101308764654722421757922230068560669506017868670931923922617150375601759638720665765497299773819215952482535460891722549498764150272217184579473765804721892073972828688831721014630253146668793729246955481931000372759014837900548878883616962415786874037674727109740264809147646790875091838494735280091099214486527535533458370665382269914105131349778280745509072765173713422803739134817038633802621204041859387668554139792407155167058747383970918896733430860165378363183650898507262636912905663109530339265469270867916033782358423349637270879539599670484403114495218706737389341808053456220634108974762857965405269418049904717263695488191085149973803543017521455515130585329408642726233796269923551459877789444070272332244732890775430836093890718858981687790743719967259596197096747008999184859688451847952587580864398540485201045818685450505193436714050665858176559120120569324448284119832168855796691153439846288814641168103871627879543674865007190521532394881949710030725235113856672320313465988974999452475769370382548585503801274536148964695308461660824766193638205192864660864948554600120693587748542820005297548377164878245725277225619471027991062960868336096000246384503897147699018180345157260157613482404629093403618065459205012611137979990130460103769732605634010127773382797462239385992618346904369441086783031104503998809390871435124844960721466719918245046432899191566098699733260130809790107964350979639509735305116007856054645634153621823166891328806835923504834496876509128898839249645446229953573496335109713938865178444668342793925263628503763823738142086768703335104519586319015206301424415797834191150291289840433298414823592424841712596884610588849768520768530116200537977049122044701250801914582228440017254438809541914363071937012937462844390470148149585143984770505127677328119653452429603684801771692037090063956425067154420634420413510390456325206647071535230320821893954588069529996580609278865819810119204671325297185906904666229675953877967556141891774128985434424097539841382104082304858262325728263106121830614996320959449036761917947424763339746644111150891677348931212737559500930527452553605462980382536494035024909208558285794907936876227655784755349888112081126713500494681421131623031509301779080123088043242035233269195164086782983111205980454899835201911881569949444032942813061949499263879601936007962996553048686071644376922306693449701285659934852436824756836500713787607394886976689854616441635954395522636231279814305222772837766782898909613844676381009345676556474100208892757858226184516576450018999597698441568849681666946359047292842537883395458245620551159378411481038280852265849341420063885339644198566668769578791716238669083773898941916323268710157181385429958699587022703366112602574346965794753916733481859194972881602924631500016914692286917907057496977460341615067037537576279746685800378435517299143476020258901436070375193711166079079378650334882896756225455337173045934525720458819209040089156038963672777829401818772991313366022497485028347030871751802485357737033014431405009939123940126943262893256017310511926710910310521643946942095973184203012013235957050102979633434228178704451578955811468616672242174982569361432535482361970772686664476069448731285605804615204571239954755410117059683340438963717644687932261062092649756012126319014917359898902468515786870629988897171125083056653221815583050367200770143356803968463319421433712901826791902227089064835677211188775376888126162057014888608503876106558876980000126515431353910126152496714645073360937650936890577032497432434668172284411369198936843873022099745901067565383916824946550653599938299893621776046215253171033401315218057145393565748901898294230577531352519525453379851327004814880509551519996403588582512774282726448684574119785263880057565496795474193159456771174054955053158484178578532259800328577292626965736981319386332875222377279919516957869896446499599348484995387581950128175894862034198608397768091665161309741001905750996656775870187880546687735468186353079630101540182005910605260377851975456968771652112875875148825411722434688225154395424189124975132604244306868116912875277559582935402386346111829442148248572025731772633973718998356485997144805649181456946938334298366950684791235051438687464096932148817820692578956827624414332076222043616646066535144640987072023478197304694115241756822559529155745697876767599916613767496065926465237461335420788186719913383933221930935859138728229396829591655053242807126240160652871729049626260037548154681005727826119186728727323486072543123923444293165102303926404713501896046642197468834569155726341856906528789428650292028911940117124781059350850223670196883045193732245118936218563816111308208162808437403765669356646532119991048141033887067853619795684667053511887615873932150351316542987747708457230540046040345625081555836684320975993478065768648788730247528590653360358936090508555973951908594230692487367060737783886054211940224111108168032371887317816386492904041541118470368928933024719011772147429912952964177619049252773587468192099279621644300148315177315006116632631011238189255895346735430471263047921171523191147909638193726174268349813619778159088917030102130634150834521631094412387998449544324141842606177653797130302982611079875775033794952835042300132162428654511624671948497556058026537248772251804654106458536123416592068504527915061869690749744524442974278230729314277244169788442160631789011121090020850338078658803039765496571692722887351913039513583533066184604191382274273500850983594197113053813394047072600352915808341008523086450425317292471187874721377064226163859763648712469483935338150209262105458825743232350248633350195995515270304040228216751467433495942018505866994359005133925159172408452771286591008079713772368911252321977583582923887218963857502577236728806959399965773707677413777269467481133765207816201606655625745232312337784252479213885079911100124371118590095629254446137940812079635015731243087382164766587296890656376049664160055110481764685344497970944516243056309983218926110951553507702653660200873968475850692705422152348354155012783081659170903121142183037184535397129064923982590279303786803063007629956169390500334401723285110677183698156702686884240362179920105900061993041006849827629559981793530289269655971008665324989028622227885971004616539771600513687926300704549497274263235971314346643072597474875658835583925674589632084007484100870536855741075871805834874097314943420230441772917450163321063120994242813791488067007257094511207756030754411017581593418833826423769919029187198137133513831266650414699641839663326285288733066091512352202015239949326740487066410553106947445137005542384200607369071521381079645883635341537989435821967798726918493372991521807093944430179701239599375853178452439146217454446890533724656139888934435897264183237621177566136533289595844926850409250757646264175297850093013549308343620153771518626543317608918847989932901530649125774020863766487087832844997841471135029484293574880273020786195010746284772275332609243331582434373075458700146666042086301249981482933540678683652191694676652451618399586887726866477990724438076367265825821779599822705381732200112775501443128773654848259346170167652111099537673863427637411795199899353613978055341289202308496234531288463687946295544803340743350760646679742028406911708436929838348612301400092983855976640396123958708726524051217707604665263099648585267890273595933971524800725400431292830206137219096214937918633351238769345392888034760881103924640587243912820384831699797689308317613707183906771719577666005873616141757687325547577262384032331094282440753260910166644017919701875446572520324891623150206153313582830800681084475451302989419435852338928503284715406233337694111044603163338881360125809373463554111550109888838938180060722661346801708803761635034604665207115704581916379185030231641578234258918208819140290591857123538135517730061495269567898800953901377247345364610914472610384760746231317386388596355719212824015036620435757389679335893657082358825976660520590015851853978432539346354679715175185975474783353753211477875778560440889959408345894259630957963590182291906862706373382243371230751381061418805937218747650425872468445296222407269170890694389409017836831842626028207736276732677985434976599775732806725464585395973008701829702653618450260356527117536014347385553301311306226903549315379700782366694657938307366877634380652055220494355624530765055452721222468423887321094792666773696209761732277438112213138653578944038715045551362656228919518551838814451936084539354833803814502422708705185702784619140923800755106825322431150859698751933217980466368184516262681830839726170651193086704461334451396115032889929014312368560429297117159833819654861565815003000386523621597463569757360835055745739694745406292470140486694098888992379824507045297542177391332735698705732581587709373298203033708708809937296755108106714980519963090101534620641640914243004310394474533838211186564843414855896243524065715508214621032788038268379133379629215842223426861714408404496021211681794790179184034656150920168328280325432639959517150077785146102824047617311328551660649404035752915511964348641762577738369188095297907558040758247181994659674152698166840835181633928047191806598278832467677141208664403996039376198550839071671502075579306642232980598631252629324952778236774949694147884429320972100483666553924202194577109958481808336458659977228184433841170126486450584396576207735299454018670823408433957700204218786974070965206095048289455549229536039579079954783629782023759659087701048216118200664581324921865262536425559761418664586742761170349282275299328340715945592118232085382971743271479425323985070358924511392674113672420136225883548108232331118281605299483326362289923684483887695924613653014764988833726182466861398876795050726585747051288116745663916271154513069145186288380237403340297289452175612048604415906938185073223779867747382843651975476119003371844590173596178717322789130318273733990719848631549914783921313108592851686577786724732490771405291697771048773286023333445746114792653351061012575671245562559775135337679985994421698530278535826161075899848470574843734070542639249306202514258256886423033652268784404172064009354937852117868122763253556895382467032204053390486726245582302720553806866522256627316169233806429039841827647824010926137293641594638018599784367171925160819212144529433327845309891371485710414970025445696132750616409593132143517850561079170474875641734013600234513297918364432050764247380128068099794322924550511778848729385698600292685930705790170808142266296154250614118145393601128365322759801244874272756532209635770935812610576038233041777752809265080045206470283746165030810237153544881323797953006656896128945339411788709802886556261201396840359985747914011496722318511787673055482217528225287127788669107548494641662199896551015001478814424462533207870594789741840834813679917295760259957040508358110165574766863769227358840860770363033243311033869798366212820684224178859645104247617385767853919032296640910331040243553079718259478521395698288836664523094144956930990229117605382130776554556874288706206604078690330128845948560608449600906828638284546604347235092477702456903920029865033043291233839221988986653732745789448158698035245117717060367816828179353304352634280331911153896000583266420919876062697605006586769316449217971682479026143287054441513252117896085018301683743317537398105148225908425397925925854115959144742141298486188693759971960794500175937596729601787438346848742119142992864389222025756856753429536766115316970981950091557724501253428146216742020652420326398702089604950354411695047010391810045202085970778040089711820321688772626115710914276860893128810607025908636194596716441829737062388472115538530326996024715618935476713552141866019227727559982032766627487871416447099753992468796136693446896087176413136833665821837976839773453027063129624445620781128971297099839881020221678838031454540563423536443140866529472507038988626111334897716901946028944631367859189302043192744191558359319061655309047236296043575040752938624646043448506692725161073076644510058558082752432357044427310784359181473727279617508159034721734504586632152517477887555542580944025412385883460928866009948558760930311021423701005295725039539422114135104312893680464757388801092710922019157609888978884341743885773555240590780620754742592646751521606891824982058221227120577460680788332227446093045828261099241770598872116403276668131182415310361251795940489368760603320825871038074848478925235072397731509819367024891256111972419437078556132837340498351563427766147976967997094758519721732019027266056493644839107396182579428147156569173607420014326659900876140313519611504341718833593207210421356624441533874683009575284412802851964412051776046709399377491026928682238380260676178431551886493606353045765074155505982528462854129890768549066381849317751268848271427384916446198848716613761758262318711007370747522555734090159007658059755940986226851119343531857220199803947764519236299422074003486142760766350845033423974012019586309231942652593643224476248670184668197549980466321046479181856285262746535677727837824488245627457739095964029603832465811534761671283330717191662735473696880755121716605808461545924148777488864993767291353920270940637563798235180851487017191909409914529487555378006970343185872024037968499493740778244175834826998144424495438944763778248722383440181215944244006505330296804685530904080744433434527066990013523088861350318298055165296288287675886469416701490714374204550916848370070975424084836326624037928570790867351497732332870513885563728550396204256634038338091585783389173394360993437852823413928633000257764149940985761923780394649182825265814162125327280257529784646576074171804421060180943687336333867441517375042644314767677564025024580953607349194936423203501364038292164378523576914589176039666838577086887777456518735032291957252736036006400616914514589139203058754736489867594518514201600232524554758418133910806711466690040038528561598290220850032714403155229345205885105276095232531366691685155690677565355952053583493950000029169032378687950741177335825056596712173285835604376913771418706720436582220778862710556113720765971635509015617634961526257531721004686514893960266100124790623390215239539424574980542152465484017332073486788731154899037703893797364763198847085685210698531747950697807976102254348447231519399795001421383370885576158238334241669737111085983164865779015103503187907986088564965995559985381051546009693380910053950916786580466697937462815893401617219405119762909147580410722281772858970918730142864646591246723848087953888614446142442544451053379409996169651836446185035230473378436427298062621793106301226891475068494655225065181083636844661018315422062032506374315402147035269927393336343353136856430073280996729171563736968138018175551829779708415060978091237630655977153689243504916543886634823388956857305255760844078974724659666940777303035512208216038652316703241023947445431834674463705344841565268893621607056905705041268896363577191709644083158073231504278251598628863202515111504830548230067340087044512220518838619010109206203502876678423502685455064691413188396423567228916005047345861272484412633645295858043380138349184954732520500046811519199170647547455722247450680470364583250679171351639987800696637973828137472895864230366497051803400527830690374921466670210718786674179986590053401123681087584138854865750389372100145030306949178710530469447134529723322156767578856775894746814684809054713478184160268691133277337514147666342364232512032568806404598409632712371509605350209655113657888053284188314644150134668017800981953014836428842099821265538376241516069050072303898412124828860412502403398205533143816584592475655854105971405208962568656820231145615213376256656648516096910676008865570634878962277852651787233145978617679081249667525301462268320934946769286819417214096772660626072096234215154691377781864272525418627033191092560443186398992054907609461931741931194806935177845019889844248087250638701595719897245425125134112869245497679918765538805280120419418665530939180525615081430659488988255726358169743607536254054442003464607437073272713237256776967651272408980394441163765123124763090447264726739034858467614562476516421985903730964585177524153227790291521702981660506836260082009146557313974744822556029357290959204380812360808423237477086388838725538690209551590897307947141456164291668937748116860831232923519625899555083926282739643098201080542969107556338406403520805994348605436753893157105402905865820401079461559919809917684126001920702118838906286797826180768165881756645479801405719447963602351252508988874020022120951021461699103652416647774148213288756736181749988485011142755077470460819377033507764006288761430464001655937779902090359393498815708599274485124578964627525397975873135778521582086811601903564945593088203252333350139313802534496582855925587643709873710033288286962409683105276190573582263260885459408592048281217549138666905013058785799162883026892386033545629822853233088936156081938723082773856455969768816613172239122187603830149225420909372101410925737955615624378186285676080436698824873810506764958329671447584376220536337520803030640533353888484585667702731182826940744835248337508867246831819557409705169663706105561464451087276367469140316507631222606763511143833351999221515699283899457720416092325964870134027161286729150179667684998836491003149004718664671126100725349970667731876900276988995687468597705754775010166840045487800545677047922743564932477551936251653797865015297855431116715846827232651324072787076829443755433535672620808519770487672754196330547289092246520560577990379477548053726984293788781670115059465676771059418216409449736836817976626313889523826478268422577655528901226623556412837674094073065370521904414916086734088189660392338354162867966768491380329943053113573513582887955399572111106739941029495725943642304970015358441014976698307890424909814535669857484056970935330518836412605875833287530410386230556668069320689809912242803254089421806535749737774118309335550823220735877976884138227878939116454256971309784786954720986812516971656637884137557755615878832196541837920812945816130700308460549379600895628960136645765842635949424559977292624864711201648565878572600669792923429648080162593982883390672318691866522699505074747252990532756474414962920508044259559796634728966339625576560531535912743100936304898882811770946714691003248220112509570670447521548395438909076673198809781909807171265949875353937623040091166781598573035705887138082125431583648248221132841846862802795733203053955883884102324382645966292761161937401413522210909079069961492165904123888266069306870046465264057538437461898580329626355183825798831280076704323994088357329339304324607567900350300223234507994025385291636816023996229681586166509853099621951787434753220795676314267536431717603817270760446655314736163355182822804949615169400109890028651097187537121104257072688469724514203463419823519692965904449210772916972242388275347100401296435327937208467825546627807244786017160472849755914067753482245205016247994256190771985079922900272915344624896304666278335470631525358757362588388647693218938438700523258145535070135565985279933800299137320900647034175116350873791903147500152946804799108346470140992982061227223606092957697539761269715159515226329094533520550812550350304714024007375505715462354127586536780268956254426886893573202806425281444624919161352069546022563076075133582977282689362415497004514130850383998719415589382359950748902284294089498703447794056730037284469350651847104821595923123240938533923940601805448027049214270513216464791371202776629628798983393158804961551653372058191373285965135447339104535701730491495679663482442001031609362623110846706048777712265063233794937246778981718942754333955909286758411134115471483053380030866637827310257490593723537538273725049391283987013618253693495967628470807124640306218607612595853767640936239632426189307244490204925788871392255752192223488185687207049225450726685235262749539156295667788799912554721121273710660480260241107919722500778824267899543022623941947958455390373756792307298230076620408036366648533142794513281844771987238601423698144821344862279883268008812274290581030625576142650839903945507899130872318656364774840076737917270915198071710674161774275195580742644878257467631052794218631686885925384904097307372705700761138671505425980204324286402839699810238838669394466253712684366251417244677506044045583226325948489754030987695990922569864331421895916615241317907605244593379831929166559112837772236724721544632391918167419822767500176533892949429729580475155110036987009344552309746499454789807623549683015859716539607162163960614545678656585929403881808632776804377092406969447116157217660607539581771205438861941434369368226679581800851750803213628376134125639441081691609326805060958946334828269756013360937026663308203097573147578810241671581057012559816513023980195892066008442680693156604379013469748834032620626756164091236060892771145504265967345736168576091061420517476037767856736816345374715128362960325296797041316106457929630413066833291524824845424943195387782693315832027485451285369860277531190860009352739494361462524481977682287569286615678663746052997101661781845606670870347509032682925164280969426617836854144116062680398247526096885072066889080035270572489336802417301979994708063132062910097885352579371134307448900122281100432688473263017965394530557353439350959560235247722737977035638600599226439519922789677590942767337896799308517367063478857906710655449184583998886552702278915613363120747438702803971118853454307275395438753791864265307308206875211920338629586765310341272090657156591235510953149582069848341612743522467215288022980232811306025199983383241389559061792529213439182853369008485374151264147613369433516986530280336033387013976799005731116529813829107491835388002931552923202893003879212752048841928422372077087345826645738823641679802362936910881415665186459683836237351178296747996717343773237592819747883792169957513488007975179042012294386972230907448277310712327350195949771980644166289677467218011388765573476258469944213163081368029393904891172548637915096383022854055059322790889798958443534590047489223382010354601191778222649479637487356158693608040251816872042853357934962446278351611564898723921294715830119416496085884624063692287721384598218179931967058764144730910465025072932780671170191695074971801402874547992696656412975310747171761987511778098135861306839761293650633785872267890628322260300289688153041584464213859661908134907081977089678618481093636365274880132739809468512458233110823492576273183078808764601740970925639794387807380873580652912550277413456196240121221165278629171660178673103000374818724874864825524837669960581376623588249522252000988128846212908437047326516226210895854681104543332263929098383352534237952374857151077820557159550709243403733934413854238255457677943591411978769108690215609091932175952487259775917725971469461985093586318167976569780002476928442134957252248503171838226009803346304200359543834079596170382956811592627325803562050158872394139263781043657153557973629013336656447804823100226145669429655702991384096906552688261461645111376875595448919373928149486158608435932706373918191834488985148539158029074969363650560755939758323774549921349005788901457282109936197526862841104253697909655888497156110390451437711099940543750834479747703707219967554842378337670658988861652435204827566365855014943740410123928210984317608504714875519366478402399972129053454636715156806494208313827890268297212261691356508653588758231584612591671489939273083062343996952480490417563871893017732916796819841866986236539996328788353892343156976797927595725065394658214040362302478229819847102376242901667311451910748044229484638777818735800158558801426707307650079703017052069474737256414832422824427870356321220516180724881659556018243147034276562443372071831554772296974749956169517573917563909004545830815964697965111777708804871557861527121075064384527899444644250647610554961534317167004919809313415644375236444477717038758574708754188694456972363917988603245780198308753926551589994694407368670813298073902696552542681270073946547074134372342416087456602044307920747610591705300852979596040216835004090912397563109695579324210856993399415664507194641987528333310052964474784115577036821222582267180904259460151300456338301228428305333808271525084786494972765756125264673523523044518241097633642186151427041112898830084466260296729994704010466383788766956242747751938622554705779472771808597534515765867676576984712095745783693691931936719388670867551449202875762126948569217849868014864761675844148690650054735605722076541615762454144539496622044330347737624967267601576489959217006582092159266307720433714464741549139163458192350208542884079809838209500226190569933669614473824133935083897481694658456517718087830666635334091585521921308804330190488598397062407845427945581164639496116666887564195459623413555343571133259143160544155295465377504676625175714628947510271158789382553712566215440495253808208396941245035773188101571659658913311852517204208690780402406262784420791260473315277599744194017381492431562352888400008807307744329694210396182948862536276352872324839445554324861190705898268115990338998874214732231742115979200412523490043810625721212908249545593565041310760630983152202041983115037831757185343281866639915323208391728547603247784447916387248422392742893050274156326534269986018649343816358905853759385824278302128651013343310175401629384965475728809360008756727944881042214460456134246355019872187832286411796876134714581499462366486903303538374120466112685213772368369625749285717928874974920823670843013655580106186672152627002775744501146562727743371383724603601500158339562178013998469904883237931014886677457496167397571971446362493010808243571481601748025060464144558161826115735960069146178390270384930529094864003245824617368567773302927084461742583484347109113218200323998723917315748750000797349944207059903244148114184630868697466422677777277710627514589754524997795316108167525876686920285158240573671837829248242106238788737924277667323812861158090016950834127926381878787556595012379671301486233837374824536448859655729118699883984352479143924569409136848877439184267736075080131497307026966562573585736636306807910365929043250231568652110104729579197186138284350238062757107810396187524893638676983237103327339383880277414203741196391077490497198519238357922580483124727405053086281127087668416699995835991264510224426350896145188569125224746620516510553529818998172503197402801492991787326546509327069441470531475088551838732112870703070400499180506151834812592483865914531819388477651561211843412145057417977715830075754289138690792860955048663185904929484890792794343880490095473582506471333943105079947493161798516199513808142627393918960806366100763825646847437766639523599591965242546079912396365326521278531016641227060079959580259616025042784829518405819755893266720175539234467611687455889538507046436129331197870067340151362308515631276921401164462657627446560158818262083517642181626063628980176113661245554854076720923403122785676589734702422282954348380283128806919315835609164926019907513303557453259119424006629675400107150248370493952623046596846579026417507498645439846128337279302125382082605291740873307694583436818190876326895805859086703332836514211616774974703283377480870659291169858257939760335801456422652244202622080032066012939346866372734867675381688037262149818407652803843545309179613239364333841957217589164114297767705847677070660239342040445994023270388688104620165571084318608697353341782455053716532709935617930829049329224040646294117998118268131749785541305389209029560804171239765495325936852773087092641029063741494057988788368760613443715817450551854816336210860538726659979294407273380072436659242293675076371962828797283793353136136480258382397944832047394438335994925874157233200638232098035595291270175432211947351108523501514388379776256032431007058151706164368799093506428082534111567731783133105999348243565160416360949513960509564219879440101449407045658673904835393886551865236616219795121725105966081627895539065438479561072879682719789450041461938890191331587333073686064808216392610625231954219169233953736527224748823932276640397842847519573200684710834446418813488490411219094003008655606247792107800704742935264672606892588226014370499923333121723598486910820568372127192487954103462585705684036126441077693636110038969430475040698168495322341688780091962721681561899683677806952288290351878619193644736290996858718063502137927962954518873003633158061919616328959905284031756847669158726598259017730043323659563215415476010260408771489251109630571226190599407001338803977402384069397253815217369204380128118238557297494587222926962857268372361446142720787691417331134542763567229512498715045670500958933022425925781625157926610909885152019308277092015344264701546891094999689982965018764911892408192048224785382289388309272419341902320106987795648537495733918726454093626899486174875654898398898777855247905199644754995570597615418236876817901175485590556248349263405398168631112242114260191580461268636939154966673401414851455901352033369335544869905273345775196261216935777612507262015302771056271243886539008399103606958583726271021586130222272072050395808167762979913272027621957021883605377069102703420535345142311116632220375502869552075260152426313372295176619429478604747333301100581528455198052563274666296949281029494608565557010577905398938865002677189300330859935852119249558061568084374392331318959102448214571725605782381503122057753503292931740070815621935269863614256506793655157852318172035045102642787676852254920143792855907431965622803661212137269378863835069855276988699006953681070293857590370226115599192001045263338283752291865233481074295771737062541352643953980182665564458605716901973406462178426199895158272794802337312108521374614405566665277198791352674154515794009615946997840773831076832694632204827215162895095625134675042805017744202010978334038948503942499076622056483216488070843106869187804670112482298297674799261863180569592917949792639536466291979963311420608876472049652630528227571095029099987526161735373593463813907717635158310826640610565219103634035106716168012285240372222987159615537098350525376661061758306298457166188345057612433936871011993614343877551807182992937491232134984848599676105195931933844014104650370134611252714410766292665901982318062929196320051110333592712495119523740950631583269114851538494355183228461058792017333076321135100790145830837246463435612061619538089139028997729330235208632436913220416912670098911168280454841366020835428841235056967282859987931307580248086110003478233159725088906891593446082846528332953316968783105577717291798451008789509449800502363795431015212738313862886861299348566523055782515120046013045953350600554855378847993982561260952519735691658382755523967148194382525435955349978969700832469780536315137889823532841521871366375249518875742578541314901286064907684119235016437980885793399226680920559341359542161777964377441543536478724991094181908254279317251429294395735688819740639869449860480382517539315771812612021028888576201591931271986991410951640023884507844014314982458437757423036882147094467903139174512051978062594072681444019551974726713334870847838262472237644317108095132064132697606388017791191141580868619688199675517287383758883590375318784071797140659380454433935897857174215719713997600668243060198016432103383083837151471317277735951267730968889581202772272309488527705551916786988303119977562050133753707595503916152576303765891042547842416372313980046075097218523237982282725681421878770191954144254971286193168524366915463325406390581560952370623173093205656805188540476143427326579071195725861055796619840923481486237264833844338042987557502695326431281989432874884295377601031707023675906125307071885474142225977916802154930281210263701514396220934573507526242500736189056055414251835987168488253587516364040438319839661594079575961896205223477876352892723707689315075869482408482223176801363449454531006530169070952640100187835094666634638996109873141682987397908075505180915550722482556140567190584484079615452290924897034254379932353724164813435667276891049518804875537918060810850178567709348479187806300500378157634169524550666131062490756888189200981498830521543095225250573886861891772592427300819416630334576156524922284469753630541061949192823161583463639179156740235615477702180549465864466457951753547068027727958564260712348164214513727287651245428804432995026010342988785761512613931782050758906002699589929582101969487646098436186295746453077458631546260157288278182449889989206970156685871066532665253552670630933550150963938780568663827218232056996430794658655272766785183297229424187533349637766768313351424024888676873299221951485290299225183003772373439407064615869180429224476274751189438126897298034351562674903722704899264673649127314054368083276042296755598011253386423888533936217000301772318279362283971256626057270938535892577700731291039136714204671768564378609705859966772020136393233612662786427990729151732462628802740684916345456038034266390690367723518031259402694231687769011354361074144148440449660380144733869266793916236597660355317621258790121285414078450036612844284264786626936166240021510488667684836831050320975039669148597640716293452142045622347693067570395219661415937475426564585319558063749005056056682935050550641126493386881737999895040378166423472913003754062327489434031616923208915885922687724914491068994422045658835969831326883627469887216709548634850323331299411186901522682468674797988318466989660753280787431395876918894581816711325349415450964498410748928114315537289540607930995780967846380382411444163602338785734687488990831225623134191260052729395011744187878078457457139838963864566268360275787907651200915448057555531634992260137401013216284733562490864419201385365252763861188317958994303497714722754100144897834000057062038310011865266531346798636599485461779394497155216033156625375707925752168750870682851294668440019417044785161972238723900274340756759535677751028939797235282669383813158861930184531372429142027547751640461418541422801967153533594399779881842722206732273795641858792244597580391844313481774746578894816497361911025363272044455026489393460658052803203160462083152275584661015958012968192482522442101116951964769265058190156008613503715534308437463958760248476660061224540827271033264347108966122242153997547889466900515855552653518794543316259359101659217482314554798583876317177114613584750622713210448934349154311749092548839502411142837724698410621998486960082403570586425222743980143215279161141649330002967577830766059992014162910171577785329083881361652119919949479771598523090606811887763687561453610770757249462827604720654267989881686720682418311485694276549077513572474125285319853192300473786055313890220142034573660976944153196842874078266918254225964889833897147777176200164618384696269163373274496654605106908630511411255259625498518205016008520409571200990023615307533534036685693530743257323850647453839472483037623618896731168182261158305937370627519159592013370864669474812021601411015795404540925455698713621222001551008677728579438932096789419553417708127074434161173607369693454343051938037700974345232174994686941646480980493763548546560722747552705660335072398324984168789712337410571739746912439796701082373270157601866431029420379833158528799704116138828260379226728911198482589607011470834269172767869952126800505800933540589977824974304910451223924520651134667795040110608122835531686737497258635038778023258012876659355046044743128924364257595336491284407576907429977370270163631309835372791127232740707462073629941161793479960166634291390619996069216246220262474377653254548266091093714551105051606079430337919491895407030261621769165442241679347395901963752860557039228146432897170168921914616238294404002365183614492358835766294577395329199744321160238756265385205391388322843142526255322166623126810030063779935566928309521484096859264653317278389517677780499390901399276589803901863786291332416982210556912777441512634512757075710747656865627845430211046727655649686547099549317048599469399925457075747761283148752799951720181705610108442908589797429609357813380009053021650723556137566016443782296397929595813559184306069045722339963615958779712135502494560126343520441303840600571844336742788852334887125065205937174636781978238689187286973176725595480459164592674352322739307187753784189064499496798142829521541530241159816340757259497358998694459160423635020769130135099093410041047869175674828060555256081100205117779976321507032870537993092642200495248344917071361724547657753152506948371255570504771792431117088243577908037585853166986212609066508702305326772964360597130303767974163448021101881917428691457695119642817033541419587408512666332840517748666863910298774314114337232196541448268743221414078494919614967245714872451710461861254243321207112192459285629599362329810088618417060471216754496931807095107153774268885636252730514287916704805435103278159691984141672137470556934785241233384982271828879800497855249493567635916457444868625433630907019604543447889842457337170876202919174425536137307596782484594079822182054686504639473611686620195429385057811684762180320963179401588490654197245842667859546679550748019989962260124957923512637107222438719558033720207350641961424178258395137787102081488698278071904213486780811427338058770149115718659977213037813093693449747996569306763305242670493883053596395764462463523551021469907518078091310619149696374015419342819792698279674096062224001681946895352541886284875057074425268333763644955866953748061297978236080090937859374836058759139674772934508576729209578446559816023527042774263503422329739491224099729123438740983534932245105517261341025107070650715254851449334229292961382583900016246032491393218286287491551564191839584782964964101884208149203783210826041740041392976573590392568329402199377200881757429013606668978979294910911108119178502275892959115011536064413956432527554225986897252751113769521844548996299957330722405772653255527705044091066036735751027208276932075162362175797574576631369285577296688540421941353695394514429478712537199195763049749610138703704088731101091985834375649974289537288496123817913866351148073366714274173199046608845951584719644455986230470204935999285670389525771319401674079934615128476476385321884445367241494582114011543538929066025111596045931315858218903164097481394565214720955181325639485523258997241519275620586512446034753738879550510430339630376849764735582542612133618833633892654648389332553560387929640242109374315987038564663270831102011257610572583120016432823560217511706504686247226371425356446697633897211882163350974526982986892337244702782432621473653982856635373141900991147575243166922184358464760067985163255720056796674388667542309217983018127953843391973777364802234650928754606496807388856151344717726811115355924244445799781914315780926846582170295004182842968985090544101708516025562617198895748450945997548190600317845652353068172985662584258557345760472640004947086263957194024895033085458244085823561503043277370890723679755929995236973833011777594406838886910156188694441708542612659909070070870123928112931521367749561090889891979303009751631458023277079208596160365753315736541241214948358914238482058383456342830272029508997929852410603228243900491753428674463337560238338802445580400415230938432501574236877644261351832041032897855030611343929929478742353491714830417892617203537062421788812332294678162778033977686502249203389317745370269607612080095064146289646017518640047731667199649542355425527682963197637707844396101551630123920649276939496521724013820319770178728018401745466357796416347253421743676383355403144075064187864983788699975661061449430878077381422819798075418258542464710688966945176222241928325605158093747456315956620035620400929579539878584747948373156039248032099317800175299412560560239536823593729028870547658109122934958711220847783465009007588250755138805886917305550476286299110927095216581275431891298167641654872480500603918672783060065339026322395941228813766207218533364146288723336304818186045466105836665693042081595431121782562108947016789485420787208966221708637843403244540872049464438771378054547491296405108636996574969312969766335777283325439608278475582260611074505072735490261733580870277240021299440924128576774637117836389334765521415101861115379041488116108128936408911961800605815605940387240479923262412522461084810495979605115662689671764933823325046407928336419581238980160926639447112211087002742530078025221931300879443110122294118310623849990678921357859045538229912602415004494240667194205549366833500679803647522103607686642506530853809062522223871717889072538989609004530346460375995454287182235548065379172099434972445888602194460419885873521840248871285306515346106167423130797112610954541261374951428313442319838179667949908790049250282073551650213249732021295599635707787749946582677276473479369042785778431414071954821852977202815657685986642526091225632197761607323972269599076956206764566830353728098789677189797309975267903491298371739214350869500066111144079754140742871904503973619465266732609463833052488752077956052920773193934951829173139021037877763796292481984869615845982651372116655483805762269425223064051281880136910645201220747856591228365682564389133060086278386921228552004393366110164888624406733003556211200829035900521775488726003477854857825420207347225920261275267743934218343893233790206058597581858781058839425198927196194438536604098765212018118560710328241929442452144964847176993471764562749711805187952507125483840982753765550936000266621606241234406271964562633990325418377326285339189286213783968890447823838309316412909545240321884844140810249722707098399832335162770241115856199244474292000826533707437839751075543723338563558542390883372004419074672256104152516087163241998370585791693534913317523600246913189734852941903074894698969285665940351165394021108002502650134342095712880494800814055972485423002325047915529805341731715433394666613800481698381259574566538883502403899437315421703915422053330708472161477141490474190228810552798914713766542220184261367443954772101678084070143777672191702931040881220087585444585808213796419707276453594223776061420430298579491573738329980811461222280977040191682776469772592446011556827191321539687785519421506523056379187286924534020052174102355522133972858162799278022362303124378931145163953869827719185812346795418119540555493784443670769731276933828982012688093802805814881038153572611492687792965329608137790465449306885840281599508186122770977430114628744524747813006555286307988042518870964379023687994048309681932926691255900780539380271068891157483959094950716298527031477938799020180813579645995658111305368677830517861642018496321416885010116170866517704052797397924103142680568034614854795883313435666264323802516820527100730833192314523745763754270964097922589080778197931891886018825862686110428512771687248081473094390427978733362756692838484974092485226904926968869544923242512571553253113175601975919488276783105282643299799570746814991050399605378913224990550867489512773864286455633576708912774492651946179366082110299777951242600963839294033909029273704458213033225463348014158314105506974164583215881416779993181397114786159812485156526627556302259694323347750829652587895797347488508856455082117896306828523675364019468219603534090165593586663992617405512973009514065111825698200888972814704605660490478707806602387097437245021080010849231502228154456479765806152108300413861401791893850880602751314400565682977669349314528876049916888310372873450379431623552269487120867118119408659887231475887380405500354296317072130049840249930374331641757457048907203856154029921607360569612408936294514421233641645233887402047201275179735495931534069790889327807654919450796244464098945799249665975966439943900747008954979717363917540955169765235236335548424726834931399720862399275976774382584386515302182383922158938854893272182574380347040143257900036022037724440333887277853905417452759994043877598633453719089820856300147064413716180480100661594744124991015224577363874358273590900295654001346098920245506469447402533224216368126475633702157453032340986717016924242127310417033617363568197081818032194251746977712934051240990331971021451493511114255679048624292805035520718443277393279305230939382177391282097157039884571446080177110435241756392712245376776507138936852728374949113351041386780504364120726904055790785814723842366530725732941597840286227825633094076191860269294027762786321372492313705123193134793849783290511750936485784506863964405275995224201812615067976362092251630453525370761074990401735486749684666230417891424478785597526785102916312888876215283365103817452188990257573432368576082775894244182411493598256245877185340732521101824841822271412647514597248457919552780304838017505096882581255280082770640077322286387792908104614118176580282605305562009593323272166524928863068487231211022606046331573888845507544706403667061954973826469301889605172898398681288755945321358801209580405589188898171546874047506750753781319530823085563004962538282761324311347043439497911918162172613440033374332118197147281970869377449969604370089461078251973167938274633398469710770073715772456589845219353124395919549819443059422931390164268269572070400252786362933704316888886155713195739413649204783782909318249695603796731863305344164410875039526027597341523190611883557255474965043593403231565566944494279581147074863865452808270551813735509122569594373658188882373483672078123421422995277140277238431141394836430638269364278162612700280203524298279503305620038245666079400246315061020826908732653658817879321412641204961380096208820039461511354779889068417798419590002956792701756936355667356800245535820389397263799855915359941499545762193824322281095143914359640221635498577741303879515715601399964910539693765954204690279409860197628503482041215609694676940015134224912615887972741380666414647913269268882396769443779404778116057092614582345669567885790277577780653456085810011090565740682388943416415967723518978433417715688832201287616709513418489282266786620727450060402794698892134311031947735285379003248405221074603471485427701470605011372775355847647357916549044888560734287271088659832785401547372065152827368537056314228728820336253943026220531748128391035866404328740796696140341081782568345155382182428661963032828040803527041613503765915676451769352603580129900104914545524460997006636848567700427466707525903375913586349873631229952280840259836661599755302134979674669764050856832558330053509018866576921859341573453445841902590642833659220804106920035539146335557292668670831523239511434472356197341687495751622842771870834084981083203708180088229597458512206893211981911137481832508939250460490263329887023924077739356631063790565879850570965201011422768363811681864031858462564889075799427802887075205638619882567851062755570569410019723961945036148214186605811470731717789536115732446319467864130877573434706991516067964006061362647570738012520123817562635404475390314664919129890345975706826418356047910277855879085983061393865841616788489445788640814282552938798002938707761083350029556269838137009482981004199622721689569436036358613829978499095955060117130611693989043111491502781623802855155762909615343304213676741554150673106243280316630705068472354265525620276131270556418176275818130825630443322265845226419986737744281537742697437516077351500904364271417109395176677810700736278806806146095012212112080953559694209357330115719349283523316057287108004979638647243746117974096105543771664443098610344172108819721770318585419049469333231954262491145017549483202258325314933307317544905660163723550991574333241308243553504724729465445325963404770753909739254350374218063526454654090012229410504281729365051312536947205997106573791081431905430922247357787222258880503543914326809134985859413976411758510502418902397166126427397388251543595461016193085278891662004285534508003329383420174639571555119804130556155934334702301673140776356284068830320356523020896039007285404063793593908777226702195389370602751864612599209647058999575651769753987708959085531559677256784923643160301741490756177820721621635021433423415390372342052841857491582417689637815213851184523351898300279560320542909928689357830258364192284794997620324569129869528383961742908006926293741755919489328786815632522549743794823586510481475661494278052303657039822251713738159417717899179064013343243534858828803888302489442271659253534833007489932154267846620800916997027229845314675328658123685827319411098715795015373992322261862629469539165751541903934725938617326317910343425196110456413596406211037461031539956436239392327360796769671567780018041999685278817685986942883442612029853401092674942013239533657557126374940141297333210038423254447673447848767561177640918596969845838325676521795651499205627214055381010472780374818578012523162246741843690359397785089465987449378454090921257919820730839972707066474559304384643216391903087153661796058706995153363448906879672993175411214410938769034247886676093086290989963696061845799868273575575248110754627881433572448022173476394522571625583685055850209998337030585188431577940122561712285466083044036194166783817981981466356565377249511318053742181811201116164341667823495708259213338291189939836739596492901004100096664630823782527841833286987755283786833707282303082496213590424967619821304956776445099369683275852901553142495396918551381416156428960698921214446999052086005800297181302823383959328621363605620124339721154812448645650672475593133630925667938211030984938228723399226782484530061531204900704901342098162899664280446277556579420110530020191716873753513430846479317406944134801598328163138764608488522582260065769058485287044991145795836007391629929426123951130432871779177688906541188720413371098383773892649332836015364572491889654743450990867956869633129917027732336235623840359620084689608324724291602042384269232331928020140535767444996952204406797194030628978537870977812324404092980270322548419200360357766278155445602359037778139198861910048431359283877572332234848310862354052884073935593031311270511903366255043443635683312825425528718124956037367635773254002142121557451899535333244597328812285269866376168873568007092315170864261826201503720730054570388368563259370588624403635887833985813727442061358780252477578210197930412825540074383960913364621948924536814545571379368085825511348297360904379835977438373047589168097974287769343643709226717704299693242618428763329260037714808832708227083894602332288623300246100829839089905385029599288774389220266458955043651555431712154009861845768911381927449661311853496274511425301924941045604831690220101637504453980634774553000783644141772398911399394320257480374326554485314928337191905842370367164502201852774561604370030585215786793156975303127216334502289745023079256227708539552796912315235867796530617719296276610892022051671722031813417976669967738089493876922686390239382127842092818938242719781510492141869303982510921339327350406465495517056506754884343886587976976092252751953163362175005483778864326916223969392623806408786965262984331185913607938318899246421157229079148087864975322718656377721357219000049330476519118871911878596749612526985560246391307114060815879448921184431622906395565313902486094227082052462726505163693271874408427451201719591695518260952477409692569800593537372039167015524960381754212563334793167411231853887925555489724982723533976349434362433992395920090328522148952183196748527196415410816046010287377514249579402802473120956155863979938560773547319475924091014034344618663833961110103947169770138023406907405033717729826920477281253571218935848785391444236978600045718629872509822888549738825352430853668818889727565298502433305161449378138667175710645901717689615144079926194023020047205193186143299055687826329518489168548862506747272135500954938631744920538309646511887698260630839854255402479352456739580959492476819597825973139882901864012749750650328725658852080570018113973049295931151307942908177545478853749339971212203965572106877128871428392155358564245356494984929336702949024898641448079692257238887423993972424108529606586547201543737991791180363444853057328613854104912414565841093097272530783291893940441198850484130181016844320610000970251602364129513993117668828816099356404692885744606473811152230766414561389542872101109753600852566082950337049900303676715301861013548647885192222980417753106154866210687614864521113114757314461610440077874918664989777482686608688006496752045024201950749219695752410763286684357642226055470117211121658575537647582249477617351078895876417320788325979346609114804354289627072027997758395870626484546781126234224512419740436576132436326333094617679339326270806567802894470341094812118188028977197667829784503801745677609010804303387536668174658810141627574702970852442120537100569777342820295628955262086648581190075829473656972257650252189780633658222234359813408354616023878497181256589772293098393998310985732815507154435612593817984419063579680450753476186974604998634516362775934979452364128830419717972059685983424973826801650408949507697418059194113439919973127623307571527480058812660985456362745708132467762029426383734638020228021731470689242424574908151816188360659556824028674622090715364739325914072361231292697049819943791297221304415028245959805835700131115306821548789560728088493247181715473152977377717495949196510704910042027251382496649901794578135482077562236616599332105507753799679413975216651564030388388256193911768066979095771410477977300406808891378900255723159276742104417692759271840559382359584866796561296816756237337619326129246942480495810050989824994684674880946948909969995080897907522955726003448384381877331634515541237139093710128597045945036326611848143863900887255430559662885315419841383348973290598418046926851605074088716676281992917676967265752650246600104077857183520273409665224943971293889478167871686368247450244951272150289699291568754669860484218475591307809433728003607879351758450389831162936353312138383269839287435900572987734142179588254227009582594601218135934722288298868347946767870527050938302378577773635969994792672711994990413306241352413923681315054902711922823684055002615052424086845748443349757975332226185046073223949590990575186365915768363857971508383963808445178927633118373005587088722961205898892108576699972232842579691673407188196008807452600815951557458836575790333758134089719977020872647793605494253520395094121783120236776872553678145204808242490848966585303811301457133069077460207269964743438239247710390188815583161147859988166584613069182062268289255992660636838504248086378695815983688180693120406058030686783741398097372200026686382225974274621369680431756176021584170750746928184584792045402227184233643484241166255868617332317057803201838194996326419210136971807392386085958977974679531552551085819778191757746556105400032746323731455546384149843685199529104658576305801509583872568341732782046576713592587833796364109332797406174224107279332647996641456222934885543210666153747367024429193939848431513087759591841809456731320210287752864423108548193819995761767568400519525534758428970000603266152465499435168336770177929651099241667865367063428393897424126907972220412585448999394679458482194667084124348524212043525116162205743598341961836721119584868668895273459021202662179629240879093240357657598797184151757933050610068367727992400828982631712770042020028344414149724607533092275796025326225459707031899355752282092614568214505853346965669679969132039524716896952964452401902284874164375322240801581290301240681602011702286269373120545421367130327083627881770740286210858899830317089574424306825438979090052139673652608599571816786452655179653252126331583377044172846149759728645299275170805177059253109791565194457164466873945901265081960191109187792279425595001428143276455872829736946249342091959770932343649884236134214335517460752211389952281010037311648740709848824567748082255430168810917955048191307711281480396949293762592662770234748631986444910106951019676823083248133711381929480114741079896589246977682436754275851335959257920832960773618343246189762309034521791002233681596871973783569434944342612883304367854120086904765581355574201612072169081342891372109859993638727648739843211969450141659618660743780629220967559102190336868111202733382453388570136398965458520292102708464946354845273174057119499600046844351110746995486640586444041938390468172638116366792793858449343420942349907427650463077529749742337761139776498324058406903245738335199529764504969789712249365143502949612728496474095083075363965510443791331011263058617975816360330178976913624885675936520376361328936295487941210639266501347999253160715938665600990323532872745924838185479293537854721427148223080177556215312720412162745578099928235229913874447946757171360360252226687889791894790023117954661451671484554032242107410625116876020722129968768990146781909884217207739098452122826042812888825945456721804346295843728365182407587904462524258003802428621480049770636246767660526306119672180818636353820273748227877513854335880730547568442583893806549738700947664446442114927816945201907017675587916325760606042927501940915796713986790532875026525803202315210690226595698362509783094628511297527020148088234665264632311814904724374622759736049770748575315487437970688460270056416425785735476894928743463437733602210407061401850390379134696484570024909104342155296961343407372128884387405800882091739307271362882094229900061017067076764021263891959258932281356936123117016650398753856022102862891337432387722107503044828248827234080570192910663147587026951336016866571816476916522770790500455902016930055659723431762987964989503068256779118009561193198018351859572010500358167797893988544960391511010899461116761302432522950106557867724666615732145256369352452117162228504122547461660074932932992887156538220206448129596390288253435596548327094698843079175156785108017012373961149138393454303954142652226257694155077019781545190208561968101329041692385325879491517960945825293715416942558461567760777025358545521236404547978116645231098263836976414112041739803229001615649218484345605965000806823467389000394496334360124328921251889455807007994080118900807696827885670800897450428005901361651159048808768991513364596762874343411254065231138648124816980917735684164666834412036752210521627218006790509831364778897552728446446180627954364157108613240471628794353206709508428537579375279928594751403108800744956012844324437440241035201968756698662140331046402722755860193322635819378612136895925056332827080068383292898485160952260107349856095918459582016300766732204014565833426776116044933568195368478399535999315785302485392330746568122260979642039088560947935505952979100138912100446436634768586598203762449105953999779305242968404827169858196114968214652570630149302323333200279467372322627773129686519786310598347005585749450914944839876577852735467856503993810877682641035636083263327113174396503076509980252261747109485477131439454175565107574300468203655149385227269388883055939980877436816662559805374942584729351041031986820162698092113397464017982675116916621589225541142720031788076379807179644045711326249722015574041057750482334284853984350122337744052278719337838465297572550205560333788161889830253972393556581962528899728353442232941975525237635330566304373939036171169877766656741879937926506894369552225294640419574061843949458832833428117864526124054409503612930484245812857232241557888849558686826954852536696707893799014663083066225948142938963564515340024584564420151104826089154419342245904269067767777969860014471635399418138784819283144351487247999314008927493603301757466335381487094810057290130044051659959202886949798932774053676096845037317703054117718691240826131644358178226743933260591111403982381781716451012349576260235176639732975435025889274657422580876352842031750176968503260849844438970110504692577065164371234059422150581924139205430830442441815895375843776600455012833314159854210527258770839286924607828250471646778195124387228588534444819215654119250554922411060236786080998498866781004124199314858451182893577869877477403634242319191443439137620146890193468479646063613527872999664117743836904475618482517705148337446341496837109495298941733538274566537884946190226257819482903486744166612945545539074333444852105516785974430891525030609456891161470493564133077094605140600728809796580197757523939871500081094330363660347838500819058679326601838945049054475357851495983929682389933259492799468894996387841544202096660381992693441295601631424912317023502291190030216574600314637543504955491961629445384590078121952266243744558299585991550382415269813558943760105023617664940077273216081630089786236710613215159254277207870463155626857501503271114369623534183313559872817852857889587077655043905395052372716462716441920853916522590173962764975394982601281026382378126161473799371869951187457322974571576611601012580224465069198861964290925441216980478475920902424551479962395511823328338508516381539372472574341924988648895275017167669360304618204070293309216143988552868557533693015403897664171184670716856194148076888492595961115708180104175670659214689596151534271342150844335234224121561403475944751922091193030590633361817598771584507973814635365968631761952251924000315869015756559393701173379133141576309683876813426946466110544951845166996653091474780198255919308957608546887236182392373269751629029527654197752666233148823927637004352924845767115647423430112684427486049648923101770347569971343614021490305248430595521023344619223008208508819109128429193251118974066812327402994193911007769070838366288289921833854468402425219224918041420020176308992533405002349018743464314531001847924617985354026154727594075743749460981650470291351406878751834914462593493395889614300533437361566611297289971186919681442178348596130777614652666143612365586563608348017727251706045472290113998388871692035720402902334907496103883955727268359813306638574029879685714264702616433723008813341766066402624962973132029444148181363885058765607131203483415179021581355389400054236304723939614942725478392746407379404539105448816428023903444167072679157654158359060495654650605140396906148093214483295329185342469961525582416959383182778371113633192402161545644377577368282001516062506900581454763529069154050503564735740035327887280876677301559180754669903125350050481092099552844201984796485696358182189491043685269272883518175021516206439948778641566811192984704756700318619305286485725099110688675614660557346818488060022150714362635307563005750117705794030462405027713727692178755057923278369110552515972684298636477778368908679745947069714242627745545512252806334791400243474588156469606285645018073959295911874764168655627235257299993344609899435492216940300976963194251663380074513699946036124028986107828848989369690717692553499001621618231159746022944616129703386285666772280609739609296282413963146085028301027944218572963170467812617986837153063929023371763197765605204824902547871685658628421940327277455909830374155799668036791120187327609243081585824958861326032975060970698297049843701382902652921586165593160896504329198604595555771305806115292861727949359733084923282121003716316666728490712466102130351311202480177505664612730523163483106701161652777174305531688550392625825263171946739514652156707661493160774412591348552058147120583813132619404433723219202936859791949785206026014858359596803740655774373255314685590065634839434979926122568464639136044571904390482019071939980005449095179943983827475275102800460515116616671175900776492097184667523647237128033752290089235393374922284123690973394069464440303808165381603755640336961257518025829184842806613960768310098892981167548790359061111539952885871009298230170746541334810036758685905540038779621215720223979678996194115736270805832866546675219933208037828520102992774069674032198334477826970364250445039160656389254216062495945133757149858061350978400329396499528589266446711286615192145832526630912742123081954041345346011602959171895064281750236326180796180574256769891503597873874335453682536220563406362616839774957117314081569696555364875688560861386574451303672228076209339431022324250827501838947870698719710292809630083279488059661716843439221823594531203881036270830230042698437402833610122786788574892704120135150346741452551506273297911719877275687452638962188370885639843320945006023372246284907004179805878985722676197542931949602885285024184845569663889640548274102447952541115656905871467456378804672926311761543090637595169356346401381465365272582736606328435675621596165206004489578126054031661116094038881629004972410548929474235466970134833189225932215193045388459766542058194338619784378600866581408758934996466449111166944491594508049356419142417412201203594456585170333032672231414598451191624707465013556500773846530988327266735486801249708361226090476919762508826972256119344749539328992369332623925005768234923442305841920978354943452430826106971073194775517897613167353077126325827003817529598877411772088406483603133665494779880221680869402900216237407902623993591496830014275578077740368890242920314067480656777248047075076697182479177987890403589704108584385310631509473824159059697547715049053837205157822609356625478191767548026431533705589946090484734141022769598136497290060434231188631833068347824452334888315954759258338060155866494149514112504990077502948157771757616387274065113593028621782733646424480905814389671549329856162711585337891963698431743941491798867715668077591301069437555694783208227274359081495037351982720800962975840794990962256240875622903895359458593660375219901328487236915286397344418345664056898809804702564807359991737881388660351649125748044010611360088242736983485674810350271536713783967339657142895169674126701333654135955312425177572020702638847881177038298451144796111686732775828110786831510712701557158612148535172753441144312032983060757671844671199183684309157261486870128885506756835656170541535171408016627843401495052456586328194204846818476561847250491970594684230592922919611042873732018766068822786340023681717836954751087933384201195511331774125184799597196754615556171057406563617266269817291346142259269394046437229891144484062874454428313877488178433218060993288417399440953522099597541651820080464894360104278504058918749385648358455971064035589641809551191266355540186936071832853420150688762735503312352182863640620089301692142886429906365574056463010192179162321292760270451729011063868227323821975047086394134201553604137486408600709527943935305659295747795566256378247280094583833402892088025554703479487729522136687435681637723728508512679973648278978352706062162129931085053204174029464773582205512123206519194918249586005893513478587949638028677469371803964772251094781872375217745366299094169227504171571140658838481067034637732470637341458859621049513138689407961966024626714612200387079716792355202970703336454917631674084814262884642456954412952459490018825723671071862671757542403500327145792080522264042131708841151165787724729147826526493773619823113838657601756114511262044506413140280742100530791003598390770641734337438412290809072016270199196624058834128415963766306066162513549799469789660610056572864783591893600343556376082802603569434838034943511404751624108034333598307041807357724181245762027978379572152710510312038608115309742348278619064582309616654373042026292530180300345357581561790976393176652095109500847928187680794777754739109856127618570300483369025102209485762252719533016094853640572066720466346099075312796340540810681403925001940790120185882413656881636799070799985032175669000404241199217042236380765581853851641886100573884061673512555949888037783985985348286256798372109070920658744849346018879125990972749566376684653010208478730274164212638987211174329937371609327111482807634252128480539748634318456204735484084857243988295384914096544410767349733014997792555690725901024976657362701770509836373433431582253758283689096154329431738394819710727051802601923963825930131715808369540594031532915722108298115910691563429203322389369886728965154517583272519608062129886173366519951954578334975140601786939240559259492687476971434080121562807745522787960931898831570780521968709134137882378028741581276130657287577101175803375309868802494150731722015428693131535491176413083236212379009875250200245721212468361958412364013475818132928965509971014005813240248634544380067131058650066611419894917819327922108802297059608043188137432041063553639275092520097539288598592322849465854589532845481161175477646691259645643612980872042758961546258173655119098276391885474109603905812741819028624973533325696072402631247308878585460655297118162933977622725527679514595023114638605025683958568300306897447158229938525983657920075154703455791696089553973432740129525833400591854438898929334979042592671291982997840192092474517992809047592016972802536102634031800024082028672756356074374653458536775475175456755640307902355560665505061693386843348743827463806028156863852599022718569676537550224319965067802300604210451062392113606935900602686376599110429374940561368847353258843531271897534864912262794922490616658295512886692374737450445181191546198781062731919643476341896827327010963242866435041092220713909422436318236033477093640198986043483734951276598571549173721385316392467155679062211544550614346731220789979936776493094078648919402824798105853938305512670240561097401732221681377122605808340122284059219773097626080701087544711382921035061070825157785186273262921287600268315665573699121477233406642681409710633006659854762003566790882934275572556387843552175288588528769671417446041954865645141742876616054469553926951812991105388773247930201774295216005096495334486462281601707701849783486426371491638352244752167475831689985875544862839474088718854055175838694513213202986127172580150974360584378024548975922964981989429816786774837263600546462370040466284613638581208919790172769668267543133169386634846695175089561481118955916957352599968579269764883575774264230265290151387640192527853245613346656414972076731264954242796664895425789201843439440516128521426913080257042795946411435147328357431927551332699486808395175248889492491064391586591211135739937143143664904399806394209879162188788311684727570137146188414463974164163820967614157011721644361507968641090841079197789812533180383281590611109702896657474068883603482264939408427013045893413776781120118096040878298593863576136509317221110363840671626250985410358979368892712929736640948264182427458398077917235666110360805322795500170545777295787919300563667384587067872708498919162034232555864573887875170549348063303192248590883047677636188622353498685529765378959244475245510332019392547014454726683420732484395923158123256535318986757584244447709026725221202551594993273205251818751556370854156582762216193549544644634849375397358737154503852530210613484964814448498822087769082715870469931847464936036190708264416119185519683958521963830100692275861779917904987074247452453929179453768826036371779276888974400464118891874595770868829847691679162223573166330662895049613726878553434270216692725260697646443242573520473490742651556363290736130912137160192368473160082022715936285031831715353635669533373109544872515176719535075799830337352523214084145447000278415911479187891882675081747043287416098926111761969113470127894536360910654620664409943024248551473185003851500837827427686643377405757475171083890849173224914378035086232613469810311899955320074035911210578683744064207054332795762967752932281879236998277904158163248467004432605418992945626040489458646445029422910689883516026434400644527614917439752592391122929582840033859118144020236585876650551136996381780733553481475224568712883856451873461832881607140576544843340529690512797426284719171828752749077846999257643861297834937800178372657141328949347240646731012634877116867949201637197800093038755963785210600788300304317822652786886224518419348194826315643548702798384981949488993790325160200402782175246989848233352896131609281074354380409968094537495171897916797114534226811014928935169591981964659175325131387453537964143214035445436625580876659166671080765442475284753207833067777253398434857693683555705407264461771921471573158545589209442780443032216073858502818498838757160110353394420251087654272814483556879269818380853274149256529811150660829486892067679852973568466784989244929506527143240113295316726672155985651416637718224594765383901443476633661408214259447853297475448460178447973603598434160823556106957720795514032179438049760956794455066619365977441745533265599052206907967876575748112956051503090081425991798719145171961049722254789785539198396129193243055085415228798030784486134958675916938518647007518950704886985660210113702526655173145829845964877395396108363253777853951144821792652991787696286320990617743537108596886499166763082466613541153666249021033410874822469004948392322532145257804403874794752889177505560963857631532345383216410635525174341027774238300366342327773097915905717421892451516696974185061880531103301477939015825318427301646488554253887422721600728651136434182826450676716524876435333784756969086116687013608957099567386810546755955235776201028925325175462230532064857266476325417973370757358870201600717019046130376898673441369764335130955298235751282838587072958709918684562731990009581784611565933816884614839748810086700402221562644058181002851607697107001963728005010460189186164231344547408058836720972122078448729960625999037513585514192048689222965983908344115678474617018484357336946575520628660706980022940469999531208470223578170477757798313721461283975320341746614793049110331804216893407341190917393002632961563593576953510270471689181389329861592155888576010619326222846009239978560842779923128286911454808143939421206193391397288473051529644269591488154199082210176698531956205988329085533058351892549017474003401889524907875586270235575764156084613282911125332417277218498666360612841744121601751190975300847250610668151150273511779269533441645974197357979807902834533005767525608920013521422160903175760140361795820633450939443061183598445208666183267137635752936779292624740438277706103728662815771867439196513272447734812202941865374030249872887552991128193015106726108843823002446090229446160568976723065358329061815834928195563629421157166823125162070231888651373891848807609891163470293079566524299528954093196860693380022303618341907810947041488299950832783841648365124267641302076976138149924143092775450169898392125139234717551669954525034946076658023954072339291835237837645478330972448409866711935607288033222945064523643559900469572868085714954788892388988349344392727413810369643332158577775789569305869164096289762386607164869729585958858604905385451619262107722798181871304968624976402628949353561990803997190208044194512048866021955551988360795292742277633453895521168729344315318157428786931839979106411946940815148571898916699872215253436639627018773069968710869812558413478346249719491334543353568210555044495001157620842270803389085509945669560562516706534461149976158912694865864050726136166495081378773718914240110407307793359778762482125587421634416315568173465662750917764554058218314679157753060484342810350574161186814649609920032383392890370355573701199312696798401491729951108903488021560902570469285171997228820915365682409130298611148739037197492506935417150024952619791564465475218919752048466360376019172476997404826102034995691240754617336056741793261058056444474941269971191693012229746349786079670528184502965555154348054066520901885965249908906732600595274838192869683363053191270214355706825956174295048299695473294652116156261093805292632749601567540408355224742288781673772456850393440126875822739588454075225825133190132787953823087077292050843423748409823201365528015302217212064367604700595276005012302399909978171058363929293514750907001499517780274433993729624860296377083848780791471806569802883395923634469931435998825932540344297097022130326754068146455017066041924992458310648810654447680918342614301893578854919762682883107179811961628536253632826831941744508098603374428609594072261165763585152825001943139123971933016900946291084541903246646324045310686451249221836347162995577752618424757065152256205027904534513015670999310860132196282481390028936157829509858537501661674203443251326001334888917190490737772261631307659038401555307417896476874088542679338252317487506226852496140498091532603387864146815167704774461272487015568114256250497136721200166316382091873958913025369285010624180146101472474065968945765559025750091963981741962489887607332679015818528876240364996675644409351654411923564822162656282775681561522482786226323991926831795555794606667395093819818258987656090535236133639373474491315471050199369828350269162574978103594914394531163588022571966463949367457016112789927801133047683378630716598959965559577712193771292470689182046870911987073349727122856529135150423495264365509439110162453910624824010841571750009637411493988673033216681555935079293611954331008063321677895137725802266596946060494635939087547685834496403711994066269188652588375124660488405689117760842697160816903575969834677864400413444593406665577759791849504439147098184594636468922205878118349809897589944082962687401392908568563375652643851527939397744205553337431248341214699923652736668163949794895562018531799759976258384463586524006067794013029361759830820813440423610091342377990215988459989209434868793489066600627464547227286116645695751005291339350407105188697987305602784205485280836357653370497565340084961627403445068214067604399758519947767233286311325517189809061594479041836647577666880783409222371426683920200136714336903493404378294606913683425727497973484801924470292974045731276637059784473020359414087191083985898952880056292233656909864835123812430384765298654731699500493212484574453011152751339077054184392499045940769502644283548635563295238837681807029037084732857234661380814037037108818327490043037837837972399767536948306760833658545641841642703417782800282590169476974589436596260509936339031055530363163159400235318615860125002509409783896040997358866152845746506690853095652258797450858821086039673254972474635080550426468649877899738468439499193177045555025462840270801834497971818253883350280713412660887970541570150705560206967246135541580972714516216561635971230559754235596402401690025429773939472682691851985747456808015968789909661889295180252646790337332786919890331513565149417005982896132383241868385533082922177016076824217261108631005873620386492241977668034529153273387953839619395150340457241932453319588294561737711504527833935647829181981409524417667769762620990094946164963705743007730266835022611592947421632159059155466396301167841609613924456842571767414057086631080794604550174905338941972676858353238452413327680825639907874180498932106467609445905364764355870283689405658544666921652131060862157562584285004838377013914411897470333803083228977990237806301765368033233280144417808633363496272700551120108548449081736293488873119543314943295247972745423243547421657729950602322926637198568893349805234866569382063848857608598407399386699122785356826631255589796468152351679941235692349936555185549948341862773821047084828472354180517719347262549656313077651537688554942831661921338421115182373066487685433654417134917600732576270686926455995489101550937782846160527650362028738421042641074995263742825084072198973639855188253371032230571394184235855180549328457727044518471400940763388527094571962635777155495966756037119657674103309639745069859082592893662976556653946080238365958871156500573709330194841722524371923774870235142136875927545529004825044740757804484121138427077254390086529301564361425452340430285626097388092800208912833339205178153341985429078560842552724854870199697543243234451212408200426278096712806192362626484760733115779671183070536363884850355547843668165281413735605631689884240705378359686758694305708771819131096070541767343115625162418403381977362349535380382032600542031991698282941916547367012848383241443328916136161790077657468645860882509904174998802475852180465799306208515549120533694824349638910020074622487678333730570665023879849414709428375413596779655742954518733848430116276165844855247191018886098527996445588837907142898418570019339776881632370388107283895116276163743096302557836882108644703708485772751345019102074734469278090814224822228618909352877581427063112551979340358476228875828090621785881968531845274574226955248662781576314621137187816898302687678013583454834541663620154061203025093507525606398993827918154186790495701731851153347889250365491380257942952680717249680806632231683423631498319435011658484406191392730080217937809548985650096361469252703749458322951859603190408592588430302642217241139202880972090331098459667342541400371177124898798950108290208246624380782016971175406635959430775457435743208463955162918044507463993556117429235436596496776603335718223453991777004108789119988417383012001202406393313370521095274932753716483789244111939112869320252741863000566804939257250163085818312766816937965233503104625121755387269684914275094966838944467891430504765213820322905610306066233306992761723337429234766700602523866907859971938885458740001806500434422119878515379340265986006985608879127347686017560252835292859050372164307815219740708339012052259659728603613574187682356307681556735546325251709689888073584502679100979417170344863927170837418476675298592319595445533909765699081536048944255720028510176084662581250168342913640327012978038607029574644300193022324932866378374634191115631888982633624027930977912733859493363170553424101456153916134934937829469164549363000749609885260075661811386628647105275494787880313739107939465728405292815669462737660305664065262075401841124223091279447129216721899058766821092640026463369279694617129115295876808058214544290372307216960323732560365585118181674942729490841353015747690988142670438706959042961842375733866188579648226068796760344016222165210578332400777149340920478301264667642568826416361227784054062307131189057162148460365921553377712541375325833427896072345129618357869594577214602806037541015327929837097136270793576743419940382681782960382033020074472313813956199044177896146374026975791500494356747841410560524149673054006374289896905371317678382249970845398462422068778351580558998637641919938084447081797692983920446458118689785063322082075737390107838051918307220411150817222726286997858194001249927311430985647215287179011652536645676481079607410191204766452129767336137778598368576926765539256504405836595854397091991444681948499993487815997443431425547838628663014650309738431032581141051587362033714233703750332227710546669248742102376221259140854333040880167423107741406517404467439371929640634106697597953967197623079439684355358050069196021242942266229031802686452203339143718233518509483209605708752872544712874492388471025928603708803050162116820829745749410611815996149582943929974999367507999115494060895655285897987428359374639978618381478091324596038209821321087538424416547396870232993289283502853813069728704051023824575693038295750400570158727644480968716431098839922346388880830211106426132019870470897880987200807711995481835182048364338959381529200328172895650148616888716947253727050706795848878160756441827490282773069120148400247421639447725696585021769615894386633987410406209500718401890356025513916758360940690218412749291477448944970267156680434678595821982145657895397139268177834843253732680473411802118952531507830412303940907981169781901731101339919137668626484144176181393941359926108108083534679633394983480722150374886120629213897513518975238405588293230069793104747073148999524347777671026387820904796509327464069830885763262245235706598694814976596041207437144245425558847184113236120549888676034722411290252329217692822103293102411456970746683029659116222752823015632953432694095110231098478435381457024995685821580981630519614747601948556924860263951364058122755338743443598172892511485423713220542835977599227298595674065539641976932692417031522406523847054344057990685326884828876518172658517500495526346865042804644104589286091017102746028878244259945853582686380081289154566293572993690175876168653390444621738580597765001883651189035864495353826478543454690617850485503279014124177965438742055073594079444516698478119955884767732326628070734778902913105715906993079695478153586500057361928711352847826133011067639106206859631232257893796725408631321021749898347822736654018830713331681167396856306963899148854441857409205225118592163446884064066060864149425709655398810259511157227424677048860348115585102526246671619480374498120239670716686620093171763619033548233514710989993402330361667869247592228141976196738450809635713835512357331095866689707138465534881285393462317514629051321712264558542739813313628167061578450543034207629852049998675823603836829455183845544923786638990862236076964979827794944952969329223757694705915932822024045329566336304698891490232873487843140547201042631306930525128841590702836713312967433084484851742129754184848464039864435759686816344136859813840678535515762721658929386511110975280704558207820976596776846265655134614195879713822966007920734279319113887392192847607030076332982010040900489744297892176516948411445409026269979015760019185644429167433363731968970221112955753679094838886386120136122454437697813013905860273726718454616060257948127038201275488605678642977216582350128801312872740872095306491777339283324948076263438652065802112545225516594919592002854506192909245931977111325972558618295805236347484404010305410578247931113097534585245858396933283262511054542728247934412391949796918598506018059463611814837258218066207246500549008739946803108089197004797148028364723097457257163889314839403705747370623561889240143885308895806615143214594863202764626606083290357995507679782163603462702801373483441589860222943870075742786571372668685829266879132715040779298233822551944620976742700096066251580635132301612917458967801678282106745527555432274287260316735367238150136131783961752366886034766647696303521919937951737682565296875326394575563234744421305742621824406865646958093410455780916409124839282848423895109791690446234778759285036748378634485600014625507654462006423555157796450635916219727177643588586326138796136121285377357348178376199964771651666888735460133412803319228870337949343115225183068553561884943834838995995992755928350474703605187451164985033782926822921454684583829751090382509955302001868178278946996768960852110292627637129432775923542224875942800188279091135326317869651655535238213075343335859436240174867733214403580118364917042110890352227798788252439148247364234979034060474671252534769799063745512350329164838498356379092169876416951068540828195983715099199863837748536054720661315683743878616002978031370534204214346711767943387221748521873515460767204422538829094259624667698945277138590879948398208496226783615697252339682852751823602628841877959999859983698435148062973468946662516641273513458204833575436239764385808736140025636270250441160623088310898578115486423395260398611957011437422142091005039132094904859058109460060238856504708176613580288888267572080457297941097857599361470399032244764584198856402002018120771486872281162327990474653134162055785052274349261310675938695752828101546371166312746951108469842565380660940654141670501468837449538912984815280240207312354367629614442907592321200921963058654151170668358602662089440222162386375389894437962677710950934880459793308312853724675919960972703747373109085583412926730342234375308617318679728922267724720695021723923144215525863233863679911646332166182890305614715922859725151706423031746331873186302520416181256144491112090309903049004364290895459493720655883015691461721917292260420183225737668681170403572102643042952661580737287835357869419790668426040444542823986485479262042269891496604361297210527810946373929057020333880201221697555933613424526146073543544411403428830128596698792466317832327849837397181167491665116709946127867727907779742822870039705731945618822804124904207854723452978177658228821262592048511108130400370808059487954324308315007301030141146389287810495127103914917668647882406422766010479536038887051830033605842183328184189440178364300326649144003673687832543902702376496690207195501942222159836632157945432344230899662885073575415139378532364245393545165878573378901520787242207580976981386333188428247527680600744501283807359221224014320047101917499637866766885157765893557272604819664343110571947735970156617681302573719451179987987796649356606195851187747019153804320287056471407129106750269247025613525613760593613245019337013655593609437624527904473217161802954956025120345899186882718050011631235678872260574136846770285558321352316771949287274532962247812906655509545497659895936614003944486593514401628492127494061143602355019168156571383007834750893686227843079279941190061516154129602041789385381882653731303014965976295308717721930961792836693635952066722681247770573992903033652269445153441472745247312695162083831139689331527051537231573838717177016774179520026784678949847074860491112771893282889280915679314642693229730406161622374339152235263036010217333329449338149582659715431971706916177831826778269501487196625357195521371537381269477063784359057883962774872421435081390156162121162323979881596403108275976639161537802061168822547782885070937001141103032672613856474225882682691035562847392804148569384364459629056822318886897106850019985489729997529778622373743752279859688572520664399220409725981503029821957202294854356729990729819835647133479266153727014881972491938285858115210356877793223462611764735877250283775153394028622134425290715588260918456961636166872710912434228850224212343940720874380328610826144610419475739314090549931893763760897881689786017734067183377118522724662128061913773550971946832680283293402320561099010466586780349418567806784422485028226430020414945405698992885918848324628644782429741952849928323862857532157317004249161295732288955173422982541095279225929709184207996911339945599123285668797989861415356847886689138179510739425747692805608709027068992682516622766357557877345292313816598718144653050756312741482059817464121667676970757080044738367872119661327897738361821563027357898997263595614750571802263461578519756683799704585074491911877378018610091004602643975168705504477922555267048374280514964659575286144798966528876607458774373534679731889794762761398667129565622874922176776442846877802811837636820222143158330338085685542815345820042586105263922476162785622872217981606407834983539956057145217375104010036514052239924713724797028320198762462676567686823739953708333377989526654189808161304099982755978565472785440197569115007608291395985953844676640178635366382845212256201857949113902333908568341886832281746452656697961198516031752063032642014621997908470441078109222545522750233513111319878381786563943763700251792709476142849419763797572546730324661891481049571787391880116833936153104531165849364520230456818122195073388605272115867071909425521182285219081672686609889767121548621291823504260333599815773371729691086308834649038864258792759330541964254985156878738580937250676923563718922627427420869862712376302854748325053831188701119129884964567514517752342829065220349888067703790256552732805993836693751264554855726036434238896595681632697208712718227643795568380130930043479088843562060568139902910488380008973927649615385402091964778323205590079298921443227766224716098950111589504534220304274563421351498449879428390437684363820065037674647110890047032676832412986136341194760553156236957334173639022457635990033417292282916701323434272097203673231932053664498289994271884523061179821849124650936758809152393617435604621394385954779223078119342886521170265418034391704152329952019074821394270346182515101297003508036177459009204677139486503084062508177440361026714976593459059896177816643028359182199418994542710077567757318392014671381419542843478224225979225246441862755572278955712403840181347486057860193147217039975658371736340138834479805894688424163294516099712364853913702930141970467256722819197847091917041336283657031030717558955953581742987776607674819138601210906013959170301503375554316757014935097497299855629021155611123777304732635628720288668341395511850640389255974257473093004651063976555228832950578499233515826023483652988483961752977556381718217964334862419839626134209625842204349985775538121540376107477212606103287037608697444551897990648501050792030745750640753866343014427530341963808477568896580769158031942611630313585647628690595933596809614957049589661649608545166080775405430973075764995087851717082262929840075257560402415352972867953728007776226420554181636434756601231370145035727319664293137793017188136945055009018264342137838540628448072026414168505225524426917521981452937041997383952363324508043314899667390433371348947957274988985385849368594300857255823149284877674571281635373611735272053227180934288884079912001057462594164395383381943122718633124326056786644067831608757386753216543424325418810332224548391508660142723136820325213814142486948607187703419685074494361395505626075151258355129916082848466410946566958494273186525547131211744495806750822521945451569059365578084971726634108648085054464376573130550841449100096314070046179722811717395583146167112100388387357258665507458618386097086406305403872977464651216762917147218278501430094554816182212536477847451045672074928338188165274606560873638226556789362975455193356489988791241941444788623772351965095336617034224025269997347067954760336663747652985387416212984028138550693545148016511718427324770586285579464898300067954427974257126215975519251344043473771477967968213064054667898506169443038695293885599791305462428713338109312776865847035202890741877874142538557501890350870519292509930512237721793882351344224997597477953880674305579897208316741434674121470059864825931390362812155926350404270754768617600347965349340798355029030697688127493859448640843135258164634298996146028526444545118660518815445021384256768102699880237526084847928373942822664400978229113428822217272808187691561272257368043224151689548588050193956326916599893232395146331142016688368452527824966000290865587567175487152018618494226815977768616133748632224008301495615874365338555677471144862102484775682676357388508698991918096647942952792206202415085495820135785871985062236086446595947921461018812141472611238956227826303629403319673481997570826723696938735329448362239808820840703771178207802734509127861138858527117260271871521357439945775815739199519063836815743030933850200798318539387176067479605613235868845875229693044089677394323745781367053039568185054379795320630776717488660731811583804003882216132961394481749997885508507417958804821624003961846206969561319270270840418192131561264948775118006488791401416211593518729858839170215080486250726890912946583246130901827682777225621991176616244906382918875080757518745233474116896823343501184852850510125776620352248885312374201134448450240061271390554898968711311479354745588218520046774810070173768002307040698199847064487204715931202376855272617490705391854071329737531449967736466798908699447043008038059875835079260327461478644264523491154329825387846509155087579530419783271648494978178394228129149797108616567755297543758617992186406954015985712750044157890783031124560579670208954383771141775623446187637000934418650896392372333662589843466122547209050913374152310667327196454350976433436506422272932290199507529497402820993264580188029077929100381625888907944171326490475460834940468030905442685033886500768747215389440030956129323709588625789726873080750221373865859063864620847207016427285773107648346529261865403405813067460546882231473043308091003002452987148874479792532377576136095995101750843412448577939011714497797250498593800683817277380362105159288850426188500166577030942350477862496462767286910484626841528828896374912224063213727950897332573198782659347452046081665879974078972778910033515294826336444614591699711834218665774614927646816659210515255192048293605908108626603663245570966544117612594934515666316641261344009032447094711239516320949071609907336195981816244670195865037912629450340177809115492099599486138285002008264460227132743781846252122713735034495683157641784429193607274335444855705771382529634517699182710165662173972807504628228053212939958745380603188670450760201795667819705148554718267086763060507787185314459396159021598711073143995682683001162969313174707572905961935730880939010030413155675409863272917002557087711148694110835771511497206155386116857858240128129019788560410342899483675536503055756536293034757575219173438141507269160424395769411884693807087734884281571264385903578425772122644479474231115068142061721453574465501869894060031237316969481504109556671279477054290367237824523845188106996806249880767733440843045062001712706126294249341668039903827518546414536676443497475266570965688961559353128774975292897605719364154043719775429543087840303154375604067412203768246562290295326805089988344121945299346251837607424573885749452562156999581677380986908429153357862690001524330717725582198225413407557950932354722813813067423484529848487134771771314189899160288437706723778261173055122651923949465337484511119903720916147479949011113149356497876849707425380333214469912437329657003144225158473310451252958080378139438954039045348255551442751555669031817850919758153185375846552462076056396392488673942240061793558305866707980250371117042659144190581308480657299785799857949201492836314491734868515432329578389455620352562122291285086154879999782974989798250883362354851286462087918265519606985974587830451085616692285618699195984931796449216926475827346330330218133705038831639980701196059901383303620630642252148581994135760586412165819271524539727633592598119653392878200915169918820611599518362526439677759978782923268441296926561580472883486808203996683655099608666462734126082540269697821803848915975285774967554163015597889243667766225932885035826535338830773539439702586489579239739566852151697410602466475799374406409131736444763299307258723436202506203922927690686138754523951133731176524502058558630067036587938627707559030883292941213231451746233539252063855489798946335385696555399934253829598594293031839835413923440697502559643923761978845003435556127956511305577886837578187316501897643370902148289890946588513153204505342299151438676790067673948281427713165455595362987430555042639731916288680557713823138865475714717986050262874087364386576956230330003348576825564550840467654751006662070990887787632757121569554246364902907646328457897879898848488708425060740524285291348898057182265101930248955401319502363239421764703257203155181139655118687445632648125678360599658141568522813190138533974513241748959202925092239546946335881462077323553303303914864092716639273825547286553237611018566334175057929470191071139047396180601838447732656093280771534068620767929688791622858224391090685328303195021796883277135308465931727321405051292550593469870801612470854472887785320255831358777798213649444144058433285290841612017765491272817210095893526776060550108741136944156995321812777061841335060035874102023099147611135782036188745803135922255362420875169638461305610851205981352389329213839135662043301077093247643696036742608988994400977299929790647187669717035702655092662225207948133402544858228285164857043686421270505558604537054602676421738259801614976309314152267013658400682473786282901086177657565516277317259315406177167439393511633851648619935503134153921234708511360401095103748256983311896167191802239416312189225392808183115747251479972442267866087152108954647899186874469868933997481370383012408090756988019999089987722899399919718919192140590697141001141292009390692637470966079403858885874658269716246970843833968007526903169935366070624759229650841928843571852848087768203809739652571015613630081076816649713577568322046403455677321350088863210597955164218260470235185636996019451577095864135915403723788177761501718431867322294845787981349769013108903525813968234135068830025027145557446049426249755654501671895118962352038097982241025477823822824194731005626931547765965813205766388281197848515358618465929340089912897876737987241901471623585987006472414113136617139514076539922411967168729009190095762889753900595082179620858072727757969068982609657529136324943799691669509331466295845846351562865544368918413080099955206899426054921825811597636803283333508152714215961065555298293777690721121782245464944539358932454938262067296385742982122126222151730595753245074356774721527966344895377016100012386598008390223068086128159893984779302906658737781973905896044929884564843813639073820626536594672358206002269325779377817748510591301971076358321174303020961922778251127668515053495558815622154560870508775867376385830980041341130828386412901787492237235296838076146862535805442773904103114181408688425437867221318326843470776680222639217154185791771527515233375140489258434986628049182252840413507665589030389549028987346869690823000076926535052011521597474728349396097171053798785182476456401398316248630018594260691485955784648885645761679428012685702463635927155820083050027296780395566360207200081141581485336210017943042033240179444308486020599964218252816940713562102487484882125293053189768952193561943725691546471081428856753163564751431036392027415777516667921740463442115791403496280139168557692378253566723963843474011358893923646326061624205778010606931309242175065471497992945858140766911149723726232318446894074480215575019836818551318666601219745576325340203283662109240762872867868903219447939088361909608912425691267706799468843526552620943780912547086760955402258965597234092167649095712183134142549709914784984688407903304738303064586284587044290636673587764895110156542428812446062026853615803482468502120937192695375674120096426540529209148411726551888704814702734779934251658809217354892721252644889062639203948402165086886949358683575586183397059480957645715390905571486732741419570193729308177277548376204993537362962503964099899824540526448509838989020285620476982015345536413337580050946602146343032563513545875781195275770478592160507646982183081865592019310220930791616227312341639749227456185755123994426624834000608628699767090970472006224968787935226032923172735714022866588121012987158274117824210012727254640772101743335368209806177978317985129434760420309842969223228093760571815725280539746520235414565497016890656132902777279074588929130103004973802266695201075645944067286997729605517726672360988192927113611296351633502846152106666227085887516528156552393863205869819872583753149870518668530129413083877431678676986529883035722115582342175018046200431378008840987575532558068645479196715600480381865100587288531857764042071118156470342850689877215258666607947012922775930006561584092595887833476320421002638082857482429253983413105749172040390071913479143566234816016846784490410191523170592383290293684908472253088666076304054236987211360221319626011748071931314187104092826554388586487402540132332776851472596490328345985333229085369958483733846690054276992120441780737087193870421798517861058174775393483715694461959817928403778220704771473600196031435597621791984422060345994022852528421629187372507443690873633251391033536139980058850592030314444069792335525890769426686370072970692020545971336368053587091542973826144473916329501067359300213490047622408776770550035091661293935983728213218502911756070372502767719096511033898131458988690211610419350586886657851658750178610334070140017953832176621062816629454559921294132254475125487521102963549806436881159838477767307933437324523942372399379839562731056933032569786698111838557256032012185074493057223680340512131889294265880166685717481057915747773064059426593196438596600698716200737173597884092566743047169304287163254555381522320388568025129057729736791179291959297369670430886027593799358213929717770016458712452092966045667309015308189407853821278519875616833963756963458060992744090830600258224282590882278572649100562006075939180087175495955875260281277651917694168140380963703006714033735479662518382056263025716978359042614274199826036425748319736254189172409360935201309218478054708242817880649579299012892502794531351868497306353090747952557390313158295031696311496175355699253874712150554847219992979395905906818078111299808924245853577082185645932586729603040973386191858601657643780271221539029570859345082491111893341149617837237080439714577390309105284567976108253883508417894419230692893674060674625862905376960014815095014943505397361123819263227971962042213777482045386007015001155875725592226175217897520962069693184487052808368036181419137123731352864082182186701836573845252577975240629219623776265842815111747600707283903181495037423858794212833289959277358464597553534087186608679504589715084672737213656108787645577774363287348262555157433537144889959085371401449857178535605770345581441396684529256794517457478901192815498501490269234767348269802222530083378633840819459796687021458969874157853075220185519337108442775308770247276850596067637545142191288841112280617682427334756642472237337753163363430806118576966412957691671714053217046834901469700337079968865580662998840028347273245782817767494262216990286079088453980751336121862198275855083392774531042810355460086262393538672433579150991490380373743820869144218925493138251170750841986909795186505651546355883509371000257409263407782939988997796098730935877792158544967387234815979126805204137729837968758265550302966693198707896379127633973609735648986715998659120660571459109104535810999601242838463107013854842862842373768652593396292160501812155305203004926047807928552830020740086638515151877881427048840684156355797825781217640721861210484377047531478010590136543410285281363528694142468957299830332577395081774607428456133370014226708159623437095663519440722131662640175515844666941948240030135506581559031896668465549296374422343485748962916236160553237324604974353633079806082378230338541901508149338922193283020465146632416416082627234616016670635573903431965755902464986969754850526066149554748793430802450253734274081056383358985690533778400868571218939995424174629673720444534475840887996372566033841580386053735774586708878286818761092613274473021462596856283839638894741113447538129416945731892964157511055090166528391055039473842486401513115336108114782488484295148392647887743723754525751326642410833818363700362654089281810412401648013123911585742658678794680181062515911812280573307641676520800961415376636023716004056339572500812947033553582482868300728517801616198905761484412172122484595019294020985516880067804572062338311585907337106728048239910465398438559937071626283786470906348679308786711287580958495106786026293968498149293104250919163978527235802811860043912725529114393153974368160321973199566431210033550282146717969854144533020493016581038039280279616257020152763171228784696361602651350090919356394343303336401194501585863656982761209169607882138725274002050100705653946061714322859436486925452130749593203076477065031669568240393529857938280033277627140483767115609949148901494773277674024027136074625308971049346453305912244632490252313518070216459683287457023470351102405804263094889541075998984843548270997178780437230675409591305017135138503875841381308987325385267480559348604757495457593197376251656524242159636155902444139352397779146933153987127390171870420347867954589730609359317738026157598561845319604797611069075494977850838483954510597038635232211205498891298319328261283013949069485127278454394728774423924219743570330389209424005319262862284435920542403485258898734269219790442807835171108389087642678217637851658027448551344972604800478780757778884551129468316978317973523447901783905592347339814054911863796459679284151298721383887246552683146020286425779319052724567041218178135228755979655264355603402621624509648856473218193904510602212809536254099749853365600107544074174961685359798673424539934766251717774843805467583074024446154520294255116373056542535554515722692926659988588930143414470816403683694792156915316653411382591173180464717326847027983284549849205568668801120228287748396556256028821202828468181028189485757565169153245796883394786979803375568858059605749681175292100624410447905955561215123332556808843659354332077191547879738712238991637070159953365717403408851924612364337942076773880760880769512675784689122135229495304027671273981340906962040029958395453768006611546507422300912667117318845335262272036939136514371762399527095376169410499282665995197653162464954248746442946875708101266798596734678601730688496510340284292966416794071428339650819759838330026095640596965453984414177280610594081560281769479394221785749465517515310130579027570270846617559422814696504623024252932440503214695690819337386391481319261355312992939068879394549870780084608878624463185844553222198908437773847194585452546761280652331993441882488397201110082427093022518293662549951580708899907636349114444972603796518973963514026852192594313152373644651454173582737349046751386846716102948903232314835855526678039235883163284137856172130726456707490403203434023121028590597425376910183140021099197805541252058521612316018028623520979832350613559135813871996066388466162194642548479350166752319255303577816540819419959274597340744140772803016692076715226151009533375204250186312708377112469478006026325721701409177832778829783743175812361795632444460531415795124035779645762060750158668154695028626038430581565947728966048370496608590605988128110222604989853608795721624941330455720471023165308223586332797563168688015672541372281627210526985706171820636141042083953414859397819123964308896569819330280275602887174156428792407877591240244137182277600731964953874056827869357503967234089519319636372153781931166301655819747274637075948189343250733752892786654010012997555394412513620062815563064082000925640178595118531242500602025004783354828827723172868652533508274671509318350388666099351242092601574371774922318996602534814255852443369414878167651628812732101028006147785413191164884333698608807909147174312539179520856699176451925508956459149723457590567576116456161130074707082901506185410578988522387651969972811961301610418348537090408082575417788390243612166436475554294733232839308777137686487519804698854929892391315365760094981163882245300176551585100834691350755617848991492154028296749932415388245330826974348693877452447570064208403300117325527220994448603899199691108874430457642101984578604007872528747519281475593096021090285925890286977561900439627508231947653177773858058523466894786203510952487448699220189233982037040475144859836448135708234886479635706955703217694797316607212325286153982800232302829904743189545825987374751038901781126059992470544069995541832892101064126982986019960437516688298910037714430009524408856823240406273420672314420239052718600621864910261072915739236510181809596552639752710310961854904795963749502003910669193464142045500621839068380999030298782135192523232986347725595098457862202430379492975421888056279681904057263974389057747277645251301858671838804209308433107566331898988239166179145959268918094329624634204001946149017374284405579774096470338220760910122646330663622658200800556668783307583426596747383019219847009192221763110927334134391357321498976720085961571724914910993460868312308359765655545058103408869366563245439751891566141094466599297585868642122667936330263497482265091151155228052894713093418282754984809030893534588676847260029945036217610268815825883791735968800481445180282804349764164360571407357708151627331255068305513900308188843905047816199623084612662705083188839678719038231102696816563946716125558990967088575116800240187224003049452226090412703630324706918827487461035279672193830719105442757060028105488056700180730056915323305745900334328990504733139589795104775144130135395814711032401485314111294981070564811198727298117665994166719486624256937644501207011679359551365851555677410445000247897542024121118490179035478354163055033082178069988464264334452893934618848272843139119244523297469440728565386579211547875941075022531319444532579330691916299794093107480934038050133055338809514532380271050449639436509327827790454968861538255377487620427105087283719924269903558457881504014205937694180762026033019863772923078625401167350388549881985193245187748411141317006702036525065674574277844693577396506615826250474638478794450717899343567031050884466896567748221306055801061541087766833865909280878109408219832994113642234895622526766553835498698269198884086012085105033154290534007395915931787369510560500761890453786946611075196960596378284939390554053646435672845239152864534451496576113113496731829026796289342655162993695251499846785614438054910984316584377873222359679789805198361835065411822551323165670533654720770856655821699747378315673823792982876721458000623212183413442442841428101844885423436779837482580879495103902762806165876190254866859846282551105825475825467252222836272905352445631208000496075496235717323624168643767433177738202317817372514911043396514783834507783951456038449932431057971046771339458665003047971370756527133023613911236392079635401084947665183543404890295340371730780708066380932530087749457558708506723543395526520735257327908849468573145918301340458229793005402972145356145268298571843436601171360494238287525169424595429011543922990971769662525723987704177943082339858166229241889873742901864939193715411195473104801188722178692758592865344605455587783547202635727911136867549659758271070842618181309315302576859892832929862421487115877468161945084795735504929571636227256713554750193617338613153799068761181106490106636196624402264336479308254922842763806919598633682811996541476656296178701568812439175730965455768934541631020244271477260309348533794141758620400094617198001509069990338817476350511519487571749611162996726583264604311330985168519794756738698204633072844592039730189701957329796221486688498499637837844308416492229693022114281945057216589112623417482565135560792565295308113147958854108766133274004868270889553580928050808611464757913971840223352379212743429299087813904134077353606123200566634554976112236946059354218699308970259963133326032943774205898815751770350236979395810089351883139090995175580968180360261831394270462098765218145462533688865004194819709039768675499644413154218737156264032634302615221437980801740038199733356373736968609731670739259729625460275155969676249356798848533963726784527854222065886194774496268604675728866400036708315804853650318857784594392074639758421611723266889952153983157231517906191754333964491836716320138490084703781029826911560266657681200516908588449656100651562922125738637989938424020526646873348265359719661698325403830372031066614462273053074439743000548567458116441372582433636753439010881971704861255262291016120117405888061317034368165419856968469562012899521071229426686591287991450316351083727376536063779847502107418646831901853566433164121161606183448144927726314910815550020492158572431036690278716835523411013944547678265283294726682058610631567798349865194879233050134602929058689404161226637205178986510445667352222283055460029120416047951263035523134715612367898767777918220198936896802519220361102807765295898260827421150619464498404568443706526797142768610757733442971706674849527978322960016409789042912148301333434794574347170357373535684932560137495255015123391267411259675735516789048285532738811606507778136308835027406665375875135801273508469245519888737698096797538272144241330560854727716844320882960944145022268029332545852283588293441870168664763072133622830298830131475339752571949985700339890579876892209579013287462295937570650557993556569677967402185381921189356130901132840630038671394292410686344188980545006942846349902206325960671341680285161637120309558914769733293968741743987138058741532154952384964088022242526222296270660747522233648233294725714068513194311373503800107009220568043102843311251005068860182044853900684343833254826503302879437335965046977692976800567366259369950164105719569155294829555248335464727175997497241930297890418414149496968221296764605734234898731671600844886392900333604456773705877605106974253803504543227145730402636497310357304552058456737576106695839432047372923811111183297600592387636306645738289904746475121125957062209268538076752099818334492741062275383795104790355235197312234236489843525572419417662055589608722159935600188075004004540243423354355996026028760928654900868614530744178630340361541446113043764780809006576466346423713881560169079829488491864570702949955721682731091962160590637935980277537399420071522969082859692461772570338191923599230085022467927331726176996274541578232042533177793979649251452324863519997362675719174335182874320724294850890025571652170461186093286961607873548671194344016223085456187181087035162398499889641306928627291725700330989340559797013051457907327953132664272826322004111797486712694117375897531180384755236883685817810037244437481115347496502875006165669245076096716628710682840765482749889571415855151263688435478582916709945554956466087926640285792048028435499134294404390404674133540793757438092567173123475282690957213196953563430237992753225637078749054114306740721718555484622098824472570764898063756383855053831434569135736529472579542378462450782421193891893873104122167361771541713533777715708449192502964149645340102067409761136828568792787570460545092357698887631839131703950562636106832836255255783791986850919606310661918964538114969470254528275229681822660683394116715858527894576329498999340949567224537671095580407187937354909924734517817075927003235246499956134043858368104836047224460917379960795922149800529435766214702508851596889890058875109970815824683559438174364382262646584142750086405295496453446572333656535710698137840803196671178780263932373850732873247114571248109559811971090703088043003300924555711744384031980620568482936478454285735543273456203173062601732410066033699178540049005920427893396268950469057145533701229566593201762935644158676316700868603859080256539514088931358792055082769339769326435227885988409259855921719052997717109397768309173685799574138897582823051710130551676507691135898502743594424303169689978955961986706110229943425246616424420852616572343880562974875757432751572064059616978668154900425614929057338924566251790352260201772042101641767030495293767183981511025745354052878760707165133916177743793946974954325586933232794049653161731045109576477400582514295461863718960773709054503350129997632219468574857500387230569553607585222785263446797022214237218014822422520113851815851206359271650861945993409201922969878550527513830093725277308465419534151753913844442251407193270119067919536336151209854896494097191940763855527708822633931579023643325599744978357923058727425528126804365851569190433900480487031872611787830190294621733085059657129677844681255683376990098916526691700735608104004579945688853568917359607479545295612471068260458301758637803787835094264935743777529138735286113086280265667895028182310927276475120050959038544983071605245599189395761684461974250414694660547067608719631062454794177337924706718555543986699347860151655727839764973094328499681021391565788652430946808188376813117792525947481677540864252482470862235622807903632987026482730235561229778508608790799182073982859226872147745337100621256776550526097047880488498898250356163212222722483517740651885873458516055117898886947583392223049431186662581593144109480423560446745654008628363328222237947053109526975319084274876022823618221871465139138494044350510893721609542357526380726318156353948270749890522160883833033719244912980958924202336666971791242662431418375087187639074555999341272401851141057940219703923083905128343473141323162751999139803958477226433814235965542000566979585318874575113132623819894790532222133767682229462629569647527437325032873581870092164251796147496116460164134818507442498896581712995043360365176725130001156143556910673592128876852038124797768979341884406126906724118876457344080108818310574527904425946262353834361937763572543365882778005938780596126686830316674453295965255241173409591392821344323454904503902236849403116118234688302622033491136070894341082481967322405058676044230132810806540558624223953590566161894620294574722804734201233863787991229269853588861926764874762124150646316497710820760854598084465601795232596534711851718080508226083201794678737119682365339407065706753487127274990223572556649419316526712435975255262827253806106792585028082832157513884609925568794858004469754660394625338592969566429983573730421311919359080874695105337865639491256722230566886186800268762155354638712173619912995270762585283766716622109901434232117478854415117580152664185119900463785997766310776929890749559785446030463978313155873960581873855236170851359736829650220249995707547335191178126639776240052536349430769440608843967333414922941732476337725841225853222143649151604180182774620947932628679145397450597077666043504525671290714270774643596295626729404654808141130599085774280570995740298058297375617134082096015784835568547743844699347553777162779426823347394206562289371994786130686256387079162619178396753232960578597978967709421323711718267509195884106512035782691854156092554871552348890944586683328577863521644668385731078159788819437709416933989296038825734626045623866948146199656001812178651989786058142053294771260243147898730349106973753449180632097359410666351415058568951874737981191950415556957996079112210057792390792045220407106769515744287629026864626723559589915127058704843403122025485268030732829134714783212465526202246746856451011044408189593411082972726756828818810765891210972543066794780173350490261625623912609040866135688525938696465292368503070528517553304538470641771769637949502645002448796166580310803260719173977601806023586846056593427104536440650360142077147181096535594546657931934954079564570824348153991173645544251857280937315077580693992414098821008184279851296076833581584231913706553246767774691188972848868499804130664890295621324196589567619837750183072737057554511806721504781760894431588214578444235430937348599452876984990283116733903103854163383285946730960053437853886577999795351093305338111236880588049135357626277770855409558295551540811144323157621670007710488947536717549610448487638741485103977159811314884466575387742121297269586107542032426777923541664131601071560126318086388474718469820104417614270269833669193801102211508961785531418342099115527922868691295932310600871521594298945193466089521086990842007733458125687740520099016961972621062031398739450628185539690251441279847397935412496565703165517593428341669222582549076289745607997366230572822159726583962620115996608035431602324146577093016629936092974191961318946809478620815756534687438062806046870934472021466722728301316835239571737358009152479653231059029741852067358707989772005567967879686274907412029754170926630183056049966556671124484579482159666761444347994568923278630846251049770339640002526621525549767821067923781639916190430202566853030677439279264452437957413961603720914288050230813029343449248838741462081994810506443635421767156917267194824011101753431070219840122047592146398424650100208930439214874137681873475726380868279454649114838708611215318163442966240012017004873468085345046851331999223423560355447594167697021048495390944438151432232605195884050693045216070896466010085308696576205499000513583424938578497958897484340251329137073034775815584656643221239308914334733338919432746417333647837514914595687575273566748904296601595838685700851009548899728862387320363444482031232884509195998771624858520895811504253681204562094322565571230235479240604761611214704751812262959097123230906015564249737389720836987810322371429788570981711928899318632545940122882132176691738267081716423710038065553004669572170309850194291665483336187307845458555085851532512075364547320306339687757514301340621353017257972313720768417981322663415609792077995726321451063770949711494746916233763259405944835004133396229983068988518369297887240712498317080243406385228975590843296668302542439019117214658953521094431687693966491912083046858987629636944737883130926559673377960644093671234564748154683899310234078806436661349000274040665447195833137385136970978652637709706053289973276075408476300765020324403623020154160563953275506488405109988143227000914321619560659506151647543996756795482443033468178995123874335210383954743144305587775762153738116059775741494192553773622148653343228722606196944937999672104236685253406158849051638137973556370162489259417026548239844156109575598687419687686816365010883589015086533893812866921613437010344700984859788497597593404061473514158845826006230095767744892585305572383678212411892837979911180267852958090057584581081928671159764278777237317401045288792508301850692546997997999179184984179925088884993063633314717482831697495372505711057204559890944023594926363078487387469228598187386017542778403757504547714675395796682683750338320212004657578625191157210371090210744047187886783000866162705936789663839326481133283319363211641812130444782191850816031070833599264684474612514619631483047643943429128895611573435211509239224600905995375848443877357289491457717437262408827422673017276849874071834905883615349484544993217662280332135236280434863116034392584967128803563505876120071936767839129641654296529216778239006352306613963675562438120095129403540991247631220281996866417433546150792908274660775507352461165763784706622530563786107062670734918842185130977129462920364840109012530862778323927743177107469656921442135436065866965764987170382837009259271112803662968590400537282554581365188103778642811944559327102439557391720662544017338427913431237616023343429190198408787472640855136855191878272646090019997205007560754844118360683123092460431427255387923635409795904688999711852723870213029083731301545033768677978712146248273797738386198206331982643522531067191144233936260208373656157152285820280251317692012631913332903660373456894802562396923769215039975799657396122176296355858285219993417023754563776301489395776663916152950127171101495103485051333169267743011340348663371003169284458595672954983510419320031060483527990829404476861681661624812276699597810993689447152987913217077519635818221696226999381696420653674147038258718918472083052581383373917320841982414035234754864168858153728763317787738404912655179642649227723452552098113345665356454332400183557527181495140406708134950728023461748739482828506991482351572301574677797861801131223546215629414496403586181041080653794901624825760863555097606064857213632730916296183917691097970299211625455570434946996388082509100274171919418759469250307422482944234242580883539542891466046382119162042461018052480582151318392644717353179869350237533313207101502084417692422984866228451633599959503227407599691882562012588926676042427224933788186211234443803431586399900358226144392511613185661325624531297071305963871079258314311873180335297237010457021353844681132306255668929508567130228353238872267728027519954839827276579941160360346637663506772705341047595364321106196754762822507200497149739316172938612062930283309922791559548684762177397598081247130804784971290673050059296615340812825348694069470552831125562666147176919455601980643146858712767602855031106090789105179986736120378330466071661998448444659001443650962568651766285873665734410380864141996234974822795238114247157851355497115947771815171597450118588414051921309459457122222032821480565312851450726099309695922687312283978345708276537967328773919656201972524771470173409894045507943157601412363084002786452692408746739436478597230430039004682482122779630446862009215441589624356772479952161862706339274969687737579775703801510056300446853819987376710483612430853605894224894103393124151152736996896984900353336097796931108177622036652351213500147383097894030911567007212956651247857970021037397841304575876175949035372797521190231516756361603381040978777609397310690582916244454791070162531377236480670636541228119274215412123460600581995721934592605553761450437557361829256818474454697801722387380928833642987188487315744081722255369794731316145103222816052486948128949762221295061121577583784574887780282415032386775490840022455666083220718367915090771971451556048669240031433851889927302572165196480684804076135305737053158534086093526004752253927116740851279576693421952785188052282539533526125415070982300995514312186137825032979832469651761685764253494298834550906916398972727972362211924998799764483041502732960903418925780961169366218846762937521031261126995279166297155725956607956552312478674529045367390990425890383596294300678617363219134781660233775463507349326543345013280766598298020038000232206981919623038306137848768962446826227287266434348483909000421334627471497849868327622076814721958362306395229343761014351768397834115421769990812649626601752578421617131444685614037716824219473307663804660960904021390922003168722759237845721714280707731636777327007129106792022412139922221968261167908819557701428608002240557779361040414751360001498620705258770033160950032318671604162264908279143060642999274946130440766880034461922754831587265648682067308662677158200415073907007117937304657316158432304487958669704331014189272564841617122192005376836964950433052715037961501432766450474546911994599246896556533387651820705815071116153627282338615212032919091396311447316444673160330042163890144898231015350066260799091692819315842052565496497011777488910938356739968643562783951707912849698907309635777442011785084063749333901563205161056751776652651703850600243241274182108551281183188937132359742129773340588344842033144779164060183555606085549134679565124389063954199769739533533684924393791777888754645955730976300794034953021764577186607412968709068944131722686746260266596609267698314352713807359866485410666412665798717561565597583016443205235027500386216595708978731040274059804242904787789880087504872139695112091167108887580997041360125581805399644034641812167513389629766092206638815775878884143361664809016979572447217276653080238006839300155797991634071647878069969352283843910524760442981852449229696524485793801774613110213196732549840128316405367203272078089409326461331290045183320999564011340401602092397418179250250800048350592633308918168237477715930558879780646695620315826202109895738356590841937144919818364494257903362833045419048464581251309900207785075731112011088917375136548614652063509591286050722092160149291324498238598720613569070526605033407022959171334091037385113933776243860888597517421956072040664495637958861092703954095562924603436592397155526222348224106251000050672273063755682985447792129398694690169646038483201060356644740833657113571313707767909028678771628988384623629015481504883381214656396285318482084966238151822449733928803945552510453006051990898469491641835419176459703948477906320504762448997410984479058535059356020849506737339326574573589610553132729713591434506101041035581308106574325752580462214705251194822687802879751385670686975472070421767429484000185414446303998684044572245101773568473265980692241127192767360871887698605445730281455585214004930685660049982759627983299752139194289419590289086287945694147004383542762958945575750332444861288303343291673577570181707408219166802157912231885138785789870489949316203358140330065517871002157516498325656312310181360729633345367884991420256525182222094733627712216690475131233091856144884034052202698282205466906213539524062792526587190272107208784889859262047865878516512709724369340424429969829200688317937214916251962031639955033648883081514095889011667377954351331412404022572982343846693361414185500789431475355122959427666563059838754692812009628152213883911984716826822854363389403358721489808646611260364380481021167573203062123445640836133922676834312084515295806911651464314121520068708645656695960761920204736489306947219078056351037982302211687806488319029756973721639310181616239527624223696061711574372959301169916181032619627092531147520910468295027803150488346188213483098912763373496004527747916019551382304284889359440066720771612563833897280890370996606520670572805404241905239757429441397745134602590096565392069726538678410960721662884761397448556313093999131995855727784651325753006835296309130139304423679061083363747148669856655220397363264729457764571999864306091154518626290169637424165689708803245619773510041293954622338150490164243248410183891486177472022995100685483981707811727640189432955531405396167880766181573243336439733051631519472777795644780282132812666972699226577015960388268715556835837330667972968832848512898301471113924027511040538732830862013968120447318977051943501491264055859570105924092384719420776168269499192989099113078139255210616833846480917899442649181433020056026700369074572758365203866705325611200705200582666633619780292791909544930926575681675891652890702964583311731566515573566386400272184965652541428705335324481808641752341503833244374529648159472772195628313894628178275236529842494835673349509084072763059185041715991024171034645974025267382318465012312333532181629500531042720364644558846503833498482276223150672126638103027067615603108204650614798716828708698186950838328025365068713710050226315555478734495492074242347018704695249250700671134133597133452200370336768816255276608858395850075772762108861764652738278209499620104748817205455209676478684513935370744477560325201235786184142723724599238258774299169404813378159315193895981003079925025973400299869752964078937115083535157453818478143869793159147633885703818320363459733194657586775190594984633658572155955944451916997859521647346985767241987025030531584781643628544711575247741431038617062075323529912365428196843942940710733682780506432030217038180373303943183868112927956760601323135737120843496059726141153306841496792482368538641268422063874020441974992799345382710923520738201787279040563589032300404120879195658189521585148139183598324984003020585109603845488606109196447127586135018479267684833223358204265226588640369612598162860200430054814036723018449500234605277621839806146493438886160737420006422704342960381346109562677327883432953216153103326790680011894301602410410433269229172171600799727821954005710779267795184662713564663362024262490105483799244802355403123478182363679949149356881288945887698626687720145188499485616322351481250458530900229529110565553033022486102129471906460028397833278456117462676642338277417037213861357397029068903676799515852000990172304473706249349296838258955519217367100232603124938324098487113827967642041687459750477999202142229630485809909826159862657747333078487252620586822250183502785290542683067188794899266505746472494784106529282840363029390382472013564272468382138567463938374825815797374648549112823531462448468186369120342022216636667794958678163354968205147974185780134107943306447572400384196944152924354108145682723997524264325156189490324010228612503567489609439897697149972013577256508159311965602949557593473218241984370621051467740074671323491033442323949010983738391056395837009752856446607897523211598378673997377649371167017660284629865698385693738845232035051432307202840067814067373586988919559528109080387853028682536405182811959071804459193135316249468540782413634115155331237707989394408844922961941397190072500059802055695234843014784243023900185726982265180059398698066245566460193768469107473828185996114157410261481502355322283099241416914015258894726611773378775234273901922837236551110418879291736790835671180915025607635151476630013824288958452208257606937992178055559263181942496650139160041743380907756377938756499545821930021733418708560368955509178997280009316765484351590271939464673442556956624449150502221920956704015464744906157569049796589532619037664841529957066910518304711976415134114817121961721514682012443423243988065702849815117041794109975627903209457268664270136420738041520902826413545163693251170518339943985029388713353963442530878424055698051763111377239644640509790429510364673030442132848159895309524086342835002105544670846655182004772680090929826565884856019935271340294311523709203594463425069634126988320263964109907343970744776428184717957801866043800237999923930157110941122926128794530225988480528428649661899037410270474133787155573957359284655966939023540381610199756737817018176675447084754040017751888324290595633890690041654004822032115925497194603174115240897985011922836613475455457832770143443276070498723437059734921172552548438712259602760472333657938936526656515113844955663791680707776731560493441126584411905109774013651823063012568040424288746540375948080760276644583226886711410459744730253507153733783018732754479738378301821869922407844193269798817071882546846914571950082440154734635328803641269740160248987599229724382264182983786102161695862001396432014992001363255170954849988098489744856421923608420730483190498001533029280207257791384524056283936753056200040680287294386742535133366352157617828739870372207362402158489078288372605625417689274235432423989961539622479313582311235729185502969217526728478636469842024375897535044310686581389966959505450759066340120108636364767102258716866163551827085703181892559115664646177801037455974488475374122544644091133396583054475604337051641096492890859718238792945435334769792327304599039581975682306400082723656241922501318736483678316233433406848876538283916094886983874111683110832361794403527684886126216374660176004972527709379922647485074558251600633128551743028399799447066515444354885302536522286068028213961000643586157877504894622104629381715841026912570787076187763998269359424614454305316549931866551559961633529486034510497503486723654673302577463549360224441968312823962052884535036551427775577209889564470337417053754438472459402186223143208060592487566881403068509972879277748066368913002893976351632302252920124123039189271415183899305743800888798693097688512042807056873929777147560045655664495122226798351386895881361799147902843687208143638890040113102985144158717423892638348803066679743368767711647910933774008236057129874660126050096552277415869843561251151074085016492659092833578281947141749091088362779776445143275221049472842830348495559641275798261064963677118984099959095245449719822329829170766115041359363333233484174904541085116320841024815120612755026855465141312431076825479968880612150019268927823959207198733451824801581771282076980496037259555264386155579765642466656598800321081318263144289560005344243147249023786672669970565752783388386886738813770702693524268928951414955149177397800463595923413063435410618248111744895063236721192643735207316792582733428390146162719890488298271756696840056746993109017385587822435656445932702318396028992480138759549050922982731532261544950654736970179241865151099295680014754298889482115054284957072924953536889927862244163862709010950203672705803939110508161691502507153899514676309070488424832271932107854727418440250012768952069437762749791169334431197588886115478213405559930938685884685203893525810999733470948431081189023143499456030388362366985016619519581658129981992644579280592162872026730275737693811631878793038922058514355023275980749256786643268582663954162478968510226467955439381262333572189624812316058220029982440461773237644134076970588473487852398331811594909532401112746511208956431829858863338867544083407889642343587506084837941058181173754134325739764842641652710163264276810827884971823520639131848055582064894298783793859138666623409354470358391517084389827121155695042538887748241094861085223370173531377998949533228446414585483394749121677934616191236495462891558795634794637201759822216525383137650386181645045756103426158818529991829693211129482588619465239889596956462554674512780609916269585337281035117095274156768441798266123868831894581951481263749175679643167753075674476321654737614966037639742723211940069881166698500373605851552814115580729920684878001702103013235951955477007370536882689182376792406204861678161142784172492714147526309376013229795018081444234753791436284902939854259693606093428711508580425288724429324620912774681407024034541677971584792849698836197364020483870509435949722931453105399433282643451209904353727605141239252589712662752309184334650792651803347404666377862885972497921199192735703412109543261638429967752224261632877241686949573662207792350120659571845315369423287394136430284982925099465617788278965207821563205765015246170288421245229327135021949117409966475113279388201353084444362213460362364299126258069912862276508569080388207530432025016941076795145060141259304537410496417516613101149202466576690773678314958084183019310996963659942050067285071388666946396615341654170035058817803562081379942710656296301898862563659694935276903140848383016029728307239694541461471673937806819197278466030358956051397558467697128613211615480764295415496705658589227124524935940695942755492197656368412483631550615510616477113747658395183786929203368845561998386584241107141340365459386684783510236123102088756041516967948419431131434802250772911539240625741483878319656955205366035430554209662684602200667412783444475502610353885382409088910917283275973551501153769069080620482418877661880208018029580774533066107803055394608962673292349873983670651027274999319100304441496139883382522759789479515207455185420950422070456630625453151398462940144568611793873771045842067490543116469998497741450286605614368207177716056741309713571779587719428599606961639733333161664216237677459155150951482797744181160300409904639216517997935264859908015043259795423877267966609458314592163767660767612318816340086316124189339344765319523775854999298838423395122642596480799385304553817397600514486079069853355547996414220611403381932507923816448708875052099212181769871405075092737993136500642125821433200312073940371923525535951802841734134864273626992842258453402894426401524683431597148296569076115895444482344712694496284122245352524406959188786998889867257155685144615844636019763766793375465421306517819396513288623101170314820399900528614005416320365350121671134036771996011325264527524854453865928592325602353933108079327952526519609546109467739044177321855929157937969855754214103141539438543851159487682148443326132457460672443322323337204038198129692445176066125103362704235650291971012510373665368335872378726518172442922586700735484772216130336628515443915278867489170793173003202537529301321589186382531603422004296682953957548065392498679690916929181077319062895442982757035834796978074743475574917021154597410810090527921813668237761703704702483034563848763201905221578267684242768143348599927536090369209828437574703364471407357591526818258673045826144073936658188693150335565010878986044399483757301011698859811336062233116872212792780409718063129442597455653760402768337316064473984541825142583655088896974309704659406045163769679365898621470022542512740200525891096984104161571863790688861184872985925343403783789049785972201818462161443333373867274091817885551586111345835006889084639216848296496843400757375142499320235555920314165668378777637400524101019425425471787623823778629634634509135082064202595274650084895080490536056126101639195242269495322165655345307141750882045046185131832032615983987420576941203590399577310430189088951848480375519217356407558154352837611709565403068798141525144698538680786602662727430036386775503532321775235281204055066592704358898363435776019392187655768636250663414773860882454728312088895252755100498256335821003118948683590056945266967579641918097752760134582961456414556477154067685559465635566989237994145533267361000065594301252218355272768629650191209710509572643891120712877799579423765299066711200060250881600572987287028184311392884616345247130816729568289085993619152842318740509353038337886557774824977892576557103593881943698222632937689825836779605662869741322292068873047321728357521410841293203276499574765425624183055188249393792994441500807705201124033192472381138831195417369839871568339781297931677199189504147471015894778266040378496748733455070496301316920415580716555247053323396410582378017754959916366850809834061870201902519066793548663404408913700083522491354463402934355326273912772589897594560731038072968587470840937072428836634418078286756083173731200262717705025206426088347193940784080991826073553889163088283148110992657467415811096875730025469572031304115694452637472194311979495616876062104308247655519216476562581938273997385310341122945676293636177573868392746363528621593607401350427582681438898482000354418023718141648767174202494436578799802027153290257780026329552205521311697589828605886791340522400152401635088963070531682840666241858064715685031718589478976769133153635272500313058578346017752911552774780460662120679582587255482352378904897681839709728708465184761427917142093249401189553707963435917676475004798361469811703328135884500392342285178740748064236338541914663167002681460142099617877637319751431850598711979435976749746928061147206408778671495409944379345493976713204879700840693711903169577322717586093168821717085350319371910429517516771224942886393224758048938865933277686269358639351999053864872279027589648278069126170236192369820420491795204314645384603533386944066010145514579624834762544327868958170420492212395341504294453549441415018638283909800714486000031589711561369536969912267532849356290226590862466556976790416202117004564360717104931357069226322297187565453958987520374570176998949513105372625934372845042041890517145872006974189668363069872383478994637803551120911770418325387210037373927427377639927984141083821640214115718570298364058285182874938791054200734715741749984379054435266846004012703207953183900247499849337901189069567575454296015046312129967827388870948067597614903280328266633111331944412397153662474025262223568597080742827308455320266606264899507958223907391370636178787970244500393423905414409625194662495920811943372934374442547917625350423976224472636446360752209926887575118769640386385696989244830084039257395816482904791064906978707949095389635138631213087188661860453919231918102045439610764552990150139072294417435473763431096809850887204688302823874736728540241178813845828407838837614097959895731826982614471349347894997108463871988501634270204600734016130788438812091549818155906774918710724047946428706092889487231119338404838218037676921872656309510577174538791085222115957677778496184996962868071215377270899692597154558697553578711995734062889261809853207627986060611911524269937619130695131754637286821747052264950435344372722003990389731439960351785388639740974233909366352544313492407087419357199095918488346795455256215702216833512228072611604842569028474414958701944244767298586566036359830759785546688599220235427432253048883563550826071628507360995291996421286731339431848889435935061138635053074485526467940242929109554037913076966091228248818070823705511884724452050230367162428086922254977306225186018749066394088458008581428001204016704987819771821396865283777142998319652614192877644854177115738763362380943803034495745968416457166016026922877079216798278564398736567508709077564778708779981641356452729885151147537389624149343763287731408170926432908622341359872022798907323767203345308174410340584439645697582885674159515892120885788902315296978418419326548364247533462009285561361440912806698888126058771319710648402611722740732084688807661871429194529498079784005443905060947944212447874875124413521546566359181083885849312995415516349747560628149660643918404346068532973350265917670084825553132988616220246432021516174608969274384203052576973665462348372192462141458937630820775782096379250365753601978839757539655264095080822317813103883490003129448497227488503367952866718482787881978988945524825169278512786858690489365450319009239370298456045071203816044512496732431989899684479925200640161656537657220428993657000844846371488852494071054667969058558057725635179612859133848259406659581187330122494516410336278117876288298920962193313307307374764967672485110262960907607969064346437914660842150470563824446915358033097665847263519339646660797012061310423011589668806658579144629163965842098012773743658068200441417865791655966257309520232479024351179041393765649536266844123130247111902088234711351885692071661688625016856810841707256087097081021086182502043169060695362542858173307421259929869739743508122256206316460664028449030195766750216136315597121207727468256357019810983174793683543426888757940099007467288283056637781895326927757763733247281041408289470596082724586079838841794343476774759975370487641890191831018942796463586684016183045412585501021976443640581508632339773296338492327665165221783040322122730555760858061018380325401702320867704227212594539033649070131974293520137356628055153893005834171284319902651242123208271979274350534244059665834990115686173300722234282685755227787238757377441241769456175944040196877667352608062933849525101765199924513294365704492409548933470693676743708195264757207316013134391365591056628296567298570960495353594895825904176419176267322403900406363527442954736734714808698210487948384757739893812907206852090713849217889980224940418453637980444070894197430985196011615858233426007505658692746046522917924149875275594992441839420968302229410986562616721143847298120346487641491472172269601538146239846371776171216142010883927734793799435254091731266673157453336409901746988348847618607754088727844413909995056585840198523139049421166109576239667309905005052462142069893390856339234882141211573830071685746861501130354662870997795295898472362566602824103965102029085675566247053186835828605247533266712551429191056227925687987125619830872735224414527647414884267898886285013741192680973699976911343757857383944607079965126067583318727377021475974162985813192520805085967763083123348111676922909620595402248271930972749324518270479634422826270861424075056712207014369737681693159095247231491016241796566662051623909036124394259320738204350274545332118153829562810971256485892173870670753705499137565536947336858260794675798259989287209105632788179065880753726286783076171248062249168409882853690945629006401850363858867234015839159008242238854303580179625852964793029791393548908018144302821018111833204893618419811789537545211362338579139796242755272477854068897896983222202174671645961421057231441494530813508139361412538688505245304093316038592309835504840803496280876695372394415084138226299385427500988270017699498849169533171672691975844681590977132757405712848121836208900247631437037672500045896389900056652222219599783421186778646115267180359758028200107644940097853137616469690494387777143543661695042140768869567322435624128679810784825287004277925796691323819238400398364803062283818134155659531364120664976643214409687637309659937166715883438370477395425915608163437036460186658429532803872626689437737638395835269054184728461838769366998774479339955438347656970112409632116357171697788454987568770117622450053496907936398397067317457979766551799055439775608935537383774262637580844137338014223266390149694567075337043913052634233353817547500470062305071895366779548961776611076386413100481025189044985094261454641860249142751227126325466921325494311778387914712718391622666798987932818496908159013014718780211407601407202016627295829321593060647766352523019747992567388052432637191988511821790785591147123037249244370266422070491698174358671065045964951760605368087625091902369386232185479474402681859700343770570282976647425664713761340257263737814430140772635338208178630726129083787587508876275528795207338990683438780005240884978493781222190892469919251215958770930417527023684383960555404708901846701198500229920111185072276443728943571180301624773216588498306670404187588839298051371986157316989807541691801836766191481751981797029603119100420602840864376079311425671500376569102304388549906745556659403528230503232297924534703291533165436458907639846464448097408137443327223211880934045743797943688712937361296483513464266305401254432687075637688502163342788662711647656932692347072779409744843592471748517337864321972833558080824682598106817808989970754335285879291105836276252207947439036584294477653980871536117150968753380481307702721384397529485152367689143948212322755957968445242300091009710781898848410285278782374042285880520880809977348655394993465791031093294626940780377354816350735193187766442416496202554868510404491723898832910846585204037069882892408809010050334929500439083396902537472853177630575176447775753102224159139666589999589933393055787006607634904448189985314357618401147273773934927336968977678158429037245171252073134263328629354070515773569980775700073828228529969931728977162897519128252892504593078898945739164172058974583935971285533103656123384878776623943333222468239737878105943866702490642192190219436199731591744401800637695919669306787156098547111312713831896328899115079524858790870786084253321342755309868135890802237464279435102263157106508950595982887862578658784807085290790778266142179567038290500414014488360398603777035056037455885680817444062763617276684998248503904967714162181087071417789140834990544394709384895270059077096970959574970050559216004395748835437520989385385118872211883456479331153408618905204246120837316042879602333635144668609783175623634578141751229883222582115175690671048796066207664227983881903901522364772089748218737857265015081754983238546706429829099828238342357187518718000869727700749876523110014768036676749042528383744710597026254014897653340571907672039671623893010881596048479534852938384675123312162969740701222404348729197901488575619070871956441746540066375420610194180515058054291725304744027753772482166364518227803732236117817660253577103078639044663779461980356813328949941572739558912284228225959689534132513112562776676517143073556616129413310385672730079565680507997807106228968530655731879014074003033318665115302199488012181002669906359836706426464830784269868536801863848158270703980192946812309199901945784818898470715781368986680982828882048386044110458499108456799271051441723049671170551395158937290219030768069157305167541887748796786500167101239692066462163760093666479367237924921198872469817730047361303633494642671110006394054540217686338337698158228730927129048761175828516488826760080260619179746497760990766493909643774720265598890198798142944479963879599036568714940745759925186866984243613917305302151135012239264841138529815230391362164237722948949526333645504514300353380204445849462582949743024386654107617216166899558923643921378010255530215841641635246461952144775879022383227790648855868350544280697225785853700062475139195384562030147069131593900962553368027555211556473975067915915246474507141339069536059650365624918508103601534215901271596943577846645535863398779973295293273284046667144920936952762449984098744883790368975240604350658909343371917887891638069570013573083393422912995612304009046971609916751312410506924973215564227233625227886455160509872352347352225678711965299392213329258530095464993250650252652364129473826744010085294397022703983854398719510341024795704358695443329222762322808368463123221880046922903856487137112657245080531178888458544596726997577529530696212983352499280760478404529389557717341174389650575214689529831373524374503250776418955743533373295619286131027393305219485040059009805990793165236971756935268405554973036038067698557828496395547490984907112516866875855951640275930688163995275014202844560372782912140217928014002109308983144436901349038436768757147959086626677616810889756734675031199330861310209884916138847961619945844953496018042410791077286288125419580930035713650555691692529831168243433117864849583011606469097024903711516923285401508445074102422774716173637142148232415721859063336159575866688062158545671879552028527411250344881356596318428224961890181740318215800427820751290759432192894579330718395998430477699431536260755703085433809094737652727090229932218194269504834622610346322763258150528152178007075391403901289209440864705225189192968217368182100251701897821745726025801073300414424311440364614116570077948579199262581019392536554375381054346445542613901222681820511860461765852552093076922849972787714995501531464303291587178338771125435777339600531623149199024876811559925119546508774276914345240830796142554662979635402452186547534651170258598782252215551108547077174850738140716734017738209346319403810951316393256360248513097207461361437841834331055921944170837074216181657055849153814461656632809336188929944838383164600157601717724649717225195669171610342629957600297887615964446642379872643800859596337457428665696625434618785726945675966111806798294452426560729581508965798454171560948500587476199590507074743126058717756665571085156550358034279085619404976970213675999790824510086776849409635773927893797127814035206431010831481096307523856806115626047704166371236958513701312155377276816590070514963287075088298740034023191057279372442744624700003444916549109692331063957217939309270077336451918194115279521840394213163796336118306180502680647444655645621357049859923520877147649981708164993163692127009536345618329195875017313096647532043756455386850236142274609850599942838673426755599955816373375298240332318656021703399849835955567410851181311027203082005893093515811966384217246303043910191381646531063111606155130330595666338645425615481334397657777947702790116336179661483096109880018335876732120663672323162946814081673309856764175698601490878570524245265390747793523747427410094154565268297662598776151269554551600005471272197772275068105242333962579077564698873297662693167872386283309546470508009771466953328647558736439163822405937724599578894036000084529556076070572740050948503283001118677440385955370520288664602108161828816059962337467016134454764654913065265052952509652796763567164721181854807348001998312042906790182220442969455621135049795997157802049801812215232711093972582851153986708653544736086874159410927000943522592222552478241057543591477933702585101493818077491956689725651344110733122411576201327861363894838879910372377677429892758421363902809210886589543634454250091236597783671413432835637788103824995022895516418870238537949340394549438202910639885527907191533449562574631237067287801686615548375493980989111488307390631940887848007384122089088330322917578239867715584005588580585891636656405797653384839568045265276772836873783988548296283927042264423793427557096143608220816188197793192717895474321459510594535963275238728616192832331147762786076369356917692258190311801614435926358728260989189708244136669968231482230054398050886418778488102514667661316785282385216326653466116165899596537568735917767224799909112365343940421659271469481069728332605683526539781306305332080931792346708808151020777517064550496665455123176550576692206569251628096379983583670507368376625935988731176500203590150426946256684410236538526628795608555733139739867363928945033141032098911443827131448566824138792005232566781597237063035666274241333103364345655692592986601896724166762964954002472326169740423358171306108358754133863759110199068902181479890675587571876157407499710605178912391134591311443791634217605280925553028033098039047206799726223659777261552451459567191802201194046340741179433724545426875229143955947889233774482721863401579313975551296506943411207926782173551375227989821045373255938282932506211651524419501944279521359700273165784080203631885690529645621565304393031698275525480920125598024876146998278231832710824176928472951526537280568913415654113861327925000267623085700368672822405442429411038117431153471376024591054772409502538549037353074337147096648278613013143872187110015343673670128893464121164272022540252294580842110558006975724986697787848462196460756068314321254621529195666518360772188361520640441559704523095293366401998702342436063375041236312398300865201533855342042567042704018256363557724698926228825746810404716557000831332954533799976182210107093966018460805669256283092686012245528222013744142704531201015583380269897180744250261237467264118416363715129831283416285198407461249864084162100753835710788466587472602282498606120725854123710005223656153051380021312626169238478574451730613293983734407563488819432851746557827111325845617751203497141877437780458466537010195323774769286562465851942915261450445577189982007042640857728557491483023896878209329226626036651074281262122380473649668571091650112957274826749302340894704427708182023118977570237132236675874031687538406438588869977218639068916601315243014631393372822096179297572609311199741897723324303803469534995588662851922127760868319061218869407727258491003171851115157011581373147339870663379215798244655806529743655397922153347675140240067613343472134094867815885324035654029205223259827903638732809036207570657285459013998206363931488414016123472573291947322106041028302798651860768139703877799569530898258732304814508266585678769298463706653293358990431832595796541779530768438075474157548949042680304549874161331899231204335913802327110696320330662186759306422970945379887736577193037462377427199104350942989840793589686779048761633943593904196980253855545637847494485172054335379402682941568121671896493750103440429253141457661132658823076189608535949844952284596684640637076181047957273847792995651164698592890421882193654896639247708297832299902346584502924123187174196926471627326607018456203782082184630166253806065419784471887631697945813791877031397222666553195031780033930112648061569433735969016528566167351635481511979763657699691332876903174011549575610688843857061813455118793847103147333909467637557925555227849714009847268205694794209884929978603391933411273676686112220421996215568340099686790107123556867062986943490435337834156636018836817717616218032280350250321455925922924348533953374884421370072130106141430320011696674238204600598680241621896495771774689533423343452721252801955870244753210632892770026463400424962669330835343622128461203346485914723735478520332456930911566090631512293783798549814680395992858436039600822443496011357688617125574936566671537402335092957952626705419299206626601062406865785735875716654609102360981662909385896351469973239939215775514712584362097206581141941839143096448852443736312978929810067651181139562989335573334988748916301449096338466260399909301209961062451667877655212098489320909902573517350420228931374504660375112497518738127072036275643879434668476166723331406912365665967530569775628478176131161023994585689629853997503129694327702186201959000118024687183330844414938170484779759048053735900710769550511101071471336776148285012552050727900036841234145420397973514790569750249550327374799936763850490123083183008167745960643072983267487728288703777004462807734832661818781910212025145325508490574648729789019067260841825898183572502427064307748676225343338339275079126658040606404116892715151451815539214565027694362735667371408957527033140566980003819703854978762778066068713385726520571943520907466483992880376192078850502214069901668175417480757599275155926224217431302299811541681974137454416630094668996986426981835492358426049117534800190507062198416091174099521408157884812485177550488978873601040421272291098598802819308089897797430696673039772864791885152522810851103972748264489894234319290191584685506295987457238188625320226374325463577532331971170814215940288481707864677415589057192528640507851636742687552287121173992237469963337159996350933734688095803976764268356659098219951831641430918994305482157081279188884866562996445697943455520152837761802716197268489186710231262720749160528474639079493804612806871479136447838248102534548515409936361480972095492932403958165092202029227755896266242359806106906371923802642480454983851728497332133417543774483166984462140240628139346157658766616405907090519863239901254707162763113603330354042910295671799589819876608639620600914014973827870898851978357118999444591984006581280264705323041465380973751734269954357949525003493312389230875728083585412764228865323358493988224892435295021733509098558544453497657419306153876288283143821945873989631090643640625196504214831091233976835686207421488972083241971488767514583750855414047227274229256056204391528489829864190889500719214428913113594282141830801731355295703609330595225228325299923736858766659393875288157292174942348724578627299127093525072934622324264661768799664057097816351941098640015431433824626667320031010074394079023603725648956537519535806061056518983345156475118662117315001877411038322098680325239959340424751075258005701665294811930988090734113239867483442518999292695046461198066693219525878677760081814813794095909500292334760216352957126361141530911735572033133118715490934751961522863452786181429730280247121348080374657045832535369978948222522947944773954580406607724472360243849349248143297524720352405206998672537374535068416640537470029858479066371564565719355577689256396971430070472835613768222588081867333780245760553497908743566382465895761519381322209126196255530597107553918054607533209731507665559150838948133368618381327769322176226962250413616847598910095503835490236211628206794535753519850077069179771889484737869529218365870394631421492921037231792013532795630699658258013902915830519212479243448364569090494915832738476735198653411411315518997935517496122877156674924908494876617286122896572253573356814621002812086098322898148747802031969961881828954326488277355446000485140963980326077377841814613301986423142221677992464771392871581958987950195441061982446803143390332207180099015939323547808779482315356441487751316448597385543399591204391218052839284196472770760566336580122578679390069665873223860999258138965463408043146277820688551501592878320324454677235515916947675519725777880341095046220131618045265652665303157209864271280679815830140957102122819679718309338764960095734391783341075657957321751646793179253252029662836446625793187371351735826956875930735455739639597242251825420447574498965364234557771942129018282302056910607743920751773942563816629589032169746896868366085005932462343146396468812804478047908082168233987170607072195437400001030715284126921839346212323771076767403459771794714341126564601543892292952421227114614808799122786591212085124403878115178495143219647022330248959710085503938646707420652091401367017973745906309704872916029984481972363626947677371315734155335136498607656464273842961790183938575929905898711641010623667725419768987723601331260290503099746121723857922340051564125571607129100820981784009400735942379928358403934719836936237863727465435189079190987778577965894185892710779744094345188170575351712784207994240210253702186107893267742466775448240686806279448234590749979254512240780978413676211710428458026732800461760273948107894122989709087833313066578286055139297536074367519649436928918129174050673078097331930359994038585829628510565996536354665198028524358996725789560287095979964720684428652289087368931300483340601758327063228435222419997485636091711083488572054033202185108430387308337482272434155871099741987152851906391489756505521398750063950742195005521806705011900322922401030608257896864613079541459858866170777512622708078504825483703519163282537629218585315549904010847087420225562476666325153368344447882127448573041238182056505910020401269192935817689003139584846586302191494671072201630569610601153953924013523610783275514012022624476930911858121553208409405697438133673787838281502853523767332217639693803758663490072949508195188304217668566815289868467760529337977333495612834485225493905649813004406439709052497761210857328329866481657170878216961193641089957040312353081704314472389189641659897682276135520885821170439777142451769358779049173010028772630783439603368122542314891089975240478574810318902905309329921912697058045557741322550961409740795754940954544219491042586858346422760044283315114931840498942308762847739513084536469829220751506129885198212887264497265929120385103974816822418203478328930345708805728563336057477351353482984065223851648925784466087028091837342545687040060244414422461316926444347298774842292921314724194525930840470104640940958293254416520398936967780654992509091686117662436597210938974107974091694568635012218331520321089807726584653637481141908435750907668101074315507424995925614993164475023815395519144392094830613887709996688808552671190381057407310210557889318509528822586815282320349058133094779281528676267379813710449845032435307526523551259463016906527075348720461490867671261822544052525429304396001199408029022298670301312767034053874405796455557440047000023509660559887344024567264511955853445914477844426605803283838048540725723126778035390568103774584123253504017816579991609512186994876741501886646587288417142233838400937916871722572125312160648035643335081004097253086502892854404172071764948875161363301071708107901191948628052306497805171738750141185397021220470627173019124064391519824518035312090189133836121862578201789515819477241638892692386784365459808373018073034572723860121184115264289528838551755756907683876145270508108318605497346250833320985940337648226744092905304441050176674406574289143453973095696882848402744479204810569775211741588590996055482454834093611693476887177420662047199007538644200167600068850483137564168211707767889761874047432036315691350637585443549534536205983380967558876620497929825343334558024888262579101845413331895074519312864212201845041101961272128000284864624975666602105990151989484947590103092671066174915960405253233144715372163730952003482166072874946950156284715417849635762365747052705365955748810441448001718602884446122562148787788428552140855443541977585815089291519778162545824312350018489807563872780728546716455182638318460197638960590139935012332919192123383834582814189644676533392110139539367900894148139959368189773526806708321077418839735256476214342995387103835310513170866282935227716164471316536198941270175840754842924053980501512973523444453626458112345188663054060036625741876294779332203823656149798586282909799863833591726720240621322688557119819354300796729768475012342853128337799787230096515869709205411659649037964715685721613502733241266808748315865667807116416277671029284724226467229668357379624538094532274164767737466485193049570169469249122859310555100459911373408106432762530210683875192743632165093593427179643152663338320806521752865554537812770114594404365698200003396545417208893408317035154120814385789943538415414566655218583014489211550109057735416369452223654006442526605596543759202491328578460390020004192005796678860676185764949596487698600479435687184424263929484468627598719528210946766331476970321619871522688564922033282828770585448962824505594797334278734998919776254694376589724404081822670602384765670214898526515851729241982581035643778685043644935808132801765491640448206023577880319650046049274408009952543306711379278136405611401119255870463680668541650637167679114544844436920468899226922394701780604552586428146871121005703901074074827669806146446397384339005035387288721789337964808297236411992293148340756398341888111904999138558132221205796482976785696602032027243523281540404191153390834479585993366436940348277101922914833518919538004087890718489170935531619066613378260657025727757305611036334885209192931457311520938454237836969145724316769772325710894214257592428561176433915092083675234821179863092318275101444284900125003451328171941634739743099695612682210596509981705885781897850828417739947575157403491771079715810220667374591752364267242418175928380713206947293656304216648692273255403283099999960461979051752775320870161122132098583411563318686126274783505038681180161117951414332732796414634353412580101283459765257306618495458350035068677637699624312829647422642554124621197605228444550501295034001982314051469538726318494927405940538565870089682278337516574919581275518012255144002483318881530770050425519202619996619479970742238551296661040299077771888967254597664079451952932697307791463274661200046715125306806262976611739361844523701607684488536599791040364920274992278138366896372775302723112975949353955790638750803844912495642777024509565745269917538086280522833739636023139061270338590030695085450898670618711107996090348416448878316869112356674096574386051644284145408966970553972119906472756297051247730310700192996523885238487158858771391190101453634798462662452547103063673118463867305771366001517864654722136111011334651085175825685374400373482314762545415181777444989578140803873254807449104737385268134971454889047935746407595846061581264093581524182991524785914518691703991921214850312388740741953081546219269586581821946500742817466492739159469991317494741348496597765846823661632308459908019388047126141292972013613344612312662726017354934713915493460707874436767827235000549831795690695986437280264230352398222337077629332781828028977202401201268520475683041212254875765781434564169166698598003393479785819450801918071549340037915110856734418195414912488145734094564783034338309487986058445389861959841523826422369016423876064926937791631469739347464056573955392106311145190021960124836459208956551061379723447251211795151208261961236281721761400821817773589727568468879839904365640765889714114223575266352169741855049039070087695664979242293734481811589957955557945931447963545454259616399939786136218108129933056342496419564804086066422203618646842553389333692491933443906207469230360593254759629453965514984819219126874210534073664360058006799806924064300700592604020128881376229238189674983589924356737569848778899883902468247627853475572635913901796469422602462905316910131958122358861888504061312330101995351613326074553621851851696040809692430317905461346965178252315447612626457215458271146106940870642531489030141524780919223166670900469740087474581323854100336770413814520326103942305081872976924262932853693621277730703834355178211128934826571190992770119060606918624640028335306812019806749089713022512339586903397958243820655552135971554280739392037973075928683580122304759447026816321720203786840610270866542720468517275816314978350765781060067007284309162170105956749814588667354742217270768055673770111522308938676737924519497160691812709409819107021636066574674540768183338979550224105298166876376896533546799570655528258524520627836416660994513950303920739468312757553976522784308778008651244423792566666810314342826096395872709831351893383975774615907086192156473467016099270340256490947232665564762892067541470310036174380074521931149217009780799644774923794710113078709220544351325681822033322263470465376214052979054553138402622065771878350346138623840813407590483309351567686844660687723314662058278042330158193655668819565591266840518667976668655061595688396429640811698746417505041285980781921684261907009837439340558003425145465528899109011757451237944433253167854520485421938587461367861550367937061803378151953372440825176344624995806391672142009014008154440142686906487188434890649284506314435173927634008266285551900656621802845833212129834738115768258143412137195796004939216040834306838424318937588525106329590100341186598980278632284419489050967876105462028459780192094358681565236310750897228514816163923506420638336758108538861462227935923706204715710741733118680231353427711147682624023504539144189766740967030586614977391436078972989918889269666874422499435904694328630758914131376966198702542096544350086880757463183198014538549941992577865174170541695104372848865171845735708347350115317558440723898434168844695678670066853352850503445656781916739341066145508492424706617762622240388018497395840972849018021787796289762754077432328847295132396780835497390976322484366217897743337491933697704756304852231484585273664696599446158335634787346310979087351669260163838425368540559574310542873415420619285397747834594431915308206533600188973314209901421030123019993502880628799292181309465226938459475573533283969482604269473530402046830413767384052962760556952873777851630613141216179191930765738506089406206954310388433707958025882003277478405350019999998436288058771705646284331495784133535006653018534206680911557351117121369857580480995189570124010622340219320132364581521579126200916872374877525824704716452593617549944829774509489424997969854668836910184163750117297484481926419428500129216795532837314274073498598764466873422534180964516241225949480665162172159493774966475046049024963626978200138016815966640953121294860653085736561976276799824185766219015013281692665941477253184854921360214880836729500003585502383802015540549914829914556859200424632955841506460902944154953106616017079065343895376976113771191101123805026602468243587022536360259387574709964040918483455646264348321127968607455018097754769466404638251624592393202470222961834169705083314476238686843568249505207519129450878697542107031575385724273776660566704972810918587976858208426950098738647106089982812869089098983800930964155396155247455660838928111280189513062207600683356298534629406651617751838231847530985245140598979982355432678050190238530816718275406307555890323109184525313304953968021603015095722360537994695781815708153910092732904477748475166625647530711237800864029669799581103150504934790467578172639383277214348443420873817612918415342071399994801589931981446135238998274242555231524537501339431740627303732459816856201412275351159759667799709155854712506044968576713506464074125122249552453504259563985055166418914415493271542901654035581388787537963980677507238301736970599876766938030818924337701939663125041075416560266025670952663226961898291092574639663676401846135122449504107277224375767599992618831857271955882557628099632640089964556455262529847966502795962336539585142992851824526550654556337023833859359460272232312743574581606942658586004298745224587172121929614895736043596251443823883547482320712981082453809188310086283807119606483769802132732745468555993747745840121466234314774630661289589985588337459438573972536096190462001904664051949105508524080124187031709761244055746739923214190870639295296009229526553753232830105634824171481241594482319278277098772364064660862945217491481217869877394481729317492312835719663444831924623033840162042698782606617567708074085528373998899578066052690372477793123188166032300798030137445870348785878612431788327240497248843988111884607621720374408334274941700991119959910435355290340361329172911175234160908635781087112590320359371689575010234597371519538552043761428453559639217165774435209557617798248468916146502994052721451399100273289473248749050211362324362889476017389739315213850905323412717776918555899615327465049108784656762938962865403387792227887541679741352390992588461590928990838700579170189627637047620925007058549867843619575554479264406852036538200772837692501192259523033759205220503440410609717485136474242675137917964029223286713740685520735321258544263754186888969505817717626591121916005885201278493232037359608706079216881941440763703301955925181568732287408765597726489350465283159946372731941382045320974491858465734614691417798595805146831289420654532592246918374401075218964692897665145197763333859056648021089466366991280627769283316660496477089285784031543543648491855914346736833521425395781701119886975435723125372711936502368343156452051057221901993667762804167669555267600448749827455297323980589400819670171549058299694955668138811234675018622045121029047786849804052291166225885553078921009073226275504589210769525456196641156875739971395773944212476883464583882750946131533239887293221955811056705881439418681350154695403648821420279113713721410308786211788296519219323874187493436116642594404936417436432931849877022316053302339496772913318174950981909380012389812077598373858885786319438988591813920762410947193215853642200828568699588770683531618693760218033154252443411277341261825348148070733038365157197724790889828794509568500984664312520102424925969241723118788836675957369016159805846268913055509463312729033534809532783855977795206646094833461343454598168759998320600571315021309010260275808980773779931174181137453823237410131027491879041899092590572007016349599440707035924847478230829782661687852627313311293401908161980189328176159922803733428560724915974458283861195277702867905886289728026202195519995444962805222284008856058904351048956894275596375974243528932061495923484259852630100040235222463086182398830186195682173820405312427064839384763113982710228063626564298984399680789353010064452919987904770119785628924486924359948863056463354631795762187034846408944665373685211708918916983360421579605892952748994452900103605628470089668269117199492624875406484906125684743865446920510073570670063755386311046567505517203769756735612666096423173522332479093032312911769337831959771958155064340983226425279811817103676101502300062306203233024299072609508108752978867049834365278521541843884309837431366654567105040603332798668253122441096012341072968359109302197723462442909118317222748039078385986626159044972162395706179389515145123208597137168561265762496340426657691650700922468753300802371472127324173490326903291251832845583290983957476178943029064648128248614227079523147552038971455074480727122996181958958304895211793835625026200737674401666064082870799157417142084415778363138678496460857449508098853719865489127964512314826527175078770491372005373604606894586993545142730211371415580296451075028093951099803450405638701855949743980698004855069606858192538526572626512851840755121499925953147758499003360478506061651653527281558656940752755230227368818353791711718964709542505894136055009722764101889021137085380619716724913516068258017660120095113893604569283696351158303253901400612389788284674766581976353841206937516251794306224568364271591293941506411107100539819981577766943361426464903705025547817599894802844561832593144205138942424036410539562774075730158714755811852540152922018042892174412541345270028727043356751058082389443251211134461447282503717367457655831019215954008617832448608019363129793455084013348108879838497113208834369631538595354146500471781069151473528294717108240297687288089270968193782145589628441204730602368297605275189006588687649824059654474326149347560468789794233679235080244912299569812864705086830635986559836114311395420757169557668233266536168502497549872727539427497270456722470896346062077304961674637316963076648708391783047154862441149820358753915210313125039345485287291387156173262130746661047522825414975840797695396777376049681051304487924313199408585329917822577013558894557089756629429775385938922568429965886493303159791788819551487038677140855680852070055969019753820445953840812135424082680079269128588893065603627291570451430622936353436583746243352387270619688569804788606167451022154854836588047741268822899503687212635621680059284592508522397190140125229861745472033460577614131818108204349844969188227055840574498138411428429741173493006948989774193007560709254147006884014808641690184073243314321831054297986341192404613673944701203908921535531971407204441988674996947760597575588469978026656935514404392421521286785390405249593066227298986835497033025427757718094269282537237795224293027125412807156875068067284134536265911429139897860695846916699527466000195344660057465001040945747759975087550688366162990860213186275236090451208462263742067061677762723036192840354991913263761772260154350411017720618144937247118422719672295079975889693131659191938214858269493084904144640281483383339236999620202325026695762174065208826923081997248286452288561539386650786453442762679773173006374561301324565004988517712359583642055926626635199579038796542702308314311095833121744203871055197211886441185852375057060317851082853909779788171515479078597150318672107751963416857540859365630443076966482587909682582305987005268819835707715676152968811222927267360516618182309727042913434947328523017680299902851388738114197444609624868909029611066766316797846377380606800002899124367597934979909217154521735655639588426168391928934924837457972119855201632555534402178027408975617430666203932981114479866124365637649455177492135240877392203181014173915242510224349712724104466539166865429094727226427473940826067062567247452035722877545253599715295651421330688275694450919902149840506291339927081375445925437366418729092017866103125770669230768870284349491408404827966004859592554595283027772113627441224263234499725564014190988081681184749543996870023407606407869588721230337663299170703109333799541596774470550387815698473975933509026787351190561462367533524273527231591465730144931958988941304374658632644341072456616691544685783127104736469994991622226217535395459282460845497406380955248051369570310708641147339659642216679211129265711430075729660219458855756579366205254826552268556702635060271180442033003458571534583977244554251175475924767371207611145237025588773046982935731746753130621506828797436728774435954435764188042951869230535593290231260014958149947585518898801571825971437108311653019579789876819153657285019017561946482309780805395525063935234763398824493172069889190800021818012789921059234720548953129440910780591921220053728707453244077491059979291630217998869496249522734798347656784032264617375851230464822435334246110725582870396853829157367466520650547135644191656022030809650447962321053907810932506431391388967648441499437025605712444663464121674857743380411305715071724005896799304017780292883891879584487120874396671472638077256349956996780371413536604787447363830825215386413519931800828067613626364587497816109280609524672427981662327042322289397397835091402635790026322585946940233729475729816617980255686750969485197100348944326382613904778360610246303003995712347695075241095540775772427857520778282827522508010298556389981301059682690163142977267949041439430534315372877419048629890720088039602739897249619823199809864063215611963339752911841103764425805631023839160931035727353631603191942747765609052426811552627722136021561631328520194795034928654729035210219247794916690583940778296358330346057949935017312262918472391165518073373593888856684887129278751442906300289092680465977095984956715195006426236027175493989706734187610320777277891855700615933651272067055078509087844957942156033157245280195967803034127355396648353338804015318523250486114177683601942891781858237402938180897111526100937368138984803927875454005729353553900258619302465039463252060912306710777721728057375719476530286919299365821623388054695107395805031420469291951129895903138814423796078742575820966188129394700402588007479917784505849856778414980698818201614034831675849759528399031342467580129939601096464491045649160768953875704104596074997244078723692104758730914437539389332839521083249748601673742965004176735695982559217659842416343603958124953475599977338654149536928274934834691468561705514616035078270154444558875195235877982841239613556110842182790443823064105134502244640110654959360569829860258934671369629107628593881261853456893939661227536012956539750022594747295687726258855489841122239596597452940259791632225069985556469148542664268739059103438647078209624953848275526277235976405057959782098628874159150424970454214263437151508530773646398528931761246646244919234454413810076518281617678061343353987740743966063479260688875058013102498882169693619058536192914434670849083659698971239982897117589088016715800840402880590110678853358679677754280250007480872017338408956629628389281129806517200231069626556548299081984010837444374495863002041753188708246174506463489031952624235704777228072505059164778674535648640494545634592796029644580621106514805259009312429451075778922914218680233662539556349180295925983702958439753997941631820351012900160764413990200982681424246658374982943693976639626012044268468624172967310195658757139255661715720667984336630228965482114267013542237296771778438284481675753661362815366745251639191614501369079920244932438016761084444264886562707425149739283672356815415316162075750533796857886837509664950714048860038567325236199719931388514687012778555565287376100467621349345600104704325729549056792589219340181697278466118285426832726218743745165622210780039636401043380608482575793821773755551336971847265811261383623463091231027334095441087728447596354840931482946641653438396988160140166177357316928214190296441232530205239445772982994994407402763062258890626625922187944751535479393789842938116562363603529221933953744340493323771551211189164291213821595313383086419851722845770888748583904952503050746244087066951337676361364912985273307024864199077127155433765907507158145549945819893145264725681053949744495714000168877378417839166744299775889943468617930487204169665719539417986084557261514799021899730265095355848399954468008872198558835626003005719535446755750013584182167849973503762958519899255797189348041208977118967120825379290522703365140116563572406892363249501546258555995699634165503426509962565634027318342290075953529726124086461062449380634717353530627498145595769407270895692146066501590051864063984301147308444418356927637441210311673419755969506738072675724103927737014024167204174198544723703878395801142726369182626700916182531264764891523274423624702724685706076741622418760886402544351032070671078178270552659967422375943614594797886743106369241705805548221265755340568293848234197179169028089413660639308918093770739904692890624258757061882003739514692870867675246549556402060800246130951986294298109357031745473756451034471199561922079648595648162237437031198529441268779548045324618018072517400637550643887184727593140202455301225563624016729733717966518583563386023389281691480678531346062035990907872490140709372101719094570424847698902854467742651853222950159442393685687694176251726184216403679248809683647850223225877377798174670802646506648700460149529782254864680419809848602316684887600289787447669588529137484359934029684566576728995569020560702112197450301550109793027752362006345505696521733790268492246498595145431492177832045806825082458298293278806749763276194441922097180946668131778483696011697695054539474237436759157706867132165989701706766845495314988919383261013384442357354881976833636819053256635050194838926711839078145619368134488672009657894383700029448559063615204432956868064369344100537251210941413094905743237495259299401745035158570861079529680569018734073142728155217278154202842206801727952803892744826898125597850176294602504723179469163743353620555556447688188190386740463328463814840648615682866995069623006745001710211515718883728285302975281502463130313082510344626461880443479373794281595475110983938062104816518769615340911410796933094472635534339186478207774359856758635774599878736784751577121493089223776239012140649737896821493022316881609792472855750270831394823064816111166398965027663785133933563294234310170280662165298123945373903522593795575053304058065256205270384204883742425853520656077418547215955267014168847617195091292217699326970813855224230191272677035412008697669833955691595902763284387279666305606516493727891777018471868600029753384098763562246195421639297367091073170678245832750438181204497684096135408930431599805480716282251450351963084532128255112626919919039303443211968730277230213902721474426092904080842450933995446793980358192604679319550734083599563444889402534828925868480249715421352788552500543425058099341268606766624748667875455117076782147700134368835402048608546305933692699419035598399117125446567533058627246954292993489583030539854985669133627617608509981823756719263577806123520463398676981481720514269355480220902809921232631311509508404305757915112045003543107680223523103804578736795678984922973413282586288258959787233737873696296009160346897368946275788068836206767533778686512986573832672980616360302604843010487494698130357898979875674034345105447658385288606372855657916310321687804522359304364209358483010154962353836783715559591182817940628773493011065049795097425202869427076355090427956246807123524476251713695933495560662050300337253455173431391465893059269632362766820555394547855630180956738626913276726222137816068552652549631607474191786973261257887979625033231284538038758646599114425644065012076647546612918925396000849677255720161120700566499896923520695423659215935828908581048037659187141847330941553071407236411442241011648443776529262387154669712037400380643801254371799727479411128192021090341804558975721169115381185269871088238198474368370663016637805172136827150824726842885683285651798789417778794799294243360293163883775143720319977507985464023459221415675342367247155543828399017337014983801922011031085284053144825237472659762834597114430415155911115084541015487204831852829883015191878694826227032430107362587722974064764441805242312522430559204444437567448166508819184882617899643409658573292259787722301551930018083457388634876462064600960452632044510558442571424029483008850486579112336868868463186738926727118391269811541510956028384416784014576001947977315674420871854008007909522494347579476716632608557762773615676929286031855008823654674849088644286372306688407483512284480484267953800319730953422468947180324050724273517961058559172180452922707887140419431544771903081357041317156473983944663927491274610012558952319794672287508351513143236738842529061041276512338022108933333128176789036812960893976551055305231019994351234735931160011893698776749113552979906207551314042641254828497132324808353686579174890033591503030149157713214935703395315173803107164024509858834835356666627126587017133266817685554780055194261895939855351615937457803949792675492872936197079248982623704564982554235495404238072461011862038489806468627388039285698215601551489375080714297268602707395037321980556663525588202021736276390614981160049666146379976195270803812229635526465567416080769149914089027138841182592769759157722518117663033231567487800090285001505121062849772877820566235460080182067079530349246481048632295447821293703693644304985695946444343881477573378290470200018722313924462114510634552185561179232662499580912647701236540264072026449506569573731337954427459329128336444015292799367197483857838823531230654942215835124995808543542759018735568392698958096866139791114473377078540106812938123668279024799279478363532945449027064623824535948885265798419605756747180659264823315609896506203423322510372131271953265039966700263461111829630247476541480545150692231328169109636177232580949948089122216237288815402079796517976547981404965755462917370099591821042403559938762632488063396599655627827236629561764274577177408136061306214221087148588880570374787415312890087541230619552777276287944491583173085679544669541483894140162972594836204121417655516238178066580277804297338556479978575156361736691886942426788346871499226123010603584642302338658972908077409469697466776654248670723900564347538662540021013487276424889069300388668858949004313069911009655157287565019242266930722823079336949117102467968174643870199382467720414224771925640970805325523619514133035713298029549883271988440886982021473174443711336006665626576117371402657002751810553650708941909268299419838769832242832429932530119121783182817659699943615396898630749742769341114237142354460016241298659366736522393327080409168425747407532877854477191286697869119555107804565942666729893753020618070458497813280999903127296099836206952474929240423582075897815885736854394234449868160395190757233028092829660279187778485712428655239731313716426960080085425960511270491389834043786859585027821431516552665476694985623078211115193671843369301236226123265597167199167904735522647808657134124308064780825073085641327107294120303281008038336792025924683111161673021705645741729218009660964687826604930165806729225979853651653545273430066395122259026930715890532544971262259874771289815168963958453861339547130910291838011189980057619140082642831574702339025506899239894369360500111306751333914482962170727368551178639601141481577421125631268576167970092138482021807952906736932432844955979771140940957721167307934427698420437473871226897729977957488718085496744989139920831063266283665894694820905256045330840320338998261538120622747557825261478197563531998334973087718376506002194055695196701136405575278128494816865208520529782466356014422140669692604614537271639704980982491218870106298426476666459345863883053430018842639484169766166919113056924749282109733873863382720522095944080029172098094109222582266124046200079485523827688716895396966468717359376478547382974943328849928452222615138106307483755263756517656615053622233907887867346803367740559839298381602138438363767383999103925083797188481820990784969578979888036154828968737356173685040842065402006840310151469106533116060110960252473917033662690700009771114059224551750759913267917693433167118148678447085834999314145771333147094570859482227288745695139109395924819595360814375000601339643086092315779347842916149326285059765951471816373064974318425228385545977277973500679954200034534585254201566070162437287232205499179465811969939158731182331653761566432090388735857035828145863024206649371092790620178331904214141673903339070716323551627883883016025448092610511050135310448575546039968123593889505584691906393607166041590331828285280676315691804467879673599235649670403003532244272295818297012786250535001616955207193120085213035147218660328165061084233442790799225986550645089160820369383913072991705579151870281569054365736457745119686777162999797832231928957846436535391816831973914491411645517193413507222983289017812179245902329029486762391270062922513367106432590089959201903904036198769493157240820889834612872816146514262031132835849019192797985448619205047625630346172054646903650177421124997519035413312437236090645549089609562576948915579508118427654284541301069288362600529264129622327455157193623491330349742084751861370300934222438846482703014029872733125833481514472451459657648967758564752358348063683008522376609298602406085970242545524352903263407962516578031803804611793286981214738978960346548964646123159063003922309028347387832875603993704742141852682240144739103712957442208120009309159503955666624756746264420716034646476545281956389794248720003986397658554825260283138400496993274927225898012385922401839255355264906896832980028314607220655172323867422932767676782368532235037231979062766371820384425705476198212990885324918012403174181066144797232854185533699851404913664184662306017238413013005142314112429334130331014304669398274492068727633150497925271614881185962552621748482750366729885494359128895093659144335167474697382803452642509120741763840092909862679512992013805575114643053213200474846557286339785181492622781526328921024086929428389377819753989919603448955835114192316235039766238847275706173395013105497727221542428681082633683799448798836780345824200533018923762427681728210047768124687270349770996763853274493332062107349055926796690029820070250859451026680774831316325851960151991507022311337578542504350280238733628974022520075415335525959719450403417521057570078040014173308430572721729686221623885570010770469527880759506053545658830245780491721032281080140904810382837833928895632476405860140549627663289163135375720498078446932237703799888994804959249498532204719474176608421155910245078330901469150639876175660548193419165673078693454063739767562625799302771274952142486171533712370856421927838247999245397249092486864450955786319379000212754010076805477925112712221970523814012069105474956620943969671877577980037081346914646961451167970111295255117522539125632149667938696747530630328956799045025665023851098189895046865786499186345101659174730596756202928164267228319861052133890441616811547836501761971192905817263942331512804621505132506490212768991618744593482685534398424802580399866596784294916509487119396218725070647163496766541025985000075130542641002758587338666331802637155832459510834449907989668445140052244431308613583773325744936431043185118038108268173085970217991423075587647623719816384336628133567476151240895632632571186606964150413591224437776292827290860852002260900801239205330868475156808822987809525071176963757006372701426670670207632021131537919439147939397049638649769366881227868516949594493516979249971190938739357824480648459295380941782972933093203067863365697737823524579529178765266351707596981373431751355240889435055993932484772751307321814531416003310578502780771340125762776954116635469077071319068478508583258031510311471880429814121926553565110261604581653378136839105420110659954387343827981074279597864757912380801870367081798379014843654119456821140684921595254768642079162124838218553951778077345700195477017485630473909575439667203905483446806137227556380268051353691725194150543670760433006718379852035545219412996146292979027357115801452202266769018697791042760594027718410885221007100015168746402047364295673260143407175714733042253005903890267399843146492122276057138183551597234165241484345022448214159914376775843394731632387812967446772269979631109936890415123961926318431573521757861098105610514475262706294713997198613419751530216419910548198772653024830181255805308890152744106641988669312564554683561950681967365762497599132944038546628189210900318798960291117779564116730787501832910975337615027734248829522946315912412755888908242496186431392824820615762618002631049225203249934266538999594640875787343375553215047648280323592965624962910317682015976160970392429488805258960871264035594705740836205295835057161011689200671114139260880553337684058862331642427951342971744359166238473480859942188590218105268506524114210083578202094153762432853977115876390129032912204345425942544933664352819592448148878952716658042949985126900000029157763837031929105849075945661363158019906631538144176351858301853200647336022816205731957331786181872807849915041483357829274361634599741258622388053757364866507878157757569584578476931495882175303981251948980044070897844900897860658417544842788893955074628115109698223820776098341634743499290352718198767567903788369299464487540295698702854076833926876652776155533649963101413987518300841167024407323486442312242536134283403844033126352361237898719396413299187843847760074599436246619729817439646682902428508414322046813141068879240887334931654833582539898172641363195662365377561258431629366018736765286144806142660785348819723349412707700550296694838368924269590095155448789406737284734454903992951859724441398115894458015986783761970342745053837248491307573675033192626317100064314737692231697390638689110640943627180068915780721703367977496571026229014957828587469763691743540427043767688578829494488768133043503216429885454291688764801665487738415891159103640289354187441061205022533037516026049822000209507659148075566079253874825534437179006840994002710302608080694832561803224489026953695340923277738191241503491385821122325369786786847919063248320439351528599135333855566148534105594516460151645924180739892226528427890090764314859697599522664939329923674778442327243373437911130905594301864398082800606432221701321996798260190848275719671854373415164771395635365815530214109305429060347405691105551005956398465351256040296193249838555220503632805298659333041147538472431175247549218433061174339600083367846403599778196813625023393624529685767868759536909805984972659016775660001775194715620439394075253768380811640585033003418595896226473500726942784863108432654082800422525280439544919201830301708806677930389287853680301113195578238616650303241116772495891102564940487679254224080528918703732126969659291939814618363259905404765708529008091341844922810056488342614461839971535607848808655423508385977248527660621716282448077521490637681413062165159600946239515978260181786219339485569509912231800734200677427819060377962635239594950463585612277924869061844654476074987303651410809766726014230914499537089969301272326799994111127885846022487243636566223786987999740680300899596501817188375820040470380796783539490718323116630323417668040725054220826088838489288746300063714117028270041141643727731326342294090946928567678656730396310840662901990959866907515057314281452304896668398907241849192243393925053295193481950091451625940586133503880651089334017358278491726447045113252738726721884636750882939607811758661604231000558715042760041354441847683932435460255280199930164505060362691744897803797006418283404870400101976065607006428545556241407963872339726319370234147518369271875131096298227495435182851594823198750243442237956735966549524334193175993167077167359926272930757333346753827507968666506187582114848781575827904706182664145680826700546699471964647362707873705553329699530788908551230090234105870100634173518473232316157428528101727148709741644051340191540092046339971392667772540477833876445247339448353654059875014664337804907236526458681454133887360169645557847958617492869398982892260675606666281776870693826198000678264599314030403657403981842291938682027586861591102719715463329204552798191276780270325098598316561305828753220491943931149512295356378825703552780415915066145674611238756148524067614254466810965369218007900422839673760557148631820095346488729071045337066447422564675471423327701020591265941947339671701757145668623874563568296998843344680853751787228019010266619375786955162399692089025914281817021738981668624835766645992974262491954489188383551549521119830941032646108082145709194585793201687226772419091898585029712704825892371331379474027368328188702507965446131240580826520823726699748061194299619830254584054211240988116367278403343027497670281528487145788418662729214536429685757984731398020844929728391799242837365246688097708935736626828003895252711611646205790865901096354810902306650456019746430495963338755189016271525184991167287839438835231506140865614490404338565347889958104144425931213019082171582609630040718021640700791394930666840068337343505600072563046866828727844359137674174724154132601310858444246323886338768238047205552599389458790798483416666891477383387761761548575185585219749424329690506153699285720002597283248298998609595374729050499743473460742041735006675666499181870120478099987423542514669517900082972693317732281116877258063318860731699094752732177725611315328079231873422052517425328732845490335263703003343796445030859226212470604958826581337364955172731362746069775742598858018425317973099601831466267146957638060593292981212888773855745241987963754119980194260354023201512982713319440704990787127538590724446243497862796525528716609623429654981167514068049289221759641918439154189733781890115675282683734508598364706159882081972231858282781828662813102056019747292448836745040745191168566461162716100417568904393832472081503257081146395181063104217050671699705772951912348866442564217677367832509586263140896201825907871004291452921138561921825191475155023956134493993034765848389628537988248062623654183078647639867976261253151939596576057935355126059157239337017223312164479826721521565852507645304555062105650754631525455004431996914485251442063257344108909606094789406664860298227274771998721550660916557169453436266030997571579967595139378873214756596005756754822897840697673515437144503911676838695284743021480902467390290711978030758845584769643160176557480361708809938962882080534822247484614949120010669020215496266673459069564981320200052279769903668645565118870900544808488480174944194653076218531448886204115158103884885684053838697326339590587878301307182699460230529042552953583821836189392465153705995890082423519295349388111925627977168986426497786341997421747651754847685564413569377115021715787693635591424931429221136384844800306587197486034807780413647307137632792383667235391199624472923971691379738540531315282079698862761540099932659996413538717142149925574333556762529693395401877936419464097811922385929978132405334533120487516667303887071012095464210006803465878528649897322869264452834133810944446124352132170735106130124112432060405325496167387662223815879681015446665707541451342495190843248071467932712897407802093280333875908882283712442912050279453616527020191468024437404527936270243121282028834361639413729046016882322435258837373105680786344320345300907668276743940536936119276652091566009816452411938940335529197902243488770784457179279740855691729971828974334759855158999060872455000460299308472904437791069968325291137816147713962579397062237324707726479260595369955907478284804722429554656017123248451528124460382785997460760286419377217028980439757469032932717005551926625799872403910733008190961708605333948838278946527196898362275247849752053630431162476180350453518765905360293968814226555709525940331157954419802683091453252036577510045204295114684138445479127703680759535310165009717470144830738769704276818079594629279135047599857655152100990539311808125263439183081104063681247773884650479084117656339155343499038192802107557488044845937307122770705811453118700534886423504521903379688358989055219524764438536583518021188896857103080877577907467413019960275291513515883343038576349955025417673600639611977836218289469688027317913430569640010450393973796156789623509051529746102816974998999833054413240911199096977419514185212666657282237508250675626141998753834479806408247499685603983251003854142367656296387576443107556967123300302074679499765194297110205136287444893710353540738253626297372529798686511916448245088345723619476346332389301967636121123317649180836027419376016148598803371542079551103134838658013459498780268048709060737054564585830221777864698027156833090137697877527565611361458400155740902027596864258555220334665849924172700889900250870045381146580650757025322382263349415502506645968420641195790166850526611920247343218227837377403867774156288654449811263371941538174643666581156730188810157500976531733026039593314235096344471325272624142446816421207115644802074551078018404115177938287312972041388723307510147523347398175198068109360095270365474857809161676769259832853237233299892411364106374299349668633832597597002484530819866058500127797205574345568975546110898472068971787716316036680894559111351241092840856322070568214746985519827802598694772529072192969274595703750314322105298733146695973270409715674494592266006249896838432413270479474155610672365071171734108943676303502382621753200199446644568231978391523347012281964590433300946188727592828501256525422274070821971408603339801943603805643682373875848381176185524275544849168042687636824777937762823494487254464699633062898676477557986052137518841256841883362069570684803253781248920488190938236085406533362563506319822980301795350384605531497057637413500589757429582983581816527964221181153547862508781077686124710353160044724367659607654635610629900341739414014938022674005445635672333405711559378757566001057567851211849348194653264898527472605376827039438655398361595039465357591175397698283844461215025572305826528281548718918448231437694113771896971640796688535762264111542259594672742321998272046730487524365791397625997709479948079745917978836798468037929919042448319530101363459477304093760816553519888545091909062038531537500275090352493085894257031040407284159662664488895260580571294033937098390687034690351761261276347345478692273615954609893649988949196938041780532629643635535387255150280026983801623751452469788315376843752524855551269859419088591623647572678392277923940872018815350352652603020468344792630732251573239392863049277589421521056807977667641670473881178669104785078435021499434820516241120969407906177441074731015529572444225496716474272262337099406704520080771122258086908086894928288889754787522224356013951172607187466329151020986984397431761344647474570393364688404634868013949530175027603628028986265454031387305594400707411326715675961428619015692787236743991598184849548323721775600301397724161754006838463862613470380666691608185886100969943531870752519291774549819221857749994760853621075722231586008739584599344070817159711456116334799697625791512242618191949776195212880325051496233568764810284720617697040514507338859148742538410413902428232719626593788376879010937742536174351161825159457091148082551326487766532152265531032664260472001261246380220433913261267538970140364348354635801252687518376916225565177245364128783912765810587002741823994246868888337990555426973342869443133136063659083125566875371921080947770385677675764064779559564872621835103651089797497486990044191119274613694725422399809599390718281577821355552355895879322514068526415224347388039726765408989548448335269563779249401839120680666723234625630053874601618624303531163284351752940684623402757587642682747704580086677426375453212311784325941174849160441121740572492341727065748113542598858999014101521555267139384377373622284343476513654046359502012206394614176690172464257544136117993639919408658137008765380057118509939119742177966987924689224460126811005174387055393341823205758456315707252274438248154778092184463393256116817643163260024831170339088814127830462299573329823004044169960484913613630695553646305082625413726281144268512146943615909938082485285691355017366489379086464022664667931972289291365237819472143133864664243272699761048597926244937797721163391199446405044513602417694652875239003149003869004465273384969322795853005142911513420134007232499494401369688468577558935618982866898476252159482916614833867658537976718201460563009611757798492437736376047433469950241022339822078431450927419202893530130458051607445991567838160710673453048696873451461792705612701534652034796426410826131553773573481285695224750834206609068583206731251325868974591522430716051742323794065274134320637233532232599566428848158415756505411596393099730030441839364976966844711443248314589864916611671832420258332283846304779870400119716173626863829227873262679364766181475427218710198424775567310167617982974585328808347199297760156657525139499396139289627107731539281108554598268632319446221354301620685793817255717676396592540875310506827099808520184552789571282948433623987392010265761282279838641410351755233109264102827020205557056320617971772782155814415049962787986067386982966467034818893952037526283315555498695025828769352131261703287837102546196360319797230674826041003244663628463955580776672401573421027555072986791404314076619929278531111348875934768111930257694350053934444869037651710589333628916875061578697914466450311599450973551639142107413543592234072284570884224517168988287123722079632136626211266560698614726753280630004642501871428863904271851042171266306138476241100626493807560048486100370661352827940467187118213695570159733632022665888983638130509221756512536521676498357635921872805000197043505384562184259665559299927013597217302973164932273456418367206304045494468050295132606206313246963918894261127152679850200861846048237043070041218076426259070700624979972626937027858824015551202421577939540365659528664208733181572339501051615132939110721130806007606238133918406266978073638804264886307093606059021621905751680478787143259869866857461134359687351728980997092427867003755761907870747069370642914034977683503004055419239244892973659849858802369789009441193198545299415653796196648622215999667919986509054186473721822047264796998299511301518231669103268789635969709128281201574884229997137048788382205511754909955030650023139350143166737439773650021420416610231019082288963050144144173715681605293724950234338958518129308659656945092800795506349095873273897834658429374926680379165898272444831182868894881066531394727404256454432570988851082734762566815171083518089174813013515591014626324465309288927376545316188810052598163811233043584451814920417110838977207745792062074193522557378828457758760392994884007094277078390553798863966565104618412703089817123083846473739775062510678096882044271451555396507808299089137797890738010741986471797139274410348064070887977102895920160241728534561592635904877129296350367608557421758003861600660274860399321008739828983302052335544833178602167884023019262993703885309921397452942637977025361464126553828383968130204053281338703229138289918940263619575875262971699410551310544298018456950582832212885374991055837321150374305285030676497441186368590886420509847032122989097179029164872265774636694641234010582078267585828646083516025476116083754519780045954790542767707390150243125380705526173974440826385487304073766404330041201440716366915278437693899807093360502071558262507033690951173464874985591764094000479592024421121848622919164271882956356374302990552669216497061338110648969298488163101598135896007572229269404490937406768057530200334153785949312424705942149199501518831409299476636401775953786388868537148841226806934149197971832239619479666954757523028915598678836021808561225206182462387928202079893770893934567452851442530577888688270125216529201620099529838549328051942174977989379546215900369227305053076992573170060908849544684640678429840291624385860188386558790681951735548024335444446437124575894247047524902703182043470624137512283337732290247170549465149148360580155989108664463560875953644719637937144433307122139410388818518359512986927392496768165049598739394115046548544489282941736191226622074922747072449111219295404291939811823425722614529188442081897817411904195969586306905751551840963079613322234552110978711823826023722764408726160226148053438252811657660870835492615094337737274650032389064263104357124194487323170841437374668572699995185363866290789201393545423443354447088393984821720008075386953683867892938092483227524917234863842571469735338542751987340522766762245850310868733950039352668737949722827479358711596313804857016241003749953687393863001054156560508595058689085362023220620333214328058270335869286065634168443658295803800156647698515917526135338365049918203275916468163480991499591493985715182425672873866904381472088803874576279464008038685013922580927017051017926098820960048888274562840780367021721910236176427158545987838356170557770628516617410293321594754883969411244602119794040279175813027781548033259077584262867748764979597590015999140044996531033368893893168881414855211185721783129915092220428963511814665069280273004815023293715837139316440006129361459980614674517506530101698761006633354625206041282746625775760530068845313743617741365272189593312844933033425498059434582897640451723494328566616383285562354854076770661849141845380816884963051467562908142230301698649493404014937784994769768901962360188498873189718086466773213844167670479862135907598222856060034200071423047261546670978014366433597466944002471654197702014570486592406184025981168298921102732564900774114192567343698701947349199448582280657567032741123638918446816881671540914819634496645743186528924384415210277111871397535246616569281443121900295455686616139078245140188309438986125675767312951609644293656403362197750239016934940768389352367978659793363890127019940323169796833875041157289338072970623306717700176474818638962105675704307089800471453079730263880064536625664812339997576505468254256297321551515703551120780244809565801305935122768450566628530673962632000850211767354775715976887241448821296498626085057745030443162593144769102261193104479851227431382182924723449876185260639716424391928321962528640943777730345007394787027788353626372500369409392653148720657160723151765525774822402587189583441926090407742172304398492600477710276745100783017221610635763741175862384017469707684486090513128005462319474004815950816039064346689480610553340322075433281917543893255577671734031323355397457006818467200799465582388305673899793339589506024084325395991170410837827655154810947012660760267521098526545989080919576730492070860657610187813280262509143859517832234225199614601843542148874303171662197119333925697208802650123471935753368274546417531099069771991328133825744480744174398624305321373829128810228078148769885683731648852847168096029402368086821321255062444810925957051936112373905188986200472987446184639891920927140932925425517464938494987413897331710862612932076917568408240825237938288656273901695564555970467522726229218984815035847326508136863915015805950950940501320389323987951992879369314370757594774734643740672360574522799953228659130520433907811218372234805069368619570506283113019239011404147296173898645266842391143556656903202276629705296720637457626263624938229001974441681869034620256682425366088110319886241672748983107249069188610446034360793746442400477188792564710119755181526642006725176564446477251518299992792207751653040242511631033738121715961690331534830734056244840699176298387096629627961540674836242070421919096923369351734258038997993205295191959769599213229893961870557566805236874009570592895941047007197588192739461936235620934703335836421147135635203700348599541967789129018845192576461191047877445117765645637050069449032255960544261607179722680446203996989144407666252722437819950675982701446011667173175826276764576485333996793773351701475166531181052158382818038888683072488031655843506376572150985267325917585896879123518283615543864189596246703797071547199920939978135095528110411246430176957715883571544585803754228246409343355924747923554216550987924668537926030351708678160572376559116742988644713079448810008852535595593488815807756156902022743895553706448082923878563668118445135927006231485044784607519019545335072983110340445676022813636639464424706075840050821984025715694614600213011371028638813993498976839437017702977401940746229078378133133702435544121271623403497367077964621088136274236810343415674927529925612870588562640836168115997753739538489492737677806056857245194940064527643528031875827325835755172011029264327825426765994412396161840049972137660139656148034676618113152242476545922902046768679262335024922052315602900168160408770798962104057778449920823329426125777171986936274455087416073171742582294968703098867123672578966933576420095701255923328153064897098797828631602078617666885509766351034858699976107014785105452414195262585594531658374073103264211542930888991655791981742375220601002218303918275442554346640371591439592384353404356012186635728087506323508670334897382345799163469363083201676505025389357945326189947859685023769347807966411871328995129333651360267417086158136374268648917990684195769538441052626527465562639155931330751554318432182372549932540583051763068871503183847071280211459862728054024996053336773389098294905704132704306865772669190314794102002700791438319490455951611843609127098536558827231305857445858386547651918935479594533148612313931686276904806452732684845705508473840584013340421461718120981441341978877789234507520166136072401241991037744018799024354176545422290116540664770727963607833282669484019997329998546634627082718649666288872605635318815493377401515503834523278054163411586428137309429492713178032203951574598381297831244407150735251199018904275802162477896945087546519303982351098518341116922654154639601894973398079518096942359414359826755772261799380379605888434851111901435030349178966431267959657765070902944141398668694282499858375474933846174616573542549884054473553780739172276707374260321881540840316124987582803768425631409248093404863108595307138804424287769292333504965604129578172539383631060820511346266358096916755976339823103968475220353715503341770787550000503732379318283851376624430756394465417823144792917080329576018231871524827941103933635525001878518526503652160289077745211148341186413731043099028186801034043208198795887234572207810040245238233451906338448628149197984041213268003120481645521793858666752370145308566959120381972793987015944133356618168363768248751491291722340710527796278228494207626825271598093873694422787320073557812365057697827466924965471544301917876874963586641566512909310116444902054161675512447906996476745875202997901677862793111254549051921529496721834590477120497775079756299540580855535663871604817353273944367192598722330272445280760721287878726108248115970166081522202577349378682675092262713551156684262900325311823850766727261713205765911628929920920236855684765355063699632662980984971534287098430671160357389887086026569072006163695013234079768457325444123334911762574878845564872436751648702631784432331354364100275648058597192886099790880833532930456027441693347867878096819371353095627568867149650414358237183589027012348412460366234836199423374479378541289755763802478211002705551207694324036675947733489305590320516887657311630127589107836627188322785649542606767998074313883826869533341057494955162900410401811120248285007832800224465240471491986986723610939079288089489264470556664623851389248294732563085821480835897827596571857326875708577325639985249368143760471535467527996734057991383859874724256942484479034747064592093419483890972244997577093021091299775896360862862286951071192028622250595641563727774441734039413914587841263934874228461072124527830342120037874499230310477870377954643937581653036954952546714339290504585335815184960494484172954152899236336936867492032516295714543846243093401700938520249787848253938979688618433386924382409526585347257838850507451995752192094128692352632789486245822683710507058562764998043705744593388335602419911422845995250322584290031684872319722464357729503911114155300708903505534365636058152348359446606451542877391777312397133318306376482890641097480511001521187266121633350142932967432157520230679230804499106827299673482625039401536892541407522682988710097011250514768448278592458558672930272368143066551675853904750799823802158504807280948053043541980592859543944007605653235440578959507355246115250210311983412935283424891429875901143605014077762925138295258492004483363280618701012197247364287253493259986748500871546323009663643077938222709046804581757002219101721408770116026307359034127943873795191816072539935631825131648575008081856165771141008012340122469306180534531323758030081508869869897020022491930815988698293674152976232117515488525553208184057627660532396885886865975345443143722945585071772770475015408696238267498699931436554436204613750191942974482340352120833659036378798219334481091471295217725470353104699771334739400275641995475945809512109909826757535701357858780595813676972595038129550338367064764818267610133090089361041667531211217582162900202755007051422589262274100161774501772375616794092046434624885081677308242607063463534908027908110797700571081082737183347263476114470348088462158209601289842484235105938793339674386303787582359504639570731614475247154331752638190064405198776471310070049810312338275275489533765612467765065114210452735529715511820594728850720123875848844058284565938484086517881007489184991912940762552121297633269882767215853915172950026271071842733747163250657740590475844005220155722845778509250704627052661750930115671810993174227993373717369573554615340670951481605249058593621141450759087522276627345667165357812959111655526060847195329118798872712782837414267036721924926954717475507213599465404888040328186073699419260216828203301701550997094660471506649310977198507068987646057268290496553044959889014307540323066581134021337488388174236252858925983872744393678311813351653799106733802493438264805781006350526092433520001028230279570170628289162450121798085501109151436122544971206867303266494776535385171061474225283054778412871045755102522672928006473392960085508582355360270111230220112467068953374174851134808185358259899531742369267780736425281765416542566109854847887059257350668587099348048663291852678063009008736139176022179894020799227922665004521331029464934088509797389971823924216496888778391422740537966556043522631976985834351513525142424470552972352161673620261641951608636953867795486400138052955818597870107382561232155507494628040318645438613612012555375726865117959897425284937539039730470769348225425556335038984417991658900347070163746565174720606755060836207736760083713421755311017118995076041966017587757278793492933500181694044340479813470805464414796084517330015971421665858930504152357966415191153436125431247059123880393561242819206636688286108106366682667915277625967650205007685406731182404025067989488601773450362284725599724391108906546520821309032160314703556308688925438447390026405705888397584419658511338429869454610056794135005466415424232117798478473213920944829795909539150501384470439573368573848638786717976708805139060000888216526720141229967875066971192816523300570115831045203419365754311409459397849640099819921291894190267933355125153373929671015237234586115285734248775823961945452164187196869167854370795468776262024989606926260301780917507200588176754078421617192417249948522236354631561765136150612407402144060178509999872523982746814334801508363712506226173044544224862592332615291066186288855726284300220407586250247955842923567123125150236953311817905834435531897923324726788378185466035182197738955316933157529085002201530445844433590341105614497321185575008776748692665580429489707519151513901924479801870983019264895335122927358321287214273520412560269546636859345586783044162718260526610340492107313753790327866923100767163058953472733509388483452309601954717142197987259809297408361091835770745313714696414896422560535927051507365057207639936809773405364052614099814605738810579202463131198862437850306274415931653193595348664103017157150951495274299817494129075156285503167850453983961610023648888982783518464945044857630620987796973077712837530592441369320656847200540669976569934789157505094046749491902879818110776497576947294378150491492934583709101309155226620365750210925262992282395192637306007377783446530100260528545783209079984349845027099868906635247680882880767154725318324691071840022078273333482221463373436096697219682161867964690594930690702712392296705891854700298534089215087543634026681122963903554028838515981643359743652921870440938221213846425285333856671790732146339050959578859608789740096147729705298289609349229731725184853272100800149602204648421026392405368084790277915895129289386312263698111479812204392152976368895199662108409396947411252446214750932081324308169281585086932699247589794657127286545087065772622559502694037396817574800854683297358966434392742171664536732618369839738891949392025347294911999510700520367977720282307206134365350466966745223504547117660228940830234837351364883734611136352646805019490076318565231522896483977654928427240017845632789810493410042270494085436651166279826405664314387505913793382762240256252018157930803050420057291389629577481634787196144699512374272849245370306668692572916399279060433100208455488249648308255355822534437360575280313110405603570190284999424366663223305847718476903804964470316314732587765178971164162122013294467708567000385246152570416358895839313779888296210246887865594725692114363957121806347282408338570419274389947844777256646777253433188613419718814553459460041718750167083113463210525816516962543901056865367334975814022822660722592408423726917839144138894608382946800019857945542175124042224506432003773059355511632178675848398816428000780241450163405857043186740513492346718367157953092001883685588900671275628316122675596565225825628262378176315772100419767066337468604927244916671160130439364461244987845253062451219924376115557516070876815392390157806499860840190487099245253496018507893318460807827582008313351444651656585549108746688079796055165770411656457885990667753052131601033270708864605639207671673921918251042723699999495339479138404503467358909604464088205192085437768376210128767481616051771234891385642437776597939950133538971833007953650162082771772602963482085040695154785885943403446238131046910762220629429211647252018257767140864389527766313563964215234023027952884572184235222289185422929572279152536969463686118446671040802941352055319295414690057695716869768897892850393857018986438991215788101662804372549535931415868467646954260417330823066300614227292092701271576862187274928634908889188823488730864032251543232086579049446052931875473183560029683539139818455827383618096487264178144642517255010192134767745045008744743731833694372958231091686176370188748683985858459353494818311325041595247566087571755870053845708936912238770421179015632465502315577748997810299848860287717100555084639458475253967013410552471891009475841782769566834094595789358787856828260888083044907239627690133956095061480090407067998968297836565977692641253110677920123975568246395938008764515472553473499885246049362133165737972504744018217661277509720346097290020915527998025384635831400107277675561165445505389774292918423363890771909838638624399013757135597122692568001176956087187517695831178827514749908989778925697245302432678524268735654518287100662096474833520744685650094794817323509545204986753152332802318571168094845744562676867837706165102551034451370859841490863920136046063015411858615454706892020386954895806423192888059162469289332581450252564946927016755251744754528712762422793912735150102428610692219195027718980736556820023812707183397142996967089140297443452081165614146298856156697910164287437050878980754809160556252199008588100779428701068479880729405704915905671062413035949360631893754310958951363893833757225417383389831967286254129928684914514313207345399689033253766964195023233687693936614790772463177798588407262308869514010543229130166629271625534119737340902859729911429247202210001908349698036813265481443889449869161406121316068461252213300382824759645967345055670323895931961452275661101661449117987668603515777343726668191861275229922148984585313478767645217489497598438105479480078508337871909015476793073007958785658695772535568489875216850806796384730317219296908731860348948505175562880351005743410226716458347687721769525984319536351094016782798591175744556210098720413589524003982427617723400644061650455660672114149694214296563682562419058528387263402657698986235132611914175411969700243788658896624437009424447059222394498832421960344997150888098148755030105893941840091346529015598181913564112343465994571842154799223059855805992558215493273551004072425123837165320424104966409642001086081083730765897737494004835972714264054441336174754292413700464587869852339250607004871808225251437935980991915191784135183221591004920281551385829185724253186370461400399358607931438745683014186203758092563236637397737214665141114833366408538979855093457724599711832764743611693499709262979764351860041083303161429284224787740423015924004928129085994140718119797265980760177165000609973621140274106687556679691587805476746825621140727557175629358474274038365609640601340612608304208632972433979162086930174397283641032220640517318247073657393148293876332042755628306675332587599141065712285248296497837786904201132840124149152863168727216966058275393586613727981301087777093591055626504711055449896340006178236268381091800234394148640681781711066551559019478503706957580239128455622957489991970692842799345009161944711219093662625377294924682393476464588843877357865746306299467993592054771108475597800888131583412172206170214826306920699505160631555628825979732086192595732591749778765021988785170437795092987948695248272418033581730084977472030917636258547319460430791180052600291398231234976390119354799235888503323789768663063420588418637645251862163166085128939189269997573270689889065979330467531781866389271865277257491415374037630159648232592965179519868246779922745549549354443650779927045489235041952347385777183797905978949352522824928076550928179104598910085972818144163033384148177413638992422189400544128526618354321823771908202744291379426032803378499671587987054258623974283958343534140585595591181839779750324649837146871307722356488136417409392698311972972624045016050812483875594841166929089839184233859147911048926275884893169549198316389041194774223390634705727306564283057663314091869823076548565111288232242674792441334169294162997711470399586757404234449332426453358292525685418112938582397812289648529282433214081453029173424123543583478190556485865189925364266719398938478546000098871692790616591184901139635288163951320441184526742442193830205934874160647243180042376408451010612768632851941089781853253233808728681485090578166087956352357122243579822699654365996747609830420598929338323419773222962182373434837937928480077200664841258004819957143824953024736292307714101077238844512808916687415094051540851661552150281916535559967010503870822915743847196517043956096381376630158534345645560189971574383270911572051222445025695409162885432570572553749466683550608139835633970556919536652304288335769898847307438801740247559392924678154601453606594217025535107677722562561417012070331269313987865681757883276290057701274252002975786910459879742504205958362509836786551357287247075842180780100851801708994783584004966664823448907480211979851876703639501922773597802601421561656992946543131267159691398918184887712050140348142800689851481683682283522998951415095446340808657001206101984223393835135112879369164322079189685129076749365731581549346113547666923921036372550019455198806159883664044870228263394988840499903437963967113015142089182804672860601501977505529154414761529995327195533120897165225227617839875842244748941275205853270436115353360878965337079744728088021106517761118430703014421722720811531621105162647759620516768406003214549817358189425426078672743386316193021868769961895138986064254171895264314272593692243748044169071058943726633712282189856882824511001061437805792891532637630890958859249992605679515292476633385929249268991664255312365311210031561557449280244765822687987720049449817441224798373226947676584619786804705350930410309382250104494836298414665820544271679974372988389059712660582436652045367969823515504541116720821371562410640355925659269100685707892147358739087215875768588597414641416776418732657117232389716115678801332392076943765179753522210172446895494763054392757651036607158204207208180244206706407125674604069384255737351191617029934378619023652451678285285663850640516390799938120083541718234389411261471093371438112886015756407837270195174848411698679325235658440510418019154935643238132053609812781232793117421493213837267308970879936556769469783185499228644666560115152545731112028291789475113199658129451672117775194825771371571688494919534693926094685984246970137850732380430446676475931968046877112480600907662192096508395773871640633796190034196845277882135511687251826464099824217939025970471734935206160170136129981079068767341411141956685025205687241247168392529102401932848606809988485906798254113991647466893429353940834406697762305269492076513058705165638384259662293079688643039521478422457368999764507539496636832912462902062503805504171425357401040591252284813401538083834183244354610621605568170632303150283746983144876727785506832249141996846620433048204801489633319467741076280659217781127915430087777094411200707531499974084214720491402234535852764477072291785896380371219154058999332397063227357100292068215199560834949262254762307673516962427226483082437717700568579284345814861124755718390490975578401896248965274437308601475863383831935945698056928056593684381944338709236572051599362512955757258811144430884023167699450812296934942475526346001239843248858566181106891672526905199333602182591366246744095910161119156559327066859094637398012835987401689988488847109586576042709421598652760434932631970239109179634498182433702508516570343763695071303252370339321344858773186539670965751410513365424884626643550538747604643768299226257444541930044512903558498501603967757570758854238930820003521151958311480950434145521864175815152704752507533251659240017477799839595766935494415725231957134529996189335189221069350163527011111486850014893808187966510315696636069098589746991281431734888995047668359104070426514936591003557088964078002745896564909856570522225896974907288755797142983922916553151807901870747309174000609879064191881335170273579947820374084718289633261756831506906743929300883214848133261591925253109255292504175823797591211423016568136268371648297303666695024673664904229883179503098974193904197664474285946940164674621966607834418999494342411639851604058360853928626153207885244895870216635392029659291669829250076013218309441483905947667129597677653323869943672111829816197645198245649415783069474891083798931544940254499853503109071398778983395570284951068087073907200281759897740343854375308358809337471900016627440981639880225768646681935150178602031690069260604543475036811704322842785839787100457148741837869538525868752570742974934407987219282041458221613650219241505817741043195254037900637057740548749091318245949532632777382634058845158572363374612568881092040913956745623155164874564546772525364366232281698205613528642170634427137245127532450980732261096030782929386114755881306106958075385478267262356944352674602519713554516451491789306063434774554396950065198969134849367822189889762034478008043611051414657738915789441768518874524189221441521549326057413342381909180331203666378225148834959762946151095249321169994666969629488389655837112060729425317000265294747102441855640488581128955912708883591385591798719152549535201941906704353184662714995606501136932055051105924646233774564359588452557216035772544700325544925356727374212449083906941179867905997347270774613843787019389423081833560689261187525830975236027984084603061890384033076929548575006567259003218518691922438531794901162176988726889617822262796975460531952973237686492058547853964634668167262245261625433361769556960603624641253653242105582364473930381837332110141924752869730586220777627434007557030690487763118373067912330006799668612935027261045308475174034227403542195355248385286353919393258000355658997597390301695349613596843936833106450788349473809877820757637516861435730345373455109554528517704807640463572290062138613189388976224165752391413400400623591069331698965194905985595871149739814993412434126613353211249516034263654032131266048367824441608257107307218677582569454759045447015156325996210197365298364203893626736438052929235317834735084347350761689430886350719796288134957980756909011290307773399591550982405746880886915531070335968760361230280529874117203778373768619255235623682885450267270081444047156517558976328144064537048355514196098879552738621118124477015474927584692698827928787530021624220713798374033025068520506146126012385751897197337421545456086908144088608508127949145872876774456968835506962193136871881178617340922005618500865525238671508527711167161268586248156467190793784860365319063946637097909951351329844721297192985490249068928350611669402182072568757534563848970466941175601183549877811192471187854757459655178327646300048177681143436336694108042635177648786589968699938295874005201945332525478996073363217911512807698328799806632561114700786164975751184028207380651764750147239707565598263321859851407187686691313224507572516075714928056591453310340841336998647954789913875959078840114986443485633534788226842810731321103996041930525706853016661386072292079896828685247761798947135628949564463538541156107598748702524690956180369836880078901459609598635540808670866039610202141802614981512296217792731167721800399859762607471700486593621717816725037740162868478276455426495644203320840230242863873977241779959524113798935921978997083151416726410302261293787707098761247013880804139381409678194028077480993745827064481888615359527665324477233725511230209551089070949021851243285781587953731315546580642084669560138941635082384574381150549338725518073567854843291653839755579140445539824777303416916717190006311724637574683322072207498502601846845965185139784246242346307603076100807717539187134156964667844474135245875482167973574970174609923821664834178989960162964470748319415235055555446825092054205867140864635563287151763693877764008596268792291025796205529591429616392063413498140093168559494035748868295617475871050679654320462413213500822740405465752166717652794451197915909160259101018772559070846284157280845641179952588236881523181046451394126176062541001277776079715275819479071051463136655953858800392912148775922543389002492550672842829650660953450111966242542279764695891457080083863449578689257538724814787528073555931432295020273908992123278982012791524301649359955007079045688399699299545238361579671715592651741808376361480017631277046216621291247847636976023809302477068042264103185126308039852174512231595235006610581863840550151101470067325643017636212211411210863033674609605301402151278092820896782451672367029302988722727644698698564798728177499744914236781094896214586576344808862154494489251076555207430568647158169455383872755356868486285654577914311909061654396733854903021358673873310141038154839848850535529410965042252822632212631380222018321980472365182264086000644146877507200520707096533479991903458861256396084094193051212788896522340214404632641434656635948790088521984103197456441331859883283536161913763596339464677071923600707804184226309135268376220366246266302983780664968349135108242595981260723227936482423195083932377422960181002584202046752714905693314324251908132403068771718397356122032152131399128315033628769293636363577186578364345767476674477402483649676171391976585858509332191942678403473045218402892417497263355235912879803293850242717893532048514866735876251976248009736876980410508488023670331830363930387654671669354231023176563988174992973214063608333959832447500658108737765935915898600566684661079817109528682581888806022034133363258019892855232418754705193039080517592561861842208637227028074105595464698250373017037641353523109239307783153414685648275595321958281841397686756806328289527209426361339862138436634961557727276682335491425334506970875626441648114984344727683394113507016396861086295928685381114452650221109871215732692178104063924705958847026641753394943230316725612063455809141889415369618169147583043652007405001409270427676518491567732301672677009757560968734240690007563617336099108450331701390148091988232289072713630782185768444444901646144878406546907235032325230750904882428763860422107273017904125908812498371682946418754738801647767667842563234385385866486859414676690634839849818919039738745584632402945479889604830336812819857274867757972219029564012363352390793239314411867919675444712549882279080194736495035156876998420568515654520784186851768442941459172721871400047333624306121745118846027269922081978493495014446459275740171456914825461739024916018239433226046661270508343176682027843968745369358085317026933523578445826450196258546660875597753112156413604232255785388212974305727309491913196646575095198153199485783617755756849672543819171462467055018497201266885208564335226060066336846857793877463485043281100476598656899219889729717648819136211981868226201545396490294863310627579964426986858215947445236499521547447362506428753623701503776485842944629862342266679449426545769611509515101365371654257384195916212186836290162739614002748523782464879340834905284399767286836710118015919747852256883060052516673538017459740047074574880056165251507007708518498046937641834191531456817265595644478572965681536812103943050268644577080826734632724793049235283113839413294905840155633513282172502553518433112990259941110485863816549334437581707995214738944201703998862224429796876032046884968364594448726528387303674187890522957055483503707576998924639582167585110893117183584089010450262574312868301648310548715122404348941535688728910063880065305227030647229903184578495365964039699306231879727130316740084999448136557457899176458766786458140877555064724383340925046345417557140398897719955761948190245887752219167732392692157167287157719945098724347600795776437121250735370500971801790453331420970967503381969240425639875024313910292773217792502883611637166494775555883255404186037906279143653942272779561442126669523308050133802794931258307261071767414333826371126428430728360980741295627327992580515203329872530342327769555175058945727978115015248966432503525392927644365400263994431105111411311684329336387127123155116658426260901344829324169930690544755215628971114812827409515264173197744560993479505044662497603462655064094446052537652712245441572341738563730205511068383025004963528027984472850701513608003542675708114489460670823355548991293484734781790476346866760671117253533851753978145037905739901384677577892230052628916775950400197423349577102969249756009977799776924416429671681952510253668833239055543696737703056056916018927973050542640102801956035646829786695051595077098318221041297549824654373374997595806389077480761664514128945064075189098055214025353628128285904748512376903835666807445405872584324502861592933009356262793594303411268148901934169114831748481622443988465429478358394317196398094568617550475537716226408161299173888300325060907688092611286427014393099426943410027571556047705686857338857303405984202447644994233030350620904352802709063466228845039546510540565211180687341319905518542871939685930055771166988980194092717774757279283373133082206274427294813016719279822600121797887765804303299504821460793003831970258037643070271648269500390231008319852060880971452091361305831750430253300429468063188663110787680591353500579633108344377602067729327410077285519072313607284050424113969916523340637547546560011314262678771955965550866335647722705521862176335197933640028097670360415928531666335158041713053941098361754897267036086348949425959352355047746118092210023020660226045378762998605971941974196397266202171541197419105331307280088507472335664085234398622027938415707977674543262891782438978649122958816681795241654143755633092503675302604568748484796967796734107684214319658253337040661676778162594789559415063355171367941608631247208116849229725164051441078091268228627366082682157899855808812861406475624695043084278287474432107310235596542378413541141502267161982255220484414173383527723712324374834924081116161265240838132650735523584882876981112723784233048259024325310710244825158756263675160893078108838502718912324253723227774626065343590903400506600375817683675710902441989433795668687663065739107051567551842701708818562633099904089058154456263594181839627188919143375733538542861006201152585659619257588602788016564019004163707535880531174369690968679653914410179480016596033664485439063961384672001622087887719053702619464609003672498106007001947743395682133215199204719961410611296279482686514791021613695585585476838053576015253242194001418765011568437477649587472053956601814565051763283677608284476563693589856782406681713486440749678587021564221287702677161846331206285826095521867880596468159506247194125436884497728141943603083464675831852032746278750418894044094157182743158695530054771730992341326357279881938021458487679356541312191849424105234203528983398465453394431739012067944249403539597762481383716129138751776418785515524926166161716854405294843115784347549862739678603588205537949795165311472072814816817210559367767670587380129693217970076438289110163252430134803288125727645273790675282969980859868585456213030799373313335590137089014012258186691959632597165662217701728268369632524286255772251605645719734411982460226660917339848748086833539275253673395604993051845566745920140527890250990410244901837372056345373425155232613285882361389424594429240331712512724646989796394986000988434576436455107216346197778666457288806428108668584472911598438335190115918052422283580347321336001030228965747276247536965835796627796646421235572669036379600021918117175026428970395972607299551021246298261315144203419302350286506933924439383014720601506399180525816749583887925197672591229276840394581898575428659952673954679617125435040505726194552543535916680453323245124060210668963842048826535039849988859879683867462348859187384751943216273966725351372336979959364457547862116705387379788066468820169907327148453251092151190354899975882937883047214947760721999035147507844216326804885516081193731333337364199522898671951325332528843404209385437452950195274072955345902741497612979699295076624152876685253191005060483181292024331361294568082620151746339905860214666086444675721429343225086720547910712807274600916061780216255677727685478067949491468316312349822984784011238727828043919997109738864006172877407656691252801659320615441071418844988977675718784624141743924320872522162690493794473966247940463068646015311436402065035008137892371646469712036848699881633011849977086063415340918407025872614852947075242816347434530379829373251209744090197419902112171716252396731291006899997211068049009917774424346256062586506299067258876662614923947053632353291410126547602017695755925578179559152820926300999693069759649239415946513362016588311198553366063743544385262349160511569926220996472172189738359344927182783576146788121639389062766724058783117350243802242156179123409251193684414467024420533872144711021193347475869767631455071741194148999869705121984317866355204943801370138825421218658459250527540378700901336441613666944453761924711631215009585156994061654381247640710403336060804860307082403556300273180288319031837064841138930308647648205504610550864990020065761522004918033487175513523057382376179365359432909043597423248758274559403614015729057323780398468572731982325951026298659281881215897643957092388021467127339213520785763196533793844026080770499521362687591703828402472321653901336251128768670418330097027568220597485022318898611157033170191183383289195621283426719424857798423254202492738408487252380504608467255978701826168158483779505492898070214078344335504816479801199762397877468839394855945609498783356828632427128850701289991492598102643240532982072319407379762503152783324053983171767807178916818277408699233267411077246937952365392265408904319619140565043249488815273252689358449629036533049945552851858658569129369528356636882074129354308650936912091328673318637290762017332468577874509263101943887174698660146904512498351014856095380805638277139808801149572206147035754135856370448224510320380348179216843613925801387213298581653609075340848091111407442702353187064256474172624158867889480409447015562120987310731319894290058195179193511107622191531982097441640110155439571559396240004682652159312883505655686650699955696757507927868510744537891399311392599920704462645888305783271438587162867705063231462106503065194009961558610866762653985887183828188894004181556650866684990565030994956462058446147128340081914429124093625750244260383707584073842663432139124616178575124485006252515182772623925489047140122928260689694112602625173946491545948405224898356610721690344461296150419281394086733833403505062126530064996866365113980215169521368659144750019410566712694843153438191127022473601481582398874154440334917712630386695868556388327718700798765892697973411644516373631709903284919488087910552070275552159922069526049044237496540070175603603874659262066438438476940239462415706221059856528653974986533117296102842356305926557783763812649286078362710935764668901830315817989586456475145958154077006845851437396385102381325809149768559376003298194396888093019259516519030762651771342892620221958645536229630624050336356643948971255744790555767939649663887676702982743120588705818170668752021800634758353167709473930681188352924883064632976220009215721085796247799681428751519667899410243397400296323954687947564416011888435740010716187742295179131066890330034345667043587932094311331217929403738927589562979218091143390336786042835066763896453393463776133584199533199109266218375955389847053427105413339127644557089858842108143186693948550360526432527969551674572520216760643525875157712356204874036295681093180712593551674968328255001616129321885038686334538798831931452395311137416607532901298148474502122560952286700954870016437044870555389470350900461699567299533250595028264435027322937677382889604994352941315775269870746634515904903388535451546238442056060856204388279797565403454117798245773735413548834785272940186049836093925271912609318938984270813056001196272485975597640277131085662330815020419573617114590075805362157110726507907054189124617177228692277625965023653590492240081527029514908731293486091346235573769896943777847867624398611005298760612512570681754026527663360390773322122840589243178584154028732089604553034589378290326699803947277236351058332153434476232954460256723589162067225124107323109196129406188776201068932425325483053407064728051118484708236096054083854579148155243482261545860906494908889160659196318562127389150175173328984367111602412518671763671239798282765871361792925233743257866197632380393315355146612569262000489616717424912797074788493555985564429442054016480460172652143295060136718695446750303922236926372990731395243613002407710379749919480247999977991037576052261311625349747858341675664281596316887429122847222067873590094864617401416717274167568527428482219572132489338875879485503502437668337067851062717128359869143981006627860543478504879077267553976196255083737983862658481358311754886988088485027612583001932732489398847771175710041561742470996099850760748289480708277648230484128703259351112065839859129761455272432616312812338961587856404692261662079352367305931253592731652170247643308754222620819191090649894427910798845562187529863719021090087432550304216355249985987579215916214296743554900329846978478724508810776766760533768278539680551288802141747184284905805399559107231915864874924921107805562644206049647554210406252557465687781501652932641133816250592237120167945926853611824070864424476826498391362877183676044833710092816672587957604192452530233377313423483704965875460116939939338044441057927515767820638717541128183592799313161455563677410138928701571018542554115669738826447351341089907814656832188174764934626155894461163757948465927413389926037788459014975645835622160176897479239434069130020300192352267586298575991336371723207963329200943674387409632376968045163663955843661363583197603938050944889572104273839724845421179848487829075286160154531971134907643145963598321699456063245052240129694372106041097767661111177545988886838735676410703642389714974547213930050816605512526081660874093299366783032426031918802465238181303152982790534933618376485565259067370904433746118703440093660336202737659317863515833079287708971912594864118286644427037884275397143802015474114578547382983464461014722798488682315076015970122271710388307226811070784102749161022294502252671062000347479428817387193201267281858516363318553241639208898914226237953007873599786303657857869943663096610231160749099492302977218137220577144076167982243809372439434138277126470369828394320006185003512297194877922574787730478999118846265884236751616478634272200279061051041571030016036753569717444950638648291787803767096253470639625044630055242951358576772495471845931705865711758157147450212722434816573313953103986106093853691105042816519444093405668135327256133376270377994704936078325620830879317787319508483412603180529199850488833636098107118871087964917810945454704580080141071664279878670742825898820198293066419066112448746678062613193047573876044825257433136621598802349950954539105883520444557302413627128396278929312361307570724892903656128135510162894884010374957406866770063754177033164298313860876042666733840308393953911049865860397163189838476380840892775917594518854869416161421397304703521785965893160972464373342947482398104782666803105905525411011817740911635345960890553287409367515008647926738299585298300660113292308751057272556518686421847657144226046996696136747883202409431179678747405038877274145895968080763514088010327114264647402073618915771199926033595714129685695378430585618671682222055399623927183249374875653107260987690722873703519961448054663594710329932227668763012773620601377358283634738274508446748401719854818497918497280733501105157231749964857010165036235546780962577987220449639275134910812429778220725504219876652286918812811728480620956414816728660695811341791003466593461483378941770743791555243114224633048040226358568996327503975389598271154197312477236762238641482980185822504945382794092323418677913770394064561857367813035722377263621894966889284094568406843853963997748215512481073999510148856110192203917992940379338679654965757439332080999976052249184664229677061343802243152407368759669033798038951344092445764796978207291723166092116195490855682687142612827397097223089103198434127062359755705971632304276247514646370621488090026003099249433356979682049165948023226403851774741415575333443079939103152513336164254807474801818289307277613934057959350237204814888219601647262662656457017355714829575614546512141867313899814504823375840528257537520037419408066371065619191974531229131148017486710518041911680280646255057278734148233088123871735289824855968013751813463587331735202377539944025384583587716986615878482335863627678503119027464999814571091683351698098401531534027967591075445228009425861397703674456568912239346773789294727602999679877468142568210736764109314776575193831296409851478008619699379297001954756142985877561887772443892518577694537345649159365449556968622794550993746874345112065367330727260800105507797645774801847263608115371157640988989016049106132105022892218584816266347314799828345077623360139127571240113515478151181337226637011462417685357663960304426801683264403112087212472501259452543797987664171488326553939599945964812995024392863897769049769437114491087160332427911863254582936717731653401003730142380712808315233931380600015303416460690716680082707593611898210211405759672289739290876115233139083629520314311328762688518323743414524990685541797778380755346951258033618640380341108504963797900722901448968257693414576954866949669418500139501215580645836105163371960529436218798145769530734971347933365808500038789978933452116083344506751281166683094611476666388919010332155515425520805555905782240198720723697813197007976078337878753724566360380707696658540238577314428974680379227755686416700700493125638952925630269433831890899591101869148485563757764547197971256870427479595205670698931230036688656789961223007283653685469720659427934917570961720175327232629704372458611870344513297917547404084691596702918579072163905183517366452842056468444837196768419100667105622908746959964206399147960587398847276199131889721630239949605608607567972700181260533934030916266216830272098792376191805678882491760449808229916887913643095507316145525991298763501707644443026978579563822185287513925059255576547320391190941969760522139088217673736467048154958720987962538285310849563710977961918610061663097618881992892695835932549068193948839965443280557699541132032427209003691494361232811291844749407591036566855224992320074163737156024772927475893594338503673713286221196714188133272284430426148402752424773072167470810651976527964865516305327420815628887439339451035624924414245717380737108261639356171703888147628269995468481194638491549669988862822356936981779355641959516118750709300826864756316711191549074779538790541799193547853696551886028471759807104960001270461149519674907527016009431662643275084918349357119174442989704420575333375251216432250944282223932650954755246635117070167765161866582987132651478050396913749957764913006611388030414807453689092940798311014798694213848434288563432173868202684667503882005713121505945766316029670805137757559437346620473159970092186016384561470714987305025570785155840270104289279932409666258262550409395601221878677518823699987190496734499952162552977148888656520312418754130905197973694799903349683569683286353927889757941396498623659407444568950327076226557720685857116563888118923411418699208859704172775546802103285431760774377211457830879416306168886587887822320201362614312011419468646120700780156858464845162061702046299867448490019854766974296914211249563795329008312999284949834780552705341877857912738238703207000953368785056955607478323635564381588875516632811407255378866257948321529544792272560250323129277394981922999558992355112969128141193232449140716634824385224396041038494642689167932278008020606317383915106148778296882387972102872075222431788836758707239461424973796479551087177987201513991800558772929739578674449300680976969565809578565740370014515605866412379583588968502915457868607903327624937790343462168803876384626574282585228574572438266596968675438234897091467043655925472059552779373032752692772806725873781349294178851624925743097831533912623579176071372061925382742808614018025681886030550908479672589433352724489266743854433546784636892794487188677426908206643088780666780276824201691646862839787993814687673698432327379279180377624257899667842917880337270927424168726419369051066974666070980601379658135971583271993825500722485718997578366219506938008852061160911106654558514603159061021304239177695235189066274861091925231228921332446902563688367932454799686114574293398529601369828562632643094200540770889938585413777024601864127658926547655189703341974303538369033812978748798895985544573440489985972705213039653240281728708175060771870198036964616160281951081110576132914220711763440146884168829675406029460752379032312253573655650228388207012667615196355615369538598483118897678790122483117177675858412458222608367841452207270641359545989025385731536841259504327625665337005851011489371973714419550010146177389629804685667603485665955494279793427108714347125102673818899611984836987704822878633730127079528240930833226940795414705302666321793643937033974191602821931793560674255722263684905728880241652135693170348404125959403703729168270439205453703941571217320875448004594058905167110823111633653248587146343863373289259264699432409505201809679803018598463147427476097926033518362780816348532451584764016648994162504322139886238359566315663164219957625170346800284040117830145681539726885538887699960438296830350745148866174316769119674551715572146355685576538862178600278705241439169972969119775034834528389347420346876105732135396392657638979634453542401616000335289760740372327703942138155803706294803334642919978299694157080644738131310606261791331487270437272899473668316542492321427354838029639492417591364284653081929449196891744239984917709647703716843985203878667315733475009916002206660421875314486968356625527313729278766675075915231248034023030803927755136323494585682990311436808002354502452441898410234932854847095414311579641466700466471689949367638960847962694312139153503642918945389124477292327669860249290831266812572652894908654967392838890143496947783355802202057211329519244778488567425887622907357584875516407208454712823147705437930574753190617636564566052586505898951493082365717402087985146260761997573924561336139815327549434764112099345486927420855449075098780616413607283963283891677593951310013123788858468256114292510690971234484043688292479592091923328132445871558260178619095205911851293246943267433291976421598818265668057922060531258207613893831448319647031955502398422305914441689598988178539668698631723088836752172527157075922746234135370413203135850377133174577401363763342283894654737698176455836907762688652482822785621139826388974346018989466039771490282506514236697728435390390170069735643481954151681933455787681534880314663075143714639549145640736224105930518105997449372987093150247914607611792016409821082367249908694519772974260695294669950760583082736141566013612247528208713369242244629877663493741409271556952662798604753828381123240864125576755969016896041135972159360968859978107477845427348433126955816358317879318732462423251913128759300841390129926738762055454760012390310261891649690815146899604235606619944128864685048919520874099577792001530985763636203626999861597544381221442793699970669963567196785624490158872458066793831255952121130048601224551714664163403952707773506962770473274506255954682579219437748962911521848549269102349500201051568340171310763391598842003374677103982662392778514714299350814004147186314652321297942097238779755722867096847998570343736745983359545699683900035296409418869309022796417519468766814137120509626016064593423796827474356785902916699385219615694681289684076932460217699917777549512891691250181975378591337823179862752878993858418412083351162094157148702024570236062861389508970874474740371163940035956269263723470038133512168327361213578298070999483986514945859122949737905031875595448631618921048859938906977160340258074968568670842841863978044045711977565494173566715338970314197265417309487071545219903241047922888764938476254719989112425217490235778738248980868602027570822652681813628501439228792819392577028386361695979046568078628111347596687920659006102378775554733382404495969689746626682046693152157216414184598771203480868009886572659367566255984954467258116399339742350153030146445800516109170632829513098073545375860459973768040989562510021015951198417631948713770253212092430398070719734508171262190903644426279836376612139736559878551621150796588016696100905671511791359634090890157840254786425441505273209580851407673398271001504455479934329837428238231316623484767854708079810814980883832114519691504912871081274185842627510469344677991619046956244396240556329459257881403776833303254753864650719967114060958918741252204089344037013219944646893619066728203802774862711537824900581478546023765391280188545248616872825166199740040498299716142092839040216344317887370622526056869485682685550739424558268974222915148916871386344930275102614225819844052513976552898759629028788784858155782112279881260612783035788307773836067307869160464895122352520073095318298851294027327705893034021302483256884042434483092781735129392740312515959469447437085031361446867949402231651915959202204823467263294851475887107858148590250180499943850984598322939238391833476302166632792171853934500391099682419620997658402385024112933795050596666073895091513378935111607756638902797121780945612860698901919567529569640516325219384062387072908190933559274033652239629899589439329803019669200056528203030629361661507952682875795919743004178361769791830561501439633391019245233392947201085059892360089266014752353247348477407628400328855174403047969590737622756518584604101415001741203167236747623401420172385204082120551981540235070447904994799697597335806628752798542059524953745436203551745243152017191894143470482284539431956432946009165553708933419186279099589211964603424368993568710142265059077759853700246404801597936705206785849225529569624752609287536275379760923732933337417908765341312850621912798416503939730074863977317300574878592503003007697838404054972460045021195291855926667730252540238291550511796875675382304600832568399001845094027833659404870706489280086555686678128607456061786237909189199444153921657279297963473591397006421421269913180603636267363578548154977244673311293417710652135047864422013072996899062400673856921282746369533839204970905018690490954606705661221328680977633225157413033335478481292474185083850057313482373545034456561057324320772726466764473728694576519797650316560328450420314000177466546882712035323253613629593175136929698936756017406352866744877213694608330527516277560080176265137637131605787325191674961992546111386903350009880889318586021752835822157092157350437220073747818943494925197214008575035964349214139602235150556992035097137785847766338661586726942745057076604327410620806296603906709934637294925339104292746095458909449560112742279756270891500939188039797154835780932011868920219634307793945599986577154282972732977988438228615708817302444776890458414826745075117925009901304190030336089308204892736694267532676744140154025461540111574112987908703419826383022236527283285559896519945692365868559878600682041427048629522952906806157322141094614040574919813462938184175057692158100645882110207926948719971923316061704425034296338334802636354822432898920799494910044090608240494434186859309731582197857828459759717734980618939402362871083371688611487002648740774639842792150540039099610110299277091246530456669763726671852669814133137521932354157789623058789952308416727990466984962382821722496878642280842658498842709582591603956601674541464564912095103771234784119006203573627812974791251138582014963375120200445637429424283050015401673489452838127120775446170262288278177872802075023296353765623775438311071865235768182686219977151870236569217884091987210213623751828574286745980119820284897821220821673678260922096312767885998011821634546249275365265189026820630250495692462173717214017162651374829506795021491758927762364083844574555346812501621379725617994493424844000445512505893562228969684350539275046407199693288542426895783844010207401289046325369296510949362306426293949069680353564353940688140050401025761408381951470904087885402732304563590766129449143385292208597043671631643695389537377999693006836827234369115003794824705144520499288649883682392671669366780683657125797145726926877226664760912467015645741595266111414642743727074270585226745880472800832241842190515510068543017369962447311482111511970117306669402373110122640663361707875792716961255147234335755468125536481367072764544791819517323752815478197698727964985037756651516127810080234629476577674204878258962465910345039632956729861189377430323348503151933809726167170850495089442084661813566772467197098688812270744023263698425303568350682309684691669139887152939034015452659140923538235513332429290904624853493511919356519797407615163518187749404730765145431969924177970162660274408034423690113242301553308183745061330493633785620700527091434034950461055253389967429298347764312143321356080985883256172456007603155311641694683012473408875547272993365440317179255250145684894981475663401376006838871116844012904710234265678023364103246092984505241388857450382299725714392875455331666243265659492143576599571007472233491329085942978717375785209102608124791288968780708234330476073555038166522483429276859911143831324690207022473007819021490404678765098454324585661141983164190960304683842335775645956068636577154083924249489634500739530567331595079363622447765393203596919240441492653164769128930423088727075575553770574276165159017199364292587432126917350446813667497373936077774687360104511445176976597009156894105977198336690208732153778134046375214268276908602113482901169592365458097785653519856052273642485783167910761521257021076938908361177544296793855638848312093507153500817083454733983158420479321280760031759806691469494235699208123576238902730565358303159426776062056523249453872334348946541883866270614231114323040562703763221530051731580427580313442740819562982444866337039757645505228432978117952886220437972009358855908376698893514178378094025064258227488943076242397681089699892823264365920622794847939983725412666567586772239466607784487617899428877465942540369030911769252493017538616425361806521115262710194385427008026391264838228331684703682309099650731794810034077269310795036135817316981545377220999981857006522124693985704775227987748146866299226485991202091766902739230798798801799896096615579273089175027310966846482268774590934937084682585658824663431101082311032612431815946007062630011834252646124320954050100783100255440916562858609435585082378688167247235398460416249558969326439064647275472912530073359865627056816921326123037781174165105879700015552208867692883280648430853460400145098799066337548810803541198002095398005056765265758305344838432304537946223970967705884472692702471251753174282922226917850387238697926433005218766640795439212607190579988228410393392723090869038747057960075626537693836741717003919764511525433267447614369867521612375289454522069657814602251046347724340891134825305587695683566654134479552713232272129845263888132028604310938078757589100494675287085296877971126004404804762358017683613537083255541831174663889318387663945786129190146650342157268846569635951423618050661939583180351522179282915136532111866264710051001898057446154300390971828719131584224320648317148558893506897996264884637510016633829922891012860809438596057371752068286882476954113300191222075278843662191894773659712650971263034238648676374336768149710360085307680942080979366897069255843175020650909971155732045516553002397749591579394280550890757570915948721084425526883467947275888015729768487928114557465591842799627082976125665385250965531402136154417821626718269452595146976524173903395972241419769377811611111189928309586580420150378037467001146106640162810648917866957413323885127760776949472403485160543253398190825560732068269002380465433670168066098129026177584480149877020352085840286515204996509599911734923889076675316869419536677396835869427042110866312220039651281551906652796399291970341254061277995810925463845841299360514701640255344153796870360468303786692011561802718499765091888173503394865359535647665817276315902986141433966184237186538690362934206830710749828271584645049256335998075509169825661999963472274494198620261296993005819254040788705415204676526937219867007217272418244626942634286967278158990509375414208153169625371990256952841005485401280824105794211751985469414669468675084147608843441713344290920843995103928197493572089329570135307864125510264075903621008670253204291734568363665256560017072649703385739643993474543586995124910449035836311393926776351863150456451592903086747701286040785596719140142348617848512634565498074053044951234850457026636563751655841669740199832860493943805253696872244994377986065224231269468783996558372492359963370141653570064414873017201730532238061390247402352891677872555025074142998063390050763644961275212734121653058862531767270706612242301466042160537546332382089199655784528930653869423726104898183586214794630375100671028433756338974101140367187114143556609313964549508284952919173541008276990631275722447405770231301237667243847121522753761803528575498566525962517854267371452791846014379836938720683161295809840983770903630557031784140814164240636873647130363806603858257084450962607369764011804306277330080023802698718449021249572982035875155081039142555440985136256845022389065912023690681478828122726468977057614676252738863594351197092194081885265771481942994363098031649199797383029833823167403317463662462276868042322510539096816323291425803621054660220687399059958209379203685618850094415710438092342000770833083441142569012862871859188487107023680132078893456713247794070092192873129742329067950028709865808613845389606140273533468692762815766103266831674635980239862664249554065334874129828567290687371205034359577469204506634265383381134853979297849431405186724640882450226724876001897477414499063865131027899629867559408607355701390971048057080849504886683844588122203985582075412973720203412820989968309502654114221347095317078686933210037248061497828689062334883457344026367147150417687771600059878623299590721402400993424104196982233970319809390698043815691868140050392074732684971334120136143474506978325974279375801970076465796010939265651916415908709279363860422973673950679315265694609210785323869566168665323665268988027443093344045349027167066054251107183455966990930484571316627131453650171560192435083843799665305287568769226276996661872337263782329767057748394550278983418093770739940941217436830175956984078216529028121781115595557781663707154049025307717552239338309008999351734574908807743410968644303074524428182842947935168743146209339224326356674874176759607179693091141988100843705208292911608156654446815894690752000239135859094265602188777752024652620107418315527985772667615204143248759412838308679060783042676715660773857134855118048601600430863746381135905394599604559363490368454297279076521788099692874437148129680692048934567596524714854247200433874828450531834948937075467479114335985076978541662945442874926071478320651879706450513227941238696243004947269170262717671881753202206568010716128567898591403659166307560219363770331946198260869172390820144074975291552947370504042038845471940106463742518562793772815403119269264112312439710812437760560218183802203574419057595940030416093950330753707911592758983928097814523461934683893523461911076777470863230590051596590004149186647825891188186525365068069628488713145199914637153016023789799816538207611080149178573310543581460867161897262017475924327392324832162186924985675540361625506257064436059241638097513045615809988400600975907722147041547630595424745076601889630737225356348131177515330737780181193817254064885770056814739879022261789015596313571885108873779600833293986330934388156721378841233299576969635106064532472801887940690074220934336517651361611889284459634146189399346777152683240459427287439518470873445334821546008210139665715093435964228839371770181069708847758361586611057198093001008044427831985116728404204509888301599342130123034489674068760751830178025140888278025921950061077792257568475706674861465075358869759373650932334814880072298095897847527061732955470916970964305717023662396587998428938327546864184114102295136902042714865547184533677472935452110580878875662573481913402631494340132250696961135474358456735047040491794181611997553893428340472372991984783543285445540355162147518782477729808871165111103138616326343153855107369087314212418306675642482370282352128575240437375356383625006232649423142977359988614454514312100442052679125068942123013049435251427789299521839341457930553462631991546725452253120333497848457039399167500460714537919797526334026606484796223013141086115544793297436124547404486598581789792140272072487967505960978619702152489906710812676500201271526894973006174785794954363550013676645256762850774638525060993727504891840477459796549408118498054478905088319676178833259481294225086458545220779692287834973381065975837389449339011389653303603653077248371272825355436568531274552982405462292797470317977440285173259459010083753484282050993605537835364562287300286907099202138296854759182213215401958649680019152805486358645239743648595265149504188221608355263926559294938849999867697146275865853246762130185841555771716682034930912776741464395114512311806371806953698223520771191723194866278504593588116499311791592801928242400903038705056080154908617287715293055729011482870105053864949123262250681583495522586701617385942885059770324355739691030109812249732277618093199499426060002562889666942563104278273472081136511918373665094882700106051622094103686523036261419337087784557983043389123189060426660599445083304779968296751001663966967482187751496902210029587919917254037467937960679845896386034554159376213630304266918085528403801316516077765013374669187780490167888846232905114376557478678344739094324000468948846182718056460135951103932245957498328820597946782840591708421225870872542790595801578472081767276965295753165472531342510605358642866345547750710930799299664443505983288961582258896555756858500084743047552190073809543496785638090595559877069325189786198750725204974047550887606703786826934367820455388031992408389028393621032978415492378310210823209618989813156911217636539598732142323404732510415655846075059237768511531704754572027716488097861816784316761911882374158692421257309046736223683656073384516228599322138719305223797437803427077742815643774548600434530333624042565243241134167222609016469717604892962280094948166660045060395457807392053699246274896971084694428804009182908139137590095853576398812294879388610131959656696139037570437038239666482349387043226815317491356675021927582716506340439295712261762879510208709036464661777021714736314820840561966766143664826738046920764555066365899625232182781137828255049236400225535594109777330452704484080132441698351608054396331690793119157883452165091275407913592771491295748576508856669126509498815299937086354478541111715050343301857669642558725420210127818946804781661626374750826868209650043848571548791143647134605204017200165480945196321985784319938534796903114049426633958204870737649607343855697170959048171195432037521077190098046012461533030994098857453906413868979866667202427951793233542723267929120409915641048729818228364310841279385279146637591219822193170342276960569967606733076400611058619394155653381204587407296797407430879535438724809849692346565599725543450529061093940242844575462428608704964535415290523049994103402878271174069241928669096936551371643537951922751864682176503174813852875389672739784447840818485039810796638306008202541812620953905295607584133151505631162264888910111123375414268874825592470579535658311301504068836896234057797013682434315552088060358982001545311302564049951881714892140721306849051409784934988415704727607429293825460114934664614289815618920729481374201172335339580603839120774780821526611136651441767880398677624417190042662368614576204286865301636861787082677932822573043721889060242726998719480669764004382943283891567173279883550059036196186670093236299315302899279630663041959583697949687889765427100003725875657891782933099799557164291678399099066710411901201768996616935125385882298783958895208865161492711911256201592271293570656118626881343728002391818442583076486677545352102870151004134437996203864470792947033444018078795993129865484691787698674710189659322374684371928690677208010260286719009454847824872061833250180588115145806291954474895838126649703970211249604920714467423660501492339912611511723808536334115494958421515435676914371698742953092217336262422302353717458493840159922401270044258078642289311080453046648491523816366686740441104743689429467965516205452357063781488077488657975480873641798147831318988242021131678199802489509990683724697350192861891044264684589745220893178648994825139421944556458529547482543379468189164420345630874663750570180465704174644092711610431707856167462996082504028818813882040402700971979146048076548586038764037537290151102931638340466207979256649488831648574857342242014723469871648382077411511849140377400653746160419997295084152146544432549699252851060909455028688688341332337444012357734334563324639067961784832049510242653004178458640248277153472283809108480962717509603471371788485972543270913002585719504194987955096932510456725944568716814946526899183919341842217499916670159365651566363358329683940006106227617633464512163169117690110151419814853308166070191615864241617344010717404482185097404147981399619187218317968356613349810595733390227401016631287779484135761504414965344743472078529784738031210200644387439845683396968536686454728670382028153943398729384599961674817114534644805645390776973877868495367761604911729829246745575906029078208909292314086607091199894718015861746537009037121941212567504266277726507071576538429470120482027933129148632820748381353240417728182394061153453139960833616316197747743634915399000444890448602187012419581816100286661650853414016110685640914349756935440328475019001402084266500328712108494895721817883618542470066067148259551854727787335761691517512212087408580138786517738477225066995402821989427085149423199720220406160210922861506563609595922297074713136747454602626749082896893651523161420152885771198048744950567454829350307864389662634334995998901694087676900627342660471951598291504825769391576126549334995036394239365879644180328726262128580954142718079354575417944997794761962004979048358067160797633471105752810113712410153703429871941073726773738226447763767065916435912174039900775002905216962279838757472031087882253133581108181147963286391484699444306323956645366463969861545790934447083835221869899484446285487248577571499587178330298716724013281220827289783760602168489639579006133652309601177702714067040181007230193075620939022240188637918529608218808936552919819300540022144510509032150086338305099894522392772801232552367374487434134469216959632957004543949471305028275244082086765381376071181653939981921567679168394930025809036891551783558290168061756045860907450204922873441512543111576683023901016552039070286902793649255412195734054144826814233881409208240189933551193905420613357223216369514016516811323979673786278048803241635493720977134187365132295153737240376863825521379892337236649661388936315613137067096524031714121046026768011612368621654982048509841496144258264188020288196575969541294787561229196525338231901268161134296671855109308363087348690899801278205647814207145109927507661599757374353668869067391369495927950782349251801816850128787007515895632890544969534951347957269188354842159959097100853003810987722411851130625438564515774575624486680502545598596970285790570209943848643950848934859062065978442126634528693361229791469569089921998608200402004692091481355749610724590445458435385640892517608212779107973895143043098250984242565958417826552957832665008029097706495914031222615945012364750322446510952021381352742059243713707093602794875351143083172431668549585420071572905001206578756997824469175928522946349246885815228529282539472969965223724621443348019970780093546845121230246492450180472311662475674666196589040346132250702460316250343437593342462798003800728655171166980950230583368812265115678822295089954953586668431924159081591768991659235988645411531435087120538477030887768944051081536089744270169437822530949338562924903457498896015329299486623859464667650866428028055535241091254828293412737971706459642747307568878939333321621760382355228362265371490308182512396984939109499575538488534834131157054310112222860577157793260112112677680599359228314722627951260672602299921313736181740674158071727060725635748076825461367450178573764103725574302242884947832148218364952165553675368596625931819484191409772654335199206370610206572685882491131500070282720453573974942371485014272159950737900425961184803006687359909805689809233650780899305674209241136818919143426367198490567889194303613212579926168482842472143764559663827681513547289913233823395132134612656646393628218261798222316930830176758469740367304726799226078390470688060372436409030402251887881365871627977877268732693027777282683603043950808452462225663639073036454856890911906200322080855167888376340790668778733416596857615191999687319275959343826983008584853560548179045429738013989636256951803275486273243093301135141171699083530216210509607064266563423521084626099571303241950824994014946474041987437397392626739739724790421835922605876971332027152240291698871663504779630417340478555422070200410828227395287699662363022169772276578532571293432248215645936185393260013366241447529204917910062411159751948735229039770585503530108902485521516983042964592605146094399977240227966169136639731121349912384100457847853916016941160845237151221573766898279228474255114018856503622699253495645102910708892069382142247927396361011432454403107123017212632165658122204523968332529030007192385760294118955011258879314403930696582192738846703830376420878522199053715343092154506765890136224474339815923830933444113383998452674669722538925104424745543544972290903983201626139621770464043076302551049662620426193450969391732334503222367412585071936183625591926606909376233178971086150885205323658016119974533024855759370355379116869754922851673215157543071557689485814368606288853776314163924004652427234439334389545448350239653356805924338020530285267125868976718027116422628774122135096895953504242343866101559332185978429106306474343565369042601677139763649027027707833799881985492748976696903243903764045606802628336069659585422171078793311847245245097100472183234858745624259174771704681031007746069601080091291798818551556891641412612767087693489551226938726253617878327783440594764947083131648095132536846699108564831428192035805064799223648896516044994841694773384212242570093712891454545937178359869712950368674745465857675311670658304905912137754310627487604525338709241778693890425533183281539903559748898861196245833669791261068794508906090747827079860254293980339101954069917914368370192196477126632067463984884902427127979819596096319472759414812257625578863787772103528916343255816050230006431615387414296143157988991181637243215874330221349038466617913015250479777311185811595552032916086801269871266981724768668810569391838055986291115285074303609595912826170248732306994999708420958731742983682878162272619734575205421194234058926523486101446493648765182697852395994850554539329754715101381906595168096304677466263941311559313456013805579723080372514666501835034139352319731789692377225890819214726310263631892223879395285589598656003428141895839697025291442315895219328362237014329276963655862843964123702254696227116340768572131292347525786656680190134036756030366594920589556112729260267632122477698938870349908704007860981925498849709997704639493709855562122561611399119237292260940874016747323939071958231134785445775969082902626838914439688088060633635579442065829490543014914739965797072821392417526982308120416793616797408353017248218244787113629752549286649619308173102822496172784394989448256854321947241099770732179889869208578235742574928487161205821928247774426733438968179292976876453859561779089401819302664661625134196428571862952403945282596625396517320001430543967240978419894507971230570328994982845348101893363079686922144543725567484517797383817106233490426001952381364915665916348365888890889735689439835571295205380415934689004681285759395119820763771734950856528187956189708406348557247279925243497067495732978040163310468011871440870707420995247846251822265915194338323134316458914357707290801858697024776574259143810102885652829179603189272110869545303827310594008802511146428308877386278818570813896029850217371224021729680193412203832367085967831899923422967895337756805863133710571029459615507537149188974773858642166906355325239718567803366811981029389310724805374123737801278126988746905057427590925162018824466718023797127608691794654884277122253082373901001857498514701714133417321779573718298000891909220713439179213605933330045825705819983605014899545602679661492569548626320017871721702965193058562148255822690457096412864465757957872610309660590367721527592442039133593053903731551460164487366840892280356677373262619930478041293205159984920138546396737835553483640538461367088336352015308782179312001058437124047552816155787136854864057175561810986347717049847696019480723923449614974758569040984128890078925250651381014421850088348846081949437912194041846415708410304386800105072205866071355929171171603000766642147523486096285428405361334588578482539359097329503592550382738335625133619679785826897043403258068445426298014528016212184865403095911161999477624620995548093622291846759472171208893368066396276264322840037588016068717481636256090684937358988706783706045077945737159109206937055114844490660517185035788889764014703471671308804071560210541264858874975481006333500510876185614920363135256092305537015803666935285527037144129260740261616734498265570312050646439865437203017499540667301924005441279477195123556630588281230379456486348005704642090034024292230038875173806203387099600151146444655230055714974547773225010162109428945385763805845787847088156136591339279090364601582433905937883704911892191436279220724831966943440096857016504986420606642086654221156384904353528791218561581577359691630175285562430913768874561520234714305290502597898516633831756571330658822723706735266725373863820150484675356787527342779407904661252829572505249769753646179393496715482499623763187925680532886417497396258103033936654817615755869551658025983652325633411841509637030247714161037318856685256333232374720418082947134738896155950933779536648252386683928051156284464439617544769209316064505201018033689963924225087593973575177558971524420887889596111286279918644086441741813093260970258717633276392450376259904051879762360100643850182046124610782862620773983076837972678269694876721080657819183363074278612768424636914863562120681523717724967357384290926915980356678307148476060848215033170884017586690472359709292317275897314725827067740160853441214959447434121388130890967967690385552549554406997077044025459537889403751339875158633948019798285320499080170987765910808134224393296986749138546900594704792889885621076350030970353540700500680720233707304654239688512150910683961176878378422906031778184960585315713105484216296518055435667409478524251835418881590297810166746297344644926738150604781580824282052683326010112490587951736216152392690097897857255850011863804140760668295133119284571298801467171080626677016404299696343583889806428925991930103020892922976039748549723191843486573381821110846925746090032952524476377645111895273208925677352295903211293088370533422461860983087995144174304680806513068513808116286491652331174128875381077078204125694332849344895592736976975095781205911805004234259961304150219822737765112284921433447725731602060004848742850834278914704662294200765727114473171896874584245955103932468098552478600259515160341393399565902340901163654512971508512144363181896681299766811611821257210458921187045540111386827783569926557523982994439195529067928818508051742206452399893854441930817766639402475479681674604073123136498208415473296695207604976772164759840739307095258831957071033343677071955926450920069705865919620238445094705001309642866398955111411294159125166518679353485756290497899214876937877591651063606886612106516366280311532288693971489886026168938485289290834753176659190013364952690633426666627806948481390938189378591699022891225589770365637897915726690545739068735790555903431561767076436949946525801562721121636781665838977595366376079693845197689267601062004364169413463124858460438210087951504102028542340628234824094827853604819565751099075236435844111291802518920976066163812599613075705630435314342987123485169933665206612058566881500597385755280824280734843934061034337479822100583039213318764071051247318929355734834691219765358243001573509803230423192333917691516007159755573154954408516448975871842319666886528136238129731006291551921441347412244516866516644144655481974786628894388726353583071475782408934738816796224518274187639159788405188530746609755160745453053735684067383071394205430207948730819439376839184393439137336821821860608956912747475968084968321990820102729760005800718268559525486743770316655350230820571195075121544829684741254328765628574561146903869649022260108497316841603868346045040324193289542409684271839598171360350480612584208490561414872075313183681035332871659393050845960804602865986423763007662674040449593486926893910365412161660183586189352899360637377396535575021072908485067936283641355439341563649433797606247479478985807022649548995157276778566960779238735192053561467165930397948048135932153067427150283225490936949625221974643189731490958622732715733435137413648171157323204794632269960395938380199617273874286324758730478618500030749744163506313425004455912558654027548533362769054949589967166037579711583725536459898186031523734287866968058457636550757937912822230672329324109918275082661451914953285335747386442485987971125329808813654809598286028297658859729886655377909083394311656067259783269185984949631689847838096243015576444697710366536261743920682512408550653085575023308034593009223582817706897252085117117443555758455043119320981522755066676037697333207089567830154832079548463986337954011279490660119927601966262461489951252354382979048730945257585935222654337001704379315741797117852522431842386494533270141069360793278636959248299504555056451364308410663469827538255894724775556034900682756266810579499579993864768409981633133813012847912897662426053450529581159489718542620297142227559428714116431002933939462935841953305336887135636939396109595815777259972289933412538659864536185156060657589039363036879070655862926555961668798804192803808399313239516553910954168013686475820523808991096377328526033733371461203999229643009604694915464681810161807380267759585689358419886995295842729584274284502667601037514373458218901981108045180263184182928965862842304017552511045176679832763684909837351693000724580204548774539773271691182239111433901033858050679709191420181122775105846025010650015003650564957254337799139280354160249243542566678994789470186041167457336601639110530711672408575475519830392205824698786888431239071437472803242438619941069295782933517594938283186529921266597157282901233366540815457272329504917223688360488162056505064330208295916891943449355332528200983857792143209060213327484326583096847794908421521716965369665752560951800853824057115675949098892131869654474605354246478522618894812296981417558697030834216107225888444160193419848950952719590781189405966523814483548557181683664736097517634442501007641831549884703459716603621737178656026087647674077824014539717902565351865433157493866580138733982599769427414910984566797197041597940146721141528767944366790547916661179250925953196585787717771975726761643300617189737432768586078923431470396483661690309349323518834418439935983127985717143736513352677288138892658119465618091274261668488199924652359841438785146201457970470735109908324126570801600755552401105308924122524321412154854263008944015655911483915470366129209640393509425418938595120489642999200616393023632936493438254204500942215582142044498949805464538936336821872548449542262740493960555527556286430924328798896775220408038714811156274047479772466445913544990704238297475436913356214821145591952469024621521343372729927605790436367581964838854798513976417775018518578900644123106168277008040522296151731822335831347487148322721467992049500307569506212682920023961531466688871971382512471463979842232589623202206625312533465906670548424138070159160177792549769915656692285411299472095597034692624305815114844924465226874047715596884133547243196185357486267734114817604702838908926476979237750618362686478357410545315527777587770352704620687373787894203998026204557953896147754563180527544572935291795660027199721260956649564626649356280524644929852772799155016311518561129595379175654134148820366419816421121812952213555089655269415040595172068345873881101885709909832192752427073817030812940587867389923291587674258482892794324315584414210932295649200564907502423181522310822609453461037839200030590005539930914883998947565700753508606534521733360872249059637509167471227828316603683817132632766112097800324287493637735784769318131522725319872688242365485806486206846087564882741859402816900178206215040748349899901882338484765533543194366640720239831730436240352809826228797839877261391471708898421748880862009697793121707383618845087213550892890334544797955251695877090599723268984831189074515373543068410544419638791038921437732386705211593502914952408724755764040870561554820469951226757651453508151087069893213806949443932756396442766079515956112532117578287357169611585969139415965822245549250345968173435900020672505540792243209925210223864563348027492027504902425934010257854299571834002206072257264495640153655324641014981589820060687386238471179229579608225959303638432168846972115968106170744080589087196782080110203115130796625713910735877331109076814698896730497246067503216506375568782079501745571228608694303582332058764992687535813503181296105745741836287886182564066645761596798985348655852580307244753892691528656739932581556824306669388471117191636322379600681159430687417391043162254785950904496107354060536119768433706711655828865373079073223937479499806350118547673340804269891374132632225138330560852297936230524790186128003067360089903233169416158216162872649737377596112960383710629226404949285237300671124739622137079837865762436365896329476107670121735028098197150010214864526244241139267927707176704079918389839787732894675703663058656231818204510743390879691387919047506758734357633734957705598135241186132006616247819668930776154148752309908031552560569715456052982597762141444259058935426308867775223845138824236321980741921435474484698508888551129056982784121913423135096806340342907441607208983297695538290645893104364495856700886925465390809280977737822671512083739404484658122821994687806772946715519075042534522886478675814436247952000255178146087228511198594437060831955139542041192692132782034987498408769615725318685604611758860749768783716957866193443929563928507117047093268601583461524752743740046085458722027738390689475208742868988329940651272868519960332156686437969502141752013106732820194930704778754645615844141288686837051315424087136594635756521568886919188390193193085578491024751446539867120863508316488015938795626214610422795731825755188410518307928742835227660543176391552780318166171318869427682988265731154534338230399340702209618979176078440626851892130767475935637726414985310786144445421978637332713898361387650316798967116426966915030388271155669248581481210687358638113291715048324013504051755197295914127710553329418028349595513386652187083133078735449606649689354860294268324820809220127285027075446966866869248746967930034257560768121227710482658852689794190111424166462154372636136077429687715665980421277177785329780572071260226756424006522576766834481861988157136207724544392587369345656530147187150703294433881750881675261234616443838081156566030767998063479488274475051953406245189880146334011544761655254790914401417772666388179633722358342257921505269549920234238926951568069763563925407401702621878140713455200672206746126178787979925469222828910628999612862635049154881051769486624690804690066205058011354597361303989923585347645398182540189078620499905056704756708651155322560489721588434159316274753351170434857347891059570729602335427602166832268972991460919049267795219918912350177312818420682794735056884478440867049481239427695493344194857691574969280731716737609745705785998881214934456738982968821428858048900417394004550808446910221978355464143162304715912447504253162378262129323827218689433271514629542001869833305914477076111310574197418943525777293042191921560465990386265820216463828530436715815298666569802686986220814288334016732980188617385004767157884747667263105696405889040486099078618682862409111484959107471489870252980240633436528537410911622148110739150252106272126757709490182071879572000162648500791441604109610028032994613161008844467096445088533549140724398320893986044912995285632479499923250475471937359128408468407491070426262976507869630826089892910253394524293307582448403230901559902419519903561794337938900328472560465255377022519213876895491228634363566392700947522587067099843895245924716708407975148184998822180213491138841250883060759587093118500154696375541211370047918352013702608921947907719741591782988361724215473255808928221558666753649248215970511642019722408321923807706090043330271793223499712435670030639037400149013316852972448872689613694217201865563930060618332752909116790053888669910620991527763568875595316383873725755784981977414155982472163372285798011658311584161677253333160203224806151132069080516967614843790623013449360476331330498459713878183118551896779729929863863664482610008218036583560984940783368864048996595686778033952519237288665389369469671543117458523737368321968118745397619568782016535478326941287927629296770668957728802932551199856491956379080500829026628057152146671298489460415329044689020506348030520896384110178753013175496324704459626855014953717074421817261639571159127778355318835340390148257141723879202093914194526415407900548794192792587465124066793391189640949292160191252604710831357799599741787735492324872218960984928753871656006446512143741823717914127514771271520812926280777842093079830179394953174350116103739857253374619657325463279359157622971175090414331229048011849392900125654799930021163219745590225526654614381338075790117905994840114013089798601024425278069485011212066188083847879566225957931776269568832954315631886557747715998785049624761969582073866792432759382627044911995373341995920130084683287939669441378299256951013579279984195820847216658265238028146448004129443400812147204885503402152035289094023754829047269918899737844999029484645988163700561255643420858855922865960654655529180474269014917522582195538552497023174371079303405419980773167817303331304844355978670175702291583384614333824753215860328615372708123194235325738832218346931284380376219191821707794609733264324292583668306332758934327732496131050754774694697627865778925459439254648356968055578558019986798574287529396161551645389291879999098015253036102037657240376459276603388875984628342584016271515795795536454469664277194586235066881147922548445391234825252618914576797388035155982354076965215841792628990414538882212095259204990344510235906661602668829914888450119339895115684351908565444037401957734948195349496799361883418980163379772338766062056686114096280152512979504477836914409287632204907559130415056297554969387391102898434194565737945081266917129376972133721957452997589744547269666656750003861230158595161066196766327209218484919253046349158830385194486151912736778353817335352998796920686702673865274622234738071542604726965510767415668990325118228409164086587369524361704739422360393086328082362609961088180044317975748274388817352188859684872851039298618640152218767297465306848593964663024126910286475352296493891777462249646722509036929104472511432244746580066581608461741143915585011249426615980406677744216504669224663209792976065661611638344354938151748071092182093658898866814323331515408360036048345429380982835500542739156847925703596121149797556843838790973914166396120287222591280105536080081963540206866262425133944486365666064300153020000124916830823960587005782598163163442162638294197611539722012896640000354765220349382665199808670859730448783159615668693992996954091967938421390542373671776713993375406738086086908866930546084735047875003535677984875974218724466633880487292483701100118835087556039937778191602508250738504601259616650479488830496040163628858200902624638298781257513008286317518687877619141366158534356755975852949578384690541506562642738586487536458838529901949475365940821008881216911332253914638948960256157826334531778226766536787805861721397105193997482986650103337515472087192470602010385163256834195217658190220703461934181087884708417884335893382887236278348646008395502466622359608954485589364398486384633552523506402476720278879735899860230923939822570255124491870216914995848019883788115220869406807273703965457270833581769627480219654161135364151623376095993456518809422950430222259104606659709777782383391048553904557649591919505769775515177039376060822356972670436338927279371244337950548518684793780201808776315159198855533544044202921435501395270046287417899095668406930932676506717835119512648615182322493119798328443000345770782173272459355301373698100960985942089871092887866110489027655557787408356769938388844017789847835949039119657515403536404248261264788738040266305601739581520108784589008795043907594609128085374221781417932779565159243812005653921429268657109300941874427673713936268867595558529997388747459193718398601055012855753008990732811241103616454242778177307245204640746824924493065269736607013963366119083943649319712020655505604698977663939592511141097315227614204603322026121674023411743018516601048691180651372642748583036221938562471744788212923508224898879564163489170791516627982392009304315605937597880887730342639179218339446058922255356205974666171197494473335511366991751451345426572851619320004989123415844165764404336690582794808195900176543466948796759577363955669140321067993087477363883307055316748883114614895217057340416411702174182038970225157390928305949849107582172892127410286143750868665096886746943364623020328786365212773374501773518084340658120729857708939613473881554364137819838558301064019619965552723362905332474466110645403394920795887214401030831448532424776300594692342795365354992405852539136658861910063641080581644778934209259010808030105519495969527072071668655534764627230159166906602835299893884997395677156411891909148195605818552995769490454885133582692055322405971215291900535701376565937208516130255653701581453542247671368494145666022489148309760560295172353537891253727787506794593308603598883725102399304415675499156696613957615150176906938258706123650323574226966217562449036521723612901792747232187045908218658048784427544473616654509344353959138347195984025313458930542792302617353212976337666338374386103080104036787412806037680236370763201740752497731721107296187542818343372227500860138924473343104309895598698076356776437838983111912116382387349916234047814280343295219378579063133511505307696443456143126463056745401818337395334192695380652495077508105105622152817585343207587003462465143016204258719215665766099089824405870341044873035181806762535120721101478782445307747064910047246582873926226037318055847966930322062743801438116276645060926814213761534944091130281619125277901850403355222532073026459544842210087235267953644906760905566520432524044194682105083194103268716606708934318842017440987390399129801634716746202333084888263569187138290698216038593641162292774808197285814303858456469471790527551831708012335525556110590385963232355647398472306128719698965481449496846397270074815923228444416945273032276627648221739276883244195393801107175976024557468968622324225656101999078642119193275809177040732678595204614230683753702923435599495004632898700136359963230416808938328884934008682122644223509595460369556066989234671830120014760404414082437646002668283419053986851031825947846950877023566400565262379480860787522928600303697609955025792323934073472455839875927665446284873073999607100852533066320261498894860749670197288326204595273927707610490065526631349951625234217532766038522172327963990762375636366115616189472617765897022766845220839590184914634881757021701449180120000547147135273239272699933164473881432785704753675228360984371561254336892347901066202108212006290584761033662254200314382912652809852002295045891714865941064507366221799987253849294324323386482234819174130315301597642468991990652967133297123964557691917602976869686046677960543457044160453500512035791751001097333983853790257747520007664246023926572279531706475270584439893223650430318284945112477203108385212623275373074405786932073421089120921186067597065121347043647349675718927033778644232486533957839644480560042757671007793537972529145506061861427860536868577400838922207948845525931517080887078927804435123950025044554236587168908695913747548413138403019315745273512710986464888754542009778161552413005983852102628860123823884790315494425224605059718404854829171026404190025431954031071714901810998025293350264363142106236261559672102856710310258218322208978430363784726734008501848211281272599921385919386339004400118748492905797769497627597082687440821637433593491723289162279393900077250535955884655335123017550829824187275603817957962737502098541022258580196406263181954248345966229228079985198164934414433751165307990235681074427345553051716341091833842654413040595314813247090734129608283640444023372542130178279221501190382301269156824569109244128200236411219161596700369077436473607773120077675562367895496937698058377808231889670477073484073998735447441021365649976895645938447808085801770951805484348803813425395800028651470621596201866710273975645078268339257194291265906212078010728167726454714992670853826956859851900087515346071993424764695750007171778628547626925797423261590077898996833060827806182147154702219972226930247886894131598889380152323398408945659137308368863593306458511147151210851775854025699395835084071945525927406074147742308906726152248336616042299324839582753786969785395999088434913765844392908682412901980501113115482171728563003568974166973013797780139342096878963639756001625461032343673423126420878566852231614925845714227418997942857090407840018678670377907222221798388871730205262788905708618850699716929056316898868788073938993685251215207301480733000484897821809302324690376390211449049689148651928634744109118723669115509741589796487750299112625067048706860829770911406986178747023553234593387015685190485332010332018833766056414786937097851413275725924735233493980285103673745839456939673793492720135774875828221241201761791867030515860369702284596157262554740328282280089491072374378826471327365187032016175528081847914532345917851647127996702984968336484620366239997685226975687986734014887768348574336343391354543468361251395808944441499927866178545804186179248332327102174844778261002863314095730742138419298417606546693252945096817097864990126231627676183447793693681835425408645621615844431423818219704442557406742776322525432474822726933699334693669927830241945151307190257091019743138047191532037373543496655657126178317520720142122774697834275071981934759092568377618216523589182353959379828026180189287053919201869210171373074709988958794417117802950591576207013206491887980988879392890834140724395339437568988385849413011245693259943410673562209320388329863840178286695937342038628954670304735207280278419737634157053327043408440347206970472948700450615032838909148696434388001557185574742914853024889598728654973861147135742256744997822962293684890516122060225472204725061744231298499649898770528188689040276330668402618528775275151817065137800716866204946596143318418001180018556493799964627108654789560753784038994350390965725876211381472357419200762636417090839175266789852604941407684561990768211789167509118463490943364627787618688809715467307894156042197867663229623861076064855997875260061515506415514994325213432647489957331539329596109128407085812567100302642760303381936562904564590570131223017842241374701807664275121203121569813384713024664306140651884925795727672611156710493385579690561370887436927898174953900750065156586858841000372189820318610342396308189647573482350517046402483895770466577602386744503443641864059188669428130319344282476568504288858122390615989429122448628097947646701602117614862126925689917426529968509146069569567435498096472286863162731254047120123733435292145475696623363034819958746269968000425378185001495054462700452785742378360682341168554006084990157688008960970789174850750383585594782709171426028086747524064467928261395585179716657060105633825844944147565641897518339394909795466834937519388329032678330990844564774510828406948412154967962992701536580602376464231807641268728930292547607377134057914091239762686206843996836973788025385258812454488228429464050479893097638572928176129933126263238540413679044942947855777580280487916183466311313248852592168541426677015501594622976230020213112801150923908509309399514492390934056687253157968577788110435069528029924886682656472970789682883646959131570003197299560297515270022379790832829121733348090875182038102132602373932009356147376366369933892832113439196578167027887379703976484830552839388334171963597057125650250412212115446137484559504572545367682445423714789778540414938478873716641129874985860074597418500179317355741989694766205572291217493441276745173370013182559225714105952683163825037354074521380019506169435592261409566093802650200452538931813724728719612723829233529495297789946406680072470633479909413700808069676393667040145801123712966261458335702073443993909280944097552696874861704388738944797124324807930199859670922999442437974702618938816768570258178250376506702122297073623438639873700207065506356585677770928488617746184366028259398119553819827545105395153251903010062051944867105177967910520433157097402039072195727900829441442758225754702446121322900208648274512275990991457086677071811441178206347089956391871702156081515497029665310288425315393762820371119794376351305159879794812965769063376925116029526340640366527171540123491861484112044954030064272799910726351305164559947430312884162990696992775097292485408377645465358070460109941477364292983057614590179073274291903119607851885515939490717845677831703935788652195380189033863781765169113459777473682801802673873283486721470046673673048391928479269557931302896390750076509633272827687038199984201219067168918368366621937387805708671202618435632915159793743788772677742111183101536127387456344521497124933483478185248915359434906448657802152324207372782925237177765931761521492381814076706041405370812347005854521780919231977960958990034090722955810284456536494819107343746761816828626898579530293794602357458597678177034847099433539049390501104912022191366680571005786976497637148000463854797645898231042154456270238904952177395839371811266932781543373875187018184805727535300432510384911873326036072281833528134295384644024701998950138130908734970612814729233313605580232733469701652629262753536692732288620776881487379777031351305910744568443116660589440409867106677758006353203835344304001975053167321096743652135653295372854452987796962933582001360260000612299254980819704946041411885619487161691690292971378618544409918115033150461743425719040488328838459312476771955313741141466055912034939147737001638038754001320729339986668847596119770182485119138089516331008720599902381214327966855655309309645321590673415381663744856431216750932281894162737183469679413649799339698508711620729139902279120248968963532935718365281261522915454201289707926584687197295878912391660276053195474582037977377278009045495665010448370861840154751775758414089897953901596389817496913205109061822715597344004641551189811345125711519693918948371875075306933101678523987832797593838005724926212261534864382771237152747265597416273267678822778218400307944147385318836671457427328554418691243985314878894609195101183142442611950432510952691249742624050993717005397098349631087412619302068914565481151202986233184173526472533942813101048171955541375473362372002900995651774474337087180374754902829527968325643523271068635481753112842033552622836803452832898324381351908560664665537752112982169322994572230395671713370616158836255196367648961170642655920403035338292894437697833733546026933827109170668306041039226290066061677389935472701811915324670237950812415391457417766066065763085671284976837498958369048950721376193678935280732143227591183483325173029259231051644640132758799780329980316618646986453340048070016835665125301611046388499895990853907696941751692881299176452581411867106805488412977407501919399374152496670533914802014234292780835735220179487835707408223752017317506121577898066358112983102992122188739805390748544471199892962297285361547928942290749601432479435271561500739909713798967379364779403659271128577953312980054545129332810848638397221448542898653471091249112002885952466016656704663818231617034076488168906173285787945536071160368859985123673287317645752497536242953142330213639729097671947687062457838761770817740206772407620914308002964969842533695866989239484123437824016379346865403830222124480970066290876758824266701656875354939239350558370364966199541087126415299398116729748811287724672966301132748955458525710372896756679510607384423091299509064995195634223700821498704906926750331224693630533392184873647526955050688820297007400179625904983835729490879118600944295773997423146908083123177787107517042303050940511052172271287698137557199236361711964376906291394873515269406643400003677994030731694349619665155418135289819708692716444530239969104426334932852727100690021998054208736360786324618048513218780652040508904424724603045047705341981836499251256150429929768964147217183794208277786516850818462292520361068733434692571313407186051786064944946835852099996348758373921165313388820716312680300519800593139148256679975397090157755698979159818057763887541641671311077746850829723297826181555001094220185024669759064448389458844858360570596318860341882193716708196490486147077593593372185735030933203786387620243813886941491539352442834396161187097052138448054506612506657023614649429660825269288515561199839241099432548776010945704673022019462428738662763492477654317860817393923456958678408145553627419084161681074284708000855518568801692866941506671095497418488780907770650045283607402997794864421565003868870104527932654775019994152954988427956846788407700409246923158718558534659917349175758534090800600839835669320906533021018497600314643035053417903651593784419352868373639547156444474302712380293120614050095947011101631127181286936361061982868860757743697982373904209133208626860859267159800110235707479970785141973028167783899372150547711807999807102174067848811324933769527993635197060322241147379043189875686058052743086705671179153596417886489787545968392555927428890225421144314099725931438353039387749215444767944185674154673307445202471170489959732043017389690136920138407872101060049862273195956691480643341867146365308003767255099188044431316556324832556753720098933536990948479813674429343247883302922253014656818918818872180814009954174514028841316365719096935855542202150370357572667498602093840180187981309418539403467455746701387571192630970924395875694944415813026482961376798460100195957976808710081182529628217757274050183275333161568693413276399089593619291160404711054933189082142184482590447466488903180586658123653400354838728748226671816296574083164989255726001791243967446264971649020252740136890707977198132733259779777832378799562482425630731720963904805272407288362506189960959995462747198910867351374011766927951342896629888323393513614811420230218889844857624185632953990686995593585283814271074882082464414865128036838753837725108502990483717445896508727648738381918462592258179598436098546360284429096687824446237829501340266678686910747419050831377155369987434403238321945258949159597565156480167986840421317853993357873966860841467301198702634799991692226713482557315513939336971703356120727752882283328621900807209509270132519889750630009183353311395840320458207303785606141405869964655602681736657067558578254602348894810327247774051790580663074727435254874882296920296975174895757684735363019089511716455096755300397584261410437858290218551725836800258411193592777784215924199789620311340871771856410326162207772132803973677025365228482186865376219035440086876682000061031747031328124905361214455945857232972982885365994613985512239257132790385972178186422984284900285229228571289709942228211751607567696544610134694570590413262516332892910072786089838788158134594641262261353821120188813423969666924836360769931278268380809155104351262225248637810457642835718579692202028015871407782718337845035644998768189226397415151742106204908287196475138835240689651394671218769756040549333575710570267809365410626670681955571414293900243286939829934783858572553136145696835436709577758485692981848390732888382946777455953404353678003886170723796643375477224755615783957245097149742789993602328342573497109063856171163119713361621057357561510961674306773661935073888048561261778777116626120442241828003131997933211315441471916186444274110990827016445877730889705806964490205302361658912884734839065991273196145803156738406533918296470028636297756556800827840391499638546308773461473159343676673497506342767171181904837218527603757536435085409962348387992563595732903666623684062311384147819466619044609300770091216303428054815183005554082891791761824757716927080206003417762764106626591950514443553184344477158521610874200884750552621348944998789286259080488474859947167671768688343185437103595288167103503091859233057124404085262864119884975507459008289832774568451675771719703462304202525659962251604382333310384590125326278632100532510177001381294160482084373013647246371680989320575868256593846762934128895002781085256008581953848257154867531269035680327929271450739317685897062114642883192456122410428585600581065520962115428080877076867831439861835308458265221991683208839911209420290482571949025928735947711781577379609233754270355703385166854028147496948133430537991537175026521886082163127758141868610539101504517448185091370554511294893407672159885455101065028277403396259168426620054826036522741889882102087312106162504111209838703856244095816483425078195202691272132165168075926904289445334002249271591140917819448831723050060860824407373072698013705120525021320904721421301363365659315289617853155883338694050532904445441599242827187932496490923149780961975985434324776086460778317842131692963371002488282750611611360732807510549793100490419892392294325753212826802500084260955572755222716771838607125077702836592272440448614000734000378351448450328026894512571343611013460181948256407926230232658408407532379736281459702705362049854460368976236255530083116387720024497916760175209000086946899070954004167479551250576544345897292135294506306570630233387606321257748006235661119928125783622561853047980009549990399903856534145107772687380788109183579663342521995910247091421943271725580125747495283846799409513611414470243600208893620292132787847815851673099032963872666180369357168890554824896854986878358185358210328235105025200142936921918676753061427157345041031861492456058133509163859686133199736682336545220605050110558099547487896977718109337855171791749221482800773747234837613109621175748530355776762496662775266122709759962537630442580538309245069518434933796911857254583296423008828996362057492907892514177052444168473406310622215186500661026646357523150560654544707100750216929491594058418524025038595102094882488497182076208814073763149634002320435108132178987023843878705392640691964790624434755968636344995369854647935581272854777087890219587422566058100130193541457772415444952941224532176078946338261897170813020321851077851624991414181599851527151766709486371494690769465880789964094502007682606301753409600640413645212741439911060150426656346652912504791800336227541647765731950032753143846800063311568546507695980063023717681112826053292680731235805204453032181809563031321485139352898516378239771902119213536947805741787234667012410464771508727183710522280549902500017173627359833495694769923867663875232745038211684398937184417439255949896878857752738857874519206330361947375837418046255808798961501483945502348647484696435288836426515003605303084731015956796332504633548652825163575500096946453228136721265017043141748339626108430646582887825656976962458254171685958783168905951307590640478149153380589566670683696068618618975725220057744039423898861943699134071898865891976759981921682726333095688550820461002698231328802907141600061713798286010002227376607694486074553548405377478759300370774605855167782351377358645437905577689827495525719596191700209880156463498568404904866640471828165618281103827629457178744441393647004576956328918423142944754962961790501713365507130607886155031735287476513179711017032216483395634364528783167613661789406960140932263555169115587303991458728481954960696470452593465305832982767697645829268608528423410070401150662745765562887011729400015816454581419009808522400812694642701579042385559604398594935536969021619656337520660120390787185118835292575180707838016598904715317086837458055638126720558070825771053585528475006265594133636558373055014508821147161414935790564761144031901402829242918119785922091246029012073803530574715730308097160618179964248079340751671890876673458739698285191272509828138788511806000762130490988772507265115911864668890691859005153970274527914379673894975576207065965749117714750214284362393341810266873226178796262021363368053188991213950634276434390028736196034663114049509918941057191762954521958327437631465900886530083982461066081279603642432038488217487182952409758136343844531419407365727650025657353079839441003064136952187096169593451070165635720409874169205786234101061643449029604032440214520737876862081825965091651787749012691706152309957829832451391761663199816009348944590493884557411264417385952616776279019212340861677030240808166066740878528828335795797629781194515630127590174502186816458854063938761113099758644351054018384515027349533398771629816118259442582587432118547848722322169217509271951950446072218883023798110854496232077156633200927777604525134173877345546684549089861850520573959949648280911316625206885126662901651792584718393193379633007926504722561749559823966074249252029176718026163727035536573114281751623019153975954169266437736070045253076561018658128312525405432246911373196396559632678112716197529832075321504163735620830915471627665108851300542617921313915259957604380532764652579365381534574699357649768570036172416342060076283817686142461980365878259857934379827900092055443029598663070774659214697241290912745124126215470023199898883580700165585718727100042834650812124482969197552252786664488670489532136592564383136730476079429761093661395415923245723921417712896824671264800444203860598776233791567251846458994377406642256069826508668351898882847558383633554481971294118941939432405525832101834109278606260244116894576439352331684441138780761314038300118425752993121081332091039571179264286439440649269179601500573499782485060649451463078764315566391690690696968117637695026654459820720321409493651582390812626815528177518892092530817971708100704752314687266838442876429045416410526224011727577564279757905801060246072518868762400300041912658958548688576570716376771089096787491908945361754877190905183131591071403945991440739208236495657802692219052685043552806729165125071301872096871358418978667855714024594766642119494620067502741604553403051198857521733573489168581857935096256802514282315536498808057840888377096110773996065657621113003557266936485644280298174159738503941003479801504677558704433463827816898343038526319475996805850193978512340421088619521056559862673776899783593227101312218398553868692629794455001925778277512068880474294606518959615354884633795386927014836372536174846762296372973062406841615913069719445411353706301485532518248946082328243647944944546019521080081338980767911250991078829100936681003589511442254506217115267762494323302600086854026691737493248601243895145770370829270165162342426761531125793437780228547230284296715701613612301722347987890281087007081186755848189220307331885531402060245591968796907147406858842804820202987074292876646110224960876624415590698522182445268725225446186335433446661717011441958540333064073009957263636206748396183171886528670253687230256005553829417520418271478555703359132269615010564901000226529576853930372569552852927996128565301563679822632274667137101720383288354873842911808487664206936685881471811699982924482007180280245935727555366457536600770421911355416693193987002950474259109631576791878732367287991860226372969861664445564285085857305098834483901564780129496029349223196195703642515389230680609508886246491366257477570782405905368784527731112895525507469107044688676333861887721581782826423662481661094079871320855275009365612308823343687320246001779014947214666888290382281463017292706041686077824991404996922735391665725527835318843143448921640497960373750333815961126427175371123026131723370782919402278143665491196444171407075448668936788902693848058938449571865570576170978247166183664598109885017238380868916624654307360493678263446080611007189983741528055217580755515556200765812543989683503798391080552690170386191332704885166391791760519822303403133766270999103196556639561562649534740101114828370792573738186814934481558138268902030581573510490983668701792089345756180380543537129040028818304306486693144828225989761124264160912543431979809963368570507492028801644456009945322378210117972105663400076221599837486599414668976274204558241769603656342069510845752603908652156101095014089208587069601566631752952187972295411177178929197440821674700433477947154774853458022782305221690069801328862022438466701023584978021215276684832709146896719733763530398310583491697819945618551395704807405312275021358395787328106669333491049155168713178274245444685086174003002343445182178288882684709932850774651652881072010542963705844311126530574302565441268878424245200306439610901014951662765324016151330924958899965112749403555274327810341838395546679992969172992407470131830793371039841396012422556059007366894673920243999536835646942548453057830233344031403103212756824497441150499600120036150069499662914281749707973983905384177765653915412511753994416945537153965804666379426252302952070158646543084747820313411367723439558033807770363664090907276515836022978300451810309413264647739834077603084447234326928830813102300426928769641562285858968723573000038095142086760240080414833862725763219132480809955092754643851048233053878447918922821020417319750656579070864971892982753007761164155489462812411334513802401897863528188627462075405536854740684515124306129970573694612770496531184544281275077875564808783407789222277390234707494360891024220567128146550799758621575210845518518833237223204509615426204350744349686383895077689683395253041945746071835114835708364764767025050583304314118916093290477179905606835022695648787966837904949611243338138738165387932688564911715907197677286499235171545871389322625945325577472140975055948858206969740266777423875532960807956389769007037559710711394619188830235552927054586020722357251491395203511459270814159070223345091864287181420103712002417161729562597633138781481853795760212159150113110458088842168329441156142934944246347173994639126267498973453364426359124652267596537381201430409891140827851118867195738827278578446778280569811396354417555569891375804222763765422624396176973499047380260915183788986332767061903790073905048642798254582585784816823124511164780058434705370942902820912820826269203443662463760457494267452449605542167950805960705645714418373771974489182985067815296082321994734175195482273482376891588920440104630280211183732816485484390831156487060487611378777292280498920250333158499532720117769274110320398448724322012502790588691028551019118535945939111824810994731850821970374672592935279350954425552937655354952106555219868482125116032389386202618162505093705966669569827277064959201615480440348765212625816503051074532976687962353002533229088420802134013733612591442723848073965598715634958825869898564093968050400662183264573297593707218431075609485148004058958264700224745284725471290841657761403333990796879436090484518939241607071216459080280110906239511335419284483390813476013455262268381896826719050173623019922142013763965304738961697879016968019567415607645885588231829771274808718120816995304861517368407234050807258609044892766074745323251454587557642260687734560131375236641377050855714704185931005349106828040788855686401333561426701617182422514347874482562637337906613592467400618197137044476847930096601615874070261384331311436021395519649868174521636737382199090783770564137793334785258815506905748013386514044471117601758501712019113149310363742179323550310326647501432871998055348166818269007546561559677926890132003624153172106773655028565942455517703739027370458481152587258011260809588990274330856629272333398082686669845218472334290034646758303636510982502577759580055395541671869060655526497298363016615870226912981831886998685078337161504446272066332976984943862400024883069611976650080597839188399509070231418503514675586837655660180050479616281969528715687035003229281103028930783892257132993855776253028664618304268239630340266746466386169137053543738660124678338656741810434107061021583507409985755565867038580871872853328846663048987701505961534715172378935803975023952883661066307880552644811312317950284442172021690751811145106697071321075133320001480923978293293778849453487230147847470217480673095140035451755871959850855416448720084787480362522403771599328445316280626838604285764957794318531498709867851845595667039865801172229954477787670917123063640741476051405789594913482908573050532660740663112999228286509028501328549331491962389335521851281315283406171454646695629662174734251491914720035848641138967598102665468454954308242271536057594711111713042083192048659088866164766587864853917911264559923476741389951691885847241270827652011336224416488806505685224225731989178386500525643245160997242865782173811676863458285668917715995541992980450658098560727534888669882302100620492620136673899726561155920568315417734514559545613931162390445485243562961395293999393698998409192617340617330427649487411131055053859962622737359078421092992249314530860160001402061106622270253391388388337614109567939593022591997649892407808489609157231698095098272188579132743007707099819321415160237053803081084642499781528638062106135798984938296516943493278802228007612992680252480916192135436499851596837958525405091763990796353911053045928612596053931128626518759261309195493583014530194253340770199322765494066940361766146206020685146423978332503309856896648302997008450107100000004579712177178321973655442211735357897368684472614899599768975691394271662935684072640113676441633565523488871867804268768628009368440736055931608021670112641666614299992706547976200362589691609042860252045567118338660060438262051709211143621503849115757929287959663919721583333416921621344796249626374587167668173170883591526166829870743081878647195194615678593132843356542155833346041875201329071775976852571783769767177864072817708421289249511881114720692907118230238480025767288264417357527737756524849396011559849112973744031604969939654085269691903075935446067525706990856112558287774840732006047366554878886327977520575396528483753646881674079110831215733879311652181049251373268627664390481070486322179617391684959969310694241773074322257480309526015153291301494565717010439649229882188667446078333898811706040757558895676242706228616834627981801878682634941795723976371597382902200240298107007051260205986387666426644440966513944592472409581511788809357600176293873037785197388003172756151442538473663565199674778440880159338196681348839925297623520133319067719970079694652816531401033636754084923684164265784632230206710416724653912510688032413554249072331808523070121569622561836438162331893700689874690133644286608098644230888968745825356949633524576558583458383560670409322231755968082904506662669769286174066507287685268025986723897264160398212198076618812982127525501797368207420624812246102042285630789724549118288288776863333215828092998121752824874284667448365272921855718289760790244024069659004894657031815306221746932145987742197234675481698265653977818117361176523074428815574545763210882704103901460717287085380142629938313074332817373059080510083794986537010820254624166970792745947997898408096657433038240590027894874785334975364450046387184632068147314048890925480926374094147729497918592185406956438292265742264119796219950533471273607522355111744932430855426681199543965956845429086743884996785721658990269915827310561120985286225512326228755613098511290550171449106208824552378669146512159362971411044305182416516160939157123196841129119870792936253419413223915346822857328920462471741720133765868651562863499386939368880686702819918749154510390182985247491291044567510371549126161068050287205314332506283614070789295623873528097587744842896028780303487933396037977551354759189091740085669251162153109373279960880548466363552048239721384934067986446275820632730279156251371903929348782297036336887662427096972675546605115282792134982937499992438697463820720467341446195520937890609085953446985717323702660766833060573067857560387791730001529166421694928245160156407234897734400519488863229248357037442780035579226609376281610981511323106527599168803315243311839464858227299550599018486549695335191765682545501471502574423771134823693746560241891158153372866906862722312118419947267200141672120956940322418587859594124037047717972436623561301903172367536449535990318983275358359062209798134504706361361428607796806317383511032449398696050819688360686573559629662105786940286006013531844658386539144420078160275064906487786971819152296349256139387741574818695478778450436846733141947415874408854164329791532376499070298026796694310835179455701352161630960233702914140520776553934250077347038834549174883673011274696087398324414597214427259946200233085353254874125024690391202938054208714519408377809110529149959109269140522335022400570741257892961956403607793275371691056849411432802607112417259198905321271327025310265481795952162752452884538158417523668728492270744771940850353674080197229346580789795849187634238253427878205134313197827961134299789540892932543792351016667932830822969659687519163854161272938249693868130951991881312533782039772975444721142508233113537473770499072054271694519307365396818417843088017918664740606616904562749414604515323043233450725878156532914281669283901126931824504604784741654889423779181470876899571903045772045015173567597186043528480972000881046388447906152485527026197699301872615108082742312901356637515425080852376180776355295692040454309692527037682589941814091340623387953630153550621562110378330972149294108648025927883188482297802858700027702733991999697964739200043510303569504040195947922043035199011496498235451098634353172542373322977588177371128150962865644476273530866274679672631968406959577836620740336403422486760659864578793133668536650524853914569524740917724177410794768004620452857450951212352423226414915211055990970564605950658587775360856548497004785292884535601095920280131500792722863567278325184982458725070935052495182541990402563368991861697053725300163249183782727510310666646285115151005773375986636811053449286921622306508326629264087042240411738434647419004213076378163049203341246132797328367192739671534279542307369240809687675654980086674692080484371827199249817027852539493660402657749679842103062173898290492883058725228587126467795158333567888247768766599735509597731227641294331868614653263711003819195554551666046941888142549254306574177839987594757689446111384044762605760407828078134660822015602198711823808242292230646188155771450579836688372276445634834443164125698390922236222337300453395283669386622035746489731116930908925307251803767449813902201848977542562978796506931281780575635103544177992118874834587968033128035946803139397925003930316653957784564979547884092430704518623855487840254296401837510923741103064682975882406059184418607473491103407125666196503694266653247809825560178160952815212865649603040635893963659544027633554442492055526630578768249083232642113422792538237241824588085950366917259092925045428865058416296379123797117940585873680988837257832119093416117054075320188490323507840721908202043888733067461810493117411480115444960871516918950088348909686680825822969049769087576218726706091855024712239313191489896874346052419623236565173236808512590196173358992609738766739344454889281494387777063963636242374676559300884422681488868467815592814841612936859574228844018832051961206026334169408517618320277599651151533303042698125556129550731575132817961511508606838367465335532872780040185436723682131029936392112078659260840905133611161037645663661706995090232548905416957589771831691447583072823908179043613579569347239482670318025574971531669376844309529158146820867177694951386347000528411805758228320131267757014821849907219386457526815073772730153687837192643281285797724419170814968439733222645569274927894809028837440310724685521374073610153143207866486546287807640633256770091379848623814393589519650233334639011655777713115774399854049865647245017264882459029088508715955259776045433023993218069056888658172119748802138231719762137274282171965253493649831619733982791113580045473094822851968282466052976818224512558694708175474439196118312279602054742590194390155968536568065767686339439594021067808492912466830860743171176749462387541680982313919606271682566725204181226899455784602794916107828656115905248450733455089247790401899028849794913716642454358244837694602831118707736591106601583604048428190988929946080115367546270812996903966726919521155599172735639793328800741054749765839432895381848716747445008561263599317141627471098266783944935603645561471261296585561867047646255917110558927498282455456356509142680839472973327245275101699598363952433128384267403842761653618713781053324539032489869087864390514828590315456657133020144431586318614055874874823766338188880210234607421612195910340785644292548399968022186651731403742159154825509212386226056820077807093724061354886028591067579289565992618621117269118594531661431771700165459171490995101943673995498516781028036043502169775435653457720229203584900049306081823523369712784104350822115306372884664653062082178045146980898111509708628742352709442996344817146796131190670092579604367075105134325191410220783013545247352178010243845124750406152214329927937902576493323795082381622625779111240906675050887928516839763731896096006897391369792880426710229173933006924832954354316648043426142399194389562593223645442970955562360586681634858650303757614034298103500467195746784776828141444415869797864944578126685607577376704431316040756530523679883334265455144188089497417585794992157419559324192269929570862382307424089992460533630520951633687774693192420732261156344027122189047996427677624872639983645584944333141183411775116674197737912877979119378330672487044481959861736749121529031785432302439714791543266731718534101468508739153782730836590413345904284888553753302412183506599382210843275271975055510736751815719801852211470195393362242629755662863455518547403970890710800575438716392124370011597501410912105262268005265732666336544301281448350179879272575362571685497132533451441131505717103950735980505532812078856235320045326234049034656429328451632764288179169105776222740371632425863617290025093114023269765055140687700557878431950683896732948944290413342256816601654075172821213931873948968164989668591057584060305202003911555473194667514461470904848233999081379397678149612990431068509324945817373442240059235621911019147859243317606544656831233089847984029246591246639034383757470246344611923181693129188709136602067912609705299716171545204022277304948961125484724498898573507609811395940748304721711737750328028580707069390969900063960495159041921236511129497835779182185262657616482914185543861397909354199484149971270510299939217800543702751686163025809089114788112635377951614276037466003886451931229445844388066402471302969786556545727294538563347011680897595409267927589171579567189260246843841142728073680432182187556468672582948324186606283844819265503020795347034709699842592510175252471628647872670100575222956262388274602185719269103127639802029423831713004289641204641993072994710117386573114639730198925307917710397157102723325183385720168147769823533191398537096463565370433980767742353811041825601187575251548022773048059187902003934851848009379788373990932475250020638975362800445406187151908492985834793314586425768892728443246693619631149085348888708099486257856039212424125994883391831721924073472786722609218776528150496336536406551084805433328144307127116097327572410712413938224277520233272951249463877755393836483371141316036209970926229266978978207330396529156503509409011468458161801553813158380695594698158507994731311350731676843643111713940651735639971658094041680038959450792407951399562401491865875597750369438183724510775541501197153625171010647462178430915613716269795693989520931810794093236088460805469674408945662098532250511032389070150622264579192115608894275486923248311383227787809165234822091964641041360793886764395174201542807802629076360952515515921799589427200864108837508665316621234591579797697455266123499121937672297927733827420322046930117443980853535194394841859526538916648389920172180582858851618068955501152711972494801302500144586906426304075619533384429795762609165646822621168216675060162318467157106575392727936381395504925982962615031368583866024086603865569514452851182662257990958190805068926268880516377198452591067164192414497017724469265980560491592046740863095165249548059034858008158128598509328339109581142506619229358137604788494111500507968374850741995771188957388581326726992862256357376005330765376503553103188447583186205852001044308644503964750280279668052768232140884057751966096707681329687121709779337733775841935836066903315119639981408695982809823019395009776521913096814534610803118677922559567931648617560522477623704817940376329054114027511780509147077353713678516086668361419965918519148754466520985761980628022541419644929802040013178010257360393343304413192802751182652496861664127681984951868627157560323336776731967416459366450429332868060973933694461610199472639381875727206298977595773476738014678439289506185742120820836686898248647275303388715659963103465361436551412099570913172669924806141360974894180481856785033994143064784111080884376482730359670905713818991198719838701053217068859525161815601932226796555525544374541466894868801688319989810046271752948725593012683648136324328970596048916204120972700936996437346711388858728130948025903450080208420208446543475654413919439920744598924715091705281434193879703959873964351870857308350569201174150536534529534313187284398269884187180063366471815208708191258068731018789462350994272615633454393742958901588427953448544776294297513202940240930664609379866121242150959630006262057010807005862978202725359726737050108288776827104778396941379452393792824623937303846791886205266719873004804605211763181322583303105799022628714138957874322411180579214924298936637442744282307557114394652831254733848585973276427112691870325237055679420860174758326118629261437151273296672922576050552557674441751229331766652462710640243505252326877637758454590517503220061959851437992153924149401210934908332805608121188387438113886519026105842914680765004638963642026787933271393671042875262122990673282109669587941074126923106852598108894938186487402738029004331448012015842937644844854973544637356445121318264297352380148629821425226765919635717909165852255725857301043809438908594851295171672809121592381312079299083387392694712584212657123136710467410194144331645040159838861917766338022761539547177455309265954509271594498468909353194250591461790726062183273056973153894843812252842713827871640688232248365434196605311090889711963873448328000733666747136333524830766470668215030997776219313009105118377037984764516152637916578548610836927849546644921685408846557509194610531999472006378347272750040945143548614579418287547705728866114620257667967206036443076744378256358936940830983711935340002151677185888002564736976792396950556325036787785286395774582664422466769675029519748950887622103610586194480914790893526604888413171207095720246200197766677321876666289475984500519101208737596909548707697729123994158658108608474176890993198166049362019357567512551167520560876353484800611923193084019499342519695008807956457071149749603655684311374124189622420764651732191565400827581491297525615729283635444450990526494477013483397205355710343791075802052176936632130150904396511098440263251084324768148830302151350122581919843395153504413655985216022517038563725268148251170972261268031661124959455352634620193417369904826286472336096181325222642755411890592307522513864786780030684402253361798903000104155335596423908017677044861377646706754108516529825096201485493442133074677018250241941253759482899929237845914077903533200916872630096374938650624597323217394254032547442374120887838350830155594619738938296431491178368122833136159060264362686244596697311017319232122999956472014161883619372162584276922967425804225335941784772622539831731747704965258654661782116591902643292064909763415962391622192653784546371646680669341155006220790407528391106487436222117146238009547405043929061678128486371570259280530466938923919227778059279143009949140380570671340039700743092196189866954150765880355775977807966556383692801058952338806677665131181896628008705870433071823371758145953573292998723566212144932365722002481813395998265395062114376112336581288059012322916426987590899418836868393953258673946976622562611876069322643249726189894418690413213255575313847014190305057310213932209629334048192596891530963725751026606990499405704834507791621955145119190569613111534231050265945896898409765424492307059300707164976049504645021995386896383211209617956505187289026335021160683409120893187617178473880830751724889312561799293869482537467376986837192196561959084230411304375583459561868036491702255653285090322973195257691397477672311483514808683097341861619346968175522403027231059669518270518369899891666447385870473169404923253895998731987250490867261083199079077094816872791494184782458961972355758820898143909321663391951659993618781416827931074636217749055282697068856371459882569501155974520740725699583046963627971369849825743283075320954082464209437183785978785084258549411169229186891731890228495518918128558288436702675795727091460329795289898214664974756645914233617966914113038093621777110226566966157357077755254270274850580572828434909400706979411610471729882370878951093399423459687450427399781425165108793574504171619283671322036445576923266636252111468349285707618331059279627749142667957832211975609481305730773982553337023154196184141269179405752356659802039185056747489577641587658806397602071536328539319274603213671761313353395930740954038725519391164706872336235906037790643643177994870350817355896337895558769885844643820720582200016103588322445168360624857964268215341235292415265870226471041058474898732405614058351110249750629194914480939521128345204211543208100200394756590904647739996100026769395001689536909632260216561615176258868595483388722762890392461425597513451320285886441222409964961938910986278650632009473206863636113063190091019326247608429941705050244453634253386337167809759070560633098438258591495380752127217989521782947086807644667146669593622720297564000506532787063146160271474671605796036760967317779225306515217263337972901417751312457216253751031924749650795643404429149437686294268995911975537794509433100526447034334449053637466970128668567886323573483540463477280543480124302650092061074530717512727315795480824064905418232440476863210997374545100411207903389777536144319891245924851484465948017262802626247250862303546022025169987660634510465156353804799248013832142099668993226572002647063972221614063216795154514792012252919006792198865754102706117704476469430696142038282568085324533640515754879699482012354954005722128767006075240713238452718105595420765592619107841213937627273850046397977087993301957905609846047412774052269461345192751870702418832599465037585466808860633990088749887008645020525551045313250826147097651772082778491860031093226032666291368397280201756967128381775175022746452582138982200180954617235347333519703303516103041348182481049103934134349981122632928637583360701633461332787345575344956747722239976025944945484477485771463180542841263247829766054172604681026546681537250759899061337588826413972341678004156283788375895057758442920496240930618644150694334205722290156598918781758786864558228820091304830163486217713047740211849378796629589883269294832937792151126749478506139874137181108788293887097626683125329625517579631921476503687539287997322780367014423640532751964472148973781037070928036884880316156406172700573670855575805625144171924422534203699223350635836870689604790420744783547897909236711615623145248435807294514081816100047790147009982522054657958093873326340851839602628409876970899673980452825120644488682329125923314780651563568552724458895722429786863502778583611920700385057460220955924310223239110947025100787500577320970591611849455241724945102114239676153754215814881116785260318796699927458826374547593781138286590011797108070567284233181957483188993903255717348181329071733310063583973481793093020586282191021514371665859625633430293462067337158405591197372387197428480970279063775832353924560973356683065246241126677909072048839862822888097575409814768714797832798498995344799069668461285107479299527183554411775341365587682233484709284275331527458342266343863649151069765338296765325347312331690959938967533530750372967056610880637119559402499442944099275688266493605634835160596027366310713709051863331791662886651968610273749501716633961406078901093503591191602998313055343178653366553056592741869161327876668834368533784175864977064453853884534481309439979499691972939145698614418916414526155669937664361004878770529302134562447433770739457768306187576691275307248241851187510611131957308816260396744281247895945090104884763644301190857056965023809212035306640129803622971165722739103137276081710014350674893862227653936474733546625556141267365489844395474175938787406910012515293405377953713241607935440576292742842629187619836661467207738042615644186113190342976418638703201889761126077538895101225792525807494880465666341848711855266818711011089995776218218970118391866343804062846046352712399826015790481697007491944597519313928412826293235409709833343802810312146761279188122959810135505711665110623620239419681013572746361566390816079312217723256197629932945117781684301718516914885140948864735686110432039002363923202479017383801602651032025169683805606329710628908764457289940396641224316766037153234034914286938590719639098362649902015819518602868365469170017227420667939564629701534377559181120207004233328677797519952057571785894742569661127506643465979223299197242833003932357288840887147108373486808361464873280802745642414103573473599937786989925639946571010185998699126137786082608504070318747186854979898673130951568995581286213548398335767951596222479362071606811685638621661314196884743776057421096070752930718033282180629461129940390914686092599195126612912519468305427744780477687855845720399397961899480212106681926825309920678281933278061082412378253262487243997811732539329976874381236758735787314833139003139614083152527829163817581430544228441253073946238441892431189268977154963297592234351521455694972478967418689054739533071179982547638964646867055686383885293136503761746350773942972966123424143278924477752325904492052550631406365634790530311168324859081302346502002833689046989302427527653677296091535603328140716150912030977232245908328777125955221042330342934155351460411669904217273241927588668333283705314088778282338489996673168173536306561051983153699024228380432918729882552517660793257049237096669339862705572711930821016655331317658525327597135481549929599335143403305217142782261689788794649283150031421026268174166918806980657438535515138974174277271434203363776722748153994946531374396995805000992005853264788567738123254084755096468142939753440873064873551528121997297441618139044847887402725375801128950356228384589531964665482374162541525704886110465751335612403213698753587815388285382750974554407651729077551777902218575922103660149029865141219562225587319172185179211686746200633016266526257522176285450573459090179749495017765825391167211419116982547960960554471934013342232531301498653877828253502364740054647874387918588192739761004309194753797839733195337439522688665032794950307619606334100179162015127952460852397251601589493474472351540491727931636873410259326621454513170560354682611847182264717897063548454607594801142780132955021032221712574768086523612549948907433552292483119051860221716754576505895949329093605451671481599062491283663455601275245580346999530484486105748861005419952235676216823203750807156187043988032604521051593187066919361809530561597332604023037976221263930693817389559589553992340412268124779880063083471301180400145875566527658751239794240289024420640600389770036169737456305592375972315212355190778201960965505293174485814911732348237012055747934866144753354457888536524197608618537329406474696131025509991544991709453735226097018333098578736052451132726634076523727744112264933358458051398967370453790445780552265970307446058316467623334697555946932314181891915601289775343244667158788972618032893453244007123557258102958568209979215177753356116947517832232846675311817793552941125436364264302261132773358734503582817755770276421218197617237588921013825941296783779884638416545908161354029004360140948413495731995412666215423767812414889490772375072921732184656357376583863240355976968136799537809038972077944441503971409135203935786825032885196883606012452626595595779029608578848775370925685969446884603877412775175259380647961592943325430221383655318124553963959977478318510521618987259614742949530505329932601566662308957956021804138353711612581107684708852084833946765663551344577475728765322519029670461474178237528018037730813990021776444684688464073965554751287970798190317198828049823418307924692038241203127961248465181604492737964167602393566323627900789149903964850530682145485849666686035480868558118077809364928095719099100990748761217721792257088438156566532719624270320921978444350934102485271108132735214881246761223103252729688481014004534844208904525639170047155118419532708016529357381397337021275176880447841220275201388415000078178044907168167568019033438368125241571752475390794385617212350250348701918770225794033136064242975515229709818974675106995126545654859719820314065813961818798410462345173207131924052649120349069250896506923204791268068291646976349914238329397345472561874154134948508242958561166383426833187577914763981752125370580106850307674908631198574140304290387116403418428940445653463460858135462151795674953274313642220355922101652287702738069046548665366804339145691524351788014454768815133139638198823547320303288402873351606580540266340752684752167465054939866070224716321338403845420856129493439147178754903433074481731375694440419038033987475412372591057039550213105270871044830883083459618081201124408283660578410124587170835107585352702365926482250868003204250908785281149917675905840773698865474774984354897455690210668722247315905738398174146302634814590000847960171862255058866588891434582273826495410022977690083553972526344301581576318425193358980352466642475664015149092201059541527593361784735650540318763330923525567896147869658371966685353270024409175498729551189164788002242650259114089022863605387231239952371170586450500136587634173321931395216634870551908954318647664299376329666066921189007373259976631235709952889944862273162549462846493143941846664247612033762924905475020617106804389452798487994291404126315717965367455675240146814098352031680251505071661601039928041211259690325300064093320847745490948609174454318739468467095745984404909903961913913092612746429899311464471703828850637103561484746219236794056959793728961689529062334097006206287891994317962703611576958893395623670179809654267803860399063590433042714576372125311492134537817305872552280789197999042888234741067891753331264898284606490463346078800329262290004750083957383290341523335305763859605220362091025481326849362236731682784722300069760299575835799784619542908506236335933469730746658267280505127467726959193613678280231256929516468190769242162170504984303325144793066523622889222956844182146478131633027945219078079589789492892253451964279611562572589755930633715638113394250493844559096469870974991919051755647978350069052847152133495798994123537136290774752089601649933863106364076166960881210103610268616958458632080590178388927301505956134735772044582837696690238775860081900921835740312182887842164146602598066707273871650352132699750501791297820617459678288182429455832850624854417495167045654813141280037532303104940102472955957594410082850217400491321568964057168497106693352938373649391190856134009830331923232564583788659367444475181932965513775905431152076596648142917917138174129701360204520383676736906767360381012842138480146692241296869344659461482954403722898054949504692627273962096295485916967866503398836628688665608989248282432857703347100164614461951857290866893382241656297350259221192630224926692262256009401024424772644328734004754373948820750615008103841134021208386684167112586693624420274123494767445945893027066424697009979955893519953002902422052147677234321776035552386777473177714757770390657189950665489769500335770404017838242072640167756052133265866594555503991798286787018429444963599158497710257047849401258197506875767430577199649000359301786360139843776064042335857017368169645502429731326729487062759668301583080674237479586153558297167872853721545483328781104168662619405802093975119211042582984010321021617338864082445404675058477075242558018690067241734244969049016693231048255526488431128594084722310982136877257694608172748997534690075989874536954340372551304511754980467289989994224267108015669326361457832670724410108326981054270055082997644926705176999338616971315326741027052650922025817815707367105558598099806120750335737715278621959410132112852396618365328843852835749984185195964183238856174039061479198645824606853590243885447761279708065601497290827425365008464100811590046973360080576456958733359599945832854248975761200072194402736628970532471172201649430084134059022718113415652561749372384503977689205259523543516649350727559184038355034146449378502282901362037640586551696306538226300608197854355269703520866908703796754810373845366944621932658201873199435343469721386035567678162405366945290502426011054523629315206910422191893583048620407388188695201742432150250065248882263896190443701997751364956686540583035352141694592005565277681492086050222449133383614626800542465934673720223074500264840642218716072989767293122942345529017919145306518534837166809772505978854122073944804237613722066712653684488342167842300546607562086686694917901090296411473949874250546760018215692584852251449793013740311329162197105355590794076643408307927158666327610499571582332858348206472107967151922866533608167581273550971515017579272858706988064809309403163949548251075958246200314745771607746816202849898154700738818268084983958764247897217309430196040999567730513792651530407726543176159237447542168225914283826550233750156278541162146659527337547650151496573009099946161616099865422477455963858082772693897547853863567677314150490770221022803063397389591971487001697512491680136535759826593464717981312143684908821802754529942523531118262345048402814572438969668917118165415301787062533312462627396692965354763101208019960788742419730067217585839386654953954169846933904919722629859050675425112633516021344566309011219157019810648440778482226131881090330940706976093282804786984800340824863436768575490111783602377462455653744128619073157417682011340275117004889890932843634165710677993555662002314525001902281078142579746604033359467829936722436366166270894048756676159087243306215919109902128686991473088425001451468271015016119790846791092089638894281913074565244800203365902371903385121424814748215351011204195432337867018474050309573091795340621437486223401284345746865977168651180577902855301642609244325628840164478960250219667524140379264071678126094565419339697691115510441199699561482277807683633681316114674302334584116213296142137965460279924672264829874956137858162885481541730655917117305603315287014957494563028086658894669583812469358313428398037703507815918709267255158133842866716190831045708519586008963653393875748744928388756680975632686101778229476463069471646706756209491662808166531291253651407467651284225863225079465096080065308403800320615327116157147854723962018722250120086125700698365189541652470395942173184443483970405340466704815749626364061151933449565705524264913322659161049896477686936210885279216808308321870181625003552494496905863634480277341901690881214235106078530135403290237005881985733876347409173405520281855373862475263415003749744054901019874913992798981832040773900036640538905295527209167285886395767105638487223000124445638315275102792391558884925167858613573101146116114762064768076712324979744200507346762052549531588288541081653553929212892958576500821219552060644980253110181607618747116163378904134001581602387775268498053897590747492753115076641062570079630416115557664113813086453708414082492229119674923561878271281214123766071279305096846439187192148481535782456052739287884116127810532975401897176099830433673544644803680264569396452137983575848762621795337696715246805121208574081796353729118712870601318106691148005056911259353827588262580870424469537260790606994268917560547729975434810563551400779659327425088544848391976041462295406435193089591398274138227770595388695904222091978960396246372903372781179138586994296988727617059587299604591866142864743725538877949777392335239379784258779053755407704030926342994454582207837373645633241865088435034304071512178547028021076442398190019019342224709222814484547378329254704379402431138257494118321580905863348749056128811877318969643976445761464395195506609912595355565240572426331514287271806275170784750912164823596135389232455607657461934893440444266597960713248141926277687546947452817671573227184698583082668114167358790233641868300309122828965640322604078808148239745876245325534093878781220001584286861007819055352783752032520946756885851577217155112041520506167497397011296757808029216625739412642380101815161367100814589369539576142641299723948101453557468979154464081210170595787681695665624111176417495227914646617095026670878295612803152334395532296852029870502740673516757118613302029015469274236163564122453298804449741823645951256297939374446052972893332181217780412627736046042192515087305279480531135413502036302889267791931037575500856862665826394716080887445035460315162323319450362970315995382459563036157393784164235642133850154186650813634295135162149918618210961254208774796312032685943340496991291795555950972916284308259357087910597225611722419371959749906982039124709702338925845291538017842865438411825396576942770049919403733941809617605820579950854825579078125862527939058063637006342223560846971242808080777764333824307151049421769092748405076946839465920015246327425573209260735600258133033679747842385959212920617971759895422352151980524243702645328643185742370548588632076573551083608669855222924228988521809564521621957142378888895287123083550259190825674661494283340460639062821836507542859301213216865340130377295165811086389879490185211780242582477672781003754665907426743548518661522891210267458334707701546434796183513718367718656073624456241377782840330211705665562575558558432527853918694298010342018862034692864385546071964962650897786116720471583444930963255876356765733650600511717338781758981878423677383700252292336487090230037616881738957437348208295884801772077629807427193801161371396035050321798998508156998784519135906591638801196522546091401961874380895009564133411259406467261450026397525430751271847352233331518943047175441201025338072789834063804413342848211129519191472508460096863013971048675618755440640189255043110715107550134292890138595413300787154154198350323428905260846155987168782368239916968414007327459002098715171430435455915984117782100044553616980885687991498477416020730532789191615159334562917007509734693917026181777164751028915824599389376579944112271141762410266980845239921222438235996363744395454585335241557759229630356146083472608811919158151688418951101403831343681568767956360070548383231935587264799637041006949158959918491911206164684776985585465455611236638673314925122668323820995456457366038296014668702223850155607823385591702249380613273851243866027493137431193330669079700899175010677789411236010282131268384743762338952158720431478510343120927914802112432739864537684897961736444663873648921264106859211229186833290887735719859597291399515816003791193391199996599218290559265250298677735502965833824700356790639718985533222652636789894249014853071855014262609381321839278600676715017783700240278572012637901905611046899151589836270876907326991543799424516244241899788252321281339817539492804069180642659671773009166337157600746729457474356727190479288657172642976971288879721744992765677948839442544601542443222746486550825492634855930581563295313034051727342205028049748418611004211516184412008144649986072563637205400382135361790834483136602251393656793416863938165459557185787220422357075959801546514529676821567611202191531880105560580997239696144589073578027780265519258397065727087899181028701634085671292321710767514014612441992154900430351247435659622837550429937959295402923769455115454489200624748208458800436641691716405318271953789624076054907836473330044133896094568580933488527403244886746526005527588994528880810317701575035896220000825627263577581569830930169489544313213947749787588125159509934992935413919622358277252230147178396365374841156241617268234614969483611095085488007365222480419479183833693317396094825538433286454783172887630092513932875118889604419747489223085692372908601459131789732917752821701430998796957467957242489894834892912892845734619819177446063015087412743580759114122827283446100061880635065334571666775381920680478745949201571313139710827823110461063901865240514400942789833845419689014794898057361985175002922756817513409082886789506751718992457774781025568203825899206763613811461065882641175168129929125524854361709707022890333778586449732703022841934182492112824099423472818937419379033064861994175247178126546954046931068197691195333255752026736181800692129001272736283160531060059145415930300278177208039443110089625439605226623196593852319176625065928722524389866920843433721293159205099009152788899121367644539519819152020366141506202476655247708846084259073629129172825602161441768369997919615597779547669584828608720888898711428236942595284344857789482434851191612824728856277533334271998171154571806940235442519519070709493888409106599913834636819168811510910797525840655564463733084889343522115869592888190466605676040970959018498429890914736254939211128297281246751466679051216239519683317312726004688243746564747591050150951560852318940654150597414378961201950719368447206748394481128203285348535440069598102699697169082797831239272415889376799627332403545766760167510750296820805320945802432609498614863245925834199080747039404435211513446215992568178904308402828199223655896869819260197769685466003146738623919996716078141050018453081374153766052448981257570320064785888461647123759350230198743309817874017048443796679475846219256778267695435653541030025202568595398235702665751990471953790597716427247852623648559710997231956690025362619136333315218443662629666254990243467168468049081355708573918784605481257055808412758851577177365931811044626250399609997379875706880574277141949514417169239587119932017075904210365643198899584971076704400647636883474521834947318931574284791050139285515508802115386097395526628376234305727245506476081668595578362060200856942690407275144188552315000372730500758567834830332590384234128484527731499454753889013448185450283441802118558942066795950764900141199180472947518039881871986597164758345423279014530947283633133623957673102044377375796995294381764241416700517387768415097948984459851423442079841950079857776302728191609878200622531296739241274680837968118061784620544573126765912498245791546054183425626534359467256974308575542179399640461332958105197585466033002850991242151042847755221344944267546173084222842644094799519616464232077073832100898849124228622139936516272404332054437477592552211496667296539352310399711904480610104629386333685282537230130128786949367514684262529407000017865800482717366135922522107167194271432687020969528881545382617728126497304767185439649004329661117590128693636523092217808440478193994920595135162372233913717894692921169265681132409930221934978897335533657999969901605451183804342850350584328837060353272130244789234816531552075767003964444562099857843459621516767186082745402749216903643952585752251012695016982825459222484434514942414122743933199445076754622265594029414863395305568520945134679744438506531380893113731073178637571609338861773029888681945251546492612132638230628676826351755551248355027127315868302322449071483964558434707937992975586803038704053540595434240324951463226385835911633125987810163894467187467478219224005222992443559170673773813296338677417135918159638521467198860300597709965915639977486781652064844007989320815335044602722011634541459737424793267485025206460348841596885297047459406609610706465455414727514521680443866898199091325862395614814574079889893393367806897939872989447156386761920505805015979123290534958474253517120005273219298323696527417388144300822011974726734010216161987562977118173666031192973525972580752235868622054737470837655522530598394411038790734389169341281776179805543102125133503324641809087248560842638379318709059718969766158129865450369223619404812714875958032747856472199441867415474940820933212779997398731643705480103511833628319898430855757204806871473831897788659838250283742931042459361837403133829153770205441410480076354175760294375161019826705710407719295558764020173327626259231189287403339144747741395035420187421934100113660922884638175785606630429259643866059439003204056554435273830514536437352731637235702169162566634229837165811354678462929218054335850562901474281277247302285792893547466500306849254427695312666123264970870465965681143179088525880877574640360146020952794668391059113758210856249967771929073214921157934021217436037762962406914311970479132751356314520197717190980064904961077727494225389678616279828358426988191837217520357783933618914377835169419035512197770479957704170749752799601291008104481823504131896895065492162963954981472813199843936857526605282759216055640723595447486479298261387918454545403306882680161152531341661248113919447892241098488722589348452427133613320344267622724007165657119472828779457281075872979597261745565143358139952699393491633632217805682692290505257513593757654252240945556744186768241961875429920307455867338951242075982344664549016386460309571542687296300178029945872762314052384127880017307770224525501913632731625001260633214098402902504015492212534939365577190765423706301769355892378235179535842233592285428436371793108379927202619792659701822849748619811058675079544205141854137219755080481328285906914497189124294370836827741176628165217272433015649216493014765562694925725254972485341356696521526926243084502718756407751810652950740256759930815338138298026552642391112116568696101249571401947258922252170465469268150136759169509139822406481969029261922601595664116867754307968208883728298991746064744971908715180188284682537156178644447171316672994268388081271736068864657374268799472602435144545812961280618285484053546534364734678953590415195077818377964053777034415530578301107521332592430511023119238373618470771717691852407443527285654561988176756020129242333559733614523219095262043912788823187526822451422301916065758127660528166798068791756153880170099638247512166399731599751885209884775539251117330697302153321543529663718665136885672150784461639556508402044134142056128513743105088428216573879734565962118207673215472156355168317429748046420663106050086585389952194209183096936811666216600143411676133920370638010726338423487492755214589566841553867382631153873506608823389643763114366006494504893426738397642836632570580506159737592625100330650689230427295377380559767379918440789281995917713122919801753833104619514043778199038567733966550112453716608938376524345838797212176079284495443579853705598901309470907891084882075276860669111425930882050210305062783051729278930864588761052385716644432919991393398219009847076711330818583483571586013623825208862652019598313662362532702878503946166383122434157456587109363428019686355288608974396553737076931761940443512837502805272607133156264336403543701888130924885601409963243016866717312548424208919653307787031111387151356683892800777391424322129506249577502453988235158633966251454401854709269169875690949748513262170951070837708550577020441035681408055283613019055924743199810719246591018881679108138243563663153302933919951617539249983543527663023471377178284867378874615765438885706607014408787937620092381348030153799794119174159616649906795010107603631654301126035557454095232194713583645244547394321968999756862598577299256459733994410876899344618655908913409349352722526890209514673448618285771667437647379206876160510240814041113588388996324560910478566363525388663103236785641759453465639169341453266812792673140774862102904059171394494293121256026115502973847006202589777248620760282615297268614235651298530933948267775794180120653405694889209634095964884017931500748087043343169430695990841342414546501123605356616236778692069356717493811254138927557097424337835540637611122717568582666247095100222100205468225911883279090893273418820486072286715954171384268733096632951344269444213921939106604086530759186374943986504356973708798088224262011021378687835939733435827752927590480064940752747778253062813485004109065329181777305113272673225124617580632312333968075526365415136673326580982957817180827097143247970646372811601317315698908001079403573047867575110227925495251747619334696568075408914036146948520406357038985766345987142613990913692247238080242804102916674120761994645749921840027991045141341909829490758763746847137707112631492927775442225941282256167935818751032880454846243989259926334238089000537363657073603208079433935040916968966390886427196050168069415526178037535488899555679179072661595512040705293861151539233631222162281386420397072062038949620843148282376517162149650930425721835741377512494328359571629671801010101420699241604563960405318664631991448931192135651307465859249552186747731540271221409862787273392879164598588987369415846137561397055645100975400227667362462465896707874256851529437150860300770927060733042750124241196926700825772175009364453541215277441434508819179004430415393269477089697818926186700780432699515103969394618152681779107218972780128643268065388639161372551201544628466017503321336505385010966252212144162469439863128250075577247791144784846100470202136978238256933499704922851102401150114271472371180163016529643299126593701468670521283113113082434169971031712337595713418583131539182183332626787467099227174351351652125876340588272207213373577975487927765447974400066744878737145183438168884087837631687576984871571201030775626522773478043716906511107939551650023897198828002225968729535624613781463841221315929107732291275515430954950668795635729587602274434239087042443046363750755021181238607995125876161534623224453748748087362881002491699520023902365247564949623059118402892538755738005792388341097640239344340154658221828903719167187475363535151206789963035687041044089457381682720125460044271026370394458563561368951447415870433129236786199346652040439589307413394941479770539132521219439068440591388498867376054325738484462011974085120380872819959622582014001430319800104982243610615952058101582583212151500219196336742812741376964111984738085125502524015867500255567058183098257102813360906146211601803700753649091218686572161422014378883467921347265356129222589323151341536218937206454324888021660161356398855879262551284597487925614489357249956811281000156470448932424009916380675969993536253126450106808505978730344043334210404426509053988347440456544332348271166769167573625198035525872107512471287263241355929845806138718418938958070577651837746169333078023790105621632243272306083488818550663308182005978684480753384862234174060438610675312619903429945118343123943022070920965488192370007312893571844253009255302503410983111398839694377073674620095423074663847949248290324718912378162672600033122846499339073756562856200791129313316431426362522761547002063100856223640651052875797171083038776092572567633400578927653368434602315295318424136323321551227194633400225300824275632017917513452248533403665499834574962596759422778249007495448242505185764742466419984133159356048694591083233387312518642870307404893529861663278668857518100416105109314444622307936837190551541048369590191645721092271514073295602952908166750210959507455825788745890944894166386401922372770870076205339786972698988623577986982029411799039022827224410817053372832597561213283696481150361830215559155463208712967863417616548980289750595902191402526444865942705206126505663537729653154279332695351045506327076106825213541228937697601322256998450720617807698297153768541321513081227107058841720513413184425344849538091893992674087382171720273486829554580360301498325156777067653354001757127888968702751140163588211270074087232889525009098677792448672584176690756894884693059140561744572251127231826214528087666506690899502658357243247858669836026695479128851630732245176652405785693984243146699682250067071537556518511857545308107432428581927285181170243644580361238630770752051088350403300202003297463613561471107966111693238580886290568647242007053778029396018620938595061873172863073481281466638537605046867441374547729969802218835387780113423999673608663691177996088244737249566517720299202806938884180145612542376268024752412368916616994057982793147844452830653128740913766022517219361075390263448274230410745089000626310858423317920266524662551252869828114442524904318636218138207320881434267831399540298296294208313721418929952502608619338052824170677543358512570847158797958162703822889215780904550155003301445821466081463750188076525057461412597671649173576319827401673606056278018747883660694571307903215246448750682035938436701010627884029996741689695033026463275036935273015042196612737467660715416288539752513368686963907512805671505121999995062238919891030719822925084535309907606798889103666233044455559501534508304835625744137486310831426897441992669275595484756270101734055902648820285581262158818978747331652985621089827879317317550384547564810250280050412152814241906268268572656568191200788579879070736917839272729682082315026862245205808551553676210698063904596741231793051258311084794728773350959315148148734889777693169144503592179690517422939084616156381932874454117284935180715336589150721249585597792586505350618132435635109747905541901744090097017835285996149407376843403723445058099100746857401262803305150986749421913784091816493566641588199674835738489549358598442735505666075038387896066316721325962666281689363198239817956607510684369671822220833180553465189675579228882488230774596018006308826310978651923590411140150620044413760880599387909769548126784950583019486464903787867084155368007983790437206706855818990142727322036651587266310156817852590183014843316668842890943366557219571536849846586862059997062446704734241889725919846295115525212914016135127644330590499687983829387639264394602816747146475349928486739875375649995509195820698997163542148035351195873241785995120825698263740617727854995606433886305623357280365049175849694130810071434114896200778841955732776435365861154982615955809993634335523728893653559882372909359511798539150417952541324231483050389250644428295090017612762729713226753529947459613863741198759625283622741950593277192718203453999331357099829386361227241209986084016344497547057512061545242001133312209346000889656254828356349308123925057162006912916830171989962724303784480774582092543738481148697339489206444712643140777159659764509686474322241363474046215769870991758925620956539164409343389741753274265154525518794606776329144962963046916814015594789709723285263589098090933257005019311137690290995645909739888428959746324756705342745046706005262802914798078977699123659776153009095010246383347204575490889647383248526968681748216724721860805156248890937096957510758844670676407828090770733870422619939599177427699486038540472475911601859334865160066896116681159585191334945160458146958266505227112374430642428525963561841185766117687182128535202350692303651975728847548997157621181404511292133006177838174402179403046563204145176720024481827781050462111975436806094748325415166279522532124150863483564212222816374264374730631185634064420931476831228529463767487971507250854028029740154987119506907980067552962749140699036581649033083086664177373367851512995554831756649101326329020481724233510568431769975410795403372258889103380873959642782396934971843706659322128447267543884311605756692498481015079407125716897520689625295037436947652160859592997796822976752623517158693259362595029810254412244850586538069079632455131145140689261213677718755893975030917617823902619946535753877397019749344306814594190730119495212915067741394911959035802247705315771341276806860554961064640004562328886787504894137209291198265235862826118451097792092071589120467849794839955515860058435362857486068166247357898804421436457154775582101365250601200326614877640183144416067621159056654326664981457983165916812299645163711218705460284783979935968562175776375105770913606654741947468811303299500801464497919900922447705786014482615441875490608899559587453741036012307468361100489595171971638272764054348395581843678663600130223470981006377233271217866240012160339482911363210958441231412259189705637639045419665304105386809634605183126238536302817223999350128152468521350221307802266627859372331738799605125411813143984388026669952795809918650922152160353330065592241269468943811019888267214910246993655650957616707773538849999634271736633113286417978258194205545288313707820561359013040063933691746690713223460113630423498576472076729455925913087249879741619215514790134075830708777929490553085308243418437579027960200116614907820144387326093397981571785882662095322265560238399739356463368855871939990867606514166334804218544760830947846150250510196085141839369583176848672349812021305508469214065686254479112607926698724430289549505019690363827735960644550194389034109114646680487593291425646406769972057787852754618986150940934754270900929941351733027483609834458555616021816603930622386497010326292536998260389939825095015774424738199405690975460763758911041944811591625193292569994059398269148666228417541982523666145853160264156086538382411357563679879308703132880553140939327385440912048714000467054915448461950997875973810625776366656401447115808570637822594557009434860219083693112307914547137302422585417084042381371103834450874462565341939825993292282362184518703086987518946190288305120550185945161709486750679131094391499847375201308865059927250636191851536023463837688334530163713846000926957807042592998499968212534385746556940001355826186729859013522863721940173581289270506136764686179422884306206951497138326447483013173041352792404143953025105582889406547471439336725287481236530264237258770966280961158539007823837036967369199377724076188652758373311538171239294665927868333561535332215547240977696874313268486635594386650897028728877592016843946258928112917224643323401031656231673821371290702485703337436545111552929264482425716139214935538352096522351176997752926944019484784516568311097901115691066936481293367768464533792445589803546384362980250648774154969148633691393109452212694936301995608399589233691028332372372249245858148894518844672731729599945978010411969666615560189834632746240106867267251181503300875018880734919665860560983107594376131702004586933536005143450323547703479862499242866270095293988452810139574756596749815677067280649111637231476597975849150750669425783190978970512442221986175786842455591599878546268396355725878078934536352182526631755758673719976867394663984525894536722468154224502202885249199546713475374185292032367488297328795670396384721759892071230856049998325385134163312067252953112089034489188104528212126864149782347364832341535465077535421033180269415969970707707160496145986366229775628361844768312385578682944738523573850156455072875230315069890744899733266240893129552691680447794178066005924786015673856103924600440885017522347916690378235848765269440956505761178886218039603063696917510878414601137921372043610051436041186463490548062500452848885585075821465061912188117686381287228926451165898453331401628036389258836895042809755119400390860537772784044682693921352554612541909335383396678277343317004602379374707563486276150980804060556887280164508196885141363794239250730959098112129722129912074918497692404822727564472663313330468463407899175601011480831016797286966418255416146103746855245751826174235772976265093894881178052978617336049537535897221944378448534213144797313478168496192083464736283920839652310219003940159661559870947764393053146159161296276770108309362670894290955352532402088676159209530520013320543151858382354994522253104639194311584790548559250954139195618754495978491059171991803295319189181065950994331920517738769158104194005690841759353300942407116281277946362665396452269778006930400913602532413155118159480679067701277407902943864367343783277306793580182987483216488925284477597371058363584825240335715477674919860175484660336658542588837125191762122469527360157507024856535267364222178487572192268756142914747196399319776747343527559469990509918958657523346809857528272524638552861277623786535699785278502203251630586779982585316677964964911138043819376280572704991236732850228526349803201182181910821314180655074410196449244106257171526060380884852110929609329316868640128815396977022064686197502755854797126866652651674186120818258000844055739957648379339737204690934998006565057897362406854991634168901159093591291488654563813670810264600018184425643000185590499713971357955495484588709241305820457049409917222845601612611106607269371988291038067635309924912257196370472811854854284666424955835849024473931175679854378874484289951024204744798194077151298110314354075846140813414438869052603552535806504910555011390051991321024847321582109367607549369878463085581314373411433555979879539947624592293339832962623429293650110269154300153667957337437154645016585461264679250444147614751002912270591069639574468821237411772934051864830274025443329623730299223879786159089133868617752593949006479724802772915412480378064415495116154320061150936693666423587470311127476698021873818250473945879741536004494829078515590882712743604293978180888523990564866755073901701778638905257673936096287599940814392728512556585148192204209458746510107840806323600811441186482530598673591640406505985698251279179801159332661949848662697064034151494943331761628366833885166205887186143218637586267696970779128254324185634578286062642467312004572863196632078732884393935723927889009988292958060045643335001716732685245886982212247348285369840727078056346942287806874251045304208705977770649782318500600298361959724940645197055021620921882538998751068916382923449943879260085369604322221872336474316067160003895829207823513045392909607519257392838485308171104009464092524787901653831866242565960042350341815403714898309181297239003627264908736805212883613785905564067010874027710869590636441154904532829756024759250310153956476874079426752597443850330369461634584353509870322168256237483314044014950894933397513070891871630442438667701985530458081244298782026444276354830127210981730824474054701784090810040369475424191332115252472387684594977249874306568561080833575372783053201019785045772223896769267876562671519432069157691753446478691616884533874190549695135427976121483812619224420736184211670891218315145945812555433545912025156274730661054071401678631741695009463573326728405548958229553305128603978538764109203493182096372683435348713536139464964909502185435003196052962887778575239966169682639364934598748812044559854931547130501100910104313271572425432594056402395884149471179035505405659592263576581606316141177750644290642518653207574865321868729892019265559760622197639115069568762866818131841618902045628569328897700541173099477865712038769129171209038906417717760912255044579781678041601327386305144740396635646183399115006737903631595571618408606533116615520893002303666516939737451663326273794493463610515749838243682191967374475395906278093479203425910063456184373628828654518539992375924789423798568118472899201684721730517013374842554439101936466396101093329993091452463545055745084946519646958588429737711493251076633037256000208453829256399691875270827426408195415839321435107769133748929862520875068711839826423513839819380116168490091212731235861997844921050814054151293709654775815661444415464606581933194696254535762577441902219609636277982471684407560441164052232879665333542715158183680909806975558846625983643101780073397067450805058822883735743180556718575883097953797405719962835063420098399224941130310128626273841225006905747348849156478930968295523828218205677259509802811758376773282303551124886497194169297959804627479503114717940599805598988938358932806955447711465638879951139958666001681466162071788593786276433436106782180048600425390127426118244215716030000673392274994173029563322383437140048085268357235522466992004397599329140136390143370770561207360858430619105218038354622963596841989595573248427690537198633259558979698427696311987669215031562697251750383081717993482408242588324571460773345997420148486110143422647712302106828786877826216802809547988091715697305990584651629292459711068577884846303002702812834455731247249887664506039395977881108061055384554856788176016016496297597153490119280019899673271246532641490642617662844896476299741955196086599326509994774192263546654636569626572292097132221775258575872504944393867319118243722817916907318712512756762920417846167105982139693186017859219876533444267620914810381112446106624024456973354301713428365658109714554886499776523636603282989517439120536456534564610570177018986724322625976714059663958773700597731190793954112584227324816726001155492843645920176999287904967349162114974621627917362326203891533759782721720145539511392127783780644339272816485190666554095399683028976950001057398471681017649089014720556267319027610826589614524252668691058827708169211941486538721909090947006612436098095360103246171921990448060725752420929109583465624034727379840056190212636672701696513606945628801755212870645021567183226206715819034535303508040360530469086688940520005808647386706652994457932242509367905113658381496360536394861239981221831538972154200120275438930096907006590857202613415227605243646086677599755240972073507156329747762919478951413430384753572999771535410757267480625825694736023768892456652539760300347336038929608572849862158888618614562564631415486905133802718866488519773457372445349093205833197893993349534918953116945642427643261988991266101683643784258485873571471665382265728051751679050780628634792230834779152452864730215276127306973032040098740753744837204515863201805248553557355203779010190861989443369918932377237414380536929502767351674672043207218865385094772891015853128194084957229781353216215091779267590527225041443684192514765031588868738040391146443940076091667316949293106599767770962777166353974320600035131980673801455236986844899093722131217437706689686813875293103892045024901381798766295143637229561644065897984207871514761914465924646836496708265807449871309148294831932241801675076120059347553294781322395012741444785322384047059896095957953167557570879397525322589331291388144963325932002067666116634673606843069818576002630693374008139616513272383788885100406000925497542957759337764709117652827608447187580476461119623981132551512913177000939060981845016951046390833234598401263600659410470250624704822232074655716580923518901973830023995756756202670759811838926256730086099775888052078637828790738570512172329789670135082997953573719817603387644429987883088425509092956380116711882017094559839237633116731970888601832471199618534575994177074447256118050880255487609537228065800772317174584638292404531536274121843685999681018472279098560488277941580309167641776795587801992326997889149477441649990857793302633073976849237656674194177763193697197877483817044829786603169112128644498538338616957794916938787855260724740549453126389426334422415380921446990486549024020023842527800420299630434146729060274501367293942581521370409653213663618837425901343349403225464003335608664571763535605648454255535554213219774641357496287141204247656250985296865053654300771428717671339035663809354673720577768930703142756086941295166886664496357808766278575617040543409648283683178972899629844133111053085667730554946150846294505945581280529425230366810120814381251289833136519376537244194316684792141430356574058487635013833511663665262268678727286256900734299826459147970349264761858100559348370767359817343603252173286642090827762088088451333282035419448022702903370458238858141744449184973651956602231457666687989364296335877787552532776118474079194695480316953615940310323884087662179831946907612539308521427334498308443382851738573219359760225354205967536143318027558713978960131575826710483376793216857785204985219365742472302215269493421989505223174205995279931080958947116419997744666862120169137429734605022949803918926521055856900620708718392031312391378514113376532205705673817454104035219785189811743860095511092582331626675798235401588627317199622355201090167765530191710623853315948217754034756031541170141394319162884992057181903997377657673209983147742227956917801966377054265325389779386760951973614167135450989105723165329888860159315560005249356952536556507735087646584914073731344183711333501036414934045954112228638031821765326294836340464165660784985710259542483735875731355328352292660278444272704040526959409650829045980975569380188576155042743619744191251225261105805233336441908016505304864232433049623171674562820449232225822343699204736324610238137056452808246967762571071396739951631130681715731660211170207923494262416327390815650171475055997229373916174622448102378863393294230759166362748399230305005036771625343501174327917013802494720959459938646795474072591887917564807273512620355771417621399713193907672943114973677761857525339533691892875154568057286596770624216306964112376850938352286869382438432814675919084194091627797980020336959317174024980290837153962066140981112712033866414998997239414741283210017891025741085368897367634797663843347555271807006604315942841059806756959657349831794050875484756562002536007588958212647264320156071404151884370427866318433282618174323736081224566640349197950940844718992370390960110366120206922096236659406484975117631992693182644377864414864422108933058681723868121356878878263184689710211294586719627876385523655385975959899866803363405217965099127657035512029783855163764286730374584048876073771484144574902345275725010081113527812054919335911988318169014173456890356672626416893843646517497032168717552829407328313159733414868876308302291599974195841214054632452698603380937755587670864595159485382180773231251762073723040082375010815759485123994969146732039481608148914593475847521494094559652976336460001957467168827418851893574987975886054385924603767432143294185439956141551603617954696436436501710534811126316935241252968351086932879452836659997180650334819807419275618193269341165913557034798446262048475590118520324459227380473177130203315595743708609245138233787144323340466996472240311105913218738633058595773485530371775026002025448369080725924908415170028297914721485996116312599642847642777902982969596583787115279901224871740877660139537156155453478317364537539773982174846144011683401333656507391582594863808925937214857224328861702388147683695197940207991195914207863553968920672953443733738117807857706105337082684812717292505899227926044663086240053588638043170588486355860438511070926496019073378921883767660006710120229332445735851814806809392200315384343635767701927958103847109478863065220838557543363771840084272623067755523601054497110775344273788127497930107729786688962174585907908077072677027027778780602011257290269515454548534573588623993135118885745235713955720870585804589131238497079977631185371661153380834286626667837294700143165116440071177319689934128145667918834859111839711474231405453299957300016673931537548747696338255154474047933635365938891922306958049798684667839462205088766834659539071524809834423272294483751956375717512093627315587710094396125203834904852369446819550625948930069718126354766461236658854771140153814811241612427541964700207989626113123734832507824494465087686381666470838931664111310210087446729058868138834899318070543999224302805828168400841903290323026603522809451763453141233967958217288689642703951892799058424160422486680239024003961415262387119379780219457049405391050679551521808081761950358405737595873534741091058547899306261287218340662629495460080894357839099201768469404281196017978526424337276235798928376624812518964827522888211819886780091345752561530485941106101848770019561642293339505818125712160845908722076489863736100765266947985574055051142577558446690787869618513819090900746201207211003377928880291525947411719856447615070292367634668278042524470620164164855318918028336931818789447510433474356413249846535351920919536693499443853071173741237149383241354631087343315566207367950265256384668363512541846787206651042952831644484673415793901832917276267766209136836651860347712580799711753495389701818503837672459341831349116790742878817384846334888995245673476057297082204301351621854709875166616692431146520701260138239917121983570832127423290442301073230625857337463132589105977336218244685313084623703331380722536335266917782140263729770087219153319560485520429082681336439580887321510950241130649137666222323201212672536119756522477414224449777736307272783310452283723748641092957439161091340907251034102848240343684001214671638549672865705650013779395598642278068289573633117198669924393255546678596582607459796680632326180226461545333526088225016080391027354209412259326112205357130670364664415832432081245659301032585028729636332411131106057273012033218352498832083464947270368379865845258621700159591276560189009541907626931747506312528350192973964445856148784465765567205386493461790459946169209190035689421979899792338198877815058753325504833673467396610354940487521004492346106087436872080273045279489484197107499608865105633111867910505828297426073354419631220632208926161052724815158451846907263939119199478339146583313631334344636117985824242722481489872307516000931397319301683720293578685745845854234453143326161812690526312788296197955110661146264496359772652788880836522221787798086473650067596418847833870372100787264905919980944675680212972474574585628475467280136730881280520629920516001426008144110134245556826146362493184000340208009238565733267969716048391010371726922029309824494553875727366574701564813563896635588903604176518537890781589046753146397430733522718736225928470385626654133935303552016823187406815066834679261437519270439474378070885408189447766776676779118416209194028835499114565308436500016438645083822592319832189672002386654501241638582724944852706591883038810170635040431539784765857736733703049473713912647123236375525180270893655252639912584768521022822505620053880198291317509665296591077499385283535851546675179312476063608479824837438069978592167014343602335990224998037090104656619325443401218732328479516059193764093295843858588907471996887622763428154834654381713684130358624794384902447913146017726820460872441857556459977098267131225179878134657357676354992166694990789386782658845509865927851557394619113333726440720717999220002569471188549088047128519517906880674267272656246791276468574349870942623798064525658167358598275743872978837549386396002051230760323804132843549534377806307422854375999720745313790802822645362860129206289103728917051731347913701703081664484524442669860532620373328092612190125321885187834250223528183348168514141473206171074592664469301576035182403329884169831461232183709489207473405866490641349328230753181298606862376239933323696707703613304879650626656205996137790148472177458856058774683737732576254676819846869119932226413806791205333559996052093187054264069428728958659491515011703551410577975437216533025078565513017708644123439159126912902052214229376114000675129033577003084334057136738723938650639318710838633758441992404271844160807125683076373365662672488773478618338448767330820166594257760104234790627867793870759033622775991605885169717693385723896104425508161239291310986629887823808317573734427014035314164852454714056027603287576406690203469252128384952266059236744039538509874974654606754351058218494906507961330747546022129008680843597150345826960879980223205573365161519929062356830998612838000568816063401380932944139321461267736142056609001191078216869500502346919052946359249976299940563159450700220462592255278252710632864655837007929034044006870878814735494733121203919669057884019056990846225243021968461252615633905033708502757083995478955916964599878417276636000556823778430086711335705599503886589449995179688682000673072317213327602353277408656655408273730723549779141343446942035746283202939731909202303700394603437073602403598978156023169736069206647889898998413946852671374566370677715698853025544060752815823325462853632209492738487837120117987968627028393522611055284047754858585167095324805529127943614388757488238398198589160104165727682987212264648006748521692326950509020555564545426476487790459306525771719802953724032036588926214034669173721908445656959879709653002773957737673981841978138778472595516881505283760196635111461876381271859346974664614120307991600481752866107176665705717315509196861294082660133737946862745901892534787281019093279962210561327050292090175156683868260896769144731332283588837857241054067175922080833928326914026671034605615340168652929869160112983513155997565307612554340217481342222893678329509991975106593572873069414688851535980579665256055856926264491423001746176110819275224382803149043694846156770378689079792071447089265359038702115984680330597888807033567931353934664757719874117837381448073140930573079463998703978792754129007518992142901459832981617335069295225462450000456532830617807185719849094821679805496619256858351172561642715842341049657430488568192882985530931409131903518447024559252588235167997081743351056792589884217979762531376802185157964894119494373505831060214536369735124676003472119183955036857609643513782254434167153453176154432380850917739976607360602021313172701082940637722301357987821958055486690024977386225581203804401067262884155263245954875142098342084872373193774262251726463482772791391178127626607753645779764637104861048965835519754571327770511764046251742971808492136689584632095361232972129235887383732902718508638892234404313107648647748566752318438737859253959715883599014869260114818383761653412135205145311950403217636494471384447208848119185547047137475425129469920833563431247045177378938728228724819129365413546843829434331936069446007712132950728139420214173407464247262076779495212659744433652010006337659475722397000291965079425068744664231497232242149654349158229559348857984383690609577394807731276331176291239622526597895746438500050327908996385909663088497428488404296285358161513704538896358698762805018442564889581675803308814737961322041347130501779891845513526833547589428777210289407628877495760578880147291857652060504850379456538771517216801846405869866644724888058714219922673092746956728913261963274840041693817237670482805619174002218472297184931921836610668132641607200112825343156426441178269631816775693802815014880431651704403049130235876291712689143854477799973670183346369677096788393086050867007295439467230051756463691538434828016111522337461637183924098917416573643368690351187817910757180454545799241079811344226079474096182975247168357040011529720659394509785506974659803281778042400276374528263593898671950774371658480335308711735664264131495124825543475914380912078735303293704638357786439107013319868312525572089797130721629622970008441887553417872580974510991344097161568138429674559306808778588136239485460497208960382212779185803353931347551065871460339473799714219296080564545586722681981434359005386642178685208325575835039514317592186920535607710605798749741505602587620879043925680949520706263249609035991923808730869011384877732702804102046914592199475991566019919883105004856097553551240688127027330122739996234703509503012039036000931064702241425283314116588962720200830064941917922137445788501850692250167743109625695032288273439576908272012890159848324916663105259142128155616847055660096131491759782954204021268162212825663158676766284309785654579425230585596596226596125512447669456486543108317140247412552885979208766065173127104411051104828718372861035561336281430281194324213707459649618766765004070278038273881971614992304242426145389487912468403049345436334173560029709808057483227346714206360942648917255994195502390424179718592168936109707391749472302045845804197413017447285864664077815850018330485881264172396848849864501703207480511579489221544706673188468772118403335281161180930691487742986594435183977397682040990810865737737873527948664485687433658015990571828554213710553504998093061409602990885174741040343502654108287698347938316620671144418101468572609834631291092498464912539483711155519263326323925002336743709817003758895067263981179617889056222776733683119908975207274681354241167263068833632818820126257174265824599202494929618737697934667190804907355997253542498361279250226477220514298600934966164225068187701378167980843831810134802016748459470504682581096765856748549213740188333534837539732940628996924577260706289465276917817882901134506884598205358399127372794200098445446394665659965777908043451836319376550081669950941843110988551974349522009811268742105751120952515466142072538527834457108543406734914941232375437075276216582393989168052873985847018747477754467644700374860905892546925131098865988422271818857330524119524527633401606500827582734494162472268808131177821379892881151163933707752102003111503459195624411564618834100275408188723512857995102940387333108620439077095647994336080540557210563142240230371066974429768683717157599243114761914194740118352927778953101211291180992499642254458458342429501970261379136496086139413056714966375010049318935868965181854351068895863422160271721442750197494252142811217666351140266149253040406583688179799964271578382870349278353214704975407800939579195631072459240622623862967310650542346333215707426661401167568519409887762901646647440490858058397397482203967814545192135109484456718516435353230960063134688768230760762671391629978513934245820518207806014802347167524539711241135309954716458260084952440495202548646752950239272600256534058983110003311192668421879055014491380663229820170187594470572219626991025650679215374768532221192324397127222441871283343269809148655919902052571251815662508100134059647677104389965145740274866709091687033310026003954372359095712899248736651012202494624994716735301883309276553887643071437901643227528812688419346826939840482707889754431354995872573568696007042097089286044265691463304342614830591697594847333711386766045548064702803335179556278155280597644519056475354242742880162079772075221424588986370952851657621927048090298363810624299813266199886318471318232408224459487997512175081924426001866983361260332788033330639539657332840237409764871397380827019585566750190326748800832514542932495123077110643837768948288203117230060115556567646616777520241970961425218428377097196661536987914463611674911906763576492977260399392987424025618647996111055941537257599090769198826137088283011420874766880534904093935879899097109969972556780827826542230072882208959006817568976542417245761754110689205648181509481324579531523690117382866261584313560941408156334218630719064503508536139124003501460501717446871277191374053264908501206592643585750181534984775631060838218236083770644802041814922127574778709404659291714222005818109273825654118250146622187391403217300035849312000712491131518691401991810671135668063362328793261807251981554798887193941146469139663813822578126933230769729603546726906800019117020166522079080965865651115986529337273581618280545320475474281933985316458203948511075517443528345196006823702089462429089400961699689267120831318670624558316846699333049265323685175943984469639804339858950512470885934823789924491002144730438401964241958798462690033418823899918102703272157943445800766502696298668248824157513884948824639990719054792241926117693234680179031500768817830265078233443318133280311295260621404770361126196796401982506813409272033716252576768214238115162327162189893936471184182741380234932733917644860168797880866268464930860170149288918865083099879180698850549321454150068145441181862095612737917166438361003992583058733384789938703423305247221224145473728659176837171284121212308233706164746650663365490639207330735535707112851912339528412088999988915199766277498673057871080150312025391762816505579356797637701229735204462919700789560029850552947492352780929148636927613556372594071407414459841098517265661870682221086477823453773181485488462494880647740693450915021890728350015611439956343263153914816726936228275162367549200773291771996702126032671313615784813212999447171516217221093087222682855145861659276146268562483756588592360381712524774123538600476620557861699658114848332693581139923284573872136998341923856229096134500352137834474201453113294851557976395547625301091264840832595954991769717636232430818007698548590649509371933421311225167767029980495014890512572840234053555392719038775852355401038105907342996362797622107442322892453262475720633864802492122298230228226235137487192757412288543440284706021099876136498488867476438369242983781131194692653997830791358822802579853961313950545173649582701437711281980575696004833632892613869792674170180417345611142283728134598092089100104705433625663194275149927515310754460357544127852464857528128342757055251698054583378087344421217403481878293222454133426648379757553451545107848473428121677744021165733300584721524777360798777488072570271354790867634985316317942367458694333872691192894229215460178180675300042020695496197128165791939766236362504006851922534209175342132663780015352077868594477558630954278183779504259586426327221317781059932511443719389647650421560444488718951172865870200548609135003460061832526984208581298753533569628140436993905334114342217290689762091081154033199440722836174572640095497866381969970518037941811342741398667753258144515668437277726320972981859530158707702402797090796235336392250880326284663962952375202505930291604741592967739622029951262957704398692044032648002757306389983369375307085605283581684001153647113742538284936112971774893940508219541071676711839864844736987662809523698088528872157317414343150138191251968783186828858915997382248281588292441292869967760563689941267711128378921436072035207333336201754846262990659365391961979302895378117228974773419206517600888920222346145580607675169289340836613885343574000055704785054553175348811355506458598380262595498846083754355783735044898850798875840393698071509520660126342039261898473485173171156910806070530489239278247110947886828248545705784434218873205781741522708314998727794956732961891843967209404673535817345127927851204882246074595912955621347240713930934420114236167666811520476870721905542756267440926536967632031667458555118639942720006889712407640058826212204937207930834994193643191092368662369901958190306007630113343117894367953425161162980524529536265431832066327725854992305991762965903138163339215363007031789962787569029235331335555249587651022863398543046079880617029394787902504294011964718612963273833280591680705669446441999353269304386756915042690270410488439169712866616668975062340208633078864059478488430691744948694113891114379450778570128802423514604631433980836176536381101646837259062298969858199607544650298547731655504267297242394894360417565376026643671887436113642341389462192347265906205685239986426260881592219278303190843083271476478417581263823620394597169802060086607987775503423840086229343267231580236719236737307116552771516356635133409653816185699160396556285011222676458629640780061991436176421622145602657338217216647287214331834849640528720603713139905150306890891440877529046925756180885651681978925287733631382250184498924793029865088190764190453790068597815801936103311450039439203715559845724044054554814931645606933588619213699117654366653796429510863415816757141432225032875824450500792737774577086105901065104443439574164975423155114819573724823183179077615122950064819678367089557469454911906594121652754645644997531069985490773956394149594040878157857400466074845625140088913449402470091470610723230392770360065679542503449835130444642481643742879251229365245030565010934041883693578835281693171017342976245214056479760915540066572836378534888442649441497357817977609835929687988317567288333110614735562734342912089686124010317278697623035430201009284942439330730593209783984705324856991585611759955168576502865814328354361281290755945905336553139497030229135040256095327044326406977079885055624607065656326879556877876480794954353581698896560934320226131473141048355632977412904698393352196569769015528948719975260860348869362939902671239912190782747358907759457080410025889374133181423801651170176218957063065370571215866331731531252632321878817696943074047070887229441426095773007342212435642477118405923329113071716737841835521814743917716009639088333180334971810932857303474234813732849731473548293677884696287583715019436286904813954582825538466966322852100607227970201932198936747290169827281043100603917835399809584476378409392789719513536409665008405072268247089349086766235272413972076083734486607542753547494573627566462159708717508165682848551363162505504867834488290899904210743047478492051552394968310742741532689661739977050262339764310741927215602659284461250009223601602409513934899331526687135103544632943539170939629520983637023484082938573848839854262943578284206184292919560302232036259215034756307180012835737430246316805089828656544967900720184212151222103378521171143977065386780652702410871019466498409832974506713328966879992541865082296839473771738772140124238568200042301188401897897734492457405716531450828716482917604271315773952217675794590392543362719070481271263267473224712873250192497674377108671823276124390902929662286407282726199003443295426977406492065027848162090666836752785916079573591272329485398353350044510330981974261675662719470810158313685366967629039938104456966771906259847262652219186943059993266006759087783091292352202761052573117809961026829552358507992516622810031816974277419040899456149273424574197063087818852267088874149732522088171125923883668439419538653632414409366110561410791743472067770649362093784469829802770494203056629642039741933618272437576872504645598174185268713883629055432458622097088031664881131426208518212893827430448902668949097155756777105729977139118154753146786356777230197443015332546379773324241194981614402839800386038445532321374097866232620767417463141926441453574909256882852263427699201628994336133501779982588876723931613055573132267066915298643371274662723944229713504747173602467743872329857395134680793960971870195246729079271914785499679965169203019785692885465483318797040620388909564932773524180569539594922170394085099577431506885194417161578268454789725868477384844737116336052176119981311576945103546750031648298726801454380568991422003345688577278249201451412051951923947186771266082018081741668331926574799888403443145190091097456382185507904085277870110317349398780185098279232308873251191619148319218440576920752620087426055597239502299330077138531251019243599148643171708482706658448906922347757251706944851315116938614914609035710524341474641555714302718627217043111203543571176587593622264258092056522780264017901972284993606700550111849113577204358123179645757377501578569783221427888251149513960668833176073540097136899981922515056004393155861117804360508623115935285117842909914526037365815301404548708875274818128448715568729493532849710447351180810583714472822765901357635475986341352289147136940369142664049473993281022156084565273925330325581963142515643305457566043520302171367314615335807132769377735866166880656249162204518737912612863048563532634673894762082077784898885953066092186855467090171062461463327413670719123334088784961873853809789879338397141840868028276245651329514193095807901649357613848428662442295418452969625688307669863821854929315607724789350594819050029349592562438572479623331283394955386815055952214493131184786628720182191614356849929182870452660868682924516005272291023298867029960016324244425748097550483338185868244575758175225937521031880223676773415961401583864032192514530747344291073026746616825874385867469344760530619950718386555152048795017832977987785234156883607198972029209246404791995878115719784174086785936669191524609533562293351344514433109297462879438302478157306461230396011909657048857713916168313522804188110082325783246515478603689020205106052177301047777458488988683294194981379862297942177391671918171456724312542195500768618222980654715815055237263333209422888774995787429721216672687808222773846904213649298909187156720145324003154875716525102282382435998489949914583258862470228797292509932893966896166577262202012828661530360377258858589711309199440088625917219765524659037435191553433117247151525443367787680753493852051360402547972770316157763801896331978266039961277819447671868612947707642214787723312386510044577486487268211015446204714736490996413865663138102615022385647323465387439246401157354093660497444478646712468182110637613005141992088927581196088849831342961963724728159803446445767890299414207567698880588269890721265652046390251551051262115027585974556487416885051661982127454799472151717132927214066328986239406894785904408103656717235499192728856714686782717409760839493088327558157291593653692978324217852192713761245312041270469535953121283193926757804291684409396820376277568507008463049142988757739740495474503436276162732580356437789322311985801595551979722564193237190370040815100208435931236453595558971377623395393306502677230294372748901737331397564320974924207739066998924053290848532136002463652246162387097913696252563999976530368334222058853527546134113070215942061898372648497629668204347841877028745921803024295315304823603525120137989927119497374375842540999006792307154012276943678450579615168346663693009553622377408393157059328257189509130433489110416918543862396342104583344693561570480219577339608898574462819183476177734077841234949433610211196621858963020956014698145897820967951989839622178842430737125024076507372045044752193697302088596149607609668195046150386525040884196473188273547942395579982313385567502270134412081833934157351275744598326441834521213004793055597260936978275113126497010689138102069113094156219663735029376320914594357564920959629906913193698321142710403706714600417726628528436829769098932061543091398735250150595976811673361394464017396383568289544365226216276633720974937964513164941458392177614746018270760351118921071034108144863690365729356515227397620150995602071824297021045920915176905708400895395556906888047477622014835583590824766662600739433729917545881245327501319379202640120133534084451412231592743533404339845623586535901815821278832028099404196603738054075540481714482729945941093432580429677226133988271428309496570052142141744097582014359823297338941943981886031537988934693106318538910705367532622903414620323476222891129058143414511641650925941753976169054424863262537968443840324078346255515274650220656173274089027096726394162906505110987773385153730436869678798914979118764360611631395186603475027545843672402511070121284250913248910540720783171011572627459239309565444786584362313890974676689932571678809190543841576334881528120579020442745802006763773623793698249613195213792094137227937623781272795573413419184622794357050242675721071381551302909621522494470162977338813112183487138855870635609260347082948187183629125523948705040641161390551534935762139149913758317492943634986698180324980268917972721843347004037583510718984639448288089875156110689635099817359811550571358183594036771478657945449938990988159579339991411663497127975806550337878010851695569384151820276453308334336406882804398839115656868945463079770284616174471037863737327897619182765088297769624598529447669954560677828428730452649916035428064035340137475895638946990785430144121660476443341498788499886871456694049974586633927622789930721527257270759045849986398840074473372588519377923380800662912800100935044937126338562987488843304375344322088518882870536722249044146643460006155890497533350097528667003911064229035653151149013944673093577161030724313540234154128531113432346148082930207053783866090927421726750627721580976091925886665495372756834413270947116353242530840707440979852423534226290850094862182778535481239633799067918393116173253291432141900051209856163029455152779932215736942931676101468657911261574359754406290872087394484246909900486942076086566275075444139105495703848574251076144006350352728157476406395504173746910233415795313720779660719948478941968750399398641096623141439213050968748893871665339497883991495008626373557174366749776550004671914766700059517492364875433239810852079773577786126550696891324877580550250392784928138900632877115176088919469698723929093423952205075638416950597071513285745870357268649754705646087184129963789243834427135715037646802517748611371077614663306524458550692399508129579013706464227711732520587581588885071639759317473633464073128371492399029241484517991086573869882530232318739008770527576440082165388786739697026487419750720948485018434655665073657342787434057637682908755837792160378535373901806161905766979621236366410192075911461695901412944776145243244369842528893973813284299389664422288849803671821846559967244378316168178953955182010434392674673362768745814114104603411957613210938208027889975260961752620098129940748571203710560119730543702606295560291222667981665892961306347805258372040571473415510408399373848721056398122769669673948959372935752689519458164730489557504763697163118550546224248912598114405624102549649223468403581262225908312046673787479816351353571096274248361144479376289760260914083607465290364010693815607078411452764983583924353436396415625582515538527013343758171494364605203660584905398808143778414002027060504648157578349058527172238275508393673736282617143101738034265142136428192543798191893175108980325212380467212801909401910623141230744021675558361883879162564408484712174574912283599248112689800122028898511420630489822868207499916751382043996657962170263156567154006432162705546831351005963854202197530690725447546500602785079951329429035174843911324149892333516539675593584655285214518585257421445420249061642349227823036928596088280527017382330400407851714456222732677025331026916159168163698829036459224147465119685035793291191353568565734903931996924650641232905102323595094314574359155640716853570179669926567200428339902657910241719381179805744666788246770563158899483656519874875712361672273093316842621306796865769326343729687305342496956825704246272560651427924289336159721329849363005686084098237163253153742896915421831900632370625871612696350607490309070007210491342723450456398533953934809376044356317092180012880514767734906528123782688006590570080984153579933253450100665076467269738331121455772838170585456088309178378040892928924126528232004711824942266057030416473757811397143646887381082015754681637097871834899774333448771875810496133834512921467929304446321357175372650121102873261017929730355745474188506164399748817157283801102952534444766012810351515806447124581576366460670252199245803978081720865561861793143947476614702255495319356069533774718121862217469944568703328316884808849569257853524451889451593575218103646377213881598440599766450993921132003398660139522235786543979996182353336516036552529266230062637453615245032894060856483779057034354743244816240730606312262385875566878104939859647164577706662801585435503610061470728333046688737074582335732423979010657590309437111749261963036419585599054531540921670665213893872514723687042490389896431202762993417586432951959964713235129054004633732641059589035312416293036768751163009606003946093076051506751754610151419057392504541845417254780810581097969310765800118497267020996431112605279911107519434364440881206122616427612530815536517095872790092215814851208868195457468639732127902199808347790999933673280555427257626021807808179581674581227000590488517429706990126953861938860157423277094392628042602867221990578284119911338321518086386212709857857557909334297195586968381775086844533638137526700613993053084002422255113752297508672369489485341230273673060526450252297944610331350253375112476583223002381912532184191201573043334436886910572573615245085617940965906302980914341797335819210883254960318877708830401025831668863755447335870787491826298105506627759490707400302714211156477016850277946136933382851149678403272707783584173834415306966461721827520966294409695033156749388319554825007839143530815662932931235398981357373499800519032914876369112420641371269942369867286353224880474166409340792729719826862586444818774045048443887244908611747513686635197931387030680137975139353117403294866322314696861125537482774411490181686628289676507249008787999129925389458551990616740825759229039096999651126111402143371036100494390942818944542344021583032486926058423975845311919028177841007628225228646658876488179233716288486517662656024819653033558721096730031394843226855589663410098982722519099831078377119798300537015337872247889031105496342434000054619424908011815337647671477589347417170873186957589299997435993762804492725578486019221216532583668955818870615237761223209988407195108864219063875385692970368763119484887963591126484972750013738379473605062600104170942425038153677736217630192156781743861115590842539796688197109584354377627507922213759294671559709482492043670816728507089532383890031002923779692208473432594346686619689187169419175528606508162985893553455671982058293121171006806103274342375804088553449186246142806897804128843863801457340077277857953068027269992977844977331221180740025483480009462840857417977259283098273718865172805636326421794750964567785057641721848173718390152742785470830800600620830253611260978661169119604796700789511899748415554224198593554010259468153302238928178919615649185404162590898897469589961259184089272808979639133964929228929500592425730374637911543691901891002298814496431512560993445545895134021685897985560749763973540439067562966039286144975870264118877089600424119075025849365252234062191114261461947588752660705023361413444410859517214683204826476281494396177231158644965822531599753721993084315662253792014173792312881124238444884919952431329280454019684570180277029519247849628865672567624168585948981154097104335930440121156787581004341496033763253558564701106542780678913243136883445985916036726143387860391495254542981340116883192085638151068384570696954338777719841147795382036009025506062373878727370209124203622644426127667797826024177688562697641616468917120948563468379362685300533738226179950284630775732009527301665111553768354333293622447977160989472368976791561944021239043120860472703469789467185465612318124467794310881717054276545298844913407360176883344288221109226920410576457974903707944404889404683532336103750615896454823434148095163216674519438066306828220395235748806616413212762988158927443319677594696070046870922662813852133486933509712226250020929361233779477049695559131017904403792301847875512098347523478311670015101053064392091306364295794616482761287479931440528980755870889048172049659488742747210341450212059589410264183228895932510752879352564600909498079338846589037786656036417938003950720025061242001453280588155816487026353568426626810520933509784790020963043036823692855677467164841839623103794629847640968700065159920786363501337960753957000639358577453070552866540193733205412596161642507960211813713230925525328790988677560352064797717710751348021271243288538946837825307212964642934433612770455958179324432479284777032625261475658678307480344462331631468772272658039488351621512807695149168249233298487533369902865159137968017647480540701384429287819340784471772486145720044216549760583230254511063633504942090972984709466268489676488636354859901186698527433298851093941046048037078798727748970191414703885991474251901084044122459165240817745720599824992865994021040955638336856907194938165194662435465713754879787244439882738204140911147441879760703118531577722805738453432026933794058523798127721379695727748433052572930300675751696709191732507924237017103900212854108507726319552800669770270764806826343981385153720237831039074742843314182403886892390884412049917311805114188083528694119240594453268820653650867896486922644461910295870839936052552684056641859919131015750416098439296594661709877400871239125831039796890432440921266087244763149804248457276052549032147669744371592325859456518195474793430877814598049472131118815031239679580958049219422663732256125119597700744693846609388419096874142432672971571977846626593876060560590879454984204648892822072886184012227589649137125401665194274528418312883960998363030334574247721317243606575830700551292199674483351108944560873884352727268113178319483715880243165117370892252159824518666281655466989803219479651150972453973289320581596738891614932514721029685592065686322891523254947800411822951544302796623519991262397387503142988919577143513813679049494533297680570514962028011369966964897988300534312014120087949291968360268590554164518695646734666729229436480860819540037015310012321910851250458343685902877490490406769849138414156356735720181417650935522164894732048422493218687653566942689662199367348761679833200374892141627327007826915556803371395504985711529486282159753328383868614649644031442477562168872062287745374202526729603536061100272575557593582258655703959730047971260250876041323621072977384410971572843589957415455612216582099234508085827316840295188110686047799122874430654572087184233410940614474617475171049199966131215244165567893139113379060100970544225715981638953451976792887321682700423037159890412145255360151996919310845944504793692272602319456584188960590598272942450804920885602198514982243430097575107445836207549021176207202345289848788149466431181520697479264999303908737440137679394292929578353165569556141213255496613503915512621494009208325871553006241331928009750878424637782693559015658033950502756865893721245734356546556666863093760212714063163699521743119507888411850216522865966500232560244532865197625203944830999806075883002624848059832650592536011849594630336286508140084490143019137420053059049997903868941090820480637393220128408695289822580402370877881986385544126824085661498701271472051841244563469572129279931273705109557317581379238083910141190454197608279464958478293503049355061127162291089735572823806724283686202934482613088453170703181471662251775873614551631558937367001645358681094586589440885658891022100957717770286233042475340249426949022308394843123534989548156272475984024406583146355137697978485317469021163497958814150548548225561744433478761547282091125845248239133425922612425776170639603730161918314780861119792829230729754298811011764878262785075374329788566882067390001283301599923815091156576785635597046113638007677653536689067059237781401425783673437399770363078778662634771134034970892448297923951204505494663763032627508557338352242886068176863475022650859085335621778762569387553922792843749275726287817799068893896810083966524663464263236058993029316062904161675283392072158589756499033767958223643636434632116551319582914312844603059616131302718911224635865827958502366753037886400071044418317535577003348529456403173390596353786933432846515206667490503988277027691980889746736190345168596167920691949783950516205721192247651005782017259315229172391388640825306051864610582641426352720753429090010333650331137535347160453175086059957000319907018987107432835801064823784917872976832207024395866166042904396430067648149307813058000520074180130315596654842715139172873362377314030737990494778113041221433291973278462515573685262130031045489210049588816981160567093105147489439917852378819210684719992083424015669782736822925470953495748152957226946353484034913635117560256700665486172504831322733873516389090375752982201441215593251845230844896818412703603999672147381519717696544743709780384606565952371588190606310529096673996489387536728396381738336939570879913264736395174049896425812566862045680837014648418184638294494051475193116591141151132217946398057933693882895327329300815893582594719198633267644508769748284869636995995552693533823251858989117578006283797911720086864263710650447890836688325729470817609026350759357656102514346757524971889153138952900904634640633071555008703598591881533366722536657465465008152188997670035660517332919809444024996383073683789778229778477071405626338998275019833029075453579901387268183546805789682560834048123749906908824030869759673399784108223803295839659310545422823060595228156449602239462767940074478518368759614975525222548439741656515542718193527677643974495123378236788115177794466530390708749843791378749250495534823494660755011791124916167118473889282194991191195968140946431710710515619164789625011023172193393431217394156204057911245766538721580584130274613552551249420247264376251572445725019208115209896402292396502291218889778154785801990740987206750917069684349602695894336841950188992346420302185629204511792594859066119952975296536743547955657394794132318271008069308248138651556717641844493285932269935877827398076700503888274884781992843205391644967813787548290223655597185338268881607085914137702716044118484868512738690567688954926411651620000466944338289579156481906205033701088080184743651766832137721457027451855603914254000149450016410295732463891578275843003805714590772578385733042582930855187463479464335566931135748570643105591588547634333727602456739049106218834985514244594062604129500070008527916177962094011536821063470449971360527906194268211638109272099855833352250023490868257580869859764998075666654257037949765631186383233089832480877366711848293999867642219679778394516137746583626851416315664644928985886851524222136715656089067334529319481260407717996117051722901009897298625427446859383500652647635037339692246341696110013797473448079338467627085073797414040899661461567601249279829711832136226674348302040659537383497830309421431181814326615180679205595937150316602033601653613088072001737780636801851662336054993688251106113632556567213079231851269780756117632088985424223624224151610798608436346548087960456682033176460975341393781304666136672741348242109037197533293026366218515374580388422061134827713922585082236396111868459466670923034172989384850239445594629453234301354707904267304904271851112233249552331008559936456415103007492711228992855288101289291766700017311775890498737842461188672928570003583209432240833046616211733434909824707320325323709090418401537634308809769115844025019946491599324913225735877800689528885992514368015131800663017439171664579690595954123119550599878613769658488310269033907357805687737585094529258293990587418021120022474133175306603768641126532274075055070386582893689393299644515529422145031274065530803330003159879698959765389250064896254989411092317248516231133240739923507331427907998907568082762110133387154877709982055005933360858224840847536513885397940687674344953155223592111255765360109825494064276457934176595064788929052700446362163353686860970718213680686331883115705513157550047906849191623464853115731760465617887415105168518043854461865119838097150092327541074687818760809430377819034733755394298518308053963601345821629248768255580935532613489250770560794082791208304024855185260677503858305740149504299050076090130190523955454502013460529445354244339889091545160587734895999336138379463442177236025270525943412243945090572879483542075009255355266065968575591247218324507258690287343185752984406723548704282518123427064279340774331223643601018398572381424014852919609466986093278573861191507170182057187109161246565775801120533531292601689346580377166523736396841298951199534047605275428560577682883611915849972030539967632507202033713641763061485316725844846640408737870736268259426716676582817772219087278125501680563302659774402936992986905044640676405438027148284452638508711295138584558906816628310479229564080017935031174268267526293191955716403732067957064381612249082374030341585286741567529262568937488277843745271124067282230713957803005599068232162768637956901819041310132849486581926000321461456519481380949277986966703554822442943633450353221444514258423650635207950696046198061116139342837901595880092364069645716086083621947286273071109223370177324004022468381997771628302874888302646784509476358423823235319586622208307049168010825799071424100861473052890801547339507264214687827454440524602123133032831889065412765469306094666098030729823191826817438663294555909917038765686908683618748189772370613001133478113586274658391088221233291250223307776403852151270609331366504130994651665243082618424779656468146361278097378421457192022735777277056242463419288990262500639613316243588989011596098773502398989681807570427321259833066603701068024836587155618163946224038090450410173824977540451850565062604108049021844494871290574136881438051350122619553612701462661730757568113886759565481012712171400627230549766164935132048790243832521972888023593633543502715658012743986120876069743703828149756316511065598524751480795950634158475945699123003830994470674836478403507824845663171806421917736535144434526772597580389628357519867026915949533317506449890871564181385426076063785829659335810106387607351906919135616470963057386451899164542840270122179159787324687531065840113460951975069753334755379977716957618372726272540137353327007532228908070701391649433955386021637389999012066805135411655749632529819294474252312515269914689662685968935825284824416895882377863366007205931282722247342704588568138634314974951548763954901268240571136904673362962765528473324114651551962286062105914341908047185306433449472890513221936628425975040487650893742138448654446358524315687914991393667996252284214048444831997885071004266985094368392959443969887198044334422208335595955988762986923775724643268354290498339492728522313636913244954318563544665949060894464202504134800757731052351421529462597875756242171421770633028017332833564849979194654841777934363777867161302554230648795416354124056569482234735032249049878800881217709728599471701652021746102316935553201683246733128438295967330079855119263843361636913982398072555715847406840384746297786434206976227506799671876732152341515038982317200557919819951629830793564425396657580234548088846457222458687976220842508115798948179557510608071054416233781943872172490229393388121979313665609551891112528444958870630166480253382587276002221641418733204528875121423420410365012675062347529076523244442707685478102980670853053706583870519644636583784395327362803317961008450243613841770276168041637937544661848420332258846359767739748098757675278276107121926532617096143291817755420648208382460993273823918200161300729027991701544499217538646470017186026380539136531273753939973656038487962287505372118860843948681545663549609035940979507285350041060149368821681855899409358278919339623847634319424572040360511534530854010880215345374018176773139969322772633508569629202092959746836199051110917457181807055611075413013755947842901729209171860731644467595398002927676083947494887013506364037711251994953195803057269773659153076705897695782095970008706508494054370145119113069341479936980304285328603892513344429317713126691122417617319260028235865701090392158262028786830610248358844154977817884888203132477366256987510098662502842432576364812474522215444427310735750532626966986490544722014265416512867893127449320429123262255138802441486984963900502861229070453798794738785824815515906823692427826046200412433206198943146076006204476509726283443700213398342376705764113622129875875453708899262633634561445034418942432842942632354787441191803149730664914598253959572574302391500529688622210860673146871647464806707182339563447175311486472760369808576374516648086097555761429931954002555739421545235863553546987793789580001534457061019045452587143429199516249612031740198473322466849937695796841029091304419704907862854324115699718583244286466386961955315774916510640750324881272439950977319970250578318690254502555838325415680141387900465606278411950013935705599447386981737556464660118849674313559039121017321536617741119605751195258472322539074920444350803040194030382965967681594110403322265334728497389243795324397380948551935968944928269393038231892376276979512457509826033825790080710124428373199227627226739004170658891069581234597017085195015454302900485395385585759996571842880068283097004635256041881182012885765129859847975925425503349818391702495545064849639694027826069170076214229126096250906097726421483504033444086889130385351607634086095640763218703675279553250082388711249348731005784538535375311233580896147729016102173911734795331359023334119203208424952116968646929952868615597533316122647913032680242786831234425373471573372815358931909460420827610325986409832818312352898397337349999314845831579917609528558537004488397996019471698646196121393016175855795555068777051149931729594871665440114855758264617001033857343117034453618957798473209520948843451930114266703585845082255579798719182196627539359791392935700501288412722070546638634716156057188218280000128422823768502483559971635157132366754986835706328030168992572787302926438753874858534904705941255349751764231026823416952964549541767768625003399827121272931294682937252844333367587482100192788118075697071402029455350593715981763877301265638123921802399233640684926822516573805554520965313698377940422454995220881802490752967182164919415044973073048851418862193722498776225932485963218320497501919658430805091349207544525844529756390174935128989744436710926191071171962253705615198876142975914482801262231812405542478512207584882043428950044561724872577102505905155390605951908372967200645709264011240715060164976168444651558930253237551044296944476895957308570372611403821570775629472650644796832152114548421986980387007771463551770260362589728432456479482483590416785959748770391001757695627818147751369252727205556047388846707418303994423668149679526799429791043147709999730550468435760104966075158388421664990117496688921591302649346181911607285225540655068386656594513972440364851352620326286912882334305651086105812026173848900945721410017923093465099692761931575846172604053534252678143634571521966597245387688911336710948620896395995135762283389430506257638861201676776624549040326993777094987833733942990256668782169131307319680376104469232363566150356798561244186164255434698547588078617775065065705056882185719890146550453694237331843034764384395696078626307967249252872032449958676287130278364821531428235361857944949450478925054512846215271993420373373893879855900659287119379052659334030555946808316925464595022497340436942295244885094253619743335824290133958688553711110737830666150751801383447946135156388730048898243657988562731357695300865267964208925980882151929847738604958005580434131197936046453020378643159800453807091082123268460724752316991803339671663241548302280526737547486908765326399736054375031297966652122655955536109010616125583554936374927504829190340767598141880079837290569312573026064984024926599108365902899726887145520059419529856275748114032180769396515914433684789133913402878033935779027037247339962204137422119765723457417704706613560861589225026753062993931734827857708244432911860524332523196410546118502990807172166942027233492135162847888613268608888643010201530357557980078676580116936749466647917823944240254738985083291988347218407061057334080073438997266266328130714982130787580959979208180096489259824678168108364761496043194434127286948291353753449320713150963131495717388297101369231358552693453517298113830938688506252734385157182344462049458722499465377143661313964127976374140230917099194303482116967481506253864870803524871354974427878016653118522047504115257430650494909886202644051789022000692256770582644271127582603218907535245649974291255802031562208992005997472488736194679164576807042290772780565710981376230360887215977931837967833521405613769546155078879601826535914396212924205942736485926172935448252346411785526468668715028488991922131082370765693735054784400290518158700744649056154662616129391674569036459867460817756923076731317808233120265978342422314889171848385413585611647844981575890665289895449861460463155184121797328265604287598913841039979478576339043071629206187116302248076896440757147748626669758581177182418406498579700492936448791106313129858801348450415204445037898779146590457004264792240759208123318560958438399757876690008595958460046997209841043950715193767056783629906803241351488070971686181991825289516606462753371658167283931200368695226211296856380282346442608062210061798683136053356078910389926751908725706474751922901629666913452778726253309872679136395328094847261559210775670491008456673871919840428301365586445472797423761176624812819947767926047724340109235701103046800931729018995646712457297825107901910380787683898588205788357228134260998994180526495542131895577545583255009346552181733561250725882578179035166168829522991339292569679768936552155977005253087773864253276695402813660339913584068011171268659939445094558730054650562513020357916433566340566522583459667237607567768294267078251208761777586796209667167257922127649605935540572198972375661279189307229169258323339198373477752571039543819993625029373335943541032598282018898786549167228963364063248742755043693582148312757831788097476630115923083749567254857290014915388783560930681013612301203657088106838663011184672947458074837588069846780243650988771880990381446726480030468799901951434459515330357922670288015413895095432700532029084209722100738210866158533269779706343198797422559300117412535377572757991281001414077082106760046195325613938718598752265046211907620600203725786791180728387929813684498342503885061104996500782845947652479404861647905845425772141943250812087407323744293488350701923520944387979649752138016813242170449096801927709062475226649479893636345834854584400681967911082082896167022722792589135699543012104768556093625471794949910017105960036716377288625302982733672707674974731156163350649211975243235382451765110891633083581271033400375908563651152756785160815298710143979901898030536501692191509441380609264794187933780473892288883980548834690423013793861294018594731584863548325008752889574505547608617680227576611834743136716578037586893871796799078246223038936719870350349403300591341251604797845684412913000345228485762087738813235326254091044358324402701672266100952708349381104941823902289131193280150011048380830855992987074987965203592607129448997372635437652737618492356220699573558915162484672135728048287366690969953101544386273402109077066277275125338602201093793066834128071277922734466740779191414388209148258682641170556846486729621861156978856313392776376484881864050935001119609439683699593294817804102988258033112200385010207285273436065700711848509970381116043853772313838088356623493475689826036496728416021862515075979905624160353283781034290373320778098854445070107871141374646569512315144613296633075154406935601740546174469110141997367120645703633791789996756987264801240680212665620181187974705497914402022039813777513079205008124996517576061033259886816406980223267415803489639651551785366926239283946782611159288094096845982834567101762423430823542789652485192130420072154755721392304289472679464295091793154542198197167303539039566854121287387135319332901424158580402116017222755084212610568457898867323343199921836983097439561923646819546008571721829733439472162410749370138561289626432300726552264604398208026409346754057560235499615484608243527173145059030105368970713101849106646209201167550696780298556294072527920826478485263031869751015239255802293115077352510702559664973312858147847841363680423796396961360406087676860630354434644022693776541387328193228280952195200786835462360306657797587976505715634831834042739133559892350372289633284201867217748038786385388518068528676930951074904693672536541186265635736401194386774706793862164818770486681198187630242127475611608608404609776663371115879445005032956288436741278397747011293993211558947061133643561130601387572512166640617526120148909146184981207011449449823780703188964509578364749777044801099154336202120938210174642692013157254937543617474116841357467373641474976489054113257318025169663379206434568850878792116563425084706305234674802464654878853873752895473339517009813771956790152442615787950104311921183856668135821227018161097315786081552126508212529578777533139651480362755716861042443814556720447811343421092488858051867759111902755398651618840424090495158700793979950616823120642501799888108568393627633501121526558572993622489597441218202708564502566992045691710971212790798067236212879573016248932076359693409531088613940536906769804608270999797810945178119261838741514992240477631581859566089908411736657276456363687346013815920384030729608706805646040379009698022297357876809082084326004302692733035181058476903834550473597738637927352849232890019356640078220900423330015212291483551671564495148232920425859069601400291846977794792535862662168535267235525294487478763915195273881309532931084834436707930122866853134494185779392305038291020970452828217441003346509901512843141055662059435247472367183254941947076331565388603353372377437323946791561006122824821877872278766802251907660314222319615286174148910193693923761788780838394540215441247366708041500283862981781085481595856940559196364234716377594685246889248005829633916488565769952593880013655933241027132506255552597696824770648593543552131821414762001004537838948698001107491806632002056133089448185114301177690852363298190365228735609829825975862400228403099040992715288759026905542362718191867773063493179331635761606483655172679053771755039662839112740156158936431978620191370359726133466010800789895447418334257729807408859473940386579565430894687723489502508342965981349364609614885930662828716137725619869146753961937210245898063997076822934697260512693748999167992929117345900640689220738027662239512688673205333737069406119261672294539311686475871380012381086651936268552185637782931298075755426849150041102976914466319370294817221920757194130431406656568001304632641095170483324713922284212218929135698275045445598346974632593389424644255619077543176944681113673084673521931879901976761524936710902570619550920524270374622417075122572562731565266131513152431247699885874878267755114427739770253297479132986625599430966198005647413307681341798049123760412960061676979752589450642889177214517355723400687187923841502285085470641670731175950663414348879718675351211155357839063835822670734560408497137214867648500777311805675969421740893623670159517802674763676940582006470270324351432746750723155058144136642983545433816720423256442605601513101579849834041245839523530473451233114190624268081772608439695790979030927597514952050032022119512079183718723657005595208216103156964828853959319283150623357758956549093275563815649576703294776933811986128230301639257572182162990938543261215849003101367979667873262953818666336116620830514834330509050469566581520872641245930398619821845844922673751070888997037774976419823891129172346924295196992510071252416286217315136227378726013324570738607940317352751277646261357838021631368884326980789156162240890275902597025120906057850956567924720520708595692837766439877403646410643443321872797098698345154852357492138129012715469007013049427478287233567305656251890485535855286774585766465150822020710832905618259086804143741522702553691747334761157817850868390466523312574752542151666879359562678775391355639715372876047936860541679012370492116272099014875853282085266691624654094407702957514780161151184776368160531407833535800941728411959947628908379327514009529722742850406824804327626044237211436606821866893692184197094743636834936855340214235328677681597325573990480861177251403310916387407047572801043782211667062424477278056033594894811188777560493516940775893398209239957147655622532414961138995410257238202811152798750894886545932008451193097100207211062982035907989774357669603514227348676354456957970743190025140687028300346164005021009219017705795956527596272500205635416227673691746202240589899670354462317077747141337961961731332923552647649912097811533546738475148713874454074867093781380391851947185995603182642803386228833124611818195560042798849597415524397297445678512005235058630577721592272957914422043690463542577799179710548995189027545055397797145116038872493568516765357812920860219243247847132775620134730616582652818993318360375675821394613348745004352332155485020926924428942776789891592958892907999679884435013529494528610494199734232329500990385743090382592576639696255403673427554449936806557212131104548924073788609736113734638153113910059997211467799813340127428599882745164759195492447826911355247518014787278423964947040210246488154194620293636783116988475501285494285431216421971371881837615020127231168474593645213258763354319901989534738560473233113597855979702867275570356746148299856057825287499643377183870308942635070142443344746969660175991644311727846287897938451777900776046461223221555754098908376938866129826738625490617168585029922649200304467325864510640692794652447122116970204449506669893702159106467272963064480970014136597083722509058431354703645077118945421263100022046932810546180472688946339710543441807153036027222041086340666140392034727220356626407351011464205992446698643392993294054651143310713647632594864483551850104183831388332646528040290523856055194585526525509563293814190886676823962054838259937049664018593224126679708560155802048708503977670209929111986784158422231794968809526626581721949526479465509152488446467885151525555897791560728240898299089215444550337323414829247726735006552038969180443243433182660126880412925753037277347438015825363644068343320011963165083450155765796515689070978873581201356210108936983239727172795618544228177845365831053915354898721404090926683664712564818758425555985739498491743473084977095880092867243354121366913924053742859405963041852391105608240977771123559516238669521628784306171126038115807233453194556560419944858579020064040676126511749840184889231588466368170019013766035235198709256754623306920179778517666892409365167437441159823977836316308486851787450384961722105740279477827357372403408511368508090023073451677651398962224791740165783452067200166712967428451003873260381399026038492596503758798381144558980453589542559323573045049972934684492971350984099070978233446823396073890977732199742376768465430606267213051525780466414163190651363919007383485071683821040017745577632424202693855866413343893301050288330368418258055960312191167636851514727587171818742424228175019669018510455101092223044568013374968844176998331397396411881282733229595347246989015152063167690206518396053145276209160844138843379351013075702279740907546991427572543104583279240991091982848941866143856815293061342452265065125155251853242100572671678696554187390523095339446585033325040298777374858382704080121290330151623724962023485748499905316112683584458732997450248527258719752410726622230078131814644830774946966947062396985017589512693939221691573535775262711979291906824101129023991761491175164621404519976487580219440205247805270794935851622111953566075484794039827820277273406381239842146490252729956787063281102064811001458679984676078043177942349043327114485206551913378495338699440997187224318807183730039227054190752900467049132603462831804174207513023369569536365189348458267472658472706693354643374029750406433237828365295491091360410377698677475803139272814736106243236802899534578723066226498196614243586138012019599871719021910478027143080893848294348005892186022331802128449270237214911944119244880665959798267321283366224914799157933236880329331002618090768128798011616592854485108024712298949257392994165125768942155436641694351141350923271895465314177011941005143006617026702880316064447656519130145846325640386803048296235458911578797652583658048445985214618137758262701589003313563265468603018886180264033871890523531123842788443239767220801385560742585650609616606965152096709623679219606341484289380944142200154130587242951135435244897980319865971119874199753232208392660969922241384788202491190677457347642637783593945562059702868313929023316686618030002916074011236832440072314554575231362932940736600130207036096750235446081727410579617115193345688570646014036097130047952439273108937303305980258222358010186063309785769414133561893833878455335381117207839674548469089029277934374069762599795979724781658591745650804922306597841156982774186317731081084460453677178203413360872023037045028520133278486295996710998398929733376398902008691364563490814372233180418403339320199658921140423275661998012971658218796972718136081425727521142429478647390682091082696020889604456197807478862110255271306570634193335962697466227397603625728080856262976531885593751002231257321959152530435757020218159194475979106929821244051498792914673265893424804805651200566596684777067288509147704409241283353009386430430894118154128448511897217787675782205331039726311382585978475412378519978305969166880424277276831195563622512584569327662033200206374217101405701105671091199950725305476493582501134744017397526033073501425524733298886885602765370566053590201180673440193226229253477040951369162528421083355422293011256254857595373028929363408938481141224375371426866844081063788524918579711704342366891638636885016181070399279448745230145486290755384019762176841183195990700726698503177877306622202509319275703368917810386298845842893332352136329818123516111637538299131165223585865340779628109782263117012079818004259811649069941994207632766622085788303033249385807387393464355815445772741863286403865165752495358911119660260544666187155161107084258300579630621345462009165194835550134363662805383847299896192604989771889649493121294085303394271634734109014412410027981327023851031613417320282064106742551300136118034965020883218895451148090883934713864373988294766884125729329724243029063046417422847295468548828839224332929497713804506534679470451019763314643296059685161700422393578954272394670306071456197396735423309019613399549106980751440854223522602790400661078611146842704445820432693093363861139238055397446711448651031056125565037979666115769018522541621902880642950867318821265145993189407197684113347438533902265849971178073513010494521774108676099902188640747752753887068400287602080881970941796757601542163355126455103337423816767462233364548638537679825364870420063127571593568149082391205407052981972524916706895798602825735694022648208695214108227781962769705696100977291363592992230069291533986861985901609562680024408108143430577679899757071310237616725839095610619021552951579487828693868833625251275319702177258689384833058485798866714705106142345645942059953200999041355098160646486417043072827157673953159467831082768091916387977280876039312932710838067860556110271913659892636051620202643651737416237259856589856982712209504834432253185520403475083252925807617819638368734796118156448836713219553627910743600917214169603934858601506232300610213951936349776658721623668853454322801660056400803561264873550092082787968412787993701276833903769826050355411937392938382113993077465331512605830647532298122321786547728738950566335047938204841843318480010527007439928432143672862395693370013487626644611261954397589709480278496583419924599345961346613430295262593212091649635827650169970570306483852732590690900451324986875904003307205649054049096376367376687032769446772002512858086245352082207411817995067028204427588464053815674851954938155661966997083051967028389534918833879343490770084035947658593066009025539764249606732614909569494994726848835631276144194424999155440853350269821251114507751945118790162400568521049477682314825934373092614875647662228843682294869601533203020008597987031494430189613589141558343195336051553893915647846854860561330274175206045351149773889891157635075147037459317340072376864084255522853599348884113571036324258387592174047054412913722942015960427322204597763618108985428833493663721966849866881613017574099268641623191851615128462613264899470728502331902993952706070011520363514220230868830537726508433076563856843021770987308053201375406622994884320247936830375627047440867813377639800849023508731269970525313144182655566577026325878089379265874254573911579213675440178270000966940572516799920489931474794565422016520959043992898341534039632615897635651760524333638403596721207400828642601809431103851646540580502983410333110771132161027803419415583979117159441575162967905175979323770650660541994535743393401396209714508029374983599783990970572253351127349514131911866315171574631868475894313030398168589870655020544637331465751530401993423874072043031994175226587183866981950950794280772906853645146806136722693395065192994727151558113009768527247371616788326836383191680855466991591805008582981569603638596135551920540579185190628576319354304276089614167904309057546286135466706447030920512266124191121552302442808728925074437414138228817530181138549075711655650900712375132535527734155592995029079340265091683423067370027174226047056745856901621852226926285604452691221999612964040503902776408444016694264751321164900711322495324191586580584251583553346480112647462646215522020821781219233872631537678646269169254513166850019657762967005116781323101809596474540487069326782428165934538443990774257178370121132709871673237019137322623715879019073262299268025230837361996838267420782504322201813591930861438051437061360727229918674772911615828870132471102598325987256621771406178319405687421837388078258353701852774789780750410155114690575963150757762043002614877247493968560448961016616109930206411785994314605967105586606934491142656048520152127752335518696171635953856848207068302551716690315781528986111216913905103070740293274826608517306599275863183117882781045804011676296986635585405183633713629888213185350681380179665984467817183961530166605058901979917353636774500028811487423628310141779195082123418884009902983210586190520005079414138325992245415963412963548056726962848173808148845574878968300133384988359078094757117162423566660828270534991447724820135553007190840594197616928048883605486917718942902544368463760871975585372011479165781048848182708293616377909059682820708896941850107240334085595830458114345375713656634282217946614940783619423871729589335317373868845850159020925890807241092610141274381902484478230107231429484037384613412937970010525604788709835339189592430534161859563403608373434118370369123140544147104500622192802771741286414443948492239370092924874278493608194286088495254182326918203198620798112546381667708863581305794498312884022343978177194102275561967846591752832367915285389218023885061534622615424643023731447364089556474776149793200450515717637924971770750594043129852506318700547105310266566867586830031179822334242521572038263881080124663872612869625313556280562475467454033303465403619058979336263843997802033080725818887616060794495600798013362572900578442151290552874201336022284777465896234779600299852893531598533043906341416976891175977091042316822288556298885634800401997156127402432378755691499327972637532004200533003726329440475467561841099571203022844220533921271099953183677551399282337284050159056296842314471985804548303838145141322644454661190021925565768074502359983435092245490769305400068125839691777177386938991497564755979940397937957774380276057190395630302804288292498902484586527374202094887104780890588731515188840264900066723070279417937214017459445629505842413281312532237339254933384758079215503034581838175882720287920672643223098840262424533708220981510973094049905176143050696054044203935660941691023026850193657934582161139993488734753647964229109685702133282712166163577385247767670026005854214976907135525376880404513507011151009875665553812808002944244316391439004435748126039133341683762745163306389554884161441153695413171436577654453971512724604323485887896298272894185630588371292297103915520265865807768854801502496267845667100054058586035217499479308021665740207248551670813569632870619372555362429469722869202859149418289497104889880352906660906018991789955749899176089075945107011659520428944222380563099627337589101713439693625585509760845544505395699120156479580957171923256681575202064592159430197576170247412562757154835915479457491527386164002351380406008520049568039714603984890215607301349498916906444608343560723323551620815576668456134906097796952573966250037955447718725772177584693559242723465844229332013123044345021204631247093627316370413492734256902749403425079860893975002281282579136923327643230724859246135246071837641353058427917441870599762199818021753545803636035507393460943980030771979906445265761989465213242262277542714701804861778846989414405017045787491388663482405571586193810683449434331745782376890544454822172271656602084620648587235790815372531955717450680812177872379807659511888387345417999024339421674750934857587147358318696630805875626627341673363946441210372399727513772878959213441563882437833803322328357403252625884773023859146222008136010849658262373263012479376556319370644761879589655902989433014900262766116551555131897668433626022767359637747206564967918745797947833337086531066876836314340133959764614133087776017215705888913052257018980876834498646993244484779373614756857203196066025608578646296852236222593581252325165834613253138646404473585835942340189512712462373557252583863801791315201704488069607041852872099873606536579826713282750524238542454764470839764760754358422855421445644380249860587206819073502782847181670840148905182580413070794548330733834154896766791105218609046348695683391259742916422755809995899876300373793760170639397430275922408306796005407378544299647761084336780127619882563590740595678116741474573707761746748962271358826397394329871124896726783819563337601007992427457459936575647264608491786202940373686350027486594152782835160007464414223429567196292144693411754278906435684894598762347771174510016812843097217091768594005453131658155535140582917123695020344348172083160838787613040365770997409590522257190583863339959414338812754279805453080612091263350453404222188562874342436958535686658964950013600973270248117347943614692533039064007044493984838860332618228469556073353788283119439333566442194338966904785072920236409308726416943369629396802552723230274712899568066977475901962951920143792308538764293764184833761887689391116194177736105514774816724768997518323144491204894113356641487230562125099375610407763685780393468817267684492986523266630946450948804139787817884037577577616007152201090178083318066246639432547932452138263763536492470038919491579341448373095276052371755763170776205226353830029689569390854229228773113852977048235658022415715384090814679106360656747083359262296036213010404988292983805673926548730221437939418195480219302203971924891986648873860895556778408961054062995373708316191672695601629549684239953074126422704090679387910677537340865486199372689261944572204605905554096607726078147036191935487666777957112162387584192008223022165413381444854405706440909452865116167371321823595649293161598678413061366852736152885227735642617810597817057244513371517898327288267858940280327692680570735707491523065012609407105825337565669687877393425621774271226986356363190137609561769655553042439566079750411842096040108355411191290431426347733168174166598558815186314683999414036495461538707655691644166242555478944447248009120409399051191691008415500964130584734136342976993994148268864169280397365235980224733624792617171637912004255147311004735926552841282805133525470081512767709000609620661330530992192147002682568708629476204353673779977026563160090774420511927102866363645568759656954795519701381759412312536786434013107164074549306509298651126348058658940824938840504107132594756132162742757222667212484332679796914691852310507236802796786448871195220956439976983657135349048771056704971036056522695344252773117937227722074532808219483876902978747584219495227970812722435012495630970689647275670252058997042971407398631669925422768658047378824524552757926727635024241579912050501820295365462900965353202677163592811392797182668147449027172109288491121379210365256604247483156239531777698538077565950136021575684229635423116785345047161323750513160106406013266923250757903234578435161295968788231705599646212324665984879352851018920439430810035441825687078258726633799871176202534228494993434537096088734574671231593778285294500490652265949606203194310794708402637491997480473074438121763368068876087442536664543137763018421878033776682284735155308207415338317548504998695208446700709127523423784026983428503977137453818461581574715825218015146489453808057719658284652362558110623946500370849238822986266515424862277555923356247542696866978931551659999586212156436525787926256631693090094201631425933071313317978362614062956122973543928885880136760623956467811177831034390560207251824604408563488256668627823560594190427915505985334502605782649085875515561766747076391250922193823012671577174079304146212163982067668279135926019898204818275805487537486260626626123136353696577894587408676345590461014929911245226096897331574349089436270667089870991481966995120070952746285323052054432281739655122023652155540832004166141878451167279111734676947501622783865061146472146264503033695552278342497688448908708159632652451425704595221013135690938290747919364198259273198398350518365639652206158315856256089785464407666964012536666297893410353168789600636707260094638836481231850435249238500139057973874729905091999555091992698152377451840187598890241272115726000688816661298041315044321450451330395645446921965654489730303562955059297561663215788740415376358080518707652495391752345303927808069950469256158630385986931579768181721704142434071495984906007190219909012810875250049804780281463673275351249240552536877675734316473125028911188616343638935951962124293708999358298625032091732351792170581545925425564515141414019984776212118597404934753734031151409338983835435904091960430614723364390239968919386577965779513981333035393591189829895382405062055874936610556160858665889388896080983178327221086569097587830521072404686763004043482728330815528168605115738133849252337044422578834968649168963435660750510137731739973261510719114601769339758803054939836820887393778382400786835095709858124329439132298698223094130327363320988980311734945289929922337863685681857667655753391742023250382530870568461195216136498164619101074122420198742214453365000254502287459565334531956440500654227957419296742331987666499253826867378164877302106441936374676730523777042800709537664076276009400988867425515372664238138694950550273610882305035671440332448105791359515669736057155953830516788487401696259502451613166847536840151390951504117054546057234155886812279895583879448248463838456904068269036309652146639309494412029203514149305275363139851091815587158340337531380661811475225546015455315618445244379165963255089906496833203355725033509436083876637226765011099161273944422121903429762073845215115168613312293160693202699553516696263773346818921836470096307625703158884860891620758181619823282735522142838290500595786480655420545288280566194575454668859677298966498429354206525213466125941251925679165633155370040025111222928498510350050088256696818516129848948792787565571828557797419954241920622062905465261379428773969185688224337523441022055610795592611614718967997853542691324912724236202816092004428498332338629287688764129260894089792879675525486451190401451888697985363620284940527916862500561631901585901017194694086806891646859163036731967028904190369235136590981074988230200803748438545486326520602986533904586594932073117222099123784736200989932579462412425560113946312254466911489566410783201568656329889500136968017772837326483455482200316475446667211459055397507050488844336781659958630353931731508434356277012601504820491608370575832755880454464450379553095524692247244465592219801151437230267723758332843233505264766633267015849559365467838539257037781614396553054092872809480165376303172465997049421774848148112024421584716589485179745406984526604275411750809080342135393696141638673205744893983870980297841155747369314099481646684941374326538082780696807562914823478841916259726163119536601112915016266180317376340294273643279411184789435660990598809158829013276124532508878493126293995297856730492954741666279792449464296067417122956888401076258922774986303094193665539113269909691018440121173038493722524185743948875600273371286295657548582256393240193391220937327289213471987584372933986368703657408783771964282325476488690579956233473427570337885287795738694607273439352567206779598824033527480210988880956263279150113562659413473043388146348561380910901615105301256086480984582643447008435223178926638709785481975326586346199994004764268184110324866919565358560214405814174780359937294790145967341810243445715423679194221115343376661491205679059280317134710659982786464365917482678034394148213795951896169830847100201459055165827347238496085651527261340102396048767158631684200499023806804891977429091287082928649747648840488135359840663760975525532941033823493281514567622158353129190218034189094761261686969772840222579875082545074453290846265601317977545451003756414153984359727041492108965857121608602910426731661857005479107323200012725084174763347381413312016013815752269158648630763298526030184572028342258860039078955353706718013292202138342765536665342793413409200600843101749026125621944684752620588921965356816276247094435642344968178232195322046148100637024602634847716145881305519178791699066312992738250477015708925738746605609265614488852236089120838023781333862631310649275571157909739805751866397138620758716957846100134340915011616849152705298846192050574171105295810178360028616358855101142881887246696128295882174980204027663990715754783310840379650132729347420622279511197678148934950623049075728190711158026230640527625866426721600555509113243555963348436338656185854246533452174864062348734060136303944432356540514973711717528631301555800939911565404681169649090791757041669622227074814934167043844132739572768420159795456224702142361388738670980945171845554297958015335342461811379887968304960637152190883654875010097170344948843933026405260167749188177696517159948733811550892142146073108796296711650102140372901806737910437958022428016122115063871520940170356816267892871906450926160067723149786763826971046239246595252229473824349533912169690348654431929354765315767805646564306102577179199145293160680892806162687241127949684170104432475111245600874726752901987944442272267060005329521757384019397353108368174307771413863952473253844241636055936410562290328638108115249324533252664494273560312032149809707208040523435347104980576937201117748061214576517178287868777443418461142979308668377763211638475142961416777320596143310737819349970852414834447873105283961567202435177469377248975407373948999870545450767971648603700761254242366847810770940986134269279296575863126488453284913173300697717610964440356189542666801501643487962709448442356384805805774246691161464128760161146111321937182472773949102051607902217446462618773257286796563226700632375816897549899273498827286822795324071564443530670419964514161162385415097658726252096605083753527333703047769944507901094895566486880950399646644658285077059404671620946456882623939097808971180499639973263345333117798160560018454935324157999069629942714884242087655905480717045569839749737201832310159037582746033758568387399653048084620717044980295676268946568330510138413770947577742610551300246068766179529253309378941053892152117891949926514329760557675704071918197737353003511005601364170156562005699322795548783224616227773683311829382410298593934662508788562817804658528889062618733977017080732812294586559364526019782690655484279743245529404686337563638141009261554965961831458918989817211249687865012106681233788336908991090836115300613228032168973413907959451173038648949170495440181752451713662570722675424185055266779404839918555917441424468383237121922338513163945694204598122529395390640855300878772533657225086536166383328348592095515356134198511882321241414842915457087307647478173282427179185640204704510354412852432902669152452714445424508672484871156681401931708965944616771754000499680643470738798846153663524149806552597501424513710731071752494547825153552670976230179179223236105709542790087263611355709258433796800113318988985430823723035147717795192622497196741601904247448586396793528788708763088719976408712819170227085002019350618741678171093239865424043353180304772475161064556488610453111062325181964865321865031157967009768123706394857994360507151190021507616245941564613251399546792910421305906797061866808675971899420740025809965589491450784939506654471800504411501065378943234435241650037337705033404975942006794493758270382804242984169880979152775810388928338057576858326699285750159018536147664121983990361346386157101148410257714902922868198672762834031275196804146489259328347699060549585198595644501519393661703087984878577077485196390524645000910504144413431282778805684099158201133199555877938745101967522420745974508137156263586007633491135069004309058884000353339770196928412036759655427057615105136394891131688814296118845660924476318177380127232219806301159184894131801267910141609303738698834298995237918779518579858789009905684128841684637348014914052940700027663082574456978487762759177781044597281781877709079765129368320083613091252006614640338522198656436492545610972110215768809357645943729733931719042165556440926994889701071369203300872639092420225523868597164845537028548092900492950741357425950471983275033194489982986466485618688226349894431583032931972574286927435798047148025015450963378105585132408442363512669904852255383457880437235163167931933077299671843843181581811352250101613888741876403261685345709851511945573655832822829574919336598950760721640890512621381586212005982668179167258097599163892709581822124286348458301324956212694517915881518894689832443958985057856785256067261157840828277718539787877367385070268036640918637958937135099027961689590513620801632639270046968541602573879510226903817324337926387752035112448362653836893597560549754421593150948432890212141913708720595845355717664335962106764723564745576650388013164654468408009745023445502815406492122464947672164174755009946491544939290624231963575484748452274920351932186597664583353370207821508144081086255240113890263834417990832641626985543786386272612412835064530487124332031638800747662061323993811360328322674292520430834491948885292670676071126257741152423565733279966162928817550304910939485779011986899849469392451907226642189967211951059342526535649975395082473847873908385702075079528383484081620564763137969863849631651418848858342623929214798789549556765388642978849044081764100628458007354966316398267239704267025202447295913569937509446611626520076656802579395629484483409329064481370372574924419114794081413426510376328952993929365872980834821502431805249888748226016609141293477202165050419286418600785796776942370747517924970973518766679733171355858064915230761927029328518132528940348200096448403932815430693116353444812017639185167102757136142256519408385418105279960716800256867052792721872312288601052896532364009751191330466559809296178067096308546066708925507003636968913903214729871002923005167454618333900654194413670350020886488498397003302665693685191957664795979136088431946352082420697184522808005495918633695025137166491551034493881344336240375763086009200864614309873890337401908678468375175590757519410661333797917632320831074935202246224599248758634836972830659455437535604577685040417713032293161329024067225983672815039243640108161334930888052658466797869129355683669689727912367918558914580221274249588447057906998080065524902666075068047597446754631646115802909892773643325932569265854957159959658755618879197524417792172549425573480964646801293171954971386283674500949672800304586149075002565616080138806143548225777091947292904728363263120835177674320480335377722968007104654640430929247597529280240406289144781263528363836845523161991918686373055715373138551873689027443262713287811251050121651956721008247503543375235417372270912002862297636954654258612718888406051539697436648864793659814731255722982107065144102666516629553617079115678735115821221313043463251955378306845779453292638275406022940962566356016519390105325251310770280491835421041406640099194633162508326410935294855057301354181515817000949514498677488565000064603827149303654575639644487171012058810062385480807310744551511323989777323846456874186239586179856673591310445167237481991022380505299358044035053200117093613022091861383531860651422418625482103191499987544709609314153117105014592137569860791145149656741678261890868269611609487429177545574354459222362697874183086888803743468882947113094154154975401186098236430446637766535516399504116164075228112714980029971121442208751521792899507187712432507722885236113714050542859389478422776065898652679704295128314443641047607259214020554240850867435263955917461373016498859216298153719272353619265818949857999937920781712239552266505995891313091599669085407868800029361226473850834547622974784633613401751919919868295469796757861921227362948998698056144539179048008497516806387135583169103192411420630093552156134728067279224460616731684150519834016431494362505786407954973697648252763468770504935236604113129407743464406503598500737639054664748620281966968258022744090829029524774649135085773662786901434098602378393192964290060124493749998163079364832199557491183298009194185829997246984696244028134324425625914427772945238887618497393735344432771864732017701094009640964801138017044924371607727934542007558662067460356738415236462011531984786406907448381452330721989445876567089635815774068638504199337526983129363074649385268860551844817890178049672471454769207546981035210310617515331674907694057252494632302261944788526362334482510099686088072807888081333343954265821630660422966077420794582379464250764320197694269538274780537913833368228554595704168982895055116555798278369993178836185662000366233347748368799112539676356097847579330037452204785853615218290748861353065592934998054616509929460889631718384763363167621613837751375297134509245359518017643430548882604983854393015812026819190678399285075662969266282633123707086326387044662358866578943247592646225302587314697626530105239586142935108475574053855081435609038198889361978813365678737948249389975580846602711548367375435970523678510263370354644951505362620320481616090741952494718380478944753708328259528921864291419776860071532186561482926789767052410912186016896209661639043586971711335543325355923136599427211499680347677039218196389482907878623128764439211271758930146726977896913781091065719994155803405975512859025816677074146432329522301480369890978557427656685251301636054667982174229003895004236050448111136610822148650419901169686536428348223289007664632309815299257943745058754389041817100519752463285491269761899539288428176673087101681971694306952582199493701773451231852068067478062446966553070770419109125733489498453661070023410287769234242086277693186195919413178816731731105891759966623010697588359913103724895658836204962036581993756054273153529449338464968473819592487809790476515704444220009838121296965278313363202658383504192567404158024129198857422573594064192778401037466358832894313032224156360056938284871087688531591758700298213991403488162157586222327900538884594241902511096472428868548466833649611301242834316233735573386576398475948472670714776423862431183476234100265822585054644159426651922402924346266311066220943630000535575478893994397622691626184578103760252354095921465985708813312233705747974970725149154689482725255258884326050363538056975462540285588418307490237304884045289252601893279925855420299186747522527217815870823737762353503953023256264454502773942240229473922302082247207596153533217510957596184978535585905719514499341151657997343491351961833783109198232898313694195205434028767442025900113481628320632633440032358208922269975396717272951647397350948065497852528861593179906547874500803270965462689203878150790036164441291242026772188984101294827805761200810016105183484970185567751780393091510818593547146837058049081840776342426342313175312687068551064387568048709187348905838416146156985655183920870122893381366855677558371630332062176842210027878916794572835696792449236997519864882870725592751525162382532192696740711204401943390437279326586630254355713658569481451673649415050795760363345454116459846834678624592678988782851714661487784708157385533998263672769273931789162176872304549788970980673303658152177537091241013838365530064298423089938033214500528194506035391266576929963286684726315388314408622885415919581900332984969463314786385737856344032380197670885516911711166718313091610873844770003983361682543287375501936469126328571537801780345756207841846687174802053082356117057430551483043468525400178365375890185164723505121676540037820131848901335037491983182249363356281091580120697627487670684992447113964178794194969375618026655937622372148110634306256724539236887865023113964619657293802254610477384172352894481517222691814398237724299207509331352956599258526385755446403876200868656188379931508093890277594388992572219733024300850182648269597519752929379078140978140715987112809468264707429631104294778913659735850752279100043248822901529576887056161505821643263731780288317643329811425778687907767316360724578720833098069501513023856431130435217015612447825177540081377823314179416613456007704610148723472227815604898758824493884414889800533801978214257108697081506315226771180669339133941606159196334533710144549549379011599646193176314201682461647119265365229172206936349343576947988344330453276169320292892150311183249659095278829566697600963676212934550167547239442834557457574875907319447050737683525523660729771997602971834216082969811842170338371757890006931787345147617893525117934782028692547603945198801005196726067767788815070119998276871507122143218020404115684831260740748990366030791569699975306164783629720158585829135825371951686548038603955601019905402517300932833123019771635033074424192375389783045421587321130235490472767968566141728174281117787479859086447516895466691193236571458582437746434254265562190863385510783703768615142126692570435288194624004174595826389727045228116166557768028332542933590607321016902006405546170175777589930775835433656741282381683672189382835409006617061399577917587634214865066121776352790990577045193667273691174117642205575295671101706001177317545607321321102892647890990014156391907353066113404601853286425210059949362551388703309779800070337661429612099158416362888501567691995179604215561913524870259206256976108250950269386039694962525095839009049997200179429153124397925687343053028056148265260657766287674673401451759321761503024907546715112145056739247649672794042027364221425810425559327519802258312095734933146128619155737230575321057911757720767162323869530331467088150956203116253580285315106054602187932326870544298264434930537192572474451298715141241508836025334867677002921308436996473313021905024588992136366836547082247996431435628027269429726879529249963270369409938617828563308559064398294856013719020835876341403700702612552728878093468216880579322389660505943235736050163882775553589203083019401874196235567219654922962417349345719832683153527496794533352326203749114461824749643598725291545411394524832304840179160842109763895514387461366315737165540614372449272991587630229327102465139221689887809414137611517888610065431994102359078900084437719587609944596422209229993735434351176967992743729164939284830170127436268521512063975581902653902944671180296772038558081936827807771645279173176823498026218479172552081948405527009918116563477976127730343545443233928193677508888678508780581073942543807305369457110861965429006994681037558714675227590231214809978334249960065914299468064811985019904567370577984330761276735961624072042708833151984222812018453804819817503506732171423275819778903656536865346121202502556700834094933130733230321781632834750812824533357053489819686857907101182405252269801373419277052122721987651042653738794253840381498634344046251867952332904878233977775771970470953203465963390179162078296161670052565466512257333831074868215402375941288678816142437812046287482348161338122240699458909270281080540697162221366208654124278734217589212936579146667188903315074225591713223582719297197287466503066130124206938232844131055456278090460006037996517787592746697620802864875405794235182465263026123022802952355688057945475295576904253383139747799830556903611458936904503396084522181045251376461766053579091405780165478671602400820023585028617057531939319129307609202919048960763966317153856992771126502002044539935303157918852817802185848015549696881130777064465815646732424511613530793898587093825850498082453361267540430448820585934377697923745754136018363829590964940506288146339827768635405305411515173458744118069189573426879983432509320485712195069495607335213484313563017056808277923670756138048438278688838015099601915999987625707980332299493167094668860858368263168698978010117877760463657239112654610644989146739129889980225690621791160830363966078170591434162449286181469383417550891359693278103677994857002870953243824132504956426176399916826197482416700391322519777014182360716385839143177611816555280838742853575324967255294500780050296464833028210768201523932954142284294783923326974615468596970015374877530963747511991768205742867000113111199483801683199227601196143987677777988253550964810129545103497071390808439769608531232724516012650461855703132364310157977348753797135129598627576929696491233211101150247580430949882082285282369389403547496275378987840364836216420682431527297080248410670942973025179936367566437132585158736491414298115039479610104303039887273382620325380157282227486917563941987672342434239849131040649926987896761413873849406709410971373876576044023726033088928378658476202891709766511983679132809992979531507568786194319370815055614529634333788100535577976517727603295394203570033976156902744841963708352255066890813951929133514257827406743415964222032643156225504568185558689253556836445451733958779939122898054635687770524260390963201071389253642765398038714051598092801523768860829591100973252225654324459764535298606949469948818244046109104422445009260473334317571324762349581648456368613609070609389186064409943726205823931510035568974602317610955459181303614736929858025758477594051785595319582918046755566050383532523526305517031964489534115229155302697300278023239790616200314775794376327674779732245218944599751808594861244288500144507894021801089444528162797240796413778964720607003155427679213361082525042762737450680456297506271026521897748703793690156410469745491033556681704971983905011864729248426642078761097692285956322624599101501836225085191235090807574701676739140981965071903443966989867688780140895818446744459832037441250451258353432697470441493372939917555659784856009924788649737518389873091942376257391049380887662789627261974496698495991788048095059066840289912775702449120965808375870868536791904937269003783873273415896461906364280035484784852184690935568767648699316712535196635688167770997492653325117498313183296125133158839772243367543363387146561887496308735366167953036477474637911897208241399853276471549494427622147773826902878469588178124164789278380917311233803770761685548738293361404220088474504097528715261158708881995685291317235889428498510442319340772655138595701113399410389886102542216061645498091684270256213080014115687998208515501910600494276996761945921529051098932268817170875625639159385251367828918152646381735572110226780938124252057850843225444419950094376718522240633931164613374299443176691463555534150390725834811589751630430231487092228034489113731811538075671246264598609830258252620873321600381358677326510235706378884310922884739369044525152186813120563016530623918351401880412335876847881801955893805929559294049494384206130397777579634650415943468666140329512047386559474557802624543378248934662617479302183581351880811268442888032985939858141729405347041562573623917595202463945705843772034558923599270761990648261105104277923739176931103277520624394210069229689267371781396443992458956513122514610777341232377088598087662824829285536809725937176389866165758100676431294210437341848023726527668404774819926904119872346963349407010120524486487886881852010992729781215741247258001815734055862239534143389857089245241063525594662936423100848749208044113907493234248789687251517268202022840604900913703874649242357265646032048903178291270945249249232140173805030444324631028041414083616196381848908598911092171022435634050902934100743968058088335456477231829841007101096247938934663615848913845285815203026639711872914533786621413228781744376844309829828170478383162970629812206007627496643831624412064847447837562013329117018708075972596109593522420031667842507066693882728300439852173370788298382742361386044322966138347740040649702786165763499246614912815683827438790012346068788450888478406173021008633753728477039108811097029250775030888500507532729031538994256233407272506825694139936117448932179159343232207147503947212585030044658516891833576159916346092558509235902035623652650156974468569664831070349558157646280732820354478271576930688424636116628945376358799507587259729088862485898990163460788025757981312006210733128414673270447087809591780658369189293704546265846441899285293966396866592539061845857042014615862355043669257209908770558286597438496972482593029037635552085122511698864629688117155219657219654237226023017097307169682506416687581076481545020974186107708879060139272672518470630092221988137443855678531052558131458073934315335898908692422505304852485784607872947280326460476122871181280750670308142396810841093268080396221600936493248873599699501408033504167438711467812531466045750866997587834520394327443540837734502467302694664399254235278861065506016104192152606341403040524514111370024448787513660683927128797008796321059553041186907944038499506464437840499385605643415740228732380392122332435819297457235847950100913603372359553842547123347113843641556157963304194348861951697362049563580057495219401370468667990359148607021935781887846297863380421607017241941874892647136336325796993394818585618426603102189311126936068968773740389538577398539957488575880548423022828784031421000292850330805433922769039599929525241745387594341090382530380168087907368355147499498021182308864825576650841487721209177941355899846582312177913888474927467303815399699663902415671016741355489935393889869053265234895345180964759308806603380747630427750698253981091172962214805231609930026384877721664754710876838876052537780298939959695000296184418059320247218313667027342087471549179156407143879292485688997211859116808461322858454003459138824052924563104155097375631824795744989579501546194403778062950717621076179812686153472337098028154505451957543644847003253736956920899346316221586505874228142922505065700202388834038030871728679031614009195998372110482222142844494394966986444126611044850733831076482569491612613493151174330144447119213660046801782628168558815751397120515117937720042879363664214462566631965868641072235928564195418816497496286806680157061210863245149601134888124407831795086092282849909271049011454444941712908093988631396726811619634730543479660708139330182042720964138246581587946538393243255956177264009966788609251657716330088425743421547082256883214558764567269176307521291392827746364227219337449399324947244336334957858250023773240505674576160143954490418883040682470618036228658388806572137949061305742753438960407086995734939742591041196869934143171311811273057100877461479197221217106875827109587921657559842551240604291287159029109305979700272604738596584484894002557969810655819761105630954473458067285076954895146574093962731481591563046766976829821197395863799582812007036783667164698344478879043844260323213374799556330908341828442932190239933650195717898915122157663814491780178810132512189356047697763386365000067544611679689951501907984696497891035856285501674672461175431770840970120791237472243352005468206069014942729157383481419890714602519963510975412334368944397976227758692912251173079347860546937052959567799212065059794740018955301441115135231421599990951921389267824504121965010533078240501860296638220274207111301415139358790619744765715510887974175615248404324827690420977772699973526123367232805983964596136114092236535242630608677840089666432820894468340444369062157216246096784373375589258821231894113181206476739313579712841644112029070757897273034713935749794328051747552589930310313665096414299362338828185094126970114394692042390124333485284791721578289759198999475588611402466841715032569831209882858435833386637334462079940089951264608242645415244094657143571246747512397090779848277124657264139882646717567862653162908309637512787406650421416087857396376319025035262257281865609207680542134606734286324826378793615169980285327267997130773035495862122083804489108199356870026086394511380036740680370747559712620337522447064106681255570169996209173581351769436722042612541262205666809607073365732075200968426685062703077084427526469162458826949941198228920542981034103428727838339073924417917660801770333693262696670570734328170628348651733220216527016093074090382486860579148568146028046622431686186650100404367846770225095040666280962090973438722163067079446601812087456411477669202637067251752675428059327567876352208183844779747421072739100809680520323506251065122535147496636701251933989198142436724972504487210697100444875865968544393839320854454967852153436830676136690560615660380485544722543234656690074153742539392549996026463193353322038078680761652893294982733631281570724011721588462348245656680689397820965327498255239237400460187411104844695999570031196886198744285748641431537933452630162702300573144866545037600080134435856039943000287771777115879683964578919948475892102688626946994378690293648711489177826279372317659456722174338720240881119017478995298449402726120831667969979948124342265822817652621608173810005330301789886749731550272285220184412218769163502360464267232119307081907002961798702037012865746518059298906846501918895753912334777974031704814926726653180747095799273761298336844136447069773689611010910147425362622731369228791144347119091040589145922999394053443312306197897880444385740445120691749909576168935829201761749295612945709735124609521528678587364734846708058914513694696217894925125132192183558646492217548046495635107779926782102628566354724260228877731226974573786544715977456176774947022709403443043544119626523529435325502929028173257531357840165013910080094079222872777559573863450334476420941209587305900726023008708626043308116217337649738354904330972986567675927145279225300169227382948346034681840866244936461893856508019725088469521740987272458654766996703164562430562631196896429107090901859824387733983728520792893830075832369740927288217234940925921111602928049525883378894772294757616991456416543640670507608548269303664159224785935503408096363496761460705943422301395835202689333438846256710789890307151040701857153265726372218961285930255237660880068777321568816157877948753633115868568689177647864752767245271569583434968756347787805798740767165749280841961590539696153200175308843784225998665100100027991730229546970377569923018187151609656077227000091966870078772420783662516183310217515439613825126750070298474168671399870678845125108996275787670181221094373538269689912391286274423517004148757589523068827721870545168887326718234762990724059130441783933221148860768361719735556230061194898074153982195224447664814123843461148989240074571767618890998918773935760113483563652204120629197177654126780533065744873875984483861567129990572460516674773398010558096435870873249145571799446280668293331352082702280765091590182502898269640379753391669748909163023370230479992767816650023399646359577325285618371410290767396137031833290539014301128671732131022545956751873964899203990951493938616413122763502769932333547393678368643339015058211582310413975712830784746257904526502540836773882252633754963328293554304631489134142467708260201692095716184696489232149448491187278658388195970479831136309700087143349533040119375959411403417405874090372388335003375916778819807093463114393774257886867405947069350355564972406181213419987377143536773814929893678981969736175369706814733071626057135909488349171263115442597678353149250575463928338563601461549547694902180745416358399440502790704268182246983250536492862801869014711016039836861549992162900478473592624273188222371030492534443563473922159304325016000834775299133667726082679007270851279215428683401146726061218543052441103303960744344540891371854638519829764328960365414780020103796410290468152482115722275976330601559833635392602798252108120746616258885974661158229802340004529670615405861431819840149229407269272645292860460994228169763133637914260554685673456447998547438270019639515398656237673220226953788995633384755127721681677124952911770347808920361065271575692732849728259365736844051531077001753384079667312973821199843778295120520413943770470809612174672294959265800574946322414630864586038546669149232960677590975838254480708364293917881201843488757753111728562658396981317887014088647620650925044366632173002574717489770084795491388834627695569490054191617751104839522013768395763257998207792032958318054920711032771562870773789853330047697870332293541545769336209990871292961169046417613329707135317980114082272390496683840528461306767522239513909413756151970165668427045895946126188864662592479995288151454465460148129332969674842583265597645841904290761775555261059722405848553265171944198394766608268864158883455230968493192211421288987770351507245319968464506200166916782460217746172952590309424641102341405089100765252941141292566734025050008327092472601611314649863449191567209980102367937385088566745630475973297357693238744500604465667138304189207138134934275148707794054036326457581036823082404693280465749093250797191777670792770971173729237518285497119059688686910407426607271614592295837222886021068350149347155762856950220972102468652147537176659913172557864724732080572108123313280068295868537324332860080083074142435521675606605658588468719810389834823189127944496130777119656102058341592103480987046272369930742549907307995847454313675346967683123463288825502418837318349216402318157260439918677253308142202586933932329221462465422563550213416220590172212915987200506395129007756555269372907377252632486389502163018407247973688500449001710893480311863829128521244796234148650783648686239534186948834045550976588236825468590572860899901287374030522432624205937356771765298028980387920648690868875148651102707271372398818321687456411004590654577281498421118486200239564342748745379621796006884469630518795497170169560758910207217576309812369478695849853983115240171224304286231969197072930194193297173906104080444590293366604239546172526230861583656796910450832332954806774951310685156987573363715323758095106903571347351745612877395746154605127752108278127521125168883827553772638684934035691038364751459102823860867664088290202244247327489155315897682852758233268888111632962838411211396902234590082032747717296339684125842454392319803692731887462107283459119231362766633426842846013012345135291341432509730087031491106935806317884332758785754892072902903685911112341929830051616111733688042853943762087300597448678023976083712725631061360630952029852414940026100882928838019955206014969438301207573624763472440876110295983909651731814413825604706746808099991796030813315628005395968937322364621375290746064808151867652767531137187252060614723031720421142260696119101470834611637018268884725441404520791539835567008516260031590067653225950697973688434530548240286125493633668051751273871674143471315189993826319040440666712590233560511588013553692369371873836625381556058658022919650739783878836477501484508795086318104925255968777439092364522485449732547054449317374364408331320517380650785237461589447536237823236523054431633408024865643616831817103943567846849928590905349820188233976841765257265480036144705784519975392084682388573359045545998930824403974869334403233051745748134867111443951673881399313664812054055680665048262294786655795019879035138918837278349884908792992605065656436858297582339532072253625311058439577635498504760803345705691238627659769532476556814796482233291422070287943650286212691758555660879065485314080188402739516224297085813337700444772974842604795201840535899571498224321142414438469898691220171562535076878578795272894514787458791080732366510981209580382151881930918293300505918251546865278828500999065537432792136577149675546721883204599289336494193881133634063827966653699155565476409748880116546242969980449803604049571081222218383179648297997278246139092784448724504337611518850781721560764864521190579209343192901383190707528179484443076990647834772348762517153287000165917088938245869765600577575837069688335154985597138853022715834747705740586420944860535821538666238847150333950856605183205967273911642124772722142033345028394509654629344714366254949851022556876957244374856025269192944220692959904164260774376635221356769938051152243513142335516013891936691468049636453818991194323618253211139571956795428064767816903016762582523847612193539644750344112459397419357044123388734662943891493226649614868939920602090960250128829326674901732356482318609832943577119028882885150606941378432980133736903677819263564268583126085872859722714588706866054597441894406395876271908878404820075096902690291543955308546126700221001790407611974977219063338459740855414294689035737670102067819466195151905348548866430407217226072251263575509510102935770515159711568667221801511987243204270065248318809708146717369296341198039530352858270979583414041211167591565152182972475234880256079220076162005569188140988879288354009992539385743852130598198194124534226696738027141004095836604205943189041769296743705030716603955234658499240780086122244062015776307752028711814885655355802643163538559662888587745805392826561778288365647816942372374287956655888877548387642062394740548408021740440646545200936672547802571807876294407386550570913397273028805409733109732918599588202553036878560524657843245414080080155154240846432507123162187904580083189576887242279613935854090967507342547942645542198571967621524792899515236596524546777683696621130260299236181180480152378174049579591542936557085504086407109710410979733295670578103833565463579323900725208928252047939938510185115499621353621133874804908146352423965237519252357325617695045578112419725981162294207829423386984777064620148041567587455587464101816441807083455724580921955733670962702072526209695913718602612760180711066827095655604526187468943599583670257462745926561517621768849225729133878632216507254602084734304839410922696358959504641907911849834952669914102827345930554856553065429922234436819624700432966307785439594255538311213498075965812065141234165991152711341332163199623532966278417985431191083152832903991763724844237485187351503064524935325839603075831858322781065173990346806376282326633675770877020314218977482745981417416323804030437275396339395751634696210719090757284825353577930729938730314165089754807185437266204360152818918835596672410472579754820621688223012056041231751610559441747735272190372355156551102120209128950845554315761204824911161640929064076154496325317989578557579121247186002219845835337073394350099047868238704292714311026943315670513230589318393773380770772951922543368263635634360118915889651075220082165015970951861141173864576910317181211471051336139124370416030557272309718826640522728311272520868195992162485611996806351445908128724055924778010862609083690221150225669595574942766327106578374224571473711051053350801285513384799286399686987029976333132207074514172899175174502737017076986778489621543190144931734886873615155829605146110854858050872051733648910351317058518372506863972104609324693105647425774171860999589638514140968248986078131240481530567921998905238182870230751059340212035755524445270346465926288022387089255986719537713186001398926653838909751787588614943822729204169563385863529144758878932714707804864136901569800499452613213844874348787204743918087172848939066538414713172480454421088464460913970572625525971320770256750597067389051862395479844995437320825431543828746262073400008541421770932233982337965857883251057122088014496245103446135884538635828421318196136862190966779127517955123779385246674378993135511120106986802240290907530057098085280793300181035921233212946843929003569588925628735382583573425538026697586264122262777323290916510956587388494682545821270691282481479091470884628676258820713031567929471718778272987835205113410449616049053406590959561726230342191697942075433792383998881055577410286543523339504660431422874836344369234912939609620895040629135749796614151288075341520795490505075875901945486276226834384290732745435955807646049597882960586220436541763495918796043214724439095303142648935879280602931142969329388253949490137059187432734870238747162027541473409531936185134435158332654049974137528856844585278207740213361302507797741811803921156333215413523382807081848295176426126803301916445170669768501502175256973478178498407615948074143465965192670254546257805363394523876535678422743184431989078558405210388920926595676706861280490315622374337423678953668913573286275628933075061591574408608117819019167676516217761816323317625703008889696434899007759131896331431603359174194071374748220436736482608800793125205812160542770862364163179464946588380349723225382439699757924725750799152111979835594126882892147403642678919706404242384842282136510213369571746032786926920307191454980791299248492973161278465752612621154276295188672161591408636659937729237304091484150889141005789476656408578527437422018517529225612644783070305864526679004608436923871221099887797135133327187726256603578762377485503321691793442687172927867403942418831077525897100159327052395621052033368527500651780941578860960426904872990553198256851079174011282322114456137971546305234254442568769871045645142426779329004115522209727568277022572625085221306573992312236753639331901334503461086214891137250686734996336315622059165560204601548583026490870302164944843872167822519353774596778648220626320877821114595782899804922989085937128199629649178795677309146307560179594919319093697976367595080346471081166228127582765845009721131722303748551800954537302713016816934258887539620873253673163052534326335156304950708545568169149313358905593101374198907578156790898733486330811449830932820507793088195170996905545966720338056789632367818484588995241487268547262309202625464584708724431801811327233592963203880022059892892792323416094340257475324685551981327967056586133295052205478475574904022649211316901300394841228496151494171743680890752146012839130381687406669506014516852560611728314589721463214700254980676283345673541485366340535255756221044811063178252022415711656897338314996087423343218003842940866992626892912415129165296428473973698899786868249072359005544879192049354857755903896594087138108557432665018566641768403440862610587900921645549353217824974040084712271714187706951163738273575714316105591700633661444085661720696487412961548014917690555719982168029784476934588535189392866758159073185316440168232998732738195094645210379550292982335320531829409740969056730644351916019002953557721413005173230636074752406409784478000051705936503877748385197744194526798865691707939176347408685839079406656292316096308379593046681980057602444994263054389374766290787287932491474318147328897464185694813251326528799587156153376316864979883302768343014329011629395064796952922384998095373123527579466964980766524735645455113728719720948287322689628549279519831171040260312461875709626199445178361017999881453896614575336733079867468111257193370069771656099430909222499417173458875253321454439707035294658380891192929515297602025862871835886148876830761510063420897187559421180425314874042989567342788044388834476084396653716389781247019735560681853347112865973319270050500373482295371666118877224556131922558207095885289576470951601384694629571062543630353802838728145918063875046627635128357682956105404647443398906112754884241531623458650688505492310642375971004031264868516940592653564037207470470079328375275799272130787092998238809461528099677580398981348440268603052500331842453020516814895619994275965939008718596870223982273519295437810568081579918710066773677207398995661958892597409208469415702770849456990525493577958341803928810929368889546621414187297426950609332534276814187586399674782975413075314934995204211460774884965952553282317488401608601258766361244127639378575196325543107835411074033944560851991894471818465320189244368925356046032840843902375582891698786400449499413257661956970235809186060004734873172493473732707606723625718399691978841472358698923131289840322954706271385154719355840848167872263696692961394285122462494512002198990516053105112504174285811341601511296884512753070696179408933640355086726617626734968630018119099915396278635319854641521948261460457278489938496402180357957470589383962092188878240198734443959089186765251017124516073314816404696065883191379179350716550456277325659938702007659854846050566035519818076333119798866522513994276387759843053879129131508686635033735090327366144972850334456623865356215359442370023453467987249801494390717307843124711167302605639105249853545771907882267497903404606726857185670393921933984039410287676011882849683727488830130635126029547739264434925722780994339377900138123884074504988028048780943965383362595494868080434755151596278262327768234204611958784940560922474299051603605228383085597025094981167663733885199528037633926364625381042362332905598214071572551522585866496489540448823626883803681350257895570416586903708281629242197230181366856825421740862225271732457498988508953717370353631672073186603349560992078266588070548780402146459539549340643363596414386882314919493412901009761427564861419414146327313244061984877189541050645764288139210571173260950730216830596116632518355908622701935447822356503664456044317125709934888548309866002998725338656967315691791911468298824646524570851324540491490967000199605022161962138725787302353622907501383474498487010334399137704072855773229314289411517864917078420478633030385022595063124270101573948045700961514707269006067095053339872157865215951985429572661207406595700866617749741999523866391061078887558260355458338447250267296332703198553855662613957631153093801749549468067533161588533335801345818061016468852324327798437287576236153352058213385872989380636353089071492992003997863351582295824061934709432694818292554083161489243280639367119835347080547254396776953365669883181957556106437277790964597281390496759891287940505595349708450181693181251728796646149920885559106023216556285509589767957270007326409126859974481909310617343725079121785650808793815445677652295947234201500052979443147148142448762121389932871249060163175862213414516948837324921680869248737394969175880005232695188892896451189425892924574724834779113205462619071452661549320532884072164428189662253718677997488976516893111937181290231524209986084989631110442491409172626603056946251584738368415259592745611174853063656802723682960375094603535787267008601080461400566882422829759425444706858943440095130540296149870255441967692466154786286453637949648396879468539451315231163265057038594959353132482969889657876182140004216841934478684826591790492881265068066438415429200872640029319004808124213756406461420836568687561426459717885726876836319869686344476471934290435408801307182433018560880846787447616901582021824382684636399464586932077690228177803537309620899110593695492976048960452713855865298009451702083615049533480156946789304200632900091826538031886686044249961432414029223315577860523936592057251766834427359321179657594560561880430878616842787464568114869737601987446164427192998383773103614577024096644269125886786335690847154635001591531505933532557000086605499881908181425459407934950460007820452382896795106400904101638842114275536926709194594628825557964388428093856896917373279331337408299449894498950001860129289063864479551721341544105719334437469612687210062874116466381097309025735027893210987003664986055676012602887949491670096390981954973181067934460663895803703283391133882049045387621644830637870576310011303823864131323144579724052759983850740490985456526010217749235615389764641922151188830577114881301622515075769777326652845699214928574756599240237368691860546649070236814506063197961805914697553733455044501877977441826866710253894426315930260506114397915949266890446802243258381706674194032095665327900506182587683905455686792073323565402741898218991603955301125229665461125917860793660031029611340208481432164765440767691334556790363744520997029880641939165295219189643858751571814978341695854299644513612625936140138444321226692264508848967598299928282980997817988862063904050617187539700094746412462669423914253122125168838272313999828791099878838131732319238724394538096243592683181804509834165262609913365772133581843422518575884075850107493608812143968972814896585454306979451156816059601162503972660225073883031571493340196467095519991875139339605293293792040079075659218114041522596760673524401209225026523481092520692148411773210866852461697481160441816162989938525393424274516447567180839808454702430131445885344652832499336526219953827502993013986510484058330754297246312758980033786824431747039624145779543576301412952857547305739292527106634369814287969619778452025328705602574375810416798071993149050926113214206625753162736400480427576238505820792158620764695675829921945637259893216369430657548979889924116924052733375209378163607096204737815641972687839377760056509445853471068194442523148645140173639179969810354260475521872403860918119374462851211564713928852403126937648621809901774168395186569558259506885720430172343527773667541289022665360740411330563615752260661705391352389439087570021322560645954704863803493836633375664376012971094117293750433266085557456197864774554723920403727657747666132840079368605193822396781288722154828518218335408317978966493646808482303481549734220782980874367942774364863762186980383302880866902200052976766801395098037694218951005089322303727809617460361329734360354104316471178749278403329939088610528287891944371233197666657279407988756769312411485696937063866142589338162675939814022567868848967957332652051194059170850877004084197941041112924030131071874672375550825672259206135105000668974031789037369526769596974257018709674438221510448304031704362161640389667603987793273519420096728047095852634633543130347192974033960865726975851349578976910891047684273343018982341276120732189295770270720322905247422321834554980087006610940165492418985544372370563465708169815826765241140873311764607302300939634251413286389175470431877453301272500361758400436506091982463884717917457050504606912123522429375185763152656234574625580374967200958403161119988563109429718046652702268249826010978944138373345630450057477479435132555926101316116530838804524109069789036706746535993933382921581812488809278288522345848765411361527441387975578872502598463159524727009918273674655253600848104518154948317928811648021625368841207593684450055328981113557479105346645273691025625242696963568459132272994919518210084962795464777332864265049830134206597236653130025109475655355379045860067519557600726261927431245169337968584092174745167117692605482248976982666269571444875806552668935068429890772974933602894682916464734458382624003578011462328457237107533549364634330381709245089497297846228492320939159572016284154964004147682611479575147963784035332441935715745450575170163824453462339874055936369021065897241342670881631495207967559409290707550582172836594659635790337918798976524221798703597204767086674536205578408421892235170169476924433844902999459672406093204525316083478341344602647980505728431118505903901218919488500649217934617728710751337129111518327923198791796911686527300876154966127711210731833936324580225115590779287888596476791452067195981665160402636506396692363452352732223226714130526099662904469413567128694692928872607584308849812251574335453073652065585600324149010300540376024391118503809424171330565788267177035164360012291316295955712374857406288181932026371179603564617813135250365852922406922214536639278630519184967336180267105094874289707963590273463409984111714096606187621104366552044136678146115156468979118681101596559480234692475625607344523012197844635706828264917293851087678026003057132885283234731384780063416901919029453379028838594932996017241938519892534949637315751526559644742778423019476312296065187486040700817718196765965920571587095795534111138746662393896757029153839889012050547867717134923648784567584118289465048690772080297363581594935565833522905504847643651521835796826118677533269620125250301028264683251805719784183372768458347590291011784530145936828987057129732852892845875572826969772638763778406065788736837563721655372297233589027221148511943939659242412276362670867705162579102456157390101304815332141628446940713603065910822743149530774301344933201550789154771221964605457640319356039801126780189262825433989217612901658548211426646575498998006237915249712103902452500619801359965096111040976519373904884489547348479019189969065488071528062112853555300311277716525058378335941336469473075410750786784283893680892368837546562825005973324717546104477561067499422396146448812479465846130008436178675692109106127334107058581325944906862115367788815296625217097352632180270446555049608502958767415388729893745711167916730738839659955438443251874718848629826330966059151050482678177835698357292500863123183974998899998093605262007020574574540000748778926472190298357912699376871008543782716363160355549506488766435551585156855823262417924817460370615724980266877731587961837177864629694008526843623485446935337397740230433301724633045995656085825696197056181051110062555813492195132191558454588908679319403516041920075647916538422963531196138007678845463336917746770466860684727196603210795717938714223188897538738526430988438554849858766156846692857673488319548612120254223444101699378834450605200915220278874039809782556659207864820073040650954343789803865355555300840880209706151293668614409034703892161015140262563362902601929404660841160953084071120496861122189939825283708581413588560293259262150311084090330833031528890460386798657114132567949639077275483415794480805176964353039416542296641737775951834481768809335835657984964778756262710363645350417739823596268315536654699202197444955592875121717440406004378771050742591958992105314327028071643303016225732867611170893788141325687685945867276103125968729608525266305026742641818016755023935779771791681560577865000751288342122064066167067148828102817135836855252030079060885946039509985292948277599111136911896408512736275060766240825836334847178808647015652950315492439765263463222388329723386121947364530677909170188667968778430615712334089477229361328359195352875261713004403010424385672309012784618269774815317324699073291411736814119114589982444156142466303937197602228669991731366422411994114186690518303693719144213278728424943405792605933420669441424296789495618553661457922973447889606683484289812510535879768899823502741311808328886697186633422334956690881139810113093490991010121525707176029091713734548306425384451456703010556496038439620117683568327644502965113465167822987711898460581782231066152395668302003514621191231611396860165909449852880745719825182868452454037999762868807401850346325842578678872145587056326093168969792097451723917669342299107901943713772258536692122113323879384071987408040744813880638700309030503152380434600350117456124013030748689761120898985123359659338725270882128221349779445558156883648027483296702570234527750094566714691793677046834142509990088920702609108153560667952646806538486740362737009101672154434590197913173855309064600321891479501728927392610870649886693263998169677125029636268579799447749872464615061473233591883624618767416598175835833483694072108196266135273200356407451722442179556406155307787468617821915644060224630111474730224295175894228226004503109008491862317181770280767536033445123069472843749774280757982486846705555585287289366160707899840730098620851245287851938493574704359208085283784308927198789880579697006331953614110899732139283779385102523918341335024466482308206894798782035861728148202798408282899971332784716517082208070322911017882986798118379813125120892188605544333362183154397314959013198334546349230732983694890411088458587180764953199469340438516121722466881623966514984957010059097610790550650715866424480682897850704915296177715931191349889301997765249495921529769177188209555420274015434956037522192925701512202913252543898724081601683302459278721465101658872026293502980845925569854580225624653437174820564898029443229197538024551486817532113412695386621618873363171627383094464875844180414459862786041478553822139935796240505742234063511055259343027771667725780074454834571827964451054349840194754070979981694381824809621029900144525083053382073954481494651883367814275969461440470872739311530551392695629307067106409325267213686154177410139101329950529403296030372684534006165164975830082019260729286560481614095405448126060217454851504698725063253175178107659138687914830901665611847189315708909162107079716615610788260766615915959461492136498777745797567672671126745651758934854607828065242734515831492216298597647317377404954139842729592157913025761777551673468341180482493736535427523539487376125673644945158879187625978709361747498352984644122548801709035568828217097171684172674060136038958222156418734248588991431329964462576577872013847444144493342804494320452605167709697571281882252341791517393724738549200385042851002216008959913802839533242877778825638978990670662935527774313514108743740712035035723422084890365312610760062230015159858424960331851820183843165777717481978666300570832454806654035064064286600251463508991913459169571278783463211624513472214086562523633611669504676517496811748000606529189398172945453808559326306382546338707753501876448510907613449181012516710862430137444360251921258890265087164791696198817817290837598491716507555173796452893166015759566060841394704203792385578589310328760289222225652094181119124343506029224813324276453237417837462496918114280683242524416576820345412708913181431317827657356201453435903738070653561634877041130651915960262607741818795255551683044074079089955455679410610623321317946023729314088737163269881370786126546789628411488496823065478924123503909975819734541321714253704618379241064212888491909227375039273667359408590050872393899099222310417739894277478312908932562919325257697649652873950161292312117561311794506764097421775923856569089674958007446875024017127667819006284780420390466722820460036124395110333755263669693267274699156952341753024310667412357178381713201015031688516828035247855527562494679083561259449752972486801783741226331837035861811645625863831490676859143570360577255444068078053200480339534287665841566022050345020249450538478104745111321880140712585202714866625528793511449848908503720424136398651034891948876630442697130169169315487380546834936148548459218162976861316615625043916360695168654464410701420178226533947879047158935901702092699768322165037734606926717753867283806852650588380854305346927129241033107445535970152909682753880245133181111874549622676261007285946029648356631637766413164418241193339613821492831080569308622291727512272806357235075519870273185288044544563258309228896394954089507259775320837213514061171012864297980557609554659140900155870867385996424544483364213632386657061041180135628849707821845779884640940738450279464355471690456538543496670096012906161533249687902374761893611410415278607985692757722407612258501213803831830895744267788362802601994771648483184519667409126624887465022021668666753343252008333346099086835866047546258607464710430294029325099856440927039223473833467311681983025910703838302310142394228783091224272875024972674965976468850167529558641495521344172348449613553230602150989365497488742694338817444634548820147128783267245266417570008638107404436920320788273255628270269336634994465568654246908264216885364822998468410192947624415420449593631481425138064285889838037965208520227328460522591809223303702250801451785589621669652337494412699658997786126361690037114119815250284063182082657607736332773953971873059617161307184782109506789329539411383339291783276356556704143193318640190683463559628711616066730234894073225275694163353517394457142947106669295091748046945147286082260038293416394173468964019485678930622617140075700346702865726623899033905927351915865153601002762613824190774829647738111198750882463985788132632501039509898425861583357679269232659535561945433788955920984539071231891698709217153237465328395692728219973942448034852354795392565989604371280797813241811214737548374362494531875743846357435020393445816488695060280841196114354444046469072988977807286806202951403744028538932477113171150048596291981425556435493218716647807920898795170053883902167540042303456703096325708235627106049308120316003709292655160019341460209615091427532294843772978401452439562537748995186387658835365463310244737333720661634402700495457650185427259720237742367146489738339515469436416391513529799607713076718948413590678966160256414612723624791400956030241396495400252551707641931838234272437373698512926571488152839025622462234231717240330979953582168706818196319418106793114784410886956524047437875890359550679493379084798003857982287000991157191397576198906665124630705547289819814187178018067641992640180736027936738505598774680795321067401291598735573778709026785005527375793634356006927897032314743017718864036686213843628552330711496681129177956243505637276436573004719123345410952512969863496351929354598330936391739479148454659304080361491470827187564026015328656066425377177228583765339871262833270331578109634855107501053196155986228716834575109235137973438726488914931369867538728069632862736777847010526656113032479646973282856006251737547784181815449512389933626837210531627268748628981990706487025418933059075434178020964380822100726295298165539427456494680276329523325468144647595161644165904514067142902377300108751587796874599024604343516450491414027566056361960871093720429887290081831191125933541631272619812649006082525090959440538235580788223867181340661125647132666317483820130514232195329260744224467292077331403689458126849398213397788166928509377757615000917501734724985547621849003344864178365423561736798055021487703725874814854346585982151807454402168752199181647229269648661661019009192676987117658749041328049510283354565068609292475994373614653496429539213381079219272110613945747429841295244816875766787473700945420605249802183838072453304284772325491036025593578559059978112990376654239757686460550973602945916734649598851023141532259622458560241571650140114498074461630700628538910338204148027055747740760389792885264616997618733512760157991302704846626608422104070382428701670402657033989562174483769812827941898355790902991080523001484570424747635553047595148804240803513426507769490273284986555913875538092708636499046613039497811928842100746482392152226605715821485204072360350575741261727882185259619778744445685642125199367899160311950705820111953109609664015915544823017103326573683549881520499993277387251830950490936079649209294553072404825766010965694762417848307848538357843524387032237752459388573188372306134904590768510908583050416834132244636799599208561685345007345744879517934604657345562750015475757117259376134721115476602327788898240499754005356189381778638531882965260696182170418870786569356365442949728386399521851399238412308641552839310711335273692083474414843299096857654527578787195599475416716660094162470606276210067851260445562561647432321031527132818906819345784698462088178785587424792385007420430998062480382609587154508487966788474527444865644738991061099335428577321696052880784526482530829058081505667107093185869067228818547043184391717568054820936105748115386230642185404913751784650201270448022663686277417310925959000321436974531215828476850044886054796621087311594576227170828904496786628758715184554176417330592738155903918550842995408793631322441745146184377472961648926870312078745356096636361847188485826833588221343637690850085206127870645425538536946141310470812255893338090183759173386126216590939849166909539123546736220352443611561257507462857773561189448248744148998554092832385538381415525167611724896785150084033141194196038143435596702459097874540681741298773306104520958801864016561979326964610261188217485647431538598748532139502214329725586561402917347624718054892589927607613116953852378513948707807094495758336455196098528818075997171356494560663769378689573321637144639066901759444565102697335886524546468265264343354271317084482195322608261484461160450312892980373013750131149559543610453443808402085165256502171428695558191451547143309530071775455714288674724524460879969708272062170609088134472222838588142832725563785801918186319351733447411280242851665615383234398418612753872747739005654264247745338133286752217146432346147927871994754427442190875390999605245154605694200296445949036154078217872320455628144605599244919192892782606290556097556811891585108156685547221384933219164809942497563721768981845701130068245969212311647511552687692830423552684051950553097929660469226104050433568105184620990346113707425338786240279050878101706965559116138912086675098263955604707873268049662742879970026521548566659894760239022573634667634721280181306177023829181027392676983452414273171927689051057141852652690764571458500835384677606191345266988921065762616604243842909647544328669029453159246165348916959503420974987293752820803684436981384963770275313580967149157435043940786811260977884535352009734265154984088002106321588752504105598111876243219156439635250426946648528438485489581272865545361814302526302879508434688440169897095251852525174140331061982487139376733881583306795002470609767761238234564982941569276482900986113903952279424861827086817762874442784060901283366507424533707790764905426156985348863200795883614427377846593572623745735713101790393156020292844075043902056786428270778557938030672702530741368879118486573947702083290729277912706003377717981852141804764045953022007927873903137345069055127772901683488731611580225368780270774033265449480137866457205267997259869556611887942470504120351454795140946008440924605175575818538124288037768295175898446140243018740233840296104318848804209295476375142805047819304884365799532574701463078703693181079009395317435953951441713279442523311344570301031533163018768191318824432199153462676010244747682734317452401945570351622783697345282196698812151838252268004749786942318306643483603323915912872020732947701600988170529656497653514562356322566826515677546589914216958027571784025108963067998321205495071181264989491621763576961581846850236510578467859836800887879620189826786797165666232019736186346187243160792980487893073165255378210735965004348681094136581436532217738529043062715993859672654240421819296151769828348883973001524576305088383429714905307883436178085849814551887701301242562914660990424765040857189892236427650832290574672205024368407324966417304583989315200513492596024398990819426288001537593819003056306968334866506346436668674060953960581571668972535407771276727071219887292802973110819329251871868873166035954172649925876427453100373298997027034129557564406726310481400488361950432936012869752738176507980488114834548542437775986393863811599474398771758971099065956152555511331977144350554751640042153359589336228819532439019943347627814676666396650985452141751679880511557784394092706885862230015151519509433923997968704733224637354804042196779447714308099977139069810672217530610055023315186289193654633842780133706748471347927349043671026874583734550798065799332658333156525140054092639048757552639757833117333304133099705190287458610921858845131795239177895524630132021691375638782099158257493056750336785417387919291745757551385729376260727474784922875781200917163836307091002465691771112153281493799026208784036334289150115915087393256249164527583161910636715247944527430285385710433045330605952368056636381376068564571344923839524547587739036779298764335218671837172409359807482684285044982988693236083561101475775867117115092802753734102928690407853311441389280996633017883144606147474885578901729255829816263427667420991351634640968343304761081532327092314647446772372561525164357870492743688930450938075542859362570709002728317813683015816996544474141743656718922381579414299794187052676593302339345540048485785387823077870104073247134109434847725555122378276923951442185516639641205390434820246120010618361404489166047563054867676190746867297530187152543167657177563156611651422028182947817930466217157622974275330472035477801680868558206886920744992948313258602584597028302516820399580555997925502455158053009559897321500735095447929380496929373267679245438522257727654601994713158496132830760078149155439722145893538154743174985576719121080496108698939161961402714840893706192585231726003974631974672138078735953404390697226637392169517266253062928673763202990658260305478039499316616096252853107566973874208498810959269975852267618096810466707655776763465001622758899846240006557324626919882634706357408918161061619659143507831836619049751309022943461037715224768380248837903171011060750640379269849955386111374264125809956967477169070111822224105974394689855426579914965525672997746735244194670295254584578166720817383751963110097678947276341575199293005520816955667332198978721778830113486066109821561418418889156366115602932320039921392282460465361105863686753883107201867312332991566613225363395482590106468713867556480617811661891417966479131705748063321143642928570594383430138363169035829087015818167783245095231400499667654831578413050205164168353639080584707493088837401156922153950158192192476161847251876498826045942464608786535825859634767540291741719688169269535290607267520167119121874676775932182639658639245507589002977620912576110440357181314727146340424860688573960747348536741204354361876031341408579082134288919206483479985329699809552196652864097427836339821575287713000352475544267365385111861298216904477061074925745344200874602874435158101029832929267236286135362430245355870831735030851506019869555054957246619195394416051669739618013621928692824746969457621400768399069699620131856359481925408460397876727004049565309843461283419026679181046927322076571490203859707181421684874259977245506198382643733453943372752016299361140552365152510158812152113775285112324694892199419069179051821636511547106748878093647422533367565746371362094089170541205857990864625151548727770658821703887804766126343316265066418715607910611658033778624688160705227797701480258410199637153611610078010409204241153848986817015622331049056851969546211368891840857779506322563392121719697218415776511844408642938515435244827589171946020557977836100001495226508242212430806651579464730667635819205809476276608102770578871478654555571802538129696147474612819783205451766404640700823528701943826167587102704594650305349387680662600197745379213346667852933963161917399703576472832414184134275770641689468346767893610121547814036483511904743969132364380571466922479682275941162592355498395786387595169138792865210934446048364909907718676271160973447314242881760390960373572046595109199123577810127114029775176089002845263625648014496435539787271488841372987065966253410761320612187175274586810144528482893879216515838754431276924940055170770955482621357832293891189870816605132059029212206279594070723960536184127562061104557222253055435335683350164233231097989492351283468540093829890388618983870751552691067795641242906318964415355474373745547842815416730482428205554406750539144995236588568491837221637117224456129565711430374376600866375322973534232455161118958249702446289363198315358734347168346757979112034468690749920401671511464014454091753272794568060647424229590483659969985908176503706217572257167370845024444252777452010444357565684255895844171711216245324257257400644743286503905609814798916955343634313560972416483975015411434465131658430574179933359831364323971038101891713076099006974607470522352853569927170921556283526459661740567581764239210050701526302854633761005322817344276999750510743967743617614446316444986294302433311134474130334448811251367619349214533782632450460808635581372836657083910029841438773450549096355276680821382828505092326982573648577530323047246342882407193617393010922549684596494279005122649529143209379162172500596021790041953016630897503126494018997131462762227820934596451611574335074844196861734570502480697928948998633591555823681015916578131897771221967309506347762963090741275793597775853745814330124907677010168939877896935892908995472174391149086373581875995411818277341494527921475873548575043127980893228538427236490921435673127934119467148619050599063566621982559534135823812639604624500274373871334157492650863761187109758496281872659619432259902004692044673778422854641371874741112373224555404074617860858411142041643471620722146930798457489362438311310176504931027943479610783544178526740050755185178152457344328309849573200383217474257751952093308014665834716013938716399751058504685707669430682524264637276572570693092090742960440626747391556910054894110809819339892283174417196185926255551733698987543446209888779676653713219491629130577458350323352480912793999165610169906298936963353070932787767157451962101833927879661689248182693807272328370004139778367404751721056970091211935285516503703619066183276606598944826342508056191783084475320745296418313976236533659771810437956145465257737671350822904756669089473631727363255831421702480328432015542744871426459902686771531715040438731530125675349403930024537076755616079662141414083421762345589965020519184061635054373379506918813775653236896539031068195373772643418716928072531162464033925827230004052523844033242159316409086994581541551200948294021114390563743269737786693310399206489284800186943847803966233438085877446457370550359611348738295426239109233406544353334918206508640238588149583349943622446823029153974612661114070786857872236219920955101986194501193768196095522227278524630149582661511551254895748356226642334623914691352621282767193567455167802373890439420247172959958060794228488753192075069195622103737528031970450941918092675944179333063819708574170393113930264405211149056887968379959860868562383455177228469013180155097437151070224268703420657610817370579529888670288270890654396163878949620627744286146660122480208902920738169865930666122387387773475111992183238920978264291163368977762394300953089011034988054021327211242488112008840024452436300637250536305731782575787101784095788303255949428275338868775674613755647753902589156683877206783364525119239974378937622443013466660234018636453707974722433691929277697766750498502577060861212891209157330238493490354506043230195230016294718908917415734055321385189164247301170280495272238185823661106644331029544603203705109208126465913978505092217327350896247861878464142518262679732798792234824523534893489546915964670366851455078950262668479351287600800726477383968667007341522453415619706881036174582332485348351511745080398369530321583184211034175162798968298899189904963549028029653526499974498855371736468838621723957069031786983225028471698233148561525412574929372188630088585195374435290770202318078253030136407960868220661548652402670038590131073593274037412717815731772468295398381762873547742839333030235094022790788093414493113195529676317818666570263878944949102936826548491059301607630720942242836901495091286804550062664305605138827906119478086272643513416854735189438712857050776488633042468049066698890796766417050768877054190799041814457449348010220389394891769213556805569439416100115589151310230118341300742206865579033880282700147827724370590563330831241758434728260510167461413247930857508027434699266497359542822789109143661246180750215866316381450091264510567201996646877685989364688526171863902994942483222018856796168124741887733878960699194678095131856405100501275897557403781007714475439677185848359078980405622174121297544963996951747718309656455364076765749140647094242131375657037748874769822543702265543388349957717195212298792148430078944542989571978717499141529337333260093995493324142109369012964922489256530694266459421652393360690937516423596078809198041727425753923354712502742937608766979163148527970331434764158249540089440752665712200762879456583015611721608484740284415517501021819026318889339388725887952371356207410220673278536768847170856563022728780894798741047967692199413807819225408298918485397465077713491094116814270812515988723520897290276805705631920199628736275531489997080155805504134537422140720472041428011443573049116190963128214420086742666565920636360158853328879664693259901743193814409388724975307743022436892672447564211147788418630360606804127080819166442071062149420983531255243077215315828316550287121010811456790500106369892783845649651645318723199262785642350856407229548054438606682410579828828088359748969118901074640991132067382444385769416838352692940795004910412003506879618079041454483849076363148337184390837410161147718939578267680638836296377816327293320528761359646380226975319606162227009509982192566518531968538466906617913188204790328675458711732869898571894534952161242658520839547384216448053410999468114365787933759862437682515580978207276297405309802256557233863261728687978983111154128002076745872833615136687828882849191155756814776687309892170679009836391804763812825987446874379474421264507127974962069851870546384342157199130261554106530250184850142419902871434387582009799337179323801492024667817984660216793490579707445907945090541571984691125989332766397127424784942509820923730468825929890995393253825684069586761255748431850451781551868614755050885977336123645012340976025284026845935022342398687574040513973894161789229882019376725646281027483222943766799827911588318046423447651039008609905557120406638879158864482400334288188849169068262713670842389594243906017024889839212412408274211254485488938767880558356191447696228582366415794899798785606831345632946298315926252725183483634951410450688196871471051136502522139829556306640074740739651540487089960865340777839767045281217878967991959233351003699335999149690464406842462992234987468310979936611310819821122435588876002606256521799361954450174742817689325980868294441785678394264364481840361013276375984195413494115071946910388418327953029135387651318531044774104957734122593135714918724769345866080986625598307416203820062723479202356479374473953114181814866735414916719696459392531922135008546983964463189406680622718247142270461844021148233654539390968571681870504974643461870418550937573085238293353287378610765334845086641732010411504143725931449069563734109016117930811379500459946095417360420903192600988448191792494799270778961933872888952070481565605853481806393602492740334072599909444237182332284971477930905092435976912830657920690999649180751895061233924501230192424080617260611735088886818736347924002651671767699602668272481965737520493803285575360789692001894973307312163501535815776234311138592016066443120529656264811547952960251849993185993822777037943079336042999649490962682403659840589548760478651534841465870611080550387779425223189629860827470474010241347571361969498046932546705869283401107726312801618124615125028475904587838302538832459114722759030348487735071822112027258514573338869860522406991773476655314179282689781909541349485593950498934779225660700625513792844230658916150255464117210863353030883422036017287808583960759569504094056565282673316598373849168969231240019804628929773227164876076616981267823975698077890171677750770953343746628133751542939917750107005970457147269583615939551668914482039180509390771404227112300831348451894510616310290873528853311227183787064274532746844007257047579324202847081739641194986378196779502640500921803720096652097620077168884644410834577835041057281111723366986288992970621691850175500373871434407500125750413323014708481585472828245147783168350483515998401269617214094424315805240306600348054346383282948948217395890416757594183185489497612362634930363395039692130740109353051231387192979859198291676507408296294201986669934598074761847061376975146576650521303650140941153518866139224494439582297221840144229110753226309304789725493585836042027093432226641422558087355259218931757051762246646193264543041911629028437887474891096583199355131397114245764638907753296839363824816496118868860148149799067384506514977337130018000290294189291177236967567211494152005686003967495360006841313883983289101290357776988583608336410612333299815620618802699334695779921921410195579552971841414671567926062956899357203301818577907347636843357279095095641360047337147049530052394093152996148326234180453352453096894412248836671550993070908846255683654834017630550553032235778124397026269546292303854538532163452151095397373072253457691174532216733032636097734955842910651330556969125112232292213478974878544468311761340094935502799449123229691178569621338419534951263250288423554371328265559255515635201725638637300076011592835595253626042848569090243253592106915421567021086890951213324494923630260800351016191653343918104665333668775959177274078692202870399855148212822256764337925065994891266486773215839424361382113759137634435874119934616264798264341715803379338507284048365454203830356430180932777987801680749906321978256069017564256702790820960701597675608118236636385108515078846626181694802895974877852437001874088100837309111378809797498030673347211305869433052173772779247209794974533353983916414031823089053773064814145537635888649082913286166019858556938125107877785013190627459225884007426231470131854346816785719525547386305183940762165617596238015964959095561086557650565019540134328914822265752821093477283450266540517790913950316977008714180594413520305608172503885078078014026921194665220130892723159898511392165287075006379032930054428354670824679601727911651469385170487072121160367011915045502094842854522252870267038957158789995022045007142965576059814339575935954514171991249482153615401338828813894803486103274720800541504406904963867378207522119214512974928292733094434408977132374797485018332275828617600360823061134582727200869330727695327441867705700432471930878103048935836859492701291120290983740896751763596990892431712493694445957985605899889631236125771609833459231469335984385770242589948667551648952453822962949432501918273220334839955345235218504025332880941607933436658517007160657620342505208348053520457765802399788203301710296886672301300485225913704467072809744693287371714248037774377398626635059387708759297236317733708303097591769074913688703837012824709393649417826456253968637283215152954297521035948445853008323702814673043701806680313372897523811184036888079031784251431622837173617972364760858830689755764600943632590588028300681464956695027552122846729541546415742903864395042154004092600642904145012418351780535045209580474182021575924720587103210812654221160139679750987499460717098686213982592624443411320715967285807564106462161661255130922706304837225089363446063711329555229601187019458053260353961795776946570987027214301949719590044434878296800504212272141125800004177911935383430240632358452595644506312536850359158905328076766955664154022673998493931711082209029972970322277497303611094961669229885218273478117229141551080559489521427428137659657941275950379181181835379893291746236596757508071601810107190515524103190808244917532619801445323494891055156664985563101563420106150859288098851849569940025189536811370201219734077461353280797432685345260605497374070872322549223440659137129755223347568328846269132096746624804031999031179953952048372293825506370851581186871731088596519304828754852072364651908737267281745485339734686348412876336314767071329304249792903034790328973366008446679467013483458013017316096516068767972989732848545303495954638694092184598844885437260162768494002433544000534040211899924594305533527172997941976382907388924440145720436111175596457519502840763606752261478343761118566416385117270542530835465482248897574085817779098187412666032728785148678700124820801153495860048057060177848994103675687365485482387495976760999325232344797550868402462911846705989552426603618235481489374107353991582677368632235287324563078414352470605521029243640396558621303805921168904276846732789051252201866785779898795262873370474193557355110633295336683275612940781995070307378346257019863782027553571730084498125476523283407149027211804722130985525714948319574198219719152732865356043652749783416086718348330588064043426243886799801783576525475949780522144757817924759633110149345136329991095119869605323287539444045942637927119338885919795752454316095499063686058254949859597396807477440936713929097855896107213317400011378774319734606206433737055046138922003392652730572529569176481827337801469719576717998505319594667294263322176178213745450021048864841466547935406601645387174840045648533108453568911889661347326410450012190735033042004972306190788225875027030884547186550959564461600374813290866279645260092265887585650104392771879638495607062495577148541727614554853787151511885076118089611440508083161504962985166610191076157746757931163394655021758885432718882457179517093667823602332742586560376793873703528366134938709975846121724458944465025707446991029016387733014379366809067903491027771656831504524273819898500533593556087858539347964343999765137604747283148703110548514829473504733957951561288441923423587943276088550284084801963103276462896225410517932291272938940145554141587833422030119363700611899221086363890660440674618875191035749048765743578745698824118866348520588159769203976549163188118853801002673513076433835649264625901165185469027264385162764718636387209310643017193312944894355387759899809538424988120304497077994870128126598756475214416909715781320470767003543337411787319048668794240606711972429792611573724500251534884377705078091369668852202898207292297169308603648045846498810103891215440521299336686780145443669594949368177836303328881497059142965409964562298638012074981854915499189347467021065663934120668867553780517644821239357809156449471680568826808975237184525727486673249863097402560174908414840088329880965342166167137656654485210214662601517502403158107263563176049625209359897308676951215187807337171886706634247550533746610043121313453334802914392410748369939615168326444715359157390506821327067946475905755114454003387207587412125640429703321973022626190884005640077721869815926912529378989054603786360094268904286080969303080649904973008220997303395194896455529295667457270591062509633926494398577757507176628566177738456915974903578399998059936285075891950051841120120053286863462527423521415488761500282801416711758135465589469338137512273746891591092740313902920867602865836124664562210739725200203919260789828537703986904676102053643850180337369085302937770426968120791002823956798483681885533412926612322367989306306442340973934791006024383522246853355893736041571603894670479566259138733576141762714252878643223823990772431837952256685777993249943811979945298174528700727365634618687353656574152534052417504164405595464261569665138579525394069656430476047122532699658194303291823894456486588275438895428505994216567754503442992450154333452361028121696997562936485749712461167841108731629251961532488598129622235651134344425922290494388018678138975883257826204496260666499738570705772084034329746902531093046889131284171777366412543593487370152235635168964806616466075477257339571966265377149654748043168808374445037319546819347258697156756844877993937887210437319785016027730048793190718611837363548183843151380895798654695466552051271984926872465518202930336747861256868387835374139604557254600499464348149176087766166014324240392680263452025447245332216025634294942637848585568301018766184701940750947428608608919798894742266279215694553466603670094770198230548693736950559016566331504108351115408636648832109344177791740567546939725024619327340706928658564166751464488997356985928235243867375060300317413509615734935591472537856654124149061859895135987447146530395236231494642504980187867795068433908823487990346543732205114164179934419916977510746903792474539059334490721236590774359934895139904529876471038921882634435162701776798048325547716051798641497462140437862342944439067757974427773678499363511826635452304367238556051397480996534376624361928589362937968286280325211459554228061294489996921612331815351249720151426545505576253871322001007756847463181336591527962949197244970998423804342855387939566478064109661062991507454500683758785161248199649511226682344562392786825212980100255142512324476270465943899649252398613216712049909859635685133305527141052345497083348308546323204780677474753198727451312473254694240200336033640168585937082700049114810833527204221475375104821074045930640034985839242485376590470012700654003699955604697405520641560423992028403198201222978879342126944905171115575890138440299758711096957402129071547896833144469702354780697075435881948503420329145940915717313064839860352512860152716659291992190315567667190881170364957592885658077097022193549300852988318985732650499250348410405789107035256153360115747471804815572770426782981290828746117182419827837518810702566129584115606804226685477988606988702275482564543835269672691034251855350378306689878239512966708757730201358106419418864988997303316195088780221318203526348734814761313635936388682437177168263012216483555675040466608605078399049837167605999336365835442785144245653154626485876502109965598698104973725209547201947071164968637842594103817839174534265893228662959799726328641093674687746175207004068592373795616995978175091902516716743272161308726013766504509279560377102625450388320620011568518489020976945545991619159553802445506042131798478624770696421285603777296197463728979805262947867997457666870473076094532319743109612835962913478553476822608189411400488603123309238492166956488894083638669877663594674668068460538000476840762346522271739736443963197638165267304629222575962323696243350037016701470307289951333529727046988181680466446574812216993576073842194570163109348324223720188760592578235040735138455030780074084465627797130475883893685432143606039742832839775986900594842366393519299007296002531349048357081448174169355907048908918834916624187859526807641939783507843754373093925963520942922347617979643405229855242745197414710209126849550492005595947086265956227604887627427296067780022885891382815604696465766936473883889468441272209737857966937619977347516034167817542768229089122248260566708938375409157463047113849259379738553386468593702790716442829734691959981828156399012536709211864848312855849646141907309412925292138767220745549417742747075221427095130227229801854667647762194611271893742526317541917438216881412175818889165982811214608057863454832709999682188418129973201406309361074670021430281874234448764122107385488145337054200441550128242573701724321683080919891267689713210314607811852379436778046858445722760584433268411630195249231222676865782458145302439967489909571158831992617124558279905308184750069513310633802887430834170122694298406859327576329813257885080036901210772987918992468422406311956206142427886566501049175866843749798852844222652348661290602433379723521432365910320176996164542116739986142664193065767433129215899819821487156088330790891794619744957555644465994605628743183067466334160374399353468595493525005212694072649317074575337777410094090608387274080771560288710187443354009940927442404771586946715554716840984165924720589820250590524871534611791411061930660244421955680705065828368642407608475287462137042517606374296676919926952172385654130840015809101515549571425886387942957630329394667832392802503980888649916634133752378410606434669563827554966989975973485880970214716163013653415098938031525816665852922194211780128106147194203227807624927380526217560781756954673328995574281519905926072918837162586816865012496333839571791301402656938149565168576034101524495769140507546695404311487328561264806483196506703958042065572453625593203883277479215770336053134056785577004400113289134499272421907857605555431674984924418842725491493877072357917935713226666694089559389860328143704241517525906747848360301349937750578688772321186213536717808482389695667948304894587640421266203503453045542840884272353667806933391358438101275737879957794975216237145176433265836586217036296895619905201425354397345786292651646530543962300151087992406692915409817215471077009130162967810252689219050914394236130668403551096885983357194532041964860138191722443384590674764219485411297311952398950035928239922683903219685805616697833820959145267930147265485384608185942574239893110939419489518347294837065263413796156450124587499017626795786427780925564131651601474538345574864350277690674808661599614893083081490667643055154231745902026007784019293670707613566088319605262160702667255743339992138490874969196250438647610858246183768515181787546662104480416166385273805607990390337141653091853678924579528398198074880879516633735634905692598505201043207788471693518782261797493623024335386722263343073452100016445268705805196201090368492077815615114069615106919267619549277499232960446330479232634282907680936344074327765815808860304164361842216755275996100290077640126072823874378071016970126412347414232331649730539072698745189744671300582815599047507795449603661651149899591209766762698347690229453921479795120259885474106266034967726129834695861914069603609095087201187360949480500318802206956006373606710355642146718290639372274746930119522251393795644619812226165336670146962543789802703136117205592999793962158396067230263256142383685542697689379291038222966165894575208738409090057362004700702056468190392187417027377834006687051341943385035000026174813853249454594286228620889169730298654106881611350459617125302286689526681588533938662098908944995114720469570242803073879510985014921330571614138628764749852546641589879246142932010129660986658695102302308030598853271619525265963421855473144026245889974134666988048084949157772045713379136137312881338684902188324633206425441617630418194848853012396764658807871042767564346046829860735245247231367450084579088174964156447539902099666774324262110423303684386337313165026025638921994812655961919919184258551051061815116179969295111314473268745903825161530257597783964800372648010379121658954504580608573963501712225732250684406588586252043277005214741933121223106050076989901808092792454591999266797941865945830141374331977024702662787086810525294022918262777599536017019657378330263444455155282782148632109189847750431558119135972049573455471286180958664747601057461630924931358324107230294840707548931311185596353441536965469568714172544530057672884428711628633020270661346206945769226677607368599882389404609810692817071567969067822150415159886274245147897396748433469325190373604342799641120637660958262121813749968753517360673888578184708039068517938732774674523189786805845827149615312889803886533454555662542388432223810038152973065949081717262525062264829733469363466571692943128594760797100781694550261594741480390237820231009843180045281898956092664199233250029889119741684709740365483940069480605918950102478455424573943623384056330912574229780229743822703234396783108667996336049528040665783961697513682630642905734279122966262851692632029118750022780322968051016206538148141153472231644357873494804341738920642278192231691278036649566728419778415805336592853378492388363536368798014711837281110726727479396885255637363324016824520167567368322092352691236938228771745895021619782518992269847474702235709839816599828935738893488708344605977426465949364761285465843503735032349671580727673640263731081527867878481777906906658234186422060430107329697470585120274815859261696299975588032522062918793785600539428575342098468491563059113196722436045444032033320427220379229548075125891669533851622066859763166216949826679599007282201038206756760768999853893811722345013264078465063062960156437297631289230122293783807579460390039391778428999448977122464023879621342856534960395227249278918192664368721535202997865217947942113829017462597516314025367937817047406135619325630388376307014539393631420300938242418710704022910111398711749563503716619029149844983906227866068765266450952109139475648728102688006687520742203829840426370891247055734452196094395332789621033994868923362565913378721681185614140663039346695958627358358689825318558884210128256770607774828033574150228076293238502760173475130256756781816308048833432492612505873085272503452189296094557966781753969016387807186777304542841356151575336907195521768227156754607255178710866266139285796249144735792341033723204220161368577990562051823864884830112628827293596241053123348173852584804743965899766683218610711123869847852201276820062098775899626573658997192770233943685802743617314552522524326071882095335876498153683412876592656273274747078325194411134512309328495980452992667097578263560725274422637153118598604077733361766423219147099311367674452660584593551260584816289734085056588745942312655082901039411310957314309978642023794107358646071083148671964652331889543254009001680522851237468365316850586133039365531256463398958467928696563344420925872532512158862001936565581533944572440332569756240674063877219034058655378384307527069909600904949839294071356291602529600925585606568057132938703920558058165037961929549149233266783007684629576954550108668988142267286635675101587736332585292962799746153402031233369042452559881177293912437206571891335264853745759013556014095291156895035866450400784108759528916801158093380631913052963483690450916032632494976437011514669871401625728382227118834647997407871930185987880846240824892133812100004903205009294978603031998294880291252015113074162831643260926667818998476068857281881245303184524807407184365065211635717053484236571112101499470347217368806247203937719141892290850996379309007103255515893314712526276874939553365520698776425420623418586013405033645160514603127738931528489564295101162011620179258263661710520887729992890661567588407177139617883283462591992763317660119867276807832357827984461206608261258925961524037578781925592082432713190071960801479952861751658072840105475050536494672950337548626671196583916141039152181790224932526908656312385029354553531198250277051032201815607347151259479503490560802517599164715405248381367266650157853091540329463243644174212191110508193395190306969331905438300948080825912183549582291908547502442812648743336797504628380085416938923020388949415036191025661619996558973396060767717373514886470209087423872201877085706992392770482231581053960964944199937353679630334727652922417419446085721238914399403098139818680833142340254755865939591143317532243204020474665087072921788402939055237394312266870920683069207990422617685159796506608730861178101440222869552236302000104681891151412529658186616120636597015122395624478154335365428954408062774343485624573810461747391855784486755727883821979060296313055980553384700334104611882231567601357475361319507568383784885361507927553422597226573446658340352715937646794010060828598104338907474648453051184925782080553192544550624029048846492605820873383369902865558014272190291543304809317965660959514671677136119564721153805600989690171311908309356205105468422903957431647276244553745055072810590983324928560824874452694557506359900225967543199363861711901740002909942207975686439953309348314252335446551458087581907646100109183116340461945607922286170187149145019044118849692607826057308588239188391018024675060477876560597282035852530436418011513408466879115839474651334253892369017330390918825309299590840635802072742073012952070459971487788105819187470767695644312158141275855810758811218602468157949080933605478050937831451929429121442226898142010241660874496354131257884860897206389699222048000706825056413033622222958970564120745850259211429797991876468707722018091261196609441586013327901493628430761931576293827388940086556908892673452000178817113659708084331837608921753615973244400062119019357714445607618267188191504329853529877495454552726481168463222965485450787342909550246346789819344490264021950638577848383195222200516293560315405665206268967372582476073225144343169471643463221060760445297491522683852587624916372374288102219296032698088129942162124291688726945340739119279218124279041559200130324171750219644785062783819700811688630541601505472177961742108681559099849911219321670428655490218333003289297752045641383582856319763908443367008554778591530299483921433243590179274748993171015546219693876666962763323280201647499475793844976780325122613838503250024100847280891073851120603615102617114584194882503745066043969375591482661916086170377289548325935754595164297680644713594927111604014867903625037401925949160523156204472236972068157117112720338919638698438498190257206146725237100673115770970417297843842912002069170045820676712359329965000324360798491039015504044281817519264728790677667591231172066225383153661972919331618579880273049841732968011852317195519375200667334471843817293660619159770196500055916945934866016431512822883332462384761889244562417634805136048586540115708236059845782886594068105240714288996562771477744827636494414198304901530358108800720895707379862799306282163870656308136217526857342622737911475560190579255280008877609759782081191243789861794578890144170210905944844184246980672141656272015091411863057493720250803084128976022376657856504951036030573962246565178868769101839830849927879593569360413319532957549908386417558173595666256039904530897838607321070234047103236184017857302004806690577030885899911806186790065118819156386239305432115248930796566685144267448888499202332886225611835269851024595175159877317760568871197850390373165423636351324711635012703609206603844433504202092278192966494423371448651073968489304873146120430929866586365426914610252325354487579507722150650066317511673702210325177935104576403500295217131347688150763195768023674006431834532134170090381628797901413869310921355841709664023760194709274455024416094160075820842461241859780534852296721117317087686838839041002723592117219586884025215401174426251647747066039645620718123785339718415110934114408545200151665032065794451093610441289932407232142938886050692229379349902828903200480379473075083177455392813596144278049658042959896975360992156525088432562068825394319670199255527348129399894863608652165798702878769686919507639152407495949475519373478119250472220568086155044618548808467903940461897440042417776898390127174883864327215536197847032633836219544312770386574761217010629690068541693074711069116465715081268741396634925089253584589135930926731745449776109017865367999537485788134671895524602814774448183108864631612425144260336516580150741115210334487640843183403870747132274355158352402391034300945810224851344460541428067132692913411339287209807862406592709167431960549604484152382389718214876504014933264088069942125863625555784907095909439943861571439228805417449058090453372418830935355378652395885191949707054004030932014429428272071905796621890790332096927484564293468589607041959874197830366958935950954338339099559249257450762673931238137184242902677559637234252736999411541947391637467450442553021948385591242529728682011559300002069200292044749355768639263242512343684514511394148836680442028536110925541356797927708539190089233216383873564298212055147995051667028847860575787116208482222872127996738090553398103566873155483882473314618879764777360659553139078261180749189442829011602112908149345728362340785566070190979544243725325183699930579202608648952851214726904019943230488228948573051552253763981968569908898079826122126964044911094902984431085141577005917961122702937929218709531285775480664982621144187311771900511351313993370101098954284738476158956892285988478246475807715419072657170449388592858442358811120353986300513575122994283334794535089839172096361321051650653360418292855519250662205664453801421829669269517891901417233920021055445081237475158527664259704159012354644791178368942896421924294079520257069281330101352892817573268255109209985855398847493377387449865235413575983686907716565713521795768083627685235169590298012668819930664853848254141118686697840226894454056489901119936484929609099993638709004392811633328324206647236670299688482231511230854628592455851289628626589656937369439150280573189544124390538683830249034089856936843947746414778311821716737686577666399889700740584585964934157700098372415427536569426314954130060276823963894781073025842058423444691477813667901292755680856321166777069617735132384729274191058797890345613091249693834565525635131727503931789164206720880566908400593839739045733378009755363181696604134590379966018470979595710802786431222932923146099905411010810091309744951391001524828410173869102624642145541321224550733551148757018167819162838625104063225937488802461657251171033819581802778131074589868313218948707287163412582057200670440516451840548453742232620564564626754356878506852977307615789084400646391620720155853753514612726785282717463222905393652182456280861828154442221563535841638848130203142465330644321832182754155828790743626898429003632900884717240313480423412701517691903757637278143006873388510440172509881832256986405561427438861097160418081236430322734969137591737103257824282035417642054547572316381614441687295389741903955450843246433831748019139836562736861678283914017441664539191072652986128696299038584307240411540420308990147891843268309547864449638608074037478644963292536183278632487617771792351471937469836242033292583481061194538044353985028179552411126092976062178257955207145028489514994887232093354964995932285679067198391143104195617917939545697865484461778950862041805843585340731449382762520487594218799223615803008851329951246169478025838652299626276571426625301133473229080064441576355037700462910463585635169730446311717119772322988011276434895353086717094564593303855513406584578396792856412001698247312832971226570684354602334903415670209400514958501676290427491442078722162532654379383112776337592745292773827537031168749856785932642495432536716771423638827815344960559515060848112966167755926614824070702807394710058563421780655474046450101031134618349294470728368727088113218691023574861068729978455096724903972743220720677315086713717044389155927147957455395050743156429446718780835514770696927582218767505900440308776639208830744553266156521550109911693015375671623408171127047880113508192391169753388548897260952805894486750410775784345222095206646635860207684929959641664410620626866313022584727048077111453026975795786076320185999191278414259085880936088022107872777989919106829812760399283413185122388918685973708684352260025782068554960323359477959472433959714215407081767089692044077454486712202532438070671687564497131424077007779332238244436693659428060307959181945645267797530325430199884533388393948256490978546911795808639587702600809912476232288671256613895729019216716932911446853939782944479285578442345261903239338381532349302113504919725392050965927952439628298771042229299721258174048034425842633958985789172090321197160221568113585471170274599189960842081907107850484779872631911488967143052647402452481157939903123038919330074615222755651952557694504224626761878624205601920938528445754249268752399977365407435810284476497229955052330658535678520413000064294590893519958063200610170145058964568101609278178159583691183690622731044573095133971588570658873499687534981270855413808152371198444621409761817973712604452807213847404426381403207273442238211572427721205746219203519671743478993209843973503908615719588049056296815502010597749596450139105338979641105061837632368642719788544822633428645801058420401712805003223875394978550080187033751603202590585996135322430617732163453444957023156447782341227138334824216498526350269700096374707899642833496875826772129901323912769719552451971042030919084543099124822587989960957848199023436106393480249031707270093800097761236025573260542431974426987958811557306757413982363269930142235047582038412427994898750383174152204607444667590814911770028301134800017545354733122499348799172977265692817551968190008701282596746608976373092609411533836718453898033194000087194512173619548729290000542257872493898543021338416599625201490520434662911217841346256480453121630480066818114549284560971819808848098559035666945113058712277204073278566598534546664778860699804952076419361027487016127862031577183368212371278262066836300753003899945762915850964561602662000817775373452598017261358568906832412471391974653917751000694793565385436487917265255395927488286043865906674688042613536588212209595425448299363422017891677640673414692109922619780646725712463039372555041917648654917741208676969865786201002461752834581650926633253202369897974332533784982088264539653705500470028749591443224154001760268061100538355292316427363259585729852612214106624856405861017028650172492934628924696664442167177026113329482194842826021046541903229002032537088759348330341205858753090544160582229613000367557239617046929656686712541271804963207944643680571736659225899887358834772734094539794722362938311748420921612235414350044283219120237183856407706240245470760072975092391907553721425140627989226278967730712181042612969192167170125369985670030620483170538755794855802690932841785393883894653143991408424495535024845286710831614120152283577708853887242557619705630273197264821664602105327200878523098297836063018780288675724531290668433749324886536738497658417367720686977614423793355166720551104301093706291754359780805076930858754086202443138366016978060136798538237161823933006697317637647717949952151312432294229296930742353356664577269746246095758828956187458289639260415826107426105667437012256174566129509019069517028060361310487024914512681459591312687406454451811867806269615030134277599005364266197171738187564777134284530204981092360626033288826460055876067667612963189886252978463190643614918059695225168705606437541031125747348312911132146289956073690176548281309923087369899421718226515349474870656629976650427133446133607322848483790306361217814095541908024677162101761849553265692641534135997519899254057925277571679935622021577446883335637199336869208562191967719547090060641902449829165085935179627817080347556888013364866990418017645735349392139346904649252602697724295211338203417204136754101132758431029238894530303007602775177810414638488083668675862626567274466982946046787848699779640416685368030460700908914311899870519035747022094026175811739209986157029102398494037613374437530974904504629185858205595341848195937599623720723689268185199899623084035532975301974839712298508947351408847094510039050428970957703019254901397484269997003641395167423297859438653434919339722991660381035709137951203647671324046638361955973389211143796007251009625104564065785911493888905858013508944015753079393869416629313958770233446823204855951364329968985513336195872114900525541958982574030949523665539183653154862514716179940819613049104997620394637875885780407516257413704934328020776362943538524010809996831990111666286077230747408424125833783042586680790072192920462609106359745192502558143108685504080341098776010238267734253028681247967334241030772300952648310233954424050996137377683394335192876868924924175998423041655847920866362215875832392048517813076749705032218282047279824250348138555829122618740582301825633143062656604867745734142422448046644110624072568425560074392791947072767111911638083829971162526824914266930568987564110455643760420814062384146405206153801279297558982560819633642695405556566246738029566227648893632455502069962405116983982009785088063755439996134963792275894709546030366578294881503309280276403742940699725826278794260624238817279424081366860190178394783078845026559461174689046524771164203707650125711040932493431398429623026680969188919690954893654613529758995358850326612599678821833445875194557674098144553579177789881117019733682828142007930950425711168782329645895540057857627806533035066075515768549605536302664453428994402833522684143869191459962635214289523105806984276977479819717662365283111460649831448353776035638233395925431030634976061572331453722954054908627968200303071867060429746859066895111702474193873332882597647322588698182336316542290081633882214486888095228283726749073724686971672832038079340463730304708952029398067490877071808491215517039780474258018004214472277041411737513172387034396071891109438104732985144092271850824637343654166443357933693034069229830041699933914102013592575708477062420074485954292318707011116033385890885263871671481546731200810195050460594363687507677073897731913062795184170393455923447432330327562857044125451959808284502432362467145417161554906326177176801218790980355666302982644658128070375465289645180687815417947471032140003809287170225725050611551602510823875152373896334378463382158598726712689780899242259210100999825496289603239004838530606308582741766841768702459429268650991335659559074430143561431353034945542638264694147892303711205106568971137416356720485951212271051343518245306980844644673783996196242021213318798519110943109707287904590081829857683777221133240139307231688888263256875254236692411105406188978494135304017376365419010611637987247009682332916317052626742622548445265750679908349474439329151832192938446506347328096921861406724634459559709217293248702902889259204659149039367982246445173914049498005440462882559084479537064620708673256419293046590513048558397634994319168705340146483164251294117760277502356281961867005358785427541831687531162702626769205131106219487272661689283537081877789634129880827391235038473662496270285085988323344699767748651386729984507866410439778827664375762565611880596755609562587481115679305917056683217872157184477882957503617335517550268220915181457715185411173874188178555398263172866311461582188897314660002150242360287215960292484327512313966655893974798738874981083098516815932423206820795044724861412877033114922079807759029338986558224253661650323628557600236624978335239348308769890674132632888655677455733380725803747432228584196510017742366614348855188925758693662829983848891246032976799665487704603363183159936660028033448539166017136068963112062763179407481751005889685929530719695918581160283187271317410337357758785555458932710075253453304703321177592557291446087431207277657708075946887743673158602199998729051182417140859205025679560491269474753991448575958232261641082278557681043763158573381475909862116060437821355124582536135436324013006419376450815068068531083670229403636963805242459107170343149864008131889750578372427369136415480520895238217431067484461763738948691425425115287805288732660566544990495901004663528425264754617886225700924626049059161758932139146587590928056858091954411568018932413104696186100859885266777249063285137770875182636252024168518547221281116389964657813925584841537481392173473895120005033781139325476772135767774891803077494908891064885485644784708224087296693004562311841038336341250081342486558732903687263781337987533885683585290351330047971916436357513808361571101152819486577163418405586170141848664556780124934691116200148905394207553928351586356828829284040627025256807660009779227245391642455393460686593802417826531531836493965542378720295238122070360322825339442427929812740684416427470877331660104001371321693668874511005483911678755270563226610443066014049721279853917449267640986120776154777568680597412200354280255974008246509924864925426069129089635424180294217766231391481153123186976558317644270520809466730963284006591591036937530358873818220444977624345014198824339600875148519185197391529755309662523086550922735836647636492002224900929284901545596441489411143041101636059136546785256147304319392406338774239338618463415675008122566800991259488799534654181992704488245093527105287079595920136139808162948902185965114230421674405310721209590209810468274794150655007081347747690839876627686172779260277304754384290035223285566469990392802332449828880160661377336599566804997660219947261779017054207304210920159882673720807797597373411928766437047612686946607877951776045649833078341891021270539550121599358265312068408453994063303484922930949882309215055274026125775762331620114559545253936368639792194025905514523751955291482050580757829389710927440902878743787687584742170352239433649778983982464186925244921796567061704472755736800922240524828425698182892249238961339404470328417896904210102051725973399487058225881533754074490979927475312035056893432259891191113259369011789353852614735596095301439406668948604096295998343646016816796119801219544434584299759728668262372734295625063645102577401267928232751363528028395889532308967210148453720788043827847491238399005234495062525818911310752646019860139994527705678972207403437448437605262882884605746806791393136857454781890240246383987811819939879387865569084131641212708212211121963129325796143912514801227221518433850582369500762545773316798875097211468489373611107251859466554922945134903458850546910489541604505440843685926093532780776584714974557659151401973849163449070669040427367888445057600024243545450001067002386611059707893140059676459249167612243226105658820129347610806462644063576810641376395228736393157394995927481902186631654774728921300261209438569866104848627205797366711389888890519749815014775845947598462909670047690347386125392621492030322075914599625091627173776867714709080445394929134811742106858607083704269359603929124701124785556297574001311209990146837006266768197230841171257427079663298542482579610194751650811003151755346188337372086533071954790739180655011627964312503833038579782097533700305552737920850206545244025914415218592378675289826902050420215595653807959977385339688290477665515268442054853535793948492530388842922372647976834650725395800200875288338204699917077865636409196224391822750152908857541400130586863283438415258850252655607789813476821812245679077529519173117697703376746258407766213004940114772922642799175598381406250561255770909730977937932297989718341072426612394360043723821895939637338206910698035784527926255809307222595843796429860184626094580015713030479982686872612064011569464430915708628590202379272845405282095216804731843351576336235566538685425206505182036222144650590496751638894518285399510054082941940716424624136873183699270571415497342415987868878596208275626665616034150208185844692665810031297468953730021946797607640546521050326165091617457872730453761117453314299603204383944028428546338673200607623127810292311716838262896395487474088132864177935035655197751034095159227371303521308907001153810000887602120796135313227097564293676513014733592050740738409516873627040768809931298969421349470384999284423464892902210926245594937976658728908655134508260797955827227677971514359073172423197751295960285221314794933414537992498862492048772436555083737655767098316571442164823877037566280945120003853435616979167052866417027093289620445054147593696948093395328788282798669228899979840433175329167731153951018000560857356148764553762227002609191240090117233085998302934619281177200056166014007461866640546047965336198177582130417709982775678024482831551296440628627235270367261510178918898573815173871069594513156892960059350066281895224599307203125525362059153803169971324470271218095346485782766747906113775838819953734481525621878871468493298087310013024766340350528667221513374656883965114247974086475262078126582555355826429498773130631291661191571038598745142379870216113323805632270454525278294931060544751505351622048279054354537153725791870379472902274717064719112033328020176814606262632839705505422394083653073857760686397597406778229765609959493980852308631058079580902911998172047572958213639635178789904600729968431562881619583285670683289832546796746131680508068794654451450547705688694344113157465420035485830425710579546747291675162873332932240984807447075405008144584425745242549323670110059691276323410626365843341967690890570877862713280088569050191036949368859069650715543262213757991183270229562195659358314498633430400932621040491785315865312699354220074111297734537708205647907567440952822046909794980242349111648659141529905326173886563201105334450996762529751974934154825410371646017126815308994994372038603566512883536678950518961546319273302926560754261275491051389667001041935487214674689846697028149377433247569244351817306077123774908859406956011436118811909920939552318676232170793399730812013499866833449445109618432095462890428384800170907681568058749929609294140524534819672834208527489013471876737003511272528840106637873450174193353898018831632769272263924788375750460628899153416982316014651481583320606595387065784114338575950445104686290169555340410983461281252779298221888276244313373152890242348752560962336097940619288301003822395215729194008580322072438269939256742484127205756670240694610356646495999111838121293522238587357135091044779406618164080458033380730403058782423225205758547064809771906998473505466249448751429789876041623102979812616001994383009186401264289550749959639836774900480306108521335060277868905434760054079487749828446468121773621605249777650812592699128204519810099425093512474478608938164203226993080475484215391342067525888237477702405387246870146774753480946848590543037110343217966986201171763436440501370595229064675958532122891310814858904772944548669402890886369062343747732504206183907763654263960575803625493067749370854241570209405309425052971462063738386062166609521280923948731081062915130069485199992755261973776832687931162208833620227303525300071919510825281341851789608030021126739322279412649839842560629959248412635832811572261396815703993747768308005839572271879010418204455482712717746062895276515950738225544981890933098881469615571158714345717428196953883730960362710340621695860190005289835510906263481541703109636089148177328217896182462410124486872795048039515160283520571784721311499951930290146010558220714387370882271332484523290173433497201507591260083249297285214360361145194636028053494884577999522664066441594657929402307532739800007343905926487664827512312584873379027401672433784718367926958614919104239450168748227244142876035209220191282200262863740868067058193288890411483346636973231597651408920160189259014604143007377396611761970691056555728247643202521174290133831416241856482321095227307050665092174251992193509335671737091903882626035122697592156358086384543873554036573624340382511706163306581872736210031278342556084769658873902031473337495496484856581048954681434103881535894197523458313635198438304589164921951916169545011876908233441689996345846964144994345047624120523681500857115880548404093794205039514095872005960032077723750012345725642087566698608965216811161655988802334164088373858020842952509164979717659544386867661867918707609906487068640045993768606073512582361446782615931980858222660631770619076434178055964850666872088200837324260118158883662822352970640024424905078332855654320861149658652818061153223440382954675356202559162187952987718183480862902176027406878343655905975368301421931750210087950376787500475889195304535263985668906202342740941340102459020205155045313495290111897797688744229811877170745380071125847813716549237129892784348830649287314814958032632045480504573676535716189167818107532584390388239815682875987097769765240219459209521312064937982638476484622397247062389291655070347142750903789078271070787848217461455949104568846433289481144679198624709357840872006063075537474545968954258716599244604809474478433403894440366035458992385523115925417606359770763802620227089927362554737723301098961817510368475737007296012869556014238609585936117080082176794694054268193442872201030534013662009653348630360140627935157540701159378072156925178811999959691316198344719173881412047965917442280869426790525921660075792890135336173262511011039025955143913479921802547644476882895722960826464537979895522686423268101574120567122877989815299099393835554634877353609290611959659322479821224705209069085516335512365931526866493296037221962910982267148841166474562441411278174054601859304164801585555380363102238386111281409949952155592604862229895622011570103304011393233296855292184877527069268826330587054881375918554479866406282589746927326648507256640952676354491727458722401176719136220313317475842486379713322606749035285956794868955571822161892041095593765419516777115650492031650124693486796270989829322414479781161507148033168723842660240018908435543098778880800528069267707713848529137775827081742255689049021280578456141966033053749280304606054071945598323164185791494886562281468571984310957366537843125289447916279830603701274281313923448990392789245326450030301895869502477631818730975717532432733935209420438611013546332797825104035826934358363514499874072194060908210326285350922885278065541086994295330526901516690784936708827316270346643365639363274462037066935159779667270182009328013427775351916464038959068607597951302989392842448951259308401466595357205228245785030933682947081280130009906212581143436601370847483785927455340494871432573361739012948460616303429081452621230067918212016458400925824405073630036161009261192962059566535190469716235179482140474688319274788746655132701020443418126661044466323140039677224579625532904070056438355832237383386327188247738127011901131199056272724586261867807010118734650265291696061386471634558756619150327481934233033922805386624708797410607077685300629547400624266363290990613799256189757948534263881325903684144580164155950281133899378540747333055893924257692141482236612683465238647103681783407448749359203120213381735139930557473669982253101536643330624615268456424057813408846528272425357084553185197275181192917229799376162761352495059904081709557908481534103129463258475204784018425517368251917905948707430879769104907880334368808107281547530491370430081413529839996671360165911200433057021891064451157776571271128741897562105959261286376366775181453993214511062312423466200054931312336407340098243293742845038159284864617265744171474448211672611948510891638104530335067637349843643285745211154238739204451543209787300658330318751570254200945148782393961626561555599927612609225148575866352211180327366130756077684837176383698875240973300126830421783831902990276738149803265019322511751195197004357803813809630152461148429670173679684945557782367223660829103846369458179811376155179196904583925015946814104741325804638665633384648745361843297091514057011922568149821708384706832722245586239387228032338296862207179203190688035934284747264253810821550559533036537722631907104062818131542515882922906967376468689158035784166302062005973180506705632611114101719035489002952105759554126639973077559362329953813297872159613469683051507217663100766954349971565341488931858771342455232924298904581773724017952605682948600775774921685153174894069398351189268388438347936804536550427447688788607455946780240071335193401789524063394416838206454997410071358395979898784490509279255816346515536892625809599705610055056923111205211215023838807609367071966265267728922558704366985261323855714985287394074669973006620869593358411394768705034329887829993858650596480376825129798110997465252988624745970587064873220934942368808241461542930417555258482721170289947919174445080629567985354030167201706026372888440491402857245236505251205950667820223896290753475468170593441483463678176104661845118010489957250264971934420555805075104813252768609401542910934295083595372587475124422854367736245857007876577860980967259797260106472267597344047334839582884458555826431269560410955227782591984332833310653320284655612596559176331271979629089118556747399011146200356207180904493028312157354301995173802317526758897858316928960046193081525749618544727863695665684252575370594129181916972642690929408393428036144169724597383034074407603321336446603500339674426836581794469401524544065712659449329908511365374892068687847993911675639880559573438095381514393123522080495232976033872058412644227424692041934167102662339186885283582654180010392803274079398129681276093122480304227434444961241098317105198349728420009590208970024959404106484149997810438245367687850562816215470144972069371798258027874171358849938804795106237333772131296920702974065002709370138780460621081977104061239852263211379732484618253937596981097132543173640014818549190999510721712912274515659920049430430951021101729549974924489127546651047753091385812274178208931100001809030721324193258855230814826726114207235628419979362079098652634901104132918926878590110380099692277217367144360142185996577670440198074655515596860397344979385963618242961303532647413415691211852513121544492995931066389254217194982487389139561034538186469662125245235439830893060992024010053419566621236846519382190134752584204907045147108621293937685694942674460810642079136548562937198384051424560398408544899987091483920491650477579880043186224608728907130708484507808220559893810659624809448537214949358018685134195429900069779100646231482190018483787226395148286259764919270419850021928779256484077107531585814558009847961191203198932194339832421585868657569040560658947871095846571084994383526952576450895089729870539208458732912805638838849918613358778339667964410982361873400027856439883579019096836712252401230379796884026059191592800376783585705442122063784189605325770554286318053363320796336592241698240819662118906348536268337620457425022906771645828815363659675000166826228781304964557152830018017143577337503915320872413564752088843734829653969537068710665802986917083749016867234212391779212770145312274346374338454972582616368875022764654327916535040358869182229574826788754492957515112167015369556218228328759122144173850272731564569915920590892041554511671490476727133607955833643298842482624346974345635454368223010117195452726363907752904314082832640705260556742249732617987300091538518036869713756685430141916618950969355242875285191066576145340425131161994991756351997682803642339921410063177249709084806682983871270392586349542486614536253011972616765095098914538146080940586455878171787147041413541915232115447681529679945226268056743069274154875900695678935040082728081549050224349918590644886382038070548346867478890441410420966207955982689540714175513116502193609719242421410951464569389180533405271808778903702239818027709514899974972217729681902657763838637802421286696598443963025614405119750640674454345622772966523530352438348653286793363314646920482805748268091267552353784044603973857363594281729317235965089927931735290187488324523231360238148128663669537830023571340929207033768659061715313067326589246218012359447029693202604946354572307389649070725816228385628451389505146265851147206621759213097888523664613014022429245717341874982532778520223858975224436331062769315563219288244490916831318211201836324126594997073008969266705980811141196401656200827777731780321381743089027105343055589825697386232266300562506384219822482021376054187426530642962960080616344949391718257689136562169885433624866044576164332608332650537793436471749337520374075060789655507579844339246063794735073466113012422355269805753813020414044179820253991651076793703718999564561658004313516063385759685379118131455601825470643358871308627763783833703699417798903971570153240029009669013927163094334034660411457054360178548115535188949009341761621357710424091761645452759233164766485068608876040859695154714705009927781052535658283712945613057878831671465666989680203077545762406882615543954920755109775687499386436513174061728427570938715942521763689548348615510586115855849970352182906481856672368881703544551836744412698811310871897093923240443723326379598367173910776689019988904232984710967795513196379177303778865559359184089566553194763435410533622528757321401443267210331974655430562855091734345616647519282813825127668238631565476959138343648057047942890013231436045649007270483158162361729353154263136035349543155678154440470035513960930276484995412351091040512647894971134228993582923085918060278691126923810942469798485824719536126510496634427709170293232846882587360673694314490732311300361233630870298579310221794153309177263753482758822147396818743492596097905172390900632958172793365955865354662410608264884413561139622426876267765700130846096453490234709948631064591858474397540121404519583276595504172983247169228815107630037663480989896500113787462006783990957205621851702718056739629868129837917437416882279614705211192190062372524547043361613407642633035034554619464366758071150699598652017506467944634416844290622525077985659841839969416395420257151915228724162549019667752483830073777856252326015219766940369098944456076875764247168366901439804479662712761767716636403585664217589989868766288323018023328707847856200706383215989531999252125421381491663696149846825569813005084557484698861300583224603632882160292780879726265246718462280849224255243487041073528233163442612264518782856661888311728069951340550459861395335798415965043394779069793736945061703616064349453533705166283836015298084877425181045184929870489832335314849563959475997227002944990158593878475691715187454066758925773901666622603674680694829822804144859683741318015777658593286951093548529777209206644585054859280400243690235483091935901451231475974206886237956153431242947286904976121025616236570919280242183465421915877034361252005268464820425820361173961866524697050590969250698271040582738662871971237888934609719389015582423501136253406818882502900356277830018135509250582905519549287034696414991469881247163957096273360391612117207112035241333317668594789286924440225692356314638999300954528582336845736513182164114415381151199139788903684945476570316819485124289215641852016649174550973356154932454188603596145881475788913569543282872690225257253906054501779451639598230333302985199335914032794001980684265602600377914975396155575101153577766664190283502542687170400423170636476121235311308849838048962093110754773700897641573259554618807595895803527303156772474415144382688476697660794197054153202206606232987675970686531949398563820704973460185777105292517158596094038888212814657222698115387107782396290416077872170727794253238521825006267119897419964146741543047242699980086654443932816651739248108828694714465410150044228130339747674409071924624554358138984131491826193560823361954203383425013461491108984610617209486955553963701683339636452974651884171178182541688203957444340813528996413451716767771642391988389503837174985372135909837844417752482603541465185319835055809477504147660448694681453604492139024601919680531890863057303774260759243486550867591924147295107484436219286089808143269049928256055632189081411163527887448928845917995767106584751577224043220890622730345945074518899115961876479682721205581229455097510885979736688320931885150701724256631338005951525250697444424179310951293902972174971271811606814438031653561276458035782472245009472808658633299397450780231592808410518261280827754928693838643275597396886158255863966689152877803990695752069274544917851283154747472669417324689943868107362103488081467996063024918851474381023001322755192057670280359228728037603040951479447305285671698917394303073300059710109353754361356494592417662549479439844466958509329021945105752859427908248267843164114797703098462225016003342355146333482008728784339931915762449686127893882475684711707380085262993531133553466362332478531912655617096495982032756881192503474561086719014850741114494874808173383453037425673935487605166124250114465260099675266525701746386043449460207720724335158330576674217020842118459377456947745790816523058490176149711184039851346799968202243080776687464506918899709995980376701646240976720632095116804948676746310968486702588887151010334953255380423359475556528000603548110228287339539143571554144742628869609190910437331761323447404380339274631001687976342691181776581299079824506079399566268903827577889890989972337460978464709605392290099431160954246952034442711637321140604696329104694645136106794826691908168562223104967599421675139935477040869707674544925856347149542610036683981136010567005252693118860303853049078829812468685855012558141750855675063275309032161696997589991092774440897985404288990794116707004788728470207533795130349064130290585458508568232183807515864058810226787781099408309529897404180748525671611547669983400215633245031577772854446167012059166895692622932176695261665109815630458960145677454276202335349204295004824835129619306845235626904642562324675831626831411504184861010738021942156477249979902270359060356411523173499507456174039958053216230516370608298063811322844809941741386863273346577356559335452768669297946630943391696448362487535829993572158983533039252727956558649742965643283055245957603469400559791581783373466984227027235307350887906104716031821411279231926740267669260549911019984791294854782462004311695643910328332520020747025833162441226128447209962066329100435995716089665881298689534463072085272767393563542687612773274177014951763152278002422955586749089926366917762850096643664360775553744701809436773092980222626622508224993285585142682868892939043848364496719183357457404168494491346879443130819749697672011282176589542384591266488810854998219117968604075038043283399898582704535785214645718581642178584452940086180197206935324729854520845938323323281667042423679445934260285155770458802588066284581231956382839470438306749014837524554843474036888404754292741396768121710557607620147988833448552698448896157961273349821963780677323577710658243925071278707039217623324928748529905480853809537838977641355951128685145537860631040322979200099919909596536759616354474355346587222600405097786825610996782795281044394376970755112856895241114205884502516613893274390016264236056706078886358399740479818022144482219132632152909635003589309997958644548550299943780810133657879989927053152581574540650935044502784237965026439811649129121835276032281281861123420559059806403713901449838738786726409878918621828615650233835890547935314072379834174746071617281551499091643749326364763107493127177754472037219135047318460568478066423761256668400959349385197697079434629333516483225220087134635716630030145913918648157760817996121801023136607253598097026163243603707135110785851433738847656053393143041408829153413581057361853339936491907216892522366630648648942475162392108755118908558268775993882641932320921851316104086814040500310313447669548811600384397889763961087468383298770386564952286493182442824217649401454949595956909744027679273424968737133523844732246794622478467671292763874988892416321408071024970089545287155890370344894126735237725321577263579984376309093743314666973423846708754457324215144271046735440287705755744048742086122155922337307715138398708930324014623885360624704185355712341178460869370777719786039807112855537544403667336419233163618068862844390415954998789858363257630298224245724368363203543643624156798278973682793152362823411810838241333376215965022144951559530032313915313089929146818555158836718016179151886621615920002453551382066891198728024829077401675444877802793740027314306612537425286469317657151094071051469463341152819384335979010155269774845038413458247257396225851253672871261303245627940952410668384045279154525997939271393299695741010548347615693210855583460723377591744634402963966900359045324730103798982146331047154891744182469234275694243071027904026918228662128878305561319078548548326992132452049650297876711324577535552270581787226701025883881449268320943010564810895428578772962611598303646975789116399501477215402928492977038262209630577059330448337339456828235164576247331835478433528629268677115178248345600800922158637649315099012043727569023432233324563809585524019824646413262605707261147711846738328844869444855312139113732925122530414351896929730532149101112283393877327381405667597380767634808674746154490080883615399394418262397215375405563085791343315330519431062835697356886032457181839097896957319244337744083447823212609725249294510848076040708954236345913461103729523587532102105403311474929371493405716803491799020385157952493390227590920540503769712366890438479729175046864019262702470892484414783807394256903579822633885557245691551889956457538561461002883853049033888027980974894660533108787617581511287510927522246821548924430656880164026949437624136848412168917823787228672521595933774037612022163260488118677518179501501102563536971273499085424321911609678559224505552291454195195825260430256643153099793297638606353759040385746355986987098266406894093078342537849588417363482960221183058404491615525191763830159736993207075234358872939565035795602346016448290372857386970644463626273824100273112881767978348440403373886653844662187395969965111297537481820015288782908240831738473079822800767426467843935880345445650662959212581441914848569722764177067286724092573839895871395150251433298421976315463202946269070479190774733429665617261734955867151496624454966714242200068554085970692813636916706861865023303325212809957455489493181232954373208880541356237629260160372190272806810418540669461962743358362245344387849052938413585724694145737668474985209146122848211342547565996988071675476076240587313145875085087961085462087385961257263519788555326985484316504804398885099298823625881647660402863176064409954284386961640401754194585684891421871347582273737053771843241636629425741393814386647796440612493791301343064454205640869820701530806569983706163874502408778999209228533091296343870720006044662851200024916971754772270532542998471063416623591916310194238216942004863106132357784069859009873078828071013092993661173203944565442003614359248356160122901859370337850950755527734954287738816999613204782473219520101899772343121605327944447654362687857025286726423597699785742056949466475875680681815973952270920714484218428812019037227977231267224297950593036522755730679973363985000333595362890787293957514483047094721619212613571664377095741535324632718248323880444991865111965306571216547322672247525861558468464123912669833886910780293970785630051466926207095430286710365738529834618860830190783156113594716368724955179953435631213159676075057112371018819233032370477423908364657416767427376048096243008000138712515809623896531306214389610215648452555797736960088100560419214796466279255236105030510622989922145832211072944159204140903247792010977146591402560765396980431910290589125788300156662615765907895718065214492806732733626224266464585938570290278259721315339706937721358981307231042529341161273934086779847486574466458595256325474372833844921124504006338013706968507598562870683098634838536425071973438416663919372929260352117877175754992514842987499323862230757165288198134456122837918751808959383770537125533900189190820826140740420559313560076199253629019819444745284689182365418097245667408056503247895694454452453737092086739399917487234183613184162464609087968005578121149277659404357955836342864797143517757715108899786629021059386107187609729544518572328381167296288045789889102972651246948894951542681283013412263045698970021247742863196237121091505730634919719815699047501402437642469474045689729313407451399628643635798167909987527456377653996871706168554117855388518926883606546342249282250290305018239619918961481965060153157107433086565368121795235759765219112458186094158979211652405013725699139238714975186931209685677879064847189566975156574090908708114310923803681965994117014851605481472538724974265522826944840432971909774573977691364908262053841161987728929276544656057857621183296137090795533750035326307796877981352291961405036854370603727508513991923047530850249764205258933492217504421489360452647380185591609708545161994930469480227268987334810952834659147309707248616847573870866571776964074835201441676595059999970410911086988258791277287238159429496420905888581187727009859526196504904101535199745514466238192298338395033358460738423170353675283078315435479682265094127805857043892898570574369443629030596681743207245786075931988659459183244961131865705323548196963755228683538296766276874140411791952797854478607038672509288688087981261225169581282166946730275749145144041339696297725434958033806129067640395402675955753249817665775821837815768622115297002187649908504702793782542438915309498552305676039964730565738044510037162212702236300535731322890303013264329373358680237714112431665078940876604000237891477986618826034243498122514295070495906548730335909036767076985190285336208956902251771568098561563874304375696607310633741459218950574261543318740658537786961808337983506770958156575076867647330331034077100004576474089361908945775496779366947711021423069606053576736946148361085337714645483034656943209945273933743989858753805105372477487475878742752681664297594801022019245500432541581789237352964823402524499141693472600015555675130872152365471832717341002457341853782998991331514827236300923116903713333936625673031890472899949742030020028131340474433829561379622245898126183596532307889015671380532021765314951571780134229165206734328767011251790830293354665891330101463077778651798377614771067613453109745034550629976716271855014317719606368912780445056601975106945482064724848000511276602578494242051595367774312220633624712303121012778240835972420477662777239959100361721342549792056314125799111193108457594596705255729681383352375900479185147152459787867208926777606490727787234988378776354494098363471354238170533357075511241885378718370334386036222008303211121824295547602177572078328939097897648022430034630890940491236421213733172200210194947089711556866118205796733096266994700080861469673357969054881252603744017286069669750553717899544298473337884406111400079335737061381258850103691403643435599872496762094695762986447241065420272596295341144982801924909333731335516375067818892926556996345772023446650594016772378324604430810637542785278509262109394211559306108656686313206828658903688522067071430078453374629927691533794525867870590097310383332266678253130161055130446007135697809829906494000841692211418591142874613554173170575988967998677618768895873183940320392866943926394168249552778866187998927278896154987247774560497082023711770620099277314537547984233381200933653907696403218419905939036683669293322249441938916523103818614801684256310532216442883416039215072360826349817818220495165213265390733791643273591658032318421511213869132929849681363893575905779869326051253052908468821090988095427610000326133458442751929128406272206195093193774468225403655213448715119640439521774668603367831606194171006393779469799621384168736054548132483579675615983676831315361653367820879843271019596091071552335658985104625976635324070037602043045817685396236406164017542534362128327849592015862645066942002394792781367705027185036315239211086432746323220205552691575619650166953518118736730025299802925356201911823278341624209398610900630961778710948903340236673613662128906394519416512798401054082446537617970070360102207173740279240878522382058970825270465816933463654786518625832705525407257135645389141427317315852147963111111721881702749713159987033288931582872564390192971700459464221751782352355815676521565951083161626395506956039662000874564773541872251222766482935213849373097358357043355022672899215655389531981110662775707043983813942572510001235169037065770461819106920404579100353740240996022444814736950865001646284879890504131161815718078658086878476295546430942818948243442841630984342161447464003748309847531570278466358523411488681812967678097127036889914074522794708209007581701707680435739047676113728597479946522463768421438511784889044748565082240975706208663601259779415716780292350629654566149580592555655336808195904845750442404107199753981088207550425238451628233716146798217148006795934411527388554030439970857517418307623891753102643571058071165101179585034670294690958047088172438220326398385051576700191863431230220582333117720407976339638786848234729556241936024579938165516208569819616143731786198852669046533641236776284701973265737710863455668554083784515625076797141784170131129271836407648027621559181398221458790041366906876751033658919410561547040811566474415898077317747045462993224334769761368415031117667206810843975758607864279214606544266909564557314348473572295439565502638307432483512228622094622632840639337421931837511830929401455197031126719741812022356167803107819339683606910806105467279067829683971635787292507453671482618693161934530493541498765112851509536611499614596849157319606984393819306365665856510409647978790829253059837415488859399552695896083145042020888391441929416335034638743679074052273485140094759092473563350734611967175947099540919888527568518901748000826409715698562023294152136407204433487449412266447229481051257987088840298937107068732335147030418402611252094763806139064721789981396727242719692259259562983049626546183817891194709986639114649779167108193683142328406213384691537542646388851008053268796106727120823743872156701925120128911395620140403867767158353482858540909001176868842995434176942740157310965369368739013724631796210385369774065172032915368737506298591748058099564415512637948474393921895413826769677704559386584441144377100387676995745836542642583113116994712681493506002407381283443264782756018225279587037018436423432767879395872123884668925966471346143873391369797365118452867144110897770187495181133446890144700737011805681604317246236544722719543064265764863981412388543509202659405632287171229734545543968428262432163792927325675984333328167431190533880577736082408697347544181690604700336467967135865937245697890320051696875401014200004788459742309219797789938738760563430223120593195014309430183023308658190132929685961988526059712451228057390431282455349243324016703401161696083717328806631309518937508401802166514000575770116495967868168283489385485167714914698839464944182798449879621589162468187518577402242123094007416108666308839975636065338794330167857717039342941953275426762843691758708190249048455616550656121101627209378957889009136355824165701127993412090691027612421284361985784228919463866933189716953516901393192214797943909363591235488553719239039132023905579816611518511926242322695420829559381350822637564200603862638444010574805172526875867703340661143580214922187226645155974650174071671092542038514268809761544745567452633589409253175154056739974851408815972347847628883958033455276849707032845857999942220342140048972574958365909842079167981909584981381888627927493404171223695195582912119995292981509742590221639300911304185778409553112136195301205786376897916568875519874761738277700096799023170139513936906957842400705916364656887663739398871718474666297279286764522290133286430473608092271481748730876112857615494902162383376063032476928787676479927120094722023071399119482798072681761271512323131139220669745132254736523866211251370699722773623635480242509435220402842310549438549303521930047659727394251130242002131162880166280690478346638767186295513904805282601512176888661164822622707261998701799897997518007239522404371913604156620574824043968517634484783069268737643597633685879377601532576377005540667349224634832408557264596450455853232705539620053832955454403580368876382394019236015542098884091668279339294820108296146905913451351792724483960161409717426196493663795793065542357207574323881138845433032547512492685721636893032559450716725369194946623105026590860630785934058931456377083743018389188089155581928434470486779117959240832028087643380613139197970989871224293294040884758920345796825950456570151018286399834609043689880945991038633477369331117625122773507887791489186275214346283007944051479529736322179914439531239176558863904237588898650988726429376255589040384804486791513688933991850213108385263221250416341032709838488706734508293885110891267174918554641090755772302870182073135101939028845853587408764412528973092954771199125803769145380994853209377082459130761408510036773409164625909931653765342782083462636479820575327424297045110447256614869328665922044381579229819082173762397147721052966551044642167340921737839794630841309724827651546873252363641128338121962173181121191385828348860006388341343492667605503740222383097761495286455351407862053127957537532778653319517321186632790171943022686463130421376454373590223752547079184339015613315325373536742679272576592764270375717551373891540023824148820388988013733480643750050244606242957685896974813836538435681116868655046730523472056335021923539349854988878721662598977594050087191574309500625496413445658143074060188671844833660250553027106746830094756556646295181143347302913402006382544695662567193410234800514582426306941405173058728266474490861883248907831194259483225355552611327761805593856656434146879208446572094779188082259795083675190144711625920201504387870119719737734294286404245400006875653255316431691514755492811350308500190341599058254790929383791724211272055797961713015403719343865146450025970353837456660963950613461927697883346933590950763213861531109109399695793140897892487728650779788526655136270480895474437809395053058240626028006322695014456655833857636420469994003528843302001509007681586598417780916972514674326844404657742245002065225232878325739766005490939393012591357489646360958153170317829673595786374643452912112552733139072081041439255057021737872746840189460074603576618389010396607033603087874494045021052878045977193027798095852474135610497389826794347723759451971189874727480621182037588315502437946977748258340356389139371380663259208098830970838417370763388215460090993901505160314707920837961779700118154575027000666984000778051476939822609686270647471294264819101942514645719031313196959751494871456820115113274052294359608624275601381401340570323525188090670690903523307269410224607575772952731988876354468737336308862295462168877095338385733724859769588117242691439709048253896402304263163200303132991106613530552548175521057331854091225676376381784452339708809039514937353711849823101113632205140319697249929160738307977794091085605042485243833632277319268454362372706509298434327170917054992363878596051651480531563243982894700111992937081664525101255257001724382713273260865005981284517893598792427650898619657651360458864990889710978921843404510780202695921090079949026923644875784744721875934175064131939808703518951146192407927307116859654782340387852793732986060793685111058430003146443787562841251320049996720710414700636817461147465163640907030415497401434324318299270697505090909024220471736083341747335403244392662412969331308854887620480758704864797609728023126245720785236732790265522754763740174605409295207544845582136251242305515104250119765008949668770226324675741901737740955970177473652667477908461027040636517674348361346104244797255361730310124208846084219907224689291780451399386244403447223976695521908846360153825008455678624065422444190965859458299579384625482524899409171439865139208561184702173221390661545751567157542094768752407766079568908641653835692975655168574146218639313885743143585557841869944589718793526822307464798352437375356136472501742959218574138001644691534100365850875526882796193511375018194641747917798448224837282418434262098488518662497358871475119445014248601698160251342112041574612267750542435984102119322607764564101001955431115410629355343104118523252495798788054315140381388510094038085383503818307821780092135916599263243610129226000435548401036099538207143366414365038349274414508532159268948147639968039656460418019919685990551635198146701905430408118943469885485538339388956241081273126720277369065842696345936228216144961556760408172264798961158291799337829167425403514374672838709957060624626276744966948828547094053551741981400973148091106810476194181050818572665764309645196785293935315381183828801945993310957823690078181238228034447707142401408758150277698252228467791724339921162281588478908941430637396429718557296547779857715717368305381120189541333974173782967057670491520424985150468783298848392282457941131748888718448889472790326951575168464469299920423370786808144695333727533660398283450150664639881061602385776120819479664564852607690705780949532846798240271649338967146083544352678144374074667080161563471618650031023139422110942322117062727288432531475555708273147122167188511873546932638784994805820566660974581759853103707205896523795249193628463903129740769975583684530613520597533425872095392876152379139698735673403812421626491586020082201752918647177385932809150301929845811561727512955187969238359810730264329287291058969101437145619152894501524154516176007269347752206172695033249343522772836137722519215297694990554990563930983774232820033415872951076248797806786866295676545736153876904295020301576596597994458799571663972315659538166399815492696428150658437496570743357893060192124307316939855661749345470510056914383243505543686364793632091402623792418269135655417220289106962709163578281898710998224999604739047799895870401187910897855285642776492375732201104656369148440329644040687598704432734873630345901127084678477980718868194234547508947062608785295977419297034237256363681638947913922255717026840442518967477818996836941239042446615443335475645340055302095182210952521502416613566024682467641194862864056394220075599523961190678949461189904675792748627659942425533260803354723190501820859908926022300287430844998252699207936692194892869279618084697261074693561446718970445847748437055512944285101070844708613282278896567994090673001869639321450697638422858308284547330362335539867620026844521035910775717501689839438926838618205601192108443646915169598019554967211163082877193048705013167540881641311896212168622791405465083675880049147895786927730895934448939223306196604433276177049763106936819620948004897450034606927279382941467583370149193862518279142588371281333715084141678066082878023340274491359487327591352961572225314532759210827581583558314280211121898379656197250088554610434681789926218178692206461726782894389453929081811695987548523090791814638879316827344744025217181457349035007849135571236158834319682419541914017008802761383139220131205579589633236888320149677609154765668250811371868760231195506150458049318160201708553316617923131961932881775526613437569555975720783133697559461429733655358647361095485466980001244143432126761761587532269793346877845738317450277057580403295504492496273950455145330234507086026244248696322857297381751865800199425012021195713139953520732155682565919949505997879606014246216223680696829696988650312477613195649119730839877055606139828014583621053258074325374237360565894744616567158609809019218901064802812456246937091348093340963138199179070483342908108933255995212368543237155837056490361455886858430948468152844078548462619932579268496430486590958943057667809775683476095062809023458459719711876394779872660592280426201095457668235792496012923603328613249451368012113496089363998712025898597234290446226119427008532848830373671990749632635250913623413068961742256892693779941530793376978221389179359487479655757170004469713638060314763029142486527930413418186744392322531049426885682271649569172334511575376957442101018201198920665710242142334149823949186308666685967779244991751883979605035894829928845350258191993774148734381324075116027094104127158988640342197836075412871576802606955635767251464007544988960169629098370703691585303049148044773942833443122437728886729247888929038557471144672765972755279388526766180398494194847346663781986437824332902593151957365011009940966273730012044455164245605996689094348471948257725613806748896742951665200576119310073052005658428595580851384393833363693543968012483504396772574550770586655500030370186834573993802945590769771246662352818202053160538593154282995473371777484411504142672487204505415747964296986233991589020581841511509353975626652219097762227669262885835358423731059093319872100465233793345440057579593562616038501296451078692473386914535157424965379152502116122318800774193954110002163304825871342721096110700233648480369218915062715222571883250244301341122297276910951502838385469591480202203368067171663867292161489247992824982762688352937327330622322500051257962325112184741420780041493940976311530349920005971704158114354536505050327847944419165609776980252968414820611235685358722359034877213713041316854984967941512433248787128214461866993044447271958609822124520001116105303569615541429837499974289027291337055689762143660070127642051762842942329788794982629826559045391291484380682848625620885693679999637172000650910104654762251575846600289017109885495091363512884646778625087066945826073639572045286855324047924632025988923768697816662191816559802652195679740350758613468425083505523287344882487201657165222668757082307785438979805842184464108479410040357464927627495312326879136766864588280022621508430218610213203510780927779904359747108518357223764522560683762686558768355205236622316953314025864905260319899011348936973915346965680679349008108057229146886487141112318879637838515746746146172433976325571781343221710211558352877093302443827113029267161177157662365058732308510100130698596816014797775938941680211120081045106364418607766849119246984313930207782859296647150328511878627774611650632449988779143204119788474244356352756415974873258273766935134431684147211869494398696845055160389249372248465998450368951070688367607815203468514568847423674529431391908658789180364188084489146773171861769060958000447979508490729940581594941962412442817352612411372681323709256542210163716044670148144092290490233261501245333907216441624310300259433142623673941602153653302089699826223100320222453492974624911090041187105745781445055938646837640890225766205195738297806097612165117939130998605813584593161627016648111378892921451743927723622845069298454421491450221428258577495078608544336708047262491642486151845204938979113091271031441452112710629360449652677694528282485420313403567176446605711671371262889897444836994841204662604121010338529525779923604872134601173145683299087634489791105376824213994427684034175804988398435635624457563094289075111902704821572383380094779317765493869098176315042715375438757935479189934378159003114410205304786511964335900467227689142260339861784736790463863341645395767377786011460854493283531194609628785343232717785470069099460209276945932426921276325003157569730000935032722381437769634322591161881994499399901305825968737396445310943572263852284186982482722833003268167184915400217001130094532943297016846767530973385167118369930694100193433629110876239135722305798464289237716548952478838206090612167404395549215036816143071207961300984713958367717676165990720051714753008622004928940545122360117891170249240454981490529474653455264868395031192614416298490501146121757232458511697397796044411862811697747350999063248151607808434006234606405399103861539791431287519073929879875280757246988818850984598951028507073727579654022376258288890376712085857865756446080435892553203680845597014848896462230462513586235132682108252488341246752934343050005904961754751193301696249012059352017511019547374362370533038917410669469791555865195898420121514613529532409516476374453797537949398667016374692353960522664671569069679840298465752890688672631420300110215499182573917187966220332198531027374751317618935549073330696888245418343984106751396496497110707977203794551843979459817645618612638213621968291655339564541878172010770449957133722255571342877121541259054132260839261310863537765805796248627833048650836268960296770326832364943752926080102201083508912802392642970960813769758594682691787664252975077289880487955955195451374812197765224175916285615947356577933794639854078895288529206804585338611117488345654224908856934188482510651723005476956482427517709048943308900720728541337771719563021980162230252348775513926202912102965777097361920466786006087941564123740274509178513344511023054294151200862113874039851113178495238265043953266277671038500298496820012576266501941108686318221624642043830951958740554663299199527512294403503384444318098679385572929791055086872731614368163309489714212636769737499576340429759713148548279678957406497031517689095616041126367669984210074231526221945942832409624752550211769830085914833514596743323460473753342846415162003192950375628746808063935628229012571271582427541576643245540934919015269409309766069048430945367783322201783302031718740606374263575277301379539782450574885945343844712385633065862071818725002969130500876947762771757679748461756263994628481248007217805855941605392268016001759714213263500627061965297364350129744196359336214311144951132742865727892055200625937133837649236575752573945215368680485417411050387161755643523705165412175166630361903398975382553314751193824140151164975594295584980648076624352332936799192532866799461359642109295685483015534654515541431610300433276791452910457547754125537064521722205778404309865466716110151850124045997142533977773399584151360633764071320619930969164613908068963873349405831094169205325615512388014168441048679281381905391166750754680522076958859191011101373442687669474498013774824453034203105339298616283926770148207253635981907982896263139037135646659412800538836691850079163409007282582509605588381234959730520260082511496894219594093673970284485537749893337428123520262651561878942174565074688374328342752750981177993281651005304636577187916341765839990549612135311305141834457399225092692706818581439582253438754754820871969049232553319468228502778104555311901585783659225239947475139727487799315785808023201212155270289591213393710452004231676792037872987154451586849840466909726190797333322885528445043309231187230342277584124803019807219350944281566450530600264304989252246352392193113412130078100163809771105184560243875298905429218284354053814695377968486602037193306002845997867935462855983009225286403099802009921123405630397858511967013468019353949747286441174653702275643231112044660652880105118416535920624510103141684648853574167919068759241327131947964459766325143464197357353445754582197002728095196015615388131919694339273172443985807815351028354198684120347511506143911460430042761939410882397379294090907941597411313141947476701194032353237044855684846754668863120517377010526775218591862883549100619411047709427277183245896815565544126257834956010073775089154684537106656648903216061714551604538028287748292556764920599166270057677196614977648419982395751111101989723525728171925905448825880124213888257507853456637785316289510079577920215135653854470988959188102340772087945763928981919480029628412420831104962300132134370734766235252177763545676392080458486292243838421224231893731089790796371043727765183909490343987471976133372952179906357936977357880623823871279795638455004415303590836360047101710662937710336458797836697883545794236221383210519000639110436932291335045360034081629626154061268075503980933042271633422233533638695228604882624850573778210762106565404798716292108676511004933053750406200066708515595894791930915606929824438531307836734884698505631766181356823142912713718791754903949385006049046182007847156021450208157811688993250362815328116956145056519497030984758146211819699529076017688312354444162118032258620007843116069940527349501937518376052007613610006953449859397529823621763791244016197926933271466724603512113152377208725359732419783117610051650287019491656746726812382530746684861969085838534454949378974727312875586645491754761128389997287043879570538062662712821988389569707489737654757934242794512509282547168211847919344559109056894235350896746344809843357800644041441798856832758651939684285961116768821878971357338163888982900629185150001775971171430744975345628543252925556907524247954306556421921771853719588712172049862574659786219741640586974419495846161067221958476498430658757152891542432513067497585072017893022927741255655419486503861281154292032749698201518459772261448002404450125526337386205917280940554598442803842821020781265559279382027583685853517324404257046316152971248593530664417592513692296027877655906174007630206562135114499478390663851497083303440180266010426873595360944785259773657514082181765508611286792840708804597950239558895604766194299078120004973481125530963187563095441235412187999109002072927719459854157465943020214767763513317834590993649781900651709366857219402292758220584276596835155258058570227035305234904288374791601067249830094198627226765528681395630766822202465200641530792524790970281755919394870889487533575447651169068026330506827350826393595623477100325484356359794976655158748933841460650659618649710268929574358921388034536358014870370485632106678623729776419511456692563860943722459979061050928540509472987711397676684393756141499132921194611997479224350358601634052368703014820906017002902641366037248862159542118650352918905593761761704651158723908797876988033337990154641509239684829535119964423790789097117688001943525710729479766997017470541577469496971757846607745975364293284320011602790363436511031528875028929454601950008441297837822169437860858815314653245364824202209886343202469276805880737852850860650052863616453823233090727203827433108514022099435237470179788538905892313820283725332949455464921228967435926714753941336854467706334315374986183453898801576705808575926764870502225793167548413063776988778172052525248277893942405281360339744279310419759262101072779128924067505219936710483515843168176187947426426094265213527152695522248562971711901539270363506850932414974189744006086795383302701006611645261136018829638134510479986339344319032370379866978333684077402499927481194218462518212817176511193191017021491448201158027541774600905037302707800965618097207946067091746113364272967480597022262151787676208647952996394183902288263561721881935589460605479644575092875588751961255663241588071017452279978561032872389719703033435354369804920806872688506464148900718780417125334808760900026620095056253615990605773904855396899850422199067313851148058602479857325799293334239103620237183995224298897539866988116230783177056189477796620857107775878909940667223736726558435757472934001873699599115644616017056711685436092477894836491630187193070682246762433213528166904073053269947124321880383014838524870705549229501334198549755419236656286484163781913338646896497878708906205709628520791365693810320558485896259630696483945278141668096043984851235508118466558075828590129511688150272165996631722570165858576562361530488100033201317722151124023175031648290523799876280150080533357303588485382700221607749583260865412921416325844746416666934297681593770615351842557752352844920873257644548549048350782549454270564302249104583782808726647799262626835272308981976329817527317456076784808076120985317299917291978239405923520858539347984845995290378732745992012777200566388409641940982714992711163371509086556068279346858384798205781521294915706858411328923988677133751127744333441571471938843884284063614615286351136702218172475971386052546297343883899910802478796915447609585811098162317753402852180570844982762689456765870756993426463001457423135566488414399762896414700460565422731612956883369717669862732844292209228268468567759379199510555530690012746329628636171005881709850043789386444972118691255457716398387330214339883289197554359324776828798904143848148298091948189546356584536404670971969876019252824898927214112056537760228436410751621338185236780655077832764375023039770496054088517566250862155103801197119005587886722545915131929064877938502954321129874685926405688440213427484612801799026680952900419456094909731237252600535066784867022051281443820096498287691548612154054555105103057051923116559660187510416845358509666598328868228160546308375116493919270758085956286167834799855016375191059233056990124069233818959381424900471316102524369920993662058689783757515445432098695883155604456996674787954340849349801146550167153285558156977367423281186163574778587956010109977971665482667433236855123490991314420338443938349904029177608139564937661386196628016127946359006608736804586988301029332252146563999906868093175048387108287032477747528608380217110535802636684351737398248817628552734869482874076731182115122126973528317830094297951359510945394745982236822778018389740721893448543818365650283618148047249644681723339461950875370250212510336933842672170746277420054366335839436592588230408924910496348362512138141095162223043808519413970258201177168301088678804815611635805485954397178826927154461949134478084390458101055592243695961895666610274066675433486400806270486560003710889478148432907173188063072754448290721922079740824248792307582300583443931163806080357595398427981782559477142619133410508575793729809275612721936083864676284761433237321605530299796675669188400267492777484792219717769970137982781455502889047631548844220338505824353479997384520886087407249492482842828946639061661943103948582165033902626508882780684520951993808457058095610516069342099314774507993489954747724432682945156837148898143855775711177603248559122893083783150238759143927195291649570226658708307328717577892775373394848589572666011294593801893717149729908658698311123341847977598133165089425227839627194423724674732138288209975708664623048617457681710540735543495296059889598145776265142208141992534056973196941859936130115446600342870848712391087297951912339628737406986961038981725418601862707092994135128810620487618931213240346371100423642981941812131245479677843749774910284830242035369891022401672992406514774841695929384586434835926302995562261151562954186832705726995500597335853534498651620661841826480742407870724203126394627255737155062592682015490291919244574827119254440593020581010287404807354762216441286739784534115651676855402381149302250557967025650255125409463963120805507711599693850201267229846652125675317967602661537046140519054251541486821741114469378670866952389259355849405227833584863498060691830156014988615003764020306391586172955085330722970467052679463344004481928709603195075863556118045461421789261119932783662502663413470080769800573169127896716104183395415046798084438165174644064957508020891973645400231057888088085832281906249781468194621712748415381343046211960659295664557564412831880949224734961706713348675582938619328903385275616938162435347624935050829983342733633096457892786308056154379012867797754855705012905101238291407868299428743146247550184772187464339002232467106193743980031461497674380735669201196990476079834551322405842401490563998235134026746198340783068155785114418708794410704419402030586498788573296844814316719255666099936985908709641830272958092197402433500380547873396179052422080798550955625948334074531547176704240001338225371468420474454250186372258302024998415964927835735793182185986677381241538344578076153692780662372289275626797069455097839963187038995122543395696817885279149480356445259430238281928749540009351228821455173378602811156611774502607389803315416876871496756171550159348899917401740817529346535609875728495155583518745171596581628933922988697741732116648275994033192731921244491400010884771608094928911656070376152370655808416108184219642609922632270949452926507751443981031471560586288041222738641899711987407787976074444722170609567565437147381043067731347528775131719929498843733729290764345414853333730332066617763873049688307738045690213490715617162659922477903092741702393908274058426646077676554181262974455073855725893544522175384696762609180064713553982570581412504621146504715703815482803144304558922084703440794283119686948354034065117192791642615971291429205289330937752547430619645193930736017522675418545939750362920029013820343479023410539956996232069627326095853223654448065479841020263211841655969647777415250331233367996211915294253084590640347493777886727638610342975400688181765108323694498702187388723372397441180708940986963835099297928874619157799477446023925687462804282805331905342963473250834994215486383418646517697107522551882205649377352512360337777781251496665596121826176647039408127694802591155443726588599317114533830254868479161169416200225599038820162615252573125538537033326531689973855318941906676725988579542600650681517786729303694419320964746354929784687704758098294975411566032798961986909392331111441650070106059194487664974342865503149312414161260091706220553773337414963240816629296229196306704367346781517569109895364984736341603087324951674456422956825368543741908049483871793224030226341232567488437876231408862876654613717493007837951717588193208330173780546519597155566475260313098687506490694957447277723201401188041985084926570421812848484700313795269169209047032481392587525148016561971938904787805041155373189079352405829063710633525226149296212053125121335735045968780051025712042792223081561134335414792635456454813282622817421436511962093818164269285875183647434555488154957378154019457423407841393675887005111937685290472593602471407259772334048691331708888368613890132552186372928424022392624830589886786964111993698135302139428350295439893024083612986467871751206045486021918047534009602298167766484130856280129431119234922656018548090485392324322802808812767640367723137371927881824129447823122552620345183823812187491830315024129802061917695229831675938061691107389953035282444240485413277182520881647933325947093222143255902116293695440667673419072097530800593491195935554099421801822961104864398176201202699072413792367903695949615692932121866995154706351812925553071809403817418201986558193001045140758796128817413625048075907354864332381774676102508081396621806703602373333630604230122993561503153043431184513573626480532377636471110072127302651998339137637181720209991038726113616572237074675984358738673955039706143482180451404252180717546410805785611518262491885054797091702721418387322200279359095840626341285198904731517065014064281283948166491124151411798868430653761526526236971358828872770591096410664065507085509386266267742311534542386849236669405711426957464777853488708699094124019022996195453221375044483265373533933507609188029637865407808956276458268915214802325799021896766571516920074357112915765151830655847837576154967745022262075263004420569969135631280832974761055526049785378053069245038866439492686315607228931224237842056678777289847169956682745319485848419737145895281547239394520068886211636483596782218341582773105441684741316249085961402387445379162304847959444269153572114756278611191885701392837827767517736321371908477253383592392491602663049003035688773286491402784505122130106926660794139822925228755589251693725885513017393061598755286080143547867455569042677055475971524159492727226282839057155168701583489498180079221409163150531840693180466844300929654188349486873014798010832989508897781390286202816785772280885313385277059934702664546279662704826789461301883589184435505077420055564624840344532760552657856404302823719664636284696714128243086519966419097868307896137915224817656198517617493941436262713065168396729965266461915892036206526453631592814819111474865039603030993153376152424051494213277277332833131277825238699472086962432098944075113617139982356928131955897027992034539503529638027137452022439101143574984364480028823841386949125011509069129247415171007178341736242570356560004040800404892659764767847239150145790085397648787444797991543089472915039271464832905775147117440802404825896619422409116327211155798182688897151397988416515161774420273919794865635925450650744962659179982592062770527560620878734245976063586362242863258443254503593217998644572538168622477176460834373850932474195666553660785525720479006645854664606449500421885000603691263570920348238207736245412266752067347763184041527429234166854944864571722700350999720858895968147205909805010906038727110039201676876157570153783395917417445801086799443348676512543060310478566213478386832972787310893496660520614776785001776984895262338532067821759982708497816818246446219491518818668550382357826039185886725755005179690987996148961761224229345606819144418189422144875665716044729126652633766280916771885979846411730343775959796212901784220032566173149395919877646070427706344380421511913399245439643511770067904862847778970331839486551437241040377834293745529383402001312282019744361525973866126072747828229378468210040687454695206713790909974396189132312268741603638543168216280191575443750385921630955992333825059837997780882776241831056019901982933781072886387320352259049685729044680199903367670085163444173703101707635182494316622221850973149469203844348401304299666174890404838291633563892476627687446770525582807702490043273733832500295509027011503922054246591977452662166599237484378275446237485573310474717509435545575428219756874603504664637954281239669328159800729130874290829021921332130687654261903952495134548009241936554072513494300022055334920687876667935458113301155703901747783585170742659125259044626212653464029626909598407939542043276204164944555759002328107076510915180878323920439949777028640687207522070532029958214464785528565333378874489699552944964987070445599132505873685507389019897017698578975532633181918133324876655544498483001599448425637427186389878782842828446766244567403259697415220975202644835788610956981426006165531237978273895999415490364105644917758890894172764991658214136602102901518676785344042384765081808464941226089056240551798318791096136100879052913726741301480807106463572665602607663235408717237429124263734265780778248822917145063457011088403585626182672147064269897633284331281185686292354851290261436188072316765218644506343050411268561676983534620378693963551316655275769267758585601398508316706183532000378696386537834098681427419223871902004120003524991095826351952173649579810180568928434334273374407448406479472628734183039145794881723987019475048727609631200263093579316193601069034017610661108656421400184467325991050238969661194120311567624125378546371490682251760604562445090479527564541008187811379715066570365441273013062405966434572904825673597164487437066612479096231736542577608240193444147152525454518199507977614439651940099422607794495152725269302371573943733905569496917653297485558511838109730330719335972264701785442436922608525696414034163995123623244766175902821318241332326624870662365298004911881723326205477754454866362207828191252392514142561037714464598777883483696517423998790216354767894776599786923974061311438481456005537743647584865257152164874878350371448935801644874389978773893585354819751403125573035497927214448307032036166101565553907779817453863429533671867499971726341493912643229041607405716843391325363517097826493968468359061416143868285789626832701027011073541354838934476880673472796360954166693597318230820784705368001075827204837113334784234413993295591226894723725389900793666988650354520457020183855964957496072679615372817668792868622328938781509786602730998833404684153822645508928536949335672989470251798866145294160782977227750996303614046763318291588285780167149326987232283769306705248664525805146644111273321478437712601175976174683902150635271038809449289831527316713012552678327843781510459037115891574414205481124598110367714913052598823282375149799613683751874591456714543055420813274046406512134155026716293140139387895132652992956442952841184732661763997494997527218806599681293879509630582936535203386478696684367024466087745535667684144011454777148330404281761973443420414016372766450500746732530598830270399425426381117378329328421252127876416047506278439284265592003615159681300285041507147070446211092365490684999136534202559258697611658844260054474355793152649819968137266825720712482846360512415395532097239463786176942268481565234950121566992772648353443652976882929184459882109717117480862093966913875274401939901510124642341936267649809100853251567027907105035946302822856880983606187467372360335034872748482161266130641586143666779451187889744272525260798903386527877955317354381084849909734742931761605749095813028613968051405561287723733582607734387896383396862641815025147366643109882142530907338576939781548322122928146032850720933204767449158991737694821538330047248594360483108787766188306968583294793554985122448915608717553256374339611966138042147098231876085092133752916289830524568459229634987120091737674509374285055432583531094848053639248994750943982623644865843151914762365355688789270402826181598584609674045305446565434872501172134063513425969044966240148582838657870580299530419947221108811361983780402022729369301450109137365684755004391453175378754859300375695611204352345854114597069175953936610863499980574617265236270708606550200326492895800500056632684977420901157267956196659605783401960917169521216005552495469690734834308991274102349835388118241867213694415155441256500095586481420344477882076085538390682731988154394890452672847017733882287294810467474074152539856575204649034949435765660414559331087367324315941819055280326847361915263584386606735174441661681661831377333629743285725633606284692913420236858675950292464047476117406438299872828263820012496324067659656811388675851455229931258605588209797613041670533794139862341778178704560752087296538836962860694403140307114981493700736408780244756915669109348784326844609768054841123978614793737975764807852023644824212902954041278532190222624655274238668480081857915376949310224773834915957918208482394461060636452626581897798656896438780497714275271229058001154557459465717380540667055660859986300664730768035748170786714384562692607613686456860841693308490046795786599768166511374013849450246086768884416559927726617355594328505389746055663076254538369880051334324190172751677640038889787993702245474241397142938545770467847448369698485808510693318125964132683966809839487208341097460400040031714214579954830015545908534067704782703015434970125917952897039769116990735513339878138432651746285205651517380728597665805677906754316920448704478535970868241849301765745073078586029670521268838534554675207558987089832763324851159284675547805850969228558189203137962461631497312445299065530554201482754766770217109358689400922736252181991229626596673751270662613294521807780331275169736350174950684653871077228125640629880645617569804043021515276779977539719454173444597786951264292747205175543940478486268222712330590973396328441805500540172328099413158944675500094937699083662727937658633754105154570894224729221144927572818855815909511939517069947276271936804979193067251745562571442477136429802535964649167382669711946800658435713290869978432459547200267371767855014759297709080448665192145060671543732684362730879574789796979676328042780612145509610973600025354632099475010981333845351276668325654640960689212068411636275249936248852275920571131433261597503809648213617655491896062208206911380374457859980312755606235978341916310871742583768897494029215574375612835395277253201971979262856571996403376567782219831438166056167925029329471095276744661767490707789887429315899580413531748939140973368575816337242223377342866105651944400040435477497759439844458329444714644259774681751799825512547730446644908428821388509907373611292504521636191590856540615443954945239724406475483537246070765744118999407261725849294625756828297980240558817057843810762959865028634381598084683269858325301476372949420785091022321719584321024208337842323879290854327290028882498427196750871552078793699758147390316308393665605355810970599873268704602492350927618485015550407333317398942510757857308075709345843625380986244469948320341614310087910897421089009915958636116346403022089723428792848164313987211571758062391861681878134479305517518575882059707387199199309934316410388462984894995947649960183373746725624233105975732243622227148518088049047928559504941542575740538390466890290091538181764487414715406521133986000700288759376356298607782009545565874724183912169121173465167410710385831132774404820861650351928189551517609455602721265362720406626430621132010033827380418416844342768164565203355360282618373604130885390668865760043264304668787917923791735738644910639398633064753253320402893355188559666612008631939978556656695153239674789479929860345063084266945845355790532761092900751755390852033791715525269359660689003679128551835887991166054002627044141469171349418139173468381466132574344080209824620662387218496297736601104360277044799115089294404805862894935346100589796099906355433219001568192091779285144877942983339446034225543891906030122353668617660299239546043366755580128039730032262184952116154507028542895326030996863798126519503935555602211818674190694328776624377545697271938592737665668800384371031128426600549707474771080460774794995721480989000807351262273649449552556498290331125799353934653739463414455332630565839703534614407727617470286852556560314770958205100272201351642009336493666666925588960834963680811423363531463544170054635462753616282174798025639231990291760908636982659064909178462508288261806236748915629293577984581495727659297373758654796864390814458635265984715917296455120460595293068649956202213830606145201496169693250069427617725335671328207058303635870084834259798437336677737327032964845531967402991655202354030478577730025125687099907953197529892574679286338120071391035049937153231618871270420718491336829449865108077839396187765823675469344321769618820482395608421919087769732431672516751921732169201770837992116874555429798947181668087690967724581161695566140941096065404139336932980566447977110711870649908743855093501606388970903430588753247692611323584585570817743644073341210828350910342648948341858896780632910891093898719978875132040540593259928822298513132665458517910701925702901336877398824534054214269768393636571024068761396477172728250994904165578870326611375916150019154892008376342149518526137305901231941683636648307436147269163778352454649759105827913495086697998758573644802251731876874273792872171585747802877197012915900448832007124186290197732374754583970167063315586786036013634258673993147875095919495441574785138517223819393412891075963761213022935615302333389285792140652978491178411228752505235104046716615586374875592653241906508301325104581364841783552465440210272086315143426735290231845015051291937559617085762369617582919892171968025991647163697542694325527037294069126243772888875174319264548367518308860567576042195130302564868124217287825384134089481994118120413232980495892029413273030632652527006836964559947899628748810079672540047053719921529085151352792162867894254018318020238245469778562149453061087088071529452333016404622145345044599571248506217875738775066816554618841705397386811949383472393149901675649590933277752538340683942585453214191974898523883995720595993932340517511752851652152871388433378578567920118042675586443609242817287923418564081754836667361017974806089848284095384368428682067292482689902075409091178845890586043775289627459683329064960476602446834624982171005930864492680486184026508853425592498407025496691898575280299533106702601337105007615032320706791291170545711243708145988467363148708432617161317342326611834215941765291484054652319591652243684029425629599448450679168609484420975675506665625500485810015541571513523248730655345174093070951278943364805897016311723846402921634742783071153945840266846431930009620051746547053921977946836990841053677619331700203028432808517386735577054855389741943738685766135716793521519864946055563975824746040177043352859308256710975844824108187945852595481803575362548181773354525914566619538807444060289271430288462889285265130265736437121149738420528418638496561692716367309773657429504223804950437192874403976618673420502558710779971021916342289809453624139883510126165862657158564018570192970228803773399519055263292351212875183663104550128120332371845192093755030348237227180938039055746165742833045936743487248178607858011631343154049187047089253177660142319028150927319331360166785498619728462170135697921680739840252648934167095985504290179201127390797307658533845667149939440730226101450111620160914989581590194158366828695551088554605971496176406040750898926247208102436756371342419764451596939991984242704501876304175714756624146987740860962887946790395284541083698162379000855745725608114182728919301588885785004042025238678005366952957703038610774094581782248829324770423842104333910139034468662242746539545220707779283511064451695043761874044089362168364359209900729124838820845384116933702811993532708549613980070216811366009073740042712939404926919106095992659560962353333615175358325319368976462875710732854609052501683193815042254150869365733577421952847719115836123690173005042735806943932525189670554707076260134785427385962039212449586941612391840998311992106469691825725570935051730465132694677739895577095287789604725066614950604708219355026464254755887018947881454669725614413582639348078035866667925815275258677773280472605040804277812465188705375535853830002314733564664395421011932288468817909801635614080642626073485540958327191289359198732429238162515657692868893194052824827387831131306662958873086907876164619686310070078466190003797398673600817605277141267825145450043915172549185289035496931425608716262544460394617886632424015694832631882300432374753860366904053848048991327812053463842446713996934329401764543121695602164045756935732396397162286111338263258250174450811583855639954135838183181787289836849533720666023726143644954737448097712074309872129485987994224082096305189272891683631831389335433588989907960797269364642449679904653509918634195129583823824337284500757268402577891371333300220617454767982130019649849363239724624039330034365629502863848823311771756644290180383366410921063879513884478415400247709423946696028782501146893522681488141388994539382012154487641249112101452235496530822733816527433387310993149769471358471873428900524684927396784803785395703176607557917131767316351331301696621325179794071000308994587484093866552952589358791539439421772101497285159197837550740986529890589210159499194788037241455955836402231659581491342709722398489547072154027507801303070903570921603385497340913050166374405913874825471726362583846705174125264487109292583102642441636855522385925109930512890791143372473815073427148269179015989877783563594662675817610751638024858469472750586180500914538007955783423204253253187728032798092675588702700142562237718132223138562366810462632406357065085693362397209053759023221008852024541512470577523690940301239189544009705293721239383211144329003457394029285736598609343825229563802017091130450052496643186892110960951632342527593709399927369855844454540079280898365977812916904394533770933882010967736458199100094208219618800941186823832440906410978110641494307006401566924230292872588035406021449186057847386951605172134215080854641401834065973760494966169702591565118080265727271431302788071498947887297542957876242134998480289802309230097488703208886375482081029135274435090665742144627379836494853603419595074694356971378549928020340853589200944773533663776406589166344334387201443875325957139422814036872015519346163784972540057155218549753739782337425054718261662450303321460718368257403461455757290381357571398889980070770292439160459250297857769277753646625751612798594595907969408228344285686255338043716282398244773263326264791913972131287835227665621338166609807843678257357629870234907235051147330667152160572983188302649505478916446979996690171486279290098058226224886482430256710064133090463801136088359998224342688163893325417179179598585452467629051265778810009370127725128957880479843732423501090481199911475353918425361330258359842814921681771469182209207803036137169104673213864625479201611138279373466563203642409736679978850403936898067043373993764137792907412626413423686128732030172475682894238746713095078439542733747958125845463730430862303646555551110736501435365533020239508384949357716568778090094263418715729021813187384259881870748938987611287014257606996054133176806421307355178241355990694793994063015979993464112440904474631274155891772180320765746379516609387294107796832043634925502812542193293533293732380523716941782410744792336453623184134162748625320515531990137088151600450535033788792972933986543325071718185284160046381823187417834889838680130505173667801668713315591941566356150389162821292003068646835570005124700965591749459670950742482230581936659278010829211233714297208712894196649730161516918706434965885782821821791202964002301962103407594267270437937501912203247493560098517370420705671252919021416589841276444191650576515546183271922137588685090352853438787355395849024587553639184420322918588009071520123860477462063231814633065192662681396736121606340674062740226519373068708669574868082216430226653261953788032982135931512526536769402272875040551888507806589048159511109641388167017989084285020682193826694474406276561243623625235746943145866422930697424563669801161709104218687126159303680969602337299366240279195603372187067082571795024675732206055885175990317268861593520749098255662982212096354267328235172839172667443359179809026080437067850984602971853265198573980054363838695996746241021061087314408054200599445166736888047092268742126960000042508743787150756151338749567925577865399112362378854852562159281235184654038315765027270728892745466799348831017530751674014202046546064605464780548343877919055206092556685660643036202021175829251379691467972669300615720779908726150576844870614723675533107107829771188051405422660611545538255044233764930873372177801769414650479382508317175527810618491136134479788973522858049907545722365121094087845777157228995631509811189316832430221677977429668333426429866230635191290790877772313362581346674050384502449302560555141459030032737103626522388317527473367788799349636055628067305652014231261451304763551117454694105832481290324566023422331827171102636313873858354836453247647973714909494016849372050913752269920654364994710111338573276505271609377206788181995544973954885744776270442961081025059052690711623347740457718877672315282993746067106153133506433605124082966651022729188729068336466985827049616792898504390641835161167487715074427918247537705997734197371699216042894327985761345798278641278403030768421974520525643809740152636699405411003739545738519235229228722948437724754577035167532248256452896142916211719465501376423357687248037726964715291034823274675268910324996913721157450711576079568512565500099122392569460680393193194472569822574455146912003111340938578467979746561499970105593050386398766617020008292275008904500739514876224503499956919046318452876240267250872149066285995335767671691108019080815183545590721353970396316593339920585689767577864773221406906857177431885403090797463499507576836436528021052103612280335105046287090777364549230436063634872078407572218604743292549284768130981625812855914081235918355808242301404834658970615218532385384124598214507485374006085323291217426901543862012911922893954766102604345654031214222849939895727039039802131498872262955898437773455477975214739547293100165112957094844012400987611411864234007069968710094675349654380104067957522716129084185262547258606424551944960832695178711336045407090325850117127689570695581894919750757263903513804151030096463259952023876032398648608124835100211697460025271512542993569806022127677366146456220308388931626297797545108376636918412400125701369376519602139593920489620647268835895904952756772875366272649768543084790708910421787544295346267675162563770178394001863983020569043549979464487881697621891116730881279897584153674060399178646768453132303919061746443621932218270529301206487863884114134926797696841429107681741402113102827876029532042291667911084850344408206932881485363359019119631017358993314713588831549606141516976324718247140127597316895568029139296646821299715749258021857524772552455019249690828018976747938272701574174128517820048584795856389128521803646298922950381724688192468773705762085117528098800017943914081456343280487853200286850838435342717414355712462386566410425350220213152073767269522543798892298381613876177962129405696314726739173539512813254142001439633596163351221495524016913338111029830433682147150453048222778361327574794068097724138956347655926659694604089832591967616060040353050154638378639649355203560916897226207669761162476418826164379077424256325377332927548795724009189733712004648873267234931802747658136906494566559009000668432453800443751141793722914112640305906290299972636446369330810313607757551784200145493597288023609524812365497425445494882684982515515784206149888610792486149008912330717338146279734479925323666346355735889792161335313319481665507640545035341792999821346028401571128273751601279485318507925247506723773467080424398110569700123329026902310025412244998013676325735486893741638476236451125510717778225782688410097418250664119378423358689861019417992441930207251715828274924835481253885243416421119660877609671860162860702798003474269645988797103336356783768696923179971686302505645108083200913421570841950649924384109371133179107757097527604711832987742452847089963220962012666401695482057009431780894151236764153457185018978519457708271431900754234348030022573685632965830488437732032259872027677761292210757361564438754644692620526247073555748488218917937134569117427364463443196443375584856381873290033530535256772678514623353489583753314145396083225320683483333936516455811882888383921401622701246515016204715725132103749545024264151117685294244949078998719761906003188235641730629432001611858049134581484008443370436097552608734356609037549650604343667697604333401249457287649253321149110719869343518332789100144337326422985198615058012732405183891463850527336278849660332967717954678007336500514033264130556129109166146507593863092544763367800104150052881932589624371219276407324535273127929414267857483413371148459884852246142844878367397172099091133246863931682958561174073244066257993591303688923268524234693087791091574311223048768528737065397198132004903506859552093163361702243801254121785765628810531520966234086744292588313599924846115532563199806261356819947049941369347465770846989997112179572819797487142977967082553536956937646354548068353824979434664037793652069408784671236483240801317705472513561427466066414176856888178580999475784338716007503378883004078946741163290782402346162459608439777910306419920109965972636665719011539154417847643008201067716745973438998358659586007978802673003205053739626234739129220486776976297584423179383232088036251541573919354733125279869964987828253617888644868321608437220572052992035861230281721245212764758657611823662520598852005187390387070458601112949400604390647221968571552579207539573331667841314831350191071179405834500441852879720439797000770885372820683282756811483261105443586276598948869294048438260935307781177293998564042361934166906229935007880669100147677497808743918893512557789168329608735372319601932030302782684723359494934661665567853800786628699525758555857420008886383834379086117279169982085579156219676692320707276338818851694974695708425522064712292556120248012743375957471640973509034238053693012881813587816138024521759031366073019392593349086200101372430546240188969864800358830220655385325014305458925281033817302135824124248395645511642856799107436971767984898448080804752970659825845945379737750643492201835194108859597428363922155423772982649208588655268971531342576142094453966975287815158416253039628685546432051349577959352319282647206337880791652616207153942359709205054722922245232040831453576448913043219614576245277448670159758318621376110749860828985468859184885937690901212785920578084236941171261548027579850110637693385749828199041182351611447586510017611407034836773290742619809733246831843860129247326276637747451057560395606178855691712791450762235021037661837148828295255330003119339655130131017834660370670917131803687310030871515591432038059356420122289780125871321892697665175003161742355261834050311344322848594322496522925438972149434591379970409598776635487031772813413432013658798426295815940516820248700381531492182291155582779930213925802747132318675092253673090302326925799914751317392071558806993344952719556366807437978553038322761776823390420486223392996618021805388431917851531198011001996310516277410715813285360742980205368665482385154543991077171588584581992409461521884156116737474941494232425200935007745774582051192362414622202399853655007636839851344729442911252791156840592370142851402495431801610372002476637058475633062623996050802019860675988678512923734674701655782659174614620104022254332148028589398631122848387279006687401038186150826516946457663391961310991441048429071773348674639120133413169094875479964319099712239209940349123265546389745972322536408909089895769136366766925443404003086562928715656473887755922545134057557780741695012717732368067567213893291528958326001966034690728009476464680736107872443472751305748954585535990318462784335828071794399164836556171764898376714267420276323530018474560354007904525859276716853770762263694547904308885984541429803005319748474852797293087863622021673438767548030180306883886757430773349277321568026868339385879221852895448804837415511557758044233127188484635721863763311542690917703597214154058731034430779019275008213141544860012207994269084997622010692508230701754284272715088277594853171953881214956369176719514047195872514006737979731576729890170841863920492179354692799732869822714741660737735179289587168752367170202760300227987288578310956021916142384915560793566238651171922929263598308891406474927151097822118912684526493415827576676180575526042799750656487372051102535977676790439065762001330866249492440311088775443066637834702826877429856466146595227827475288147484740893026797395325110076209791392518990998760623383826851353731419380009962170458067195154061262999649956581140668545459668352074905791498700265063959348057297875537463438815896842366647849684216375634287958914260405539550260987419898780826883562592541150327285745001883475065242879523910330313622677520660919221815957361411402417669780840015619778800882145665654874699785691501046204419578334125426492196040703631664399166703124967659027148129207772720182068487791553356944534158453204241507287630312143479640395081597975110951569177671676415643352711936840566895308164238648460486526094748641401737511804345216720584668464156617084009513703127144557355397790941305713927659716132462404993736972556314685209191787934767042721049839576365750871837948290028327671418584259834050781776603981296592344996337810041830529065067631302585222374463469969732644867059597841401241798622204307924982377575242839695502907449512406906638890903031920505555505434652745507861613845435993123652415914941503157136539912917546593699689482284547734484045672285980955985879069323521497252218578046375236308226363352230977967458466451274512699897075140760953048234967908677648467172046108508030649797211208745664110368564869913713434850102860173047739758019537098154760986423199757580617635659478694646557209956890383806103748906428661812860042199558202824942304451127224554921581268306420549690664667200202778950416759368912888108107175860951993857109265494250940775792364733472795815369469011341397278757460934920067930405354732944650387170872704387285001643870297371476532701621181348558492294736610117161912885610345100868387228329206300779233512943976639048551653728074255489835850750309109173513044726968845714317870454313401560664514733775402562666923548670256971682618179329974039895774192479686893451478581514397811302088210237095506177118048620236385659643729673639390021998062542745720525362168189669619184081337673022985896082380236952091542865228038817250091725698153247304666057560605215219026608644699497089131281170364582366586630011201962758323642076292048411648823293436183733319701377812294122377670010968424531006253255666586087397382570773132890539817708066425150333679627850849671859511126409170329048561778541715737770882414774093153040390324546115046239432861561490169299155570718724454679434172591095981650173763092075461783466492379324792611476952427198810822127422300829476728165793755224192183521482400688424211947453167365147768512382427266440276707839639439387250021083275082828951554844733766420295019817923718347723037493144012459298505139311401770025860255542908422518685105439070540049382391666417240553240238742017157282288532973185258034939567382618498226768645406308695474626908346348788354945438127903607462869964320866722883705606827857229974665264703471727414896965608722274494043194324040143264624223893430704899038982311074997251408102587036932493549922153606398822660810150254216685017190580619102091580969300351306683191367372261566809884697508411428938844228400866010478808099589325581704652841676941652572800882803692873339761060290027457748559750435999098383075705135655435495327841320470166199657421791469690005846485814493155956797233587432993930683725600767713294973008919296318538133704744186071156058182292714658061557876779887456649333545662728331238571672649354569010580731813293639552834766425643216219730915547922064954804955250846011866743823077051598383709229475840445132434353021302420828602973845444071106877837506565925233278969317899742835284244759104408370701387437519517158311522943497442115097028267472128476690610168365676960571065742393377119325315286794859085251113956357792670248599532012196772136347164249143417142935583286969558576070113056705346961683460695104671744316268266745435655575523099007894086207147674258129215619663480128284405887884632744562704665979313588317210468334164306326458823842170675847834982981621781267948210449614372264606424234961894843348636002091240066614823375697202776077341290365077318089790994267422683036247716068839638677863327348122960757978362000223327085402047479597145304200195536879808781921021310552457292718913973505636531466665861226819129470758947505595657724851991439723650116556959516900686879812530409282403209886651017230942795640590507892002491325368537307690334969022786927619457112775591292308794732874904614170921591882380967816339241321604555585403749473371905670035266188936624290323893237333514400733412247000699723296433471209497067373624547013299066492791794415710628178741658005435111179641173105744651347120035646415994287725145107916060635300029969603238721258675678375555182179253312605048401121667410240126902282597839051495361381548981138879381898473943466682769361094595419374334618339208223198487583014702086560965950098784736868246030702130205758150173350931699899165564932869481441450395729397505366945622560233717961648823346687031517466530864145112249366470625097369621200810828984807342564463690877998412262335956551057748883459100630481694078837957541537671162291602005992317969680587819345402392034329862557538212372671323925262395845405654909137812001657649318927016024773776825559341584709317760460215420135914760745842598181699923138581253542435126133754904064714519096216792362492626622633064575690889599790846295897618558253894518963576659785541590966248796064364561527967553150245950538632271479915037059900431687341061249588612740682838670953507686253976284901875693537074418426218188936081504118581793334964855371650660899424631166338272115416338350823739727920941803802951721264040678705476694724171218407961470121930487971947197053808820100205028235277255849045168824288819798419366363912960722206536318230059804819966672061067894696408708702839316991407075959983346359797028799776399991798177951910253282790049180257225402449799153488397848109954595534776642067869725944666054643832088855007725297882231482661981703747394370130653862982050780880828549649608559213403183077304628340140586265109962568348477870115407657245240194418974490182684837522507389302503883181629124213452640497722724670619058051272865953387757297014277384398443117619901038475834416914067484933599022796331153486262000119465027617139011891476054180521580240016255472641253207931233612128450491916251139745629105779666258093762900512565725366548137079035932165751820280201080443243419785031844150443359807233147833822423169560223929334459395757710375901701435208537705867295879473599402900933704079175015828961324088837000846038822515097781208742599940240738439193213804349015696522292525450687001340668339998218005561795143390498676848307207222071351121649027235946858058076347661419726325774131656110476930535902508659482786738521290997940778788802211503420117684088908781661124777589121478249088236788116241525595296012162473830084656330116437370237299657981723861688313973493351205982859538178136021288272819942116246862552781117293849700621063237210395019908519195205122800293262861492735803571144057093249168206672026089515382019004793300887289015224405638405687319658100945574535681334923216279178726256722694812469614985161541279346149827306926534528397672843307158590862562534427530178781503671202074307804775720770756865766706897982087458503349767617176202975168989507229303164401015042332728975268282087200186069773459409038909455265857070886859583674391929707284815393915326761807975514720334613190045119766716407386534904439597250853387266158454055892617574714782985688502641674827904554193400154389611655816023436848106424431079843879270747401054007774608656808326011368410418602723410619748038774474390016249156979186673991703734599414092460189305000826406512019542729354112838902526704830104838000646719728154736293945075414585453467843911396527786662303895662812498096911254046690265599881926760677686414877167008764887706605759998423022909262686084783082363265643477192776021940639005342639618575229422947946846187431098110410802841451033855163937049011701627113226138868999488925033617558904105392785867243177841175171061783008587488300440807570962916854087532843893911040114495515067165478732694932757162952940599448178145992956667116974464086452096331024877149004250364476751903208555188122078145965047956101923973027494756581468792768074750349125313832402679694480482895029789125598081039288628858915191646075798981833603617306984681441610785116326518867388374287228956758847542696214397769411552248628755523216516529401990702763153197924187887992360900498462227070692185895797833108837321114234140175976459113526625054362189073561396520258018721585922512142041687929034261652277514895829071209170167159229994504569891412854669421037345806496343559961889557616741957826026527308035016447676864656244003356817625456491849255042138773341617403659322909174138933486884649539128691230659395909637396145657653087453769582724320767085704603156567826847815460205067198504841194328936219885458032253366801884651352410332146418592294369143161832746537970150338625721695125036094002014154344963757821137261604647891422898977332236827108817496286388311448998484327150633423535823339818962117809573246393566205318532227854734731168829947700043794128831001534535900016078506437720339906815811520018050193460115393358907133271332286639751392236819371390139299328283379173180515115137678694295443496519029385890367341658036131498051044917291404932122053828176617976023976354833199302488205177532853932394385798811725839367776793605868428111530103683908554000047638240639701934931683742081356624978900104152091837817101152859963265584480720312238658126484865032608814796290743623544829027046163014202774758000142204420090866593270413392720165993664884412088792757429610721040190216401282484003382768251642881273365218374580278700920224356585079478141173963923606186611486479498997331794081648980041453610825796529385266592877981691308632769226488763980105500079835349166894947984386616097093743210284958645650027265586559195379639147425397704018596627324847088645455045690447680057491386072241708471369200912788117104830905759463806385828822878203903832207063059350881464072328648460568538538608386082920337991049092787525217788919240723752898140032996047655532702905582306975346861210555257177323181421990121472648681520015655247086572003409597104791152263425991003619034039799345237434002570301559431506593017966805948382942969255609687901628493261015867396155143843763818122684788683281894392240116853533649764724725235497937814157180475111866405600874250109275233852727252584313989164406334261493634822633433550774583899746201615402826090788374572368649318575143792844413464851977496290329145820047392929725958387496824589946727980917694881914131885039057431789295234134650884430145831734687359965932068245384373182336359329540878070069214396347684267707183413885128343648780451199709972460303783624351402146393365945611638086734276909852199288393030118718387634837966603760485948246210973339902530148154191596924017722047465771692402127270934403009175306494168947052718875182551855071199362615879832134973002779726867021213914533444129308377997178852633884931132376083993947916539746598110586479618382744226210295857001468507172925946571164123084805615117112081901804266886649649470693243324316337950694952531691495597358931500882075921979454464770609485282221024409274866215045690694168569206842084311268281123593651515378045442174256367310013186133614483009392004442027817433545942250841085187394764686887524935889374719523231613968117621000299378124413867682784869889253342106087652778406456570023746027770953822321349863209022311001303202411084409833160058885783473564429825652653131702950166935957087842727873368167633852450863881115825453793213184968237566296894700419606758940693118585773581244005377483244829757574656552200755317644022897352858219079656359421192318302718387247569944597199898183762147051820776139676805690352492138771695872747021964799788943541969350106274624784139998511264410171011024482944147362664613370335060411668812712374072913892277460026412446626900997740243377375827863061006978035723686466589492507395737366207854740330665071683096180598951898945920810727652505997905274296711110699505520553416531289235033219725655790002544663439783090470211674906214207007404544782120601767457983969905661570651572671705520092487703028707102026456244668510110145256046137726258786841180880805081575497468677160119222494700593147825729511690257958111849380893379481571116744052638009800682674831273039476514344792320464296844895858617818662946958850402234781351957932395519763925307144183718679829573591853195931717436496916807095439443119438425289457633786222553755513954619033018841646443391484661516681601882815133874052255986941573740178322099431479892148351891589584399446740432841248970136290046276408788883251759238103572745681573960193644331947945590867259706205917174355149109762804578211104816964741906148861629059555831072625407237852805630376066051139199535448944631419216803756312584804103000970440848238376095838468151262940053719031937114733970642635770094693987480851171836392751258655364450187818681474709869116563454385804158563883071261769060938070311319211959510771104872544482625490973998634718558826369403992459476035310788775023913638255279215345452125249519284238946656073577483780094481661732675273646741168792986704492953556134888763791644321660449621093996772895306287787017273289656076013486366194645707406475904655339677850528813247049567342768646314645182132494240381644510783641933346767027829795514022545227147130695359962147881835296195874781736963672644833924556142066798374190262872585024587835074403851278691462542217523054123177640014326852805017377973868651817881819779812663809926656626993680873112790067221454040661953642441399476396039889727672378442120403933764865774812968708191340394449690368060287976112662628987241921799837988164618799921944110100892203472686577800147593394304398826046954668017451171068096915595001257866400849266491346857837134178348909357219400245824169180359306355456847297753026480683543719634362541414825420558190497056349930755839176105869614835970702020693941830641758817490357966739589864926909619902025507936047206295338164468718931680231383163124064693825280600252924530347486339515522052093360298220033064387490497440106517318494217794497302329001232949854515140538021488665641947092055843347012233388638688151993217232353263260447350967282038314036544573754685301476632653929887962567674761883030260331051759972034779135550374485163474531655143393864664459239610574838289239650022589252600095056359759802687818192002472260916315615247350549031489959683823871076453067602611119525041355157682604872636919139181118734719395062881518422984830758495450102747259204629475774894396980411858820395528905945774707705923884916907150937792770906207676258128055085119458688643493772868611394228514788847169378258807068557868928493509544163412953774170898764976993819574961990356825241105781273532032554728206626629255499131174466763557467578610929373426477368755710389717853606526714562791530294874388508346105158014113802105264492998242271500133306508373006360711400165146309018109654703663993667508407413697492254178227486161346103309857808341015579491686291618890767361463219038123073715224338450965511189630888214642937561576120452832562110451467399136666456616967870978685290953906847587524512060835138893167139461348628842095985605284740271104261500291935340159534360043853539350092236105910704771321477236379362511617535620455569731252155027246807633963732685822887466291883849081409327087560980779082459797822202660565376553779049771518414327588973183195735045152224590261854724114847576939568846812171955182597172758305244570618154739845856046122069822895902323533990552040102591812238569635190762717562705285876539579739572518210326641544269684922741977327564176048696592792417201888394251849269320032700864557855072620737034833233303021681953006916844172991374678412506508053973103202401024609764227566058731072573991681326817088389285059060746422729615022051645322031611688685542248893078924752641326177418116201053899910947257692022007454603986246964693746403918631121386637769922103792276977828266842131307961264084957687630763923849642966166975800345184857606390135368543394163024959632539076624779718081070805742511699252392215320321377096435307864540220076402613886596397301022174976958256358760381557186663220796650680841017804689252310858098899799134543444285198422442229143435215315781309234693813721145420766537671261113227084865478831313892983442185225437947176921503089964807669920693832653150217876098453999642991064700158954413019722848643743987714064153988397555858384194051783583363690138447568447160116755201745142885053900324612782055318365436025397555977007591931096725675171817371292483945087089792100150359963756587685896098120366703407231532404748238991707671796531225451990033020077867935439774810922865715618833717164364543453743540936344890345119508292976380366786482012010763558242035121291039222912117630790102594763804580360977456528140154936753248804224288393103755324082190134430189282487658358118439593175160287575447779894030117686551739112737964640049799307257769518721333279673237412243665634264730202041552492196265246007382297037674666248675435372155948202460132168634899550107052796986992575239146122865413870856278923661866004073054594574338923197694830404471670480992146034200897092949506709056108670498958941884320872412358630622654167728436582006118939469731425410506152204593871336262281494506944317398062442032521752176445143065325496655722215220917310916978978947017726341357535773376033248401622077575545714604002676026031224460337951664431843372346110220895205325107914832978239698961278815513383993625542831258852074972414790126877548750216601825240378085503345787900588089246442889232469064647728419760091555438627760998567912332779567948463003297510104215741888010048027138744000461018101526151401765370829764467764312316870042496126196233151428395874486739673861823610414054794094976345733679647366648935590397578392595419905489248978980992676705069202982754640465514678100153119727006988762270872530026052102654735239609609470764967032951508246740166264213680026932220204865855349968417677740523644459870105093587006472703691727179195877504359175802253812748929168879940205316408053899907769267357002853553710152204700570745139670712635048803966295001588893941529484341422826384402335318751694550414631080707161121619225243145695695599734838891967624160640940828526195604368990355248560619349041920082709687493717239652096267967131882540689362139629363549085744907566682799260355834788888748664241268687506849532156613509236297175537623590710128012530535558260857420168608579553041772455960932944775972630791698867896582022661442921007802133030862602820045012120777939235573588444812677858790540023878193872482351264675633824958386215106187183547781802721420203615627824484628050581512934855031325919418607799258965520612135484215169245791073229402283160703506376757649563807158085902685820508121896688743380678407091803798836008978007962292353576468082132467761592270457116633303271929033435906781246948839883380614890877055467034115443807353601557510049185058632087132125348092202655079246975366464220711196420006067541242853044177842611569745067378486654394005849951912231427607308809782818008001895438564052890693234138785641454461386233411305101098617272337955138246675795105122054161677997716520855211301557696931733573057112150269709424624443880591908017919825509281642488184333051653953190959639122368649404912499816540929772383568456630710098584013019139541188616769977950703425857018229077123547338012926465475217929354944002781898936233628752649436381779932078705379702160141016024176454658176869416854045555073898799873290213563319887284891948408358843282069785917218692295929909913389408069724526845051128361815608724295162340319610445965398859635469012488136434223241193184893108403434140836878203431459991320394995246165067564776386484168116383035859815953825937228750452025727331127306766239114586141366606037186955253253256836847174638024277029737549535924715831376807237606142462684375303236617866024496583077132864498308378329489672950249016658157311994348334244128587496941192709484723114604507627619223160820790791593155347545530563839716086167214227890579868898817894518095038441906007686982143318553005908700511138699135848948813057800315319781497089301753432424517883124835210099572553365613982020393471585321869496574438873533489146974182156649861410770941644654162549701353044838308649911580961267553317623231595028926603710872821812896903050820235325105561174041739899537575525940163599286583607613850968238736698674544871361100585237661987734899330329016131645412744987398134218544764254978192352681437134660207678862246654212112989487338404010505087659385412715814372757053422367558738384528439271180193902695535412646778944455729958147203944953938376878991564811147640061841409360886290037954298531347754454794464931940816406394067433082277404835628516933706062749452266679599705367769664590831209232195391148537645693243505706052759268923081652685032213798974279076627314730819889220037034675936825862039558665048608460357457170650359733072209090687308050591955998267372716692147763411002959232860859196969570065511224170867966457814544165340507654246611838962508354410839140687827261215442900330379699753377017969968981151537673744784798183282335582242473813246328897419486646730080413830748162900501964890338300614037627646510256375208256179302967015266435016461120869305345418022645163410290216720227496175195590845262194247632359445264453151835206207545691480231139252480684217016867417626488253011176010806822406123136195296097167244429164069062251426681940839682866641662385960586342238263204029795447226678527611905686446487899805381259268036742369901399497161765453151638151116414638622365527103644283254041223597574720428427378609924592108920315332292381664258957338374863380738361412788299064035015731373967241745384058537821389900696625701025236340261144526554855422973542148231078034733306620898968077218082254960325365577101909374627984480704685807203465501388341515644620334427409919404554641615180035620178973156695998441105429759548805313000862094716814294475060083948465332266400564794973689418424935970147868509205951209724155131933695109739166750086960204203220216368427088971391349127156447081566082684074375984605193907264209906890553169549918804257334744445543753158123443760345230219789771469925430378068879517335429955284354288314661875260354064415440772480664776535166984349722670872319242720955399246184479851320174686907570237156771724473222965635640736763472479320796112141542050814023882155203070221950314182465884812346413232593699684040878543248653831951793176060821672954218379625078684681024067537415291251742179835174813182164214275415913697374987110453610528104018958535467723279456441429715879821846397618642030190527876875496569586365757352135039461734163763792101934058831931634353547860045095576377639736786602181555483481681446405808609300123173529719355536705515080074765316708131057691331396935686313322553004677841771154968606404098438270913311502208026750129151928260847662157232931047633201062134444214947891309278315548208369938855884166237887756936241833879609502246662008009831269404179140546745692947923148963269676911878689819016970234405460343791382540820559352235069563349087229575286024920596943626208128368650807417593812299599545790552056571510265933020300257080306079443011999333914905719081487665886662577102881264193847215223728463824213346277970898462609892290663923181769308551271723484357058973860937431568312661390434794913064847820481635371352149090571316676146001777942373835561293378950504741933627284515105495644935882573908480840135167123134425281062769371298151202903427326340326032504594502957373118482540658716432672338260396780697898060928696324535503627191518866358253351286612459860095687068094774939676188813583530905771808455824482853457207723180284425430156827805336856248114336769769008205567410586132953428330523379860505705765169544262421158070806087578141768094907374985230217224573204443477704562940527642100577961222651931158836564889210306073497009249907482164248213022838238380332875649009888074043175222525314985108201420875167128628696797560506892941344164095495701479332546012907412834307464269141650311250550256516703378125197107768445347537963866202567291772641511396432914911090356946769649941032281244492253869198146234630095792462033143927102814860306259994647468019991335086404860403713781735113437128654937630691530406655236577512660051814189747390240107899986416779751325692155815584146271378012094761003133455998137081697212156373177454318478999831141480458529822006779230422095148455327729506933173772317793965558123254408133871131496406152204873347026209058463785922571048024447950376016535542205953358599835395153866470030455174812035866963829583793950242805822069395809867898840674874744811954817705491475113678912985907787701579995716631335868117404172836341151540026616590007725878455852751765317936167718458293094214482624523594600912758532990567362385939570161029449948080606366567663834822712973295903499878825357166316984026376545066744350762159370925845448828571152507643746169479862516944328795199707766104983913423802941388537218795220384881336208581422510299283696716257159193244669621598549340738010923439707971285659669590484235413815135825858294689692078872292080965957525949479333903958536326949444714728026509350911249083951048480685822308701720488300117235267107858555153044145723636756874133721095456209321819345411650657160746277409204052991958994203829983803094552494640141250522235785947810165617069408868673688330205503087143045682878323015840501145281089911323259340333037359344145606773535219923948630894751740752636071361859608526344143294349114586676794183975615196519452768224609480445212270655506246782306647984648240476321503395901927175682540921386472877744424257858366901920494309635449618516733153979806044414007699129862354027861005671893575505921957183896013677186675254648004970451105857535583926417173368269016867396329003820148501665076538760752093271217013648022742246985694685956614750117565558779209058086965953631594811867843955096921824429718582016710321705632623938330435940492984813680520056092201987390368014553865206413948713055251410832138430781138358218193750452400751989577559380890331638106140714160223262685372094289634603005664329203271614490198166390111444552687391303094949196663850312663007888529901547453803316655910357197902539945746908076036553089089438072224830771839144245149269648514676287415560528784664562710556298657618800268517057525780672477206289538692776572129738859554422373356293871141472364909891802006464568239913321824951330911687350675704525044330646398532030211426267389492645874585818811346504842793596349981483369845118833870123974452598579817056210082610444644770916055625691256814066491872314446335426517366705168819314951519778329401842431726903033102715886431081265137286779131917167151663496156784946563530885535801297791494658386241599930268560415233119834939954902265819378316922598041155028654946209136638167232859576274179755484855236184907598109032812669058516923504026746446493979671247145617844867238666939287958700846599167196183559115971355970272500577967404652138884920648170542415013707070658605404035661620676694029477170120137122428647117723925776239681273907904243216301068470160330748363859279705208456982692634722720554465611174745685840823180498032386189970223518190242986180305567897180658155320031587947519671979422922592360206418924850943716194962571136034666773848380692806651819808215109448010297110680924355841106308251957192926945826321547586654860358627603867158461403143079046677165149202233934929398444703765064043667417622787749112591600288120763082814820439244919340156114575408444887924181681108547877544840734700277605579194980663013159590092782897388670785289914959017332718404406869401660564777859123409327400652693575732336731502673507757631115332826697237271365123753662643641302537752095979665538797403516300464585357743157524034577544453367457230725284077846073011199000634140452477194348804981660524119023398238941634061940180469009055932691534060511797356854401953505001413699236289156023019801041716835746346403550929103337995990263752555555037789524289267356747369930656895128288001106746411099813587086129513533012834737417424682583381928013113687537718841614531450086019503487447554275714128769024243614097776201568454536240611278843711006936352842331422204859171037038151998718841830841483608237805047072315412321704288677535295028799019122149816481009944293463039827203389324503009541528838004101509634006467514222350089634680687916582471988941712697322775135821905818980212699177694219920419267298951061859256977791655811756163210881532265486794246244095043146682385901958767453296293621280797004727168122567302260835642114810694646353055248419914889726024746559843969094638238329124107924454367633295393239121984467887322767305387184317408194240311256114989775200004674668386675731639770937149080442154382525705371972403502387657176222407476770705447544174995825837925357806565020354220352071449092723175343420475235698608213367620819165110935058927937369685778664867732774444981797291764795591533023620566497817356322297756663026563535540895140883938076152114955189320305190693357734722267694111151578412617713168566045180921665378471961699210754862666436601142779005665375591927644572914914654961314980241746491433402930862655811226656330431549367835831448186008905785612264357604694823188372525642377256277456096874837259288750457295243846396795009052644762290928391254202755931747218302710832900853132992311782204747734192582234625742652013943547198083004687923646423322193661945842665462921495891870864287754534802637810392596373235646894445488022807087313944336509274054284177259633299688195068706712947322970302750560303298180679621044509493144015412499128712086912484046128937557317192773077569400598175501020175864207973970364895197458587816808655641090412253691962220539959561502075285312948903442526796465301349549453752357713642228108384186178490502807042237423228983354271125675874815805259209472610705722740165833673638383580653065578108302705978226563894566710588465224388608508875124353690533077901468772638316559725104934580395111127797788782348219111743801706038369985115456014228670293725275547777902890222520942998938077266026726792743886867955540138481113157764753010906909120160162711310292980766177629249082301483807898191989552468806759741692383274796880003074670049399331087451957429648978643553957103153945305260025509317210335939584788658574836596778016940199611607167297633276413961660608092946315327981453661652999893926570147994959069854151393590096356976294337814630171890596115983799434688790753586660925373655572280273452956526025442160724512061237432731707628580471336044609205439032461535754370380498085545918796746738649181211627167390155025296253514457221742071830345347104342583580339270613920496147085584649072047476306349907367565341106730587555107264517854007528579300661291942125773958758971134753878992211174615700268885483274856522603846160222690355323771011918847175618680123536436173201468556451154178072102012406827767634844994928092045457825398107664028399743272282970347269881032057950822870482501499075238114245938048362574113490894174038436250575189250925932776432868591024177735441086847388659042280309535273145639157150944008599573435520776533296386439544895254616804552617795560770469799028705296805447776917762031938603527691982832202188874091889145667265618060026475037125312599465453803018247761235584401801369011256494959600431132268885557035448872582139964714424580463476758797570163832567863094634687078343401150856434380622762911635897103317247806245346672752371960930356771618645470196838483538943005101589538936728934401210989732378292411429092398532180241730920372562542895825095624788660721231181079690488878252925684952018530218336363239141255874845775870789998040299438922719274768324823338262517471757149291470495406250810194531098446910176738608197052053525570019777899522566548461547135077827765966065197727778117831450134250893741306409882950227385669248762063658420910830188171179647867484238975899219520993442777107327188533418464747793746948718020530447555780271746645692315544752831249786593212898820823864098534073728528513783445124053462902920419886409042195605456790463632531204661260679502706481376436562033473507599295791697767482267165226680814933722263899964043814470739589663956993377205353058120937394344176191453082899982159922642742659343891222468948976302764218430125694653464049906776802846351110872416277810446077664726792778169469148934620016956235730868361782848641918237034762200814010791135774633085550564441935343447030782622032260054619220948651100787023588266383565734432242661936354265093311871829805600062968828263322028966021997007870382710632677954105523316824493514401946694059257833755999920071939173902628188261321396038660390359881306216166500950346270085591176166176484654234905605076231756417835747943007671079127018182207183584486121816910016053395778882105495403132010112080362558796474779040563372655763224053327245703395600339114614558145420528995881027264614870491052506201627659647171530662439219604590989822937579905258648254042993516755448248360000069719044494542265375174192948074794843844154568130114614888205255149453184040315466290720979823635359043770071495243953989669047689480164649393699343897183995345241518033039639737328292110551288061058131530173000366815127188202716592852278614285036024617749516506470803371381583725541607280842552997710982446727817221001268741215735880650179956432367965864762765649081450756214223072211282594319098407691365849758650180833244487057179237895149158898977627228699493627681479586468590739041448609856185544755125418889528301085118789427964022291202875197538455131152477769777652948144565637690186896714915366868288456517981693788101940737747113064331201858526356196214138979412871246827624031959759167137003739858515142297732104563176950909312664455966697710286324002610677528496512335931122066408475850051278894548038458533760478050231592801596202846589872654350309690558383432001527211841273893137163370792183960738033106430687872645417606852731365171042646691267776329907308101768217608796623417917728501523923521823884312863879616757752226990674801711457510138729990506563221116882927029108654065181988164348894220719044859580718824253124818287232835106619035212614249174927695062946995930300325489851613581144806378376594244417988112199521512273705588331048680689507652487539593343065004000540392934218747912053393780508616202170890457336483894193199367473739023242664198424688313658284123174450886457265334153904560366221683370875228991452016166710131171645246641432187690915075418647777209399719605442339568005667194963703791582332783252911761951146428799515455851728159587865680903102126436317355814272920973857198695003265639166651176603397785727325608798046585906317097804062171789875291626957010654131611609219173575878633417406348171167863032594522274471638453034017120703165828253751067027403218891276684873899740000269884957828700897063564653293573963910009668783040134804419104979239091285332296719425392391350971922392817615423199737693946705668870303300438858260585340226020806005116256595322102994495359684520063880478591637643108053174351136346216384984441015817591086559393647860408164002096772691832251253348864593120714907584069293581366623242481674959556871052542164542162606201793938146320507154090664677503811145699088759605976128989949713463787069155235194665121827609148758790093493074551942728857539656159470807643760674836179161212813155850502415997141228411728383495091323378996828129754899601250638906277890153382907891093683951155679942620852538453519290043388749237364352263849552427187536962986503997260407859280958868817031446510791054187652208417266606694205930081398080379146006960020666614726193382271433400757836842981938859120893585663543397684800689610941430947566333153512531696089763165541759721955438997234686000794235874804111256537699002126231125956790123195314368365619302512877057843662996406842356362861684984999352342387358578339330096722152416317432247053804368246163002890685464649909160700553451990229363972581781372072765133538105316169991886725317673925088526560610138804993375160634564004291359144010052889908329355098005556104455780466795195695981484865272392998870742974710650175500945679152053167111269549048947752039358218302115541031784881113428155843720012172364155180833392528197402698697449471022926930282540188227968790680736169874727749502954864753870515362723703132764195145064802251187810392147556049983703986279497471400315334735583552275219755057192818233953756664905048711063997449275268521087653045811889824898173694366588342199000155212005602076791999278401926290448642547058238663129684477148546509373182636509674865198318222978006161056081755708960628924842320725377919283673771487654926617456600442442683877001528384771296581690226308124284990169463255573673662999238456795159880562494125184725632390341375319348774146963796262194217973653130611020452548045321222826070542986629156736419655141010822953112063916808883524740176773279863252077048823224807451601288413084329458286073086594431549762739248159834764213743677520114384647685939187230580530334905209919046200369723493994192527089661155973105542627397871000076905773348171080826283161334224247181801554299853542484918490423139233527963517500365797626325607508992225657657503694986678870268171046076094569371704079246077331643740074267179893967602020390747082632876951645934973628769756033578483745533626818946323963337942399643652160805036133475460583457083010547965350255366333583448387451457836922658134262123387799043993912168943654095044364601821667345588495600384904409024409975926213648331438491694608841146590548887004583713098242995873335481946017309376468927600580987994143137094380567358186752489548142463601388816447148258737502405845125589103957045634996217681584886600267600905054522631295819587574019131648533598296330372398675575771171486034350650317323045155836496944535700130973345966478201287903710601550408107952222131865821992036972634636553487109986080184178217232079262863261707310585158402067166038707803554294739439587599097691143594893119173233974742387476193010389381391856995592365115388565958130213926974263439524950117104287453345394380579993820236429485130300195547916644873372942966778062796662355021125456353616717362271087829991011492194114612102148657590265598727086702754462928143224698765849505929425495539440192128166346077382201633580166489023138403260114219357226680239072328619020579092670272771118779484640550280307159884850535598890992730473587396582718129584564666020325552104685454954142096605079610925615255394865596264034209415671627412633415053112902208128096306842437651310020668851757402289536503157017511447450456879707030532215971411355224820699375855857541184436479020688983372987353062978036146294725202287208924190764707979772762159768571320473351231598640475022884640563279802827918266932844555674639974434058628551564674108451958061904669414799279645730784925189208808898917537516252282392025531569489529401663861304591297313296771130711042723641969544075914723903431009074527731516671360123220394338227833152526141887958391403676345613305396233396084784439695711109422455026994321973422073151996530682958017158437968744104689596967944126179095157845659203167867328856428869030197114489920290842899571940128657436898840829787725742789936083575683964798328278240375453045325024872832233969165001993982155230559804748594191751581911353312071670836882618664180733119774174841066184237715541027139011979860121513843040957918541089011289571377155900558558758671383745881553790219519501750045008345439577531910995521942735056753465253514526579229087943434509176539742911742353467875358844677065791780574955825992732934413283205075835849317505265265258877647498540113828799190385698145706066495261633687944864370573744192579252845303619400118584493555988994341094676893046702631239292815158912851922354383051345067673296701432513790539881622154807879815329260371760857539187134032679653565912824233031444063170768687505876366448737660106097797009295219283450539588585129101309835756676060796216627616109888008861281758487054211316014606930878215817203514765122757854605326717174634509944421333915043323276513627592419283571567086667695171522654121331584087767779212629679438371284785991731007303556028391039459469931536006625808126207775518478682968302869723522204195284981631718038173799908174493998920610119292341779101312346181725414710052242956694411872550321275556681706293676835152107968019295447450295718701486313032703613821236589385900205963608287706929171422253926793395332817007406040072042404339158804928801943313145229372812440427864503989396314712293191549787888241466754272293972909967365865782138545570248334805336684574738468623469799444116341329424584225071883625702865414914032416441133493231214525793459563245373194270524950174370567666682643650659889589275136875676058924940093792200653878602077198060991056336017699500065057869521585340770710326461315199273609713106320468006605901415982097369021954901530527381852163304174748888876476826531854036137253769181970444251538138717454646273672571274445005096126037510559930937900465025546122822436266570818319368662777437662457847388608261771302911879135690338964984931188092160616018975547462371786160593806718648675582575866525917167071959181646205599449957410797140094564044507683992051841846081502764386526815260595217961105844855471140430623654515587015532488406429532260363232279168044499325728727327511106495482247919817762123962615224005088169060428933710012778460083350529742810602587376840128901714060918711669852688770907368088033802297741659744377376641425011408089626143121942253953516327302523649056062972094334369225792973426002753015708216250624510320762708460223528837192864923196236614767505792598859988434576342037419286402586890287090825687981035554342337723564378851254750526343106344052771340823814103323060155934577034997263309297374503584723803578665064590331293459240248962864086840297075099667250956876045646879404962539755134174820989761553195801987235170003513081839602578776576551372199489365907561677868262891192860409525045462301754962102513226515460035363460572873240353124197203061349767717694540958790664306829247079349598537461177833726989307564215088132928205069532169922727875542757633148467754592093266979624997641346195187678798715672342472892158119236947596762555791978248322893267964508171538264835218458227233910106663867284990817777600680957279880781320698152239595873680171768939238986356987695626953356565601431164106908225993220340480962363759367043714254080309475497510584238791019391524034991152718901399564261906782981112121510546146544945264104550229737168958503446197321700486487282409586724772792136979921701866810770532044337290913730939657522370859461010847595035444706095079586703814904237498743525462890852938675615046868257386893056270149280079508664744425000502943932895111490574960604129009679271020629600295022921328860427199785918656953965437069664054020011175271356034188195681867532974979067710351982681210006206889120388924402038381123306537197366018905126543042809661413615624568298456221402810021170372979607376225582606909084296973363647888651801088429155613267452951572808961671522338819500266847676477096408310946240678991098726455158905248718654798980489945491681042387724424626111028501137179511613632388381210944958638320676965942734947470188552763664778214589311794051868782383856409324485124788294210150607789451040011238280059518480810591044981016891768230290165602222618582619470748864815709661122253392715816239749684035090916950325065953535343368433155702408197646773112755636287971467583158306567947589878595617786361023764301264817996963619165528270933962007268573742728771837964393533376811210054839074577048569152052181086390987044177145351223890923939266824205853981270676939529402011869680129128389849886621308788986337826388165469053441128198415918991037070130152493334030609100033657344716451222781701130109137256886569466429338692734816019897889062500861738245319784557096263058413115122716653277320831286836337179688729677070256566617036747652749420985244316363433113578191744555312094817553498490803984824719370166807221024015530001885323459774945634451092049201395669323909282091856491520381187212711759426486908765845980125456310022800308175217214706180008526331589627853356376307656194014703878647529874522978375425654002578339908522644469674344358572042913787054931389046994017747594385376744564325701801682406609486711559339133712927551662430331169748975148164178725452849910805493123659209117200752167056323461569322968624311401620336937906633671345970010469384356541562188231832736975594474424856008566359452029187500794196881115743344426682181273287974858882056636047942415678641087265819478257165677060490240273269724821460947105944774964093747850641844113648626840022486708458806178567002601731393772015943025212997680590485813643111438475483599705729022308054769873076583399487905585136541805933798662357735492635787872259822197286392714561675152778389130927913801535754621125558383360104571525913595143441184882374413100248867189161863739083074865593677649043089255542040191684296572899622883384176259737521886515487243711344764570302022642197655201307195338556289978305908093460916402653953812770139205313767440176519192181340782993700094714924574562635852746758695230691139464196270015715987980507940454750960769992843563941745293116425321053182983862605063704068497888238983256297401487594189367486006887593578073864144036470461787294590559331401683361993715679288534751814945124677209391951874351374854524942329370718791538219143247532095963653687326633261591762167480670848131421039854375603473042091027118554890638567298130544005029064624999852325471808053728018841754497531145428293321390485123604488944618634691152446271383324394171906620164174188868985194931605801462809613605876532062081171764824095763404818839253403565653656664158620950834054944136174815462656351170433195276971242493691144568756510615648968471941512201150211461113160386939575123369976274459309500363226880120946916718340320208078827889169335494402336098080971224238320130815688222864187302898736828248340203765026803837946336818043513459880745225663198477066675920295757842982958082643781897784846048165019710991265302422493810478642690590902746415350506503609111341994907063231380285725548263399738960651963345906348234994432301076063743578780435200717645509954681833902363332272817047157495390130146059242608527668850995757278803820000832275924723193355368341527140486952760588397568182332513628918848274847213041351238779288541246929299494384081218697759959023247984639979277048640923794769584268289174498169020928518390733334029555262446425676316005589177239969167836700842124313795225790642104698466766067547771637343764922585927475568681915923729440311376879097810529554512373464557704753429683344690730887978908252374201771519850015735622035974102704303907933385445205947643582578034143515897850349079315671726020191307643059506642082075246895679741397586296053907654608383158700605120789553484417832157526019776043113601409446617756710471299243188208516708190739283587569849668148367974865727564857924971123152283912460068244568740009294219846977358028110442200517210257425265406562689258053513125589758496618025339838264375515089173833019121972509517019560130043666964713196864271557439831731860920963535827359903161020512812931157252177600908974981465205983009410386504152355097647713424740458907234566897265762843189743174564012008092264982551255969566907445688116631543181570531665558282358114799447102742452585351327345238397048530098786889160011149692292170303282285194736208618430729259735877419696942978127494688838039337979392739612869484582762294371820211225394102398842243102343851240207866688625288719082561316808781314630775466473411830589471030978448350027247253932259055887564292260127320877267624942489467136913670454020224551087160217363835298438114550063855905810412548155167462671911809077050345650489034947725312274572082485912156127572107902116119464604091133784508456153075852941732356044902721968312050418742792794568635221056981601969130437219021256657325067040579865206844737908820282225479631569441600909288201630143096934107806703812238919441938522316087049177851618588882099274401997075743432201150344644566100254267874920641278908505204413947547429848470710409059170451024304483387905699612951029604603632594878656044305758477137348054923942463416545349652325603814379493518863454580291791875049480907998548538450325094431710644831084242911139914906060241697216028413353173035439604121455550676555684028819969530693044510843643155477402956935135311191185622163843895028009768669939114598806050256408257124258374266504304456642356319776641705983341940888043233193415693196267028805920017820347830306496240735981723640798858930559590644699014137575225870543631504140789904154966251884103942562694223759652244018857187629952893796395414024602755771581122925465966557127200251945301507744351204576322187718927871892469578959791798672386809723225150857923899801055409757888887085525122236476472176263928845788105579301124628823467158244349365122631238430540003638197279656806935762502710201668054211807262857538869507606681422152306367220474538975562787885062359052952491788638462375481108019062397660354115749352051313953377418191632143632138066263469390812869281872429004935485340812181986759937558587569871880914414850570683653313503974520121603437893201700597778235555938923391197983373010086461252208422764160580077856046366678928916075259033446254329426081238462191741025343635469244823072332735266883953413421469642846552907455749532298986986111775518517661503577824658371355823051019146347599928745773374135229491436910386284839043955471707070933983182354806961129569766233573149806227097553963621409188314100483221246834994719446842722150309623781417286469177200929314962273995291737666494649233387658110612267824268882672393782471110729977734820092413987833958487753637777885930610688384120945493063223184935593728090323194160363838199918043934357513945135375465843627086382739265312099636833550541361485080348925619397093438388218219617631873218932985706774953068122815747671137932303781808641692735287998212872940237300047725036861243177148016916584822722337353670766701599234240761789389909433319206903547097884033646044243795408936873211903802086954693770384680490236728016089553083368497357277249176578309814547034087643997607425159840224021727162033699476808896002447084008099637502034070819064199923075495060486129405826157612601683421310758700746395423800701679923782980585625188629102982598915334242609658430001098842484429286286400382934328984778583144878815537015279794393097021735160572581920692535215150616988983996144453972063372941066961841849458173595911595360863233307789588063350135834993674369603560299602890689533552463493192048098876421503154155226344122802775113769940423554543584009319534151639713238895252844881839307143198470415596992545803433658952396414527395403636225522980572191306498471178959482093332410482646789556073063434058605268760531512389925701367081484175542545862910069591335826600375484845582718076671319512301059054103033984611984742374633292893325157828624099131100432058352592991624820571084960850011827320754400512770902059600367413675028923748709703337760641466608611850600442572781475284558867842817342776944590310514331575585750936001786512414498375273851228658958647123236367109385075875907961471486811609594413693848537605591072218317845671734027428796769224783582942825187759540116582194281601779926046824574638865757081725214090989837823125984225417990021426905765970418183304890435333005382212568961298302759699892463393670919926202000321616661143484067596078609606134192464509324308203292960493758124030198471884099333961167350103278563631909541631165305559058256066690883305758227881062876648386325107337086428358973874106600242233514288948421817034376865571068689642909714443807540992132525742932371719394364427855861442747227319141154330328615708044999537066536572429350529798288639905450588829168301701197954571350356659378304204188641534957471247815557673244625388170102578521773214225339940680971725420983006026500550220382254170510469851736249764686068562066930988135037181023970857961281528917410015620515633931240657077903444984455592989957812373995532866039809144317749943397106863726276613940653057361846377648690572280796232743516883525359418293665345338462222464117916216511421450672786477010018329558742964351058795672455709370874241877032786175681059247174032555577363029809469876723813854029751908869684610257607569134500703865752829805991126854695441007338898637109164749328333997938799153967168068880210671040081226866132884356996146508011485285594191562994136566585051685688674136885055706577835804116271212958805400966679019875479317263353106960499611990128854205492278050026295021633607490108280083647846293449246841418507143368526000208957377034165345115707807639890876392467529569709688815671967486876804000227249780089774840385076959749865443601546523517635666692831255619140202769428535129979324078072185780567333662723376301293151342864727595701716903496565886845858923291185262708451610900007556072604054671724140771494447365749403592055465548587974679891577774561926920993837844364330495230723696356741535034143327959166505803404033696534510543056244522035917270510029251169141080124425850921236290302176132356102843041602938857914526828798923441773886847182161277550844243923025446034777432344680173382613938545679809703144879975272985626677279851156610187535957593795120860135777440359469059187447557828247780656218222478181977962040623029510691460830057853591742431417503769974919230582254463116815301737695431891505825082966475759825517262546234981635552014012662679773512564546426367307778266420337754720245287373889712744420968196596356446837304550277907364610334857978429383285263762968189577447525005639837161888847492762755025524309494572520185068490276314834824894498498107332670897481193842110025685841162989417339941127032884822537081788172718691223739813094720433689712472074627520572515743072655755094952916356269212555619473967276228644667241426295058286799127678765386496030489629775166036015072523140845509524124506429008575626046876715425850665578170547756945875539276600233145283470844986987438773417764632251777129337724763691360413149970841596087079175109997002823481619441539981008370796972671024442020017940825820973998491982935000135875763290546367583176583625624382298976778877064473675548187559829864273653066176835524154031295678008166130840672719715926726874958723011170013745594503333421927006373182173655189806919105917321522940652243833417120641815966657836334312624163415348709161111820234215946735978155848955977249728946157426302104844067900596208508839514574338762829559631062244326331639211215904694250414075213866448812353111168913608529856832866558362486356734586170708686456009122033189543578695117240769087258004000827648793088287528256069769154008430060388672720157956978022592726243858868057276646063599932720441621864382776358476343740769283714256380957750253079078809893740078932421773075318887674078364861786897292587487610605026937222365647774320088627891760279940821160283227556121309534393109894436590621463926845030943883551023598766507562053344508108609276666647170771334244542909770563183879548176439154279835839197729421595898440585611243867458541484559049371102955506040867279170430924244087600330162231061597791242450218545267490863142273107690762000079520609448512236040465717687357460179921232491793537503634576342390931900184408501955863760466960870173056014014785905220287460765879244045057549505861281842217302425778522764802872913431906619092201512290665433382766019604567831231130888343042905093894948177175231347966627308182875037221252619864388766975430798486154657034210691086110006614161570645933958427311874489802248592899449779503987902092495271248198857143970455249396835260073891417185523900511567418654803138174240100554398977564988836089786486093382850178558716468648543908165291411042967413233734750038829572690904089712664231938796007904812870882521513465104081196203925044988860974587444788161411922764842071261456332100420029198581615084731412340113326534789985905875498993712567708288182819145327901135664109277390197380760834050228996943922632256408965450728254567618003064683092708397187775755190849990350288551011330458273428252934252975405874558722188065440049705792579157390930790372838714765266131559103685631676634710246521397536979264867140781605374208544730737082735918051249417823325647140494437064879580667369886140683243376248218955569887824634945485347998453150853617983322091378660841563062341174517631811491070147615374134432580627828618503220446562667969096613942917781625145156212422455363730223829286894981334466544050238761447281825224894996611026201858236925172259690312609304764804956406117197022826910229222346688960761238315074372021931173247106629065022509003884154711320243682697457879714730477433468231239578599823280196097859557373195332303167069426557415365571646058447041785586526702733669069542174163210200284368124934550216445980432704870795532201203588456313417694335064419063447439754383277047442913288847002962289517038784426674924542356899240678700684447582614122284855733460640330053572823298415212491386325141230649233971104134600235986159344652276183981909646527947432958713429049159539476076113258178350199421228170988337697364620940707005677087544303549885793322292258151677416025670264228558977790313145213954097631286389024447028766230226990839969616259600684185194914737797047415546047480229963984160385897388126264055932287645602708966000762638096151310599829601398959268081586788016215574589009331110355009971758958625978403327936246108583345580584888372335847631354408078344900460127032616168720519373206921371377576409586224883135369858144467744519466333340308851523684964157327626377330609818235309234038673963707865364974804421616509107020069321640684582120846897398644604113159836261271128635535970094310402704701003114396425151544636222766522992339983427210460237671361606800903526839843048022016974018899047857144477962450483646743265039465490232932334019633853812062351729328990165259864431661165526181902871873833128787187175038746406104002873784804117794401157643097970104757344962228240152895689636061598219090325096588210769136718823235651522074819762578980574451850185265455686645451440295949281092054192918167147097125271859612985876382815535879251402289847216546966269567454106398019703382382333017696492051080508261184884791889812554553954815637275567087393965416447903760808665817647673673369467575759236907507946561964321447067171850134240365316438230322188887979323787519614478069525906123723324668787650957497161589318544418907903018385459195881573322103190879155300652258387595394046167359010856650178010236947657085914543104765269666262899752648793028515242828585350795277121552324279933756473143827073988091038560301242832974148161821108114733108477109142218286751580516183852080142560932457505932388060739436801652153852735841461665043828333574622706337106869925051631272786947411876167014657150573415903065565704527045774208563972834575998413551801000995196813434707973471405992712584127724079269275746772704439265366465998941720233988304221994501599431911400081033163620383664941737831080836128970093096927703611966979782126011173028825975187185351911735616527694351132918774781445394430204734472671378587015183726018331593264849523832571355760466837670069417768267754710010422108146533266815353762622735187343035036829346092140883677605003459186230204491958555607075427954164263516539736970398854878406113638864112539016129327482597462651335908291075509149511560691819319073404769087101814193806525205871424691446025956473619144475684587834139220160575188159645765433224602121503131809060175129285897825810633905537255308966537733577337347030789759584003262960290139955300465167314144328667757347359257747447088613466368441949745796234252339741039449051717366957070692991674436259468144099807811533505609891093590862176430164210286072075988404338498640013976976665494051349095193069413911288465819960360786829521692875634533146917236243952635118912025899633395906556313459796962090365009838739102225618346999840526763776172007986725040085579396190026518432090233315763726338038307892908322230895659878781886143242488916955441672569043615677232601755207540678468911846847805308958308440611423351142376939576127941039875325833269006680896743555166922919649182026538152272243078889452734737480882615819012711822905388197618476394718224725449963735418147477232118526191395326158611779805617315554059567692209986609109932097833424829264594870063354088755475365706111291045609883493799862500300316141940481636327821010938748481662045058880855082074409623827796279922738926621861593305931171829902732233958308612668364835669935183467849323465566931767040582754039661519990987607767906027694500136453155451951548546638670333341081410617599123971289757080438922083580965953195493132598104499913156128086678133513980006054654207753315030622186872329604235730374740925004985593470971996242284816837983615333115388470355058826790405415020361368155380883145833059420686655166790211738465450375907802602311950724437782364726379924744983316037821822145540820382474105961385467846316693915746942460782167570258984068776596475253966963066440875205926589064871398589947945306508796297922886447664330438613731100754490762258038480598389257493692130165617390902188360560049187707107135992864629138395044401007482752905351624496364992862319765994131484493820170394497634669932734126884567528718316472778120770437940985377475732270915472867821718770562484150274395777316000467427980025538771851713807289650691977369961117427916703496900754101801920476904672283318498425614879477740915088093734562878643199278434844937303938348613767194704693377545657346628636488161284332973141039672920484344824170802065181472047190222544847146720831501851792416172277422701146122546130908083245591275417610619440770467737884165871864240489076907864980520708134608216326328317025996491905965996392891532532979092388268561956133331869353840844592828934139097474331669404500927745657592413095660187052854653392735459271655384124565503730082565688498584739502325714100450497971953349043523075570515356083095007599247701910211367636294587177372429149606791330409181121926995008679365100365464547753879132741372905958876146158088419484607466824703214739485032241034969617376029769309384763052730243550474144624859695365534583007368110753661255517951313807148930459231051994808238821450736489534945947529734683576449421118914446908977278569584509095370425751138409028599172545416835150538409845729386425735936910017645834704604339416525481220636651533157458529059176005428549175943258701529990136589226765795813970924200805665612867832802801723006387947595890641990361000035569717324249050345296035920637105001398601551932179622214966566909146087311767138753237925465822488611200505736055379680005683652196462526140704745719922374927910710383143774548294748425139723936628893226339993320107702784698195005965037582328142826465485682136190681744205373513397746063914165840340438879860257144863063724303794285908702433074178960174719287972580876122951679401000187633907213632068150260559053057165207119912466534819475664535312682811252757478050519660264208752976816734506171927643333102718985051197747189052030247612451141161015228313638738448932328778696664440068451496898398937226805708834078142678011850367968814866268193058321345496112381693665770530398740148056625201083518916030449176132697148992292260966546099904295159273566302961119986292051700541744578639607161051761458755001807543047336631498498195241893438479744521485507538734461899588310046832121387762860106510729930242583110881281184831249413908252717434638397788781816456788200701999109168662998240413252715405188961882841956444909996039614580857356649600648065288269538772312458221262936426085517389295101178389124627104111983077639116471664902986722678678013742930130779708269644796178702847157689542405086488883591547519133655143571334950708381904205983340076723826316942988828803892705485710617514983811905136353579720242316552057518312182050188738108557969549014576630498104347071304395986047751046759362308768890676668189442208980429536566812826127052944338168267079912013993665187165625243334650711937720719578046178209370334549059862958707059547154398165365222177971666941238461749735100464600765090210247317229921669242394934834124570272872336470623058732045091243613897982437821249916672238291883197847357389000639697787586545007751285521005403841783353475663128429790963235395886402628380363458298123220711960983913895488208183881995769163792298426026659572666753593318289072966418749008855380450803348899688346365164059023079928779109534646873866707460610064267599579086244013959360926067483990730538371136613783308305399320924369833719093636755498931880714441595130497941803136667972854178284004256030610022545278357165595559362413769505439486645993080434178732795224005493999955897940955157518542762199641060136759868855206337797407655899154060498242076063173046759790691177074897010880520782390784796370265543878182373639482067838222899709584921011621953929325601836451119254625985414418407207379195802051498753954142328474634009733249377611892776369133678746714751483257940956814995149261020468912264096556219890831328244904347166700989856604855105862149676553811617486754165591414484539329203582407151951904155113371436467826121919131972136282280609758442789496038609819547166990444670241303382683031890939397015244458512621966474872203925327049002848282320360856421124722788098636386462112504379283061572149707504813495173915162766921706308422951647685912001542342543507756300200417281559281600486967559162563721181887049846960504203623208059215712228268940388086022202554591633937087564530704759929692901171114327483881303379528466991607785960592259682418679112783754292965480322511810494248205079748415375577562654073690516193169179247513472714571469916561340437375597290477425557981728529040718099472300072723527198384412654219341021746937017559723701767144762713202337554467347304383880464689529033865739720323086542956201854932927805304900803946666293250825213892604951205829495336919249162510939247666791908050720496782384609230843913206542873596169973677346102981341914397200633012737056381299378197778848695422088222110750745865518366250734436114728257620375488034379924284190457571284175868098300038034856810897272854436038793328743073750484198428821926603080993494090923618709325469931524984989756331461144326450544228129389353610042491771262721976802926078147992295547148142510304754663747051719321737953165458620594487509481484265387663592025162706860859595299187460909589322156083922210507778124727465033867269136387390671946338054956052837131954278618559666738526059078398837917974768507119104676794027458650826213835740297073511816102900358489344811252140062222756757240494752172716678492576918914024363871269285425233499112568374588845608852994803166083000390124580224837698926686899184330537264099586875670942002666537242883735653056533759914293836676599208445365629187596185777364629119420488899338418694265341160841696244792058441097746527489383388156663656510494221442210081617851534913630695678519286300951260149818366749086905427724324197460894582595804346091709239330623562355994872443156650723972172495537311300981646031059526314502726620464325836408302279850992209435085924653122325945836814475020518579753155573880809165042350325572957390577915404004452226087150246697379741776698444293835766427621400295514321523628643518299418962136320804264209471692503519681475240857281797700259867672303585107883325593572862404523925760058827689339096797080532915481940684034150893280468781609616798014681476429957729696420847707748946214068846397940714538322274943123999663213873737224469336837879793129690007982721027419653306470143274478978880044756300222662270385482303005895792835778715572783703382112305161610240720270090763990430179549172562766965264049151454584855525551430537202856499404431869627464322640135855168722346929206713320313953553025295647933585993076910127529540084349403036712526268032876556535433429000102126293540970343966724731180701184732218531309639615774359874303365919973221157444654334158010797725824568104894603664887182221663887026635767574056294476915158587066072032716846454430378418806524674698837208740487763596773651442348261182956065689296821412595656062741013392538807166678574117334291343510626956814455004717642247315240447191918325608093425101819110095997104420129385226676013433440610298312633347307862537468109286218647669942156366182086763039140150709154694298403494886972312738864618457418675230387345059477670265045483868824810637828894011127411368872938874313205057140950502741099759594400163220875342760546183842376672863047832008723479102944006002000524851925043215892858840920486406410074690834636047451076478206013669488582853533888499611340670171681566858716613294011280338668167751298961681904570082691876762590967716891917852584683997613900316464963168727677079951587749353855280309964897570640538340781178041613994959697516643887044243093056664895902749224000304490107330895433162946677213886469372656044347220738570584611105449633264528860492584396007189701930497740085246256505227110341553404859918039049836363071651913643046368626605544684429216714295421743089315483551914663014655058674802772698859085392917234469322977199252244273022935024910410690625711480068870081488345683015871012287888310651988856125784901746377896078213197424718530777685419812332311853433471455701200556223652957942095504508813900307718746456843024984255583673442291235555444798424835669106488150810450054337244348975806179714754172866732900046915874796556425028547050659351622039792770251660750956277581231885973879959916011505010752228911164254453701521426524493907187154918299171003016102595961938467241096214065831508004890951901723310984473846166477098575674340259976088358469551246509633697352978770392271110868227367455456832457481791066352776341419300771201962503552371020361532074478937359226275596867105035941326229701362876181799032099981149937951975953086196052317462683455909061082736762582641409949849062173225829335662719570124142451004127018467884152011189884851457585299539900629515077540308603157499098113146982713818315810205897684401856631010658436079857563100717558944038050454333388753889781999762952774755482570943364461515244819540534394035550095270285548096395895116360694888853835970464746892126580354046103577203638290022168168982541146787085893371763317106482223067735630438891598643189038948162609410667688226408786190542139716399442465529505328343930580224253733918113952125252410859831645707749637271488826308140963199820192162334031166918604871048781851580817749768269894587330667386630902239156758571256110408470394295908975098003637368892282248939328731281725739272564049054605535364346823306968864211316993507669674272793578384225652455647013854910670842056590052922280754915252679906277607683183446285012664699330771649447089462741994255169814870266462420425467992337169191260289765676072546475119380348495480790034575973841506564794279093331550629805754076700751493903258261228907056254282259141878444361314799818089352236777035400404623942534861597329700807413468216193095385792464372162483993668166654908330003567340054477433943947718263849060816297597461803527461604365591386923746978705370040645148552084628193181943385892781508926137921250182043224928651467993120243109300457540408653277736906094185571994477592269533946573662870651981390790037729515731855997511644034958570494033452002529270456733978252297789190016942611907865076501393168887757137363501166893128413361793043125698324479338987355363236688828467534542842396517450255547564321181329583843141061040947966526907683606010478559833299322164385706563733609370499477698275349874998302401426009315105808852001651629447609366059758729747261673262229208240173823038147680737668866552332778783372348018889569725526339332136934063187583250947773524347844327021240794714299548008660064628521209100954821093832783892942440074062165616200553589573361979713446859244477370185334299634328508041350368615236726190102949683607870830979342694228298880021704333122907291349218678907979410817308195262509618715347675072155178539242856786637576645729812511401000363474828570344757563052243292026412413706189630588346594401407387735126022461550700290682295439230610160860969574361906499214225528495866202003712298421803480441258651556228571554841747346898812167333238715834060113101778405391530063499746394729275769875174997606489820322137088174310466895263223703640838573599491317202898124234022038186607171658302415263757762959871755723065282043555981272028649637247837711744021756948998350920257439571861703567357131403945120841733589520273572900977542682389204481026815057334056431411572129345341635416788636510198346344262856762649287673560638145000381628168555829581270631418906762116196557178944367857139733987778814994407631876539689368082818174799247446020106990910868992029792336774234211176471560340362119008367766763328521122778018595619040822036311897079545813386753975675449117461545776105772384688499357536286895253498176455174996759577878244755688652364344723276977263029862586256475092213806437028936591060951811417769605775808587734232346808168693039286592086517437074265119420887461062200278497969687416156041150491244161293718688739608231564410160252577595135514527415292320610346617206434240235714409202972143020706345222106815196150330734162064278562888549076446596338359984697568194818501399761603236579890817826552531748430726770444145360650614665435534325486923189421701792204709897170072356529198415894508799385413810851556913374420344456240738741138344462389250818598792512172446139210236941925434394869970903744339915903049989153175690834905228099772390431392859619999363439691893181727634273820081944650116722670990078838519464210976327407365298409013168230883382955743940064361582280122664647324676660889690797041337390572240979731039005614247257992568550026648886257816913603388186590160391920075831846199246940163960012092446851521135414020936321727345514446826873540813360835951677986522223085981707378410784456513180777933368759263073779463673770965107541661818776845055579780929880397942819287892196803350068121299069070137482899541031715599203444165550428409342270824220661684421105359065152369280458081585717127638753194069835025565033553481104421117917837247467337416009648649445095403863411217727685921403368164859173536222593577827543224945006131630763225673139706115065064904749737326709929604931802346785178801390678255106357992716380437775920023417174073168756724293202819632293272915690836849569247211738778783538136267718260041071479887002326690097531189001267118756673942448391727546493389936050877246336656139336787209323543927160549264197060439769702106132859348607122354195208078750075898300856291823414706509130243422012519960416370401494408235176137720966604198374704427763308536721040963673220416697740521600214511828180173551249482837477822380740030639525231469837181762717013873172016233765029130529190348177681413287186542875628630724493611127334987266447778378451354043216892374590374703693689683108812514068296524055387437584819695059280154074560123654591199670619383966067875931407322547651389888605110000278176976703727313218989718894939400105347932689872345375741288720702098592143017297486100648808230352760006287377167880790358900169484361765903820589987705831625980620757964863362274989316991050362633237266266448620254764369283092979917633875537944207863141508690966384168279045151444672149158453226018903121419740239165239058512086722439278881904788808206178015695126272901279494193663292489446896371194712625055359739550055712400549574489502361369410633215876639412677614593935863273582689986093653115951489690811116973595889242153262128286545413652228530516394863061660346216443123301395888761842377201512753059673024845578035959073673422863381610407973045616551041939927784303921629260461789934372832497195983307202352032188476131011346356828792380759118609051118199873179114583439779505629648621185296456680817299497011283141546783082175571974540236627130481598961080769332135717944584677686389663826612906063288276310914858701511062492445103489957137448091837123658134475042687154300054170493352963998760620711649999263597351437526071395102499961954259432443796930229293969284343760866787408669854813465710698763243400596773827030761040528863896287526151666018292293919938685923037132677749682595969261730796227669971788521374179190375502113036587279439813703579363589870723288823258687507844565820817147451636798221032747659763690975281135216269436058336261499804732973136749162259807829687220093809140174855406079383198166699560176034426367054904466937651084198346912872951842234101985852351850881629238249366699276524809542098199543475486358620003084665841919962698393209232790917922399100818282406735298530526811228325943945685947524077329991004039633878963958068191533307734603888746889430363964852562760241655828426138785552884784541298379683615642895746265062880387284115949967950380462055928227025912400438099149041505175502822447442770356040881265919793834591659843936435747868697078165192704963955992961170282957719042829561148529061328813676004878900251439376821956123241079476423907168726284350686209283584428109664822982993755042847219587865298384231350317139847488209788259088802769103557654675681449964781871247295801206419823730681105163759818566393087410213222849986453290932284457176828962937070642958676678415064795579906627301831816511832660493783524153665682278917527062609263514043258304277458344237982756218040706403523851167153659608027027732699411332116957401173069958063842204592741018479378507802662339583910008412726175210670834004107789561514016504916689930552629418738651296994010582502691633632212578419359729125601176333667907238322652885814225514538127859356605682689958219510132857735336449384422469968822386075861758186880068643237229587476154355664123323235713646789385322324348286180638454145689504268803145640506159502105739437918451426712642464703513546755718223832836817028397168455691613878075717553246126367686236899956026687519683376970431140198774233692016785453875819120043050614275835207980254470869982743776369731398572399797017458746186251523482679520023584583836509137675047351292030498882361474427448941745461388547385758040958661300229436359790144547004386744960026467589984590809218226956858482039047810890837194873746826741997120716838074126560223644344128231681703129775186143126516429000672887685611599811703761236561579861183787840162734846382884259679764207133692559317787907749340362035353255313346836563424842965316845911422523130531928612755429240268580751463061008326702553675270895471162454707278862405744045137499680654556876363453725498721735259449829109044481350182771039813820582031105304246626706086744405831526437953536537264340092364611769269952743405411101065613057021132366875672383537473916170515830790719883759751764876455319942202575411332028935529602305677724562373727647181082556666133820638186057111176976299005981276231711574610825432477630133652297951010225372713665582879744913846566442093768126131169106676706163390972128231272015642464652627188697819665959533066836474939918716317316814832239812338564705313741093384002488812096071010660441308188562989850857910399043058518456170747629895166032275870643881380589650203517809357915982063758723998285925402372917118175989649592025128370893364408665658390468005045279994359465367268171462050588437052468127733115555088604287178099798027683376684977789906493956656948117798862991616301098158625157954772291064444262687676805334242234976783547331795731168632966250861664865724815300860318616596498257112548388150936732704920986432386153506834586469298744510623071415935732484593700483214375387093450495330101736316450149140041858784739077447606996448422042067382611588068745305311384137722105071420341104177824063372836351105357044000282027627269242546853119701124788405580014707387653604751214067346111390612507801385721013890242768724895413457634361886755423265078043529524024718741745302168440644772507770736402537036974390758024255422533452376410104379628666825949802140623992027896790331617802025788555528953906146891955665569721112936531444375244088317368860232372849084292571229633609169518241123663074137101047366966897593625394894451496395497599365267968916254050685324334600275395024666222717568499040683389740293576084251705861589289672441618770534205523332887243112640919292394021079682971649824180472996648119243439350764215701921068736133565337911583631915439260869099630761326245395699286557079313732700759458937807140087262618315376272043395263885395795085019071076161908389093759444577835991037403961659343994124156264588178189331668881917680662131349719220845412560249874407943217933662712592951270643877617491903426921193567548929999536069016699858419459100247274313436121674662414740398512834198554326445200099479078211660661970347830689655003778934718553960347215362340615486577636190884620922692741378140699731187774155364385870536842194879705384600506656234886778209789107855724543051589889331442526351429372823825751238602761753372338745826981015081324370558636512271004103050051920575839679736428161949542146360478812410179258555056565653645985568504389186724142508281398691537746402260361201926524373992511527809375012365060998671265862240584843412201043820602672211527702243527602514318653366126732085085967593103332763468023527226253906591213978961973372584961169874895934648823356382561038286635156422164881239407123301522917309193748921484793475570181916793191488488318394083644781677245723150328856548944110983842573852922091234570074608318852771016580230190141593271154348961304621519067561941691930464258859929766610357852408795685444246844375749043529511347534047537720597959748386410753935554314793410250623230722277682036218869653818429043509956307666268551719923360375625912878401970772401757782429498795057454056473083563451513381049555469583431692155935591303377154947797890228029959604672522469760968497878370312679254068805165105245614049010474713909823970040607986318475376560272248491645614912721936493595928727949023766886858338029086344392704339780701053509882763982118989820977593034615017039935625880226994116107609772184320770719613364554787569110489940616782074582467622681419977245895295273428774831305306160972902140620246158359962908590842394391535316698156783733606703165627050530359774829743430393013363772733470689857927459490292528657051561675373488776597028763823712558476790995678863363285548875200284468088387628527473790030706978363707900948193432080249220705356303564529202710039363152928764771356216992337940202347704531131242642218885135665440450998271574891188457200778468782042598476472590338632874685483989718067478758754631891928762959845658722221477211855469738065468816267524636674429539068995469682348731678880431337320972254164594114408177301817616461628042447064993008863472324068423419872151756558033895749462127392265381417914826215049804346067533836388575842449916522221889421264312832282106831662877480545703700073690225362740563108689561046793724806652556326102668996978759456515991525846450902554863726309230481461955902362901002712255157217738022134644822644154725940314047104193541245133242660877989140116118679922806977445026196561131737946738907666081705676540146950684745925153507229564314613147068398557649678001697724851563969461496418680219731092045912808680697555117331118060321207501588132976505966571920099719660567997274599403721081454165840227968470034333159852639996152822730218254149671149889216286743856202898008983075448133696155351368445351656664329428604132444473129149267509535587331110867475087545955965623465478431249688450303399436441518015228613645936201327328290175048682258518551149903489382823745257845623572522160747953740654636567654181312495873762537323021922527519513903236802846195387759468887189814586807419479228517757545871894545243464233939548830897024055836828517361295028250368380715769101107603714253346337897538316579472489046256306288299899453860467732025879846144330175321527767419045335566123751684160641032610385951248768568369210852918258357327153944285899828883226139340602205946784754489419970918634349046280365136999426348222162488275988847524167195762710115911962196968372688007355577730654644443259691235115201004691092111733384615107185321629800038517866295534511608505925166177002028217718797511848380613317176156861941132506940727680582044200122104757507319659784656864133431117082457042751075637541481561903553502619077391308105339432829474639631881693533587485993186426673045399694375955952898422663281846797949192878254674035812538738005735266338157598947075750621263303209257243998464488086875872681957616354841399811305409572771612345700065048645024612367744179445744208236916631137406025799073345587431765975878601927290441568494130921593963690607779770359105702039729306188779796768432037393677646201578070784926638087146847655480943253791833039616991132621134127952103607249454979408651487168730325728853023897034065974933966015675159443873232335523443278086770502660220791765858628479393655879616951380091370854707431919926455124173933582659371736105930213681328955637212274650932068415601792181873281088128579196949107523862304278786572717998510222197099514177141127858638893544148754848704735837378774352106819615587854808359520010240655609511810445349850656798640798052121722741510002836238119185196431132077725937851677172421270727460287232885872337746780469785458574449889773675578147372552021585411897490443509555710428312357321616356192563408420452976300569071659816338019107536950456838453003961024207670207027805076721038771310709136541745040904791590975078995045188109454229983197027903207818857870394253200739239135636440010956922463962953725567049193937999896576810666871384117320969898918228054157178944073032326787106202031375324987085375389800150923447028771527808545844325285388797313860285531163704250659012033270083197736945441791549275401231818279376849872569219523439328417527019441169538454761704346721697227527670701712657902825925896158499854941482254325936292978359228033445067970294496111548979639191060726844876287845021562590637795689827701331518523645509034515455955325649191999179070576361033539817183039391060592793512647935756948377375457553208577303924959099663229482831557440878513710028663789154727575823635650923253260599233066450523654333412021652122552877625751443858453584011174399815409997093066205892133595031313899590361831236658921052669639550351745917837239400680399826899231751056304258253486040991709923654575362686587422319833206549903837855766094778210030477409294690456281342597925540314644579051242443067809162931855564412806430602782718141777051008290760672945540722796413426919109797560655607053481893635262102555486467279006693537941052000280828296946515518950662930265863419659667371155454918512705911545131666418747693086392952035036286816509311042922117659631253892306299560433186754537894755919450271547601205817333294972347370267456726737474128509181030444731915732172467522260209388089089448550474722891616632549373019435104324028661196364255111732412208063969911035445270683007465920311961753904105337230701757926967571250574901786372611611143168284402438219542852464968077296545922599736022182988417893735699583577225324648547317002268725159123398167396658054514291938480560776731674324865472899751040603900228689652510135173275145454771221584879125993351588365672048147953244612055035888152553068742862055954583039559673784919149929281837341172418677037607499844330976705926532820911250437135052446199011584681345192920253962905944651866991831762894264636778106420197633820312079993504662951889001693066064928345338922729471023114901577988035147162596017708483519777693622662200319494053336278633377259231153814855147014254643780928818560690353319236120419351929633415882483095484627350038733255812924882551647723130552268144781286090499343138112603118538348411194043380977107525408600607360587044034804123428426935804838814977647816517993717063854900902560914230827291167731684528514338857272903981559366231418463812562842073900299653526878317335849065079521047390500854619847027678906954467557621202264744036707120079659956074350784737091796969622902972542888152410445925964798082564768521735593391817616001714449040526525697123119969135198492139427721483185646107141304551742822830373891648456321143638234634050198871014540286988854774182735723961021209886723592889421330870637971790426142420188975059499108119428120523035786757411348873144706883564650640218484653939011948674421194445145778362797819574148218679611724233579597621906663197041370166479892907669749792404877880534894552675515854603293047604028844785102210714387408591183839364663938950078134983532979638414413854832368387918461744366865191407666191444824064197442262586865208387123185762599589409087671434459330090978162491112426049446865320280970153762984132713786783761730898790867710304456824883764059495043056308543875904440045597588985652672305036044947329702546514294125528436552944393285044919551044559574233336500186577833704642158986390055299693804443132999580038801916214519143595546840411157525997316632967401215004435686073407844405014013218736172273365480964194222468853156965231919278050327302589489818597190236630289142880293754671281615397691477929800367861820947950324302851334890047677534985608390150926556997883979790945614208911197283450192861484149430407554462103660332614325458019922208822894388891278103676658499445314977331570169414758786034628560199584999657378580659980086885908791849421262074196383499399918066166530712690842228106377339997656587124747255803648747159539613313012634397872631665938788854624531920152023459892708130075804484062911330761304165992545399843237751203003918600969975510422854368472987886026380580286693524192219782465411177859231871598588499215583890608926063646845290006569035139999573582777475106744462170381941370762788492608498236752386111254580412797741564748885754512042188316109376933460136513506479197393006404226965911758659387790914126629572491301197489488140136906743401804680241754696676705532616074112153364103130467891450860868223887920787280741834136793683209230246270013592325626730948481571272478782392159482438092946831820442426839161699604759013432908713058883875678208738254162379325435820484420801988982067425128950339064920046299548528131473976146713754082327994763836455719839365660146146760743918496942999683866056611172961576671778208828696406900315557015692364738568051526434259542002531777995404725295756643189729790868281960279634618935312945759516693414864459398031034392860674411510170910845560033202927083267698031191995279689347670772497232010308879724274631936447119927332029984882786887891982548597942934847413906722026791772965508377188953410386148996567035557112743773242333548171026363852842750494841965478873459566164680208730997241189901907150879462326609128188914451718262133681214535631024381589653484872363355488262378010338185147920361754387665686555460718082138588925758054422372274362382233562290605327235498400680611442207313071301590510833434751989038821746316491087038682118614386013511740428759720946383268520436132768925467310029347040983893562610171897994532917171544295034900310971301941470292388742037635127499170599450536092651756988213007145225361928750248772708529192820960625374553703878154828877340969448579920136983164075927861804097978296114127586401920225681880887156174444409987760265694716394508280698434120086042915764724323657464072634715277588430736334479728941440110031142932278397733869044431404175427023450606479053958757503150955698432282552876711994656387982281801127424826496964542995565963999506290425746511356060744765503573989279020359723252645210486509921123069072217043522408931955853027745045786425760061471416170170750917139060092328913942770808658291131370289402618883981317678201602710409627336082626398958498595186410887957385239425638763639477226324255980503309366455734714211120935318469173816099046056996831783010912961957078333408267508813505162048219188410607654011339614420747674859635141740611938105934390777087122890690109887781144254216622650861706255939730909665509568974854526012779254603201583804017925392241321440054050091564305586073327977252245908935715246874192013134037620396721534979015762126920152431637352303247415160446332935626593046992770996886468244303153711566053857979647177876242304584813151958231240202327354494923066691599244453362344838242071472711613645336388652300506277286394431993201957624927860283431238182923394955859134085798780177437511497323670213500301537694514379231268738086129496944649205582809509337345684422965539414629700819461359885523300967643024275191355705010134929247720485062521865885856294609887839796186808123696812624043334220043385310146894946688864182215435796931375896393857082581164662254431644321109023409286663470720672240302939878141251459524694642652456239417577263625251851261434559357241474748537207921607112699116531246623825972433391372911337705077816014648338910976036114637856244473530589632838316851139098735023842156648973086351257860059855913393527376103315451392302675525115399278297786327535235165008750272029251061807546737715684840790989671376810962734057059989023173463719072214529864809754463230565316493903529793855458840269631534975053412087649205775343391415637916812534281620684560033556442019475162333217561905160750637248836665400607588224697109671360023257459207838837450880805786880355215900569405202604269702356485366716188269399195199485620803493442661635443678693913038645187023142291665967033520489457830747537368538566956450613955003903265821163609856187396310794458325317556281533825603436797260107086596266621721611049381981002742981759788830513198594286773363995089817579773022109295939886569253282424200330254041386849935195822637637409951988835345847153714205467095644645736444036572390322066236669479831608057810769573925547488334391549250657683697622230309611976222561137657045473751222377115794754024246417407922389580359744789277557881744442054752976707153964252448981447519975857733521837753446878008328849318457781689055505562077066921311429023058493628882535246220464559821992460885152357074749845005037845258800092572574802997387799552139118261940573691430715008367303741270922459407117939218355238215267358361841463577616028897377946216703216036160497042131313009366044750917662626907248833505982229405830110897124423888956820396384853077466849163293558765660362420548486058515956935597496482635172209158602775304124033350262468540133223902258945842074145874233655120831677113732389931040527512045124737037114504222659081043730145097470502390712834176768827390931832241483075879703901490523675736731762286225237754801233859653581634262725507494999883670980034193675900119679097967156989995608846483588777169386587173657372159869429736570395263543451101550128206845404928562514424341365486874564551971201227991185311942066196411584492412931248574929100589525530795539564196721783477311202918468016596637100122058186142383990642285039080072601901371306031091635180076060399448524380560921129552080039801930162268512034300025457000019483685842940333209882981555514208823638130932669864385282959112673126328088710831523990684657977640654670519050516008480700478314530936658980517335203040825605556724908957417471660862750987955688248509995760174693443757682164531416897928835722817648392567816719102103351677231461055787849725903378128102347040468411612647715703485698322792652179124572612909810779499508527246896313670859932440412529697743701416740062156233675828148769476297660750902727201889061253867167149036819088640266006786690488140945152028899306027777453572170158072230480757990887945600983996628023519751049758820050904327542991564220643697756689799439117890829316796772143810859108390795410532026699319161000782855241786373932838544771532517125116408516451166769976246895034475921336703155723028397557578660453710918517981461436262906801531437518432300020530804192427162154004416976156035523250691019601032736964827804551448115217591547611080081655026946213408116409793282397027660023346850677641564330537303555437224915781194548883174559076711707182472265291616864481733981572599539475655218499277382418337423498783173672657800404378333180286879420339445361490417518685398084948101973259246972310754282938309082630231939245823690136202276700433064230069692481137910089801656104465008537283485651263114845857078090272624024566026939833690548870360153742408439126602184128740802152156058758290779484717269535986630619070375753768414674860828209893463535450170967338285028137063293818910668343378300682239899138991884172765048561247184729777055148825971722929976912109967747112464694715081688838525680616239081648082941057840814822309322722940004450557476139347970616982843739098499705186702353542493710425927958470707753916912761168111327863380316643827150410008646422284002425523164643499472352439553125684028881321007374424404699953848880189154621382591387141244523338930248484422102414109229720527104337998017236554150061681954826266610763898507448501600619790487786702714373887325072398734981429413511677602971969052182171408807049530669412494005060300776921205214071156248170105661091235453955278585206604268806333344892476773815146780924291862773193677051978657901202662599218999155116461735696270272379357729626928024998522701815893750526577485021447814525462836888080088802373598892236208670178910433611086916807023186101339214419319060755045860680458307345067756169063277366628094090011517854349552290630769899197244542864850503703722485729268937021967941005723713790625187051054763135712147533953372730970214431755191549082044949529829720554979693152301323057663150179180484249044297323674576627284255383485612842239381069688827824481375804780846730155659619794345425581900152284849864532350426418631317957275171154131184034771220550353035250628192638617352317815014192517788978937178648707375659605751485499354566387007203203612972594595875165150496082713226768686267513602953981417492698379244936963391962405741778147695544764075689014997257881268806019892639067359516247430014116415109096585388397138054956697025784494194356866905399713785154223613192784295295788976265274614199786107347785830692004431965008640466094707804541237399055878053245466159680803110004860800590131562172856373075017829932500991329200150498368275244546826637946927357609377606425674514758023128030143211974241282943924996621285367897492585602592430356687410200801176117957422094993130803417739904822400235685367008581911117845649342237767956939975584048664085631618182481291733808100766082478861754842027942553245747838201601588207718757105026774371658305561209302480690653683641878498458856581114619607416522237180764789666210807451989948291296897788643171113800451363478007479807955278184561573071360294237346737837375912028624965681039084953755505391744926442877174944733693617064173073962375403065065356527154199038738117694532698637750047052381596619523954777658929859099696035043618558537070165635443476956063161500403708178336730797540778206846913353515088241902624876718602519623448106625674554965660896722760418996194084061128573923908485551833713756858966850822563429123560718050670498646883085022420136815401149652857246782717542327758214789346222572869705619383154197159588528889365875977655886225699382531028975260834349617411258337353460072645410421474649147784860159513736246777203587727128723238209853161915480563500736085473649326683369388102196295208252000709291041688822688470019314139645923850239270202604269026082934266774091462600364764481018987794585760114504063875508398136496500212088566027079771346110634797991733539041089569131127569750349339657034939349635283565785269005888080245172074945248888427210993826953708787179341907883812775950647290978596929625369100570076662856374525247148699350464250929764663820148105417319195947468268182763715613220975216144912191972203927446505898146645399752243157008862881377934013262965149386785823651120320085554594963864934211023267964354756155153792365872364193152988221526190468233101792412772430343713585226059243758547666795736270290113654447453742951918594232212830991394575334571150411077520824903225847324221913643465959425520656204727237545295834714775503629725863417789719883482134298948689487872633861655789549594012219240527800843982159403008982171204144483403590630099693516913498653993491268129428949523553963259298817747960648138530411832664673745756649945361182780978792284762098208022194568730085920401668659948083009425159522085767617337370025774080058802412797830888717116885062246363605527412203003707739565088117972548296199054033935631666189660297013043028280488488030912989468861837783676910144239436623441476669497128124683758673510166195343491512609284057892580197752639101524585553369844820536117125619073537065522536071072797225074482605231872167684888790459416280864773176641377021406756008971289956492398819402319180525519120406754309209899016428668921008357510156863379699836736579298746991256995940913185622917122761634630586106404076862871544974116261895397854228430026352421630392137100100513859834805574710173571072955650791677551302023995910955391300313790966924772297111563649004594100772269213828951003255790896426050705148140117063297271719568235778336160675341590378962228467406442589934518106841528465716266444694682279617292012275440078912948961632354596526343656675291005980221794701323677701259403286244047801801104194001436665982920478423098794853951323813262163563967870233047080909465642415116770378775374393464545552712145211986594297540118199935987354406472763949196124769969905112582051835488958525624554375146688069447006949171434804899615428981220450577401163095377474469754178624895648819982360070291334472334736016630392072606255578026320661649457574400896319195669966888701398793344594978924534811414714965933625055991912866216624124072487221690540814424485368412208891044278466054492046430383817193547774373593551143172551003048397320194209102752007211451511878077346870603434540964443310488890027247913844184387192418086574060447887665079091785016452354939791737963210047596877499939784803276017105080010296368802286310227510724183598387769743827997568305699058852280754024601694709369608553368989248542259445528340250555615468718397012601964076003329348895255926759719838597153802635868151763981811742507306363989358946079523349967292933517494587548018574153713268259083359680627230056256628386426403119815166419914241006541844462152456846550051533883411801447713797476311848264786151556830327234079030889442600526598060044786624960298293245982682229878776290024966223442662373658194895422112037941559312955147902290343848530869126477206986162457914213754764443544955985965436521120422737091418932907781402627272578955087244092797354800956221428608333078829834816594748127500954062614624036422007243586519908188840045178118114132727651258786129816409879155284438396890609600953309073949243479252365636602484485506221957870655684116150383541806644377295857150331016568133900701239656493053041069384113662906762279194968109281810621968938551085547238812342763339630327228212953412035862579605870144413414597853414159955402543582106507725271788045179937878956174174109336143809006980238109187782463402001893352336340785627873498336430107677641001990228400837526098097784155512024037420529882309761363681209966460906517422986812171892383008476189900305704794037223037265427682859616648443091749019312859877594922225785814471381103978481960366703873853248590965356787949204729867719594211469030897610893799039928812881697812275626353533794769102395329460834943202316326154471843151009424714283594641816980380456348427855625739986199302053083424922219968943272211064436883546502150143964441722045206861536123667376598470675704820205371049464948039012783022740325458876842164249448012666744125859986335876180235157904195578816015634515620782102724621760462815884230532573259001950269079740166358466161935132524826227348867156638765229679194091937388037107132743605139381578951356277898269302538904996473183997452861574369969398237568635115161659580989717190708199973833898065100961301233441404694881138350334146789168494645579017101512325981776548241709717580892365799638669286904036419247696767693648967924742617451544579047917237403937220552364524151919968734182585850610971017712707217409836456267317896075091320809463302702572711158676002651800634679875090147976436307150570778354853688409173276670958752605288404977116764625625507343726711305849337302964453779631286176498950378533550825556959987260132733809693586586322321585577433997668647855374474371646975857793875475567848644227219686193687287248176254880134247276863950703816934081059586367520455835904133215786433552975822518616168896527188465178676075201160190906768507145262977245313362162711333407266648694751512050947618115691737693532310760592431025192556642851822456242131633349601425467549398974177621743941297146764107290711301064649254781744956075923851759218440515329771872290967544614264733869560555277037961105053967865044643177060833378906077468913407842862433358543119427239865209925586610216946417600701087525353536217917201028410971053728697491948448016722360536335131084311024063289155383168384444924768096102679124703296137149640351690652603901902617189419072222261868296455572564129531025724199192708636586306090423851450397298784619176956570257633104430555123959354185564065852305639508798177734699259911768883407940915459022126676158964738622589624439836311144564694415734717270971389976405105669269970798167932966177820174705173907650561997255843025403415628284023003345454518814249009132107771762317943593070848697746380630762501583713501563952448500405186558110097180810376614884605944820522650658506224760660709988831142259790418134146606756746699168030295943539815121241710558716629436621837405626818696102897102180138591251722626872929273962169776239778516485198427444450186858156946587723170285331246516312753285138384342232404578723500329478554102873630140228586790215280793360114724940901914739792343907564473087101718955287166165848110130035157233542484439101998085287989449388299273227177099543524886629843967668458699300037499320941137285648358271125325856410729071568054994300114271063399161873328057641134799113944626067840654203712441387280722050715696898949811840313959918644509868201088571373409929163528003453825740205391773128218179890719680927953285795784605200932895427943126917844497829882276660978828763404806547987869715089485489014357638287604279401175967461485797241778891022108038584389241465642268142468796209902306908003291992715426667143707071324584887420987823286928545754818172700766433887733176987693662364526626153380987032570049972609392329482244980941174864405638017337460887211558430733891945466853556132049664568026165636052983883034131377741630637608993612225732555173420073742406448836015118697314199014853592652424432048523546594305920706016017487889759590269497038248791320840331140732561301940553086537276431129139464662926902760103138186162316474731983989454479744201976419363041023906107616041087321345022834522714571111981361601416303950290990329954816264368384347681856751483851010898978947462826560448092300701861557090990422862399261853858326033826206386398194609127059252761734930229585045104557617312571440218535149847917982118630879008133867614411319272916492789720374353371218295799412705543194374372953344278682801334540438493893879735397403414652361177041066532132381171460086085052327599406669408437730456941219598442743800609530450467242124558956050667648640794764704205418534418886463203226388277815519481799467620181716541181149919461574041779494333287479628690595102236613426057701222905191430821542679331320382371901512477112038916801923186568482045095203353243059789260848441008413407055660642735680412183509245324183872063150434040071026935527003848681105759923740548085545880874510353740900825666831070958669798273309624555363204003683261502993709790219049812506881735582851288624325207729439338013069196764424812095068581011289213606415362018218357927514260774910235017988308772448778104422045684435839931034390487867638617586262550667650159514865187584438843084378019769541150095651717103287490750894835037937533273243860541320764627651461254176944013769215341662566302904334730815821016866454387067163341500372064591923623915027723541484089180303472255045763854622398744324847066845653561571508086260422101768717172700309669061879323907254085639471403931346218377338678430762689453148692719352092427223913246259260230578006342853157858409824442544572043034079385843403106986268383282821734647115280436031992979333950495938881632117644912534639748736623410665232378139251640898910697289330929981189938708031065720117602717442807144647098012551753630045825239608489449733115765454796438877147929902355941880415628732685170540896910361890211906290118448153179300529425444208933788879886115320045823051270711736537404432488741953969211520889256573371882772952963171105839646630445091421103879048962347940045376965688239269147154784099664350378075361457497353811015545459561635620124237060498734103600033596008475608384519225368994851656416259836700106055560291286278594986405582793997062367283057256625830178116861319010361554774470174108554185770942298393584924244129961648637682334191945572798253569999229017643195006364171181699268667477169721522916196375864644387243387943127775178912050681478656546208113649186460558156027469317502578957075062621289027115548653078095121662380248973172901153757331681927339431713856807846269284247858267646245093546006102985557154498482818233470905357372277275849388025271250724445299472087768568217170370431725939525360260764324512076183822628374625229847994668583309084522288524262979627748311585764597979021093047546846861864065485330509456562035526660778185614513002624316582475800846020223329633198016969073736521025493654543181730697543555227628427837951290504119821495186062340281267257461012741058067478923945081299935603495788419724407279160045675159565586662968260622237987475031568277536134871807035761107371279495503562060793689760922902352956825731107876332210978684523490847621014427075346450936665637134316903918354534929586920985257357046133932604039654271562466301659220935072933207653207119604089266875481160545813289784696990861210336035238831730706835685459477973627432495429773124565419465352315327063995947373656632833107905097981326807296485484436645788729015134813019530643905483543634366152573569985541651084874066856145492868424277420396044556240432789943723979807996736986700737736688725545168299962673619690430086650452107286475664585007898632863089843078116208257196764995528307636141210857136176497452224700184443355120813569296797288810282451362804818642209322963829768328117147042551992360341220556387307815756263363888085192633210746222753362264366802795818104919562683395578415104903796541933142519166197386283472494393091381775740058606044095791764335478483173058799889188782235022949300075550675806665624728005171983092513943691622161443629227705043595453463579766442833260325010655505086953014554835535419344474081312166408548641763585173338965834293650823108138795052258552736016715747574610742691121356141574996079009608247722874219835362999633552453886904799821149487728553743857252049330789482054109318470912672424488418765635994799701446871115674007679363917784009385931092773069690346352158813863232567730350695203960291195776588961262475416512660406811506268564332506442168456808584502981528702772648843039725987652587355757883315553407961214310624201111192344182421038454012401947442526546286721241286456609607535967506695709679823518297947037905031777760579939664644536854982026039412713158951706687947398759703219344754428898402489466156286489746128997978483267088574287310988103787104481851693747894140746818191596018979145908915323115807173884756383028987451279133972881740456291259583326163919715203605075404482056570749047207231021208508954690030373280452630761082916760807957277745425993031487508965438724768275461868292053435756263700874262246531422560028958653545079146273356081979918636235381886631302145920070643148798299294788743236129985386492659660449531465008208478711786932681228952593241202581681439794443463322754954843869250234960865291938091872613674492700249666708146981744928718179699017153180964467339425283888805277500813327921792513419751661750640621044587666682310272073486619097224673192362907130982352619555612064179928881069346009046714302407287467577216106439753279877408366417557468518272891915309642488176883070633026346452811374210421661860727300778282822558215702935740357574994699261589164456399139008596090324052494952138397147216067624953014745348619722461527768363236669907145900993789712902757559423980951787217831320242953888377096288613597871177332297117311544659697618545026386831820985702081184487577603113227436635034491870919097447282809702944623850415085925525558203331063015163505614734188934424067684381106787327879468880397252318422871095778429094229838431413422604658606714565413417958741184818798387534817116497202640743822331088838354251292326936212391081375671366434838039123416914272246589662413150782254520218251716887481688600391437747322066089606504776453790105292205473870833948960783457717287884567917599737701072015168558272212907183833993153894478481353797504703096735893705716366242863903865515760635551665893055844103438357198836751866942606393828923285964436374739784420746469857171775186956643149398994571377115466376706772454665717107803065423577833075638922794340118850468865471569398883662881443435270322468339727175022720845023312321589797481419949285371139631109352245729822909267614653943316160632243585753822626500138965956006412261209841761173146602099356682174387721583380946250159097496466489775591690883176293812536938210366720640683313018797822799216737157953721454391176852833224647762945901324401581875014243028886306607029572700543299090835692116257829759573727757744736178310614074699713323282693802457738234600145094249850268158628580152250959962924858407314716026062322060386210562790135737722017675468331218137516366804031205166016954928947463909797924450747982149441266799618904376580120444130899237927270145729613324017538750238024761850180365075132296453377488037024461016549011038884020581469336360704311910362156427484986546285102442225700241023839671962406792673668501337062256985032320556246770169349037382473462552055460865898355044551340429295101286121958051458955470203003211521982421776893686438633783423182084116667429714851551611127014025907590570134633628301063223095602292669394101493319376034568272039232760008127257060673227112344459825075974568109726509809397271110471344715973940213636642932427566925191720130026685192706374736242984471098190829931909787272625210509734251933837023636385172544452272490309282948780480069365077549206528557546456891642369301295882291676729892502300203220141062756018244605844528537381030691421524251933223834110032658976041605800815398958546331899429698145051137281358650638760469994445142950860025749413220741344644751128439014690301643173360729559627448928830675761799855532104166589110097918833649734977669672668869477937627858566356788910865441201078697310860050161705928378197547366525872220972689549939301085797609608520640229027554817609596731967542483594969405284868765011841146900532276495423754014434614630137827383532735821795713246607909744034326906737939018430018696163657563656601905001831891794070484418208975728850585724073743240719964724447644114897634498846486865376909741936142163184297483408831565946721039567415085733540460448717608296056393941401484081117603484465526557610984706689574087629123712043092401003577792937730953417852173238901571628156856485350451064636672512483154018767985536970676743095457025242740555762529178796226193105093330070683498771111365175409501544950731161079994218471581743133637020938560269376900997209350262149820624793155335257815850321056659140996702343197278741290034665436046407020311183999985581704092804821353104100778058990944517882116384591392667941343475220375924373934234330509132324199159506430507966725712860770571219619168131899873989592632941290264343001679885464734880085814946273430898513101155336558714744925158010652407315871168969340985458694541648047207748322326112656690124303995691647305352570622159931208877728869849319960910972663247973033857419266103023750356362213567288027735333202433724048510485383282925220081184995963403523356227964633075116558251327623410995053811839576789725759863068401733081206823710175132638431443684003345712599869890507391238761287531394564436599478177997330767315172040789745714526576705561374815697795907928662784125395922592754147147207061779483757404026709933603545404443812586870584022629603142252056182255422030830149026107099755003101560153259855407105414505185029465122517089933018108195961514263185049284823779239679751880002666698167411790345527920168331557348411278956262791741622328946872724648257536049816348145466639323094333610856125387343508109575773346016832060111645206727845074754647811477646939002393551824573645390311551359597237687297251847579174322054011824455170457783213949592292801003564537933444861861196308032647261640747983220109626472399260060146767938933247092473881346140005679592281359600080558848718126715916167142242512737705353622508353035520503157819029701883875038813005512693227770314383323919221517088732640380591113191943922419188907797673884706569628533819166631236449597310750806751714481080346403071848163552061815437967599858261506403110489866135181346776834043731756696511962885820560969767697853123306164634847652875775309636707011710471191066620790843916914163118992259438706711015035721369670780847893501384718463624488449024748473259357310891284320336847647393742610870949947533282702175025644286296228122263832349487875328077931512670017775374733733702330200013403971404486127800013174986586174908662202196673082183392701816137359496696442532517673600487888125387221824076839779640385520171307664579420508880425790998345312063231736529399463252614461095296851569428328894730416422681632583450207008965449086269429637687782172656301496967489436737584957599888775485923796524099662589153201166416004048250590411540320156330918535424959139381779384762634904176342947673153599675031780386847081760058069756189037306191999852185026677913100788422493863811450649163615700178157740533399257186899569082728278036106868232835942264091403822850621529860954917370260698284741049044674027226632298205655973868705284123898409911842207027554352400576258822628600429011793720274587850789470661737984505887040388024261720531768824625384414754067972495371647479921202281186752229900869481110675086257010135086320083239908384925214905427215990466494215000394008581812025003486776740156252284499026335503463197143914890175164306721583541841850403319654415530752849138752535381314566632632461350040011612606912072164173033345592618420499221082356288260491810046921773865133665432353669646997297090916417281890977079179036289683049588108707578128031606326622922002532269975802921726859891853528255868330434130801418238284741360966520400604801542352425533018648639267873303735546217705732435665017232537653154176027979560578826507025053754479876768682830444956518903296365276855495036848316765227008942287474442065005949421650168477290643709546196036258089478717115065657249617943462065101273593486958689588291956424247591133752645510812030205694946412889631861782642656117359822009186177282717622860969687315543901836035217585794829638150171990386369391793086697434070682370088637895056625827372942280118548283389068376405205212582463989045539109386080156616003164647221495174579163960395116040278290726599917245358003401520548145284997623201955712725211775841841579304818117875095034876610294847233424219494385434822584483838489151242876762958729735984354393503751215389889618372802509507503205229764098869458648568061171493141603965325014408849999440505343983952123713092133529892516109358031759697979469246713583748745326030839120647041837224952276594837949839379296209162089221626360380799334526611466326279369813720707084326506730700201396422213844887511433288053638223201723135047177339882875682454495200457539628629041802475608333836368952181810516149180580227104300608300711695119352636993666917518410189839806293203727009160012721199108225893849858537464085704026611436764690252330488673579284168077751745287411739976190614181564301885736098618113890643803990634675821500114248986868782604546657224643579037181667668768440484067151426928555352041304789214040509447922073931745262526318870133100371639588106933121049311145102573729317178199825407039200902423127334458438559962141403098349767959366274694928935859254278162860843225331974104061789303152964127566042300262860959032296597445884887068570334887782546799003897476580873871878117047240542853698235328713519649948608498889770224595420722021043200697843153059653384306517701360672624780311962357594890686020692794381736291252218404013672305988358802572707462644428931881997626012443710892852624263406447445863293100362104700137173278817948891197101028423668650905275314795393465727751446348573521318402712645595046286547190684910942748734078188710166903423227370645141103533860331967112902265398616107358732197692664441928809987788126400565452519292680132500218027513152723163288090369938524409009185963178822088513415027938237692967459552480828903306125462931198822905756174512385247486609852907984878208345588554629154442632644232522341830539148446489731108802881967913652714424875089870972720561917994362073603244581504401233551131025386007952806765230162041082785312177916033628110785803389712068194672014776301514374542443553758677234022318946967005550920274337612709351201792244892872756771279798902772533740533188592599460560687187519899800133303708559284612972875638352512795837137448044750803842376274657624796617360535468443841584310322956418943938162299355492985363551692642591170469334729733026504020234725294600630847840022122877207497445033724964493375439879682126077816389259988957137039652709969769294396814680657192521933768986003753768377411747824722883893064017201527095111160101266109435261453882153961966801728223537067150509804387729359984555952078119812465595512263011421133230880175136693235144710147996908177370197219318875448619403470937022129386192406689812804747842340687286861631156781197734868113410220092492582761964910423231289437008418126978047863092335893543150314703547361705994466347301610702895141139640022744879993200657703799676700139239275352757512148904241032284866909227660830231184884505118085831923085638813237003048214334421744370615329786472142933749558099807185319049257038882792046560325881343417120268227809303172948495261870243842318654108764976555461087379492735436759998262808048257462736443943524571002706242161020942493707206293575818951405657246371522547492569561475836479532967620142998152180850831118566512743156734949683619360532418349846474553509584223876918782043088015954386569234446441682326313568797653124639375910243107739731239785426340361449461411735369571658285682237489801851841086567717440680407281138827658843458737507309912775094815743897420824980065817464393783905898653453478644151839522239797280397386461361707876915287292045807256615802757532463054888870596852177400450826093732504857289178903785950370929031042632651002543062571108344530212417554227311592980793548999009437733258535377890304677318010867492579305485131933118068292610411786707090437154264986267381351261800784124326932279903134377806614813683715167943447544288264216223055697943730088626345179960060483512356413903420350775280911672889593921584943715504173256541954129981043853136941753329352647410421584140430957376266591827824584482142628129894440256625115297020725725679941973402089304656787384058924461552069993274678745486702622906821696787836305638249041287162850022769993342187054037438726613321373259594453181079744057594328378096264078997131426795502814081418907153109882133848225911579891199513060364117561216579548662893296706507854596567035291180529310335831634709252652063903160000082158704403123136137641999983402836644101385655143791339773365331588665607673445284204513673332423745416608682978365302386756223968264714915324431138698978759953920710208118220399050650390952202899428223098238300139878650859222429606242556986498677105333722370828349577068882061412723336212894184715181195807203644655874930976286410997845038091630063022474510790423437761248046219342771582879112011653925861631999286021239986266986881263600807580467019049353894931059349919805171713712581107843631790701029382003281635030533451510817944860517507154595205998249285010920792911217505179408590250647827997598733514921990517458670479055050773779955438343777418632829505183849567867369027765300599707794337648341718036629327248116099823842452911169007642874246224750847298982563322272712141843366714403060535973832129875974505923612492343950265762072775232730846633522726329930920479140576932227963065106170513669455697189589063472173936408831802833509513924417825314066479676513659858941947549595169959428901630362440770480529074466934371465553781939429830740665649632838864109299513755538023686126261354316595527864329787108171646535514811212714891068781918825306507520512061877939962296554086106356675994828509579355133593169092233857127774070141762030336791771539845396824603873858003983106498968049789363733963718741354491873679592097186725666337429865735861655179876594825005258706197428541659404122738535337925818463739739049409261844184844829126810558610600124880985057248118842632077177144276522929344074919461369445326551726612783819689370679859738727465338764512399474090639233799921824621955225695447317818620087059221508575135055731447583553162952653234627858351536227280157832551045318827364598400715954749743696011122736132790717704004757765708671691600435626031596368974646851201746396177467109371730648773336249659515394609135134615180867675449081194792873935642877975870910119589248547070760841233625164747066549391173505965857625154658009864936012852702828317829737696979463525209638986987463620208919142692869542016286843859859866946380771507831220541364322313158964269876407997808677530417400816702410293271700422210235117069788853068374244398206265997137346827106020431227421778373026928151972319247204619761770710990633285185481607604008893861879933571293705216981218377499632940837440315756380434363847050377772342854761029602749612334149328046236279057799754756198399645294412901275926978437179480338721444271856976674173974563625660908118867978481132081177045189397364960792495550319108997014619279328320366726675006211214178996739265351561826680346059878282731030834257860638985728106420954361792843950237837108030402439894953423587893154903133420096536013374113448632205344204188605831455376842232025908286538339801087222819205531006451873828250263184750028615334977513873344319953820503543544631194489262331546222134310903537749882537604432853241080118272483347121170366951219223618189565279685063460824382630740244818621688359477996524878378873379064617963213637837812620006085773400354422891976723395699240845480028894026800313390452803092202690398271974850778135179988197056363482631403170215015417944675586598677665859131267411991079580295448757950142295077214641230485400330934853390929208257812085656467074189669326110269946067254356045601139169303270983217030928156282135598471099632963697320294154948464035050594153849603506100066347920233659991652679944035298049422218816478384751738805668982700607191509684264562310373408225978085553938181513890711977481194576741495132034618698090848519141532478227270025652943932914344914962277106259274875891579208686939700713495483304861237044338422306811732180079824925945361760504164369958795206441051250073199445441784359468177813100699792987318524870974535427276274175296103451201276593830916359388647884288957318951702900043520083125976450880380411113471349011609650800881345470929407445015565638041995311648452997490372662280061027643182638115062357551772459255204894812010160683959404493659671005356074220192293907972018006198033637887432945778073339368592581003512946665009101648767062573804605448883036033560329878016431588558254379958946295011102262153923385317129887031129548665107729075136548154452738578339454912458918702368586297186204445457364878861948275389102526304743347810758033828679441697465330059592506623253828511822052785668887240677706129764453176108338227823547823273708053676719823201892375833184715274953482474190335639995950644156796479895151878634788307116819966608588539163227954332105882370786394612592459959251672522844760013138408971390014532041457758126937450573920452225777221849349317884836954139813093540257691551561962896755414744873674371879828611979958203741253497718075115552709028053114497776964845901506336677043121079891485333069987634915454160116695158408432583689429315314126840998392699196534357568288939193474490617001363620013425680359565211496151416419346548211872353656888513045419223664079387444963728074201204440905049587859031292400818063241397630758145082718744835144273360207431166481329445350230373109561383936777782624702834891630812203934931886363570333641856356165855923296267937760777375786666548193120207984671418067621998965459410073430605153288308508916071691381703892252672287320727029843167513474531359673451996574103182915795278452432269230014535885685063385903624741620492594599458691244766966781332604865919900935844692650977173929615972061707384424202397400428923175855511839015549095164029075550235386343152123446323426716340609456718233086877999803677608553113966058917472533984980406018934545403212988901860026742056478691988750707204147982519570462860644798674556713695226281525766485246351415967317144063114642053287201356280358373922803040438746136003373425367859304194956572601505692006543109579716428930284408065913813228458557978106249542251813314906923212702261062269499253179585914708720689317392510792881143381200554575807033194222947143357420843632281571342906423446830981221868896970083615253710049132473052601289240724440256996123875197809167441572408243933532357060899105506410880319766809360490284526148729942670465380775677514042541809635603605967050919555739149548205416157601304844697914671763173238306279493488624266399133882508373337575954110845813590317474702911518188636323392422035876035743617851648378897017600112718811404499460123623524029695067890043900589898555127967652995476076152198380816013606334578267635956277430993407225460044135038088471847517319533338380131408678334300629690216036563862368714694063097921181600220256668148629606614448491692773867809239918372645530031687994244647425903446243601682433643959766057207317702037379113621981495358839524227590781227843046534503029677679700922397265944288740034354787609661766694140734497644265144221104946733323632654417378832987539897768524070816431289823924443973263809026113953219837238287553632215589378019143708431346944819918308922388726681103803975826656169282852545690696215688219495894595023476322751289186847112816620100446301124798463074237410531521591675691202981955830296820567308208653443951165323210166635232630959590541698512256688279302603619736060513601982482891398331038016816655571802386464601895988200421550649235804350522131710113589355255029836401768658908582967547762834206874817480899045550259139557582855760873837527817765273652993583035965794021708698975977256516824221942675515304927131676538160566422828261057755347062007143119409772187874859066312613980792300430488051572366783692946444122072816939907858116436435580408465310807457199674610243438229969692301561393492739544830154775727292381028251831635346383241376046481838045276442059421541762293855306804423569650819829215242240928213382730499931818285081170171514067007639661819769147956440556087418698311329950905714780612974981708222048928569779652417770518920308846830145555122738066065583602567944275897703707595854979530541593022666763785514769345055480874031209606638698454568402275833007575739144730011688657590774607737669931946335806236035983124487155094327202117654858937737766228851075111210225137399350329892184271442521559554500824171864863062034303075349119113239012308675388816191405930285816931603597066525881296294007284587154068020404787183179916298365514248242929367824663381638946425481543754655604078594710219769198198429570337957055073267227062201662184463855991498552353489535281535858019381967902990840337830379635436713003712344669760841423493558397485523900590660828058056822818705050596992859564839429334693205201146875103346889625467242965243149947579161926269563928858075167243008083810717209602064342269149772416560694747176932991639737798901461007875241586923092722902234563254597348159881678744433861525981686943292299468440341613239733645983910141374204016164792476522403466193297714733130224891513679904556853709862581925700680521818040581290208675173281402557592452581039875751740224422773199469860513369096841515097901801893000584232372438061393893744976064772539671966061808733042248379107796166784193111578090829248188246263239230385750244214970059342226312322243355385579602132634558699886993405050595840007930753680155059137082283490824576346574525169134329703923384162000613394816575854916747461154437564109794733426032707514518833626702904463253991460351295426824484037589083297631924081488116166218775907282211071038063347624699318367811602849100641904838723085899327314305838627227096894618776068998895262333085963883106074003735456485387866409774557095608964298703386571513695058534840989983624462044927402203289975578314266942012667943490641529413100944693872438942656069806951220262408578678304676672107549041592566920340375921585466154236014668300338012176307103338341061865149856446961474260517004550359059696544590981268366307056662529682278621962962069728399877661711792324836491196848594019077304716931781118014515441381067020088525786332937327524961100795782322999169420691004355660471671286003740816373990202934237041377218040242824632257274985183944028405932489871139208841233071038045736153407826527896032989701937215080249059508984728677199853258025208351526133192362632424881852213957109372228329943737318196057296238593232079777429890335831204401829486563245545887091001251888759667185846191519865905035303797092911851999830642326162607676218403402511615364461193228544217500099579231248466046944838528905009303131838594268874411619115501531513810403949217250037233149699452297616642542289628433172510362360932530807991651262434854121659804273653199411779109960705159093785787929979077246400305517032136442638976649062793059677962152888050592825677058648860598414736420745699550792279459625114903386581386502732429243034826789909319666265973865701457356302097613993207340088738759001367328955984921381772903688517786166066280050025696947336058265654251059477944855062691865434086392524206170892863847279879629187038816068635072218274213576375961709660956184459342535958680733355046442085481409788508562348898946537965080466895981953127205185455823490331603152162903126610476188308115454058179048242667708959676324304818978665765760337237255698830866370642412411851819403398857988155031758381301985156797858873929745848018518855273624040591416926451236154107985652491324001530584973741508413937234421353108655348881597898236049520750557971551119952257750952511910908850290097673931674552787815983432545101526762729554468334477893088088291744794292755576244485833110513807311829554139010943818698160154697837020922669937559785828424329580007807871226759581774540895660075946372537953444896329440395305515814558043047823462722130925219550165037923565651314227342066048710194092693645330385299063190571927701935760250874861766656360563644998782271222965244902931871306663706770321816304806913074410459378848173877091140710148202427228003205054515559975296996015321467303547603045937731439139771663066158301688132220747118201872418952920003686337888766236874748554477651662706423153375456895294716492521750897404360004674377301629796534592727998970488648716904417269804310343218632620258000878517018726900771494986397642621522262022629940255719257708639643050204715097100051709649444611401305516230276042049619575867540455615372450370559020561761447492174385217300176982670927017059503269806111136892434655561510778822940090235784905765397655284647751857830995827970560823316236708417970611193432555832018540761449863574320275921339667710509587622230932462923439060646502582393900429886419276591889578473410653416126620441178075827294785388588176103736541778491436989532762297602901902647130682287001412157059602724140121283077924036195586294025135019790774374845080762203768664171667412984524774651110744926913184893078415786397767824062449828791061145423635753151996623672546189562117076920056186563189782194577900574071069376969361073813692296577204931730703672035675737717733269498541397674854051451774471666003593031736453535454185267824186002528347766624590630886223741211063200341591892174237146445274447695819137541923806332908526836035114601470006388114506439054201451477041213549918810732462626701320226840546361758536621369905963601603847235420927447059540571022725708103802759075528818574619165133566037199842748462971777725685887954049556993722372344427894360233545233963788623055904297872231845242012528750800201625269552408206558052886698145963233634251738464259581470061289742928898313784917700287539296028436921927189869975859649316996603545403802480463864669056168009348509887412583361340809437030948133898397818746609588225945053529248614480903118019987010654201134073941499823992938202840784852114240401612329886530035711798980566983097543229109665995618877630471710393205821957489314162223476931137767800862004177022957833196633316555391426766670889111707976514106586142453190247806080250525990453692854124293220413307234423978182503161986049643047258388556673171176582079041954405427232521949256951615070198071795732421149633595583333241341978229084717972858283229627000159582228172768522207573473713930508628566004330791242724759216392253628375999040403132995985004786083342926070382605050717627718334627124228470094698373681800454156773255795923938334925656354354067995409656215103403884060411864563227596771425751472827398838544692012964113254430654547459060859858381564174719851881372528107104322952576529214156953870615618066862534792217629753713025906416119644333812444562898451048060625643000234278244606638526154980026791019007726849388292238444452252633713936009700995474179228696691027014577806400250832680271161821077031694285307583961893329384219280944997336078177579587834072738951352209915804657795331855039821841537887441689337666094598777735550415151440893698789540316398334963732500473901642933381049251044880227730190196864113709016339777048053935838354927295865981126870157151339211633422801532312489493139638235067336201332619083882081189277735630325381724654400473245343025368545473828277546004333140568524151573883217451352647536760681565013454138191976886570053923883340577548758695281969016965213215827482512553985439519364934384428116731652425514276533490676811399760029808866647480268177242237258854103719433484669373589142047974319295868073879454802219153796536256324111970027416844263343713950360997507660991362983845349739036241933381828063129788881233405239827010636838540941547668491346272715904254036023460008799780783141663606470480458925117658361759206263371182403759318433253541338811663199757401249495977988479060401475826815624879476654244037670569173689293163394357214080255983623782619019408943981088306717877168284390379911752629338122719462750263966315167460873077950288885913007230520939457323391147097591935442556383662174678240700466329737940213094496267612953672308031251316953624495976197472144055646715062880023986768372463126271055166325860223159549406641093104487747898997010208313422545056783357630209137252340767489460637249840172225785219438182843406608008028723505628676342739786766559070299148149868467517294350795493525406513263302806335450013195932793461403030959958456942147001235979711704614908746106498645025594423049461289702121521088630302410556368805220462911686206509163764858760941021451357696980242255441023249168951084025518971396912079962106624320726638633698140202055878512157314050180564561770659601153373710197753768637904241080758334717344188068896876504509631755157451740674217987077509281584895709393392199140408472103192517357395195706161198793917407685495380338606741116189064990043062773263185173932907051168734381443823122414876150719089443513406338056605989277059056549530018399820249415301769477783386348504728508912930190943678904187102666110803852972306472225047410644754657830309057340690871743915165436180202061452009950966331275279610181243341577553858312417237691946450298174934945116775490043419159333001059744425797845144926939594664960638921985222613659514108172449532339642103971655174826330591966587046880212929715296875353960559234892318468971269290546898833753996777346297378492224486262621562801496513658017549390785508705153367388131031494872149955171799131268736024758454459953336223239805475110004666109803340954299818000384871279725530103399837815957067021370197210018402002949034279968009025454588408587161250906544915735258281831066578842612124109747542892970219231197759952457403329757633350182839579173518829222796852960444211806014477744702945744975628421139990541686290423183422191048578629028104563533981873612857811572585900672583094130491662378286346635138380801186363733968127913580833687865796868824183177278893246336239160002935006092628145161606520647842371367051021829869059237515098813620506003852035903576079603477080711776245314524510808715839982705887242621562282353291600006555565055079553382840002687329356713929709495785509240597906078110523698301468360512027080169477297842510327033658619773851133750836359234319149856856309692563940723767795945131465270425765803991963701303402292490537098874427069978561445162019099228100934839120205223539055335009531766542530421558916961060602530155442625956744094411629661142414091657059145261650392901334266157293869151467672396927430539141238886066047326013675083371548222787727173735202165351495763141717544562240037026594964024554413694810231306268786014235873598596432159743397660183621597030908270974116685515204180274238704055041946309189460196708466822248883588238092199676703667265956266253967892956071836151687565156599538463949719986397176639820703675824828634737448187323894374840451636234604949498308293178943169124570727910313063607423296652942454847171181252606800988093339063957846885796676411364417937493250169883842778702893488850024509002386018098358230006691498388551646887172302466054494198963183801980554481362486715415683845356690932383973745185950709786025029022291502438197917229072885870270087335761205654483016516995500186888443971393207678188127671620922836938958405930215721221361545592899697055861108657849162578418168405835612298239228596085611488261703859918028912606314073691466772934307891488886111434384256178299919414314452204114916898710082479320342840629721724707921413857771971875759715189382683600236077978874296861222261711306093230862473335211999562746896653654746484292798570458652907798734149799586201866705443458298928142285342959078142513578055500999564795949694947130527568016887676438854298611293262077552828242073915542843177344402554492054728182346160137810827084400401805362284576442088658026267152071831915946750147271588313344463891338830872998987998339467207873586281969807463434166544360568405493373136599110064334289011773596038032233238457555650122904819835486304224790906996937004847901732077327281294945137835634368794563748579472378100934278934334688203171904868948994852809791521300154699042920828991710976997532546123833677597439765726379607682534939473083702341173702259786054443295835335356275525147925763556958172218842576560224161335178370975592541421188489137797710631418097618912538970474667357806997267330139694365973245104750773306902353089520275211887596741474100706711744555223747452085292506601237699956872332840514419101089215677598395905871280464851615802043999761990354395909359631641663531980356259671120871327540320854807660892909000209645783240538488818923021251684693195144125254461769131216532026453947378146410680194679558707293772394702647641701603950005586174644917306600500117334785863333888588823120083910772777011336089011528032229005774867762129962137706449430048594427903498567590676187829394278263369748596197788449995724013631098319600212633054219952631700036171854992583212908648479338475702896685176334901380903487422879397116270432743134681138727104948269631324179670499896876828484017183896052651356271728023514095185548430545525781159925574296183397244758911265413102311501631332904718405734515434002901453151486482736838216710673239898666162468361230038529174209725707079119051919919309141371556877620116900513829579568418721159312003062991334684579452830063174976281256675572222658852935391993400193184949436942412422162793001957809408942399449461735137765395828630245343203396356508633954374987538534581299839185700175999088579372565280247480941545635242294473989616735470152857078579569246679795902510655060043160969334362953336890368180692432809181749703796228267974188314194895916157798876436462806860153007203309985282019446851486236081588767629509515654465828247632346055906703490414953692455011285656709131391670584691101076240783473993542975968139168699686385922049801843841143890504579386977040725474508479150373864395060306446297276181340878989538024208811561361482203681286081590263677083349954109198068993768500336627928462562690284136225102844144300214433483855993771711837585362481968084935465567020182836259861987101181367059881611150408274205546202653854473632991353931557124205823027377327888672202192522265784575373250845063046804997883102755329418089531685958919936213884779330021217337501639804544359542617836606823800741998722985900371649988426034286675874557717306515289868150562824852461814115205710818206735069247149819232215985256909108222372880397090469133359129024486568861779485294130624274776658389329889956312391883734667173321060010168504092676281338910599531274361165080129673647891169563442872712359819641643833505814891775246878122982452549175548850414759263116412836699656398461536409585826462333524302655398948815272376913592034541444071957570968457262166976338365738257465772457888164914721788472496432566488386574023967524572330161578116591434924343664920836472081983723154547341120733744769343962397191307744169988344761690551647538801072399286119329940102128700707024891533378408046238969654090071017435182100105427001161933311962307703502186086436185989805481528718735455330689348744244761738507343245151539589535159015382689850795179696848740812184482300223796813721710980104345703190344800077480592042541498339136618502797260285827907285558187049675140105329267492048824571585908274151887341200790261462798738129530534647908539262994154202706692336327814518079894369641303401355877480058507956830724939868351357668689128950559408923758510734163969966994109446656671862334296176010283240140791246646517154315786181242431972501508144451056072567833841854798655455831770883388737401749936459427769942377138341622952612011005006466001582711163872097038240914766412257779603327383966854731016872128199162544367451023172216840237006920221747650681224912720870923895989726994934414452141737419369869648557075891508661712407121912684868382102459581260295300884705902700991481050045071449361064452536157993240814726814149911170217568523536288546810067937499431676422535475876428303152801196485628276717089668129787168947444001167126260406731797723741313222070185236101030978448755731052820618075759338873356782647322060938870762010792470432989225641899037192466124105838117896828190620594650454075624467185160283468061563166032246874451183531585358599201729483248479116382652067378170387567569210074520006849788870416716029131246969831351524576358796373348310643455906666005205873565324983303682682902075821905756464090171531013096518349322621545784999254709508378716647650190501332721923919629678813872007348391934195367989366844017708707378899767895285191436252019216936132929852286537442503516979207828111730056053662176827126539472845716115226958718950376209682442022546037516089715309304669168661466630436643991749361674590788794072667204864537623245735699607249795296972531387940516197685247556231018539066757703634091886371120356625015815127471499314011679291012551543263117544962144395266602086351892489688275244810524712378112117845079517082510875240138938316894819449886731190409362881672361145209147695475807370886041610647921385249988997941607272263416812874480872236734554595984048820185428935325527809393455472016043519686778896090027376367324588088162650581265821605857266067528062122276565263093358033236272251937930502288357720707922764143748146418423398677386485849175270816243174649568921318344442650000909970450093689990829562930849505969512443397689699990815893913034211432634469632376304979799556912975760893670308956324473145683634740846540216268850297453019054092689731167902536796589961785820917680160093863156214911580300309421962037407070979270918171982140980447200922707221083519292793958888002295441279087571499120577270412700255445769237258129489827932420617511498858509288221435423270195488681803202948319841363210601361437297792342336283470316523369422487365521207780053783100503222681562210475614229520330088806093523457350087401444493077346365256748953833605043838756888168977456430016709953862356250448672224685590484897191524577233452266372893539485746332239935789724018544219461062280717778590712851485113222247823066088065332397288347734777056741657016582793282305898095522569532432903173453394054084016671124069885484123128983130565461350606304868025585212763931034731246877932574733755025476964908061074013564839126953212590369778600605741145193179822586344763321863219365320489436106801631280618527667805550134861921161564409831618648826255794327438906712974007535856664710586312770642583686840356443655079358936458751388679087285088175935930045300386126769038428623961384432806154948639405654645650455208034302976180008545601321010606661577835264650121184924321365392114635482956196061967657844975043515932389089079209700720011836582137647984952649937566450299159597368731223320810718409341612700154331444892243559910228582210916955302037658570671796767108802584395267029010734613065634316442288177421282900929955811304122510204986185676605473148996367077167634343487514251619900243325018857869033571280023747833864315181599843951224715255982024434237164814178239923274193643661474222623734116222988189099678146238593141363532951443064840824434030971906658581409340849132353789023436701195844154779743918620162700079181711670833582056784520577366354469557834072869796236180649657907396433959129270012502418377150670161093685635924599671238115061206198206504914037271908420933842855350356981715046478997216902285554933285236232701156563149800352573300492786762613102392390623042462853724350941018026326897468632697145996844775227836278286147968116085100950331782789335750216407754370498534238908134132011898909906458465440056927491289740179128161525751627431992422536253726085027989190169113892232876608761285502019567353580972540101818939464804778728782391506093214624872698272368903363769627222949396976061632282666537640305351082127913452911787113112713305463806791618514044540579662099435582819455405976258266422390700420867407841300576543132079389113840735235025871128303981226315686627206717453417389009313179449640379565990266986094500219332599189810322181911458839955048260684107435683200857675539668534287633016680749470795477545177566220240916932609117973758436259798423948419808988922167245942392109943025799157359601219592939478400921612978030404643036785483812617142186719249350916325028102920307613372795317789024086992995389101888654108900467857748352114021364269663547647492383063158143076891383456439885414576933155419477458954987922548360479942881256236189859092063985073495850687246230999482892278302354475461132623130873484132344780762963210419552833021844979845743424266249052057281872071030261757129950597317088010105400396599754638760822551936589168513301026414246551026970475442936662598623786265729997039318932419131518918951813008163993782322184116342724294598496355588019043225751002992817592660402556417833741018037721675026371234830032190126076012606636857811602290727420183213911798503500317160300424760781684521435795293247670735802497083113322093189516238184738939531593166783902719363438164282429027755433291212771238737637692480408490532708203764571960715080035149018399319538805967852307196283318864323081477552205316208502157818774080809832392558039884639466027459924894136790277133450196300877753195740811662441466794871632432562473316993321393785436489515609622663818003944263688637009349908943990753093046786967424257269962233735350806681056474966658016152246757757264597731042535944493410410319411723909366632987720940447113236414239266474382571784348540327848058643723650903970046300672638483316013191508995463700142151549771832169261653606803052567786407102309498559029155370239118470976669160053744722071500237699776837031753723517204608974266327295103961587583560399310023724798129832499043854097260575960199136880037623587391377596321594122694939898357914020015939738357486206611248275810811501315225753998266530753269689183365977259967038365127861823362941177161070638825253797831423116102715721460088085298608535956577687071890392485845963423392033478662332309311767100129948371094823734266730192606243880586457206959229097755055456787709003479920734737840647763617088588547870054983509262146711596617378005279284582556423339897033048942365017168080515730554632954527073685731703512011182647128400373093583271622054777684689423279802889122439243742938563732411472081407151010474716195016343530103946361597158391098346069904808986566211051977136396724983629374585612606297180000256339808230838967081618957237530251847041284714112366177586128370632836373163098693874413231362431557285151740089914035463660981261812708807611603929488686713858660956094441999822654973938380415914529859298526612987736036788724904304781843760584910754454682347902579877898775756289900471734723219418467374099365848851874760280944321451210852420261835366121970577528199654798224049499817073063522666747334494632957262993133543713626685270349952158126920662798802730891985266789695571745239588641050177452853133078887672387048486492379435116414475749631449317721052243477290835608540661018775437555461169524048700613604635566791557732981582794374780800353602142913194122195996138382332784312795614049132128137728072801029099872750709660089400603983669615594988846935701357798262016332186768521063385400470671394978717841710734961878323271791716401308495614365331764265114704387365537523907623210342635727256000324007695575505199674309001464261771806684875422376415771212287127260158310253206994319404333137367764699346083184538792589872685216948217526584325667603855495561488627999787427443652917882782049465217537906066818546188861807948143858824587212845568062970399401953364435089174341943658656158384696092466496635932259666914378258895228910732234065468734331321536414216170820137112692496061608144722402577992357288987679304040062148157059423773943841975748731482285492264215063815475702760256539495968164790833120838589051124491299193418707450970479506682989230805301400372501635015710916787752528657523409543386243331180622494442597012171740069313717646441840818410221950745743166613415645767590688899224670842266628013285294523333490036410474599860967423388240551565691657569050614656607679028367078521501055834127303148023721945292376761073590542996762166221471448887828270327617889110348772013362979409537156289748965923797394785967975376022708764471576642425608572812871251955075033276445012979927203919571624857152960929068930193184994399595698988437459357087179556901787028137661127179867087477614989127170968735586647309334787081942940893779828833526311808827483512682392910003576485152923744618880465483466996810161027490927299069619376654396710445907320604037004354825414408968772779300651857256157044631551512645134328478933144107407225057700071292159342309335011708709546024406857817112720138922462660050557600209411712118924856126599592132213669354172086202446776498604991062497471239125892359845382814967312424286971968901876870709244259898504021502427092285636394859064280391709654602163709763906216939374078886324724289886774015289275026379304281716296947390685659259933147369698712094442843543087072998234986921323540628103638079570129720580381661195368404218006490827351239009701654911366856972751622562572853963247578585453286922834352709039924761194312949922521192705863859798990618323424437530890958298300438280299596184926320434003457887107231608675337601635077131091224076253017108863473036840217195912598479320545020431113927574619732593118117553755526422573773030243035145583777488050571105463034088884512208444959553833041588192574666047280616658223039060160021411589864828212229500274817725020562558031039067144696031279789958384499812073099016115739857605114410501714933020657549913655087768365546034958179694660966236318460263662417728752138566937887884609176750909827643361785598450586055375644232031116522200591663667291972790694621567060641876621288207563199001117926204078360054506405913671999153090546397374793143142415918256595890775233673248801345597979124289296874812458162374336582406594326992176361640500936937824019757553932658095012694041722467314776049087585273988759748854738835952595864381491129121522966917607472915487553249196651753973791021787766876217113085193573164593748963835099308640749646520548859747869070486977233178324175935244978318365893328858367588203954573146218899362018119962473825199961390973499895626098475824878822457008831102827790576426387951042789359692334943316153660740549664527067680217089135756905255718956907287209187997074709803352440474060634279018738983846497627008778010883687447355805779278608456913819460712303314234646215181205572823543482705026878958167589079088562326848389786746949711726509879181391551653375846233566008491706826119929116832914180061294956706142592701555445055845553732042939007045991527371243537280246816372653121599666064989942729728705848120052443578534978408490092605462538970230415097612084339356603055512348845164221903423219349097257695933886264539332540496407713993394651580657735155180889665933414593376210459700054876849548443555210020451249752089492595087094404448829617445180458693345570204002448203796043571267629686225431858214681402342376175689630946581278187822060769930261432313861634555239942211256587275658598075326400921515729263196937473040968797597251287363232424116056948082034699543364191867144037057714902752083135588646988995738176268231186813105252878433560674533238144835501706090129450879702958760097494502380419314995545746650917107272035298996434259846306940536779184492755014823208416113623887029985670687561628949742077742281980005211110666297937725922728549162795783854407914354651297071262419715411747247654601185853808387276637461197620868764797451212898706530337170674604355714289610115999821307127324743656272604545537980872945819443231137458425192753065575207889598399499063497862840572834967769902298796191696592291496427692125472229809793923603994127678584755672897820169635063647298437716650979464343312963029416630022816352909175476203917110309005912034175173234552812015947767732654708027989577908947100877073410329206217021182116714319348682173568011938326510564323754868684893669263307710611843530905551684175351310865573073089588277879220009425959969978240776147597589925005306554228507327892898632472486886470015272542471101949274343704713145509443265064021003061038017411217428253515693593527784305097068497614273623309758941084028112925037071106377969047087113185585884370003090266172315420972530302723873539873316116384515776563973095061813364073053978651653040265276559217406314032301055712181334779507567368437776731636184403546259915788821096611915827435300958518188850095028167032079933240110333211922807162847983514858216410825327987919479036351477811619025507204633915338206569126535906182827266405646713695951105639266318461756438224052264288582221839045040615532528766670673357758642901306178036374531873286963897895843987971191080171365294091758792115114440148463826142241459068151084118889194538515026080845792635923072909104361253652967468653891270994765359978088431076395627613523434593263036913143748027308457093880319285047539796382143483391150856079417168765795597038787440528967841669231415644117967099947260889324347117652268476199462425367383140015989204976331609412034142782092621869291114557747537014336438076143801332225689387139782069455885715797217456337329386135177980173106696254438100190878093665807004486764457408344218944946409692482756040825382686548845344473305300264920913317955349919938645958801912997951912984003479288129556954628910011393384533128789818012641487890932845204310660720233466436280104907817221638553637440353960456164600942590589015078542258676414701411111668778436134128885073402217120230808393186327932012278930982397104790109120340151843017117866246380803649990020805471320979166205609676859445465890446548056554672815549327769144520603916520288569503570107449402984519644330982889366998616770980129280411086608472695514655708047347345371318935416482217379901186826845450211382321154736860948388602948693114007291985039902117080934801287326412572296206970269826902633461033648823651183516133854767359019153699294273792150392986463355710447115992056834074324389943342322615547203017142865812520768086841124721366144393480029889693276442787914389838630212620773773111122388950864913501335814553716515986561694398928438378910728278952362545761141904711869099538549420901006096564713022097540112732199405732185054868522709224920575595267387705312168985858607518618735958627966255565285316007042044258000775567121884976584720057081476920099592513666557252635005117788849555121535328669624624722021896396564966997619346752239060339569456286698182881919561353760842406974385718591543172452992569190520816897012819556125053899516552112218204923605033877099884934463789736077914133072402952576876809133538950692613885572065543514686744050766080743925387308805457916800371387740525875928690500216658606523382785445374924328112789463093351845755467270424856654980240052021480693948765427600233025115457082926124469968571705397095520566136765128846436062890881069474520729595767495841360132245038527697807246691075838965901453680191965849761559086122195785897024246635091565679028943883509064821015041304827303502091704862954506441230440416840369455298844110962277099702888818221254368875314330123461832335454694170134680379409633003650031619897232254304391490450077024159484232879143090248871063583881260817591455446705901942187621562771523864374312629745705034312802599450729170040904059794405199587950816713593847201190897213282341513266696784981444763755842739915332233487645387490113945997053479179263731455540911233994668231321207719762628856938240400118375616721720067002236519187705763594733265948835389702021476391079809413311028686683976170352779579588622068555559750670748275398376179828705711302434051262074939191919467703915210295719409670344922704062953329705305975319820122650215739209868368040178533638864134688883754527733836976928289870283282254133924497218605159797786963668609920134518805474182909958427582190522631060123161514434794645333241887984161177081458602096461403133029597603100424610892353734025044730289461801080864355611262571893536621352809548734372537647379621491163358352452710773082055343175668804405482988187256239304730562174595117377411431300865776436784108806578630657665633684615374604454355408267462087090119364283934557244772382620299996786458149991813802833511905786594420696189568840943012089452770604387582232682319550182470761560739801930309730996422003319009699892780653646930068048022397095858443406723656181498540807657516785786306188989019009029948591823602834812407054921640109779942602148366991304818558014522729171267162356821715688687919594594932728614476801696688535833912995398460133091578521739213841181235052875489387211299462291886585362270865601794737319449451254907705633476744993736906450855701497582764125521163275686605620272746712306406077205015971884930807584592385416214031073650393643876127397084568219155624588413859512533883518881400677001701037986820654588061664015994878813772690668846598218650524229416356817301193835543791300028925727500256258098813467227869279144557078255101478389117387278497001043262026680933420936656146756610622217677444753059975309478108315187187198696132409588964623279099619903211902557500611213316071737614104783510866118243077339986670344182590570506286165260129072285955117511573783818008362157162798442295107494563124893066335742116135462612704533085085477243909651826450613292383638315672605778368403787314313987986086014754208611340919189411966817303335312161863911936340664348677933882612397635861224380289123610278791315647410438567596824314716937685075535876243066642606238339286538775263263783366869094978394175917270064450810266789731677985936651923041984180058193658919820053257035811523404403664857787617588095933412095815685223387369604916383150825846682254228694872033372697871464123404426390896554567820998769637086118942444300068064775071516878835589076171372165536366516184943050630874539338902880124051683133765714301039053952147650779917090904007405354024623711692843698203126735266503765610863498235794751144542715972498516093011862078129671308250458731758823790733918890797282708794826907468587368649072948870533505801949287041215410329562757157415189486775574240561657418079782359530828139524617192962472969327824104236418006958049740430139425295811119927485876175613579005522842840483486873694517239490719740119233726268505383918258734473052261354466740680010408639906617984449870437417271925995221067616194757826540811546967123343819698090694805421761797300603532826069582379552015601495102927809748727076603040714029940905807588690146120186301914797262868099315014552796784728278205596290869502523240541630978198515519671683889489331669564161208221565256412538592817042848240200362793408830739562435478923217440610266246378433968610672852104387571419787270269088693226852363982723736757888612424513383673620591498440203028193392691722582450892545557863906483211415279733883258739156315145992406524412768959180174777151197409142907190909886258188206911447543433716688775890254453337737519996837744589028482367493927743746600236117955296881807229581982606041656192946408462581681683282932646812150595334020785442587708952332878203743203595344393763747559985541588894933326489799171516977476992927523149195950281261777975133690482649357541045154641435953034931748433231291276299587795587222750312236899204460832193119558423752186832607072290719105158407613994361132428515626110068132675035223915044267869437598126907519019123431501783056573747999532253616563486801025295673259155846972537770123339275746091080276303535257271301023253473537175824665267720365309364175312216232482811670595458287324698152585154655851325085071921369676217523922079121014342724856010246621436205245793807750086072063688453729366476422535163172601948613889712815683037617280216469765357415212289107728801394960156877680611969128267040787232717253926653279278805496195503282938124129581238150845954497216536180029724211543026867852231715745736263681896652029551312812066653636108945600226196952284455847203425896754151205038213198799741839011520012842630405424780788528474469786523241966800036818506778031510346508441612982475878339382841044256266921777610523829689572163437774584606228672884518547705046246335950948045403243535512815698905651948165796674011698983938523152353985913524371922095357086205989233658607834454850437174483569499403270274775929556692436027199474375567826295097169606084377012499311863086032727413167058589074406913957189313769217410439592777258018484566133406706430471685963283492807456071585992721146330249837434069617286999171658661039373446388571525716695610307920103259467650674406147678544216957391833101886219582328880957453105945015182486596788432293662490599673528458622397194188777653037381481938263118760664194410040789098976865539120156547881860015406825556864602937743114971473045986375331325155344021833981560619023466550868762806702096888508412468391866263836807782649026164686886171398120697286213680066713441254448227995642453487407274795880500665036174625807205316498014161161975429168347567576522389529187938789773588800065639881022866907299781962593192685549694334672976052455379263602480162656439012871554958865023008137230794235446734952317389083160323543223147371604085514783085948441385440567913280381161070742474638741581780479837679982651447727581678207039246139353988289439077348756250863213161961751792410616179668708161271980318493121429420724452114095351871095485497685600893134542314578649209520656316245733731489880889766398889044631084558540877426812643566449393723747989193019290795900056052425340788488815965751922290248307346438786839780132859347552437656022217840312271408475691162082855090995083526245538863435586975057332539731471773351137468269397243373890359228623973948092237312887320085508818302960737590283429881139152273390724597619197355107979347658996292680003405462670838954840934635612155419364731320168136077606426092383322978135180979485006166373856687626731476085455074724488835143045109823724171392791114240695959435292067135660533185311613603753517022804226891051704355979848456215858707609637528291068069056453081497690480805727985618542965553277548076193819688427100457781582047429490659996726041434041811741986914292363495951023025177546346182388266986859739758075416907743391572490523535806294744776417078582807018874069550935238152142434527589406972918266577479551013440249669220876504266378835110247543958305680858545574832156936033192420556840002199581080336824203736389331010941717527184940981344294533294502701418967992838074462553757060831642196354599702969572820079282713455443213075041917688627940579576301002794018862905611594744363132525551055115017587001495725062049597243648316408394920248558844428061220256770952416577757097991617089301351567759734553602629486577135973450684572356533965206527969175831768049728089562594096664419716875226335588514141581888281101399523033092701966444064415586501228220940513184366284919282606305609319778992942684183141133872834767251804477487990387191626061807923227967715973573644891967421565248693076377639778881073148944430382120842647352304868562037729761609447137253148012073965273442790002366126543177760379703580967301296508273406909560396542773655008604036712917873260433660702327384616376344599410111088238876251955002379975524478964328607250048862197556133683428432219122386913641003926543022800604654772648927064503183483660842346686494273125952412004005143595655791772024925706635644244688286974635687664145003580417857300456655427594459095195591357032955642196216345782252565849145859692393586995712049509849834310905519408490190834789996598985996994048111529052083607908082765034729278760476498632566176739400271272878578024398867554501363963047583764522766603364963570763022166403032821865154532690034872624671681684690149272325654677670703151350621483016295886382696393180772174404204680703766686101673513193644562728203091314299313311588552019848943749708299276793115020808014693015599152273640060434231773397837492006523423685647213024422918454391706438272546751186183313867808400759002539430061158554845773862441243658366110300744619999052298299977076105901322025755015674538772483516253651103010467380591063100489439508979852195683657389678835513407300766895748171763084987291622135915010613482301188400654635746315879260145978565214534291199139572691646578232859201995492507805117417217462109478913541351881644775490124127214441418868217062695917148012753761452051972815837160111188269084695232437978638088965111028255762388878470540957462240814698992297152974981957705938105371801685709844651963433898573683423747469353921512344867057424369948553294809214761697366660114839688060513899539112992664034407452875706408163509953683851282946614858628320608634617226591905710996515181566940098681229208094642848904433861610851093752397944593304285428287974243666935642883915584129090225701017470302717734807496287153274018867362269901306938154758704034771384765811703947197050339741592034836402615189564457817666724743964901492268081155955731212660265119651617455838699803108594565473829392758986420416293244653961623554890694408259240915143828761866816639875845695271437128184785721690850527088459078083520212226163047168116494069872070296092662077454378802771829120423757199826611164094842950884321239133147403343391273252710391669973933481952236751379535869308911770756054560126662121765378397373926773397054221530203960287909669264426733537500736865571460544724063061555663541503047848811613931027813793596134780242598006159012636866402371410349917456636191379395786035723660805971558246426666657253596709243328537020778722717275062249473280400820976839242664477196990611420122159224775995405799495835540365600280423437981284166513526929039267389822740922623435602087726800671893456252406539611676373642547095875994570642750667860331947917325921399405403386215460367672187436322861167135225393803761850882832791331077299830961443276079209754419240455829805384838491567873001760839959586141351148020097698627627182687440330431750674901445127638512499186202359766825284450143750226519034382624284953125525410681628661134932589665781106355481520162409264782579653165600529762907148365535294473544251746579290725188831720469200801796144070467773109495475555212114587421498737128194999203401030412038791065629729440454228800336862167035874931075512261140905767363355154868772184247109094397257150014847676748230326768299248256453083981646073079622762823292486788209669278257306466387732030316401509753380478799294913405374352295112463898653741263437896215597870817058743643799133954693454807240694221302852084102540232752656849520526446974803646593965079413344305188145634245459829832940952139035345546406010715714743845555651832938431177588212257905008961740680017730549504742615366266355001559589367378045360700040357029309073714048217535163713123780515194451401499476580917977928288919561681929890444295576776949961146162306036000740378654870985721758230609629480249061739702721555981722969926194638804224571708926319159468373914202108442562135774731059151676114102329167727003192585188098013701743226697082035024796735847606860836614663748792346001610168945095376548806574280576446543684088018641235608965287839371673850298413524080832874935709005675991569136084930332682189968055722238780541185138194019958764424239862098385064971065269662035368048837462171165753145739361197061468584066374916474467229674644040682733487709096094091127377781495766752200995011782196835185655919443420919638912043343727430484710615641015568585461923386798919196880830335192283713019041910704764779430379473012753038485613694159697770265307368319388243080065782248772975450951574710582867956795495559350545464316540534649320157468281446041018191579021255810892442380713145983764773781469900273624603818749722230135810008182408054645752294778449462945883894121879697284551545132369878349457362950855594521110844254232121293543535481843144818571352084803683257949742691777155001149888160343451370502201937821689046411838094687633905336242654225869491212561526784630715887015203418127134327442339840820891653432903242546498813008125080256185180960631401048819446019347903981934305537580126901372722453803895955468344999228727476754363545063339141316733260451160863662195777424568884723254578415629098006318287608884041129172355900641234325488240097627949749556573862103706175240085784786058020772423034857895734702839953667569677339914483359974798523928708276186207801164315041781493544176507963343005563133924928776042952001821200738372203748651360794739991257635037969848199464747665706696931591227001251334254770742351530544307384844480659188761705239442342851998611145503306126687336930141265175364114127117308263920722076873916491785558840426733708160854471988879229051813227160649964310274132129816745968860176555234818060926265816532862842605966170401948248024799272481268725347341600451015776002416634215647541242470854100250864223105537891615572011423497667198982296573346918356732801232838513841955795300535023702938590954059885650776218251861711481668115752093626958348395644611947727540596943562206558307507599934171858630400755724387844520470995683653009488400920291851739076368767930914543398656821283777230942336859604133300189764729647735635347264521517144007330432622383400253966289269011354301525784196592727609829799846663580435823703535759862360083313865777118152817498851921701453800610297656162528080577116729765927188374167219699705643277142714426228872678152945705998789052690558754809818494553078042008516598023387839138082974873687964065123911836693716740638996406261193888530044649361005645035715281999427002799533397810957151102753488902796689221164640774226089053683020691955512184090997681716435269981155256832108926325292379168527922809720797445034070927710822475433992790862496599014486767396773011152590112161407102433993463185153969391059378521606978739696990801309202285079374548420144099362568608407068092464206028710569708641909000267744012843721492214755364975387563150267171284560657785467546387649078204506084635019101797699218471215015744659206859929250079850777983074429129603687325917801416977414315423157049139934596978635516912636708264167213789879793212404935321097019327731155437074616346049438022548898641682123020963036295261103028852302530669311839523191799381568018844295519441619806877816989403604243879644961438487502430798380892161209828727467923508848731544522166262479577372594022508110209777173830894836173490672857193504875901855540479117185424837297215301055122367477403371952360480406992730088382764467927193089015337242110549930554999049090605477452393776477607477186952511107016715713861673396330657906231683893488700063718576883426406416950894498589662760346335145660430962398965534564004059054764404012836472986815761127067129336810458349423487150877241186333396326933355421062496524724077178196442586005805266777836776047628761065146674992351619568443449061732031564807707829901568763878980545652519300935641150735076711121581575474050765941944678930711736134032815917870232957786324775981650560914038086154535424392270858854999223909223923396700663581063659385011536178775252647836507469412168323331576568719433858476642411216999296193131119649985794052561243534064268171472562497650298269803824040384823278669708866826986932871222339101213808105575263591327307500103492243403091317351870359751829334582364223757803431106230146986163681490815573229859059133722388605439758964378043602057153194764094484493948245121462882704301883205416401442643924164989863293523922236544200364318831414993057153869255031759709096524112542245482298164276568842659293480011096667735734741844401109422194293245366645018036347515593493004861597056037241731556187938906641590867575934921093286804922510044576460446014207774602715378948811364156462321540498397781537670954206345567999086467280205315881931089311254018321490992956582638197534956716704499125045827286086755191859671667863005708147531634655915656644338503508884066891732725942191359456616890705906528060661615055995388736309703578537002781402491714736156304266765851299829329849394632774462928819550168342722612250586659873799432560654474562267812922211640329424497189590305097225904451092112940233797076395317102275895422395804864128079122898662076249372265014781426525808984202890065911758777206295377680223301879131141631619054422530906493882107966650550527497297236173772026432869831228906167183182828348423583077421172488630541403971944596263959384086823550579770655690394870208110341569751720246095828497198108753269257205685424733697244498770275439017757362419322368782455759919866589729429583672896892536736686142553961621535497128256738652584333359020243267842472740168385632319980665059098807142350420931351894387230359274112186135333799103072280049170457927522978851531820310221547691425760124099567747260268581359787347663748073903788058551459758208630736398272734530330792011018545768894609349296352073453824851719365588892630503273847352932518393068236613657340596468385357773165856685208179061731626992677024878990796972308978973204872620937274935361063015003397340132748083813305715294993110355661113248974171904041459529244265515265706665771878919445217848864056120446530827237765197457277767459438857275804426789139446488443091558778436963554710704765659311674157137394847571616247757642508761464350174808508517908704610854393481669115688683305702866175452592905035547244558273362220899831643760042258186136376807188430951792277769275519826264244337193019270374436354782198419633179463106514212640682230189551123026742282976899607933452006860226897561208537615252919422311779566040979356946638591264352843363234494300771677553066317747861588073179528278570088629187000805365802147132595980292506818657779770009957797138041181515180167863577485682725692222492662624657403830799546214612835579927848069148874690866659379630561105675383146696551406196954265835656120113324929408819713665731249021714028575177587756648128729228878860382748751496150078148732000894797457213292252434314470821479085975252414241392596720627451166442597417889542164922002202839436677381759743540950906279704545897250963048775530487112185592736158264814409596021379257077023266175985271078210298498251264443466342197100918473265105532612056766865096546079434184473044480038764217074311908190320170291978636536623089273479578213660661938904556585276916330786726898864806974781907115794950984468198977207920898210251381422744980007407326582913056534527015474445299964322600146403040685214657240963606167137130404810082124589842285978637562459266929836646406846196385340787613484786184285823304676252007358829440947503568746313386029390425078323863083227408799369354446866046721668069301409174747224107248479766717222131407624939562027542571509625348173070572805177648130868953921463637403917069869235518110894848339207259479654875768180932644145615288881391029377713038419760242475849319449862410904816774367974045204274992285733563141678995670229092759800319475869996942622667897008762856338466158676808180906951206363841166964922906612654829821676120096880787979439826567843345446842956141342210656555008289916655831420870668088245033385043659678901559579036876901842353112986419066511494474606888100921217376543419336672257241324805612551133280707444279006412455220051559486818921997686932027901176827459463053244616085048796537693441043014097129366257644223210748552399760695608892674537575279354381737609540634341394505620549901059847895027715850908434084980072796996655306761437107574201554823184416279270950530840149565825264267063742627224432036712936662971958434939834016232165436345781109023149005880000345098081327331639459925726558344894489601146190473147190097454203880452614766225675513284410530593271037344878377623261895603196100932320423863503772450001739452784288832506626826455952328631661295972347442863402205614981645694338447380888491788240945990526291538018617984422641700480604249627351161268436041038587060471722559692268113187098262090501048757315739396630394623810771379261408228708998028772246495798546731728468045948451325123257604644073285771635642905368261388788239055014199745667324670420614976375174725666057948835453495367926551051115893777473102923595732424635495438512606764656827862819785331771072922403642865158242711272947050504376145256491741647900995817649049206718538512578055184726355293325333787519833511573701125838646726058744193780526335135147132837788094180725670854141796236459765787522783334091446955765671179078483847731459762057068891445162548985543474934130009395955202161936972076782955782585946313337286298542240768243973984334890052911937502878083083766563722292560559070132785990507976834540138491626733846368231727691906795050250660592833758870771982570593793203353797197233763903270284618024062539046864627447177778956221581574168016622970875997951188822755363049338099359975849694777800446459337974991853010467058489364805634604231483638710242334172870441278622260340179874672380604470078507692903516541939039246256759808782779427765831208549845898317523783450503649612661137010151246520533855407608209914380954157304999722525386704209419175858627364830635925027132305669525074174964823254450774200273513147127246664341821579551434531234317092868928647644279329723741600443009477104788541608556482221199722670815774134893239076272602618744748662860860909165750775484198415572796695208672407572706416231994118960873827060877219862775867958528355532808165284052099456726468578350169371778501847892999938172847503853010513578889308343838951591117169631525663297396776622157209462168035545728969381564166052738451103657936603911085695287508511442196699609861065435441609568327607117113369156921773738599625322162259007584795793379469991604735327663726327715634974086052196997402364149456809586732987742519885299067778601562879624589745807456671033957912432357645603852384958331603230216665275557802849461465633674695219645886236166194992366159642798370669974607061250016022517523480922980430967408106624269232217303948817286411434950684120872277821896695272630977910409593980001879215207989423112593658477529442632197662600799323785391226698635621126756981141713438267438773199278644840654766639814078573864233909073471766979612835495713576294548501962692425796050763234407618066684012056708082270134734319396002848224649489518424120567619375007953060264927397158985906658361002077978820186537957776517167671031809218517321226253943748393289917372402527401768457363314367582231956048452126749985238448101006860028223926721990759022408552687932400367856224279814633064663567993326747245268119262639282273755745765567863355614047373619343442712971240962970619729396247408536698560929096292577760227575688844610775369939395852036314616999797204387549297840787834150103348033048424803802221647404887792141072815837101687078302242348517339778735102332938430753786959360693579657840025790883841105706831459249020602116384477605894016572752389259231939293167938846028933484400836622096455231951225064272748902859604313769744085613579445239497957018024214632927064802057775975956159590154746564530344116239775022601494651334929079755757666089746941632311757883826937686940650703957179020889057396814006787100018288206438273549555369217328411976370512176685191680854285626945861704023299201912206308623166061072572546856443024604981178051304396047987414820858512472262246305745513562313517975337354631138499650149668493522444568129591368501394997468899352915310602226579293137227460551800402553355318253202189153621983332634566360245679804767989243814399794647071745023025636015142573344623498098700399008376803852321080108727391891638711175272756421398221084048692751422937156265937636621275953277568622291741248514442395147314736262169646702298654158789844888942746006692635677566133528320037637614358971143819419654697279978902499184023986590407233764490319455927890670081230529330744998905800252772478563177666778364958986537311305616867604673569498209857763759140313609897767563875791606004933583670865084591755759779738671107866019935889100825433826052183557978447352488945439091457065457888940841070695383813892624407492201132759398460356352250745287472275692138635522488636423015973717719671270187285905627711861098679845831984359405471337790715747752088531680150918761658960542273481987036640667151208673630757981745221839055844611943415399791441632854778355521397010266324281013823946082939177144545470549924327989911815981260212822950516350884674151256526400340576041331781909658597741174588345541954636444663873353276652349798397884786210437952283726356901043963172331567932100218446003056821659776015489223415360584549002951008250513981446901155677698015000093194619037686453898669575930159990551153704998447698855323528413135702042122616791049449895342871043872243258552692916919646734037145320101376638677706076913780126328014659616687138196021528720170718341136781689950718603490348552329949080791470537006231518599339046657239552270167874601293961977772729820614682439115094357093677677789183362555331022933531699925787560809847150620674864095878424336438241607939899264424712366483979840480589960234543245462575925079845696708228765830505648050181447402327891009278427316941071149233851626060790361561643980614488100933432917085102416603506963094874893207006679032707024652240264763805331500903273160117746228394805214848536745844015813337109003153170898376233790542345128318652025627584749798568379613936846440008454848185728544766718736973614562216865973475216201644439878628698619484614918565113305891088427124534368887323669611511494635902284958738362467531637147755387534445907765160153079893388571375037352713916359278118813493123031519069332699531950493968128249540060306082841915553556281484542771628698926619559773694991065562204269109724647405114452286034748024124654082015130893815511235674118183032935934867156823211158251215598210651293519046623557811038388650957124067116456076650206760979375607583332449117950843048548638458268832410980868418591949928342035557838042622275708845511076030085584589732581430813691084278300634080597413549228030345241222209894500792679146934321274717897545633079550888001801492577236090361696557764402057669834243235423266406880269100425999662603347490622624293694101303610995834563991809623189165941234094584943137379337081703471255632941823545277869164777542522214460150324807371039680458337862362287837030424822378422949116054556295959841147897808064634902042782430705779881702763016755323364195160649769551632234641729915094115693243362486547666755464192531577664271656242046969748170893379507066849551138471206020358200926203744325608669871141225378055026682545802247905868805036740740337943286562166937475858003646998174933027917996318512697094762939137775472802373106768010132001253458868028174286562668745284816251230483599942286197813282103442909772802921721923492837057692565363479576140533716352021933864917026727314638324476007211979711811049616993623297752849798075408030160176367573902077139539340535063062199692345987056627539766707124445844579377261359838726497690538849317794181154501548482662017008319370422393939723027525561603812475656028416828663890224345679824996284423587898360823417072514281506945040520602549682450299011280736976863725604140758386635042994451764568230429209192245078880730333011098548095361179271740090488551443810761030505431985757632069218124742926458036267622926883315169323338539073410686094526119983354373695721404610418328041809132391195346030653990871929446947932303769687847570379607571800902410077718815282666230591728011735083735495297519906316574635729529293762938265442777604777604617865735986243552728564519811216617371460879215184730149381386464195750541327168981957440614790705407853404952270321572294783850721515479398303001259480677765639482985846626468021978716974484688563961792430142422647740139687388994013366975259151171081613491100051033308342380527655525398527553199389405017181800662171007957608443048683752037302565506779082668451546488205260274177684651195488305949126127660893655044691295403864202320159786520884193157243979212816199260906752546557830232442312758694624713883042860302002906534852406570743382331959896783642705687157131834188734940489114266380649952656731774288547335932619801177191781280002258461131401952406976598365138822846535144325690582944168250901033004148789570656126707546667776412931105874707798808610249339024579191567930619270638827373160668027108984295586213027825963000462509308893795883370121079718356948172460861875927826368101079198959515599205996302392849381104277460071123024397631354505310132151197337276157895357814465871788941643198167034790935395874863779950312068400534171897252783733603483328488331563134531189924431143114454351079284711314677231072004796143193905249423014519775825606731607678102450157193699841625445138720468038804464605090663691701004630082203087644756165338997179902662548882441573577508074142558044391241497075969948227462609957010412461898372323192475078207172863448845519691730720020785289213682117738526098537580368305732934907969787511867653844551759832834830860085206869960008011902354016950175266864603509897508587206918565155957345511905062112396193501347720279317300784069786222616960171904890268144562746632230565071915358150915762380558684618470585561843510260465297752640453933173945703107479586043601329463287261986275836768728221094164093335607844116601173650860168436667195140202479089984639686264989586778579357622016331350744356372247945613584771886513529662975275389985337274574097788816959029400584490818003518584168918446001045529166249953844433966252147969723068411222273240201012895281005668129348259124431302831543410256624958036707758454441457306650883009737802186686219432051737484500365815333741311739898324140094507037509584657034581215914972256761343816167520675799615144317093556307439054224451147448736230997911529189160577884059203106168818922414206748587458786115312490479065946609048044866765129705885549701419525527386726944551751215491602340920759147815850190100539538204402385411159242824847675818018087994290141958923462513005195705408510538431668511804071626743176468152689534428757185543325821685350419732454148530552526047839132900697313885385002970826831385221543018141209115377471919825907660305413489805766443327792551552654793022598705209768149278893873227771503982721617228747948631241195150550879996795874450008165392359553791747857623685686993252221741949709392794130247697026413172511561581975203559104682432162405942663896275957177560279085790708659557918777963506531134173705250305682240446446793534183421638548218790251628687722939903705063037795828545421592552117170478470052029630333717189223971915757133698314038150744779020495109943102479977174587404125864978530642375150951542257832898151372995500889553908370720921956287257156430597913196163006268722688201862451031012351574550922932733257618628380086908693679335877922979736834318204941870866008536516410510703339748456723419172393218022936441938112821739856978298784234150017735620634805471637094863554443514851088082511751522764605735631011249610207911170179876739349510572886756313471204548370061154876978356871086715584859082603707823004742694949211752335845324420195080995805002264937827920066433471402681298937780336438943644363135092400435166808244807294734313953814872662192278599691429050402023531678389277128755082055441255391331092232131990227260254661239727326758907381467350466298369041284135922971061124838618326574118666124782337238525144924598778350699086750381434811511357687784236990463003758164134650079918175643770093781473665358097784288927361270534413064663998962899025302853112709407908386258480867816994790253722190493808101579456589994084676204056056777272697967344852544560621084207450866048832347528585878172215320098167450459047538933981976126502878567371678099463348730771808418150722225406441470377683031134402891395048043831382238098181507622141439771596567704688999304188879641491645532604862306777719147727778152990154194680297972225925432781507678032224921440821651104051554296846880071178896534884721640597224568390232044293730934502783958822594901269951397238293977366293985817386567056758781867327048856082818317448832554755477940270617254741135008553099005487254305252945072651050258173367107359741126128410858317547477636354427392963099729941999023163710216948360177086492365287891037617876226314544336573147627134810258930202874840866478771549185074363527622899232791613956335496244871899148779279724502301882166372728528619322984675927029065465609301363903483234149038725016766592557686682964008730976266961598493003621528958345287154092961929179072208175746233117343215258493989726646922173115099167485984268584106988681847685118491684971863813341691540176369321333694050136233030112157407324774132079631802046491167291763852410884631630430812869437466133552992987587884720985333431446226784000264611072036658088904356510077411795569003459441334440581301630505886341711207761255209950664191285365780651501981770110248213549982175181918924990065031682585867986018586528654912164835362881304360928564238128732505331717310218473831347890825528336611140900650423058775439700927361156036751756252220365124586637830392967581050142917094236272575450907239728785367500801615892341281375410844246783460228110453445969172189390235042664980101038486979149326850925716869589675323557232328896887557255584027113780495095740286531296100656062280301047565600521182547410577600942175201686482496724561737314051171327471687728494400378165958923879812168531941196504892659338526012566958148129344413160320844256811782115374553648790716748836975792730967866882525788391577292904004142307429111568277125406227277155133315350644212285437725738463766993722800934068894234202875257932166460399753787473281498845638497270312751694995096916437334013705637601685739824768553794941475925438788426493435019731530372480015437284160424438802202006163563114324216345534948076652698421706267490427983881654495722746822619700431535711910507741415013870476879043586080493262428783251288202993737561946017776731297941692279535817800350522789370799263759305919062719214002237709022087389396862834737888308959418037512826433909301403129046915070935130811859654563101352029562212256774699986540173321017311673537251402501340291002955614052976776180497625583271674352142186769504120957177491425583341789214797694563710234801813614633073596480210179413243494573663390810404483269606636382882523203612372417827723398321631499917511272500843817281769556819753034456111625359783094803418271020871183487567830188276174257210870010251969264230707513787219600013733935456448631072757836190714813182712730217982197384848602209131667646284291633323832254294103945334335818426491773534880942719912999922153261303657991256930826669009136710107994939733309998509104765405546788807132400852283010780547738994479909524708620175437278561248550803643854369854062719072586757857968052757396542540565212893747405469369322326267002419574565170929345716188468830645933939885223246902069681360142204823582143333002144967206769593706413457424080250667201837645565399910373723019848380214908051290528642390051956356430134621804594407665995586267614468330085900852160576050035811849850591437700260054665505830402557685718669673227074930106877369027808853809176171359953052955831609144203549700558143577206180098857143931415616814033177289709520021523185986443541141328427278645919232203397778365852151860290828271671658391020582371630192526233581615227418559119532539002447959054041485243300104517384806470511104211349867631855163467396523198474366675680515342594669627209633692476938218069543467615888517692910646904753256953622964289229976966153182995614820071231960939081003015060140367923288404099913672207537194435518366548300243683531780782722085485701526635355012107692781807536561792044589428663125670402558330266370197659421399183466863711607363557294795039072127026983858588073066265084294937460386244008521573266248034451202244644222181969543876870454411792967883514939521849850303340054380131093430701762169763070308941200783558554369245730087238746196226988553162519215054260038970696121222196412648299731626328490464114439641262853100559959783085532284689900262449113805462463253415552059790574567452857643797502406660486394379380749137512562375054070327514475924755129775861031179734947315192004885890329411090540384028770159351947863826852229432020594536250711214146842590958864491950698704958018744342201517867965078907748520523644078770652591542265202460092340209154416096138438195521439428017134878585348117565887757306530969087447183638536097684397411779337286646265147449315629588636015999949807858040148786644192241362015330045478022485893316666513253611729884364905520331148866798720340359936369959029754776905739956994510096116753020241631205390428234224768094129122666726494149518943803480251682985493255322652345932216301759467569464211436865418266510886592625513625130671619574989486132668034619569528583291692802515282065305045047603507524650432049547980719084951201596954837955578760475146532955726962498572258162736492107725389610787430140499729825895004903233957718834450244194319349567374413319630634617795001251130818050501664476105033224214269846146253045732598556484198408145659323726350717251618004270138281315111938247541041878600291354215513555949561014490751243831987766830262663288098741127760277040734278393628329743811628423037357873315742899107371810084432861384523700020818164478422418221037137664552809385613054214646339614219142618795380617289994901361424892594270968531806598678022556947540544968525662664217024370597750521869098153185663792142467388084509150797827496813755684772663423914116452028301758291989862240631502759847101127608287678169558312401296054903497110173938691141314725481043295140484924001465864692101566992049977236243024404615961748244314810711276656066927388166145269496433816865165322931720964883914481005889205222633855374643817450701544793640760566427164018144843996200210998780668560692208778473760775898226361094135265807138669177602005153646020097050643229761484659660150650949433426507703298013914427476331933816601315361852493681278355904844685740877475305000030752390834495496729504542016702168590607538987370672500771475329642244032870889406870520215991633492352952715931999136471630134589461335588472862449767036704743261643467792176163749581051826677768264312151841323951104780895301076872158817946647859920950092019921724660006107386067186767244716052870982032842639237813054362967256878626917822162886768214278142607352273397791155419517713480822323921586991907357836693535095427700853909512107040535850298361055513008378958079993513475981762130347258105399255211339956141545806953087846390695165640052411988684888679753769576046904719855561488251749769611377147621734822084965463283202879769641863291777270680108390162451078907414341961066523019706302535526088154644387177800932039954906092914835384455989606679311782652546164126046023618097783510972329944033994944890480151905276171212164748716798787778835015536295509504352362178337119067229154974713643991137459979115763640992184927918818326103889709522105027499082406604153893106219018639730437039228641709370996686883209432604481121072415472266550204372983424008012895626033037577581384750245124808104520969811882728392275823819379313260521873175617228434786430293956519016063977317436996630302380972435686441199244948605714348280226210501094886749614869849639459114646050728847891466539596196932995039672736050641863817546730623557910347625799998135787732541314849752812628341561992650033137552697986872232410829081316868596897483812186465804002209027487631972967943573863161184889866643024611827675507851346255726859544698394972446134835879110400307547430226989362098555172917014919055884870972861718079273596919851924696947837448271458297896460618942231340168502611336970896826146553184966124207782802884342331608583899122202668559852082178136258930326708237117210160770983240512121980191373075685299022647106992614263241724060888614228870996793517380191522407175207558711599413097257082947912259454100008854818573062599036273046443918941563548045353188652848216724659228185373804321495596470487099283336591063682386918609400320171319877413235669816629939627702565275413428198929046206691595620584207104281547799675020222655661827911811811498691170761364017224712888647204558288612459948202663109164185504088938785268767164195574591581865386447328113862962150475821415708622920174910608553804022068820173292300955259001528639817065928097076455784092896381539908115149194209076281225239631275676974844020004857239794761574954107954285662519683760101870491773912951022099089189232822526990154543852760452017247607810856247931867959928355925580924720866379674130600348398132253182839614108585125268589883023636252546138406642476349007972568383846772581653029348267195025590958457948776135736861951717311104431973847928620446517106432415973440266581042371141075606439590372288558419929822428900118554430456419938277165712163858567649354286669065877148673906806199945990238866367937811460246375587619010291642421112732159351029067161475885927615171177083723947423088860226319778402924497595112249134757881753904715396351564091722388352457770493836610646812659648740495130966199630630199432041177824424496994749864274832774099770851286795380788618720931608608341800598790987308493091719210054924664444522818673936760134926865206866197869460007931563223605920538116177540610213056656543711801638626954789553815400009840262689139473289058523985208971661747293403695603579611887734569685308288283899288677471291864532402135438118478927248600582148609040909175459251599359762781105931778059054625157396316640893194881631985861748818908106233546612809025222974880225703363082890887096551153885277062960618608539313898389409731324491972908858001635848984917340114116967848397670572859592395271983911396347417330731099318196543030635550669740184746403173092837599237498884656637594773086313462503444228051858635101814679655716235616645093798377216743544450423723292200711033765756681896123654978571968270872458942597201018754558168636433627319552260874381473895316273683380928055983394744001366880723956245789942737481334148103873763552742248841094825751089979010495183169818522772184129701768960084426285569581715684843352297098798503251277183122035189053237953537952804104893331879620821807632661082396663857524384625171829935045166535206308535715586560004260450338962935628217315772122358299511893430246433943314731639035658542468435747941182305641484970503172107904933148600357945172136825469915735457761569316571888992885321473150952515223997599881770384492819583845536151888383194742298117655412318363241571215061254563268146422660976074168676172844790189530689323029437552600377952064305444827619612934853755300964132526877749831464446420752165891119122931688773891083347788224575670084870795829661393863416275513727827784567369675152195876234254874946508360696414782472745003239113871628226519975012055046935450023082161410791676254578709839503056702152980686916933716862320980277185333423732426158448597298757433379847464273285316325153269853381682422205812387145713654259879156752024278350360481885766163580450858999766890951867133791926919820815483628824805715045263780614250723945396123151226819915337061092537211048031844376005235285969562964060661472596361321310108699535629723121980843090115143171703665317555698888305083765082878849744343617614779872805721242065721930320779937091821488169333577979877690893740042477444624487560845098450902324098113433222775023365518955565619975138831728154817920425225866484556570367406470483402531144369153477545252377003627893006890353355615319467163971433062111165583620021764912222794429642297847369476555596697455169900112202828225479104327249464212644768136844180983246867289550859798654275258417932391198240454402427228644175242561139168635258435241466050426359234497272359797288553221227293726542022403950741193628988717097063125944032825091573100586581446589748383500765018555668924375920876818078618888112276506972219591830114657421931026596879204247275364836844215001200160828057002630877858171266252970177809467634609907483662132544647454837437394997983202699043918511505893500911812033892898129140107653642168069091318037703401190130990583407783628754483171610079454178947912231154246436362236495967401520653516617656590812427776210450730534981909248411159837102671623889502865349078900099443055370723335093413857013664749334588897812662021268535646204150007900470799698835084021268048348748616002418289622708660578866695300473515121200184573243377973152231528423569624635039751860310423705800014334657189110935175610952430070926370821942592769184872267092727144864587979627955919120053495573953521556764723443473949985119496482706322659981803649207061321275022083997839420935308980171614247686935367334268643954422209569263023900956900202574754991618959256452151804093874142192368450661873505803841557959666656742017586625049549209635241136814197099433472725211208455598856332196276297221213148776172502112343330074878846421997429232250781756342759044959617332112645101644622980082050318051854503826013083831137479951574717877156621048282533401858618353983803330925672732039125036950737948095307553611687063660299693333762366730002108649252542934071534336490335093872716928229587224633551672904598874478613729551123063831962018007870079384138552137036749886657871015548949869212079339640043831834889674805225196255356952525223156945861701538689150926036978421564820006121321703825033301190761267644883975085256840706221322560853825494417049371061614795447337521247829299687324057083597326470434050600358260735968195913696261565706492679017385701456450611165710505210466289451995122211202735392027237176981317177746120457262753751444867964444991820301984271531567027096716057920786868039322326555154024592215169988475794192058417595112393451837828668561087138215674898561637869028704984889698413201713758774136678065193657892188877948814559859390818588787242003934888610480047457746945132645363108997382383283901380702422760959444295975518018551473824462373079438771662509067859962351763170389657971193298079169089298158207033673580289703014191995271753749040232815187398044750055377401426255497428005476218134177236260299085782557603258623383741156488855943459760041324093261445237326963553198729313635914500357450950104348463797546672881751388259382550465355107456496170129238468988811859626025496238712197545342901911834193886928091494736112099539820459203600609054527191253279387996125114737043137454047417266481056329640595809919866869426676767543218267936755527246361561197956347528101151722778283031538811489179389449482380903927644033233931103330977986980491654487203241235398964683182015838138145041144262923835267840596719070011793464262230674991513402255860442492416270360574337058969824792060262420562036403975092628582199489733187663249532497993128678045837190252496237019055461641702043415681061626949109713513693070376984472883136928222964309919725009563382577431780876582568755633824981377282524957891962888433364042418379307075813454677006686339979552586992033568739301002658475728525186850247989358380017229269281909168429198939164409374759619382789659397056264808174532747922096774165286164890659615674555645320584318110764059580173954107562372830410561612306222209671287371818888924765823762833085769749642104343849452927506708457746013190947357589723904689611437508486144975306362678156270201458995345096854781696302715093286022482104062780280164978483203436121600859001021420752297343585091142018595931992232915607843707496182561014906003190576238080996471628173997062666973405475779700732503489026630384729359174133003694209793455928267115168539623293578073464909117795348463708374892503425474272831219836649421666200916585176031298622204033619097165237603184642437165509377128395213250639201979858573091816297202983178855003003150048415639633618375100802988256746073799366765812306139932628115251333993701768259467458095368641516304613792607935393110206143748808777716568284027371618709442290564805653517027799853040119558409881470244692499284196286071776582916003853608837332430156159228270189840221077408092992227375597591718167078343936962694774314101088971278045233082715413695354559612277160378806090010553946481516748907035781710027216784002108133695628509097382976917022520421580272557480760764378586828949811632940793306869430933581149917323246906529135871696208036699120997714497451665037675909491903165303305184245618449559856909210477481696701408506087256062512643292973602504348033605363927663872191651931938004577712629930649203506386631998881441513944329241434751398591311159422133299572422682439002674603642197701861545227276219069123054052121586332842265790563957764563542832187705665123340569352711001558143642849998716718643257278789320168840132084058183818188477496965092567604216635225462296663457513499012650464917526396385147602054788798740299242011657507726962395707968948277867345774296842649694907872665004416399938229939980612493875077013574230767578647175937369263855012894907116784742046160974715966244361709077879281816965150916586245329941634957899298102331949111871143310091064726290493920964073263688375960712704087596299650529978892433955353716614575438787811208877206810790663003848226983551348456383932599575962296318911105172099023220345986393405675999836970800512822903821728910576920756882285290732477286002634032309463245387015956472905725675594481779452022948133782941624812372801920854249705576637430484092654362862141263636601769589860642282994135140280631920855018359341402424884784992109712264009475606046779946908203297317665259439163994670219624084528716222908062872544766746930987663529569793074725349777634941008280296222835893837276501606113239031584081585572667255523530762482276927764470085662555773132517101905399055688941984166239966227708508502951679886601114421074814434268158634968773683668380944324952508104496651080210794825662639184471565870435172710743375016776473789708081815215650654609878431531006526622312531891007408567167603547723414853093821569276935033641466479576925254800840175012014638559144519608490712168958735108557967194243209031977588981211283155496391830953782985463403570313199676653965893862346842577515134532380400362676621740618186225242723306486882097762840944152805697224142728269418174097571559729597256778266528556156813268581078265678208708459671138241658301144309928550445383369843046832020687613046801707264827186467925806536580348874397490505755805500157936809766788540260115595824444253232964906610724982536705717679054501219724222467424753671337655351986277807323728768311005123467223057627062113974938758184135693661103498759501231137609648593744768828787129173406113460849407720984464241477875629217650336175358890761538467679689334550783666577176892742388012760817541349973183584281883421178951268430683848688527036738444762665274689606747107736405297794518995822131089160941831991047436520578975894787456691855569379857036985186789749326944708090872036884641733376261685265759602344262694893566517685822584301914040913989428271551462846831450922288365183145359783919688124383918714805530630528100436039861662569380516562617539376900750485756289017624654086220772207060300354526238355645634295099532004043913014754340342022039213434667761203345210900776347753056015570071951567004396912271764246952288369557095302778354922862155755222195733248706713033583585243115731298152177766058770224180689596258718431111671559111393838002846352985121737577655188059630356192413982438736622480494276074787994555511906896960338779114939508859375877563754128547412359358457624926701087537043091513726157049087398277758809027990342931634955551267133395565182017643590187643781307325162128142949596984811119183704752272925735573160560033760717997744090949579156550592165452648218921106347641196626357725452344594481063056845731018061824302763276883856946544651931207448511466306739278188257850935169409494663281083558113578323643172866511452426483731425485167334478567117972978629858038155718913336387310846006639961107619863010991078989789884013331597641607724312602801459240752557137345588348897468653206864422140104743758137821625282135433373265814961711855287961894464441656800737898300475175876316551525174483708141016512762433944619974070335379991990924181109641326050172957182025912672741083136141174975412587923019228485791827912540210562649053279641123384748151186251448022975483176379147076888389342159542815387397435529623564306557575357033458291356941457569538087139703328265532594372113419930032807628353670909877949287871735888564222853455485736185146070614584935741442189731903861269315645805602427006979324995268703981177897477328740381988480982518740608929200204081497124914137347794170267452777886883607290501225152591101991623218609065703716522472696486157830459047565109633898780165286874399648218508861046646834079097005958004316576442988235213651998292438786737722133828476477718692341208868428063765998362780073498962294038881961245104600584676089484961045253219919474542307884493901239201264806345678311443137565716671680582660690056571440048006363442167993665708152181567435957855524488262321703315879745147330536042744849176792978536734605212780216293499513941548089511497902129874049997848038569296371868735523206128908845120205348120501512951777100777990347535309891948136122683578291693367368339477266892147591692650374903426162754256452435877743413478199395728257114603096726678188883919411945157379699529638596119617144598272317112791811785048826800294692845129379711054338033474187982889062503558551526162118825436083689871607689021188138612128128598295309887263535200980454603450209980539827157989413063304913398919285058157821856927293065229604690180812932067584807366593961414633468951308073292670803025297087942723169493914655278351358367426367947314713088108021311073027321682255712602072663006084015141845555953347907316766851709649825791364417903608708687527990690538640301818051254866305685599978378611403955223326452836111940594553110481171026279376004730963091826171699016808848667297522578680879694896029952695922258347582312331270260796522176505258705790845655628751116066386849413119304193714466883346832813271884987778608374270647450445810296854764774185420683152727781217747371944067344151223430172058952512206633941293202379959055783842342068388778522168756475641912924996697985907353518138876993664659750673483656560518180213417684048218171831656788225261163607427931968789721153514770238437115330885169573108064742683573380278183315609304064078914371571617717020148550200400068233698850512809953788879522375048871835392081755506363122237799247074942308827658136388929532652663438739241989807970315013956812826480085579244120064485526010324164046875945343474138447971250380745626395369096400141560761265329155464087013381476805751838409388024362156179522682891601400151828145047982597081899170532515915417044172622820684671339028264652795813449246926553586746847209647596424359669128091796467090842595255355260981557538511531192850340558974055242709282745987784722183285037412738547251870614632138035624478279707971181094243925935909738340610276451167717316127634074666220752642645921733845899217984674669687390173959672583706113405569882975106758385997314656249317864774853183114948902387687403000875998225894921120234909505910900478879204206261816911011686674786031828341645402038240744984912556294339084353482707060935467479675634252032256590412071976252867089320468168749021840787057422431540247362448826808981902297847486157137456471413798788809824610948506345146599114434749678994492103880524774166019595931863488184482374219205216215587112929023672988884851301211136673219595376008292134867635160140380390178437244716761326850097397150822372771901041296835438398067233722018955298886860202230187439476504274337331095456514745321901001218027658139039041886934236391772586257433210957841019669123151460152403633593940484863454068949514491282156982510560384397932175645566535756177253822133540563360444201629252337722178338673788219624596461382023948436168163277135680223883727091360914323959928219434477435325253870760268237111605135145394280605455576264594902198845212751099090518879013402447926765739866148985506073816935082766315708852267366264703141758087732690128024884683826061711001047215264841226252917932747061150336031528129489567383391700850457043485949831847834213588755577092751534336906762508991462238846773410451251291627900998328899989218105248733760342024030949146844746924156028614561353633172132589868379381991146729893590412490415022298406144259578772921052234531877911801686874066410548377622275549812381061622054045752163690551270313808504183151964771241857221883725270905548425864849056426821467875799080176059162563448408526840115568744875541026865821273713028712103654234542009920438536520825541563271347173643858383452056737499973155530146887176751151333461683418758871423842466432774572559681070326850978737811805514553401345142527439230176978097495448501412932707525106721255983964516523361226838218713329989373355872933195615019717814773932897569285521335975765897827896545067914686576586285428240082112420419629219231764547399127151500387506773164848534465432035222422615284487628290805639710347516996188129144479236934066911321773526901368168054137833608114064887279501587192837112645430399791849429623150490947934712023500489416591741091783731458641952916882552014285659426241089426927976542966822430986051226102038864926932615800261370409312233308196513489295761868170848632385361660794983924364610453797337083922090932512601149280395371271758249901983085618207097802627201968437486305814090541088242990129472808225717569119761280176930651287418457332270349667776493215600467283384593163548073192230386081823028802780458287231995631841869017256419527751979857324614400148556366881199173339807888246803564513981121009727870051654190802711432064485961935456818061426439912463702454520473581979501354672255007898098254706027236990044181513461451874215872289871015027679104330555355898329394249305505289757658543234788257859316565330187403176344526647990171075405842674621971564687332988700656436622941622580258045747216064437749709721797254408817929511161741964538035394081059016254081783529483799023435665787979584352679872753541013226969338592409792700744324305602121476981121118123707380456583774424923638021294620598149352412930144198443552387296712157073408542093815074958269259113864915023661743867792806503718971398542023637872053810820591743568767406423585155060293514502284184280466575724812081144626147997803372611959231186147189488528438288652362517432741275316485216058972684652405405059224371018102918600731743831689477893700076861584469699589830746651156226607717938194831779556167314283259495396708396421464649146401911998163688685756924060126136284774877094152519637229898375067831473100781965978952841080809934633679264728875258551930886229581186126236144205385698783061413796741503882712252119670808289206709801534212343946385897436077736241489677914455734554737170525273813445113795048695705436127305247782133763052304626174890138229835274410703701786820945131862984972973629382875326126872620258221311910704820635777832237530289039216678305701163834010782848121843956866853376285689637038907159508541530749335726107305127597074631176861259675184362757660711055243830456390127226758547788367149687735264767823563564293284801589893148570932405115209130068942151849402137907809663127686570367257527023678023760037104718611855152686244638226981334123041607432350494725543803950534216354369907950678569243605976207534129234190283714236507275114024016246463465254827972334566174127527514845985933962878974097252833469211823095756859384159129832044329413400232678848993983702341892445779666239982027055865852691816080951155297248598375679354072983220424272914453506218453982764528708331346932877914061583194785707537124002240844370621819601038659666287268193386018140787033328410253764396036656814118671738296685223056429139510231277019999078880222368040780202238202921330641631415269092617895270075300217955835480518738443365714971246410927099663337170389613425350872485147054025294463252577964821013321415653268798695751125755766710577312453719784655483576583871617382611424703242751189517798086560010862265849405657418885744928148956932580425715229576247351387360366599490936077279918935287112511954693904076669168846686950889572237875333135028522628284748844434453515054988862867757442412258203990202960385543194233336623565141989642563003339795128432290023998336842444079794113211753114950994871732400856599681430706198407530929013530460214254175316115524554349533154212518192088250002403714864696492699428698701500272325275592752091485234290927717758778068335811193642898333130919036296756034375473884551763482022562809522079508603107301004649744609237227496698490860048314653435056456950816996556147079006827285631091192895788917669680378246033171631638048041610827167853211418205868775665919262351386061264174713746335257249086178321504789506003591304115470291951271441744772436732181823114462352360146880834200801653353429465154366216688195662944975586559858940838385692449481723419657254960389039479970009488440397810443544579393943339192243955766531814231409565034463919183201868565806769681439139774580166094871359475131480655431834343414667269964772567863010802017551119081389241627140500858988878503501940969697975780332970754566557789443448555927479392733041565140070532235988417219498122797999115881020481345055593816515849442040493890116467801748269697121061145509530081638701192746782012828464930130055158987537811292015484510193974623433330741265081452864417540446230949496251270040588845108382577894528743817455854557120438010770354743958487903719969368711230871318981448972809581263698956294044449522056504307150467529896779822287281388054502772645651328874269697375102202482523003481978151641071847148047004950751514488999404086811913665617172212403398321551600406918785865308105429760094693403921744754608737569802132222800474149488784891989881999758533355021369446565566757143225071220705601223182676939060862906713544351595652484677211445255444639755972445356602501253839089890321809213499706953866031901895520415813847218923072345987817004554432025430599494031233791830132105400392085034985134977387495411909105378998798432489391975002403160692526916711522077377126514250563206427105560697678626527146398176577130738702186179485376798074655128326764369651742944495866676196816370647580961829874608683710905862477531561312661810584794681691190810486360179476010345086701493534357035656821574340954136963390561933745615581159722141052854066383198088503745508904144493498843928681747306647599880946695183579965686331284466612893586995626644291109656762519117135127635295529590135391757209227633343304944882612105809471928449257270802692761937316015872031998398402284780902284363009126342749498794617981544555312183607049452469573251237952825423493730280908186659266023926457501005888684292348613381234786734423154412022542106356667829902386701946268795511875343184301588020121428340849436112038855266169626976238904845324325566570015012230636842835132625990280301358407325725135232041099809499011485247543033489497888552259105241320224244685261731249409081811552388132620924185042154980684811356015564599688899316371342358022617411472565036116726354365485070250350489658527003621797082797620049782857054448575293221346507401252201881079675861559175018879211678659382866876838145500516334815576205736714555800311310796261158755829567197901383766936357159847878867908795794014489971566751290151425325439541852146111773668745516952621211213604307977013488436683346380214029313744650974112519602247197138712850758693009999172105025397557979152081994453197735975061307373067701359289527507256298101295150578480293864453768660829840114501595321482944497900833331874316899005197061931697748145172712025620602606145899153180749904312147893536166043555356785323190935222137413723477980724117077502758451789245946675656153792154565548166074467942458992531675944176430937833383396755748938079663650951676552350174013061237813066398475264803416319013949210380883164552449849157010349157151220773635206123682461380536694113445064373691444034495448832514166228220390185034558471528777382632148892210931462418004217995660897810330998531024994988134826996363477550514847383591650905054704224053472439147383065659812307641773085815844227788963846782876299123873806703398158239210069285577741232928338474385415072695653723697547870965617026117470717113877893359225955066781441158920739185432358489227156097200114345320754337511477738377784253147527735693581603565347258757712695816931271029226650185318002902759177263830198348519535188966473311644422035020108116507461661178807488182422458196719586230750524356373503674594601992885335190351978114704067938390960038480575265286830104093204948596305438073170488886668499915062980005214144097707382120111655137550003816544439612032733057571420565280966104359658500660213365035681265861963878921975381651373683530941054344771477280819614501939001467499613049859258495917420930678409521668051449403685349791295431425614894534431640713671872922034524250505180794383683679392246274822065683969802996835566449087664034224154649739004791374805279584320391033512919551720284773160086859001130128348736104918950293593885526096260719312698521856151333687731078945461448391145391987883164114393653802019613157226802220872020518311949178154519125527594887544650938972268897474887347209973725023490829478953950299790215923575883153232680288648097623062664818088257285897898888843191285268799924086491255282625419434607280450502157404237106123167457763546406705689712535431097189264970741154259286937264281889367899288074420396229732851365881690062117039838187037201276293820777143862035050250666573695979561281871500514357325060346003778428963603364145287039832788265202219322576840819331556217940654053716303555666892465922918800212829366802139955590417871142074561947437084796105091830797019013008749717221976574611550563694340232427566335878963594168226950775120590851966590923631957181520101017008059059366271062017880190913532018476835894487248623226191057618630017465369477211378947578443973177682173187259939539782847794046299733694525058643530443507013568393570726489940920550837566235829366132974194501269713174026105170037503064755384892874691459093538903676584118774465971230012771502494844472540011775144094957100826147372482280849920728824239063312667721072120175558552179973530738674897579554735011156561944648410200431839633931346766975571972040332103420547126529637082909723206664126056978807255961677479132029858510480513507442143346284513819448040918415045675024162227902823223445413596323512273021460147466968429436912342839711372275109020956796388182483710650465780213940742773637031290124931624615177429309151928113152629920312108384070723775739300213923520495845437708793233480366916893661108451654294029206501892166079977593152610451967869967985284180063715786596408929204211112479082269678696190794713575275229993018362664223259713473183422799154792478683557477527725381939202906653199286519249714632315379759591724841076274513995140759617380018227194432996611638811374636470972524024562347360818039094188342502792718524167226679950669516270540768952507738271584399615976351215590653121764803767227938048198720716754621812972318786906265879824409571395774158240257342038934282965588540058132651591585534638715224550064823689655459804155843632316874799335351860553356445893812031184162524881514253081016955544812375111412961088609808001733274623109345009685907558051895184355392621336754463319493485564937388281121560407605797011311222577205541108536069100374674619873276291598718061154352263980569099085203030747867802568794993189777661879449458352883866378224562373185896764711756357420676153782310478311445455741535999075731585716038281321899810717086609170764092436366723671287195342615356968050597050736480281043675445053291631155972027771638273358480359384033937984379208337877516893500285773496441404901312112695620563653870115915466732425440525708852195914092023608817968749776930240188558209356013700991511340594066338365369809671593151056492267466470549151933591889567859355883468159175497496913366276308431206820294231459539428415860590954981588169152769909961540020880648557769037266575763906911602079964157362772018961227294554189544298280286316533194338341149297300207965541630859336793948968676814532152796726466647193600385560930511183391216567132141116738778592505131626036493478360361988087533182125788373583159188837645660710879554157592668678720355149822406829635969711826268950400378918302310113661280019243930690515560095050939282498106018216501007158961577866770611385430979782281451941399381203204079194069603400200623304617004149294072461934726258198036594165999442621816180626125862576765938110519678751781630608189733489917343512264081779691655881274374916116948329471966625029693749842474156827485008479276116861788090142534726523238524646822895007618787074631148364299307961966068304044548801436817017146673106490885788677327130559285480695056574728226611274885751890664004984146105278642560339107423881136217851380213786604655392836237275390637765218636207624288556616276782210931607447642889018427052598619891773006818737597440001125544101633804964859527667282039664529430447460872348039371297672803999852070091900237029113885017754685178247588931554407273945542176650691321934468706786192714653900086849776114884366230184604397389737444336061891594876677998078844304941813671029378211547710892104678341227825069391080696859453806347294311330670448703636561115020399369499411855984389361386986234227784493351199304253892826281183240765544244418729035252280973063886886519872773377995121178306947927371571431990668725495041971693884999956431719204449849978780386265561642119704359819020813123426773768658328502466566301368798183481644226000405772210966949513242820191094821513168530496885601401060025751858803080067791219709064413147526793334186994707453213984757801921483964885799420286489505772921621084079961576117351079831075023865535457557316382716811986684832667346052163340312553315493319427456349115501122578482080138046543707577010388128311932012457732334651358642714059445036518563855545866087986727382538164539555414484549432221884008489242199608438171509973377334392840231272376957607734064685905574678315857471100696764627850563944695031513258812204624253181081910261168608480668219771135062736873831114462712313262753311248607052010389913939569726635261402561568769628612529704497333341371212653685604169505526120206279478681675276043708244151092733932214961410402383295238852368950107075847847083743292034595066128520569086565815339434777522900268739574644479587414609146712120633204359932618520885874105505949323385115699113210826236050169765644655481594286920612146721920959754747032507635634154705561452384252587415206649691543159835809180666031378895160474300862150074605283003881179292229009043287261561904895691388153842011597397845592477582696067637056093707641047199037255261855230257789582619002091535890112640749766552503115555416119050855201262233426972576483693089870052918882021024376818670367762268154659951340571747356152194957475094137972055148878519223511763035733402143967242157939944870884631083924264750034086193315354538824434284740203957797560664451291772517008956171367966550366708901218521237961323535162738286557271599230711560105401294751254721664004485851014965691294969635580381041492456852061528629973402978577914106807512764033853226431049358382999005406150458135502163938417387828126605117097357067549788884284241079611305182594624952286831923083314576190941532815771534463808382011600404975785451339911636919188225987473485741752174316092770070760294174010557548238175845113988352962228579511604117770683933367226581972381584789182252313027574441924536289686125244797559522089111724288957174671488376266913840181424932665010635527866392009293054706130875069029928491724609111569298063658401553994244791801360005157753239667196288667953561279220506827867600612095868017068066183288173601638043526093170107572640721392817356315639222462226661025052401439332181118018313139124793422809231391320413988192876752696044146571949909429758924280593259721340877197286671410598232465172523532760605390978770904068205783932833154313325362688737256831125742214734234224441039174806277075314762893548257629803620010422921730063560774806798104810800565208102193319796505048416600098374822494050289618310157100730339871385075586665331655997370553516313811213292675084285000353770081942567116310670362235785475433950595442637488788040550222343802853704177034567341624737701213959295529766372178029420652049416639254379622653259062485085463980560021602412669766692408341605486962194000052291943614800122130920162563074521524331857647935709133135711662963675152040303138357460274481506200980711077421578217639479491185645743661591501516743243367570848978507405975715967703367860554597926049890633540407677611081948547316618778870442289855527620114098240620359261297200470453245790697661770925282890878785948183427517308972856949409038145825491243396593539945849443210619090799213533830503244435039537913517432492693742787058050167391485923901443620441643548223734891036186923043795938823684730905927238590196975214840560591861983205556582719959934312370422260203283607159628120194504148358063238177110960363853994445156313809748234115223834450454918854458515945062528359412645579528030291029718513981755298067404816053346765501971621761394608994648875801295958860693883599906315775757078935143216139101969156266828391729072368132435355069242259128266659553607521705380735986110397193779719165328114950530932049370480847832878237851685243940900517812283240225051768317698279868193067452466256043462337490020189394371708977227079435775590164274693520272255998478170332528835625543282683365547818569697226165454668428779316574456261937607321964068438133878604995758615064335791571020314994856827983870711687142147188585686863826747460228702751686326178752773401782805443101085031014001196133045367161772025289265521058289785723925663838387084209225842626056192864397011585978839442811449616535847505152266883002083871619801437257666976215953674963221789978029921263442974927109731095045835927235849379887877821910414464601755937212950654489812714370086727986873895023438159622900646501136736689388100927806912234673463425984136287988977651058328528824542804045827552296185843377405477384303586959751976445772006310172397042486104736712974084720281874456269293314007455630128263820586349586200025243759127333151454757953635704289604150966978346961312110677826166690130173062301131758323815403417760942447216570557048744624301680189994345594504971654151153180623673920262614871628280332309463399103613802963158542189551690991892532245832467982910177679517299184881958411233943322537941044644930145070945888655190263862337179778150392961795866066432195285558449081560169766162548800724248738321783071181896942498015373106235155884268469616958043713359643626585643693639701438331517795361771979568818375770492915350718842434137718434914273280806430870653704467315620938836075109937029872336381066917814495988365221922864192246139257999507735588725576513734928761016012800732311227976413995175232449739105320079439340485579567158978323579436638994081376594527039672226885986570637393247254915694217583058220020412188749387814879357509870593763408211238727094201939280080392033212089569972444461891519201031051320923778790786550903596319522986117613163828133217934320480603397419430790196306742359442778758337190166533638076614310939222780554794289744579030639393138016304393658109602868342137226945377135246015693736868079932176547512906018639564686124242815544131858119708306438364079515724101399640602352150313902598391882412252225558051167373134794202190839479932165938708348289999175078744558305848217213826087449834801412595982041820900226084973060670725354589652817811174526828160410024964537256754356405894629093932074682571352974361169843247874468909522427946058604601651702970920670948405920618790767979236804203238241773388390156194125831898610575876095401418444280484929791328756846418650597439852553206090694035784652489252925858104419596180804822384353302091564075838520115552701203987750724053274285226660561171999157007105031928199336984162031146328365993227757215949438675076331501699826562156020492225535249554324013773035142094439850764880207437685249186693379374190328491576476827858659558035150453104152668781388534266909031502881262075729897075849271005242176138370302482107730107173699170697734608695627366619157910773130939789939602001606615739051288421371437190301192126809466698645272779648244160998180520852100004753410883457900643138704599333961168238641438195793929719591047608556364661466387979831923857474122827404235524236170682337617991005321573599810551305144100101521981285706118998969111589854711904286506716143161836528418995637918949297802830812663377129045570291640927545696866730062754546911404475839278452321590636703969269706781935329385183588327793268543805784536832673283457552981753727801673690847244441284810131864761457299158670202429157085937911003674381873167632484171396076549997225791534026080669841394011224578044271922515344343088422330290209609406122243751553435925326321038373674356828216190572808314320593076119301565697356116029430852379191304532510994630910359446576453040728814219751519781018299276777448080136641197648254638648959360330379683287098537662032369432819628246323519247283107968301285873247768065748625229445892288006344091690265502280872422085766966554986285191841651572565432154653923322481613795280571300952647905913760916596394304686381849650398796534830428235386607654206207694574648132065915231988032230808754432503635046252971948572955091606999387719448275989930330307844792490595815376863013298370041733103599966952801451641642256182320039969917667727856280626313641290400837450202488801531472426144706550367240167527110150036312351633725088637943182941580096528649052397366724966603604024861766059644639391742656333092993971317231505870394847953364196326276027025714897398521248337124174640525947623067305187228394805327452768753480325731353927222494680720037907862684353942914935114456335789433140049444540134327180602948210184374304054595358090798157896710989934606588065449002730455696493772025835596347684096970721999801893493271131081038779231215907675977413789448439957386855596444154743435122689997323954589300476590467902892384976447110446317296125978190918755666478335920932587085581291506377615137289985447842492159015651256163019571701526495975866423879483964361454975961388163089514645075430645651354704136697531059753351695352054204581370003523964178827854516902122846951186379069145104775688654920150527255638349958433831227196976181267911304946408200298692593393381657561357911125763193646647639863006671224878035439177178514948600970384144888682198493585593038513266859194220711879340066863614811474682350299256944687596698804380158456907498143659673918326829806981613404304214289578988289777805818878652003144603301474080238890382482249137795592668879523648200995483897253178316841919221911905724392479632857154016142545056072647100081185603597096372431822126299439898179218056750306457674673953360330992365313239265962668439732207141688906323953567204717868524439006706704692179232236439944978609989215654373331250280024159216751258741715037780862724770316457746820192796760351199193282254095247771955079807201637769731187394183041218751641097539584812593892373681698602582338826851336517685260773101389707568558831223138812266049427511779274306696155898429534981488035085457057193896629687226577887283031924031828988762159163060556944323754562462947719249527843554966799922849351263498351429022107898403700018465858134259577133348687350687060387751239109912225731891172689265006382881058471180980706687143940318203308058417234805857947691657967836444521286231299801648472286630816602653035654443647501915982167028690683287419631476963477124399511982214609427867233620670209373675715745135340283245877087273975004112621114624100180279337169463965447000482248510444394352461431154115943432122402443848142311101940096431379514489613732325550390900464993611883801655168123632620500574474315563124721482551836348454146161494812078167802399592988844215149512130787053262206139519279632155023800366600560745345231231673434135213640110861978352222194507313324806542343668652493088748173546845699996002131588659907196519450125465355923342012137461093965879185130146395948385246596396820878169713153480899269362129630455605213403068516128473165423287561460045660008711469500527898101389473366852731791833074320526501500719572825148527262328018849277393145095009859201542379596111846749793196937708226755425049680697459358581990046362100159408931083703818046029752197112726386134339651845471954922567249708125533938199119887671307696526625347246472074003553739674948439531477595757044400260634876094230444708677353458441610352331891149436021911658993471132417520610806444429716106599979359512847400297785800661485877469572846044610964169264935823751076216881565177801217391960906722564313097176283450382020947945787933195944758722472700866092795075894400196358655502294572583631004825232600047540635966511614035030047077996058856585543177359760815959116878767683080224446267312746701449771792991281186155302839131504193330461679736971903284027598672847140306986567429129138548590294262618478600489075673076535577450135667790444687057347501370003690827534557163408576066791593281826081338401190509065093788083112509535035971305357238319956570138584259681647203407647002270007000511545800485763262459210943573097171227999956513796667011895125646241813955354055411927985766350042472155035353694521712235284275338327445986472982477739232099090730234637439356909223345639402362577568147220854105211152488286145464871329255402581391163221042020169280583065758982109782563943987722231443905225006369731265603485085084247079440345875201449367849191190142425540011746912949193005728633972309025021586116506525913224667790569730212337964885552304929932384094396818161410958099328817550084699489998069307110150062127929931024977354587858814779876847082695602818762870632187547391036232186688892499618719566423385760433286196330938858609525511008081865875792260143303924282152426901285520260826373907496362721011494005101976886861600739549887928303150946237082039749748769212799169470042184129106684718552707207250262335305057402397792093581746495189513059626179581727471475137997563467239384954719563694042139724235300321586581835178344297436744306524686830276171556698047228780553762745871001760765719495129855101323073129494741138545151754680084791182288595838701342061887286277711920575676269456591951750181884234766294259220829975806594621864626982557606473689896714694237230864475496194543214059196222065975677558317300300779502193686659930515812910349018194834955302533736200516951794231279151023742833616207928418373981390819168147441493170522102883666152182500486635313637094124759248095968292639990101329833175470237548863088609355578572306144354355511781136799226221299625603294926299220705495577134496745398147901807207385159505422261569503876820503290705657792616277136717621865777361183031603788137913613127698282943363511152921858567599619918825475133412358779096797077509982683663776902148451056636030503361569180123125220820104632937969549246798564134913465993170559379435879697987435677676119067580574344849522020153729478974707071555448168000255412378846907589766713257712625456128988776539115612717553484228990892353240515498773117321842228474301937776408612243947155625057064730714777190995441976723100568940044477741268894570855015956068495380607507998638404755053476298942082474734038184089938838540819932592206016200510050693851756313188570030488602399336175341452128564306238105960342175906987463707193730801331129875418778779967150350367354180199211821807945006405918168985302838544240370622995508331698390793542437975071040307992389443358888726131514635054702777269128172064895634377931433692466524139534941541184926672745885551659096264132422197207224770721154887290878765450079514240788124510100898360775561223913617187241948423256397316086533868600921453011366609275974401828776276628622324800391072250807651103416717009768420061923161903782094880695137652144533377907611845563346152971043000284503828823694925024426771627675487935424506052976716934210736478353546110770968229802505569609846534543799519210658344046450446908101750279557240403695194344969696918181451750424514555204386515714835003888340104106983006083840755993569848790587140720089969746370663271467461845825356535619289667313527635859392013828020766178127725442425473827848127816027256631456516679931135860655159344104386460001137833596986639998715483685904358560970741342197552927372458247315488875374577137503830578187721320988072170104999394429150897923637154138778697029069706401204769614228220559985927473449833329382742273339842554178630378917827826435206751090685260616714749281041865148268013069535852373448908793735792320312703439542428158938372228034311131113244947010781913038579898834641454013284079954610543958469815815207927484916365975110297466639239784073630445946169609518679617545495324097057650587901835176883518718576950736582480011715771677172904154974183530524842069254644848802562296248520960456117683558866836103806502416264897231238996929457975212694453909151553745274462092131537154376675077816613976549315452030844897917368315466718541812939776495548945172398860975050285149616207688959018151529801797414621490076607696077774051752477464927737110535487308582650185082582175838887730331989314495178683629458017536124065529384696044708290203573227781425620272968368437665337165894864892996349070842783086206547245828313955991665697573263673849881904685697538386485464845014756650489634604433313405615634098956757676364690163049803888777050727415042237580894341209322665083654833719540228990590502876253313906839723777968362498307667043502233690368531019960382540812390134844075777188105426974823798113672081794490867228885599729306764687707160436562615138022977881686864621856497456968333918510982783115256894164883828195361523510308180568346197851495489139255659415160799685894230602885827250450893331362396039944243548919298958495563575940058350783346040590000784063635304196467190722353590561668199489587973120909270089648817940553733681851000152049531461774210101479331516390325711418310340904369214079442945216467653206500725816069943152809261887796172858756991142839935718511880232977208198090197037630409857658669422538265028763559063633294334156240099487363882924654841712987514903372368292764771839677704928132362694254548851716727488355709673343898946646139928349834552109089471315587516875148165094583125493740795366385177922100917504169286953313742504914816026089705212071786425481689496964822831804355861340221339807237032700245078695375978109172003902477255292662104934823548528754878879598701799749508326635825999992415564133968002436036878890672263133323995553356194356988736293302929624889919161431543911017861895870879496042050531094893786409317432144579211493779322976641104787667447009096211209281313053143395565884031756328946300269882359247824648693339810567551328355685901989355851328619813638913287146397948382355409808463591589998627430758622659673390671259421044071731475234747882076695221897310539996791492399400432026241505269260840588469084450760725407271424886112139399172284231476012488442741990682944411958750399314850164883078966843668385944532675778354080566608701314830213763296086551082640712279316568575628926899602566567201411898133622625541501475566184317008082581116313448913619477614029799780325478020678900562606136751338067971694315614237568733054733510740333977081381681029806536496329721152679544375307211940790551604327236320122306574029999424964289189903287581332952460288429102589607704284612189504727689936387832143812997380843567399030397545870470196024714930455500335414682625896162907836331067109484384637752077747777787727630983294213199015706386406566734508691961099946210227588204705074327072254565945314851932828164167850077412788192023150752601222300699917692951944233466056354316053299457373815425388255937812789268268869222020257095346386384316007497350837197615388387189412770861792193544032005302636776695500820583286011752908963185670428069185467756117528673919595867335944957454747420297813061583213133931090822745298397136576514801628577281005327514733631602967072432279181009510702403354782339209190337183617192127542673646906906531654934436872838637485177446485083378029620182344525432731709297313081444616248971669917056019450398526931528334322221138978090146447572535660874072241856446274338438085443538952328278448873704580076202442534274172918423589731229129406698451885317508821904246522549069498496217066446847859966902207272970691666358875060492585433142708008639521087674884780761779148316210279959188797443813130107223973877804786433211314779648273559356540906359086524270859737443348713182318118667759085966711724816986322059155900031109866318954795693985660053156245879623690998597659522345587186254395939303014024842600052071699009675787592113495185738141920760856778625474281800176818198009380721415364387418526315885512179728733878103195537621668689103979692446446685228346561887981720173283178818815632447012786756417721645451746787157954402092713296308853983325639798041053698753698034438489844156306844133496805333565122994224728610656719148289811010319509587908860371358526464792371943296458497114714505104632800133514297258546290952952296741231230437278378367930635616343345537921545208084388048801312892446863102758226238888312072401321796833532830838401803990681425312020422064856458076290449672877256101602923149146518929080596346259382792992686702283718723401420223422024847577949464958777527285492521813314701925091505432093782579944596029334147985567072198866148224011106276014701148220969990079990918072105821305547656177925804494504394440739615794755233005433669872499805242670729472452558097677770448804807272891600655959151554306055251010458373851374510808871518214893798751610129174378592652631332237060007433917504068578317499305321948273248392324517425880926857616812948401852401512886475578124719057384227164486069155589603333334541761967130897653773506080204972430955656400773852998121229669286690360447236172442854257635264497218117683127655077957799828138354719074354767200149287844873139755616184922113575268774291777281849354896717933741722441288156107947330811938649617202913862798197650449456854098391064128823848299022902308097969523365523624906539266496115173224721713607996324048467024883914598928788781480779770881189121921344313675379561122983345158417186334606609711210155968902640609994228833440161492317393536127265459226953848177814293787635528509338546557868137571884346416737722109591658540407954602099304056114088922320300211064755676645383631751631767141279402286051348370000996718796957724360626969580669238828663249894284404306395140314084011163549949061170072164251015013674172473133275248053692861999459691538201428842245685380638567337255270348936093295937337250320540534541742865864110337703173387117312131969532485666366685205003926677166809261902769839184266884184661822698970528301881913906401369018514651193831962656106277057483692681213821293330693302351336720694652770081778222740703223750440621625758600624271944869018157123290654702341120353598753180114406957186914492965811120243902496170326087230413241005833694101167215169463069902801421351021341866854753002020609457845610531256629931295810872443509763554620383421657953709510374119915121441572434084745378174654816107793364403311773526843264889138630331772604197120584325803402262936405318370200659046021688861606370031362700827056943696918922242867722111857727483960729542406088350196061615273507890427766308169092422402664016892837732346994987340525472792984644060082686438901441567844918749512660051304414420703119357915390649245293488088918584236844126919457447568324619123651475203564770570383889930223670525666959062843864152554735732926592428583108489691261247959971228856808858558119385994283164579502163912091052235086368986979561763187271687917906438454981045687616586249271196103327779947453020445910352939572103759341422400641930780880562108850981785728236384702365312714254868616016818933677974974648325565105317254166283401025832730845231046886970994191186016482035154779938872961463424175964097829023763788301696768792280147417212864884339401088432532437585007167178558482970598344146789278285029572115805949722970004642797682462070707946396669700020826628461117489322155789122189847256266176036261394548455090832739854760240479655894463000561809665986195444787517834953255316216668313887555629113830077496276874370802364421043760565035658365009841596003078066200078905828613586516020720179389911760277044244640183425203644485868958219939586865973823437500405860602943536747704047856451212220491448545047449814841509150052320669569752454504118239002219977868711431293983944881719689120899284407576167190475269323522132274384755745790178141271249977668947937632016986030179289626902630873689818403830987803876414081376669560280284040894780252123982227058679789012714045325246782156481334662964815017629961764530174979910761141357329773699267891141745957211803126730686703293770583459357486759718323583747921624785736552189271744988350457403496559179006389585700786835718419854588918187962735911846294522899448829579658595049476660186615660630844449091026448834702655850530474784999394658619233844747675932467379293230328906323098439977982351463425807817568696509672881820181259594877820493904711904951337648949142730912916820950231623899648548572289674053804268717123765072435440047830265841005891832466697150710291283202904090205959878266784727264191688637656711358054436771207827574393297854420528896421709893020687993472758721750860717875121236093504245081217356208656163722998135497970047022991082361556729238832760478805451432287852897460910901921214303752682113974519034168526349867607568238915662861469738047608959057778399497261058785735464511438588926129135583566070471100815377087062618154943590288505446596161537544157394299095812889549421986219342279314128091918516338232222971927564047847550817592135431296241537286861914054087615076147632185099773075805155083450135931308467026927490118632553516279754512495614699809007062388232767549978338853080354911634749711336481403315964753961350226930670299081984297967356671196215061218191993105454233136648842647179148921810907321257245490643444102313404430852345058440974797312996831564657394034753178147569132786050455055396682412052240377168864959226064492614918433803021861156636536625806458446165679437512773208674007157949270469675042387127370672203941279859253114738203441235583546579097700609921960361061764405367914299844659247349917582843364965510670237605555607139495669452085233784455939752976022544200247376956943719703422786241349464343309720055430734085295703220457962296562236031794946719059734165298377827239905314968307336560414892894920872858015891170251908591463819930198573340034341714918621382153172374831288490390520642913787708512427392843854534327830916841802404296807531187594867041616524740161121999049802563608374328779005340072082019627369128652192942689782258126679860100587351291240837685303874166560955096453380539201570398078079359334791368961303077795694472599399216512749052815650707283983169750908449429053229162851132527506569329865695009194856577487482440699697692855647392935119918403722553959661673400211462842647249153767180422701638326093069005589653522186700299932601504140782310124595731392877029249814879713891278744795873140284260585415889336315446578455962624991830206777421666794976800163520865821853735294017166072815743082756685411386597745438604444062268872383065069670817681965905695010916686684414040793708135296208408522426628237857941798588395591566263258540136484603637042104196468894496702223395492541519587349766494818266880672193244107395123111703455820640999648845850798298732398333000269648211854862437661867294120340605784578159355024144152299006950277642357885467625455296946203625350744864381038031840276837249539620406294206015493768420083772065291984107848656273002715833580375454110530760235396627983496904101161321301212702552192333566025485169227830280799125611608583013418860638129233286146197037765090446700939972439478751367353784243644278669633069980816148333612213060135753296399636255104305883157015030437115744377078157218505898265935930593275667512742315546001421870831567723255453408076490120567288413789977015073133032082861583017281646011166168023948395346593170748721901095977086136264373971106407873456339754945321998081768148576189332823929890302400789815217792662459237850003767281874625977175456218854864475338926539082585642989860512607996573796220946543735990158487936624461412651582086853352935123607204000731321389560720968687186431538714578557014301274464027369363580134603473772567526984403371730619314502638602557334264858907136650120983727788661990311686079120672532151904818423972460763014647934488387000000704729645582738509712701021351446195233017245060601032647527642617060508052543495104954427626479080062942771348958453326856239378354511140189791739292552192707846257093225172212192835396314828812507093725969912593674361989907727695496807641041306535490997473339294248967561580468945502302620827319342883670233286871257095140417108009228570794997387488149709883615009251954264370155381908662192301887111377392759576930178569249025762978671300589060732456692058267980059930516243193796203505188031177427894399098653779448856856500730642562152145930691471759903278396133878237064525174958659922238067275451670636760590442038973272304046376929744380109186096950867019305332491175937903050196664626153953627009067723444789898196922262415668714729028916173168614568428322499701672283490845246387971264291330130975447041563486802786388673582176852560101132129246573554404760767619348656991809035490928526971503407462626732446462119886347073205678884326593299097558653915886416340670570772731671016256136061333883683278397214591062240019129339315475265460343415553171168552921339611390702241495921876292621851761855479855156845963427989060103465282969183351071746067159391144356502693903596050367971415647163127072093580686548127424603182278578412796562430699146886815160032585408408683068715837003656504423099186434920485788287749031582596555030449385171723759191864670155707984476195001516042441366549278103957925336350315843319583211971132191807306976648734950145955411058461616123202738415257718430285106172750494890097061520108937969397556431994473304860433812080122579488649760133088090126987212183354617025370043701366841213323772328850276094131890662969528718929987168996353133549515902319457436053184946413046388954995586378818084125280296183425972723619386134627933010803880782832338359961585193504984648546754345479203850768769088961944337180648103775470530288675457351742339552028653848579562466525032093211079949143512339216412985037555345768843044383421107686660981426637061549057202499653471052146629824441992547087056960591399674475990944987393556135529998551262796149847680144717556238305015814907115179953682739118701920925237962332042846816297979174232112807289566430767896010461111040859050626514522612634446955251336808373744277146821410036396740968485505642908847899992192612085555558482823246716022252413219747074694421997323429187635363821973522963025653616449852387786807952878328256577693372918377496743077871697101303748745307106464981412680588326841944144554553949308308762430454139815274848451083070519392041010755931316819093422107075760655721752072553907750531347468636391796248790223878784156934056160834538926723804207991598511063238418041908677667131238711633361903336127865470065206390374142195552066964593684430164152512162422818052095238173964756691488799432922151687980929443505039245486309404022053032003537344639003959611801965851306450091118826438848659164871805680669901367271755837891825107499372863938688546749244660558040112059386863855336677239872986022999224940256727349183464804396681635686270569771213323895318257456775385672084129368561945169404226537832808255178017903404221447549436537036656716636376566229674388614052555914542463149018989498873609415541675251115407968444144748922748502376443455137373550606967023263166378023132594676473122804503663386294998371874896814645181480179177686918253630211502220689471088228271146820962543049278857536732334124276720269671900810517504641677904572056462108708690454863545866415840727223856384874576956692549549895028461223385837629013553787617995364962859993630765101642477410993834118421274453715443630927887289579904336378314430145380778921656613610272055281750592642403590392219523368327761679973623076308774188773604270374649093961514838085601013321052020375916421482081602733616019752423674983443273844984835412519938116202451434675927440183190042176481380976575690372249628436127241677742572460701953708412462656519799335041247013470575397890416419895819087115250815820477943907854653184240447106887439378127533448226071080404823583111916358605990709069660684288974574702786786097728038836640832343807876203647673292701950165911894660733769750678626707549218962689894531773565185592714551893708034358777013131206537327361754875244899694167992499595645962276180671687862773622549960020460835348074063632463439453234771185559767864727094878771830210379906575465624402958989362868603666184442543285351282341177646821763610633568985570714829548702013010423169946388111116200554360384055070054048142540562290650448100442574185781097914348747930048644204060238152139918401081417881152949489731489936558442909388197815529424053983275666406476363348694787028502320373723339373759404152790450564624800890244565454470025548654217227322215674751520677684328836719145446109302112961645918700162593526493055663112270365132847475003819109227316392668925338722743347682055826393333836086257467363959299887391682473888469169599599027306447734337678442684754286366173860847063822496373323799935353933376704272802751645895960364192020083214116266929598243593407872269814382268407912134853168659003184817771287506235139826362568163529847032729884453324186857262734510862096326889795019663838987905719193551174598004857162094294505939056192576669886316475919490213189258842155833347133245933794342570817967524455669276868681198886806361555151205534008166535659882114942367442589424507906088421625560645454427703628363269239937233092647990152773668244052555807000933316577306780955889891520578544521294018671480749080964725600439485795040471421736720240088436047964787493663565680729416804967075105297430212017552039400759557400706654739140643442845001740391555777677744595546824839921455573320032422001843087557706962154960897297439947511693008569230487184499592812725844558660520107242455999263561790530633269372664177971281199354079517848054598996327240743715279289508992843134018746002078786867128197539383536698311536739128020013532821852741270532364526375007881869587870774848615724449307443760993612097648840163307439754117613219650408850075186777699299774226926817672232163350003731389619104377896818759449371683036925122547505177792764968752922120096460027859702363414725506090076147521061728064527949143133533985901883730301873079634547090651662204254803663393872296456146190784889299905662076865502261101628275229749921760291313430845084605472182457879434951800353907080393805106737781923515363184245239515617353683265281294810673498969930709829164690497072447229916978440371832681932224850854397691902397312994686135184532054279624907416017472577969559035565872583311824782663769129606663055702036285433430406625080715338294673126858953218818495554900717270722413030655804235790850330313459849684676149493470600301842200178250964918381963384352428731967414999977269014077980797141655175629130268291113834745586558566789355720467611043673305379275347536490904367046617448355520933617914861286013314669099290713978118075631586366931705097422266208780683142084103537326124867258613647789745525171911917721500046765230874257368973369974497669092855515597930965243259073071724748429005106071328824946947601676232132125971334834838375558627101506704264601901725433991648746582521841002457771152999674971113604476159145406418759220356198515584170009968120112479814515946949176003166196020167267102773955466193214254629038576487001532683853515902900436668002284411002968778050041366953414842190366357570597810179218496788132134596833685318088542389064655849020398591580133281369035167764004691322076448954599312313832010020601159844566048913397644400522421358269032238580695015027832518803378572913973082905226007847307616992884975020892930098388003732671723478635088384757953917513609382615813008028509573259269332685988686174763799181695284247612892588588735391468482055385182896763962315928773245183386625387498592648952697501070083105697436624104957136300076741262539595497213902515522476568331067970387276966293553721666484019896797711135150378761192746038169792937156533880968257222989301548723827458201705460638085827821041175869810011863684432352048846429394862261242453379569959288336998175357146865657146572421224235327772995389954753612562210106730582343693445026616535096679566879307338339020895917231591907716015948951275624381343943046499030543590606938299224757844829942846071535080111825885748844118094778909571156447909927325306473524731305385802705589596551987526570273650747086430468721703698168706951278296552209422705264932296870586349671142164889957197965129751625991275889061544908655921610081846901774078816840738892511598667549120476855492423584171083689264631567109932558283882311741665539740582585944769405044207730761376065754564696375133623558123162622056122167801977094891301005619993422097539304721286345100177669714938711982755742342352337998313950030338215522546620688030986020139978106309844391611959302335611323316619188590508574570246045140792252890016252568355594455069216378669992655752297425755832966267088682933525973870262990814541920093360071661284150441555476595091611610193270859101282729152616048295342321797660179010041392433322496550283623677000352749065206925903594975767430616973594961901569345822846551686711472736480033170970506260785644153520392186583245203544243782854083171952498697034809698154693444154044714268343378783237582250720879706383486789945312140731665090372052993918222600718953718787865775514409193677395943728786757751871739039177219489477797485774386374759404703146048153639422375167764737561156706995569115252067241059254368382291651013094971724167041673349668417058876433479001495333326461201956631961007563216565982390058644425487227239628932757509742322577386591058670980602539134189046303425222559126353755719585639069054958011289705187005678095842398858500761175360316929583388444070403046741613775160766259496137319045027384825465765540964432717694469348864249767711261642960454296651163056326721843759663002097066451024788593268865392350874555358620540916514559334078613257675323864332215330375209750792609498415303261813892133733629451931766246020658157024895725719708595708977917317792068563679370345037294912074167360910281873269631197852586023746567481964373513070772270964727577925082524459076546280586931865108880419792306888008966711693682868018085291175383140506150314765605966438711881249541550543492630017358129474619620057712361555067395873051927205950311421104171951269705552276701593016886679618829450641468518656336491855231178847480617965790586090079930131472045835554797300489277993627621763728753061116966703357973745299525182701902426133538652570386545720410561200232736994135247943710591595460775168647284633069364569322526201469689044865610003395448601351912157831318660705023453822777869258184220372654936745071617222469573257630191127120719998932787068286813431170874296067429922171416080374948935005774092004831247140048849859371424439708551949152473574402125948311288622929098940436772183318269607361377250379492475790190957083579520704173971472724267290173800204735132356934900290265021386881787552585478782051302643456315142474085562557995441535627847972659750833467360450958738892928782997990841488578292565467150189377594484547764997822157418551230209584996514538295591265479240275932323731935120538644263354929202082976255826280622610608283037303668723231819923969103726151172812551495347625721804545909885755165017018511918910612849706123200932881246610370512479052638790458791420944858837278386514929097146432830610796638614554527711312316811768941794904842447662949023299793780406575686144918747715507892255056814197113443637393581638293243456830643629313043755064263595354460742772654030325014108243282684656718694046028640552254073952834832849989465435604556281642639046661129360929755528201128914301385983950792853558589636859405480138902414885716251999775680807072444235979545741937169284756737579669291547560050449692654447722113082351529734670639791364579101835825786280004674747735125856802415532737743710791144997719974133098165590413522387470995691775623756561764937269359811101523537797435781190964061133650186833484092457264244255559719739287007300599729702378078984781215695539168487200941516475356244984348910048148431057243346262395196626791753382438700669781444779486395307284870164512677901307626725272431428608546113860591812403149235723696844517032225785726513274939302194700698347779440918032328213143488477854114143516194322118711067269359575773945066789297910106247361787764656339688766301531186881037659530626898789446991243361864426311519854211892302119680495152271529056214259786533380459620437048559009150967330033050403539769353463332762683055661754237501734364156519829961961038836215846117242120747187567866676660942954751488724065302599263436748498057397799767723733601309937107946468469256514435788596957936247230704871944977790300315780721724884766881525622424296181519068232124551514830234326018243629168636965847292786053275287200358293928919565285210029899443568570186979722335057437012346797846380328281170075172596375866462495811894293010868100244872919381509241717604273022808702342563084451499990228546136615300961550630977085939822767332331265154362310442377461484429726132837339758571406836184475751440932755868939480482975711512949756815059635818088910998962041624666499400701817965281428500867491572336930727243836744666212607760768966051136128243422168240224666863706018046474893741048080511633145165229381235412270331345658681193105229565120853399883750262278155094636265247537261440954097033189831612794800877437098922563833952329552779241809433089958417334216698522232475623321395611478605670126978419792438641909524766083110627034723539381200037495020500775124337849015531453881242891973313382063399968368736426694969030807765571857418253465595357733184749917558674210917850272023180992860640447711767267638533422257859299531632332991237372328572118917816537945639342534702916947509022312431975560807312552145861404558758060967835325050672107718785632490402970066570018809209599715846312515170421255207338416059525818038454871229718007628360800167396540132143325619060658577098437965996732165594953618561096607282959056614192508190389513113879971837172315587841396629285090416304670062820834157820805831654270653483329639905628688971882752859014131433264590761872058099804241626127705930827492547299809856456241143456219252177632889791739991787058137891731938880889294370626698679025379223441803401071518660592827013545589483637125477973317961653678271956052396321524446782995737916737756607901481563679191514373844636191306873312224713005267136205416384937436093942932887373047355247369834989226210219616931658020208571621152330155706357502894523916640467454425835526606519365309645768227389114958300400071363218994008259135705205985030248028816427796064142919953070523827159611301871261444890681387530367660052062815982139308683911731635384240958383854829628492565080317675277237467745749383339960600538370278258254911068307076678861846836225931701264004219830679838599198138621722837167391064495703715432174551039961782685558193995525117092962473082871373711179320265419212399495630744496328302852147947973817697233981080463234245047832068135409862016744874982575234910554902315159378977595073975574275203227490685574967640031332235053887089695430900543436604876247422277069313271400310924389234866166375469601256629105708386977933050770938025473776360009094821815599774379582614288339239294678126480198134691828803926114623220905336621973743072965933290978115939506199816106004783661008330151315219216218749709279953361760011257508199718475445389608817228706402567654876977883128802017708881618637591006104796300935236778066985860186319068326971207146185480267517235317578286222972522202282326065762882225407084270901751549366048122034306590453991452300955398353348602935590103598424423997420631816542007305811434739609294722677837851186613675356023630952280690315332236302875816856588384873656378458457616786708034599479534820578276264807026655461239059512603846225733503814787227063100803090326352604779645073818991893041767746020642825496752006630732357016557521915643266872835371098023407364890610417368406726687126177450829486042790388188955804203403040128725025914444479553176609081667309641722042423657319425882194641526730139699212607211238911815568983930938246903812682233579297615828630269744271439013672044340935253445261347009076633279767876581915702172643141407579086465247230332833458169132034690723866514283353738863394390932039463589718350449145238419119020957719291925100275331230073835479712190007523138408668634450341676375219134164788754945655836010480157827712230287133225519771213422887180581967534046252485142895546708574628036516704027250627716174626114450333662124771675632630768671103015750587733366143778695835727559399092870015773409456525177713413603104511545159651619112649941780634374874485989729851483249798018436589542533609012823022369091078299220399628889415764977912632569276807236956875677125988257641040730427942302695419235792470765842293813065485010459168421634361122076110918217129973548704425526149160848468994868207290380625428691536142032908141516661428976151692238681996914943266041201427571881519227315417829048834459591878283032563314395845772950873589940082079623262501953135779250901815043942853951096848911974560194797270259483755910539302229258554902795865134568493861715534838815810713143253976738233652673801632829744233233218233356601932159850667660321453399971367412373686553064863233560952580139638522266530576266195503583651970349081641815020573490559525378627478166482787639331040505908170756933458186525458587473285835517968312048207064833476483666673780378830392196176471807355502498157985036902366489939523931452512608651231175219641336150244005564511530064240427435639126762363848225031222714499816912128639678427868544173412591714336792179827040949606392870484620667436609473391424021651022073697245383080128682619665188029198038791044169678414664041055494571725633849056497153602102363774855808644695404107186334646513948600546695318645721919093817618971216802625927119202821802025337632915937137315292652653400869892943426398654647629550406382036075528119383679942381608240174408399440108038083892917880928164053488655700592349519749492235446716778668513066849665110724952089608198686361193440580046674681578099361940344268621542483889704885153961639009387746312165984775703346762525791569607134230687444362227124362961580476441829240230903441220285674315889048240686977568494267039796691634651187069489685855341841465489781277856049188824912979516837405293184472022214544501416318991754986589504066870826049156981108407515948876652980278718158522955230844157317878666797378436282069808631353384786282978284619855652113271613671985254021521302126657209758330719600267971968693286588416718092043768585572967293512950749347800152589472900312403679310039094572006259704651814342667871546982537761964239624214833214998981322312843429231397044270598806463182889831387166666683193379609828221209175635799131116099784751453322413714237735991312112547259881589317566053788678976712223216487401702230840661834158937767100710510317331756050127228912887767742565485681751678664974820003737367983972873259765679733888218561987834774457412378054581602601720018841128800002808291130542310964147912923214380102830782186108887006198640578081401042054813875047723095094181972697008687874998032421612315111017811276899922095905358085400732257892160347025717477765567634463746164030833091290517337279361925094829407296208114598810457382910382276303480999841032617515858990608460129338250833406777795744526665825092519203761738778749962850629982805003239852425081264363561428877625550448039991427859953374808232863532407801258645103020105523441813033600196710501962926161712310470098917965947401974942117847321759806082279429813153344452138173148535240042111538671881167860403525441009150328938995203842306075251595016634914237186651992144858353663673099162590967867372794479718582519657723160147437458491647163972058613962210744196960213514167644066948420630577045061058781222625943875885513170071895965424672945399589563816020165457573632108695595540997586208220847480838590147576349267024055224076266494696628787344698809838055500587585113960222970792475659694979405914672362501282471186925021480768339390304651779321923457517941997988057090486007974061342947969694359391277782955668569170137381742378445077857731452347438221806224642557756322821079724814644365442507858070513664820990951149156743697099814154210003402334583124799023015837976522181043985703963489617516328729401088127048344411220679735069530715014136336255779152517407637670290510071254787920755804590581105634671264496811370037084177631867651643367688200081459434404726619710484131891913831823582739469946290913385631914499678772518914097742254390568659408734706639202419659750038973001569904888343661458948648713224450006869177175967908084117000605739984349625650019998026566905810602666291860279852034991954941576926630424654051605399413789964985628899177072093023865810804825915484521299934855836044410357954626152518312123673711697862000651965062515320597410919025166863781394071434654268233784103442984873579442126189321791190550967241402809887481439055238990084239792732514122772921190420122402661003540024817854038509438910602105597430561552014778729613167124208425123537461315913380363685510208331753919136268356382884075396293091398632579537227689957771173135714769114643536318938333758605531982976811439711164304220811826551049078469661835880087146562788523573233720589039848233182775907793494066059108532988197062505075165791127217895285617361905773382921512402279360176341500104676451778020714233489088999446663201637513638076481969504082576688031062563818143885156131548078165555787900495504351177740326999150357496499087668134210230210941135531041501682039557535181502494991695404492399422858801240640144184857089669160544604280051059470149129466782887953333407454226862571436408467029277390116270155627847388604387812174337915245098967301822599795885596019309912695779492738658988261590443105228599096020352524084241173792905093888816209909717168203101242924146368027283916758220068683584682771162291292004358243218086586105431889734923212035231313665585243626380013908779391937367758930395373305678068103832705074217433765522069970308280698253508515613489828983448438209278209861404550058335417616222269958515435207353646704664199473062149023445289546340422368778953306690780658592739059540002058212642250244401818945898112916811884410302006542851961339108383159306776967966116957963216616679594164024624541596874965924067911592756803078347357565785393539028010111244972155869550224969652805932445001286693599566686927347967991178056134588793514253357452018634344755688081119963231510908372287107017157861874564366630599463921837671715896440216803761317102732408991312502680824689804642261168529421925864266765786184137448511091425489888192429965514347184425594201157567182000759745009846302632584233438301997614201052688393851407359777120807035894390069992496899018943598106392325726181731889914185669695095247094328730589783542903324548722316307255457926040223642019838622802139050920216569779144029611418961234322744294453191079322726893369737823472823566697895654584131062386926136946224330792466993357574712736469187338106755229477562416100433109730926011186094873068438134542760208850636139184936016765848771221867250657743763788646248900034025489543848379955722015860745044939511342818495830684811805035979749326188714640342011169403754706953283043610681879725347706391071454428051120141065423840748311306393809938728710762852003834961456301979712765498954995735681604360469806168835366828658009581971851087790518927547515180750607740204418769738044546357631423182973770609838456509479207667463437224425445312186156936312135133449325260465489682446538010338720576058086912896155713434920583051160939900537004759973209760741822471961361380404727219894163035579606906986376241468077001873343635051335480027136057112206345816718553157624872608558452618056436611943342943416969368151821571533834455607094159909794798389684016582431733270240909475171806901759748597320295753223535726665467791349773228249747142379544065870008863027055268126063880628370611680756234694097768132667584283765594759609316297016015381769166479820664038422712646911459547569109213951613039164566880615524496659710583143253634169467710290008647993695470228669867303130836139493314579026504921295791080449740502646059213114647054777853467795005723274274140602463647504838187731860304076488756534273186684460357123004006593389292829901566873232348077819887082438772476501768842099080281903645050241491198982495587756200768678757334179518911350908598442100580887953942567919983716908987922040080876851397702178431908590151280773027269210617920107924693238311413823358112061532082501319422128423124209896313512524367149805384965731684619467988787151689933893301255816221801633025677937094914698345260825976463703967776869517743316588068417677529465017151752527947975911193509988426592860337322945241367892134645740596464158192256654408584925839080172196301792479250414355380755336584666797796437657570192932542539505817293800932890711729049244567933777122131531672464350644456797464398657160000423426369638743208886562797276918899309876916562525746803168963007433985703966363206930593284692422066773606946551160260890594176984733969670005567436748543479943933783401788104025444418665399190877616876182842277205546210445095587880113247498468748994505312608581064263686709383068101279038245473518599913529356905095732648285754901787575633297010027422196200052763051191539043953437728753263496897799072235321694614039887033689969333068392253895514337465659706896719337019919818747853071676463277114239722631241984297599906859080412776312091601877069118679421474195681957825630915435952939311260065197579225071960723521011575873475563767092245873400893792340132619098599426039202772759220691281975694289404053461803514217635170015154441285443845264679274229420222830069717844441284224568738333223872147205564267809405855184861663428998683220470103899843480445244528212796779072243001571818938086563241267516186502795765723863719895033841253954546764541728486253987810216427299233476659297531467696494527692513063387225027800052963258332556493102463363802568751372890749475957683495698028463664135703192222181778445324469519306598042124518767012458688570321330471097815418083175325722313013197222610693158659763457406326281401339584739068513207294455625673433600197184955129978802755304779004999441993054306736606985566844018883884964452992418205932737371078498316542990037646171489166683665892014098789160417762043671410051062309177294899902070977925997265617875775688176595739722487183081875429010837794904149907343558276335704788249740764665365647167146646011462850552166585005281231336039943911948904576082176472931870945587106897794180896930548312483867095733069214755826980521588794276805531280554574866368711260668198395684232302176642488559068268645652949146754372734641322071700570390393496732643679494475895841228615801945780447018643276353965828922295246435613483964173102038835838715011332258970656990832924850261477990979868465647538601018497959681780673273975563205859927400606452680073598996557988390283678304195038707336500011473901515032449127054678635811306150820517119792155040078480844055050997277996670310776291884170793455651607372892182780749230060842302794399053061918593475020682515777353257618031526164167269448241372866514336823568014090176344032338140085347479661973214247671254357797566787585037092564385149432368880421802493732061847418051761903213075891136657992979941648793968307590382986813973804095597343664258226000395024266249039752861245387420558073497055510664506358024653785514697356796839632680651519534999422490041079841722917290711364002581523237889513511537055782416994454580543918673869548915713899500045783885061353577452670501053826122211005628852286746263644839764615754034620847181202551300956489780965123156173602885543068910396343618403679092044696697690864923666898805481455854031519033747172940763942988929190219238844947466401872549293169334517840563487178270473722249240657944211346690726708218142772281996850919980965778735218863720202136920594842833145917461996798879399469160681803306074542016203609111773209034120112629299804836370629946028140746645328587666185170449014605512545955036802849354241722680414426433382414154119145476964188333495167928143678725746348221123007368836579938318389479156237356644699245477340413697296378153453446425871405881831484091502952493804273877967767907374044067610563166424573748952359042658773441056688339032573024202819328667192509990648091628323701745686782480321324379626044993108561380691391226885707733631428407493782593248474161825508652991793602717322816676507908878822785894084720752333954811859052010350897043659601291494383781502199525049600008436507733666795978433263145058465172784940517777832602975367318114900008142516128328317071246314973168966970370714314038026747131172162461511463348891022099354214378597352887708230259936750234682886184342557247186912559564461386660104900381089399629106215563445751304598055311743834171918709136575051486423579138469201026865473250903486453701178011181336590022195894021740312901354709881854680909747460027934779715463076171768844284095121278682439238397351501931485154419128443058296575450999434306261855358497286035098657009908724942881640923331465624524970482073055228338442796010735555612065770231635315936362638126985572267924890138910020081277414582511351517673204229086823000591804036284709585327599975990376830106962229119448146030371258070391705216285972349319783061595766013860206324489198130740186679279298499740293522165903209857796535476043967352995715426216637628432520159745609357588963610337393630218315990802267779639373131287181518985783030763058181949427339169531718362333866505593701818325279086239459145054690992243466474304080178306449928694779138672585952501498857636229338360355030656697591264826188861840763432651751057627884927402922952495731210072173087769452431647151207068364948594960608628447754463181453790934183314809293666522116394178685674784774887640375981648678602271489580935467567471720840892026903732081798370375399638433458374427476803190996145595949389827297173896756799513690284425658362884709179149343499209887124724351568348481293251619904010713220389189838157898164546155474383549771449163288982741779847509250169157022127185048263268409264353416361679209442493264565626589607779250305058515388153158509820804033556138932112881432225144437359754529317228737541072309419924077601960425525451566157860081464484948213461393406408195367137142083207684411303269230978996497530954930692550102667710343026093618354048244586965963357450922590392133089624702577976769191220806743257031386520821755387919032907534278000166804197383943074586881406447691166587545396692960093877519569907891632999103810773794430084715488862344107485118696103288457230921407164285446205169465528153533976084847784010086097510685142674095559904356594982194628947600215493518226212077510344092870049191572928855145829180328226653075780761190533108056434097315420314819041609735141893107482319661882891266314685620196950357566319536751342710513977985733259662446387339782454777027194083278083703459943397023704490332563392299442359089667194125878154159776524230379899043110869276546316803591745664326592526449150123435325609958451064168639460346672632795963691812949443555202192738226937274807796383495894939788058054291949475907843838093392654996634194190130344445780391527774944942233817070567363078804855986061719586029704843726273450634200027536141886027797436508576009112566328148432246720247169075346777247608047778807407485968013994289871607017861956071512452260342896275152244786068946161970993415430691178579395046060582361435253380634954745188381502588373220355983624168513022122575879075274315578866591973895465346419672423230870549591759685221261282903957911523178918979831191028658842793041496380265968413793746541203955366176075057468747330214240671471338012822984895479934734321844099497443823103236012609677405594146829858509407712392313492511954826570169944468905166598655016641631458949742960779104581012585122473975879191497484039395159103828000104476985509496666536841124757250224436874821894828377364241555455018505317148431643873955226482884316911669681642786443881704611779797411250387121111455344178021197316746487801428854128166280514519464570434558402785390941097873551581334142923266212238942479479361604262322240758426816187622631497240298538284819220640449150541606181923654850642105740596520311552908138152986533082305340592733697702348331515226733311019116323853412049634505290257598945046030823982828043767169314333887248532872292358281034528884902599536670196704624331052552448301628188757182065642826257284945823250211871237672875140455435189115190995442105607057457747313736569941256776679665333518363328191584734671426003192403839432580810699203400146310667976163177787613362729518679739846758542085779118442915952739873146017610870338424816250323200426675911380052019554646308304817285083071863670744708285812311975470375377317047876224539074481974475751457042685080718264457395205126492602496355757402862922252952994007379992448351208043018517499860724564815709559590444041450549049917358636747164275135326069039476511642771676691376682281801573499731909996788613064244505187273714167377603871572979943312254047071774027053283721517042954309445543656985278514228301457161693722964472611530403051147251605130329568885818755687315641713317725244476543095956014506527199585563993634269547285733981303847085909063213410318516667633977104151728891602492337924625284025699295499739787864942048382211766993290346098569593417777376108488407371124028583294816184589493699104268309427356845418468558103793971961934083372099802049741668431598070196102793255624515809874269738104997242443413824721625600120146653011508222112372944711057455103802346745263989728961942579396733752741688942384138717885767578938669368064725973416913651550865714668843944635668961461624379036281444592078804533939132011587491627179686243112419876294932243933276786764394289549312808283187867989466904554762466099124313073100351019464985130144656239214936996679503612130837570092707900951591024631148156251843636164893330343518603889374187581406526129028597225194031044147136752467232554237028694193769122687026526453338802696160693115614258096675448686045222001499444015758197930076887448489305417622456528749703341706369752074419804466123719834217918972519139701263765948981216899912673714369313099288747407763038873142193218118285779453028037573822357049283189376818175426533771838782047966687108667463505605699134337963846677790222447303574973741640399362859350988002834820192957115763008122039757429016680448078787162803401583439040532938982234893895533645497131959235144949938160317768539402398167553645193906636393105154670387459392458845039462928683817543440845705456512488573170817838073541137603847449499751310840090398405539446005852267886493021279687294477039006333595801797993921506065756356464246631067964105928763011098808621589576516374021013332510726568887205000782365787153001797394502111010159412668673952664696710682516578545771656174792256812316853314562183221640723584842665629144160821137908605760480740656627761703593667717563285589931846271409582262025884101770104741780514832393573197263254010200178272140822793987702055427929366683632841313243945825761931831148186008876953970333783248094397633456020912794121321533904560887077695521827358158148486856375359802649578777862003413057388365811612602749754373459285441880477428935655443289623218969402261768453664020043819730129117287602059440771858354719385083078375641541345364026567246575134526143627507520042809419523253735867060915338847534838636522499903682548136365984781971193573613808638552506403525847474387146492977805777152529200624341414396692959644131139111846441911777412550848059552793383858773217565156120362430351551681739584997304839887119018982583100476053247688327733681871662726749036029889070166915460398819844433510322691128043328720995210798733495628379833905057456879928461593211441652946039337212453676012309802632985845545938712305534922393692836882517278809202855829661069682426873629882871426882201404723129063984379745816812375838456025074518491282421359204880067098829951150297063148821254082693913480014439613765548286990882084099672852385091951343925750423248770290149419962945092503881096709615215532210574604938608580171553874285938128001492054078354705113637833404546760581927003494427161903891685972781064479493908513014930553457944139078334260684837612648111915910573827182144449051823419534148336307524401791462658205638572012653970179322086955371325930171010541373760262468376323885880435642362117302270386938852875339988794532674320366458699421416341577051314001402926598694584062892567499630022244978197998745636857546044620928160933536517378585930077937673134748918782979388060591718568560493331143974430665539637789385193474715630250137141360235598297973971795289887308775119847756880096443931374607854043365032526306004582237133056869502802871557433692694667052799502369812247401452742329620341214930569810897752920959127779581788701646804113400608649208562523605801428380480043862321111970347590194046759483641612378048885916051241195499513967605297720933083215272154405513954197018345129893165733400361744535944919714203163351146266557073333388437178493109983078104410706221954639298597755202272796546651569869837277681946134279806821205852810539569067922562863579225185349450018448415653401205295725060687802955691513007124535849066917165298256603083970491976194150318295034541151343147550620362966853970164770936168313161863089073451197049819710570725814173166454089931807082752009811780746265514640286863983373589546486837803370340988118557444880978167604021467862360045036599389633603824560670947136580586416508004435558498441579269335909947375912941630258070492374749135599256483346631703494527264947685275653789250093873152329424907110726949895012775199850794361014171667647748211666344841759049478489617578408536282330671337282653423358450456940358576511647460651350624285183576029193079520063681753263337550286817397709346354812324129079901143667973223372138992843026005234858498814032290796764621060285279496339100637651413057649774049718586018041767152483263926506916643919514147004144389403190394644712540760771816922796689194857271845776946213644260405111336756232692303434005163203168177252451557399667227245915310628017114889510304146865978433423361493550838468889995778758569536165621623986473171544253881900933679430033547880049653393764369214236210715234542235462712069240805326290721079074377328827117890449119874823930862134343828113095913020627054865570584540456744061549610527901858039795777555717842445461253107294888349785023255990687002304861429697662290043217744274713272110000308969922693849240901161143922714591509511911776503641027448889088547845765392965252740178342986085279451395251547971808566426495597592763799598981086396041341923213458752510908658429521748488044504154820814362519823502746773279345711799041052320850228473442608294555801024607585521140613243982983142471927167112579332611224706237121101091828674551437084694990283748977740490110937716204907524408826454458056525239945168134779778310796984120449445820441950908209590132150904949045890894820143881524221425341728057644767116947003890558041766503013412468371332649856369355575190734543624772578485689130731929634263395936968467929701276430793981442460722223954761133273178520764531086355386880195136636465534741975781550263562950166940974873380851041308797662719908949517579151468487876072905132321880187272983451643422573295172001343751203914819567030197290915331636181742845179613891598120709528033614276484071551843039080804515750607571667235296127368777975949140555487217688669157141679193929072488083210175056049636875728395376102387945497637651261447230087249662602787708464778665785663670661829519404033765241089068156436478689548712185759301370440481501905638486186501438640310136269237215583473986533797065218782689543369791207434572776758972387083786111419389781917400104919045720492715772509206729525633193264210924674974487302668577245046302368969985161663154413986254785365862976020916658451643735972990046246709821830284423228037710667744194328524943349586868369719606280603321983589924615026572346851908719771376324016419930605574772570231965991352324189580870762173950235823656646923158922155100363904194542056547534553709325014876581492656800544110662226944208752027231117503075719413715700247717700361053708091749145476040273685337029024504626488054172307294876073250355934564456053391200538278682138630025713128025464895129923819244500317887265749023267279005583650247728390001713634796405749743609348176688945604676758940672989127814380907297628729158468888644768837007240274308172749439609072743032596338286601242097953850312021948629012576476127198761256956209859587454217669994917603601754531703910911641842471565857452837776761009756417946176172679035123926128852976055296309680364851724424907720354358954662002133602821752863379009400385317538786995203601804661966622091189864027741960158941681515330001210545154214598741860844720864546835485637915735262161316803192505962320287902208032248391776311915519324406685596802755882046360189787386899010732465536684985636221496986436325641205110076055719338936756278349537283417129077308683537543925135823889245390990155035698206133714753464283162038557142906714530441692771065303854964853884986325456106442524288517497526043992115097701057991330342379205842790962876559049018753551854083818234039349517702568286389523124817119363722028354376621115015452472711673682927112497528273971964069590917256384219724997279366149129097732289501143508677135074639970874051654074074404318218527409945221315397095524524580540644611513600767098947876407155014564559402134530277103543376155983083680081410265875265588501229367797613165093265492777937565689460329067315946340686719723311430627959160826121552916417137103647663511820091381517518657614539529876338927814284870060565617912767106768743273599575979380914151577411496101020603927055385912397883999846158201606542541295908980150643381097919096302025608823959248160663809498309655539539745608162714968197196637736705939020400609767925345563829080194368783298293451690267268867035395261560017006382924921506424456922032143096844744654188679465760457486646625268498791313713516109678676986719635721193909719345409078475497797849885694904726081824717533784032108300621454656955185571096838017766355504043759640248707954907885624190209521528254846945351329074178717298134929311022690109045742091743967585627977607206983069316016878735733016978912614160203449627859224649968656561588529660700907214497167514642680682873919468180074163612638045899543216797820634593212918550277815666422877341553576221611038403753755675532987910182293899491062826226960073160185302730711570731885372219473983315543115578133745095737712079269741852440981758468633591625163221414435282274754906575571880289436760910490174939970621328386611936135566660580004408901556602463606999392754399092626830743052279950892569281717111067361065866587481735082613633573890163093116174352079499966469951503274210147475539761785513693780598943469004523598742092016648002287369094894136061943473607619070109039074085393144704460075729541891542069449032505898608838839587914182015333653315092508302119053169139900404289860568259617238134762906615642925422863743605201268891940697790825940662993668686563732466568424217397164728051442539583975735012954850744050002222257932168598466993429622181326795087773849707954396297869625622856979810348586261454605644968178217562931624916563363458786020383025227717582762068605237615933316161092090760094277073723828055916226661241364164714597945455186070493765821154874776428404380368041149939779155421815782438639474645912772599871804379409222051753343819349113953537775598897283631417253437040991073950972749151106023820099070110167148786182633889050729624268502264734261602836875589541401973770559528036982791252252632494078790936003790422963201993848247945618213098976277678919945590100231169879422706609057203651219113025788639803133701088763819395814270811173777956294021891931678509085253311880113859907701402714312618798820138233067859585564578558108430287725572549918566173821577884644235890587668086067217229027763884591040903192283417908134243922079421123768718684811466858112181596830588968340794144011243675527820523366419286249358841145144912600747600593636629842438489632132867070656786583711824013497943352893485060332424067949199935836537006413620743059185460231733186429770299271624624485243505973324327354811561813012610607125680197868048269399805416116137438495241833270627377455661893493292006788495683868220206504563755710682688132906641031827382358817574296159103637703322421890462589295265678994348618867877541789598747408750007611864322488534768029475987878843625904681331890155369892029352599758646936501887284604305303953218085084717888569267454192401092559724807611051242033615906940823900565202375932679463108453686815181561806455749763136676028539838034229766182456217891065598785130777202705110934797923949579731446824226219674971692351093225136605422029900017215312524137398759671744935954652970680921608992292726229726873933979132914343840928601143319786297012300939235669740275839829336701122084325416064270685813718581046183708690386233783811081591486927098118502979850516020732482276897288346825911110711902276327125887539786614731542642898301611009392528213169058238057463337809828930610501254018609642647861103250820604875821643159592953125889871868747059544317195948010186845887887757560336422427201896122146097219883420480097876294624930650740563366407324993006667705150254261799472198500581302896224540625876424846508598305898387630498066012765031115970383117605128300025875647249125430119810789747517654919949934297608941923976880222241443541146101742569435624537148909732557590518039303669345347873168099084856301113802603489522866648278823190845813529187065761330395565471297108727328624528061505598392012242520120847645069873984279784539924436743180750760008036039711556239685998166716574701494647343313031832389022132701845710088454528198631746373686405767802553560600572061543848006505091826466331457865775640771887116439578222168486932457379674594508798023391328543672188087183923342365423194073526996277268788392408110168886098140546819571465280120201414907199590131351201040115984330298964326038450216007203242301521699200476382058727662533809345494338269165353197194457760579333191609436144434503247837029734002932235094390502668036567335216853008794000876403956286502044244439161471192561596236071582698005590492991594202264034569727053415458473857692863491978379160963744448574212846598396866752597376320429776750848890642247079646575837235253982693269615790528594598134998244321519679285754696159617738720760303658964986262324560231613673180035292546626438510304603288136120080847936680732793318953998452672967957322838606142412878889289127924735868655086372145640694129898939673458070623882940648270182717017315952441485073045250440969559721343892852317306214840014025784267020595624470088440012824430975812126315674571433800724150670490402599557649937327735772224321972891292985450904998362291278247105392105788865221105970516821120363267071331132226683840138785603254007426199558376483434280364212213543699207143006993089806718367895428555598025829438413420052085667151306414001000017407335459578706611254303217701581003448331957284346783926423051331144273515144763802766754508005547633070374716951356836450209041220135892562454062744741215997174572260668218893237109838166050048578911304270436492763576830139450658988670373277108847478402053254386867192703510775396275242698327204178625954595913677947039474051577067095019904706668700620936199448370706081718237474886838203822586248615674686831027723804292841217477006469230558333357305448553998525568109865289419911207681685181126101992357150185138939116657156051107348227391032142656039353360555642140459451647866821003910382726861590614018611292571838991702935352668149562462165871724272499866491559411484846197642536250926208800697593213192906183962985184851969158746446794580762672703220081581104146404241017950943749216806476023809619107116986189740403215481722637256779421645150408247961094035194782873798937242503843158883868439988802498775595704606007079103250563321114453395175954073476797270310713376122191434546558313595776642684034028612915688502387304637768010507704743105428598213153845669314813920797649230337892712449720842823763327486923030824851518001083920375823995908485749939576075123338119528886713845921735997683950907395441980378305122533235975636064002205996391421050136593035191609409095767185606772479927476137059091187952705321067146910143748951973842560351266649377572123837967808755096689127295669070047540728786818175282078973425316679357878549641192982850597752739506800938814230640621983444090744087638646428852043622401890592200162129053801949339917667988810678630368657498347202377768704421378120986898862789077810014328640282729341499736955233230759822720448742594192474467374082475696890549169620251511395528469020395003519669284714162536396223487906227123819423142091207731198353576451014289416943979481896660212105913643340290585410324781696632551765479234505115847810506308186222153667531577588634065857945945318069475619444243845408223089670666389577195491133153365818259873677495591943067149662165816569859572823706188958206003392392471689426988472350233478328196604050086642890113561665142119324316622336238376690964324474433227077476034007553588796687605366697833577330474119381596495901411870204375870317575536502723312776617712150172499163443243705963637655516035198438997289461040330929819785176499746396589736454997134652137023791905177462381076753863123732555287065686076069791650214707678819470081731564081786749698243078322743286754788998117855283536154760050213728329039690262544248510822832191715092483583749329654335950927504165879413461477291506597711078503591633271577233453215667643513087607278179691418223787543579553547151821580283854845206012443722062220810278886025492569066305081014175016296226462304037978008000189883165242096196239599494321086457727756991419782447507658673634430856959426391474967492046027439493618211857603894227769566002799778137934021154928440663991160806170642307427542477934415101939371100442317847420535082602736887657229696979393259658291343558826189171324116471506928346086187435935030202005317108232588569192240072069313667128648923071073293815991638883345680289175681365134693780908080342138379090672972741812855211555664852984796231105968469611938759940370895952952523951451695884696431591611233876861899734520384986235659012819341113556555018643594628498614110980577321620638587103316815346796717999157939870518895474400596424308319605950154417416129105501793753595344368948259918517361366719578001195804017049011464310517911550497153274314536599671081428958588597144706730867668633430474979564783298797302700050933831006654570621854079155449329475040578351949846885188775857128504174612032469538398300604187930612581924655362717965056040828255544893617003503965653041862950024008421656578096728316282070207641311624452280143669132009603609494396473184604353012529593950815254697004852749784226490342152189843061327615547482209836738345176184305028214450539150547755428534793359791650735197826471198758654417033338333515994559865730487707044715030223204643028992956563627681319077858520290630746067500191211999091911833239991774751785840394416124235266888929050556991454758244849026792121752327223747935900778217360994072663427353783624764673178791584734777421282074793948461276256741128862086049183061501401635965245621927399099748331381812906964107392167933967642039012219618939188958100210021956224938997304851728714145682032550513767777195752924303695636245722494811511649007602248833205884228764345126921825330917835114598424919802594302783864720076496268677578478958414833270046290739236085815227051473776929243128818597115238510571685374815597978743921152013099056760289651705824015751332699773124982581076998422009677660012085527057020539481572532312403510883104492235445860706461828445562477142343434545372635669601987024950379792479599413350282753427889145233496478898462057796014505831469668838476362201962415692010249723631311401282586604971173361860479886748848837076858305840066374360062507985779963812120207441989963111133687009417157343560452083707029270705041782725896228173453726695912640003523097393706340353036059445918645136365813056369069782535747466277042745097310597004006280002462825275458740637965225809052516039744861620706505567319456281560453800536423057661516482232290110485818068328718950039784201378535691685246533588627977051712921508875060672449703024117086177413031402956199784611585566416140007537296246430710610468085985223333295003016109920106885695086073075297453560730294911326890280490054161188692552880597634682458632278836997004147570921878810310157558299571324730626544171543092089265982592400449656477661475871918349681404328758925088210262004240594570161342306829461905312802597781942816318461368074612975554311385804091273698499466863442069611544602318542655933946714453314425834802947115275329708338538291746246433792043426666541192474116250397527867787169497299631112407443744434831574246581206186751631818405664357601109336881597256709787185901893286389209570683799037938358605713304398768270925090478317586048319214333541430704277495506718411500296309316985411471668647063982345186593499966574264904884879669185854857218385132844918498388751368236338918207692262707075889675428691978501595697685670761996392300046058229708215058333319526622187216664828984251009186774320184553290402282287735973574766746092860501592507911204047229949225317114938332223384719551442142136653979876350706368815976049258314784213037085152512433653081422899860352092624109879564932385958191877255567374028615509807752057736097149179970958735803637317561539697555856173431578223971817308562829178214061942053759873875448273139220947007016581103420743129160258863565888906712010737942499755927453033561029765027825489388522359638112527051751436541008332953601372254528085851470155641891831659978900583944435363414833120480525502897059337830526035950925956136779589438941998377206412853225365158212496096464493607303767548387229105129891125414525174344817083732003284797808663889145777984692502546156106099051412527067187204148568222538361735315936073463972191527841540543999266730666188704484203971197566336368878206104148858628593842934609661437260487348477754696891514762254795877900546299009206150680495040198397055835566416903132052461543368273750990476992300071785573194095383128586705731772703965409095621553269537935781397255364676634273543272143106725323359489307840952662216659566151826431251222879847991817957078281005622311837022222401043718155016653629333937500964817956065625685231028714722474703981208121943731367559634183994375384553559210799482382204880930067789242967554505448078335458770473473742953164009871946866504035009903661672908519191222713182864522897162118121184283811041208549137372096319929796604279349670543386340348962492908174080741141359363980284199140592172792930503120294152038851254629805144396821214744649479752095385723266253408991625422969876320075126572717687974476879193391915158083369033778534733619667404777411663183437007375816165898792885514732745708598175954134333392072376970949566196113212284926160132242025206481977329069116821719036204768833419155907184627473813871375869430378856478764773122313150864137361381481971088580669097182126162825235819997469164303011004022686495217066887005613903295071991810323923072122971272565828574989418100365267897500292280179490494148514947105492360579207513201693790447427996202838744372443146727461445043879636695428276063217457886689675966824854460673129966547747767767734602128416682826691759181091253259001887324850329717394488688463923152726230802953541117018978530127860586903359539455169678510536018282752841257119534546757226484399004301695026183523148870234676231146773819289233184559816339109263362741801347545190162650325316770553883234624864636622107347879692127603776659446256398645198981527298991715863697688373230546199822528262286849438324417051945828268860258329836261482210771754296313196095584220653932521387844598068149430972376785107503818559160577447763926589015244930751908378524731218469426223411505620378857207171902880483782503362907376871370576237103292832805008722183250762302769400917508384367273793283045584229624174939130586971184516081977019097597290006782321358090205820763447256774902757913601655088275935292508915010466720385411055277859428463327729351479128531338106721766852012895403640032915878894485267630542104445487140183721681737545420178672998878768158233731042567414490946343976478281512093381606159440727124623955150106860145833128264443470909922673565734066375799231123451101124780331284400350062602167264390626985534428883004757958739163251797449832331584808279360235335586002972274693511275179711975459146690811110478273446544945545027987523510889404923067846791157586081044867082496237644039345901715383276041820090085855517130032934679364832433254070871170663672957845305792673413702411408703631082102185810359465049517344155595326958161525671450274349188867146352896001794257892101934057858723788848368616819170600432041756083422454083981211325467449295844386192567063167333879546899088271401815952723593604888595431471470327319478499524287326849895805744180389127587259896673353795058763041353066171048739843039974524035180243783786448089035965319152112604907746617863689308762017197504270376908684450793303339680986357013392635063723367715462710135552713300548886697114981040926065984059903864000794635635499606960249879023210171361257868464847837428469831749262272672724763029337902506022284386304313691578044402869634437656041916065280136831705828700491079734328985511929639768009025285537706561163931963231384684777609730778494616827420394782176305921044673904764787243802687546894527986520447857712194585987977061950735571433633504867258277417673679447971918436571248238784792130703903878605477202374578789339269852016304728025938852922324873489103140122947381718539314389311004832983400678229449836219857763848815638931038443630050039826611025576441812429921567433908682484508099214758151825765580833988063380069272224285738918930353681606225930142147607766282277762062392583195743034272319130317364835285406180253379171290764438345232304059125040804742792797809490180302849283280397402597789844214198842770977086182040687423482314456716117488507664527172415341469197955075596115518024786752812517808592982330971568680993886379728847441921446166326769544906691299764965463339178698834663220887571133419114018751372954061901081078321594597178884376812916073001118065233467565423179919698005288916494518908373218986877230402576184274679729412218495968778039875010159428766684149078138503696922881996590138028477085779516105266492845178218636523970054907919884564023217672068090880045673139805592353692712555498413894237220581223993476310716102131722396765481104711256319891663761887513348720330204190862387835646580130673278981493038054962231011691868279747218482047779448388249966651849595898826477815425915094914887753858298857980128368781781952147876097471921433524413468541919251235280443136267535644918000847990310413161556456122284899194904557826261467065834139464269540218965366204267474336356131086655673059610746684419224095342895912359092844313682117140255214171207832046505894815652333532031086242621050194156837732834166736153184077055608359056719594222002159007181253603630150715788454245039711226786779397225067222722410587948099559926565599835380898090534693432777968971252133632608651061446806575370757079735148102072407764668184390616326512917910795588462580302506753102981594083184544044014353738214853225885403214654347503002119684530334735514795030013161162070154149795673467573752796471149026441668714922375854585864591172437789907368123449747128967044079829140076302996991297635712025738139796907753508253160177849886033318621400658258446394688042805832679820143911727851445881201762588807961192227790198116931066632820621451506500788521126791338679013510533312807908705129499621680223454553014268517682594782474760998926849080981400507753212824254756044912805514566343461415885421381269233479488004000533791458374234938110107924449416359559557619603339926357967550008785837772285713381885221855063641092849280760736733129249682001028169726806783614923196684838088981627646843247300142936709083847066431001009401382017679876478566011411626738068253484491113747055710351288444082689187327686487287299524724530637982782959002418773298357123656175841096553316900767487060838618094815552747918885701758921596046684436190140339777449208024177828634173046670239544625999192522661817605913344494521109689025307178316089446387868254294040574030035486395939903815070233734467741637528890060515134976213728093717626291717293262777265723543039336306286980820425248982494414610437285755652520587447241306042707749655728611725929346076973231482001723761514122606768092247106348724747916389374014604170125617366255719935296305335754898324947330015357552827042610066654634278628790272089574110721329895028690799320260763060327456623839651596348134528019567062087400779533983789744116004851889088253143265739880346700212856921713573075722062488958821931184290412553373445491520192566721838557573939045734066309993189650273988891852193060975751038581090222609935451021095972830430939827238741660276052143616305754479174008416053528479413091163497909920587771205936252872297743100962969739802984311584297506392280499151648209150563120251499774764647764136581079393646617050761054310766738656680676594780061599611199783972908711446933182412566007053833645278717414453075413844200274767249452975440855970342862893566803196072909203757689829878159288030020656571539493756309522365512188210185193627296624875660023635314011705835689774375844085172927437272393084252515787108005136143888198534771796813802898232532127066125600763320975015341810450426506735740342261160478887972373102745930540457570547868340943851157547050294236644967662467840783971316535894080675081631453537591206068089214908731504983319554846617689196720789682857564850197582820858816010899719679663808383286716700064643675657002805953751883795736409224326542352348132185632134101260617170482805772804440125694017729725239079933722973902813054755608423175466758645655120041530599861777148268906613821330592399349824649572213482881972636168157536712435040122568035861991119618965383969508798397665863964244962231661127808656181620818112210705966322411790206700435648858465039277810863479308108132808069193286519902769732477179640308489551448077960061541678175112482995964377859057402579146633287549319709507629981613287577660028676363300750761320623964007315131325888970507225937602823593750264402660676083718981670097681152226369322852188706512462503321967782242678663375150015760313665428097548404008823736093728540363846426777484339994796211912423477825982334031646918531367149835652279072539802163939655955059971695986049678015930497474912514502005325672960739507448731462816585954577577455937284430738112031591972335807769246318246247494125523764312425337095778755220281623836404061871288449245039626117375807324648480959850460936873349332741717253240389690637965729029988630139335199757526419536611074890385448298780989565088890026025379993266518753787465592899345857207941020474507124644056936051767342166337645072874022779845414003072810833560295419023366285641574108200037222075909370049598178879502872113428156391677387334528514385094420574427283538275587243362240467968588227743355958010795489739377632669973562831001987177660588396636855978288841500137281014157625457605864087559549640457515960728465938438627603528892281647574770168658809424013665028512297344709389611470730509115353539617998799229061620327875031927146484647887674918296208196145065339664954732595715592991407660634321804763959219658627703433062599283669503012026435182518570339362998914094876114230328605218135323518247361174099164119751532250670532538609087447788021244522967963722109427056431860493393994089417759038079042358576011367013098500372077509301408698956681594436992769165751439912946057898314779425388178453025243755116353248167503795452661123849737175267754098372378957971779365300115265481112012950170192733771594438745838673977838108800591324492514314116647046155243762133516870199237496347627861894246349037269766544796375829167405984838319929435965686349466578328631346555328363207208312923726633537462958310263718895610308890629020478968077332531962966516617551539394835003041199752473271298895688208965574141003372892562228444271376625793457892384124519688544679961570934946680627228797962855182233437907404604382373625543878004314074733882283780090211672366426783251715871389929674777722501598175083397822810470246801654392528670278362931047724044881821570381387108858577203899121052979296773339714920033053374090559391090221300955072836351617425280753375186203818778564277415163584757114483625137833016831816294196417857332530963393983022776600767007140710565538748634061814075640314637439855652806802430635660333118359216754412595853834879160444308899541554500396138632058798127398442949412328094465638320376963960903957749195326906486759580737790846951153527576180400708568604446654828897959459723574904755521095009757098372736420592424072006509798708014128045801742427637405892177263301930059681383075188393118142012794614705708976518611842316970492106420419245633298847060668451464364053083150737723890287325694948003654042443160278740558503322456769204301888114411611099423218608791911347313889800242834288159136617187701771340962134157158952388579314197990376614517239099633700414894147512239917571109638285992640260358982609452954118418273113141373193839316920623698653284384168861376471966457626230016705704107751220122904852936716723688903807629385806596906489905508286426761912045036378526925975581223826254957530690626388877707642168352795778763359231931296234351677924450530889330477158460654745404749699692543705945193988873857089553519212076226856921007327578114966693824990275812628351644536865175859936619837742577954606707258574392171138164054052871155133696761812312628688859144432012604882779633382103037455852361561809204834082603416539463123366285535212523935426471730655839739728007889358198986302652054309123275872456036982314913249680315017823314545804550952968165071891214348832809801394204415285373853514588557317198813490594706994083334300281998814587468070953306392772656045264993407184305725268652610742710777097184840924907865347136887727231532497288982645033165511246460143991436897620985321328490239867905364546210349014800592059608139672784115825048093674829198330074044270413597909420132905473482174389778984570260850621001465240759655159260746795105017679299844532461717278422673660219052802405997742185579361500384039019777500468873671375845981520946010176559394980499617139402232563962895029539845219907414620621591609251187603390714768905755350465877219175335054168309442788035779987953232578525479580861650402703583085929755188806754641267743464411692512429171613766540786235251998852090226263415730506517433602933044738125252623269587051258824566177492169025044082307950931010754376051150805219333277452813393773443552335154059238538216057427843492360168079966964435556743413086342377053312332606321612329119821208062877462024994253583988955566298114002855159610282968357835634558010535066038461671054254370525617608908682413045079493581880919076589282578305874165189446481992414101859502906242083001663665350202847652718772890006101303767641859911679555227808207304310785142103266956157751971007716887812939766757151029366797964835915805325730735020308816060972985088484323924859429782538039642419166371359492669519059681530615866296241621307643107752704336971717715280262325244342674634001620388532433538188811844633707190649750826530287851376308554459168366175015535938592029411931317992502141935451266633835412953624175697102472355709197288022719760963004668024317762125077646003630096979678244294671122573068536367342783209715935053376815298038208643181511370751449322849835362169329305408975586209520841989355462836104815977455475736702097722199980307957673080152932417845293138220118497379339174112901982748790788846649986728621109936082501883815159522299290150612563160988532240103950481031401969137713366067072384159740726232416851972260735659826485775493339120710767496997044431673724334951961420781647972236007365645996786823295987344920234529686456498961326072497557714791649484435603879426362864255024040323587485252517244889808225451177886078816461793428621538885829434380564269432060603270521979578794863940276897040514287204121938505517277972453473473547585522937648579792366288790168149827820741231065853130543398584782246250787171359454481896301419564577939023283378698593274399009805379912060388764675336933458100158336558914150618450043487252557885082076295318578546998216359431471262646087057202915352701721193030795285757770865841409842495437056405801133404526837181433900835155440889279914266461136776097688520782724643818729526227355715838276093737172524586940591221473210234804881563525553098618297210116275833339979173364194397784088048039338093326653423695320561319198673747100601549423392466470905597576050052754304848894309683104122505393366101717857012127030699529870340475868555616878996719320617171959740860780257436145832471048057531866279733057372950742931071314157030090681788784471563007890060124537997428260275130518948196516849673261993931179600922116068609011884642544469646218228073208024494612032876928039614575959072112836435876187609466992733047039675659376909745261426890968616485974412074008846324019483756716861848842902792622370347226762138221556165453449635262607321918750677929081705097421660860490322316642352855302608852948635490050649791437380773950661252641758193154164707760902154904091057584672939284383660510679400479149450171558054588678195990053105520861003796260159091220706879642411632884290540128090552654587017076519792034339268294386369192320291609026072263560290786689126838207246711573524262943242297873478987605922747522963202154597038151621638559237090044924770142352952828713780054268456199796122100756091685588981554736770695281852613494380932378595190150016533184289090233351113933082401118448794715285455326136826179084024319200155344138294338561886132467461670153319245715916973026408669367696521907325543318494997621444609667035160000684790927099909927529339476777880617002553937171182868696151464678842648902528421922051993771160436185157282597295279643815007465472275228520474491347541119742648948942250359928314008471820439239591097523457998959902937741129506643227321209831889881082426908898948242812394180898819685284035983408634052277433594581946289040045300397959915054320475106569903391570733634163042137716918311867021869426196717381292918580268821457475818112801728394718129583315937064443436671649526815379158802434639557097791306824932589577810337242669491593081192751969914451356766510925607634883548640758832979563192707042596725226474966895600416838094924469326218248581292690716351297232562477247352708930353360484296005108816106824445313422844005996860943084176937695726466802192487694143123570376620197404248993301442948164059676436641540885469807729106605791109673335835771296694646877947009521456325775089512975935590327496921002836432821692112560752991584548457220893290358158467056657011775248728713706440418587594755727120548737967420028707270045892333943858402358857306915048826429278808434679279402310411306795334421840149067660065559719173997433770965613135377878527396518992867389387353407428557579654525289865552164958274182341080687272567668231741718944008093147655262224805302748339598133652803524623424377692774378296987685327876324459461051277691118692988013536726035382572859048432366565079225546896460760685789074565075186683495267454143223317892136876569398314044430980310149753592787815461380645318524473643262713974214571201457666812754876425228769534852109135790078124427816737612192877202822532886403705609620309952926614956816622212103693157036147198951113606710307355497960277935525273092503313992325130680778175738457927060979171802660437533700057977632146954759608253806905202854721779956193901211685446931874832427431246521093543869705060095045851939043098867294562141783790494685465130736947007216340972566925862870726770466587392078994907820832886487574764714097215761386486187537402678468586896104293726061671631663415372122194597789366136232034875781054122554457274902142561382828781779049972164067809821708028799275735875374379827525766874156805028072258081503261755619374649526707332146244988588204710165241891596540408770899171145454632999368664527645392774913385298726897056344771323553199939915933316114620741800034676153309808850284020930073094085702664978250107938727600483290115175115620861058746729123113565421055383876816541370887526416250767134081485474332550338300515566782140087210005793683623470839908554678530244412590653023607727137379591220246536203434521034248943137562729023136523145032619163257005965880495587695816095971675609581264806160992392390639019963871664797972440210803240289423862909080933174443329389381288137745062234336745548083509328964337448626518091951818379427085005643766240639146210318774736224814518657138995545939940375549221905610079731049073765080153019702273764334185533011746806875268568921569648648038162154876815824015918519548590375953263059882623809832453490880516031519805202289690373997027091677697518903422556570579090521573433996437125359440607385625102082238946334804358898146581302052709173929673246857949424719574757957643454502758016091273158169543336966281639748286580100885757002248677027331575105605171068101111503203991154370368060960242961288808571267342093690065190313030447592812496852079923974427305571699727900690589003869260364738766731479570776421163337808400555756272755039408931888979305695046957107796788086789397650056954438700581461033887630562689389312435782889817964448957519186039365317508997465291190865695945325849245750596284224469227856949706220868034444380929602472590836822058393960594575293537781695666162641303235994146530935075380628368961964521901331445333437156078128610819851993630253149943915173237864204343138079629533994910387294442366741097770902763902532221745422840382353497934559400537558316230680322158625230123039170621789104011218033488013028932874661608307430916824781241446484002836039897847280140459759878439441060916115996757599941698440125529303039414709458807640196620178370824059955785678613279025699071794231764659935932561858765375767335440175876919189559772376053871846977475918303172562720999575759679293319010329183657214325387459068089411646412533829444555969350375978654529506864294977333294666576704663777062876475646183402123408151888170289067882005702703120545533943414151886598945560994537231524440207204934659721548310310762357153321801280284730888335470146251865183315850483133355900545062770279371918175129046988129305717681876167291941080589513894694106729277108523198674600901011045028738067543292970995286879968275357182830762624128863979109647430655691943466353959146705738370354995798832257178155079249174771202718534539106363143300213963146300869142055359770142362912456708937212287859089695356481398226794503501487926572967629789562108086129765745194411772044931765288967704938468702068070044348873812746068169173172960496077343411285312661963392007294526310924611693136589047265518619796991036008935759104586335683983523270259608756039324019620088822664029226200072370322658923212124171963733329185688606013289989147097030337703987299414670731695268751254629732138106833426120819248833439489066242351083838878983343038434735710010733847087703563366362901305425398873726736364694660749965452396687472883843060573143416105223000707541623469384031473874378513583895463871163333328417027493020814797561406591711335108739962834269300276466200524850286692206077348885649029090933034144303757250381688609630970627236625135165776052509263651999288017179071379089697146183339186293775842894323018805189575585991283296908264844017074523136802352349532543048494961123658710347521612643020580546882073785135094894253651710241783098672700370426895032610505264996583619037173991152697622762576016434236698034845967141849739126195295834298498997620566313599921300077049988258870811156480868931227870509186740690902425713792148617683179510252003310626367511274868975400229882379290111373880472511123617100639308063151951383202185092398121858938324311648887732455082074741756707305574158039248958912668489435317561871901966031528784523352565826497627959178865416552695420681121538231144763515306969596091733901600983472091289152628714786631871315554139252068359032146711313918682005651876139219108420258572236258613894446028947226402680362836317950646705204158941104726342671558018854816377334354363043665262105778800260366026679601184085481099000108942773489055135620595093352571246659604375830480081997837989305153270411906386714241985952361929765970966320462272969819910383877333686342698720075638856200667491105247470685580156550342759185117285160035820119714553047564560946669452137018104875129916737807946736744944155120182270208602807339149999341570487577501381967446595204758626110526134968407259932022398344900988390327936651259918946826752510979037952663853807171551082930756960429679295792936060992029061925196349015053708334627905638810553130148273108891144671389947351696647069733403990924532833734104059722575969677952021531627525964425532807488529459863508380299437479831442029269975126545386278629362842871726173336055860721592700950850647286419243963631290079764368044496964339655089499420853436521721162602537586910917433565340370959670219514519811068695541558155900053289589005836665916309220531578260930051902158168769043635362240149156279298651907475101092245439428030385771783734861412286559309329440354618096850595733389757061669748296176745142031512011696769035053252081031533509218965140867437817675916537499185926106568012554342400581601266033480528170672419874807734974366602574748590697644261937540624022244363207673603745130778305183807338775354451171419315296007080093484624860717992570177427698071330793852816803514197009277487656743356843495155191666798372567651487616202859532415273665858562088618241725109643657273780888279732949556534917818987214787384961675776523712014168350726878564231693253354017508260463180924524208754723385699325875247615802733377548836430051507018677039752591695632182377086541717093084167025233146016823523687526404918199835306830056516050227477643576551272767482035779937493646545054649645796450104889405128908977156978214353661352257265992683780239103543269690161426867874644371817059869063687811084320986605302347481450937873924524191214340782075987338786467774817698958477274822983720881634227667371943451546601786000359856822601865118273125204816881911749601961267706694685274201581321954338428252258575646267367644972907590378971310968009859418432605182715350669982306227580796947039166461606767951952304646429827529880930046154833459773293159253449072002784509766344111987825260868994927478341540978451702339512381791496365047468401805166406466589820835698741993117018318964793095568990222223472675974678368499560485313763306967678804797289497393502437737568805793578312796455162365499533194930447932958869040227610899768769944032212576282583010839940830778309120475490167993829945168647513105381823065711925421904573873718277652657331599873979583754112461551499258821580570707152742608056811109181594075326470894844369916716455856261599820310260830509501170550529169722529232895909693033592076092995826482924067255142390425953436878583970459461493255727604215083756418344599204155471233027230018396512660590668541926766371055520837521230938943679280629651906054519313287961854961649593329663899386605120136995307204319857828866952927088131536025164675963025371988766026605576942877372411966019640759360445974477571353194754683848716680276165782936557881563210786570831007210119174901966791756740011331287460254868875191062759039313941966891938022628341403544877825027101764649653110398866825978988644930243718571909823099742958769782693941097995197361142726880251613281036905486892297508994425098176551691507024992383969414579939516904853415388542285232563378440100630716890840357412779728639165888904219587978568769209561752286461720639324056606320245786085215916059611357742604739069881352350487673514602453460274577831435625610916098789975433735402083762817003389630945708377992914610732854418316345071222276634416664833841436623732879172690844579921114925987817912694828436152827969849063990832112379871970671257800780873161074805742672595375227778358376434951436596907348274852417296179293988790652315315014299559659297203583871218644258467019773599603351248839353475472991436874446816642519770613504763022792571341682008823974060991012200201215465732269706227911308563422065007241027575666287608068646813973397486778037406672149625413468794419744141797501140951347216876973364113940292866513999015452541912778866891494294801356419622142986332001668263901559744781874611291001147992609263668689528381686594105631441948530924736110664944036811141116447329662348318935273267802434240146461941223136770841229154188679328009514193049038935643135815967674151066979141971294790558750261946372591785948764488283302043836280683106715963015973001732100868335511285725435363512157870676675818351079622591743093207155484537683519874640015336750799652618859432034837359428133317578853095146426456174578890698514435703570761663179504421714358484679713274412211941998978695208310399986926161383801675256602391385500265601061571309042541575841203129734448832400826995243198877685078887136188487331078149167284538933978552701436103336554842746348973945047777984756754642493351671135799599415190925055919591214189038295916029384173892047538358150891741557846636622001272326625212455460427686277819982005141902057330727488085429046548656571001644262552917806438894772238628840018076857730863603603285971954083157006387384881236501814344758940678143047012547704486703264863819011965470041875956331738933780181772133905081715842644591116273683383944136801533664056423438425782536357693323378665558227369522782712062117356182127686110888030924435246539343884619284939644335334214928886775316545323713017152417794785555099614083193442680801712727335485716246937614594247791456556463688271301133532550440923806771151167630345391330435236843815328022751463664621378500850455291437888558897104234661975513456959062778228675648635519271396689747544535076651368058809543682860619165879944152829347218319053540807890525888021614762390485771696373921192515927634025827414171233301820426678903764895525718908767068371586015724187111479494020253878946899082548632867375954073401645257601039976508237667566832938825043952570762808881006870464840635360261876847629389643016679320096559196693052502039560276902122826599959379150608569620779817848422085189913817678558368429869943056815216860582846099054307674848984871196347092355303232774452572725836242682768161411672780008612986192643307561384224212306093917938261230879299135287551124369841573991886232219214734414020999376187567729843533769340113682027371208149820086142271105186730935217300958093482661959887327350795655174109762747431166919213959251961954939433572536155721685589474363142459305675920450668840912470819331880805441211518082414855725365691239957294108502624342764431664525267597482650750999517102577609186590000908351742495022458081372774959372855267614391938534271862348145813470004133964212082357312393276468602253070426140038096095007957431859227142601920364984673736976203245072813530177055201965788387589483370994598689171232112056897707779491721939392048300152642705959784194855134114905172127006230892185644962616967824707728587528313148389339667535119953638948995847442622386272467071989474024258524914763529565668390257721198164760371795403691459413421945769817751130446989178321205759302765327488467823563136755651267455161514388082061056394041603037466752798965474848789045279688447675448443008332536087545686977748257154483897076017287847342154729745478223393016130245923636353081212714308510790150570343105644795848492819530387930634559882358622922674168186702019902194447578944759304510346009222725933647340894382392006635119742123923154246595698118620866266867769938568572468970740138889079475726470879207884915543814667385115895581656842983090642258701624342731861904642486885287532445533954323268915453678075041587299333025823110050130027857284432572855376258186977684184214980763679107841151334580297733064848568683035931797416947669744783351766583698397387719482522139458735236666919948737779813708562426412751058925624562543629513671721520936450299292232628125159114406250732878042884799709266554121712170977910619689961371144800004488098555771031137913526884880742711475596179651843908028434857435586498925220176919664762425372115276487161359290651410978581650761421183240769519637048882817931230487799337015784789945974847654965522835596187495632395453316790415589685748525393930256889682851616109994451426382136793102633418550338171277692461418536148567448076023640115690954703995469463316744681089986273524629091712259760731549894290732395612609409018475960859751768309865178841434939210823456267812248979834922371021363903315034966581747230040551516172942129697418156775901694959125494736837654004516929555862758337213033467268861465708978775901902352526123105336749315520637193129392146231673099527378661205240759936693662227833559357982193136675581160657485459739595203888952902382961125600696893020885929742802118619931780677002116354448361203974221797035253753497345362780049157908050480153902125517251650648064934999035112894294697415439807778742660564044192406505739158170000375032494887381591088176362393996964215360169994804248212514485738631385829624483195576734466037961890549093798393377550630295502099610191947936696413904974178277918791402140298757379782968989791029209938966925194766461491374330009926067765167097295909780276772457558313674133500914582308410416124521198300612439551569236856646786111239243354699365271377235147927235310224753266976624588228339294352424095129656188180994900910510011645852520075481107084758480421718849927912625530078165308881940622103839580860079580318604862624758288186906569795697074310060505612354145583221045515096303072082644853769901745970276633366171300449976894892548218015391040653877632542287357104269009541071215190553616588877365534100112050909969160837798352089660047383522274924504198212127656492986345168536154410070628787003413945901948299397983975329025009896857714230847104062898274391255846925682802743015502769123193256869253390089849918137199186336298275348600214908836300458367587840131831000263427039987184748523575030783045093644685473192789616031043057980590405412912448600061590898286811288448312305771003571457407004167472413747756611604420821554189013977791213924963012550232098842986054947276808101449097863018924545491434969614082151054419319521208531358149589480688775403443612243466943898729747970834210513477282522176148360716976878767058717112487553712857031708095145151881159917212708669159141921707756787603657535314898425129516914691029844954505040106430461032864155442712777444766974213333632246474722143696926216809182048567574646215780754406457377019634414027849535201573531500172489304068362397439368647696649493389723746658536062055968539180566373556976916082711219858391311211655311065823547330710080858316103091055099713713930811658380267967330409381421138817802639595859074269608001888084515080784006633952026268377788379929141289907859780055039798928967279605714432008232781520068983353574987953547307706639869438680696911579720871402908166766434500580482881841820124044156814625913411036977015498701554441940172403008921279099454430216981813860431603185594984981855456955403712459937322894474434388623231553059504819355182295320629632041317350544408843430451295186413575994278329936097663568355270596396020065950369424981575974996657310772340159008894452633018941359767741313300738905055468283305398605029658530019616731819181508339478517565345920512260061523978794457868934636575101576993778930270479329108014474293049503126882926664127218322771626918134242620167048937779931374898098700106718525311458328669405029178704524717257909088345171353432176943113581837315599619347367541532725026491029965799149213088755991642826111174615527683059009110757691769958581415934924010392622581121011169827645950350404647423330220142703177039207703196680710820576155866895923411003906150973565811975137817356932757181670701451069165399945470535415598682101703190046633847556294656280084960351447753767802896091494525144758268361125673078200412273318335868070252938328923611562489933969728850837880238742009282182543025973299554342814449344007964569598691638533945442399142143233244766834009983833736225177139440847259940707213219621042163124855383218821148516697248530923979765276462511302368959660131221853260163785730529675910765679012048343217428224259807166088239907992692485018117992682054434091733472594295870343231148054848453800579111576801757097019619373096408698020157723781815128212674659367007813469654237363069334369793297969360898964306220999611210404964971956441456306466594941805053262276012951543996540913489987273169058661593005581692685427880246599250297002665432259059123605170409545927289755209025146671215348581146084920052660473855602169036780432272033215676944460938924755321946878464338090774036245759999742845780136206661468309802862184969845700950121888541567536679116072269927757739356353290932212163505243840441757071041785386823699509869603798896174633639151706974710913928991579102279123660117450891139473791142260520706001844692256383843777336149190467158855209013366508113966452736088834163839110497876988062294845772394981630524389121997781922378433087367705836518730142917964624047087279665083420578701096597380332183565588264975034128949191952104539628668019396199182462973360928557791595544069740610350496269968553793540547767380895781199402997362486998949533889808280110514012187843284837942287285182723912981386666421492829617309949639919574779799783765189413656866769754871935480518134660197331247453800507677859094245630883863217322272549560443735560203328181381938690140433563185674183536614681485056649716680734639769790292059649546606331130249240568193233213715992966072663250733341956042052349750936536824926302428430698470983234314600669889931374527391295728990425170070013198358815347373595843807423821140383985727863272449993097181164434378828529348678551955979279703564119514294485137991167850278146548016021212800746530106516278807513169538652954010700031839334279364129791091415634106519933345194777547238783918479885118564187797300369695038929975184390776942497039886634492098648902634116887323341454510988462502045002936712145997669083203888803448809145533235956285539989853654259147388304948586565653473341218124898522261304551572425248012953723791973912904490177219789511800898322863997386202358498722187794417071310159576507241040837123606210326452312211267941763600182508021786542818470451541002715353043067653711280259041410428047725813358661120690117081873327798605366559791469265135821257202364746155626708259996947249941964473270100672384173091942637536872089418469671579856591083169752485460665512443234781091052540386175791206791917161940181736725761319680836648602478519096739616162842806796652739732278108822458883501044697379392938995517625826903809380351945087721495069059992014343785691641195801131362424597013904062245086152214954704530925325824757613640679632506929972021051498181499825962019919623944329109942829526438817815711599273080182755879879086944653492592236951186327038297217090016013176025459540768418564789387434856798181511943086699801510104418003042668696623721650258205285614874971001591670636649787610567620949783710156729846275715232354400446857065709632779274510969329374519931301957844932130217829366255717612269693342661247896874492203946811700407291202230966152558517584254323160047283979223046635578709546292171716748723956169930139235988683568728013148661242388269281477456509493857289202715029756650260497425270903847990110874399777436961154794380743932592796852887605509770788984919471812368102174667710377895578868413077629154580307115928587191930238983372412226753793373476995139764238705743908822084068316805571644688744635028598883160813947257236452761579600561870466853061720329823504857116009234187142576973355386249321881861688614646063279513297148707933587704687853311670815692146761960820139869418129106909013453788681737139476695731754692718005892643576375834422626345791073142650779632906310270077229259546104256557510812038330136622282202766962298537452748703457846612892176541576763735657996904831129137840561596665198979903007743982037683063448477537613276715623897455092353718307074227520660687418338163101438504500981824292988416713143705525035024335882661990622191748263372697851817816609006631892942010256651774833900892185731091340206088260837257450719949677227643819386860897791806419584202072063407513332255794144722491237172260141351039584198506060565988562336280559140948870508804166724240234563459294156379849205738441235630999754996329939728525305498061928087379017470244328021270354996486601704566406178800885357669243647194409856575659433162318824328294300994250715719030249667908593501026890353603756466027164638388519717839831661039653630675856622318201988211592682137518784595890253906199608594531872666391662709547869184176984097756090200714042678686314962003442587706250447882405648795046364701092220395174154588478575073517255920439328177578479793295130476913019610084523572798787416682858490308900339913094752190500283370966353320405000419346401255688356156110847412088206440824377071475015685963584780676415192618740692381606851627582417133054448520224490862635241146294126543654271928473664228083983003414656103633399786533831527096006079080728296674230983714273354277307301706534539135620646253122391651402561576985873845344848938796524672839180750018092384085112538486237274718520060174939245912547575244828713254415677882018225966700200296560484289027224755488223811753375192383668953712540718821806664304377980430595039888748641617630491373137726651773893960512550047418672134758316249107745929455120685652548830109359573167791058439868165565645603256501640682931924555872270511873709780780370216528747417052930504937169742590575694493769995186849984503512428944329375793639804364793095662927452759083682287243212467400672478675319194268218752365247742656356553693562408814054583824391435121949003543852225680093959573476200727935872683042903586033877790919924762949720201620486900453507289642887548322751235772579852276565899540180820268296448585449528063665373434348474058458072645863766616023167721781766477488991946005777244818928935355891453560283399645800369501619002175151278459959546818904686575362466648732979785754973726242319892853519227118804948526350815453002847827596140437579306162855887698566159844129774628018197766229953772130593715757992584919734334625812037554399284992498480877331275584983019170568952039280703455638709548244581907773276191265387174291874112869652124843708128310785685057334671368251514885540078459651922456428648630586589932332383802000389177617888998526327204142872227165358450408547093262404419767150582144535846092511599018656043902642407252603786897341051845460785597173789854791443339796735240289106911296125301665814469403079763105694557489896157330613197270329625274309351425156099290184357972673379306264307571795488962145625122940033092115095242889956397588107807752660816378193825360813763419757605522152585274465524906095835665977981440090377690165511523048452848205340475673497830563073462944412290079744725489662218981835733378526364537371227828780009205843300607754871436984336264050386634642342916857021893969933750125092514076961447103320900777960747299972985643633323028238656927920812075432287808076683884490716176576221194714619336371905294149007506125325463309144484795698552608382877301027544251320374538461079978340568173226633060432110337469018876187865512761285782505469001093518501131144245018442843753982255473463012463944969037655422038837981443903329655141360396463615327429475359910654985326645373535606975118456048098735434469334755563951104929408930611691458369372934216285084108225313936988518104297267834159125081916935720547504786754402603520611041461392413965674839090125252984800805092491771602901811761806660490232046279053046116059795010140660340705033087864456617743429048052185785673852658235256551626895549957467194516886131323585395930878353560710751459341950746570519998402548464417521190817732630113830154076661208248349106910590765678524861656998607017601744688459869253376196780760787076561846005479516246455353007882287471528028257046505527012697804668212194716879735586347383779697247068570582199909199990478671310333495233618377026481928879681600572466650040977888018597858211694066378874022244660313847829251833014479043925564827738070110452851735999775878496895251410219143576384095029147689168524575341562191095777423554141407374189187972445761135140823862036538224190460905721809180285754031374197759574184197987372364096943819561768068107381657945729220468753688500579466215631478685170028111076803853234949968844822696744326680043582584993354413277277565706145272976163401557817547784543751265873399225987483455692149317792681229979818417968644534409699634842286194464481636049262224236488392113899335342100737479432954156646697735443522259182037756755170562987722576879154329345901408529945297286518168218792910839912700303433679398605172305162176463386590144302481216506378858398123535700358978361016281623383402604619110770248810848067458104246497796534080397802897304188655099323717529901565121384771646087732754320293573079889152328660672964832871440260429667658610435677759167214472528187644389955805839871610956550869291548121622916294612274965282067263151163957858051592893767926349534387061757975272520472398843498188058231986440228949623016602006184636262516717833692295872988369306566362935618567404269055789944190451997585061489312251788605758763175730137237728589365837187302804540005593435660786383359047256774862710013857401357539944477615064238141777763593329127160856498501050678946557376775400391551530932235469359511789089801767725378331880987348207156743307118611457890535036734741116074103441707813698138155983051746378387914277630884564201038506780737913249166274212725898501067376897700700811214192469896439470838081958222003743286547940309962762024463316678410184764658157166038286834559795352128891193613272940116985705029988760871852244511837690721680896347355289824169269871424279496823450252177407010686997516700689336807206396038954244009125869677219729012015433700721332975808158822399360425227202470401628701201628356010335921399267776407947364240734274627217996924538282919289695369585598604246771220534332961435632896445436468472961696086692817522662114273090312297928970381270395254990906313140340981491191277665336286473915317711187426783767312777575324796378674886646157251815890083201610879645798013141877179025671667578953055622215248043702942391819438080797506885162089030880571147000492557612407091443745016454485569554569118833590469730636704418613958993204496726828224405676435893909908142389067293999873365191221085031817907988411111389978785377075469335560509960761674200882697608826830772807953192617340778072467467279975175694252778752026145755354225729641868600185553750306617572145530876542952653908873816430304951201588257217962141982242077798588644220937684451774079877139597407821706696434639770469939561315843494676123544617771805400224621110847095463584561054900945238573848322827637397502019131666412375742620454796055096461131536649546702528645074515256339779597497044093234217870292628816631709580066174013096563673200749778886782306600430466714400551034935594490118878974458538400151046068156583101014403267575229167154411937623125969818946390847859581377099769056515575369852449489754157992655892254398280523424581636661895638457107460661069839426227206854475729200634437980442779082567649906460055734631696104016401847812460245124290693991875669259203873472591025241798445788195775992263176439404351159230453449416605385900062255443785068600070807894489525483033255324529725249699298123523340129271811989910101743944815076754395342857748412848484435724852886375482698949127083143576454209438750021935097217976493863434762738374754259524565404130529804996462892425058916167037156964359732342138770359551423774838591216417887231487191127011297796492572960541599200147722114773312844211980734117982048577615048616758652792371474566338004145034795260842558270612807673901001592621073333897968171169915802683162722577626886493144193108571855441384380560178435274394539072992497137964270357685681507161896608459653887299598073898211916826769570489757779093732565592872173021934829139797808901707215075630855322661569657160638116614441635996018310329055101741755186817380980210982725466942929200669630718314806143762613793404466088932535645853286587003610235611072195329166765224360491480548986402663780674303244026559986973029991970118942596062682420549718011308353277017499412347387143700415202623809169141832918916824780273602329240030415266024518890596976817885528723758582950463456826416136286373922768707957234409513204988103134044423560306605152506702462387216122243237697585358550388845655092789752209461110112730291974392962660333303329820934499758824495049620527773942409369959193930203448146287686332828211770779229793957936655613806578148470236272253838721502122290117177616674949762858192966537656649386011423040368821349129686885075148569886192328226990288677567223441711017792205263318022398016887630830279529605514826276895929372759896572179931356027544091940272915182721224577270516835561322114394348093327844060307587931557606001157144140453889876787946480043864290218580133816234370077609772836110859475900096639621734562093350585908959195311765208712526434675558280173113120646172690070605399190627513173177492898652994059903589073163281916798607835331309423530770910501943978075033269817574719426241426230370607571415078227116438453900299789363766308255890901223904477585960269506508172181874495611262706079522128872948000675603835168964112009122915932993877517866975886148711537877538572497286850199940450125723792303702233426824545854135153451813667113057800723348198196579454284822826257809189387703063417814706161400340205877775997509334217879941409029383342371708859227504852676609903024612992261797232160502016922847208613870257116333383883581123411786489005514621764189937177117824147497274597770088552346404961841904420523864716545832923192274738872108416386223053543193248728187489552540829092010054727190147618882632481805795675587976752109301089607301220656200482406688101577209110447423507799412033540126909762249517167286339729883737618866806825505457787719141290151295511165976655497639268659322261096036605690515189777246942623927938446441335219165945403078642087481974552283037923304402543135484834444738304292186743836564738941445617434634381756064370781451408632922458993932356205034243178621435841429056147362360083621026044509639271896823634451541524848091970042443074435478515626972814492081287740412631275822031526546225190646037421098850818969134126782512054938600353993649625121025756276538146409311263803740325062772292839971014658999155078316153219155965172348253175851605917830438269097165422520290471558033338150204627871038420365007057606727007900745506032507320881660919396166444698371469658432992673998442852578343975085154291845540169577556019116834459923257817054126049513375828353119511549387692818283482370099328857564557973377445553825217104485540022165723658036391101839417184805984495493948339011066713043779375313603655568930855359904867517475204999773292281557979927541185128172952356433763827966777053618957761698249849769798333916957394326381135605431221880134337188357164522824470152818658320942478267510157269472899147537470210770279705519650910015449665589406151480660081446510959422948120593075750113389457594987172329719078286923969564819027767174071159178750880626091152677821238538446831512466754699522938607622353816004739188840220240885976371823274044097832342775437445009103107961559385633813919953277895698607269372578155438932241344795245028546328048240732125628829740500023061782148746243766884242917418898287324015030483875858293041643072563020408621792897815241656426058206413297675523917865833148803373483833025502017469764828562553108184395179607808428706045145086217083191442818449076673506219450172311274966277383747902504387968949452764084874469261116145302126360821056536136536377944771304513367079235388875682113678998671251193128222444410058396003385409296834334243670640649726015124444403716145587560621054758336498763836873286878586964257007143923436708457383167797918740658798509269467285043150922136022429251521376902667276107934474533766953166448575799977554385386733910238487140756601257604881987083804170884083233076114685538495299552817775590895533553724427972588393619440297288535630221060156413196280391094415019382777712474674370977184908029311039817015461835318342154815269449344549120719333801159805901877786508280076998492790439069017798516807294882545969316637763457724289131650807021655817323936318325055450814801715652833700702294682897461426613150213583112967148007960974857775309813861631546069826752871406219635046894303016851488858934558834402045540620096494125708090189808147099568644104173345308463072209307612953412978923033549385539194511004829531850227237970010200389309895060896394304036054703182001978273414418106138392483889436235174473880752588372086172098140695293912242129651031940470469845873109976412070065826135686938964635414805793283159664650183391971340508669344742031774019045517882323008870669210330139125176193013116754973572903066306181971754652901596492692090421215591865281530275113445899628110840406891766439800313888637472691473806973375033800197429193335243520323489226696569065428102268388230272685364472801211269461394039911638490665052719367538142727839164549685279977786306200535257559459409320311552238732377743730554538241845983581365588934020008943579024241898484104841662201265275956521170187089071839058800924124858185557669119481486201125394047707296367937705927559466048882958035266955989586420653290132089689522688227675699321206594074144002849552874011566421945096351702359721636951429163997415528300057123396563636730689736634074599818521976904917991034830163917850893700796071943350097425658060140190078462688699925580940856448187769584494108394017658451680552014398234654138835722038013212307145503323176326612606619054773029520698124603799582347154698555847823947568600900158285750563784610011522719801300231391001839675349580664431071049123399644759991416887405989490298273722447835850068141774029133565727882097245458782390098905446154797499431370100666281657523285795530236978735482979990246408706943757685376769706244840898630799042439734349199438594931816879175287717643062003025858514352297480214962953822975943576353199590555524968421586019134743317796980146629152944287860991366349896846588377777366338650262949916918012198651983220305420783253582957687852170666377240873716297523108964763546254825127996234300648585902167588601671225481939377393153553647100484468840470333630504715856528603986776958636765646671268692924770818286744504842165587767813674905047343497506014222216928166613818612272351866113549124086206657788171677205803346884589423501516376983848081185936274389102111942289601285409169768616118301263218300296292816230491505621481314271562739512035270617103693540622727521191009437108862280190334077182688126096053578464624162112121119066585131296797597713182676979081522529375333468031835810166879912266859475218342769192117777114481255212248400831435712726512069563280074418517414510238011967814354833284805714429188872492382835397903723107133353135601904777375219658026302443401276734828551511192513139110981181992102460231619816405458655670296484057359549530204903223675816296832516573417267734758115982550497610353237178342010890689298988028147134430556312685047534339863894579259851411573364536887586672760353018536798422928602480385373899845763861192001307645766018218026369982230621786318944324545010114902026667783932306958333368311243208292837819394239201516714101870574689534884154434652912868662705136611659623308018316437593798676566257426047906109462644467648350408136933796157835991496231590168349571408225599975377900812941938414955622658352320845111647987824890329876970688670214236930897114031826452706723939171079058199494909167498804789006049975066662208149441883347423119027360849204331095837265012900632330017884396704755802284030020380868075422158495158567578563017279759039853241398846749011002577528548048614069581948736148905097702493409713111971717874211858696101034706319650527901867797312959494643004229660721922003758476976656090571758088175964853812717284581357404712055244294504809584070554343117068645691254408588667331736069704343912915392267994582311921028456543115239578322699617341226190530925451049609507174904381495259497684382994269524952873303568481150006879309307748198548240761325626043989748075794251619096735392669925160389913143771188100260381295148519453531444481159153350745935385445429502655489545214480305679158117499929963829124139710208440239523201415669281805440680977097188594871636984662647541150435120929866415395791112056436274211985133765436917095478220457300982863624254315076102156753948321146257030662608154647836477963302604536599761379181465507771547113751170663086458565757189191433234649264973700559246895557392087862786103774245678829418927645084808792944308405093774809729333422501458275745249887320419593888023414855440194528007334134153373373766519288717499609638544700616814076119599216469236897886676316108965170386900600910280381668304899650239104657760232817254931233850753774770042504050874029389727764403135004435769226490659000860726886032050022886414357161773613204130050532433369059520917493890337594397644925704319973111966089266340691827720422026531769114513952399144304502055308481592369235288590098324897242474644297719599712753372868790898726575867583019085820538311963914025839722895152549669031791609336802130790240088754726142332849922997354356108081941899035347016230346392753475705271872078566804437371951649969168842241868538616246382359466765864644369604366554119385775666013955682253539713330329170754600520568127045252843352513664571414022613507123686529613754870063606440753320694080308729877707543838013674153089122405708514023483281084482906192973767871642386042070959916351482527944439907837351926589818046585025883185154393025870953400168387784762988037359312970783274928450520557423457666494357739154098336945596165699736019485664474410120707242579505799355807827214028849151209385746399557876811403318140891252100528861279835252955784543653219180160782866139762011092543889997124450575663718013019409570001105203398012390843374422619385394515419261051571990008103419007696533899223021694877252332622019091175628882580254250476114564747100154998519601216181197601494092196904169230369694674905220649443275586369278888219390645901120456861910841048045103894944340054669974298470299020611104268172813061304084472085120178107847857439966057666577233660088452537278424639100336048448507103347752984380858523850093906398053139341812362971942094184080993390543127392566123611471069095468903252449412097183944866075004809100327156121656490558188620641433695543244073831007868283304247148575538739163273454193096634864229044969062626483829107478016800225579106627767284276763565978191412593695820331160673482058089960673085039442262095995727758251284061174404947482268516928443616097089434716437921673096158309145096335483887774070285458051503990537019703112768368935803903162980978254218133314534313369595319867008639380238465994624723004591291837786387994762146297387844610332815136496431279457889330450252686468929169626088627458867615780394720898554150333056676304937304085381007718395817193852691743532693394519311311807660964940112606400787173571382680791391540172853371998162681188026452213017153584370880445233239696576126734394292890996733683111258463277384811371147065355264125234711149242605020918278054624519881052458634118818597365052848315431291923848568591708401242615701266668571272609106733150755839130346891761985405857508471458382148217576891346077629248066985633609215288606785315904156785949159668850632152293486469248386160810362115272101181559138168006633823567666810661562470740100721154532946455060040171650052605653191585386208466910041019251992779700502953724050105578742960478406417034994172540865136596680130118761115933790118983350268920852713067498752632882977763096338240146801303896678340896634999476367805652834588581319569944239868037808561202663294374997391309155352521068253893120940867112977985615828676472495593461950093524832036878701898821554723984889726604008657817814821254247047424485997000720754383475909494199134316727198068055421157696746972178834198357917252070628000218230923109874110947046232688766143032247813262233350045779730481279266668131123903975017950353302563140712277498001273902081218009518603316104540098252369855129966281923782978372010973708675593210001223808370338337981441044090266241340883213649206329695417291260768755490565333587456554707980231397489764651733016720369291332118509261067508378133622640501626430618636475312158125687591736558974166833597088463871291844457083732569478399305403449557418415022161358601587298205185450205189243897910882861792472528433862775318381351060886867633931408769045423368271607955930969445811319624936595564301987567035478124129105660209491173875158537064789051498378351318720273394093326072769389095984408119896746991341300285993706346849182843586566884384438892972061756826752534061894069026762119688600312406543977265731444992435293098165712443011025197514546174869306161866787548116531701941581610157430623965509888642202818692648254797267017868486270158228612630338407853334971825011705682566976815724345285673899899679447765024877372512082717434491544236730073494225731955522199083038990234689748898297027924178053737346339109471008974042507357912611085923505603110566099576387124737776109515859593649680361146585334312321236140699982621513689008507411989456341364902439620113944233219522972677093721203999829772561757840731346145426187021811779090546841614567295050120434789448061505011805131412517028329719085409139992347954520186880118445151068574047460168859921306253888989400986739460404945859623341331216038004685525254492578368023092845289546875945534839095694778798428854337067009852423651877661501553322013277205046435054420405171586582336911062040869008536756647973809684172250088636208344591478603818149361257393055706606627710566545064947145332010377008131747490913663783253013759730284286625377775723632131417110040001671335056682209524400398184314994402387980505643774445605049534534226324774758301706323442467278207706984822183876327093005609436920072211289326492322649379260944393129848751544495318005673662730865146173611538075364376150641556184395058851327084707376225295858379135593322363159185379110382711961021388543841730258721602381381629371481741073120219274103455823359554908759850763481339439565206015409868929600027723418526727438253512291710465646983642066576168918735849677487953579664330127574741275529004370845760201813433050217425038038819372678383130735644783641761842858148731471925042077691403790160707611410352521769265357524024490367108980442177899940403538077310803003347527376522836274357544131311407720526986632673166617869599287101021323946004072458921441309291882153159317515539721491876495929557873161138538164302086560872447118221795896380472864528013906707802729185245974683767436625711804164430801887406823137200803560061081957070311412991615783760440149986095799625028951959736849279061221749011862020199194640753612971626286757058140548864328988257576880615202585225902165797052162933706038389145088321270943289597651189555406104368053127495808848846671864312155115730379398986099061144024406722108986447290708292741944466506661270566411306356680732277660847195322266358267499519773349073098539447677733393912661295551240318913012619861643357512639208923669778278014861796119936471712479875709281071374864191888096188573389733237165636594011100324628716220726165863497125752432722395245823194440350920548910489920650363576531623151603579609244824438121695650712274491022861318180904125978668245569737572753426112394633863444339499192345054819478905985393474270997588967570650992476789959361138959445821089635806757456805782901041793190401874536946450538200390145201482890548344649959191259258314767271727148177413353236647265281303108920236525747006197699516128604971295531168914884853549636090152700425070377453306511744543806364749646988760140370933245454265104466076030548137184749657074171951616246025197192135933407226942501463486073075507410240229966523178935863802300661409374788067865237975503457284533554611719555123320346516363752219919295889181787525309489663961176729990604824492998259607435899674669636021501388433889908217935275092253497075029913665459664414011334292713128263041416646075124217494642842757793848167789521299960173308302312903140281674975038452311617549573615736099417543527230419652608331341156309993437782587381204233115164047658747370019090673230794577147341922229924435933954772501721440822076888937816472371470452882409380304763074726077407256114376007784258774820140301880766126631877553827051524903575349594342827899034453189278086681111451438891648022433356214967959914433031473278687532721966612139488447191218096031727993694775189614944625575731227702427702939413698071125345765043762109510533874370919610959103619287408727667629308568924342520061744860438658030522120382637174834806299167233695656271907659727950602940154875225268196928201845080378901378856963270709553063802026080783568859681798374069493890855007201026262612231095440415606965188765568216539203269074136113894843037551665378468700540949417833537309357266120920348832451016253318452410347740631312077961663757494417653179409566380944315016238876456551081895927266985574706203114298277248226016386052254486726321946517119911126926249318763216402303230386241303497764532791711881652185610186878944772421105878020904000377787894378482008195084992821936984805968886941074801591938711371891638258391878942385196914226591863828591377414852828475904404092865984112846772119681139041105920330232801975537027858128821629381713426158187106700832226440814808836516769738133971696656194442931586887768427441230552412927329753020510603611207717665328560806753681331352051395939669542384448647587959886407749298203311830809066735535172711826858550018268804899196817282421390889317526233266897321995320313026171964777552853708584191191552396065911469833716575627170657192426939974830058076221506633100402483584474109468672669133902481318926251778559698261627111522545696555052445355627441449703890413272388982624714585661102644562959363484413554792903166354599008391894147617957315044601794157297878009723698737890936911903784155344387986272732593788180641483275793609148404668661171951021862623254084149161946661976839310125076153935795861674375378865924708974201769942414402227963022365283616192532795721184044914999444497640455677758084173247923696647823795957158757433048535803849797110159388752737038609775609182833384249975718456776827416873273352836810587369888197822349613537180946734698557857760035028972111489957083626509736110860813394661658861667714984426958695886852573715840508675599877535752665316242543321110999374744066265013258406149417745130440349187190905333452156658941774087691630963014031497022494863659067475363750196519797193729134934891356932018437686093870883493578181751251882982925904651204912093761687972611227032538041076806085096609793953414331109351135867726714710579884907939874188087643620241127963327700430851753241213035656780889479716482332473354217098951378404113425559476690883930473736167395421450220863887840166739850392828642177886239855176786941105840440693311708916773094329486170960355503919192202467289677808713208739392567304014794981756648464879113099706589223464878590603891843996447706223039450388472785437108245344994469992896788986636983067077027062502546319543725586168111989475675898951858082153903849064572810268481902288437653937079597759807381578484986106502407266493670266529414217337570077203394268608400553647189281999817591458816172721484647333950961021034848374850416502339272293211648335977879206478236338553049163562667079954887442698764284245927086851767792913356548661918822006179205115930357464365900327572043913567425884517544202588239295868179819538071155092574382392342165490535680986718724033438921897322353784452905731802253605585599610094161847941695402003632183977617895546811315078214589731234822314484123358203705571996948948009621281303426878281579344826809145302529532938329022408117557978709614034734949216005007194825951822086342688782607805550057842138952582055144572712796217311482073960628550612665714184025763666694990993881842147214384045651450313697639568434891149242756754367006454414929259590881369513296770272771770090464611059201058553244474630356582920421649796645230123724771824955864996016246798333738713463849501662249622619710511871780895919947977815009020371075746795183790715040492229420955502684566437341375352280810111928142538599918073303221874157775592803006906890175021491351761657596157741680400508188120458336010276714496436737724143450871753134774913009624284052701017590858309122727883879448981066480852095153646128379781824110819910441799648177984475495248944689556381110287150695899894707014518729375283075067100256631537866724610142720084114708061567397221330056807511929081274025402924970220697635312341761006173990109355949263005723900379431867277574978640731043231580711029828763963024354411758139728531605907884113926780371383638943261015959386179566675311980754245018977147210222575698346796192526218072465160950438342590111583072501426499273180246433079082609048591193471728926161076153415065485362554412511678593105254745741806652765018576520811892641245534781441269780996894026222167159698070818212761682167532428361062345235006860055847082714639156756101483485436253726975109083716841607028485823370121015351829926670202822372056292838117201273008093543518694111142195778352559792326443042639194212274656552723166847267226233465043834242720789903941858796628317164510643870369321616362359071847359872635621694956697677063735854390839607010944865946971119985169323154777006861430603270163926862668576438851721180545985491604648064986257481011110969344179285915497816651951186083685456764725071453195657344518728695356602190243251545974581559997380368791610702078619653026337763407131695992231540607165445281930330333490382403582556374675319386988464533316109655934608921167384821944381518512682859399455421342813152609197751900648475247176513267512526616232267922076261237562372440885019982676247972710043563980545888016676961143700880195695120541387139412749982651397779090524517736252321511753768920865740153559821923203953194993545822631783169288439856901703239106930521669203938734947807607340904242930846036602909945216324631467338251856444773155125230279943345827190192966037873659310306778508757893482925992391844353819259667106779391851837509218318390765227525272965685656525195102907096381721551415548218563552875776255679567408039247498129093790646524797272590175663391868845111466230548457328394359084087748976851237252797435886572961807264501902652429926401056319580148516580405372305173572020329567751966589859008478584892763936131040168288630078285942984397657118659649291174632187883954788918476354594700973079392215347014086943482334430594790524445173660834018210561634284641037539074339788980281236804406182369839400328746848630707530075728020131761756806659920463615331540240938077828080232534042720773631855483245200582182886111438501310231376484520600891586286600589347267055380151781631923973178326039469838426412891843781351693199387408936392792596806794507869094727720361267283640833150792127789636223875729239634238598075560112155633197956606605005342140136985772345491500474627279061149201103848667049641642502908896447034528351802937292071513777996110366930022258517795011119066457277908518655896241311996206561389247393215996532034993865318076082880189177037837460057652856464776014563442002427473733399760690268536541191421724373952213739561158307140588032114571290052439279905972622266656247927429601533202801906323725244181709166104798811516163389535271120524138754245933641029492426361595439499017897897105495625680247691089127319970171848006644025441036993146786600273384452294141088609157365025846363933303712784445336303299924702988093341090872822293572944029068137544065404236312391850970858421025473409219301504559732381838821616078264396963707366814285299343082815492072378161175023407579464442300194455802926222093782603905521162567022415736414079258460051718294944812767764865510094961054266767525331872532313976758647574590422099133006435243544945680705808754949670370843852987108493801762356120310409257629380376432419977168441354863715208433044186005260250727349448195053295896421639495712033853972767618656542782401886877809060979647781827118312317703553851960178099302889526911780889918297270417970296050086273875222062759461550214537725859357071124915319700233014504529630644423308211849022103446235400736825073371831995190627789386554842032885338065771093720513768918129005840411345336605031599096736523712519597408638096358436381531670254626482666602929652667123624882630297850855218201063519025225137167281611665421604523466224453866010954830458583216979021785700947256556289757383942697731066535230947895388317095545111507068973674139200237809513613220342358845281741763368110065095059979830324672656457331645379908395230460996596505809652461670919933591117858652850303122291345250515829730260754291606049866118275672790192259111978927792155617963793299560982724609847122603640436313093842407794214010713336069359365084862476604878375040505108590638816925630206745956970999741241313945262036399595033507132593073952679673357066380587231941071837627689170918536824925707684772835990459866236554198840031453788795045213697635890956712687955186823952337662110026964457419409808198790867666332868003793464539222475368475874965026158954447809395288144002618154856354265908881290185914530051755127387827362512146849855844670137686537397560135518882346822199779165010425059459292122153660968499142813190371387381380923042317409585474463237847741957461977594127578625744679273088838105678047410702980193458788801008688963875850095939572825978688567900968266762149810215122617882329745515354213831760877801641373247773609278898129419579355176995849672841865774312654872657949749501639834708001177898938737068439536887927154203995485392373964823151044353851270262000146867118397028985262182630121067488187934275150080785792263827608260035158964839113486336447371559952530702301536257857648918155766760354095959779202457075840226436673573028398096842597004360629179016584349518398994864109144821013673145761708054683338079697466418130559510967205167210215440855020096212044865455401086943499713221302231240326584539473013112300540402309584451279828745004845880444541980388689681813002451325963944169149757533704019931307181675130294040352384563123049508031136381472322780675374314486170371907375238729397740750684300460775342021441260157032341104621677375381303012277345601708749837332389084670614691544221701655678229335922188528103513566055697979874532382730495607492570750808297354995950965465888608849551987353488786367687936587211843165180342788732379503806367749664339269521598638551551905796940645548221711499708151804709445227627008818040908661956072677525779662274416691145837766352532425316079354716771143322542080438648509778299551512225392664075672355248453758229100532425043142780692864647821330123901797573317642903923882116263163237039610248393489441919550141905491328472092150996885319440007613667761510583439860402352357744053331230408421504399381591303479624209527110944317060140017806899551704594396550485388590808528957663489695430260223902398790845215484468901755683458410412452407611587181971924102025645179191542762023621318544589278011902780357418723986209417702899097462063547566046224656974753114325992116806934631908113561331689501803905358785104381678221642678723975697000996989964562061314259635270329422041651499039134874809236694009852377610000735427310028587227241652426432408858903521170835629668288636575210697156847827428320765202650725550924249538613395740848631288868494933567410395217124860131199899679750921110188973781371668893948405543583177085692990721536665392314749084523317169170757358387082255256125193321153464733615365147146717064170272022380547270400536475918920275495801691105097334783186156105830174510816202397812849381437372398231418477703528115353985738791646288735376732166130114181897654659568224616043391298119969617115206010088655987763840082780137120966655695298708083852942842337167131412022968372320145712708479208586552972971777005624151584178968337436984097918790740542590041336441278817726644191877663378705272165762226133832757233349304680763404301945137586101539505234602923445145083282220351153007423070223017272726559443028128455302002140342377023702543533044698143971097787027179584326043043929625146944127376976027108599856285274442902442545631424589505679407816615101470190904995817737077954463867172042449525400269191300932080895318507136745387371485928790017764703919792035495196144975887278184810709418229825779198324976512351105588146511525936555190303975263851968190945668520009295111042724163914778825318457756223530772395381889681950562780063180227500115343218253667401980635300816263951634656474229652584952629441897733331930120532603745023253194775919084077023766417912288873961581020219010119985342062200611009675326741282227981770958970833008471113191698917968826643972005399802450927446579922094142937829566311405901640400102469952778864412489672463725941403594845363566025695862865267150954837518843459217819159890123404095783485332646749472231511708463014071899464693811684818320593206746285906794236979664451048748866839516903276941864365560672832427096397543144787923512951195166089043115324479745354500207815358293464627720373983972790000656721683653325531417192870201103968553856274343792323995739828428748422154965800550214292574760391511089817067821188857317381944607375417196597006879349790090599981469414020990767395203114506290693347083996171581440739830753435597102547350297344302121001508911600551144591926234457272593361510894007294733141737079596244517060121727847184410189371333009429920985976882953336964668369120069274130584111293745025540564205354202459520303010651586294840368241815921028563855568553857370300063172312725546036165424129506907681673309949589555941178520576915319519766396938395159080623325376915711608292425285474682455344540917856988783134892255674730652922719233509807314001051464211094043530875164125971190758533173492153922313705071085508220494363008367556870433988682806462141876825526059406032495404699451520767246373495416691540152662935698457434511220942922673854565864522011807778478457395037894115193352268922609154143849328227645732442643261062421579059572691380972848714979272015459628190561254990964075245589873198421449413735675961592112819776072229981783340999173357852142445018786503548903515564610911880608954526549778399886649009025915157780476524243407019929305851004021737771988221497883710207076148660793469309848469814994743167507153812175243260480717708995407109032762799540746356402880025155842040033247546578054427311175356118197402890514927298019049486370077823967451264242522158478541250916420555070239918238068158878166960267245858525017114944653424371471633348917388631640970681228135477543511352500050263242949201453925862567561375613892818441265351124341157330422353114796093059467028522495837175092716585677123547949023432891226756461462769953819590376346870917767248462291139149629112416682099230947354388617905189298165531436149132531956489059992694977319902272709752457910181882545201531514059322389584366566335439841032979848674866041751197518812066778748236485808531681918493701890719010964940960513588153462822858921468892987348714654388051370506227142289670848489155403235553751882055894371558934902635047119071848456614608972072134144161240271552885753664743043244676369452749241091356359086932355607021319510439094148946405595190033274844011840178445772388316844864041664485516901744542216301133406854189442216666941462307871174842650071867244248696237029923325287069901988137106141196880317501147663085215014266592595510256373698999828314615049317868661428213324493731622059346554856351568081994239444090662870221697758734092501088353446062303032522740698235016331403037496555634634332086858892270026037222831298285629460276422835392871182262489829675089170677578793820749128939575409774608934925949231258266081879451778626207792566408104459695678436494270416311905198842740001991723544984595691987813527721012020213941664841799683887703581084093428268861529518658229146651745366215382698222754343671462201729490311197291757133952907347209845310396577856284234501091233323619297052540768330929997788247398690781567361253288748892548651741601692064723670455348592361367377900010212117574110072155469416740630759147814618309719159637865428954447193898403616132222907547441083955921703063219539308127629223906810718764701419990920950716736072422430836607372154859191588934162551594732638381762561340418569269180246667268047481100457605444739543979168376575932188453795070653325375030841766825190926410390676519608405125312811014148894363585293908458005762417604820741858377686301055360376946551204209528251884619656904465279961596975652997184225426433708845868244819274357681747962120515754717583050561587462759717071348084577181249110778601173395153845209752244264029985143468114004705069618652112389503970659303495567393832833454540796439896239590801976391131730929874218156160638695134000256128771254684047359579405843361929877545450751167001851592948107583486211654670485116129358012084905909514980796306383399879552993732860094031695257424108069875473842392534762737629957514487370010485743218129370264335430361018141212996016471305918071084622821203941137672956231040339338126814543894374564404947049974683199617463278424456520561547294914426697635051653298524983955740955931687105064492372456432722985285207030006783233713946721602878300694436176666450137260796554328426998273657779543517440799071730664748062628649198031337181937961468553897969232462534262623258652700522024267049687160931913891291649235646989566152175529926111884731361272336147080412031435632882908194749263221922437058035253609919418629887401790828139912247298653388826068214870067787925618398511604883323928908567151818578819563655796051177447839380143607158597364905028988963490615673287801343867128475835375205961232481823308290686059534182711035504967985187547977358640260485024871753662396759786208207634417137511480422782298557398609430517001161451409116265616340514295920023767277222483188436235458908163659294568409832223298767310727005419228769625233109190104482434189236676036363839797927759482477176048007995992880398492477638181094536238153520664366072706517689261437227326566400494631547085063776686779281681084604361365969035679761417206109837949146516689186950514437717213664425497820397942193194312922875305270137001634274918390146683542353424671925837753728416639176679061697481919837193634722363111088503096436950312804415994062053779930938591118307210178708441090972317172512746048281445166119454353290050135428487647558655187303280298605791370408747205232346834593121274568672928396134830091378323582879345577983583178119071413981768368959646378196671160700247613639747512815078284153525147483330185475653583386474918957583175599388277464234369665224149860992692147707684775170093746198800958080677628627591670903862142166694113228720142124505226199862628317050409002769432416179041585865781877313781001422315268408177967783534096488352876803950569761671962599210743763264366026173681672972106324711933978663348520627994027854660172904743177241892285168507802373133289490081821963404368766449507262950557998415263011893126365333896292348327770866104102195230282727309366932520748388728538821497816954776615100999929480837902739454082287613247642630287523811779796427916095990065023639340059267777979557644237911441306470528337284059584770831894687316624189345859136235510915153120965731948836206250399871508986023301079495193801858495497003365551284804109979295335841459504545299768280827912539477739597023476664685598452438651663815529206435660270898975499116468894701089484657117664214090309958939247074811137199237344482980144794194906555230005517965539207132653995784584365841032546093915027431316293710455464081504741272953177275388023975247277613842825220511641347281184330398515456950973023521647682990439987476936780131527531141273153740654965206765703456927773423032824388477820196382793271931026682815979032184616942066667182703273853008263112888705104692028473990915820883313913560358191837565914980451096081163160112737717127612407407841013849314055785718515257871521167416063301825019524692057050754930619754294662720526698980942433585874538742282376019854620236097443464765560250178295743032412703993793487970818791298107749195422688327529574345060294274778636284358332407033501598098760843996650513025277624593714858780685469426478495677389282362877191928377822093390409960375049967619691194053017944393510360831695188031568599776764165638727350148497195180386295849022975347835625493720779402485137820164487832349235573430753662176940309898064107922057569248489624707247419409973739838726111265214778328942001677698304589366245795658510002894048265052701905122391606772166528699679899946864483857319946248509119164208218286282513511209485118659079017811891600412917781504024936165603548054488761054209609800207468736829114774676315601557663512433543774071987933652417967690866793039428472099643852447396847666114654308457385398583995057012725833246022812962040296853548328237742376716420836502625154036149960561545904664211584462049065776951592748251496548358155169749393688002631041483910222138922002068370979816980832626551605427606779704176642817544342764213046322714043294127314680184884032454110577419491891845420354600330726407945652356722996590683679108748990352757101870054689855484227868896172937845780971887090439909365876485160453727426152383620478931055524098892039487191205389208635106513502124603798144898072337847280800351496222362573427246956494127373113755138859551414407751888206448443471033656022879652317208906646016275766643855177064047585879522411421315334430162388063230173702652574000908578219097469910757013786964702966497932076824187364692923069515037430690388233713484982265958578378718981679562508791563911869700130254245598512236078818604916258056564900066071207380957371417496774866304442712631929450906617142109046571144706374085902973015585416877231823094951798375459192234498761265933851367332951767685539332758774095090048222337895997981085719160646599846614113452096946491070572126277407337338332085221258630040762330458218559818192028109040458166006389690160496036503892405292100633670014244964626092303622125975391055371626729619152390445706115766774391572655038782244448748202173936426626378025298447215709385492041857815446133619133110724057803900745768424887640989274889288359977804814511669733153527810876447121219475996450350914213602397130641475036628757010004575465403603294899700770020001195786846192111613008399131732017795223117821979952979322583520953739585151264961309185266044224560288281540997657739370996363605395175572478946867650282091474824895411919582006739227202772668986262273086744260710134166852631302368138174097850462076344578290358486592910584313279175297139943323137952672130161827527529827833308317459173863377313610828175934717617441956348209504239944495978370036676530336766544716571930184210546592436332626503535889556107396675316816593192507171738863451643286689665139818796458122432715806157001159081558820960556971237172802860831876574202202350389974321738057690531170636266464714309294599680087199181581581473184070802325680590441945797699957547179855672901597209881182234689755947104679746085943283025082017488066642998121981745597453175007540940476821022355371752418633015194532532438418639201219320843646708091726881392112168151846789734619306181959569067488566142316589627851892517630232382246404501959110191674632087384157004790044012215104492513545100626562979504928848996973324116781319703419680966008268493180533982554000989148102426222324280536345171540899002103985405035209072248233873139123079544176829381439199409211402704293291738724583229409449116890026124700245263466865124734506450304626494066196955249101561607946269094521796254869519090448185359390262609244177296075048064519091952412972777281111067816328412581421623976076824359839901077335934877188332525901574308296262623271849421137046944228352625537063431075590801249838594902591317586297403916346705932314047159516681400144446705237662775695051847679015360279533271948312319262681504730132876879751950372451795625028860286404654373294942829399378148658122900317531123595869902698993277001275268788929117587302808734384880824841975049838638479607801738535891434424846941763915662988714490028702363263412066670391487382916918749487403201788137305811318231754509331958337647035225861340052545792584339233918996988719528114644708233634882651717685354447498642835869024593042385577926516710362276075188204179865089716617814861027155929898438617607516007140538844214867924147073782169030401520550108755604360828272912154468909265738651943360993806806024062190477795374788747421651560706245508955486904157468754816328950780218418120488977498856954002108544065819973298565785924603089425489096314539925493010777618256679823965254792340503488054888335099618340235933919802569442715369850972858875476620921727718402171869422238238265516463131122750070256320503313179904454830572559387629203148456082759697655281035960869776997606031792176918702838282827970546515826672664646501629640925079805554524468566620297660510331131961424292631479015338967322008895248116791487352283123040177415321220346150426158468993459130573246509339801591179036184672119347805889610594373441372728863451014148192946633922105581824176384202359138007189141733523555107329998454563124111687923619145653783392182622093770987945904318557138113906953890348968974807622361008941591730664609935110422972306415245664050201531430402414951713506237019986610002897421761439170980869150963992960463788368053276413502443196198629434177130389386028451098025842658445805007942424177994957804317520815400231247797156859999961022188959402110487096522336534805332440203860975097757234215563560836629893951790285583026606661441132679836531276216341994204357724702653121809019998977835038750870509196840678888764103843594567516447168076391831598768008091602329840739079505128912853949649260276137505933639640224575930427669987257695979564546911757413831857591969941609178954020624668064381511632402585068606872127895492429636610938299125466019913381388560906416932365081938545233423796465402117965794455145092687133876120406969017758022040148498896521779775727542297851305439838052735525892297521460950320889254298142894911457262375983088245495906616459336409132183370133212488394223250986233672605937646837763657538999784596617563615332241819810347522503295115415446102110630531095142676828934712564799481917482021126447878533659211604237907833724264705303129966186573021270379345488357133024001512089112882224510730525053933109010270793751426414444561282389821184068738453084524406309049540101726752040783546181934092928036336284833204582085735242679128215766124037421394224318230550840649510273396251936993009418866286456085069146455980313127202247566293198587657917212072842753373147550973815163093799605145608613718716384677188962713087806624297946622348835067476214998499785083843660887539513636313128988691541538310505452267451802535283566143686060948874505018391112997199588689667118351876122563503711165716890751992904958566017156650130640370005537485087147660808176074259442377183561954799319873002674088212486296220937225768054336648861063871991081681888601868931559435249637997045481717644259591648510623150377985462767344590543693745575589115151040948045500007303357012936679002661604942337280164739395033344744799592417789777570095507623696530891755615838298962610349397589406496669935345576597180071318876855491010763754919948430816267799742862872569577075101440902938076889192448979300593592675474160041878163118088244597086403801321712455362907247667038292239875104561954489801355336356558143451150032489481542047215420922141213287088263281698745620583129697493042441920109910564012210964743723846240011901458536824113764546393888933434091148930649867445622685697116458717762897019289312174581326132905792863161049999025000247812473921036416251853007169380133467669215030260025522260266386821401639430082070908953985454814071421785254890641879936171715019158013871481474305600156665350357896865112694955450571375522943283254348992960593851009745437398068893071117826481524845688551089373513574927979690039377705526073821043776825786877339374606152748474464866330380053597365547324013797451069198218417634872143980563024225108179924579588016031885909961105111602668164718856811963574333788651223009059510882209848067214105316396762695834917433542708804506103668726192255182815843211496154887107539136020599265237341870467721649790606549751947389607903954561860599128948040893435709926699681280314877537591779429744063960845939355055548248993790879136528690345090861638278090950962959818554762438573556267530706314615225761797084016848901206797710003891928687644601682065209537411611500684727800476269573437953068824289592953861765180932219350557954952364382433874541537694618047541297810442253538874280721728445749402600816124814052311605351844610818231412036678727040062668047175166858396986345777494460858966052222631148331316321472940039282892029110881077589728790904052064739917375950363117710229291906023672223258178331492891711529314426269509739676654460235671707893935652098195335486100295559407438570215487669095523612349037469555062582604729178779825298626489124607344942999944658128436989384131513361366995130166738574830993571888048884209335834992782993408711675997880912123189069405721993136604937287028637778527759221301297435513083186672485221681820168797305913335522178264010323645564831585457436683116299176980579973702920407051609750200811976005134903665930881819306230563695347296146155192971321998596634419306753497623736450209949265028119083018216760538679072342213087190292051996912859057084344458986373595529164093784650479875062698670295350081617403655398105264496722949969261157499949091005881131574342800052862187578983680719348152074158840942501888976173456025069668883989000074401358717452182580932935838929446711299442291497237831323423787685829629766402039844257212847766527756495641953924835804443243149583979743432622378545926029770928464639175976181527531166220234935749383249023971020027802571826158022030325681475713187678108596521639522159401380030503581619516902349528400716194316070533948399190047449041872299102619933749968123220061720727611529459833901482884903969310527149106471817248328531621539692991840426416196736561997583694610982480031580820791007716988333037376444911588919385042142183411502521870363312352179733875551392509963925311510819879986852120986250406006112969322207706681425577511421054510934444245845286644878584817205701808739966727964774159081342506000397821639933754721285295804969106220130261613387426996847513223620251929712987513815879850458906503055056640548381207223642426809110724605064683081105539589080612123707318981120809809379784679359894573019752302427568407816660281013439553617820525266586022229351287068679352348332675389522685251566816461674346430009585971703672618092324122101262863881690731403579348307521595248126268133369304879556584332785823830877781936393007143017458379478210436911309096230181100971998444035202671651254288564481643040685614182996423196185130768777440863310727187109559584668785766178114029110012597117380364514042793585368693862594400784389536208519914099013073130672282547498365279240264909197302843899088664606973722575034955685622405643237237012768819795730420207877385013818048288378256898734685500825877015674512592911279014736708783958825452459361344752828968689318851366493740374750302276979048939448628845559696227650750233233360869484098051487455209137236577109703038223495820526111605442710429284788310387531394399260882895508284120466616919955655439687609970560461917058017872032927812446370810276857387497004630442777313295966179541796301478986166818624747617647567282870418458229609318977249516519618426328206832950135073515928699863111107428662942691115774455848654808449488689615043764366491021062037379212500710257794692264211974306184716326400734712141299633987462968079885545778807881203176311353618904077254835231827564212879038533136383894325960555573753123466065361591247895586378097674967029361006227093026648380565310924983233014771105056148920870408008015529158615498649360491431100038794016986144530709110035897054405216902015879006714876246956358503534068227240300316549332751321015294524797546424936401607620920914045896739094835733181220958475639798418118174000238277622802410812274682340699791597224737568067093894458351408996596300320672667567693126711889191389585705060301218783053951838773916732415989920033084595225080900727703640703555589450650042868020855085941650234048478842838982282150914682847127349299038001005194526933959438503214175638083365328754626268376176234161593011715473557435126081995382300806155253038617603607248741935784313425313141426871890180755154034286280506132901881455629043938344483086926854823547263194315782787637222873226221619141876684584330337935791784677116028038502410166487591834620926171224770212206942213363606226335640125343547190298969767091047383197124870936018917723012419210593443661850682125067656206742869031879883683118885060873668949989994859962806466294213145070817653746516705659626695195793765139055622959442710264053363047012675571656976460021193422146097850927988059743083496879869595144141216940646280671377029138569284026011257753572834383496177959793207432982520374822055234583149061314405960163858465228539239581116394704068358384172702999137189841051756463480188758988151810761863371265574431451309090867837416999211337069569377643458417649065540382653447812133786746097466797701781384758816309662021643336408754602008832878545071106043991074080451554063086304323231558079695000164033384640261742613695520869866081994239810725491978377601797936301898607967354655553179244768419650309696465461294898065747040410202089848703802266118944472636467877111073379127673602851681697584909138555004366105218291452410837520306493791582013637869661741089735956287110447289802646959234485282190503806261722681415537582124117588724064234000146519482699751563029639565714481710464091352621467242498788687556755958507591954446000572542587455950404855663304237649424652802794733588522448260602036299834607478964035210442017356602673854879968936147350610336040791425020202708087872522098581680958358577616336034995162132638653351609326479858361435614516834317623011264256074344161803512801585984149284022070166878351770277177673496615474504903225510752538983858684709110268560411669763126715187523872792141474445930898362268024284107469972947661304272548930856543708896844081356405537557896663871710243684086769834715430685984098979783495384035294006748231913946221274368013475860158224978583253962415793644034975958137675726657361657306417061974424181252786314406571454832930280342029048434772442700859557053977041976011045906260642811387166578199545709387957434163794099761941445718288190641855277136535867131056386656774171373253256304419481923623810894890966521217218516518314480366714509981086984436195340798186875092261252455266444150675501919494666757957768751098695461239059487521996111377599057880147620790757395472361767816528604942943075281673448351576187007982825255133000525856222262160151493426137596428034875393469736374324918600245890826886948821784185441075884208730724857923691656521673727285769367734287405432673158311517084836149300923743209992725967166021920683952289961464571844481585018993727719272006765960711103166152733938183219462980969818107744729260206024144123104237449846445923980388077387566709100057753970950595941079994921652983283539205715054627700868485647458259498430993212317347497910927241149517726991416964405261745110086156641910455555499341922481873037745016422494662095023856723336108233114542020491114716011950077091026013187458293152633463246411529859219104777267141830138992662898567053852587317978615865562502110456475663591484025860613545880680542787430292584537079169934576079356572016391380364812777269131258384417019984710599446617134655736785137659096229861423438736301795329793262378492241230483022857091674411441890027588474011144662859926090091136676122066831719599765278746228878878942470447227642106349954847591563008127867557936845800370809735502283482829245582398092362298724993245360570018896528679595426171808367154098202436747701110734245135169488654626226159342127209636718015546293004856654092463014067909277658411483688316794127070441676587278939587778441645149859670924383248565889671330940467767907248338873430560103155929761200635766368144016387721360534329028028163898902048117644502936623139597595451545395964810581092248715379924947314514802533744755681430122128956787770318155167514187277302897266946816510267595973073236547073477730313447759375948590718863920946213876894773579373609038580953468323134501020649744580292804609481090521576271803182979216173859289410104249241410070866153186697378899959424877652695138574424237737713806619218695513727362310791637060996095667097180405586623383377682889757861621155473340303117022034001337721458977081055491601448518739842899853022427229586617504957492999042656183979862382857341511990443413777877578445339400285547427957977478902784098058882134025476680625791427528773741561847257331057815050107006746389671798596178018672228500100844436270806252588792537184271391545530223520609771911976716362018376844163313650308619023706343609171274191995437355517860902702513186783066950328908013011868265593617641386165198518688449754356139430771519984140150262262482481668175494920120638131968471159614337814700338523074358692145013515431841162981351331445049991024194880539675689509304642451311818367187579504699470531864527009243840209119354926094198539724641079791439243773964829655901288887033978544468524711212559189828085621679718820907765602436791423419644325583856342950076518003571637296569726571911487645007963911135223194820134662555838310956551136766685858726710019262933904872032838585627557243440440498206890474702894779837332613123480017216618944300105419109780218154772103757243230612158767613254773595655513008923645412578926126147666229687218229557771234668879775085030666688671261326466142147352446910417163130783081047439879401811531290707211099391296956578849733976572508195404056358591215059976232523630212857481806723520864203906330412275722034875349835840302044956318136331420510447654850939347057103617920196971830092865543799009766172838082832106805261460957847199889718512751747936938992758837667593551069807293707062694982988778544575834733817329404768791825094489178154210008514685949005663805574326858130631672231241764695054657734027260442992705658108796138804325757568627974028452344804654848343883717157760919432391720713002761081473484817486515157097355666330856647154221792856012072733518095045223518903279930205855360237599063549149272865326255510166011507233516305599972690775883421335484146054503236924266372653621465103981043148527365917596034629118459425947724794042180481483952840343700734628608189438837635588943235526214998558386113011953901555667634826139479332844669837812457239956037253522333118438041090517328196380661078626563608285751670573157228241989935960935599703921326755822404759195208841964019599167568806323806237226090644269439363665235441605648498813076640608224445568010111599684962074024629636083861596262823030984576476337647970828553535865711840650166106780002181840848342811112166582923251623213594075943529638127898171502464127230129009797332006454545613901757861552735153981710343428814915955037675691782841710264659853993140033511035924975145850564273307442215612744417357416451137929769291572539207982213229927909696197518390365672491368507762522238068729159409030009717991617239974113973164509777562659644020213591615873427585647059490156488734271714453756619794353829927518308869121122361879271055850113029905860889513562776227915997331855357218226374128472804606105359951635656512348746622278361599472765326857476168155716799681142209387641803801639375396267015714527498474858861690104555588866958155215001727465998663164515448857849655437210742652167051383666017052579853548506688980529220063281741745469427085344890771613004680027481853472673980213398356129357012958425993592256578401603563890630991877105121949782784573999916877838300298617495783482931287656654002320795502375418625597021090124997112428276309804229191307959178394168470150382422129914466669077838144334239019368075988152703909229797672133202505063241953817854123963108271342080097009239835963599518396545506932218173471544131080873419500563869200770853795181635911460124041467564945459945156931161499436112769808564504651726161991292620130658219206096669128948982680180010822040871483883879652477728848546766950981015457311874354771144593785259999918795246124405578419151211441726593637517646641807908743275172883613260359109440698027162394783901492954351565557123453580488396075126590462519755104235620588797682139505732689495326393399344303862135701783890356328092556322438297453750444492961551150179404317641912522696377684752003480018298368269164466659098472782573197112648530478006838791605251037486799784316397171280278594726189142424279157435008087725962049890577945379363310030657478283280741374151042157525060930022395152319182975792202540469685889349903548091725499328458334466994277048002294174016287133516156904206628461531153723033245519801480712791748653980067573131998384739585922968403581988371359551406598309208464451471804657933344657833726363439499605004777695274878263961150713177763509153723850970141038897364246742814733499687050775836269793348098336578585118764047768661583410388793153687025597954337496015075032986235474077061268969991289152329837115116383481707025323094394945661453065290805258737012013276796541651321352219878255180170443347366413421585566596094857507141722374974038368684383308725546719050255709578223364306647619764246375000457736268797152464368031583582427800133107482739668833725176644479263961450567661151652485559124665379877420743987914205204103198717128648864015872794148543867763531640401397346102251592902743444237375074297628053683496771795029451280885473001914411420984909415205358958901009818156166880936454532521720531504298819673927895081257970218250221900277717268386744480160674187859022847146456121099994234197198813215795222084787408389663744379608110402091320864505831176010412374199882918853420469907552619410477562602091212682965844038868391127823847543317483480881026052407090627686539965570730831169545965200328930448158854366259166317264563136996322976379616483726321734828663085928605746474355469993631903875095702521387590994478448398663639805825140855118494280896866322213910169924523341631835600193593173884708905257262621403762304851070231387658434141949956019966955988899837526117925805975755682811021669216573996710916962845207171851410555978054988384742321937769704347957384890117198419310198218356729026215082405397385628156909778227706098032367764856843169515437952870066767821416735821759903748659700083767273464932190670626986334694374699149406319193303652017534132389850592140923868700896584683439670650856635144079550766490716510476738393186936082138388584681585265014132724912109747638766195013570879773211599526362195348234761628295018211410818504243568716998197764966281782028452246955423913063616848832707697261747753907380802457264230075682084065466408736594064444172691530074107647482038037482021992086737838779858072301041622537567374133481549512151213014247691758077545770830367862785251558234365580471220776053067622203236394188495007369649739759752922519227993014190386800007399081909046207349170943976959626217413186609617275249372061259019485324932104576196930465540457924391586740591743375648023365513544717562565872048738102667699312767985281970403188611676997326767110236693290134840780409363376957257039392477299323538185202885045456637972995796284582849217341192257596994180648859142802892983492367509160402106438631261753439576214943633272328517660525243020441976413866694348698643687920087357918508307672592839844074024084332019309803811976826585530692622761650893945034805059220949984048125918430971576272343637041500985119037491449529061174893326563861557194398561763046069049273536530900603883819821798389548398305857929874522350501079423571897101186183571831781812187023848575323473845487819520930183347149477626653387580604845308365507650351473141039488770160291918583577384155325147488464602113229488827657275157272329196461976060749730821883893454503810523252600417141451714420768463225274063196645247111865699539379602911719700562777231353044982292655841954729919442775662916926613392773056790772646913969738458961862471822831967254849850945922999608251257768370568790760341665294759898437171459038332571458794788628757406692987966428037967210906622150485319858355201032394956053534863560544206889239015500953323673456072255034426938815756310476960355395456112492087876052043969867624442828498105982057492994158349362933711548012104899970009063277903373388950714977782057789354184890031339431400155368295627518294736201521054304816948611441503607476145656113892192631829485129007750417692684178998066535775599905094815210155698265443380352721571292313757585814423739042626968171909437398506936885221560318416696709216597784151645414026331711633320201000753679143204163007206801951468229973057349053697199612058296457649038492016734228478008230452600126116424054106525749552977753123457766777059764369418047298433579986075747447817966905007035509665078803436217944605932179227435587467380868844694357875264603720945711876255201540978783754228275395224233131232594286904442052904047815057019968931821624456279474155654526818967172492819047306384931785079544771218950016772988106884953371491729655249465763106288034942032342736573912375325569349189662793304294595154405406723805193490203620831681842925102555267943945521344557423617689239225913461531741063898024367720728096953547402058956966877661770805559116530388476989920531591338559162629842060210709892111165657903454084129947680158032126079830492036710106403730384823305978293291843658500576935554574121070896376920928121802173431940966741543540335377095502812504888676494831127055830137291710678205526400188590348012084591000741781525750721049972292080242114948508182191623860662035733459921634034884763079837434819347860796155802713130356386307803845868512686963505782523706958150499846264286518705889755898733422024144188541459259916742168865087557155403984566593913754850885445009898067772123200556862009103370305551297805141701496993008148439930879374926867297848459913817110418358752474215531711674978155817068341285209299144294540733524208463044982642187470821024581744244004472331143422298456826438462382473591727898453096350295535537370904606386267523960964798382478411501734587887659496682111164485074349570963173839835456697370115897088680833851823900028285970510323295470107558165361886676857942682665707429290486327449277807446177251910381504324229215348072241191894580977252678821638499345083421444864421863064786756047929119864321463789250079643112674475333086492468300776345715579444304244594704347955790345396981755841981420647668767578358335681142876711259589065270637318781526412788982977145853057838462595006254802078773232817373514140162731894087922367320234644569428203559254021292289499689325303047577257750598069943963393598726256506717391185653139723570377082227473215547695716879850943101248236540205986616715691657930695291717614701429406723237599298096784373511054949674523524516194876117753595714575627911205789123984208926512699942280283889699205379498518630516552773335844592164866769851302872561467776633665537005669819235217080450088328460471477973762437878886961963896175731576007263694895491256691262534257855763553812389822402958390919089129764367204576579159289474793360114425360107744069814956261358797883421507942728652273177156118776119540442374495653457291309662222960360452741553763911843835106093658170645513836975506697901389679944476772415533509560739816208101665830185374436197146276816270349504429752599599328721510411872434872732240467223458566805736343731227735422631517642534570861561888082090906544668813991746803015633941615352574967549233811787423928334719914744997711644394210590034027347745360211190262312357422048024195878402992269174043126882034813811605746176052521165217182563133067426403901127695439646452657003045477975378750967722861710889585521405427001875083397352149679459253830262525538486432036465832719414083221224774743415177641026179947729808692975541103671667340842473120192504895614244122331993537624468229805539848924948344929139931870017485791960929862576803828817447178429800607088026073533772469261206592168819409617492269283444006807382461781835365096331176455905357444073684158619406941156906316530181142085194538279888681110694918696746895615823670539204684969781770550558103440599186877835152909255821308577068928926256492081948585618196288879601897121296024642630727572814466890172343612834858672805075385916785877722496443152511222434577012559538458037592129189079438313479480147908027796873629528811234570908685285289118295914390027848115667779366809489460913088218141064760422064265984214204678842248028785328637592593728476745193439277114078523651878142778264842974761804851045768453462904814364167702463463402284298775482937809062855078890139361248519532035490633635409804097484813540328800163949316233479605004843985264108544603818368521467411512319481800934683609655378384436251315175128304766804825917285763447457705296539294926944111188805004317802979822627080781230529035364634457032591874558096576485371357992896715440528095361652052515305821367595935176339431675063012791905361673049088475123661689388090539954305648363892336319892961196376143636703736417387577037889298011669485193379778238499511782611563239027378252029989091982898345637725412974780661490386758280067894808238104509472716186296932284648773611155053646806765934810638352329569481250404089835824968614146730407624933079414087835379717062587264877441448208021297308447946279113066265415701011400067029337795958228356003467418063916284833149425699155559542309039783697114188393679616470515163428884317694406797597376605454961214319689097845049302432177838089263046871322094682214935537836516279338938087977781720548278807907720445096833932798598460954812515972184176735067136604942894260964136440500229644570329690040297505278937466589932489048402379674432723317235153639294445925509434823103334636386362164462439178978371889098648924926597647742896265775091078962610141724051915734538673597157311290478925040264201885264743477571655003000506719909841494846313230263580092289832064098373609097746001262180347447336742744529978158253306231362149874593268735010091309753090197304661494661517538548449386717491332725934658222817127608768084875478092758843093564288690527983854543492950614652596080634073384525063704592706437741185101140041274646363176040196355897941076979959272317159472510701734749783293702923347858221536118993180523431838053847839189516526988411277182239198058849559221691384982081001006853157756930787064585384882239850767005888767812349374824383203880655954547623007258451394131813003468084004950165194587355395338586287887944155869959198697331733278683428687676805239638277224155758440355112269567925996299118030018256745124964078403168597039266311758459618568310063904024182717816756675205732678128323946671703278568991334008031722283288094286703154462072980130076608104191722253919802694330448562808668439509370888794022643940790414702727739960356645068297373407341208404843753468023826425507922065158870820792073122598055025257989228651162046120948581959191494214041427065748365789751251825577047856410138088355706960537091590819651621459027429610652158791542849419985535785744101142886750381793680204728628710698231525234010804260615573610376625158530858140258512420099331638443664704648466878899796250102685525593581298312979300602301046990536382278909372852152630816152807045194923793623045537343044967413626497501278894048084446518628766355548237036656308487626239357979444423483155343409388003437598033494204405849343290079850392034932156962010429513095414259777277421160274389023388299127466709605901218724169468148914511155983532572908590650526184847201633345292702274254463637385326909944213204235447157477383737265407596366207497699210787882921604043687235544812026130343774285137311472252443015622931302043477978106473156081152186969356180652877697983398131325827861515340734039094318280632641745980213204732344940911046976784372187524521177238303842650564296464631359230002764891101130516635658925034632800140779177991674807002410925257772991574925581065943629801621501920639880220469087098533472355018637124442416274657755198712460105772126690702549916984764535148198610239167397922047316490717813884065180234151871077514936120503663419509270259299475471546025684941719014524219251020810894656740052114716375503613961019800565193858882582157525760388169953753081057681250376988568147467437191018119034287936070591496748153562147533326986302078381565640685291197466281062148159631944737550871987827924521603005721592426555509357064521127048978685119735134280063514631517804131137047445274059637756732793654158181422256130987038146647104782402279602603740797084196091306304539143979618101930013843243454399060305588360134733168968676965850744189455818576279756946672223344854071252593742713086656298517241965756924815928461140462207092979753826658758594097763050545991137094755553064675157431867574404782597481519539128811543984491176806636485671551087737943040476884184614341189680934104661541210025536921589704601387924405641800902771448480820776314769004797140849706086130325971879564865332336861708491985013680906152256287352443940979802127529142051126081025121347335124655071970666801258494835326848561224650872909611912952959852648564961998874298869446503653009761144363768716482583127121293409727423927424787778128453452252668173512026050793677291683921731697895063997803077919782530681193025965985779867462189810815775245920700180623981881281808301363869984849964042122933458779280068355233539733697265057474241585032742676141243035537929508505554661154941535983643927434353016923731892757885469744988653832956570873391863317663673228832473357171231716234234391656160849687375060502633947931976090745646389807694626926969146641840967414234085343141989319813067502264193770052937826963756522838264684284300618756608499888165698537843606912746325107149190362106488228272691477812615945065348477372539118354152056831154514594977301914138254660845696440275120347080282909606115291442357539609959458298724676717997285517787644089575242864333219537507556641378081902590735254136274796525488487452203824079294774216801641633820275710734134871823388125575147312107347811064813319814370850884383164728658945595855973241152223527318477891902242066943860338495026147811690314804931098524293885597639454925410230037807144061639385079132589590135315638576901274103355347851854705782175062934647087850703964997746303771119192890543587998686877771604317228331593384724432775270299265325607896672532654702293412561955089466355769197776202114355086659857553982999795021673144335947086935073215178521942948226798718084824185137948511695555794600960369664592783352690774304341713551690583332806993119324285639323937965694517272321928311074772286441891740622264081321143760529907450481711800184107127595182208632119286917184047480971957184638704034189233680521497223397725943583212277635935594628067539721383091376530603628130076482273625713971411144516613083239890768135746408856916913857564237774537657520607314613721953338038363042856228456251714431737117359417143749291365976117359733581458983715072794679754216330367812504406942292304972336925277933182124978102406165773859147704306152716244377415275028271252844859518636864526390165240248888327935687804418952513013316045339559314980172138808198436854784645131447328654156758707388850173216109496828974203636231873948102756719792023620420455735119685589789403382438152410819728161797048074217733896610872870989798165186473899525888888812622883348030267395804924224016870233615437632778848158679758698728048532083039584154451787278907986576203184044192742996856058866389093639544915060248320968568009617292506534698829206084196298250070225988288299121798903430540585239191691145018180614256143126267917404508369552300733345130771745749249231610856701976894887691494361024016190552797406679144202289646994934865364342133177477071946542599260717545054055046158454420129709333054574770805492189729883421072120805903569188383404548820745504300504854941795180326358416432193527832839763267757272262670499017709280303728706033153668136487272716107310161998514928549731158604597889161480404171191513908873982710929939708920049206667683522972568983089876201500924118248059655184522235944339553843319790299247664585603889420601376955772961673181802246985311068192440665324452205688217220129016963703692034691804917482629951794324162851628156319767958852464659568056718780384546405670511030478517956729872054741636112105682351133211493382805420759025335232994978211464078441804668813923161108971380670014896483510542782054674659134053841104968381926668140137416402134789997145520465122514457240602115188355200752810187042239141423637288923507509824999779849825107666054510963219553954557896336755135367186660685874285646566067458257001722709621400744294141428673634929018944788709871151868679988776150030640551468371467798160539628803209799995932663758296116527163516264399553948608631487039146235553166829734468417948369715446757095651603793996123780765862990332902944469317491778552735500894648404847025472453259383563928150996272365440115484025077635886370941409429716748433304204878628138904761519359873304334035340076604287056253411936731553953953950740073417959006800253542475858327426751624439826788376076832687219269109028464241710990302097130700868627623533564553863984990530761301251094764897285129468189245266528805437484859535445528096348549289130908237307711625340153311716909312306581324765599402218346839367486978124167211695435969139503941312446062308589098467441822092692663960761013788920847380318568807412242303231705933832181551275993147186683432934086016461002248629488933237017456693768847716694989680685453306947880665612361853484411657382169419850732295947556181604392491739947569735151911888606887314948189081165991493267327117718580378713569953763051476607677485118091384863616394835578913760632356056179605643120908261034230147038263950290061504021616773392050705376680469156157567006287337903962701205157449449586268994436591031579891049574542318667235665646679053025584690222596515202145771271431857139221694729252072332052124973296088789354995686132056208155854938496146012957035991907678657649806398711097481137709499721023789900937009041455161448047192011578238501109325779737488554423242804829603824898704858901917519123909015346234096712244372249114777707003742195253132133010008564389886221663184605248389699495853164147867271443525812089470269180947473415177092101520841848086537349040461123063122116225524557895290387899088362295231442414339822055319301758426237345441924373681532113929549739558098327438727418775341135713740741026117992094804862414396744297157118751705576365267032605413596316090279358759186457772136641141482326666453269484878080348907415460504367349477669157331268966081940357602610415352831587728052479536100331081684161783707899382968469393903638731454444418426597071933220747126245479183785283743992217258297269508905343835820727263227550909716645532131169575781570832593197625365907875874719359248908342561493099823960767993713508650403060546217262401493370984809541981859180630135204049878107744474642249239332661815289114055235674381116798771401258018415492131354706625352773269118072129409501708069010653177703886817230557553913137265930653011028773030663632735773492211861439523464226243112241176178155690671772627065998295690032684580770266968654786816684052990455281302447499139285043961548069236698153279759047784509498236892713815914768551509331539619868804985785056713591376079529414351311985874093084191244464974467290088074502213885526679922146987787265076550506866170760725323180547672584557081494617156032339082089184440316060812584279307860758508314405684376647395532898237682501469566442334849500534810333920294955409780641469932501094403542037143062804958975395327886225830190552298636173407814271475823404203952639197046963771523978814503261499768964009273708732307889874546654331253003790576606836155267884790064808321697545481729780118240749783256699719813791947515443536557861817207370771898830639491562478714927705485926451368012791121504256506572990205712371577230346202074559781590708037730814730313076093037764720489677586630149879810617999860335344995722533199446743300328369848689979473740282600322349882581997940109302110526595379145451000950089418622395314918404874176592731874380950553258660470469767528554153919548150953583831431147389057700090327358300005610151485029771194434072396703276259129431429705220177474680545952550945400462103721480921025147061846409314870764357555789158204896406860860615213603804594752796938193457048382009343576644103947773302804320598371727397826750603841329511297408714400590055980489018818504545768414185293091101108014292057132883883415556942175134542918040383172673686898884620415000723206547242531561461343183043035849424877001453595982017949034555963629828928697000960760506182911817012543865137890753083915312606535562951695725555731971359644673751045588909138427783157064683128367937072826974142863730023332507978782810443023783936585895456545389759887514659684272109902565174818225407713849136676039141287087426618567844522650060379618705566631831606863311065832308666044474865090771024958196178086847332157215327598364519933263744124039897986279230765200129368230608451164058405539081867738594471367928132063228206584406936630350730026955043511396270585403289488242556201288111616356192934483679286476404301403632326489775801872153316845178176485796335483722899343570917342379607693842588801484135640287492891544455050333725766604717835209666915978380314097791645867660634394810357810572309317013841724315127330618894667318898327089739659513299030941226201833446224068633575923166912723271549608955721309289650273037739951269266924165725349566450729565240767232475621644284082142665167968200584206997567305447233366640564363160626407784088571818385358448535174226314698838536037762867633640953748657930619349582561956394384036388592237580174274777201191163299419120722354525796640167524439812978951681082470139496685620128176056817620875571870708075730578532393585831750222797250218018492453388986038276968891717051346314335826872467331595254346673789530361302336516858264362898200576779733846172863999977782156199471967962433164017751278620271971900077001642169370877626156592953971283927460387708156637235135471690343278491898083650128384901617971347411860613164698476261348877101819693400808685327050382716823867978518397079679152242238952172897534874932355010497952900113011465487276861320449961943825324713702227243750783031575583082420015425970179218485193561702478729045057015131949999626127666160820527949798314622353866282290729605664200698049635551236458610726387715363933204235308017462763378783522882364727318631698940945682365139981646483477684256024268957204053971417556289264301141437668625140634725376568535182834708893519589538650702144254406390949221855023031153558969151157305235503335518891270887460766476998146228228298107943432339334758832952388676898762100980745461427722300464914749386218565839284232273296823633864273549123525378156135639953789862463917938570370954875685200864951775929713965542819991016912525513999769887014040718174594568576021756077884274467940686780856530091066414661790414230976588735861678480222040017159363638112073447738927134041894784067694554056911905345037423856800130530057658440212242713368186244910088414254647639182378210505630190308929845560788751451590693383784349513382964891599874247240115770777275103053505235407645512067624792591155952206785352949888313229380899945968757273126449015650410595054674975283347991614335286880557518005935454504800449595912097768700763379742866955047381144463869949405011849365634962522508076580669766727342655376596425381052094329126641796757180431481453375122793738889697668913242301712401545546858799237902790062322229111179754697794342932033870213889313479099913166564853794750675933380943102556428813872822253984071701533748633853722727897197263369570287833816262483382892082986808562201516338496214217406592249092695991774247015804030538953571173282771391159306868443267149826205930265651044682549270265151865966770791564318394805395002801572445827141106408638916299386497328443363637348890027536360912079339433463037579959490395476424662428964079655632056303715334494934269816345413525482110408371692364655136611427772031836648214066250978835192868007262553731053919106510844237153902734095369291090582640172544597791682318147307725475342439887987569835886511701818177926638102825452786239941545177285626423921181101553671388120298616161450338138675102164353143047467323754829671551631873515961302629128658494952297092622963956779127171044938483317053024300904584557367951079568501652990133904511355709840234618997643416683689633025566181652984302468841548892582761492839068970229098758719477265711427637069864255555470212859743474139044488674006046246210540217963171445596664766477153027722788233505781709460228237740290707336341907169226476733924550896430282267254869397199444195556563524259180806650488179157599933849899572396526732471827853315892631814815925763574521487264591406198663920485274607167334714668237949348255853887039671440714455408428550846702237945179366075611824811116742238818397841832991992657471637703177089654240143795305697934071907637565812456637413826773469583879743733614945311554061955828125556970750432431910179295571309736754876660501761634463515147487295552309936864882726509347735451759454677814233469027233658282225369687499367404954943446088099527301869788509597926313174395659900473587448738977219439797036317035485664059239711740415556534412118477134731598966663801235458163764258687398324091785737164594754753894862712643549816410281797701904312981542881548122688714713304390778730472801857665593882888162494890098243027752398173890049470814917023831116576860122266572120781452448610798974837532688903096581080887984629985572324326116762014598059969347797667147760252049743405496808893714142595584534305174745973475179856704227753636382251464526136101582416144094987386142428771457821083446468528716779415671643719625312836631245508881723241276796111974136082818928496994959774157998316695765188626313807962964442131240580934144823656052690665941732392525337163562349262450577431103153116552053040277401447251037936313375301196736316920928923502801605154177681852744173983953357745669046634998453833216720044096356087307826016248864615497360678181317788762007501061865568661840002468364200467062061882483852022720657386321830978241576201543059466440567783405555874974104148825877485277286312963884014664887183603649208372878409574685843181991929713552488585852030536374798140137219100875267772943104597349445857054164908729560221906370111096225037620915330509548775052473924735268216789256985067300447515316301692015227115697794969658000881328138026745875285256330431154939873671628450358710000804892600139769536422235837902919579921680940806849147742484534793758575586054379432215230315960617853023161926586380373160010507738785934921040504639006006617615526860648141927897729526974408649277815562800818852492811342493992636729624866220250905916641778739994508989480221489557170081861446136855666679544654003788022960346620016658643836273168684848373351692129760655534076602656958193242228545220264813413825859797652160330021494786696614696329208922917826208902062849517977634523714562241443930769258361988278986255434984716845680847456058999910887881277016436155477880399196940367615480103809779289536261828116158321502936866282431260888837731877487226186844526869207947628308159313256245612497760529694023574939754623634668866068832828774255883549222795388233836909424331284374620784436883180291060216609333367970636600878571277743128354024392724568769447998999905448535542797045896443166530805678489157629170592640932550591289919980546914479812557079873376509724131476336075855289197432448022577995555523693470606331923494809588481212676084917167698218216805719970820328777937170481900269988170036575457481778009228541090130345679773487279648840161540020056962714712472914381152294273712126008939416589700737874557856515513924713231993994199904906066514187171010879816791042276070273558251846965528290613672552973554453630908985203866448223667852440833910107680885431586067095938614921543006656858996710322897673748066189392770994153144942571994652715238004185589747219645520793518548546796807483740752998883998104980516798441319039974206021763764598855897191323196450287697995318108913496128934733853946956881523276369967252351197783240518206580448045532413217012678768984227063376875741910185489321379629087856956430170563837086750941464147584746984958880046824371742353450909777085623202756990779509312322733615743503087236216084028946891743324071464834749362077452322623780079569262873126799027419927410627752058202930607197959223563501571984500792219452881341253013787932367870335982688724112308706425885900608567042118855753727000762189756271506088234203041132707552008859583298483797973749040888143919439908582788030821018512614575660191392070406740665122404513577639850070792333288848320602775629096388233505938904280855356674320148348801485787523185396088300795975248501072398620737653992688912927199237157264255065958208035679127511070105990565938551742417549112602795633387158519430549192470583161153231230000694356648833087146436181169231006662714789373027855079215287991583988752602555769582290674372482506004560610207406252716777677661757289824017866798719848060564794596778566667263075267683582063619451919296232928772411240621879406219511195593900070639266861627143867407623832002900517306979344205809941453732574187086529096123227629572929324719275842541440109011287301745568901411819161704653997559747968489893245837152163340578610250837187674694245663208904465042590837511401706107603467266744997377885129020525055091715756565386577430096667071700939804816563700238204711029324935523447330757181057115477081907807897599515225630848104236088153301319134488272192197855473561044711128620384769997870594519617327637655682629118470173192094431540654475855647430108604504746426103852049022200836121357959802569265834197957039745147554871923785416861104488988912269175563699611057732631141945006454031216785749474073885958302160788177056714437376083251514522884937365371782713362990446699420681998324159018720108887916407798317607293223084749475107508072219373911143436244016259671643649385069925025544132008841597485605918570836594700342890537555700818600251730820720073214331506628924827908184864541457824980882607368279354786864548939183907394118624793674821327347209414020032765082394075197252092055446178704186184867221750056329011387890282973649577605061129995932068780987695851593445519685786650412119170887463364047853217258815642037687364912428811683375114431648935932871876469834666639983906882590212211173580500954290783334848999509606328123693760728442988792370642626087869673856358199649265923992902709409215915821914775225041404129464082089137141981486714588867877585141558241203010034113714508083983939698069304989742167083890664056465121221485802709513057986483691915307896712294629818914980581071064508343449524177382721480474714399170942593545862990945504992913916779179155062116803786318349953293006122388501578358088581592415103236586161545499397514519045655466055504491234051304310208299099859194948699696023645111407094420654245432681800371508691310770186460906198207134088945431193818734155510743514340555451095682263352763347785388206381839040450541786144834671515460843325534965448031773368180174618503513896920748701555902548721116955979940135464858638226747328175596216057835999658952318885466628605574100228660665183046570574488340965304978883007207886779687290675346179571213018857193413740103540824704126582953543812383482689286008428621417020303661930765902476545005218574010868250126283051791264533185280085590091376276287606413070309658442228256936459742222704833843538295572849266615501549066694636991743872083089284911597326491386820606097372805301674988758228874971007666854336015362482145882766734844382167321372732369020868705457645215066885810722998815665617107202883453879479232987558870341394207817742786353947703363295577368614797279828233074078429692724376334295101414911420036932256449532640211992478966526517994059295269794731610267209774230135554930627491441779815897395475095715002563638715081542604346656510853831180463974136093812021127161426059397277360985820010217766694124569394028737676936140965005307336499785326376887969856148170794427954637697641686316561695789103813725305528783239615712843084794708341388777111805923674142540680718627739390417692943132253593350573693400506419718947454952151137119662567227044133094801253349312728089631352866816667014582456233550431844134663466950724851807930615674147343512743244422082466251175370334602254406344822320708072306812225870960660247122028454464815475002643232647609563499430932911752388270303564637241027244646681779642580187508145582292668164057326178183871700155038573384696939324147047736397990085548968985042212856553362731815991280340132706384985081628207934773520972457874315102969687019295282816216011906537055670761889039033732408902751686972972267671809939350628614206205890652655068257334785356789686787795704851700217025785806482772142594280043696940193574713725546908715198542712934989319361995079698858433753869301946983332343414291128636123373104667919863711476153348033331572025375270443417696576144435435312259835578088216755168651207356617193462644537395671222883078911565201282054365695920202777488062332677495877732020913690301522721471281746856580128266585169912222880223322656309967627120827627132382167265879128863813344485391420901696856430372096069936850957004835521579634636387653772689974982910908412540935560996521564591245325944079615767490027579925538120880329189820696893144543346608195932950593000147019273429235712098525186611827767376653749270920831543492946063954785211022256565700192332199971212398885662367852657473944245283277941508410458204242482922356488577247172046967642693419112611346042375585454720893630133393851092769318339434080451140739023701044537106188229641051171032151923983091560230607956981953750158222509187110882479785594931650768476738860507003924266569540027379694150193358229793970084321038255692632694075836373579184580474584553362547079044952400739097190533028437819441042096941615393404487494136747511631692021270044841064583086235229269233545672970764661214782937176310000494039358962713873015811180832378912633354357147890677602500905375806221730928212566460480961940615600878093643120786614487337595202898502009405379780011818193163203173216468046982428617866367218084724845790263473934293301972527789759243839388628432783488905298184757488033756233585956990049093573320489165344588775986213680685995652935350251640177721727349172755184507955678359382074957214614085882314132748926584709118335828774093756885016100093458542124260009349284559997830567843999566134087042847566008907355842386325795384665009707097495482755496799061410275275037806936519957904775264896214031315062263702388493894458316479733517409152569181953294992444732482454040970079678109974579103879730492209840842451139775424749010395595002438577670830777062293428528896508479361278193017611865838730843102647712745812430772643104578192651992390360564278306811102770433096579876195901778754581180255792700514982976145668223085238329947071562613261726994177283776602345998879962977136192930027786794685587287805044885789091151167142009345328287516107659580260677876101897709187294669492126743953944753689225868775282107149089187295837259492925023369337136682487476177945497133749630647047273303271519616697141660595610550381437890501038744797810375604461487998706890174818669317089339067643230060130927574860419077103916668325580938590460628823973727768951585846757246514317749444611381781476091685016533351280907840871242715110641544591862982304779568458255396425854403156209159039420350850928831444839304488951870667714834475334070048928329322678899072572007730930221483698980799029340767942936785737444542268408918637743013838485229471487447754519002791079390577123193679287766600673382669297367683507517204857641072788384220675425993807356621263149715431293335217651284364353873029143501070050250365561194483306974250627374549966598746358146356962394475729523785157939946137513274031803486031735017581871107503171841881871097241496863504206115905173203392938995963530704348894493950975128028591274881703051619533112674664745168697265125491619220850162790205501227282001137087239631792836263332913914755283182010130395847390215737279031596790126025571271917320947068005269931020398310114277559823449900303669597263819744442740250277155393436985639828734055174081878339795784754508971214182780558636507098466364316543215160376117084016459883037815702348132728836973315632609448890191792523025874624057507165177124964166682276861917821639613585473318183610971534838301250442427832977227342054582883679812035837403011497278870518568956586905156668157401913319689282453658984933651924300384779299378345627492349436513388487736717770063454567810166830217667987362112890382343285097236238108975690077452415322254872115361217484605978585980310052527307750281937455769336058854856351290200817357079011060106114197516963746417146285723443744044500493134700354482280333803311064258597997075836376249505906008532757411028596524792261894702950247922487062858200559583405700994451851341040791694184633218348147975670504508163172311460522515845441216572381315014749667402295988452580186211329083127460122844316510938476607273300392906432582819326373741237144971244552654097670873679151862548156784845513757684418493672977035953215154701194939305883587616564605274656604238228213370953439287354847961150394993761001444124070705820169481945011975649413972037991525459225503291836198851043274671202184567804817492890964688711052779778703333759218011199772825476409398389001924026090368017801211065826072386538451905149656563286329501164571667887068428436127560444454524861642286192211308132115053615947423678584049173194850463860696600073622343943146586987308990271486408638205472568669108019762793948922985319668206491900247338897451992181202866447880534575132237164316268908672812500144117279004410784418716606814700493544301538000656000087200557859298192480449988537078675179094692091669057539354420888576308292445589795297031238603864618860272770424709983514498993183165963357885375563118396953651364293185140612787800863046353683844930297809270698830040398187312510771764057377635993093312833881987160363972862804935341308677058983173051574521349970264726429820595504618007232049751355865965225535115816135856607236224894545048136557628494957763893252741394469663868387079655935097692602148657957731582516411889627246556056513933855075865803627918824569955250330455636212707921729948092708782017670651775714008983761576924298136788871688460187369377549581399185507753082538199885661025285837916640074423755597309393834805760018451807933730222824380473930579012903603062835808559398655117640070053165068848493026415656267599939747372708292792516285603690064205126414500299385985837676452943767088905193128606229564893146493910852409243934631266251722511421559406564613284267323392321172244526665324075303480462991896725127719557555484608799828551160964773243480077609187584055297954791743680247320638091462686412755218708186583722190573958185790938364209362567479060756448499797843033520369754015039569744810371220844687579733801789725567382279668163003893068695612750630162609121023191142222690536725782601882873527420113500125758419114075492700405282863892983934836229886555857718712144129627809002963976783804136229833152949363487814260868523913080371186323247037785565848914925311844527081137056130519220897724579306959952930428782055129861894325222000362744806117524645873193083472863512308651944125372111651079381246945306137722464779763824678177593188027647669739280993590544869055287091367241693993554183152482850576239476866821174272786014272816801309037337534599626142895711978227226676271947976357017513798906048025039701894087717710557065299148437300901535579996721265440498047290784327982670184596585028169734478573979503012898788495862194800321601726074362919601974516582895173828263751735474707683664320972324199585952137844996695386046765712720340892103000879152050261820961117072497432843433620867920598037020812588366294165204357165515708175694350765972719360566010629612184129990646724025758537710482450963968606119867959019519596984572382362720021141310350528654906922279219613712195941607401842450511038735243817292782744728592419636743073247201497407319985968948459321180425664733113905859528437315880754376609982319679313090965815141005171330683588897997300910345854693883038310426184721364965204878432440105879435191421676975131897297669725026339602472497495405310518992619730244512168386880299323273785032708704093028973024958802434259457361304630573528345672031263898464097842376456702886889764527709371997079538697408162104888165477734024804731269792695167346369133836489551187348158343295739418036287178567430870199120516576413660745223837343282751084064110595105854090426016109217970059828789905011205263780975952337853729176217746000474258186782953585127855162810224524009139944475629229956860754385328222307426482505222467208111750047963666210349317339285766347408045236306361370170503642290446825343439918039268389382797329517209358699787149325710721079656196697524187357908392100183683963118773517114684642542971868401294729590535686547727489397178635265068561625116927906848349368930277513009014720563587686923462993068155882157385313475948911156717518955427993436028714365929562437398330198940296030053552202701549376377372986891895538260340794355292455619186957769666219359757330065120317430157527706939641555225010741900109251013134702975569533651550140844260785585818680958845788090392810741704187679021268499570172622719888247514233548059708021973798070819664154046490542072402180625865847510524835360233322426453084808638130034065066279660068560714064388230268377496481295818691445956699611189387748727447197642795467434411258071258046931142976708375383262303839865230096777515860758807469297489602011939724438589640379201139746088427552884288187365281105754804479251247319337512100210411392480279652223212923050126930220175160384287077921902060608950950586057514808595481978633940747774960529996331671809393720874415008343046071132281574340193437786758374833891343552301059809150387257898352827423808930275030834710204768666451403723954450936495217023093075877544882049486873576175569930125833566349317902387175167653499431293857835731632574454586493208992590404885933025078512822498706775533259713550513614300419811118199097524270413123422238499701490838524247188994503428785473755165088590732715851213202834284177552869337459916324164655845472646064147799959019607278917457399602033908966774483109614558118188785301297937075841115648709471123111992350260628482553515975617077410089394392444082431432690034146602275692851661994481233714009541790740525858568994971628168076139913343689391012034574109573487535432522014995471793595483630586078055384076208132820391453983939086194268804598905591772258862433777121616648140380592585447931785277121005749022017211576467945893806356770630900966903660748923609140144157998702877755232426073588720303727689528964402898369092121859809344699448135197020871967855827044002437372783716786726411345342423170977772023585457810088546487155376332162952677000266964538864414353677745864106348390319837976309831003514348063231770149472990124873741993907485316037016637309671754171859144128540731041631678152890927708357573793854415440128927559297709073219782924755070661007830529899820264672195648972889654554297705710714515665797240733700071376817552283547504189933319395809418509834822823896195976897901093282770956849005814244499318984079692601142962644278785854392634911243549217674780950180736406582050450144382669296531331094848982742934002459641730845413639611762249638547530353881200597812904742321707555435693009587880371504497936377357046494253305821736510762738136810180760741485466521492643533717797280775478174989167847200780628864176305856042358390847621055202509670649040458048592853355280443538405589526415539596367785437413129919256237426306329644814250821466329248292646766700827489775744704136927712395810373627552617345339440172529521558408211682099252736267076076582808443937755864534118797090869617833055341855980907645602690390505997394164281664671555408160413915168879930170508165495740857873111843846258024470875007829233790861449727686638920489803745013949322984085054020068005228903923716020001662769763558671213996269053544228295181442248495655541243410525487930549168709152716350718155036615971980988848245483363019575462613049277260987709178179814615652102890083637942065967172308482808378808541463514325595805604093446192850387027443293513812907496859663410113984250736085224522672924753305042751384849705891935991587823832339302055425788159675615681003055311923687330471612101150155895156313735796285190711224089476542905751334702827311656956802130079601647192295496405826081291745217099135669211838187145619051211793729640626062409277034921185409483998472635899509039532196540862440000708142279710486279622273702397847109252364496524224878289981163000160599641830836234669928291427941023012340974551304074282662494927315323963882428098207954675851350758004554011410917937517472958989161021927528140089901480034617695115894158929918191151752824850898793685646769331488325164426682394481694724244411950691304997938820734213694923704735186027636378845121642657844684657431180244438046802396868822017846782479876855271183382408751500996368365575472936965046400689243642911318728413533091163162649014188474460518483275988088284588900069923459403787092506994858539671712158124458611918493655953267546784300896773322765487562396061158653121129124263760978386156523337800312905282839800151489447636690399994593986503155738201145612671023646890697246176799330759717437791707167201435719345890055799718529462618233980682292197151020318908462327618326051909411956996131679445082882819956476739636155350107072414249863746948181462330315157368632091161858368834381451584015599382139625738025579555719583325238703823744974893153586734137308200143081205589540179600763540972324418127458330897825412021759285778221111312335625663704045751683027449929759578511116654342261798346982701202230341112103917859658671509356838412914336452290298489063746052688585205242516148201021438228062930328457524253508701370436405183455604540813288023339041418294671847568968625863181799616831791641084103571145612980686690132635178163252205838281912201036480272855178798605088134720516611053388088703323663368577136677006746210166491219025570021790206202681584133648705687132785758088482827968796880390004151238110093643012042217263535221298658200929916155816022427406548252016304332688374363980796797207799696860464880928016658914671162020197928502262880247472837818244266891667898903031302063590779729755679204197940457616429323677576529840855901420030940606219757142068627698832993772510082546318311142196762646562722960249031613482862373720943179676727955333639356668720230355926987012784464013295209753159677749790624394310556346563652804342689083282148451633057985836496661821163590535864509979995224513850923343226561093493770049822174844174821818410710216281342489602893480746038421452892006609756767501519349558394995544651294983732297985872450312918404792568866527651983063930592519974086065570992709368427681335429619014440183386073454656290925953604163306310171583950428386373235381819770812226595188534315541513742857023814026853528075210534116954075182518817529870445454645031267479520637523554006816659144218310136361767587727442523296134016650652263637150544183126834609001412468269688917212464455468303203763933995443124603851536999876876002026107892928813555773212562049841850362282795463612472770215642857137976428056927343771297525507392307140854687253487090422283860609184651794382365435695135840007919678643322543228847469281049327584897657156759242678346669400462496886371940404580849451800851661204523673934202666592610918651535532724944644231780963484075442052534852588722905184910241467930424597716767004880349984099799021758202013881741838258118373085585766858539630222095109963968464211446274512747032211590955308940153722290860765410508980815084512249525113678485404587972415854486735019844140169292034141715648777040535322365926334640227829809416522456317547420869582291376919285631533007143326122011715765864361151910276393241937308682302478737824429672839831084077330277136872462335717750107365737579597417667033581113144811236033008150994704496698114464503392161084095520622994515752414161432074159923854081675721800142890790060077107794995773428564724543394526497735826749156059395557770194902353213150709993997235485112047185765102575250248807514869646095697642071243175113688008753993060992078068259093476349752353083978516735513941802351713130017320245123511252214487654765187313902385666263745370867433821122709705358206454939422808738546644170295948082209801837114808536729708465902558175696553043040385463759970203219422721631063749286011796195046499295253201320613540922846223426375323284191673768189420397824917694748925126306479800646876858639858546695290538190045340414224439341299664019182740709183967418376716320111498286486606987715004144033410207082638977715055041160819681009281156072345509173148710971150697584370250215780501025591738399379751904293355547766620762561269461688219665518851244769073062783160600245268713404544502197198309213600100886700849664446206250079835042419398387000592773305979778052332058190620111730268936624580909359958147073702721231834007323401367468893120329097287213793934407693139880417596762679134350863386222860153004784691276167489511693589199558558828986882460326251184794816466745007575648279622503372705625717556578986053744483045023170224130410706693427526535310674159146482350430661725872224019528018671841963424959357147587256618080150770354398655676738556222487791727102004511961014568336655001666387178893332668583949478919914586431829371248820813558531223203086708088418881947532557241011046792419219983525725591796729466579920771253522522855377070489702409256718978401315347979154747026288673863795813614845485102203783582701430778850507494745065762744623651706158716532234039628281970235275545061397926677643562407406215586877888427753190721321627068547505254653798521114576178135185659293835006664465198624407557335034357720117346211789695472497793750692370843754630603745892394032608756231649720695169249298101992042756468721534478697848141555068065868379802841098783441327965431748176584124792086920008013935563187817757482614658226306495542651268952255243732210827291771332550336169227781118340775174491620353062119646328862805570999067208196608647799052605439071526382801197798001927810888104373221626814241903128541112964611983101851839265259785702518415484368917778765624323710056259903053452261122950606418026717342706732429792511303171234199635457912911092894993288541549831926053723189300798654714189251476416407726244896196801382277716364720060232680746460608553719485719163298837917840388579764039468105586168440141029805429456604068589974177668572534586593607889764647195924389033580169336921737978639169273635398057941480062829898901333210144122932068665824472505350745079179976266114367110329465736287706937046438067716559344877132856401971959067421593679004017434931782428796853773066239980270346810764782889557849840179998225950680129668895250769013048818524762343669438259356830918977340914892640239354115919674848708280112806372101456215156001962083033338384024846365548091668526256205386704752118261037919817339291219384080411404291615929722543850534316530570595444050112279688535772078204815120593181366934368850958043399987358274824954016028057138835233730558513319482796090376453131402633533374665139287043002547533909450948454547612758399649032458489727315242305186223121682972666666965844528644131012137334783140626269503824221639053610929604755193213882057153927779718263853203719847192419892381637603981612171747828205083016691917829802826709335011187280455080168299063063574278434786997544022147649699125349818684125340741757795117457225381802716790853410206189204899026121237497030131613784725069927180012890998799813065307080807301024965903873322702820619845422955606492586627623125569115251825096190612834689227160216863552257363999338172392085053499644625065650287347038305950187120912347221404046638009925258688620813967997848083277559217150968786771470947324480465724020686271105578896271586879567472169137392362037818857135962255249045759977367198132702209489095450255536958245001944115791334148607070403065730886811869908902174328853398157981034471002465881708274161958280489798926532850064466685711418975161085487531073205234556353761255943469575641473191403023072312173498703005953899211392701128694068483819126012178051788279871649631908035128122608950139539591449599587419252626447067583594873519067166612850072168110791223197993991191916127366298217607833313607031083779729066724729535657651412556179730786972126996743636727535082283228429644747229522171166299854143815431966850662699269736753294140238065645932538669925560233356165583253431679374546432126183020631605736283151260110574947671497628995996612125102140159359372488594705803455161365820161628218110019378351119260296559014443880218586251442582239504523727209179872028419093654006500905797400705409339113702668512662505838467997480875096046948647967716459670602778363140130930671947537610152197315100105518061537074362495723329532549024392856959591064345056548863925815389349456792737666927198779622933776134815398171524544829703763280595872275625139037838284680976059719814894721261238387856805071275831958533112096284950518809258097489034492019938396519572682693261836524250900981419767847498765677867036353819563309966434161005423140602822034924771308863515168090237898308886095852639142741627001616288639879252111684763655881755707821569908593692476995705640449774705799366796320367308998860282599990491276074346745142874577641328024887223271007722290310950988771521160708595201142080942803079221803627117632801472389727934956121643350443960157064541205988927538767609433762854136392891179904255582542736831565482733108984289907610245326321085651812263430084970935558262466287113220688809397105395533075616440317326641161836494428880722007694833574704608251392620507050716465680944678110739557052603599357426904529165821655001977037951055998379168230018019235871442504076199812096712039112398252753171164893152719563188716596890682918700588568262420984326799815248652679222792109308268557157875582064405485695254421582435961717228155656762368404411194052075399722572612496734593288240048299960199602922620121475778475363040123826985278128132521852782781822997654502416045499053135938903138059680043030375467485338461991872564922967491116985402925438070407594066000636897775210014961321674578211441302263116786904140272340596544222860556570399864964135641403254972699646224460846640491140585835781728443124628815873122820955661982248133065377156001068570976426812014056088861636820924953672469107669697111907361804587811093039168645585966561165301327616910654148195634274435407664163546339423259768673630759618655248196064555721946266269215895525671776059259453518933421922473643580525022562732730384876764110443134153223266439282383606932714233333246900761642899926110715706152037000638434513748765953856528950276576811758744135127056704698027143069718550204447708924181112530973210781777667125279955756068327671268159382140451100743188907226594641010578338183317624747798141347133726569917979261646249187867519893298710292151209643580488955528429322497169603292565975066692332288496489060917582567741034995647934554860798197169311361385689484334043858801690988668392993551140223405541720929952380398610065381576321715196505005079699761833212193391713260325154048535453504623674827061564219896643120229017857165377024887753220629926411462728375806114964257062214003025111517604137818706424367331484592108477815809654951774020100832367763078289821887694769627197171590081657742134823025264230940643800690941315420033979742042428206930784788268214799723109785791119848461137126937551060788829580422993014438807374648680230264287711763047950471570370279253757227873825698927091785086639826020366291875141469414655674672942490880487911327241156149331778164278088415000214708934223087343770736219665569635008265617180998396659231700382332796835251031046643344388382058107771867732561590251816153766846250500706800119684731405172126637729399859315494268377750011938125085885843722775811919867592995778549159757993319076412262664375692219717426610308550316767349138100901410583798719091421939937202502891710567712474841082648101545981665549764904285472643899345650797820147788380862732990298498549297260339769531898657924920316228119453626155782870508763708067152646421379570205510540569975287192866234935160129470665872253986082842631184848723544806001102945134132317098828971469445091943741720142834914991782601233566204181575837908442569388782832356044434239206640641540241964641080807359721538858447831999776786193845760337839376021787636615650667639538863940058594630912109592713382909366901819109817309843387911871362855191813612609516279756416978894035240112988120852461695393037027417963232460426235067134913991507246184403891564277042202430157283528479686260155597736175224325849327621726413246233022550375107543245078769983847518441313113624854414137720486570317613168847957270101942780166675512208224020353733427758639783495251670836348470256786192127784005765733305733652425404334997844027003160851812773871221210585280868727829675277837118372670780612106809414497221638898699097144786603356003636263605653373652401959863299281919316976638616050039441889930233541978918317232381800359507380750998700048433346408957446114968046174088114586879922038385340918805937645177852402961983507718121148849506792051536668711744778237971559459566342286378184510051677800512766769420332747643672163788257178355874354998715603527995466310508805906128971987794595908154629166027815310536788274367261640703875402375707106920692154730699163234675508924769516875629392962269239786139773080275162372956270854261249891391272694896978979092532597741021593841515091965009137137637992232298637331368046556068147161961937310364064544824514287587614802031972199490938643062175449224929768782654189352146065860066962727569154508376969306831163049203081948026593499475465047447512760477286352692425086419434238648111503977917563287056194628353030478402030884611228850306256690908169528779702072626809215854721573929880444726910625456026798031130862094177085540345621290025073186263603259040561130405595231302315245181616933131368524103031913080755143539397768711658662291528105201480872120417972633391818797545911626349187127747106232414027565695471638673169703928923542390664289505144820090389847312668620208446535495221857971522722452276268347143245918560521904170033072291268268327988998218364440770658752180996938773990950839898398400529026972625897233655756493473615582124846285587553881394300156836397709943168759566886294432944229905747447471208487427608791747411709536975313588035881245333521400269427821984143391722115267775781618213705663284584459614353148698858923542577273247376961267935900536383577005437542024964043241951460831259523811646608143762369096185790039755403725005673333407709734158628405746777716001028000072015663239854547987595882117525101307568444140213188194895142781848035337290492216169173168377993349177708475478604717503867100677178818296300565102475928333722417614280866181143830310981250561609962594860973664827556884618585309128205759840126443228948695303472273191351641986049236933731089608350813654512776658604308351527679921557307046421959223333819758407559716650684760318843471607343589384397290805921667496351596684623055724824164841694164208189967251618615716369308666332893818273397063057506582063967488162440568263750353905985478434577205202915725011056961378242825514131284859577022031684178992722450026026418747135343359295048731720087014073191690102176550743767290837889774163973452452452224483261135709160942274254974510699063266102491247612578825959260066599234437997313874871160760402312677568360802568460698239120786562446140942768189042201444806444189162747282217925846746861906756763857378789456527293546507097385852618198674357253141061787306970303174937904610469885295275472202549397433699107842209373111841147647564470673180730037214428718659718153733092466682127029624510535612420663733113420277853542998410670832017312315514277895694050668661047960888885802518403586933793519466075506688888547517798565178469391219040029924283379808698417708883371462618363600534230977795696855697859742322927036506665310611194089555124618118539563318011087248091879964485920091268142435996122425115780386359302775680422794994996172809785626923497942607829598379351722805931514245140915362770250138677625263827223433593976664438711213286223122197585560071911325857841100406097735310686269185494206958659950681044120522205559738306674116076452779321054921168456985137189974401296903422972377029611338588754453307857434165911959765059446440722227103728055941892205654701948225261071576911960438999628384863330690792837119564452204225808320961725432714400663464636151868399547499803785562512748484761495871135014923418626582919602355877758047647223602595352738333513167206102889573986215744149184118675612055349588200975713603312419070417265893338443487837535181080617520375120993412929686164242811078280086895483133855582236578062265298173878222252294178256550455616272103701204332336715996938963144151713382349723530148742880890612270627860158546698105295199614463534703480177159326298560487398440090795971162093435978245652447378533721145520519225937641558685624645842488343931234657787230918857238072848554940308073052755698977227148222374552717907234643254219222791479561596106514021827179314704457709610586440406384466750707619691857001427317772528481904354974846248025063638683056151371431079741466215639240748757119739332886145121438613785717828144461392828510485602077926527251829480793592659106581097371919707388815463037808030101305912345449861048423072456717448961248282222169893380449773191399593456294874854999646804967060793776402343454729301216873412038810730033825942036114832042763393239333254362896718778785465870835144942039521382398464848201750514215675026241316330527888161543423381583181504625812289966365596441360248156042986705227456584983807206036995955691233741490870450699041203523644288678441079225854364544231150447434531738754108281385469258855982864923244862839794347754458973313668923065906184225399466219965610830380404158950521767894872282334277439266401095577723129488868465796223878657465512908352216970759019222081752523144995923265286024944066621363146351707647249032530129736962279769241686825082725155172125304608326533470640282013800522978242269570189805970076444380241671441004305557085319999466915965389338230593035559652333900164414285096438792335973114175929847127199322156570723246037707944166042380279200487205795129013610805469189603969657264710174001855984708088519827326087394791885411709470742601237597158056122447822761171572001587392756958187197945794658056853784644402024727659907357353380431102191824600785516429029887409926314761719866867485606371067427783183095889433496927097734938683931008362379313314823176680202659633310344717914337871417747013872215792537429769617299576721262229621514432078316027844833267821818417380508263648919599602959741939429990568792512636336155720785959498413358781581226632151044963781534315519043712489376414359111185065285793568613856415725011092053818156336777607211787366519584942115035035277363357629647040603655278829140112400964596644770175196052959921306152741356803098836696511510459971041687218952065176003561938604861592480526589501710191378016436397576090534048940094139652005041064559964658808321574274964940787243872296367390207089445605131134909160360030455201460326310459331159077621145177797422957513869743273109504095648888952874722568101524797238179405935134639900378538146113192099615331366588750283702698699512517307466336931161908322627828146335029920463597456791190301551930373640858352431331714156158447086814278495041978123053356266737734492997865950482933973658736015265276915983790416487843419794055278440694152055953820612124030006546094885998587878970735973109592762603791400238153760386104200256039233644313159991174110789501464280016730344768271491506848469519863245885655924038158216093734471417243786769085714606369226268792105141663209887451373621029913058352247644289616844469265670240325917168616378697123260034309466650418914268115697640287195955472203825893454995183364407731193028475597086755515783135410948630768039549693143397893314662057030537645962851249925977361670733696467096241769425536290448641608305340717742509353550873818280564536902172956528328932313098443546855426224736908945562220199569910352493516170128421159696278437471373345964708113403766322481165225957536669481002981965335385398816181027284170780224196460522684120539226656015093386082346570517289629738435915081710833640538246865417807294317942310172864242990912014681409532733244455031357380794558356657984459140557438560031586508855532551019753651209996784172642433107741712062507665980255231862973216081723483257567331922907612693568340620107192913953852975528264203043915786973344929383690909507125777456953826843316757312093905273095220989858651430494962365655030670689571284425845544814792145269416302243637639760142834688976860478468671931950427247550345749991570614399244459549448937527251121866760519463795208376201443974371928382120176704275050324637835668657841135819140598986524049763353586453117208416870972275329902516529564943194287102139673574937469252825786489297657528595494202618095727761831589125369189868271361523349835458346588910129833598445809140531758210335213882276428481569328028519597111609860164081370143769466723962264074752444721425990409757799436183896746143162088525988620850855012473202965615970829097051932901779570460354831228553719213707197029037760660875283498812800832427038944031001033045784551733767303446529937302802491698334059652200782933200958619200277149873557126737459514794325493821377000608831411833365027102560070580037287739423254390077923187354104515049397635819121613828175774362232769754008352510400246390343551341157998015773855607265916001014072318758478591256835117468969515175051698751370016085484050863251530138019910778316791625611287748529941401653205521764196997331941021337685293594775706520824269462998228395804526821766338460335962867762493289505594044994043745119457657274267084695896943156845435625410448241616867593723873055926087881499046529061486344591126832958048485942258178525472296867475264522528079084508999104537927314715506059369946923203286053026013090543082402393510295988029246618654259445249394796142309812961165724094939308021009488330476780169034674727250273391034880641191444390383378348249410449120991315007104708637170818253020922639280100867519189426598179292549800550896003928067713161105525730138742066640032381442485155089093371957691480673501509060666701844532812266695250094998728480747376108047267136589230124679333311119865943367192575104789898664817814556801095262168890812109420297618569380968888595550558465842912222224461713396414167926608482732794358282459976367027337260123308361118515738055352341434634504338259803839073154205947588261894392499156712347958752193581870816293941807016589698587894764089951437222554758721005304048947252413994583549194369060675615332516449208620005583429283855577425638122782022521930608597301685499433861957141547193696974018038647284466472635571765645693005498238944653452672746694877843487650141446861681167346128566739927278220009006452304119176250225841232980883127801279688826533424012104781430247933109118082412445822725149957348324922734082109323294045469385142037723952637748461061401193991597275195629994363173330775902255555915991376503575896073802827043873440440232977861364934809850629786734108833859907124372256116722798644843516225236155534710648708592702109354237353219156549423090314236723093424103619966258910086753405310171357944630831581528049853356883939251439574888861796009847185153088997469847172904225359796349326296055117639168747273718256805868639304605764682973350220417569101865556138900372429333900032487558405603687421787267655025577824192525287192238215703409156835284424576001525874403414000708543717492395668119513262724583567765106966564093313562830587483128456003664642865084372558484500643577707709850550925054550224809813425339299794791244250462628061166282982891519437021409326782312883365969804998602922942484801277327655446937228865043922579797803703635647214626706275907706182774654123898892894445162623362411353128811566193642798047729142917026296623274591495211908577135762212461332808281144143242676754267196041403796464389464803247415550408869544083431709619464569930214396240901901223879383338862207008783064185411432191897502178165057211017971411644211946519695688356994385946992992893713911285869962809049392066698141629873606169394420719559405428560137438491094276456146186297869116134878462005711725737218745072539855769786266047764135754826247087183424485751975315087254610476727111761770776508304280252149791896421149287898502888071198536214213482995706236820716447148241294889140072307624320290720988365179654280095421899168741374759218125254822557137490396979494016786351838913982983523684724336577156396674595721260431973609543698700233962131941001282089326052948106720382245523056900092198889677326939869562863973460090668024901733557331921646631154755838982987847361104819304603601883693989085070187770894147222283228066502141153955347399055450956600372331306056633295896483879765034405494088948726329880804252809335611701647526090074032539341478632283798474680592368935073619289061271193379261930443146345598216860156372346748527874162167044535164793097359964434249299766185708886353515313534511447737172694780491299029239903438950561728712370082416483476563900517166941958717928864786013579495091416594719424358565297692686800148557225206604324446964928606521676640713682475373589424278020904200635258685567986941107164535478273825902756532954264194691401676379714844122640017431987089803987744566972555821284029201831388850226157632988778995301809297340816100140475328137572921483807393367700494262132976278948479263300210263988241400869956330351001908748652833484976093371803791524875991983191267613365773443145637869309773097503378249619006231497335496293944522429958393139035863084846497795104692838902193393275209704608804978153378298131480722131936089621170820913378801995966165355290955667370269547587735308915877153285399053819518729248626772634977779112676819866440828547587016821276273403570431619425233886141730610239997588119536252846435661201691264003993879850364167862856073104895853406223715492720538285390537637428635347878937247334019061446977722593336648491860206929114497362042818209939806261827077266055742967024520121666869456373177959951389139209823396442824523353755449117968195959373251104475176547589659516900197624214892857792787166864927900328417904382448920409576834521273095184749129844902139226350975980786811473347257894682652292583409510602414021367885543717014461226893267129280186513979335610616357626579281319953818494914041840677006783890826149955174633259225161277713081299423755384353770093731368247920697396012687642841514363183172729849184133770582932916507246757049221330959857550142859302742127507664105637905221874084913957611390854497538405559844439028272688259715189236121140678469684126390140695054381137267045230832757006868532383038269693880651763212640214426972557417135165083183211286210709107832455207072919289577113125835440722514709843761677319911138693817140654044615419271775388311636763014460423164333568018076095972766774653338713976999865432093989380815791652778350790316825166042001932210637200115803345225533955464287085965421605377887421373557604085113870212946232119212550378641072182913666779087033323948150099696332657636624056247036991778193335810803164489472444975154931368472638784985392469066524989772323594187081226316179994460819514896943120810959796103730391195673946131297414746910760466961731968547926227402202922103763755957006183718018464127920995858016492861963294137720361922824112030534242270894693850159085299481935450460969737043415872085408855920758635650656023438387624625485910821733801321549700257622479489332559559493820513537092231914668280474210237404342302880654581067440599639071783979151619901174099703183952419197213572742702084124002103256014253460559304693078819744019429793834542644604052037022907116074163108737920492608231519019821720665406852645403652238108684556787411986151911771460762613314305154926585857458249621242504030940776531538114309307486343657857509812097854334709567054076176195692766107061276117264382036498922224282843587613650818939733729287353603004021569423995448198593364544615104229711402604600212131917464721854718205128376640929914142296269854710674236190520555356785271970731984362089731245902628446153162540570674688748881642544440242440449788214074566259833233071897730516991934354071638066034477349862760166265767859931328581608652260361236313784861832038515588485767064547462700927279969939815914821547920861571434921584246679674762614530983398498186073738236620298250713862412446786636604955747693974867345168909325751120161584658445773158460896976879387407500691388375281654167818253525082368638494287688262231348124607492611495646526842206677035111077735120356644104097742565088621078102631037505575803975768950367557127250547122489028361999451784415230914542628055314269543158012511484578356120012807542944183653279391609908199869598061067204167145722667778589813841604885131277289769864348546630742512925054234035358378678501352031472320161051057369273652162341738240557793599941965271940384685410027914354774249602366937016138193562381728955907400769220926587372529140554660775485737585608420367100409252267558526291296298417826362727953380313848544968432754376750683221811253951766569266429308758897049450859078539178794660003731433261748330422091831689874792631968222449864387677132770061820333497184290819421629548512148862770768120270145003556326250933996587291946239176059938024498122478752848987623015410473774136917781749703472470914996755776617383893980003246834934172705644494750767013529914191544913498155040865213985207118848511642423813161869979990760749825284537403719399063722863089807575316760025340391553355303128974905827481160640522592328468160120942068463234190263517370227512392074545802275839869313306930688916941764453880117759121482204558274027924887223705421086899354404235737773035270230567892564297434532609972829742477461325395152676101056826925336858788154839019640127565681010544047902056768243921950382414898082465494771428155963565169847137481018236257754915880073050106456458252302030513854016922981742896112341626528860873542928763197924817901674530797029131716953325636445669154528021581826286109435317154884845206331434099195212975946595088002441385658749620314011684068460344710310049015390936910152334055095152813246065315721565491962555956739728798016504581473069701993187452236435690269704654724705373695945640556882432578131251476784709444578891916098889048031720321527774354666247709924982762174902678748887902753732353523811709984360659240103692539623519174867431822919994720797585743449914245149229702194199881687724807302892110539970342566790562781041026952906101307060471950113610275007931194416424129385970203907523478862474791647489362813888255108184812848101448616360499419116843327471785770896087760627862330314569580914001205319087837628580803603191404053232560967865910819560090828660749161273248063160822153950044435888889918405724246891389262427381648197754609231978078741616320955356415837788924641347838290280828095568426071832015214763196709600467339394012483208417384210090853503146916982771991562441926886238914238558201375132508739616441960320857780223511368928765902487916779144705154730428932910316199679718836856539145549249473085875575752801858916808683332842228683151429340768725609277011008591277870362775178424374785932854533553632980137591805877527448809666131788692135356496251674570571181152543241752901102061801998257250685810388520631785268144348561273844822468669265500412241756238482786473486575038751638561366439952084603760290731360177282363404419534834133492196807380740745722560695663087850360868271675896615227568392007961372762238016043922416736780020991804940119793264195036197669520126201432621889189389157454203321146589352465660619556807179272675866560320755929173411831703565333212005871091553966689166415904046041814075192971343070945154130749479904253655875848255963010124343158407689124893393805668779607476455075378576589488800488274161610475850275045677296661303143004380320016092731076331504445094158585837048352305662043460901715122494816260227180391817974319302524517926145718812518688640453783410875103064232165952511132887825252333531974494494960406505168792251069239614856259765541287536820796494528277129403349636190285177437135244860974819785506484871492036936253825051388191610599277566143957680971100003034873394377015788564603060567575997746514769242920271606901383131469383026092445443923700331433913445491833473266530465348406295737622886600269119012256856723288370781026623634118964791210382670990620832336048989822373801353240261669845502936057230187400385339584060198293985268004377432163638656931939426230086117453582290363413908854750022343131090675042328938550566708833065970148551627348363586074704870401265930702226693475636088729277191465337446032323207657006787022296977079998733302553658467037628182944889628742724884151046969615497309714265877690281399564115530398200378186319028354111134525259973563351792262725751635453511188311973723759970094737580174365482938695602953621024315687117264474406854078535160746325193870352843559929497960703835418895444650869459892181079585514661217539030503665678295939851980503986994061305610964452712323987474777849755603540765118243658205280609492992823077016145640395707729269627909575309919638551370712040565915089510313138353916262927231667540841337873524870582677329473047431584674198764583183263121751373834430254506272202794560388820847110300646986560456686093340286496904093309431040384475161320186390739559614500334323577503009847057118119740847561940060833110249931324197126214139602986012858543105783063079522771349118735380657232757441704740985516131271647948365378700182536120264626572221832896045303527341149286856419764922025195964216451822761539338288242033774648532017649042677851439817056263044386648271023384705320543240519469634955193613757726186427440868408348869318343919255164572869049390169519546801248654733065417948027760275998641012558177969271868054708862402124024380589766340673555813140396077830945302805937612557723082193972139217916637020314106609260363163802149091050736735533767982622464984955991952527729277029524474055237987983572509426451145610204112343054616718971246704230815664566538504173001270324659761865561112678103612112680496658343111168957683264609105082894000204357402113391326242673471860113384362127600907533873268941162772585326618360752444509528288710994028120882697765457408644585947192722378929079110977880043709675036063102814672487219313630776619541132633466640420077579457037707424638705185658837469367928021770326949775002938685985747178385653832544145284571548308606793386356910760695678361225250056122360272476724592504900183157246756620312188545458165300715493075954076942461337360071132363481037903661877358319466027592374245695119297842291076770294540247055537323792883212311636364489973420950581880222241354144249608001023449452031767301945945748286918182059155020702821898046344790232357137790527058909382996495722302831549379055965077394089608494475846133397902062687592199487801968352312534093515109322475667006671599416188080049299870274830688435333701188328995795879024950700285148965117326201425895789523879491803693494671828456589471574141099972766009954729422400602116149320068341798312247496123805026369301207181495930850333932816445474950710228623391407548883659197027653281841381489693510487805476222708308349785412348909373919396467744381966678202451936657344676541645433765103612774157453256327490270494974494363762311472252675819293219641318078704328204548502363233859051259753762692516865567701047848184219401619299328338899422463198300318512781546269715629158734181457197568795501793357369671516482087816136008278880849589585438598039470515472908817663051216293204325966235064100256113525415371959457101658301433707590160559379365484969112462106934233107731709464073776656219950724711834858853358031319946085892564343035097668985146175366526594896416091968820030308892943757092702685627112319704605759264065072540320731926494689780727165261501655262482494388217522233516197085587962086794333485625921265054564752342799103106674570827931287728811903666688324137776868394147028874865526680000320969426704402782320345693573107049156603237466592973078127640122383698637562356432056292524197440118044644022435201179657884037019823315456194582759419007310861850902927304402095680532090749528724249374510455418487573055795937356547657017112313933888459647440803905246619977408929749849669272949433352713600567911590610255558553402268473428690157496303405036464085334438390212203085795790186398236695506662121802903662198955289440215953808809529927063634194538880956572047854912531997878005797939614490549019614338650152216136241857652821489055164017189692944006066590132296942199675256485508165937662488561729244340391941586869504172218148985177381515982806255264879918388094622800819470496775745919291407278104439158033612088140275632262411827816894024041936435489293345829245572253806553948166154928347373126270193386919753570710651680146235481423302769866481783028868061787119739452421422262959789715619155398705997634363748254912007105719630478829471860119997396051939427593863715367241959311563926231725989211808628262372107506224743954626883526702491993642358208784735806880753931153563052043935842701883635950353274747665939569591921894138111695623449861935734274737268793543207385920903273087382182433339738931114690628291861122728421426478909573898815652195075257901143163609305447483321994025129807044315767789028506965462246707247648438476411053819467510889443013097561502367599139821757888405131484961335056528770401338172201303102800046857370054635754383392415709489586290401108946053458521782259654720984466723612783597685804418414285960256953218050455774949776885590321908045076862597553619481068948204556604412882420333666998101839363712728961314131570792337356207886979983934129444145326635105907509457223661926637456565003065505842524114911714721533838073571848808636283298370218325733109320224455094332972032659703346106904451954497339458840096514270985393197448582576839651972692340351162936656183938952291884813726292187809081886205932288786682064526014771662104803407272723432834742673866571486861984539239042105081958024136939398056552790136476958380546375864027880392333192387820022718284693599472011888073162076723574330026919237742243997917886725539176974742985856863545434540877975107370889400683293485689673453425376581933602886858071453273408163499756361341663243600724360907229153125973386675369476798627355857141559854902740041036917497634466924502870388527965181302436776049241014440161871169175771649102716015240698537112647851527318986624776996920135716507380634819611578389029054107067710271419369650969027950484955994926378079883604794170240202556612141051784079333230556973868564818532912275098621988261285890383219994727305721115261840168081457500455093634559732434830335382550403423354843020897989541158390312574645978795514436474621228131726182829319381485334119099572725616750636357015290640965160988198577299192306241773348291787032714205647771040361679538870938630678733708049651865793747464134599440332248910149463025088945382524483835966507137122809147422524041967403551546459806232463492935240622306004519622443014440441577737366475583658200309710283058742165950422600609600278838421766817662979306990373083249587033962195284359566189286743068418527173969801041062006800144554326303814108146473479545862281696376653914065941013078053700679581625156290018907787796401741842850399226968960816454729545398713655697621395215039571599835632036972240311628900026718733451477135904370951808809686424678345935362776226969875815183243539382045955430051047833966085818827548977822232252366510981589293698343452140026397872283344660256968918902370196778193472629582263067482958541607635879592403895865235106011267830063096281428442011521299063568744463162516256911301259218618029335071286793142594603557524619538257605330907591173235464215727225879239147544915612528780938215032869875520119330481491187288290046032698725523234910569609781913405783330281202604997956199511899263367824439117789358347190857700219015705458717088252307806917964782677211825767089277006308170991937832732466098470013963971860368519800995098875152422904632806773478078096240198297554428947689086774908356730684267043067522649509869052367563597667390787154525880319852025945078727427281032468992471913485410850751537622969053448243840356607239134104374632245541826002176356661626493506359750341667934213382039309246985185939956459301373323623827836488778332879303630044510251693599723396318667637660692092417784255824220620803376194072152116839035912819660305699152373252945942879578407169174020855426893386460696809563656416335916653409403933857619759655412603325788672765526422511593648996234776822224567843580911845233115130490401234221875964969904024254323111974341490327748202607527771869300616590057030998709300028931802201128265084945580584795754699932088260359792154703693247927098335370584478409523519166636688124693465355503394679934103462874713849369553466185970370386757060129140734096760865270874743293490993462532815482119685168525364823619470324339393530057658857410439977408747291436231387350242190043893719338858007727210254840179730859236388713975614990997533952955978999063520629299500851503007777801094986691181022257177816813892348493941587751377275194469037413648247098177951946791260997862561403272456481477236827210711388807850825235088548629037453173247562955714141520223026338782929369116348491484864947162394316853626205671706630542042867721475559547205405988415962999863760022537771398998550561349620749462447978140782856127910484037352307246986227182965335743785380930833138106317006721305613699846610806205255048880929310056937527077425570162131698026603319847461600731830790077241572149299026104044917084547019896433881587250563118775464657354689492379511626841848530704899895418314944936559548429149347563638222867403968873910957754183914322982284774411364129094831731710779681705837622444440092886656933987280649100388686708368256164391360717765570133182737589312349878632860246823945768514072701798943478838753225032628920482693487170985557295939279131733641365942199390201756058380226653389810701861498457259164302352228591322910477292136886224864829483562611361864555834283404725974743162348746263351991277729527543740499269882219173274236785336159219537781003576278449622958482628716733175475260705677885187963201192426276713548883272945816518858004316737911997670264979349416814462746071002262959037063471593540387442251978647912480774155169889524786185995346259402119938751188794031989206049162693114072924210344089091717494046630738338739597109142563879958688149852511591011480925711675004201824329308364219487715050748326263580657307184848091233104633564226202854364751089066968484958731582006347943017768758723881595776368596884541991116664907286115347368048612970954936548465515422220488555523800488274823083400876858208492916442336127862237319673651892969316002898047319406588762433965431722235965363029222997143785502622572487765558400045063092304480995935764631280629724265411067676280138960788144361409054911654937867276516585109652490312563038002658009668422888716814656098611570042610948626010727685172503789847172807526527582395934756779524630402124242593214055120322318077934431684909816900524733557002737358541645059741728169136079769130391834615607848313536410416660305139169724248139931321757561817557233682332696612250892264169879456228264186182628146432150826104766782102629133847965945918938922085034727806275879648650864655931350966791493552185315522866533776035742608678658863317326821205449913013319112369590198471166211399984785806113385743490449252499353045532735478747978394931192416723481760118436017794445287001130342819999270146981249761314908042552161534621953901487323089981275021535310353510969210299025129248969271671321818802269388315816712913187892673791818145319956566620565497976652633409371672163380671779589579503377640718559225353744927347778781479997551445810201106284775529415316954267294779563744257452852715815786275063177312896778707388819748516184003748690951997816162509214670745466284267465046575509833903385363410959497647879040875585174606476845684146811953089943780686323482415190072364249369783277560241156288162337739424141064068229220921406721967119732064288230451995338795084884097323207311965861994127932620960508138638407386490991850002063430056172463403463631014308035054879642877178247770565233242594781143263353620531903784576922104915777545557866754456081278281060492311195440009144328799488104245467452252207387131013210002347703040703818424409968972930277253733565745623881361393936995651830908728191045901988225269523839176347091050078239042089921924935767891776514741680861633474018032212264388133371758812943839227594295003115243801907458233362526093383166682255101557831001656518321372533680026197898766973224039368144001622761052847279741835385134394478251835237593149701054172762407667862124126631177750738131548019145190037487395051337770371431307476377521081872094385185327059669039440651855777161598266940213202497729255708731523460999826180886913636592992231651531007517495260291876096879461163737655379022407307517406421965960897322408643096503928123692741056757966824357220303386787409977990760744601780310317217496034738666379768407050136006401495686881040769357881533286094929778694218359703300452340731312768038706009096493728899247034257748101492884682476203409867721395816473094372779401830102934402254385430336644331386775737008335974512750353086282916585912423328903651168675816376388331102713775614759690240626902112904083736934751378934352622672443298661667227109004699439541363830211924269562527667155691078575610884360380492166548853193744083151618396053014393137251577321148686514853701245307829841645515443333230179400760398496327889308316719633485878762001529724083227811736004561662647708174038076224038198410507216694863982108697504972149796865167310967684998735670106393441375023293956432190000984913998262559571234725405054730615521199652846176128793176803489296190097701822300785302776481017085881874277083692008937263619066798768526912153003902055920189080715606520192559954866456602115955594601628731888857062083270910434436033646386482653526503454648363760260159540867027296517278776133934697031070522841790197638786510244156502566290314774126657241421849103692297256030348676294664742928236093323904159637951258219712749429156519924421675423056919908823771132185826398288452470048743970190783366354897734703625206864574392471186187765356907859532997426694005657199167567427167667102418407879492179360306141017562085393768213338843976442695725872498371753545708223562815226446523466721087039241175669912918245998719668250576646576661902735724066316968585868295693380670415058781087177260088499789193959629144833134990901025434664993703489671283910013374571961650832553464113222688808318232214061011293618645467517762493862874195562743622598978626538852503167840562064493554811902062367551143331505665217376890546309674720025302257777402226742795423110424935598017129907662281263831054152464700739741680131311744713187083182196767848521190606557152446067703149445889795913097328454582248936180791908545712342534261501814011111149369540718957359137054925017824709402309544873184111584058800762446816007714844163352747072559867798702003612842406611235051855301137599695958071415924145711779457921457044107181398181084319020220840568832536754826384159702350073145627284839744789826852084935610045432206682780439486713115803711410890152856172919724124646560328853978529354344153210240940673129450439501985183214510483814035487003811108174471248265826794240254333789618372097005248345953266589871753315346422915849257484932697111062804115136922451748156562277605045447655582762927153188596317414067222097424295823574247118143789241760623750122034441551620388917029614456841414369948041333789825942185664719782263240907913234241538092117953655071806449456594264197580290396951048028481899520929463564565972515617324476715982104992172656597276070248755670582912772216237722247797098211170550512140526320492661604648384492961183376954141024290089536990122883881619389146482700758233870526258610593899201985505253091284333926466348181617962566772598417611565458750117524393134324449909155492099543696704914874828128330018928235052988515979932091137208928013464304183826299512472665361446338275058647821563963298145291591573090044309257020501885482141244588964113625248436268176697830996560867090943471055717200501013894918292736269621789757880669747743567596173082359518398036756867137780040353573412215072645435450736378795925525303684831734718544939898521395044439582932692619545689452951401234042230539163520214629404950119946194163496734415465854296207779367956211978862276563279670260099604122493503139341584793066701144248197899004620159346320861202732186846106198833054005582033110394821498249105546410867757871971385412648516996433164536554263696211024322999405602344892078824978017914480364019129935002524427279807284976651922657379397930188860439526826320761205685396796787542153211217474074602000359996658750199655579990701261666534060682355766947537725748353988604978982428556821334298584615189974689774744742523075444117551042338326046811255757781905956475546108388273038917149757041871854601093068780368996021526042033404338433191390486137940249285470890282845547719364958049494225644976498764376674736012506063226041405956226219130919596326591315134607245093896967964541808275134694974924412767999595855180846839701784974476503037498249464671856836826620693857366826544677687528043750841772714852215671776135635085681177014785312196503402521920074594629617874188314580123460972115526187314845723249706425713937732573033511577859498905408072115788276015911224330836640214731860457021613614347312828863049752602391612633807002902777142208949722199261352846303358089189868772557514939391219761030543371535035244576784832058604249053507442390742983132496388217730976887144479269595178248968979557624998433771207711913102955183803319187708944895890576518241648109765940258605426981533362872882388659654058284632771468941281492281267007483230158814373153087654574915616452709027214229113777718815603713406050175965129295681868012706183321782000312239685478108711180310980115236375635597664620444412337481597346213390038913545831947649618669637962521214469403266564717313602146587991574869153862127768399540151438158922048704948081497724441711441748559664495304976940605948696017009846036077365267491408627867705896826286410067401831342973163027024407130284136351367863803564042591493347724768960419291815618993174029156188522652927182445786380634690395786023189574977678946221680046498451737496419738530290334961470741972610026348432708168103315890530748690171937835104172772034618982960212941511539070389616135872620297793768746911854593718185294904145218486363124929862836765160084506802965692091086121149894964995777034044695065172181961875696853076588468146425669767139870795111639916445736947962602946440374994170024388020833187070261692423739651206947518355270177187099793011215487963420384235255280144711694843024172081084922275059244634719026849841326182256653341979089631739101576293299523208469509605243510340994933660295102941572151334725314167729567925880810886627311797331793159783678873439581716024452382917588606049875669447728163831995904458159138266964497612607731587629493117539135356468708156613236961583335071255999842443201088196607966644435138936292127264119153756084582709105958644645907768449950784929852670195421384530562568447473558013606286506693220223899845051564729675133090430310046619447605382372332324436264618150317642855652678065852931518663802000943426988123150696260508445883682580078063949722227775617148102976712872569311037347059799074451032518367837627387822259676526498689371783300914708080776091702641340227150837006902962371901701351305547574859626761925511477343290574642719171290649199013431768515339844016771350882009401504097652511866403567539550122122510283445370559233283966329121993705406191011129070258232248283906825340391703704665516328796737289413213935608733148915439953986794318296168685554336747467061878914879128872684393811820595296267791574558804577767847130963117710353554313191383917733155698980673095682280775943133982840633228902736868558912006164898146403106955936814150425864502371264907941313091119897505064411344258949930259551675632115554502539708458299237483462159010368434189609010158419757241591834704845109399303697148616758521257513766036475564455646311988153679146937432838398805362630981276934862813559064091254426605284632539640478056509306047268888917675172551217460882410030260986835567758633768961089973685601323362706539178942959573192576920049699018812358002320998801485716669052191106199048529840994619838935586358534459085985554703977406126831491974522255484732228877934211319726901620632357721314843009676918014984706704886373498526546108224474780075167067971151950539459874774943924141137126323807717713155974007222484282611869286207443949663225281887585387503246546933345334084967136234764525533020333228945941634126139023492273427048835150952283510320139125938701071655605911815454535753623321141772096061264176634506450289685366612282407038421659392905488667628943465625915994488733906968958506850636710422583779039850883471292271119337162569711131174944415817826017806758625492675440880857514033430918475030544754221025795865085917783492127026157727117501433415215943340352735834489027555853323418231335657002832679278208542288564841911533347730090842196861461362713200569548150184222460240394986202285240984369289993233983965725990370906412634206375031826607530969951710323675195113543944477818891535864548246323576601502374416904304374924865358348999792225337289146927263310066063990824781169993041494313865039576198553827402273428179576594768389213619229707186887889235392486331270712972119502410331803306216183175561434147567334190235778542242824714094434067429567551257384617293082715713001931245343386199025467134379450230022530884081879034689969951773073869163586201036077963292358004430181281400276244452497276226845724015926109479311583098754527917757744905866988176018981158433423320850402058457839950785784449558835933086667200674972484369811154834151367145739472650083792323742613203177509373904574108603936610726567109335487873672277120371550299471756589254920328357036274896311975286880883043257509205879067846670441668953448185086877349797567921346832323082182039148247159718600319460292266250371647630246986444366236152245619296128344501421679225000248510595053662377753598568315560700817732987750277528806010349035478111867827936765147508450865398857009395159305976984560564986303412924156167741141370647700140847912821594619279887869685946937316493533062008631113217245929625573503732367860240395213393318361666506492253807269112518379409183915748773476259738997630712935447304054559086993527246140142909154042405081696522275183029739130786870693180777650797681756242536250583513230153563272319454630241018482740250269309882816222446081377924083083328532051801049103135525617252340347428690158580054799798416690228320275219215192126517387009884893615402598330200015710610386166982018809415350531349172279265602727962665415840276019413297195188907599480464973534172960296380502369472250846995461300090057262280909898968742982465691056634780773926071033010667449998460894406615210909726441232498786980905046339767512437717031232689496271651968409809268770371541031342763606619691939918497861422190860501724326753537228365628828269190212409549794461863757412543488425741883560233149846073543116880355373430423958994839122373588008011705920613675564274655373881167370573369438351265682480006215045123221428920443777601767246563508115346457922892164979329613884614023619493644806364351254920281948482047494902616672047692750577853500768003098947006651666255687316366918690653804516679066534369952099964788215201137153761826685260297729741215402344777642898472854095538918013239060434829410490718739268824304710073498136860823249310955153741396066235897600036670104012003796354671964146970642224359696890505595682641778491755537712674890715474027959541643098266085730620750385423400159094949679294985028915572019837237546482438080353129082372257093109111716388262578117923314621880510341828334202494224171554751628694495445844466446433972711478213727365995793169782654018388962255281148448962454552570472041122603779174611045074298863387362556015997635272601188565540343197534773472433977476995745926319026802252795096314296472447873882710695913120827378223593677538307825697786557921900290423936769036638983819874325199975127118708984194250549768205770535114161866337875299001937392911175653764083524074090778651601089471422739402981932491435806968230716524813739640654071212420948197491903617668911075243395334573067644952627790845724722348619579209106970879368396667268332117066397378602445839487391203736888184493804633841722334802562071320225203640246725963028078555947757949160921850911442062828513233837594660757590276575832660784722915277971867751763088428431419433826259287935471909275942276526491342694564567980942075705554478009421393471058415077854990314381072743968931074564634751544702084396049390522348758398778700629719949556911327333671065519930586484354258283182628237127986270203536153906198591475775809285698947115315842281171754972801537801033461177800689048338086082103864067632385445259969262030267317035661471960687688940703772704401991166519482876965608120148749279051414952514687967334871726932824335131170347393355570202745209156241640584183672465212372075803218452321261651844171969104826327735808518964000490185433910556397565010110521143883617012340636416271030245375645280107236321560384997095036886625712080907223506716462707971768845944821928069381422369777321950815409943014829782112110583105497924208204483531514120296381372005419930646682995532169211056785056148908744455444519091398324351568832961649532643872339965171048346582492186287261317253726504547783985917064249467325492169307900445832044468485220546466338047283099756756846167459997273962617606242203562414036609433675675863576059198389330950927229288710879980756497480433344216730217392201840033401549993406184890261003877950830820131172564803239558278054387284259721528904468379124096660736882781245715550884420449337176068284045976700070241851275850093963244157166572152193803065405851220785580357816212658586361976686505509320784801449184900148486187820426302519624577220534460202055749627692496350924890673698871725599684883023935994267767787610829051347106233708190449117223284552870406441753491699888420476861486292976181394630403112438309917891453818087399597516539243859365653354818006967194651703633059857679551553327233602271362646350493706884024474687701373284502614251757315089650517173891916780474206200702234932068956719345025396121881548520604010560159466328055493498610552693137230920263368291965729503493705752559780130732639872553425668228478652769157374122212526535189721662802273717947183903013859059754353776784369577340754978446119578656645356993656483859284078235412272279224307945985111396197245329595398374043185907336513212034501774206470165995055433081921400557656925459515869669836678610713042018680047460201019941972728161100015260783649729918050831206993401597074745247961545364798500332674749670060408486625741966600576845645455574592462611853509285571304210119109150915151005380668152591930360549073617985945209436995883288683902988504470074602263839597369873462985030104399061179137152291887504947699841935322787605452919762252176334241545044840535155874009726259627400113440203768927231670054445345538634130786788261803133407851667444656342378067612491146852838998953653733396246403535457131554963724830797616844961726537491283040916326743562207362760885139658775689981237087007837575534918033217646860877672095095284814553379843714582419776717135976346504089700686144815969463292381767145873017241015416785335772759364096594062087755010917653957176700455582137523202533742291888709085567177618393141284881846223725905635913086980892579410473659168696078726244459896809774810336477005651702008992162241371338943859919835191319722446378866400992710532769398098751305078343360610012169966709813663115704307078090923841925175002498495326544711805625868456411243595310720416773537497626705704217201549243612261582961572197416381388559543812624538077349956271994089869935871657205571642761506079037518369689321049964153953919768314196048627360594821696407224155156559716711790254111327765155013682560381471089081920554674424611291547596373771887534871416940529950518210320930262742559689703079283889465718714229206805415919463473448961276001318059841754817186204519289590316957370952420247961990854127208050653742416750685191554203677378642140212760855681597786050795351009085096632150545492003138027347286989392530939493282143173011945031235805398555752282177450027578966810076089413080561913539837882988130214245693041795079671582585772905042887204994879492535899943425490738193733857967930092971692112838877883293956982702622173716323690408948617431066391359403479009642936927713202132506396697105176989433883664310404698662751754343635207213622356317834179522161840554609897973495098091435551776673084908142016183116510465217181227403890869017017977075775594303312708200686083996260216669074654659784817348518191969863439578714887871851877810129491595776576172833739130390336095191783016313673642090676134598427387168565247917428359837454848796733785546186882932548424001703872245437191141912698550015548629981663035951419654756540886571479218788599294033519462938616439997066635520667122605601294224294967926865128239966378230586507605346530518088505462901501212319990753936978549249617642681517823741506510942884418430165978595973611305822905379376579654547333057034758128032946557442707050872600657978367084119773228151537918066384633805362307886286597237094957319534480030727712989237665102264895304247315913127223149517511452178579003432058360512070941635127347331560629336216820079499286359193699134197468334164831863901779793251070813702076381790292839098039203404430042795125962991059833136137088016520948721430217830683839950829079490499774698264328253250596741302995551292731142208607816733380475613690894881012955305906656983653335876885304195709424349488752598719586500595536845473762651813640255853401130211244633973340648959218092343281164478287353250188597191333160547747890229499071181099515115110213101129374570106303824334475356258446914078140220133241136300315147828382354028620391334874919327820344832056000086521578471363679626070079413468129966863795423250870255480926991435662167484947826297977852016333413594141442110439874021358895056879277309717787587683727090388981520102980669218773971661938974437888630148321394126038111616230361045478287963662569890367623601000275797603916807321996944406511273334302620173075343887992756411295376985221010633975907417853670125718516352924943954279700192306288809566973554514559135516467626055538092621020048206831808762083816459873925169261561274688871055153293986532831946085347317127324494128154750087925215860531074570805991138809322843173721750111444600688849869731851227270731866020255288131223599852428415539041403022209796168282186759810430362502628412675705843735919425790050835535566789852717017129703786261348046546176115012104576010297972889381136497095443199204737820538208497351748490164788510169590546923975441248424053258093348015328457612399932240473846987455609327995127718861025014556545524396546892793684419649716198972887936527116425731954022866278019363194958425232077928712783021705325352363597015198326216813046393365616796701529752268230640859665754049662536708514027570757299913680762868881310130188389149630279765641104247337250550508169475196840035208784788682040596852489573819816361443638533393509357537906021050267290801562912649709285228014704440273238177920573133477347353953094441048123947947456004052575826024401002325347100454245566684771607473499221980867513900643639819567802369698594637477852260964070907592587440130665401941697481541363483642429624680864517803939985531665284274864439444312701086719956975370490467590928348918345530608050762742237995678023869524935639990646403306603232758737786504989241634252818793814498168236975728322743227738320650076668665869947187037954608705056718191920099160450594381766085554078696253903287076827715612952849338366014549218748230624754393678763168813412653185831954363255222734309204439363821948274566281032645018350830644268067095873989819906692695219939447735838683781873087690752116155946005433634934577576939395244191027559394922058998184909066199524353117173002559402398515019581962372695938683019367567823176413654618461346328058987166027267452344633596567640908435211404115368064660244339593413093720834050115821792413536001106101861810481476535471462157005279168566525187983357358705634533199281664704686930131156604181377166114929453264574199049120447330251783686544206191310189759117729764098281022099623903516745186886392165788447718661878147043283806240170483106991564510717589418225718756237979938958313576339891849926110129519371463844491793438604694969864303114147261408829431306191193113745804976993310079734859238321842516880156006335869040812710138077121701453946075512783675519920581060827028967410977553304522498977868126393290913992760799671787516477982520725805147388620740148037817934614943070028270896102155190356822903297721266135834086127889838779895853583212737777574938976235522201329883845130388573708422151608216945157408759504376816757612581931724195846306248399008084576210006650884581266459528614206700841859168169821187121751747997764212919208274783288047963769592613353896519133456807845802817968754106854255684565094928692930718559043531789214433520402721672689892125651099096207472577942739552902632609399315583585398103609593937117656902472195234839751835841195965340394960294086503680619782889808079532267513325835485301704644360435109262769982732456739129909141165762644603985176570652799492606115004818978471852287110030396535415246856577562413261013052898731053176097030453420376579192812646468492730715155479700361073811789418711820457058437791478127380241158355655016904973707983101454485305379364044039000415550037096106377231409073101156086860232657530010653004786654002147117247520046169956660114629099774387775068782858923937201343584940585249372239490930278369440726195418740195729534202079407347185455951914060701336728012347929248548391560158732649914229182954529354766183060739847438448144442933403784494000014737815639455747576153713512421461871156975728874930258505549984362439607587885325711092842026654943705490555639812425326429728757444647757723406485939583408501343307385291672423227607847536489259742982990551612042512955788654859609120680924932588687643228958377299251786108154187936460546879857891539076684695753608013872857291610230177254155231531784930639978372961883013195379581973709233154571568373542393323057151992904740941149508644374585695300067448133143804069894789520488658379159794797975312174974497906402028050791195219509383379144730977814228448348194528661993120864744029994498875963938108836819624466618743487396570696549537187244250433175435160551918724395724995699333464623300770686607057608599353858058711298895330254669587662091141637459804760960648449692494879145717563306979144690970639633308880235411953315747821779692713509710507814784354602259958088415461338248690964160428165823880366411819050630448571293349408654984467112180742441572336441478008827743979555848716600970186940360830512831321828472413930970636821725817850115231010662154946674149517037760082963773160884866733403818312934004309866192527386413915496532365249161605761134325745260782534821170880164632511336594896974693109473669087745503469104747631481265439092277053225326956403000425515632968433901230807872266574191083118330289777077728089031912556004380489097022437104214026830814590815666182817307249822425836997249723276720701075363910075217209992551463776916073249892032159540842247108029433661277423691918900914963448587203115346351599442497430199530133277710487527198569547395198230967871336459485027215011029400399439500385268715051748250655453987381299439063320823432263745966550377410954917966139668625836031150984043461480734331469133424646791158387825822358240905874368364616195500180287288441523630275599090683355376099154644256998252897891735841619568177741422259433182127826637162817294555537741478993678272177660059183032182911017851410263509806756718650321623699487769562179559821407906154174466728990423876612045441963092018013383476590971644398336315321680066417551219372004026920346555469902533560760109702359921311785766963629556184921178533145146597712375741063046091577777291028415711254096226583552301504274395302985951539974688620896095393228936293351170742361542645821544076766328450763108259698895784415256660951604210388978545346395577859279807063759148788478174103075331289836136214897948834961522449482499431039019662083276492450119083897533572320446150521114582084681335076624387527711216429326346242330989212723341481952427638135789864154519510522710847113573349314178281356231197007622281808734611685325230392435270250693002450980429718433527886306798913585765928771904947892512542627275040279470594532044434252952088513864501558148151745344155452479796280266453123199020902034587622868924360090333791358312770001654940444691292954715534310856407210204302646435376543115719284261988561874207828383931295796865174847847116928745846122356935468232274943497872479632763226613112597754346109262397050171707273595486108607253502616437414672686761893563048201363961322798014739388934308072976158392962055785478199026179235089824005186880709348685407387984484209083203862571270570878668324082848241760055021412174620014050671397654534505467559365543997274111842463576435877987915431152159900533835063343826349674290230280116794321407150991931875288376887855351553434193101362917808570737315259124375912631010702180504903847928989250491531957665323732892858361749418089905836391356107145046993466215596064224988575929979156119938286501727927724431965485978901570280690062693499108145148894783784346484012563699882009894394013812429794750270118602725034407876751532365545690937819351696670834493363833447244554411248966127844208377789280658206084842783731177760588519975516184231496145481302197906559778623944148865078858598249134272920999325916134985861588526442849708836727101277203095571415067534089697325599142595461449570895441927684768997374087333092194819138087737556915671123356187715752162855452533738585638772464514242239356935739981792005072069145553956749168054621232863488306646227694141375655299755687285768435976692141278161057930602552375346349471605468297746920992292143491675358973940541058315094152104815329752902777152361461479179489837626609582561724870081162364880123442524063238260077708443799164153900157139679775101425814017701942863763114193064159755491374779043526200721972103816400643928622240525706631044520548958579167716945346349559650534345841600542727279310650018724020538151804494361657998002136364704680959230542729484924104635661000808323657791302173196173926248656648320666673244136005187264807093473188164271815844530431701231288976613246112360186779586688198726610453176823308792897085100358020938934258120537295053412221838848286259238116981284672170546504536915904826461493529092646890010323969982742625078653705064346118368764729587923403055140244599977275647082982000403635909122890486785364569445104607155823452894795379874905517877313292649676317039395076326146918185499625306035984654882934443682212609887097425723153105292114574995483206604174449554021149747833070486254505363803046839346409663198374152645064097631366236570884026585110618099062275940197762824359383660495684439445851715166300880508315249560243667316063512623555724487713797721030047023505957142648681087375932688734986925604947403811453534877230792947938128331956875778609158780373771402946573910925368393273533684406863965639806817790803337924477455841817408216781765438310468200898281599929247126048676230475381616351493080852387187272273427735498475573322886920909690891707558294498054131876583994519335183469937881530629383458457040488051795097980536834202275844160881281329433897330814897582385764085815911689252185983765720492257484643649578431222988868264519528697503026621991297669271489035326951151714565870582380842304927545005974441699792200819429081478831956741541003728294635780050768218925412552669782915439475615105612774999819594845815733278682805768242888224594482384965109140867239646031963123746017641888300823361880786825844143522834762525702019143646962794386992621320142875366513431634659339801705374327526655730689060491268436140814727881211637194236565065615491061045530442754164048108427311667498768578180243857072643695222102128619190405099064175161072826533094286440559300929123545026044857549741664031110423313168032060701261964206980364872859430381212587076452654889371397133430909482674149378337463723302669482180503068301037200212175399413662796199655428667683948211476873018899037609818084099154091776493893833432390927362430164277147604954081415087794954735594715542207078562868970175372231481638013021193073223629520227416316131765232357811662305577310982094178778488785634157182295626979811685641912887553208310451407050004542758923086342503541464401977931374015433646207144526588916595942429939926290877620247170637721372527096823894096230232467411846718594801097911456356545433366464729350649671275493984510417889823323332438179216016724328318446314767165783363782259182916037452960778576397619677691335476801676044755980238209965072621062470426470002190108091306758658516412827131834500677611060459589926520829919044147081133547234920069078083117475848090588479080584350443664830744177955419966689720632020182175261206942918377574548493229812063653780120212780468137995421783153580671533645535930573521083472493900996409989371018933391343896080657554036909564889242252087740307407710698785203612330352373334687060192799470607604256768677246401770027085312635973204773236430235478954993322412467767956277482749068811789090006765196894654159759853509390491719941250502022965390224514052097161756752977038953943942477151231785378808532839952188579872875151602201333540090028298791641394748995454576696437857508087840158529779475670729054026798504068387112084089155481486835104066562358627236407945747987341697281182704055164619051061939507552844468693155527286362479269339976253598229686338458442867319651358454229385204563721859856194983731335899079103494983895407454209348913571890542909050372716768698798319310279730986156950520004487154630478575885730923972970623988321989647048327372586377875421321354556251254251559027957984491340825589809756894069394148464428138619351183599834147862490722088831848089044905914606645530823457487597894842738696239724129898598184127987776543163548657777105193979142771481697935058461876568852768011257585032915800558316469145432868224741090677522493266121019919939269181370431200301555673167113598545557232281183456081120267710256091734872771733445607738229490353210956703092206620768643800863837644915272743617138872109466975228759819947702868418033945228394834067442838218122075311516699022301858592085465359995587518300184773680803729934755674672541417334872442635186066950751176694957263962955307455084070537822243604227264679469072167535945608342229451038768586017729693060285639319121116416204897346392883184167008693394171801143681188265668098677227257895862702584137862619761857614940675403757340796124705512033056067052183058318270101201355290475697605767927404046448929479994567990156391301318092744985683445160678530212528727839520700403678019364663799032627512678307363066059979212416839372409959345297772345239238126830347622137035021639106440809351157590280095897296479047480050431199683668039992221216427963162487461001346771049598178986140580446895397738860608933391635907445442301981417762583095266099226835153564106193022587797641061504028392550032714978787311586214289587262901166875707296739499657541850059342353703958812477882854072731013065047080892393727284059751859979185641598405623265166354857533390995946355438044158173068786475154594663274091418446876356382915804153122950131111863400312744373292999307596724899720471612224744293991641123603527619684720759802640853379979819539822523706281446076916807944564615069478439890205939663817367366064488644708952691592479133756315595746326694612919873089445480204030276496752054674744831683250581002423887955869298435157712380408907401312063086515909927188642113221288480886683932984225668352978475405051051264301330067417939340839536295990408044542379680037166736178311365335049473076714321736245150441669322869148472226205332493022492811256033151197553085459253190779385393412197092250838388915241234581594309053484188117466828734277564661434553898859082979901099479395317412430195230447041464597550333949193947430839746219119942687772434287389474882511634430939324429877714820591875128648594467553588368798770399324489465835789323428858575189336684096961448365129283777359042835085020179064636495644663372297997508282707019324629569235767534484421800346951914345717974538159752082334295869866690016341020925052675098849869626117128292181769932848792843742318662800959424152180575854880728179327611907266920801804186208357194256143778914257040200043683249128289972467979235554946649498112353198550652052809076984720650256385388597780782137911670527128267435249262080229807056176269017374320706577377698567965482421797081384265648861326938323443132421936183446975977914101939797787687127440369670646108784902096475139311773299098578779952954148391595186955011019684385203154688956898328572346023417914718393855835545906186014763141088316987351396260458474118855997808909631889895854847386460052274534567738228174303986937579436952567403453806894015628158913921267605089730807812228775798758246415586861501218845459964729869615503496166698855693477662254823628107020205281239827819057518150113333394052858556612523888076765748219224254310991565338183996220285912054918708249389106457900206095376695664544306959257097328511677053178628126368802936551182192593884154524683942547301934080473676559678653287594205336120979279834879392584052172053747410919771448599191014718850689331918804547904052477568658582700100490760123243804479091660809432110834172278246269919895084467064197704166685305507811609817492236279382122676789036586689379943990549026725453481504156183670979402826358090412611749519933488369450909675372722958462533516481477812432387844637734343226180087911172985928010833433752150080937463291381547076192123351534083477600622122813625510362901679843758060092950705327933297699874637441963870637010587525236104986826232795984200062529761762525360556618472848757893642991968314901774888486379481529999910048619159518334333042947797578273000848859029464945753087332514365788451032584395512988958016611995468051179818546909673522069697415704790498383420720255422657136452955169235795332727856943590888904414166823045799789749464307301717102516580011185404835298818025278131155918371399382451521275731247339149537988269030648455112505822503067136257598502584760312579955046009447061606791311010155299584973870800889097788150084340592372218989270640021022305968874647272931019456974823462431827046351722545938235790511025111947483644531786666950538392746935095318534817791695644032920134430225557925615932775030632723172303420695770662949501336295472104179994815719174314891229830351624073307673348010511528631961388828496451796534233499066064825401953083828361381224058535333807286511004922118137541008089967528916945352959975391546236403766401871303709662452290353829674268397481485881609040493232199174101213973450436140476736577218509434051774955759175972323643096033465223223285802788838428076511918702991350942033061121641125390310664115001672906040455242778215918068304039589285117561494729211520561707924494958928146757104562661901775578553872339356745255958088403750220406028405357739147141221463388421761421083544017484120183240061130786307491523727840023095556031096480748175662832203931074704830768927172109441555833871095262368613180183654835454317690156788860424102178824018431793485400017167427952197654325129056938545296073257856184473776138115410762379935810966741662519532534555104959484571539397775465677211731191796077574777180458365488325255561674178921394670995474996269797497893406630065586953278179710012961098941013342565765763204934036315086976282415686245545489484530182116535311981003883672930535135253647658194831663819621587772504547923398527817054310290907663996537126925729665959537897718967007581020870990572100183431991335099605671038623032357680191550878709292320299295961395491865232691697337804302718018434947019626321033028189698845489925521739952761010777314394313664105210602408358064957601141150096541701756007247254861002138299193774062258362594208946513616689775508107603086348153220805507147342508370983481102058278541378138717235849554089921972481559862295650748163267420136103458867044150193245729153757064037862639869360550272399643096773717589336631495683074820858978084009167640690965186419267472218648653120534774963475870015324241020521179353409541822421169255678892121976766638328696226026023181103339371637825094620180693812903544670244384127133377439453649928005998387455214847506570864188013704467799983494799571677375734175455360701502496255596601048363570468920293557292537768385611158094008743585950980871698825960436506662973817183012939162456493030904162983223565564684661075847740919687647922859023904130511573427151214322640900321196240219019734830952538851480406027146122554311202524181926551313896751084183641375429298702833651255609870153378537730473836332541619742966954106843793020934291048392377371255205946518628538119927751479502906402727200132926907691479773813407651806263578398518363174604145298507534203910916547464196976538021189205057355650604337888123099136780036379978963136797664476101373557760824781372894697599791587885776374855421837858143032942371816768874413604944469152590677902572633423371546721136805846761136694567733332613920355622317611493322944586777110765720047282792493711430510916336550242643386140639912514469043375236256720447635810830937858716346892441799628536355540317525664624222396929759951560900709575743716310968023467832407642803822325059532865519781293370695883632687001876847416032118852899471982411104863362630117874670723377918153452975514217767103364793084573637184911662011812594719652849265623768402683414753656452355708655975232134062894276054057469656297793414423515038227616249847393767263192290715498727359194227546508532727821426720101029754611347296194874230845502688368496946607571267909782217195427962232010172810248174612248207783197914021413233041832270426707459422300942050805861345875065323681154486642325571182227445657098393654074591601548070349031907082546472860360176781192993488759284392110334351762497920093879057645006083721531113984601464975586597646548025217850463249130498422968685672433198062902148526587817295660812400405697488436453684071454355923611783421011812467925282832412331409979278716544580118777822284537485171756010342043822387199773989409634147574093366800521676734619023783872191055801611206170634278002772816067948583036186707302267224893014238314219662269641807331027929487634583271883529692355221379260119097953444736537670914841995194913920694349896301998707182205791691784027353425255084922095297702190215440213949003511041195916522548529185893780435726329950465145730486375417456542651462348455956719695624214547471199271539290090730847325943430454609696293318236549298903751622868290721706363746500607026770644352463750921032959421935138974535105064344604849077424647549871780319883142539156947364102489806419574978980436052315844248601550969691626898909057210372454397620463467845955321940166145427464227774393990120313772124232573764362215515901870611015548531074631059604363633986256886633134165167294203413710130467174210682490704527053994222177164879610800329269865115330639302604074116033181933175384268836487810068109556763432564473672829933994158739312817978758527897232734573186611753096324809883478750616564248988563784954208395044556091748755304481527013658654028318798806508279271438894794965094498032577395692821373462224547357439727399769116849182088977409302509893607792747312609979700859638546938617411745707612505315865412883244163728605433942379568023661950710099587246312052689139568825346495371113392573616325097931655742250787584638860086784555873337506082980952387628744817396389751894764293078033830934686857942918598531722575082913284232477530397022987785363684458087744310216723717249762854837862438749919396123108034743109579749648675600030718389068225339234728626722692765504075117534513611993247818153025804046674157772133721495084429078456052384696324551494406079249789956046160353520936149492053207112611883793320457591657514354132224153839848414213564463153345022745878457650107100706888400350141427182168360402187087566770314833325269968522645385613724658585478224779149875495273667154701314006096961266946968887214466937796849176321652491187566333922840167924972929863707868664674172778228256378942769761982030509173299917122876625896081349747786739504445024468812469194781784590691178411451960601202776291209916085606593621341485621261553710107913299052072843701423654101243792982998712530404950862123585138632767674258729370339731440829109365899380873528769386297550626936247189355906547607718964367474589636057346199049263231329447583626878424030972067973402479857038052404282872486394120557917287683248985090255049609006659106352625035261007412927754277925435182237799377298512481761650667142294980369010073958243438721786652468669523707169137875554013140662747663519088965768254546896464957435820673680427916435590767271897277252757625033007360740496220218020663573909498367976625149123033123130770547723417814453798808089779645872542397344010932355379106670988187820404021622106025033404303214426611475240238854458464313554711112232138469020111778742225106754671389833221993748422956783041451910441823011294588146161396200477356252313197225694988149245227781284892061524471987887918794483721740571839915595894400109528930137451056985792360775120736124058784985260692061043070811395805952105023387698605523140114477726468365454890062231614477513220448440737558797348648035715733878426470861380113785942537946513793875026931812018293286429918414492862693851477507050420369307033287156626879743294898380742037783948453777659944521576564070128358507641429983995241573306928607713975289369360773584747353899653871868436468281610433744680211028981822644884949386090030808972386831421989046314318196933038566828580432047821990316336659930745876010422147390237928138866469109712962361344640087486184217448872432368468367965315820502044335613142003504463881465015133901788278879786115154574603633825845525349286759540964422417697872046071016611072873270746245849062549496939416161260006904290188230623664710555228466700141331705030431323199670285937893494427118266695576277231698017240733771388999475545789846381479051776486668374607909808453139458558280084426594540451483262007855930502228629259804894085768970594089322632854477319874146609610117040689313594175750370572557732584123390086580751103285609286569816015148153569616174039738331165117648180699888716491423605041494093576071471992690130638755624898640238325859441078365116330705205518013656056470800396974867005688855907811264707678421255699270865729175946510168922191373252914636233440267011140485607801991990833900386443206831251772569307745952718454849138096507527627496326381005963317666480113506304754516936359423811160672209272876019579882220150556210042529676007042169609195218064835713462649740904007457619532218780778675626098822212239301875422926643809038403455233824807269604703339365240738054297657135101438977657961026782640950825738631288180019969724860685699619215568891833410447249564007667254378530049885329507995956345870018696983724139138042139074751314581671956474276132278541362507320608442083007213997968333956874828878512650814421426294263802723838305913591698700774416683112600122382826859053678065916979327704553385882226678377426953407049452347894330646531249614206077021240250715625646417507942539877119298672999252308944375545325942934548728871702594598712197943735349928751378372003175131543629625375160028711487884727028008255945867899232621465333615690046565685717318507547181772510184999332904949848936852047323376717164919703455902931676019941072511220368663191228591758947686022601953445762355315758448145625170779868020981854863849903156624996991484101533510378663424850210919846702345297595632083601639571845049720753953553893326110221950477393020949068482884582970498397713456708266530126177612781297622933334896905686754338740031506293709958665875345960211150984646737180513871285024403887942100345922570379797519640443864032415171508158406943371090388745962260423518157394379452843059221775534491735957397480368623454468223233041333723913101117881360256510658491204814033183849037768306407690648796260799209291929725175998570794852235472428222918510810182047756350854932115951643045389575807104101754385800759669117255432078061836410019589890306619123369342470473630624932407246218250789114602817548829867585335169938916240507729228770764012927007687455348557172038463764935380744289894015507799586623017161629314478030998361158854654757010235475828496634380686210300886717893628040961961809888615158460267461101522556926733568602988270031132788693508554430412167546451871218094020733257942731127458225146934928817813748586508494402761886480590374231516076578384183497580574808439082830910541680875048617772550376801278909039961224584255713294754296913330822574743533566580128518834958307558860589991836318192103670452264760310595417693087968342679821952607889968187207063670311075060667852741787271092528338015343887462748467732582071272666311643296639661599598809529817897681971042005939869406264118585791101362939694989576006277683422806045035366941926743934751743579978418176944985798846983994392583110776383971728530924413277692901601224875698174538567437892496943968517949198467039035906556291788965409307757641844154975905346236357827964339085533264553139716300762556278658583238657109046098780012035885440038800504786747727276881994664575234219625113433423991012434064383703194665869133300650486825906938594879204146996386250548473283216837239768573606322549852028596877754942714982549565571874460647541997895274957518356988944747084937427960117151522574715045263208686367045349465339115552435878828024747021135819046123879191468251439129063714083595145142874206887508918434590038539141122468366408702085695974385279304796975382097214322705552061492208481105511375698227174208035597614515273445048452928640738784848971102095549951308046008750291473921313487262981477522688422985433725920801818885059391061075144565108166240086432527940904118050918186797179650073296478746900624664063363847448588265513414560982568205844560193562525873469025690213160143379985279866210130394969572826309072515383050545608685148739096945522452708806349763734540442553024520772761199395216357076666314987115198730303672320361347502177040885631384640292772943995419498419764343367573785414224871161380826052632951289053162858418857625801530934224556320449880993000874416944380974657418034183002262827655982977756809947164753867066792715062472756344053558151392716784203886664777159904485641383726576380884684424223945314376578476823945764390439009331261183969243735955382644765148440884410087191735009396094208967568626409431389075214107221769379621801844518675279931492097443988669358284273375150081336226250070191530193825315088661299518809600037283344311496983185573075379729807981965429585387309332744201632973709233868639645923198085288746444424997120436602354878803033488798192760281688747507542965691393546842179393202210966228572757145389571203135896591359781127168023372449549777047282658851382509951814360399825713679261598614733474077889645421423799151326242055892013651545665667455218718474682276196507679519883995613081859394490157874447794418578547397196372368741153317395792744986686070854783457295147938986453667329463221927628727562994130686492406423110442577628292706611872849098652751912824693002608316821078194292584408855703731423442896618085006177699425835385891965886417338683818049605904723552234053313448775510332586409385009528516309683546250739985099641914526544012786067040292214574235060235927383068699135126828053814799377836617890913485527821938865618466275682006807817493046508462879621179960628997279267599129336026662051082947422845918477303433414735547892643786526801513817577573211934659014287530228273509582360620194973905104207040813909607327786412793411123930510353488977294345883308426434990300893169525757699490141758804753269562637052445783165466595479886784240961061373784049347869334384612278633744256356647462881272779504312636323735779354119180909077728531022664572477862630457931102594586206472257095054348889322003057394821332069646131896307487519134933459594190548988530411321080551017897631650754211859798321410337630117098749499303980126219519213491622782814750584083847848176974952197871593787981096559034931656806299945265822699295040572865848030002023761208437297599811971557530666419721657504374066928673615042892269552890044263781890625065556211074333753797736187795921905606954090857232651706253873684653534318200095168368347550413545311226086809712209815811277955867760977506585604092137225607852830709995588811588005432995281026538166135538891204257860988227277261500741751981455171248022982109814542509084779409488688649426774651182183108081099851632958397246774227462678174109162146161109429848566381386872490270056893257675047799379885486344431510106176626428322836155546207596119083759179526716208598944097673808713296158759804281878465803886152303799500275859580739154085271366185474045319921321203896792042036245534334163994857326069461517909556186343565596720511450929748292437503472469169411372739085094016398093869070234925209443419931348579796766125581979113648995094873125803043074891551182251606643375893431221002839059447903615831557537665004550876020408430374506530015560666403411541816254546840124828346430050126672612424242394031648665208697218443835218588878285927962051723555323523947572286715666198817004127637663123651123793750301524821048876073128132224885680752649102262581756759620913791987835398421472225722687578580683188949360553229687567496439942387593227398967015277540900404339442797465748374773456767414361029193086309565408829961777263616246105085483158934829206886052491535704231558002443469277492080625815412217128836389496427697703066425230731153546375527191471898561948178621293482830466910637960528886498047463440275785858553203720121290011518240512894785666821371752734223603821132464409951626590190423247257172739753323356729430803453289568182222590626405177918565009416234416834571645489214086059135743783898963800275619178982936010449778444911838921313364932435508931969386291176471915273669914510340683754159618188731722524475346641838404624342709261938089014301669366699336225681570413917977622180863026353550542555685913930509265795350702935111403504898980950649827913538683229479545770174781005999662038480289236068084617740917236157239034689974043342558096456918677845194712272730677725784102924930716214816816054904534204548125020190857720859235885609313201809239184304157124669108996062155084307472883797517005961899755780881746319667042677449031789326182649993906626792166630522658520887047749626134304302459504482636311592010812628045613282334575944573500394868212177031501375842719996336605857531589761498499646028518519644931276997066777775868577221488108364072343322018551525858046855934499747467918380946112928449734460182224142439104553792396426351687926031545472654885369059775187943163480970510361780043827862314641039382727316689223540318299072613336384092300417633698887056543970305980211084159508072013034553510025160970056973994771060975323149114880528969890055043099776520213156458025931766804920730529249049707512622299774843097308411612188211164609556964817817433934978515099209829286527616573469854176068731824306470368114165351711680882101254974352626190390914994125647314465360402818568017245455327869873072605248507226643100034883972250374623916784807144163344209389405297442761990211955588073986967208018017150610445443722774036093710115308621254495947041612291948208191771203419575971242208442735508997319328385836062297190980400680663902164802125538000490525996453013140280799611038274129219116827669099802127311856312004939138694953716846101832940763096974905279045382513464296260238032240185960509265322900696412613802956153044210163985421337774385580758145874300856540069096753026843054076794638429692532658541490888944131503007030949079741274510073268990896111968674764281474237508611452740566391993478563378409528020181170202987587522663795780879375025935113009187102225702723221599625366176089291465632952408221082227849655611109906414275824787353927283693535635275876178311761501182507295118832457152392571757592819255421577121005806603775053621727354567536005715654696678212071398586502499502916440832528870440877917434617754458068057162384695705676133762409252293995218403086547728291419194518076595537016726399035827670063881528435793021259618165309376762274173764221609059260090406782488721963562764450499629231403638169238338654515113556853990688988234026217526216634606689222193915913590552457658283053430966227711468215778025330470645826958363620087697085775439241058301658906750276333513197493013109672950839995711085520367392314340090969717176345808652676514925973280179783235359420751618815281831906176533398214584765951454989467167831983599460022921284544566752080140616110787974460354596880212532347936855102683546787346354229598822832322995864274279292234776285970483010263390141518928718526282905880244745737274539633508025071281194442110741460621850752560159269570198470411045363535803249908944256051907127036977407661084765882058511464657582546578484985859531617920049804853799922673219056562253502208983314972279545690278906709368865421351538194241671289590027651238718992250024297023517247758529518844255079834182480088721957311401355005738586923849189904320860331990247693477181986185684558097806846181836802989239937694951383924554162461779227093583053265144868371620164318047715542996302859829967905610190053023624191022805013540058591314300498669733264043561188527992821943347405178592199342440608513580284072522969081819257538022794073248784516280571175406222874641662278228052828155081959444124414394244412062030097833136326741443876648758409793996427757914596253365454248711634595327392614399710309066518387304703558140189710467097569285159956334120416802707076251701655888144676432199581400719097634448419314463242450054231016097912659857478936299806693973736711578204724941806564603855970541440351456318986993006170588760045609306987882437363308848219753370658988588000884558729241791273090257694592074571450162742026288721776246250836657301639131741578617665466566018775356041051552564950854073525206856274805939274619454925200732087061993845353787928727160690946816252892583913136471865038437530694264529629923894635521036408002202454346658392619229230042679960260467983172821989628819782423829266575022259829137372807254838334731804859874532986243068587522955932296679923094026189000569723651416630752850746529893599221525274478934853781745527981400541833905923003726779924287894631492258650177046030865752729076597948193518867703525742390575310354691379265419268133885877808157471887841449583516094785641739346820963728918775509574173953876271435171678073448329586529084619119614118261336374857637679937589431981659918546764453385389273268587853545607234189145884190461154410226005029898840822272614046440328177917818540735783939532282495796406359251283249647215711612464936574347941528052228436703435475169003874632655280403123269369676862054116673788567013114492707423202644758807713907228946962856083468584386184881908923857331759230664616032662897570748524364994163129799837424533171952401228256414332248663367473467712317301871480251408786996797011015507259623334802702901406524894537120639838724335956205993526668654931334014088150681372793983434453255853761740939675587014760406091077191978540216205597114705260975281921554073432587185986209779702109749966627347324708013860880988112035439300014846255833924593403796546489586997645405160632698751755343448543489970394275044544369393510352635257358953064541785122095881637712642523620527374453190374173022381603677139875453976414202465182161881346534744291213247316737856380152461207203444716480156892388375839254168966975398992621862445273732182959815857459734862908602599389684128242196737144263239467627685463802845665158273062038207747912853987334826542558992487958697914161351055978260930593587912077288162254990633987378152329901322670400822924211566434015967874878968143797347795368883095885595364940550162237174479827426259586713607633383778288940889968737176452369607145152664358837252694192784039369878964586644676774010641361120782565147656636463816475086837125518891307747266862953475075519487316519150446803018601921841519057234635385891467456245720508421428587519664841648894246716694671567292878248795603370691422352304946569222950510632047388556737474224894297870313898570191278777323003842364754852316308591810263408612103961120584291217349957474123579492469146050345351737268855940114695807965871483623354596804525872040814163577046682242671970167622636589485890071701987778992279217686977919694640248338383626652599910671349905253679437581457214944581371730694886236029094499315078395157565516397747792246352188844328648328446306454510510384077768438908269252414501521815345288016323466400229760244467028551565807457640668210712390964984688967245838077792636506695417852780865805703756806725338793152762116133539626538003678721434183881061369302066613198859413444418226490425925228255802970656261454719192377862105465778857164903602303453163175959957482943714779429835116279348250284426274998674599229630478253955698518492153367002874707690640866560425448449688649241409170818291567870813793622022653997301566540170158298072910893592701670832978101083321538393894287388040783623760412636587393468895136188459112781994073549223126387555443700506759232068383550131147524025067649564550020578985832961194527811273082865819225261019556941632576930701373265580494057540193236691664856526927038148575845452509031416939756634188672037471403381859171159668691446950989661512917810451346588943996698837267225176959009542453734257005660494319696828643584344776987392550609267467181103581766430301381895061448866082901234345208916675057390716972760281988865075344665895863838735312335946766787977352822192451735000384063465858709842561327138220506070793250716558706567840066527097907806264090276788921953311516380736994196822895144477639287764637888331854042975309965452745787658701140697378158112471798152986783028238219829094795781538151655457998867053643525273914366543309134057299550776370955883680252545162230191912380094976282404073561769812970610297939478868376431868520662546615334917537442250186204276874512298355660610307569141019232352334722219201496958819111372218274785918903265797808915493363067068292387328263059961725707618350763611203419073886656125553062504862308897272654185674074654076371423815795142227629077663950919809892175207607053326380722095067928208215903496695537971242765976055406731560767649368571507454179796277462466025646375690261387872270679734320705439234455534492844276773853327021976021224452680744614926769700675246079244393360803322879418419572261415940704714445873360270499351665842207470101079225664136190299425944965162712363356564003399339258046679697950821890019066012920984248433844121324683044022930099965847326657271700003803494305287203784100545237269370597402848620104102333056619636394299499983091817137356873220297139945377885027749866737828035315849096818683010565682433339399959770144542484202334468641465537180856469262775876495263954338414196781933086295492818990887860029064098617928916245139238049257349247492608171258195325402111202990745448829014736740316500173685053686978041084792216526946046722625257585662058316266637048052368129795065734413019013606601241272546682145090882145258565415022313635706989910611587205825423176086328925829204834203044274481745440530712294392819506478141570220633918139117407935298721360116161568409908711411668696073587675726112281270983636221785465912185277625199587222944547678708045417553571105128225774775907623447053853547699864804283545428765305575557340602323242060417196179439786700580228594669279899713479113160709513707660711459465889646989226674493990488810184513624086930933632516542807098701527215713146100618635675247697411396336262709775902423062610848776309086496086158020509816748145935216396445512601208916135739591497289549786465760500716053217437745178739749004538265394257404683267846569300550865761058694707657574690612710737586801434727736807729105629635497062309860446334792242258931770637271682706093047301313589594401784987913065742882410918847675635009951725621537885433050250723915147005691275332487970219384405654243651956707610049111594266172944048767177591606737648160694765041377685841980290355884994503592273197001753230173063723558731964933024775633912334873818087805425553794258161250826230170275201809051998984450960193698490698715028112986903523830615241957744033695365262081990180804576928361737309914883655225632724905005122810660085481867213436121625024566201340115029475755714042443173799717918997649015090906882969364043946691441975061909245543843491604079468639382113821700112057136799639818655115272790045387188019437989719213669745980912520030532249499279770668717659391901909425593115028586251046728748215253595223279950618513741153217235223690200230483178336882593597830683132694534882444651683217236839473949423694483618793159777660926493073188194749482153873311687212095438968031376718193879842844340172538880032341953431292841487146054132867742029482977033945442360448583833375076816466799631501323693007364490388171305736561840918416919885509559882297839390873929976457120368140161496412743112229434032623541746385781122725398738057583456683783539071094091746466932936364827869346832687565073924015180375312367923945536817325395660401460807763415118136713910841797977851430155913210748657575534913011974205750541789421709797040151119467190642955223943818467042406709698525748526082096109629360019078226759525211427898428357481568137868168614880056630818896757933205218152467573258265671608765033379417801469970742255392693921969884519117098725511761444624205294781574465701722584383671511650363948997250939669768134622363665654612732085375344790398897422810676116654138460892324214982194634519178411188703955096825176303107431763114500614370046366479276240966267684725906465891147422304258147035820710259951842509399742581354933363742920530543830331105977632189098441842819494638300358119775102286020309534377021315672551561274831123504963893769468185794967541090392460129232829914120458819461268040246449997929022896163070776477563400405978984704594624160438903958921875404087704898999054395420233137968667852817908693976988391113677052957603339938680509321003768292436198980829533242283165989758524699712318020876294350724249500690619877011284918982560205236306368477159859476335845728974255144316829326521617910077827490202316719250991605115934504093978755594100666809332253180246695247034621371740730577966220064639207540032954613287548433932159536605591960027950898243434433062114720262976792465099626781333580391884375825552054379469916498371834082981104014319733642311160426833113300112879798003089302645827866018923878804481791575539047555568361551256077127632073192491641685858714195821288860176305317764127749317556943455998019196231824296492032106180548773653194456057551308365511144009286206109033393897845294114314879384465116313435382389843981696239008640548875875603029234320411473119635256730058657711023838964068755929347480165968876726227665607754333383755704810183884126748786508191836340781081742052961397512144894533810563337208623185565751843580169854399056854538213505171183445758028978705989520155051538926195162189744317315857991575447307200111517215724988501402046830506662136962063025533694233812024370236785657142230465309979265215986193292703148984630763815987826273940016825854975612975600328400973312218073011817433366154182735027163704190230305949669992340087809808707091014715567397650796915487933540389309230430781217723701673621890258474331115175535210357646951953581743651913895794603508507931647629781204561285225291899678362704208958550901774412127298321612235612220533824885219079848779312603497627418356205169355156461552488790176315336799526375328744558312142293223832737884025272732582670861804514945266401226504793831670524016982059106273168726486353211193820759242048619111073594772195931060805747085155215183794337267587167488733338244403922920167144238401356407992279211413335988144235580348705193674224935807518697355670231640929658194968191636747990213934795132834247129901483231995187100983499652006326182893665529869225262458763950093949524665460197579887777592199101227503458644439874485410296813851901344308731673022562136978421614709159975377068189242361094939832591762726682574838668929488996154099814898703599243402654998655835166816169364352978771217252319395291590529910993522204636052431932654830744486788680105960090644253071241886227035872202034125119821539473347777505548075449066561058068055596684591424780224973303596546212533719435065280828488464221747646341335834830733844387423765912396934632341094600471138409094971039191564641119659128858317823414514905767321011308479491473540801854262682402229414872094963117994952528360794710025548622015001841977796348171948315811579739444933282286512862920839696910427483465697357768469123597629035089101392386462384660765763717530010329001277398137814900345430343377914028008028619938126413919599161183222027856126580660162196233627453433617301034608907011896598196405407277713087133378083117547941607553714645762969529063918395626836250875112636945826973623410872063943058559135021399015640913415024445392927114668793767014355020641476375409023344807410436306922881751210642108174667028159995236217734445194941501919525316549032963901468388084874515106013706984095589929289262491429834203932546862763429693576128307495979207635923163456156255119092098936024907737488080736463614542914903183565501950201436935789225146539126080355351125321455822460541319413487617272852136177940855519117237959905512788427391748812777184008036257779653929439874778111106183211823813866997382683934242426012927271774183955897361192468797554622250534567788180238283345065989733701874903700947412228216146239554205451463582429661493751076770063613947911469977556663540179540334343749985193394558312588671340261372673388493196732206582469823820882621591456114468689150985133152793401748476190182375798839155060094634304801597728670647420654922726609240087720677144236176259349915705195125635238371429960955768295311969004176498361035820821883989801366790898422350893672181376774203295903437066723749422034175750396032412481089593653056538642212010802844463260226985917220400002726466265019782378683052671594476027226556728561289084751516818490901595320692259889246786408622891471779945084089230767705017360486537158997730495945594531014091224528364437376149147694075905939687987049018438898273178256235428323336208750370952442636449246687427162620231428629771520643306496707182028132775259636229306249529632717916036909382801545356488832175921911513371009745522687027876563474583597327912740662419060278128257369922748177829537200604958734401484010070639555851080371753577457228648502276892031032727601878813720801356788437623188003052463078272301209091137903219443255202429280025622077273119799796652050303145438489428722549859892788427736181522076731541513385455186308975964262785002517802635480784738364034950943157372687629092920823405910378537470176394809099903188905040742861427257128877088225896913906023466230212127216296709212466218802019339282725399379095683913436247028423802238677922457501189892910592234184880070947534344850017223372696145063432232861554963465307570054907469727378665792602574257291947025750019989065530768157916136601322711394205072830095188566004078039000118469541458329786253747408664318572717725760321114737889875236330726884020018612087719679897630092580953730203210042835740920925259703974341084958873091616784968687912276165003048120691370747179329342277361135115416788343480363143487815981302269320883800738641104846240071439216807726990649723118806461852993358921547910335026065236034530683375928337191408092698493737583506014529391682062367209834576676846839758057639225014677540934462404163633371583204945021082815696324140818878912825682946056802484954177462613357077400100305016609233280663611397564098382415468230299536544018619049420032308237320356785398858046011478361578946510254333012745142340809536912131519467747978720982869737748687771057524117249334133703074997572705894731591176689780332005645949604677219632421809594665562950512934869801667933302289078566057981410988973262060876457164821123624953447611192537213346706858719781050462344612166174499422053319743017919448266291076446780320329481662101019237218335708573492098735352545597181475766711134304931498696789748480301387557609848201359950206755139018805240559351395352676259332432138900400873859165923874260468319914367658396664196770650082957132674215493672584921521339899086833038158379121820516239536325447814558873935079244074369368508828338384930225758602895612472533130686969476292267150341989543509345821429343400753565984645392074329478579687917364454539654642710641390572412937332546526884085200144340713956545618487567361111821421281513085067321052630104902361446143319433528952658050719627991296880238379963741489911635994878335265798593416276037373349226392096064234882321909562074112047598975990425907706066251834812598154547938631036308228992449616118036971150375017412269892481251671536166873138711542759848654755050876957522610620918610685033904999290414572658725913505666276727271240060113518156508742961507036859417702138686950276334421692974207231087049116922049281312274671530160466126751664391300178710193748361166483628657095320766465975673279715243446058996413912053277495359653268171313766158886248683888653673719052255868313779878539697543250605099909701433023137728069029169397495251007058262175832180144304513179181798255408536760696148751279460232477435062368786151793430116439026542042749669765858197687675452695416464371144884045509520104148391298507169386773558770525630912598662712116689892086978582689571837324305770735804070980859702124320316870124857072855236723219273622000249270600939121203543985427202632760448414023029297140037795319175084543187841174553471101604659333253111932527246130352160568610105147524160368044309703846227462759776243469728993389597177195327883263798405745048858756494064293715318061929291215891666851669589185701296380061669188482848859422832703127097412255905668932804039112351041970755004195924032563882262613785597177192803844347016162365061307078875043332401176964100184374329176952839755506190769314802313737958341084058517354900874538237429865364562564852294192375827393857149822815858045782243388956801417609404114465541738220717687014689658280263812762542007385501978257644542725584802808331754552090510512783938043083348528180874088198768012047643657282552148081176979110828254049682944200486493007561457056299286312611925577211098871721998038091982102178523236581051394389541806701833699130389931824247478932695998946009441906013299442900274822410058349811682276457692930341649136799995371245753986067507270254227823544239314826184477892679950984709774817624261918136446392168860596299143945192733404655644714106597035546777279851511656971171850312312345293304611478617180930175186074779873065342777315138907367041019078920103483052406283356865724393782839987056336589728670350799613200644530047327272415044543619024395797047943542774470219391676358980926716921827942495704060025254499436693102259909140035543074074410424410344115141882330077628715557868308875471486917414833598775099621097922178709119073807003556819406591739609552221346745217039902981282872667202304125018231558174474432449131251275974653838934568565360437109568687689204562917719496466083723580770261985470651129287910062212303668303244540233448913345946192984640579391352166542822174127415916061931813951695994004241948085155743529034680689207183541917782023724253143223869578588672270909447634617794250930643976902730206918742919707873642696477869213475062102463869441449157350894842151587438816913905111715901542840241448126204761459710395366313580715999894031424883631757416094320840364798480457749274579666994957983261185312021522987126636235155106468166748248938171117944482627530945959573197141696693950764461079435610683560132250526860823414381991615837678062813299163903982739554955787573996401339179357472861446109742572700361081638431120303338793784034159918929478882065920180739575544542316558087815928682738164669563649760352253393100243299862189959941049214496825166499070405925177059819666920076928586533537577874505864775048387865693642828130922193072859707248091915711150721284653914155770804274691496742057252489413972870148553686417724963796381099378130292531803214271918096684447990529993054401793304666565173945068818765040058481528185527058089847425643979614121135411614277278327222302928093828237962211582091626386052573938982737160959124992964773844164207853736761823795222986459962732851799342770702160658963230870639965002246333256682074798735938948237420417318217488171129046023836127933194925133562867302532834138497831720900751164763006623765382433925768945277905787600039211793550224694205128316557917683405078535602674505079384324286680390528777085237243655565010617197651865024084469285959368473800694829294857940727180325534345741186296206978971463591772838352822274620178595974390068412681224562931735620167271932066890197376550232774109704245368513618944475114300293699072548625158155146797957870613194649876438753489619092701324428248446667948377469071835211789447201598916515740734182658690587147929641852795900100310474979963946002910347705456880528140752325660668856253560311879054644057905413503722871360881303659888240427184717540421860734735477240810850410327035500549027853336365021298581094401024287701757312720584517815303692469856678894465543222689090043939474330247256292791085598171336078533327589787157525868646642536070772836622759756921215607269031577428171768323399874913696886844630572751237278332143108610845536055953333306989971634230495399108524922737711727865871950036293507086532287760689379373535634837479221789933299670444420111019449462759754787990248131633638459174369139785521730385649587933091471011250248577450383795961419482592536307071424873111092739682540289457028597817317155684876905470517793068940398235990927575437349363342516094635110158143608747331614765003293068442367327412605386168136598073003908512207802961477588027158864030977037244756156043619771464116719047259747641729847530824351799224113426981080218238257092875072123313800476542184217342659980902030585968087376308970694850745736253593106577596046402053227562520002419532479940108981420522091266011212752877290856993189933908489381130653342384637261649849202590765328091502920299296218973626914337175878781986881092098273310235451758750150831054186531350531448079861526397890854491128088362451012274707129602801538069568325806815772459589419531434231317056663067107758152548129899656092967303775717822369498952600096842995188465451605491727155231540500392261403065638264556132573255136838917945959692539994330057122876597975603409097875910610082457108279685546920221749009066843446230567109892823774066831699092169590347986630739767364163756883232039896521229699705346512789093166511111412852006794213029983106806858932444359577692426181101866022823968431822433482740638000626628126999890057313983670635191786494408474148143466751761273515526116695903101623533065169726011100363142644770738182809694195875613952278892780796854711515503726440803253041410041885283505868078936981320067159929902843279929805001193804310335293191158834123275437688495011049369008515371896293936521478533412539445657092999328358153756574081093814498347579220103516356306452740252235611895284284778501624431530768026238791140356371982161642528007014553137120150703493765056142185069336181676319107523629897321786455714813214476535227149934109726165624343984089173482227950340010858542029942278150071015748678856587987766043371838233708735673001848973035665475271018043970346594064956559727796831960346773272423578729572795413740182179020284749788507698205911452519813903552219449190173341806199491595968366132851739180895793846032897778382922101674052033010986723681551104978006534993164731428218205631403793736175167302670549991734134970985130304257901094520211511050200122410749651272312095987664187818417889190147273915924007679776630369497477609524797163953301272001934588777362600854851333132578965465246697113367296046187981053153861689126165458544775446544268290275915551208016293652540033774244025276383663345310256967836664631929514375030021467941812443392531582398920040708007425552286594579816461252585959821434920322919589824250328228661707109436222312136931221176768897265601323731010682239308701727390962036692418330849845344424145084522878026987973162523294974033090878824263603747165059003240298970258110066730837577502110123521172415435492602152157186227107172753689539522451018131351984635897521823929985673798229834977267874582521624637197958936226112492981590170015311547303636548768072786673043216897289604400741696734279019458862055983094393469766724902676516255622711701441563348377723971499152183910005920049560679646418273290239796926639295210807233379373744304261500530924892130994235625082859993243361374479506465680677650340130046958552235429006780092501355293034717198846954176102277165462508754330961642386852667704141036991474814125083596551862285875487384313720965298399912184404436993729011649179701927677445309561000597239609869234175628450421830643459791910734349626893713130136204097369042511086043610569331072966041361571318697764928249636158307583451264738532743967269183461373234496028973417046976929281346485478883631237956516084662094603595874133919946295749770553811210987601968868067582467427009271626826545841683854292317908138012425972031017203058797099111622070135577121105860429898208378110733064120069756016110609777699589672407662158851679247323218944074390348444736328490337724699195693400513430489896286755040330491960630102289351077128106587629760274029639122029718052959263985038040600245928942815876145790600331154509323098931608705579929633348758246266226913594166492031576845836413103426148077605327902879490894798242129079238230125175963611908139952238724458156185240656038174035163303614576691826054660415798805472718682232987516018849944857351103457790816485799239685207114796004268070108205757554833488005798410045470121419213591405759478901231808053722221353925301759275895873892218164659887111664138023761912604389766082840062728443603906694395113683386715472443009156099927551117688167249727873286519680937469325359679385329823513929537889697655891849882231588701817191490660323320313117878659383131961627613807163418579453700136535816025761716971714013803722527063536368919842136251880082572299162673674410324490660454342713053812201253345090370626685722013828163378831083194316532270885535180584443000460753919061981531121531632806498649257763822544163598471932963565539157585767338050029564042272732763843993652908790075822983333455498573595765856004621841675934073205707860554527577352513124939534510040201017143561232810201682026317996398459887131228263333013300208608507388569596426287101898727449135335187543194789289133960154078106724331436724345105980323594702674068522881359530547658283718125729544267407369400523953260245774681121604749290718295208303354578149525232737874154700184965735420603498885002693530967254189193967172267475881823943952035710119146525247472002208964182912440986474260118718667247322887549961724136893167981237665866469747270102251930222739335503740941457343614683210635531739074939989896819627767436267413470595172635603201704977723944124971684874797605368895175941650602933723434385224614723819409911409657239113569344105397394928421717970789753945664943489407902713584106559657447433210593526046240635377778582940193382317848865243281532393351796881823577508487012748438240750536018216316421689550231032635294024051253782503523744697661088802610587226837955759725162607096277258474771033332170479925493003726673062395238681884366994895261071514317703793840104647878857083015563259904585550790676706480912225710237042984196716396639162314996760779608544828193746414973750247354861586702255562022906495440125243749840128340389941151554112253610971003733835792510850903754232618277899731270413156802940164829086633668080186178480106102351158566570728200018362854828820918378892846137295952924593423791693437860470161712862397695104873404993911382495871384981838153168995371518136438851793241976507318021133347089496750802785477624860434410115707412214962284347126271208598340540621897219204251368637662949720607772577484356881735189391025078353020721745417980139877488408094337796926870003106215048417950560256454872190117382073228632571875562827685643873337617169012084383089592625129058235800896664591050896408546770586747523441294256275926459913117644429542765061717505699575714430876844985822913435883517561552180815445916493503248372614362173042239766390333903221412532984749091183580628658012803677730119711566660519247301715388471630519382324152639390336489925856281481531037594016262637426505724689510929291228248932104033888562593765093277325771194329011042896517419243581509881751511018997152264698250003066953542351019712320153583383365537654461173556468856756773688480924726379329367405253083469862772309696118251555354133061861733276657462831746264650050919761540912560518141755446843129073315448858905116633513022011597694162769188281225265094516641694160841309011852333566540231480584780257556080625762419775188796873900789455827560411195342489850221268179331308875493353438151322879477466593505981614433495838197908478259957693819722700578842613105532804007541512752975606052135204633565067988623733470650982508491374304200287505989070191238629741313466959717068840930615383145750854961860092414803781374255657783217139901502103678348343314714584501431653497390008547861758149096209188494617955550958000723257985293940604585695615822431831362308369930233653991536042583563560142647305296100120309620757803712249966051894982862038302615673934245051700120727043509295926415030323897539009204722759694459839368028563604036117254294819303704021500975511615347040686499351346244279451509123826265210637502494348054902298283463177548526339136135029975844459907809176473263377211812470164630663615498293837123419356891343858895206047891077391146258951085476681346509391064871372705704598372172599138872986177298390208603363844799557386220460987634524367699460167476612902576260873125671271823483142986916206911434335966572964297438360554533205788588577976229819540034348128934074332176648370110740215080156623132587157114884252661226687017984179578075365025212279285911271418574402785339712138931223213062786981636207670731026956426266456610380067479190510845618277376583476651677826311968598243572460980150753985164296825628778582477931302271064522531274726459816216819661770240191274933524075902959014442726133871450330775951524444349702757007192264933185255019553662833208074168763431436816597132923803160189757644125459246297517349963246981965150652197429372032353775706197513782455032126806351939773748679992369001779004391033157192467497310093696989313613688483297010417004877355908389227095299077464799011831518444247883227482792495895172431585441036364864639099128891104839155210472951484483427147097721590530017576710897882184787960729920165356708444393193623790387784207145846583353059904859823392635215577337643396774809485015220071890282331974648506354769241850708456558074103024943121126602652006591709036692516126082899956127051265213089899871440526873181695480051600465892297973413301260651793330795887898991749244803799956246413993811760018909526163274877503743445304852694904500665200066352805117475908329594209206288204189907915597357387754889045414275379606885246196716480639770719482548716574688599338734184136949055788820282574246879972806140101902244858557700781322003170081305098598032811845762106474506500125484367530770869202322654092204329745736741794065886625724305418779045963371863814170767808371900626913697157844775831264132362963171714304513091259661328561298621844950150115393216458343755551148069940945772026726664750274408004570226601268696060160506185557522143103409200029060316026918491237921346892906125387399991207119134302828837840110920008560409683151895047583456953845918794381058044505581672511621506679588078875983412586784001368079564146862911205603184522874421395425384900243119270441363082340578931887753789886358288560069869358823919846680225640568399028574893138011585039516274372592075564769232612574385016807666966664589235326483818577618008996379695374461948022412275547561718405031291796354280763005696228550545989225469700209346351767475740556239418599139554744580854184778577482571134380234351974071298350833444289814514155771339383223889112216184676049392863990641186765677597545733843718734189039390157053405281337539850851276238532468504871756883102574545916477492699077994276622892182959476552847617066388184822141451991034552558001236911621831099435820694777633076862055516507260864214717789829382426071957695677728569852954598751870297167347739543553063301082707316794483155273742455586333610899407647146027623170145680309708566516891912417453749745598194873032171863008708019828144914225597510151785593018165521122054100945479790134208491950507287391267638170589950578596559044287668021705808806209698515446365728490431886635902495330571745443048579117006464997721843376289908227006996737357722485139658273350697318692831165787200866327241260146670140681516819664426462045942858553224185508449340206912072167415418945494700645995327193132863523193447344635576762729946143794570721622511914391146387698903188178715775239167372578776560822390031416861735521472612671340784184285332974275824012236970554152825878227402816907325871725394555091754138542541246485387606746482528465347084410499945920151258413986669616797104444780416170282965596553328923955508127223057168847394484182518062543141329033857372213478937355992028965543077297461398147807531179150120722475003363042317258756147810594330247278097033487083975282589928187245521722594022355116510694483776213404935738021881404142226950535542665097061770019541851774876599726249526039119104124810479985391488067940938621634739941560274194581451569179451199693155850101067019876073435121067922504419355101036898782422576075295549017711138846355233451106822908962987760265710710402863236452113952894714298765721851566459011454151788655536606145199556821621948155469987915569599249675336825167328673846178144326943628358734059914479635711344096066507605534234676672083632786275138354409674846970155026705392052841075951231291700398073966641573665624570197435438246911780077540226290044542674407064645649076942886119026842267239560657651492867158028191690368815696041247695734675727245682441859872017194569905996372236938326989029752758406430148115374965435939633122405846021540239064994861086780491525510055891835838937179785706699426605671619246384401008276325537547890960969858701170144187595619135691806914704015483192868299856383833110371464140434636439532839074115045176863002899730468613925826148118824015468130881572762352522529951533485493541986669392712920409999801768731792840995946684668653772177161432303961881437523235340591058980905386374118774700084619739569775611552240381229656921684723786207165074616654093012969081605728549364840151338195648446592985578348681332095434561242951865974610260773723554338761237952964986703288988136662927541753927777513252858371380893286399762535961483960760243838434048749656790074085803157834190358845082437921494118917493500093815433922518304985354335501579075109415457367139919299971559425554686875369672072058873026489962732779938925382885020859690531802408801896122631272458569012430390229311606223944165631153211702771784375548462659031530832825527320900238038428861594057775206353749850750825688412990632126519983586535325275346578826773110116101539519352498300730316148141160249474171294902052416296019338063779212876050580654760443741974820280406323617631261397303683362280417878418306987337465238118944159109996501463253564028514611783139329641674810686788226000480425365988443749494539204095500681529942984531323272816274270738183522251148338260248312641563752766771310508239932920268189940003713198217939904832815555323635812391547191177713850530848177271561025363659291957893498043139444363983764000755221765441319602541922198004350524199599120199757109115616216675567210817193048368788485291769526788585352061483877272057024828067900230307307786823776188575726936607507593727496820160663307846649566295804650796138072533491429309720130602911020919047113522877490369763154860430546060836288143929917869172125500393386212640704221057744727556181453310633838569119911198302611386754087472974344812646901811706513614703455964638406326850686083662225826481735193811153935196528272040204393996994093834149329681084393798864715672465485111556339450427580734601729280999498744309468405907568650458097435756900231365118051371569492867699723783791382761932211361527833900921050738075106401260163281193602953355830265395749212784073271366530318421304827998902874473698176869644595926223254460294514882535408532689957205107344285978378471367525442697507286966973159570909446774722338231019633535999391698261253080537966656762753088185666980522890901332813479442053351826774614467216543781558502114007593454448704017007384945110188794972310534786693580615381321905097766063337230730464631630953601648314500507574425225003745238605109745052722865569003192431208929296723807883483305887332415348159293754534305348784284294619739278242995674244583407325362439340203236230354197175666998824542526743558175212430069766383619980553814624663189429873698043534324013588734776059290344375872838649276766255750466470435107338050446529268954900940790878218570412574517831073565752237477767040685227486369230349891619104866616306398536952980351961972707468278851183564020779159562392772466561253542487947441809034734758767958915609317621999267019614529553164150800326418818578192260594717559055443329507503273938868672521177896314708132477890975232399000848669183501595924304354429458802263411502614575060451381230169293351699430246724620317088858065673250693918123345396213671178992708265319302882843147779084312599161341036357116144943269889253091655770796097731355160395402774595535883636733066862955411665321618573304219512527501796828542388791294430986449705735632742574267319934800903313011668031924845708831788321258351005340096267205858574228569323029803794912454507446151444245549208749529209185067643322082313776426265765288528298711897312056197962132927088880405512022122114315001460267483515963758844640929132382756700723573997796301895392006114924632006624788195992557371390585307213627721072388362898244611467823663631403913793879557085247356683399302098227554626875873361007979661519728520070097928635608475127063546934272741671276378309949151577866259234941716855953775118273168132523215554146703660893363572427504929705292909881846321776925064509507086439974520487491451980441749890931013970097200349095207264668338250673843132623392249152134110505364907465085676202402865890111517240409710338445048693563272104657636970931218006941965194493091535665603098861327994193740846090834965304166545751470773968641619040375476220960204166781030038472180223693919374590937619033365817787303351954197763767789925203698363730956737791742816714190727558798561012695419716749746111154158582701541335126679826796565989949713933742056991979602444086424937485425182503777201271902443915480656593124897577924709751070980351373725731119361148081033681968384032648063191227526951335198847992957983400249949921335248113504288138368368374414478195514934921507471519711124086763919183824281704141298598491570902682326930842951316222778072278883775796776145136989427449386576100464771437356471067537902578503883296670420361477803827712580089773207681330777344004359651446197478531363247582466541590156335398648526264299913857143787484939900307673494782156992723009287612903890205949361658620447055715710924481974777119274347396519699380874846638205413455536378979435815613410412033112897607517878132528470311186926108439347627373301083240614822080830805973052156060222393712914035805406943138262564831821487667197820394465413291959555751141889987612258068544797326369074732966088183546901672918162934158758826105085790006580247098535196770777637521095847379287739349195698489993023162169420408838898462270014641173053513107958399397875258670442920945296687346252433245447799674718265357376273876687755575706612463575732226625547669840324880062582362698013743174440788055411066476134296106481034099915860579837837077658655122872849352679768570496156794768245246797913397705361701386391506940926956579755228246911462666544788052305617454183298115915697383171343726814791813180635427294326432040316131275631232155818375933274932646887625998285630158835381624916846522399541359153281298419731948050891709626145259636705579803267389865697758917543514751106324985775343298926677827741818015821695603699384196638300849784148890796655852704822042999150555182950278435585560691541601229284587991389353465302798780083042153258918153773101483233233623129989647812223434375025361784212827909212695962861426996710320939448975312685601298076839205980487474085665216592143489660202484400246527098838774225008376872163355942514345770329185787920095560007706917980486620241295803307796913820125165679435159683102026687361695112685569617146198321240177023904605042393239638273456604086752833217684763295672125521162271321957663197754473953135993559924132772359423556518977433681583004745722677429102527287851745511544381834901795659877600673607671135467576011826304805252991698061451381092497370677233606897430051808228946621976957866755129599631985092706633569188315612890912033488158539551462841342984596156831459141664295341277825479474527055370439574302315298660084324512427282713527121053544571043086181554893488798151753481715354236790837455282924376865698552348163783091193426091415262067405522009853333193895198506043739282169435848019872744728283929645261223437049677810833915111846398847485302443449434007357369362987209488691853865338122851096937351382440477137944773421360277871202792023300001664862504035507663875717992370252451797947806180077841109830726685880350909056223188506169167811776405522611848746258060899939829935452949033813601635443735281969960941607385235774498497425589041062129353032815325615440996853655734806451596467727892844371095882543220392681067000035462063014158957942579992322158155344749976562796301410410425875399009717143573682495866990464773924709080685716924941632850709056350776549056257172982796613588191976582125219655831175306130290717624688622868645194197401733895787098494088634187814859803403351071724001441731217172745959747622772254452090831695563052048256250250287659429403936439061442295298803157663881247587402448833053897653781356444954359861716985648871172957096592160579509774941961605201069202972238965162603800818582244148109569101105497891681671779365053061852552559564010770956756253823627420635575520424803079655010089751413724205803130277542857865183027663168556464744273702260515180708357838252059670947288758088814092048330576788210218600773675503257896769295126513960519144575535030232727911076982678839494390985549114452321021141253967358127686427341433358103239297832410140180447840718055863698624283811266730321046754990141664954901348951966712118355604260640297950002474491431567502083103819245189683312687099204259509512894176752678008032980605338980552515903133154047399399336137944711482963597169591383326667134784249008100763914867160770574601198162077928153672239275741365574427796436135602094817194675303254694268372321638879631989543399459927621164703022417876126532413134505811503935672369423545666290584280771410809959414055842431029779047722676402856378892027448153252886009465587782016849005862144453201977295415833859633899484508846493714584959734988547458084313127064873094206602859979849289971786237010521639009477425177906406623333466882793668348586217858794753485267419923332217252745165060067817251131050936804982944230495373993324280706754474991344440903716895605552770785259448370013531694700696529528255159898522284097126129568468238323677923346771204922152312080312313794396727330148370633659112295999475353892060161779699490713792708601411003280526395435163481010590815820336652008371643938063599272185387331570335719944342166364582236714733667478522080169668476586860254355743075594525008044532654193182541701663059729246300738731650060874290678326443530385456591805177590491997664097583208026841464760461536058902153741485721386468608478774973582502962726289822173774491957743664249315381915648561530523711223572608713374865223571412352992732497717297344360426779267373951842740728281553942850244870413381611829541722820601425997898953465988588997328269525499435941901790517868523223478364588850965640370342979335482996769154001091656138878735691367877376067111094674423219143474581169794716787911262556692725287470555766435713328757934196251361486506413786106045306069768371862573036769470288671912673172893973301233739478552584240866253492303544481467713179628065153421677333987592719287848093101568803287626485929158005120496413667827384647055787044716098237421684570680425731379308772119329891606944436826209874661314834719426039757975465180994052228949383557844389593162497199639202833689197657315765301971333387696660413627781874528252838968707974383661058544830201007489796256044921737727279791164298293098226175264225000999136847393766357291911865974499406321602387288409278170945832601174826340888224981192922090875896707679148363776702002493594964515025370119408976068421258576922104717188129707653215039705621860868911736740573046896042255146815446049561652261389536032545741203668202514208585721927901238242141038464768100663584644523591356889460579757960493473856033662327988798355408537187444873770280094207798931536630895685856202281029790500596968707615325063641459919640928973614989112723597461812236007199356274174274705586158039399553401645235144084933514978272239768314382809357516896001007610562013721930341818958235754176828556583375637774933606529120546394810527274727856890053277641229719760322865905300963574046224783073924686847554967995693944485327870325071584676572413520787249049198929126289560118681614583454013281963103219668059708656372904718833485987448582082617808165606820090666994144866172005518826042889577367295270017342235993591274939398425915562958777196313010111439355433870393936565408710199196202041653474583508137805208238781188508431369542794693622119632385715232360623090922191423656579567772597126470516647312165637823251632274285541413938198187422105621765844576972139969019323504144818401756792030156953695475765256290817193638618222649987302006078539010310897144039406687459701425012959848361643560835910412787463932261571648246793957102245703179835716269824956790470783671004390469856314745894669367189049573798067619964171186914996630087517565192118270384239835050979571090137727558362570690344402435289200787281010292906608629430048129225249806302143191610809125859408635005687749419190950282864909342766032652321340822969097387082127839327058335163494160145166849134979013318963300697898257218614266255119497454756391387796691992332442430459958863181751711646080901959251909490369103444850175376926612636624120188368438525620261454176222956133288233811253979140833541075048276480089120060913490058678280172448055664677058877609427871383888969867126345601935972969751522362658624504805982823363360561058282519672059831206061093672648990826247592144891131122536360960693604463595036396339505948702597153158986904691882613708354076004689220627959027562478223812713512648307998326420324511179634226155708418445524984865070812939954694710582727526752377527451665341626135185405942284602120987857099591127179785011415673381585241219481950273907610966767563297342177941066112519313665823930602985393779304871255937123723238881091641008887771850415138137143233447390042695874379392339777638290224462917738991887486686264064455825759331654509975220604441085539751730214288845699674815160490987540902876071771528900759313271313602315072541086868231923897627401957190018345925494718839181655659007754596828239764908897252286486141558258848294717398315214710045959074479246650501733940352188026157581588480331718176080155063174221868815918759736509813503085571731788101427282430573152364327947324402994167426474578634636945041830800098406117040277709863374941873578978317805215381338611438472688980130412570403287483381093290697011705942999135904226382586279761064633076004183134467150265629163601938711658362747226934990963394459491603507403579546449067671408674898406831035074104822723027913362898174637737057308446300730918660140103005795697260573436076059831606525785305811471343204735451276871380942756051316952655906270983977922724567857386639678660096854520664144001248015424001553469583723580106314191840066619668327457955418435226510490588946869380253532818405750004642201874303709228903344983040826459027880324644037599909158566971964636165418575493212356735705325498765636297134292192560496554379452457414776014486440685219410368520902741834381042859145898083124399399006604189846938040217878116108075628934909022139754260465592938301665882201136268329246862151213391921338846844220059373040791812885910067648637112866382092931076336884685491506771042776943877757420130480153815901524748815751169713756801146796268968631296048668097028648089739350707901065964301277400048076871591372712945408430126674863985377413306402217795558650996641597666382211069095722109492753507565282346387397092243239921824602105734679594975841393280276295618068029952954474279943586653920191351282350287378380097531386790520110227686583018428401103733643544788049148801864321710704581613701339507519171321978178020696596600335997699234780780111120234005060561703748806055826142406055544794323636686219530114775532302574977203372953400686157662327573941562058090407000210961248283137591867936120603739313381053089769292283886834406816924100863038405730286444595425690547357634691446176122970094581931771288945582613304237068913312553532879438651876268620498048245105931037933411298522230647018985781738027719874013481067378184250160473871871450769246346469275514706574846817681377427656486770397556094190340954345109601381790555645898214530345801667840212944134360385238151994442286578320432121450576187820733110483495306051518605577649869683982980555116882903365261564528410264337974530422545419700314705276313365287021162880187710962780329276418687444074143629012456145628328953919293696801355114184229007134033882619637593574137580020398864369132299685160353858670177499288011045768883226123658285242248100688524559606337911449905493472026686674066783295843284446384406726579083378831734089681548611544105777874204122362917695703454418750115426635461321002284723441369380531533059530921806258233056365357820859490396753593094868682019204675631559885901898798421076195948893233608352974396320604184859833157393442099145712475055286261673442981004069686116750035618786623060300521793128373381015573335428523918130915795479402059717417544628055797385218746117940596978054220446958531658412103049663091375394303621652913521737734365387605588880065386464724660290737651153706997985768685407244000849695374967821369587988977111563642194502369491139205593320167901236124106582883062092675527411782606915783522452843968529665176615891024003053129508245555358830536283046258931436284856039531667462005876294409541019300426661547393778777589069520584038774960612896986556778708191393623626639394057856427113992813228121011575415245741295890673897286697262489253935855229252963940412779406402203385329024140976173518402350047172614873870469840908895897749659908194869067373020172852623560236726484426796379034493019572759378058898898754683176093451546266141177657856641064091572750908111494358088300141373375934284615390594141572370514793786365168121829767698975097904185369100660240200089577940906035771849448034353958198031742957251023534970456816108093046445612835355509231226010206405428254600670890083176420034759623870875085573530659983601404000891173865200359652161694879281306108756064941650073479903338483338597929024314754768358277422399749465863799290523073071802188744074699746067732490438202509248088733878130327817440106223289316804752559787512405785895725055124035413187997848445600485630404141556362198721627196140535649251149092581921356575780384373899716172805581656571356196196289607407458468147163194712439257705792287846645252709600561762059615444273054633855516712437899005276249667829674936548645785158081839711249024579370113407357414970370200768112944230948803647305054312783013345011980491010796941596938323330611879176318717505524641227771488141979687040366012796327019643078924017379076729932569549723798388094460602431364229302259016394409545397372944119675622852817871005944534303870651487710265622758385497649504355341899809861369853329994029337990471199420100819720851986682286593601335617517889060399765469913520466094391959367566646724272115392921056507675456423861268216012125629154153301620621776473037021360982380124334855478612622754533708120023191690758375043359830873960113123425184558313268359396673547876416563170932624993580611081239243360345042418657826646951649434985561450546141695017262560938305400548269992709095765299502994241308033180468886877788266674035700286645511436599384641521948448984621674202374119666340611827188223219362698207541387834084526633389182498095068295569796440699687003656252329599287607433851321899369288579652203284741269611433155174242205538536354854234774775131879017064464080544249950676729519741233755869231274111426746208638554812984467667319996180723816168456958175659393904038520345750628296221864660183278687913585373505906253051169017603119954446063543945141822472755548762088046266465693341827400802200388235626070252637056796750288916840072977544143703239958454098298788262118322825854829540572495090137409104269346701840290599121643809076319300252013381257130803685399724990678082192159070952810964943100105220586134303368353253760666351061300038974336606691414636080391247378513145807203967646302685753325943455187717512307250649795328283648944711392593211544134830714311653463859727348463754718029097304399161834333717393281401755897511721273999860222603432596396330605653790301180378569259854890954117203251730887379785106975028439848479508294703056175131307220808465042927911748566688089031816374940484196352605246047991573831097850691096463307520528212182405469407101467498117478634271835817436402729142226440281904188929917337742743811723024739212075905000409579679357469397218343303318659341668745329011662933852965974448990424863680743480676634960734310528476082783474698589387202384878630216193417482815049643070159017589030595301411820467920403246783632823797885121113101421296446431600595839893591377476418728378719881484539209916073718672168690279962078788771399945197099088029151330303453538501814718954342566586536013397990104731891220129640538200213707224394537492126511341875751009262037707512771262499428165978291823263247904256549229051400538363923339832160802381741263679504507210651772680698316155472574734302936070266174023444749536194171755424521138352821435916175312975746701610384007621113307826882982121365545861396463179014391706806261044041229314669848957139935328561969161385713879494900542456835818146101193554928872564147642039932763666870523346605814345016903820075898892667072766151114813259223842406922414463853985346598027456473512639278988062327579705497731142355643787475222862029161192549038290735095241301920158999847118656757895304382344196219064901985446418549844105388015034456638599026777488189555624068539992211924877189539334995813328125533173520398869400599506676771644417588712242706046624007108521376367728430674320882967692067648815202769430256232967656473198009949480723116831810427813727854494359334575959550430638379730215405395473358015802912506467339855032354766080255590227008482698545233677486258219664522212126256948332103489816476041865899116361575817021882315347454446225236639832456124218580681459856286004600660055018425451274810022722489467722491653134107012624574963073768168069852137766725914472352785929679787098564570237535293877083780439317355924679202986110948053759138156135638058085113662796616385024386093907734229535429825877068937399730579641573072045601885378894371864531417310884569498331277311398292786501240634058147494572758030113766877255587747650755228372693942064572681078687590201009387338860956477416346834751667238845185940218267117974038710007073779359635538053345458441172367912818167010290218612279645596098809344653441805936499424119818263490538916798975645956343796264896930691441500692738642359888886063245302775902347730274342476819484737603989648253532819008293086577295689066285278355721943996839482428743181331762876520766046010500429264339630734033277271943725212046988033773598336366912241140996889202307084273039156715459896669192415243644795676921554238461635895923855285439313895273114281275772341072982657982353661109718447514817325183161804850162074403206639660919324078333011013031388488563349743766225547783053858929655727108230319123468925967045378395143555237917020785967105070198281295663333949782530473237443671600904227042808659826108629012396942939653551461232775543051342118718912323704046355157411587366694953076512657516177262830748582022792601213310082180089918614908028663413559643085663322500234344033418873492105615830196218989461974110157636494954431057395096387475875444887741326187567649538750788798155255464973845699506215951618674801750129852319686632866357261062259481577081536149600570440121170918456705097126717365028919462610620205669346723039128492602535678820800560693767995859297042239125276086246412750360413519466479275335282825253583976366156139213565936094045698835261467566926751309629127400674282820005144159925320696059595272153780497947698844597611449051556703056154418436686002257157010209253524983668154519937019995963225917655647289927913731525139331368431182395537317058942487582457573940396944729581641029673429914175224158065629714614730362340555391547667847180017187024444983668333870127459968934638238912662933609711494230102295654070106206120674915272225873748210869413640250254225292865845565174366313112802297919887706591939502337728515405817099667411476776758180611608233867229734564553713667527596839620106761787281658771257764080143630874961628610455975327523771017268233336417936449016921425294150934935331069224280366753978941807205931042702389578006416816133664058114879067850778077797918052774488824541145326250454172010836505670818174475546821377930716471437351601943207562824229404053527331151217260262315631211057260148252547360367452864927463435450588484465471651505599075398257557385954190730193238665222934853176382591193218812783391314727461658419111913824160729486597792200318802770892270165458694141628610663999010751388765231077817910444299935053459483525656763456722437295978785085003150111271108354324733455647468664229028217641161041133414589155423040434505961301045487922250898079045141029709791154539890971231273478486914652491786315235733145948275939437026481165220689746496740854067924665465562275088992212316548204179945409913329634703206088588855628096209911189821771327481522611342927823683330922304171987129653793012996320687077955183955424404671345989204028283399639068420834084910868247823049609313993293940120834549880523414661143240693089618569084525045540426810948482645018484539690364114963365277309899354624158976884942944109826456968846892381287464700776263334558179088982532962887145447315958848113354348538363964678341420645323098404540894916195921393415343061401348239983608914280617310032455062738714356059689749458991170837688495797411587654283941401000066345235395192655862201543261833601991152628404019410730388046569617826463832100689747143420406510483004711937897218939921017173428105010238172781019687342500400314872925393898135593715861862839156276711155384159858155808256257319559530637304725677897395475612967062430893099641303327663599784216673880058930436550090345821026606055954146408108786977829970468674970430477187893725266264834546279938827852678033847774803123730783736741084640537741859626077344451943287482073078540547386491583581971270583850723654962502425139047141774616606203017472336909689143024359197848541031270323806907746659550218187028654913000649592065555917793381212146139393853368055386292785492464724544427896291477880796181631302017424472115319507802875646702204613148076026380694785515860154361495520768724387664556200556328743667447151253660807398989056484895108421593593846934726646386245644285823636735465473083897457220936520923439209881046964476842034681834945097620318945408462200887577410107821813089868153287771933807560308801183872954978917708461075423513747238851874081626112541053256831279609990008382232873220930243277117654633647681593100768641200825084415064015504507476293171336972221473601863554840101683134977087530815166931902321914383048511285660032648929917866647995172439441412287179604066810870506089783898514415151613129898415767785946030622311565847387217494961153643104256819416309246717059330614715096122669792356238512878134161708088178386302609893474488935785265565758807486968961854165207319976929734349363289105323182989070694743791582751258440649506083398220889114886008236490162623268373624277380716697338826993945226093433869075757777197639440957247272760568471328566391262864657276751176812378952328846721165219774716777043491610777967688874548854791874667783960957442049542184898303800529858554103726356643886613726624454699521389786473076629737163442794744360940452355005307729044430696777009884878729013600660026038329494631732796507938051400486695453088162609012393836549658913814519254995616228562729596332158220246896421473222986921340120746978854664280204252083350815871518339805256015905402132468106289234300936951155745864902230557329976220489860792591686587619923272312799526344032788911181023126005769352285748474469559865212253746742775852026263452550331340958838831222802105996964656968978796414614403144556962498931127810576936147394842527592471028921373469487361590662848187302646435046652161672517230680515018862636134729061287167867148176481034324078812162652053774602569772531540668551021665626833787967371452152298567350565150926390848329363655915489248284686648596915528799234151343476316172508899286264761827357206158152620431564857273850805044983063537723189897828508432975377083274947288148914476774605900022269388624606955936321703425572631530657884581606789473217117196591244553018116471282625541263930942010768071223572518624404328037563277294462031585721201823357508400583391223075346698810558479712651032021450727882541165437022526152243558048428405877036501018862874545223371411983132343734232907807412151331706783801700094017458613704743867451934202192519653299629368806362124409991028349887831971553445066514860003180467366864464431584353502758795494699609210298771578374098126747431189704624979162115291185727250245418933654277147229319754340297544207436916846512627025767188611016877206614696492186364420331295589212687038863726278328551233292454260708957063660696528216664040074696011533635716059996189857779466136208976895756154491732558825375625717091565165237048598454037662555673050991163749871238178449847559244114606830272673599219693262505744097243587713352098535044516486222729011432967629722825051413130454348266370758078398360522505631536276604520671910367612501285590437804078610389911312427009572052538299725581771797516813576558949937564968296407572445634990119034429641660548282031457183955773206524871796448576745402392481963320972442918405988573549822106088322111436939161946565313744660025109783559095229435888462003808331037769199016745870622298189452862369394606957987955333230113894788999759446683303879684620109267874760846225996770593361231510305588227319837105135003987852423484230362254194683027495723834775385648015511420342749125594711927271761214902058238595239950464961076225229477982651698966013739945709516786033752618189328579872205562922001121734139433609592306300388263119432071526348095133405034190750844702959966608862505671259898737253142340087716936618585892182874920375637976244241552145628593526750319699000898104733743527384372985051965539086195590228435850257166171774242455050696415933598009913237879225581751857776411127692445506357682334930454334782208537476905329295829311671974422944991723851398459728476076240843296100472273651559020073179537557441064887191516977488685232259190068192354039231353351176792312540424877411946206353035568882800026665247879360848679956491932480051170986997232343062906718503330131053587154912964871223554329726251329312382651959708201151518347665876645393316940842985319596279928208328878775584282565015649899482664863920802268148689051575682853445565589753302714862108748563511384315348359876993522142157416259706737292854493393489322566721811009762801085378006946723523955504664412669710667505870477911122755103885811050803695699610594053219886999761258074517595899468311933108577783357413839797437071444363860022452303588604041753199717490794598597120223750694259960079629007996286482071624620992125806469108239428193131646835436002094067911018794563802738858718605946316059890840121256656155307267666628236126835700533568160832345747860235457540573113398784942797316638978169326666742516549599634904873744361658015002809759928063582907696427333471659511080085078274142920709368851494716774381376046740781100060806381406942107794258617090755043310799855944058033727998673433154176381276385673511874702281475473933385654628536622029625059389034208890401439995496972986614879779437203490358072637260035136886965924305721869693719168173341380572003572140151403253288974239958825500253280812698596626049218308034756703168774946061745215352128595611074445032076129326294669281648441485753636136137268660391478512650208513401012732615935921541149304964137002868319658600921311549455196998638590398493585831856450509754262731402521737129153719593586365941662390608232003078123869609237347269004161438688978216235543761737593000010993921507068852701180938981545593608071866720198978232934155136849806415191190340468903416845182602273093811922791010050862963322576436816857739889493361533926003565056996331551801131064462726157782110621159222932165466307198927543466557359196092373777198451122157150291949696056199367794307445533662345089880045622302173385889521309209114695273839336487237317528679413876586462420812502042062845083901606532394497421634212530785788307671659579456774472439975234510189103220855979373867970557946536501594780350610756084095424599081096520164516356311668712681347002838831238762717653231960347399038276588229486794623610279560096699261335221910124636602738762630541484697357701448726699279446345183825201862092105309911515291462572516536737478202437909973721821422926016550301339324443051001637290279689042307680888493847230013244895422771479494928392663749765666522693431918741852293038758994440240181218298937719883860212114666476442941423972540688127790574429156073871711323714033624820943710678188595352686381564937355217793955305689147164836583105805617407448937632371018607471497189260850676315582713089182420374715924039491848978328242081717220281240357590079778551417704352983071488928147812298932814455070627896963267710541406358980841560020865162969328245232535756256108360503637777996601981224417756748373782111857851337808999025311456383248306703513045200803121721816095021137206793130635516815769850711487931550048471868606093471738801383834648122312334948097196498236628782819915657044450248691205757898814646392815311616618009209885544832295840212623852678018009205045736351996801350409248543795346267729781110834592385193639741542886932980204882794824673824519141690921574055660746637913672780570988197877160577441373834320708783794654231253024565220285947589988045363950597947286538627812058992628564014460749986620337822763798538089211546447121285150733464664316913456404506866046498750618055041626363771304373302940585483463172187015409584059717668353411918045261084753735469687134012703572350955534695446681479437720049490678419589216467062606165614460761528548335307319214779787556295566034691561589434804212480825520111031885814792442150449786270987896334465018724205605893761803955967860251516792454415160489763253170076368138611552224115807396194467075811668447611206470347054576943884860426271330724356313071590444555365613060907542606912969993900966562217744019269905743840719135054455605497770115269638689661201476744728067563956982184324219227643981389279996498466309462566414523010615802718855500979023286742927009653232686671557919675984060795166858890028278491962490976263168387954832330666344215848086479395795743963842369671479343408465855331831298511777942759346511566701551637844299600096660517603981905506571911750929572748946071041491872825075525219732619850127827747110514801399149130061969845064525886890154040060824566258436515343821820940385703028169094252063380779453296024695478067033849135696109604226475179953816007805727710373999224508877931098555881342460756529319380827363787929495882740456174688306596866862859768620299681385366383916165337946835025123147010752326516077897118561307605564464330139242252036108970440634655950134888290633782494574200752784744670779448950390330334380082020116265906370168163225699688603808403517244781838167460576662140597754550720986207035055879255683037088069627018391634359312946844975407144694867260706612763470397894882797162909843208929555815276220095147747095458817119548107683036739194118745602465775665577751731622660988404796395193849790017064240171995734824357697272542345457518344836092987827269724254363384521787429577644588055063540313883155943535649338517787500605708983383223914396015608689329854007946372118269588003390839163829560380823786968250310362206356611440347787871692065203816749646083373639818289768413863641483007210355735010025360819370238162897235530174768134427241291128528083378276463568864071959943309046317423952242886789885854437063337776246543671576060879167219311809883261449584768798200189228675027532571752493573372306505342267715147778235263280877820055771748316897971451200246319280457016224870414633109112582308239732267848987392979557230310801268321537235546187661737927657531159189086475667464633860603011627399904682497292237602392578105563470016575906339745438840985851596337894524436240500807036792955887141299008469889932211254545144574572225951406629008238159427181703246036193514654077451542547767711594516250666408183595191401003981658587418439965300049370697708771368933319582949455230038351462089616564342894056107976993766256126497971084359699956854554287210787569959029844020766628522770717136341183748500817652282546525143428972610247536369930517128131679856737229380317532836564853016273587502856138736060819909609916008797781203511628969960677355633822711425673979445363969532309107556259573835728425797842705822648989712840970835441661176476573544734876566331494240180072597315099776449876174590100305410603024212993592015826475291727026139993861116666192687622938940866380305491210490255013281195515789776383332192859389581570072356520499672245458155042890175999103988084578676566485470321893095598609093417294617329186241779216901935008741565360404991553217691953624530058695788720881390879069854377768226340880457604514785316609064173598734701027022035034326504834737107184682974334346765545308206468895583867906899492044634375599782832444856308015104453014377704581103663860217867262572830077579477660634841330870807081549188640898129209320268524164585727839899162466861178737339916490051468455775013459644885220408520983428292534864534831755724754841677546389587799688168430660110069950738750436101722250071009498542975625347812820901252126241561407445965692429454540703021502052628983570978618181345328257064085933586277694276946007697040607455972502140902946411092414884677001114693771939720308909481671655717049629907848893733563791370901901689504905119609823111776633250989677043412673121765493180173538178014888734820158067160738973089423610789665906883866091940582932567469528989101177402806618156433258355888973516578064888885372792516920603784033754303474411919539399260248605830955887764300431353624837086743521310456360722320986713574752347978122952881810134260440102856717087030939446163895458221799852544841348358027103550393079625689483288210088330424671469072491845161851165057867479572910564494387636480099127476277040091625105989755991443811804827409684822579498173351313118639321190733894391150840015945619533106613350410218668304430464358817779826753096897018094842914134501327099111655968773012691901965986556870890851979733838338795343818792143647552182486927848101998630034226805826136873735549505599398349043446459785170336871790050456874745573800030412370238407622874690521287396940263671615945296459879903662652405952138659332169466998311634252751443077310605347388090911269085092100216901057176848336755592640255296158277853242757431782401187220750721992891350778200132201842134612965405408515935652957746774776778892420038741204010809849761763957421595770205760617639691053182107521028017271473806000616033153689701519843780912584142813014136331806627883690061076103213219234375377214478326758397076760407612753885110852460889746144139436347494905045288654561863243205473665645906239029975280433990867351637288029243325702858823292097737783084959441203524012808996595598010198286502035863008254437641902008699528643582069833926946758554307321786439052917425111018826227310840407822493265311096027328568442795914460328657740361104606751816498405464518178097109482882805281751147705204113119372746605828665096340890241603010307296793946204117520232948028748256584880536412533298042153264248108134895503937692817103548246916183046056703065737654536174945471569270397508194908152178909712385494511208277271979137449815390290618927126818475906370546067395218651090428906097572521614441565819234449952606099112652505909400903863615393861881869595039403059579178724315552416098072188722999180256014388756781731103615285929283337613538917868030890298593264511942335981900355782101060969975149539481817982846707286275079838583114769845211848402213785166741278805192064673796491485450525734677723491009153226057776227025057871145799719596278348859255160177363195640912591308772481061568483095421995627914058869739701121106628682949669449957417994455906043024669826257771898371090643835424487614137789921079116789105806603728752479998750610192568279110532573312921806601534429946456122057032278211483953791153469415203545802657715031885681759119921111322164218435956071957806573412176900326892224868532152144925998019375005259010830413614500030713654535905444595144868281873719462220233184431098655671707665449942050575549732645411511670963156129231635222941297747094492220350797955896870419372369298854944693495950049725333011568796755717227252689855350652227339956069780263680903967243640146033817775339997385280655918996159908779500575534537578298822852602687333711718408775539059312584351905547617529611586777968734711372326742184521178362820741251305316033385383497831327112927880498662254133183842760950062827690884798916845007811492258647256944750212824194626879353494910723846762140758316487433388224423916547163718235162409300098411265132464706614273582796800968564106206164944668712232815467512736552671564086852439545961218737077178406565217887356647694698496271804914945708814834422293642479120300961024795495805266546151081347242267081812287988286457884425233016900026606457129082534345203910960050796158596776932057615018427470005034658015864737562222733961403590381983616808240242595153776785511284172165304942862183102938092935406177350715269533171620332502007736730654083428010580805498563069709812382092577906554412148751313422726047071296257136889118361608429243847181451313591486891693095770760892280258679600029987826954858204786015449487975814882605754962951543289471089666720887455934931810576842039658299328202180673066592936275389720556262593081957486694730089417840711938563736962794423474761811587857008078614978086046792333285861037551854369571559660600743432240364271596377613694659850333784699601647116586279170873690578100307886227235141512664168434594847110049123490464401074666421568014633777406278812326454392094135512609336691788714032080191837956567448543021246870595604072495790627124417705640276372044816781215380645979666263796605900202719581784619705249664807231260502429404665111459526872061663922351968437298844752556823623104346445067435278396018066905663488197597096516265020915794343670042542375354760264399314680031906550234482648993704326010324578910087468570270347160138717495293397648130805007722108020089618153826495653879297698217903520370802952721157365845979299046750914903460186040717726975645386189783391292115684533289398917179483125509554912741326008453917027030572917168500237360759343186067288859039088680932691313905315604800242356030282375645133457405788804529440626189746026079188786634295190177550236642181250637318067643705996839702470533954572946463118278978517581563831876619288366660726596467203836033253981819875527677218033516381213180428465818460213442393099117797443109804440143710978425269500606945699775011600614271578897491897036702116065758010966691547284316290353459891469897111416941856937658290137601001175896106590813975161774910157807030153722051885922870675438677094330263036116767062263103697793542816497505429151747688376866540917613737275117349663115158095344260509281303081059298799044088141517830277744260996433741419383746610518007582029125873621693489083238389830419326206130701734079326901209917471951680586627228454304855698905118540984149905800614350689045926820720855946830076390307991196162708658163168430604487560871464274417721501774429416671726776699408181961276956860525017682548067437915422801394696803144904922544243097051116795445443332726916930855869771576608640985624278652989832840308661320137110921987879180460021487533778208854457153814035962120329749345155633245973379450915083881352083847708213563688104163555958204694559993856224438705290497629366109072122005564485715844745778101988978968854471818729442430826583356198559672428192528769270770370712952901337340632817758481504802964534671459838983077311741047736222317154507855575508808247323662926686137652173453747727900850396019094457602892535832562327081908213644450192699032470396285407081735967944139355228962437047341616862079012635132785819399936860815447295141222797577996995001286497558961103626447876064804054842187677503617010641575696853042332636851889272922993730444615021393973692236793938113409832498584827724141842130775866079288029124630270597685782803517749252230002080995693865212104460317861307114950369203993575945719016038758544809501976056454101597449712628210245055532134995631248555209757989769613266993546891931405339855573174233882354723088203401057331490903220705086389645334895140540646879274912048837447154962141980207255136821046500566546123526767090785549014117026341199116157012999411797328546593822006627025917230710998249454865369313671095944529175774256592511320351092898940168728825678442020673320497715705281094811364847721505635012800305201361728521381898314141126860813701912742860609302576717118571987631190839577349466325712787261045156494736994708347642286705738939690747174213592435245348441812927378612802514974465949357918813407434742470349194646405912736546464532602622899225822385174568104468945482148620783312664022944334212172328938119564487127144339321308895060021938859215852159353448363609241064978469842903379360260963851061366962208859775495433540364279572341901423915221292417348169019562485384556682298549263741097749615728505229986865428861736928539658611468589410284001788369276186296052410398516504072610703728149707925306468134932757692625261633433799815624650652880450492478951528619396849264040935108311526529343916577921933568247165096558858205900411982810994261341641707449996336364054413356362962816171679678504625747561340891408946925673365525071927480637984646223545327818419522192992802785352835486372462555866629767715537100114345064581873175759426294274022779441014589821890894032799466910977836351794940200296289024872382427448320382108732277917207277713638518905892926960150387655243514949148332383177316554349579983257535337910002488898762822450359708182598294746865217801957452275219779545983897538314974541499348463303577259486099337718878462911306201413883928778616014326552759961151763653312713516347496404292851802497069763739012507829746598408742241036635447421295646561739967136205503928140329193248011584139561770382086524308194506047539641680871787397629335387314955085317291209151977845445871425376865812977632568020354599344503937653203578968804535108846722230375466341093251168042195737464367063520324004357810267831666719383534989916119486351311350848043788833383559872883192633010989636478645621455845649709667119967050676785863535806263692637980390040700321195018657702947945015349968347532184500451701905841115134726621402550944160578788068339048311944385151258408528200398548547422937645948427209514354736631010543452818521089697447024937875919463183968031786322382438616080031340942063330344810724331143113154037608191998053724689556667075920453885266968369501005835187534904282535446750148726678495977688751339071854002299871986252565234123842347465228024762510516878734190220225141110449356578343365343133671528168306896366330559224416810014377939122724060467629167994303898778723265444809261206966254748085209277447905694526438700795640034245862442925807875443650388210457732965140123423237438742049744132151088810958430580175182979758134556911102069698429025548018027510689254188625499702670352118932069890464722053502240102795971368746404083757530404598749526761203802958182287351608841206260626160456870562690927609541294110852218039583085161315443392917707547515188112038347998137006713075502096481216998509020638561427616656522398646190186134376567407747247503117195043164208261302605360170432232363080062636310476182719793888330109560017646096400738400226581044537864274310648263388821619709429587232761616252593149655888405207844625100358882635583467651890455450626979976372822565695347260264114691744152739030781613554272341211751860980774225850054183858254752920265518537183438103186256642288654319340686472418436258933416290496818993983535436599219935701293629482695114748958861122782122708868789552652062100924228211066060378123955227486817097606219657945176152874814327407739493315920833205126997400707181311439918822254663994950417498479062064573664775030958892625215171960775597144218521287948279696966226130041984212631868977354189766003043326348604985503261489606133301971880395624707936339132058047967080209131620650516155900424180224977296499558861706903275861210035797069155669025034470362272301084804824126631138118738870154356777863120668861219226175071943931852540080903713696823678012468722304585938683843051987794829817935289083796500067331732154661917579237948213342476101029780156030622228200646735701800013729867447117156045203893138923931692668037555077999181130966119332944806619098487593352080552980207110992060989761990437094084831134321220730267747911230204942635867122978525700719178385970520628521727314404204962446948966931547067765419521119184590837760426710113563343875718837255259925689671247095339158156083332588345805729044543421308942643034140554245359152729427562140719405791443309414824543236522428763898585468111898985118674403382260959203496805491795291377623006158957625040310874376417511130224856704486868519270707275908652252121623022106532747383444704954078657298186957656964557899417950708957636271711439998992729060405253597298344793717118426517953660420560923684423609799897105970024880177967573315972763155300496252393662494592849788877835258102223019022399494594047433618729364402097139101485423293940972659926964104188703888827352412460977177799493662600488877567013757209277815117996655980966501915804212434130043821072489285825060778889063589617532273922369772283491728336382902687042699066755128019287476577091706610056759408588763217704116468711533881187205218508353754407213783388211484576861576142158158343258110164586665070351687690922027673937163253097053325695608504477622518602304476904878954385228765612574286760441931298957937507716671727332943187242005651738112811894067224073202919775607391669314087197424474606249895758074157347608228760785285143800260343436993354264612388019414293919903778794829914864392288705573011890477382620911996125124168184152322199339800970594266916337058720862936986842659725109507434290967967069686714323118662569964912584055023713167772283415224513801562233109814738425766724455074745164839517305142324746719774631883864277818227857479765656537181587212544631885599921368680007809966317295347993382038514675253108269966328869283876424567979362436389549543458220724312275361182260169381776806373651270990009588401569435426397526110594179250166152699069073855755873048601590231402458267853349184745231547461057279805399083772340707639928741661131576423021002655165645061487125415052399820111131424928823363654654851920261722136049961564248450880426661925581641600947225056545282210041098148752121601315849802121922439211984015428824724698438177381732913766625222156750756583648594862697132771381967811958261914573944579556455901498433080502549431821760605758868016516896205085396534285809457804867955059302190986242286637890663608208882096008093477985368855191907090748328572474219985768580497712643179416348086212676830425989660315420477556216923950512284596736064090867943823720837673136126451954806652587356126679653209928964133523057905181261403274476492760801761754965777447650978514920597824939426094438139931193820087870880585351331969133589259525401395863103767020695164868369104809451243961642674938534258582511022724416411630692584827166734279537655685098835831914762320186266922235749234534625708194588279394935430424979076821178612665886192883856268216131142043666203316468738654308070293126067493995518916615263092262868043281746527714624591228194827121913217427073719834661940773772940779074609985028022165145265830574017065250547431071706990594894644813722730547839680035213535461353562382326589850081236954586814175275587101669067900556104239790213020652177408764459236731178188799377919665110918763102041563799065581544326249977840060769537197085907201478226372684317263868970745149472161723870572954446477529656573044181447448111724078389961978489704114588939549792454359811645686748669132400902124345560842294762810506183808096045089582510111999645468483413019505655872565123107262866724231127464827698976339237035320371796173266524807580429692974094166740909645411975155058947290176509824230188457890496345655508032853558187523844028561481290365594080303546229744799003262288094099957078445027381439568459005013312227916579593148260855632647654416411656733536025443700849480917008168460846140019092237852808645741860158528902491110877651416151336505326396651471202563397628150880482573907218196939579999858052365975128492432142325287060204209350275448479499402742883212992974327357610446170898231876144472434028878233425366543333151438811070318776983420552920811394792190078903133574791121045489671310545480338541894838507737827858346075594613924194730883487400355412687507231803935494026450959897330058094827612269907231147997722301658502473141504296863358239284423090857950186343233406334907692586650254597703613803781980708132721902124929531307963836484601129079340795581597574116549886585790089354772742671211772915558132418710424208275185158452447232642821695653613790178826453454463718431931409161687754931901643366356492270653347096308962991781285320362493284574287963055381210300872677739454374873628844534150641524755597886619875117982912740706186074692646881482687203130254656399788169454537475130685808035869141621859330105324233069103799175628792240202072069959001295587412898071531866119752873374941347829287151332501342482152996075724808766225388721846166721305908168223153850727447736021311094830086873983828092285441367802867760703175428227237207019151548973140431721394737637159819061033684572565370608084864175642289232582814390662401168913594111083781906905343185192530384528605833179111645782795670140431687616093833911900282330116941957110604660855355155299345107404625936518089457839833674427423146075655409321566425527927424699636979490274644648159314620492891014202388995402771154587165835034498788550052929550904821618732232549374028961675724151604717975471252862376180450025170201728999813794630589200463767749464950442359971338269666484957913370129992705211452041935169515434822774848880491499082687256547200370469627976525052155670754445720046089496236552389503640050107822744827487035542285613796245038634294143273087186183438038308183189295117730699998879029078736680113323712898803297608036513479542277520691689439303628303685001556342867317136502407072798396834757068899322650956906834530563718067920217902165213225489155276803443373744155348217929809257380346433045070616952891968913390433724492950275005298797676487730792649334135970798345593615236628390201438594463596641555769598169431169629929463246299155815446915199117598918369624100466936365976388792155622722316662118791786015089415017153345619665865126585280360992264915748750044313743717507328676101848872531640769898489352501470900802664978458588411236385708107605323485774595876909034684442086549281431433834548785832289062673464665547100084390336317863676854696380240014785856071877894995154057033639202778350883311889186978560963058405317555828034610059260082096213147328771515767298501573276543366749738099169640716274696422885959282010764835238911521993344668760626405705317833169098928444959092384161626389472326175436292092672944238875828892701064404406821218676295400214437148004827341019370564391386420827467568819371892028134263913316897169337726632820082021647671031472185057832859210156630630976158566646875692862788158317345817203417910605607790722107321819959663900638111669349226811985981500584155866020913672011104441374633225496752157187598983651524286940052502567171375677126198617436129889894681578163942783448470937838149089729783815987957280384649595571930014348012153367804745771018270289439116743952548035196944227765516544842532139756350514221679657078810903413328511312704850930194828032438461295531527014980765965702747989410184056980199782242120666567276083987148372885323647364138089998630513895275241000811121243619695377835469502399865982103123147982783491645286218050349951728480017823188728813007576009715289376859693369858889853522185679449096270750842029562975096346398194457739463444750401025305154469292552045828778512905933244293424358773248252034887363236232773875377339522862079997714564586391650124328137543346166148140856123945820832607906856519559634218412855011084008248884166725951918515424928882331481994617376973222790330671065811502401394174788485145765947476752926585646423125989079565665583761744371208052250016267286773511841718801570325922442762158791131550204239141619540949779556803160025281105780745373212571530553967873664234266555145957058435149411207123091831096195204195124466062066234744762420780633664074936761257098280074117160797984844077028909775138819819389220580458239852277859636892607941857728508673735841684316565996535799239696565271515670535977176270793584955001780778674494347308610008041856637382811748098502779351160866042698605304982034666596092441175767771719318120400773960837433212249187596568801011787918743118514777814077364648412458594930323835171675718875051883598960333639751435405144197616373820276667635649230651120897304809933066397528916046180847096584130145329220276558043800996390180357522514879195216481768396441613029423903067191931809068400527250109807856276810694541611419276071629261949639902751984509322924610840503031776037868414401269481216388167964563056749219603908748436418044986859615728890674607791774562287971819666896231591328075913263824268656819201026342716681714688792848230764200710830659214591324056567401222166922764592583945888743126854542450136614106424546272028016970302733306115598984024833249009069971553749625289935461660391770863336848273977564453303894913160476640080467671769216463240762119272703310031933563469313688181821191475889629464885598675228930829830423877004827344317282976779833408790993440508590922253191224583434514040760580114373061323411799039983044185287433766818967893004308668572455467987331594437862310654029413430291079061460997970706533049168791795215942300075644903009324865203872591767868222564534793551629050110740425245777915521321098369332291135701541009067154231331784773156343079030079179663356265975049682187742973652843487390841058304013340049198393483463367496489373769616677442940564542552952534010350751627724035656840101601760201992934052472387579828862728211589683836808721953140964984352743611014545849190364796148276878751964475569675154089863270833318078179997632745150776189600787132311648011149871780419637368893292329793955991857707784552834993804262134303980065663380956984365591766715795690177173601972389044057738590654882098205584061014671525417011890274941946568158849934397447432991996821261067304377230592134891680782913529681123130232641622363503742575962131657755646629634056187405074275588957716976208385685690340607091483832164798714491245191646572460759811509615326932820599158177542390960487734097814981590466886726917249743850022534222311266460731101388515896417558768476928096211747053076149506174782887781655312131339574869161716038346097919888946483843923055579237443112699196433833409034157419342459789462830056677203876015037018590663639704675254148202159851661189530014923602622942670039318632915138335505065558935510828495240856881014373047033987700648389696806519870204657384273655665799406724099897886282227085867995081203950355361984552947697300943153726169975780793470537111479223315821754755830642433251080979663381172043800866193386372275747954192271581520530987205362918890761379352566132267310088958786124029223676436531539779208786212654815221007531262699711932868763024637490167151680562555056130659331363912443675109943912994518475421496553921256535461521466999085436778819795013622014593080848827903427130880268361529215431395655558910345835264002674272287724103609623453874334212246597840996706762079025559395402612471732424702841718324983433419911835667014008594229459263942980104522681751892948650540988913857524144385015177311053783613665206142093699873186695858380095659117175987143470266031615498123416415945236167258492667227614175808884465263751812580424738553900057230612915238370799875194273377640380277386009873846058373140917662500517263879926828594854833054761721071327589427836895565144274127116542092683287626965937276295393423108939711879251833993575470289624381207347196723449721665851802895732742341315804795042022994686446665982364487547356287998122572920907614812634599670544201987432299379473793082677029372431817320594432998694552028509252120430290790147058055823338376360842167846493210552824290264037172379429841312081019538030328676078217296959777874426548367987417698335355595815795178735118578234385427190242211325348549201545343290901365679774108730827525352274580793491566394625523070701693004025059253962037439150758279504499693173282574509982966156924159060892409677225218544545146219856676792906645645087419117165842989122500995390954392515320202464354958268111842933358569326782070113194026752352345569491563781113710283455178208636001019132241823707429366870717997012462999268430731467871376884764303196676715395871869815019186680199092998298846485162550110640950796686153133596474955675861821633152352468015296297317643177538798568080742143384729889023320045556295535665843124060281656551339257434524082458527299263549769268262654290995127921314428062087407314394469151902966806387491137940463324145651633114063988041459202183881128559547964099262299811257261773239289298680027749009639791852141339504362200316133500801379687964827968058480121322614521627670796719278358024563122720422818878224100782533170235010178562672147335169567194692865201311024968644941831592277052337784415499655238358395482455369790207253174556348561116199497095772683651290264532017196481582810338633427839534240260353811139309368444332081077822055773344767302669524240722765792753756323133303527593168998796552353875971462910213895073871323332483446077131587472775171779917690346094124105137540426050243336514647777273767432845102962019936550042165015796254494653509740088292479077344618597996819043734793838840811525695227709236037964789049340122474444684881957102059613378719255697220138018578552764287394848278006395084654814485049366580525502762925729224412957545436507805681391428345850176885488596221355332070221196470345558428649385264810894279048262239998130788868669340647538307936693608951884278938332447576222397553205930394995235579713432709265440954704096393664314023718964271078208631539747786474714399480325198634185893506926987106281100156467396670973332996275938942656138600861222484411814432012308601129677204051969008195643130039912552015174395082368371026737674315436598861739589674623697995836088209992314755348054104085348806968708058403544676927562427426142452602419970983142189335588943626409922990580886989307793538789067679303645648066535278780449712023052084612344112166656919191296250492243070830151194822824432322738108951394812733478308026488098935029739137176481985078520674494718852949795250253063303770857582903148116091639282688884249093269276427335970405006902210779282966477369246466854004637582608168028352374265953659799533007391528712390663375422864581010312300731270682818139224648758475646992097551594586955940004275048021451142587125101157924113015913790587559970405219713060049629928441053604930437982124544403455770941321100581630709868204355604109980947819112299384471704235560421644604860624846230813299737596000437480218840099007218579453334282396401667657074347504290789600839576473847118869946122870301300930532930374786861016751486519197912190674647916762941783788455415262679489042593540227505502152748296210651905827181335352113776143138281643719570089671317861845416607593999804939025790315839339924630127206895657883753378481202109438209074754016187636004103085774843952033219079824682046901393919548150390567725599015426792342859515251845406363553684643306408860867670870766703289878784383761058624730384645334454917558352809616931366168234502770984366658063697342817889339195032951648656924185573535136092766193295397631401264948245253728072765626018460512013525304582137590002880442191170221956535681483055877040110421607867501652658543746435800932918173659714152287835179107717517280348940151170009624380721156008070084796858159651366115951766909007199329698045765283169473771505442664154390667435811498016456304336411816444932310985050635480310776772023375036915749438252738097062416646615366483072957678202158029573623310770030318354944514348211879440252861234731836052358166388524241945613780040235852489466047500416905093232993817144810489787115914670838047632281554809593385149809287418970485829277027052521436843488838230040928802919878692090153656243970139671024248418595897034300220468515505733765995178372806281069621817654012033046485533158454830993316199580140626536486876010306273911025799330217282497241793838213108986391247306566949186125186343047029548466042773632750878013328722474671426331990609306427477236140662267179762623346573232583855894890871786026975383588249719620223193665517773656841891948560815607832328939440192562477839395620503992563801997917963941139471895406747634410425940538450692429802842756862560619648938278234962894531151598547554920332357199516882228461380010043171785788948285200045078551578054844127831001916042806060765773069531755969209680191408006675641601871737801281266195782546087738451814437333906314197271128048741444932486874122949341081451251531099967141998089009095232890616671966809219078302431684028205706437386592552015884772632506564683035177296234082303935495021643931082539453412482845932969139071328993080853588047699747142937682424581175241298722066766920209256471316093732755811636378023525984279412681085210046187401552231490324004554948167243882208895711112750791926576947218969435072139979654418898041682778856415975206210269021691790149453229727634396184949087822560112393493499889402913736156499702677842771258767574172017763345311870934651053593025974758560209539342732449137803469364893377016829656637032317052024580207078396263838924103577913414481395412726239061079751132429094342971017465053721047852940076907288367133376581687887340297098935111984449613448181110740188303477658146307775953428894757086777685357308733783160791098523659406437978928222099384575949212971214629419613412328001784957691766563665428475946457026964834465894638939759652570173648498784798479492458252572241203430073104224232927886712876535520125165207566968432959552314041677433105148506211645737586834501369285387122720422983679393997167442034606877318426056566791714772996339789419958474098792646442236505606034050466473191781245186813560729281885025445305084877442994771763508228743207776857930597126282190045795281543220312410751144898766811558160421883328730606944773817011647102067666936606698153789378999861106605312876849623766241048563512266983236287741225505091815688681602892034889405709996187217112831712457027306161342668844825247941124870925783820391493517587201787466627908697640873635545726728792876722929392947935061243427924716827946498695177569723836366096508607546274331806919005235691583667756646045530209019342058794316544166734364590612837729961860162526033759006223265390672554801882940438330629310202458121830708416397293669901950530273714951174228951236476096611813217484136136019755765521088361196509862575046966441798801583419144088839839987291310333569573090690045798592705095874006042681750606252311759435108076170074338348514935340123204195314040296909038760986105854442092505823803417648212532872916235482434281617657057650857515230820423317660627740519148365058495440501499235033015759132052622967899721495071057311987940433345184058235127167527441144252579931559822754095634143050497384992909851857121661955952080587559055691369919275279143820265740855340119853473813009217897368335681712164335924502433840214938280063776803642281011424172210979141774872848661700910183121070135273372609497697716989137671504452975614225571533047118086459160523821234004416912419484687151691855770341902489711116596501833566759173616582246726710443470559450512948121076515161945889082639565961265866539154187795096102177504248957911736975736655200955100199192239879964533830295121135803618456565286029679969395190747200250646841403475489918282271005886902219239280869809708860095453871375148732948096564795461580069662424663013063597960125191349111576886120201214059224814389696648364027570779156545151538864094877987382956385414761190566716660409965021949614784886606470188328406275411081975073469174330513992958477686997770539075452978473955349725327334064292866097509224253912027068900568236236776955288990640660907002347772985827222378972966293061623962939837594303017492844063970652177445951017709745722383937841370797640651741726383578101970631161905797253324941004634596156527142123496504249588480864657142638444347493228870176949321422034227289510420759559684900702051457179304931710962903679038029912136660848620258756691674989858060573188037122479942287241237605701875666081209109476229006334240707932555551173125603017793437887477766241914577377790559819498588444153606840776333650388309134233070656415777481738510665922265191912947516721062026640065165664461998001012591263815507771647151534338246179393593496606164524957211582788103263760960096205175380726876329877863780302588183665426129989057664560264799983200515774021621347140006698205843481346182037983604582431355776108613708662293273218774931854148835017466517111133583859028356799644496494044724952937564425404083986838144729180993046160401806440423444907316008174389237813267179160702086320672320368063197790142339570948216086426535672582929176141571207530536207826972694341111642284136172175476976049873780604357460407022970461226465883106482587318280567022773602180604203542720250086703074164404429077022351820322424911890759549926181446665458990558449605112058515811868155103312108551811264271562247368252005663287296188295399569291153181444970894960719526064172287755708236433559196139670965253553609967669082919107425441827161029734360652843826746525643228092122896167239874382641288904547766210361350586505396463128041617144169158686946832034023089824595791317136714428977996980780943499596514964287917325702624102902357125738775869814210519501736535936770848201642374588452834397362331997886788848122668271587167052637740275747026929700347065737268374747479660177767442230212051911230055992264240627581011571916007150108857412552628405007677392616330379443624970753640745766538771419726004584550863296244916896166535913573992099161216893079380541368359017035174973843493733056969860242123002971867075408922078093737816145600636817168892323885553053183274914402689166156753761723360735821748191801120995994773233558998306554259874085228428497166262096627807260438880662497966207624099249950162461679661511963718233375302174126190345249032050828252918537191086419034959425682022937173945445739295566372932931870232476267357461242456633027884945006712300481125264776296005635838925924246655449569672496488180850572074153917238519959784382587267578483763038874535271552407450859452891169448123087619898105152375431516624504939543979481657400845394578491670110458251873061624557203361146418511314116867983774283620326097595688306103255489319649447177528593767928907539497039236019463387762667462148988112937968645003982254816329585853235057899675504760160859333577235802366122848125507416271828212041939745503408278716404576239752377270118097591392711328000622932071544263972339868747291022165504741821474237462034277441661082880169345600757894536373673550829189971425512692254766367631342329371135162784020338905157363048630224296883042824125474480725879792376166535304882809577811099387130342397708106553238107991703907483682953405902552393423945607996727291035169662109331829377163961569015948530236315931635513282552279469801397846168368005048467957693567090611152811700595346241036564422861490341479678216577501002473805990632608868007217258078595090890783253953204222237297475657886747374531641320189699688117370594408721455339371775027016581728074559339541567478697201575470267555107852062266164280782945117326673139644477479796577904807501972300021815559613125943620490629459921676961499109503702230130684769415870767934076050704167823764528283418359946381351010216993600522287781566667389371129295036644863641153295940793875268636720327021557531929920535089608900592789387301622114371934942725171381529608649143414980419515762000690383599852891967334137262942454621601584037779136171408444180751227595834749502409121319597269879513750101180428045729017652425163626992761292855123595621723508374059674072416860063774946793400305269985897465434219482886297760443917950170644759446972299730716553932188826824715385854138365502131738724842032090959820614165988003154158138762644902330495834103736948762989031265409203243117627031035620897100941826476906353964575053730965818418789738218109867702715882972393453749518312572665356594575587882147343670390337920123040093219243710902450825150933445033085396208896076343975998199091005413027511245880064185080859351447580652256027660185527783866256620602920941090230485563202440791743900665636708481617011296817485402231674411008157863349506208509074701143360778252950085359671955746672480162570162532432121178868019208765531593787246595496960915390256186796982784645463021220044155287145119136299233208210302390673626985052414262541168887733239035322740448791934560841248234427540256701994963686499273242203553457567984497983867820894755380634764989140599259345377017333017217447647795416053116402122723380201865727918053219330144992491988111252378081299432338119369260181938314778560885539603212181420239691126609463833088481477644002888605445904158506283440315666737718975448205321240365678055274407768300934777128652673570246918995961476049136458508304756513012708590217069488640081041893591987375777045506136550749807189654021103212983611097454977309359908666543377730022588448957472811839733539293375686461201554440567737911202001021184423495695030024696334349620554508388168355106118212230979185420427770064112500291229369461765010142787428294037202011568825432540613250683073909875359031620963996164393822898708182922050313625064014321017210395926573251349972576210417562608749880633454554948700843942744616786735326413360308357488891838259247940773535920514570085543289901519417078555587972939616688318464144965191689283269440223663827607305710538598792704887408374755128601963534958865499141440298023973048575520127867798625895128790432843103614102927996042987288887156085263546757039664084929791158792062860684490835422734776173545649385072501758330852783619514196344950313985294855567676252504823192103217305642056372056787465403974098912260171579520139481401986000768406263711611403950118803790974466700554277167153046942319461941263676333453915063562478046799825175895276422625886370135869296504075707769990237445601960118486583740696334108164778568610288592372150166680610867179712639976734122649257952028359949085978365430810809750981180741053327798636761211473089852333593765954214328174801395818374834494915334600628580189276901097583541089584537748382305924362771367429665868700870239373831779114379603688644194211318507450813143199724936781905646407091519095232098103179164598665423248271753898861550581447016394252219655154428792625482566155062586270124738299729920195355922008788869915542018489062049290929111106078796367284477597530258168012214056182179770435256487614459144275673621792093083284901450139574595586516274893798693011489123426155194562657937284997215432137042092058238505085924374753562577533741087566702483573840416110714595337010710409019890353311722058288182690900232967110885229600251326064943422135354049834247069217751989044330316984130915009030280594534730868371569084905418349185066651454267762360204120213912703881944155377538384512041157366120176910713887972043441978951097522858741965951238157326580278125862905426495170848501567175609303155715018948223129730344897077585562900832960264959358594420810533544094787238492916379231779041750286914545412836676488952013693057689254540640869830907735917765497652705831995492581300515384034288602184532481742425611304376847017088807944757869645981674723049725894190419856853469461842305721128997168041860666738530678912388534011952826620319453045907940967981704706247802389742494283463595362225933013527862672534735426542719999877151514272718358371865118776886352520008366452678895849695499374350298434855088649942647011782273522184871066728820206280312319956504224157597887186539403606859396858930116627256561738811463354821102753015707254453814646500830344645497146542630936187348731649324206151854166360045049061938193435891446943622640412859328366961911640263176251247104127574991742313133905889796861780060850960912100593398123928762813419655055695720599503494960889662029235774444914870186046465360140542878236236560876747181406854723743563145332515142889580744339399260200018769692039801250828663763486717300279093308679600972972434928915176021475647449163308252537865086782095652734138058456363314731394109963728374255906707530963219262147472276954087552616402912826533557218015704685854360171548624793952510399366911413804688821631830172612193888072845366392251594122893238716934687657247547810263389989865169116089537491926122676595912035168498903054997167692183562463672935358963514660283833426445285422426913360526903904362469244570289403555098583670483607944047156652084883336648571074339132751983064601620816068570991366550116861780370338453573498500279710211076218411837162116752846640835126865047387854923496888173441648434299599461076859301367048976390159661931217194992579062661876874064548628676392646446781722504631510814317607037749993694925388117428851157638966259992276465762992128960569818126880590176292514245700792311327888465741612417288747269461736789692720236962428016085354005645674647221097868493822986860205803251666290539030640220726910418051296133231629894352602715531631026333871236713096263522105014421959405608235818781659431509189602689148257501903734250294934957695577312714361175716715928833529753819260156819024606026648298995029312914399895345057361589890966290405479874460080183282216397185852218413842886642981106843811198026418245198759257001422562380977698125171798799060427973813290117921369018691657035446988848456756928173528228403167944183817828635341591774647860351099865032825225214707601455338568377693165861046933874422109651881333661458898823095637278117951128324495857698408719599846256424469083419227637546748303438993039480250402197664988928068019330383311431517778059813179787491826218982354285726756915013687411467788541264984288771801886828408095171407287351967025046503595209268709225082736299689573872715476322007627180033134869982092947133074292968912547810564021489049629746996265388404043335993430992885326546837013468536806952432612619859735088156606550629845314211031173744884275450914841084134055110925802277353423808726018849068627272133889413910037489337937617136575859453827170149888594024255397911108985728587021426499300531765283381517243307298161643176873915887678985444025871357253892814225868888824132280783047361552250281170930716173748278910894131285609942956286941152599920341625727895725971235391327530192128358971150792029985871707989329625766581772164616773062863075689593010850775461639454149602161770618833944593429095716670750016755105601838524771200161782162151919115322602994172112512377129960816814452206164698900394622180804859313611942375056362093766338192224402934762339617711310844196009677561374343296449890402638999647797880541349722713190322983398340309123181526733571994187665780527260303802754048607934439372193096309994062117251807478330686581564445303394589901408737997816674523729617958780470401985590190958294116668048378239791846032569151346421399573812739878702918681614283987890834868386255413433648849389955745103492780126559987057554767745562513340948619679505984667082121218315001935657680610944705723579263223683885700065646876977891558658115520972249555767047557809662002835099063420315906461994192542728796374558338356360746913347424981248529039379410913049851185531324259688893799290911319859538688344574940439892540586076787914138496717364445810385169420505733171869576146116040425189066316336046096283832487466771294871119610582927365360457626631899623113839030888320332879471463624138001777695134540716109183672754442390247249482042719418129401437849987254213746828526041999746022750426905159083018837895950435148763552493691106888572333256777071118428713052852183867849941070411468836383615976493231326306859568153562641128249997029764974364837960223391600439482329223509452982676375593806203692143790837810264369695988642502779645441492119134885515592335655061637814054523031147067962564727977503890130624419848931044527461949405597181464130875141480792269641499772882403976539007211074509511880511427192377770599231331099089689348852244495177025813275256358919701360765966062605650481276520706704983116863164375181169087608433201045323610392980594628408032576140338864372627017115352566552956714890100594365413992181739588165080195512922613805869799982936258037787104336818772812503455021613615393228486429362528800550141806614050852341123159442017963098476750931526661056604354283592309340730203144991413184554022543436155749527314079301387099265320912838672265183071980530138766926800365759162959772870536208994115884264485451436473949522272633682532552456804495621670879313877397360965486903348471834298204566567027211310636099783862475693588688313860351029241769110166799460513125384175885948955445172272275756605173829430873288233560438331102186620638236015791333573928032615650396718773405590806854814885657667406910801899155383267572980431323963921337223125628569418971121143587984885640283588309458246613358353560349329277100809344039657271171761230761622476169081458648064620530751159556827300331436153854611930591010430573310818976057004475412444223172681024016097467834801443673923447081626207939337807970273428673652827002000828213923932550131291484299151440094509995930597931083946246159104486125232409356788399162162134564017387438072857848191528122290456566724007659298944275496921745775837798675115542214252277167240300699649844533999072808817197944949969120740227109304311926453990095291865507349083248722392740664898997641979137985693064862591611519065353860142336291574944788395014119999448575795720523932683241062476530553729237274471725017661826037068412769536042002643202378393335101714807324468140477732547246040103169211339227673775978786220482016013931822058876562647239070526155210117093603150470559639578840155371903255603026779633624887311218412387897053559197695957232633806276603005662556367856617557697597577185500640167294505279082296111341012557776292301152502893869226942697163179369327544211749389377890852515350004194566080410178931068834788305908906417113317056943851837394063953399211625226321649830664709228077239714223968417779991890052932872044760178421468097195515700033072332744702096434137348135295023749056093749446906107759212090485528070767429361499207613289319080308897275062083728381997596567077257305911305204549006388537308594581955730584829670355937971355325758485981417836542303328328025370293557313264385468557010820749721689141311531680090633984812405600808201418185558369553467885648775240429226045674223078058124860481369521356796336905959412601035186694042756208870774954934929800542432499034523885993628885686386866177765953249659779903523155443607285435525900591694012821722791485265621848182994305518822155826773158924460787430909528248519398583144098780338339243998914459349192928348674128872657452852536160314227495130436073037753457984330918718985312929766567387986391911970767990652993791960711008305470819926049501755259857392761547005038901088543427925575453654657959891919722838302069549607767888314302652604844596377438896207263528468825775727996785404863106532075827175283221608547965577491216996085891651500883377769780927308062238351414916736656483958457533040753988285803305690416528054213205203847810840326065147743990217157054185314608017903760596396550399330322720909482403842304105109976126726386247387385167361677451701403792677281002221677755339804006902800879446269132361875037906350308412975495161201068930169810789832628475781297579809084922570043917245792852910443308649169881819719199360853048005147444721821929627374235192144012933198323865504151419649470275746463161987237833638568971822850835080790695361270358834766787567502042504869966520084468127088084861575170919788813245494026322151574048562426343543993557906527122727914811191988786362586251341523268236670589196358802813748145408238254179370604327009772145091712018522302708981078377997659429155504152757202387554037642839918201756896536013045295935336970791415195837907936800236566197298499637947068048028202908691372682375618318727132457321129000292335151350128448168730404167200708405890895554634826557451141068050834938841774865202504711509192311930827657821836516551541692792297938943664567455585790031621976788494733103598135631499473363665506223219318098139569701173064890304766966560182838499529458928224687122474035813686291422300704507521124148438731782361475006753046732607316787062432087782023591263249703181097139208197985943141313693598722218616778632903029293701947941240702625002710423173736761835012285752066414709519266571016204316527782360689195034589782231751508284361636847021284580971619712035196919041636843672123947716584811292109299828944270304252043985187973242552314207883053319821706670883581182839727382492891891592235297692428867260713893094748371735694037020250862088312398875870152308177056209387564762398331803362205869288689759018913997078818563716721894283011703466904853882261249656267357116648875448743063359885598165281104889855706026695137066956511136168613988652671577998778507052481643736132049097354944518145032573490199055797601458296280023043594772464906605633481836238249009767429735998961351989511857283880616114221675022333828563735057627011300073569949151909122865185841638333230488897396716730619574026973912708778565249493172029423891061239658456487995567370539808790269765134980657913333317516205510193419775387675282735323709846766128803358275783238675195594705504886114283210239050135567250517891095963313233149209812915357731585990054020589854478066300417232144360521296886484364333149073780630075119200702238435217613205774207255005204053997686469043687876595518698421862112412704236500885633787907832153922188964936462209915980106361028263486988683267744825626386555897354666133351880793307583079298346652584795232731002867577596235504903647873504239966342683293981118697964248633963541069611633941213741031075142826323410858988688540675754654440664863161451667840989240596375343802936927242786946985528280464140220846728374303637667035724580956331742381769764845474785792742974837844736594908979115735388755712458838085305924164789225932590947269883295877061448606264900785119835778519186558318939123144840952295770947504644272689715356357091740886980468761874909956689587105427093881011128148696756331182461298602930635961312575939177719540320756557322770131574954565440278119074013673950164378855355525874406976519991866181633489347725760881397466402902545870181485890824975897593914487856933765851671925552216724082037750929346219969664758824716055889636049842202642018319230399980580835351909843031148014405118299198257917334201583308644247972843045213034505393619400909872794253857114528158874409222037183581834818694299355008503802689545592656555541385806594961403526810510791329458239090295073585908342632179423616679435001502726413966614383656206081518088214988324416301655922315766922011306311381089240039311471317367070201944674011407333205323980225461628181965752658599401952887286697093914841271799010237049283605011036607994897869361779526291223562541549058571537321479606835821805918859788119377609031645128827048679232539586226899330884191002210697274084718634485136721760032018789716708934391006748778678972776344627555153524840182561597485428460923783843424562297887966392471248337878991300208819300228659244359431178738126807300443597015390212831085517701902437292823041331172838766847262432693142569120777497883003020276990957678444235622498325926248602064862467903096793792902614951728926868180023906601732017901429369851530729503154203304323639053296465006810052581332645221845292181684811092986753548938953150696438344548539763008719744409904217668370660342351097185265912139081311523682712368935754684209966129435048045000341943607355979564510752682075881997820947255742547110488658629807990738792448635217089759915411436227883179062705430695170560517638198609301887003292934434352545164444799535331368658059381393562306935479475741001348706901161509350278270486639507254237491381274690035987154643155430698644289005996543352027693560381792039844738604511805357282979307626819483314975418902096653478406879047729237402688871970018644030293848839805145574397367613386941491744345398323151731826977540184283328153161470997376605239774954877961932193052765827034972610969144423711075405689572725801407345218764252696276517020735627275430187813393792226640193845167216898167597640680611932060893771237762742432920003443785606565819946180233310015975418588018187124334835165972762068488631096370358957507343609419079274786890669837247884829742190990698743768496627883335753394497638229843538476380268663728954999671357914296307282218596284068013100323782553546706887367106164526566270016853663466591215937019007675301887193972717253906884611179994651964689114256300887142692532385582427331638381587315986870872033996286246425043151703406078431541280969745408668284515028926573830269277965354206063629703953948958351179919854183515808989953157101203682354159331577520928327140701947551668735061458728412013463250146496492313890283679434287400625925022175686710952758541831007386347932362333273641895600225330745966271318036402712036482050834361040789965927489233278043886904608125606225663259788578547588443569862860412508265031168793990223751575311027596379635163497298488963045310189676528763660743594802464285578697481170725216596937546403452685758506023883632572136649973352631051498302002298137558004533536665305078047816017763714523752726634249059108153649890906059453039447511828584177788576575056308285719883046340137838503731340546598414268418134242840895020427073600762630331978865323433374625218784699215514337423569822391674801966931091514335134876195412011946101563802917809498670061543864881678402735644209916799760014114138386294076683750619891426871789200317426706314105086595617721381771856728825207196961623250981744725584419144241325089614778147560739704237616459557797473543696650100940432416897678178156865787300818128135843641190083015636722190161755169458777680166525460732588130711664916777207256898453063614070809702249404750725434624674343136850128858223851536274263925209106665794928953965289618143301460019592703822040180900047363173552602191010596831726276391011892441569958758432902601838342682973000205448915688863341039011502923187518179954034781065452670056711556262702604111000323145380135960975325496523126407920844507410612402407364715126515620128372760589149354844302657494257083376849276942410099294653273467146330569300500766522052045166215650607858224700607241686869819118563665947835030785189765558754004826045521034971038310668372839357852977703907122182631084533838705980828095493606095767625110550749177371406059777442298488587764090039065108081380430318020518389720522380467775498800887675854313927820236495421248843154426805844878849291963602082306355652567254652926580769712484156522297699201429185577225820683472506780910331773142879214353659570693975214113077651169070044598876466373778846763673208979540841096527375942167362024505839428072505564153103425691861916646169914790220750889736774891176772074319794815821072637989891349792887924129939359965822541114432167966196075725423541096733614761913832937247261711716641173839125469497834742945294323809936823315229122699898366434589688929147693799765643256050740021643302989577185178455953289515590992961945830108471825758132692864227511082007380779955382169344905271892049482980836146115451236141101547312323656546252105363712440860754973332054216685768002158909227203207527622988206572407843390589451987198515810813694501984230971805809697051818524316802717972650918029134929578480978296036763364637788733011257105573628731007135990206201268426222133375692895423961477796145010509173507601552035702631178436284178580906104617764499930670678966407002426679719403264015247794422456743594373327163316481674327509263859334408680557373713403761674566576639104366724510121254656229725488935216265811449817103194934349463270332779810465324563004030542730965501676778816729245757099952410503230747916403417315950382678186464810539681629422228474378739884823405708261787846516665903051686198661858732098519862655966702626743805937694872693794223651535210035953370844800742028348995272605406906626804429982543794635366231954610748858132228985474839063941958267108480911388719774550605782380238600175565697746490102969677000313926893021621398991602212188198587852397217320803802581187225918165410183703824232566210524832972738347294920075525305039435848706437152221761228540672707787434291559543345576020071005461489407188786580235577506139790342151738079220136409535865679187988188478281321667010019125672260142986751252435711663745260506148989163766545120317678117241799691508313443225100778422928321690722308789446134762397192476620635708333597680713676497448230111275099658964480540120296454524531942602584418203943892848527866056408187433756753241173184168731827543731411384567199948482657446167535938797282783318354070804999806465586670501903072088495047722946597417731476396974514613696646822808732900790235484665404834581128268303858671707575798392234295573757497435023337535634302810720760990138183337291764277572831859907701311396975986644942578707370291072900560750662527269852328814909807988201657070957696349390729073689520875133261372737967933799445819877887629080377762505363865443560340083545382700098804579797114664787257022124118804650330457806854916349095505395396333125872373169517788855269460522767199496457477371265434379784231645704359524522966479975513060741611118783741345069197989684139865286413595679285062863058983423247333845499590534761404287873618144033594270146633802570961060607054468230480470930896129262077139132772883769495964098475774396568674155452798178597573819270494354274449161657480987952390950643260518490237246908404692510185619224276450506716156259079732058691253007043153774753036074494520916309121330168972626441090914737614731145481602888788988091149987129075561126148515159906533370072031791949255364024646382834021255330518954519507303753651148303729046005515356742343729822529373549560264509711697838745535471652820370758670782083353329632600695973090954702396018049875444233961581006505500481190399402620384236295536637357402790597271439602082046398652435283977994389061756875747297693194260930407706339667333002422368727087509397064274972734901369413220542217992380609930486905313966171370627446336883804281312032385102826913787583045747417120990049810758038762851490093170689732026079067907022221587042916373645365460179238552324597066624667862984244170758772983019894831764855942894610969225142668114597039676425334883065260795654865223213218408252317415764825562623693342895538967828241673748013615905755214064062819525217550808004634213286400189904424118430313632022726520618293839675219250582497009921683538954515879375917667329041828578090622166358608773131504844101513294417735127371625589654063078957317142393701464232759689406700329151641292206808498190532181960929986355318540237269365058820270415256491118877112071948707444323549735132628158454784041201236721523557403409822583889939764779161220922275740629510500853128372511732684889356919439627308808022266503356972564474166038244671026700809974473130555385835598962814326690426013970426240659006037697532758182588545080746682351269561458983990514794502483709322864927798796559522888539823868236293442792351732228841666091134723437167670971771534555733551452424503757934845294866408828789328896274710510734363305022558772888415982231849966357522425554023531137348185376569961354957461677512396634112390677070893326567778153123521232274478931735189792449418741101699231294876146967260887629049732273432749900974440274607644477294737887311745251835394333763277064305986927859828706331271571918435555759344197017606864066397924746809205147247939465126107573903202249692783008188568929067492173711810981233343159164485810515797632968890576074832539631622520781298756855519231731519516907302008989307433116098504116624207721969295421019337393382568488369518211580893105016877871545724634466039766892055195847916676540736262325464371424943577069072703564952792169942577457060336055218072061096303825720906059474936303121766310601412053326039911627552474118380835637498159976187864251114027799136330239700860645499439466342317156324809883921098074291172821288250609148378308126635994220696479855699508718293718328123283837788754489756149083533144810883182029836383776239827515546049778126326273459184996612081141573065607125261721229589183560980407432095779563907770661141447363710777458339165564263614516359932341538600307627110502161141287002718520988918318645823661315325810706700476134489623097361833879003287771322024726306971397623746128501757456275552407665661517482072369292165108870269095246480806752666934905388343705148507411757248810902549769607460395923588357586196042458142408640265698509233818335288750128282726364338902186186741963023104198187996763747083193322143571091381579915319975993713485914914967242137831617012706534594116920687994153781224632412394147123524917066660563489267215860250619187070150105404866162026120897912022459816040776795247606673567915319030031464029589199085730776832188654778592788733859970526948949366327383265626723456635747258506196835555966358249751938257636565771779635609869227467987367381869377625281643605810388882453801757431920116564895077412717116605589207266457642838687344364846595977440137951566456519760224803245979738513024202567555638599829808920394131298405943324091255885764981424159653190258037885616577956353206513615126900711429391899613259135432741202689073757635783543334491694471532774830794773133443717296195323971641000062329330589104726111825810233916696042103999234629411630791918297710344098310394185675924111881799967825682509871645114179794382599056140093137939010953245312118995384828896005802251450678269601727805713856612677988089959708033411664502570394120951556900371045443932853977145804762400786584104950545942964796950311584468536680522500179718745749093118132561639257985951771316695082450572704847559892561806941193114925387360642378043967034723757507618287676585972870769950595971089250944554521843119460721440365726117985603886990434067676193370427315865892206274596178716896660510898509649865678875630058729425349203451113182374038499094612947173905065357923584423695112636979780313056509946074047563204273253340832043638653398329176130321186150881606071268958666281873734956619502685834205108127184606056758885486896691281220719935690414962611972003262880149700693457880613493677562038318115454050170434917723232858990094869052416354232223844894233910561429817702342995899411158304782278761242103610509680441929705756479153647265901412298904713816510614998432097214317464867399245396664496620802133344766733169400402002232701436985695140087814863394377883877317682089325242197647794554058014568453840715045319627184219292045334832320696664028533148203979897590598914116627167893506815231831576727062509118397895305393872992187150870370684840318530246234471810722649135948470137892781611861197129590750978835007662925433611735803576918803982260824514432808181179285254477958080212636936978034128259035450972230631239167221285842566235235375676051295540657552549963885747065230030452149600785874463746335106540584407878549669907321814517810982335099376473225484662713666348792252019689987738237033922168597901071126306371002952490775647164099713943060278468629419188130454683871013451770241709391507060066337367082748633699965827018982473594483662405829174297351647095075276561210645569145465062847611281541315191780657519718474596947939505253663974912237106257880442729972225129313198217399887116380794203891743070740251080672032225265055143419077775976450311797908923829669586720497463287579150790098734372038711851968422781010514367601572039945505688078154241891497942371775966214755718313904609243395814045540692736185502070636993230877691018303236565082185184479032609458301232435861197399796749537843617369486775906405133034348784861318965631920034264873601909548029166116336255470915997975511583173272560743527078230785171086970887470835538952559540081541674298947699234721051877376292942573943348963343455628906476053755302962895253627132405684198744386847715964961884843670712537956841279470180513831531186167774641667602912143071632315306278951983189567240269143026669088950389762568487432144321688355074757691682600284031010602915671298543602705876212875826572982752178850804641992657893753287909013618856469348511371413376825507009289138165120652873450103475555801919579867422865975182170724534024137882458804819921814313816818256696542072184985484335968269212534709472294300789658735599248958956577807157893476364532663176227633408889470406404255392318436023843063039961992380753400325295496365907101199673245680465019401723293498145846825283041013430808823046463024905879467145438406815420121848259085190817001859570333686292243984778455748995571162904921382530087106575271621660803866907803930800658455539626867759640849013093826611286331210475262503754699342388803753695944778592824187020587187738233239305832908557247464427297370885603734539878638915934979650815628115634366715114568177458474178331367949292070450203359117300723766865287551680631431037279886330019408395593100299640297131341944678852150663198923124187627311887679183549216184376436929982988946363686665398558502209534963470381270958491692743597692724979123657911858717887210481813773713333094117695331185995783014707173275744958178580276935957860717141734120118543207500721829039713965081184975566184087775512817299097212725519505529773623272593498298133247599419729972764333062182691393505042711201297277976904193305486738994593063357438008426517845140622621586278442130732555344663565283687308931810621009146905996905093659403514971273969759690174947527417509377901536126866258909957005256194475614549016916891844355408698307001158317469327268652369451760964661449431936178099475699384812044701066088883966614397985738815106477113356345039043389759296695859604576320812516120995206910445128059696750704329013683941613959376595581802689151803669635553649623746986761075675026785121173325799183561121079707948656694299802185618942318171413406930096001499845793086404970739910562278544648783638480723470585601697600763978456685435393652383474383958015364163670450429734902945995709087411712777610327839601344055866604329509740802912730250221748864596334693770715239344980865198769581676645834332226321005808949984495430449878018201366684233544966282947905180276717580186820459014659691030838804533025547165468978265368975303216366112227645982853610544460232361716813333100143597573602013592344100149504299782138531671554296286387746362935126455451449741776427436700508078052544926410499290164832608400993121829793270027877983778193670646697910886799196609071016605452744032717311301088987498143682425468092347356005294457759266908677346449960061826573152778276931061387240929100423078774419887054019786261937242843124933070760357529753677393516174019725661399339065466492570264929178872412314349410902379968149171251225176964801982053632487989128121681659348137380754502818028410242077721718327567691597807006301099639051874891081169780978900862667986702539527966701135377336785751502095347983794857973768999652960569457990352726065750124943735388363671791209777051975575038761974518453020329697248490214571750995619563253655095381915518329230113180661852083806451971908151802669285182422582567937488235744626815028680550566065250597136832792463630700745036000163196974438587453306096569516611687589040744274025015043812994602700063335392262820667431420928216713446717552972879002377583297292013914148683811593484646677022035060920157738714380999792075708046203965356035898080861534327269010648686853998194001113088340918370415608917031371382638070259117208351582172074428182919075429898733885316430265779522888381244896207600874986740443121311805857388025196893064795629461325913017151398937404570126689477123795624709393265925566730166208902234705898275228951559640465413130557110975175468501187531802542952895405601983482116015632213732198432256812554999749224043998933181308956246560152693242086702729729385137079441116680095148918140690328896634297258530197594468796607683637851382169887142873874518108756933107098134030522104533130982025822765068631403508678662636476431750577992081193925468100094028079173708763807824553954854444805209025109966571296689634332974411404960464418514492685247948076207475897066824304453584250216020425328148107413819917841295318852631173605182797471218320093683114929017312190668010920895277878759496085735770565830591932435375787324122995413828019457295964500184067113631781753458053386302052539955630603783102116989933126560447853209944003820763841896733655612065306895560111987235733069384153329854295192783445720453217368395398516280799392952511691687468534150460799521739362743024412557370594810613145647602713557462561445912292933368694152030878511533011037524944436932083444225377625264785275521672737174106133039033059591195213058188174801328537747936418481174801283717233764107075273272702560197878418704105527851120123599963489700066870718458651724697626394040571581587266890355386044926481696864161320652494235606024487980624090033420430428523522376845252623581196446984518176726661479637007191473756424830279744791255171363108725521461867648645750106775742255393219872055594444598072314640368500700662244320754142491897373424276095497367425711095933397137985234265586555314755361419012795179983988286153141592842467764515473430692773861359323065962422832080547957844185080783807132006676675951462493126688948788698627080994642673534712950055493826253177433770652127058564362542178232414372731486863845485959502463247321103040925972019854763533976190254058803539425774080295778615969233041627502022445118662335006642760110220531729291533725143477944245885504386193774316315888722383912815991769669840941392335319687306288870854268014658234052374673854780996074946005375822683495396218077296981929274817974908553937520407293796735721951182302979924102707311368623146735823128680071803100691293133518647869556686354146459890548175104519916038924662911032555346331480272111732312366072121734155975919420495221868836558782640594552093357733659483934693340918324882432890381854491042515908574215801144314297767113157677204703860203830298230954592500454885808946954262762504796320833743936604005125863536731366572414802209072864119565698150974396189402240788794282962874381910899373011353775593164110771855277126403248188790510079007885770680528456628563210238283250964980590199803911048385916621317513737181761348022802181742341204977625220692765761304780045909434359501640815883206978141487310804931763816291489580575613978407172182075174413291460595896385648736499341490569472603085424666692948280034571924551506574351005913627419050708639332867221817875648211371589054063541206265459423391257474423559978228711766124478576890760324904598405013444431335901296197103883632056066367431819721674018603369700097509851508207156721937666075751544488025714911132013280895793331189918739347652919805839288130924898046414293642754033247941195844329544120332527458125437925300203342014342653565218666296485801034837992378224900185153115183748905217566363768597418086798266959707564300002386314919632866633420823904848002760100158805044938832965443894740622002990802175381617157455145310335809161935741157696974898102721762282049990138416171304030363130684655585395311244055801553450161479132681387051975745944123704789324219411184514186468807849329798227697347147700435333268600086053981927054075429977794479010308072812857320831258168793418202347072394034010852382363869280762925380696112037279222982309610819307354090085290154791994300455955752667389873390486854188358180176837847634948046986712567767809822127736476357864594471776169863115608304879614036776324282745110481326649640612656813175030172451177241382795550531775442712113334887250494870371102640048087674357328441774803779037524419817715402486800417752601228185423970543787920753886210661070714566162859544769064215937048937958166555541750315676357916848751898020101877555516475769496789371177342173530873000334349539701284059672823396097208628756769287361954700734711761582652392718934887888990664261496353397340048206955180098213685881007438898177573383792344945133491975045845707071620556307203868808592393360697655421093629580856281112546427560075967086503898532066588144802032235806312917468860362398099825683818197768892513951727637856165891601410751472304879145977335371478097707711537941092457201185548019436840191879503427582573662328883369735040881901491826728584335722488960377005628950657416115851703870707426015399287328002765935553789641654985031907887280577558166993735571967884767374044069254944335345917897745350190718155980348619547175242313206745294025542643099744319866726266552349117982236434576507983824933702934472085565184073545606458528197204998960699549539003581875278744871182201403370765688971358010190704793472293591745367271572140631085001989835131740999587861183216063267375851803445729047859696492324097432784226069358787178262325549897891537021277313231266043534308389080657362642313958147795056612519461401456533970098580240412251080131652706551714736359923053730865513079847114490121984195256193169328756197035089000333817954998631248101677555347437031353353233654036423687424413802340394010399062069964008069985411936690836844864940297499823849194983462596549514676013841403298905375128664348062301949562574934188134836415536846660023331012236062930678615244223486672361621438593150538224154922789711371847876761559436765638219719883470277584292347279787553089686874074115758732028872421028694412338234713496396885323044907228526957993314244360667000179782649977830367294549752573784479460974068287051435419750511788387061321541586426483302945001650495818375872473582633292035139618190406505212136759718940850494428381569201097401888229370484758523633537458722776067745581508060704519916635034143900291536197071508060768893871315867666516280095188488984877879758871942354848525109849924785378125320392413453145018123907646311190706863972258460582578477648726199953023293520032697164216815234320136319060181133546143346017756439351879184535687618386625055245396088505271123620535182651038401008413571998770987479607606149446454477630532504094819702184784238605671391645833521657972796497143203290096673072626081079893979554297676882889990825578564398669584352327550463456326272345472657742938258380594983259776597192109679201922878373566455456800260396246858612118703197542432716872100757829924582270089092741815847863462140087251015886507189005535237533429968825207626088846660164479780270212369260311401442066826038763452856203094468187842912504364040853925013365297594484909864098141439486004004289709524409272293802033642669921691621769266365915344847797115448407100226738609631121995496100984912955996403309409321079423517623949560986888875923314562206459305379811560370244985282496528317257846356519199805031771092487256734851317567040459403735915415939302240932503900599605589880064680189747596331951302301994892610109722503167531910100451396396245954811712021928747282346845458758010714493686124942456788631993305968882355375490080579122513232847485002195869506507029052207543998990625586963131049633868948708188913889108570958122917021754352052948917841941840300633329105297589636099671342037045018564029653376555579386413002606411460080987562186783757073126117142873269969740094191417522175495869686683114646259456821658989518903202473276590878958365179219242643881881309763396021423045354069893515718460049113959898033960277164744058438856069007367549999395733489563916627000041948394511035547412732325941998691001674382217011550462962834378029174653313398421288445911005361625555969416230609236580419587114482633033909620267767858777859132486363903878391282677785515549089054518718648907896787689364913256865894252849255510149372117594426248420005845451288145238044201114415574971620354129370631928742579560815011977561711323681899061188459300932449073745260819565148528624306567238240244777418012415976477278327426028381683594075553687556931020735249988534459279757261225559456805385023234630300484872078889185003565038848784134964517990845497754653412535138311367090964976932138552885908240362866689194596062600955407058222369953793065226418546894839442957078050381752906237936026785303175084908249794188161218925476709442405436370616970273348190197532828245540603950948524925324451344124262991187408176533484763299505586901316564127268504172603010854608808869731258473348913904061891204438750828349485714019106208992383465480412683510625699534771155200192598980525631671054852327054937245057711346406133751979608140805086881676335298956145924156992258715447986759631145089192506666699239432947071078221277887300493036236007763042041791351418434105909160764073580708365272467686389343453871147191940636022927501716971023682267046124779722113919412293952527651073911228152895185434195257220004800150604181512794141743894455777922423904849557930329708713142303276885432311203413872984880166283968106421638386656859591401319507879129120557760662072121133538665704919617311824123505224258659862564882078617256881670845178337035814887268018555624841988943558962834477527395549717615913197663787262128625713087714063121503788592157630772461451392812931402046541401838922588471683318249980343675947418298188529064218403685410080485810174885988819167233249951471548036194309302307207327943024079244432800190613306808551626892657291433058173456598669940335519310894710273362224795012106819000132345143887491244293066108556191299412625374819535226524578965492939812660394396623865005645114357892929317732130290729251163811103318469556862687397776641790222387426116271040448656548757973110247160680471493082878805164326794391207766988317771994758221805188396992163236920732232299288750348321768613021727249168272031108401871218853343583009322307912829387272768132405891687902291527206668661795184949446157924134410411807718444397017853316869878225742675190923081162888756359373603449523559976392285071476948949071099754194145534952034479146326630920372579210648373022058159617076641787390803667472041551911376460997652267376497743616927640464789406196601718799943925321804612584213214128043403050478548199294253869514934483358778185604955717146731630045412389722696507619080491796282111161014136687649526172782512806253778940792495414412495706682087370242205624369232336726849285022375141207389593537816345123947295200615209178112174099456856361628181200995605187267564518694245972046604093070161062961987068868752693511372073692560114792148536154156737189072773761956127926743605224840352561377832397028221279848744354694535950263010964084474617694450995351210077096554804647304085581321354194977912497627950038426491051503988678035751792273296810785141290694807817509828877500643458523080274077362305373453898232115682855679969072189033402220982904107474420709283093250076161026110745330379065502172274933640145245424202691392467601507661341751908589568837327192547663945171415933206326303190425238672438802188995581021258368210896583570616745815680117530069401124497819376623951639056730778567559566150072329197086833692384234769001232351305579129567528878255590053026489907907924170834950987312127970241829861202183719402457525383701365643860666266383795670298667089423398382377302667392159025385861034178806182057191329820986298844063263077230331848609932673395172476880473295073246898405920402159031791604836915296049254235899158588306006720862620599401857589355448026984525442831290511919073506978109883683214401717973056796678883520889194069098839288963380444670068298956414223752788092854590770132820032586387976679200234651142284315720226725380437921626480951101276991991753375429559575300757450667041894839103520115828890402553166452842067014559280728807016621337924041096755120334910236519325275526602210920749649859536930736976938050713814587518431061510211348945351408594734765944571551874686454626782724862615431065453847144061877380374936043736166729875560535097363689738559667900395356411650497739339602258055197776126753499747011104140773345924976358587955318852331028674648362179975617719711099138819916794005866056678281788629793203434738694279020572056114036286953162746532469139820243680771646148887630085398913031426059728182848260893016691015681459160986211912090735667626279623304963208891390851843798228892165888965257764694894452472117288066774865465734440106297825186399837437818036794400137465319778967653962484758982308784484382638307209021055012211476010500175119121302680023535772355820971709213740667964765902483072664140492201407509709527519357859587776552573274704365637605017921343844028435051829849174801944297737549550831058702485842617818889604805482856389089080794715012604599942340845122071060966266549001769552836436645741516306409789254771251695256024442228481989259390687193905765651729072555436754496591263745338065865860262836139647994311660696973536523037608786060517117632042502417879134142927116262458503667507824058313094003679341042446093063735822035308342001806417495779763832917744702969600017599766659054377310270652671082618967046811771819329009739352952491552212312262936030784051291789932374249915120602327190835673988943955297830292311853005561301477794607324649075265608084590785194322321281430789924605885150311609660849855193352927165393032191401588027398972215462729799984922957773915695416633695609336915025352705091137102281408328527662411887529428964890670577901928545670277118308288055936923965776221187925799046335885407380521137281667016387596553097288075495333603463208217612859513262221764253524258992238676942867770486405192458649521744718206881272030018902692690204700002149255604453772498578563475055873112575414800502160523199500313827568452345043368393959035090870674456325125506109195827559368604640915947876338114596565128272859249464708539231519443887901694327685717889594239593623209220905538227252023234111443064755217331099516170483092116475565265901109664491257225707319268404396115107280011162879065809380807755301681795353793265595273292843567473128597312173480038075688536131300825869955073989157013959822332986190373408713482240103580271819980908560305947137382167910317999793357288771410258675220222386387000988861356988498666683681433732838923134997183359682796992441970616531861594090412101243305000770473816762341917876422694995230468410987587960979572821329714147466615309707335796777683749011457180597675193328538418050914378343736636067798296876963063687851554258232811192336466126523082113625473582129780183894250394984963590220043614612014587361245372442702088818826129957274159486327318462207889732641674329981352858923599696815841873994292389938055812337058820736413967173740228382607741661358675175294207932327827706186584066932958707460632585552470075191981522602849586320620169158199711371996993631508322201191313225621088050439906340927426797700166081675167962328738024262757670870962579163409392692992494769215133198821808338787653563725680465572070287366457994742292980379769403662966626833498596069887230055561611763402183294407343850117119553492137682903095197165438509585307658996473923413011911027896109636098278308458516465762925630888216982895216520995729231162240144215142059387569995192643476863377742277881703986143929846881876988543830794832985405141359692581761287924183356671772818695543689056852911324316454348733500257465855935688789169309430948626109305933727392038407297524554285616154251011462603824969049089160340489408011629894776134050485078291588888603356640386083458648490068540869501239998383436800648527235039633885858703080537011524032037118549968640535271289628334752026140904873115174104429583056440479564017976073685908028038788732649028021776560797585097397038685897297685447947253284221057590385864932020772112567526408505572655659603946983206510912075894872321340149211126895191717925879767357789319454570151895487228302250438425606444004483368204484307401333699660954390084232508137500573728944644009850931790973941373185376644309796111100224384017287437397860628170063152480646043499242514435898916839124840217740617264993192800322177146052988453993148090180707141081424958578602000962317113172425533967068628363787434967321988751485932254805861149408529767346537691092165079645564441968539170351120743706910511154911885715037308498106593784365572938108080930196203992325932848765155356411433563102445031344483237000942756741076351166010984376284418708695886813729643184129035070869540663135451905174483893067503728869291715245620141919957798976402901511657950900038469993251574908821191377098796883083482587571394605497867123118677470243089662419506909224629570180941307971616266879359922756461288534097770497449581145932667280882967182757505198129459075466827879751184096686839817727822334400173432091268748521638174081488795630587013828391331924309744911344728918979471689943496269648347398597593026287925224747234340471615233601857934272835532777746621841142787117213159091074003952741261219944466731234349213118435080036622495387620149759002230038096139215720624801638128437271787054661283225237405070912214374478020779680282146677246412611836556346783850795867861136469659160935219378728823082222705073118171923511342407991351271154149624196245473542262425336567510030136874981494409803353481760402026314172526352550898775893707279007722965444116421488525286813091893239954911585108813189201744543715805584755171989888222896921563139307309817603695788326035086098766836598975854210628746407475641873119241355250108373934153613997018042057209309678558871971997787363799612871406584934915380268076149319461479106223727232077413235044331327191369502119557088148622383560914809698630788586522525539925694479931765707492514347108246969989536556130368022061660167851264644751960907888304512961783899027581841367426978879396447833739028707999020989684004144059260800334162581733696980052435403546314004829994003014501691224482994513874799053705688133295386456132823291327103183873461065054420127775294140595602691030844762727625121689870205092981448715536095684927326198265601694724300253085017135195171129858289841352161521938320222776937923690799290363268395587548635712277032643586119597003184239084987127318193549900653702557098675550409284357853442999283019538054071933448480127720800744990072860700711325956189104840440071070933074524737671237203908020658239998951481457251156510678758443526014262670078332710930283981488480782366710237796009147518006001876392348204514942524569049842190978807666511864756316063545145068558019161355193569765163704533273977868980488350601249627265166704459909391650554664978851263509690154185766120888017384180996093195840230384623324006817405326530529831851161803122377921458164691623420151583818914962477251313002891821289087521641476531141656555805050359817158279423752341024713687599298529437457296582132653977246110518604312270621419057177118127117426829611191139485773177980702032745805082654794000867200198172589941471830793675835264695739303332914446561718226217079551119519541460019410999478567764417947542595781749272519403035423848163603709545840770632899157616648340220082041413918220276863499743884227309520068328661938601069316707537942922991816437114047865843333211795643598918516256122529916702136432139649977669413784181236785802516372999505580994425544487474043157979415786063627245842200851283334448788572422578205153521223502525465758301328747763000487774931832550642676951058727622505675721203141772350434721250942971335540976522022314446379725007846848242375925517100370465016496556947848994204586519679439904409182735077294115915025470894657216075692486371833608548995000580832143788094117459261124007357578031577357753320941123558855142151746588385860818748046717644460645957318427377336727669093948856729997924575180368126320783723736623373927649199432064776623341262356983720138520749561106592472023487040940017770847161078246286118419477021361046835760153887767576447400536503681769940364524964410469188160070626230654542574447820101484187501105419002109259995783168884751318831597636802669213553283176440374498434054838000655512202235447103191183230808270415359661126887373182188768391430516985620587086452294860168306005808373822825988348816043114778391830513405588237252327314696191332581699724294420323229645217431826829150334731268612487118212751536054620416625473596305279055498791812100259732576365755314094494228008867200398267784336230969860973439847296278519482936816136744180775412656928158190400781577550777583730390837501070317459184157311613607515183290680353695475122067272662223846234797721365354413084012317754779022241723442741657245470332542624100522187100851620390770795031166381883728166419119926962838033978201234816947070230009229202530434883542797429589971773573980403139492404283486469357468558990026512441873938202666000147313309611158421496099449266067016535045360187013655922179294839137353921369564500903786440505203727671869470251875843205531798912602731925545525704886790375302920158267574545768527313922780889634205749923113959228522498956087662080080608325891286882152131724068068015051508013079395950576417725558130821280353306130164819060209243705538801543425128929588212671307182749618157839643779911780462245862221444291847405682489442992862332354578509003998767267932388279687739143230914807785595436536306809163911479755534546937520045992010980899164914777956985819454549321262461885899456088372259329237845894635748246115566380312287409085804816491536194355762565290162486265590288869797101272198563824559940338613911163995725444117758615869519390693248726449131364908690280311904599839734107072802360881535668905688669291251315019577169803932773239009095585216769545374532520382907856754880585189736852819122444428368360770528105995221760225486996358368755822279647951851672623224511827432896247961214586648790179036954718353643868544837102220311143930712405812594231246590855431376542920786424196159293194413001102992896655114076416230626931332895902295489518362976434256077832355129484927540387858776298320451706240716098431209467375104549995957945608827968392838137002735285673594435668384382387035101359662224989342902061066344280033327134059075757528527540851329566967768913114756500076915236207588460666231174066140671133048604366316722817972834942942147516163353374130670949623451573584144443792249135086867882450107016825442444301523457573303676263127954621897704761042400376854888735337090503509147095895830551967495059341790845001998390866631571635929701377630068755166436996264224952452138782057959110703080417938956928942321370346181582446568315181153908679888422864027104425579179414290836174091181584384849786925413737982371404874134574246213958636861144743905279985553458870982322716182098011178656530165592539130168882971319951111360910312378659048654482817579076615001436759904675957901248527837421287111546061503838267834234525710728270229377865095837306468989724430626151700501936446019211759479378010470799427998806860185912919413877685176762049688986671065663595331133263354804071604591379962196869563545844420039911665389437889873087434104931261342254415668965386221317979844743348750412380159154856865740941148789850381353019721861377677701074109720502150278871741605588743492135148337220463254365514407242996722981394134023791299267484598965477176709291793023803318727910567851740972054892491302921974977351651689596041289067303252483997546988847947104323707943224596755108872849192287697598094321648062734261927539159824183215200575161952448926739079277087066634499460193970760362704670903533190949781049373022985996140421685651751773511911265996861094725330786607751422145589887343306022405406215209473344980286086854624312619880018435737729370177563599193161981717532027278511535566973321490550676664062461865531008174569431512605411904167535879227032078225920459297062382498832797827427561458485198922273833520701024744670042839351000734678398564198485392812741722026283185459629704759313734257741057414421286888789974264436527020462051744006938825087768622529504300294097940603197068690976154178671644404430564560465091863354613054033143160070096314089188370896455373796993524814326339037695882956025379537592581155762613683040312034351032544065310510103102928679545113302167562297977845240841712602862435135540806644399451980593404079724252213547499166945177732109665759981259909440725185186793427070617562104304287231620429447034011182630792677241297168524471377048303504903547977673527372306700600127299696011338302760957731639274366795364755985822443728611334921542543582012674720757149545647330410315571579789918907356600905880981142055813919044499299869849957921045860233384389810344995782717743128145109584830138195240467238060980635394061901392281886293395631949006256072933820970640767370268616938375567746910046053013832158883666528573482684902477902433175785304059490116418715215078288075604115064534105135877335774301891818639560917145565888965092232637589516183060673403811572962420651238973903806106477454630301393611141614191196817735715770164749592271215336605807053397016051730619869846757241114009971989959304719277444418702682354091315002205135913803549448926955057344350180163757362912870806437498828144108044053567631432925347490963837273780972764642169193161803734128412286942232400189296788557726722062600815465184950210639713096500536185808145578149561194295159182113811795990051476006226782969337988347897948302655701657337551774237924618028309519769548333378384683113568150273878428802259215317628103422530416406844028180821147841206615300814360885879261463073853047456098012616220870506132812384619516509024733029948246953584801624663491052153252162120981649520708902050175951509782287819047959631196657908180440061779973674407997582946728788810961826753393987413408348918392859650182906858231500262855298435221215865016123197279828758254480962380393011015314681439370832743429129763354173510800651868034677805163974979351500483747888167128114024213124909647002385248292423345527043419101486175511912808427636554214236691081918520131261858876905417899218867930886546843161815278910372214451522887163808815804460130401046713198151424920299855487911492179461546453972053947239917981697594349626429972855568351157786819966560664260584480135044660165589416191086989501381042188125628864441576744287669002502442589891549218202373738632360839498874171510974685448929361705321271887181852793012622053911863668399707737253150430525910026716836420767410901695801443633923663091561283579626534779219939946780248653509523394667312937970366460745976074099196484107862137929275263108907510357444110075944614583168887813154652653452151110967860361866554353697094128924999773270437524941243540549629582563342976512158956681580919247442374111636447971729508491992851211408697160737636543147168881509352968419518238149189852615064354750591920331011316235799147292048297515958607638630234971617856320178664602676820667962799353081705549927458031475031681314247931931903197284784236117073566512183156305737586646973706572442394985250539242916367279348519258518227940198339623269861356831519731018722651038673138125183296960240789639419610722966714680822764967310698487909122044730219049492741517039580873768768167573331532704173857634800915441840369783258415187771618605172054944533198570744891838361150513681421508462162936705368280066542698853324644331311478107181073950878392922054848638499994119764680912416514777519123567408192810316688271726868866219958070544750765497133881332223477956367159632502941923658177614228383833634243461251911843790179391159591529056422175099751138432915116761741586775477740988619511243034787989430205405282948880146073804048106078818149460509931704087877759645898039696854462181169916116971999007252574449638214096461563912447559525489416179189106616115772421206051792405044998423072471440612484999818685305281789733337563960296801318995649380907564842253459733554271491436026963897493725838721784470353331727745801492535676690333737230251624121779821073123743006498654533323707044059965131215197080888222967183980196685375038489856936804511906914588859913795898282346137706230865882485894678945497548148605127407631827159779089585917675782282808003371569399657684263288595065234878257959641756691469897130626133300514181278955434232041925050470263191105627099107913748305194016343842465352103854923173012899023523922041934368995871101993802483368419487527461307513929579150779910475834988240969653687136619105506033256942112677412050831401766045002234124636523751210437994333537601777021046733217846220619117229840750505111008906149435442932363926222609793040528874719270333610558073428433785153649462530588231960784925102559905566523341781087471873927535409834296667847042179137511823587593777779325475973493447757528486872351298460716050642344738526718679207808438271271438885674053159216165492400651927065216407306203902387284904999509917765498129637329693977961541191048281802122160799255708514590847089000663415204910052599387499422494281339069620840353243637047057591230517161853371545356962059136714767125554742255967942717957236337074332534688101394100473983883834844985409827782497770764261151485253490834709821202586023199927492503835407994979254285769337970916943109362587590684974114766461663780713716977996393781818956616399422370153862644940830905790842295357089881905196890269412494874388398990400460561418006130280850133749316435072178300315797933628225116749382125645781132934894349370480218249738905906924697425207202884250463551602326212069883344911705181792485391922087863766209845797463483536729019862484344141039825297983748180477486135585256688511715714026838672347134496892295756143094167234949177152969492428341312508812531472055540695339847003258156131090781488007577485534106644744366758933674452774332900869139958649690701088658440089050809431003214279030969920893297315007698811571946809091256314752607798044742264040989447302679493685016929952887494296697016547791582041132468474110715582973492095006146710849480299727066715300113641751865557854851808262485872375981800244897751620617844291322852521431266700203726817312278303769662577641502316779116291148818239238425150641685402843745863909012173700690629193282792048701796576110457388179577107823206726861577821355452424442605798908819913753883916985432387181261722671256035724152446680942942176128607487545405584758623977925947027209146229027117793949825381630755095593954179888903684647049594844537751532710225067805003529017097281400377377786565949902254184158719698847715427042733837485145144585104490823513566370507949825847125421772678023265070124539867932427646383295905882210045642892743762048219393312892794973479070088318395458698796825194230032633916959799771197657664042076429898039049260747033450803513520129076806602003044160658069243461392379558784802039509661329150035102542410509657592893013057415705086109619175080565574639902574412999978170924154348739316779095005953776758956640490493210473875186380488999125136058483264407150736502289091989988085862776352125479916870602023289918846849419824532831895699100334283188105573743195354801473184179224254302314312627586810420133213737804804628616724437564220332554645501883494638988818155414178711199981581869232528962552317561765715638345005905385139011097473040982200887723674011003231870677890232952766165305210265277119137480072100747240503323225510756206350558298068778004565776500555251358742739670053608606095837340721309155674879574567348003536478110401547799061991034879201053653958518151417215033562134733586412364829158289689261845368585693889102060919393125121621257541238106146293270207928652471469409834141524418540131222875455119600353877466902825434937937013587317563207102364332153255287104151590959498907746346011231113465859451822046419130556389377654045146710111919821635810353387226598987669997116159980835991592915455316399213049183115714493030487136967004521746479693708867222078315678969264282103442301887477611766869315870693344577096650849262823981491017800223916811358639251715718981836175777975615761271702169336453993406724473909826987581061973752093595315188424569060360088983593134563124843308185720169168085682961385552174081724773604104549547648261830197199899365228913170711685826298570521565097506438024968786345591434296703693461074187013667094254456900796089895739155876209768053834835308307132539871823181973741097021870904714252095128885580908368919372471979882965336237676645777087305927935055859659152772854006769788522619295900579643898176966341180210963084101588161415116234835897156521825181843387022980362003971196115902539265972362567513135502518462961409558565598416696127240702930385840184424034580509096245475268943593197015634916314012421000124092021717288497781145256945312506566172918892156089921231328934245231386703908324583991584609354145791809454873466553891801791568198583301851354532343859203576852661569118258146236722138139881447136541683355152423808478914428039352931400140825431578740392870734413041643919811039394184420080124097869567754506909053184157998039961208768979502292103778771355245209449109533849786713438706850743993969523070947615952749650917240164714280488684564029437150296846499338266610847887004877397682980231914158368510052567005938632121060069747798301956351114137245642328080022376362138583727473624030048202391896138015732342435910903848357239109270482202432381560220106354983453266804209889254570694190402197622674331500684235762874126026667382507867786713185407104981064509202377909468143597623344889669473865170174703838945097937469073919877076466636202609006372678495923113343299724519320343714620975247183417651907365681818011824947550267231087860835461064839706774799968523825142235020104905471059146378832066516473817985149240720140235101509804177227067915937332181708442131100751094124622843713157926613842427071029579766315082819388754539895533554438942553933682335426103305456382084727244148841068482078836127932593278464091477087373461668733486007284932974746862088575048291596083379725548129951282087208064083608864449328828192055667663623098218701357893928809572833613789502796368401599428550284476514851603371194052215583944806839354600644709859636438215506052397918981444861610962008707793812850743513698921963624814437740693138026166005131894248646122739244845368384687647242143308672907240619213456144545745831283077887172447909330917083313490568125326815721526308820769778031878292196873055192757181437808242503061408088974428724857217009346243182137309040230871687515324091321667827025716462461662964215298630271485668667431583660663785094321496890166795778167676994636922638231136643395337353403484571129862364202705312650697410511859117938165216011293792388656259679780337966626640901720048895158558762846477790562602720904377901465878158423154395810605070334868277728272584131676605981312549721887928735070867659906759475164077868815391639179931474543259165864557272531679677814377981541729967049575300948813718817700367662229391468107462356863213364792066609596591175066898530899794458326523462563712214166384588103750919795291118415533501473114520411352461357867736753953699114824447371497903978189112864575722623595482676078190404447361955267111102738937579244000276634724976573747286683560048186929824367807947833629743201258140510322689659051435540699307950684674041681418147204579867750510187490141482747364302400286274510053774242807654596807725665159503571663860999143728155869013157144347322308605415258046993614447221575883105010821286135003726529172921643794976437226766896447451461248681098064045315379106128933996092779828581347564883942084314391611156828628322116499260539058993136537646971302411972787460670121987086442956251216413957805676949778258348487921441124003202396695930376821736072857408144303154595057536745045235250211225603250675500288364769023239622967457247703064162192068178048168306197451125914209859506968291901708386268141557372740436735123105811551866135464520095028506780337724688938193672339998656426743603954402609684334235714993243023629730453395726442915103007411497303350912033742347089012606437305647942000936879591788111068078385887232239396424907664188719404685499003724572122342464168373084205499400474906736514530936940071129786251614598743506197000240161098849627869841350720100691153482740947726642775168456661894478818902419844679216721936564345823630293773620089015559191558900113802551377442947062988231700996000529380909254869019708444003444003352962720234445329770891588185475109532791537059058735839294727882394600106291218716617542469655521340589421811434819935378588458680082675642200094759759577190250059432100787591177964345627007461936844561334315307892322989322995467396143292986873799523976023883834663109242284951055724519351181543120743140376404017244741207157923318631589738247404969398035817527450753911358598707912037924954964335149062535645485608620407635941923945203442243021193418125968821241557742606802353702453416817910920643186845249645211491210413443107759376005129168022762805652808034004783829441664857813436715674233347161598609235234406994161239730071572653615442156338346464853138149070559020218410344362085026159128066352400083308104014665513324698071797317655676256987595093913674253174331553820116289313503106064088857962782629894786682209537302619560574450027069290727452550085692060330308428244321801806986384495431517836919847671171538224821937020533014443011295744904073744707703705235666181776092545206801116424571718043099482798257074513850907701189151048336217439840918869338051529223170640640871994170012888311323174482660827804379602663648651826353756461148766224063348012756878971231906899196850342895362119694311538296617708072550358217454140754106829797120556422408189354013691062570553529406588650876028871191013397828279268760465263264780522557061863485446196419974773059153400621386084522501636080783495611106323644785200449734749528010830295770261500454401688448225116917574347129247541973125945007819364896330098472135171028772345297201553354411882456696255024565130827371481546153343855250643349788393501469863329151706794504046003843192003714807650530269660149855221963197709665076115147946308588114798405005834080343434206915271390542256061406615579024711566739314762586072383740038842878399900601637215295080485500755947139814303295528279230058119522145356689721857402547852973604312125289826893521148848327119090116471239625490836033911966785806932024781156982859019763471145839316022239851394828671397478382339664513323878481422744227153266447749076086303129526895814887072086470492345390498560072903904262936309915316969357078733904858970086263989308139477157372706428407374055647762607022491461526008310463197751912706981126741068481529080937000879743213486652498489315107249569670112237009241087864871751790905042387391760373739407126215199322585691472928636523892066258709652068982342945411082650503650562811760507770981153492436113356248854615431561502748910808955476610270090769919074722606565008765282333442072001359081666894603713070592455594468169530915122569018152486897842489241884210304548898983711494615089279897255143723169338870950607133087224690661292051102321877544568167526594682950269477153023451012377027428127286549374367006370342388645541108348224596420818153122180399527545980040754341575572269853672083842035201887879718788840776387798949439122263444204675103472753335606834919260783587453320167654591959423171165825040993417154544831739065204779260390459482490725972534438377260068477242041469406147868350365305991472653504270019691695130839441887631106192430397614192910908294601627984224578197082622300527929269523127496516599481943943204952632754880453290294688307321234122579314753921712353533247146045761999664647173808734857078626469571795163652941381773893334733854997449249670488950666558532254977351002258978652741310961408889025766111493749997233948878099171196505304535103089277972500241373225091921852228293106093948322150346721929652158429298560299860737477070835829984483644534167755484480098339872222248519715221454952421969183460120565395191099762205593903464774330849227604983864124473743234154139198398419792722831143905700647650878775452017487419673374748090760164438264465376534283432069230102761961623419446185386167548769865170035692087598798226485336165235379085611867660856381444540016994550646302821221084385306808819395279540235299205448676108692544569772925450391700758014989106545221693965708509791820163354632327270125453492298947836203594186768377374504703555624143055012173998463712639404780178154266687112898232512023621386031251760348474447108096353768382807654241106034034409262663798425880362925787637420349402807479344874671428493395237902377279361137318688153392067307675664307811722765894684798324583823547909678459481255725300763988932588933208412182871610258434529899973440984300691656881866741348812081840002950058500643534082306723069026238407322226099609777345005225395802393131373741449898333783207473479309359591593361837660274745963842027658121001368794083120889309888977465221776146339310398572032805590648279158187641859048998225465425692511651328571159887595221469329056957146202492046422489326305992405586668651740260947572330301081399113035678689101957120979922386998384852956732489884219089365405782085225767981733093556915755689437308009380267054782753046672671888516599371721873510327380823962942692742795986872621178361205268737068468007703801247148149173666185928068621691326720244710516927402874707930354017105462155271521269415604965200701119391935522714191745432705195974841854634311979335701302416640960432401845883500610804569280775322279375009272970650927605252005767444710312800200277997988474755516050503988498400655635146746786965835221895465518853343600301728520861967070953688969785567980096465586021533276973531608171091722124160980161597428388640690226906534123762783438157166854793538104017866428453591192424134871505028372317237523597635933050000867967565623568941419459607272260454553871483445293246955017225042552220925219959774172370435170738873173737497788642188343051064014420793565478255061501648586417996680482751127516465306026478347053368098525317514854264217838194450587840891367145630003510280755160132818778688457424482860643724415364257170799366526353351051742734019484279804640620207222005820743470372296583669306917344197611179591172666966430933271604667659169626941146840822273062621205595608134614264211211285171075897145817391991131359593466379430153543854589790173174755428608399266438432701929321814514989669073689475022130021365775217789459463058052757997560376167887154168016015236790866810750704292374656720012573288641468493158817926365072837654959373737490830371276316485943112036770227600288679389844738254177279096332533065316600876099877783240344711872678950960882012897630950070163821910633854329075749936783335123815306223201263882331478952179598503130976853945126595350939285824831712540001578964498949221884769343447990016565645740352960804531663178186421738944223305610459386406968488960674925845383456615386927155499564812973248190512832412098159792793109532074600777002533051329303350019748751416274029959019664366119633637727566753314845120620016144538566019776387546478014324860420759445047549359513260456833172958345749905902316015817319809840818450682414203245287787902881227828639116289344972514355216302457657718088579127574801406260434961078758074525738507975024216925663004788287457366770198975923287949112417423508746525433634678445457955241936706755035305637312639904280070690557429745606191146735981661847423257867651625080053316480609951885089638090721275432987824402105170679751356834913246831581481783687830806024427584215934542991927895031633595886434026193715704471250551490099885887865705537970452025871503239123433621151030877089275695030575350281986506150573630942864420082636919044378285461712118438722810853744512530115209048624173568373438500949416620361207253690755119211563907016036362679544442851626829662333380253122107909010254007367015469688096513217076326391871464851045425609654519754608436674791088602615252346838958117022100328704166474856936541307090381096178250213468529334042864908933742185196065749563447656977872518951827366062303021303968988172615375118068353713951237926420826181128309486668548924398120690346122721812361407039415647285424535962898925136616169867758154503992759530607609753398634599026112921776000499098422801541504113099512280468246436296608470114723004263157045669840145440938140705548691286201304448820097231350331703474022320187890330397232410808672787096133825850496987464785280702654956461513514988196828131168702456997345024444324306984118570493366462272845871832340025474958538169308833909476400817858520770628224488443780096015499277543870826105438873140467859998393441889522191421927995814093202461023761151388704095410766862926967235175932445970176378150913559294990021479310421681768299294528051267394079992193946814896811041576929094785514246781988690002858357161982810182254662357259425312206916127895185221148791721711923787967547963181089869658494324807481411335686995862445547633403211317539334575853875954627317797848758793243688677666517648177978108392132273211283540739085760540590970824410489368264060077196034153468293603586743870428694117531430207838139197141127179354484590857730318969367880482055234882365943819244024859171141923586285471006678664140793153205911003034831652334086550502751846685787350713839994227608705859448303050022899801369722424481625257526746494508509126231007798445305634906910871292473160048395104989346299868087311834281400246248329034209887988424792042242365383652085253665582699654528849035072039985233146674900822013674498756797005184355777548983366278411649055619686051575445901143772146199088926686039884441530339027969702310408413956773447489265048845642125520597576378168632994448424595126598287782781920671508066302548560802374966421899262647123932527197460219177820368664182969045430905275997079303065004005956173647886842835035639774429480844986999076292127692824310509229745189209082941435068956609516761641342810187646940875840360180731173539058864919284028988372184891586046808218298457419909451432390099150689206440129645832153667248533331900022488659562603572695037509569897105866692514450410118964310650296225815769969284484647773562912706113645033205946781359686314278214928211961574414293096709160042271365381680841820521618090590945532716071228998695930532669255338028171500872615058169961094055701888020687202625553579169411330200665645208574191584879211081551243969413957142914816588497991704415978456133877737183851157693093036714334131942759657804227540161134544447313003333538127890871890150442759404484851858087771217409121989201147813566872466225900909454043428606688987295454905559129712655578158932513081848552207501619833597072210391887306317257057608204817960369200785403873342921705768898901215165531428991192541270014081095251152796470749307001749184777283732031027054495390815083365182181168348609940302938969196928845749274945259671087747736031967383626289014557792406593538487262689229926030415080709185733282437370087956242139868970783974381751552668951478327954513121340450774723395989460416388858320660490050867221038650706103046697902141399022167935140187253184774597481334050278686732175395822428324864495660334023414596492627919682821554355154742991590192049418705053877454888692393385499607172354212334636878855339936668679206610593111908702376698881265819199839852994339795159556454445722984601575976436488331917558538222748335659234639847966288194526021532188592774460492470371404542343041695395688293238641856638993170725862210217147106268692995272504063814070950113689562329062429704842883125687809141186432034727097957726338232796058531469864957690909049565452627132566113751515318749816263851917193648202024395427486744814182396260330892047494127793409760460417760072173298630162218545749835340591142415186543831858605234379948062283827018243643573245615911648271228694189549603362354681263749026478971516847791360047580332361867429424092999382287798038857253273268404280255581412919739348572303503774523867882675366015578570706985484655247395317580961059377515390565354463099550370876911751924156932338459287389920988021097388199116652676017547091928835725463727944673046886877314192013622046940408838222291688396194085585500064804108537745335917141291765067784193821712584808488795029326708598744618946628150920587156605581360986720057356637235297360208136227979883990204085883276533772801657224352418168486371701943018297430371545814064850649534370323990580779839532099591155826020979827764996618903598848848252407889331225711260598935403026326849896313376425023493060846344781058976246537476592291944903281184153490506858813977755028960844147924333840409724881870079891929343007817720563093395973112455658876994972502470582755460557978100450552493197754805589328158047516994331311367792819263928876484947413757936374323299516048357251897449852262404062287610485490603333348915492807661003838119534279621597688256827759116526128392494025017927388902781976668794490853476096976338728719719602383147817334889693137427401979242703601142233061946903952191933747997401122348168232009758792486726688159550082634498174395386798553350971978325130956984263157336247807945690586432637962138884752043446012880100503950481961267948230977922369098742338420177011469993656153177635080462785944394671106806602172941427570590467800361098608182430613422362996941416272289633769373002111711131815047435826836813798096049025592088875013265791611922232562051078222439517846459949397165277042627401141769435281485662079335860940549361439832890875425567183048452121355861600106635266446164647990830499672563038289139031834120108968566258777314047686843982762096127408056082718258905671367730886783418325740980397262969214053019506703011084168275584511962712510809459232058816131742449427212697307141847803571266638000865597962389813703537044416173660772479842129260867226076830192699924051382575025614862643991603535381201002928291114473773904964579598083490628329220269588364960463346726396127645927195424109414618315446114001254889884463581695113072603699526830628320611245731387222827462705576874905685512257193234263888202800903774533858847836318039520201073202209644937782401309661789584846327949566013416667540906012168243797858252377694654920433376483702007271196453989879982837045166379644366656022794223148908196997873551995180695088949605958413232649736695164141999781518618705049712445645818302165026431004835109535844264414806296074496914517787314278969014975227916788928981439240855363061523997765087578544047672428793560098545113115509642527804668223137263536885001247737881511326831484031225334291836484114903143482723588040551591866399935347296313238012068536378267080124150545869712292450475578810704057972280877697514027256317776404984514342468460271997716416245616831314050600578892820693591261213734791913597293209679129407289176526155798829813644919035969680139687786825122977911708939649496483906707517295337059734232995329343861628230034360952587623782688890291644369916683844539440732187851546785521638625441470599242367021540282986693037939400150823097897826829709816938380246573821475052564120129920206762815481177462873358355215365889518741845843096049954330060794362412417112321005673438579541779360977177960675065328996367126465152479455734039234866625698221848977082910673467341010528771385077837765210795706159356886035481105685214852526932856847297944980340314396232006468737097609714636495099547401983404409822026295451546942481764796034552259154474125518028548168228789613025063892185548366235723051155314124702999194920728208629801974684811490311662515294041499722714368748529322297322466530525544543633860195587883500095130286377675485300560916661220222927536530124319032506838837777841295374430936838120807161507372921031224043695977164650688474729623167739777443552085034499977249884877451345353431833965300175109095232549953130032292209815264804593245063040791742808309917148133543051999439306019670269091748449359191663508472218618177389759145126748551597133300406437884605195649116716935707415987321411500256799750041789531044650477194838840012174903647543334765967929614694063669289551044340101343870775596228444090914198535891468729562022228279000060041594682051468594614289730661991282552643230718248452388967071762795775909259898967930695564992819900535781390626637678929687572586216667283611691291117416679625258468027611777515174647518594007202731704249864582103135650269165146598874460597983177856134671787695574505377607289433236107750747552345793225206821518296669407496078311554733622450091366628122758488423125471969536978259195333665921070258374450199522602490857930865909220710086203402109592450381889133679218889301263667269422596688642694373300519418570686160821276813829847538280053665893665517337503779240417623047464963399487563398979086782060175471412653780386463600381092545047620086551480658206379800028225010944183683482821162219610842102872622569859217076925737188752614201270475421254508738480041629587793152955445473413519957252926480477496177950779681435225126749403955870636115544178970795705142367287561810460071602406447597480572326598738411069711808389594762480769992637151926093484660390316475312995624041111792207226353403431478581509967205662700061758756801785570841790945379800800188404397576394340526477766949858399199799653501369152021792200651497580016875455001506367944598837436422143394540256695641397734866739331526746330234293744233317586117851806567120266607270569920759859749702669885751061692778490653026942078382065553978605025903062799809247681925482145251994343633602756058049373017770295538574430687099657333008469069004277193958806353529780724659177949747634472574474996099838435055618177713810509392531270246284478889620514934970623592490151878885310458866916422657865991969508154879820860030048316277395077292322405967631054163671977607081433274892305393000876022951611311755260022678008093456963164220478350194671501224492683595092011935194714778178291011084075570345377212668067342416590081992915701268739293430501932705506280351723031064576524906365083819587123280455711027412185074725973247986763705247389933022453414772489139252144152674460438969174327675723679621108725789921150202544846564191347023186559027677219967343431779613403474251321917156682621422260235706769714777521575956630680643924805158953885453454511985538547186015567144744440874285770604407975252659217430349446279075953074103485931253110580825045497215183630176016237737933116052222512882237131560928390803269280498009279692064954864379633311041821736888577180129081792739862601580210565186591762144256297179864124807549054340338966981230981768109549380956498104546843043607924607324436223416207552866108148485909803067920252967610832216520012257883152132009474740404531771884332557354733956659490162617822416825205257570516562111929250957465896233042957254674102737467681562143763063470820138596788502543248750867517933099507558146396362607430671334445593413546564504802376594629227297623765371190621654059099488637373648925473232666467631231942257754295287789990456077700045904448069702341301351455093883947715921076953474235223164610953936969168218903006194636662126896357011181134500829127756595043912664766909227507302005332783806041982449511901136659216148331223165604797588345950530394003832885808267764419126971833816437782956874588600659795049119659055377793441863582061394134292128553969706657743630070333096285095582772318437609567409654892474314286268835636097675417210617354797573599471814344426736280561957625261313814689370528530756213729348625239580265269539884494554124451720026892289186766909492842600618333315546965709315055520179972441966966284421719481541591499136258796525303975132308464161611095722742651563460073355034723338853331923063772577491386852562040764327984289592409232375294735174467888654103014615922848939868989204009494312521928943906030146120812383603115659321752410481707738970955775920567750325069561579823040977118550130205388396370230202978111333202841381987847822897499213857848080478757503321423743294711584250941715741568722811180629199092730434544878981415111380361662859215701560185449449684686650893476861607873818900697223091092736859910614817388431778515507923905923479414078358729139970628251118860831141140563396934736381855089204800643332941819823627359621467378760352200831842896473731514077844296073745163921563142481264596804828309159132467472931864681591758404585171208041390271357405778715620680191261549258200767020594040737389828980879896146118568065717731329026066927485650340140876272003686558684757730965517315957939473613544852678072998866288550295566640328489299056367091027838195673248494311709878691823954750583915734685717324718579017891061148445998447233273671487738851737872296673627616537327708570232404508519893208371605023353058582747270227162024352531199223523884648197535414099181032579404715663532168752875661336575414106981557904371652109167667944638411000786536495701238442783766487720402678284219667287000541708234031996428318776080357975973801533863105552905984357963725714496633516408939446058597747790494307556546111158647090859527394838026383010601962856533443935483532082540727274811953393471571172547226308413057809080738772196107699596765226867016301973750685423302478251943156594423399963254249220189088461776672652890546128497616813246593613482217794326812950598938378062679272214414549253699472486844530724142047230487350912839162404053751913167538888181956281072991375050374837414693388725369497593040936784424560657352844382456642171207021171025209308528111116010509831789460299084488336618471164168163015843521972900422106889943718226145796543176128532227713826385023251005561660667086685403873040833459311586730830222621583004283522956868857026922183909090516584837692683728789428986909438410763325533976735312559423073000080516400958398517754854384746494784143076378798913009118596178332696854100031612548393018304627521011894802916247773721476434332899368291666390166938633557061681508660010140994633777838210532309417444186390507277947547191293345252223989005020375275166981011247915063078627020476685331046078862706683541395258811931327465395950307681414319780845854806575562626320262254750981255758010924503649997219476645219931589518232198717566332222070509206074923087882235311359532157097452124873310642717341291764831709070315856837882310876341231324862722569348681059232881739606939508980567380962888181275123112107692958152661164431663459241550005360983737858576348142038814627550836042229903017375257225781258572951853023055343425356786060043703604782062528437363434362829405426511347665177924991508359229167593836906714271876687582452987609968439712856563756228148097454139922480192587704535757195824750283925707722427261129354596477066861918915637375955042489343754782276683401767693751749697450218635883633821261069397937584758805178230035444389130082905795594536286418091592569390242658148259282342719867140428168632061976365331249335556718661494107171596027065727789545767498757233492862259690400471179752956876345945796176697420097467486611056676398247985998020394614018637367501907299302388020352108818404544650235866399648832336956550587682586152652068552961819539037759301787672169514238734120101288413216569309275537893001684456486861863253205966016894589606481098675069748208861930157378750866352297225596719043366257512284439825444266433324195781831365591858318685470225783099262412193809273768834643287294823218445496000842946842634873820799051579222962308921335310383741933283017724780219160487922396154061081962300796053764949369020438172904416075064544117626163656824253015161235974966270965350559634445569709942523939869825702130415712587190581671492291572534043961848516353431646745006685881754041213636787573883373511846685830931951087874428806567601484073271014553362397615640053905949935212151961573133853402114900956473655035712057960008272540255770030330354619662472427691011169246032585101077581189481376167013030069830031174472908486377493851470373030598492356390211984991562599965689022502975299613928915879985396111888489992844337075206832307610525472989108616656600533595099158085919102161871364409103741100170911322769735188766960709935040635093344165715931455309315566625164542646249246518714226390027873256646211968151378384301601199190035599782490969817623335113654514046267881434738371045503997921170655496113357801963879667464262007509878468647574547457842743567312125194910131127875176754913120662084503496639392462626387161726937736771788231349243417237237946303635809954440740449810000199181957938121098313566309369179927344487163599703017151052961905287119489489292934080382952222888609311144130401678371321934153936676098864789648608476954874603806968487177814045441464672309832686495670600256414925927225211148214153799686895724509965615845265778502220995179110693968038728202211020438199285468528856401713899795111218496906448104091035061314388747086307118790702883540614696343255961254244637737905718059375370175010621019565612256503775259503410244461436627220975476598114748224734616541558392376360689226686622493300423164442850212503481993256759220095000868287564561602609907202878439480915501816724758807748371995253824911394825090407510951637421394129654210839740100304417213504376257351382639554495342038032277237464352306010750150709568736143587543141282982341883578039883082413582129300203834847293695676110399663037637865767140657014053260857565816686853035966668964093918510937312075685579991138444091118319881867292782516661862522644934365572057568406684520216811928872065940500272067446420122710532612852539633338746689896867575704716466213974440852986675198702994185271996675118267330169203325936548071027962233953018477353988957033462912737360904479315256078832903905160396483068794596784027635676627881858327639266692205909431585508140219539877035915338238167641638304017737546666385478813427769704702366562350333268430917579903927990582082397576060278872745264895394388889052013223374701678441470295437840189334077457092778003350482203088686501425318185845599931273097944571772683185054840105498800238449555751885946509016114180695181499577645688941946975923002722921874987387538986461731525412267394874732955320642665958144779361433618799677348555236962957198519527793089890807832171889263213615639680532831482362059227451510300672903220045312689959175328535478338596378028014973628961075942533928969433881985374966499920237228320117988253579423679758301161592602493599000433663428646991349554025221836774647372201431789987239158977427286354362260048373255105739528889844047457248138649532199300498447684502312387963599158755565148883026084271926619272973437115672524215094413122045959149730569257798748180688730394121449470881136002329471680141884605743148518597379436278600093505203654885202172138923045603418293665923480712273888864523244007729453495426944155833119076110944901584631466380206189664093966190855932292619726872871969559070328790523570658658287698831129164245098872705249582596044736341234445040451851941352056106947316915417928855352106362877408182018659752652170981568995896935853376629263478134566792918379927892214844483339705612794310682362129808998530448768986974556600892903549847220972916927499357733985294366046012928231739747303073909621095734258883801277094437910421006714168012222139170490185199382633611049815967181678095324670030624495105943575694777334789226591710066483357068815356748851284917391834671706742037273815448423437903622005967815103000367956469235685908862325370521216268403012055763952764789429826008737001363941346191201181234506479488098393393757213665796236684457165156481764320143340476548206007025849859712224215298372386828961964170299042523343542065903758418357558224154220006176191545965682137871469370309918225013921886395052299544709427724011435913260110016032600445971554643052832524798160537621174423891910856465742338233923790562648960971059139738587483554015310890634668364134253723543524509812794630878665535003001823453870423717928122408230080243789157210309722094958420104404138041423097701973505738430071896410705794407751370097364730757504571107307789684034724459335093938978967620018354521940819372746434281991112185583917257807183156803811213894395684250289096027331953081986394544981959659415086985600569172634161164372882727145712320957167147402808689095209224786084913809026914715386643672586992527068251548474822364198253190764163613097533899394107238169160263132786214754262652670614489088033309481059548896208518638789682231580953186392780603747429839355852492490876328579732939685127696107417473450014621183682839257166807731900127967244812332511975908063075438331757070174921357851472604128015667374150259996874067907860514508233975131317404052569025936631084909304236056659624170099039042340163966731022728347772522033060525092641805508431100862861782541221263677543578873245221796212542134644484246107383015273539316827113345455284172757493810834031351127234555853425638230621462857669594875862944992919364765059330793852912553052487686819073059265642009507566736555760792161311954666798992503814142276765803848464898206889497897355333371425453719947323077214327631741353613834771416821563941375633039101803377864081214705352058566426129514822212037954618105263971352413070377077958531155344292181930293082309070056575952448585152419230282886328139317684796276283416128196212381011003955444973248906551287014425941706770590587969604965031932045913696977493170725127329636425077900644101297211878762987880321867991657175977478666786121872800745903230335673731179968058335221564369437346906544676743884565265283923254217396919537827042793179016375827993351359088072185141582522656032694723746100691507510248903960430327389208602116356534922653495273421251244900538864686615580947903895636087191014907739626602585407487739071449676442292261869543886116501618011181307868446839558191425528945425719460734272804035241746118423534912456801939084768700544513604967227903664692647769174218463449000110227393799797725110246867690780154327739617908528806434006706029278125439141777471168157099455252415913215641581778157880149687997693505579098291845488368550848414690092023062001515990068656028511179896585237686206316893100423004602580356672377977969961492437851411593125424731972620135463266976353835015921147120030371660320289926811900471640335091235825613934483084134868691893609216932906040968667082694719450852313272429754700033212987652950628956619718696169311768960889807535582547847091562273533642780046800242424614612955116256268318775706616881588371121501168766996899875385360020412127146337173090465380519663568916418584716583460860136545413285010180387637576527899546743684830417402243423022215060681355575300106211822889305175563182034494133342507370960393227918177969841654530862574008644214359476042409302498420268465603807188034638067795478671770773881857848980453153213201059952482300403403249995268997030061602116601256346632216221261933979645711171337822692976736169415972949854447520902610983729133769332558584275892322624154676730470215379000759054195144771360815956643842335943153675134418867571807392069267062646398772954307214550574308979837832126578760071042996245497537171840579543958199373240546472339688130174080442423922798002624870554470726789611766283694723512409139057353637638408775217531642142683922117392188749217594675085122668446314735383012980631829834393875654409702675552077509670365660739633088267921340678042852489144852515074534459651133656814870624264792855021908376491268012439270798558919359013593630365119479560181119217432212952241805658143382621495656692223789166755173842367268212589475311028513968486271607006955168338728273682087387528514786029471744157727321665420068459963104049718663108325904550565938786500939143664930643050932846092148544974881273674006495152841126901697156477639081210803684859692634154871476793919730214172683634837730291765379045072611501776567404779650296081591744616139602124979170318131121697075137763416858082855244925743806921814858714903014654324906822683446478779027770912951583379060231925334021252460959303773823759329370524193505133962271806041203458028760758156466927071726685669847983302945557458092277107733586494684662647107874919525597642121040645896085683345967747677413079194444448600984534902962605301874463695649099363444861882283554115023420636363719040062785676416496843013487990814813648856257142163602401037871744285109248663775559772596526104139025024693235928347970281111945890031419319259673097899987342116814451504118178410269283344963104407803105161536800704967046865599343017891828469241217610842476971268844613754536266953407684050463194965224250333308896990871572500166487881874099017538114062775390869267153237527161755751879157151644035888631327105181338338577584701074541899387438448525186777415120863121391099118039894429444799094989257635821115720229403426679287251106806910102341241683013521704827514319173966479570186551605575117725642721532939252946889898791922618041724154120456825005848132237989371989231107101258336622291421290686326808055702126630597907785555363368864689131217926888427993399600889053011002846755992504243331986322715942768763405417001683198919001197324242918611330064424554689123407981332987500262651173746106217063835358855178933952078466695107256692706925547650247322484485392269604403867840086540574951580406011413947479084852353969127772602326472730633664357606761860100880240733045693867175899465617654546057069864328757384764745015953872898813212400343711021297183421282976881514121525768077079691962482214357809951293766935564155234365922367735656883054513754759106890739437511083206514563883522688103497624641103851935082040237753025137327639128823210377357901998204345034719712465100935974959163270980243228563008293364208860657478467125618907667377454634219660430478931611024032272658787620892358559444258734606625969094635303230049573384018365067204911940215260788938897777908272826677062870112649323971316130401036283459647673222074818581843530273616179951952459335953370452898886890836342688052823474772604231104467212057005420686879180638292135662813034531815793451516108034067004963811178004027587621604488723514539145631707948611561885621834705558287723753485774570025121561990340473581432164998315083909574673349677373580275770586252746603293550582225679966917503625608980951164070031081521801185707623306924669769803065764014512371109172950657588777150911097163246939886446336268449345301343160653970887882524133946745475313187811611985735180868649181973791002655262157822252388872861691985608138767282365404111555655742960266812344832573308555108724476086627313898950281478032478180030897754961604437104041043781156932836285327003676149790998015762920874437646977020563621753972694962191552440251705555889251933418950806047652032552585287357468471494306132925486718007653833029596222588687777190355045714351395696073364851147128748931989392019310728123197112256818275233423325311314093750282360328960458184031371072444571614833615967807190227963037948573371236204403253091797405961073311858771483390135825478767607467755837381081044934374991423365646187158408825514008298670158487154520865669154251415129790219406185805377190643650464743774192260711055627979531603827888429104064387267407396004021989951852477740717013383500797803366529677051160273901194817476773166022401005203508429793023640836640804916805658830812680810670810430023689631295323930532896916113674328077974088266340479380472380900179584057378840623949249533484594023067923483404877750183121045389163539208343821155221216765143401468474072949787882717114943886732766262282317751732750749694288465726767433286704635794269892330487480103838096081287804020827331719188554710999928490611734595793581632039150742964560918154091686093234714016582750623238326329047130325146203014536546512764698701810170639443943430798371299928219803131645018884844551621488686830601542675397501129405803933688250527529774982353540110038122132549294179482171511242106800320654275573602098333193075989754656828248802075117487473098339137081483793499948410499273050388814425219738899544028512881236603112519175193611920993412653879581798048780852687715901155524801764618670125789745024985901170208828656616236910754546438410958266732120328954433660657265215716816595661729388606972347580192015233825800911033458909808433020852756053937467068790248007621698729663743039646772180357115464952245160749411438435262995835787583124170812821599336424164039782025685104205649093120414645056952567543617574905087330031084763432035910636633533222198661814971185930931401833993692850547158511840272668756785239638860701363232189180405147596475352808078780465867185294450381284273478159866650692914037312404028844281593512719748655610732355651937480648236734479649971572344592874232280777513281006093863178136964251892008661201570638371960027062106570262287910595305223195384370599756864961068857555276112414101225329567333868002530129082828932822881638099470189907094932739096309350124425995968932742914749844689058991920475877264404136887665803307299218826252241091102828303138827663906757519134090722251992579652083826702500784565574903742809581542554829443125962882332573515984057621125331687661098144702545373677311956476083041293907338746926773642673942218846277248835271647527694911084605400260981110204440561501496809538332370116879310619891275777084363741033676297318824914885641698502078974271243890905258294911779942927280946814494797793978545639093669009151893853018501509203685252478680229941376153891913735495526274353058997890596346399201397766345165622993938187211536598980397714638743399554006660375352613813564910425099142099415284897985810354001312232017174332856761663210586206461322710225495424865914298650300295274712875708366715248550062206627696258121444064098051898766460482000479854341450931725427414676394775145267703948239505046894854468482818777777376983206795472520909940071580476578611909848811071216778767044421166463774942114842878274217647609354620992787884711200110149671187898575360565413427858577798963271986621001853772901445344180168111156361420537666156090172964808932084245384301317796254224052618194747250774265661431559627202864593055063622437739945759945682847350982095079927024724773520026160858574186559192482183093073905787040049475554386946643749508117165804970973142161992073798023892277635341139205629628992560028098401379281792385405938655688321560145545056152799814133277887834492548516721410222815838062208808270203203684835410082803435416157880084910806145907671126446165002170180251307099633291950350726478665458666405846545985094390828249715730848476617214874844632180627175512642167369826317303928315360257721852700781575390181739223563048369425432983356633451200717745695578237048543886990335370568524453266936907872483826738679277692265549973814367863805406223632932217772865613670909338257564399906145953796211265923739494367854677795616648505633438413413589596109891302208254971640487334580229567162564141563488248925674006676962383456153840044795029678685299499427862738908328440656185121335291593050442659962648178548586041887193554162422250661638584132843451042096461985485741318998472482620330520810988064383547851383027043245237877255685720439755560018637799146762997350764868549845739972815903533217098363954455143891940738793556021823139150402927525101978172008677416979942378210051189589403182606738392003593835985760359549708369783388222822120362361764867046209598827046729087605413305794844440216280311453100035417229284920897757807095156720205138343452399099884165386881807411462330560080390840872613243407927383155928502867442724447407963844271585180694999797365026346368026382658974620697336589731147731072448228134574723833224308085786141020552698472871760346914341303061596613663732422151775571700362300913658337856500419367721253746124071641263872045817708276003059541927953357285921361641121256063614269962285863031877544711324912395684961569595138468255137458902843493385863653661235241034159203969334952260182096063300221654598176348422962561057789832587230867504046920374215626500719549955824971671202797640317575390673213953223646942706216369578629178092660243921334893413985456334354426820361565338397980698871895315492333691597479449755958188548538657730503512109464748405359182187565985625733910001266494773324899056472390210522548105852321435280189991941290187114285308526884111745414441550650435019625833446098613972858326324322645362207201839087540322872811661718216208120058762564372738408628599063255027808279846075672064057492089507790202992201447708461334970317403389897210767427486505001829823531226410511720800567477682468971764088029972272873784066325225614111923839756354922812559706902373989293098835483335156312229957950739916719533761085698881565344634234429585977037404416789574991642489083793787728610975599345041815570717386824080440357742734956060035714508380693398610480333042961669661598771389854196042285112161328445666034513659394156247586654601605739203912091594362763823350262927063212641375739181472540842672840042828641733953922529303110865594160225620565493800678470644216414649678708659556809648892015727623248531491346965509951218413242518878924166039886925907399960684089732760864668889119306136523886757719330248919932063062571743818474954140557474290510624425924358994610773516385242100063995550196226012199997525194996380299833505435063345689334653244292527818992220119867864552514969723457763590819383784985083562727762807229610435199944508048783174896565861194006647995459811835995890294243823872864144608691528976125429224319120604614099987357899570497281185711832089831209658615855878499531684094008981664556118774539573824730498481830679996436707373062976325968361850107124593913386891467864230335340398210784937723438346435229238433859384438072625569995064300175168761033558463869785511018870769155088381935169431316912048912702332498329950480358954223889362583600034798704441327381018847581748979193446231462421145624055048573055104804053244500877881328242196070591908480246516124589767688003178169312404284982279739406151803894596134294729611717099991652743000284107112662758798097545765296667541932396733538616369938722781070713956285094449260774965625777261714277289942119908109264671974858126560118154550267077534553476404453797609142288145085733356674722318685400834449445844139110719124371237164057373824173106914210349613513867795968007844275793088670335947044457128284792464108486205753330185539826536336030093835122865015927240418540813039181940195761693962781981224427944634480215322794675340683935224248152118935622268378916359825297192106248504308038082027027340522600574293458570988300886983273298262157943882114817899638551314761095036837963499086426072790846335445404565389861023485634140989653512559715470189878073189823721271800112765643401245200450555669087148773940422010377221534241970873437410202126198639634024004950119483599923376092049156033622461025956083798609824464998939660008896803463162257756177391768593738103774165814072504110467842740076907391050994471892456354536052264686875112788275633183945277463957949989078715995776228217417178028117569036767532493473058842413609211908743297964228078757221551417431715978413126562639162112709616598078794540061881744268670595373963752629493295142290737917929456592786586735572669412383123434835633575055452330730070548174946523070520146029792563518724129595830972208193902513597555126458183962403365713184013623250194557811497167769332631256489893037300989168720233619988298741733362474118882760913646624211112632582947738410509931569723194020922561816269550403089632547060052871789929021868133912577066460357381459123884733740206799906131925476563769230296803258878618939238672873138742829227242330524143702679510725205889881470366238996740875927709638368992843438291588306129342900651170529233112908656820764832930916010995956280871087723917664546207502975776291824150706650585788908902746468902648127144568433475425407014446429089747973040442698240784847597208143224018094068845376312534300805085311830635718171072957988925509190499704542789611773922894290329065317821583803007939013211089851432311571224964239912183454129189878232621344196007812830454390249117247314776670579921026973270211651075698077877428303096011504754769280211518031409673939172651766288707836045424573809651655988606896997608257196702295089682470283732135090395108258129339924658704003739253811600323446277860943986626442071607024371787619568910564720227358673602111810193515992588346175152946181620781952847022711850375406504881902242852908786420396530666874255854789410509773255746008753874351901088140199387735377210899011143797534669827870150823054956668568297702611900282886553314383478460615522019065314276078148464113165890305745226526318842529906473424725618612773621840594367041822476269404884372445460454608016673834240219939931119929577791181909170706864189353689566427227031277524556677700819209158985660461023883412409011935271794569298930891019038454029888070531560990728145264563434776356669711737286837882580574608314059420129403490966368864510944662190932858805364129390441982825167827740499058107620652546379494667865587951140822319954461375298290708559803806209541143778441281164291473300417352299232388010800875364773195445984671667508867226291885593822543836519183172867841849986008710887810387931487448752451532737291474504614457175971528761414134094670277910448729298791189572836887378096737451968998649034065249004880271406995451189235009381464310909142949325896532698794594189359238036045518249438905343267541409426616558482626431519535787799156777610117290164783742957930261316713242586013704870839389791612574237084311652213350998733917782820472715063112567219356866365206461412542243749156684771244765590394167250322826545296555969996369278358095171919624642481462430763802422686725311916313550719517215508081197629417049880569414341755965801236842019418846202713443604166121850536665857776108973833556066761642258763270493782460349757686615762964170686982693308748555048986405097697199901524165485057278212942242348337430556803480152209148169744582845330301500683245087818274133394854940079269148407247675697220173027104020234802116994666694536915121176508873396622732739739824784677816974801381171164230583642054943230805945814224777053705866075811375568483804785286293187471371201416170479403507925711201301215315906031870625726747509233196656202376587078980575665808825046375684705125117851712270889913258891917989819684814696233654341455399166244670142200335920499981077300520868589637344486665157421457603431571657509923164515148034057390760610045735545266048751152197870126485301294280296699030423691582728215571353083338750321924042409641237004915802545882890227962603421537245424465553294956151423386333741350395685588356657295851018403168814479690953545117324916688418479000881070054060549493167457375397615574203467528446653870998421834415726937673852070022427105627756213618252208299025286707741988349772525238735978660102624680456113395873358315336795519261128351362263952396220663307498279341411207960010948386602228391290876933650393276572145689456105949539437245891431862733402447287021875635112361864699666063101368607560448445591982180707319090192414513283743294063199835977372188656859195373846457811346952333746994378763652219803674193793068905679266112600984030793932345983400732169281337279366834019782424604290164258936051844897725313899686508023753848002729466172006238963767975183779658181252097190742912276067404692147739785367673282059839024001942185253597459821361963849865610746337559078911397518377516717121293077098464216345425323484124623754303464986514737746980682658071192941853759361428373937035272005862650082920660403227059398823880826057582962286313947351967974168940742750867243262601329636726044684181078883777011755995365211839231726126200683697301115561396223178064020158193733798815184277490386454272903542150820897111442184843030961196700887036292710513746422253236730764002066547979029768918739425772540548538235328004074446998078133914149399891217988268119689400003810521541393352538189969630339860789839675990405308964507852130801384871108325098908047649382496089278191336669424823017786254537065869941926007020726916600395662719754797989572022861223226564768483346681068061636894885527162109070100751587558975350418779701798086265999180680858742930103505502458221764819810879220526237827188784470382661532212039326185733303845815039078235684842531340952666511001166622115939186789669274996360462080966573099411217691766341074290312307952138065978467022123957142289060731411109715732844194536930443643553770362664385688624984676683445654485852471622752222169671160685649146486553852529019583991676600230577471745315111699020086044891970415899293497105062805456894069864096134549658928741607994671146643754850008114849330141487454627923882423473500958898211557683101165578695431599071558906956294078161441555348716665930968769375188659138621087743659120262594332114811498371482531606066639368084392697415082200123887929338942136219238755595581656638694476404326298036743849242169474547702972037359216689517401799230441949953879217855682322411160484175228856033610496215698998448222723547377180557138227541977027329783404920519402893943209369171816663055308755722587534062495674418829326569256922493633745274491779606929393190947885266844347504833085800936388063622565704904899894785043760958520244208631690183058759743351882851303437681613428209588530860760242092444311520815542984481566019517239949603630751342660700240685889808380767485255898551481268635210631118121849138442383065429526351340278444345982846939434851637817157160373302544575381873284123851496249300133143144248792334746312718879848062609921443114000554717219001365702676383406489431262237752551638383200869715885631159474651010447782063182297082804282801775192531281892067467449778224031892418593790831286216036218735426202280083939273299014577263616792850742628549039416950613708096228777008439085636888296661006653250170113332551999680576497602003227629753974220435147709013643268356995214932328440351455441762387451238690682728748916406910293303132428980249630477463857044370421255143663495995268035432955919869157065280104554949536576435069899088429768109011530659128437036725196872151715442004069270584192692512287753416474228261772180547297028875923647192557088530496989464406127731472199874041969094190394667618721014212489061918077234998797162238407341068116392341690845489762747564242059818079000208505200527195771537220656614612267933429854099893981784340185515687465221417907514301656943119034492493285164381710555927859875298682268471910741053298105310179502301246847217936934858142590533760430830238487870438170040723721680379310760214980088948353296652303593260457856380635168751347230887162620156628692367001502251877050216972561750763366347730660177249268674080954483434075378983768619458875292403758131102656870935354770856283274911004404843155477835480578525912540966268814690181961607541930374727703226128671766452029115129685972721221364087738557973621916923959292721785134200218216326413185643437323610903020308412581632939834715206098794632873723765850126597013483838389658857430681515694153188598067733514630944012728374857784963086130551335602136957377692236716737172667458675830709003734281449968048652373709694932612902311368544695173638188283894673167799415012929249149175403425488537437415394425833079924986020399811350573203366586881059449590576372307165000645173966576092656043276925232200194811307552566675884184901903026163666362498789746716211979892427938453933924031263719689990853853094514381958660368664201276139863260028393630301610126861173488459959084083128071393800895924899149548028812635357624637597159146717533042821903603289867620645541852555498742985864406520039770366641404705667646151788775725565984944714155148750893156139362364235098248991647655438017823672513794246151205394387575866905627454004814779235639887436532326721625159413456251792607176121328713700649676775318178758295722689284481494312644697787315827608368726720378101356186201100531272834871091372060701468996290907855488782744100039826713445102104688983289845073660785332476698994715019983509942021588230026095565830417189708276978804244834036418951807988843975246198552732964784271509812340655236967970823422816129543464641301504488608591260847223651401840757776204809651356788985066375124844666830266976069005105980869370389579343078940898553936897185421160035121223940536239792623380003602213584047072279731242037362407055242512743739052988237918493286419344942041403641825789725056631988446290424274275973740376549952412135454645099501678590478584830103908090853563820658186678515622606162737097929023923972060539140480908970845158919895443129937759115296139139268108966823199587050710355199006819082005815792875988040457096351627676168212406172374764867312573798829728420678987145929548745456917418767775377475079589976952979314451820468634379667229177915463575244268624168190464928674575980202336365108291812896306713797394788901011363757904524730728176202616199030594884841897943032823058182754473765492182110676757933435756639089558473745635443404950040609146853889939089625911940236991226800259450384280546105105936580199698124980277991928247767524359884958892489377933458021852128267363470392106050968036714078322643659086870342230858235608353795703260893006197652152550419570741731076009720321754322044356625080972735309126642542374046691068792554866875330864193081030976473004593366089143826173894573125532455266927066247908339162581239143231936725527430495117586446028227352900683442590504921569398041626915287003501492549184243184493718706408224290553816515860206843097040049517256966316796638345911479365542746205951983497010677054602707087118127638922106450355095550676374482884192776092374438235708687783931835603185795909917826025032733299694114299584919704635098378599714709710390135691311355861638220260128364262972107423795431737467034175075478307917912254313973253972934055523323387302580278343436176801174535305516607576066930589957950924339864286452935658767990652982393957881225056312958929175652423055310796184976965765778717615458674377929413950610893907063401569411248240119000160280197779023445534880660974472794501045841257037567112560755625575386260455065379258464587882900035584486197206896662775355661381949727710633827512898956422929985874619972680577213109697835553483185996775667236824932408236904758206490001386903632612046947171928290375906944008892601875930361896156942061979423119698606349501217722712969550403896189136967596489560493779423390435946882456900949423914914548629114578786697299599549073803850149546093918834907459840833282827627079369327169874770473638766608761772861986874113525729965491873668532004365502232419576265138102338033727731116063508120781028479016251573912237534151212311989245593232587647824106198183835032821810745235639981928555049890919326103546669607287120235822149248713152589247442798066777899153181681888158036100373446701555160228571405013777414127183815653357510164209805507672599881770966509086354715646811909547391393931876505056670662489467582529688540659738390399254019178638747101938674502320000126355770598525103237169386082345179837180867597873874479942930954585508908430951880114626009919954721704280954924847519258102402235245945914595227351418185598124350179851080336532505286691586890016125660918677579634030250801251038870665735644800764367845899882448019878919843239347944256072003463070776805015651091487974713479820547534011539600703347664432224315529030496084103240222033577675599136960739499000586321918127797895086934612140170487494705696820535131064924602948196098164664347418549065292663843005371204077130661093365043470647665949408098413621486903218435699271511111997803603745372941858252993046990357566755039253309552220006935768121022297618987567429510752411356452085664695235044931101458247003465167897211336914734694103158809106216764413296845097574459508588632868311645828875160273938632970015631583640673331568754544876575296515938713088821930616545235723245688683628855288069416549568282295190948346104441105598816747813164593375740573183222654497453778414923310896754247814427078335565852820168651799583877152653676520743763301337522463043712622692383826624548468904283976303664761637199277463390330718543337971455655777031116883679712681288088983679730162531884906053981434781140695942355135237490402502363548050962647690145359973700623786435330717985354683407042521247170260260337395778388800757706467528449000573938253087606658567058791192333898446387888571533395166348345116090905838609763281652395326024327358909995632125278260026419871346226591491782629654387495519215199272809590044449989787583536428309623044068270343926909252893728746626894764941528954887541711993263313294488553270201247590961039661739139966665829276778114968619226083624639171423014820389501015914379070154740837656501494919948199414331782333941684566434661763981610974986488295127184371816602148287779177607448508137259344142771433121523712094386888246406084514054910302409193689846411259262633976559014986819309003327641436208606808317483124152979211508980174406791999926891615483664340140393527557730793781934461632897960547685272095169229057599862256764385213873567805750145526638981373610694348021414348865481464025839610248219294802321985070581807525325402155870813911824215850852826658888601488958250071798736893612388696087560356610376233817882204763703707449900825509210400408995170777578466557064054220990230590021720163910056759081703573594262467527087056031635261200770883322768814845082848434232504820162478135142358209440414127344981857663002813396414957211812286301982635838193990580676801004666539371043197056135185189457242079956925673941472342988573825405340791541900185069954194294679414911087482207649693635003799458974608140632970184079406429229782652667244059031081535845397589560662570241609843768247081940489941326717462189546328508677888964796147815434255426420453231330920441743312624456979308909173674266975773629539819896382039542803099011879993948475568161156769931670014072873248873596940392191642221561095445446724686373654332974259720181026085263980678357784265778299653232274646086286580291551716909111801344064511400124225767261543669220439276741973481968590445648697024816044212248049213565090098808014837879502848304902334459222125112791260901101937606054657280407419321955140537550975279862118958454979391742225652991356747064602268797179649347894659461763917071085070821197710989714483061996264320108016421757514859681419305784925631590318557382890424960741032634443567968891298957166236649995845192115794782286009005053784712384543832296669208486679102145992909634784724107784387980798960491904279858877879616260969763496824298315474687285367638396106347006158077064361530795509917766091274003681751256038926487995197920920109891935164527770635003656938300946661510153934426517500890134099302469626718983241378805738704977672073448096822802352680406219225926142107665658084332560161366121600266711398544521820082241537797569190684572419736401846955593002545121692677389412374050053530839466045867362426443747606187777672605602927726344128652410485701962307395824130430236698562373119867138291818613691368169994529352453755516496363123028706490562938052360282046074632072590648576878913443075534405406927195629979773061507918758719993013477112699828787366438031822333568164566216090891359132122033739747091571305924189968492745126810985598631720635160568946949145890997146746822599759524077810172606722857627753189468059814357425600110873611872583475090704779399745139095327657036404656917949611219300433905430542921239231041462543189774597853698727326906536274220059263409590597699307507027912990292891389735725368763209062835876445885080218872598236741699972819712362235382977945678123334930003866171420145582909680341960169709784340930688277138649150841667640297320402154705513128048802685637044548159311550100379910888427794190048505401626756210565554455484540687848007692938651770420525655105870354024969903846205496173245251556152857325776364289982001665416566411645309492681949516705123119087518668918024081920063465417233894474299836190280520857794894204819894364130856048854274375953060126057401450082322809457237374377832397078071784396439826880154742142694807546109842265447847415605387945936251907268459077798304428543369889377101039069071917462819181728497949720468346641296284844140356978329929275360450990609043571415427791866571237645854645019174126996190501050525963893482240244686136422759118551549735322105047936262524522432988496596935754024492116509051853581078297505089108900110652717537027840166417793941238475388452138561864267147331593847623195682910664688422173177139581380657997276816040112140065676805166649533938306255027329875627570508193058741093441474987969726928641531244548075505425982071365895375277728754665504324999688179860826855038109287464812649505952821809480950748459477428173707947971272912714138996303386453692345676076851518519197973031317136896078210356868376448121406383701221448232905797245313438582961365365940039594649233633898362685421456735201949386854687675467315766139662553536417899566689795495089249641673186890277723625325151349723152373139406234638760594106867699176589497268548785713395534562632983613371054420301589975932716337232622646922888631324085547748823249566024714048528614796129638148142152039050274204149647475811616345501423313331626053000045048156838038795328633006658121411227565383145868482561145227614704465603367094288460864167922887101375315210486848928662754092378656785178575172877950608767500284356969382881858248077965496008530404653648785421570549405553527276375197312203407240578057021431311468924316300684289522612299870724880357490911292586424186918488823685348437723416808263519308970866545003921332949908445407108671780568708351857921362365686415593307445270085774989541120354159169139821353444855866083867073704425265059119601165570565102496424316912064706555118078721495804590677250505063620175132946598301291761705844087642322943990110491203041549903774331972538923243605041395676472407278968739244343617603951002446875493184208922000233212878572679950949267641540539153250587519882956728718350511435151716201831277959369100436808328533455466867459709758051727877659241202087612911275738505689211994980932629974413814223895109704332443930112682762967032549028155119508396427694538098251233388545618146188273277058775636938944688820324134177354985903459321607167136438856436765072835654106466631669581853194869077388258658463110557213398986799925423473622650663276162826905653055003846898984668011488008262092461076604646753644402444421663808970662002805430755883402132816576556648296910699954937131692793215558667192307099175403960560935287457275550072638106527717222008733409465536187738347257474582738868504274292798404770545872515075644127704799811053990566674114022540758235910761449098305007802477094552898265669228151079101195609180860451924066605330375871890083936915268516844481602021762016305687805214556853682601598065671433037307331928108450094042269940600343436789165237375458718502949510245696127093682840781965644266792895599099772057329729101353324568221647161197551597863160094711257154374781923191455667594599857674424996553085508607472007931196470978574764748267808916335131220189629184829496017097481775488791172793205961568724619624137575076656361331712376658677345799431481964222041498786052697269248362109122166013880146374521073441291910266267507939671382494546074023430178039889828765352339275408331079319816270083199074739804684422895860819117348477205786624903907969564432894902573042406099742160983493848830652719526500836265315334427101283608110359224070748525937582580616573679071661237048324130282165868252888595019893714163706246752757522476410133632463844698954874066937698655647489768747260990910313638558264963248572879868924177038121948393162740784378921218616881143854526055470546327364691354404775018956631053841508933051108764054839886940303692991540968131654665247410808355278554409660366236931842764504864476854228273252799708549588928148639950667893580994862850690610369421230459912475558503503538574151343409357666114863344511284616988922808140837700135079434804767589792572251421646912133900971616423710072622492932579849507865320147525324408688660671720861594515123112804695113137838408584332539949308263498662143836126644770056776604825742717982491846033873603986870031412148675164641390089178211467207724111137877042001342977679554409854625809097111786265725755598853092311871859793823970763140965859940876597012012314712230027620467334386354079577142496361411079301169735291188753100795650699587042544659688298288121175535478788642775642079341104690532212873654266013520001014356331894199214301256586806224993234939897957099787213624822007465635809431732632922828309756843775380448436814241672533299741457636652081217442068374835581606943120657770017948632393694644214335726118226540548188769176027860640384421403548713041533916419135331246644470848107477348638881417665160060157233855281029078770418164549599483186727629203162151296355261176279588719698651587545567717801188031306181161224592019812791611731932128048089936839382470222880479190800054206327522013596395247410334104824899569381771607633066609764778048564215173862317630997578032235754350784852953676485691440204094148962042461155598693334238786940596092271108121589829668171276808569956168074225510345579552989193518422201858378807587905352875552845607917709002177454382110977251306477241775970910765541374958598714743143480619240648348831898233263913953878068906171780777435921312802888070430678291864641026105698088256476747353652585219396319084694093588520601869851488581403406446147277434815212445253080008619622285792952368737603677030601006559284877356313674533602554686080238831937633787346700079655666830608771555306412459956489174178046050385102254878214381597043014534987071912510732334068348487011192282578031640727874242659195948573449305651764084498535009444070999609227033861014320218919627849277187921612806122602273378541767003387169382562201658696372444802263536482672831945652973800888484541372890367876153104808382136740574142691582861017796686123851894444137219029013937554768150515536086738812813329783971153522519110647167789837542282022847710182814982128347369391014043851173017690413970550934273573799004648509699493323388648802918791877691479827606830987061052097117883777500628245204762531076712554015320143827285315161305708496080763929786260624731216789532287183102839357101448823419781495583022223233335452644527683070182903645532274862459248861792168101581041383004942430721979138195606260554506792139341820299754949448088515558061637157850871723302887611599301623305924539469768552752770441652971984520009448326322464319050924905183656954530283835525445370939237965667348880880055266525376592953682018502650592946194703346111593532397229329460491342186001901088232607782864607342544983744053292480224872847248791997898518413017546698215585513659753536205654178894099566273151888266300555937422044680592289130985458523554116888807285263893185805639090069917277405327688523234719232215232379608273405449962962482645735997170294635697092912406865276266736532549447759582895253042446974544817406570918607016790187846951225500324435570643735928448645561702595432578678300976698837563642943629866194202373541246152165211531156581041980632186382890654814103628595352726136180150475395817442506529697205493201146526430952075569662719016251998817850140712172814398705363676469823178913875853186121609781691419398788450425182022512085304908912638249395273675824402742858960543763395713965163753739846518497402316622755501255764332402562941158969651238081265006401939163741416289675070733053247782550088588748344066358475093337323454506317279818736588422404503148938771676212531698898183371372866017218270753921687473044056099311298015726262645335046465962652464671349781138793633921620399724765327811093152082533449858910031431387912234323237563325914933393208237319859735922422669849567527787738175667543053847878540508320116330974556894055611757599781950274967598757794739973426890224938102830001129268067414611063323188270216267119382939172194527637952511762370426942964563023614519410992051614991451353188573305797972503555178256681524889628580620129704508976345089237464594272998785427077353593847167975365021971992805003926131763449756941997004731606716083367092955705312970467575465106757183021568260946541832197875626694552835190264352768652722864226117553214890695900674953750215476991990194967121376641625094200002615548664092607145876616976198219039452611174154787792860439615594158902144965525100475427340314468076690519548847369810453036827340241258311567622773612154058258611776296944598652081228500542826484127042233482452447655874491262067787579523928104885587997949551313364033366491040061056643880813158904997873540597228329251837557596896300949504335342666211459660053648734476187261248757658088979620356183212380431495657565771647890992328694810530008417553427354588501141589465609509217249428738533602621596196582702301571046711427509732489804307039294808515775276182616531530964790586008568303392367020893236048568309537350943217215873307313778208270855001170886027210870859343328245433375734671878813640730499561203621825667472734559449103717408866396140644711021106451938706793771177522587655481883957134333665412174151865778916684769834738133883597810423537899021993266730479934323395662007883454151842939845074102486468124460873496772832519435781743983764521866235046373972219600947039101009754467429231563285190589729331004425691628574080182251425519490564511843715556688305846117591883132312786921555423072540306952589430809818200227962884938710453775292442373185402142952577694801708943747525001244811824269836819310463451880503424059313283174252267993340519237461036811988833232482237168927124862474552883222916667431177076678577800081719992649652345276042716284399818866913557580682400854008386484620115910914215399699403093104152725598230717733008133128856844674032207097378192424962084382906016883868612060132708938973215801988962668607602744117712349093998668913892344957801955285166459870485598326934961149714897837202268143509948659250677048351111978293545001655075369295680356149665884517976210650360545788191154483543093222260729021614078884777082927089174081829319078980762227530942521443808215872806288532661298178364172118801635493783534798231137766044477543530937352943227396185086905304321901410545814600964730168433915771400922297729518485560589618655426203929692454407925380551408638103098931718004505279001271535121843436181897625029225374721729866003753299654779692679189516396657951864078020335799460479652037323497657098185051038752825394982256609256141877052469376341525560373927407433003764554174113026360221361329702449145705270866039348762363616228636028351181929075709808279110427139273798398966576680328819667346271082799328556546463325390018012822814886602266142152951182281093375864219091973483441265169225428543121524970536208475585132568312464820446753584602575660442317035750752772403510380289710564100990982328343515230197479802501022853159893577506793552852184816793940263714026151226827405702992814977405676684059029264940006945210801768714976709211699182835569433310694631121547479740421281328902742380246855298600188313733236788482988247257450422417547791091212610546519063919835224839819758054580505704223375987062398166236342341667189874528798694304477540581009211866215630194953205646242197284885763864285906041960804394021000837543198926856485713975316015434109107263169402346238126287783614345258444901201954132775386610016594385027152042432833322865942895042173453503268624874023268910409876140783981554347561121435497501412345164775645210974288648299241526362592243393048015886137616756745311718985275494704860893381433415999771124188068460712820335166022021886269373004244698613543530244433986394739729892904458263304756921238250337166144410932759432155527218639390872562660840755519571721382676305270201181956006528570056082819363612478731451059606448187846775311961350444916140576828130620877930548805213602290333950908308632557455735705595911435416637895070544087674608180358906841689099508220001387206545418743562052683039774672497549647019540067893860605528686281403802941176881339291967476699177200774074669616891067581857083336809115034800508539414928050467899776032627402256597661677046905807930810059204456999407586711555182627345582597488713980683163987017479129324791567467604806081397292853994106910677591807952806993518259360112440509814971805830075162671084466515868756348843494870621252031921158373512884477141191706384765543877898398523017095747822466850278063378117413954856076934405002602697777479158924340857671840098972986849079071725135782641863801042907580337073877149955435259877933795497794128326336709787851482460948725032394236838599497473146708702966497228699512992365045034248370326504328793012193648599609645257113945454699454670657794941406832589299978811198765608738291275127543605422932540382472414484795266402263117350187862844891585241975878046496686231158401673079449369439586788031447020445794019177446496763790962575749468542333689020435007645919609372813309501452744604048392576732081718815123403990644863577173154178073738086195740799605264470040025991207123035461116936675688085415378266035067073270075805410338918936718347332220603399404265731167994391981407440409440787568056348712552451217477241250529117280582825749633214338946825021730323952998333022660606300694876341645015819265203174070469554181100024782748067054731000186678053091438866437613229350874169727372351403909438239746592435288287205042155816083428822078103949406244276820599339860706012464721497714467712659027865188255510185642992924046276011051393862971737875750769465482561915753174800525861983903712265269533989781675967977780512536093427148442670190879463723198224368456806249443812374677019611274568903767844648190585235265800172487657391725416937123917741049784407194695925200893667678285781898009018647505199133093243539108343658839562430438763479833769179428560180891780516575240457994247290910194630959775570362998893838302519567863556363817230420588460705481151635193511272070896981430618816610377336101253240580719383669320915127812087577175385088051431289240832720119469444714344712378151616923401145819693953149274992882260720226089519406531993370863445803715170884483835349066058479094316750141637456817588088352957802851436830594877948528437263254771327062605981610134407500152944445775323220663351048584576944672912416326237625009863501397847614364198176618190237533944044553163041550989937966666883853463214812300517251971342316108932182670146660561690270931411375160695998068905929495977099297030400695049954531763055788779202471069165132966862614951376210273459543946943625078036819278768845161805112578089029907199991688019061789500351038288936543860330479219853108383079834102773998940887493964794290302207183875751695800953505614294606722611551318696198913360001237866254066337569274827899452098221321670571309704407769940748250244816108848974608997823620018532990929005968470162788310307761910268349608215016737688912280108518956067233731286004866047018452102321441350288080618334595357626270696679635759945310368691769894915636387256124974933284277646961982933729526681359109159557504806208114033598440765774438224556644391508405742438714089966690099388109067303511560980770669632766030313943763421877446037688309267551349728991155193118480601900941469263059610846461149200409468803625590175770864632726365647224103733194853518662276128207466929765557402773288174915500252295556747654493705694002155867191786748393036832616097612160036645860962377091894857619048789690442119965333825982299498893524512966005737656149871082160286236891715831688992501319386617466991654294918278645829417638388657966220870594577044650321680198941061138577225248664957748334606272562852055948818381446425445056582768971530692110721018122701608924283490807067105050099827624178688142265648584687339227192138505951321037317294166731375348422902948912413081060376782677333214235175077823379471244750980037003531982033841730967342070828820319356525223690043971953945679912007976205265176768135155729738760568003294593285003704292801746918488517882828483257725294427834234914266844058458089339154269164116888966023731996502095212632543145474065462069597092346289940263865511809869169526966522145037336727465947925964539115652565280864153104051516897071807644990663237803135754186015371049360923656877124714514516154154204696420150628745370081872264620856924815660448739279151956546329803957898102040083506165475986065468192736390130403323465527178283971058274253993723965460903033956039786675716583387754377149015435215150893385607384059650140761997471344549147917872210514492694223935212664324382773350133835811073136781343768807367444868244216272781091572799847094908938752322084946576470554353137415461364042006927000512053136241587519550720477564729512180708334312171730760887636150290298308054933358470006333162180488676576394908206694995662215453393617158996181399099882339861207808630941383044893767051941476278640256864478427988207419347957032498053145588336222876198331469010856539426729747559893516737519362276841904770419024870704518795427741252981425370019381375096435128404292233657327101526224955421573723791841134092498709198969915716756990495000577575636586713322502960392149288192762357603364285036521338900324077754343109625954014566395569840001267643722462948415180165409297252908871116350950494502218896816157854608672002394351663004825590798074863992279123685460183276053431153491473760414575689953132632509040058200744506020020298499778717006127372894977061633672521259343314526190619456596071422065349544749536638875566056238021367467547063440306841242827818607206870268353520910454266335269840409629110442162043095350006946040379065170856147645181865271148571386233936072586121183217322808057343030824172058159506881504676850703392691798546182880102783292437588997676297447581733866458220768372050896553682884545911251424793432639898858021155265251884712646679346994662995473007878213663434511815899643684835568340124075910888489494697811183957775174055691974675587528619754381010675695357702559158798730667518108214111037477542747712735052938872719784441184507138824340876935858657096409853686315424184131492915345209787712667703303827452040554834743668652915291440158101108772788192920996404879604683931485327454332341859385586200950628518372997211380960487287419425156064283271372144959109746203824773450903437070867376018108406683364513420352167436630066722722369489213564799442187547183737987093107044776219104139295381392508353529927994462147710619102191868911260422949198044183914478012667168124586261662567264264326162306627430329924155124889486165901546997248777139637540166344023950472216557767428990048749104110920407731132922201007634425930994336244079886833255763539938705088869521419562997490513609584737587322844437624834157692046932321895030607597173497634501353175123960086164786935953108505581864013057230784913441214912472045849449873681455303254008441863619057392331877202104500109101326663003156435492413102246802802842374429457525148777090744236578836833615555744673071030088977238141067151273377540100496809365591233591675131332261126851069748276673240770856988404121161076555998344180266188796655602646084803887112001927247602350132151156374749934694697157550349265153441428974858655929405660044459861842032267219316003423299605812047380035634152320096623207829625434852789202663546290203943474239326030353046612223218147517024976582607548633822842310627722519138821383900086995438164765305081108694145192509691563457854069488144473826371260291263389243812800696489666206746635841143399482473329731609176435511226921488182860029564592073794847735857325365894389827695286942688065822793926100856094377324444302747609151376413657879960889225285697920293735301150599316545158868822295651987149617935291240634873486430418952744076317009190760814634734998409569589916652131769373700368230496956735436278129723660130751640366137369667116726634269443925539019496922413176686314598310851393645938276986248628474156784034898810630203033882508724236582701256989288479345672256902497625638527430601935607945530494864237648940260692619952827826433277883466826638398283955968303961733766114107693072619028468648092657599738809990060812989917073638101337015713663254199169484870447906560347317487700373274782386792640446998985112598154297388600475127333433733036127178352899251371924618784676915235143367259707572143709220193109051321152203367121561018926528472754160816244700885495695071711299743175076208884071897914982221025375213127893439598275052620406602307953102536568347825865041418474242902854231126520778187390985420898119014772865177589747895676147765058439700719689174439968969324785583902965535730691397022558901096306808479787426203782967584367827530163486931057769947908360127769536535155596510035024943476987640357037444336078892447739106677501953225561981510570238490493421234885187359735793310061293670558215939511139405441493101266375621228506707475108650094867451201929096532001859760443665679450137631671289343396215672385390489422263090164555838120858562537022875070224860767723739432689231839655993906492837335046799163474547208522879018029024399335805267914855284285093730809393766479397421868611815391237404338591274392283245674281185814243927379703186471910668854740975941590713698706502863512180974918131635694927504206086070979028857865149140922874573568693388582330325002158711659259267199876478864196555436133707145301999947098348144820490417504669161395316097102027384956565740588775198586007141956537437582747175051793071766644650649853588259031389586063654162924077754525633703641534416760049173298378267254197621177591448252567435232620877642760237654553068009821868370848721107161456334312375336355273050464498112463589271827003442054441992778940452916335119394763466561924513330278001639971997935991694872025475232351188458141610296670681351783013919866358092119272733022592645144666016886015285341936817790193882459701701181028427392997668586802619648064871292742310364348532378492091095721598235557837639336527947502275212067599353772104885074576577885669574603392922178761755815216681219031345514041427321447239147056877609722071439561159079294343366523778704614823148073849583384691969117108570545573067466372429485100347285581961390135422087431270914204352236166712444482015000256633894792116467360797960612551741876147858176000128282413809233549605457268244052253227444563701693315351388387925459696785747365798849956945049643428059535191493204829563946522509372125479910190271770423677247618136005616836748252015222301926024381844125203504051293741022347453855269825927857811854380165369222004202901938099864281202393341777431583926733634341802028163082832253440890607311602425692624270613757199546135306887848875614333053892447261737456573641548205510359848191481817224877780323156268601220038174911233284421205459477952257802626571065998108956085685673200033790045673859092598032601033258823167035685934048609529379114318984347687921684539529045369634098945652927022560813712686467894830485672980268653967116141493407649942818321396007764616166875310653552507370642234983563520477230412952598291478008361198478387053607718135442714023073711893712963415155945033367162801800548723532974739203268815875938619222574681830498989713162120909021466835066896299555994295463963698196357729073426718358464035653735349916091132153047295530675912075592107648800798212588346657454842882115854880321128041827413531589223887818918273393403504171082542185670480785381006610839893111910951429341859029874013320260041900014594644354428383781156615307852701236375913722552916519218434620720438104642852534918328179725880488298352151016671800849838719244564563981065372904405681689807462628418574133002532983963673378829161439011287268179345006235423279722269812499980325660965463059864359190240797234209402738836828004485988950273516058389219163830582441707260182112967917905109567163767374086606781518193814287433430953311597096251999933124050464885285389316181204798375703049646050349521346686829517132252739976340217357671581058982588189861755488964498895089794153312590437397288346662396012201035757298426031396661668160284061965426684306368681893196174332354431413756971412085204926021235100251424411057621725873839653712858394879250430948929391232602891290446557750400053020919438753064840553500437657678822028615625202442575152002079580227770520739255903179803152329575884622440274892288878185086282517992877685550462705514251325906466079788396805576984219603079209875997726613329608967945811123565225959346262325851523847123548271877761988955372941949160963501284136561420483131146495396494350473418812159693438296656221188441470912481525556132514086556956345892962564892158792352827341401603702002366555851353113525690651062357172054949610464127025245310832743398835830864327528965245490480851188297880654146859089223898848613034388862438913439201140319734357543893501152774919010510814828762891238390622270879177801646852410454515500247955769850381962569977735376668061348174320972013638178209209092421798917289495203673496918239497594674020393261356478128114571041566730007570350616675969434995240904008018757863020646453036991894845270746107987491515951115530541589923188147755074049179298467033285466317807962378583268541656960358624433602314645042839541579322719474512178396001168521239684590933614929623861604425316159968748373562772283523183265310997402749622617855565937061570203383494724275040019186653400262264942656001709008775457391614761711875658731735403073699094339060662489920168947402614407139348376956745914338918959383716348773016772764229695283683334014909873367026558616505579837301136808388182165021087114127943998280693791254716135365612190626681900217294368569705806438423766954239102399535793297409441169042711159841973064704689538354892702235190704469457965433308050133742882000168346600589404120486294893096709571283947792281881487276944583758267338299007785262653453680716168755655290730885391889308625408129405275791953346293013323274393951304520166878708554716388090240567493308510921921269939762348203022551336093924270385384415024495450424060495279288268562258051070935380957975422805927921031535679744571739071013763685576868298987288957847561930863616988571079624238208845129691755630169485956212663484707663548509205259384046147591599448948473919393124687286870261709479627416530557271504851644464634469764558589487870847026516353508411219606810241311468170213007161212315286406017099713280413111661295157573079952722749316177092246281836956058885006148198785229265888341858873680920162746051526952929804219996775055272986463442138530932742931946541289406422455566738068130178075358108707797246420702280482289782828354926966023517437411028850248549102006245544647689274063446625890979761569980260977068254836144816792785179172106284415053530887278196847212310803339298974294224083907472605681316542409459660516779356228498173161856859463847739505442470103018510683454617298720408884724718247047703347659107992510759210327770649448771072296908689124513794386150957618295737994994484566829097519100135209011187540477487660443825172801489294251043969078983712503452967173335952290982518510779602057801319827106855130689194966626997305955246363999264311608023224749531950670283107429488671567533006800234684354096035959483498730587605490873794660534076727098628307573455544971249242005046876791808499409965066299452416326870571389018730637722381000536677612606160942467335166314057397230348405748056393263387691841534055615058938498813847207991557764014234150881778818286111829715518860468492227490851475915391478316787779365429446518947430233796680346874058482443880153685868639469659896673205545604188094687575353017350785278656851545399581868045070068020569080776506730213007131458624183958755294791238246710603831669113407942812188792086698616606774045977752388373633274860039413527618705245079187445158549881759230125543230439096239157966980104468184052799270052884675926780160479631028902682600067256570385679933764007087263456747073949615861274554371507972452310313994208407132404140076331307883404355895244484875947319104423545332992781060650282640200825468426715259761503513499640050395595888231865747283130274691398616343727982591807871258754503109720629874163045747455946322284090039266690927534251084784931398560898020312694616387634703292683479128221570214988548109497779219537514994305571507611532871757294199691662062224841139056487966124150442025366422609375427795947619504435186536579131513960137255313055753985611544496083392812914976877870674623586746199587018364780948469192178661681241968802743563574287240143646415946885642061560677840396149226109210165136729116577692972983525045320809355026252327507260946106888792771705477234959959367271273140560589969863821211194451284875234594788899997569397607806346914944900733668600711507103693593998088369926302581322305927331832529959083872154754804350274487989892335079029870781682821659407701272524271735556623321668806440119282599985590727544213601456930389062119994277864744958947916615009703282994016178032764123539092085224051267628820345941426566441640601721406351171876928871983233195718421530180705376194816765782025532060609231428586265693512605852486885425951152772588847340028592233711559414657598550057429930889638499198179250289827540345028679270469325604592614763489882960930514855832246405354170509560204926620533159420329164651445709343534978606431582262416847160429598478050433056642753375887742894956842107295415063866777121006649607193631477291703216438601771702130863683395310140270852191987146542440137530795153237697926427381154534139086948485353418547228999768376491783716325067397194305993300140552226461971548728441536910179972131688005294283719768616660359347773377816709414387988646949817523174407090077268774898586828240461099222169703303970608832993170261513652425198250721444833384425796061662773919024480634716616520646663246869848181483694203898538392641480003438364452797205289178593755845291325474285055025133260428485298813769984964525871711797720337048876651043936754921512829307640861370630081103118092376242185077499464990278299460606438875475183809308746972113792340163430169600433485786298667954220563878094634647680009009442656962873291080965137200308847413884301959836801359643699056855047310644593374762616613762689904483708552761743715120285361515811997656324309673372408649983861789249166407168778838074183572577187733715474349819806468142529146666916377298379567175961238058289270983772890298335972600725954531341933719281079745849374809071843315128530406049827799114159676296534006047215510500077537762997798873630963279651700697286330132927685527101572760643341344654305904021019394750569271477538609379403931704424798117861837325069680075598533948202935319650061092699273190640959661706679366634144521719617976182986211345470648843659625653197561946430955711142163605376704266599434333354124336397761158753284801670323707611770319813871686572224019433595288680513239974655045791085005895671898313648903706275739519962273608084503406959314926695346015038376472947694373067298297526237565387603671570498879355248067589934841330659313983179666798927162787888625210367837933459224283249837817857154075655307211556873108544725851811860630562890774482809412584551295004048724212054396355347306297783580396724305818931285738729857121592627711855628133377918123257525248520315173077445054979892629655481939857279503423225054318989542644241158287505954008311744039129581986030232062340675950061082681807319005389742560445166286831070048837790517973336130607886014250017795845124113457118059450996878271630787138551823122395081271922261067234862308275853838166587423466171472537763847440925022105735394611036257265347411747196947738590429606185344330749427545381364899427975345133656900273521485536766725329353736258237456298160574055924491825599498260968719554003813164848315955497118025702463078489470571056555399543942241078160469338530869398230009473793503691602411697658017600180074737126157497263662064828266068793293838525878758814573691638991509225984250751013300185015341734430952870286424465800201697267097387759637375330910411385545505410483451573588904025099603671590672653248599533160976586838038456134418089061972019565712098621997200612376368069002588203492273633660454914116517485936301458257855874470530562329504335079121971595794940816577444232337988316587027101582864640250382436996896789963395838880140735414803709318893248712202249496094429737562735200087887259535788808652857267579024639591370372602943261343890361095720309977849297163590572114492498110531124078759692555480321437883079471734143817237246002140186850658325272548697894616705884640347462327761365951932097397762833581991569125039052814055990721719988704244942198889766236104460546197027461986249653128775912874399482297506946824898452365258631105938359847851144307171200933372441129910730715085908187499550311573359954212906928461128324749324102585373783445488345470796067025436156859527582774722995412813246831905778637394819845944270228117670729562568768685713919599217461975999058336798751990346542941273277209907907765337147054736100736144268784133269541565881756091596942439595881796534202264164297479296124195474781282979649535312587581809780125848650915582794731389784128273767374836765372822448807290505573792869588453168908436935186089015799868447820191391319722397208103365193403586906328345921592418226832320499366447400389963537470614819311761951556875822812057708051791947123900351145421205160933658482696786019918762101569245222304391060214140139943063711258285657435614133899201921160850447618921245377955578012358940901546683652241674032059224042287432058967524234449545496734202718015573713106227857096083266194190150910759110946686109335119196841478627895618826229342143736853611890537806457199606851745998906554555161366758367778708074241270408062360071947427965891876962464962098692350288741608052453763299920797337442983304659553958961788952085719780912675126393073650407172866884394903835207547414585124932323605731702188525831213730908253187585001561032475223915363512391710669252208412689903037931499237415756655776184292965233397426919910723367380442579089518193689302546016424938573675910025911490047479235245316087621698091266886227779581316749643946997124248107416584150588639719781775294983587029881476015132729927537517029122349890014706916977056589973824920011957633586208968902771330189611801663448132977469255668353910343883770279970945553070173902248088129264422368881153900925680093853318180398842970932842139957924317673455137537530385024505982251836975005284986520088153929564355780808844187647354080877009821417695977939715912717054670838033198659008198217456042932759774923868677931544138760883327157999822688172088829009020140651015380195516171884624127041709277153579503213727099265936766130474295045021449837035759162169774169515825190550255334695483736485430640150653638304904153590049883787980627466244352719464101706481386434826280273872950135018794396779959033750062641477818714943737605882885428801180554355429753804658299476993172286494320118374150852268909568220642133070318324693962121290940219694316303017475625716293350542930193608817640484182139962151036465730217941592500906038462483202595499505551282266219063490542730081064683547957237192179691874886652681598541691227912722130192261879837566716750520906832333875020712373470732806492559730831623428976029636980228403514008278490841617018627271461506402498762920546032657257386017035827655687757207009560526718288357874785499292275632800882496281444055513785224403716605437359501996508919644969121895875145793100073875732506977939026213953132411637931876915069993652546301993756205910485195327959155481287029185564867555915547487836629390314790768879165184095497824439690200693700618613177043441142024844070277845762510746886965082368694619409694111884446963326680241985195302650012815636759892697393375550549544180785129737553907587146372008814102141045509955560065236183173789724330440133551581367230806155831604373097357009163709001616530670303706019673491340429042619884033465559828003648532396520240073035681692315839985615962462085519383146089834515635352935137546267638442081319877259786654904935673623826284266650172250597472617478729178538786263106791660469415992590478578473615895484947523437262804728630063511355048412995616571850170995797843057511513493579874174313760196319302424816871806890454702763563251541118781656476445134140104538906193698760812324562536892901178021406607460077392714102404843522174064578472970448508996462277700024978849777854048378160955427393765516452681607666688497800208512268593026053222695197726400469389611293650273509595873850763895369416467317515324718406927373647584870944758398880372903303194503186884252641568278603596014290811443756894825483394155481845630708544833002871677163895181020094140752558400076060913131299536053578371167205560770664505606521988347149757252122965461392005759552612474798493488525404744481199657576151322519920378021932463550966388911069968915813233189417141314523931752188266415983637593257188596426430972980801163052730181742620781783428083388724684268375969534777927756942092109697338810206261643452062093994674259978013573914114364678910755910198623920310944267935754375031476424460592448712041536984020763081103154475138522590877396816191150424881304821871127638161070386553197601004049886845950164962147262325263146048615591608297894680753722862022290570603073017504828642879171496274352193887651888665627193984853970503804451096548411358921802284426959770877039263711592957139219692386789810567357934481963635015529544557693235184589323679932754433099772627405466309144744256720351384680824116198167602767457191982929992459630251587484736208238851999178309681692946762529124974722126890249114164829724805777209770134852348080753440094272257950880463858689603089592781419786836218520342390905065474639112902650946886790347800844649500706316772630973027952345591351302809262141927863241271846160463819181297502739990794447689689446254145987901055841215121391481157566170993333045504159022192694610308537799807915002236119924268294375061786560720515142683015643871365315160551996537457373550235502817987071592531557711075606608149100894932148119726709981359759126463694726661108256801926663331030044297838190675246181307977915368085067778258888584513930963954107796993388774463937912088061441517246211055555799730947100008482074095412017458143770937893658760236081414732300693235586627637237021022747768746573638564093749947663302975228331463667410814989493827406565984364151839658416615229772087748638504540888065028189608888352784517638525458328601296978080873216329899351159631966178479807508740620258721979745012238811055338366670632333606832318773683670979886507444976475690538166462774725052129723524471733941913964419421334948016551260218483812419232127202984327842474890265561639110551312623113584786059493021859479916504375338074041605791686303566532716623890087931907993016796769001995999669595552163413421792869675695398222921450852583195063694760972455565198325242893359519185214399871931874354300379171210335902835854086433718392832879953053108937444913467322001655134359544436119709335663727120529385441977525154563807888275617130084791512761044003763634388430874992158310433244060032747196872373040972912420171900273240800763846664807976489265973489931676802874704410219800598136168897875168192261282089446227175810173270847334878041653116793435616972276600125988429893186468179115315743140133501771532346968994276200709589713133584222398984737585988460506450188014193346183860027378663257602203471264833035407321774711688165772326549266010475232665461948035699774172488379029803796726509769992545156348588581903001930376350155421665910238016204200570712312155699879599656361980683760261152048356999489515025559985882476047916542707641433593648685706913572378850475378298564916259356619624765353873125080079571181678691749354102972948055266976127845880455984251839962231012133219182526043473178118876133591006213081349218940711165689821972328165795735919721728561197546075653289080270102885935059324406134240877188672302247313676324508769285936624024405978444896863598890949923979427748921965917184739295997548486957325261612719137384930985472606608137345106147593575490040787798157964551712873086864498746314962892146389488708666224313997843116407782419690995828957374498265006652930744746149588313115141133905236453146993334236565180402893725220219376460065150953589143932880878066875810069079188559529662692420403025690801572124607845530570506595677422051100997842770577654910498458097979117014530391551287182235284402894771423283174757149261652422777499136881001708189224183140645758103665662261562721193320001225557468815510527204576817771057843301274956610908498517669228257749184541765899987858710216345748526775974549969186010337113816324566357088900175341682836569699968383649976066066657460181076183716145644869841929951474845085196264523111409963759469639616675590442593147162828916198248565849514969939432416541468502023243804384315240239321610686552110275488797326962437577446279681789056174633311186758344971601891186707528056133480605678643090465044739308504312061964787862987823579890013239861359961936877325224176135171601706982351804695217306339394862596944350987620775744387990675208676436062934568642680983054155045383953288708341565641371132901594192726443989643942112021725484084993925200931424657146578258804123719400153352136967962046161051887951158854090548042967974695884416458237558440214873353024232428340739947486052543916091865927303367684509325965813480502442725781648599371947038467832506271539501440225332874831421577666506135952366393111548769458982412703190016647650521106858339236102049051799559892515143492656507533346108864665111734046677962491288261811594614524476904240404252193275225923769340976964255666672627644079078765256112543891952559594864784451492544190039958629177075921266042645548081899357809756702197895320690300962638664272787377446604513008572682460375491853090354610456607889989421035405019023731449775898269303543366485428515725750014259012365897697224166388291882579082721860963806526994857170660692989367472127699344732193345656458053418591058418179012961357909639369789043550434151144606184704128780488581137848111947077895226914040708205087793427413065866898266579070389641958591790766113046806756293361937356458350082713625857713986101792176307062386718662918843262135722271140577019069192785605515124170265779409244273283318265045119095843551495132242102465375059601717555480029566949348244487648015269882168461901813317312238440680599259861375921481594135343731102480300126496432301796142377926780497356158624921366576429059180396870911010673191664084945017158132715674891572789160164176726424885261024042315680877300636527022484154024218267385564977516399675854808296512362860305293790651860686297389960825395008096113967890836557990929412875660891009267120703612555833845902227439798813504873238978432574923718018920214711644563467294013563461757406780467652171134608676398639905025248877685070840231852291880081281987218967399983278822433164916248548042881961843223465322270594714729586827235144071037647981080902286162069707536772336811232123301410264652061630229975642290299433425553027899706034350903208291301812843237943700526183510929191728823556875683287673216691694497614944588794266392771882538521691581720946899182471234344478043004330405949661295228227251137712090547281202496783555834112491981145044590033463202682486471509757311195477724751473625187960479781484581763670391397494692990003253657287630515694858877228398076115756233603971233952076827558308546660941508783139970976279147066154297882207620963536371184713840448303333950094017056174574167685443773545737186612239715871285002259905894757365091607942064720213803818525552498632992965075142295766792514894886455169777691198125116363635844832402957267848292708863793723999575253177174278366386374291700512749778773697318496907671575121397125800730282708024628472322794915697480394016984191836907878813820753608672254665579839205339741442021731229810091556987628310318946281944950049862273823837434051463797633955538214991042425930668956116633713338645841041584469135691180060127769664283374320282664982678147323088920997890652036074923154361753768433502420721784369112051568478919465531395616025836338198998447962574376095216616198096309463656448355727667213873328075974532496243082389001178504778681859386369696007343526745157913624804997887418500174457410156202697110995293958461177583478893722620097132530823998869759307736505462592291015657013357312450572057261920192431270481702932975505943071168360595502326271129458831144068944870280097298730463854855181530268565270099625143574614162697342573050740748229571207121537041626957060434512947285072115322614194833397980264865378875172684423489774912253824512386074442601166393806254710251481779804881226705698474041191784680444764553437088088860119784516705791150017440399280509289831439788786907967554882445691906764092536124636659894819623127834556924664264154483721615343363558438855408508430533989835731503237784117207088770576830182644407493299483770156975185129519300415130185193506258006038154409879447261183744048310207489145133526564804033900513515112457128550044977028263923897847586840426259892133643565148424435202988995772431856039613644199699784421651163480363639643347044760776465103457819563973012198965422067187615328172930924780137661501587473711591148275275993591449066228795532947819823389781132848596543224407024155681335096792758981694035943704790772767854868992758789076425907254438659241236562977330571248497853343638375538969509589680538519287631776100579879199068455127358941675062175664963050694559983621141655011883835266019335221507558757696097417359959517803629144763240692556739398052853359923634617003104310325900079349365890468828317423909050210963609288263433001802759262452416278767567590937898219394219299935247191834461278561495318182222066824618570528594376865998306215117281033942220706517381237682613035494472595380258249665088217768103376839466999406670542156634990040308180434392140725924049527259681634253308219370903977356334841275322007867566029939539555088984331179517481022664167569124984281967693072254139432769505193404498706376829809455237937755695036719944670872404209647583827990873258884787899711157933920154477973008678423627059296958070679213313137786643120368982408396049245060898022507954279385690320541282633011963915055493212445272355488596405606518795138198673523892836036436972294748707329365474982113435991291619689237509066373286728774444182782634471204760473190976636853219827776194249048653198655057431749113908980579345182286611895863763549004355034350368512006726500008616149978326653420670834419525205423848259495768226138528728284291897648208154059403168976158114536571897979866078495693668145046533165192971584099232468029307423439439189279279808472539467148834953582080759764212105579240071727677025498848508166484549823274509538013130019252944090091319827066880841988478243856550072528480306611232933294450700147795944920572457813188960655672714391939806228712874196063570196718552872579982882489177738519069424221693739158456001197597743737959039598720318603335125043014962433485843436238681722619280434727361245932949508478665534752638822188768204042488203089716939655127514482769758578001061294943071575282580274714065194817674267261619545149964858174375465051245525129544808033994545639647744122841704280000677428350310154203251271602727218382527397718110062976760184906882324962878762098912878257738031991117202580465116709894229465051101603176930636907692359488186858755767572723260615296169691575697850617720116890273942151591877440622234575934868662338059548510880504319112835978371122555141019676414181063374756447622128754027709268897790317272390559038466673368425550052089576362481228328150844155586892684498884931012300573926090204691402808875749554609919123917685815936234027204795619298129016179890155739801144649107765836346086038368395806849178685057222732489228341638125160911020295619770402571171336313687921462498190271824192815915856839773422573524229800059325885732494148923517807458826678373095263030566767478128450048684960072584235872028068434057445472556252874456684238283200596844297913509213500910154920676509971949232924443879659335239097872628272646181535251785271480640885060400145890415376387526419733716272760283628795118229009211156178820953300981422042636563100011704273602940647486115121572022754321141096968960780190464399974825990070550631381847111535969552249323803140048729253152630190316485284849023036939257511142943026508245066692402237435077166699120643455630545118059345885896424804340529914833624511966621037496222189082163993239053256555639983198781377559082346103074571867932401193211627398655277236442420281748696133399489749893371817063712973565123862354433493875910178747349303950315916426941926582370685982379579607664672897515792584475090168959238151191010948027323331885237692459111510180539012398225563602735827589737339387401243464324770323934462404056725727413788819791944929856984714802765843374931226182312733961086980609200110378988749191617194634667417132336936656222575345261734156877018265541931547115931293989959461294669498450358894578878800301700822032338907199599491193792631993886087761855440078164279276021540236105830659121465593594152220533198621138423946285725782512504964855369517199840790020118110878848706495818251875001823410990590077277930023063548184486257195919462608355127346532552749780277075776659458170281754282348838251651444446790429437657172270013068949722578169143290577081941530148563136823628891578028337990058707921797296766672419351091920787615332636107035391423479609366253868056300766405530358072196167478958249926620332207165517285398852179166047100929161735967205734516774321875517853346902243889178019050832780156687263820366239889808543538940238218406968252113350245828813920047999942161231174884992483660860101547987090107120533433977062338374618602312360185638837620008987330519226159931375079649069101044582775137098609680007314740334568028072043080101380366090356638585212065889255300761672901340940009408128048879313298698120196954624745742773850074966433006181005294853524048739845125148517549677594190589470140586538139204455919105038390116271911981839422989880148892116056385341654657002004549479746765360332885645621121500646705919008940997114344443263766831730846468701998811540140110874153137566900973569762306908595440939121671110462591566799258682897235946325630000733995072078498081445304936119369151015657136186103004866799620464108480320972317710695735044471870313626037392865544281419564189364403529041842559984919091623100220380415946664162229509248372177950487125605199953965868556128134146768876615012520079516946419050159211450464546256450783444250687696167647283120637339381117069481251306198252884696660636640759755860417507088351394613204492666321296576741091015081272325924871300593747802221999922584173342337739190418144609892404429852040770705707730264994744031402949712376301562707941991492384652813216182889150267145704909241343260024334353743151761863994015966703894309240854407417271441265172414962731845047441377444558682861221334357113604565799166552111655580667531927883446561727453109988952946278284765757060613603293059557724004613895172646926048063813620883567766061539010597721615524735047944839291552256751190539858870581038523769356932383805388223825987449914530950718592738417092867745056897817937530361448513113994694220395813019532801565452361481065383816497107878729587923509506588701152587910424352490874864547535464420916742112329982029877844111807667251502925879468024394887466665803188332103342433514424714238678913182149585261914922389471586080292525279644625442603757709979323241504442124437946065772280307661541516935935515812563951055017067299237871002196381166080949678031399877209049051488944691087348898667369145874009455904573923298555033898799587141294643731979843226518714857326366030399156207599853590845403747650300562005139602726675944672195854053179316369488783736340495327587120760979300959408569398053462538901662555114399800631061069460719062589903011028203506203937900415362215332097035118477662797023802250984268342169527919974901997803566864668163342851608977949233391063162601452903722729105393083250022182911142516057293897499918653126412592356642527611527990813166738901322101950547890465651486111506349757416920136947780851715549260177364429937791852842691211981255673954016945591116318946497750286777593479898273830094788037533757074609605745077963145484348436974492850942856103508673461033555971170176170015609979141322562905613569250906713319285312727622768403935578802141944137123843775999444578981676569926673020863985401088114564434229430460428136542878231777237460553866618282201272349825810495717252247111957821924516539425081541329945001477179961336717866727138554736980779418215051476327107426996213363087902693670944245613791363583004492513663698437638653734580038709826333600261750298073405171331682813229770888367358421458296098104776353077501705654874968127521853023895464551212775395907162958888375185356013977887553048827170227754563877127534344387617492675414620840374447872612756703109563304626960442808337763257855888256036752566872059458544066194623442857668674789027313049189509234338133707069308746364347211159904710776111182546220597600997454254606894273555971023466751986454967009264453785838264994861838389618035692175566820723450042761936849865694362983920916141653173934420858726009703368869212247702127225174868644781048648313524777041836285605042176537136967965710965021429746154110739382306729052581836227827263212952592154866240894562508124795621610520887226856251811214104621031091735877120661658340413631165123389972595474607433974883346983410982717235771036901519019287681502494774049385775305814735236108961725421486399581920741286014551902752737837631243250716687091490072875437100317665046990060291794430552855911868350483924650831298241651881172670254526649657232131220549296996691524631917265366105756361998511891922081207285666967757746959000614280000119875304686176048186649879373271264974481887987064412611012191434009458348647173924540195847609484012233216404534252231957049230354811690369963420923454793277202565258556518974752416171537717804081658589572078068543127876866050642867985486173976362991149928757468562269125274374742626965621752232793389512312842396366879854199690764713507530774803533574899020358271344929684755798304089832117258695909190806128771393173066377605684056705462435541817570320660288511208721532355754937436552464581915845745017534637385588809725693652477191560729078369068636397311771087795674329368688759705886312452314383815660119876935347843916011681459310416709980957036836794390032449588917188946169140686756180789198691559606700374508793293418838851988073247947654372165952293647254562107044402166070560207156170984620959920658904557885218475747058131828391941177117032460012678914701991751301835095695326578033118693180947005067489456299824000734481444313563019818318027468856402346737780981739210970069469144643313415242270130409377841699385236547774827441000854012622464944154794656652031324750589341725165206377740614172762044909681377254561080981210618256930261535851223424253677501658949961356660088523592388447667899912226078865075332415774916011260916115633672780695676787354683821570281914068983171773253466421512481393776725333620161344347958441590614344250553122073026820583439739204835016440938029865656373413135346320960662616460267367807608738713778411019624169005458321103941623427914432933375028984604188873097939684622829422175503421043627100708710103576383786596935448237954780609937325835441580406244657649368287628247784870606483986837622884107380838625914096089113366450639189090445036596303143582921795652144352148157730784164871687232769227411755712510777488311620753164682852573206484413606681619061606330294123516337883281100534692773941422935150626484403704384901317869534014709813839599501109264604881547087174325979780680090092612908765265973634130479490912144806561528446155776146318630149630542516249311980450318170234256352765468999368153930758648419957959232353949113408215322481579358656740055634014229368478350977927338617159405944660469829438888179176597897329398081599224737929739662659079007507888734138363668916899019382795778828125248830142338336336193051491570951988279894270577028621410342876839868773074079448956954594616636291995105299224775727705065614714409799217739246553832775699698994156623456557489949097985400382132707757916590431726288244294623024803028691806594101942402486463115783177738831588305577248848048349188316193690464622046216018629017838836299947400370687200081901501072234801764908098118919845506639661898556370867775994795689798382736756960687468942348956806761465166915964967282843147313465129306897322739559596597994161571372643066201263674942917496344549116988814476232857336681662532686499724968564537129233530061884984798964919057756060947566295939714437488271242146873973701337792758567140503988631891245342116750575193787503302302240290630264868819641801295461516675353502507696851008587321950992923415790273241989453436336285673394845667787257157236881892745703851787466533400605078500089644826145117666037843325583314096185295135860851065391001706013573770161161982964974027344708654824557245969022445978520221687792087532476349360273244629263466815766586049781289843160842742684517092081257283778117449712734310505201392119852183763127800992293763083992330475997716701448283116442253106037708490123709558470793256486361722957069091782082865093850007921357661087463884146135166174104765715292440846526142385224033467153248829484966031234733176651212399629990318403339130228278328043611823694098947873003148633807738427259973853511110817827838923466341183730756794002595819793836301317535032737909970410344667509031015677385920553547935794030656738186081184305203787946221669614376564699032449405333895997653377150056035738907837524708266236293363458067050123553004102393359035581649933866162659248068281204345946601551284944743085185205870515514872633085655529888223576261013219747047146290074560211064472602008744312504451793632689192627919536693605232845620884505501218160627247913746718818367453152937120887422000358175319505411056616397073699536110245189771777627576541683281222095377395035729689881048616106052082396846968023118956104188248338743230940789556877279595392616989522572096120436181284916902007092589302404289589286282370550696725756975858516183421559252709571234593856898068111130055456414087134816689862687561726236271674697152618473176092741655816101033322581492917715827680557335159285341470859086000222147505304113063913839271762230771355542431467157067552624173890099046100830426019045270572150550425174917077841775817070968856552512248100970418488510629030693335819339081488647877651956539614329386333754740813895277793288194251650847615232981983781416463172222153897632639128771081803866310900161422712307175177486676241759784436343345261657732951540798852949443070086075782653676275708444044454851062308662290967815163632286302878166465919435942010039592466044475798332181329887041758665746761227575497397692838524226779091783140699404474441985622043996845785523213985694252345893449771775091932603985888595196340483681507974845431604336270083041775232485487599705402205394170608388890556308446669483875780258384448700683402151606557738728967019767075524592846136032456238310164816675364060822634394952056852845514762201331992792916536477777612852672879951022527905614054454334964096007687722025760973256250071917035053981813560622108698040786525995267242003805592566537421663942508620054541743925266959336530287870710842900940266365459493165483122055097987470670226893309863937451379039045008871846279814850673710107228539623121825012313326109516139552012619594165607056040860733389084449841757569985779141843132439264067411668816135700475434236947475913644504339381442632322106944966467791030627933764990098745041096595506575067048305237678211887375300468626894619901687054750456781937843059040983890067506917573474298914179613898184205572735536450724075862721976027733492325844042601536493314277188423775234075145215564767136769778762685907055409067840945103239163668927623517968699939274451164062654422156899892137713951010796669725591558111071597520120262737781559987311940468097666037307445587142130805232466425318029822520747917631672417157689640245110784076847666909168203647016153634380313516825258093313431701559566781822384398606623223580722311225775345137617908859950763769238060099047238835529302363256363527258195807871538805563341665834816578539766188042220779244986483419983027199011415802347927941535213229046498972762967571760068835256278544007904999859141120738614704360110701540980587155680346432082681166341499279957837317776054626997229693624266019334236929408031631710361863630290959289492186372699969668238576913931499173501522524826092916081822852302468062129379696824421924202294692107303491116750834441561402302523426805400584315142091705288426750317651297188084082383186985491421764818696642688964978672635205479736232743740739028531360104344168108325408973134250417875120251055956093519979925998716249649095469658047654960011083955198565188524498748798092132898234168728923519001132328713253376769654573291846246334851104234014955044233099028727089959835898462177585491385190783950326646005902499190141353075660519420352015429368936372165250297743062855421434029106383035975774066180440908237479551309412692276684766149591674447329147637092360049078727790129582705031227752219068836438045740145589973230139265442678223538607134249633554028240842433781312134057854893296316341811641496334655066027449078345436561813329378185924216083642275782067598040692642033154185147711508382270045612102115485473918138412209455356860301404101957101169716457302072067430150931583076190157378125640307702428612492631776970676905696468484354079286157217139065660131059156234399163316437104422244905999782238309494282485511889175162047762573941387935231523776572286039440766328443671503967737810760859023716689743521211830112803541132204314594697564786943702014051902391168696936294269889299954343413861535343394244325923116547539129958926205932833289567717790098053414251624746222115553740314790227438995770726436083922599099811736147487333417055806996057701372404768733518617162256314233836715260577859481533285754388412408643444622800170050161155149435813994353018779917978259486072268303263072815774119931454335874496014721619403864192391450344491436617611874714420031491272166471219862822194746232115740958700693920183785735448383684897937430805101263020823672634007397901590808374147358722783528062454256140055946641323317734274988599027873112157520629325906507664423887621994890732845785898119180552081151109923040716888719707153244584301911111723438560474650553430456933528831568458846290500533139175767494564976703334095294998145823837735164363932013021921027095361297162614282247450075909183095048296540763809172863474328214686303750997580146266408281978976962226991601253778454321942438538195261461999627535913160486985071539184167171181254295994623288960735354544199750640853418674055050043683400776931713796459287285864130710377377675371841727367764423272631635059184351529922167988456511948688218985698430804754194169298369130491383564876856779725238889417899363069060035834951226851201763540543782484470918369118709265159774458191753606604406178502163301624189425566454661044978512070288721411082880193380647189633116592673170784340463059352635638541763168267548296155903992548524094867642044761513385171740892021350479354153241073027802839147750789730424746171583518508489239310239073638413214770654054083742206258962580915763080637353828797757167404626690820836623482094940204894875131603907567623809197111102867530567233879794375178663426480228530248164706216162681752001506049848877917563820249601128952478041036679633717731646516663785616000588046457927667085977444327967023426574198405416472196025093643704630212312376015660435300194660695561715634057817194052719228967274686748072402290427438041364895581097540301188722477935315033639884562599653090212813612581430677607962004781739916667182750498301576803652076124367881435085728074888812324927209815509407185810605866388877633848193708783745313770361649814577030658988619670745254343003221201129256947903237931636909068859696737383449600955364522492840820617418951395105402191897563302359552383229050229941848416664982859374971343514621832334507220442405773606651608405384505864156133405743572092032232286178347131922475094086503798201545126235322115029552173924376063595660305900928780622577845960148588768644020488148688142946334333960430404411409747230568209157661951275770955096091935544426664354207238588125014126751791372055926854647724287370217691499027602657020295941298874629237708180368805194536491484507324053617917013901411571784320729337826332768901017854354592825482047927791832794154265367585140573462821133144240958973611787905972720659639659493960484181844573760550080412910284038622224129854735445832337275033795098920204026094836488028769387220609480836764959268382858965554410350980025609728716921425132213755372270759525477167187821409212588822434599162572413414990292267308208346897187657107928154848961081748956716512811362275194215628925077738622152903127535904709054799870910486420958818307147220805945203487292667533635499068995376507519211607875597038734208897016119935266499057794978834138229096179845896479004298265847200225502769929098674025551559256159389319441777723302540291111434696087371500368755479759871555050797487230208346585980923412882814435648298999027400315238280059403538206942211035726089957823591794295638904040507756526502351484422924754623732839546444237359348518357511716330614063712891869357293774725839608918595325151368507910949690563237250837301708915970244308963411053025140469742918081046697792747785812788844992318540182986607951674079383206155959970847391558207300978139618765948711829765086501451646872329547774358265395944806595362072779959222600171958410507530594166771112936200458540060577853795268377543292289985391462345636064620786032049865635960937564198063376983609641850815096081786404755036756698710193069777648825396550985469520966179294822150958011503320809975266081431461040490967024407696894434373540467834546121098241720805940670093683013288258440018818596982612230697174479701627843866877117617243257533871494141163628626222513804016034595172607727425249355567375068624488975900620394273437674898427313131484960833900856645223908930655808878092673568854149812014390496370630921648015206101972845071969071195232201733162659395729637362761002888810758163522384690752202050810577841590295463798676479261366707684469965761256554597470401716135552649101930541863508229982443818113243959039011126462849013906940170334881300358203697568057505500074496923023956025069826743490566275139838266634716429916581123157908243750242887053694331439136249042570056243970176232720605052489354261821507212314496664194570815423596643604949553277634834827559851475061266498450315503261919465972626308292271639866458634265550232711084800592996535186198098886222377020617404146126590438101784016827747416817069274239779113378021134179182940882232377855023548817765940728156013041870177074430641411383875811585178876565404442925989790818971739609071109165391460429571450985466346524256285334325155547346392783999030662486316615073801598354944745919546137912144947803373878563201046099296614868713440379995776483170407332687452164524295059890943592944154204116796313502599341405094189421628009511474207852028481254743901728324230763127571230471908718435573012656768643032735047502886008732198219726443734922169126168658348009450484250643431182111487190720042885867209999113715194860904504949735197782968950105671047999457897335278411351039087507800571039911866322291868093647277051969137691617430542614975766380644993958934494943770300431839114387170812924469944282190591031230589232713063587165029921443543767262554084155768217741005721104252784852468892389426676977156007752450283823983025051084771427983878202045723851617328744240715110832706914220034447590489272913902868862616640601207338126506844974085401057264687327444460044075735927185375100597624248889906896048149561938224657982376554159672331838328181158680745217999531213834203502519164886792825060382335304557464963321166419870316292393486778263744554857755494070192997064827605543750669860236393553322729161606290613583052419185535176866297182510317565893112705628139461970424999339330830878325318050530584536978646305390091832336135896311736284895654063756328709765070742811204207213918358148405157758554210872176522414233175868341917161034022696552847895323276350954551253785032642083309940024594401048414921324736902132113953929390876124526408556000604335598295167139849736544914571530220678099707132868780858628386606166698419330996994739159322804620865426774773992358852027426933624503157724525223249934522768754303790017279475104270147028719680886838340830821809601865211652074311570438392893336194349855256717472765771649267833329293695958959904832766343032937040030633821773855565474252560006723561867764252090207816108934624625739286951932161889470159184239426904698038328971580903563059722730296681619303003926243512202135494571153051669340632928233527848660344198153132030130910082961005117811736877976208198923064341098131921882879197575115650361710802254356809796955085001897113305933537895420513451293024610338643774388766181613498183756188806583801959428116474930087416867722625596970272778697336071706273977297722567200022571085786391312490020951093760656624953838593893235924942601284728572109744468434476272678876925887414924379658378629930666531169370451252648040332028285939883850193184852218817683458512218973159328679542869416549490698123076495828101358712330925528215587302701909918948988299241938664239504290675185020206365354380935627299577700725267954329389723927824756026344741921508822856201846413446011307467946633668929197646637405286061331474077477002573805308560348377647584065435086307115941123553430020398202300564578429517450352301833138540942569251523553607539810648559377794869964848419211188966262083632369286182335535442544334644688610676568866049795888085576943351956450829577969959618602687704199040629061065075844092597565607505657416039586232854831348676033770578579292120718315667270844542679322050584390607698700624549063082407600794786809362092104146811308621892305339234569799925186754970411418536903982230771893922626254570121648555992809744367888483720024619576261672510413851471611113597851515003914612576307496997813980608154521816299417774275271530607333299546633585085009440763456814292588960907773515365094121292754365684646511140957114416759362968735222341867046148514243805704049299008954506017952563712586514449176099252548154035442836254013133042479536640433527442969136677570872312348342519057194970537250720543376123579457041733754872535945550944474325916640696515051383127692996960371437389673164850969043885334097213071836650385709751893130727519825914859890804525273830880550358964360046974332765105906641669057696535344209229966177398829589567544501718459803100527914654585627506349263045842815456087498438780788186543102120801710114290659174447056077146502709943321778390604262038459867869231570343989898746832431706785832404604466377548182787863116516505594607675469652931739006962204921820267914523523366206850455813819203093194751544263952260165172969176103839177681127959863278338772594835775609998170137800230923598490217512849155010542752761126911226091272924086621090742944772145936788467942310199266975617230160919921903072864148113745544098100357960829130242792830371729203188278810257899285386763430622516642609843997877483382720642135922469925995169590228398592827119866807322764944501279524186810306442767677844929649329428404810509080778757221622365823711919416029738296274370381101769588711521150658071123136136726959315041955751578458157872956023560354808807553138241174824751304325748787894077985823684337622247262565643798917784970140621461695691049546446185390122691860465567739325958674715208383507035995798299163695727672083353562825750741685205123174109283739362267164694663057871142639834122524987270622629507591265761949153818276195119103106008316150166652263000678791346166512821153057979016936428445529176994575687969964216285765792800840386663684301188470294210907401556209253249968611709581448913906194282983552033167849789268024125302866019572251615470315583710532465681372109809906421684721637827393128823214146610458963360793743208886525558993054966600563441866964141712152754250617101056479587651046910915735964230303333041744105485788553126071427321194072008437379689589338730331118882929278531367534946621564757937881675172547371315566096594090964223901500879454880169466913241182020494171802691125516721998141278624175983498222110402259072113159809743336691301830857550478142829466309362342878394899994347005764178882035652429078202864253055929924459961018012441759258502341405566825723017613532868373729332739420259406285132625129245544889568208302155721015594298067888811633892431954911114463419876869809456191565027893300304835334771908715504910645316780101241320552684918365972747370031195565308279798679706516500771602524422080596316164794830829575900358564007859708153250173122793706196151797745368089525400244265354412360980697645067372200409935824483102009930369468671578425865903277183193239172099173585207208538473919368474046471085432270718337982328611200330559020882977799925690727823463069556139800481534198922453509248826216941391956233889120451985074099922106054721603593186143755988933403483207295789786451632109726053376814937116153483150036362144191374969530331549336315291684052136207499015446473413186133632438035029000770016994364993555903174359408633669614293623665407449561942058969031662228628211118300861377658560147778550373438712153148353658491309148216016923503477168791976129490460914140457738594121289487328496524429924589850831163839045895504551629499750233944313258037984297308064483243402287518366671746991180624951563066609235999726330133507514403041719020132278314200356786446108484247430421081818626015376336000318357299082936348984627897541505980637076856240861308968567487497118339467868287209353255892718542664044050847217439083590684761660010976168960595959412117427882897226873974229609114975429679664210868660435283152346211073244198688842558614770804368877308205642858599864579728012750825679926917944819911481674693177085979790784979567910933292625292056026033537899362239432568485961834908061064354983005732669917687098057443861392475008633781933656921642221257447441643034661088546509570804897909528377333095234532961193954112373607903996999261767929507199152109833783162239010523949611706416937255761662324083401733198812908176579123544771584835574462431758683568666377543725440131577009026898872282565941572130750212835446638891274380443429057375923927430925202398313488500267268817742305141233252175029112902392177335182139676530261546673314507377173456548233710390875834100496999116860625663941347617403849182250910648090881132909059414916916141183581424404070095886310079918309529042070859150109644862444021966872344083129613584801640270544444731987311020060062153547790168680139951000446460874800504700913420536471722357623796405567654600802575772826269507533939947002848242398001159975232287275227822228242339891630877728045642444854288651737390723272048377368424661637185184559993031314610301557360930268188514139544848072991369847541902538044194312311358475099313811344143221097526713277748773023790481689111365816223982667544281455089724201358602760754577397883318756559995228040364551639224630749932426036616746234734402843436608986314354351069126832569829259198244005026407209052806453900225254233121881509576919754011009511204826672896021523023996425425473748168026681103835140651280472651437557064384707439136184237524490544663188830266525957306908999021293130360420943123034177606942311914199288842148204361183990931278187924777858824890030520221205347261207397721828030210260262792721205952444939800586089178124650683210437535694397078390435408819047014057957520276051027959180485430630694715173640082538361491387924579762917428752760809082582821051646725750417176701358568523646288146075617977072015501551794340635754116109544982103357766807441729826285792496707074929686659143797067108639451019675944695640447424411124146250990149755605971901346127982809428904517075462985070941954054410286832675498442290734341633675425839261743169652523285135651411699769028100008321996108708336318491526259938414633731156776375228918179464742571820381358119274530724429702293711503709427144410821277193638648332476087788557292910495964501275757981660931856280450032791992472586183297997228236456890363213718812470394325562631042910204534501902479910989121481882517057868696821498388595232230080354587938618677572710946030806058367590130935000323976645265179967242470167957657612402491559149753745176731538659116007929785600764249332847608366670658331464485126857068858301895684442631738733079684168624164303091416717417261966884002625267532018709968652544650209494038634202813908172467182968100456876065182276497902198057474759130690161483936953178061814818983588027032322476556176325693621459496099252526250323988284934174141752079545293455530839927286867860693981720724381552925354897059544692435139868240688827385952456875540035647660229678981955119580678292964934019590373124972534157288944526301700566689256200373183801184050182513985639870749858402684486471599008739993528365273776596269456568267909131720132008642549516078195544577303097586510376175387735016725709179445792969426181002399035992188508214820797055634278524618270257664090873234446968512953937598350924740487956214120447323950924409257387902178103180744843586990687028842895094553018335433995990507756902360967268854233929853828362657773347892767954022788863346899464880470876195611495102474747146663577475850825848947670560725920186508085789738288124044533183735692703624898447278243290073495783171889906641837595913989152764609006582016028601136760327186961738912850241631493073923703561722599763991270941906625637825605877462837086258927026588952454910705471275391596203000029168532490634877056691388525811610677288455283939138992915073097832891764887150252081251710726710006469228083576618152405278370455691324181578320629617496625852390483772603372929598957230277145898332343116620313930380907560885188230477585930362929400960213247158499746854922028132063970986573214951164159582023577412481365663154026720214395887004190445250666567884313649174171445709971442606409379942047437241675334077063363934389914449827726063362855298322222592113700758595727784250858884412165232219426567393999093729834921190776194718329023272962691117001045498750718679808145423601443008896334971170388049390978557168453999346871595517339649637981248854075544633872111160100762987176222106258208696693623830998682418866578993224774776065376364510516369167525385959513026689208013378779182850597112858400488802337902319605582432893452137752389331530148588363311560940784162194244586934988740023675175990573997349611581505112120398616519497462623134936563007289268272424223518645452826890614145608743380865015730766143730108608936673525694826737442191641096972153713890144329027431078884609009992222483716244769050217394246101112103671635355549217907494831913586207366994828630947720345778340594864915796116237374805054721653267849842194517513569170667909444755568574955767089028552612504365272259439018199114319612921121652572172814552556136563914016685075075617320703095434435949300321144311861783171170322473311334350645865832926559221050209322748344100880430418725431148755302150585056241641558860041710432805617513180921783118796048647803554945901654983073316290979974081522160997627820166101099693608001502378820269336141183627537362795588521755897714446297476985518051524337159052286806199892648990087071118006506933464819986040153095749575149966753053842921074052773143970888174857063258976324351677742147561511847143193500980351900864623975016403870201964625200917433932324471556456527689973677616082183350304885295259912486693385636611548080163717787582194312912861599314281297822422286410934563240467644665397530150401507379004846661566864519548957553135939533486044773140676889060414675795346371813087566048666851372571024270299672218467028577016860410738769705679777660215961371723472837652065497184161562899434518864913675741792933635995113124429111344848342103095170031737588943843783341986479469021298926419968339748896015050804781048951235236686323727405668056821360673434848938560857207180214928746035091308235230693945231454742344003441663486176840747637261205715187809737246283190014432614125913205628218077555314024266883542218160740035839827121517313053076871100553434795768080642852523380845396219991696504140769540337115616411391599981612895461334809581501745427832988367661305922617196074339780653166736101525691331611714116382904336369379116169835530180025000861367245092935335917268086149908194959022900843611131995869817155936350604032123806783122206651111105127180856640900749411719063129419163421563039142782443376828680372603591068055250595197620613263989128397426876126035822100322338990836466101124851038767459322745487592458230491379732835377029920430635318739598538974241535791920869786087558808756583820974513309696219071494348081365776976131553765919949478114731555158039985461048016593997414978893890010411615726430737294377688964068519696411775069813149827832322017180327421068301524368394083806267800391751026959961607032692075580834892864566798476442373372379880727560966896412123838359875965066312022930829395440824584706918971679268917448053055231545753420854422399811945567884417946406595565382082062696086311519347161757155730863791416046545600040075913617045632352457527169489557366173528293032643693179042617836542768182121117128211003861147650920255100057829901187978422209347246759433182346775285383059556467723599522076123876474588240153754262500800598997318553768894500169016129506651597083431673153686141595372890398069268955893175861914534913060173977173707575300587542901922818522229247531792396512053676109796977576275187941911832394396346219411848196447542458473662174881706420508067121708267089798296887262446566477871815703142878524403239004543115607612644746911561340657233523689731171471103938201481970193237040490501797187663288222383381756116090001798413184304634784263229884387504242126480072281734053340504250434203400044503340006557414719666217873295984467395463495687005083132563044894093927131713173340302935921475583178901701167369796719987914879375202853453943615091390187604142173115470737661238548127745563045742148748871758170284435085629357167768901527831963348805569424571744660804814835671455972716506867140029710590074631194095224801507533671792302100097756903253931308912171468610085136981677050006605049837134584461152498734817814602620559032148632134598776536717168055371858114932473471481445521646721150836443133709017986488609321628212386458619204245191470301712900943146612966101007356069657289059510679335046926670614896073357070956394063186337470296337624697212760659797833459689859449835512838601682907424569584872254862190499918660940136105400800488002818843704130221927101144987020883684468155289872520916678785731371572799922482705302115739769256706714020793036877651104431061618411805665507954215641261852014860489071656724227361023054443688224524790853616881449996666698080490574608409394979459151793737662383303877094723381289937059532397068306035779370510911679812731441915231795297135653434235554966210169240670639107681462645987008455816519265110399060868207522706318382003296509207714094206366558537736324384303876660054867614116521263054707314586072178429910690613071190965435020702459821503547645225865383850736007918394350906093910165732726301900777955008848863837348813043793043319676716339085391322389349391936625221111811984107814335602491714121389216619060662026943887938242024787688095480933271385404754169347248822937522789517583095089012174961247425911990469256821254440721360925635243319184691095371376195967292446565382323944554379731507370091947531834196431094910689243597089146753968612245459433922927492408865955623784876494703836778801685072251990825477974967890463221002471388234819934952396222068919346149172568089823423920599199128096497420852656121004132840947180314901402535371631341209177220520388960029655264644567291928262343270789827681133819181446571244760758945512537478879361561950587172290558014973710980432395943224002414990531407018532013559519609307741056260626336190193564551798579043648520970956595606161909889827089729129663535889056456143929737250936607941575012954121196838985660963626799425538043042149641954247702198352588668621568307450250156098984852281460827284665252354917583400727443539977135668394202747622827882087354992688811533573327358515238333959368999489603256530088047468071939261206694511430701157518925003469938295510516345581763341016934145809036197275318502925350236493065412976206427456820939801100123378323599052007015232512423322093404667610116253187271548400952145225830672704609822326646226791902430720298723593100926491432672210487806400972849878406456795242691141954421594546257417680279610965324993417196276561027449459239777356553255142336523082465788217464013716035836809544924829893515414918422112944742417109633032438795111979631984551507661439164587050370003614744721496246329995245729268816336200125016230774114236375567160374503015645347119260056327261458466473940936084330568200772551567741159940074253311615105425798297502861532126725476890193885621122682863461510776406846204312918220316258830063162120340235114937959196395383801795550250439382288104684893314705271928585112138995198279604519583531904774453598772608483486028861975415590241482560460162158843041268314053745245536928180569912033792370220700630324266214936265582691497757193179016441328457172712017659124450636083816284903877940115128881501380654779941758278084120650091062076222500229606016991051789752712520250103916282971309855625487418682461106004819264030541302525462999581698512402659951705098194207327646863035506409805858818092713264487050465672534506924973124466458135809240326746488648571046255745976663921152311275489936817357229713061218556347127346735297691684931457935887353851714514099053778146997173188451455026560121206124286153351710330775344682086758110238688035958694014354616885880655369200436080238698501665310192829497462560602359132155162065473859282136037445169922011217100831001084382029303613008526928528735727558604396905134464846957672242322363446903473513479164552299134361925445248583597403220287208453834311778395484044264400523816039870370329542196046768391197727140835740561597943309690099959826095541890603071011730425195725543024339650476849714417391466809477687918587597204264475127981145281322232068226164627001465793142385163300569527094359838048587828820657714022902924611227333728911411791562108712608685314759063449869695194541890507952447911550799842427462979019952405762947316699269624262936891173006915767190890361808940083153674636257418542744063468226868199275321163564040784551741029630635100737811322868673579595274438597161957234482230284254813279121715553367627567440213237426546231370777570451583601115323620039587999708336307308099045013774206728387148021707760324025231613992107644109953903166850830855517839513837090345119260665765771714000518349368243025409000583224516115720307859535451924519165672751211475399317197410863026258127812785340191344525790003484393027376098538245851548018074277218649688147107482791095349936944097869435228954179994361673306857663419027403001166675155687386070606660410536531400795017913811602966754714112636360474316195087561768238375370389805379487813102816891956616721830187170334684524184848814938849533914813985975226915512045402807698556420680106543992024726828181755325969834245020063803619116691007748347561324942068785816468556633852004241742676633729104595940721760135259614090192520837304942579652236889219970554725302644210488793115182973237709873810206630123186639009423308567141765473721857133530739020949017741453230856201100084244107025882568065944941540166055901274685516299716084810025243678629063908526487203462463906799387416547567597175866166352074082322354807936214600625364165036628878671793941588019945651827661701124353012466765606814020076933012631981668218505841769148278721419125590173558900829471372151430792943235936144049232840042025366811452066943922572448919781410978642277551542763890608057125904794342838788797756126396353229910234090278806907705070992081385644765162355413965475040069455641847213870915829645998000205695250998951082692245613460878238822958285674859235100274732507463308126031242696345146800318423797500460382842291492661071930629776858539425430613839190590230212128841481857407768936601639949556941732208780683513470648175909340027927916209097348792693696425552209398341442921494169465942037294192359246688610373507386570501217949680056587766394085997571555345698019372976455127873601153036242219103911975255424621744939807033659426737879043598379429798509363417041001708646764359511317916270822255380603001782462761279886034069815511902242116267389306430112769953073338960454976075830042102817032210378277346391908558440847182370185484058674135924606196089005328755149745715518703312581901670790490363607720847712431039525298421446056370593768871648556070486320334083464303075952735247686874383548689553072603901743564206031381501132368939733943454596530035143675396487715979386757034086147353243905739360090089670957626439796193513311082318941269602266070691970181074107729682821712937514793870498010157485752278857595073046560829657193392632051606379352947682344541232714180212233733309942527257396630382612820477416212799629366326134674260548881115907914095678403839700147864870222604926126935019565490996246101672129783372313036755269302738095728013081833052618461686641581469970353260041050274974517794119890104909562976960380548097681361003706442376631201154250133012156203171284563558548778039774129586464789290346390738256387577804645376158825223231412627707423852088185426319289327662952994373961713957778681841276318961141064891221044989008476846693469092783675323103222794788579653248958699051754258756989263167793912188327723482511042374361064604988220978956782697815251495292665127548700605582561861003476643466895125807303239545617418306989262433834303003304456571255336263395974691800388777349920971389794429268403051819435155151699435163338770071592689936907152741597557427944701470582964540164474301925029822410390857016509636290282222219235157684825156653285975073818970768157947860010093059714311874534092447079841117306604114915685873336671200312031770725837810364437175136944729401135797701827899308257642610167569107809619876870786633762425842495818296911916961738827256449196057382071211330510886985111013637896168691420173660738030526092498498454077817858356095402160338381472662483927880001229340337799128171237133972950351036118129131757100788161017694345771851520974232732525359847727549055451867427160986601720189749256658631417000935148959644615881238508734209424843575762354745306545099661657386213229589183472015685401893412842694456202438582605335236743844801866573729902478156619290679246330886491054171746890466147175713979016609331830965236885345483461721596566785997064014580836127975965779927648026109658400335591091717808753335043320972013982485626951922019455169529512543915745447631284247297630575363556098676748317418856947286486615847909468590009972597494108363001490200885402198510337601720939221747021269388843238452257635885127908551656757519984905011268518681938780770496202899018716271961972885009352772752699373638595103075705928401853373366054506127755491047310005493246564434022444249118676484957068243357829129915273239636940602011508691469579792024099620716638717958663019299922843460464890957813946294230901855761749916523241220474514839006546000114965286327725694072428966904875150322905120522611037243597765235014525747654968726365654947184080304039059472294516244667956660664962839871862117668697433571673433243418566007903856751157024092879353016962262298775385912311701226406177875801661417499456951384007034512150299865518830604528690323616474628936065002510498004165986295772709229382390016672637340298414894413822927223683441463985008903519103143751035167910061775813952391027986736212940598298043383507362841818144855872917021247417744499801976085871128902595469947571336897048475170021036881064410306241828458564530065918105769749846584539599542569666983111499955304655468749336919496674396269224197440100372093466347932633317674155400609210969690712424840117450824967022031539929864264026340870762864925625148720732884552754156356291424372330281499404008385921569953567605008291549543281720202425717150420533724724612279487892009116639369759449650255717081399320563871001191993224211067130496793428507333295711142864626866528173084039869384997366516732681443434002821993247017491285117935308695864418640060960406680545017919283333455224820597521388343991434008472332236889698743305406629204549681436071232361772608523537290016075316023683800254242940639782253608691754462130709922840106454546481344964065887088340998548378456361246368411358966040624951892691830287409049021931840353920631252177708573526184435342372864451599539237494561571699298758875150778725751738281361177609041625911228893530248261119115701853313629074793486651118615558206852422942139107884604747167720037940773020909508336094612024866521749850813207816163386919711586039029132457509701093768379457433427131559493032467592009298135813408786940490070909577766713844931391087495087858301256386900692457397666453861261789068977615755692624245214154019478346909174570535562034479159022961209476753049347357131662313729289515446388813570359593705731048195975148246286625235967944651067999222758414608800890343205545103749868481417863701170543177429123328872236016968754179287153636040966909492052847479409728200707402023846080818251831124486587429847895187638045780664023993496990752133127306555733666127857818543045264661986803961967121598077051434916633619376481329719655921702763780787730076899437256760447263043258553486824792032265945054009681992419866959091616704750393915051453560688551774074006867575752832896616156893867773634581353228152491641975400699178352659849362397338451524846898339989026132391568494536440557779281916035274114064686436089567753505128695980734627859597090873336132638059676827185106158874200998880297706937463418919122590113394391054095397751649550641665826887665064762640063753683288686238949088398071372889586033545030208897722119886407771052248676989307700388114791871388465268590700834255080135264227404799672697107831332118013261215014856983431342358423195646011289432223063915359949030946503552510973064262030583736605244164703175390235678709910954028716950110344863903404618041727351462502481941331084265319505965243112887156481672483812718439185265825050754110818788610385588324596620634425438135811496471622049951997784359174875421171745685640521551956905810281552618906293522185553911434930520458509742374671626498818235033532892879356445438882326174111934167581027369727331553792751194164022165546606075395814827490028035799111688594632398877038106595023780035884343504269332388756173314597729275191786076935605473437936957463035067087301777882673480883094210900381928538705928864070448616595919116125742850396437380107255613692967095826051131793626257089915173734183918080238530660012506093023261555908973341947730529833454997227480338777581192720480634368070338562459471278684522705252442869826315965605870706843607297416509514128569631386792304653708084042353880091383319857275381719873079977927070789205168718263143506408641532304534385636650272500551243365891216421218644217017014573645497275445506013874827879915608785851034534104773989639308802378739489103598585546398946406434193886195372544994829804483801470720544002917368388511703121708645546203545589747130927267022106526856572912050105610353847805033612731901728940570463847753228865940496669159129328491448279669687916515093199213372900929369159010114398274340870902837610055768661092708859880761033824888733737341438897762238625551148315840102643371129434238548033297292744049614774945335942809701162401700646087956100042590735991329691770948723177683218690587546482417027299227016294367114213928138933055337621035366454530534498653650202008064653792025069840933477946452619110970281991857046294239039484535426399341079132296814581893539886723726035402951151978595050790289276032461893258001917672099040448595824834777089944410374832017475532518707405975504252013832401997952872447923327733270474580070562432702640281158449483409480419267728591537047234277261838612107469619122229345641244384314976033808460246474596356462589099864318497309523443698567777782119213242183955015436768806973432919732645521249524570900384951274363546704702474855997073321819502920547247953937428718223311688812748318056020426443757053586546170531026448036358327785185882998340798265524980953834472267641456349479048529989671793094052326734549137783289094201768844204634170749867450143431303501246260810043965167275522382372909122639593294052449800882906529542910980189290425080527162236472015741412074261748787702334494879661117588109971826231505783280025561280197394747864008756916154412388349248311548689629794823958043269259827282408240498776033592518717246753805755912623190957906753278006044737608948033003905786344847066414693002349795867180827736747377628391906420475416079077413853355024114474138258192173457742934145480698703123283189145426307932616316369521665218191396234584297253189012872408467503613075007860734835299518820071758042490046677260088955738804896735620378234407975508262259426237507763968342395394566689835122637511021237861564619655287064170399009560331255104114402047098277775711410330173289995306973702000260987338203032259624420444243802790843736446538486016785329329152663068772547600298950680726796224102868974957705085311440023781894817773684548526160642999437318810172193409094541224413050485205425480044141669962044764707109119772660973260784497763351976712561764929075993798697189735478959530604377999507351459620125034970398542799769748048146482508211760568976084227218129306533924792551533085871976990767328815276604092296627726357092956329428126980868313091618110932908993392892223533753256974500426238173256201527596030500535081336686960419837720643412175697891457627005782118217649171117634655194405963547995413985118535917626622771511756139443178701513207997329999212298763315725078486363664468010977767171398093367994241180470713397378134307886289788669557703573478602847331477023176974486986976912796912165788958681825704139393590111649696454080153519987010604942458349313659242923588831935651967555048870504566263129175188909866982253749885203596204209677131546476303740897343285596943749547675259102233428016130121789408585416345191250729011363867885189531548965851539419647990551545784432606237803881988365733515364740642609897895670140581085064078230107151816461544927152339150363918199531394817575510170260688723519950019413151152042573838666453404466003365009787766010024699611498787683249080796868009389423331946916955145133971068492340064355708000048590631378195218207522262742871153765232916665661941003017231884352813950247042202493844022350810710394668541050682811351210552401452086328037367144601592696523532186106525264975001685255430954464885707717427741374187583562172956014190333432225567973344524086141632879150725475895685552134230251317296925825802445304240673307128552863406309513462538901559630133474582409663824879434363753577614452913358185113992407676103427022277395053630115166396897668041491533130191372934936077342691177416391171672106289995944909817768976607021475322113847061890374434300555393588665309410843331832292334109636589515731455236873336703466402392360536868676655351132668039751948455316814016160461066574897476613330769128822948623323157421848848671837643374629256157171087135018963793237339648115031153661186936328715838849340285374436654446134280678450013746405087259830861801490354522364827982438343506061125674479279764909844978507049984934209296737518235834782664427640120601976574111807992832015437992056332131298350983190902718950669119359223775461605998463697720524877595032438996714450816882450217159256664646455391249926593127409766854357689560441057876642368688864124713312386532434307289132101446415554452504114694773807755024907586549737976148424720971167938064385692240627012511310322520640033561087678572277680596360341631204154414294794527582274071675753414895175233286566006190918148538784680385156787774910240112892633942777765276897456959595920740635177732619028812096732377438246946818074261928287557093447554260413946894236261099704076313108393082435464557219095335924221018252925893106230345669626067629533359017606869538127215029141093689030588049943387895708693184078843995735473343228521821407329382403689916430673671402621868902469699850915224667733055008037454039003747041669382295132719936886646410194345873386780085143836433948867276675473600056487074599246340928789640159814738025881283584463985431116535520431863708612620384266552917825561855458334765091326244020214671919224626735149075985137236300250041551585608221175993476335744010265033326750924852015392380616261111136598017505408528783556208214860312718728643139633336731857468921574812524224431720687584575813628588310155963341294424657842103137210983023194232713945986735676802029146638012454746464467932764212607322183703019103338409550124159732495785679365344097917421770858600534754096291612368184590499267946341140459777800701628780039267116217255511965650610834856480295318338927015313335494260904493691402168639703297094007652596474567095762191475220963551826162931928694213386102295606478913087247073150508839245236630219665400517660868781038938759205018045482230292127159637051182809030903615690718723624563893747029556157624381113860812901997689722745790304220652343417085573508330887810983082230205016804548410211374488009850713191497941721954517467877228216241913059339791266930859754293280170823247737805959413073064035099202755609636197230293799063919558101525510411472143391072150970353978906494293239886960957047667617265962085212263958436834018379728065840670171278148862507484064585152247589733502004236272481781756936094504897645364223907593761627162686641869324172053410668944384271498881677956011788552386277067817621018415225657654080872667755727967513602585290418161246285156630002366018689750551414291041664126501438232509220047336639766102451907470765679946606455464892198467190698023352636318027920428405526314491776594715866248184142359321143605240506129371933545938865148091609971709895287719988314570912815636286078569223782829081176804787739005736204636336662958020277625019785113276144235715956958871386995730667041686683014871475323701327320753515826182819704346623985596932604745374991372174559368718712439033530104827552165180879099100751949406213669944296256956576779792357476087082742159664165627814313422690178198177329947037517664226154019896272977778223409827588516754590641271956631740816138221194012251494328986892019788747427586149350773194564581856340143501422565794282092582757132143416458383534585433903727807437025457640038995915998861787570527442104080845941617488627139287758827073417452214045884260785691730548187904282299577543705495387240051651645287910457123685476833950486143152657161531975064550431062397427091803962955160739070090683626774775274568107193952043724462007328882145952620407356323384235296343782494467973321525986887807242161672227324636320470142830034248871568241952152343915349398780982633652523457965055507657811773735545175545937608629015577045649677265404487477391280063153436394717054914790131610014652811136367082538438680269733268343880849171989417034658540946949497153433524201161818491481808501909270139343164354217577657409977441019016614636986163592821143200749502095404205092836996077876633046168023413765394694451793925182780576790664162083540438498934430218238682622942887119325347975207676706029948793568988449320428061762742530035697169557146528267503852065053269685930217542292564049315235613710040404620943662075285553327434407599982220985064057577540994815487958986782788953598699458806404450900554526901046600102839919069863862015506632839943209605635299221136764766069669736417095578896141496656895953543295294663311192230491260046122370688817019143314235894782019436599547170562498142872921523416406205728312236127503241819809731395702985815534065140527249414360495423165507646028146690472419561645331437595054668150094497856954236018126353050354617970811295567379220517676841437548074234499006911753464143755897375328250082575815530893095129146562516280180061566752039606093992765681248066506792497204599808305808642830290247890928121335208827058016460391217096159670751634323481862566191567406141316213556138164483834695765116381420367510582779129194715806087825600143739952981224853446568718499961277799327628716753236896155616981275648118428313458108393239067875723266942024447473425652366619479237735294540884354393966776799965933818954842387166388061962410509701650404182375006753136689585929288016556488716972658387155552464633096084517914704778080207987508482948541112470111560381067283293111634162322959215675945970904043351579935872553547119491395862946434987278125744541347336227170159822136956759532966852879234996345707284608817848259708689727055483225364085351191338612778657911792277077685394956556327337457615947358958174307633397722634933298460734513247695652459619544713611464968780841661274810096498326141530153425484160410674053867788173317956909189730277086611256058925653438248598297509630207879711555652764145192936340736724979506613073679725488574033195108746642883656850209717370037049990433756514198673288362350139386281950701147297326153664050896195049727748607287450728410845878494844536575095804628259908200321038846555145230329151242907307504304311970464278655651225147515408037552660984306525775143676733292881180228682393842807175259832856380697512239438457980448433240185160792566814103650061688560929309058842473636540307140972963594571349148893535703713109098236550936018300092243497806753553649516765120801886043068351591946762310329081993170513059422169828755481781134905623284877393787052525418370458652238790856560690409807080746585730829067724278099503166472561519659311212744782119997512391334371703374740802454894481916194587448586200937371175674157675798223625959110183167562343364563668804803278510027067209710439478715357580202388656438990931554760869294768890225392801873959387658804488598936625501042096951309181222599505192725300499037813783101503210363789515487173368278516648765465381372884320926468967063416369390731023523443384493515436043237691255196071040588236656502832061695616895178310778256596490988577931089191688390555833641437356036563277598976213290539379586909256215446952883685235416723792631466920683640735007804699652405986458232880351164935960934282754253602069987093900467711123163423468420294468217902680445232504292589323860238376805616313893100014783843326871141866911305309045322097083640311863272165599373866896006400906144858797429217480110850874753913980080456141704391816464883582966399241308349102599304025563678702837327100904118735583108287918438882007592367331957581113038096203889708626271293876325725193232638380670876153939983684357007808396042030966793269474013458065369193547637922636013180263374651454551998883829680446092059299316150005876626091078964967518633591680757841270868071903166691719140419387073578032629373688201888817099990484143363107720781039529437247601099240911237047256921813726468279861048526609199878260745379530448102719338414804514117433677363464468089390034459441476227166993545707103954677395513525142936392531486816499025654468190896165022995265932244137484471744001627841566179435158314332406809546484770877781398618996392952104274209657316746900041846129112816948754435879744508434819781769503626287251884347508486072283038069908672181157571761120436804949188893527705098501181259921148056715541673783595548637264049833351398026588316667472355034742274005562198721624876691089043030648970969006441767138151686843249833070252520670904858565235365972779461403935089624554995393799258285210603825411633662951171163339780835687092646276139539016174974210458634939408302794954011375663539855586386827915710380888555772931151953700055559162512857381305398425945960250308824525839183165813977879112762550721757532131265823085752238684996938932500000488838425856896123852462793209807172930550578840232368272696425206928732516975412963645189426848331779421427908392143598471784914035916498595861862800886506126482503553448510942862136276212600591594898352727142722813229987706715645362245890776199896735948111145413828732854460888277812403114266103374875125853403562260190166189183361091238538302053848011905292990885965505359214561446017353794733078799667741200777659670375658319779084651567326287557559558203233184724121230757953716708047547684298865450160833755671544115138484596865860466597078129509056720405532486080367380612903495136503372712526001220688788852884506729331635502801247057490236735570331350646190035021239697281189293281379232939709657402890575054441871642969588911448612371830321519111309399030808475331095513571098560629461850655620070917647132862595687999506064513253923867191474763865668601520599913571370434996928753990053211408829796316738519077193368261689761337724567676084033764826688185643762057235314021335974437773831482592746473775636517598697369196772631588655164377506074297466128629269157101509826003632682633039761178750131098568947132167367908923185026775039335971130338594585828231084306672099907486537769862255833115524371893699088496111024810954649258341754521239776893265405987291384200536731955218979291629818934609745912308348808684280296032499227777967187620923549969689164439345870154560306448125884691012039464149131626565434206247640043185134753646576327662444968605427173036846160844042971873714307647745479004025438312477529891981261921266410478327538783087126483457822063299206809260882524808846563165421991854631414237352475308819727288237118923306535871866097336091558338613779613927471895547549202645346609659960683332279531501342231782991418557988566116549427793167368265562849328169312274410124260610859614247597231274374130680253316059892125765061123748106161533556118808967759101707247962627862905380313424921945181199218979683149125801099562479674193847483401507789856288900093015716266868106504684314204913606377246025531979162262869662648396007578877690682496463971283598936868531905666391303714908121316826949875591834487295461440727812457881102225792425727223594779924016645887592456756658753352565309573894982911367369657518548214132676065579003133917682342098571163509008953009372937472257079980548016091616656041269429770314382357001806961137344258646586298984989833976941994438124409182499149383384874046678400962727347558227004007050132457185229524236849437665632054432839865416282012694318055998194555250819816419061605599968218801600924303027377738943545710241379109266127791415291399476468172517189126346884243294519487420378984215943523158370005003623959444259706173534757668775430820800888256756805016457081598111814766447936309373056184388060201414345651157438361481042782343499242976923828067512104975803513457367110480122374936338533973256305239921799720142057107873210170120884740058589031342056397686148205153737409913717019864074422047487672611796349303153849865963907256501499742130258508653446043677785605152067299320859525928783814172270789236067926952366254490924055663028606820787334997475401069281509449059856093273059763377985420157549531175561256248910503291059651694038161310357953418928585876142510932989813130880372128646740003891931479374904554059012967447477639199379850035278151655940586890452754657292958610495958215984424977001882985560079307251165448005524230933846042949417609475836686053309397259272331398801191660306398891935616568603125917456414431686174355303523264265860139492074108045367075374670019490036371570271526720214929353766918702497672446976326545611728845271758948286665344111562416396436782472922184014899654329077586739730355476093694531411856173374172153253681921462447621168030486157174615678427239356244513096359480483075847626767643666928597192633019428588460005002666644642651806797849126951505128082735786028870948606241750963434535447238532069764889076301990894984317405964096580767303020676911438921417801335909185167809786951017773058901141849920044838415036588661101036518405383667568124284525165800849022793085581934410522379516043151876398603094563997040139236820186006334290300854334546467967103657355163014460745339368126051302242790687648394746556441788102835907306041907445341863867906068116221841953144213404351786269063809554161203561153029575622989053111294239945991242798020908078216558874689969882584477311682516479826370177034289251325118215528086967407466405694614916702834653205215445324448673933978916113090379612839014494289861101729104434990969403127444590596748160428421885526127615636860405384260094615376481798873766912683773128581985081914162410884779254559560114666823088443261115079051427211217292873271223651126020226817564736344732987976637046291603939194008602056051897247597627186799846070923758599422065128691876829989191133378230918344794559437463419983202843159849582671364563017237339142673211022784901765349760329547262476204442271839248159189613596711825518155860101856935492838000549678471247710883068913050946244489662850355050396552343641295895398204157022326063176003945509104152285325957659728666264896314246190019958684374135351071282923192178462337998156772464861074160612809540673063689726678423186579804687994284486946357379248648759799328907329894233049546756177138888104035762652962777261786425205116117778226442122884816925975415013236093865548287303371629273403194999894975208322400858326911617646705739864469072796805195104227021646316788011198569366406780324071812363473118129039148235787898766066197549710895192531941649494462347238921592001825000718198214276966799011670338737187481359187163117905094957901796802709189101544008626556707947167080576016649142154153074065425385337812720992470548341298218483285398421977198295191726645631815061581182662073628085477353274355280360812930952998419334602307559004844844235559338178991019143351792513010412318662567222319628192798599035752271118083613438136096573316734159625988118638820465191670082892670562902973402270321514289253073941649313613444720915640110923745647232863355569403041713797302477146320365323683875114077783855769983359636227475550904339415787907379396272875035840268454453512043067124135632586102328617799423079730483290220075651365050817288164308011774365376867595777634256660744593029106999181892280851797154917193765603685693022627575881905980942937312022583027446970979577813819956438423080820076099108241709136057706589539437444532753874842706182664729124643450380671206776544236314117032839641971040239457484294245348052468144310708318983741192816514901485639448253044673500807676684714304800967900469845460889250122079065021706120906685779740711564013937827995229815708915574012037684977407451577393988516477737097609524562087129386435463657233627113204226851522636444855013060646890920278707836179027128038904111717092920632613058082257775059028666138358839360451921724776336939412445843393459951887931466392070467267908696037575200871380379144125937814758171808165331327293142285037922776052888846038869286256717424241857049005745595915639063842237912661592653705445620518120760837006223206324087057039242814861375723312911143124637575301568240136437310828904013727764309333371617825877296248496163709144682655960171086673037820674350878540236978309197550685531702924921722669367310311832398911614148399677298511637736207747430094393062934125260501093154367520562256310303928518292830306320750989339361918572626330840528088402050790214284688589644938726758863915591990374414794694505029344062927958704677583789876347641594570753642047382360862600345638890304496212223523499224157650603736505861772672262044761202964816903395054503277415878088549607887372861570467383403683535775181861062351493707256935986696551374935509912016230107566042058688388962229165977613765794164249783995867259849081674507084530313482253125595092714832895069818212503393683421871723769401710022144784995522903752665421837767716698054968432067174420271678036181400346192658429550112297306639760343360345898516735291068257629618129340378617737035296166274094228758747784544398817701842659760423962293596073025565583014510490351081588673029230844482367697768473345633345753470300699489081457966220310258232342779911251769847950950370567166635808394597650000051589270544029646709411621981706088743100872250435172126075387877835319670614023208860118732531512193882292971372314435468965489367325701940916484754593128137079729552868370033328895704913025002488471962278835490301271074977156903652198531479386828927873235272172608233131467239031940008585674511471949722540119612805249087070906721318490425898854456742751841711641911190764182307908742777277354971131796437410399452972892282351477633764242189904350670220055856308363364255510714841116350293170261968098107590282112202654086108154425504847734191433076024549454215703624969114808285988562952695984684676380299866811421971981849958294744233867546502578379406845197547122800033013911254881771544438177443555422846994090566417189845181817803059048706502327826407568534518259696680390482502844073199250554714821435696214644086320026498451744056787849784954202461968867668514774524178266349430556878342730330571793824269127177278061541289927477144441351595896027018866413620385409019444653980346458391912091368188380739248019930151832448686550000056925635173496982614210760793455452598707161478689343626746221302792655398153014471586115494591633066218653089379339016190454282980165453406643376439621874554234050044689278204709710676581966750113688787031894862530350842857828190113579530694570229568020260207320785926110204037470869410136606388168924210990589173809071750238849614517767221880858391775689066947030274880737817210498955017289571865039864729398966496960686499221068026309828002469715978023156386256054308266366098079040478675108575465313122393678228141831576281531854402330780238197512573858397232113390803738626399295186415257607904924112792323478396167049918988999007977234552106452473342321113380812983194143014969145046004614702054610692358024682556753940651296494900906682886834998110959274995776974064353249604539958483591323175260214239236662178967855477230045474871194961528838118283480404924298949009896245843989095499598828382022069511327592175250571499543110501931161753022490182268304473157992957695138335106573835508534863357493457234075998878883396139831930204990530717049848697749856401070700531580362038551574626093939223200443959299010282346754256613052148052864489536294738381947459129633201787853620134869973413587294696044308483581458000725823557895763424074618774691457424656135676811025357971504676886813701044891280682026026907733992765406400470942456736819094658317797278303785359717272771573756063584069018449595807447830834457020143695075691754820216485784953935351319622163657921556917415776962750465017002035191105680670760977778301346509752685265928075755837689615203032889011216316218827457399380753780873122513631608270402454613644725462508067575515339010683462089279680541729291455068030197810020254875828847725724097310652911902300080632385781099156222396398840088038936002703977781520702099051598843827760574060309886491309026866649890156707886151119925136202656462126210728898890314474042520128681019798889861325667424923636778153003208139466409090872424930413320104390422424318751104962733571683605483320782834382167823174509758147334208808639641115071515329122914401515058632715536878464150218929275386899957951792607793632483031080205170086029052027758624193204676398099984135194126646269378166138862586150375729881807318732651522502117869814458926007446260084455818471149474771554200876085647519159406703726947981251563400977206358926484315453280509814318990423234185130847655639993538365493073260169984921019786826145113705336777091053975422292791424095131952369208085146733986170951737480283415870874763361224962972205945986135845438300140836051205813893445575333957873403096365752969779065576754729778354341548598814192438372431155968160684148389108792376012471885084336862439684283115652476977021192253080606462266462367446337404045977505698087432402921721997047344953567707700657705323475294799338309449418157625305570203265530525135656887814508526491508145018464309317908688025710963337679670460502445935489582732235947288557649579552393484171502024138159318472992141421316464199121867592709906474546413479263735502742763929504380091239952715634531849772209481454198400963893297398293854416526820837721400211093475228873447140639085711258989303890918525832987183171820539234334421514362318010714709462793043079326311084449388448036105024409269245564950641321256258370498898490870209667090870641207891368013839518991505917857302437515510065592928568199728553395459994908572080864280170393818225576641016095261532738938977549321295969402251401488022247796942977543503589711703932114242769347142373207574423232878649854100372470616251754175711304102788031550879742641429785701981105741761687305808293730541835907383815189316593906769553322064842556328853747572307740878835016592342863106401531785161994494812947467811153342337469992497889003872905052720909666010500283548175928565150455067670017153718923531808729498040374565247996553851116387452707024691436838429692192403468931107507819988543165109140458598228455440107540956969542100976465721262795992240442384869866130807848657866120877345362452693858724445095998289136209765100363687065512940832087568827123520477161210445601281774287160529458260050711173526585088709965536453336805802474260868066657716601786344194980605435565944620310338744236761234496256203165227205159782487565705555696408757350299528358684191606605790330860074697088296500521611581199630064730551635529237352488633640805448778406475674344429490658677067533518781868837054739592872940191299907752175596895778118035892901500931411396484674953381719292504807181244134071941618136213972885002577326248734111600462344487672693191014794961067460283386760377147871897124710456489356881474831518702494360601624856131815078795471562892498008309708514332001851676409658479393929299784296143584755782742499512782509258037036743369040246924800648229137402258508212022702502102455135243604825582850460622625928663644826733065404038574226728349249238126527392166912278582879284581789933702878103433728663910334338039085234978304694026852394388654264217874293718790167118481692613985221651715870999127819614009198955556600136420849147110437301184369298244287767431527681747346937817876717224129248448935597829854164055834418053258671279712989449366081230387362945923428457122780126334410365867441544693333566520950796010574313552727399046810695710298090695612548941100059551152286071992635747603525708657302584809922233344972831966812323606824914275316836368916581187159293310398466691483560013507565058677000511031354387891114080210953833363848738221046335215460101985816742240894185889082541097091730328975157442035513215344669873610762434822006983190148754425194642091902197666750829678840095479242868265959806035456942459569705093835523527996989633012815959543170992638593407260657497445683384345275815324902398068477013009402018622131990921302463558300526638241604831827382607017271252258088341323781455136783153250319215594649753072138952768706979803604880361711474459730889136340231143908761158228198826238298729997208139180301422956002765644042504180459907869005967343575063703124372726538056147686355244817634818909708401697474299739589338379968263177087453941222704483792775539295316130643305849756890416717708702434048197225837338345795027815003009562952931436108599421753898681005973928898780562930821746492897686984040339132870735349472153405213121534221080538535604004590486602006747903485611951479100734664494895467171228710527845823269831062039339336458325006524697434503684617156691651309554462569460546225129873933678300735966251157144713226829949208362548085685195840319226061499135912395448550681589835719700453134084175467904245147903746158051340322928794331737587475197610245559739756966143120677269147630007718262708139146199658297067777303658371992243845460912661181671078623471517390682868565414629111674455546145133515275129276753849961044961332692522942227703976637281799576470613539443295361821830909258781595516025966933252944926674652795122466117725027644714008884866102865038309307011749155587386658438398629601627802793456302428531816075118711174403367048407719305747342326836492268331966814474935941981354498320497573792044883546733176707955311338174647438400232017636831988118290230555364903404426387401004222671397518870667013756829356240003322022684576515997534878441429692634600669560756773060588453532907548955820756310029877643366321479081735889484809126459277122221603364008708831580935016229699065917177440177484067246063607192845912572196390310749105824287336679073208467400061747620046922880425256058434208554126709664112273920966755674618979798446710427096811530347975113675550995516373932652980639651202507018342086286990415905877264244922151032030409499954751674113499791618383676578247417608774584413816664250163388456846283459012433447864060824279206243890774010794351656847290912164615021345568635279756652215102510996728057878967969630989472483019430005668715203802696623731748860196292079278287329846031604889280523050362557460196221842079964698097680131534935359108183639246337404739265285088028085911135450244188819174288940442364851955020008811312438552774224407786472988296823546254038559824962638104589767850101707489280544187489867455755422958405140406526126022860206171254121438821742153706538176457107585085733922173739754668280597650837528359866721890981182661911711264701813958063524911297240711333263954363524906309441515379016333737118033703176022097776480336830440135594774890837194687914323458546412870108637406436426367172208234504080413791650338274545995133207829313633795709962454170205402773502625834077707165025145517916724013925889128497772445374193399716709654273270737288109289359199044782313334541375643561657706626304673280748042768573986699138384976683362721742692475343479215008553016051231198086431128961204706565817721715907756441706993670318325491028706342481767414725067144125750457883309645146002377532071113383433682162318578187332023581582883582193005391724390813880728919975475077860640239947701960821749928218835041696884932326512743647222047156557134368566556071474798013193051370199148798743206021970334420962976695649081179921976384906067100780763525134313621911762596200385105278080358789613432536430678815617022432930198459264185959401811351691153250784729253669796705930133239177191096567699349937460012078983389347692091315407451896055467102975971792056101784400523107088779063330526761137265919799254296138879196083072465008268972028739584923954654232056180994600113750806818254231571275777266685108797571839416317623286898656053842128593945976742802962083123742240722398538998797363590143369610359618538023040809163806029929004199389506342214985797659547263845725234209421812995654365571775981439946371067613759578376341733320074426593370789994741343845526077817430104115360963851913350867496647469423708284511762107424724653009882726050694057779953718841466523682824222751901264122393396983438340774846770815467970907738129045622332833931968125273204058541342543562637753152722997999514963277365480952267788173986858872303402798104815091824362685635790166247940654283959559060443891381864140341564109123712729623527078781020975730268848035151439125977155059879032628623388628937141070893848516609670085675902734977570515314719561799021931378812973738767627142875135330516777434513650741196269639350845481901419916538923873174293589651091010456564529090114751031678606825408510699528428283730506520729894548962927199118199907614573975757443516586409913262152968631560393217510453299820346200342373650219035014293470756577364149443018021754630596253864546293586107495438409023393045420416660312399097494520828989384818582838523018742910920024502581233964826370854777043059255452364533947549256357311618616332254894253714350975514655293892239598442060815805039852129654967069364238702493962345861169779816950741459349241512072604771612916349126887198444230112664262365052395169889240181833387774633878271574453787797165076467756847949532365272151175354401875825413692231332075801669323536320772833674372208003722098192141831501590390130607998975144388991314352835937908954817709275636056078848413285536616813506569661585279322013241807593832840537182190559576986986417437278744750442586899538232903992993442747086561057421626139189985875845567899209832076448166258756376226396260560487235216955334776071557773279943589007405151353311304153172736758138737873096425433279261184368556167393246693722572892335273515553557878499288990412937238771910824629614168086374457127540207416364764840300305185850525401123335603314087139141345658642026448243070955040367864001008080817276338492546341079794587446537560195031913446159356700687880097010647617299439111786364408297617327463162158708512791732490706507179957884972763765651336429885026409601566520073081695341579071523532006545054842607037669277814261318665360834949426888596011138710141218305573252419946199002356353780183283293872489037941236965344796918424185995866656623692666930652230138779040050427933746097850036877649252370921418276621010458534197219730635208568044464950268151181960710898970708072773800576583882527474504249333574714216376147296377423464767273000029629455658248540525896144348896947205571307204010782205051330423687983503030932745545603524896830948442489377176088318192073798593636900251711667698904871937669660289298508981680858514904685739007622440810364257013960006326003449931342071346838085813933672183772792626613624796120851167461354342585456422393176257622700635274990952541176391885127527657035547770311847213173244987703795558894246508292834259351579159513513247218218796998531236836467290969869228015067157237533773625983639214404026600608688826735396476732721795984450854859515400339511191658482525360893928738167233468529119747217159135671135331573703108133882129771249367172022885275394276271599898185222037694715124975147549953225863321665181441202685641790971559304582499805396336876615214547371523232103529894346223424190963778528856273039166338054448532635096324597155952303217231091854411998756179047879857985819670129664696644862882554142755367304338599365218600499254711491369834770239938911875607571313544872919022452069170931941283803364079674780713047137756954125639129587431028682585430611163206557671003898391742372537538946865087132274638228695505187711019493080472779729147824721970705927753563100559037676246948969653133138300839773225835810504438692948275050922140994127879680294355432965375411861072793807122527858541375321991354808274818737594193683852918301627866895130995444459540837022572797044856280585761605217022676904528079716734550991073587485316941353420267009741073274265618010225976072535494744739053153632465032226221747595807920448197617447577546463540957907948367829372175888050335980268962864623181317140439433323079424844247163935290574940065594424071293148735083530823552686229958606043527376477251359314641454220468078225315741474183644161572576618880770946528346587166272131235928904994496747448716424891200742485258001890316516905706083861945393587211199545853918295270594597660182605937881008480722441780603160015602629205399249365253345387454883200793679342604313758080818488387196373233000976177615662458925062254475502852253419499647935884412250468701928022231165842693954162907615849001579620289682230358285850196472462482645216106332572434335599273977814362307288881397292567896226052109240526463158328655799784849040662273442209461373422592235731879165409376734054218598848696497482972287691721116205155360643411341514283340360952168568094026024860484618853923624268460874206226292005247135472059327562932259984279129130356422844498260750267562713345813412899021705044351796228717212314040927587894529790850024971488229769781162182034254954323465335744590593818635257895154199642790622215408810097992279568458552284387074873997812860209428897629042193970178367351033527756183516166753292164893165369277507980118942015975821684075877701120250235173176720115974778849612814527720202021136536266372367878659644419740439599053508166140755531222041179968871788143149443584501067097874942717278397950410678185288505247782045256587916076171185777498573403360518992383868558564878277674319680186356185072333500998203441739037870619184915821637748629475820690968556811808734949299719290898308007386312402564053318188408397700382448461981983741644579781173842990706964381916497547737226544337100537129408055156991393313595597487852790795985881122130195853150009235113425076515769332165434058094761848758292573504881497268661040842919722725448695222178527170362781405442535176759519180106156583391235745184889233479492900675069930450322368137217662474596162556420884022689626969517287633204292607653022977173304866823736233305190526572046302753898123351593141844969757161616294669158742599311714044595521987486143997885506586315983129481845865192251611787611568109448591626004939121198865235973862434938955907103451762218236249329762918057657695675071849866628085545673009317559123312794378585644503838814212055788448266057374254917129550137868121155591046696031239194772789151025391300376106238562431668183325245730705837231007985094861564985736948753361077423755897645415607427149098382981387818727952953261519310614841369885212886414955408460557689847651986504203843164481354143243951573229822939557358047425099770139094629733041025514603802872359162939509268811900849825773798903329711699021593112914126434946436873449506331157920980717214175708449808364319863871716788907322090890367198587920293832176153700763210766716313237068481111280497634875677008178563629610419501757962013467442247131405260114358211919816610573880500913955523069747561190874847481751608697756854965329023150244163667129006239280535876132433497670909315989724367799439876435269730237852757846459204890891553154178443829489226722667043325800103450929495760853879450937672468119198941620177613955877074960281244932080885508930997255172872122480928638474093800821625343929107359777212236363925084420163195156534011895612599908057701613379526733143234570910077260080983127168486817541224484533756114277518335293854931570396658094493084367462316464089885438133634897200508166581449805523148596702182146642977529859007916588685808180193051329928466108952679482047068473191365540557593125876259365202060947600846203822105880302869283191776762827980839962624829657383038104475409528957132427055883977475999610531570599238651294721739647626552320221796713553798800392420832064852318357502792233984569800886180943371761353327798043789425526290473472286929325043995056176293514012339875317088440292104190698408729131664621013767552428490886869731814390352148141984572050296994772463344541455804502451176613552395613154977231626452878106261491021311275330072213103280113298423298892160592515885207691475719200237582944595417565894907264427789625303750213274109645941740563360960302506133423038931354927786067247418521427620985163460488588179426428714248515877196736569256456040953406409688693262458890193291548835707030652768104174125013380585701100459642163107093515768351029670304606157868393523396119155820105835134070201284066531284710691876369522837629412749526726395810120111788186819613500525676242840250185324454709234854878775063150364804646839296355351021315803303443426000405173402672722758899742484076849216719343729997820940203175140921591406663744263639028267629684020553904035699383125737162341771086119176327828537287315824760989156362486092251631666688282339860132445279232239788509998083252035128900292710175273754045408521227242162181501358538936443156728154093164931416631185596728275497323731803847477213352308246550610214589247481363025538787357113697192188286123802775322364647332349869698311128890308544773916768970941197993049488895800191236496525018510489089099238688084253736483449237774506907669152910704756434841862087729966758112379600497657827189529037896947537587856314390469122729787147824928716685001525125639822611336865336942960060026346710376832417082614887230536269374487530007380635258938229021218992810007492559090847397449428674416804515259226687053365314228995696556325893854896426569007904374830479445844409436051087967428083436067670172673816262172444460664607179236985410321781311961608048189794876175000431080634172769683558975553346230985066043413017243555681184233757253723412953484848228684570988900348881167251665555099160531614282188139286740967332476400182476340001118453489551265731737642568811276123928691689250635042459706817941510702991263787172676449224744067522400609334939263814845536087826702590561642361608812791060785132859041857608243153316812659251490643990257210225354159123083197689604262257698168626156788658571715822997086453963708166676275962781649801560952771786198507320192205603487090285563902657307355771253688304184957415276719442990667638773841054842866194961385583223039394295068223810244015317299083581740104371269887815855371362378560103777358477589959839407973920059429002767536932055522236860220257711155275667052135383641191974442270234540000930826742780834165672967310786459101436453803411564086446964288434772511935625055757286350292779470359701865397582789618438190091405984752036759716816766549299572068883972638183206257674605541439373341455389396118677191167968476354235337853682215087352481672773387664907973022932940210582942900798381594788922793259785984307579360245097307956644142799632026163688456815169964198213174696387356852347694415746576580668852115752514312697351158264922545909390307639597198641122879349744917838619453241304578940285442032421088849606769372528256528487017770325161194313665689673178752886958579715552733327391857886647393389295917855326495520392323753310085916537503630916576898807668721510645604997355441466041023279827556202923115498743764950269573903491789215918398279449711071070388504336542946753801516877455806998879218288137706063674097494668671982930831371802730841461122320107828806134561173445895765031484515886289334275949143809750860971336770049642889062964463024446235205415614136656503889774259247605117125159638533131207808251786102893328465881448575174658001808945760262224350946152126261553325293203413344747633279878924375524475881504601746071034459031687106106637995016200842098196703938089064243622558051799906542561267794787504479620681481423362958174905005271805783438544854208485189314952823074858738570974936185472586556354996027223843949271811096606652486468566807397249903701167892631346412354926846069756939381231502048484348452353155711167012345563291919549046525649981249908365803750537337332684180054368454492308172956557257434240266209652847453455013875474361868201075922241208146964067260008482222778065669492244296979586854341789837607179971084041914924871832136117827931512053163083482337272132861949299087678694231806206877198177002720373212857720701863641299605075020821560191962837057226528982149037320034161877558409306280021242939137194246802112055235722066677744790957454438345652912570611030934924332697484832448199865162229663199244483727492441281464341950181791433132248702528280660536872661542134766905144472142302031290110167051013619295760861219573167720859788896309846822671099200808450003280749208070763230643469271975039409077546486204208304979671789464944328376298200586936291333346740096779540815982442365357297701858581117953278712106800600113006785212740827197860096911570443822951845054985734758793389139787924580074354226395902119029879859962905827775070628162060330646157092103717683963206545869878576400369263549883363045718987007585247692739165581822893157252765493119527640409726908120437188889646549492358244046801101958667356437794874795704124842870363230452034397435902585353781033670464131126034441381522705938187722880126860262514706878673010967021241115294410279306429178793581249451191458201922612374541533377944826380962509797301860414624398041764731445478017553296917235465057981427256038553622823765963679475674399577740125729141136869945560088839094737306077335077959548219016898935739215279189217538126490237716016890939419054448519498726744579775988544767810545435221445423198079043054499943958568965033265115494700556928593040151945597781820872677682642159535665772505802260956653919802778986094458543021412239274099347352367684054573309374123887536713670046219547133928172736520215794571583676521080019292718185805686605897973869823402774551063451766282753945156826021569575697021389704271750612427602622766655444126620702248810604045263561017269910451797026787589137694898399781341585173249140609962560720057717549815771441375129987266196028282923342790938222580581847546261435011139505068853465275557228338754352233715931869095287731487653388956271481488564605671295365862456383044553309391583238121269249005351140981542863783913063844267584711518342631312712820350578905395031644682735700350377466562509478773703335773757346104839029168860651681677939639642774197848004847820978838023868309583716676645875638470582701147256134294171648058262223706791576149853312182460858801321495648480468775646656955275784229563775203351967379960070705660456003357351194492050070894477211141497589797074045184565412770807140370734247462392199923452311770223821060778371188709928570312899425070931695796520034763668187326467318307235257165652429102455564819581569756810808351484013534999129359322390315469181973360376128907864119571088184341107969251062010824365968103422434523802602943676703858693760676025071033113818276134882157653536308894469513491744655292821253630932632390648861507154603410701825428232766770977977654942827874534555654308883492160608113606391796460324711807862876976263379271644354522247291892352307921312795600059295546232500472917591221497286022159109777970737457674452885885065486405728739397723446111763531823686660867739536911953092714071841076249276992232462324427444086101904229197935829350595915063110114680926153063946969297896376105979968917630690475964873985461007583737922075796763283857324909843969149565733051567519644869965327412918949590354147646067344379774818893230518098111940641918172598654705479017791992611741661503088063377852404970567818369048532677496923154856886670572556747354828528059760044392254338272472056597471172436053560020536464384082670145701239172263850914181716217254565528299090749557058489176892491675751165625500169416336861989176948733737345183277540619799910144192307273352578591842077001424908518534320076304975275574171652675418586671192104800902967205325180814402218470376560291685893565538254411265208434930883723007816853295071502133601486304917274816673635002290061116191782946782870413391425892172033175048852475720596152805896855597485461334852495105255379722384418733521049999618213963112453278418846992469375119976259878655214689114236931475171821543891925299527920351106377292461079219843243269096503289799789548708817462519955424503385004792076971974542359187276636388718755256474609500118999282906188748098626502348327876703706069916624923577280688688017393871389525288700866011772163528699938089634841752959551016278590225072216917655128484166666779677338070354068897926005649513376589019436835297949361870802439871950805921536520792185558273796062238213972663430448942991437067814786919371168810301712261422091890670925412339927067681005032889212927177866689033867354496861781007160993856776430600055396958446998698159815868234265244977458401101628799135257109311612384180142501879305841660410861526964370560675527141310704391708352854909597198404793384702283696996118786576883894375957516165632544938898328804969492864248586920365784595387934710866384741573679491012968379474523413113244300703791607204775433193201709046676999213226225537640422153878805290478166036131815207880215396863832508440939440526215127090703891207862608076736000399208493535904819231356227918046890352823422805863626108194049315458850639473733617830117154211798688072513610423419633165086722596388351192444285495201978939156063684448051386558389751483163610647779416180604190377665074133417983960083445947528041574966268335708548856188136397690261556131697730477832947260490098655454553611276480462913836014673932765951856017390480197665634323867097633765298292593296054348090954586864093246773803202437632744223299767123245947982776915715914017964711385238527406241931315296997678041877907637346114391769944759262759414837178686464343644419851889103985049810997309401630338055463528742845446338070399651350205305466840545293785204049165568574047540137440446925375368591924977543624137467693966754094280534399923236083684006417028228180782186159619068855334243525630319731413214494350391716301575202394416432781097257975554614537710905201354404678556700699399977965326255562085631094675455901104461923457808516986327067271524821515966682921892971510483110004294734699593867810813824117401105885721218300788221454034350487900491564315646980140953601693780676741358094336484674692681948594981319163671655507165841137373510854808738136561226846467678611401706866000985034348239432915491620811852974428021771951987615350177169163551796092232665969960828963707251253105843579155294155421199700342828289299877100616364508172779690433346208207834019967686613751532620816895583017017275015674906135928691158472226885340441688582188126889611738159071368657946180918348816212404256993692633345011525045457452856656076368773465307870154620702354570059547394027253605284633608047208484080516591385588817562072535503208454787353180694263399001942525306114489908220900410373125306800793184856739525453130519703482817223064215192709301086086216590660622877366884445793965122463404872195979291734964133030250812371843497926727538459300333639909976333169526017789775616293168417455278300621922785892515246356173540484677632557184545433797204634822810873693054987138637195356832578861648420499379932168094229140554311268368410696048909706342531881954744322593399106257483881877503895931215701730917427056526009482117481011774541394375776288765095586957399014308578166052411960417547800156596962980644684436521976704299948681347262076102661764176873870793802400346370093088588105022993573072773417671572515918920130785316333406202569042106349873872091865035575689348877869333992088591323951310856864975660715661601842639179133853981742726788409589693808660049997044562948761826296673891748850119255559803528440636970868604619734240695939903252339464290852553507969946114563744625779528919062491739239411282915318221659941337719704616842433722106754815643491973723673811987764664764184397956291785276585071765435179516280104681689030799280938909273593267104994519956984598770340227707803179357874930574347780798905223060886310727926552763095528188000143807793588636606321445680582902603229670614496429583124255577469014753757978878784853006402956875922082210045923243017267089920774769493422581084338897765558557148887945964751952536177414389391197063134638256991043351523156629380254605310656324032353860201628509846592978715120320404280594594404239112337864077946984738585438781298932450971629462774661039654602196286100882975164202921804360110211684054250516092089905707419341033414158190277731920052409693181933186684069903597671558514640066947141292852125998449065656203161188180979867275734637498098786103416726108294553665927777967565059732116665262872188300713063203979520652048556834748182704740061977575916447616018700123158553578169884835416893980435352118039642747615131280045918533704283286695290613286292968947992538761528907711162099960385902661962297655694914860151124695018301295957464818744660729526052120872557135685919214194172660936508497832467223704931896251862529640076106707971223704378212709445546438917974585939701677290727835372509078227256444894552743944841373904056463367777567632124375619428313047021749427649447062531468808187321042982876722363380207440180688319389821936411935034353854717952893704737574939528972530228389443545918894907409879046845538678199112707839098783622891902867114800295981946945852130197738360149518119099252558986815396476007782026728495281347430482011110281992786513911223439306041132333544672157585846823924415986071075698325352587162498836199748558954454413931872360795554183213214569287407019209070796614127125028630550386358088895987185797571999726967150120763640202511429425847375468858824478717036956919859421670910026719634850308410184260453232688541945194685983489355163310714278339800930763867152842952865723750850483791691021259161864864119977492542797393942058929525819787167820109750406332244447174830370405766717598570105419396956575705843242401678969747758314868717797820864118666257075112198651374728055154866687363237865124852864245300958293588639852096997245987149324805152331770470986269500975108632444685734027162533986033235724213604450154775563721038406396835854331528730412369696359163909035731316731760666013934090920112617267586227868416420077994444883604255421428190830636158542538603510861435722177626343678775445677273702048536101244333137505644482379172831043960341023465971449237081189210033418811534118992921300807674162534692810366091180305113770728339096687644735273077509035232563238790400514445990304231188254653315785743412709481402693325381844245512645180662031844319620583079988055031899139847278961253900258745391013844048004433921836153716646433482306312791073813820941827904199852764346994723587726199951599850156708800422937137231684675269780901047101775121331705974197645034248311311207066077058780639875018444809746414784192791535577833306174454332083511789887035140997204998078818691981264874570591215674549422636275227057899790638179467412858412076505732727781126540441759774086636160382850482224930022395269205460776295387941815757331020751957971561574692687724207301312863040220923979276322430764332209794980126651571667205577160262591458662391186443571520664962872856670063671002339806263090711909980443969148580640819625836733641795551812754212305343572544033747878541301554176827093808031130104847598067131337902578968666173548813352816683613826297571304110788930123002235766012047146518191681028125377337479863855926477545131033533482878652169695504162631471564607783079889693262967914962031044425070197011372406353874016383701753854658606196756407272443515010373581953370056972865913008380526478101414011961976118697213962877882321017987190903815793044960920212823005922435303747988053156733224248787090869338490804825399112886906133099163694110792330915355499128974055790474607737510421768737395357431628595203020135172079638291617357843758127472990685584589308033353753852596789164424952600663373041715367880517928828224028458809069654323434219404802104740499988922485459816310054753152320840922902978738962586607389248332584286401850441463248758810967191539524254890490109119853832310117824191007361050731659442467246146547496557140531783992677829611157222607162345883039369590000268891335696929334031442676098528485756597499971377959183517430138038434382365522429641112611925162787742744006997330117592271912953968105131387599233794918844161205510920302267881176369315693378530507310301429701233266958511919262630041369934122993709976073504306183938932689848120523681050484422995258862000880497928599342366512829955234358467472250043818911240751588110379613811723560322020408134293788053485640836146761341903004299192326592722559747632993365377385184997969619046288012866183691044829805294110704200095031835494214693450828686474959703234475864619448323640980117866274765497933989503689103734716462382548942179428232770164820702636626262668774083703003407310491901820203382362658534528732991941474136676524847854242398726083802973001479348925484816313717449080551547410960695371519714339435776216422517833185969304594000121527908095216700799634074058512129036851940116646565704676136957376517894229892126312175400596143018718225437782052509792731201334567072506946892327366199631276762801902597840517514984505622172606803521051375954679341593615955968564964338560299154852852244560492597995266549817216252302262716689399512166796541981149057128675554484653491416212681859105192423122004876828542649427582188403983215748379448466163656684526398208547034900965260792157524537806536077650504907111570275208956955902682894969296185342045999848303777814479151827554567580891294749253737433193252319072018279445911789388341101292173510761015379038730645906141585406035568951592763502552442853620971030528915415936217276000960995620693985554902389226380110692511779448608916189707150412371781701233887170167697145124152890859029154296914969103679853735359889248534015756716359004624006166724579758114623839477635794195698411272427531118693258398027147441378724731631182764476883425844811430962967633818549585874749024365173327945591467844826485851639727263909152070774852089012776077472226393711042811630394680033204447701344837179601135047413405192916298665965639874677363770042027709701396117669048228519377854711279834258214792895242469137257049783048900496892836858636946960203385375221922430496031791166446134504486830872850628034369165912297485921400841907415514386712984545584391745206673434455038126354674840809462359301902907182299795274896839194759044591846373733857268935983571903135888976566592468211982111578423095187437704752967103793649755195319155882176662628807148045030800291310563000472517582845727853484941231742305859881433189734827755343283595358684932884050955725970824799033509465587319643454457471785679722444160468644962264225856807671305973126103271154104341296717744949145374413556388204858108723055610309296949586707938788586755530153326187591221374758943682185524246755791313092736823753715112668730228199222064739245899876209836146609977280013848975426614747207197448182666458996274036420351613751453579351472028274809814026053550229520940388619079193014487012018943159898493439721544286986672287729201817212713182751242324112661281126768384727965163560518595514236909569605616580361360586200343074201656150805137991161424694418464462082115184056936177284265280257312818941385597999693759410303015788099999641659635146641880976999307079539198951700875551325145336402932592518583821684809034917810965087760917847138490117270728913959891541634645900795034697624879064673018247412176543673513200351087488794006226695763379602642293436649376261827027148956115304790822909335518430626197033161026947930843975107314426715305142219644675662831025116804028688099163509317466376161034702425381419069661351508966664574201154328044169158803611754700080368355506119915903766181866146270364086489877539462922668633856862164529906310886538843397950441773231653130409628727433797731163560246458319395036826888959435838623763644482784250564834046517098667469346041206917639861270761812854568961956545789771092586645171309088164423473136734029268984179106855523229741786712871225309194212927549885586932750640552075189321409252582421138487680463620827609999694092588471395226491177585056727367634708012865475373325998456148495190785728718562347027455098003779674053163043792354132719290943732979487357924437267411434276796764401647887308365130293971586706705780289034973154795748569261263217156490989344398807335420191045136392909952821813756695101071620355199538620471186698947817338317019437337676135717774678928978384655732731236249484173043620674286691990363292558451160314184022573822162749759199934388748522633946286358736463629578352325457577984524913241339541771976213622747222988284097293477141444720267642600237633489702265556880576716703308838346421947580088851427446773593719076367470115601661330123982645266076269631283271342114302111229629174581501258402243970584386359811386827667389101321451385921625954394811231124943768326361668388156811484598593665683537768041179158118399634334919857092012599174062105395925087916734759933466435023371272518017217221573747686966113581574883677091679072168009592623155491320411118253065408789117575189061244329715005440158759692419884791362433314376423099036849430520180061832723024802708110216910485097912047584353236869829960426139041993205835571119162992874514529492795864856094001522302411944578694732059351569777406233500981907840724516254956358001743309418383948154216329467477402201617959377848187626197275965358005734026744305974150972826674618252721158555494456427157922116303945385911983744969522689391726820388472054670423144462829350647522858862512452818616703080406022522655864750411610570096027296301144891135287169518448634719546161769421840922821646579204562966330130634763634297547913672046162486702401364468027321848835930695375014255448580723194732728363172965455172486079999341862302969205228072177355120530968764054115171978561285166681860318821482294838918059693678075717336090640441869932545740354112683159509258508227291463216778505300072935767692880491490376986077607770850645625869931153096711304020353960981932645813580243048377749150351074685973686252728465304256218419448354294853812715719116737985918915392289622594285313807761881207830572587743883835909297567522523113973646174784856174302180411636042544648850371060132416989214221831836334170564087307869826633858027304070094339835855449861977308012910966177234482832646405010357988076091958421170901579184194865364775294092521572482375537679810762516655300530164847103966094984796266123676685063218821976879044078983886151578454571312801566101773871180597810835014547665606599979471220475702089752960658738401330490512780390521913868905871270591394630070499205597597947964969248487192013551107772054223459305978466008353151853863819281233031620969464194620643257323129721281662399192401601864373923437498748159000847363655724683698346264043851523308441171520680823941715120013547073714896959329199754301280921562384753502582116638982429361650122793883281982511856498357910246788898739597738867288447790853644611330433712091908295532171790982561507747320564040108780549509898077018248499711077474173420095231085262762688048518660454156834697227016709965297718301902991711885042290273938638957798863365183986596042871192872643343183653106621031413555817251797824416775337165387666960059609272638213138298433991241151088736531965195046458639693933916836358944970218795371103693203300330906116219123008971336363511706995566856343585448779005367448336521374417253726854716651280995987823453388475217240437996649941412469253154401465880193825944753374118938272636271262950991480159016538580355109576228393763962470524062771293874428450968697391503207148447325803584510153097423162232508926183806431500191550376622202914697098999123821969465882232312770222963735412289416900579699934399392771958008821523369032183364867456025825817768153955847528050520836657970216443237543952839056452472239230390190712458018946974307479753864878685212138549424118009256763007540617404540506367413648950454423790944789782773015570214498049836910664965221336813045989647955555105009929335556773484371170294651132215083023727856595949660379435678846548809200548619568955696043142616072118788042960635441869182358324396338085960286720485891861205366119936522303215325714414062527293003508163685894839966004750589377523748597948209291586570681458809993107828301972036929989319655920823491388823797113225049552060005396721665753741336517596854356157233844321914849273194988259918342999240221725097255162525187681118591956318581011260167691739857845130872962761459555303410014445157889818257299991414004373280793930247033771558247547377136235767858567147692683190217885988559450355953185516157497688549770851388091800309790032684842915868219364485329749586909972157619133123702346126258831002482345038718200811021278639403999015506770357894245982001090393927348761099643971517554026371990495405504018875681926056226020006790892025502554925850395112920982744079367468688520527881336714307952525319345284485550511870585941854824682487959531037470888084914124885131945647223440905516405764495870473542480751030898203010221950687474272235162056830903835698067579928267128234418754336275242190201477714221963037758941836990630403065775888771506466377761379491783368590602566666971677725149523719011266526078692499129464184621076999602461824932385542511754290277231430766784457607918255861296849474098871252130360106489044503635991384137319920378339822867922879905708007568444922924838486497475698044616892302803241401746724587380070967815957938961749165899496711474717252550028807532703015302711576596714680188350052403717925588059800579164215157607459742581357832614761396463046444954552675944358124962480977457873783912045314652017079448012712306082029064080262352686410854500105750632069623360177327919836023678201719092748846663630360110200472678373347284028675661798597379171185699117362861634622182435122634920455649588515719243829729476519268580474479713638154010198510324725495314280067540696848365742818115363831418344357617510858131411004109841879551095466664150466281504498206014298679160488820230622922300902976644180754766124836428252360282210963613556873774772649196427238836343300891419575275321832939585192705409460985692681274019702100368029691518377474009704227623401581484771042164586551943241436415583889456615237817953253000187399148314316919143700288997909469459868995284127140874546312298941988355113281570624899959105173839731452432126952259540196292401463667665454512134618044751529368234889472637230867826150200732829481454527349318122725991986625200093914470351986917319805656645705049527762777067248996054634400691787973632950122962266919445625202308146700046272258787009535817930946288797507118012345979466406773472056837130025253511176363255516189762697762477851679435034362252380643885467728657144326815332431211434538383872164719111114420603127490338433710388228004260133133689082868299456431882261519745789386913160334477154931835908722532981074626056523436620738061081479185223185440194234831169150844917739533761952821736938414587071151321086690965916691943165706112930474075993273715831710755501611860799089433618897638268714850781796186302095643747019341067446442177245169361017098837304857385876954429367037704926489678758799723861476311085275604570572485002575417446081272405125842025408201592983382395750033719834701010430747428391548504314062956596051906015670691900767958397979851151381877232924637072044415122026968027475207807093941857305889421964205423658878253497914865603170643276494375007357709022353605951717741679815235066743410063397659114544625662094657631679221667362261109701163808875925286176957804843207626270865672070475514816727046314865492624531216205615541950305905357075688830686525019676214536352025085047755207665006884288629598502716052236424409370696712084228922697468542393919632790224994178871981473924439364283615327110986252266552053730043685609535209067898274534816928188417887636750233562573320449429976136450995369681631917524478319921676123909834598970223515629760888370883717036831540313505155596486557974552855572203398828756889963703316718018168088269023510173977519892354685216345181067764082251288723149290281048009220051767851052274246195750249337541520078106532204951728623222524316864120552598971539794668576352118476717199225504908051272226298343472467053362759685140086798040130436434511159818905292088015641749404977105776735950433124484386028727232451900597418991128245417371723117353210001184852196301622897472618442951448182756308069605953836677012507735482073226893406407590572748643748307942867166137447693471282138300469932396297793263982244500550605365299484197909800810533581491272188037835591891464222234989965289234674118401397322839031993260225457098404305219936516361721677919257498500613254696055867981530710285557734391074778321907197953132141266806161189130838458384013877732376740318918940572551907397470620235608900038281818265310019970733645354994405454952166181003992987915020474296823933710922173062023131215502276352255228259542306918139312712022661888512898580734060639751367904704566716777355021730790258973380839713976834576649977775442970457981998069015432813604717210431152052078085724891927040693391948572510038598499906089326879900704940861688793357173668382572358646092450204202694334667198911486550331456619591311892465436597117139706847488000824161908706675077483113378162837031093859681288391413454169011926124794136683456761894649338526675511438638230288942267277168125933312945286690511931107183963378210564512951719114504433269529381992311483836474537383049718103966540842281756475049169061802697417941417663862136519604495281236086993553017089723433204841355212047493118833129585699466951541236521581164774955984859469712525691339334242096255449233202191886143742825139423805280727626138458416687960414983036747568258775514814067528547515930671843967447478370683023403797892251940085826108888748687152148771970030666905574821953096676658833584115093066362643839097420349222374041562673240978295796700578316241429472820007956153471224595619864819981828187307520164402902164475620405699391528538161937718706983550285814554086710627917948281291106704310038995891317632280619025254877239041485624615987902401426826524448188777480951103268691134104214911709349196616020677472357610250324229973207160810978993527912070308155751063704801714781261155732447422667087227733385885671237458025192392583002122952189608598665712847739987857444322168965809364662679769439464700981995627179824998367149602262766392260501891816012502949684446110400777164077286438546070152386651938517871293211744484393092734942086346857204783075450861536554350082661138765454319774524498368159554203032963717550275834181230510000832274018396391017874806760431779851658626984244212904411122126556233091814451176758832482327528219511061787621194739680439969415753842765167269243747954233949745496508954087924037999547043343398430658239421442294636866732912376000460992370441944016887882112526101514958650737268596094968331674720451453735004591434422317150046576030574497078552782518991510494481744649330871015230893153633620129434016529121781327613439929916701915863884169471702889234945458864328453679097883705229705602816579826997773460265300674804718983982259647831878969942411630931919689495406185201927281548938042294578114932551371921311862456719093129561558836744863905877033413311629633354055738535523551760385400376968600372137197898231007897570943661780672199932748354266365083150539871066028813330483296072309528669869528720201339330672441330235206490346910751328133882438315551797634091895061098329883312361462781490696979485553214313585570430921847234423979273029540801385688908205711092335467532045401546152463128110829546182801512223456037896470167990686959159857720935976460977374522128617068498836891963255447443201654042400876674617202282790646625898731829810904311686435291341117398183151819571879289890793954727615306979291326941428992776907364377815217160200325423416553528480200647474771983836872441967280948742189841645962415915926671632167645734467787346854030953317175045228142012339280057977857552285612926100455018210342227119384063037504598026602441313332500419606089519189180947277313951694962217879402323661491516151672029063361367353770589640059448866337173267357268953827655008868614912945508618740272213343070704335410681246589415826313662843573766677045978605419897580105309705660532948423881400563878497491177247547583423744171705298961179922689817399335371475412508792165071765541841950496777851178356013579626180424750776151698818925001513167575096529788756231203214932887324603326983541635360776124343230798888976727090368234960934249039921054402240741241022007440606134725198602360660584486685905810750882738190993962297661333425578748164428989297670371441113377049985695964824115113334777699807885565160843474881671643646532658829072846141476057617949217580998966080861743119399063799074426273884846319334580111861607247815421940660744305654181649179496525343204197197958800221208083532281730267813299314130991021685413905155642025648743077244083800382477570385133976189531328025566916025906096986646574602176171696396863162540595552248391616217388709701911751378371499940209755926579838713540831659283709826215803788998710376559607123884118738907511228665907282560616292173710863702145650483539767069317207828382768228412676747103083244579704401664595290691691140031392181046834898800464582779600039582443395317148633830178365766179304583711982065342865840337677929407962714947540207210167360525800813153174565111219369686931827706920751910611472990893723932873314098566238990295107661399708970441430857977130176226645103514363804654627263489255085472673871068308306240021381693683339229089578319100542801228706499851615010868152473466489022041968456377522146594831715184274370856823575571773904691458767687538563407101850043068198270322004473870379029987758524093192658246424532139531408429634583309874281119000104524425131887448631425928909326350935926643826537044089280201911445895021368511744992688155065709792548609069684061210428018286617165205083224489799371681758154667506162869139990313009230323737405242941946857492196072063139671481453658137887915017564329932374804294236421298094640464905650427701450516483940956984859703018488277986949221900954958516500304076862887679775468671022120777460038395371192001228998958629317245753264041046371670241631830966913254430912918893091727207519997141535551813646712627036965688614199362709582825740294473016446775476751379723578287761899541410646929728211830676842025759331285935109890620231172061999456198985601538389902222075829274411359935944357477778530550605176811584026175259923610698605934416796660929387661624637855871331295317793346618786566889816595639650763308193871751821452734369307267947871493868185994896876775373189928860038396977532217700527919224882988018554618687726214241325468949909431563422789804623844145490109874934360955567648305862760292152829518669538683390777266466389678804104825243341266108090278872709929530681953661343538796881110141140076719544430945736848810319852194611671348313225969359543628411660812343411716909229515771099925572649820875640806945438912881354979365495377665973545308714192482131509151252162853170466753971041627036768749882515955251947963693275557353487063062938722629665247463619054039718561198324549334267007429997220821789013249984061226674639490584532909485344417117115317411553320164443753778982215587428356765156138028483983956533383997282319763713384415703367588467284943283269399372105174153244691697291338071202151165807389072137689307005483180915816943475535906357124493765172606874201072721258461819235417378925720212197278131127976373867366620727453921419549181140588370745365915750815910106683915400824011561194388233901468967785975943235596623578278523597373257210070462545385508067103301202288616845243541886106799713208549109731016457544692636330547143504502281032874901383659984661767376606185923498544024152299618825381648543338336001810438447542180000082679810706970127297399460062357551970844278208071598854387486634965212419185524626981529303222495271966396092018583052175139699080056674670297881983895344833750790853440472242534140639553122839597767545431515158328953235712543760270197147353818138088668551079116468406930149923332600992457065369415406886156229988374266027387460767524198823561946236681397888728436023514592936599984181311631045595190030449229669793256145963237446570506389385372484766369279824274696255538273344614869541662694183818122918175564803587297229796054348361750926042363286041408884420339968468167989096666122108350783970575298853559974245693590136196609767232052650309805181651245728471614602749143428400615768737314841295494381083839805973516152170071656441185274470977704227015694165649501551869391606126690857996926819637420545976867964500702665835334380487747396020410882485149996283667290778604148065134570644306510070874099935217051129309643602523971390722234163291732516038114249597705436833822301582182265937630423963820391599396637737701753946492351941191285176888902627697516779360703854885572979421474984308248428794159214603664654552928182661480422022660897019262507585742543785601094524136333793765262790314240822380531409806434131452153975770123492252767495968339906239990454607114028566404071738588909523599475924422062959874719610112542317289161422237229509528088857659074803718418164144384208831797178345523521803409279924753603588020373236210889251917099583026071706413932343368225865269217405619519058660506285719478564972009165492727333133299158645373274740764664841611771876553105846228302356918473484824178031606119896602515591506276915527015743740642349075381543103619739175119818775032781003409285348791502975960978266435448107850614948429903203043730633688986193116345337168819857266364991747036130732116646673368477748513019903972204487263350944569590496374198953220841980887396548544548761941656002334951839659457722621875173731619184406125721539745733474047920314641187252875012428812482499926375152732820134244321078181404646059314169070497027160813483538208810148370731152143032129388593296640512740468372530750823906150916140079124815186347504699983068525961324828750366351576182272627870768133532740988908633393459538293317185319032252279973419223392047414579274240033007846231515626163215321774724288176403438785856799942256220424031557485463086465169267508729016771552468796545464290559564748259489970273225078135898901408878081332752649514487848781618571090051093983641018969491090444215744295323097117819341317372292169592931932898430692550063445202785851020375935082741947390311883136667012620384024671900145704789127745252938586610857504217690571790339568239889619011152410533464703307150471847878351589057116394382628052168425641322153614772719377824031047022988299103960448931809710543807672039554189871565096630552772329424628729097737783999087853605147292170302265453388482819283825895081863031534759433150198791943442512505833932775360874066817920429111900450473816572463940313305404612814433292731037153581855634685004967199727822863252302120741534532269859482314107939268678129242180195537456091755182578755651501430718290721090921721446292221380583557308092039448102756472066814294048829047888116469866622626287775278200266054689393260078383490830713189158641736507581776559348525118563776279303453861776051272913157886057947490208729090115082973039070288390739044079068630687723797605972478140318843697882945201153823111931607901944218765621880157790359816129720223943970302870964310627257410075199221866656866750615046114327277147925235768810178431910266091801111657666264362181474012626553107606433022344816100131985487706580321789223076489465590631867064959184403587008048750938381180124233302019794781037173966727375413059082463578525273481147344826162003058664421700476461511950618386147501962574447936228176901701663804038709091772483915186174268180010958277278354658380552823873055276847388243806365827755930177946820638480801392768805368693768536079906425937170201373527872673654485894767845535216451211772946817785771898675728356704566204939995662188559565068609795206406579961255132984027922107217325841553355973251017785241831471512574437088519621637453327007066445653389515092301238227215249833880398766211708551018773226315291636465263592262627087054655328310018047285834079543091103914542398963023620274071349783429437512628713889945929504106561123228256626922445573019997709710575466013778645995016168920990454583903926682000768051734602296539494148575619073864725460154177274775261345852409901112236970701869632050148487588729658465814679811725446031574862817889420413418825437463943154857093248379669716883360837991706604966057233357438477275830301830047148759789762547252407428052959363870646887799904057739870195122623016062568095840744376009235508766910322514077183012908487421616542991398447314173380641824018792480380284891450530878768048852511956228800896799743215155523019886863179235663104469016193006595873966454044518184411306200840668141904224249402515810361316313023103043429617885066965533478964487423058779563517975582668621580667214088852608343589669782337358583764021394961045104022365014946203514600444659361365822981091845100977846795431324826862308627804751560292865012771485862131881762826976248963747336365484909450425160177530885619777025775755877256226029767090450191722306528378781501318084832258518412880125493573789543934062594405533809299611812836038728041790344499575885017176698210513164986966427189468675496905995279196786785830773517263363685461761395951014832124528729332093524409206076566479807485624067789126698266913647720697501731791192814189006742261230072508217030020681556771168269770034628911471194900773672781745057313580675329305905642192471636431612818244784778976894339702678771733573070916891039943388788445744784211952788556325030055562998697533195305674621580138726189861680830594107592050769506738628752554428448697469017512474507577879019387049225333259333610164602266737855082164700529162964892826983360005712346512737690580047647618695767642486504554669478569858497250033792853019083242870012424311119459187772594050964716432306685837743141397487818914444825079351860989196984713352874207257633407886939866205779442326406775972968474403149264797403273310523215064230822661806181757870382335671377632478304592647361435113116488594565029727001494143534527757213167183304130788540173780537770183153574657105682131729319787937697412008585164888543616613765218769557698486904321467576806026766369230963562082282032555460683164089342445033015941413890546329650873856801802546428125717507793102363598786624748296678901376897637787336792627800784861384879366847281098559773776340520046187258167475081227271151055697599104552047204699422455174716859270007586885162270635486229538119841213010089637631011859485430389473070517645067345064464257140877246541860335857139625560895927629947115908401922384350670398171009195315903613759267304332968359172200996936274690585066116268293236021024588042661755528122013821865502976244542771565728581325727420180321308240928994912734945378814020658714798444191792214040625953478469446597558751301950040254816072718108876012573346064159772843569807364644668199228127851121401349603195496412711570164550517439440001146234186662404472229675664833893696257936412030044691332612417281199681914608871814668971890200232041823844456236545539688014940306245508970927365055142401303481291650241643550101934268131727418413705666061984894983246869932513577593327104163383833786041341861433674994621176581933059247994905485670682696555760471018124089357640855443009553879975881044152816909490047771917172211417232168123544351464607352489211680945733884378248908776597242909525989873374924015131006921857937108827242020120356801446614816440893466934153577342984347035156651141313799869956744689100571934064651646323542220276757188488448240426203925884119622372443744834697804679534240775330635952753782274361975974498048038303614882290492608420658355005608362969669012633585499609590507637930482916596374429080145719921980025567467084522514714357345262069246207603668050185645178661039198243813448046483553281963350361354667982886564684794869060420457643514245876847667691132374502167943688557026471464341241349437004285378486331737319575160017488467622688116354569699939295933868707174136718745978457925190296010155336493928644091463936596394792215165677283918652203253439243803285797339495375404923655095108068845049046010825419531812268849136558983032978566111368404624030783271716880817751960959954384605057459561012033178261104331542774750054391855639900437975015230221739592444368927073299727205469149447155754501258742302857399056520278425774324565126804462930436497283348769690756112303830776882877580116205779000278934876707769319178321825032208741071517459154941566153143528034520717178517938794951998403390121706748100528867930557836509220256951331677362679837411483121233068277857060849969725495642199746569473532437793601636879062548834092657716993579910695061860237464059306516674465438475153733549191125075974684654100429259730574209005463590991468239918497579265683904066099324964690065690676069012586359318608981548126443594344730849792271936810766778247383662474113215906136822489085183448981980293584996949637531441525596980595295799761912334552070644878683801528389618465205755151176778537300075586765298950800152527973107824977469329651562511827414030121350578778289032460957837686924184237518938538490631248129280900187823717209419560110556705482506997372620781102173495008740446153198891535403401788532730921909199791727822313251570873371088354742101778478298243062820128199054316272892436186826678342518483096322341241898095028849660283530401565486470141929514091853538653833773143692134976815047665179213664768492738702389263797140799469659139972794387125086946503988064843334051309849250376601451183078931537480925313169460118104491540079704137735831216353258541663299382313816832140514217273382285536877061186877773698845415631867678915689044177459673444678431471611597902331218276726058874856685990738355647130249909598879408521586871295318523509439585439007950718805694639961823109987118279425560547898444691925057024467793528302515309787443105367665299773299101139025804441252890301572472900904494047974953636728511489606358456005870086169906535140828897012710020420105838036529816771713131446262457519953740410331354489724962833331120405674122642844575336798719582114803120586035051504127632677900414881389706973919446033499486953093844065790936610948010089459792123016071256433070090740952196302304707575895051436595462002823640172954953850051455967806624439143428655458889029433088828513752333541833568984844169849780869261024499185326912253218286822235251370404809678275944043269267088113585963775893438776242668642047284646045098108518119870195461047713421103833242096020111488751863897568274701908575587864530225811480979410169618068080736493269847076065599654651335610228316824574749764919591214443733709726935072004087014038248069723306243266996588163794365698462570794988429480916435345052137468232547587727906078931826682544122981542769716320723688198684878860855264268425011840600696505652466527125318323607293939623359409887980896045244134100401818736279832749766794309169978451607714445582831383591379423626733660671856542206846800626152799032319889204371253626052506753862856048778435422321359099883500233390001278806714609985952323874105149451837159594220457139120963287837882056366899553687787728481171726681251283567598871420107190921217799008222364819532635462451734347352293135464748784247966615152575633462150486627386779361043504542799391668643054346395185503928357368697886435770295028275102155103938943429094296814697960672728684027643753820501854383358126629604869217404863479061121427934405892449303409120700366733124410317325551782291832778886978321173096398078463754331956960842023518044822426940530772112504713710735693535544803528993669555225896980744470696845282300787454334469809056997841781706648298923661401255213262291776595947892072296171265961536159818351149281329338061747752440167326827035047164068582546531571522327447882347552129012129938428914690233360852279797250767390104398023187677062592531921983723356530200343961023275192331063588077459385782778075568803149213783041953947167145319266249591551819005966818220474114286027200478549846253636713726900294617926007552064317736555390930264630257139399361666346500595675194990739550667909054353539434831333026624580914878598967115582905669309312921867965812238240560485273114283430937629643522608191177906668515053488005855758194616299667805868499576432461583889060097914217060637259531105921197626695187862750910476808884369848425952769806315104662597634824639937144755326440983415161480259237235857400884462561547587785009299422410466193753153381924238421760624031243317779479919546000283616109512200501776815392803612583234368979799703506110708123545933293138361721831745802887713881500337135853194276188763416884139901807130710530949873719231554771513911750447843090983010802376326483221140770185938156561704092107559932512090389408111582996845594280988829085396700711393949511818055771820449218810877838550354588702381859141680258408163802374336681795646764996817320437408305199888150443061602088340682040758089631262787061185008877031240104043981132467674029059742246911077107229010666306214978760624540068193667783767138083126316770908675761841041477565148807269046625437324416803502062140379465539980962520964079769001522344528749389922701321071534808623663198925721524304793536172003132274564124884291580623375090258959772110643896890823776214377568055666506790555277595307112462293184754362846235897455183503032610746632889860685036195901582718328095840022658291245173980196962319996400333752098714910169805982566583459505912954866238423222064216393132234160537001271528782730777053593052739446894517114551994169504986178523660798005355328928150895223418578791814241510927819125600020103437170220049326097346383216705587403877690582430225458900103366339835769180425506003242125993638643523592173309510324490895755498618932163267394085336110659798398934980264986487848764862712810354540221852507550647147325804444822400193174593378690302767394508591856640394418546341968096620111310516909906977978754836340307361291552104760550905380086685359287601747188896536669920879821676510264586411535420430215172537192962565827930349487452876945371851126225998273945317133495805862024455735115783268020258437835997292282992578025010646644195401942958521612958027890990095921858308251354124411863689374315114579759525272199035020696485424765074366843100494299056061987892866255167879033452784377484815330899556010856428320725137017833351380589614063746577114589530446032060353317296346228613107947840821529043551985363287528741710776877164194268360859145309029051166246339497284696147162177020635251143305178125820965670865319658403486228036883447437282585257431755104701716026986009600365233837320238011581633504792976011574187852489879965086571382926985241078631171673045402260190763347488487461864137182184027188029973980083466831770119619822467291481769645897766797352738988014190473456522331886113808983055534220764363522345749492249658031708348722145611477527308335058684271192615258888238149861130036851479529572777316612945793395001863432611578868622157164067278246468707493416383931270059360903791152622781217514924043104244064752985532065546915909596205235725320247206283555590939839697788886563939918620985849274359191421401563670540023495963978804610908206596123807075607517679832499905491924611703554682860809147424190400066186940185652705346870302938810411262616759698290627930254727578824917631934023806128981957685261357601882612748711578640391886181292742906210624462017939430845486976423082691173329967087148635657068355886945830138429318060520203352123202935511511398270633272458086752598168275648839972914002153262181024651535484342805114872808564133403111217844514957177868566638354149552215051864174330163943218766083040124119668716753804241977219810357101204703581515507100783146907475437882414925986669813429621898829691446402570847591263544160017938815671748693360551067783239458170244709061685977824874259176869810239403913593651230614695143019890482724945840569937406563728015738836967455682910383559784751943369143099933022878032398791750182297796299125149399942534163123722717540528997098225998139645096511684413915293015590075944655742229275806401693148140346963307413495023997136736476954582356482432936179812527806220755372154284855676314921410143143613060046280828042141733984570570067677835601835966211607930625937110462203241343221651124242922601368189488986029394943754261416533839045027904132706618254319467607607856865360656962641835096589225482199371156350867924998165019976866605237677071049420442720971500444228683905814958688734081913887558188461533420235589949162084963590293004457620214632409989659122354009276843421545815261737724174314973127263884378686338293249137230364426079415342505403616506386570416949970574068616915912521693002929962859363813273918321525637787299840797199428323154462959471659076025744338996834500381211948305678981319607551871209414586373453636598573413579606474003510202725924975074442008603211552495060051052020541524404478174856631273805872010392438446288072324011011951393983196193608602345852715408876116432624711428869756995407675078421387514442733079431302717207447385911385353142014539680124866274960003278832609190991950241534719434555975796037070300886940297494271273890538843352998306766806172323457394545830603886578249537557260504753174445952280402876444380516243684747325960873980106992805946429860420688620038630982284761916673210145579428341318962821363783118457073106583797631704155120611132144077579106712426360590329685326398032565836748436807380560913674513029983756986383434003701475159526348270202105918035757443191726159198373081286287023346112871005125847915442738237502950018113867442040793342608312840868533819715639964707613952642576438063160045278471547817374220928131216322709905240781457156178110964556175518261741009142012322890746340288337211062680307702574434608955058169979297010740869776184030541170863676144074662831385703951233700565860898158535018517724669355356393904776883205680525903368564290521443247479782678669009972692715610045374065393646980497865322675543173247539810985812320700002838126323991213857395636105795317354557146704764249457703784598635716980092378741014385492998677453128283059461839379728940330347942267623557665637636890322965430304467523986071823204838030497729237891709316852600514317725856288425348785400773414109459030598667487359938533938539000297637155460645598370241919762884075074486018314579365671900348992435245776013892384634258600835696532365920708108125685489204924185162693647962002266882467934735848099818698308577548428395451101258688423810875597740655180562362765982343099541401571497719397144402305773029495414247458996540487630370616420040210626795045901706467348503734145198956700669782758941879025084062020455945797594312688202444348325658629122359354323142248270982071266607443329664567228068876704127315950258083273279850317577648070263884455691080751296864738788157088800854500618355879981846719707484453975874578365921261927801849042514396743612664587237587618552886886647638425180587941482413736608736552678327146089689712802144470801100816343219310320564122774339909336060918435125154679999277166401605896574448677839546816772781665946961760389410344555348343958732537486197222828830031705688449802235816112268559394259015650128197694459459677595148128459188891895311577904713778864779344805110339334898983661363618147474524598270390143085630782146407726658910267956882173967576540909246050002998353786069477170637925811777185934336030514396889236227026753073686112833930390694536925705901748813680486430581684401435636249785964909015383772384428222253165099191669836844033237327727971757575834326253490244767896424135542908740142745310708777094057102428587022126988760927667652655421039675382293517463404882534890734322456903249219789530306235798948754184278821867502861031167276352743909401849653230532732286388530615645710160487621297252852416886063915496222073779622724444586109153199882063264712044782541111959694376376786976097817022539486284907718419880426967284932103253572626813683246085383628200496833791394271601069257491215749869633504886564104161409260125713171794104068955986258546695921838097874717951812147249060156974632821445890092084227508957007393724668672980314606471119782630096151720994897731241173595925648834110653216830812875658197761242748958098304136124935101730948556380196195374063206306402675375710331161115830770209461200826394457134221647306996841341772711695757070659148630289735000253312806287187950949345498319835614789776663232348696548337271355424833623449180792444059713692456348764243156371398401036065518844579104402150480419487895799152604324026791291891703362750835255633149752662499671387646721720533709742016545192670613694914380150076958077728930122505469212007547857651718618087331771238875378253095818975672852222430685305125000594168349806180052091787857311891879729080581006100973991152733340654437975182267134564169764254782060696144295520038933541691941171434523625522037632346458024814464428496702463067679457584278135145346439431370100327016386985973797600952665876173588693196796293556706101467393374795230343963781005055617276302508837726172896669620340879078966933140049964797494171637207020980480867801839874137221136714386074980028776290473668327350981643677805734262667917763875020751779617632961681571826557993779594282758862870095578776985541542793225385296024358530118448779747656888109500769100394257684482547792294932718255870302808367015412522122032174648860084014546310093149009013450548217389175898375281850382782870790135694865651801115872916534968672518441468978194617023512659453800139748848729445305401789992760600403578553710593299255308481002635575348799631547872769596420843097558342093875489552946864442711316887532428678107578837158101434767344666886293134917278100727262729571493034595628507714633205723198917046757916458371717293789098965668968657826577535638309100429971097420476445197149392326616535812053803435154549019110309670208424260133432788516942408357817139084081464891723120862284646510029858871501046650933653360835660733201822387847026424218084041773358964139649907918067724483236231125145184210325135546991383232841180113782486180875286589445652199972087118116560023217482140463721316575290154036153621956350833953525412637411062001060283320994000475843828801874027045439189908243004309860152858135965584326179796665942324253475034133720851935254878845784507068671119775267576828925783981437683900470064869832955646239047383640216142325598904904630973625592012456004816965798132056997400460115583067967070326799353193302645841380603494521660777431813439950359862612060627889223749874353520203953664740787501956790174160560027950239062194537943570015761095079140721971754836849635383908337865413387063422998197818400197737742097141540077524320170105688033317796876603840004213145189804092242363659476277067510213513454384847647461540168018548620417483461970288803171647184584332890245424206015905622906845390025671735605509209956110067867006589354848909901970836110242456281491814562636078588408621389068431238513307112467404581180314467271789156109674267522012437199147508266933481531786590414880292193331829051848195582187913803339853943226669620296397367296478342157165215464765921998607842581591949470408707326899780315015353358496741261524060322450459966470684542981102329453697285670533219278057817178366849403000893642414620021930306583179189899246344317925117262138091114385898407494272724018424896296450079288669637250201571756251619445381500065420010875225852451148343025805475675231016480393980678483678096325654160343703965605486774501718861178595353373646570243949383987531286656524342118550629320229559765118787281123111052094996990751011103842057217169884172756353320303883043502141922636316411607275475495375894713171074432764188008082977632189222059578982172550608441708178707588498805268751534105176360909990571160947827460909463602445895325855858671208431661760338634989290110198553789239862494603875372341227208162623673081147258628827190674630935431339260190345181699855547351547082941595804223251743594749743813577740798256743596818576632516636697817021428684706807729675856128712290120804302907774677777306483458436840409829725473034173038888816515242248678291815163454698520158056178407842405819793595274723791763034109571114943237479445112769046166464256528179014117124736123543991733284585027173420960796775281479109506213078030413494490326332351947202991405609178176032558320020653370828970279674107270117624617193557664026009533532155406022011979084222258138019484836552429660093746293627554703343312423833053978339357550962756612622770750572804942529780198326969938152959841300771434455447542803895312548644276481778023789969675231888537509269528791293971534561485227260772472614206361799422020201098477728243642519105840744623902503647687200786144095569647880183976306433603376907651414226698703690716503045824157945169020757196569973713015096754743032388551597863216107882911933149009435694516295982960498396465456931782056240833548781050027042792467631004029270443410029548574456057082380208229823600086611113413065234883511840633381012076999122369631580424954949520820062494395800763304993049740047677778900429441163703773162916308788830439874360319120533135094111470194236673799803197924724704110056416437339848485495880246500805186220984365349356168740619800551745464332417999101697078770524377065324488884723247305170278661029953485173089703945383432965319552636017075692380284919201281002065511094880206593687853958449943238821257774840363060991090000625573801076123368073829976679897990591402906663363182694801191928483249100768379040416220590124240631293354675775125866059768126636892039551951459237827664339013114103173884155896710276708857108643721441683994995923939757763284131130803639536098237297474448735116208358905135228341993427129849922836739036308794988093696095255262614369741431164857587608060507213023962160422805986115132603173914130012216909116653651903494234493624928750681167941385912373482969840700381814286010168645771772266491970890235833813230412938021815681886778414428703047259852088092881239551347812858367166895752255669526713027826148914271396090596287620893909113033273643471711095590176177328452372197002940556251777983355726261332139785862240718224785835904338818554884200378689106155489783588399990228860378200719526060709471907741541940317871812489819239138029230956375269022988892051417099334503408155310056030361754217903003021805384618471389526795598268038765249932977832721350983863042700914983323962461031057766550900754029653638598572362064424697612361649262898371463908827130919913209283730130723335317217953111432262269690783390920571274191095394303016387112084679046657880165045109400322285288028173157242731928327245217479856024957607218287127122071095569879775213497780817439872155542562716536431571271370320519043524331694484169449250748180191936303889464851305370699565690243426285667943891428685816103794458491586447815741075591305941300576257005290196021402740476278993241605696139739284986263593025982045249328108804171006556793142298802655516428482999533137664858733672873661084703886303112331562285966006567125339777714422649438089553177652327051434911507630758892822943811236284050368732617895518806214752750332668559310301727896549286093176182702641433644816084746771395669505821405628507810054365630403460364589757135362243913079567367388608382609259858107558332287223560691049987071298096645302481679752265638335670118386155830100766853949142643014821076486531426504908253545811078071002102774263582550835269830529289808808146723832081926321190692971212692333406445289751998381522731673119897217988399739761406707673958129346319365683521826146943347376380589473158205329336785621430723341734954006753460927847049327215365605116861984937706790839509799935265423645782599032924880925874942803349588317456534059005745304572841372240512365235255063579316843575648270858013110418532346793083998819347376654326533634930825052868416754016960457090586576208925250024917195622793911623157363737169410177978374783658410090947155583535139313479102314720704687356720454815318046406867790655799857628939256686138374220793329295873756570002609284949839514067884133652331956471293726529686005584321753031387544779383722436444469954818105134753570527245287867864538982877615795885102444289171339849492165037985931149474534099886506053848201667539495161557664914486535033482237013631288321514679910404575786382918029229685317517771905825991689624526775132605854061674205100778669372694399741835130883287502851183870565865849667486453637920581394306679324144540078059550617482337978838207328033512531451350409869253032289066618480577512629411858400125190124167226447012940201419545749420178181796630227986479427473232049158963082735580717016492315801673097669155700803577229443219367266338915497774640762886178851420228756651975657132884887853286980489491925046409021078864813588916745883418633970982536728422591426826324696370510954815059129972266578895911368020794029601721014491906771897111100746827127724302693267427632222250589074078415057450814242005458666799000072274926501012411897880136485722072261722588589491343474063596993409821624110470805157908420228055893801660718564380039529800958649324829188111830499911313756769273447906991916159942984568436737240619662611954539073542853919874804330538663940246849658841770830987847953364286269171830649614429461146335958914232402910300968508559965386281333345676248339957714178493173440182066173145577127682268774608824501979605981348225196849740110005853380455728379153254490333303424130719843401125707308034043143939698248170757169276646967793404882324840556969846427685514733421376926482921234807869463518597547940812152056442069874449230930792444873806067947941425386561235124658227230438733954698877468270054953709046678563723454349247827245889201859913312246634629061549413134003166460239550475903957163366387512548815583763109975269158555371892211592057454148784525689352919931267716871449342650589135189755237677519736244931831806877346051144688718509298130223819818814128968113624714692571529558195737485244591257454386546367484135445707307209481399994903823965764981789362413262608628214126250240532326043757331263042610771748222514050864129229104256824310522329436974167341016357389874481885104446756225802657183497545410326772392589551382006044098971138632305399602358879087687459146480111723186948978525330257352348688029913597733878102467734028414535809904659320236748108143159579657980703871445006637599573705802696066174926195927229584407005444235797502870380719023683109670485238907523941953433850808417635393632760472077361433719367059624305379486389445216495807771847221445210649321548314487256714530768702288614220323981769527913538515885724024862094882791375585020770117806997101038366787512011430264576992323542099787205997876951577608910641288664101757659151098608782741928890698138722845744484240340250086401083818352286287769488671189575744287643791165007467136239329182611947557628367495232461581798820625826017800690102248892196078082422291815559506488939999989768447482342252448817092829285561161997418120308622172882929343242244616097171330827644901279684679656561476638188163690978820661526315746328386191106556995774993397373474764378285147889894338253018969415249013354978952798366938573550821062226870604476353529081972932196039839407580078654550683459798903839832265390585994971835806136302112577593324266886782610457882290352374068481903978334882725504788947693960191192762311047651501640282423399903730772003204105839115500099321171286933596598249444917484172943490089975277195132414322599880166738083113109584351100604773461320439571690563474807610158662170613198248140123115738131674368130841932313963990738121337770385377432285377033498707367249581985255600128142772312878751701807559294543478915229306198440798605080139890202692367705644223722884502968004167790707446820459675543783363631389475312519596018463663838347240432037207496598989710530354514647817920608290938760458214187379461105883371509343321369141189651107186156275345643656103963268770867180141453170187317196195584335765431220155721678174520480324451227221782136675116975448502394120256078593521373558094220916372514330266666689529375510716274982245980288793613900788990220816241040893726085700834784828061828818843470340559895575830467378126181237902155737630548898513968127980683330230463058517345118678944977136345411050478126451673092676982208673016248404888806052736354684098987935627327638274817517683680890407448414790380558668956741725615163432029305574502226662354434772606329663156529018871062965427240727521967325381529625718596905605200991280599048072257053893115914498729621728218728245635843300391880756591511154223785193798849304066930877315598307141109213136810402659484709927933297813191200422897860134994166596764271092642895714252456958333128422193721129093264527915690864099124041238532077655568046047395176095494380742764649662878570916744895623352149264388554659932044608883081200092759358623711008231196893690237619477044191061956351029838709456550331840573456965974573805247497152931936968018488210371620404914093331573240357049576866775560815391667970466546785199227680100215005235338527898584212407545751737529963451429903269940818464494286788691188748794212717811547647320120369025768558031788738450027168396943281346626108493089635631019898482194681321912250638344548141371195356189086831975648880803200600909156085859643187437178574955011358614701867708206574495805288618263950338847995521826490809888969161006046318298093915945798683889955650268249316173216493109994570931181703070444926549407159502596955246552250245424774530437655391040332075771720168386679959052557054508812963870421231792400349385231879271420989576093809306677101329002021499459565439154150116333620196794223362188391399241752607855742552167126449706423113694618259020869127043688038743079610563818961998883404673140422931919571810709146340664117820518069700635116552641633833712512366409265328289320949141003653286261643474029828755866697186124721676931686903637754006941670243776591019393331636738639030716428993067498159238793208174239983380929690487037778673098470049070650775284148426093355134335395723235475777106846542798645428947741863349216492557052215153953156679393351425551263525715241926472316627369211001788571375012476936477149506329554502668254471466172214749959336315256643130993384526609144515109673719952223812349114821644041083927047688515992924501664309913093256124980192041341042089561974080339547326981066432122479227885346902047299134836033078687546167899287915318417695587128849667918288317834314787355700015070141874000275793278730133574986320510341256930737265120457139129190173289768564586412451022003714318094813427310364769794338847768179862561935971189153868514232359267194033122341257631816003111993697741079157216580196582567108112582448829199224143548588130346491744915721148483071247371705547056369564935990514472304323905455040250968365703547228028735718217921701647659641608184367613359403659001515035105610093447530550001601032735977344728237775046010454734117367340041365518737542732591555245674970416012696138799929376233976652172594969065162007809468199059191614834979463380122475152019693805672613707255612514808452738286006642622509520342746970754776427745532630794194122555928788034775265744342172544479138183166229318762608981900447814125250830099734324656139800322674903143533026703641532328031933827666466311240432359139597439553166495507239518995920899024268785413061851577555494842966228967313903818841920605169562118781104603022460358581274602694356142744364246094329193880546777086923570241865009687923299419853088153526536626935720315714061091634184980876131306792646250976764568521209180446343180698531571816322479869742651083237372716774119127523982425760156786761491064058201533742938337697998527959277197421089477460694511543421372661664435759861347404013173518786862080707247069286184838107473884528114429953558343596571320223366237405050197045502310176406969590858910171493918530897784090132954123761402487945691396007715465382024066670632247855282709394278129145894589585886950138115458766956755578248052909970541930577912817298542402807498418730650381100473107668746243305418611656239975328803809220189185107293622973233643209218803546358899216343817520629372258041127449168641275549580568913288318257228840454364551683151887209573173134306228485563003540083724982954405255928076408920659918993869538745446676791273723345686294371097988045522968759790719966057711915567170916646969342984000310011769663674483336095977015907795392834040444461505026293438163434182698453392806585181881526620951905134980286216924138055505756645047037392115812425649876621971225280629027671287627258609906531699062831483171306854917647208672827912224375703058270820085638831429153941447563534210581542255905157639866169169865125409484862333231514306384101232648347759251517736372328157152051986680698607135243238363584948963040546311220307034498636948157420287062051513387573056127355092614067113778843925656830450396690184165425139637049744388825475784864178559353493901628273262067457421864473581116950789807999100248935467094384009900083347171027054609321204644993726889813478122722811762411574156433145111725706252406900400647065193204661192758007821380973173047486620997245005508427159844280106939232166739460421727650218742267932548934943784876786830989002316369751893482932598528875198424825397382742776885905067636177671172117263131776124693508359981768368744188876069856884386751958554561360684123908121293276534885027249307721919875451433959913493963447263487078310348078363892322572834426804070688888856330341175131269089017909964696443742337359594557222874804168192723314537730299816598569582425614875122681630048637482663598095489378236862688273282431411157984435367048777152837104739794045777789046316122728434530303167447917070867504137295960260632257524788391596870997767734915708817234825912739421959754525159408557250579287006341747220171888305475087917486080431837047805551088147403080168584209619597855091258871138424306989549053283471526648169564644312703807432675740052132229756460422669332073245126058947204570566463899936132314526642922899748182906395146883133364891479554471609644759678465976419079438554089571776554373569487659003499208419130313913920649325040848636150920091779656288564797661730838936125495627594889044833686067306035781481968271526914820569482987227119733663155923428163444986334306709245881230774279290594088824866372964396455695562511705309085485249169835088317430740619169744423122597058091554063886675441368436144880896441551720785381964468864014194459232617745378413390538186044776812048020997918280543591506790197547460357181950383912840877844979685292649851286528998905626219446011440052770588750821636995469522016295921815065613220222544069458427858638337842698503374119511686615814475225523768113884230735481679030295742622932724659577403510884735694834286647904372106993444682729792981671667310178138901749659130727398122830468553760828526193129490364187776142836658240499844014129537610689950330644293982176179285861120654818255658420805064363086367968689844659256152214708963336078449412035588078296972110881625315154768871832972148228939904463388197150298355086023002460118484998749860622536470414323371940442113060363449021060935455696521759663417514065694945057021677885113954714282243062315518920991419865857819751689646956132306800033748244517730510290909779939699294888774625207654177271294693155789095161390217948811846155728627612949896275424255044183297791181747292111892316081558074875024317768683025827732533528466048526626846691024071076911088063478110943967197699290782177609838066463009167740420345556841420158830202943388090410295485343318918965615511114765759154675049658680869482605392582370008964647706058254478165926472988776679012655805271692291247391656506739285341735074831006324596973417581473730518652948156233572136831047695487207321506121507781233220553313414724084192201925822792523220529175974216619146850171278414409816308743370952738906518843865531442003205556969623441501015283587104688065965510153397497020238461137136065434466614830509917467158917645604064721915873941811027440049804608471592732287657031203239817782630329460213327450405714893632072624987281365796728775510644998256014053717953373318318231778842965760042760638679061685162946834184680549027720054846007487993125755091105921338015821656816163457486454646265380154016108123494560224966339920219871210895721258100129249562818911008124975266628375149792659604098541212650719562236781812395675617192577013055018974029807990810669950534969347707246508171741807440532231100922164972777101797895164752338160243487831392725596442571196858849105814721595482472877527066318574772543681311536444338709072858949333583918022521049890635060078968971058844045328231634854619429385748740392511179564789548188242631372623473528687418926303846906647706174340898300021705669364758890274292457565032880130782037197656930244242974608873203167693625890732570708390006135713123407367989225174169721290762073641699193810487940461143551015045646901049746905720841678504844813947165911248909371630677732034983137084508142619343140233375650368989270415356192838163263190593941725291943320366120579381312866004860211178585251718374872463623298500388242218297217173186960291345922173257239328114885605642812480932886101158515786052273237228953619036772526213320042422250412981834081834663088919488020416111497323810171685536132588119065479186822929290326595808087241822351371983461361619344399108177193395631286508467042920708158350676969264126580616405099325550544224217929850903896066887438111671735910124369066008147041154652830957708684913483798974104957796619652609073153173476368635676494073256239872289588487514903229865046440493116027516383757635349332109583849470248223389232262264211697019496288029465727263534932963214134842618533720715433161636048732319167825696660683973768404044397606804137302653010148856994044238823478557869901781860192513114335786362955503170763456337797950742302920558481624012473785216842801126189279583182170150690966491647251490037813059895997111768085956863782097203077940642621881199181537106167427701132837744566281668939130521489516839001690226219893512704230823809720174480280008725476942746976395321667603100534277829925395344993289531456592268237651577473453250454911235336424449167775761693238704291394922788784645597689232322314057580571647571382492864828681218901622822486846250257224680359927296965081211613071887835749085284203375923690876813938516838775840188789813163513534221623571595762099467686608640315776832468580655830545545844189754637129900221955088665015856703709906815958903371553259707729268110907052798962518333508880559542516189145776455640360988588107818311665793305022336794617061310864305007849065909425261348820253345077234238438245986694921040791818207491871531345552490203511143811107630193707953874916758322309518061689477665943728197957645583951788848518291889666943392678906810863631031915250162481826357843911719899927515432634553167565315002662951989443813489646057672898298117347655183919036411330387511060170277956043829944118784268215619843670017622855853959667499792997046245852690264156630361294421478453807747564959887096777370449668340571253505011363969108417168046346959577050232278239232025586791606121067313107003909541404327621843329564545214637732581459411058910939749330153343710290661608775812239720082594215391201952203459912205691121909406472533539228599335310364111727917383821520156149412435351905647406831867999696320455287770747843760687738517220286673414797240942275341862783921441628751085427312166481838067692331876382265166927303413997063480154845329212145567771702515878787553039210375822677352590867927528593972999798853105845897328273603684085403397581112482339306665690782062027075529252224774419062133854839980797807111949906383056379655745803689496116088367953411323718136402747961859447534201126985802956378600968961775587678871362298732050377728788297796474235269669709808567858135172527639863835366166998303583355118911356468088521802469102403445697117361712678443968430324155329937576313322086502753410714518345679145015390868303639288418948459623698364578332479523023433434451734153593330800578255449599399465777333600148672725528672461939707917550256754729843326215378588131539346402744314055986699779988880591978227346629280109196348384821468731459346939419347263910050858786984400954984522417366588186233852910351604094830543005676029522576318044443155751309531952074121788089971065897716189673515585773914937475728008637254803930959423152537740870467761824856900691506137168374606233539759886350964105430616113697277228685548088644706661586513914554950171054137472312313711723770105029344167499559808323763627418792791393462790326147178165743161322955983052557951470890799773728624989172762836605926233032150613241929035940269726917151934563679176803134865607940611632324539623818826737759514570332826716487797336857293835769984366802210278949974578337829422412461705709164512763546782362695651719024802148973662918230995754869792844902919623863983516915873767173039438788787388760938755480084833715972360200720721297649091608484474232314522580791760959496551692017398551428319330619298771840874565684267849708143550490949599432010635255141047629081924801583861634649287171646880763311397385508474652743599065193111138772727717088459232556764835526827332903983698850958160193855336194898309405538601170753602146421713286947729943120978565031668856417044554645190861395618341706288398104211013180450479064066655635871703328558169406336464576813384760413075842975293673485263500553242040849817773916846623345691482106182717131295927457658836810939567325306467707913762550348324091124905873538872359058189361912891377753690211574397821402197874620454392809110163906664929587739011517005256278391394597107944696904676530561639696431145173654059631613102576793884806074629255656827202429672388763251926837027040464577714017254364621091451425440603681357898034543025464887754816647450981358296189467025414914185877429075810248465876014685184240394566413636927341363129909036679697586175494792103199099662918350356927341095318335117495316490882063000413192404271476641625327870967091886867161253292625460982084399162145649347440965802084173846082657817930195768719486464767365740537498121961842955854983340822288216689253701465843400691106490563060046500833272508877687485052373481869929998025778336027494120249116867215197491365138866113411516519954192215804665640906761096958378567943827329348276648727445835238665978281905502164079379373874732749200076017077348759985275525034231662969534188605364817873694856906331418982665448773614298598034798594662795710728829423067527056772105072116329267601841285191709236223278993389383950466043569075102721692042575342766041676835645512438906197074453630406645124060597915270832643386355321684612267183467545428298523195810344392638734806693222948582436741266948847253192665361792973294924880337825494239316293694513841743754828681666368019357938786336967328939929000441079180935702264997794680190320972072023448274735914668120573668149763668127652199013686261784638901006562978128985856868868834240776348741336700090328529785658455268092526329025213921758338669164545469595103264180843784919183015140671773866227202728407083717740395605158263221685209433626265176791793325196063711059396257795581407118254373894027751370878837308938054822957364568561193800585136989955420441741739164253948279384551286870805296446687616402097255484102403010612383512939625279767037172700989776497975996847021929287169323109182541619143278449523464585563223762191397836442636486295715294120546000683639199007169032685690613352479396993185611289569644426822690649164304783993671132403671795953493398120155427321845815282315506841920017984769456280107839343638590704781930211018690410551319062869658945033061318085204046091494112464837754750826704410097718525268366329832993481045887566659522079330229644547286940377924083156994089427135180892178200338414619141253668586792289072439558272380512921048407069551400756884420682310555252460505597589875265058172715366605153531336285699729156326559148566808009683190672637362297185666342565936028742241756681827073018399799118284597974040724118428709163324626578434382544935286149201808785053759645810139855960803327285692554909417122539925657997170635249850718845759390084830755550438348265472892629989206831516222986000562677368112047857131715112547984398267157868841920513252666480596010570064053458112347150912403525685660521152959439077166278854758667636581652948990352679915961422249158929483913832125109544453241692028720126801612860393164236207905742557442090167520980444212017995583051224162437149622547131056428068213523363090254902269134092393397675935166497721817572643169399729738934298556244397569297039172447080254887004867813238928598238657185578877634257329329344311611113071006707497920923720579947779499972594361567343065877557928654814860995609695677058288760748106327212281233714629983267162388993416130316299101449749895894714009625971750615711952002354544476698241993575420864132704685151916514231549674149811218886976641714073737977647066778661154226708989249113396836851127709090001917246289880306502514228753379086501479362125441578802497641846818469849023979395991004475856063183031977326877630772654248744567209173714290635413754433587715355249374465535497897956370074967190838637038050921424978177226420471395534574117880310880743730282387862962102348808692103685682760185138401283419914826175179528308336428911213164497982093057008676404436829347518323936848793887043598963113225382850806707426766660897337178546906204920596607021347073559299289317409146715932347158982091650008178507837954452551549126417195723851260742868785880917236106843414498311376031375323966128758843435236703106281425400657407525254285065176318024405561347754402306411366997555206597135111511657307224898498711479466926175650601472998892539064854818013335476005919952217340607095594240230901851239507385306859264492788083524345691244001184073793440982276742328838435708967053676938698033207909809763539204877953781990989564133865843400583369414048965715101828504697021088281830952223480199278185658758681362906683239175741424272458830146968156132727516184332118396517244926094740292611905998705042779413885597878967245163712230389799587364780943756401805282685990194138404380347468005432365505016029252954385811814966920728951349585954775289239766464603446264002549361230199278829806842334595508791997980304321171558165450186686056396155300903797381532798541433871202101710795475647626063239581405691406508516343228517449481796946054188990773303417174451745576331380689470450176094330749196924447178788165185941321891342114723052329635038324098219824931537683392824482915468092208934940946647546573048234941022499310247340447847178654512552003618498752935746200571507418299259658620541834025989383859193567846708138669873415488621685489936685987199823394510786702834337321467492249719936214878908094716448445321820028934638322229556029867901330830592935499845106937226166045362467651318907326574124722986339263237227495264806616349612912299478711279179642008991881201128766679847766414214514272324177414849493766190299114923434358997851681849376389404781326696748257056110853626833811684243276505478224168133476882616455578003760199617138150304232432634098964821027163877196305715841049031032598552139794936386922425651175432076373275520289880522417856002846011975623290885764715769735070559158043670874850325688617178471452589406232630586661197477387756902379722470427396244828870995534811947436987962876682036357622563606987969749928032284249029023748719124541339914434234820208125175481425668634876906506176773238774829565724558652472496658797173838627981497045256288371918050588477198089116098783145324681383109518458674528658304399133762482355102709201109518930995822791730160935574718110676581093317414817996267240119762030917259920672652840065715226203351360171518839538089532143361624435168584663863708244448442559234622774986536584681746983261983661309693676660273350254862292183888460311482164200897038244048990949126092101303348026550013850270799857682705477497866151824842878078443123027011015063493823541664086096563778872979693222212647221409078469841701645509282257227755208734137607729540929632218548044510413451338396285720332305385695378618476366568577362405410800944371819022325754982587113856150166441232247185239453755936102700852483217283804810384445560120368780597560797438834157664307478437101465079251222143880416143501901569994246238705209318458820059756633729454138075525528311031901215594297960213619071306042387580809202372167709223582256177216849475554897541813134503415029006609774359902527788689463897413942895672778341276683949536430812020355302850678043498590811194286210431223915281333952351102059713711650367584347354207578488304287920460627910487635632942553371712521713055098511808543285280693545539910700233801571751435012954166317470831771207940516453243063794883873872485596803277118755690752069093936096056931130615378574017864875896544394091234060665046973508690548556258607532140357477825094851769421314963583524225620238914344761148982791786892500368783379323905957371251278350995723306687735607670583299323856640334763075571777683568639817340864393132804282959765673431737752584713383318276205813618828190028456675280427657391465178093997987065415384241116095916812151129890156776548975232448112935835053820749828695067539420328317210154612569684048943103624697459490245125946275556375000674057059505185649166434800814709844785592385372515912848296235582986922989537922912077373952448537421285061802770282832951794837516100690033782873777522210034902637790589101094913722531152975540347836586943783327623119194451937653132622026185497715684051061443812393631921825015217928731272524369938300632668815955179789650102083980961746699165453377117160421006019844516325561770199788902517314775227841247361786614883585449518162951338185168225696197397740829501905958506395692411165877466604858982507813462515642925171310202496843789190187393536252794702111675246632220484176021185766776707018407241741615037330740777548842058587002106603990778256710062519534193349893218816769032374944927732183976112791509688070422183149191791442412253127195686763950363375453070032950299264447391752570014065331257218551637324666334911266192229796794602253987629877030802168482190332355113649913542619967112763799286087586871199444784204963543284217861390432813042594837810492081226868605758815075894645209738769109670168309788034546562879444288992282142228826643241785588276259163402233683808580388623633271304273258441218876319390364737525596808754865350790826374613632995597697864132279098990709918163387446529244369768076371446915315702017045738022440774356575225105118039151548268609572763159428615830641181171837673957901243503988813722294306509909167152279964933683542087417333581579043418862938267251599528972433655167227425174087103603599618181256698664850469770466605296142344805101672759104596496801819675695566594438354818594534257356091564534192029013624346069789498679637304728236386223993245623587322678758915461043084175652429768833947747373296000085653515793397217087450436202378824596049016212331034620583127707185049194976942275926528235369294185155414636548983591884007849701422692812559050810882238344729687234748030122109767324456050491823911496433981095428134253712406959020988501572292472449080504344827574017105244428856573740651289162944934655921690569950749566133826277978886885144885363690019393069857837178126881313700453258063736301200112526710666750066165516328787856068535928429386715133502093457982481403610041422489775820391831695838830181392473733044299353549037396217513814134681112947073596227625102738655467072474049782430717173095275715026632981637495186198527483546551373826296705360628789158581510642551522297006303902945707890699138014311064799999300306332829651136232861001820362692941866180408953824708005743706412067076629732906619272280652368588805557725331842702267372971695338372568455133010460523237100864408888377225983834451192560008501220940538850123730884619716869659854249024227039684707515666430230647716473047916872486506945094468311070793330591940597517457088256636125517018466080096390168974027267866386851507025390948290045046586731203399009979704649495166105069029324572802017068445545323565902901257005677336639407693035908583376411901316701620899849792714037812081296251834810560557464018940355136178113720585113532469162266515303797072858794117770890237524598646225145795475109222598839167832936705272550037053291595978468342014030322102405360339780824674712099420644405525715004242206226016788551707708778233442233096643525870784648571014437055709543191439461334343297945493958826474766948255599454394846287452966535653297526910838158310782780208299891935001532312641781331467471749452033772574108228893481802225506126437591159990987500463755069440197249939126789161158141661454188116905544582878519426570893632030266773277747719944894104517253757520553466924042128009390087176701498434646721227821580077680630874082174002969842208080089314610619231353265758675253582163836280908870441261195910993215228291179888442291681740896020361189894342276074289283033880996252000541919224506601307914732614093138774039649358107463635281446569662074110302986136647651881596058920357084878429674101509039543353177451698655885109357128177738672731360461774755528655943974666315103771778059300778079880771715481459957071871373422398424583762594610194298519656360922721890484759967914360025550636025070029952773489640987184096878031613415906864355889963072627884629256685172834561764202981567595517619403241624607292364335386776050357162927188655872284822691591375623427720463933811915187337569477458195268083670887229763983705513541078342769105536622175815979770714939713104534733614763283127904116977854849371152537489099763400826347233698761353192054638427757083260373823052094780439523208610221239121464766029684093787280620369582497629073859311737993360403586100884226077750566770783300829841180904108936757516724898650934120281546535004534177397246535440672707531795326630330327948425443967934715666989146834877245317242363066019040462651510574737733634822771917722323417325599468567791645171797087805775329838024576837008948836704389405336880710630689431513332802340193866492050538827687337406841969963262898874930364495746007639178305576667500813631103539000207950872703874636771873078525041803220973354343202703835367840922520625312261608456474518893296725103723742643494752043717254567160669331455526060675932153455459320036843739901180077314663404154154175768477452716815824703244641287770694804732221154994623681401784492497159220711568977650425188127626674178703257562989524951846188194623530610929861064162552451687493227151234033303182950215753025586458063540164864038895722534757201404704849272292393599214596291615940665349677148831113916165427559130576406690909965297469556443912041575508963721854862838109387248330407355126931274409762954961967812023305015940129831341201636921354725120425746574209292079503647187212596040866569456137561790802717729591296650311330201078158093064545270723287573660720379953385231208938193080839050503328521586636126482494672141867222021232054558432582306420151293058115621813285870251447312149557618479638158431605464208045264953199992813895378318463632192777638963045747168038511962150453185825690642122182869662426134921255619358448132656199977407398195515853644833943470698224220008657016683128970263145109817319736133348503404452448703816473091000110802754039507873531873338321568766182355848010603331436041995649197207641752063487951219314805306837397954068334383210002161554979337774049325591796940687469096595520251981110410016032707203086192145423705851085286936387743943824199806827424431467383849460214491354535468443322025918484169379230269268010631394021687821029440264034310974217198162828091916873232178847053131885924176905471297811980624238257771532714705233272713270409874721498244643624506496363615286288378130138749267522387872948021180883598739569504928794301876126241294600650842655028519590610146351125728345369451913301778771917783142553851140614003676694827958958835015193560303657170096849810198481201398981002113835591801496234768069998379811874005417559205798032508615319761409448023732100652391533808246874231013979090486459871570449930279751893317821838376288870379614118006341491921140119246296566175642580623380734862424812795086608342556532065619045205105605626129322143845181997448232008449922563017443194401487192592430971348100281355545544346571946995923794613956671882521780141088059014946541853781207562232975427274537773253186101732748867334873230940175982440967221251318256700911583186054194913087842795197992122772304725623972689982923928565514042431679083080845524898093165980126336740481241487255256030029043060388833586493699139785908318967527378432912282943873178788608684460216873518487904929891071937642051294638867906096330443422800028830990366896114410680513890723444983139773643833683002325489195392970607492308975776276727594912618580363359668531032940355338804822984443791600362524495942062250725106928800797770598385755503946936204617481623844378225503432848703472856197113918079185469181909637475074261971294737962573649072464347331190686508002847656046645772653884429325900375640649678351446221525839014643252535270154489867070532678162814844221001121512395800720721016579426117428154398072661705227743465113936185523474570407942328456372612501919034547939146484774835962341285702026945914055573320868051383621842092370245661223907552119033024266563626912501947416285742684740489403944198468894226235276100562870522153193419623360527288593363454333771940533030798635028028370780091693863586401293710163073694100259448879911886014442715260287531172607250255261903106579859420635756396317769495421023509998921037521758760824408794935868363114292643045370920255068768578742865045293094390633793384291192491552891895009050638645520150227896246149523354269215765111327683497608903376354869395399445417380633356325873240476067841229377493753148716925143149732094167646977929481868464334111321914169658534946432809012868162277661714861164911318144706269013438009755909155842318730318466519790983386326862237105598077077907321217314914999078145988238230005541846137427791206404809330265503870001409377008769731419647466850467584843272603908401186423259640142745243196150076177025507639355486695926798830962618513301171566928662681586116059006156061606985591500121448325946927541105538759249889129675820806164617962958116502538718981898420913873842851015790081425296896114676061999600724847044559785631850861626170316632864320996587102329011105580509285602932482790674212820434958277321898119327787733863708331173318431556041393789038390301588431247764781771180839941472382672266310116616768639795747729855551858455626250056505123914805513710324507748478022224129655492542357688308911743780492137321734813461034952028303224862098651011470061749600782896876377894609529947500981453660188254953712163458947159003093998142573775481852900703439216281772912018900414612580613710283075940509053425984032079438732582067488877609612430944264678918521586564568881683033445966731233230939510924958741673277895226926073442081368189234415237675525097894734134284823825630627140881242389044710291255900583255476937240414555707474771164415647580957584269401445250613668599652261836533554901488172544693380478570840211740426775969080276364648846214255971548143421314135472007801814546739498442812735425733405774554830626084658918454753365019261922287850175187038842341853347107284484767570894999784186918059489633135183614867881514766386836557469441835891008936690704728252047625037527670873595566844664491095848505391615420738378528046857541553352154702596946211064238310855494070026209513545122438513291558213033336439160310421219520420493906598687439095781080177574584073251444095057305299802098138383754512487231437176273717473577264828644040640927932642594825222983617245601418704674888236564570404366480174851643562823225419724245106855167753857208140996853471693735941253721967111938754198770119129798481960653228310503614207127923037919932483158483060112287949152545500584552862220591162717509375923870813403037038958151196046489642426011798549537180481777099153908599642414826738783752746027070583716047222256610231151169276783088193937582966553993759335134788658640043340462629893741359744363441092380169027194719934697875992296039476418717068499829025753079374618822707928706726523397283751239480371382693218499548146199306802891432095724968637100938471591476707206306302752153878528046425089145510983534040991620621699263471030027590141768375755357161020078276767428870005000327994178913986854592294993123791244682127965597440549220258664506375159082520266101046981273245891477715562280522480532395073962925143893013644772541519799257543974687411090500293240637336059826017390297433864456555412581302554232060065870306003626317155350144428152344654465218116928947723853180952375659763869592523119083387044637405586332969465624439149553981320599413182465756311897403894028156984677593369573502581829447505379991756749924779538546275688487540189163661098758531181919864882564097474765589579646007262554619719507050090546775385422445032513971206821425185937557303451847695618749790679696575139031377645624891595149182758731085178964499292424134466941995601994001811035221801750380990678492818408451330103684530323304885322322326719269121010732342526117717088045224117138140561405461051296006168775100509072776122264365940484937203586465978450485886054024129492773976334373887775198151900224951424794241367011388401406464669312329746486966111521199233143942198346491576008380983856373895654201629416603700030522634917918427721790939158371339206642368604891260429896194958831725988440945321906306241492951606445297235911894301193722385396177942842927107718150407826466918743670509789683037067687559873438392847161222248243062600052112696201571407359552156357347516901621941107602884909344112967199120887388815013597733422317712361139325333174621510308249819072121206128593277502756019496249210132415013756046169954028336660261536345081770832604131877850153053344799218366194766824411501026267093116601247584420408907533227909360238059675277388251963343106681153142004506255569137114174889215481745689306698797863567542430893609137293924648134038156144437578767007065528670338189704732247886359401467125155234553947356392154471625467846226685404847142819310842359547805717730220815672614300895901276449951687255249486786631019210009941456936720171677590484592135727334140056642217117094106833319125110556543927106158543759015149503248067011953411318425343843108120201002066668829517615227894470377441867711359915562419201338171897025341848687867248336285403278850264930463637211306739045478524693065321636193846192779336485866718201452917228909228210746469715554142700011262190492581212481654026287393111280401733717368308698008817584407798638704439751294946310586271783160346180469174344684354129031572558104464193385948000635499925252840490124752009468967497317815392915465355376324250939750682083542464633125499239323289658934578149257863343833472739222995194474525840802574317664968014739168699676886196158366526701891213832295414968048173179747577701920246421140167153319551084156177879704054512430398041427607692792661146827731569989110836199367760493931226311772914871836556746818423248955749505764809764202387383745504250991680935269838257775995502271015527088165846280084550626683009689323357068261981684786488215728621003188593579679517256075165488805342934382250084153870484724089452906913446254954636106635363599241197807840647075235242438287161045550652438236537865851502082254248417902013249593142612129308359262186926572732026479226360311364858450028824278136577969488669250760653644415685735946597269435973784408911136422222392908984243744525960282105034571436715955810769736637743575204787060407456445016523909114615710126565970220681733922560516740190324129423751793317891305254071749934080210804121458645267684015251999281157804696847303988362994132982130242555073829139210357863318995845397305440740046283886602186631223851107509650432881808166303390652005831895113936236955775533260294392137527442665854288828894700144464091942686958067881193897518557736208012235865216803918238869239895685994391939040052105387604757605040409697551452713087158864865629856840106274222209822367514694511825413860795887387195218224112460949250509558248388347065006321056352109766741397631417378040699190206119342670180913054306458385499543075111172490181426107293352999427443545935065174104487434065621771117424072611730392893185284871577639884657534361283877104363241227429909077189193553827751020813734234774898936595883479543158300769133155141661261803549895683192031363991560863304091847200659456343717771782366460577851467682331710794016494170571413664013260833850627108713595146840121967170205222668107585195174519134087421559205544364907531203858963411912079771830080480604389871291700655255722573716972815616665882476590899308091203320772327614095327728614724853757481200419793112413586996087339546025394043937667940660030274005520121709790117849462505221759281137178309411046044209739473370860557660219478818624958246159520037098377964499749431868847644626146405777224184470711579972188444696237000355167152843008598996722513799652772388111795257371885351097753860706954355096189418195927655277008471384310675292450300394241566555712251777522125382586864756250279860396273110508908204597322692938127029532026445272005391908493758167355084332485108972240553705408463642877302581993923759256995320634661859272871223035415027229307893429842536996228657498307042615985344714976184915925769194641166436212547944217713620555165583670750864308298134321086813488659417479579358610332723886908848761195592977569555299874820124070388930072404312111337379152432511928252199864087828140559511436076609949368442765696713379481401832389721351685259112668192633690973288364209240159316255319512341679435775448597574426271250064648129849633388547153553474604686196492214476187372926073861709262238905169473941183052956928454421271327508367253036905589710949997033304973344029246841906501298367440431921093540343875042620845412332970139646047506123493214360166465308656066493392979727423716109079917225513818308805638884587828230501918691782281797581094173539032934557774731817476878902882564665370588110032938912740852932754665908671838491875110868437654315116672067197143053554624410829967556547201080149848272510930707555811813839104583350792346252128902284390995379760449345065685421187041083155188352849318748278339105185211948287235777387472214236590130092761409184759344028131402141956142588053420165515438908662201535114804392133873878822295568403780851526204233547251521975870762760026539652725408718935445889993500106203817747659072454598249289305248123019279318815106550552375340827556050874854496367136905583882359283366192987720268349354265954060688782235328018333954074690087045859600888315240356628385712575216312729310892551034228176152765778417986904545342692871575283723220223283970225818437761217130550468728972762458353799200606499330452905478169706757262513605788331184707339884130549268352314307621630398981563872102355272929582484596779342770135135932540849820161516108129374772396751439135226040200575347994418077594459013112875126793485708723214435387861622806476216254448588874465123092409550967238722600974396221105987848836102299341748787891629911048111719929779198118459966634815905634199612319038105551496350344622682558795026930988467261988090148261116026549123407292841703970518911622702871389258145521264247216986148563112527950651553563794625123063574795955468608825018351224307963498569849884267101805563654235653994105183567974608786478551150316278318110033147926625399160210682248398064264689339792836693452691353808590767914911162994726890063941470467100498075116065889591455528609390863692142484765118429639096214631227465964301452002491871753545783333416681628730571227075464658760204252523876543286766222406284351778034681148511704120251416900401035167522603766901869494875828659586250422775587176906400713594839154194494061157069565557244724662264476717185940373270482512354204992212687242066395190771089260887542934551175222914232700897398582540892392775066834158571849608849301996235054784868996835953702321827576454358521180462401251893461590286751503747572719811971991401740036672652969447463979668621951738227816363165915159880194910765724627550147996556243620654513402157132688712756990794790089014441601922742870439533725794781394802836655024551446064070269326519141932463805254776335870227407061867830916433991666877584204197098831209085068112970271693741000046675591534941078655801909356922096133851226430399588106646270286051411381623388124981209900975890438487330710273914048994170738745143585662401104223876884393334009865318235776351360801671592866856190592675642607186685817184157646219934775356409068570892273640467396661383241838215223613778062325775737743761313157831806972515259808132114957063172579896813504220841536855163765192784497861605189680429823246576909585768512423093424617840616791859533689165134695096996406768828569919286158745281319333322628523361574554748968837088293898098139201028375341392613625573492310317217894273883420178981909271497531659303599674133642732219481549365569631625104621766711976922100092518678668114844217109775632108622100607451666852693773991571966803972782881189213339534614554532712461414631450206151205270855909015731665291145065833310424718623553620062851870246641037926605802650526528148421451051306947759037016485514819583403280242013412054471319360529217883561581365277845487767784382817951868138023787215314893667361835229088219388966501755455876731493373318856745436900029656180508469099377981471141299976458941327297876659045059446401890705413325233648687270192884182119418510610339816880977869154284406037271173432799649826115030860725530360332629279322223358588667816080498205405096293351262567295843623389135784249477513115568650017543983312328440101772165510762415309997996694373596126141359596144703944989630765780206886059679420850100212315797245768727191957578030594139991884199580021011372093036543319484654195059553227425891237756170483603146704592976887170744883982633236032798211065391119108871838963971038548658458870184684624176255391953768799588822684891723022272752727647861767807908573130090092596721995218786235926419049851104284819944837497457888025101237239543708937781904812950425886769926613814032217053917559980869914058588044198659707986029517908118298378874637940921195586166146905550258529265032359423665533429288375680081981155490517081591599715272940618960735067987680901809793215926452213736895536954172972979904823243349317876720524130623083821671550188117668646271295030820275028558324452671700588784343514258782661900054758002907843299355330543031275048249206755371735174580140033576910788324106968216716809690032276796931536064503097759981740677032964972503653689389461033971813669751987107095833062437177970349317233312518471255974536029754836034021192455140593891547262389565757977451197980051496436602111715358214967590011995106371232615180601643319754530128570597440880768109861988323861576199494365730345903374604836362265227038761531712322748375276954667124594499977571499148385368392917781777053121861584987613126248469361702817086983878850359167836024039020480569924640477696456089056660437004573519627490377769113425847683960318985480127842465988690000431394603509694156706968349641361044227303948805512333625204331852765821459674526604664673809420457772226367135805390143071236683700724736047762425610186752043226843336754672083559033966404838407092382378802144321600891572998075354878572958116002569834527859576977242089553849717157988863463421006066990044417652221913530446235711181440380112753461247457241934255120823737555208277841345741156778218477131845449018723261628916825703508899907762927312220771051635257006541108891369785105833230057884292487987023868925202754021488261925184677591473375963805732142364355953694212793817131855261673709364197270111065190166177664949303023536507101481979059063521742045483194966444877774552779813417981197208493946151542963773024312617291557012255652662438748499388898026027043446443615745009466112832889528130192683104420329301364959554502082215446210750387421627635826583349415586536405577738221517953482361019871380563834549066977593031102266373915749292568757301952000875271545344207792548067060773727422128540853154161913023219226911517067281969376565988782566060776341682433077684287604751123543007761818533281741498657108871105901674333764111939320522748911395111097041552013938855838991899001875456760247762390104769716159722254368470204211080960461368495752307386434270607952074710040656836697461328153434628986748069293719227909347647744026857323595052115812929405523031625232919204800356568725007550079243383938679697725496131982045084862714018051163964680376158666447148339318453870139223010513505977312822756687125536257733100055280812292859182763918013773874371012509079385878287564574416934212510994465662120162315047774801855318051931699610727394846849111762740846514948950629693778864225779916979643939252468300157927614082353676586759669199272829646954344458087746838498070217786744795486008261569726637926803701142621203317167726078300597039825019074153099066811441134032534142257844881787461668893339683747284199855815726837037538276286069179091621775990794262536061383064585947653401961559012788841036880358152861555014748478535121623957112797576658077990908286327022387854354974721949885666083521793836619343587481207255743761824035221487997676308347430073042871369976588875126761987774906332423353515529436237604930226535742218544559513595673054344034300858806654867675271669648742944116403036511696739605976778407877106478622567355183688512689688631010755675739838066214458837721471179957862658309141711077651070820301110450847567163716234884625765939409000143679627462790596791234618738758952400193583412821377045321907656461793946371552710815901748544922418880018379084296097597588993717014331282275160771184081735018423359840063217470935057589967214097202456590123702933827534216640365892560547073743548800757659973960196648399151922031365233712334041509464963121034477640366132551730137493079565919624702646778563422443620166386472215797117908876039000655037917119750985770572587661521280942897165814484798435445744622574848712947187311781014452708156740101020432633103310891395516826379105813072619119387586423555015194940649934285324524264436799670457294306312415748594387852068404885038072863300475130697008237602789333673283088913450489413317299022438456535874530810352672945361177961557969827253823871560219244145784868765581977738859680007070688583428412360600769871784432259102893067362273700300366257913534202127111128947189965344608703051388656448373011807657464246938361645500462283723740127492636586118303245136490670510676249790795516150837680253287669173563205478899251685715703517155954788823935467317485919241589585555532492790207160950554280458700751074741416697114280287463984573036117168215344041299285967217326722589809618022102778244559195444009820566731348976304346398537181760836041854460299968299162153899756041638618414247245458812996866596121666001831426261439008332882123426091052311570845573392762528861387252623697850615581867410965405655636925875739439339852798587353085429168221292469996434995367301684947380964679307990932659941213727581005039123975504733438420744721822068917372047380399969149779736556101191202380489991348928909040876166498337833970477338009057014209244765060676017159081642971392762386756152650963630880393733828522269004542282901790593298365273625861726262317677311587283892178348514634668527625129282290795799860798199355891420708807651421551037832789514936274062502890143931943623683166373766520163407950390694781563567141255757381970618260165124305352777356531195801956272359697408289480330683411537921439373258260903675054387262468099334617695759078673723064409891592440285694153029362222886995623535382501476214244396564338905594387507189223407740672989127955971779028128695124049347528286899781169501743300509017204616184789003328813101799636770422322679253474720451732878032098525668358246063239103010743683589918791043624281962116491468547974222966147139309167545610842742715599548059610447110344027705878764282402299169205246594896640576237035019404895765395870515099360775147301671447981520320273314162339971025263603919020461037200440898441815288565404040607074822917106337382904722521952981060874164919787032490954810119827249999592995272335907859266537184679323957779681507553405354248493088916399883362588595444460161264237897387882436972472602187068348778888837432174731049213978846755010687063029372244506330829354165536677480485486304051314061202060595177283821467682358097966042516755915111177227218893248456515972255470717648159763133461297469105746956062287040911812941958658909068213820095690124716799639416186048024531809854866170952783013785181094588284232828505212805102707249464099024290196941533107894023852335647350779799755187719859809211420309831037967826920098517841867877434239859099344339736632660602030835784262523882257512361576985823235992635875939726737100097060202148430966570053658731273699616434001954754433150113217088791564937683187713408839830780202460053816871811345949844963343622685039363046698041474364665574385351388928762430532973357377982520676827022360062917468448954186512874284601324272795254245255521506502672184684369519158343660633924481001941892979965607171229013780093373130373141925688302121161350775289320342702631971439699221872978498548349405895783835547451885692776447722104278334403782323794388597835289978198363573057016127840168798609276514279339698024179720159509287056226104492525187574283158825709308347136106622608108073858343909585252546953959498577207215831830859383840659689796523427338736185947752362166134506739481160050902884802460798797880560544456725733425621232391475833240311929273211386494871558226775156366712088201490297351527390036494299432465243828766302085574652510510901270404927821342986206065664313272101209235921205583089241102391568796334734968304960002970271058697012557323296386817027305706915597134645317590299067019480139888298527047788772471745981817492953275549286720000081595523694719250005157383545324437378375960191105724035459446800392835453530215573588235053581725999504419583026603689921203594958536763794588965870955175613346802659822173139302111153020357672455899567572010348374668880624495318160806764349232484989565663392868118465452558323339656117673954258049656261857589359744033566463128467791276142671556973202006380267222042748863034261206110630047954225600904727985993317367265601021054318010459292884661866307752184184525496680869328718677415044990335257974065724420877220857858980221269788857665822689471928516351799622252325793846282490726452606400706699130595631091942609654374251320967771663445092099062730447204206773893214484273714867092813047705047723365800754234323136171759123340895545288701588225480785810328604886223675618198106182962227612026554006240789785806692756749437218799795451775713352485609118604125513747591305365870121198206440747280096827411883133534494233587705315827924969301377479346749780962793324892196363543769935489167185283551573741646245766855606902429098350426186982279745240727282900775289616403762546975419490494822077826301049614752270517388273073391514623801994921286268130775308360504420779282838704578017541493431406879889872100242528454542770692850105242805275656004189210276096444020527778556182800931310959087472111384853179861598883188949563132983686202683678730803249443816366222051295479356091874732672477268104361262370603440027950543010087440284312002628413784689075137192030476805365660347598030512605018317599742782481638198063900085806530882823245692660391467495220723356298233605746636806429963569668607265532151805340304886811803693649706638910992490640907607044902118252727958583330056678388869523388983799501302922859931568732980212159977982923762094039550502478841543862139773638113542277979161909627005018611557237544821861188512612981759635305441257835230151274595828177590427063681630627937216337179175915083330878439117610666005453523373086450331879489419890825852478427240807526747417243246369452915397235204738493910246306037598095445208192602635666684970577460197412046037766239929391445915910878084006636639010615708733612335476216576033011617028431252513161255284871513125996396915948270151813277997029401507534150866877398626872536015131983102459863392544489238519668348951592998596905667850804954651021553528595412428740187597117983093691495574977914118093683754145861300011149973048574658218548888378974595816388170098023368095480537690676209799768482857709065362343856491515212952814094075543523698753221118906549062328759859434725482567210933864470923262110401714675039908392909401222764930170287582037751055290490120383786795287068320984989083213368177329196346215263073930353369252288625897897676745096494415454427949048580339804947718215055214238816469676393062191876502924855917297075865635445350133663857205644697417412256322257670368984241900579316046327232274129898612063553309682247062372365017023169260327582789270165235821882988679455930311407626021547263812503256007806154267987340571540055351800125036965523441436351682566360979731306915806665021718138665486090059319169656969966486654196240375747533039206232916716277834749117706155384747312301421343241035977632098907190724122224831571845018636633260855636412836666072565266786967963249936062807156921013656943605250767835729363447025947856122942745747966875043988296984437333764733836352480593692518707391019510308752005071026632925505539420881719351514395656270349683959654501495081265254335369091780674845094912429449403406783475811609984149920500758229183072679579590094177510189011166029523451303094150131858616594205603801216480868591746258639928819881058737760742838368158039588384172021518568476280166303236112419960257298518740712707891295877155030838931358574932538945474742985693287182340588274759015384590773140393973392932657602221124081241852642748599792582049947748594367756732944430264528438086916362613671843995414033748345135521268791075658434212723792767100268234541610733641504789962517419700095317188686708670419583455511144712911059722136021920431117121419545088793512246029614328113233473690765163777455212601730481746554869122678250757979727144754662805958198909109829293573012915357999661170848475096700876128586019468560648864692338545246816801840852561907120974240196985668409775750482083406539001780629916786334509906330298198139452750138182604793673285441033155786225377480793436178266013744056069198831108441777034512497152307118846972658866273424480982268158909394414126930868275036444667263949009227365571820618201346323339171750757919629520387381635253353163958309379269994822327430875167653106216234689560955319905365967550990433279666550715356724525043155703329048488748272743444167141975314684436846766419462506365484517380561082704478592109110428061209086041411294904038820105319602274579308287623066143496924394166351989994671941513584846879943656513623454669174865537976010757820082636070973154993222624716568461613093172382296036417926159115529961865953239318301582513431221766433947331002605111322302435454510666272888599498644701690696230787035015294779177512957332598078764271136735609420626824430577331832597311771747683358940523537321797548901622100387462054125374253704922237623348706894716620980675757556670416596414610220630403229050690317263484036004422193853588725893622333717326815680082200597809778343700109962807065698190549440909654397427146116177638934334351974405561875661165004417491746331247150789933489800786489488001991574401708008771904874292421186960773393350293239810719857847268070965665322573614707600222037797975324986995293700835911762467595019253345045355104327199769504628835480166389907936863789556283094547375248576494623926256236476213861914011021572835747125290063234303031663344133139216763084249216381326418682446063163836385028081441583350168800743253081950201275552336680655992550153882072977989255717056287077310967595486459482263636091685777925671452210124087628412114783288795030729726143834502196375984344415175222332894721970240954502804793396410732989637120235099911004415220579091409436475484346014957560819907292969835403892619873692513159564590783596104485090096781468041155649046519127980017022461434821552311771651021588624567310528643287648415062003379539404448807322994274903186282504114884119968893552124936494950346346791199647085088226714531125408584224967372606150066003901747300830501868510208516024883885983715964300903835542260754904831801438886215740592012668870527763824725618093142821889921826676864171230116236700371667194715152289855658058124481750073983810581907583773952745849255328257731597788726085214235166805385169945910534967244871873283217476068260070909640600977023753977997448606224922269864651082275680367711848591483915482776600020315694549668359508859028153099713138660138998125855499376634815815009145223922595814119729154102316489441226148366955510903757553112627836311535149565204680719793085929279904827261390164604889501491963134447603065924051341649657642357396779391480520692831328619394873156439191421847631304371227486478010844694662030975039549557408237736710469091551944851535945440685487954003470941550408340296487101183066549055670173503031620007964537232751427755509130704417650103831159135347708296397637618360415679516465320705416213751451406515689624344009206789107868058306196505732200947479007869253815844250398054389825342251290860423756064668432537008698049835977097982278317081230688063056202626693272795854874843724516966512600788293438223166354319048407079560250606468081058362189826631647471496168408939173758244878609059208782278736730912393925549618255338511630486621375761377693114414986328801131300269968791475627446351358874588559781848967005388608323408066705301651796666155024144718352570231295355431009284883706455972337385242705478157966419188204598261567280925803229697902619214822179723497932152559636652676656231535881980913446156705207150883902900066980140940540602703289296305064265998194350152981281979305623931809176677725064877082959078386537464369009135089376392939228770395645893571363085728448967552251390975748219014138376520076800394533411716094680720681563364585242288933162852370039195141964744832587727389798227717707374589207110159746334089396821983765405159803055560007330339617458257928083039074259803636246060241068050184788035179124049783560534541852507360445435184842154726734304449778651984059270649679915379045633207740298840535356796076306187400117820187128634674313598221234496041796025764052110192941490817221830944865411417887385550284853693906199693081064573537083452461965597438466810069208378910724633396743926660081491868912773085592677173518631451242065764670105583224601472357355633452248310992861326411526764390437879063719105111046079277259914222566409735783268944378261869560770643573764025090757979618262665997455765502213117055102498165846067114228383026617338380849529142762278393256053570173923574257992592637493882231323451121999687925223127355342944820477000639702116465500270425736878354598786620818450459152462283684340968255620839514689753717174083191104571910407609274815533550111429754116377145570019207984374051936183867745089146610383880393406620128913035827658205395345777161458627393026250621111816270718486408946201576367600583817065322156054841935568622650551850447093390231026555509042807493588557951611687754304542961058431122409457886831328835122783513869107586885749604549475055899573846695523093202345944050447987294847997074315389423812006955574069529663169832354028616587655902962195040152161706554363450248862954621607145303154704337861216768346878245312814037913460414899704202730731482419670210648932822100543955844515988940978387841020569351285370052453935717051351941017201030209011764234432829759168460315482663466071498563295026702182242772974857727946684413634406116329133934883332809432649125386224155093611889362938463953556077668807754431362533052656622033327003744898001892282721090826529934765627169586039331985716723825314104821285206080613493571590182204649438771977690807372282822611916814209396489640428765107784472735802175587143379952300216295003556523059059412589172986007428928680171882121424290615637412661432618491053702640279847644818111051490222107995885099189840573765004188270737399831168754661981120511780323125434772260134053874327736863435786199040035111356329161271212928056685466141851649015821002501340823903953301100630502171968689613454941992263638996377440610274585362959068135925012385970757872269381654017185049892877884149208800554103030064083830945966868469307219366394300949727955933096775098624028178456073652054176941015345283358875103485706361756815993122432106692598661525675548609770014393846756728929546868772428747526655363339590719882360034602021782966120326406861885046681122993215254821824326274156037919185062192360062552817996637108928033733590376171797558039358092202385953724193023045734362276782025477530705963809381753249144214529333915472123348640659219695033683574707426405426304876839006013589023761592728883379152021219002155778590671043996062487906227667094177188523396628219215123554755976984377468014788047395752124486848723579549225062444122128538863663644056761190545804746838086248422725527308046507825324331948058735599152546828504624588554848818201154603132469172024046907959702129020221695288121898846815639773838925946744066383179472311750028266552379524233139117489686336818098359493480597508594000013055780607177729355507274131639387652282533121117036289322458184555855353891848372984542157665815185019728223649641786318186099525170636869420094393488274607730873450734504209469190569280993796820914360723856162537875015072064946421438406847531130578329640883124154745807018917993498491849260543643125302305290122702366215034343536151340924557502302715813686127346630331670076575591273627788483731498409757468325102013727342256300739916283813454918331429313953441865391908487907598662103542728798695565441909037974220232845062328022856810211205507515525019296892736065498070041006010893182908368008272835170482411167447964840708179838122012016207848453306252557184501343890163699915129645582994083848459836390280444450426933322550798580217709113227433733269366110950186311050349301260412075530593780713253030421586084369918805054207325584959376043131070795874737584863599769712676971004204604857016747992827548144195261438937316129978155457589098096705445206795073312460474363655514380387041166195941757976526621809358292476126614469465596053810430164302135894752060899984653358430977038569627615782836962831633344539586445475022951165094460416537221163900690555723125783341947192168480100061065522481810602427742735665478869407566684080632102279553276115815326879174081375400941339587099616050924746333556887070596667977814542359507570242822826325147599364017662376868728344324997759131597466160390985670966191678069933235811192561535498675844247370314720370971854168728056290953460526244799613677385674204574765981863731637590034472938470238470797195644257652367727326496690505511443200591482267700078000626105416479829667056455852181097881852025385159365162795591315415458313023678371452957292432203248889561849110304674779532000027612815008171555645813096623574966110242262568607177223758070835547498943477489914695428812322740501961216597903169460317469375231245040340509395521686525919659237523800700062988594869812475394124097842802303045819267766028397795134518014760215900814831932049958873568141095131577112524494136515434802075427198814722242384821015824529134025518380429872469766840759255061705487700415616323902773203578061359089813867438502692915308726175491882639693025791389893915007785317614945869388855710199328835830875206530827340107887561661514973638507774393438405725200408819598999771437357705088124588106415050207350913096155533718896251608012871533382981609432331853150559019067634761490081984745832499896174920811635004405195520716035844415867376852752647331376391736175158227680383315325696262394767908822245783097623708207046663616878720043953925046211013046512094079176603893788832849233659915396666752220459550953339328003461255226910555440560628591041800461625154635726034350593490654372838217784825289659078575913363990429412348887154675321788048031132063049083079326263484447567858839436151813365743793128144790155821554630512641446949046776243474137984129749005617831016982386680014051289246879255542444789574428520536177688171492898441637502475323636693598592980146521326828322098435524076675462959544342899345387370485954354645848775198876642859141143097516496658466984035939168623071712140984472144977284281854563878238304213040815046366337587709130147805069388510173168123157761742296609355267796823332077795781396845176107990775367922053983351515734406900402500670613901037611320099321135551806014522232459577581318396403742614529642973405088807933440881020840919218385125627274449180989891280098985463899542290273723370230944760090944324349768943978863062635743998410942120076631145459834103910776337702504697472982616716911995421038690983023381063721756200575589033312270289941386688451468893745535283331088080106167568114898335924160148580438660697111810026781629443960791955776808336246557139896673211188282210358242545363588892776636366796731816250349187713423927383561164685709544096049620371626910231028969272727377098784690014160266767816452487592411665708488442252106203416990470574631769963507360273470650877268832133144125293649835728429340527684395409994347894513070974798554784935196027257283395444907469792479143097141623541848376020600295605765156697816420111410893403584712219908616910697129642585837019049917364073470929841271141991213607195542398597387846442300438823454272694636086998340513507403999896850644021605370680722368789198072412271164969682923031244840962336211265878037266147406912904112243898143956567866799924469816468549202409957885769695666951723432921819789240963245807942934743562640634274989671950086862537173145791180871442506683758665280492203143503471585133047117449044650018004576023280287481145470858648342333244802601296919920325834052543406785597345112304455500491927729221429617786818493677630328051652901830897497367307479409020109576419671106184880614490393886073484513020826715566382179475158514688145459986047103809922746779999650767552101897899188497604970912559987457579238669970678359414439900042769558057322911218781536734439904942654129126275303380582075548810058468281203678051143616638448009556892407417613451574921558672823562088640292633500224843393337074579214163551795562200437855224213474631523059500157251021556204884730636294627712386952568248395985348379521916285407249782632466727014975676078470784030877791531859026377085334892954992231226685916032567873130985704937147972121735165151341046958747691865490788170869874037863849866739148829675503867819848164777762075764225605122796307992781491656613595886949107851836892952433872211331047180054346803893668012498747803512006507468495537910003578923866513142786270203660997108688765886405398453741941833606092285951400455911879416141939511574950913781995474565792236467459886373691857623544853279071809426427725469173745699309695160052556743309699562008812554336168684670354311790069384586822637988666646803035213840852026202040609997603342849895340832322355630923104514325375459116671202551789533850255373077177385252939213304243727848683563252741403710164255396489948223149605063453853877823062711139168385417634479221070450918838645507664467840381036511248655139980261088007045914072302118566753760866905977661777969468477157392147390475802437681785633612148328587157200497030581900787209453906512181281715296726651875211810331039671151120705002745713395880130757360191490859540598774797867991266819616908983721796150682202267472795555328059264194811157144650843266625515492411576340729399212423000314823624500040022319315653713207560189744638695970249756150406067188680954102070375785933654457750153627533991086291405146736160570683787094774353020679482934841593997502485879127653789396464784172988590949869427063796950685189168222152228569196139013633685665875099828196063684420373433792449548358384455826171590597351036041318200271709895330352719716996195581852274429412732152805638790955399346372611891697020415440197459834857645646344011489269976410720200314033261906453879954739334906010968944972593083875879044416904335257450115643169593944665870296904674451065110650648784619447910259048197296437273375422247583719657353019568017131518015410511431998384684198252033699600423256214752002413325243975356299869538207838972032803137306876923584955361916413261530249559571689626505405168923886379983836742660780068104136606563752832487716764299239703933513693741968337495876221911970035683826908695905664969567966840011235891020657557616776650706375908658192235437728493619744372922816263532502109262708082766372785796826047169657338997740774936709602510367701251549364510465153072818706808333643913201281781230195454582219217897251974095461818586899706680511398507615174884272974577960576633824316866711582385938331543960563130286840499310134317419517713732037944097194329756621718022205237890741016236000497085202357335801243807163215110551532328822354178681488929767431525850552243402178065889458380612943006914345710551227579311038689215860465319035579922712371938942397467736208988209056548878864555514218737836197749553378952164427483921186935901100689768756378530572609382665423657133191511589717037800389713470573905591428781010944385085235160972919573975216826810289545633312233223975395872886916073113743515950761984792472507125233163847671270290540884130856768095985079057639012041937854062349787275583696492346370850220277191166727904380073243608763091897062381320494733769700652200869469520729746457673254122445727676416580735415283243494873577480075979089200471341738909216407193221366333183197726297952232084797272685981046451581331129364026192163435366218644296019951953665003354578196297903648284753952872735667092411939117452210729796323301670114426084862334625909781392730647814804764934887951438772450160726641169574747137614406835696808154667110196999183487105121199602341001055250031695043300481738210377401376364024123915907086865344936282759106356421414645494167829768295133739236263293732292925841160747589633567623083607135967033592069529108200515889626075734986709592582858926949142772124437015753916717363304461925726733345963786356909928714018155499962262412389537248937878240544473004699282885521000784650578109943618876249308617065357175684345267503403298895149610715142437411690669886355162638385859746454066507327722073482640571417749709678762912358534844991101680595236674458256545430123230832135804181308769187984177095631304767112442482290282294428110746823077047436787391336450387331637363506503368335834865137906461697684399736173802380392512352505982894687202789001634857190077585069919266601206408110584430940114887223111398826319783746702102096372919306414656392312184847031807009259990963741478421742714452446881637088186024667325076709477189504153370344896342825453964940057057375854989825665401603107084215474417765892204691851115355199654746838370914394874944902821510615203202017317766619682303921134021875203684144780509161826661162580711593355263152475883352016861656429812052976691342996416613961154190894215628905296925917596367009542719625535549790680313449914018259387117866023717387749968778180014399376369878159099808241696328955224396346883317543216219646080563381717430818036155182054391328498652082689531086934548671944721973686352926562703890826510402921883786852051038413021941897102823525308672238526096614003361468541179020115136718669367822822245233799151519072643592388713626954344668378995723412617744721109569280595350164268789748068868122180309899070528298261263008057762001299081804253953261085828811570058626570780675680059568210206253409601085741728412160994742935264021238769827503066478288958634626351061926037651963109454249566707264940080556258386315213348872855922727795317155310568271000807068975634341366688744193023953926967217583400800772721912650772863785340843546276086493924667859942450497772258510351762171465963432327082951810081710345115510565181075481260239081169461791679798426799445505730708693665767293744272826816719286974784520686791636882872161473149403411818030807490693214984355471036397638401719185917466084146967830232124710453428747486288622317748638379172657015684531669539650551982045691221012014767984642013679356151943766128980613141664730269779168907128739837615877411210374828589965899430812958229321440988464802229297175839720785394263116718750305228791798199905292944280878981745947773953324685096790653354905772200188025426822188237676620178610857301653835789734304542623174419564110669357344467468491328403601377566093232502393936355972897488111624600665681233335945857643920910505994525538643131304477353986106552540771521366064943628819363696224917615374395146273209238717433749373650591676335422515152270053017963465620520144323337995565480187593452987505602102380000486358552630358987908595455080571936221808589871290409321592323396463133941353418875542721433864471115749835372354691217245664978860769548207699046484245140901642826854163516568297280930589399714215934741845020251936255304357607416237482326287824268198790170913101493042441958621582907026561708554936873523487197381859369870396125272934892677198603132444650855669938973180956622012414887833392225857297412976061659211271367712756876862864149316584453726809670051417021186827259203908024104188080662287666532799307416495866800806489319450047391573301993014285552600105474008672736994090314995638756320069546014161274668942952730932205503755761367381689740607179847994453022720600574743361057458705745904324408205453284432140349200727900484734763266625952992216473889967000556847226531159565734701268939343259729167921064579496500600518959630388024363601319035702125377591709985021507175578483966390120416930735356077642311982164432679618830230892369395121537014278875849506567499935676951738220943647986555237362220285927923108709956294442038676598228564112326780857024807998234760881442468667201775620660257816280111306051348242641764665970305586049997970598916465172534564001379110438711304390395268698585641098031748415665522561760398275327440622140908218270785441335621146274922290223953014295653408484552044569876880661411428420984533886463239654293104430284923105521142447546374320916964139261302222628818435153971530127364583994716477256152643964019380032317187487329005535996340642667595456049223930982319443423626096738371636459316258021225061616004913624383956609856558275498873079880414563312827436957522148023357812813037423758724539391392521885191316209653639258145347621246884867283897192838185795796774626994966278716477373701731931022753240320381107284873097798009672590945149082815535488561325948193547664309303046371336884101429960069207003619033718500741805824880458615003926026999049559787023420805151521252472857960965477549209845655782502967554514325616948056447823606386995243003571595551407457762000447659126011798945892996507916318279020659408114769772557016410595960133629836066501114917187293488117727056534625282507267788099770256296512171395510253814130153029436871161000101753056828875904087397480171886880078471407756622727408836310242531803596090009837401796491851063889110840429847747014306353102628882222719624355743344637115448951779889869114117504198297348148175867278372855037051341632961175609968635370618064599803094469407148981439356318714932723366443435303803154524764011089142688861016288825481903680131777084569639837857550736036106429009807596664695600555241316123267683544045695428553156222727157815464127241731416383185418985484777376048079483141227167570837817814841185347917843221941533612920979786524829882729844302544960255008706562669225512346630486453412525328764523570277754809809430852583715754101790258251573737102475031951515883851033430900355444837208278091258543703100467827208004791575460529159292030591784095733241527223368569366683886239452011676666832386289159589092666041212364355029259675247101056723001213648990893466746910734264594256270426089150850095091434414506450565690171789215050673774378461434868610840258297728716936157816443801765912748638090968988856958826788015803670858638450185078192335281826120094282954669582180374122689329088603702917228647057556714536011459253150456966182044339579503414534463652717284798516533332179161850009043867025900432842727694712971796453601899607801889436924128815551171173230488980824815981626948269527255007539898028319155319671121440447086929927378526930513537840611103392640473727782377848172277171465245013903620454823266086941655845993217508400388875503653983703855721471043498044697609777886427403769560999097882975300275172290540574190520102081369980374271363941642707555077202304134807748201308700778194986247643268323380978315543114445929993807148394924794299707464435394333116190443418173999552438705611373488370722875352444626616223251420431845777132954466134219832908101916456154820895679701482870988483321994663101539960667965258899402014241864163023555845431709549645112298396443941517388714803868295317950966164502450968186225167507157139493644873067762862685891572389646018155914392125731172564781466520572013247691528759365845578214948584076665800215546964616555331914580707259519743073283715244519967356681455534809100362791077854213731482174501565749278939585965474741826367750185863433832652616123070979935878427831397143204579230911285993941663846026043914950596600726980957906328904722216534982810973278758680903678593034413311416496546152508616607977811175241390024060891317576067164408511918306389231794850429338175289032429718513934724804977146952037234595083360527954481967141138834966639950223096431062443214353284030421983442540775122794975890645580110246726751255268664162339821275386411510741064252309405288149402966663933670683955452549135100359544991860941868009867282773496334757116324642720708273884083985099415962758496288809860090058101885966130181467316594729564151059168985399576212290473701578428814399135258925583406439462428028706447733375625771295244126321889403485183497581102955636867248767285268481380301436952416713838991362103192344415202127795904737637167001415672668708909696521698137860776123711394173052872812265957216911676024578538389558904612910630338321315547266348223255026271162264282096067825321546389654367554268881284294731568517576297179190900639180849472423581568202328817302164466915934625299520816273146400551480489072736414324716941053377381961144637472120267200890792343967454222852656265975980035466063756200382653584991154389654440822275610747864970843575510376493013830981728484996863759565709285589388711681510879208674058500973338375280144638435320168631554473058899252052882890963788803472632200397313065517697011407165349026247156112080618809674749367766837118795554039152162722534716812438806337513626314532586382344761198393934722404441232953411105766160249464964362370903654524091400003756599483820905053647901183019074382489396894933378350806361068811471790766848636466170082759725926715183173713163629631151911182160408675065069283352316973204506266032105271943418393326762725115362383003138034207173214396013688693868592486280406676787882196851582763072767222975594334977259071037682606170835234891072951759875278492354406422082685887189352116007390171460063785351701426344276499758055154473855955451404197052051808948782264329529801246498927014547348624406809837860358339704446955786957698041270668296705132615114041152180829908060678877238738605721553655900965892325750897554132873879521980456397945829067101454401245592829662956287027088065964451885277223764946749860821140987427434084745730185748731453291749119528442821782562188431140527110274566357461029689881611125509044717806997242551540437338241963389727941420532361831280469044310245794848377530568370891256070810902277712265615977514037661764778189450207594902022163900575587769884794458858663303952872654201633407501496263926715481088338236360262795740826660526853739692933695260498561623759419129392498922087680800315231846197994434697326672754116420174954960011313507222999942754777339564732335560341263850293419815360363351367014105446464270866937945104725913072035753595346299636145036573290373856821811426768283648664852159767444268078441378631081012077904025288994902969188766789441656841118361961889103679350699848309031891366808511747157370342678165742950376171757800036824839196700153522688237264937628088720807431844019167716023976342605788322295506503378545935360651488530156218730244545860557639826292464362211987792204314669044148592563748289962474986651194180199841133310992499319187647115254462978932350500434279979854572385047164621801319084164742848389783269221080877573839988271621290655628691962447027722823868247386228322991469865539369800166099817400606093128567183288875835186221935925057540054110247145895180267740684600726475577587123099774565072259516978353536323727269453051153374736145662461801424366795431419807707051937859907056635502983425197883331599008178349375619392336323258073934838792491973100661636231486470234766335259366190773025361801964909751144934001061422358352855300947504589238063977072878841862521995687096524187914221598787427479829632355122767937242192596032003604342784440306124772757540755705907393638845427018425472068425883100920896846297286328049377420294991801227455891472507519101917330422009076583774730733197742126113405048987086371558469318104917852238892387771841733247184549636179376380468620724355255320398684430892141954436639787861848811160813902497709145152524686486741082488211765944480933241108873381315040649394231509102417190536236591087652164489912449286160479491232567933204883416864628747825216529473669777726606938343671259725453764259634639370318143340228058004997470078700419363812791673720461246080467993883767759201896500884744797946238147636083143533965049082632207878652944545348802542881080316727570648193823332418278342817218261943251147444694900765217191389337286339756919108849906582521034107122991922194486597777075177174993785166981263090792300070985862110487308930210897358124349546036054797988048155493919641180379294134055760527252376853062534889630565780303726334879524303766654059962729111370102895703017874202566176833826447151748904470726119811170173920429475687923048217911441997876068860643010867028119740707047109104447610020989096228900745915844911822222309479957553354425215112634707444670035271262627878091817335998659444776560666619528882823644927472607610097787395637389206991163347027032235711091966148149004835993039868545476497672432247046656793745583430831068408169182736196180637402841916992442196152098982222975204464398832259427656074110643929908452027000190454050883253251371898403501668277494641722773810069893825232069734812190658442235503037467235927154491021320189644749583232366550242797833941777860867299594396147276398923056635708694956923136698157257734555077078983988980207908045788980542829792318886500132683732964506196864949229783168059698202995085303883550899720973961280246687626683466381768098567268790749542512668970136726072469948937906612437675947987558779328278782800352390596753761046044893171036505363833542092293809162087608090412169292535787158127771786462640845630471387888100102362030771069500877345417080067846902690538363499861441704388057908032513885342766782172679252741376958158251365496951495456734818372857824402430564915710541577261497622771903089232237839837293378021363617676594583658884805686981108010747223438570610186154018259484153222966038586047338729466209698363781544618019973513320478045599092337585587389804709405967896835884321232481056502321628507135137103041543768068938512489710964028603030059565597052984734685382825695797790769903524531246695044328810035021538524924982290104657480779392248063004288232433268474253294761571295524969333594168799615414792311138341916691064828021042119086655101506091225160706805157631141938210371141211365322403545556376038371172667648071935710939953819507735545228569632458776638249855537475093290177312504898508501635725287664792326057715674134284207264060697794571872993415261601009376964925611857007999499162870697481923284894688146039782811891195168708730965717954161574277476063935889655114506080816465651588109786424139339883571607699999564915003368965973597706274064602372712017408631998374763414697265176661886456331083810452779097067050490627225445213795828037693590197122326067853936680682883556827691758483696807700977042974202141700614472773175209248109025451574091521465189465978204708603832457792627441878319258594976858589020805216969699109958763428206908236137382586469919258989264207369551624018424341611490793726728380743297803919821116668506467274681614096377665734757200232974361694435684978267946555706693808577093106623647188332958071979796095282629967355504192356384591819487353559638447595023373339900390691391487409585136792539087992417862372021776859663226229844504483793778751036999121162634444985610489777090618062862890063152829758976095364824172616700051678195837387992700797698022052245127401684619743804592374233888954264518553495884737817459063301260823660755480080175660862412249389934908187608946445624431584033377703976979627191031197783164571998827539479576412513521524891831507003739624621224118421123960987772152514698366445815209318759324933144228300612954159938667550406422123340358030073026360413231132775733341048954416692649144617352795164402449797290412984151839981059295433846804627627177763170548702918414561979773886289429275830321223338325386846573500009973339638563658953040790033809220434408907580102660928495207858917047193826144605009407846705620871311106778586602815437915486012862432984573909131889312019881861130008794206405072626890301045241035103703178326169306047566071749165320129441466909581376590901916288073441187971980753167393805709717016734886923168057181619677820324536812440902330970381649440911221994494420666075918832218822719866206864701069774390414052671283495009077931444064547781829840120633282491729482007175021618791566007196975514006694453224010731061994292078272655875872267775787111043108905228744568156338195883208242799359106029002872517120234537617699147773876789173183242043962896704510264116641036705899442117171295138892371980809725710852856649975791666136317003153066834547791125300903106250628813508253422378514703799873521923216929546024243391983168104288528749307996263663841878701956320772375291179795106684544829549605007152209003000717649602495045515027576586295516165145429979265645638351554565771968540617405763364298467685814622155586014831345821865227318845868819555265354531036833014466701362179758976355292361376870108903900392154913857390515442610822239494091953205789143014738767706815057376402196563437030192373825968779240225757181657107670549733927378728991391788125713233413358139327265391068356061298274338027085264189935993350151854329193604508250241098888678367612053501105753495715219949244360864788851866989726367190656134473299051617735728394959088432162754569006987624553481129307788127957960333107721808052133391464645429398382434194744015994456250212950902261569742924902758035607304785367057162516156982903634998547091951831697539951589992171978001065948106205357572964198626629998406578212996578255803561051064916628118344280059218305047131161165040919204376887726102142904476062449839304796773437402470771001551820633329162403165440224801804858266059288703390682573769806686348477646351816884328410557129987602764440731882223523868510477819424010107439794456157930828712399441983768039790450814584089622639894259294044559210826834211138065457270032993916492938954616941473332787804865232407964359298760850043091990253882671975974764377126521105583250560065053504253711688090179602012824846762889723748888428499984249078282367006178276631013244515658899055663962922275599986951096957484691230548596355112564408974812647599962020459258307934960246852827996147382774425698922416238025015504348085599621903974532480374979910261928973467899994481558205773692641943855599830465143239752554520040552708939955946950718208366881364265185726204461062645585249303415365568115638726219573299803047862987876724758191373594674547720453463799379165975272168302159649174933916681687949775459253454060527736680260532210110008908209643156482109261151990635802218285234618557820514936446910003714122302405049202122934267836139823962319522497755954533838750148845678926091413076842895325806071013348093466709394431748260497929113517278957373863533830592608587609134726544856054291477568741958084690475471760989529563469244056696156618240976076181419236138358555416816114690636659036101226458688306247503357528319067666428917243704082054001333744470427914019255237444563595629833056311236456466652377419189626628241082687898556031545444095130843388685364927241741359988203872102744874787889881639329188848506691189109377326740397999345451804129360401020855342078069603930734131097202881817722971104000973843310748661248657232493129253737386923217622267741288651540018179557444679344892739813014264769091482051892824610874081083888611232425187700991421535600020174100059610457120454693054401388108092422321706303856021082696731820059427553580995817591433392404869207809459638509091587010337827302510967282765007287031163263197090184289633972996750254195773221528661904438372693565856636981504550466869279602364810821972526335435441211708667991142895915436335652367702841763358312406383191482952463041676828434370187621980535013033414092255138959527810856659847666705363031751252352900234852853043173386232884499307360311046271789009209338801659681713632835850965657577053577616681635276189971340785086268809033612710805375537844735263311008099003705161008517127519295427119703032023117198575005948502839751856971475235466615398928641060438934378142054718775198435927492269292851278056453252460236999977109504156188190182273822919143940907197887820348396645852718065669146095712973882014194763272676729873147231513834404444984270592963356377160462924669327124805416158388032122606633693154089912954490528203895555754456133887349407936581720372997930825497577874783608596182763744516213507869793301097399407536598262181459647498468472270326818542736439362456196705363008217166167716955787225742538329285885538756711313432315662562827746130118973035246006049003442057441379245771813810142901885183063945784039452536242469739204848676433801819900501557456463130512047020842956599998753693239477721243118593085539320738077584215976317608844546475365985011652530477204329771934771399651588722693642331994105828140780954924891914097802410122771011145846099183880001221437952047960751838266929421738666525215624511469143065959331811847367868543103548239340392999809233108386397538986764585271088311235402627778168072112360184317503261324174452191519327101467715911226571526314418369343864002142513342180333511992932922016348846299202391768579551118891969299774010495914504955200450123471783770552728053745769136207049059561503368807869673473602968350436734734764132519266371856236115755391913896115047300175373388758793233233625746263903212261980781311177454703672947820636314896660884203200812565935525412726415662070056977741859177575124776315777161305618965901017977085396169516503579218579401174804321433975921353089075941193735807456618261778695096772689439541041491184080753330731743159005636973319449847420397757435860229749569184430237116622448282463693915706479954308460306002123717606448363240069227400258683483216184283681823108505451330616244962659277406418972976152555317725922188066727615915878152228620034297332427255093736385167852979182287818429463138638500839968319869712493590485475033239065266232912506329291742258856424692155886332470398505344568749227471744998767509811096902059181211541501322916863356014245372493012618456673604905256764222899487390201907443130047919304443946167367439410630292024404033220757638446296493186518124055469808446066062125893778152698809053366232708948616752023426447667166799377234038637339836230951463630530490369280374924497855835294915010088116014410893424622320714395749636318523407685497217170847852843422689277665116169772686170498254968187604755475249233817261837223321718530593556050671656655797926142643918049777421430162523859574969071172015794259964774975315647332570626285332195104152805051532837095023777026135455345439658562514912093782130270687959722725244374038138270174276945791251831043050320572331408838996511854025246395950748419127629662690313819189522381262291257837354753470929625817362404989595113838543426287221248119591094731062466634045687148636552639024677555843333099601719420296289940549075646219627402255737363971772873684262649591736013957459189215375161542736129819818852283827403372822827059078590982528106990721901210765436291374553441601636548842974049439603173500942422556492173872395465343038906705226959609069977163466145610364630967230947726575791609748845288125175635268878489621773638951277238745532311160070925020586683991951636027082859288218381887822544818224182184073877196707717759700450464696561260596953487815171156987718450572719772758139804905765322701157996254605858194339850259587803867913814873287648521399784189819398292863653581133999332835653109411797380819219579446328026906018653985683199153065840803350283758018775180134566996121900071903487390282888547924879631074127595136426952714008199206969994426828755580433307100480659173103023756699134207604539320354787760344741518719411510127661070669926970922723180949302717792487105936508248176391320422583406533676192759536782866062669514766749096613894402258518994643394861882159427285428594445415975617828439076047909306653975647447744127537698386793365981653279405734030913871061123895801198657625182110353342963196752890169045241905522030535323233463873899130638823003238498990918078962803049879933560217601606277560242090709170116751331698241082186408256641038080519869070353777265397540081118973234553791804937943488215235141065071458946541990276284751396799459190447344992370820053849687267965988734928732945881624479574449185777048477912773267045721605328247739629864094249688809898570150719760508155605892566194804714823960894135200580496050804046399013000470089858312040610134047799925762784137892496417126884636742598355684501701135464399697212204432691496880716801638797872178708079998008609506551088163724272692841190296703937623387971387983175525304505050432113637360689390311999590417250712744390047325040550957420694775967642722224450870843131599519852929564143941591872572252997524156913154772698570005656245456884388530675230015943467310162706976227719863880224752600539000829903207641888104851950993000743908339184831470897683394243583966402568469734815082675279006363811904338621120704729104433328191323677914915331055348558091867386434862557880021292470433573139820620018855827064891677426299997133285136519467000413908958615073561309490666393064892818542015947513872310270858145756544413125210823163283593404899942646728247107852911066207144671775554990940097484679259061969470181403340021006075605354710685242273597527603270501880516583406133706938968773803350975630564693423198158384244568487982247437989117219666603032781652472988632014210275740185466580715987716045649003678899417963445207561873524362013232230712382716713908869852539535205453705496403072973659918497255938296327081042715595699512179578525911657627693934861107918337698035681598780861411871474629037829677808704499542578984325178433938142637961414604814171306400135635164460073206356035278384972210249437136837346895314197541145318865412465979515553475650283258649044142505248891917753491996775039350426026890826275532967906653121353688987107790165091376953866351831280819363448204395224037822793128687197547988009959120329703805950558401398765213777259398552729315956187604726712403302550698321364054857820756209730991189760342369296225271110270161512903117301880888956253922349025488197549401741073550656563722910440206219104587357976029731735722924294887385986104153116211368722610874641052641090919067168367607789640442257314304639521904364496523447051988172901396078162308017640043305064940876345325609134266307525521161648875097943378149436107691630539626198362677114855746094556666900521236838154787900240746535495757848778624369414441418296051246095806305463857595248133708268150469602840237103036581937666604331971266928155435450238061147622057802253256770743569070306683515003941285431177990723051791734435623453868469261179493834932698000671420363988250275906386833549376031194585835195179295721938097881962201526823341284910558317985259546950091068659479533555015653964489297466369700934176742763407266437042297233913373415276109713553375909218071737817161955281569952387593144728333664705909357506529907075797735772202748522968550243858481374732379047093534964580347614501220311251978215788192222590709695710182149831912316895583942333011698332263726427354497022805692474183204799832610940128232785800673919849149352926343656049020097497273563241380797145958796765665472711940355197550691855812448481669778514599812783967908969522132408931221590436610271811870416867685523470582413968001793392440205542777624436109785001423873357619043956298297142943215795263278334404475551627489530089599998877939433352549607345579253145203542937549203097277192827048077917694552490708454517872863386239653187488069962560977222255312393212667097918155589469568616856822579814618957186670905373732932812977998154574662839348972392953415719433531692392872774349299874054382938377652920091179907072541699924183068016284385594070314902223400563202774183822738477776501919865822379163113019158297632010087656766057827028037179035787582202448828366286693036623817651505734227522587457346917171661860605341305216378773268524854095030796987407526875842236275256974747089944833631743749027916762291321843763387839640433211801002591745998867897799063401556899521852777037374480792059987752538308641096968526304692634251320211061325540386099889535615835401080805048261659608933790120848848382320023294112172346935644394778589191354161191666486457251485257872262238240182132270177183015477639148631622953444175318630818429845524132718344241421591537973126198697974259190324269985739095647865731831466372860952830532781657042750368007909900662075029547406318231042460484429178057884125844848961108200920812030131403847539241668772200048264148733071928777643280857187625380359216081561758632684978621779668101303863013681652580879904229549680732866748132669725837544860810535484502888495300648938500446750687440729971650704288959175146505883300172678139971100344768282289956933980592829518774111426626753582920978884234446990160955259191150431700204803599187553199365252933284067278803383425248042814987178897755851728423128436580442689184151090200931243039871760916653344449658919375577786533317996028595522522352415544284769265615887771213832700641071628272254578849650016098984315628452831506529065336224101169995651269904682886898801001342186157392133386464696595534794739149086717169703985246015560104641220158920028796385130473029762891538357462663631974909974928969584343134722727518681905249226764833691128094767458655387985696145692949012508945943981761668846796867732161615942706317545221405317930685388133867174092672410399722488010544773553538038458742836633068852162159130373222450484327564993072404224127857153962958185195259275735073807668691328780711944548360811186807938468222205199116023767136333536675142982143327018083546426211143875703247538893356575030664777832594210899737260562182181564745582183259105947120193063711030898998639089370147863382653315627299315957239104481669916332042408225968139636932973714894681001114649046653484035170504582734432882007500851903038300206857634044103700355896720994348034440971458512659376890389766446405711852943515218097364391431122569316109043489102522630292377006675653642099498103786869220813955239135812735402843859984741122951822242520322841728569702108764723970433294460891283490780401653807421756555897840517204871429003852363774405341076708820888663705750010137304304958630382802963274603287820568357806909658226894534030730394846471185831564438366828211804154065014336840868714021432619278812952294337671993687512966095389256631809451838134313119249110714698599636730351929044377121679276000505027371520782508567632753823860140445136020019752366722359766866671899489297374581595201775711844293654516858958703367750580529420608857972359602503653136062967869403295092443520461789655577711047673859245535691262525505267589378932445680412126628811678390906449302781006362653233436597673403278439595118562607423498672120330779154180866028140992021934641797043036733841994192410793057196216692020782428788795565853109025419646533503282312972543459104921733255641576997210433818719618140994153242953508949791222281737444053601420437123472372701999769656371387692662504533182709489939375013776446542521832704589677374864362695135719030940692627801452792319566696168207414224644985902923286337730360624556893058180739157743295588476954543757868662271661241813971307682023888475065278753547325943656002342105572749849324923919129962764780540094485188757195877988245595058418406278478693316807532311675322282247750141913966437277229141012732639368138435805899657936465044847394221571737466097664121639504045495317920612201116691329070402718014814070798560522308069742202815070707283898274312747042879516720300529525542958292742764440201310924011963027603926940902221830557473114554181831006418984419961288252589155335610156175862544416457490900181919578433578452316901244157216934715605763482399464704344298464843530172766961729058892675978792022877039169695522037357109146190805286652182647340554567078325354930915205219426989700992531886388420840891720172068072746089142758056204884226563316213618731088855729228071736678994646341865155479365891543827081906515814950447896992094523839025556711089982716088975630481163238920729262255328896594397336384097633514523751550191593094762853042440327700171729808652080832862470656213657328607326644506565960469273899389285428853466788754020973401612731379910065095491033354583718828167739612535726002785724638857216566964647302054983408707462316712064050288253105655112341470963772204863712053168786601232992732561711228884436773908039342904586040508388945535560217261353274877762335957500032450511494441069265251883322850358420759249848048272649788945526842080473499780894492807708729709213152374756306185878348387687576600827098113930940361629422339627318203100052043452172414865499532550546213343913697947308359965229315698213448744051766205145753655792894392176365487188846811522730205584257301979012240772590905966821034593195408743208745043033530459333192259357359101705595995985132283010020958069839341940181314162410782441013354676783095609204036848134932218281475898669842681871346985020290837830665339446643494093091769137723144961761978645792941160704872956262224162331332868140966788564127046250807228948335995593517428150678571943457442307913909061650517128210391269760069344974614117049340975255239152637012357523942874666053535525482116781236479368819662288062455801905368360675641445749895182438004515399109988362372248727895123575495893337684006650428974623618103095562787316732633821091304544114851973824254293631661592327187863527320523191535109149200213983641537956705002641512701492289114174797011713536879548091038659021897714036854100690991496691277132744609829413869982292273899711730406127942752761434035779859344046081242883304641302359250557307486262501482256399391848234963213674922627445792648056956700820987204546073924213647299865476156793094648461027552006291491938091359826944312071748319489481803679571097525828285875456196941252389206201923074368444612042141316732173916596932340068611557690570649929989081767626620123853062289431163430944791385775094353767410671237983733767488367348652605209033762727128169367832722174716479129296112675775697352958587831524246857370096858684243359838611382407963197002764981354660555955341122785851552037942272234116327109644309599217866251559227440911796803845913022616600660734879172922752429009609611567133310207132937468195685185685650971605535968642494968189015222125532618255019187322966880715428508254072936296998196145709910879710290190083362359925239753393582548458344069248730224982031111031814543089430154860202682592895402072166910756341359309152077270123574219417145547219373771996776536067739260423056658551198940286426956310526384602028174172345536657571618514144391664566624010750926625888628272222909860104474539290714180014101246944322300322813242675580124677459256075911451140965946311180730828245386802612664294250423347836421485474456937843932413380923525534724365800652839017858455714137895979074655456855966196590696856985812906876422483715891929900302479670912209038796295375356061217257154012685325361125842683545776652886460817776593512480166384992470501668811127522990120739830837314405139113572222481499899883392857512914162657755676231639436590615889993354725514870633322938944589172749832212193131856632427503197751767454954089356428221305930744115614765252743707759367044735305808119233821376261329221660649258615795516245464577399210457556359857572014137641592141383160048582774791621299459518264642921278490731075872252137161715672647629339380090648208556930714391951544803924769599765492366444270265621722278250243339645681066418678198788800732036405123980226789920171747322247757390124044174647210541128719542460639088765864950067940214295066111322452883085199397270206373886371277029107552704631242902397926526996051452226382788696594450178285897399232569769928172948234394983396268227727676960389265219252570530761925778495794008487248510930507676568310523688105053940973152672101043188991068427746414723192122273974626357554511465212985663143306730318129530460294735213452742385480346719560390632981334341892952167879145783788974418752117670894183140215515227675710316432216126461375888175124225890588026803575938280636265407945199423786654660748868952544722842299893267599096210970587123412061630981656825895340421844962117609090555729752102433985179592016079041714390061763731465424201735868360179780920879243166952924402424088095608556107986089487474510574590999100030512868615443592447941897875428137815353113881822423898044530766663867945258369467636397395431659850818728059286733908707208956179674143069814561845468594092414348749787144769019116545722254524917378067238621540919198412367684224563039280759491127421526863770267446626425286741846862333357188583440321666438787203175937375251576206426581791966950820833942465750090449291733055980820076117302627255931157965739835674671405403736401903284386558719233057435005867420350231513409375670612377861016980288625662313284861292839012226217455691074712054147841253065004058487629558497018342616264230857251518279453635490512575986818831808398453605026681620817016094560811137070733318560413263872474213141096083123709633464522555711504171371371290533627854806182348290347060409477285872064566615949544265489246423825712370615360876653411869318585329569481137549262874921283478949198741247939866421587043077134901138664220652017478109466889110100199077483272438954708051137558659051410869377529975747620798231064261005610513584024881776652703279408023088466838284087059392672988117659358201206377039951989670646099638559044707039256876076221833620569715416312050425477540809486557015739919991290066264745763654911627220398490854199663187396779005935290105508548879298864270510442794965125401981953755029602007328819903276960457810287141082188631791016298484509439175231832107767822967205828337389482597065719291787075498501570537806751844635426949495694689885454472371580019153499584093634178527874182218168815636885835794646976219694013876211165463563878402307408101763548567689104181436556136795304354431503162296039132504967323952729767142623404182397524150889772431965109857397961772699587944511650410105419929701186722990354914643331253404749603321084346434363106122997526261863175999470978192501053191974608673955365079644988051489671022264163112053211536283472789844221724342592776826999819334112535763839416305471366050582600914696972838873902830025021736092408313160915428011708084280120753026169078220955693857843982921860684442328319123361948832116264975581890436502019508336609200190912838514215023989581328463292288541604453797118037566053426689225884091729721165483523901831790545454611636473467347625350027975027035619004115337727353748291575847221650258556415040653170752788261292222603355487450510170021348841896905037030990036471435483085649824005612969228001472204399014028142193051158523294613973972408229667515647852686983157960580285294495264554957779845403730129581670476709636970509677565127200045408279736994493647159284903311888550208306510559174540236463769811887057825164517383493386829765806360732038816830609781147189107827998895956774026685473098596792893333209151717745868418750908660820430995511688758745915175632493736496307889816339417538537536213942240663104200005663175054010899805673200147228400699536685174621505706542466107685513414735295333394680933452653127959928374345936249085402345774689140321922038995754449518818169138642735667242639160293711758270522227484780267743137944434953779200910184029565427088873303908541983097294854284854549529838124048962590758682909829134066076328517290579239217340784386567624437177546189880807196407496016857992375883503319875948026865616331136838951412778547203500053166705175821778448548668028022446000200228054085563057936353486206046209171876062657612950666081833725975962748728042420749703513836960992951871928843167593418061282727817146297439529296681817956509806297903737541176282517195938022523416062625908207831568116799771364584188280541391140980891813717185570776348884780287813016209942551072777997106552316463251526990234206524496370360944981698788083600437183426437073941611985978341973298699149986180772178005717196122325981252036238980899627768052148698802931352100183678387660172501446702027317299224710725719241375910666002678869042879032526762913422777143123925445748968019337818568432837517434293109152312868488530160979746309723367076912427975441376343625531772552387136067708551665860154016068546990397681823371929811167382237268650511716171577866304206429874815692786912313069177880673815884929394465725071005311635787444426870968613476129176136189449944086590844041712089551993762250854227229368838819170402002131919392401011725608194756552904823712811942540141958908235393070577272542901790769219656846115547217930555077467666463318698664846461547485288440901776525142273560366517970265519891597727542337824159015629314001370945204812727412357558280740242854928934261297468112660156071027251284934431946248608241808308292821797834998474653689781365439288454359828938609860137984289905822049164220248358343123433345518741641599123383716684023775272294688055565150086579119433578590083100294132405504986748011570129023385988406318749950221563237232739947531941372868889687714793868123655660507028730905906982607815204638129681187230835385947906271688389436933896865529380740623980863187886222875727690160615189620778434016904680261752292750194897267938987971565412128478295820924253366626585931032153837576602387608192543904354290083935585485572896185248815840596381296720710011101717572051289623043927703645872978647871299055617573267078906472817065336935490946548231048529218709369134926317551771256245321096061638804812605252489700586161015781971218111220978733486742540945195336048854031427219539727425022861145118198013380802046499688557162213957895877132219969241819483024776250413810561364195115867043011387485022485228616712389810870425016442231016422863335666269006067248352433724081526238483881030858337006903754518416152979823295207657402595402407038299391603666150899932109644827352551805862327697708327140595055303301800152050411812679139937394657205944653115581791746778867306117627227513502883897293378012747442764385888141013075729124160685290817772157734417570990029071192295525833702015825415880530133578793982754022434394100902738853969746016659105761271365041142789510915142350091358853032710228880398526631454446482249927551189630368156554837655063032550656103274251677068639396243261677567284866436815612825692606373341086044555059096890657926940955766981922687028682116370175472781150946983210830563880167619181923170532945632166308963980587966508071791798595085614879248847305127724219348110162675821524488922260298808835401453609139783612263373736410133744901618890091460891423283340167815428583645176982197113898718897393366541349246883467122257294874151769008344250970445707874409017740679200162583970433857561071755192437102648311470380493104365309140060955737687269888009754384028918785007520246270594706223998539485595264999160876714487969240407324009509759650544020846164441722071457970005751330245534806338261022875226729542820220506548234618972595472183464462434425448125778365771282321561291256887817811193360442636297662649722661850146193386645023337638351543093343521630076272009144001465785147280642598858486919270680717507061992241688345434361916229474209940496332202686711795636320064655687327628535973565603849349154804248612406819145650972370342001903934158539666449891031995575668401712418529529535787839983791284125417872179445807965753368695498627488885633859964123678050572202701085368620066639906785500866388544158249648417646409601723979247407681872511084279552189404730057178688257599922187499724134416566126563320119817407283841127500016476122859389511445555131259365848101241111852444305619480475936992481997853997599152055624220080232466612805769833807451829478099935813679427248013356641484086341280819090185014699318352281037993780441497462400589280413660085881309217512625534544657008923995097807733022663443595930252253960424228885423348719196620966048225046652894841712288991477183471012896352001359345162050885588533797187476924047990070981575693522801910168160778181668697720395452072105055764072819661777144908483859728275567380230645350107132400959536733007696275927652039457352818011712984614368644693937387255365794982698001210418318050993756557816006698841281560674766422033825770553625029247294568028278319734316382272896431802862307786643979300689954807974782388717221681112521951689990228641296675699137310873773811821964303760947152463130785678199036379005991560321114582477065875238289092509216642478434076178795252269352630474651340661421076320418210882699168730212399814974234529385787676330463812997461643492808329494517609882223257837017879177083943662861103051285659489064296083913734193784033070252810219015605786925129150943117633561677324637666115223333076005961471438851424351913963942904698043094427197396796580583173383079696130889249561643535749894594721765699423667675526823302290197368279001052073659680031067063222898303279623654942190629208352392320677600475010655683969519383961650556550852232207845201928509104804701297854323837605806093168977679111897290290504612480402325489151941382922509678273361095971226617825889868394709615665566541909629509960362887391358103589076698101354467179905215735287183094582322160299119599258797132955469705676233960428844847919742956779490771260505688189624761760866752989841492399337380437154330127190624322558886683908350035748415000483103833196084116308194180819831876527996544211806310625501069167191775787549615191948567428966131321454709820275518059998857795006677916805933946499350813168244549357521716622306957576970617742095326215239387521578352379766953525178654740610612330396032991710904231047921480181114544681661780311215274692007069289499074620257164029447919012032113914933782016339326326453351118718618149623573702869611500606217363703331458895898181891718972348521657396868434279302743495795197770676239432525680579012737732630524784950641725542259916924696196261887323538356071076618011294151763148377271166803036468332430910711977499245167886026178667112353138493421735570320837499248037111294051469292451147582321453271668188873997189660024750743368938668908669017719954138073414223760505949415889451695566294577573317328936245461625701381858912780153967961346750410515157187339080987227994816772860317764643636574120207787991497468134898794099702537982617509695283707826319576791066676383419770548086193554222202114695794626792675903830446204152723797244134492086872572379472611283096177061689160099590684856545650512753581121883648272366595620741544178592387050248198595265268088526826120896318706738637286405856500590710052985377176025469503876428171513946912159359971924694285631833095516129004653757625606617197658657638522970778212131948375607148142886266231682576108454827622452354601745854909146710427181438361375401231847751333486337273834893078902410181753995347678277264909617161946096301699938650469770988820793272854406459186144168560349611185526784524957246438546637461172650301826521988821882648045278149570728432855581838372071666783651779262280090136657918620531216076072476528286903199560947561543929719008436250323442900915901569588800140934128292905511584300625044977684905267291405944683514701475075504014707762849155793566732202263790629695090219077840831428813393217492936785997054682230234601357775810274113167735562406761662013493037994842381213726113991101159097532707727490588521090400865730441340446936811641979322091421322046799345713357740374261623785169230061440558437208743769666112109728513020295030194068870313523761734323028810745264187159817300957579686307788056223997264796093800566510355834870040576417398942153792233721284888991595865062843830308363073625044039732297738763664371161056747016364611584892800608238442144406249278113966543407797137034712141008682307429390849668787964781721749410562826683832204239226740067562882817254955335870154082887516395245201076777305431387237731571668604574663452523495786519790866410437282546276784046493243934310519580248801405365732229311275207705022730492537230128425826078820468043320067288428956373099093545113234718368691861786237534202388483128611690311944703519714985684181339648170732339196752090501361032828141014567949094978294879740117017669120969507924782957361065687353355922594153931520482787065320180412157016301640969996983141648371865111914101262582235134455816172077804031029304280974619031661463455850387616794375660466164884037402546981711685493783459371182828003032514568389032277638581016115442410056440116665439603367587360581171619582640671584646633388129350866598795937076531592756935968848117060620629484819994904165406468673351375156368425544751599883642353987031549485914030470856819723943824589759048422751691008221780575752525617982002336190989920360803406055446995066088576669170816024523107060083826182636696716976235548989503211103353750927036172226002120413631124040720956311059437171000908217157293887803905018571393096053274606972025164042515595272967104931000017526983619450463564825723389677630027153030692389141423401122594646176960125663251277490678561114200046228686785916149754239612561407390671806618024201206734676179774865798794545696735442627368978925305966834789316059881945928915996787375128077226474458084157701445083774859476140739946134628044779937258125945077454749481116108187680172331112174543098719779687536495932115047699757536517034179578390119941411988858524975705621195884024378684472996162519029370520897295027818152652266654079908053392629902851958698188307532848190700471127327643034382972134563763643526325881829698094638037364895652714741400302715484051621982495507489539384048250315796928735440841995466613195968119629489999870001487673863850004735584589620609875001207955467820443103422010423243522457314936741507678068127015260723825420274781346837576451527213101814632595125095513393436478561462941103057402008096898386738853513021280012953268446010145889220810324621198447003335297031509214339793704867004945660992336931923711763542629413816990246898101637839245194546898091364376558386175798010227829391039408446545048399719680286655433694277632426191194618218249373275420302419383978408501440426142078070845849123950848597887599245291113347558376324459708196062358171577596986795973281116707693188566862906238814212474175541246748343631586621564841493770024801695630159207284763763022388135353053250930355104691605473280983520297496332186194821341720048610234453024854946975539014094534352759313416262330948057944944173310704816305187597679743906351933974124055224093735402030456521389908981205089587615440920202848850129022612733965790605541993608564608157272678306208221150783664153768673371532346696015301895676149288255992144612316152308855661654734552546656650889000967976543715269016997891834930122364672922138716907750018986725320418229277641690370717214846707831115872860158337129267888853864469077832887264775958313409427224798873248053062079800004837959244462722220141087071890815620109440535037563154795256120068177663649105650444800553902617586033523920412890324724705948449056807957457320422323275550416189182364973347903026880136119093170709922810697509276006132635432364503730511189597181096357125343756941997279641803228038202619030512734837063640451607341478528757028278410236324680278229907903682907647295310720440507452482880015647585360517962519216024820187602999372026227499207741060764605911115586654308135373122756756187838408196261410158295808613066911762302639281573505994386361081864521623629327129218244154413348117070373631357172432384561481756853889208294023844982441694163884578719745992474217290471356152631618077022801262536105502459610348425670708315579584879336580482459185371832166812350747352209794115499430984244999373870760870292061301200884333352820471238296055182261805578054508783792953723376268206065994755203720166704956636094399773815006136289322932267710276561712246248675794009477873914697516190659873019030163941931684035148139669773506044689011271115445772468006861363569336274786928045169264136538676855679438898902038242847163831039204366702273407556566066991447931862186817308754059776927306038558802759735144895013149534862146075986036738634596407972144782574985009183531913123985257732916658226165077236912604829807051187219722128999079624513539005627614019374156101892576310939977363848291791321502200353228140412352136190069941885817913602534047977243412431839539982315946321898027572455552280874682596655667348113581103333768211884848930105301499268211993483034831020576367475961084230471675082534735651518201946206961359934852783267720487007866678572364560226754202391109328260216515628646494295393975884569991817164010431063517267722190565307956988042949336775333836619084254109621644335414297748971569220704345993341691944923899898629985661342458210099795304183544865186738148630232505988590536584687349852801996904576030011585337943698977036472666555111382935351999008257779828793650578239957050165502837903851378018565858911194034408085912726126624627118513718273848544666569349072654530741730368614564703036907726417004986839873453483371500328654863045152435853532619599511152397450638465648614501439653161773537368978061242014368247743044487225083527880611940753870526553576303087198428380275022503660008484048130531228188013281848625079772612293882983182750628673533434100843749907340816965069974457845617807403329252354259629119927221765993312142032064319339708073093599687473758852221340209770589242161653967691836490071521755433559525647511086394401374954567721219876101695646457601430926151348009813976340582206541301418901521518183407654893850767153322507191266525080497643563167326500423592039689556534234552794204041973722188186675485983177858167343404841293226922611758209233111522669837179330810912347664463620015759157752140177872742488421462911960693239567467304386284654468135668827506683171108261754029279419166103987472691856862276240348961554489226047372186170162057504376164690209934505945312767934333467253612104125225853099415445990519678281387181677619472750294857191001827648793184506375557154143091454535568558364476946094286937044714678651809543139256376026393424181792489987944074197802145715117928838496346938500041199819601028310258489555281766013910721956283994913462775380040420294966762164509856138082381653519712749703449478690811600832154021257879038737829219583771380695009615420481247012477071082946081551970436496969731368932423339773189009775210744910808264701493790899435244446616419384705842212676157331972768315245239697936548098965969744659737761239991803111537406191205243806266286052245775823384597912012153909159756597561214411413449362470491420023380244316474413517661041052236256289940242577786631261472737740720664040451112751998242586018284399553137269020200256939922042091136702471206110861524306639498411461927307333821714349174812873471394518059720690297376486041247515626335060155761196245646740569697631839002164494276943879074796430536626991235436736507794466124962506326848151066175768732235201636082879565992992114839457791018290259131306852802042091807747840134003478096854123687486751584218553986932238301975180004568355225930861882828176893489818464849097273369698596332961628730426841889077043082011431364348967401303037056106272725878792509848714860559675447811117410460529103245288097016407931732485100468145531066899894750658124334060102821600352796016730705622032633892546299790022979157946929337729809975274356707062722093518438487824273153828266101104261595897095311978262266786478785079312646400695976021797686556254010148731953507280787305666078490322303572378929508588983751045289278494926838756463080487916556782895857173035794903964240331471417513927647647315213032831113861221281099373668001579851529927701702786573323057255936280598519451300895328333152518277528963167283617657746727181639995195022659453138980030175452057573730163827730797083422250696379526748220903209852780867095736824470506557565310496216640062330588309787884583151280515093565848966684247228901996815019394012971096516383384101465252423322216144230987773200306826997279816128688069282709808734113969843286657515596355205792505348379615741706658120014114976517290174932327405651831432465106463915933375727873572992853177589382414570589865130854680483353051289110951280866981046975289852484164844173385732860731019508592984020492211539435099555531823569324634267359310868696054147891167903933468924082063031010324412294645486918540256948715761779552801195504191854224785937009770704187702311342744173991320262970198812871577476919726454365573843484683242708724553722946546556514991912134503905049118275370922540637925264974818779900847413524359859813119647563212009830453724234981779772425338320145766624700903887275404721422995177597345012873709119795690152844713024684440129544119978658978424376752482610732319996118446751539066678723378671422568378491247782661542022409968368515247340825129269552829667257980658001139326110210003053315838285330533399808359660880959044284352382768908223337453702849114115900752671477510706388208988154541905877546101327090729972329587411534252412574198243352934798573538085816531429861425648868526749633853015005636299748506829696068147575784445088655700697345703033849280204377632382002408814032096069201701210213808580655713740211125523557240736218317094524476809807471761755856470772173953156934825224130967728090572918617569054505403766491421429130682929142317237284129255872739201029436083416256712163849392507960195913047021535159859044619515286516996933336813917284743335911860687053168212682830911779030435603655717974196886994684581055848078159521447969014730042079075574595611923915502990123940822047181531050719560860034030205677181624441824093826464090055972788447734311026986903744575891054102640185064416386570487709448432166003835537805878070329687031961638906069572033649887311346948614542705416227537107767986641592655759012278606914631254405458661554816597745973152501779579132092799639322996061117683876766490413329755707516494226092251222632068827697377288535892386951167965834133928416653458521456122500723721544224344562883698256201523310932372954655991663040584407340457169889233063566153966633031318687563417967646048456201299568781892249722180498103067986592816543064063668807220165598069162655127827107572576883781499833134613116400345674594936140256640416053938029028234868473990070909783116037345879961090370054214158364855577310491369138262208862309314177306191391228983053384111574190648209452577860410130688094618614670493849501523063455301903871913086367658721761395714658647295567851546476960297127591218785906382818199820780049782226101978571493889381807841948586719984412269002276371858171861864020550712030006588530483139514790043742265234241075220895621658457315738426148873325543125817013488753210799061829566185231593479090851926376985929816265570165026682358768652933299087054826989765063720555329046089783885740403828874348507342273552944838598319937726084801655127148467238344582813747841956730126685103632363791640459331189542719462628676558486033113107600678967740867845569775654355445642252096746266233146098823385757320335324512057057028574831449727789877543313610899610639767725139233107394519591437506919522959083366095545970212892263455012094834535294032069220976940832312048097171828372207524221151517536320350777719189320034081207198972259439983026887712833504008902467239847652101975122246105228654662316503823388829343062157771618076440893076848772252718625998865013583159856692617104129449297915819190298075264865984869687587113365572727247104029036660951573369526541470746988092175127628649938356040971791617531409668995858390425333597947956897524212043569341155007483948315155337663928388127792452641935836375428205904845258396829125468639638812821985689240234449240540918636906171301843653803885801109138805467084926835491746875152401472433249178667733215785875658275821693608084507113603075826061217389768384261508377806969758838702134830331202717087192412844195085480618655627328039087191272359971036302040927591141737261414786869662377898900863661149862113343461933808924947149976050727431189816001020703450057863544192878261388675389476486104477545006758285700307857770572778299074910474309019281328220674077854013240156691482028638603144397329386131135633017423347047955485308921772732815781511014952359490075782893681304353918741899105217061756293919752103319810923342640774148633341985452127238907096337027305502897399049409226784284259016693573437946873287605901148165057783282204593502567499195048183795599973461534031934196335249517553385453451154033539798132380902476860441816718806019615841561763883151434406873481218336720030963610811888685819898124509004199848876365593576425371925530844463160346609180318250993613386564625343769156143926081666027902979178743613461573924497580655120976242750193736075123781981696212350038329925829354486557049851574085512223541574879892288533394389401977558293649415247770921548284193938865736986615380850435547049215556364632762377951623573526784297895780589065029536661374956683878239555952161904721045307262454552015653465054857095055289191761687166075983362609540038826334763162038778616635212276054422839149788806893718676567964730336566451207842550377271013114548067865517013769995085119883759555904496163965698600941785848386971615463937564256540586252987140034310124992791986305623049417941409660015662678423569791244799505908930560784602357175256029890074727641566718129087498081882989073210158231171640315837586622203404579768726962592619233525377833595833407684624994972061080860561251751138944387249412106375492022669944756830564215200920085822563694473776114051462352481051559008872011822709424154566730130001929780593529676678725078766668375663195588821076665116929685887334663697300724936295421672946141320748589688327073417706846694267997255361613129654030971140978121254229806680723497624161915681276543125411602936671111594106248123357675395429268048362656223301667960939441487396097379062845511414481270067574733404245517170629768410139946506452352228627103394667944561234913369146507313256355206707217974757368328241029890051858481793047615340391536340854988167909030646753382345146648147802620581454560944862261487483810726762798503814721795637177484745531790961421594978608841180761109155072919365759441140160260427411104778523460697026355968425977006972483459437154487919232886863965369707765318453032419004836765899313060209757877932862624140456225336580848528859706255612233765041717586971703202721891048476400008217471284756215820425368893745163240041304405423026850017376992941027247275583669320949241112866847008712051890294080105368738178977124410423469574140800279784704155944097771196536676305086776169415684535100125378299000402844930754221862277030534986746209770220705507912742969984430727027364157306568465331115194699095892103682186501816270136482468729541075596656990851557642117007760721848899611824804900049308355946183273190714082734161377231277375832718732242077498861928721874042712175445943329165775091340199046776184185404644209530967602434293382886684930487873582326532348160532067622457083707204540150373425817338235176850906808080565806678479128555817551373992769460514952971387354281932539091739023870244891648033691711553945672741072727138467316477019663491924600161572749075011538171900503167595668157018251173764916907376394965782412257855305861778558830097496648366495209214998892031053691325367641842166478141074364794284281749936002228815048180531312835710556584532792224484273724705637292545912775453871028609110540523333196957864132986267834590531583489584112326132254237621490386917989832870765547601379302768810027249498336702927166093359072439638487888694201845305308043741938955887137907279205229156966209823370289712313337573238807131698151103223528191173759757702254105578140991539581510804803770662097680991960482941724918577768796032041782251403920456778870712670136366558089606867278981743799275585969059918397319697036075351551594560856543394960522563335953435577230218528412521545088480642731573478717735084992474627208263645894797236833074830779865255607618361341751447172163232503803157241129123510627219010598657939574211623477476783089565208970106975401489598868761122769758031199064670561750754917678926359023105826863346374555894783327667615824259215012581922722326752713367178132240701073721264386425199716284628388229073772023354202675802588454156374705419184229127461183577477265752863698842134463439698335382337757475517261390294856090010759021688469304972298095506535177068378017109173645626630279871209481432156572479292659983478483026050899220745661650696150804673601539784480710439191899288112009777263840568106030355080453231520644134562617847711827119784989078493866938951166670884999467387376261837424422100989169443445738213074914330052140246788863309202818651675918170001179454593709980230271986061012949999377043828934662360052058325743954476862296194372601301332271797273845505503998179780216220395841576742378755505213542115809370617307489012143175276729227502405407959764562527553030473080792385121886354519385525138500430155246297440857786802838863924052113329243521715986784540293247662351343792521080819111466122686430562544412557880749797642029080812215414784254639394872014638298587818662547349413639785969431902131172138882152079463761011739295735690921413544934454381678361592681696301315844100627121525641341582618535493018450690657290253726773121307213095143062578372724349765245843486743420926994913723303867677688016149638538236854285264098113232090684168574655185042057437229186476879192480571334370111915532821587002185673795500452969263363877430047728383697945018884884149538620796471958237003296311861982104782487439258664694240308337776272524171189151809597195091103064063313847037526780161786356372392765587546669854714471927057100501155507180330748813127497060922198124654048102914490513744564805441279933836086446645666327383330768091281154127392154880945188461961916431012393961427320154639313339239837732279337656811390656713398477233366983090787419811976428600802828775489339177859445217239820855173332962952244262443209461439813661073720089172609413874280529193081179173251339915013055311845919391441771182259851974750508527979008445137803013951148540240427684126887396334836262947194477568514837000648252036951461064377423460054333808059088509603495649511527299024742345498830107519771336537511765755867355653494097771412898203412570289375033577728195480720819120259744904224441106130089860571949683199054397460630515539840978256119690290848134560157263616501920907602684326806715329485200311616898407466262934253997701137953617407231293511494391554124051736288807303285082320473926559616195206933371051717313889404191144406413336322016810258437077996228574301908086437019751252265788446839304894034773479522493847265466327828945621440838682883546903223302465353650111159583620805629284924458041932616153740397450288962950155827010987110698094268330880931462311873457955679973075154542083936410688216743278188861464088650611102413739808339842048670371744254019212006520842663417821517814718140542045676001528083077852834811927360792254000876923713785389346507424591926677579840694645819715433251828558081040421792775409524195138364796902540090022884555593195965116783085311639648449174138578058112219739612741180765215657139221742744248510556728393467204206147439388283920813089176069149674148527818782314998514417525010247220975570544836162584272187916613852153197638473995171331504910824300952899917817199560891436653468746826730777533379406289102684089410897009365719587460734861582546858254633952705323203605581713373676333159076292619570714702789985107818777693390524130778186045947983312068936495449889904463512989912201217231532307531451401949342370567413872554684858677625046223807087151568512650091041861890140514074055099476367745466484754900298177737440049221906534884659844656050513254911910448415638658693376071608135470995896808736188898830071058193921988471080992598565475719599192235722186082359729034873897896636148818592007923423154590925046771152851100351626630738070315225169496969597411040646680320164490838788621309679901920240607737289696777525278039684750753631466890623115452095098797218327913504167296084237385618595595425402070786733553474697675498813423308011412999262812900759487103376845261728462659782661616018908925501169040015583348210889714027990150929230408971961762346239513586507298484894636739628733408672172490551745187814732916670317318039157708296701782183606966007561439169676886889521031266763566175983818639228643431930641278457742430227957012514819803366382532027755989181724618280832187478003867183138766264095821437952601944276847308958179098239668147995742895137843547757811919600488915805958865893566343229498650725894951829588774517395514744369204686404162827024929210587377897151419519211382989031438894274309068232626295085042864985555787044137567404415872134009333845589792269080998072014310606276273679084076740402540413655129657509621921104013027802940444163699782767049769644696942146592500645994900396194576532053848597531427065110614962484138200327410607968402304602442985559304382636926969482068310475634150641246804437370547652720916145487428728129105776504321887970683489407784304488851007184155781494521773758216271718957060692201507960499185617888150461823622662236765582878424971579909313941422910914370709241787226983185392469133085333602406657848387542161052235822998369163809708985662305286507713266741296579679540336033629205414545570371722984697673372220276699407095381325067711008187331786377968952292115125965206300227246264121204659514573597212072364748670551944443005920957451493008266484371748983907552873702519306644124514140440911384440078744620892445281397791255909539857349037140692915878804211491850863015771841279380806604021854398623372819405544326600387597408321925289273442639872243613483811939823026433105835276095500490817102547127315800488112912058564017120071214925309189888432641414971761411570954371890140117592084557457168555653830406581908842472997608045873413004309439646943547293557185646738621187681513791417022670070528978215138952151295143974081132120339370398597087826152879408208709070235573528671108653801901970765032451167933403037069319070830381570410186986855100102856823437081220558296560350437422203233137385677623257258951065827236622292389174663921244115675296256131471182901488120016924522123756858961538507375703753112379693632042211919536161167245550436560908232675042742543546484692048966937732414190611090788471260400994766934009488271499735734450072196516884987430544652940549690786487386500387250374989277317468009556888175319459778539875257948243412945421558673674836091094875315726051218880536117620850773882743466457534225464289241952030156383148540929850382660624828176224420889790242376003850802679198023893751946620850784499342068680640608479356233941137937594041976167163159319358907775590491515158669985869824396652364964289174480458253285553840444588790495523172799504578403802566281037109193940279399593557092967167038922833616813754216649680868034447252588474880853061956217028944313509246494107858742701635004702856588809098743508401966861748830336359382010167641286155905997909307749058201224365891851311387809002108374486850994515475231965964268967424306313950949324404227085825580553855850705493760615098875910722558826105662148964924652751429523462247293400252294004041253086852438462658740310151161654221911833083377611605283415452441453865813175651084684692602575910641170126046355512917475613691629045899362717599744024650422620085065973867719144308856161906796872912194631436080083889984887822872622105237792495922592404490532977290240188507052639007741883704507336753410488698020752569577044388440249655056207479437772322528931614382780837040522837705414901973480196438553795133072356932655418019063025220073625620368651770982082299345111697477249247197257955328558080077424381334865133651502804798502748928470002337421774735042908529166306152211240798455950957565382759559917967850241975637704203906287028284817364249342271740509458065178500410850126923434531071583480327406421506545541975683377308822040021287871952260552671133830514269209500457921585290781378864508059146751836313896670394787518366666669504421932271300909954791568013196975515631479265581251387162824057063491170929214441400587607623808485457375187526135015905516636546255473278273282835216534419956723711068810301214372205161693985825107724809016726435047486981037039760010844629703161843366683538189183920940142104228566594060147145835611189605422245846972354185646517174287118299916061276692275681879885404032919417107969510577022056792928580046747897671309003634023310411211246520478801454736189250708779637907369893623667248123913202519957437681823663872416356569243795730663702329634227771437945219205866286419575629201170217636810601495250356711612213568859188228140190947819172849068793077971321544599368685580314990611570328835488516081349863799212533546535652336099101314805281523040948006437257092774840124645614818580103408333794212270901960994626868784620549759349051904732195645021328542138486564076348669219340296778492876403041482596729640099872711751753609609307447462773478622125308140189989377060869328489775365149429474973852160907813372361885739299645663717354745417741421055007955068805788037768454212929063144825507276773726884719382995070135086872702092911679912028813966729491196885277762676250755773776741183064147070198954283419495138305302496954163108871972791560091303262378176293034516829031908490744682277198699289866760142076285690949717081919333861235983792212596070973297277583843716821678444460863314330882351427219798976086840533908339608231108947980843076119453852182434872428589603546071819439845022658975812002404986530965225509342690735467914871881406105298459536611803067828187604937224073859353204652238161023766129830152378749025438339514443464574230917981292056526777387064150641121823832406746335532032203830295900765410162864098594646824927591651908583063750877025984368692251546855403508498995700051705255644259596670267376357983497639565607397261862079306886991444028083984601673267882545874207304551816099962151946756239216684771949833664328969665973081214098052716410249278955933728511764067476833235171500427284551492821447139906340040275803180898700883698939816023755727049796113747166451803330421683398208457598194308800134557247672881855846500924708697215964068384841722632041358679291644984177288684909317899394661521383171801669588760906924604458839537410542421027649340021424015385645451656160131322325051683915228663649949999879952017280091467866524514938787637030361063556643673733850511932490714906601872310964161006110560632663182584418516193204357767661742868982012812857981402728698807901021868759782886044712900207571220999667032686602742941644844619242319474745579092793051306756210818123600028575297308651769334986867538942598370873144232737248785910556695714003677582806434654211157223022653340074560177614036530818732502002491217757136581544823835871276840955168511385799174359362442254073231513254363648400654938492915969767079046273202663683210452507196616787500982035744239653092138457538421050176814813661277183215420393721346444003349193238516269505305752810585872139315074706021936529383953847063063166793726404859167965946189132371671261229192347401559566834642316531144974757227131933047762319824767606704792719857032243707002005957049474767628703496128646963772457574408033242281409643640395325352113382388114853017713542348314444108860515179549298826777210054708035878466421919902263966357461636230790956586662469890284715949153596532288721392682340354388615119525223661773508815957962231579973203175311698853458920193942271824768718153819892876247277807134132504598130320438673495987947558473576299303597252229560977866850796397167080585889643413155094072569457522751279758279019933019931523315760977791600484039281668492244422895946556682966750559362402550040309758248938380800623499040079746708430160759703567990243091707887870696181959897317705072723674907612560985107061600876250447386572517839876058926041400741383125768916519264200652594449038364364523949083791161055048563718748988195382301429224791814307697495073393591126007584588683988192034247887776833580949910044208512644350625929212137960621191979755687118094166479168591364385853939164555773086573275892556180635953639499747927288811365462451447849941637498606576999355560129281367538005174483023139137342754895622170026612848825462300308804882265858238124359129515003537706688418429100758781745440097851547501211370345826377140821036597157493623153447801252227731114941948931175970089836298125618659406207825880127178958219183666738387031619935048312768982008185163197090635147857793134579324708037730409914748048724766014604082745534659947337370122359375977032545425958027008526621836772645129888620021720663616221924257350091367014446385994318660335056234875734523112016074034007176617084095896904424752739603161739990410681329182130002682045241137377900855452451875543511933174994148552771395361856793586048337166132054100783980239210640754783466023149216627553818236673518414789149626585038962382013336998087400713313594742593419983603793163348663999663222538668709659376661700663695601122410057478175959854971592884356617713496685222738808615757155093506320161475550528240564235983932901764732445225803347503090419676122190381700529969673585145226305478486298689739847801048685956802122063552985041319953020556781386300383339895677024492132629344540110685178866927353020719504341557904478575539838664198566260288904939417272724335704709626107213288651933600046327056065462253574982455751068153090945004381366740942887640053691046054390108986089040232380925732566661947511758561534503196516756546570692381700885847700443979844942558980218056243147308835075624691320511389654622133346214669898676558121909892562454404341962570743843770843942496810146521687379645331842727510991576761074687832315832827114106025074118173768189224252306542720448528581268148090013146390405325325204293896429244291106604658110914375488762429242901169618733760158164727806637409971137926918336005045545927424134321801536603576559166902494668390054764631703629235837343495486693055016646058690275525375400217140239959074461556130519817943403739188140600722255536482257111939894180512883920766561159967096777607688231010765536919718399187050084200572819414146797320621658666156971463633441937498522261655803057158622560436168807721817695796699036776049377247616947968945478325682950591652532643530696694287324577708517614652213206847112066669611405665933705128193364996087454216488766801719795991459285972962307199961860480898854737268529906229222740463993868858554301118156836610769344287816151759216804393547589768417038862589754550853318956795370960938186231321970298479707297466494173300112358070794417784615676437793026579835167189486478571495619304823283424034278432104522741803900892467611280930140193156473142429154876803174662532948542074623752311425730552600596331714033245820820950208943492030633772686406251022777867202884155591208045088633947400761244392533878866618310499994621534608662048056589917682794573018160991582017290102620500415737338114459881100617776768172676844233365920047845523327368997488550664716553558795175017455305814770415742921392460936638592220119674453344384036854267852454576515476004374170900974300787061814175259543157488883420176409123754969760628472813431028029312154884820427530185581581817143863597030809903462878174236724490251224147567718635683127383023947426847559385040937279701165433054560109905481276961758502220426784497928927063920507797734980106511035798362709284686881554238188950460969159123301509678544920440532247671651256324521386147461921872539258954408752552735954025115110258398848373877028750302279077007194799103022630539154158985921708620011440752514110984732243063667073476916875047810375913708371660366292105607669860536048296438932793746166879246713176497154929164941050095921986910404649590528537616037253335347175186817261698447971324238582061449854344185847127539675445498426346279781638875646004296835649813129062626331632403125720491005878155512555501096022851691685845355846710574111432504886010733827028733396583811744152376879584604141789783427223860568152631781277352460580943061662126880505271673596071425814198910044856304458342817417150140530739564430520714017320299046044452896762590015445758669128974244867888876062622949931735917516411753619360875890813128914587952913146507307903508418228372494708171276912433272602741151907260723675743891789625440796405313700670227650071730039324581137869402504318660224379437885636705025911595745228713906186258593075551520524315246656967070361858417807298456374995003350666725456387022340795623902981161891483551744145832551164029774653003752296981272222319163424207975725121087225119468708993533676102142791155324616682202431202085019672182996315314950253502520258676533678892139042091096396507750325976451287276529260011650762135754782470656987216654990254783295463366978513555874187226848892499299444778172449972194203425279261537259604111686009878731312699837686812639193245113262436739447978907287310396254635261406752816183173398067364149147660726803741742107854102716485033601826402656439013401971453910947357704209905281757611256493185706283729097722577084570551240636409245877047802702190861803234773212897038058930869837679330263230318784700312047175654533374490540451669955654222908828374303797448354856057225264156010208089033270183585212073296065250730985537929865520533403572495462903575813187500902462833674569957017281613226974568978476853249097038163784231310520031002555279197250601207729850922036949916768949330860162203839631234107466937418769897696046142739402549290131476548731861368140552164665608475273261850142782126567484120911300506522132967984079113670752478877541053708099646510822692904331234722509689766046475904724021531586711553419646735102268038926333405368962813434721869319655918470160127312749344511690207889560553737693783173752172100632433584113758239587296733051240015413455743951343720069074173720291219688030567759004918503836376679353215525307717268271990706800849071449950714290664506709654747589895419628279747922592673099596684294392563201108747200187040156875263805930080650859692872989311437000087626552649841063264355513598118000257432485852616719783372007266410663577589749052983280595397806406205626459973370166170055843388270943609255260567816103969532171239113266403720926183109258013776456138514149915445110363809770886786787220411978350299510840524054552034603252042708358475078544580544761804986121619882782729916631278323255874296460646726337745355674545941694334112768443210589619775170061736364686131679036548466146525098827376155669718897018858363505431634183990592681763565654582406926353018021961729199952762968657243603148057129378779651477682376778372227012905889825878970567858415986354074941811469861892613452175754275301613255774048712421925473519610197398836814586511100300398623562417300437180728286322712261146374838659670974109909468761924894929737209505380087699462682791853795957951921753990980657258767858008583548144904061261002490493685972183519975789998901624538779240423566073918137433345524366691006204058641942156432801812024962699514674459278715426353351648549226446177572335526613325892403138654455050252164577745237510352918330164251419895178606803964852733502247510805425554408083226031665946520106783395087071685920081818588452422642954521831959896237568527078048030836629355030744168207568786467687943190586158798176164022548057576413710593638069468495652748760373894715429660363827791004500895870331119998080195170263845305274146120071430742771094927082302678184232555445296784636305723760528272373362520887908901383116886312826152497563773526774207672933927804454248832663194795730046471362700974450718394722663797473478293053503268079484992570260719030288481870824602312511656477993633348663702826401396619085153370119493102466243319611847312735976182232315131810143465954959850638883563958504318553514012315520567619191061300271289506224070144263922989921160511128760669107380626730420614649672555365869316835506590318152414651964503333504920137023083074843835709383926329346554630249633072907171327443384295212139087797380441140704376079259560408944760810358894429360507147917019489502096315688784540201054650053592092939056902557987197452476208594294166568623117569138185660406760202083219068012273120453647428864360686530024038053851921747738268222933334778458480467194526290923659867720001867098307655663430881113058213359632856478700097609942076233244388366640602270028210064974735358713111894369017651131290383093697255968556665726095056950429087878233548348765811424905193318035401769987149555972009538955690987528038977790962478238321532517470775370652946758205584500031266695202319483479160957817871941130278018015129421760798287560460457667850559899846209905054605471450959183106767024799592282966838747368400694583367570845761211126966051383802253778765029003968891190981167558369093649469199955421356139213076944495540430904596768513399934300359024833346827419078051443886110047961449794040129453779288250895285798172139984427260985695218113667917672573911154160907296331606494459035335424813604663799176723735308353781897202343895748286690825823562359451869718844899277906125685071464551891978166786522574824727748155030878955576761775549393457158585503824799384061908985060961422742778863164951793474075846493886194375162903871655540137107013712537524506284236546596333731626592770333690567728462014449831734152456314488537247935074249114357282436844096517497767131968604583930035302999772676130517803654369271205027927496286246826920556260749896615848253768687576269325240112597099054726010808599563996856975982457712827416881300876526458447395474930324733568988647252864953892795717758347724656086384673251119480284959653633608636269008339159142197427054349910510605820295295321614412774998332113104627255005399056729446748876575934365418321519475951379606444533695573209747642846098540141040744298963744242977937446366210340580049779082777889907876041126086002240853583788794116245736699530744113509469695305817496316422193940868823180065808090771313925885641529454728373380647950240189911548219251530920499554402224672331842002687890036566221892641155140466279285045252621822469318820443962948327103341485601756566002562224295208702043914541130433980036858102991227667202228969981385385558485046958132056427779817865099520741790820271684273658230022316433826569167451402640475542774883836288511505730708486762939954320397682092578020180972826460896839465150782486958424075788354795846295709829640792834724968740701832369759745828937674369155083008188531966936981859517970725827457358035500597310540062104155269389415143223998799648286808651428326515062803136020382206414296774637668780675603788920199142430938557220577911201265917130152212953986119367092522871221918715862039555233109478297521652068552248456987843812596411614669017206537495544219554871757947342272555086623783486940558011224691214908726557431969186604509585518537806164299789395301299633928092459379483118394163268457557270474827874859716570975272380678162672158183064899881691881515289805876100215070485489711302531852387011456423123046223308075416422142375995874152929990017057669714790905977014045729040792240908062613941569694307509254705665363715027732273199975852670851665124114522498248301971722327193155834431929231036842452645824945903712380791796193859365786830523950353517563614165091321142420594284419999093790324059841572363379556273546764048635621319783774862034814485867045539503145147568563711786645381488622469940600329581452474673856573504220127132753073332653786730197172776211877234641265905205944679589119703503121772464706561082180366132908168582465397921081624781066024001040663998544701541115046659494048519678997965783795785195405467939602829290724842978350027838338295262019517888148319087215651574008467841686361941053391130308110387993700233866878319966295700990883151733205221636956540252198479971650791512765636929196331833314596121844480084595129991590643545697809755730408477392070133026080952353648373213977314118810632729926053422521995877953968750849137179920477075089225756530477086377399281699740198107737542033288582293283667462504078267302859988083329081366880368816760801713717963050829495261488793336134567270037296460071930453304607783172086099897755073123134870000278608685571194106764559426497876433705136278978675992863895634628948822638922660338590978574972452925132254814036418167812716654216205584819597205494183029688155477755594280956627050095020281969110767956429802535706201454829239438666538919709799199564081822655224226932885895594675449444102897609078508550689795019631498339320434507252765655388846081639510926019524407450953576189166735661857851496223437022562189797021141582149400776613716520351209123720717071744770889860715683351212708165777827529784694100888434868143970168177725185905605867142893754606769049752110616419476169795244003157755290126924683328885538259787366249973734859247350298539060164279747854874217878055836927484894985171230198002156561719791158029622505891061127035178074494523477871789910043256065222914646987492263469269213645524654498895930839168410860991243922468438378292830195685425574383816471452896356781844953063072691085496510859641647435661828267387071415624104789739918092666265925255000947297582829463702259677255791201833636463534499085495623431401784473386615265704636463482482798326822873565269323785115747015478218770546169094832755945236326967518282735677888551934260453768956048978994129265888576780039265821861337711632107019081924178026968117082667802936573619558157858617405617340206736318204421105610876759056212380772177453088815191189040508196331945410512655211365840728658883623536542115643419745285329257292686327747548872486751614146582107011745149202662018117444220811296556772606472002732249125897248219534794842416734183951441371500804345321990760569732464357101533990940124614094393455988617397311141510276039889471721131943308308471620655608323507124142659778243990997175007271710176365815505315800963364523176642113382411755130932288746509010923326041340525783748284054339362377690525720861839758672796828532951861835885872895009179252965931770412502971405850097081321536298815893787180488547879069110423604550188084752243231943677330263993372929752597657264082584446603138593090024476900152960335010266113066657492592424787209604543896466414738935763299806034427063519785337244923960868939196768764380990985697948401980941689361938738674061627939061656751713244724466915865753166936128238082378685907633331089813698155089989438587469387605306212591018151748647314891068666740889171024229347634680880949090655206741833365766651329729242478850813668196676819329788104839334762292334523025886841603530447472305163401593351524979914465407464471204826027541495723116652701323124215007230287546698638331056041995371371990464690256240026483676046665218113310854648936405083227440226727415971683001718253431048571763480518710134779203373249613502652244965698523974926999941892621154743824712359554112038887583339105711234997668736656247883835417673037794279417691480394396900846317867399855782084990445547291623349982190157684524248151678127193969956536463250758623936060947288942587866945180040084418268811786894730525192424165433146086184906044461955680944528903623038879357417793252061480937371772284039971216096985579284814772062169514930240328249443768694506216349985238979281289563206264869533730466984659299974789472315705801637383834926629182068119595457900724679038639288099057576395733123507817664005748697913473199454189716161054722049150171721936718306076124952155110372002965285735219984804460077257554230856906324040161413869272475002197434415911190316946898616530771405894860140984903909437585216777378855755820616324489948276087466282495959793349002880383252347399853188913169866013867484993388201931550057820684985688131474850196468477550537201837284926606663431454732628973026800156574848616875685846204999104005557682941659810715673483418662495357856428301869485021507606241849204642162435712123014610796737120220794560140212436011149851102665180685776790296736003312949986149757573250008723790148936652653147454260355692700826246320870932392042116506346866752547453405945357139744890195289114715955498770876601959353797300300116328659231644423325464810070634960378692198564181097374866100734269935040253096180060851587371458244352706663319762775611414027738540123302882523455007407771700869975115353619271343006888688282225616300110233182151207044490048409545309920045126520262649180630581146232371449032187146384151657629782019993394670613313732229042574475181898275491480060783203613120997846720734367926949575675432762204567052211400605335076289631859200226792519036248449911271322351505414127128341420861246301285835210886795262267178704774541008181847250436363909861507923993853466565159192252326528026075375594407970742174918182058494403328384495165248696487966104439749065763168218444115850471909955168970561416388737720932466547794765862783471115800002800070464792078940244512555358207739302996646097328336978507404703088979298910852768487338167048993483107062431477127660526224113590913953299156970411334101962703893847511536244520600383296694404020690762915702714536639826645433599745497074157365381298571761259061194683960800588889893570622786821596827053716756318486390707918931931148083667862962931433661691738883439887304646590013865998059379256884244341817373892708980484814728125659037873197333776927312850996266513680126255558416804330153330154005575947170456914540755465870735025738685104004917253739005832476740971937242927238828976886658216201661746852991691454695889286007040467999385606377649783760270813573274911531848732449847662725145836175167566207603707282403303065265533185774580435471476278791975940050566744054483354027660286539377126781932110905079728395434874993555887331460209255866181950939621579536905785661466321339072684620851312593794359009800801167178116206837623582108801966485377808903242660840644197493202783987691867230179353621380790132671160516681355819983058449966674215748578486558380431571483336451276699372644142041506802492011154033997334427909950632934119027212385804603295918912675427803276795071800447752713373742299642797733143637796149707883226960697485185692754417426604766298785940573369229408727943495744393780898913903966566484869260851333534594690196367407923743392251331470902770726050370333474168236926478419980867286974372054129787730509078280617089123255444136990767911264190280692227661305678486421095588503630603180134118384169121828518771617556782455831760495027747026758420924516754424205282099625455600425819798482780014227030371818777548482079917697365473904954623590185617362177807923138865003810738356102744715562213859035127245948792075001494743992402367481543725719339383453171144180609281247160717932853626412076821497383431811251426628371515294832506436018162468285482011279559886900008925310964980155990803149275067220587438159607486323739905940599388907111941965055131543457391230052587523108566996312947379331441639909862882489357462759494711893100777287000054197536181976837116013446552938751373802389096159621694945967930487478175571645593677269297457808931619611366049430983083523433293208602340783590074972296462136872964592941469337315052356488484064823047359778699295124927844644448674446401009741129333822910028038378502568375876046999549961090022092740378218158246152629804090272759182406418775950050657070259983332678196427063354312871479745483464648861536167721392309198449078655875562579186940955204818655465871885280123134876100993864117617429386878920644557692005583211171318367958766859902154938496905079486723355991093891460577124465595369369372716268012326253164196184513507108900612462456172652267725206829850258633332662394670763087760321193456910810973914374165156007297446984607061666152028172565716258903282282134245273911511511219836251846757595078891414586665717949154076278372186526378666155104185083807178813616862048441233570505293586610714416740769598117015217423032913683272166062895322308405589118620455181519522466057825333086957183186183313323939166755140107912750223581390486886809478081117905423277531250105657239695653847701084070661977494732796552971030705273084913534270693955140951560117604165472253960212014705462534387923036560336588502770075333852156137283867658382994941608167504371125626485601225489181426222573179974217276309148794586991779795838044701346518176796335667001717993116619227302630964257739995456200330737479751467300720040249234079746438240295065770406731514112736818937572675637652900044048961752502639135677346147263937124585301644935938682281839236970141612369785436783591632351806710188897142545380005089611887768076023275636804483233166817134513625144176113728453640536325233518302318132059344891240293667190828187687206263248695474371748888145594101429668817964631680685068027855260885832000828462746490458889598076002420783985554758539626617898168180432258355093649237194482914803032927561149377333834891111173105260231624822494899227706450661119504542946366852095797196596091348446942700694894033243005609940645481819562747354381314432704878332527098674554751884920312214319789162287560815547367670867041865828475540948766261548915788586193594409815443362022859776391743555951345725381489412812552054310536069152275482216405379445377339799393112943925402219696975612138638133460842409861903028607377668641077068441681504401204316168580880810108455461286812747915146666129858432397560592262728976313681450056647415237662815453400330589683549564971623206749507028098487049767438050369551400322066551846802196750432373292197077386353985168407899759369038579327804178467491990749673937328217745273510388253582646405757607064016684712950977485275311620501385759586655677580568765884690991737585892197713693737350155290011385401269962477014552681217501059174365394280139128015390076256001888277792219753940850747621603019561276393991623582895817882492914787445937092824124958145444944597950987440965864780976014898227593596770983042503577398845595927367855468078100260382077188403535538314676912612306247192346342380344797231817011708093528158437031657567022222078213690580894967055189749919339803291162164249551076449738773003518290761463926386995836994644423607716515003026819529105184201478478283276020013471650061218767794207797874399112112148030681838076209333370043245585990175554656398340096194764462485269084734394011779074487980834569276247641518367555933279786119408175385551536880121010732642525515901808370608353226173181272900846859715150684348071271967476786288230325246671476540323921609876173587299840317825977190248455560047966801552004464975067233915451196455539146250232299556202360096611345691252848385498489131432217906657445606426695712629398948510903780943174207435483195670712965744359078493241609645210724935404695631236527178360913637761756050255207583676848397343307650686416235263415779167251465294998935967675472137100158235274724051890744865763318070807349780064639480271484781799905525481940899368719428267161479003392662193864950858376745330593214984759320521621956692657842981041625006443496424747239992320844407378949063707054897616050614293548671859664341900152388658321320532119052902684455287930891064100735047645923901105506207506437051531997296956428053210231325598803712689139363513838455757263648033519862249831438418789941484851922149812288280754811696270405607321620376051601628144463315120610551495245583090308473842108403583915607244604061605361710741963819814361046768878039021192311517065543531328783870039867249271321343956923518502347887312359169685603921124550357302059785036041556287318035522446060938562238706205314155544234171100206268308623513036042052817200047400497935900222446337347084915412031094087241275006284334113647790756196749870329850950423559223051921608470164938798292719218110950662675584979281274413081928687308992577576995832614832900758242233069901698996999821545909489080930035370933813806868719102512069047347886627737245510811758986292736055342244519696330699175226846711030404877244863878235812031680400334991032846934519264689266071380026654907070900283354216617619600190455045584426031821203969747509780588325896403497600579792216826691456377538130755754207947087347031852369722650141865289495061298170565309626173773524700574990045142593636479782764487910886260601196938109735666533792057828139013206995686297815671567639171760117649870483649614390694519975619745613558540463964289983225108825489663074250848681847783626977561791564234549275362506742321620185094787221867321674216830007514826869341035472631192774367376514443590273652581762886823013835971588541575305521294719358889650301329105000382360206235260612534833627778208021098409298741045465614304393886585278297861167145660286546307928617662879596847807187660410710942948058755451308722198578364416276580308342289869888657995005476049560802755158378206825757120448958688427761052295176151598846195806725406720313053697001982452875600241942191625790640926407454844204394035808295183628782781002386171246332250126511229493772077574649836818615529611402384854128398040295713577867956929739509217224683562008653401708540563554863185733340490369693704142101684833436247951709977781263531868880754515652318789658339980239802646797626612097756051634904104051108136505084522584041441256571302999599578923912962744013299338791299573736013090500721160710826345684878517882808438466255734264264593353339719777842006446849108379754685775771974748833035558547943659785149130439772284896534404766021095994764845818044951650617621567960567842430536486897908971149599010793271031798606406997539450521758262621090454034360886106060230685325386469028690347494680255331839189948814068652944728125357754279248770565119936533169369373450679488121973500366837359466357296935392149456432368751672892708319113727891027696517862637833609925655073156025513400336588051301244959632111502757293532538399022538383728901018438557464153542114076288162593501090196441539740656406416302917511944256772487376000941133266886916056458328710022155027720730359815853246894537709255462159518724659243001356242842494483970828885766798323707902063108719111424166158438909510399929085989044848604401348790164614754148303411214146674157850564041249339007020032247456192389155748776509880443360469503772077325740302593899247388445083731481891691642955218389630825064015787467956792773477640414274521094582479900791385173066777373717272831264431941139081815161792310490867526737024850509133809938886764744598893339184708444182187575543092810730826790436562424542669468302159801584079142037850385394733277497428357900543816278925885998527738426667206272829103219770074523075910619399116829387468626120743400536687956102157455958103120898226037279878168198160753439959471822768922749007018624291892246414807709756929545701608453684841153379839325682072295836475646269436203452189487499478984886339484968875959011589837684755328291920508659970004235806768782088614998601645758300219514280696389862811154930251731602983827959497653091027704229640977340669016640334178805465091661806382649113736179321765442522092261073820734224665174887489446537667447150943160814947768733026350728093086295294130066445626234750634872555915855032168687427028024111221756041851647236040050552693937949769790312062492487370329379881439973181482344795929739725110372434269587616754335186868124501433175312669555809612790906107984142481222556756923548289845165364211745561912744454009761096218386954019897568465162743591242049241700580828753435006124941378140535964998591402291420789191904023903928050289340445149742503443611826263170875689051357761490495160487273892485523324817638751689056515251731595734421926294417571259923054603445263010946724533220819240072998546388384589867753677591229461373804821630642273390474841220639158939410250964597701689494560448229185563244479337649664537011591705421364510130536536789880245896290684592947462757743207435991506726989491533705178899916602095303536306760919595349298880523793605439305718982228160534411675485958301916141109649148904795449424876714290997414594124926331808677510712079694555411781995863613517370119311075129586451854976293650882360088199755237859030754950829616342913591350835923965319258375850464920141367730526167038270564089518050711895292684203481790087282036459736307053515416613160882225577547457615099572862482495415358704187161470101148583729249156001213131087211189037472910582464056713158137638026114076015614798315271310228139025837068392549270571975477686739260063846219142251836011120058479120398858240428768836593294156710334500120839840094904853106640060177873447428448282566898513273656283023330468057904382377539244952230202790814294967711789780760521034073487052082730496159283552894013638732542448879993845501701098283116344837895972987652372498050184365606583862838620400317282518829439223372068727528373833508804389385735111557021120661000149388094726017526857766113356776367724137674935609837735046538697644570100999913601116429878522228164845554440557911064813250152883102442172690879549704159986281684595196281539597465410930461411051977154204790749336193199644337686869377090578717902459382456306998310145154239232477696507110986548193936935717870772324382544086598279422428403990376127803890242467530048705489955509794502957047999025402806132412613150310448695651161590215274395423722612330148804648169990973527499432882755036389617698944839794607385772900514061601786189327103600516848976296918190544040036294256590535232153347776737908415028936530167170205230539885000736178125518743638205364048462363908786307242728847224365344163094156641007097057407952624962550052578808017078699086894104070649638021860597917424704160947255559639240065824011767255700605250417426691051290820586247979797733481552136583591999259758104881956189695437311249369418524946960798430904945739459734630532801484587637086167578105710059187189464526991743498250923266689565554035788358719167218701636886778966724108083013884155369923909586434053960175001374864635531330481574935098864576517635142031075534507182376129755374669865012403077695003172987218265001046642593116131611966930961077752436431342156886152024148066551387280894291524997182574099865945367015685188758963724879447987630732734649439276506868438615615005397671991146236863748239188317321730276814703627272371024143960905783125268936345050341627084665453440900107084566263617684620856778491367044502380180010565227059791014142036418278555994466173095449377620040278742589768488182566371511228517612608452752470985990145638096351351121601753193007891862045603277524090375569007837438919176346636089494245464147570430902451018986362915117677558363135700213183453083886917195056664988081479338201729735899788048143414132425119587068160882504657609645797954438208261111027426040606328591013309420759893672527984882417287471324509711516069202367506497102991637848944888343460605561583082566153560538194071857681464386166429393175538166670488528657894571101726912568465778540816870665035055384164651455264908097332381761741063861029437053444444043012875334537784551980098262611629833357821475833845418588259974408548742420698584171436572301760930176541302280335547896862713025426181516416773267808006391232832123006658421404228768606675721949295105900747091202320012712460039016100048504518249084500312065629546749204633543010503139281962043798966194851651266999647465886280325277806375996355823091266332603330660085343649116880386635128147650334450132105346052826778226589739503793134754671438326347817494287737055631437106337927202592602440844308237877660222272295824041640584786989393357616451700452908834584055090263277765248949956466704139723479924655557855371224662891632498716063659996319185067812797619150783985025204956237974987924433381891031526209245482706144038002513941115497834800413424229574126182006323219377981080296693562532622415726289611389156036001753759535393214350887420049304485084225560315229405338409892625825856365068711063794759995148982667920158494200018289859524616999117494588472247273349361118351718585007916650445023719254086552176237906687500758407115722940476459879922859797540405972380957130310280667220491324328741453902126944242257074754588429850207033081251273976584235847176278479174356325408005789993211481555842432444610269211348991375230120280900292965293339616760884870774006081870209746434462379417082412148915321206114453273102482509020353651012644118465573251258964578770094890572039071336261295118457304897103364358846063579636410253862991541681429046476135619019853876547831926803302187673921406664233520982541823512394179379740193606179618220614839327119439172999425841159495799220063689485776093761308538206682135018833095869861308839679059525231506265012332356581121843405318928055734168307839720587750006867569611106441730536801335478676965616320613815852025528770554667922742006620965272766087368831991512974795740984039515020029243518448538164414679345187136574885457396226917006082466351494192618752189245981360386365786864217772506850905782178647285210227398490632044864283537291923457903653458978911888833773709432974985805442434224458519265716360670263671204610804065961428473921570269353954084549278332997224200709820362592223316276141968949409438290082613397867565728331293699856791559543812369552416059208735487505676340542391535308274798404902663051078766960281829994144599898033220777953856129776987612750062373791985609471578841278095693088366408757904995459320895266266151045943693200417412556689801723617180520665137766439415237660194553387407617167343937459123915179471204186109471601189022399110064272147447732727066085092190706797496503825198238273330426644376472394822726870454055794296891855395286113002736729430969636606488870182858675516257331102358499997078575471067963172731556335317388285867634235234573830370462555926689171489291885667818791590042889920606443488515112713880728650738967010176250524255667361537629680537137017416701112816494788127624914092279919170938115930476691784045459432143181988666411670344076060679182677213688372011512221150333452682383937381223681824519325918671814168411526448354851959460886812633630791446608565471601317802005204162106675091563750119869895105043529486300590206683907217225862528772450155193849077120476820432107542570176769220310704603313804619457833507856816379096800156176868252133398676465209767547134680620758283961326691088400000078421170956522740264585717281853096579751248103728164614974794252655189161390198069579117649260233708514889185941848944894774517239038801343749648549136216206379835031393631068612875161835095917050591564039490821139608922272308696335504277328161977580317080536135878729652135005026295311098125675770388174347143224788529875119671947490052670919396054707842178241410383970923766274828391905466599178294626147800888241335964163560724321882436083144883130831886370276169250778374387478180159184230337317084081421398751543358979930384330156921628917294229562698561523474622557575577440522364714453915451791862851028725968495039790430465585206287256946669118957839006140636910506513454445917852906707319684062829012872055170836931476035301361709229679443652880651505897352379642672846778988907079079928310130738108155875439719747085602765038008713242498005590236065337882420305751559468882323792716691849576904194656291785268939630861327325979264842297369994784999296386176587675540386588633404915037558682462351398087842504628515548415061763920324025587619395175421781415778609834659749085250553538376148635020971280926844198135928207316180292373248097287708354080832442080131800706672845117618874151516935077356304756924353168025073562885059015405042965302700634000942716827860094388358731606710696536240045489436943226159400210256135132758197578401170493641383573444640843331452207017958303711655788459471671254795223047422449797961394898780313850512646970349992027864372244312445349337916660263528739631001639601207334097738562213365245486160695003390008093201924737676619497071434598259786679969555256932916301286998873833604203408104453909367682495195080582881801673908658407741748695663404524368019847143012996634011219234400683353813590451774444364340359896793127737878854954003099658512409634642509127679765577884230121862346284049337593737004701356601585762683524233658760773449178175317399198618705804227482491301815323028196790796504731110050466911862964018652765206050361607500275980277483927592768343148528900061180327188018318245243508948677283368136566362657654265634307413170460192086833242077382213974647714894897434136523127713167666436998450298376188061050605393442849413159752960873728763112383484628091899417907680975646992064475525139922457590525887306978600757134199072527534104571565592199634524004735080853185358354353153555982697603993845953866436075325712569540590772176944826082933685122342417369190154864857894469766216884996875550587991974058891133746763645364123597959481627204005136563974842410584230004408064404577869206001010432528799083524101870003977139789963339355717998246124589838389474424283307365932786860886544211034772013781083270602690086568491814764251420544537129156954544505444406873693884763676500458390160792989230274634118383130587329913613859837025216417383436759772042475770410926234725049908337306153612310607808500126646651209371964072170599684615330161145399223195064788601849328180052353076441399519097518138729818242775753982459642218703810423660655318070744454175002598869926037837181423140548241604779002543131655401746736029701874308178799282419790788271086579776180659894026008885660155549748948627723214525802812209737445764641648160061652007239242617619942509788425298133820971265745310684859049230044991742505405611509175773216866240178152189387568708410268103557250984365296966593246820063812784390320244172015465394418685171254547464034832220578616083361786081805478932756365022519727449384563299731803444584194430226244068415119927294657214204060408980270952344849076489332670663425187254840275046040132234792951558247006271227908743465012915890711271516333909378362943653203342419524551375841787816893467668955971507869672114746528692513368562020458157596449039493838421862020427636951790084876462703872054388202563613399320100571471328765819594572495747544128648771400741867606285057947946814180542061419505917771567404530193377410278969248725085231187101329165086950471868275930846327201984294921279837403919142840333505741126500580142808807768088452039642772574116678180895778525155483779395141010175669922608060337502974095014037412501201656213568030485426353266762945089817285456496715851689127742620876009580948722964183379879954007668954694140720212988289522962112754671353239202644096019729299720746346080910935774445754597898515864508830839575742998440633404897740701600911698870774032410570965838035469180916061019410787746856003223676208878952845968901834580537954655812414266711209956179770084549605205936554925864706202690865223239869271643164217484513832330993412021751569704001887065714888488576474783480448675838558283308413243013227811218066948461419894870392697630101077652196426849240993412519255569952810042579020179199670620609898307188592111520949277403208831615355308214760760521339232750746271013405079958635543120705196056731698716752237282556382032756553585543262933309857389425161563573147174786339376992127417941299231655755138884025822851010326857777871841451881244607711960962173021261617723623202887084777629990633428708489443681026063843899407193480292856041332094920497579253859096886418703853945491347904016845547104418452959266091167461971429017719622264218618342183726222434342849952890416036180929389696582962737535324189375739307066961803704921588139555335401060086824992305696591382522805209121881799406191849290628417122227297236117178387940112924906252824923128719963884644371556836562764857009910072184024360714015510752190096447967250270916998430533010526627695723886120674689253626794948615125856138480434923398237443868897063322357668435448716565476433554255977072892829319595934019299645119004790637378171519933841490672186318734220158260932946963164416499019566100933163009620822259534126429740645073737056456129236870829181400472557965995543697293985983143027314076735418271103267767220826574407522753885567709868218448421465221396926306374228860663498108367534678148807205084620546566263098757544643796296625195020801267498075524431886863150521999460965684375863232539495005712544150885321229405069357291434927456383194002868972621122713460217327473719773786909110419162601228141032298224113900792262845617388217709060121365663943799923886527139468691702939876595229338923207464072753448975357946088169059582654214005925466393076539057096798856509262713845633087693254455594744072431245245221916624435863446002388504235473531866112109920991632890148414192893213423843971806362499875927431166933873894768518919439129917761738986456718009603882628096674451586036491098905212023480326712885433571851561482947439978064133484769901030577680295823753211318811153680738540827205467473419607627348424054037966510943165519083510700396698538079332279784654944745401789190829919559108205457799582396248700528596579337888168246883687271339833168645181605420778282547161924432445210751073481813980363996124055281860148493828412751814455351885584461944027121532438789012644478570634800159291570106037280100533837430678701506409835250604096185630427134379702479737893639511936514427813331336026350645842576017081678214295496040484344035573570451658612279982997118508763236748384021014759932942751303566172249393809177060290599204340694837145929861373927017578920256999431682171093378219528293387121372682558168260468299553482043919280304803997039277840102779295280726708692272553996301113528272550326103835739098971626544785005768000305920378984773902843439118439095028903465098671389688594844577875498289155149073474670371790864010287426840721057247308011221290112701431769802040779060587887055045941988397069045265499900033426617057718747630229999367628680091279615135294239060224628020461309183545539937812008931344641285206821809727328144294406382967039634174173053325418202659924080171666386032142733230076640481357769995501058764321842977455969329536045019847972838452754607547782909546972844181004818379654110254236574776226715125123144341955297548596486301786410261957550366881072074227174719491414992156164110036733566341174900535758979254342254364526424093322647417023955859638785269361460130763776641481912412354218578144964905669144576192767655728063398823879767396872268846453746503433748421890746823801594916420320066383389691091624367078420568146818175305259055129719858884492108370200291320973058453462360490397917206222269230840851636658661225143807356473504332407777912930754436923265811550751844496465990965795919685350222809549441129129768359430402060287451802543861556095855238077497838915611880745650438734716471111041034627173259161549125485830369648382855949793274474115711027144587530227898589682180110774780024544281733791037691500714701568791209921570197148180625634814533261031537327350766730797622070041701486451233757037481962949365266991000743372391484610939117877925065079940697297388040981699443472920307923909033763523523625671155806238902470384879108895514601316982952545491937343760913953117563537436106407102075835505222317669587496023142884222825802211690064400097318832963638341629276657704951010472690485029425136235694531908890295511373218561738686991060047589510551128304296176565129602550941670493945215589038184855058370813318110489689803688556427328199327114544796804203405951761538357915384540835644223988258579375875295088869843337385360199794373452250988655789646277074159597432684699232699910880317739650489468768206053491515160424409466653800112380840338449257457741683050434340304300114603710350138055468203308248506723202650287871725231637539848198432421473007673514424600586985373315854427407326185919084886790205111423824768562502485443002393668624079617821995148999996722096548510112258650660325349051040445684932716875438450382000541374191869086359401715780892473701254009106538629478628253476388019099652976924949691836220302561951230987020613377260992569106803136650843659962276554318829258324852977525286520577562864289869549336111383096783778526985770920023028010092153689026314390442926793182634076297355333828678346578617941252914011667287238778414120453217972653571292532937736037019879478251503397732401499088744433571636931845512230792744900814382154134037585029630674340277446662774921255458479349131989480700538013163597548486323643639828715425726373577909938685450126421592481521965306104974139160206677590296851261836518542510898659808959378157881560762152547787730080555210832619857821768055372552009170581695749580136744402717059839280971057767693059471957497569980582051219689413749872123842090582445737393595979728991703595687277254180294758599265090708193845930754629424201519062807676537101228181838069314558164650715982531555107061052465577120613364546646132952018377629128842659638125352946704733663276897121344641142419785225403813555547938659901209735916975277843767133510502767121731687197921059002913064084714124249567111351691542756888695422768054701300083877110076541067116496669781105959230203906555204008665436592065926243790985886731820889986125298375992500186809389809364284607122509705616282392614960702904471127345907586292710587651583900530857597647893050905359583863529805422054698102081996844474185142827437534593289297333045788341784680796821852023149850052167647272783386212140756644410900724573281718440359722588448882984571843360871318145638177308251430383479063463286057491596335422526597097912904942461744935635243488304219881050646795690322955163712068091585469361409371257238273285948773052324564930626533232925539716691512673025916936786095954913857546632006419902513219777028947852057896764278108305694428255895929550158172997690107901863374996781499581919709211894102599918966281717642081375560316164903698342894081744320584989648902236346387586915906866303373592433589153174639555717878259153891749645669240324616348074866699146306688716099332481532052942283739623161622628486696822671165922549830855179959910291760689523249902273825910491009445435696576132826250777740633353681999009664520878033597553447068122574893167233527898223983315068583223638779725645659892237446801276372896887491366783612667031267375287422205977882174351767070381371061439200919741260778254396908164726948989904521774113603868631462483776723567113711728475683449424746843696697186076746475594113096212736772035656590132725865927412971165955635271011595041314462997186106825942205778282569022068045793338711808661684952370779319999722990472598008825508078629184220324753600422060351036086503198038599206819893158350867469323924157001017256776619482564960474233166847323022711988794995418231956110789905905866663531529310433901261211609673312391772989223853002043095996768536198703345364286026817587356964436565412373866831549261626404027449479496800057323636011695964306839354585339665218783612265161224492646648888281252235825515050881971077902605498470550273936037309438341694025475441508754333879172420606160741641221241060042581799936677139724558636421851084955358193882853947853002789659374294736288754476387010441415573695827246972312938715425045846609802123604125691701062059727673079447606143285199410408289155052970299019734440337136453445830298512420830903195208797977936275273019064059797177170143386317189200041862438567372574675570404934717032865392299748009516301271184460049962559089444499182326830175831168966285339497612527636754257787550451395104398600502182697193946014890482400972558804347526062272373798275093986439275633948355652786154743503497084620808614496505369562530923331729920933336311842890680827052116934979606377269540863190855031432018970108506164402764753254731286141934067092187127622249306490659139577811552528314288064772623831075337343424429512372160441544343689685277129179576620318761947675853454925956554569964980192431079433785642861602443051218360536063931904869609502403100046865915105307626970738537591761894229111932280179272018244871602328892115521643698474588981055856341605152083554224533032416491856161480172766221187588118028978515720372899966943426914601991609094479566616414764621554672562011415189770914579512920350121677697768629104610607584542829107134128660284995416251767079968210936175636972685258545818574304874319271620417043437798094952837541644003276858166988582816652233011603665525133443003196713783538722083216793726847586253217052109679731324492790230919081371950333989987164063867243477307333097722254241991907123303122233431827544623522442270246184478807617072567669914506761010971873709970164742281089040302424782674090607113299302835200101886503080225282180330606108703214682052531587333474463730166923037776519990954220904540055477104522494944727002812197191214946257983728285765645844553427355703053359888878916635400306618136168754463651190757685874860443676554842964585341154848370762398110924593141201868624838198295167075306121442389485298699814163122145810327336299267126882515620700279541817262768540572491575035243081390683444883990793009343574373432552830954191420218629887133135503166439011677490542181654478549633626572877558425622768458954340682514770847658269445426292253065306567843904759978224594831006028206698915537317090865348059019358277041017005635908056304977761440456438089565298560878012230168787251266674442606878961986273995715177519753949485927810677862850140432640769224626717561738432287405236629598314343819349807174606878326987327022357690801592653661186472698196722938325386257543749428421641958372686506410681430462422841168649252175367018783370279997205896390511236464811221131471124398748501620635288942286699282541523130031930548111502569032385929256224672694261714190578191264894506799654996303966352136742447454572168811333589584832246679166762657110302183651878591818702200148649559341360082419474481735446616815120013480392654162943861935972975899278995147216562350032964093249026031209824483748068270898559360888229293833115557667315105934144285881025061351979990784484648968506158276039247779787852774797140269171631401331820924318114684123413041287737742218176298317915977122120405347386650849102794524322649106039318548218035622308211596655272058670035783204988683941519452736541612879903311324146595468466528772911368785015402307147466277141458562086778062103611840810183437067439880360209266387462380444907835483716057948648997197053062223708188994338294757482395184212398830594924016810368782947139438658719589444495446505906708029486745945818930856613389007674882832459164005809230899931194875794851297548741644823977992914677595846085250239082867765916601676177537705026999408305253980694420013913181679674411619526543195184790110680044340698226890511867413125392012174640811021566324836681857661015891203937292262639259286262501453846541206349447457415298523080322103920818073625095445848092267657460784974740881029782852260836707020180047626980875820870208068581175376569052585295167869484382251711520169095993164279119462133454098951174440622163349397175205964898008792472451394331579481910615971789758726735141245806779273775009770987944580917297755426741408989417211450266629660091175055141949527874339404838808931222738711399431891945923189984720148329169438321060196491028069247009369370888897911149909418849039876205969123003588761365439594864629781480926259099842521984526929422737811229156764997228292133415131410580457336218370676363393206065655803397878561012038077689417524109198997648762168105457902568859541517148591636415546741785437495151155544615458622941915998878195650948981761678068015014265427944917014136420091912259668578342065440005620058754883253745302721885715329138322970985268099466688188833259229524606199696989330358195617729285004842436610069767526168858028275180393129995508874155819635932852225019914882357483422678563290457336897712277619246979532852742403982042918387893226317693643892921589380654960645086190810089451581246813582887738968996150902999258182004880729955389162830916089858499346013869607503695448851575228456923451255536948482237157167088734239892162513061745332080549179173474862062815918583665039444812442149805695577026369484307811375644556541395007585565380906054074961622945277422452792889614581767920367212196626245838517939016106587147413808002467138099001792652797664922461511573233508405379009500344077330023004712103377922956814314681017066590606688632979354806465466952192391671501277420192911883797692050522018960137437503005893982066240640929686805012109737116105686298083068770100535068356821586674192100620086764414692594243456690651941932341539859134236992373568297600237552049574125113641595921725942739303620642835527539844138114066457940313519365869799715434380581196742072234791423420962167305263091824328994158981070254464826281426080653212414392201166522893308072283576318595828409481174371546516668218929139019659892463865860778549849336468366929621453903462673868750702703253964160818834525872332136281842337051937008121950755203850264274160257381378461348573695176099336513129083231733982569163751513740198120602422342271395419451424880391860261534020809333551928838713468789455069088226033943533784087270715400607289382328129185020925404516167041272362672204943453334503079027326896968873641308756314075605414568493259580424834108272003994157832375159056477817119281645286101399470498934768239011918448063408086509176019799303071831586437352793521987888430223185148264065093360019581517412983578832369912169733166779346995874686195933317355476830460742002839603585180901561129767953864580248827943433068501223420890035571022688351953753090551176390659488514818144157361045589374683211907948134127790713824930666886028817059723128877457324047975983897949995321161176569369306386827068656729644241535529382442563687668275892047990540408925470239801799035853540876619855419538916720073673982242083512570291091148181428411550026567747622132939825726177345639059069184840038258128093917562202404088233059293278520106878829215752781063866812298911605228183800299338314970832426232594705829861991431083654699048606661654691272759349402581337946353190957715982019471182146070186651563036892315723304538368917120837025359598921088066873566855573879901750951600348170431489338062937220518135228607076846982772683009963020104333234995156336557174451157103919519909200971431521461453060074116681462384709264077333852144790485695787272289122990672880252643411689130616821148287516510539725204122027064403483154144312020655666702576111902402634921492305900213937587473791002353621639061396361998221937622201480775072103697302691236037993007886449283710846877240866219783347497977700613657729528084430402751521599652406748239509194660437854119855539262278629465149620497466843112704476608827441370738526501260382330442731689474686967420652558838360114922331511177282914592583436360516018444448792289561970020602496396953859190655112427841060014766107619125482386542117922026691244154076314701679248381890798861080045430848488872423576983522301630598484792506750596196777875134394204355238066327452444786201613465046274894876490807430437178042062331737127655091620700090195549062871709986374476506780935382924212989097708174796251306930950571305942406057136691007819560361263045104319968376475723632185008887719515140208400466966554863689785767216745845832017075700150464239756576132620199527026628232806574319205793896117936087849386368060863258066956910404442002127456467883348069927603311069125175737498409487738598647693462199735493191257491187713167535482429858714415381627633947435573539431388555357221053573995886577489804264584770362078404802771059026691788132116776177008375563304231817656521622850091564925550200053050767592990577060905682342274929035442128269592090596966099783498558202970845744257186290297348000242944487996773952557085949498854684623860671019475600724012372142580969847013092007317380617940166776525946975093502986449083885384622408443103634942939337778743209007581673662240834681517333047176599686995664297443987018521855920060700543742139946367327072834682026639486150744718151280280846625188169188744999302957758294116408890522496925432553738077390159729855598968811405427287022640705550529664344929408130224388377262001546404620443476881669712244366384242066390110730084384766172772296493944232627776312567912499882657211206617844872751478720815275179093894676807986647158344190737082783470285409954312258916692769618852971735765449456530478750068497267654675332912619732938032006875250313192005596857383110875847503209496674905106540317449807852929660026425400753760732909908134701026536280927736074834013418534620291737166681471983490483169798375850766344833848512777686116913878244735514894177095130556774052444893405165474794929134439684070423383511706056489005236613671630681471983657383639322594989872931740954936223584793913888208659643928376014246364121528859939951269618234382865829755083700355681476047400981624945999547329763783366161535767016484867687769022123352226603202864875344395377591700714646419713994186379856300393913908937446958705453153145724976758784121002119081292971839056826526018653740776302138919273603093424408759578222914837628617499247725703871564399944751266769483395649125378316334421853575827369409675588940885925962896658374640287957881224196458500059032345885691076409494020172288157003257213266452296641379742818101892990803748514934165963863156976558046825996256776215118701272697343518669218925834175100398816791179057625815604167889000833853796774267188370841829889380548477212548212423301950395400523235315972152056692126259782260719469981074262013623483224134228729627616852931693797573139984798464803627844905103429579642635955853012242405463670601187982596159565218649770729849462859372276493063565460510977532409826099743383462057776062777944649627822918883995550666484194007806272274138884144924782470448935777431850406168749861511860524595996078610122320425319137723581211415093145900245598194176607662324759533910101189376028871818062554212942090179316425213267879520076678765015712647516779884020740526135743060014891417079173810429126450632429681611870146494282770351666380891720925801846941469658343810496426696072751993162464666740762275193475792305215645059708616100260126048651031040154602842451932562951806041609620886533633282817869839985907344399242668550752828431145712790098820758637684778952713544821609747060457753022246028530527029494454288662047396433359468781140798919446261240824055107594953710081243457462464138239227990247126602322878314799675166979664739176148858942452735300971255539162956885211696423718415277876060653709611312212749136328669770338027681841406450082334901634173156496782078823067048921376809059510647654455798500284498579248957805950923454989662857258105020421989280412152660830761654107293197053487449921768126418454512333765553796543417785260184311566875700462039960615869683165503038175640454601495310577277178842796616712240579988409737430780531408848204656778673169586459222622769200805436657246858419362686772027812625256266193225943873264826699145388181270571895283914742616968106873381932399429968218860372627508615555054611751940591063210910934907054227247284322602243177016191334933160391139282427386447101325142260846656506609501406880920280228790164962931068720315873605891894036689767058593349938652931705372167574165948628890693799011131453942325141713511626099063893875216208276558443894556250853717214330373029373783032276358415804094023490135549241768647503013268599450751137192457093776681232821428249332263741083631559536884216459285515780642426539149823504184858949975639150536326411502092413981853286044109466033575133562250768007263475996563710453882580901323726945342206064286877747017024730067557933809199526800796024017389789141021379695852999030306957822618453546217714620289568013730957931722752121771876869215217402105944146138678825386343301836011286694171477106198474073557222734256135846550165351454905003504415501516370832104578683832987066407368749877181988249717155586512325485468092596129584551157011943455082051034354488354946981481748069351922936124151815489926059015072572066083070787301447567495907233060096637988600626025558538804393916475106371393953190848752525799596646758178313771249778157003789815583887091722042198193184161205894643048474892628895968693123852663419222251129034332572954215628080793212550630193166300505351450851777183371390091872879092254319998801847849935202760815122587430418405041895860667908765188796535032385025435476248508800829248922976631931516763931674253254493934905276675611428925960923891185792184611611519490209994718034118801944019252343140878811868278000744353143438732130088376527451233037821519541646400232777172774925674094608732152079346955849249160191423235985280809938879280845354605789757339916128113877957015977530637633061624863364999736722059156361978411554808530574674206131368954173243133424628949814573357931245005563827518852542110820374759181871181252735786950658467456982541176841237593468497849918474889398255075238310408185343250261020557235921462412015725677172848119343434490078605150401804286322777443653421398651522379249213349019398799420834408962016547664680865272991587686202067631666573175921596926457322587566958533488789401789228787034681060190017477316485661526319582852747083844785193856334383604524717194566732275313720472592336485667748758872632045815377293622781152244984090976144710799596978510688785338097727848149823440049918902047133976385165032466831721460793266397932756944731424643504673247212439691026536032302708981848933522538479817546202498890004197731640618772017568248106447014198402982822806090876492565202908442474490110696052265817053658204635073936040358074525624982875483135724294476656194919327613997104430453298074640368351568670848645866178472599017375978383879749958387478522922105174373084177121369579931947501105238288019265031987036229948721312439563558339476843562886848970707437638244147737092353208806568724201870493888207491808394408752757308164607724175646744637317343231441264646115714171805806399225494290380501367634942992867815819908553336606571826113537041308459073632766294995448732877325014082654683560619903466512851161003714188575178082809276826329509273740022958048360472429467482040794980201604785700811775357931518785142780389278877559263083115878488719703947842779465190844399390216521881952459222627976862667295862497922809869451693787024984265696767916579557341609578944035699593739784502008402365382966772564204843281276043025951770666022411710302449483657551099842985871785634851641325553012868414971258523378012385787114338581708755878249796329673729057271303913961890157517159832962658712757967014121430970540249300006384652288833620516057746191465243718184241396474405346666750383527845968722410235658443426547955174512130653025099349923601865978648968711945488915389049098007902234093986581572413020420672414995281337573134343638367402659979957666616736554303898403352134126340656887278674487366168043773452510874031799956643428248675919165733214335124654926633407833526922333684822330723758397928462654891060745201322871480918378273609869551240581322203858122390860826594068634864349042451056958180333441771341922505301662373536304580255804738751311219394466939635250878945696058249473571115777903040153133256831804362936053893894020897152098488016180692843766249812200967907959347002078161525366481218266879424224892252056638775404554183423337720157445265711178953026602573809823013531756473449542063007084777927348079461043658484819032069671347099210691329591655760977000877457274973495203567107671900300046081882560061099686820813436425050427188617280620463204715387991628708317831601009437130209136168466331044373169702883686379408311176361702268349659532470690310876007490219252858311168409448288740020629443505485351602674899315431824840170093155770158379392267513002124661052739532805710356467235591146187732167802960108145557408556206822461742933719564144117497180814465570384296661409481006741744955496097639255648979193278382744563088446758207594635838759676114877853941672978573993182872679604083589607125381169982484099808041200781832248088799508725488169392236833543769124094486007450403560583467428785875835584070937883431354941676657794503368876835891057176251996930087831300116631799170080917462303902690378735922714639803388792344441209318134937175172813477542827781082747119324835181574465362706532404779721207552072766774136777722411757694248710829197276299368223441120201908347518859143831945005009513576494958386998803112796841720600327701650710206102946306816567215657835540444310612920235889669319267762908185054576657247921557274487140260785512187949106868189875142312197898756065998528574568839589268134903725646284867565945761441055913949975435121777986071398158096840054498051150129086336403598511429234451989022573492989299669723107373457200886458262956353125828821644385757313727271599953270712504545812054604802841868097191914254141801719174880899934833624822906089298760939167061494053162897694190038030696735931518352055761610601338283400297987277217307656013412300853048741745531250155480445477851909401335258464549951929523822419983344868855229579323056363629876150374165312428277325722387954749583284280727722773268871874112057927282221586716727651642251213086119469496411123135644482627403258612238549263271749714324974232486966536628774494031369545833191198314722077923936081790786057350177355106534580098461242357405507920208634226794902022816897995415419937931607994454462755665134401649508235365462284691753296222799207028317598857566136511939801606582023077078324853869891742845862763509215309986164246718648489445122365228551846684117279628851975235891295798023388298713725527672053225619377040706003364315680498816254011842356543934501006622085323072642581797195187390368922065438957481317662244268718291683573370912054002985525408764943842327055548766037427565508501892350235546176976075213427082740791083666817599794879690381403093011833322029735583975172670863615429497705022105754617396087592787157948386874212781249206959159376499234061148102459493130461027325597586729282148239339378699319305644438088265992210368701452096326488922647967382521468229392794513508541022763628662450524765428358162637230937998520308314693342114243720004112888301480306357997875895425534047781248254290503820729977907327858856212704229112252577546410819970276070039344704318093371409802481950848177181026692222010544783886711124183807594630120634788282694957799969729820237813801858293875769528558744501780959270173321331941612086667483701924738303554125890424488513244947390605076556889175488982426237246515562226567448493246316190427943402239897261019134193455449419133882942693223365284193729665849827012076392083795484093539995949023729309918665685070543143101194792517429816926109718684057325798505011460138004752090474722461427348312742275681099650838998378803610858809852840718675044054386975216769275291983262765308025984447239194227587827816966065215460235265778253069230830808344933146940008668573396935182044166451888954195694263764077763766246362618008027639098175428040977415023587502888424998361954866323458551907069425941539013262738659742979821722808721818519391087899582131373904977179153352672731475389870585156039230410754606857831037647283640569481698082525232676681763912813641400972164359463318071595282033109986751296362518435884862073312978946980271165658267955151175661856897369610936192790273798115594704570430833064183016950409198320484426722376231898395785075062819727443052984407721353020275635426605863227463505429229722732597571937052152058577350110828906701595261861061988272434027746804089637663611135337100947325074723926659455430733566455662086576967700311424762605852334998296058117537396905813557226913033744377962690333367880715946541114555637467564752388957030083124268733821741083209741501890836998155049403237153451302019516866567137908258740728295618145931499350412690056823874295303681171485363678969830588342038415595441520141571920717427309993798338577745748341276960207340102342333356829424747377062200230980969191234154936887406861243878123012507853520369254040450436076198349221715634045408903150586217064985272247970117028923287179873319137456144245356313894650893195910815849548435615081993829771316827983810928229899155978398750960325011397813015417995596812693458996327667845385443433299594081159365285723430959159830542655329897771676831675353733548957386524977396420166579452774193093801015586368101857576981517452502034222690669248017014385878324637168586910673294415878001917308265771634559737915377225037959974578189574373765619356846678705050419558352502240213499799718052959628123206599292550474350398629903544531583384778382806093337995370808652694625455872733542043924166104988457031270211362212860634062895616131627400483372500495804918674347503052382681356148102196985857861246780452851681755713512433224012716486615779370512098704172078394659782007229294769772310189084016944217061370567264366108524540454367136530642800296100367208998592705437770528027575426280326148612490270939600219380616404510062343484646417735686489676678812796462979069032453881922157147992375231732873544228609284694215948117518716885765007990946462603338886851225292675337940592523952488121474909134037499056903967011625628459264164290304765602532759686020055091239397030085476828036197108936441771890622644241480649046306840919615801230430863820753899189444212607479477073007245356855981205044549415488071399691927485733720633652917552040252009598136218645381990535143212543603785543226182589670335119497850555281334277693586786984862379406173657664087509640908968077497819081230815205388897062527396606102147803791582634638037242143405272377839335968186268599413186145716903242025539738064260531515585246509666398968447719580385351151726470393113306818035067006387956217637835053452487270444961950570430292615884336436219743087854099492415886095761140989917401228998088329320507909065689027199421735828732280698707945602953739086502787510713446080578084632752874535888310082101442028002707018345246803607121581393388116443641364868047397576298834584609121621294906403753287412116964331916264653451909361225727199513072003957290539427658023600775387592391339943444939428707569657844524110239822041283237585507250276010370133742498244651169235903439975094251177906659259694699807612047954715876287830958019577965103923760863892990018874350986257893703388235270614723273010294943704227668936390013046919977131270429423836826115764550602740949545337343724828538112989802212244602348527762250556036036861108663315488834411319849113715192853696865152261316574578353212993786761993496219020507215872557061587829470352559058499807897427821521192375244327283175234743287877563508399765996182514493622996473829805068368326375601595444236806225736868701728991269582287180847758055442933820344097279834221928691518140830306891585892136229397274427907563232988327190245554030280188479629921406877073943621666892132813360450765929058136471816862420692283182045025926308665671259450571988315996804016960422437817639489209705839509767350888588728360842614169866213443209531289598620730731900189027497905497354448606098577729817596797871779735032361469146845762139666123097465146225219650422676684050650191434943101700946675323750576747209927673154502134566352153483356720062249921728384152736807707228706257844870647867675311830889861050258016881267772483514138422273227127637835205940509397527103415441348270988151966954781395040778481372768772951445713330928138043027365148652020410110883300434374690932738951067756744038228055785307224237097360641560754945709253763821463296718088416801141606431398927110674428209045733928339514070925917630597199397712058100765943128186329508789541604786089374701496661248757158484616628253532366682084848198504931096792202108769001205595192355808376382483702170900650660015538762401653328599483076530534737044891763695185132753062711457275558564098513157497264405967473373627777189801097778033804678640023154549500999581442585260450479204183294310434040444939081185354773596916152507083318036728143923171622340607808381372546949921517865434744793979071394384792731290488459617464053811640599169732311803787069740295833821786765722898372820415497906786342344450484899583415941944946107976822049858021242319916297500606844291624115883144940446145178393485495968222196321606423886391281963173872386029711747144752271952168322126888209396735049945746183323219470290944172275009391013968429183287448436488812488628509088117632470862979639824695169048677364365195762794175699840470672812568578547508822859842072168199181760300977608067484831729853640877294227424521918903626911847119019336029680283360331430523187040441276907721801226286568317590704609555655174230052785032249540403365578389187175579869732622049313234566718942982983215092934939964602877078667196759167506599335958501667787510377828861128413951828389063699128432363949669827432020020889760921945613341045602828550384441102922415390706085518387971480091309739335192136340894541211868450244486250564831682680785032745174522535396206466629353437094079722470763357796058873977168442827545588083546715184269006520682031938470155012561924041092319295670736183570458440556781895887879961420958902749014590868989829574474737962229363417793687973023562272259592474380838334372140278916856721771092308532116602479691871398790587177412235880263376853399937202689000129874089262529339032309525751898696538310582822675548287085848865765482999144470109849846736330756090351398771608618877430636288063356889550736903282917420605458844940070158051096422748242172116406726737462518035865590994070138442398238716372289259632431266431089177137757947192789869770936049759841868522545249729244952072429918682924178063555756349415192812091999883315683695349246888662986512244284407423472277295826664962169667068923245053399488935375155303227371269292700967357968539888738014847343370902351811730108507079971783042422783165331660411105633889752475784766777295701263771292656974525858501124367892408709376303470184019400300607105721917607501773180649565452646204378436221839409025102344179011204672153369662402459703972876114095311229312089124835210929950794093511806263094720853969800898684699973186269495977668065604419430207031580117497992634923923632035838300815633296255001369843081702337392946749506817603997241229708094096730394844604782774539761894083430898678716605490559148242699450958710963553760252142627912844994657285097399418549119025092921284798965710046756593911582221075621260680359843915298373863638966240576845481716912568486028982326513382529394998475991979627097936449416505656701484256763635950292866955311229975121575296359448581943065416338775635496552951472790355053319811964657699294133563855834404340842903280148547332423557699476991910793340371624713715693048639466420574261207234165209309136615175102610281409842374527813161431976572688948285750748086626085588591884245685097183478214724834098775409658077893097474784276084026264876502525028041487627031203526537306052156011064348279745374590806108454912290090088605438162014420394258363214874285828252397963434010867707592302102832952662856620803648716303984564337704576057144908003525837376386276736552919001442730892825504496355070304548408539947149426150814907761473299862915305207991748126222272729849684060630234114933626309967748160050788941151275099131367954800825472696886192866446931060616275515876109204123612407694582651410270844903787454471457169699527624732144930351687340601992239988496196971730770565900010220288714944759958414644370709787357823512682452029272462431495170353959574582002856463879480687358390259485486038856943903243156529033847217467942795066483946500834897040253685175866953502554373552056949678801175834511798708688145259248742821358825033634593969346429064573565488046416828734313534927955066743493518325608572075599770973234035709942350107073472213585058100217292476342955587757298591210645864716389289289540360157825856958047470304791223113790275250163532961434515917573161974618842824712148953023160432313140724803580198668567243295113013538338798571114615326405378087404715008898909587817443195320093638931133353169298353871677315986428859867203545373383921350125340898354837926454590656158415058332336182186934412436305176833486918800441394805681627096781344968308880104760588611577858062088516046876756494958633608905216918130053028142011779952505625181635344084619625018455880976846524217393236369737506140786751386424034948642771229000769635353303429932878355379907521543359568078429970072862639111387815156353152980849382194988830046663405585633243189371160535327052525668220286845501047758384182821585602036968429522130863806478471388050669661997790374699533935095933335869989116501747655514882317028398594052559462395788522619265389047666584439813503289238811462535796332358571944168581992722015477626766024724551776914000161230262548576062193777852535198319581956675432382565776861203050651894957227882394462017276278475703452954387935930327437134894949821239812775662853168032774785192682497062870251164017906382195187348390923265912930873714000831413528441243397778033731338453779284319556846775536961149425026609803160581169065047733729537810225100560388780890420843005922956372552409742508096593164969788417578002064455878280447163595842503294019103736094731032171612010307444586703110196152927592805595175804671717909291218412525356494273371813959850584439808101619386126778736543100107622444496440148055217175577861782045228444374157619795815788759004105166801813218201102897957846889318841008988689341309630941669667466459928616071913282788014526958861345622174621357073766184933438832620837376972316239078518977454719736636377692451628430841429593197225145270627887350875592327885815448630937518444328116431878311370406400300064813227715157570699557173556989547881580853654979499924832151181930516916438147578792784047836938522133537168234594348599620124047072963560401128515783466747557591032249611209943810959907139399244137120316851174741577586665730364076244181097586230289294958926165700170298345051539257280019659358618549464275834193139462767668446829481084087488125754721222351100140939447437175028267081693910044923300238856653235478671456522216332996506968717302976360483354056946922088222773417280842206267800943266566703403370507470062201745604754816352207304873067071532476857905901394712781206103041939625357488011169346011961482498262880082785073554551141723600151648440702523566066868563378705123651065535631616253482647709516470418499599644330402811465622840732697147567981980902532938222429936130358615313254312132857309555957026552817233479617082736839369056411714412380787619572605904900419147617344966537554227294529131147542515644111688986428609743815700445259023791889184712142009823600311397087104010372411671967520461883135735798289029805622585554544352504290471916805941836002679421084460555073517666978870410393478746670163663309325555404083919179178273791330139376719230698018385593302818717987915477833572995945155684560620387822244088682956961113500360313137371729222154321619522736178145262891362472284475100175284511586050312374128538870357664702925547158760139683429364935929725088590656710399741399756939814545310287293823142860131009811792928535909853360771430392292546422255460799483585930767335794237974968707748105940773977418698599037010416940553607796218677797072282696019233100459884495376272995656253065922157510383409938274000645395843326628180366739650507951013366687180434538497280341868474448687209663999472532911463688205333783120289013380058927501043612538562029191490727319901222376766350558414925391009497722286831445828132768936418355612923689720355400379973315339940535588021725575257272382057556007484073843461292635029939460487466509388313493794212332022669103714316138609708421119956634617874285386857040630520434927499135018606995134764385582830473432462071135845168427557195985028442456098644041198958736741913240536716142786807644366269119780118482951517027262755721731189103268648320989765763917397529968310865724440342850865105009226571779754084710084121484360650601592812440914052853980390680049749666987891378199295745943854450977767424893629245367475579703266111227048923721604276935182466478976536649196139261559107760330657779447412692217713055562360561713395530495904845697537263854312835189534207481855162472518408499105000173484045540664316632366785222240392123752863517224921503213711746479397793998791195288536624331875387339964946640325264200686758832703540627895501336851144768905159983750346625620231819528675147033209987834339152238031312275971766503098308371971847995984229581196152770127332658343316121777024485764479017592904462794927677453937873858764949510268869072284575696526137445402461890989188322957059721827327036305371246017399890797558771059122605709556001667891992670967544513866493572229642452062826202550845272391097278418673911453024293142876435933805565882994862335438447805728441931684942253257966679830481471579863892217526550055230806387183089900479894888709323861333973846921352081685338378034159369634824646441897679922868873430267005371611325068594826873421040210625932936267650708367361623151946151086385190988729862675399173309080700773880116438256542398744158597966010833156287541529051045915945025899652890283901157462722971507767056823505574471786553158148808597983879693886206797497988617009596542366202495792850284604131151980661121502454754312656293834938937855640188405885484050684792256463392449488437034285305980348618955124566733726763800171121029128133878590518668748409108807747981747646796906751921552127307704208572950516211774847997622415683581616134071853778944059421007213519644468744241220749732183876427689390922556469741499376787987700817984408382083306971727191748544633517343839337855938663256041511274045744381600911153105653202695756285108636813120463987524750585956620534847589770355805636123302666882842808626889595884349343551893774590308150190363696864074875212744152127504090905511637914540995230549464543089483541214350982244092092223150957676634149953916608396841098492408927140862954181829709415797763819339064067715186430755855370155154862670636373820370567935372575961302588254877548926562346979616988017147677658946273987283333545039055697086390904570678031744699592373644051602723176606222954549407962998749801200657886496273662299884123343559537223618496389636787659539508273059213838427742711059684297149575436095117912033100080432322318765679711272763246897790574144526464438343047774695884628805766465153546930756820629339240141274616470310712889882008758567227712466903105954141301184956070643936468626459392756785319429383720931207722348661452674173959486586753655919998309952027952787174750120434337467951382092254057735778278658502385183745376797190333345946464742530055553941263947246197861821411730840199736918336078528468659483096086046507918677291591303091851431875597761024669787725756072443481958619039976072252498626906734148158501016679700358309493177998443952944384655826451692461114219776334744333206648624221963938458544976125102174060645541328117867971368104495245335167673589619275705149338946661281392691452041264949691230734128003845943659042146423974631044307108428262806939591891934121452319309121349608522213572830205966945480404302975095075181582936621916427539323585536612663650480462880753972284151603996433297350948299928937173177296658769391634285888630719444151187614214884485348759293041845416563838979473013340129617571112621643757231021910337947013608819988020141326091851616499178210966440889384782560385547304501240440566430895478536092568792010732198977243810008844573249271994410246716568245476123004368507446859027257450020086102368543849517088986019188219421438865041544607456851915910578571943548721263321385832140650198916282291048007722805834343773528001630718884516182529164703478379167450557763621423486947832773284471473643884583100430298635377118984362458703191046459590184492073061347821355700119045406912712698790294742352598539176594873294079619962895274262405279119556936355613157789527886418363638893618235355983984961906972363510772809840573618677602996906436932897002664994075548624142930621062658919229798796962836250058124750775896573513856140725970471161133370452115163932272854817901567457381807121122790149764535062883824078461852633086823538553344779994410194408964226892753465116564978665578155501489377025787396150614171042893214472958454483205690361404896564061688311710009599871680293183928215063876781108319555725364782304902570903421071084091586293546265430683547938493303342957017002812720976762768158741950709207165375858009588924629910993301427722659315949048404985333543280336417734032212941975192483740725856915474864593118791528226171387597381877593736084081143875481293409049622836623458863028104352476431601331315493392725791118785048110071450302982712413438269010080678608543070251286513540957192229374454032063356854016841633809758330297577951750402857920882713611040736547913858917243205665014958554249584940480283256459367979163629228635309279974682157563199880663585178554428202419922593990421589753069568206684172436933850146087370205196894879598913103659854258568519331086114164720803439396964903151390983153548220339749511766154610264342538255079867597050801118541868009366352705797617656712417345191076256821996766745198625482562843266441752847149728480637246479548695309519892312033622689930270134593090592294294560960645871565562916774744091439807249658145665872214605730610592326884827435908960793910564453454960101293008041900242732336734533418974120947766929762455904413966140106902315991875561250802816578191069115082856995201988740424289290590125775229401760614338512913605855401275725771401477189698827950195533620885672122414107934468376195931260995075958465720756524998591085173233599766881805025008653849144950866189608819360706655532143397677865811629380815080288038186442072545857213114285388037229986304739440111472330303298994932451446925848435635778709023506255257502801508661881942517635815993279538266645231095135796533381434475982165432053720454059009304829079637255433850677241242193902603997131239251347581906351785195212163038591079239258045134541511357884592605356759865097282087878963740854643974308227110810205441576663576774788739739849304582700704671323614387095683546849136210918838365294432999465965431635712024387937561922840575918987293429447549962824307249434430081256630686099302294487585834863451326648935015902546853901535631547775400382319541625120299443001224512351881029264388376463603614918783257880253007809911833104462765478332954106946612090480474374504630702291815883866223583618385589778802325520351681841654464301983419056963387859658609199793902452082206914230908909146482753141440417952941449983086321952421895018558793164462639480691981887751686249203807055900418707544377877633935443031424680464043044351122984701200601865550164505902531920929365408859449010076538259723124008018896176703254466627970667931122688820966121423706813724731995547572689553768537965566086203600230767873576243136275920731941383350024177955872785289137860965794258454041661021056702346557558824779388419731901319654722215508832015850962183171749732350222577764732355875305194071901761058300965899487713969992342924985731614395765569032722624697890709845304281793314956793816599359762585215320853226169554840902349238619015992259977680541436389578266495814693185726244785540260804846616120528335603353779550051735573788913605072557666955128213332996664692747469434870325270151388276194489928467938949605316645619660358269773533354155841899934840481564654670500685369969250054285624574397801620732600263047877008901961419883435402753855629053372065052398886421673517459752394220242212444095541511350750323346188989940033892583392814857706567806849939183984205042263761889956687165041004312972548975637393071079815690186181937369057453713653625786991938424049055574330753760158009442485494556283362585186269280298157857097082370854322938031907937228399759637380565857281922369758534684951131632559913255046673314721936835881010121857034976189309049378910509912435215840499329828373567664379939637282306710683809288706161673493926755913009483123747438322908565999449280892342007936441652892560067040156192878365559874666248951528804932032114080823825540941012555476193688244782687137641701069455158076032913493518541778034556207105428362383198233367928643505724591308379078398979027212024422905445672914169534100020331746557785617408329379713339126095224415323357400139782267087912026217600506532721273351757868821644636876408949554924361110798397828374460033165017767469270089232380160438977900050296493464224966211487879022588646084284728593089629698077549276944857954248390396846670620837338177481289660527200602144147378644382536601020817111310543990461810128029730711437373390146094281536830733541876920674132352403428964051573958463084209370875508969803723800587679310645864098943369371474860438639639350967483303830940285646624604849061563703992802297923042352412455273419257908021820816862275213453472685282959306201778405475849289750978357751018702072379327209858641914899063888574287819890213595018232086875674648126330115222761345622091630489774713379965031128201019991171762306265947476172998828390818400334407868192864592207205717796531620386009401055565159494392007230084758840763386879344417613567979541326028643253858093032758697122759178869905982257246671540247283297034182089984556482163834176741953567568755017998567193588595746510401613397762760018324336340769913514852493537622406110342176065063474170664936978409192525716941661449926413602263599141699207354067744975509485509532326608528133617405046782008237074514587288111090793021990804080897463002777223620530507550275663300693163856251867073270310277429870609131950012766711883420613304869598655323559780257191177710856717070235399639686884513601226363962684900233906466805305539142390855030961570012936185388252335337525128369153701242149120252995516243195117250658546289490616081902304370338952444467592859395551493983621626306305632167741445109861645058761604172971643535657430395454985672541596563636108817612174503698605580611765599766558292682748387257105315001987008036006899394669858494669551812729654889427839901830489814691856258432533058121959386833718684841747993236263051268954169722321671578500898778832007443094834628711225686168927354328727576310318513192722497390890913185007811822048334583124607936945625043985646916178204094122980468212870033076176546074690529818584535682813419943003432419282946088863516362880907005994386113358370725989892237999320765281749359222725101475775988555996844355923691511348042749634831832413086786302462421323634196180355870802022730675565905894031452281758502511170522256274179213640591011575406328972317342861179680367585530884812435522687075062323865670897233801665281690437140263684091547781099700156676791072166751060423990662504714113084885397434955165386982651031355878635547503735825548390503227710152724434459895239243711898114780671744161809030940742057938974388592646065561720554665756688442952965917180614220918050035815445829238292458331562227514518810533740667678930899242418347059977572345074309612179610317522137755451490208833277491310200660083272502981581013261029089888003914563487764601621600672505210855314813247383729970477858624988005320889638751170936992233223133486206109946212790366233930906881264773926041221636084019411091960239782902331363966287080707782938467024627130921909262311512174402439408157233038823286764274057784525219593837017168204565534453145953630744360396569396745756465413031139590201348624352508992309932349024121254727252866487444921856368123288765176347574817919889757824092071870802577286028613647106162091927364223334735686318627295628608987283198736236207752563751333341036885900896841515162761541375100502320648348259832658252493066406196517560200490348700629691194320251379151730292906778929943513683711252146787476004798745790528331610334459519008236682567156462056237434846994261698328495238153250808888233105123154808327291166521176618959394173154577186179160960577012314233879711879923645893231907421732688796725502825191821139199070407949951340208285403272665894406848921719480626466001294781667221883392107723671168326372265092374400355100223947296558206163090132519407278016617413064070733574665863124283278372883685272987556376705736560354901094371266833942044018779979158797554737222803676971655927508856040148496214219195972795162956926490303295847133470163583861157629152157604861446549701585784052370812281688302898811108960671613296081219302690654555717738772771845810741956687135873489766149260681114709009283570345870554059963985213931482246386869988694724476195360936529641576204468426631812506994280355218209865293593826131975046765200573818998194007179273433923723363185457458077424458869668176549945078889107917045180831501414812673859301699767262996776380858295860282447001225611240763243330067478640191596152361866668673544690516140975332779501836348817285537102174732638144483881037713192675175694126919935308379183476403061667080094271571533878902633317473002935012093914656157987662897216388019789316744903154327991067488815004259933004511518633675187543127389589793105170004498450537535653265597355811163749780280044926479113328947035161642574464525688127644453650157325308202732621226137464698841365864646893826996928855369618148770596905249810487195031542578161864237684314134337090169010902103888853432158546995112575801947323329679156793704648787398950068858499851432024160416239904060745789184711792119649006415684017828226029867855764166066709275557919692556852984827559094259054276072552932036572515913924400322909094447655557584037200905790150791686497267818316225720129887721743153607216346566351463651530075218764459569439320542620156547315871844457540014762554788631941932792000554409467522636436786374474257869927989752697973276508695209497564934987473651286149981083987723373574280147243694920780856090999637981949370405727895866687599928281489380077475393630613257667947952424089109304792237262890073678943135386258359797626657060727160170427915208400339558980924089419060150983088090990565323235033215521426540433801890200951955717853633582459691058020478138530711633095322860744565095260536113720525408285335321086632139972017518195413747966000424899593367923733223823508387152984327445213726364101565803051188708216529842626697304578595399171425598332506260309920965447363950408053501056787476078560526688263880046618110355666959210594658461520607438238550364566088783676049089420987005535458260009003153264428377187917095421792637304506266258140595662470507502222931969515433817559052569355342730064347670082669584862335611799571946396599571580632418012155516820274501622208950927725236877029076270184802942055620381922013506213588150180710313333861518856394812496946048387354023889623976556002200252940430264719317828472711172480654544002854232182218988812810856549959805178998546556217114496068676267825985054471789081773128827415648448534501826508807212023100996718951855494620087194056414632589646932945235091766367700966072711827786377829719973796876181015502819014135784437003988262008541320633029758106711861496003130080063342695782428017171014960357414103093300374723555649310590454149222476705198500175226723017455143007077115033305040862906980235319252813447971642610446716240686073814905435786662696136261809837280700551336673863346549368074162991292669379978627064922900499053080557151607970967379698965304424266885533050171823048979226142729725756576487462323966241448500958781970687201055413739361672253039612774269119069761480411163406361788191675445621199892360507615421926613733401336901430093114085914304767914482302188691736395422867187673679060278454479086754708302605813368720739896029752866223440485540464360833429040142148534493704064134057929494010992545458113107948436272405138733026887739314351715836914795024908393732434439893728302134348375137599731212665664542450505301004440157800345039356050712605444061961263238478608913631893347882745596861579282957185574778266203197136326972268740391132908481946476414801129437380923739469251804279237642749261658474447828806555813010821740970639515348074057118102972837610948855001363607916225728020056084503871005285451691807996966168128486297088507706786373156286766018019357379019001314450000476242917591131552965068119717789317716053805399105163629055632204527952279710138540995520721657751366149357120336752357081252333703617954776916716755451684557278318244303034242974551960111556741773114419401660459998287063099982086447983033033829554565378503195356348821145531288232089642399711334935394580367679540664569263585445999256800367778850609009540137502428903760587970424083064967417872517309827434646128947550130328690329629761415961134329558963288262527703548349312859960322590069243675825682595849002881359954909636035642606632888161250691639042076755517091052103081734335282702888707963733444620803637341347316541983131720194440144482657324146164455377533649807820467629902055937878934345989003524009744538716210183093718297735803643232439317046134591691729518303175568883215363943300577538554849540158333707565420197606146579288781834109229549901725748070624748280222874029148744685903459920210385600688454095392282461292597212680127643614309059722155254754061891307065238440557776131690891901226071406012174946511503616981882532687997163092367710001763341219690722716582365327987341009135708180303757988624006968659307750278724538459283366385327174020233872449118273642588591199092755112992406252001152261595904594134817653083293467075599037884840844657611000915092594855405789413914423420215996072657322954086549893326671685749789177207111989306323583499325376515809295412838332768770107122804343462259773839102873652910571558243645685861239373218425934760982650335726293983952966319384539944492094927794313855126290430435705799665444872425058122025202689791012391406602856783706689656689292820696113824430265632416772142906274859581443459679369080307030457056131328289317965249284172006662862173200849651292802151754838079816211591563008649868314916652948090586598859052844506107093632035032633381402291313097484944245820289756796587382847051140901219935273916441044061746816884949887207518151131955083998300943139230037127940104855603091342764959707255159015313711200191739647649812261418297185337071691599144681614200411124202848833794254644995422404730103613736233694409307803430432310288697267093090609353646781661931258111525618530565330336367935847395082907161187185433259719251265515975124699966396972947283165953295090372925128698996475038211505563099824043443017779299879538735519510597918198755750549932100119169393312478183463766357561537608107341992267078707295185579996945474374226930146172402571674756188135159626156012340560390662411323810325801646528853551883754395969706133682559219260738485209496892755248439848197183625876660094197865584666597897656766023509759451837662577639321233499241792678912247750288916377721272106541324764178381296062258435970502806506380937690165247545376018370302916074980891941031996020650455508530986066731084437891407808538877037302677537952297531685019755896237870969642359507645030791700848520490264926372334127635775837253091375783831015567814698783649519717536611569514976396925697282519299162581927417438249691583811416149813719868722432467425767940148562454439856172327741518467880432798391066217179763262656481764020532704034540712548932091531317859371519340648815058575431688260159807198241538336557192786391404691061187801881141340582164351527917411661182930392037442974889124229952769149136031569459776842942096458997375313959412772323533277298865291071038280848942563405972804614665259943724493798527259964779691618047673912575185193232715376198414842740016906563414477066050242516523022660503733187348995513222053878140461418968073245662565973916789662530908867017048177555857365976916489799893338130898501337428404593688017105737072531183928239368171347454385861190247881151419928817231058987743133204795992036182974415075574792615047093927863876456691956761461961970580068460723986333886274766787989325411956696568723780807829075665509165144338666374587035876268938396732778898907547525799663319473487927236334628160583277478178202717026657863135444150769220358274743345845515531370844380694156372610906775623861497765513507841630664754622959455032850380846190129363030338219931157443500305196214673510114844954577456165218907604161562969258053329128337268777128046085188711786806459242262977722359451964664915719370596226258299117821249644075618705464360213294428332094179398559418957908670248184614314553429782836309397142166592741561238188945308399067502066217620454000134041293206418539396352868986001480917373187822622132267250502522806097080072548718396167605377096710922656418953304640679476259870430997671343611001771244266962507376533668775230935218153438934815043420006886255728043186482492003926070751333300985208610797989466518506156725854497076765790141347643314953967061573638747810506074890629519304179507437607237501625697534856208207247796081536476088672980645543697828552474494803858197608949642456796327237284650163698165884354181261481377302660263794440242016459825370881897049316334676418601515632580478568977329363009761249217155067014565222419131440973751052338431980869258151704631136513486688887944360892368472542019698807631117723707592968620211553824456912401194446694682606743520360984807094476082930042513306187035717998492164180920805776552452327256163239315231758862271055680275922079651688190232492341961606810417162809133172358910479833556499226495552898006474298853709964325376948559137667911303592717269014011620146876884371315919449441059630462405577494539729984816200291219284050140355780683537967551851228721559658714735183500728910776029947026117655916562516626793277188601093485546308764069680466991656846197740894298058001026356490692942149079555552244877881911093829223832784862832627072245789048419214273907720476640483174054486299882816429362790560582574143922835031709367806065320424562044502266861406908995353581287985509607556154640163045804307690036937273605176976833534696384705956170886014904274275934583521502365654429063112662887330366266527530722889427112692717889926001117709231353367098604934845421778862203088027249001553802534891353479235367316973786898264621462570415475596995256502484871575379941119420921983873395402626938580402987066429387641778789529429036776733441677534695790630525987053921813289101954637066937135613535873801777857454941372220430326670308602772462655322694802705642112324445671556222847952118315116406318074352489874831098271124851948388632921794890825458953714183124430446896632111599615925955971723588179459665629232130065414198899008612060689559983517719510256097099738215168405305809611502228488195199909199097617400053749295464309581443398193295535048091048794866232963646678756536224917866645709404274405381291287621104027125496976681195996194277057726465569618882316001788624396197799385057385859542665514935642976211310463934945132087506480219893572469012256031653724127159101872288659797862832491263036224120432419764578835081109011494733439050373787179891006779343515742728805202766689628981735896693220715110018401858702338897128828921230103926614824453614047736637714624696328626242613929943851377427520698255976718471783638978577417281869466538618165042081521559765554511728897049278234698696836410373814655308702443429576741700959558694388330484110467787349463941856165359852125970896778448259993232428240908211184710263705281530404555714200241228674513579951595473761625141197038277007446439432383469023073943736244050208705555382854580384539161425452474035186113183642954818980338293883589852846737399522911755844341132992655761776737701513281062138857364384684463737055772513951475848921574237828514476644477546896351090231179045181901203836521464884431362626793243436879647197051902820422742331414819262352793439980330129786709361394294768742692958231607764466358526167291464321055293613196851436064019352877521973463845528956013030230098629797510553726312734506649491636083356940123415929434006943962214188961800888616023245273140884141966738327076161601949764578197391413701032078175805432799345720214371706483226480126951796034629774869182567700996473571973651834226448642596152940866917037998813161838702643050213574429218052855447059066170149616496393587555155255123222162301379288724444589794859819709216925396829877376961976823706446838181194857580102378281994742366160915554704180855912890169937150115283868744612051596639255657354524649489258214905639008889107069026377830933553766998703992698963122425596756293326377044719960560687441100373006810911946793295751365299385812959039358367101825962870220699069906940178556106480809879821759335230473327843729022994258780451393969414647745342281181253565492835294812470791720277660207106888419637637644287280755494627715795104736516999773190962501664633649994006087409346425295738190339816532603215557206966615715225844339535521642805332820859605000707104390023409176408651475362753838531036643426188814002206434330322645902490537121546980630232428686136820430580847345780259651992183858227780047124751705184813355128180920009072300662735809197950202904915842925485447443291064043117454967037383920037983391905849523797325866906223062598824558395474716763474535326621580395749191505972806118369340394402045018177626724401067899365334083185497064841094914556771079281851767530288565341536977009193030458306873915611870735683644822732216489505884885461804573349892213403344915733548500306415182236233680173792893661945649956978489713936030628752940649871420579153220873297405188644690167606775138852071667672319616834079553576178449155871569874423861216294703514302920521823930111547328086037132582086748141174818708923390631891165652484326573858146147912258143852233559390251535869400391552668274889170742656903589319063213996785897856749417723674561899223442186210230542875308549086711845457894708689045551482845134375859541631678520134990680290489553963147007409756809062491427157337094280746457354959946944103204287036849080293244563967795100183692873070608144225883475997159849079932783063027070388322884972566293624919072128953750474815444540590295993470774053304761510932257233703993961275099798979612090965703844041129711135263171921290956635484189792870444821146101380479796763654130550619145914734493587201955730447031094388502708289529481815448508147337906270990523603299352320855046269734383449448633209474401986763950034299145474238616274637768053057704241410196721396760688213186627635747900240879692856821588538313111560899114161666766765332137600199622249776208351649104337560663044785524803131294956309239070752875346808041056076181248298790006038788515139790934507164879055606133763413179338769780332865467216148625077396506064234802294691893337053085381097772917350579955062404300179033054002566191721468114482019408823989376542637190392611033793018338761804543279759191815039573432629621094107409341378579378697317335702286274510667405496633063354690542188198002979454261470359886454414668189766695065698871570623295778882579428100900207406178481296553189778632514427121652842589067032534623382770817139469652075224404038020714655576602904157951551471335220938141701839858472795725900171225193044740592042571884155994763579072310075964275380465314001274248332675112008427422335565905333024870718444700741182792694182595833969427809703892851221101104245695726759823216232073953411742444836641887968280983000523690557780154219111720876884643798740519206467230196269374744791943947288570336726417734415918993733206842987586561777357868324064744148241014917078306480815395184228432318512897721315840186176331237788017835467498020581848198920183873741234636444224023393288011066558014692681824116717443463380763100123650124289878596127236405034828202013996573831464121683565018097724058934210631666599948349985974811205494182930748520494925466308937819115953543393748238854716945333139021694999356408191165103916641567074711279645433214945955198063602933303630948529743767100801812272601906656501365834968774647034958370851119423718209265948165825972406433006672472193206289511877159003771330148785897415561698273522705390545269276839000523080178844822699143943442253855706446513709865515179867515952486722947628362571814299399384379502231591406818590833433814992280800815501146883773649027073580606547629398442000949532352930888634454723897927819831867274116605895161947340116051483595000221902274413290711654711325583497213687631402943828187353220072326915189904513260836311063888070900982951845936597880344993590365478541740090342420429502840493198653848645832667593623847805707299705611504766239217487798158888208539377221238972506264762864086380481349376163636444044030992295587270253252708356849210015051114333631192432490091793490581442704723187430073861098112580384338110184174151382570764710955972114436836176000441219116873907287011082418553107564990668987442393099612429038996790823445427221044520534606586866779689848985697158559951794782671200219236020504645795697970022203533088331822263678043170178322794708785462728715146960451565242015440989667746964465260626067490978696384533386075883891011896132642451565010789432935332800187601773553658927342010903154419258503916183782511260601155170888587931458639816309712300799736363538865269319840240291330290950112559009489845581245501502002386257110696770955154121125429378339500761704469517946977289359545515864751063981014332964877209556020271897470892287223652179195106197002770833490362745974938010750194206881010756583895527391719063963800212966020369557719708603993513036609687113464090582728577459036642468915511585266357374154920283336048625910079490700552310496407861095768034838821148253517713364450231408482524789306105420387225711884149388288500181776658122239993522835687388304932700230654351477682930458097207941652892413570764201025025833046678007072614487818762751387359519368125976912045178621694351049249577134391552373006274953057779763554535300389901708396324589489206680611807829082664074677214881603212987119961216090480009115027032134831110461819605008881701461598020106480018493343045479716996981233786808291563693585273108488016075824617375385059419900043112878293532764957420584348945985292657873072166370497020798714710203544542106051881325891085924133370624095490740520101521479191623751110331478562520951282319800944870853599993182076342030843817557285025819641560318850779838706638620712840361025941072127796404935988019759890431993919196049317218358463368128135829025645460446436716280456513976312796487191056826113579290063383883104413216553756548289450618396951495565663389499270228736114536269314265212531397753789310069723598076960068491074219288393479629711459050199608889484324502363997943056252011602835055008231373005154338688392610509519988073881236835246751078205714982283605168407976745195811480697542021250394884173060378991476255527932866323603638278381433015843031511940220435596626686392526736003579073536845582808332671353672597619888925443745844284213727450166115724657559485887425450132400045382543808139156251953860713843137702899099100784187388387688170642027354846849403336705837624685860088244847408337354114158324619814997396464596266587671095851621678208263262104474718838562390873784715485617567876423233826408050413489049058945401595627254963275659613549061009816666100427899749454783534387104731106855088756905797854648253930573746750072701926166397840141391685124413270450793040491226025630709667270002422176088635851771119958646013331563926081076075037116448824638046988137938786153393689409742852715724338019934865942206509832216878077143292143824462853706760345111313758681508522932020066549888900578000536373307377662236488604038733515763123969517057056240340413934744224261102462191676731785909879955976102175411547953689040317315826327012340685961363859064694148045840340414650326730250794082208197409229719682213963318016344702651268301400771189381292742485297947486504969910850425371508126043956768644079326853768585898714417689970849650405880478554392872910442441403620813581661594630505844401968407837316117155795790313830138494333306930206488842225105604197607455517261097002849685008258064655199521398645016462427065513369180275688788344587469302866258057577038423039872112817932092007988733389156308992372881555153792531355714292293669760541585561292591599722586048500034568651010059203657859434103299424253464056492087675425116473333993845832198502752123373974832518918296799567024255207106808131312806402969500195694985258044410031554152530146055818586123513272928689793924567898589825634988744736747852627522429824053406365481528752997715517731676953813331020995938943754026600373746911115873363869932136181678447012179200557965239377425261578812814951326249935018217602406757026984924340045240823922605346634888803304252103221007642937403293611476250452987816165287544398282724057936360347959738009781286289140297679879788745926228851482686253821841362862352502302417517785117542513771562290976008013051603673004823944901909126483541531445595287084919941813426717815247550408877936057123109268214169206966155475159740474628778936196948139006352718744540629858888408024577605808482167506874185626256623969632161944911056683925628008370553981510590436193382491614500039488057420738181008455693940672835568023275467380672162496088452133138556821804157412982161049716193972002250592084174518790749252614671647103448468941329341098638774689196429798962328973470145428668427943360670270007578129004123040449201487642846682304989720877947122036942063377125483703278218323810471113563372465131774160320975378714601136863980961361360456132834269654769911265241277211289460345475344346962602362545043076076413451095096682078516679019316659427709485947229635173646578564052706469887675882841278647095982889094877069911376829262708302766975426488881676250156881957850644197623638178412207548440728526879323842398195346937479198222846364037901048054101037681969283166780466892172196695317805137208017368380445328322269953151832728009870468079731243963845049110236809881898657725290444000639892250159357600565964482478902911431163527203647974416190772395194906804976845462724109653625667038787520668930049635332918106803429419723112967050304266267125283507920376020214794109563172091000243226395164108843438183003727416033034756419611471250356986828702687445287336494713790232664370124828489218755039589304375346444736432151814539859895684430810567449368201780697719025955400189160584832180513633638556746311208904737280872571557847527658987939958001892871844865863734736476995874095912457809356138446611188800160466669972649874522903697000299179284747670280730349095302389187901556829812611272080939966729851426771230099736567286403757060386972482728397661796578087284691749711771176819952952761969572703098455259440602477813367024304038081371937834265299210081770765840101421861521606567940248714483574105016657446589486817350106822773490636750526670181483525274807550839354301716069672127309016385740215142262127116789265469692625532367629528524899471477589751180983542263898642733602699522845275161271570045059146079153618029827239177841019097746001806211979707794992719112763465646305151333820507780276830219877591988515130742339276451632365037919378363859843697751633604476007960547610020143843751609941704313758881590899785290593842798740643996602178500821560303416506086442815417933076429669202946580737783078580468502290388641573223745392593395889037060171431133681361028895160404803913771998097635475704660080944197755034631251420500593383263614168440246425159309949137533734563798558860723827147751743148967797510269184782737129891515994782343735338208307342637494029354879344662015919878258386740351837587285709537536977404433363729768493775551325082054536884447897091067102097196830976200604407036649121864532295327702238064704607895385224716420078714112239003206996202335640801099537395508968638048712303280990237778052000570683992673322744325537068347609681961664057940157124039220374907084177059084803076630517898052962676625596971132935716699143871460760698894697787491744799795167978857417032555972188448748538974231829350734628964501616708290015032669014696106169728809023742633789827753359858096573877944512298659064457336237300326127920687986193605634855446034976105470795611848012049637056502063399535538861353698514074060196489466051292711351184615165578575269151148414605409713969228644762853195544569556037092273373337889625108224228835569702412827018435844926340965933975861575996241610261057846354048608603811607681448106403387538151078091708308203659965350653179657478893505758954078393760162049090373169765247111866282876024901061791185731375732655165829194373078578430247389551427366608570616292643539370066512707087963879387337214680245443565183831788968816732442344755225337450234458820789417086565041304611878992551579058986178646287604125997988566574266195388586633296757547765654926879477548678452687751005621970877412143959377041624962944578416168679636281613248991599144376230009889010249690971817844555144388217991539510636124279090596326622446364004422184241634000596216659597524386269947062840486862466942323286449117017190563676498177134642937271322922809268411189374776176691630369680472779448597061763048357216706544004946708277776711637445464145198495345342258662476487978683210451325082743731859392602371550874372712865788847875903384177412514463846804894743800071826160183342959394481011442607823964046818362339661462726552978438412270904226217469713740282150214045873841493113057959560020399050729696542713441836758026885624103129775826250082512572053867729444048922003887891727020483564806453130752246991168951120218317145147177945600422884922281301721364903716779103293984459783644065476528564002990971342921041424960117344464484276663201657223499788359700213178484915761057582331065169147555835495142538485088658750978421311904774603882318316966954652997330938189759184557618388397291895351062045795432287647494609340867564261210394305671319681249372160022525716745508862751922805158657627827848664719576605316825369402407432348472992948926410191389883955145773337611297140346022015016626926936289897800755528108591274213397241009675200363528137401125806779589865661198914906113727605963553259195483216148013356614588077537096594836550300848273965616941998108526945971267648187946239437233357747956350626643384275540265874120580942195408709672334111440340047690851115734139837682646639046045258419629653017276986018522084533552923078893949811965496502410764853701380493368054796889543663220289540359440776190528357261437325033201990625210350347762747332955158907273174529089369898049368225358623798933951072115249021557468824829906393668294563962925941315162323389389102405147374561012695510981120179621956861157619631226552310401969333719201189159980249782235603103855646084589638963525454994005374565928438265479348712677840809175010239099832658260190704696770403038699572678723916555271851867807711645746310038873153625311411193836102373392321596447633863600090609200575049210066360661526639716086074819131319445254387582514961986721300753400619104362460397862466316364632498485241480264956591595861756104101299155475067669235517304561777070728492324891906735017759395961289805544245845342989765380326884441492523140092978670256253646012759887769637867189531328342630992474153610110356181931219404435762694842426201609224534471926069892240842196228047171350772878381116202259601801906098413287480532239611941625338596668342225053291321717285287621685909475389461159593611113117904289376904388937259804349223072885904106156433503486099509941963565292973324234784202057276302390573104648697258007859376458295710562649763315934490304016867015643915086046069804568678446473314368794079334480431491758112399904745764609213541069635135674742903297892503148814232218252839977364221508280045977946455347815804282525768663363191002269110252663639045037029975569536085174855876316360524242140332147726738507530960948633258996967250914909972461858812180340856378399814940781813071016341729218376206556257054671768542898698224158147064228481051368017299570408726643205011855421041796852067856026075548314206887055602383053931137593948118991279076503840862748199458355386993371577259579871782056073656711546011347048366769037225572544100744080779198286607192652787195043098957382802459222093994717804498772897787478864168286758034187640899870531716720327027691020212733287618552244034195280635815695230935102033086264829640221395259677341481304820498950313271350972503608211133262528182328131792358487750427147974732228930070299589610254437575595622458150066250390511232639429387393651487563516113285942476182070842128480090306429830696198885145085039772069345578322209820585565690426538631900259676832170146841002038535637043484795799806474831587217121809614219101051960557099693832419379655002446683810551569550681935842656926319052575600083819956881819643293186080676735238173847140067562384446099089720746852052725688810366758513705525248781308006801448032782636405951209346128349326885268153575589415023033540362215913454283790509361796266334363111635656387769128382872821546761413915752131500348866563610116529629350010946571709810952544630112867281188448272540177603870187084853694616698501914147315742103423861629256228527711723407721947151516499606361021021754686913366523189838509011573971502549240208392688821802787401966814073622092659667262773033938176942621206743805651175150971077265419181743845937031431204036916680539549393595581568539431875793286011784920456164028627961590197662966070750837205200826199675585536572202506804392646595633670749325628689881689868251459139065375268308997202124620554050759563549453028956845706800384459516413683073796977083625882810125263773093519678560395539330038005710149904231642815368043357024784479062790464825571289211280449436842647946219829932323182719387372499886219817739670917640758685036194745298660054064351031659300595193906694612725207619001258437584573903785620667451696751989547021387543855459999295436096097617533652602310239525119768155654961634842000995520407009326851338130225833634793420171707550081612367897697324422796795708056973438778262933370298979347334446676670774236637850825251019465840299970562292905876830565176400331998461923858823718309677932034134915035787372212792530889619414254808481808349112266392189780557509718134593007937673066238097753729687147666111927595960162761209491562902541038672060530814342950357326596890375256553454346663088046614854048119830139553623991705436117547685941570239628891932587506918789641015695047339719768840869999197744286379923003537505553863294235619746142979492078775297999046022367763125337306527876979863079651816334948709877358290796327598937386083698945432180535323356750944250587405869712299374383570712026678958824488752715125238842156297614152762274950606874425922919962952810537683642920111186446585163538753645613138204266749981548404573614977056666195235747816212895721674772402738431161353577081984782493657642693254616542142254625432491946588796181450373581419952348761941299289606811094613649094863463621018319833530750074542167375137081090445940670830548525913928327963475273308373453271279481010135592059391321952065430054975999709902151752123256241988298478967995262659810014854414938545658403077329013910675007537884785922038356968500915068422847193439685060654453368271922068462028968983412187570921521360134163106075508458491707684998225595044929884568461239487989037868538499421664296415065541906622922697597584040360851024170345949161366672251619465448044076039857947208939616069912273581024990869953890674605307369342243026109177264282473047973224010087443975268513876421958248919716614614773508554875350239116116741546981610760606330434160155484325466601522788071763397210642938149209625250301305432333466148081675945031976471314407241295129485089045314812525369230421387363715818079002460979028119691797833267723970290362259369029356373592624938616230050166752483068551980924501885398103796219744811710600659699678513243302080061189311706573140352062782182762950547237417316832775782836579365224471951401488937728544315481452458891009262848691269213274047324249733408428627030506010639317559282004758309990634214581867691557836678378169541756437587367172572689124491166639345403833606000737569911928127590218792656865864409569356320606668508074635833956060433863317063071016667673001568453388411483403267358580255220188565251810069734457586228439310840835734843493417035450818066676913195166046386647777051482425123814290382391242422747526861934438936506687071078701650804433907135672807693551324949830351663861444464062197139554281988944878017870224203638828702813132437361319810561295319370597756328265994166357133988092121716300434985158445722168703317020549914476473086933258901062426818047265435670632954470190430170900947542522798934255019844837123882787683078460111545924370885199406130183212099648069276688934984439007440404678293207039408197457921068003746108831658731700874433711409300697869996359085929312911542120431225195381665524204721994800568110387783794282849482776071389214293026985868669526092149784928957745916127299377659043746706409228871593504093341421835449656928290286289710107758242846268714567445136708036329617714916542755508664389446167220149518771823252718291745759318929433003425236660378209967621573055104847354742829458659468582812557273643601204835630669435682451246691062499606262945239708874652924684598668938211835463205828910148537002645794588895306773461023674668458878790043788277762311456945080448340026051652956842399831831326916325448353712130654548727252874925377180067362421001294144257952245885720710921010191906499236242867455942169941762772887820533656361955141630262561869139840958315006490913761771510561570296324533727681006133456849410946086632975793397064230012866070146291030989706258148094759184387046878040475249372801289162116187185592656457065251036735912762294437964796417233438479501227700291643752045173755395765697999104443742788824562260309476230430791880600762957592303754154148271364563925696239033706515588669120812774956511697495163949966426593090145101220853997775575320135809957519068185966050917551579144356737547203648133339525177424553580963511413395005619538932157249657534728633789063804136754315638030169048904882484179711289150762380415429344611943151588169477992133476956584428887290463259351292673488867780322268588525406717684118854842196992424188194061455991263499450441768051354101809550154862126228311089371745316461545331641568837745213480493542735444307642579826651284525405992190211945904069547686146369493205055864944135362720004241641597455160433609621482066544460800654161279385137994368984948109368871884434592218576059968928143710877498831983659190172585984044173755566764300852562375986266223543579109037468291283221438878511226477479975511224341058903073803272388116416288539972230882204295088471311644662225985115624933826743119577209267075816574996671818540772448213390487431436027075326705289336123604132047250042177166711519570525157660988552992199175094572477777166197239890316537233057474108892496944320004951899095246297945940310589315715110116051366322618813488846416027644589658302442118722283102400624176336520524078957772988882631280302695900223770553616883742584132114593621158738524309435730086179551873449432404397716877798225487446717483889712178741763850404152466233592012098489221950716882241587650723046226390820725606765103590577669781319796834444391924852878898697319083166087117837909891438347276522484081948378732989769934890495478253747687747148528935190903238602402009527196067566503124738681273651833769338320701903260376704009390065395866437879462724247600399506957530047705897798306420804177289958048489309121670617307988879512400708083743053035531488324799907812101260238130537173927878953165916835471391623763603210051822355439927817722087544419444315664733963847131111657727403463071286671003353444571540923086061967142592792233604794153494512687117220335698959573029838421015004408705212332487872389498876960041266322660805730376482222382224692405503281901124909358299845885590186425528279410646756344630199060462903108654662684689030473721964501755764834814766238856964060051847011856705402008963666776039221865707614399384573849444433860477669391525046841575865660161759247480438420347006861875648007516519369163733583787200579093267954420759750103829782635802471653083041485387360077048842568062733211893572748073149822610945932373265477381321861077482204830744304311530989906782355539062847370218190769047945548537229490834063708570329215962553539177523001943940632693012793469688036000279048242365600329239098185857805441092650037604330585976790011032197283109967416790087156306065563181031318265556077677040559663724561956401226493504417166829880969458641681248231285596966864768150181383087483373382114881564213891241659960914946958700809920395472619571408918596836423555682289418431755466240575464624426633532912825958404931959728402022535162582525298694975679605069163557600610506641780368976801148661280076645070252571105217579392613226678575836789537730998523134383996590346238924744181629279668174655302092938713752396004670293837092926954069950307792763621497812271454160531634659953247618240908178429784930728207587381781728389333093540801895749533455039908529793645642659558610240348754675982102681069962039978642167785454982449606428557943431941415110835512959545567635253485618094090819961588544883632356692775039621160419784260998384090035981107753051630200904579129203534857753200419464148410821830882414352833335017642712981194072085474030832827743533594242563810721238346827133930503254430624204887299414646916789658351225919381626958577280041774950159616924706734145399128777028402008740075009388558506388554899395094237279903560862958053844731163248347387629219091799325123717683662712718265522332224056369406562140995882982216993322810540049494368635265021711556940511160590357141933851089579098598926010822657382772031239811261144534099374679273955692873323655290957484942556589762216413188533791284842414056179590433711732724545546475110625435698057396662596886860839517324554829608836782488315599928723600317501120592104835886258620896744196627082550467803190420075334949368358773379798236367256109626807650563200615098753412256393319392250489680579631053880418828681512275472119317996015869403815652121847418118659237006327783175714921965102363394882726650431570952011031509370170319676304706098582660081273082623011450440803785521143146177639352977358056820591286336105675311198843889846591502570706042177359438432913982771417395634533380710592244111888305293007058414643654318105087503414177772825249733072885808848563994980274247910274033263734702183159324799702927630231705912688042934406853331875764749940857118577146114098473231357096256480925728469401162110530095809311615221859654901632489027673174473785761451861415499192838246254638700366175615077325552579191297038169857246214718668820309819080288979913111113140712188660997704278702069237270539420596558988909748951470529978245438003518608884466557419669000077259569612060452151984743279756790405387240562046021716022696227703687546590647187545401979956200254401295770383143802772679024113186027708887720935851429691143454790365654358844834182149063038993672162143298995931904144992797512361337229688535685133885391406734547152516141265729078402999620053740595890235728373273140363046235026290654486250912980099125370956365903503867720542083640146329533310921921101336598894097883601596012655969550477998732111858514051646717127288338796721147244554639741726470591564314864133525822439666188091109491206721993751062579141243589065717925120833514560791853444955305533332383097425829606281080051650575010366115631786224999259470644206352481736489344277352997771083320016052101048628703086150613514800584563613465617847940559464637195422604286364653791460300094613422238393740484852292851867483594701551950260507327218368517196589138254252967935823075608833538831126302022038191474813313309134766957914726133732485783615782385917304997660753702656624578281841819154385591417005665390076081189118894984883413369795262140533692052640098715201841483031518414980081662028683252641533208957142962530268760570643055045862884239612929881449377694202392191589731497004611924429430414478408651159626533478071254195411421102969573810648560348549816172408028938684158217525459191435395679738899566116625886476428841675369778907415548232759552474229699395395403279975364970236295899676369042170562132967425265522039002608036884234890739852166218015049304444822245442659835981122411159735624603805580906324826764101427423195634222915920203703807078065922386528184194783934955284116066549172399852651879946585172551781461686796058528453968153070390408277475016613316478392717501049784017247214930667466186405603082146775572101681062053419658432783314267718966719285843760316303599293497553785399186657581939240982777116859611701302036583166665498775660620441130349320695950616800739905366724359767980675514878405573243297085050389446638575663556269465292108726909903640645601517022309920629022900636145743641688765059224310907865423857793826768561849923087639052716302550336237528906434265488994677448603897492575840280221134583446297193755534718915459832977972717284365736467560537602092395682205551469754215742285065960413470701368435820174018184240470246368583450691842049395446300575489605464482451536194973187032095912237290364333297635319291976875986987833229181327227767527217147274732044487049938520766932985381937233260644252315691167673594569424062471758331545377688910387143041700283475062427576878242316125236875270606834224533861435846287848786184185365740634817042807864601723402509357629524129050016934896811893891504001868690769575528710018782225537314041528859733582860167017272558382831176340843759775485350927952459592735528780825712599748323656218644358285066816920208152933853088591932254726085832228028548049682856642474367660152103841480894928719359474734023471407496448128055966937731401133031921814732494727163093785382615030432204178443862246469628503746911826312516442665322043978426710264503613089264489891110400457841855449027483089403937650678237844587287581424367676986155378712807034566730014123599708678043013908392917457885166536757892493296236270290288539516218025757058673157611645900025047282908771407607901123588212999822307410869325506887294258684340082977258977821654485901571713660474888019292228523319543187516207052291489070646695487956813466147208016845714926799237454654121424722814384577115007063305927247959132541228860379925675161388600073323273959178522590123625734127984689724707615341313856938634776067924698305761020799747449943191138356150160751809989095601663889081800798932928956046034769898463755010692480470161707339930530703402193953746367489609507444107991535420245018168646865180745217489372671943616461425939278789948214349253332750140652671662835967311408276462705706302074351240749216217989682820079157820614510668402170082304372778400606133067962114703507385677992352988632630622168955066759837232574487498696131011830415814864120655948377492180805333592076617810276302065377581603754899566404806845600739062932399909520450745955844091845375791838597573504236095660151524211169593236344463934762136526173629957592962167249300124741347956305193130507112850947874638070118253267677966145090785322981119556508758703277896995290979174940509766652520087827429092121688294119317593908757288455695503006477128082350837203859139062950039845911926644561132413418553325564566179488608848379208621739483527864621994758731728236800213826524279718706927603386607422236765860707622394759248891840886734670382778511181604193522009062240767091351685785612355663257597485478061584596435045548141828340679404419328646903158771019425847271737509289625470051264866502672930342052625353738396898005242730297022987657314120003657413594963037078530759176038459742928769219406251775497853496493937614212449291125062892361340624392440892598344001096782397566795649644999275858350543388486770800573195101321761261659834599864678322405233249274758849676401027256490992842633825186746121836851706316366466002866824271606338021063746829904471615325691278893588741809846415831819092820926435392763083224409894120031312525968601316671320163390265424048419206438512017524139218094199382433366265754236122876732877679949239806700281469955862105731793467364342053200932488937727860024470228634015537722143943682198464731602818275121234518394858884174899210148274431426390335416727684358546454942836598769090386920052376312581218526691416264657401213746786542260499157127858858061836140608691685488341505263848496184760305509207574132850839257015062418406545869767134171591545808635653997708593808876521426905637048282778128001683993134026473048267006119732688361984156687481359720444028371408474709468317309263056945665218809158539900775383695466804440917938842979237282180584289339330453206329612268800897115577763533334864603658923579241784136418204781382454492105127663605199316036555272328801773443831799575189260215553043863178538486470530082494137227975468494568940535564504233586618641615327549114613972440327348715379383074821123743540103178429024320089976595513532711075765405540967690992917868611809240546752295429117634394096184845590797904639561010391070267815071553312063222381421300040053499076068523273977166938688553688836398929855456224663061204762218324036966113961422466810851519400719040587190319958390028259807371382908116131566729203653448898914422358224876830712441108546704668648582860726662787400403047845889540169829006999890745364042790613273637902069375953903902350795118963772390598980982788368215826123490407832926381436835967268871724923103182432110080710622740615752493844307665750036381724802116336827019380840835663589346805395747949675085999966740384193522040922244188099769884354603282694842117317586924283094571946544566561100852308955457630410755305118062436180920850605410752066910725577572404489838325181004122083703169648335936481065541661380078330099466655310720445750700481032239879223564822850516681672857084056418430628819627105612372993319689898226674534231694577741340246735800542309599259867189346034366388441386156295445973568327459837862332046183205818301921901736273127479656554830525014666328358959131740380060266479523043982462561863010850162859935233173242180567473623293890820415355279043559266123668836990875383744006978970128924507251189794901372818634920703339810807154715484125726600589301027409024884534658639250213452840917012621152635691705649993315903820191382062445165003905755684913196036809517925414562320860857159478546895232640007973418582871864234997585834101056470545945805684354681966517670613209304540568777824707786754994804675212952625183865139633030611779854797842037709681558953341486629631350106586191728255301458757807919556480540326414473520860398244437788004837786689923050272687493891951380391228505455695200198094277241882160225567806119529546081721873770204411809100196332101317762981167556472643288047071618915525293706890064964892148212228705078390508423279893786674332258095107512272929918438811370702766606051155372435650937649979003132797410272975068873686690994793765139093255080353249834176035805303350175270818818346001112249406312372423883286936642298264716517022910137597738995608572303529846611339439186534161085394837638557817906346285966113325508097450936953180824765689250874525052385577547728889534177917396917170480863872702037545709155527617078402366413690978963373229362259547154128143840213722066518454560348554261682661883425118537125854791981798791080184004067191090584825316321004658112042566753105463752654529032423440565086358462127439865758452314059072988316287773419129748743797744919902712029127924116490588348203666219313677041672726749032535111788548821826227030231096213865681732057962265320926511554730801896057587176944998442514885361357895668290678681404025843001618203650224889372298076523262440309271055801304721454896744802968249837013166597134444716247434245728512303826697230242137489425870719683981516074399579576497201365017005303985178975491965947261089932639067280763893641689751920723409560369836606592534664808247627092089181876050760151053872670115584068636865571213534784053988973098598354479839688744179186468493334941079923601890589320760533915629880702402087673620305608150211357759428685134900344246306481145894351569526403527129251165487717312048610605493896409713089842266733884829157295316162079188739574400454293935606646791385232973699550835109435079281936501304241141344849439764066923268370002002237761934379824457176142137921656019966748516680926779048068862295406062260379930810236100420515449191440930903935512623826617859761526039581238826238658385603143333592055305510904998904049297458965816564038279736617895385297492795607297523618929897692132522604636571156266371543371662787702169518049722104234653898617608014917460142713017844205973926077731493830891531529239176223098803722709927227480391477984669867246888897062929162336948178403272930978417953027672036029936230632128168670955107013822745548518216555638267621920910555835435856722914786015146045377619796071704564262522048801700461581228772641884322637799368938371294957260766191324113920598736774622260559951159781834362425261634892674581270159994789430834990629780564122939887802695684509750029644249057907092519323231568442549214702167012451209599329537614702201296279698893871014774102059724609364068900359005106490296667398444418888086470226160735148638064393490310972466395969828291520954759991426221121219237520520429653540981577671982321313835209516634088306640501670628058023701260601983491665891736619216252146243179611373838018618281448408366964454792086111632872892619584445762456667619070860999342212489036765419879009594905256807373478085517333693840916029730351030952522900013014956544916836930786683659903684588591149188509947230444914109174510726439267528916755747765483753301262563085013143765248118543725232021920667390301302512857353810293369981755434479511550841425194816055401234075773443272944525409801825586732892856809574987266606286584821775756528978112075948156221638202859519512812728150723287376303183304992073712824532148254847905842537158361122763629179661597675798436175835349038913917978800684630976290381544147597895010762563318399542665042320773381227262678919013691665920505750818148556003228099980901428799689483767473650259276124463110467018442769403867304030572432507414715590342011589018422124697479885048920169077787513307723773632802971867471562802630513345386401441407719614845446792706686252001594787944460963801558307984502763026458243045285921950482532488464902807508662049760799498372541004406116360825605400378215401542210334571326325165783577292283261814025233561069350650688611522968945194849004640215820651050896338969104081429806194050625148022491545230047683649326446173242829850442912570048738205827833523630920276699889182689408573273446487444328735104533758318320753170690345173560998243888387395786231701990777224370064440728261071337101717720167476646346233891042390741503669354414368789822131275906683231379429369972683373501689130796929769523292609531862800955825024303370088709406505153257111016574720355319153348716582513353210954085826617270711521015200021527601147059146445940821022318555430533892399074068149129486357595552210654353158322085619635798262480483923202621833237436036319791160652702555065808606108111626660445658350098304010282473102912096142995460261376833155450659934936100344725194331848948055786920918196202164961305855462314313793721260241364324922602829695184514823625468479591497399361236747108436243373328033083382681000190930576271047314206107037528801803946433088892650500510639037132543579360165921144168182818267920629370979598328372091620405115214544302755007279764281775088149164007815155983538858027190554477696962369750809421977824830619166099693352546725920937468939354324661331328216538884471146581264580044063024178126210798872765726014379898786240165137738210382941420372819089686557212312339557975359678573616625493665122525146389207955461285010283954095413818855914719386145461732929840646935794029015182364351745412255104789562983411749635340797191892201414840372111749851872033950769354451797234303846693649382412926671877395113717678559735606164134970635637778942933389051855148535200435886595027901951462052055033817171181259805084024109794112097689933161073918414055057422587577468528399104721482433761375176827669782355638152974536026286929630483287938384536968446758557548736313294893185723215372668091729072155462256407234830170041863836013914996651910476314617602522697183668160239466855726426981162267083931736275126637201876724043349688072595684943442569274516363197406861959847578048025651583105601516012036595415957856437090349622420884935707608520279603761020598982238775838855316726953196656031172955664129394465716424691666279709350281463970239477452933757347042383003376664411616922262949236333824293994683012821218900817893267595934138331032881116836965735478195225730429273824961579296754067343362742208664067228529276068357936853190801273007760477859911052622926351105083210914104455162285633161993953073144872426327347834776118954776536683244063601014557189708791206726076088665435327007864537795813250475613039306453250655718754714633723924922759825480607158726602482662070893293241979324404433938970654878099384897531915532521021832015591100195427144411322526904560744116966207867910042252059394844799484092479489372133114923739437104465860355642964528526225879195635058854060880215662403736880335165531881079729734990813621768867696159549581177605124056780231080455808272002880268840113387678903112784933089111476230978487335134302051339910191611338593236527424351362917295929939328817408140111940970687560736334850342986959474676474584239463884292427050199995681054922625339725342024353121731170155262707647145119342623238311613460769398030496368629515135613522339574738886566749133204892232431949501182824209651652136624119880727729646705642834766694171824841433651060166850287130919315900868442595576737177058494765281349536245397763795018041594094540578969153595033542171778377768929606134693368785525723501313336752575204138058478317931940221986187620518710828443417498667974324701829187676065840384139479025503888442750452959052609588475735514516483848202913570882646767203163905412209983443797290001275052443774334014005220454033501703267136767217879568287987530611993902119338156273497202935250528415957716033187924386418350197915601238668457901975337760496214150667063436361529691764660511605879500929018049016474614735642921943518722897081767803639619395875468619996537354147839447887510015520269666597335275362241440236638391462785333153079110483415157624958807396289922947290219522937816266671935781065934940012456998359357547573831193445395866338717097102604879137135093759364165157030971436138928235034438189464332274483851563774527070441276880582790777719958802014548676297696678868369291545863717433517586492686440194710893984047636582363332208720356011558279164212022655937493771219752984803119460735308559179070690178716344871550930174858792153194851220679632835555882588335935480626659396683243475034938226755952883512279254922874756314368837031363592473548666374491065827776981920047319840604742492375692248324765469377299182103203189288932516034520073643428299955271594598736476482064159540819107297473385844282646268776322315738550386374880933463749002235024031995075841123520108731004914560289054425530207953000060600135918612400095210542486843903556745477968485663398373369722987350370965893768550333692979063588407780341732674397527375094201836568409193438512420421101388135902414160958502074225667796833977130290594014241192184529903675742095627966401201599020673738608583807465560895761424361082238121372018189701867256269012053226609162287072916205065715432385291324250024196346583303872522800822518066395998797309167992791405940524098168477317043789303484824705758949763119262987982068411898284522456643674766233445233276398101158767018717623817730367858060482966271842076529772087829663927685617035733690829325464987917846705912215257032302178655481295521269709963907365740276179208024749704624749126495977361445531999416023074947710257792151225010958517644088486885914881397468977341559281746701397121356914664282238260419701960179750507943348468539127353859901185131165519810489490878075913213036492135222322602587779856551898484083110555422468205430733000137714438883334782519573215769403016708117805965719983012359350065184863403362506136704811748818120330974048385736488807714470568563174292528194637441263512280823796111527425686435050095937540601277062267100570590079665409856352585009646620312445862648710822771720276278774168972036154144395132898214819794167664035379873165326270037109802309074132345236141576702080310602116594897340516190723471092128432349154825722392162660016957387539010919893894159419357932565144726105009302104438787265595748338582092694891547319002149181180327118713663817521984251157832482912795138618971450458128900694410521577839748832650896109390792284748624320371374257529322658026361938543004551022555712023643153913351608220053765940077126825913768567668182719327234261138202260824578934653501583903120901607164669496548214442015108475353354258559623830040291428197850752610438062059920923836019136640149950587482531220726401783486130890622200243298860738607690004956504184110801987923237122659473207892508106128806993304971524406147591479514538435124754959381834114942786764291149068801955025411951014753514999488464249171870036366758273784364350734637982625274014918077690803652260932920305940688620005618401437056895333817680625082049768122818327295701443048067888858026046550752568885540990952177501311683612372197854543676676803697784836827980330220149178887322853184045998489690685656895503778597626190789097085607143051878788505863421098281383680343549237069467234734517663204681028163951176188983950481223696016515893181081019641261467359170965700780919488032299327994941558710035795785651142696248610979842555567109571540693505151557074892878676160298882727624804603773048759988638508168788331229002725934028390680409510338911677338131004736296300870302662630705021053276578414927035072565377510763594312786356518034715547079689402095912608691316951038555227580205729297829220813093950196500670442881502759198416654286383178060231996939419410791787234414759058684202447013733903338740340766631648986228413461599577223571176505535172000586495667666369000810542517203687570392937928377000684570349845703800960281294298259799166311167737230986083798124945008458835990408390990423831264425223362222507603176843474014075651956941245690709688510287802740406661595904087125918643213714239267660247789671627936572388881942299830715594537636943153076499955145528541177400605009311936617129642459918379784303149956543574746636036067241148922271036519063703476812269436666192840233806914734505500690424462821990768413737044887195223541537082747107086554304268088942730305185865439555831641424463121858354024416226176110570060514521764434253390264683489189924669312652476834628839645570159204582141294192654583045186019705387931992886463688263808205949963114876526959282489762540928904834440020745036556204101445907733760902421535901881009471652133193759678576951734904314345704972250831094723243064475209970080044274315249216149607658266489223015034347097070078849237667298761626767962985257651970498407240559376247427561062770274425050965450019432753919147078290277972338594061319064202278788919622579240180312453549411640771295175973750480203219523272986825429162240879506535193123523513759269664568510269419192081120488047467218002639234434985006798354443148412459232797558824866748399005047185952776470876747700859855016742372606748979071443853322836698750870792736298427064114506308787125421286639211601859450242212815833473525498477136410718508176204008552430169615371762330647683559348962698155847265168270251067595751441203935535761971843240909966956977739610627398508907458002103119724362868068839514505388866840461130447539990865282581106588903562991499351163269920710070615046176724179197497472507906078841614577035745945293963959149504041743384373205192818097790745965284187998326015164431257676959479168119858809391787562887432883520009517416793011507225573294275672888366439458378223651744182876766649666136137631072046387902239510103331984331970784915531552861619460661161093258006091355739963553710675212219429560838149872957850126122963975865893596191929839877559469321609198256861835449539038510943319964118119279951879515303738508681522260642368672631436247863746949286193074663831267612125827819698655765433123129068860926957060198661140862312349576021171799107954020242805713093839099399774819372729366120252749110013467817641446174406694108949857397352613254799051489176189840038210674028038684579455390421325231184345773762543147143223104822898494605167621168152516090905076081344854319535129199828518130514486055216369319378968893913965684815293315826430013692999353130845597163847249124708861742934343618914335716681863659603263895985614224622179289181215303803093964820268083105028298341534525733505670338737137980440685507869564552898307394083192807005807442473835424122740930648359934776920430304468788880545005804520117797635312144043760189538855923842015103235384661123174360909975848058184472894875879960125331027842624924117866933182901855434388677893948398548226327301839901649624244719414513289075828372217955234783827176482052952396221746081669288258019868417266872738811315983052554777802717439921216904677923283457148042858377791748468764826353241809084188315278022264909540173716504010900415975547853513683029389443206222435192776659762498943817429038011740171116846921705958130077555993215996919733073825450162095377968050113927291087492817595671519162608191533335129816266483375360844627235323976904611997907520513203971491698376159023186214586938637025993278052668896027912439094916817189876272462863079748931756168424795920155601493474234727125680686382110212061871756025550589994883518467935573489473122242153866648397217664416251662539764583374779883706305169164648280900287941226553871883899295875938824656017655609927716455964623138712528552422167006835626253535267101032209562307909595289561205453531337014704046639499090767405420229586084042305515943728719446087314165741483321946439614310153524496423867205909849851504019599793962713938539117200924669418995962205604324324305425942035749478034822864906779713965329569923123769894410588812204964393693181229565495269161493148229810751906140378367751901511972398597063602086520632507708537043399295198574596135381820745964930128816480577447111123853507414973799228073757163287333282206833948542450127682687992058051556819031960108102999987870622139999025891203761977677416395987975022814034697889209335534147270068761841097685603389690980892359190579420846752170873085379325683637513623394621382509377811982223049375711089125287112318783908199703252750461568783935154955398275866743707561401989057508838721632523864446469869358424308759025510973058015288878722132402093245518676410458076813546943726390140591571677471631692836249543886591824647423317325335722165426474765059542482405862559658120330715279953013629712513242557209785886302130021739961581971274867892041101646292973629450659429623455034208197570310767669576245111785769054591039168729015307879311213825291541469189058359313257784539584945465000641019552555356263602719434368340856586900028910275300128813549908790413497322032028394547153353430326302135791780549738702316255057186793901387839980997749968994553435469259012982109636612591637006576316224977004180902238905069570775664042430672136424090885139106405962293880846177113175983371064795673064935476501571176051200473676910818392472903842109796192066439783725553738281021354768471312227624918955607584386485309373698383622054737162225273947723273984202067492130752384949592332182097648678983793325897575821429831867993053966805285524837105085409708070821782450020809818962258070802370946069916578616762681298144192140695281991029880230277529434149869581621503240783844009899103921918707209296646267553120643765625335595647077535028067755347952709631422869174196794387724472768291753154996990248735935880251268413763275694045195253702124540182923673892017393113158343880123342764843239746062702737608588602800843032682423131526281558382941175363291115508793672443033756844356700902730640670966035918658346050174576191033004371483546202641137022293352048969886956520943573858346924742883055690686296491051863560858275517578683566836969567312971542183734068312536499959893583435177291633781086818458229694930761216604031185214611778991838618661940373019079835386501797319931710995436831151987262968045415019294295041127415369596298797584647269767608384066186666614973158437169291699529967152129862466952005243028101258382327905713594954571565480080646037765840438070052636055861745317046711873663600391827868157027488794377447938247551218239114790116419528395700674526028471878186619597033618751426652656120781042562244637757691907504050954921436301889922483104439397593980977967226023846706698943965361945639066779657164333143792931490787059677837943853184361895297294822403650326345276415245358657973414278854406047586800059416355722588047892133945343589647278228199053088158626953397213429230661417632990875563301936590853333790528130025843525815986408445021273105386674785842965791352466678610235438472006826604717261409462918017281650910966863760882237965885125035860659497842214581653368242618716336243218263554286805205323817888054812750798704803859527066956675953716382815045829298189033235553567956759111939120022014299810795708400269630150282576741842365117643296798772028947241793730297717761728932554260934929173304101988585938984585900326544514902479392886065722005281279312776148003202455902440967232099909108158218394212452973983691443519555340922766568638548008350735580147478211221178419375205123858961889886183633764926561071439418373364651865710304959113062530458409538409811042266277857388341933697748478962624409266887147585537308360395861225239938158322222548177017942947718728744200061468173180149062735189553262605882656959592815612791284399261172615649002636030867511943438851240647563196299880842484818534570519238621319242913984547853017669994384647850180249359739767807394311649554579816756959646429551188212663668201146983130326994831604241764513654288752228810051964467977660375567299560088330780915563410587064646089343694988989940032106083110398813322911268273430996425718035819380999411665440257447980447890308712399908325966074495436256648239212099579128336905077244447591270551777449585903983371213456701745330894169141877812601941265574960742795192293176969290367436266106653204507733309929533281371349546256717965233876755532284117763101732974183437896483184414375632826840219561338043277217815702893319728680048589722050713554509247499380519765347797450392600658068674135039287124846506968790079001678152808066403501719687472578805812080574786429430991514268104661543222748024636176628561891161387801010602074429522733969614732759209832664841735664623696301385973496967951068703424616035051054039235521789576061033948752114440154761476530671822570146412195827179803689681551697441976334107006220578141882007877593773005913683850912503411151183025106436394151996681339930520768272737501414861690343318144831104167533262030327202974972783546348675033555089086954235721182967190246693352935054050581974379028932201912624531162720844661938333261703404083880385672304969823444472956310552337674887806183029032629899764094899594812611761634230465516302961902172660770492513973133522941211856042662322274042730007758932271657321215833666532453670343733391281400998897592507946179404236612757287677564703493379809849637175796572267709026353444097393411689608115207636868835778018151829418731300765431583145533111678701807244141843621387880665749364688643972367810741415549731923031395173566355735699604767126139304124976881148646154293869566322111029436006980054614889516436556465319808831416242905350656659653184022642515514200979613999116782286285308538414101926622332128141609786344527581191882059762503084538736203390404940606743082687246619890593073380734243458408489554935950978560636983413781478606078260388009663006037907072417715714674573703001158691346679195790725192135305369219557571005808872895363601951477028361187853823656208072287122164277117315093944393980645132243299619320754600111036232502849400101577162021368081136561810192685909435160509110553281351404714435668621293440620564416900197932422334933884730065310534852394892253925972944204015770014571291017581021127831855440304273596068539739625565200071998757337323384758974699383834518908592770497592391237588285071688267729140339572662292297504243549072380068094004089125591541819295421000293221611402680135746625597009595398621114852036788998551071823676843103986137306385392119214027083850820170522026893123126694860399047056454516555542364204951392858160478386176282078318929036825941029373650341266449257548094300277525148313932813880053172776194411453080906193438761583086805721980386581248240039566542442940013200516864079221800695034580520036154629008243267153134757088125287982680061472192774468448796758240639986151587253526541393423843512506541958062174454056037356533592599170364596432368475791657395600821452880983411659060190599708673904510696084697701823440599885238289381606878091214156513004259156094896754071565480236133791583015045317251547608445564828607941283630750301394228062331188544146694982078828163838424867577852381762958794303103328471179849774457364216467294165286157675058072432048448348304064997771215669527158902347957574167416275098351674654292776145745691677509197908300303086365717841679046950010978575490826825875040491441344620296415405476287839755888854546416850768644517724771443374159503356022704655111060695260527750693895731230537737780178886703517200402110985104818440284335705062303660961031434999072972062756386386955793571882422690101005537715395139059368698576610692328919001569518208698751336403365885618833264755036376645032199834689018498939091107031957491311196315900074479461377020325229533443091483694703910454970591783519588978637535021090938589531220988472264541958711973310642950218599626928841088266927010624463755041996126149937232282085672826755676843368087803389946361661735830282208238529751090527487160626369529018627909902079879080591678851178499000975809326920451933954951936073688701464597536634982425247809607406454225144672847024028766256167749583971621137000342191177802475408875971335930058107636572469726856570956759604423339291614919361372608875307968811671047464025015394850604577604593777120341209211836690428063950950820367972061513031218846516078163383680900756969316312483637013067645716443078645836967276537658858641275852869465507222746165357548985642565344252527190205571772846672749334661017869250342567474270191366471986924879617233229729857610459935872502823571546419357367897411536386283973232877160330510253240477388897187251228948853561788499788716260947602961407749471880385542537964150174917842554224025353279174808054102894535569964556668660721930816573915059930787070441249114920432341718829647494416085629551339762081566851980852296290427805206348940389348191102955432535659600266066820780911282385980291511309354143106821527270002012575442476795374129779555635807641269209067506849835103310303866581704873868601545409829356018845051636077994749269083923452565348853926453443486236415053934135748300323638525145528371438508334957123082966730982051061451731471775874894175711045116082421768285899200436759696836985700479836843744922649012640299247166936578577049121320122900875441577691646284312783096181587261631781645520092931150986516928676830242130064035539036022565982559555606127788507684354403193224248782435222815849734747600978776806467120366108331165525199930304022612413914114782393891007181919727710592750702139731351884175043581082824478550205398485753756106675716904434312350137855841852107201514922600288475206356384212595518481015592604378074118743719828172463443677371248863625306514201634086124142972035028102708545836685434149105932669772054610459057089985442080209801318816566918498751973616173833353154399965675910457824410351941740117797356244380691185192551158531341581640528893545564146154844189200095072847756682253117380518733721483986095478554173652088910757417978574785855046322256673354924979447624406965014014698081184824811583658287394084868036506649226882604542289356292988673657680352649239892157921988749048944772329087203285009681480455689789141111594081656921499487996662413145318516184895875286636464854419613095950936091579386227617809990412088627597789052511214356264460695159958448353145489965334847084699748027405321087145185691849337989902637718513107609444572724960155587494468880426309553344473666718320547643961823305095101683231331399502215606532877512130368362052414527169423132467616699733084574392281118531704625444589939547974180290502430591649722264458034291228477395426132140248680954990570282196167775092120849630444043366689972779696244308111856100225096077925431893801206423560800341739458660289490887846943188306662152559516759138670373902721469833394033347585076179341319492446582691507783884516836032438101491558437661716132727495266632946323519320371029242083087901831237727630299643145487534882634750578081167743890328674914115036379263937536939089244678964006750047230378080890901952346015378226255891161481151324484967985079497325696510116320864534429132406108930443490688898492015470038191920533637433985184496729573595764580355439557251338116740027082477808627813143241226022058457255376032991943369402017736873080648634238415113837446044044187150513610190121606776697339031705538309505102843573521185806982641307697393821207168144780932977469848209702927495439673213285349367555485242057826167805416203504715592450151827030828597301556253145166778641144193187382148855588714642231157852333311210506676696783154542116162965153261271134073737550196449052668678320277063621620743516781650803367819600600308753614548373044176077431539150232113281714030279102457950884287616708191002541580130397503557365358994268613089249935938759540671427396530225360835731741778632224938583608978246505356020401746419860188383409381973336109798590095579711504684656863331003891609899791084497960213948139909085135367518164997729112380680700324456283400009573562913633441830416915951797809157269089436104669912418887361117447523345216098131663575716076665839837250807625011872461721293340076496098069498442505226298399100465599189229645593352217077451236720298086543112298629958156210143757930432356695814223825539600997919741467970501967143988606219005555572641694447822401574076969207437339393978944327375028767579815683112011751443266001371024572539363061148766960506826853884325028957250228094067369627538205887558852118602289156065712207380396469290373116949467614782625951112911262179694863683676913924093322430691791690437073465702628662926333128425374780803908538712221442942909017335095284911803340364975898120949507193420177613108771671110023003557819697701842975636717953598793456702096869077871200609099837386621096565844990162002397838127185649377636794851604316449482877519475921033905129107058201422098296519558816761003813636229781938284395631802309310251996947039514648678203522368423736105435057684849458180049207470338308112332856540296074487213905504545708156444265294678710687347629669885162459051083070075636193181882878349335310477219807442372984639942130331549494937307293630523617907884569705724217894683109954561428669193753867448165163019412768934701095865717238771093930391993004516854249964248703852965705324287584926619850637771357689827428149279757099867327822600941077155020255748287099569309346727993567474012324851109643508088380903497547024858955416176913028649622555757575820329884971074084736629991782256895510352956180006577447091528091728623269812655531517446906732841019094462622566909565251385691885137934990582123335806037397150895222322442703186802110537148811001750381108145259331182565736587953394280240882395922447105894670478050535211224942082016382012622106102046773537725436275854144431131609817785219320578872102693518937369683527629112491907846798693775976714155814640595652653338233573865490665595496888557847829057338820170967701474556315372867188329492158681246167729912651006646231915788279565893424386284587478211583882272636049760282192199981017673636211640753234581434456911737206052789745039284512785071477539109149177834093224956397313126796473127331498800423856106679488373750624760638385632672926415459985945740605373584537017508813382592217189982448303797020975919633828158816929855480432642165161348216610428816515552123932149012263760437290741771175919182458888657691877342496651531889152151826827324389816035479462817845682833525071622151282443088822218023086801796534013904690132309628872916006023088454179536457149485884827045355906758550077853322373712234652274770955874845103444205448130073193089978676146783319483224439731616510186557194781211694025894964890182099678517622385738303406022540513844746113441093466578429085718344209639594537887501788968261455660755716297104170661022401551153383430694606628358439685860836931887844163116741091705348930850367450954653888077513907698828889769923952713347984125732235293986869438975194207975130213010190127594877405736598715294931298246419708698412287188672955712506581820259272386011276794561952476312944447784408914327622518138018575377206714471374400468157636089245808567582097065784651005901750956579718079537121893493225643383990356633156486843099942927421537094044868319672782133406626509426368063150117292674688038133335876104418550959711033027469078152784161151651556879487348447436142819550965077465052566959728264465452068463537581340263657465139573008440965644904312864486245151590576758422614642280687667074048959651584684696292510441156202261582037684908248522515885597576987080145420611065314714630852865492123463088267701768912662751940695388216365465772008409186015257627960611416727548096364548594073933967127818632360351563097326088660316807019417483256570516219430303614547576752954207845722362560122582955141494180674121691940865136514234133096464621450965287883539612698617594833480399140531334139744214859702341369572525859569021655425947772111004319737746688633077293004637059762393897483697185459099636604256266514668341908249832527718340829903732093446885916216024106128680742892298800769137854295972713963779395141277496917133939222187886969753200381639256398868651412199182767279262733400657317463575372964814900952231205550759090331035955652536461064075210248222054294597836148419558989150969235222286209539888302276630740211606638929737713658987822970781253661502274300338557730253108935170252780303498518177465154292416120952998082080213629984840176650198747402106773240072628464375888990446761131774643089327832478774505197842075493053056216703715889190164684160357421372088915849854368462046069500724805186939394489798212788856519591428226170086354645227507376381086412345251456064993455501132334223740920683406867614073193912985444775128807066609579426886621413365838737068264607815618404287302480493894037231590516667524094089564578886949736439806208162225039728983935862427622971224818501845499289849633074223604969495435973569735364402844946779699098025449743132184485817680419155525609296969386243624434240622819757499840023038313540935748187075276375425150493570280590630373251149660942870117836935040505409018461818287484784401580469516889235431717947359490289068573591821929109419411194286934215172847810560876693747036274941457714540167253473519532345604749925588397179115399017658573255854065041190256820238633369065048234171748715014355896148801607527576142986963182050376643686872989578026944239332285101519769998758892074965732992205095267555135884017556071181114585815267329695942623783350238774216040824483356193246138755742201576424117779257876654355238112470399784444769227228190217816429560022116235509934979971970686538469136419020346288417289884179811676632923703115313348576545851444042177751195356206183446459456285635646420743639327724369422396473718728604238926707149089216482330630380029614004187480908663389880530081988366111113629742443415956692193488603187683099854420526677865004574047602265856432635786465130672792361204497996320771008831896482913249651748867122140904593315178004805229666891382701807414447166947432604742002413278133144056663061567176006723769707277835776199340907961609983730558956525905484911793472983742400986600770206901628756470606364752228886729535821593697369453370266973763263245024314796832204398182552623530376221742738040719672046111540517534216557982623473587418839569487795875152318123353328499191828945243960072081885498506691359520210835481294338330770203434437219187415882192258639839258893623000541103495179324452952268369208960263988851822225574712289349174756117523076873059670252566731901546527850931667565864521895688913081034375772905096657894120498410038563510829912320505611812130333512290011849681652629234616100522947369548016689964776376027973837395194577251095867433369397716955418512437320588489783353831153338070698388902872527598042504709960134630542423307294562168555019739424028784109148001274920570925061644118203096854787187943109835577113878588587860003157573511150718732304768313522101641246978988846821002051121180678229424226589875789348722603981956280049565709832583178723196634179041270266487195703101849332388539370979941445491451985333521923131407416625076161735312562124437645141865129934937365284139264375626871649958205590483537305599816077387379674597264404237578652512908276614215563751382815515082323614150168368956278617700395973609472445232870138928949489679603358379574378657430404557654206824521936588320467282849797353248103540744921414255841484350994587960068732991497856775385353137745740721356317007199537037705547949797078970025350647975428817824577724439535939173531181465827979714787535736206993926970021940449437194287324398209926302051645739340902716043333601826192606765244555390607093311465576358541452359184144832432359811616532219801435057718490202113098245125762886009695653856462318913461971160168569116344466165109800720588772906925501574015742037648204094015695850080721981858292428716002801338743547056513430638868647866150778889742444404944752337600113454387838946009702982485121197415314590013148830688395957819478868254944760453359176521838870032633635294502582855801462358270914843552763799566641198553524800232244375003215152257335801275402865677500456041740188835835568475349509619237412487809275787424331792813267646364755446820546682871223706620459590891624926279323991440974459472302697372158056349599503658489641256988938667819441604668123601715006330220653999458438406548813494943188833164961544023684535456412728650035382484549470976258292503414332604525675690721201319884964280164908900848498384951145731332726250173771187795696065956389842842179484800831442465625201728732154116472465160863449762925980790271003041909630723518648523418818275054997799383343835547801207491982297799813812851762603755964210583254655948436127721617443008853994090256002305536261856015775148891356484456665264989193422447557014499241033046616180352566558334248149873733230637336000224984667628681861384021573603940204782039826511440248501810832964739338837122875162951693110357980243537525396198270400291177982787769736567992308213713514771898151304522882317183408289165993419121991191251530558525371130751257724083171759148795697560196625107624796126739762343785768399931586652973851005445909477817283091641197775793537042799177057480156924482163344250277761715080828266028622370596913970428719393904434044008848402937739711424227056767095404286621331823127209095690552556697922288562223771567174068540868512673332474100828966533015282201377598049731816533428704511754090056285135012210516312734641552805883079948834844901721229904974236270939133107084535390710512201225852802738656792128761262903840636177339197291611978246812220838173049723158839753641755520393334621530709183845327180651505935751948321822542754917127662937152338329953324627372253746095760311324834288813895466909317425069576594505210345853432023385529065215685668173299908925473774396972157713457979684200269293916486124676678348786282216534596040924866334739039265766406895301924076594065595802524242887560434897960424685228566052894112409856233121938905546811942190074495362297847945575906349762149238636186159004212998063909109072929449195002011783310390586862228510944860595256545226001825742049503643850058044694115324142419116077915254959820136527266577899469928158033269566740719070830084150907082456661261996274550927411173933725688279033552249134005863241529323170505924289905675991512492744400399549888810964309157591181498365849812307523064841529024666641947428240084943666952172486339989990997811626801246931402742151063642707977544133393572755444458600585486687647015222886035415573612992885030685025262969238036042391165621179278589342846392676512794777952483351154166901423355127886547471406811529267220100070618481211922614383621440332964870812531028740275060983250707736757528364227504026631822194089001713020721025434227435032383101161784536419752825148998860860989973435299028642371357779471679860276989887581389566875544599008333170796748891702046801828816465526950207187792020372628146131141905382055830988960337716455423361104459611065441310286878836571885382311616495950504052110822890300093717393841074499613916292181810443888844484408405936067722364593660190334623921092671257618171790970682297666700580731058524654114738613144249793588520901924767969796222473373056040936471581335314713238940920064440442035624230695464412999740758435758149979118890711916875676612785278233842031661999598286226413501625922403353949533787777502454056793052391348068091428839788271402483047554003825195072926624868580101502428654216241323383201586516226178969739403834082215632389933564019741785790571890269184266703155673847205528712492492876171229689393458663525327694177446610826948919474605569224165949847267705118576984266351852870805931274286532880147306584382679389527148332800649432550965018229754430446485941861740242602011902957531917989292412967291282363955713679305409843528816934159897888666212051975334377483812408182274204295883911882439928490261180531529951955150791549576123790961086818328496438362845568487848450202523285666245039310841060607569332091730161143234752192966044928274359290637288722932779108432700941710727866326736610205622439759222565949819796738102001507785528795672680205151283994846402541132437391352616608455140597076118880394159682981703008733899316647783974369141783969302566410166318819053425101204612763732987458834718997693904257110981101067481713163678954588997278963709301186366613508383106895234360699937376821250913908191673556406355795132586558430262915237640133779726750787353123109990834568314052407779643369639152301619351250442267424879373940496816756071270635420311239888501343796559206773728684102695762680295793826226871952162617385160119603659717199469124242845705111586859033922356664763686839792818561009387234675198823159496666211251691803824057576379500994052986835051291233724843394747811898020267967050393985610405828929912860739249618576666697272591428492812755203556438817298072959448522851254135734111324830020889110680250013202921290001157982481742205962906052185877282356207907482589741581931697118359158248586253602470382904306114470180795222239591441955434846628475785064141703572619168674403995576069589416483925744030597299445618396258911419366206332683176329647450925985087939969384568923233683654227130399521477497650931783226598166003225664867214346914728607689380188620375507968346639870220104848841710918628109705775474404907067999775019924072842488583726558577405156183051318761490112081910066341131758667657019422048813133820051692639756972094395245009488943013255445055288726577600429877838930090319373854155376417725996803532984854752652077920188745668931628461464502160451363879588415518647982703788484572654905313378529169516582643145057670516111972333683112528571437219961017849820045458544920606369806388290212791506593180347568511628274340441827236034628878320690168932887743759592494082891131849513166932414963689925966209102399745609913094784738438916362481438330151880508702654629278257253632059900803341850680496876527060653157442942276710274277575253321476074362746247483939914194298454788318300878120774367255012712142097280464090436818888923595078532247277449897577982619439043335100003482758972646641966520868197207143716409644309375759508370348448016403470829347351570736623138197030999066255893948802908357477999417575058663628060585292132811699797948774506533553004372759093080721697779640936650022234449543075739190258428725893567801088404653907777889858648791774658592299698256944962568137617456039602076722498039529086747916700493870538156691289886987165753763342647380675253110944634159204501844543154045236697081077840532097631013642221269899845923551624993548052572735061402007841183481510722352737034828750287880863053462470916510985865039621415952235651194611785010355516486845511946196253938781444802483723255151726485356475500748154837519243235197609568042953435882003857655454586547945074826422687694290830569773873752277393421271941150653412588895951429739538817254519415294698434623036124749165076699282730619146774095218008013988066674409029484406131124828174492630786321809783242707559698090838486627894566698698384527215078511675897033075565829573107431603915649878407042851963319463823469686920194350878492288398096833205843719667648106307570493844627003652322062287363387981023099852612333179631561626867868033739669796856170966072898143913953221702847026922164354667659020238653350888921405238398081124919723205525937075746621024989489983307482446825476770299375271458683290714191574254403327818837693686389294790180645114120552032503444819625728115452976022777266626581434620603319851564138703576845023478644163121601991994105637301116766183896222319121924329314696630873225191885525189340423828499543915755969750098571241888469318661966384133612196636910743310128587442356676085615416402013921954524701096869982042804337491131370070258556711616605674232660973326636202091951432604800182520228065299790952345892560661794618627702758603020829794205666286409744736641296529377575294471453589780881349913661759811448138772226740725754769009044074346695778910682566467204866312993699263209986578490985584257449419549579997708735257611523801943613806661672032270111380270288299849562570877590983388653802109556196779144070719008072239384481828860644685738823227030031542001093830958911757316678282529994226388855158282245216938284331196569719021247862296281939655630349122309146489137118510430413582643244879528333219440848332282931594109832124364948477479207821057092126807798727826760589278211162477620560338293043069184603062927468163324478588703021731063423535468851677502581615297714356968710063083328079459974189752584828502438314904821692435382755921560766757945092280338834815628441687726103369711243561092477575784703258756205004415442508943790680011758598672437183156914337261350765996794545822239487833903838035297893537609054435791853640219746114806677721970507871620213839321042127948724594274030159729819044763772214994570397594443529509245499745620663897870099546979958668505009145353608837713099397886218807000272482895611886200814479298578157029180565602111159949278902524254557679130924862554604629745035460259360458947773280968822440435255202864439405490510225316738038133333167919637211979749878642557261903871398262658013561453631643932355524572943048209107742754608008375154680453134434423977971531969190864311738109231056516353580707197907782066240364093225759445032251630154296326536843406141466832596129589428561107471273829991037849008632547075901438748294830470861521663046273522065976329417707681774364341128770505428800438617364854831052790191313937972666899990058561744763526685527647008514734377082341626515932202105441464730799652436282354520100691736518236533532503903807242091033269919545397050311701460809379472138251783218623208584217710178932119899775209552309427429048280440993966633708791682100030009081058142445960825402559562995215680831460753016902708773322060427904590244099727839275130607515036019372615906951920945030277168054553127186166548493099979507130502976387360622366632965578792921049954049510665753220811967127978710414673421259530542687036170550224690506724953431498188387374106474688354747309381330132646515626424048408128276733308138329136429576194268604615597857696952692158830300676258843121322241186456675357689034308102128141408668671604972217177329882547740987953514999280271531302081876379756715591850139543710018343851139524549585596483207368202050957937318382622581815238327367111965771117184704770488478084547392796785700753124201387234853077559500618447513663372884433639340338342477514587857702424482559079986911530101344794730189839545811963165954200075599567300345163356412186344565519895848496958178722949435192107711131639380747144057864617303637200890191563397613156834555655782095816340510791607460723011300819522979853182791349414685153643045952916780411774162269125510655318853508664811458039166675597010860764255380694880988996212736626555012570837494906337201538680007179106475380386647698467702101557231844886508837062077658244656854922134527900242917132041076402278359671067983649881064188955858672453887442775026579523776986250151392134628838799628026477530302372230309406620323850981699484831886531090107104948269903530834148090460231807779441128713465006423705900386868849085616707372439192557696839090416506181863625710301475578535714452285231208068918817143379577579297003481304788200467296369398212076714354677802782046148392694636832223413394634840375445396031921054362092561902820742310130968919791317818528366095357252373877150180593487875826674107847712335146836991687028643569101324278076657440159977360362434158718777949731728864504675372857570618125617366669782377475029187863740901527839879970946011519442994262897560444552976842465428471686211524238086004726836299100108877492751372278428589192908814490157464467873399127224679990436841557410857559720397763344837807655680774217682752630156171006896296150263037668755636474643613010649872124326749218073651016796965678998585859542968637247625312612018350732278877406760858220662214852358459676711249134991851349917448364152284480874378400511067644849285901512324186495343151225787504477091809195583680075486600003902948534445624430645546565829040515859831526169703856837198982527369204013326527936934417527558537718314639103206395184611407712882958272282578954568526013550534484419816211769956876810448429302228060623077247185393586114859545344908408081082362820764154625545570499741574322250618759442547372041416757287327591464854015117617999314885632605481222928256408552734773892543784133419681410719124296346759897250096933058370794715434918687761430076867252267371768904575140231506129213264790795861116090911900115677137358808468855160050935418130514246165938694618944826004047278594553111738197532752020542854937477356655072625656459624384523971804492097276182215865439383094582451687032366675003262554331095942300013477597122494250638009635964232713624979707234915185019660153776687798587074678176031240215667038101962963333934620291775357291284498586960357141689223009888210487833783299286464155207930184490571855834257062181447994056353418294482500665342988173696529766848578876809527008045776621815440426953915365636256213288523125784251516689847203599919463478355377252293963782599883211551687015935412708704186255904748335552693701987903962247541225014622881921080034274153057716252516382498910388097730429592951870184705001189756681142476790230074730478001706309663986785385831459738559233183140021865751625159529717741569443913167384134768664815644948517730904016713304880610167723794835874667429691880365338243123696644580403226529546952175088169894102432771064013179949488215261654530228550248903051795297811995644999667751823402359933572102385314619936831681050767158259801889284496526254331386204013744619541481639461745428313810678134448793474554940224906894823748008186307283143639222899603041168693507289057364254288955271542149851291717372175688014250440197877343757406203269891256684155088446375661629548233096654552220584630671294693755227259763875886387788310694866535742717022602481882620425015359829988880009230969400530945554410007776010057471564838945035040704417142892614516606148249790139490803526093593626957931466536910686576021643188812124059708305734282685672030686373115115222521822985563230561714231689047329319158768729065540074775248249750292280788061906464709422443803039183206135836382889607205898594139517291268297193161753857042671497020846329440407648806281516466137135687251124700084891464983596472470400346811228467945143335947182678425509273472326580176964987587408578031896949569722396095844387691385750115767787452042797024993475937136835403500781701678159315259364365392210953719478745203234434513124073560160021303528942518297696629343226417220947360169460255595387422378294568866714038134034430078329106076420533284313663827111441072516971604158096536366456822679288601810573397851956342478650480610573856153229723954512080961700117638945149314824687521904185495565992885040799039674978524885693980956097730749591818028697772531023487260230559259516424677753775730453977214567397351961284846595586080855530751682922852033283327213244386017557864357906226406093926531565826013240595795742755994102861648207831498356688108623351442150769836737424210165354471394840887370473777214211815953552733965401712933764467338030460240120527690426682241934858370313295563648047532996858923934387170557630488085742026409269302124536899916596020295294204523374440135259655363687675918855363347020615148003291623365990200242367475712767744982222792167315795243227489901019916833949879425093047293886110394338151311409744224954792400988994878502252738181294590201104582046029680162348842898829394191943150680998343730831471542879961440043100105215353166024021513977430923461468131364757914928083732067900142348969260029198384548237220642808490909041449673107282201398666132997426601568902687856151220048203350967077864513595954579150516591294515653563229098515404341347200438081154861618484556997364128503870617616854735447184529287020558415076499130413372624994967610845498453521160421746071864965724396622972673330162426592537394509667643246044686438270603597626207985252587569142428780664343881505377233949706135251232857704422691843928393396692277686610803199089629834926007193364461388244321457276593763810013891148788725035249501780090060224931525011699160544292020591307254012013624971293845972167420272684650943317264281322625232324051841452797793991292734572657178205081433078594131067210646951358640385506586093190481335997983206094521950455819880244052672378197691779399620073273358522283591179704436679508056706238270787743834655102623132296486620022820038244418290538627909451405905102232309590711406592737441809337165620631344303094584331429066571339543536258701691940977594974298774934148856814838626055629999646056414039669378119123427848711096973178646760294644938543373086682682110841436599789147749706602697151583184617764548856270961298908091812137932960665103744854993874015718291684564139181071101404010813758213922503251566773965295586429037589589141576437524606556469387344212227981588081417213508770005441564545811015849626293070485861180604486245077045903526026095115058654543308604530372745202073133347537905407993799973727287296271881831440570632845337329522940665950985680583631212142203327573031467308853747129926261045870010908938016255791540082615208549155902073744568809987562478032030047899390213682679020604041605101240338446775108811883083578437603997122191783879240034488561742296408859233844066776393348927435614010000946874519211229774380570557773030436335704733237917121479284057644161523537377187738862829524551571287496914765943383945378789864935346092096058575798819053261106879104021591247349867069467236369716875399044868658776104004049111505722573764394584815260744564597951649097427110788036337691669472283214708138427903221728447349825371750804981250896497606609263381961337802011925522489012784172607797969895895878861951510379189451041286221318837077488976682038102413013331548831353514565692573488008056662734112029994682942212915441090045035395967595711626251095769600644199563292703465121105438700660402741361108491016244290613474666905729972222636474379182218833204901102312938642568289460568507745747232006603582298026364061043486450649659925418843914211533055650378989260648796072276639551152062143757640392924965800170509179087825742963796738439329319607603822536426795545677486979950842421717181819406260692397970097753003021765330466955251740753064623664405789381605835909861873274054642104310682376191059746255132247879442707186308859152169792470164945559719380822060199145528542366904504558663735990005574730535429793878555269606285238532841736006590940564436238567612560445019625868870319046131242517289658363247611637773912167370384856456252968258540391896251979809309533803064301791738994667343178333051373372559441475805501950979164623302568183052898410745266628390950851482817016768076858514358652604685189279228486807899022732021087357513059911784985369735771686830419698080183163672440786878211716227785605559861392289771529169520818827867106315570566786730083310560847061318803074182063065266274534706326220780773084594847774747123159923960395128005318038415495063133597271923797182357769307004605212448866306031887271879739483678229303389405921334353411808855137271636351363161247637454321510173551324798379801711177744783980591799897598505723823044536806737411542630543221743513065909726866981507992134873377387167349831982027216144310729820264985663793658110150970871559243524343757812082650038896461905671075348553701953049473902106133562757351211632739833131862029083725945487278921322899963751484032062283280252778147009882066379488483007469094061880875675081849464967396424174634294791773893144236196350917281851770557974370292680383622142982075781700065209395601901228181786752541157164732164141797799443955876592323274043827431807835111380932830765481890808260519770383639944330238451945698433853636316429989895325028012792338143765103518254228116338603579758920303432722740001281813387400055483624327164823954820953527388820016452429863633764244137380355959153940044984369790257569940293343168983408753661604504036334303725341823288769485381207415341779027131673985865105058959217612811516420087831744394477538694430713285794693335425023652766538522521884563716062260282926717128451683254751988653962226512553376442544597585738364409325869828270198941517256549334961398159348115959449202355994757591413977347580068835000337714674532874842230189879317611209653676463927268230301047218032905210846902556692727613610766897159488632351362102247095350740549565896146525089195846253223500225151991756763731186863200775602035968312232844695780679584986504442826805228464216847705789792805512719226717404557983523806406837885541718649249232213293888776363236424262838481734160334747522845831433283450246699357776363387589529017874799891230725379278227352251390350431618444200082009857680386514751474958970224648756191246480962016169673166083386932599848130957038508203470597747293118915456370657053366206344941701009264306854880340105306949568114429165347940049497927979516214224189227084491402475344347013789864017356873021959841401062522036933793211597783830827603579959863921763727816280605938386856431943317197873005530737070828609060597100031545281860927191807053606378795691338521121146911718922411935741508057675911996845225600846503017439681019951308617014102685182246932544379736081304611032009275750696964803476192542976390754528975613649620212570172576742184331543186336622873553674765343827172720593209169666964051788629404702205199318995671892752417153123900457182734648252759933120406178101300928500157063205950418379931521844587834703055230261356126964730761825837754676378203947988405328181426188674444633612808007471854210534435211861890342786770630143104099956362186726882513996544836532995774719433886474077475321481422367293973458813937319966259058967810155810652935276827091755352258279992877828607126856333657761192475255334430844881212282728631024150977604990866050485508282207904464247939189380997204051570747292745986522421469450137657866422753898040921967071619613560079570264763783856060426435545961734206763455890838489871942167797518651071720865505264403935268910302556588706577305761564306374429905578414928421342850961451657587916279416199525516892727827015449722803678149319000961437684744974436545255705132197034026531686296984765108391750486079016878525938936212038520169345318166414276519534032824998315304104164422259714317242420056011402079372204058726815821975202691148055914020107220912262906917640466071832606898574656709589894732916833307390225795984172766367058993292352027459888273824645073727636732352031825194963960187561658304963555081929490187798514810068381508941044455469864275799569038219015151660223870283899427393791120537679759527414933889074009721300227880268817842936799458127152131617646016834788362176790099372550437712751962311811261187427785837650498309999042156464360827256915783760965809268280106880670044903477579613487532259533026732792952246464978963360110984958663190216832302290268469954763794910722009644893916812603176743155820001437831844297608309897999296170792121936349533363372776129775698675418889507594094371668961085782602659459484815815758050035048355675344636414405785458128970837589565493354022552664313294533579242751258697211807455419689908531246969818527078442390924124635640780840128145779002886836983401528343637641305738469607132901125888333572197682189777445060435070496691720824969491786767720218899577115807447912257420167785538009574298439935730645167881055454949190727472549378890322580864085658007157721166457116267434365283016494261800369802365878982925012178401367986500174014409579291896382216735113110998798850675234310179477586439795851011762839758223741288749581036399196619151261729064897382512309286010621605463593579912406636971531543104456900061233740516047821790275273084270307858001172289656006072264711912740567846813046817154656636667079871246757550425096618038501802673684927722901504840913597629490627147993035059669581798324843774272795216059737962072335191480026602546643525752923075074079495925290166676025520052755350903015138629617368808237551514660052647184369494880356707741135318034585865421071164098839717793888201083832528246922111712464226282872867003404884122373743336262592795446441482698118316339382911638373666239360254123440431850324129252935333276599004902089973633465668119769409575154678094543431372232599191111675002021987106203801936715019386869714209996284533891101771557343717075957706664635211058552510290611093438311773871556166807046403017397668474693860340352522862758183303228994823867361735707511855051118183645358380400382370646808153506130154905831943269369308258401086865655802614808214604431727882430170867969654809651491666229439404440338974305186132013498407264675550045395940232433033670409499962750523594127859543053832106262690537250366043644021299547508572208226322311749950832903771819657938238686248770345092141418205119512749443331568295156159149663379026215665783995263345192843131215715406708753133591340412888297080386923007893890341572575662440872680241383433768848804189445700981753312799993785012156595694917080180841602456579270905834199048779667855676778166957532327252652615342530310415749916552546733396344774667574052879620858510108547834099687009188699626140158021241114437454660418071717555077009497275761506581733613296397568532948483390906392574658112737886069658532099691376665032578272706601872392157578685987761203409059380471668883798883250960395931827410200457867051355925559117852191774796353447468836608522990343284665960682074320796556406735114419672761113051440407447583102004047504962710898346811433532940515125748951559612126022141758170956677884859407544332277032573659437741522116967121992702638941930483931392988892611484332046623698069749754794634914173399358352004534602496290235276672881002696809739249504419776921905213679187095662026415232310742245326645577574139944599491347425110678292217579894272333515336953750711772671378448533839144022926382749438777267570612769313322460815879289947522412821889677313556872701723983869864640543255216908469862504073900996260284952909938191629753571965467348328534341095134319432299086888520665130503932300369327612827886977244633269832510388768541980037550736756505369747330697461957680159235096189440862197649978113527623294581421488217683767095112154445644886612641224978379305018948043787854213852921273116315302195839790780829729020753972450495337430214266328275326418214558276246078827819169262264456697884707547702747073700226438109764265410070247743265750853149658498684532686301773941946336073174685553788505477601065721419329864153449671787987037202061816089429235759165600862368548990017137422079431049695259813874596339503816170267405838296770387029176960110153269126505937907235403926383424217463948365174831047032897381159081032281294477644048142450973381144079807632912563675785845156447652222373959373030088003636191783119630246693146943879276863334815355266787684815087900402926774888236268532749914532016625264088985948715965776323714524842139360539681079768958911339454665255253643991275500798002201035715592904627820081416078189425446010839229572450083157355809388004042708540130770508158754909100702912835038592356742463886721406838893596118603685056686590024244970475887651892951204176468106405357916517021528207538729697390053714580495606135343983609164407372919357557284406359262658429145203890254931882861824375574697798420015090425143839672782771618516705536667579908367787356810290979806993306331345952516716928467106974801721134345535061742729898762685703923799248345870734330623414516805426201618232960923867972143333836582534581750832586288410106326816362116218326586231909335498640949245326928202676933019404021917287066854751904474440551088437638938744082545303457669765144541154306471905885626997843955778744824805305975834841618839193190282905754458369037629817932927017249748850829547317710776163859853268859957660894211247283358775840408591082383729803729459666554665503723829018295227991771836182253588919894294835521169701422804797564617838274805131816336743452769728494876667242209358917571916240864826051431916671370516938981010331576795227054796742146206118952365600895696249296712408317315892685521034491299234533807450655912417815850926814637676703035487874774384949527900568604037781308645804330463166309059988001539254075637628560293713773761858833977530019079290697588317344763364365124528099547718278640890461856242896472107024757157020454132369197188733400170805617010810669270297357579442537621387689033902251326548326897170947827345994848004483688888310162271278376897912997132347249560118509512379947184627292099190790969246991937648279622511592461552803542835195028002848798193817272178155341505952557278705018836794666860307501708234222941152611643553536714296428055348481951928248305705446267796668776144953148690382388954630444536138660687076380601276842751040033518518267441467758610497763113285207875658218485608021403438062424331475627847369280021860141920975051024188081984836768558803264100001910892695766759966631662571080273217306121063342806993180673430951649034937930699940648781868739229892660411742469958273614926545307360875485641090214392865231318911693003931825073610059433029561337376997498654183439895492553284954633154462063024519601787699487242391761523516094118596965397498771280873456531557335626381754483255771811843613302206748951306576358503927044843565146403663412358925648835228613520121916396260372067747578770800298863087333053535856505786711524842133524876057258970904536040964844199312147503551777856158963885724381154696654653105844008084382311362744746470526997973051215974288297242679939501280077907039460433316551041682183183528590468857792719426490410864973756299158988192046821785300934582242525563761194278822538587714546671368808481991022642901713364681049285639482153801992874516323795521680572629038405340039822741666309138481544777709966554695443005030387948346158907325597852623016638656604897076684509577773546280075187640612430200503447648092079874462515179687911482772407096063410467519594283057960597278218714172687316884628620563386331321541967340166996336364579213117337816215932597072981252258118131131979655923342138502443167628708827639101581705245355742300703412859557075477438765986674584141041649862633936674126741060768677519287679124470988251534737087565188889360731725598991313978011785569476415577973234300762631014829699341710528332146051367304561754049924789375747889016525457067948410000827606686803442417590143977933482002446980597051239151807420728357792628444004643494580719769817145921731455764482687933426294035751685389280060401174896549286153441952418699269865790023922402642190717971199604060628474691461781776405228077642913719669953157819528560753859167107701486396979396645271525401284862794438600864738252831013356876813417880668328543163806351032643905387322045667237157579868205489224013747677841964529815787749049749711799979696036726663724177836518703366004971290414719971031046860114963937110485484136219137543391100090180845649213904821875543790063312678289910944676184406444055636812433039618689692494581964325716594225764826441612978256722828794948490054408874394197930891396106229257377032331155048938289767720374455237806865415605923456739082979107810979644719259563113380773506305746579103475560164488989059065260625076543849627762606190209612809464889587572755555510815444636615685509448075045170776684695693416234076237525052244179144396549866604980538749677906822593659657644104448207974631095789333824748550939656743652469476375170600493256450850286973460527485988190567725512324885434039962113222158900371835517539511135202180807158914025137511920668245847286014412273882198584894563017969880823112851035966451201696759301545608260537324894280801282231475706157228447486156236388274694384103694993653111395854011448336200137504504529155596846794415165309988948108096808710499977141838985015571716869606700114757641401989585652736153556260782987224342771507527983116014353572195379554081531562144941576569472688678936663673886893607705504062384029473703139921655446386135944819848584367020593620764282851238650016829622404862082919061726736281121473861631169021035797357405742606467636038661370002962087885606893317000118574334510314824665597181998785662214606412202393561774247643307368034481121472112468739670944812538385184974152540636663991850678910579250370034516516879757126290932253316191280731197214189014220630213925761662792915014378571005812502848919922975403740135732005729919841559167044374106512027811942571627960718414461041140916208566993640238584543259262310599135420961122361845665513131240382735323774457130155318017189322996700789606826262053035018325804139407094840009178487463362950429710592770328013847802250612185169629311269489003774350856906129899550659608076715957248099707570273028265464565010932236280621774633791076606109751911671840701422078128013884934804909530885975100855193847465448954952829919439976025048270246477246227987326210200430565504251409281002133529801611129374510585097640175574552043112631913539995662515206319342202429276169289421925823734907927086047567869425137392999331334635299685106568603457312975718855863162656120507267820121262110437618149083508049917418763739527410365984395651086990067776514743796025013477880966323514808021250056483322650098027862965310349397197632465215367462979849883559370393666994285937225130352845635299432664590398521489140030267878657301092020442992747198541032268840884340103493083383577685001645621601493073130988927796024133133739695668939810084937236242413656440693278068570361158824414184703622168379875208967474338858911649554573784247534488311424340763605518070799252834671832067816161404312805859836738246170681954185591340425721182439342156775475709297606588094525073632054275118258872327898815029830028213520956675166297083503279852235882812590227328162180755703409848739464498705796816226120380080714942588162673454761728596764725769148604450707412704055675513702677967975341933404635674423759451809053989370380800827919477396394973829215656707692720311775477478573967667325991906005131471012171952639120259848962420709891203673750946824733515167340448274734109891691048486484215611525580279387355988964618491532104014835877759115011273715074382095673474442563670929484408683940225279726623135780997991300928297758156257527426313829313140256306793505576915375160260014896700958776576546132036381527671380810065565737360069656937059646432488367726595413397376809345551744006357585535993143118440655525144132512409278264941921941311419792018613622132285719331226434017456497190533632008733610566448726888192345255331435826845900751278763668965453771365087216210816904818822860631498546870339060424478356240213289540051155698295546397184390113646010040783626103762881562868023685617456568301612763648083790668474977664477602673938512954794040275797886549383323201974150290536096966105446044721055347543156632115587983638657653573722720300427902678250011420080337210098736309060863238477882378542507686015894119807935630779145197213301955776665080130146118815088629997120802854933680717900720907069081812320545170254227680064095672330178650788405414585104886559955702856149868733887350358316724178987039091734205817159964574328447940509830525660027553339830484414590471005652572964008870155468778952413595817287245614122858484640281781613083954992434332995031159840209068535670922950309662810743360404347504482996280380094726314739603015852574421665515890073079741525741389433851164514485327016233539472511750184948328051328779212986787340476383322895049189241469554381643631145165813779131348980257605322770714429547476527979468904984649544675719083121858095902597623313259775623322762612342051275404636563350621911321580860338814748574106677124065930751014514612132828087258650507845292330535154413520902880853967033154171377927370919573440756854954261742934565290013853979501282511368550326514419966304605239908463425093756380716747236627498823546244440627483469232330598157105050244388495707655763941471706936132826883635450838726390289090012955383272562862400585247458802540288066485321604862648432427689350265472758738673075584682060481513311919422511925019357999025156326035102633765008063188601672925781326641157079619089039679393389825729560001870005708461425298603599171572967162169577874277565522538647103003013805639160333987522925845811832104834978520179035252975216591381134781746430135074872080534439215864071372917939913621878594147704097692442244113566981387386535805702364525352678143091509421768694959434926563348989138205213691714166490033331916810156508041428865754286955385371360558480756460392549393609158566103350176905960853322132600096783181426499339544946825777777726488001428544804912777604708897980820767301721147094686319875091382141236331678216494749264948139015986273293771966696687436853206075097672918129171297084309138534245807406858793651958295512581992931444051753466686361403472920535909805636125144896834158777012227877949069821987238523815345875594198832824622194950820544736865322268133790897640100634719871382349699159400792081506560703463003344842820017542004293636121072472144024710318558019926415207006692447492465251617220345556280663836739389396824622379203229828185951789692705884747992581168088077005926785591146697333068604853654489835266199590836304828859699184697595113371022249642616153660810733395593886316367944668371560810313984004681785274491240688340252959378722151055198003459189695642274979586064721497999346678550221091601245041861322800802043331030013966992219070102624550401350577440655703746430508801673387606001800544048098600384623027724337040648423059672201038137129758590220398849166432874600939001927608480526678057837215314532877939885604905690942074343257118608272372764232169161329683457611882382743871262771378394579118415779088223142363722074094627295691365099086215424428196963909126439213871504114584214975006732635752231835149862850104663860434284995442283505710671816270402061436650785332481506210897888492314873543985523623542484477782676854875196892511830268463408829025029582379197967479679126445389128935053013599669674577121271349229580482677300912766906889539594373041599345792240227618241590036132078988135411344792569233959099731698487448686035149024759876305345468214066251832988075535716284846894730568448379683850978582268719985014311981117964209639321280075101161852105570712822975918352219975460684258836701448879161712220424903145265032255035564077395846990393243201396347750151772656989273568918275922084548429118887528239787286637089257041399829179606847768048756100631952493194789871506807500596390370191979285322476168570344249924774700857564320109614820654955545518757195802537745857296752327265892269066683132841263560814065662996714964981929697555385983288340654021286365463872772907726734684131605517611168322154479618721882840631089179994379915718558706381228630408612345530595116137611923644275157933158969599360102565974618940460413317101173539076388384924923640996305861047023294238578748015298409229326247749933158776484052664904157337056094431264109065916053037133605863124434004253008840637858281167903542551645185838353828658920176008581593641558469643718692229184402106538021105826539581508283558129679914668539165001925291100250098973151002358143899760400295602809781871715390105279024198038241023518281910558798952870781269375623862249688049127939151027420581853408257829319152020802990790104375011571574745524534475241646540664852935602585030177536419822353817122021839259102192144463753883861650851056252942302107910910544598355199207968105450469432900632428783152635490485197210267951622365589974904318730103588889819319828263754563083624448998810663903467830467876085866906446211937245841290594599359208144568601546385727229925882230102995825790068566658049124751801510804245193576343244368894607008234122541847402854149331794084566576264265050720973339395323349104463443289048324773251967699669094205011670961392747131269492371334851251679863993423406263068942054970450270231382959180406685084986016278378416544793674090364770473561826856619460095292596088215337146919705670428108980119239972743558161705830972101920368945003646313714124553958902269693558496404348004469341645165327668469839526290201620708919106157177423290507206756665322137681584975995618965427269313125023469611421909823901846463977349243738562803833573776765745656232166760489296333324999077714418199550119634264518657737662571608441273318376342387577327686006562224339228213839452267806602770081667505041357716873486965822658192396966434098953621288840063416733567579190082778415754691412296598555490385419389447299772740596713992268667518379670616955868761393993308703907630621274279009119250015912399235421581454122964614103348234778589020019422862344034623409298401886743627918565338694555567366873975685971244121701392900928644913861609054294079010496101365967749906944022320366000553699583339164065557083527359804835699231598778717596393316369112709945358489318442682497897615747938256146938131854771953120768427516225680712394082365296707154884032826900914563888270415110619949101638916864630961719524609903704533177854696090057262989048617032340002842981150825857012654512074055667720782613536223778756182221152465644335035339245017715770342101729971559969702659438248761673881880725957708527637660356383218619709544668509040772481104870951424256304577623270439955295693358659170652177202304703249914288841268269266690195559142085310636132311286810720638063804592883393437968769259837033740103711452005299019326325329245820256270869278972171260631246726734578162727053377334891127630897357635069785698153277501654636302779146628969637971043959841254996949382381656981636215496391339973315892089974372417012020169488904886857747062196966170458434894437828118360601498502349960358156009595014704222575845792667002265541580784107970993544640153534094454583493929640911289457500322578103761318242286624590222935804779376639879338821712626539932219519689659283920551818453577985487631621165678907813632448265875669320252823320997296601508090462588292917428825458413350029711860927506268682061029673261466116414849430172427870196731781627421336339081203567166490960370678067553392317388788414528526465081360610640474621288874044706395549868168465679174340990912100593724848586399654322400706449753730822429444833074820172874819995407725895291446469206614318198277477681789145678585527322359876382526878667127218117206838410789677906723880931206135076991728615937028237476382426589833282827972554295567751278854116696811670325039244060722750719621593017689594479661800453964202808611346665860612109787598103285865202587147315575837480651889493724658993750486927709468378104830499520871765802094176140028667205944996706399482648838824215170234714077028807731805328820999606016649532690970095794643175272655510616493558630435561793565321860324316965374975958451129038520237983969241395877718499979927761851905942561616579329214789706174413843057090387676095105094651759220683880686708168000529249071204321388028018338380291293095460776368801161257422464452645997045570305872437236385299282811187323642970996414124026447961343770621040838070476155361763725183202326371125140355345131736591902113168163808088105136020269212930131276571328295876231874309921321589849969938947096849125009999751470078787974766924307094681800917647441306401091086198050570477381459794253448841881823898901214281381257320431306009677091614188091518705127743965781734559040115844020759647471263301664578089381469531714866854800142128151393414638511577480913956772639254047954595333225636350280118614073226971006940472921786403013540076979236595114825304322409174784752895759080203213167378309515856175597207607943173961869593171591225962544156939969118459632289716625188752480041212406937003878511306417786027062455050467310346269497335781928762573761476998972994469889582003432171625805553036319970498971949504129751169251160162912762167372955427503088594121872656617730925808503024941733419528228517817433965865110402397276813764282785769420324372200948529182363718936697858642194692985112744996504298353359941790331041026857242233106323367937061551614403188537344534774667353983879372098540403474741067176339527456188257796930769060843843960940594967575688640545428808756808678468414484898240692458304785395944482244522439151990726970696322563316755481989940462114875876672442955068760837749182099830536169626663683034009583351966470510952075402789192013622116843105822187665508238018345677329988715296947695990929667537431648559313846088410427707455258922822592365220323503499376362419393621077272977097912992634534618267120575601985554012502397953783805163732203601479551208499085883857368291508437752136097903922849121169183035197761888323324270931378296880455965798796402916818174197786893909308720747150685410927033659829758655520518995831631264475992829268285726881734045292362714282046041932623982678595437716211965951145317934128120935392587309792667062836534118991455986056026384017107580384734670643591197621441814505157254237356228239002208468122661798220261245138679671091978974041659317501511983455501794902958010335481228703849513374820008014693111308128914777511784787900419169559153796477544889126536779582056744298494106976925272898998250218070432180176020456726438035847259884024029281883899793058036714410335002384436855589651671470517519057816484009866834467952570448342292001320817116568885499359876804952628075993088109671786335060288301650151769657455774298738547913475751681814015780399092130194707461558691663195763991934852775088072477743819327095651246673350840307464679263197120427238833371202065016090070674024790807311890563105177086395132042474105119276082411265640388468949639758728826706768988691745322940649060127703257976201440281535021557956851033540896102918846356392985704827148152628428808329291535595813547080304033306505947615670535740606266151313440931291435313817887430072575509472052479481826806543457287460409737234492191082809644280476824904500528238798752649245045170381479493797491828313441833321113104009437338062479934977482129331360018770013631880220412719674018957578142358414996841117444738250295973822126672261736240666465086159269051267302464588913241076372564495719017272799399352671892142297185585168174794955834992187222379949270725195597289804679912334158449888224617560180590193983414364329007151051652549232174042233570300825566635617165201929351887537124921509814338936222619593403975076044791834033357265178758923949694827200129872359814832722470969968679431747880142498984796800488241851970142410773065984472315854715757616614610559977070030525409499555895235417960035835313964613318940235934154034371036631245728766956873549555343844528026564120246648462784274197460291193058579419255206838313488849745619632564614260681676617763648271611657128397127239553302710000514364634269511954348140371544170697984726322869919731293775088957585380669730568608546319037222141036029843709534473655139449946171032689758173524023120824257555004196857069856278408850064794408123689906249832994777321432926691824135805023084252028317567737864927521499182167844941076990470404792246163002962207598503564771364816289993833055228726963900784676654767874442431595554151461320317263772783742350443524083034122094180230576594370641656906004076887580288968798570670834228371088775616439908074332528971366813818342969376973388984410059534149224803649703291047917504093496771398972834112944955259160450484726418793414906085776425916036402180330655907465469360280212981548979098422465453591365118338271450868968315842828543038034621756718884584682887597083474041722845869008366399298838595178755144538655064752898182778172200706830318684858006366358918426788373239875505813084143198080813101930824831622111157313290487731905437689846469867539044356459302448814663152143574153863368233863871163764097109957087129471728744302429717266724911704816239417314988116567935861854375360106492559605549492706120896752657878743711051589146971396985033270399820038697175144281162349073111459267492073732885754861129639790951095644286294519202898425052485400385033188539413277972160859608659108584443798333128294841069597794723032075934262380586518996114164018326660959807699795091383789430286172681548336119086212842616296381806003014522462965915636297247778501261715751146988961306968292313582268117060036719021185919623637211639081573396039724317196930223015169681570618874301168283996204169866502248388751136373440705306096541533283471760327858032493554156223064684420199935375830693604682565457749367819726516594292025895523959800308489393767834774111792537733134754001068353083841335039548538055695965299218719005989624393559811144703052752171125284626162503551820923232549421753901663293164400975264174722006583120748780774316948231887310712103858308897084188500927444856716932796912124366744862086490454553208843503327056455548166331468968745647122773884194345999264673980819443563351611994365255401000658917169657948581849706403558831724815387633303523468486990352168613982558546170310637349673211212778123726167221994324025140662123182208923381392104237356797974830666288479077493294735263411552017377765378925381574213301535817555167489590988066409816517357853062326264596249409605752166302101178381871636411868538101712802959214333998372786355155581833052531508304342624203552651519361192331102549351938477911725625237333793684751981474442989965094791593799964285655700519545555119986564517638237823910328832769818260025267544750070886640659195723051667165548789602523440004099894188385982445858987106027241250282987505976731880616934709343797843408037755867923542856464088813420913662939788319475348584630146744392971481248381588857922615743347554953479602133602577677857685880365022557628919470937110200668187717279997233393853282232791867338590783485206775958582117175506161527388378317327797205890910550984049766046559986543267973583675041461931894154406139165188777537412765645323722289280475173828050095644388127471647526621399762459483162626406225522741367753621980999324786623812723884940729816227075078586808430625706288320975229876404288732347729195490792326522770735748928913009836883903415092855831768391308601320878761647124047656654923359233610563815959694488597428609724219793635449734195752072826476776939300209629067969163791158369804590582457356669150069346424138691224496241657055521003774930372076872223433498750776259866982424821354941731579411004034571234998079311991387298209419051302631625899033427977684647279745550030909591246317044926104230599476149935840482813796912909040401239687420600168188627665460787151041079065010795115253972722995614901420640499079395626156444380876829967655393253222780624281149359216883489533030378202114910690899990713284748481145270403067396240364552354031474433740886956151480208152826102784624866715065502883093923941755853259975385516051941667071430304821723326451631686915108730044831864661359220995183052069578722850561522939517055148392893182532885064585594427590167903393290363527144690775584904883675932520236118564185792123305141496542432867334610268601703058176903116143681790013223911816657820685770908445692330887147796801765599512992261647610398256238509187867136811262770448232765331056200166683203667855489902923494512266151886803276095823676855588446421933102848323788776806846297682708248952989433046436073441064536770685932123094755445795245216871260475964422546108948525479749605051310176474390048829834011884514953857871217260977901672083429962267533965401389990428682717805753855396305186730580509117468082580914281385515835579352766347450691148994329004591991472509449055322083176705890024602887445433638825838837983867667393180574943028226830017487839582690949818543979447147771434546200996608155088511065971084859870586243581565879142525323448661189295668044780417165188610585078915525161867461724723823718104143999928468538195567182448411091329239339474211052635076164243242652213969380409197739633426660547882303212867835108648347757770046991332718860032056055387089821164053865683486196551524837931482915862318689074172354030190745582071496456313950414093144275764554715528994506852500332270084439729525795157243757073279503077853510876942809061844863152719560690165993993343938609884958125843918556569057020430794422018681339874966084539899534160297285946943114468824368346052100969586062037781690948151892829453063341931957396746949389976428980251366892102842168448356089809857544774786899542420833718454534263220132260023869913190530897606511910724128561256542741304474597780894975733385692360955331093613270191209872065901947599803717170152371439992082165691248038815407828776291171227633319794887584712025913654991315396086027104780832897592317720400085200447445960001343374689004947269098581457177304319103570801785276435818468739584039656576636731273536025906121154796254766517537325033761711651125413056280790940536153425321698614567577211788436830367084207711131058280569850491966678894315518715307318073208903765297117076443669719673983376241475826002886628019904963735559620251414698177363942660982224609650936130791810639242113807688122524143432770601970554986406056294635736278175542186703491716851867971410733595144080573207487087223917149553564943666418943789998086990820617984278787770878873170626541660309526257455496669594855507282211618104615622548891943172281887552466647108851720885737389181948841152895730969761036452678491895342967137069639976438484890830432342603002320113746517580142580730701935091451063523796080577461046428146995297483383740990671170550507764773167694661543257341235085864148346894724826402304517509824629096306638729631121636094919360902082068165541824242684500350404773657254442032120381086782627740192520692488992550861307489083434657068713912384688850830484506706518745953515568366010687628148439755383073251948276499657114626411109022520670516780594390381425572096185356448484969257688548980805630385141905630882740447350419659573742910267236830414235302967094993014931488097550771088444193976242332725476985199587294157761486317630865478947939257783893215681854612916208506972126087443533384482275789719996806511029037381767026124354434080676929117017195013412645224090751033867158857024650361532317407622702814886514129940918946378260597528348672244971589443846392110129819020708651292708054350090865386574059749107945003954631415150618343465566284096660129799451120557681197029590085764697452964313121643723392913298431524986863575129897058789411954425982934440357673963310300457837345128048084649354102109297293787666956551049859014276747330247911403525851025440126090280855161200149329290828400670727152484000015869454522436856477199689222454852156256678676800205615186200884974839755667155786734929090923563932730809153090988892434304196937785382053939281005125068006239758350466354376218833042883805344935763829997562958130292938434941556385122014901384863687755282436203642003066414391923806232429685153303927513753469375282180591514044289394131100017268233586223216668013429066407092648478532141073812724273678620575693080891269579250840700316782010945128496621902307547647536184866716049683224602093481799214831314807731604811192548854249342029439731710815522890752302882298804926958075751786007182606459818938499711604651829376638013445990017975612058346351176425416156198826759427694096163001612795885119258665610337297473170734756413569144563211943046204962178191473147785628047603143825260660720635255740299929250671553444980163322830917129737575564010193157643944086730817715681252599894902671539501579128311186546373653889075849783710158421599905718956945870126693489235053592093883747451577767515260734000129659177325842742086704610646988117759264283580665821239409033243010742897445916846458913468500075790496764572838809780071904531447149682969745539166887021697445109351934625036615561069870142978100539153478853730190104097915827303978004363573051235733803741014508955611166777404066126381802489337580220286393343599412371791434564249987487350866306606262024025445184999762655668966190743333286820833354261116957537014322650144324824858643795679793599791487136279397555001403245755464791077129255938904450987942422785357077237659441131511575582169471201763714661244603600032804600277381840505454518931494748847437391799590994627821247111646017799930903105086392482407231148208843032675131928310605876192885983077457908567887124747360381619888989578707292820644259032185223184094163757529712898945001709279261057370815362755671773525612341381371125637884950828848384323441484367583441640809822100705764600155680347620287077583347791510188250087959934754880472815051284309697701010251923655386245262056320094388783298423780507440385289371346827322537813905010489392948546521644951577588868167925970405622957484167257590186473665605094862408417733870602414136525717349797128045443819058669401157015420627739181639479750552067104571312085988239674668960922291757707363272061245353294764130897580310884839815124246908130703637360032715125510210106247084450787609176079631984907435159107906430643595574824285557890441235706359194796928574978983460044621483611539645508839817418073699404064457656080401791179988432860894971416383468487820955707601097877613270231182309362568226895272762745249934802979211503723175539099241749878069820234702183539709820922061749765241131921259694428547016106217826337412382297215074316242035884167805148458247170262485602097410578398308918962671539307767081424365301161859229836948722113019381980091802148789571649187947915390759999871577922288058952767106950175057518695838327725082806867257376137830752654463857875048102196649098376518112503865725314299598065810389294989526647950261295840545362987326437745892557584346444825790838188217289529153384158778161804214569928573957577134476965335692774632146184493871744875367339499139713326604546731523356383728974886537482392612998701434431836858115954379308291776765148288652555798041488846398357876621384961957152274086973342836761136510919427381681837721935829541146823229106230384800740529640809283821195947205559932030847787079343539092845193359639024755407066319624446811443502684875826965923480522347490053637379385396318400070585801127482322400303875236856279587640734675909362420653862479937610531680160007347708378292518708700815390661506310517380745172889693774135877287297518972860961426126029859304997881431002726755271044451548789994077234731182626959913635404380130079740212734905098072697069511220004524746072776625401310023473115402781925647086915810837190222802394255947198771049377755640531229324907468410201565259481060260130517827123828715173898803557355517901562469054052376684687643115236130966462148515266666974390387898483101142675989372897824202354606540313175199427054028169756588999034296904899409772170443972098459555438217574367988834913578207528037408791290252147381642306192383074373997819196563703498315766757442474116865692760011842860234812554924881563295788994555167218282359996486308750448908675275221895292275402478521724683778786736248488434273042468286337139991427353473864017651392008114973032451699416188791533925840791173027228804881138812825062505734596013351065980587594667577994311071138059925626150106930931226933769480839210046707262371398286927613196791471112236013267146177933915618571940814509139943822391704445752314350248903045059988414153422382561065072022912104599524345539628550037501510443950239148721490640796374688078853143205265644245642474819946578024401577930490466737365628239633419048029000155786593466634460141135526903678495453054636312423944099944076667897513500151239765718013569205770045451927621389183269568553231761292488040366646310698657948607596130221750048298570966834511293626102434408239002592455701508979653674322302160510043574528807692737503796454071077511382648605858479960136442553471421248732535480928538922344043768501888710391113566399851562063263212990673917908209558350944728226794591798092203745679720020309797938491182414155069390294154665344813080968297123701401849059495647392585641779676488995137917052677057163712502983668127453749701177375290215127700450928626468264916273786346847061195389810274696250359568896243346903947509686789817081387047582918862191307887908490006796350032100207850604578321459090504938779904706048541282879387791462631930659310074706339084752280476672423865337134956934242840472829850224272219840235518616854273267366276443534354908427327353850246959098082609636280910660260023300503152066005108132232999553951028059489255099633745319267003786990528320047037086661490330088839411665167143167899833997858341965908019415188829754071588243708432642622288916189873290431117050727561258757854397547895709832656430483388643292955530949947932313542204796473243020008956532410628784846247236808173033638942177932871346721254218662754150266069354669274104762840798066323043868513335381644167000595111508441108291396280806065774788454606761021652279981957473907619879609696080282280213181496284964180634602330730304405820258248835110074182575567399899819895502222338309177568413821105045310666841996036967458284312467930932512950245211368362836662884868998382028711357282338980682204903261841214629368081120638915111010213152968790343791743342916086630536365917225172928041523934774931046788801511577581157932218505106823081577596895249886105559478350012038241305404514159574949721888512187422165894117052548998703079413467329230251443901835303754328273878619907294477880444767072820561932121330010267744124553945286160208002626075900690847791193906619973287017038283834745376668332577821857631470306771849001393304683583771448033918373200666473982035180657542688512288070242905003487679684871686519189093809741277960839834781894610860212036410668150866419797719976003810992246901312662797090954324309449548795157172652484253748893272918099552303510115374768745626816613976848110223182604233648478169282327990227447543714725097807740862027572062067754359417240637132276482297049571255061657441946668148038966320821111323007182310207778249621809430896014069930434514565542395713323674464201879744315939285858904775538788109919112349091790773420791302378277570677437488568325130372810429801691868829803058307733226483159405747994736714531753021848822134171198452921611195745196953795830387566336427846006978800287569695424124360521008387047495743539064643488301445924557770960606418441974749543041161517814124942098333715175977556466362604133899148217534202500903658476031523865990647731276330244756586831788364232099619890712801511164336432855783202198142449061807414285089195620601504233020601181093361275530143100413138762854196889759640397918824150699080782402457678392605908221489725105468345848680285081395653335961819599981652787401579876030541815974297775052243265783566129321986285862800898619868436917144678320755866188353710382501785517303867270551664666216668023515736801789236917217153807214463035251899515293310444895425457599790185510135218066109630617489232777378581061713873831498613112724742867123430655930922316970045578260388784449330185409342230573505256152427503188597924571400061889972641789043718364061274118368541066869238995939874669599398534801670611099937479823431530908030370066895050278411958206021768069527060131978829958119024779600325491383603685736216703145883941746615687937610529514198207074815184434255391829314435591520507939210699942274196261693704744856672438603308715403282088417359526733553116205819354573724213515770411474987239835255509780155351091155812108268814118547289148400585574658388028984978856304006080154828002920880001821636121626975350823838819413390906691082688267731993666488857305993886557488731278931132475713126214003246054381896094492402300444157441977198974934256168168615940591417714273103612801273691590402554082623713888902161344553152207523511280704827612441438074567193428374398433714786938478640057564242236240218640149166156108823650973654744336841627641519132696249804130425084581365184952537321638317288965892701202084093857464033339249973904905726029712296838108600325866421973646834059165670814490656958038188282120568117132807153591685518709215084679230124664548894855508572581440823708978514706736475293313922318551079042685936549027451370968024063104181487387581227613911303271921010012165069096534583895988366531990294926184725976861222800716580032006982356247688161137987471902263436885555137431897810442677775504244938918943887250761676686102811337827335623328615850203153754495208876895268720057935079622694201919766317290828895480393421573920214023594305921071281076069137150189219112241974241105941080862787384323006369389206371596994648051472053868914940899288723281413375699184790752956656892950597561028100737076673935750293591820467436657756737997054076708550353633078366675177032031833310307534455425001945418986559220127229830402048034080178148935256978480143442159778107356580309339423107895643637090254860318435303865659261616123696475324561066059004522731213572360227916448425854916130615651051763582274986267051744280091388729299394637541105773008185408063588764454349627609082431749472251974694918448759230581064249621606383333511851214611134662997257620734234242586402593433617638798171670225991303738177655416286075823526497590569040552814395937298821058554375999593167448385968257937389228829660341774979114022257262944758654989123830233357405594906851854825592185026977411456884647394375405697335547186515256266753827268647255418296638259601602137330780103342183098695257099427883510251593342724572924592702264659774355904648542109401766474282860273133936629458830557264581194782873538210031827968394025334067722010930819425914132350253938233022825508624229257747105283007510016913186076743643063307975623485556928977345605018772723950557583938771680823415403008554053931311093154298903289542740598503321128207965226728992776113774916303124797782723634460862206169607882939249566611342369702584090588183158403814987984037176015043716076142209850823233042167014466321781900178466266854201729218176284321522780827978351313595326720525920394003740217728857601887632786942048370310956691977220529402330571016851137033377028734940249203406371888641479956120194336397602830842066216129056802683349693273357368899027519579069232435378301373116936172722903141816012417272127647381597218042152918222715883093038440150259336913754257640110208639214273064901244884038787221427728385922861012345030964916304727886887899240049648019242358072357816241754557428678140551949501398430495322217730159371735674879329217758621256214800238082467047526309792519742653795059808581205977233729418827437788681979720767052964641856128442904508281165600088628433674184010383963467904517665949925210124577568441452942778868545006981918576133060021119428556162627004078248718749800461701546413414188634552751402210038093146688738136262237153148333214823295139551540696388551249712069501015674388814993049986801605441276451789378208199329202106106416782331460741317653636171587704364986390419569796897244425255517249665059836916600246401649351699279703015676215936945156637852608987148281746893637846767107840264690773375981531803750729167243287851383604640989803891834911130073629693613968718554361203414704220033054352789237358495987343876631499447841407125975787292852651740872592535446794928003115958478240645019722630356960735746771897205057191317309103877320627299333934735062498419313290241449068227392241637082393787975720372533751277046295377599156914259941366056332662665783526045952114402669089159640471759567178977689525170983588886315758453214292583605366926502007650239956653308822510462500256484534654106091173481536465058735525761199438454828891020604110825942110795821516102674498524174108808318156668135797389263304118021975928356780857136352861438028311078129205996279670202190998285328281489656909593915216135065317411742319636984114942113681869959441777537539189001609031374214253659941497596749706853194300513239269945473208490962624682845117077435578263891196030190100005694356123840701945082437037470342534154320322129230239026459789641810205561900938997488176952801100157322619849303111298560225611064504781128114271692612883435549650783823547372042855858124364313840797519878730138178925714495118228924607577736089093551282776425262674778228501772403134303828729914751682120891443331726109462587746485497918273498858600999456866005990636511463333909720768857568337145974468756912439262173141654180151755286483080941940099066777403589980708019021308679930712667914266810413168107754158502321714123151200677266584129483726446411441583176756249894333461219509781081948458179168123259618777908662926966847879538696291796383188148625637053007211737491104949042202274422055969516044323042250293373989684442013300360625983705425435003112559656428470668760697220688593832353412786168390614320266773930675456838227262331108008969728566355843418880512076299160580047081707275151725750400933716847663505323250967056350534598796093531159102796931549545800480903595871652730388450291333146841270967260422573766591083543211459403594581355163956194900090855393681288288792760275514321595276867683157491111703280421070531876952972102827405293100882346508593886145463304717947590733321366265625579018693101634740920950875437664773262750383193540706425270661933257884057675096593609588557808449528103854294100336833094938674538484125234446885760699052493073893264895791323323763937491189796776324226777984781930652374111127632362520721129753423253178318058510068536154396125598046487169223638012194059578123797984570150925767719333593990067152262770323556387934303415074761087865514252427736001238530165264098557824586153361675169674629359614758623573288405354212912566297624439657288680259969274314077690379108117864076789472609501574822701596350375237797129887335637324417542839493339180019667238167024368508586123235431456288133957465647722377531890904017103980128908024585145934661411917196591235233591736883769203525805107990575215639032536004806233599194714926498287960999562876973260646845910852117583076182193323358109868562754910134850522040436340791384926112479715276713602849439087245446435942754656988348199490090928432874490435282718553781660673810649650225580261295484356680155059826245489599823376660730582009869240338101222598376398589808711653022761277872478329922148693437908348971391165810980281238450077681517049656797580276285450774532454479741695899871583210888158522947685855018338210730743532773312610623395041790525757072371067553992822315277069449379172430273399573794491269584101771161232007124954787834001318743917007058687424784520377321383683238679032773637652262930496693830000629106576377487354767188452678466386517961836886198991595892139486905697320207067077820107243183832909283260587303873513763685680533526634432873480604613556540888960490255654029129867296495750264549521278378091357649040482226566134672647085806929790011973785155076348469252475906035206135188819189168980137638019168302540419805831559321386829987395838819772747199889769153510377921169533241957717862012408081843535698961623403221320158478840992498318138718776890514422749105149022297513640709552991612404017607480663615598832433891439359682708670573301073380187315877356188987656394645007566915534369844463507556270167077472411952034434606833521907903646429368508325519373785245206018780772396480853352760108824106338033574645861778961762949935198584315247890610237746002142220722370479924981118253296348852681936236411034250494617179703577132078709517135011802136045568142507508153588167930442893472845048076152992127128904033305981231742053943639975043225911220365601979382437139940084957972144899075551481818229356224381707198534494294818605228489666997165812291762154931456487606220975249925517008373099959693048268217062264083911666692645678158510144428840932345326050507417980161828226555042333251996702668829927868696483985405020297425458689016555029922514736531469296684891597391428497279170427141833212667923624101350686764780986841734266515418877821557890730243679875078481291224931596636618989546101821983976523905607070585942769866141447491362360862933007724336791105699466510284905252402462829469187085622496780556446443739646911658660134504069727497901968646176220753274998868134722119901755209094592801013543797659350530885217726090894289284371378598353716923115944480410904048223730354463618948901348274493404592543001060311135022205821536187237833115035688824207615410777432035493252925263742942566803835447640486639483638541396477514490598338744829767707421241280570875349909933491476047466432612814338322269635891291219891163336247354364802216039385225982488771787638853419396876974888567193191333753292899753390714623338580270123276815775441993619317552217513760795581145264628250975991102120535795834815258530421263440054785921023372983907592694358831436032195576865350017508832762633347768697840971313741099395082325452468715899292713959927434201935992511855966474375083461319452535374171819467616618671974679057696795011621779318647003171418257597798960925215483223274255277528184191954593479006163608322239700205111999772581051876986194159709151625682140863194807690144833748316125492323509856683670533094378689013657527167212737974819053379420480373911612804000623610829149274597224300528624260040265405409205238919525396331026196791711229182655363054649628220271064257130154694070517105280878042854874150859988361053795951274661300861945882966159808129739887964003862918244362807026034784389724784766259897607581703286617844070363270636131997858863079813516181648247223776635651955733506657308102368856622049327105578217378784409099472606141689705954971787840001623667276616193889040643018246008354663261468515970510476626017066657836116042075821918410291312972515507101119361185951959944912052808538531515038068184350387885687987498414783731171252910989996682795417196583669090922483390676665968827335396724808530952065975758961097816078131881681058068951284940761013103097644701986287553875943277854924522228904502105582202937280396610070733454800548621379486593074013761318581357827069104304011559811877327503788570571372830107164695452929174371767473435694797427372223936450625746696645428991848807305194805598221620444348848106888590966171330003814648945399296741713081445767634167035238714002115765175172564293343347490213732444325260650701122288493486452726004397264119315012159863609512634589052310996135232396886950504361221850423505912426263833415506647483993371879480039293473632933770185013066640629852142612035563597906092607303578524460688182772865163505580008164500273300286088286728603259659558612891701798989798183941993859162532957577188932028435227418301865784663917523703749380662126957926077199479060748796704385358873212267165318488137901451895787769788885026641267793373164759334633753705127035847763609941676466751671126222450915113774337215269851324413289375980254708758727805084833090633601779201966838142826120912060556214021189494116177872619304075350290510419005549920141988582473554776811161745778703784537396367055422033790949208918065169512358586875456749897291974468872703840211471914209012480136988999430573023662286350327847457794129605639750179309031500758546522296622633425261957390219924964321953280035780215075476711703102416641982751440516770323672259264502611334235535874900750004009242472751177643687986902150987633068220799995052870536378698147570582324568408498200637000620370441728849632394895858205929052195885746133723135822929431945631050996066496836671830115666510362832612027881324064919576203680817375422617564580660537664626239642903614378227541900077804916483173886332596498797645058798932401106027023341916387047586469363571376668116893238922584819856283298061729830565081343597863380967416235764000471500699786796752831545226724888175345088576737687259746776473871145339922156794420844602703867607578019873779173880286199153414059861727112859041807993118879671933100068753233867897448493959594542578272157714900880011451032823176295358498554690836685136051185364762672190423561429282775748233959493791897763742461899684675539547642336505370339211949348878931515746743673890160664044483680483360736828024113542743940668680848271703368726661995715813360036071517732620676952411684290529420375742271782925103794208337216910979469775849901284652232026703629459392791662512448482639682377069359821071161093861948233670495831954917727591943762949475871423172775649958648793475504561168836144321472939577563270551005850507768175202117520135555868686721622740394978543300432855560459206436036116309583873571778082005106453220132691434596269726067480266668531904006331717067221271197132158809949562335145336696439823072673947023975868388718084995546737190502051950963542456053844533789565622987023606742216953649525960397672815409489503586797628066557532128394595399709859575803755145124424208873903003486597434061243094668839388861308068744936999268064780510337468145482056907507602943228763936509473734391972006606123573028322371749966502708386909043424395075212178623192833938933105059081906679953256511467270130227300211590183762130966307920355247954944145098417152500762686791251761795950172579608867683223009106801400313900474578043702385864704828224130767143182696117541152319194366546483586213711914725482107200637568185687251783250569079197074294049528452549121100187797016995804120843410644081988305776377292464511297580009218624366447563609616945629658822396596471682490013705510371819580364369746118200122102522272343727866534531921457772742858040330015925426555124072667756814478038129232664310951895489145151384883109979255500594284299489574421797193959830265425198771978614954723344183827097275532176096004700012548988009749928799939935578816618264016122243181138964603347345051775801962154709708428089602115631405837690534490580113469935634067669328179865386866323050383896539299829038811937786352438240269230903988705984833668234543241999243171174324352685067861159724833901925991431002317025138342082603154524828348905931464088488128206974077657440043352658737059650336624051854994157607799142712275244515639574551318768298148691799619980973170811860077381147510643254666990910928451989484001151298205740986031151645936877536547997195543560655156695262694984014685238244708333837710728510866805615952718647829448134352906997393089693801597139457399314416890155332602233287172810514785425630461001896283500121019203125687050413673847147593467992190205716674973072640298256787046296069144094235758120894583268638534817598956259220757704225927759255126725545703569615324264663256537335720370465439832922835445393029502404784424877726688079072910227653885686762943167569679242152919811437746767161813680826470978615985783876251029445952707064009656649324858527652738951237378167729694988025174986679366764926860109653313946495013328582093517937376414760445865705085437970951054418948078819233688185506232040624529603488696451686550216076731204882227186207152048061680952721752709644532832937584043862946543417088527918746102813711106612514567349626376618212238339168942387641889329769235854320999621188794069205527683061539324079003248953725625288666793452411893798516408599350524176839737060958306699619796939354380553990967568352789223815167322759729335462522935604174400585505764437357282587390296539834293347033457261749587569369585498206889693106975559017094746424846325556044674861438600870332633777882464970637165304809032141611928366542616121966916515543221528313073354770278593601212920004467251068339667264850587873069123043073347487321803822284634514836428256889805396030400305352909582460530821952828908874611935782737103739699566763740834297247923295914906376229310666335893677506207760669463655453216398848691303809031404116375279200298657568902513161754547274410520019918604752243110959524142659101437096575631502564282509448712488564106246482122165219436794421537166180794714512796128313239762380185983998564143847762862532547833755900414044223907817570480981031590341759223492489412906227948641895404804748397159034687066364944573559454321870836970672990273115466326691912159702492147293540635965024237980554506301432537214219516984044733751598429255903728218182964220747298746066423790907764837187879016366831928532981989748128676030467784267413559502225048814606502742764688387697662538781857169559746963507571221299527130251578882576427452990657125011719000936789089380911049839891643936377634313030460185217001442669720968269637921483150197393804490499666372712086581667188120135297294622688247196742937299932903410613818196579240218626339517140624565507359563067768454381619705194556898241445881653143317240612589508720178506678745646427345071776976676581176825105690764513245842465319917191039368500237374373324905116351091165926024162930618172689489372251545227695006102415720376250269650453124981158865376199224889499479707626004142619553101630538036114474863872049657120818483804933308783594209444651380917406702762560638601798950112410692311838824098113990078884693874903541299990825735301876133566719692709844007360821412775297367004668605697053428563528686834227139859611562578788918781858774497257592096451706343767539493846251243129952119055292169157089871317991826071988500039220792232481914867650965504707626013697364116513466327881612818141897934582355524830441214106789933858610871527284818467672764738723681929623093324916863619105977330276639500046766290837771839868748120657125226012415854960316952791040936084096353160334239745968748070608329668210295411536655628772886749564282203603701522024462645484407729926321355031234967275091437663398270271903140061731354051121425190301737064858952516185117979080733388687568535791411012017616966406321254090827955640333760540549270633905132231631013359394293361074106731936363795125210403330072882115957326475824591227615811252681013078188423841087021055115522545490088652842943924484256433760886643546600233790046522394718750429266088711013800059036177790354052881056403159898076145725303079715249256518625060183522939181226612229315252316909076832332387966274646430499907490896123018066921706133882926034457308024788167448972698051977456280783936090939111084472014973587677188712256316179742370765114999223134455097448164904445803863367861194813186462142794257476120596102209454142682165859876332882590692728935978406852794153738547770848673858204632940838334815818978470252328320764342294323088030355771086348422457410633537223476693037046135582995685413371752670355807923522301840843880842297501874793718564647315998491059962412529643030204130303081934558969881968664317689445507490290381221040934198474133610406447411369957638581296044871676609530749736935780023406840094316660618268719116520609516259926234595796742164767069449655689530825468719932212324294119646466602057184044448654492196641513950985270584374523961074818378724512116167590589575932319498147396783703208462413123337989120047382396279699292263359950553745598722316847435953502759416683425587530187020920843450427081673635642482632175323869400027210408609251230582103858470576104859632310690178045184706400679235137049510924424981894767304555814335766207643918400986681229226078489634124706014490157132979184884265279911857686633223429180194579337812586578065476362825574579902056226272707601518443251646791010546428935572032392526942963735788413803048829214203063176340531400545604682911691625715447355147899674957066947640556878071118212174707719505208602684977620960678641299899074543582322267496861927538904804521648762386710141542710304184562161726991141154326522029927422822320035150751575295712152036346778704678477651471714539785167452574678390217457419181290841736568814493337197478138248260302218419720033463806888233189500105013975095895446363481726392203946877970204009144091404075664385281825615050108937783513386168732715649344492851585279502528559021465250161105667239038931355505303781798619781189990487566581403303959607963139797429696222329197459606261863270744294639792535390553662162442329684855383033151076402663181591689931735673678070618916678554240947999855007258758810570805244485576588593461974864125304026813008654169781292645540545353741172040184248655673468885689103737010806412523684737565269737961628966774718699474320772351519425947407939209330813317934913085294855217864553735493524994528580658701817582376064416809959647339082934750335238727912182689231722607871898049200528995923599861934432127427584729978939488556853736658553644720657614363958038678361236153683434366549991958179202934213908789560119414844631101108396217318410142545773427753674971778277056342549265192851025457983044581549734645545477164474946485926863503867769194353731757342558096164368361768090954373898068271308450775111972511904000465696791636348970207292120017849534019479460821608648925418833713596328148643649052700560933772666457189724867558029709817456587321156671116235528215288174788475379654708857438599529009531962645616437566447750125517368272057431935158850430901049799548998077081971316862574788465413484998503307348350794155500134274611101150542555038186351262634891331599736862429049468544900127227967217002148664424281864513380173681249344984221284675136249937605171012087213453568719108734809346472914115893661532408288311130601762054586272464241290327971402803710369425317454491199262387761321904111372385859434185073935045150932651461615322412129669095099336808055315221680925691046432180375443748115324281156362022326926794745563839176957415228361780808902715275585238975597370444122626256944368232633856174071503332385400949074178041104564500864831107645856568687879108958871176789529599400515375172814329025938697636220593476225767950627103760798831449276350646445331918380968181054575098507589157014215226876833368904691688729706912727711975174095773390715441860012627766989829988273378404258886115477110052448773643704413098112957472333480474089360963916417713318538962165875420050992856915477931226978675799962550323051846527961565852460722459803843232100359421783615798015985423359221748843396679511216312188976044090639781323942302091509835343451447816220274152532193554964364163737794713758346256800309477595349636641325066364198709867566080417084794352394588011404692135906091253225548100099357478293859249925790523898168669080816408423111033137471955038021170781361922417508081954244086939398318268838171498853482229030943688785713457055096715744155200564655422210979395352833369017167638743667729004203425642367653010382498953085458647328806772776568846035555293312258375933284891331264983872918702085392181753393249412181701651882811497893894664571247569441296205724874005796286265939420164502950943179276403094627446322645982285536488295698855701220126629174318987016022103817388500130501294245043128325458091081059339572496206683467142464791906794917579514513547102971177234402686892743873104004982584010516745433860999122166464446007029571356504928579859332698228730700784698177861201987669132468556315896753779520431538475213074272846191257116732771054098681911711513879231450377848892460063217808047278409162672301098772238681422686695536691281876009196523563143579347131229223806222877480947008743904248628454700297258138427442920959965568127457974605385634322207385982138614592660691288955116638251202628821116047230742508358950394628056269877349453424415848778423031237664594871325224998069996444007729539717615496466675330997504028858051288351310455780477249774884307873846520261391599367502804119441320911202075753509625327636097548950436977186900433636049311187409764898460629227612092003149947785319584473370890192798083037860967452922983608807088980829558076230559172386612093371241201075455196894808143313393402593793620190283256148892403685643427884651501555867134605541966232297242854964025483586061039813773203925728801954311276451297921862337964478437643968480460294198412945307183868001483445135082188297451713426146614719769583443622715151571862933449848033003785276189613080248403946878570893522545117532913147638785258356014344508525832917599317013101146009706263643442495923945114900928791477497869612798092598759007218751335219124716031745041982841146943526195256857057679336832538664282430409230854593776214577144185675876284653308790492399615415559027574509577991240747922712503714096260926130574836756043761020510899584131421629104595326578531313357087782108506790781357618727450751709402516172778103393293499739369746846832302431219193486528170065765136888284328868000264750252422964868378720478375536716819354946544475552186401964055564035635605439239367337492440932193638598102520092962272239379192539920824915060256982846042314814486527584557711572966559026824564550390114930242393504037276301396221989026983153732179756177714565485878663997740561454747793588828596039704446782368849278670943230171960347697324981931257135501838406967475548758525064956770183368586870679608327691858134045673215538850814925590519322842626436641581521204277282764400578320860100524122834847252965383212612953132669707777910767117703871712642646741316681323712862367262815864197488839819616099076160460383762923217858581000894685059093514499851979871086131001057354201841835808678497586942137091246704594879901060386512523026819816673450753161384602910275105902821469576859990487903744547072888117337490941316465239708807563350314553791494872145445012940080843099830314045815229884579744872516407910227647081649196017545644059361066995769310343524393698480736787127701819308706261549597946465685883034236073969137833009060526359604003646861012501821254307944732395088034944540963213027807435603358419781531469016873419092087774361752179666210126765384681099761432967003338411657701713557621697222110402839788873698685467069295743633761856739431727058181143628102231002425761324057354533782982356552828135302332101114757932253716214671010337003851232341067060214986582430135267359323024556879044297745147007259730862728148584081282068209766773804335272082217740282233497550479091221728632524444721159298938850690235890503567680884021118690764625221155113952823809956956073473183827520037947285866751153525167793539475534649220736014330658867747416702931895029123211651966105478903553822991138372835493091203257698282841210805070061722012972846848500852019674858409854418957111487800038348025328350194619257583818914934389722205990202425441428856896859377552246843986774461920727090356491470371240783372321684149707894297518253516001053486741514988278211954686479333074421122518625215002557751656290397705580528730247814896095540996644342887480002617739036234476752945284119220125621561343091105132537913530742331513319611855565252597678388089155863148156077298595099535607025483230407477868197003600977101353471202439272576713472076386514192694333047309232338042367649900721856106075614471915523133505155485830059978536490558700044435250459038630682968624796971923814819409565546870113694260007207992891057071780409917771871528063155671780375201129916410593711324923519873956494491499256901894282633074875977535047020104430804623645371694234756664981699555816951023402265498834875933257964921322010037013760446752872918260225087900389784447570575719004191542770924440930907475256779565562219589839523441948332964445380993416755420933430498383597333980931339120635788508122552581335248672692992052352046835308610455274806237401086057773246243312248976430834140929845056783261575016325464104561945150923123786546582356491922293211076720878112423324432215812095638934312052873728192112895037900701067134412985893659576102577517687501175251416666254899489434256099048838571718079888070493532198027376322449412304781291119734478358146543944366249889099273262479477731215959366513575909673031503567330398823587270068798453492564405212377927932686542379570708303766859500668103302227442581194077873420381084213417868594200168645834812937713117592910638916504958781562515358804292639157778866621379548224066345304716640958248492916836268395263219771502229134412650949458663298053190542151296486462551196737960077299509263546320077327282838124296225015938662537701415327337865981239904097363021937360469233987120952106968939733143457811014910021772526959460007715371600123910538188293912838234733270230458400864781903007486068012983374028671657528586645028039245553404411484324860429954187710420436655280289474743145558000658520708748084642455279950639912962484462070182589912717725480401400734923528444486479199408823895013780372932704885605905281948993839628045926136027167516929466720251589615761453428992254150170367337106702626164420841435224733516695953918421690035373045106483726249918411066908964548948817532777191185074575383595871832439573609162562391417584866406328815850703216138621889941839726666930415117219754557328381529108239208470320147566220423198719635610728156766782749066365594452606239690678250275248486135903356164340621764120725651232418532605364446775085768488353010462835640930730475192012499897042586745215949478363544499195171516685343566401248757573848297575953428461337078430529332651216642788286103075792576589993431891873126331330593762641058796876532347334643864004746502693380430921938618137627819572822634237298833871910614267518353481873558331254229229115006201955188540152620910927890513380640519022964336894486179082867502581503008303518273489174645107148747421029677681929352524929483517451136828677858852956452989701592192094062730016094609140098857294538199392541837595925455623140402656688576567062032051767223784883052666698086895045927985042778563641146070154068840683893101712529007055823586496132962519224450930915778076794750951186686955292703985205654634596894828724292586252118303957011748741800115424441593533729813601463635313326911756522730356702698705757442692083783376745120038075566487797365036128807516156026803933885176737985961452518750716496506716906300340049139931468505441039406776705758614868501445369905625627328358174737212470672327739464135684335404490829463901368752900322406517630439965365018029524976262371201155406335223547173816574596911851832229950565252094081293946984282110061756212658358507535590408748005691109646553649859749761718318105473441001069981060505134967735859658390789823996582571180162087374800539200267810164164503780306385925711097195206475236621131121885741369819478646220543156548072958218497782611398525772767966012000803089076120078168901071606844906177369056189720237983270721603569217631819017173682218313551487757496669132969324196865090630690586608147290779164901547024494953215472869287409466076708889994207088648087633868909705493903923092091849542729359437805167253447428139295896029033534140529762091440259497881091827414635634772102847890262658497781460239079946738451076853613299056360006099966659383456768449296407316522093050185538145215815248256760748019527986886261524229082865209853822672977606356510890532735715937034997124804880404564600385287718167384750239719572876801315660596332000431204301601807734029541476574851517087748338367983423996610752145485880967458524533491695781587964731581925383660978349278044361533374159757140651785869363969543378746150793485729759946457531791712193730076060268223482923096528419029147074955819858195641050281987087760654581427001472438134599020226328978190103359509531613504283711747499621647211639816339373930973169754839208020500163811194756244023444143279497698454229376632724007812554583370761892938883365769840784688606053452940913309865338884869039200582124010044758441512684269723209733315378281007110020332554867657232598444682889915856395268987098652657732943567528513361076197935741562987705369538262030797229255124774054594556369145649604643905122686796564415293734289593145612845501423647474039232372492755815391720641177689372425970406573922436553201892220991849702179628694885558453821007662785753116534281132246582620855740010365220515636880016006314654236339512366821371122923727862749181772902234445437316430876567335632651795164388383106980274411906121689685772966883692325377041521376069786882160390885677420556857930570876966756400809942532673652476553224284667360253128597841803676531038179963127690463290905388395549504541572705377413053564908173143556772497280340678055757821400525788593246367215899407494693487065270445936843980449765522758976279158039005081755161683305126679813760984851700051007806903390378875250585058880747850881139296739622577517644273194199293670365272205981188682425670371496573963433774185908835968876951968279163005203478710662350701883527783223899162038192201165124011500927174297290618993890677299572857809348865058968977436881965442765324316071399079793324534259400056749800344017152829356870523738484398298145889060383825363309605554636053545664231344865297298832636113402347055687059255898070004394448933829810090408736580332054133461591686418623185141132830334220911018239610104992217107953955431886689221473715914306564595882821881762866358991975061419636491728299098782089049610039233403481614155816420737302922403910608957370026333010309503245658610109523159954613784062294895246671362046711177490771234836884103059907429691665894468606725757875080000119866855160829238201298766091964700454773690599464718689745521732566690294171449333413175216527403615339419375379140879384429997225177930107479972099310418442246250996297062354322149389846939249470782978846708508056973945069232001607457798060856160884949604558297609907807683807548498223182478503322218033601899719063135002783546285147473540211910598746421426915378201980997045145096271349618190081291102998164341036599931689066402453473693062695425370239262445672016609451454600481461236011075274188197133432757123423375066044499612564188145916047717346444754984036666964565296573274165066653584620415117455583702598070904625533975370673829702879092515704152216057474152438357665453818530130254742556164817006790927327072795072819172031994324891561223652458059003465151448964276069340965274943988115586532452189616086202103777911578586933017612880847689648382664297139482044090623775852978149258097141182734628116971442887154406972532101423060043975139936894185901705876878620923656046640943221536851908695941725962227123076960277129906038696374269792284426302384984756942641380137620947425908656356844395944220708927688159536301034536516901605783097512077108615647481209114987405606696078610418993881610026348029887034065735350019899372588450765694658112994307107575564777187385354289947567011735716649789609500535061680115268345140925368955997405807188595604877925652901377823675652924509944292894124778774362070736848848415229780050808465714811632775794361063548232994197838601654849395311206083895209444944766528453544068938531497804206998193265187661422707391765639832877264152517552745851156774271783997291807533378010748124480908806303395951838870406435695581156322786816377083872530805178039047069752962620222101833411783347047641506001237180344953701343984276433938949044587014692128302945888002497939962918009573328261890181463261989512774652272843269981808490205629734268416701027055937884875329148478760184912328728652733352768674378774855482407712919123255254855479859803993507728176423008320444339630535461581205570684226076261630029188717026002300505802098615811627429523272532225763010049146819019598191408284207911258996116682541039006546197700901983179749560610866675256398737428971726537688599785313151580948368241869044648531897529796856684924215687240935217962852076047820059491632085260208187309258346255076394171275664821474462975644448950192119338463870910519366672610473737226005759465769257624657573447836895077815726415345684161210667067703687911814502366307967843432338013744489238147444743033131181781205909735097225199535283786816058087455772344913613755275431991894132160962711797570521579862530433564759663226591265264105565100750616119342331508579073921571126814787542259831182515279477724384436760842143392309267030705474620401777942722562864435106704875477186148384936651272842935604478334211862137351727224809360855770910763179725344208770726378706853957056645278316838633582800381128988776647934053735411332262726506452121118800016813368871555423657829670644310872703178479361964060232417310536639114340356775452113287084317932911251379131702470311843861431099372456296327868484648115071519896407238416737237951308292173510891512025055175059804084932120546294285172149217318067153056002120283471757678872119781961782780332142234766821965427736519260440277732605027432840899952816781196875424335347570966845201677522856310051087114028555788109401217682662446176227827596291145030164735126328843438685193566603943207100697263037824835858143054381846608649083872129783528108203564345444687575141748294838310603092922543906443475256446132161931152696559064679372892344208786716891022931887614581743415198925156380653979712247548283066047640251550142719203989077926608674675810194677337576284463038028262806169053166749820454364107691514399464184131905961610800128637766141416186995454765729503231678902084283822433126217738964470857528066597297562293248512677042951248904614191974546684587499439143209409890143239175836611082872013573953123691014260367397862514367756912422985196936568085882867062536887157028223248839845349435714513016887960434440977166077415654461900371076204353799603953501770110596037432586460735953802871304612761498365133334941171877790473185893750407895703454157637871586060801780662135995563165326988137640095368247757681479973195275109243846987051808229019603353587173725136966389777294205420270436256450133341574317170106606035424601470335666185518725146635681746691678713999686088704394608124659155664012731898508424863163658062942921689461706947850430508251254847433176618165857526670298099423542178114532854573979163077560008949735688942955116180438931192073292824834479514460277130959607605310888841489016319044664651093312244851243196866790724925050340344454703603168133341893790036300540628018981615970088779802360986136724120203755522602509373308729063740464773899453703404145579593351854977788300718991851415808905268296067566432312283843615009548832444486118982870652376032516586844740835363153365245468189074295805887112280750502535016736774096764991260740757177978764966689506461054039431350039306973311804961081755745667924639567933664047866804543056601669575980939640686973782108008205782349127455550401255133073649732363528422000223580406910271611549083213958544161886363401623308778717419057652553005162456601939350271055926363211651198666458264239226032270180089292458269236216371721413360536291523162451224167078861981365715427851002304365935128567853160376742757049584880989790312157769458808469306123674037274486116355922817339029857956827795333182583365420043146570215320240593842440402648800869849797679923896182194666386289019569630133851460718017056877777237920739282115245564989766857402582994708501247729504477076070583651446072725492075678851796135488715397212001362374230003107527111812741333121053746860876964878954415029546176683091268251015328710121214621080719288500772310750164307383635001271302534119907238282294441068267375527123506810982397108376196718242527401815104903063057497521596630316796850403359351356650515625303299869727806665441657726187623950795071277682908043909813319877240528649724443445202189243680760125163700600149740273735636976680185068259899252556786285982309512721523208568772051135830262493122976164250376720335510977717634047285465451711471199173213134213106154232507833741137521715812867611125737347969263288481563629644759591937180279958696125093948674819561867643678509074937063257020912004458567874327350305244763826974202543419746614756177730247253305335177628145574333986555446671717685055717133124040132805810463650478466818755071153609994082196332175362866434119626072446999034279228550431364262567497527594878695660549695379575875463481207695628260302951164615737167753311534976707797921466568833662710295151106490822224647836499747183252919291392764641318385278537850141550704428071984241697299809627747784182387949165562506466126849507835496220872760078407367857943908720195255761007857997438005058689241837997865156004960919171603681392907857453330378835866980101097750401581850478350946766636244033532843520394987730193179838703302686983618729361352790107367568909560601683998376472728585194185757767964669247840061319335451030436678853780468734743447531250576936301159300289152890877982907421607000225004661240082632476578220364312865436826518532353558417843699182583834420881567123697555476217669758418558993708537416511679659413096582990344692071759116979801340835472616996483378504714017434369223257520601745987874246690081665200484970361206321282627591653581986112422135600607019944238534049593636477479813442979433969016267552508719347678486686330091195838456583193263966326745224061512489244505525727553044184069818401356353975757050956199832859645161272411603391442777322840232730824504725974782301574344855174389998462545980563688567959017369987938701120265863749359223625141613560539413294436890869208222220925217147430744801605907334905711742576397558084037543749013108362236261551431250379737593042308007773465756729586203153002527958051773402351169824159457875584861939759936966668050926177444319788627846263434725862578364178944877391978475431511830090338674526439208165995156527465300124904360176325893161725963021322440839681394919156255216818133028068530955226823499593179566662618914763806100706995407560158589186493796657863327830445540032551753293978770852303749622652566298309418669956193224216768243269112216379119860710861340449473338425940042867314069770956870820350869142515802620155905261506334261067028842508316663754919448462532203675146237164934671484780234735370905928545184187691424274443480704397229254852811095168759997910463665498415035098372349419395563666602912971205761702319785715830796705905926220868993639383646537583902208199802688985946751283855844902632776866789847430637272608427877961186911077247501013082427294246401165833745957370791212874398921595140292281542703135649452524007843773216895216283213598568619319804009787581517175564886546650407921514839598306562233126362687565708139677553414786598108402873652969954860604995548495563740523226517712864841003885530472574461563062552907902459981538321192490738454870351284042809823693598213542140210095927671918873643701149297249958469748183585527765794865496245307255406463951140857871836350058970966935592425564898512816070820337208571947040235633502187790954723242120281108672831370061131886323515578658369701596011144616013908631332608495723431386004596980592982566571474720060620051279675933296140057425928874685323539636767921731225412439069698045367195372149944419346977961730179863545371077081915090150179469424502318682171292933257046708037327398870551660281929336272110307591325816363862029458448122580029855540942764554255187987355068234268484140631682406141569891815959850229595571416561134876912684783986715715202083657282384875380019571298626418798893380804414486235273017944306686389646335457497410421641769925803199911997904758596429736107379469027308902531526402732259424603283909895651240061803874199349274774628375607994491966613153461792233900953193898277847488789128591989409205317244767432349365148096173394014716498281491949260503076510347583739172770426035533187476002818352232795536813006489181035393685718657345303176547083979719660681903480195344828433753772316172889512839090766171594193479345256921950184340071495548789499808591366923414337662040137431444107267610969268108358791997598488306452564785474478305389521853353952945131754074863325409037578292655155781708342359307381109444027874764425420945452083105671920285917030537286740582762317962743523337057165962013235153071154978235005960677517366545475946882193244158404669933295680349178251836228146108067341326064425305632576340134686710195753669897654841018786791561812519278155013975728725614446590414826787806390589561201321559121972295273010435248750739534136916985451553053787795422377591435643490276679486491900205605247060683713333709016264163015446916644758166939258019113140747988846448490655627630481189212907820171919956533181284523083067136867359480352688971265542589893131450306946439682869291329335285398001162709822724352744873551107459581797267948391301527852062177641521395119886842828701336458021280542229047629917538060665744692355303606465831452527912811714196592289236597382180819497391745919189234997979891711761904100632606403343857642659780577697054867894193436524672871676249844911230120009184301001617743123717981112683811347427266836233961419119868973908590814975389541423142133694260650096717396301941355746985577732459214139304420287835153203692210195106212913588349981390294994843061939060683450733619583343349880520243592505387957393235056195859692359535306900951132557683890777078885288334826827568062812518749443486584357039956676216804538300561967694363041242313012093694177547587892729674321294654947720141899412008189142264816474753358737874666131221994909550291612887524679332906890613740789885473635270692209361917602475565947498561078013303726703187188694027489455477701181284564841325171573387876936707083200381119601863653387580812527616197320430520192906574533978825576813541949539739433945435411415841459207457307066469132204242408925085017708382064126942599199471783373917140518050115934016776913246637243855301048690406384342013950992027701101659090664672720958844246588356946100436243433253749214353673685532946224580839583789024004097400387073390683816423484956468091155125583253060275373407924807462143745346229183712953356745639776099729829419779720037376833089991309345899186758830761612900093072238439570874764423282037215901753005827362570815965766016366105597285289495859545567699760773743521223390685802460379371374983849620380138800245535690300136359231539955977558976213803620332318055586339164414017019189934938048520570371466552165704643437243198560522555307284918917520464362905881780156756805435546041381970486172406607611906681953954842738737199171457654619254080171442313155676411105771107314738680278107171005546229547490268612481200571741677781119436851160587371051931270670915436808137854241185024508455270714979676946907612659044721032616221202297581760594832526642312598610401640439089040668702296847548980090265753201378833775797900052532989267046799906320751376429444884004317032168347589473570255231801344282236070354869440158452981946181772527871515522744648346959763291437488187909052729361914730585610188035166544312091200414239093180247375062225568069441309127805037670616373026564641134711977070278381383107248457622953228163688751268564875407425926263196265379967628224013171478593877246154347789721632639833067328785847534570699849401091729562471640295531769987497046033035072601600130568622932795817178937840948973008297925049892297649760185881294522530397574640598516202428196702803839061462976470914683695890180763104332439803993520798685898849463752329760179426940268913945958323769283499235622861414510799243632736757930792116826309153658962071150610726619963140378052887182162905153584923995910583792076589040208373015777725452829523304817248555364027134110540838012380419448094220239554765335525705921606252811975540590638708164120465036372330876967741800211383474376271752823194828235026830807951543441371792687532735675701668546915949882207754426245145854649113564322476883744214777920612137559143781199324209863037745802193958782500406860412313335384103365758870200087953477031634771195182235449524073745287281510215688067197495391360286838396803036440932105350324243219727136990105069393972677502057363722773158904369267033210979159932611885679564068713929233968541140063594026694757592409286796023880203608616165826387190444936172414899601092479253826590680151034702957152946057142270296128177219121854635534332527480311229236847512022169572722293676642399810252999378442680920687601156336425914627246593465172990334930996764611721610365325029660349659375017604469553495343023525139146431705407627454559980669582635510002792113919937917306360760734489486116664374835020004839498110650322649461918717336611484375546267957639881257758208577345478901350142306612646498688270098652074241280225426248833004794647030388874334731464180498090945366040807590491512473745487296211352435161187593518495401626456288366238753900862684046909511367723826462619870738850465163189316169832575673007743752646669126757286545917213362922077270447038549463407693921197094749344504915717118027309461988774213726284213301025089498543853089823072191834135151781133745653265300291952911111856224449508924825496940154538207230263695159814726765465254380954334888876028081245374817606183800458660863930422482364717151617743840793658840716336706478090469641240263251186705167312229338088165079338689428118343642067435798990702849256645381002422190235891169710735437040189493222323442260117757796079182358337993219395842382668252639132754681827915975279432768544558807069751395279108088544998201373949904715734659320167237560571241401904332998694607172610055565970269173617131101503681030869672376204094740921097090843092939469609852616270343793782076830294847944718385733982750116755861945254241576155793389116744345982377104276467116991435225667585233960419663527926751003928874817575462920295766268096136641613900952447838552252737523158828193292572153804215820222167209832964904051226965337396981721294582555015586636977338312991100882503966677452979962673222122864571643598118078516154312372742778511125720114826060881382800994381917035616870863858883124010382810132206405720296929000296698131465506755372741996876746790152457080021428206128661941744142229345717292796256646102238742777688443073857551776092318358043115480181297935874485749517758495407482223089458285441096405367099807580131510723858431009002754478393957064412511130120652690720006223632691500499423484089967483695339796900875288475469691583198943598953620245551521220240811438041442551510451089075637849946449908212897131048960208910559775348142559134466953788043826622863995703295339880643150777842788475096848903250372839052240997931253653594681854504136377735015825169991439795361649940615472726318209630077007744226514157658637447024558258833711882628394509506277645865624883554774316975047414325670455991255689629483496891137194628361910365101451381362742082405498347864513022649480716638982617790919576138461496074061092513784825139552461941783265363155949476538078999986207664420302687201985936034041485463863063373722100844493493236382108500431156048140953680540254950624804146016144283837762117070673823774435323185630585623896470533282615763031769515812689739266181756500046238071811757853028436538817414832495648739953393079712900454676593034029569863511818117848495686122978496735974640016950799697081677141935601388876418806961288100740609276630507102605282592015220408811676688397697868861158772697241418350195358368840638051808732098881369543509486542083791285696395420250001413352240241688803899702709681260822482725531033287627976498312916401994047336032561844295741131597066645477115742704026154291644657780059626662707378016730218083642050370304454624401310082919575270836855321097392849119661537504567269751437677393593682556432592070054054801907291695929599062327909949553317431411883138855288854982079892383070604887743772679934821923334533492505670270422310747042277993504122844643068345944354206426358767554449418254584904669025228573230699738339023210132577929319520285538157582251968865024986927481821316956355934243245105784177974976589999790198930873603218453758093116080841539185560187978626933660734291060924830014471268182352487431324113003592203778602120965769188923131532737167893720149131162833648054744650914331153311301206739279553409915446838453590343374275310790925098546128349625318200393891388515971257571244302599626862035824463440355112339524979069308989902912392320264570111491335572017327588738538106468043339178384831689550632795741365655074506165313381771728637306700298738721962708105791647726311981004772386311555311965718011368816110355617136154116180175125190828719667633946576304636652895334877937413089159779549847221017260591706205094233645248216750585394483677310975913527655313565543228069540436911692219097102527503188921602960745224264290742575462390889004502207603544255774896156540177500921122153213779477312344198799956912974953480869954502331578562093040352830489850581457649476884897304683346093356862579610323238583366143580108076668544409103923312829645274646905137445016248011351155389125002885989265842188374960047498429975552371643431348981828924827992042287851873406447817813427376985277343724619102413491248259847492916870361740686605806810749883355685998737307967549367464097690020881258874414647458904975874838818541115583769347488483094815578571894560672878175232254591534183953907717037948928991999392689901118018224403926728782637453319048105237718701137265029711739249349114624316596781750006456865627467498742165927092881770166550445675761513567072568801045035830644525274710851141484431946908588243484894245319325981612344639394182823017055085527437892664238064576826651967896830180202997488288952725672218919186109365411746523593433460101379124030683512802689988140836848607069751455954452167878966846715534902391728742540117592311494198034558824953381685001080885524698864646753140303894715194357295454609761541450795118971267756111762089409716065507679870821290071143940620324329874593694180473747880593616153878285838871766869533761916625523159321218593511118052266831369033499842647698126804748779179145449732455374567134821500696518306296470711102588074453444731091116192261961769486312479644438033542136124669902793358298788610877046897253731316130736306980324133877273832934344749920211985031037241557694634691771085962304952148909935418631947307937676113790482696007657694370664417885060815502328473493922483219241896410322025493109504453715715956122580169659959504336641341006943751485679028111088063804161620780241156600409522259290053691986304239730748423217720627258236610978852051329922330502050855524225160907285048355300360634152439750093977490385578381228099903036093392803258292582392947484132478527208265585551639691786860978243068514700841253414327366357186386001950237691083139987172444200212500215874841808073358131837887503941294768310915447345174011668884087387211849734085575315894495161122631459174101618630274241342434975890743056652124136860953130728436922418120722224992352714905259155754572326165064587037857771058032273856115024020803770576577076224279870923383383245865284103838613267205091626213325857437215623801930663496429123033534770535116871977011877826883339045846069396998245733319912961138014025014296668291870531375691986252687654568669553635716424767707583472417917207733802365456411113974522652502126493108388869954616967988899262304779998863581493101176294106690276325473536615004217544256087066207180809245788918043676432149145602201556980426238872393431026397137578172462734266764389569215686084071333605475522773085585286272337498016360571483445669173252233689807973905119718781981594114996217413396029844972206312953715801125351229582257934293899015153302666676361057706745805037421414060643218812830010047657043632583719951307610811115628099869809948573184847078661265395667420996451387984479066475365885620757269060468794965321663621993159854477044027751198456891196609344070727929599634177388089539799371491603743048350300605058872492041210929294684777552983142814323230927363119079784414763813578202290374685309765234345839527311551579651685282482935536249003984877866301151773464130241969380998317673432066023898455508086219933825082136293607422206041228245589376920273871063460261172800443620870644781566382405410378826128562836059370423977807627168654751747275742707814630721698391645495873181736921987444151972617353819330191305347323656814079071722563070087260595267898252301049631260819844224446255460108718583228373378135173769352475753949855086322292274539168696552308499807806079375359134057048703953059026045665135448283138587495508922222492456778827578386330087731162105441192346735760815706732284653076229605806914323360399489155384243692559349519081938075443563420709315077981324543504137317346479085261258111266877375909067308928354567806841519244203047810734735315554051824782218268202846458789816525399710297478739816854306725422152871256962755959940062229416693205558534146333754478695238468086264040007804718523966480142252544234604782370135030803007299227222188446226578222326908080020515776223663474130113068440845376318426284378220860957603355756708765147489840061572586021059344383050261212959858027933275462262984947176417004932360285192307255393476641372023123531019825697240320721943457148183655032130195371082718535336285654957955407591343406675278673335827506330096428740275265396535112485719683588534897838373032789635943359907801009142928352956359494740137962105976120541751017902378698367731163992708613836252400901345950775214881826053464520117072474123137700971463213446801091006961176308987800585302172034463467679223776996015432053547313142506966102097527547007128309043560487369410658720584835835267120819406064512563694576458918905697434975745021006169961198999734252862337146071049495775285023996529143862222351240783997249197228454289961649195054137520985667200227453432055571631705303480884530821491951536701599232188635933330341674058984650765369905629926200534509357073364027067703977620830697536713298242102941196552712766245992968822689272585870863106948536879132705276255341243749193423516686498927733017766250939988982962458861058423888843901202584332462699192989061620542077983274238797884015040255247909570590672269069405022781321366180708828476879026418037070832677713744487238517972039454804077224652804745887395678667983141231716648735737267366613111522845554418874114361122162918331926214657728126535262418009591368120150702124812013527687834299773719806739371776163100550023218215821650589068765488556490228330139908005657541684067499712853308214059756409065884254111860245795028265841299159618034214764438204375387214048506701545032081450190550694081575059027133212535518098943893811558027031314130478752109712567892119379633746780484292984595293171099074975902282325593645852429195138968352971906604214146967688229212054364593789484444894004685485600467410151304942726565471970840090335669810399803360706472465401743325138928984288047748663342785810037925249619341041581706778445357208933730166358802942052536215676385369915132253706941376474560490551169879146872603324269213686051383465373548127840261003998451370015711410220511173185107776892084318265189784282389855212539945772782585476382430840068458358801961834408401558119712408687188235044250598618728397332190217879119061294674453496108626100248206816410909365495709810188438271747234252081394688937382368067278471312451156351076128373632995577231932352862638571260634063441529195824155822850145039058508237903278475671130545711270563508378922312269460701425905519238702930898286589946503572125612650052114945974554269622147810136418021107749128111433700833387688256340363611683051549341350099800679914409804627919382361106779750532929201149137410051904510790026907209357333534832897418626563254831205785363697734431503400394797959295146782844678370642824879004023438135565566159913456428376557905315708178934192489709346782156824944724329656554857636768606519756804536397103850064343010201291628049270651265420782427438120191399386782155382089164385874692226967187053802489404953993184732129826949598371885202886847295590039521472629168291659441327428252227559437876926353567837476778762069879936386694362685081637229520678790875795904883545205062032292978399566849589762862842279745560067238499154576386778290337006223138688343526619495089687319583375724013271503420258173368215376205844770382410428939700358504598896653835040524550482068561207857366064477119413348490837449520023061456619931149324366974330986869708221745659056153234450264556473620953576583234569041412786327347711033268830028251300037410416781448621018407896615844863703714694105056811638990282196819814697122329888425323195397266961911843812315891837158685297796653894437263594598456472809095601829804743498533091862691186800663868762714736228471154106587677214102826185555442184901149804519553454914611226720596502068961921517166249663821802699859704811937986211152871558242169138123882874203475972026980036309897645160399062480484536265264343004241116870002254664405689841585375466410110771973000290179475039456649837865626367969290892261789306500531076055574405762274567195006135092030453143887774401203290958168874562690447971134499476381349016462254908872434841906453263331384204614721952715748604610027749536419142727424047489757362282290051583179584478320814678526469138636850625180878432800559635023810058748671783331137995914140041388571358640289176097588581789285706921517847801062511860170507703701169860109726517477568712692743548546231552362871567407711649436934346413466383581249515636484056013295846705681918393781001904681971610169196887024772453845190672574447265600073163089143641594140375251754106493761543849158118383975605098270793128434799176970132793550964034745697888326498781667901072920857845087925351372563941615501219016140426884658684359302957173986955295346434119500794636851930945894387603932998881564741628598699346697504955415409126922950821719030873898189134287817809368440263022771896482002547867156029921714210581804421242095174409803344972387677916958162080889509577922996120681146552326907164325829114131734515309514174740322889319784630724972205392897216458000093331090254249789327690342607356237853038542747657833189126580688683436439716659957720608792016533140874058221843489671788787495222641728754140752016675332075193160825541345807985103541958597968919054654415664608498540192045442386087278462826497575714290630240759148062354401010725134410779071027543914428811288878996470900590585370916457423683112573736839473869132085260244646014074373250027652213382009628613908116116271414607470301679890196823357515776808269860629210589646257745785012711083760874315490155388137097942731399962733285415656311814624194232956716845229260823011677480081352255509644356492972264752511134464165621996482129992490334356976407326769319315307779000515326296329849801038169478016153295170759620490687313473122946900020105190650301692143685139578574468494617949245415947558018457025011961633622471963212276725890377916665170599656035338676053864844457725640766048716252090574587460651060242957870964545087978652450760742658945738745835700652593165915581312860765386993897242570757532948750993036337308651397669775480598098171897357783624267391282358359366579089527801023475075426909209901853402109071692374226839606316352309549343116908612044044154217816708075352696413187910988739954740474022730067688300086809803719791850406166891327595675414061625439684663422998016406724395692149157689947440119883270027028392766271482787036657269514936622186328848528821132790627085071052786039422390009289304423381400993197545304599922121586920814082359833249005795674036552494624125508726943482815449405941675582501021346841169798916677978842070695779228530461719456853473593916750198524474912938558585669197846663205025181400191724504810304220998404454537517393449004268441882294814281994227485794576366952900070061585446507808611045543361878611617969758077908567291262506408317057383474697369126997886238402740040263222592044880884928518774020428504168514776473030302184482605513676777077072505524456650909644638644443202223810470480805521290639953383502506313507972049421271139369889775349718543664210403984771203751842696803014073190873099527030930359916106359272366325070061698188197204443509300668088430643308973096575362329178173784091366922945903361080119515791362028275673352496333509910464502963243861742210672066780296479875611269560170129630570688686224606846861595127052278694103815107874031446832738272693972193525295125678855644505176651144085352848581715291278463995928139807123637696017338679628725351700038202490981788234202321329881070132587786474409956070411686819734966787575587437600974322807891378462358438591050066720336555876826213604964068505950463647475711774381889245730799173867468167372128316493571328607148374256452305965580756924464667357272501271961704784262394343231854257239327966930111600575428361479087671563234062279346196828395897101208972248710150947051251518956837025710454557812445683103304228251324734946268087711632338433327540726476159366064394938187215663488571418155413976900773017144039988302864822984742307985780124246407459698828423435577596145008432150846793963607704768949222442253870950374760238601103570992479866749507788420786357762354997042934948626250672128322136830834821962135836539562729240152848634016792718230427997087754989469461945997424351647961379628326370876545078989384820532903351048739268778624569860191990078370749596632340217438919349317378208782249895383054513791474694531935770176784410336618935540035920096725149426038679016986856127711414647298325321765965397789368685968461807759644830051749516286771622418896132039433712487514703164656494981163248523843847532378285200324896102568020545017246488128445628280762355448294516989929191809129804913303561859694494315110761758569931210919173034672857184717164177635322388958391156223742875478102140634465380546966968443789955844671236683934063363897547254222233948457661008455866622174969777224781849292475180302517608812703143096390768149063760100581759449162561312450516730151783868886864528147784535860416810932983387856287978062009114307279929880593640050414768658494949676686025300200005602355971861321362400795117886212023963753456484595712038848773031383002934135143938995430926152735287671532863297156028672732381613404643787738767303590523515544281054072355646859210053897510385221516477591623192978421845539834621394913596034434574972881826783072311997513535645653424892688551713929162736345488766061382858867857694317580530032083215999970623863668669977753198371392529757551631940350996777308797516019687311043532619457064660023620684942741204416345302199682728656121376976784099334261325240302029918026561167052957074752627690085122930435957909213804376873316505904431851812935129739857994826002807364246733877490701713712857550697982419827086919522122221177837518774947308261050939320018455824988230060803871306877178061439381542912569696644093509957240266837329454731323325587459434209372276606158395095083469584886880766112064451836677757145585927835765813295024082558492089856336946323443575638061337850669958524795264578629075776154075575352441034279907771773721962265920044531595093695981350669078111343001599614680333674376132439567811153461211852300923863103539363823484157724902178006497814057896300809182031576162065999803640561041846934529399323232643427217153537295419971220929293772512319575194299943569643852209440476806479622583685451500551469895247681614400199971521509272924469277902309766612205370943615989183741190312338937197414816628350457755565768779716169748606765460750180563986062405943538643074124865383268121039187857430803614589446241618237733424715275930925956604548453687671034816566009872276065061551940437599031289431864794316597336460816231006035296694304385747414921193654488807532485986857215576857866516737016403694181548542296767046691014953577375934348269711815970131213802874659469318215068737986666338145199998788630120960502244141339708663376552486638387700589387640981533007483441609045897541054581867076293136173704399239728228631074980109533423431680908649250691628937530068275452085961710522024725633135006376298570516600086255290227164545563462957974115623488986138734499646679019605632675392707812630203970327856957636607638992355448277698162277013829094859455779287111492175370938187494601494819229912425203103448607708386113966267206272864738665122124167712797305440571978887260038292190259162119748154486025252378947558486980078844825983439824893839934279852628342612998520681093578488973294872294686037440577124835474260201763616029069853989620212329722872456839301544148357695183446777524383833759426376184314796829289290393716904085590368500591989499700983973747520687413159480540437925432433883571925855174605864932830839525201786793802966707896203934943184006952410247752199323110462938955313783036701339040008358798356655047510683561084897004845334028614978436545269795115498953296589943754632072050510080198117257976618572401159199344476020468729633424581015031085325613465492253718358335602351030887220752780067496351804393875345625824746256534047271443335641260509318464771300284362038545194652007711848228162357220045911966972443922464443608374982339729142803334519756896816968311650194753521556125459978710448168609771054236180459564717283836664173808915991489730047471049781525988835960953549217495880306845057192963920478553904313384310071322098964845697280845600650077349872604081620224297569499815543403275938857655689375230193383408431647670314881448228243107578066862600669912497728558124313845074511849239137853860056903296448009868167248263929764591963623649817072857795430038067362951758795688684033425309988148819972993262268638219342702286568575501116591213809882403777999533366690682538620965243224840518085898024672805947395298414885881229603631423754937390609007576284737791429751694417825686003893471550063287167325040908558060738923744779448371210358683733480525174904270328043365856467339891948158443912708997328297316021454215251822835916287700665450145313982399972851442064513475373338010860780011979322397280352173529798914970161956201257363747668946631321134371065154362677034348256120632389369913248631429451101551801736528706733567499207736098934731027626757678192218886582236215222536451952229159975072245432830415881317904291832617433989693701591477371035387115488815976488454008487039916967148001851867899580813385675905307557554596631419852609630388876584349091912708667999258790394163205599715031078484473395085198946362530010468491751339244087781862124500167018239801462900828977837446143552980895632943116317007880341291234577483117862883735609460678088997060197262043108515174350268206052506176428454656541179175015373781725676154391936031417664387305181673365364754139085248395616673945582954783628245450091124054184993368426005615640103304931126176653528857512395908201609351451532607199283259111211328302551884885809697340684443904247792143512861772522872668004405536573301875563706439443411619084694986162714835339043382116505096900799389725984393684595589857416561698628910078853144844609063374591305373737214785332542642125404239867164184253480768240710190121534006401053798935008468625253676528475503843643866726883054157000206389337125683184616669372609087802572171704847198412745386379268459272701075976992312758834080560946798473380257386916740760021930005482413333194781708288501558273038000147570994568187669650860080214033084843990486527107824433668728199456233711692593454145667400212853876771372676914117484870588726950323749448129818725518243724447025111331765544581385470087519640720198686484561281160679946725051553646605314910033118103579525440890935571245196354568179719308178306684641424353619888445211899052706069728969668661930784963203400605837189587583368673483190604216869049185644907937398632787678229143105505477968390985981483347595699637176222405603358551659885439575146744942586901493090027224954208141404379826245255403629946037127199422358604228048414192359505090101264627768783839898827888328045957666492035502873654828170205341412571017981024495278591190841772991539012667543908245238384805960425609542558512631226072382685538421563391091565064040982587855059935803216114661899870890843061138687775884445045711087297646158768013504806002370296246911118901068635270316580078854497002207282429756215368021065390109282074336415598688778630364795988206189185134264971015497901988233754519266275642777040579968548511026176217406504947554746918810119099671568457594667037986939475072579263380722871660435103616922636033726130575044115024022226719093546095061865321282752477215508755896854435257485841718574143711064867801611053412400052103677623984396068288015708299862729969899036772311077005754720470561751770182993118803169053897202365474590388875684413346208978034972718996275680661975693736130544252302363154138578382568116864094192091574554572790691140960625888809633923698445197309576783273646870042643467008847791650525661538553481765340774841273407579498890777108854715327064176315371409254479176026575446742939298428669699299916671100579777184552237370163589777252029202001381215880224366374017333446182823986075098057417530258415332521297360979916425651838119374652587334369044535477404772100995156876917316144194123179736807644973997306744592685781875297206673031755860871440576739105682640186288871475053633555236279301408591764269999980801702483249591837361351964401439358929924984767564374395235245206357860334789923730819069068829190352981950789416880291365589947441293310193434081382905492640336212089882856082114157106709761378622963811427568848740867118013958514321292245780485532268415807394885933687719613475217508841811589954672797634128954126925853858320030473378374289709185157158301732296063736627114499164838238576412881896117627923666169273814263720144208077641429132198065957481135515765550204557180638201035766919859020945991432575612022844910047583517090137383129105305269590579246047736452155899300421270118348540217961636089833575502444742373947577287653523977829486109534130214211271420671867382897282445872515710353936459994219823821101678781068929185203928981453263443413935131579147910394162061708547617265691886569897938827488125691002343117489937449922551367179507345851955431299668820942936354747868231934153814432998762409782269771819542378283468031272104560657110823294692250328975857932039321402138595220029020211505786874717902518906019517473258531402708824206750143495384779363747812956266814677591835325049838735705380221171799036675196590999322684020018692494636321323965305469513331562007777480089126394973112859615505345830967082571428568133315599123778472173821763628342741589857633836437576040024774033884233322600693847579664571037275394835922718282742685826583425578391213796309876896882286647025838723974740370283949243614544114728032069343216485052753799312284296068410364165096689972738060069324617528839881885859848171524964242841263868227857261131406482742126408507854898044822900341324310280970596650147984261950640741350663195525354357051815769693368203137636341009414863239698328484108082647554628523633044992678645271908100932471761843293508292579564321000660394903253341570133791865647805840108296522049400406311660351809845645250821645645080408351901821804290905786013545828844224595235365231543111842687764388067644198839432741778387104272074696084736625215558725325213878212959856831771472271579639186343527777874273073498469937731876987514193985167230483541276898290528745774665328460452129695448032221061939016177567911857791236575010522013431280438666830351345224759282665289296984651204443906611832454181074598460425571165031970591909949724861106113789659649914245869067294619988587202249860085207656326456033328372370122378667961887186958863011558513763528169198293921343513450126305502620570694008813810674075631501622590156634653614065862303215628772960762716870372274585996070207404068667041021779624009654733906714959935730305413752827669043397154951391850578601283468285179829007754849500479200685237399217248696837895013923160400276030518988171431171102430015764220948243524347779387954220394170149373859575539842370386107576643058120590891197263680195244946873030529138950186682219414062773427808304841655506798259778071644325292304479126743482003662396872589889950439703034135755959299209020404554141343985084827470619400188591259247355314134232911536164782176027810682971097416068989742507214261133679965267400665905680653706214879832526608885553507113241200134324920571119303265523015694879528375917006816500785205561133987190789195404709117948894085180155794395197632517047580934438687836551765927098917063195672492921220151400907556872870865055335856967616280456334604906395810680186335863210312638980486133291501610230203944663505416315481030873537245125004390082378232833053360243072369746033116962468231012950716592520874001942622578682418363307841125271106285639388165939754859347617186999571409386307779471355730875113920625981258883020590120192822376399802355116308044534280895039130567545738951706507144685978253355553970689915359430730583474066338741113224450512014361386417795778947678800923131242653589658086016945717650951482090734364077405801732302171136660463517475626001903814692163478731451144820682245944216506219856751400293837976863942583087397976266240018790382544515415062616088798713180416520904737110579296149446772839022224712064768389517996981187898229046752943860764404545223035680295998303628595507003924869864614682482951325913691217607344679633064100943191154343625644927156636197555202126018951959195146181163157954746311666523352146881861927483755923793572498317866440122997525060072417599460594929397771850597579310821450943648882903571546213202966842195328174542419898773561915920702682567648888185907521372919171735394798582794799364731977971917610972184704093600698637325048920504915937715896260230829225868553365885640987595840260906137424573878217402402953126185563329521659771114107617547734084520833988779957384937790696588464429226531574727753417725205855913733739955546972642555034554081913294142388279861921164376494657937161756238712148082983787956387075421780331255777893004845393356834951312401188119864527572437576499356994653242063094810893135522995303140961958122178901844745102601174903092801730497471167955828345793749312627121901335057255365549678303116386139373002721576247813074189226126951061867722325704199104777310139791801617506168474528577177154998361090840803030654202263542648322020732997916440592918277166388329259175622371666500700863299954465786074766990530335955276608363835127255881620609866159914443925852522693525302488359020051133888425403589372796368463345530782369921727163956746409189330328118138053580519811305148434880232638079425535587229245484217292596961787788309539852859102199682428320369734225775560065461253449891821320747512520080680308943587586186791084597262493536375640529110040972765694063396724793187804842387236355109478802733187485733233472213313397357293319360014876750050005595177329335714229530724083129068089151387588988939917692852269642008183116509478200583701874937122090805977112863971111149510686192238862061409643308959831460674095543016035288876936644038528758442420016677327720542678692817950579873069331447633636396559107265819929455887276348623982033992014524026452800559698748298908136071329063129651234395117073467653605970329806925294832695643985323888935056225795962281199953636491513826637450145802250034078054578455300031283806360044931034473000552738433905699368916063541282295975474559471033064285228978525168139282410278027514382149437098354085915670052082656785820736170367141239882409333930439909853071890519636651459696024475210258168544412716352727895109748650041099584121328392012496213664427102400388776461478213946989084125338377131787913161543912938262877983591625188528572053988040472331883378248686966139493533294360432698184531082082360552881219053212737949315151161943606470430923229053942957987069343129587936934364472783741998834725881708836422163590374066138185152236615582156132711756732472573326563456283925513869865549724846288777151967542116383679012382703656588244737590643553686388522091243850859407037942993504538207573249246130131833205744008161209674932667366881144729988969913151429424681977470511814484946502211066939592995885166137484092207041045705748661282182479931834348723673471148946602862455998418538391005277363489864586381921227728222493896493491688062831032580549904672448445122747038142805601194939800846520574220251131718417324966258476364066575475706913040026160641023527370867035751125812460018202564401396638171445549213966415461782613678844353703164008148600070009420434991961079385671342190888345508156097968201170722665192083489131356154811859490144967527446258380660850160383356405074077698937042944690796954703926617765271484814349303546672244254465083629660086833615666951750083395346547015810615721590750513106598254304276316800125199077009274837324149964050573927521569455717151765099467129804414533650913003133867441156695070125364276885466337087024362586404928024239564454589871802777656375637729381862233121668713281986029667066349046259667631886456745186435303423106006524080176327803916300099974643565992257093086489243914080491820323730824730063659228047940276092662624225945702910597847685967060907406935704094151583205689986449293876866071947017327975690814671466864449657537503169790171389073914700938020642943883661274671381204779451391366925266515105875747115667741640493089407735782957277352170222528681955979422003446922982005502109040420599720297508880898941515831938444961355450982329613094106066488484894130332274602285243759810974699154800363118649010250871832507644531309903288887770353904649792785453049781645954767157800173471428857524899474396868929249421961946065373147829709003687509171780934566041739982557692325236884324005747209482148661097650436102443448670091949552907312493676557356516650674575786130568662818269500646082503889782804004156618564111980625517155401211080103439978991506803277142302286345574084198237555597712475063307021871203746290236531319911190339352301653770964347593030202507667877578647718725209207145740107321137834227736926584101736383669945531662407476348082006209326878477055630167778040723955733544129341659816977002853686337210939268628163704181313434491351653715134228338019332075432653289119999642932371266627352954085304811244830857074012272448696244163264602754711835872853208589528491318892153112223396809454434768420633582503613229361372321010769805908305933404985609231790062088926151414227118370868449074072092760914268787425024157577160577868217693663807227602442688232742931524977212473950326452637295441189151106190656829967631439688581375905505687151987817393701813722613540010554286830100017432387831830099837675230507227524720715016620352906281466401630410930630817423570494372971425583319217828136751284893370999647723561739651961212992963848303183468143974550956423277326851924126114339844496162111963703232750870680083854170365898268961623047820950989447095956245130246015706978738269983932525689556317364780060474635978315235225625012065282886388875871506502275540141550719985896937978977104498177440369161614498021144242950247718807137567637367229123981674523314074870593380626978630067515945915589355356102786080527475855041248202177045167125152648706700367861516689217779954383842179643780783053902870983764436028094058613006390797109453322784387211021631976817177511646052733890326575573446504836424297870530274009525535071215914362956063099590203663277414511334288363197038102127090567524740032781371076029324694530331833708221826238883845206684357548823616098563646313967777284454489047590261098102370564054917720429391675635537464794403077867679709964989993568942336729695954590502016894793252142518942364994860175470679534029028902166369418528614745409738564362391294284321705714255352775517186937418744136987380911431499936615867309928729083271856059379175468225823539659836862991131109634098187630295256358182564779490513336678369014217019862223036130355416533287448691329419921795320939362562543556207002698653478829880359887725548575778575925796792301135081021576953950412309353996250379724278394176067817906103100924980597020672269081275760413848083801456663378073259523358284209077061050850144867014345010102463113529113826189069348804696293367896584738515627113380845178900621906481905594812004227735286503953669842351888613144136877292436130114505515180796820903421746774880296811604799640706516778987776481814843268520568679039419748698469213533179877230447088926140704517603090881470763904477298014926968235763771620956296040112567218695033022993126459344198018957674548679079712602145055570686554128448014295870773917467769273292254001908518338226037813138010103550210013498038166618221914283148442993764723433451061495510525509173108824720081597728844332008932221900409965168140380318175135403695016986561006076570943800858848162202232244839831847489600543119968379694744201359586904637359901789931432871980465161180777812580368584137721576715503852981503241592162669330002161762386662506700305400350706027162872628401459512388383403853543818368959225095040795728864123696859381189368707129450131085737944034366375179944750058629460624327701112638439853264198615269754396486927671158741591098909452812411516392117814990630381528085491952859141508932089547522263375740108482079289285617842150922269238542570520209508309233515423885294170002939382746047321839460614359753434514731063680181858826581175601290946786277253095252574595607948083197758484430741671028200401657331267007425147550346720851197591961913871216722694865569645855228140965062109400757196582556326965682197402114433651311560015320013445206387960253214568538037422708692383484129470547585720888616155584766008328694322326835947866925129366595900518505534034752713719536439329234102281901269386034830265868742673765429674610597646084135814862875399890390201252653570980097258058909287908582954677039410279570181622905438024376499313437771422885008232542059935191254222669888658177789363432977879302864351556620782392724913540127068435659429822412742500700497082785310968600007492423369468310221796275814522474796761963301420616883686144515499690775029106003474558737572032183250818380682232870506095460080753191580261184721652347442089995048942399357717746741250302914579807760308289570542182255371699984560630653698469981748854725667019814669846150425437887065796823838852501038555570830451886714865645001940177471530638215179900542109282555927068816662724886033825651076994709303326057033760572861299278260670708209470586318745767128759368566227535948191293191378484281325300849932618742030202162479484001686486176059691147794950355030023512974999532426038828988381490157775769788629327775225498537409113747976172162761048408318787730972709666654363343952046340957634508802752406275773998139764369220387569847128420754799832946766950128224444456731384376829611136954598734885723201343700173893721984654354320177498107544391038713275000622611960942393130279539567306596607235966808716921182450954288211794744299780179811741276446681354913047267373912080880440767581406127254506913092300894068398063811332274807351971218669242144945522482591987584471657157996927448402449835564114965838742871299192793729161078268249314386031140340181195033781269263415232971524867785174058446252844179024742811896866450047490879572460390710471123901173442548715571268888052471228467784235539351233828589691336478675963647596121123640127134711673988654716266401404025731721747609391125005643366880159769442607238243300589303206249024602603818575582644073361344343453613913603835782865136618671370599080854207616823649694224784535050787496850553493442431602201346243866103245754388650165530119799147541311531468086625180421461350583686277728287744405195184461211355406714680431475340181977750916602829549290297768702669719426794313869769679981234024725882024148305035255047452722826081650574412809449511963824827896468361252684434957568691674161676196314104083558552916783023105089764238097430246167849899870267963517935464786082492272333665522292440347715438503543979225353261906770792524373527251571170719417628101061068168994156272017953874410282852640702997953141005753013427816656412033230642131323925049925869970853235009674629475896118270144820055818094298509016156290560438362083640228202529336295174905698183396308338051846472783609912903266007372975242962446940223106651696405650021790960434715134102262404592634711535493640740443062463901236825630337186684931620408736478200681206762679347382687834372984120694685469958207749869382338418324044864189085424049790331180472498347560529005147000284235648908278397295924270079756909192426023842581489871029934188491221380443625986691749570113867547087510789479045392525435512990267060354657441233463714443152190073434782145083032023733006978031629418529204039705747010934677634089226028812355970476668602881273522670788746244396362075207903544430423038493730584757472400253306037082970609730997816638946011790158121442380470879030573385669687079575229835014285962298062200118055587842885621921864298562561143232128241826944648724758231722112995682666615066495509546340435267635731583369054336094092329678541404743301063975031863205570518176184369771748918720014304027315473007611471274529817941972413453519616733632351669304128245942719194634017957031366491987456390929685472989533785648938508494061444560678377483111805713786291910146560917366735863612482450441084187602287195626534217138937560474074114036023487690882515734667344935410211354919880326851683245518746428098232871785492155189064076980467372728930095953571214813784206079921894544113909656988678221245293140593938430475680682418922526136296906403680738736294579604985092033435797825192621138572931484969194914250610371223742657820177698012679573830756180835217226384872726030268002180061382253962282188313735064039574207383253715461314451044284654600615165418503204930842362745971632202406253746732822613071030661128848836682291542351375084233027075222942018287248115132065320770968837703420402519737593440093986869539405966156800165011959903257628572990726289102604238791819536134066142848247991927652472672677426157777429675867176638731767175182417051558216038118782999711023975816734385725799968239052032796430839667236363107416983781689278331483070707086103841730498548334066782977042251393389957340816177251190234164147005148485056311333150123371020587166455559916082357407831735651185483445783074245208257071481624966607986467700354403152423067003377728159575386864804869130849671134554934340668207717211429252746634002037907456058155569115394210373861499235679250124233678621667879308091009962790011558142141172664511206780674755111470568045088753731121403913669579088766209853932321295197531490988479454208707526235971425202821900573966509991313579775761671877336574377708299282240229728270490692030099583555441595018546015986340256290804781707704697784324141943026240030480215486310664263571256426922264214911100775805417132760105716882662152664399487898937299190091101399603390651649070461950669141346519151451083338475733443402856440086620250805952681917392685842971946996690602385954918204078544669030576119558721951326577194663684729350317112937928620904297475957027851950203458014409240181842057114965762309022779219033302218350906749479593934395807170537314761802980803933012091946798381934612181311762624118553269636836762928566274023984924675017718949746021224887646298075675849614356888609008057838549762022553861448250653493850067137297066820382291800290402695317563745807310499416354113863180003055527339629533990979372312899381821574211085361971987348347873008677686215735583595878803666474299443749132397758997241508434896525413913655869986337450300672494441516204507327596202130536928971798121526898904180375573492894057198806688079314957629147821399718606187851671261327819547028300553184508277032599716213129527167161428600805297563769177429014516211058252935561179670577049436081418640554520794756062751462758770802739029935035542925944438812788019460549257302415132458087516683423632330798329917396184853423435278249323624018284953332750581192053994303146343601911615941697743698721857427793602634647046645535617229381681011801596476965582229719300086537988250475712616256449714392998076387490650818502362146576082672597998055794835292102923480721683624880411669192163958693016287872738296229185397282933483694533220434921981598913009781754076371960547847195494528520098912224152686615007045138327797721123162308542179478672556417877346253671105799493322705918760340956968970418721625459179327864155159022132263329441031105862044784544187164580634101349333996089129971125186691749696610260304669963425244965771349523525779855357386779283623468725684636612053727863101936797228948916087060574760098284789080452958824320754131929782921062666276543379478664353377369506601373062232924474897783065316734900993169094930907160463526803943634756373524330454249333301731610885204668842190866076094855029542362578750250850930560012811479631822592615597939250514244832420637982041905611433217904130692712899565599477437306105586643717239106598343164339350710065194821940339503124035259190065040859104378604999687612395444055652523638539050126827366425952264668908799867338809720436100149521954707068851570185332728892904558726159498634420196550222932029327648402239392643943735580696684860681936206620307939270726281859047821255234667742374791285166378490387110325846410704402999882632717459944192795247958943002891665548466914010597597139791568938630619562405350446949296449100049644053343947560121275840982679185234954479200750608835713697828794178009498278990564806285678840276278278324329625207552140551969414083759613504693355687996048376002047179532532373727395777043681436664313907987343706679381766027268854930898248226341669220832036323243155537213152111401185323239002294108441054000132001905064424707968208790565408056905578450263456908810378105519723853265336401716655376995592678255303119332338496990281723309017241463501643385137814675684840150476548376774132169298233760133367521606671704336978980725965693925094652366871829033988054891203517634950132495276884995591388297634256879677370196357787452391189603394993356315247194540106279899423196210829037202909862501554016300438983696721193416916845448686963432578858907436397925570081123689271046939848146672971048803689499682590287866750687753966152428539715129367342273274531161879719320974393945268338042212605504612955013406193887530315223813942910613383126085792450428475204845069201322497176385285806404305006646348906758844539434898893696004995340445724808590357615528538015389036545030825241141545770549487253588688976218691869582389879559054447986628675557805403543354083713382511032206788969352289534939178000922266704292985203522984584803140141229307627855553564232888085394529840255378380801748160829783316011939596386059222791433759948121543019389008075904855569496069924776453973418801431612430382989014876308388467763175121943944936441048969790656239634038957813344378158969482132968783352489039376557650690588422971010119006471321497278238954212063594383892219958700141420819593630599256060663793355628463151417977817133489136425677689516568423858552401078976448156800060658980933637559352852000337162225142337093222754556126930133535972957963547809838220573179205886192082475459918639084104422061665061140706642255048455057288183344168705511392126810713614802264930945497514464293885914325413251035289777427756850715816158626867758700620500606433371523138016297920765626052986269164673000646127482537241966522306956831781261073509449200866946722543865371172146197357609340481431027518578869429417136524211615552424266374546440771013741157134546368772256249173543100009718598653564183142743793211606083902396642846005058867870875844738572125900287897446183321241660307416171877139471945682355198950165360004847344420912051173830728680930373872652979340996108179626198041655208152919439943293862978560237619503531756737109539095591488149716680497874291575192858441217309477244020445578056527401432147343583051606157203645297178694506939729298350831461517685061024327082798303229642075307599823450520608282816571243341799982462232785558591105920423344448006969488820952996471155505722789754257393677260544595636790746784912427705491668630199262077160301589088381547513428920592552905332240427244397796768603269976767540739648754634561005214407688188538249456290765528048775105581934486095620311245438917458659749161720678270593742611646496596410237928002798967108505214880273520052326198152395519272490110012793087598182895144545191062968383899862808759752452416073859561594845084906249905400705593205981257491781515308140296475973838299155539258872846782403763439825473677321621367059212831238830582945767360940226139820363639357272150627621696201855788040774187459079446375332235765291003752666515644350255405812913301830613220598691058269069720273337320278751689797112599301809915820395813441291029102636322952297898235879541723377145322823606784180865809885312440704322700882529632015695375300567004750271234870883869377796982463280078112783478860415935936999743006012155384850969180464600151185886752557724965297918407582888961592995495805729906715420558342542855404511829877414611807795288429704803282164438647656200448028750329782002167445152892854982391586960006081106303251896259153559175600506418522089668499909744919650212652246179749247681287060656909301036074857602544423312688595065928689705096710230060327260310044689140064048148200328294824904442066310408651208772508052552703982327547852399601141060582136888153930608155241670421989753565454950316960511465427184268656696827947064917510638780088873210366480247910634446341381241753553492122675175873350198037417203406946446137948753180382732906486847347741407926919245999121921722608122749596944606440475873407998742466440258272263192256668142730831984828386949676447612328654195507705058800481198171259984517004702845317949703660320429136319202365777113785269293988109517870826184901132640673807588128034790240477116807737874840579330771813504335159937753923919273772635147098599776625061834928465291533783294961747988015741332989757052537618996432275321175572071408326130001407668108934001252065383928847812690468011843257992332341585582139757186448396455460378156659651112528779134955637299305865447313924242926455461304531477102106445157224606545284081834183429386903705036044181095582589332979264831622683293903409596619974898241407522368173618500455877747672634545992427613120489620815487240177210480918646130763835230778625073757148539663211241987016455514599668217707480797992918489666607416812217209430598904920430659795608218752337684089706701315892407030965546594288763839294149634781502411277267900355272765256031676441666451761939464672105787049924015840574085301990400079676691455954017711288042823252062511894255430621207206952461058019148132961379821171554476870706987713987881450035909625404282162717037726468796759055797669008091188742512588348160799004395879440699953645536473458873952884118508974213709664784472657439634396611984539419385443130807556515784403944339451097732722945174402886934761313534566246894358870044092951976456698445468166643090575796569800685198766934880263487665660379743440551178206423273708931207526585491288039413201098762828084576823162011421089999332059660785010314242091402582511335056285158944590114611322396253648335559452733611082443078743119560018278466256824475693712361102808308704857847315557471456902086236100453329276221689648216832873481903179171349096958549645698969310306185465107942988597814219419859882139556311342677367019317834678941883270513543232555852428197784948201745553458918985602608456841611454259965294886320604697411260293901669827736771843044056061341457936777255357031268747683498615224173018583246697010316541619214374373397183710131702507677428181889618202318290174788785715395837065952838001374888760227070877110772473020469856760618463251234150198842350382199990173180885040405481887012353626529642417761393268871905511044188045375531338132694004842771930728585933716230842978027875948848507239550961608339108093069613362748635562662172577494010898614644393786562184129278728281215844838796715349572590160214007304474581143177717294883621529011108961323425744280177510148839512857189585781615494592787692729386180245053986653423227997136418752523915640870964435484433356905536225211048823197624533417213057914822620184079897326763202255262290805053380545637389411841207570495377654859060197216480361928896900041261353769876009086673541698738976607752712097233210718806258829511066178655455773937392249692904746407069448380410559032524286828821222777899432721598866042041987027483353187825787608172715981117174789239071078468937318076471636231100277120566357590369631845613844174883452906974638462003821677402764108210317117879657713268441822021363530977555744018507294289116701073402915241791355498985768090650827971703876503432651715575033809827675117444483988775559704709314494646455782125593999636031767501991316968992244202395352273954658307940314525843619200599578862067646281911901049704621228214173449983072107278962452771933838969510702443099071877234257310530554097560979966946763405526722773435281288797031156208567983738791788693425286579354794047478547942218402229826015802565912391574256524208944762357713185136941089950074215807655583266234065513296659850456708314438009637480877234848032670301948404247901391363067532580043160703554200646526989509294860655260797571438714874279424302516431222086272582710096242958007869798165376536458096447942305193635820795227977076139141449851445584490423051596276995000162469444954576785717579167121513140267982925040756029952747011304241272661237643225754135389372580069134362635235172205794488983346704347674531591281623139084624407853612474510799477474967023429459307804856289169405668422978816895043003108231640485006532256332727223320631631881486510945649319339224939794848057689789785838592592375502574228182287375121733699090714630400999630968163867615479002451176249716712934484132205135633964068391579087051754896853326108168265043867556491117768788591206755882996393446515845663075418046556531413451695695369063704523380885201266547693282815402741428650684449933536576533022196881301437031575228182784729079201071073116664957800776503872752395277206145154722118024235990453217727558482525872040017200017309884436088147185024383104214567493028315004212960568930572537977063836802367688489671707190050713723083742069030662241175630995752003893472490551618590492905420040828020744377932075602637173847041240989407690499222830410314405858643449520257863982202311316245281930051223868930860531830346089985085089168249471734523919862035959610293077380430834668277233674770996649512667555092670120747401057771191031595514713891815997067588371141283856439246847793289684237266599641333971118410837671485571101332997823578336663842682284755813227463230142485686339346564575087284845616616934716775224323659882991697873424196029877694975278119353706688192679170846491367533437745992935640697483797535522385033904718470339614828943468921802257380889016911411536110167626764579840074333587893641387450724630345900482209296006708761026971042826644299975114515567171698665001325457197848106333692525261319581096898364419277362605729603296373215595600754862825094895995449488724477059853510233847686468840415863269266306648523801060081075274197761084809949770684191336782717499336123369142331296991979618521463924508852206532716822738723964400297207599207735714274744755816562119538916367922804938256939646576500846862524971686143024431573892650334722547502639588767291796752150070054316596766210310121092951444110907212249144889985172292103603324425321634894843921666776648259709962447708608837025784592642928123520004197303955069145498300624476493606272548108774564284498055401030071836975461049405963295884799090758026561652163133930291018251682568685302679592977327083278107985417466695756106341609448330171739979220534040906116158217796929013426758427343732252237901417233009866494406571264681520423269972005396635985743161451092722130556508753672112701403820899498630854200215770495575864649295535173199402732919069300562434076129950843369785669866160221380753128590202600930110631546509601192914148853718467932214397847128364034420715840565655336743751067525905000265628898529541790437507725542295421418805057919691980920384371793600036245468378470883077942015142956253578928376150571484939372552046602819547100181374645590211377359195473907109592651516036994703126062454475962949059776825098562682624879697952943490800736147158001891726371459041000268835532460345739937503439297629230794490545066848223838174742837865989941049967892987551168187056311333078727811544088381959822909409318000337269515183870152918423848036484011602067206816007061571426989768109547933597083078842670519137055759669603321782285900251572440240508923971409861034042715782140221392114555423165458716411170937434795725340785513423110757903419353348874146937186131584093086522935714052596364280373198696779260601892911517607208597406425845210825933331589638947911859398601478218589723515522577730178606126268543637991364703533988044315443611611153676962142814893158849310915672246557079433272698033829582779483913675910878226919110670318179378352043070264217956642868672260451552905157322693007425757172189713162732020533534994013563211844718481967474670512749678434859039332096012832148290514964042809462664063990029632328079859364385288905230184161744002089358395237065168849895122339126440488851171270182522090746361382429865674761409416115492484235027898407834026194845367353575216089798860143509937609660970447264246677155381820927554656399826900036625321880535032684797924960519960282283923555828969702930590397563955218131056773569602689842651004240618018715335974871888885814071392073884850679794480216068004310326108818700483999722087920884096375332306607208597444800609617595249641368270728893013063630824342292819854501618977809146700106631965478217591637617707379547998000630414484479439435025428024283128760447381932930014517898395761989835048623404608072386006667823872240784372624758302905441803639806002163890854057792955501341962339480964673536513608849201435385114902031629600335368486889182451530207401721692469955830104898508438867775394763794364240140454968734305568348003873464043510122680646149317229167221698307730834950955023516739243909287593169363601508140287119309791754993645092569010711426713744616712046031315764122855180264685193474958148796011679653868431761520914142734212296217479389851244006530619504772414156674112637742525264085775794501584176470727185830695551737301918719938242519731128526803035689397163658948623901770429281594537430125809950252305426106756775682724785363484682302380102284756827257397607511634078688557738799208321602291650415705578523115953100641133778746249269699230823010756326277663690400473529681782626457238535886806615716347700544038203077076824567929558474437416970506287578715135359039705188367940218843761099999928973546628551891313423147459838123714461923428789281900117837630293368507213820473021044888982518920877143545939637610079455802424631026304183989393984241068135403458011391779377109116939776163549390202675256773733411628737801379987636517507849893645457717161151886886679910175449894268144837289755225833603732883695405354767352526273444456654189016535756158311392182500122372778394113591149127719116917161891135876321886576798160112207270470389036233664614891702404395896131564340979476489130886944588848033040499068026359914691153740795572023093661959637766583918411048641743676123587476155942306360216559398384387833591868370345761334321836043601622976680760468780846190738596457359751429980021486181759708857660812981692755721814519199639621651369540225870171006290053820918778898015222011841848123770192412895837751896870041939657204796115728010140855342211414507499743888808587420655897841791510171589584436784246103613839817246670739900131963860594821785433211193694131977060467571943489308062774804665704710986229363494592177297848430893563667230276075662906443641349091025998294827420284763167844131551763740586649296072328880273766840049835727023125975622502959224361734034085026421739438592079598143193711118599624995086366616520402550647756693083850797632078056534477948334529727036888393000011756893976487980148259308964005491504874831891529344033598343124972414599404656508788238199470027777869588416052071398000510250152277714911579736024889033789191770712431754201297313127972107983479657705484288111387681642730901460277139477702708722022584434905136605395888400125873121949118383127957798426957675058625243383907023348700305075017395005993173766336765482742024165656671186155692422039777965834432175791933074362777478427046639724542918606030172662829713533917442766207726395751844337994834686183593378789041062391678469807057235944293603506350273207108237192352487012671240897374039314546982698471107696917640533801348576496564572720382838642974174333682144974480838530923348703417535434992341260938440071333591098599284505140825669710362117903948536663141486790973506854598995998326056153480120090820843803808901420092004115160002339913179881722513442972999201662651602824538999476632452890405893347952870510256206145763230255990924794692368118104398821326764986622469525466963548575404611195624657052898528041567930741559157603075133965429729691067179468045436431946089204160826434551394761249298932326441502339897391940984983419358184418623316493016546313067956236354178754608703725613341319026749691933154854402673625979247843962519677406753877488440302549625478065519145990295580032887994690302881562787825970735681360941174712375590977333279274130960702204166046775217487542440163839193339490039432604979309461911814367005240476715971671583731589588551561499398818300204906651226491295219190789613862792394827246220013946018546506516101730664287659651760263712615325331369038217399672028518936292302280859315189948380837804402362287425319903641672626870365506283323865510580118469264968619512112919042093434636553855251032448640249050048000973921369344131527797879247842385531008171880849809476811892776820893068826446929626347981466541149286188590872569538788672106445463708342555731637467376622835412982924919295338662364346263958110453839087738484183532195237253486908054657629960654664021813116728204348075522582502585290553759959506746306777358829485670865094037343097836326291128124309793517562202546137127121219741666942958979217076007545504227277366828007654044868281881610432713121263869691764019385539113828842741345077211417492295336840721196286074791707438086612812895300190588914938346502981651655804388380235208133920773699244483793117987902845424706231950277214174645855305412973035474924463688505507413794281531565031320053649402745623138659423345561603667784705631772669256338464993128192828444311797209923974316253113747900087158258969724013094913543792826938082627507014955765286145127094643272696199918374873915205520929444507360548892027448624990501315093771164164032795967560453238424617650281342867193659971562753204790493525001755639122930459764412702520734740157979419484592586145834253030931554391781412759460667617811476275705008058624511092189246968799505333668560690774704830042551270201916448261694912617995750253444344493294486536815665949294256851798700304720811987376880614588138074895892853836070826715812820953196125035891688628227331890083900511118151423168453939424619327454811521442776480994037713800957145876388258000412405153368088855864690044065948360412217114537746459673884839743634250831688488647205493054426467853674827839256157004134436701652538668151119002342338291830589606305994541683453621208878558760524097095053689968332764559280023447734656204569248374792530431817088936222351026884966354822548869688030878611778483435267224481429185936207545485925419557999669542342846859984274972518385081452807540003499067412749522665135175568437576220314446230653834039423335726008361761468598747901183864804783602079187417588025504705002518196315578861717605796189474194152136859707955702775806914826064164738197576414238484805098120608344655575889458555110146304977177261739852550272796822244501567544587715306323898849625718343367789897135902873358962274339487463622558951930657063232873635628378704434493987378715595352391131192375424263171681856078939481736554268474623331167491874643749327190291896738337384318483765032225687392974145772809700340047186841314570652365332866339168160267652827077860936929588020375413592115943033195763623291634140484925259918518682659033737846457174236502070469003612825060977962728111270689796215365583020563508641021112366045761738968235583627037502621606538679878572726289227340878428505867171463600621893054476464082488884774375067908427436176153131756378095126612292578563220293794544001700859132614612019205264286972881708052715338169312469984668429688870338549682624326557619714612076403479978910126051614936216043299661312773685133952205504716716769321301521380145928527072626235829589598168379831745749294051926677895144123892496243110663708360196318160804337825109855195183090783314577050442569776611538368784858420321398432717882167529150803029665342354519021440310416045934888872116997771938131486485016122545335488696814312413876815386135919638399521795534224414466009924733127332651371841897619835151164129502091053800045080880935131908436329510252738433457399060805378886197538907542494745924988837059119080985875769369592599938864290278347047898492812860640183305331853867733463223506699979722517863911626101275309014012496918765757136280340992195980733027739119730826218220954568374410910399876822570610363839352305586527689955576077279862587330727457409383904748394851615155030844722274513943831644568131375933473915412358196964767343562150141379181988804740339199688349995088616913319242613624909522953012390389128908562014929267304682965288651019986799164863495702940165879678406263615624769916391591708633595494862871083762622834140518615775840185794442797514572334050709610853373954521647175324080835780207041431366451170477448134056374392735335177815382311681730968993448208026971017320123807884945950370766671186528104026168588519911169547585010861552769380378020187742878990423219909457191076013882451071901428157671946483319784741869235379009405059065071840570318272945017778267552588842902296284195417486187681783502489740244577819391354972766278003939558046656877430609974525489157550748103452569273588156883724699952776112382831896591014673704838771890810625619305997494424975506575955384412736687425871260697012791740705209763905031144999773997486160005975997444742211564072317652334817462977304097691693608510090790310429579441784843738709267595204384007611146086972844773689466019842663031257099325482648429806847552353565257909807694789655655109251255728061880403267738553336412389817066291081288064455090830929168784929094573603204968570088671145305898835710302221928448854294451478686414221127341498451097243291278318030534208756049729462579495797533713466659865500777447392355428046571319042447171099088564805863444368909532706221204254945962604475724444145859619239287859181583794102744140454876953167331857299910687944047744411311742723357393688135909355887168799892385178541285658321128850758261547472221507135461767040741680706741521387455212669554406835729958693736612610473415250322779286052476567716589801395935288673948748386561952516512897918793348998291619207252807110269247890349508547489416773156248059938607929995244242491372667307774740791044791915319802104258397341159661822463943844007138941995359099674510673331285697746449212437246924901426340363103402555442537468748063325129354234807754251764108291967168192124624835075436096334184829557870175567758336551356879093402332403490382086928123815079389988026490095093399107112171314239126650762422642455885714072641002434102442988370915394160549965062627014590694261837836912366623442134979352464375376888748335957510928954429504787752806360469290653894923027431382146814811891655498431238608308251424119885328298283865564056687219830424585431705229264538428025568519322887615148449532721870043631061660993779087892103482950705747810255162259752118277164357170356293270750585672447710081981640457511007068833586047741594394107635908648044398199273354503726599980422925637936888701968149525414986474923128028303951595867484418835140171638226819922817701090021201546439334027630645943863267441210223484582690922908794669201871876272745051181041455788345436020809876737611436589564324289685523637831020954501444525961398107013788257605501853653804992257537259757089090293570597883037323831714643957022044534744215495116427577690940160170574521574049895609600135211418431075072078435626442715129827924080258645469240803143780841913298687474973474725390360889769215976564732045474368131514464403526000029570272444237822422958321505212507658769583360928660200592196494993114170099040272785908074941497840344660925647273100010091683832381814734630767793143478222919095005835532067860932001880922497681681339231853421986501285586467544866935677631690026955871662553095555094840140518260309736639712487176183212757421822327664544594302142731524864884665713902034326016993139563090878346558972324491463283782873025450746355350904728349805426449564151927976100498992100551451692740154827990104943754406362262435248955579923602867220507488216150532206256787947173643288442331686110773658302646062217429797684857616003057820251094598410451960603189128300263489089307092459702156634747550598779521666795849932514459933062173724209348120531523883214510817812684963455969793291487082476670996886145916454855248077699974949125680835791413085804827609782878283930226788869773207213058556004625237358083024004053299807484806661767170852042285945345083081026377414735600790425522548247284530548283335017631872864911343373393847513643875907848731372757012055711129685221744490495934344018373204607957754573474431506060733644354617261008053132538010650729094684241589333175403705938419186227117840280132549880502133301893044370100696018843791596731778668068888223294275614633554992536012293290807371757862617630713408136423480027092160205991622824514890588164811267440687658391533468969083066323367640734364626866943288650984347417359956259141324568060485784407672828125256530726209853460938873899296233688883827315925421399368825362134704370677663599915241697243011022438159990896133696647668465267371988761335569280189781184120945170970983217825773674413982753543494150766722509920460580267254920131441816245704664270307501467221205761788873026925220698477236433933209513217575517533292007304865158199067173588041461420893557241138324013466350212463560270084488443878879020311540608335368532663151599250354454027203615568160040536527833788100555551993648384493662674660988377327235299913114492528967949160556284329155476199151145902871125313101172442940461326742257113250136527488679606350758659617563435845953125664460281597525837839642586763427256375258218015583685095316294323268540592451667580810315822288138619644545178545355967258441279733133944240880255634288512233135917002118508855371211607387632743557218523003301998560174110360041894802170236549149327596852795112596060370368721341036893870119936434503546130681223545997319005512021028449247161570408310430085513924080894772943776538359026893190460871081382781393185072551527824467121636518819868022997752757867542517117068264195725391454779542171903699711502509523489559829192169356800432580479075167899361416000305923067507902794386927171166473760633116382467677794741053893730991451702276949457348882361535267846816056962016790276566915392999154474715136228819984244141248140190796817523701211541402493984489728816410420223545106152163389750024448693031582456923378022230539848995315892233521994800070839255211553959343286210862546728587035221926694553990884247428136411881308188163533013210174631534723075724454437785123348114642347957848191159278493222043095766818211281062993051764264806855567257812611817158528682393642796810124386803168659979603444851858372882911995228958594352086606754107453859445159151980912889492815612295833561065103463804864235593184527451843101613234930027460481803202244090047305855315909038490647622441461955497322010447643042709010332397861739882916663257888901721694247457804490868287930383812323295101483169666405783812622599895242397551365551234242838022088338974023489613094527103440532051320458711140693285519505641620613262810001263758881956596412477838651171802740398129144847911205062978327491407213182027851856090126518070458395347109175165025029459101491527047746349678270635712529945339123266314435733159224187329069827936737953366362568161590288519107179520064326910669091963129904392848919795159400851948680397417752507866959987638772177689499002774338139757188849941717030562825756717968036989605398754845885188512143215831594122662989339273805130618759780074389532984696287124561643207008179266447414419824516230818755784455350969907394452917000745783408230659148582464727477593299559220616481893335682688710715203740918661361956063655231064497722001104964403826727301697780425561977428596947857516239750240211747559815612756224514960664058613187213315816703626400183059594204120467635337952292525654590477396697405698695726934991015598451592900233275068343495602892418790561395977538925817310151839860066534135131504676174978198135189981693158391750107101119579499530048547421769149867381467866339610244459635714557402808153879877843861911997888637783028699044780181176251013824046667604722478681966033923016549878869908428680850172225866091027849848012169454261769392781915843120385153498465455702176735455355476212526180480997713432295408330963493456835950675739819876092105733665671461139211528962810114528253616326005578764425834027663296792634752556451239772181195959564598693124683241630301804555024499469839599654298438436166618263932274276946517895362398187932158714568362431955664759508090334153993505535838315596047699572778856634578386958447105337471096464573227319284012419057828991823260770204168316888114939941377676527418193158690826056147974287705216446908551144800823907337223442818265069970534127764771754015052749600687587647032862556903807787443992358650680365587278028353832953498885203426898978110709197703639921353261446946682464456755032478677621182465981004461875413733739496469134963437831913122791045651549632886835624857808046179971230638568105109015045876686631314586498181119132476438083064295481706606824207393855543855438310221316691874298495535171202774517919845489809611912743698284409876269750382303814656282553034752309868090227173003537420157063716430165305804623012352883231948896484573626127467733347689314003984017667664598402333895240516906565945084381309485935232512150389263510848665944212106783972783289737832387835553457109284679843622056348270360915177176463045225032850395326647506751607813389192078198058062712185349296393072661211885817951433484109182041973852053612924500871355825617802007858958421793230434816577136430111102946874657165139292029856158672965183491476026135589627305883963939191735929998901496856647617185089088602547986669832207295379478945153745460540194499158543340505569315689254988115162923080653788153872553660428398127934567284125756383763092059960574783292316972907989110383398274607862376783067424932192190178080137604102871259312311433312241379250844947435949840611114046953906383546747980002339316942618784624558113953811992767295843694035725353586802336333831111235334513499362870592109843868470636217923364096399482483414208448521744577098045712064162112800912098876004711550136681034681510143344693596528718966474895848757263230397251659442044547046969390943922667709310835588554048859706766894053666234443733963665779411356676744917364200337114670013271920434463787827197031286909788384275414300388558830101735745290094513152769056472934298727599120834815273975711569257058794642516467338643844808698176382455697247213704073777841612613926989880685021068909176969267519678764365347681374959579452111361777771631677886409240440182876524789866121421348415860846309784704814437969707666218083336144217439415223875227027114205487125526005578963262693643525453908498240936944630789307114222483735360880859634103530553521217205089256060282674387044218183843971359685442311198920812945028995705508624915491833838531002655473535869639236490057643978088109635738840383807200469163199010695878582988784013908264560394762509440379887282234068306717248767101401058444662294978513489895630892523607624641377312832010812433486524164907594665995320239800306813313997435692748973663045290524793866878174525072278423441501200577372910052853907047109853353992911753001997182932886611993235270421124150462554483393251608016801565535756103380333123749899062006883020670230872041118392608820326183827237831679633715915208886413659268226448900029326268915850441970657361986752557228445857901150224755851383476685392067512570838553731059787905275118286093235282660777823343357503072620758766393636273174469768492499106275960101928432878114939414671790745512624653657280053834932723770099613863619334198448215331972605697261072063119170843304321738843218609519039716116340721947293099634216124543713481559477035411608316041494035007487922905848415450813061821041298607608012134013337683153813173835505951791711228943961563092753256678649710876598094733102049420621508646095538079390260973419417366869141786964389677312817986963768611737925577223506791673943217152692507532899552669152277063784228407298118010624472578526601241874628396032186487340924480835141839154881552107194005029930309194067616315561424387376474266828913449146310454349624651745650630123969792191328648525229967651754848784058094611436073095343548910515075668043934985226964209499769436378134258695377483965755609642016471108322670664884540589948697942450282183098711359356972164615233983934302241938538644848822572962145074269387836467850151683403884337363505782580194676329156526709118914365708482070217211565597666690617544525430693933879575178523473160042567751264506187499522731274174429591814973702378394497850233906793389442669817522133801251321124871122563517355273176388579756420895997864915416439533228429948063775160784630023892836210526625963554761623504247146522189503492909145150568631547156275447848929082983393338928989860106449115571008668110019642639044986767541553295255471448501042292289621118416140380662602532039890254134259431330065334043026426343458320059215777250452850170122008660712017642890482935428537107982604050537348170359454507124126433991305681260753501246124822112461798197011470099494494380440540676477708496048265539753682047557433359660691728407830328015080514282537561973390493077396409345959153859157076730121153289788948604904014252563471329763043416052491405821723867458098395241538291247081887406087171579044511961071734526614136354759976674766109958903832994966936260463088207300645409895114585240283281358566051807573592701536620237071006266630550614000304138212489720809909422048390363398774142558112545399849220372199184854798575337116947847489175736421020073363994535190663288414739728689336864601282430402764850274056910283649473083156378874995540251215845765912122753114026295447258656197344010200326155174647234497909380448806213695476408001774577010771967201700536737704820663180514555756445518888474685599170335815312275462410680224223611250167153983563044167435791913164183627353497653284289099966655142644943895137084195323243084753134401291598177327191612674709019957297758113668611103091741510117837470234495065839500790753510636956214075439397841214746872561135900777379734074424472094227140857743961312936241270988812203808344537033891788839886449744164165745710903895328396010396724820978603234945163434579660448693402067163921067565805943124457259805208674176143434696001787977014203854585715142271307831820016814258478253988819907752331982562983380512851079968346956055499780074505727364542114475061196071262502462218399713144015082415935757296038734613060984169789941387066178936786296302091357740718071232824423754480049954822880034975854926800331385062868342550748415426068801800382290408820218096325009626490883031456676529554966764986098231965832082724209969933843569153911433853955536211402513511796432360251908470110035815955873247365720574263678361431711527474696319086409032462674119755896428706591322935926353539963036257364127333716365965181272980105748330787797778311934407441479191347153972425516259767711877258820110526421289284630157795092932045283056636587844740246601037888792095535819925348964575629302898200117478890960597225009673517423477330197662760350495880256757048117312741241884020426116068677794343095421548464188721417178146142113597523876834057858037335110255359496177404122669979165261209841595045970986168254649700367919663994248676155899071649386031402602445631340312714201549518408863519971611571120975279912012613618228115513273117826807377807720776273206123336447522933527392581629092451106742705912003586356545048485503982892980094911048959369460860890054070188263955324649455400867538577990252502054263354671089699056053082206635855150548573263495394465732031110572832811812015085065887023365264073232827981812914103716343993619476751507835860842531827205259649277315446142631764054134871996588271837842896315622614135820246793412763421550169052779884324964843920362109979105144790311522705953888432639551475679103255404418722175570729063646953115395003444899427502316164974350148056191144635392887092787540031684303906335048346399577034610935555685804139624278906230438674479257243453136259816863481274302782582349177660950579055642651359873822485471159683875303987261067789641217869982393079170043788955991388710139647349425782896985964986056597712613448740264915899743415862613507490246506565694579826139393541087874001701857695948739978377276665972648596126926126929492875494047593905799792389870312611667640533652578611800120987786840311515860460169003698363962852379657436843163885223285540666933192036658909821371295374483979787187735972326898941831070743481897821802401491014907734320940130231481130627036986607004122202758462033954784946406427406918994609037562938235481237793475077484624375439118898570564538780385725538598287911760631437693978669651123316527561314522615135445589032700010671700058318790296519027177647775590474357546266434283741069992351462155863804941089217464666420153279707527939302716441663285486316200518674762887153009623262251324521565886098398568308649490280356701706036098270072672915718167617863303140308976977116924623639345671699412152986367222879078392754482537521311221816836116540009261705243247060936871516157678792283160326719706276286510540950706282534806160857216372505395638149395136491185747317411040367153003021433667756550444466886745678021981026116577997919127161311184307357174881303622281582479234208933856430259435163039567867434553659759335191842473229883558628808025792146495955767594341278175003758483615488040310156304677979484241369596545142234879661648250513398772197634277669790803788030584945692751767282008286191283785399961524173372276060197105898751511246706598656396091241158014922765412064275679829244740039733530641740970031110576655852963871715075781638745691677367150791221391993681367067223750043244874261962064972723920686537982384767892822551518239774437022106367921613755748219008330138928727053674190649450388692186518226646429668820086937701777705524589305742270118569009394952260280501317451055078009284799450079666935471163365895532634847665278161712526092218991060728267724244072530687296995159498996329532176465993668182467849049484553854348388343461162316225606629975403505321110670746358554506320577658738872827390540807374981513171525923538886981501428152029109603955803910456961179029250161965851068245913743095702873022096031840920433262672717225016762848754325533750552631947129939737917185216987384314865868916294897526785274775848058512843535766486232501513650591847898827335182561687021009908176166924006618974915549642446113243151835346302185672360332376253845755807721063858629404176270718516212184483669688756585418065536417399510458920786041209355318808141489467609600900703150881061063168493905638552794213895080557191836232841372535858409384701151823197383033492704126424940895677729930638597850181829032432155549406106007966735698424776021708127400160762673614335037555914993013370624710447564672334430732797989020277517393108613783350881445058760762639114294797074693999466020760886813022887393603560702594502369359192278775036137161808172264081990362287458523394143717074092951743964400083563197079479759772651625977174671681926251248343879644185597757306346400324446997248462243176534362225387432500816928759144694190536351116609727835857901328477409731031693285554409067336106846540108367115405206898473195209312068275624610488908124378694382109010815208187377412401712479007773135034546572392701847178860292035672702771891600450750796927362363127315945710787651572471010612663529764407235228277238904950553256465560405102914528909248085409830073467250564911801322703093347646793393698839346020554572944153618433214657396986547262922330520951263482827878740272149067565201513169054325473238687842535405305803765448859126763107445064931171246712348123938132675303716689140261220029985631442563438921711217430652466050888947482747231752224178867762284856831754339076050014330530961238675205219710273092813653725805403824281698607474986562588324291601791663190791659548507415335582254280184566263096106636197649790231951123562090087639621503190542628037191045238839060571451331993509594654325097040036681642266893052092556870814071272059492676678469105176270234273166911116373942564543844860331864462852694728234272076459637389624629533740571368253985966484101279048082353852076986717322677728008662827340131888615322111018794044700242517782037056304985660764578528068374658522137163419663900973730031113123829855005756935362715871737928760067378375694983999810627904908669242284174418053522779995966492994587767611266755494424824747237094404282736635182012901185604745729676914422794335130815116618059285758828934123642774023718821901272234343028747515558853462916024058065707067426257094375163687226402381435654773603919079148647448251473842018425015664968818500149391991926822715963594150882811220986814976260603361326656527853675683288679145336223272500623170648143159344512839091965060693825137649674790476703391829450354060100348732778208067136590090983797992430921979546694728764017399055230202559165282892321950518497012535818492235440835150971278389820571460458932296227688037533263675633236695097776214041174757430214051951031105563465034265160142774508662526914743992308356761407733369144795111170824972842725432984947820103672663709724664963763558392182474147117424538113210299772736314984264843716309622572270926531292562067852767147583674366331184060071054951203955305361847897766558986354562508302740195158285359729756069282015298436684180498003241603182931306161482018998663690870292205967508284829439369752082474134573976090989879200922084695011307511805373076105531502602653074365958175487646117577861103477179426808615860038881583531684186702258182063871141703875502587251006289640134388620988211947042348241530789201307950487015035953957964657226515818027146291525925938424585028673584328058466176537037324912843387241027486038335621790295300601144075898224387340420373840549202558901690954711046989423036481627112841895870218887285170253211689679434122229263292870127026924950219864743237020655882311929493521138572327381679472378342015507296152725014883829041479858713140312174233646516618102136082680813690800684511558000309767685225694394562443584869865267878844723531948083220847952187128024191631474619398448703299584273674776645325654475927818408529382574344703959157140575700384816185079925622802536056884908802465068192022820870461383875172310554237545256012040058402945190987159032904273431092376901662781153313699838086077307600611185288782300060627143184893090952255065059892303023396443962598370685925368050479390423296465512430257099381965669119897409317039719233977658286217950165268619820782868503141251202026155767107816223962388959792716098247280065664468466657536123519506792807204576642167478597428960773726977230638430474433614230188381856742494116814021100650775171808301674019282884656608998714047170572087203145388494166802480113880098863503009666560283591819375938031378059398819497375561666164104608634236865882735043178345620471805492746530897924845975751801626145111997849415431549250009696323782289575446636512823691706929169095246510487680248814940434313865779431309101436938285100580443000264601533219350388700650134276221114097359509288930074765867688095594406413430033886175837443228444925756556414174597948627483353080139169322392186070712115581235764547681640641040929010857681628671591831981507796100448378253889823674609532039290585284681167034126593145955431883875799074207893264674070401197508388666698853536860520599749837584873798229697026565071146565828427819200874582742208433126759717397595884457032289193806610986008265180369336730684284677251541273355334052647545337433540018556828036093190983378820113958419873367156267123027988217846553927194394036381217715957093225998702931259231659121312881986767515018855912390118686123982189431707503958728828446348249532292097801922177316970642629499846159550293473111805058071764338139624397618781868023345010475441771977229881381236716636163874357193232694427592973789003250784162968648433569319916084790629696736876073435820643807193301463509534239853550532199333383580792617883478633140675920969470533659550618000913332766984614614295162388883285379471808785152783101629599708533728203058853263279081142248939904202217791543377000979268117115992728046397929494855819393652045426602377881784912879775043701278823365809818523129305671996212788767831835935642567307261047406110946096662332689166878279901872030943105567706065939651664460846974844075536136011027057570811245757236720367713587720519663750509956878879853751472183956451567729882307158955354898696050471745349136252547288497858773205406331160503624883748240650493329640775433389358835958790253980520507562448306732193153698293424824255333371872602873773353284842105659925163655316650625945235301419645517436304978907515554431042695874044262467481920866137625068739706824215191729721245327939829808714042944188944262665610235812471819278473519043429715914400119352976985239985717873158234680113886379585510927662308019388413699274744766013688182817630442853246337995190834282563517716576311994359965899211515275878062247251173316220475070665622929782222285023428374454122890995277557456061666015172019708871258459166461109614272826335229726323331903507245672440910310642810289342625966086276237568357796840686690245411424258135483061578500300435016657894099683546938351672359618070782660427744600887701357071797619237915853881063295597060868436484123053585664635598554017851079003303748974622968982744207310039411890031375423957964073195656207485275025192396340035042185192001277779070078807978634246623851185105562346262429688065322434287514205315118388130305462381052938764631853250196448490901060782834199980612654368564439716062685260812668243633505919278476443957030950065223178000214438285016437248571587406124854834697231848269395162568556093460028158337766720370667158891281051658519908454922876342492290951046570364844000737364393976200845378318435996848449405432737882320483994562617297741060058625623297604789753372040293083066587247081198750396193467526173413045393711603580838168875782232246662283247812783130534736692518092820839218135788867740197888357383245708747303694050828486397075379560030363386094917969596027793226127997664025938904346867147374558197285651625978146702824358783952408087886663418937223910193753764419367685515335590879534294342385216451256236581627312296354016609945014743162574485943726670312646810840001747954914182999422660456756439165364007695820861843841424409803009454567529054102777830761178089723096187065964458813067045978430260984152884015810578855240555909094744834377585555791094293056102319154996784821233130270112584984506970486108761892396242301278714324967812188358608574361314359200750455810139684966848177514816398706924457984826391520160973172776540991112047439772123825055936121911467178064013878020588714253267356556132560881650731503256120568325577640897733898234525107545432741566991410604972602165253278139663287786018058961227552695090901628414013946806846018357056165493777805619187421628654343703924078489392532103466697493615025868546684352236905505309838175469550182820921515985255116098336360959420997915643479228379194495389662078811393987417907692005015623046176673222191958244122757181250968708792515523318813781078687770340352787636203015454112204523687498936014909819133989879728492776886177042976390742282925475381019277429089607422151549421465394659511368429480940689358155084685470502776106878002047613263888179837422282942222344215321201447833826113842988014218268435255803793145111823909367982608228061152852029769122018626420389028218142327603870648282528792149688617115739750006075093634179581867575507420895014902118949195023780528442213968096585338894053167352069392082931471616341861412033694331409892972236960083886857790786722110989502682627698536550136070161624926139449293312450320220670935498368016993084973540433324897913248209219834855813526369885848877433172308723911702337673929056524893777205645415927204104175036906035518694922033807048023383060365444934267587815784271554276142490544483419714003881710405108545988820272681942246858515430391958644982412888979204164083522362792726956071300798448302512350883020140290481553814813678556841399043723127098564256370161116963220863370607809877069218506687196310640834104707000958252059644051963365675737341810159325148461256799347409684712375646871937641152242945473864987849011942652958746718730843709728382636584774195063621363148735066014634303142661687731877402927499605429713549903058571279883716138520334043122442890248844063198135299767508651446762213631972537615200139359611542043571169179779878680896344247733676726281223171334144539375585731915370147138331308753025454768367620264818797433765602950804886913589070691400493702881721570905625944448537581643962664903032682644081618644231971117042967080082116769909522104710020090534527058469523604163490838019768184935240853214514974483823832416926681477914577166504655666924808285719681141126238565118605509845031709414078162162229221079478084634321960527725839916060294609456793708090792725112576774320600240520852638350165894284838614574811939303806465166459183619838371776432388165433371748381361106536040095489548375261237288992396501863300862987815144025417328969864191941789232739214227709379276117220043809161605380994932242444749128852365730298768990222510105426381584865445421130477899100107873929220332896001197495197563906243245491161526056599414324113424477281915703063527155900818894956772850923853676884913508557723638867656871409274135006364443575409395633949971829582555223150628914143193310716625881336473612126786944454549024900763129569468041038593187137771764761086829039487304557639750262132327135479091355072617626216496072359238128629488807912395217459958089630547692357146006135015943544321546913714838997638033284454046162835804060432880918512793280425390448160334429600276750885302276462707045251315190349087266469667943955920229894283428294437855038811818196698536360161973917089473909958961269706595075107881200285889820508999890210992211135537368550279926943524454039635252579626741529236525620020639890355178848362241641815365837072144866414632348626014949481709675211544642300084252767776949145415836246319968852213489550981529191101681784013060069304952910297798369345089707476641845724656765015098037417167555458029052756790346299115629167389325792357676837649117171323195893524051812459564976307223233355335035581121737829286200784642660009554282001565783236181488150393540948727757029791271831371147655619202780801563221008334440787775456162878101994000790470169446121405953040633827083650469319901134654854456411833425602423809080163850688256434964245129603906826839809370256872954836416572075239352122072133307672344265919742520015109016330770947696937099059122416513649916062101999124866940960637718081906669983868783054508097363158218027265803710453494730891514019998893113385046274499895894404598023565584937101844638281180154661646157439870627875477458180882204643085342740534817737566307828294088520212109492257752988195323885485112188141633332908681009905087198990813053883265859368717907468976621656660597950345391298554373654266479342293150385597367620167690581616859116644152234266288430301216766863563471496790669950303773194893878996490195064294478532959598987401462968116166263838818775979613052643333537058038026001715423806350757198993402239800442740093910154707555081367950400163901379420544746263259655647443997329310295768910665625856494165185046232985875244569249382342967762358038031514771744121277748423412586399906964856725143103015651385494961091853663909225931833122673447137305993749609209123505998207562013140045885448449763774750465957011846216964224542632891873929285600243611383751472995356867043861144973019378975976380613447570387236310605846799016181359350597429242410906872018315675436483394939165224374314359896276938326671044814889506765015081304498043725208204610572694925278682790581775641707267307540712278527364296511357390505739498552434936628803086282170870055908472800634359275579399321811429655330694719369975515599481161727776136239035682955851631467450962131310478705646104931486505748964479133823340974907468957663335504963336124634774349713008645410515999366690231260359630245312861158358747078624019762624568849766894624791258995956182310612700029561839785585636944599962211516171240914873942521000469570520834359898728878939639066303545752038962483384888599251945879290283569027793596004442248795790415073338384032089786683308079798196276349097135728388958419481410380300189916682840091762892288947432262162564439499878687014356142820780334537623444597969160843581906273590183947434316059862820112294860748835498826238125436620046710321843374306439871430364099347480970795255374093959048590712260714435221900296084028153900762185633538462572448424112814358429282087679673951908411709130209663649054937244575437904420679030192522965230387564643484961028128651859112983994182138050000138102796325035252617140637523009802606759236214344358313671972449435607758696957492659290934451435865214735401213506550589058312428857462218585641642746933400098766092943634442654141015685836816261293907138393508041145606332631722007872491137344716557824448321077497618705104669470445659918967431756586966011375727067389805611396422824680886175437114383582620189884205437105876158664506071993488569562023283239798740090869501819537257255052665518756954946895438984230915159537159379353856848683018829413282711503801996241173107738012111201993815863140521175120940884200837984088260290650981971744474296851574300198908199067071127191865286799033954059059798526778204783440651414471346727141415882469705594092725510156632829645652946787970259590927092903855358826282699974777653760979905884954649659506512805904537984702007219169849660520734954127833729636195417654563650656156894990476361502004223509832213552856578155687888884912171462129319226176177592559414372974389041244097650618506966563630360585981570036581734517696887206657213655175370917227405856918872110574401765167608001505083524103837564059506216446748124201314975884080782415812359989604506529222031323014234302798832784027303607096151895571367288373343906443387842664615436978018414278685583757104063280902208199465361441983559193775936334120343832752457169496133900635079570565825856044639260108670933691532234413602887995405651463104391164550515793228695173848276216687980940291793729634819497682688301201375525829363641059803455481326249472545613839695406487851064541324891286586113363211898589723165112925584245226628589846732549287226589429509381517472613950976414214973102955153299142709921746005835844430410058684127617423934939619126443713639758245607318394128567641662529001996500185661712902547277097984862084278249650537531740838893732406461257077753299005615052480542650860549712003145631022054612449452820406957166535053191452356919604052594351172161117228367757547681723553549056072163491908263523162821773681499641303999657287722741236037454618213861743690702349434345275480289779297074835842950107572942684638133029706811446626732090303115640187111885591552388741637170356154624229917708063332996485943564439147497442153916609140610362006180040909968769245101762414037343249613201504525356253343914252155369043903397123061354492007453882850625225946280856477756710735059193587704058581211916098415127489607365995052572589751398438042893454314769494102992440663770426464006687883271439891334086925076479836195628197700782997361227368852156108390763616909528825232910352555072881354550130689387458408054084976137999531576869450096225200131000651385118813150690574070853854850959645883888051531605010074502517204996802114995308764577942649689541684071147200133797302276312428952724553193278461342096759050380441882236008349686812949333185586051926274904599019812609167489916530009557832716270893818026134673023770614967039390689640885121229583443240481602696689890392127239035868112531224651714964170485409489080401609630094015600101630266111712622743772657251868683232000059280944268611260250844206807638843298133352068155702013246610706394279582560131839455001637899824033109551707270053624341367313963026966558659258867478291305344399985747988590506019503917029081810793329698795856288739181202787192622774700270503740912431493541046074269579448543690407370820762148980306418422112552862003893786117779232779652711848130113215202990982369554096701805974048441449694805985087578666495800868972441886137799574467757556431399902196146708307916365088782312587442213615624671615855918330308988260173989811217075144783111564750317906418753330647624719041853137652325343467914291529314262463236232816158414874336295866306324037425464379752045192895165554468055195037732429096015370846871631230371196267082680865165738502888372846755490971970277870224432918307697698708402982684601781550447608105928058472873970002941661913749979748692307715326396214650578324682050480121062750791653621998037671576105890264657615999894444060231429252651815544191784584080060289415773475844071691132509841354768793369836996855338141779772759529403448989371755788690127019073459134968083523724624042490304724359665372591839971886477690914219244805880859414341249606117221101444663406470675361572154336989671399317242449598703772551792435142754861253116806302475210278255602255293951596249437421742269881557413075947080716666392730293302600938541686903707101329134008920859508192628693411193018248004267477800812003226823725998603941681675874322138363557611908779209364050226806823189632569922992871435520253756906012518583682244102362784484123671308402140150110789206217081167801036694845564555735514908753580684717333642098231034602949503875188574774711301649064635478333193496360022072737514122699865395894210509402001147961453214861699757171232924378842299593336151373677249210007831823820394447271681421578602790207829003845659587275747012772086175549363502729695861738456895914327456248609348729631949809471483081459924145883115717994440029468395139677359695829630667540835808680137789363509111178876324305147914253985816642755152282439963671514222194862982336066722538685780769360411712047112534029690472778824908127718272571793061505721929075748065867530832201969909661269327707589793662563091825569451164830126007327418574028265803058547502970811688900761007075852993213967838700216994782981735513202760486366776614337504112002669470851195322247245261435992332835844066250803092942725418262268281390653489191131852241342359205279519895939786349702801261949353879615939337170743153641755341191114097876154257925612198914618261441288384213794266733641452904819783013718416041348076653631197462462847889533890077536280804589844341831062402909966323830858954220070849348105398502550319656697314888901122120684859391887010187750160242134904962580835524073925767467847531306203684609729110046425217111958234319790527184210343944279111294192449799624386842395065197777642310887876919282726252009798607818483571770003222263013993523062016028844261774971494352108155653759887064902738770659366522877931871600268533385991112487852962290848334875934558012975086709082989582281032362693409792553061009716738559383750921325385310880973635257435341728568136026309593961765907138946180044358295677810031399945560961686040717965124842110934592292372814567499554278699442400703740505717354348042362378264471321651717736568306109681592324545959873386872790926901782373297087492193380634872978852492816832823151338495385413538642718036212975003629996709390519737001603870480008693060315230730069511973635151091009957072190995333710996795133215176104695698870979870778477363982866283612966438221966360448244794459088872112302106282238083593014104505763450598164185887708569953577454252751311625963877642277854142787256907786676927057821641185957531647579426940095333145170824389020374882403282637320178731051470060720138268958270337658828119113809517073337165440232411120685012571340353226736139077209536938644838873536816833956510005491444889692821074051934082248050723719722295061383974066073025415412272399273268802290330638677980310368479193106045492152884803362964973576656276066125609524863094190757656961543525678733589380141328312373792238116808404144546033585539975398091230788794685160948010486368571501148481213494558525728373084544183393189093121429010040772055476359831237117762026276412389439564161750122648971579703854852273405025868906579887303599754304090709019482363011393773238318234095855228595658899987545473327915913237303822559156505824633027719240711230131236688349106248068021335206404711605896487142637059809088795489326404765165593090777815218748807206441321750609132955339470124057504580604861661170333127799494125236521222235017780871306467061099704348852307750952598450908139506764846852597963582846407370727781534821936345563125339652379322795156962706887546268026143146298341584138438513746703606745021616864738089395363074652479283047327954616715889946425936080095062850757532982512014341115405818696058293376004403970364637796085789388694987707929771343792810940990270286791427235619052952337818551407755596946083770171834598871112281946169155039732385433462152430147006625775186510925620342497134600990684357248162558095237207441092392815195385447905170996981050515213751496770211079885522291451399830850561807144394874668417582190389554390591365936184087770353050313483026242759971501365122115520096551954151069016112615278034752390445198344554391707662755535954502646101506243066632545591452103492521443987508171273568524478444978690697242624800056805600332399994405627133882253035700770881401262550790286556631729403552984469165736710532232678507262741641153457533606098927598579813946483505102910809142202486032905056181163968978867950958296938596940485082981358567867918382497687208418928865415836874414597237796427961521330060315788925718335102197202078858569504551760954052979276136693584386626470653103638987667233398340647595466836285359665502316171740661955650164984531728361966379692317856949217742839539418035999257556629889126391737639917944843230511669882188434719162455125692073962238700144299922787796871333978819417479876381257285596557375882158527416168695238826105210481633697975695412843910865201050412494626474210634834779927333736851396004270105666680463778863671856338892548706646780861680806355579368408641628095404565900425789554348048506301117372144975932079385557466990470414103409018102104608993685562115589592452398654546873124681636956621786757470187659958095475858807378673028723094849556258823014986849048611062646181619068519945315628194433952548925985398408253956923252579839579584436474395415405070234095805668704913433536341706315758590834114122603038010584711945474653349510559506962493478764513171598266328218624938078497403373567788230101989125544023859508777653809466017849297438363478935565201749402279718660848235508918575355433661978125610493141600158372374711022654181142916715084891297959706273955767369624691746193336427012895700148870903393170529178127003723599491173139851856909341877635540750691212988937962946530902807419607304273863668064979209523069721316253970291154531238887810785216613512178366885749693569047435210427872384642319939119259464338960097519044904887606483029853937217656474782873826368200030505856795974623115077622481578079289466066662430227403747030723061994187844537478451716580122617247424818076081402247964530597443081615748297131438743705520137256811939683719614019849261985012274094503243583403791548538447242442757653431038014046266382954239750623821164670327455194246244724979963640957600909307639546340169172652399461343881397422946453389885693447019536962930883375567994392217068530703129124330530420787888434972826780666991179524088718584137282382827794282789382781257148908655757779460907894453640433063690444757712556374462730860830262035460526098735038938929812460065952436265214968860785708571536452386143480833209796003787269166312633972766922773559804379506849230161991698144154027072802697361132612465663419403110920624266159498750466681033081103690023823080543930929449911831744900142607633607874154014978115619279412142989542172398057195519091466954113937863288756805182127793948023411407143257318822972468275988680512459590087916972801101326779883314115673962661269610399891570900351256847542967389765730314202462876293650576569830053379822421505154216950385443056254769202094163930285440686788669276864346527148302775267780255071895980769226679682582398351095451250504415931156820487590715933046816830715506148265900024580347555443452613585437594368109597199508482563136782602144383892243442164756934501051967728225895964724396944499144324552936586990881673498825326472235485064922680786848423012996228011791072052725492886191885404833619892991373828297363586657521798222996435292826331991881727858225690344116351977487453331238776505870312911746805175491256454166659955344753039238859915752611567574464648417106857191060239547309406205408862039346263951200660914466079992516964165406310380609104307989389720412229512248602713837828762947525483270004735278196246689683429366945674327024126890260433813094354482689194414833731418403632268166004551048080591234084185264878872670881386680112430612011825380427999573687087055934798150370227546452373720450561183932759073473191180799816672040505691195235468310111110551060937624204582748113574310767425013559715038054217842706176940592584098996718561800224879566419494275245290485477858941656210160559714248733282314045794949271965859808526308999334462801326295221528406771259826659819189237611096124092204121379847227554932672253889561291363443062657847337050012920557200992260304668599234816243561669629494302085814938946918611333517411346982816066724810811882230644556408733519917013686045327268309611334417995811850607263366824559544774114087080887263283543695296576618220374402339079542938272193755847816889661742442086138130298724303676696983519688374736106496255444639579352224086315422180785919399512029678427966930555112364978004022940741385794157137743306090950395876965812867929273924730167541318538268089984455758810007019902035232119490495329612055994635233361626299946505634004510310776250207005821914480033329160539495154876734797876176940633688980719675444257394129258200502257532414930908681497132330992634382022847658167882708055539449621804977805527429016799249135897233685062653354754625637248772775435497802629360803684529358857501348279971204282434315664750853395105251981449877936290572521094540684236871607302441708599750381976160615445771176840203384645598870836617711635946797695608736509807346722324064878624473216578407837544427410853614225555347367972561121014885757352689897831716242077442095018846657707193367837986766500588691719664332387167376364839160550254162187685329136471637267496214132473406414173694375878975765238384140455307970998672573516987671888210022011586724724396884512009578353048893735795883794166454425098600537602938830840623829001046292969809520259009187058841035549397884545425468654086696084173949314112019849336531849198181126260842263636532594076073695983380115419984122798664817197886750495867892987537731499160998150051247572747925477892143609524604476524940664817556672473365303670462320615657987359976299659237312088741185700832644974826652803962754934180534751565179746019564991060606106860176845321736765337183643727989067828858683044097281889672902581987367969158831422335912022826034143772584486395227300526678181783502106872545207120565496469594484375876923096682928580502758905958119690441652609487136055963654752014199247650301307365248983212363111678493834447746557517716099909554652195210818067711629514205200879463067858179119507914533004609676511528567125644433753055321472169768037017286950694110648617571481594054398584629635119061038876967322814142751548973092230643925375887620453829971026594833086217960192814549005238971623229553521756214441627596887309690622044003986253084761087716113380241157808570786421075131025225507846923042085519890607488012257102653053243934338811298301477883867031320799745334818172505920000785137765769858371640351969196630256376579353776535411299085478944022095208967400410376826966714968767978982679974328510602283390172489294474897156555329113497795014675189804063691995099842767199545009436336039198114526419792016025891276858776267051087489760432456454948102485738511634850782043628401113995928128056744260387195351578114801255549718453987569294630667882966355947898795059936348766487435780767105363415517688500964281286888678001968708861283801404802581339801868477972359084004663841143096738984363503492078688405646959299008587597258255327016068784324069402580227711646121941150371514595902510409298364464948687893196845211373211598372913056741702173084660542248560853021261501604350052497002485970450184800553058859699759211060458234999735736911808149744040234722469365143845866892677727619493643987248661430355311563072690345246056417574805487623523718903844755295165093558305832202734614515370272783421144279785018337154831675638598206999220810576157347163454295756573301508691557652876826505066400762414057793745307600772996369023948245893900319914213987468455747580649699005753303882453809793219734611187387177782070588940613839272333628755894694928308079547759898703082373481845939794039816139715072559893393878958317532639574777560810637574492334748160060868227625063350061327647176505882699205004697407293602887755322155374569593290898558871992326312849315422324023981738061240883468545112286020126997943804562000426888691532868125487330526628728705047224934945461951082452603252091366158307435049745591765944762928737657701408645771931793726526420026693413507494850173444202079507705551533714053818950660076108160168084298705978198108687213505740268740699865456915652700051241908307308625083645607429257064000352469766681971671294581549049564577647945687553339314625082685714697252755218553228696521763192203257682662359817370895002002207734254808859727987428697492621426898980194395984569275877728987886346658757945701014371953205171547613624793862977531252827495184468688556774675842732622546414868388049035501520275000591441091530469105096895618970431786051413164353233310057466325587864310464780320067860978287571834652391877510205092545205912917238672046625013948754433524407696352920009778447471748121855396891093545283194016106945090141524613137431349038590657588446332334587597935189860742168032713726142547113630591980007336523533574374883522225414434756918845044208533581257744069473650690246437842994874375956647679056383536822951517789277516277080963114273133370322122766258774428444050043359008484838484803585913846023399510856367710966005765759939247153209849576078080528939825908247766491746365824792779388415087993359344872995857975190958842164360308155019179563175182169648126329598676560855262031246402782408357263407099044123981764525593707419019549402597514031683813155957059089370444620257712001905217662389539819280153173897040428739402585346332568206236683297407951122863961108791272337008131942545152940344753353938195718411786260711301678500933690401612322995792585772859614933927120857249367175319330947019065062385310487753860812719125995077657127414566400378784048707045562333144286051722406719364430053850965432118774497019709471087877208231172860811259238568435007151188429200273394305390396721974429263811938765736080230658283809150445270037147018960376215009512352032861648963880338145206004872860367024391930907999865158579665414113636431366734917469982913376353186625259996477628041644211029954429608562363391575021420155523849853314848856607153741004224475430949702533917155393873777512938669811733115664127939817613020446402926675471339944765656335712313604714504879905074956927202463273461839472432133432840834483215026806651793250917540067966038357996347081694356385880892996029425851472917067551699311129812222074598071460186727811811231273595006979715783078608514002893548343023946457506104299889851706308041427860634580700322100464591157355251760141834158387360401289707221059889754729649424102448059122141840248143495542938792429052209594800732168271466176290839487129805108143777140040912190080169068638874855123055453726917499629929942129350414351034477780565988647716274691090715734085770420794886349133622577038271019130336014428989846673053032901969310048745269405182708353992979002264700754049596176973585078514898127753228126301005784846009769867286281533198065145868809824322053509904943100933320213938250514348940447436261358406326559069438740438139664755238901755051800110097701331990102794158206259307494998813722707046561162283130236139534001097590603836102074085401077110940495777259841272543077681685726716468056095141444358630118855679551003972342992061318577092910531490961741297513141353939377493122867822758626089419089387149232400569058699877428080462385741890508992577968545399573684366614167906689820880710723881533008305038929752709880000249160232947736628596416591087384801095488074341773026706347278472453090884613926825786460091188980256083476168957017431227415221928059695593653105675758349883523772905903660982381955769958062246182595320082038270097854745727237644237987203491266189503326146369104523137861665758295135206565702662480631047665882877166134532873989205160552092312047646971248122127752020056122655282139578228298526370784758478080429288913320946338218115039094960881211904137471323798072128813142174123404179366686466028368947327736996150629434444342058431930817693264620987814743637942972739314065017789639938760410860800883498577113169073200966418202118982070016747838131117457417158146587149113628921127724922445936168201341528772930496103308918578805932600412301606332919779330292952653237545115793757624197762852931099536999098751555660829754027761434112091778930859017493596625796843700627737487764625780900756425412054844411609325886658860249208668394096462865932836021739823448909999973648721939268863702310926469061530436531793459702736409850761611506418425524079518708402086513207394050108437134617080055291043489475244209552520111568252025068050446169637926986367429799955831772055643739776389233947036903086699371906662966398450182312827206268796604196515463243914680396069647735273774879356694719184972066753610628093356570194767932384566207486868273354020417891468073837769337755310083464153833321479252110203829797861356104634738146966047489753352695088333276410472563589649177188668973093626926144419096476080081870568929241114279650735364562310108599415553359391163149249167995277930862546908367217340487388012749638799885563039992551898256829488856256723829779082249898125667724387235106411295824006401170918190661128762686495977680286503708745602381410071934950152578081009417743561271032116831636173751065825548407925411843516878201054007314446095854112209223915156984666157251286566003892507184320591164375963663435882981878402692943434012478772120066034625024310736904800894165227842454587038271854945938770099947733836845086363481934106152381381060096380512389248832018367865862496864231700435331020831874061537996504925938075528453406174797909840208908167137990051399939369574984778657015339682684693925189587245586383789727183905738759527092214633179325337117573181074582938624424263029481065425424083061098115036734882418036090186273251215840701806831270897080844478085324355559689616864647980877992429571484367137324069427658018862091605308415928263905729041551187350229571591506452189337189285784571405447865468764235731598701967521371220917054184827437668972388721918219822914189730616721391868837750254926342924159600417730422705998746771564958959949329451188803910735594357149660678608976400920010912910137935536698421290778595634708731330371497006907862212088006959669220707336747387505894356592935908823363315066688594775118561957140788385996409553084226468890689866560719140759087344238429202958832384278320020345211180993154999155340505581365276090333347676901502923070281575752732611079598023481536065785347154139620744867963422907419196189662953162399664253558464247047138501798859203237331240196031116228223204896520972824822884820820737231537470541852715913701065303669339779393862765395447517253372969245168394010241025561651202688468831989273875711932600240491460925538531532897780880958052135872794813317183008734701165981484776646692000872285544847764554957898602779599129314466534713237161738945414406022215180259041450024226389002254356095853168046457528165451827750519738196026616709863325512151481710383789013097264046202090982378410621943586501527749631533802948467993870324224584748946554011804084580983398573108211353497906154613119169624657227571636722215699855502854099548377514974553260730802072956759553700289081028868801604423507243251556029800078558882848229145028911213998004159987765433148270216440777558477463511726241912615782100209186138941616531517523879801706386972169156239079022052517025538807585627436120567700774646020258963466319010654636101713320304416413359949525066240340226251605869940064543348995037620449406251417146390146793782159975390634366740032271984696629296015755884021544304872843513591542047782921998843926228160629987241626113396541060003588970319642810466312187586146539253060290385258462615370525402309720369445300164416995260594458537159558906863013988412602188387327427463013319546564401507348300675284191219209382401427683605191724231113767030460006512836161953018190492756084058788388168684569329981898530490076690197365157124224121834423274286138657721532509625528420712154594193429831919720869770307225676970703606842969705392983309428508903912916640214714944567451395099305148115518283016808103132539208253927313104900912579574890809973243908753240136550000275075979751658802774556323571863162911684899012912336051350742081632661444975735086766067689891074330852850112063857211111834746969648685529047817780760270938696311206395443081079223668236036567208490585883921092855928756092385703676615931938181328682040162918858847772629957136908093627837912872698009083060715218865428808336747150234855112161420115306728489599503412713258755863512983576705860906916039765870220233416223468082072074221927679106863182465337098045424500902122326308493239122374508711701549509243176068722742833419669264401979633601742693395755535851543683584769107220373808149040746689953028237117689459668573360270052770475350574562054206348067156775021660778318853188854088185635116995569026697439593102377295601136981754471300605927450506803777392480242722063745981907211270477497996183546547091895766582146658456773117886496715175086255019359170185836217019591415144195709802169833018193806227740317198240506009644958999265943788247175405547663796057489031688373003108885833353825746047685267190320799202256009971229427243167800824968122144180859470211266823214244997237114966709387560233579330316360727609684880406346496630203866058865423406718904756293840597920701958807921000792220497897537019688392670290014196426149523386624500887759774389384775182444458290573910816697842473755984244004145998914498557418729949677091443859052221952368473071236494588938043668683042699033829181335960260275008270371473362227703235675236636087285983440003092471299435847994683245921539662707276028085973151791271319102206971105843723395032843812312291719250509313460279999370389169681880879177337095308803090210401290054581466180541648314317321181158671512349501539417172971422434749435975024925035718845183542899895614159427731274245909960421353134097398641193154777750438625389289378429336215658879207503729043225471020546666260840469605685132457019921121144934955840011945698808185802860097453319476573578677063554874431949180807310932110124311446872660650120008942732474908079183872911131208960079662311098045371301553148585982608494212096123253788094940904932041823031567619352669115832498225421451843237391991596122807201800296356127310118592456837477798561167510847647688945028548965264229224017933168619571172609163020467307148124648741155600717636619760046936395428637773773815738311826798087910154060500221327853939938370320278865095746082827595718017634699477290315709090608354584369407779921302745846296802742672311171521737727242956184081517019892581609925558449035607324456018005781383162573488095285704727086117082392359486935715812410028224958338480839185777566687627771438146583454908974748557411535682047649581226244105642505354946352020478353744576890039544840936311327745870379426725446242596626272227319121778134808652925501916672309237534426398845748431754017742163206936363317298093609974571083417908205986084286555395048266657011604987024615257021678790035874229592248033019689722537645511356527044961610867868520601800284704630275877636858327264900150387905562184450556286772973001135048051942951644752967390267982828268759212006280812684672219335597707922294349126113738357791075720215607966480253415952027403913151390840103328268021348646907781556548416818508060547256030429989869474696429863316781679132373297828813328629927175814375753119730956437984947343698035809302967210978552235858960615005782153596635986186986311157889172374646861905747538543275540779118284315341991422406320777092748291558166525536133267022217077929928405039236297152949704928126054508177551282095374332719808707006334281222904695556052658977418957540058658221338678199254373788930727698621551329308360101029101224899884708531945752209787399083535864960598396572290958706669926265793966852436321090350051803882459109160774216720358281661367992257868695909573446243279899137527396380097485068950272372065861977327031317239851849269366343824960702258476420654728538286659323703594808521886190052554623040927745392509134126987514758917106523457937748197149177953247069036720536774594312465021144191303858851058060600683825318598595085457058078917008226802275017942565525867103309908456382961113948085489991546322427289981356095861652981557342059824876901320398823006917001859810920354028710994726879576368813425766337295599701860404158231955909754010441949025103221528788866094985886100380504083059864857723848279179860312993384192193247048547832295566929236906833163715400673268516960194265607054735289143929001501130053845077307789204204710947963971220993974591343434981288268423207812693498454516733738200945194872533397471088603120129407505288008252338913520190298500692079445732428355886367141216604108211256522648869435331306054919039772600852332705928507145754532211708769351169208409652047414720860783224058998436435571644635404131274502394165198783908685726841886961082746471743708355074596314731239599408243184115224033359637088886819198951406896411275168012252903039869126602167893978369681161599341067505361178376068513221680332404384813819128068618805844334585975093649461326830655486139459038208979145810531733759474794779778012489014910805192823975001297886823625961439315790100621637750354620525920270975832538744972285848058780108338685053350398465824916480018402454646288806361672801589496962820332430184111731938130570208126806254518469137404892014315343899044826292397230807306378271287602209987771811862306210271665796347760671100461262755061929757125679334161493672864700834374873251984672218251760107657142885297883008020946811360407271218245004289818681763431896733263841646688165638617899309710903472694137197415956301641338697732074772943010593848372240225019869207553232490630082874157807295655285434207376908888885661831753531097932713871032084201390756681259825597827022601459407624224218205384495423833784136344941197443282755884491046120686190932661322971082431162331159781947617825915847958861450985182709059474100034580193692751513900978407077712143818893171360323354250460545766453909346567963095164388124187589703506220087431568683521381239171267668729655522709982895208569309821376575240249563680741863606818873190522567120222201554004899764576190339474111031109355851702471757183843242362911306934124422681721624999023071250526964037816790489646261725923186262805738708629188386355635539144890097383699576174403584185384752645724629127642640439121311561267711719490125906444692567195245601154635190043662401098959803143221733955631712574929156833091982667086608183286273249018273194301165194455478283226698514896035736083729174648648244824015122746865514435447325068484637043128890866664253705695679956740710651754533399269378795377650844602261836568727035607925437617805458227122063210490339765533528242121316878416462609880035851179116687393906060377424921324203358838264397606649437867184096970209439962598344259222223841124919147265476713389932371573049040568359140218391546235237566805415393931947545307208568190595096743696363198743144285308069785025705693627728111866213777311817445966066512796009642109764726667878240158270922197792313884196222845330654951069730394575312576421227632109077385048365875337880275913781211789107262643392167835669895629899901231122676069401604404512334048469260485092124381950238849375711449837365348520860486988396655548294134983837720715585906162313241221779445887174719839236799284510793373516117304759909440594187773858173759906722170554286200947177675024473127444134752022787050768837457231955831575562399836941723106088185898803488821701868958593487023588307140570757704517910775396889556212199915259054162189890648010961298358785885941841573627281464409610522398662070884034978987216957127998255016688139532613834301388551124691409379631217154265699330995865156360582260475990475971987690710368849881801092096345458291321806462643129607519311398632482920316795136741873534960855860550202456943662336503554576690166430728274315034146512699000917243774068482672711856205577537542541334955536532306359487846951628567377832381747619542942938240438826227984391825611443266246651131451880956321909802934571541776469400045958875056446634867437094157310238334944775399866991309766626079481726749959310903927903634747330245092091264870512383432391151453894622560591653683002975907162471726661775166708238651930745103989683047323936048435216890886616963021648273508802411298219329272916134656980068766928888903234566130496380768482391597596708832307753870096333428950993406471033558223958532936859472324929065730544055665965432967074726082141081072950178039713359975500096374546810742794645111919069647358914765824775593084295412213111885336037564052785007419413109938539595693722439853512856239329266269383255746871859694303500268834012468670904438000416743845890138584306950415729706364673027261111107687227825845758210018136099057541107953884332141469560262709479632833776224384959088731730905466727507377024743985617311446872397423259061252532080926362354069797448690492665584839523720452771312696500412928938793420719610435890590395970343462101734225657833764536684657988108099506198507075517323906452792589495238837256227673226702576603039627689319557823201982311547539032374239748783766228442410095076743782850030246476542673832785092699979812936081363339205257937250805161710203833472101973327676091705309177020004707013559679957834032526436678822161463817710306308794719361920799963996710838415055505299006151921050218753265923977572181052468699569036138006946485430483899435183317329436741267355610293467337902908745162549997288916832574023805010321278672270596960091259008293415757726292468555659999156165985174944699237512458114509976156232593244882764591414416100194015525391322540276233726214862018437096646023020210071528724332324218609666738791751357638958921637964563812318929506299199811182960881803173314689516721615258370470841118960959262223376168032139807357657538370894858560872320169334717532375966649488946272246603128705926187694071191326953387145343234670438412719099983715708709177593342300981860372496650088123288472676286675298977473371430136161327796804081840156086939757230291944146996728733017957030620250751318796216451661052158205732874846757720199454664994764388416536731428981527377607240912518197840831013028636056587468603152788310401950086163280927500020330675125470465807478066860400412008815574285408762141286262111000707390425310386882349042414909914094965213545580401399471132543936901953160281727946948863178005021688786106369113079345765978058340464068892011520554616870719037520908005387151146068032676631683288510650285434324597969955308820630665765617987493357891044962114883656857691744058160344188205285795804612608171789350897465372575152102394985785229606158764046756083157731747211173473773069912388956962082970868442946445534326406490760456699749717276741880994939086909117139517046863698114450703881734327592589415663009305607489320458199478527507708585234335309876002964906664654206941378358334247748649305926554914003130155133726080772136500532193179723437969969669733902259430742697016648656802571482065301634639516754822696203912023937026809198073209753874403374760477319753858919602810090552007933094360265085156740165082313092649090308687421700761554224824360676600253815344464453821061663660578833532227093945569051437446857639808194306678382424697495625953362804009731521130937099072905558951833996292229026701611707092782282253411043099944866424729678534865410667550594866509761159819989917321040451328255481832650658214186636280669579594324090619086648544898341778974881849162531462677658923523818769659762746070791125547755864047235888667998003772015027091811196658629128854862876807904450388141102201880644665035142005914918944917651686454972985688662705178492089914915404045812896122825367735253237848139226682131202033469282650416440623682052278695173432566864569252311518420919498269569667527205074141512076888051627977376547436048958415186232797398047474716487872398459523320440829328053904268954460689491404058969535116392143148172626012761947353674103192590113797672930875308197095804098030070430593280262939844119267682120493938066462966246639935552126503169515340740638900223230726900471670965233068203457660129141592869014116219980914274930129981673001108153373371102726736620780851809185893664152462098979067242590879071862649562129629181978370275517602525654326941676549465809272497627725978366996886786371818321193281841567288791992610013162357676724844954737120225110915505616905732127507544823945097794482832209912467278043860109967558181401458946631304138250138888021011009174649364873442587895328186472238409281054478377943817128085759037010465789832072385670720690490538024485214205794978434366099200710468085057544137548261127002472109193917784253552839165136732745442875652369593750000260778665195134826946969010261932362623705233206923303967223959660159141799837280283428189874029683552826947565946111713042194146103129390634721999783422319919156067568513787809578352846311827778404436813745350378537063705550641420920908104804889127069347363945416264767035807066929346037575495015546589453344405744802537409210235277230517440525425771864347859569103102848440609373789056088320180481929910296365749082046628157867438678415180742309030364594768503469987350335752085994017416691773418121830953726237374522194635594816609413455376762903015208010925343228345792354498696235067724566839440306618719832212924832395090324492908305075165492661934677815316118375693109614173552293199510546535346004590758900774582834560350564398543889676454293315499984054214234352666559307130143084951246067667724586623630021492866609214599528069601729201943782643635120084727964539082170455484723782787903923163396651142060498873362571378638998110832420327052573964520316507439467940563555064107234856888311658488123612393241139852016789991265244084756624469181037363395773124847863083047050717126351740076951835816126813913583409256540083812409088332739934954828499437192697259582461977857768638787351396681595752836434145214627473958093334005466073440160617201000406793693711953076680357786737990059647473388948770265666922331518046079096653400711860409535050580502597644479415247487792841680928326233653014566997543551741255959739047249953783070081928521751307149676425875206711623151594874570489859825620919911373234936276634308429440712277160915688926704411410356214938527896493933808125207697576922034530233595872539070841098364269059980184047602078251269178293459683596152753134392606841064415312310441919967794339860666632405795045591186706629393032855343814678075485846112770095976286700748251988420504528026871302461255472781568509448182661592611540418249911328880153732515050760332030658925890953877808075955433243002275223016217801300196041747783085421297360328522038415691741240907003232108118149644721035832962222876766845251250649161569454436851375289812455608832631147489769318999411097392121372687938294392082851586288403751870506249318798821555366278770951706657949507330329800616714471230133094883033733599810396373776940218730715021697433879876311304980126248668434433582320595094933349160786455524608066505812917628275701706263305162689510360787846208390367569501042534135451665394003089097711866498023553919702694939752369099371744619675578173702837403717181405182579086283541100832559809141930054549336656932471284563202571351641573050256529872940606943691016308355668478162304967895859258845100494528079717985772367027693393403429787765825008896335428205946215196694998144271267697150266049399841407661630613749293904493099596887359013644283681093215575017497503736895861425022412064599167478308664254521195721081973045000747845574807616646050647455507955443230278072852872849182141315266707866406657155906190934061566178991744063463991668727156605287334094195977213573919492364711846799046666739764628677127598503461484691729244951902236393551173009486757098723420981927717560751671693685544692766515609301837719338512071488565319687642931021252494961611540713579861804326597942911849153898107651228104615767172464235344828898648635642112192440012515453835583051309928525278848293501068690387241745379356462540750533662856064160534645784330005002158712562002396688953955353243310860169113253779748414191878645929005230478005563852125080605669722521287431420816309372579977941369060771342793086601326085467289293162852142304185849401739224081421573699141529254984333586382492314365728018143546454697863605178710000042631104768385394668800372316711781222820686384964186750505082219761708299823479468879983886401021295195658674961191948422377086080069538412564499945737292686775270118516324360284870586090557105088672814628807827451259199083053972071738972532203242161971598356934046923785200338636375409961904667079682566931563653849194945495685192042872166838136352943069818120432306117182822567196206874198532376015672016565879322458684001691324224450295317689929219060086018333464974588095219721695408769988923108704558052844181889008007693251348742371550368511506499329828355573014616463983088815771645980095990327423556674787762627766305363122399816048261923013703487419302174047256160318502037722953775825891336158305593027775344180843469296005674243488565960582789554378492057647016350052882650287710674086258555842548777591101730861729441371861611000834575158204282114312312112644302886835535507883361191048212490111475526859524478130076230094840002789533761297383612415102119234098907673016896704543010772780952537051103096075450850783820727075999354982783663609672103156971543877299146663856821770814145328375113295268725306904170230665171174719786996618366549824859653930434277865340496828567162827280831519360496870048896788143453057552320001060235581058328295739708636128157487259935867673292577562168374556017774420584179442588043450050347857815527254029019290416953383560340821067902101784869285959831806651225371154387972462574611280455385149172386599387769595966198371123670371206470827754339454345062527975348514078527876932681041535576880402257638428070121540893858954157543212457630260742994813846069472103066671968045780349765416310733502315810365049515860448900052630304085165423063611455264498189330510803529379386338613276422716278444271595982663487053740087499006387527676622039858355456152613072335041384064792549302281887308390865164489004541561938723211204466990310434769120712469549821909974761375847772274567324930797132375128224086416018080794012178624543075533268550268658133742231713272817964718023668211066985189346088415682312380710984896158946394112492338078868129934780595521766336519039436507509251552193149046354112235534511986596448652485304238510450885496441777999176793386409860823410790917789775570287716327602539470561021089211243602667258361156312906450928807176436601509195810775475106041064376466034477854006389083119094320805074609198034385951540317485543868052921126779845602744710881830939490887235255161607263097151059868726797300708683296574435421640075702050358830583970028449452922382246904983202528900731879412742052744353338779446115582171628868225241501706323359408138197890129285761613627495848984083187479651930219748518623994829551931788384513538390118410877647225846667095314778806547209338421677852684243149121814301894578000529455090469972619453447218580019540857781305092003159470859671421254307785755571552882024812698076949516218091401813803725731006326326198427687730398530223600043493895225323027053592869575768192572612572271681008317102853465920693515169734580943197886321411595240771602848964240999023824505715597186551694280576323349760101770179880670431653674837497511979119510121458724264524973487569241231773261227430789843005027608649887055829086922185258645008105486750117804088288387302867401698982226502827886409467944232671987459900073730194849983916153722485353032917177226450581214401143526222252228008653617657031706813950768465158518517616200024817063401739457732543660412276233314836424744724601541704555997513857282404680957281453070317660419900631970826698813391554003937042637912177828507336750784047340523605216688185530833966816484212484047138364358719496817178591412167104020611631712609559105011821745665542528375839569005510441068072114698796979991374099351333445056907220345605430838734191775211849123848889766979565837584051614021218058980835125775304251076707083971002328821962072514826475900503028262277050309500233543259845358421912547837715940451292304911508479239557434432176479276182152876261932839031259422895969207442197198301733781532103857108055131588851843159070518349805022204329494681878760307365341938604821802425268096316691599033940397362770891586121083877980397655201157981164416214083161158405361688295684047917474367362689883027538341898335633237826757003031604034942757951285216057417670936710465743063951131487252734835673786364837276103339573265196110533834044501560013014332146742314391624801479936926444304773991351537990451741817314894495910811923835827535389115944027912007632802861828705749011500799500006825961855865879343771937556530626974128376183329460380782214101376645977144116513258453644089415383399729363382127284487527535837046244757992591012426352639882733495806554482549787704177129001842077916029232369771075254316917208685827328768552968901108170112854781628377685789649378513376220829125042911081030921148367956057524802041369422629246292824899563720699359365044999348282705111650674905818116955897337916809509267210354681037680146386360931637590165378962423748634881172006509955920849741528667281304454753616610144508952080126000502905417606884653577670348423543441513953584015841020438690765689725017054953366276975425334921622234687734484857749682614590933740297036241593629885768125910214275584999527352059649447772366240832629779889209657336811372274947357331855356287678043884455722724993053797027467358426402272240945156583783371785808501015710695649439904757440460388687534018961917973263665347570475580312985734894324958064461199075475354794040718486648103957311564729533617960255747367630057657961496289240678925869154343316398563830416594832340091279410685945206768828803195222688414910460416993632248833348461212254041779689189799075094459946874152514394287241247381695294734076327503871894575248842280643304581539083805038236099513511024915852028702486822941739138835607642726676836449536302568015337234138279944905603461219961597980147931694847051535347080924512102202365929432741729417153432201367702765636936148085255793107045322400370986995781080760048656098905338112885098064181421416842946357685274015440630411130200693390817033231076144487682848834938640914519058132932116716662609527964928711731923054221760296864089317511096423349356099344719350196184772619839798352430054531698991925343738601709782194437284870187799905349797093804641047881985657862438531804725769280163417788830201590951625381655101510722983620603026232938249591635295324893200600083218309983836200451510982206210607543258644480197961380019112575611684039834493075376542248808475986476582530407537298138996591470999273037704651223049817952247992480290141696194733142223706679842011602173118062639349001254224089178034004362588617042725445345982064447556277648852070990354127260077764275653248010764811612973548768705476481103037918068769956099816719652284527437479897535483032868659732408532004042208754450499070626472174683747466149217842130158663220281039731179172041236159222441941503586828908358420857967837643521806369003794307663217533187120860217080490489890061032370807536195362174956829650686778963046335167830763242742685609255780970301676376222124061553332779365822853936731599648944968021126524837819758745374414482984212066710968675841726013555185498488585560891215434746272556343032780271059532187732050890334381136530212743509690034806537819365639608868610515995294851502220451285351298103147641627479840186964421711323043213882757207570285322989248541722403064787344035441258045344728274117106308238816914240628525594435139635230075059362303667262632392391807765715987822083644096473238799660662130273112692553433910481790493388262069902388231859740742634671550882384092277576491276058608492966848068794069548575975098734039106179271476096186990989498851368222764189557481841203223353674228391934073527613796864356798549648403156882842017491135255207157635019256276433040258746336687284413977332529748149694610310369191938930041332871209059902223956760358586674479703207108826580564917926606204901811882056351252735669281584640218095529821454351891307921707328316337408335761637432611921194022219117045255445825738866811112351856688798658111894325877867130094214137645269469364410896121634432283690476991811906611379378536356552222321948804135821798447916589621070385029337472342748580925371699021032130564541622517327042678089797885392438889439138817887803829436955147350607593271797699055328983522524130699036645241288117228264310917428287444413786076463767148294081023446325591727424998750447861218215558007913896883915455901784854063966603151521745653149746178763910231846604589117014622891699832781471278051478794518340808194843431310435529614444300554281389121493072906638749869230759124292312436103524284712800961511480187274607235786327698316969594498748882473588068268973313562644298913655791015113834409132390082542135777740892583391926605218203731904170272972161674243095274560418674433464213750612126807259345266248257416832134517435076173794661147520835744688120092002673182825948234176695112014319848878291495211167109486796256725652753474292275409867933777863414611767768475672620687721599797266991217062453346300688343708888584434335065769643788947751843908258338263422503978753851624221341457235934251846156694772249593920831394599906920678945000081435365973290573765584023935230059622915344455992988833863862992547808719896819432203268916225955863879416827888945615447893407861291196519911881198058799562612970760603497622829723344915778286303030727840581907418689369706115777474925485964538743893081081999804599592438094831944740921601729732169713496290785893152803367266600123462896352035403612583343691004896284023220770361405830288679345522500494121684516363409881586229893182548858958326908640874354068910316539272897951351981093672550851710437998508891046988478215045790783025852947341971328631114507686713826867341445921052587180712479176030016438240336282962737984010399918869252727212066022731294711910515983755820581899666169228707583148512446393233400592444080422904325881838254658980596158266088504750537597388635578236757335193739834953704298919114904473604892361584531903450895582395833861218230090230506418263315370828461279331024133986174717507409497764752147883500179770550276431242346177009471401873724457660420388225038915967226984475023042454940332524187682608019524950787678829717007634202004520257337214248539343411778300517740560596076406091522025655472023295094580624189574931672176172852197270121452266940429252425043787673163534945082885115697752584085706282129654070392554215331658994113490768598371166090633800612238820958938695313106921878493395674006887157423273289342234990888363610623813844248329719817773543522120799311873300945763346601451947138402137173214753827428217662920928590506929629862943921696726727522719252744006415424993893320642577471857791167488463652855415696490653028835094458234421484581090518705101629887402324482972114475737510233858161194613386869278606225024303198280295675341608686507838824937122118124843708414661176968788329789119017844139644965966810357078622793112678525094138707362482371042781935515024666470820010894823242774914410019653368795497787165694638694548318374385671135536738019051727031705507956740228735561555837817211225887782633304769636253962039501311884594634306852462623582183675520572045615242349207512139653001584176749417717837728103954951866325990823904925467218352508646906318625706791078311578979860359971878813881417817294894930296925089479126775467780794629272813333599273181747178633890807062237744353118665100176387783035064383568898274775930534230253091565962821079472337000074392163696309050817370139843658546901007956045078951001294221833615024369537537949858794814759925709184043471626784077608578518917399626665031456692588247330512843029930152452746838627115427523369148436850148579361009574282330419919801983312964935284541411781198374196248504523463071451171456063606900728820551221579461718469850381207289619045698769669258009133500453194148598118722742446291913582499960763571534209399970777487476316170191280326928406563894157842466208702222486945675081040406186573657604761489732886829047498428139838364012854490263059758893154402159985913012486522376487752349548136249516373598221642654798984052975401292161261601376269084427590169479372869527998366937515222345793493927206158620073545146085692358134831436324237179809165933961868707574319906971337998401907248459582662035874962068397875083963126000346236913988103718146540489387748684946292513509314928076192246908491151175688915642442799886101887572111042281142939021652494506216659371486867635572572484022709878596122687725048010295532969527366420769665212313031012064796210665141052539158508738743369707480648142777426663381633185810827942181185347051829660225193464348849178206477147228620954169330158263455341854341274379673346778227318986611332372142625905452951330162692050092043157307776521780032321686775891939046353525731386689444323998704325078405140095892424259143709312199959403195342461903327501775431055182593536090968902928512893959162892951389026500470739980806951079630756528839547370815534339111279613152615602113516809481861014595179254047792258763969705103023992201210377213254900213674511654354216893509767730280085544657171400147143147712108587775878198689714615088470103055985589234397966918700963504641134770925444854336300034041952796186079075984550238718758163031402327442933237570415140705320608233097091003307998727699395507685373076278068879936382900976222869655214337992513406052680668373195563235001856593771234636164702191496257599991973949472124909587411280220603572314599178445468073996037233728576656005875299542098611838746755721216597016811090409716325608618285966209659325836714106596718799406957092002030722063640322965267549753655348864923370257943944645046103365256671569851351237509317672149033785115471459726312871341406976835375575746570961824229295437439020635483970114601245160212371990639376502847205524897185059841622590688201582723121146135378435407063193478147495423380591351962107862169522966594028718702645488228446703935553605691637249617245879475948877088181686389508133147414967882831587230655602657242709789026972227267414361609490959691794714035964225384130830142819303617713172623396074757862287405458898469601142579186168599837639622089872839049451363202037341412202781048181155806317667628482536927772075657223469241344179416545757032601275110560303377315035270256308909784232051833751844683417104207825918854370400533539002289741439222815471981610785944310196270368488108885889767728699318686512062247329566109744505830356613588236348347843092826260089592389122746399498013566942995636148688538114863072669736999746796025054080468912150809964777759229874273952270211836332057381166854187835461965246577495302315099833535573830155727517864517099749146502061073138761434634437322970817048846557861603125192199612506901651410885328790626113263811486694343766617271656569897350368422122786028546849270986633722771605478659362360181461834539826852306854898649026972054526699883662706103928936988649013938498610614061913783690577213424438027603004645213205333571220358469994478636559990435173012949205561730277521402624965568190674737789828848812133406443790055272162236875273269537254824742333718313638278743461833601164710362374046216997214980001498099545815758078343528182759730228493988185091110805731079850405005208609494390891709141604231978414554193563438821913744379420630954071915726165324148181186530515380667162669520160114789109790699418037962999923028800264173493100802662450638348329449062105175161676335379317912700622635342674060085755355673136374652001867438528640198381024840657278317761620960866777894609852173254834458385172403085727961282508670769881138095480276012430197829280873073974325695147943701703217225808308319573649040279255815483240991425063131146545963554444480345319840161214081943715747047770623983462089013360537624450095351758051264709966534787366918563685031275849716396274517027177368955710294897299656331962869094615476835470944689579165983174491571953556877445601209383714568460831261757555162485370065755348252376161021905761494467577125072050736299429184088728172720790614951277533923602445143865076557582161764029538772629124669184207578943205842205551021408185434987948656545366609690957187145562778358187457920899742711793973355368792285020867319171599212724031621378699819841309480868701560141555053702045818860442626032693315380420047268226965539631124757554597537743606391712924141796942490652342028768582538032296896252154832673387974391732220547847996763001271769304148842518415541822778574691842893838933829986993014895741894329566470901591724474483205124444507347175084026520061116811628459482685895088855742654313126564265958238980701043512538006108166765406286137462168443118207085970754127671343092842617817932769112268583264493915523681889882242701218510144926234917300743799862982939259693355245486015283410255932898634783741751049669329103988674121420163006299988903484399647080299860644575114086136137543173263090719045228883047779109560111927148235575397584788453829619672750516505711326474337580859756862696913659343682478387992700244340273445849485132743255480530433769013121483060414838513143494496247088575227979612832918454817823096952332301723804470373001904467292943394311427336149722552176756575432305288884566408201337476982159428650627156686907859577924023995130254884572243020198862664699684252613459029180409023642192928298127151153816124070180865484569538851732385535631805709630586097824137571361925662585976927210731684603206278875931497681903763561947201994822997988556823240312826721218051545996291682800971409215895565871628496840410462633981047032795223194964050247313125598636696200023384320307316649262762962306668310155134280397957276200096854461826125158953403643678309463935191209796892658218237485047013804769904891465280813757161350942469126065018743429768395178535908633345791267999876956913725469598787377372121136349234469945362736796865869663174394284582925477806782348155991768230837855922316819702538669665851295525146047889247179757814367529149816488797475825810854266255625490996989599472564628058112724712586319313056968948707670336599438385126502367873031718987044856564919910404679986698020655796047523442368542996499374504323411784620529932716237107334026275245595579002107422536736611751068628113311330983673795913589259563430037188246274426401895499470438659144453302989711087083971776621716621970421438996374847010871223999283528715019540516668104747968336472563024249841469527868480561730627879568656079283285235679193673022881248570118119472823468045695225680932285042021495676977271638262464275373001307907361177733147445907313014752857966646934195358554680363275605640290778141172322997417045443477437603920553641884330365330879710166180812174707079312479411073168728141092381852479939744306979567720333498405118737786744172278747166298559764577090770836096914737794054727584856897379427396388429890615578803049610587143099179449775143118356018133791319320285395485015895515614240022473140943215594616052273253875248975795394320476851708697798759853088273738560760741411744852039684363257848597385261869389805960494543316765854411640937463641204559912483334539828222821595930013224668322407212026999264986260486982390813751024202549361814845252545779704820127059461128568300538180622940882952879995603758766713597992212134500690984083560163293023557278924927662091975473518759195785278876782317004699421654604884087734245976153420252158556296672952629009211822702093439392722630018693659858279312776414563341995792382585441817691750319165520935904160738185052163650657008063510466607116376773060567697910830994787481086803381407495716455714310454780724621924810000204075007589287533819554466603381544546903716846553040196453251534686411635583858644487321407503225401022125460674946810581548289421059165959100390509275344981004332996289104783101381009685365745843650076459913633682136002401833547968085832916388281034241742099099040196209165807099480276041156129733327260879284926307254662662575885843380320289584081890499725632678026508510672591130996763923760176054366511109254127432212037357110153645789294352798347106424139708277038199651492956229184785467979328052868527968593257568774577470170724261131612363164286337938369425973279842021261810601007516414124463835953849567348053386642667252542664629730890083490212486636773256439125275472071843916521535070252583586993933081125118680737330180599504608450366172994769358950020511073227251115983155307386276474578900525077167743820454552178796610547810565210931844627026790256297224492455576172923011721700661448973885097872934309338101514981424630465396746619741647165452627266929512190294068017946711160134868190962590218946965293488776802851758590882584683879760248441708526811818415929721673977779557698383436548290108396549615109463250897900752843725978327203942313012406823207727715563516584848227135653950651443078718724273711561860781375495495580220157469429988622109803271282969432100886954804930906776613713457580997712278331957803821002179691027970413807765821243078132194897110269715065488063726816153329118462716866732204811530574032417840975873223038305850582533051485671241244573583828112534732343536195211417317575390322692477371587284750650895129881313407102479872041259609182247398601840156532205904638297366848081611267225351596766457071381328001656975076188899122956650827870847933626123892547915172946207805488488298401293246121266355797041645657208293127961099482115766469371840324578311544468777237965349913683858770778596941173901991191200928512139745467921472750169125573903617369278300786073969167375112593081979454083470618520777704606308162391964662231081685001234316100280959230886016942732402703084560052704583660737124122482639443064367841294716549100918148386625260730195311218233336658370718883475053666770075563468864023835662833397281229831718876100627900121328002332966507075559219167172063129431568762657157459746595949657503352181005338180859838113006915837305703275637856886117051896999902390290851373633571338561201990231356193455790908350102720677388476295402479206376896737315016376912829186759015577100897194704144082328169891937304570227829800820290592019427126629316604395758150084656896244947903682421757066277609499219577140670541984140956611442262386900882835949841447905901932859171393340953405762730967146200329172183955579333315291347110445603631251994009520866967445470013030570692938794205427479872925479776276775026718442901208577492038199177385186812556282704345374599005479717960886289248648196442409553398491972853702348327235051454479899528823034834123532734118774736197625647347587176990932726521224568773314413738178198504874878632962062203274475300916253423888606631465732457260817826301474812701144719092453954102407932876221678445293728830222919634202638634274501681070913801055810136190065701209217803291835118811874793202954067587214304432138703383179578565675677647097402398176504555460305381430737690377760603762229603824921684947626181141916884753525034860012744673520400854024758667304652986478765882396406374325956347442751181580590412299244357425758870243281520716472640262205642945063869460310709910357621214669165977800568297209300686076958661315111263641979918224350809590345361959974606189409940809045188854494409430207825920101485993231027346203867963371574065946880586026265270795739485356688281201655105104447954681873379026176673333634292943643401005179038769777684277859218571087862551558546572181092222491004549503580133358309882838242835146611662368406679432766979740835042861447798225041432506685047157789983883372310470019175744003600033185674510235759366037101381420208563375456321867954108246443993734030722387755488040666064311962951878746588578884771410215716798330001682438686892124876959179054551658448890913181938872227763328742416384479786486979590395029857733669678245689625828063369494928947621716533686374401832776799499306480303759426495202116476428488612023921109543681601392145529459998105680370230420360717260979261480485450775516713366329725525037734855684910009245689483116404783294765932095404590072257992518600477406134130823010727820211608608841564620794607609530098345224740671044612156360805326979259970298147858404511171212340086512053950028595084618355410552755886401068867956034341152098871651623635764614273852350623415541231200690459450488917017268415062875859694386097204480978807946003856259587807691294274117027783954591598936602526817374750959428222035733431594866674862602340827431405967786658917842080736739207258167122730196008214611367781849567024189200713875305319758776952052237474452335294056093981613137131292454532946836522623475827654742669490876371528761623276911395693518949352185824256546542947141638002242114660663758280044757530556073134704818805015488883404365992125580909349658666147129246161653936586343577500210752865181343916535050114377127407422638791605725773412246552404229419266053170853685339773023331796250190673726366330343411847644431014270706878145314189702669371604967516993508462691961633132616063513654486218774021391378529356197926364369357821884420166976914411584034853158533630710692733196199092674747383944145143468487202505539885953022411436146386088747040480262756059972442115103994456247623253523334636177477548182911851066923817259885542015421059912826319189912736653863888513015413243859930794346518118559832406967789022953470898178525252035488926262744193104901301189214671681595533315489758380584084391188387342740872164952958602209683635116540954684285450670858370545498779231341474277740534612377998952279607097854727622019840429034841498532785874258198047655618382122906777029418461777331559251992476427086403261096229435542157198018230605669675290226257244865979100716638940835438228690846985868147457403847506228846680283319917461725827356377134878421897726322353558523930298391192626138842769295703819982857268156960533899988203689059366221868017460595151310490309482212258371444044380043760237804027292529172675657442336358633663218291185223170343123025085113853770514125859175231432677794851481561987356057618716248299880871521429836917357490055110058534496284288744627788387009498947980182064838034862391203095152558901725851902684666822773073643029788779966413985650413542945808280765316822373991480998072540411899914175047619769509596092858779355394743879470449810304234335473202003982605501181507832071031245878878505980617561028701333204110704280811917935037580495299134745526304748807819248295734521785098782008128510550176967842316704155656585212346580937643156149188178930254326510349346491533263051496540531250688498127340795128031296001463677243752478159144917478164838430165008682404029568250157734929013719204986902688494301055318522997903249380415060698421269784746619003592087250783835656718908819808407083154217756517023571305838922772753513482714761066323244278276301309247062107854456691481058238031614165411330585090097168948838857183200260172671628025956211867375636745781037686202708707717927895293282095936677413576186770875868082414417033830978900967886094313365782436821722287713606094753469673245988013025840768723150801685966375900420827959737072707979828902328104749633868002421297926796507317719102017326119722439771166843135844496139157847836491641997460203057387581834557205003830091038175420905079895168027346580352410961407064501754571202356388735981638557757406768171858546382370128189503958202204559320210435997958964148689776065433633831991381567818925459943950309877975412297322220386310686762636393237378199778263436192447099205564529761863203171188295822139128627124499127417431591522804274448761139907011370389988468911832501773265882544223500533161182398161145995985846670800059942912511961859666990389255977348484614234361615422683109120472033092960815595532462785468570149977360439368327978594223585016006628604219202638348579176255122028784338457756243910528005946464367122920583992540837481633955770801787617600213467995881768775493268999850724396034715933389179629290133831272653165732656247717002704924323685635346738511090323341860757119420074192464635294075884070890281890161809917834962957999541963282935301785051959605408494765759093729018853239884999614998280926417197217039503943382741012654116143911173022311188997120964562507966877436291211403655239686216056136798736666247693787581863679428023823885123013065965076425808965263562383914526861412967363000244255142399761884125714730032526456532369449647478256490389168273713188257536185655787427592758151872115684903863677198063501244358471879760499598061517091480562426036298563800984668291805590606045273415273294736854396567202183672920452307377077142602542991104913489735723022179664614858369516296446860993798311019958387407601168329296993331929822425286002782032077773239953630456730231543689858229121683722583247058419975940151185071538616965734042352599475299512457290009342260028223743768987719258884486826822796700085812977126266446068134714293873639245089967396169488338129627276687374839920312980052662174601232181421514256931358271387896024099462525970411493259322269153922985127316889746393971011275472049042898986797384152483365457892541937052468268554397466317036286521029421562585828694719926807550235876650090800428494106695655761170895717883521493004236545619997041358890126031019313373592144578600393187937716522379790378863131113192137150887358689739509426924338866932443336939752891044221328159112810579969306336096326655291885523820590843927926309901839086788160154129256018959504551682174291876806414031679312331455373108534274171308865387223998984601160369664265828102006939262710890852091041230412340350392994566981646314276614564230154389351796921744438659492991429313128136407265305526994789202139336566309486655394095037382462952624211784837656892497706235063237887894392274120692415559610334477325892801514732895621807464156454668959573769528983881554188959841867603446651705252834177975392699155619543427990289179618857906190581699163128410399276623973971905384158896934978530321970118712033559025065844597314845101695518057783628147927745895799257635591159706612449906034608633899200185309497182184113776061443940978183669299996782041363809039275109999192578623302391781041007031100972834781263124507008556770673198616531037428316372663266210670536394822896260531183787195711602790596970221538821928985911904115418655110419636486753058119508552638962617753562971372679037109335456834296921177723410375946414630590110495090166588999068015264224914364818535921112501402510699146365007774063342037539041671069771321222436739034937228073516032875176448661454089503703194533050544974505445572014827923218636226995639184848514717247629526899524539078183655029801519344628344227314302458269287351203229209091982239456927499580428492759941317889479924465056431841340910873972735478255059193263326040979007015419688696354440129591723124963706936683411665113609946263256031025558514248376897829065087304565835754693277649100073646383715505954835732501836838912715283182324119805563544287213576232683349590348559790483507561741209929896076975941210739080439186382816636967129737222532583188601263653668269721388436041450560228301256081542486805759002147093025590389698448670132145615604800585333953371502694869763583508187981342638096347402273568307081629903600464163409557384471620258759737795893368169200305299183788994293859170267043556174562307104483198450077869241641432006852565008803264117268041205353776160671090458139808028168222734027107239740067874457617310435506116615056889895714001624151747312567114498000948299866161061037706915245473305197611257846932857952313271018434516493657449198548780033542476005037026353024180444050657117503277465060630254324500326047002126683548619869332343632978020804600567093675961183278714318881807529100910312327981391623164816404884550479275273366744004353329237630029007275472381695643479480621188817179045772937262612004469654554018555312760261565036660663942313903019959192742421479380943684830297138736319331087028768934420063325620623228857227455599754228639433298749519045409843248150985536209192458590562977629673201557958398645468880249837144296335582174446456207617441638003868609679881497404496741499625354921891528170570457850930299283139139257295112874351295042645837826813283914379004116397992954130512699660199756630295543019485218931825728979559126911562642241465809243394928553272246113511753853087300947118231752054544013039979370577315194147674929719298968611389594756977882314508355231187614871053240152916489515315251091811346440982194415393268316010389080036512087655119011975019935015434933914610107449065590133046306512075004190303914323865161068884612496723371340515942509927607322402445944706381595472527935615570651114175825224868182488756870758493300913808424764363184147534062305500499004198576764824080426196530860557384390347310880958425399303593875063143196916782397135474567543714306800433943987886140783712621650312188139426824606502574690415829133649257718063984978693452416419998219932787155006373232996243400008349934104983963079526254967246050951263301692577272648789009224893225826300959266798561174263797656700677754339589905980730451092069254093769675199651610771104063717571420969345616715109002739908310930317937089824034226277523310608201339117701495607136051501352750638772661378026057860641598882740269981234310045157954059191647003139342487029580042924626220112558734292885225686047536069616759298023152527714241275940542708014643635869378153371012430113536152700592253712703217036545392088590725577124996924346513521602587422778225736309337831542213875474594439444433276625132704797643748312729627338189882275952950177441691368908664277391750053698664093592394322339711970338222389579826963190448183289419623611450755907483670471200534785669338842165418387405129515781157570592251599611769628874353367459799776841710103345667407586323273533992649614610577681520825600532131067991262006302827179058723167023988328757523977096004439806288739829065308285311392546191833745572114564355587448296997217011926437817837649942651819154234715308216269675983419078516336338105807968703694766601085534418203202180732913783668844990421858661178518390615959027805858893270665875204559003235171228163031258545822560925312252757547664591902075539448899225307111471558246734918283785357931958019654114545454553098519522190565817497927742122523822259292064469963844090846655180388340112977089564347513110081388374004879113410083950295543816908383610636776045401373224487911150402363804650055764325583731680815233287356551088916263038441901673216175304172108120506904770390629043900988011955443167675091196872567177314420822717317686625187867731122188863790542465527698056205048947634211705764808110350779831729437182691168194872072002774098661564065152543940555689207211004761222819140372581450120945831957971492314835686921855766275218622582563111643623107307180565479855620210224825032554916576027043888763050388627668141459874169099627411462602625323477372564190643010579780382172644113500870707740487050698647125392880561610867315816113111534811192479520457327895280935728110136022281705796974204592764104445062689411672034755881688897428634467950325937888978723136538745808178715943780531869190384590931750970124230611424522775604135375846848066329395214876656440633598101516437456472227943205578856942624479866102001375725960104461425092093163332979524913545942861559271493304200388825029088685964701760150926687965820428762299920201384007930999429659137367307450528252421696532405215383090563915732879365450265848718116322057829198360127746867761034468400260656279547398568617156792391471490566918088218812417394918999051556285200877772283244892917349404013011108331825803726190733879571008817149612636230761586322486744667764978736935060414053481680120950126121301702356594766092806766110887340289495889078661719093135669081904053311671203266672881966320743798394651781717449531500349840131278223010854674613344748888377166171820556528061571428772582436071725878006176516891369565391488509890037232015041798675025459693907865672886990422668880485365078451916215000431933372710305126858438836117425471330722213031179035833493383799498060143056828141279048687463895761858043036070708085915765380387448946395684765543713073487536060318556338652433920261970308695363116644801969402107397082156080958880285690700774365459688145143437279156600747436231611932528260689423643150611197130057636495082937817186352333894478121682367967512586045863183008263555705665766028132106134106379920766417346699676964326519467819016749696706210550562255503946561471500055339391664347547102581368424407288609721410959387131997544562370487884862376723540388925912588561740511429351493155187172724706754693604201611052125128086476962192686158712965399760396312071410768585693892458567852766382138510439171003233527769370802493611389439839076851254495912712652912727251554652392557083262663484168764365122427683949237889187223833449775384780048257282629384770405051295961908491308607768835879224710954106105610624204944124494456115805356844819055167269235447392501381887289246589459492778115504640244330800575991182296567423619806399156954343706015249478937141417234180127947012603580709515543702574691253873286024598111887615398085325641491323203798860389904526914194194292579683758886285040586392973690936400837882453030960971538467403421219190594896403630894913151629096973623521296556099932871583222898074554283981657158612445786334239827354184955698263206194513392323163631339416017301102274022293491848678424381165962265010112276707485462428292316810244821618742419901985530363335763334251364133927993976939006724007465079869744052611881249495616934655700071058571721020870245309736855388595620339784803302967605935689264886983330404061076545759549625183993728800754405193073197603790721831984716052915365350556850519591509335688365846158438807436815456589707739880228511141410922421182839833396630964441420277103656986616810024581420506347250430084696915595837979871150128297970423049821497614668457810180817573401047185454305952604649668751181497871165986381778523438683676301459470363993403776487978872931713640577332878578592520228515117453539034103179487648351988869561362581973302664148337847002432630550102011755093183341404350990975706075221315141895553979450740407185403983839972836639211764097562414718836118335321079072400984489118743957804631733630786701694823146138629154543780681097507717172027714960473860322719526216660302146962166794814765455790378033282921036270489198785912967590012564936152742278397121302496081751841935112963094462417426538281675137775940048630774185920706007083155799845345459524835935158280373091092195690379115960252219221550079898922994877439450517993663109450640276142983230773496850990772583525225382826808543120891727202613209051260572403942783062232485140601851011770120557528868546535284949547279046353935612885841376733652306377119146311468013857955842189290841669550521354374449348871107655684323134855146430655074372208351289257958757407762258542666200064904823100735400987268966068492286952647508478937990443061378027008534978262586267020420756167203944114667086378550372765227144156886660771828951414736375415727622610560733741729013892840116649654434731881335847671851751752234097540008212346563187983297750105831439195868517656350820194109144550908580912871577936192260146426291870088764169590277754023380285878107483170728618301023830899619624985021761968774013128272503344180511751474466173021499115980298143561240912130285396284042716843615217699280526651691610649661154646184403439696237282133123502229538714434612323172802610397666562134257841890445171750105056141911792891681818926008478032047544532632662503278070329909034795984112353877139552368037852483919382160694768464468940381553644171101391037162425032225289578883281693775194265586479589731544281216046376203363963626618812827872472442811205445941194671022068688637640440587973322618917673679539586200562644968594381689829722708909907880978038778225203905745589798733125276497133066643589807368764846623541148511667733732633065672652783180342539869517984128437488167127301952238477445271332760193999713968118186908253824889186976574170741213847520430417469031271929865055058933824449077711350253666416101787397501866859298526761922037284422594324483121965238477527233810549387289900228101087239069584728783986528241504846729978229622963121423560424170618067069723946230612643863065689115114375992180947518002361961354009689519498170533338126403891614137572332101531740870612404870991096066536716714373875401532291542905811669636333095902005454990714081592526728855562757919215759398730987902773764909705476504991592162072734332556405935424483405208207737230670358085120140394291004258414582824250516861212025700775574056858032069623852691729332133369717063190727708670020493931791867014855452475855277537581567126871684726142946066692764946168571093444463563428106917311239317655835617961510348271672871017752252381034912170566589269840365015329614131363082950611436828320780865828683847743640858571494051668817949850631143471753810412869141491404290542260937664973106805262701155803847373803316262763714984846771556008330053639588026071054026874488726867337359173004460885408817193971941648455694751088033712926912372071374084948246794642633476807652911740237113610333463573526717410714035093647134967317411681054761195770040467762753325797620685893853322635289739337516807776212893472321861019557376360856103309345383852678192368983161940082257199967776772237407688318180583114363739917098022243491359900647358589040977272258194394680459637235349614460350090466353468884078984219508330583981350696062638960239769704234739783190409184869689032999793924411619711609814870388511748799565479457322553173870563228683739303783179889782332174693635634977885345123290781809822816238415395079835743324146923857090836960822126632250723666467853263749200601763360883132768159722219236269561304531502548167481568300932134806943034565140274113603733672062073795988598354553770485347178818031475112008599994687595760560779514512826037649051960922290829659301642903806357683344616584401535566159372324250627706458236794581805074814159070969964523777295955496291672125824605923158409163998188011700226640655744044469976802485040088448203762758913016919168968681128176767072859357298053051711977488118113065274386731749879445040015590481383104635926022712933911345934961853229459647910002833110467791163173525940163434133765914370086477194270838363838297541671072416551160134007808966852112730706319397961645081020708482994306515327482533882668582300191880157274754471580192171369820666463834641701057367296271873106264370248289660416192672869159975316748762888456178714428691479158405992348574690108232661751418431786467980487993788912449901054145169738250024535921860317314747372561750413535032963476632234395164933715335768304987939692791719751098985055342135601993083001730030938318569825849164321875087245060975073006451409409178345289479774905128432337352376578161038547408014953026812210519124640763696156153529497403592572523526336617813293536455089038332134360474782757942378388131067698991772259960248339780005285970830843097663123506459228237922949216688622555591587322689135858500519064767963777934232445229835548109243978607253902574210733160060086693372573571181560559157148072773429078516254874618988400002986939445910256227416756516198091513348644231217127521923333585544939059304795394020873581209701969577790561482711264905238143087956065441656188562628308388225885415752198323873041183384536748910068621963980980154467667411914807544964527231935940681310295488163121099159694845172031976420747289620600914415505660208604167379359699526083444301206703437919109681010280370159311418752011603253780820394303487166200123057230069706953119389037331585197347781001693393309651699104433351168447805530662332086913124058690678923959985758696615784704878748492858675935170114535538308920495758399309979627408712880160156072026782896535075327675510870718319988746343423161624135357845565623674030095189394264198399451467085414269999853759954485287328252096522268135306231540029484501575860852693320013183671245562215016577807367199097828582855587372713193843971414711427000106409757411797448316764581124741188321613952689933651379091899219184048718713017735360930187365866058073875865040786334710631159339584185270564238858788148236033125064040448421900471526741249535732867775807842385156600247708781420678045525596214732049865443064689666494793761125918964317830442497829704534430041494626082322235008517067946475092890813888136890025291134628689741509178371886662315955950199680303300409980494459382867257424837929114653022707986313232697394924686418717233389933670843545057058974721251707477517127281180529927661292875746947876189969015226897737787348073475673585463222751423617276008973406267013257678878628960392712208529271897063901155145518197926396361447664451653908966355082405623807287523834282891143448934865176996562495238885133761993052786676015575847673304864858115123430149372203625792290318918092644989516534469332684168734522906142778641496836615657747661329813754661300585917126164735032285367685556145573049231909137576334825816846268156931226308049702520024670997599906142955400096736545611883354191486166270692081294252903859361956858327627658310796544178683147098520431164500365538786436559187660822907099752201738580591434399463291295031658924069875136011315545269418794321754754906406620265907920406014348459848824337534538959737375998682803472219820898420486007275639322204732298083974990122664759474168158424077359617685097036994446417609790715777616657873210508063219638888831263068338395196192041935183239241195277483720521200633631270221686085878722193757823602872220691375177128473198323945287144344706369602491257046942323570418331085541703178275266588485863479561373558998860201335434073843251672516742511560958970798622684870017158525146911406683714517933996310981934610257748418556236428915992226952701806397088802509089199503717882160108622091695502459780271034916350105810808839146390619540380529363824962014212437652556991525579076165230511291313136938470040368498402809356826232205662461457034898752081761764101666375783999243939610098498619486846582766811689066764377114088061199890093682205422250725450128082541375179948192960528335397295010794620388407219871714123783280580663962277570289986259295442190596046089070437586491669197679099722359938226729557811592335095878546587200495283298670886735031366626138910887785267204674162391909947250814563009080816649250324272553053335722768510242650478877881314405433244489752216251155007756705858738560717622509078718669157830193584842460718105642081392761194299734795952246101074615590496330341018826077200833186302364254837446941506766446541120386594950929306156630972094599036099930363608112843341626615405843479727472089339721760950819739523973215218948547804962125427602133751685201759131926960515608161379436804822073749468330607174110626455774600630223689932122957534916381221302727821738219778193520195489860311852937438080655935170595958802476577220779654953304200060678762628537648984247950345809584329191737116714167207594649227123255566952637600451138622241529971701378707635906543224831447816345580483290561514548496723678968459603493241331002442812579070050844292749027116898075514332123079124811969494946994215052913184979332673826007472114080941545549519533052088436023499269998183769065234503432071468294286909454279204937665755679396527286681661199854524591870763598254372655117194981208994578031364474238805499462384037937456858973132505047216154741392425445051393017792756349406972167480190693088680621695732799864375629046611710793084771095039161062523819712702170933957624137048263811190832059712701971638755797466180991083168425774294308851285949270920678004811368776085299363107006298504895883829715420481422238540124944919972320771049081394655450257725955745163204643316879792799947009823932908230866841746522641252034853871118342571243174721852700398204579975242913009440537689586244207116301252550092189276895045647915162122690047282576679365988839914590477019653395840127454782129341533129089600651818142684902311523183591606025163738052980543041743016072828115570667394716765656326543752307553950796758362953292220802825477563371611423614453242165794063075281713260011722613726474311840626137517417736440230272266446861402492627868418396717229161548585744515939143740552841132561342728944357146232928856010645127450561828003842066765842574184148357986896061879658824014338373911370599551899169029123668901727704402520630618800370481971635976233886511535237467532044470098563665291973165472543633892735609437011154757723295237422495987274734701925234303713893482922168479475107903632051926827305110748408368037090167235473713641842352760492865630917513260851785730853104642111133824032593015587481871258345239845780585156819741606423437022691539120927816516492796880007144037449088969925277383944674988234394711523369580663210484924103178746427819095093736111169256605979236332890545065283126566158401025732304357992782402701304710131928384173189700466163925521582192330203727921793482200750887748283138832926133420408202809483930311131055572726867266520483750906473157238028312081274105011291144903584066409608037185576017850387573797413086754459008694081679277431635624880266531151829495642329332575512391320041104880642389747622825917389205771517595230734518242387706755046702336927689611878764088359961788592095555582977776121668991508605362370653780935470242458438071470568034997552782008590922566538314542576044887589441953585997832481655457592596139963007360789517597159694804320576366386002423114128488156973558626585728192984842043303867332524690931111265222993122062517089676867195254889982487726945022046854654549382657675348469223324710947164930120492773747661093537328469498261026041992279117272666270515309681895987548240090707195234222663724057112470195642512862067340258273352407388073329408928492166116013712085472329581514515876720007381766340251232001749490681095547863723047841030711512742442951629149911771559545008531656350792529566007028932157512699969742382267685204839024771630163725000336407351672133226250153212588284393687436184459137451490174334575632916306695036464714468746077482531244141668319696891183901926044768947588803912996020154516180277631459093759687132689738615271034119712023846381415625623469000152604382622855973730701206190099038317749133829781109912041813452217112432421962280506464887265968644499299754945179839410675520462647468486737111105688229763772575265973240059230992430871443516226259631600897394392565442748142185707184700568705212213099699607288991508344844174237283976238092721871685190656778052524418684832991206087833232195241853252648346459229057496425419571072415220483814420390725413090341225726431454772659250938127571744049920712637345228509006432888740112272562849448123290882130615824004500998131731610293020807631364153486607902412038805506031985212296365497638820864723635223103887534270616955472748088647581122855363959212351634054764819518592511119561925766499392999786222215241700403250508021447966807731300621871706720710796193601558834253648809524358534402542959877258159215765000235341475029744388124000675765039653413918955054656846832484450390413700687486525393375088187215510493670891197628065710241890752945142969671648069183834222409707931178316402762166031082365204471210009658837936471707239419218371812187952645118934996153261667022463429585493403848810878872061617858422483536010083607224811021560980732924822785839308493490965672476539186135468032015786333947356838351545001002327638849655273484028470894993947716324984895901761500758975386619233505517885561479147869501587558385248180207181914416389469745981579525819507391981023823134335319392770500028809529071928915541011481896597026179915660174658438669670703262082209012320207743939227718455632306422712905777486310788657978880333012593965160698428152709578262972846496425876665521372033642018975691548901192835171657693217749863803630569831145531547173464843853556552648743725202922240549562704829160475136759730135842136407348962647362813517530333478313629450374458505117967756789946322013835556188985335093944110956870903812605684146688627791976221306686363543146693578334583682783698917919393893966767014179399900379756730928453536518549597856701330241491518015136969044304168669356428786582173106080617481848197633033555975359016911045960293584723844372927715031966111342539585973022136517139452672175453136534201108683042270745940923537009570665054689075135045976886563694909848615402032052484965162737252134506696052198429052537139028101293084493890339772260010990505434012474989933782156177846751127056836927774375574254661972669975386122401888160313230027468360524347499994374578464197053614275423939829021019630227031472852321050122180768318960605389936888286057435852074299550319254459745905660548556417621949497758961842809464565981548266753883928934202633904983745144750313646431587765824382867720867877760619456717275979161987626698695314960648630925085882280740832048911169049369514646999296077512876377507000164652326265593832978736200642667386019427215683967011202669545675706408022074800261655658013195890530015410382629629577437385999817261853728738356376176903132634955562112972307331395979083515767301172067470939304820029957940114124397847139794668341271475343100360213863128516870360233075255234900607015336490483097407984280854452289724461440913457609627463229488685270555803566250888604465000238701248988412437211900223745911274733657157255968786850381405251417256902866320254457031412688720845928717511397634480013356394773420906519663057355094426570118607662279807019034457731153139128190008142414719100006823414970704006167033196860990834923284087878735483637727704346549178808799970774144590101555688185079700004382085107598060996102204129979992452591010207381350399027347895343660064979343733145695695650855330851330860396378339935927279358141113737247741149229730920380956183064358555624507269994749909017508139396853958380727311607488310429383324639264693576975384882128331075617701875296792844105715449903480546104585105463410997754299867917647031915323059988420091001495653993636504734590443127817298951182087012908894645839302301949939293439683526869421078209497511506764559996441918568692785058709790007296649402095694864581472700147874766260518930549764561590876490660836910428988915647111675973710621367188980851968220406720144086040606150406624621016267933046951241738041213162346764936900993230145787895404081177376469907194392903886187979758946418169169904165247675988773727028653336431852290942205240551526295337531202791208761233516368695156375571354028222332565363390257487176413367516741909798089939360230360115520779218222303844051889298207321733892565850391634133778424501467648883731213504014613887191782398915508443551562606519817148856784436943103371249021959552543650672769698858202364345597517391019439869929720005552745367587318507276386386193754791338146007305267085985447608503864932975258779014674670598435976643839463518989781558306617700039353984851472483226943068747644362345521520068774245427308674681243070618102598969457216152350104156459778295559150512616380799097602223549882795068091651895600193233247865560873777378614110072735361715060195136235725068206454368949601583977610147254656654590228371361493344635276840769936021145751520959141842479346977928881072673910983561381407937554161758667108888539750980233001196726384366358257430384025921423831192982254418012528641916940205309472781771455778908000484689215281175516622286311263427260029063278764412171858325500393418583802494931758545927292143150278633729100927300713812384727403379842257115158027621987467803057935103613948490741639919130159799187329807370477634471850672620568903149477001333777565524881265680806094551543601891125504153367444362790713946730059423990903211227007784861526071869298420449329422782851339967930555763040074007855663353539564454431925858360829719249747910041583493125120668144115838492184268991548461601780155406132372756236560010746914337002420845328916189787623888589525413563594391511181508829955463585137386131410206265067349852377471060134652957709487489421810316481365903259966349242210152325336083741693686284614095441765713773043290399219385105452303686243755950054596430811312888362211017210203004687186995594714435596733373936927440344153799251701476819092782031307498109153070775878328842748550673026113118408313443867573675342962754629384920819743600954722537278580059641042550945914081865353647698650952655475988744401535300176445927553235814364356210844254688239500385496124888745632315535541262734085156371131583070227114579864516478549853683062743990404491283123482737217485261244969006845926356528901939336458569782028383118580971470138393584340143214792653658091874051196711236303183267089962559954548590417096479657998366777435641704905715797892636600792497644188714429371618178829053857745918692135307793620443741671624922464695306987620875786219926878595856894465465563858296421577409614749432552369448495524174781580361275852965936509749518722832631513118685875301817668146956895316947933248844698967776790792530902788388497940016340586761699059676981635601991515646255990916391053497904022746315660200786577878045329715662207861462324600105434946074319839191102205483986694081361307469505604266004121952778505683132014067268552505266922261309903571208665277872440521798575040276055902941192144098649922454942873107834970114114564476689378917174437515889827620532710246533264427198015404814419264318701146730895596546691515309884606072613383383711585757059779663588354683161310063252482564268325501626899907072642080572960012171819364774417830373734879689439334243652037401453249000472085989651161790966367763170473784477464129810178075528819036674813630117765374393252495997368878372338634695779513570063570639382248480912475978015303585100216627123958239312551312127857885453721298571830859797647866197401943623655334638954561063628267763946531471463227842442975392697816213813613873718502414238961586928255910967128498522030448995057456157093346942598654993696518565773857016150895053993074715195959499507205678807305101564899414031380893768383418799737153540252559654212940659532301406202874224548570772357556625225435688691091136714819171941640315851844565127927526564554799807154205957747432948830853247953741814010485861991042489430713201719207447322410436550991699494720353789393794579512438557290481572870308308370625914674037873512743576138297133043184164464418476617637970968932601843748184235455291900142884474657346077011528979516157364488168269969848771662254768426046589197140216897414036387936674533077531237582760288576079428664472107356685690022467649247640861501493313668646109223821693538205106751152969652106144344931148532406600714528432653904394114115019301469534042287360444896874083355748724310565765823790451414542205493799507993238606591187314093224543949730080672631253214126164115589017693951271223865752064690766798190667701508441777709442746223725698897753503986200251989765772514022873935128673680659231432519544457011899039880556618122109233900626676083000307621502227305102931257968101438871653729999263415992574844639424005872204957277031912537181673590975447189100645927666140255198569517651565854169239298294454471321284770013961136036587270312868360990835697546999140491754364029143927153903991738681960434238706927184223817505973260968860362545922662782320323826358164809274651957976183338077698573318475489154486273010697406534806814834163175525570819009258700853569473682199245066969110590438872148107179995195151539521565856475724890878707983169545911944172660139650845596601790318039566626264339310378224885416493833238420968195049811075452835547371237930612852938881862118515947450184581949855840874718491137011470793715783600434250737862847008102794350409072819128030157302607566600786932969638726139990927056614471442466878172238527594334841161253095739258894221881611851126844522758708394924641773962966173114978228514009147666140669250928482920975454179139374168603542162955054686293263459923970214106219766233031953977527383193999892602602725075330436065880828288636559697143833767416008858127166176541794409401098011939389237095847318119125755007781967425364203499539496315956743102936373876633576126322966226143875083192651254037352526349581373017504859683499128891125671387606623081558964260657725391059436966452581873338224551326427412802484636120489748063310071646738480092483767906392464643416488049870728955803465634961732439358398289612081597099474639090953677226095220629611562806035741570145644714615122467232149970244431154289590007788407958288277243784112822955020796140888171215348829280998933769980896515174149117283674588650217683728227863685252486509343846491715094634564111093529688672402299812100040427127345813556714712435641354609928201311659520135543516212147845331739780943042299454474264974440192613939396401145993502096875380463851759791989515059324766666643641084479232912166676404976705442336580299064836429829694452501610308261505456244404531856058756252323778261578616749001739466089287162611492359873815123565723986159833097823576685253142726804889427209866426135722422274557537713866536590488421121654571423441560404851434137376356181724734178673682539927552359138674251030685103734317387655830609482637534406271958115645605954613050267777128089191191933735310474520390438517026790432816294282122954910816308754232201248817932656427608980587765840158126872259379579498874608366058330543016120507724698165610965838085512977598844151063992261786206396659592203489746789185884524884838068794433129147623803450621394520517601412743743640853967894963197500008496813455572035087286227181365535403455571238261087411948874487880767980185740045247018535759373472952033801261095288353994413934336549178600344826311721032764044274777707270258585878355849330765668509801986969113540333552896302990595000929445260063570036136422587381854675268295848445927048800023924222480298008136359339411322078551902239483905031129232242249289369057471363235211294432844111698189732271087498935016778293158559930561264822664862796052545747890778339643657288413196673882964269839482938559297337165504319170952659032607467705303984014551483192495143849517769119956458854925702370650565299305197452332748634006811881792253935942986299147666894535885096524107312624328251601819822187770788286886920463441758953779770044348373203769911898079539417771431293212161135835149818538473133038767753301354928767423450999721465404410145626054380138549747859128544210450365595732854370780128427501086845577520185907736836582487084722127644662664337997202333460050218942626371098517947207392204370622249163643556432517363971637279963434869754270529604870115940125912680497889427189207162392258534461390706660145513072197136823493798673108743559264591049158694604648760030982056857508034897572352165189709875643599113617891031324735541783610906149841497245508533171623560812728150475287397949581650941824709849237567324966281281746902041355502089753953512051407881260175655892135010570329643728070121467353654587784280260404908064549718767986749380559003830096406757712554697646924790767966080438344151997826259436035005572477763739173084698746125712377834056526782524246079524690366340537248641634497216372160646835550929401400680855936278806421007690717117298639241283494227929860401935868357853729084524865860934382469048962395603095205103577809738055689128698450155431907339651695216543644373570839551026808026884473445199653961932912322363417768001701918130085411673712050311879067397975727914064080322316402914627372152451093616765729819575992299976877830021934915033813513161284084100842350552074130123265809735174529502333358546118758397007856478106698841332638349190414814188443050643120290482403564248875829848707616814427634671845561662853855811577079745998814823846475436542089598124925137795619309183371521704439026640793930065855526845408512571897908939366805083969746821658941787262737145624230298900063009926017091784122593702897351961567115095045515416254741762959218962447063516878792674097559677979255977469800343009338880163050028869631446490061075808017623332413084734852157599788734782190031200550955142711714604780890841716202641830187251647927985868802747307201633536415439365105146180624348429372676649266796582663947915704036227975697829905464707701254984697515619514523733414384032896530738096603753297930958638316120792989861996110390222447960069395105151870603241309255311370165850702873208512668042826044736394770923008854261990948438165701827646158572256286310984512970112745796926813243305963845621062299918287699258156653125815730205584745905528711599739077142721005383212812428612338829688803766014670334512425493739194454940833071835250357584362606409153278929287940149244824331740014098159522537996147763582354772589838642049437731470092302155388328771921802549732803882490940778289498415746824577301853534926881513987720334773232649641567681223671549564155841238136914933257722205851662022964913536390239321076655556672807934050505830375262387166618099108093451227268709098879287963498512957317646714056396988125544822518836754478535534843872072426327086708921127757129665298082859620093498556350575299647960954411096627324724586784601895955264676156316069966112359234956082023312393599661823312567261667726247571552013355862226632965457045214824353747139928391401797274435346364972139511865181943337123647635892823438519149082945909327644005423006648009117513012479863489140140907986838606372281627611275277062283980100379285398691762428023523600796142615906307438119620189287835057761049364374572134840515909917921686188240080616828501529051670917165005319350535858934620149804750485755083511787249321155210435975772224689674342945805073029986455640036326996142486221390954649089945622583487113749589958237333318626007174517010774758311038796897610719141886827018624913918568565030431681722984576892507194120270804496363737942367139332452808012583883293307746085213440224434588862139567242146358878519819306415907189244739589143902430064179636097621666018919859249713705422430037161711632986819438466047350919052223755889195604933184750902835013703544436755931718742196209581335870975782121740074646284087704317374277877643133673829475801422774704846825056483459929513233207741999958922633982475422825979322875212799372987856673655726368462852015518244645177193523414042659862550788563935498733253514866251935601343775048441519810598123575814234377503672150137614977499826513964767001864359303114043295441107263335711917526390784786167633367576845573757393807943847426171492666880134656126836440644129666387533343892764462884957745333096192108651117203927895262578767001375163710749617459829474039528850460126709767224905707292020162184823932714359836567600393102012296560790643402530510278164897015987060992224115878078964231764278015416976567493413837127531648936777952237956649354093742253345942454731669348540384664046841335711060204887685185552987657895445254908432687011218931270658922400809360003166663326370650012011825255952636705096511432659995304124827873666742395614879562219936973138162192199128863128412569985601187809604397586936247062294047526495863082143377677860302715706500301252587909236598406789961308846797964115120979209383791913798634496794952916704707319795477128304214939961172759460562382767108959622376052509484471809896960943647528309880473336673264972765058267469486697228465765639115522103444348879986415245892922846036627597635971411826184856653355666407479381432725532797532108163994884930838348629876493246811837500220087701570456010136817790359360159960725605771167065158470583084683242403474998070088595254795014525095870855559737686610113018394207814478026272241621575635001963896359385429429181368906029231024956808386206249687591919437487231619533163342009069017538092107002718416120449255205968131134108055051951286760391658278393692666066628625263898256062832086789103120938000080537148290195843041478523584525007562228455027587037376001715227430784533047838762703844640495431932558500939166545851672223136957673447755949634390591752920934708691889796299190816551054659262274948280931074721727123164806686345488678293383695321085724521780043347807609786971996306696069205660045337987383747216496794344386852621185276991770501491758404417946200988468713907344810477939768945765195837613361385344252145398889104786904284138726043565272173947307742505589263873634423686792123401360707794046756873247741565217466406357462990581776545815447474577962836297699141698137582789801989904492148621762401303187470364051675533008220054624615226033147877536873763049470514828156613509661114114945331936991687926068695560773074591308734727202336054575170889681889355481249092270249478420692233262927749986979705454339294288999127642379027132602429692299160152182567183417794989146993403060314847609158927801659320657895725741215941994719905032575129707201618923615664215816177921955090993620120080559529917915689001430226429989272089650518161957759148959836988965016288390119885479854012984820416738055462171250669607693642606449662176954735332662588648247448321271033907700825316860653781521780637041422284078238331211340670539295679186869862866835743626262803989150945623703342539664449009630400660517058776369223682221670316308823217104118523705616159765547284351787661719518692712783114185492654932930205142127534718090660548621344999459226210555371159680606497549708393263052437806911160523078701505695122979198729562894994861576568284709290024022916496825091199500622916638300908125092372065666599182994495701051171473696980662123385698056244465582799628121564869127425249735242621844977817843138958552231111829190685399509643055031023470912304994979962762082702587112310951100163946319787913474944348242726001529155154815789265521797674645391798252537114751328324041637802357520096408474078329469947983690712318556985539223230212423333474672600508458540175431312608366485999315223354424961518161848315080909723077763758058380355264808827808023085989847483109391376561904810787614794265841929144791096092883378473860512336425103684125776949497650146560087329436329638364973240208105067492965237471786142922209225197336469224312903575051712329472804738264969699889255743172948529282472203589774794426933888422780795221839854865884490652095251090238219575958765668193948074756800500382906744137716656519412348436957324050772181798216829277383385901078349586531734454380940322997872627927034629243401817957301929661745338181496763537630854420201204810696418546986447616901036086071405127350801473722507593361601010018335714153487276305274040308577959510055851163070134821697276304468921614232933273526638704491090493198746427493199567614821642820512401184106444534455499895857479682036912912621725883738496319113210109415238407550852797409345481899616436539585447555486770508279270242972572452608152921149239535842118047839656505024302520517183622126939773734660562349152501874967659600761783931750389348738979261232070062794428885367417386787562456074286304080171563493090371822691628414033472138554709433942655489930660631182336472276293265320546880010910428474046944022820505777777799498944819987357463096429533256714693999979154503448164520184626007477695553371034388856227748143849275599547128971281621816525109159083952746362072537246953413047978610149956904684120419327947576675883207268853733959075164494127759244743481651380072197369235159800200512230587035770436606060008357161896964752177157895249336470558315577044530452499656626258695870593793304623417073168247161273174219658116944149119698050059332470920336158550389777015840554387645102443560998129192334670050297992857749467847451797970668807537899793637531242827832964210687368248138983077360020520864835459677904982101230152788727838401925621819428663664775895701882324381111617721120124267439031836118904388794548937643881491247663407896306438718628803295708477375324815177667548425487723384900297151004929960598666679869371391432455738502737486336238745307507737992604653963919874303519427388094676522459505771069317659687071284680156556113653017548795236267743253210477318030037274222532525354265680944729912043938057190748121118030385617907683251726631939185361753468863970807602775159081442774628758482813709978338963557763839377319467204581947210775905371960977693626060241053724008793844181434108714473473888654769542278357629046921366095910057190187232664395599915887891222841139337223249487144000202874555784217429133464028297540615710529213661771448917662927758543227940410460610509222237010128643923659132403362834050293939688674071284690759763829804181010958604226365127417023796734988635242944392052976865128772216621122056560821194389107083047109724238764975043158828703002871343198508879832939691737405521072583129098647483760631898388016890019126119697471860944888675749701543046329483894455886652855285957253919690930392719656746262116475345634057207217113330786941404351096446598342595589660214446659306080059091089631804654784323981965630589481239358426880295951193702056534886858701777908693699728693971819061932778838924326607521933444652486160663570537057222247927268695582120991938742288274426581387904482803495892477007053590503930621368656935026874923427075473825968954365426511121113892018117414033661395581039241314334103672865333435805310840182036002896722276239620763116130325929487022300211100278534747046214784765626763899820537106908746953096960516885041787841094086580231027408857538499200305004253336397839066963935094292755145303834852647009234579862621938222498808053708538683831987688828149250912386232558166791504468903712801748988184823412222734495163820929099839268372787099416457238126055087372860826111641063518256433561321542926177199605527193922739421409239543193521725364971066561085272875544182319852424377892128289847614596806497641536107103588206227054079590710812929234386109017903921672900550172027005971400797373078276932036643035617372804700638185773808626985502026153906344703138997220541923185367216436323350061767554787757428781130189432890413894679881941319574570054703056828535591424996806711744085450282560317221948507296483601879435429589893101510408189694042558255055976948344770719959066437211451433077601877150010535603802208911660392234606694339899987302253612812970738464606234623651326911825488726619498937771223210815812788144475165579304210902026539593097336194749859754174971400546651192803541991682757237879102792667389567760413302041179513337483623851242858136562987884914203554921894682744529507289077013234832148603241781189561815148030715702072385575758076736713004387057388031948285852267954200982501870386609246405554053539970082915365127064893873280824337015223763055557629928481996919623502152910900807746594110050103800897701627729774737014227220959251604556692818366084822012969457828500115102124869461748722453599288090304330602902197208833969849019412380514754755234313965129402808136392887383735417650320799200447385253970029230283553106046859849915953469565426185407165493032199665142413724587756297681354855177768146332296869186441036230766637424455779116906737631828350424562158857651040359600364148082515388920353697975754430769549125621073408336397175061413640206274000984387597746692962771928132530881925444793009305275976445452375720942046172598205823420085917057193827643691621575396085099636859850059534517844561536515820191089290378166664041274699828210944885943835464085968867333272278351399657894496921050592078130140771456943547482918265891318892412606732693227081176237352930614035652946190774194088709605319919414261158794105444760442443737253698790594046957843689240302628492584163773615809771307066536541719492538840177049878584901298395943542438988918931319962976977957056170520550486900854918288018538204059406883314707379385064142576078214043783659151173949264480369806848567548005098726210016080788052940810676895401650038318120065730088867827652023101028256253642728080661120852119575045012767174426933508895891499838556573274719415521842465125641508785273102795526448078460792875621973875825839938564258361668234782603787925323751643223480776666422624330833241893195282432132927682608765763388278641761601581023541504156453139980784642816806931096300419578399633033136447621313459884639439126289566569980400045806732256321852423354866574621061690667291602841273864408901719618711765968562013642237224381141001610442738053380478510784494464712795807860389082430702815112954563129734571939373137438859780101932278299415956497056410609418473197413643767615705102202602811326639855553431119414089990469468443012651777034073998488463079529651486768642771127567538790877024165257727824570969130271056737728874643668303165201401274433770092131565092259477366200496355597802405367315773394981084613560166984564388643985512963029793063938330186279832482014260251522442338754236662505339349193859333074185822412691864425574314703660733568059394369316777978069489502749202633110314925953593178565424941439812772284139301170634287322538254086870125709814884858498970368212220327926147308261725173944842867641295394916666971916579049727976434787216326020445045747553033035297408964648058104349581017992797673347137761297022646852434817065898194785624631716987315940846748405618375674262320801919046224559294310334728524331124529947331069306934125001253006840755443701276498175800374171358742404177934296489875833946919901333441151141995657628245456786498007501340285098105918733962551353395203274683874565817696858319886991986891005810945605165272985362726789855449467601618416855905801354420040205036242785899383065345571539726461294674776358463382240590720423514838730085044137130209252107968429325191623908743880247656434391223866497486341120182106739743725006862621017595577289701925703269783842223930031697734018082111104623156845985238609553138617721347261911050326832314082879969011439016683466765837669869234401362584287428895464612920472721136000624308605685008847962688755817048293503514942290050682872771234623277028212529139537674938274833552395976043776882116799333557626306286878447493371360417834101386367008806546453441289807651437064083775040200074288234877312530094354175363079086692880360817772941132617326686903330722974273410946341283468772188023920248098483335361428079061556182459300105712808633653052851472230014308324503685676503093492268538786606609574853506922517629037752053409876965826545582115905795742781300575675977736704052946814233410165089598147319246359403928158522445034042748428253132912464863716227495173922843473680689951335609507935515642644454327235136806031963809730687403558202862590618586720280160995817714219307560189118439716090643873083535334355531324101496215111604242754807895975518415049055637415676140690264848608740654189122248725069670295837814289620064197605753820842195247217647634532398167664431905923362118335608764637430745547171402070344290469581620285623000065109317385556958239030006226563021771798890586932240379670375849326585921092120665702507974624218656246216533737665290161763032950290329636581124026199609576899132687147914080975718370805324648776249062670585571495700287929811733063301552113162232098085875671519722027902195190814489274899675003547000997514990745165913165211516015616147212997454625702313478646575923085438713136573267185165596698556559656464285071600897948597596961992314638971917187228158452777976443088218623139681251832376250742697993494205170426184013893113103262846423267377599876107623223302530325137163465520904345429875408853653980077511189489060691366171938345240420520957344388235900894893460617182527475563183028683620578570327228185541978830633340492802605155741420501675243087078455982935446800636236641514833807759241240035019773431679099726228948080364869311757198608079893142544762710644833955009819521024686733244396683128089999337006575232637309843822061399793916225224509469952371150355377262171105999473789212524129860864358072639695741678220580442021574669632860419618469368978034858194135541738647373231297724337375708442118194048873889187927802076403596698739982774251658737808669580695444065312583226525493957182385801940292284125966042475368330738063594782830680728879586747284586408753478352972720035817046984650540662089881120994582694877198076667599836965493310006830395706720601514196483918926933574494324137935784427937982726585846157133754600998587160053684385269437939447650481545608805501849750583209460886526001239185212970820340523613778130491372659296266159796760841622810823017991472996069830758491467692054894965924047357487355383324447543339540557670152128163834872675489860447284072934811654686839335029832960182790912330286123083973879139832987672398957041760590326719852680693217672806855469262686741767104676527922232100824327191483404566381670338065221125626310951384507580816113483196216308457260607951963835644636413664785138435564149871230082533210308651061891309281957378145626737413199383417792794273692516524926503967172571484184872272303672905763851465133717655518139385773030959859682541674629814308064689900683067685796285927041014928536191077974412504427618625564009468745673040450237984630550914308335012196132188745930225697993543221944533572396642217026873324229404871275662787617220890585583448740060433376603463185161882497549750837949056426224181991071747177401444405319541122711834982747393814751783332600357701220421355725446067987981030090577325547808121315321787690424461096726298163880610524856368118491954545863009450601545436714849537915524125696198121011324896318909808499225952841116115155647043523158458688800309349554547125020988783181687259916189669162923140821362071669818539896343667901570640630380468480732694879638960193697633219986087531765993503553647241277943833387523827615771370150700900787751931106335181973011479116878591796685618714305676352738201984230772436528836084222123901826892928333191363540596050746414954493509796421346878333040872501195960741401832787655797875492066228485172466628213450518793207318645280607768672041845527884789254270055063430994523907826290432977667449932583642357586344915265730071988152769251298406845178828499008558668951925001471734030264697586852997743841127113950508268249139493478642412775807692090476478153241337423306956856353192889336781203360125748745372638457868183461096020104009698267686427910924784370265860787812696997971471522143411139702083178476310232891975717839864463422003004398178322130744297972903304335735816535284778256394999627329679243749505213922492460041063815981403098927479669563740556210588099573984363456230958479422733110958297866614797207725252080750473142870066432658395360628204286566750168247841195507223285145520077372405076373062559293200676549081126527840590570957218030873565093313269063520631083027101617979143590940949776652742931096135735824035500827659801731927362593197493014493284181063528676465158454664975123696356599179461292525067008104833166753228430729394516378382811329154299604044316666979807969069610366405787069020186939072651025662771356533998484278070895413385017652379767347377077153089424585202149522491915359697617001052084005586393924697842370948457492280469892170577424389301978584270286366512533210108196766544140712984512409709918999345664043552823948410708673462403596021552890140187319236655247437144385810263349449941498811143647003068587147209226451141897399131221844936646371104287755327886655026282597234916260555888868704230717756348737802107394455873973907651675103575765255995639695411889700990314464004619048615881909908207342264842546433538102862763370882052188299594208084504904180624432948168365847094530353255385560808821944022422830050075165342558574037395918274470731535826815448115696933670544315151439023953109984779480570490263190114310368282257623063912066169050169590987621834438013997605964586897080179842162117038919938857565219362843120254511421001537949992430550410318809818565456393216185381215153488682710359508728017620748154660889321833631870335120819198889478854357406589796404338111371574521110467058101400998006452387372964058649979596183098576146089522097014095220548509706844460012090718273121648160370072363326079969731968818281846910982835258689723051255691309374568540730518252498492401148203628071641354630588521298971080493735318796069613477158115370946942929214104802662072429310272422233161551437022655810347765591053195537491363949595037963048602457961420293856990024815543479712532289321724968760476327035312260909215648903246663146498528424035379488051889991804398927051579050783584223677765227539182949048920327650914964978405165787549397476224010078506987666881436924723946894297358625264967948988795193334823106637035206054740681277020948840895620192347095763426983427529796262991202605384739915316111998085545172726480108608906820837484307623915354701710318231190087908206942566255976522019203069795679748928297593016389841444371611392734033850214531972784809900192001328675708013944840850315033044748678811780691223770199726557591826023254891585093888923651835855809604331186668980998534393136751940798785920666546026675357441584492590519887355581649499184670314969529254441374888577841409567822321342591837230358222457287998394661250062773420511266022624282843580277995146478260585037195275275865377848826106980563739769343404747924499565407023950788885687783826885291489610278067064056152093917072438834047130992125827436346373873668372735213443101502887442980873349819052889711766915959710548250921536640554041259140174429432029187887395842993738157238742431821563521608874300396517277118030996530162324095228279481512805778683328312589108868073631828764363292779762046102848816840007212554590999747747124256865354964855841582323294114048816721501112767261810557434894997297394957600575927037247212771287873488034731981558836237766322419073988134254590129130107122336726726623386967197292718963695507303671634667006326674235221908798874946694056447144897865199518982336268298218931052074541895294401186355983569063330582252595125611638518284516942153482207875902657157758390567873374169806842349933098398222459526808887403126075138817619182968025842278297096809315949296600468117760384081318497671593678162178433097517964441180561171774873620807589657616524135498535056960527639405435821934972793836143535814982475639256051260918062773076155610986914124915071806629243628220081465387620463480101106564107051078804618508035180674582633762964163326455141694135685644540522391937804384737801821472106055441991000206716302279002847832248000207842178375526143943656829139216630058711202958172969828321594049481416911023740508044504004228064139271392594435942963868304748601086649038694667730737678912034901378122070555632702402333955912441292041959021093160606667517671093402923874510686201692194325874472700994181695528909154347766782482702559129114776011362053867184709443663976557288569274256467433237045023121477183512776406455265143285747617555165391784925872347003357387661815350043643292326385111574003023572361656611321430765399875075865243877876203506503318155223166173041347208812950752322555807655027871282041051625365942025031126710817317956338768207932125433402077889570623199106429672404537454367480989086514368776555974187849504161423335960533013393424545338382280388943866513537937390344120594638460949380830321528568171766506976037109715893387490166336529188183492656704544383345888886147282452682823340082071130937041657004121619085159406285275184143025905054481924955980060309707686148977133362867789350498745051362437577318984992693080315561538677137636324323656780137572884003137614937000149910596547300530109774186407900103456776996736965112343725135332338565740212454668728138570741002747846160049301502251855866522440269646145645008528611418118050999603653844762778582353096040264598319373808325469092901952747828505111799915744401897115642076487675405993845010838966087119984559945427053317336390917591532087031048642514348460493496379703761869752242522126190214225075524442173259635989215995062715019392828611505639288121977794698667039518435943200754130350449234252695545439489826490437558051560618352247944277914759882802742917157068567529726577407068556209996628391182786147893022618208174160869838960037853102050398383090967652067478542701223313019934307040061010620762848721139409521659650407760409569213503262767860858041860036174250673107204626291964644044090479766292234908694913670518698097027068617566111261500800484738118133200226451232044465495768672087262159287773014180305371951523890621435907005022183770044351213024541722563355493055219484926754583892061775995544244201718938713075660272125102949554884569825173883158075990055264730012839998134926628176508662790023714410394482537062144904904859664445822382540796148918411591965267909402458416892205716339933829272794396334800725353420357786367151533630540972252832339343163372032180166834068398057049307837735445083733354835615895473023466350503734106604945515556998487615248798594578188448337547882349336154221649551856383719642865760545913116787149321936540561014232286725317163130591730486361611514648586678406864121442767236492503465002223977924453039699186779639569156655899611955933243412075893786984682184688620355989426367988879707908366200169972935556720372937254947744405929688604901475482105560373650841773236613507747343754892298650099364912935674116859897003974675303769022268685582641868126404490597656938470345528432587810280905687629292432613725332465769218017968017486952485861330230683746165253649877241618097118530061689538345632124242915109352155497451148514776307904826071169424100926742129088974393720624313631043391258155525043676357173278174665211425349289958762620834166463685205585084477859923949754455951208639946315653603183620388197451003776339748144354448213618519426688726109306338852193316652005619325097865774996428578989811460199723608330865523991051656042921783050012667170808657321514648382095786319310217989935902316527297167519912980153813906666489509024901260544359822197074209583779260492787784893514389458384763485858485308774994764064986416686006446999669750119594157309489182765778862520240546149182127378508010388298596429745783458959989169196606271497422981711223523291852597282735024996518772946386113031537820140562867655786940657768239535047297959473952878934666509881563144511751566527851599682906018632901865637105832000920353239514710174586146508768704546016706467387974181163769515158532918935855977715006389823930046103537546780150873188984584284324549065169062249981980289094242349625831522864233357705725293106149775929176336990326972559190748021113863923506039030003865924007173507095441186590210092996713443075814802749448678769240214203299681900856467565093197263706894719572761354036931738924792113766282560681448206183975737081797029468482476031944596888241365655563587626414848493758745069194566135246901991886597074424965679287659062040066140041218281039782265890996566183525649984702078448307445169161782998207069291725307393506645428215069050620073464432134488634269754066780645238058513237811177441530847778189320907197015114635096556891745234997343258565208427098318400570497226239824191483288656636461882604228402686877277033230349353945669018636304525464073005821048499848052552789808737369600596166148662899336414806705419182131078454497320837043122095853988016444285976167991720356523333509861355063724474044777594650126365520947528877304252161699794918609297655329472728715284111535731146849698312853348310719196377626577151266129625282223781501075897090374325967896848740666551223557672618000760042199489956059287751735605139435171497919835115891862080961215851489674171700119076552196253043141438285264194137512015184344946429286121231279646546229455820030962454555558246900833005346707733702186461472435776798363170461190390622681463740806786010747228150913735061300606551432117884259225166735844392515128144491470039595547724046111768910187584694641788015446785848015179599836040145284270016602184751740661201985594372508509222322437950006257303465537141880653098680928597598131101032376087233959926747655715969272322378940109753566692553408389084594897615401278097565414269674879476957920658857737338086516832601876402707273618123261240351120532875085486168509938825200763604092848233606514571669818570520058496891494533146143220530419605485887896155721958072176233668328605024666560077245460215763362229935465963611276667469219396673881737693823142850700447847501456559351625816025067023382569775546913180560328370285659666458085398711088944652454013615809100240341847883787503033343991788782411201386240034087515936028090787751088076575677122301232561744257047108434707263591218626315749250206383449769940944911161027872687692976303793463417896844511170541092018140767062145851849474132441709860164309822524979928108144719266125832455297960904800131311824819218223418135808114655073850436270257128739259708804859714422307592482233843263514200410240312588333498454332689741093747373116434708930144970792437530184668990437007126307139807516422156930672686881119058572521929585066603578482192432600391636355132646446352692456588090539174030261416740127591676818573201135385235020989854070721624957027131482131037615935804619730156938515044757234736729773559805715200429204651675901739313405303871821043278615879581992339640940412008425969274342286728660514982233486825841709060841667652627572875773036884780820569373634935439738363119808709597484662644447428528822804573818216499553343627159146193583744696290961971807147409837663562285179460025452866729137916135437706513694697843232353460083674922246463933805995246034878350127308559058775594245907967819046731961245080068559521096536404952249684772627822314475221158697559452538617823868243538887647187280041417022079574174758547830235222365453843358588875281492253048340748470185880564368293390012332014389370112397312892677452705564188270102437248684964833290423685248276468773531937974048815222223394539232037470090553001886749399936722541231914311338909226702976398334552491788792954380201713120381482999143222479235235657565348602364009988344845524970700733799048826437484917997684846706578333062008443024312490078828301976589630808326980133716574898723623370278396050734372918917211036555187940479256015443143424118282289910947719262039312932528849812326392853920152160551522429442471883841115052967324318573182007388287687389058672700089758030869761603220746832097876775295909713697552089586685808749469633807529951078065359476974564996498760915915055897789047615824005557488357782619953402765196156994162334270961460606729834990364020215118917402374288817547769853364620363456871785793479536457160129987320413500110951513665800429989937070427985448768754973222975240365673409872220203804556108342478843352137024589069736589796795232411746518140265408592211666907707677174175004341559418157173036613768708780665172814051585499369097294839678561294895606439731293490845761538613820212111499495611950496483721464061804453190320298429643399228752209565260263046455392250816539854644584215037499684540725721905357629123369293387274924382873405975652879451461843135828167383078510474624344539937558789001924406594389344075173152735023599463507989944364922715659763932289922488829942526241191874262356154415557776830799169950989629705779641388259812158520826751593377048901868786529790400970363297847655290289253407466340353803999477498424474055484921778552873523449636276035754507600083742731853718822540012145856114753505475610944673714854590109733812604209065032824738806349410436432827014413781329171590591940318395277110323746416336796812527009678773207004877274928373741491227977062035192261262464362251873401762481993129569689041781280039589275386332609007712248797641237504216246783782934762639013785858110054194615665696703755579615399406985306310790993044868398503185226568600106596215696803829821819406584551796779745543835216714301433494934546425308317045170326947677630232664937010733733992748608252458406919238743726004321340398723742729271985034620138517380576616407441240513085178460783891487078276455694320392257723275777434876732984461335004350992046157854151692229867305381470208263544084846931367517881777936023195016640066119140793454034474687865728566205283251112569746410155864001708913102142229771357927883104723511357471109105293802036416791161519881738380809848296763051706691015036868015931921484204147689388965453661513230146179610229962678744397266795608263170526149541616530909658674189438731110651464814923676789387063911149897936644344131791606341244657835012318543952210218895892139517687629293187974851656466128696886184493417952683441465455465504810043467161888939897512687029178034323718041774289612399856804824220250744211310314065372249557888869221000029186855521687476628289698454515937672348258989318172208602640317778621773343193155827469248664929251472543572214782712481194332268959141820095588362960950684760063348814313477259007043565200181101240771599815408455057139992570537770964197562462442713569422709505641976531099942585109889592871499295629060567613758770840856873617291292536764683166728062545806218613022328968596150176015677875112318354478681325761925077567348334951503680444627045594337475272927813027709617247534737822123782532841950939238891542538747350681793143694617010640149158675659544197111105319135158028588921774853165297924456371858619936957092569925230160311996970033465994536920595711952591493899458561475227179015780395852707496739948392779396473443904978437887154937229022354136392925042062270481358273167605493252230517981373601584061222899941671827629084435461985591306837136493403158354455219478994253391192922831134562418271458102347615775624391992826220795853409146919151062045598499722167444309400939467411688595035048629364641693824248603008102871785295166829779499234755659934806496823392780474588394784507960696488287829964032529448425970557419270949873300782035534314956147301614095648099273205992914746451590807285569509984453458079671894639989819128233079912320040995037271798996706420098339940941879806231689083578820963304304550516944729679062190395880027627853163498806901945482274826206703301599520936804755087296790278489123672225380513482815132425835591405919165578783489015542716870123271382276061813529798093122473391155129701329605376438368560589594888405148778493222044167837637476434480819026197106960239546272065544947056645460925059428852856315017341842619541013891613652358768480579814163706399137838403410100707152163688690162631222030704410767753402415789640086847112040222983764138390709942169527236366237764474249537508203942606914268698469485104321805219477084557680053018810385366498475073350724917787046041513705641170112934970257584947895258635115892522808886815032142549047564244130665086884681699054183357458003125023457236672437140091104191480590539870695475808189007457859521509717843664776014953556179935385796534411996538732663346027321017115970193736855121422156981616007837582341379909391310494288762691494689880397394762095041209856119200071423799735763232240786896340900058982860902656006366110162708610453192748892676928860387109691809023717702980538444979462657230704489710884332100281098452870905114393998630654409653554239706191868417756763187630517614105517192388595159812903385153953466580524028990905664901675662302690834897193602286373493445446167964238322499764598130975649240471974834943715131161961408300926485864822917094465544888427753276532174009000212642321501568353755557216944043332747807963327001544789888207929286107532033500979579848018485618601050005548382488845223906973637912498324676961136101228799183708448394876706262309838115590453388486172140676899656060451899332155238275612463732229203312059106473107351340680273658390790188990611640529250995508956858805577858055769435033075379678054775202140435705451310637221168213490329925840937379236978403499260121083518884898332997186177412023075998919904855765063254656782276144892453784129466052488223924005235476352692404913199145176477740259271923317665404155670565805788599071599670054095009893778448084631253470897431320520240028144829436392856247333359336683221520609548630123340072264523890154270489503782560769689559263738329951332213100027728409824400667277175871631808741041802987458580278565557897061351432406622890368553857051990329599887199523599774287239624307399478879765898575670599605622140379978378758608230802926726055438688961049479090085144253082632938542688357272811670226609087618632533466163082245929285828957088106535772514243630545106248898138317953456913893381892258686777077615717174311342837100595055552075517397789756131113166386643460061741771856223354276425080276003730407096266412375486929052738382405002418263168423693430738127812097701796567123498673780482683731739442256367785770190208075230572748291792995613799021235815582802239879125579599660579527242424627655061996643311789447909408123367416011037891965100096946876498339032304401970209825119057355277247948649068600902523711359185512508952876493319652321193949698814980196385936889795191024760965856455413694131239983921222695889519032231883667448419173716336693398029163096559127387502705070839857217030187178407314164700355885067589145863559580996014946521523710260419864796810999137867736594484091559089152612279062587457232525015760716800616606395840437774631006644438334178851349788017554340576540554308615422333877697810148578308763650442312896965220072804462354754899711320682159357288217376584600471433170612463033496658475814043595023726700560484082886053998841601308178519960332077055788264919899865167159309819207276507603174181817402807886913810938129742257330709913137920717591563817746551197975125962514982626136742602119578162177617125741677977471872488510298275637587892706869886326526965333496361635684726952563687439608314901522595970058193349479663960132632617543317547991822262134428240231450127339230095413506413476362873079908149287976468837687777240653968209403072488242934832351739318995039242379191099614355034645131115898664718295507490028324393773025252829082083778653053949303662392365084827102985381970335211106455467141000357281785721933316383573940704156972207746789277344373598907493061187859377368654646960308264114003184498757463613090580585641406023860600563194457210082793019220784957550984176966973869326681644111138941399314983504497935833722990036864228912578384926992544631761131368130460526224726590484216120624102397387512593161772258952698927733092407879026056474392770693123900166960654462919954794247579012070053601512070150376127126695398654137286911451505308368036531963395835552832602146305430165620588889766271830602827536969631478549936750748880678887490553553475646814076482791060208258392903885927185141623638882790198051324017806278722610402501841250112729203946790790420514343346805931661315170379856929697229868356902353178285805905033213568862369298972462365278945490324057813166906320008900696980115427480937256613886678800218873477458356836376070892149607609441931764524201071629462862936971649254905915613763476246609888067605700971357615843614438602204691309479125106892345799255194861381023675506205583209391094407559549650422556899909292708011215192516392380150296635045969039287500519157706469512911995264142271443909692960364765807101231271916376168261024492024345016590516071661309932673765397251507574595931281671094626470220175178274896523805271204436779916587166912627833499317339528789162703225850568649514289217881693624662578548439254197938069837200212711270769365397938837655226302311445186744280447676294780073127516887215963724994863622253755872289119703061307854725623339347699685960693590351785764721388559019224560185076979621926807006255222026123343988848426426291017186519847087276500064861867369636388669201293967904917585297980403959131718718450449755102521746383907521275105208357119185990713880332870524739518444757351831299688063756131837585638585145113457203813152956440990734121470859231263836000275850545306881020189285398945218765625477352791798175188249349551522259209321210252583050475312381603645128106768547253104965980402705486380875201864915823895156588989634175173894025447969189044659273622452036231045411292982899723393576258765483845128460701292241575451591232932828813052795516446911582135767487382521182146373719103891163941130685242759490533137028593559367676867126182217931003030234766133699464362713126355705723184078654537197232716798321749585121987158572149882446664157143291157851144376542175792802358068161678253932418655881174487619748481030918931331679213605845564749604672653335456659495674631046995567955597319333986218159589047667635824377332612335808280730918250489966076629922802382386835715128652595247828895072971879620285470816602138131112891675839435194941325495587129846611504517808168321348419111400478750006201698834121196243346025094534453634398392152726131122144853566335757857749081814169611373554045365105957827193902783629807004286079380795510650009709362899304029306787347196643158559806574928103154810439339988488605834111189395855586177503505719563394734213050297154625519481803655498220243519797780840211657146480708284718765611414435778942142423538321632700695359459206208307218079989994791331525797843121628743307744041991472444849341774244151978826396229179750369050573838011541614002152333235497192996634258163596110563839930134926943121697645229543728544692722620028599201882399362939417583534093439052805504313061178442035511509234747295534282232543357545809539580766581493553485568330808998135345889145949216505254497932233801797945553049765465211269160334563061085710360592165719197596040077320087282947540409410112459545177611362055766229687603028246062204867479929608982964575380962698441472585850508869791228530405363197009049099866209949836468770926774110683437347796904884348961250378665668441812190803080177652448353733383529942330370383263255010373040132177640606300582081420026932920889406627165753087123358213201324266989592852615615019890511184417251448246978923633855220454085603333397395735178882953210466098953147936389968969922288149807847076347082349340889505837268570162553034037954800155869751457886624380379551426401490716789338714721555592906691728942342415466967117658941209949167601165248521221438114068889875418644024818000781638404934873679334344503166615319144482217040734866180880702010975203536632630164112183631946350461805867355157483371233442738614753447171974551683210355789723252244155469577806257561785823171900944479340233112396525604822938125386975959726123316716797338066374655898539049126937836569729983142344429167288948310287721409456454704470463196196654823376290832711311496362408541277676292625857089277891275789612250108301314399510671445814078904889299175296137818086578640047664564405066819395657673071354900731969975373012646389584039790865101110308356754705515849335951252931167799399901654831565890247780393189122177052927670751279620635275819991064152852417214663449964798237132931045100956580215810392043567316831878700113175302778684680317493014616703915563876994081752066943424365822826117553406464118280269341589500348128416557907510311583858505112729280860602672765217632050636218566644942343867157684315167613009418247712154912872856325851657652874756962053485998518891814410822129276705686410997824258456820389190997154220308204729074985587771910116946349710325374718096834034918172848323355494762101406699821305052979390572486598023931422282215750702816363933582973441795056447150144354519137487640917487720780990309053974520453106144098253189589103554758386957767077559081486468899536795801801788571641757192423429640233344522415950489044235984232655146798852512087456305607178157128477682465797733164588819492541820391768941477864057016419522689007186856838010726249902411847893171653789247445969266945715911124450729739352869089405132963563732354157253284411306151497556910565789152006978826441977591086011863146735666045765533094670348863735310648387385332348838089205165158882268505020643149425436066503016551960177737119344764971577613585852970711203171165806420823014040076240080197995055120358213996209597704303857630258164803347748882117766806210360164934331181095297822184245170619122963423803828858362156164444884074423087806955678102269142752360510210394213379728351800520530821529243880353963354124867460400740866779451428653935983465841733204696747524967719372810478645510097891362846070263056393944619349589272557763118854760076784471077803990039849825130291574143223240147761691754012111878914021583200262896244163707593021663175973742594020189859665733566835016499774776642685458319478581623735711434923361417635894532424717662487588845883798763816940787087590488422097657360082717969070011965888141118074551689038266743761279578367823531666920545870318601624255468686717143960218963651260685364300015096982114610907051429949696735676840998000405654924641736342237761447095431866560457310675468227328946466446302486138515733947269717691590432975349032668410952071505275027388453417249464370454970573864073845449383160985148299114793275571714465375071517071422685594781445427615317355451562533189943257179073596512737767748681430459778116773978763693586506295324159615368698030220199061182083325111828283943566046938506354872830780055167347711470590487206893573645815735683075078476092050391144039883424779137379819185660608660483859169004582398754426678247604391890134688112349649473240355386702385073787893887188794833826839009124340676541540959287338405293395517016433526709685909767166612535595744785001118173270520175221572278890634336600773581345983513539261063042951727759625126583240769960157882690027442599484859842318390810011364349808084355401684479578384075723078189394971929105603224549420848281943964659645551198969043005519308441209002730202157966698733032676048837558619728544218510146184518832759313126999911527677291013774505502034678744357262738500752250649553783148066106425000944614465054352145821840244928088166107058861775127443417918354883414283381026641441760252405134832196954264625804584811687440725230527936867713868024900812304077372093510925572814922961421595595915274831495797861995349147190635285169866222397202007161957089846624699655055029620337436086364573825591500360381260742691576511032902895796339454176068588810127041632126824382914349236978261282353891916333451659952970105224881335180693753252770539958916670819175224027212389388304907389637934895097869291723771556868664855484852012388160407519312964711489405619644818643356580071095910751177073924748376662779034215179069218500447998896969955838987112198624953048175897125234460289482400209776049970252904691428187040749489918927166715585205567829721236383010095836638275640461212730133371454293607111652294452684662246540652961070856438641522240695681271854940722171688291966755052778306289280874171935719657696402772384667498529777296393104178567162055688995394143380406678499313710496904632792341829427910944017193980097410964205466785584797942201465575347916322048084346966865043455852102544511124441487240174635100612819611060546973981566690225155275682614459220986258507117285520545901933130099680725361547862189988594184713983163105004488453571099184880491960032850144382442490922102418418970136387646723005795967959602835219798640692049682595013628557772491773815680465670996855448266730753085539446315606448550151751157336249409016344254895728849505094525479928910785138903521054571857084520128463978568158346868392091783055408522063823310867531483986015703336897760635214973324880515675918918240903631049845570733874131648577074777234228114445593655758970044528699767735206699440307925966805769029907725356044930663516977344962345621923906359123853227057085535580706309326422468746222181915142558945637653520886181145221924702929495171806566378697526992411342929918304558955388072954777439253367007380502881517380056283715365887973445800086618225675764186605914949731051871088451558561880218253425492828837693429040834976696096254611845656954318256919634394006591117052589607963097915236252718830313022560185207462694405146824553792447395993776720317167086905504949564168929790242862887823474489089157118823001970166997664960690897844648995440062382615621361873466408361452194718250504253772108615459511127588892177281184145073374754209944074022342359507426591272141220329574899746328750186091962119417035579992896102120849357046631931965112081971202408471611365402029270319900936269982676396743958484138197157662833844193719864809129264375383900173074040742987151658948237230170828006567940937863962980079878592867986377434956941174339113113404042829735656253342985623180963540579987946412501098674059744025872914763601028845236082192141970030528569977134629950310558103190396052358351842524845217912917494911131678211034684251216613415039560520720503004474402927608976221572255557866789448982326433977840984554150623436384635788847604072969504029086949117923037796868607604865150498574508981973735984172076973699681018299972688492578818430596537642060004651152868302774155705576265185253206602409827047223746022790254111480480336295132740565736592869090551079815372517250165511610809891964632721211672295723326617265574759309722319287160651128372300161350793049341281258110042348229288312326460434998361439618205507249510988074057481951034824234764092436166979935651593662083362989935008541598068830176165218459001318970884641784489964337050823004007578151994672571439685384621167189153904884531574537591639045079222019657382750517493427809785965514657505356940389972135004752593306585166038667382125185520348875036214414543585247104376279391710641063010577808135417383305506263256633701315465890311273822098871056011363058255805755877999034493392944118509395214538707122592618827921103935692503368746485385103819109389123473285531699510697545385725401255026954252144511334312273331593713338750636499686647096147684219443519099600465386218889312771523247246198827700012143918403494588400354155278574240623665211526621388977810132008403606080048592985977647211609018919351082797993721178855624726035057264611259804110061142386580412400187510472606709445451168654134680263292419442270062718317047656503578526485638434364385788269901272325564215050795606927570799923876944220423162720572872843271070565502410168159437001998746055047117811172993258033754395355116556388153927597754362940979926332010302623247281031470829148677682584732230798523306362738020142868982230466510554441107688058833196086408582858459939263412184650813544482343344010232131073005652981712574545091591376131781446575409651738863063314125772823174441136221089113003410828591584938682843329137860051312009601874533296025337204036237800642918608796375783134181863411422533594858057552437338603357133059530985796899332611188000300919528638220384623438526071926319445809761948185863567060615497367085940355035236829577361201645763436885679969406868047472421291151365204426133142508331066879928286573101937793660619007757647922517929236003277893859375122065042854270476465051175490376725910016337734249821263058736364206269493293803824788715183098219540858156231765156032657768869501170688533599069333669596734695544706151232599017547912124402964854398664330704538288462879969428729793713344830392162769922931517444127121014120794579085669641415962355926986365903581755662736552981957276865599828253933499739212753180829184998788150736326522225039530339029156432851932435070043519825930415447954576608560497773032091880627375012565936031790598535162822325827572424824692741969390544985928251103494534895316971962853522183300475000170962465255377274389573846156356609169568616130735539879165715272715670026521845928350667933788165904696809696660427175048983665845064892710828564340427779328259716870952195811118412145968329505648991694204056182890163550411915934817701571616338638938088190924393304313870115879513573700316849583640411864100300390750945716197291270588311252623270506385539641947246608797741316280312251840334734353292967844422460282879424949568302579839298616862253120114168203176224005458351715500589413237046003637787135902083177880373936560851951149120704582919513035145030795465550512220963293421620355671746766507066879996396135312706751565594005628283826364397726716906647098386351055221977869431292132092611712484478100135297232369557511334167257478661064674649998576013933075751833341666775287695205933604510778361334202170184691558031246796964462992039172446025622764349283941997471824993435170711240915027398812350865295832460271239133796827406167658047199200031476115943581331813944143113971884747378472614469169208677305504866317133286669334448730532786957849845122566128907687402456767305706905131404670668606652740242744351934222134700599578189312776082020205289690845499021327550688483555698971362942712188880904568145599575554644891094893047096455689233388225467218664417630064004267910619477751022461081920195197310015191265003024963828480227654782028485885482991420826885081554145428410382071688415289716362303654851629558512258477947922277376929092646725507416764875979877190519002563595597191010762259861956024306701725723068303188706423020022210612266194620801922085471521705258669839517667181575929189386755678018425323913785634248982030913646610890030308557246049102088936666051283155430485787473432363867101180683157237560792742708562512639970546014429275959452763891612960946696901616798100374710138064271048908244938711255316317981030676623069614780099472231296904514812751008942175745116750731603683785759265315419107104335371325177862621958094067225953758919699652673485705949727941243855970575663023513532602478382297583079778850953721957740201641011513859787925301579197119578067928822942859601242949273794297218248002508597728922822060473414766329345642427582717866713428910767722205629490220240501078586710193112884499974016874611604055935921883289990812864168834551901930119023049988132329378908342884824537484093983092434530562660991822070238328854094178799941372363872231999093284841091614594272322786319709944979022362389115724712689883898768403880385260373715144939678951081369882110238075506452450203639357134297319016188589868709956986206866343403058422320008808408921223332237833418510787958468512110228744346129469877011878290084100822412150086166465536228023875429963849196863006721470116835645079650101204957550482649296692148774052080941006127091753131157248678409485452514831824532421713302443436107254573975207810730827072261316625746458584591338649927529316806189572018302444445141361917092873872897889714400467252187831129742960647011920389780098379384835892656237489618118260565277134259660864850352591542397214911050560429336547932528313309597358285606354363301251270088509455828094054622524790309512378963213056578221531369483482912629499606106669837333728759112127105532577196761252939190957476448687268727610841815599773516859414821852214413151830506471429160438379526613747960874261261309436997865569557308185229665908507068254720423112121391887778596369418830226272269316457514216443724463180153437042407354596313713303743437285743542382590759513133744572987837305412241531817266444376095424179175453109928568571806862045432656884362574859492175724981030373326736063508831204670084519266376495668391426434896732685370132143660148296379075107311287852298328754328700810023239911544888881505208165205400069618821122737972624783270898052404119888065269234775137424633870786433104534630230048519687214907210513054658931271753950832735241925795718754383554144832940867172621869470319622760024476137003579390262158823486754798956179772658370928863868028868903176666860541370339773497148661052150222016055429255785906123109908093567454012637670569098038085623346378254322286328775630723042222890650343641759381370438639082497214431172699961187983326113562442732349985275580952952443374554280165294715745125331490978633645740111390223264325010817868056745057476732270979645319261407362014241624458036749742673512788483017412263495090562804238786021296571030873236649963187922917606703125310624186001805443586212956379148645599201336533677090853206097673405800394175112692096490170452338983747763569937529482818034933374809004397772474550364948098030499038052076650997810696717464123230104477130533570045991320805838962923749467862578601691588800106644851103727379422056547775414596713115181851085802713593471103003000777179146029456420046138846888090542066655461823789725893262763024731924941507429240583742219582593382888924496552850090523683750251828439705069669523812271399482687121305851749020601396447139669901733177912258879209045172389797456991026627136026932130142235570882207625235410225157117410165511878912750532006051800197258672413150474759532237524115839840280759446068046793694875269188398839743835259426497979975701504529649476316449064689426524010716837157930707752995993685753003008951299124203636353358720664797741115984846511343641661182880384625763617845170703496235433148108916563238058714287420031192799447490818560408492182139959059131358848081496705507716449606133841640331894969731593123228736638966903531112373935643589735532804621601718595836561491935171821555400517229272769458734964417095804693397553933933940922419137675103546470724455723214686294346730938279962588885721549311708693959970230543230748868074614489660877007460466801175157870295627522443659871482782896245072445719201572358984048656566219417339691325193928920709599018042275945314147639516408234395502510882006794271404622127718171926948113760713628831828649685224885405577965095579766072104477383933955688398938409120890914587885836544146135090129402234018779669254025626985474619668403741992705102513640400079909833420900214149398916634550825051408725136834913354451461733462126705278541223310178371689249179653714363088136076117802733680369343026076744005849139312550561142418687128475466683512175172004334851347276849657922963054347538510700714167454673712454403455777516578171393423760176288577578717123183275533114653458393386434277996418450368600623859001768517272709689207917000936799439244735311467811013781484643288240926043737368178647046896403137925317040095221456038593304178715299662650477812820432581640480718479660186358342906096830961681255010615035392008183797036586943249428163519237140676630046832152528800308621529882958118198481640625470397473517727296152395471056089131158303997054549134048275660352773051662081402428194641757158979586545668072856933987616310540095787452866508265183528432942768496862433232044784627206948723767274501981925039683324537251288522563769979475154388161397729069599242948330495520586280107874124895144907590056836358044121568777953583869009311397277815732299148191849525481807427726400250588919649081077866349826613113314798242193679031937713353342711756628786875105581528173782450975576627764702996946995428239616561666971010487807549640556772520333700503587699813292979113760891715198580627637889764233659864292950107371847291353473062973268847682835875695543209908527636606559667330230605849070328191482221469555143762846714474904608430842617555984022627445110891114069938779287313512656348774003515410428197387575235406279078218244421661024771185084760543548077110031932386180536800773828755624902048397642462249262495827264084582539009374465907784855585575159211436724189279288197815617007190220926078305950891993549103130246383716770786852056156942813875273582639468558399085817023640089052608273252877034219323174573187458833855290023394520533677478672691979430114733071178115504684860276044498836638183570989731179221852971433184543469160799021052994997989674219360449343236850642196147518151883924819375930383493866887086181849019657640794136409497017985037627233119097045868611099594879744482998226054503029457750421361996651105864796478033550953434303078120055572405580158921536189615625162284353981094920800142594921424026269475857316074829614504610182690872450933787745436198488581124500739769458132901534929460036056413417969933220219666285279615628699219765135621168430300146211021282242938895054211849214242297238577943704627402834456822608048824859379795767082632498918165608639144656810055851189729324410609824822785761925597438325324009218354847832491278177133593354299094955540111991806949707230560826826868454190589308942179516125859923012667179313707999558939261322897869843518626341939707084342975986512567792265427675634206169850680982953245401525035209951068761112187255766704193938846892406296804857227117420846266347476767646439148292888061641214233803091031998319571234740123850493853664670025569437977832263450719749833123105144044967924865206028609529042798366412672588944016726045180493624588056765496970918732965328400305872888689969658016926415510857817119951445222669273693579309593821905947294541751089166641675031651209749906248561655163270634246614395047900059379969513414022029977949936960779180459932579109294207821753811932400291992454464398121021948078296962778806809300322149108480350047295915680049398323755207740312555159359792586811132248162241408691911863652318070931314035691873767823811010020160240516371903800867305972226343177549065257526567405538585196525956054620369131809171786035236981545631568241130963655075883512618927814630063497285264426028946109168104057509241964048043852925836938806282163024968187992283480060801102662961306902042168351590135541396835753367804544806117895503717029482255538972121689703935259149916156474967118177014869808942469854736546580226772667804583760693384526052110059207891750122608430326572546537334275441772299245194147361679463435204568572566901383566400582505174912311711527081005736439931936906341795392321855945607670262214290389497689903090140011441390554768632983937881146418859923025773425256818001984033360691128170355590150334347415705459968058831273197247081050272405823042443316700068449687327672608714090647635304174641758279218504142705883285106690593657036987737001490306631651217386318310096900584388463424664936523764147004402868895509188219729906846198498015225950150271709519136795347598904613162156399396671909158342139423116117325328232642791233691342092745755679360278772550536421150295558900870167769356472283286312193448834135123857392263532139331150180677883082191190975360791213253000459213656184501534865813508553677570605496438679624417257166315422408907090236415081031039261567089510142163302864130893732436820056896091934494628374364697457921111883276977780151445216072911220386153634988279460013724720398979782354510702266274418903136536573197359370506675823627028560659264751106477783187102761439316449075210634729537454896296504582482579354644250691115907111509379636103656018185315517397742501170152958091234360910066258208625182831137728027975578967927452727799599287566029519561687240263610917274883880260835661373154174255585718309847341541107705110024501565264211561178997148471790516470988655771964625219150897454319394317609487949429285461416965604199954824971363900199834691331611995145197751786227145583505014382120972712326139969077091005164187713819496709132626905173063579178015195955308998041582978982477357417072840258814102475950602431592768457997631387511970001343881973017906090060609651311154017024085222215238313197911563924394237954926813560764280786990137492759550752891836110939020710551831358189583898088323428850406012966960777053692838274676416224380758109824822985388424128007150432118282800640517558188478163657376622022711151467175324738543041089421904767264956173564413062654012999215676643365497795495857317459431906573376228776961942151309907567638459467765431230984291295751642629898289138872700372494946048787331658948990755296361970681480312772051225198007344691265364770096528453375774418124509637235098512401511175553865505949837046024051853863469392317714080276926606479460205113222930938353520832297255865393854541402929898638840678129274097424378750358666852192735546999187043643864373009532253260384007166796934396080593151156384646896496023239263200080657047576485159909782228576160555403990931518388385948961766308114742768477906900662400467302731168936022217239303778448398296194828416490395966783625541774749236146173021315651751039209723453344545098793473464887023545035184989201890273227599593043396202754865979778789827921735075677048262179875792622668469198969024868628979300219708800197624278464900013985084149456662629249658660383226569307944836412100613125780678815511874589384992024826264089264710657965626249257983016834213668500410549942854815948036739336617690063163145235310563996772414774456383906943701262709129122605394111784213206851702777793357204351908316978474071680923184071333190991139685462973572523172102333511750359591489841014968204069645482955091263848172469107845276328628408288179376877305263878586981690694877111414380988633162928058984973699004470663750593571338363967480207231385939772173116120783261194365307518221496144891324929476242081363077280456264175481526977945936098427276129874487008258166100683920240856391521496830223894592967413145813482445678861343758166309955869507172782383085134835061005224217222539851738446895642972159334472531467362223940042138105900970276667515823890984251279098020892292871297072917779562529293956702214943522949716561839118672045976534090886295662527412675284690321134798838590522295807200187448560131613968828894962656824701863163378031344452702514142989852317800867134457844467376210445850765753704967121804533977098712582279942365379662010517835768927326402581667889064885334874725197610145515226343773245287831590184542133766759847595878027455937369267171181982357001510221488128969898057168861890567302290117063499998018957030317998383529327055863117165176202018438710037298130909750872226982852488147461711788695156984584461820190880402374423592237660779900533993969127529978181604828974270918560686514060628754994250601547701967904545108879609960999017598858090256393874944641436768373608462856887239095583595998508976689411282521604663691332598385196595081028039583716253065554020527870214260661141370219433988154770137738847355339587528791284253151583938378155719747506710573550614345831717564085278782391421732915692528921848844389585912992266804651054332119461537314936170113714902927959330161012036354184828869794242390624980996648432673001969210001557003730921288537343078943572295912829875932484225388985250018829938170662854957159695098740989534905416281419705409999337760873492161551454714509266442006496565760656464749938819403990515539280982592130154977773175459012490339459603397891582453110972752706365840556465219959897049997973368769366291137665122160975057153316164382666985579719492018542506564932654341050043461463764308194784088257811369120176966664561972270366436670209713989617838788033472580688486427970003974986187613795665198960398505847807640637369748267259218522939585546874405047862217595624975679911051844750500838435367947277487823077885999457629887490613029859699048146092938953395934355277092688174128302212902094454542245367655729135762414159476985593894125470124841331797820161931754688824287804274802308303758515133159593076963982842925606043195986987618935445880434008601012709844485303556397997762858838548421255042086219226796919623095283421646958349708711142195496792334287307903417996495985376621147958605799966228718890037247995528717022943910537554199051381839519003223823958933085456873136031619744937590393075486168954050906932124074169652546841323806931342952668209366396837969189040044713738127856506608767798459167265539755066292214843623689371473768359543458485867036748136179104607822250460682708211122517250478915459440957488673839514865733615441819703970626527070549016153785029829323651636899502858153147139127774118773208381903283803080446706907274773743777040158268972024452365890460406044103099653224909725691951482119908952107919506802410938278929816473363043109932340995557312228828887881733417185656132239351570006009033750105757187911603688775694782446831187480489016977538447921884688082608405373209078889596089006785248728314015551386985811687524301700875513185139156282917707356819227491190587519882289770768221095024211208916953877292901237343947535548828700586032607465848209608814042350373991867560036617975333631466801843556292911134891222869191451813116188331979477145326280013013063511103631676710707533227183671456655998530353804349415347910386613965591076597065841187802400731261698761078596596592817950130300289477468916623824765063969831803585839311730539328588162316927070907190069189151033033359933935437105846096265852187445618056187664186487674902402025712217694130719322840461587844756648050955223835057467851393572111881776933077416048474850532747326460499777707128786401258771109402952149685402330878958392662244195081828910506211656303649327128448928102089757038674567592916688517978253060659902309162685549807571926991658189597110493424698074644971494574913231706002675174554582864724917905952812157352590872953807516977442355433271948443772357877158946113229761848134257575883640374270909647178462673098535724639845606737090353839148815219971358774543012804379182328052425718305715849595067057744111660662385748852586690647441616461759822830701089296802946454623294630370382857838662019702989405243951127229121292942501333853188586524403346838845378589073242402512983659802548776885468084121143234369515157364356309467364044389773255342042547681096491685036667649604872472119335400275014431065465496096927665943516489303638029793378242480419650700605702176095989155050570737302361283338654875416870036573925123834874905434592703165937643612331108810684234867719493126472917000044178307620738832857865437309107589121983039946573419625229830166114947684618718753367647491367788241155213904112714531957205617331896899616991204563127508076909256421763562567308722452242872938863366649127482121502273588534896939181159897253624510318696573696254956199639624016081227535574320810380735104655666370050068546586268985093017047510323756156932840231285376787419733287371930779679242758449218972989646547886929405641046107607963821549377114748925278816329966061619058583060214057915300147572868715232562572567889171674746721417893754337797257501047258861393177585622611831157841089330776922726155947103783778921808523379050162039333685683434105484182930296805921994249603057277135559217559740045823216755293273805372295438556207796368931846097225893279292269651127890287901922823069707952259114959190238695621621805948331137182986418058415808289743172207641319039219936093570362111421929844180307442135102576095146646894857172465687451090233830874609065869285621852292438698482016053133289462716571083958314216082322263920200907590887838104667177521222223562180427007132922886069694847344816920475087824575099611087388384089987973404013051220927614828077659327435470533425763734396805039509613592554098970134024615541924904450320391206838875814566299808415156131290087790382356501435115722414975999483303432865077195634261982617588241457985041480509198420535592372871348023874861532351377072690641394921794139810318104532486243950302453080142733451371248084651181236062867522528991749171751248378923928706944914901601317470984638029234229981951527006649398185948275830587094462356006991912830893546968860256082248042638492326725684035024011591366050246650421278915900129461938058780931944920994372144184550049208138635761874730672908862928501698014814262927282881125029885979589373708788475490582034403620196830591095304192461704156238341724153452242647357376432702401610307930604368976854523818563516265576962761404490594091491691407202959741425501432631259760841605374117261626677133847053258127276099344173084628906250686643651310011830429218616268093508993373137149610973821918183940736709864843130811288525963025216922613757610365814403168217456216047670084984076381551141873800502767780960463546762210872675333674554195591177296824762107181012021899037661164838862190014616891862277630634090328155355838176626425844396275226350626592391158146422554384281931738554354929430717631447722750797190425528990215939611711856776755096245107562914616365717488388552629360344406599119330825338466038893619045042313137184890436004337336295222183119432827729028077329454741057723079218029964271073547953975648006192622919274797895840863118651846988970627405841116277006578998702738935952925199887231657184970792837187850953687143343705885605784353610063474994556274580885164711843406928225557872711242086394565806377794555003401294389617040920647441399439893634773228172628334989225288234244897364457578402700641678486988387550419784194114182374444079281246768634802258692396448831702462630098851127743779434783750638743561838237895922795535572734875572036045508025164183485120964044850150019475708947324219788922220409822480423663820442337961798028798425532987049183287754785999835374707019151269707339820092475002761156974425725296483368793685540470389559378265008713811392258415361607638289763886536401136272711974748952234677010929061738887204631822894919825306802764371686047902148784657943226314497770946801423294672760187491394359986542468771330297610599442602273393194767283283003278392905875382122887929906596723794037699480101500877594656756483574808578225446534500879219938173669991488259542716966750422995359829518151912037757444419770400923290336947160617726090992848743128037095962996858962713998460820805943261884277698564952176940480603570043220387929274309285697357621331074964628152086910652083128001175388402365488491260183028766537166495839862545117052144355967944871217997596100936052414240002781845631759050315249612710397452479796833918239592351395008097656252310332770014996039941431278786186947458401126335924266011438162873050456157275665087678282305444071461264920204351850901831953541653860373334116801911132121315163919310350277284753410367673437372103006713024576322669443319058871920745594478312661499888344244790961799177075062619942320589005780700200937789019519064175022268276938391159614119231171876675538246332617948388062215024279341158897606275670813674313109563965276255982276421388857836521205148556526910383687522337154395276754908546037915530518673749303625441974699320239627852474049628022230936101524113630454016054377332260778803606423805431602921330220081663295975706621236168511745754900125639079492774248555749504279166629969625759771316923340082166272188649739028667549499462423572012991426693674992220912251904368931678993591563773421071221518170733915435638367637387056395509319804704831131395137722078319151718408978016547146290958883163774844091495656601951159919100367488191129603569367005182306308703500568493107811802523053927267948420236345634922210766094841421136322768214190882941219485526738271969942126436127172429670710442276553862401424937771175938729472857848994249905338343400073486555840004458890128147696489241111406095084424120210558215424627787596815238067549310132137360174264265958814505052670601825964118501718235959517172879092245761211192875409171378480814919457179316599394915990705033899465017537600789165387969235412304186580328300508037143642739804995794825444790544556525485639219605266057039388110520480119857830442820273359709490203969004888322341668171583960738015127473138141000883922032143495740344598165995961859403726985644405455382146394545228501867861344122617292814235123753878561672711243595493236097066976288417479687998202182260284418680180535138719123777312340036144742802964666064420786763426468773108126695398174088889949479767657067239664262975527322140459806343638576906077965626159378380672695839376138543582186310084265356186715702957794468676499432287325107057190737400805683732790012823843208176682251876324918961426036093286543769336985873370109877698464778575846658141233618273329831072898967147131743671585840297793832656752289841503109975225098799151792668439516857472597793300841754000926124225082466617711095445602584046844104476527292212906378723149004208459238396352145731049217610130000735428037649803222486010939716041681960166722375771476380317032226686982155997746027131385889559622193044244607807643494648188896401485817159334334418814504236281812957761135973397979077687194079653989668950219461931368869503861572081976272413367186805925796915053401868938533314641060943672596207464348896355285119489986804173732664971231196571341687252948438778355444174238421282065388222452248825865200750225583954300614075490373180308767152796353133452200465996342770414872529458879347084886600070882964022082587849165574577539615790461550743693735137458960858854857835849129955548287788399035182690398424244996786780773197428923903218049502241669646803433549234657052175783354113123725264508347877477648537352173289637572860709863391749568029024154546257850211943004155834640129022053688759919284323021965585965252123292385456611435747523425886267488316584419638831533560373268396909475495793173954119779352362230191505817118213727343271277429561092942874909294025348618712941408512229422318568587590285061463270203192692173896526213450110359848945736999439201228574712353917851650979871102195007966165259619179792136182761011025629164880261562366418765284793225501451408512109276230110349125340982157865428258113233856371029108083049101370073730385076185872378933370794629467752096303163570909534155805770753826397049508184062715879438026476756694197396146026766011638665380100104200742991865689399288368984386891182133177337144088258072863390572157581073411535380463084995576480068923515514187379102473935705023309820081580215063176432776740552945872327184918358951752518205569442180494915059481021378854664127527435833735680393100622112490610773043411703039586743588085083888694992441369500163930591214000061287879775536911952510844814434739427408922511931842153667933984655925951864361680899383122723777332250740131786046526382235299637174209795224343195477396280020982976902722253960467562885464007820383726709874432380193610033678065400024641338518334706546771237595481364998777001950430888350692960230838807170240671268890692202632211643046320312890629511240281583608127574699985983980191747883442251033436448109721411426551097170301127781620845207023765615640511030240487765941734615477220536038139969083548943831989874554920589652367105749239308565994216957275708064818291507219276759711126632982877030074457520550803036610873758471302348580198557049100269238683573694212758507262579150572515474999296770948185540337652807641594077021286229997332685822809665040583986858595633986734965611358595419358855575215561441910935225488577641991508973707585953305880141319105478190985211586515517821779727924466790147912999774682394334479184973799942835819430615755203148867428526955119082677422509757690809117775191772101027866704264926190376787865505782007318840021232051191440232772360448184392483813437456268237349938745166822549285379742699761262184342211131356958740057679041585754890281468818536609834704773558384222399197277463836359002601146372480701843678783061896080366416830521928754365107183397199787431484838111428775087298480150199533346767322583716701632171020217666892770818585330680188517962249362031979288920670747280267629896433817573247399061170852156076564468436670979231536393522285379567002755581103395321255343580092220673202172011402758932220409695282711819925279156175569112101852256666687584176343689627000374744450202519274440290294837598804016505563828713516940382837159326764221401069754588472257939936434400535214496787114850740890870980849967666644851409927994594930097019883990751487864461864649445823296598860049411265150267867369665383526937530588653238409504386605851882425976808348811207423446650064591267848275740200111794578226118861465623615134280698541588188616426817555189125281245571145467890786253048892603336026875385055481910265905866118684937965721261526048960291310676285620953135329631527410537646074691873023885265280101931001834833869675183525514083835742368521356531127917351778383864627133074159723100687203635727464312294887290525307063083699581740751428519769386633337291399770943207333415286442192752799689130524936235191218602226626396938762785203124503763481081655806704943385994457386722217908149918976254198893226862702712271843945175987706459490167043875463464916098895312541886286554595470340176059447109028516558729392828248257134952227394571358206027675874801205302781266100252509215147976276283016517159673785409518818287799640310517509838763201078852812180978253587649963200823485454268561814138789158169363069857104758720805908406480573315023232115479077094342117979598632902962500327376678160606548672511245214468436171034877042821849022497501158880950960049498801559913787291091808216997501758765650155348519532917971561005124419242573617780025937555988940905216458642343959146039083537215660221319058688549259453713238612368928550439850377015094138095411896847993428465841374720972198704598027791721050518065022815335409077547624637876438523162233476836094717839732324194153776810839719439837561757497979753134629630033786722669419325234627312122291336850078054701956640440962982554634044702061565951674898128318650653673628703888394800463187558796229657937656963942127220229517709468870064069381780377049826780043164908153093162855058443878104634854026542991669279913616359704904390725189462952779382174567862719912409646577436579531736229150807966370506478725366830107771924554740685306361031247983547620900662390314354672994149787539548857095796362572649080448336100877891486112873809963656732673136634088863154934356085731643170746635806614869027847439821027860267104917542581808073208335671902492972599256475526591456965735758743277669434022917881900263476385814748310291111573227308905856367434492063743624986602537917594915227371197621667096811732971531559514012396225966583183330870771654273953450194982639435363694328101013023157543230059922196286323893773454805019716744241722142177242056845237168506710487586848967899768103286796197576650410065492139278919796450894885798584466601758131549181080185781064977717632548838560315997463518637789088565387290430356486177573670051647444318998136234077815482991460646671760768073082526096177755605914915139636565441927110213553384984453125887271952296026643313285577721111502087588083087025023570097221270724476783815460466521899034242480570393098517821290123025485131415008450401174833994516741668680195210697383431743668911187630374568048406060806372526864288386938277568102323550450040921788303232896930607229215081088499683386076184086722800727956327265195806934079048419380100340578662691482268759172723846234924637723510935258610690287168322422015158306683921614721963484780385919481557062212296349493784356058445563334831870927895842444003752869284517467155296117625792972189780418659983915414670002530930993650329547364380132871887070204610493820884566885579238129512558540620833029353799975903428751807907832683989833472568503506781529687368767535385874271046240193682440846488527518156989501167521712164668700433252475686755279992217522868758558797131995004190388798846318550367207495315394204778836595981750147450477403057121870185482278183569860739295427320383696693334510923520454750568702159864010904624757833308069531181667275975788216870181563463582764283925579188043258553309585373428500020492492333528410580234161778606418306254139529544461647601199937851732202755632157910058605955487528019247140949366336493168875143745719182389764662001877207414823241133177760377429677057129778876532306714119347230039286491838158140302935556854807262607970113552135904508207749266376433546748072365874169678325279351991961696802760540982930485472584357751839784935912024956386414686470184514343958482345289959355789502601086418545446140455474367742328130699198078638409299457071571361444061843958053144502083543362817127269043333052104011684727497963862306817998995312854105232723798873893702666122249679954233228087923484298209359060532432171316016840629157764325239656446481885567573517151636459327954948527403699077086578754624898108347289114801084026792648693681688399138878809644674955487818984656074962952066752315275183065247560196425708851200728446346916982799565563002406479986630444014676392505467548295830341542136063818215637283357403145207621102948940851506033908956298653325175813338575580368198605855586019924455382382026832140508583436355195646818503956506395410130002584620818265942541218494029646689124497775104626241420370648106065039597673161607387855938678018943848929813075422265321227371557190501966680857930991167441290927893798256387731105409981549425972121628336629271940185561175705964045133943961178532985416832167101333549574513782857330470423556767573504151274241792424288011441027211635736691011874676836563159292039152416613348717426145591765557102798144390612746357544654967311534526267499555021025968079339683864363116906093789361473788786326344840703537405965465285785649901730718347618983551935140622340982267478064619293002749589420978566641334113616034030964679165455224412234775862495508206657836463625751296570075878419027873903596400030417029774572874974440594439600365416552381059945015363636702346094515001657515418663563148530976434238420330722264207695237359301679738744492238894076252860702355881016232921922326520861349878129082210320706227970270926182216843958973957570298019628660265079206378113254177391326594770207392666486180028420768147450940298509033991557873571293564688273516180256885747749142043805483047369324364165261731776605378941046146255845411323669750446355311674511345232402365457658121129488855981984043365020999285472568019187186705839342628471050793934323667213209910577344233394369714971621249401045447098347674003684096410772804251486799028736839968872415117341062187652226832233200528224752933645550955603161460441381195947870036532290921998578027826178123157640836308987807095631276426589588965359591289630721517947291889911694081605081764519845727078630655093553756885234560646323117476775794772670255245371621729067461576057410523170245580505535671231993522464316656713315134026126375207611399335745710777602681452521199101097277901840224550827336980126241635168440671392241468195353180620877448403042515992149479621463105733621793518787761291837447799236000942987228092651674101214994250043256851902010202609998018983857940726375372086440975387373821728999685744574679292118112096892478521422103682865707999335929491108985766102506805467271626362405819072233539679326624608451858290576494201671686199471701801678389134963115734803026040687035960389314000732028191353506845155829142972923683449188091110131223484434478437643765365542307522455997629126299297665861064067744893746668191775112976293114079520091590524430452278389737264706533891939760463843140011270724185083060103718533237882949159287488016778582995055027374314585047857086309639794848673026423530159279890229022415585438371607606577908399738469962481490444446428405370520728433198869818602899933681980565884599266325690948561282568720118396867626636527679851510593526124914453589214376122530610884852947426701791516511517325204996163263841790999502462523878674074081985078395269363973907579622767121815561980606343328846716952505977937101020126891802552343652219596412515832984849076038083400678547516906911016391690167734258111620471561463669367890163346235097782363818894716757690777989876302984352027749777340236199243180604670350985647482180121383113322913763663447944765768733531772069913691529701408290439842167258245056835585819482818875810969095940214466811785325759860504636528785473237743203317140656981444357286868269365589236459849799481109943283314348025014473768563767071970676560851418290994113387882905873118278351373206420937390745520244729894905750730332257213508990392061637956327927950987705641735473166330542632332439817378489388221181422165176961591624104047858908841615701510887109968758928009567948471097327061387467592282524234217147575395568883708811389160345098785152513589313931811175300564268787836209816378463155299172248725048133393184241003280048565676185227126758938388894629455069470513847770718051136498183543770875803819086488134033861482060006425415897743437782224669026288113555397711107342117158797777834172051035568912063960532364055526779324038946790605430494617194847127572647627305014427475473952497974306839126973231305851802699488708544023467118069979391427079797986495145341704615177686970691100791663573546951602305338275911998368626982824036538985668684366291232415395710853328073632327636453025039705430817275720943020524853823592137075899243678343441810952972650724598162085989712267092802200140335351529752747493239898747489146176302931045817874125282410982800337973726814523099352365296635754449358339340901958588407984166213280327580530142488318075015498799639954340985839934918766489326346295701242777211008936571042073202563454644637126731382747873816517284218677463096802714806637323185287790729092954797464943865063585441511735632360797685137691260287911050845801401798075897957388188871179798803909059978927124217710565512355135391535451657773611420823436175273608066761715057264498533643730514079359163602355567588676944549519943663594991456613238772501641792603204043446062882810527595690695745059331144942323252646399977301310275762295960297757188406834283465093350096022569993739526117824755472749848299702420413704799544366688277459148034981917075819918216917967743009969228459960803422969755138590675801901380473571645195962337401303245747518941888345824392215549184579762047813134189753552230768650670326233002855732146150717616018260942245700735727506895220215594524788762957376352106270990517687166882733395440405443061329749223782697341679994566489353874655604044767761268664630079390509739589055519265300695049467865062603230066670549752002765694609623379479468235567569158748220884407995401259774468362266773139722507025076144568636670034605324185981390486670605754975820036629272185159250470027322319682500835035776691961148691052927970701679936641140285519387210035239321608516823809301289619674267498180853413147892918173200448377074089677883130912844766461856054459417632417589953511736561534609028963775024122279610132852117090282360068408949279228182270215509648600374166373515742154489376134338298824187721978743110433323148358945922803367911527866955859716721101033233622459844947261299420892070336723079071367471027432432988179770736739190705696957392212947149852552404454346863482650245975799596959933741460216385404091117679798952193164650819982466335891015547928650533366052634611742382390099120417600777423813411974783029106944779368938437340792718428352993465451477025272053724265128603599010127707036045366624415469850230008410368440463477529942555505541944924404743905223884373132745219600764879195713459520487595830350553229406280347235604843208027276722625035539846915458478110903829834557297330512980206708038688682588412325136481075387138302365424841509451249674693407023281384542384957919669223936163942230139925597737278398387394495584033073150381986093934859100355263806250380672327492057064667468484286096005342814107743324257709023110368011694257102299047526646440066130390262295115731396337001748446141582352110386510440978722518006487663684655242636506544820121758012046025334574236399620146257615991847405661320742717835420774746941807517427499230353474380202111465880157958799462979171362285323766952716462886297038329536792117153005450253233551501498852649708228051077631786343787140343990422576548930764419577881757196514891563496875240355353504585764067809788638635930110382549791500277273324873231202812669775114711375685388658115420422124634327197661597720143865561991763589577745378165119890414875405505990998966773252457865886824150154447174772659603946798239229965051003557999902519648071503181175602319827841128653996827006680029176659288802423317877130654327935774272290200899643292833637368113961914375333221273434522341891229255505174447177326702967538910867285233771896820997888456356644574298665546261339500272439770521808977178156643848744920734813182295329140195224798415360282928993627424008032819690662667516980331789413957067255745892051165400028453222860621917784705972940012147237636005205864363502007824390771831520356506472577710926195052010560011881436141151091495875869838420677673519794655098353600338367437362908554716919697497562519133629296046562116556383724149090778463501886411767187652748429006152496740106201492487595489202346228102824902043877164764197174888964817287542873892853403247150050708104037122706832701430978569081177686517606081628206859029217217097223858869407405527077229775159302179064823075888117028663489721846617314257205086394552966143520340438251968829042273770665812820229042948495771069592154573579158481726751159962902120964158027867131561267933688776647911518805801462941805513385353316178903870031923782425065360746087392602808153652227752744090757388370860830491570599075329061374097133845743116966900839173817854266760157628777687821980332258467140913672552247638130801774190026662065546630925515244541274716001883604314278645195944713826883702309390559730634277677822841140678233277510690897611033776062131871986548479285947673400411061791515194636327172737812759348797147549474167909646225988308500300955893922457286489346640247025444533925637152878410848311786351159022130590566046101622629683490364793341663352534701063835006396833883218358414356746252038850781656503780266770306974116354351542342186201490079571372923712608513395879796440631565335143757700972926055544561900776999507473822538335154554663637004855275896963607616404633676746021922484560630216569643756802963272517984075066330508842737304422629165786189913918493683112236058202388527008176163763524920138412950948340450970023125377738853882890964471428048421564617449570945208372005353393921955368656045492923714822569282698950527797912608479980204709411286602512012711503259716221968930593954388875634199282779902747262620682971722296753887480528091582032567432606857345789326678059943072294636078508465400486081366408446023102035838773228624807516390382461336661933763761945092039789280917016824443820825585012612807352069511587713352830725951847684314864835046386592631723549952998468254939489627866077986551756653623115857514014020572197381736165906218085386511891182411902841490356900034056535000245506840060535150841245513650681905464022663668580885575687367274566642272687576968798216857063970791102266636160795428826372730630478902687369085933520840045137090668648364874887720228196089671427331210391983200017575047598295974207636468052414773840077591369830746837403230764288126780225235099867090243175324988090768606411785570800183316790288895772364215779561313402669357621422413631886297416665809750738321888931830856173393235046100539307066659230114604994392141104063676160488841584653303999588008549537364835160464146447772744562002486709024797268441473479209292493891989592730840954084796595578376401334566344922971783736706366298387930053176364207481494703434553489206056483838167317644573701826838924717418675308662187835965536049599722146793967891657265752792448281141348704556565540528544038717431149196099774045236836191188125451106654563773216438551296577336601965811346186279696417027842579372417777241740716925926571706065398279443610953754270067234597045127127734877647474998982722582300786950735041930148924769784303495312306247736030168146812459780944831491309459645365738386070575656491687745318958954139594428587896086722093260416086272405130414851386091077131838977038911367001628361682470540253664019278744950136675223983519829027882165482158856863764528475608978029387963677471776493709510618891220481254351454836860958489422440973395818411783803331738128051595789023762378453079315445197594282765105336969660954923987512006318815026756894278198560757328676748252012772574185269186130022999238408225958842696821431255039874187771290801599790044156715843620878774043900583365411945109660507296039815808426533729208330994753465427665333194529725616501496696342093226799530609574495653471702485086540278514007544990010919979893988540140410617041994363440665238278776393801495619117428715764849099319695920687931451888806041550256356750674283442083719409198849164365263097775203710044459475063328651524537914663267948742871708431841668495004222912259914222814570582272157431643019171069374093342887455276848683682766239037177176391188720163137118802713661244630367492226621696993819158342496906126385844847099686632553945875195827004735646709676179092518137616575680470378043096310618101811627451807950647640359642017361505147928589023231120304312985130287689101660370181895944399944059260877908679156261439901079155543503054305841657574732726350270497125883083976664943663849632538921475776861903300926485273734672265657991161076148379839209515852534546533407184222268278569900554276475280708921706430597668972863518474294824503681432886110341089812376075740031971764436248975462541636441042826045630903865849272815351284590487079543445216473681156413193631136860574378726517319953580290309086136639969408662690261304213341105911124990739383335282537484725480156106067836655155329476716391176215735127962599897400761572192764867588519280453212604350069505180296265319396987940435731346187141019466138365847989962218513891602940652678231357187819789460733964020760333912616149127557782484034713996256856581054102778210296453344230523057963061369357879048517731208651093990517784102619639913240659171499713159561335142234232491008749803852145294994445379289661687296273957068987410057911379375709653489899165228503015860553515242660500620955489794610787165365747036311058581607844667842326762622154225158462749029671048081543497192183338893474114556876035284173753828177185718614016547395957900642708475836655336018865989233284469750661355556092364886652465849625839814508371225040538745268134323991391876089757876822840606196414378464384702367366163161389420462911261008521378813329886339129252944002483935320026916644574280946228238520004206712310209379406812820199481295920443274785924173887910792902260242379472228769906355243607552002248938648556779700294527819332892380441454049486876104499339045865246754373800894358341183004622787250216033015432807370007129546122873021052979347332354681867709511998650781031772720298178950201141946034443918711470088920914304890944608371779565603942198622360407632708476581748782976373490926421805077138765256130928853010034035699440122163837668399836691450727378257559369351530432928010327884609795980632840508757911286908959901375315706462635010066670756549687366890725373977620869126384065506433828777907928428772161405655539048658351720128296051189635847895844702922901701345202072129668392936695333725164442652833798123704331164597086903146373808434858965031488715802944948375882265807260969393101141110121084231968769390145683389160825022827069579296343024092687574830898201627184485184421019097081417035072655409298062131747529763145525182267537214524974786908783392003812181460935465565369380623135097422837871506650866566116127698155950842800931925683188028312305247332089791037773807788955394088300507577770661938839931763658045702238715175479854191922459055329681132166459112143171188991926996438982424440289080393221234245855698100618864131177298145635564615888257232807291468826195542322196634743392615979827279322535165046557828453907722279587730726190650319303609893264031465723675903584267226177124177159237718250351637916649316412040844693732377514521596475016037717932577553106290295878514089831384285462687886470924648752041130887703720991424001042387906300504974083047892469737010461619101851504732320640993279373193550415799281502911641333790602737080160492752235790887340364213461160462636558089944638712343034829577981510511549542768183137051079980720185153029079720553518486966389421917825291399500523718428461498437228294777503119312910067015466402545911692034593799817542824471237035541494675934525718143087116279229968463930661399214949255205567994061766979902581273360974216927278381459530514536279174490895835211938792339214679692754256555764323233216604013058432731421188776637300807422082457481366493945185726834627769766271139302159993512944590132841017882596817558319332317529465384080410806997988283162223569429593972232747211328359149232975671242241406843801678582071932887013143146806251727940525814719893502324904142790443954397616629491338655428585718944220974754107511253306372191588184020594827018262504516757121707786641057907019684374892110420621230242292351328856650926166072942785602204182248665594651898887061672357311693319740902892440868864636329698552578468025539755445116427142508840829077171105528994715385526723085338406514645224579021264660695647852670300226914585416124334900706497350944733829184468553632979726045288366933438453384260247209148458355630428805642035861702281844046227387296961016555994938279038594931171450978033692508035142990326319284494543024435487880421649828035065443694787199920698577783110566625725668345618519499116383639362491283419565022393653322736381349990242408883797947374179978730110449247469840259249909898573897682335216684385446517266639095444731706915254394186073615374260005928888737137132465585842785302446394619509603516184300114109118919447331047496647788717006661704026622228174654567469013970882322837063861614600814678403902141376519241184189373110944071668291587471112733843471168108393602600872798244477247926003038401890194074731515722277610565331458366816797186692070765637300056469901547589380589085329125565128136981676373160719397910435317215373647437021409416285665370816372188843899697263081453445969398517063338413211196023898281909909784200436505518026088707036766967971171825904874897146479215362701153193364711541533270500910195322144771297703816286183402785388869937632394709738924573205397763130501318169551773599715458737990660864816410043191530189133392447488017508980584621960923693512450587982475895224704347367577303258329859430399332882921089261636535151632959147583040129410627138647734125442327175097921034981504786938376185321397786696312033539244532540249248320701749492483499218735478858707611811370190753679458023673568012595900922812277408068217164706898448662354467700975074841911248808289992530304532425922255774887774686995185281300162290376494238507516221500963620521397605634505614398213469364902959860153339093710291679535880410669772461402984591650088669977976315549381195546373149182835552763247227159692692268304419390342596149736395124932123709029714022384531780191371399759868462564936822958071347386416153879242156412684787793964082898059801540897084436520644644609824112897361343910953705630117495665404514598669749148755268125046547329069084785597490290607347777241400306593307590734595910809452907643785079660293964070593991169023221844403728454243790658405016681551882138435373597539565954687571672139408352595237973367112736431731098220105507581421222782857761150426758494174042901429059271302137452124541002689911085727934344851400502407319341024736360583077008632331295790857691218763753642963046485342642941009167393754711558800200803257626065587489665363374446694212439606006243824112327843014866769889196488130167101525639600660109969254553374203227854152887672476701914058381135739226149236863575186027687591754450782030689518345921963993461759050735294298413064061561004653286746980139825827112962916583160159391245684674230747215860695793705536069233613214732575145938258460094247935052006764178158835941707985587042820595452767636646513630541535425266643061664509777287222219746091935656529734081291361929155248740135445476884129003674689484680491585715035804241090259630173303786632854085663800645025263886427897405165754204460138921814275570044039060010956322857552539207352692367609036793793894066481745428005069091871239536332223171691626416472689884267461707095664433955099295094194175768215364799798487778528841430580800356437964534694485256825938362869942348615543587693834784896450551396241144739097943554275463940074462637076304145011349965549563444102597984238475592820841779190291546519892803547195666739820206891929379260060149895496596273240566616401554338266988394103754564084582063157292381962601429261534845540919668397340724062150008798249080734728412380703102543904943836204495729728676272428695272525124843320362891851205347817053406943262522341079574748686895853039927396071049198885051470815584860084402430071446295420658623714875203800141771108459554996899335669387138863147024256717682177602669630722202834632668082240806156207702552365258031759660831105099847208907035374903261513471330841621126787147754039047364666861201506932683295809309743258727876042342983503436249218812585646434097429337704980061100158724191401529427644761636794599058461937322650504177814724878382831850616297393020595574099937947223202514999906612327943029986373425953532091406881981531650973372856336074743790890607179157789944505074167061354343041123902768102127341269001592195862802949156495354982223411149561877868646022873973837195474493316243320260419156544480042463301707789223221210375525714648272894984247452828876673180976618869841618560500491468432276962241025100063315120942228420816129462247381578527538416961485910316381065383458544337502448295161722219283329219540613564361343175878242479630684149160026617985941475782769894820275614887043843147663591774823824291467284335235374499856386117877305623620552366689202971264252214373344097828352076128325638672769638110731321067143982183250491292745924944490153632118506900209017382374275674448234714909034166333162325869484008276676611213599374955054893919941270893725082646068063801254746092169720059047993408173025616894243508270999657799476938102136235025694051032738503638059732591156975525286241619056678268933365026922455586489402997475715024760621144782424356700255359805173484182456262679024457332491761617678437086291132196334745772521511677151630245822555505579295559164580144394792606429644361053980486713055734650283536028958472141259864686502476604216100516929425744085072920049521061890988085532839532346011680907357827137836584547155312683749479027075174841260355674441694823817626437940991017131313998835393306440050245136603726022013273197519825032417468936995903034484835725291799485401715356883592157601189884122587601537007563749621008381460720406772091640586497663136194696013722206330248428072556440521697447078945855447968217399266670937665900010333281137293618615054251938769549293899944643630502787148344599561521163789629831352828563767578764751857357551946604998544960760759128443657628492395387264321320311715160581019740578589351398917202094010765072720631784224053532643768681775880131799255530472750248631116441732168430539473690498341111437173364532862520521930192649349358174718433525147488429482582593476037957962313452862669159528936192365285513458101155812178205729492582975194438395263058613926874849589517501212028147173615268910173312414384085424594547752112281103232029222687204364893094450647717236240304727741460217487293226093826159283607031410418215237729191620173022834899316048550325187656782865463074362107782223321086293597805220764498169635467908949785886623854852539053682186666538665993421303582867283619356638644970354458804602183589247734842798077539824742200661657755134194396887387528871426609730563033604706675832843654850335500054552880536054854393641518964351885309734093114323733326748904045907929528331530445654285724954933711623765511728875310654986510003831703085522848499609294739947731949300904708370149843738897661526273970867844021190785437786906646709530206427499920144057501000770503014743962757802676810730625141166566877080493816010058910677866719380306292266261186459897726507269846125964001293988846830162515759240222136185787905454063936844982144466854358407901213746715539600822297493248369713220168967593681155020258159485749951096300539076477655946796497079536208547096010812993149957297827366406515496179163524508076003440993016812020403206838681100749155237578522724508109166264007769017567315533901090865432160191171454897987510560043729979332964753122507951207651560898615510730004570423266450648865230889126916665940977707759441388882788353174526694250848390087071212554694550476747859020421233435632690073237521042428270548398178590408123943888724223670833656997672472682033325280121530169241329546475869279212458173498642959083182117169303493744951205066195627945090638525796613811280395586200654119838914774214190900037554098658357677290501907438188194981380316430991322338710589998298293100747142893890861205860165508401931256833616373351832051341906132215677578398658680972165594288765881291076359634780012022351248248085759983311525970072152037942437343019766614771912065520519123517182135228165699974642103950863206557197834830648244119674950826498615595551881874130800828874827223057333289215972069040677878382035887089142625564627199315418645702683208760593833069724694792719268093790907838328315644913785275085350416507442648306697892042301187800571106956086259509845312758755899844709814157592847089684694355543232705557525209995106402087154545336336408067191100587071883676099611707918533136407588393733088429513625022939540613986196130144205898347601566874910423310999837917394141544913825842741919943528058563441838942619812193320672782355384164507708806238779417300888260722788863807883918982902294991793325441897927622868172954894026255808789338972790980302318006526627538108776998482009887504688591281540425598966802308732705861733091528408127191674159098840308082411717747451233822433994349201716418527522244287646437860079657734997475128398358903368365347232240274146355112893377781674475926912971876532675579163098243103713199127519624399261988571473239463622645784336120532649128541567848397974139535151180572091491558750962984101550323098834026780473896608366258725184413927702068087887052781443303454887534176967999063972478059714786825535317161236023393497567945841681756873711899764607047716382506398531184437629858978209287737411165168635993981453682364829113221247091065938250211169311806954937958601486098097580541886640329235642066694141535973063259195125185296800623474379294709123891674617517592210322890499571064116915324354402115097016314745455526277997838420837582534407056121759121325355402764349239209697734936880113599950289812740291194327418335813964351467183056785673413506637610008444343494050564068277188440644204071484710043454200204711083253926352345375902227625270253830101476736226495112213164654340275776010983742212275513725281897331784547537323585139379574236368465422470168661658527596513124136691627728599398101068416053776133438006915984737125912038908442483590088177511406137127449110345474221021157643208626540120748113985673253566862054540864580116617166005583951943250969283834742895419631131083869647635503502547812312653523596235015078220833740216190070517057865848653513687542404825297376039282254947215828866311354696216423240174080214313993449885347353458218300188924989264791276048534939382313499243143300706898220477090411289961537454459987485585984995193435311115301224200992277963994297262708611913831718315970134473980669553889422009254021398633646810951430549102840874172517091260300167947810655217558384836382222912396820709800335546356939633620789121914449801936067201505862591049487825352618991317942761660518868999756614768064898985042557927265735665185282784565782381923627425233450627071124911166370158239047749552546647345003056721858503606136711832965992823455521556679349985600313709532946662889200488921632104477669044453156015611013065421989045775571920880690051035819823714948310431130982543013579896759416278653822728611914887401836740515529168593164666547433390455429817337626045703860517920080346281128138606145312427623587503746266324230861297513927166660211887046894361207915666545794695065023159545679087957313035946038466778376804731149775036980090451500684757547685970937978599901693174728912557218704978844879827221790324524488868431007087571504961195596430665237808553447190836797367318613988098020890263648397632606479814004536095122420171605183235288682468692169630518802276634903592944216220935595355765446981805870173361446106594542569542058895943213113490748465750354359547315824322269402964080527238236379596157459349639475534921659072595355586968021811718216278497535865719078298928329348405630936812331439313302165160852596853642008357858393704061881772672986742569017899680016722237999910573563581770328540360187276068809800548978763159564181921893434303367595489891247672013107859637031999546793014401168150422950764729229781143190263226783665881986191680763359044967690228987705317287552991886525915314822467701206297247628254487290794077284757531931807537448817521546397161033182872168219389410687272293008437774773274999179127744589499021301113960969500785036122797211349287116198204830372487886679589427743192640034475882004549687994789903571890221205892845973529765649995344855121607940850587160041391131833662718497802850108297981285853801150904267972809737795776204292038049073245856309904048191869447307531611718102395196693479740577956609017240542129258484156941856500627881630632963676040077394987834580928629134616666156128770964683678625179568645701632492385150485499114575337357848890252933169298149416166893805437988609531363280094631637301903652786280952678475712831244577052407878668259970806511564485065985459902600883421804786845704280841928058417300580248563991021675215330306418406546292529703952697658380168837008807581098336317992701483474028238098116407073399047087183198634791910880627101488594993338744416817976967483305397219752057164786251955494942212929496943700654813721886364742140197780882493827373798854632203778786379224252302254882681514931205591252468446559946588799678228431339126007522332617748834985922369324609027262604091461521653402636278852416324985373299276913805808247585750655997586920922268391185402473052659075969920504515261699438466767564321816556486887982379122890982940913296663359412970965133914003943119351231854503461823275202219231124310369687558552262626759541558532010962877434321746881612375767706671089905429549952135326455981733257255862541376811220103865886123443783794823771977149837808832806286948315153088289970376872979824475215824181221733411944924117169061504477788975712554635452208927688000323220560064495443464958030086032596688773890951297833875364618342852820730473839410344964851994029389436795709203836971217824416692903310910710360958416246969478103759805513875797565738514801126058929287577082344601487505777776381981052083113846067702383154668050911156767807936884330200757714054928216504779213085108653751141649364487504712262899075089691034725581845836998377571907637834725104936309794830116399357262166352050219648793360659193965348114483425599083421507591992812823552277422030253097783508101264002883080643271537081964356861427247867197979456269420071507993897998670840880489189747377724046068855445540769199370440796966504778151553252525765334276187362487901467104969244620377145174737401314289449971470637127856914966657128654864498786700387570321019012449530211307230890797648304272228537840715687928716009468974186069934162116047586978917165668720047644262932182063687226700845868902051396519464656449060832303573295745932965784503461304617828857173897977864720459383142926653642091876480541546349295150925860259282247955320387349794895974227882747089405636596070769836595625192614983631871857959997507131698327154489640786019734758101892944785410736716745551319798163437739790642741571716561290216490533391859114221443547114705622558749806301206530023260218507712182970027798610242597107247828924215547924903061314287623396286698153912475122402724433774914963931467157456650129094998118290640436378299595210030807351571726501686124525930853392257600766236009724917153356328248139801223214374944179650148918801373478217260403924784665495449693394513560142180240885809218663010481480077730220980732309251613466403050273754092123702907772747806747904677958987710680726544188198873769812104704768703020109725825135123316318349337805950796380633872795978020786083877476354275278181997509639458062947309163264873122479815323780946519413574344152015051562832957418514449686243386223454995749056956410882344750306342823521678043580704020461438108885970975202154768084926248714962476193574207634368968671141785945152618155500373605963597372851264152289797343002445946149351127488572155287156828713146449118570483601043802984565686116552975422340434688359501622598556709911092339569500178576837175928617329244692633573923713744442007694700106396445842499970841529377542126607036421630133620821166945846849707800577743458654522886743867168524735041614193841842202210011355003583591774329131164465477297096173284958063076317824906363997340150470408847329031720970595678946301987356891274922026883560612567149648344988988259524998381790100796823299569894605470359685590506749352289760117077372002965307237687654721680965958455568424063461641360576189913413284378796319354805447911253324405184807821857395213621178047711325602328080214548272525426338218575096382518387377913362096711201753058770826421368648754796254583277809920186358392462231052901106926057155315722826924133147157121344837832414947421742074893169466217860317511744684494310414384803450234131307554582546492038159414278670929504235101547189067684748588733359227341699503249272226226836456941377696357101141456386309133947265524854162134630780273944974110116385810354183231247026405599751881563694335286587530004226730067770376621855423069677979960610317273237670340573705728623655621868845777590068396320862705732188716100517623336437689349967045123452084220720045182587234482133442906269055605620439582153631481489930492941902123487128367601505197124654695779040077689743979081674621146570951778637984163982639103333923937718979108127732607827164948877077484529050159058357557407361286677192426920406500411467101047216130889050386869193261674215664798209527391638389089742599075747540085110130384204105948139290571317586655550681546598692048833849771249198991471885347896465248072481807817865654804780912861892192504007812668334212492062088962545087841946120044326112305324946688382216222980693815997874568609667096964455957192563136090932152468350569540175180376900161948487939097311227895572556515156556867628198577435215293006444848562200919934769481141633043853772069674156602111503385756299806657892171390039076004763377792181265833294692022988936053938526698343776291984787419481402384526777593891784441354460272703296355541121440608966164462940144131180967712047581952664268643812609874329492294300224958113709555021496617773188444943060882061488663922290053664620357507869402142220629540338335796439814558393992573955476178269238039827013483359298487085725219839446521410058776249869747226128568052600735781229426163279815177440565436281352379093684198300288581922750448861595947349813168753809137347661216862122024981209393744978015316133272549443356105617215920608112474122567376988347969836648575116745109190938833460720484475065136457942829136567513016317975983317048583866396668895528710520254662085954866470084364701587432653389854274796443920625876767383255503246314088125721160311593349512030724116283674173566146193406976165390491201359179551218340341038985197269309169485052230160269102955753427288921400330145446470478447750610356401452657675651801016308106085706768618005705634968798505186251470577938402222502182490750781325985142985516047665292808404525197405474372859618235727199925696362961672852264088230586597926017249478105874359484683181414227039336965447510297427422899865263737457349024304557856710279628546950115505609248432008990659805530073447772792030798756327515378876102090436176008861646016190311768867083594602620912847646809986139077019477677721050227449289622253558812585682957064852651816605868400646560577794458534272443965649204235156998417103351401760060993210454747574437524634895717471953776300576715519684406263502408019251283290456586569862894998442320635993537006154402065487577396729497236821094827621881344725891795357825715281185697393612387020078891843937468444346740536795739875033107966381307459394561568164090393829550716250052262816143069332065649267922174942023428831830624607229981329440525052935699099397178428386717701939893288148038682903468712975749008156840892673594295317004511963108569677851085070432207378853011100136142887005625790759779097277605277280615076504576251006189126958408287426795373440165096135367274720632372869368893422724923127082024006043070673482179197525135114878534979589342973850136747346632263043237798105446297789971577985434176800834719928798707421086838371879361602979481787365305453093242526071003724224423507074284815789743542576177663089699639972489206896726872443199401984751825184754076868424888137783370686143326979634765464271100282416435375607692396223312349580737035253406265293431102169169290995189763931130111520857870748779819516280484485787587441875486921370030714530313671100480137825108447347245828551897401267534037680633818486582880778841594411746036957789461622130011695793025650904288779215592173674167841373838231836306814431335819371434122286337817190536121482219566174871712842764826529899041842993968342879326102921114054993368872261981897500569119674224357295821676318937790125382757080368297732507615945744325318708128729261615241673222121629914400874912276633024418569547593990133387762410811568362340983255008921534247794611768861654975106410874677867011803838369124865895795359027532129768621657324270131275694865507540197395034337972146265982206693071217345415163763032019789287095207140899929361890109322101777049623255641372168999065413491756336879817071928970073213702109635734636501317595818278924897167454898193051891120601230949898096219102552572769272134001895607412784666297204001644514545718791966417917672160136699185436440554322485950695515216110818159147607782959400018956994559830118720181133347272675465963435000051517493076420169575410662851431121113567125991607453164747322069785667684108958342438758265346532417948908392290153373496120279478715579821790563511204735273998295509102862819454362234338698212670742698080854110691795596743106597770895386434626723409829680347010609278077799857193557366809913198127414304514663324350279228985974843772150038841279310263626928792267857316592548199365914407524785256546009613677506474601554748379825882586493013129491195855163603135550008007112750155214676057085513044103537277158881281372103858219109665549884420651122384832579938668866876630803964698108409825106146658710523787451485877914317876985518852115205817991307627243173971468382295514440521150637364595099586441265433381791044290097165728909168458138848695458165543871174095695561348569996971793693185961370124903433683561738470366967376446756604495562414237064926696275132945684176167423385654317674645502416051088040172964205849091349703009127104628295266662038010388361459326360060145552120733260618480293206053710679553864687724175075632762127864368910865535458251677233531058725884101976804122336556207234853310815099683655981662060986093626946221423422992717489539096364598839071008447812828656092160606233837997116405401101194201722576600955192943355409566822911597187748168126042703829014872694788850046447217889365371501174029515349476687480556932526034544487595631021420296064261181568861107479477496114613705144661994926487163519148343027763398637610158012359429440471342917109450568893111513075569360419788230074160642870283668993809209476309454525958389944473968253339720392802054421288399629113518557642560788361208337694478372897718882722196233983235909051944081760960489237105235923384662825780108330834504370695985207273781219308293441085862256064295310224118372189394268839931306209170909854360308139280264903625186154297416492498719710584468502369231139620402208722768397880656455388561910034751404267476446830737293219722569628022899019544327243566265695802446569814710808439265321233687910162901311256720889895033460346638753255506703664728237868512264252273773610873880045875108233711216635327106733864365714699736442141339071567304131300290236839263685582054895061709818843517612056331723042598808813543157779395366006317346646159384212778763935912348624250875456470092944186303749561665993778631347686574457534630276495268235430691455069367295185440493693176956753518466546988408167998311997856690351421503135812070941139485269008631823483867829796816690553982422792615709491883471346496391409947018477483030745608824378741820107807648273576525162910921509493675447689236402966431727498743708922380014072600678537518800450070460802212432973363363914767499045910721289350328351433832764627283259863779369458818434991105483646301587388523459989181725872749881251321908219890466023901963980150436919642272137686159185223602381365508047248318794582138223920837782048892434667717255098923991555335598122353448157676581881295773061131558031165275883538894467249166085590614239724346056974910507024377125110219135530851835056950967984638831785352591475578391557812857890164384578440101018338686442594825591230473839000734244468450268776040144176944498443320441820775188075429376660731851784303131036458062147138753663684512616966454811149679101871690863833085606184970864869928333656450095711795741974417751430325713707245765375582841106818606975055411380423759527089167593115273180351199145564914564782260088660084924131437599982342745573053697306230408537210457424571509665028820910213902274453739344302995683731280635119363261088610921021423343326476576500790285921013727048191206620950940474848875529586437764463326879297360003656179064218188208638843449788097789673425376339050880809685758537529445477024055461880258251970355143309589413758637425625275516792957820950605880789335338539343745805024502724083565660101063054222813108448250204985137780945448199803333938182210386570639360113287991301631029037683089501516295016618354404603795650646359824905069664882055554556426784598439619054267083258094123645175720649978421561842096612627139404140253206994344460187257099551782911230013475704408925529030866316280644697908525147281581411917783048071006896407666170697323100895266546802150214571065586471804069483505164743735237757758251031976104494471991175176815477205513265439881711055864386828236318197148537353873254797280879787624260753427404835000506718918809331791234807263438300639963467717161168511631445399993123211850100050825244926321123224832246253742476773279466709515187495344028110751452927465541295123909658500471785343795004092748868864541474508801628419991214524711376839230323564007542220174831518197930581597244839785573344425500934290660739318740046063130209499227123769686809961961456044118702948462904848227268950403237563358050592496689813965405336917984814820267134339294402186972992905143762471639501838931168553698872773427307986838358547568900779865052632705884305983974707960193716307121686934732704196079991201169569645863734245586980063243471377936159291081002254334821169989652801523622799273877656824197599808400155579491831446148238020317220472083578344871743498863336821919216466153083170443336366401586805256761375652927462188748844078611122360016484012330163523909373068621297529755276447363501338132549708998378824847882218746333339541819912658846224462431302243431090562090689924834687810014596728075826699764784086815517450115901374430251987673633685453101947860165070931657582072205000827611254370054100097969370476347063656757663488103462409175568900032524642683259581434697706203011769609195353152013752825715810647181450422044674341868469032717229484536493739311587923003213269798717003144408440623538982951761639531619227958847238797846352664216301273109562057131465757933765080410029218667519906982530832633383110207012508831668752480608675664691291950762617830271981611596535606807571652276762094239392307898960294033418063435827180709137106348706772732381006954298956217618900838693565146041356929276480362399214849565382359862593436676466145939751329874976584271948724749798831008059337562849421397942966981990688276914915330920482159888922371097527351830473996613991151125696444682088018408210513486313702932505082429450750259861145449180359838941747517157319056388770747658367750044706340182464062302202027771017036894447332580236355516074220667215007051333417578508985490160930957760971125976709017216036812862228278004043753260608571560255799643349917834391209597094236132447409354244750155288342553768362979702764004498655094258795887571520380021970299025024721779315037042854037222021708696761115248500713008024720709329914931981816472910364255364861211289084399603355332826380901174975075316748708972117977305794705974395016374961414367222648778288231633633653502719131214707486778140370977718660958082110920642246897037354534181618071717316338028834481430786666731260248417094307919336195080914538942740626796645188462172697718396285722309784823698810142094162240881288022025808209995281767130443580701908039878725279079136434483926304831857798681083405494954601716354722752227437191819855239805934641138184757310546781183337160071242349881074480812358645107213682612723389172553569307903615467399738749113341739769856265652539689889494424900801242351007952167940636004271040595526701577366136432759081305113093661807250612178160586766575949717086499611068779162587486484438818134804406782465482081930984149519996749936528747393710779795975172380138636900356216812155287978007633890724065645273527367444431793266975190383499982347221117347889916347957330250962889429316476944400686702906997123812575823269866054529800043453791743815372083800916777394352492742064415852115238652599890756294701064416819052297614418738281320406015547277343641249447495407666385924117111498122939462171395642924177422717053161274134745981546580825045921915438628934327255256819159929765580159940536642512136563261265022530238812787788592526611938071537384246262933091769358111566648690906337591698610142826186010546580500710468303120192177304005851487636808359576041279768119598737603314504658915277282352050240608558509426399102994853159588222302390202720820710670258345503386418662773889792150455326463824982129191255811513110200714297119470981166709687103662564113847184028154353883189303330524233440179666358459375292888444659958733570767643733950553805365989871275342334431418522292325782929309122947983901979785782126165039114265028714712798479967664120706329692468345053072710753196247486612777026341322400732981052991005428371513372669465830491417017779654850566586419163735317198984430077848461185953658266945675054836911096477499956458757600494837621136003840193531702839544187056496815976784879726337794761286681133187199261368150100768125910141439499320740666208629836759746320523426117254037236584331154852854688464154988699837353991636235349291252635353189676485448519392576777533061479775647323239526907046042693590780533124476752985099844031868807882183419329321520528234617020790237156768510597046896552401256294639880527292304662748460587874586372423378280161808789115446683642034075857436442350986404281838263938371228245859155779561749352307533938174058153130399946597591581498868760794770445013071255429385864592152954781041831005461337218254974782659018998978304013619524339225731700269135755141922788718011274749524266822606467363498181426716606168615929230150245825354931281775471515066138628906003308766024054472077803103212974533705970368506682678355308282227173088863076896550103315904731179989389389724622879239860842885697681924420485589476906150718155843219125556629941137012554069547993000044533312783100099853853219546711893311734442788785549868592930336521860641669348015815011504656538458489844796757936935363517288939207965312065542826718501109727743249262555122271575924190046127603061563017562270570937317827204843173621465011423480394352381444165109042660111717565716423455315902905694159263070586090018840587631651621004458315350431828328815550550848284497406308377302103379907971424404502897552246699059151731716916166084477361274944267156683766304299065272037913380344893122344497096854442394677545452807610436247534568048451741777805042370682781372954241726748516560375391248735339368510894273640157872734942528996674040007200178109178895544355799596242757116840823863865413154121507576156095935129217436117083973419810508685680651689654061739133432101358742554689955888665357449318290882504813686392677215987236079882402465541999402809714948376895841879122513902180384198514438769845746297189340298065245159657935992184109819157717324492397318873429111629432322295666497141120945641180734749410746674410665883702270197729569494574392166910644593252095323248389382752042413832707931314685275289925415265924178375398729171035265661994494619548256338661824608910822121000866627825264954220864252697975835663045982521885721019717179213383723594556243938635857069135953823281875234077407781327611531641278578250029743775031667288789560034420767067383929445661274009106331850932937394325807739266582645932265223614950286599720893508937642727511687239163447061706168563117986958419302509671508699946062035773807332516195226299682559351122628407682821772970064926961128006329089379760180390399440528893714855716171843014547662654259369168124808744709799982202111663620612802295041691925711915460109624409264905178718577974681764110690397370452827130278851960082234249486804683402957372811997236469640838797855660540473879987584319592097003919816678427441543696975091828380334393451844828239099162493825774879512969963708346809197152204030734307596084990615946916097476162103710056475726511835699229893832528599534858743775468343978689861924080187934137216115581939035865767793766362053427193237011225193763755675476578202806072748917785623782261057281011289973935618259644951267075247556361433036360145790216396625423372259613106365474555799409201493549359068863573585363005317133113818969005146152696092726124040688644913236983884849932104394444062528308048206599127992709528577051131516407908090080635171822886204956369224287205220105204333670982131929296423196639056821724454218490702465547136076567913965558497244262561603605922070248510055022760913807889806473164449313654597756015810434093063845369547788839078060915482920906549127050288804959659042976114031181373908813076265581427894551206735653512977773909433682730311482206944206378015855794060528137054328860372428865688233257606534433085244378850769522451832264571302314730300631309965842056758849330675945047273406466380135942934269365240313247440216615474722575283496888577014609665663859816933262208356255714355859036113044021088379197134617565687183634302916723941736047148507773857469357745561516043518156103814188148240711742161234691843070953675648878412150654683570786173513826318924733724397656900771263071499740421360128298208416933772947642870607040722653377710410289942244009608156815887370230871288082066630672280453249448522433958164103395248200275777547861503778211837415276411033035602722380241258623721322605733030413910162111326017312120127299337620584873918783549457134733253087272745239006646021838080302167370706800288767281975929425243443729330113824121518714531264275231690613127038079922640073878846788138358641784839860606156945820630169153972742258022855273176150481992063376869034596633288584690365686086596177069936139374238880224634026891651818285118559914818455819381260090641832614778014861003427215714387248067699049158905839951792324263903646557700927329951553850505122557824946456813398312431426421772272318616918684273411216046405120017871024972142156457595700462240219440371485527197851857699690045130130171726147336963877667217179362327320988365243295016715883626330501483759588802179553570638908158308735149042087858448050127412191604050885278437241582341262590109309741445686147197075337547443722452856150246779292648826322528837653501290728020030910776928864476583259665694895514568948371124353192966098899280732032611356517055734147944183881100189393743506589059746096455124361709209945993682860199094337723763382020585147342677622797410719969668240870819977319482789492930563381529176767811454221349028390228018063866467833085100198713098532953266616559452577451649237721118203548803096082313127704750604509389089609842241377282075182953328236309169760694957938030131345499843809970390339127786113815633577369757936191156017017836844942221204523486749374631814430267781058811889063981307711231288200351034929374463102078699257926312698867251878829545267449285213928022385396994827357042833885298849208777760797720650819692203314354232193908639429702339926836836913127668316557601758165869146918065115481726221825164098032012419464097676178331552730019017568896360417241889561957536405641850672446903753554399016600812100628601637675702749599473491339919119829829113616908468962519133330212145440359806296047226855764206320004071892148478640693016530001921533902997710122360661413705531565954812851828726418258724510345084593121001322273402982832940488001997616611897077512612127488858790299624646565807756602106083117274304683047704503980774861492198208422299247148630606999944815956717829175258240126895677057840922966606607713954517232399354320924933731138635430196618376464762549732427737182709915575054479714226701727770504381603952746805845708648336738411639988897067016770748438436066080427827146319047983118366364009577623065046606475780083438819102467159912880059321556381368079311177028756978794894306159969964888061871563946177743476710030901962294102564023552775128468301376785173356830390712419417078623914509156718138974694246319822826348868417531655636067310260285235221864223786212586633769725723803308218963899835948400750475749170986665109208752962325714572198328564196777367022038736418740894482211300291977352784662633984512484966909611621590942808989484265009979115547281229581033228489768676143892298831514567085573450112189054065974026967749907934779024252381091652052886539195714905634240549244692094554229966657827463742544700690206863264380306426231562302296988153086067089447654403114008309432481663135016423771793613169959883421583274830364564153761552615606564093590719929986278417376355620470663698240094243331022824647193319047638970462491350110702459209472701315522441363344887400614711062554521291717552057399355656536491597185135771327491911586902025896829244398655467874351541404580457876270010833888214615360464572924905052931008120696335033238081763635531970183897264173420407678558805003080190879580951343466216462975721895713300733299022448094838727850314448309340208076367337762160446020482375727285109561221054405754484367914575698332845201125261707569422145274718870258902747453365994457008296585850722994147726837363440163624402514811124774381871748179305204584947794031015247226131714371451738951266263873328242009326713181184863589828210356021689570335718376965675000188571460153161646670498094998389495466378310246187625159105818969958880143813258560736030564791268521419946546650440190687554759343226276089495747499135992393583111648916046673129574184095914732954657116730749842322126879742328566138447884056830291862802314833018101869120776446737515984972924815527110440449292205532431666283295838210813497707103030027262338073338919247484969391676968020661898849365994678375979285145621548775981530054257100125578948405523832231392189922844578548296402930859451205314010512422014761914634812425693820651251816327994383181718535990221990771975410839221884308067678595239475543211195948072428285610640401214442606801198879347887299689249727186670054704312145362741535934381646783505630907247410568404311692151719944560980138065842343000602004646190448635379997493785099383914473735977214080718598026966611046313220301856421045949030721610487883026035861308812940261092699240355016655618859010788881220213632723270919271908126479248711377568578283703625082436520117913775891210293178009411410867962783980970940325589134492385542304510843647203274062538359969747435998181478157217277565576503792478905194101958949726399945485047212952115485748652203334715556815476858846477621835051715220165278167606053905997027593846471712529552912882235271475523725258437320801778358215133478735268821456036735784745872603069564185313989266817372695694029589044719132501900392881861304141805835582880988155729480825955268582467227858215023077629253318559308665902134492706240847246329011388986160923082175020234494198104333295118630908740706845028958453869635044971614750859483790945056224218599106494622136104149740651674204534831799790922413401731846238046254261505153240319893738079290514876592544299859016556680669009619543883451987386977075421480267207863445351248655511314246532663671930061616608648443425595413989350880953491588211272000602846651819873138437760513409893343027258610180408594796952603536544607735684066203067950425372258358789860325876675989003715514011864321689257180398163491981517654846992627008906485766711205651833983305789607889490395757686810446200555925744193686763167788600403349316179181818594043704404748418536547473257844498064739273834507715156791292125198806835254969777154867225820513344957519775002109079405725742423009802853940540054886423894872053324703718907933614037216242553236093295490704138919509562695631523365252605431710013272453080320287828316218505887389322413275452343672012107548914043261052184092793284270108484643717557730554135929143258955048741988191407618162169238934513530653268384098387111622213676588927248031827997815231053662246702873512177412926582832036439450084889065400413912175750728589250966116364195635052860502754082340389377372934328285883608701349835714929287428916666905324950510047092180421613135774420737993591476446050956546021948115248261303795368559135654619863005693326398376438046474109337667720806217903801414933778116026168241066777241969656161404680579385946238034648589249637280915978587719160664831021129423321288702922949791612580530649480274082165794975536734208098469790409954702797205545068441776567012212081659754298767649509788371815460184275444758514983465621880863925907882236424820433558201522701925505987396406106696774663444472611595493463551941105428484412456658050055093971501333684795149039943948326084098615544255214346246068888592011584860219522559304740441639160656859343718559422658786375170494390083308087898834072244756608903115692941899616578665916386759423300776416074065529703596204159113498135931095875192782310636479573748049139511886429359797890866445063264373925254820979615478331037001680158149236792642096853903674731481495577966042579614916663050156528688604039504411568469178265592908196450723378142197449876401416071480045376739159470377632337742023141216758416302914303655447718790690142136133899833928982246466080182389164858825984522349698000778261591438739218654724538589113813248890616590548985538711944922595363939831168748832553782562459358739740037752482064040312240335492717044443926193762072721960902166751817559065786984501083415912584995467399931268840358604764711275055666754425633754448012486693796752936520714990119197360277582373014833655109277927813662291516532416002943866902060085265196410601307048552494322345897760330364097158863180916024042556160012644577818598263838309372851413030590123416836110334705700152915262897864677245645952269164494846052036290346048587790112778932465939735606647845401805494421427871140037597516764350353018340581361205527152356816652501856312832526857691301727249881220482595310704562401583824200282948923005256594144780048500232943808933212525713806687465449511698372036213956429766560080055983086281462972369630215019107668709330129339130377280205050196187063989820130897406452246611158008115993039923811592525636182352059796384465937554542800318798241282104781876783497868675699317026661956948917855235366201013292886123825382370107234130911880710961921589787591374895172385600695960323623164324163219238880812722145252598081569697126001335548876808899522907836109073016894864579666801547381892344405013104996714317496409981205302215747055940599440802298309758295270527947922368857648967327816325917579986621646451755841570959418988185515641350936387810157634020332983440820440540647753984062192619790974160076623832879637277071794370492801313923231153630373677704808931286179009680883691856600827102844027366940394241571099730093046008283102043617847212107704876484192075828512532482638667088523845710714725140469391207091775741983878283947987837716919474910623069643180441185618010399061367215131768895943221210533085882121823641131505410596070258046090685828073436000250581329566391386463883895095785699001429483220250248661759847200146594322531379323217856296227899702815687057241058272169487534409401167891370094820379815621963390630081099080743692595185391359610900040817906234160166943198684302878670398385247236376559310291706945254872478177581606243374331346233610879985003500133352230319412817749692130913630076384451115773846712913645704258832318599602785226347291447594998104076526115380126030748180987663546220769849276175058959833347976988858806414361550097274384105424503899754237190084766990157635796541370199311681653032427189037242689741123814522913171711817950912609270357076263889806194210463123253632802031572016789038653221910449825637156560329808835987045545851237968369623508514872487600926189966597164381833144827648872772538117574340192048965028898801854699248974180944715934797775778762162743218037953369172269241650557154427695681719388349457890083334236137859665658270932921095487195946680611459946748003019251050062899445251566397618376386243498423054323104035027907689972840890438110316084763597791013603424957715477041448936485766684603583739309860575274124545602088690706835407315987647560341202370517337840068377612418434348679250361821159298445830805536011142891593190572575562796497570318988309624226259543772110103322917299002319674297541511537771102625336347187603818760272865232356586728088385997232330151814737651087365024531998870182154845225208816402238011197421342885480330758406742137990666126516810942164105501722193696096325546057922837796960702798661645962784214090931389756485293509266836763536352228546932367460706502496201853498635981265999914043708859587033164166431386176580512789092578212806203240116908349160450724373708081904399956284596177129601492819634468964827669398673745302568330025081718827269020374335111368014547783754671569068929839401432283050216554017922585576973894983346367332250333127821298215509844284058855318392646276046538235064363239269437721533846361941654094583283201372743733888369721008734839931572468528174802922166905695682699455956440791101056888216160778475787777063297655303338841245760079160500404406872745732533091149616115769021934155165188067595050192759134231325994751953191790301569281999818799850302804002082494780485405797089711380375823461574575378006633414172406137440807792536935478713984584118607243247123871169442897344058808775615466829339122555828820115738647611284149000850306077735715048144644759231794669106935832082684133031969557012861715842521999002254180911404467849655569206161341223080199398706962958106338940958788362355967766634692992430793770682420399603842909728601984218458628036990037286116004727894052176143156022710574084592264565157182165219209210671210116704995017202738700014727921900312616812570662659733753593423801879510189959457074706597241169303627375385692889365526640283030858985347360205778610791803796433570335571959632998006830360623900785130673908906603420232610991717496643584403642723031989876478025201410674941038498663082845952077232186650505416049190266094002254120477704614573345816312120091915749858637377107016988233037982886104218145050328537212114528044102297696484036372556076903810720901477972572799504914768706413318599458139099951299716514600309288377143927795444596241098545687608682631899810146557659811335720789788567809593307877506674816674002659472186595253950191724030914953735211440911861231759260076397714239793938882799506271896532672945809713703683211644983495095137095320982594704287638061605403005338949743320485750829115998152675792387680133608743201533026487769842363400849863703299264344522476770182787574785562124925479624134321088463018266363810425374666963730262877197583706997836186839034362432475443169506730124557419147014687009893987240869469982633183815140492140242091247293966631068812430622865841419843772051715188496950639830947921528120936831945464019003133284003249994758533360839413934461541787927190550564817680199806893144624430644158189156927136031115716087160395557452657116302841804050158254096838322275612691545509471920919834355031339558070781742069035942351470974035208185043134202080176802946679006368990659081892652179333128735128018815838211245241226920749695000405385621804368092869007304730872917114122546851334633807865921802201030020397180071320773681384885063336028069540796722341952411827569515098602332828652498110595115546936530615626427570293252054953841154585612205105613440444958380218079782267411299728026031891877321747687287332231257442581553284296706696390799026093493804382827419190383807478505752879897512124359931675553825545317229366477045711398453640919889221447039822043502644064373797120989176072942945948943025312174859842179618823065334310433052412123036585581566333873775027423373741607198137611467894216593568310557082672708340509894171971328186895102373497080445532452403204622542477660240824128622516200502169994920964247727365038324790745202768095839362126301002752624129069202818593047904547752173335423529366532545207728722862802178485553334164820365370270451612045807032433700406866724341407511629104745541171204716081928075809776873025995650060633893852150087164873081348547038823850149438094727762412568900596203774601449718051940823680015805639624165841166391064899693681103128459411210524705398845081672967341991401204521045870874609711357579443322024616438627893183317563504524296509561222389927779181837597441647496588095061868101317134521600022304397484221287288660457356621924342606170824139464871243091793813935395003085319084700767908249657443123864099197488732319935610983519342426270710458402317258408253221193016492868692524616808140069249039994521110443751000296789557104320829638612718579654237287895603591246230154859708520357679209841349205570209070498263918409396796560056148546044610394682779241306569131811985781760420229914144226020931313645654646213592749323316565727081119413117182567732008942518187229206928523553251662560965293376774269492759330228787769386231769735410916028577768383999168101162019175890580306217514168332162993367880895937602955685540390082684654523738806757286050917838995937061413810422684091837853153873978498874441924006816607621862134334836032729020449111931685575973285647777144905783714670560054825665649980193692428029738140854641587503636245121411809769230872787220922711465152058603101961178058109747871060990752478771366413466051583350579812319225956732479936018132629917571039487215672514294383164828590093155364062777328713507354831842301464204895174283727230554707456442936226879926161431462579995560588084094129383138303428161064780867509346524587358294601073083811105311299818163164490116716007452825939464889715414729061504320433639456730448119066924242262292465648675488239916950474307139835642141130769347748804695281472910284180915265711209888466041047300397555262180678488337652421722675008919388855363797959126532838394776421119963710635543619562861657160948064929051417897402780550386438796368650160418266520674843225131506583880336285517049507342503702952113920624107477642326896528111890912365052610879386928105670829537308215423005129839825764383117963758297362565364662476998083208784312318864435242641863980322431837028029469331696574629984417219107349929322201824447083282199346212316994164980420852685306043179813710482777799456218898997616047152751579725017366323386999164015682456847222225679076199275051075546928584377421961008062739611208555125221704507241217842934475727759382844704690296872992080868295623030223672874054161799901644667159289497461255660366257360939913298437755961141067799740913378681384947521695256044470938252346111835945029357875141489490473847545048835199034594032788840564089235819689721756139322130242681833270730312646541866343498050268438348123011898736902895292024533614461952970310815266740174881558176046960343513597048465853335217630238116475860180845310607525729010424094397572026791184432360724249881988105681943106704251998889983208322571395489336582813746746415638610638417778053772202146562805735358191770409676717148390278200370827040390626744052681682002808755809201960576620960393113145142248692081570884004792355821583865732067632605710085798213077279297955481907897749904228695194719270119470915600109559950168497931431277294216263717256529738032272116668903729488509637932814793842805842913120843293372150871022013932853888828836849476559160084782658803677233836541853575619235234250196484688657829842923139010172014184350261667226810348318832238163898095245044551980329747416812231286512955073162678301360383749796900217510557102223996340087563017641153048912623888790343644672771385331571174792138795524328004597833668120130742835454606142351507076905539038446650313524498698791393568991567651726700026089085008678759734298112969111735700632742733502734984421129297602065392444699507798701340371653177691608358677497664125037122600839917564898251298488474806272657804569566840017271123601695521228341191662194514718946437676522122102848601326243532233191382255237256549906101186385990949845744172182837668783173401238297266614727403027996898425315367121660430248430402713756240366073020018587344617807841938969339959156495692121481547216411226339659594896163657737314741181603846593135717242317475568572825243619670111469448183766266540090419580165139290369573951319845909520939156676832313353413137799878298082367052398615576804165113995914134299990060885873664696030862274994282733538011931836361907088448979228876520038966793118346083764463451505150208714672273659777543972749460598034115751836988496618964428418568642626633692661254470225078285958383969038507684768364727542134954837106895260994788842595782569944559419371061603567780635215396142203056093397178273547432749110437313610806844560658258409859066554889045641851078896761591122071764638765478137621203744431751623892246029078586467944477649711013796636050968631796746019854771776725471214232252127597589121386330305732118664566759603492725687997268027507798850741257091890992636318733961990928548662944305418616527547278309718576882660034112962812106183106054209855467229297571847300408824240633971708891843756149957944833483233663700070063765402891499193103879685717457486005944939778164400405845847965236167691064228776695132301898182387153638193695176762341249405837867569316896788027156210552219597064386919877501342339515837098248103851507521883009445192170118065324187962493530433331649655833347722158426334468683310150860664276457000473814764799560389088246740405060334856483562431518933011034350762942028175160115549430691095259033860499193845703313045800207438886046679646017981005057206036742047487387255295524455845872650807212860752897216150474002534297034429839369284211879717997132473693456150606642187917741865356188470327024918376500774048956561402457940614222419332093294330955202238616024450617678819568167928556429448127184104265999989861239459682608179801356162233580783261799720388566237906309543233670493967044001747965982059705563560559761625119763248127676857589109379906929255700419748293126218988827560927474977442373712111506577130661485827724033144467165094318817363564886305267110988368550439681243279874292058774815728854332819756378142264640349647929499894203632431805795544863696866257736348070502096262229427678807961694192529133475983768890119595926257373824582710367356486543553968218532550618819657480040959861510743605483209238862363757951692468199044929064349157569598415353089962314906277155824450776129817497131841529966761666486403956312595004765789296519002616552904382008100203651193081386458149622057750882737652652403428438716147327052662534561465290276126314548998237687957209412838546619523230332561833449367495841240720935102881544746666885661779092347508107474052765532664619457718196223663310476803497418234131077467370585239050835356115883402451777159697185159448391195963065920890155417885140365006066313109863896034354345750388720194198064784238870267671443007845836383387192058724740498392743157418461153601968116546952613732942213936793196545413551653613107037382761223452830837857135479006630180463934036807832396162284236067445326642924506540109811970821899877200327915722875620754229350002720260387097707174706332303496276584368068252245794749290143431804739214624609015431431404407497234159486431769720586903088724897159106258939073042102121170646536919776906063895882910141125893630643197265541557776052434139186748275155105650593035169591307323639623730043096430863883591086252068801212562641473263145152343254867753917567435850290708278041816740395428491949619948530779992775438025528499767373325979292188864792491163631468578076661366809823331884507998533918665218650825081516691649458956591327605085932624968174265993982228816417207051710369855356874074664724774460968585826083015691421095392138011732618348338547351082232682442619789100120170769763777107491067256819876932395626653553946766394388079948199863275696245152198893698114418224459770738189522115419521813406370127643382878670128226374837170301345747159272884947048214504715530601127660401670203704964004547991965770970279727773528420411190665398340956440722639265088712305396190885916834952564990700609508370135295711618825542143457238291194867732098303014332894149643934104366716338435175160268977846682490398975615136012505576522599618320107520936674848874013432884787203420205978581806236460795855443011129250421429070291042713691539489081539477341875844090006899175035349926648020523127387419508859173000368538477251565826832248885495170995028661064747311577107689524719033620331497115888754440926155476595182529823136657415947856797966558069265851765664896444462167883637640109687694991229838515971079408077105011386146862867758867900415417737830757536576991012808932435217407097375222559458408159406353305312674059817722235516687240910247343658308128748288189672878488312673641519302338800194633341307991000577567529909125062822377179659558932441546741825006648396044132001813116779950645016206329093058159921910407572706151533918925598346212890305109431670834384784604867469373672746213277294419172105787225505967681211507168848658842130314512614848425855825536743885146039545729530556778087505514671299327983027429455018975228029824830255389169858199475174388399182010736070375994665686169267096525456346791999505321344735175188724526217103416761359811940931440642931051242726857881812905582703317964961196707705176931963575781285833986668956403915906938099391225825167007993357752298064824404942006849091751410845608147592221660110047406550974994870927378700327916284890791170950580119981935479718315971572871977127590927671720441295135435920657361688143251030400354471166514151396048755415478067906818561842099839471615943385655474131805855816247868844768063549897698547392616627511041838827474053062043514960179071305463210879746832779334682893879534411169722946122013488546151726227142659585888896877888126565638345640916240120021443167617053040226730091584541822766930965665239757913115355587978481540142476311228570348051442939632830042652451235497579800807102999028650609216778079985138516429306560032340104347226496285729954167790522118250009731900829651130590950005114883792282880709554125482951428470906230031550047298686026618191945875694794017968155431839412088192417528953467258457491693533145043763384736463719596664278487767526909276128598296434941083185447273196895622159618646629874351213370518054480284592372280426941664516007141071999909406727192488258320300012362681212910813785236351109793476398768076355972353908923390989825780577968643774549868386693773535936319577318336316702469350501319345988842879310899403826022776272656420520730744263900189096218148632202569823357002731607788131620521797570600469995380740125225483075966540985617301848311719717482848751493389801809983812105120155030362391170157868755508944725545909168553350844542381739179565620912885998354800690027936921247175216129591739681238095768488232867628991166983721135517785134904038232347868136440793069109065520230163090398261716814582661693886440576248187746485053016583181497955423300434505877795866690743803576145249440730240802594539134922021763631632335111406930667100815657871093627517202562352349746454595327374298353770731263209867064935090762428829533878302702482832891228649836490166090310507596662456446218814156984283953701728430245534090717863471562976314351128319108487559672120052655352133580598983022162265980278205912260759628099327854572197148015147106513915368663337928254877676109909589132170567524300464806365095118994446375975574195136192720712655320648911698415181209434366779813396217610262299658977017724896977405980950798162463636690865648843849111241803638857728929090317401154606807833962497713870235860293153859434414839144201145477170201696014619517873697278182046467854030795696044725938268980760146926212645514583649239135812691296861825869619249817897632563067669551806738550605928795829667548875058567861474807653808954857105292561048644730776129826628161662888277288490743808482410402608764624395955807619422256788704445946760460241249152204630751003935645855359311637260709966089546396049077510815840958819374208655728585615491072358773676300843283473781728303282337862356280173277968206893152441893581087637548072868635977271743941475048237962169772389054102116023555669241451066027062539901573779482462239669780796920739093519890116392997080765426410739425995887051220365651798728115210857323196681179074311384586565661301726400965996255857237313789921778315693970275768757327282649462694780276316077931898298687777269477424418081353451603699557426148334007232482780167824240775477658401196414933312531760541140991905464381661037399226273202837937146039748747686524040829865351949833556053266097397957106799279319495529616175097036894113159072369368927311211241332400186238343437440896281218317076463768161184641985406952159212397429601604377168823067195967897641178934154051990683664972946446435104961976748165772383579885249214568973576515438189431837302110514850854145724946453736796063617679144844762582422422510271044239886539580792070608205472021493079489819035976574044209102946440050827143184885088686135036770239341471766116909872025152527722146514679486133902843148118107114904072073455903835388429782849839586753292447923479959600269771613659562058423012021932580432334181947819489206574089767982392449358128704056283989505872503249989361012775426256377639118646912263167254506999105738543090155553821620891894048202359133592791068526113908572620142886232323266181081970035721266898718431800911745879027368067398224729796951095005183201577318343321241178980181634252087249500032362757917129797759763868445100442983852766369244386992213263371756829849095295304458986128757294557896013874621104658627900775462865639765146350027347393533340701154414273186961523474072569982396499903354311077527417385248572559131975297555987602729442316817773869945627901718638546425407297285615537212960650061678252640786892236001496394853574276330329941530576831180261586325176680324796613046491989746740144697511509782645089539495726046193374497004873238588403220256692975292694067529326627220972534457324036105933413472590317954120298699687941984216974398121121993663499983113638666098502543751343396364724863265051627361756710657989661146138420222774538563910199564918665852573973400790508840072402019726826359470491712723956000994064819559322496078573944087544921786714234865022098530501790681597377010181290799656033913498387762609087159072378241470861146799257893655087546246077798532857053680162152683053820406245603282514636112738757012678482696359599172749916702261652247105171584578374377463508528467064063439201580686389934195526383818846070637690353046362933796101767850172808812094275254129924735215045953532830656383283755629090673037260826175391532860957224110944790005821980699851641228180437719657699250387721801235516506439650493101415359858382943763363066741065683676801032021385807757864827679714259379209825529853794970166969842943337564035885019010503333275448861063792028035211350348896539020684151114455022584391460436955233181885222900608610643658713074847372555588091079567878240760087673579378755677567369304587328682922093025278854096690765347864097144078806321347535869296914180111984820388811201214899235510342430082076600784400529675311181562277968518235201549062261911930834196102582262305465908616727016277790789677370451491800637879336839145601924062550076727419321069050817093106244062326840096779963541506459485390511823126353585539478920467033725369092315018418932306678471295678161197915232474246217091809106842531672295307046965326569763201342352068193970243354878671721289225937890885899944333954480370162215909947841577088395159160755786992377265599193497830488740610312628384669467840048826765581011969269237869348667755301445723537880874819416894709834969082106385445155823574016930856125272175859683127694867558955790312686031285489718214206114400043733025663583906680184798720674726057883887316750715781898456922818983797327691389508184930439782450044758239298973026841893490599939513511041663395406848325460592556353155780771818768251307346759936276118621689745051912012287309820406621368185620854669593685797824249819487562577611595068271214020354025995983413797395058540436725064684288668944506641916366050228405963832072000858958202193694509553071634987589622362208387361407726387830526798134606014789542777174925953210373509158716078849832096994921774050144742794215131413206150763428732806099836076468457634927262158018365509068813937718903712018732081887825010387525747418563711827967458907590286664652379766891290908884417056962403312058171642915055500580514385463717847468007038953434537522034884883481079947421391900000395984808743049029130409965557976154127068255025528782378993017584275224380607113773671615363433558972999999271025159945427922747845541442011432870344669757680323344975658938616770736994184616648407592140365773113469901863408920504342484316853239912860608889797475851401071883112349988111837331226538018141292081226962430358722941236814103091172755088741234597696310324275988391541909445853015709724173722260985145147091991726110561350915908297431994699428887638688528323668635870879678962489276355578623123675216093754882179007221584969012541238277536402139015299111809332132338951704017794728187690558216214929821064808472363721082439873194450226549422756374848395464422991475043320787358339263440505016760779834393362256032663402908942233624940962523821840787053769886254989273367932410870413518471849887044561897561369438935112325449931677707765738674316915895249256787947845844497632866394307745828226305702364747861301041488049050079215041654444604960670698655040476458603793046093924867708421704846310199392248338782569671784379689585654562790915824678830556724104870069319652199399315876186048186014480506504337822584517068912620359792712762303395385202815969945809463713441454621477364992291985163707377571214961438305384020659011215630152546398604623218088631030928905120559985026039531158040137697626625321239452213180613135908222568480872510450446563836841548056266493657900048873389626998854380179897142277828818671421146678593157465620827035591945219651419883827932267710050987200185778126655785421382979063283417376225500137958642029610347700853563903847861065160280203147086342558128014386674697843940988443600745146177328886932472564750812703016968063723502925466009960774041120213623269681799988096300928459364354623384954279615320488072233300106880701908981590931151784472175548329360566913522430336755557781528279356371374382598986738173934150280050758514136630893971357332596329407092626578213270039981156877992325443877761835007565575302391355828818526608342776176155255810399923635155925871497588996737866388794174525143852750193519073666813402780177965139794391993450991407656054149030413535093122076601778591085041863930481896862152429430605014348341569807521308589673517878306362843405291162712085501222179661772491290574021846908390422452616550933109178096553503637375397821310102221658270157776002507330198419915440949307122377780229517695410616882948420218638307252769723269806227808546132827749942034232662894879852047995109703104040910681019386016767185162754668401975696396015494259191173383067010423159361021431869977271516381721905552188417468021918389729678845024905983515634426361902797008032769904819987383667929044346561389520053995909792069472375868382976989581062920562892799280526838197135156953612272063576298874513865352714889961685240148307470733730106872003384727022434270356357521597463440904025773518338392944284653636745796807487233837173561852037922577498727065283310272231289309890454034271820089140827757812266017877175361387996329052132517768467448711440219289868366905086948446408815601805340720137299399278508557023308339452750059025298602014281647013195633422621731029042227442401851619863550646531972416004144247162983261502283528654641595511068109913923153063594363986971606539841029891575081260192585765550622560989354783398643126073049686039956711444466660372738312224608821630725119572422309748814549100387914912843329065099812714291623296937335534015786297608699665092755961504166580262571102908728062784605969477169433587331458669104109965894018808606228089916525823363642612792260299809086715550135808100619010328337619189992307722854309494100594894885283815969791395580957928250987689134000918435662446880614114862239558452618900098276391412950885129916227460707269481406373194442546911226217228363837035867613294803743199474514945647790300709798119987339788574682633159023351733305603238768033444554361059107076348236138637560591328855470122092252725303714099660900142257090213439316810642220086352073391650750280642368014687702984923881876330282496114506909587354906961228018655041554394090140085963067068077486289435119988111416286017782617087292099490916648641539949650664875932755982649252476209624650538976902212271896644213137461502547012346439309805410632782599753165963188957753592744266400569324089045213461995099111746015069017558420774161434689483414700562032666295979502854217728928001583318040850249292529389218362892370390083748490261311938174873229885115928561615610374316969919968271127192424527822138372657357228386797724438491376311468833010808554806973680803525868614232132845807740879911899641212472084717119742754176972342321525539867128884463497873533201777077046690236714210900269649945374779448219022522493667127730925539947612429068198840909777972763162150958549072519850799722768829039041011655146266188110079652984076422604470267266223669332608486060469128717610570020040128851062593215242995378439846484305754955782638739936324338030009869415510937750591918983136210695849369345127805305311580986177640420412947570621246980137784651215595081550073955171344451975735118332888392499727921615733665774752869098809853443335823431653070004197596760733442987179371098484991737709022458092385367540350827007673032009153877653295564433840252441677800504958749391551549922600046622685462651880482264795557314911565266983493858320122191002253465079965157288363758526316360795250071786790364969004891817725677142772380759631133481366117479114489236562649526624627217263668539495322587758188164456872072190430453939284696387026621640043605945078283174385437159069423310804495497031558998527240742868569128927791663606522700981047488874655090155873936810567552464129552000893297399396661837284830948811616551613910538085237287563127703651433349833252471382881095919990564596136406090591527590819830837686308883112153735243964595451969470925014222742344824188345149800896406376215089470306450687507116068529387701103520957887595770729249879415991265539775046394291721382790280805300981502256897666332524811514626356679385558554560087831228772490390949711267111927800748578157055619814474341537513486541341994831714438826798357314527810052330810210751762497647150616676738106333294772115901091448343223648196617192548980253701415152201148084357030518576835345642967264356674462995275404625387972011012993771056172931378788175236518352117150325733350447049284740021117898283804878288894963566083338868447330508550999982807644307318281516868883972953257663049748929976928769614857651706530879407250288029583813368496783144645080809330764724353587031822490642315502857143780853117807168358649847153773888534326719674148495605124364152656515638711489058101717258310418951159413943716661075823433848678871299258183259619888646009455998658917270832402065516143340026328612747391330051585958686989709988137041780528128988372272144535558171634647725846806568390161163085825609014716468782681928510871197388430936332359597299779875118564000947265334808221473090207202656485661514628190532740389433668272565439046943132923884748877340952320156679933533894875821006192422225616364124708074491819797912790511119264989739703639104563158583670180474520306345322556046940231967108605310376694146470829160283860495692740406301125033702694946068070846793293185641061418456358513259574753762133752365630606451667340242562337939561133852559594057170068198382766549304875759816509033809286857822854497815962173204663480567225796753544265157821530282424154094276774979425150387582121656122283289354817624816436842816368982211406381277435391045748921311579453901093119653056561114257828546777945354308725425836228033683452933885682087042454910649080553206046439390009644657036318438499782759011854924010528041205875086424222030440101771177540309384309253649432014377002757613002444905817720495939293412672849120692195293205156154488860626301858455686618586874988471062445106608836795817110354850992651111745367444742674085202828472848180992431124392104995897598388181204264386835797576684344287009696418438893345159064393781097957168222715793452384751519691393258200314969586048651259597205160811925361502710659861629698984607948637628222878127128644471210691247479843272747349466505481205843796101080940911286041451300664227350431273876250513864005125230227496395076139231602023482705174050092301523574977296439096349377088126040806840197419176757804679655526003019085814776139156090114278328867532244882707870334120626006851059943071288496113117345519188621030328212563109301456421887454926279185567395300232381088580203130798693851136380638616914383635295661017942363494752440826409405986307884634427015658507414460597836373021753395956714990976898955757846107448255872834033480245524687986699996232267987673557125264747071831295104530893107973182821096546212920126393198104248697280053450928940170982185336225774357168875445018619780483277687378692603254945494025526884312406777344526104936293709430997448229848054750309780497164327166501157115688326378958796700696160488141085004899481830383290193590503252526647361313271369789617962834206598127192085663694303941430359241011764469537379351229337856727917706752881096065515685724936381756265714474406728673633291729498644216771119850879844967363399145474021767874010354922535214248548597820635839575109641388685404452702380628545293086743987409416677561502165019060642694930352950406718049775483420776514093047451074352777897055877263593499970623494834504363254195433453113100054357880979117497774042708277153696713428433261631808722922605897301211751276275250063691576960262343930359637733973837406798314064907517997166491744152690782607857778417762858848343492546207325730356452940949695532931189406691287803766881880636812148455560243634744862484026422103019227101653022343994150673420014969506916261520078091209026875772895481535241405431798708237392617076257935402081464816534391153533635758040848718635532869942999792303647368994087354202379686752541813015552104526787585473575185652590158064533289167191982489060818777153807706679999339368879933379406860842385543202598916127075032623294143959673043637834399667037175953562156805828097611979643243848531191512633757204413170999678216581030724170697091556898251092293409250326606606481279060341368236724808276529347134451674023170760026189492158309044825545709570732245028659588171364562958305349767942872665879671834722695133493887330486121546808419996612083164653814460684361025617489173798415290857488418627857582436360308147595260991751312297170664607345617280911454604982701287376574308674021821492311280722440055670786674150464097586526796028073519942875522972527389800088383646893027881438418746297233905442631729769672824740622089068513778459148726892635401622728583137172386952476932836150866446778859251919526986353306335196952385449622096232227520390291923086947735542783618857248917276721544681094781484771862653779518602957549879658654603077606814149192949198489847126567727965511356022521955050264299184413027102883778981688814057769975034866156548972146889533990708569193337356091266013838823011458069009931482792586923147048379260841682072001145923205941202635783723176895240786180133614879624555791196922619437428453023061244395819205700270847589235478559349811293453085942500722789903306901766325874099673797969998168149117005528664973376978821519186191362365113119735912110926147539146035069902206692140632120088643785049794430431583393386089201255800856179097775381365349601012343125071546371726672078168607800926934793740800201420654947255322856280351442588503360434007520922406051056234956623378104051736106821166646969669456657673170825076504398671526298053852497815487302551605737984861928609268521065126798354350642698712873933889340045409421313300419833651808347325506739447149489447696335210245208958528466445645020202854440464617612848998383214157440757734481680958776966168762879793117317225019098680926037315089093847330766065752605147984854761428854537222178399912358926504062067557325404121927010203813819930498323834374089332714952129245826155922004518709653213499507758579134651181982566025475562127862495207481749257925109252058849672050556969520733621194423792144100763549063417456783889308863179922601761452855346212486403287829594881131867069782595403741633221132224974847822811276585845911954962314820273495366289979982033021340983813114670390702380901181881919069454939571659896893803273014798062875586194478705396934376344262115188239793055039334689683170628776869571859736256312055475733532650134762540460422419705172598520555991327680619020411843157998728661525818707615754232854765887115483354434335028769524550543767596623748517294727574931489784322813077149169365360935079010651607918575623731888176732126492851756952316173886208882616357873111141372827715252946922936626516088383194177930522950208804249470816540108109491555445003935293512625335178732847211166849739957696355599238943935621075679708975412655279835778730732563233241469659059024033568831300467815933702514147921179255941586328703596413768039534048409959821842882714650085161757927846030491279700701601617081144851382179544506596268538639608123734437216835699289806371530316504946739481750013090177101404865111177127253217937653922742736889917748470982403362225650251563349526091839894138597161808897830344667511794373974479862016922654941982671978171471708379220083908864412556804300198250553313232516283877146546202976377794377351761961211019515413883953070255632449110908061778395386383087681093235350974129856413800171670572589816268668019450590626051065357610981976707342851097605503505324581739748519375987968871114958006132164664139383631807264929641352192549565819584994409193332057969197588466187523484060689133362320476885959043386031903792017196977952913786468518786174717203060912092612985142634873750757845631125591625594144147062658118548222088383123391187519014080100127997403406209779437046225219365563149706376007581108113182928190994706080976843659257965971639519800801626629027995393262235432679813006071188224216788634841803112079630847944930858258513646172519081673932024728930347880860061223337419256435297300414278360242262735301161770640036122240106967220910538635283021601757547102435114205095577876416828644034929386384587112747237235306591036662833404347629140086468293552263436107917840817825910938376599707833277492015158780490328721286205107923538334255948828073453761926510156518934668104608745715045903709156133580566958504632705583041651036552443806773137217321669113389816269909959716902104850889986868515130572518887034947953523735401521605149520111670373016580744616286979321068423540915431188160821375020635790671239303426254515672877399248037701100404152482132009076025819647808670650342877682158191468217254662827891091461174436167652832290329529666720564083425117436641761355896043593776453328610096277125913499803917177573473225659413140320686346543626824870680469952396339457369492295174935738221958467667040949000882056526902673714425675175593053964806083564783849562127456035455883425329118565864980759258272224755001744205657568396420967124828708859185041156388951128144351117553155165202252425042652465564237410514849865977999625876555468240005490767158985447298906679785862901428192204447848458585943455708038256084047390179141378987462977840643488518141582858176469842989017734294597353235323373188986245452494641748046734094439687730897878235542610628132196160646737457605706795102479064445108872871721021487161039499927533923354822257097359885429055699305309825169487449616596718609220823905766939568016434448356609341945523178606787462295123477562522038139490304258793705743072107080563682529723456688714617135077806317536982878326997925947248301852250102408239285720539442641766996641534482994181963006610555857083439288784102958978129171528046293440217674196533770457966866753511630531041075631497236715182634404734629992932086480394739809414699396351003562892617985115191828955912755402113015405346291174376080775802332282881910235591078190331877874776039386412831055782219512341035077677424598460409691677369470113932864783069801550280352564310028175673306251804179990303476269554462187454536941443611488386691941398449556200569379720798240323741665590721478875403016541234141415300497533638914552481449703175410860748070718196417420036613996284519429109949323638620192326091528352042795353772596300341574038499773833417911215611526534491410421715875906629882444763035185901029262590926570448797130382934840639195159228777840275208397430055418592784129549822977139772625008136395849780874554172951031919080924436179540835418718884972629311090780604550235223563693018390521690860862283624199870872531153624431090196445642325504601218290868719430842211980498668486021884465354407504289810289851967425408967080632051219917791375935195140175291817860112234093792257405936325788902072798983077676125412815805787836352783894936169643831614912299092958003041990681241552760200663442463077944536256834357497553800843643647284538972940007204660350368430748606266910822402186568403896136834025701448475761753008151354928439926926623521551961793419049133150517809669678054385594983257124109530541991778799307178311752495844095091386140301543792390510548021144266323348364409545936155525828629460627310077595715511595814046507338502514364409522257276193435188686717446627776544514231904877972787769209408926179557347624435829198697875670793251201958521416491570198081296872015019676938707703880486820251014586187044149504188013032407089060360167493273051544687505524873875134062593056969610233189913321162761032789240661670086485792504600022974778094187083383289751826545444445989430064647831588913515266249928585732743194800789346625724395137540448574176299537051207126577253046364892468801538816480435597526657162700444092879063906844660062886395159622929508708120070440676594901008742399692088219132572617072993465818191703886996862862984776667866177371334179000275705455539439114704242133953623761958506844713414878368939499147760694876925005761755364714356172858903305664287355227916444557679255179674537283984007468162487335665689200641092081450448165946718918220547299059577996841161167206765100806750921868482423440361370028317000533547996061847786307708424910382008386435377056592380212238413143546263365616667167750260112896925298963398568162463706659297752740678492908477267757964427044101129029481985608330673109683103220618063526511937723695835565525319892724393847422278613944204252440972123453638838896580932825410910309602558315870840176436710110136424613470849514069076714910533633824849651269718841608873418007158750830435498653175550595499514643275079698733012498496564757229305093653170275813591005306122073405454343813666993361566843800646955637673300310437453322235453370802169123651755352856857345812658637244115539815598672743123502389322173596783059604128076080436984662027346600022538938967004650511903784594907486321113380657157894330672692350102449312176132249065463596626346409734528841139987628915161041410333464671118216769581965948978549037098961032735439975779555969860126555363551638732919016536905423737205907385173946984480679085231198331957726150088390236924240055454599291016736258896289879868683567212051780852161126720966037277292556061822004510103224565818318658169900549372611868126120197650568326854367216497093880702053999256754692780028963021298551547983029632364006262319521267883680500881112350985693605254960467553470282289896831286655669242601517498384508311733823477052213218229598646557197404489311068160240568259308380268537052227789417876981039790621135258432096235442487554530754581170064610122233920991751704042542041913776608826485749340011719391514562838361996490661025321716289742707688589843952644993133308761290888315264754179667152763106904916610494097115452136663088642619776313645214902435065407598307338854548814223527913310049698412235591808287576309475064562276861427458557711439358826739059267568562563624214751918751292805019074120984155036859031798121944720505884217878906453093977675400540147826125191007741937235233654536252435034888766979707146913782742541940748446611638056102419020646536612092046203804845531408549304872221250655492802227652168079635994880951234214655931228349162140082308129587719642288269843506224294018655213043444258426385582542381464588743628423331999948426512158235042959608548641908425297017833732389312243731669108354569803595812396065900246412750742790540419143916908133174786939856393901087236755398256779157381753664844656942210998324314326389772168473858320285576713963794844621407934969838154572863558751806151047777973012102842208725960349338791227497673327396099478059784048112788049177463402552725990729267674691909436143786165438886263507272257547778607511553553929411500902613299357512694529295530011176568282559613469252300685129565326808434381605271713545715193568601119824904625234326538295280855854700053566308408912053629021432049849719924627941518335753383082823897570805186041696281871395262221114900907213075395100842378635925531287036029239936467342276202527129067277642076873414338243088386572373943101044741370874726482904380049034391124643613580058712021212489874954949766371265045247008957434752875792246762785300963762974320357571073673350227791040813746464515462469605060296724212472208824368650303844130067177577162265342002845427439539369245705214573294622868262950517243814634414231832771596774152287866246481471955203417828132246603512774686733420648513208950038037533414993463068385157777348626168226453005453053961507382584971496046596841471455302571630146687763346110497022021105278520839525370014778135817151756415366694429920930105939815046322547884560845958913138098984752791951095166598553525853288644179969971944370763097150009700524675775255998814076251565966687968382487088529489666849525272141389051723684099596217669520809550553738394781017923664693220055365542644272516171974209395043138170405796716053278112990377189215316088813732671532210672402414760844678721137984435827055253071359662330568988341668531089580844353457055647695556851504277130945522349732313874468730687927441715378044086436718465244910643486014222733834962524939534518968894794792028132004143482648442680950453106041357277911521036657219278262126055342384069586239048830062881919201067794193234174241077582510513801851730559120386430317062455547275026496950446885562374789066941855621580279938952206057726658494010614675569200984078843705792200559400678058820077106838906310951751359798445243526469917858483750872095969186052547461389710365761157123846395206172381896084114810902680107083646713311364351598654029632659608778882087597897680176961830194239054104237569468644310754478220275282232045936927838617307476010445712086335928026902762009282071083459609851480748317936701794085315250680665499361900348706191815436420630873259804242889509352160251592575739264232396762184989470111234652637949805094060327776492456788474111295603215672660966272103420025572886972767062374775696017610468823904566444379654304875314683655879224133539629539100075483779957814269198889499509907563711396724807219916106226777332805906577458660894390007432144625367722338089105683737400085268008042292960333105469065290479384258072919428948902707211842759659185746413084399240721928806967675056859320779554102394134907868708885355965139539728631719398905615365538738539880030165610093776048286778783079426526445518125726672442175455663931900149963355511290390768059435395100483183788285430540800002041817716408211572339018601468487035885342374299576315685515904233836741409893397389284893288230024701578930231430227622336582702964302070486702690698249981928224822518732971296679236808340018219324281044305538946839403323326790749696286914079665897944726831506600074512570736174928876643145841439844630777322792340997971167882067321744340489911412877758556542447199209778598123538707125354621464202823205984093645122982483979667181202920359483299313529514440507484596630575156109029229824667982993376909189357165265800117834101094880940020627998710999958381481974667784591611569725044063618105138528115148553423430578096551953412767001131287899737617995784777830438190298850328874958268926523325063010525371600438326101362807539722496085032995803727896920391861789958228630720458965596986705630149708175271922181264344986677643312851375128611563103797988379929831378060749060309688598659732771822551406910158257634138041900607580032073945728730618130037271428781438551263924808726601599197417729631000310600733019161952639378772280645470015884881703849916962608164514670712040950469879805283697641715236141187948496233844723469214681273086688232681929370230078839524554528024065151152184430360187144009079461047249509932243675912854889257411657841364170093681096301169833550434448977050701231852858536462498346096543011301923221265478680288929668390645143778443074508871703514526599924302215643659573351479916267793725977599685760578910510801754972280834242641729042936234192311748857962221813415875821539841893747653204198823729506563716435369191526894932910139997041021653611837647994667142641053908344082984516930188046273074930099917369982102068236390324923335388842454103940436291848458341731734221847167550647468293561541603980674234093733106645546614279939350806253588979870068698895986031685224554263479161979078346841066342236199890074035206338570360624509616531474277834098563087944279012021894568835238818922698401402463017752095586721317845297951173641117016650569014449362332242203318778042549304958255421704397828561875646632732819822777280087815717382107389746709651326047206059911567439378471142044880722435536406507099902330391843218229105926045478295071673596011349822897331273374599566025638497139299768782227986606132674052860464222719944786958763735385881031499796416644387182322023579656654804982940595998032956847385508261010353669837465114549676461427756561523777588634170559980204482135314747000506776247635909697054770478071443581196307291723343267057021703897983222038038073380939004718697152431440519324680732382862222383784836281615278049636809667033757274002529477449665292020439591856014158304956055619969031292664314443150499092748017382788283283671000427506837681653913607840046016272672856133073028656542867784747240773165977372095999774451581095009843564952837487699995281359124203503824841162714598265832290288450396927717383804063649669028980622826413733459987445868292294912362886215628081632040718168101759038483663748479958370887538991324520393833434747521987176036450800407508662360116601932908314453240392803096847915077156371766724679108568450025589178094199385816425361127342852577706604818287613604664269358986957611377145771744084469797454364559200938251625564932237416764987442411457391941470060211918924502692356903892156394440684500720443006771690326140024477282833677125669378229944983894613467869344564920365876858706364175972559861586429035597374592719999949555613341217356684596463250508479906090800543457147088019862638803092455628358713768826799237166623468930140616415924717019550399286198719111441709978130046520600518302089411361936408933418631227982729783653427601119284008825979384163495550972206583071332110952853116569481048125127546277366862866819479863203122804489447204198708855465931437854489351676155651613686780096615555767489588541092906219886615136173717652255837870244276706998458109373063222268074618635068099236924925773948811687927394083478297553938954015058404361081394709396034713147786934987243383722410922215551781574497168847415004344860426482667383690680754956914345467431933906749659009441286735151145671320939173655974077150288276790034907198121979247512905298062864992287331819654999394428908247590714440286373760682028607065857378526497581336508438131887386179838780055662531786404506968854353523431942248315190458910768473980162555592070151030133250283463131104715528240604671269659849143158916533783357615597871153356840193781459053643786451685015584429512794673948967626593675373397807313780945378989426557451019288244266126497945827451228820359537657666393422872094582255806402470204500937038116440068230630745419770012388650741457980757996350361389216434538584095772127958244850232267679971020615683549238577745423270349887128109606536295762880585281640023671121358676618982832545147866306712508897268442109579526981096027841747999930135626858197819799838502167359021458445502950346804063108610315998306609618062243858308168977474433605153293960231473299603063872466554897048944179296296384266343774901094920462061049753470099092751264744707010692698964984025487201979683487029408548960318997984973859694004871256710382008491858563657812416448042431611074753754711388616430731949970655760741310912841028791395067825248931452010225400492960135314755405418924111672807554203652755009270461403826093954634367428647492831927898825863426995956787209875676615413878713888727398491387608141637586374127972809618488518695188901568605719625505156180821743257498564642006928436207253425528846575173843962034527630912871108810833790465546757660665947923789544317511024169635936647825979961965680981919677943620867595577909041001742384765320007225467030442024800001248620648589758009352287798154787644677240485570634100772791402509165553289982135888965271448244808377291802974921095173122001758833697789184601953423408142114847262561199369355846559362151149984056377513885308198431355741913275305519592650154993863244611163301891940147166112299733266850726611667321202828644145791529292213916696161299553700337015141986878044379310384377783333886924083616403575309608139884289045175331069169989399628662117250242467170398008079015896553676567835502022831993743603748696787148864020275443096965387599932457316922167103509994972514830102608760677419295646051522652320875828654241070773159335290321042898503520507559969077032713918332603985390463932578566451800711254474306462018601471178564399009475075300785078492323300530534113798278431208864920123252572768052421572685139835858382283347906793565580209917876681253865572843268737294441699602454310173765669053520074211552899799422954189828861597550242123946597389401561967887049581598064257013951894866548862686433640226095184042628710072776344062630014932932847070883977944727230919330927796860582866604412191691796891683556331154550611721954801800624700164784425070783231473777294026246870335126868085029822550604672620355361245529609634643278608991241440556956328238813526496258702148776751257753760530108612880435894956120055546939563196159027236511751317466897768609114245254929650266242082857792620184095593563250662597792214928731103378987238128118998332866508491465887924758917333167687185805264226647278309652675432183078687583443617444928634839328468468821998075902178772292646908914688919336197282279533401872787586029584165075729222960004200574878083194231851179693098873146895440702938350343871446555755497216120426094601046409663494557095916615818561231187496726409584135955144690541345311225529796719837648674181342926142850125820957574986609750666849159101755256599711257013693388948844266292341396216038986396745393275069675547248811661112734815285747792244963511054968938218133087871094522453513592218180629295712735956426528089079630947369154835673825938436478155766036625988070568977715015020745342804235157275590553438552598174425573122187534421889348894562129666174615831543726879207626678985694194078737400136723152497354767511839833643681452447604662648727497243027249160707800512926523093007467528272501718983860013268432168025543980889596115142121709693793784995932093343714982543878701983979442406220058334698094874569716517920590633769486853891848921331205117029973557434466772555505339093114294162453022860543095592123473175026092302217996249172626034895920425906676672558135996700171334600105083914309928917845019563573907325304101431897551392261964034737992786640543775960705715765418233718679018191155536274754436283817581693517057730678893947030549077419014924148259731484590531493160028111366387630987233737704484297221553693526179498854121144403451368655896056767085162320428323701044916824266979262728370696907955726563914564871796154364839118462395663306492853723557825934063351766837328333172096186230143525981645323189180512641689197696792244045783566125492775609848999838124043259693920464767568514597059275480376309750422094668301508306170268664496731150301590972896380983565758347649792692182033254680594887309415725494193572286701767756180523893645676655945717402152186552210176569743763974498600853072694316365882677026854687000048064330548816339355176594878409891677167580197542195101340272197681687281224498890442347146186720841212903399620293948277529420467312972904661381433276470984775739166453233117798915002630461915092241124357085948191973319604545337643452326563947556797877985677219936186674330604906986730661636947148852996345524700361819079552400214326001480908192595701366649189427760446994381736161264029576741491316401967410889776604913621898574050540079895418018909244313547915177891582641659206305601602500614629468743133342272659466648002721429876761295205216537658207893302334323216773969030086012425481067715380771142961579992598781215592047640845655824360091965295789226478222963215167280544214230549689513504892605443742036142954055750557323777309296709920511008758302782026668027238503035956322104085919311684336750064766038101437917956133375550172467365784382723811720530089041494278138264097861185071306900550922802944801709621676366140712961471103693910851724213033867755154205028165941847571185417142718832770048906065319900579930310510668978094710164072526239721597521708572609908755948094960993844728633644020188709946118360734428042439524885509802868557285395581367816247677193585876410046757875165040876940142687391234210010675415295589525859015356504412014238344772941649364975812766061916773998755412430112830778451954439765774840115668303074492223141548292334942754380557970124226936360546902344366441502484710290223084491674135112718691314264101702543991668672956192413001387261216218965057067111742902482221438538754881524214666497456298442421582348945225154938240893856207031245776713204299465820777894332862572399283912011307926383745486028206228619533505525851537573855215358124513218357684001026077723011250282455038043337461994588863304898029255908388139075642188924444240049324996215376090830471531256238805223992253409800477285336753706095673074058373517472709094553184412135837116979631971878007125015643413462838792592953457009835858420894284669670786954792978781252733525517979513778443484056789286156405411077915068130384149107557453968064611460521608246493079692243933128380657111871187787230369755029602535073231324286318302632164077417442134819167348118060100349649918141527978804363627115343291338902181924868837040429691788481747866347125944757230327914612880859243380457181934008091560273335686936950589555416654823670531682400370565685711775001156409645886374108556878883112966140683880065204729358406703293418806754395579129752332149105120821250109173547419409709600710232915967319985974566773423744387530571215935748790313043344549970111805827142391727257327069160847095722578222182145814481730442281478729460289888566651023049015487917044205064763174637063683164325238601352571662205045741786243180821794645707533479901013182997765774445172350697506852605722364699379925400267405257719421851283547549070890727370815833560304987087981234363749840992013210523480832119120857723092033397881668757759420682808519483514424362108359323931160196883700180393589369388681200884182719457170770078078427343669687558830246889231535880602324829744608838775289334094993520273089834973276252772080377038224534579988447687992511247111634599637845652682839169337792151825750860569386525822218135561527469562359174972305947699837213876455226837141512700209991775616790220698778696084953526009564737686183113879114223431391213309315798794502213626553485692790051754643962252079634916243781759410431271454215441978192317333219632310484844194765554226074522880110269591625177743482185883732090548076919469895440214619049443730455467876725813780069603291973154538884237539297784583176062194695138505956539454537915602121913992877566493907153733783164275781392490368604671763829382832188899654016624156633180259893643180095000803331628468388250803563208314207747276287694975801697711614930009841952970196534240428499860880339350910284615238188256315504505154412904318813448517105212845943136185378339113352864287920640328392540395459005140511195404269776197129277687786940114762783113497790277723422969430772621165095524703938296586488325394331922090904130391514662261276466805974709112224732975618782929008030930665396249613916488799237604565106157974138562413301437861028497323144926010429300681433226895607655193211755680438923681120153328790258215808680017155034397172651950211154532446551524040465204320741499409626475194975224240948267251982930694576145944914659700180249410621081803951273527503152287623551351201721225225452099438822677041432478221143715891803848590406611630971545715158286907705495963945434949767776805764422045045872400980353034904181449670742081653078008501865942747766544018815953317120922891963114506544118150478110172003142332272036726993938748284135360199685364514340125160697021916469454598551007371946879110991795145287439056629166706071534006201730528509844779935366602536036432199937823341920399283352439677067457441216794350753446130619293826294440550557752483720881691879092427893389539036545516777265709662675916999880862966519885658829258680441779354106576963381143257804257268280177238955140749627076228798928310467983747562790398105901618582744286859794382560810597491329839124747370912818834558611722007065850572500197256069419412958394801113045307276693218720753736939016794109943433300832829352391303076319571715583998496026804850959771518302758949896151511638423803322988069302207471703307627857662777223596751285802012936601161823883203855562289837889910227622946668501080019278025021541742767793265990130467998113164984850369122139995050692362695203248131181874947170704989091057673924877864981294433101543725876593526887781010934345322117802308803033644066566014830085562333610941454258352868683521822811889568465106345203897679252558105472762942611480094136140413345914363197940289154382351164298320236169547384477845471466755409855188254271311322357337403134341623889222938888499577690798735555245399874163612554725994085898603308466675274741159611274121623299023807589153460113070359017044466940299952157217452478765149668240213973433828070192333906599508362771720507083399720977020104454875184556440470458932157148481417371325244484952725109495063819787744749473406062057672938263760367295543491011160659988795009950383737927089986775086211921889883097290293465782022651723829008031277204457923877569105468987522672021628345278883805414482642619143491570539043657311886823454364695594479651930704086991247239047537002167237458524103144261758693015940467783807132424155374779129035537684716262001143318905445188177173705541689347994237461943236158402708320318404200919116376291091476797310037676652791413180739233305933018846034483718862198474090583132045153315955508694151441560792952409831463714182464708031405210459857435497103284141098034927632675260466178794598115230481432923824866137151891392082466926486245314301763581488304505686527853662416979725724291474033799787932988942342807449715165270492520621089601149539155452448681742048872790445901806457274182432078360085231270106639017900519864634257714261066635924009534665501566282269994172028448464234355951061826337973934640174403281216643460365471234014955246601942626995734088958689903910979517988864916154630064444725843930307130218999272785997968097048608487933804756509560963976209768840318776883463853667601180929566107015685346871527355570050834598918251038304132371906232364796941962757510103274310732641332215704468505804347302531674817758098993072566265254549384579142606889107407983219960543781659827718854362719394676418550531478785324356325812139832100174231520053441006893062094460346222709872557702320510860217367469860240242517229349575323316910926948480171345135378685052388188097875056698788285991565709176621869303588966521357523328842210586012257030359616114907958319763302560361535323444693045363019747038707159259722061367740544420747113124867803903318250356579261031223642618695801320161411159515039881103515852897805469247848451131252217768285149971849243637826136170645601610330501579001877593258469815525701177628327412827428469414696200346146406711693142080214687747542212478474608586010506686143823891193654012636394944825469825268945109149516108375426253748048171087154387073356256277744018487554211837235354572374775070137689578175128163675816592558835476689038487833601529027172141952457344618238085802084196459032909726051114062890710067327636556894312642723385392748038416077685668794186479638233319351467268489447531550786905246794341562102377024198725005698253381761793987407150779814897582548506974494329784999780265829237795876722634288450344309325043150784438663105229242946091935313950178294909886675507254801391676989650481629052580623844214429512737124705930048366837395618490222788121564669982609063334534968631344559131178759379493815341573806697641018104375324175544475834830815185796540875471090439984811275179148584537178739555468137756654025079390884118455524172535971426635185339275345621319380483580902781647944795585767372965809364597087787565458696934386362821130505016962728601323346308734623226840953110149661659292196394308851698689560451365445363154631310305646496015549055607057408719109692312544100092718978387138298215909081135783171252731448532704282223870753110343587160590215624270495631280312789630619722776073522063498494525016564850539556016056014892576342832986222663179017710120213563213383380061311979011040919381697326500938469638445223226245949741810303403493609038839180006392123658033253994288983698403871776021288650808930039538568247155177572874821240852487878073969568034798142057757173062649549200679673833152060712742847074142286478792420214924533305444520019398153264632448095214300509318163722959607855415998537299101080428775977785535517300942221313581583027843685427891263113792547866852738201762151466933356205669952907303299440197057966076435255702798480868658515700054798711402658654775895597202317582830482681529859872286702212523772221345777603283078577981818805781909731069119836740580845549905461785207644059696344287264196609664400953923658160451195633014673284278527973797787986452948283336841447907902476328027003799320702586823967471821804085913306043854625776178573135445086248486383989301858331348208076538270710456910303158843986532125866528274039979396975236493323366006251415510727977614939569847798143683713080502398150271237239977851456368395522379282896363803549210018656484388411108286381732320630671787518624682177323449838460108255998999842412041541216637907331432165145269071910443289235946838602124386765052951879025938321908046012142541872967790325040681796228772320549342721107027598957933641300503910772125800719237919726880855630569081189667486908055416336357724404401204106898147330056642190209240694939544699443206535891871802811279122315357680594281165744335994596347724868570018708825498286319575808073703055036627556450102691654408807602585546979213305051990357547667171110534822737842296734512442558516386845726209706750393269276229052887147585247623156368040457558021358127919284153959352021971176736592097513771565332625349613139409532070851985722243353673801152866151879307979687511288920089366696491649397659529761632905025664196119646467095157009702989059677224496699107617610323702126009110218707313338374627144099320566960231898815052786143120356465692623355525721112815829058062837550280915926819595840037497989767951835292521539014957895099947324511656383853426436042346105257602943364696803774560456302581540400342491758640116200101319470406810017918018018275311292069929064588004339437485454312808181222010845571279114309484390873555015184092909289036673653123535172862357490548114969222386584070860677788015594053493881239140813487119093381528974925455425600872957375318335852796995292363867900231400579541961010402362429483376944218814399731612623397298148490177967141583243583302648416435129078875263542243088941337342626109273297628616492808549107408638791975391979589314979110059644181549962463524078665645853059663049496965397331033558715028188080612222924352908837331444038115599784819366801408500774511399453146742503244528184150390344473738864846037343814370707402943595124325484236578041988095677846448412365693625160068197527954921568258636618791171992308535295046704406972222316216510146983878723806371359400151727293464156369504013764437454065152897168938411402323146097202812659982571061282914642885733318333609013493315723801868545421959185725344803841850086662353495014396180550021318542090539642217653172676956144308208608733786104462954496429702315422866628894617074975049606620221461351083303966308527176997043879952651487605077173335763803370398009038809351026623369159113844260101215123527258739848583226853935602863360445076438762886853015738932748450472809170472158846336255373651211600843484368432130057636564901040219492653508931240259335731053003884884462847990206142699213713447259053668426574801000274188511447996937475497391578444238204784927431677478038508822177407246490716449865061327207531903593093483483671746301430930784652332261211395300025068035106295256142936054103567960956411154384062020384604882059281892488065931045025490679832139102061061895743896538140528986360671076981062885850128448603357036462381720880630365193583452431446354496514140788335667306982597330018521314875040235148015203423215274802531110715264485615127903921473960539937602544885587197709955651829512143952643293105790588343399716543337769875961551366847847540788988197457573807721540701150852224703172072324728404895365316397199680642416090989316681035971024183742142077644136702225118277980591043870647438685777979788174677373399322513087338355320001567661128683272805657225588971409417848470909833368559744275964773137889352634622068740786727695160217909788548737587490110611371828456491014919648007358642702002337331387170327686508586929408885632905763473901130245754292247851388700052636206824634695252057911062438563395365896973642184695939591239481738978910424270218672140504402492641762642045637484690800732196402123093600654399662254927931030053662575513168334344735852287858525871680294863213638253094280459729515050806134090559119697043718541954662589769024001153415757697935250730877742079809332197154114629754938671737091247401510627978108899234797243817626483521111443168587567112328993770369414290159437736061054089653297919071164094221235600435630874018888343384098724369496346664640070980435309030012284454828401819950115193275381922653473203428449899537337710545016535285726466640313844326903208160122726399970338366264763214535554646676650561548077541790296739866487192743389148176177378487935730353099828312745605933043901707749821550975713154284081725706837478265456482229966908385063966346059530851967206130094401380936292365045251032336700625357979019037619567707717791244016925813926043065508615042420787107083674666300426571001422571332713046983563395574398019115572915192377239487978740603223609897737260937450481311838325939982130764947375153542353903338941895376293913810617577341146894557945112870816620544716297934902483344776644537760936601038198428707083325987958104182606339656563907793892649007959148056805907427127256966589449711532587370738907175414145332920248857349384030791095070254328406339096122022238327486418950179042754578649350258182669918320347837710364653809570011988959155577989976674696486642142162224891443755628476907932874478593727688336156577959744263944061396287815854146955264114355223280337174642731276905050902817673312628780297053885567467312876663240624215520265114329242335584024290937623660368282731371798834945890897794028469440554295170946557100144168152299963339687506725791035238857365353636067143851923614382609753259152518441057036457292971616787369590940556017048574660751649736793978001577852690100723854125879263452347994668400591343716182733593052499751958615936386338384410483747238309570106604862675171156742951172519601137601469020056242295048973377978821793673161935313840734606296100259062452947567478293759499048536749516886224797031313583750755187954680824357253336516257566578239138389283096393491901121256753148978623223882410448958377920477873315219647832587413682254328498010230292880158031029574926704198292167302423966262678090927560136576646798978243301817095861197694937080874538572880510284217565751741971935091327888587361063740255142694590161662429485447350168492763311260026573624781828929163204862399319986010365332332236224142449469617117254892492249243760245628704306447796380192306052064711262889123234803335773409864241468498812533720817448356341252020261981445293915059874628990147595329867633735229403784476387819405382464620147652342333211671503302185608356638276322844257524090756187154814914752608571555895425542389026199954300385191014997477042603607308350577919991612088542769086478689479981969715199008481595652770533383778974421337960709540286864897513502205921320915163419674795038879347065946291782635109042726037990449464370397048186027664053940264208950197236832822549188133805037814563634899325950107427752751302069029179422908715048958082272129818085953171692322773725709686958432044036263545227901451069217961328396447447118049760991172512303880778886770069228439606713184907699019146159286076152591263107367169535963423617708966818904014404428054877523314446714854377549377222583473661788063720264306751028890991410886118709364261238301002981470603062915192195387366106222379157329972978110746027138597464037162536289921524854480641783805701330155444990385873795548821143853349308024933621331893989652026494439979281197075574462213585358284146901832351032544872211241090391543729709837387844684493202288807188150016315593153559400280256975270612371350989513725760449289785851050114129471371269806023662509531503340019030432627594021564871803592332285717905835913745456477587781519891612521299623492896455452197066952534123242068877653177153313566863428809639676400626511348814911046575915709269900903969616736227307698478942094705838062995368820114623288765551568813820262784833999909510578676449307544392460362068777516685851218535344615790125372937739591626007516075955279638812918131541472008328917218581783665492813861829941668627901899549145082640845942121626033931958519213052764613447604683817872365850284685407925105252477302722125566789624493708312462195873255288871119214961639842379394800470387757906674247204367826812583123459465509121227848803683346008428306584529576044953876043452241179122106193157335842322385655510792979706024041608069202375361706394503807983095815453695229719093262228498444740066973333899073344776134342729187020981227872334756643342829572237682202904294831776232466285759540123510762373556818542062124444048472855581216092978393529651875005929566515875471508737035804177989281366597216968843880716961424032546397284394985672185269421217167066511028010062432477315195245266733467734728469801333556516799191225389901660397567514384735288062583661552768955260101587793386063449424986569397659014510835054507884671359465834428675437024537619042078478915139724535740915949520566971130955066774968453226985793495385799703287960776178280885123604776260777052997988095011927513059264949521882675419055040960022372744220763614158041461614635723074919091989939132401591619187022682995263952393171945261034581579152268403782545841030696719507215482712776097043631310896786696742949423246810134666570213162597657833922141940286277186921429854713032739047623683052607441039172163945278899898716071068317977790690293615960282142729697956856591167136741283111567184964550598100517562866193893905095216315707132793575791890511709239655501917312869433044930780571247760661241601574319481041371647867157407736847339978323282438055578250545467534605590977553379391523813821379222446364849153958045716963961847515324429211488841153575104012329142346898525418357335675575618188257673295886471622416006486408044078628193593297552844482313774635677197512576741283443314715412850300968779826847335878059836031021148470766349667538764424879940242527681683872161564233666300352976473681580826221307548255573780344976614807222863995296894791851537858655703118981976380612151099150522486629348583229601248906344365396100757006841760377933096472403458447704739987907069634741955846720769674828746127886663262524991949456353797586539159258448750071853059513325433005973282406520070539335765813206691032948511214498482763703792299158808903407984528019425247243292634063749127358911325739922015643101610380471468604873979139185616448469824933500750754587438457767210641564372892977999888109983829644300825655108279068483884989534905679718890993145349465683832190889472594984250511789089781909139914644052590523722453052219030343143480652968631175224669392220616808890262439397659446229554931257510567412873190457834002442332593361137528498404282999069196281520208500644472724840520705337634366176549846426060318646866635204585264215467104280874491855097087398912189725373109612278289137801586170377260239006708428486649055940814627075255361255857336240120178927017711338258750039429642042832106933910862580663751268981813471522042775193023379539982205204196601893610622968615527585894152776667598948156399587485435383347539119022408610733791188051931771340596196002879338034673212837481920813274176588698520164357889275512862981310439059900969700915414669115977900075552325235206238740032645847034986787498951173955991787443591015406482871010685302068477690753901962978519152908696914833438011196734927322226746181367405815094895820931306258105665973574704927093400799050696387292168314008647424942533309883932096368391555990941067793203004665607005754657268027291747232263577094946208558515460336180297407732984988568681127156097040590413003372358765986810607318951799185224095749709840955208976777520404784625741183844570118601016602112192141427425442389101262864848103881010067126425789777888017359826563838430141029422928197311895617001694373487518412607294545110813824151004549754925576578368709873699309322879477601784371773130839973572396759940359490793909292601110995426528866611101822752074337609238066932792100277917501799725596072974261751891273942096663150908342538604388717002740144732465719662908140539717419447352057754119606938380514725607587844039171840608630699965605921233901062892907700421575441345298021481173945402315346242476081418383307316512122382308709912282193819147846335483866166343421436186798354125676159229026126780891406651513049912231542754278978460202533396523969089026038981558878010439774965569488546276018091370757044617178919438497320098869900687695435643999002956080732025715113245640144004102270324679462231589939493132160243710175796489401301688235550398972228082830238663073260210381995240043482821477817573579559805015733293138319637903364307965493059626463031911670981672150577334053099740738436559003834475254741724359244244897907195236416684950175587906917091007390212242190106036122831414394241699254392806040409193166610623928438814229620248005015775533679885216081270007311096163313427065011088069358938036580921287986443492387632388944983577498124300629106599351235006021418081144480739231346659994255885557160221050775941811229197131976905913221275117612229396885584939780583947500397828695653934186787194331730091580101243876710840067475095698579622610953644348278358812023456324232778697996242754794908611169175793611829925078564783927152989436585655659309188145362236985871613753746522050085290635084425911485931385032409942605080898761447880645841002031993861841779545949313001206667323281154535095508112122149867966258174799897388974672263624683705368072734491242149052123015456295385667708760990003969512010478352003321635348723796905387642482955070583847770384002762076700102672495215521648484596522863213758469302823802390051303285878610485445774792912679189596205902262500844917101293670419329304288517626269559215581296123401624072379964480260834429454785360854367403242127915080195786261638554910565679292147424409458011896408383535322073558799726710382951910625384063841934632603645322923121818812511815873456854390089498852683360207034256685873125773654745982452681150540973344558581523237112549679299192631488895468162855205290965913452017964240632199912860557115545684426302605915210694850999080777287605361115826435210192941822922920372928647474013847021542198257431327040079549929060494290147220671772033207809331053837168444817869265035281181660689976594234867122741420132703279305404945715809261715834836676198240425450611196819542906674136764662986135814126431431884009924523234145455494369047896027429355410721146431749913068480770686943173725573357763723415094325790378311054321153938960590018028328453952258721011591402739837370594096299068819388641006552702539240973097384311855325717062926266747188610505317094201019006145166038162308063256392562996962025811175544672898577623421829666339140147548379171567207416556311586829693476073577088992908223944653721373432653305809888625443051120147226118390299569241123168397452422177163595171365816651379350629231203578880302341537705161876656742622928235930404377696231345798971346846438916556526927901818227185272352484709629876116518080612463980146729382061848231080086829695676676767661680383392467000519480163670180732392210296468598124834600936453613112866501040582196802954155606944089755964189831942690221276130292052908718117919483799858106756962831814122387163283022950627868771856484187140406768349056388542052258496016714660717044214447290670379233842019821199635518296077138930685118532718920436826581751165630687419664794559826732490728023378638296372036761589277797548100598938582654536199867500160865815590771359572013314935780269586313341478388116898902210373842002103109255322802289603119785910784421880808613582028734151266618933312102324594428677579664573760592150744637067039074251504061328974980961759369206647426841149066403969734321163456203247909188822259924495396518930016104099051077886721566738972658019095784456967917961464437476813242438144822349573523030685866068531466693766441059322520035334721942316734218296200444266317504653516951751456998809055145759288922375522838427845727889511356518032421393759607624132787010530454102416288768952016383974587429980360721784526004695465365599234468659648448647363746229358468015327097016657493229261377258604013781790763478363836471716061225744694370904912913400732247838244647132105097644092395998181359731003831730138905322185783320886555467602091866630250704761016900516135172056679974113515956329174515472553056718537809580320910215068253153119528377467030852082912495797028794771886460815089185217550611273536278643605179579117652428167009440631792911501241865848797366301764851477480786001600823530444807204765571802252536100298611196498982719791494071785655110705779861110161703819054003801041944677432440653089852224753969791861900207120757111661464355024968108362019016677765416005213567955672250087714561810051520347023777126264427599877866135166839252252428778087116894882036080648543222089195985986731870858757593118171439110163989182608263408896088351193300402151995240111275982866124183303450247615479186008831725408620394736228323222012794508489637953648233268803130339569676838708525610999057435153366596551482627222997556120748693428983464257009844041139228586435744174694956019953783116639606484487191317523642138944533809003005822842840183738421648885729562706786640069242828119863816970447389291828339400862981642125004074548292465369631978715474699617130686988985893950233661889758185977919334646498712587829073482357449557080296927320493113204024561013592995786529644745178266529930770116132395707862588714138650852174716986727553961442931819068260243623573730426051056227679876472525409180064565792386026018832094448546698290300955724648915388460181285205147648430125481514944121172497423371398940182389526657691313988452910546596588469095605212265697265441339329584295971091165875109698005125502401932077572465998657571552457575722400933522387436597856518583477724113010717578559317503738227123078869849042003347674284671991559206948366519285960882663338583290780100754596709328196431841114048195401598034961325823256106685204776861842630860697075803397094316818461062770679405290490916503010319004575771748612070857461153358813190442561190290381301440601856221043080846486394716676891248394561651607314759667312937191937069109694619820023804083384510339756130057486999765834295883128640809470543650052301909408797570626878492036097815639766053148975730274386699840031383151168898931065727660804585908597563476472608766108024603032111436322497989526838996937745180930263722644583349959308367193866000474249278818908880828322419807337665979911763397684120962125792459350392419686031243813471790651348196839000530434449697701103596791871375051325060430137134225984749016651953228900815842385729641943653082548970012964371166243054265783973729970553059637179860065447454038516006566024605733544863952505108842148803648236661152363335820478708064790038853377042577657746035205714768958679102223992282764220240170357585566996907370022045858090788258371254333182478728611568722740191430454830343011452233655308233768323317819110383483282353710664325645982076828820220194376615869083107963626942231449338877985403318300561573018040146169135504884595611217945505518436737018738499203747922009473863314116384581178120387505727795649174293426439253835386174556345183153284156836689257837903849403519442328148508773660185928836648646434206339066252052923667567870517380394190002853380777569091011373147511498630403182194091187838042625210767945513043468174726104416783823281897506522541609781931844302729960699232605548723191554793498764512689443507637037527556315034251602771267169556573115742752863153089420527594597100741664091325276603566958510199804405557085395363083752221005868757208899552321914161225593983958676791781794070229136418073074011927140064057297354778909821464189721076055395619469314780752205557425279212539551681195151886605236458818268614985601280440172975802590267259296118396892268493836241199733513555434786541062778905960973797952709899054274679721384862889504528171783423120233910552815898272581427848940145068707476402337660890722206017010931213947911889145301732780190697832056727430410766542724808449360416350090349358010528100944100873221185755240688398042471875183585093135407983223324769593498972175202012723700573583698331535416859626371316959586550032063825376610879765652611796685272455119660699316817245344344462627518093937303659884192514174132515238444155825687472551599612122130355327678774284062478214144038410597866348948167908968065211940882956484646681351145883891830667689362521018619498710995704703505797436721786395055689904840300053002313359184205613758799903727126765571262371102710351135461657614450641614067973807126039217415461490092040811384266183351823567045842562811287222294292191113785561878415984287213326545767205631302025380768947174891534114603647348645936240219600026418989976798778728399032549598877777439485360790481176274508946466786282622118993409176256828379239086076309516484721934042543405200351082357116948698348362489425150594996879771312996806189856171287871321596666249512327853948105770588999115233470243393952829726195066490976793756499806582486188900466425078093471111121059761320445153362014563625015249233581578647001333109841950775320881223709162085737771383448426810007700384301040007775481182686096922222425117469905715102675327055768924668827853972444140627301562454210478856146454894650182942899392960777552902409010995379533954570983692137213980548066493465568609840406100027564488141225197518773102648436391884934720304436057705743623891032741750836611342585728320617739419085379294046897699798156400584912342454841324459382234212886258659676707274200143123804898207491000300786716311521455164569021707158145821883164365269994861839662621672810135544588503854208355712884084212556469104903495533130173328743848249165756899271636197614298061255386878202243199641311722231217920061816049781805873805294255444665214455137800361721056934262346219009895508616573147820211896979513626350989947225619109577599194376348152879989333374469697650447817212000987712887761241713834055602788436769679180848728658205611478903726135976929588511953109822123790555802235962012707760037583031524146909922698685757327761367924881178899890136955212830684004103234540560564472479209902580340451627207227087950946342969519135791680562834720584833981843651401686022888152046243736816296366007482319362389271437130268565946269220520496978443220804418879618981763954896107062012713711681469148090595107827341661325803762171051699805520712235247901872126616248603705767895163809473524194177703863080115778294631840579986993168655384213097670722500208561215340885844502935845113084248235170596891593968861643203173811059288539902983434300481990220223637589918634033460554598495443004840583097972982681359547285088444848886939678734690558789349955892762776288930460293073931287708389223672897312601947631708167708404669203237848520801499470013946624330767087864301335104143566566022147679144973943312845135950148697039443218942275295979475951362468796675097784591553928978920077866139828773988427253011673784485708250046417287923834833776637518280978224788342631178076893794722891322640074911823221581459190306054645369957824168235150958416912624317154854876898124263861370072027829924604017880748557980691458513666397332072108436110503314968762313952178532768700820066055768859094133649437061026194340744647864936045990902085731949019686785666014643140651104723856615565014245440686059379258735641523531638734481278403512949598313825513496941780014091890004011326579816680999847612212584540051700149714657458734973447601027557867094526924716342438641265632871684532380791103315730641229720759504663795810209970474402845393512967036210592895457317857933111624577071372629887595044791394925110714859781685864018520828786424539055267149259978824640924206126926777052406146564625139398209949295490602999716014829276238146293566000287945882873746422496232420869113922116480452754860967811758796261657585653997304043338228480329980579889570421758918563981764322184567938455201737103292341273454872086844470220802612514153386692635142623516848512836568021129884109936432043784826791883424955334100397950464065770425903265128715984104302828073500215373074602485302538827538352692834825389816530979426636419060608110149895638061544034730761270306695784579953683693345628817030045488984378627463189266274561157764942815597257191242604675407107952175307602233768591047367273128878861360674985062971504686935509813184149847446914093333456030464504710937340009891286095840305158762166092334561667778093169590263888965698743081913625386621761116002060831634187197929091562204238401105134863145391890376328088687852591669763988106650954763308664272617677997955492312466693049297880907315894049982929249413171687776508649732509768414497688437663479689925520919598310657774172835315212655099131896499004827009658181565820249938895799408561800145828362308876205365766875986940929528246630661570626000112971096941199303041280642239425576421363033804271803435662761659779186380124016126380992483845816804590414220607191516559853445189846388127883457095405616534801892665819179472678740788606026185073830974231984408344293877263510729135704816027776257434878473108052306785971914409469742992647062290789780876708856315515630349345262130232791134121606496227003935678069152815210848698428697991751265442730816941628939806550203867827289662038568208730320131913812270456031321790463315144061216970344041940174826712099442236145836018596328895073048533963110798553060225320448466448384631750461192366532652850458848836980958088788293426514969797832752518938720596539921244535564130573944833167697369924643118813134386308247833967121298771162262478199302977653169869300088496638150060958361610953755486678714576003174429041813210233226977209120653029976775941853893798217958446022469272660687358153143973355834751918926131036804944433706026290385451258636204153480513892594069456957523589199562097071462970439040003583348750874303662598496369003342462067474162330539795217860106996497900844220487929798619511246490735862618507103027313053070439818158603133592406235946977275692561671654340029452590873777439481335046204487026854868344120985483121811332348577667895843244348554791183877098595565113166617357379030814602176452738600172600328739668918165099526901138805274007491792710184979346442625611751287418909052978089028382606191339609883244304499137910408944254547168591710332178876993806582328271415840495581667035597697991786346071473199477486817935222597540507661320811764556880208217683340739209345930844390984997165987308271104005079113113869384217497634882662887348976573715123433478659609158214175819732374065253528378170706685429083053286068087131587539535015160222380145086595370481456102988304735458927024086839374858916983109617641822057239472724008048492492903632541125770318125276880328332702691576033229901639257424583912739614236037010663313662676628786988367931237702414373416530518788366237734647254023240451170658847443119218650392138279986786365964058911622604355611250827589566596075202738270906144730172345156068722147866822332633942547164893173654143360304189785689014368075786598176965826213989053996082285306506387507384150655546273583285786727625256404141166990500962720019986475185652983966582721992053645196704631445758998342560217920670428609672829541476717509606472867624005457659047900578654189262417359849346973360404433397622556102248309553574911571763630160810442239202373621330340734026368786732540786325130849790543490418445130201104853911256998205223910518011132571062780390082115225293418622107553656042290166398980108501577672921571877657289803375183758959809177371309334682517343740825500713676548163548858868868371011803867520014139946833319940671991582307657227944167624936384705477715364908823596480840757346609130387833855431056977188607912762137110011607061217626625808786817387187135992748860112041038750597522154207849974764720072275545390465053063815252606241035535183388912340475196597371708314192479838032723367808885820779309947106893520787650117545656043738410959749815207156479886224506879285622165474691121240816886399053815167381980393141700623456405261388431119794848799143387094360656070862644109821305590589871243977587420172500342805766645668384077168221521559448509393256127397925626104231455491748914117570978988998436123451961847418729088946613202742873620880729804955549424870565559536329983903082962236625654551167051582101037878317436838588152455189581324150118216754606595033999933367593794946918508458385947381455129145662083833000300943125180277218955053132622565612357862814930362504536254358505807270314410437409980365634062553291284876405274840721712086817974304466667620113304005400978826298916640042303947323826103699173732208313708388309494632328294573040534602807465835945271844596176893343945511346567438025067135542292380455961578128556929515987455672622252150673630993581055768912027177065823303155353746070127741645547060875029518600862435382817923520845714098402958275388515158383603668071423589953442132369420558794062995851857687361398557087371796443492857870136329197037510794966634616293535571213563733866475085450479227609283566806898655810951680953619793498703992066686968658728565993760742595073111154129547577196371835978084523148481342148519113429533118352095754784458183234853685461539311322804199229227144435501237846040172436023398680637834712459786952238760068933038573548371459816272037069280410133150214972403715536134333856249038255894827303505535266854399503972985625606033614021336759885272945318332177595315872950120966453901450369739824089690648031084913174282607260214989607937414399776838775529202808737440248298945644425029480541970473451185873211853855253178002303524347675828398269610928710040343897520680146447787181704297298268820214261757851776629840897757208695115039066290272644885450916234142362009618644077098968900602960618996440748183431731671395341068968337425433790259986620364840666136488489299275934353134137261971592189428792844806097077574826378461161843614732411996569215559111090618611339024388614553552266200361129652217658773465869847344493521899087720667408962766710877868353483509999491030774521145839438267220277912606468492065432856158031793507753642721405700532119346969154538912114590728442557311875205656250772507530173882165325360490741898843588716791790645270427482844464690067291643949131976234840846191938181195053936772999808545106760482642056567030110067424795296602576557778165407345486579359684383415029725021576578985370364055345261899601443830702727445130270129573250685310689158163927894935839465796129441946289740239844841481990082734723329184265232625942135941263437622484936311662822880320470217542945550122977772184652329833436281515335913351241036689121715159035434984500121044566339048243838193050374179111412880256283961157785175637825492340878387752715256057641512899370154644475562790052378562073308353006961737735929845515277072095773096241844460896821848542745642734704483715108682653346172984073401679579633556426356022408229328019389842150344133051678479524838170538178051233756022130943226385595494013766664107007491927071133226559792272195596468292503946036982218676356093458510835441181704495560051624547617388372216532220353951790503247381572182476752884173086305317429923483479006595512090568325191229081025014299675823406906810208079154863287763217636068675297083563733064730546517790570245586355251113857571114059743205244561658969609754004207910038335995693551928702480655366464623021375552379345510997622454335594424656067204946142696880953897201856999758608464609130176025783989870638691737226764252230580686586097151948035366366192449242088949703078522894278142230605372960354817253303028966063781928451909813953644055068061896647640026921616463329772729492879699786199273367359535598341965096229417082926337941456886032513194533175557153763532930852382660265933580466704679360407911064899348233919508173669566031816839976090698781363903780009433577208035310383399623714518129793999355955544092358894806934898993837981672008058413046213926744665060115876013609811148870145300198183892722929767592843862935374185647917257079099590410708147563025435067347483605350152405372853524554527732097591631640431043389069928325685890590911602987920994707473819338254198366716918160764966911981170614769570628640495804269936090572419156315990496838656968748264974632437933815537356823762424948285075478405473226260788768721243070809010337481242464921971223623645134715217169365891671544504137931386324231779856517688499474402789868300389027745124214846444249598679553691845632490567803312913939377508143065707221357035572025611250006235615842940340807753119335300315947251952260982480368584164224636547462768115190214662591497950595897893377091422127783492892610262848378568334891328317360698257683993992902371596791301163453451107066616212995524790244860960127918759253345425250301379324846083422188322424668274126839684423210065904089096311784451385411855717140926373891177926285396399996061370436916339964299523950308468371096238902859503582374010682282434698278421703155695652396074115928388171909172064337669592245410968767270591024162647245005398681318548057920590726830253055446717395839893775590741931956182563207148973927482575017376449019730394472502901017254842503845010364757111822988879432801212186346319264064743704474377883447483233557521274081260727509482260312992546551259864456538673102391475669922974147695891516300047013965565853449872393039497252272931989557723148652173325530677171686154200059251334296967331685240268066446859309248134894017738486074088407198873471136898015898666920799819055350171880653294759382455334617498725550793890542501154419723468330043014626463123991949715269517620129245204113562961686435579444841425505293692518049636338420532164095976675142851464756357678376576911577214708730824095693965804852788319848988628633457457877017364765143424545920652790679397873936968111083915415406106602539158017850623704115304539095277920161910032101779674017675433384199915266328633671022685695634012755946805579103716407178644650084997258368831099902658886689726818103657423271086348917431542046690180837761815705307138757891697909328976310507463857240405719107395133195767383732036115280505825034770779419172307094327716691458504207490495392571891360649569344306000862220153143928160069873675382320113467292206541819900111785194669824169352796290128213607761424631699184396699934339718966159255542631104095510291597845016138668370652098454333228032035926691853782175662029622490250187606236747980392093824260008288452662956901258624154561182812468453517193370028475465996566615040681293945924075377887329591068695729968555030481772598199614111131789714481089849328001715291144783248385147394025029868505566897003245100598816828747596363126405570561541430872398400186184314824383170862774754151012498006510216824150881607457412051523665876529552234855963091277105664477263549719364561893692351037914360276778221890346414562319865420295652270502980528557449301277248091762298964858987743456999058650796554569378928977596110716964345323221834666548718733402539488167849371185779055539825000277779448643972615727943732145195940763948648743874265924830962226267971123819107327735851926049344328699257714589236638464833773157781076007607530234031799344736672244653501790509917577810674707938113229698471430151737402291599713664804403815706783509119123312766717781727517097766441547785692079079776301046347512842065914556226281338781473840387056226189085151557527525595552516732779015794263662085207664910807582796047600070974729327404844967390196017044003792846918415478503161251805781289664349923685354635427043289803307362263883773278357585733602180408735700886179163394972401350164383618782906787325567581976390520290414885448102376594020114920848871749790863743869839170254014609552292304508856258240292079476771696796536429465856742380265203866891038769999414634906350187845080868404249742014857452833387299177050800537068855266564830802924196092617957637729390854285969737883041057149015592925621095750501346263646590704442776441708066399556726451743895293355181899911221732027273607612580154703488233828947126365234246552699613876127621715535172082496929119026799223036082615941849634017494238464181566172905340037751233084881514694629555861238248159315808293472490465442057077024540528524344739397725258166845962326212378423098797545935760627647697265905852112892415708013614857467698278729353135647948092725576672757419370543906883339451093842881574371910742098916527703053178536397312439040243946152846918848884893957542416604659865683144363351998330736827886717177120133322089351352667487831330284519296717902481930514183325903689720996996495984989070892317851903021723303581774738589670601965394691880826393827367721010585906233539899031990606148072453151592348482991598415371032911954782310695801211450315023600479007654286368958655673434386295903573185672066015343901414648145479836915880317499432804817961778820347623889350275747246224609237223630001519937735409649215940191819302276242258692424010821530858279174668888432148129306626624140516395989058042295954004463751575123053081578977875255743958951815733942910221877187736120741507854542414592441152552337080632165576038984626617085866231730354817967246371961172488427688233232096020902633016410157638827750563648026670425834321518424620844417882797589253977219526590753870038095461173233657620401506642192807422691623957871083360187040762572932533915446770849888271609546061360008397318029061824050084591432622510837457100771642784743637984782535459763293338638321757458868566609433594772474617714283982243612711464797855760583082137613237701266790843729814051109649701026860749739629161127485221352748111493369396259949139155040849572980442073901484038473546662994925202680345593397539116242337859606251998433872015284736781277097135740636638506758284691889097472566064286051675806036945918221000615459927006288806335388361652760190927420219430133780136301464668638698023367886239136486247691779108690079535783775223267576117024425594552572447782747511856870996043167416330436496824608866953957409050900055563702669386049905480673519293205313458993450989803993121069313097344551355189976225601660481847291307775392371581021525312766523773297586526702483368032745244224539675616542577061891758832726120647270844236737822849993726861157015902837355182979691960819831648882240066938085580308918180014764651498794733267586321702515980732255481682946989695097563635723677040658014068265273602287364957169987641568558313219026919937330528018826387436049801552053266544996661131561920685205952824036359885219818448691405718526373249413593641295533615524802493463743458542204681091637719751561710001022617151983061378244314535823952307829581649432221441988572058140980070801981270004429265092484671466944732608709194354279336084079462502257680026552382416570790247182643340131872929539286296102123026606770828746736669803906430163029769239957143413737253366827647166181423676862018642280390603609783875712259566553016615922119777101260940447835088509727867387411301271679824797512026483127182157354000582986366484620895309594340195674663332597239475439306178169144234941009697508970939798850211147641191994509067446550025046165573479701020747789686901663306551800252937103413942877463070642698654274197673670161503432174866308079513263140097388144524827409788260227229220760715894281491914707140040613850802680528784106905975971278195198595481205258730486679620466631586643476767401636401067986173302865556680707886180788344474529355788649582813576329554083042049546887592892420768869356015092464496823266188331498478408459862807063228856891057726474143895105662672852045565061010176183076616161451609612934179768271633305654067730337305753129280234486458582446123440469602884332556438258571273731910971478115405127292391479204585782482934499359135691493516930954846595313331665206240432668632808305210631684216006809026489126553118767820143527029775884257938329137011749576776543441051608324133934481199778837824587345266017332073438856031258634082632468251762813270017416518264128825871149818174545952079406570706463284047577853426007935724458433872896850002227240517851477679233477963155786417454178960528860420519256576265251056937940208974429577386547559358375589578707922261217020216852260905293902436649242344299414838079499959034802283101444133889794394667649238028159245966496928084347389009761822940160328677086875924787690982814240007021990194619682806824236997694639597118641433122330378220726028415757165898932791584572481599575804384520527827483960663972909455664459313865046620161066417743850993053320569112023848451890855869886190790505664325361262138698049768387967541088845664764863757665483215869182506773806854072151627584767486507141793133959172421004492847917763675176670833506341345964836548246263225050771389983974034880005606516854177844189142865139733396843504982263603617387775136063192787258874747561028392688015113887653938889511402222302406331521025239246757241813347852761203366938844812832124720965823334349871481567663089422575761837093172964968229660861268233081676382546557822012147552018695646351894005982806904210744630518232201309323766019608283591488175920707157976207991996101682273242518430954168170491877882911289210602992791959627187924016874004743510184495126077865893100563976026678557408589198322284020197197139060973648570728380308859023198388070762738089236170214091539580234615181166262037052527103756046189785607056232506190752773953744252565610310000048541661889290616350158313084790899508753294993687085161144664351581875520569608550627492331023391154325109592361250852032455802445139396375897831090596012306982579970199473958246343256695814997426657119020597367110408845281115331816029453738723278531082059881239647872130021788302709071429393743948074129746916569952752391790840784303662801096861304290631499927532981812474527054505620953186344859857513462254286201414737620557930238521181094713024414104913163657906172248411736974116007111380987445211781192791232838914260636339703360145558672667712469180192504065985167496885234679149242301517201282711757375635999694896707054561014771929706594777359521518526574336507322557769926434391961767308666227288809357092324365134143019450066681941319686287392055780016677875032899631783267305798569963266452163000825181295391584155401733513080353262580693057611384191823535710427790760043866021112933333749378798589481126667461296089700093849838466206012306455442485393179660690710546869308495057578692119476591080971415951751308279753215408923112990620299075696007433944250098423378364709754619174757388885813004729082796228581994273440112664233440561600776114624820160223590855205934679625628868120481484898870283534045232647198004029305951929109681673270908913093125561200059220124939148715238247598006100150453429089879285132757579637562549771587494035208067539669020846255598608584183891055776014882252183487646312089867225064900331974063415795190801653036561908155379279711327784123350723708488006524060033073694534528999754006547478438723713501545223603396292685657259344261994229698467862045920765716621317242220887096608450842851586430771824510746922126413304417393597718631439407722187332698267721858299158954907365978150712282286598347441637082920955764935061013118021771425761427573885089644837624392929697092877479264759139176017273536222304500864576428378501523347312769674775024040587237934569677575060087230182581004063464188556737321600982020508910800298419735276324768089166911219209493381900854938075354323437214536228179500571387139775268480101635446131743814261515614944252721011050977672364962368374707628739328057829383952942655307236518841625858659064083398975164535708904812345227234115724647233460683962964077199961884606203199241055949097233249373228775881666033068337759339205048124085555317209914591285130494019161863229818638149424280121655906298914884772585672281179141561795955852835882782010340803783698242343428582078846260894297277090380701695120756926648863429951281728155048677715869009147677224409487765063814391022940854498794328853856973850791220820988943985022213279400541786238177790223720615496522231865027152072758309375826299573592031931131465172060317569337285143467999383557526653435494943419372309880513169237814819415127424500200988106936239048876421537416722929022448667587653990030113695301133090619217835274474605229187996368165375590091231834151274970999844604206406086143984500817119131709759856253295312282914451711342095916645964742782431511661704008138850543390079268943544652252783103912467691372043798646921506150845733495629681502378945255139843904509046757745968486038241786379172134151627212856772590171927363096965792435287503982504614172594730566138117598425282826047310973788404428527531588189659298233038561120389088717348909629237871198625794408873501997243645355934833997382505229598451978910627426088042001133103498153682733199812903388695370697070209923903639236432154038624615654186594226233591697356290055001178944924840187391500182482970544641085655084185812240735293496390706119637693743819883680110007825873901530329732191599001043626890027435830285682759179313008060596851821040187927068144216880193677748679452730688301788818098063922724634410097504813650681888776627445368831568145302251699403847747961200935683555764055546059369410307411504479353197388144108073075789087841695566562253790356992427774307490644845978989115333374468620706785231890138615368087088030976415059573388722736759171296674120088382835556050426630012775154689514783952041510198547438753649653145668195501235833045933734935476312554034667190623643707854179475056597494918196735581158380426748242734499292864297154592247687328518552430939209542102993201091254463643223072824850462235921555779540941007109981862635168325039908379141650745657459252775983372357073043267969055418057511934293185158729082945436569094723186920166194572479093203940930607039386029655738818456178139686216088304022842255264431275011775044130209339940606577593425267788740617677736210541340447653029547333553283649425484256094403043212355350335669704411679416270202969977992630394294127466223247713911331262153929164602209047735582655461254202508536913119170517685514947736140347685044675603689790300899937630284171207893673059695178205548263081431567152030706997429713149415955107970752707830185108788707982302505502920732658506760322922196494730522910783071018979353015517021418967233250156659964352871925042844792578587137376349433546640584240673942177691273091537176794814161447138745423592102942471816062413582649626955605349805381674636173549553657259970272834452642842625058052037757195003478709418621690336206477974380453015123162559364975379060761707440471860224085132033885556603859659955092007865110214070335604303238510903953729997630238991805528269494204669446854492597522541952465807446082284258753869007235567176727866936953554423054589314045140939908895442838174474636438704860299829302585122953276257068307430287312298541895484143030924336924565623147699308412264280224126939008934846460355607713846780269971346384699405918563233743132502273379530547762325155398574959865252659210726789310143417866886458994810561985061823117452020215024826696039151201381528081253569124251747652006707210017168000675060969806762506640050574453722235037014848281447578708060743208741082635426887792671771018052615610566352426273133351167253052951012146280707900928632730725088941742667507019930915089511572256120104141217770685657782092425124981053595454567837752099521926697764157940768038257160132130987184312156608268790639044666321540729805435230512359560003650081566337161090133637688353700806025819815398829242612388258088353651302632161358256858285799811516651844318724367183040418965302277342546186070801848362812206657044010063472005759391254159756873696662930872486610837912485956386953642575956006595191366841113930512136867754834761876239674949477482545409764065282864412632615615970698818816022656185424647518232361809426067593468451833094926861179944681886527909682729025031924774452624778520425873540577466377883995645130567515232985011443615654877721645120339405268273319368620923704229850670750319437125407254173471788023992566062523749213701417502628441619513939558117270256989596941150059379036351123262779698685237912679758142239435632379225954023337050643977633040970634314916010586236609019956627233991535818359340515756016405353161564311919289090726882117515141470085045342798841605673546845645257917564283354795918986915467445691638713249654042387919246147826625044666181864694941065701021534320344899391612708748161462973260426580188011078377040968209663281847663954008902569316839660816159689399456198099951947281800968229433837423782507855702225227263922556786150199865264928923954240244259822788145659237367999432976587185409061247591422258909705760409056300236135562769204777104099964256173023155780818450794114706007892294251893820227039727748114531848431125857244164152377292049348829213795016178106903457604627508782680366113426750569217911535645307078896693484570773938485488815832668038530443034144250268227434208111496316192099318037460325130379632138366728967842773344717251590990791439013958021532102901521585140583953040403413042003788751837120777896827235082625582103967469829021747654076079617830612749793162740108007030210697057699966181297317567865599871649758261897741684441883088666638701097782026240087626454389914065426253367920546028599608583539161830367934420164892739414845789152712934582848374346417061569290068396467214849174308575750785227463525247831692426567994560417539729549143507555388446899943423109650226332288145109007932528038849389384734768394846504898489667955897897962210000161319008864443701112152198250758627574930648044722122506904329087586045092970351074624297926333366615508827672233552774275000881636265703178434962238395023987238385083697191286333979374496420118141008108118540159211052907900067916508565754277329667858547255259820207897460210324928582756755790826585946870961254837857344877393878480031014423968143445141166166503414206146626036840709086237100405967504206897890892256338319283661738817902355271655107176446493392513392880563652926094506748968243789117873590348656946433673770306317411588587367190064934693052840437371819700627770605834838003647634968978542911005074365466192914873332786196085538299484975412567045426246368616645427176878009938231628113537592739367483542301898631274155368678657993950600125875925019158314483964721630950857240948197469304912352826020837206909778651626534392756299114267787283918689516548306452173030628017950480529508697533678470140577590655215434590934322458787083329489866714800883970093587636357738703798127518408923928639406530125236176442608876242776034390525570630945146997587699386496447670238172580312242081626442406987695707731207813145208348181196949976538774864171849377408203301738700831851076266553134094113287219718134685763702326958381362169212039906211353981212974534091837998577394551061572921914456039771029041051767631700372905817571971287013307218603814409721449062721934896324667648571301822568227637107847960646709447326984592884380578222116790132830400855995859811579543228729714847002915828469365691414615276112341558671462346060525922092261816460984657165977162427257809213867234658876368868981418983521561827332195143145261908335226366898557894130789079843104711131240556095382857683945160828590477967570810383974887967690567365939745831745454253344173842000479890046180902620720858171120477796673526994518386544818835699688163842867797647325014781781945740408164318822548215209955428728013196056496720194340695550098418784924725303476822016662635145070384651462043027783206904782054116576330182412300138053272530742371612836486734724836268150126582588559556184428071752145435476442595793174659631218132085989459416040016633477483994849870326366652713756117425204256111337800957346900054634413624630940193286984061374418717194172465657382841948148213505878446393569233872501299597799342458003015284037765885074477110691991634316532760088148010982069939824713290998857394266329756040984367960007713991596877115399979907792057127168672199621370408744755558268140563618341813843984546399067515719154404288359998290076451117369909531798160780750748512839229069775426468991981543149336187725483973950620263629968653479781952223393149077318405716779464416583066927678770013317741383336302753927390161472074176097112219292437915060079777988373333589081440963250320801584485381490198331471354687774736819566487264727822955221228361362802477055768812966682911554146992540259507929506865963068315845659612203973850517598096976624331554342391833639696863192909098103268132506123093660892403410291658156625987572202232997740058081742797864022265526581449081491083207879686161569043090596812097849316676048658830940011264166798835253632634730369915467322733283789218600892389548220377436348916478739148849710077198099491154851222436243499201515688724830662703756008792698913959504912482439693491700934750666756725494374270262761930909951577650807657360928029054370989421762821044103872252343805353102533364050745161596966940788762245252954304173525396633394992503443249880037218754743516217470350902577670034605409988391823716965277298562839602066658867366312364172597098508764365846743348019943202667996646316400623548512687732519900850571269883654839873930665564937028492295509293769143360494674655354983747128225760643959667080261182822188219186873341907982750819045568785836340013091031184046777428575525250593602240629610647075245199165230916626809065026868714732015016257683519107287179333838372874108216665437998286521892637783383270507996404979247042320287884244309238321130721653438537037302301617973817610756681356090692949980722888539007952218618266110831724660753104704099736332814901071237073928667318303563841079199304588272713922541301482024328499840322786836057360592944694877681490534987849230115715467417894160694088193286303984631859137974131445276193497448049381073630199682148301207624203741141466030837249687512652489758125802968342597342804988807546853101710779810039467436227216181441296726097248217819987950344849363650913638297746501378801409115212309335996126976335275931521911134541454762048459308279444102817456958441803021048028766346057525064498024144575321820736806344207642018037298330325623335091815717836969141612960404868941324381823183079964084364893578816149534537019919277962014879357611419221150575777144780854675477483180889295890958021771861387404358334741571961891403956467503710703030055436683013063477589308634483043259207155327574997140758458750515994745379923802409762027799464697410421126198213754908166269059494453068078461884734863046743266783610002097762238982598681637696913145626729471262233420730646704063817980730518182811657235294341287005153957783951161351906357916922264402156644871559279923266981432837674143176698679308019483788721409294922112206152332191713643869282503444445412716350607973799945264709736346980273671747512063444453839653015974228981323225862333876001943295665731783352015753485805346014207124705636958499604280774211939695429706602269405828156508096585432468353187636391506434718304844099676867186951234027005959122534434861979925426151646025711928509808863653946102291284897230227568191370611709173928561483304935868095270608288701396501233488415531165530347443380782668203020886463054333998662270318743261439574043950709640812230543977618932746649264398352573274977119368865573676438006237476289231782838297785339062168516016703661987515478607100486860591975169953710901965399429644875918650659082111170229124802141032751738436197007162059843042817891097087308627780882359799630740940482698235382459570827398908606594260628462268710462343583887010098954632445802561473856693111474631472850289902272225223773102593595983699341140943893982757177019039299796445178412401026256880872055229175520170087817833668737475475452196852791285881875605678491709341105659924236147033155067541614417899300368058713285115475398767551800769889865123128435376169998992859613457468182474952976488765815810567624598419854254404606558905027355969920643339701345524356999514194975095551338474151012751037729442978996821802034128319710746564130788988191288570776804763012630831306639962506601759861278228057207737961004834959156178860795297718019284885466673862212407172853293822255044605856043769056815185971442555743044738610172472140118893680053590330617798910919772372601252300101493936984950864110104016592206739974993071200514120172388067675712215794466245471447323412474806506480629591868910628369629559370992878189290124353430353352255369975807964223005533832022709119074278514577414509140465173377828860809694140942053040033337536725889114942388849786080829318025278376381096705932883246012204601453404707661621765974600013260985638823460770709955789163191658986080702561989742444646258282093107998695202969494678659889640333933410158182919604325687113376916182588868028866217880406808714187317860623068648695008892225760417684416348124671410083855147744451596650822813940698514882612007482036066636603860702241501797084361237939760400176293350974647035729855912297408209176622689411961659444195012466934335923109850617760386704358037777699126431718635086762956837655230857417919264462348628864312599061346661625401711206241643229362898623834021356620347534554667250332522796350689210937173040307142248080474804528231254455433025128601760065361060447108029986645159032707824721970203416334738114621026104956520144809267886200022869961359049599868521997709528182314670852624329898284224997439819084901931842785616579731269680333149543623377760709944532333694342417579704887344753498797496723384775204390551624590892862575953828161164157225273644120924189622714599234841021313195172445051575133822506960404064137025532493781179292256561551009787124210481861264019706145973394042255254169251911329549412382732490649179841354214732260570001465946228903723127614147677549701179206990621857783033300940191417037227150917547492035509389110647035993219925477850630880177016974860702486003068928766946864953759338672989630068443085305299244856226889056210252094658491975146445256817181363262672577772964451209676455959418735017235657255477763160793343948925253183557331647566244069500675305011956658335394785823242749389320619556392354597916959990624498943648347039856866100238964296827737585183513026311280434324570256061586392019016324343991037820474319226857593810879987571764284166944145473870473568017744721095176134431275691053826910655846345639082869863562824725681522519261415762317135641753421295241849169368499489505304435970951706082783399694391700245445689624545865350473736467439369256066277699849989697365437630363597453850990254622619244968102660708646329951165100802670697241986788669591198401372501394295866695596574555970030029090725201311792804914520870068543470986784801875825640739775391564843973491307802132768543314516530597415616454889339648481063338199636503796311911770627258090900781666814285279709168608150731348197337347518202832002732569345997003486524785523775125442939502456385767714540431358372772363078563520107926131722760168261293139729944758166291103503695645616251005395271443183244125820571805465604422998288695632141082189513708458634127634169927750473209511893493504853691337833493454063563532062000753945602209736965432212097077949987077927620216965281049317808039631727958524465557513946211357882781009820635429970469219571358296868588286422221652045874345425358573360423730027370203029404335257613331702328793333398126060022260428046326229815992719170200026757629046752671266193529758946508633290060165914785206497359464824946313149551877268498100175791599366984376648355784613836880114822675417431049347604751080849702560416251170960317487397094907832580392333463194243857201809180361923547798656791787476873034768519420172433605415824153756395014264809620527265228262197579247996932533989123218436654851639378266022207633656120951339379001340064000231782476212924321326851145375821929401143151322527836740353071872871513011756896509349945768847197980348747995886144538234531273286770000160603675912725946045416443185353353082443490997386128849634272335998837458952349798386483053720301099191966441857317732432840767459820476545274840831999504010554966584316468738805981322195345529466338488312108125638381451802633238158718911490663474688439184908631764914256274025294051813084766896516248567146674313057002537962296041354863094766254569160500136916404689050980308958572911731553058172824513354087612993451348731878978105188663558783346822232364845129839194649965179349559910674713704671163453760542719320914914952054734723921142965149860113737921779822690652201712931017058900291764750975388128189562553593592244300039804343397889852162043679463860873086482966132727734709479190581494669959025156678540712319401459602815880821932568350875479466960282560457396319808790773201862145537793045849062880248941878967627759668338010149294693444506506154547572055395032544794333797110696175587349231741737698643677324205057919205004790904768371541797603981524731862506286620457544322758648615357917399648817531007470712408365097346795002165884751844200455819903744150873729103817001489899808623712199423205557659104927799529377276505909774700038791276692095616671942781963511786443003457044422714553284371378503720625327192607398289899564658052572439735305432982018142322098955975559523654461025579270909464201804919086050369013028036554346637309825966060461031682115900271911174307248158066325806614744624758199022451751766342438793351909547588500678274705491512482297123158340298976174343954275591633939655426886891923654111848045567125975372355885813349936928097497727184771766191327279428042996729559283765243886087429592085755806316216174977326631229523689379090447604206265931322087197456931927745105468415178530396999836553631700823663613240618414335804129236449602696110356634730684958766604067083948838599711634943279512482753385668373202873102819117344903732742869687145252376722070570101119076756099081996499014575614237198715719633057699062996086038115114187988182508294510776054344473160622327477575448067470346741464359962088323748651283471805975363414559229939791608297194652173910464932888632446345382288989125133783277228316835408823553522304065276817963800237326598874103444144633349881166618607988245343179191616557822330674829213034448668225892415608007432568659929718993960653674994859022490042000517781949063017204410901948847340333411757166715153452406362565712386345222204987578464120922090310505956552817706617024604208269533008230060415276749701847523092008933984047598807575823313065577869050510366313434861623733661502772904274311760591777481026741866839593155975077477788798956967524369988103840875698162299133703849345569326845097533125704560979212498862272130013064689741238038290857766498339919120733063589018803714675160350739474709070324833506067015070668683760608102365046545614554911890212156316382550262602381450347369061503165565182920560843964425180959806370161242368967073945675067096410469435317259478545640682696522783210080173669745995355108435137032946613355181274810398601735507126388120227550572071848720135112301177447135751497435805418773040707057052198750821609203051538039850349248401121719174749666730214651387495208722557666600760950384281333412634624548541769447147657967148363641542153139912829968978269149311663657734323719762231184395793438587590409394468905834572094141074644857974371903563198727098373681026232144339323527828263680147590519594352877858874806295373599915107834214445996677797840957379343579820575649365986638288689613650072149491183974964088308923708289090985423001573276379463956310539471783334258160268604352366191442344654622148261859463702964613090338990498179829270071793413449555553663672646437324693732751438341783659624951517493809848086937362686698794436835375226029636902578525830602566587912023526776165101958086763568140579440651040870533625575491740367827249394075404970684270744331780402881285964398183331639433704459251207567001356864220471696718453570076110995264292464846661904752058662437023123245659063894023734525742997538864416584235199332193265108476869042106122365489119760492094561953959821336861414288054688054704677491613317676139708647899154412684278213533116003611165761741606348617314051117563165135467552191821304790696611986358825611144862779192017334608919199985697227710163034800830862155947139266292944854654485497168644589585105471623612573580025433707626515290058130280955034296475302648513045879433349531413947589694251191412988107449931836385365577498472916930447832958699408038842139704869743606790675000384853844372262177028131542825465376417964013923723513093404639843747842692376438581369307108054938038338827874738293150847028294794267095326612727845323282604215757621638470881534390234992063399135367204766786148608634197921234546319352094776365031730728015368181957903325322428905861763473474124141530947179236660358907369267997489419179822453525572569257810861507922776232371933537406122937080511805620702822732183967253595484679887391034918250081159193666675778253801218373318761623696218449975632062491027371748594964603144489148968562763253179651228182197349995136571816521386452430743050226003958818321214550661261151272148844500081871895536264292323466131195887425340074167004811505080944778004544081646133920237998556003666854627213217886563243961194142924007158310490036109950268159869994663678157418507110571268162901372750131339949776508241163552812922956473398920103899675893341576949586063365756345129950608823606368094689886220380551546778126548071085341953343468288670975024480541180802320834513025236409863110273985030751606965313262760838143467098547771332385143474345689834571393321328067406314020746778235282269350994000284832016681481457714122669202250523532473075013865433872635860139453958730981319668028270860103385104081510265313370246964807634051208218264639886943689740501816791585796230161637976349655557038266294394649699890450784866119211982861438079352030351770900914435404916496249677627176898143152725169507175151761669699415827416151837772997738010897720652117182544193779931593564400004968907637143898913651668506455090657622659500299079556253493437887905598131485338543704686653056561553272475053384158282135467932448075128259997624363201003716524437229138679458896532499593458833480817207415015741755983415403121370134150556117258992659151379733956130496240984862900403831093503822671987765388755508829377234431605286483721260250357056920879980537984441486104481916072254698720181165039371640712147333931069444686965853354813337188900916365855964965904766114592450431470410359453260303056116151380668301352862962963483721096176871771859165377664864205954390161479011865805029137914981580429738559997662863550417809222409481902961668947157818555145911987101031620978537895226734443548452945802333225073443455720789586842803720433727185326157887929913252062190894582678830295902016660279169709800010252693289948616587022733466183559018254828489557654038987013572958236318720424231100813752064636888465962624537649923595607037889296799052462662044343791576131241274163901693297311703646764202824069706371671873699794506452508318685116218526658921260213547351946108616859489813902320972209235710130185126936477278115316974955379037956063745913203670139325469834246006939390297442332582400786250936011829905993722257511980314416353840138052869918240942608437642066351033687679206335984979978645488464106998631737402746492539835620918689628294487373648811070682118675780982142165540113512480644514916419204653166642189059654901880812111040487045923802087679956895719845063415741674060735555504494792114176980517797822123218409577762559602461889775723424989343387425996361517637082743412191138761819215535413169237326404256051451844908549123735422448209037533825630554657607734140985422443764092099097017130393965739345833217686694813002925315398889044926498550100681975107550647674731312443969121427811520418219724623023283870967775640440499094524149711442815116346399357297681764384525335361436137593731109403179659831385890181727334526821642105902031428109639329293412425775188149675695654604784424197844701029921759844367902492755509243827629647662130654185494579593036707656810609724169090541301446531781742825763472963894763545655158714363312967872826287148826063232990528609890572350772413872492024040297122288864269795212560963789718530969963686511661594228098828172325405731131136886862516239439121369717972653020921952549006348579328694111751178922737233702178535685471328599124092565863637862965661494043984070998681557325828830650453725318958680394780730404587634108876787130322985822139386818232048852114784193262868418789510052797046880369900401528936617859009085155485680897532538854090353869618025135530428696311685423901621826349622348636768670119104437232259997632671682969044318328743448347837510077712007559400357126696152182495361749223236502313428589392165902631806607645857935011478039769647033551222692368796191651201424258810011999075351153481615084723270130913497255341863237974818962220555739556306951916624917326107990555369086045370696166882652282181728940298353950451162523047790342738401784061451473906267955958753404542493750569177271075518906808990880978104133116159908138396505796871146910518451772554586362098344387503187703865131889781196682088488726843654374323991702203189830599046347782963756821605598382361632368636737986456236770073072197501595647755737460040454653466068507441587981683836157481035409314297178857279940220539844332450767842640734477199566499487343549780541718404399655432851066179609634087248812124934072543007504329087106487407848321309867483873517885585868926280195685572135964332314567393454755086944694722639707686001113688893469462364039974435694740634611692263573201522700337474749743202277072647700728559875808389921337961286230435120433442013963412833619040597496374912881613758306354279078168337308051126965031703853062806932668239882880174538982938555055829240738249747295123718075670008862633118890831509001978500957174826219795425180439747178503490403796783429238846530569070227036066787839510749561571813768109593220123910183793545441187368472703586185327821653870639605603024094889440874869221914619055025612515679441445429082058330411943806663866733584843948983555458951741872952561113703432044518947481398040921073399704922721787601819451783067076425006217062955561500384176474123514922826067769916486719449694218554577118079949252237635660820832992275382521707180555560668342445848651580083609200997964077119741033021163059892778355870467237621824011333615157761721393999328277620910231588213279030804787133285255554048407488034099299005070537509838592044288867877858633468575033469064273110053383322680359967639454188784196412622029264720705093310619896197652888038582526493089950433632780025711011419618072212763957683037030882776957639411952869640269858461782518027374621083070072235419237897746251007213639302385405912019676563914327593594609305398519940859910878965382611535871887402224870244391047519643991246291798906123452318169025569612154416064982481685796324274244654837857897299585162149265702649661290545136878113425036945046976865799117600655618821009286462768675631336538707568552801479272260164070735875821176586978120517421612641285044859416049154432128163149986981792234331884231720551950284362000584143664224057326769594134006406101108913926053281752892814371384111964864598959757998170462814973474196023138015781348455499462148285265936198944269652061402763006944299495750626087703788652282310161297834475451262713368762305174904990485312263902468275531293797673914877736331464924968315853178590022178367736736707755508174850554294402194584191297016989605239333490330396645749649242973025696917959348535690292479368121548643871937438367322789142074161133174535234451837748690309905353644953815402357262327966620562568376245257203256496918592219038867885186880651476827879280460935573882107591445111164928276064449741223521903779106826846887451295678248736711978636998092293147084751962320260679143432805668777352794550411645448742736194097295068299235406639588223760940068931879632431454844991905821811245429310441556165479111590472033476196109235291825348639474221679204632674068165806550676934633014512856871605965113799393433696028824879225200806819475965310719362742688152765465025975872566839460540863206066075052043486981540344236512699648497104271810323162345053209915895147236392802470305734157846540031185663960341180260851870300899626066677403992215374193073303534619186578758779228619363125150654999809550682031667905431991275957956999957650223931645109002937786304003033978317122453599708528609767502868484343362169607479200130783044853713224649160333396412562116904111178606154273534714198101080237576811233490360658262457241051897546156543210180999865686318222090547062859534188758005773957670158457116615785191718836753394001852369453945302051207051758083315472308918432197510858563684102926202418222678692335385706782575087349751404750395079831043963447293132017887118228948837198661263085320165307887487081883118741609283467573404229788030669491054716958480166712030607581892134677936424137706585461017609398849735223084922523632859302091925616501821242498067810905551378089833309884719362332667108183955599893105771937008152287839381929965471111404096834698007482171305897727610038621723609515275113983689601955336897297314921008222180386055730917305770205558858948784351601264425739470480303401659495125727169747599288601195686199761343737769241349420146321322291820883961170489388973570246192657218797569965145001207288380945181703087908964707268795782496450853087876879166337603829971315048017059919447603554920426261439222928542102285393299397854881294329178272427753086144186372131627431966663387535028736032696864426408655600623692930537360797852752726823155167710342711894146969096357314957746977760961266905161609231163594293001477627166693991639860804141010209593755522440619906162537954559952071417222945120866292672779721428005334968434468105123593996600469855802523262289181557909606899692681097288109937343043119037399160974572105567913578975951621331550262495780164415591570823932402174249220119683077851726406814992100011500281526756743458839741932399203688872133864689740321930133092978502181604537773884380247982575811302010166995767010355373729967189030052965741194656118596974665939946524901677200253875402607403998804990778685727855258561352503486544747011849319153856517047723416818093628038896303106713114320050068329863606575750311884568144198280797487144463664473030161948646515547657772060364767636962609542980572269412926143185836631858199323547339646896854029284523700840757289867375799505330294689016613899693565715612736044597139450110465238277188509826040903801129099081863643907723509137427337501113348692813169741660441966519867332717638237423144207016840277001969354657351868652863872334207253343572633263835095116624975981005371107083453278748607070699326688812729098226638359993351685193860566748981420689577575508084940086673105403710319228187755540922060739872625175437257925819452406425552559040045986490116448276503982305547974988804317039694439398691022679755214476324161106590132697113014858309185929666924092757786078088819192754786555171677986600409297219583637164472859192015096787656910675044605847891909596575081587053168346200745051080652466208185992308238012040510723303181533358106605785809334560131158915931153537912297394306213899510022190445632116988372257736230973474976677658675433516513994916253102093235933133211336193162436220233288665442841330683951287264683393556187465973449584505400814657529362748480910768890104871798321017741945534957943993310897305092363658050847317635783626136057610576457747076881187946765048544415125149393319656859993243649443197428701896859766869037953926336855081552580656622520743323307765507126849996781806151048680996899032487514208439920092390697463636888703748229672361516478668369412342842504256831129377322013751876730514799611365112764623374018100748334131061607041864848770745440441179962153942295961060630271096633674517706921402990504233165013497298799638609461021168300616886579926075081248814999400436776857073679761437484310750760145636312784701974887318021781640912923567179603813204838533013887898534877678644770320689914811080567529662995545802549026254249027674020676286997292888076218268889794421416882686400310926495561278547200250158837965962823819749985576844150879287293965788058662312010239164166443369949303115735455675385850379240292650735298706159270273550509638030160516192995241850227794832416240066830124027088238559660779363393030646400982737909722494182813068494950788384223727425917894297752429870309133810839703170230504841787283113436354338728751564187021812486345385794732613513029849566215904391197008374044427389248311020447099951467123809409106993099614101198279435254934644143907121347046046331983445199888224977487840784878362166544590104485131262481601775461079324780538235662748948510067041882477963073984287083608559343990893547386905217296874709937909779135655965290557230137474883834827665913687107202011175961161397933266836119276514568542546411975108292267319654801287486668328609843109925736824444144528858110688999131531699746485955606558858125582922574316113519168537470100213777604525889822395242285367702367750902762511284123580952909350638859673920177277749750368225094101394884175745420328503000424855249032664724005736666836598508073806286055492939197452500948401138097294719081285659193883647688689680287013235378047818343670559516783724973867347651227679555121034744175540799536765851701781549569253452349140540613050888271325154462368913483466910201555269044630222891452222177566333814426838764313531751390229739883294483643961495793068426910080178418856106216659473478267883378045403552119569047306003309678190120430299836820149204706089425947451802728025580903816871037072038671408934422521979558766841500481351111458511416654802704144096226135785587444693082632732780609940192948139630824192677068220585723119988941391700543785769978061244123562050075826070560512032771126845664183767978653475914155919345944346146398764396745956875246944034711382052879615218487888640645893490368888861776552496806984931556990412095608164791534894963567546136590327092189692751895002973683029742468409068472117411268188455810719500117434781122298634845697228427470201721864158572541896145268776975259519812644683625444276099943656939148617370367864276116679912971558356213360652866274296394817578652797681821437386936670663848305000755610451171988796828606925827675552327082979733210724974806718555391292928504201390192707984637618577455174353668128475708804966765865248514201823692009492248620919118387183522955338824551716949450390193679096794011618570535895703358427019597009595040076319738044821486481713383337254830284623248835521232978774953541662652713792711231464362285801761397339792719540455272063029593199269644479165414651376970512048659625553494469898703115468593943337668249002366019199086454935640295887412661934287407310066736467358240042164628843186814470032206424117407098917861589204877454788883457495586229554945848511581951063469982524674684265061544240019531364401131923367688274255498130419000016671536288998033892084421125458431116531278858099405555120400859522885064906526648285443110914443489407573292714615410613085692310785239412360438123422638406859647833058440925711804598592728193039257625286072691554961291102653999680008518953050962411660661270697043766679442934076122605930304883963512753542309540151531215594280877873535554971879471717729312268244208032017662283042965184179052995320532126720217005718593038932656116596680726993562257572899706834756693171066515068492115026763229045310832387348992613267622051555756989749805368803419769172372976325162991964723552738558287257478341833316764326588468510225582897838652728230104225578140341431912830266589356616900157670477820014322729310984568887172697460901142964410675798590161409194723608795298282004401998899892513335769098264422812236120925512426665627616087176228739962208394622688813316243514157765988066994302334935006368043396551563032077009376624296547671627599313542071370278615125881171127825447010067227526614212811078222296421236364016077037730122491264491915889862125982898607886602689270970537696422840248663537393869912077993802417662148181124995344556199138293517170261017783518079082020460751431519222295841175682960306349390725783020906607958895501111110721680116146317732227168903970571508490488777720016497916490286632323197118438094803864810346588497496837340870808903023601656684319409421469063563308584670569819511331649140250895837439318725792856476606336935141536333502769615278973198889902509125743896093304421509826820222003291812582140853519883496295308488065466626969620262942959173850870627375719318956346718440370893019541035550925996281748134404819588778600501812673440325469015541118210473387536104395492565888791859904948215075738443254023113944893217843175617926267163199795499130605343054670502445866368668329638529310855570468846623175787477254799542179105192067161924949987713948743932811586645429309001177957069109425008706529358778866258724475011813058255422527811953105575824824524326739886402506565625957743249855487627278606031621562290297743894866736907237870548649937937819357381888560485435138028728647194204025490652719207592569637662265931507571867579578450212886080551671168018203206704545633651076961104987813927138566316280589738343826263906773510185557676262424361395590842727337217549419277245421029957778510605412861020093144536403241316230155078760702781773351015898862871204622503672079676657285010201191310878908149101468453457057841244052701507927276354325402378356472570830245191598293974629858401580345716182997296472918742049696283449547058649491562974218624358179111780810535210034490375872093707524553896706518377876394201219252389482766534897480262120666671390901700523701621404153751252844752568406062924281437626665416536468825677072147641133949137627809719125894059360308988559481303644608226534807039432735144782191456280080551480793544316165011094068622364618761319098678117262420653531320691306382465928970553794480794097878693922055418285009318236498308779572026870159890877934109165812198717258447582514093957491240955653432647290669627151126472117598219668950426552287724628179882078712266724446355525817062120975966189199761203712941442383329981826471957172318545125709453649487332457791410559217947794669380882181461300417248689788334140280869458772379079552114334703906207714269878126076848998073035730968761117787970603225429628787490969010294551435228800212369443660752611715028192988805934294466234582986122611723304170805099479140300587729335135103132949187829796826885417505428458419982452386575188204741173623941573648489980988438571822756249295122756428289391682810903457708509144685746491358300384527255204496195703499416405928735641257397936955839139413001141865355198264058621301588078741257018699213675043392508883539431686500276327450986182876669026258907538572890147384109026810723974958721033008694084599713457106359150663525937635856933441844945546817955280209332943256786736437607865509829113322556571666487309225982124802219252205887135299874011627267591151722871264156250772108450810999604330760143882624641868367821665179506448500168956926238857102114288118089098385596010160706443234084645310422607577827521605438366523587771611301965469092930687979286144358114065543662344404637177133289043467857541235211107130006106179798326154145888947709682971160948370769752830823358541575551878373105315043111226478006670870242580101619955208304998280668472823412722018026170562693446331788531529082087562277728971791505510664730697300766633949885598969581209798936541963441282784570320558568026719383484546572400678001347181964101313663264556813210777727296372241072552685567035179608280943931009922681340805447034314676768671744484155005028341751338046771811529669464759220662724183471585873248541457418425449538024112059789489466374349971124383036421369170171409751697529446769513111948792773483397540149736196477627109193246379633218599727183308144691000690559150553765260774627883244871836247302519949923636252712651571074573759190592961103553594032105085443924115523523898936883134211975177845523795151491914244211363759431959682710503214744942261874348005100340651078759159708412667150775873201089006327816630149592513515476724871275217992032141529521720552686559601247658441484311092702712375336941684461697973613814704654028751981162305119051541806360150330941111445976718082082999053377605518567874415153638168558450459541646840383588965866896732489583230896287913817326333419553667137207401680884086711989781217937216258730762431770533608847446447510085413004611900603265428806400729239875224557888876969948530752103217305133098750950133866892435446462919731385393995590297503012547844200159526974875204668401503798521469743130331177349551556475227498246386767089308158913798868781699989726609711426767421279759376550249633740340691042852764728921119837449832867048773478551519847058122998572384671219601138699773560758488513722178122936882880984472851216301467561906153025146042390960094947482882694396244570711055200075362044341055669088606683591173087650833061397717083532828530727439237467370408036491033795847837240265696692550128624016803148512094922589959456775954346113381891425411276691869296379122978522603900470344434430519595395711374561973197536423727458593984718105776658732526221446008051871372251828729100099033358525826655585328951115400163136159837184955219851771967088708380631946167012430111108450340814701245537317002724619980905445054504180386656058280288759205527765413751795674072614912312617196817364945404609778985525626021359800050466138235292581262352875743476121061098873371140171222631514912547482945245585737363180327193983985091141815273788633346912139119916470158632589084342325482265258277490890966484792429601868762439662589005458772777872836961437479697300343861462910209429299887608983173027399694335314762886278812706942697812634290251955783113324831900687346280533580704532498843457101967941336851414895935658319861229698606643934475574619063079261363927995951105921403682796167676191639324415330544016229249273179952326172787270338607777721146672589135533294961772344887059687247028450920849672468725969884804405034867325344461726582171960996222735295729559203961508187430488771185176325867787212440770583487352022207837974760232899220513061508237156035695874258226053882937734843532907570632872076172215431725776051572065160370921069898851996910609361021347382572232521687725160159218618302826067527330383945153050760247767377829088834597716387102086798862997612806400125842026294502277932907091830748936187985631589435672207746325916012342815540217079510666924553206159357585659889987759485480702956836986399736391768364165806807875535226308498321521555610262769046474867500433075503289772039135735015373905457142139903675732726540199062860036206847161775886725015590819280983158567862606440966408152387643707514574257062993197366305777892921136957072516169590551211643768037172778959022340286860621363920935486672707833702916884719912340235581181244652581286473731233667411863421154082304332132948513692538927323684258940278081588654888697155327388696553351979126985674890891709771885772753824766362124654626406935793229106546908691051863677409030507435493349887746401257609146879164471624718689658192097651137160005389232579462729177948646911379682829172921459452760058016328495285732970429792551187904987804667145991769464718106574686351452070394427151811303090770179925685179512668925068131138314553539325186678725132117709495608580725623977371250985823478829440251341998480922876404380483769278445696909587424616286114144915960096718269311818090343606324057908978345752096759795282668142056812729685823453384299838515137670859420438486472458429050180849346860149577696462441240074654423202160235064018489029808182434387306782074098511931245350927036029491681467299347384786155650071804242083020787433910969717638570689967952053754691686299025416829315333474915813426503908150613939956105557475251915287503227214773499725950788079128741948699392610937513202027032896832635652935915613853325844329245195467658446856028406194447743756407552434083220704350227847949558435626602051139116634263679258816991344132464998043625919643956270531825951934554025970440755319923852399749134448211505028390720134644656626325489511075637394711480123821538920565593623812898302491582742826722623431797293987188046626069276886696537057571915604419096416523939246841147945437968584113820047929600247491618172472719746153076857018212748815610889702513144144181257890560229000047452181292479433208234015316635556739091118428648491083310263560142661008468848950280554954632400168908963416733522251409197602798682911895656668444170712982969175466144973971841829881473438944270906895901676126708055938194600450612249667982566744999109835133666190502064677315397427999945179652937380047826917923468260612530494289209758753081014918842276964163000723227223478306705668143223129266144893269550803702259591426819459842295806139674442266941195398700680120261008050516007862624126718770981686491791811773870180876936329138423509745075019956795735630229152122462652727278287174000828822183111904614910441567564970671268190061564897753652256219925662242485051463921768695830571867653057380418654282123542658038895171560557420626492404057156636987611053639671526048642756080920870121801581422625657271677659760327374870779014521174461735704496466321371381457988931825565261609413241693331890715179405052128118324637945947365209645118308757183764152811963176242497024100057650866824569856598033687583505483503706411828490515464433500859463501457912103553851438777196567603038513053422266996317916484176699832347225820354844469587391029452600083380452615568970269767901436942300507686740386428141093647694614567968465771593656234759124448120900126330044342743942480271700138666866781333675631094729062885600258618349905097567035468846003770250792354020270854676854377068038711349412158284267316981957865930014105693587832893818498973337742082075645406962860430972503168612295807295980286187877652959187218934804909387156098278701790718918190364561268569448329665061009762354654910925230333991888901582693702632294356565667922605075949344498751833419008318158889430255061298501467930564012482718285101128258912259537641095956244501944224576521287762548583820962736092533305490030041792074092971755252464283254656951816523488517174743624125144728856842407125095824673807472383891263566916628986149511771794749520317918642967136067178958130068202730127088962833219681503782905049510295582907271233842201000270887852584535371615324516505257373337080747978100321645577834216368888154023655559604113096775898393706543447672263233443415961005568855932067437931174404149648226429296809666403952046099290516340979978760679521210001073059418714906341804829903445211839334091057967563196928520140658478845056766434226691647457645360005630946732168272116129913199527560230311517841997827778752294847452031177744292047903675565003651282103221390130584884110282368314452078245033903196429784846810242953633623788927986329871442845869623332204838435690883717125835647514636022640604339948320378514961275263094200758558641438417994541688356035108952751194411174290911910035666619034983765024994472446215504236797592072574796620386874732674599659376755655954598739141081284557816230032062956183130403672277445386640073151809806438127805649170417134577527882490395628409226864294373884487328299347640300092275672481932349136770199770610125415972678936535086016788601580313112010200292742172504517878043854016944049701949861699312660134275185232394400701432082757338835753240420773283686845022505030342870278367181398917777014343349227772088787997809905051974673758787286675753238740150078518625400906918948233521344762178786945503212315425667947076692094520083243783269529253913004368566420236025362992304264308597930614546005195698879128542315658609843230184741633702995708727435774251797913557233417756742811953533788193241422898415852043145395852582576456627605946081604573093843397326206313823771360007502857914925541647613690915713460742443552380048223987026601572323132994660161213764657422314183919130767642587396765655638624503908436588120931079503451353523818415794023846993478306514208107073513698945755444592727142472044350371578996730250231980809911137986005041384026334138679877392113228879150839766120542918790248396505409918934074135608010627285808550977465322014057131866068056746848067580507967863346773102063112699407060169328734457544650022653912488736443274970355974166127325810457360555623732147526385245753760356713494276746974002216679582912137201601797218135663723475785500966387914782895759321788308103161606921935792673455632532191103526899834478402580310854121315619956784982202881409729832539773936540211025534404013241096648150209932581635556278189961861343723283274987391382449461398889259292367365875527149296906942523860901192655940229698523170769592113415194837531405745666141581455848979742745758183059315670333491052289642209411825007736878430769099449680788533200649577498957869258086543359318177471737340205439179002384621140268167494460202731514568664706484133883076802875680888192557502789531532787105004505196999037939815167235477094890934324825275575498624845871515522746551020095260878008870868035547762680167735408976099026153029242967551596927667734980523229512497929514487216740067149086943512938074037035225640363387158197011401742245786502794194461999765562189626064028158228031700315522348975589776481940380791078386602080159403125826874326480306074953108385524401465700677514553669260217323968223695071945061725954654560264678050422854749565957387822514854401330749237428239108025730685432795843312686718608955826014369275743254739105378372044676110902058386147859256012162050218221629923743627408051175281511824753825563865081195131486554528280237079343614484210358387162754620044206370725091141393123290850300467267501046621402049875464711293334208068646673222961966391433489610814412555597340847846205345911325597000679836496761455113782233588932231519710665019531776651510715740353286142053447925715217183087042129566923223940750889363054434245971544919812951408528080171191992492330780828020144887339032979322382908057944774628038396530079071066380115971299464856384100364712904399292654017086180618510482275473300258820526326457604722907493278412276625451059920854743304103567080106599799437969143274526608030832053683499712672452049104285233859541921203000449755629151973688594374454171362604119934132489641112416090951161100877467695250859032388239947753792495768603890251400062953730686062587199836075713157658120018719249019339849030573708049824664510589645819296631227502721584525743805119362920395375210782986840463646309773235863555380167045255271582015428677960530253827873066266986954568029083659936815630134140040228061215647984914264802005048457266015091499021460315910497306789886739835889576618377611423952683017910335635729842475085973242043522842565682905999482105865787645657268353642261709283824472581997218007476973577514617123688859437594788844074305926612527031667060618036097351436402479276427481613370275849985663370299768350383244614397791813775985127226271036868765883683974849786321649906456631373132264048530655402691646867891603254278345721849972010577365031317621273148382108787733613216766330454977609981380259662596953193203322394525342009072923150222794666729166216710287295729740309818574279262203705819970374057972581024693384964089968780986042315254423472627908781287004973502102754257513342862581969389805675581252708363061811559312139359696287549765721427826476336925764664870276359792953191410910061156223926575983021380567099131338377511419507335226268043581895036099530839683257816580047706466501953011833212063485416443787168335808761380883238822731792219802950455160297243858073956069592743194224465313989324592174087621594952102341492764103212390032457000729791859828524052776861216081827447649293797063624438717576274572863853744682704453268040955259725122814842231736637292864375004722877737107972820558598817475771626495129990882907716262272175059394583435412489394592340777291519220359752898930058740589012161198696231932196879228017051281986562928685526515282813188816735427863169585164790571476572892283158560129051512429009968940338650238898329604744932411417163845035346536271347898088401059928816921109400071292159957791699255311948421100171789783942877271938113815170199542317921529487784952731320153658829481095927645440356171763014388781368786423441001848546013644674630946530631551184123952009320767587963325616255717856733477044116926093436103730010397241923635389685917099544830240041246247492933475455122213221920052023869902497836740831553683835608949395828931252327491573881605711611644222020561466110329480426948756844038579828733164319577508913295447697571604854291911764720838049805978007804773784597762738970233274137426583725523649592934452370915373311293586270169317249527043544353588885878532330945688086175707844225510875734063095966217225459704527023353541238639534630830859579971728087858723635450144955225837740339040356349379094707974271599662104345175062510380956248591774315520418501804806376009992058452384758219918338297748679223144311169655773282760454144555086067730163971031840689968333153173858038050450566174447748143817962211243146943160697444977617094648774534552674051281651966518146562693685922003673454103040114021855312574733302481591963971314770612360157135563047698632960783769605312732543710786396602181601146450474145462762578614460718687109665386583564370438346804091353240127241106238136916149788975064862055512853752444966185216063803072835088428391699969947078962084540697490173540257839249425231984050618596048619869679074795975536912258843610977744298004108226865523302734396773776437497206240062345686551986341514460672709398327474376952944002108631824286000448471816122031214555778544613860079471265093134315916151956053486794931687993138417465573481657923603280172591540214968314357451422786170196962336629353858230270946842091957397372767998104983407140089092602317979566997750275774375556958556189325517180521212040328521633735597290462229689465968309090527285389258151237654111034252502137505557297666786096052959332097501564467225905957870027205917353631150912172957375747021123046090395646590282158349143622666391155748089785568984503632553323306155326146294593310058749614848397916986308187313959115533389741372449729931651285963045539353964659732251805638943074784097880579657020139983712196755362500946192021356356362092234252549350603201307462540683760475320045884775146964465339574957200510048963914612012079769333375905287412443480810284365221250388689805349662161538504145956907192352710983585012451928892056113409586138649613031766603382146487568542776506939022690964454791555159524592685050979361251929670373471543533750509599687094046922224361447037286850911088416700785171286933684364147538522895010096936497617479029586544718311209863760207179187179314520235943018532340287465928687760805720332992084388009099286492892313288457677559515626565356926103192353137472876148006460516620258984329371034815001620746284228088517943959387859413736948706075613850341756305572092470094537189522120850740077324271590888051925469182854568463464613566727538987963342924285841974169576366896280231373140164444330586950731874780634752850863244327524483106223908496280803308013719174732115726239398447191991570200582103613669862686478027184439842526225272251446178837322932320733414110801430707373671823708640137735113917366945508745998100579771623813051089367026530533271655154163609268496385334768033159593156258320613868994690747216062241256586547628925286845043211223383137255598345428209749345429697491582538928226040987305361185766605724363387980683758115260929947003629019406851183206926055384207316868731681486103439394707649921983318543458566125660205611092861592601334217813556173175766148559625960363468518355672886178592969811290206217411615517556097621919970032265426861995822282095482990790072570981739549890368932574786664235233681882034440725946797500230158844713139158926240159634407613504525380409065546784701157043176237436635106461988150659165869571924067073199376774080685445803676343290623669962962795379798931238665574739033752563863679998598682244605992560923847914576198131631201040254100476327596544494776473268966623190541391425107162955482927854360449269744200715271534382497900080668643830728925883077221905212644426244440028244779289625325348976043027802981920454803961284566618698541457256883187802768952386116552579826597759629320040011486763467950354066326011589645716100326403408402931369489771097261932528042008220717829451636479871881859323631844270504344278650643391110638334435729298254515526965353860834708120655336055595307482466684675623725161122401518512793623032871245542196725014725842468609394346447947841892839277972038306768145652229860206358916161222732503080524289449313522277636741826553915092646486218726943293246840006089859553439836562770505667786175182313462609071841773651409937665811548119071046454850141313400812457592454700788971075811694186255826008515636369634723871399498452438224570056379811257473859096123682921907494789799560422761901026171102049466237145471118462105358088114658708678538923155082366670966803142185401786355476776711897466678577095006301688762190240772491450959856767826989943830678802252550923535531571657948259528541079579174586285066640633919325137028580418162985149181198586367197810040553385872206182047890009362653359490933174399764490896024445460373541786585945704667678957499493417509837774880128977101732799224189152603356962119749732980523070290602457352443536817943836897559426714454910856512167142331280352390698078727208424018080618366321728401409094980788758879560652257260056009877500160580494783027406334238425891906129449105845029613924114849559237997415730350501030174979045991711282034543232092635809159518884623206277265074970458169582706522455594174412326155959046534320604988180714838100027265804009766050983378894925736533727990484089781892064468549738101829553703941252321018667060861278439180186131013433188178632970659611567151472746466549398225253219876563144655603799731169978557143137679001618574969051416204115713486995798894001477719872152664969207974561321178210860846780831166547963012183406008407956915482039959430777582921152672328274439093986198398139214881584886142981273795146853081716782058124343784387042351088105878019585223338507906512087470924481137942985699358618526808339804354636562359260873970106966139800459293437815835182123284549792590639159847495450242685800973731900088058010216611016880873817935285060283809443382072777695228764885934109624677445705408270358321564371967940158459481008046879722331651425028948578440559236615851800300645476756501271051196883172289411086677660892023941606097019575223660658768443083411263631509489805219565416009793481580285264583921821731365638464327424702071570396001338736376655396894827074268864515641832850883268144057847630199679561813682085631752048620580609105587030047934459560250979470712772628511840674717209410539580174970629594171657584006598678415514638216342970782745161224270613230803907443796087714594552433893476655565009002996847770366988564088035627459771382449098708483479165080587100591299619046742623554875029900746581240365496942929807847318725200929663360022964163686361513654975880201135897194637704841789507534750434544518780900761641804040013724186994490763365766645936513719996537729952431019278401736592661073609620037324439694225609578904329630896180377938186047363694821883134490344672913015768864860679800364366605469113566241237010882339414660168625465151093819325644303001105228415394603285851287288824040545987872544059551774456140810160538321573933748013263223162979038421452964751097919496260552710030226157365075793082251611845362809837118836286400175965085123480696683788819285479701999694636402429504428798642043731307223286001111728120059370362702783249100260030421613538389878520978514082874822450143067506065746903272255833427180291824459406665744170405157897214485171292068110642419417892650786468767304786541421741990112305849864614618902899997752130421982159902349155278105361347599232464646615129968912993980656797298677460546770132008294215761859714275425049000779624051341515266360797130857103294531953990992675194429930467392365051029922889688200353338328778088196163066636286619128495405473583074539715584077709572971065976573820539634516045539768729606061352303187623274192264494400968025274621980132562468474888330390570872604385186665267240613482274153898415727393214659546236640956661916461251951474131312081424147734955652958441551121980486996804065654493624832224494213074344703883237014189147213022624199075174689662966640576942146968618688451877144745975525098788207108879797457056692931278503590962179212138221948548140050639072625974364012793202452597663794071013194661476629108045099632856660187331269011468991960942533507753727975674022106878643746915242781713546238631759290638484145216486047475095991431140106091237620413727077375806720987444615088596347223890844064118141117513451504274479752770096251110616931905220451753686540225730599459055304500147078952698106555445411522970999140215653887529662800919602261574642793649985840168804312467944376615743275431312773826142120468895087142030156365400649837767174639438900811392979381977340882324510686386393046689493363459778190756072903259579706686092842382169944145501170129865231098014125803808800494660188788061044565016301693581696779970298549483988715365034883901166995911512078307618244381809253736409737262387943437746703016680714765205302752429140271495477604003069406707706504592928864617193892382304285378812111300802283405954074226361311757853129886239226729134214605249228484246304417327461217864004592012582501325738382902696354621019844137562557887160317363923764132041744593803803853564959232811569664331542183471914863645430684929041968197065802342042570730609076111541618385312302766891630034817055369664576512152878989915910483588218826715587449311964887664413315626035377085881874269318885998696597745578868773709588397027999659397856415803169648276657702655390471523204569231131456028169461849785773071023590301239003075827214722813295471038179031803232405816709703539687915749975547288453081480257529960036855510583744259320160025500801581777527628122242330813082281026748523020124399815226503761652661659150584417585018524400447985478244796097784172450042762830327819554107551404529752156627864725135939547446202121992863495107177050694541851957701931329432913983181788527756807503986759934545501501845015731842373734837987119149285174158543018264681890450033236646614628315574422653657761609834033360350995513583503977998358130027551739534656492526016403662665488539129102077739672231229021105485801844980759966976524240497995366515587136274735085882888064823934214430937867134704933783656657300603216898610922411015717080327283339395981648470943249050009820646617578465324347330504451735846200584404651521542197312840205800792324996205800027905053306996434338739392992899661295308981414360552886401887048670334202727745997980924781061048844240546016549989023851016725785768252433274947599957066997004081971885406761843012547348685461724287258457716484303200725870719608293599102169987048103077683519979292558162151438940143581104139569944481506946109235741653567793960199685293412911956300651077066195927918172044753556651037345307236801156215269686525976997537611171117745053462634667232027819115335171630052835484082756680954895313626941557581364761860331840497597504290581568673476069739707253891947396266624505762517305974609113169350502070578140950601003769063365322516919311974370314116278437778757508514628737987723561960452897658582163058533330793776641700263869222023312509411306677483009912909738276955577621352327907084833543821739274859011638660991482717415175579972688761398980084262848649311770461511058935103285716479679756890372853756727239694907318126318065317509520808427664549993847254832746790435667704014638714303475322678171102072060444757012187113574229296728843697045344194506981015809481474325302698679396692941212219344481264828615784721851865790375764786925091986501179328822721385695633795792831354740621344853361592170503060971333781789273091692663849323364666098516620139911067226232143102675653273346683556026347876343473803778402304551626676070538443116809423683422338062351050719123200293522992216378795072084045429966859577935814711900077562783805225571164048943061332095402439265921131032495034448068768962831186445395381392247433052372412475203000172307480206481025741944251156141492839560418597628313048214912956191003829683313999647162699813551174592712647313869257282315236827723924981603650962353723589179420963641118562907441745075263597787684759131562285619336695983025854127839394367600520536288570279352711104245979594335642510723240065084861179845582732421015744636877013532102991458561563510526247290347466955274482733112446680432452656820049270562395025427898374676815446971907593800496706862703362757215928335777113639016229401855923035476775874784627940156725250631969120351824352576944106507873163442062826796608088189029369220557883086688568937575297415857821122409425898157753790822929289416651072818640222780294936244442050564685095459823536438955181526446035725633969994630846620050386380362788410240767644303716939736330132523589498611893340715071340107683461761490900215048611862181590218308270300553119604111562675350472039841225205843202497396484877996866962059573945661933646498700909948528933768524164942344371346695163872562270681992592353140427217146103079540659385468866048278934088595418645559915605945212899555300994984423588666278152944961131712330224596570727823642146092796507960573234130298368982032039741563599353768228307860939139033363154762377390167249489449564909367004840218486160040174052314415998013186697863931056215439553495857984336029355483832794850188039129583961577511989961779915988465107548243405809919511600936255919432555041925539776211615880370606385802374103589976344738531464911665031539300149383973216501182278191130014415002696768728591628629412146147920079648905775871369494774696227756477717207063407425399471000843648838765725475686253322859158141556930613428293398943907121171288381449505455187839821465534979321770698642508807327811037134172586591840388380306933668073153966024637403260000812592546418721033330455912189301376179177002391360046903730754082039804143282989805034624191366372236681796852206984468062050329281735851379357929919953878921267669916296698206994347621298611682875420304971292315323431241557578851993225137128512220848415958915759232735229492561134032060551380163288132229048526402193085486464724793367447287109175556951580895574466091113020010074652830981311871383185595625469099009652738292667055154561590336451403660120463771155635985818304106859754075007574311531879977562900624197321543470582526544233756703006343815033309826650668842539178283503026341836947718479618138327711727175634039819564030352145557563722448414687926645273480847075483854575811536870593152267955123293982528421122773978333159847069117826136303933622604351701381252743323842205985400217934327960975274724859734340504846042557366015584142850572535884263752832435675567097204276502178423343140891748256078718699524078130150257876783032648794379457111555997549273031772240622512622730783913175182781359133764950945505768361139509924072372122978883819389585283883542842516945232284885581581465240905904294852786355518943769538163458828261268843514847929055449359909029831148765040710364484839900066350961976550993839571320296658043688511441611922133358715087743420875846974149667460091720670744762797923574542852442731427107983239511467687968937354796328137783025941954551520982271108162171684200726956146814778952420378497108986976590613510229522648080173240021765584276166999713774158286999420081800871597242727100666083856117486557270266207870388361815424580587186043825181838838668934168251536373571796092400377380945470003654901025688581569220062944298622857549875659781423258807206034683295101253887432031038237863241374340281884288113832855351249466226143371546152685427302954359081187105405166976022296729332495560502067137513007662637945883254807529442836949328918955032785374223837990217386220931096682287566782156265238498711296254446310390684121432434082900928989834600565594554566395834735868216744910639373393910637054483077817162560969198482397913539166164636585191091894418283100531614934016248371345926671798990998925011377506934063465367494870553776341674852749405592701359614333985517540675559600735959518756673486212569848730960746859493743817214887392510222329223835887365097727534266046140023806716623028212480940329204737647240825828788659318586593868014210870964690143711304720333681670482907459589029786166878446344400623445213509120590730572493515063930105079531758408275985944994162176178063092938015717010183877139369703127264512857784672530725472723216258451552772127827805730392020818597451832264897662678182968906912662385709791539675181718578063014576200936906232273439829596868740626413272737252963049959633270158798469712732346550313498797242139298843378260930984695872661641803592015620611733449930499726398923186516686226741738129767180636402154677155916404792696996239891675538119670039775561028960217415881876597088269471198046182613346995272719183463228182165351446934517339368587779500392787096792436571718356509074404050378064143123271494351201575690920009970414701030427523578877445681076317416717426680308277776598279777439206181524285561069976360351993357847840194446575935321896816219981029266920952747187800983965571491250504656823140300890056864159585069322812489675985453731803149336575941753906752483805407693787210815059385391515321074602167360509972966381678032528610042138721902490242419112111547558261734240457842924164330971956652308099211935739548067776073898984315383186587452535245357607662328960224592710357525675301434080892729240176607878430029871617416100027468881680216728291770030968398341954385831479662812387983682456664022470113420001592099492057992352553845671379630778792747317852365617975486874559941133022032372100862077513428266093827869355645457050235437039886496043033569856240094052572743447315976177015002500351552190655756673692852194556554576310937900881843140238084504953985401724647524014886279392642993259839361527770975352689616316677182560170404340151645123381991881781173774928688297172236860167468507697420343066551422927477543630095064180727811027658266660174307932320926625310921107228456562387949673345541978758158210259771933530042512124844011254828496524159798368637606282966048771131041253938755224108570722513292714157763839457596102474384312111579130587456333682790938389316024055271220305183962936924206139569954498561358423516053488409618662390697749220236773258231781932741888347113284954451128184701060521619011614589241950169686427066515788705740402554024227742578363251655964931500751476878045352560025585773539343019389018243876755089392611847370890814305376015584033337825260270832714667933805572086330799374418794298287764063659242917595650348395839027495920049891302044239780639755973394157438709357727172766245525490880964059364522285661482424258046690315583485107621159026425041531134154300534167991506452495950325398863202686423360642501949579328797025832503176990278640870020589697518459991421348212791591084546381746456683730843218877178857380153116839955958861724589792097916454163129210311676908137258517122026427263253365452301712296831351717818601712564034618288429857715289538644019360423172155434118135434001035826642509771799490769881084128126820295846833582689820568014023902345997518280881089448088329310971177730901470184553317256101237462546325538349257565079268448982863973949742549389424212567298371930682201525928733042323099609493447738236652576340575761853931315677128112489095196501534106273563161228620444655555973314390568241480824917211009011083434881971311960413783504282402177249175325843514967362869484115159230611709857172448272105554918392192645970915465794787199854193067166023329607204443044785607407207953121973119926971870323625257427608931892432506023679442830246511775024478168251966281864188733007475136847501811715040017763429088974734849370242721184282927479066284406500900235053983971125226340247731601835945907378905519998380940575408016710242086725066479156260453656163678473461444224516946699443445406026237074053416889339621991183268339363220623047381734655887507775144014619324421263174698817901008686267102219965840385229593197664225384702961188921185331148923619440524030974219045494293813059295348601135768272658306695197557351197052109046950018583939332946319596957461789649915552024193878706482143479548177472991903782328140424681989602727058498635899569221722983634730995292795041697183521943380196348296828163694100882827946720324085301065866216775996009941149816112202986589422021870639542592061601211494173820275142370036108664270687390720160891081532176183857746484991421865580141222118308765904470957764834175257337774237566832499642440512098282342730708497155203177173791637685210618259381162335136939104815718410291793864354266201710432896793001203922559360118312814106009040019420230656317212355765578566046277453974456608529414724728532460146846292475297906714982558789850190944736658375952587098736411831952300369949550329622099783411645762777667453677127348139496745768652914184660108529774749739969539753574529272733151299818167686666663642030066401631017957367843977153833770958270952841649294083664159246285974132602223994229954528930824686544338964767453907496793103994460381762924375036347497831309072950188208719927617514495405274356561318717276912873121286696139099176110416052109057080205685938131930655864715484774877648132858686879582516913146934389891289278890354329766989142144922487991954248450927649514938988086249843680960790748357100392933033143041689722420715241830678554898530441484941436459218347109330932192097300137262740912768104930331702497486799909428033746491855784140829615631786076479991536265638786882629999037430175647427107132588814799789147369213738068347785808147343228168191848010015428510405821344190001791169055493182680013352471126928576851464143645536145099532905546875369231281498416069669206573120215531176600923555149006410844618584381001011766002162618190386533027683729043626825291043833165450738200377589334925228874251719359416853847911754100220250635194748692936231552873301291335525487545216841644444368231053875007478717033189546913981479207168191223585583247830954415309965331022785542125723488996863756814525544077381483065399057329813801844476089910404166480077303410925887500348957311895775599997954301719474651550248935720454112254074389946784497916290864810408534874762747594966043167352376024458966552221592829529514305657200702023120606615345327760493028605686523160265338024912649174881662973771009199888692972500730399693183461685720885897954309853178736438189055882401861902362848698045866887817982525857509751858389524531393047683531375757699865201091648088216888271357602274090906927500714270792992440940948637746235143818667960334597328433045495702083187756412900953308165433196916319358504998869400030634351561009047144690609713291898163988652093323144980030648330030900928664764152024629200994503018803348450813337949324226485434345956440562485840514286793324977842898501076663550134663282687864199503082931023813641762599535674944506217883137247920768231454079581800461054997807434780917392679990472261492050903857262319585116657596639466299163656104698452830784011447915558636933519381779260220830357615705785922255399959549626875801993086358957849392280198931480887123268889449989321776435900699477904166602276900799084150291203517135747822044152820361609774422377245163297783065344674137623509001423853462359384879220216483270945141165820667895931568002066781785200715290605518638269622227950447207672036051077877310192256945489351331972963798687402597751620344402321597841183850248727597442341381898330419579010972903311400787359836568996006608715756617306107362001344784299635664703325536430827175261102353634351603233641542923203071065395392960691953705687167055831130624081326339742393017987337452697654497278084060211606987664106010519092382524723482205580039117232373196311362646216242070421685327914963807152443862476159186642253912908763678584133742613140876342926660676377162297512318866589900757806023058282735460044555738921888328123542180553632894514470410565030157652325633612940709901007203277997411376331810297115458475972452955975418519278560024801146974532575687600071547625797803105850920800927177802707190746739035297325441812609937797965299003446807197430630744878866522063966446782405063896729078192978394049742545414587205460132742439327101165448448100969852562595069454072868264827714572500047837387460234747541182327227367087109442747767478751582403467045355477771311496110696341004268162707359104994009869273531448534576379931455719580343990947229550848283789784086904832122473083714490590886428509416730528678921612719123027630835864931599260438027452322433736546783051215400913968890385809581338037101320286987142334010273142351523451534646720412676857258545082667819429689248595839373268329196246471356911561125364610544069086873073507409149570703997936398224112812925663214672892318175626301607586586444260836529544352829166293935367318246945759637689441038232611830685267505432440525035409242244254168817599151216450769306422878033545972314977224238391550795532954500275400508105568480584813315277250369467925479516416272399566876268388794389798911479831567420047184220717641076275852423270014481613378743082637107924820433745494629623286508217194745583386873402077151908570237492210137809147292356397439979602921983332092518670519342126593270797462951432782107600910856037019945041166960533027117902818774881553045197884641401663134092822294308477731079772305726171849565711724763022173642477349462193497966192419434532590971972928383081935228285038200085121230858480429594514449795238842912162708314511505470336514054317305973500674079427672970524760424037318290189884996620177084500550956859740965153119311686079494971566906188883305216885572575432211144923005575929994825053624904658834528287943862330387112920005470994970682710449445218997446183477130080218523079594663879870213743590887769417076979191470316702568868592856829012700513978311324652912577865505117285921836987660093843365027703407759723021391020995633369898470760109278217724885727700846495696622699706259613139489357803838196624137331145800702544738865747882115697555975453551275751893836325873065742908477229061880622209992846025280702077063346718835045813159934562674470888093017408468120191467901802972790107985297468418375003677969127015000773678503794326584080947245185798094806029331675223762005073531084838501842227787049846107581771551172918810120313423033133781101648616848878015343407909555638191827111124326702260190897271218655979158051672981573499800182518060703775419477975356688054946349619394108283156344417526970787330336208496989793171020870407296755583147407102747517105241526578976707919954775185107770243608833894347510187146732541832983765132515795472813174129440906168900662353517636770915720330788282310276865301768585085426322455629398495982952459907315980996225099227277745979997985561346194682462563110608540314278223346588063161899648833177417554807879556011282993680903738458991385317158592908341854385859778733202698807289280580911763949319938327985661095416174100165243213533221544127837035312355628117991224526820472435473875827401988463043682351258600493654072436352839947226453482984775687988357655836231593372641695103699175004070206760775334956046618769191001166457464750701425017053450038753539163121989577098610679574717033775741097536348858557149174265826029972071339117787745880207897932332890148798223092966003823062880458696210097500077168778906662664731954750330954360645743873875627766542538258675631347278908938696211144853678486665393668996112546663091996292282724917704430608422219887010508796733361156044445360877330746640440738584683813272702970854239394583007579058748961380216998950772793768965449364835394940413222419436610250356460198261920827233479786056413299034893320575131253548428527320127984033017658284061041944412299564502764411996120299362056255512130859440061663705189326918509342642800922098295362858579777462324925327505686979139169258917421700401727134913337406193851371391759471057084046096436225725900368850201252438349224855546557697559493783627608365335322652122464636863213780002248966590891386249249212584265106570195592512432557141195040016337129978476065239248121892978271092953550171249577857971196909693143742400005370412656018323793951199558984454829837705428236046415556109909075022586124911988122171982743498599247268316091177822446382582241179132487012458341812718966391711983621042518674412550931428889783729488323786865779593528636648688876445225615505711446047861261727284042723580610945262988248100705513560873815288188816337636786711679007327370294518199263575104682545432991069491961854262447918697099287804948112411886538866996805208656812766997129583380194732535161659109943495025413572632259767196546039952909490750526789925423089302636099359658450952690823830899583211626888062153131946777811866811538152848310755155881302812976971515675512086275836350566216014979108863403968675189057677440612799638671544618430956845318433073550420193173618455578276034549863667150489590907035595658311684994200096561261578458096309726381045383118851488674851610896359280145475600896781589546838082896103587177267082452775763835282907904534567107989529992151852603047126210823273215837216308803885797558548775255828145568422197395066123758633205387290906238053774027024228153672394893115857035095891973734754626435121202180754229886558809616347820075721476991841759065815002386363585216559091353044066127248057802155247840229330144315553937319064061164900716711740291821649388882305944324922682661406892527101442452234962744678484233732359121320019177381833612522782809167394323647154962073459294672826457113547788716714340218969398247078210775833607104265360707710561860948353667802510335812621872202553712590795655010450964154793583553791447647465591084369359863554049871521258255315816409124583025592425142536475592317508080764712337917472955638997588299440697956242517708167849857629351344189799852133043844561622667784545630023935005764342964784501507390518425703930337411075297413873030308286303597878019301056553382227462804474757188926760792023060439596316974375349930145480985671421170574443392064653097474229542147872181118355578036196729540403358396982185338346909904010885315957170934343541376254118940959503077285911583341624788431004597223220297479170864273038364305601413661150409721801150649450788549703697514060228600634454691821113204667756305355478528413237065066712184683164203238211964366686994432655234798138788382801258307488820620245064505768487345656697206960219515242515761460354727891820792387492613600210016413591232543237863946084209900295055460812112196367181074337654970128149956118031818940546804760131895709319387847695925505684109337243304715905347258383273480953381061094489407899039086490211491513566872944035773487912181608526987466352495002118926792862776165153177445101348356213683233168347916286763260509622987682669770499701546967367545218252382466902274257032273410931381589133735694433972486766364815178575611928837411614314858361156971035989965033818221201043692415886359808522705355070543580323933862738079966382236709964320195475276116306889838441286364151350902141950975045175772297983009104015791055860724980416387808905506024472450325331413156354204190208043661605962743809886814054673463202013458825994401209288374835756920279907421211504244909658373803087964622458313815052028493299996213041003398033189514563698284448105850641838911851093127036589102879801202222419631654663350930181810345847227335716779371972603280498334330686307133336730450665293603401572455517915431539696317674896887461343407169023061723712067331160654324072406672797475380514428511042090183603869013973177962620429276245838123899697945525928970581533932589027737714468940925612223831709925958722329785182924407535422351127391314820766274855615687732695968735714121305530025975075600038993322681149977605549955416639875431961479525931630958087049510532647670068741999548138173390210836856613350161545650531235484194568627050909174296630250391612831410476970796090503078415959132779627343526948325272608621627349829545391969481704168813312638607958025200364051266486476380263418077089706283961484460383360509355393165739426936522433208609932293020605026150897676323638241855672597471525851844085367795871195429013387555340202808032072029549783853911382232945989946403548900309854197479098140535694216553883706481112330397219490053448750260406619480482116459639337829204698029222651632236649944913257812640939158753331740335377820131357561110988069945185232067930521702681603548494242333573512360049860579561863765290182251183673154816649280842509644381325345034323287228546812291532347441068147414755193106318283010583813682937215579872454974561755021512628034083770950609859063571780086641224398537374086601245338188447333633322163943847049294007724826603438074838109364120150397824303811840954743765960244875932233618011400296999709872225432934075391176823425141076627581562663264492357918851244130919580889702450417886809388316191900307128654399745491255250154854196897032005649985568758724679112053517585124727512925676148835689139469180335777429487315892627726918746815409881535309180819762415223475925995650396086865515274232760204630972097141385109821032164789220510685702630690608521583893272260221645983501091407146230683392079452997907675715376018635747918285784079633474878341871663115528966838287651384526079414652136207442202045536827209926271554778211517654671723455378172014013701151727169085791006810335864243854983130740640165061284066299399618183467190557800520993474122943215790237130108804782305490534348562506133400798040158165004754839902535619625608892454484638051027393262364638364183971936870092361988376033974682643219132862319277448611823154698139117847631027359236503106832350083422462614038345833840151843154033185849617897479716129654028942108134854579652278041655756500938149610219078947092124990201670500210927487858681545097413352542637557259942723267803287119033513952094399242994647542110257337371467683553675246609900518712829296413750850408536393393084997734986846682610569223596040961320548739092856299532363531282276045111349674579402283726202009945347582157842574159871532690615992915332307812012751901798000327655311681427433110741731530839814612513124352987209045019864438702103961725505300057629483873703081846665009196158477553329599328227000044928259754901099145605678833836412762045031491129100562090086162666870559494543845484548609752003912539518596698237412604989880526066669355028113925672846493171584700679989077740663051890428016547860954124264450329028296099895766997830323211969507647631196953770763201792294592058906779472083397593461743533534177910348347817489286764627012677259293882482899520220115328239344062265593784797720438718610565499079432773889258654065821395844935522952279496323579669118731481755772097082642196243432163931972423952277054580363237470539376727582089268726015747363873267230099834845540319589023118631177085415873273459934540603526848889212847650150500792190496935089895475079790988746422050507252834578940983485483996111332649277374507523837854628064862877545622483917195917509379613660810487748860750963591117569302360590062640136159175574646661496754381231003339160150300295307144780449910599995403023521257056322823355650832257667796521726142056723759455307622008281369792347138243396565250391838998042473915828396921979401291137692897753411489199756804770003282665346211847072866252482688739855658234368852777496609352020357017098897631676731523097273395351565016728110621339516314318270277764161660061839974189101908639071381377063046863296065740642280458178515610404244341425871667435694136312809906048816753743840760250924271463644257265127903235599927176532551632098669633018852618439296850321202938788428334991127598761976433988890068448664395783482664246862636183678108426789907155562562202618634269256481264335064884786088928865338190565778857945484890606239968827420752965256254028993724472457654372530691374276323363642017151862401998238342679820207091239637064842750467970964354076053290822909079484759815396863982682670138113859881723466585075946846792131581697020262525016559751066037536850719771304208512746933184129951109857368752449210479543710285778526750842847706794145021651288444731407175051626380815577900084909848326808065270493239378062670939629597498083448695016764057379397192766035294729750683841955039324513289845350965569533996412103578285224741000624972399677241681517319397644909832233738860123889511572097225547261047681130542368392510617992254711877665593651703951404016652708625400119879335630487625991153039483078039417806670221931844792641977328561635444124449630571134305911342670334363339248236261517957440451718010545085305497148324365763946993962846279775971216090706014302197808361681728467410901753209294820977299850350137002550809539377729897129228348293511474750704363625444498357569429531226629008718230080537506797057664052352945953514342583808864474564338330371928639392405376686932842636337970712359549178228964425560500852609005699413287316070463783985241462336159646052188474710910964134183602180088298018939731718725424207115846507483153237604788750526966323303468664089135358154129374553094783209247648652873646449551490242251671880767797655716161195376313053860457532997244299549783854927760529972454677381032068994214414730698097766885234997864848530853182786878814391204715831181588293195113177795050615859256448491533467640441620401902349770385986319909828355207592440791222120478715189176215198826861257824071729881972268340979013010945539392963839062035449323639927246083921146443961436693638432821486124242505292836415454929460637040546395419235088551458395043938907099861778575302117782555404274366152396541662648320102405359448104736925624400791480719933558258457075849904581249837982465296216567898902265289816855470177064475403731440086864754853264074408585548058638833802523170945559413079094370561446887486508198620764457329225369228892395771780980458874003734478937404906462655949360048783470477566449728617878499210500696473480131857979475877227715527379301695507986387260533393871524009529119661595868828796649319660269654425750991054547684239577737804406363244888501915952344660992456215363511631355182164146427731119628244467995527493588482514208377146553353490450354921422370123440782656945051453876329592540216759172996986962332630990206161494038367715230699692727739968324846791762102654345488496992244414645841216982746534117429060994703737530785912629718140603324976528819115344135582936892980971845758449035499508280741789670065578902449758636396049942685166626577343080810453208238665956195092791637972100215062230597818767934396185810121300115778754251068075368156363053007973878737751718079337602308389220460963376247600290807470885493372706983088773583444563180804918103955685022524387459810339734532471926061740884181035146549586249539133135138713094304700896891071734629149974426443691843229946678288837660785865895014370214134155912880297466579125500412419332994103137731545394612632097705975701021928180095949298578315060676195783529954659782186639816533174447959470922718979113442170864971964944628015173295693525511419898717873161260329249453197685882668047706926896501569926487715644225215440417073360411122500253507144272362978773029243219710892627422453104522696717923704978330776086048776610672057855646804534098116427555651995623867422787721577025556310767572391475118950648034193184737301335065712376173305925801009690845134598336388647413023918099549884754649741925973288477165674342461808186372282199548722812595255849848287945908679212771383932224398835030875509220617294368584500457164127191205329593736088252938394998475387594050979652142356265294333375197294980060012624791671597768929527656351610592596564296065608517488122752050559934235222068574345509554567671752106260785731396998872149417465948011278749223505084804719139641216721972282949045330772615289257557309511799098545006398578739477139143978305403035782228369057009080458162352910616107735233713392802752033826317905613577421161112764423038312490750618272020249414352169625297693394039664643535762437049161047098675944986399645876259266650547744343267410720609933667940407279779176444267679906131137922328456018689577445166376086586279890104608206049058747130854410348182440398097012514098028847356700811790030277618671939631701578809236816068290278866343767651867905001636086251240946212536953711456721619161297728322253070000493977816037748327637770534223215359233497953205234336216468183367512036312966427584184925736444402554407689612972591399653803923509813331876854202008395776433648355639544226034432117357086557747021974656862349842337319768769837154619242461381884972329985934101144091891364562454603765851171184031758325912044157400440134218240616470211433504198763931519283011781747810450095792977844724519653071134387663395173931724098327704699463759801881626084294540647171543611366013087582959540516717137257185419868816048395335660105642521203382038186211916745436975061994501299108118629106055817361197066202392248185688227957742516183704114000712318700733902853817448788270690296155484431644907646367573178383654085226554829199091646464367031624716917723761090423228112770962596200718929892149313041370219065548846415455106774491704987231509626323846208676336515419266672072306038959341795337046726712288648276192513429277634141607327454458846067112462577633546914873950491519618037788301316324228965841242320603669870473556884327298991694956037505047820041725789038295049241557946074355561976749968505852375137874317135141397395587030159091778390104214437292840255896405809671905190018640849664138963063468511745160504603818232485701388584207504409846221428919566688263902560047504236437748039251021722412816121219119972829238957393393512115111217513858970746162451798387444644068315000966760877414221684886769850382164574121730058635054966571826033944841204198302031309585483420742904986794237063633980237446615785140754246571471327022110843369741178664390611506113955814727613794830382078512997154296659278681172287738623550450667034399220920542201624026624924922044303186549874125291796826462550744247822988624848869284154731578910750303024828912080774083922917073396873629355936969290948089077182063506761295822710120454322333133540388295058594913177650006772336757778165462430185604920071462994594374216123877046541629677785323980007026052986408701818785752614659696741378486841455529945180522654343513811372387588564513366184532060111574247960431610861987158716250378751097765759314713646748481502924931958423296297780107797941907869217146607847009047572553614644352520725881742668001166842082808268018038119907873060238385878880533946203131038121213578408193791809654016360241294264277761730489752042863355658669218674271640457270166472260674526901583545453640364283363426055764074367347965871386671037297373809034393100033543910098650395672302667017872953455584729573041723149895112548355406697950333847199882479403741911670683059108053168484124262450807094956399697107761843103744531947640299845432226215857615659160587242643504743356438649002324118000483936094327575765071300698797175667118336545385145958179543369844590460495988782082637278564451585578690232834973379198385924598413899625833344033829194840775476819592975539836114540388270520477266004504923321489094092871109799087819208675655409654795511621301292592647039775065126420168414575440673777277623315477941010430274080923095530034149747418360244533563245119206250248621987806442743183174064484438572428934464187909696534330404629733732307115438506309795401470671533751799762152178117380226045780063981680006751258141543574007614821057335641325036656625873421782015448804415470752394499545835517168802302979526774303833979908948376721018361597292435960457326990191558637812720256610582826149330488102301393654900054951253393459652129839988841394258026116569218678615363869928127421245277896744022958277482886562458841460555835710685510647606454540118313927981937083974188582855295443609950679293499238487304525439794952000133464864094759975255832168015413928800443173022511579503049781520614579918212426683218611941677455324299890590540634995361823390564802263410304695882632768357417016180195933279812253589172578752138885541651299788008550744655397986431345057791327646961449532458254264852839919039643256160948596926042377737003789477943182424516319477638864798378812843625090107844694839449025100693608391407907299579675266745251544988447849935162027143045148947783576554477030807847217948899176003039542356945625891007458396416501807266380069271219321964698651351460999098652585622748747963606425468247414129149310253105608290911321302558925629087730263999918541627516468602288398820550947822948311684601028843148721019623547318291773050373780931309010444705783519959976708012504120068586280890487739317189646536816748862260361696364006541514557478456322721146316948963432814093479404788180690760831344417389380943431100081968905150140516819015832260601972525500672006921213891066225755857586887358004652278486160595417587449959632501096978251183178759267407896606257582337933971228531154099572978445648328972428443089111212725649016762451539856629678378795617515441372821698958706843822551888937945584554270173122903130314278753632218704092854813128791665599019903244767836578808033963427913822450839988065067843647863675147687244173755172325436384732236007701169410060186501424495166613288740663117894956461528223409482893550004971549552635655170421059816878413159079741917277483006161710881225965541803388788307868740094374600969934265548120655029797174257028467726003949133237738134250513507265337351599322286731350679765589760227664159158615610947586639834813066506817681314802737330227112951689361442795891520625467379319324291938684166006974324867430130282740901155019398506791283766221857791043491180951323900877684059673025017023934413747661006158217922559342163302779531918209337707693736878149709774345891074403498765738433969840199231533040068907984110355976538987547911919937299224019487023443622503707011509028569063878096996037291283896661606456142486055554432631187824191907434296917426139756936859284013347395042017502975616836071888205375718363183754720349037498723152702382534276717318396679463785185918307834344326645223263867498529831104100470455373726183381795565670790464265306513347006530252011953740391282597229545053260427854936678144998716987760275356877668936324932662611046635946519634787049016412442641758308171439292076964729876547208652365904871745584917937263837169796359500660294806548801383835302088904098258178972722255169010009128712828112946194757121300451111840150371786610560698812571962833170592565955304814828482297008590395328042242772393106429300499046512577038708321685809807701265598127211495583182951029865633076454493003506955712373722341277493088817246124577673681746011241710881935717721289500026129450832856076524454436008525336671229545519430478200081193922483208262888043601919404970818658770880836516614188852640205349242838500506565182554399433711270679264085224822456459404209959821416079573950542154398956267372898099865575414966591209119405395192343145576857196948153824297277282623619861977106969568178312416046469036985586837184086095955938586224154494478201324278982602235390667273494686033632499994701025809670025277394027399803459944858282585005212930495264765684954331861073263994864624788764219518145398912404605724198093905626298449913065025056755695734956280132425029253525691352127391247966203274950764393514816490160293616483503293595481684565849284975737871173021817433563046251645625981474401525166485049765757474923657593075667890623522368311419149096676974838605586429477900084662043146438525349800771668268846953988166224420435990158390617394674506971785314340278601341427787284716353655989663562292746098287103169122698389315106937066786210795115565734255305596258633592088451379834341359416616865305403426394542598351091525105928856509743558194914482306198955334782076596100664853578160560519670099953476540543739633743390017678995971754742237607126607758223065922457956547821180790692533478030101719398469219192003390502224252834256209553513315813835733217117443939135552794756744733853585961353771218928318462903984987350825537406059613139396818979601266465511765171745920242203008372586306899172360030829004461797437966082031382365164460699051401900823525408512152828463994622540625307100084970756303925304756469795176637344743598064605816001409716546008149782113425103706280127134107503566811211787909496118365178088007130899784438272543672497302257144181399293691910631355351967705224896253969096463632047185192307983755280800219573818539959297348640832464203722455571432502307833228793956763343563494302354626941127927862396545468176595765578695725642596132517336628015553693352917643852091323989351635285421293789015169414140903053867194045966565000381864881321539608175005586065991164608239767720029802106744460397081032058563030734361199180004377507421103141342225198528102657618263677840327142279595208432846722673344626959477517996050045068212515710116831420508265429041513593864510733221791902178171843083314481866108993532383190656760780802679814117713179181269690232888687841481950525204185347033388814795232478740483419784695560706839686841697919470897562379287801255669644384421860125694062491825032268864816094787352321389513651823804881758643428397110325231824397182528071233663463061789805675347125911793569105272962067738594233537693678285281462925648358808777161947591210826511583982182584589351086096856140468192723344615619304049000207303851201800578901488839066903699403751019210426463269387822283950665646543226469438789321215165491223232539432035447097860988529273855516610593684100886260869340709691716768908031784943271212585506636560879370567387694448868286372737110351192290020283571829884443306640785066367848628077261447649042431175272049651879078605455676502343676025535999741996495771490053497037640689325167848443127257142179612215415050960073720473406456860979992919859406187535546506475814560428502706780774967986372476885346491382605268092054628078613747064850436130760307426301861432110712835199213609635701804841596220492147246033121877585134284442385177142221481211491231361262648870790103776848479883598612457493812071347391872830580332591790730882761924157333298006496427683541250446802569086325800570757070353353574834287008265610114630689707715306547020749507330649934084283315875328441329302883563133100478768905967555898194710742663748268949330052722454706342292339951867347839183461596298585590029362487995932872044967257963755355345052795092902134797429750492371791937967331146373959119558672657757029720550112547070910962008308270838667038628968087146943550769759403885849717198584537842356181680317893463819537412856096364335076653958703482428512456701120444902453887724321751947116021641153218213611217964414031340369734676505748093284295656947444717638137822757549006109437188174552536442524434711104618902282475717267766403926346036480729603117986222650049492611886416984271042773573103067967344584795416319469618552415287758657161881708249926052450013539391994048651704626566771434620180264046957082163362688440547988809490951496425266126463778707915383541757436225733434023076346568129888522458946665677455515866073810731638678030863530920348841783993358660088815796527324036654539209320819750465338874929447573181609027583415469605353846220429860430406754197722937213032989141915397038615144302242546947067018486914819745536107237822604787450806974891801462430031444859607280160957055736884378085684398389410389907766527568483415847260180304564591456766729956932271959832300968283946158606443794661398882743392050629669185955778168531818792893656257716442783511930793771614974182347323573126910595329208531458860745312679341450083291909178989832146206311585521713394181157025285811760639954098927084790244450565848828678156056301449837903173082269261025964899907628273348863610744654750526378441441903030781059762433411387260654091392169510748944563170693477462683834603918434805203331654098502871499301065491584338843135592651984443217532121913363641249888884641459958269005592558042124109377717001307895460405958842706862922275862416837078969502369562019455939378742446313025274614424772415994951872149875327523536443949258956211060730415057609793763618556056553036926064068303722889191871321260096654342597506004511048244266884719242096561671548349475450860631278126723093597269365791301649946439189722371218368077100640183715706145367985962188834115945662005127438808809085788710146674407741518810275841279184221749494469224245441676747159662621951920514886459743392162497192579893537269125294002107575702147295300730613770205537689943685756313287304999471841207312187051507717095648564166275155776752248547444103943736814079241381786834302965930414135395798107390250928494973230806011023195943802459851700823071215208254666902370007286713461882551234841820712374620451561290816296864534320293020819465529661089684899659486676168952453386841681654610459928264332486789166228537524561538780634546001132866490977952866448045618971288056197239162435980546411870937699162825049012647638386940159247598744861535657532544752733942440237885429119527911397549273343055856958707849328910602666979605170284002215545560682611573677465608279913022839077850961640553714107693025260133156603902029160595136023292700121470924065016477499709053158509563717498188622854787699369506593387896281684416128673087761897190289509606289986287088197632817202025428777910311449237675938585966819716669980111759559448035602672708936058871735528014638136771312489389809626361761694030539230511283121097363331922209316582821849527045137012561394929538208764202564429743425439905775017159345586546762211451308726936289818160485052330277002507060109886758544776684658357313737654564985673251085799340825427267067978504875132467219583130301062533195252800917624184038417529933652170593467136879603939613172640044715694683449571934519806508383745485360075890169444919163038184146829699024939117215021127756665122841155719959869402894275183404450526767094317534383735611474056986103582411331288370797679362916457014274078155601559794427717842262241160292402270513223070374067502213143636392863500267748101034180295524832252281334282645774234043224777276715516370452605614865985293436058675623876979732750663274403553127609472601178205942641860165181730388492152836633389996554841715315290103524438005771462120590446757696604894261436407827587290436271127295858191200866692661912390125832831116310481709548821077191363673911680846836303471504021860993420680725148302117041339817631163646513082565391410398431495607307184536326593239363371010169638626810435809010068507079852007662897884925105625750946546625698803408434396309710269309570517173109156394846212566590168589610768509291892700586558500915815614012944454703414555225281375627217608533405099967924791563346050222872823985208308120508979163947898798977736473136913220992792035651892872965840232184816194380498777116577170813075476612313716074230679528569964366019305988848248458244266159433941742444688714517618046164267899159188370164312110893046303362284324333043539249337772779617980273877677908728262217104381634024130766358504479087871035301289439858887713775812220897684968740114893071874685087856366986311085055247224584095045446236136605639847095060953373688603049623684652944310729617907507122587715646971619171895617208815014576146870842818065972529471122326093136660709215740284869567549858889304439795907035676690687576372053335730585967476124995859748136868463078831826227517207277740430854832597182514784284883364460567870908478619866657503190224128632614850847287773361124828919976742977231284927281633643386975686306790912127067365759797138868366263869846469503278223454763357105726999267478479654673628099502507664834539008532461639293355522814492201460462675248364976976687324865631631085850173026653919616587050776349080468951563560263832224349193087203152949657870199652214647398817493504413142546213968049936553283493166775521159580365091278475448727769790131086352467134079175821644927166470121518724963239421156875337526810520304085267759297695976279315891947439277539365912453229928300641684566337019505797310331503111284414232676323763783035811263112177988463143178892354560938997851831536177612888489505255967772708256248542506610860476802822920174228618919815256679114479198617896780203338134521218926786927071755961032136293825775609596956262138917327256533247335843766006495650472775979262300709197961710989340187593520082878077011923655010378596547289126683277618105626128956061443500197406089618802319959545458071485108472978291314418705501768436957322688863025403182089968731467997820932108797719898755533318729162775522340053591195245738593891574325196092368418907314410660177298189934908960927526800770173325205341777306383134366394565976811418350606110524184742569784197001551013603153751686129679907413611616132382053863796880665692573654308353546652677349609170889162144934654486116271617048407008626801409543196776219202359393119139170870670338692226589163169754384113966890682128380732207229785024174333836898725603929502384410941650860401104610771602784126899622722491686993620829001911153356783769608702584204399550211192462869344272639786428027590361184825034211891708248940234302177390659957914393853524216198555825868016384053929306642711968824102551953479464931436932686961450889858048473533736688379829368613453793876338273756440609977338208629386033325530078445435154238813475504961206628073149164020931517698457939492646449669473571412634451776892542161239032075257209267824669622805548948326657538888166859351632105214229403207956094158146047253324031487737598793578675028194159329703180551761475896692667518106494595917940983281791845136398647130511063223376793649439877935899977586796096604865452708045763260388688699114200200898731592272890846354315714594448831455717281315120999781954699423806025124717630340887277135554110536049351349474023129243825947235780635515986099134249017951830992426351950052192818408971660757630093825627905698507080200251975922255107503138483417832211381517754163344509808498650325722788830637077229290913017303388652739719497852849293515056098634740089935914864872625676610770099289031265642457238249436910152350059160921363841984046324023579283136032538125930500942549379815844212070177739044373023786516903826349538611551929375418637192158320281083590740136842115393937353809750345721581811758467219719206749600492126753615616288726919688407560502005758166420248313368609376346358540342582409392235003328238383918788463820212927201030106997119299704278994401022760316933200709305527471950351321979422554459073931320233018121155707318902304806570708446743031360616253510215665626059143899983213602360053810627481661041975202563442180089928655843596470555709593049419322551030207417027204286543468292664062367446387724963248682447747646922727863064941472605626344014396168235081583219786674114868917277417040602373796639375795730817016840776463725725765672387432492290104924016541170224307702461485132078215086223886018247436106704277512969205368146780723325736127109239966845613785898555050308822887018912515148673766444799913364208543579239049135549627306963150802244650754007930373140991249149728421296033287161498769928063093892487838953112276232952864930096405548782916304163178860604711611145940381836105223796610351325502306507339540934867758126535857679122585294347721868023910928141056569917763462404012732826618027913430569204335511090756523854158291567327884247914543375443310851718286016721379240874320532780361968685639529775323925318797347622690631074574021922076334788181106958782678680415200269397741034501882126016770072117631828774833456093360275888846129005338671313154579330907909281905712631280189071115078222584913736143430013377101125561912179657428042817835815056197782376114577636558850817274378446578858084561674646499335375550093330377066813177110915108345224732564290666414411859727574450056457564622078744366627503161187374912739389464599702610481889602123816254134641870923452451283721811444799616235751725057966785262566476184852771216638993248481553929740033097318953608952994914641087741255995534210270694443100102555835037718807579628126741091381829722338171772975079863043420084680564888657171211321189431322563455625982136723195147950750138913824336548038903981292795358320085159418604083370799182323475570742947231619660303373497699787787874018533525930583685915386290144985467939928808393499811762972006809199077218556855125709438995959798880072217654351588027049940825149974553484610764546065719568475342662747944232995031109625937534220558338528412784901660657885391206706745924241603171331419374068272776386359334894581973455860978976875394802029123481298563397636199800338684067086158522230232199442683739986529420358736374305963022038426528591892074586102236698244117914810217530781599661536442175127717971544209801354154619794464850945150807730727330235443921311317642974630701762697846919525355585770505728766161791822974402719600592417044604389753179480763249473071966398481957634239333097943306042189432550481918393253936311205487302198049842140195081039476059923136673748870140911887460947913472639426238867385099779833189496906636089443520597226205127534081979551831055480673736250462260036118800273110170684572293085103286925951584397994338088751374618689381111878609461297720625088005529257654412555665402536819094919247253346651077438566169598526412698931388452180347647501618244287292034330787425132188828168613340586760493689421979540625062439599346282321601466765209058842809403045703754559619281486755801916931081309274373887580384700530824883346769294029917192954929621802366764705118867506171645977444443651090234803631120437959212734172517664072310583790197166181298175872409575798745530797424208060900919557228081651520051871106986946592361392415411624750269001979332864832054569591561191281085773370960258212100876876427886034169969995370242144507451824043025131749422098046949954858413821677824778474154998540044293039165933178682097243023394074463148494212754627721504799145795782351540382872467558111859327036615615845203130834516619015332711706927261857649724380377294501473537133697827530060997990818715127165053062700321718635418360852344173983049653183304174462693418148904625276664369952479319175636646195864167188128371175172471612810872815688597116238484374895817018053300297864580446502460705531224093004456168315075405834732266620167718523194647251163187193963086483375661422162321126908570657033844746892320282679101901674519469941949893720143684162974423771858732644168871332302213361972933002416762368483763406420559731987165085903685736352501091388156777482311026095988762232653114248320650651658448609993315120110987822807635421679234147582413969725243419973123058288384472523070064828592129524787671411891697923953957181460564934799897700904384069346807093511807309882338438200707059675082432446205830747580093859353823817983943922120424160289320700838393833987957606273291341398798750989736009263718065901489195355601567306945691772231624135870342776196749091600593554198613234684084620282893800238605938092691209540928730422895547725420516298782202206619257235059023812223021651487391608794425404964637079634994092179831112578200287483609099110259111044797790900041968421731581261559501077593467741758888232450909405571347497085790304271283001896282682418993441348006705850861310847937089936992481077099672186641439983262232219450112598630337493013250117438414847794652468212941259084185844580137611251884819609854256537777598189018346693332577175202725609598489975115501067122607751460760648906945177639266332634530356369973655224791336532667343884355663891426164454087129006621064808260939608246870385627481990568197425305630499346420526030274084066824028863077500473478271718872892102883299618290747701798674646577518532112268565920991990682110720034938052159024853489282344893818309428826402207028047947677789266050088719021364840572058398661311689738176129119972145782163220205995005343919555481556978414059915658756871325127751433844657710940958890759420567047644680803218374042174799314928347130399097616998727561889756999724166772060578176310110843203722676487819726587741379077936543224897073829056578833090736982249758529746907032281551173772517205317782349212710141552666323741800495050692488589145152168536732499341139406461940661672169483571610299355552422701375952285810187102548696469149114587627294081289843628730317412643023993952586614972747551522476450506160819231056691918995347011036347170926483892736393364430073371242072303737660108621919219283643472807144248333732971058902921064185353366249516518252973304309433517235083505542763837624127328802656102855650824123382978812373901491502955666204729773273739102763588843563731426663575072437768352178969219180427765694446685714627287905956141930633494194291495214238247852419201990818774002419524706690532779640980233458381498748571832100601921698966287136480913019193668501680776170222779373622840350950455128123456536380571794101665657527812630156999380800513320908042269790762809114565329220270143285776700105013019663493982233612826530914697984099667754496573381206825213475882788959604847529028481929240555009269215379861019054714130182142375094122115677933758046311903562505965658952007681649819537549718400078367268737492901259083581968312592742339694463917761428790079525605078995655817836788380377567988594815023644016640400870484656765091592523276018763064493480725360424918402460663859259797428825938240384162393764722667794798689432380040007913154858037974276670899511365467260143718012197123653868743363753189472112140172221877763104527530063999741196202056515328956737452792182608696136645773125148709591594828718801771580942570419402634602916178518562878940665528340268836670506342392280005859188135877234695316056659810668701526924362002945117431187759516958896960164557873951269478374232927600821690408179125954534990372988964516529691997358046268716679574802316772533489270677889125487815082546651184514518766847455371621563812753685623952880337804028801278071510699840174713727444854415619170539692558279426714287864834437110275801946081886911363840005801053323032015769766905414598978169428719028750935698317578459204292597702522971198353767548055837778100188242146148141674632045255498334918145705572145096358162347551228652773683496386164098848841286133219082911826115170219786975997998087750614281783570558480597550094861415810820022128878960031548056303454164900162566662361796971417400813100761974059121448474225711617716275504896755557978034414078918915701835353721370462287675090495591227844716356099436756443544024797499698026834505454221282200023025956766703928199519648162020621631085378113440816198418956519744532868358026497266437891397926658702524401609114577030356294259366519488844069235842236233286786771010928082915718790522886182822163195021202357373025138742618545158269219015694109550364800749353188692415233957933748009163176043741896028691920943624149151827005749642384685687337392961594810011243479512460530266987077208420106242666457409972701886064407680099660955808378562455948532714266508982257626219900463513565241606779245635800983729450031742632926106855665051992594237919203890004714157242393791287256825208240792809989627246245930251943168692720588220445538681155005684728125464141702982623596925076183647181656175475321389172141326371145825990920669321381988948891881964912379165397431118929964530837066840388905639526029517212538789403170464161212900260975254347215194123378882173961393250273693763275122751327472460271041650886010963664186425541350906222708371303161039921474214580294801136028856760728860773803741159693399346724109162337269879658729019957375115788381411728358179295128541145853772386910628098985716849441986140461073640711699613212889185543387311800788825246136015586477042896745217408620794522481992257243067481167116909685695979700144169383836439407260085245519965127018372431238419782093914402225668560221674292288678963707849537967274488978566194990125989020122221463472634782591231674674626517737632688332979736085204385918792593924044004089256419876917435007775987657292389765699255237311426752989096126414793429554373736065246951166367924594019822344587898490401714252472112492125952854703453176471571432215828486635520222232936065820570279652254445881482335915605567674395798611581528762908891079157788442491657888268091748615191918874878020705195723053880810301281136128081806127671048713322778074825817690020030865617834950161652237050649282849494019579311348062323216773719045125993852965669454822113894829497746250892528773216860624369428806087068484415645371252370163847307719755106300139718643140329603584315283287129996045205558752200350467407841288020127830472416114184669999564523090440536603356972148886287277358842308400038604962091974093857640261726151116619076561422408451423821052933952519907302499279767355209206244922189098069282334891669223641963945992536872795513096592701334630131586092368466130060154693273270843000326231598792258050240584232184801275173986372036251080354693169711264489077581125582710610444596643206734684140716855430961403148379549011414356876441551696228629674648027057258392741373997982766457700509988282040587382980121603599517542385438147447794219915837292336606385455066000150004296420135413026500458305463045308219293792280918250274238138144095150028497750855938222634943822088654266101405615463469086746680646674027424239629497568923798419393045091501942441888264333025232107093250208648540142639812420065294784797450188748150826291261052413037903440547059972073730984415274148577957207019167119293614704846204483112068288546125729004340118448439042297283916540119818481202288604377719979907047094533511312710932770682358296010763747937067737527094509866743087996065965877073944626215950231842238096033567104596579465809049717711613098483829202925645858167715688319977038806536669992695138102801721576759999991645189732269513248097133023378994675489393012232497441838875856562478234877263550721073211795837893843337807398555255442383213892699169514343703055685648143658518811007476934434819516310614388972439279238599429906246110327370756330278011459054301686107451994667759400151817779246276825141283079512303634787100772146028909411416374183083776096658376514327190576146317281706976758598128128520278064575435222277918814719555636488051506274759188161801256838404528555828999218129346901462230788235139101702501052187639178616944272341311483820492960079460495337236628174180600021586072218769211008236912340496181220324527230591741940207061113594191725472059606024402062916444283336794435526226330810768553295004102703557989238565657499384978802692009101332489909847187502804957089274177933218088641088522830538660836192931131753606153890965844125674653228782336547359457969221202331794698618599867023028406523980643754345080260619939265369270979497482157840997055346181792838764198131924599806491160494389521281534479562192189499084146762104233309615909754341767895190313009366443587944984616129149879116372739505222427632712538554348121879121450305397980743341101278469847867138712445277517193584067388700486237202427704598119255742015645362506600171252276350389081372514053221047349660187077114815238538108054215084374507953996982914599127327101911670686548020034462534747704409096065498178798812884667683448715720738109520145870596691538985427669184502305632477989901267804793579642781281130399898872656377550910578458895845279470282350370277601678359618248084693075674554949420638926497912181427890922648205199664866544869169835180819388509900466018756507836511605889766855098255272916430183819853453629333933212288148977458289829252423615434336653401309160509932160914914340337653334445269522423996264570080605889841636951773522357523292877286463392434495270420999168304015691329039937810905801827982381407343702267491755369757899545560635044080422879297930191694378692967957649531458765024905503799328019509395598735618790506465134939057682242938520050672748846529323108033102912705895373368426151665599371598040348181578325906177221978786109227061245329603250502972659388807026427191225377301153072913772571971496098974035112805523216510193163253672536663278689984082450606988867779178250959547427784547460452458047549727938517913609492188513432830804136957623409898712692922807443312384458870724972335928341873033505163005587213964725561141337445875566703084051825895628560632032498584718917252098031703491610957995815012325145985189958079755454799394266932418227909323335686897402675324117246058572258890780572544144684581335721993471866715271800915198072900880960435708574628502215709975756498722447302250320438928938430843845982163598564860992286843629365524731636670868620614079524274716989909382157861147078243593172819487496751927875216157551600577641940101049838098028088666907322714524043946235098815571088500482958061138463892608488087530101460321202640945985190383177047694686177489991435181494364869353691414300281475097352569384794319980037254548741417009262865095341299929843904715124155547314351078035972425129396320352074869925054314176643891370750401369157691354931435571795602740815425273457706072347888365374778254310828676632099031363477879336265045845360077909566263290226283824357970534433451003372891657253442412741590102118478017942618198782981958812611376816222340397428671646098913357694695172700124694641578078468996939998852815684943650902333996824221157065965439651115174068680503039858352021397047636895114134483070612964967024821024913924360232362304542588656584366823764309089231385603596974483985746853686292070381555277908708318500510596686129948952875806213091191789387291500621034757754222544332148430669012520123743253049679263127010168465907213756869661137069264292089594000779879972166340627129095688296267515990450599689325281268882807672121965016265113130126632739676009315422777313454481844141232210880707279934823258801864814058208864077614676364655314953294381706612668266739786987986631105686579135889318335506822513513873786501100136938349403802269791299266459051749423675090313982627359580308801227629514126381494123587451398913003484708323016657406218449060769521993401755555272362052518869689670394294623787475794252924715185967505500455889864329114240112384047698481552157525203061015405745266207306382657424910133203717323672552042782703594920186567759940244062388190462359530015301413705111711692492688847888381976207409472337271183303682488968001938760998224428443335156468208051318990913884619882483812133672163966386836085599749967720485307068995795276572389584097399845328453140965725968519016771996972680898297023639644349832111948449186857376518690039286294697933010194087749700904633520493959417214516257644693969645541908339571678634088938612448911040211000780879206123028795727939385059207387320219938074408743638275201321071157333130265678084478222793629945623415350290577906382069090866592018218943268817727465761460792376149201567284957773788324896337636227584387169041989017679734733638911949586984040147460703505010737817890699897033909152522827795515501878589808486645720561744441725318602151036729089831102812602618978881602749598472395812209675246228960186768700306532444306389893263158042345245985844952627421908090084362800354543191894461751793145310482141135616288684183062670688600604219433201017495039142082755052095225406364245665629630761885891659338726999153728307876630095941772077754288877541928530941162071199869409256117902908131726214603327041325177637561618540979161553451270154515431215100823575422788136355654949447093800338751393535168554882382959391495297815237613102193496965887950564077410717995125485480807143559812269870922267069522820793405890144158734980686605071013288253558646212630936077962989433106413389888150151869378460267973722017202371016715313672200018150653962067896123396070578597011658607448907132081617746331309577786043978714687124479014352067525846805909614339774775981741389464392322248730485343049483779515183791919126100241691399915737076528204523025375105366358063650360463114781620190641301122202875575396622766228950444415334634478533491624749006420588993141920314682114868389335487444948156159270043130644218644222922344486245075368346825970422476003690755804832048222997627419585864836910970740214965750469231784710876010842706693117853008514917522838805272741362279051249865852549831067626685413638384531490096437441541499864977182197369169260476665342064942695589641955652458044865997444974758133778798137233865824183716278517836610754875637108166924406607138099750611601254589344818269539014925607999573023437523223449059024640249298149885425155214757849993095945101290781364737622819374819630248389783284323953447458008358005866059244936580823310692207877085041969883993437339443731728018932909751415911493381534423144617616598459679610271341178111827404141772758610921834561319692988271222134940091512993710776692259437736470367544646805932879267563184806243845476015593430526879769788812495400674876934277697217941545515071609926764616281910251305918958132129411462220858922290367773453636895202005879647459485377362970245623840085240524906715808596384188686224670331091326711918295289235442009877286649866264137775718489495285767574307252253799831191038140083671302508342865629223371264457414104700515452605561763729521187451093776730326025304769659230833234992199452844217201631021238524501806973925712876434903141942801143716683270619890260852866182626103071284977512178536845003857826706476422502058877669024069209487846475601015078276309076228830784232556738073668202476365301802584140558284402396242473116616306731885145262986774047144687037326218711520384209855151990492651638146148208417661070450714489316014763416120540429445515088396885001887846752839694131014167964824802841441629685691517018224665636085732607479494529352681970459143366345627272232394575262832319173920202142310064564250400241406638361294141814013314453678811024250093602148691580486950851515300044885812781534593693895496243625448303467542821750263640395048207860874702810900748685340890556312959671816787375482420988874756982543773857633204949883577808013144328923227676988925853343438784580511900857924539690293300858695303271087966107217189626646566099427148014389346692929697184565836912495416947463368830773068046409539787755973952605300580480640220166601356177290317737549577477694762506424651724732105732845234492970889495892138951526145534720676993132867164822599241726423513697411501027058490963840529476060599061255042593013334605839976275359742222939360479346252448937656709339828795085836598679529790933662598224625030518825830322932004555262544361037309122569173556917429428916805785241540583463619246541092442448166905241007815607896243309449499484524609709407880408492429464776238958161940588134875525184603910545077793552716711176888965055875591048920681935164053397349631867255939022858062891960711703255672498576219922342152902941286652933224249348460606175942778688031444339798736075909124648653160582362198354247968384510337459778913638137513760820537240876209013724902281954448149521631005464519724808369367815314901993246449545638719687562908144825795050693256440062692705083874035672131010044400468740892369448691222685694308993368157015177345117046719998018019906978871794455877410258675157934077952366498243442004645535834347521898842508344575438495675066342146972904932602710050600946999742358259366205990192916459018992483593722564011647343344049936171708929250769818869616579891666134656617444021342487420912997852140905449997302078297358500561489050091968163284995178728029191479605273102271127792540980886828319997855447288202334538747248725319960102625138096149070837159750141638136602439143468233403528003426211586710619141323610430293518272965609052797102456183702255925422280956934225033353938325986138178725883765477967227281481461834667165868602507220295830114920605542756784203035644521107738629328554203846754049171454676596509512700007334022560781863968618621385487689915811866848283473757113768756484610258187740925616156096519993447437789277614500493353165981078515025519986797370840416500596401703985122297331331635516430597565358253662535593544188122787511546950905363394952038757953662951666147991568214613977173724658776621668466999863709857194602707483046260464767798502245638560420057063960221659625270735849429150740493634748707517687168329603000913479341996746787575261936193847166015885949006626172905559285425002765027782056670854745017198988254657890960076380716432647035491605763542198342535901910805576058674727607897572570247403884576717644108996270959512629353512603331477673762846805497925083280082500121337492915043884248382918887929258475313050536875338240422915238612514985095887996017646022501419222820851822633783493703161795673491431482826894156215149286310486084180093391065581077402036540305855086143101215349952178112632455191583737259536851973675399379246722379295433130416669868846900269356462729109400540974744972095785798908755114816543337208562117809737157217294491743472807217721999699680614214942267025915008620289848650642451643414473553438159360607090839670747378404041764424909021284572265430413682431805351592681857760467385691675696254312596775244651623485625952887666993906607828740986733498004030554430980765626573874227011565008693968744217552866539735726970734136495333055793914104947192135309161910857234664306697020207262414689036816488629910243166240219305999900797950559715324771572105697120658615970710869654515214825823136899470917945634386971148952520933685838825254249738053443666451302345769546293170103237641411987779793713220665540528336094350939482583777015428961612109381097301443711940850430639560559160800956446646362794211700341985646663514394788071442080493105970646996904312499184289568326436486289015458169300800577666601251939848851875374459155406403410849200736848920797699777008372666806309842062952097740496995998633509056597991421693346259506111475601203686348524625433179463226039836115571202654331681577606214744367908873693740437385743072012273942145820572740996994556162075624078727727830205648226647303925760704564559198531175983335372216115476570998363468967297896897967331476353860845310915560927694288526484266373114721873372277838257211964220197450315706557315354582035446260206905738056003237150238665604223062450507162487668088122913874469311806317871614088698755628853744452435100308892364532558822891872553907969732812141015966114008176412362042797006622940908442562228720184524958190669738496528347785278110828947646355653371120959487942715579274863029387167988247984640568726759616921943487211962259266665344473999367342388913060603357958498470087501835885815787448821823031678088939818053335929839504904874312859976890716886275041860667905457423314981612677968166330628464314070520713912313805933084453800920726369499903488019689410601162697750033708935159726351573234973333934319702918730662474397647988800253849971478362718765381094745661824690061520494604205985438048938814601969197925911304260118025883721881087734923609497196319456555258450408275733790642672862301246907859648056230007793734744193770030343744762867578744108893925929292361242408193064924002500324371294374079278903081465182198598178936246089846992250129507059361896890975778921142250273552914549903311369279655113981414426515873259940836946575337955431150128436962457782237162429568446851621933549835406609522312747190886698120406576984032202016725000771757297961301208747460714328086264386528375903947320330444392560997955907336699904584981059233150114514365712540175656216211623559704507013333037489449385062851903910775781487625274777904264103824337994146242828958348010895707398253762719121263046285114385609785439406346295929618661516468523636117278598927183866905075336442813076145090577408967756221744012572206813161086118286288542550540176820785430965847903678407904891818779260735548154772694768476745122058888039220304025925571746571264009224008576206740356378684094264892068529573729735518433020503845952587072026413619161838183761985942241855057689223976320260569017744655969631505020634000338822945713678800991951700096903499137443488100551774326656879865147958560936629300284640965080409020138817612694008015204948171932992790838755395648137872374750696270549894965838719151759762339672634516671499979395275251823979166488100332587308440433275093701754848309040991258901690176896673669748601811217799257282300946602449458975277378001872201582415963439813586098725151161949290223266147025831609650743694897436844526710513730314405204792811584316643715685507209992552183535457425401399312828982025942696180569538074989107492030164692601010544123032363081498548359387820569373326372903122174627757072478019060035914062125299195180625537797078709543938035704842714611070146468793281893840997706194326789642803717868812162541948503881435183340586464134067744430737259113540711988994560275784254880607929670976120754920375275385640618377386388151602799312861707502765936519998480440378883032471517750227089138747473381574584820268411281868661077813983199769971229379745256443688880669130128520345514164671905300996055395175479692495545535164002297166407569038377587477897922925581130109253811305240790906261928294602307431249746208597708014935551864924315248054876253845174605008029556987308991018444282548388980415515435811600536739245612658156375606845492624248386077316748260423449784113087387001078930688943703942599417100617950036479005415529107256040274653820886145918117842318102401208012167342615470144616017837327226560183935827639979163369160209738436842543476216708944898192324246128917750870004546599648524596064943388878595421203266355191826797676133489604698062439862651400560251834326907709513234026115616927923566099122438332085925308382819583968747078382327474816110417167201164151638547799388295505063571225733955269887980327288259094562434755797097554353619704360674316723151475987454160238831093897690500450340940062061397040038534523060565798738352965264970934723010008824049700150912193354329907038678828317846471720489515118705051267849485568574162629504780139340699503411430629968960044355944994016610774461239686834800767412521478999556240439704947808306869302617941975648773903530667994172822668979781580181974583966503498462090553570375353453935406077972062267862788099530820223226652352121144301889966666949273152502762956575947051000048377098530033808967842874214984481096950805779283654014980938896898919975710965910153202222080964191063387091660992393634549678641368030971780597754903994073814466324003595252084828716211238595135319178416910202471080269180929397931738470687109757912402974318175871215648410489810737723749621738537201632196880945956852584151728182104331685374894093362195234428557430266087691015779445213743379942694270585238734161972959300157461553112506404844973183352996964999097150940543859168780844749151598368791219635630531156270789368682242542479453922111803173422789854085444664869212253885214525665462623698141458266800786586115423378079618857228977761600713661635693548892182528217277548717743405529741892611710034468543477936547642083828798133291876116986945943751532965826660928162207171202913968320341870160916393025560901449575871474507330516862794109783924934760479105750823362121068672000591908787740942052672768402320240243391483724161540875879065373984339371555827125938808290877450330112632268919269535612890466808018658116412392253528427580213143864739549383278821003231095124665379341564878407435250044075242522443496089997726892986398269233917536820647202934670142111439940947201323599835472638868613513082684792890248510823711668057437418456244726527052924221204077934142418084656925994174814580313369983017061605301917608542935713990125541972215573105043651114502317905100833014802027168518085651731668004385850754901247462872548733800588572199918347438207267257965391503611258032916312967846675981818470076399307288830202312360730490264693500832285801986724916347800194143696249794565679074022510817934315561693897093608206938759500833343498723452717997440178879276640065778246349000917142092994888780032257148139348409661748787477223014848444494369152120650629129194260804061290314105177233874908879335161097533707742992177911916085698684228756851888664245020873232623182686937421250130015622581786938744614886586335693390477522409247439474485706494904203491975222415789648975384329983564632603182449214042223901607278781716410656049263514428818182077670596498979875517256276201468269698310320501592166365712382701658347725179677145448399484749281704649433487481712312490674294502971841624311323509381214840172525859718177875548297308838264505019121877719505153185367347364084786578911479586844084470682133669439633313889669022817720528874498768689782446849229183145283207978059669674033331726687381720315101439825784240672403380633562096321080065073015178664327365394376838541282492439173957099104534771038819535097991723809324614252251226267851913996720698924549570602401304001495336814852396612009276210853756430731974178103154287451275146841636739831519766941800792193017594456198623175596177098791631407035285023024439968455354854833287074424139406675887648547563625421224246922833587525642943693782203616108174756572495534232161693054765002651452167022806440883495804720119916685083749153749605954858625028143459063073386780106744778587302490321886670012077093881326138762516562109509302453863324689687691876515408309319264918567904266394004194664665943964103384495372758770379885938012969635106181865067238540385369116116009735450255324078894685937883181592390797832165025563444691148667929738834308076985680460139760802176892042784862990769145857002476520449208589763383119247014627531352262210637284200947782025691325476981790600215937791035554808648516010291926044055094458391905175678119344651203873583659529511484916555029487687746647526720110817172427071359114366331449727532705004813236350122708273132220794687410703655305138021735188969508396834682270178966987925423102721946460927411830862274716704728905814495232992725723508214175070924276507613560988844378883400346486347550591497264343846651603998907742932978369847849917943235329071036440693974262710353647671546356462610463021686901456519279525450379124570967531946883126342239344643858026905382412837604758363338262658805272667545459252558717211284678768264824069681111261602533685423645494449411819115261300705384667272987123760492968850769000938883391517966368119293544333454374645313469796715767757877830049890698813916679158125052798770646329222817486804096841638368205505090021242448090938424411055992740295159892793168102003266080190710804965273769836987517256692533627883931391101118953834603082687938057415167197041586337435145884108879969298337265766268060718228746765464474617821629264395622853240780985283639219754690807322289093808550298167887429093620885874935406748465354374980998624509602791333548924568872805684475604990463982389981362845073429934529769621068927388202635650818233237366741001955975142392044058573702485759847020401614998667634286975124036734690598358365126659804504937088449814455836081695683616778983211870776625653670107017779930858555714594450270323078487174963319421131801393478040959262316624751186160094451234672614502943524231550229645677971607131839557376986741892157578483365945553738212344300395211424289115211401394558436682760327855009047723855649646165536565225594384054117761932519414678204108740643428221028047532941034766433290314484942515890629094255983190289662475646909322750540094824592449185857268404013915671422475636260027863429544793503909781608537565629500832719609281984612158024957501302806542757257951981877473434699897263438652767790011145184031860495441100018814583438443497503207958878419879444402823085913224778573922013462190968057036693644043522988615526106331468838816619392372997298574628611413824412746759799006058113658178691169142245593841593497728764320183139037465064512599914989423985917128290328739514696100180676244095277779976852412593640553900013018279211754736400223659346091219412208078151916803448066325934145934636154594396813636030163526183153495900819591023760271531036860292202316100815869945289225103297070574799309580340662839915993064817463367610416744762359155550713317113664281979122040999961918171536339786377157888524932014355941089885821916954749915153341442413692430030192258560800720872868084435093982830169865116206229666906336940269809813394150127896351648606173303314806930015155625667059843252941178604501720332385396617864245164683763488170013783506477161553304312267476976933665944063812270716929565846295166742025354019897705347207661863266672410372038446555665222574831628001287787040686568101912161535424719411086450474764176027423252359666201114867484107000804709028340932923837877927341471413730192463855492113811499213003414374908684606887355237060256645413192057408464424663843924294424196778186166846249502937895287742243746037298187525628159156954698250304896190012320760090787690141144864578642764423856135210408710842066978662763720576061183140376382240593404539147786955972421374600578756395908436762999608476821470880813111423272236022084882019825527579381005408667366010498212639254631115261457409826460322004892798882495675481944828738376618824636548046425144081597429126487547316910429111754066659887913069291549641038211222379115296289140469696814938509805836789722335185445938642076464776730676317840757835871230444247031064966710187272196192145623667920194388585288664993573055923755071665154674994479386764545575744302258817295437392540226611610161210958750379721370978267709339963478443950705282536648283711841048696859342137963080463355494989344763676590075881037636859454407591501774270523343681500183758557822240454935682182133671088132506240359113963043278586920130114477217330533131369635842534575612432758803590015825640612435127797054522099333449765485890779124231820655545539340393566943113848221547076974669157021989889689084766928018702988139315016561195524452042482064984817208319443788888563587379591394939027207641890855654606166765743343051385086923881974599029915876719332379549741839433239742698859627905594363287477721639711320367057524810698711977144495594601767590866337103565995399605794482799040339478396106153901784439346169930448106877399316756252753596264245621311655228576005188002548380119056207401637944531379110887513841394733901685625680928532548600740829157575498413434927205026087821557276858885517305348970006816195679418798586574146546859609862799102882854347941544072902005357626853950449542270355486792320617217981628975711087751706823354869672451472318114679839210735872607560524019264339306471639513817402127843385098242617887298992007082440129968719463146690307034388870125430059494884152426077231395732783331075767220289158984622888617246706391270417392273378827382438855170285136795541209098659683729670974692102182435262115646409734759573334561752619650352489312872013579278826248465211665698526350993990729526454384834601819792896464305912620642413142360584530192036210287426920518701260167846676116103429193110331868122763691701265513103873154646045517747704845656707089745245116255721908221318431812599484296368482110761801407508778782517625344783667332100719707657308486236592109148788877193065748177826662021146469843504871570660166014066879267525349366157037952519084258951910557298283137698323685950637252120749830979671378942674081085345705484334609131046919559861911648700486446559915133216125075935531074464353305158282609987083261957397229307235486434389070509499449151996811691991687193146391800123171185327092046078970305374139997651192687675489826609176411398611100498734962340991698417573397102497158072214836902928310389876825166546419398453891361809845546462163666746124559794036534735316082381022547597342016975463448862506712305401288029648948808691590868215113367533965271112360453980274524171635146890806947608262237409313163926814795248867396942142678141984066368466117261253738007490856825147493766666478397834446221503292650947873136963598258763437898593669589359900831371765109180119242165407162985098504162237762181455180351345280325771336050457041650797512581532834204072276751684404599287908280660419683128953759356228783397668633606800363625116402088144165856325300111775263897498370052086012944346437990557110301931970986452891982819970274091876495637559257354186477696570677814121501388905511619201329167940740734238111072551727797260034879092885150172258428738247490824207905914330795277675482168276705477588255160915842425502185023649140574786269977057259588977130673306916046002179406233837275705904628527067008921161377952840879613417781470424284065485248223577253143012587240259068112238769324478295190399546318225779374921436190270210738036393959558433077549671148684763003795758047388402015041042208480917963580029686331912402206679017610877642538949764761139465764166949025065889425930317060114448960779983127256567119158123888886015054807908941335008598097602639595126265634474351590498622803107816388318727088324506785423786847410646356435445859450516317050084832844473716113406801765967999077721834466035097299560640903833138923838395222004156196517014150079661327917864341657235543638812909979063937857364451521867501465776186738396348168865141242657173241562657706326941812260723719255796081349225460601008073009198858845024110714210858620744809148962402262113873617916072209949689159110957491103166845884686247387988111449753142448748669154885561799161003232235073677916274089598502885128837508947142198226935655936086484096337810216881361733821896754495543728712726624799206518543899255954842135664918061053178032863853719851383139848837294099068246627426830987802250995122982873827875878353998284914171134449716898625972310509604769416007476100062140400749582279281259209451891070667095956166081670085291214679075950836120916876947930663811090031438162042899150145168945254162710247036924166710739351057013472822602092662745681564267329843486060321359590401481111571548489600627227312687219579811560351456899499532675681898251743488204606539482901709532937695755772564697604064683147344745490026134730058565134939972286388639147283071149138671513966454747500531037865358430016373029105666483147979211020797905414112159169208511717764448691442981390944451763460695115814046682365148675459419269794821880582931980495866334534814981456845867387474038320059707595186550532882476869360626362832312413287190721809805669440459970378256549947011652351071653891587606786602976407533699408180121149514190188624070587456616321491212014728851395739728194012129682535801101506090570763174685557578755704948756274908497283483043672065940078240292961920845842192761719706237655624815001423091713993808451957120939174461566184040261764160514837968586934479263882636312145048272944414116157050814931367093670045286521913554439785948591754749450379755478428071505271022211016927694519283499455201203744289939855181913567105244720215939954643865069510256121910483912692532469492527516276307412643071223065388266935767588195452140964014528000422955877150921022808336978720187785662073732503520377704278653511548971421119857050841826927416752418021617728124087335146561010961515624546037099778873811567767847628412579350959167601943115257506775359621979864352132665615632079356954157602662500616152516714041035275337427708508518055508032248972745656982772639794030667338779362050913837889436145960889919386168787152715693084025701897890750497341918610228002215907112798605727567177041500056676067704420920553805641161310933903777236215226782263483784101276209176947449246235351295193028687246827458132481142375489960880049389430931421505314988747176940646657430003767814012329106381083124073365402180283154119159200814369636139779919852083991559869905705457274996928307130619387721498915065280926394247773660436521959447170717285472992195842079915545376613932173425258876384332121441450411314993912717742911187341622111388791968912851485792818903561164649906776056401160001189617383245702858976309368923492403170016774646917279858208585659462505071912782298914952912651339950514232042027993198868158328067634613775934986901706496814751967995769174396032788780377370783551049410113207193944215966784078016190488359762744127320299901037973359735067210625875649695137923812187804173263100861950133514996124049267373385669847816725188697500463690154650912713187438656207838241103458837759970930200710626750450697242121368168337070226020149465141194411203394544894847939325016754777823521889444046210523659789798565469662425827012398254900501370236205361539459539704829620836769592211433173997826465177285022579689383041134478365679577385947443926216814117384121022627224975281746963363164607382171531625475071253399821899985997491328218111791317288638406777791172122285539813843568942576421180917548115088039404947721255142662443255973358912525954790079738383961981359253700132135831375433710221811618570169463081038378022546628040341698254865707135104993843740982030067185639381575456082048808236951768634865991191879900581664426754197256749762033005063827075179427446171177516214979969353337999126095916713199101481779292900614306344527732892445943280528678290807072725453062221196222686111738700521930502142856940794978297158308596456063306625852612923355263653874401165304288343042795659907733014120227438297179537425736480435275476081779110497737121490075313944457095498523012429027210161587994025949555105733669904155124022125519149255318990736921633900756260949314089553278210959468478545311152250265751287377553088581539834591453357907552450605772163420846265662114935332325037627145917771624917814855934005084569902703179564005652763794061380791565019379211475140487254683299156376566537090521776938737667465641398020670671345895129262625087525948225748732485333684129329529682911331586496200721871484671223857670972337990422967453644775221992146271659599830187015222082269236965127513498944500194372481330993792788221667826065990013516730457441985923378482682741668229171826452592392581113060296009825469649884869438614803594324679805592445501076353675260091187840315348915649855200658096323063499508202891380537191217835908228369243340130088729019982511548622511770964474403793487907885806202420401931558804771456760876192469878496690216236558480980187222743755285760152285868927382575277458290973565806514107437510827944914210357682695976436739261247811834523317103448821564398929701876357215648522549625754682885882728894120574832363793753073595411910314669555364007289615760275904578750639629015767002596286686465998158467736181472634583985501259066309797854011680484982011203667572626421946280617402212521316087924070678984217722338819093777380706963639321675274578563607620694573842684966461842808128974422644659692775545815970887794060478997301204410221129618375051236273276622863185531000726687585007810973333313234228059489382046582474407911314886201518255470381871000014732170422372655545812671495312376009568312418705765114100643850937791400544646023203720765393052153288582852762497245742493297876966014540084608500774443889065654791877698348575319503031659139924895228887693406982893369543698188426265297137978551081131508966253612213195520448838374587858393327432109629378844497767076502227508812834479569214574678786398259109010421234469928804311582236300931912460266299101029042359920978825074975056916096992036102201714860365406062194851727013423611703734072043275284984682521581398377550247454254734973693985710610740002445105661570364781613810997592386023883470867678845531780544331291857416024834452990649281600678297586009689443061380033204608304427333795459372453864017724404949120055720424462136611731544681607396607890332113296508331541845679270135619828395235804329604263591625076498492037879154567288410985499942442829186085852108055825900458557392568348597764487686792916121000284297964198992653373621338948826398214954710707508430662305366014807347415422460815214977860910842332629852357488290871108814957423314526289181548529346454244320134259918553954280171574833481569850237786504849748727502768491236318796471595671151164349239796125336840585175869449363014232695327757197709043013915257097060026517680775700177937891260650656736810196451140710173899235637757110864668598587666753242629513690436662580629196944232163725782620099372503951974752315694722210073234042337797328993494002708020912539518060915729868500996860233789159112798644608801192275725142526124109945408913770683532857030850637557892991500869660466995137430619914817439352894329592956930086950440552079416366792887947109095292124300985370519251677430724188100383984784976367885586352256170833689688170366230324427580879056745130910072837254034906581208395642888871048977016449718872501031838335200173060008419762202238436719132477742479165196011090687188179924399332462252700105678646757453506347494332665476741607740815944060540973714924917771099280908817904652756608328194581379057544906852853082627926109567599430259399616313989259912303343444575050315968849235090860563141968242798503366389037538574010700790212901282663353014881196385117531207137467082961128578587716016102481915182168335508866042560188836256927884922976863243357387262462343218013240118962903441443021885297821400663502814852669508518399119292836175744100105283806766742248335651897786058416540316182825829490467797174658605163805782540510506168953124171179338682874863260328836686493718006233084765935835271857123037804122849435152050280305712361966512613397778152247720339290487109776684193019868805729714861371258167768779762295276778329917437670045158383139233659002209210322840119875229071753184165445384544709128739591599302796003421365940777618465930082875330478352218681208998870384263311255479570036979958750256814552978584790461881262549500794627525852959441257991505617570070394786958858171967585489048121409909252380693455128174725629958394323111268096893911080534558839965758781349117731829146114968413920404209440690606932600685477662821968848496645442364535169711790144118495729518904946052647331907717525832848064722725107830457711614734897883353563079824904133887378788350408086401732807393395362184640169139767309266954140918563420997173788001527725624113406223560293445086469021371064626068398498107660040050150911645117181589426887272423711460903777599980553883154320545155498776735032772238930508463630403062149860568634058848458815140925778376789539094944705963610439800135332921685617591519519548716179083783088965743620726483794074624870922445345305274565702243262509140989310629433769692964102123488083568004437260856539778386268907801450027284437105326461544439943121966680963340668455164594413104911269668870504007484231304265225785906654809204114596093455356388270431934892998722388886195083670672865599937984460655053106064760869366561945334938953000981629546030201115805413990687843373881370050111678261914770196358981654751762305400885264825896415669355754905003927515007137455013777161102596791892965623287216322914516159912787355038534489471954680955299920866642347273567304943839622457606804903066098613183135851663921102460231967609806091940571566034717654248784050719747091026611188312574523884674476929656844523867473052935090000588627387146026823414988095651329255398152086824123521156289288336318234929649184704331702269286984058743842960595644383696120177341111284607685624950203112863427031924450131988863038888181533658416402467729575772456430379278917350526364417503907688058465663520267901320442090566653996218077499814983991488556294470725679218212709620667601407889973146365018099195883022132902701680651555456575377586285305853015151939547426769176863121985138136845261819333179760240326051089477173562602972393251531512458116377481545199598977384124637755803290595573010703667772084114695586106933361397260534469863780993343337120238142593701439770145192678914090729437920381333242231879999438657128894041569173427753769526990493648493638842209720041624200855458899850771578802551224136624169070046137596355261755107382053843638973243969704915806011679368841669766980827007898789066371340344504214526853850605690322733995822908659054627308353557047730742185513860834768801744863248770500915162163426701230296321096777774030787977584621600054870481250988515063253226460608915756892603430583875292582598333256351290597682355115932930182435875565069621233662589469033673990789672304960102568769184468729614969731971269064235194756038305811532371233067583027610375795657589086693350050742053015923170072259358075373036096488095864329678327135964798861057955079852113746362860139359112674655064309456614099605457307125510002458312702107265994356860601221056344457912638412490101087653379561029091719609755325559910395315567949663150595296677373743979840203069337334197194953393845185411219470033377381959112047197863040325427209058939156113934822654361030759677373972853991738660976993641609200409527644667796142125388488321995512912451312379285399840168760925893974342528101830224572703627609118110857416758685843829668801251481268781448727569882563394787188897272833331609399573738756386685209423006443338723420264377074193640943283308276687884958115653463426003531795104083399347085944314157387769645858220479079328019531884103171664356253041732079572772521567722081069409163227439022775804179167214262678106435160053965354576906280019181504039213429165484623221427996672459153298292431637688964606450598591717757224982851762754053189226032806871495362605218922047572771201771398383392006461381337729960195954065152884005986908629511576391559199835308192444852197335759003134878818386003059604003090522915007053954576963366059365436976962464578806463373642626768106637062011751474510133903772270892967433318311307864485389956224690772008811489709054383393762339249140399936214548043375177475669468756886994665291227149655951602889340489106665671719386154347416932444294108984597974301837121235834342211880025908240690397800539326933890120556943956161492553314417584929665249417324272370598019015745227798778241160781191543782582280332034608676424726999920536128915145827182555534176496347545003038682603297630629945996406839212631367860274924154993650377116409138097579740982613777089166286079151024508326750282612212355424858843591303952998188663324116852702565648705395494839225668871299503918556530282054944316666047159463386489968705664656042106048539061625047664000414353014187237671768351349694488642974499289270339833828032507482857044803579949250947146115469184052658452545894285807663290509566446095362983691708274541504179616028688850758906111105852043599788376214519536490123980925117718984599305763630603677464934757778745377505088697882412330309441410534898500605137039569963630014541727927547199408384491223560340040485868269337928201199882047868389397957728030055435670599136738793239930490243292412949398758611213813238256239581125670308045893783400428435653546075168314746890491827874756536542253115161857670784765229847776551811791831116851614150862144936588981897176758462420350490339664529238635762176430413091868718740409486261230580213785881842627719914003507322224043627132541307751474664326858847379228007808914070056708315581547891143282124384842096929859069456314989309844192632696541484507593377690238330639544417240844839277222501444949877706917547672498971747772966700499972840970320908370350170985308851252042187348825417169821162027213144039018558313852681678733689796287962763648970806507150900078492322404588470567916932112067516080146903219048908117758618710514738979722405437463466828624087830055127061276079323289954220095144359971833755512535183917462512680098023865801419330101425225710885999889901158422398520795504481835004549749461185602308136760719980024549872827304737005072669157306720100534900072402526329286251729339548127695793208999596171115694451594910110412610832519495629909745162533715605888513773273726972117013062993357574471084927777046509999109867504502978491561488753415997856527936868630001539928905918085334911295197349841328161081252899654251889258804056180377056200928178414821730760600410508212340270181006315077941947777472675733467889279063663071978121830056286175719601714242708497174113283559575285450908683594381524852993261469840904707534062470627523385089761845086057163922164641714201506400323903712353544517646219669730217739266974959023516368799089539713056754450194754683983648508589700884176039686154189655654752358753253881343494266525989418366130665057454459581604879903444123183668391879614334717454230302297587225878702224814437188909717221996773412059206237585494996574610272338909875259693869045099587079219507592981109814122411916571830107097111602462913446213670076365084498519798234058024341468180513486210497153564436983029223999071259711634667519050095263092527305576407413795292051271829723040650549187918883814799940910738589502274194673243807649805503503298455754989621794574447452366412252091102436690341958953231923437956086669469452426082764462888381116283819793827213567690292477294729322777988714445966145700290836914004099958665358980726104444897313037242005724845678530725797209290012348839340722114350685040646958508081481334693475589344190499794041377009044055705460055470737756690906012252273369351439596401924137869642097161080396723905413838821006921425248041331394684939780390435839904143576258367083229350942435935608332493402285161480393521528112812548295198115070943041633160663105317925609997404808976817377564081961822957141937501591711728056709013025373385412245234944737535690726585966233765526134480067800887762056208768743927405775045005558159267926796284176656072697646649979863019401458688181141273813840195245189357979192202066445886366634988196484091984427732468883996916817173952192479109306880144116118406443833101925908959630664477935461748609446873633254333627447367382284372689338448005021583363478110143435556202302692862800425508218594031856703135381082538929745962765679723696762799282500321061565735995948540433513339235178504921999460887248173463497204185827791131851522059180495784030733302186206877811210493148148139975515757132757745053239507423671446700473900014297830707135278600726037305604346277566522992139270270709708369995356378996505644317800590246161507189521941195392985750011352236352651742965395131879703580247531451204920921360632881276070624821129837570505289380183066054264174461093915007524065053026785562650081227350080467961257837620588141333781963343312473715660937391078736629340548344331671762265927036283849968864081124320377682153270764288385348045444321394941972530253854283654098475519866900220972671872002958970361221562195565701327427430929872027163863008753888232673933819520106613907298967214056646964989487896024910248629450141438865003148015499114287606829074020490363990373375350295483618911226428630881152452290941753040606720079110542342734965308948587621594644018907968637351274520238444684820425186225635911610831416569617461079075208603701438854503670859320078397741152859108296179611789775040031601848201412871177901855859364200836649316436608368408884836718522649552753860465987763932119730567149249740886798526784178331433444339435098250507536339099051351960987839716187750097359647899599977271585299522682653583008234380232238088749375649030923059331309439409259655527609013850495199511945202395177989840906572183654419134755724106034628342357184428551388086716816733381735346879089981593059090549526678670075950126453396951346607780521174646080593370681144108015707930797904512200983851497903167144765747845762623573668685001485197341552295784789747207631415542205533763320656975353351447214946802077715374185949670675510098305196208958930328517817883001963909391817968426274852857248169823965057379473375515619561488494030112909513361100342843565710143271227030747460679562918033617176842346013123231705437938572353755221743504553952251132612490763236409954342978910879548356072022332167559268849607863884411711505618326939997742892109081033886532962419450764306604878514723785986894125149543106425757305409967979010556168354825774370449714604009472063801702678948430496135373952603506211694775313469966800096509517320817484160189202703944827577763809969264888003616174277519678636777166459490226537449367572711834318416660953017644928186334486786977499862270509426559779531502619882888626883831461678433435916057301669737603868490735553031965820297591834439115757142700304204534527082452992790026332259315213313909645041361029180184774569649161659865928262820161433027730284202700934074068703387350168401552212824240445354899498027075067126459808925057257078088960667500409721107860337229772926098469046137446473204000411135203686557410625068084643788682770435292106901530310946179370727727299692761521712083715104835281116477604149741912922804434638894627910234632642158985030655600535691277000047046503157426714100161067905989911620040548709316435255562127080433845151904981657771197390580589219356799671959059347074216898516604157459171408501380274774284698897569835535730700350613442413872235511215211102878960378927929841364803485063467890961995644302669734279099047567428758464065629478135121739116030982272053656058390278390976609240614914784552103553198135293032879325820795617530240605509937718759800401802537578381444992028087059290705015375780754288339368838354595627529761046643853102524418972477350556830478816721891540377170036588328416369085186802983915193824366271125926562417894722129379143037026222117285846819161134962895444080745450740665160794127687308828245485623185858509614808602154703423162291309279507102198999026031278929473773298459901401355034215381702334659978383278743993769220381985579368320621761081898084616485039071692292597973528671839141905936129928911875815596026763316521062819799432469340623235030227139239647913317367781782138070290079543937450336700385938744178793603587711681956221004046015339013576442594291809086996604949257832620749237747905725342170342951961973491663493092847060268099363421154711735366771827963774161953071499511241974498660476807642464973702613428070182851029470047411505079153996704816438706758427589296859187905816589435511606245037683088826680102043261490522675859083432693647142830229095261142402208575087633549154842586749024823031601031368910687824850737943472821473498340107196098289597188918136373869978702881516325442952886770700820662778480219975633809612816610084484363305172876240789686289790320777620691325365038742551606508281999280243804051495370374059765003908328644473714077107531708350497725138251350291087747579392358126141027749640069813052458645667264518784637558916147698449683712916374318092024412176843793810393901399075460850327506500928426882630100009152350318997482038639335541467450149826416686758460611191075723180997313498475400908223555368364427536404826372810858743106679955998059353037410289963634934143935187157421928736776658750942617369935914137583737954437734835729084317767815326125637727749204485483218126439385971695272806727089506467417653392099611851457050606577802909846219537538540656653372322572546857957852074157519622776450737976086769102750418415444208573322140153291080515530933979957435161848704949592714811216617394663180006652706935083159888685038539658082583907966206968920301057213550881667489527025195185649006232559988121917885393648295033671015606435246339617863568457269500661873385845726445314345223806118934779696952790832079692282654287181311113609843684048726376291540583017750395863572329753984121793671511406437938040751573893761198800897810850140153709728371984031321897044045007486304010277822368658525930746164983078014462775051345428171846747547009022839438862594642677033750542279446366439124845227029197716794357751241382006226539856559674975462020416157619260170503549323489545049007974674818573788628889175984225573462822756301963021599282686946093423188908378291816852610502839991992643114186503952596251808525137955474779187495658850507219947880447021658472720537460299089469021018204606297105057353704383933308973828921739029793318900453513577856294030392190933027007905277415916320523291540717166132025968584521498366063998360468528961432356258094155399884358274299504658423920141630814256062159967237455545685472783440722170220216547424486660303880313808303250283704305223166343342973966856179232043056333436058397789108229233032249772881033516288192220946383405674761416851128891026979954753895473732463382595564259837914384032326393039626256927164513188549072375767328342656718089284726422403904527033686256720854403564574808271201152408450371374705457532060634245763552048955856941070592796009602653354999519383760509945625081900610177593375819016020696513175225788503791535779025208381007964492416152743530310897274534986677269017920540026170462159741169903529250805495884879405755572824900157255651215158014074484336926990365242999745748227211697263113690198398877393008043644912423641573565141452039661540766029926149316756622790573012478098761917897078235829715583221462029075153138639761345220413141696408894613824032928153947218390919870580009445764314882932357779680786985876184643656930227598889407447672108600707062273477527730329724450443328955765922509086348883522421689353977043811930400395241617099481154949969206223789875860601510454948289863289069321553875488464302333697672313862252655285471043984866279989092089699396750522643124142511779312958233686738250395206987153511179581684285107456029672350984548091137248946803554433262065981867340232852961287039301964727942380496356534315277110117715783885789012333281164324315157898727678150900570751096261935100011636070701733003740822686712847627906615901216941067058756402153467108235396942569800114186693991337059692971151848325207929345657772791310630261464023559306235099807823083732479757255923906656219722922265609542635374071952610151797488221944884178553828880040351745502161455664597104741388613375984275264385514402377852620810542450333745886753909658816890482337423601637278965417062826954158002968900534183102011488362134425382737123698456787043919019065988129173536692217614586439497737417163520421973166165240019583923002904212991103590511529985056306214545879550573905806756142638363039156088819128034583178963204727491240399748686329176695464389432120152364845236621124027098387430070262405196234721496019444234048254224526412755244660837314298708923941570298851249693533247712858147858579135754443372648221274115510733312423634152451354072136743777095264751775311138637677796190348987597054839432017374457677132407627018147065320127331296038154678685911897585159493424537900892162774244257442786076284590467204862624760220231870847823468542919379435509977000730581739496489080319180110468660465974325217622255952101343530951846981951830182794879674608763943632695641659441638918632605630911902721120322862335441856398416769648451970902579209649830484370525605166314321985998037533572520429140556395643842450966134307196174039905486074753856450632011834041239973975483425483225816191530123595066423537459254154558229647001025378705058118707657858164499967304350151158646608716178689220580708916355775210559863334020012264333742439183368738419901549987613859857954111544679049042685404073195076058903095121161263861948692412627718150343286350829067519535863233003111450450647860217090514259611697146060205229670121628312297656507971379492643105814323448997430781272881596519151363903633132376925702734705443531738875011610458179522522301940710882297567769617702117870380107101549090940228887901653087761272339801857572097325057210706496819699145592211476897273944757762955431194092216462865726119110102909369783903633710854273966591377579770285133002882878772497521151957774312931992561649053183727177249314583778043244116562747668668196189143428312201924966026543140028598049345073382549174280937462494675799884163558156117109852165604687073748023250495804216412121549817542691882794532393576577211453599931701547749558718741242760375273868321219525497462281184110441964162021234362545544695892048489390920372358202946028080788974260740415490385453139317521927237674438346687374005255943227087875332678615194151458860892559071430713963601503911978624023912699560336326089680221512532058286317578787063747911117789828091866907981803747276168029346408084643787290508495475037410500978407538838839408164519929292070305736723261203198189662022005984028531975840140146963375196646994226798051662866093778263223252754896479458010034241315121409110357292203410666564767485549885073100513575098901478388616415170809110735248084024338986136364313261382431115619235993890025598482791869190675059353067590899882023019210310288049359560832873895917064737681062791032614579247986793773320750239665808714073287868840544406800063458215072334585566748240179967762291584075514796042890269879514992772874919235037867497940906201277950282997120737238785133575079646500683888737094441801162008604113562070707839779813489513351390233733491351144347080767924129235802824798048846074242760377020058746186991040018502995471929440539018803671928503460210249725921475009654558637814228203751452128911107084663403296605145117303144742028660310851152141816929795988202173655534393725998613848248541702865566894241173968445713510556771934556817882436060917422845875605368497941648473524958117463957316778551415599957900843533434613593380206154674513328286598521288758827543230134103207621537602202785966690112580495417588560324987341275616184616472187455686878518564508255476575166405804359119555578940046143918993384052123905088726573985531432482818084111608490687239306751089633891507944175141137774948531427303289801594360849178232486402586758013896650167098012071125416228465334828807364517632246103522217737325814310491616693840639155833213540060723165970130980523938236104139022706231763114334378557725996928570313889230717373859937547971027005857856262107635523268843046933697390451562457700798410944559831774306366760954043978117052318847828535256951457865770550758677965572656725496826315459656385383963624285304089393113703328367237231841670657109533093060282523433419134294809078839462549097975887842752653681913058448957681069525849572635271839641289493225862438199027621843055260874975345274195228926540430793238585733731363336352641709678722200620938911402340298190956759270137633712414880741611913411767894636127625727964882794960022740693393847442177731423388682402336671578582315712757011722421791011341069348573606676978477810279329953171830929796358788013408512522678603741714949771621677716312883177538502407844280701870796507227669927354710545112359705522166029138726173923183018228808826961861826160220192350882247341639153929795875139882873255885239842035164673943375597388382676382831612068840089664471330269960994191192035487909381369584430631073472227807325089022260231778068725701296278146668374098626199133999911552076126782212813135371012911864904553168328499178152182797715545293519131796381343455210125313059107000758239028228043110856615624742702617697617018847073881710289863925319604711259916992102096708600429950776897796736106668684439180421822521544556929987508305723972807403618069074361921432485800765365566590833661846008500771697808307477957634869969265446988649299177928189351969540443236877552228620819224066080311776259139814038288181158674777184798445236529857671727260236783096343207174845535462772428507886596716235099907858194903213303895383431410269095476718694505676581237067011430929705101019429110552433760142826007153641925234473268444434454124342807676983740394759015088397545687259473502113652946220485432297321582252138843018474045273507267870236741007346393871439407039540775898544564238293915995071939424759452988800453053659472843038751424486521104906171493960667077715110420836236788409420139623172791266767119674517090137263329303481791140274587726498910574012390816997934445365825058122479999894367553086623386547162816392446354209870869173920964779148946109190246707212060382277769953641278630143917722128329528362386170574302928777157002978934666384778040941645466771213756453899235538444115204914660896119122900772048560056045589084433530531207152170707365855392669375932686143790685471948199041553279233259559577938654787622949622881227066648175673369211173100867533159516447578176216554488937915225432040215331973319282539396914335501174586251237097770962532320519762450915956449093663172545140965780032569675105891409480784997399272916510984628961192699356854322616473891914933807817314712368894711989752395837702963206010514980937627105905444456761228467093593300977695234289710071871410209217929702771987103097722470116743325133300834364522005308382971437830902007418746687888316559838226172465502620862887402709187834458293248781000499577739158643246417429289541338536720821051987997777991232756908445655682174295850855847534412264011446522247577885859384730255889214628895154040474018567377220508150216450532389191181197403781532340230810866165227570327224076750986449650534345715535239513969653790662535167081904405181469327136298342333712836224995754432398054556621392047240158222871417006047558965194456010251247236346394537556040027043446733038232717540396313918717894321881187485162023730524234080550023315889582728033994502852744247087107640633791407234081332639831474288472888567168109903869223756152316999217163105999355122702826522316610408663109313283078158869551297730379470089376351635588761509366941565543195465746926701817108413899955655058011151427996106290118672556284734433576403435185860708326225224617776705361847705267964320643955864478676465873854107665145487428584635604035608258610706588903118597642644892179757884582927159830814324393378421909801419401039909047195774140198365992183615559809093324015416445890685134175921394851190107370200938862960001487255177941813586638968280493666667471429279389829133823704408105956400221166633072047651366724664662711347929434932840613189436355122303667348872095590945253725007999358183364353702751994211870377384216462127764849765600354620966396014919998742525954052264599475764916035225320091923366149670831838770535388213724664804772293175843198392082070943991149458376774212555321189209363649440831615676009872602088414546101110548485365705839658652599817762517335788341536673600463978082034384599647684592714569312444306758730206759334660324178289967988397659494945440169479666137499296735576449463279957191132780215137607551583620121661013417811530483804037905649634300878643029082094349594632502478711082259493346800859556744203692145857285631229345138323531868473671095447375253018552601350736003227539230432022931123679357499388563516093562092750617484562772111844109049847477713241197700496456200013757306573353774192927959902224058307349542139551914334259398930193497823825210498325008751327834141114303176178891750617452968048796724135733002572544279742646803679432312913652187456703229273240349819318526521507066540249866362970348933442111121248559968237841374627095299874512881869336354054113065154372845814101904819853070004108762610096963253771045710854634389049255138105162505295124067480293187770517342366669298596561595373768957161111817420704703564708628448334543873146180273560743407099196517658017602961666617846421851359896305792017912176421476147240006835585292041208330034857456618845989405914603432690954872620815197651199103205243393750919808854007443575967383590694590353488929719826525331300895185793671117363276684901908163846161844400890199530497162428396901084973917958206987908734808746434238857161668108456734810196606833716225219503369897682670104469005018943801474204369936448297985617015818363555398763326234513889677098562597328923734167624643900099387222886261424009147435762479814050260198350233974829163630463555851878643055701463662272545985187648126689276944467202837900042728445912326116029963911224625840835710396872206653564044540620368932526682581432967175253168340222327169913177782868425097792697248464655378070571007854664962218941116714265377706115141328137834212928331375024457515148743403537422396874398522147927538058460310900982013262308375579822513553670496231142814430147654522293249516472222580776616226739960979492174216233523758978444789347876438514417355842008758787872262653488460721439983135918858040484304533212696956216123324205480810295927187570997562926182444704407069233366736020971010474622354125455008932665534312861002979981135038872785764270315685669829075116213827370127305398744223088568846788430111429473832832399448484100686521135089975540288011172672894182659779371785432000382929966521605196313649037011258691559096313695806282355321046270631782473082580275116311606984931611440999307307739720216937004357344759731823396931011675196154697236399779072801982321747345416777407135794455464233595419537661637073376390602211030865633365520511217522954727261509966259125148833731828677774089237697912370603208872967880816746161295909003930525799365754269701428194299344726000934812288600327588691543829064461591263086480171808513807563230928986782297154495592280989651955694661343943761030245150167299810898412633890829873064363335507403737212768014396168413808407102404593577127595432457937565180980386415093111704355535191569225136013679374774043508807876371148774306177509808180683071061324591661209024236448446561656798659100634261622312005519522035786319038928832619562077619110658583691205378019937966427628435150161137220299190720365669384829255417580691389390944345450218020929189553117434720089440364800031916951670089500360677425669750395013020975262345846003604711079324010958425879925512137000262222586798262889644835607516505057630359512099439965706574516470820951047805801621924691351905222901612583587729766150255496390230397823099442197001672373173195584415637715833686463301125902895366255963245554623791846589583737808735053323931632172027483528810480545186039153014666000952710723548762478231674807305956967164997900814184553159024941698748686778981838295556699772626188853350387457980560497391034835896184098870998399333310583580067882925394636478782022106021007991829796661438192602389259857501444574694730358651926079209650273406624478277104843755479484977890393973490060858045827653432639943391434030661664163003505448220569401314913747346421511140410841763881002389101676458283664466491219649136686963505259903841261353410561349806626829892711513218027537893021923728615091741951467214931235651853013022713645402077233454084276393202427165347407556598836677939493137069238379292864276846568126902982100084972352410543516953174186943151085461976156910882276160090109330967596393253283040299427395258374931187465347375171522136740792471966295938149253187109030841907968192864837298901816272778655442939577380639252003815327947514960864465920538852358373034640973848987456659711932494658503808126529484802103831073872806835689652038933959934306394614412655770672183939963633511206427565787762179830948937773197648480831632150756606794536146975289054761987021553948414709605213743210492709334566139256435540919844214997197610225709661737506426950135423487204697627708112131175504509530475849193202298740717992405703233797378536369577913297742615792815813221762886761370654356498355611411821139019728111621351438853201181683326788578997223326330398776352449456413332641150695663276939640047569186779534318980820057209154581480530770236178976927727269606140046550363663634781499736862724757375684368394191655541644449782091640835145614617375380710584690743617401938133581255719950674027973668673902137700663434221597165358854584538121267211299314317404893651912957134292206435060154941369386765815849292758515210764406920415605881634225156208834896331909366581256038843232087473284741774447304025759958894816842184475639488404781062200188948224693842117539393313150619226286493948452977167753923401881408646446188846317996577072171946596574457946604182030005237682329009082422885452092266358177795992148237267246461728391331269747940886948977434816567537510235803585138157721337872875392302101497406147524886694116741353416761268102485153476543594239484205275870439593867804458545869986301727310366756999739280741717434634323770273645052673175553728000841829655033251375405803208293343489810603634414505711562561542145551144060832460408116894998501742232003619255549207039059295881315977892148827243322149535270549355315949865922222526232871110330061742774199336717279885068716965362123407909809728753703493557474515129869520387595280643089034285239905129516074077906570619392653198270550922686081380526078328661632053802704107057707241672970341798629305972112946233472197276703078441258112496545853710741371008167547395345491044255604185250832097020345275853898565951556839715223651006417481970660032750265063153244043850284189622433909111333756825969382660691553395279601548521152644016463641560262755386909352807007902374630293567985383487507225231535850869725605522351193335131998562434617676549242571860540634476092833001117813292880737740294737991244539081035178322197292907474401370846764344933096803791627044599271675247275876416995487220658445507891559786953780936561737849847731970635538475309176703802936806193264916151530407433677833642227586934629678985695056825036664171762212441630386351524707021584220268931992012247030310662113976729246873774256833490874224523731204865497867064206054567056694763193610181116251035429816796249093765316221111857615467379544277495208705061336138363928480735083559219854102294969595554274997415862669518366237656545330347056296798776453644194153100193564224587156188175882789372273184485097909409210058040500802154272927987325949768985771710868381889914993855852253837921374360158342593178913306733777664276176976312918704496693673016195371430215726469322089350337991027143350732102752743462978852233657909411739527951301881792544453322329648541110239441908575303414992197606704976661582748928747595175113141990778089047161440859408746722886906968839543113002903609805680097119235516800714013052921220765585060650365440583051904612043781574581363063947308365672579118450508095160825808965796765269732753099545317265465804049619477844724555236476890993403331409509086920804504091034174558579369227351739503928808921574151128022866707949322313467938248685516779029346894861096447654599540158697768732579452505571267297270106286436379220033569854080720091770317765773204538183911446795912520296612333054930479552325588281269351668215144167616911787053841167290102495643190086723553051584069466473579790415673520043079873957146728201780936124479925966696730251316207586557265502599230973483110056773368419644018679366521419964576870913914246661115215457919938997615516535021814900803373679234289785176671789772218911911663687415534303524384019230452355848215421732795606284643826902478784690394887560015157134394453601289892494513171727845479379955358995212281751252207247752927890015625358990662606575478037817096765440460962349590825648843214459788349904400219575523558007092455386694791329170863692656147860676073981592451432904377704531499206313165793154182999482594519353276315912602597731436245970765947703444003262210160192385263105206107673750297332858531520788428048588345281012533713720267977087438606444501600455939351746138969967919051951367124840840598641856241448299295260487377864443729672689300464540736097722095012923269333851769572631446797905423128969058800966839524253480504902302435169226202550934478477312654419502582007619436610378647966975821956140760083277176140851673013522135670015756105603545406709551453285464081085559239648416127483066065700613671077872639399038126316865567821758072493173659017347870945753031838852404689851534974906675786526761112457897405429810467932286473113941102959853509246445521453169792245764230019894009940780911680134719826509521350624155806014571971934713315292279102086263787267118055335534281492315763915610213120216968057527886797902286695162085045976765104895050299070489385487344797961393016547561597613946915319329490138213429267782964559234890839579148678796330406201615939111335273365514006026121698317171442244753312259476711960017124494981750793357381688140254135766492121034479375089142020735923042351592926583466525902117656577245209864638969473264528843556712210698176693640664172979309351878324257449493726256501363724504217487183453196802749901251143199651358045674221875927873024737027598460139951596628299794758304738769407186569382969465565284522868447904199347270298978533842455255461237322711701731739640675286721101787064746291916839444242511829471883010469919474362404232443140903523755930025640982405485402238140670138826063075577427002115700816231402482456487887717381383996856874731805156608896643033983928477746440970842344191122015200227728524131507993049409833453650122850653627945415588404711306200208312878152793692524153771467506020771378789609023278031611640211823066266346668162449800790880206267942381840260799279302592019213932347407027090847977734053655149762313166121428069289179866984446611372375775293899819906343075498489476195606709154062901711784623589107828801603266478129750246530788700658346241840230871497500126697562279749562081491747098283077586166481813236967736754431852889078820795474319040494070885394205085627495168958338447197402047684174393335625026136866522455977763883679248424247475648356013973718745014658331826005125936240136982651429523629279801661961081690944686512467672391246126811431687813787571577793930202510374848647241156735737685122301985323162939826254970726580524804474811951301233316142840362725592594003722722743839527984998056739183667714691236824244746445772957696727615280125366624852740345286532783569519719032465325049283508194412331344972980578480968027017896215357548348513242158401833733153543567307236514218339578086494016219520540142542106088926412809188317316408505067463590211971887335429728162064476216796737149839905724976320773330584439279676420039303014886640359747492625291566501042501901541937326661224904573754400674310606587664593672519950392432749831183015496921771283450721576101281290910457072571834781132570518701800281825951798141937279903536910424359847480976435224869972599059916506267415506943624459480836262298263667670534160988679962590926959078409760996327413664326081661230191720072430781799577293133402510610553543867077474398624706178331587553544739924504154906616769798070493009296829197169584085658330958569868550855410958042879756084812972753118306383558149109742521064917756344851071529360262953422589219898086017519174473845497961615299182777794553132300908504092339001603195902155127014465283990932353826423311460772429048615584419284754594711884405013150923577610319639148548158140757748368909341235629315986921319164376896878191085718409729641630811899351552925548220768773689108061348543759628143118106702368129913373580159298866194366605227381718537585929262991301470958514105154599996522485340436851132921900419680890523431669791656646176952885655282775026547880415406717272132807381902041352588805794913677404920802973982380810542924156714123977434757288024081164866363065650496429234684612514402636246247815994290968587504511664901644819666786638114734694842125898248354479864913641052476224166712493804135025607312158632950080140004082275112658799242463326963281605464194897912525947897987179673312642063982437499374534752507135277102785232350559752801886592923508618401296462486868595824636652084387599420550062674692487275770342757570510037556409276947876086762267502395421409926027425723219277253630483273752701373129026238508829539082383538947205309074558244773142748385208400097195052194557381205513678698902500386667270651511391038649651408076200451193301833337357845077465211159977778684286585623847198951337062781824750537098869841851291175899858587995301480768666175015558845200261655902152605629694724989322817844337041527283576992250658487952051365651335718976950176954814647011956495439668199565440204738461953021518394285723830114839650910973509167062868527386373107311696221708804660620613503875067371019245624707978650053526246601898465793397192875323589961305796206053026740322768661819090266180256131666950459406058473663718287465023210419230687761777135125354808980896108586309898554501211745449935600668788636246321760691302278537607299483458412636478746398066240999315110183234773139312587003002077629427194800466524279475548810731081801947206483777273987789385262929698661842692458657966468892932266327402514623651882920758475472235323361047960173359343308889250455105254479268823988154931802467274175534766267226997988882446371398263952077197208198549324992974273746856831104381005829924100479395407924507192532264464259072182636090003731713568392897197234202030808598732801240366283546722547394528133521764774936725461281481804624469423448275021263855086080773892659488148526116133851534168620437313018887811938243427042046760768015503523918043526063303779127874525249690367401581372956465077079934578235810632273808707856495624203391876720089695698767659968003557954262799306078387841584517451733336921171400635808527038763998467585032558187225706511338572126979304420208313463128605280578799347462788286396046391737544775701223190881960321023077031231328207563799513908013711996437680254890152435817138946301549065622803616381367659481405033094371632270909852363844859693128157678499463093235949931402328786531384378748806371008158520770656280911234002468241526752392491598667184945962840848454048935786997531252502655495047839126892125741302126956463115814533267191020774770546312804541051674678718222515904019421418240823179164878948915586462331363504789876243633012506201098002342578375110370703420667922284389844888138838483091611741829173380081877491935784256915481714672681374111155174500333314294745337193527760793947885293045607608622970890625030348512034527229396038160034140094591920542297452108130142189870378584873007910141914674423237034700237835679564049494095431506934249420106676664642328378073704129343441152114715602081107762495448640919135223853194917603303392141280255619437856228360372421657049287032632580721858595866183801657177651226809643508368319913440573085703211547652710510343156209109392846581401797443529390889926895327258258629238645489969307459536588502177209329462891841764485447604095298589984865894267259422101189812722246732804433742036034460029302420075686379565815518464348841051661818218639083788647071819564379209329159399025705183721504279353690513453808476820620721771391992324329955103333792397798119346202349605666861832241763454224866761509344752672535474302575312834442756713114750009309091265767672945411977418206936347929980963561942918086701565052858758114704071740049164688958955612963057609602861006652589293565958890068980803834807606245822934343695763181222468193844163810437804477611686176846733684605056206874527451710948125429384360772161778080339579976540248421809016575468872999811975159806299765144934872813615519703523036167409281467562356048669451972403191493415800126067048030881331218989593473936157017951535548720523338437733920309984870448824444966492019455871943504450752331946610615415908319928405357909623607658123199097832824019109523882694134817088264364235132695334427710240229901827831790869449382099964136163238086916314222818066423404226324589086278191243802934666469513332579503842915696519114338791802035640696073952488791820024202345762443889702799000338665929369281333439644917436062907283230128791555132879719927858840680039921776208660723450032236659305301903513640149191808843323923834014543268280365636745507146984854294989997568049272690154151110767750942547652981452978537903319361479684594503011305548916210389142212281020225083164511058695630326430640284221480622100749756105006853607215621362447539296566756263039256910258441165556476090514168604026317338543496702261386240710501023808608811953568414063671572867223174587751200024114411591182246977028303823656634335834750186465379480539099514258418195560576779545808016513294400351300232203101933675304419807837961792754148635096907199310355421191863636945092287716279860549254873999161641707332292416249978300512555979902206744203680847293582771090023829219394750434175950843609358606748967486167502398987311625969923235616843534795170333045257641512186115940138924253863807318100084785499741126956319162327059344936483139905272054833414910378671067204142321164213820987999387889909525613142311440513374767365176503173093656709398634748237059385302896928819047252496413362485772326873353431602101704953046973395049948241550936445868851998448807978108973427485706364095900074579285155672274492415663859847315721654299965134886882186702576975135621631280666287523947010448413265721710155200886260492171101907032143090461269819567178462895163865386631723411307163627755306590580860752811485241706329645534100612684384378066887647888131697759240377841344517004114684977100997381238321022793752886660183992468199748913769262411917021029098862986775744352918030827600914827253110893466820897754534489417332705356389772354599267232220174564692945276575604268449737403481397662162029437021287010241591393665852704751121983611155575748578957395485870333855369485053964448421644655261326984019807584402373165556900101630208418431911353526497081471850374540925563228130679814953923133365171339788066197957084986328373547179571378949178672949815175062273346080315293775445153025405718151104002487280729226741734842339838965418773365083186440108598035807850004410161298545722844088840901976058772136730999001529330370181548472402527359586417089783240272805188009341450026791339157399472826924358672773758051923387808008899938147314893196465091672297982750436594566041145200860429471284579677788856057531641371817565835106428156274171480159589990122611335672613813475161039296863738121494737437654846092511308780608205972503788631975276049411675669062730869325125295224740973272065911520069170320299258646379907455875816969293312339058180219867012774502726098186452406030829981062972859799951046995295328522165600399596900458911401334033026228651917667095512559123568089841059073855614417724839870613115901436110215841231558123224536163164409256490574557698757881191934416744949822713622392288385397727674772639736323628419867592729501667163577870587471881579707907934260406021722547630544269265804082089929388687171304701456369431125785935233726505969151121103402378345813479081949241177588901928136845601303142496977227848078649106744496142781719633253034457534902599568656098833343361690978415360111648636791652649717559716245236289707926710726684492866068801584340721426231557990663657501192174799005791845035674549380330383441928834276948299673218628090323157417076818384486637845509287015778811879013228573259410876569838428488427211483041127755318713608698541901026861348135668977930488936499705269202234493447789265905403742510567102470989883632514309696683715891343592254396321131913129591314014360691660159107022397270542777349215577367746669811457977481247646021387838168583408856791153554383078601600269573580401066466609892484689975763301731797900502329626343507194799261840757814278901298335477708361896391396103204664885905146750627223577082130727621280420973124029073858992500022552351794865865681075648301811479397092937299613365237060561514163518783441631338380155303823191458128009915782413882912736412771840046492057559081428433504469592316864271411598011412219748755754199600091527650356965759739024973048499996683645486837547186560005188664486470760470016047341655076840432151717090253506210493167245206060228166771002484644825795119855130816676696623153818167434834279623832346279401874033568522012725055006683031159028153870710079958025794493297886730659489788323244983924260227479938806300662337730170811679836758564289613544712852513863554204326711299471493467788923744638465554291825745468515762576157224822562218277898235366134222880244064414229679191800904264334753016198099264982283017055800324027187335794686050244516595695340949705227529141812833288776083382554767101570178623691736655056324883078049565894969661544515645704181118670486111897320485963543546903112095499655737693658669449350238896723541444189041114527269385651465791828857011593837759561759209177073983436425698589224261069269451596263056820772453724234980268126754742539620404380732175622840652797767037822370489988087580319570854616028569028683944885718660922669425041323826167747720965532040536663093742050080533338823717547641048854526982814136163994678735743529609475010822717031966721492417318292471370114815139275412651571501343680716906910832751561979995153835447206326025399994693399318871438510041221754017761127173797129126068446921105578912925659704885068676435482125563145015310302446955511770792479787286400616358038775920614310888424022874592131564247959465207397606968444567621096432760014623230145063337200432450404558444325132632720491471138824323932905583357488754711481368573243934211177136476402467349019734636758933636881515938038878663225044708414144603421522633282855210546449544499061673341619382390665373718278853526992274191912504073490453367179666229349343297674766818984399487538605111075917986004861626590601321132856153070188884351091199047068461412796218133705616388860084680014077445782711087436586964022757208802067859049731484385715666235648117394823209417144124416035076610045708379816415974430612943942066238512812216593690707269543578586218851959141391094639215397029495877191304913745758469486772495081575527099580810315257037109627480608511233812457237070691156230811901452514689969600379494822853340596886901317899192806604789079123692241128129874812083478022869455410490206319870437179827698928274310319095139672953766775861398912167360814219836617541135783056684525281732142407334536309663918896620089213537249658523043249835331524790271719324984007958665923150974917293746105239999198308220180294785546730959681537336963627629697675842968400054804471180189172773250032049220460868315319181384101078327459782669398359707272675785641361148838591044361017406068534942303589774522437423608729309238590925510709326066835662725021414009275804094661629344775144823572128739472756889014616980476704631105507543909232538979701930884050188095881539502677463150405328636778191200434138980054342863926956460289798354353220334898561194296077373242312502052121989884675855244248713378470940570028823928787067230230637804974139248633972991842347402314612060074542759145795003625370402736862265161376167710878206221920502326465449544240274711372555262275564833057413043018348821705410989593750623567878502999264065132603767166587665933528957842854137544024935469939410928732505828360307159095957291449378180922054458501972430122077052934719394596640196126811059802063858486732738956862834754170545169709574966568307138933318959319124746634906611118368336931159111224405478698008902226288119270574203323572922820187086958031109916376919457143314430011537938703849015209918138047889610408877444333200275215998128404721366932027541863220894251854299718592773367740906291332901786691538194329003351527253818799681954155906149696978696434629241372077653297044898345262851053126441487130538177960074062800734070486011065841462818435563889365152529923243406092905314052277419950812816975537086411924182329056809898848663668249308471127949938931492942903197514431195563031491051104887809759487485052781217072772323844832648026443674527212011263597636009805962726739447552524996816704614560206421557909663338476408377775779134925519944419441726764520653577484999032532601162197963517763611806664716091474922302398015778447953887881561280668882889042139238576560612058853098681506274895769990727378035851099814423252828799422994573486491921230518458207660216400984492874993065034694252017430138233272891708564002560470062830859960884624318131317393929213483645223618872777602543143967241507717777997987300858197951800853488470482274871150781055487973088801435414322585087129154972175854950308917714465542836116220388815969862661063354113137055303103646227513913373153340460894459195355994348522802053186466932874068229370103007277307094567850259346588892057817049389365674609216635357580533484574653678845234934948678407533749747056935463139523886682318194688639347288203940507891283455170606415465458876041741733404013731510411269156740080701267501490609985111993355198917678907925183739066748923904182623091437573829387679012777383394180738567099356506701213465819211834188005200232197546378426792765424389725842574441376508017295742014494244669780183545775870908605664010928960090155407276803567394047555161739267341635390546721040758770463486790429438349940926702450384210125351258327504567747248696402562248140817938057489266642935037646345964460767397447151750840388382575341803920081713792965205082939556847424324956232713644769217535485102971453752617402619465898813707783616260653413275506109275910967787786569572290929917642607703988136108579468419175607176874588880539540899291518122987127569446191487011618610504025105768795664678055821962474720992186851356004302590015066921264300934499188605070589884885820863204703004808270602671651506532331665602991249336908476871069125262162790293970080918151754765531965238061093542618507139216138372739459263379740086196585815692074435630995998516883474488730764478254748614506574614371337882529782630133298753793501532172243171709335820241692698498838536912292786131696803210326358874501952516930757228260688491629953021759583468926365339933311044813392122380652783620557943946909621850767707133573987990571698306032708706688269640520803600397699623215480831100817699165894029916658391155896626544605467225131113646261569003280414707955744509003663092569649985278547130454514007840798042304521088046760100067545715633072169738328582168727328553709238043016005053385393129774019676457683188483214030269996511891945997905446865189133490499032139456483994157345077947945977939941869405580624447324426838278465618346843803812801373154214020796420288235762058301437942817773315494661120002404129554431430768320761585318474930197026598475877841618916828546065484834521055670711307446956914407042193182901841358584614718038492929524198930919020381073523878003342980253735379289427982993314421658080530273294364009242844632197435854951739732799710088126293516732951624719422046037249389611634953142974314518452944514852043496593946226469948072494712556768605150630546672853359603022229204082398081888439277405561261156290381625538774586646209791277824974957690320788044265278497482910809175434705048557813086068012847614627952278575108212339118221687557022275304670965526816935040144781719380197455245717710390991626932485012984936228039835581098763656546873888276824112242990396040869898918028054559439915755283340313517387066179454472215725632402489361533337709096602003683595440809197239887160457544791704548362488291065355518528170593563718855575298144068165688473236850073345397765355308849659938992081207067800548980196828588684493441996378026127748942553588602387872098864698531597605176078098364277497047359125254532782294727430760145849113024261374113009901394752584850716585459535234763810053593259358365831927728217561965888478149134397509230829812177496299869260091004484213799972975290204877776786165255946263683165915471324457178129695788068494152185970468009393224701303870961569923039755467253543862958533304327616168538515473722852494495641213060195831859241706736899893024315503596941274453401169381834947783091188923895465844094637342643336485463326590957825279512812345427635268906314548780497349672871865306722329494416393954622325592771706563920540576615231717914342550636077162737128750384445684369019194785582296626450497072539920123323351685848468697861873660437119236371002339749276818646095516638599806132560961797654766712761241450881412479426836969413022741522132109734440574558760672461413269436425597887222148953950580212915032581097517273647503745843107360150545788942239205437709213594106736740241555875371135168493385380270943143747116253134185954876993197087692760432905439815985180352532273472822806555868679977213130276880066787671997441495501841665616070244620793433726492468512068034932194261568431705054487408336986080180058119203513613757263250425913674044017003173976324403131976110014330055224539543997998797425438058260191495298036796657054205701872573984061046441770919851465820170547092873658774263192853615316738256780145209801563494885857896449358595416233408507753780538196625602572829920647312737725275055091564026617784487668929934433504631046727149569320365983166345897135441869833095603176019182622777455745489457653113647292996704951902327496863673258436300179894361585563748373603511645882425782811111242983413573530512396175246564754753911106393410965033801894749502805356603076770678824183812654610946473395837860734716923486186361460405053567377924747250202790070342915881194209509279937229273177884498971828565080951052161334994475404461517651261859245894926560152467072222636288485027397660370087101768086877764786159773492408027306631392500284967450237825322837467419650609303809905660999412223767589840244564044187276896857411433736312956294800421233173914243860885726578687874085970566735656498913664382886398186537853738578910269793242878801939404894718756808432709990734595918658743531916249508821833299773396613539484184708901479222677371223350881077601973355163799782498608598449062953505184877980401761138764054613729598671992227808376966051662392170748275353811919007281457998511804150562105611316355924157614866168431934577661617719520669676907447056977379473439922882135402373960559378965788509503703885770322048603824880206479492067654400815884704967001760505851085506127688007254622804286408186092936245152429606349754150797127398912701082924294799080704771075910993095259410081170669298961556771002180067393326280517024366464560898113525465598136309717708072249778748636453681025404375754295880468876561273621183203606555298838823792688758083367984026470585212052792988850526191913697096747178879254566103842050255167240774017256433424337205856986760204782280427278223336738690435718923405275829103968016317207578645396470893528343202039587151718662202127863604150236368229223095527407734347886745072094012627559143668756131872164280612626713965252054317363796627354530589221210014601702769454480752275167774711888097803675332317781682143008277257173067842781595416045383513200759118015324238215368772550523449786059980468062525317882242326902543781855297561798443642870864159582445650782281657062595938656562838130702451669222896137324765026046640514376189633661780509578505067011517228220646205559048737673524331299111693096278465791570573856856647792264104133777730813051568757172802320839394183244095324152022154619624123338932252682814745585728847686187296292113862027816146840129998384878937780102807292933800044746339063078380376277474184209384420815379672712474816359817519847057705571304845345173495919325396295552193703856196271501492698334869289896038422562741322289510699459031279930721964553550349043082035155003153881885865182142956152073806030084472558174584510506822038963299453407924279511666314032357179364112368683947217526935829530442905438501871551704892236131007953969387445402082759856137524295292472339078301084675541150201593561391460274436424829375115771862351952348810971932478478358416467685672386590767185073814204758824687879035543001311343105818928482607532921556912507648166825485711443216312805755781019743413295522746455689983668590524335898444626565415230624426493331817372788979547887477466814261357993411842961543730088632854801218660577183656260740435512772712535492920411041562494399831456774880222976047169898904584468633057037894295768164358149963978816453166775819971513443549843564148948389506469056747234863026599815624191924776696261860631517483808592972463764447021763978850764624228923764545825855777079355397534381626681621205069888559589009168305627981402178296139032974370956190131637990836357702566091370978598300470806031014669001854007367528676483610321908616543425144269494963568656964601590838725883903009903583417630335113698033413695227226862679766302986518367682252654708234379539933067783142986380406648891264147522459075966796995788499210118653231111644681922642508135529782004762063603271316976226686866396707282543094490808616978901064288562601053590325134987206609903893195204523750888653993017000099705456855838275232774185550235779586272948931875468666407230089843962592364662364684460060166369683588891700594772248127313012823750754122373497994579854891558067309352515806463460632970228651443913752312478965810713969416835643787910102662258297337079494049733602228409101823218571779329340233118517700388127968962935051214840595995127099404613258359233077049157804633731701572740467584825157137166635390780445863417165146731398176799532853801781524000491701994423141679500794750157178421118812307932109149416882171396990120971168363559499943301169474936532883743154767745640051759570297061023532637563098025813256629204110038536622444115742275961020599855053903769036329403159177310419508564710892604793905608648278363302957869686454495752221879000035937094765979008036775554216640991015521588156678587560600176868060637269839016525080816994645246385327004317086124007611348281873177641661111659745969977913100884729616303601429339655482309826757672935494548023411751034510035359020477834311643686387312522237764553644080526466398403611182196491974777250716877901655030796721404648404034303661132982781384886928802683756561767943670935741527273460812512382914115480463660258074948344061346881935076203156708194513105169671403982727739519173114117470590887611344662632084468467220324662124400402266126655766878916774667007636394991571577135790015173793059291909974900690028278054604173352556776045092653067249069243311340126605738262496187621467045320979854803709137935062454574794880206062540836777925907612478539492028411804952006388172008154805566552333207798938814342384993975780265353035439082819826617944506519397515324338231171609849091600695823505781169076658163992630460770554789806369399672127167544566271481976382805655998799378146012372046801540789112912865008127515476353925031229808924147039655513321230107360915048744781419031766787027670738047080638087331685692839118869170811956423962838678000981545761428526163011149452290439778515273769615151842273915688377931293748503323494877930745271457653630203683122273040596819356165228347778602541627994003379445362697783099026056867994173700409032866216478462144801500512484103491272943965872207749935712003556603855457525801425109405429394271121658468009324633789046296795828846908764126935705389812832794643100612763031829705041965644961641168686129925474484074059305972216010745041812702868386624161463834079353925051183723451242031885894216928467457685862084630326350802246817720018509753291128831394380753288681638195579148458645963161586544307892416711041172007831026491692812174187363238076032212463572533247912015112825186339881045289708576265814374265115318035724252614975264991052727324907736342737903889261285017762938806405738411280844301018503600905616902591161241010540829703717095809933399136191677892963475035761335861038078323770006364878923608269192436959547124504523475354422182668168466972937842708601198722919141819468107314620387893442044184555179423319264066294287407114271977950387918077584994341015924917608010689640811382374604031320323201822809779009614087836312902858951192532845725862753805829916354774842621579786899568826860143418005800473254900249202432587881764041802842831827830845875258578817130649588700174481273872804552815684222116067147028558964243342939289664527486664830941356429595300304209679077740516996403730007102854311324224209618473825095973358581394645047451864628516058246569040231138125325810692267202142315200623697037327274018889491706153726705485662676192780757655107553202394257464424349802235730755403013391901969449676183966973366891854249075110786924985612834109778583702918181105165101505573732589818780097008010124944211456391610668484373236961911251877286216889410206915544161117100612107971226082425194116111657263527496324091042164280152002573880717790568654993349563366275063528974629419724896400788398404604398126735122514648290947984567628782957024361902459754330800860516826870207014633639416335108050931376182282837663316788004634840473399418289681608037235081521732225786439314693871606127080008268742753249015586382548496731706406212902319476694351918468725520520644634144882224344451178535075154148721865844573974166369150252166646773150615043802065673783045615588197133834032625488922059486185046393361326766639408223860376839319205973335031991211510702429107975697178764483215325367388050778137980647976975512914403556381327467603326560152980123407636951143695760370989168121082992789505280539536748640423681111948512623404447058527458078849980252732490420341962054456446539331768412005981344305405065707168898847569143265401463498175203252265816087568633862494398940687440355654931319695249079980640312658353916862892433989717292200145446072175156656003889361266165680876986820746596634484184016805598668666403349911364219936830723158164687208659680091035491886723695298919607048896962639666088039410082939957307603630606355908737424393381269628431404897552493373076087396992659377878751328777029853091016005264658887475373731804786770967625666855526350934622969311697156166764202025202760473942303625966365234186472436582756159178841784037885789066507774736735296104229780797787073108846693734669248047768372939471685375211104424646215351191140356898289511514964079947134724240280988653746698729903847943988631481643374695445327542468785677335965713301952060631549115863095772453578038601463152452445908386976996934145681584877821522496348516363532801767006083957937536350457549114620612989584472795454662647303065201965477005480835806483254286510114940834843318713214814492364076156834942332230156292491107303899458640910511291446354004253798269604033384541529608994778252855831419346636610016442530940848221460946498658584601724164347825802035872200012208724148365627734903747157019377980607512107063320325444696139146868688342763905391202654588552467265333155513278827848702181693715720463843164941936239359735506170466133330910749233699785041476151675078599632642427284618714979939626514340104918253446464558464127804597891696058821783681456338663042727658960664588212413192084590690201359668031105648756862879876646237284079020123955101726311746046222978155280117471903346624061088670504529859333399278057053460631362454104854484605620794555448143880920285207057489176092838001360726846623706275365782714056475126661078814405190986914687026066537645399611709512690020481245275853029932933708946792080053679404971726283849747409670149698776346655009725470949675943978472168572966915536399746988127821158599027476506777511519834643721453035569338261041321294121109953917199355236729694413449160927713804456158125116077157643395154773290578311103861845895081979136458783262158339755476366808562887801232872906723470280666806987087086575084982672650814320951124886071830108622452133930074071845294484281723369203476141197182641152594266206975919637623118483310377708559681907804445449300347279661128963082348873606504688418024313935603535378010396930352856608089182043819310590385163716273104122494219460919217892199955936176191585467769600882772790826041979141666120150362587224443489710288945500184748486270634445521741403739973140925913676002275975430485974146725724955632781622186062720734619608768619010578219638110217318021363624495527748858770492407950601279024730904235931579144369342250640001404368080134133642665906366700858337179536917110513909630603806382195258911675333502145474599029936212879486273428838679114596772497004687793221772526324292171227298498557015232635912560913335121040857750945464435958454949122099152215841068701760123441302409378964122939120255236752908733332433573619401316711443743992987286646059592566385429079914715201408449072303374653623980166669733023955103736097212428220482278509167509147864375109285610940722797188244224656462537014249724630364506820803840874757172102544225922180898883023503039242386330398060254008061665613188397782416316553276448776345331852367053894504826394147956509821145979019413832563912107222031684203548862981093997632049676835030363785346035884283270949491205355054580569848905080315109179285880158605245143619374851199137139873190606940116133758198904219622082278820323800551200050810437913349631850947979891129297706685750265562021772748353747900542095297571098506084772609690839627367810667230560871804067923839597701603373121748105737088219475221093831099276112659493915112055841384252207432877203080144727598076889695679295853469950242288466772832892673705355150485980425128227701225137576923804313743951185407238307867096631688834670603259289964437916055666851431947823459377633467832345955878732184183230283263351961700299251337529817789247973583571188994866386541791376644615062875913378950042894743234326038887375690946595479353059410761231733260853818591238190680606148570134660411322930688403736831060089936384129603696657275145052987141494328865731732109354539781772742612746605670371328462340175020400237149762321865817422553025465828202743900690106313558760536636130986699173341523766622508310459332225340740014958220413281836463717060383396880022129324230709373736009657843221797121734285569042408723681660001447744765446057652978146755064926658483433580846217477826258757191632098790559584044698560985996804205334678504715638919897455001769781232152156244469717775251038805096362190901482554802993225755830809242999855963361013048653471549546622488538419835784640021636150016855037353561780966816875872219737643303456184152553781196871391840838073295437952101680474642800569367773778453887777380350073384781803355661348246309287018897042444395649702580516077000766733211497943896797613482410433150704338316420124323591343427910565786693244598945618885040786579953056334937745091879525872779844724419344587937347763429433386258477754047810830074046371133837160080760904531008227026495153666105500142001506050857456092651788201415933944220871870417952685715492149889674082904635315976175762232655045305442225287430983609641671433093070332212798214864220268709472458317148116775556777866546109715679147956226873394110083174284452467828671808346176559117648266932590719840210705576259588866982216094825872742804437376966558679607157633382462089261869763420964943659151736915391253619087482227847578444532311854221749150323818179761035089367845881218302666396072339641786820559441778574621801056229349495331264183776583070906797422102673175225792839865901125255998536719724085875947395364148361353449263916570296724011042782577190516459471806961409230573850659269815972922554693378675265542574927297013198094338817392345382029731279242519944224473310816087454207767939728639579864324662126293051068888197116229751930741332843539377657378258533598853895876371269938733044502384038745644441349753188836563243484885603544746239970423958286439572888765745404975367261185478274218722252221645158664479363997075700437446484122034892099584816297096999147298199577389047387576150766028219500448189080733547075586501816232455248486912618693029320559044014602090423226969650941125119176247240923074486964479741805293526862675587818334226845921351909245571306579739886978625157873644305238647767155909834961759431250193346288068856395328422751560556294705829828348144535973343642579775533120719184173446109894556393747838592847983700421013085100910679311935352098658132185892173366500793916826206294007763236175349250653484538382924954924115551944956698271795483083518283188954925075552203666988060506433118686584675820153660832781390273626273915326320784910120592094568427143984495806391075248569642938572851986671598703592860103719090496376299814726085854467785084760623140365084943451286077569912457249500848431202981105749697004465088030806901850789429515095099393522889475198731247397499692456784608787532297652713100051763023435051069663840997198576170435945089982207159107835884486429950897296087555611911179961378826712628320288999903706788113857121068592183564029607511495286501974329438782688465864760553840770538415278398248981775379596858615712930988948719661784249758630874871635321577998261220595044679004384926977742825087962368480825544904148477900843481340010860963281359645341850484406261420410187172165576358112155203099948530275795318196657755119685995938202353400383306964321637207977043955387242279929060633418220122165299236232870069255486831689542743690159722313799800914404878941158089637240490717805514809612850207616737850219891048073227704187674363606274966814298132654413708433969674394100026641831890318851279605336780626986758742991765693381134246879981676635147337433414760186165952565641075633017888058363961160530087252966524374677782749487832777139250474009469831739982609906808422927981982206489500222744292722593084024037550340402245002644390070014827433278582476158637474374434428127291754659187222365228560064672412420323906340978665350001190651954184315340072379599734598131868043329013001606639914723107733979052276471021332156936935537072761702665189468434313894659196748040974398732707158622145036469342950066845484490637794827725557264794877942359206343484931222234257875403434792648608192257704378867911725410692365039803518185674637160325879061123037744510934964057734295739571091162821384881430413203580804749482811690376102946443283479871547953216186602881382074891030237183421366494272569388702939933501980805276728147614662400429095615854072527004850045451377917477216221941134208092331515226373592042812035253895443987673384403397595703860935630987201672846894783848398228987183065590122006471359766494911517843305249120823490646508020980410454405772705706804787206069129186895295304270759237036362920288379959314409777624223770904378582419030191327975217255289849963120948835348637018097210965776850025706975150936821133385304444629323036108329010668130328744217970841663376362873834275977522871282127243626128569536557382271085775517986058609722334306435101283655350670467845225398748406760583368526351109704273550127434014228785147223400392561417898884006274020206317485317863898291511983087085158742218447918271727703189764919520620980426897898117234425852300198973706096158418345562582477014183272243427887735755842477865967417568125911355097009864662264718377669428345026911093007449074283220551692541125563754124719605116959699915194037146905102075091845996395905087464711853449507981908840798528702356178690633981904585022420923493001608696469683171217687773363819535241011599306325478175430947701800840034468161064240894225550740833115383826995285061046901146519942648047566108501967644358957995264879987183221410659903204225912517085019497175248410285207273426553749212875546549371137486236720102168908599619215073482963001336697972614088107625847154429321995376657137729345262907027554821989639618009936259290513430533687882334288492902266562947877053867902492985520155149749804057409854035823727499154689626655814353707043008482204173486037071682083611247013079813670857566097147814378626472855516150331446696640469686973933782324663390072670934903550934953205340889134418731603589679698812476041195439079146662524980120286654054791616345629853248590054255390320860059736611779214341434678411990961055484150543479481444392354314454074149885757028302411297769713049964590405240584424755036164439530590384872786814191168639418737764998581836989893830219357337591442521090472688788078291514251032649206579169089149438406357660371276929110416872561853977173141472292540682337535232287525813954260898090553356892025711740375074637058888041177481513237816948631315911297953287985279008120649621899082981762641490811280174598273165746581945883528386426678784804124258148794103755325527457124821775483963517956095858971009631912420893301961812395244168968713590055003824313696478261705469104193404253903057902762551674480756602658031218919974273330049469526208047601415481305622709674754601132420542096187811426915851189008040747678140293437155282924432186083847264147376452807586509738239631751402663037797771501845692410025418843560093938975313163228629760000408759791354095802845944005912511315919740735265797155119267160188647776070061601509086129429655794809073004758071192087281161192753791850526389393050938283751370966577419592918188933554715879054907960350051771600564138058361012104570993035016849285811361050842516129298258849538327567405011763053716399427162028362022363725504639064773527478418884939923895987725668869284133310643131721491070558402833097497417286323314135349974490107448295191661653260188577660836675228111301632214752017464101625437675659737958246940334296142691675846291952550123132964740023187759854578405827953140944780629514749436176107980087495393423715500731632499933179317681000721892765710213531944746198450293901262974187023446958647676598220853347986296613394652013180645580543547534624100498418970449143408570823984177785619689618477356612887263399710523706289889537152630177220282641570576369328124151863423242155574316215373301384494461226269605580646002806634517392589309816514608238559192495454282322965650123038259473735186581508902089148528186158424069779649336572870347998292673072228108066937070409873796477692124536723320060666909387474344305562595811905203816884695511078246956820554310261731658780847384657884441944971383567739363222269767757253371353508922416140443160642642329181734804054864644011095545455457259725584346571026734218105812340568149489584881631119073461257749369878204979184856464459778999923587346613343605755907407528391418137504145019312211286068094395216406361649066687977958004546539190361016546355468459420227631422506345673026568149772717993911062462893873648201769203841727088524610615456537940647161226113763068120897753108363701368651131709045640542497014777638341837238191020335397305260183600528252486218664786541442881528338357575523745573068509484931883852652437673088934798111265835487749134405858499757165893653446962012683037638402048290718671548247418843334249092924216947878133162367720799949907013635216153714755151291422173989831731768651946519425190733479872726503850650573228340000887232250813510993853066332580550432786079572974986942391777704542455327472343751506291879358667540108650002664063968193846763506750003697228760320682890221970791460745633344545592167127530434380767949036534595092090169553717269495445017124730353621023984876786892627008332001952275581957579486188662379072635737411569677605019849194611754449714485278001044938540560092736268690040041089993841361359918640669273464689783347549996561879010729576334819165145898629500075761395487306103321775604504738197115362180291463819959638621641207301733522324760477699318428831870515520033709047247570561798170874858386394967119202058789864118442258979174932226757284093939659195432338801159234857432775853883949128631340903615509182094331785756000791453305114149250574594016098160968970390883948934369882562466305663437726738466111411415046920495904150485428108843467144620408098725203313938510781770736864275803373825331485906265073653144935907674143273417463057733705259448545671507428815330758572538608065035558236409378029798047855144518154931189007268670700162756777369947071754066985632170273515193422535750578656640299009629661641271067389227791975212614974305258940275544034426322852861244517741546963287862727816127036731853236187806736017201462409832364654104254874193206564225394082450493425171836190477110949674259216458519697297314778899287968812791298297615773361783898177155278217481631348596423730661452079887341096098457188545527496462884860559174249653447486856396022171516900901208894055618428884584036359037902398431661270987156234817816454065949128150084456455161971607195366383480393858368707035647029690896054604727397376701945877743228991766797718655451295306519489300582591481200302363931589663067847176985890294750358484075198047468530687603122914372586837221873837536057421987198746715253034036783143917925857729013523362369450935800959690609056983180515848856091392398986918733164323412953352167777165847760115614771848681678779168853890816971507024514238417813368569943935733503627400022591021675760085158157739009093049796552971246844299944983336837022691330817074260739708556688318949007280958771873615484231501073639064756954819451226237888661814202447274477465112584881347226295444079237565671745587624485375670024973535826823558586931417175509443672017446753669442003853698021518247060292537922285922641488276008783073336905583003564796547591915658018174224547168963749961718927424020701917627792182987038459342893318026698211838487278313031033438761300806105912015053349602223996200928795686435595959536766176325786953921663860161909019793090350599280704258759940594243583304949532378224051656497817281392556169533737082879184659645018242453444458834750722282924333602612047339761090279571541808560369831176227788362652834303424107730067123030984418242432857885093715656732785305156318206428331723650848976316490737853716405960607891362769753930645161456890350559067036834840843739869716338458813116696373942387927290814291755159416719031360996762973128097106109525727512083762241050978689689630788836092499949153791478344219968096401275641191089549199132592660753113979767875832030503876866819748606830123382781681147066673895538959448320412798426332111455321308886833719105578524910424078324475068190406186637943374173664659884836772115683988089099579455919628005304110354617625537438010155829000626175230431007428797225233640879134703747787858789642457439541313896553334787512661410276008117607900482189853582071083458208834618396130776529296659640398067650797386139589807128219820761721812131582377055990567334042930688528456945441436953305244437715569020519955808844313790377454988558142555617937426692537751998277752034112032615511873321883853274092114442098494099075466499766623518843299104473941321703469060410906648560819103817208941991251174313870978282339706063894579584680794750856573233537249668782503984946860409615018041734381473960731256484049568980340631518473073571153455367963221190794045143037261978643591170870610139350523556003683294176634592335950573634774382586062942011664405015803953086077370018795487604509973538698091535611312133271007414041144457753077733074133962350359581332911697588574910433743397151999256817083684002117088262675101568541183411502683378161156833251998223767429076769252128949918201469902790762001023925873721472240648974003510064786644168588973309671495844726449051125102931657370787169771987156948284644685549289582676999087855499115003458167727933100654974842107319298716776897026152909235421243900504969258563091040023539549448324601028857956214409982578296284910795428684996228019091094471194666230132807018006119774489038203326433085401759701269497736429000349306851333633690882397467416347047148017795512454188363031542272914515722091999959018857154915157889944372687415464753582265923903441374040336446143948505940935544675010075516566116067846668797106716165533595804242397340781854988401147413815767230974023624929789481453299498930417555810210036954250887937128285088507376941412547238030551179451846235355276679115525224044418746204673641984356699059347639067667137897423642183416618055397081916604669480778972071324747941977147658856420869716166808380498837377109220136117804543024570802871201613045920871961681872926479878612251318534237957155993739223532105659302924267380371219243375470817082287248847335562758499117783840060510852185897500602024618977355916931190278870635072247868015596761530545210880551136147275932500236132134800080869978818166159900236265893675930225261126015170092562007712229564511935307571611169659372368960695060085067207204815796268074770820642365312436430034090877927200844118323067781155770536894142092455211865559071384325881712033819138171412545672428857904851499560006736833704062219193386869489360156771380100749925454265797597489492301891429857340546114043873794357557716068817529583563834675566255984320566797051917544080927006387325181571214846695878911672732951971767061186603169777329468171728670460707947493732281696444878684004165100221900834787150242999198683073174579428738400487781971928146919248179996954704946972222369398711861266533557365287781402147798675898529666654979235685528603807857407956148987537172923489915205430160617638237608795623139438675165026696200204221601843536869941270649449531618667043021553322729451367121488227388904502694864787559137245214546824382727335037762996225444581720591475471512598043984159181825720649631683363079138320012687367126317100042768054456141782618500943380601564251201812893672554364179269637274626019904168073296674845422664898197824026432088908094979898904307699590460811561994911397822191971490228723573629003716702959476602656632992651787907789466838302589067035126534659550228107628658312538214657109216708469623507113349251728717403737199239808201455683092363226823073925315925151078064683633746672398120067699018646338015475494973228534748577824057454137212582519135808441633787140639219644756824599554577077300327116449677285818834538121533195799492440790369827528315683605196974492985002265106999935978751244233037822626627880821201216873110263423054442627767468145514991577800579913421119304438832973817473318343393351274442613824440325795749343562130789576482142308729313810413809579479280451566021189684625444577875488296187008422398889114945474968230346447982655266981535039669394388783177252397102311468678803359914479697076830660942226554191531952657483283491659831523258930201313885992343004442067633778725102395113629869822832727947408883082786639567644193624933359427750034065188775630911309913691649755290593738233365921631034756112791838346510647364030250113451735472370666901257217976645568934194863314838206486647072407545114501602121809240847807043243644523454018394022120765965970870732674348608885987523628286856154904387626390104250192859163698669929491664675192086185918036774772449194015581602889235510235474278076443405992037610458770156491680545585594115740588772400346426161379066164756931364302350935815883998989842889582114677101202242176577589336456524529450881137065305249660077863698087460668995923151361963690183770902802028553701707881684220854012412873567782293271772988281930013659558693485417828691950354062643579691661259561326214972270875961796460560891152675672957285837234263154196659921214063356870569073884649093582817541500231330851241625176652836261748866980918005124271329345427616577769801345601489757551202329712043077432780262865888225138029626236647169184458323779024121733461291317988444938171503403171400672319177935355413241105321070655810955378267253421252937324741577738626868897867208244890959643697747623062778808956404258352798721559261396076870577434330365002087825146450220579320433087965436509323415641728917116027779023565581988163438448037957830800363264888999808004924527934610094817014364958512862021995418110248591550245637599094191627936090923216604887882724022209154151509557115260718020435725279131301212251699892366252416549925244219949780118618639530777810452799804627795208713697809505045925983340884333464969063859870783439659464150819404266983883335640468128277928859222341840478648960551885127074457389565766376870588706956458185414778282527991514983480355198012314798228109866475030216788795493820970229830240864879447168373580184905171287102514714081130889741007400441141195552623319516898646769037292264276343501116009748100768275631323088024563914867226944495539307725095414006612823216311206352112758511852840109047503600780035400292539142427245612597585125748866641061857180449105726916715143335837377408731869687015504058770578484674575978242368119603197997198273077684358396173401919706395006620768321259187766705913876516459462790847776375384548058099879068082958904848653882880156329434108632533297395795154182813251474616185503329834507310490183687031077380818001775917400982974733719701904404798801171037604984375104537348344823032005959444439427119071667910265309881252327270218291701211469067916755044710565455010635301074296948737756229002412455243161797160966797328324442026012136273609248113545768026123183806715109152647286118232435051775192436510620530553987848381226015731386586370134434659975652003304350927027833275550801308754794674334034597969421007127561048036713909944244470967230768221162914021528292966833392653884756773967902639500637601160810108323734581274107828334287874210588428969055853855458052608423636532083631749792219395139675018064789918993900446523882617658227372629581705616061774363451771568865052387333416695897026385167188587901380722776447731970470817480762046006145884687114009769032837642326723906220153050244812817156170222065925660614246107032480507795356402988266006968442973304373286155306874742880526455997869541943282416489366974306689148544069610096826667409180759839988191054645748491500465300323391348453269034206772092789304962775603272204205025990799584841783974309607181174163936815526179539087863082311835292607076440642447699686504960833740051408427406905010488741752096351490319935643790785962595156258237598066435906993225289340589299096574102799023763460411613515430230304720932298886135734635832346429555400873999923034433124239772640307821171963107447432765463399805220519178038165805033453977215326375966065502963832739596061926649548767708585944253201867224312341069864475324010905866539683702915630160648883280178475024819653053478098017477179193666947597435416742416475267388573273394811073908393756741306133706231013917901591030175463798571864083333425813697138754956616000991063889599441057346257276226499161401206211642738830588780254361136770700839666836907931425433725766324843857237939749932227920577831558361808018374369673454647730604840172709494002285362716612703235340284878119414261403790199699248818083713826607397787771920180797397580464668692443015322487040810788371643176984024708223224127454268203995278394117622849585597789240884320037989069725018781716661026603618773462095033131609452527379959274260509412096295757941188785628923999782462468881223162776839678973516469242226365076803534647863039527076934837176316745415823887752748841992085959949336876543898334324318385195050483652676807849377048496453646309937237150999935004898940740334604770338425688786675594263751211998667527091693204632225483512962000310089836195500978585169901091480738233155600847521318282311756782085362130416644752164261195640947513923054501593781833874579600747308657511299199230294215685257581464661600454481403787977179810708706117035140811819485735950798836360275573897697243395683667849930653080353942520082622749570917163109768496130822172164814820417396644672530483706420569238000575739766251188555320972175751761368475531344713963360201748930951179227705969255003084672855256632495278681448387624146464936232266448360237562656783219371405026346422914624106687740888112386143418184697472535329394981493918751061331042692680642282814813928234616279209217009640981800587019468825617291984339969676274478090472674885125312881596538053580490410192166837948957510859356584019079935779163889272825133731255157916988952501756887987535175249431379607772580759531203536285469378036619716194246258397095187186632725874919115162809385071483434678690832309063959352517487936585729972737738159919580989507581025248475614695120368992657184054760636874114926638673598391052124619140304051713092137655278808088096499841285291888406201165984122438778866494370720234737066090112429496884705739525734385048246818199059021286209863018150746313287238661726815321787046745130900039915185876647243355946930679172967035036438706721003702095066686051465213696820939635116502925063816361728603801955879373362356788577058059221608476262677976697044910908991302409563141441756402562094156311601000522109105050129379704650711513266938159047812049632206020914982159223404077609742977160522184945990764964196438117384112221537574314538725567766446480258034132169115878689152279289926296161736627395816894637103627481684418582992549264889261260822365876385604964399847749297849883804776309534838717284921213344882196053574112041483633148430372554174242440350938907733445495176588172847282357846514062943135614791855401376309298054510712766732645200690410322769215358806007396552840900377947236361717383970243964708190619317741577776754992223215952674365635506240792732989984955131682385721930099742984950036825402074585168152272332734274948100915997629899722933055645972375469526526396459488166672192223467404955740439998474918162176530691137932642508803993822267883514403366456354281894957440246032662403307122981262336214449572502891606717631196848767849461874897418792024541507378143280821532929414562836864881619457203555374681435532787271967255000045377163485311508264575550659059962148565293671761584258233521256586195815900962061674208434374256353508968324652022574074182918010035671346324999910831160779225135885855489498789379290982737396584862515435730766971354013993035973896073478936294653233452049791442220897465285356336096982605592579367708051240182354173091312032177123555849697227146279981480800686679818840987834931651921843981891604013520298439734105108161496659488108305491767908938239910309622377375639013538998204535429720540850498488594817154365649802071221200999773539596662491878814152212246831517905319329321147532399511030154777783965136299873355323586301788892746730065690966632260025992242417750374522180017228198920414113170223488793196442960603064178697208077265019863533613578342614623492988025373792076540007087633876723514580614129779453014230392051504884145998439977365707167298054536867620492261967119079302794242067935136131734007712723381941928274627556693550084179683423195192372052584793141614331009435000595781302704844912549490900745179404635521543999234575540170171449174920340140835793319643402205546455986027377035524512862370324811334183956550111012516547408381734969992617755177371623556255986628921125121097293802003860452813730766842176582842163534917448241862591632507239267684534700641125558520462341806716616083781407939005922207507462576110461126119093307533441299381590151895759739310828576509506404943176810392430552552210740812429709970853372081822759271169887844852174279264372927607146410942081751909863267479791460400542275330383481415612447156272599746046352150124969385647492622996756101794778628481246987077444705138990900096767304296061633985484578478215150923256027876949366076212393975488396123872356999671482643489598750291448006857196729198254570732919884741026102999263809749588205015773319975048947644644103367997322409354975556725943272762235689408104481445814028351582057387158869162886513113684782246525333632507726944143622108027552983617099415827419267801181736939374612938437622193312609568702394786594179129142554782637265538349698437409971783864292173841510032325066394825330614041220647731685319487568678644177322592473049939813372049125490748984815337589928097156438330116211688195621447592266056455055501709283899815333477783324062458569626428363893383406773804951754488915624474828842929683542053892192364033139454373169251602507650686462858445386721684745147458563752592539332504045193692010198714209142511764639642588259201089154196413534428184319215920201433807913618302478783344953916875781267384860659058269380291355504764084128155166962241743327119732306629342807830881802030070283974453256664665074871082034708016104647084982801204322860677782387828307034535304202378732067274079492995277321135584672745983882615306894068016523374263186327076134806817224451818445633373378594928123824752597520500963785215210056497432230227938802602029124081074760350718765342073207749081250783043203950531056459046894520130736096518791070269479840023973285460182638875881208448882140895205419571338234007546762414654686435431358923862490081143231187693459677942603363560771910398784181560156140459598264909837974374147579940016105590759428697675295055971447664586044656388321395207437385372702612414037309707670472807047933070593531917447354047421686311683247767594380455250074684373909322937601425134112580543262213625590154434404352661910794743520214334962468763173274213408424340840554905833424215417199586493663298765216832816488802403496319296951198225169183956158419802216356944628042039630348016390021418236566348789505310001944984195085571851879935626976514963142554842308344215351533888437497973150408933035572793900191873732588765682373771453738318285414264299238718700119972092283496417472213849790958958328066617934968643562393662956046739029861718222884144310019915770221509853908552402763955547633665444802364553754767370640862929144705345011652711542340630947650316140007879700770046359489684055934627738114142407987696847066546308470270092161013392983595861584816089114174343185405574965639375355859105015855432585085675558023621740921989819358650534042231469898226245995673708203932746704023490426305278718196549921063843068982886291713056203011105193208077523759932796055538882699813818165365922100844004307483729927372190272509308648885362669905481076050936861793900580763414937969478254500276459474394503067634975503041126784165188857580056694476067646006873248636541516819527997833689869057800532830417103966724866408531952024405199352433909871638440312398514385000229281388371429515687212010550470151696809628954042534329448523283190731703894887153620704081293496074713949310388361249628336264703216081060077174858556612489306635868647474616239218725143661100258918588140248200567985074191560040590407773432040224444501055173135770825926476413430237040415956156717096715615299104271109520540012963090515716092821320612045195791838391878037487838291498839838323182551414650156053180947363137007893598589351705242427391335302113770528888276821701409622224067865858686426913576918041113176100949210928889126400605907313911176064401800819135291873938080664358428538684569078186046522910741444863724003612158185951304560968343549210580136556973161767013758247017505824427547502915712747949412354723234450582259097570876064804140760799738441569819881544397447146221492422028463049356189791055173239183269345551596531058684727992598427700755057672587714847990939638150714209133271959018494986926062888164306952628799522156175454339916305495419991071695711701469361292312006629534989522396705953825336206651629727812173699021759829563010344119023546283325209181325190601821390063236186820344956183147742799386000425678393250326080613740723482073093759086994168279847089155391201875392813736363568548573659395150530569043715213492971923836290908704992734724224217240551310538663580692941631890042253630117074040018555443792472470996861230636978144690155746077820232300963891500972507666527957811777808945814342504082005657060636031077216102051890112545412428955351132882960048505547349596443839118354983240991717115386962477932783238052646372502872202219239659832898459849224853958286029165395951542079067994191188469365624457621270719371658934937151541252028268120561492637846330018609884204107081729832409281024156385495157552778210262123727876743536796215150623874785527167546742009632839440259855784249426298101299178739028511288148383781254588715061594628600748078798012491827213660004483649629464042431405887904250698119630073192226891226123345010227844193188606992232749892220527429679426220943741291721325888828952169093298503440972644254443895298471168715622197240369046991532797218826461868036525547934594945033202269001040160840233481583566847942741215611765668465619172538012911710864373392143525747413902132671244660649056324472915106626411898086889002758679879862109260163361407215310622933072081096081457868719239877804896030396776323913381911222262179747003047424888293972827565884801837244781392991411294300772025663950313716207325992412407737398627945412183309022370188281649020105184623200555224703531646308905502641709995742034378969554480176576190988819245918020853372152210874778470376520169048702639218217241336716120868200435710023691358392786793207389971558318602722147647070688469954812352357555607998327186182238729256147070051625289243660722284767987229003653945580744392484793929026601261123811337023055715592284127718563498709048243313154432743943163694264392666855682676888658353378731344624926108929356632115462143390268630256904433992556580465557133170519091806783692230158145056770428170233838716036831605759923106355513060639868380699074562590934359526464829239548562579842046430278368532455252386515438060309792898109548160556469831130654227030477249905149953753660657438206087379282172295631731634049611819653051410232519086893018581186441254227527837908643316071214923538977968362159586120155228922444352262298108837993126285488135260236766003534796698929429439022789363679153881459987024048266597414687014182719638919260664820105781614385977333462803701489527120489495021650331911447418437159066683826375249579529680448493078059667632624799732773181063535644621115443715196298081877765351219458784367461399721684951421149935082300436640995168880644369205099517203543110898322161485724476251254051305272451984909572879385002810090762371176465067629115857495001413389246330871318410067254363354805221088740449627695786508629669128377639731050055711304780327856641756673167461908720654348281061936746224581392432501182634548674905566465580104612521966446215343996451393347517009227650452611395174144013090344652454263182882367720644983472477876857225177077109490780484202804444472404691818765635752778093383905469650920512360704766310878622235667391707303096786436342889054466138067208717415709779300630373442141570440529935607910775557567920064849854373266164166494860402418027413161079021429272584175555550745066694685871016682167377849147531327758726145631813553820191857331986905505731679263708324497649870937420330379852530084383860618252015674060539266461276372575468783428588278825440836237970413456891020263488218928579807176044612584170884963734262086749787527615651385510189481099829835852784466465403500342894732909559121455084964948264967633964375389910847463602916507283670851881880173979625653458737936528081406132565548760287049266110861579888804170232589466407390507958391568701043469991058260340132584605033678178922168867943510449135402353324949598219121419392245742449039354560529422387745624943111117103155692973657281325831714945724884576171563671785709048398526378742179537608657391974922032789075493874009763747442804325764017117693947159716098338318975156261760604979243666014603168768105519424179453651075111758016786570149976984314963979860319981060482733401851616282133844238309941301859150567528578329666439593782257752485993185001071248691516867757701915370294583963380403144132832493567198379816249546933311772464121678417431438988734290354647122463994599024955363878574641167720278069099093885102958419861461108739885040974589961499485287961909454734507816923753200560579047242809878574967688925266029259140417040109293130458831989322921361281169499066696187614696608771474325101129107643455039321628044102571668133037595579355331618164944862050132527306794047539760034694743894260478458983101901626767401021732019083906631276895226093071614885257593307409111991131293597112456693103330372763469098623672390259808973127786546575642596630769085916976759447399587879084102182595596663446337552052187779785961167740485342281788405989921607484183114803743045260140727707125221605635283780030739897305751917455757092327231740421043757354939478475948868991255041430011861953323352922247822490032164039822319880850112403498369059711743489705192179093403948683148571273584802387946329953003959790310950742882915496912218974537274669221852294096979089020943819722650477492434690553057908502483461434173420380474297122119934882884220305285530137138083576052961092447434231933977981309407251220451568499790499540606003488797915120942217948385029025913997772958277773017210549883522188575423721382183515035943430590935402750291814740253503730687190131438768923545628027605171466948348054306526725185889382219937495603608307442848221066681173389701357296609699077483041666793495476805970850388747828097900360824806501614673085406308070203688378883674820951962037439762559590049473004055673375668148000254416459624542647286657852161999713539258780311445195490276941470214822490025145648294536198648074208736353357841085823149518553618208568619739238278444950999982098070829256473631786788428990765030422236853031841846126208330279900012216283522519739055476235900405453211366398198423373561946732706593586303585399112653926797355477628515410947598840823763754035895489728373299368785077995220968876491806102153378288219199304485193676350270556362750301410529309060435093228395783804796917171718508000557794256032576378637738159879786491776359686381327899392961180108643802084879269342009857840123865799409717731688068649368912056863624231785304181419299134513177993668672576864461037092558234546672153535111240207592361687911305886849152338346454970880425927303930493763524676099079530719656636088150115427365297818084657727219564791927581655499566119114958499066963331954070954220175761675700089243375591653568200428860727348334631575792129157702564703605652262415763520072513900689509639233448596379807991391097727942130026735428756009190370347012754154692318164063164878942949718202311209244798471674080671440340052385691066063200536384686746958357376343420110121884494262100348471581220527438789527951226539085035584921376703901320149895394490428713219235550351833835389139670614512598708367749822007434182677547024323660784817289046833103300326871695614898726498609335861802757287982784891927831154570981015515207515089053648001528111126854088284277011126589879859703172720388531629211212222651158084659575046982518775682176257772478148479838231878432928533130407305043358644441833569495791981219483853431559224694682495585433771155155173838395664972659232331060308302889673819865339020079190713315094392197285974366326299715638907064802116873653621820933479980794943208798448225803231230235288137145823428248387542935599297049951545982898829465819163345488436781301466156502973365418992001111190793976692119729831687917986231999239612148712578660007399411897166358635005329841386581243068167446492255322906748143078910819859707050478877390604168774095197843582073054773699650524154952318266974701767006764933576085157132399296775323395966117582163169331876837733813293782439259759886848888384631492027704184466486641849550518455488190808415180113714155988159320785854206332912821081061175023884431019994948357256761745528737063832439198075494591629003401940931201526508499285428760069938872667266187938917568094962276793060761362687187656083323738211226335502417777307275306434097025560004363436984140015100903977003481511439192126855277185650887973063614423271291703323292433916849408609694498741922328866994808256418710503200644811317302567750668696280966835589480596075815318200456222160278200221464062532880543776308735732063588479628441627225841693291679854553538897962585586156375254162401918497895326825298822742020221452154877245367188444599594280851145476714579996998695267760146340598441596923113762373962988444103328053285996057328319108593236019166656701974918687701636766455031084036489698060517803976981336942023872468952971126028136470483422193468215518819073148564464310455376160739484697677538243518378945193222130744948946123491928864404355467014649125642174322797644048748643100822211169570736530775087654191124891889742559339696838823028366170397102579134736540653848073582332222366252158867405849778247567486073639462325319231898498201979427564381580780423808797615249373486834392027582253162614269514932143417876276693168781662795226954090451298545353940159238904913398725091774660559730197025218826675864782483145070941934217240377281048951479841534535130071262759075608343371220101268887803458852539123760168575680686307611064226289699132530456811034511841898354491426782051221221816574470025150881740109567408711187934368667353166860599487700618672344188242471515540345125004056371370326218671105839638907477496387511585063710347702790970594418697722011086915736521397581187400824581464392681475327576655188043608637136891359617909270633791396656281421451050949136488033120796156060375835820858150772678405190619160786867607134524331606153295654448990258325885453476504120438722405358261970857475897643447435489615096109252749890502823619951596336077031733363216004386200698034813945797587032221099339893401476612206453275352532502886805218542754760964168266441085238431115382706250178850976556484530549762376841786614769115673601120080623771449397572744812463067131253757782028500463533309278118452439208005919119307512387698389068200140683722809688530989790247373801777725634352879989050095630093148607566067412085845580337038826687252119421718960564060470981781556904577190006839920530267991354985607640873991257431922128472603456128137989933840883307827039459665606056867463313597495104970984622725708699214372690014735394471595696551259820522997355776771223622768497672776642081647026871517313763388758362993945826989441039871115733457967371184320249193949760978254414281397963174971570426647079960171424415865382503627846350885357710823284624300652215707965550147966653880896968569042790217450258979475051491307768186471784037066566514782642596675549239163086266626004751446268583384355035213284271692027396686919796657802910319524867082833012397038141595611770631193768121342893053542733191490660056689268796809920291346908267695324401864094758143972828115239919414008320653430635980007021367660362838365017771618344090653879827652547995596994879034504219311106048318973275675863256910214783820594867643873906025123787320832933171945658130659353743672417825837349083839630116197313422735292236522694944654443046976694247986901330679987480674130561178678138274796954274993555806082368879497615044137737408129990196938718710305196924690485346337059568313672337729668491820944029288863690230866268156103010321670032147226324869052191155407830035580978353496455254908971018384412569248637393344604681037491956256424144163730895708891619825236938210292694415734526870552403681384889564619624592948452755776914972231677502000049500572063609261499068782939064367930656161751653296778101854264493135742447222155189722815984298830573400712787439210053167991051310936831835567200178247369246192568788003991437304817838241167087534855843856875346702824187056483684344054532268796565822804533372107465918235846433391137789783312403037753025535025609985284720977554229299565583962684033854771679362706895643914256816274415787748773984962386620209200898858936670501482429939064230584551257279236490573240902175864638455248863821711947281438231140663463687260912974961728205275131376251174900975578589016835184723132197908451340120522390886610811717942070266209931612764573186596318444155865610750993591884861309919364848043614667985489085784307228080401032270159452953516865196915789563505565789712345038652569858005001176981530724684730854710017332576366188241540570767545308180045800930738340515223285673425863181765882240295179144374654046566301239706050374659510781386447502707317394073366428486134861148747356674509045520652367645696528810970635964070501579999296420818002509060472874332307552276469420617452930780333121070407135087817690339332940174809222441071492297712367869777907538406281676923471464147970701948710497076173101736695408291716839560222677427886321918602400398870184030293101473938016107303526309637317306778987789222590594892497528875797170692606951899396656281881839281462419065621909924911745972034856088731714859093132862977992624214339858501573485811413394694220130595657807514462166558339064324941987225690764956007794819800183071963089559109038155189177659222150392844580877315210068363665721974278320822694260028369850368083348177191168844163021549854661901839004892148123366821063073291776113905421332892162387122454882993635695769223088839675053660611175952138941599760318485693403600615710584485912030450771021273970991407222979226736213907184006713288377592695989294503945907442909999297790294226409561595472456534650248561130090180857744540299767996890660343326108892214907680846336068531206056918984203999036197371022495952938627501105909950123892529933258918525876357365502341078577469297800404759480120419751667498839303950335342046857962416554086302233856167067374504910491586231712457710656387634438732307945447855408269894599132574834969750312088540758055194458929628059117742543840655783896946537049427522878568515563385398120245022958714801218579170485606088155136630399271091204451230107676685056638539791753678547421643616411345139689069587458847690177093344730496466751630522513015240415783365734577883234644843244901005658052631385703783196621229260477291738749240925430468539567190899466462120855201933287604421095827073013799777589291155456092763699551997482560717428375951160448162606286437856092697639212225169920803094980988177967165957988195106724197768442650085801766844578478856081371749965906150472489304742119796860457506749105471251093591413407166558903644927872186579624319959392559603131071053664472292052299754557011884822004341905746359251198724887418285076888968349887558781757026692406224171461992673099235846959907703619522553113949428348672872788775811715377395228034131843055158534964182439454954262585347078455502693773750494049999359635310119067510925093444319962097823073268083066179606461392946581462217651891845305905417071091678166232474835678435637599704196672134548810053884629977484059041176598798993199862285080957450026782104220403164062375180726455592207732873890281483217103714659440022358997250009432263238596914159202543605442155128467721357291471980748912764840419108536981267767138088630352286929539893105468850390066595769452113119433188405616009480781600155294293520591229055357890561290251935248691412725398206293627790056153473303097498107547166499405817524280904988433610202352515461046513997853193154940405404616809318699051104447759132520375832213817574375089220847072599627860463311261247310659428793513641551565606902349052930265868774735178676970775510516223213062463149041430277109670819059047669060350627452667394713888492192458451468953059859932359231415032838992636030562535549322536741058671241067339181275630958422241144575064150702466692288690042005084372378468053031034207815105287367356771954729110592518921481982473675022139462368903025880556391893829687839669235117818893204743521292387425191911510814480970493102407396832589932685670052974806644417679129713960964525718424001069028656605490179037985357564699230555147363932526260675180849290556516592402295447709016995753959993032147504159731054151703488893645262421035735333468049763171439238831342260206810558957186346838771576263236908909062720753055307074230230506023213538343188218019637735882917714189377578108028080044410702410095310738749764510678421605982300097421942503397189897662653725742598571519396682260221602407498504740767999064828452156634516634085269615282058090909566636213037442598878980244557482974085945066249232061221206330448717673816001567994837082808743439636139485156839906278001853995087967547845941625869291476221482552365202468888565349090657586785002509702066344912492292171546802272919261600089370272220171006934857877844008710933385426793682834162315303812910643479660514263898092966474106757832664087304389609781305938853325785204633282152414943921442302177938010587313380918857832656358769134966794879062967443040588815724124104368475375844585553888275278068045246559648876151029638532189945750240749353060031209275152748909949387080132087815870865602621210272931002250371412994187992086358559557687339252432134541057661343931029396374133522574332080060475638818781992931670761716856494356489659358682123599760639845256043869088580698581687199328879061261463539962156038879658709441971913402585097253691343428838157315125498484970645548522840776462814426546088509815622454718633395075365623924601638542833323654352164210291730296218065466892005675287440118689875517017874541014528605053389123635557090880431956768389726196087909195524670868746718310498420312124812076158247542258108916960505992256433898321032565918786661810695462950928735568576391489020490209039459322514733087553503631012975659948688439651144885779194813884750663175385051625069787099058606655797781787165678941647158179529895628570874453182734493729598806294076584993680853455018317274672696958651364675607194428662213333633963693276318108440092520470848093837867109234835038916394928910956716806111173736209239956425515798798495895668383302761858736032280970485222803922565574224414124577682160069412362751643385865264502786135405044546771206655008286024708480967679102343365087234966064923123171771108472137345656822404428828424917447839508204468573722874375224762431986313587341766798807961358554587900740765210857305978839412988184356487713267472280584358932532993476227274623532629262960051062917619880598253154865742665735211638815289041726570435920786648671749995570699248205614059100051442961072181607785570653790213939839074814091950075177000489990900451021759164056527786389731436604970944295414108062852298129071905080794791694374952864587881969422255448148516675388514892434131465732718415089934693439222474488886952267047608516372591385194310701917927610847383667414839892043222836336783786935780204387429571628663959921870472782597806289101348690787262944932714336949502243657641876450524748895983699089357385669097992511266559145608945914333467568219515870751082157197326745677918124059795246507373419888614622586865126432024392413796263309008053740887677085122277361542100223481299210649376136671481997509063686580808892673519202995125740075986784857864357367788166700012655182749771951534547338817951577167288074453822763666494848311403050892342224009601950230631364449563937878773451610509818838459590910156603546312897131772922516431448711226397056601497136841706416632379957279340317579002428036033164153813640703241997160281894351535225471350544194863754176861965111935451753818526963892970418976931778715580243480322449631136489347439300538958088936914487156784899929939616931608848467049219658258079673075309226733936556869740322417812443722896807879698406858045739750809624896835666507251046731163647689534705283929381088226375342542530203300589748958923769127035611811389108112021873040772213995695003980756075691994665801281463095875231812094506351503659058274207935217035814836671445866964792050485146273110315958136505261616676225583931120128060614094093317404748183277543256958630767657126248254027662529789502854498792260546384225008764424881350517642412742363086005291688707810429234371603169312861050119280247423218305213255158514709973958241061446459039494421985389500942710410062799814844212379338120041994237166357491900433820362300652359374883820442347389056486470246861309001833030193913380564310279791969471771292053416329029801198392181908046164588992339225469920523013049032039088497313684758029819546383896589405203369939016774217869978319824029234642421998094268340155384018568278687455314293412827767334399864976379283982024898451996182473895684209849229462891187834355205032016640640724297814700688153669247781258019785603261639106843958053159108543915871691971554573192565197494841170850163360495352344576270970724549349847051445141172744368521919961383326295294917449750520119638412301098489274432683142488642290906521441380429724323541198866477113698811744756198495261345965397833414843128416808973297820815424272595730653783043048413936147248146026599961780372291323484941412302751226603274011780198687026401496218231413548620798648652502729853094051865155940425539933586152026755820107083662964126879344853427581652743268430752343265312724235079967675772639780812450844675612611377641141075892105477200274785854274598768638145255944678412164966492206939236475891727222826943981302713647737722880703116196453804622761627371238972385514691755881248274950499135220077320258519260893160308144020132628838666494848867817328207840106392362901969689147322463423222810332331395666715516466462231515635554744615519347270859952553120747076625516249205204365292271712150612732337917226197038282807605482801487489479823101995263674904691663921225038527651178286840874778905805517346696212176371384276528724333188890050090775938644914325912069590929373618656678272979316287811207565696966636009454456321626400719179966856235107667364365107275042860975083638877074344904595179564755643267673873928823264595962833847716036973279323519024248839982291274019600724832268198742182107741773492331171870976382830268458310393022064797268420068821324540444027968458663538184086110619531006070271476873061958101188278684441201513100562113889264945641040808994870756069379526313322710016760681637724316833076320915210426013608338637959232335155720492824395167862301042306804401563741686321690344634645691603432131006631538504681374888443269935312501457060830461344784102349140893556164080801900642074009671882112824699644514220723770726389594352441098591105231617001502449543715134701141202676349036679116521645592854016624213848816658061960849796469118818804733907628091126787314598555367309763102764785688945877595356542448232633338225671026477103552713879617454653682845399472380755076589940037217658868934599808749922736452176682825108323771302611704979834974448521172166219677191444443663761301872374389892179512608445965140262332864713906778747719249426083071468491681551056811671300424435128599828861201216339790725220268266165643985410804492481678386284875906162198811120385730793628998006963695666415314285188635714728077764281012731477536605484048661923828006193342037409252420532299881373085664670293532481002967181507909272326181710803439045713321276615923731123664353793387221278081332408386140024327834665223078519861613968872360914200777941065251006256111053775412526202828144161223145057557249492286570135726642648323400783684043096562911966198704339508907169736124788212114791392904895387090241225935526392332855432816571392110699558736294283711639026413337947934457662958446779300766829567698671337214851984145745222178876009093685887268549560106473033773875995433307829199567093948514299748266352481330281742967584342772237399109181772604362864661427025111918978405501218716696460120126691449427522977022908965937769890706789028990364367519130784475883100993651594586576647303867069954988826158888856531827029726456159181647151298181366137877694972840045107287507916067578039750962605489105629489948593733361826508855572590644169106682813615671242936896467707247166139085303932821603838992181646716150652187114852321453112730852827965180165729940501794294500021918749546156510360267693761666858302742044570897506993585897591588786283938206050980116801307129620907634286870022936917272287745816830489736846800700210130161354943736791138906906139683413271426171635336417320857238702858615027475096313148962542701037794570697819983198487327467540493291935476777740398134362094052762550939599711067357607015225529003346438324056695176285769025121728209079190944376239367642381734001799020320211012114857825713094393085802288578924259265795475470193378443645615306470695898452632868785378151881715266879392765385978582841730179052137834298580570189084654283732391094247215746815598611941618550371322335053386430448107588164851275885701720160123507671538304283409074980623158543158108672279740032465826942130032425479439971512255386978101296932175367658749666032643707884158243039412206577689210259368794922765975805875232794543561527394173691382547817349719173578373008322541314043385205334072377025005927147124445932490269911911417316749336357598823991325903477703166192780360054181547560470383493891915743080856522989547010453667345538722541169027006403597531467563330596028035542584687403142378452065074046117120407616476567312201864443049927768900755075877207355238863112358222553644131314906767819126998579047235850979720282400358483455605457712843243371488561484950079965056458553832669374595697303845281587691116778893221367957798734876693893041376776913975205211330870071737568322997884025585539415572332353159813281153124189907053967054522249863733315339246933547268384703906774319866364920168371056129965532566735924667268370656104912549069063719328985717094100779069271695498821117212485635536142371402058298039642413996403978718267750408021266464917232489003057025582188664329223264479361690056791646669021274911376069844235815535070315322896672036198443280689957851802301336183579920667624062157052686190849434430304822075060856137962196095643386012975827583213436142406087592762066834754468428803958369261387420344716590930885004960747714988563627255604754701771660913537539213496595639266048919689189068797655700378874249834262163050844054090010007096396297193213126435820011037463746868993709421922646428540470823130926972346065655611886920159936377180558392668865794817185772541813523876606143431309262391203492233632030107170173915483902280048817352506991735364120620737206637537925330312876837806407113378476632058514086563132045131250603117970941224284583187712151858696242804904925814517559689088346975200630257694349364877667813249358985756133744206521227941972258152248304703617084210946323021721256160664882772735246518091753749558422825215566641399195439817014108731711950568410855979028026936839445595588741358512352383966091987564972096071950543443438497949673868794119158883721864436189028939957851234592124317621075123035833230705896543252937352266477783552337374714075192043510328253526290090484919979609258278690109654494013786505108787024708097545562390962840504344407141030204506388424172068565033075138895046755795716491865495069741200467579857096092810645335329795569540753964649772491290323293065229024713653821184841068642020361068726640986666633760209384974379834574789894103868400404523940940487766566430770177777010714386624486098879373737315850977185198911318641988510701780137999385839403565257220590809134480387716914369551404784205615005829664248911578530376435458166439004517038762915931508416294535472447333332654743561748955090203175228459327004128726938941681509662760725845473321469278477450125953190060148928244949211665886586188449982234619440035043729110723403452966509645249889120388279287743751117679079940502228135887374684158463186118285512002052784069459625757573581129556567794801315135507621705163800472176165135464602833619066243884044271858765005015013878003071408496098339165323339322860584114802606700065783938841420961682766931110676199442916151383755849325659030200484036036775672472416789909691411950540195464980446603750699108009046353582354031773442008232028470834657341091147064356972005817818377931231417979818027154026939411793767041141952134387607380110653781597908482822416447107927647582706360903099581491705889299963910823539311325267327250682510119283529757408332349223462896687277432832516644988407963975839371602720470182904235175422044977876528463567659367672721562213668697351994846941307198239155403338182792553440785567055978849669839728529202270055856233015723720801789769422364130304199257906603941841004233620899287989737680497607133119046567159764877288577234447745924397473887410577730036311510566705878966061856359612047930779407220978592646433414789958618398334563901022362298444675514109789577817183301842656244627667650783307857897804636325307958671496504959391203134371701616773387945207658502034908755803467394046609487585316225625190636046615207415040624825398181163174639974811218893721445125240078534057472772200052941033932212674901699832114454045833840547064141453273752546337417355884214783023392596778905837660396151647023348582384469585437713176580796675412779553121366645323995172041551627411813112751182005765419951006750791524349785229694462816294040846002249784411421118803619322596542523239710258233362720883112535542581258499358543676137659039697056498272242145183195562587779249659795571640390383961815937297540292529425527966325234524215303977299909673288281059942525641403218735828186948897822052003965727019437419323991218004485147969727390647477626599735934408346361365437403068355381520432982171514266129398211332891223586493889864680433363700629357051853901775446534628085711604619646244949541990293721083997404474386948659953426132977236028403390603130285070105559725769451344310279150590834952042449708330582943261691141613806215137735292617361891592010279835492821450100888369386340216097143792897334235845531070551353383309732897562944587227296356327355780319050737162674765408768015345041940897865049517606985705068659759841355571725344091831763690606879698985461379505449938005256992487189111716285666025524552751681652132099823218706176318528858524018298523657626500989795688370499411611108243567769105449046258774315505960564353192477283793406489953965406739496040117327493665024025159062603061932060782148792406318446254325000771162580949827830297796612728014543589831518713869399493631980373875456938940244752803549105463543480413738381070565413427695809573392164041050887280053741251845351277413012475741634729250516873754275248505641419588654936052561390507591490891231041567038719908506923029143844296680185976294005355374088729917270803974209961336537548817477754915976526571112056535953226577405715551020450104417149857339883982795281497584442883546987634411257776410398129907239510730358063690365607703833239833552870253392109433293317512720941531555036104778572775258752088417635874734669320977313398989494594100114327643130600199050553259218118677528371607611107282276553186517742706930239116921091382441091218410580636279471064007135906830572849024801291254601139498524631133378518187728672304921677185762722049471203458279411286127801788726197708495908292081364911088503891977469219995015188235214829386819285610623200316047845552518329773449786941231688627203739383690557720086341532959548384158206675879945219147537245693692141185469775957427769922593348164640271980682931583471307523606968368542134263829637247675890972319855398775074787308447602296156571180537712894079006589440026739150820573220311241954659304042152258659336389355582986568961913430225738854804895193660845325816039073360269627264029156361045661633381928758257483407815452638441224080991692547870424551392423457597875375471054768760019271840638821665278706045481582436380628740854595836167322431731832258399636212660298736921888354506444262305230792999361491237486976810859681779215639740022226328452504887093493043896026774474160618620753431241627806030137253384971038253463974692537369539064572172678985809358213078061589296359564495374795056112013839974215102837365886191546604649107088192280977968468769153685237567543574976980511611750431413072423128839651220929828782521184324247820531537681620422001984711851510876919878965708306419771860398315215747169536179872772674549870755362852030351066385902821885496200046914858776348820810447553344187686564568717069330990862899177947581713252210723642235199550257862718948624125436604877074148765226761474259121520355147249190100226022377921727133402659650759234316733399115411191421546608537828612009060694054269718803093165943650793912223565457757497093478335253078846333988172463767778935679703487964062432952376744156797450404774723713693968176117613567908311825563907665992397484434842609917743192195741585291875148643568260177210366456213289637590251000846622620758949633032617754036195266331122791849140830261321372630295549838581087041805658911697584155546634451534475438237486224371161390087351933681096856477401062590497262188900726260863340397482530672799305483642378358091800127189423316427939572666548465366529931952810820010202360478531638310436743608608017232700595097416531720670055008231294670045351255800001165055666570618263032860637582082984876181677156023591054680009697188630291522576595279393286745126140620290015345414398796510259944370816775061149778983316001687887770383311646153107474503079423725567732990289266423979503546547277750459874312750409141223509707274622918177615166936388004969356307464146868010234273607023846322804151433588106700415112734300056278290856664638856188110112720467559933663696459437506052789652954960935474074101263913675761514118661826872214453706047588727012363663699925443528612963449386536248374516746578255718054943856251086563722938515826027858219023928160524780079345701056145694295441218743623281256689306895973913219718553814334165403160153444140174443013882292248122551376579070024676990526480853253001322356338993647934878485502401597923464655892153084060589422922118478778380223391268713251799778559175942118999231566410708721232956964882339829811547056726250203476959809892309010639008251205897786419723201355009235302750647941585123484095563694676739920521684298278840644693089112333828600757461050409758038411610297880534352469299976615719167396751819842197531903793817495621683971008644851124278237372397133698354195018289627862653544856260918663362483855205251037206907531220794280344144352266616649123871835394942379369453353146811623471780997077455242575075070789858855781251165713165112218496438188587205723015111830595208145693179494105458230844250529917671535131069929644943299569229050835821243497912483093053076969335343997835165768973359975513576775796340204771174911790157907991214291390247726060026718190809508043826089890525513048455659005531219494288948816864316990276589108665065066268934180097086992289792467899184294077366505977319924135354143471727848400172056261723532475755880161258131448569552124747747785540688441060140099761147851511785616549631962756085085796489663275853721282856781002972447836996520942312999525375769732310912712062141647475301092047689251244179051569126920900920496502419694399864773464325232688650680155500645292613111583647294840452024506016642751462995443618684007703808072506747078878479769260881988497115342942861483896042651275878704004342689212264133600808101447307657358288638898048443202302899936962868788221973019772255860502744623411845854477097424539031578328154996346462224084332880274065801126531334745712481991007016418335018370012075377806674420267705912208803524412643217933439868687682230067490825516357984579589570735258650220842699001481787169940733620373846224711452622520250384984396596096778451217541192221815010441352575007763730516592543592904329017102391836113998895131996373922055002399557981581947491227247229011359640950157354410794407897684806795912174162067451366899491117004323190721240788996155248969876600654951016614700592767771312097905852736873103084570419707169269711360863616569945911890695855032499915901274684933130410865397428600293587143325002799266670296850095092090920521708441765007109959732582956497304515585734089507740115708352282486043974098724561733026015019536662298186749961306243295563353075727068827120950933786373118872082315791029164726460389814600538643701921263232244179576506935840192791388447705841413193393450290241285271574059425677330899302461401025899068135516835600567353189741761817416256334255594556570693643181678670589261351124108657271369895998934525886059721587580873388787003125385564566555054817867672254350310383052193906458431827082754747404954461738932741846997122956288378816399656095393307122774787083611795890292485708397919207890092118742289612291950772389330688398663060985535518518941376824314073523149756935125682374649114849410114087119312149083111884751355056737454848004692575495620927750947097762796154028188388157569150173396111827731721630693102634244051221747978810337387040450330663727633436445200410054448437570918955519146054502807337351639589103161053604981111134070096947188457500507287596076507665401801560025319482130135735516267525752472311376377809787056056716596281884265308605165273331229434869465142173398323982747408067815523541610627264044547645985285733162679752085388981697585942621713400114993082365341512459853401086067511377339637848298577204662736183301768181309488440551608960869776073063835346169796454320117887312197412375997218965711960893167386189465817186348906080438229562669932360063747937570759719188937987661269907837269229955754386515862475508102048474123030690498971249825718803177593990369357203055125469769015325878963798848855264884862357589997789289482936899033891928453724268248411771255302670746007697990259346233185214122982847358257976339070278983385520492414878265639755670293079604547052679429769160316833061247672935133922295350431952930312037081369883757436377753605006863928417173965733402755049081467582030552823088159539611448413690410547368998496265931349117144563827340163319068661837590630052706449953562625158559277319439691873146440518193018240073719888623513145566914651925953057950282049274778299691320571366893837056685638008565052759477249729643174962608220541576675146400531836218229973555976555737097864461041244300585762358122606857730753987591696808201097524815356206893131044111911243653986373209101538075298497928418718106815787683700967188354036960826624574985583173871941479039661197527515132094346111362758291070009066415403182674337908158435609848652988452337449705573300019640152071690641647340309934878164521199847681762952024850220883985802740387414181397522158043345446666227799298252161061043609943107247146557721702366106169027460645159442988057228410813925805932006122723820414671147185220637322971137101487786995947104302118017824738620376784788001466848629996067283184209296043656047756973354683291338220177902151839701280075160248493980113272526479516498101627012635618776166891146233983702492109029536682682985385335565162501448760596186460711062460095364880150273167850741982442880573714635992525696666260747010629256881596585373431938620874814393798911724023552974476892404243031319442982854833939629017436608373155405864814966594958980943125497041829768333334279194007783957076182032045796493577113947306807280684342309094345699305477776600115362104505029929133231332054441979309437044168035770047052930315015352436925726705493532188005269711267942429698330360576419767278325429381532067718570652942494282835172351936796584105571328994101669980318089779265902275574762408857750790136012838397216808920287699481846733621510852032620679206440110213204496416291223966995959373494111293317838034269689723958042811721808924442942828293775604615614475500511925377414083685708670375588100731992671941502096738606071141598210854452448887316796494954341800293496175844729622839397539137515866790876193221265132423462992699137714667949082530100286628822541529309425143646057300559825243974394736452688019471523189460157993141317377126362602569890301524850607396538347774701354425112034804108084366431234250283682403412350993401613250153168855208727495560661254515769156928610002872505772472059456923068471956303086137715101101574669150093221294528016872486347959268358274635155461159269822549952793634617426964669777027875421020079449654732445968367686323665729517721104072575622438509543579493935729241635238752030018439590885595725357195124565126900000340858188241407633411756653052157329330507106148846917460553799029328984645623675914588330139472726160424249386063152946317169867572208178000480390449748064548149571905663006338038044010371212530484824225469269279891663676020775028763301784867477249296735258276931640501774773152392496492014897471287991505348826395847544362430080731546023935754789716519421899177648007467175051182071865280087459493577866423805843041326560865001438083121517439438115547145514133966508266518895975404483266316305449344104618133917583617959828259215022511203255653483754195048748811835874887004190061227451757817455754281310292776097976111869271677416589212088594148077387982613330875325693868531782728198714039930081239838153545263144779893850312958614874806696228125705872155328422572109742438490910073288815797119632875069829780469487541537322037620844886758963819713082755176142298739109537582009955565340746951410912354286050967130464468465123722140398898845807640311609573307975870100679561437382474429015747706418789866678658545402164886227857097534970840991331766398178920554636639064837405020837900319365553939396486875230092049952534554138405293211783501765153134880190891345552304960333519306074161699010605943499233629412445898099819234128702981507543821430100535547042744406549608546899903187193709082390608505777794411725553728957973825799748589600540436603258227786671799643162504822969572104365759143486197590667514388677792803670545525358922135624016012380507527331249452106753312374665268381350662655382342103969341048892287008455001357445124390261084806168435782670514780126760292189433316186478536072795906490036609978333237470989637662336706368361597132573654574023768001352654257451762667905484988914779376576702805839589455229601664251219472844693740436743096956600805598439480193060877592947448081692115595649611869021252351179444902793806624516996982185451598956808149805917155312894702598017026450612975876475668789711346494500981236005525371563589333917787229075926485526621737381466847424835885058124092120399118020584287668179873460539603383171809621923055338413033031883385235854292221080728483403630635229271636626861505060791089888319353637606504362124693021293131502655698946607307083743597073388617586431743509966989291269010441738209139025131130213592621964462164892432130964063467969058575937880631588368793889756600659354320979100271313737555060328965808921953299325531498378900314185727284700332743005239514720801481394301159023619545077830933359199220355627190104763843776011714791267895514713969743760985208699906962142600155333845309908344127471748552284739551082361134487447708953491323809921432577439129296730891593525580906329186045111745698023804404706179801327281658139189743920881770400543313180953353200154367496718059405871200157828526229432031883236711350414982155319209311670158631601346183258759824559559961073468331951470684455835210104830789759724611155046523954788595686905482988052803173930035407438623842181351242519083488318946178959464492053421719009751525364241142658900797876837162021856724666528504239770395774387012802861476709012071515629589576336255197268193555732079957402754110971847246037527035422099910736604258777299993653310634804058774903179967876195784619388311581228834579082625053404728001464411068672075191323377323934911458553516124407426907929556604649644018997267457443161354319996983174248127853834627002785598320304998688599552147741136250460003235493053449588119113433154255231329029017494883350901993245479851628774802835956779687121848647364437362457130729284932634728841871687398401960350410074833147852378215714492090679762664786153664875189656280642383658626855829931612458892382286116230533814275759152547836608928686308214479017776922662630825220477749152275900863152175383163109308091392990142330212292303368195295085788136818410206994999371358569974295745092986989250962267720990839881293465748698858792973684325840376475482975767388829874163791323024921831475154002421084959814126637305523794084455344063649979385847116900182711302556816394184772329089840260275283042765900601739293334963506842907071482374304785739789196323406562825064513149947068552683819759021760679770420539516971780560045012053777932029274351675552507877889242273032001576168392391291949263575277326038047905271302304650620048548762233467408877473382939967519452321677043462548290375413179039609081418486015465628014032536283673488844567530762203979494490519456259743398735456510164567424941017124168477868302948195288109672571861183058231673004846176371375717951512451199464860403677015002209734667890365095396995631806967699907764062455672887681196971339100118632330327252902005438679172362666011400219895033667375758130834176366013727668778158049791109468494095639979869587252849004156947388497722854169118502127740160633485765483891689885597557326717938957254489421685856853879074940467969674494593341481006388367085138011788051921990456232106882992416031755383856173096013341335483135405521013962532687730190468053703435103184889147204583225848168527559194081255868285171341155202209367929784144340130762290818138300265252447349506870675125565578465814722926723384706835541236600852337889646116814895860364752715862893499225160874365987964863433810043415945521741747428455745219230128596263703575057485415690433184774534986139978438030861440591022106232844157095883350501164759208676652040885594109278980137073538696292163277077049907509971296324551321473435639836622693311975900019998089107971909535181864775772461546838556423295886349825627970745002793088793715393205804222505118834660771503382607299491193117254128673720911747994302941547237772818288402209110812520647690190952059749987576558832353297455901583882777410792714993762895399207385961022949702806989306525340918787405294314936367095426247328057067615580733575696875217669939472091037360151416776265894031752743245232592013717291404788285924335725602035702131162502595329215209878659918733994251572142816229129256327952122456098214295802796589658913767484854950137393274809590507063200531285783102432172321381596072461498059968271848485725335875958314884168331061819442869604215858267693873076071019954227632321625880493273107667092139204284638665449894966472390160186448070885037121388475054851992352006608971121832818180396145853489606915229343526687236573752567511634969271135585786407480792331821481994252618677053465059160461970465768900129512745571861263006531075060219974109664833937498870091377051373893684156996920171096402698235301461413639155795592719913166628435420830694077896287693459310671475034001357805977149848346276715430707822563679652882369912895242717709192295646825525200025716142543087799438521244184734487375786895185914845145652202999879983570573917514641526597124909162588632567475190121046244789087334825749264278973567415388371717814815673528517239224156160201903747574618482701190865557373831299631272047767908339367341284331862232134623141600039566640655733256811201146846414637171967594733213071809348537646980844287214106987629819416599014549598091823355290068511432939375679283202843698535020722852475077224127996305214094559665894357373002951332814998757803208188768715004465691118501468740453742957206768590994886783654399790852084540640074189842362845476904747995234232673507703037115759689253420079511749705481240179351854738367850754731852802235147425780749119107112747183207377423988286529418935602689616977423210712557413824184006568201144305055230510405070090082626536032773670337187347522140643111002919637433907878639247375657368761867019856504662706141154463005208849496984214463657419821978864816278217885957474574876536764378468555017636563205557650484652012366395196463533936372261175777211498162141201914526427772636830484333560765721244095084743315672062075182814751405688962761805270961664565559223486636420894337406837691830125239276971085272867614462691500323633547134297051616261774147620450704290015881254462644195997463895606457713158956362660112433867240578826930800955202386901400265637014159173418189296401659938945934334687433295269760192298464566723498872575729193438803759606320980994965109656481085064145395812941848343625630907878412965332833130629731447544218673044716375215368448600309220122902992443900601893546988143257535170755511048904158493354753433594373720003424981979704117757688662291377422520684877270958186083536750579780012461814751478473744309965907499270478933275322008715521911465354990907026983109664559945320795339325101817961038838149434197510875481621390309831643838763032864967373059369800930483210371154438512296941637592599971171292443342841934004122749987524035167816927496230296929019065450074959885006587825809358376589474673288937045347462792277182424804535642720521292290325425691382202819004877166656618480706239731973679837563940770614229836443231544692682298700804700451213168886305859733777435752213992452867628368282891555907156213065707697626404851154352295530323443725060642796484448942655227482321821402191384452061137205318919707710333277050428704042344956004843857854193224987702442666223640120911811649707921388543099639244449138630100032804503767614397551997990001575876941025791686811015503773369312254273959233664091780395694821142409324170318386445433325651970828382089281029328529819124060200935115750396605237292639154160588653200656074778173333201745980325144411296117395236971381617542953949631660773995294001027568333123991128338589737260649652269147641794621488133888682613665120455216307852978239639884474256725435489282049924655624486862694164577188392750525459081059461381938466618116284405936215432142445434775456027489506894258300564875751611724538726180259849447094992007723649541143022856007652659114787048760649315430924927109262865969311309043033933749337989120671518639897689314872171278035957665414113240675029639718648696981075600795455611986664262853605642595431146392440323544802681673408069795394293600316303244070771251250368965758659620773192947090317650378980158541549482644012225984991067350518783931762857205281929113821146206138420512343400269305915458298337637663479361731552549379189195759427654811415375424400263076988428596676686474775893588186560787947357163733170399712294511035036442022398782155761662125437172481718107501821719920149353262727006580703611857760232592946081856664985346291937580742680424413775941158605620286195016474717963497807778206954800513755601884579011438762248891672465667115774920585514031442322886349412247266396291183859799467048705738967577438926107727945476695431288483931115161677916789525017203208979538725409678602260361969129476049796572494268627797024219630752458715050644469733089740518735240957615769906707892221775124327766664696071124281027318877728495819913372005195265181864839784220330126012638504623373267311615314789943273227157402187641823920339337201687027198531753312527006653445148219213035973296294974563171448005528615320084454752302369505962963865417967771548324122746265013470880596487419609882360671152079333246250094097081860871043092244748388090432797674896010796129129308873807076288816940935487948826176311954043387265174780675835954128141061365585830986394182555762571739014946107362297806096835629011555713359662916322790722629985913325357583164386038930894932462747381280307342392143419340134088254674347458355412480476173694185881180032206747537242556362012183625739891616956091660592745619205518564549395841828965753766912723444170437034375773028451868575349029807856248391241956875939813406625165847134842122950460320162787613916198679274877196046387985967970991988664930240830254120144026999227666380837467486802332174016992888835672647511241791431518204053342474521675620192924826929848474600801502894400481287703592912234558696795522335988819670280658560120362424428197270546581344196741239156424388147481292583950304415535087642609843626495585096659023637457283014520367525360232972287444115806130311056986602160552257220629276343646207203157653703169285205511251955918887128404278434114496916239028279939514893195031764236004712408051345836415680789141781675266633334205323615854135916010629670559569149017612014752498007312678095820033932559149135850410443833254530668832395799765468321920923213005776039693370904788085372075360702644087943480235145814373714470472453797330844738324541603734672211370767393356260415678627314960536843142868955415381809976490546698718253214659883590077052652501719461606795768213372919435013406829558824838144671959539921855584614540938349813031909093101206015002745228976237604854094139245508227637605987177537869654330534212926212752541104124133564022330726136043753470182237891651502257960907562238982799102734869075040470046166039749495347530726099227799813557891075088145553221841837066974630675835101739143989361926367275495204356652118622376635221909353266130535089640339293260182428277753477946840452686191698819732178866098447203828125367229191133106086827432847229326126210254561200771077544601667035528066028159041601523924022720299881369467503778324200381338927622013690104575095146737565577042644580544857288340614051368284877768211808642230360598553594281580931720559551477877396515518579843782286522068184356954615550244015151452115744177660274255163105551191587079572326805487140970174488408800881732578487514677569591861688442222327548667536276466142720136209253924440346345761833217225673613884412240379380876272288659265849478583294946510039027346539020163977342110549660476234502314866047653390874863136195972375747882285451894113358443670527848188574666610278751096480925910785274949686731250781888672580636775521781664651276011691498318618214351064656807038414808474751161250796974949034456459439900661551802362594825439941994796071836176848006957609673077960944883129961561564268381984300617423145501705199113944741595430813119676300652047666492818270291527312661628559809363607235204393312647041506668557449723675293465142975937731678205490713743338171394982218149855506035790104052015921660481676020688262866720121727842545569444229637431174059454803846570449336689448653108234933737462198745673135153652332316359104805457252607874727945204172185444980813156285210832828583363570577415145298981909697219220861351780736220406532224592871344985420907807945965592405388364553749476356472320560249037065038254705858967533807876724121823936610017022738841505624003279462027601992220911174287303925847851382717975711719625240317911821843059698041710589772065339768412497190162301777185712341640358388893137956695054728497530343893500437659841719967124952220841311308023049557151776174138455532905666948756543658570441000115223199283288547332452387286148082127874014128231500072437838684570247189826101861683001564948518805867190204519458156194878226694091439929168936791242695244750729528633123810915438034688416279077405172348164676107316225455389332820648957164935615222590063217888642053853768427700959800917335938047533419130039027831790225339322768267354125627747920095410640097306371484241697422375187701557312209808917498756791374572069849446526583671943400171596673720779804572770931453899669393627312403668222307040949551270415569350610223598796726659311811739987263742573226103668006105738491773600020936663647317673659675710535325085981108406633976503742260405118959902905606150798203747108109410276291358669904329611830010108384163440474844767174798058093204760412023835541397805128266630350883358199039002836986418685294989810593913831406731977773565155103787456671682888567385497383718880231762431968857519048361523663812621991461249943371452218849710136263164226216786722521972721037055626515139909674596938793736374288626477395194493264910440193809454703538984146963275255172929170289020668626386849797287832698158848374008330628169480349471046919404057322207593146086013293596745659394012172545647057045197397070760775970414527976260628414690775766986131189617129598693028339488189383372958988516418846565646267002522352016927694219207054607816998789335007854398536455220109920869237918280650499092384738608325745526217763364938603294342545609037620605483347875298564440477355425597748360533565630814927093563110479241969289250921737023285057069141165385787851523777864241993385835909197077153626941067483004214154573256522015296478653878423825571084152904939216716585247529595032263467517066287475503603950311615612476881823227895038655555761356650735703116370520338646862593108001063822361121895663032719225993019289216046647738416020114937754099104658965175141175241776601632994781449421953906350233572318628716879272368890777067371542438435008296563360270517300435012455902303841398761202510907325293867051215542218310540389255759635819659278578536289251476224517052557764010131391576607829348420561299261274881261424219866688359460132023691831340612996013396428883157253218435479358655266944057593121254983717804882739088081658883481900418595304283229771681010510628562278659996278056592623894290188349344841965531386146876979427247430217626795382862542439183623204284722056137446792093681600240476780079047585764534569276194821532532254151362581331020017231344423839726734775387145215478307263089171718755819868955953330957677362066772404666230270941416637560167936501579150014012601802721511242242232634842737651956831395149291323427868422372401016054745511607636946186969267076387719146608647638657223142825646470079824447277420480829893098091040830533160064029614778367419538771066710234524710715328963626476809018655798008519691524653952090966893837011324233884346791966670085004065302463202154463056963893231401440618428593833298029607617796629998710033034073694524983160741616237562367426828928938023642573509659091127011788598619329711676330936092172632567789246247629970820195657001010254827855115360537781939581233272125104716254121523559266184110980997870902957640722239033366923659509835834018542983841822617168133158069311482160304587185171547600139934116798929737896188265500700744125710867113799613534282962432649873940911826928656257093317756453788371683654573458551003014509484967707443186610000294558880801131866277142563064877976689980984029226896262777778847408073124903012266912276269486785446341314742556440306924998807543320849317972087511086951000040505872780786915612985132611752796897368726791217291370622412690037343064307711154128541917732453952789510005098679537754816375093847662587508607973898994336582208132938969894275972996126094257251852926786248759613420603895601050214744711907562398404514992300181825877550115779168888237261624044419562636008412418367466110610176441553058238382791435525238378570195390611158255539341602891101904921668887352253824145387940851414866069076229058597302561270267154273229616356860238081453882054636061049768767872553199209707347353480500884224778579345989853056618586497299962226713891073653320251846030236755382222059277992568398138756061248992036211775070321602616058115898888115450698587704853547527153513028202157624647787522149373363881841173201245683688917144678647240036178936511032153317208780830756936716226472514775189435679010972312301562783363071799325958272617855571097563508141242838419928183806527503056505452488099390600092577540502878513869301380662700409249425772232469933107655053527799057911853435536915568901060611245197317328604782454676153371253014183603008813584533255682927193494988700789603420407918519583608489217099614278039469024806660128304448355312951706328882575646958709940091183674415656314043495586952286168595082234374595044598774101273655853860688266769348058006160714002348793151646360814570389544731293994907686063710921323462793414034452369341851745943949861215589257146785986532190485161692736348545029477218581832512148485993483257472512988979240205860839623022585310621007752577374357756475069909318521996708942803428709236628569245312251792461894729830129363429290264881199256794905627083102510572790147161350911019357848963067679515692603492893916625770325027626409170999261591870425339235861720507969950026938622060617550145966322086094736814173832245626057009387143095936808433943683697915387978900571804087721464260325133052195024545524463969453443046256522236932217748504554715312413064722288308751866063502079281211281626756833434277089478205537034015181999099189812601096245888240528152872434738046802970333774775112325943962041221672484689171865663261764192616936051530581044294898973204376637170682005058463117677749232243436355672804053200335573832580301914577698391927607633032766793077436926025885772199811887972136941292335865152290979926731506487648050231699645902894765442794612501342374933599014720461244557248650386210111547277538798098207909986503345313950503920605865976702675862715383277226793084410523010493065953001798468805056536141648842786397612572013010331168782704907981652202186055365153119082633193635423459880026407441264062525384290655730366511569557073056384784779962546748145830596907203296262347359401385162780723852851459743141991164992400109554499127569454132979403872309126721078619333400728548656963397571255592766938277087797537900107923422026159026639089170191439803362285816616550789335699762762653723048119133278944488257053205978498322577165657560283785313015692367209032204887570246636871915507048158192005177517538939124696202120992501476634130918828276660856414288238447478945196508145863339800102164773779727989550412834483880202395965274839834162299373528774769929026959677866598801553473784492561264660417332406219248945068710738687599378163970720831605056644060121345914990975210612594348322266557775044189164420033261770585857640956187637780202599099328485541962368192528708723303610585357144574901504108304042600662035674256001064769596776676292471758894549176680251365913907856443528935692136689313356338692882890030576548806216506792604580147073521983278403772892526100411394408390943559509753143486421214905970092693970052179656786276194380343137488414491644855461617740184590240128909247268984788594933433552840602319112159962066753905642629786498631761050027106841323882067365187277635142031810477867082727729483206653796952050163352662336534000415950447890308382686713754735544172420623710692416478539912328121508103865430628991287319707447355348149237749813878855254780483621546378077534401913985954922868843549582067178974208502282826281478108154612750121111950852192314167869917801922259733195376225420958062936034282838096020538610222697590156894811106492369036094536443120781903854296526004394817899205586457818776342312318267815173539939582346970857333075300633036803544022338297981104519421500880721584273983135656343317367684473065536227065807506041837354696513826608491208448494453188332971918764474255729862464232469373276636249568525344113019537780438920239762737705499717164560238808535026038812378717115733534806040667000196784415472040597983517711542794711285502111082129307912597787105442576278450527914993028284305901060266004709478560676180563053246937007679035366423322456968455234651349957966208316914381471308511467322961212609900590617283267417902549777895962230732165067496658356056100440034247241106118968967891027266080991646583079532580016392906872697725995200295433165758177612018044555096234003084678953562722600200356143605391623662507116396075944640539445144774818450181891169037221732960487039432290648689215680218821887502598996802409764458865147455486673615330825952339504788856726651151878317807757186679412341223839269746557516604637062767801190633338887151031192094683228389749010467429040756142585957810998551078343202123070466917897559752044026977450673222425086195197180022807475938835737912694403985583088738251961894324925432034818791016942974262169857674821816172672528839282743440134982763358040771168132685920444983152494095237668462214316108268063222794921435901805334581699626795351116282027901431674932874029896283032192279166032089283216430006958573571746660043595195440303595139080890076771534565008230313324755045523144016512124661947647690726982713917314682196516196465533753336835093711949117186844754006988957964140512869458237859227361163327464449099522647823058088036362276211372105401857838734281836046693043961799949139441484330362317716580601016478046802470201004026436650211820172520918179849686125648029270641756936963396724603969949592740478568556606091573808191011054214664075713160366384517534347613287451236550339160268406630552153580091027628330252148049525261078302605030259102068608649894130143571053633195129505535499967919148776634943953980102044871131301031611880172835879051473400297171035734090858609826093246540454046544402823898098201715309941819758987246659057115494926048381141834925159073042249622328520871757178441430014950199222263114858444452261457397950214645336767285142085100718573002363988483862012269080177351835227506966884887426953603411462407110165223903846759140466577644221120473536068872311351480065861440794535327623852944464951324451576609895124044588577380715221613571105852896938319599857990705629485388704576693765583269113419737638651435693996056235911841211748213909457824250883528477407436220092727248065194382224336494355983322469117031578532895794867405451297289342057957324510329786431791326471504477825614769586191108218975762527988599643823548725170456458964283769938280704101416764270744114703385401316935328202021908334981885776950626100029243762378350618189288007442582959288589750771067594308339397245735063660758495576373798871408991795698245500222695689687051225442459699646938561080951195942041958580673668361003938722895359671000613981366766578976473528580176343481181440913348900256336534766955835119044794039584492945030395612888261129690710672266344300984234115140622049878777235057354936527801939729849738260220701351999722141108394192186660074932182496004854716112141168519239179020158360153674971660155359775252016615060718322999983001802694835170629896657508624112822592703440267739751228268019327035663068375093240757987232141667717185419819076785752217458735365907396156515577293593115068166171219495684410680912229047010230181858864477152773557735756085144346977380410381011770313023892804507907090756943959671064142201590922798257431507252460867778040600282693301584130653551286487202709860526045338679819627025332209407059103991671848859762247458154726211917581105841470744357552056248495078690166788484476377029716103148125898071421333648621731617564830655813958257955359731112558024735808454589046337988492372346219362915639562422096649702606527040421086491211495185920710412382452755860753293339713982350874944209080052230982413938517724162251938462075737980195972089548580859191359121685828632081680055113091239375703432286717731236798320440256100395215197002632251773344956666598766427888743457891961783600734351222432360849927117657235135792330079149296862041667781270368605212555233812336309173113864925888883507449101041423245683663710522708336738818139679009748187602956055090196107412469102690089410111334888827145270271063207771199105929058514171781046245820868042001594117841711126569496367315609861318068664980903301050516094954501756899544341193888579051996737164297488786940881485532440366702226079034871812217560975644027464608861978011172314804086254061627381322447369842545469380857019632294720457777395151691182473457381017511949662145784227388126067277025237595914827593490690003153568416818453120657086949558199609471195999511561414509223231099024180868905766355990636710466113345819623686808609820311920075901062521013710569722132929905908476014540479142031239013465657108304751548698312768104900696693239613742259296171816926858111917437345316881031458869138062068336807674598362355466580729308342728017610813470671003301322499717269756911478619208823193013531665678359377341257373020391912060045911005780218893368517173369955363869974205358354511570444620991615276684487709491882030168880014751897700100014675604260152818165974233936794292931707556138430393940900778327514573739117150979758836738457590334048484619177319767013726133007606741120544762790815644100712581836755496557808372987508364685543480465651105434307244094045575540321397233969580684741730322201642205153761923231618803400979799047455363057476257385056383090134419121525766580851296561959310240625954214129117126320665449015495187596012416019140720160384526253102725676402728805031011344052643353182169493555832143443886379524151680112025203590413184564904704762513024624479729509833020374387970961146838314905145675265075234250007677380032095728234619870874288381993209187079904053066489205356642425099679057754138094728485843575389032167781323697645889667126372341044083223450333316290960750260393495160844002087387224445266091804303428530210881646516734469924634737077868262687015126434250644382024602288017109566540150068748492177927776224362932744329933615738404082378327661011992556870363570706022800759745408388481594579898075651869671151630048433105066882131609159715390287286072889177152653271708397888234742602127055826875362750710586920122663459403287481142178266670998850376052873719982264255654949275808454999958940638292766500182310170345836704468855631881461870772548035134170002485905728327511275106454926862694687493366608523045827534291291097354569315936717733274334646960778435698927266351928867948005516683894793882696658946972569435525644178867266380308665304183020404499959080751142922492591436405913136056326543122246209982602967019876534326235940227444323792799529866669482830559803186949532957516635146948742681442818581905062841574610353650801517118143558943053134124148875661513105828461363836677161064842265635241138983946980861900639208172144254945471801711201794300464439863054449618227302871584368127947479360757842428211299618173268912409415463568353853858984651882171085406788542880258598788683696573590175511001116568995723955691709468093178274521773681427284751779628001386145330039651753416352129361730972189155023061306675056244694921759626820118264723574647768728132588950523727893880182591762719303589416349389025196762735949099632976028150208010242626170844951527225508331842071045661249963484475881717021731525822871848892009457430626383922501216279881374620720261455780686851621181528167764021469752900142811103588432686478959491967044820855427779975348946037723698606952226015158088854761120800639593390327496478215253269668487449754200408736099883653316729362840927455015973012655741606896790792965231287331383924805889354842677245290845026945611319454750471808680247186631662652692035747063683810626829764435338098745945114520993937438138218126145297354598884918865084984899026326288945586196827124786371515576646951375122333575326634414776203802600479938776104538792174133915429939182070274548487085367250011927353548940578984037485377019708879188106337587902641210379985233230946825964957852003636197298212630284165160432391905002198852364006536392217386568700431278317839523884034048768850390869852436464097274311669227889479550298887044595374545614793858761867678746625705266355256417674943340465407696892369252878044837030781785522712486146225182167837507559043293897000112785928095789751341103092454307437142857648435883085435881354811005321986154354949308375198891459851323694620506962123119119375992703185911583525268636807178063927774052628876167513678971592949299676717797547873746043969735047629897803349241034257503340518206335618277349278408958216755165251383123386566732659990185908732251964607810711428169939641183533053431230953049267796477484039999227951499373446081983169535922903630962231766437946924893848667262012270494926169901328384278060031473523870932461788726381114194318084458071480252148425302626234478775970672515519983337201515089173731892956773901374372228661577381108319233543089925579012359660667745878203702981711615511237813010195577490602248554180660239558201335866676544254112621416568482301183434523692189660895201522748703703647944424794343121749525660041317114576734108319418258277559042851144544979031347298745360512248308674639870586833801056529781942850865508726066574897341774769286319830844034561875889191181128537338660733722773525213138841829355358989969837709659117919760096818800904492570973349517377679095109840905680960792930147491578364466046870648564242603457808839809472424279757732041859439016483314861495232078910198077509323762112967029145670750018078788095200165639400871981033124199161892002552110417630646762782090079263421011657666806487234991927976752981269887526378484861548940574243341252839208951989056872871807138715098500354261841646922731947929469740431436150140920748607048813266837212048422885881659876945209568166123571403244089257216688123423046414356740089027938410468997943866329422905174213038516718723350722047116989546760320409410123286830228708891672811938900117269485917763617476723915936383621063511537202253181508977340836924783774241776407533665857864483830069465101040190490006606875056283685169375065767589593043157765196118336986381388263743733765799421584865248090911678396702916930680690208928756156602273509802880558440241251675990276656155941382902673442908228241301142791753499490380612991947578305833447277155230593032984557444186288552980602184341838295832668409423476998630408792209182456427362057610335937971241677653472918295835244088608152783194403659346060305974855828753229116566779736471889263958178742499119928359103641373381612814363381262420433214926739156638097667787141766429739003548528944713811030396941751423174183262911498836470136797977189918243493943356043649060993885081479256253805877068813569637390801128212426634906086895042708385055086879769467903020360095585532461748825587057071221017553018635305772194780519005815691452303889076601051780572583473253958691807522893546826421290899023758371360961903181734026528469158483904284694815914601414782271628918442197204208667947317567190535405471786266333167653970616973634838919952726993004419614479499860103408359329100821912527255273079666539156621947772448457880323656250713529993772670338940359510036751689046641961489530822445439149583657284562157889892424761270614341894214697004055245069996226429978769924149759521963194285892860802459045807037241099697810958766904048412469942048739801799411902362385920995009639871844677668257559438536381664948363622619564234002608956004182376565606682232515308928122757125659663962053024868326822678762297377674901136865591038763361825153567453362502177690425142371359223396347823941841136405146117357016299341619861685066284238544647355651270540231317873516596413495469212302718304936354283433070339504710489527785364164638893651693528525126295015788264829418242767261694793399582727067822702920327125014109765870329125057913712504878928019069100701955129416247482360483544370824595631419130381983862082543383174258933625568847092317022820672679153544281271199661522374478568684447885662971783313883925883423274263118165812990583322983350764910122026309422866547594344472794009438886191146292967302527305476989924767748992700863677008751599890741488522857277681937904170578014295748375566810316755043519513598268289120951591042790618469099333929656251588998521155915074767943467786496035570919350875396574515028431902858761694068634804023660246894159487531704122659106452769520526340677081249359375135513370384565124582378288785219639310601878351237990231815285042101067939066888582429778843814680949625134894085925834685503004800090593588690199184178857651451056303353804868687673787894270220309457144439400104718190888475448712148908312291660978302171452064198362283907076183498635673006083498088776493464848501143774745587834215788183073463610074921398092811614605109614980179695570806382574350196806458243301396513510991010259550687055608172142331104876527672761589810565024387666280115704397754367778482875330724038015270975003277079933886550669638371654319066704166273499128327609823043713996445294156814446481105127840071560346824389791908097357305810536933705287275685576557255841883672330586127263088425220142610416125724827475077336130881517074187153047730377577321329773578404209261573541065473207550107530656621278534754564784579555290072258184313455898494757510989152573058227540386932615022288115099982551125741972941129336618155502099596120037378183806776375220475743381815996515400666362053309899842315391281409049736144719934957620718231655197138047163251587558424894906541461667451015301388455546244281327003633308264131667143486543410286449931511938752362051990286666507850831031400035286412961118959521801230985177575669601431167445280269177299026941609380771211203701582186961138625519856645162380513393698276710986986034642622685698171073770610539196819964334759398434580549813473982122623466642083627465486788461733692144089520369062242315354194788488239750006465696310975000428526016745583692664079653572289837399305249258675499765736186540948611195465586127324905056992366643144642480081651008782553889845712044783182991909287381720543713729024029883540471879433302185075009029733768415910682989898011275905481095574938281869965362770308896243271727659871670185730088089492456333785473680244669674321978419364578597628248229019772497246863512203995694392119497397014562072178362823659668595262182832012300531575688153584936827396401290933948142732664641807222798467391213929879821576864007006696770562728607420608400998867655185791565609038894155911060815173221116148662961119925727105821392889406624733845790617291324844764439803805546156841969211383593952279008572861402396097796808208334555411331545715486541401970757463491936264591464364782675387069906810764780525045315692211900843925263284952955550995243679421124629835981290570349187150986879091605626393989817601505088183934945962932722570548904792633800801638110697787127819883695512640883622640395184538567302998894758581981655734099247505609893346140582471922301828385570682073526229843087210110916997949044914961193356455775875909886636068518190929974501163364282004149477563975401378834044659652430758671078390870086199070480418236215673953398282418632072394323961362710068093545041740191003910692874335096312817345403766615209490154160178208110644486156356125248799320681841964753954206533256619533151856248915352233053523311757964296143973284780294673962553087940723987108485279197356736348655423168125667200554051148027538826523151524867856232845968708106855778585836216190108768790550204328914231311106995307375384210251461920580836057636549351302703401716909955723231057914290118839743626271612586365611644294230175522372173818214623260550220869523688685053790820980295223724276272870673731549525229600584598296371934127927216407794135952705748549547119933790902821025510216874054153531413157038442269929108869100566639729314270449408796433638592018938295808769605563939683560182507614155866998629319738920524561018298702142964902658895117118248157216710701304729252578701968837279679922471862892059368079427709741430814395386896330496984008819586320972041514335434271717336179520200315569951250329304573828988463392964623681035459361229026158663501746215679367700072958076641572312970803283640834932319093336781605694265732084887945518887045385079808704827867452942555213950466794598972104317873815611872783906504992733105286083900937847737735741477853157338463111224352959682009279475389623265189732735992165185986629095122121924464052384312608842887222821107782376085132322747171559100127913568774719957432528849964258753100493554565288883126018221626737761778069349011081042281576926663269992864326762327815039514113162907832376914533831406997766585418322228026622580106933350867548122926345008226547723754592340567796199017882546781176737735812911121929156740337023785236797244441714054763781071501054232834836314387766680931192664991737579834494984238166822546893695722951141821537931762520765332233182284699226299033322717682672700105865061065746776857552906697971177102217254365173291570716436134560852467976539692553430463244866275893227507967335105951922299984995744254824301960545497836102317570346660257655838029226934514453095108273801856678335021404191252642343457393277865292266450287660259869602334149577291135579474631097729534706741351555900368574384468668643087922936169202360965430204694981346732721749029469814629551815448135010207414924128517308076873171591350716301142998952200261865953668928549650893151972637146888539808038461905437031872437466340891381887023210668529305666683783035630694806932640615220130835948489132753705004354757820367200406247692949627962666414950759338254247911194536253110158068382733789900679397181031662001707291203905197349653017116620002738880575075295982053199970306338998680400531402900442396450233439647579577171617196017679476574345780553996209082512799081674857861605995574754013138704529562718386176913870635984200079424297199658840100592270485612847304424043443738471666668788863491151308971717958404879361476625895880625421045108914665715784420609561596345274296884905603874534483082498869655116439577066327711574649489052855419866516509055794247826403078779405466240351434235329029160350696001878487831001716889448446878294771689389151744676129052529194071020856058435534231652448920441338514505659220490087626981743302110114986506335998721868122550689855968683867195697495222526345310003887410120352655372965427364119382160512142189248504641183175469295813863203970286828405094066246654435681757000881373561688785086340589842915938724787531116414741606763941937968972975036333538634358906953691284626539880737323126851440462906682578747778206868233597739507926708601203643801658336060000279224993782032823466710727097908535254865338091344691739550308842420301175513650707997966731476397200744321310110316458949677176128487165105372409518531969647441094896873588563202564857545596295909845958868699790656391295600579867880661557758151107768938095077291047026614454618819446639928347648046985436617164389221988235328625650512412439485276755269395350238806461158380169175724350203601113573361498095909608518427904878457591075247583534225389652316339642416881833216172448911728889079949888268112121714540315131680768755024597987679079151612470733475592252939804061269246559376406628955099311661566882969509801193738984046320970976904014524772037515014525143040060225067311187109263427151615746188239445536068004992558909966698614683402791632573454214791001633444762974609847144024371582057326468541189170297850291526624831231963717595453366598970710026851656218367809526839809964904476870750508297822645703942753128108198305490930737854287561411796773809188942142006903816158572869732308476691166089840660448011028081561542443271776774834487948283729752616745163662219352459390011612122421098177712202681859582334260379635856793043298351331647632491799416234157430132568243676476368624911098387490304628220509792279391646023128190698281313596101643054249118319592118106646333800353307511833975041001012836659457672067871960651223906590542033169892746829315984261614784471151381089953673525207736406953225048537550955387840170156273984584427553775677376940310121101071192096543906557816711493136276393802085344459745424694433609099115154650546039738442702724502200685210249556718888755117793796380535961122923941244016273720696440857703048441191981490587826966996716481825374833585248333674360033197755775435533882786912636367235152077664398146252508785261942389991433927992226137089125634537851624431233905950557148004441864555607950204928972391828131863934818083539691357205976049682989135313737572876266587254371682949036920213782446087096445065207320966867214022404243101475236077545772042116898990018393228327834731283998400095848833795194966050897769309100652489514047355969145804243479727635967436922690654506184569891742526043464054475810751464018472723409328309971753578224320079809218602315838933345928963556341634600821982485399188796096098756475098215068659276372300611920377954930193557800701704746214938102296567983814214124163328494632541238710431688017256936611059165786394160214005670304668169925996390647916375850960602548364668235083707512129454333160657054158322867821218994755266731746283596600581012255033185761377522631852582860943061293491564171284758199108362701340907397725014980777841556934385634871368314438654814271328229697349322562391054315586914760271904241431221159168246115022905614511101509441981909707472648548747487703710024340451137331105252644753584770500880186620726343493246346315123512812368578140966631907325428993108615896488088817312298215814038197925751664641468258100605633307059113818709886888409398761861320313579525019372795814918003034303701696503906390504667550078384252418323763752371488740918327951086344428023778278984473862317213766930148080471348576322522777114161629584004860987822041551176616652400329999121417892029559776406035166305761554456506654534749263979065526996733319345995439156963709306593720288436353040069830696606398298407430329748082413896179334759513832912778929779666481254590419970657930302393146609103151817449794969480068977772632427643342422335896012986179623247313606799806717199133648120255445247122828094820924392283824470622108643563029151071841580194728220362085599738116215245586123086020351577975277616757267537306117346686093272370590328725545532613579326848152986488975603185582702874602394198365284019073135737227534720225625952223253836863499062197880373052901746524896984619029386778082900367561498622631675213587124299445365321524742500082284009269867695344844759554981652383828261283715183124515910763604663021653643741112026423441979345243102295095784948297297079745500766288640782322407322011118142503771549367058614856917370504362356033603830276091469855095752155769864515104927223312922483522521462571742486049526436128630251422152417699173159940711248827949414982291011015315546006118404089437056922030074229266392712327469703904475367034616946413930585000731685095925924652652071016606162090679674301779117680879807682874933420267405582982366028353923169157619780933468728479041741875901950096165928191998473636984313885690647171335201279263092290905486368983665030599685786996216883884016326427139763316967599907224844126360722361346838170846624795822927040915322882885663220205303833336079555795217017233803912789643020215457986497334034189953360035930794391949415834314908837306840529856979156289098748277563344500221434974453130233259887934559367937030937599691349723381657272677605514989098587399001242426032001175174214964774403887007064428448872031591129387985813286828326855385677231436995024986740278911839688428808051423857306544529680754522324632694327274204735304689887400212951445125918611870269606085094306085338777961577545702085941061028556974055441838384136232220122363200275340581734875913344193794321152982965142967688346191827354940275980671149873970868462973571893582861554378681624445445849086760815461784320968472238667828030440789703065756751479230656711805060759591183178345233393969019943758711234694220386352686899170351268519890634041069231913334633788838355356272567828549821564466804081039514506481207986404628042523924398999140431526170243598498270052239261114728111728687375447961831456420497572655440962776849260481802130713929903188686215342424149733520340867818465692359721114486595479216976430181730580864296483544755708139718924562298988624176557543447055549137129602835639582677962050253389818394209411047967275597714893277292887648315015892043818001631332915701379266630661409582822181544368711665092099185768343882488011636736192041598821017094293947486939284468169156010994331604354228829307373502240184379035886940013589159496956915378070246124356742450205137011838900124391094214821246045446036760063904241013083252582142814084887425371221437310994222330095556763774828800217492969870668838914613729687447199714588930810100774362588315071509749813091475990878103321293780397665672889393375537666537807924988025688896038600134967203273006334034669471012116775239781416567426558199681621913656696497931019236394766644563991989370111008780766394387404330964400284921085927648661588236370978968879857958919773729867296338262256165440723843948425864197567226264735551009488840018778311875781849766127250499043826875462068124624620095965486669938307968652793105641345072798077589586191498691634325598610370968226271886334304872930912685870023702123782849154287609494124705610697008992308630585866008237823926652117046864307937522499917028979382249218156377626558539904363430118911256067722881826795360765105008479128507395548981681179089725174416356510046132987527736150740882451261868230690884453157544850110248400731068741739288427773036270789247492516205064253771491353300798045772134390615856133554263377407151513363280380075087093774031486738784404331658525192425201765578503824602705694360212373831164928754411297430997945980562137948122248216175984692902838728239657321579269729748800623192797644916152927534154377136018596406946216943197743855999293551765680382011899389418753145575984684243932852370807860372598420839834458954914843941733373215338544004843035712696325463898033062499665324664894100524344017101270384379733668379434494481684157394082225237431832449533762583620674554155017908482140763629592048904290020736980701211346858343365111109393165513424199155508599857298307738087297016838199292848924846478570524574348261500532615628847187031440415178497433584368168355582485207303257225539758408774097478615738719439914138331492995575898067771122411101872229284845506246264630548273840635892829187799615911552829274824029492104024888081247936552507002316930263256736707820605765852565894482797847026318859743719909142318646038041435491484386486715152882179401818068709107753505473091813671451709862748000540877877943377460166373410840192778937850360254223599092532895176916736322547982464079538590550718712416053897189864609118554797924860063064242023709980005964143420455808690925925901408354746417470471883245861978711443647040585643700955673911136096718615212723265447851788197861468478346828487978618842682591874302591389086271358058096178966107756745197990100024685057177682861764603749064457070856140143819477802734265541818504820342578617780703427051920302014760173240258477493371396243012327926396922575220511611510030957294818350265366686678217220382767559722300875619527147142807473742983184806864613842490371955686145007064072835813105000253878647354978712390832111890367566360666996586952508612517524849824520472269075109269126140706872015381945357383998660058739566823089395694908904774931862222919335206949349052625832724655369394697511404022582386581003634783075736504387024316864748707972825397544801018138274278401669182391800944382886150208552692126071122677743444818867961489849593559217503461363774312755920299201923177481437624474271550889682675653530795026704457600169470618551097069889986745240966069410221192061432719440519471081603751369958706508603550495905908285012105665544849114825030634335277116945809202334082886537561586955924624446887482963017701564747092482084234737920639478626263396398134075559460379855075365455999458580261099273206142413802639120732728219305260145166054336050623845505953060383711352267995187849914926938085478290172791042295638385652525366709451999422618383749122946066121072648952483132141822996378056967669017371216303063404525930209700527409845244028272827666537884140758598367469846899470124547611933806064711564812222383035330738100422403065372198378314949275553123891314368763435031128642892974967145689634777061666489585063218340311755024264842917813844937165265552556430131131093681434354100070632896930625375358791915863080813177197780375351307282616995702196731382973461574000229290525043837676645448890590508699386501197816118813994791688837588377856322382739568581766604432598591620040293938356872554687516590234300130263952757403097532820307094844903266338694850177701687679052357532230590817515100851641995145785230272785700134377632238248161189499349223361039926170274902706399104054227702204565887393002593719748816516812669782407573919614880254923939156870856744800776851761421073539092798877351005240273602087565801018765340154441353725773972994502072581362662880388003767807712744202968032338321824282390316332839753697277290726913656359199069877867985743508658782812502067699374531299791272489204840451480007611347845577595219640558301063760645103397635641716726710726602799875396325260940196668914215240362892076526770731993440633394432737718849794679625938866423732643104027188263238608797484279459959987174637534297167783133137900869072351981484197780075625744389812472901684853696936866841706773591644653672105427138736464546715088575886591888128140605993467568063859211051094992086852492892518548998931104414265615344926542519406028140114065690737130069363336205871990206799189765045855642623314131806004279947349276967395779395120234402771690256766570368258911767374633563000019659998672626752287288716577356302158241045994823551691169257298116554711795177867067119429821722320011604830921261098292865005318604149370404096522477524794311352264107854298433371021512329427842452849059894905154192563998454681043864773499054905527156962780727689114609079273845343911303622615470689252897721671385537574726311764067098815604659393094484832045817598842259635959988670551513251905282073039815221617476689876593311089748078100019849901536180543126654971092497925491523902964539248066774577834653719423300998395665527141698231172709396817945409911743887945494654257073900685357342008616567537914545902097815899754401416604516924707431970561592802169321951435826740275305901699682313163168208851529612289633121783169432686752324088080025247687598293286006261576716814748018105974784019360281564161778485674832742858037454925226820495201162234850290138159935175322347468021990868984639376156322768524922224535354355779026270016086640978428590827355050358501252010685570850155272509156139897258178773531447001088707115939184070950768226731432499793344168473193512050090901354349220215334670003853013795814137350449018757411564920186610250019566433910808182805678505787123970848029063739931710988841017236558393283212874055487081376966019458479619480636349255115736518576432810387754393114645320758605368052141777626548901945289804494238563111241192003076921107087711471893629058568056108648295370388362468766210517121979921242343594286195019763866414671552033945803243929466440839058579288508137063607234854035202108386327495854230519087571010287186069367768501205942832233600638313181961687205590883958917763029285110311609768572563717339776925575969376694357118940028121348467202122912602004718024909745239362177614758698896101974216234958892000414777945316382725047559449702543086770416013543520062250666070837246281013237397884757971331783582760346480366142250501597101629589927581437289061101961376603299248526716798060982940922235240360530647436232074291799987352526912307272836638541353830034313898605819518796342425574441500189812970066390462885199481809962487100674433514714914803160333999351389573341612855548533159875371890385573896438439837031085768048675162296166826095591734408443020507121112936125136180202297418099159402985488383663159113148111323997620770585090288840470234690511665393406868557245057334453869665876811103832414432632720347513273279955867201090529263415896694927561181087009614611536676937172374743001563238552811301692222402908186603264797733700289466943273868144270709699783480727431243339450843941614696088371807624344398291866170826118972839196298131162762076324824448268253481467539720699138232753389442525459550649466873723239760486958299966507583740380586619500572469346133233148453049646475395818452339325809089678784265581832816796646673386062060627344705810366132638491134806679589005567176305735824461821902536297995899966496431318193242212658369766926713646869192374695816587283368774626263987815611130142904680056640730435327467824100096979021309088779115957623705798391306555481759244645785105558329042707375434730908725751487858327439965880015315875624598108345155345857421976415294871286187282842044336519706184759431264395856210330695361542877145331825529164255805968013600452180837419363537420704743896333273988739967923023069787282972884813954155733439131506530728076144791901235574587333509889691763481911794185325036415879166987085961885365019320621638853013801987650662800577750282037226673724063175917785269839719802715359005913988335677684224884170197201180679238073354373424137901657653591140578369127183597457152384153912366141728952576890762723711312397146405106657362433122156888622425210083630469192992670836550679636180245039437665322905181453068721685848549276571661241781503332043826734701575708858190609279057161879296022224585781321495960828272529243099753631906672660069581549430229654170612169411182038271494704262710659634925110067514706971340542353580005122364850613425008493347998969311492811066533222927614267665157056077264297314326152865869367535058008326903222836808930664951363987717063423436622773293380533885557166209216797604457002159368447464488938384255895194824900873981166813376466916279801741782286539358164183682302395209149413141897099673707328197698975830913527496279988759562320099773527963265286345027385646927994964202551416902758803651401876599754278736929969740747279204680713680517127644536059283242242234833822554331730670509665804558283302206111973661071911101878504407245346306118519949046420205524509408887423154667737640958128749399301467747886283246190741725051618343271740112087927325353133139016530545274194284749199846648741896496600486106550023303683896001812401468772926834811087059731217820688539794914012196647102206355150467232844756117870062845657020229161196276472439682282970106991793955842878451328754446317756368042634251132701325791595777885646562573572613004695206529068194602405681672180948434107678881749298216433122589008158517417129323518413941041767135833339866497787339544684010841389823236571099520390620248391910853597335398859591062762062455069074690819187448820937287941830975350075795753205032504206484788253460765560602329569293552918169125135505648341777787953198762518082741639012561930925436465696877555132319771617579220775928668415377053895958481023355280896174939131019253877650963691414662408800976205109690154627973057231889661894050834981720759364913081450141371528842071605745973603115628162890388268639635631957317353608650910820167540735479407481638141284886965020662220883794616962134049231119062196875148300261699441728107052057254545000200568599690401948910392838174927664953788596976681271717225783170745426049080999213227673406020340650797794760886838155868634550136974510728350753153214281511927504648876959557170634597753295058334159799189828972099787390896055899801889023624902538659286299968699908314503274006226215192800747127462246724476008815751144139221647207828071075213860382352234245728259982123464197247380953047808015891448955381031657179827191295926763320100400243838902697855823207141774173215934059854378433978394670337613642628147780801974898330049172190927393899477486720790400213897763652184478373712711056681620324455422197201191252861917901857310036558910400117155396751823077295350871195125161997203560112382643526737917794223838582006951227815472873121647455935455933437613981640681410942733691404883202306549356856834807070763118812668581995560760403559999333138678885737530248447188616383865830688268977268805201397179406779659385011980222638632835531362595485332690383205935870508605712031774607220481359686118462436326306977429298305265496978221375785892430588141269296182503769851651105805314331391064985392570215830038479313721337007011392754695881486664666490688454465289924158444765523152027865425160219604002850754190274424710443050201299363261066410003445110752569927156995298965033995077283094599779422936760777277380774013479991389504804620514346849844355826687402124051634471366358807643715631952677811251698872198874833503122955087878786028242826999870947028004299888567755656306916824209796187597046391290945132472525738440002535452271767590161797088825523643589653756679329365987983859243866875022301056317243568697961301841566177641200201686896417425389436864718557389253385341599483798974199192872105253936100788011799887832155607204547709626092333195043758579592738548554786207202956830228648215083414144645906307519610026589039405646493505617283058166246642206520248031558364024525730273011375677338659762697067772813487233879459033129612087022374769607739359922541890969785411646535752274174782026968754207229935327994621507546654668582861864578625047324017016930700616923941582086439103575899387689001167001233073064217362354704379508505474077686789506860457400717394376933870378183285944476515527996740324314179391406492564023311543807715903191756037599884753350956708475950057722382136150245753630689290732774316104759751790162908839583019441460044021289949102310643347726577041303809505126357726267230024370167984931385770340565732460418335646021867165350507560610105336253852353364135482808990961903133955013280179348477424819013547069243377630303853257799248889284059564797036902117835729678624875979692559532434697229900190590974855343389654324182855062758716478588570588612964352658181585740663217912478114376352310394721473818349192242322527009786497005618712683832263688545946423181111876804558186595371221773752372058635125207215901880815870978314726972964194729204424991891709888680917353832687307488690548377043390507316849019252148164579838340235432716480293256072238483657147400682693152349304928827879558777609592307395715553190492715217604657768059418582759386406143002032786369146403321984019101547274903974131410531462056522093257255056016505209120613465642461131673183615221441377230577957242944479681023413434223056685154459496754362022125941760684432916938060622888289090743015770664824264762973792874461963366498793776712124536296685598595365009738245156571249316922757020534136872953567633780956350297198197260503088113853872483854069919266471603066252764245198209724453475665542813913882861143242571611722296738097761605176952598760503558590760315702733716724450546360742587977931869542825411010334341834189047809031873633777579311490279634727331921798630178048937408536318772851016637666411562297795396791033247787114512635952647311432807451087520000242021991866714714556806849065207150192829748008821576239571425694377581665973935268084048272134736969811658094907637502317180499764453018735733568443947803772740112528580918502840333417364235757185743822107354237923825519344735399174725459087800275999572212834237795936118798201562261570059316690691771129397169470827230077285203668781404644121131317010331714596062334140374603333659720031908811778063407975707285046491631117162298629726813301166935404459099360077882658959897525912647333881489248663020231189963042786895158583369293533973265567712659973172970921803469938503171886847282179404802433221146151773037844508283419630406648470534962397085733488515179259413478533100709908432082300856517918704177451431301049551015494043469534854788290011649759700624363302832336655786826315649126682017676406224587683725033522020893621187327881482644390390180127088904254011625784552196398426759177257063521065921414834061917474023600958801541086936053855439271179559858073713879161921195690976861802911367935545399674151727077060351723988001115358735846928911085457752278950129113781221731899730935887612036021912348461107516847937775028676324983369293363052009530537731738969742923906509363152649858216031261364454117112454393836843557316280532022410540319348833081286505027572895380938534496556422044783397287821170172884837658567661347282349770711488087952232812347217946179017370203082089702744288185219537854490091529265463627494382033048917053272407593408223001253661876624739676818267777173062942109857370474516760939510326439715644264592276350888895415353086397270783016070374762366025236218515291966076968872631070139652753033362864767545289137314060933647148324174340464713067113189638423813914716785004180237053616875560240951873699830792770562093858296669003732764648577487456482616174624891134599885552050355184289191488972104964638730553895650241996599663887052938976273709948477557366337806522625357867401788375721053931817184964909695209282947066028992517808915767771549873628664757756650176136671614125302958053158305973887595507182665508849146199164429918566075255703195134860472527765864906394088849235488519789046958739257847147458033211813201419175905718191789807121033115720403741655597039975016208166144619120537398097446286647044602682042726507420796785425501451638280624332906832998371839576695690355941489335559940925815321634843219510067612537325446965926512581352761712925067941861278581333587580216772820164106461360147872253184699156465588191440529712781783601659196409416847768472178247808328611879805497382686835156694018928552039158556317493389913019959146280274922439220789306510229111981259230746986539031966545135759108256158260769570352346313862401866210830180878083094267916492677242935750534465943567319699578694969010875817795498472619001127028032315123528961000221867243400866049919569223859827132972617781495645928672617341444080355922215495977739881440604269465946220780244730710457692017615984676073655825585963554664965344289277395894294691959276043373036319321875454348720066027023802887511699576638026479861269845579124603650368907667433033860276905271817065536729358623503373400693572710574284629142544313404766492957538891170488494209138704608689529736295188375672007554415785929039121646212660745443054686019997342332361691928487218709979559617987487463039789801475704818197174799134429314698759740392177107395169468480116615878732503633640017487505031278909482702482845104955173075269729034710490016449469970509301411140315028803186069576803399334085633032797272183494376974392353793631701608984002833920244316443292596083092862509592005723006621752079528431450969136089803038762530756809002337531827191016318958983705020731467851680978758705411388866508488990234865568340355125630451887974654735365499124454066136126165483551392231745402365328667967478815030196551189061501048915276497765664598173204577906317011246277030991320889996901791573228535303449443778698690070847972565555853715676637798628164270806431815481367284655148043911527851492115430723710504020336307597149101762228492140407005798771878253088485414701713601403129006880470007652743865907064161531005340281062538772950917336537342346750511473202330760320745189750981380890835202937077580247114394033115532119900335361522282211169697061804833895594042793374752809382248684679795262084123761277944248055742038125801412407218811246861654408520717502272045997790304843396686423074382636083468467108138899266735360925705113724294177960308051881672405233771610273707432775790498935933062475386547673403543468585411052011759786108130261484166642567572272890230515049645510890274230761318185894108685417325863101506293957567794623107745690433551824864599095782201671369817717324384099003049845536238384833453510529169637155418386818029009648968402699261007865853974470958711848565138773870897312891814305792825860135245490852705224323880984358672298164509517053512018484349792669463839869698510619548983602646355311653219634450967312075144486384592746789792102131668132769060013281181206437417118025509794950227370135499656880872900473963785586714207604192334997296862959933670845312095180116610486845930509703400288974871529999278623406891532754440071097051998263443094020991899524086855273900269022954716790781822362428667677302276252582695879956812239511988942459495224277145185001893800775463208531549373275548628845336003453949914921845981118144894663581305607026536924446355838087635434995422195394373175102455806774685926196847305545839338546870751982049952179336933489990225549394238101358428449649816281059051417378492906156762097770146027939893808309948876519449931206217773126678458808183436247707580115722576365932657884433259476659477470681333799681250180500583385645732186663171358827520738622211526857479236677896027056173402983005461292962614374383322239972314421059735281038136791593641141898930234014437090621416827064804104255199379403661802681733944569460885674193429053951636092703118238377904115309147845003365004026163209103608073353932959256362321116611951460225378299265397643726533753706030785812380605384973565732800814546620370238672098192422845960299298755465563230336521878559425648957459228334825246543229425930135437595462958470105196540231751534370953131498736295188920388392151114652815037799416457611041153210130096201444970747361466708804354309327628584103787630251591690104605108091628436513367712864686567817400463602684062962887812211969268550886985467177765995005550949141953449209073185712893487003579758097928731160247951757128161004367322080423141520852159128899906700338493155938198581330301848754111742466683278060499353422741695490644980723533997349750013440524649379285814922137996515201812598162173509207701412936721183582901612533844599717440072865761743901874067425109395900221901323282041271438551600638342926866877386310809235502461824450277790544478121717967267000719815601629789954972721191047254702275854301239583361931535827686051953734132969799657439830002140864622643729813216856469585490385145765990365401048879515812406331373538391264158816668821395627156793945024408750889104370703093792027510010199461035616841919074787977982868933188054610306262902807525789951105856805713533758281046480673843523625790741615080476663295869220128898764243779217453498672901175731632937204916536594417479295710106136190992126339072944771987520670875487418631838215074117402780707212895125895396050255148117881152467019895128462631783709210305479602170146694108483328657271300888920002007553497011173527139495728511298190524880532437720127463451272399811338713790932797774560452890361180113960526258709922951728186339325207533698043808722698858862493078556468311925688916247317899875782601133128474209673000093258925912198526745235706678436889528215829757241642949314752851715595716135240460187814412985211605777014781564436597234979100976698952937631152717982334788485274363159727023426432651305453215452030388322335456719800063003105066522997097813081958817254246432172822105010252908872244866600171994672723799692494960878452178044213401331869134695260453864457068352204628788373291543899003055613149355169133004412695759535228109627353868953367250634930160461235081724563823679154060530584531084296664622879090248030391975045393987944975065921927261253033170441917941305776732961135527099777748158070847096890789104959059635544964649227375998036792798893579948593140259271210176207488367872740524686006946539494021013791504391540305702784017180328303271851278919914157405252375913545207625135185399886096657859729837969400026612176350531852210710026771379978183103216660595150717620948999571363765898749527755417931532090739686032235314237775200961990189865037192461750471751157633474156706660687090772641573476721688164300094669746114926608916176247772174063222071833480970277637546392975740220514561438605955967705656538822693376760663333437629788199093874095951352797231333253437550729951829816538374863235661550391099681980665438076866633635668217328498236964342755282414413537402511610004928569511128917629666830324631618155377110572601503441943711753924813516524180111920192509753353042979842782104014511874050120381075075586248416060310419806859087079313794474513919424773774310089425406479048151509486250885152148037528504998229168810482846411825977891201696945440070723208839479753787404982788046632732999607703295128222444659598410309217056288056209425194685694251355844837327860538262993351560425214962775856953719152542280915418064137093070275385395786413561097174538604563081139214574860908144043560505611317167845572295933558491786969555320940574715392766193875568601933617966759663172773345208354800593319140712192777971172406126139816816012524046594310737140641236733908869362707687656535953877049533079952180403341586596912405609673954575570470841945489317868629311335817181671580805902088206113346909398299644490724391843952305700745189480482186583292671650223694627283549203482148420700092108430574384781749971239954454462810275045867971765406965796239459013660089785956969399770058323485575984543760179146599189177985724915409590336198072023527345516573928576352087203216854448203781987675822346395149170446840878329247057095996507590012803655871193735277519690030741991016999501865494922448123250542620971462396440982249971701709932881585051786189760176174185998218050258949181374023552097907747825013902944911736987712167202708244229095725056907324681006274699016764451558318541045640392606394802042150543366908414942274655209755652026667542953062211093778556040214802736934831234085114886849841592084950328805870885460309501017353623080682010502050473654552976084163019294149161329255537506173795558124507459360459461679109877858018669024197316119952676384336528126922844478279579920134026321978010424461585988898348454591596887711438247812101472325990148220591537133525151759264559608407597775652033737875208325434561015978351895981596336136274740211507044596034209369938780447430060787555434879510238945640856226468765720270797758281616834874891082301419151596635673821653368954234794024552801521962111842620935547234069529166358369064392643953193610978919226209821741094641990086451286240303563617374937037429625674753568100064797810873641856316600803201140768497235732372118982509889869542734739674430569992113383623339369256895359626904776996088590331166047601360263673249520548537035009834101099481965983454104273695722126771057280208361132960045471074915041081866568372302463690112844204310020454409468808697792785158356158962646643733110606914211745157501102232899731901863939935362134427498467688997197960804164128189355399608839822768392590053377427638571193617627405968929436746546661454189784288318251987395399900057605929572360095455739270671593016206064636685531013210265026131612024143975014754019432001788407289861654258886392195058393996977421002775321288028672283580119113153101946002904457055628104107920837210892517214590815771568255752145435679016559804831484413874351397258059544540265949590059185362647332129480478363749970171229739214613776429422895086906822197469230517760618331586851372357962950011055433921122834921699429764603035382717097455289339853730616199379634773986051502483689257755635832707335450043038193796816205766758447799284591510009006851317802059738831704279480370298038308385294972838820857958256114470314931253486826840012599906210120129033714173205514655118399073672393052554480350995501743136582458938094890895337263453687971890630423682334546735469601678438622900744099598069468303478282208801766763372270790075660551718920692193302555709635729325450065299664097592926410635747809423327327965132309422520023373484307641934216181801149068281856440440546335978552632656991962551621251871446120632792445238405358736603834777441973408951439298257345375526751188480514192660500233097105430725269398799858022238982210105540037415466895413445189272592553258824258791604196085800402918078972593688682464314831909767661194636114831143915303233901910727887827775885141665145584465337422186328103951845153136521447152428729996339132850752856452991663480509508722680111765681119314097364493606009478779946169265446107394743038615329524582991919111396106376808930392425356951997759046965301240823479429214537163233600230808315448613536097214832102445633122119670467332022597760972009744914718985806696149648407742590321222579198034737708876205683449269983139606795888445245502230344355223166410484293150174624589926430012334919416529849652707725000421509024574838356940994770205772700581655825080785082696566701769702727733494903669590516153352911054648149876327979827811591637531584470650070576071362370207546396362032591591865218518451324707165358589836612337949937493973769645133568773135432141072183059791607493300308698525928776329566823695599763062118919978150308218111849858506539607777272718597698264811478084922766005764060476864803343973409383101516113158527047514377545646297101440999347996621162055325484627109748860711998444784576656014958506848075314573411361488525558635651302186889904869741570338215889123345968968279173595070134600037633490637767512229807425110621858273350903103065969383380766505417640440521534990979065585438606398120929805502108197671223632273975769946480491214112186844899343702935794267833580991835268094063756476984911296366354325647464818595455691966111840834623444694612908783676840366957827314162191901047420849657212909312748667033007126116342564783953539628336688738578092236485403369607077817902283361534628679847035352702927855121778127909209195926189159511058191521121803402045646774557717071880923060656123503819464622256571121604013538108676928954297742269506485969142204885862562182590745155264602915363050700380181831593702975500552994849521288955063938212721444942449616542156109140085424965924233825324025551834835452446243727026965119675036194913403810599416005520706602460820121199133787619262298717218307820710521204004069496486328928713215765358381900884573152413922121739277016347637428244568306262602781992174662469599950575705912325316479112202629996961766420175709233907344460423330451681394567049726371981995416146915188267767860872857674050343375901545464479494975388776758446000718828345769977383127386275740814743926729452410451108357567429032863507696484116195647489351346083133172246848777242577303360499765711329643466541105003882185052610204561519374835115681274848631130907591188361193538737654112373320771933500031095046659677865111373251525716673996852226325649130907241717675193575487645817115229419620792722031515843116201091295282789133811156702250533385175125050842500562254826819093857448041444407473403837524383334483006006487138372938605895099392804391325365457670351756529837342039656615962862799038815334888541692387531720258278053492357061489514012936606594969286707823384721816003863731337348460413595217103112084585170583495073550017469465461466377376968256539392855908694730937753613010307517712953482194400249884848141230005442051047855076741496975680991645575046876846201366192368236714444169148350656980148323566891337315489953306292846854913934033139846332091732689593442741957228970822732625357722851896001725787935143191129925375123225768280697095836620380423443503698478378769378463495894893253738669961263421706552835436697522286697938492234495477893994792411435072043139252034302522185602459517921226785558253079817266375485891665936655585532971813651328521549700657153328042423393231246794293435127951102917608194681587932483027728221805292214561624828718684102946425850801534650746044596093514126701248120889569909594272946649312943412735871617582829461911177417482498546524424832631851368852412994312436442813260373607388016093770941984441858724664038841072907567903673283798900374663554240555381807751374785083429698328422406193600363917567263617792911260289957329683946971949323592896109217673474923054842545199598233179999352912151057052464293877237882975955753586526835329124592701881430450796648362025539944579170602762056442381439500245822141121209355548216940878218695900686686356556066951644228939949566677634315188846877502986488867460547739179672657418444059692619504453390001358101917629239562604751682737783514248798983462659928909224088916039143863806282346247592388085189851717070614506032753793170255200995739608570952748919737260106333190930210548468282864204492691420077814867323514140627221485680323117590182015078456334848514806773069264682261515318469053067147024743002703524940885302874652077838598026559934081155978884354154233874671826542980905913927972674467009553048547962688878601135238333680865900710025818918033501068077804024496491268439742217833460285601044805586763787767232144574210801619520562307836283882685989541180113677855332900184163061963516087694536531970270645076791105204136318982911762763845381159728263379850426121503331373627566985277748985646579260458660437324612869896481893736763827442789963670223685427532127656055890125267520967506423970909951634304769591039866494378512846640936219900431577350813588533406862634195817308696520648172970697388811137863800190202432472602823616948134625050321342966176759163355206741765780264909709670164067763396448043842146842136421703646787824531176563837748588791468891390969528484343531746631410362686088253609882658745597861466325314989432978599797293995768357278067730361308755159301877512109128250338334007051186414827234372244745908300773344889617788903445592506425319308642459642102403107219382140558977446653579621918971578481588321558730980018183561208519698984246312094911139961266715362154357689579884279794988660454197080794181362224633999293243082432442192353645369533802992147168503634892985532556525646934627727027589908532162371237002818238334426281955518514361021882678638432783901237453377903159366161557795828817333759115998563366523071232722587605467679128022329596024450320110275181566201572137862269450966171499022415190276640757138186888713755004823532549522742105208451171445429095168124153341157002777062072664172951271879230455774307525245551690561369908456416772153943816962753711731298138254258747775402048672063414206899212802648638423522372975484203283141482298338127730366670901970314304872271316497252943890414376666585838650615146742145000948292872530479578859085206671038164548961143206205411087502154702385226681492982156219169681864470249821938414382190441146124788397528150173420133496733130161223516650012017409061059502086480591379405021607310835011374997208894256697929537474886286582106454281131352255798458411649873493992616946984680054340729667582530547663817626487474440745424192556500393803974645036496658289898440432154568207793373976154711297461976097078115087838604654886163669528711464114465096049772092968072162769567394750785256013907644765489488761368163955345957759593546349599087772984384439869708179441100592944383920240276225975952386267349552872249633541422324877477344848885264384925583865117555747001664960644814036904756234894525624132188401505210615287164598466043351377505675904569494891241050158694889462926324029360315325830397685687120266293038372211988114062162702961356223758619146946676429856624450185396777615242742903715287823363795005285496560035245028330428468928315004804508314355724738491854590330877617970110813220228377322162595397333100044326325985783525295022042575560875169521054381376083688043369355785532514337982134572662743520135708520684618513051377000964330492945648295992693040797116049633905759642440101398857475044480346896965218222347276943507957190380514710302493774315479833520498407028604580230317809765803354418294440480813525634820552752624632778295433164120405958935706591709081537743014251653264045226778152975645506698876349232194049210178480163170003834955107754762545706052575134743558123709782835266924129927198180083723656728620862561597750851256242434892485209549916339623179160026335564123402998262804559512796843092757242701029023047208795460465542126164325598177686693283053451048696881339609429789354137993547791854478362456939589333471844664840353882097833723413562743077976993355439260519540361667441079569913222195446099192157585397721129948023649708298918018799645469051640484171777169018584977293265927594813763353960303757591993918942668316490773759715223148235877131890090071736228320335919915858865271911485135225408358471010875365033548711224991832778035957310006964261402750395043161585792087734104318470264827194437271022762197553078628107722051761786013107371149860717873455817590901722836915696170018732123602954473435980406934437793401404550276288215093364600886753328866496593331075201988106091994359974280418364952565526433719664595652551507349167439845158184525498926447025714135335462543879612822428977989069858673304066759732429993013353308084763344038726662532153493016564228128510174623920306811917429421484633969233886833171908011909360068935144759665577945910422204234036489558042613018199058921033658681879669795605048379631310417555278208548180792022328915041451636374827814720103744504047625271140748336843374866833615019107482743923468001898497179717255776932138245436232646062030363494064526630706454390097801501258600011507420206362833894086964994738607541314801721834304822281403670271838628713362759396200698637591266306192582418841058008339033933919765632849885853845921107510028553345759828990519878382598774461870127772866877772068276319311753719299429634426435032900983372332795714524162522499566129102465041752565961965064952363394443398428099438033349016711301688494112689876619647592997359095645655262319801152807579222856404654232004600687310123517554147407634346292226013910361780825938054619317226525073031848114309738420672766076890656318192881581234207433618647434395959043348056162229409103399257067899149904597565475506466114194218869981946393270938555123386052673521026170521361827623361726917789509853699076132765128864386625312674213943387134365560960939064888212088263989849441854037758041275247287288932825288575689669742844397273275220357190106254747655636099871900749454072258175913708412417532622418533924739490370404470453276154342331401048837697082757875348950966741664206847774708560905768764163868652521704255125804597406516347789520698537562641002889352526791421328692630279743406520559864486269802830698948494147181389109592015657346146495649681585218280414431057376731894173545447354354555079245708046465510212286403485625827573455650717847375607805043846284243045634539760534767014118843859586386858674944028418601158065591515864623881179827438472428297258287201677338019001686242840417199663267933725123491426047252965035795631218212281982812409410694519740429072041811161978430315846527279804330785245511567673286907914066422701159129835688509514518457051368390145125589117862575259208484802565103798588549591865401886873479751202499286894184236082217791482282616336949917467760409435877958711421117980619051720100090904614071190261687756725702393958183378666415518074978435885260012672797391172396733363460424175299210777063004002697094913572805958043679558679962063622356341420992896769450798273238930931144536883728116356094120634936759421807006690482900442552658550016651776928950496496627863537327602730736772207850001652936389541124379306176969423807830003905926007145814089529214635611071145191288358472854799387431374947283619956568299417583227169545772825707251706515543158854892617256873520123645305033955400590051689809427609742357336734116899070653794446488906848850613896394367146108565243249537218497029983600667697187262921414016858288912309446839321670674662640608771987055025842455335499228408203183297255288027852851100821770414211217492740642991530127994385838358016878289188403897881315378085962909599683337900236402031779218323824605274854925524951643609128845407700602996342842502645242619504780854429527739732094981870477019452979442917909908412069030442593442174034406279985862923727609558717673163569100016596185277437462377038196963281187581454160905890604144287721027069152453229231518014565408523072592319108990065045668623395398667441635413678076022772179386877636278874102019720900239153544871854352152407124633394889213446355146338179461353064645941191710738143185877539558663674184167910617746439207477176695341919588666564624700668300629663765690509093794232998394743301074158281601941494167784463510038653031333803695289040493344296428486364759674452707514356392329161674275682935409840096084354377788726977766773363998646159512902287481377646135177769669330300854203516361136787232545093648574933621255841803196316720302907220800632044636492972208318311044635907352666655771468335022446708481167603146730883780518907701479509088474705640274634154931337455561680173143907356878247780626235770593257040454586905718436344553942748933897820149591609247744019115021286012519406690464229039534555195611565430046826973381992782680159374086983679864869366376451474662582966665865622828562931617160819347236320392300027470038489042732249300386415483172509113525285462385487543256570330353563063926725323908056953090290441960055886484084883595392024081899975349709222135354392251681839936714151183626603261400624568802567772838585568639346612218691370122013063806501367498920523118223242608762231019245501462909805606602696850939008226886167789026431874265303142169888212147801675323561406946829253874057427761687000024825052119252580474280280224713456774382791229825177576222915533823066466947859879783685402982842710000713467652925355842564294848723423917610279585142569140775377258617719419961574363368612794610646051415442620537879866152667795834493031058925991069800128245025201710415201896252257314066096330623283446448598877307109287482158533494850374030355608899885360659280916184104469896590966713911635017294938605269701935502001636712087643253421144414371208158854282122818968151520360893740507148344120318086285750555593295227843741360564594877242669326603396104757788437189734251428695633142920032727158995495346936445117971242029284668870389340290012859546569314839636561136536809225295324142002941101704801302322176934462942431921581715306123582315450032378299495115898588777822891109174033518463354615657672742940127136511441994132102937534349345510706407330527643104314045830677439854344103073239010881582468320908962504737325308841000380505968828106009579605342151325904609287928140181900586388375801567589113902426176225177281479063953577715639460840212207715946476348102640727195719633998224011860008435869752236533350080984667010248586455940462044410580856228668840417082809285826726408040044575409538133807048458523900356233760260719915041887211046863247802743572857842476357538230787296779474934989043128947643596790052802128238270716236311951971027051504798519656263534224176862814897422514799803857556226070012350291587102279050591839048069851117591843685275032511501234407792311473249222837697146221507416431255147792885202026699407309745353779076043740981533902280928129747312639581971239531823982096815455409218452786852681040225536567783295212306235573558040496693047833229221659213404086196550992922224166470482949290721385397789436265378765609618631176240250479835838693065563103717618203113654267358273434461433293390581355770006515252726055720853152617936797468356523747865762214397152307535027076973156383170451480547361081572820767305192252528101179506515297840806685926748142527595903540293467869670478593281780709038357657820888448996420179853966937149716645222947487651727402442137158084378817459181160736632000492382109496125845800436078798377599257685008795235209635959991309265652049258843718418363989754191440806423264406425633297287192936788445321616029523048761065740457341091553579332166279710616222753604382083585033140265348916634937190319829560560167781521520665142829148693694068159770862447688163722642624205050266522841527032576168025291553487217439021235602788009083661054059547972008452434066729614187533711881203113504234749376589826264203249921410821137805513698108469785625155752033200158133156078194041659510799262652392539094609877128818266763254651065129642185765171094834553533385877487747965703978436046920655507639925446194184238259070130207523648903684815854277277997105962622499076416682926852910505107757062728415293821320270898548159529169320028464821971204737916850628429330415008808507842909996664782688261723563201757245076803928936809716270296125167859727473996360147921556779462105234421635497200033760064427000305907550236573957210853833859977234435813799741788783190496697473654114919556013959388874017121085056327453356216858625763136679483415879852055558448905405149386592981507847187149422580958573769097185376246225774429326258520708376002239948387874449829310980973204346986356256343260237853561660136760563183141985645102384777704942146075161991655100949846108311371648366900236418418383136142107336146059345235247160223373488287865427917330590731235241287485485013596824369394847388460210526532048448352193257906247401969161459307705365765442384660345558430466970421695507491085051160636825425656803295542934654430440120927332310060828681582111025144006652142081157675019969523226046211602758662790292538458911439728899386194847945464478279305652051451884546295909472097512142517971541172541578550950587284927095267719618562980713240333360513310091076958801112552137911360893189914923186999398574625490211806977223330497578952922487116366993419543718371511801071875466113678145579717582961401376820429651021333541371902802606072490866424683628886864053091886706160035294075357460694796381735611649566171877557415481541176390361537107316320201942320745834321787994060593743364801708325825526459210195760215437897978314075891283440037470365082256376340498552074144090669136540574353420666914629228959256425165136133848821693939592563346167275238200981630133613379067765088288958521939217881038999837462329555916501384880430700325705881110616718135136241295289023974045504369481813483904410049756737905511677668855565429088169175582101205175208448051124849365958543954609695808602471393939215027011500341892838685143915222615920135951759846358680961886255117199342549073739725074428552522227010793867824398077392100107926961801708023435174389649741052588864598538266396129534958285482813760807616601476982753559428908517527110561826433873122740048983413684923314853728516650772797096684140486514778737919140671291460605060859627134313380560419370349476908614568189652247841341794333010872087377480143013180315821723845719781589818751795221055066378472994727353095270518789327102138433589049725123299324838426165390350401332103378885906070640925721349471101379062296382778516150926854489428110319261840080996284133119384904866102976421544206786380919288671232169203080835027488910655642515958333527592112289308979282801399374975585097781967514228079306091998687561655433413269836094708446775398354001546100373753246469654727742551181713921636196383359835414153611500564472844274365048341591186273990370611906681176752348006709852971065009989628784216609040375883797257863291733001865529933314517126347390984250150449399062958505614826823864580288385634416009101977232083599730484850556012025727999073207449801512344626759355091088763332625744031055418247712094399177142910577166596410305879672234321109898851846780261510957396256713121940541595275552196305244969532900559688556571201745345470726516836824953438301873483515730894074172121390184207880869426405219099362496743252711088645943233888260823151992730872668529466047097844213886049871932050398942861865539705142590353750008265219469968818049582259786945225829291289746072121090050117124235729406371734634049428649314847784732805249204594288629027122238124388936142340203013166296926933769294109683401062059784496619647525737599865862813125357337879048166603744947234268787649334246416073160013881399125827238292794479556671215019975046526605524976665916145064118595416638395667836914683829091275069810824496401158909430389912100323291394831542931799059885838513769873138349653346720211135486292633431205824575685119808625672045679078878419718569448756465521647890564093658853792493415673600562066482549187768961184901958744840007194479274396223215235868302022552686783894322687300568842229321796053085809878556761379488574294717212761927910265188644299812231257164204981901001144691051846873825404995900733246668701767368184919608394348289805779606159199747867443523105152496156997492973257009610419976515652199593449373080688833437568258546983228852639780152272481691758928601384680805015818011145931261832066112455186491932657580888988539522721653491318859708761268590890537059685545814424542654594680106401578467584404621674796804230117591211036075755517097146280837222644793130964081983324976553018940475091992292053545271739641732790990980356261452084321806935448313033471576055903834547233430225153096577207641349943441499185081435967503114015346873538332157350849463126418473673974296611768633458612708539480093957900341098672182629140140237162641765783711289896876906588467668507802049258238333585767883482493454743984110054368382340027206892200014722160259882139693339916402362769620938760502475106874496670225419115279234080615150946264866572066512330589603369929964672781761581898459168836377137141337201338690172588509052672283156285835359826730882818454046614065367233981581505015598357146292614454405783568790144794434445681416915390947754951533514801854354231862407064446209710990261861068569233924117262582551771200211643531140277586221215807527668711037024951634507207312977808376398523089070203885109902228334248671159134165522526120544251610288131057070304665211539231713093537728393746601660202796872089839842613692653780810813133821630275342036818969488762352191940802923540077012178882486037980292684752932017929119614780233371276986153243488435868358503188874975029518142389894190316780508021231060735383934993298322225862505563706678997540331207633380745296188140828142081338057393803649487256311756554707958908146264460929805363823918403989516887340601528182744606194770317984662353981920647932456018030155410660828479146980172013679091144449241319826563358691972338456205654415976584042218540711956468206680384881419534357641141786104339808026304883448045370956789580972728766498576706535602050036215375702486347462847177068754414337332194306481174300188801218216081970284771057729383625135028991183512166325791235582200346793671690434525344134105854517447870951362126352597604457546637012403124962786539007311861541674368398235004657507676069478482998035254949981642676526556813049348594816016212581006680779185436528396908832104500962292876215388797161095879404838693137458303124133035601760128261578146301105600250814708521909190635146498493894259931324126470180686689669697105998852481151534969207402135375777478032487801549802495439612886768663307399655608163892663298839603761272214357951690702299753110506807102352912314130648492752272389734006594186726390638826275282346356705051470791727349926056901351936487261626230582164604057011856242642675136848887805930882300964487509812646048205576975192571032381845047643252383884695320182453333944483175871988712079383615306533486946195661591670918157323222196684596364366221571639740759259279868138493056252370121542313404528495414696479435791166481173879714890999968092541969146378441271531414158158618181432170066322030161065855972049284107560832664680780783698663874068934159508787268910379430940752074274099859031933383435793395595689442277713833001870683081495700688917269304939209168687066491876543636772043501332506661150598195199400022153432135895086492126617017200025099054578256390120546030425455498674872884601450078947911439928564675701080756229594659039562123259229204003364710997181545871691125937946754068428249285158131936293717362442372226457067995845465726605220500356670098929179480800318126802277114515232517070999275657880760626977053390997820511556650687328956562450635339610070771230434709998717770109357334779702808652774800218145603117406508294986614598864635866071639129564574936822630009234335971538164351727290719366413695553159348406401912127773900704910629415830369779497916658988382820493769262598963713912222294224599721921916812265612116495297080456876414294858490635525246426327294761570022985900581883518266921992103971584795306509446480181725553073388767731039608851280088800364988180668822777475006858949668784619658527614245435231102941884228242638109301260713540675788474225230347255058581311840010943787163776549839473638857081523998267233913125918485520632939990354516641775591271506642898022461862485815441519572843873145481466393655326404872218284480593334335626388275924868015980102407329015587924566314371553260631294643658203984140180036586058005197454700371066621320641164099439325528790703375650721512760198942469975266852001518952634869784269358189630228420927505080007765808959458895027280259248280440357596147068006368066556912420647446693565768161788849743436860478554135549782980057030837310914454795355959030930561101115360333268193973002941886521150737050999738845939437482745485755620361442793916130630090971328221129376812471338150646473643128427394956909877670081555252940987487934989102469037144033989615893892782244878722777289233488016860297994999140895455790975743564417099995630783565076256875057591020412166987212094916674147943332524986967759802350843222959566303676916470282045663931912514740856055985901021981206174479930470568326294842455387664037898233584430186685405646414577672994935723369930955544897686749339162852838627356291721993484375972223892599986417475404759043567205947187756667021329271508887901163657584821594191217253343868884984388049538631233602736841856159825256080329442676385756226632611596329049455386203972713014287813856207169722081355466359013496932481373104074658655141674345614450264660977602690162085364565839409005316138553114070954058217594186223208040831684070916910685857638267121110753338816574192687466960563962522746697666791895686754737416303974507378441843272961200153522919967728348266222584835778277977362750949236946149037231956040565720602877093993160916127040160403246230635945884424994854574555322748863083591468002693759127118108036016529329059724277722138423368616116553171102103338672376197393022696797287148982922917425048160926681164195630271754736566450222406523608516640402959083269230321666454517000473124535054285193083163319229945525420967297293198469903667906034376424330506352365166494738770828815415093579121909171765767640378701103360444132303502020423626064480270851723314851306096235039603046302886253172978134363832320594453217991123507457069786512179532379468554864845768561791479421809572920581204166902278713233629061457257112026182620449777674251116647500684107122697990314282271422516541654060500764491388738200702706652983125413791920240364732062740856269562720192662052717459393035035804198463385276968578481101962607067859297008758398921570610896262622529990472596223504242584078025798559998257994014239562491066536767252290410013358042251429774066257645745039274345356166384127628514473598731200175704544960327089901784790784678327915961813324036747103341512167786722798208042550074198206544153305079718722672076384744114070002538045559121268724824653045463671019198540296667509509758145279193565063398946668043984466461006234704495873517002284670037207193794120443947057408058138698887148259006799450700236579467141104756051113548719648142459906514476264844398293907801071880706434056543685918264240862546615432151678172487053476196831193230159773039984635420091119739388553396969867904595310975857396554542409722257549668545903414046894222891314694226914110550140218779061553140093700798287176825256351166132055351048510723187578341367749222122151711859974338469766326615992432995988760407824927027448455222337787065215033381844406867451217888770947613758685132054665859447395651433244171243375783108709433958943909448498491642868844288001071483992154004840448521831766345565169253403060782586334481028837439552475303861846249154880958647907127310735260280396610986867925949760566785582082774242180595497999604962637337972061684273765936460089394461802503552615323227869328058001120016555030136373270325209071208427989694985052183729622923641290181997502359593535343895493818168467741170788913391042417013341798888653785091926598305583689671631429793111794111824813103517887047709135865625847529113358057227091846123773396861945405263457247734765205215645729966116373470453365280175680895962572247083166186344437863052412899066100170577829137063207497787636138040615294475947730280289717715485591677171011436666083879740969783315672665051350977800839738826283532007283496194195205044205690478230648756201641641211712330049556036102037164192247176256432490914239502393737815866216345001838254097373897675661919605801344620098345796410347343149282233228592443441538025972988249359042536816516226682272756262127687631662600603748806088345938466890428859243174101299698359266619564363207814599855848406048115103058606787295179862397091455924648846129323311410833468633870891063772043846687781248532174189285227306042415983477575618327022600441648053464490887119568805843728949354484558555919091923408400361178259227347615568047880871866245490790014472178165212353705964246292353546959727096462066414420860509872104816718396994440475676195424483655669720359295658329452824795679200364133188908040088540748639772434802572204437420295741092523713979046191179445759809727379592635953860392116419437915800299849652961292826759702199804203553612400784582019394985001084955939290533243518112855355818365193471810756889803811751095131652891734551785072896481810319990870882767300856807674133764058852460370695204570188930456948953613589396504952987668108171281356796367444355177545930026069045220614404715287684034005651266300893609774774733121625092762823701405179218731927958290398942876341816726718791230292900008205615570104007928194834026837785446361702167632631905460310329149694103171583256293952165795549258436776251340936290112558058378741327911578112009846126189828011721970691386639701807697217836755266371094180378719487815963494206516964861979458472690902510813517112143790331447331793635989270936271404951135689649094870931974379565473361810983931037406556617562334136083839612659803113149099396791401079340666523227034716436706830440021710036548240686721779125271179234530690613893393131608312037790591097257468811178746230344971371748446359208003965869767665299666846747183565415640679074911387443551468290247233631068262571101368213507556865139275683615486502123852999905008477034927389392494910587679507437185528576400842885215911485345821124763394840635823762612149251739119141071884247159058014081814566942805882835765429601385543146221722696098108682315005420083148467224540184851983023350679377428636668000641038951836243844500820748035464507695113766786400026233449447755219797667761680324205930862485979671622550656388942222058448906103788960117178947851868179006145127475743744332642833397444595788268235750813691103027283260648418323784128278891815216910690578934536873469951439297501694419900633063632932964837890253335785801862968415429004219564979518197776706760267256567125306215871125159060536664026189193550909923613270340642968194819157926569150544865232073738886130691301567098528969146332846281449661207533033210699031996410632460073568210856371601001698847808172014117836998659062283405479329925474509075341897647318150278096262837635649103842218050401253160465236390367529456894862750917650086025916202196236479825659846897357101352216388709587328326588473256884180402694967413540770938340684855573220594199402995456586145911867880754451030313299512528835965603721305275627466657416989124276163054709764904080653147429414453512638198023478570106747397973208950564247963360480605176662931386205956554700661203952068533368080431904652434310690808273227521516904020745986422679520724298323463924852331636589571367007390944987958046285112520278488081665108414574315815251600874988677256457166174083291248586688917278235750185160576013000805474110053384748891476798327903798543233116096221179810270457774704561605791837084847242414815487332113975411964504402251587529398890752319230825249508883288295944774119419889301481068434690767256534563646968248314489959970890629256981205697494468945787813183185702006518841662883010029613438331213201276621862502307189245837474204590538124575494795219701818340581490245138800972032157482331668205425646580859624256638727305888409022563034812027137967082232698396580312432581689240446209824929603270705921219053642037805317260764692394092586876426524717791889901034723084196753597413115103644077505349658880625409655917079629633601370223388333118086288712066964229885063903810445038908644884532974664275812216369421245692807793832777656041567456720807905480497470390948585537917421542251239298563768759415020365062171471718187108243576648229990071810528371519142861171249302544667054386924373897219574373055357191484459485914865676334456420144252863275139751501304472086481123698209257588492374661569242033535631243598563983456271389954228228304786468007670911613257571560069625307899449524355842365900994457388310713260509574646544835165414454489912543727024401738590162155659854143856584707074439115174704171924539822617789693392685807004011658910162658904314119858723296119645473632214751615039471277541293142033570456725621047090201660972265988904324077300125916987509381330505356901235299579669231920535840841499328771859677061553959652795381188625973790966467226856353326511071152988924741918596689786912906944516783824267231362249848836855905088883152908627629809867018037798609825842867052930409576169137151624395438647884510812153873257197600303424957516970712426083618080027724156850882040600675994572304062688331932158275254461325318532032938611980374575951264850554210557048438560014392388534800938073479490549991248969705609056465643577974461098036219273707241987364540410316741076865264879486011886277834975270908152665204594515983827042969375353603717777595541746829471960494303137686817923820161517953522089071588063213912921274991347732901520766760482404117619498055462574697786271117665701828260912014016586939165289246087257282941815485861509883361452824698197580317956191379320477702666793732351704857092174609333250241030935406983798146523589141289482428144497279711865305845818641065417286593491244102940755013394174458370339003990403480642029342014278634010912465568441446735793431723324227039765582960775069285325136473773474320983798928610659634989490689819508050673358581372966964525925130300577734338501302526404290006174801973170126401513904171593715423250069007050378051803547547142271081782476809905495946835863442199571420322503683565637976389567927111762341525395418493014514672351660335370831194266310136165279319242405196714843180819719820442790589119320639811868065342640123829985205642522799344482923416663238380181320108059022308232943726451196451066568496259071532034196960607628858149314693570133342400226595406806364859732591043550674444688945922354701163819229536653819922512027748841042981521191336548216166664415597074163398232855089845482162623775524099796959078046961032407463632933357916745966483835913557810809646510910650259275109822644917086302946577673461414160843236265985878798031387033538158811413490678790188668563726493062582807458884125136428885879806682300101657217253069142396195749230797505337274887751232677361906223386577237602887282226166183603501084726022309105620061006216415288861945085192366124756833592222739984854150030067724469035011132618670645657751878983535997301299677389517129125276435128687349321468503604850994683849420513744052217082411184006923482193164321908989331922844414624091467819135629485008508541047851647192323224167377973701469895546212540152496295076604132068169224490733993937290063260912791448919487208363393217718451500608080515173812724156819697868920366905684130611815238500616634308775070297724113565791166959689071489648670445352133241325959424957636070739933021086969005262908639405739050203737043782641011570900944578174333351019701725828270091477705753588926938389756030310957364913885827052165185504744904497303444272509641082653003927800199305909280511441479375586138628731493881433448318555951440209371283696236219317272939829073806082312571645273380877333610517095081837248643887098665357904234714537766561252022331131677032234977387104469653756433263060578775009925385525413592281982067949489120474389444145258175514314896480884375527127636300167189509666500162097244544895138317899158197875828629078382612284794465129107649552024302262126756764002046196795374331146784120302608480728364171739791917800000486135625124743090386479443238760633028235068190443135236200788957618238742332747730991129649044375272679308542684095133927229464402169002828671140665530907209920663301306241877920821232170432690193747394159268536995112620925090779153710134229656272567283495603758494342225033455909187892852841510615330754906862635063003456525594474042537128971541751428628167785653769936116913887238846831578900583661534301596804602510067154185880342858902197508180955970128132137442805726396028875165054153373445159766530987824542640526731195804339981605346336952021267709829656200738523895989056613200819487586302962083282252230824881363029273810224418193996915909872093892906687183537346341429854166789431623615644551342662618782878046764733089788613241828158068920849089273853293377906823327188910857613866266411588206276446705768232423623798764555630388461162934813050292289098878623497566130134085264435089429991386896289394178063039134232820268915639367363666886384950528849667493067062500963534193511171948363106073166061614544240320579631555796426022170103855147753880846432311853705281839342021008661946539697115270948468908811998462367044025253678843747908710395943215498264068039574405732201578086220567587209600535600883421805881384988131439067752596264115517617832444710778619423209288639323510960239402689038542471209434481171180002929777894958130005808792655302154976609086920454238290043212679806991070641815273371552227446447898003510567342365267373715829496456862583441895934355884742737964379113222128265559227508172861063601394312311331647671408968043352523286226939911141624988614113685659849985643837400040170740118980529384923141499847574917511643009268820890547566141413084698757333920828942502405164531096017660321154407396659592749191474190074143285969396546859505428574234389017940975138749550528467094786960541622104938882752406235701500538251501225118610864718465448020631116243791028473348943889020968554549864177669255313479498147904676353455314333850313025086676810322253019863505967955119888025343655478402094341295452727663766969825202455961303522070524336794467198078841704334007210197675456930922685098239259706387187118542799784763582800481804954557404765990089156883070481077528462847139163050572746723447334276506218611375224434034709477320418516135072758263031942487786040986118480025310039941720347233447362774855749140895094084050814403063504414921244756985199109336499482204102596326269184733532211696008151465350119692768421239443123569824901058301184362495361444181464093660324650623123953282493281268949889275837599064432174518801231280127986579002736026952854156185043344351339259313343718038940572489951033973345214647286477200133796078751514441096959117466314914900453137354761883190100835199527115537802498531653653909338964335183703017553455161757007445328695292023971851670746432978007817856689424662250771852015036941076604393134980589702619402910245612528864654699009383068276520846326616564106835283496283230790628852800762349092295181780513027477236062649991503609222792942171785163759685946269380889171012733202761818724434458001258545527699173193429254017356180837598744128724552573971229993541494666718393113221637723446815113445364436050874059345121512431305824065490577703489828703437266185301405183863264667404029558227967614894435135070710061347667387389790052213319873728372123462947118121604692749138415153965709269303817237436331031664219692337278009049277175744490111282097310914701529251945771126257160269803037350184885879043127049789355646867117554095671270432254756764551195551495333146456696042343281308036892389840473088903164482697608942315875187698090227713206492873657330482346394293910413883951585161966597167942111482966589229617522696908625751698860750388738296173929257641767461018110611476929168183992205631042493326145164783875472904596737428780846175210937329369821529045344676175212779047329140481912137606873482401371188788865771982554532386163869062263870797282901748552941312617550122066991687395027474041798712621477442750486261508526451983170165602198191453165761025691173751203874600679430705004760665686755823595512831242033832829713409320142732854427799160127034827637661111350613358726208919329254219365697869974709188737203645155366019609632613422659757943322154710181773202304984390883370485158405135113709321386280572517996715091369911836771729844707604597056475778819767419576172063874506214655980977919351671112751360847574493044978560823730219835070376143789786189908256573577145141631454352017313902483785083102114709139656634360514974143924620450224995604906039359683345101927759244057511919527243139515098464496211571650251628623885074572793013272439861005937039905652567497755960743511241699493916686213569637161441159791726707783715009568509286585442089099414579605568812334032636280954458574805757304812903602461505802063553675559303065701043693987526199389320703109019293031411858107789665201800664736088443813861703820958718349267112667728148979134704549687153841975236063207908257828039578715118676412957711279847775105515278070075910404730582347157695818056619308702966044057389381290638450748288349848196209187905787584246757774486339546340605626793321160567030866661507651463191918710910227535467859628189737073655751986922166562435262656649337431057366639238765186992280592568618141937037755496309753287945019681582567907357269976658345796435547708061128707453501540542779594700946812363018824006589463807180631282798840209159565700550228820453920323354427275288064237546608679832452330271791323294978132789497087322228780233258083402878872708190023945294537747619853755249717397449215911687548856014783912317712535271546188076931890133896439538135496971948523148792266192072166942095476544187726932284352004020325691192635605000003717100529493112579946202938581607275812728454351412450074369459266336576948608029220644192728460873842999387543279201329076480654547641989498518419286750508952550608758994310917377931391136807518521130550235632780654668978419811203046843149206746857489560681039592932481924510125352319248070769751831600523339747095094836071423905900200238668683131629508467277255902267140805753757413111132497419307253540173723047839213410863567492564309643371210740427842827752366831312412373653376738416238856531553684907396810026972572427092475602233149309983672092699025890328490095960150971792830616405120712279742062157406797463073258244148488466347510577526637637904755238777041939048003825965504808077544162080965020041523647711030193660366147380399631978152017854683578908025792126229382661443528020893796112820078460471513252191393865556042361444336128735446347951082011524552223849908134625739977934837928350370662918341756056748741928783410608523906401071216943066940751458909548014828839740558759110189105686248900975555178593382197299782477050630389366728910285837043865777000751849259506581858533751382672588828678582368130334527531086978093240143685492453325542099336583122317783234643633375653662550780839087162864111524362822394029420839173426711175757195793665881109860687986117344122785150516709937168791922248379866910535509730237768806166832750143719308290287459686710745544670200910889553656857277700934275364418344250679633039042905325827885435825310647555239909751648539496700304766966234302867019096780686656146092150205292921632547006064940731361426463828274842714243776760993873071118690542318246970895408647872287242672069117120441457948635400829249960404079279278924584887719776216380906183293848699359090866701224777841952752297114218604560511376912289203177244563872841588656048394007703695537629215383759613961392361468807376685694370686227615075621133455084591336448441599184133178182325309335188639814136035427581825256654025557254566509190356414511542718468126093930536255288352023182182685788464932492505801501270498391579035816494283394622555132070847346818351935547003336618540611684117622119876661108106008958827276704234479315772474729205472078928246409848666844028714371602996146076083197111798415961454385477602034492739645022637026947262597074024620695630122636345737784239246650832522823649168841999577269448345653379499356886052157125520024374551691566736377158626795332100015472823202395716546181342769108272431374148804376187005245216291484748437024487623547832428816775225117061613537070260440558990722099655733884692089191990757889537873167639034338717201811194578240186738484530841694322185850898491589753152961546186839106136772459855571468337011108528278404312064317748045280561876797470663374971895979397072187739313458185511817558699108065456149743788561816831543870196778854259607924434823376299793521924502496256287178665566059498242000687342550276047307391636224748081899004038884966556724487815215186648890972388265176936557111732771307509951283851113430541741271868833338628444988545210988765283263627575393624847483249095439319209110206152610051255766244560322321570602048031561682486726888987623066367982569468820390787047794570933383133189262533028666307704001422911046701178700743587896664997705290282748578432818886418554298354776467436445019859403230089963615315548095249820435251306537633044108332707480245879308248973044300693911866268185422400348907688886730363176560114275703317167954400565426867860634559223876250236230326628262308779006721003540660695130308235659145306892233981338093629139960819462036688824612439679372012294162069584576804974166271540363063877618475835048712050791075117853072058192781555829969175796578930838036265836798380573601796180967988514333812242699185504086040326442505094781815564813915419241082646289500379973852392878769413327564347207927818572269705108872503015668040895749765584796530356491132746646042407311239821113131686827425516332013978996358000954438938818677778907230251646381588540080630042728218962597073787565933695997491512092441181798246450565231749322098349053428958747545185326079276983145783672898404731067045396779565257002251566403575655213630548694893088848804984112523884249591477765968498282420700172129505009038221118233223373992330156664803602742948949591117066562309815501148460850018020063464906147007702549902088633070189735395993508153650274354450991375358524443582186073332698012042337703746974625816456506748764202193180810803499861170578198043090225062305420360422880594049251952234698392502896301247209721338517646218952810863172253084951475367630089886721987492111400774204008005120772367985048297123711963869864811968922641306950651337726004591929368994169456811010264794322275159063875847998321772863029742559566295466582415962482694288040443659589435402507431362852917372297921664778753381748466977192205380558420395170562508607975455177546420221381509542372157522840652792258297367221180234687016058765109481742056287869890392503302407305808472710689016470692721477066277847351455601215069598987623602264467605122131926835351997618885360878409435479998600292355867560405455100881767922365267696836063011102386696768244117453992804251226501431139953937623186934740546527678620848394853067028030642919138818718396358541034230994907493332350384133397343343794653048089804505743180332101344275437492260230438555093358292841672565253975701047985792487654611563444570254591027795894751262442088818698871591121864537482818773375042814140815582248192351017332438437702465563382403529109324049753584920682048319946587166805807226684315136324147200364660731627306458454658328645800579795731020186340719806005593741923524618421152361339699152242295017788660525142971222628410881293548525952308646426942850384272086326931577114183481956063731565946767590021000710335458579019391759905813746793215056741457855901364201152348777450199463641226979187800984269673440438703438631102671902391818176054673121269599671573169241922679211882826756715317762482289132108830137664672847312485868026700846202823018891345017687301152048793705548016941095931543982834564697447488595756132302458669709219174132131452849833050851313053440495811055087626584217049692294851293403678298294592729388835810681208544447875134034892263226509101876393261818022094828528977940110126826147645910346378118418103672929863697679404411361110993988326621681264367338122837581272179447107846927792438108861871214772966041271689077014011307089020985692674238609147986823457158988420287948557032179521593500849857344425624718696934570969723193167967128623024432205227876032358133644472845868949304611070166064177761449142382297596575583418629682604623393723938214453199249653157969919774643487790789875160068650124636068462934058652258394343906822334813250657150506315405115363871708940742893814334006232343525262122389252365350647119017456042009914386755979457520752651179691083975319303910833966411927797876688922174839133134495619088989807969212792889914947793164639942472802295060647640480045747502192930613421576548452470410784943925658992822852213746402103601782153153312164834713916030871445390918771358849077714945107015945480989460356753465162483490001316503703759174613005502144428960473676678059721956638454352005159165688155045124326033157926471690150655124676700364127829167863522119238268230245243892605720081845544369970542430381179679705627039975092947419041300546229757966018620170364829611725531435406755259994748262966621530185511574262819159430267795652308970301204194953559496716365003496005951800475575932810477415500461832314773473264991512531809941679654213644836716500573355015003574170244069805721768216489662593553297886731353296346143824411268101852420271213416860655191639939907374645552732270868201090519958248128989006800970404613534934047081595380167672423443938797486801777206414654241585118692395757317766663513611599116913732694468269864559513189680456858688534427976997113277649935097331782821856143485637046814295644621833163014264223060326617756256001862575505864329948939497064590697357274073864056827141876812785458471747777618039895836236688314883006633396891458823618766753719745399952486735409480390388996456007709672573060156054685145330975419186468540695875198502321889208031301705842553079450087570917510026839566411557026894767167326906186052075360141307542225986592794375459744501116762917889611898879131638032295500323156820431027909208902654843616087158871655555385358006076244473922090912537450562243056509637644455361450953877787053744666967077571052449780096500832091100204655394386513809617373236343902125343410414652503851632604025434055499480267563080518639856660705949696798302167544647692228660991092829544899152892729180664865042695264132004888690111624823055039709810253633784953945031214757256303769012521006004882678818973659767643422464275781668501303056436872279862494452368088454595606396845076004662163498968201152284441163254366199811823873965071680784944468425148518219859653701605668903614059685084112047416470012499186217152185593601527717520601779080399260714985191776724350706261383513670383587449519621215999288272131967868705504505633423599106946696885776796533159413812562205205096401465584441790782350660799465414775850187520375998122106074640661917379962448371313747393415801579749877970130824424041925065964513755174223762192370024931135292250960286499974334909246266177432876264119181140853721450286229350728097009694976603888313949897803278220122923646486441984137919564541873026228511163122784893829582644430179248975422168373597518973799138247998186735435214298374593226647477078532326863221004522063867285685235058747889176045895778839016211502930119508878224912662880107175434910765677009231613248588082301992771044066708945350402026198918397637993047270659923539517590887648018953326054259164152504262441220774889369057385926064583590785082896065559559731503942972210517263310670312027390566178116681858730958769950426038776243716952259842758319735081073247543217967823753473260144169018664026982851411688604935968686952525811588361096486610714572586194218415503192252501809704678819055937961236631785022770328578266086270368124309294591653682880017759676378105149110299750266712633262133481311819438165119863337985492419225472633796521730580040273261670624307745819361973423145050342652207864254508444754610647727085792071786007497606279834690481307257800307843095714974203994096450112679290137080538523725856142397234404734005041817590078957668924818362798517027558789212170102244408813997501818078905706538339963886250811122475084604438115857130555877966909038998048533799767778153095378753330394851198838318076691208892163596590098191043979142568480999160892187842604513215323292556081987372158471882290213915405601263386240147003539190864808158527973263651197498831070500026520989785622355150794848367676421140749215377596906093867052456797364483932972267369415266939035684716535948775025027325567486631910107685306191575991186409755994905999903742843443277556957122818961455038978707381773889684197747185301650436781171327264283548359421286363076195846442689863665045770178461351323584603586607968337570019845899660725853174523848159012807409476881578770991283342575201970635382700731044501749316878433985264476697393735105805802960904364184671496908345102091286813461613204952817561457381835420760300760258825688592852869888402468671463577355732478039732047140243617677095597851452573311643347606476852154850473439418569236692318217034538711257469020858172945335390188485811713105089865505410471633124671395236619043047266896587729180879290539325851918410495332263699793176079797361628584676070340117701407013739435232894584080001837802534811597102009500120391734832024786931446252490837208884599024790125522139219022274659240803556777759554052219103027118417954436866621780077105398816535772029304118162060505622642225302611776753586355584467761892329922351426695958127085708895384837775711015457515121609109154059534922228369514801259012745514692213151159278614445329202090019435681188325831408295759993341613374060194003303355536775475417745987405316055456278249709288472642604346953868328386034223185550779511882867946744367091543216247473969858129218130326201766917006813078340194510958035046220308548006826579338553566460622529660238470362056034616253640271175566136239875363327931761696072093234339664440427017540419497617621649502917214471441021493456297068944852864122096138138579138517592681842444003715691075961579017430674682722617445387895144821816202309791732811369821029801599440916063293783541535867863599828114549444593844380720235958149994682035603643316314749785324558097554040705590284860850932710507458406214590487182969760661076517418813323785930475694176549821862715405252159732395971435830799353979781049152546747815164637812470866298971654099033632520205875353584993774528471019035833197891401774464496049213228049238879314777597878906724335755901278211451994571763810919273317466857789415477473438745685256744711132608480177807244622689134872596686478834396622668510160524115810210490184643732713757383742122895714258171376046060744734006473037686313232515079558908511794406698759793904953345501029928447850365759415457019499117635952886259010880642779105752985170265067514153580848287619800306719949729916036366167455344610436839633178426720095991011630236225409032042204115965278434271744608581231034257098873131810322332895131666914206417812056372402724515286022919451370120195833915968847273377792028454769281556609731604014549519879386003140628323648810983830101774262137806307334351920032236750841023809692386265235832054829466142163015549217995222047318310020163865791947357451830059991582895507426380854031513573598242934101872803615767917231183473612979004380672531904978393077958940891170052361056424366434841242932811666964533676706744730519532908051627311906747030563652659076941037718976633307228097034556937945016439190383489963239191031482603091810021868888538571373843515530084400200570571180824076826512067120324333969597079769615979934265248968569192086109938908899841722737918324717621547550145662858908597475720456330684971679199858798837757949101882222777267870350166619210499005348409660904339705803556467775261204335449273689337379009708250426881267826503292287996153925866438578457318348202662805213230311500377147819902743037651244866389219891173767547570315014075486863366837024866293981488324158220775260094156974938722160016200004549571041113602390204490057914134581058747235261577986213060749528411742080574188228435571331607385504172394063823006186438010167522413470352550545693253509158296288647334467162124269020315983677930465150147056452248243899717463808305932753907888597370102481963746718685549103800730634086393314200586813892273366554742383206278818449121511868733762405364472471834905526318637298652955470764034667884091882496982393806422431844120121287089959484968393960283284010755835041387339503080148509834219705409236318474039017666701657591179534596843159765123365745565360948606981433132655934690826392535509071937798221057578442196697215569774577537376951680387086433843031503026286572962333780948163913303273807919922275128259656749299132846367234246416978974621138903671364407002208681411575814812022448899734441831489124180060374849937515925971460633937110222769590634420562972823981872188455070712447572440379089868043652721791153170581773946388681096853074213790344375535071930299824263117646787389748147840326056103042221520479971589694284315010300989278951959661276848804308305606647458979662421414760917480138180533185244766566945312494172588354433884249651436746823685068022783190225586360027338021476073874265215416105703039701948273898746768675440325043003107631118444602001806718267108008790285930725598216706141331308734057798930321963818656439506191132164602213380998733775725922694356118681851359092947504135243944978797037599133272886343870714015640308632653511738895237239381832912189967276625057736175407499769357108102720850380563891445135350273314534567865772289917874543098553253053726531592762031586170112372470604092646737752594594667214214917548756103317406284847860534897972156960293067888912484097170886560986017715271146093951702538599043323235293870651172048613798964609680269715211313005333473782787672176589557030245892521425279660734599812236965421945870588224926118993619099087861736351498479019401477415786601143991764252487132779331052714960882710286522922266806528251310459233257371295552251466210227667577379691837471630877432140695757351586846446513142564877705478757081421040153648817932260521459701027977350593476426273901846377660786204361232624171524378325479123339479060126758421300510576501419957333124913452477329113991328468820469647341450591202567625588332463196981146798948654122983681138048126649501614782297409101770881564204789986718584095604157775745000314008883865080702973224205995173551891506542432741726298428188353255953426987572905970541485582138472937356653181132629704447702450831177147515540154482898627514588869317271912163159326330062390321105273224870465920222146124919031565201703176550776915839122483282713898743108354292737745813806188726468493882759547696595456297732394783652990102676058316959025370105151274398680013185096158910097234948928290281812796947644445675807058903140170174810802938660145119300452755114424052072212196119485711131019171718629259750723562215531551144788563625556548493248978994531221357944014520932686234924041573178790752682063195404109223416172690290993923977506696085056935535241495282672204027684122652626495857393837961087272150359576267990430392795675182057032211513943496975612096286689199256002727878570114105746597406407247577604010080064723535959256738649057339759685006711888760427487413901813812551198296118341165545468878143561396031728467142016196431031635238375113845841219951688470782398395901046940237223009393080399363099122765328515585588194757813254006678242484656093640656612270835442224687544566408137719416407246820383531456117060156040070237647977923087182486917719135313877246312256077795462495857807243173439070047631179918693971419910979601680041522626198009509705384588932776941824778776822751133045916888711789460703473608119860457838779044726182704436790745287980343438657238599769934749990616832605318513492892165209272345064461760183827042114015782868385829860355639016895632401706097561765708766886357595548060691486444565162312763595354806459712124849028087339274038674513864188814890656299753492464402021470676275010748483076844027722710210151644788439377040039473917724927270512219163746979624661102081397269986296172114913936424038092929438491447308681577417884935347222234597612587133563645204795477245689611571058957105631697396845959425554551522708896910431728134052030051452818922928618652979989272799431703867069210346996055626517355247583076797025715262847994799700825342907090895535178142624139645881002603401132135221134182149144560721385150992535431447297555023246781677437672939059046995152748213435934101630149590280200866698371605693430089371677155575631971136458716738987281657991322587309310281544308395215151029209298729017205962180029380546586917203314868960586730731014896633810198056288056800511605109805748840465402204206317458337652068444673295909047229952768761100888932459795784406250052047868227382197907166537978685076222217809118996778951279240790219962392468924977804366719741004331751069918414727652576570437086088733137598081325796151168012848593675740274189892818305598286592842074701851568602054418236338303951985021013903960533512031445437207569053915595852076981163530629983804657700586428603611791215390071745135801579877047862949407803417959280864982784960422942580867373563187000943377812444485000598426496389150813857517261150494873960478189640283209251291232277389483074940168259455658116244498485065403682995918906621112174352137232414255677824063639422860212619399614720743859114401135523006754647319199619676531932474314176666292184746445515032318723090964998196004711939158327078135652425192677748648764206038668055027448273620016771648745490495912607134539241763919205690586055175147047679679896781478667815206755613624143455289448769314931776200784871070229617418298747549906250484637472454804334580015883446844721915605144004724266898081444858976821606836017571041723557536190984173018748318448953714161463571595341305621381128332470414431339969111569102310113467547773686336950720656282056981950073079514535133890921338859741018089760519692903852008646694747721507221953534169997760844127381445605155377862249669672283829531908960557576399727196206788751993561521691720740261242219611935268698764019292235877352793325806765942153647142262858688498748759821320776629399710745408733537960515840296020192789306685560078212043420007970136396374165424661256594798454347839907575774727090160695661474010044748583901492484014049253320425772433263039290361919610883726623910215124225926943688066779717562374267081859363461595487834025916822188352141003123041045559999811751309765858524084619374387167231661379590059961978847178236521163751784026307466066514559118753397914757525046863434872344541418459235646542698544876845081542283369729071966643376298191888448854013028854029413412554140425807491101743641027937711626383410768055651475622237603583557429903432880505493809298928117150318454838801278576805826970036719937101298011076211620299132369928303151942163787495641574073613003079226900225420430895978767019529902030981842259991660900642246892654499400776454980107896966483410142135594517407702481403687280045941114689721418197439483886458858060707830971720953978440628355057814648584830211458316993888511151457440623284155982142898340738532906541914312683057584398539264686579697815583938499571719694650653836342080128759068826340553556190910982532806878778217131156416552544220248895069268540735712553149892915248491852068815937849806109120092320188923420555128124212301781577869313241439894803953339932967788977197241059623600764052472891869644770657994709338120710712171618411865473976481666721758711941398587917187439749969299941714463957887460842827758573002999825833735459818575052512153780801372275377453389743662856841349766986088004580515920909883972784260333548161219901690877638827873935987875547657709415783817479848023327775709536512580410462786781345857230797961772000648813040284271394387925268585572103575039860521766459746666223177388285006053796436710997943692586737689928207723356009048379683305920223615669699109150309612642058611633006259952617680980538999865357406475002936878011524066524595068990504463642079842541192086268154007807636982768601591567137988784299248725009235744509526794072246741121659142473108376089977467044459783649874738646506817130473831096467502668950659901663930182208455791170241454648915485120373530367233539710058604403866246023486363818459527706757581227231305944830932026464731324594365791965785978022199319134196587232270127641373471785103462718449172790813643518798674414621660564741217777498187667864001879575878947200818714220837781256770672253765271125505651553960796431351337077681934546026684856210120647526072109481250829465863132192177643587663756945334628796412030316597471783811496819977715411880373055375716808834691094887628278414664707489802568850962865157132889689814096059720130673872783450484570983535441234806201825194750028912638767112463288256423321274614077369726258678043296401489908892377559066878205677509295264494934753329703177886131260572194173499678656654626850444301979220223287588411547622371167015779742441954232780649432978926802101501511219713039552594194480279596234476364659607933146998269506424830891529583602851804994964386129969228924181438170161877476227254585497749134449817472914700672036485775110271002627822047372006593696799330000568595968721381548366878804083387828713179365173146356317465090317073140302962102739642728573448185577593205509564641381336828130762987419823158864812337292003142819870961849473659936758263063726608601183216606245722551696495289956650103127450202979914387941918483421794974271180179433961374948843450442238177704448083407700214856393575775042661920706695420834584176479863322550169492754864921115716689503903073275430327424603649288437405792615758312896092511915569156638769944571853887911437165499063476327430113752577897233685486231618852912038909148674061508870244789039821822429287546226093434517098389038357580501263801756829996647710755269609497301389929698185816752392519470768176092863891611142166876281782158507381619840383153714252932007375511686442026783695082573338820076681868142139125437096330962207091606454351677515881182610584181552661256008490001757473049487392904161927242759490560657345329848553550538555263547466439538316350892790502939160686930460463110585234979052414448868683240754739051688596927947199397333621238020248682258010219070304130472738651485054403387061297241123700843434863238145349299616463138426702745177690750741662058147318801456701632675224203014035629868992384697728468724396579835202395673828604651481172667272025964591684511470605812658593902720125352403583059777695100935857130348197062277759850234099947240897036223454587295310019966306437032307199024354270185244790191429593230890641537025643280394265016420603180143170202824869911486462356200922751290267646569909537345248143942885941386097615406410410573869794456025914198254223243036065037888723221666467793575463576993617474967832169104907928152248760235598787622866577523063746519850970578847071987865976639138584845820461876786565933540660442575198097570980381872796573130288188687677165656479501878208613121147354411138921606284300740840037482494907530112879712069000751117582140481640206008608379058423097339080290580864208042999987072655927127204275613881156632266830761250123428472727620853454626725981459837180361129420596817762632505054265066319009651689406602724092662153833224201886792090913433794043172452708616358296932858913690743232099775937520245300820047327244654429604013108262001779687509363113908639757123653885219098383612779418937859060634509339544547340947269732696472149955957893898960277118190325546145253273319235540169339256183360829649497908929979953096351814515041697011322036284858941079103019906485506372618720050603193611753307970232766698172944479918911599627921672123766485367259346233726862962621182584711716515618517526875283800434532979138528794517900848581358560707656757940029639202979625563549808828160370764936860673728129241384919844495259039144400695602187125899306947247876323747704571888773062235579332081598302712664671129027376038237194255749401646107989961515211481625356210750443373649759611018740148613747420905193224694684865728400989952884891790199008795756715917942785528305979280877590761278513575282719914322845886677778233550551927739059790039518601540159808277444763612261599785790938443188150782921945887346065441181923306175955473615097516407542526049525107760064694421529094764444397853110324992739644777852411407250165234103869070750734933267211292505768484243516032154862041650380735012901100445847810179178015602723885143892129565105401217737229500162797687491054800626504257494564470054985471730318311525813101878920724893146673053754068355699960578715900551394559919881742486772787469758872373822136791080729961182291711323305450113523834484720284056027683726434160716760674857148675680063812238494484265024463805514297295564545696553725138019445516792291261820501046997837520066676484804486828781855599980621426905536829360124733628025406688991933025204996693249784661818546519502484373943871954587483808374158718781885546603012926023917659637830423238786644379998549615175881065602818780725476533180486371395092189155661584720910691352581357689109375843092149357673576914255418675994053965318640115350628056673673164373264099753683755054895545320027660723528422664741081815338053677421316275320839594809818914934049152417922276799245736034202099163491319006599770701116896690980896916269937699691890852594701911795981816167337800429428987009981974232560156468098107949303148396593729409779295346518055322063822585399559523123330299238493099313421402951467465836290237404008504334695585879524873119168984194582489531230160131400484207158372725061630832275695079152732379074888838841366414754920538751637148139118419242713914489233044055580687980040297895484096339850865668699412921283982635673686897708568787217149392269292116614385763111089838348648367553471291471004005129036419044845586032369782112152150188896499341978585243317683954148072997521229540503535759428922606579816976146741262592654953577938454311459700456319319133315257372610808392545009402914019717424409244375463482285478791078880496071436448125325666311632748850106301182474615124311134246152489092550030119998696182656951075783560451183081173652202939480847868396510911645026489957158170242003157433430727264307020387211015697540257160694386549537164229858387173540524907814319523925470071977009153116528772594066677589566180566049192147370727062737905797727786177131796005175633242145674932206860447110317374439216700167494398989073892901729382731542762742920355294210957257396392567509896971346092068927801867940053243832625495241755759803068875305492209067681836999249882983679984730825098353360219496256557964379769537848425801721363824104878515484726129255424586024035610202978188938858092239997136259316475504048320675098550213308470685562061677781281174044464381921133774567033784514755651384105039462375804451976176096678104551005542629339304230161190291659161776325908749099561084381874515342227644563350574334483825357640823546127353727951156546951303438461958472498495098177653649388664122347216708082690292369150232039209748024383133337909573752824850574926461642549665953049995270054638366361527194709946091300709613743590549991262331344311315442863467455487508975284246182087609855668452147754107795606860194423004335418415475729274720007012694971141524882314191551018943326586934288442060549991108663029419461933207784375772811968383624448112951083156755592947037392736824447579623984164289439069157896741536876066933239395996855351082649526882329203313654491501598635068344535210998222087597161814384268300250761218426953244261020720723008824751658409243671583171082556655371980866568718619061870868677924016151066481980676556682500361053911094109745622784820196430666874961148654426365592406687162436809992739799986872293484078447075952554516929643886669763234036574912883279209637167196815876940552697054248543242461130906305348666248913012040949740102210278181107972140486224309239710686442698362365233684072605427176194422543538728056256886769541694215686013262535213792537898205795673363654989345930996121574074743489614909599907938641312844741763217565170754254788032320499978659387617041492214737177605289540373700697380182281993220708746850861639527937957327338102673492224264671225150101341841804427615998125144424149490113907800553881756804174743333589136475800320878757274909929906366912724588450718348267030714249442971530538865861361884346516658967958919352099891719432918395075294135510007512751508834643331639407149012790551649460084284732376131376303383863123837750012828604855561044624809441269649195785357862493127660020377918892295440374414161336379601346629218535115095031368712897471146115677511783223086682866115688170311083530348937251508299968100951113179063189825472737173097555708495175911134233763232279553326360882241639632722102851907095609872990907341695909854371257235586700336558824407995090914871823268366214370055553875319366265790148498210833556221334025830417247554052592673580925811575997029211941361753242378679287277083424049907737637733750881440639368424743989157557200971823422103830785554521293973410806947547777818996901586549779308281734523463833165956410852468101262826916037254911524867358029509166154874240631338275963452463050914057380283925418208835794318888701856282651839788208405228048500738218564394272904640627829750788914619509296308843426087949089794634374479545445007833354332755307669187940661816940875290906244968438791240321158244247614480936261484407568725075180460979868263876657375019063499477614321484565555075966577860305937642034576384079398872355313459158809776743371414941920261255261458924788204905400682001993098411238671416158033106938317508241568805488983719583764124818963390062163378509254878845313924312193102704360272535997634086689417104192122961108511610292988833099949240955419364747394767342692761283959451547769718304928844650688193489499107337529914673567549336487663387627475528788645097991138428390201296385461877161689074105020454139961400720476140818457197835413483071108836795874417092605746129316582091390011412868138092319960952722521643743614037376859550778814578262919712215961464177579089490040848033483678159399365662110636111031433451200604653661880748381781792403186780171236971735227724223951424281112789487806619610730636662650000981886668696682229630074615345335422282597686695881270850197336473010522457559592178255870459889538131171105385580328883571093627678587454402596057179040838070024644690028634707004977919573054979583457762687185312361489181468709589046130733119677056576114951042061650841570187885398002592468672303961650660220129069910525069831702349206417290092741418194745580820049991094912143322847166496021505357829174245715846068040221081757274790704348649807780978240632599408426064589962671819511317862207389249986734835552667626592686366094364094480269913864283766937205079399444972158595818497201523724187565816583750167795277896049066997915279405649577159528951718388266503693831113945919505154948260833890696920094388050253900170785379412490762312238478485433411448587586536121797189148430123751220609492568155900375243347892162468474890823324729490884847890051912696724954065867151937646005907275079811652637919927265147660322680347782778022253292979195669512501415394509972540474040000493469144898942040815040867962072208408172654611674895477238212640960045064474372529232532783186381659968082003354018857505600016559412597256010931772807069137115341381455552319241461621646303203401993975484310395143470800937163113197374261430160644068104925755544740679588704934891906859004140779504811269002906882244443880955875424653171838342381560917440282393860149307065533865455505232976944246399007408034492861539196129909846455580137862437570263729859069688990612491115715032726755616709449867444165046273608849070808125219745175158894897115475100913904429808971452642324899333354219571756138211482654223785795689881659399323953418395700574145654370385739661806212445558646447542197851650259499564280671928128359000406769036964460197546009982040169744200148090615826581599028300567159662221357724501664352357454443999461622723549224110315101471088760554547285645787705165499082836914747301726669034711112253814576437541913877492957907821282653884744243906756403856686673827434253151484335254518413294905825990983814436055363668151047114922492809957483767277352421414110899370362998007833493386814989902184190614510911402106325893247087343358855118791225232691148626276015937257437605807590994447034108804239248819590954836111210327377800659835504339915157887283466514944193704640416077320803981552993080273259193947118634655221760858467962565734416450117518734860571698617825848359222988415326689539596532830015482001460982001219050373678725770910791300048764008067404585683513850341701263492525293286580279737195346760940822663746664801110418794593686396245856327166390925412631209369049916861314964639492231661528742043571703233040211803750472237734042725405993692124009865329965614575022042789006554049309191275529817821964953225671926182948174242508325044834637315717205892067104349402628129097729726817319196418378907861413076364601999842776202078920306603436481862289282748990127274614607144638717378848415402507221371901068489886171049449428896016071645874246948110859310409862598551769791813390367082958067726677618553978125443594759528782129636913187714137805371518110990653707890451182921011512591128311927943025164206042886726550679092103164672963660170472852315709478078719780935369233889135466048195525128336226989639559965029804172508217550538983445929314035958325532962500574531672615679892643444535647410460399563607154823342714416882159621010436317473478021498400342399263473844904854822339879840976875984559231043911192301015551741371007941064151753320696001575775625314866994503235868238941095498444957302734915667509650760353941212615166473995394287237418620163725548761490074518147374596013649941835327145137215539017576504677672642559429510746382801927432536800975414819000641155973136052559046476243021824608228514663342258082821219138412781225884619893629667857013320282138578339719584244357752403456119773767116958113502257527193263079837497330537764662816813028204916925562734093564802943277233782329850816882119886177491736409931145657624238039465212774126788994454519932253714375570109884614631562255338569978614383299632515807386277288452329877683765067204042171301626510339442901218178917764867302202882206061314017054835634376456714942437790659250160251024847820878704695772191839088294429879121330785485056674307031328679985147034348345490653940623928871886085721131977068183755286151771945683318201750938072818721634447088387370814950541373242102608713306553524333167653887749978780863875987919113296242582878038874732245510675655773782554487656916907374167289058230160081535956026673879149282652870751461996342417520312134858812175590298197809026364423496473684734326607913659638511544303769592076401667557628619373756045981329487805678258502390612664505998409512505122437930025179410723622094114919141406727681250146862591391971620776379322746010672054476392629952724010159072149702387678878242132941025905224211914292764370177118874352052189139612145322020755860661277925288132363469387439133416744032119069377811633431166561006153252704942746055153438710811892789941538378567783555184587342494661111253231528899683639359946738263995821885487591210598555392902242742365512227563162103372400542591669873548319308441868703418586640812424852580926528143370814494542987478402910082995319716158967293173496074995682229397004550783767903507753028532439426850533424490236816946722421405044366421050171371968155717485068209762885697244249285779637550717658137461897961801883665286675850455433255817287736599273845368115680646526566975137610236268116892691858033836467193326997536353420342839221465032320690644641389826441249013498809123369285951030885587014521833616756835654696069597989084543164387851550934608412935441588082576622526679474472005237551131398695311611054648760084041505461782876304699816854612567518703343066782430348744264142445655358699639771388967077955749203873950261962399051623163916586945072647759717806161086090897734343823675134376282732204010050278402952177310092646894918686203061628687087664424231669942761489612611508128712982870582194472754327875637136962483826682834989106374652435459665548322561191744900899162401948922876213389906889050973503179956804850235117311509631100233343124637604638067870074845452269427817156218394271028496166515600923071921611194453638208481954063103415474956619252994665397188208892908174583508976391729697369334176873248581795692543179965774633864389858278194843227555532130054845211125394786006202107469199003294414125695589891857032920431282197446691833933071293275789123463322157595230952535819822036980078561839684522892796611918702467739779863355917376195908646824136050539637005845196335387746210546780475855139264930908066886165775666794602401594494189904034091228727651977732995284666193036204300752569596191800285708611644765285198080516475368142880322804673615570575639056824962944354649744490758450762762874455211433683980805112723595648625901079095266323911922315196841839128074295501388328470281443510022398133219339339796083620377207929968709033817719873577168859419308037332767473709526251354905883873072517158036907438695899227151949593505376459185003116961762719699295930604362882790398655238716780357727684603023145211814158541420432407530996336056418616510288172794103187125279898358285950410683067213504446587803020696569504626437037739171108268909395349404465704995116762754156868913693940340301837067060884460397181884363931728140694212573855975245966009375410816641579506247917456255917064671875366990344261307680382895855841122499130416780179223768438335735263403993868585836346368852916379644881535532040973300416457694399628473866630259729850950270066208724207414480168394808479734911391097098682293686811266716545303195328261827034447463307032339211048416219102293955619031261518845226379455006587345377263487326774144149438650389711604755486854901520014893168222345074530457712702361139460374558198905480493644580409369777953193499412307525928142904999990088901924796529595226784948466444637498485579645911509682164178880630897908626754864617241364004006211521033631300882435020745018866775270861910399202133720937257195488680574686172503289959409966176650654310218085372887495474244184263508278979932796024801099914428220584875023184286112810794652491668694180966704552956049239950691863432464307948172025497190476779627487391447883799238394776020717217159274175455653109624516710143907006000388830995213198768578990298646168541885633666000046501474593776127089496712189039765360864860484437498122770149200632983003740698152458584199253584294029118317468785598581034183330435777215957793858864054775411301229103875028940397251542546415470916239591009778853721974254189818739603950592350124215500087953402775269526378024146609587441808784912278619778731946317799531806365006608293580376275442991577399264231381789709746590752291204779133919568546964052478905436977826554080448244775399517485060607983795378333021546443743664437188836821103996511814043868723418147954753134022151477282102577517215627460662551288298298028870682588991171692654920587243954238132292357352465210170924208784644666473070940556880962697059201089506050019486367760256835910900570737979231780215332294378590309809581711477503008175682024939756266552127747911967354496085073049921107695761552973246727442012203450716630073261843846910928755958993654939522366533394384937279264378159397807622744377373495066702287965424490907970383677656191327143301948480164191943583858903057853446806209724632782109350673975930179178737455874117321342639206127098860631570149454370021825227871797449243841194501466180324629136427462235087378641384336165336763619564152584991974451766205602518241856384155935892411929355847987457075266225090599693650272695290662778340971853749109673971719920583539801236910079795766468688289731026032078528697099960663584929042704911103157991088327104466729700452340811057304575042436223879640970616223598309091930496127727507397533422544119829849406245278390166161116275982643591833276062702426069495325570510374338567539071728152199599420834964523940778043044312837510395323815159915143379469785192807568410567977868543616403974352388262092165283567997166740647753458736056204140846556538161147277935033001993667064141468108257001037896972270669635244442940712323770111257290926840859758606170645854171786626349671788661102699308861271073838437392486621730462168156463719913277870614429601595796895531776586814737168711434074126659354393272382287821358908650270930025775572455100506636013582186305776036952812812881090117652503616375076940980311466116761006298072582251827112278505269229668920485408530373182916192671557044925001072782754328107240232551158417262308173401803743440663716966271208225777321814337001723264307232035014627921628333695595497785515875529987570517448075039736995562824314836069527025736384706769947628232845130130958114709033335908380885368038764153582584436220183716515435292673847547289202086456985182573507568931136617838265957146724782351506410247135286437704820782728761793529816727093058209281345986666452538206460724761142369945535013461002629831992825715024906844302733060649952414843629814296329787368118106184773338248728028976877749522286526615510670274409909946177222199025392772441258540121902161038589478616944293097516905770528552097214033365677787196907426944763074092857654551467710127359480292431124227717411741614795664922574796791127128765240158811484428681363743711227906946765709317084237294915517849754594595720025994417088891248438523362109157712837002890490716228189980044470821273762684898363495631749436347756389212997964613233648746623798379150165710418728930895703047510326502686697483517179944464318932548118086862951889477748586960268127981119676373202715335581639431641040364899363437488681104467320390455065153351313156418566001537248407057063535021782174741128167064361232446944737796570309319458288166608284946211672415185898659693659464593613566145777221207448895822229293806440265590054833534268405580219263145735286993642999791139902672479027076497427836331812601645644857574206814047944703004869817772143983467580149703568807523228259333325546497045190540052307603982853097586090351116340981566075976518344132036131768185262383704196797538585780835502498426182275830069027268971857652930173303507604311284440875992515009541281456616658963534109001436741045186210255765760283052906514936630081016086476862720417319392204587325124835893676433034724656576759967474078896948276581325082378264083044236641262433929600205823520784278050311034925172702869770624942188563925013854610406774416770414371218258369196504178167017772908165119772818267288851157457788628113556002681243909928906545610222350878700668533000453948746465095871335726517607497715850370201842176179146186696805277621685600876466287292353422967141650828475688983135174627201453924916332003776854642607568103113242968012632188796675052223543043691502036147155906789960110138291597165529507470386598088120719860958363088792464827818190981869262814406194606941979818686501580621894389871346309436533900062239746739539767115292345871976486247732727160089574775201798169840379721644388101970955452786659861867307569278914874311837319124882936066161006586297931348737783122741385484452236192816456575556503525818385604348373297813766689588644457045716237350606734668335607545497187136890665094921121701986592331383635452632440365486297812225245473986922716683872672792305760907927409863334040608468767940051298549398972866013236864579481912242200556658723307338591122218037583821507131610783151683158102567995228895822125834468203845883900116380177799089767247178080313533991972100140362042675186821008880139377089192570795196954209246622349860363603495586015089435569707788077389663212043692982592701825622425131005505046380679995551066222435086243145451095394696253639521323367265497804679464205567514944783849170593834826957659497378745339620270240467079219012639334701910257947074559051163374677502231463512315370486709172987619952656241213059523521298580484071977133037872215036766002334373057197697731613241307579849933504808843076666503740181268707843446147425820494500297622333349725374124958453649078262212397098162081623801367272424903232354792213591158722582839674430096856547276917258853450984148328851739774622616862004382132990790780154180472633161727484935309331337019257366818528622198415807776578476080331331404901621142002654681192747064928199241380239715856330588157645808388836188690519692047527681917283808342810143848613180765383731271543458256886540351325416099658051487354460677718070305135439470014417868667316454584765996537722741774096354859938014888021701930406790638703834282946668397235570993980580556452913390027284570140627238048963935209639285916099356143976352166358976897162007818261972428324862062056400115179904607647176188176183213549070759360974195404030027695435239299128499835078444000564628166118029015144116319922274192718169498881426641869303593700473215275326069157238066146242754075656534045204086008168091896999658380470693103986148999801141269479155643650940905607911629220284749375614987309781347372617000872092124077806618451931394943254031434622286788829531784877576666269832216888586813873610281016198038345833358883383046207396832520420349202635679316011885246583307144537679467595700253965563232775658805534690990974764477125136613017255128920384926679727244682418175800512556544693451880960170868372963942571657445013871352916565302457032897233605775836921848526266476738334667450128983438948763625746379610836880936815864786066036844373820559016422493535464984729013874969757184375678251918788250075979420947106956968958750054801333070451443791489982677403266860371405790055671952553359673615964135107617395060790213444861429103682860873635623668499935565535680406688745790278955062343139086349118057647591830419555448914777727848276708720856848754512264080892925111254853387469124809760627413046962212377783262048611125220516037607101117448502010608252888709878419649442869643032217264421987654732217560356164877381321113157382655126699059017811772594072691415251418697831680459204829482190852932699805359731201749795332271879521180022753098971581881365669529811392795142205682984890064426720600741116527117532755589175534821367243842893409613134509240638887406759773978283859177574897365468848434704106246707658434202425812983812945256664601286559315361025660538244324800564653535029930840632381023460824398487301415709243784171228655566707586961376716071931665643491523579830091404144468822233960873252284661571263830697468501113562910835536058190985324624642883529935388043412094597025229242983531183104830370484154181075114088252209625951436087508558403031948224641035367955647777939736934930768974078007578581153601899835574505172939705114672891149279498223144565972775787109239115064424933659359363673280525756471913843282422109455962819311497912753512686409416667672619818025495377208335504402859298667595277590956450804481502742239215525116146522974178091053675415947067299031625160586868731332133667026918803986150178882463067012302009996176001196598609179317112914843653362443317008785858702177818117042541527279659609376910005892562855369634529266023513925566170996383463125376381613315415766651390887320322942146878416879951582814797348291289873551537283254530487463311777846080084307434971744745504609790477877802517011162060525417473860842677981340074582300184620534817893709452256528033709530347775296241977085022798373848279475696414490574506279459164407010955359477009749365984073735958972928562942595586225064803414170430223807252730016314884833618200080439130480828095184202965725054427277272251939276358411738416600670189744138275110932088112757641692742528636490793701145129832520674951028543992502316999325606075775689769268885760014450289221431253066838688001280490539334997326145222346057560710783943661006703782504797830474552710652613994936946523376074840637531616667832889925980450184988172767667236449538396258194885868266341118577680995515162322704683863696762427586862574273553233568410018923115929377316746967216337661521701026515689752424851280276685132709553494804683792215736330888930482270192763487214408330506681695613207212217995637150655189970174213617718365339555329539995691125452334213099445407827513325128985166548590231098230266339263331887413350450351859713672498946519471684811683374261866967085503926028305792422167325634137077953945249555109828313264144186037343182003757772765527103793819338985175631834796121612056563091464157194331081376087109464917807811515719762964381231919814132867240216096037119951698245734753738549271589694093815059323364389753628841295434147762475583196882018247410567731534486337794735906991368807485858217228506806529269013949112337975365168419944487113449229694277220901516752923988499161346260304300756333392646195274614519525598331755897563190780441333118234524607664195093241444287413410680574579317721441959658901472980522142450053442264210447334775380593792416784255022952654763975985874126858939383117037384530063408399717019976847076465869181566635444498213392761324154268736228857681621454471742392104306109516261433182771073618582310525583596483478906677102903892526797292083635045154951897539179867512661684774039963321082530950792601559444875391765740802209408094194737578991366691898201620075197405284039894762081235699575729627117362134691257717262718544497412180936910900400160026859849177247110328918413496222710394794792309447111589738145567406557572226542989420468097799202396417145564224816264739320443924821510482197515940838845227748437558362326733684129683902029849889856343212600087089815689183245294501432626651399726767037333070384362415004348562301408725235907272675446933741662072148319367405340879707686387183259595679661867282104960430990420973160487545260027413580683225794995589274572127381588669173070950903252930464853283232945625546933724524302337020087017977177873283538631434329080713978391600505197278614024827543887213512163463262173650583240975017626559648862827786863992969274567453017001840450086287553922800793724029297122355699104064308132993879689721618436973448772868512953944527929818154123844389720333975452818147201473526483445338264374922335264783901409120272371063303642769962969942479309552887431589612897100046358473515537523686785467378316803852998593852813129674652963376608404238052742569663092107134124729886363034607795233897147221935354810149563227718628648911971344787787648152360594210071450376432940104570518417291611794141781071317948682493499314096347538489756457953793640392768660017106584010626572962534980056252901424069191007102434701904677120580628743320336438343650255911378193444076507380540627782887479478787017096906574413623209220470966501708340020004240087065204459700982882387400016287978562298067552176025822495983509383411065891550255800258961606125479444297360353272155770439011981567300396731444644852358642009622730439406022029570063730742680750563148522362338019328674101212896147471017171405895556376802078560513246894249323520101546979197240888502969974288477246114844578069101767272556209595653027977608160408613028683738629732838206652863294149423685546952627309319996926843331232464281763741676504171539858250190833477988697020592197562752292433274406087850455785273456462025649993744335425162831340904539537314641657565246073891433269632641007469989339552487036874955873132051523091828140068964275877959346925795287523430551929800696668051303656215743615146984885631214500241912257552211424514139159005314629576032523180656915636771370852081505387383823745273408185409512379504524590949574438593226683904230875841828548564775663505793779161605168181092137935758033067699277155621429334583037551081805297830849814380610706928463831436162278042201143466621925516556499209951150675623990817655830928306471996183879109989631009634317216801885446833988780509613649804926056915066475319263821500501372602168248819444032960674138694349054644814366240093676433166391756732181540975395348529657202106057752363292847748811667337216036796909388571654499845821715272078221275284800683306521145555566479030156995919538268147364631225326374545265080036804176231536930332247358539661220735753135004710912489698430182408331783755621029704505166560846729588114804638098116949182404915603861486502385140102080570326136978427676447894888927978065582981452112942962321353629780321568688189927452804863673328946534749766821263665154349538393785755448268008775270112276585771511131839194068495107320278113384532780132836916138258799454667972087464178698049941496631155090217049470154871033930932703892157958722045080370148063695597182829197948485360304110462971450918401189209825669717245119663008236108182849390899057714646935207148339390939938355877924724356279390527931093727291234310120402666946700026154776208647853384927767980160736752571116533385875936180385255277627337574597528494201542009504363032025697725459605055278675309507695177139504005870550672764936872067752550915185783295834161436262342819208387883260859763981857384707728093032626503350825464933509502234872650623334999919302295780135839643315405388185554674125765199511666047304703643923896038043101223246621364647838882227636058841695042642722090504980601076225546116653675450014114996079104022794401201856442969849830009652989578074520805725182405527996259709397537450586462794698673346505233845751165575545239620489410014938439507422786961058485346449936702202648812624397223119006604049860549106021653465893551633233205304031342531964949537915708996767855402077597396698107615505436834614039351211723852112546103370440193611658917936508073545818244148445953662270179850702248410714206432445122925736915503777786724754850944488033342787017488044090993153400171745656176491363198542447997807140722758700826187863494174595101906168060404973425081669637547363733335076742860357333646407696580461131376838308295153308172215304241523243299887449174728263130408145744066650453066859916163479561636614335277604063928253095226032792471353372961056296787969632085976944935853618877160163204551087762596078216359735189916651863407384930650594471957021879307465912020232566115782695571619668284886934484545530484855689944313724349597309984764304990387221335980795691200944103218041529856305006484675014979210720053461299240905462860252590474336215530833620211335203592792389961106605002064544773645256528612673689256822023791693744230848515794768955248847767100323137966240274029983329140670291018958763981320226534239726316568667801402211265704230130930318129083797905499953858674271258882820131920941072553646044171325576772327736082852356454350548098867480195481807776020792494699532415852684148417970950886723765655497377440295636229818643626371297036937885421384394733245286340209260617843392230241240081916679515922479360462603820167570887733349440496154801195583716823996711977668449920162943841483886935757099892423630264156109003622258812203661467728391127027497219591585856777440969594964316165981666903481657455484868513567229191617059035164864973026945141415332180569965712212228021217661749303517565647584735547320394022243175862173892424960040530221924305880693369262297678759434298124729882359267240843173865143203805091893275622631072740183059367962652001352683023445721048582511463960732697588731279653199928225764353943519171424518991402244479125808399916730872971397115874183168179725477572384400805829808048488227294603848749269556650658428873802222048714886850753290633313658080772603523879370444848174582963510537092470925008420641567597420540625673029653588904333441092773127927829634155741486724404435905829423153059933837547077685847923967184048777095026442485211713240436783147470306804801890395298840834096221280027813630905454730097394447359675352658135794447374217126313451708661272423276352024221174736016335935814764482956286894679006343908613553966996912006107635013062518573327911629892052856621889380828586551540701859978267306213177182916638030330122492540014542590415422606134851423172883905834206347296630327187884764325260054879593417190202759859331783275151014260056803543480635643646495505402704741248328720534938778947413552181821941014643190015015435374172996535806890714993134127836728841957427307456549671049133190963127584398415440498201088901094686348762655155746178602414386303690186280631413732993956469260188651356414294881773063120621402196788513009260539151920385310754007524144630260351788038220649652696322196963776910882729849096918347698647183301336520103332977035896740583293307165781791637921453308528165107614432331011158045248341759594558975149601694168836994553723858367516967500340003766658517587655867512733161824120329833007075685423967314296621831939249418038766164317388798664922113540560785311285765858790336704990332233715667555085040378642494989086472343482394182367320273487924032847446215322361494086400553451932573245930722350311510668920971217163794751051269934959907305360554481636154160700149824696431950487408338993395162417823808770449041991056309365210309531305421745551122831853850703369035962835898233719493927455836696901911081207740781906022866426200845968779266629185985176313001883247160480295776919211702269048027090683296616610863248402437665037273352185293249623021444285631340595923261199880380027659814627543188882983387928007754046994884973787921544884228019201353484815285662862830534420006288140526917807624692060461186271168201224102404379425618960487618688254005647742880136282666510482269750887849554639308560256246263951385041414545269294157443767902136094901560629034997805788699061850376038389447345450294186652284605309026652021640477689585225475707968641355828314233495461395446220393657484641775123900754869914712199155091714673293940279018128707025994729148201347365009801365451292637802666810671936887234212472504140099911415396688134151053053395592404230282761770928276421457204704086944056963765714111739665228470843681176363542753296078337833669685565444336092614957342216455657621482013374634876842601555593714976549379378102070287547306858986618542690076974139907763014581862889040245177974867576150763429624861309464571569109232270200901098265493820890602464590775487300175473789360308752531864382732638891834940420012429666401144579808748722278506432411487637006697235415730714156535468027812132779931948127325950262544387894971956472957846924245729912404650755132692363085070033639840714393667248624992652139177073839111860252599867249337228960780795201333017424520017850812673164189876264535020253442802993132621231757382569818511793548942622004325988289326991721269101454657959288790732934249533658838594532799789247714562489706897354413862945664167365155406119885774364543129157975852154216249831344484898243320797330957760344681514167652964208979886563132800249873268596515390363114032809673876208707396605885896061614792393024749639970560862164045550535753383378617569831380853497533681686567717761257241650330536083431988782499851625363366387035224415539369788937583129464794918127078548083951271438613372307207157814348736281315672554177149357484162849043487857000510386286100954865296474942038158624178492186962325798506180341621623595504790506123947121100396743866730261465153049742908204879653999473617221213672949293011166377629795938905478508906785566435025283463913841843111195015762375579908574405816806604333884109219787859156813237300647933488764716192794906242972531997059839720703421345613490106736306750173874021853827834473763274028173749700981749808202524687147561691637355858032129429207486473876072770436716730934334817380664881227168858285243438114256192376003755076102177732498261981061011886950720556656738624541248738754661956483803491984397419967512149700026852392340323139050211813704249801512910717715459332406023157987615607233894100849168822505530647717831447534005872675856442083481108534147524432690260301787260133092317009512033219439783427643070998269176189406854991192399235928745274919521118758929205109443591705633070084725886551317854968487402406046043701625209742482580726944842969184655510577839297226686255195280386348465515839102994717258325117307972254563532204897797943702515616798426905362773578343735446792874514053704778034267427827480792003097057648851454629859857258381651875930461173293293907885474394204161734141104993454364004296855182892790197315694096413235533115697358306445488366355764300231213676136995608444440743329629956786057307687232068857104970708829359469856421381818586321535335425920838801056062342908543666354539161022566323200654449450571322926162838379462655196188546858256540859691353735730374403167063163233816668478944585438500593444832996546226615355980030126839723921105759906683102895546862044817742502007337577772296371349728788109920837548895321743672331451862981397353965988253643237505701437793333761070575764220213647853140511218094471181203475744600275282220681312177391361495049062487654151753600130287602598840160999810570276176430384167147826719445206144396143933926173015788118129087061834316858549125010663132961330942875913959320089176234010962693833979469948324677589075688041441055529642171801458867038141298440447315680912035988457308088550441589635992817497267656097182367991931575271065857999267952573454466705446702998600103969829500303344455223599557124729477563501826175099243974879492285981471068982667655955094331510128363260707083010643615331470507647024745605126669975637948804260542334231248014700361155152648487010234823687792083738510379581091266160121895218647544572709862011978249176440733227963511152498936072634621588679261618869426041624033624735646502692472492668080556544342084719574540505379303493463709834117970273874550992023439095604059554746427676139598346163465548831271681358432241080683224882305103736469009108242921176955980673253913104001238639678510335550510730603133156278026345050537641000946160190247522970884236706016951173034802430993080532836744460615736946373436981651738744335880857993753870652382813360683238372364543245826680213446759329016748407028631300853598830533483187521647496872073836148150182418148970328428705336665719717982841002865031804553124163642780886366068504710420718375978940961865070135976363725690684932609857351482451225805816879749913430235378177334156978385011433525845856077794047971924289676582573815452363858718918346227708976547886164927965952751343399015129405005476180278623954023554526933668791407604464708839646295202987282163432777854964174789038574618762285013417146578418396610430667522894372902458291276139368449849977346532979316184775548275236823749415309340136796988595970052841079460578053804578595462007706271450132751935823893910370678565579978381986140109692681040430127901910264662289626020264073780326999880361986399228284929456009585305925450509447660901878599166326143397940547108354326369314182602787485925043367864273411627710459155790854172131507551574405465571758764762460348241055839591591867966354540006418947957003134812956885136265765235030520987069521628886339465606103515248305034983693843720514090703923795172637673511707534257336419660063107724163211016923592474556790211123260325724863358555669288227022625782069185186811491082633110027339200316694482428446200746153435165292476175127383531525595494087748870178720439226582925781331207504573538409328981430167324984048643684296052962406386381687263851700062073122308860606292169377041311462275439392948032457975663897924303105599411273127533273844384012755834334296636318126995016279066877632158826352321945341854337340835988764327127424975412770204810321703420104911169841931542040454227100573070721464394269031167699579082341326167910025756403126967290521505346681939329111420425557845849130950203633459891045797818975467670251866781997149772619262610075253944551000457820914990808008673237688528539864013425357198044984965600751325367150940381775510529461128529977082606945938433150715304709087492707257368135760862804095220217210279844882661437022041678549548490294561627534330238533810597486408730265582060499514030154635875907755594313766922316511026743245041379050037244238737836301336021159185531004250086490678073252983013312094593053926362972599249069174810414135846209811874602106310148534519307878736313278672517518286774521094068249199319734969542252467929010810712282889908834835031448906399662954783715429346664282096572535978601201150852102949915000360457795175212186828003785936069892774563756778347413667221187237263541905015554447927181385146058796117448076008633690429762955079136444568934979511011583184288499205027518960899235078088154083487302850347246761660008384971257973294639682867415000932920091622212924498141079030664472801155961327087635132905585914042010629103083109785181750864192607533020400698745664541404491283792487652363978252434871621022255872756361112124148030874997753672561926046186143163806766181271422445853327791803274592503210735413937752598163103861068847319919844250795127389084112827123299540308791539279390900406829000166856276861578346302167822608000371548360200294714211067944580656490293165242611931609470707643312594455812234084664272746911352963279133931580915257876673197789701952922154711774948394704863639888516892520390004056555749733672235538374808714959411110835309114614946655163372371691692897450970664898726881846248749594360872834125278671165850752617907531145975915346023712457583731792225540243165068609026899135841936250064255096807279928610078698743794126266552832002905665142283344826701376285449721575813589549787244345685225242587742791732683830703378924313627979170965819271667713556590442028096597510347953529733913914839569672672290066854539393676546877906323777008645009014188636676814554925649393666241431974468750421842838273853174038542363451450807667169534003537806178423849105145916034729667975000180075805755987893617152924695993988487091159251782198387165884176885611629339866968928609465171368379038177144849750304626176759624329873059650706283173848025269830092165508139582164030554791822025535010739314378053213641765007136544268336962730875371968317001991798367495831470065442963169509619704572180571512378492716981245040777334456284398020778612920722450345130033028611199433381829011079349851078401285540219807120538955986829091181308837339719179814763994974963530012961245031568118723515674353761071146498267434935046579224239258683292202198077651366946660361167945030960699615647657906124504965287543954079008791145023272157376864053479215752318050590083312738228809441354369349082160054956510503978529925039556257034024808288970003252244495738643798911009042947326071806193215969420853755855487357026686823159100496133115991785425377998749417464882203328879761766790387854121458624114667140313130274691433120634670280494117296370744551844681017343528076701294734758251061418103663232206436537133582102021836412123011570164058522179124337599318720606906113534769119044577888720573311017831753252874521538449450905398050552726609005988212963688721890798830544227938575960841474230173268655015797080324479069750098302712476048822065460819219881151347038185769849737831386786181446249981925093294813883718408684482342611463445007102470756225445321870423954518690233791779545986983021216804611301900081381946347780101427377283405649863095951315889756517151950182607278792414819051838811174357365603781989433112635682227311353979553782629212895953763013195213388951562155844645762043590327630809955434974677002967611182984652524868431292318819270537068759841541733069423444760318089620911943697078087389793492553439935741773101388727290234551153994361464666699365532345674680242539915654540890631569181637989268199097082008448740432379249634469137261812030977884110505523724306387874705784038734245622186959297903668067744080741093949422342688052590112772434013221979972049065729565199875036380179738519811864703769654697899024214248055728227241323776783684655765360835127530760818754101372160522764211169729487589034772436659974606255894215716135787032994571879227360935537656572439487102950428586957242273495000380260981837176068459873394967944405057963801105401987328238421888949622503152050201353592468417041018054869833747520186094332607512869978447440214239041842652335046207308349606645851006491363018169762219284686007146016087824760071604873868169536856902179601796734845534287655219931224097129405659143283211347075995475483412341935342392633519337156818867691773048958612081250258357874675734273025065318786175197026390420187703059264277337924018925121772764626652854109673526780626105776818646558276619468073132757783322234741175578166240921476883739248833375363730981349666618432217423317261596840048570313933696844244301358697761962318668109672212331007621729830345760010062371765237956271811172307387815853017766625136381619459253294947131704378688622156580558224604145782831503825835294585112525422037440865789817007030197536133451314030554287274975785429263977529126190678401635416456108503915259031051725628392913875586478502798944718248443157555972370882469236049509841591368499457121339329019644472601965445664667807580161132492543518625216161361463322641387179937998985367758142546436960648437881102965077756987313576653170399431138872849743827477745483434859668459654878618370488332493910745563421179527635277439388259260312932331189047729756820008193644909667183441935063290447933303472144202880668813030225930280316051814926201324351289744333840480624700315553446138949366260414744086014030783683202236819255390002321756681610923619266304687744146065405610282995336715322306541170170662569917588668729657520357708450915672306709098338186224087734523794384359269684216118209382169623654359206170805221743404786515933402054122672179715943437706907364536482091245890571222010947018963226317828533507528845259831625723395737783097611511972117094812762328192646882133031292089673953289282800713308619311190008441092175610916359846874017383388940630494363140369234658017039766890869022212385481017857601163103819296324062665003830226529018103379734252141206645133241755748080199986814346028149284507888648794239797162062405439440818562024458938550400693364321191449129659363109464118686495829300938772929803580354969388231564545877337606017604904112084987595212913094549183042905393740659708423818810332098107412139939097899053195878761678440187678435049647969924678397122515757325810144752827418487797733473531748526439756882136295044985770446014648056732737099546915789700827873608468869682506994056943384936262203507171933938359252558039833182913111691556934075864991165258133979556138785133350794353620710214435964617522283954780798995323409210694937636671941045715193909034291861327815256443120470359678576196272718932378761948818879231817090160912065200111529732008863544626481216291293764105302804807776853304403612796546347609137099199669373140791931963161871081365035846283280746561486080715543264438253635796562180221629499779921252679298917718802499640629723398110646659208624032665257795760111730918414158922230791361673373338768096578391487971646088945820375267478839222854848081549349690024584277924644857059996224704172903058174641463900892444595205827805384882673157552821537849182060376781122850297090084815389791898738736171470591517173376824727126808918513579521893936952230690461380166048973411009055742731518247712598205834569703149759183188399874693828294804968581288736891697139904428410685664488019015424277695724971189603251441031169829530461281246845991709423400235046645715905570326060592135363593901730088535144129595564275753590269076772946167530635633973035854899259773997007434419208844875920450936007452708089477155022648824579587554965326861789763538712643785157019688649963880207200266644024205332051686426809411862758957309562058533680423955708202236217198217425909596098619702138696703954513375653888053213709257432478587843847533106388454321340672866550722975841749583739602304076864426529538215540904897546844396434981235502327817444834949689437000680049364508427150291389296754956513535433714127498210973648230105456491951827508023526105688008885498278114783575797226322305685162469497958087843534270430050885891259230012612223790116042558724774196875097491768465806310033260593307402530277040028489873575784013051609708945490236060424111297306705603810032720989673791963666254191120984567319747639864082586738821990325658521526048217866826589580048952864741653268859816658404713060263625050998350565819153646196326627329514495597720516365534038501855732664050921084119980507786502337250703360651679293248500136023867347312982063581360052609713343397391892299940945195126368182152769851855289683498715995798537960812720941669935636438158101650810146087160483094406893752861615527793993711617255372211736735153032064230302861093414800201874011652923574827933734128583126819203370261715347148017234893168149019504877971000203841420893376975718303879096714107511376250905228302992178961182008141790883230995599742230010405554064040106687270774165141527947064261019326580917267903006489514115184594974899249355121964729476349120099442680139025918628087647312716370534499210628673761435529102545704028174920311558115755962645704161731242486044911627001584505832619522001415896901812647723614116646889052284312309110579473584101080492564351090263796453494770301978953370589816769130328061207382470223842359864314566815791767397794839008463941895369404245263191307256148511751694728405161730911775747866411429460682304664944668007579940892231119470579258703207216711603560665226328747555466869360693652577026211334194141230160092085788854813033953490253382160174107907481806902117896586259698823612362840149852047745459453494371003943104266721384291394316850617758094397184150616458021155740109091048887625827215006125745029107375192890791030501489518814037066703003188668988292528037772912242081450388652262811174235763852643893490423911591408686915885589303159993280576906608464940338875080362695298825762884559792620383592024180566259112932667210212307762559338940026332024477381332935197114610117010709207962581641454181675007222545108746872994130351411208366197989020840205747676299372642754742921717556709816966540773255009966147130834554629155522454601243099859515411237699871737803158370295320084882292973154193199599295871612101576532051175646620339806346158353197143665259477007469480243154561774668954007864202816877740084550252610326687252153253213174718455333264263009644596983298428662692700916672275393994498397212854375664244704108902275340545025435039710292328845168123912256866967606949807684930894817150502745196550411561469218697072280517741434000557183952779159315477264866173756868036416466334489877262423482612848813629568820592866001183713759865317573360631012706105681282243498833915413720842693866195247695252751350126299812786506480177932626742920985486846027305781306545966451729925858427456609929259583495046529599379768777209165282775426686429804712574628441361339253674913291251016810713161308045917766501923725585908261046125597070504783360962074517400738267461921175143826860256021306650517220394992438728424819293901739385066542799285112893304038720197514375217948421320563537736803801394301028361002005364502610974971862109246841382375663076809015325659359487899636548903643156030620993082654733727819491042694886161302274267231797411516327609645487615365079591636227989505981540798850549422682523263715170056092872031129632003044987314058804074999776384018776444764964501913456541958533928808333172470091997978592541177326176013931219046471217455874669063564831189591904267783112811808378257434470764643792652361005575243604258567468905621201429875202572950216706323280163633062129658884659763812204834594739439212555832172469144570184855161974140114618131733270945652170335800089282358005226977647973334168171967820946742441819729422711803674273777786017293783813250204394996357988554354062789895418257956962943051612186741067586875367269708416074476163094662168535065215469787768692594293202989521752576187436283973123148921090021280110704131766825960777214000011523940181128376503827835081599507104188553399203298161519506472568383778583951357120104547889888732072487670714746408137307576346976664792912943496016073628683642902956145726648061625021456300483908686311394386663747602004549868202353299191889849537923650624801568114313871652084435065612237328811335823723822708263759464709652212884057006543122040308640721431180534194347651504150737308376760918657688607790844369127199115484303163582994404595927677626495624385568474960503396678271803321306219354274219453558730937688079389004035926698647226479541374918936310854647414820571637464675135229800651902087276531302336949731289218793172893140801513454731145205498874263089649187724999446004225374441698269053330065054864154336349184275813523700121688793379713817868194046238202289387691779788762182966170570802670577613321042777978438241086240647504852125991929208387640409673722434768943474451724417442389775727480525808833749560165108838075348013560739569405192754092598679003555601939370132248420748472112425790764818813991646989221007453525950195705967524727790440398273581093238880809235061220063570761062279675974691128060330704449378131988828134719274591564123513556396834492218858622708598766036403093225506516534826364143398683582140918684181969432617302067374690346307295384964080796263263406850953235050217800102325470491081204974444518694924688372289636821004224964357709771805614464137109414136099732866412749674217467211470296519927337075272095820448516502002675215760739003996497724696725886930014019643103920403919953455228460450658738764705817179800737949604640514327259606536974748306714877898605920915362654881278294572991110534678761405050148662670616260042517305313948564794076509947606048292100631316749947444258263789209691329176307476348850535892384251717162600034488234010453362859983446701464954694461565601393611714512476134843962275158226125872855197618034985447655402517553845571149430366960527730358972194077094177466380409345695532267961503234568982530541972180430274430072539035998947015363490190946539808318176214518665050045740689810093246545717482550122849975071114555792256402024634607076676561252437551505060700220112573753688061543052386819775203118266404750903463783487965889369272829161813756208255694825177330244174491829765311646947498911093458418801554289187838134140073647396361546528587032907876950305418201731488641762757874913940782863057146441362295144557382392137491620164666909246588580502195230731565342847518058152625716230331447026034482521661909581834567897539371988552894348907549975532262874802516022374653072626782345215615617353929259162725570335460776018892039646264214858081012184587410347755710767955523933500003344825213176406359120948647313381231554671247128889128294050877944444773070195110394787495765253431406874329876253458172398030239121778572305408982776063551518556309574594809015943904337251662603033918147956187983721913982045884990074836152931445011517483842181968642545192736275693972995693184332457510364105030989483335099537646021230259365553832813864059928189680859141776890997711494527019180773428073474632504258686185736533937978491241426281640011172805862304504816653217967695068027523489338317801835710876742655631877095979442905744153197337552575419796989369769990662301089303851689408692642460369037776273564368862652473121207645500260906923161112082739063217652564625013712535086496568335090247819640541906906972746317843254669280901174408462035136516387238953513615977861461730246141724032674836307610596926582565315220291098187699138459556666952135662524028635153384473943643297196791027317566143787133058657966653449637862155728595677529003248645624465561772846791948371028541243154066493701411838452828458385699098305120839463044961194617418424431147547983787454536456846225312201766617682305183895569251921669810440309862919594621598427857807439627496363738589670007173872110560009301864037928014640289255110688319579181583236875241203284019505317402975902636148448597847397338526552225114951737323987578549952119751671889547351128050319003349332068124006536942837520603536405619074374329284337655020882840594120745295938806658582433842648896164542901008281509705848502516621108021014565643549175138375904603988919875982687013590699957098397750142154176845415253140178264248715461493235937140974381192192085265916438610361597194605343271046324931880230243559092988003950988221082528656443291363703929517390888877325685113958348404441800557349869453954887779913593480581419506398171208059639201137520060280023296811536988906275338690337648830876443378656566678143515898478222788258159926614528197189452237429607026654429350866634177053505043183734914437431355681081640087836913304118410395403124605951878030070737042478801749746874650714439239425941033137428959963342425455145068603244588551350843635198738257151019031646611063069388521847931888455440789197788916571604354817187726907690820989822614682990573014216410139618758797259991370691772091638734282274752284040716773708933470586347840562600907708936063611394451193570546157433029688292361043462986251669679551498622515351497286065181843040884157485160422497021652381094926632664303121525421854526751609234167240480066956365704764299468933311692883285540222386052492664387916547410763588024861689611203185629213704685323454179053475933137093536671446338250789495390141710371669379560412987453649753264871443249481930992750839101828639235934325451393430838945078129442584121741788202362949713091110115262136561467278577410658190986937117998846659329428882641454293215357708996622856448336490282178115025741813134063552190195962356823707020584480441790323407498893915278703269867078137205087286049774113081424677744382220423757181326664747258269632488823992639829651667861127680066052079693313492938046597324692672354409177901536444027889564991171633211814148823230930846104553777579186711124640035036338012332823232391335372144488066810697322015255278005051616283622090796090226914960316846605196351423178955602274318138331259942812112022612021680016680451996732472144868365460598463017931029852578588317796201251930338681155076272341825323259837175342665882111225217145966452669788232622265524788858698006048935698498165377705179522959169597833671735147133271048646086282538653636518381060724573322897556176978686134147199416311874237940909619589286407589835648149663300353041084610102978428215055943742314230637097676550772159910850285501809589248273962612497789794478577928710468163956158801887384035174062358903570087913241403068119429694842016201715924950423717384713774159668856602353613188001425770005592532408173840955563574706330739324614263169828351690343929345619394734970026421567156037113908093381529623503522250240828602472129541250527739181092404958777523914908553585989363144343545433815971658410733648658090578076198080089768497465832176321240079493901585438060607790860696162522230176690258332023260252110174122847916489778113946480535496836161731393734119059706083052015339885572096592280789292082522749332613293166824497859979047567836376516740632493598031421523844407830959594520062771944191428882144058476397726102214232329669421850069374269183412848410673936610421432877679483837190518954589784997781430825478988084016524295793393896767834802657403619745435165960859024342781772728101373348362150046504118348883259551835914961559623859584043629456429625070243714845916505903146532631787420615846557458097832307597038888061301993911202553491465623078814677788329896994954120701717077157962747538509894149516963996470154426989126028790062852042502204098545744475993617767772911210991907253909481135622050464168907115394236610352423047613300566500167454763128688903236544287949819600947288904738716727280481899059506524428950640240958907124771496201618280243153680276354926342827039588597817500521344323985230883938698850627021355308735116778890221865773931477009648988770954414327957862322970021406099041556223549808869093078871180922238512037465871583055634054824448763008177628609289362619260075662593241002416694659211319570823458667478271161396940651860181740229581390003588865670289377997926255945161817984098485629339818117995183218792860096545454702268382330041099388367622646127701436438586483459252735046495673616645665040304731535681874385891898459067218000996586416570745833534075222079413298651276888872834503062675535041036355021235410586022734603527657987931906555025336116899506631522380034238116356087474918572945530250103965411555630697085825759712864709185382115851059679104892958749263769229919798997851715399012150941862170667175261257773491017829856195449310424577204132844605211007409281239448008944286780173868954383190304580260378071998801971050873911402741392647682175431686770057593964707624284168100148693122966867894364857570804081500676429323282009062533069618016752708741672997259276969671060344268087250109811534838835206830413265069751664598490816129019008086014787669506206068115224191690985153098329862910825697822489890810695864247520527636275628698026777615467927341846370770858237793634552725805229520263641387961619872595119239753730507333074567304700590182304738464658218370996390453502995842240534589769024309844858080019181512412971857445192665963368014668516075664907096049725428662469152645411489520607385924280742253636078255999296814946504651383618225980362638160918231993005971650650083456491802298027434881631534246010629110897655791145211632864396036968337180102868546533343177397603190241227074319339645761980423949607355746824713282100561872109802032296853495600949525221411862809385725693240359994808650531481490345279246940816188513733325921139881397688106912290271407569973350800856769308499690246135779867384034722832714686976421067759293448247607150754506222873397418754594159858758115312985167585513595225181414165334628716898985911531366675304189055205018525820830047098727682593671935702078363480153942871058124975000181012975197865146460931839358875963038601177150945676857041164942039840574141365683085434890804921918554111184517184378029008696029527921130638920186526413093241423839839774171213629228953701864345902694379440504059431155901478061560272024623641382338179128671115682904035391676731112305636524752861531447182052689944988079892322630302486762333610635219022679792645056507480392805068016077659364168642154136123780030498584573666711937093679432444871533521921395066751751657814270618155368064510914158113472614147984518138275635845916462933697184505915011944440037662252401803241449019087161954190340762720635963807689055091083737484065190588640748928838017275738927381434301178814933027246765542261296113618606550714544558887976822061674023094390212472600924305060641044611044457095872825247496367634558489784651992252206715371278950368187982530317144237003427817144261421997283242153056305738073672686805472172191342690295629335660207961647777298976212765507784204065288581082738671125231607441771692101188055570311560737961482145650316344495584908905988431069145881748855534322128928403738695192416722876686162847081979647058565329714563239253549674959041668940454631196532868292495360758940814308417874650247158687564626303781737178935478318329714208606891966952212150350701776454630531106016404898976420014883565872487930822433485593495468035461169347133881017697425565504145865572289754482185813094159658454290879100034927729195611218632438155067813597661827680544366767448551400069501669147101081656685947841180903354326114973357797510828506867593664269478194494017334710782568594355551646569988598690309607381084938167659518324867891501517675125095668445114321099100225981487716682403210981825553716478278865061489867270682069978427905286543326742310268002256630131296851718422585336824842561583934969780188763452653411899460344482724496191697118850081876737141042313166244339565481477106728653807143365224762316597245355775858649754150235909299603908845107517636911488868617632370227328404369221631816614491096162587737575675331701500893044967583464200435344773736006621882740363427020187033909656800232436834358596497744900568046291600087668599315390186206660895800494727817151392283146916360193601823690058183941621952339042372832443059380297166536323778406796208508503589761326719036832455501769012447155153788487928483003388329003069790054575184255249234400600157288250322375210029415384507410517090812066518158525725779492509459818854841115744995645362407508701300912703199628583216712532027218471392485275978605673359701052660592341976734325907877080320690979592910183493375714615094198620557431054720828427512802155050965827799257857279492106562599470322120647451920518092853549117904174087910482704785673003701650655269253200770775341840342427703286426804577427155008700392586406713536552613515814623529116080361013751394844490202326455548491167736161906429089963275101401545292793351670852704971113721098396304873647623258786858437804818298965123389961484178277805542224585436185946054806575775672131097311168899998858732853626030207162015875134365149172350583536440245012921269856374708854758792378744761124572768055949838832368406814818670077310101080150714428703314005619121704878426093440323012239200469175292453942654597971725394891473933100340374891294004432145146537322227994384055527889172306653939790422525601785888701575431595158886364836910993177984837912542412337934733117257116125159368640882272632295613998617308404791671352762903855755220175618286281091218141921209547142343161133660790557633109363651143928337761643567521431284196883613448732290519348416449720207055570953849771581019772210175823826249807514543854437222567390698065540063563489000558342927754717335584726347702184003367206834279618134697131512729452274007530815098435174788428675291741965773892633452846413033614159007282479146593517781704747662480507137151121256157806053622277735619033484312220976636471567820908375273273581595428044597037122476412649686254239934525770792151937467881074377751626357058227783182945382609321580285217555571987058755527318995996846076901289139212852271075484530272248057882667965988303706129402577940543805705037057966548710904652805883313460112446629916320410929911598531378698899847185512900982188334919908240731389219903594853427109978378677746873412000100069563117058690546766018127329852993287749979999189782191849551625666288919677587502005761535048416907227799748081945229769774208028160710143323233421216151334497111150251591026430690767035866639625948616573508550008410645467471210807010919595827219006805565316096435413126468078162141859887525768257603279902441283699518521852517859321202941091927499200392513398406565229703227141830538874246921920187054139464209488001649553725617570672692191283210875394279600557224595900458180037835606539328055977858393337984054783798320997319536646572585018455092107760154245434594822739561074275966074430697817740228423450189515671119334305460614906285636394206732059100355783986068057963020975243225751631750710702371594798559959307360926915528400384285980598971507746295994729747193358265157631994487052034860729729050117913480420252865294381981875284203632066811701659986341160320471346986919845893435953358255085530790642006249993347725899963934943398906627008574397731429701329321364486430574481460760406968660331460631741474636588465525106943684709776502794315002401188873210224843231942674208497373092003758274888312055341110554382135936070367530762742300552204015412917793067611221034615092775654369992827373455373022737762985113923063439526630867228095182820701843817595478035660381862203458308447613846316631559821519221221385394731762738226162959289049485586142668863603373226591009486799685865359889252447032527416122082093432188022926789757724185578730778687464194308805699265854994453791304190566144453589853391629353240399639704309416385154149943750543741595681071642106415013010304098361432534753995977330193966280988819383621167675586653203196885195010269889210644472840268752824133659426912820050261913369991849940569123957104713931312942893574583927218929724621386075132453731827832465672595032737417561193237755357666308695579672092018269240472763374584485207621349913674776914077717547079111660528654825844820785968937833359443686395205647895698861587408803205057825560345451912351784576097359028028427325695409376517954814615428563797271538263431691288958014993624795769097390695672748463682004594637509870705792618429790732836487738935509421395233430507084332188224570353995764170854420165250722553244595267832845222710811259918371830972108872632495153938262144203049820265611534571953374107016156021561896365624307988874940547814473065273013855061538932831907661107577764700115278334588892181431201058139748135947293559192048421774191085065059890005695379075649093297438359096869957987736077056036672699945329024890183683958438200585696656885576739940684916562508251145640385895886962901340500307526275969011310856049163808194466698745479916868922746083486920820691133072986848124251941576819889584815843303098464121528887669872745849785353639630489569599925574255292903256961951755276259980222885944992700988208808378599543925373731321857332040881841915234372101704306283838882056659193268462765178362408176250643680496248227913289534187806663353072799365577233012297791732947224517658269457356482672593437926532909373904067003467578134508240695108240423488637202771311395619268072059333196708169058703672306766439678140885573379394144161541343828645108842503157778742712274807553150916034300058443375955283437747078485342121478839226874963615232060516218244211643172137555592094098050103426373361098352376702584860019450837307011725648961109796912439505436874209156295362019522524027776825882244881688507855252619303635345131048561412372364951560658011620931923106159718414638164350041685372269301594596666930531693266633678001315795444793858437755385817472693128916997023858705507316199249061152076784956826714149878865841976809510897348472837047949036729357467916678889193445897285288599707048379483322116052087221507869671024204138732039199939595274712297290995519922412078512699893641143929824784894516454332692519372412518169239869285228798839413167269560936306992697393928590586166498952948958667396133167304172867627331417530340186736104945233577796481248249309130376927536547124359589230732365013905270977502057115269869916833118510177669906729346542228373216501712559324897781157262431658507411283372930990700694952531160127985159958942960940587902447982749143313756280697523970774356457449620849995905516378280595624474967596268623906902030939668893558235304032770976522295149352017400135713704805831116646091022779499588482789655211467275383594323871944025486296908779981762732371154672441275392949137911518478440321048216798505912316309001049566410650630291413598280397989337534037870787134152412423309966643975846726928933586446090033713175651651753487638143328012381598157036409134393456672885056275207106486428292042403466946322996383642884401733091065090651295894389500965091014622589034195254757040102677942873938159582926701274047276803542728573645022444535372417840675680563755350628465280585631632885802884658631039083164425364473074221715303996666432917993797244032478925933084692371349035489715953938196849622987904464878726707739714093501634759839883950390878739237430393861180144553928592069344937362958719124317816066053184552974819137746331212678638585884422341680526230422902499725228698859063019435747103825537246200022541821118327201567183111839766294295501104281730664174993010341015155984319048902440061105941938694873950187999499641746869347160549008244742385477522747482770414645358389599488533983517744405638850593642845024766062848187458943143162028642774197316656494861315204705722222219853885086898380155200211622510041873211072527260069121262199628838709987997093096087560764754439543930552328494841663580245269179242757946686430844245528876590580849110744367820999018440184385263903921579623481888483668008843438217996486095809278976323671428979824852568835636781840887868011140716624930751572520809095069687553667738523758764551066589240589380397340911702376823811670084875227023691307243324174753086775701220880745482354906488100366587695538184560615270820860049530658226182732216749289740390759104392314434268948532489839911040428133072744457008942120168033205921495646970754963560208774032110044912093483346206542827437173892241168255946823776283807418099289424886115182789776314399161067501222128447916992343483076324445750914850674815736543188101442983044382219407491028699416878638734834429461918491458212404981001626097963302296198099791145115246415598610965253416810157595874582359171536494946556473986984654703486613032751474335342742347384954868503171415902217267917053511210473445628855915903899680580329970308302345155886190878330320154695599166969678963915039751449363421870048987935949073327302517614294924253017065099658495508446627155315685459362717586976537793563225459076686184926596751672226661345507973287204638327719287205484727495060472356359428584094024766649198431087200295594587805947626171840116155546244450699953532932301554626996460815822198644456233326743209557491316557924707910466342008871624196314430020869873698211293569191791423296336087219569770076526461151823082801948961990335479450222622339129934548039113373054680605699531242539606651643705145705820817247643019899285746782822600934354154277616371544736822652511743513895528953358810613269220285248990222429835506384818324594684930200681479507945105687575586598144661308131326879326582721728327426125274940406208252392632351679007156905207428556621291230127370443535650144887210973648727169005629861845522869589553526205995273418824652250965208196894999837024177337318639143361285691483479681872571613482275314755403993027306670513224818158246444774600359685607078670094474472783560347715227429659394977662893520704251140723515581966458342716047941240029534531457362687436424274894503294971854476379495729025333988280347028237554906851658695057954342948513305134951875790593419745053623262440609131124499779851269405277952247185071381020421445664708804078893805948601702627270718953511625372907602453435103030863666135469050895869319749100959301703984511073512758167602648223237462067794093075679243991445621564081984935680684552832852578022739775168066746925841989323236785730933737901338376880756872416023825262275896524101765078795253202130184170468747452865177271165347645591182482327112667210121552180563904892165436801768432570803096582059576893900103762126114863926520665394437756640711459478682576120706183572159194419644799053394862267213990494381580455546437831683750630597249782225826974831324683547834785823377932088435952395945437814895268928028042776413930479616599212951643979008543930856552759571438365107579618297010599956965857869287222161534583429013790002281362415809243923176541635271493152381607320648030057179301974708608833065452411183607909844043280818797773538485459480612478975204329512935072574254487581463811118305267163393276661187937241641785540157940101540554713368527432908741109885656076427144359617631625827070238633790038069089615834224954740776114453232208678615634529557492544906951710256825605105655653639303797858386745675804385578344219887045831491310887351417209232425379692566935163135282724174415297376301765617935733836416488020894655717795985611915449070278969283782981727007373941564705899500108855690319763740852831809210261027588695491732012004301900802844213452569608185918935727327656739325308815248554992491334503440613858461194594243897646344456760344784801114020883359076774638010376934107383489380471444930659332463079141833360676109848706370555151630538280766367445434909737845547421922154580981703990580088000570309149570060190960483598931083912383908826605842767596840985736220492786751952333749937612479820218620246065231063653475670231173723637103268203590553976982858678169645497945942934796772654679634815153081925740466548873243963699325137169126010104384621105796465999292666164546239569650797764700574882669492303021913223307472885541538540723906602297415810575176962186009168034367870601551742802660108830728482662401033609586997488377225483974494903302382030963973550149550939120722664502517250773429556460700367860305091308713583241330790148891421545332947641429366698476181582118393938185561133246814235181076452094699564114109447652699067422816654444420984898711857222235815302076331379410798749365695837421852703890797430831829667659248426374741264362972308081421661745083118165233440837345824506814723838895519839418893035477902984195024818756736903882415906558569411780086760399452615570504696080973258892219119886178260315663700927123551617405553693028049679242955585760917345387289456742875993500277550339733444373580534195126514398447179469499017759572101731580839726435579284332068302743429168398068935852707840678115117964515452547263170433535442565640114848869653957110762725207327970493014534491147091938276546291860399991054298711250656512667738827279236320973526451825430431656625993563815856614740413018881297264441642982450292956790978459231757674605098796834990896888415583181403244662629745991654078420344187580709831072258319024874608348393947944221889818838153866110340485493136886049123682395128671810778332090875243578100747131292376542909180032974997917312001629482672806951856243497245638407957415753223817088931417488001430845181026919913112609797184466857932172353967636163569613246321430102730473193652254791667702516153717434868820835039899858851362224124961898752404380542959141862076009988358974119723504101639031977587155439484986986603842191496084481841611156295521012452638238237667720531873555360128624518831921910192004411431096520672600907522720678663964078824047874803252570331755303094739348616487247228664612822416642888663381613701454499509128107735702147406726140694850213747210341765205063325404791746323188689961398653596014100034520504545256555577269464485940248597151437632640117443510581350105706948294970341828515596101513498442325676335584802666786929946353132753445626201690933629423579444261670009670120011086081669008675565593732037625800920317002618957265659861971750528841542226242083576910495122267908011821778793121319943573121062125765289493983167413685839049719796651323353491476796603265388866840027804349329977258662847463361118140475953169949651064386955056408234408863302910192102417609029348412386388355555200064747984356695134424248585329823878788723229734757645300993447991945667765303403561540351673493221351447859490943373663342154625181248177288353911259562431724230034653649940557531270216949949634892476357409622279969176737080257533541724608988942654320694519921799672676484446481180496757389894215392401455716137482734567170084928970711170176793525368962196016626381131043540059305210072638746164242357644841374338027332732697207635115341204845840072016313803308469722922040203175704656967823384434214598646232723611325534847209781850141251833257074680700920251572392551998255855944338121060050354535958602145324638943430896840457216517811142985517948435256426896896199355283609495278863057821714699490521752597518594381708200997498821300933595905444723865382591840756846485368450190070657829455885109490658993699717161143552203554470462018469560246273150848943462158723348698110122845934437307816308751426767682726372776912645072331165930913626100342778098682268024134319984573927476872722381680075872235628775609869566038182367869702114735614251652499811006295671581245114629320507729620154988899224633295803669597264469149982128277452823939863165334680071255969120433026511057029541776257715073692119864694798222663225889694929950955717193591782215408297996588337020843038805705875969209908450518304546722616917647938031108997124901704448594564204869111601299876496290166068536002747610592635949965870520405621075342621457859262054501006809985905311142646359798838681858206927996637771717346723571405917934191881616086618151044076222682955407598715588386739587663349453675375970916771020363569064151734395318421133675384055641942553538711493875520375216290375523425201711918698674431841063260291983885888481975279808405450181261020155823389245148426971568876581267972065940299535953589127623105396277394607629794177348046914167678089866795763976157092405578892228867774293341297824605936706361747512624809791529345162826010708646229446785826015851103066737201601571023260531235144271022091137140631565297470221335543216051747523363923644889653487067437870188232952260851828613137464453929112067998851435457460047338967322668995573122343625362153520858705838442678521840308418794757171440740254284860880572879132144913198976080286082089329827428537894465462650851098420110670651426485948095207512597709171347470931163054597549520121212628818025906368149834362109031982888876825020303581387533695488691258013328245223508758206832296912006121211756051992901317795151561231163531712208257129538695616378885382227848405293849909210835493149732711191166664739069870150991794713175956261129562837880233111112304936891786886731404411061521011659657275044856294753986488546020786599411905106724220349331519280394161519102137977352263218624536553932058830136838979243954523868413222753132700723113045683586654058368040380995025481590028184946160185862982859219831766310512019765049646147466588562711180051149981922664414550704891143277274547392021497661474229418665432776013307030448998520744265292970875568924150195875208122637317337879518486499202203473774659619057051260017863517819475866756832159415492635084950988762686119492710988648029917302187907432184571261053125118185642017487574353831402697052794681798138615883688220949003147616232317865187007931129955066677588142139494831062441989703220585871370706704609494271136992897761182283120833602995658959354083950850949340906779232150560233192282360821471305421414603220577333618027048456275160997533399156912358519074531521500198408034760601447795789437780415275762660415863570505274325776203890041148905419020082003585294774377095427372316386123943133896879705211013313127361080764746861209513085468729766230284450371554970962447133309248577267077770095832872634547868029053800672241546685421552158336627346725123983057189063901952344751563375952236311350630461435734965500266838161085265178303549009781719083547756733896785679684178533474016581760843722853199498068753530707367386044003395230463823134939583555389753668739734487625514723864396684393996521060534683472591743509020058309142828446996789265914923414847403611217047913448669226920766413024630403284803751897849015569012544032129153412049826359809368420692616698428883735904863053468898587344471413669649995304988346496563098933664252069701531345708745253350222041112832435279915713319551484697453414984201857297340192647308122647794322386169889996205410852669718649835204965831488700981386312193872298220878735047695761810669318640336962600426857762259854548122957776087487521832593680204795365384653241109371180648652411734119526205670911907797054177488811883172987137011580866863040275010739423474696020313423843947515640898716367721079151637669442607112198795861500255753993678620300209677305263518507517696083668616416823657011312657524008921188713994196370009466876526674087892252555224164568912334284739889111903359740757419577488118051330402504779764597513766602556831651908073191633415583906155100686784084895409579740386129985959474254263909326540306580295032081395360561288239800936486306626194339876373688787405233968421068909191085331970018452611520901931219621388796043308887638434779712116232006054522998920640511409898802512558275453508210678560225855566589128245264452078982789811842069238398070576416821318567809793587150194695952936403116016882678592587263066994481315178993525492941167127983384946407597582178286753466411739359458929009357993295934763283915029986593961876705104444636936585333954339468476408701651263711681052325241990827145762701646720476752863258096682870993507838589262590535424004266906619562560332116691896171287885450727310365521187167616648607971516383615252348868059421990597635350061965597527146639622337317928551463677340643995065941398579971901226486145214367540879465431160243928762467483592162174566311670162688227106442294120677392228169038204560375327410780522752540063204556856677705847451969368913721170580744589445301658795947663651537940150473777163072660573287563442207872882536367747089741384825592236418403622840002566889226970196950252507104912916605213247798766122444702974046372714809604561993081066824910919976297020710000532957896062984074221407484493790346659006266776316351248676982121333760827055486470501990833729448795953817340361616578489564101566012390817430124345812088954985055708590428794515512223723552098059180288329435700322905537634491730780247424400933080789253980623542701041932286552028390504056442527946584099884708332631423729974589080704451314953596639133099044795768176608372205770599359726634894392769275477604353887998789433144198168552666785695832991545731909409681432356689303694815353550948683441095540193019196950223540686506719996333624080676545547667074649158881058176349325638817715949472513959485334105915521546064992896667027798536123777062448159941333225623143626921382234431380365471529621277007425815974220782759929144235382305567785224313308097771756213726904547168290438020245255825653335943307759232568143818488698159311038844815584017057206791883959800373543171050205872043452859457497812193374044532378326442304887642394200391936534237718137865870260129772368771977356384554762759563031591507215259577831595503547223323534400445314898036587504401314691064136788018778167339085518676823156960480999851067057624826449368460128912727594380848998929019484419204703579785928178428293993776497098796093276381102862628934879094275721229701498294683439991799919985191259448937017749906937535851443098662729231704236872997885436526547641688265965193255297506805305761694824168800600267518748806976563152013404868794202394351491862030835562431875249672199714173526977181095908810007970556861181573114055939196417715080114838373317862379882032825351055102300924695449848787101969693088564148046116519139707117777701692827893663268876439764013154817368006922618504827962555909526433837962445462315417912253310012911922431372626083579193592028203922312709346589960748017590971314087724175737607241533313303903072681860677831411724053382991563529674806619212516873112062765453596887353810650416339169784107672885856473902859252275740558677662937269317282346897691498054618561428304985914691858339551610606787583126240386653977826144992236598036016997758248172135550946726475029040956337067044305916860145147057699310387486486754829423895965229022078939252813012334866846931086871349553421786062734805474623404371658398622674552662700537855187734178754057044511071032055527948436843887570411428695860406738371749456090713675816613584390727351557773339387746948214598072743462277075551762054903077939560315750818092035833300699528046437308525721740889556925100876872312870263943627482853203298601459036596343124691539081834905666263253308139204705570387687761665089710089626715304069302402619656898513439248274426315958725308471143241224688217907313811795160218135052531890913305681055484215112639172577142162631091670476493484848837449496379957936512199854542721404569320050807524596727621608505712101162352461840654322384273780758659815119416301286699466090996275651176207408513279057982923528104161613600587903783092321901230382590867507816968599469256156759811937887711735750447327185500382447256646231772379281150015282698528208864859578830950763274774124670541973867831120555262768689503051491666817268615720480240068322074684427701575833200329141925529531241154276177501719733766347795254068544991035160972149486481509390872101487136310753078139610221664447501431331270241705423975323772094396459206041692932877987462906770616824911397611195165278240476489048911226633141009973057661095823895502227192298966889332648887395767165432190903496248982626572705708840243288026378438325250068835201048935474925504183584769804973973778295025069535528661590416780358797572682798581262426205417508328774875519658246673086064178173884281516363970658342695220160430139720659630384909713288792901390371064110257331992453889483625796813830650748489922826215122971678230226804316470875592567598456252423766018339076354985994903502328405640738282793527428413263205618541571147457065276561784736063647806308324087758422015483937251007945276189279149761316184449258784503878624367171589314268828499852603649167969222956664673705894726773438147266924245320801758899131582028118546433906941019958513105179678469525740440230088520350886938507356443520697603386600334121457003074096608062989885393016713141766013509119854663869755337032333629333940304630330650365001084954594453926313894332291247377559372956084674325166295190954280686567908109669179406014122573955980777592081250510226663035062637588378334673506688084673536143429308108402254052784601616274673515383285947292653118873312371369389044848026500193515845587746561876082828803761693932933143732838798540195964200937480733034541228459395448319175625507898150486684965098825011997937995335414835833518244231762651578204553527804315488836799874635094157570203289937513290930406531864098551879671420072075691636273801834377297904907705398971245240563928542735314577670080827348639116392332184030268062597559475279256173358944948686854439193715822188204572076048913129107124209972591945078018284883845328179810133279566716709402497346611579509346841893227195742603892478596310432134737142487749102800354959362950097088235564984339628337192140444218712154315026209006475846113454807469111574741996395933668612928397374619320011668624826637980201265461880132570768841897427146220660957784531665298786237612114412318443966558620707949356530329211657453357016817325830009455648967634450965650092551818296753579317493378192786146115257229845346596993186644191347842120471073166873502091655651043339445330498503235660970046986468102256214311338395831803595416401867185516503593318494191248966982448146611144200364345894731508680539762019052947813001324866084484784940123591498913703296745737367977418013876544839479662646891196598026959230902753761863666510986602134902527522764664874085110751068539040221574549248523880540070781009687243903621280492259627145252948364421074884865967576737867153487334511200181172195620387726129689481864588628026272278475967398476907170711929921463111281679031221634013740431652281183615409026028441035979271179079202508246068777461159077583740107389280576542698638703076942233461557161671600556095967498346362366274826724506256172743731593812327778374593483251304070945319115964994264518252714004852516400043657591546715219616410089929035031239381298621983373394739273832504150969554957559057751602838075478108598281046120394530713227331457457507654800854110110033380993731181809731668989689507386144549560530039236808991716914607389835190498199367791159348119237161295413992703869086675499088933489004010449325818657531737719635246006878822623229067972250506858237844832788088998582972610693031882546117114054403670452051867615059590274685883763630011308991103843703978699623994152574213832370423583002118222242582023948334707966210754344092356709673551592119396579304595222761854971344940216235814991033664772282726915528974146997913685981614332847357349346978824749287948587351412491136643357147324783475578083319131749722403555024414276760824792278016497924708499989471526227378805486227755674579456881553978454364571516698158535501395724160497354118507507193934151598136562651524382628692417114313271657040146798848212423997932689575088852960167277131959268480239737487384617490298595139937004219538026733483901486062119280310818920873451942007558607247553522137326088099892511179684781416145893979707699596595662577833377423768927867527273055413415644156712348466146767873913005693266862800423088278439467908174333884339845656021141340518840462861982440179756019784557203213216948669210072429640058359935106337961210587106039594649764482843899377273524052270308348607594093272857467521523003464768814681012389213544190401313653088056294264269199490357572699975839929781209743864733647853156154109768748602881612795044677075845469914864895591600075950770140162254173836851619473973249527562233386864706599465874451544082232611947845245159391000475845886586364945837745954719639275763516899346066795684346445028881670294480973766274212220356291366663041872364848972174636769414776242039143350136994365516017592883008421675226237464164494260721605664426820509579440998021910735522961119663457833361199365987838088155935069870068265801744173793907642535499790372609707538267550641262084388818263793342889025763818133237461715113328493517706763627218160237432630676233852846148411174175197371844945180474460257275797127141933598850503417744415999950353572315315938904919188652577676031952593641109713717021844560081256325731534522195981434174522818536348596886813455143597198682471560658404095618568049662336334738243874074651886395340797880382319290951862293761552550270918410687431600247951107614592623451852979131894256880481092127428126921010318619902788125204527039383140172977699231474106639995477284049887704840717929082729321720252692567089018199534597814345478916481113340163721133043261658192297194550642644229485027909769760403168167581824592578933523195486013281569304973103019618196888523833893648399546545566431851813519075285392324162389919972597939747147627518749139984931255398731061086319036323809136587600500537155053725972848684282072341840856979030968724834329140456219794825343777947186570812684211907144442871428715970651130715095219336457816079592617686217016339957692950171192269014011689818265336533887547930719368078416253781337041235533087213803518696891880279154042087162292171843326379652644416246780335849171189420725066228754253893395692879914402732927175439107185614427370534413142300670484751425772513800297600264910860958838129508106148114340925128497408604711109923493507161611329304871518139530126723005612820547118243260602434300618500569315802806315865117824529412894489662979550135649292149128977879325294629125892573537588781521824204741535373145584059717137163080655901867232623564452305036415030468063682508624134352027329750856276636266000571791417819110198397930548168000361602325565193209615800521860573281223279680711274922933170747804862523600303693201235604566326260788645695643268096843074942874071923586022252518629172560566857860236751513834965611374875354820690478518048030780483086710140035046198981857655478059644218676820728070752922356430365032381765932948487170172145496820647837159665117827544819561552786845312259464713411072134962419124590153145022074891186732563041344789332576548020443428389450352660775368042529873830210262168687510686338435245219666509486498969513298924243494234771924913908821906326269067881359521540899173406664845939085430187005241852834771026610594809569144581699625100645634548768789142640642698456776238833268132789988282584864076136028000327795483449400581875935018708966074663836431580737160432718366351339644217646592356951474406570554635265181268889156851366723565015768841041236245691703872096305543225005459244647715429395259621096221534931982539998112074660442387282403442907343075595175639749050890198012495747521378767179321830744292226650345166986373324782677424818154531700864818946530732719432165143600542014505254139795005766414172125973764181806180622165086539976811315130526420677676981163279879662541948803538801051785372637150838743748206480397323107848727668255384881160412185160658927288499318551045114956668374385447129666224259355709876097637204345775650569132023686913270363572671284433958707738038874718433608861740886922501145215157705410800227037888166103097782560718167364133696664860426308533864899450567376344860374820025447584642624457658209093738426076184476951741091648562462052496899344062105024652580607041089719826616915540756933562763996633506336872822958287911804236645246126358565135901026561992686803507902495985449921268873293674317174789961579065659985982803963683342557428002049679213096668674594578334541090162225980416656571628182305764045509271060877320300598527667133587660382348659025279900100771954584466363250504325099468977613254158256340148295200270153109453225536227922253447484387650454118220354915343765067787647717604084996550148775538509066968316394650982370489221598326234219749451589815467390388364824538606359496558758471947455084342724182735720547078111017104067002061415778835664577159881253062357846403507313457094511565793526990297039897725442220257025115127676285565125117574869866666113363118516005461656856100214631496341280688873388015901806707374167945623483657642273809123238798009050638907234885627010298640706579930897324425639902939395213580002006924456209379554156093971268693874229838397448960620963228598647220163849367859163500844289111577975325279556347874335855572729125395560094967824060210960001901670725051002090834831576328408163046835894120918718010054492863671775712933227979296503763784788367857627251844260885736538621084787968410876824935136188035429976034265048426533540707887862357603022316853917705870381655981602732030071292584173807865493941219711178454309184414962675279490170224985876612167093947822279289386828825660573968322505055521352441774637793198431399722515895714413051181572195772739845826470031443617562724302992567637259758487327536257273032376661588461229724876834708470294246490518703924671896745171664926454080064928850076119094378458222057526141391057394586769832270023406585477129702557352275624928936589037642929503435840413188435577188232717633319792031230665742035390224501564457210990062336443886974874895284277150407512340099229991485743817227657897382293369416647542550530914737815767669336609923776690701349418399199662589820205822554456076347584312915157371070817020563369548493168011000211674408230613605840866922419986828263235990316816373600886554945250375997131424294743303310340690835893028241472772168234018300413357370803544469758557149071858799661808757550321259382136983564641758641413706391601796366435105152906215187348704077198459747049455351592954334300450188904985944843638797124577812929779182954505781824964301761026852825814116659963096358969867708950213574288299675208683986862291881780124343767699625054503730512702034676484812144409275144698409475276016480107686446872149140438726930171467522644263185670683763514070142830161713594150004531402573005560205778514430824921054449254225534300424734871108562660376275631831105316762316927222352157251870911576204149085339163644118402800823723234162270244395242144104503285066914396761711299383575132534681264114772559575929466250160713065280026732141531724836508783387737124042193497382908219035017474670063091667001424328787304447302925271552383326239614764687405331626318308033627135230560899669734555610198111189384913898895572958508967096279874178531226507387107799115157924738131403176804309653355705970147520866284070432033384056996609611816027412782671319911243324771792057389620148853631663243064449845813235170395558011808934202161965749139888872835870542352952082714015124081840171936226405659021496209418440036570999181355954290185515903715801561746860578788552600307627395953010690822820358743553713287036965383699661104119012959789496321486452178624015817713993546851920194110265211471282885842114324345642684852275791181424674859794815007162481876451672088968479981254472495375364404937266483004376517705320517306111980650061743568594307831095641500082628829785505913012279241410008613640899233000558458531885423199716593369836274632561349255406616426296161817607105008225761375219488575584628651517991924229558205184084418632364636708366698550204932291351696137981900247153482324514109143080344273878438431224989952703998250826999840447061426271814171608454296141176914887671097384558297026625592177509842419751115281781882240803982555226639190314843481455232178646049359012829764912361722997114902750603724975342954202075537986209536555290757977453209969631277331729376171206957157194853954902072274601353017140585510058171200586301067283732698012890835416307781422187320332269151028786359700454569913153839049175253403347392985525428437753116521194652572637961385313432926026606781831003075040133243979227158702669935310047870629563420918423694238965696700611102920966289514178558155769665819240233703747200081808360625672942827183580770860506488188366387711399570878523243015241571151216898760094967265064024162006101476289132551907653159731170036561064584437217236735688746513296100067012005846036254037703422030956072351095966469695253740789162452330409331515371986841416413776764833566619277392977636951536273398728939912860418650101809136469187810046757698732788073116531994190779831101111401307508465313069324104282204583269855428037838321166285005665827385562154660371499393912715693106801051639242562025104904219730727474068609119056166878570358099658465349350635458052118419478477140146266830335964953587689125615890424766136243048522551469940118442578586703333146217080172185956942149720009237733353081301956380056340422659874576558438391136827471695761748308628314428149749022503477574840258215595314281522876742505877150397685851976370763048846229813559992810404176545959893861585355607749202532367407447680003247275424506917765878508855382764390001597993990725301113903095062997803038569663910483712064125480916965722527374312784775009848629106624801105459266606601214453940554662068268293603469666832837316521571625426483978516904121532242245335990635378991098978815464255370586191900774374637365603707851386939892431983589962396872586217122266280422186545906961545969444011448280030942531282061629698722613134258679214152216138899872802963303165845121918865903058201586668448680009692248068860773115413323574886342480999132896673846841534548607979661791608797489080927222642040029470283600806375149483638814107973121459162390864056281705140894074603517266612077876275133989581222611643978225792180182426401351738757035536098619571832865603225494952286873076986300824925526882789416050335716601140404031579105402588808650046823834259842583183161332011918988593777380331838823397535283222268656666599733587122545352074363715458878389783378969208285445492733253841775954102656800536554017303226506773452740375462725206856178149161909207060675636965059843110425582907303307824111449324414763312457486064206508750498783264940168380383833083840335750176870001779587570153727533729118212438049256918170825049960784569545054456023649153977995827198196671570943797010976397429800821863166436594003568219520187882466806664394853690726994161747072819226437258759515543111103778918471283490622348410206715218302073037832442839931502253064667973182110252934077763930012404492797543387365912408680132514263362814732704517160562912996160887574338187140409967145775360238764169825470765601971918313635726099871342347593630877402402090524077598664047744812775749479987047923621299459297109330697879284724353512595944210821260386626079669049774730930133094288999141422345246815950204508808813761370903093482768417281102926548889755320366860660668781292173552671207840198559827454133623076252444967386337568932522493468224970495540452424987843001444975232231162162701053357857526612158644263066023265763869307443657883269849552687575217671841167965902925900708400711845497886006482609007029224754553480056159999027108967126725450974215066131535999836910408969854821321044577364359515823467772878335855757853329522976714210603342563286434728270559697403982601902415118724431908238463799666485612255571865132148906022867165165995777801462636702179227199575578200878259562137964128383254099700327175693457057639989557704078758104097234973781487158670667502111570828616203086403530073954287910341900707218927985158191941049620374063897936631739289725962723543631337418461211907742738278372581278619933791463981613204781149988569831429950971918958508186194197531622053669374346292541494898021551883705681464356689379344663392060880553468919542205786164009247763808612502655825514785220815216829784382480603091141292826742317890399261429462698327117589839374409069998583095686846337741997429433146753455885747221175081391911014714958906108755419149412118535396857642494442680691884135864524033563163595335120770585028803055092497429415674836599638744577506592043065128041534277739075234064581524021058091054207817435802087666173083568648806384360631035805891639677604089129959807600294696710751662768329533375852438684277011415344635151593921558423429491732827971406021192884096672070108181155854239931127957589579608184555219400756122812340011571710736254729395999845143005990772952975014544655350283024640871724856641781739471284357296901740960869340521795530801833679932388429890995428497768909817939149087510837423230342367288794246196386913742657969912627119372084260521986517272503155278149476694706215330636831151372423473345901390863336569266369551931917304273791857530843023193156289099469431247138166270732264514997463736216587045971019758145849243027929097156798481033560977872631261698891215176568960686507773198540615260038207330477468334778236221880457240871657884875217126583494989786557924761043775195998934562508917973663881756089157180507434527424286771518702915415518864161097821246161754827999084610766676087258112970716705838535515448887152527121127852630729253370158146708037537576012043558274041401760633114170877992934309257509990923323023193046966602515564283129615160667535111992603538590513652672015369803714575899640249479625923128496691489960310862878319732244380618526889084789466051189862290801078082288851552905251467984248633943557787973507968376224342229187133665755909935855620180704526133194313613574990527486189804918607796609821690062421194563734438966902333688480745591256697166634546620418184090812019223743999745077639433271913935029201445662537444561585870089566034482508300116773329516218251849512976163749549992480796191476230310716765242131506203007063977423638604267607301189940158255686962259973401763215908667278145093040776975725502519869599190700369912954281186135959822509153010544783998154771823764914719873393646822874502106611841918985232206451262044706566792298114724358087310026084999375218648412526769444005293942469729185669292030558229086938947541160155296816261591475064230666738815482305687125474556554495617621731218584776354254337886320332033859024671408246212568567310911407255504800732724863342397402654557014933735221561194094112939831536663225623386579811942021962647805615589845692112511548569259074494341242477807363198143147027018517472924139316537833314805305780652180493374289145568075736332327047088321906882523405354254776435447682243483173492326717976493910589716741559455051113795653129813160271123388203394107063654187892600549429990440187840861135176718690040300897964186565934489923868967516023805724507756076093886181667492928582439491873986183433604300171000755983858819223672323510768061820430078246061457408938029360921044082800927128392414562663701934644792108350873304974358789681289155918843218466219060031629075177733498104383165137978530914990651768443582616055345666975262573725722859950355774577078564230806663808069635173002682411930946822128452064892819736856194071275292007211290489746128009982188759414849861194778471046590995595659282205942538427946211944178440453950811211909744136040394964219811666654259845829211024358192655106795064535306849180853696260242711659190520394802405988450399406427768340340541634986932551122574220478561471565593941805859724731791570385161070008064227813598551098815200991083425329422579187048193260473736757121788090158395341837224372100570038866183253906600449457247122769607638576656273340338860014723581786064310145858533145856271668351371734871203068181125699114300192027882176266351931452381765673441090239718414250381296528657870737282015018629061919126674380164873914014528393020504841470097920907547948458766763460683758757218183097842153538192548581881374044098215178398072890137735603377553534398012597109932180567233561273097032105566440526679046001118226284817196679592115093287641316434082982066243480387858388471405142142997957675866198055546436871177253148011587829180630479891877089889421459602457771433122704358877234134996829719784760204480876347906721755037812335417969774237876284320054226133315058292186100418132835911867361508811287357473869229274688012014246389454955886932275900357398311169819947023186063445676506902259861710311941693403151151138631368399353486047814815541197650618881467771335225905204248653721720000829623110636347146272277427345475347915313979955061733799278217139314442158750049831357111590014149680655101919786084537396584465476140000896543128557580982137830411722684619857257801074075817916769019201306050553348874175652426187541615597077380434039941671408525502020501039990524336354460434095033981356480100352271223987233999525822935722407644277336001014673044422694162866965696639627739763425828012822239864079900967293866260726763539774624440358876939593222320881532568096041202531292130347646909613450918303274908446843695251598978560969040477731315339791114466898747536336431221377239053905450147769303848714992779899453447021468782301174893950233429974711561635441047168492057671784062408673596860082630486313666687829151537810299318051776806650441785718276416902848838023106950571674131905446461740174681368001092430174589908976953110672364641903470118913924930946093667722483976381379811259200894994080261056878481304414092634209854535643325034277896029448591458183218390764168343521758917168334248389864850499021189954038958539919419540614898336681409350393543425930365544089405960155781751730180336914781098364998435781760512086917646839538597133879005458655217181421553529183282323175172332465277174990189536128745987572851488259781372406575711189502552830866634086660792206712378314409322238458617797083764525846663989778878034995309189531480795680808982150199221625412435506462878562934964296498008555722755699689220154662278667211401721162917263305498496104186456722856484421832923933085657797017469882291928385849096574767260115064587766450912553719771560617445075371321446498505571068214110993653679558476489690524085877108857103470217031885220389983047234288476481915185957354677593820140926451164578978909301591179590419696500993728481292490660954302779163565047011252153508018085450579856995317909276595226992427158172490166064102530909168854541001748890414135232715850862775159807013284573476140591804005580291440267683388771396828101351021343955104145604367499107923360849789840577828094587438025320002502188332474362079430889352115933375919609572820396851196132831876172729465648251079724285810130039549227174503206889577511499910954507184226422217885981711577969311312851828124538887972089262628368509341463019291442797393745272193893566854162789000518281375781022383087430447176596540678591943248580847985564674706858823001229313955095325658062488926169146309017123510553164459354824964963675836251335088658023490887645770945960767716088515247864732765304040219706598733426850037742064472761842569146640259844076272391496727914314225327316921953308734783531298007452855642500229187241300105325798434102558245171806325828312916732209410948088411239282259537743962707510347280342908154762014038635868314521953464452826203513419832719790936112017248853900622658618576240187553007033258028361601526464783751453459153510133324649463077968374151868555662211009070516473556829973220474260471720277023139696075799013965365778103830150364667934680026923722700561945175068750274645039522606501092448927232322855434220019642462379637378269473337537714636846082218669196031357143270212704121551361750714017039892418425621376346681198498222678312643953014077360283748598985155085880532670565514808313387782834385366982549810002351714364456840647780526632339263259150715448805609708682041078529248173822596630593985146886155824008945325586316720889100889236705105049061757754111583400828892341094674049189115039900100677077541034623828255714653871159990949192016579916000074116017590986552787556388097662750934128412464755438463792165135854388539891136676518990946674021586922315048848365150629581640613728207223202542098654957602283858987588090190990739253495491149356940200466630936583873602778891146737947240703947217205755614448906884442213868797454162541952993063779263406140279467866676008697080569063411788891938977144565611406582989428160094232773172411827877997436659870350592034962274732865009992540415401962244935966202956411580914378781831666544707014813317672990975585462036568407417083921729775158077728616573147119177174017231967358302702561639178997373639895499047492626891828574611131376142718779972705199901586483733084601663084756247137917993838590387002322281873232122976106030059451610060197691029208317503699136048931000400163066875428063102623852581886258505441559771725572668449559152139740007837969297611433027065942019157564454575324055450818876896494161184915983669912349333813965998067973074008454315639136604436191546292277286238212071016422730109604059100059855735788239554375348383436767834005480478319826127910171044264807653200190273259127180627731397358665915538894595279517184485591074046866406378823926003729629537915410954844341768518417948829087731518826079651116112943532514524009192768421857927154142036300117880443071356988554894452199303272197994651602210708966507645952331832005449186986045933808444329658316650035210951962859981363471277526276780088220892570630777280284241262173078850775875591597593843104323984920770996388071985345108149418484858727756494811622940370390925380066900335499673726782611936404215045928518762235698069330462197768217441188302520788640180582346443544300488820023932013905127200143588306774726055432270686942161260676572395587393757554001992480158693114439525289003139988617237988011184538236967873716842108365285633834163213412866664209344892488786323743005991145897134885454881660852981346677193370731019527162690238535859995292001019052239393494025222237800898398524190489515683832747460190924388628470590575925794868937045000242857961225958930467865599809268115446015902499795349178211695279676905235498402131412858613931959597153758966296639656001733332713389341015090484922445360787196027751381702596350532425772295557860490094321266337537036398333891712513437577924692425497129858867948802728845278973276585700205299211274485372834264202192613944186730418544169560932681010259187687122038920320571266356795165357449123681441691194919629839930286764346660465224882841438005124396118173636691880607292091761706092931018363862704534067053805268179006198836123317660393311186477002058546715235747203847959697980349008332936205861372172975881975514775515916493232871158396983019604154066918321603489726437719935417306901132344754664666652809342200120852372140375417407361394807273816858259045003255776813244359166799929762090783136985904019672146541595071595743185805517756721230575281480278139511859383573629813793479187354773710488388550859736314508112485778759105836889345881497552668764951106239667306399145587104886966530617643924523172769416227267829603930253491721822916118360438688590810595273167241928756656849388525184015718651908566663052542626870660794271892570168700037111415481386663716166240533622760284286947413471440024151895060787988323463434189379907342173944355291868583141205894311562030362156832073128251753641432919261974036712059919314573545121256472364957378356507243124328196682980188264254236007730734909540805633365108425932120552865076207244050201568162689041294692544728843261813037241425865950949183872291687273398806486055329186773240123403979559809848965508039372638031826076641095832446114005325619678990531520136913428256620353598087960566661511579705418942488066590932851025339185750667921842034609732605371892235821994162102456276953810974880423328212991620955792186848948232217528657791622087961536061737596145644341615694053580567519396405304172691074322641048852184333697647869096637656319108845718229317318245894838425207816547022273784388587254373845554902853857576145550535195197812263072353219146878708241369753406195437024425564152999375128864330586740238534076756600904812687776839479959637784449536135091859770897104916189457619997343961271181709000077385153713995341711273616254252266019374535599919768115057676544883841882672839593842252451824114842396633799345794214785522286220323862445789737522147359074461796221439631330913356595051925383135063226913303992133065558434351643049732551382175110362129298650488335890399627036431563854818884052292107575444617237807170982695978711575114551255473861905512115776882562193364685712628649168608248827938916448498614555284382936000864461330273104962013125933574287918044398307781071458934650650205577148824267517289677255105514374531217864887982390840090847778618097482416523305066139325420395958169970176350003771703801262201023145008893873897282814330680933695014100592227108327600214874098612242215995357828879427841211106910592652634866266609059598793100110768537308231038189348687607069529059625408771162380213632597295516222599317801037530966021290605931629411687907543620154270388644008790153631834915786658255496615794256579637392240196740879117163902701818012098038526797512166342788896782384902798514106506486614570273973156740198267112811318302400722396816383332807769185359029578337918021708232119379009113287267022211476342595255757704047793579097333042595409881207191431532666961255067183529461498133415229102272839814935489314003703322082039266863672872279166030832032177198706044816098591018137053219419955205959511864192003511361350868291150744966570072200814312938521896059142037168645886563377171684081132674439644800538206251451041040379391903734029445878900557739503460879652168515073266579249225077308032797631888175090285584846775853429447937328810026665326909732682088850193776453154590357028101275905062173952971288533827290639044948331725839831040548904556484785911053985306249690162132865660294505713115312779816896954175221267985483939414563774886361875755131301886233336744939929014671533939092735742126182917156815510764628176028089302317595546180462043558229046421380972846469999330680457267352162973210510985827867385765982178948477425449560731187655548726613247143249960396454734090305301286431011292824001576985668080193455327928667607136103779154980318972499786436368439481622021671902392590972053058965136405374456874887960525755361897437152856648863286080207873353598796987643868167343141930411108920786748497285253616396684338567395702406266232451831730644062334828241772313664268878820756441022759785123102939440947232521806630349311675964016753655510754895931975064920806967904971181646519111525569784008707769689431727899307531664750865065151032903493158352932583159303566613982615923139791978007128713455939978196336826295997485905951170498046512460405899909710594907218978825673423169981779486982811060368289044255856618563604863805763547082742390922025572813914180722813534853228640463502578812699083365632536352621083035269409032235625435412454814387601500362814000144106175635124914309915243000936116331468498031162023722342581231556243962429605828768148191886084307945007003728986486397887106012075959280079204595221854849977022535101053361863715216834383534393815989125441483334613517640793867754924182794040158634953309770227731258295896639835579350783786821759246980552544505082813379987624520145075205488063148728295831236470791051494204393302770471467397537888840160228160650096722962769963999749648870845127556624974081570075285087202534421771517555855443265116498593547467361931022991373291738805103694184799504080224197408343846616664555925565020384042136384783231049253707946120880419226005544408003097598595789183342615585936677805062904321007239542828253373781345315910022854319209606726826566991889907400989710756044706347269146227021597458064337311410324247971578122806799394683955258525824244247671295169767178611845262267106427472289498193256787809704927360691427492411950579380239849218157857891634369871083536454840599507410526109974257254860551289275635649648495169215357608239476907964856182238457614942528452644410280349775401078375165116472087684865497872471474716768192851943297076582415375844688889366928940661694690839292926623319374836435472991717898876473846501898887082061126542425765097191169810909922293919217806172484799380173931067710425438435469651546432077714388539147907571541819272850171628056757316832979311427592862281680962455891446323236458180506534818434192685079949462971054765787052558345854014402659660018944087837291994492504933269354744199998625639893701260500831439587827847196246124012237400802006587867104979893060962772150514982912004755505791165172124769244713450331416392564772358576133072353567213016371421600489526211083000461456378075047982776210734781424194270699795878383579399346633068006874948652678062531245764494635846962520795016439590596470472719513520880871645043693047031523533202383830104955736965327128911472238158523409045632819426817718058513771881226370590226333096407759083198764172458159666714253717368162453933982161505234346919405306494945454136094481626834592185271138873955424022368099520662794192724476211958731775260655682074469872265963009274489276084720843811581391886669602360866313596177801221953529176783238677621646488488409684441475278135771320191307815441400835116061542551915890242634370859262618205875735605476008982282849145686749917888508639825837663665178559632307662556561963912827384400222582823274119394963330946749807688123378163903846882784497583574300522463857661816598033365388675241299701261742746204909599535776698342501449688222607093478349705348343115236261973332844876665822441476381694644006792770295742687732135248130793866785018392395817420352910104891172707360869737536932779015016131787065201952782556869431415541389292241184661479166779745103696648461468245198737624763587860456620442724495094744029225992172006747669238163961035392999013273127692391753448565774368354121930448831595154443145865735400201014622346768257576823883151119605998141322160237568655398378010293172315363466124648975751147865817277811016150650189602098173901379612036432159171245330446892617364241039019041867821465104046046282139559512525000946169700952361704865190739591426109484928955791370422340263190672044927064342050751389364059581861801644245508296351190218916221569822764986733227505816224796790451653005665130966951480692205536443447042079656426264755869082539965386208878386729501313497866518396239942825011611067107750911107957795942180551591104578476135155295809784093596610961219796732228436191133776705306942718976545702880459727829395259892045404660892824057250273775168692598941859191905222668710424853029783971910191453744484590352778431107392199107796343154835628442046881886819136467030033548487775945522258176069088410583215449208267199005963133812801162457116672369493144774036569453059260157499869014202484084562415623706765631591705366868690667523915427388184981448499949925592716312048153436448463287659501443984705871626193559415717468725006312058972663951665096289741310606478202763401377303858251437486312858308087041029270023620504763252991656299563549698652933601315590885382127201308221728677406735424225462525419069078973404626096140803117885494172022154690859097072745559673789563377908402261726953734554055652817311110378391920343520393461262319025521381929201904962361541952384143528440884341337361221035112335453551327117398129527091610887063356629605494089184457757279778499022116771430103790609096091863823886658598344558871097930554733349276586520463642675322179281863182232144943135116863939188630551366434905829754008762113584739668080095621209886899783029339208370693172462795573618121149309681427864151484910708204722580456226095127617660832892079659896879330381189803068705368778573880070704956512625998484337659292639716161078143450208454468415918362470819204724062686263345580486124785344278719393710863057934177298852676594640077545869345700322102559539664669972682506608338135690277443418316775914756359625907867860464640543032321698306190411805357089721658419446795662181585349132172383815866894992760703180418726760987599672472360695477278472091497306872071975599706483232045986823660136814436831872766878890285794507733621622341291116423016600582902965932117765747895145290965336385258568854575173996343418508755030540990944141259151264448182766570477070236686864865903193978384981226040192632217361198275551756422945800014340683229662966031181454533550043534111214864769237308126629419627566947817271815090731855117505438734096103713075971020751328147661173879273024792962880521599600498821227155041636399264608346542817509629813924957518945087697933340914676793114031483386248271921936418145416490322818458232589106494737531280296213719197097908415002417078154152542882130471794546640785645995200281748591168158573289414632554154181354135935890571583293431922818042849091588960680482166899780660013776482390312777325642556831933506291859261557980601375522265474147552608771569786965687275557729770105739575778306282315850592777038202229873168773999355520742106472779011132629981624311384182211570158508403092090717280096717541194724850102332523521510939526713379850210173035754272080169412377042710038195279767822619100056202595822771680538637705944672864475805316114375124748742041659589651264367541922184132062606069516783594443508315698726925908087925485244185697570471113631398019397054163651584888069724650397872398839816416734911011579289307879206155210668387626729145491876556500529267482557804470361544507953378267510038264375492210082626443831697337063964762271819773956141506980149979218497290282792771111531149539863010970825690313068304886205366730613779001423179254136112582981616744778855732551476716345910409241165587834411569458569875530694761177682912919044234429179395531117880182924213648811997463507511259383048221158711413473878034719938542896668210179144669677160709507682798082849523283254014570306063072671997709643319501435831716216907195750507997282628101321115879217982381318103294200360609127189500475612779674891920065145126299287267856238848314343196790241416891554999067653637619240929550214189072794922575827639907520318116759468379191416158135343728073087472579661673774974743912484131921544710531876721447592480939457617937026378968659041059123021666718695549369774991588263350106783506904505799294781880753521810345622833449422363497634370036347045430217838316264768310919344611101008256654904281328298397128877366111423116293003487629952249623792332402131793215450149657190602810516141823140492139389106685257455793660591850263925513127824375495648879066815924828200398534371857904726971664166901559427388950238118677952313435946907405619983766037144259625818699353812762259039819434592980884633085460573772701868948203556525161252231175264540498323969902186942273502760140164101593931900515317373470896049787638554779841830069928039212781001498663116956900665211152521284796498549172839494605468680275291597491182001963379944901503509366929058497518590090251677721884582624899415270654101063212808240216421708297404040420868642220292165188278564357998746693486344042602550264396105745921452683764027570062421597090349629076215527303118224639772776800295100833623047587480348938679167765046119367884379426867121373580394412014824227209034542377624734155571814467430481873312164760370877050277217431475522619423411390067093918647013746406460820029139957644667770114029113841394587995977868158068329732569292056381753216820537289874058205593092011277498355089146652196538384627955962401837841168497844726943345698902169820142141920985589621104162019812366318429139318820837798317233392736622242967933395082377923248762262105822891993079217098281738471586927050337017106358312255369381615011141641875130718249988773813481270424250206735829978780470258669759941929075604546000011507938404646714264565257319518598399429294214592317694118705103693978205284624640816204124799750364989925644410445927304772095812427416387707955619952539486800424708077423578621191456453002903225334617428301386018442785726548072788067838087667536234570601563981355982414557252993739177473427610119881269985334277585138245743295645726033359074478264110297142562400085775875469943156445592471201528136337951319888173428783042701263148251763956899558511987664934326142536792841827045011746286247695534482739726993164079597431738532538930856926313200488909104311634029427106222503148689551311901630856068434445870098481487841375649522497898207655143686942114845022254430656174836179252066964387775896735933799176050611803304622124480127414319534533250052815341579803159182295902870485856730637447303088555603263986906732095996081392312998633049769933326507004191889896044594737978039689696633434629547958970245001236180929407731432357878196917068615161678749666435054626721710636867292909289330564709597916034303967437289668772522759007603168245549544033457790813059365318913000022126496744741485386843348393739487519318117091936207403191565566123038576900627766752043788768770057255663901256781562818498771295945306735518303866019671186646297097710627738457002850090047534955342017848464194675146475702208792599121804207875402678824959459291119418655913437589056143531959849026820261509489131355488134468007073052826976835730242512814521563845088302589711687663471450523371163644632693578251457663588559134324711253990686644051873916320856708373223486060770923032621617831260827644987715244632851893960100507074975584352605277350074087029973357381258482430175874268212552474762872282462549227288254846816602463884035758593184921524087280395931869493595445180868955158722396666857479544297797652678780280422347921926596074540937929263399714622201168707219920367856503441627497419072095592872751871293121663414852686421755197795094851985546577148019931060099635157296540186506649190468010744984581016982315733923848630261699414201956145917672998941973911672303241964511799174212480992705812016956964371093512336222962365866712536866789286991922411683073163639033724325725400767791139716594313688837365458523384145914982283845565825081703559273611959373902499953998687106487206825468748982399449901875621441213299500623529546389270741994170830894033826979904513828995340472478713802703868682370076371366464516628847290711178337512998389939424640969688198633758323151049410472450257178496673100873095714742420515902994535826775413811385090589362403521962702616183143700180621837405169471131804141775313730737199458092224916077752929901762581249063586860330463783736571349579241332835919189257988926507537090690689783520162458034499718247605148240117949091640555376886268180045450419188349794851567151818780189804011871934673846790507725064460876908746353380666721594089901534031031394291477943173804677066077805843161821473619905172420919686295510914571337609360008720857725255605425829123222880857172758969568546819015012879088665334933584059654934012812216208641291723050256967848028744522442622519497765797425024194257517695849034518892451106906726408307780298662205473948906413628873908422028144367099428212522973664415467562465173959048906447506367149095413808142343625407628139216434614545605340199198875885135043691423485400525204967856522562879099416304287250543521986470355393161722153327169591545928958837564970910646830205994963296630919390501082250325730570700590402873266342093071852938755577843506468186072971809383745878040843307608639652381293557684984414860095600223661044918002972805960790460274779028664349663628619482988624455732324704505066286773422705019261559249838388131728076587761471622852298879683554795393068944007268959485605124854791409755731951152438051142520271499015070773822386934008489992027299458279596581786400576547872683931731886857712670730823595542030644444869166195491787001251370933779162248489634198371762570237204328335649812999877047333698863640634909139421074396486404950764649878675829327309458471414431744955235015244916197608605120259305502867436852829254616905438618493276811599139228323863714372236673728816412922258204748040306117997577341483095508760769461499637091876865173868721316979505312796837456031749714885739610607214967342242478704300016606354323020859481726192203885770080829666499815057901319867363599870174240625430066826671912697475385859673776745885187570418091978663790231254263088293200488225073167552052522552951685158528843717022555682726343465390795979910776251458356963705185308387737213052575102534346689223615062102314866325601085777419978445272977910526979814799386375588587311415458798512999992017880526393727340593125873379400615018188101157871540111533412591699888868390618210325751266589930658004093893121790401639336663864468708857073017521246308560251860655658977319630214618660219577575616010174383540781933661106112012966912474982618461963253900104838541849743730524453489485483495910309555091935535666744301953058096910705675296222191749593192275540083227611023932998272944596385386167469796393003334934652438330198526220563162308754650270270357139456341533441193325472050547167332607402784820053715189132058311859720445610551047902667032705044877379771657652890106165138586755572425052688954109541801886775855407729486836951521576575193845988442056106303985716995933931277899681306776669092826270191309113995388843019100730935117455982324665890160663131047608637072957866106580654157413410825067575842434917092391433023729225918625829588260697538349344905286397316605186367805024454961552356768657865904174127470626265738192549637378708295339335610295513349987612928065827895650105684705035613073569054304470046212826643730989629416085784836679875307645308105243636307598280484998995919558629202082060937525135461165657282717914545077861704621272601807867635749608421665239374743546381109758156963981350059089616664973971691721940447537337130921579986938312116808001006148211792834433793347270507870953363696712256820309751563145350904171851180590702392824468254519061344855551880545756667313500798511391369206887483699824969981670989321141041682502413100527344895881773560432319226295235932798455216094421712232932976049655115091058552381878367733731045973409922107843290936878767479920816416721861677936684749824585809129536360190408685987968421707820470286404693931781472068508664876084699619895990619928895650727413126025617334073975303688887367978790201544888381657658135876791335323679079847943513022216954372299580208047833629168891766758147380278185263188219440970238326596842060007445785563403429866212002193636290870395343922176875310560414836686548076415734967027903478377746400157036917207853485127651114554022530298921670839935310083140163238043899219127643433063640635319157893535786509014064754558608970183425018726246892102642005774095056498186763467167368170888950720473292094248249228795489690950783301803736430572990771089863016920705916114818530377831551789229514319896227179244703111154888210804948931884178662662906281486106405388242789109304600445753025434063158781682269205475463627910789276780555895844385970495112475646072217643219755026355183563662468329612922896046376545665142473271121425069132367875238502078860212189271304431801351958796956561568236288397550806350710183227251241881939243612215141613820814754609725627698402875322206583309864776804116955855658132733656248252234264477845602609157165717413663808558827251494051612252138824155601065519857631507448438299586554068815486656771657184087795074525499322625472075532290431785772365567204666835528619199839502051979726329863529845373537646652377541774606633179763678660374169128114924035162393631919049839554311070920855713766225534742252848559575990681199263356369951521591436635628587659747942518284776765231550305810264688034788062607536122940157857311847653594959074565883364606479771276225045157404436117211584350211619212799269873454893898706936839426642159305989973085862651274617364679412312765250094413090717483680822526143914920143417667385996516137787392198974486980044986317265475755651882910388093090406793081986220637506907501948327812772622647404635066278329458246697433705797582495234073920858431416835364469622104841610784603534228979026711032511147537429891361652281375123349629174022730275130502028615916422595440531481392302379976553492344811501473473927267137172831799244426738367675987164661024950934744483568986473594667719081805407680036197105783398555118852653208789544693385458228809221186700356187202882951847313082267136803216802880535748995393036592229121856205951116129645824564041428015441110738131516031888815933760602410668151926971813630689762843307305100827955534637925876374759208398526438003750126834469960904741686394356952435146494589540180230177182276830915820928786387200680901954293929010751074143394415439792304567645241115670892767573206882415841829746080714645769920049939120775355540006419967212102947650644229130595751964923820588067313557678021499995903224047794174228023183835460487193456206487235787953975279267412087134544443579485382506694408811749534561877857816610503080497859686971444796832277827961623512239268552103029747823720993551656623866059286431318006598833308733275225754939452638371111393257100421828536342746111872439527579775762288908638957566803430467272915403347243512425273936962129237461425188932271475952553703978655664399074444194371738955814242986324731139427401825487305604671236227311940825377735105221726843413200314532750772690603888255943741935830111099553687821014921781776400600193563508612595163197670460909337763918340448419812268756225329383269943967060727846228641521522454392822359589169968100097232208009360418789985258252005932603685178617972734101707530007920660814126479281353280413132486150864066769470189695943604199824444276052088614971259882529480734912887340689462711966727338989370876586757963342260592662697375472594919345996045626279197221142076169368243374572594311181135435591276073618022020302140720286843903838786303883271048162247307845260626263716119956835802677519847005486660094801062297193650571769189233537258636167196151021932897889884965547063959668880997416404417476433616830265414138072659738282610044726323056011064220978398274071454313441534597985427937806764302878513407818610959958927341540886732708875610192523006404392565233050962160612942489058372500031528459017374930347889050387449950228706760818240471451538439438895047727655597325494991543029936064537283297890712697941900899318458284163661738655717937486719470173304578421235684728894577656157332215368633979132656720371242402576207096643275418661280288598747809860093497497105460484136063609950176818355456822879889996604722976487803990719625542990462819155155340981359906985158669895814884842624396153265220595431848684723655631449597468852560520384419689284038360084856100557008950819496712803480259476841259055615861470108027044939459396133271591058364918900676520607010385655366335361430178018087539791307543511355876054378209284982193289883991566419624727272174397718659293215436975744764352273057143734339315756161632611004752385513612888386557769602203544650250707747254523248260140299331017655430530595000385298649213164817495968887496563090837283518577067805435910314359473510602245834547548099963552983387450020588280611031931307459280916412439854622289594717884012906017700363293890883636439841778421315776944035556978883890432242088198662619273200847290997575680394766427306131851606769363136550365509647130437125796972758866158640516942239989397334406164132184229507552714586902291506496417746570762342817384188420343783178564453032921895281158711107203410031427165520571294708706392995230658166008411545300869286449264727374655336815797726305389725250159234479396440672142858083677048255895552408740754109159536350734575718650481609984070905035322951542253879797540946655042198675343434940034295842020527590695753844227822589752063199926886473579614851371205748803548105933660435894762820932070599959590205488758067380753089329559258420507686958183642863466608874105668105531085335364504454798778821877141104503915171165610966137921067742540872014980060891742980805508920900054352539148759219757521676438894030588013947415289425813512371335809027218122822078180475281725287359198865300679686984536253203692980488259748711078305129370665649012157403820712357896805976678329496753602296783154453110464737607751568319640944982515203269611482883550697877461976310154307535420670689470814029076817372546025075716946387308211771484628861764895693048771928088656743711962368291886271781271094816109398656129803229439527121890221898521170689903136362023793309197243603981503705861696147020535703700925675939904133934719988051541290705672393581814318799072885432027367740665294842355124333558738031733387630374980679536892157971850772758671743258483590127542017683648716870474658290758138364701729737028369495103600295324444957760635753520051839089631850627723332872516549591423017921634540972835262666815026471714749026607659164138777834191804070378196270008657717391324477066004172378987006915757769409881682449171377717271241698955691335851818645361881069431613710013386748440828153380121665044491932336627405291294310446577480490204849633651101354607444336554249225214114586387091105483272056115706197198084389147473654174883096713811916699122796810352483100568948004164390545110308386911735795816739101687823246635426854427437355249336038200305580656535411158251882741823470247380534996921410695355645419174093619986252624742366979909600076361995706734786208588492908197292567709261047465280945935129014833616892958886631626374199561912503677322707587565266450739577869830093548250313494364148495532414257521005398903725987196561430874728408266276925257711254175975343650386499652133434925282492376272937348397026864444286434705023906087845140084193726407564882256802018883733809211226152245015294893745421192228691161094272696618138947669477052002162281094111638458888903084415026556019455855051528070894390156970746707575784324931978962372446811125662794669471831102707184262468020250354618525389072103848814466753692835933491477697202947735587655655239303589973304657881087441096358666390874399926764568008198165386134514688099870548423694563264514434843513914204732972439779397302990374965250457969989438187551404705213660503755769890657617093278449183092111188389032207676533784402225930587136092605725744594078959294305627121030126879873803997214359590928843745637256923685467496168024369660487814807380598434787401867813562659517998344990685498424591503665263744284143087576201477071603432529801488103789742095764659921474256745166226201359573357134961569574286951190536541087527163321676792659679819413708626428066890690095055630401332460622570680324061220508711154133316094384336247142341641823088784131659119464245786467592442129304078920582223308391941779086332170170531557672735621447254552473709447652108158124487657874334762503935051106794654670430097580823038073705042982276156635167753740623332724338888713099488853678682247630583110672164616324583326054149985522579278586931832500419898284892304233228352517416976666331600235424883994596162317028178658819674796211862724556749869591406925416096303124127521163128876374824458320550556481096916186423749810295073786713129369638798736632729655278552059723361590135467847575313336416634465833473149539546570477166309186328583434585957261042494160010185704837514626879371968164245763365117903899214370136308675422299416477771429697887029584966562710857674180075402165922662316289972049590347220486603188155370630391184822331391673379404065613884035388000031067034164584962993650837214865027881921780668217228780148062295937166672066449842574440029651114763804303207595839576378690636068138530225919049751373459425014396403318873518103010196127388453860439417391513617809747834371240732416420279800903083493742484015083934840331097070380835761590207782614334231690493088119100668163226028750500196057776922102910063687309975942034101800265040705913456140033654149268886782562271248384473765851970194907743658493639110607276089088557184646528240555394040364581283904028630228033400991535629654195138997390893698431639859973471585169075498022487842625689259420827810012564823662517104658111189731297828294617822392636555492286550617918312049430301614389514679028045774513200108180740105916651523982027987236250739113660951833470615248141902485107838741758084940460918485360970210155108127367937103389966768201517883276414716208759144786166324437885403996134450625284515152594844481078077196824460647327354764334828581520350018204172855699308042225686683092509189997150601764159567442794046824050515382227701074836590468000667739527634804217812322738817584463181907895611984002392398364067148808051872740649677933560908570038170695125655304517551524027517792743669715968177723013077613945788179619498887219548319076197728041098597669582870032554534658372539605966393772749781183999048909198368237290832396165232904225507384258522635973467937837292319937161950216277812061488326926073073295533933416031961052018289154937655052785902807034978357128237718950676322659750959846321335235376096163736326018446769359360320420281028706331828837233803581213843910927575621532915015968531506416688623877218851369983464723061042305071800413672131099689950592225276709127499362578593907802196035878960845573241946373841180498432196455425387246463837070596144634637986504077585893727215140315185130894097162270760375627617804176101626375110985230863399933370190732504121088009922380530017549701321180596044011498666698242753531794774459804912831817130442763538500770346140674407983695375860503576459453552343513363821354769697675574400891291407133798979379286233590290667252351917610891581927867230372918936742515929072842618436824223106055080086428966239000643869859459101271963865861814583403623465833917418608358839381986638715908924529698182519917895130666072712172246061079229456914045428495306392216925620424870104768738540212402386241461928450759929833017508514582698916719413101300229744002555142779774937008546037923352375940025111020935574989839462952169436085362907363676451260760983617704894128472600159125265038426701948978475085432692255854360990932191942106266313061779701299928982159956614714884801089990054577985704218136229489884151839499486339127975042027416060763632561446462515538932404392863520930826568952575435132631168060955654246933972338889472119171726067744747516073115136362016172396170755282331398510829986052598078472960205075140905221338448171737137132530931655033958521366474358144508735160525471421877498462395947017636129047209746096928011784903472781732374828730877188976898451935763379925497655480721263887039755624878384539400015227746876753746241829649607598045831581803251847911583206480979529376758539984413120566541603179103239612975730374118367722940735142768176479466448630941235755022431694529367318925489104496903575339747213474464190797311188216811383655012996523304495499414129566681736908106358752742103534026527974515464736925410056244251050034303731890621860398236518381481550962183892492667074546959259894892518993148647685076389308972524560960310991003712069671588964739889013554093311512231648439041994770553418412665423908345914881248127440272369902385907139583783526651809069910442894502134157971944061996321711190463330813797914120897019520381065256216037472301912216796858687287721872420960879344056986662894030762048590587772996622594984179454775131802114677679022568229056033520206318162265913011462733382476699094203123144505662211551917253300664275611815276805262138314484769571878408303559622347757409623600908313737198395334697121560344871701244342525958753601508829760206827639077891904235121533940309302881845138013828084118717262818672259568120905008049234681293126267861871422968939921600553807087110665692696567731412384519742832085116664915419264542697129576218836590722483773461402677979567460655015726244560428780502052513328007968139506129543812552942586260034141764295377978164038746572100434716654405013242439769168151070878653575159020552003916333951224839197610540038506341353269637891935546132109229295710676689151516856927416343287481868967443482543061763773010555342136312423169420673363465149680255880096262609000058634279868554007852683134090744346286375298637083806823682054713979065038087832531902244696004339787594917573754504977624569524469739689284107737211657132489999232888198977821260719736083616741391983104269747567760781230381110364946457600689516149846382968156106093137262877618219764500622393614521273170000835121566208531639569437089363059477485737411915646740093127698245859539784214137487592564269148630320847487335845087252532281515758104131660268123728954749572087278637950136474042476464064699647059503208635265562150549663747677817550874610177803244608763759928935044565886262292197137252543344386411909441851358194610483579189545916425018427443460160601386821276567576197213476178043275124933456579766350688383254568331924769338901956441705299227601631956857604073574940932989222331753911132068561543619870566577537245793416622655264432124658994590699283110982558948440983605187602641226183657691202500945389056558159853289324340514481876045384092305778955909299185565225341808062765672754204726261193082179959916895631387476869096997192186240779900201335476814546280032127060890632770695201847849975197840657515429846685882191870552342175142811833495257962593956135476463581057586062314132258800232354594116021525532508197038765562301223369146922084051114785555413426201664500113769311971730815500323334406773209769808221613974659093407163897474053772667558046921837633811256141941210635446804913807195529935292347214426257292472477030656186412908697479861229791624108193976587343258512688144313483147627957861530133327293034965595373129244650852399599017313084349827453487834221494789689436989583226824385580998069253067927562395032284211200618976120621071311690267376408240194045919739862602545294297370533634477067179344202440716271834754592917672863342055894261612564006064934501968458608471917577051939400492856056629688374092159127448428868229670567951852281146999088013963901734334429705832038790465527271407713862285399719987260125122531821762331882097087916186702029828648404907392690457236189175101576556258026622533205203281760895811250329963846377457715020177529206286146381897921176877038890815274843062415848169236795545531069120122565669731096910983598826230636075713738045565581430157168964257072991127939006079168491237259735191268510618150727132241510481750759514850843328852564350585196839366883907972746932346427828643692042689887190153238386802391764204061778358550198291158801504672012004384448865563103711549110968642965002538972543899846901791261812395099869969166529873549952698853380297783505442949430939547097118731626755575960743778108004486566876253802830899368709730058353401955214580248190243873993300873615563239636979055279368995838932173658172060469447635999471886681624765573493444134245850611862897946932420223554385817941351543166425864939509305108165924559886425507739052483252116238703642755970402745674366377849772497532800543639196043597251851062502777069961446057210010131310243204570400155299928349547359360827693444836777735970353499882472214853351526282830134099534272258550876510717436328920982714209157134788132495559941437000868427885820342984510924653824690976245322655939765594860969128596923270933304523425903683022668865138720436285517229817926677519244226947926449362649108765954696869800765520738998027979854386594994217877314579882570768082618273605566099399575445479100693396540628236141490316302236587183483264339827173307691659380605836676681296400885431901182961284035212083827672119451906266256942403259211211863480879494384025210185707199916770596751244874552922545463883478217612477155963985080224039705211045292346899276889087197870978982508324358443350741796262564681025645321320683381865144668581639478734979290686778256329524481037463403267816579441548071616670753687226612278279163514312199279884109231138311753818273626836748239712314732304166170150472123118633700465140014305067580216661189452237236789614234725151220124655268666455258706508310494559735381728990847769236305201395501955826896925299450546100865027889229687237125816887477386432778125345570455703836877023651621006409456720145665661556751579455354220911125986325558216603211118986315407299927765480441654418026833857880560516917272824663319379724667788559964963490800561540864308211705310401245586712649113104656145217386860327043757127102889775671540961643748160455600827975520249590918561165622085652352207735470443711005715280857817055017645644282288161049296271370567337026484020736552877011743729037961362207145236692923611172170002121469825759731636857051993916622375284158792647491908990621256867098650192963334601887655465989930680382390117551894660004909892384424449333658115649254460298759599684761752522034116837602454049173151609133999746356308598532556117928755033177917741698491874638712879374309693072473405870185738077920258332265712064095654265427076420666309348915787323298357751811626207879840661926955236494372084474305463630207781178504464031053875489732817479988355839785898929712705715798956618993413291528296062650502681961667620363123553345738419214428849619681409823224774768944692917636842850315490129016289616833851678658246588419811815838127971303298599282243802216725431927096366461238088539952150492360277051265542710088885547028229246896352692088435023432531819717730201034027756295497879403807746700597471339007761899363225385712067186213608424683524207332053007292314442531194110000637581986190244533363264874918147768793045392200621482891904772109587666091672916628699686262341183853095594804629719134787253768718780604727705795649849649581540386559440691966713602896627417939141706187516402395146639213250421080831124353102062737132621638392124103506178873986228632760997714315838536234386663738203511510395304877486187329986594957294527360102016094528491859761994361500647198021832028608273817191984481209152239365349469487005767813907868830424969186552428073725307986837877521930491232451044005640642860826548828596655888991482133167135148142957073318274222248578156431153008677733364514090947563997947159542380468957231638707043265902160463292420399251573535164079015911752838768566903683361338800013206870751295847862112964578327574042636532372421145444602896534582483493811161696025147471628393140339641440708965632046719901321387702140717086828983481925777894606515558362770240820137084982016505139091692984918764240289327913916228366440932651697788072040499563798802886352709246453121235685438181842906046516756574057826219123747863767048603843266175872418257016985810474226108687286972050926322856645535852422742559588140465392089566019282878434505424616095181412437955120030136129283479856547809631358900935875782676546170142024372102744418571041658918434811462224608487805763223208978215090403078077559340066974364110244108861307352588547166148187761129062246794147309455935801943827873135838413142578571263698983728091845180173649861915579765593541457200087903070206837073754482984033417428051109034167796892533665004775525565683454122518641265732427082527067901646945497799658472990280927075736198100075187992825563836230556081221904859912810873116311943281488742719685182753171981555698179602984623210095444280237357256132250486388870539121083596001999928220166774991489802509410535944086716102355185093168820642532968218005983908665776419709848252134991671011029712175009195505591507610247476511310103981790855945451470661953570865374395442628262224681697361217557979363631991178831554541151331690639386243665085609458816034439378272403927292625523653551161363278581100839397581942345407966850485962240153536711132882381207268997395109442817389422515766389210210692731247849549765095660721699195992805686777280881464069150689402627694536026194987332433002120631065185791647537834702683110538616308161954105423302943423720903605624426765660153326481168279167286299282059679421435493665450509345861169191677820646505409138825944492092991203080121027108791509798749917064388483871401831306818351883889882090251060859746318842365752712831343455420491310008475119605790829768273950500684344563772728472748513292760449023918047872204311059346591059164588218654077271866004818881991136819762990779492521498453325423141932391065068586739414877531712463974163956861233597183095944077962201775918824649156934766844068793726290856692745856543810957230155037613196141651702534875468857927461481804069072834061723518805061337691201333309471399308926163291003905706006898567514711598844068511090396744468353900749857082648803487299079673159432573702611209508014508872787855155849782726707845757849741934616404201490759654075588799335857733903112617953137330339517971434911499694119072463430432452303705034792971950424951158773588001450495718718761167138853243728875300852669410591614955037841698817003710809121894397515089158719661138138956169811799304822813961189813383543418056914242102060059210705864524315195191497629747446298143120087941576681578253943111651709059193185991808488546926044366760584466648451994552929158790828703643953236715883417939806876216434547547769022140518911413166480799642146492697810794555561108586927214937905670982902263113964239468473900410786250564630659222457572164756725342321628702425512443401687788837260304105070144627398922752497711926003641666159859826271431408303074562025391040419732927038557189324947640821012533472877146754560578759581165947503064713387297517276182754573878753333285653174327919552663487975898705004517897112133398806384484981310377150357544023884401825415281380803398425670569950990920241439001833810335282840806026701455823449869602869798126112108395364155751448824798855311877121650534694178647284664280048041285849030862672770209432863840340404877655681715316291342636373531239738886992593574761426886196103441574282538756660859480023551842680228938347981878821016272934928670741009416534526715671597756285012916104441089898650144637600066678712549163361526918534370988975752034940125848106524188412152276520504244387691285048347304094307567714589383161681758988545825550040996608174083407380900724020215146349349597711234608156615189348996884950449264458643433879692785502412071020961558617569137472099052994172076772362648612299998250160451840801011525260079340458890571764046193327565270836853171514480831250861742142570056591070921301211526377104349830758419887216086424031214801492446834804258083639214040174062292380159214404378938105884756833076138671818508777650409696940231802521836227916572506047463099624933022132908544895314515267766972513237534972148796882330413205584187726207965936561642783436537475282863676562367290863616850921683389468739662441889630659519535851255224686569484194302152322947728449734391943449087078243744066800283272814039344271107173657793040908873294858551435548196272947197207907942618142433910686249958247657727087569950701090730865518878069533986084217254720506911421222175493001040062463801991578764498201456031070757435030152691175408657634375619167504945244072212676428070275380130990800233147363042458948275189563777371883722387872088959715801853605446057324333850511000887331190854662264670386339392798635488728586712916593806129219046839165159108871382173844806884743444175112522652305415243957877239091997376288650417451564222326639734467056767594898295479696552635467538382401716895724057033397735339773615077901097294944118120987252302564503697243716508672726800259825685729436750044851902013482877846573383652775295789557834126904859770890770426461550134932220348700030845752790548482177509326216089197409088837707019970121716668202326015074601760022971288222415510457958005848234716357714500157255161848042476378805828125329655068777393701693799596917493377662080332863535379390439997448399650157228425568269682404842420799662564145983462570896977144920472390774515721374418227522622612690560074509931493493621632870474916683668005411271962363221610453568136490799298470956706460201100202464322955859503719916729554711630690182628505853005468639708836908096338044756200037697032970555978267069639078585549509723253647063792043275615203562400125771839468093664682395416323715088156612502908374579317954701690274661854890657492891169949835514987978428568186337831149213610295349708645600304922407146658443638568808383930714811321221047257181484671036608495136085054045582815318748906638526896152230701080418533317002859808080504941109204331715235310646491546112522408834269555875081217962966474564764045758630610880966034022222995356789547347593475727646228135722878627588092723405017473919243085036738960491264866852099889178116290385323325837849739681814253487853061057217934871985519922937439074635471362683047050937565072177181905210326987879157130249976631801510396765065435048705713242181063379689013800505504110566805616680564352138208975891288609749952856625747552062627626180955820620198011868785191227463181447356256342106613314945030160427035167305991371058094030736252643600736171655907135240127177734960209615494629370527947783022462195495243206803190564360053439324442484707129106445814352842970544016660106868926960743525756209605574371052898521298717857189216024585063600141459220483672078630046065329714040711077614280456699124537349110340584732780759904692403021620783165925047952683893321966984618817202142288943013741585091769275470594051762288220776161625552589956146600077693469830244735799765720788834680525760312961530842186499821030688848522785272844075632602275178849502476253508581336887516199065332642626381541060889005714903203431901909889402209460930255052506214808199344307291560547605299779272556685763918198923294155839072123221424388242315633504421536540947447938865888572948015215696457190112686351346343928228427465364437120988763102968328214857953288799282924524654397270094932243776643823738696026663698926010936009408565803786958873950816634781127899626799373614840189512112408680934948031307267950494490175939752569662089165132475256754774313298169320103703190544013614965143946994603642806200651940901859581554406991485263077566971704302708686919554288866719052986301988595710668440517928152787474288492559626527441745077075914445141868795948211378311410162991037046417355047686242848430355120163607262779646202408920690680965708511863127846031445767673601720832474158384536503871886319755221442256153301604696293005024869221039993714656239173727750356014277499917675494343318470661985214200072141790595628863583644454711552186007453004564786756866800850633601676238385788815701776447229858489675571462092121108815036050549295937308771190280598797454826302566554278793152304170085954002331854361171697194106742615893037641081648136631360337555252594475456552258019458661107377365235064226738761812792048972348820435297886938794188615677090706905990227770466117694351528829279344423296535010316690030878349788722868283699835456926319722967279291920854809958614717169805751050616492298026029475123866928242510857219936036230422835867699158719695989042432351424004710277580877479442548376434260719499325042751425912010254724056794555497255392161964192425353086057190560980976888995860443426562465709415996798540460383631383339063489536719645046949662538738411622864430777194512930415738119782476181539683498920552142731614913197211773130406901180168087310672214265607194993113671575417802481051416986043198572760594285999532681222085286632363102900891611774114407265569447179828444446107478321751568879380030482728557557112830667256210476024278568328879513311343778245854284757472194664677481220653114858867838839652337509036894410564649604086177440424146723409320435733424136733732774740014914271810529684840900004862237390806808800057705202089458752105576360571459295785382105041242759037098857949324515477342707285509225831744080665777608656670472553748037661030763195042139188928861832032909776803332863508558950880019554258936088249856663268504127043085075937565053383881092427193820819508123926203591165330522841094525325188541102439285481866491585078827825613407266108269217515056346463883741284967623147780808450908893013540448048781507905095819586218209661145403130196301383464895120021991349222328050888238749914224605551900942680839562720893679067205185256181646990617726512266049026360063324026445503805779456766184611675594084010877958069495311350785167573676849674375061760157418853408574810296049529184224306065735721511939271873455292399752089634861608404110341734064792526959571000224977919366002778624232482731233522071167466346993267149050803533745488732892968333486553209253253729085756513895324132272178784534351000527956773319383696516268162274153175474668969244745065931334161327960752117079068026496705101134698829642007924053528742751069077688211773580097824600072551402316379264548345995532210759745598117601685070390981287657272305858145810279397298966256308694267912079006930396865211901137955282063757573640105662471490079617830698169750904348132847016397675644448383863876714355953371354794873431628824636257833458484948246713324607968663991061634621682594037396706065440528919493922426132469434056248373607592731826069848371430440354199447714089670234880960214840049036467650016110791308963369006454176454554929951008405051733964174086763944199586915645675636778151817415768899399870640752732550158239541993248852671226271757837911057087726461239288585776912977082511762351755184329087810648626186101687076733508090579603238831986592610383575709909469843453026393839773800216607843254084855850019581978180023007443423819142585357331101373491949005166224206929305820418310905632764929740161627633313677619292106901023006224881128760859291529246447989902192347069244361484918375826239945766719307027562616930569495209108214270646301312620586583488207221772802310934624573205828950695088695280560015681479345489644800303831433292416143347891630064929943841842756746974165605136005118948195795265339026286707161384079846348934676352614576611793662911977260069922171042635851573234420324057673878708397406780269336170706624148280135862008304605790276847833717547403108306720664312523463633741181249914727115376360533094730513984504047238713456153157906716624575131424303852199383419626474302211278293128798193460423738033890339595859589441469785670542577878347413310725302099543707529393396811718541994857670628204795529308443545934782710072414434412152271502097088215183192359083857763616961435758048835098613471057082882190294885002613792859705794261942989849844447186884324515520058373970396732599225922691757085303552056243939729073997072436032523046782372414269703559482727043470961106035591618619229900025140080380154724761304274518930596433847317204783784918265333980018967276845698266638674636367502365219621994096674188086520168307995498067278112761130332582033240783388118599658651249396656859326882999473057569821548064518573351540365960182985271812052629504877467787385997869190792861555424075905882884352295962998922029927179082854138845900298952923515431898913299861249340328033764461526471897643395827084468716077885028971505135780002985857241977406486340474306346949039675613684475835455085947472573253296248448037796227170468840313152757844138602539135284849460534130637805080066081808903081898869146475263730449103031696513885845827972099947951771695154804925953525593783928702034971939649509654539962814643404948514392102029322417928899668911716772816641154488389418918251453851595758047718206601133966203573672058906522472228908355973187800206209282559697333555939261010902489692240220916424592656742334707321353699787898391736105488289287836051364561269435705973042238758515806867125770450372467762655244701258793688072776845361569863246190854500427723758458030997991892564443959386583095382346412756065487027997752668337990873118215803981579051060345854526438632387136318022119449279871615032748370135401705732886857359940457801353848263423231247457740970295942607842787699083254393418008864274196154543537101790705857990245432823539986375013540337575564290995370607053498838208036795727661545615143933134293516453279088929137629591548607141776900707202077034237305308554558060129271072840912747920498662869975190021568184066403163556683486818445768555613787477066929196200206453071973756859081861892801369503203707564417853250270774931166017137467243468511458029750736383046397530597799125169211887834972840339779808845033002909540287711134539345417970286762488224688816698549059420909813963736639625328642754963365765472937115107545295222716714911723124845639543546563923747374825289924913635711024597454975806878726917052015661348809860962689468041587762035024889738627754407391130750376730769858708602141365884103415113196084091778730521491130616129969916988235176314493708053906786030125124242431529815631024713885913665936535303154822958895402267663289184921596931887879030904890361880387527673276329601469638991931650193677091960494568506620751411172262257762684753235210727980368523267695288308026617674216567211483376958063058878511733823087586025419887286110052426842823052915821867325595413217851330468020679189149335867677845430371319089845493155398905795397884045121958191364303972096042382686827122591854047958794616342975054505172747445002253419787883503409169491192572813801649288084217131138940635346801377021569037131550404648931732246632950017169345778880408969413098124800782215934377679989670042133160840340375028260170596679698134157937026613804112483506493732835484623816043884168664172541749237260344868834116647300546490696665227757754572236076041381655022957308644230962519700455614595051009075507861617795186142878836107327313826991525231831999477347106018405432900283046913531737047132695009818401865829496760315109584379472852237590428918869640010544206195373527661995166742406904251864282612897501288997605905240940678287410536679096828658302468687775759693395331693160126829651146813751133279747066904439406413203925162843945325771031860415082583179017611908086012292086820494413554087508148206240738157332651199770473451817103426996450324064929444857492916137737479979401218458183983640649498787572856818206524601947336116946486709398303864755802755495481026129404129484594088340811190379876604197583085629233532967715969634260924471196306220267367597805432367888660896208867682015217117648062566816089476767532732176763464479813354605065267428349803031211980873605014334249834141218832385490233028664866614538118433570138546067656841436324838605455555853575805712641847257065357289939901117257115460065341357499852397467737218941320867579106656172440030528889665826774046890170217816991618108981618782828086061444835580147549622485654695632130962566007380462292851221579695045309889394322909132653680758722667399293162876470548935995705777674017252751940654672676305185330188800521692416219973128706305139709113086712051249712341508930380981329494335960837840777154133262441876925682042562694331930854503820670226250727867426325293559526178535102340896490753415007124854993537813968455870343699217385457137476660171549115156896844125607888890674497169922528343123315743980129135774191581704826381053762783720925651715746966368493507417404727491803008334019516977869757027656618268542079459444766204049155962809496700352774750666594276701630601594064306922819979301563648744460987735436100618322350029819087717980149732820640372190513376909544129661190976148542218302459764200958339665125362743782146115069288896272150420448841732863944477203547510682201338481403756687079544493346789705871447511820581604884943484161154993327409881697212864321383028273853532864799048280866600183155029934633752696202971425760977768708393167225650867361339709930586434943162897281403399450883961812949644282807854087301542971756615652106227460376777170837854200217995668835675547670454425014112684405528201457308864571542536439820961656090407060639469704164495439173247716357978929365380308476494050034515048114213221476436739495347241617817424710047735295797584611642772594674874274512554194781984930296252510181762174586302158859728859804332982411556539379060172345586669850625287992413593415627263151798360130380620537085337553745457170585096971201846272439181943061130249300254551054235238269586850447411618842221299325530055588475128777133534961292827942398062890777305059639409357808620489983098217198754270254939289804372604841783331443715018105695602453334948768784191155829369044065656519747979278684427182392840124176722598725346952629880970325476318632282537441127721535330048135191500156318800769803061930763455047794355094630227785395175489924037900882696969051453980685286520144169940812111418263638786384516702244332893442741772400714888345464887472243145500805848691903211849879820420914120758940459862894392812713417955890492566525753652995545223070070991321258692570305678987370085096885026618141184061060345291465157402537033509708500371150129091374892887600708324190764432798542741758495285978633737592197287845346476425693087774575521607283799460330307443179697361261319187175560422845189316445254822132771781003643364356446637992407219903883640099207660777655066222146952285576577793307780227889204979040838695125064777358499848008140357996172221137718119954679535793588517735141236012035177116548685171368360651972196681326243244707503759786149930076021299852746796904191221378378694944083660520895262102945888268706048492407696246831534321185223174320910904115347554574261100882411240207228154089302752646995291796385200800789228871559087544701978746825768829182115808259309167271617716261631062557027655574000757437793155003350769367823300247086262511524906036023444344340326310223112979307942875675503751358650374486477165259450471996259447359561111991383528658626711231676424246808623845799397704139942229025118557107355111980854780953149086797605416000516411576014108248053172599006415449080557576926362700366029405902578369269522099638571854852178999279232710083482017702936286451033333449765109374109528670629588766322676057491783970465323040905218200597098982877670378110586461999059916185036670455166769981060405961852749987063802494472304328561596797254398740863769014765125449122002455607826825661458508673786826420209199003919837219331597237995096606173791278910488094442840211195299396628845577803485655454002200523778983875314559220912548821939898308989698932572717581316485684503994821605107671627514004679584152982200772634737945007395299371207008731651228027034798507534320132644145817313999247056796372380272115718963945669503114232544680836734403536026079609525993702243938423031173045053671664748159574939359381031674101208360124609209138373471093979166240984456329233471262951060476894148381685999920696328299230417126189777035317664691743519853901331662307355891830443888311809894200774405382381513764142268826192747748565066538729813437571449340283997705080828938708237673811757333697046517266177650660324920934751489985221790136491921075666013339424939579327512504425069155259280806463096722080541731147125942500886655975289121017333255788283174528047981715768450080711502792475266270662738875592279637405873866911145339102255139962950182496701499013305447973292568814653349242219652571979780501867801152447198733007820606552672803247467367904808512474848806094215750302111140065194320103264510119156132982910042378823411667117449322813251630410904046716142268355892266595636866634099979582457665109907625334755888486165512307240455491060257012112042355487979410658772952149033732094678475254569232343536111146902577183281388747838211650871890025835255455991961659735138295504365006605795060634907658046192153160084212161181361170706038092636659851510697029047675329087291155715102492889927379106649445260319364487835377751733910179417943024581235049128406255157956022148799625896760464925477839175483409623972876757016745814976713076318919722440061085182010724856541912084322476247340877759564647052789357157854711719880603074623272901401789170180024907949125200617088283043952103955501572210110500059392256926462785051398018732758889174484032087684159807642115416820766884998462684476055458817037220455185674932157735859996000680991747131928487322856687465741599149924674655157714998427166030927112407001651468810260896022584881637421996818324347829697062555182148209084949686173502054479543674443479016755323245041892749174936180867876507761613231195120898673299622054475657989372753686953511985795029856400550708385165174547518829352311158765469676624464006672434373542034781557918132005600767436638749707781244296145836785210518021229563457587087979344862809780103823089203840149893023828018337048849692920573801451788543508124660286382542763774087276321802020639894806791853268454149522396380153092344828434917585668004103314267790072823913017156192725017850795178811082893285705239019347006952278961004455868632775780343566724000403191176621640638893316885020321824781471484245328637494343783423107101344217299979356680558536507586343660583804398159030092502436439391230648698692018685873099978911474070586300253873127258512689229134192328907813044985263274644022231956838426655321329126350818458105053535200152377044686326543566605099134878850102449489930158538375099112704187572042163596403064575687908865572251628841284603474181879301180661311084197288116166439625349796387879675017176468751297053842634198853144728189839369075674966918120107435676215390229699689957961100532831660422693691129023127487405120012446731227219670248042265023886675630462846866103065249303115801644291850848975637988875284577265480558842334464352940118269251883721737858934962038415884752519341421866213470436970778307961904550876722546134429424493841076937634090746818688870132194647658381897972233354673621525679541888254030306686739809332763843061052535009107837567568557667305509832582563935155541708637534390158603319749285511522774325075277743733125740456058404535679049697806588966117448741262869262687091373792613974470341957237680005443530079957029260458118033724878423465564922329450410005135696366974793790713892845394673745965418866085193760205727284626100349788428448340848317301357792974807366262265114892752971801446635180193234700240122921797858189244715587084937528497568578288707768426457591247047251285674821220482131443797684524708534455008669455893060842245450351823190154808492063902097476788546711340026825563629398410121195999996456896363718500892915574112155853973768725840819029500180846447014978918854311622213387008993032481619999254115013419396581150766325769276649219682027652715851545662281890651787286420063253291774014436607333509741659356590410874426951874170529544332179664490529311839337941331227260585502600807277159799493389861560387367925273435335030524300818606175290344765871716371672434829562355346654322097650769218550824340531253589408251694668124400437195093008360039628719798444040933446347492421098582929567219745116103273136747656460757749915082008678618227680976517949277203033211881266313974323154413040938237699273707073630466458505320551437507699420130716940388064748962777238701418999494241796755870342672356157434387627881362199399766562421640908884760454457554555981796797788264281295644068078122107566406598284656152745583514784325341034579491919726251377043664685177343152845508408329271614587916057414829941959166010736654520499951355390874908677905296231395988400989743255812082297767733662683226571057962688917992499398597867057932056157775890204348277568277264112200860793951731170576190596765123166095418195592763950186794848987325767446954036070284036797398713472994422176267690210229626365572973815270182411081865685817325969449355604289138406554874014683404563439566895376241063510818525701252074606463064672166403123716612213253964690090021763761421499170113413521396889358154288330786218177976498711476423580259778203539864116780487981299582404621710209378503082091803674076929962041278545625530351607478122526615128520799246916406800071661373998333549577351592429579867223771527159507468593668214338363570007144507848143596145187899973549173180533787727993473289419178369540793330165371062050369681285860528671360919534325008124130918854502232557270245970640666192464163063957095175662771845169342628268985512129589830484311411100043159904817809667334674994513139831721114688960455448492814780863361474659071383273822917373029951091052378668117673747389960865829224962614408671743636311815397357095207643493659154350829485345984049709155554854109408373057449180277354847778221229558179985517168492938114896124209735377897984374851840903439324819088931708305662234139309560487105854161625484211881763699553416426484357448398748457792355854232964585855051150361745232696560800591775468280588772243754134658000954362391789958830581768964929092613409206987054376299278745721216473355523528739269549700300164194613703952126477555444087919589776585940474737657325019879794840108379265079145613619654753348670131295574654516483409792954343503452223396361546296972981476353493172253032783584139376577432527061033410520565708802426398740144108668626493274525363894805286075152232988967146233261713086073459257899781291726952087910910855790075568724747935279845468936156743477274352817957059063569560368991201676500141244354789751981028115886658888945752826379650878032331680756148322032680424527346343687604275723013788413126758695169889058361620122673788483075352739312033120757083127196626122307295372313255975846537809878019158602157925769455081998915367397716756779343447520542613753512342725892128247222202665233942529138099290448962483843366225557681351208855812519092881946951128259421497005967024524948914460558086054748489283170490161431667607123971463829514758600137902889072673657016392321876898656499924131430061229305726480751094966769505600645038067600551804035636821668040026336146470689885409654281270042125506524236528652508370745787117535858815454127913054312426183085337889962255867709784434504450519717042062888787422699642864352119230575519699903537306602145154719177874065548069532489816530455312144776864472278700560444021494814541436768026255444815248288397584093592460951757003779287408956133527659322205501585985211750947983014060106648954878776789287333475707517375700964057935169664657396742694659332850357635026553944488595475442951320159777938041830460526799907883647202995096994957971146780026543281984513936975412125966203386765879614376769860460201837135567968519186767795016495148654014713107282594035184027689342335775489830488114939976899552402509954647243701493415565494194040450345170039101167733515567784637207033459549121029312391624016799003548709041728011904700704989326925737439215107965120167044082405571185518167896519130675245934048244544052331157693804175472167479191375641122768831875980255435919685353361641084459081814853271621357141907551958850294590782349995524818582982320508391011689593326988623456453095387692174495051093076538617679610235594502048425353296168245936511694759365160917630742817711007718342766194388026232985963765228920391128782880130091816573549192671012128386245328845681075494254822835356534323615594207758334926307810464197174807695076610350939974262796104556571660825632953262073764076044444368438036971541090896189218778319188003520610136899137228033102575697260641793791429460126321335394050775762087115357720624341932794094593390883741775119628388993626412835324821187292902776204870149206255472435111122922706279885516544659316674959635979401639614940335711050614586263718939795387365823776893894084239674944843348224137113857751205334220376912368150960468394574167367774679272554132011871685713567695496448563744180042848031481123849695501942600196828950411660535914135091817239214699204678230019957080429328971690076694669672329154286792529915881778188910538045899255053913083509629332249537625670506124185028474165474937967087732063625444371483094268144043253965574990266952113384746719388585256813719244131330575557701785384888009158335779017281133829611703612957533438723753907012658129875703882870895444365793949619130513247777061996835575471957699309629286127535452518654389293701885720557109043195861125051158483597295562394092755682917027914986527300857366387289553742339349129410622490550070695844647171999464654176329303366027380951979136308028453618819721200936406354998041683342833009666407011598763588095597960697762416767586071782982040666456474304784721950295330289560728861767544851717376330587877612071801234116952225682338268961675210730519559232551390821863393930556247699418682313493113242402858035133375564743015269758044795497080464907444215330723456259005257605234013919574878377065316570384690664759699719530347135942980158630227962027537403343566086061068854593406691499113307834796196873145506336939877590887240460114855273161124627684943223124652432666156545301915390932978964969331088392320441996800965847983177276426259168832441961468885218736674991054917213544392958045263322462520340350774403551176980202513062808923291513424344543998699551850019888500212659452865452094371923527024746820506121359121476174394072469527481861041110593545113628408105964717844647723738409092772400953637605891916584703812193391909536852495327813354681463952236437139873656894826440723141190559340030685153836933188019000909839753037946881536591399914257705489279655557523914674437836245285841220718999971245911027080919261692490445234942546345790219108104639583508800578545588459973019843946821312059346433800091344164902344516960366915262531030178710939071225573233388611859388915366114235028308051643078636349939980794091122822600628504149049064428644163785738795368978906397010554787889296831536353416830718016596520963420821991451996233658752713495264107550519215209413130149930526292040823551335647331114575009765031163388611739200588879151774086630260234799726366290592843477577603405841865654722839639708159967128888417924351002052328647617204769435446287562910996789257553253702210268454982240856027940789993562603756006273996166106702128457739395943630463640873607887111497803683797852880382512906206938403474855471001248260934143671458827609865002788522347723492815296725703518561951284560206094243092608847504951791331598709360629652466199469751403746413195519892621354583085083560465348948378878663385488335635321889062194468408963020293056260559091829026843167477841748908031605194545179466772859038589789641248737453730903511157674474804258840119782842568091013727557296067698642440770975962283090613841496993867992053109562152174034157582691590281169554637870256458207888119067780784127206874166114525245073073790606599168889931305607135460803753189395012794195821285761608061742375061290006149260526439069753890198890326542857835185203360406317501192719110914288259622424044867167412992823776515209434544852771495036729025156098107903208189937254035112714451921371056591430538536803084812242522992897638670478452599663606808808480961758166702148597190072273832450434950666979674236831268745068408162141492397615239810118306179689359024832770508716654249427549225541624704208422141627520464626853354360324076858828673256001627163185265438547344917771810839905789513244376022352282254797070534501374759553547958023405121794733884385365438938399960430816724066930739852557414387198899679303450668208670985711815441579135943311961405361756095877903607271088525718323638677629461751417336207611034992310509426990585564443408135003665233604752536949535199875444429053231173404051649520387397807647394225434689498142615787307701693266507480945563432683030381214822910248999110449655016637346175131248558919253893196435781689686259994456718332231945033554390635438217200686271809614135381278941468240929402217442705599193114205380441468174001237374184533757996464993805177182884367739894146822178132880817822731767604805380316808743047967486366472649405762630390391654873688068724898369117928780190867101558159677985364397806290600415963084768766130627259367784343795405813784411890258594311340273980852949894061549735658658491758721582458047339078993549746061956050224597305804052702047321536725459913930366377936930777728336960599917925042581250716141486122290905025525541180934137487553982213242012422979065307777702626758001491923009966649413795909192348541901644497575934625524305503347730394567828008032186190627300233960916172598178628198029379067519791836323899850446656405813312221317677455125696088933767146183632175551259801884017521419044385237741601840322359776791732975036871003806922924118102022529247152828388802289385613066188351860896254425067795130978913870341609361097563944285370750888016572267211285466996285574675647606624601973541789410607904917328433004519109639927546142397170082587409569532026541636689740734398192046613850091002336317413315977023357948741629350540012312113223142039881781420120483415336334897400530055072701371158683573098555548318226509744910983072074553556707856367285910740636804397656371990454905452290157581512015601275532750660993216411224256182343803233044026162664028666308312439832466384252567041609473715558551258538804374467073028923879906262070692443119984194258236021636086755997486534840769870068326427564415903921598698473961117268519778485094493300470702212208744386238222479765753539816107930670496011661286506064336850711909401900041431069705449646397763790545125569114053067635832214005684546648580185489139995541347692281158037603605167951485184839349791043747207103669784701217337629811717590029216126812823927695471201287395174192933351070249551533174113988148619262422592312132695943586119238543948647524378679028059975108429776293848452691277541478574475161637588907072718752900534906723297138126327018531491593111669872314566239659471786194110806710428108599002323477571861490885116722423350771897103865955250299021614562083329016663451837446057716308107391579797922902903089715866312090221673281946636991217013950906673432394416805108496265969886345150714906272937161968483283440923404040190212127730540176676279532242673170211570734954864187782614975421159331383523556699402920358960045562319336421526429930083919468741449551198997989478473446132203865599337197219451758858645812481981496109080092329790037835906283253465008529019394359936751206875642015057681164934398132571690080711163926471319982494592862738608533986960921265831939766117794785988685407976121819058612795095132748658549641771842026869941960220100751603627861511614184792455137133026740195330845058018289033029570607344980375218373867303451949629420206965733003350356656814929855997376294088412994260991716028708456215226175333797232934213771006491219160504630727045171551769085480057365434299361362658156106437792621800720440153409858432390880221271938061973511583248569900834655923055618865333546823980551236617503853724048901360823737492131707986906241011346702066588305636189636506628769145260527403164383232700445463358667073294765361601251749440038601107936916274078274212303346944309541079618424101324297085292925155078054253537863806822982948850941216574954589077015402419845247327707412400988436760678092323691690449667653599995378322378420674277080948283712419065687244120666989593845132591199449069695090318572852023167970341876945484235715437129611762342191271394215767348805592458172928382174665970922433472629526391595838417330221617553542480224198567097968453249801204368962942872851902111737444641608261064000597829570276176241360104116546420086673574247806487757364802785005792795917972721480411780073687117748206337746053830574727220546848045685187949741529766253095843010657333643103837405146248453367445212992455473773910087243859651501966558308930113966985282248039107775939287094838023595004745053847214055047627405894086647308784853161078083254244535544718661160185642968380018391074119291146103011738212664597295526605884778099171503094636840799008254682598489583907883293115273395545401845206287983731827134152165790735043668979664075124462762918427734776679476143796268982184262308343846187539212082796020861142602734762739483029269554368808154856384276031517572829775523094553087834679046372343516693474824153511369710830676534909845565936211379824675783952326656023472415341465211241930792566945778291933925239299927284593830124930554884235847982043680195150858943805880847797562942386927119440986727854649373554295537842132218541071729756096681659940980168977788522854870586303669481751827722052080190037700202029446975189562720489806485993967905263100135256624971777729493276935717347431213096607034569030325267393561234106874894582352724955789779336823991182197441598772928336924624609753813125008286118104912549856905178324841408755130998420631820873187136655856047223982991310098735825921755878664323187806974219641333778643836640472992953354264261415608729206644095408977515723660229605691583157173867785461211571212115468544628232811426902715298935732211938379701306842330969424580144692802474990575175015701471200262126642725138809626455822511531200524645303815385375847114576203879433937784718199670266264804537849838961945813791492822909791909933835008677227409167363722914451599349126384083433158216919130742390160572727182635348484990963661105285079637742730515007985536414548761117898025150957739299592004809903899403705670857298690073266985168210400012935347466572736070137486139926480867256468361130435001151126744975146088786366554504144926795469214880575345326522269634565819957289379318448897698047053842319818622315266565596450189748572594414725111288596439559788927092550900926909470482934840201661040920095194505790071701560560126990105717446516631996521093758507217172950835505681989422664110503336483055397847813092049599898163698195909258232897889173979500641114553550552742631766249055133701519451610546021883750816341349687276570176779618065206647960985222447332535915191587943375536433716271885164282102107472436164653284880359236851537545478492938312576059110809956367705652501912376121484717746423141467604094777599610201946957646434092858841707590708563525413366855548427725034229141536077976398099784403440043417619301578907329610438089669048135323680451932659566666236524955174201505462518348205624736617991152452691373892976383646880937545047201722949458424875506467458202486030630479594449611094419462697115398440755028636264327941331282494464020641282911505296879866310367076012308413372281033548471898512120637925281984568201863182592004659613557826274933737860139546800808531147174122822171670574677391547736303793871227621543794293145993536886753383902095742903496475106662055459884704352400321602571159281868423850311904953934467043640406618802999667586257793215251515577075690175705964925431157163706379271253140195651559905087967561970459069683178851506535985658023695766557770970194398945920400891575170765196942550949627150565006828209770570459275832653730106535868453339714710895553205261916188064470487554415328691904149978855166287658201068078630260091774568922946974728024791448084000765798891268141991036524552443651458897143666139862856059890975152554867995641471775483834357675964320856143628850667546272764313447043631113822455258594225155939756650922097332033813807069013049717187101155771866037370643266517476493784937679691257624188504933205616849764293925794559911079660568894764704118351237606533207417889424460485499224138019977639342569396981535272000690233851037100980641456219096255183949310399755743253046409338102838987335090364663312223387584984746081347698993498376821548302946709659158614651938590361069803800780032512574383570256242387421730866736605794526636273484207692424525124844999124646485252752998787399380827407533678881522482103394424052996185599483279525846838537603713664988020830270883158094193271147966430276327666832946215221280880087959323061013458041511376402329964885791387154610066856257696072649773809692066886751526705789761070261620018422974286986459798604290460030764018027168532886012675477531391644718245328800410613511188354391019285865428231190413749022913616473835270164273696351848152904041189862473852965003596367788070864969569980162614711548340739010252048241291774081019741726625337629891733372282813332392364693217153630189432940002986883385906432354010827909017148923808787320765405128110185361039212527745185181314275556587434226552776417685211376703627432623680978133681787671390974067046694303093937680374494118663055979812789803494103910658739659750498425522993435274246703413959092366051813653658651218916425322547525362238784180399918324487759373172638277234915805253243491723449428354933536356079596242826538383419438084667948685184973903778732714879344153965710180194023945944655473426152955289320834077390754595561170637609098790564721436155071818704553230857058269298454395205555055579443509738449585586923081423224821276853439904850116333310872296504219121183420732541093377610018661486218370273562319336010443086002146223614016428055049784662372252473541658091242554765703839140599293584834545265617668322319798027892172263480800706356143112555195258244678823661719317770294262655086577529998225617174988728172045972825152538687425600542815427983830412669524757061060863388820165258298847036909497300541756330360073776119446136798596202506449892267778523602937330640971666115762486467171069824280917285468094512694925151655982488514793990314488334136046067595833491716061308820410525888108334394771768096183303374874840764089121810859730236317393311994023046280539877850657434437438182755987662829894236565076920121999730155327263283795525923574597959392083236120160382875526916355044437018819420334317499765773301817877776406501680307346086156903532615962823862706147135785444569501357013659189676552047242284518301758010794809340097571003315687683675341239481925255517337870310236936330258846894930922228231933593331150243118352770935080768562094882500520507130003542550607793249411130458410467572873461100152994806661331911024501805789539866897749367300331497118812183150809340474689349176452693454499835059520512725750764630552845009481775275484984642556816738521458831617686562604132483251619648023381514712441018228504993394767067918847073857775737453249967533220103077960340671382645585872080986050278183141652065345512496434425214311729504306936165642354805138676912603430790015481664989185759317658056375171263368567344358015373078934372500353384913987535734740562035634347933472588955131037276056588837119032551982960039371775481433246141015911640798897820852974725050704468781555086705875541125387411569944547969939679552182851274028277755963535967675947124581413800733385054270323715723960320986985544320654602182827190564422906692839115042737696745949388794697983761576722532692810290053502027725473023493454427009303754079435479367846922390251226746448119394285055741582563528034849897948640417568976890435050390289381982878706912228898831637929122785625734772319602758162047799484505172233088702129578670853613039706937194178818990401065458535066964488704711300003150174541486386449098677302550726947382775441922337106365515904634956931124852431570521291334045067708201800714378943025689796817498996551955820627300015860470325717385171406038161912582324395809212065818529500695373671900423621715968678666636680234697896805071656792465888673021561289497451574825204923887960527680617189690295529661595186417857235574932719802738843084877431754425746066198108302390661633244104415141222259548787023897187420879410347618920324282159653233837588806735159944695259860208124702065365081236443497177820108915232225247031176914709587053566332072623676724678264413942842956275936074347319620533734754923025256949260180273908073206771899864111434290163345181989524527179589884348071346374870741650805212955429647841912465947970842053163350288867482488000834031318481577370293374643688977028163175220570683184794457892423021476095018389039450045249905782944170895161469904147289557804141998385681130780190311225166616008093350440910394888383159743132800005981112236378714635441977034086503989716740358685102235251053312729183389359702586676631098527218076877298680178846888094713800309857355906152868627158900482923197868431628901425328841823282273945094336687371709273111971725536083858635987106278103112635078884504039964912400031434944360407764618007536570185687937767955010183079034983265445500649214847297947103967543791845187594033968768810349490440014937217700373458197743914987270123807710372536179035844775088064343010070883996452365362957609651189328210233342862939504231567719441327082951971520166937477288972820011695411480050987569643207842520383534170661291777017124601398300595533252440460907931966841042157044693261162551331808549817870204388569465749458818167170462898105016854928193548544055965531260449354574782182025772794598550070287182090605896203585779012782378530536567117935506324161676335659700952088675766437051549923303415156756111462138057492314755806212085528271413001977426501065499618499732949800665609575159063444550021915125707601812569091900666870652250518963991246568688297509341989740438577545698620962186851939250438608127486340628087241008531027387756002609107632964673159812611698153200029411358785331864183616301378641932351804807356249596100086870808753655680168667000602301777124401580667276796101991515343131945575757572388422114443931845089932368628835978939297608560018874983322179515167880249125294256817574302323125336212774368774126156547888421380292928780315920262721810376810618505419985800436629381689216571681489019505431219907006507023214143811372660266068745902035236957701403684082650796733374555940210081291211649187905918744526528249617928431876365997856601138597518024681104012540294273963041826521681990182806467681904675225697337358466242167046641289498986365356897992400268063246205312289615142768011253436921542808277048125424419203872912604180382694449331930611011960877932367176757685290418453333601390686966471243577742757863423468231127064993323836817890741191141382761150459211834369379699059596049372512621237465731511671896869864852403529880581556915066108718370050248617443382374046499077791294792217573900663881207877825376047365214468707633422926765876281851895802325749480340224413463384328287917473174430206544375144603763677901486247761446000134057850805130299380886381452729176701202816203845784416221452106119036612072552017368324202579256671447421170432739914436475362206196609428489450837173888782434880264434630914174926169517897573551322798690136914119262094210750057783675189970148350340503647336051936787466402715838007771900919826345616381253282620542874673662761577400408789976466362852677561950051799636668708945439892719111562615529015041617859774117459854567414822066215412771991313872717616772439249360138091066278836395121401202549861382870399245957211151621464424603823337841433000826453810253903996088644764528136367380266030030685835949410651890797624487507376651707482781321517561933437137779558917869225204148076979737436670800296239182380489320894314308120663580643924396166853374404041950685772866589764221490320109135506016719098765831159006031324338964914627407876255184584314037483568123171919747632524057122892162863518287196028445070374936909840744920550572682694635964332980011887306939105655917524871776206012250233523130688480255553627415777663127494162980687675489601424687195397531645727125666956543520858846582329520274918673875262372790225759070769450369354256586814632644589595028992458714482956257990894577042105536188486990249529220255798395326601224738080860645826880944639498751827235520155745965453454605400649209489866667226459308482336025791638941299223441380105467336021903090934516532375730021250861141630499365294409841935343011250012206620716111323341776147278975669145251512959023419051998191947055727153550571437840630865197196577215663087874516221958945263771075060048786002446571800385211044139300880603712611922084015244727897109548115773310327533129467176880241251619871857161327177012267225934561715698591227434995000675678171970410812777029742880968526948224884156888347091122127136490315174142328365544878939718795234360584716053803725122654728722710558800171143480023371237472548560015905396942142953395857976737506827403174049655588787494624557280130717252688832126173165966476025025752131454110754120416200236372084216828311007875454070728976994452713998635879761757539952051023258247332207335859615432132610003069585918609326343957054192249867988336592954833703775619349245825276595658563269535490051960343410749835111373632122540848850261800668279628039096451751860556445507974971007777751698748499819682257809184460500938419084157003803365133276523426718266222242188551675510043735681095356782478015702156055299913465052772293724096077006076387617930542475737365312843161126820195760744145839837213494475308327325903379217352195257362612503048541097588723519794399749873594299876904594633245201315353295956535456045266689982008121994215937345280025215373124558774771495734961030838407895298051966192254556036183406701675639281968779312772223177926388430652945772016248665817732891190235739000732957124297740495148740366141302115232410517845302808666664506246202075624643107459859460461077698451428669037577120294709936305858986310032479701949407142033985374779132880229283762792671934801225517561787873175403141578163722172523325460024855533819917559923621934281547572017859527423109246243156885009994461240163718986244376552496434058195375954912779485337154865556558396194898592054054339532107792868616798566657661723866864311488910905982315744052975274407944328835139605637327722993152935707044170422011935054738340311382578075555358644447839415486768442308796688266027820679754787086283827182715977939305016462534784177581589339338338742050839494447641645940459930221682798957111441714938095879317816242031882961869000629546692874702045890269611750239848392100435302260718425024896103358939859880507271652351657559478284259644082673150587295063835611692261592994608575540760974523715019830199018708141298961862019897840236312667361754976080417821415485541775091570484110568814003794426734760585319734757481955016769526483649305222546393142850024808931578995375133953330928853824413550252435540943785012402540442530425072691088101092945512553240400376046418796079607707498084183919337283297767526569785954199936575238045441915010749833888941849443514113156645642283747395688571794847443731156894260672391182534298156345462633295867211461902358227965982675003061322003716279379855018136288516025608013513386684838330409096861049186735928869462067711392671370439666254826330466978328126583536088191122375781383155924136415468983179015399164619261197120762447247812514021317117700741532293292709322909105844051005237636265986888605202405169787230210769384382246859929083340406044517173137066306231508671221746152369899969924524046392803908290374366498433256448775303199068650845558138107884380618948637872792368405323889538125485739433759071106717521987766942103862936169121009131704325075218612706059857906263930073629722795449246194283586744553069483384633345200941342424421532065153249247157670472045966130495653192324071099868214103015276642319287916859514763463258625451175090494751304493352656731286942478838068917434502114020567706220015967476906653024210473139049190933084040430135497346153262580318727217226624432287932418204707717700437562400266446735563057509398436176252774561765815922159774602797921468790251276431225394513624924562870117969660039417123910508443216370945590417061016493684822545283194226236426094231869326029990979819607506856905346408223567832876911172117784298164026636652357859947641553663073614715771920800976286887772810517263736070647536757678571826275414400730100503034867415604748370200149912583485236139396616753199683000193332264880355959891615049469812919869651443842167561639855910261667230298484353770153863510094345721501167069512904855829810103578721959959531968565796500606420207487693509145677489939588469597603271164436806473139700739748749430545029151056827656698705640278294891021177035875277738219612472845875257379537499270932620771262203684510600982308599507182167167688509138458971828299270185684547795394177860853272757390976849890183280631349563607756771846419475834244145751284160862739322340359897237430134346774514572396416989499929245550863786056656516903338266589095214519875891209287705039574847859826079088763648730359648880209001473469943139907212859242681184667220295989253467896556342850046470207639385458114341129548444123523755337963008883262710619400292339194821469876107614463831671998585375447172869404929145846798797870409029555332306531691085629132619589435487090526523162964734802919014973242030764678679750611923083330146585459447325097692376711470002078287242712833454993691009213452482988557609710769107413779605264534238630903266277681342699709140472688354246097799000818333425410768431231479148371843478274040027844923253837447645616797871253304701037246050505322681371194872622967963857300148754434403060158675967663876701720516214946064430441478952297924298129228521559626964387784678764635999243126877554388080656616771987814034704835071994096025264828105509681473417290216043630552882733546254342600786850440717848846555947707497464507222635214320367619136706212709845089723884677449620502065247401397874670437577721449249208558826303421693701272878458031244770156129503017247466433768269978322270134686208860272767528373144569536195029385616713884212030459541290847290018745017083179505782220206454686339372209179351942782302967136685405258187067473831235243356625885975665072370874536335242475842368069493941667851302219088228802254119874013499185325293501582727066910993908637711692664651718063319609387240159587693533889831758816290138509118351599611265076586806222354257506615717898464761822104210504462301592661873105839446749360013320198482588183395483319920548285690934317180321557672799609429980492736520553463215877268337718297150902329072331230526059212168595026089147197661912312780350674755554471199887933248951043179875148033419733224603936628539370365833804542124553967741392428838937358466831164627000157627855197000673467000099923222738761143309834748321757497749900739907345516201487056737218591910622255952141795511641566515345881677004666357758389133309419308689907899823873122603588169271961136892793663305611629046248134221499106212723733201856607771730501057413690666397958169719436152468559988432072242546917302714689362775387102361785782615160998916333241794368634982328423196626985214469747331784449400761855133380624489366873881290655008272154379703821023609932307515291014666754118086310246252841385707655931086122319319149636291362013993813604142051843769231203988675276685891356423917581517211537370846776807965353895465245270691893132960517691517010957629687221835956733927040459048119927111539978872674024687246850970556231035430943335696978881778851829451878631378704955666586731481506615779079753149469195764015374841625443969437230561080504263956392615647812006200344450227866705143205612032717055594380181217809660828503228029410949956353500891351851311762868744058234750705500428000416599471935936231349852633447098274053732452133127136675750921920781563544302876594195358373977122189525453181032977865397546125578848483857376554753679575455882118522556123241880045527649957108292078856410261625173894609820752862214920711394285840323820165732865987639905538677116216877628039175702579086252934348071355997251912697043824355126525696168584603805247128596770890477449153795545934819883935171814255602713845767914928653966266292368521546407201783367295198683028972200526417923601878764267869954359503210541044887502369481863938139154847552180999586165289052427536869393790537707530402976040135880792655998629801394394503358242312109422771394597144336974469843664988439267240094990037651307884424474118051822172410552689425011867435040837048638682270067555901978605580049468621148918739484638368427639793149119433447571784884946422435438800991561813934819300677210831919569475247003947456627676211188183886689907241340453210224053727672407429038664620326566655937854890964574336288092278858112709897486813455680700072442060354637380318454144286809540167284471845163240005187976331221249214040377443069202378487612418533120552520083184795722123674688188152833996873508321856859604071432576963555403465591310028657950849048417565918456309887440856573232829135945689068684844070100473481666582635315533277530306487226641016126745828591241520181764756023208104531873805758421659548447684146026828245484473085052490977023059322007028874339344727717302239856759807058527771956307767424041093453819019121141299865428707734942576723079884670747128931152510200890116453277130719682309400073813348570297137246012084931294934808203568608257226317879038665488644300482363793801405838576962434550232395168433854020857627368171704502860755399731841118733511377688135804197953928983107984863493752801881704263994764767338847335710796399237679347259906493112323976199951395585759265583051477003354043806895862921992333821384496400214810064939453532992667825913410737145641867996592300332782759007708028978010685446169823133007518479966808954341365353414303552638903005638881686729567408441747081457613740746610445057698829120710933432068575729227732784369526959245121843586502767825449384745608669475875675480185348124855318767236398799944201133606468183249255583491247061590627924947283898050288316465635264100891939358237459193517869135942255189054564811168219748158263213172769940635363406084629680779791659993481106510957109267524585121035458304280418642354946420576431852825582251398261572395644541584317192190924055544560544008926370566543030783195227543666144152563267682096612102470054378368832526940022162941101992236400144872438538552856069323465444354649258517540272907767870393087759075663303210203079365878067325359730693668334696522658118076748032656486118941654813629339904057641937587288501345902283477021808375740570085126821503925043775442671498649136106145250843599114261688324885536648135688608305862367278032237600557526494062099409065056964022758981006979457935877771501115443738499975268272838499320064681693840795526527172354776070843118883356360486510599979838582863613710210154017673975273066343587814817242233368614692150439914580445383840836135345679740536201427145484972195496153773379868998765266976324500393946823364172545614599191062769270533027270072588623019237371681981801594909547252020000138914684116755757376673176165229180971702559476743838851458550032144353188354320443841393740967708555286850027476504331856093564955685597066039045899666646368958832263351414102194579639417418043959840863925815847020808285858008245897754274525954916332861016730203576486268108121762125113170343002370729346907615976433658121164613505693633012667852110914837353756910582699079770154895033632924892965661988766506022152998290661030580994455739474111369963452867536950201857577183095772378223886633352616679470155855142366769022472164621506769218336351589760346622309436621873046600977169716644216103078749530231350931659480600918118208393016234883935942553437290172089041435571419235710495082079681079287050440342525449350900429169521839310867812839133725799862501192309773172858248071384979651863604786032596731716417086108543389753433044874645767830074565367404381745366490324546004303307353176644174757352486249266144180195332607236059844023600621327611180385815857346581915552892137092033204013598051379565367808912596078013297105918094672254980405553928080805935476809650823137938868142222436567739220224983147652407316514205072415702517951405084155321681898687238309556528625157968990173607760299866778155031550576829935350364203763160485412494434140471787034024033284659866712426040315260994358378259013410277286698955635794172335895805726919214614235864586601641038059814487193159018088330243646195587206301724137110536936211260605826561436493228000676301484266855515951862624509861887652463539126069617817933581216808164165956380523512925439714377424674721546385751970996789884070878238062227141876015107256137744849734566543890586902977013560823773097299818228259523548134864975307687045029614551502150539023554997670650506088647587021523988357692147015735632760546475571681823688442826457860885002747281686255544721492539214701924977920845343358893770841761109048639647453372811509290575943357807312382893718601287541580187418527542170357262211493238694726771576037340052979919443210536833654294125335577726556777551318038630515270970316226150306114976243187556166821218979241081620381325886109084386140779707264704483472973578265960333092565922274293065012864106461357704170634934365141792668512764636686426602779823917416621584154919853601896496298925510520592223127439332590165922442433379237506809927545599627604971557193900683344224381122177757353400622293550124194656375639935142271807116264659493281606078197858753345096016014627850290008318658563562809456872320121882269559957007018898775910437619590939304290519314960392159397522977940694698224637825804862940717477325753278942979205074089362008204056012164386343887068908951574553325038404685020493004153869004459226608486274309431321072246793043170699117951534982325843353577892909110297784039308071359686127934917875252514122608864291076698724505502422017429433394339686177275467868411619339647486153392679423597735715576868703922615997422032635869527279079977542331600833772189254733918398702034362918575129075953939376228916757443619377947262647518108145889396389657629230803204778235106293646887631871952054107496303087111804240953928156166667627690763381266384746697329744728500233850890356194381167621805819493609625663798253212071819792752801094550881764028712013102513437374993624248075269963712645826445254712746010938150422338972680722141828670869844388206891121798684140880972729099472062182936611406193124029801278970416750463705063397337293480415288773441418747741776161259381153985958167974407773336899751881926834885144432107758813261406777758738372805869696512675156211848055329488558146703648175203606127030760503207126090622212900191273713577977343999165192025766594742365322563463818526781657013031174652551061716086987645664775527762747505579104348489801033203772014698742308092992021956440639173976403075890383850761731005204896776437496151602518066800600839307342083396706707443653992534981959033543046374602674343015374822145702675760164586180877456822406810511276372722659219111404205360282759603586803342390044865466426803789775968096649151096353003603101825666459115532840780166953058922712336499317429880978062545186586986926242194615102562866190982046344902135138195969897530976378714523552884982460677525587626132386578116411851625615047482113780946442676080186496351586833593759438873079048430430876803888551623510157253706023192119694132221251678926193403721259054260820767737422617134426016260042489568500680693698226862331622019186495596291347349317462592809679811539392050334402733750586410108103758139976106056995582274212954578350271262686654098371410456439498207771938808920408557493329135786538195245727020101318976076404048508585364258632413192758131243414772010228531065463446640107269928196887578390385212396162665437149351368147203514602707601796697602260770789352615509135714231208051199259370559519941806750204526739075568123574755784895176284980124193959253350129245493049036456733439316644342658307567200653052732599738374498049743222568973576021294518058988797699838017435276392431755185283355975919361394799950335847297282666508204172384917555246646861043805691868671449841450394289005603279494987685226201089709870555634502120695791009962070638546979599491680880951815299671491450829289999123284921950645430413583573350388292989649871340773134902740741427517901508037038300328751203795640140040721545709903524698452216902923188883785509020650990074227477309634613024893912673171722970352705458775897319125450568192458490821252850416221310094646324856080144118673696672138814755307234027317119302986136306884314002556930385784094460810528588156570542111784552540009531910340938933191438265366109775626141255562392106169423919691588603201143532100699110441393754914597082823438574628703495459326471291364070453960659941786290356130362661947041139424980969862800047857676611145297448706655664309263834122778398359095952218931316248775323963426243061704719899793579725406944471354275586677364365334347477403586290662050062091176576542285767939057565623677910300023397761535337573966969418799101984255233744222368905331415306438975419306128660250059684463853433866368502367476887056759013036069209239368919789510255873315771482332363977405883417465311752543646645777129245609632923466040520309402070908765242863113267811366178376484457110741688434219978724217051001751613359741038084609956136893600795833877034891222614815733330681646148161501056103996788582223300202948585710118930572211274568997531814007314468251132373338333169151106469779985009786150918310842455377132563895952681007679366552462183047733277096739707168693309220656150217288245560595252613952896891611794429261011557190387390902476156819970215732550410101522769610881476447401261883070442468960626733435011804257817475054160899418818707825172632366344003588223429025796199286435082910581616792563639517116571367015173112491362398783403499492544612605174692250047100497660269512783825051623752422769514183207897858321909354638109487199560198007871509808505068528163519259003325340603395845880036888757387829882236920599807291806678766875690990212877419887677683032209497031384438871959851540607467547215682485202216189797055550461415341882215274731393547875012856351581882020548608822706193939423179978051293551701316637537590830618244781829288289200334504001301141936208578663980780492287731512469233105679740952099580848968190375237530749782821788903313806382907925523387347601904896656050716731441788679166388804652711569745503190164810122191602960814673008842263712563261354848363728695918663520528636405834349666709572593187080140019405479840096680531085914069302881519672250618619801348853022291735815840658676050720261739021394426310985086714188991225330480473518345464219364339788145991954279533462687637613387147377353607781443275277193536918990844373717159545844377947268067161464949121079370499657734317695606723008922319456350922375353495441622387501055455761244368158350594467711524633186321054879499726022563236068053838303460456234360897020507540947345690239572571454931954188764658510831068444137347268824238527252655052891149615440938153160764656754262059811746814495957907123193881669585621545939711130863392741927745883474042746690568479603121991570575164512064754729789257840710170129113161104223355242147641538082114284536461135291064517489621978644980265237686785536118720482055786576635109891328194241409295417646071748814699700311276243255744507516479810361355684131396815319500491992641409374203633514487357231520020233542059307094352159222248623641332303359088662781357287784699955979656089297548944274486438185479974053077279862101366361064361825725945579595286409749291096105727352629944352866756915054906394577608285094121224007206250356280861485553212181449353916341605396360686787311624991882708237114502573483608213707292982194768285591895028205422009949497554691106328258671351963999516033152207466872189369501220874181646398319964014458787907551987814635594155294280155461686559579966986680292793824816186662356225060509008047053794019388834218992650638971848429155533424342663480863159370237796782080481656816984791093429328879742365938541701207221136790607410057350363819533240133608376465833799866054360300771442701073765173043267921331249504943251150947482210195493665180492337282355682343273674436557384841473918375743715575531992273846861625100374884611563178902967139066034488180163713527147865527677407155794358848626488369119717747030677126889772690150866428852916205519802776993998853424167989441416649500115738793399667760103986885741795486666492753445997379151841238192675493327923625689816183307014506248727105326766682614539664813073162520610148103508199829008550359564315231543563845869288487257930230113737295866933293087944199635180078732352186364639731477526571986805157168787393399307185880835289248399771959930303100520510087705021240197041050489499314442120172974836685666676167340041831011468341763711867217492459929089968040745746283886319248275237576796666395771136261891111495942184586909634602339317270573110060725161109373498436504138644247425628054581051785078110908424592268070378511945802544573695501486625275949656499228170746408697195233467432244769365507101472104395619218029672220265453462442569711320277695785983116162856995696967172180605862475963806969524853288533923299402073691370480020318109915865957148459472244099497459422163953936587967595771693872167501217137978896558042107124555403570020002422087950207573599412989379852212567910472724796596982753152358421904872205774895999319142246485684889246383154239246310612526268979867890968871331169634599378504100811904886200355636632538076053692880113383563847722782656705220115363071530212496013460429758160282052711370014600572163343939640980064214376010807868011754003399514806709494280556236819103335408710301056718732362354306504880182420296110986251989965530838274376283930071179893942690773432043091761923949640456027494593128435038917280608148142921110206109504118085091843603907356300317600269330668513954129714904158030326384385591306228472355994602847358283873591025288531659995487348144682708616671563687625365090394406654152328246377136241033228172914654054486917545795613775933771964962782724600278905146183771814705448315782531685840598346344645539608886481834996208322974634219848373768092123795616948779355288306942792465724172418996438207826684297512303191056398301856382950296090942520751637365897607210695647707454700231955069554686388263403268284981118313774395246814496695552254866084816325626330836332639241239259775784197657535177108851973086681181147460741319016761320729688036223590323897241768501431060555774358340664779219120581327255591276884692632754980132832412383817289452247120680634532704308920836532586847719161857252809658154029294744545730546999350664193359278178875628861753915345942073941091813987735432400215195536835607592543854065172276949366025102533013072201326304626214230003369075011831400477624943570066257709229433505584391813032862960060826408207070434134482368676343480235301400741404985701022968351278638750188909680270914531796047424936443667561839939103391139439935161249860867031163835112418864743889828816594364516557869616619485928680793679892102456658199782110019537072550808018489211138793102539605493715497269019929458517210629913440839473796950665332563975213097145035550980195515779457980001844415738276432077947508946978448024009978854282170370236109406097125188594109226696628686040865517044782951633615063638649135205546035490755124398754716409369928241403708947937057599574099363686670756834703953089543014833266551366186878694528299902955423604708501333101847031927846964647013968641562849569692230932049190797681472331561077364514547951699272583088133829829679564553627087169367850614600260521070912780872529519742697416520668876492165391162524656235297226165353524658823096470104250747032085082429924758579145787904451198258300909222477520577169043350600773068972111132373344626122948680517251765135275679759095742011877712165377887798022468983639963964671334779488596534402298606406716791575786469086254229734681408342331742780212092986248792734142390226412542366534064866659907060640712473200540795937068570889119681258942799871382576541650949295524517534552947502611350036697821990781523886709915805829734212358269594637134716764567418097797377499815797917627513066711077498409164179334913895618137310088919306450079637905724403231221016120514177347671668825384221118018541843067425271631824280797767768925590251084397443228339914535828087598677999627091888428654912723289414464986737286466988141637435866437677993145458097998105667710090957921798897497591787799788772328921184750938299095672044475457303907170691420475396951108021686868867346437019454136381222821526227044315369759085465129278946019988790228280872285228717236134899428586961753214408238041887073031142890581575467167246374569072278378161233025545492968248282979605591974528208339150313207921858163983193692468960128915275360526534395881771713665965679551170796658615339555253843202304991009772312352595154835116860247838687694594262763028321568612691440507778815514889296465014379813427917027079269485260564895845938304195231390404997116659700340929300460815306946705212827585023208121873456217664006675409123585436064954236708978092986193431395924302477663841739353717030069408448705539226135770784529163628428494002113058263312421398168071347375408929600317680933959995064050045201956511476521827961911678530085054522707280324057938560568951889434271297501461654954458119114874912319203966309176144308314221935234631468877351796941219656312373698962415847538482284834892097208535033950393391373462931567649152024081296631888199208520672936757283297631889380638534419648426014435319526399982384296058127430130917097205770587737861647445911112468317904059087771712796172236737469644169821007011878829640328461396529684458760426452919480607874332324575598065585012027431617051168415368787424956480803606862970994905543246829314046860627557269421094230371468759363044254806203440799803262311377876871266492283977729855017012287075602788998000542003548033380820387500189347056433407833779566741939448512155451198505613287896006666960874956865554589569203885943238247008984785863733332724156076564802258697718208126120943635067886220971246726516205824775696023267021021354195313774603374492514208833542621965731826263916536119346902818201769881935771774200097649032814897918494618428044793690844209871395387918438722987429431638568827663401085344275245110468646533287421119263040705896161500251614443617501929554342465850894481696019871254009467292204013811141793326895888077650935616623845678943473602763877691270738449283839279944135403653375507286490339892971748067081576665828869982919695188517218513324147369340244281457010561755978615531163906768022760353975658504835696657003876597712660246085661557964787280108499800646032125833961393329804874182392646800835604674050802544663194926777325392138432985512206481215051369124908291257229589581039056346954680028054045901230155449427599205961205825746061286971762160895039841759453154317225228254885452624994754403846183078640160778335124441847978790521283375969688232721987647112268873124459286713755163654595123643721949350703132816081998347311422501809168813735885782012817403984633928465594059326184843099254092756462778964750429847355749592145335495861441396979553243722688378780647331438985202339409337163600363413516772910667326816708407469773494976401973254973223884409403427745808879607648956203506041058475988859547090834844263088041808693066543471351696894038562898043318478196046024965415663275088285526222134226960587968718217681156203944104561473715367057466027864476535119511607319421686766266380715446162129513437421142260546155493536955047755522660601368826369150047989228602194870509065475552315457349722946893678979154263485244057266565842576524814032744854079206541951587917359942599871842009929429600855177181646596208882405496362936519094409640271158125190264084845782367790224202192023029617415022963407754379217045497213161561539240114393096933579606098654299602510609212609986675728809013426176312586131954945124452958786122773193458982530089537988993666838499197107743523515525946093851655795227783061320627630951997206798665579699956071481190327024376487855011979532797984915690636756804838369310481209090207914340769526695432390420217292783410022265201409071565216310318385785710514109881601128550957283841350588207223077796204614246891808341660188541742876535011313446277299976967937829383469191282244192836922238805043575872477912127263770167279747389558925441092092582277251559214977076661425137582630492507549434654714389560170810069010650254362750029296168713509815637071279523423719295423169597928607503675134342957105218878888380405129979934591032579569082835363425472568776351202202266114675611889144225660500776971067645596655556437410290279217148300182596373593761463383268297980327793502792423542502830604700029298994974431461720279392670588259345580199029728578248558495402520900392288308364768706405415615501735112880300649898504015138989366211634781693498026812319641830928238156413682358671129650696790042412776072106310405478459712875491122361771300777828842791624881602132889980760346972064536763911776016479298431706824135869244813076420321823191774781238925894421398240502232751431187369608267324979788096457477997751852246064497701719283287007638625424288455413743394421458386816192639918339393093433564492384094394411086520115953880727014246752426510714239901159198683841678466972795065210654781131876833686916662272043441606701055058233140982596351507312604259577281727517574201925409468491074829862660843286643464634151299085682167235135943876664378805500970330106302255988188998629997888503453684482396673510879815799985619566709822717460560732093180721899499533820364523733410813302629744650723378512598580624632666754343225127796990137496423327507738642026793530433334865987158822132850110603763850216945644049694053326118390839992270578079617004994812612524025280416763023066059955247761425983741763657243196630499997730514863425983350754484833412399194623548910010606402908358947238391328954156815279159413352244716544584125108192269309644305320307151290819083295315030585375762811301421693434017150417045187111826105000002899108336323312537083909380327674436191894790626706518071248720657090129814599287010678735383349741276661792547032489704531632037158221907359999745883241599192211023770883281661583938988366967667712569669006184345852408039805490999491338064496005135571173481874363081151280350848376165775729561036514223664811523736299124866077886796605578368515284898935387510348284499315127322673681978004000589042789646253203838691590334855704425069184797671463683680799552627497727631406246022122776057479030124783773266744357233046586666447137281063632135968393046087300694964448298905326880432527772010753615065835209321752466166994671911495140350073783072479864539314205341579887376712524192497573487125673190621372650132916441548893983686501739555253266341156765809124250343961848619382364639003911657787120804044754556298784449343455033549939939328789353932711659024460925676117834501695376264040591525036154508302258344793147215754743417063887671462930952516570435721270098495330479547180926649582393172234784287481745434675021386335141994140835293071267668047541279290094526799553595466507992335829252248176845904703610739513491741181131461742148845019443982163648467842040307362798130758651929976082774143494884225152749717363707026300041201435066673883896040562840867434708734918603198945995221222750659197712631746098636622207723819065852534240258705173621282869789262685511967528896254243886647251791401020769490766372681661394713413777948151548021667895529198861215952189881796759199842335936571772273323387794556104444380039830234035588653061400072383883766936973528949664803267271267638475164926575467580943009510503557917327947156131305603176065589934128630302735853174231434719455507610647249074836798890896366044318955640790677456888396506065849547041932098970757394631011839881209042713636588587681945140511916500993561834928524621093119042183244413294433890173314637402565606081121317563155231922641541688014064428833999406034155315440506889597021261739623556874574919827128279411475328205518215970226658359703736923220757226975815985103704991999312658500381737749559773684877026845218936467807501285014078293551768492183829338264164547362524795667955890460240946190827708352237342245344037078375254825183891589390754737425095719370672606351432602231050045276782361433492571505421181279197658908341356472298342488756869784901458264929049812406099671865720615625263651791159648299500187196223988976025784487943070513024467551676532308703785058292317500011845855361324646017262483336912855641384625928936210169014609355943614174880471489525205381278154221182461390133530175160800794790833740187870257239244392087070569226479120626939489643471432904476608020292045215794331737514033036453836890512156860572382709132553170301475875467443358650647329573466430995169854773794209521042341086788698443276313696286038188566529942202492641763227468597422575069439095810753932642217506662977793957275837459852809805683907270404075764496362782455470405784072094180779881079764972210922474490648600045518342527456443113422567873628023632364081022880182566703025801159240830421498388836136721661661918532868450311114221266513819792184933931918497844499645842933613349793458167113880836844292673037493782586339507529201551442188959271255108356218019248168435936249124277003701020859924747182700597661418352784817283885889518645971183127906836616672915037867074270668241120864669628933516556311038593859521720839419624163648509016952619677188332858862873033678878837350059250519221195985985528504331022355112655359225889616423116962342031993274072873628650076051650836999557001120379369667889457946492203607873783262008591656648489911184355718901420376548147294419451531520546752193749752690834069236426559746818119746514804669914603567107380082066693504588586821319289849311552946450772297072509093674044633364369168171266359787924108603816012953895794006956696094584415883295025413844735474541462376660920667077988075939444737590519040762814289339064317777784288577413250909652441807742329363401097734477463367737624483814933221941464663124427193123490805556448640870753747341683195259675045158242969093962308357834140771399504806737799221658812034340038822743654885577064505509294776393705983628624910730197390257999847154114179248805916842730936616960461269462944701129791882045051902370958245074390183616439585626694185861761601009886895892471528937421904094434230738461096055982310698410101164062237707678964855106121439949234745621305960961369767372246441258185068848951656527445171128355091930074012361422831212880075279325434969497587486636390315131972717947376521901644277857228020802725443447892041855937030228547947390583418880555618701969393420099252645848001548048128246619485829953515560133762540359499875464100267657724451403065530343867174428406573206020535050163895042220096574189810541667445737120831553343245566474619829105113168991589886820741789256758824269945737091738965832298473550616410438558868049426998017925545170883458285439530327968292826196858123514152307109154462990115291590526506603135933300466785763714277650187726691406642943092702145269540494723040891850296847268445359058883075992015611827793775283585139630101592357639582173269627909565990633370616104156438226866385284622649884198099849394770997620186063496469402202135909869881960775933775808638407722829693500920508799854882357265180382345041059186833396583759804510705534796445701026013819842606253502679747781955192176233108619050171082966517211749934872053621972933005325038165105190760742869600084816833423919406716498016320811285683363528938381444842896307892286716155219026805951433824529006919275204063289211780521375882762245086304027874031148079035036845904621597721497717791186902408675112115474362200993534318592579971939906161388328305421262090288739831948108987782318127234263980326528610478133810350283625398977454777730419243140132486336213967122481152363803002804554980876753132509530532023395588473402718514310098396288594322367480114874638741910965693489191428043511019029496916009559623278907795319491659802694392331550893593449981481498659136496125880754357432589587572373871766696504148736842622550092432336545243249393903279351447763686470808614285819111300341060236017401258958571281458748732648763183237862362863216099346641251452957386972849647871223603350874676165565552049349402574338120627889247484621329070956370395492000611576571816985752996942648226980788479487358869478048300220748395486890205160375525014618881665746121877271882397123516935065610669621373130600454846785311718333099415470609986132343982128060013232136381196869386648720733825581244779871732049480874970645741031576648654762185015404398347355096330331346025735057242688772554447337980653153025798706818784143387312183520625363599606399371373300466915125087246246091761066267154928874565136433101116621687932009857193440674212770673181098079949402590693553647738204277137727158332402097851441725913147012516961299090889076904490446750244263878013632498465366119295499928751312885241046600852707716456876776258120046080297047081819262362747500201795754644312869772727970443463417438036143890042133938560325490229515176089498359204425303379670606005194557942546623328226587884273017131139588059308107393327374966232673267954652524780652756041277962627090585567238907692680823529962878512894118407368313750494258194304721012507824426009820245817823375379719519803767814711544972775081567932753488020322356977546138498732872126403973118036394307739978147517768079839081198545119023657688030688405527143470261414070349506206381697594358133685147189166139533654675758973636093479698268930103711214896473822692076947191891291411875318862195532538626626997412433559061562952694527455221632423158671047284099050162655949470602031258045905646270495707547334293593405450722533871260382533410452084168472334595979584809593295701864944633989944013999087212740101410297810053388309536421651118149125240470443695525880314555670371568609739009065918669305376485598541881804656295487516980889224942954790603629207771738355933863713348890973081738887813489124517921320467109840136528122103809381754194672459846130643327035677841221894022271694945130895765219601856314904947619440359247674181860281267758913452296770974900265719948965708845495136328260923199758503287005664150100982081417181932397272855388744887641716861651103288194685527944133210947359508663199293293194444287332786977027054635124295901850094457024499785112604247571926162532894900509889266525712409707569407730501526537550697811214378619074093921874422475157684457324074893778706970381427771526815696015803339228789734938757062235224593433528563630556857869786207567886244358313314011752727733193754474900119410195965766912292925371195118152132138863714450611325926770951952009785701994197595857377295940162031407063728575250778937049975138746150328495929768148701593854970668294212549582631536896404568221667058000696292119858591003654373701299626098712202628611335679967643237021884750790497180022513029501317117974271377982396795936816013309198245994713526945429819069316970667735255960938007815485339822090760068942895619709688300484314701115162513731991627997091910428402893357512052858168550416645498189254876116456073103296020771754754222342818066540867945657862128383320810226003968288141076981250740987086442214156089176153592064860409990063234330328350106266888574192831882438190889603196257407975046267074311054970672961577092397336000105259174966424660152768256593785766065309034164573072123924553697473024569905638791500850210067622661413345933435815966547808845800609120548035481573048172559221697879636332187609178374726966706171317056679847703799491110041781274926164378389010511820586787329403689212184736589896592065595175991326839717921379110205160284378903829539500549873176189197766808187935357811444802630491907526397590100230285657410808354038109088926810053303330796863440849287764681418507102475399453057203385251060740310379723820832085879009287812993137636618361304381339559903451092141584540406810860051855462067702605942655781808086743724522368091353749994858957323370920641251353690091543700623213631607089288825505871189183748800570846785306581798477090806689364136014887716507387008334354305078275371086600585585127430212041444355337861593574997389483067161689623913519632817395536628181807021717924498745574031531930340253392857286392702931438274211659314120216350544946802344915858266353283772103890517872707501840054039088329197659666249511238854722965311657648033301538356534675970220331844269596802656261351895739623911754863228998148376931627039800240410954642341286917762578989995850082596225546438694135705232872951641237203260914781516253566395164437101341958438623296091664798996938513178081139689375817747504802076526764405595802864356915072840976088115814122393341882535088684981507222925954736933125119508554357392171149190365414623511494182160049129498839938262531067327504414072947294042889677224722848077133148792557814436369758609195615923360935595584885655602727969366166493338581333230355775707810721378263173674315804790475766350611341295852602750352333193180866517295999830445060758848902441085930459796051148277373094521944490117522627579842995173513897351167411020376459288846118919244390519831478972449622148459296706649237052428413782373113415128918316576348773131145262673818034317275491633425051832622221970780792862461500900055016732622297253686650971478821259599732089857400292856972814438763134775559840021130798564630665274517234724387189407766876044189514792148104942967933834637805123971659764396558147530161413015813731160583415509997378085465736596238434773272574152562782650855338607102436171760731406204350847132977448470976261752075206008466162723016675399222234986742452303924313054844365251666279186156536269196878828705355448802994859762058600816044856621513823674704169064150530198372418406341399421659634095742282391386407254822276376997332375865727535332711334271479920014840334533361896986749311220144236821257583066468284001811207661078959500033555484391180932579412875456387066941013257194276288889837590567784860199106848618532783391288264429216551413972101336506556758845360855633255083834496213364393682310860540688850116747091721007235717296700929949514618713100773626464661361044278505189526790038037525580843585170125818505851632260913566607237123838783259167945868895863128325084950199362860254800729450684986687649579830682944146520039477545438621593034521770456914094233866293336440494072592181513037842627753589156547603317899512300821801725695029294136217912433975236313095705780424299497489154316515536583732026386208533878675666228905795931708135879570386700415389933741472347536500970731687944315891188188286934910657614402115837515698336935166801752235799095713113869678200179701952768375557261920874461428355208789674963522064101375326381304706355655895496927431337557242344102060126446765401106492979172465880481555849260691837510048129200813525723624311336314453593723620479925128407738213002510198922762557341089188552798039253887837967587966911581804804949980958128259975101808837140872395094043124087118867470416554412200907516173158578673239660256970053119664676268291369166449822266426320598461015319508430271647102576257620128963393108835104341544343224098775148563947097035745470654875432791065584314817037668208143932196142093041659447610709632399667943122670647187968141598300241303457047753938743311690199617584136115235113414478953080636318964495823485654583299345650250978366818643569387423602934209370311010105141883422025825790815103006902087279227050560341849953839850780885935100608455651318766365760750321882029945913933040868056793885564218459572629057324371123573395692318539170566389153457980988520379678438580793561380355817270072461863420369923355584517216056059432569570986638335063641851335121750953068039977730282629299629015569477754202846893357493795903884173647466399084585013134347991796989212292886881971120403787179930230103768781684846515086287039286429606497771996457102840099324463142105505997992372163372630149409959340990599164385595010556436964003721822288139163986387742691925226875755633128399266422075246508310551319409965373643288683600672032440728016439645344346216455649640451175065576950693572723400201417772927579698254705759787188860364715511783682111095361184052102464812543568319419474493136525020929585282548382233427297599938021818081279516120460229636197597614591538868867664360010348706194353095126680311058321923450919858193708000157814117674504580819275760715653140848031799929939136913013845784158428991086001815955881871709901842483208452801194446651511281785392697684583562138564955847182990507238648114369499844332335229727330334812137483191446203535318389669254075584811745762175808696148417187528413112053982826019213027628840418605402197903084525487788812573973211767689540517559774862644925520718885551540318820757497112598684107481825920066014348398955651626856696637202272150979226455467576004215552307106470143039902452330147685232617157246942662535148181355489785112494804964855016048181619838649992663903007224273752364922418168683342505674472314628453362982385755858632010416799687787609894752216453454566493188982605915650002164555764773973317913704133263900374689871572421763638922399912494401016434703301793961819253748057074037395356086991493360314936281595768416128846153269399280410318578865651882628045288045320054842713253773428597809801319366910098319853477212264484668155183754569451118696719528831242097203228487368549059612972319964148122596241211844560242163840321639526493115891351483947915242761670295953970727389874227477459946163005772017097553292663454740223409493801091022825444042472226904604454173018267713505935080804000033242311210967353272039772238280969797724941642904053324656841572969647877552392221913998843397225636584151644743581930087792758989107715026625057950460345221168849343939176531461468839653652588832281545996596218269245501617991958979142903713545003236157574436427013771092044822948542062298712336609373069569289587811893656322351610562843863451445575931890678354572173662047585932567015637248639396430682438118588497272984245115501301011970393888894212049004517304863148152027890538749086414510178393514946699634316055689509162747914057506872643874095420058810087689521002894898756768722382280781437079478595040464261019326194102476928114127878779934136374726940901922429315621717552661618259584480032160195112990606419483277419790323519321447676479893969639725378826119670701046163406346779633273757881323915231192500815607466244363139210960027247153456049394174039448647323645172970050581550355110922758670657045483407871954916112639758018980230202080536632246256121257059743301210043828406393557851087988388279047667888456603884116459528147153391689359620890235383090106960323602616549278913772154865332218771124766229587644404231166142313771323478161005925284789622852210370243258979115005450368321316008824277109285502657275593529998308205079047938043399318749360946241226650414804113150941841197816110176911608458342823890772733598945500855917708802636271286026774862138199660849148239508673330899043880318481522431789381534189160435520280140261433329608388059679203363317931217945114261220520279870994213102193602269888979384352781933002042354867493347214185524313998724007942077330723211170236276870208531286603110423521384867063147064680130930257986332189214113890840868287726467964545633686243850663764432949063425343000762596038376465807697371525766644302715307776131489977507217078068197539464194335777945030826436054551975472131669081461713820995784709488529384425428911706866972289244097338223896990986944582774154588901402333130522356090805120808549536242392413367247250107492844234840057853739532039796675135645159778863401532428708730136988334933860856945443016557390972253774494666102696859747094171892116567683419606922271069058468934820514698859119819803609899650235899159717654527512526153717623612135234799157030524988402667700478625387242431203182660922562519588635803517449674494763409963383069181475737416232310909613381723709792756519833530762073360989465917363634861343387188363664233517397919839603067502610109843470946620583016317261290202819413645091217793548028996280214939650934652963617126847306028887021746393827339853422436656346404007064160190058727814010198458052635506398708222092182402937549273357756504897340789429589628239859667811360872699013657314823273871778986157810108914912706662011999865371312205025795871588914998723864018373041612594652523433423155469831808574173038109342924853311587849061736785150822008350265885952091578880924285577563970386104354217181036219823915729961695964792971009497515181018074196017136340160020651424455418998749876584015384890127540853952785409957174089450495294800001720590693607675873440779123053505030540165892952634047788207780543771126455964754457143526602434125096647623418453241893079025556611205056865090833796041103655802585064863366159632943908635229741198838575732034306320520232439377737810076907975189468511758548767845963470462029880949097295854205433143531634790750667236489366847452867131264396225450784646775577020757133093856708717511329788465846223960172451199118735211186575794343973783376741504086411679788917570777442945074687802661615462469708298903598665556240194602276955804080119064798708951129548013861829814275847498066119407295726311256681889518590732575891870193426187580711380313447489252341530490817219466935917925540692937516466792702015483556381844631345621458387160909191135168148439388961837386861023055086817799291928158933748009436496430996474932942537556559042762967187833352368005389402409305173182631956459779490594720904084750920066358203993528363948880802769485239164893039706044718082644268170790949749985340968903625090606664300931615395321628211298807286098348301606027815479142546641094832533833398719256617165554758339512837622563865480134171261589575597865316611966352161268159341337917744089159960443579030920189976326987749571877100427857225553104388796305918553461652664065011071207910434329340319613064597042453883667108903704141524082773410622507911980079252988421560149474049401161337316152379049751068209137688006697187994282141674416899940021263805117217922725173344324141773683276193062914777037621284128871599594840490349584675871413629880876968090922317686421693103916188524077637072266089317118941329155442764057112892370308229224193402191446237495534345588048324840805171235145503223820670987053957912894452223612221392100565836178651957320523994639475338869916560428087027249749261646549068422186902107763915885331971735047466968584557649803699186408618982566829163939707347632686539092167869977034652906734770274711500703542006690941273780822076852243854585880664297155221816577878087356386174687308797182921113837876538948261041184892602317921149113419287030063861296903707485150734385973868758600604704344853291606977767970004914782083542598428568578811446301944963537124130353844100049592071287254205035513082530034779909719019503639859790633815842019973873376604144139833142100938495298394514010208117390449244464913065872237278640907652446532376391102639336123810513144042498871630680229340923445405980368800038076019989670109326402609382958113392238633226006271507410802520751277892291299938131589628183415739232435351205088472124915858110187889739170187556278417568449055529038417308343974249858106537602952467321957472917123654979163283065438334934185426138282803916658131468912691006264950364954599937021320539701354656140943693134595160899767321453716355678903960502885066688331168701734962091742121608613548644315787141696738096872721639356218169016366914326435651597454495194805669756874565221144322161897849797658189238904441613311982691355608785818152733754119162313242992717739736867510489196068910182284413971162892194035514516045986484027827560434452053464018550257653217486782880348316321718886965007732695170701014502482861920929490576724947753472359002084065580641966092991814319515476240701874847842694865781673966343230050030938003336008687703791480114515629664258951730437567268479441220619232635282526778409228789764782048380623920612128399722422613194234921673665835848847893010579244161392891970044630274978922583978952638741290350967016894895469764418934038899083322088307606302021217931473676449065637165620660946588585142763766422685330454785624612824087697846019935538734538936065529136454447460960445369042298189640270118236837180979366438741176463866490878730525518320747397990333107569709137199882919890030085839374424595879801385852463457792257206601829466009445171735380612315990644660280435352372042582578061469546032418290840884744940427350071019622847638269289681212822097758453616176957251020914971586539846141817278693085953294406853145823768341589164646254407289120495116719877793356176748235095236773120997306928280340123580513393745570638623497657466837411259391079106169089328707595323239317728682696444023653473738469595739885058385327434512107427391660801888146305614680735732636817350016466937460048321015143501387625040682194467418475362875086106532283488026371699895590701239843300778728830136137738286033268705423873481028060234370610621020278240885395006208630512130038899639242864576724612267252709697473552409903398723285234862627352246285474656315442233971933270764798247577901420995173863448586784346591841674913978874693972215719199559284527261202955112496350443388490531626291966367102074326207234481339076156694938618963974461806079171506155200172014477501265870823706148189984532002004287365011629673726511439743978540612128285313596891961711037791851402876301415345032776189082749216643981989750440976806353708012563958881777460960376864791512979062881543238160561158001509669571820278302597808874876899635570652378339122935177408091621126749801428322381684450042587621450064122299334668092146392049603394073145671691808278923917304223321130778128253944909835496323622858608164484973436006154317059113579816825045114912048777798437095130785563259995370922691034614625245950952724580714928079839033232631614431287615542913796189771875976648657614889108593699760864968776336083535222142232445767991381863705597286084555196004718724269776727566185480720444919059988970631728789245931775182721169240239816772563021817194832475674118310566516853479111015372144803497018466937434512886904006984458384197616324771185963434885224673862712360521541882504400752241229939491254799884424265766413758433055397362877827038975244767775560482746196626042808409284438830027928811489431506178952856216537904725962361702481034721537614722677062477707279795690226382948163863260581778137837359387439745127940116118475202972347734642110446556666154769477448250231341158638675134687160214763684261141400310635544257187238976477009622080823199346732151448338640317228881209494356137170642830388219457440875902500330097831654775742771264221843878101099232723744689341769239313318732876079476327635905150339567289070148547219295065435996667810846745680297581038703249028971993282102711095396521021306141381914931953039871779336764152134659762945059374940447373041031376222792993426762973197665187661284470952177405826930501288241176724753352752346396221371947188775677084288422715976864682191280820322491574632088481994595287319331522270713333492614652739215149503098562489492934101042116572113303697119954261396704010635105660543786832367162629734086869274402053087513043598923437266246603683264649536017210376992336157601450795509742260055203099466313140423438269346984654573257546612819301873507684791732546608931142980645714256967525148113121848909951781755137401535933352915974928995734710938320379000883166062320819332752797273942473530234350838185036379781620786087696583050607022513701723896151422238401197187806213814648829469105131911549282362621178410340818810531281271939546324663612026324048036580436403824385741542686340967876137138354649122305319877385671518057564102696753744771371460499185187570797682009278341522014389907455505288442719534497778801100204066981984747541047459523934105973531443757900087267904331008047504477232251292877834346275673029359716607412215691878392203448532530985882747354859906263904438490519850516518851517027791216669207521293765239781173532894915275741432633584480935783276272211234446256524034221598028597747045885169730693688413884473869914794049585890818023868880892569071460815239711261486459821755591477769055928525123397559284775471549258496790881879529677468598278700173901185831256007664331076952888547851497094635099341840312986708380910361481649107845284405507391495866349166655440296362625841706769389412103949811580540685068021017699898034352303280076666055180646089676432516599471834176080144152801367900303771640164108264971056695637805026467154194287748721800541465429064965843868822864835153083798692435928892920694204664214187571385181527022816223995920507125952834479333013360852596278290553398939380815101204214228442192790102479660054346258499065719705495005038134046534657719250729247832495225919305076190244362950832738385563761511780806409869154781303837608953363681201913824172159769343078578215000706013091535027579230587189190677134185712337330591754052429400549447636691752479407670994974792480191637426839365741333393745012718141032543764393606452937942569489230206514256909170744971436944653636250682732620059821054002239487734772981552622339718585736784540231866834163365000663930421172722446412272808060428213075414735284115009919408255627070835780209063805655677413454422672170528034842382123010968911759863699847359130739794310738707772354550222085688384196212348154020023622793590366019872739692430129058900848867165346653879053258197882785414771036524463679911053890062785492841129694311019417983500265640323585504241435069647199013851848453360957506875349987662565740233869094936868576353602526388665473511419077265292279381830446810724455722939118128822785101848090772513576454207055959658314482690949774674303150282993875301642656903170138755755325684903082292472882719858320562976142271877345694862611652182313449236516440065142108767696430608144954377752548276304126453654227771559067886199108594381687445491654210896444543935643732000295634118547228136568144561992237344872054045713843734981495117226261013576806827584073990749714908961227268465284464598243232917081031826106444481210705453247361420455827142902195035208562401736527396034391983427086340171381305441100899796488636942446151655909590569940134418534645605981146750960146047181473673263500548238209140444257724201538082319927401448538313929791967478528328954984135952652491800667854827178508889319650094346323070214259987428332918805257971690078505695118390675475590709580105122759550545407251390354412333163177276900118716256180691722640376626267790748179492441750291768157826982047163215841094091768610675863995602326049632981111659105617797792425373067269009839696819536764047317090402236320205196813398064672340849642822985652218185959967250387049570555504852180643394588401570581588466765698771840216392087017878978878578634735611335273710380583264677356858830039643446729254732952690803918628402242405975674279383754852948166050440005776186345550991235329965865279181792452168617238983064045239130635789434744046273600055073852529469942956727193848800366486761676424543507598981739663706945894399524188812243686643128360543957434461704875265521411286417778383901715458266224356893664912656659660792229361459457864453996357571787049503120562334955595673968784425276711880902410545374512972198953015523235798760414381499958893122751818344770001178094386403544989832635172987830937808552069940441163241420069994792253802131492158981157849735922887050538506190527586382196449274177416033511415407743295444525400863652334578012419181880660188071620463401904311427184037353133467908822799388788690870554601830520706727189156043859126143285587679544092124907212178116130445061267937635294307884010074654002320110505904598174085303049381492655951342857310333844238446322860459106955949298656876314252157368519748663364679459485768310602126782434478901818604250879482888283341389083831330728061374174645748031670081178748949519383461604904571855220343840889219630249764731981814067569403083175401243581220467794114997520197387437478195477850230740267532053920645612732196842338033957048655019068412362512193691729787374970664947451040757504437117606401442751885372515473165304241360576543132280827328303508664615625322037820338638867990714695556402994621296507165548214781237249927058338697052738877460746554005510254201656628456551853463555089210449627807350096322188015879919893063973753290788222378776706708923269396985052667285743970130100541975429918930256461365055968103742870476945893759475311017359292298587015197106512896861284918402874510990463596809973958435849283746310394700226792346326056529811918854441593053315733150135371256866333203176472396288700996889151515758937071288147010204803655144609217581075197428215380704004024616180859611067200117524701800274259239283695928924519201116126236744254303013163187672377696031713656366058599446204514659608016984968630072925818063999788736433348975526792168746367189337127531509292341540384109883532322689913172929711826549328168078121921594796728331698692517744572218188749231974783236537689275762368628477054988021447070514754097620436708430785405520916132283711526574701508569224778181504513590643873616003113574660104881385009302118316717120354534551698400683841998504377207577265300449328143945529182128116528131770342006373262063663527084575002581126505390565578310512474164529743177679224581272347607252905168485498918455972329310013784361565955551268764438218679911475173193164762398860382690434915164601987964044962869767293319171512847504292182721268587992082449240553460786568641724442825484823648516055161671263256184168103260850808807411799643723370258137290129127832712556046622091989007672378418529684645071181370592055747312285654670191859054660135304896077763781271491336755885044105748724298449197085539159007266007386962525007046949457464627203741359188037529402251579028966065178721287702141146950457540037189752160765317650216716236759704689902909783403210951594573613717916706824803980672061663906115054301840277860039486110137688161172189775220151376348244525345678259497944694625348089572100852210190641062529337185788911450984812840311859974146507077895591434137370771697335487743058886382114276969179249664984821719915524982601391226437824664727090714564192748928751399776073293055304673452603643476832512961732394919058749011368671382095215678929673539581588667096300767828887046829421739469584863280048345886388714527797211921372610138471046893129886596111270405843822920437873172845454038126125717011606695396579662915694538067091642392661141128179370531156835999104324578773634858591561120547910706792804385777063677922609852452632183690295976948960967790342769649015401199755059248928335937459245259300037657953204526832789789695648610198192179633353576186589546900477473309788129796973564394868033546759515173763101530781719534659504819984483974673244215178134997525111487687314642617942791223533470815999909198025480606516125741731662997033476129274961333413493974493464546050677935954589650212285664346669665104366045458660609252063692354782161936594331197588298789031431278659306286048738223708905465537557448584653534049529126836876201020054833393298559230989291513757364850599435288044828231951908075787319762588865589183892908030766857167811939770505721448109323607849950621794708353035251230986887160020850244504599116436150083349670466102089750279668344345390720316874884429791891269493646084253005777704533112815901776973100003712193540806650474015444420631649261897401701124373508674853567799182044631304529819571962331070577944270024310205503869748401197603031064974683838067149201142049354843098894127002315868114881663706948762712117218673473814623677637384608959374818853991464708879179226082893066404554905298627666330069132319801863074192000281391791641481968643653107737771175830481123366308494808141678763350640386899603927837081382330305641700533902731437039288095821090583252973221544568835916497339903472877034943441134160810417238369577818326054727877170023158518353495013465855568902363111884531411356676201482269834687497527883895340217075690080873332191079675127685847154947379001302666255896610847519039738355385578959855062727382458606437659602089292962406831978376491355391465153859646248178621749794277412004538636578178821605470934126377094698241174887977516877216223699827632703000039318068328771659608734648850876493854749026360289123081839151412087473356422356495877098464650459757759210526047976738873723244961399280743184001163086309451432279614255525423647685264432375426301872735864190835288451979666185328399051448041254151753408671894444116332274659456811849068136323894185328125673543654181365850543933565147023298222634715433769053510078735875957633841627588222714305022305619319805342687276697599426354756912872975244519542558585350507158714900162602227088560314373759917341908939494841110750796423680744408704133480058737969050159278934061797421685904042440780707492708967326412599994072814102170454329894024404182681082385626058008940863077429170645214358291198362335765409542299419623268400223909734779356761464935734450347549089630571350992165042111789293638779956279642806639778479970567785612966341935735319880419420978145294153114693563271417948595469715608864337612443721452371934736851453855071665513497507362497895546669144108645487216078297232463694519701107414670967769187340439809805121423390343056585063151970858000565558167530633118221160399797865603693738695892631992518315831282962501463217796013088575442180417918300490222501121474974237002650537457397548142886275074822157774978631519453195498667101169733345555485195392488357901775302549347760930855362419527630196818424055269977853144220544034427798939539464223626719583619777549209628456566231261960301630288867630503562943745181222986265504601879260631499997812640336959568361626594424641883947349854792439139602022238579710248265965345854205254060284585055067534820856308821077144683217409767936924198436759621048277026949784711865483970807086383227401086819724513230481342529870130254270390198993203360162225395721731226321533312017830173105812459785483119819105811296889554170694249781899794462459051622925739759822835154999415482007874984509001833189105875276907048519180822165334747923626422678635833713938780956834278175654560474997701898150553630954841642636719138512350600666600482077515024078187570830562633928717181924430182472193411136201208899980327612968872061202782354593583872803147612435408295490108905273509108131652614869858650832870809900868034168006968874858127224387941020411175636182635868611442040201856180436145913456562006111254573401231236531507391359523711686038606246703265620034177407192161536672196479300556974964502218292732785535862480309535984979534966801378196468151903604452593483098246094098904752925162204647093697251255678331450542327205518157102564695220274637785784736065599485119040117199249927502342139761955876235137895212035631001797451452910768883407683533993188964485599928636443466255060404383713078624864104313619375661581486038429829422446676463810729465714250507412508796434822541306302168607248246362830680501647749354285858608933040725381874471179575839857804757289802046500698496345147603284389127550239895631801086310453954251734357887614811048782207127029132563124152809670812284336395741273042335507684070944493365486398428910449661392308783004244575845075483427047645593464040031304481174165062123518350286690787647889380823761155718843279746751247739149020376539776298201250882432860417747115723671633227369231167691363233028305069671496080505559475806354543033146363234869094450965930551471074712952098880074518441623837545744591518987359581277959046184214354002801347740598678822896812152054816119741413219997882680753560427993225313249684018393897422793441967152834437349841056701752387676896638596780497913344060462518006539802233522920192766620861063417021286795940984143283723756684070974293543806261811582995607825531011062198781174638329351897067228051692110985018204208875569371645688722664856715140074371417415101887373602873469240192182806234482602649017955477162365281864394482115495205051994505345546198668202475094226114207113100952459833336716238355658099166752409167152776280374604049270882586129972645190674519991397355531820881150692729906636442129712123385506924285401623228310311022096860765955953053858560044366897215799101519262019746846693185044449805717128781579139650473578573004186922002512942025920240930996445546349505136319544659167884365484993774367023498312409379080653175830493558472378337182340675882123602917762975900014997801627640551673248421168509727181123254551198248247753199324963733273085100975357525645537936118419324051259927616763802888567742708433355834955685604208405263764442214408531392749786448851463752229137618004552175366904528427737180761424380143244208965463099688241710670250168594802700939943193513347445754447728159831341159910215613431800825129802375429602703402292215155138419484150722328887761139224841859756749148359550374865411374833381382296430262894777197212741206968522641578034569311449405173001983540097193231092125173627353337408046919296002899034362348037294663997118646328653976569318746603151258828415603180731843061734083309964746407286036783205942582603796532536690096893117905632748035379692337651617985432102421082719796537838977403574168783573705544911710580131021674418801278419182490903653747995646838655451429668750297736591915319263588528538308706062045464586815529886578856121946863922065244256667495704878413313797671886230136439140983115718830716464941060903674127405394487556996212168547947845174902899487046142627687410807925601759328591887991167107979772583250958950177643243884997323511834151374511615346361980546457143595280753796958662602783496397413642498370661374892932764251863989352835610741018076661477201190758059501875249734010186391958537622961647118826512806412807382468120783733864718032486067823918188452105011192989639615093223442402942725628591248179488889472122743249670968027381409034460350821205013001850702760328425850653519721621636983130775868630385707926561376501945128647525733709862339521962206457591663167793940430477678992603861178022248828409650049290178479018975691030763634231613658227182001709741899347692439214087842867292013376136660507137222840923228926894356604253202164417754351717062687046261736677514981587267208127492163300063513510677401917401118799277850193357975227789489442908443657576360583198091145206553010499419299458831750349468123133168061438652980512944355631801986259955489701764351802189925551323362072905269146276141467196231206805558502481168999501075504843996760489054452434206533131336980356027821066218861879536573358008654111452383151131886179254187100903764598392988808521134135647945885786258324822512599626226556419318374096984418407890906332008274398217221962002465896098514535808063195088620513124177150160037908755916699294865457476444772586675809295460722825153158064518898044515267428582812052010325227256400765620729424191824831319458245203419074429621728786487794018643992470585360043852133597383998447804826900361423818909498657131624595777439791550719934778183906773320091690268184246135702194420352300443539324186478255368827070412594445893136076813784857878314860817044719970787106729707419776202810886575283354026250550150306878599364933020544923105480816207516015763712670507048967441979107487056534355002150852825532084067484445930688012087847399592237407232990303864619859103219720702178790320921055242063746777911239616835641304091392652965467929604239079937643907506826120799110709844813236530706311741383571781877598602686308336101398294385488040462462291301891936567517643799278766952666989622538795241545902608931559740204949776524145974251611982151842708188820723696197748002776515624284993631382705644213222565622193947901896941454443213681347554932005381094989509718964583638189387835302836703578410277992977433527180865986735120776310156067323097005557709042361678739131949709767241351544280310871801897776505605419441964669306000576891205845390878454566811623841542552373651073737688401341087335598887972597579508260297877613891388544392820844153229767835946616805293672254238477951184685480116098109912932709864157856875610738026064565676548327421747185338496534495912506911090677140758891439540310271527478677471257158371818943300139387970288231988252394437659083514904453899587241732964091784055723332492743501754396982877377710504296525105413959750065085734601474079722765471254854736094501253795477389534193286373723406112257425237625053516923984176244460447190625277434382156408339290089902544604539295892759978346391559800580140186205267629139116116340699117661258954803946041525755378272427075697906118258560919655623081388441226827903135439123071456271037394568314109806932490436444607638274226501698297143947027847292289027177936543209973892228358495784599896234830981170086520487104349124864868878226686438731547795250754187127900643989449470446973975397109801030275277638047803467629971690907112933837994350838955053681861231353834536034047905014265511802139394261320039383637132980883900674575747917517658076677764701139734194207999787884290973038779404926463627562642139815011168115605547963183365304986735771994392769476694593782592807138375722037207972541381635815369727769363356873037204903214548945935775768566050691904065054109894061404253263910170686738525980406367726374892158265483298830671766248321930189542511369844290599320566457486529016797870576358477944798048865912049354639305327218166497257702610178222183273814280240432053808915394055191808855881456244630661688358251688875676687872920528819582420256951294669636894946036400646642742347695994973146542145497122474823514751917545066335097715976066223619645413717289368575385200383181951126235873792030766431815849139741645866654699990082038287798743254400414613486279804664284570770653635632832752571958927165532044372963601701962163246354311407678610243811943266218763297163646183787053552613853505044715517869447900602624643127022742306827363769231548442005591901375199733014549074546462172563175870825921523470828106277427982983766653988154524479921919402213136138600473381773940071912871751898549099280766342289696863617828154486771413205356892374377821646033886509896114396252159284659527805378752103892984148921311345951251210300199194355717483536119944730750438172804486546792275458297151191494427648515531785676443479862072684637834889448084269211852448704439381581517590025142901276932509430301945439775784611619573344195925600383548492138422266729141407007485137610747557295276262695402049927215503056430724624816089310265653458038877362792117003069966959552686843514882374014283368888508675545037917966037544319160660257299057581337878246653976830633031584002464973634005151480603417532650170299225255466522505523278223000113318408457573571304378179963349437406076647473901567136485914836912410350225059303250072499802243995788904173706664744297084372153842459367655112579331472213950504041346258130019066844121320825195012742294983159295118254525700055138701164002311026027923211277964700336830117799587326886961924548829569886553852044135337695595492555714269231610573551532165214770078057466978040439232285228806080149009447554048583135850053990011569279102463924051801262854256647712912876803066662155235717794115835495588161301226125543861824675336225411834288340843513152671705645225765237934283119765789475251077076351502169581916925688750504204261115966477485339337504147394200563888521081143360235703325963810283202799034347374277109163082574222591895990683871566357087539296038216244152713683797565492417606061805573883273832823372167515749981444448115986736709538465059009088365962565713512861781021006398085504144876514006050566049391213439116876692108261568427654673894679407290472218574370589381869791050497337362491745474333295278542632444783978358947331893430773333697721653221322788248040703700793512691522462773148975756755287907806014037816425953279654078574843830620413570749147239204838447317760827941697293605525116453276811171553720145938167013053116728905584948840742390614166902139190896786422038750107776102273351505748500313290306862352809520191693442102632009993819076291118925050373524277099807758225114654036098557605018759274440189629056087550725987370627848694007165809748861184173035444507038306233648012548399495216446030466762702106814082186525603337762123932665339038957766787928587805316081630977088838843216338296762905583794127224129994951167641062845227426729029922971459000358869544689364605743628643924070949194447277497888753134485099669123428303550292060991015553063327976175884562942660475716134530934144745143920255619127154533567356796613501942901980614636988172020569007561351747687880629533712171400833895727835298786816066614424473939076003363135189234891532603354292720755132306190412245445706926466836863046724890901849975097144112417723996760450722735173776724934947795688782323450647667431916294224381267332616194021761250436346132587308629291926680434792086446374474616145469540706292508956930839748887496124233324855657558483109365828048821591458972777720187776564056805078429229993519899770429037317074740917988720753376635599964862961808421527338020625100764514706859145911638791623692793323971744745072242999160833584234072397347047776430200617709634402662321544239913702463506365864797968304328925966885490962627041503774222971061598385362448386735490275150846481199430911585818436730786451006573655416683140090369258995574605312535803768405434779001737728079791573713016196567498062231549386259589770778210040804709924741090820105302547291555085695959819818551701638235503427078178994268932630590577542530544541504243660712133462507076068695829626825936115363375689590721882053820090977325677909066157530312294269620406852168302040461609413932618018407625121619970944948157649464570420411475086956901365216871599355874778453721685192953261962963048483842491097658089589471473508807039991793460052298427494614088067649705054597020986529646398707730961756630886491028340116449539971422443119645959266326357698995071019699528175350997012770868319117436341202425999971874068652279732702155463493366757258576419820370724460262208942609549596526086039018634206303817841309620699648633618770936540933217785237409084901480471958792594273016939535021014960202682477782299882180410980383654942907507481318837055689995245066242711663149237975945657670678217829851702974437285171596480069738378465859263353694165542928293971278239409936908234876167073118774824075957817829499344216830245928806571133437617583471359895133143542385214452008249364811577338111940671577738699429426370445057947634906158180769385239073962209113032985554246933742545693751430223488162740364040087740673766663935319459757616749250465686953751522711463398421366223107475663725786188338845488758644472258794860254724212612544895328683185188701590201864303336254620496828761376049767803659310733685231365801803338359502112421163679088804990239427444382312014096738529942733852426795056812947540415006870434395952510919286694533810676399259596419170500401276907668074463340328129615733741720029867316786711666702358890193054126176452143645086208937072360593765938901637702314097108550543214675889040890088309649646273297326977682269972680288360946665265167152248624488070651078124680834402422975926692304370238462285656869599719262306581584102719406858901550904585600861825816438221152140261831019479492126691271458024049280323477070327262452757494274477289980085925675037902809656740623917281722642950808054120370882672011640403508005220893989836066015266524103898784483466464364426753498623183645744288546478061623991582660034354247095013417583703374863949609033469273703321373313389417604794679394445758984048999795646772553692769462472225320678263865702557385808193578332749845105826874536083769914455186848334581749487880267808581797539810768952145096941161446977310297835133228296919289089259704741390301139721113467263103001538604254162704115892917529847631698064941409795395684320528324956914178196960469535984065951380681545458179991280661158530990809941053298225897913353167188065379814234198011992723583482420363137007662067070173604106923272859732149800670655192676664914649852766038960769278648406337978058132243910914527193402976528116567218642557181026884745894873007897142817375289494905630636349085105125431996232733785492163939993511998023743822592093386261404868084263050348060866135136682670237933322209940591831777462650404231240832741849900295549924414467377817413646236588144463139617736754805545113314771994207881385886381458117492931091698343197947466713607500098664596020277581933783232498208047127311202893585632143928644348229976994133688369514921740517458961602880019178109394372881431545153282526197040582546532447562245950384436424056466583636404808010837840322153533442604563146164338369524516620016040955884572785110440304184888367515658064600551732301790236913146394997812007097559247136578090989260621675525146085105369601780946725608476278605742015452599292210161269202260772901049522121395761267506457141506217879126976305919795659807185165732278696876988355027954945577369387526465055329857534091808406546661566271041363356460486771761183885147750535388947884459929370128912371044257584512609245374027312749358805391411378797940302927884400586680447489559689397098617298138976392611102185784531658260998471739789259315329869029796200600293525084907806410423978183149197898338091479048084422466523897787174012141249354255804913460569823690612539746658633628760517550461706561082871256004621106088678212328760654858574149987842747938919799711194483266454429290324230805734290195172166756005558443277751609567549602589291746533873902166321248078002014791926022359746909842467243134182283960787249683932352002956462875771747776128072434700433428000194856999466172924617024615726825135604657109919494388217369606161675698587680439817505150957342155776189092153702602108984136166211211154413707285304821940164121667897242415752475772277895540743037335838641381616991907008194814316599554271342343271501628465409208026387227914933326254158136315898034567084121265489845027997299852939553232027505833053138320034288872937268204637736290542927859042005827517462375053121807074033771459699767605547452772228507065819562709443689504281150305821959502766811246742290303570509249788698753192732134132885315582618790176641537957986536852948477276089914759398646913785247650944158825492487005032361418517526502665392605094503835068686117492766939220803221422133707962813855747536388238212589328748351917329369113137097406513094005339381476052271354114425051599807563285618764624228033598186284411909578017382920592231078680435279452035171438746890669008754641256385403849813682668515455511714367780994452044807226796057007597110520264068034595111948428319212558714461333845624386388432544033074711729745637827576880135882851030402353852947858441025992705864364335479549373985999720085441647163429216284830458235837696509438952090798956374015588916594679314944061020934948451111374878012068921512404310693902603115487246094806332512844263877126014966812307445346624324079788816399525548025719909944149028106645758173944661643174138770631163251914798330339542048592865235907122536839912237226183323175027894531604101637550608795253545401841531727288273451946685252361798460383530646206390914960128474521981749158447572962153098979382166732295792164506258080153909998922764308868251169230640142977330466772440299105684134324240590574737181423439677692826793078854037457563646760890485303170692498051953328620904723930180461563149055146758838256441636084304277039757315909228784624570512636671789962545821066915084329074103232282523963776316265797431469369007212428981689387236399625560743837446378145352943584891658214389596051628696191696503421780745499667895039426479760337602483075873458570944630377705688561179413617700132663757949279623392838850848995248088958801569720816198287554681682009517384219589803882828184447687068543708814087945624111034460473443516654335753199882188188152065639342148579681747767952977561713864455086225887966596946137411399431991983998154554221359393951979610727646775057143174715563573354896265572607808486136711990736776064843189044689276029908272347532651896604815411572138842803797894981123318677920806875120085944971750743852004578807328798076726408686037841539408536553567238838206222140064665718526295380170836863520246001661531839021288271187254016614189517702804392761439161793501202322962689817999192796263668715290088533738383307271603737289370018491506837333647629424231632823532235067882152467905380196464619415876799746627001672168006220820980032673925996192481721711443831484854814465796300133833167627628415221061089586724333959942900950011156518150461685761988498369188440110659868845988816497888451124662545647425290901279143316866315421046585311950585202770172480010020827697746956375099524410624111172736441127820464409919170303806943321723782634004701013133320732650922782739301301548175369903658077654858585040437125671100582904983819025060989524519634304779286241272134292755319116484826846559903106791706455324880725264635804887076842419890107173114697651415620976961473967187137420661167034692759962103623689145714717924200043061326874577682134156008025043657993487983639156200990160044932140427171371773955438973817686248866226113797379187608755259644193979627941770238430925778862623714181243132791967294857195101096776472083421418107749028221489154293477807477019702102442806456602627164441354873743849942194422648758117328155937899992889241820250055438329719714241430517398555166483388963228873733697382676208263781470684731771088917812383316066610895991940131973692311459177293345584972720297397309338488914171080968528562734384174658356618766726890349280131323442661823327954810750486106976477356062390164567149475875579782320225716029012130204193068745635485869305714312424444183561921121127677707532616434347697424916429258802660944811263701235916568305746581066072851221915371361751535858062660492437997516047831100086564447852312997302536814689953171034331555188575755674096898646606222673301971686842583463150292909443745992058646570286836588746149833544046613404587449773261128270847670315631677346094421880952491233582544053901301346533838174138039808207674614911044863451216077833664395334143478720178462786612520828738308353304758088717344657754540787603850475470197444887616029344921568644614204987277262103255160967567281922966594030928436324987620104438135882467828733539453880969821800015030259896935230326770945324817229025504123986047137159278396593822855901387142685113356618780263825852381457418223574244407974942715673269701232604870781010004040161635815603263729215426018451006719127461223908804578979911322430654372898813747853139195326893608969242657439779888891442825408378237314059493873294694118420318187165486953021396035008195479253286316575259933045422141629322770029530543409850376764576150703093216186558900129186839055835009587947071226054235295786549073307925511204417779017160922130427343362911657999595950359462395972748483912168349072388108392541461682844294828478972500023182311379803480792594467526768443853181625232536108210589969744189186421871718916564840300973215380298347188554474903318817473933602393642362784207531244094496970290206865750694674359802187179492840996775829517030729040932248794989668168966945135461275869744431736409411348979613076707845352919663774707284890018528664500740057917574183602429638571838320351324943096354083998768860777046209898836242826112027517946404179978791184234484509857582934307909718635223197205810931023220433823781326731816464697319400236968728249435703100887300778714264595905608053273399184692886913909544481230707160317040617534141819998192337803431842982375212924756162564267415190522523060843111946326010530088615637799709614586424890503213032201503470154998082532652287642695631792982396470960879448013149504554694338792173730859446096764345199613766820865790288135402978209367562320265515950842180843809585114349058141235283089957858090970642401081005823919879033853367702699194919614406297968310318467255878867133281829951979397559606756308101824970675565757377187546547440032863830850381787011121147834342266648559277085034307423835797175556945261129225935238238391248307051993081245605400566189767732836477836721012309088513744002233830274585729462658456624042909929689101579863619675956640343295812422058137780481617877572031565109909393492547776230801552274023663634510222329105933843971199589443472826640550345888083832534332194793388064725136217151263498899654463119523123292503290301075346695051242332012191705631762210025618477080012913404348239417788104161589251869285044977807175317964001896633096007191874409475857714146811136756478053655760355824572197487409338333507664608597669200654671913542364317652471562712802726504535357237728217164463271612888913293256405727494024230483392349135432189157473995051365720127457758982276456449481261839142870301974308789977112303087779362872185491613558401639429949196584717163317079357471234143433869095740720618486645654419794865113228289269756669159497788840107937834901100203763182459308461164211410412263135821598958946723421070481010946559387200996460533672314529389115772649555258404892028984943261657078393352095571416566853697492005491895636715837641980575788695375391120457138074454044826958081661957532295179699832813663485392353906573035404435931900764405452970139901886410476045229324359325674457262291971905661630964228702292274770723153926118944630461208908683390074113521225100297413224674060768022514195198406593361890927572759544168330467652364041132029634299858471313788714903420165203398085780169945259993347376187069434929114786569816514305934586367979631870877879557012434264058094284537607694084898599182463828152329300139077838895860062301642822293578646505622608909151795388250342070861724382139383281928128904500665253002632354286927817664236089588384394140238967772230182925090934127148324943786297585366718350690785582388538945824489925750300169354875929402949706480933731383941502118824300386990648127443209744183131810826232509084343962183656934933690723183026853357468061117753495597390625503864391947308305437704111834750290485993432324922348990727455826570984874848004322776876108591255458555920987046712002707684987366072641180687311630817208969174681866785329086898861472257126524122969490166165474954677408299210701482691182114226174544976974971451444200247494881342731660089237552875505176019214340018469949685170817585262136549955033327826190615208346915035385503770524219060882384127976378878176571855239192237733984358353283023166838201553068188245645977256066878488788854160683348319028634500171515634273153158602499986234379074641066027302838357599605166314909711377160108721065319097624391746926724425953140306854761290756386769702165373262328880486611715499112811719980500767630154783014701004987436564428123426163104752662072769318473204792141719133005639031318376845390714373834056508839025317030391238676125102191236939157817348122804923151256853168614289195389527243997303482683082643390442401523469156872005444085663716840455975931952817211342838417550617479129242395092550871205893352747807355166571345806595177808020317692284246315787218244495817912655309394170877252416127220458889097532204457016821680121935759021443574105426967487542483599858047723529921184521854545233102470112767878020552259946813108321569928563555944422260007343618602498393050222824106257268946724277488603057237932518657284218004424199392092238950271928984582827320198830407521213535300972739560336458460796708465063570963829408279728674314480567064816122071882076249821843316541064749249213609016079512381796387514037890341600262300886121844335301200863025151648682584501949257021961762990342493283227090891237466154922211773363107485915103664299542836310932327745593555729330897677273606634482129493027197337101884037299172478335514065358200548613807624042755397230993940015857247928699006750654705057486185519921316152987707361143754696496362357013601659673046864201892838080436386306311959826394051488162350198624450089245434861653899742698194592163759525076813113388502406569240124853541218328259984290209467827991306981411424549035262099833492203572277233397115517037714955266463031906565386381525517225031228623954082533907536118674599510146097600411644443432726193030006272290103912972781809004563035476417357121649227844748305973858424893802604078898867228180134123669954978968671687765636346086353487970690611989477514179569097895705665510709881697562198398861906988002472395504084482059713593940163398567468169031293649392592070844263132307929809908402731061134545817132182643794796383429594870480404440791817876849036528956384577881204676990820343176073476856318296405632646151188085384234490128172668793555801631468423253977600325650221877152059116469084525699347199983090848498124746123062781684507303440931747483034300388593236555102100267692934595082057479717087908926741786829891227267283530400462611915795417873027059460105910695196736659176168680129835920759362872031541239193249756740349096870488902161860455647468716926899546885768999356583445518114135335358062938227687086797447305168074886576466890220012363111543461259291112457439211879824815651814567226532353156051004485790706581213869303038991411821854801900392482270214595734186829041913987811319652972685412746291169482763848399817832008252237810935440509598719187628155385671956072835273765396606954938187790693350033086207789918137465183428766642971370507891409939584151720516644727243171514985664113632614090446752046484297396589072607455490829521596970152248960189267940157268108221816369678950647632314703276379299791822947178474092935292024110936723192491606165630400579566554147186119912009158642153023355241808917139734048477879082363993327087247824620607606568238526419724686174632077030103035841330180771798372167258048100017387426287994117688396600642226072135944935940371786635430154179698524865996041860819089106393923164982918772553777696551787879318882918419894334529127414081260261221821048364051727921085567503834516351549564334754415781648537405415060963711872844914107789864436545187282763259360715822411988149182795024261456028129170162118937983575496962248049629008510608106981754068167870569654728010348380541472261222565218869200690557289867472107532284887816577840157346416236616498567535658283941573519338258685042460098863754351361078063483738233257147874778183205545619203858933759346624030277763834065409943972737422772405887988769675436625802477538363686860280798776291512882657055369696675589107712432748607959508910675856967250403701648161660320284026518802177277737736717128787611866357095996093876272021966952318361779642547433028882268819435096138648737072678761506860055444588979217491351323942087433341187858976331228722163954494633759592134988898110997331973566124699341789886722307098430611638704147219912426910649675493247460382622463131447742869983185127746721722669093926463280209420645545500363521046030186246897542049019819310819507738416787069062764848079587621988253378987079543294587630493034164154180609759603501727181507871868567344464562884849240744033805530608148075141887610836944818623324224159541567273859162624734761554115808940763362083392310219917223813902559680964442636077352765028758896433800691396819543438619991010296796022841507852362584416043180301674294816820703624818831549322193282160959363050597515946669203950242526469896870298700418568298666763520877690739168674123625189374081328571559756419959442859388152805886506758759957158130816321624121220993824097635724953534793134338457279194633977981208643513087272961339351395855648592544978685484481630682665468585430856371566919971465812531393713055385807342624524509808737984892392080175793356329105002936701802428682385043524977438204047981552711473584567440969657818749072406192149019956628391957194719203826356792948880060703211226373213872762161899242049269805040821693405628515299759385362902519536530942474935972550916491346194525216571554620869527802636796580177741106122278461542551701375718319143170199179479895320844331079209356180160357964028343733674452228945907318811184026496346456203987444630638934448061697106076866913996022370544969842689228697584707240544143001467126401598265274535732246600396720248687171456390781392493520761007154732184580175122090167467379271804259135648624492118829733089316588944497550619612699956455627072748667163771967315877356493877100899182160503174240850434652226987827224552558451843725370007576393449969918418749685934194485145061678967226246379969242798906155039637359086750466480877251208635955771128093586278574875401257658465526930393224561597860122496129912951614930072263065071290641438175990886505741460903345391320226690545850714610573171291174330308857219460515070498692365417753642586937759304114367812393607663947592771497353582603352522156819392675638293222011746253186013007829019213581604533952088637402105920491643938672138046313801471371267966164901221063880287959452836843677415930271249349741313071846407435136405806130199708970959162268658408651047370919479977507281178791529948708417937745265929611284085751178667659121202984558215160887945010414137368171931295311521407257881725535381892396805264137303344323373096491639179850357765666745770408771153157622565431719243680029132219678742694726849405183752398311297273815823432234552315292281779615974031257406492813802559182700057957435034138368768804774984291597371685888546204986473393172968129663032170270088355281563328167760140708203760443521669344641901745430953279000928758122128877587206402859172087294875195846520671408184966672490034407839251527097573636371009384885532733266852273831687513513196726696492106234105798340402959951769081828199749755017773438848126574441504558927584351859726903942504731434613003113931314644951091560196497005731867418244746651492344538949008789310796525027824030521535539298975473913623896727852514895458771479577058178064799905886843582151253029260282473283941488132759633961118834872188632054725494896490841807291416446454797608618303022342085226225988069603031474757164267008741912578170625520250474770181886730044170748110438188644172280414140198742038340243962366090791631677036165736547595144410093452971626246682485278463260751150823320752395395826438583112496962584261178533209935363163125896670179198381710616332198177627657941443433004438256348001627369908238723135178944897910821004758967464847019152225665442185069932706518901460581379789297872937219051512536774366603319653192143064859525497524566285041732214475422394327994440343752223269579206739489882052857116478584235094199008343282844328953469816909432895971208335655182835291738186621867686180657295179086956011694471039318841160594923857861330448766426774549775967167409158334797721859498830141315734717184104610319960095403453634122591097052681086587225727848201898102715095941226618224635483928157486575983865425136266390939417971334473157436354593178755104254680010182167824461255259706911463835997025013230716436334379108476576712707896829747006750545844657069991461966553923960909610595438992232216892067003676899905394122290583868245061085642407768637404237916702414408020644579446629315763933444490390333942276936144067076035597309338841550104982129059242760461488704216526663137136297244566650619068432527525634255413173365448482919891373661086525853915112688428298406587955973828198654254858297691294012916414509538237477005263842313291201677700973091575168170583904951987253430626306458532868792552746050494253793015859306478975100270694917390208922651188048230437096529726234311840964303627051927522460519769243948903408749440773148482777713425084891296703595441132777769253002198827564077101685558124109544001624159381993656173407505268231714730963213159155002145244346047676004673282130579661960476394984988056406303489171008949949168292823292517366926434238637094534224918790060220174616881972405606345549198777882899989036647891418377062575634107982491704541453078110030773589419064056045520035422866529562374051194327767296677792507444964931020948914072944606166516047549133577837628811809165254703709190484343270424667115548156370298553945681636810082497354486899339838084805334590247861030743187324038200488061122303194642968927818791890791265058261069543877121479394051992291008936396773693307667714022811204835679048610934521903027589742540324097130224054169966713380951250340255268844551874094362455521001412495088463459044370239338648923201492232533055981455521097481435629651359032816609534016311763954066870386024411276149364130581139025612860680121078150959864998641039788045364655126969349263049897521414576947946338907236474396636461544198865682647661556429163093599927458616842736109416627207268976692267418729681610702360788343413720980586039337916811019116984336447724060265274725601035163427322922199024692483117023494423851998950900770261477882191354562277747907910735529282364140175437103943927936972203999853869551623622549018136716497648615853234478865918949254872371451191829406760871008788660427572698385979476300763530334381887920925300322481880733663180839736375846239229795922196310877472364676862915185986843459331587459457687450915829442760651894256979447986031941426371906354948216819367108474588804510750075204850980413336585345570809468147246936102089246799623877123150126751486224116248977287484491150081099963217237179522571904565791002743131813002945095876645244870909009885691448864732981491460012117256647099743809619923217926428754902742823424828896018325680901935462007628870547917404412053141968973944611059223601272894677283628714860001185517851795937002312431531893968982421653064859651065727788540029354121651063902140347708555376579037739764353799664430678673348514011928628294501042973523317859306337669456965454255969317868091379863341439673009135285047064453664122691056677388059552731295446288639872183591980568141456132847334138683307043542542441725927425102199239204347157383050587381019708942818453715118348750954559517737194669036264280900269919691655627262684705748725467300690320462752094507588776728745945271166034472243970521293342498900054900824972895904813157292303487195692306734477083056912713611421257337162531499010347823812215183041249193696308162061413435295584243117107781216929174127207464791036324785007313922740790882919503050678073703565665010173077587313371388361397625307687724224150061195372331299422115864004443201243895088431365001264484321794472846041145696783616925737019767150213181117063535033166740240370913109585956200832975522144218970928560851771958149582947819454726143233075869501376815992720899085840215871008479874674181232312826789417895652959566817677622379273360902767427193372396297444112105273080810057849178326536855188225262749794551413577798652808541953449017097661370302557519602860154568449889188832916727817158804620460289315177602025915249095371428715719669883562869563193333010679638928578321869702468902189363017719412789260947619918562402105166826354555796364661874453670862466879886419904385705215708148543179214112913976280061467017230549580095218707058683503861120220028595801582111717726393787047539395657095939438343800843564486574419313532690303038236512068739114085413240359597933321791886816857650199914858853255804989812394746388051093267864015988595090722579120805046888649994746567453877967250500962143071162490720396364751373768216290353096161679808874279385348184677366887079953070169128169682340434989083900397814844293790227536019852358745482720027317071401857108013565599452182261320356090525418317182593722712993314729217373186066089336690510609867961849407265025477042385380666671890301451223553770497935559151286840454737132214469084178169666710937119350984303428555122994563820099151202833459511088139955641226588930662607978440135427112206158438453473269502667551098219494410857704161964470525585890556668576646183066711333456230958193121561771119226520338835695866449631042213454916190427575182945667199962246541933870406202881171019859416496446436081086525953792729213234080568077455469233573499235562044676697687498000333498907781630855151320625500413810636879370025503385410996560072942341304199336394396991032245557351882622320559235844637248671062755190637512328427197090571881209088788540853343875630949935752353336509603688794076527549105815995680789744765927639457320620791321103425421521594627954906946187570409870565488041721141917342003619459315952773449581839049306138778713338646949431479304159158297337923657430569995216058460266082596318183134284047455811084904279140113304305942022041458609143399340718372095466207022779875147272727167648186758857828878389776164456412059707763365440299330661667440064510406300348011415081084642082056144271969104816167839990016729711975194693161832546754396198486391338212162814095926938016018761137879023121766714460337131623306418520527855089929878895399118260896714645797223115043760353667278403154009374311587181348258204101352927596742079799382293544026565184564896282219661702539996869872393748570838574240504001460209485151816870297557912967263342712401039953947306017459111206330180977395451664175233044271220623798959013542541664995795299546623262222455949000529642302046190969930200518080601417050715009172159739159814478445740703384506039902408183299086649520883555826729238598607913386199126846849555186844239166172434192909071329480826343487736086500935889523804522093513821459614045940715152566615223194250670310580272022600370269003249736815855242392389178808045209942086175215718856590993740837641976246632091599945523763030259063725625680433131680726048145872483068739441241860335472352107391891732331393278480758224010602991072690570113155327592596526354059611992049801374947348340211725110940413579324514895856129396371249870956627438266845610108657700515004546515587674078639999487493029099925853300614727860741742849079784552698664876516141421137143243634734645216045506411009466128074355724738850101704633224058883972975238874062933447507881910082394446433558366924694297811286696487414002050618686450755257408519971686500282871354902955475752969128098025494302249318015436424181535329018563751393724500227548340302579435080396529246642230434785271523902280866331746892576724519380881437596481337991982244907157035701431182847344942741400420075193331985004197880118726967918246317313772282844929574586550987145428839554415221466812600520221153957127100830470379798266322996016779066599070927593294418506322397642739173319758454270621922829675976018231463039230005751728239032290039863285328534103886534658970524101232649336360334183314707223949463563027771512672911555910122982617900893860588113127154271151573244812080454486618600459984809230200207082272464779904365158295747558405411370232376635091026228063326956808584412150988446147307525533971008963314300358154599145684141845675032616195202128400506678045396762339731605238107363807679912807725673704091557856710579248927476653683184005126488439221576411657345707036256813083260544167642942484160238895771409750556938766664814582428153818017419027079318446415604907500958069993052142623317982357618265918028578080269551738087592581019569668589160119496504038143854175199600382275132432276386328564030915279480898538829857395875089152385046514077002054226087012662445791400308161974128236371380879901969461666291997085028966487834101103087986711231343197781188636635532938689517734619957784635311353936704903321432612882404257435384481284649816565844504081551223922847573395852512965655867386017071929337658142346093865415255536965090379046809163203995889905074038778499294780709924360624764910118218941909889691613149390707728321627690302369149037801003177163760035005337276127704096480720600968222944793006844227482583301744536506215961270327898523687205408326916298625233346228049969350157400275524774046356698618882203322338630099758574309010423779215952230069863463379167109531183975370290032607013548325571828249973132092039477838843725986596510841179670281236130828755121972263808178437937768286605852687047861975143518644248424345993180274312217670336826352351619416758382921991010781637479768353736454962983233328929507500516786042820995802042242887742317663568647988639667245566186500096594235177630411390708916007694227162498506248760098348959514768441797723750057204152224281473649697893309540080154856171560875502143388174633461720928140110926646768909029888720495979206658052183901177617393379378974413672450042613830208490637936768742655110390360321522109670642619579532476830735865250052156610422645911955712583574189099069864556925405167786291956950642825977444114672860868193451174119966899162805673391991299977317828258154314970105442465746406116066320178988861569395016069153238273579404182229472560881775036991028807457453654104520462161766791787841158747188577800678643770953721553739000747503722780197585945360089804746137555795105165170509115265594156729905095163170353126433092324330578140416219357306734331189360646850764462372491103529236172754513889354018142895276656441147656024720818743858419565968375267185744127578506180840891163782853564885822497711106342427788613240723886070591077048501809920651886272141384543566998976223496250844179201324032003510877689172366861173998802678079133020409958363466883784834029542392854253862319243869486914927353892394379597720316253589768811149717041619646845496533614263439687960258135082392952142179556137437098275644150524949010033341749052289588480302832872212797858091443059071202496897091605056597408437360632440676189838051096593436177051223926165853791753956025055077216583271447435846207241458743880131307948099088672666377244152634975042663360663754109313023442057753474843262664129927741997840538378804051616507698788752723865031461754664856199735146735277761206916839478069696429960215988013388177253826894202195644775740323453498717010992829035805642444125811129672837345918145555910505262360206755970162401624722668815392811430884031534069234315470546923698386493006757079611421635686858529747334833138240086681652571525744347400309073925161886265640760829893324811989321273959877018814948621969264977811409389352493042630573894385472188932908385556009138157354700071178627520034168497608279100704815087175140551230913874557813653694549049001027819264189224187587011730895815504649401340481943867359409875788107448154885337663857631852333020246354909457128229932636360979897629786058968800116591286150872894892455712766132503457904613728963819507306656677636226940319259901495743904556453698265322156667180595040148802154472778188866322201069855579018720632619619196867805669637024263985537526559992413087962328435622805941453776392418883028399847112924566935204329633159528114618407045493517353872961871217385354850853808328727950070099943091787360626307070491821011593832477224836768846909767336675430888998302876990133443790356677259509480914861561801637507773806157191931296092443541829855092555091856208834209123283073608418539373145345833633002668344933295693893157181583904254638662988714225637188408108822551926610818332112201114258148184511430713775251522178446975378101799984411697006625447158171414343130887662373037402640043598744272446077869111753207669034333586700056648886885123188219853078396874016806008079565171986892699750689605501796210494230920081173500389666165159823312258151764391716053696944528093744138805502859825228808984366211423248256382945817708477716813705713299093833228787952120735309417559364495690818711884775192520069234057334255129313044525037676531088262051076302418798928902849183176814118470823623585923036298773341403107041639906937891828651665457419179683519655894022788052933763183832791027897388999581344477856409936368721714638063777225642556475014195447201157826745360365786906173760006105033680242754189279503416871007520821293280836813878211840070134328263895487703909108811880885204607883532148353585914460390697233961760564706412375281809975773065162708050528784617581947189888854255230009176348269446654029924666333941751610216336025221280762626117216746922604164737637294462220896601139263490697793287817278112120798781439287197534861929581510505022721820180170860259500732991497482737497081297945777027908902516182543292223129321084876882807240703170928868689073838460439010583438587786474285167343195320918225495615340536475468421072320336340445516743404855967664971657042018466922717993095106758133933760052125324258188843535770578310494382937802905552374488090296874535962880857186590137185913609226223600097293518527566888353251362749729762398528009742858800475537867515798048101813734794385678995245685320314379731688724290330158049918301586255164873687535605755793573698253349319941254007976773383597834157049334848918941599377587298429486241507609250059411625914044041351565162859851451854238972035789808465732797010708451401650205002412625112282004892961394962087573208710403015703712617905188664180675330755916864905979733970350875712954768489669794876303772295222546130505279215822272042437091631313957531653023214495979355808150389038713922194501712754893598658869466253358925240810604798759522860399009836123003278161402719378492224279437483617969733246737642254896333777537311931919256657664774614326928914377544863555357808906001077886045539065791038097374373167413076015218525281070657263578779512194214111567829260561628268851344267519090979138797533228215047656471281946882301072172493196733073896490340180409933036250013854283995827786362421745631521110876842264231924388519010961157986091950480247520957040771421202097890924624097800304780552440242552896459310906602798359264273083000929568836521649357619209970721023208206069115170467734228969266377920280745614863611935620831339926401706997015488768971426094164062309195110632671297393162166511813779611900636229687033451294391828156654684926184322442951800110524918380380177257563272789469002873143019238692656803260394266073698910649941268063307971163008292728761319819913919788907485233923262683573358146990140140724069015313086298173329118655114008984324677702186501880644004471918655482903019859723797832160865692392287186152562240240782666500769397137147307537038006064540028566468467031647766277534484687336487965240496218391310195812275941134427241777652619167075860539136412354096860428902108832535099968744445738086228100673197901687584674661634840328551939129181782599391873699265902103723946042171623758570973210454773193840965254591273977476697942670593668959284993938193008812117680999231416930931266323687246183986562529392170625254133905859579480343571501891550549174445584118176860840145582226870414696800207199381683614298208302007663177625419666188042017611987597372869285841244273543155787910710461656765683549056813214480270504087357198656180489055061770971426771238222889601598536299837358810771425626004651678705320735458903329177039979241284232540028328419180274362535637571689466172253362836053500689059372814058793730242171952050253713440245697955083452805012550757587722320437700987488891046366488541185956195198231817372896409244096925088442513454792303371402200942544526119966535635775533395647780037408956592504489315845376715839143406115220625356978794204034722557065485949247033049636393311173175729648225084952633989999898265877124667496087275334675874660080267963361640239270247051306283638766533264703251912110425402280417617800433733014851515874865662499841330122524989941697335120878657854665823290825768526718363263787042676550899717520678105168410096130147297679341866712694111427152748954175107835856622062440842720977665549868596220166894967965759933602556577916689717978987570693003524923825690584212874176363577117595852491742596379891333186409224066296858985821205773283633121823286214765741968493676044571041065614506173304009138849074550515792386013963268916050872105557286886073055168733144049946826433841333866426591304140704674781336756712145378457101960381599309710130136944674169992738054061361910123733338561781182562301545539214673335435347866300183281431505311327644495361268036006185267727575621805988519298964988325828439915738631450967556113585204017363146439568051520017091115974012071889433603275800550188038489467031599253903163096567892381242702141631737370581780573116932638602641329737396049366546938848849589728881848243676830397780424086546772247424192372057382376862409249365313460982790213155057712081363982752765867269630815676539718619148932294856527235039255363189115423437238738045204001862588775596307435118940647447922352865720875240878479838677887240255946965795657069234732721664777628922905482752273790830446346962122230473600352092134593008520736476360199427167972417495041814364425857746468184970934372951221429174102283361972957949357925923688779906744202027155221296908536901665156743118756733131891329594364972680678134239126471398171132081844801851676604858137079396355946627105452272888331341085615844899059945648207871203366886164246841113019331564455349768399850242339074788675340425246986379518996623392707162442159204870528799271756958388773501887833023719525394919387455788742230812867999178657264845213322304793077518920005968394445080259162350413745866377448845800327089784466038415237963320449935909539783130887005467777145945181521788303914041937075787512915250859827452322062262325253108401592110579062940281483619130426516998289902044463567044144159202608156838430864980215079206801808312766068127408668118322863063191181527215251444746977704298513046151539120041762575872498855070082283634627410449947220399330558570068440663948436653572445821614237128578167062574856298401098728465185329800960954319463264337858442443309335264086882790677056188131145250331423992554928496907625607830149982460210892217436548977668029231734284529704182455872331447392752178937214726556386566390547136232191013640343050706479020312433128582053618984562190584157525865206827372151980297861984644849770961509713214081588159892293149995507420355130738296763798357768934931179362929061260225536832089872613482517261756539523144182999053529895799300883223699438469483980033399551907608278311715974938652610111173345279982694973170580130755645663165705912510104097662419308009801781659756619292014603887445882829892244723377390639538376761364653746461024480551059477339295269272079948914329498423210970755180983258320236581703601824291519703970288101734894461987271373185293529820879200280117824888066954913188611689350988027561633209431052089237480626717260581842833606237702219101290682413699364494505497013987203946760558964673026928508574550128028391426358324850782168929824323941785852229070064542273098005013496534395530969782414144804240858955141918731316706115052820917576358691338729759924959344190939118312580779094945564942745830985283469161972402047811178185944270683579842652087491715490568162246375175334340854340735548003741310539631082538114934560008224993241743955495861708670528644547783358099614215052704660939152672157102640985920939034749681421560152625151252249301861151291776908755358589020604385377111981103363067128453054825812682112923904433645804325752611540272910018188803131362181659045757656877018969962577465147009390446360812828473424363966517377668527796867816150992103934103511679922905771240120343751333233163768782157793892970785371156078610618699700711375545143422584059066091622857877186495782784694456127730759580271960506995714988852392125005039102293555461875825213218486260458967085953356155491583271228595620602272539074947104625491994240640800889032747522794421853859188330180333848744331073914342882836526250815969021838165269650034290205133064667553534825389346105248007275841539255510645797170599138882055574226040770571227716427406837973471013176743550761236910723112952557822440076044620313376157390004310921820050111062300208604149538523784092853995137025155063330930042135885455836248356231986763324707910702571675731334304817125908865086031534603969228321275994637298188812894829553402368904115710154989081955215611001432996658824661613274829536668094612256310481922990416428530070861386415776236858683280278934320627735725481661443757160155780382937657925280180310778493506111035155752416562622185555494684045922807590892946013470780861852747479406063699438347795994583371006127961733398971954892695672889783202095727926514550161593819429825547785189334281152021400432660372352254286125739668323239005563549291551575486809028261572072489165340722144971913419891361596996289311836761672121669578240572114567447091011443268037164696988524122785194663370541028684765739382095474784199481338448627813521348690058092361517981754490290288459286540288852154582139541796237526106655297265378989548917009432174527443976474527598207609260735357980677493279195443445404749114863464235390845971286058752458112293779464297033456927768364613931258368524337200190203934966247471264676568896154461526452970124298218784113543992921465646642658984911836187923824645529044737849186178514124746163759396101826183882043375842608638762128223769516724386145279343340750851289572225485034341687921392127555973098077481444946303483127511314508165907255314050634686677518942652647808937155422882056257438710741181790987698829213176439070773314358259480551835306031938362172474049770462609415800073509479512000476841299407181665727290651146922190609271099215077444284367875080213923505440394127675583877152514388786367365295111521468212585111483804497746854925071422462457741957279313970067979989254572697512901463260259337469820567915396277937284249948858714303460431945380873638415722027627769415999687917358414196790990195958883698582209371348838966205520961160513756004803787111367883045568422384198404751421747841236542179270765775187233342571496405239690084919937118623505328335540075841857302483495280571546957895576481597721208362179129616370986464427329072659605635442472197978309009729816608962155410993423927350010268104597479269503744644851690343977708863791350326487273750629702605030690891574915980259788470519120416748872978048019432678248220468503905205822675235700488692741981034247739058383239183757400634561912097038245997767231191440503412603066129049872854158586568175699702937495656284634299592507928657176302717159674606275588173386090874743232201679153407821337576425021827346660855046843032376552342476309700679442435011550019434969552174054200224114515108075103007169589422484768094669815300317263001443228407112730019504059761037414200659152515158034853801313561410828885406601230770532968293378395018382030966494720686182424250792084475484828714853048174457957485421566753998951221229430869929145261586481304786396937302274807541591045322967263980864571311735258577423343047121742685470243726396950494354546365390760521087294434071860270767869245848614994931124773515231373567368865468698195066106614776725760223594109513475676162797795287575803653908444153521423342552179989441244336715198926115161185805518878632108892757371912668434516928903704773905648265254445408278206127750024276984891493129585685963197886966236661925835627815455795926706878526167043462995355036711353209188797640949393353693342781122742907475997091875482349970858839885374855526576366711215061296994611980959463180064964736758009219760264612671280841877982476628909891844428893259703598487118365488749093874011593895107633317588819268834609602227082376045043202486159797071448876916998927872966832423584422020011573732372712998708401977166742770173018076327740424714654810771818430142530000078033149572660469227629974477191381927730051633452131391077372713871094110634521527900355476724731184328585998968490237204211571796246808074698701254502189718627888526979575898096278128270446720349012070679481816922109597332798143309850888434340490050352753536827287832466982770099668876558230067290980127670972565520917164967070827398063913286239666705737964451882659883086964244382853735545017482271092275255633331360978263993079862866278890516644099704023828076617152519281459681579508165971197791463481776382354362546162338718423928891811905824418451820305787506529071135441872885344985233265846257032930848838414302039171948071147678474674217170009579771049957279360735990495989865224338377070606399401472169076582953014988674157737817848359083043586031636933691959511383274276363474938800428767332994025046434175323055652419016289349329508156402239235164619471140019221454505582442689414344493980088184480661622381292582734577869830556587420740523943701161019097268512664528818248093183732594058357215542555361712093542437789870184467509733105593985591679811337792725898395763683944718155103818728212702158159698814816291190357721512646969781143695693709526056910476104594181067817613241701075274133431535918841450262509488811770306435843135192309093593571530149378621733354756501320647465897346858173513632698323461590031217927961749360202695223688913542705390957202878482728701516023900658304186325199484273839298284631808495387391434886973694548476193402475677582571681248058222711936460234641536927653587820271075072359688584015514726817314637123434051649331799603470371347328008868369729855533084886973571531447828455316941840070343225147165675859327319603951514091935762374649879965742319169762164728345487912429300394276565032706216186687565678666882325907362610202840442168110198084517193854584843482687594696423628938041629494619024334838853223500011297121417055133453615038831767467698292319710616234829892850001347550761922071398873351729446262770193187261150000334079416559750602235668390620173275486949754938404387478640744316072555211279914993825528374629597750831097071972170964220945569921336584736683552623528854939141948141787108334226536305603276488738945813312876543444435496973119130139192244858743916961646501141291727890424463569125117818884352290067685026097033961321943270834237572809836795464134733714351001714230087240317556930263765803506257707796095676341843017017753520231412177744025424753189981642306061766212006210300322978111245430740597896025300632988180030704076645049928924386710110364203848215355106840662691713400455029865208262171182356290568855923806670883179745742038329100055704390692542958062784322428889814566065757669292670056857502200853898534494777550436110755816837407694204895593738004618168576106724624766142926941592548876048946751503832727350079507300737887443138554555139233858411091566935360632634722638811628828463900342088348120816679766559489204900627415809239031304193593755187483891819311009336752635138028431556174272392746186180335751603056622656983989167370569968747034353840270849905523607432505196306345905420090774515500571567548481444529437668794517345583632415018793907913435718920552787772801985368166678347807026093304426075547720378799574186511990244815304365968652833109931394893950064123055467036520036928081841748184224993561183833891312151339241214333400621089205573377163339979497741107615494817828837274165282278262218952576265483184177696281862199264406953731684683854233069879095258979209910253741481700620885101634357843765075731025148489449199376557500026828262676404680469395110810341480046750712954755121773850825423923371484624843838387716344659116414857116339623386907992083189061676540565818889634271811023455394898597431675063802182818377039895292439215366477631834289588884393755135474381046908152841321181503751764008715078270000810846546194246973856677581107181670588486330543838709614497287087020517776846369147827182789138384245139727846126315370403860755573387829775214259839114409344119726957212101288999007967349965289299420513925327920432209585843883026230092746245574846735219833996201096197336997276373052465182946224846506418560105074919644372755161374685714756407594293773803442735272185842723288142155945582246515754994426995049392445186663796480473551190579132196122689757736553971349035891518614005566125431627255110750736648518377768320374179218964788153370996850092698876204926358888615167049178290870774850280513320084466531093063172100525088967371988613810710065257528632629985906752166584537713733756175015118684652301227638896187476534258845299816266869671081049273322612307338072646033331584858269284553405996084224596079880549809980504028157603768900249167510465731866542194852516560556081449711374585806175698675128081884506855909233851148827923741750688617654846516524255695091093780417495970458447299427171329765513355496875879824007195283531755024788462703589574249598368296772001906748021014550293419295619715574711636978024475294567736486067370634551007512588705477470495995069566778551912044078527816586169567815167404281101536242587521124694264191918239517069557615798394013486937207838995576612856664003328386266486165774003432844016344658047257851432997456683320142304250771601744989356218361683478852112593963567033804819885572935711080494484072805168814840537681703622577373559783480766289514403142771304115158933530660973761012125626178985169539585947953829582511710322259514216659171737294511155381074558796890628706905295334893648041639048102337826220983999129885744903787884236476162036056383475996207545637364493128505787679035744403628983994250588696654229080849772759656619485865732213076921577563617676366540980446364997148814201056016708702363181348973172775772458236705401256616550162764374676370463486717997389616357508098976200763992756360923322340016218267785915803834527645190828007888973186380381705208790583485202468418803705380591561170131430924153423362105393828043128694258332484809509800225259167021185805212821277689272676039327102686928665423100109574655070352404804360217699949400722323541955121182654523901020090663047826202762913072643367229142585561609810699131918677830614853783162469657046481275363769177500070019358699907346177167724223963090362025821184623570315091140036010177251877583736126143763260051628751124858440066912408389679237198526869684052651225014568077442884818807140701774952060564647033505643743864171195911900362603026577742404795987011743307827754877906563154001040132819311493554107917356523999074014133410042626683664498980056378713166584896155543290884074771439194498308484638866893433908221162080342529260307370662972213122620477457872869568660395983152145771200792163057177382262262221839818656699704782932475670454697448422260095125425889691843526206326380547613375169413332313897325740996738374486175981267933948276470503340848743478069801850845353215637256702825911885310396540781127414418212059010579493363012817293084765959224187303785590240155652895388198825443547405372888795703839149253908591894727473579066962560990731263705111103257634061975900694101296845041512431636166198232989076862191017028737103548721794309371015368708649016711041033384081260494258786795832254226442269289213057997580239090293057531713440467336166902065305061390276569796904590781786633249660702631074358017976302528215776931888256197030799207914081484779450016617965300704375036765460369203037562814769687011036872251264629862451011751636054996472090663107964801864617014239810350851909918416250754042502983745925445204789906983489959337485043219138863668688063683523100851519065345288177624362245582611945992382737988145973852576974551478317034387025259831556194251662650682794429215284227541161282908994716066025104126818377756967671115184220191882745885863765874777112965271322542329500388264298930308462557666658974149922057712985852172852916203234939210047954305687702286523132951042002804204323835454039068760093955704733108486579898012532960542825503361026890760031511605864302466256117605061851900272828307029260516635797962561764660284405786919475328614017538089232338639032336991728065918013505225519249780181598110808143302631309167869822055179821514938910798272307175959886338046594959789315308476796831370267158395843455213038971613198419594465601520672172185447681619594822431143906124123944587107533618474084737065051762167902269899584697172601027672208853729349753140825215634772788200698835937682570248396042821389971065691346605775134311108291870840605053792996906062962770467539305447657212048199515178290372755985712390642630712927834732658942282341614991028945807918505492080990122701633428943058785968525576909677938657753190507507664919610575102787501298511645098343361370388627843444464479689437797851481403307500538701268417705480822487592209886285447587677827149255454693387688111444984574306233405112674027645512486769304165292068891501475490562168551306215781464203220598232215527554923416246271527906082322595948971112029990758405719166182865703620108051680829840106701690353405465904020956255727917067612900398971899555480592938160204104537866843224369574696746431776433419390819232847411806118353297986057149866523604467205981708821563555030343356690724856408279136780298331051891178674324170025602614397667151298679669321425170167604184283726919543361495157104894177563607271062843186203839571948880447292240219862040803669463666598768268388726336329683820229037105945317342622350911579976596328799214161549370116667026611623075730442906772519098190985988645010765569807026775878517969816875685936798885409680320349377722889399014053121526094729054508920791937960579758735343693565547710895526882062178887588859086839473982497127903690658811163507649184098977993293959846023382759773817753606840776676196168793084438679628240917918156190465295479447401530073518392581152592280772712298101130394106439734684605083343255236690395182105069275033396100298578682226941877648640235329775549972322223680948355727958186831080779950506273995956858043382824634473532317699169415310810537471871566885207280291322104414490479376671287600519069131814969912540272877069134025078812768570753862630537256631545375547609111693433800612973459372739481067263317533766652896166290670322319165506920655029886104060563031719647842117367187465007328046431135030449802054903671005616673621977586214532992043033876303843117076307915808458599408139625855559953013268361375181075793520464851644370615253922780208366794064922668952795298072533766184691401264988116976749575541458718319321499052367923070267012384028608053500272976359154610060768585489731994741797853087804759564651104907737124772156013185596637336418525797274566637539113506129001268820864898505395926428762518928002504069574496507675806633547658248753429412451808702277740642008560455078650491096279917788805784125545083994493060968350499825282181677287939532557669581114497973209257333800154133319695890740102366790857695662652214030087277488514971093526636456979643517754782294373349471480332965746088532010706828651095239926477148423550649246170538086164826051043802674923226329508318938675950240837491363735265246874418261598857852507129459501919480229083702742864935683748045685972078320842447998496495512425234209468639935801751634232980051736148146980619504504530183579929902241987074625051591430299778833106627630888629149987471773751669916940723943794983370413948430127835079934157106541417373138741319979709812628232065060576263013565722384749222250989919486489382584231728074724871571810878514666927595952776742013865317962643510594778775329021719529421914648120110188003851480162444405907492020827925090341032373199587689749977516619772785035761601844166881393862571135065537236858289461261455784634436947724394193186307755200459757924876915398441203904518109865549107701385602920623219499699197857074714125604030806051018028113560316457326650775502760569271692347789671711004337927131537463077995299767087863184540667528503235004337831621621904067989488798749270171063078882719427855600330746841241089407856683425546433028341852400448706270629520297998560471916402985760734032663284927418470764677322718019829936206126715702774298353452313371221912822473186614258410521885733111437904322157826280807032100043033167788537958376689779373234035117379162719390895084111028267527794680580833762961940179487304795765912370250883866186491431100026993257158089427955523540675913116219273687986018795721275493788820410340318213288360270680388853227718185776637600124540904787453188064675795205865265334697481594814992939029600522550380920404379905715196229492575760703009381225870816764447398996513424847412262735611050796538673328246715396155352180211005973676911147300763097544902016010907544485129382167715561703698480882808038348415671284464098334515632254678041342394245505871607457068642771408706929464265861711369626745581456457782372420119204768703036113505252905054445252963574949454428367659032522777230617418298992049713446335819158039547033855846979579901375447916244561535210679860377640949728311021189821586956774146257876065385002429740374429361305614085914694014051663201756441288383767264126297402691555293792317512693184486393881740922996591740230076281521374209601806416440455122778731572712066013471715275879972076101152218079230706040292705428834154353475152719347437559758699794796208324926228046808735449188886505508263369994527032941006643848984358619263592339978896892167551374741913856098351720796274176845317914343546051999673111659519618464114209569436805632062259603718805133578273971335676679071041140194932570786516082117839284736643907216882058384476458199704181797697626512698987225520754657820689485011438625849960022683005817632810151496422166686991111441458535521982595597375094624590488159183505662259171517320437086492099539532718549577043863919069500776414206274470199466687875396079854275614118587012208762459486644877570181929026973159215842294862688473622063255804011006069842291267226935419000109621987001345641447585156580207393001825873420469843011824492476560057722872668685786793724122921425751323800893759872472180925350825074877234405329711948448830516805695869513986741602882092023825367946439533747434254715479008560632865148653477600605061817451124221513596184782806710735512771126779132835651882907719964263157368744920264441635849505143704215477816920324939322843163213136376429642815626280526154408788395180418668751588565297061014046723782553524927925386561331719293340855775724703158017844862139002507467087996078421213980062397147491410658892972944623213931307382838576451229591238474999131260613964062528419866555660408588541535803484012013570921000769120561753141967010128294842735818241075460857762105409169366448131376835408535021991721381993997150906731840487426042322760064686255842967425571541059265007635817573938726597836995595785252273209838491730892154648781647239147199200185784564438514245572640082035760988153700761081058525995003112834996203807169785088734181330573298590244109558655038213375862791875911323979024518733690538162571178167378086138536050934451850818058711351316395701298436106359986898807821600563864599321077001955559670792829410105029796794708286047581524282041858153387919898124933207549757319375132727777059249293456505565984699411101118332748884341485130075114935626957727465064290301524792464434543651968462613427058373714618954580713184351905361755743425892976964861903969601806011349001838096573057981883487909832013139306424679565983714063721138007456543066607298856332868809306802984200644029021641825255375415621806008617704374390657193301880061117777945486704156689380864627305667686743340961529283054026483072381808587602376160828663591493650143602568548772011399113459447996008123242187652762403121475586607011072866081008517179669247623130537503489564054000837089765205484627595592314919651251590655551924874438911442726738740873537892456793144185539645151910293788825996281309870507820228673578108881329722183170139091841097665661432013090967376389752148128220085660799234263071007220768592397765903823697000087641257894547654491066700886637181159781993264782473415726884899014783199833048523698114761442210236678557171674320383836775414163520498911184416672752319566292177849429388654396480123515255966307337431464606503861188714333767630880139496618371310789015716481763339537838972858018794725666048581950983486646828574239060481840543266838848472467480313375121395800235461058807126491440398459064636873789161324116182856923957898084890852271276272281105135964425924916060921657325888230826902452755210409153151959277227193485784181666739584252767831910948163719885199033847069296775881755513673094690151513641088598237180733339056800884681694986151506667915389975695103098176122356320914639481684578864356168736704271873991554135548354606108404890729272349314430919922349286433329542759728258770685298021355072806230907798361561335609470220079234296794434817866668057564051539767405737040566896073447620273105656655757608496507099540763734293602042508933214203165923281152738168449871219651815426438692049369172586077992318501433561072713849469235634519430694404305713642321737605065895279648385379575089304341354755343606891805307331594129541844849815567192817852057897803547495786285250198411795548856991552081936106178900401173930060393681635592149348383174214377221253092624012817536184224745512362914080503882397458863031600282270034872516923992277576924997424254560991628620490454925445954544668732870006921242928810041029626413901227010475262765316751208490172112268996148334897622883208120532510136729386016826836216057073588163568472298925947328244750705010778002821401800700643722896393130822352078076651997786540084991810812028506523746911424182291212194985877633707556945107659355193410031336401016259251083310199711179061279425015153548201901626005695340029386786269844349313653481433223465407396422741275521137763889777078141254628330246992171257420382434658954243270315839135410167317910975213548610297329847191680122565818201906139635661514475247864303944890659951690635926177957343841878210933126448370401184195255217120001059527488423577823074466752422358720754549989454070702482492321559148448690884373783321419908330976463140300016225708588535583479598266271789805720881033194612638789108078266170571178427429107845935009826052842027874942716484995376816482958723187596698879196738255862679043705989982830933680388881805786387133372398944376234693727093679396591683172648850639857518636567454067793981781963973565362534642157920256914281571929292990977226872504651796110219673199136124365817562937638112110510716041694135701245553499415300075210908107120319490489105082902672338637596266343162307489217478203071080536671300231325135513712790565888558165317102039460718156350062416187413376871217194148802493840352604407730136276939937335528636567905297247447853918710785522541130084195808915835647889170357823323335760732348330127533935735620156910962807791184886610496969999648055869077537272825462179150091089030671233921823472421397770489543368139639839788627961297151653513414584284350112930717342461336157276290456500060538733457852912110036430254984570808454546437352472773427054060651018005355317944844032139213470999522530076749461517936894800077546122801473411939571699794195718086344579232710445987023157782385306437912783390855070734270080192686667440992172184427546196216128960464271468269209255857734298272856784927058406095380966742134767030712345576256427110463775764432551919270274428369560354432260911538333546261629997397844496023774069145908549429872672987855996537045404559758529690877957941165546911404200325893620661399135849013747573526920806971024817495713775937934057003666447368112426414715216171982311593233275608444534887201542593110899922773764429590578115330112279406421858436062424693009769551008056034793418567593723359498808105004904600331918864050461726678606354766390302886609600529353435149435547427939480077514832433775195067386792170394614381653091651148893566978806323340141077573123486342265901101110647963404130094713835211051721297122964336717050721573319469772811050878858846583693833121920553347680279450641073395486206869744923266086778372967371798301354537803880065677954849441249910876235785669240639028246228123447836576828294775873461402249792079904182412218300376084301763019977815201790945746912284765202082780018313899957205112217654945981295461967301892611052827695625932448939891483686392240254556683156881676714075571383372418153255882243279969150437137849757147537231265656124310628298803510599344160937003093802807247521595919185079887980577875451867759244254644263099567629581717639771112505870543921086582704187232844426652056818583522810030085753907374385515841324913502123844726953260652177059856347011312285929008793750956123766078252597430152533444821514577157447045805982168776905782706843119454174384180590357866682472683586520314020489251215741146383719037697022787022791371308821727767706769128808538813993428130203671606696005715153175320662379821837284030412356438147844151461216399618976713951868355373390372004965445092158079696579493770507239935276565926803720644829920824798839040944436442762884412758232938549341963028926316371738793327060008915901273249614268484455971039712042009998595877318779698528642071326360095452377695189326869348172480656958634195462151448431787508551199325008811900083094743222398258191268370026217443860690405356700647191582300681635760330822887027087679416977941581700178509071491973647970636878208702147531970177531411119714190881619713046471282887969820462414367845558359629192474183638180921461154829411154598851446600076645962852391582040427372356774814168947239041579403572557069519084561866195503984183046413473563978269037794548712089462956113997072873519023935966592753362679258213209901912754125268295337354102496091214294434664597021011149223800632381343192005011486175224492780479970443283187142698325431038621800433728848634816962742365638309605659650761975454594640734328049758810825803368962830836231820907749412229325744704789831795949652259997747294350453862546851272718697684017168196621356340683712707492441579998906894722326314774107611015589855819282312784184070512900717762045988828734875291885824369091932309793569161175796532973928714053138172447021958749190481811556447738017895039135488190407720200944681222117949310204319644912551269221245769116863863823244498449951130993155251595400454463626573969299862049666657335090628813696679441525023841301680075064161216998881029835116019726497799731840328728980965846581942739199404460867758244342073493602686927707017410045108186287020270480683922766499014918170999517567238042349130544363686735945382905956428344633404023004765755513874893079376477473194880643891508935445439926295810376605091424598717396154660482369777187854014202156550710878577815160649111165708298122452184212003581750687118706868097646679706506386296645733746525957829043299489704460464110408513548331240704616826836587784884539910523718321617470071266692365914397791593158831851628676026996456522005111398338482078928302220144364893684584219662517804400414742558607060609431178178011761990184503050764193215413132118688078868681808930581515647433864831619340691180926752662662390014414933484403075624444091631645274794477627976042970525987877400485682966387646881178920600492920320862225067464775277628496507249392990481444127556448780922665062815601214620686606182591968396279172856050374968763189226242382228985845715984228829197410129602265598564718164274119299751762780407714240458081695512116775034600877070881554634693848299560688312349986776062935617294588290895212212001502370926627641975184604624851185954640903528331783451810523213281460591976728723693748466521479425164488370493902750658261246485364526920433141572369035782406838243939171595499713181315820154386707616390539233085281449555048354793545990599208455236041563470603832702910922638668946250831545656732029119889520328269566509168337131157405517834162173889233911733042982754346864363987324456381840658737926786463223059782436024485859623660291283733645546837703266187721478649817675524111748956300733878925208892800526714692811150530936888202927607678510552167235098499974297095268250529392437347391713830574999908756542679473570620829598578355474914041851386294177703676132131891098660450658841859725734431402829956236686805114800553286991473707455476940847087896104537206304964287722274476686990285092894309127982247262737944774131637053095162096594186406464521117938694428647380592108373619228795938990070610143717301272012359753999880633544896085182161329895156868422124592919539852973539074042941756721436410578957285061644248657749554028253153402493307123018093742904051053294484375870454791290345171994128660573403839771139784507613326685495041919215282435894758307734020011279852911751064812508456804020755758304909513138565595392673341463755177746602656138534329442263296608345476682469008756742496319790736736668768197950697488219663578260544562079338522132145359942789343012097337346350354532152691424986748443600082192598596058817290393843174884529368881453909152004515520079977175567254843203121158071624737709890773901347429009976050971944847348670377528952742181903803287604995372895584720016508725581524960332404955547621078327653763701561382859230876699732632618770844847219207505526478144291617858394076985207836918213843325770706895634455908714667689442239401679643602662736908837197856968902612417594063407376807804150102236788255697586773004234873180484275246707044124962133955790941277923941724425897857436484892697846595352726919552730994630093002906292381693538553551188253305105187190707995909452222000973606245245282477620622809143315952862335878646586820963619830567905696588606256481162159059562371194627186230790509036775257591324663775909157648312933589046831847597437212116606349340389334242146909430973860456100078776147344978148681944463851949927091177792399266966019403792731079246473533046473682985953535199899169399581083024797422716413751749070025969161004930509284357956590132331978779977860806322293169249560419251181293825500426382008575832452639775456233591978915576824749848656139052825052426448604900412988260521889913215257727163198446045538593182309555973832987478935019484483771084835355065001146043662827445816418231478084663707557112367221516784321851678230942706661456244447774687535457889049515299732376247139028525855197480330410832943195041145349057858671380586937176686418710708232230239727470641230017517711193851741630248689996542687875909511869459215470358619862123929159152918808087149671992700891648607142682735323407674109887046859557174589398894883585870502927563482597326248822663371279828296280259861063253440671478556334596705217288166601721887886711577336303973849701520050168299603683768977359168737304978861761290196580421095880037626060224314429286255877809145486510173542452413863156224465406994209929501383482244422562308196492423415715395251894822142813946482271302141833530990554281362191705913503047293070873785135796276023523577287643927976801980688981863178028915081594936294292915303820271581893733077412053815248255061878048713970734777393455260283406120702564390195011332420938199794919921010009601982155106797401730845676567574180537794279188423890127510598013114185775287682717417469914696958557748984497868600013092399336252903755295688330436773155421902863429024292865748635030724460196833920927770182532961223481195559700995347603840317404842455219445884959754696134578164846366502144362689677802129257166135980018488689880011485194244131676598137448058329988226550312340429096149706896369923598734314280358382812850807615001169379771101485299229610934043594087549381036228070791875001404935974210116904052055532807951266616905441337955523472792634722198123194363859667128207221913662157521013653137498775901522072677036292140446283750952073789761108321522368922267068561383236135232847072232796456740410839768299618566556982583269621190664493449134882387990811752621382798135730419325985143075514491220693996242493648003641296775381925009697066045941077577478605243081525263455715672866444466631947661374546277254357434560613319180311924208338224802171161031527783137875566283974004798151256009376229476361416603775399737606813915363465669285842909433778895094814949773116418133784101526043472969305631251109451200556832431360204034146209314424192270554324122464120899310065648915485383187746904226412652280439852640361024676536563477654273576530999414021878915570853651013074164247596553439988844052152568399044207578397157745316585179814423483703024956700960263282393991848564756564938743569583193888922003823313818636735210887428810210156612825652765457176881232251256270715023302949878052919020842662150073986977606926911752915967991758006188256375640400124924639312557516958070432710703612768905887938896992241086200645955944062110357687445376757013487583944048703631341427274013387885704541957669645593887650442708262791979984998263782710964229835803993984172908485098878047590342201188959570179605429839745612191345643128638897416025578592974030039744650400046497005114989670173580659134902092800086576820449014370692399627194352761548630372649728267574647727493539023927837741726595951525466874787068772539907987345247887446009567610421834999625424241694981797960797692313519464713630661985416734358692196182129629058448787748359697002487982046402726780234632516092017186953127072877432953283964217531177414631190326348563364217605538209759061829784190885013233365604445511653874616952948987105366882837717312189853698287902767410775905706736293666976938882920705500713267623368067375175206281199583958090703034370936817732426214179214280580679494917419936831960609129006646092001947101833335929445473764340385292537910352039068512051235276034012919141526643003167892240954616693031123258683788618084786036208152953670161477416990963812558589280028452685168726467988771115288202381993116031862614840119040798770534937809663809828751573052517016983603332674067521833538738662137601308180050336147563566997069589750598157524465332076086141569689437178938988435099072577636261897243588980519633576566391023266144339073218925292476617160546909057560532959616204924656510091423551448258825279762170351136660863576736274148624898103472739813941984305192411110408712942546431092650097786166215051140656899573781025611677376520926330168233315603481845702606737715791994393761303165765187754628087602238506352472189383568296271604677579664730469141871820212693467459240741777800345285122680962859083000938795321189857796834844987080005015129632420383160100124009545321542944073652199615253682830000222276432832641227058270450518472227245357791189164143077590969446359914035472802888908634768667156323463972273072106402995399816766196513757673392687449578094926807105931647706563592282194133560528409601400796904708196033451680850719518651680665440826288102598886680461716485590867247729852963167084932180575644761376662050492707285732807594271762107605574231515082792651105461601106898826230253642757189394605509491974618424903649860939744935428137561434764214366788475966514850133415223342552429780184173451184597178889642081576553020858450316197212887396827385281987645668172444980124738434878910892658707375680067803739851599612420288656898436285408360382268833907470920828557119594350510649356916395685875532521888574417194532544192599521700783301144716313874358349512179532373228101055078266736806926200960984417297338613683943930244138325277330581339422454727101702592620975511463249560978000801427620146015679162553895462117219749246038614672490134045723924739273116675902354583576492810709500994912951659732282319649017178549585854258664689213730588492483342489202103088633544803656133119905108266901276630840792465129146783033276809265259887829733282245729252414400534304402375611031913701878405379695579569109340575594913628261261771587401373714026919549945596410397190547634266325288151650287480992637940645766452007598031482764940897877328747582998858505432700818597811969256432002835076150496463821290329818175114415376496709204141440634472502368542569995626520900848737001185487537097544287226798013032209054272323313267655168339444514365537595369091952192927071913873944768621340844243544852382391423211611620878968201370776121093509796281666819356804714467154799980131244880793267836096198361173007788210434582650407108545867942394754535811327586551897385827286965908184243758048705887165242330880786400543482762509420592813271973708749110175509827104220625307191210645500854137331876645110029475040953830397052307623121018591572401648911636597051029721425430318516926025359016670153264956382391795716786323642235882814949392549134098107813693664684741863846661096818537558009407347451983185768336610355221768304833353893987616930215449300542508871176063347222098948241032468906482978657515541913951967567804546649294509964054923315288603412907927705929447243407694611829309516394882406249858655418630295897191410459709143605191237695018737193360574065415005687178966121551004901865654894810456475277810479198452207101066184945616238045976419628979392930590859993426907995066855248850331789106202979656308999547307211179023979969204143575075868516909097050857393062097741183696729749297045129593032708335130902467997912927386893113299732601761811561780253445422640990126704631286065393935381571372393389121203385216090454490082553801478259950816484320671797633843814386732561308126911463230042267325460364723244106641448608518303976756296474828824288350831764287244878863213980939048723412962173973755577053795757606261887416203339402648296502932820135303956209269367979190284979277383096199595184180401876243857808873768923296116322403058536841819846558620517399425746483037839602728662353270457059179157037075086273799544033847416407658827156097368363096377849241189092867076772481531821306365580133032869714342001150029407926320097716191564107550043754897503458519499821493073252219766666951875125352736604868485178818121008954273385827098449514739882126564693961728009369890982382876568205226417583375015732067869360097993904607464957201463436861432943972959263783013324831654568827838691445130213134898180647957243017584531168457201160736695809265518756026510851429734800767353001347384611804825390892373651000134410884437258604582716113410336637419095326470495173788841738762104117690280122848499853941950793739501213932580887903345637160846325779214676905716976444284051423812259435485287329496455024888383355128588204780302537123520571843274687297392570768271016855024510338962332103161212300231506544236070077676621709731882644756919950281770870889304067490509838751298657573767632938493497851143769595016083065448866229378915647119555438601010511195162387194763996207822538385405792989325434327079366663342569298236957790310529525827536946543641339824601642049314875085157940794051891201142257213999354471153579872967686475045940057694384988628257474897249416998241133659149738883039817834097172846878588023826639107880557982252937126391734862826516114962048152476568714496819302540022172657942072486793283152816186261575116186595942232020754506289964832878329472560969973717320187769317896985688855226195683616599388043952440515416926432244774948687314894199868238296636640366914330547237425625548487139252211383911352398871959552646652675506658913627122891087993672570421584413484943350374074429715959491661294002294798068138554525476953503568350709344308651406495140333755010757167109805512402139986923919874289487316630045221377136180311460323424994565760962925225940964524402078482319583385199622365001721429780982555606130983774532156710974191937924899510562731476870294480565041370538057599994366710042005292914783230174478355823455328515738715900231261030909228617390611200672380976918985317101421065341039302000661742737019794638317221751795201395684927966780820710290335871823578100805370469559337373817214735592239194878605522987375358746156726283205137303200185366784742694628300370026750862022037257293728553693741362936509060686483803836958462596594684796467339430929720391099165876363819664524152767765824573928762610108760458341216082368040632994130693256608451858490855248309054215566774380246139431159009110618860106238730812990747998550595056052826213745995204537121810156037636223703289269235577466498049783465683528557008592911309275706780632700360687727645590370135002076040073105047943540301190600508293283519416635381052759063816560118690576279111806160535767738670181443770696774182395322129700721344289045990569265639606715443415866691991727458921275591875204886348668672860684623953223139273036823172449505843657616371294005292064324754158579303093364057937258535948844175714100976403876162145263476960824194477547771679719474551970893656176130471262126643037502196285650346289151891138939762143525255346480031145057576888877593447046418164972727129174390413615572827504175601568017753487874309171778429516259593942418062748025012790243431968545784923788510109820978290516264480607251196651433211327522719748385477115893016172023185374350814053759196244821447059800898523336102925586778672020607569091869768532970130620546936735554055442182594190978311586338636774735307915601939478487043315406536793647713522683829590775941081339507275293196482268913102738859418513240260621806844233004858522185957315963807233731610779157719152829279430470723899563202318970671501807523387950396027738050708350564192614095062702926270329988139852664380023704738308129206293362841728716960863022996540033279290104702792591097129998361853657010588055783597536082230736381731992119048026372661564748882795419156640441026871628407937224582207407544488250602703882755402575603771682178644947931854839272075431745263445276193488559178313565368823537218947409017898139844909403813159574614757407619422344927015249167873931035179647595320524659575600381183608660970366385344604472224181727594653511285720959015564845741295716691377308870000684167144728669317600666296984652635298069059253781936022463107762395290902518126518535434182831845979897197249495376652044950708055011731452726716112650666956704892673212656109541786279249184273052061070783044728132217256810225902579023245514248075394077809667785332896867883930629856401808871112414235949913332548724707836755339005078953900502913502455470708234780114568233283883550870659067841507433087664991512320543546120549201166830605189763778171739654559366630724626643731175483039070126536346653290262484564570150920087593115175209206053328447745621378244873697342663835647600997087181855150235139566898260530660773806679958945756234440325397292504951268095881913064044065810556681416637153539046528494814710430754893532711751914211362100367727495984796242993305656211617984990597008667078892568458662841080691868371763980147863384888656290233704698744613806600428378719908576608334636582766725237457737926005533140134372719579837774585359908029859096978702528742002458667386288006508440055792442245092010183623465927204554231603148362610081377499474887967183480434080657976278426258793908787336720985115226396245565655803222341645339986562370232202549255001177218486571415678292227656391657530458388403891925653345986952742509872647656946851526220584666085877407178887733392315288985198650770154514235905483530877617550148135374405151499660213574445458634983304113270121907378987462664076338919592773756373419555074108479906648574255223137288054258176095564770948381975537232145067649265793606754621101076112376761580260811554112901591164311431077189323050449625483031432655284583033830098108482907315179779080999098566659608760378793318800979519289560180232390033035567785282090252215798642141098277359468497517947628992466367189006674344383928856440629907252804567195302439415440711840901526638259604788289759475823180097605410094677286317220416822688503242114320544703846152644826263679567579365349721483976881863505895410777064510012104178760040945229425392457536532966413642311863479660872074517223346068081301772539060804948028219171673163867907425934709330346526976634199297033157678476976975879664656397484587807265481519977394332890976104272841130893149117876294010566018422302838346839571550454750137772657428629082665516956985090569322328234677950894784088662171397111827385764104636405292890551096706568591879525403976404928308130655211183628334583972336852853122607084683611652610832974943929966085608425999516638036431090065185225079724782219439222012795323688880932520133443655437657991289070823634994364377300988351207029949986761446111955849894561568499938834169547081011555425654922504886022630624405056588983020098481864857480862295001184998844220047998036003866993975443674103978706096103651199972364258165383787340257230026467631074727455279858302894617578238209376372511981262791948581320989423379832232898578237016746422531703565644859165393725173258752114277500711475044815128037397267023302012406846873054451394992278125973943928938817839927347174845170537353317776733134816419603666589823718871701277273238507342242577966342338965424864955583989563041399259842944951823837184051117186214542375851525090865378427244916493962086213522787857420315448413970774473706729888638815320470510925005346884105056564922072694274151679941888663505871248573189549952241871129107106063924630712498546428253804163374552598711216391885880660741532845895057675284630791585066250159980231142759418103055800509882262555772412256017911451343720194277938373813718975628529945801594767025919870983085558410681923052828014866057329334503336770768558584809301740623544049438633335497782553873738346682997280305459851925926802630041783368626593719450712682511821037253138355280701715101634376796917864043292407067701325399103000438878143041626217504795115612088156714538992558510222389599756143090725144019041947284497205482023603479562914125740209689230619262936848408048898499267441017901874514193989992342216557475157157231900832116596103866808561718441690632626677671276859992296772663126949984839432758960015811436429782005883883334778270139062811445945664085789015815101469774912450533722160326680350816995410248443431236526362440297021870012313222353009173502276141613862728757654664680298022676245263171732804955377582607443104157652108118399437880268105883455621192546077869229762784903869398731563718042578694199555620385931286220798195776961186537440247394067353886419698107541131451023699776590175157419586975370460319492866302939141310911926763476134257309565343484519059847540464283036744352139031675863961386323254754344211260699965550461405398160312351119988010709459452515876077914479165195072038312129198347069119726806675969756005606205076687244560972966999059039001833753479313449804599504551331412941277452525969547399814974539190974343031739824457984011640692248247864373305487481446861816748934747081033345129366656298017637459948551510308295471435276486738529959132241074225754593423174571152405815948315777746283856476095194117070285631125398647468943111894491487100036506729663456671773388241888344504480556191188262051753883906430172589432814092183208234920001734944740999445105481690056537098819678910685578255806928073590946569971739721852372846108471179874199270900219881724469511945032795093495157869252937366619096401377905277492501260607262758382021622256293093879306074331540981221067256074501335027940988413479925457542602596289883663589437869941686225535710627801042892551562412487509746566620461769413102919303632721840556809482261238861989304802351845268281574937772786962382278800954144214246480684238669760144830415999625455607493368639404961057441684345327366578078581626517765756741613134338094299938688967425964944263408079170876100982765706086905049577585654275560218069810172517181113347437185831984954678590471056485764019165776035041276844713536100374199426205898691236805446003482534684100179860758091139290903275607639545684235463533122515749728597511353868131961583379912009653993621514641220241703660568454750569987494448138323000426282829869447149954302387564425537516668499000005194525608729636876013549986318735540306408317824980024367208934250704081993913353701189153316581220322184226970387680650092831047882000992856821878599136135162049155810906883790604644106207432469666071013575384614311268764780670677287570184902819970662625974152369070978753522304949200165906033373487456194394915200096325020956805424527684996613052760876965311900400911786916344364584516023770137890151273882084115272718226402674898929700559928196557299450402272320731925152310530477799964105492257861813291490430828955068719793794914253633872955592391139519837924386976989342629944567369109453507065719378343456243218641441810049683145613171869433665123023275306152931643216736560560298836758698233359763445452118893474822431725024149088867263600143126272235569724410470417300976840567238398699554762487345059695815309912380769121831070064298767096517775242901882076458899634481558414344842905488495878788072134955923136807666568259860676575671642348096698105481114235504041175247045609053490524030227788058005775034357467428152493442075955581112088561340166682516345236929302542609916606538167685394921205980829098412489484795319773745750793733567830293506881063051269334709565921704531794452649988650617664611763451258622039104135977531286266123995906226263107367364538575613676763586146907776130605829452628568668138019293800494632929089393091744856192407535617634393374465749725592691264751481416416375280315393848460240375600408848534899733582910745574254692645426191409179922332028431128955450285795774321499154424109686464252460772532765566283361942125538397842473699819919002566078544135818700213714577337081845192298351213726534896858013932264327135162300436584873976739048710016229510235290886851158923933059541698832669696734349515515422858238435668034855924841989363370871012159171213955192525806715705968818762954449597580707034148148355626767339531085591520360155502798252549886994326722764765252255363158525238800227537088210846049516607345657193538747241579481072731356303695636544730277080508463705100264964048378573751297250270219251660433156336419529405846273833371359391969829222039970747602470088193165075120617138641330988132236229613204857405835090977639298704337078700877696794422312698800044989981442043041203311634142707354663393103825714847578696994543658521501105396072969523800387374500190707450094402342899265699631516527217247476011138983669138599029285493312524565434667978554655641950876774185898665852149693449271110714412316814401026931453916917518989414970636011115280830026345337804352388564085070388528440172220856620312664331684194503284342326347827001812975212696732621132111174726503704266328013148640409462127789214051594512189196510312959922305085693682490801549574675829261781639983646575581491493448820252738022142257335100453690926406976071792290464708073971648554541787023873888481890493465318412396327938540508697573971249868826885661482880511306959910053502154691961983542694548861987618781763416375331584263067489091379074072152105656673750862488141703049426541862489153740223072410855642229318572070188615732502770757824498189390171892422837375449116732751020888690206929905997133948596765430468806403389402865709667291999847497982868335386111044894198967605406353124134895316139293326002885422267908993920366817831055648072763842100961363648005042566029369799947177591880524263212355037312694915875541315725123520886002424257653028881358205477432330462270412562399334391114138136957438116966992489689142453709416183536127935905096144163440251371720284332340499747265458009023947490049104032650945835538609762178388109069336824281620757695080536283095936847558227040775034592411522725251346350940336064538677366146278377794781483773048238314285631813557022125608342891842504611903663941516748100802671752289180608845546956862985775342056336751619846404381165905416846724142080652101903947999725389585064758083897072954589229698252176934726132733324224812891404515007296527270176119292508931229251653916511617406613639303583798782204179551328680266215786687082902363310022919365228351080134527243526283684332131725408837095197284270668223854168747323060309935519102219903241796181175670023471199244925481347579792761699420012483873854912540379338524682933072977321036137859858786153025217748122931448349200135236380816673706175330127073227746716787321290210543804998168694835201506629125902337327546669113113381593509890413675862423488138494307921174717747729788174418365345821128161236168433621779482600545206153419476850249435692558493765410315967089948736262848660686731067246974745208448523685697486845097131755559117936453603269563630558850791678950288232063178325209099591633776746162712007324413798997120106436302029503905064658928828246360765241493666011216088812037588040300496896825441739487070112868491657414853211013245564701484800695749468918158212640636877491832953403977461014542703872379042592938959267039847988639393027085978997736025204950730187634679670882539382336879427207194630393337473081416674723131666328207001930511198992011352477051844629291797683544752931663689963646124852063067266428274634784851772207029521825541779647216699475620738875282826137955482382252049819671381476306172487133234319764998245757921871220160766346778718060197564945430457972711453735909724191974970642617264155610225282247958614909057872157701351306220042780605051569706871682783985210125513803294371574916201873725091971790174810270619482748318907196921376287925297971743772515553698342788504309521768868065693935246130740896130304375245989343827276984546676016650052229672775060854516799584281288356516183965422710257431387042656990536120839607353341395338331661347810496657503960493423964277451971149598350403024464114944669376384656987862189262061863403112084884550635162750291334321761955873453946565924272272121092544111388707346494254114534607058000746581660957677876624440316120009368703836262792698854171555976066884784596014326565965772698353277513238473673096504074340477274969226142331171850455698999467824927623693887407307197845162530013568435372364547218276573876492391170381202090510658828855728185105813458685196669857556236353121898740690484300070895659497108960351675406730956836574730167682665351296908231849067688236688732916390763831144220142671003007455611938086619219657800317461497485596945911805797216829960618460076759061945722659340638844885405647004250286622022126695113321451322739474326916143897645952242380524804004316676791346704558045333300793517037573169789799572364504603597170911265748462278001081504107497562388931882020474079753140965429085140078777413126916617472672260570598036918537874039526745769843704174674320010980791550577655745858230479321999942448785439933471443766246447842786353012451146272324324043215547806683069005034860984799288479019493859861186283132534255601256072208656461294234967243328351678592335015255478821496389161817513520052529516843456075232293016507771249296269383097814294047163695599129481579471696305425390861482676181070551849540747064929749387272831896322996972349004106449506771059769240565945000375073893953566662819864377408628676992472634564296377400211531904687354139859832401077367847455700669744983268625379917654589867767945788920514678863182199976088517769053089550346919298463418502949908672303715404817603625004773371666400447367989530392148816915203986513564094650031080262235108468971879876173866914493404693596103447346084909575980746095717709839697599347184806832883253051617926183740817258945244450104844154998525032482872916489576745810131913261982256099601716579794033612674699312689831739798239260160334180570294194497868137861766320734679723307671151829458436737904272936674567425291968862592430791095895239239752042138409446401520406701352585811595824132240351499259693315385047151525319423191165587971057250716080252945082116014269745267257307217128229477064651688694389009654052898212174118952787158046712603553857466968905581137933402221050397955129136327883802039503852996476764914686926620749301025615864826441148717871185046363535714658349915999625150604304418506042863986231762591031409722323667300337027212676067190409196172651040096856170709569640013068537557003359545063302397346346615359583774142238804785928406683169064760881917873629973324290025852470968589025476377493929070608095363437391158899359568397804029782963550908289005984826459639888130316589207963143265402882475966165089817601417286807974648353868988583359608506172839192409480096513100229881047165194244860335635172304622181318438845647990339663807879532507951546407143070055640677614032146593536268859281762631229481039558392299949300519779588246297597802214850376588072348816119216569274410014771982412546791183402204885596839615665659290640071966319104859519196105668004370136684368281599414930448586294330499184921430479944698362532605244805523557611113755745232322551055410366179577090340553064060568132244827675420544677324440352240051808526577586682565338888073812543037165149143983102237337754100374716488175840354643075555238835130855315634595389046903532561050533103060914235261210175168643390613021046403923832229053066926695254372938167720611278618682327130232938506596577094037302241200188580274790237034456215464842713990747434711158407517674627932685794578924597652347227373641685661082261526998020838439221309077584386512535394405221018588451192399965725968064609954589369634465822590938604036083012035367655812732294457296407877142594670634176200023980805690977931346594927330896081099063998589217403527479630767027427339835425457420750630619141896016407513263987273621136423446127304289165848172070989245956857839413433081769573339763832606135085120672217782484410593243837037657515512920953753206648930925216990313337471256313439536285729177485811570246842694857852057852529776919029094231143654069484513177949193365561898164454292233294907826116105247546106636339702707716567098893313173647063239837869090902996123609857692244552750889760736199088849426226904105463817728342610096736228243431788614867257625395774347703887215876100013565205381553982360962747220439252875610528611079264365020854214792573940108685117288268626369156428385825611808686746607025335820881518089230181237190224636402845291682101162073397585822604013948943398192401374434412850987145848175502844901954758511793350622643957022456427029568723310110451933007158214751610389660815864429100940663212530863651646917090468502512057086110930647738964312699706053218063614777137730923215879533128552829400540058300374311484723001223669274411841095377597555207383135654833134008221502959655816647597539966547198724226101923431765647807261470183948588249439233263877071822097176948361818272167499490000558038213258948030390607759998507707077815013060932297644996478986378360274934292369890453822683350981980147813678613563418456749669225317249857421752264951310267597147242760366097243718024282434200386112083043104555143378120679428580902764320139009156642104452595545207407644172831491222536507802276224101541765221164697432701240609732408796276297450731869105298126288688522958522373696961584854166442767102988945938627699173756055340884222367229612685665597466103068343718158994791967387578029334041634142211979076779580338958083390623885769059626878723505120777746391322979418701942321595317646048776274127981162186568429944342749522884285490630024643606258580990022333467566853474402365847650281050976319197699393007207186219900511504655847312687581691296916201192162558176177888231507023491632405620982461568654552753452341328806384014808865441236087114142063223252472719665163393095168258295467790475833053025444355368714890340567905383121138585333666734005693182578254302626808875172446612430112817054457703771928635303558198865880610811718927806984015749723349748991836321762834496383365699337741043425409522858355951505209998984011159299778922892831357187114107819202065074032941099879925180278992680560153494990152059562731780192346897922060753833753042509632476255334291521857925807436713518702220540157490898723680718120672704335005230108768736708668750418337819547528598398339036389942433900293008576309739085786233541556604297212686009276082300614978293532203278250634909361971662322393629724429127420376462107503091949372349528875852913008494435076239338592240010769419835716127615786601062550284781078109188568913341803186003174041464731181357464459549011596497390577209110614198571173094082781550602423388490207216443097645032461153121065532419688804835049330075838935203224848064771208574848654983594884032432477116642688796060675399804759710006587706269860909377042626251180865031838881005054500979773659195886801370033586393056041430587280930635950493634429726935117657507561013997865148961412309984692956610073158960150022161659652218161893181035157236587199937442250649646026786837975228355721429734587597807779248988436872257343527228882712764222796209441942637037031316478651173101416155058872512687892372497762042014214754133864171860248082870966903582415653581676823593786896381717112333321484998566979816366733431187703042246044601696848341880079719703703625785516486765711010595523213616015806658339832177700477914245945562119266642222862667751854514405507730257853374883571357696768203869222674009223528619008778701518832445178737124543209907823847479640196784468170491503076994958700831764438245621856729637891588548145093488625648333053466647927827834240037545103652852990784023489949091461594781728922440297873468028198471242978923391251539226463028895432856691789361135733820078762212375951683108765935181982802688044516583836367041734231531938667561153940998837866607350829290365189273820328948863683037625151492740297653809830931566929807210152774782357635970398504042094641935195852984697962154375362645986338892450732143265078071015095962268359878487108620630911710765039113945546078111727450834900071457711186213702407614117015773622786493254440554069212283854296631341333243355306332881448884873096802777551823910766272230267613849625918843906147594015047897615824178668203639719673091409497207087709992342387885813511074359515817109044277531536129693546605711594831211627527951393376975880632554612938058078652558078088758385665193617713530526452390022882880331050878285716921836128351976967055481053701950899584600785445435073554215825754708222727042885131863666377798473633471821962094743042038752226547791693309138772645656588115974015901796123922455703859876532585359443766848520833370820866695039657358833242714992991923335949702880852928986002384649217929356498098184878524437224300989951530579700753075900111017394132925587952384284715317534126733045025019028298647336314050465372666180439083348032306494449822213106119793259508266925507942722569024751529145220340696834366225971194774535327915176542932957469179675389504344443857084666543914245419217582662521320803429805824516040734566101992021155555171974488445151236784063756056649249298529706367155264349828568949584241320055965416899900741919907454964950078932280066939852760095610864986782812676219391452597130377139676747185492459729598910444011186635570964640095980578827886201306001194965160435149396290589948429150520382191939349019285540121107076204860342641596819013457834669537835298438528425552384698017801782549394300529239010341614251133626730650968995559546018504563665960285093233021547352679357674286684086837523482684829401626860188899296369640695700970891558877688617422619938912134710136523254792621056584616814585544737263972013700749359692893197530152999279381686731084992828826054641007351019038777297483741302372552662125742025994782287459054693835636414828967537378020981903614027341579830950892908991292529927525226382709870066874516385128183983932674302172032919587415093453814002649287928350371204483143082451121412184546160026509891497003105090601487021984020757275759789104096125314535991050105920010112791603128624152659148130038443830634377558393770840429846847596971687331433549993114825863280142839834157855691225703267429744200705334377971863685449643641245879939795957129609955192608271407818477583004500578484729359954599631092536693699676549857263024308200186995488878766245742787315774303917202936753797744655704028246321335651037554133248452412019837797225357664312043462352911676435023909534586300090118788521170097801696434282413864274154832363004747114527641507205157945850481954024303939416104140048763374707678226673442561594468171205350478381423774625083690484294750102070802456661009475582911002495804773553989221077591437465616776380190543587507970621545690156690800066289740756292256486402486160136664041318787282403538137302312177579390155480914127014539941962232862919852237437044067625030350332868779097693494106961253803931721972788363865111490532024774608994792550506648407035533060684811426160323080803062466325271305053471064593685082257079586273794543074293436655140796033920843997615392265948481944298050871484857844173244738769562635376851993283823055316213290051432550450343681382272667722754445174034155147840224804835351148618538241995805648617162770711060773979547088960840893280679338259671458699429417996255600128831412682537920882082053739149584898827054937224593818166661393892290410524538745935423866153874612485006514183914039240724480952914092633590825535728566673910719039877245441193755497737948061562437603608806622911298641237550786254918305901694679455519270604128824154920819146674727704108973882587549587285891696531286807214769486031458005519228306526663754331157443108687982486355772575506815666808798614683726457367810211817499968805850148962287448701232055104354375349515913934082555245172343176635025097163103172289122545837224404942808408690990500734314448086554328118741302595302079105163830269187957114764957445452860513286859720555914928276367678559097920807833635676643797860681006257513908253121757267410458776066570019415896756063010657682987294926943893656422331432875537534269465400942553891887847344353885873977285229422326630412100950237535237187165357333562195366864416070027975729501588105965791550056297276379726811196741862558376055695036859764934536098082272712549590509084233273101794706276087069625432483732113241020157454474610743503064027669265874445363100311157911495580290904022788099956405283981848319861723846125954284429666141604883864556388323513186987661693252255795627847218919366897066472560124517797863880382933494556070303945561907477211170774423294671302127776822519602188300817620986173788582470349302822869420330224409168091980818962689321560768740447273904892284875414574215423460377211100719794800175388805664509614541212729198545045749545387081317595388620824888059971835070385567909664377762996466782689767004142069481891235154758340225205626943227051934930332780727518660153172364929585972434470216224001222338256587535382982710767040867951054493359780503404337426366334758382829339298309578394853240301232198261810960733803996846269750716576668981296079317182392768004051832189005734448048071475882332986511550809225484352524144597550457342909690454014229256648212121677826380107573992410217522015824405591092846025223590392513319523567348040525706946355693807440488353666067535403752008601573624761625028035613492307224782755147770168460827369957825881656417414355285472797410967277569484778987725844923297212189153743553603996637667806765263542016891429942779088507200357052164199597345842061391965678485240672239841011743731181195494412546824787459451102483109875125721795327535488942424792168738568238355754100003422768660402263915001205982928684742783200338130491161914683041798503074323043610066237733280381618279422135658469118201112026536121036326656163183343182621092993767357722783604130480354437440233145137923422177219355349444857908530095753628958888211240571613356616099179775345325571240580641277365632065660850986811186410324526651656142665136431989951207208213424884378948002202349146340149287408410306089517721858278624646107240889169679991598537541306959767955367296026910648444031107775285506048466799759193189003130257186544509124578192817236859099772728209768328582827284590437588754716354486751363957175324179943763232370007656780740224083088547098241704371176282742846689415808056466832535084978570238906543141655016733183036580288721657223035987907611591210155036371983980738652231743635510368434782081911804689553351878687461466516708935295601241101231465221490928340939540897306407914568395160875649302263873659375311144406245241284482492093435631517878604846878271993262420390084230106850558399985107645188642369760591154348487531994675879301429464021874604813859651227654025217081827793194185705589774525099119509756666182143148221997842141599123633832937732924587412281413001221156039086844832436354985310862963576014444370798491658171561089372919137724837895555789169563009880440200588945216004096234252353915658327576872227833719865512453441663397742314626403757287217570247128252223384848792431207194613474499576773497260146751157565864515766567159051559005107217170630178859414153757395206031373055091144593058178004254776793319666790681988875399455486232473272534842978234861158521759956364937488048612544467280318416879531229683014019728121086505886960851892864756801528723214824896664972290945019016610789048772031056827203479152033285428798898011360645689340462871242175002624733341769137017676029041347721391319625273039680203430194781788851698577093341997548243219773752270413504629276188482339437372763280954885446816015923209241752945159768697532579919817711359083182302942438643838027925122805137625498799514500123025761838973514033701385940067666609470203610142106052579316445245416061389265905604788269955108824447258279168968571105680893572410137462748571842724184892466482000283911695531324761247055401528014714931293229593622482039020111999446542515983677159633413567616837153286679909186973390199004190263834262900591815749786302409194901558626683811745636939035045644149046223761984352509218313859733299975693329866295970262716920025944172576334166876538506383623828242403200612852602123942842628264606440275151374453401095916624491320522313869388544702547813850157665642217517044379010625532866513672120297249914779024688636427191007629986566289516831490142642252980419008447749828350946587740310215770234544363002108738618547727482038076424395572256475387029449701851051288165099731976610688020027252540875888643318875914734629603581405631161665580302758614255028565048043756423996044828894611185212137088774959284515188624754810612432013374698355225773019561372426789103582181955875844762343280104795921853054001306726632281485940229160280624869577845129350137448496172141533487809319864624519011515983344707191179625558866639258651559694094694653889827375061779513784939805370147947170557230866581544969177822243303794144735720542134400117586486391205619325183989241447230000079883171808810091606701668673297949887237722217235462427423405532130420712034537376141802919563063603952321562312757046502769791914692650038754482112022602845324945399186178598933005903302681715738779008893620495190249300490309896323730165090938336761763659708641633793029395526151805683995053975137022720803732648941837399302730738082213978766386894181616882462758083698569581677842231910489022678736514541733397921604934318924039031534851700526583882167166927838774214402544670467741954596495420810654754926363059730917798983292763100274480260415507919974529435375734696923829365264570330704444963993807740823047018459952498535070967280715271869211669575866307109331802992611398772443132080896147768396576499909300526974214545084474118059927978957941463768148859967488870369418282637214597241014930979733547606609743166710888567122207656778894925377339641310797565214142040118769957616254153784524992148055711030786744821872175887176951774795595582988789921942473409037727710350214646960500032462927044707107843598939935765073232428084842313511635605063851350729530989144342790972859140949990912405962055742957273028501192047698625382271941751408351735608442215737694087465951535436721620913430426855601176932205265908354400618228020093821798249580220467587482534221341945693588401615593795049001287312765620148623043849633174037505797165709026931850368704167167157269579940915323507574738808203745607506919792753889888662107065653625833227963544386023332539693445327534502027497058335618598724437410534282267276361937247869514811263615291781170474482459677030079625026043312539123259014435137109928246751246607643741023738173544695001720844958908213846021845417147367584499565665218782612949242498904159673724925834588888206343763954704998743600568820936720676795039638843067039505670479505992044538831728382261217056902715104443462695761012045673910618259085262290814330491411901466284823941827574588401860511667072673008155521609094788775785700745505278807890287652545708561327676352478058260386059516034804070547261518641037765614061683328393456643229930582483718839926369147403000575574417629950041227205847447613504922724698737491951158157800874609124709760773481512690439992599844387210183108140211771903874450008628128906604504062359109260612150742463633998857982438762099460192196831712224011524447580938070078401743483379841737462328480198806241667328164957741868875690113141335117672320401236647952453776985350828159205740691426907132112030995887809294893948233988699897801266603337799109708649071998498863464345786288098838421949276295490424243008630709057949272938210737070733753091231402202840389246339575870891540897064060234386571263574576253943048162953175973348692882352699105566870334799479060916680144499504891241103397982154004694405083669907038219646306174942382105351907264096090818683583791171603203686814265482071350601091293745921187971923490836988753622492043390276761183973197704827600437195833144140378949483702463801982418497084511614158007452009190388870984065063602440190742924217206808055113485118905797138941603331541440596859560063955692486681398180161790512409776526018284587551336643502561894485148362687124831649501709937278508588637457802142416326573456766738294530665672195703111530325885977822695679515423525170035814805466088554876942909593894900679221613272992736546097772152852795618127929641019256356997886174103183041401384214217770289959479879283795429731953924712240914069320884178999069755587713280917703324833852619391343997286093247569651133480826253034614211660711295985987608898272666393703165313138880347400974659788078642924493093737070716806054701931773165723744289308131875676917902408608485684223817217908829738933754998450856168450222511511104940773866860501475488059500204212389629709723299800839045100585075669893231621822626242212550985511066447004211543903695701547990854893519802800074308371048626717690617645621943671723582198717029262130875746389285926562370299716363781036126889302586948232494801419374147311208105912229688414138981128952913339720519639478850037762136498544617668938170645318974513364469023836678295104556563019908656161039846482031860941061229274023574397505831096188514502562066437112143878976716645342705329946773912456090330640280212215020325419948184933303986486915110471256708716190557794302872943647020758913465536809194429752570883892143089217190845254981153697194619661627283574247844447769807755855185458157603975998581480378500460440480663098900148287241986742991803862996383145932324438122134565472690885227279221685717940574265040219658057516289895836664797786383795086133378032666404209011459388960205580096049539328023688295146788848640769593474551317565019315531881351597667042822801190879929077196925333904735063041237429284284930902880319040998203675596912797273010855584863926577720906424386238815741717871414134442516063312437140324893569405788783324536336414948548422127862630848059836819258331503146446113918479575405118447032843413239761568556610043832800045660659989874613454487407943320562112160402159162345108605718213742689480988481298165398021617483144424626071825313312534142338220644492886746838969771131792786255884303772176123664414105094872438507870044151716908459160633896174911861479657568955639112357536941146160267460691193077868454443719015535919300394154062518785246120601340082998076425818543764387878861261195878396968390772233817881004994331920990384681157466938784300505380838132506441979838687109558926305219753447953340944350175244845270998752471141383425957070093215881918169989001083622411669016504741181841808183448234430011638697712383103711540535222875930135137910255652132391627068208563052969824803228561762227700493476674607758627837572772684521355113067301603668833253167987930457295768474015111435587886929470560871078624634575657166305992109630595391101175315622933819764942934972289331683300509380676066722468816826709078011520576112300892799387490224789714316800839162172323408707578985309296641310518620437175806236466074207017029885255224253696995741244005424904386449564825096187747096778920385950773654982620168050408703996664197365828817174331577996022426300320848830815472790845523661542745205318479416478095857338848756466987446636719777596376633399834526021828106137618651854811037563756347005211728781668915706983525270216295229267952068166160812012661626113102517903190355900543121264801455099956072106603889744655841857547712421473313359156852397918181526695860482674600567796371178375180140657363389663666660794992649392871111104819042036071292564492973023984150848452255355638104227227525830863429793909316329721122263415358241912711960149633287184719248081712677699535610084908283503541003308164365677901096506389571564674565967858815212511435978118693414939545082387956128846916927552469478010441602610390750403027326897606663504223694743026912897182535992347269344216030290166638140781621437777206424857809144119150236958607684248683669407799825673337176045597162149027453193644644871777957777905895890923732281108525585393627439100382148086759343870610443910211790066944965816056935624761789241356386450745686168480643887214668011223691378469992487666422143392951628589852443363972669165140091498289664295237588448947620873441774937763540143619001357742282720594030769198088831113302588632087937601047214741495554852478940856726824444736749702666334587477982308892736640352696838274277315290666694841343555198794773818526286756303272274990559524476922131148825873794942142018440277476115821417830340067736438088495447436607704305416922750352610614159821546629668774546647619861009544642837071518535420475313420328448354881919931743402498527946114788703150942833482770957236725665139100615865299926864389286182830472894302183936966191925318410476211132975164965105648938111277579553085613857193932767479683809016324529100700784016411504946999036961675005018597719257946613187610721267477184933689009572020467063910311391757946747942363749921632177456967520112413174830862442584457472954799215292322673103059394002292728816518814963766780259225612695915192744213261482510528874945572828767432833973458642607331361759895189588121274789322733266644393647371178080191494700258561376279503067590275539132302323152448661640302345989451790327865230314642931402375433316833577613908309192765749045687097833659193232135738659886929467858866429370175269039513952396927857529265568977963027131014284624202046370527549021263717246975527461834088777276447900653487484487567478265904990558645473060954700865978724293930277516823838335718743954852675075605783469824240244952160392443457082971545625738522063940494598722890448520724812057823185490359017322875971940872744856672699749257687818670095641336699652711701736635850955917612480328110342463692015483839946128719527870098321579727465949128094400177825996496034774920232937650135931391154033065033823297630275617120853232231945540816931888821554504851609206150039748924245439092009326812103600779574556183871528409916514544654909975264316962093407519735281900838174514639286758755975442248041505448433824459198813069529992470197440940613345198603924000671043949701525981592579078783247423321311134343689509605808535506317917970753414453605727971138492363362634329717084373664804701164735121318302108836727829846145754479902598505433789995532608204198718480105907831155637667095771552800354214011525266337864793000776331028245590113982985128659330340442550231483136944989601177306352283908486941166363691361770902881544722817165641128182135828114302683125018451971572976939739877813428200647421414212649408092442305413420893763221394524063223893652917629853373139221468405859385462263964875639790976637575629655084379968818298576338844334899036995478193566659607685828600465693723153084989593267097033020929018364599525577851856701757542951045875468623501684129535969055934819607483877891565737262703067382223244012373659457061223787141119369970087175070291397402773978204308103054596559861419900223838402552673463012925709397016511923487523035101948101679064891545042932275829289602504290918631649078202992202012615009614773630689558990943135825617701079074526449706401441314264057165254506034887329685782870062439689111423492230767291833538352759303957496277760466061536519048272064110880357910897404327188547143786395953900820971642230849728751487780977088282582045669125238929915453418522753970514014423164317182284244610494030757987306813395972689566993594528469303965615462355780246721914096339639696107744905859383794854642116820964808712668042028150883542078780756216190714912216333647894923840861271418005225768263535247998694484982672301726988172873219049477635203589867761559291490082961520707714257102006285145734653330339533841740936287514047593226353115917815608246679514647562184776489751519263932698082764661281464465532023176487432040790657722452408223501614983836129058341632198762743723745452648272409166331363415672447084480234999771134121042196371128483391737565849436035812629845492390715078003521561620342337000916201271189911927954804734120729615941150909674055840842479940560725522115011352466883100760449285420372809349936227883134833920861609468180150057466113830287792724148773250604873231549548144473438099381573385142899237935776678545888179113940841741854772589292612382584980423051166708166390276768804199521375439017893068965950368709626674489130914971993814711187302727259604968546146996632675554660629435062718443346422602866200548577568396614764777430782968196459725270892393581961842226889776192254702575235133187633086594371143846503275707600226501153774454016889500599537912811620033572905376700107951638935412620728336155987892583443346701010968091617404751044724828323163585231775312885077497964709550560222775069473122556290463893164881077036095829608580939962072855647654166012980231749003723426053983840005452416425273040543583004067472277299059861846907478051374394428845358263501982551532324220484411978882570199170919806848118756006196379523602867464356050530277651958131395525072685179451553847063158043436874899347780547655872008749921044643374093988835234757971254859629108351958155727779653812802339409749971200186323685376593990174340017376244411868503817958637344591546820947439751830272632045102557911774595001572824193797238333430349992462090814897053512935182118339590096726782422072935235546128075219299074651566810184661919266377259992172554543902572842153336755433414090135362795207189342977734295910771630271176824028688610910080884286738173078717729742104667571813937695027040940499590796852650914247393005311142657128074664796300840387451629679672068636139366555792204977392421889160186922570901552490757788581932440617572931896153897798932815905600126264853887520413225870788206544356581610157205266026124519400350792918250521618285438626459426709006112184633487632048981781701381902936147873562811398390685026221419888040480321183295108907709559228936166910801732209585398694843062343278415608441436727187016009068771650955599760348149344126542504279350165935716923236037832150268502168235608119803915826400837449648020453966859075676154675290591793236783795093471754767556091191862698427051626677781800548163182871799483794660339645590963397658459375811188199034340666498650907204412876893193478752987321453575885378499813460325074938671627879407852406011200321754127025569231480696682739527817051090138346784101218564159301573062536093398116572075945770122382708024111902056526736171232973613360217883325887319835620970733594912569804202631082785356762030112521497255000676035792224000499799509535329267934115633558201816535569624429840936786793127745002595644577461413262404898256349565161106679964695621780332467977935202504560674414209327573820601969540367134360746380631106197738682637992624147356751530166355216517465636689004041659786856886527146535705663049256835089833957978035780358469331047760850045826890912868843276635560380429345436383877773789397309922033569890233166169735069986245407963879336806431146240500683752246987318733941128234806566436666606719080509158211390587781061431996811445300348551623989367116283417094367660053111766304105325345128357472572709222405176385141191371429288644094542840933704537815479860109188413306037976468085922017029410514843359181880262507011950526398315256879364960422663111139962304105008266956515442797250135571070988620476535296324139542367108419853713618257452769524890879123689080507154179353773546406123254448439365301065170482637400730355453483447624268878873411035230878947485846144834833410117685540694948602827461524765131685317210690413386007376378340962366227257557308190297317968352206039585479739879179390530744794331706433812148146377904815181726407873861359429812744448167748305421491624741826547645073392079633147178368141149697742555410162342191828336509913619583579363550551573835166662385219214134725873805496993559918550937858778018978702297349286303560161528529980625566903996277619134577123408534036262345117502939803019356596946923151533110681118700304318507160695580445339105614232067246303867520067093402393181788973501562595765088770727373026317953583636349560035216572183634535439565021282256086410003497989723671663186045254147140306933278155572894376573254399526940148249186968545352300560132765801564860864554440494850353189591225186046059743613638980530454273556262627645143776202966919224457121176405896264214167142110991689202139152110569746203728400229311016086207603578484028990253504034585383616125012557258384007870218642369894473737867942407100342090399156579899589538144878642383372406602656407490278851463975059903815027939606433668314350263549907593729039699636116979088746207784351579101733215848770331363333896439905275957703375978590501333259137865715324263195502915936761274497801165641983521116228585123088849491933576649869008879580137675787297745031849628777174584647834468148323454664128992645164547828114379552470742128967878781449997672732870711520671214452400111903620784162484170878781299212137007121118386703996366179110183638868325045231569316865695619681436154544794564110584463045369547950462060927414632071081541037669924763721066068773613573602041886680855330818021166346438460771072295513851404889615243517342469669272794101482983715156728517281046210382091778368379996932784731588206358566051104547242901699168427650282881304913656278619568363499055843147819060618103653804501071456309260026570612342484689634804070342945898092095116222585429775748639681764721603249396756756407228935252290634307025679796226501800310028633899446448323987527890554318390697412714423461012233808907239676740732557209805093175255149684249094631236349301706118717855215425433753924777958803059120985910883727217341364460504775703724542932097759989235231949434983249581174325588889877249944409418659469536125023496686635360143143613146374867976833959092297097918998165865146427893536612083867509505375292514976885373150624664858262602401866783629821059786352870509201113045636513219231816594244121293143695440980762838711213061574274910392636063754709440981661731688327382915985732615349523498923205935517902960697965633241396922474457089346776434793719775275884504816964629029487678373168273126842435698963555486488542183150088814840068466769224676164086178302317048630100709208421112680772499753051526464351468919658230120767816250687896528140723875177767623711750449309707512859443741211578245780146286310154915877658267694711290201664367374909873145800360730225716297682968996776219528471080361075044075892865798133064697897693421701951395373735580250480218589365423076874174431003658905908117646483849726541001303846681654035615057603503772791288249043276707756394718689420422660893164191955123248885449399197341111093917288579524150857647962304015508370508587395174121741398371920728911832927541217959064044878692532009175037545899071301763565894049724782427467272541061553912885576772896019896900785177284290382180203788528936909584102998494913061278263737342613611988980491546796928283015241047581569559504053951843883079235098074447251403122491554412457952500203293821685490778248462837934057183506536121196314436916297445467204194961723873444678570681228167189162440777208800624464054438083739558899072114556972650493546808635088921387652516392249161272884040020522283143792684249326838510847555807840087108251767527518836051994200445445743805273117650253152482784813065332671979859000689906965164337548716003468092828629158881148350692963370679161230762410171759972757964643402114732261674626490048042808001211383742398128185569901767277181619894562963145455381821043534556994333466851866358082031056755921128942071953793205663918159122728306355606460918265296566255153685316396338176692342918373987361738010741079673117028945044018930806226043461516426883943117223300879907069230249684550291600101372836626521282150018959561409959083222165366205660203540423029634953172576369687864571225470579774505824215334514378444514484438875987805480669188163935092608653503076435572554187169216478376309541802178395059748698895490765816050996130141656845431909355289967159435648972217153504013528655516357678080432454212165934243921670794960284687381191609279013356968020131402379185060187542824720882768221045560305952859870693978449566679591893919714132219577612850850905280089103725754904486496389387142521300902086414061180231068761725957266649427360105036633666836157092144054966219085113072957441091064559028219754512058213754178888538029282016334943007929195133921824263544166840782453171445211485581491124320487422076347053864186556971614649598273124911704325688978909915264532069807760312246778952632177059234996262631453433242273551332662260340798503380003868714068818879626005075453065687205414571009469291095936332131626629435797685478065027075176411133261074474085403568038545368498816190053006590591811203302827770765640908320847564342984837833068638733843369929269110335573376333318324743474582184890924112467081977832873647479740185876691133836073685997517631678454791172662065102980909111999147075519955432011889371227751908672151043829107592170543498278907419889866911930511753670191931369006921038236472769745911868865751544455726617323302786827222220164279660220768132264644493150161261934586521932931675913299016070342676432414339367011995497289914588320884442921741513097833341100475216121302632751211886887344337030544116348851195682060472596418803700996444273786663906607099475339550082530102374647134605389853980205006288634313592606650867836180783329947609107331072012895632078797667585566373002374344296089467635657058566106894210003521169202710860300126783595904172696697164597587748706459519218331588186620470691786126810494680885019187588406784190372393061442788474446210182710386543875360981002300082515365031983275225275849216046936798193042186848031578710829692931552879301302933261123859870021051145960913998303837871272569452021622893858249491501897610550033016346838688095998206422885340542547125113496445503827347945097172771410531978464438928650688814710507483944136243204331540119400121463232083981631914978723100151945382741492134959901126825186719805522028676659334677178727406121324218592675420052423172336541132674900007115054758487992447711404203611252716047847875979120926969142320091797705308191885252185726272210152607654002892311399259405914560374875543277814901982175803942824235289572336580019805479036492557041161249276041277095716837720531332891681586210274669188934264063252311715882001938470977541452099990310793552634237015082654406034795769845049404349213869376891977423511679384134374126056972938559008099312382640701956049156453032380214714299992750198192929737658532191106518641001178799185859439843569639737311868878783643663317941300170869762664047413601009031261753688274901111403783712038504550112852210887648183751276910490418601990158045458878765715055383911339398903956314215696576013090783298234865721581166023316968487721169930663822513962179077432538201643265768653906182858870303422170312444300295276425683912913869534303608443425240641740571838264590244075819053119061376064906703544245421981873690068291394261687155004266156888887148938338313634914507954394736482334216704830844464944655320552765305144589874479894768706672517975597130245534652133260455240187902712495651672898173157384135454418919969236101646359048728592904141417210474098035648220734991332560990376871988644935016121226038823910992937283729135004637816955936525722165294076284251139189941849283725424405068688872536670199546884561648796318141262632990372738710080686039629051858351691179384372733794042171703548567080283190126064184105435765656693661096425131342411064282828142911793650877899912828382722705993259754552980005398538131670820890831378735110762497818778850093285759156327781002744963398711805322782150937715795902830527429105700178440439549395657368585739709264257936459208100252988110182655100949049328438474188802529244989276699024343094832750308763557167050195995380653692309246997064034188497187402276420303573987360154292068680828704161452285645018096532861200124309899195570040574293800007240451792740250703876312739116667895775595163441541413697208527402859283520254699871154812261303115776932252066589515932095475993620480177731346585552699863772262154127674796814857135378000534164229089871983181196878789103341844417271596947401654700002266880052981676577531349430652240393079543914017004896559439533203945405471785822563551896429056177400273018207373208816576482507812733161682885263688208919408745360000341475518111110768496545110496822295807499684476755572749995641302164988060587981285258537288047665154777500067580223475367545649418256216969971431967139307903862892718176451220090494629368336314789258998496756767584433421175182787451192642447168382725294632384374382969011271918800998981379714975578615504941243170786493683979994738547459469104907149431073504372150812404479175189524491064972080550168096676201141651840783109253133721517757106852077823791821533519878343755492831585452617743752040951842022329234271450702611581671006235061391164488472802416687327954402457597718863459805654790887584859722561354713635930280301500629274764947076666348415971956548108134345389070869189094916412420759550102719457521223611734212719568350312012978439045698210754108864164448886618476698338972453075927169287731186071004651052689668994695871245704441072116443102097201440885141326028802000530173341527207277202452811651661451458348210003664699269633639007925433001656430555810918271974906314014624471494165551319350298250962351141450933716568277669715064678852400871552837603503930680829448384034208656511915318149278930799161361320249738128642708576491819441743639051517952552663479228006660008680534212717196511433343700686254553190414644820371090283598549365511991755504205075767295172129018177163674847344153075653990854275355953675559434882413322343611515871637429192975207924512717320034681468434456896365260718003522384085694646640277964028915718733802643779068257405438255715855430033227431267027434999837570395497541811984445588806664641299659072271402735333210032894138319850754595833307609982035914629067596305761910130710564254580549603164966393110004303116826757928371335058898613251143310765473585954514840545002026205800202624041399498268825868199819039276045081273960134418434681283205264994450950944354598183243517996685900254097738944904537466018808793704640783350013043202930535984359413536388800167252023891224996625924507464518261815394598430923759996245680453911831639223573186694359927839701758124935407422939711784303055377084420476972070952995044471081058302770958036818863972159505054534947779355990706093481259844846092153337778283012687291769527984420290365043092584598164439144890490715454061820996904663673769846440646963498756448910362460643748607945203563322622519022290669857358932974459868359121821286432894100849807599750215399298177819353201802999870523289088913519278841608028099394886458595378364112813324884931767917736568773270252903103207796556370090979963028835988075925684053746805002444030854071935304093247149338805726679564264765541537215822618145707757371901619363663616897526391604542878122072849856243975411384237854580884702403124147118538346123601991933632370959592362014620807452103722270084740477123528162973355071876504215886922853838710547150252735454921641237213373601654076966957523004800170180811156057537459856995628689728490609998078878420151741284681603198198992657849346569112298026278180992249103746816915089242378663524425522687228958129463330909156230121264291723472351314880421066517156508054080229489903228448941944521353834891835469545521548000307889246259110597165424951589747721272785482166902097039059011956674181337881757613875781248988227857206867169760753229431755388943177826375351107529520098741841747862074423245545401975463517200865477598635611664470624812160386050172333328706212102824786170918773340228144352308701348117168561535949595983941548864374289545183524256258759613229785732322048094370248341734640412316143360412536596645845492516435715724788320445425295608381725513840261101484154242276389129094444917866652331556421195844725655088529312811340321359827334238230100406214269421159470682730464484459408722484981943683297186707240390008168111577586384975811345528088029647479220886734387271335864508912005928756838380826537026548132724445028596643635593214386841891177478335567939831894463257767546748300892376967089643199646114346589155598668366750970365649948190817659090579533500027318667706107353060773548556542106458110068153798638269445189575536440462138981822720060790938459203828240097307029876488819884981837762997146324078759714809556643365758031552467137806863046071576185450093401641695246983738355339713929689708774954552948244952343886939678558975196477440355256710896717318427617012556833710587685181970397199820308349843146213282033927999586921141432934434792169611905396071313340760401444626300468432286871964634353990803206873536524929457919827693278010335043252492658909939741674635743983047889135872396296698453915095074706561953617274975978952676561463436422709287936597161636988706374913847129994541466458411100072251961635806886520564839045583520740098761249152746649459503811068069175852204566211780953654649553285392572810657254909512725742428857190638827666893270175345285921659314248799336053267721723987144035119627103086260500151230278655313001531242804087032778377272478168775580703224183985897167794988705717943103932380703268465972874325881360789163208817423427072189808510201226999190851921338575984887287322746333268686595862251995032969317459366103961288831108273478973795942171053677465273900418766866843677189045809283006378542620031973867520402804502806378501992928705489475762085548367517483633439037688761167255357580738525070726159945462668121619842562061365447279105435149576406092636856652045115968221940058138380369219729229847808130170494282018818085365320892856044534807426271822584211707237115793046032719416556988328607524762895959743897882261580725442184697145679078985178838232940819153684805428939314173658698474558669260748605888574501383655168027606695135278950070196212527848599318649457217111683272368443179444848438153373749659464355498760741618612065868511486149735033751513435354048758823502010250192716747092239928682860218200788961694032622514829266861183814895019561913874225748539813240568253575306922880765393569472571094256137689251390232428279471765789091183359116368212013653510448267379457533215643178253838120528162633207282252105843963297146625569377264491322375170932647064126082639599575832978650882383508470657453630467824118892187964274123643084547313903715733336702028346306718724608108897420599501422522876936245204408952801083948041512913135033585066747030572394301927696018847909180459362915317597077869558429027213284884618305845894388743544627576033731671278227867163349895442826560104031764007852354090960568723571865020247246588453347681855567964042581540370261544246875686790469988709918432554414821848661804373026740767359759327984260458291102826413651824864077674504691194326403650516349284597886561173227010147832180723775234374427549542586833541354890281126964318951686896835874466968010513769711117304206114295332613804573278864822419870195312451609063628455766513853227265762496692119674221709725803181906951225512464829253926483483609879163351852937166833828395545878893031457733227657023339633029157662949690925679653525141356269837769057425019746943471847972737027766494758772512508030244858803267862434295130501018149727310913494897170625296315500642172061909039505908376607458427894701101772468367648999883739472994385039734426410448563110723706852956436459157921086265960010438518986983232027224379041212616236693836989677410717802569670399412496089803112933374439809833060045479844212027781126095852455211731955842792602198343822371732590329316144962923102681825305188226672485217678879517989253779661606204473913896177312604215967114218190358744627584952951220952465835386996198723760407341440975075785860769335263451793278360045201485604237472457035816023834082337620732638682573760814138422538001270759087388164659869547527432125917589086841565609880850653090206690812669309543964371352573147991424081917907145835505761931599384544578256140180458465455949889026439145752808129153709276834228736621193416231885324461072831073947415091159734323349596966359356235092731569764843838373276010005359331521134621334397998526075318693546424460389867420726289715227926028803172972887980681187911471569234292580551869474954205211440720102203037107675522248665882199864913320895963809135167223753248581393773176925566000697075838157682850227333413225404494417535943673390529888006437754660660711748825835314081678356841435860325493907872864146698391195526576506220191827529155821766949467414098912089459232270083256727266585369292285950917278080631700749924546798574358848550638368174648027575700597983134585206569208064066569273807686739748682050741358356946422192674530001215550419090638139442253359756224514395951146762119715252589567169502210605073591938058177735589443383501514490255611724111408857468016316013476144656218923733461439520990461092507313689600762954678939921731237810996916736843834662399161906126404795901129487859059789049546658248742878007543832523005941576054119818652684724848781541486826456291473959714829620372941290892224831278499397248243895436226645029286813084225035856449393461601238079197037007342165974841157567505623807576192079056600803511550191741788398164115222974004034105321620798501457887636785481958954562519255478486530098030989713789156230002927266802744138319365469441389492735855387827920485190353280652559296041294313782525913710469374528801783308534052773260743335783813282664797952520230829309639488186448491670213597829060279645581761353495402543437280564506586090823826710078951501560535882884350408304894267099010632998730740360963897360626417912044072318876690505272762078785926203902683821717002975953951174193563261627290575372377704827388103239044170770387595734330791554435212428897335327254205044780299351501566652036377054513826105291425659162924562684995523122627183808158857105368098185672435873577566119308464879585070567784762261360988286340501432352501508793493200293436454548643934198560931246740686693829116549978050647386358009468928543232167777896394392179353507629591317015789886449632895265974772366477892168424818401382344389686390812840572493829373549760169980815590517137584119550424161317404923295480648540411831795190057466948872437718745776406229958371998487445553116938300521254376871140937171433484214577560481580640802822282573416290021319530349609002996845966501238937229350560987108018754970061258432675804916791780585648054929476959314753058366043215812798965771375625568848799549033587073698105413502036938652106469460191529088355018142313193432143896387003757991874324139520526723537997287397428165484216529862779304623180506271128018572956098569996896658414146056397151406778077347804385366807841996278227937365002738491505821192347870824152984437256283208418871526232066923362996660926401738396030836250294572770448951019620798722156016835516086671129330533292036945289651815548574065767591101627852908057589063363151987587946585479889899950561575353576347352139131686893341304915703626872768383218470676135250323221199821429567797510193126870863951180834071461185996142908717324754250591045707602830132157512386765119645683028111619538676486352925258581344830291088502689334001487185762290915923209201894694323006414798079595110908311030006129069973423893229407570323108651648179113955907278157298139190437147877944843078840178307124786625395850070603846009376459424275278393265706886658571906689357378114777463962567550511619678890787503452587587558262723409155653559064853259626925748903668451367276198600221513618184797629824447862654968269839631235906770484921636873695182839983778235428646436696972777544853111949146413084404940420204527519720281803101277637570593186620104517063754304834497447814498163631107647572547518929954677056471517454066766188964531993193250303894620143300643212568455945959838532678191104832498405777747092860141956851567205109682764232799726886210099061775253125583002625564067790080444546293486579862622144103813688071296268129411653051263870354076186664535093019061837561067098849904863547965058589730202707183392254186694269349417235614843515351867548016068633663689763603942682090159138244828051006401184348771345875339185799664298871127571775926995744829492855189907556001869864449457528254083959894427864342818173773161670981740190406403500253646440688394847477927645707666882444744995519228155562983331634167388056529070855784128246083892289476526010666782378886004941425902997968937751175839330148040568167631045824279344988593405459806388103758162702930178492579212146147428248906242531635426077196137320865061617455023163763999404662582667726702412820143360889808128334698197643009098021357609600380448880123246698328438404397032993207700795404736291763595190459546641368843552242695117020796873762552311401282623363074748715031354687760049290292450408653143454604542564400769225444558181098824555754767763824080651910977374725381416797624769938995996972473069593861986375124944823758765995626134568187820224994175754039453099421756769221681346928786537375241945804753610522033356149811555726584424558280472352786666685267741876381546700856229912177133833867843941767971837693981005502501971461872236776261276828590718188735664104417509671576284703058974247334995023722589674614637128250714612059901707965786692206788726175298145283559708210972323564979605992706593699711643259277969573813483746666439381487059470769579778336593155078540942822223420555590679830599581469087421907642905673885458452987824355481512997191165548920299685531480562974613700453790400323219913850007177336983584594505844360196128663070243054795483884720406754659092605884246894544240959607005690383698656711493238750256868506638068614556214627768959240450381144716076488472500159230839714239960452159971117605728933239999017077093561490238299101750820060207399218793432817423860508591780723253185454945467861109837342797508343726711613474881388784232513026461346661622874915980932088414680591801379847418001615065423936631682287095583705621387508858410390719950021803867032299123531559440958767970650998651515981803607664011297410623407169970193291682887783698293520156596381995503017934640277399533505931126348199523347639099842863563587756567444562369634043952718531591636029555101687182130045990283931729596845153976581178942877245350733107991544182781051133072107260707681105806332451344560935346835374040180559091176919228557095409273167519315446519734234620808143385129746448745203106217672551495054179630775034017617616782336399901123059600681955251349447393118430568687114199893255920000898046739556054605170148753340697758916809466669951830515167392853374177454540091400396089822071517567242376427276247552953655992656300326667530233982405467136616408569179216660011620991520140147565582112646919608652820609019900623418752360337372776206250481677884624792707155939281579510727574849538574825124392497548589235304162294885496925820005164909726927269131560231437717483925681698609917018625765467017483441718328397401406145676697281544193498760881332087130171222821781998938137819340228261141785278716534800811933043445824705481496828564846985631075845317018007769884619108082483684126821149007585133042195757486070009207228551977278073065416682597003675306772807893657595397794921770797695252208708068588153175882872931695447422583802796876008887156366994075471187024176980253403546384633142745161668802222404170383112742579964931284263633361751114532005023941907300341581788582831623176255405951157435658070970008295853066405492894822096210643396306634902235212482962606498104890127005845511608330736211026546636669543102478810206864635884411116096767476057172438089742936912957675629552459837899471346985012148186957788867827424324915783342463781117907537317468144538006754503138667936683833963345270452242184619639463667755803968688829712935387861552061759632686421370796896564661839720887291536353990723694919151796152016269668107126260741841057160280784132349910961714994770597907422061579455449812136044750026058296688248228146168344453334067955105839510802238524463621021729272827587971664164322658710703050405590046921004914699322511813010415943318121263115626432671044510215664129385852955966966167978830438470940737318921853848683695882927143262244645883691236983898951171755044826933290527566522570593864805670424136842245653401805950571207289313961924860766536643547241091944846167598457066533177447273581927442886684113293393549592769258796043537433347006984399492506255180182121335345560885884680439118097665072584219644003224475880517595138104598138640478185774864495449134407998366108189506524677145660872155477348686072646633255189020421464297956614486488673582348840473060654546544797107052943518743218944088226130622679520895208505719732952699380377863284781729593832545377360170554614471268832471095793498639835489994829893356461380739231896030947599881093894528868719527193854670857402049347927641182248596773134682791155916465096477857378803722183697396669711712532940493987500919399817526908858365417258373956462761727483717901527007677866226376207001770080497699784383421428600935284297851575970404372447724927868566468347764937672244575891199801141168081134553956363353450018423185078744449408640790663834840497030343841979738503871906331950343901537195090339994026370549875510938959051253493031513984699531568474225679690300137775620390316268663290119733786485327084920508193833797792865919114370714250991280785109891571204962550191843936643209588119114316977117501838205827114757278967671451198736291491325692239635538060349196288568936428688315317443846702238483488558380513234662859832631769038183043174451110131868402715694067449120357870065336585363253992852318100593931856456223139675893226433812486024943971033612343846191896527655934787889080400031752100173869749049779268072840165127247616772011552033672865283111375151862163288054285236591358342653487131504020378822859104064383036796749991445265071122619723679912045908593926792054580472845027133021252620801790636305240969143673492029634213764654515504797252025189168362382934144470446807502245134490419054107302640354728244841841268345000932350707487146538524707505777344178036012299727096607487351009456688737548043357503038027750482915535201355386011601196951667468953998970108930899943127706311651063721312292933562019687666783026802827412296033097753081160758576648298522141171974700032120997504519713373628827240063056923779467642075865043256807915328512665559145150395519812285673179143915780452566048669301034166771857326906243336378926407081603855921067686555177735742851868832015965449843837874326096027920802154463906504611847305973059935524003567558722036306487274030851088351736408475549766819196176721405260432187484986821422994184419649593358289275114314265089809292330702964786940842034557525768308619038647593110611141429528583108095280009263554692653273982286319006851930724563519390371125758235983261930842317256988229081336093565672396765844678150942732419550975606256235290689233019027569201024567255384023551176944149303570076332238147598957821710186630186054132988559230784152721982495214342921942684681481896377249817639379385826751227005900148650984182132473925183529497914291615670388946715789049702718486709703776393256586834754197125724472500378411247807575734465666581312028859358567888411202675469830411992139330838241520745349244272165413139652407812867570241807165770728148130433662080074036370695175136587385220050763296447583703949143250438459081909625621238199856747761076196742035855716691755226711222752205153177795058097727506666127671731658776415556225497058942963267928804190083648181553299803092858290072578290928555188606611730560383343635716192405185601595976535042995910013593462353294735317673998738140063553514357996535979044222613225207856942020799744990572350110172953629800399414443572529061220032180497718962391019559461860029176820501198769355196859193569079894848187179582038031632049639351110519670897366574474587823111061122008323905146845446575536476962370777369453836948240402680297462421998511161660724989517628130964631927189736588680057765009861229556926015839163879408261058610733533770405361797518559594316801514754313720739238288353193022534638762607189405134445116140898091970483846344130166435052328621143042234033618323619731458263182792490252640744603892497701771337258601289651021696308904242050125493955851766511767414571810404539806706980988843387396976926954070689698359509379871164593622318512146819787678660843089184753530419713590563569079879206466632091492202340533420567475206526839036967278859990745743638827809730086356137223485264203882120563383997460119702556174451135846559633201883476851062584803126927084524352196914926274619921126153287218199110364632645651581300828864691647652428251573544722536088292065542698159502991376903235737665135798014819626017266369846832294871522793428727091715288328147501526706354899542447212004464692742448085651491311567566409492037003734012025436676939062674672241093340631066325094960422322440729424442186344926732345218053883209015733138516033109131245839562429703433290391831781474852953666234030347747202488038290427547442202440811579334893665900979075331673288874950806860156169351956032114691370734591533077951898609767079612269990644175418469580026616252122508375009788128263549799578153202767628449094124769799540221466856849846098819509669465454719292651631470631965527301530027347691621261888716172232152711395620965288786262031888303523756280380405552073931829814261553556629597358541603559004133395335525452505968182719526322285424596465153745607133818814209417474656704450661119040575047649179998834213186406598508236308865643995381556686886859419692335865164648295746100703126097265842629620558941357494359916132155190010092241097516814392991428656832421521614305707936408750913999313377397159008007028088804292347499884292780965634034389557411911466641507936105443545910518787874237580768182524825940995462982392330247157059293982133995938851556754897279185842450892227289142673441656322468984341873070497507078634356107043228109961378050855771968705085176963158531390699302465243421519511374887890582822358362399937429794622794539665387552864064234690296930340099227734009767037484664713954580727261502738634705309058750684843652302126231626031176513466794355493757482360767525246919577076894414182425582987553130743738632875387546236219676353358347081330769802191864881244637362298068604440296696499772139749430336883383999315278491088070731449240415898043979192525864070481168581785325807856545095476465907622870673593780617724063113687524067257615205163666964987568022111674226518237640793116980584252703487714821284398481619636333532130616152770034130410566877014099733317761492916958804777145899239045056208512903785456595018116474467137806595934215878442839295684794954999428608111000001249259440486415661448056054749446792565406785272868057101551531493054718114053672104288540690993893156640155177686147439060505592459348490938612858932871994447458238373661814088061267592783068501046768702663103399434849074420324631987250680530368565967073472362653205625858181419191459042704141843192282369087279955396226524165047788628342875763423721890252375827158196857961734042798784124680671664393411387734888869091346681739506197992429337860156229673547847528102442489920542529751739277367688414588396094383896370154006253165082316683146203876028597939255623970143695232614541161582299499122956777643269111208611418931171106127215809234453239111864929904326472350399779922867910791610962539994329633225206079571282833182315494531127723260894912809571432574623867321865579181538723379209297811953906828907960650064308076322360889451756853726092174292207950717801548115701670179424777290221889556645424501016699833700173171298541421659908494785059609371951994665587355544177141186262568348271038130195558461025561927495313037731296592241334057116383067760045110096181313512800140989031038401101356284287791092177005469222176658973819638310749189386967165967341305440156259149634587307509647835894626700560114438358466721601606661738015705619050628180928938985237949929269799240543429170875233825403924898241347644259866075637496559415988564389122750756173683707035515390758841369144068022692986555765843675928939965701576314441815417330202310946974298459747524499230532213989576551330835880228813202298624529738983028251853524523481152945229798067704165474961753447528944396872066770734012745068428760404160355437009738062514018692402049548360667233806166558969256103445222515353483376719336833700433633366998496895276886384997313859972155111565135441867385504855324877959685008455299026357651455650954183949685913999700372262999418792163239062982050616437747033143057277392389062737736770923694978848130720910879696102668347704615940354349637271935284533033086471355865145627517602542715978425853487698191231389004320614618759624452379132939795167473494436976468112137169270360496745330667774818654741305855122580445891097869917994631101168029052229998052928781771360661660490503334856398513172146368421460159546458133840676722715822851464758113976950676927504321548277642377199698016938533816184201298467370707360526647981710890586990713951517632160091321510621228354583111639297444170991915973418290343867001091100543151045257268087500931357430205876839050128581382449013454652332773942284764555529358196193226533412906358030870331022365209365888165197362169683714666893975863815945307951610317815102713481873310012100149312473321540207603180643866565812010426796558337280205090177866112695326052381446346411235456079150347959983175474162899616002861742284253375301534617363683390964715127350112601615260616928778961144484006096289688842970909482185892454563905287725807140799896073020193413792864309379256268679167671889229120179361077166945727424951986790839242403778219109528385127112227267903912825164036438473807555681709230377464331250429221941341280972539092327404385935744988392799544479225966905122387061686286327109113224579766773010780826018299380224420198031080293865215777450778083199649208786173168711240195332979470391372955461944979335663546686360438812421087195751848157310975263977998633319724231636298272729113105118545596767951116521312851105648336161666010764609695775734792698313655788873644659681027101228681580348273944591104700775487701816008479605309401858595623349963909936162250444206216203065189943608954053741852510782786408414579985846367633651248150142544377161222193549987449347110955740906693854696032126107314161280152928569497979527758216014458234079659564234650680881047208776677375439557324657361681623934902343262627659945890567822594650407031274317819565168398800963291887948761827549895766104000541177133207642200921217281976586434610144590965476542418625412840872959961806863973694587494968729574966070392181095274835891015205067813801974713184580262627205630441863717818900145279730979099704073151729021706591364243899164772751995597425276007749563580981145806684557366977185802162185397340276102266499968818424092540663676108017191724885881946165425807379158831989658723392035254377919119299968287707292468870453879919134807794342076483930260235345045372113813837042088756926565729809442522247854546183706001694255356590401980183130654758999192768647797730897693101627785130552480256937759145388730434970535474991203659903810203640524623064491324244246444944301209868907830001705271578353398908416818585207750397787419588405853277482391222920874943486912631243914635715430772612947842004626157067102798816327940879578973585894433443170684307800123678939781435139318983517778546055975561351583449753023395661043583326863227130287932251578589188843404426572008170975529203757392749452938860156429572968621330606766709076561726303006319740936764369382705270148935713552671158703734841591150385109178763498023607489322323800628725122257705950616509583642574965342066877484952610425594048164560735045686477616806842040782665756739935489155986907244177761876751410379360454959129276991585895658870917927793225335264550965402339700994652000545453419714706102979988324865542285413459853564678489102944199305506936909705830190181230714668436358283409153392859131138608857829942227592106456782239423042333661436582323914580396407518568850595336819672767785914622736337364478248652114318188781431320968628363636867954801274644869070017556083636319807520726359886413130647378756938362952238126721069379808506865642194885807524351313398153977788426943417187439129491224855371277850345297508988882600112194360542155060533374840200900857075033457052604957850098463715017856522227803652274122395751694518370622504332874753568952492959183203580207470345913149493203698801863928565416130994707000879464902318222377270161443984258006567794050132285429434673659052855721488996237127506681743998059591354228623627346016240203436910635370614402023417379462739819155310521601264565931258615468031589212858475226489928022712590455539255199140227176788270980395341962282158565799169336795998556023955385448746939171480954539259772183473492936978267582526836400648102309792691420751473615570176919988702428961092247143486487129829740141552303976409637593090241590678699801012894953426288324844335611450114309854553497090065524275357661679711435156454262265606465769806310904978332961839312178892586016011878727154094252264035784741053747788136306890624951803685059011115049105102049494922562726107300626732030187444649279973989229028205338038065068017582755776888459879586406909411283602969566043279341063967110921131760474010909936395217146340762511521966227909675831700931576633571007429444518680379592896059709442780385285654027347766275776197297491408639857295614342698698644424021828953600788646898982717555650251966108793636893614828359251802069168975272942506022187853905927682084317190508418134529303707093767860560930752948303017357396539371792454865636422122299843854052220656858176513047616920192405806909877191130300837903526505908059800756121614717612566565042649618164157676561467438990898461428906720015755920710038889902452477978169969798418715142600678809980600217575146466971258368717184380667078152383504462168020493964062019092677744406251069007006740198563968092461124845212618755479295703538517658894266670904866492288629663614088906292029726292172168857262304049043038442971537465902590212826709279914640330672669526750516717857591210952477120796243657715123129173261366619819891747142465132695340402657051282456610292353317027092122454855078563799839861300369074649375385769354257236397288072678133877435582280300298971689297929526737229695072814950314463942351373595863563262633096145813410317205686612862427023722419712781321736881235821493782863804835111905901150434694236576203738591005634163287962186191899279564661866795261847371530365316549549621407077530206443148060453850951005208608563677660677855385852290969551517999678357747240706793733365441749436993458085773204160643719165076984679844069020402370034039030233023778553924652823104085452893674488074133163085516685138908318922480123530233942653043707017975367094023596614099218950319532428608852775302201571561869020570115992322081859046436581695012068622919932892674965995821478266803944964328404710717157843867662726202941484936946798826324681921331645958430742015021174356869675367405682616389177494714478506261351733857809364757950481518673565505931914835978873562579699288735027788913629508913984566096283744930276198421043626187013029406792052333732692579359241020863302905447723283365907361352615781172068423054111881518216190420842939729679992052979223885009751256661706160104513122566664880596824542470967192929719358080140977229025894954969223341566916648668906115292003734626874267470977714851222160688120918162524697509520478085630561522656664540325363687639550981655804670225667109538211291114644242518743924826293209180882067606460145354059613756219139739889221246053229135245661854126801531412033535826968348073880062404353293478011479156775893006198092187054164138025177922496153060427729522236934694533835843047628750404576147429816479524959559543212816939552025688171102154676580851931919913170302404812486819178160500772901629157674361044693664264931849484457932754369281666495475169384961841190757410122862158130292403499566772678290955354124805735463573841183923716537312589261921673019873318823033375100907098740902407760438263611767838555081047789545223530139643711213637023163845131381250912356994894550366352462952623039353402851492950738322301217236984209305988136133670581410335819236337033364823517538709013698837221148862385988896077909232958102449115376343919088219030336660448297788146854253072743225385361964697539756892024871312904218100460975329345328018906383852359739252305235550293566245914526259243106139229530679169463869257332832163610226625935053966191014550094458284704459733404439844932483747481993860444557300113178872051866323700686220781464425611534992937199906668008225290790523112834535361967525703016701798196960240931063731463969254943496099220938444474463133796854086732099587863743448331453929211017616392336161154465308857165151012870516895345402824753747663356860436170478425559806078094431328473175421712110006696745447161190246156312561827208884515927000646254038994809506754765323669674367013720254694382426745627364274496141587916652731759313917409934314907446484360676803973982759393478488159685918999185390052941976482425433870352334347039423147604707980426141459745862390167172756983488811360680541144932885430780545380350399457336515718262255943328271152915469539138469982771437898928299164469754527434253849968316799352328899091784547594121939992601665658949609714706434966888512797895641840536798704857271678289295150315325521184939383296579774736113477890766390403067600449399800841294830593837849111830053186585599605347982113192653968294136448854606257035379840962823509105476376020724733794807383125447110004676284759385043906075726393333001539969280303324267407514190480386914787448506571567433183376503959987625834579692758447208915928538960926486477321800559520408935053776108057063637664092561826946675429743895986079563444720731313265608454096818415208819741124696548043779699541489216461837660752559480383440868389654459149633412914049269819766338925030375299879718987952781922360764701701962533138436804811806806050826648602354517004611336577968683898601754136308882454838386224683143936262100092533470251322069041315060652633551366631546568085936132204748083091323049326933173479779030573438230761491995322819715950956232502039797656962985646480789736654479030201361610839278934002972270182722045349223689897693055234345637149820193235764224022736954841788757601246518867847468168269768448326935979107491869222156327663786167133798330373923443800295519037431771120510428206548130334378144440706303748473912649577578572375517486667054760411372601221054898312044519981668777380981372503299799914016258305084590713531453836395921564460851759323959892056688978694464801599929047915588372636368892007238496500734472009888613050627502177717722030813746068602907122739878526485879355866351131169117891573065976488278310062975800080587210789454671864975848215605970981299697535611330040900010116304822699671116070992104524596313046802547432052738306806055299064661028743507867545668518112994457610404889874698721109574485455223287927588878330997984900684939887355216252396639012920758304805217135285473700281952367798407307043819661875710708966629868049539923939170468004762067666458025413500033577923066808729375757311705236852627942701454417068071137034633927743082944433243027968448355344839917713019917468150259637449392964658848812981923437120560743646601545481845543065810988287901055441430786058638480939049493341835963099823373272968969306273582462753863462962357271715652718665726789425019868283429402439698944666075520077117158268444667872973317513734208633376929046827260746665273644185934599845208630271427043538566060288550812779087409944057480574027121850089851174466791887046454775486256200197090686949804981163755588905775325125181197291326874881299018096429795382053117261106615520503770535046399827472132973990379277300065480990362205253909936016202905505354804070105769956097561586394209124525366830219349811576047480020497612311566262206059933028746418505807908044432771511364086915764021684298195455518627162388858705604257247289060057926620144161643875981584080881787951573170685186553772876228049375446338044052283078886552132183284193827990169736349810886855773001157047734023696758188397199369377965754574999317629529792298007418856288961267983728100052316736391777080851214990213352014880804022571294481324793832908770312971157632434515195123416120073777842807187207820097869645153051763072361253755273843987878278720307057795340773435588039836112672709511072309546404488812509417301830934378090159304992984575616949449004959217070765541149926865613781123368521837137994243434884394050856195638693132584603002884209027940260612127504024044650865803322294150419853882173953056184245430996140549962448195664832889499486088720694374114591179340720551240001379017658485992335229655329708406926454910811881946313349399530933356052715165771044682976554371804242735620215176941761987660499811419742735510212275653612655360754337666520858262921278162500993293478626090588160324749912539021647284219857590887747795301558157288924691012214401659449601647212312129886147345235149253744478115905009988578448017723523366930038380323749056205129496975674491813592231228803586763998559767975965441546962684828285456595158791631600688020938129723504721377125404074130172489769000071521983527574202324004339471644657521404084301893171987447872110581964976789470892552842604048932814104338481267479568250078768261348624619041836025362464469519623724358211028926229899016525146493085405219676864210522029134889831998590779509698752175264660210382532400276668866686271997722118166795042347119197439040313005256984230054110750262084905231642502090545889499296686885736407896272470358228350214970913477584139046911098546501338485080528175580604075796666877305260627641857261831259789412328265213964708610085787048686279210684811322959974204917267504678297122680604264293697588982179210342198061674157955916613964223957095549713875325540797096903888478707268142669066343286718511061887414106231617366275233612735003674854534356404110662539532251206454773181673257052645682593583341716357701389040629820747365032943852398626389001074764296452685943301301905167360290196896438199503345438976878345163437865786426438804542229678620605355378792578966027427897466586517368852611604423844701739678568905605411535606424877713736692728417395612059453190428731714827599761187827231989232679207321180537223710091013699409473830732424340650855357304106991095606558083875434511895427538561780899421631581123195895332611563073506052015895489760024405088099772895746901526949495699862095439889164622313227037555429664368525371067679996851453277675841179427343511939601952157576065283570689628460791085006446088536663831584957955669131570183463982852770809799545036821241639288403176910256331019366825108216607286332652303592410663625794140986109140443369636039931774062551504140738786557754348354095594733122365763589159888944687793094381885898767004414183808173293915982850889879278700636495089616936797145927244694685130951348052638586570118426426352594468083046897242809802064355137710925544093626499597630520742156493244683293613109524282777948568303573015160478275682293184744986378135714588880300226466139376422784402538244709455315938137535599401041570027099861214977150869263302648308173502282367955074326213184367160969184657635051770016773688488001343459555329401416271624107302024175990626203489511606062678756237448337080091359102095950713264729218283036284861664498780093638824964579872569720566156149213045262265754007436183834923258200352645148421399652530625731303927356465533830551194430994347016187502642243185628473013748899466959162739295641294775427657982925419887994578685955098167039703684826704451423662756419005067133322695602141875223274724195611858563464857191051320638109816888653937260900293004376103860085588133573411490851265217433104271074209814558639150424784743599440972710914920347186819307292035463188391195105011837527377039892514180281463413201648442165674048197546665877510550485154769413688733583773933820562022976317424803128127164386119644007288339399823609284333719692500675878864765725204685665218073850151865850225630742476228548371948414950790648730506652105737688561706517682900448062293537280607873657472565285834432615131487436251150680263565608615002054677891491711049855791119465376597032324689598130438315094306593114684987661833480567184607043334095774592490603687156614496072849456985002691581988177449409166144866212839978045165817367892656799690364139108101594474479216461422691983880077747954364040230643457061749177489873526611442112323701105498865938077150300421053645208734175936995107344275085056444708622158312859890084384077494593966634330404600033738988521491590380046023401960827551019448626824853703353566040276979418512130643850988955679065618855248477447724802575179585728369627431724056629702571938363287749724550806641815584692194155537619696123608818331042187332733701266183360032860652135098713262701077587602010001540314468830822313929548989186802243475334350609989453136938380773737262063840194164226018133579788441178967560924773610162391750561173741236936275124115319823208068027116977451426565030185082804351786152113853587083709130510876684961157069923644449256058979394982503286184460181875292617474834419428308124302379408597629257073162995467461884760089920672186999084801427267796675753193886952329294929741024075504740564253541817397694826534966903547502237220713290840085175418237215723430804003504620987333604885626700619667487820565393254335087268078131077572329294223247807763169640088249642615789183663301212280324261455439553378994327312880665577921319590799014832541077014123595019591069596200311191059031968935551177709818845975201662290584158775280790505882188732745037981429915953254554109426264043273514296746064799653499214605719511431109925025416843422545094128442857671756614450093120065485439696142881214242512375940348892249011410963893714004260661100279348542344830735394755973758773963746488181664206349349145577378027833330830536461107116162437708613618992789963387395465219425179334001502235189290681591366692342953912416630862636373726695217323402609752645001539740345666354386313846372848286599436187177788279993308940220287810067062798401288960357278790613428844603059414315596161103650611431267468133398032142714060544053320804549908000831205274857842100529129312055724484082419795207856810861152201848735213032930643203602710555881447264877014085020979288124905409093915112900944093384349068192199025440349007933303750763441471221655717843771473143345611008834785999466833466840480461287512059268340241234311192464212441461810544777031694988955354173195154821063038837175952034547386035178102536252368593614728110653433512600219815230693929045584984091104450456403484496416962325380769888896275169074242076048749887956972447055053132388646693740814069769429732956428444869859888807455978659772774630165859089572628497641216052808435155459109653056587905723383417585896388759826644444249767793440010777818023161969324683444128714801456680798212717365970735061613567586420133081012749685255201704477917843031239919516874997761316537777619040068064058004514316675166165845752644866307040324939417047602007622018429983689431937567373289958722288238277787938665860168562386562101662693977788113865882635694328221330968064334112448471237127197382267848556543991646769546280983358272267661075626787505952818926633203712349164610989693586619988091758704241086375911003391498179441446594293936283176998669091996810090759232439351940163814459933418501207180839100152899952237456581554093960978226284689642923225874766250178176342888953060035593120319575854156687447607473180517173702288701047770644023298559430441493740421122427091439715045318178075332445462119096570496934350711110000040057517953100973543309068778467109651351431343110332566077918422368444362054834744722897454836457524163639173825433737318186847009113435831004485473081806719930552084356568443976826987149746100555736683836269506198479260515939570195732614892766765437032595295074656578337171121776120717111255293216190323840493218639175812465738711259198467274946395237994008118966951502584757878314850915812290661086469753222966067244529025542121042525330139442995574611449704771713428062554970324521972041926571966140714155205326424807939323534409251198148743432207372034930141081364392198943407959826795400717509770742362755626104742732671503974712755207557464488333543889015979464668274581387741662199891445676878553016222589522402019231551126250634669263543500815143884540958937120102321686054536623899052529156943299580594804848465723352017851212098612665728827744578535348530402722585475151490119197125749494264257322743884449589529855736765958603078124958062792282903666982455106298745344841274676526443632869737517430278784492792367416686042106839592899896396783756131445737639688224778662778070961100578723751248008780767978626200042837859433497764758434616216820754675201556584914803173286255789281106500354298850357931387887855859928409824414251661568261931715604044920373545006660411068813657140434038161891028262697947204487774696886939856637903001322184623337695615151230856813599879053592077173663505664688095994852590909594219469294695081067382307314336226954021228281931757817650347050689623693209708609155930073190844451506561457728873921280351652499871428743047206473706830074613911267953075942186001728318078139931948895560369043147249329627678369197970150931252459625035976500872935101419560188958563246201471973934670399623094929973777837741699871522682925581795459302271060352130459204090731081426331122761145922750422033373006278475182094757085513617939056471185284374493481973720115172575299944533658835390452816879050422592436964469575763796504601360788331636638450335887289045237966413091221796303686206578673206220619604908867857631041916716731191733639763139434239595721577262525394157290396908695102546783872176658172499364472482616100099486061196771324438642881192028773190908473584253905748816759341475508824554652722588933712675660709589713926867382725503390302312104467065014677799519802885951704274398074758403299740359947345263860340017229042902438292010369588995683876680054890351697328756607508629569844590396587013951483390006792151344316691448290071086999552307440013784995460742044765708985802039314075947988826862473392104599121047143493420512875217322610524559280233462992429727706475752977335486077847470837049273700275700791603238863744696376769541616479743517154101426912425617723673645334722921008323045129734749128188890583384423258432903406976216679477772155561422853340357835823941120218579235349389810261374648847307935734833328895810960490527347026419004386932020419006394477303426165320849772627251261254876149913338330368410438748147878878178143704938975070913057327426558742586629924650818555438457037437765608447963316484024356200010206407063338440703928501858731307321796112780512859671519654892206668273560811775227051423774603185736000277937760975055520619020187640012211743875502067576355815872870432926071248626022150441660801954034398754222430810416291580342029960723561369281488727485142099818102906460684746535417467695787994601314699744919980664344542112895685049021851923026686093135332678770461252313459554992897736459484145819610166080884335228318062300813215188611467161309470612060517218611223034189998669108154297396821160765509973261506743912736570741634601383140753654050946328758804584324584449313697237352103464966269329573118712123112843732679676120233801584944120590150026103177903341983913696806828102337835708893586517058636952472690830175088412450248195359857976818830476395581492157636486782129594004187009954536014936967337368533797423722627866193169818139775909259115884058940513039550402682896341943469556176171883835021435648331954476324175485335164333574828502642901331548465693402450011386589205914493301266372783911592255178055712425710084888610333479891092776133403254488922755145568647589633130375022750213720934520010252557129086520272209617156879719414853386440282847351581203598682630535612418841346835075681848785806361099660580818387788278391003838064684031597165215355566074136993345959704283807206367873283164499386660004559982990887116396481885997474803907411452545473543987421644876134737430741247197941314700703164801276516158655526715916143660332308103831013150597558622077558924670162695887570890335324465378102472297477804758853161554696109053958812456568199532627032554363481424955752667710962060169593006284099851954729378382040560478125892870935236326519933271647016509577402792925240067027229165905981499454618160951594245608123807269692289179548990405471587926618848709288219622992181978807889241566751122110781952147984585876716035751959189138436559662664579194546808015195900019934682957129913669356629917107014914695030954181799083451719773925341888309496553786742721972439045893622303896829679374854341164950517718415406841678836217191544309667361175606667243096728818075744380200260947797968786867734776739252430936151358862660578990550571411057681192238890146006035473462981050493777155644956874655821654724453007672968945179161854240531679679587724142281772527438425326921633107092138471039324346688266794882347454507681464687678207335529082030338233106281707352311359044718667713007250227916200885653456443674181743436758369281999344376717363669972635301296580895750066434063749291053384221794454598112535170717340864467015371344703507846284790432527053600022264803939882139461338634651430264471718943223021592763116613351766120322443103425552597847039506427538287754773488379888983590052550863024777511750980218437146102716625116245117275332957837266242744223287242996232984805742352665607001161324229854622508338172064158293359338328607136319572032247439819498979011599737845441404552081410683404234234871840082509446958257485500103432146500777011237190206944294681566734762166932973756691304822458626537048671843765673997819011158219160264973699613713683119504763700079908000273055373901652102562021163514148251481811371846690803632868754966856406769641244376548803422632211703186276754961456010601548492731663582898949942841262168053610364705827580500810769030392632951215393745992484979650846300866509610837322687267342180680550960208373651081934274008141422927640172936808533742154877643194660455058375125869266423481949381376707966341369311480720504679752598094333507096630494888217959574424550605697505574925966333227376529931805340426707068324159607057450108028156505654956948235573885933630565698704617017116720484472612834749984501103655688622798625651681684240346825094237658366806674611967781860571003220077857213436621151417777960826265876924043407619264402995285263581482893499525653445847687625065830477546332065845663152062708779790883529037279291437272440977552298228912891353164745074157162265695313850417362357282428967694562668989921742559472798558515369566730821824598862384640310663046286441260787228324286892493271899239703640406435862403859402898506376123334163797142202820583929097637315126866359771941571739842760087798409534540505086791469798116530722637797370848782835166683258261395873125975548755193967505007835434441607626418114567723784164329103608355425727000087123012055281430146619956902187775975408143065518172986944380407367487462822657134344086219695893294427200545474019707444892158856640543001646745450870501610551102770048045837460781249713832899407303195449595727558868087677613234661965294738993369664677387249376357941918520530866388750833687734421320085927174969254144936794091597749844899320958792194834495341012559339800035960872696132436972243503605026267062607332952529009887388971110242837875543115433363972157009969572492916824111322401258076811769196211925709476986476922174514439792798448257712460675750290223455773577726004062362275238590079808468488871025849645155211959541077592165368202603507716491463217363921658882153395950465349908885365616376111551038836096843927082573486872757901115759676021664471815944253158871473900433404236589009935702823687501431430396745051857501143809727409217489808051132137266643001751853860587858620425676904581981451347970422088696411481095826844524009958672611709906816915023720242966351531921295531806732235306881768546031879902396572681035142992067815429372109901329844596143103797656233947934977724119702385458502130440658570622054493031318443059741729140394561288054110666221369962937767909509702654503654234784944809639701739244502986087751544506797556086781671521151107132053972437111143992006521254418305970329479738852286743117520029924434923986222168240546040434404492912563818485689114826227112842315761183928219343593995300190152803338063189825878048848499249491574471799836521743406063395675002622579152991358554932583442594550651071305839504532003016287151617860511061973869011883430330464779951677604960415807579670396081447918132229065563943480765585386587549799462432856114352444112579739741829694572090134545442042512760105359358972061684890347271238702977149181251547469729014004560521589777851690280321888982300819329847152460105915740504484195398639338490777308087739576523295020091996137841400310957227045741072286929516708960885481673825302615770951660016260013540265544980998041972582916012189280389217351322345857732354553471387331278538240418041163572147520534579262243004443719799958570929591273832919950157990055048090183554861743628387450987561045531487366540314443886961762079114275787842914224428636634554894475012547131811962407520964743336860903810053261010288778252834801519173464374201674526755199546129409022370361702075868664181443998301104320940622381308543532486940254707130919735042558179765111343545728115936514074896740107899650293628342042207653141357948719086763958397280012494952973289122807694128681742831282301759028768574606980428005289303220765580091152621548537361638738697216041287610924936321817209997121427772093319944853414945515114579893222073234346182861939929371155393204534029584412484805853756764048594732064634212478980443105766437940790460864956631758286605326946631071357547098858051431917044470999440484243134544675555411413545757769643224880050962751101736789117040565114645203154996017096405605165831428519181166908537403022241449081923646549509767476759243346312581888997801863488704730773946540887089915492010647036746151021088741017185011006365036046595376724975581036352377685892776871613770503659330873332344593724034617738293493193137876303177234729445482990780029507540814447664377584007672627408627662096849147961971575976574457527942219014553485463790540052455082236140755598766851306965950468036966065653775992397816592907521645567218899145032175571518839128712852854806127007278063861101785511623166120398444008422376657075504357873944516159456832952975979211975102414604929964888558887108449013460690791831109042637378960132122082508646757870915891278269062188380412656700806275064414850672543772790807524697985255783713058454264478117715866804887162215002133348219887925846095222812353554561098197162134648499586507655121732879362535227922682725307720379001211143452500683588059493819936533224873415948815381368330035108158531231272143141290199256582485260380763742690048130846382772520855868963872334165417159313187594086740822726866419830416102041136983883067130612601402146633036098291119240186752038749774858731451422598194328213866366658121765006566885937724304670040941890727431703327342588736591935024203985168263443504972006725956552070231640193405879692573903950296100364053441732227628243323468850777744323009052723802053087722884988628951646518258421836542466082001659102931428751638116176494991726080702303811002569435336584102055768833368245265989800741147646125663221720175635903402468961054463086512910927060156506063531206654988795325515598817857407817786749795405024583252819668520150303178970451996745968278652599711655942251939328175561419918858383901039705242161002177670387319228220316514642186015911825275658844168431206767239442209563808272675911175841543414116045600730006711248705901443165889816566546089318684550874799881575693482059262059204135190906564418197520802005124008002476325925584715728566799553055524240304132445324398340981443802769537647230002018712024747397053943443289574322252434829396386968537959173969007250591673391767310362765315790907849210232554696003746516842808827237331748624964339183830144977972146730899320711558771542508392349448191752939994629405168870794077005108030564941276624292769042585564519867201131076667064291751902786214684817989520155372500669054588813708026602616771777580394882908134696449105508649403821352183099276326891166153560523722684971290439219235592244258807208507462686340499143061126120006448820586631391865096854425119434545118994449553173975361071237153684976820226784476848165313895544180179178004686494996202688260293036812938262824451645003768511536862626155059722622785285409531215602224022965694422417422603997552275582322055174873689022004999022817213621013695246136621870254725571090345817169569595487926211531589990188732224606696732636842720622884105685591961812252798626587300601525083971588796411851094176895305076054358400946694595019878688032125983511184433732966208647536584670073504810082919021717841305525540256121109308055751671837053930585557770557229849447377591684413610126351692428273142702471726474332282067091431017892030612765109817000883031651890795910465923076126914838426702010462889608318136449146260193270258058890799280954140099714962232214200342135427483443844423443197892913743156730942423086328122847813017785238827427352866225799088257676239078766139342018423546172296234519371754729057868484704008160582458866419084115599645473187954500419469271067209115645882539788039262733533630066334797771334038780885460437890619562907257669879248188764973458812312291178651211255920005911149164178146815081780618004628051968194195791786841264927757032053453283563043102072808418598539550810146357865768361476797360461319132899383990961033541520299895264350157804711839374261020846168969442119486816846991621069968898505604582269130296601280724153076611826668314182159581171536168461780195137664937614209664074205481279364156140883459362421508142385516457778165069855059384086290895006240323697553918934504865779399167351964861350707923313610721336468066932425590183030947366765960581482584592468158551022352806112133972891122841277897451909707344167868970960513054823919657852820236920822019990728402990442814786433536357586820147879844304738534479379980620232513576940932541777732729435221080858743371524904400012152126525950505063325540080726974273478196815861896879615011134940497367234446108099800243430237252997739406888914608859892208302888157595476025686351589244127180168350382570712539806800123590080535071040371924184485424558462099882091504949462646222160508285970874258625244133693929270869053937184117154668653441087617081379286055701011873057047886963152539196597121917258036683380865613395878314416047251582030743574400532974629928815394009143002557164007258875992132527121725005039942977578795341623070818716978591727604122778519513738606093226130179285121403578795764908552361159037643935287661373115659778957916612256778984764346999432225187621844955055337332137716471917098593803413498016693403506213292415639034666010515069881075842980903677488692286762572053032365380872181602076375715553463540743486677363623368209591302880939894497231551620190267699277959549854633432867392664924306669616436118689608923670746610483537375540328223205340319455444048905694932516342734750232761041645121411148810710594828493172980440493275579854612427320818831131806409967814360705045724441731651576222521447544610183368295375777280403406327427630065047177345774716099360117811906576460442157162660422798756908007595480081254360538156286309136390909199694858899316644713094382221298921677433158481414226008938936277464105872459808022421580973386960701268020654471830854583661706392407714995471693180985163205100074469104937893788520586692748788041836819875558483199008137274147366498199491842439951082792716711035160625805653692473806166105377444157836795108514041038067752249442961197092596658586844393081649172575280203047787678069634823269517234920003103156401992872112766910060452427193494470854922879638563542758273136487350463037549777307276606235019824847589472114176611897509286900835676241205905442474501822437464155412843851538294683120261695626671892074378463235430202003139258232689099326414636122174749521138265352559719769062444515768026573126809213405813010080612815613658075871474598114091524096371672710836472467851311742866475870895094056941307027466294652092777564486842973296636143215086455497853976185652866157218002249672106902526034194535719986154302122137488991958904645217216099971280674430885396192126195956494868771794083395116853222899757037544009088816982041083239076384840430966141659357454624652625185882994332673664923655991027808293856174983792879301524978195621213811009236417158226533083324312551203598572542754165468608021984409313441511893431163197357992475217562932671883467556979976060626821948528309546303716222502108313303029128448151153190852163488907791327185512437370535518768394989559273245554178622987444210458866318332489346502887538137481195248365657287932121900805121170848087790855530249360100242724845585714158479912050804441590136438219297127316041169638229283806728262443458129193812594942445760587406689934607691153022961909506908643676828162337414606964534693273242306919218579900966991295428938329277376623019211672240587030950585336870417844388989014919396921883577311550911519279260853821677670569942541629664482158374915044817325121447045374121418610106635362363439568678230235636287642288503957480984279615164705538543703780258890416920392176139356016887755986536297955774810555550988237992129640511229354876256767991318850538936855193211044508704188981673577542245947695066100996497884571000844717611678706031958600806477371697169101160997122964416757523943699910934507411549785662478315658548522413774383818999364373574110964717159981694810174133388276554405901221268980148506782483480727790853811222180491301302530143939500046700449269822000961176521744537384081950794640015947867549415509675749567558651392587555635612533023445531919269914058349518225414983632936905043868332579907691978990830684521327723301380477482970996049388338005258673236616310950306693398202996583278299516327916163035839772091072729515590602768978610343520784687674268499350325846633543939137978053074067053215640797356698389315981955941188175499332952704611402116107762511728192008176363662799078224269352286656896577032850532558168056243092410885352551957021187655800465277633686751020840074538272807986837337790275643070348555078367497535904096501708952430186292932050831695146341116187002314865708891705646892699766964681577994723976741620008059354789290644273823089192750724113793783007301720043199909546254018930623064937275284491656461649252242434730822066774242556259628336661479996065893430906949885725196759917023194681272219907014052840545816560508059752039883119250585960414107875776924237935944312235192340171653834848288285808952843081391454708858872792935167106612010941643396953050047484015060324036218266188446284147041783268204808222413129230293950412743093322239887108235752675385547218227313479315608356675838107273791159174126241899142955971374374747151204462647293458474458356231490542431123189796451186344623659776239935845485644541140987842121886160835211266428456345707169253479653440155776505173672162538755614837604748679655927623384470113701418498404866471458906563635961365422524944815537251192332173648278628239425673169445305006790577230952026954667622321329307992249708083381056526192379542158786876665259643296098835227546490792403818998141855467249095878035747142350616590815545368649215076777393173486236244623421616148112136682603374695327662319242990242254598521024602691150038656229101367860961344641720975763020196025215499209897699619696369766746530665045023475777598118657814692689287175390346360394582944492713082180320422419227364088021376465692662731427512564594981853379914101029526638846093607635319244960787644708553490617119989300401447033711983760960229829837835946096163414035351051126062660193179161100718363060313941136832557487783498388762913745307014818679798187147501273201557319796356244428708933143878200907250509803554703472202530900927843612949014116087370439805935448972525378387631101037247421640130370533861887290150265140473614436772498349047472605914569041922966399726438769431852623903407177996200487160088411065455550904335931949556066759001654150509647260796454527012829777100922622762334419819395423919952184076910031149293798561156423430129255234554824378922303667164250633942060306318464386765244941998358332151349332114450779746630368212738012763678860931470409018679030260783535424463448527302137107843796447746684847776855278148714867338660331177356790418554485773252576759601930890125801280596718146847084283552057749884024152779210106428149215391754776022604524652973738653280861786351391203435033270176700649644717449263974341305418557560461848009727073498315050423621586840836879968215647589602250459761821582199018443545422926120101802218504290796240901625264880665982072828435175073943146803197161833866860654950778195587679928146868735340293146754679114068984404182891642889878811895953483401876739066938136907222522412487481919459331434957465136038125837366810501960709925898505565240553029413126779566169176698559979002740651047205009030824191794855157353770595988774045212146192558002672176090882273688588867884948958835856902647732712906745236061204719341563570789615873457108360610174981204794129385579305902157870126143834194358222422312519136462902645944624164697138562952980459537399355373960017720973713617704582663838105011297096594269961806585866166144981357822146513790795123475278939831217433274542004882452553188289519015965346204817168995452041312708554615777757555640942361916855986992050549509573430449337149613146610746910873704735038848594800466227902789211979685706976113361056524515087119577648060747901312164012988307138986376322086955725655342154822246497210544697622000810484742819097040973862755917834418971397256167311076508033339769003098835919122282961125656029341997699245162163690054949290691052280388205873575484788231424209948134117085880039298513898765343665711842225502831526148597806665130235820046888753102171143819908768112939599978445365911512215038343464160410842228018781125312334277287839915262021551802172557938382724092548341916921630271819692179360719824301710705490046113829008036093334608673720588746036805742980271397533994725591123660238665835353739868262601691129448269275033335728770499060591836208508087519499494787815976208710934102134996029615909459819925220257275272757587085774970085359580812022075537906188509193673095378965763508288571490210745486742309123820935058898652311139103004759870026893472170643792255370582788473517148244055422503455332710170947716092106470780238033303901763083855121288331271838788855351775906077181858217328571896099010548483481251322639626481513316691628138520766805380848475452176235394969610346166365539999882508240420776250432153843014312094642615409554052836505737702084258883157848421588740094932403628214885011653014211560631183466036267914996104889430724141989776762574012176946657401554290106163087694014747010661423330896775099727320123804154514974783577368735594845798543399058341895796811614507963987958018726497713129675060135249827089074257412461114680346486595934030142546394767482341911726239116318832666722271337651187196671814691362135764614982763517978711582063508901900385303729150996380439772057726957379632129539902844893672281961336041985333311969872357732044041089359299684995523910569488693347524882727925502101508958484860381645753052979822538301214572700687772534260644112437797770798065402321142259464205818357795446102288679234530416933030210753337651126790588757644217876194775910088532985270500553250235486297838102648212483939654323251511169731272549553729693767333894609003528003725152344170673490044765699544828166496880916103218313469280432808408117105342964509198949423155081869500773576471568800784363107161910189784486515600819686231211429498224442790430948833909600644387398890412810036262118607594453348138662055561830113186960819847832344861398668932905669834727326854020650273858848523334497930463958074911260590101868835356762579627986495530793814455036561547576500454238059028495744537396058892924217208826787551684526510527260962469514177258963312620659904891939278502858717169745414208624909829915415833058496573416441623048658086207059465781624196165972074257498003316776888796189104061944011522358303329552397094453702848985114252963657528805199172389482253583160264155282198442961168143735726697555845631372535026351621234159971734438216046591149893343213601261854097181847154167052571084104969046393726491213609175303617325996353974155705347916656913232872915952757336949154576812743681543773845790937982176954833063538130098340838969397357053713049524644592766635427179829897238447410877928261534515437284163591233050926588418826800040497795959721428932629171749207728137994187336992979043620152982975994530056958034126488911321776308372200054316649066726739786913708801428626395114386408640390215560044287648203590663557133536246273372702720229741089330191554993852506451627220545248744275840360802139413744136761299329392697127081586879799842283691626178127832673296968944625274243379632983157859230110092262549115632614776525671320460733465228086713603555688208270508889311648145961388329758349484778665956604044002105417619989766078191367349305957470874350503294686042018948731994325395932889830327651119836416570944836640697278193078644189734719114378781456061102488063432680369406693962692109836293270077630791298957816194546276937532827257831855920151263884775325255584829439674737509869423930493733115027542308616022782156344629262569460703916136295044461110072390289219691781422717330056869166232449989615522777638970647807705071020186832478874725926502324307467851748054932078948971139052826589021852461314232897134843853668698178196880145870858931833781881616503340834566522787265149319610804090879756911268205852549664000822638948798218003074161772603072719906949879907964230260979219285379051955432505637874595877829842990394146035173490602651582617741802912140708753768502549287471318175919681647058494831441969583317077540640604628357069647478503598468239387697477668878071162703391291482283743901446332773374982228577102145112569364759270945263105838889487963273638792859571798146328384342773445668448816872880288658466185558001518296203257461449552488548953141905105233016710719248353131876867253911195699101449848512815886393805805556055755898961349081162689272347384896076820835867985644720536761405281686312266151697694956559781613617928604691688067658910881939092026082171161436445104210609532854622682605043143433449804982623012184266238550662140737822121324355756828479517867258849118737994365699383239401245309996723746712334720893354704144429292417167331201469325150466176640837422533730179419335944515663531594958040647469725241513901730640833677799323567061272432644728214322239440552444506840613221613769868630844891930845931923984752768783450083237695178749549519899137896007413216315819430029549044624597269777958295563669084425370025047374275873648976225590912550608557418790942142406865489293819845376557861047931826613664805688009177392020595340340278431268007439877148766499781155745776737022543008631300921901869490416725513631931850908584482907409525635550183436020539651443046032194404560371477082088968039159144375814007373977644142466336972806871039425751401098191148563352639902993850138514742529149881666961011827194573884194879774959217036004784807906790827199756057794909328840218832442332154719946459932303038783682343556982121250289630858009611152173842891312662955128368753535911789935863699393855176902146271016952146290363627674838383753326386527392597313260570828516529833407230812401528073449648131650839800357521986758821523958008822027984405301042919270334028371602849263379996454709892676880328423014953962374992811073965054429309794064484260258492238702392968157175349079997807431653569542553171838213129759758484878720619892364928702795545524188830838803842172811764982640467858101234350636815291506818128239457780508845856516731995334654414259096841226441413078429286792130142265589316008544976364057715388947552432026772197675796431440967038854013858234670181843769158514299037938898838900482728496655184708079490650379333295912019606306508355926467867717988531258031410711566304843288690427770344229997957392709941334495327561954711039060152339909156533483896555631352126198434118488068481590687050074095027129098908199795525246889964125962223588106788686098975486763610348108313039280733341260764029013345266930313875613026343858535187699601388150236226487293205029930973093608111630468132744113360051782111762250418977337298050583535604812972866349687021066423101097308308462516378196094809511059016293788947513129045716482532293225556924950869171038936852858072168202942764189302822860617912068155725393179307335209551835220439726127050569526097941222352433232648481620147620769176140917379531609063507881059369666839559746583901050614634186984353611317878582217248312902434763102587107562922326824782563295837881453930540114464927864088886677613538274708916855996693049732098677724744974199469892618761636617816031007372008907434758126175159748084388197513720552763371273360847702387013791494661778934033448789802071099041749807392484800201734792738709194042800379932283241189291087665149999408296566650581203903385451437463442503114608002789771772901245008934674563798493057583057819577113059843124277593321585244368398112448919023100950572545402887007239874603755746550764672257753309543745015926172396119185056069609532738415732313664421505486790314293638926328094404596085266155723587202330519078746291141511565665600481696628241003427637057074814738803177371962097600118212464314574253230756449172868121054119699636047253997117051373801200303299619404971622471255520525003865577629788918260827364893588874433898300858265382775554922671745047510979476197455003813339954643087641149712446052547620942977154208615955450005263158874937402163170978987020723683930267356323655189089088421209979625830606422254719224784385927975582575176318183533713326110185740491825470972029662942149851045892345907598220442911960441605160902210403855187686766982620056175816537943707294230900594445625702605912943284659692396333998560330881716148141792913678061347904016968690845117916372849741485358870587542495035037111966127969166157385881746017129734355313013603744746509013872744310891290323090375771855621048823902974845743107227183259596885044300794521754177458487361566885346020870046428069175143616603196271638018528205397783406535808742358948777913215867414366494042696840387723107293839718786318069009255581080853691031423784806281423248277974023435791176396033323033881159557369804171546727462208625179245231847482477041012790330753276803220362357512739560791663308495275694500426490198983847399109158832293719313398749500811725447434603076265181561858718488893083674489159573406291950922764065660311982755156746640967763414329202154615579217684211592583805013425226923049118433305885430122168869138245949486670318636923630204324896976348307171165742428691459280993683700734212661430026655412525762945815685634834235344811149405905455401376757370369346737188702013046809256350352391988992440571072618274275937897405802365848487964699662635574197081357284996903239657544754559167003548642186175102866650866078776374024953220977227698146864661796431837962555738544576448812226887943745802019579660994971191593374608450963665119212341848490199145915702148857724575436221031382483602978817658972391359617059908352719960697784997966924302317176335479454712287711194708976809187646742003420219687798303718449930636280957162547730210908098795557142677763268851879478843251756956515705517192651571846718134618814091209154084587393017671772117438233060850642836060546836549610164994751604242282161276738568820457474221257560907712495888554175657306803240708121247748907506170349010299511210041773280115809935364840672488778215453794148757006717359875005694949070223915220616003730305745981650727855934243485448418511742240095126992039620284861588587465530472713722412870497409113363150692277357272861885025126332105968285264220170630469289303011921098973324302335784119734322648681456038132857673551552184349117279634781994945063328164822028193356352635637530873674069095384681844708550606810799866195513501517326460578077049884284544467656600817921222735018172902835807974533266296966485378073718389935091607665976498779187396353311458476100674245103793953553657008156031409718678170002870027813521426151259540444836102517576342957829366922264406660711521173520929208693847686633404321703229469051661544608011322248814597994161114806259238840317249952147727948539786351568721132597169101173586397050527603936421364448331852916782060997199784090440047775672332447548822521394900862199177473800163367729936839716128864737335580098375525749204994409914023558641743714947249907844384235049372150166454192503328357502180933965314323717640972559416880295398101115852461137450619391153290014902107263278874053295009870874573478168094424231160878468375161388481789812568211357272014498053611035398306180770559366671939432501479329050925780974880431139501340654310026900077775180590650020436893140727798175744990835426606874166933257021264431205312194849496589171578228494192228004147262884061593166925590507538082918607841259346651879160846162510687216089582205674954262224645374410538933830050451370263810871065542929928038112809300733417138305860709760118194082238564884033745282060535322368135359281695299262582916981692614749739019290160120086646716419208785452451965755040176216108678172508575276082521642687534523392630961169493048677801679657170945813860658963312196102726562251934132839864856175331588496088143864047217680282885773057684738840770447624432548901443716812301588938501798492089187157246403796891613202005041736497384406031140614752156427908647432312823522537626271449882278916507300513272206824483874373276201872056183357258646296224358092503582672633855478674640380427804123238648113701876137004968002676189987034402006810541840815174108805001109987079454419407772357217354770065274383227031746061666281815978342080359349699003832975288719179272368352674544554982718686793868911082692199588437135751003437308764913014461985588207727504135319927215419685737275380104967289251572634653333803435718657850919454574088821715848309171069694061291624532888505902824195368374139843330726391762320309625116881901423008813211884954408529243149777993575273091963856317730422895507970531469450684971303367038927647573794484191525952207373131724148738324779936143248603453091755303231267842066048531975725648029756608296010356587454396250809808733005059345578658242031587815395517009843688337344827109434107839290142239985998528386368090920674513446549281077215600975534239997970916604322573432054149210535835293282657146794914884741685888116479788678818545209487086363194011341091819649624669620919697763197160245152943767680609687116287558786517041585069846192692585983991472063468829525367318538752995351441875273107920380414726606356342924695701684043714312501687680637245719220396197098851590529125820125139903338650219137761759782565567736653457710173140753320710356648122443985019793763502409042917339403103947088017009099555824446366811746025800209285632299259695596183749349611081893387491240372896709891737860345666582438641371084282067679153480066841814506797066455829720182266139732011962015113227624871200649437681055024250838473763389488279948363803386175948835833710366815717715133535497372622754220150680653036350766867262145112359032019988041484505929127841605423612330753311944852380583943146432768458869772806020751403005454526098980239272834501827768665064504105457406897706361600961430330863592611458475971229339753074096769151762811506278714884422857006072062305517425613910545415470114970411051474050601546314037941794862064513581784132068743521695909054147836038568119182362064398230018415005464829953789523289677894510439416671645606998431708276085560933952993965327800760674579665288187074734112389410247570713767646793305104558221193726092341696759598347476214044735672492715714165561021402132045592940185396865115256829093536866160180130110392395627249102278827352597570763786037550998939423228334674698024095869277858046084573000088564242473955822225854942630423616702008551924950958017495179308410771394465408385178172777667195711402466466700924582132643001236782665099618504437697721507435145377735982217574974728346419515740197611891469058977718508152477582388262655497080852728131426786797736518841617525013152511224575592132378755429052371901854636043941050602301901332414625452636357071467193203072680220511338963767015991447856118368493810130662998966569016268769517462485454152719827854271959507460065346312471812553062794285638975092446956607900976307974355968252770431607818552795033543791039133018969220558447531648102674573231307162537628818171436590780797860607045669289293940697564630196596961203741395055530965973486372196139391880383925381156948065367643018932267236263615722204578542345640677516426610825413646368710898786434769280573438409037860869893125891232125094285685342191501716740486147146314190368576088849737039777999721682076786928900973218059972541867431758145216274677761781636912960879137961111832160863020366388505922992339304388042534855270348434725439126068899282832859306505025860307859151839587000760000796114942919850409601050930835045330937899698230286545449179175809614435027902940243183435669749902011440908352897716013410797793125854571661722887557598890721001810734380415491508731619517629520940999684547538050731021493713833403345497736471598581698842960020736070208583993823186941597675739938938068707856392159723104738374190300833815214017467640809251491476433097558900403061916286174396840545161450999619847331463660046581346148542505033211423659919933706731941903804602032338248513260332430758987877474975390914026030209498022811881748100559146111581424252119275322406057173245930444668451538481067861894911919207745829260265229462025446178565831984937689758769916318297059435027693484372416927016561790268641593740613393307725863455076313388685379342654680381746986934266382071984400025889272005974660912112972902055698618887768299669931567935323582492104330369380201256612987392008942823880530137677049175545008440178677917780772581466530776121113778650275054589533046029713735072224656052852652891292249927151071106840285329024129070845153209351502093312941125636074551901130429729912415155253694297344858403428815353338494280320740471265116509889891944416388689741163337722731609886649209608456471405773571719239720243724926398106969703237741233489451964301453719792209848107052013987295104128508864891684859567463530929464129253190262055995260671413402303913194592373867004161847308227066699319503372606158686264375639799193463368843744285806700863513902400912635725734963197274539212546285839379953791618569468586298407113352316375583310509265315079638809443334449714160161614725573871621355074041921937850996474505080576096129810818762697683734825854981877531003880361760423565916169385555387998550257819013396323723401839293156914519188649847224703240820212291021652573744613876354548069403896345278425205870131659016932202049684429337540369543189053453206307104270137987984254649434199220722130185480035032282096225322556466836240850350439001647900498774750517757405323473000949700510303846965091688042220074821598914942957127734867559259112798698729646660205230982779731635637071573519155565559021526201843063134967067865154160337287029128406844651360513494751883641125220110756123824473398236717015251747248432656619492679040780576048413216858622552448724781180600653137608954295960679832735814225414382098516597962122389267189020874731225333715628087195711786644864102789681439558164760596690003071026166288179718704327137474152543453397807251809362287358250946921311444029475255454878845574059600518732712695473727742050869239214948398900723684777380176237688437530929699285955702459286747642710904348792569505627152060765563805294316370931620193864866391325736498254495681440901241871009947551424786486941895144189377702797863799096554281830867996984497327362934607781168301159830273021626425496776268278363298417458590394162513766208101245961689461877494478894711872944508308433855801939194616217742878524586723193672833520168358368709206304195002421623059520242020373615978278078625591687451219899547498030492944373087427286951226254996849589579449338634615290533323889342471933306511935644752169321117910166950389245269849260339338023363850399136737769227846593923886991007127665315289861800928982453829772601633380495439751311056025734135353079046263921851410818142750084140432118255426440926303377657244057541317487658147291810394166993727913033908213275934929719342386706183941814410604698861400255448464118472819324339664494713310838499187738647703200653116388590351587881764771286389333525728069892010413558158452242557149332644217372856992528790730332484735832183477241559530825413740728291777646012763020892123021949612698409271407206274427687888482890975623301395478057512404352017424221151423651199308343010163571242539923122143758584539553949592414802100601946702142259588716239891214201092547874762511304225995150535955191420527048297810318865297861350442969179726547737997568881963591839201834723945804380249002933964311178769637831137641362970778991728172308062830832135961769776282995964344384296700667552843197131293555378483546383032507979188614030647210598778697098473805763694074523244895666166608048662960805301514361924094473442781500309285572615115056180188519210008513479009970407461193774397373376384452144418147607227613665082619094077492680969135264060917749329572929703666967997357428398639583863633161437843048519933874098159078004928205954241925622346038529736090228981578081033343592638491726429108408031830755997006863119816982149843340697454381101963007448157029063933567671107265706877068788859838793256137828580519497355618402227630909036722618980268882986156036871186836426905636827509689065527088265110557558266992769764757238710048860468925479361707375947474981418714139895517761244793625494509195049882671247891010226593508672729673755996556925604128428301418287450185462265975797781129539379709283498614556835267864407155236016735062858858681193351266786301773910756280089244781845617208062529385586784298659903241771230483416509434261181988450797342621945724804814233839999596485218668951547134464181477591585021732171405184326203550756196325757735974504624649321242836471616867047850083803627092744832686843979888493794376479798069977002973563925431776331384823429349434802967410646960265894771178516935412326750719989250650313645627295443694980634444867769182956300224833770539527854703196191290709640171235194419519551026326330560369059098034221208052060319185137625979380790741309398424647004384984174343695171477611192289085330153217311622730344580993614524993269630672599402605522530564782970117923490536058824002193973946708618024464181417900569550040230170997684006640596777657395257013680677136589824987914312475145222540400392117487858129195021462082758129035157449775398438450312418761637176419320745739831545030289138640423808077663461820984707887005063614103301136856168832282309195551534631279792357809852973442905922656276866621729151973957654353876364594228617065009965981302385324836714231844919561136644506704365041496570841067794257977948556538309054946984596145648947680641236003503264063419445305079124944156053622039982738846090207163693914663118629638019235933231432890525619981864124120423315104825897837494150147699519951480216203705147726286354383830607562771583333348406046249481669235135015494693936845414852549866738060865859113853648712840130988709055127153950368663501893725097062832891171189852371067279504335612164680037511212688083409761826581816979770458307182026624706761207819443231608955058519852532296937401778870553555452282466657402028352127140819614074808939911476793314713479870672875122636312030690389013138057470801320152851045077596401639460093145095928992211846408896892718476137502570844652109312700687385577204958770782793602216438630904235792378422292901647102730912032894724431149499615596786074961132096783312135102841813786028441872415771833721196447478293232424325427842097915975429010201742007009343370851989018177987739304441090708420615298601981000113331322550284326081967529617718106326161489357191828116504108270257208322564346510140339710741014303726418715056175838918021026845638861930230198119656409370316872104408408958319904398197128446727269393611463698515455172348166300990479322752702345981429115140171497036052131333968665896148193184713128540412752669651432414315208842970933772228213227712860676787302462946260997078284132404694462651006032423188749167031560879916852241081672902602319497229013935239217972052245886291007691043648352941861821765080018704232405509224846815793757977142046277814177237866696715753936332990635937020648238117071273805630270795973851753990433582217745510861979525409401262165291519576974450450501696622866512477435814625523116683467858292732927539168332775363839528734928799762808759792238143965521722896792317237636816974851660924991099912859597296172151718762043488570047137945936983132744799710853923686080614327458472362337151935439766647032524521007467727835730020422141876005804873699634332236206649855458071481555182999628313263335946115735927972345046727941512759857397646765048106100979805706595659395854680882812060250271546064849306302419817624324845596668736922018925417124753375504330367724895367396878632037521209455300159492240790487867083855942732858277458979124937337125832042186158939641128116848585122868830489817505905884164667321820654637105328520256235561837458404096781990727185251780469489003736527550419444237037640252105695173929160596963272995208967333271143851733786843678584784571318101110988995213413441683939645758593546543000076772685597176216698128809334587756787608096471969584538733394795381539845415840746057196422475105791596148954547628028597782976687548250864597841746738303613269833240878574769920164173516248863592783493327962725578051245074757634921861635917493713653718668326757709138322159299217426809151251505614490780407402941568184021769646884017881906247238367838824201883546734686556379029981205541594809275034887035207724711378326104837847500015390313784475115078283337958484238792172060866062427842780187362369516274637595430522977722374148040936661763495259263179359110633782279494657952398516968131337018494162839083849455690068590439066110091337289974641429076799604470090669661921375986703914410226523746074592002978524430152806998076608446673540426132054910484327676562844625389483758154434002699975233095460426561698549459166170997301505582844634265960980209154028396827643133362556436658221000242882114244910880448040691573078627817882350453518491247198793786585031172992588371772460141851554246277213009413282369313588591169535155891944732457234479619177864859889634380820710561473780907277245739021023638762749232939243729634452509069429009008250785798596880947123486142984126979014579893496798311356396917426588837500870642221275509935971811681534313682883778809832199210142966073504523065564826665514656367260662540766749453581496799087684619196556815730363419613787955822836681480734639473006893788413437122136094041266456014210905139908678976963641280959090949921618002300362678959113268601320389368406100625492150768481774439871441573271477919294228534545617760919944108645936260126613445941614999905029999824683770241869246086905912615777613664946616427026001656674214050607104097477406419048707314687877724007576030190575490025121640578277509809645873724540469322534296936580436060871879919213765664503573305224214370018362665707710216786895947778121998761778789838082489447497298900492707613242806398071446314250398981747601778900230679004378211947017922316736057770725684770141848507167148524355193231277045542611645647616798674602215590343577039139561770474918886838796750614803650714818321700129157586802540221649305826371454128697867616607048767519164742384881143743655281604381227918379524094848275758592420541621748172492973309455446224653067803500607772863643182574867163253637459398081770848467624588413932616801418704657338570365065198843261759000198323114736099501244979741540255905239857966471682198122145415457557223567137167433416854165108938134804159111929588448087270884308289003640058047930853211661768150142341533116000038321817176774686894235429846022149060911558319154365431339410647534609817707555043366104522562526522063586606832767674035077888004643696684887453464610263736744927597983931935327694712876496840077219987555135027299468360342278911451542161340585871804507247934017843980169646517799583242936916479531771616024995865463900894220856686310476374207953333870516516173954177006744042568538870120401640908454823407804570382102793287673575818599512076815962895089588047067573415569699681623144842814310989752296189088442358357822122988747094990353333218687979303722874470816178173852478236542921770159117889681304269889198395589560264533204377516764303723547060688243256186803711015311033367876480139196080039534829564288003354028426935166834635999575428753997459326663606872081291638128759523782608116454165476082542323268541195497655877602607950072270992159799395625057139324229252274336478602775543806864967813684697580350906885004940043873142569738705617442575303601827046689006837931047079748612571212822414040776411316221610296931207398165328120827753006096531267123864159009801270509289490904170019118315264633066991681230063737453226041239878885680082602349339976031904136490999675177537580757666537789716286086679169035303644220930482880258469565182380799183567106823354784033336215343357194529450613371609896174447936286420368565568959391676513083815755354962451057088381051847669355654711308923663389860573323089697652607912799988398649296008816905051683065027181947088558197215442736490517658523391616205920566473799408994124868290616228354122911889141786652209675809126791082615871655945536560646070867005515956134774742815058626193755564539044094657094312225304416918070813996914659943986812168641199129660789328178915065961917664119104698716749560764577547342932747142526302419964491196050391465210261686721047635737829486986989701211603832499265329677389875436951479558189262053582368672852733199745610689859624375678807776020761064756764248935405296909099421411623318072323823950950646784173282645041046464952648309183743454572307066736430855419829603269920514648987513496339326203949081071079149439878845549154681256426437013642242110963926909165422164521033472726820971236454386223349168295391225390290009856204296435116794490032504681512810844292626012627657290710591691175240637696456143631278406385105496398817395923418401965051249461628028678971953241235547032569160916605744218951325294047439674509059460216466494485091690673750548535705655634508027186333700855240748331941615122996039082757849172057763033521026581835535776531332754690426131736217300340511676293664570414565333799862389415173472630761220526072862671853814941501474941746715746231063257209560370821611908365978054752979763151256916022834768734875396259734365112265267779123557991322147379849893794574955263031482171416545001224537827213903020833849835441683253184441685489491090011982393330029268519866692105061337105137758298246079920344377659447169652689514702629695491535436085671993228188788644161510094601584377636401507337805039388438841513039009434981579018794476300337423045133509465960969248341296346061619237597108673892526310078256355395469082413266149283548032936384143808398033951723272242254981807230416642497661976920584842175404211445514129215189914280466876681162662443040663135301388483388351276785655488848417586721312082866719728270364368820198837176574255702021643621098774711296997828897531563856159989106573067567383122792317400885332371596505944202859111235843277631414405376887878359948206014052780790920757089107707046414222919831320356524358912910262427657689130220654941690092543207566607354544954875463581612757504644116655709679729420709152679165178504557779794532820977854903504016989662034566338777062399056009051996221127015633120938371994314312056951548013585715907231034707810143340239004771964631843033715101447937284613673121651303442526952987525235856659760024790461350252964933240141001674775882721126729539641317247378770268681887453308403683817148324825217797188412655067847074908505281809664125671000623178150270569216545432317522197408582938607348181913867078078760060734311291717240206888640834435707747737211128978696012037216770596536789829894915722755091084710895309291698841269101647888153725339133750026384273433368952619093308066548235457612612027525606189508378194527418072775901062823976683611226402860163354748741338930930239156845718099675232439087475779918047144056304448552268634888458788435810995246821300224438110077047039949776689360565095311428801545341364299105962999439632145937926580333038715828714860605926266521748401053908948069692752114392241588645445355701611469391795206186787585670634626460213003395644874836571696104380449333944132111178231969055943261938131534823448181576316090653519443459038606373967297834427499116313039620697542899151835821035104072152447916651354901091897716026393717241036362559913774132612508845172245601678678839002034285568314738396417958920977769247913581956780699327349014286011503157516372870185926245308188279154128028361424328565178855140624626327878396417797913118988739639776361348631794722248168780947695508201134644112756892595263976271186144883931961595640581018748458679492337269830010831707401577937068538722715972076872944417565120878999780792721502347771279150898260453984017629790460035240707379853795560456604251886995873267710833288387834485500294848817229284617781938936071216680845798294942599510839169208116029938502306191204312537882183377357526576309390881289200275025197089984679239567350437441020010294446554239058659739926387830159748770833049151421566129747822808864066802676206834206578867926638588273828337949932512602205880417198936285675974985693353925338951959847231895447588593246259069682932930750045340445478371363176142072650179745885556885171699821381766140664444564774844841107900289176700872254199786905219486885086970534106784093811263012774848021651805328973937983930210269975338465001316484441503517137538953111664720005823084868266976419393049097220242011427539376607317376227477929168917607054780978579420550380556232378920462599012665133883795907121029797173973008544765638022175006038159698841693802195520179701734759464856921571166750138795648561154609005963252968939000261027401837664991674506815224865583937991066607238541529165549143435214961024816888179479625452793640195471887148974119620176526701835032370114296342141484160819421184408185525435861825691962153352901095154526412897847593104694921237272789361604366766797046133212821369246609967685981411573743479571535315058221459077417415679824723928503973141982716527442981280995899806713392013571631699323288431430223278912465308892887287593978149166664421807144877430816320028450611444031742462662382215282280018183174890594633994178135350894557913283824260036405270679536972736611116472810040377032380530202994578521398151194095128109914210185012265177039952458510078929839010546452246196510122577963019661588395423229693652950822307664958093631343684174997932129950974299360994079075717076033790507883377972842658442751726078651246090047750880794761188804362681906955058569590142141274705659126937733674011862832620559424630273966463619185868943487539772617818527953718877912329089859309779302243174907869749739821188186141068412679456418488188453118877160744499215054858172842130747195807373237646753330261361357994867797652817089045358116347445968763846337837053483104328123498604973233755636759149038653499079951242584365643341041817669922300713952072375594221211380815091173237853847177483942977128454302829498264404799959427749165508387279036748011582945809340419471190852595259427825979217434052603487637534350913564412448021430954751375893460648792428852635860994653124273971068473819161106344202541093609242999280673077849923301235148355968591769276154482833583824134508771094711196103311262600606861545637237608155951294091080865478584797614124730170964251497008773155641181758352686159583699594263908751878288214621842331605092422558258904227615537788667941434406862396678207324328179690595571019345611282188064904046351113827380074608442333773201320325939638027644488856767532452907836056848085342622684428291942710687692084746266297824061863710269153274108414164093660156925359270635514722695014230280527438071147552793628989586678542972549218995665796750178586647369144349575549760842237701640499237429598783681662775778905857926944063865027872435352483486349133300394452762221740565637789597035959753246770622962339616202889330840104576664994986666422012803665776024895061321473173979793118609385335240594544925887700168500337813432356798221413118588304733303511220723588620020796131812691163942747590708371505173879631206800534756613751919821752414199111379312636097064701341733839374378135758578822575312566284164949593994874341430268113937659906241809279591666794030130397422339279971402701326992335905289114177733564343091613733008959927963501942936852879030750916693158567501439091076843642878704653329110463440056386423715388884646897730320668967739186035772152001813226826751587855701034528758293870732961371025248566654524199799881588263786499903078467404386091188111269383598651626063834575467743943820477664182124461518945202079027100926473877662313770564507144668371238848287374443593606785745066069750020160131538931234430519995201014044797863195804620861880774888114312968210559826911644672335186045160104656833305750845667349997960918657215965329518995986844324867382495689407992733493468793407238039003037763024832217301763035008135499771150281854196761591124702330356113932377457244673401655139506518925353023485658987598423195752814694083066472506294894312887330101662017319868306481172872473256022448137387449856726019667089862262837254192315451144349820611373302684957553385607301534157913889347724189610949519290643050310782217692041574452279307749099681156321294177016479818030452248267656959254168201557726589842831954336833218845309406817057948305180579864400328442638032450369754433817950919788473078486698011206776511605703108421442737543965437162460041726875147054442888131862785259984968118521778077201980920667148025095829064559529619560021373957105126486281405233479207452760835616081242330071203719660045894552234341684706945067582335937700765199904798343677350503300076675449526265141271987084233192879430735679022971244596602914243625217208120668825251566363918929076596211276811108056441374309806563570283644444487453425236520158886328756469377998674869167264851636467670413881374858819069531191504593899225200454852315967285807894785646267009308109361140659036828453384520459387719722745950843074614610939759746323892044338131672190913580157307477857942124780800693727407396481155452966645820111524898509993452597259068706728053973689101758673602512634464841726695907942353350285645006486916823854277746858736472757824786802132348758814238492614905041664113561273161377402156672251283067775182981349152888075166690944312492531177889105032430108079598038907425885691893286528968256522548220251349606756081652699669810151934583020046356668318603831855443349830106889392626680302252200547919956804917160958180615756988356791287858825925030622077381393233174161761680502063467509565120823663524987992702660291917271329842470008949199285826511370671002858875060035881678267038830298285603779897692518726461954286279392214676223046821802222771239206413876422519431539486252515653099258814577483718213407284391317239979845679055136831666613601242172174256097218384888504621738380153124579725858069368046499251341170913408586279378935830212188986182669765062443742201705313607891799433108406801672352939352978928123339898555628707247672160785800098007026999914739865661087224256330292706204998283330400661796533931537568113107133066553911996097699759910670213959795334473080436745370909521780137567504898016967481517221053221513351769666351527137754274708142922142346468990711061770877078939916166773697938961444917581184540780946855735557187789320386650067752056486575915604317546239123366903150868294329995252304244961948102908506163397375557839243379268451426867892264107014128474744300742897016873222518240607912235898830341575370369630747274694925033484827727020440403406471596926447408924484758561418571129151389213079241553891216990491727415227199974074770731538629396789636922644702731521572932180633354380572992504360842530329498307761319905051166522488942674304703316184731639992090742471288818111136999587798354618220620056411231741188144753030179447162516561968544570875430987639915708922195078034802494645633487356098371187475889180752984337532700689527021431821872661496856848417401101031657947377126371810851905799160979069427956284984370636804183780228183382661562082397935169836278494360940671100353464047832091575410194220190927189492811307415024793382328593811386862850075837428421632262545332622833382889110682209658844527312848123212572432063584359803840256133199148069135184605776220419583287283357352797915164778720392876729763364727822033397245267609796736828581649921126949637213244688766635414081369593386170100718128217487041815185773418877917893815925783558585825816796153210450311879640039348726458591381323503488512952290829599320612364229639536844515899823569172096445073567534551946876935045931632217404553235017624331272478350341656064378312017896007432440128256739360548835594440484160294225857404808044677468772209796549644209540306153173854551323415385753086156665674212900592431504843313346431075627577428124257278190582834118449165720191428135528254920819870472436596141147849722066148600661576739781996303853448976170741286372925508708898347693956231491821168360119157909395736748660617895879554807073004678550572089501005824148750747370116901008798149907815170091853714652286987101409999264059626598523009128495634472800966439945171679995854069097593263542812294917997081759452704367534389252594124777040980056566018192375289778193493651886901725715455481909231718053838236121253016806458113571408701327039047865599874805002889756219183163895396828833767597124297266190212869925927048294348119234556833788357522992915622353844670115477296229370892115665365749122839015227480721318535126935975646972281625000180319763644726684176026347614809520066985580577839461370721599981546569301138881587222146285028569271980150300576665465436660547992059176512037001497484700762419597948768164653883888795592042239210526475845588014635488482925920157532771961507507062330292898813697231624269154320069170012712136459178415440750305731838117610834531951834717489192362284687553565202569149916121268094400480633114507015238551090917504339279564322961608818003125962936275352901152375522951460841227387621064310019339778766309602168439019938831603222581267793909553113234237288278340346468863318094693929669243517229012389547230694828713360861270408011998434611741599583832045277078746467141732476233421623343847183525540937808057626334608353155050128430349525387142596599805002680338130910383942132027292903866056964473089343265114760345887430209798932887689360907271044295877705747611652381082418672140359798891794565448038395321784367604624544734814151259860782419817945890273940737900178633053553713109807532390253838361189001144774796388529483032328070854808136604480355484548991751695251860233632913789729520019103592959652850508686328960965266298703835190634430356258511470206615784707730249424880889705673603956683462531102855495313610585813200648062703006254707877937232301245380553338504340697392126277244577060444897303400617187287983896695761937836677508818842589064815990784780761272824224787735709380696810101630386843157778151576055373346115457846524803770462742371604031790682984687237581394562584544642183280012052097717198802457819359585381082738537919515064992720636079606737730819036971080699119609432953239888035912805818189592240625523079785642543316366799674468253137412960029856256816622912468804736977347566093611946351912626601201631863103355078222067576803531498527065332509472538175582154579141915855635524257688633245256789845075392767986358314892966536959791178804964091254776686433014316958099268173198564257500510043283393581520327465271133891183476214897589386338280494912609255384571426310748316896825598583670117794882899462409852043567914243852013699861279206188048596725086534220601148827288728114183630199440992425534299981765340397527586370350258438165080941535816574026804242258452764862401005150906561805174907860189460236287038930913616331474456590438396365117610833292538106343528172932576097067641328115937251794546175751414242045026915518377585654026903525419847741319493748809710288965143707504140525438755437355745832726509832334190186958629731928928644515904286998736793303758488710066369748970919952015197038650365919534051934841201074988380220245927230963613618651439251433025678885170860917942051355570115466804234222930524317299196640507495937822248850812961359950223628128231111161703272156057511656743823008039928167205100698822010830224182157156522445004276263785091863042605212679123260920079557153442073118743511907324092377821224112419808376665750577044619648168622079327286039792927609268413786320538453520574444178249502208613423031003219961724704657284481699031615372364191179963503597620866595211191284440886767841127769290213966897583640735923596000718631521186788662305298754453850218225424054671991945427632178485906723982240520574156680938855104607736265043750956259917454068754089981504514056774969097364327797205204149802642672338439353991969342343379855940773594954977499968954152745499220881964758033858098060103284804022461537010424677942601263644890750561525961830335779501062367874036252604531321826961336697773931988549575115339471267534885282949078498156211313973427886167858396862078421712908222597724848461753326380035912738980725940861841004065590940031148293737204836803203593853897074832669440388383926085211594126362973087551830370457712435649007568191389965280491418830735767659635261833346981813903194830427201152719804183618954317046278758371714906076962927686295252670882569910201708085763441014820949321642426067540238847139549189341893499956336071961103885260551510742393032786139149063840250068126588758843866876559571058537492933889395909539582175194525307901287708629182554922395695663809434285952908887928662413300436733748668140102340448102696030240531970144226065021101477720296510664459999289049852961713133798352562290471832659266175752975601546133075905961890909700433921045153507732489313472473781309461853897279807588769718886764990341680014559960065696547247419604467201100322387679133655465536231375772944833156124756936739884395992348539385306990857867802199124612217577039182689273851298957338678081347358028266656489889885554553842090364160705967757733193038315620526297135753800313741297015887924414273313503288107316226077328245468014503629821521403103804184114865612948831909806548434360251375163042145305172502702675352918062216677406120112374606939403292887730715867889840047665935330114831216819076559890041359306964436135816234874133266567929267265044211413712071079391894958022039228546659019866905607296858288193592040942780376213928661699195001899426152133767370280883533357753163019955322002877626574544810183107238028725969696486263727524936073278478722618418595458135278231097861666330123496197862244645397417688035197475435815627426081866247141982381584556849039883623258521053332367394924723736272274943880879048861094228184069337161163889699479277981362448562338417557423044693710514263167780240109359201262711967936167814552916648043165530814373774334712759877114165021570171397372504686239574647887269921888060782306040159026707238222700620161523433779991628340544841000851435599971880849487662809033352015038680466615043209320491403261775592982648336002105596001665469600826216881127506176873484383284950344205774447300024225213693631876713681913693794998953486625256171200588624131005155084236552799358415429898508162110581464470223970299484879342651565600022733038406688756395505154680167136898430267212596693331729418870744466649227673326334088762408428304647953671463895336256142959237128946800713387858064315903008834286722367189844343229306618910083818884166062206561594086485790666693164096911472973483548889560695280935002498317186491616236852829700379559204837962874902976321409448524521742090086987320514128480318544636266729446598642275024258844392268740197046314942871901511727181550905959394921369955333794487362870315599980168132852606792815607734248576309448979439878888534742460439374075949353043868242575473278339924760855590466381245359604479928007107511571733257145809234484637763082687582410623364269469458687804247112946441351523051361930496592401957332900459366431809233277254367365557431617925038535850910137612383279637055372375339201921324323389649085994182181910305555628082892259617401604959266905227907073791065551651783967164020964559427857848245638105004787583046354372986397430649468833191962934921202394986398093544203775925315555446649887006026300640310207858482372874378509484814895255205426509345412969764911407064157671059549777366660678804895748424453517217845603879179516271555858695070976269495517413296277633601072166236842327436052183118562518900399570796171148529020488882926209501527321412520238595737746333129151114272846488886007094671119091324662187833368834874220547659340200736009844013122537817407557484230361510480359034591518742041797124088391845621137693742798234568994352995982213935820030984080903734628947362552391776991252127485002482405559102581108355224723949195355119431903140707082232602603272510616199076203571142358408089270533888763275036951324322003660907413322327462051323396925222510362650879082033998841218812673429830319164209870909476312211589193657772037535391789572259936207675848295435006658839268005495684269121061353772321108140353337670108803355404913698220507186800799974347120864033808047269022285520291802521903930033658485457262267725545367387318968129893202236560873669572268212985333859811170280733014032205759434555245804288438763644051831762367196545356573390806739258085305314302441063942958634543716597147029592512040616105470034124426803303220693440239156590477465113921249192070716188397590963021937087583728141204293985188122803650823678675747487818215619606623979928471234819680550520463695439479047525434212545578423118670825407493999589431272044596150373047336975982238839788552956139072113567477369839664691169145375943955796977332111338006646152423201482073154190506683958963390691027226867794866493960797791401355052787687803563820734153882031458412168356944321876419907646257610822115856169530838992863626571824210564135086446825122245158278505521563351556252620215799259934207622660959204108815866792584125203554976758780316576854978865710994618617527903896437537890186377385450993040424529686063480043111601840199531074095435296174571631823768125392595525684279416836744710785127335279406570360918805934683934452107633250765778027953853330140075837527504598139371298217658478066701927022496807766627655128509586225505261372953058757047118646867704239997638059230973609795795985545593332053813839558303688737193858137982008176649818166698740239791834416554922289611962744278084378653864436966657019125591400461550203521639177408430116301498551250055136709921801505317847246516765802476808130485348221783001098548304169064062576748318668212849540983739983423444248161577513013569761293480946966276342619441245855228711789636493683904681834860291623318710502834215924384342527761887802965516116609865497313388872999899381905652088885938295658334985516540193735895956734168885070791740739369182117388948682721845482376504108798062467027290678652920914326936126774556708803291325199850651478114227862865951995760652345309010925462350872062679050648740726667585789165286172868382513278397172167036458239988005862370136160265218301851317901046171748585853520762272024936664537580306945339362231777994643972755944453131145761135314715358821773628358242667430216668534751899309507810354258447852134091622263915140675360760841412474411536557848391127047094925667636271605085702722881707339778273310287622375074881418515445016343251697603733844368684752883014126384493848216446657444372454550771937292529012915524247809685314962161336841916780299916397776880197681177431437599081928191007846496797755540991696891257833397609244045073508585874258033879108237675239469943165362033886347299676058525934916818335024989764552331345484112030233037656252531676809496405512029258172713128122082303704089652898839811502499202772217421313420665453634450582089928602573581843207591375924407344078118895154371291188602930534368088720794714112464729389722180566036947147167815012962840097006163191335508600116337104815463239952442564190420025107066121255816699015442051696229984768217540577193735696009840360087066526165931193331381400480345042273074312433123759186105036197695241447030583995126356490471457942262080268867995374589035664035441734585255123484065116180566252402119779338561742147687470406510478563433447942283663232371140607973509768916394595543291301080626438119125931682360384696295267028171975026282454747094988323817187108124499778239574234962119599421275809614893593568573164562163854262626591172874549175307147804898890564459282609703856392997522737698073079556754170873091214116282445310650350575734986744937213681504623263895740931027005924661570793136609149361167329976262489241265300496281835426436556196186004133112030820858316542319490352778126643371425212593510475383566842874753814412849507775662865096539837001728612831721362611175166023004787218975815665270796907664675366483923499856065258405753802428603466615325886603126246437232685152946974187269884351147654379863312479366734558568846469780570295394056540363852698294381371048621731722934738636110549922870944729634770925908226789892517375005611495682919507900695929127790595990122750120730347423060266007225732045925900378314500413543721844170693085564528118217569507517348943268748409344424431140355411115450584123796488123331188015244789932426498470252157754511110032885006303725433190401772482399921872250253785448855310055642487656480781956400678019987120584775165167502203802273971201961372014634570516689911446176807592019393829842509648511437001473286686788586371331069174743482837178684024355218494130659933965757552664656661136262695214769438480058374697491013775524213024097119401337013231350499531962947216032651542507473507167972954462702102656612034810191560180558470978317261852630869265537985076992779632646550130471706840987465443764395565563945233113684286038176746303569292794992773937778389548528432581710969391682947174072618388564798766916154010097933639726651536840803389142954143899831724520491373800340172545887303027403699693107694548683577227623516028200234771544838807226125987435881681112873030130127853657294685809931745981641667076236757937573601531208138922479428081788654524955818057209031200322413313987190762388646845764154201205462105030941507198594971359193823871576224183644580131201900522202811559088086785324065145896827814227485294707728958461636701226256614945328242319952428310826623696403015783318488207041878232101546626893832551888778715762192360216861084243000692995336029407312394590622876507416090585211292827761679339743734974657289762271093363338881704577094364860283418539582731497818978361486201454905582917988161526710176432048839603904807981345188041895882655799587693171385669297116724404286521140278487343706283629600134741715624703773572106187734023074387684041247767642959152886188119833827055353278159401166692939486335690989945969094285832907507964303300090783045942717986734663521688542889966485761658519565701219260007279872346185818733624415671126980131759125462108428844107982364769644887963139563281668612506738963505068675360464361855102987564145443749242811308221528637524276523843563041088384960411768734367503120990530429992450637037321665856855501759694375867216486997763630917049327856070755589357810884540387532180371734957000784161367830632524891377188401777446387886961493935658974909406232216488502030699356652968123747097547951205260816080580483399092147230179081010552297153791901808055905283253054849829487495388147731921536028423877417513635762614563942453850174958487817603102064788632689253965233107383847008739344233680507477108110558500329643542141621409526130332494913008271851454605244337986232577401322459460107871147377676871705615574834291078132174644910099692261605450030040268361321963560578884440231136183292208994730032819238906006092671763835631339558352295950598979312862686056945183763300101203319255406532756244726636616904671646134493994863414183003175607282044782028335481392720342809769993633267120050640402719506230684657978658958098512873684108702005840220211523891172683261894294223477656596136824295445073277453123328319176544876311331751309935780456500108074280336573950154124614425954483314138765107666990505332916725204121362666476743335410064916348287432367343694451817453306000694609409000478576200959907244674281175992701489217595776099714830024202547261680171945459486434109170210442218367459491478118378160427879388152960299173238928724282421757387072768383416098944581359029618274266771865398107514539932562867943727016068681565443798468603603783891377559209883099013754845296377849933179725073890099669153193449895782758143911571516616184941312879909007634292657468252307295759210050696873593913783825285367723767211745414985370639482217122072519848409309133778387639131964487712619011235982282812696532632560351902270627364175816094490939731339450646852216956463023903578027463616400568592997186544605126519843381308068939951357590926476955283874444420481691261925328965200005507001092265340880294786938777294156257104165751815517304790958450983332050208602603261203840328281717390040470192651685588229202676164108891255806089046044193564033603890090935296740677233414651479097216752778349302085688679795466292807426856924215942638285152059109078603564673139290853918149150041259705270186975787516848502926980990928099665475150746487099760411786027414618653309958058923379223840619442081968112615511670953180759765418060933791219571710089131640247552798221470004748045339307533481286566486121990113581226701679946627319133012003919393066315332875282250696040494217852405231613442692429494253519781119982067268702730869628228516265505976370103097154033899600099696723369061663103297140395493748922180712759791474609293814231900794357085246957385236807810801856723802930117452273978909195021495537249947463694380969030288508139228943807932050274538336788754558906318137445117075716810977003421650411021353905624205080288340522913993502892066038022688761456339161698373493266393367272622396161765270051449639650486863508790693911152299246941055444233260534713237163602999502954558709262813439595052759572508439762665749050646099468477999340940533057734111931682157106543004850518692496337410421546494591411340988469994454974099451288935129077724956414433194171059285715844315012981778288085741387406859666189487547697473550909373500575165048019715458165200878597959608880638650757475812002113866184905426365674804404553875877955107662541194435064042131079432563587899151669727786972447623881175666434535031213455747919869420931020936641588211602779833346849734715758353452276470049143511178960337840040196961375934016272008012928789345773828649913123492115428728122598390688947318234499062496107242495098550640283999618758699359260014208823687439527846759440871224905097890929857457369214073103026094791041079816220475872372192675779616557360248957958963613357215956351998615459149031416239688564285277382506574471179550239341205925240074346126991948305583872860992839337146687638529492769549203486834342970746106384622266943537259216260511862032994980668155242748017793059924574868089905520529456418544627260556285625973080246492188241828331553473688955323718039219805906173252308986130222285254201587442807827858699012529387194163251835506158209347244820996896463227985407056234964136411984790488105972378176805199792925970287017914527702193828902211272096574299908287207944192956903059497312959106813650885065568716286745067421865617002279688690390414104416221402833896406473778256381076070035694183264767599430015935295215040906007867769626956262150911517983770819703665226792663141569040272987055826718719921614037042251184832140811784626007747124348713938442287044737463823920003943385881550605811279014433843980935992674016945828420728161796532447503071993769647840794008805469630965133206098929230314861200878852878496142508568974942208474284920440035857114649021376644818659269364438556307990304700315458879877075487405696337920062836924085723191171826290805568150879144805463475627435156781003797949100266825248791263157568940085245091190565409924178777152715200534762331575525471231763636340800245398877234853233562776483899338677479702170552486852274112888468200803007305771218384480678827236545961985685259125000200931090188640069451983987891129359838487530613172622007242294654558962993172516052006238188880284618475697940117146069807214713288217517170756419153544787707137297789382319556973411575018258175010669311131836481769798111370185608890879258579757557854090388186802916474718881541645544111534398856077717107315929361434097083214378817960935618435820554891817704578478686938513664080883958239939134755967158534226359339370987226495039933123843211071698620241339993162538535938101203412013697820885970120380677193626967986886299764192851651002721452196760630410324132685420289046938996312073281867302620196238894172526578858792803992437104670015484839928620441268318489968870584009316940049689460917571852619897233404291394185378703863535794681061319947875093521556887460016510788291926276495700460758966041447061894235938949612659955921813335431783429035810987692852244517034659850332524736000206313105145691312721637194600672405764471432490027988879536451015788909039626467596029506685240950580863864166291635180960775311831944609493278794561479928679214209927186332578014922448940398840678019609768925571981486041097852393677563978533522845974789738999646176803773835610268553879676870897245710267408688156990782919469372332924990227084774030629017605638041223592566745112567781625267854799526359740222246517247480260975006703245062138717425395795664298742996216553613911766698109377033602820049489889537843329827297847452184660308342823974272628115362010461811036140742164654934219329970917795661272163174967746979393321404982483332705590939279415942039463643156471063526970177276775257579996954544486959391482310235208836583015693052090113245589239842569963799044200545849573309847520327141667458980350544275496660482203726670482914766940735278201763235689873718398497060179016359368379711184903706263640161496950342543643569781878978533429230053594408303747577460287555199006724290012473714445103343055717122385750444050630958996404987192990565297569022751199728037415890395119199618879512722036664680156714073108624139484531453012498635102861287530914023379136190681399202237589535745649392069429681796059981269153544589745005606749190213365977517207776983952128061808112279896382739087158961284275630486156798960075154256042335084191880577472585711938998377253480633069305199276690402146317837665389301276288688543675690326880038766737658464938357425303079857833839681709267529423178910638829672133260360660520923818894768429422070171754495556825585187289647838878948960729572866086749863948977277026253707824955500928632438165161646502598709608936304916183533557885294694709686139018599889370057755817976305053382024377859380003516740373261670895610065204356249612980179437527331355280774547231595701809150118349833685718450351074223482608925156000816418573317944664308917859719901928197053452365137859790810392719939431410406302579841440433490572063766458847559703524249555918099490294448561813320147377831104736827417553533569753920027554544910443882012637650258249871286612147135279653810804789807190907713713959975192027159728070792316190610957697118110187595428621386284321383705765143810428899193901636962297942944821205137850758835279787890922716641876669682038425572411324340484657779814666247722734333019310306954971685036288917488464483957726791881088660380923475690785318711117317789706643211829560337162732511809838863260216783431311776513130071473602275102001255997724519987076888669694306739487881018914130343596313492284867093940706335680209877511559864625966794281703833925692813264424766434671939551388997434490386753188004122213296477800179810982789316847862264343906603140324956632444952027008399149372357495053763596564670284862274763956243494416651988156683879231381615258373532954231887068134663349308288927007362478064723078383635880360773902500195362230564201619832547119950056643947504647138444125014601972156566813760733132005004690618529603531025188820081982567125818603485442586255827267005703562110555778870241740232585160204904348662119519032100735033177137753561967112573499241378553547249459011921242746009348162205664939929931274948307171447397839903081238180532805114978840685584072398589954879495789346196848811148947582073049475851102697211250987138752325126902776153399566658224026257308755988099443510028166414750487960175461431994143302589725002324119541672845933426837752845210632664009583163976246584575375699662064534154833037071195689482416676320004932202789814957945458628292001067662729753468355817711423446131132589373693587804279058079595165340351503924014373507470729566748580538487085413673267646338587343842034167020780415315400200816899872198790687824129090269241893569847257241495518586356239389334483261107741057482040068676601776768202299252615573754031731010690616281352544388341412697306850605878316846306301263216245881424966347063987020828231746951720149406983016258399604790153864481176327327450284578116674486435561695468138498665105963149616079940468019421618277144235583479415380496175028805433942177674740768428045087612948679512180902882801329736284934517637595587500455940980864425219996347218893724495015575151800594195470479479842998617158457015141960835146226520695136396090015487267661129021117874309127373706885197357641146032111754575366390539614760583663394780083273685225107341087778343649025674915302572692139339595008075493828085836438054681705748231292928629654806125353795113276269436685601337099307042180792464364451472532685073985419550422896968793763928243052944832780436640725322325219175895515138394110758679451711749511078979923286442180937488104717001305556159845416587318306560742499564728501037517766252821107573668983986831574198380154883986248225236673613692975675358471352111369562881931333268072068146850439977000087498074557935786969463782107337939902756416683379862213156871190348896783296725401679966901231271583595334928396071822638164472016262993608735865763502148346781691952627017441810359645890111049769860619528201668552473469179330059816552581387363466741050596365848494203844836733307897898532706986357517633621132475058513426709474803899032039660474450963431827722451825860938443758904587680401476681874708357608068569180474302670229613318140063958255508199855507346086514060415455290896586763026397593916178449356298188846791413377866335721373878499787435085295457447088485460585617061834104191249520561603204857541805152015307463434801560754976933287598951516011999090179835384743675982885911201764566806870742957505595853628381500067869854850744491967911921148762838845808544481807914291292881920861497098366366402928419704387807663199205041068993050093534576056883122157272375350733270705446294808113303608293355174091926575137092550105514751928542147615391979319365195820999846556237941773870925162351806291937210978485819188350557949296223744270561801154653243745255935257727967500980813381471600605614298663169691010645829133301479724780850949865211516418665288541586685807833722791008009308619461866583144482963663179542772285743030353481598839336202705004766272487030887664131094456061681422736177156750278874681158454471557111995745001298904186650570084558878841012256319891721028680860488612784332731592745117025196524266368497938358850351846915148873815465044276086673268352984644574575081919912308613724574586153300098303892862258484050854329800689254265764414926464336848558957233612046510799254589610370899191027890464936614583046312347676484637906861529780314151769229806156480465754308549686888155449654075071545395626953723537259959498795904748264481885112867306226008347772791814414742214457909945348125521372929795694789032389467173233676005079329838028200180104799986999924453110932617079391948769376315362375519693992972518076902875828421677667124673704627344645394756526626392673265044808097864068232124236171515562057699975769275631344055760714461224750926475778999482042671864908340086391377053757054751486088821003300892212051614467303914367145824589270489424529783647286876371498758121715579982571012927563144255399291752608718390207364538956860825750653991078402094883849440778834254944727154802607353156406516330042821061661798648788839919671985918152516915709090090043370622739841603832058329398927456407532228089318719608760584996744479047929191505564356324897355108085709183049234090761259754188935638448550635778719632418226905974909229065941014290645756627095524767584156157543025765768854024656675663164302820206591385115512913370503901730764818328804217292422002703815070493693847736326664376399250076111110407280713101308022150392179818773398289248173827165001529522477907930890966017565049247647484881059314471044431869735633388616000107692691442048368610690465780042976011948211538602442291832412219285690419927821141464446117050216074273384446383063591210599680138951078337549187032628620318785412747481120599415240563315388742933050178315673098279498121364282351919623639919360798884071974375154771406441061822181128938736678496041571146367948804492287418935420212785174698800591652436134958294984807742352605016090292846575231860612382479500156326526193655009982091843105624611920862534891144831747870568673943517923189650185534042952651944747547926869373970353401337494758019976502011763010419478375016905440950107249097621119517594779163207635600818594391182215739243683546948864557078267878657183205772056660090972523419629882640279952997060946646146137346308820656269334440230605448551972689992149981476745079308949371177625307853917904701498054520421269366717906260347521484828646656793054389362560824391208651011435349489324422363991110219689437303519443647398242980453021015453407010149455079126215565924287022667678294396133424151923242075822549041370260898179363556698066571042675190414176335680246666554825691736011641944556431958655370907209726952859623738341448059961051878467140809501935998581507601822423192935737807871988151913457814206421558854253903081934455203103763744235101443378468549664867181493037142546518700710124394266212701962609879801159711073139659816648451254107235122142610918371276361058273752953214328003674151712202593888646992104922724175770889798713883376141466709584719811744948551203568982321874839433958254781639681972038672583849995283506827464335035500945851950005260736910923551677961243583526663158754209579878403564398219121411204164964882717398256576625870506751876053273552044073035131244852644957314131511384021220845516400474685283720751553357073430588926867472112398132505034036775716880342604533055276978178843895110027560552859148223422539471429344828476311460640816647717639452532153168672366874995155568150984043442805323734559726335276214028503569221077199375420617347138330059676377601605017178172460328992622782489317248069991803220877449024342693338252706639800252181399617667463088233196339384567037237878337093815262690431627715575378636633164211327534414175443181651732357219921295946770100136472084485042771611731070377377363594712576248471639360907095802889733850082463058565823461945341201349535437882078480545774519037003178865768934201698509985971970009064451948152999743512746810719693766853866306067724562602741658246462956427597235912201277049023224260528540921259342006064379948222749118205314642229475569003709694937620020251467478532238722430351633926900608531992075018072159724572422525464953273780374259015879035266315936440630816254568746770765247770156376971999723714602372080466413050148900576191770336944356283597017788429865520157601333266691480291710790382816936736038419424050742014999457869794481312211061159163660115918179412474736353864819026208108413469255673418003613283385975107600099788828028178745556720118406561579055652151707982524297555926733029722932554155831033482494492341806675618398822845253264618831809611127997394768300128702104955546053917697925479282883829850143391635453534415603392790495442885974110198809023279725121933217201884384624709691816227271739253722501347641751548251485746839672234786200118746382271543523375636696639069552044170921310121618708884199988436554605510005754442217295282383063659814916139507174091717169726142990641108841756107092769884273673125161872090144636049107235827953127105689312314879778805211657868610291799196814798515577936254812248952931605968365631134938568320855622212821726443192434250157706829383726401266436243549300270332676687453390489315835078077314474957378461706366041159772130876874738686094505458191121225322119865398916085486900744578778688011415370009241044781913913895258269465901393438638375080233940484739295025329978186604680266707659472191806770257109338043410814746300285511433665853435957548107727255817388531683195613250277052791916299690395118451143872356776854292281238375662497492438232148874987281244914255747816025762609282884398999385289164635412153658669589153644978179812588441944144213213289760691471878259884566005038743499837984550875509261047956915569708881748550598606247797374708991979637102533950611537034628219648154910841752505486895880034698683158306306760153031689594101604656738849445555297225817293294356135532277616146968888484132654608793413091578539641659319099039602107274508811175259689266336041871851688978198764127796653684600586862399625619809181733166393863007596185438972605763305415716783672884140400385023654573241527788920398743535885404606042531032936357176482942538701539783231122791913859832729269283817279713319535900029170646778037942005508322797455553678434211337906966617569597637764422355611486568309703834216849441252249840723555291934080400199189390661782315726922444469860981119569644723169243836860819187107239073360179121684451470100161118449857762119096806381210970438426155285259412705682456909488175314791321131737539170131999007631105443198667901141458479206346629175105577068309771355604997884506977374145071148204358995775735042837383676443391500882665275911872877466573141496523614770716079507043382243855378513819191536279348213665558816116782831469628450217896871804454612737513455521399995396940390496841495785903789014012339648048600815985731004625131188582588027598170508240387017056013371414475949715404449589586681374772547277615463831081437582823515778295521229290496948751993039232810629862695634050688265227559454301356603819565126285825123797779081782635008015192384317693574272675759688110404645562911160805130332999542078189632292226039674058435902470131689165117381191818542406141473974905131917592257521410094456505039564773582613945779894939218412329077350765939913462962139472300804234714005008676264572585022527845487194850395115338510946703936530079056255815243940158601874821611346046852357274916926513162697620803713798674758785488547827755811470241633194796509720080223933728868883587378199790386634843754516891677983787089654246989437488896172429779098493613238656302068899659029892645934410249440596657186400987457687990237094520130096077073275329643323851936215256246042282659343750317566036394188586278206177245118730840229181288281969018888369909293534714323259659964385857432201456745861829272570359110465805288267637074567860770508030936495698686689699014119459031861448922800567673767692610879376464578019584781641815408771150924782582030652139299100070269205257425333545522500733674110730556027165194381121570527347643910218564845992317345073617471390430450409585628954062653485026250975280835693686976978325141481763344282348280458168184768932854516529460111215946569345342724281262143130024286168814980195628584606349225733555086962974949769961593764253935430238965579945995656068390894849894667604861037947738904218986489340167744346490495733708723456259403033114837285566539118772757214872819817384717396253431743404353023740769225850946644245333895385610762369516635867189473848032760891078142654709898376171583023833416389324378310402225313824277317414470107958221389879132814518286714397499321747720224934823643776887328379481361111971282130100271549572239596545836038742023679846683738481126334911078695353788704433036243193054297656968458690291719348276409852958773217329928627640351863579867291027672159421905110327736366257331737087677646151327390229280592672871628602655759943981367644705164974631996610551712176691815390455634555623436136277140278534867988183917699605419303736362703749395362994683449298491034894986778107731109579787896130579850176875421601851961103074901736227249224746993616068070296867811145166071523466927305852669838296792328902907527403890851845674485825857381767704690951748029141175982566116030802326919626095660038995035367563754567598558127229984099118502137132711013378288758964991622151994765546508368767445277790757562451321296093208478020531377076015719273843487338776055421061995611330116154164401974883972147082806753597497956680289374350720250797981412584198250903751633493810847011313213103786670402535164814389132261854120891162056707781351384464637547723168418891027598184426615881709099296655002130559049229826794419313470800904019189085723061139005887286483841034557160552015850827742908225407734415514051165852922591607650449490285263504436653366738411148731897617084867277029760900535204105011301234648768760281352939127589409477678509198699367884597534292767957186583327920837292881372503564392531902674538270165877157055506440660026336445411796600721371651741255983086438380644129473548181624097553856979744927825916325597494314464708489933584380139847903969789740184008695609767739471165473742850332909339228113986302005691325095297672766772563348675321571727144813754250580576313811761202402779728899945341719844349430682769034211971900183562892231661288302657032586843631791575631690490204675880023108026674028395700628148951401522236010496245545496215317952577709446138917222035173685423317703374426204310661102775856154020849117097890210838059371258501659703879651461401093534575196305431604214546409570363166951314253568228010911608524086070003305383557671429481371164758583762390889603921535032013882241046674150886757923597310922575648732469844519712641653512248955011102271499015827618760695450784481616693894916034565283048715642623814834001535588823374970455067886513314897968944676645688794310618886181118663150389143624308140373498866336723629189315720603274033959364128554392638846116867681584252260667681094731818795883160774607096907817046685614231286993059648361605122958067280821105700065257801512889401610872368954770314827064784287716806649224125118444439031531386810005559172506935670555268564335735019374789252324197764307465694654235578774047375705527185150646892906385419986213601056109719128229881892956055332542482629445657790516532113127402119950921335015054333251247838755005534898173472938188818228306517360405399089936971257219400650712070878639962123225636531076210694397921738329801390841023301474221088499979287085665110637924663569320900358864613825502986448634343248896304113681517836195468283600804737011549762905918437483620339947541634462603336369709483810154962979331811048040612794725381592038599295678717182381588921756922045505269391424237326849865970234178277692247833680269441319676177325124342213663625706179850743064249908803093569304397924056921350332162796033392877591823762333861543195823593351272774258661345483552281823826576950447227038475832094459381235260196152760319039964008898704752196480098226640383273036955766146481342880177860415085844339450078676795051884531097213396124690228978381982901327756517878690107801863223552520212627831058847464532235029869461750341282803998229934231335256228376785741393938050250339031279818199956823984080616906987825545097251594183591406250108633637050415610975082159581226377915512817064561248337937760972052741457893922581878494105590530179732321164204085069611194659851878081590269682255201552637920653917928467797233205453091232606205859008007289143358303049163477774304351519093908886297471925688889330923965011188725891970179417346301810451338136779325988484882769407013511391227138925370242137464285090958487765028368354622256501620418522455624589084370570176885382755887723148481750433307471364813903943171457365390983908910552107268949286615335511319263060730580242203451342711760833797576777451973096517130509021381602437641437429393765854388016757274613755409412692560514079658315864707503380168235444071903540893946716513882849058669015115662416487321805330913316144509065363236165829685715692598658198561401319279219697185299680537360466072434451785959943968764120550753546385647574826963809742227511061320903638610581494749070080766440451485610915337574641251192522113126959437273234168969152856231878959050174880762668188989272992306903919401092681970217901255964175808774064402293947692019940021495632024590839997506457501199697490094382937846724231164096149897324794751141009288899826910137579100277532724095515447035403790192783851855411780835133949764230654183048722255302515214721171751589544516081345545564074863554688565736481329121111205350704304058338383353325855623747694870786446667842350884432838476719301947563555941388169680834576970734497581453467515280048799658069969013369331202092974290459837636286934673927919974778551527626358629236919247309814922338181784558473190512557866032406120154663314325012175961821941378047848616373372248136520328179811667880091216683450571072642051980127609191283744107316683160723667078963647577561019942431318774083070408669596007556192109436348890015181781600699400830276138096893758002709272888367543748104770579568275654820735283804797464477894697101128219577424762680506342272696153564686713393580443160549828085740750046997656257720588523734900985750126042462943832651501367014500760624766074715750590944235750488905413000924292641692344510598380089665706193623458901033615986253171682673328503769802124123628582677382296183288437164856004597540096392891601657117308299700593989277297186450829594895249135245381834065103211136546101251853308522962540875975909653091607161543674925442745921134829030604194733044962801978238338084828264887495401482221917897265408099860894512299740719056843401593591445625777605426293212001404355732209281738970750480368160847385438186632852847491547530945141650553208612062250550319492916562867533916320339023219288140895584131045103889666452667122911000210864442423932244371731807369391613646201755570419864157368776592244490125857637195282777144107041757836331215871367086857157806526601565955659083626133588432892588187250903205966831722046970710888038085842728255946034855431194511848591733057086670846184054185365332309207721031374879677916789677995611510739884592139468156641376686085630390924985486477628586097530041163566048371493860063512625828423954263629081015275307434644482695832088447018345653930819555637183159378528836460567969814427281380777385612840396755609383030667834764491666233455367336718594611468266155875870044136992714637200629874676437040603093582461941212292375487029699721926627846806940982072126031130206840489843873249945971066435537558946270193608698765564051494296778635092130752433942156900478929333906719567593326396715443806568396273711549814707280535457116890990169016693599305001755249818429762058207566927838934729114173722136275338081335736402545394412572505676708615842008776600193787296105898405968340535688887660857144253480431361794569147740506899681694370831850669555929377208101485236076927902272716553447714034979707616315597388286542381767974857075721122269791044417892601097076342350230613129253589353099169644883326599647344992364087043764076141859050472784102211469837886932727394609135410571133804503487275604226225828235838900384177600379861709579480679009290069193786858235667366028597469498532887698576378350779137114705388442970247368767891325671784229638744125902896915232721223104460313517510166771859761602590974704379504965744121754422419963739610853643457756726026376217613447521864051656947713331621180844695172286806914852292154155615084095116781421945761651725527663082530367830276398776544558361552789348328508332260541289064420835362371719248824709373566463879226172325948121328916744101865432709139748642049844401783467000400296718321191236719631799655906520909865134336762534683689923045300676759224974254287981028510248405432844731303143353649252834386030019742978467814916405468638450548813976173806359267712510025189459749146035849947220459098299150708488362669578645964350667861511195320941638126613149841125685432815547300498996702412093843328218321991129169657117941527491296195071408621429102929588551475246253534227999841958246270967903049132808284834917742495221345314294154626360307299921949518466458205788996612690293802249873821016763885619138190720698913148148200235957974055542024869432144674602955721575832449503958789016949127476246948791487100916355212862401625080350423830615069249411875435081658971954182333366564531466087720790520792847327483899100982971775297097181220966200405888026493112751006815354148963241282650258511647118908220596499185046352115858351694241719785770621070855869811675739541500566486998728968374904060304001577618520227830621864377595383254090919134000637075387066869327117582428962724510440699039299000420634162707590484373553436288959133582867434826500293303207592731469651244974926776354020778016412011300886409203675396654083796549060014997858958813208832273997787589250243945989335954819284308461590975481317420154443378392703626344561108073153124472731542487414332144238108387374811490759907074959161963608118933355886821400010496051514409990805850629373341498821704360007872610128402531471733228000585870767846885744131866719677085385562110350836130906290084987003911887907517677707627505542549847469341268385615447342952671925080369776218989297928122249076763552386636949256561347014559931890115702114531132536514939284832363877536012234236909394963854813516320494343304261854377942715871989174705795727039753922088156997867081404286855532702204278005059124696001452116058410351903081768373348962622159458973804892172002252665756803268439336575341984075311118247533157753208534118072999320725782326260390800614711191101745257932297197337889801807469558653879678556587477015699891410789414251743109075339182368852572254967352566949445141970434997472037126875925139952659369231501969377984608149356776264616263397062272174403300448046584581387413145780204545896827995311601402383536803578717211291099545959976021869156720041908577308375515347607262674324075775597003388381271515506623344565409332661433772046730188759069777510782336128495574932546970891094789594214690743432535706848448350902849438006706944222390159578461377030161517335908495769579422647737805801837479459687875028194636154438494246253888366481934604947693687714964655344140169570153865552763968909029416835056244058316391629617170155903177573174736418618238269763243911637492584719414160202732959863792179507059679463091524405601321991539969736856990048656114778736690503623789967795739823063058917050579428009722358004737387292766575247623887318863661522412720001089852377488370831431882811632853637782012067540343440282169409291998058232127794671551845798417600022565966671116238056268712925568715486552802600282903956043925857149102293823416724024812978584653014846111495688883808619075614103890269547800273771668632901373587317394231808376027493884217146911483315734562759317650663729766353210614897630859012327951998033408641160554834258336572450654161231914875483074394922019451642814778062237931564837833445546306082362925290408027036554829680926076364583011351745873458789067271729144834400757549156776971376614716529004209498194328240875788677506277297921864431481180051726049106983995836113609415584556490925907902363534537901745628114720097609763019008790415254303436399642983701314538279882869222849947308226544997057160119803172411350395493955535105459704190411062152060504576372659536829148849534872912575173514680765450698077991298023577353446232976626991734979925631910995853967615601782124016805502417300502896488219456568907092901255205906430944142102670978680131002040810316283302863399674921052655485270217072574172197737661138706539313274135018724963065880092168778219096135564610351341422142448101262241229203243199873893077952792957789827555477964562866973429318732659588127992767624143692052078693662016175329044970029851213430321223374838484085056354282136606937665807816771678710148912545919031152804528489171979328104692660996282984615137207423111220771422019719220218055103595167339661061818322729290519460825557387470958765387883392772104422346512281458399592278109457588931241549716175734116208276857140987532687680805212820953814179384945043565330135841722626541749634028072024751600151423030339519706896203559410378207418387826198559537675249318769985836034155526403232867537950299887057531572101233322772856220849661553848399026552295507060525187936557903306085965474518589180133617701886403407439023532909132310943194646557115078169415222668705373039891035139441132084830000344665550102685064086521205280511174051348063745420537596298839515868440549895620756657870131529288994532156782927433176321668412656698732918669657412639287396491160291620520538671446425318177011864781204676225051262955576520077196511549697404830448380463730451869134889963737943936699757492472543666404553177261254772935670345780872065453829633078223816421317076164135466792503705464394968294359100986119465975850974513244789647086165903646536091108064080603512360438182083775953386195155673518938476526669533539697666713676650244620321130875471396820204770334830645029031240862929909297589681805220699055344822204543820524613655711058219444649408500213998796553061962047643336769701649586322613839037882770675911087096445485694825020388601183546999484247617278380275106713805860001890340380846848521296714853293543599424076576666722581379165475266385707020986030338582433904649129405978865876500720240997365324413383154018996324029250649930270297455209605904811738071992136791524137236155574247030347450087599909826511897133848688664787698699215899892512767986524031378633991636897152222050474895824512903023980239310351541077192997759466025254668106580405957734667159607365964652082329515403200589689140031659056749863659209801295732276103861702266938321479846470203033691495039495723386426719298979884734898375929506252607944999688444709722266746697720308296814722041813468405941964568931012857432240881878475308012132339040934820644041702869806568153899609945915676991964794857626253135406842817274060819983498208465834234894158299363489008085580498416190088310499737915531679512188337301415705153900933950452576934943614171238910612019620932496169672224573912794053748422637380053491225091856750265481320762685256184337727857822236336015088818479275212549206563817643115654577560541438310348320892808768422808057033171937986048069332441699570005035744616612687955167785143040673048151416784828012277689344304898002254550556511418294213286045735087283908898898025135073419519909944610497379226070012923693411486965476337135813436210793835700897451475657128883569899997488167663253771641400649047603037579234452614061890128335748781294404521023826046545105571689771562048240538397945709317302717644685232014923640709735886914114004345542412020314825588509527929765378534347331941162437653613132918437549551428345485686471424355577424402786313760169757485864712220622992120983239440938814165686347784256743370865051696816708436419560294781241362194820646312202607918134648752019868098822927032203295650982768642649878581174512700151085705046365144162293353161508531868932183820331797597259183269787693471105409573081587085016174265855886217049984194263211092561977518932570050203182080735951294378390578209587675874737348952554565303248241555654733437858024316575586381050846101064311058585726790432066109718908350872218880656166892387336469898038171471574379864764165174602696059228273418887086906704008578704000436057040905256909117290510516249029781613869096705131048701507718937695898408857182256903629763147980213844056171709786257774871404387380760523315215349003420491102838652841238414744160876904312001697893965685041658857800523100597706371161751688561990437293921844816359958104172029784767406238493071962024806134160643379648939825616613705440519538346167095322387616089161187199688866868115094937047248142218724490143229144396433756976430031927952083485014534680730651210508807524241961206877976469585068731949669410984108198876188509790394605596334324594135257091943816335518195366631783045745857082970740455195651211494955130436506344148105215855777341585364456329618850263561397263471184924949421802211968529360386790412917170244436444719583957230343269419660042002952985878975944756881289238396668895016312592998274554927283975234801271785478134474971875249887989329969984682953305633704315718473303701816808862617874147080799530828664009627068150331202323582207244062556982825424551561767159125059667114605841032028949426454583478515796956169060570934411689472461553729034906952850508884754051317157484262447083098063297605951925527903698802458759990544690335770718847774171279241963904830863789043369148736516439548317094344440522811934886904876528527339036544323329070328857317291474285983767125116919338907887000744199516499266229165335052213542156222904407959266230280659886500029083284411047494644942417961738263177971580728168198518498419775000065821580080932468002515746787159172825715223153746094781249358585927985921516358647506339313371533221576061457737830561479208401853127536991316795708891344901567561581448806684573397853176989165304452901088381299022499146730958649357342372203079896366548581874737306783821677656470215681687817809201809544207882128481079920371060019451566437843974247948984519611838803742214117228947310998563373133480405012099366934208986454782758389579975068189232414980754058245158070861502576284964315886953027267310787803206983542966500943578210681987975764043453688040480859839433889621178886317707978176575621827436766140488385610503969764788028499500609674318208266378502670309510850680941491873111958749841918683690898363910939053424132539162412525136288981742847514206106728319350953364472310232929200598329783077179650535018953412265261149292580111812107498074451843617837299289029500716912256887264755626786670178771861954403321971339000502408611014283583782831311231719842006669725444815951482696789844532759557307091215753310539049366554015391954936459730529441771328429429826423282250794381281917711418240165350692857338778450038857776184514198872057118011090724492073484894841673173731379572258051564216717253798075907514436148257183166989046669657392040070178064226688514567264500703736798214312124371145223471843018262609169418171852957312192602524783698694235573966495864103138920405666713126068602428993171380030916489155492114856295652788840883485334896500061136981014037013777619777300959436838756852652499264474847882310914983438280156868656302048607534729821267285695222576271870402404136031820465165631444243057859003930213452003846441458855123621091325336072792657055077666623309497168972429882208428644405854164908573496431985376293419460550777874721425888272311281837640442222759060157758329321418392130479707071456950899234976109706816182212870762841639059661391310157238713378940357044838629585742006747074241435929118730005417326421476556398457227532948167751668618507104903938468056299437225308033944443484297787538277256320616937528537535414611269984949170230476196277402646633581877656939082770359397814099435411059178667594633716613908144630926345440071511845401889291262970326682023187311593090320862596640632031824898091198545674287492761438619042741533657735243647754169148052080265866276179742889536700283427920967055209034239321997851434440908928475144116199074654070969712217953414253058320456187554293559264619094120719818102911055049764774469758238417460007795097155863805609708468820695395452198362904239571496421400690351016812035379869689207302766575987492196520757647464640706947789279309035309551808067677361521177365189016028025271866674024402157368524616928476724327339284217280880910961511045521869872288024475372604027441322412067087559321560845865165754664890322386948471022748568388904569240843791012518817911872230634144159982005651581395990251471541806681768800541274600488830890069751886429735818105986009449491118296980098146168764266667976127647803242387739720883812952354733404940258290105054886716295189402707323605587990483044121447571492177298100046565718478308492771599396021911981275200909266759334892329121009035812013148321825642491976740247444392159651359149614661946121023895338633747711179811701719492420197882378482273685273114700145732908786006528720492553955075018674935487476526428624699824256956968440103353077107382324953112221270412357079496941608978601167747448655757496064106751028288841800026755975002295965845589123828459971607793874194593868716997589527785073670691861491133188636906143626856623369283478961262238445907837022772983252716275825935699477273883714106916678111804492433204219704672453309507442662326922380121897110709092634481338750191657488959644056867970747692660889071451534487845040440332361950958353315016593186564066305857757567996835954372566559254497230610299603251427654316021429571129202226374117844150705320116463260424980784747837350334356948354425184318997653605674476813184855629158155553186666769627020678369011890105318936009277897420816720243443796245469087960599224022990154767136441506362309492364579801414368586631628841499036125328412004689738295471529560682581121342245543351096366307252947022064994634272749599761266816991053361998520737837766075820756956529541420001678069744828716284966861937735889418591277226837471550783309081275603335882681545027624370991694905687141033444466879170047335195771411561273378454057575981816976773720116571676170657985952564036643103072800590052607132226572753968751003261623250929878124657763847324685606802161458894595844755392246509322545352010269544929509631406188277949758646784958650948531639385918658738548872107892786403016413417730841869488982768178100791548285597929927162743366922018628141883488823264172139253190034595199943757558163028360529224693696568280266196986747283909067155941598142280315758465313262659021052742851141653501740330904720010519441897422546250123608234922828057996479497828839228273893614895460792646664218610148342158039776762990613834458670253774379913966601671374366369332628885401472663412852602620212109021185298324867730043658048324540272578495719087552348939397763383273754175181834260718126056896652376467019345300186269598382234321320612483861210389225564550402346589233152318261014661564582643166744949843513378608214641740515073585920342993488237077740520131568024489635465927974794069991868058135010083880826791247033060025815869700002446080466214072453714001112773888533702564480359204029744803795308911017882463642402109413215467064518474095856729917691051869486602029909275530406830157911924328906744235277194254053862018143551825481485527784514198232697534938474085898390138000975650839973050073455485711572789045746098963437544114391250657547746495039091798314478043633989423140464438341354392434795387119178369321634769926039998126886392028900078900754852328657822209159747199039073854799676442965799367365173372095237102622946341879031549363823093800454518579408791314724161660818038718538481494563447764402832559636335650003412065793428941188202385836585754286099398663624902509468995929521801098228557094672324937561836183188466002978051851202616528697755618560573419491989248392658161807888305276104388835519901318242678317152844356017203173209464969640336696725830887473343033682741704679474801176868051866060718816360555219349646206684333157302018005936371860923007618787893569614923436727715441401037689060613580829702029069972152446023349534985675266853725339217682658939987105895826945416823253519268243792120273743172881367490481717472841672662686314185548807406217388741097015413189795958447722248883929293666094069008667848769075968237056036130311039165674030089372368232121135288265754503586047417830760108491808663038457896234336045573381500003211587941671448156858667295797625152857480668507590318522756820570011391468897993887230637198141922119866060350200678914836606949299131499434219992606374330559735826849870734481417649742813328522757597437018549986282107487901727174485988570563933060034419164881525509573115411409009022150418911851051901411227697818968016483506884436848345978724361702173985970075701681117432329206605455528856839044744339372610358825516404517723085335820151040436490794489273071590570554483495603910549634318114515556279370000016034422042768141704437616419133708429655628926790543707723894042357319442712980561082949875391038485283461965118704497690264329093278838565675803829447902605044553008484546102703521864771967732684815454094021658055895576231753040358944158288076879674121686317955460004624804482309826718830915074714268990160986035228856935307434431289111517391436717805722054416271547832950025381730594641776495452851940600262024821211231245402019758096295897281956920590872421288796466879348994622996179977426640310087982493467681833286814046314927078354432049869508488503036808237692569696888078489690215653766380501447824243568220871534691495679326380928781650131277312484251645555581426682139792403578672223621567780335445480535456993419033306306866654612854188054942296268040550414172118822280943490978654027274582008186055174874872264926025189425295758799594268242184135055669172739977948192692672657922868768046966523617404737904687213778920250604646934920477969056119453596231123815620102677540772513636027425077623449229650430241020973438910198947913307595904900298921955531437859589694015138695004181869904379163156223521939414868685521663356112439631743289124994078224401070449854391140055214364963251086504000933080020334539114273876822435235891251469662332948232166889532330423020273143639745809500022025672174557260437996121542890844627975006790850990852520358528689574314898084733526504423576230404341393600076173644832468894599264167748353521299947485274725187902006522683349576020128443816575187738812552565530351102294229114087254872939726442015849438950417177980295696127383902136056757077704843446096340284271093256232065499125703726314035121316848002330521106003376650774755897666624542132912083285817687294176444643761156135217000389224426522102741381927624829808594177648872104830989814818704959843450138166837627300189138240079813378450569731041427800092578467274762271034300299203852204269934173606375162058180201165806904786308158752554349819143275051602323639260425111415303536451181502942705074816935796639365884331433960025302885376714339595611992508081159070192411741917862445629337645562408181936952809555636973417251691702732011849286245250021259874206481401013031994267602914713980273792853157873905583870009857006284320088612730386028704460406822121046735953095385654648192479848927526124075279874774882821867841469950817420599766108724622843569450991358270172426379331997627205332823962383430320100362401320082996620634709757768628331533278364022633888577728675594607854900748709306971143382312978377156015186601942240470007670345261268438015666184794152152409024718658437133099920566995090612368668823112461217633888091155566226767237724338587262047459776015887211156703985289974643158277753115450360534431997006356418005915172079762412789627055591024780781077057859818013808212840813122143861945457091942815225788149222142818481654155688517689088812534440964320049210793212634428568062976335604690394285598229533859529605040222897002694427158956323423753427153408211519472448697652271498844363522142756185402619396782094694498743075095082421484681633878501871073985784784659222840364764108634864120615579573866405459377458641383880302553012199273542481241684611319535425871222982771205489651353880042090022896976137706494730212054851703243689611127922119121854075050099981544108539974942148005629599015391181887195827498680003960777389891943572356748318335212309331838249375994019763528699233428259997544897108817230834734638836604001588295880792656489926678621716567142391667992388617615956485818099162163280887999622780441417670245527682406824441456211704293701461302740336949536728887489506650186270308546698352115792886852447551596242791984547895153893327288083515884265667529880421239892514931883522042920791389163753482251701124509480254776741862106781978626740584079224256985611575492640649413434087657201901811878708934786453799072482281443387039489863836568613873822340307397667641030838744506982977502562948193281744842927079611857671067075775123468563160906166034253257540074727575655537321295273632290834376970733396152634649465058582716503570203141499369993284218346609244696583725534529068418119954462410086821735150403806277157168730463699629219881593644690340475288289877440222695858937124586859287878276740569289557011640011485671642313473428373377951918139893115762438549243429939699922175872985067032969643951770855401133153968142831947255385187527192052772496842974033993519453953292010480075663889871255357922141899366981507426697594651194536108796796531381579688633268323881327862905658987667268763883717968311280386517112556438207294176698138558827244763157212564065394226888501222419126523525745061844940492442925063179841967835160005746441452199274261069897727593719174135958630503530722612601882589897600321550717714840240243955166974198458791340757881644724341592813251965026044901014157823206585592118960910074203359016385447260428306531362383411257760566495692828757395146671110032757267593341046283643195556223761758314268588357640422307653033625460084886140081233717550751146747786386406294979572415979416819237248504337851938680643763898789677379410918753674392891351126257872691061756146557864140241001321401849945124886486685966016720901675213215692930535379995930722877225463671036560261730377957904859976189155319666255890729983950448653757705809151986245689627204230796314991884954890114534479064488477047907262179390085307144652866071194126060648589562593608420913593991013657867138645245368085385200807955733106552533695379213921626521513117071969479726031315524515644599583928302211171490744740233773741514636585476586703649600010644260577389480448990368653869367942195824582526762436498711807307659046486586528377061944572577570221204921786019314812690884760810458034573077031170230730423337049293978434438197548793319795987346025769753060927675458211008478870009768457807538588634894444556511844282221950164015506329661387485640593171578151654778705135918860673027718173141629731917280563519888715438422701286473681617566232298896205981442888901069293764001360404379680594717084775292075393636415163978682691818951660097759607914260784127657229825877021973211751698900372529741039693120784694487873359729432818588463146876745057352721776995380632109948533708203669277499966546123885690152014101019616607203131889866712374429329210886336704205088509947792362451529503707871461565487370303145732064024340335819718362316447466633321997292702441231482284933153222227058804506463357504884417356777604007332191689503318044952013145270224133545106130205535656315211073286199235871831760463069524981183982194122464766399323508534823766452634463771236567753090066454419510519376572796940107419915227284729845004249107394420711346519768238927253084271709032658529639346754851097975570933597729613807599616698987790083756982405873380024246991463636178038310887532275978703216304836768754012169408260800208851455534112286722178687630118199960855538414457299404573742750658620060192900670698863128166562001858596084628793625644870816868566270200269163417553023985816422193632339853581913712744351181096002325180855488799257256221843732253969448479499128286277300670969899264180768353601880733371568838237713097985066333577981748683241548593235513935619229240206859679081424801014224223557164521788413505736691032214689540196248442418846027730459665405436635469291531330235107913177925962486772551226559868238750648909372273643279607035078172334537794636883669583714956306187416865129376761068117428975523122124998641798686939959457693685236444803979030588446810686733021138119435915797546532432250642007192584925540826906839445451574315604674670695812493964290378518365573136588079437418105453053648325739447742464577242438537324830534721728060452619849013924568146583730105839742181777749585742631992583939393783717640596921737289012879469937599569734620767556037064651564900999431167854374888347696914837243842007018375807726692831362298349379839948848858061903398243474135472480996563504287722678297894198125165322808145580465475384640899371106907617901721447306440555040434370067562496875963186801776218212631451947973552143732363303027959396625295358398207155721876477060532213922887999841419665193551975777370242818718328131722458429404220639345292455032501714068703282294572631608235531558672926184787860848683588530563784520695416066457694894072622755540531785937603768568228366844136781810641995293275100787570852115023590937320905711069918613744229637369277398463958917904467354257844853306303814775252193901769905037215292368628361493299486183298049580869860001718352759423616264827219546336420721427436177994295674400913788200452654276830212600595603801332985092970614298940510894219435521458742330233055357890447705360249762716438100291488148439812098328247788194520620198697458892835678210078376099698078473628619399786049723184020299682659640284836781262578264541286185111456065614670818080494574404693410561059997837825672751021072424175385377146690308631778077098496947406542117236094365896903199955547380994229605058383573065305746920379665384559670933241986686368197056373729828675064883977687645881210878904817410031113287442968364865425970706059824600263023945253310214417205395455717009632096759480676668855729372850920054191450112696085228885274329945706200784688431422943625501103609937809717302009750362278572142569946115611899743597838098465561277003147701120441647748865804851665216354698947889204325232757788117018425348226278276922408144173236191034722838929519093428677411306284859778956664242005546773694532181405330550092977571969122954434928311981651203645296382608599302388480585738811756478529041546686914104443886462405322906225981689603967888427526749959617931911211378329427361093326102983984844039741153197810314861887544376549302076364695161541051614233543797346859863593330586038469309144054889522502848198760223843234085632367790386753440320953570412520957374341490524559682623150916428164077357378759652329051955660237832956951854065051541403276590648338779677741647973813500088428727400619301921816212367832114439858551741314631059109255834562768465863207175436934592866141486696983743331096742438516750906620852701190537187691034647585372700777985333862929124577916348565229882042716350640533622032317541298241087577762646940180288346671434404552744249144717113431236614835418770806310932752075128639846870454627808574505945202506326311605395870038967788776384149058265412576952471265907126649918088851789806585384550660167805353057736650410381031987538139294764050835083581005397677095010968496929400776371438691086393442474018052367758849519962308896349259119504733123666076934427949175126089987586561105919079328188461083659832643323630661440027211082210850444067677643095309130210844602081191265759812645921286910007780432806149639818908175415093867688723298239582216568994853236244605777494579586965797510417505221390724296153677521062935379239489434638188586190504302764335709376739747546754727230096637187638420531119126131779946649001528452823518428492838110927383748820650171255676961101596657034100799277107359239000666405166183131795369495429598029482257684288536198203167773658335173771633234908934876885872829607885300438719230802287881571338818427714243455972111702124330781452292788892851736596843206609214914676681309639898212064919951782767966038245564699349376714474405887441292452071331341810721818872804363173852049154002219966863758546323340776114308670373621382127088297011309519398483010576911417778709938865226064841475729638879004391550378407757517497645800642686443266075740644395783134860265325103751722855356892595803876729439479034985747815537664746112757461616550911935461284418750471214005050389247906037645294517600756957813931745119226824638245761570175433102114967067953543907890837596834752913460620340603603610280047203565227119039149073395705721932547553538770949257971966478989749496999579318719241514146847465521607969805942421653561791165091887331151686586097226189749246756274987267058557234483092792692246895162482218326393741361668914237013730879078267456792456102486435925379656612788583010526064441603723838389620046479759797086919197346226272664708193548941024809410850412277067927304647498237689446680185838266067167820993599462885515309401299392079786890157450629366651084977745060345573735710174334539877853928050509262596027469650569758265042705015634995762656720179825442156456638470696525856873593688438547715520526540109303114946028311118928236379783980067925199220047806856008942060668416105342764434857008880459780743869560749100981378125613217277679381136023747358961999975000913503491136094984714994547456186360623117089967104252509358731276300109762631520493768520790679320468118208728969516049375733260272952141940954804614667564658883617240636028734862489804576167532722136965516761010573330229288426090459790148128430469111339942577254755978444207142184001549489853533305137043185638466386860742702868188808236290968037971097108119733570909860891615000972909024024122962144571431794084933569862362998716263498288007814289478874486809984656065892358716126565387943722925245792105538967586187241794839324667364811420327819953362051852142177335876075918125362878709499398438288249414731897845133436073844148016218786761386837230068987800751102984340921217865158948750482222305858443100143951741055230239933253621946206449917226405167452116893159758718282193008167004251836090688420018230132196717649185187443238886823982676938669028353154839913419771718144031787170691604266211139924723972373301491285457346919251341649316016133340580603270884757014966143047307551179380548832082082322504753852027075005866249670284240058019825989836145393536885788217575325040697924862061046894135039557029025554090603851403938551324511100362704080029970637925040537437633458797603244411314151485544847226872876256281374552299320491331059692923236514180037864913762906894304113869773696460896933747344548821339617353002234298512827624185019157151053327914934103448272718313867322439989073869833807598257954640919071893515522665437562680179710044425941793824382971536702273378498026355181116357929477810286595406264038890597471926513023500566674766702071557584415735303713158148614036676119760920653215294720998081475496880776088612685263069674668420084486473973517282725582298303435678779126889100422862792366131691708694238381177024013108928609681408904222858494397187748766357064267246140285945709358329930879689041577888891373939304251913922549138145617651765090214730617079210537564957813242967588487447116764269335174467740905323086555779934653172853034874450356848105779502631964592837532907569714424844295533520033697302113492075414784346064327488937357383224607791958383559742626795514045228609196543477628119458959839553650025270985343866522944186927078535790154184414122424506283858527628061468650789749512381654474269242591328516857985721011932396019455431157771248408634470169112055704314092537839047267003706165751169165486732795083590675304432333953441541960194392396023866049961025326281578492954313151795183378105695531589581285945235510179966899235899654221214790529111187125243600647573120007547333954576000403162600683975183766544279706266748425178587141166846930581041205614222659977779672382631750485266130593911840015897247584138195549157144872339586647495876723293081933646391970242052948576276353559639284301842118502313191256083747840463832647471570998299605943262757444707993914848696735452334172783743029961712283622143447977962391449715529298206623318217109999372994407308588653396917064568141879904714478007645340696939581504069317388852594837876123916347956024812376220629397806564864700622323838826592897635318256616081743594127671325375975254666506667432018586173620158799685442476231958906418061459769727998997009652673151087620404617282785326716292899427798783566357971027610661132692861224423507408509202185896473756259051350786554058603305270149218109715150864713471121864672659575886726701968557617887768321637636753147738864781398566149598991509818359832598006963457069460825929708934363810038539636902061550983502389625298988410529350310310384141881020554018519483509394346692799743001339113294337197818444092557985880355208648940229077579109726665762857468977412423577201917475691917947631078996516935992757425333668775229055611625062085993332531892000888080039757498341004321445017039236304855220485099548718718269010193959234358349843499707186695529387932432761359414453560675146428230954288268862343708458212942882511560748630398126784016782903588998939067198167048482687426254365559140266217387973444729396276948947775571638878029460536447341580678386298834068229821094978323642736864850826915662514719336996385976137974565119526157192237008693054232255117894312883738984473523208825624189561780361726107488704271697672965210276626575259786092663981279329913452432329443317629658391601229312580587078947197282223977495694909550030504620760131554620055072680990221391702500906381779184081845297380625729068245396873447224947442083172009512287403078929782847327137651169961548756698338936823416116826871517044022678935931275019872147304958073214114987545993541291507970094409904334643644605648399621621149343890367945960657910969902530744244638533949941895044238592329792095197767093956692253860667086021336007507245035984180814007054797619768078508645449755661252793644297386324131371016497444094555751166100772111644581757478919375547639330020065552834408588868434588067086203391237952526470889449699916923222709949201339159335118427114383792274307543368250063724587402530256116394065819477929517245346330704711014539455858203493733221502066089681888176844988582606373137956911771443614665609237004854297048719381395665490806805975430314208117947081528401008320418992800789970003119855078833263354502789859821824077358489155557834074844099017010898737954212752184485600153565599197928263037204595409175412035212968187418602550435361142842770662485298279852118790858359852099853011350172418428805229805645845610433991196306687712958889253214975903934870987131793108625651171619189916258364539475703247597212565854831691471681103410934398091075968354966266186790967285562273233034897605996437508930731711805408353146349251783265664892678955507775497574084661406133413352112038870805100880908692564504686892625261104369686660679835746215646663442774987879858702286057148272383612019254586109077960092649476165535289797708986693151921030857454894071293028883164180102931043406619420667324146591956986432312827441834175598441861912414146924013331832925016497123402012295854981311949971021326130827579432278325006216523324195433671921619804880848241715735370389240840560573930505851905581038615452698178118833128123668949431579395482972686565918001445634288209846797986113102822821223138137480215849498954083284678191371966922154566060810460103455850911574908653183624477586244443717739157538333440760381971976744058651916356257057386997519833874852470391462214770158717658462557529148590254057225882896320664282739816555379041563355024763776706731337969733808991569597032072496906933452602339880535958908316380274991966307528069489260672245015466755431481185196530382102725527476928102412015859702577432262205990648736238617216555526075253819450667208758223923118723248640711849280247492276985329864464344945565573431423158004543240206961001825035308031768834872622047738363180441080838299072977178235179668168765235758275663612568005274363008412237828732735229654909605582149937426847954922633967193663703964205238829434633368934691570749361764688732930094482821713342991694761531611167476885181982134308151483191651483412139979276195565951743462122468226716633850685751608159981573808747497103480011847677952548701477654012781712617743665279088196900930792459978605392386676616748980737989837871324791357346550862072094521835250466776747065968658812317489114502757811075031930554523942127079848997878026618254013724640539255910094435082043946299165286378268943419557909534856932707870793013640210766998133786379589906387134340749933159288188078540093823026255972205285390775969416952331882606191279571443969514019222521436278212414512977906178064808409608273696490147627777978460802530607042519619449016862346524254976551386605441117467905194884332287302484263730962472905872175544262563325611081796478378016703321860724404594898529373561420830967997449563162092636395565552277582143908990915504756317739791999435686889716595522174095166050113648226284018294823907957254528608798040436854911455582823165640206013012004313750697317285719539054720917492465260475432178531484226306752291597962040873970540486496030936563093591945524394428588136143628683599822351355794175509591029541217872453128865143628734791547809427515708912553162778132175014760269354842650218142665153666326338718802916651084107189525773358933791395963591866975428042213730740358810312561406704814524038938847277197528595229795785555281963419645277855587084143786338181423939945820119777115181157774258355375402707462925708498164623760444751794093504723366816263246503993861311889932170570326156048316658444114005300928569465871192463787906409784544437295073764148370282695327805735405354928034023043974983766226312766682492253051394034679208950215478081281585720858500028275257742388262650095522445562176645403123800166329093020454710818363800233250325628477821764568940534847096137692564172801333592170493255958596677394379839366518476096702722638955678058376730605546069461263607088925491650930973251039395837658765643907400355085900138422269111052567849767496532573885144868808652596922129422960965017816958099089007853833803564652466564240120601439566839849155972681560438940677601276949968224443727430624226770300485530594486376107499893905517032662802887502864033099574197201220914286632136237640677330490647326374011778278340697804416180654227150933916604140899786159575775511978079687370860229573632972974240565077933113819063632987895602037758671424178586544271830245096196331521777782850915662472469292910360594466741565465155384838757414010003389823328813993749260435219021648890938761366368241143222576670834999862311103479141019244798890156856448896045633978811831133347129527992599767157851249069937314003284558992610440651367051142258500197387502591181152248756779989501595152643500718349153313478443358581566234184097851161148090906140983024936475415725620955928172340148684839671683463091536277169514820628795324462414997811046612504888128285473253939720922643945258001580880013971850871108817242041222846129631359520213458397548585898568670550065092761753163692219381277358456748166221730990654621401141761564737727701948422747729668787256152485870346449800495153978151915548103462480876496282520606956270681175817324176184696759771002982416459458656706504267692490718330207671981893957014648185013023282216673878917726740924954487914987746445355367186783856725562346544365585570992019230430475553769092354047712732762298899903211894765087783714955648430411305109493723797784699297562083254055953036097230380661942231948409066952991061731473526617210576895133872321033631207200739559024499338718372906624095608715955154023966434253874165944924053118650432074279215308302764643721287396471528870956981379515206148510840476415362038000777352505408631245711136541473036270247271023671476619557727509185068601527369505001668092667477123767587937246907200640915198268310751052488820144232545162774404222482960774347420766353006998473490489641524846015948870839041038858673108302054839056984369535464873796535985011188218616861572406182828903094125043005387433736307164675999287593986792371329911608837169344135661638605053682869583434171311364479641450393378680496588841420293409054990603719629181916352179334309398800944397938366385114129888292637817908640945305980905998974202622123868874849815667810988497142664471822516728249835112005077291430168335151975743968968384672349088176465287810365914724230248346740398181939530948490289882725410240331527106590018111416892706079446473144356874974510061684440792565057689845406795033614739903811935507051751832777539002605401485768188714624396693863572565374761463078977460753192712795405317992439177993044196704887653063093712544383395586862772715003415512614925446180950989715653181606072860253070699077783386389909493146021889017987172095254681481196832542370925813974511229067023880754281367496927479463219466258423405507887600604112330743710546715324051245739798201915022392405681461166107832249863063192174927947164058410867624823737054813302583812835146772155066782472094302236396006372196735922670102141008982070214280148163247467190616865654590266113981989542521198791220201750929589304389058216499298360796753619132275161868960765493180924886767038800167095584145316094353652539963401713737372942841743997005755517203827394486238192434988423843985152612100296333684690003710088730269923982532522639616123870784319885077929178574815243892348764584964277446577921857715713808317347072402190992257058158042711929567116903261123976872140081917404771963371968415079971384953403215421594307330935774992550721618884865189385713797779035830905881041717850889739834650290538665059585121272384928654545296557059608011392348741063042193126538047703161310780723271749069073243482927800043860048702637595254825890982467552754129447839562965616320162223467945497553330269321310630289933161144269154241164832817362846828455215359110985623355755556988346222931745226556068149422707355239325747429154885442399168469280252869409745875461354776012415577188306093883093457518033092175065422689233153062575994357409934257707171734480852394080178244161741186174886842283464021410671524033241781086719325319332671169631024348165279063481162821029795816685530406312618693129365332168642246089029468002840040926176677336551586285608722665312451334993980083247253937125801279341668034508623935330660456602927253976161107586156170286111140283062881756930699054057373086884095311540301712048420637534996128261124189623644829829402241646092594041658888244360264320708989241895673824224651989868582644619819363199229096229021803959517301179861603133090345249544938262352979980262861278211504582170829674940056400961334265212981131504200467396506408488642322477250422671775301547688431917983818775633869353150280851857794992619434845129229870263422313981916380170403389990352119675541590405163298027138143012173927901463462278438801255757147319237307076890860822540263639438300163826812241824461938766647506159310222262050992104280160947623585518468463970982272438292501330188135324293636883587733998501356023634459278379213516317682370550993642174180902363418030749312082486592278715256663388715021863730601738604977126612493199200676441542193246430036868884684655884013624324917730459886281626826432727470498233202719244832413069190137937489427599909781962846435513010127458748364079598226094413583235175022796113295766447008885249926755683075268645085624664895057324900367339963046988185589958318029999002264839115183339878387294462065837022003830999927077395697188923276141073802775447166137891311860367555462064801454168924616505756750458933480429731504309210221896539633944797518558870596219313007959450927043309112780543335023039725352369206217253103810753081733200098722702378281326877676911824952830118877801974532221809668127487889640654828058521157341773987133405527846884071131444060439570987827643946950100429626927892058905344011952337298266401056801122855783789858977917756736488403145843761291252432485703086440036300934930080433866906080336527385200197951125479274086553893317156550204168182729468333193286135959335612753362621477501960328104189291593558803432878576760455869937328814111090761787166691266161899389771155525245120282777667157606777965616159722807214119909976563138077387353648628279034260574013444216377182478412880517508027680224777508926231064023623613991014361777024139676670433102218481183345468538461068706147758275109679005905766798692803379481476672535245534643994042104033895720679979943208685877303969656143232341263822588742549743386055885155406763984456707630696010617151587709896513229088857453250151133672677837687858136193449686141434297652832379184818008557695540103358399424566046766579227651267506132951605363148717137845200459606953223116017441529811397377840924188595256998661810373050274884102219992977665230054770825419008802604122549350133329259895679952871593191090786480854548047524637707009243692654681385195017625448344660300557150124998914370827716222636587863229253358815679747001113807489275693949210474782297086183559859149589904869024451211774252946693693652228163201008318188942695013167285064003600483191405169131932208455132344482485899987217706676126289363413516700304040000804296851905857201680052093551662139795704646187458793325268398569705550773635838094911520968273185422270298025067911592988671410156184759578727141880065242809830177620583841940537888573407253643558756633538163605710004890415123278846372880610327627269497256796319913262990343871689445111942271713325869040001037119461084791698253233530667740749617681484351185481865689630278491461923946780132321588402381157923099932103960567501827710071895691078534836471461628100050135791028768754611321750281109522088586138185174577993338018697467645274092057961230337453990507568299122233871859954164965976757576818661473723442445795367018769088627301193935532207295775243402842525719445267986410824330764976681440050409695587172783686886801143362376461292536191287579395245049476953038051904570129329845404982761938936547966473240802317918278054865026556464748105934488383267913908231187612820347057010143815529129066153380495886868668713842283474310896721598542502957410604885785598131417007369078548376346924596496482510074612287989886457651552412799467658741250586585189227981399431163945136973179356119269742474735545636546690334980838199818319113950554768474379872082229699771023364951839168487675124725596845297226411705659978962305315718932230694499094728743108962554241131288654726718267769296125821429359727316579201628403851071829584721259655409607648723702588463849944213909340762144825605481914151505670855556613975390579482168149140505893192477208829536847594361255563600728084325875475713570689306151709185515231743500397633927051602551959723002807004690316116992045191619329399014465173382694769704396251705490675664268885561956308354405847802230200359394969123003845543896094049569790423300445453642545604865839766447613338423326653362782598915241927379914444672081335060402075657202945827653348168618806657943433532019080955125265072745567257085438304427981450781106998125083292341178676952660799146866828472689824892899627181543181404070326158035979306414068374690189785177736937693072954878905593522375023424834590225723074331534707649900258224750761580659641373463427063658425173217910260075545249735040885470900309951000337366192940774055846377830312054406846659120533637113845960510987843647046861732734945799010279564811274909633399360991814950014321848633279503783377203993700715744931224876132234955233814588459222456848499780703613389077791833968662647181265644968519798454679676306557984910249242826363636499109336328970185838572086515230263458301799310933242173044575936015959844932808100555720323909911962385976202437263051922099587609035170239214991262024796432440823089450684024846320897493995718184655630314962767724565382448184498612073148281906931662224631617357489537779460016737523291833164064094533422585000694655892106729193585295188672424934850224132078772300019118378290999825793588039691717333899222416659004041300262453924977152119586865894267144522185600855786988685662238602514890477773413976246969635898494558570638991859645619551401588627296089508118463574179505611650725960434579984325505907000387691358435223108713674928517630817890302421141245789081962758766458833631353941901005545704799190675267867388078071033308977118230161474838926107117793817604150267523306734241009882644241199175603644779738578987207035829567566551830401366446554217992690947051749313115646766177666223408028618314589304033816009745203209962471690514725509496989790708481182224237981431270075482054188081977285284394668186170292698792121235628556922598681808558450569359455895079353277677939002277415107459645949918893017532908040894999857343246301687115125373863020293965623803675137947064131647132715149024261745103316142283747780943633157177874367651732434382777421211626379736055476665726694560289727094215926721832722490642098349401507682357880966674754456081986960650387290193705749700361737022211072247754833399030711061104754566399672017907663800340499331020179268593768502145037133137731409477590920427796588557064022136469921042109846418619217746934016979758375902712014202980310515040956838255331491177888139454321555395118866457178935939588516391564841303151804430682789790652449897704737753535432892008606661847581664465556943232119317577738354304180055127389831565354702369638675876600715624147098654200668962133924181990923902726297530913650438105436522329741765262390475876705462756698158381814043851998540562186121830727050513974743833613293699085719536267912199670299555616105002340685152715856115817112139597913149237672359675239457855379353627522607430239420993012484589825064384970951170991783106006201508185119052331947119565672811553250116955651137108725957755724773300101696618136067741375806250077248685716902813030198450478127548452168302812201443491001331553269011993933956965931576007339779577236383590526626441705155497616447434770826432744287683237089063408897070685091329587449643728895539239149215029899263443614380261847061686787459030284777299506244527823030921103926697822851538268870918134866510306425763777375012180870365147345791763583022419361532419382406102430193850125196838531908137132265323620283566646691076412212663378939235554010768777895370650170907371132250448344702802426261003210028402925916983878050302605466550563876428865791083998810553551254757517673077956201678306787155665207311410701266885983037962426252203295840464255739466509953262278783757582343239132802934286816838127192946212651713936322856228160950921391688333663786869739433776241660484911087436037124060842152468605956456291327077508587426300390543345679795193775018738939443271934744730154808731907877445744265869923859447985482929551031150307488729114710933208347610930839471353301319364012018237882565262434435532354030854600755542204992126723610622490572297449692949260041841071390477197472057233178538904354343888126281665130721704468904420556222588347457271682268656908569335134410503980795704505809478733450235592084540749045792721098545280907124397253404884523435149813698104293329027052527141785200087084390461056092634363968670678900228146843258587015997750455987997952389748455379445211423706523506522637780104488836051674956798299600842414546492562932589642484782291209945758467864937244303673141000800291710360167316951897536421754935979924195971839534018888448602430662066514421779796255506459225923524645174955938586624253448344776113797156253789124615635540588728643026095404886034168825268705079126263040244488040194769188530836342233948777478901207623596329202163684208480551381198703726051049657317849830715587362491807704873843456105576350759987097909290798583804944401230166576362082306017309454521382043812145273659584147730149102192781674962511448595592322492063332598807411757655575257568946614080278473147608152218384392628702907711884063187873153123259271491609916781604115055679568998386611550283490390398529563514880493736290897613090888468985932108362877596643343329894421420588800840094846852701691031956688378287172700202056185662381395851391257482710563944028445189420390783110115974530544306024614849103310604161842952122706932602556859312152521628759679820165912531400130165606988311542948911097702492339972435854356208326505207007981810327738336377698391800108002315750970696501141813831264210409601927874813412294948804773953111005016900766350183215282295217175281709747796633145414436426522467162879352566115863433634147522123978745273516125589231797345569439246048512435155332751377350193712502891030077445610472357328326246372300559161957259147558624257660722008565022151122173594911498786717464793733477795762034042363693006328111471060176563357260565368571109887450721893007006739208089698445165139621930409036647014832144160347879088260498933752647782435608789050493386428215386368934009987562775639885926555596482426680773762305895902456101486416935386879316220149315848586415545017978435941642707035903342682902253686189517906449657969266528879586525803217596855060583876398134470940664773701946883415749634292345000242912418361361244707496771925097662140893521472243836208705962148451145658960589886662405172424811300089752119322384132362208572595224935939072222908721037054853449449720715829441383585436405344090848182556134938776342481893446189059413172787424607875366026775343306247970633265070331950469321992587274987787771187035467159820814726135415702245633688675587693667398260997705312438645927696462423079681451070296661925952911643368910679747511693506733264750976051150743373250383974347154503739364363158234959432182362386681787959586525333243387422523272636819379465840724085466915489001308050469224486840020720441682317212182325784394047284394252381243735466571585457187384549589948111556461859542279603915505646705377694540308676376243183473996576664538037596149786306692925365567724880718008070985414549306272775786962933446067953447967572363541136525895276534704420593869196145627032551481600100586239802554018372872915438570197317946051273343301008766860293736303077637709431883486703048968023807702476402542238573647652474535546307763438565449763450811334514347896665898010646922589677209332138961756505312263631301467773840746289719107474408205007853872336700547466211141929949629304355498086122401620958316304489746380971626035870414145798699632486285016509916077416309818279702351324915447241588557686979927315265320962366009894892130143410299021909425536267638089661296332093855534148217776118477708065763004092146936554951029502060221310437941025766425273891809052057166067555226014025297461126984800585302489807486643502760501380608485572941144105743839836314185050133988357976789342179450477459233832939936892840741078936498338993321759751541291288058364086595055594408124788866043154507398316402123864723210036302424952142933936623235699819203529226807266370701101333270667186396040798022655303221249831954275051446764695485986062535287732416857786345821577972264396904944137158980370082142241402866673098286201380216432902806573522681375907042270788140341525839979508548971417629181905557596948033272884563345662032773727040552633096992297518187719786575023645473037224455975024618556074922041799345320095795762852534780014924258350027958964628073060026717365520199189991358167177418734567387787465602113747198787090500270845532373253527524711948291652173644242057983118306102734041568299498188426912101701584468006751802058583281986294247462826305661855102541451171949663485703380275396114673765289471975921221300300896390976256901486989950290104709014379788414504802444145440591380410046066427612517517984751175034661991269063892849634642410863081629322988387603189731902540137374463673480787676497021004998788162679328272684996504910110525859926172386037913258221582825910494277979084501215947957721284469039868699274298834589139214967214462099641905147616647199309284530633763782806665458189042702297404760493635825127476059612821949518795874042554764134272429825826860441713443990227653587959212799492728565831470173345364593436416694865426766973377765429065475195982003564907732224464411733727696419183650665925580586853200452749080753603106942953928080045670106602855852110847224250741626212141012482457816408282652459537578631059813011575877359604079626589398885982601608386727394161554953859771659469930836691615356556510743637121595136863857576838118977949715790553018949010198817847367094785238817982538002731118709182352257622589095962885873382845341449672058283166547425395464097047263896921656310221409278469577514844962356347722296340520088577177192473944860949032830401748348538778543279771701147563300977618185965086907944314068510366948529309208717432957733159936085570280618494687706455715386059694624461476979092078178300238346819917969447162518166538413883319193605511859700251189002632755768595007221771302785859426520158800597082381477130497501336976082982633542349989672599922222995847798606212948854142890348818101985655795085515663209373510811756650193417991224830786718782153867510589006367648120655396159161701611971243176171562619824721322865872673609409189578597288857751289983635358127864808922643072068570198361610350363417559747655423720143479748786841125865271081374127668338276495385351858038484827889782231218047166463573852677728746854048711215506209149852238468223892156585509076742792325341915504124287082800673833298192013543330715537902661975720469630840427227207443159761037850660413301719937921094139513606607744697513511764043048902460294197409214346832045638315299466665697194309851329539644922138890060403865025976763879388809244802265714843588524211036750378094943816027382357911837334689844395350915601243846549629741470365298872592400506226584298306089970341757315430823943373519241895012217182277694390752358334368711722966150603290656168093083050711505918828987784628167665579597737172844882088876275243465141975569835420431095357422975034680932740632010096590988817816600787304039011155647122472620606535001735184565373103636937157393037617324307042648534485380020884230481154034471262837689501887652207732648209490583978585937617056302329381504811718332501052636772698335834130911195988747148688266972279312251495846235000959763757963409708025976708922875657624275675490682641342044864836876126752275948544750898011093587130342223977303743186157645522916623572592214067503133046983190389139132232247013309539801364996779169553217811738085315704019594253028528687116432625421562137564211368139389631116314519589573912281603569325410825970367323216986996554382083592177292547739956558737504382176561466328931819418293216736316668390630281091898167743252408643832463412858053162601525936347688840578484549967445816867834670806938451781850316450748061467237235926766555084056552078596708660976382906317749746199625208840432090991879745203877739172266077585717044971959812652668123150677038604486206184467742654627310487679185886208961335526679945025949463240301598328322804818516978894997663276877188851253471691237045822711448999582695798324746672042057026020495037748397065064155170572353425538914449820235923720340946426122466782470008074021654078217368293540242745941782623911826610309275323560238374478779171311251303655492671959550718886457521566406224998527042223693086954765426461132352218232653896325157185522294706825581039670898537821150269664581703359776447694198666138952340490653556763548305787729771213980263997846993811447262618181044056574348516380893765561299258755644935027389074572723305513163530860628848251730560375176914017020007467810400986501701690944174196202923229158117887690517367677121531196948681760244525974336810824171608490895571727063772058743199084209990300809244398886198284340165638068187092745306738076203338870133218885473474045181875257020534377174146983406413284178793840496899171931356301944579862900867570948099253186861221186913113460171762937146599267323106927643549835611984300485808979777711759184382119819467823082707025291808827531816719890534524187273120460844843485999476055882242063496261398011103635834521825002382239933188833856228072709476440978995205561739627435903793948986040122859473071790091084314593637465299434986044412515140343799280037857337532222722922907999151813086717474997858458159643678405994432014527541261475558323599986820940234493655491657224920935220160411283294025606245247561149220434296226153720364725610118855668934252673146787103030431649253192412526934749603163279445714282441705588381653276961847861266115783766897345057671810466750933748469604452505638985586979561332470406129209690658813345458174957526056758432042561342543595539746155684281243168892985132896849387488328201204138749888923685643149857912164823274372183674882645386012801821805110074637613215533300407859422098667072382065254691008758022250775215699299246322541318450825232198128311964656814637609849372751495408802252259085236623991401282108582205506025396503651174394601376501552119951308531771281088545727219697983739805281222140593359421477826824650199244618962697198275440660698024633950760701738283646103841628222106332263696379070541526643244898406189459955313555175323192117034320868487395644155686191466398533885564908532735534388856804953823426462322938967348693955280810724901813169167778814895369505042162172519494167289065382774439755386237608199334719459171705449664354861272291900148324400834401359120447888721958936094902633241660317802131877237937092771512553290169226330917786264313785393826827041156637931309346729035870736484819543677455667294737477255519637929134189736119915678854166069951028262767004610283977928647217398528203890144144765608546975337768796251288912706563487067750331068639128076309824527307788979905171081266405672304002704312505644550196308745051894421083783609666175166017620599342806939700568085208532206070601806183818567783695481315503950532698914044082572457423546802167743292486022607586275720406426648726555338744403287916905586077334780693202782600265230706110625852122164257228898524400519900169003440610998386985883277368285293758459381441923375795790065590034287806005634493876532046146015912410013186385772086409541516938447288530145330556919520386704918602917073819824892574967704560889843188232795648916367153552753482296168897054452696862476997666074410635586744018010131877665358757949346880281707629738486175996827401430446911779796762947542212874217289800627747505063819797373547657105644890504797769581652095214448422905004382375415351824152445161383186804293055654085168132976002191823590072508409499033700128198878468112168536362587344977873651970780716038597757090913351135869977181591070839698963826939412516475382589878468259256243338595306419104092222686044216096356410282495670754334241866657686236068826440100902406849596174789023846362274117136017930698482504634639147360027157674987554633858080190738538016419906268576537490153385282091622212507713867928928974321572467565498114525640274374153151396630206096348144390639688289640010151615023598257867410404187879340487186736676695272839463713087672046116663653140844791696965658398757925539929783770558606313681917598262367374450519162988862543828578727283989408277986114322930793770777836231118580378329865604823278586127420306141986049083538068668672267102213688228836367273906373285858687115318038250536174449397565777153336657509212500200578097845337316709969698764405797980545215513108946310370947547649835120057346725572804880059921128932916337467669134896335759165014893027483282229537421506448929152806490980248381937925160550532880203194041129446135540867178677682010246240210177229006791464305336934169271701392137731048490544662552552826941802307436456768116293729908947857536015692526979992123275801859843935510835839843023512782923925976592771356559344789350030998806555735059984762074837151421113132852145020519956357261493982421741339529237897988355626295830232508105872471381542614535330453054250810971451276705965570633466411849148743972474239751534450132215331043413689778747807603747277281572614314115651117045844100769618415417810743818275343540468039303172066830495563648908328290262901263860682773758338020406594576261683006909086377113771086841477115978540805971354805424361816487325788772576804245275116748467737279889744236827731097340254621765634760968940951373183426069669183178322481570818154481826441645093847028018739201574638555185714557557479720949370753167644784613403179997084866553803986490019275971609480630116466379142010986600103895903181257405966648315038031520259593268553512022669147645368148662900154076139846464818753987021739927701074396875920941937263338112483031176250960178317412671188708068931688021424742045907595262935993224160765341340593570744001860788315435417136002304588207685635775725262860123663507587349480332760005925957397411840049557822394372631095798963775681752631922279250080282254014665940875150060208389996815241811856990344090881648604384730147962731224404715245713948381759177265867253162615497396747201009348780751908032612699097729821149720981058746459795500426998732899075173324125945700193848399906342364361882493466766595532425790295653373282602843781914672914179454631401781521922795379281614374725866120411977986173271941625613164451272352643341551194137991704576091120766305808530267752826679510398520544125083915427412380338394058857677807694321731152167574923948102767542314804558310310494195422023871116804260047515277301279518260986659766198994721119898473577162270063273706787779307970825727627291130468055141305169275744530509773765564003048564255702961993393929766798714379130005490486440105402496099103964577323145788887009071080901642478874435629994648802349677220220706855729170105772105535662722562887749087795035567703090378546741495739996917541401947334130609780654288972102286403136664637772212681058588621463527525265411015979002771097018840630981797351931953489863677564706626983514256861289007866245643015131556849983658556954155297025005828331210735716833219757009244254439924893713243901319317608333944829582914336143686048118277970822179963615526717131903473726546855165950564118847862220106292719168279757739348459585179555253390858188119728653885357771448923162882657374567821542269414660331876212448998298804414222107548569682345087442109923659331058146480911173430775965572280985502306916261441060947849896722705955721661049850098994434398263584903067178361786914907260916907957420625801171903046997058442489506096195490973710793270661369519695347870993827762471042724152102152482470145883587084270963814649557366113981485561235092743826539106217750551850291084411319538873058300893813272514591211516896212197365382104543983014148796399419607164666708505620662607547242865953860473650887041790737275072153036127400123281360127165418894631361315602759529924097716710703600546035138680856334452759643508760168864133709788271427535336554951970380343059461298253946856653354036074038929826247125375793951335157032764005248581212788347318254856029724740775883648838535610685099570178523864511603365125028632611406451696224710999338383316255698320703771864754623380537919982042195072819491196293617778361811194702676424152544917681288385557084817178139458387439007051794614049632380126787017914321056367929810733172278761782713126525011989274807289171683296229475572607468081431414230299820578738039921837053164951022365135997023353923557271986124160522661866939809540431560837605767072105942005656738624310244108572266921476394401573569485947273374603435347651380820600133192238315802430513683607686169787808862922028323865891195289975803475430665247791871438617286523351591899480373553897073354817669833374374537881335356008989440740056318476984031961441786144091810924784132239042882730261897288123892759223461045943938206919696637418812668622184203103784778945171562354519882385410649085174944353428093351119164408773084512422690992379725611269210122096612383308958107056868991590680083079059524740337944157921624047405054320673357498416780872765996848093550871481204355892666636036659981127645487373984998092654602685887514345815216981074954942842881167744826714295661427930323848383085217524575413724676406664749056867841552363054767557559057701996679833212210902639290575416015438804042151937270047919299283245911663595803342177080458385592112526437617645825754628971499853077727384063864898306480356960684739105300432190589557201562577088441815297260330572372560913200545917969533051373489257770105331807595218846941569691073499424991107797322391884663997395172206957186955754678659459697752354052696244386356705885892319550856807514955584646528225507605747491974902148315341571400360587840336880765111825844408395057720710246655158663603293179924495294613488946506484249686320398573136102939748417118923639507515818717395572481851135716978953875918509341806749455049549306228892978360008792229395765573009374289440369895136888081404379569202296324940705046851831755201307425979642670881364482612945283573387234690173392107061411179670376527125408161999255942617089379223625211629274599762410878479029696416245937571770003932512841154196235026814053044488926469409294426441303743281716877594331247597277919547088219923638559619440551560751361915217183187776284900735449088884527595976397189112530534756856845293831000875368259281420906047790296696373680534426783660659272572135556117705433240212675110245524234401364272263759530941969226321952159613970872747013346589094821158518839906736076029105759383165065903398415572749344327889345634793391514965993114078032975644543373089491334326856408207772699190674328951992562357944023301896247898901865092652859206526073403260390029873244939832519065667309015451466181873942837495255449948336167614563200719298676965370353692979549578046576209587046044733888184274092962097756638228066400626099095305411372194130064838065680863360255812431071377890078992971706753196011727285139916788124126593199630038840175924645679429024648629730618393454386243292617664035440312471779063555011620348954343083669192516603680963202092644015493903407678650104205152934413356994766423281913397536246644933044937801957096296001372150934632649933915450201995756632807887662146424233337094751014191100871413695265544164137984373129834601487905034913211931961111602151348048970042045803451087052972376975047942657159936270763365316635513665757283127041775937011549615461179695232936259440923989900717970372701777425981764449040752329130095027382022957949610613823744390362922513457429787015523656391405689294035071732378595425242615372128602373308556953656851334727212802487469530511622558655306411009233485884836309790757191776382561729603517220670753761022772787715035200949930772750554220636356591663540062374665726028613290888939807898669064347197326057799254533098385708980774352992122790935345799197412411529076298917671386337170987657544177251254416245710164835602565318600067587965087530384747068794694073522074994015452337245881609580005097685874771351178905838506699222549900905156596702663797438638344902007631195984871050800254402048311859376822434102102089125810048129371346438095814847824823715310211865441700799702452750986812011877866387002143384156348050710915765404079461040389747924721288132153551560800165144875945305992900657763782277616493555626474584461911206173099093658260250671668935712753703125041739589853427333279585098008791042339778387126823804793596301671647405071871504977587756187608835505719536219074466880943318296403406684081033554300033665686553261635941000700907195403895821673017515287340009270630229995702232886057794554605703367154787417379072393733735034809239184255390426149459126648242812265958892363874079743982962160898952317495055166478700679536830520104553881323697342509917388015551459353268671486879377071434908958366781358572841438361147913911764468512044926488267676652841181588044507168502557907836196929287207387480867487699664348425702366623514065339217886810953359943657613022939382091620516660210691320484490560925000979989009407888184948153574934929263157744264069915267116727830710945401087698509032932505217871721036618816832764334113148741163574097614349472005979570093224370635695364078353745017770663572422482170900162924210011746973621107784595036886126036155902704323374488550077417257056027193068299533051484285623338278691937338956088347673457192303872903305998615949434481003584805022852662811641908281305035712639497542588651755052199671522182674180437323456650991386084414538409830711197397027547836946653091708527803220572621954105871577789430716017953959980173946958451169785617958757755607809999671001412294219069012089519622641778285183869931569653358826995837471440192703086631275660767726325368587658591944000289730539142591116281309348353498441182396327431450569384795971497461496262121783439713290088488510497679190288076110046727394908890281910291246806650722611681478898655676147935358131636194104015716512595331103249810364340235143898220859280221490187992211928793092340388949988721977074570931229052668816492067101507324043868866078134627760272562299628236906879316130955350209803819289351746248898563128072318319249878688707756988933636890266519525970329888578882852895488615774453062689062030834040989475282358387693913664691147537819961962356139618355939461716281571687130053716796550445059619855770223824972931129984059152976208107391029544332211868954181784876061308348063718692050622459933104461056561386241270857753873547909619276201174002736539582981262601405876448354347580251769748487140149951201703599281860747246553467272453105724493432723495562481197347315883804701095689286665539352690286836603250027237174684181111099477058300272300852187407981476756532878074388519655789121498749575355556907978847219330743065604130739833198131283963110029105748384695696886872562574086457858461830002786652463213594520469641984726773665551129694874604578897240128706852816991874391228933767126570075052525349752040522705410936607035456017693515434484976987357380938975986256901199141283444343912860994858832658491065760246917482916087567749734568076207007067778210885545743509126262051773748936922818247514234056202301884516405620472804242611688988072864247882927181708986198001734756806092982072242687600089062923467350739136651859689746910948459363114340059687130473517937315267372742886012593706859510685259152039758630346133701492049776049253419616361509204120162070459600810927254985416476645502806113949104913370492058949248894641199154070363746081413856465226325649771679913625040965556996809740242819087102021634185164741509503135568115325186587270277474952082146905959203066791145385013742293342798071354784827023632290848867109039141296301251140719593081323869742243970274037246795422644155089194222542707443529261946841322887696160542431027415736738616997883697166173670129733091130323934897702275418987098213875761717999938541273557888884880190953805936682171169266179569578002249956001172399046876938649118642501628509569068865834896723797943536160248594581234491611480355015806998286197147058326527800912618996171102037182116899492583807996986425135299520795650219075836596845385249308689535525830480337350591845467904558138095328291388498337558490494425368346338431510726035747273860027034910869798838190902042495270393861639531600783803034570005689256091179269546013879106897974692108200878175565319172666531412592877686571395838240123253938341499227248507680228914220644909347658591627607575495933225725352997010224134459993816777321770126462082037746053827861120172934588859226260334590167684139927538214281991656145173764821126420892215487364310446627915970160243015066032249889863696356108526049016807660083837593022527555445527177127979077078502804553064793758886546659218792852333176272327885397594374200339605217733174209887499951633922230192510393194826962468230276679008425589391561326313874733944196199291743717120792338173903954321316085085402323795177892185282211121562928712629937435026121316418633084831828999544981925568671519506786598292263324827654750407334288880049447315614096523731710604033962775483883100340260026178055486121203583800017530524308143003287491215538579801591339046818273034142094863595724697151673463800174166149847389748622421511449129195423783425450632594687918627495572209691995314023486354146058608678287814468565511211526717561076996154156998017849072995890747344191615178884298475078220243025185443553247003239889772531368594331762975294021566508649940424921283203843423916176617354118936280037700286710304739628792504318296452691463448987539064961979552206613077796660656440564854631507668265860736106404285371686666123495162282553375724787389169850615321869910889754375792973341111921199919122007314465172514973937734011235468325551056511902268286438805667657957575972352532370616938177232335924445791682661928964305440213260981849571013403174988092072929864489614301254537959261180604174320441742622298039076772266302889059506428730741241838544233358367472422674543371694319801231422290612035604908210800235167180832096396621335103910655313125230102785297602197380297333404713167457686814780876777837571646014992831357258849483531132650804485086197655444342492405658620925245918352509230762078218275425608591080073191605352643305729421477189482877398911118762814738287604637951457536553242216823222138399045095753130016841343889830236551951078253279640691962118191290755638160311243637749484228864358592419107709866068769477802872393861785312844970119191935047996056817352478139540815105346797821076688761088931785018286066520709228475740665313647676553773206614773773650654445477041049855512072654056692736649343643790184712532591941987511354993091506834876067238289509511425182894919634015928097299229325447921898511270830193637985485508452609066114674742306246566707767680349745956967840297743204380474299994108254745978202815683487089140464801538771597790296712458168738290411765737502931881955044863226127205128291389967938467198757166152434281904675129928998837205378983093936874243305129438038499378493000547528818301480182224992904337803193722246975384589626165690600164352393648569686004712045525618363112790616279795592855176215195788112439754177072756838699219538476909400051476723071423611664270603076791850918696060677379543074138143602022153127403333958536218123965176842876975969069409917836956000829100894045846662417201069451827472251901554720721859263575941103878067029086303382821477219325247670825147564788720487538028708567504218429294382157998484902501248062805271200639221125889421353520204883185476183315957694112432497901955203389456246295702296896629736095258711355115107152890374171154548738142136599250914543297432603425184857959870495957279655166992911239153428487204723056373405139580262292685730048598316385045100960418446829275537003199134482915422137969688111483062640466525614419479734952799175973509624702666527945976999909157197149843229871186410464108928260440822042608953357891557763219050988510158428358238122424500718858650448628021359825156689026222767203192042080413478615200194463356791057518350394133349104206057674532879207136761875284173560914184249316144386121795923057091572544488118723441577231812882150202774511182162421039015846675022172770281270484851177179307163043521077264750343663878703934131638869697562444218390063085281291917646380383078127279205959880806898445797718201819004292430396880851957673283549523052727609678457693115985415395749032029442951390642031660081972264003764988166577529559302564341247988040017586971787149549251775758556603641757969425335808666978411228629095155175537988416866933541191251177465749419023444087032275182385955957172609707929138961567797209821173257388911617421794392193104608958683757292276807814470806045850959271655188251381337891671960547915943996430520431799194667024606733227024998826586789305561343670553706679701983542636230552643174736592300143040934845573822736362608559633040342070425512990263573259433843482604911764478716320790171202222331696321896098618887916647640148387074370360032043163634156150698315144369847167607374405646713510356103905057095783571916269511264604998062599013824706416459174712738985824024296641716678850404419293211271129622227417847180117903896403975849105744330538595669187681378648643676736392876149042851023119119860743446598790435184287992957588358161605087078509355871889853995934569765663126963632044667050889424939435620642668666538659174660001779586771595468804827280878353066382944175175111709339461809035518920987255048201490018913490954407359558422915058355662898544008231065821092438941942048535817591702653348177962313517405276610239785949838893005067288567856937017442491024381177403700073899262083788825470056359980687271037340477086216801679302088946683966698964425200848360744706532290854659922081337423950040831383795274651710408669260579992189577668278238330801882747455461713423746675902957309294505104906896905459327085989078924146306575118279680524713616179628475563090890440911736648846794065189135934586858092514838382046323900275743521514314414101566191735610947353544085206157399698218452612432134083503240394077285263675792141409212669445886309932409652557463619350590639741110426772040102178188735973251063499210107299512010389293372606599806692598060179761698892545161450785791378891533939793102387069784568662339871561337146061270104428826838788142918423459320793542000543920114635360227098822143652774654484252969606518441941453526252316696411694880642616768842436092576358885544370635464482199882919925235196681537691419066380249051236953843442897397553959788853999066593298548978634922361737501509941630563686015039758894738229620475370008778409859492534713707550287666777120035153716884548347076499909941130048500203622170361767030056575229271073084913794022704544492919708122849668147378881908343670614214085449848232025687560106542676003200730493809189539500263954524980473961592932360998185286000675504641076394318637761679035645338522139994462995607482229995239353036702894077456086756890773156009667613821918642871101814351716978236659835221967377441738468191739791915139911404039560605910508038689210360028058117665577980168506957188850149760190505883465189413135896151278139975176464612084275398981960262024462455090974434301793352172244306163770127167400859077581440224735223015488723802530854359691419354263571892318338279737734884101734875843207882865103240290810411078838722379571778139355157966371994772088399333492696787444696879509285627426894589397625538557686665677273245053572398018704482530748987542648683195418899974017725782590211274748211247698341915426715264507566192236249078171621244949232633028817073410748474701304364896293775809624870918342893921741900047631860790736851861195159030292494749316735400023426580505345681109486605322046015420504420141208756156703774563606034613047050743994145933441006228918571820142648916164711269857294147123369293973343052562884811428133118853488879340600294190100979412860909733288195291094775721446143242496099998112245045633910986224157932590135356293677084043210242633651897786094583316572911475624750405367032695393665117878256393095421155636975206151758939887583051088179689384063508298822639574989952752591639990628838339830131364049084946693001393644290622147592681768468682368202163565015338296819672281907124703651712002701105793627527308995861580683473096476343885014156618265698097262332660797303004135678013324666326000234761076115610643467694908100424671991694795672328125433671623107571130534392433588107769401597427868440756164478976800500741966711696845681960745784642898231900884825395974262705553143802441266745316385334403953917567040752206088165773479962351956985522016477158192140014011595008136023225485806707261684664914271429773272030254055887284752230693071568747914953124737996033610059004391317848467722639905233600018805358027119178770256639511806734992116701971798318159562889783750870759114340861580450569414555852209182861166229308172177921633720696010562545160608683126044771380583812701321105950072062585313738822652010510864552822609331230871047515615488025418027460248095042167177300427119143308147306505939638597278882259005932827525973108599247822679821820673042180392471168474151714530918637419580304787494837210195975473082010430010025019443212870469296928259522904141893319325882067624332128102373396329145507906119321402064669295405414910954007910851810864047822043160811509826954613083013633681066082975659236162097527990028910691930779370406903557208752344729169170829741146998114800779104136407223212319856857489078897285585446516767619962074177254681584209455154938271957425113426375272558699373561882917753112730792271577139661048623216597365500283640493902984804600893915032255545463395450633017471376529964671517714417857994792850800376030794858013917441652606877656144622223899670313092313082052502729134017920002908894789416221621588151228278338825431751338809823907211245676265229745889867001417049093899032424166509399380015073237907100309544365450920142598078746457548133426063938281935058567709842729407228168736690509384483373320266622312643364067408414498871359224143852795060620430850734368053298993464989789393240383678998801344532855000277736593421842245268072367111367200912689392184728328379348442148175876632125948773077247561896479531337341168706074358088646392771322157533008043056219614453556171781422106368916736505953331786957299254373824745474570298968900388082863799411872711542219785958883906890869388745133535681350977936018759815794531032415296568718343711255066009622959010544940414952819861841404605376371637006332844163362142710233986053860488923196206588145581683896158668639845203671742996439186364955409295207997818673561160098651766042064658186825942186859432164145449831145336556293475679453739029450075290793512190086942572809702219721385366203714758059552419414857779488145965128437593920362935643869004817291814077346633202579572521778988550787422091769724502974819692097596217920720492804513658358664204387886205936762542701625929569692400662978642001351720798295513904657197561446084945172078687334260104046739506046461865301116265441727127294452992906722220862164817457516466253110807270546168899647958363226866953462077405313021452269260484293596003795480896940126547342281202847403538825297022923696050296658045335036163122851677507857836394370927104574797325248968809136924230399980311330249454014741171581034943899609926012732218485771658654087447666063747940507249906968363123072994413923119191193578957206138253542438201144474027646413784986473774597181628797462499379319216849310217057014834917558378876224501710484877076987337059334269435914912351035310923067203746486808157395394229274390925064009543444958169080205401711541003025121671231368396366107351273117228089279151312230874720937412595703481176446296785150855875930546647174607037529520680602834431201314735602611198292404227402377957562140003646536308598158798411171549796071551023904574824557472164731288314964352079611295217658316982435058717288329985284930423915745834204033451967383736243495667352945305460112570882412693203004246463999259080264866246029412736754550203014548543032104366871878416615030311556935126666720746326166443505244680829761843513093884354259240704990960334710325155825876647021518482974192780512201770339474062438559225523509717871536912378062994643040327993174312276345050568368349625871823232581295921683390813837149636559672613673868886290025594748646761393101420802199321277932356837910551878976363195584865338697829337418025473253074535910614627446853074254992933113591314652116243669128277263168300469645421931125256708882215912473762329508099906865816823810027831171611044298771054563073335081593141915917316514950454458416622969629875150198744588982362539964296929317675458626118544936442876254346437449806998161423529205186575514154040061958824566732691179954791954535673729993452453904309217035057286487463132962959848492514776864527418722724241102114745044320561986206094760936412972739813975445003916396120700320268862565867560751162159568631941174276104662196704287246122995386706281828920804503284889735317491419733277152825682574161044541908924828609484748490362943531757713643505931870242870467099578840483292550113934809402717923321767527436053681261807647999976145971117029499035568470585246471370501954461691180347846421691226789533900525327685199591952767011273147664049876475643654381763104425199777641911883970950916367999671878794528279505467708110104388097992345403931837424720327506867196553442127371734730195434580480340755763239873329629533630259964336394725264218856283704023570347273144414287977766290463127510195704548791236167190587712275683009912381815220434560865338299495335027035447395367059496984374359439698967747109458939603182150050587058873133016633491142436435128113758047459280469737732243659924247134551102885553590266997031900911724216641719462272253923148142002056624553919674956740384989305216673333066679171032383427337359653006369249430162899968937890867396385444623890490950112233715742796641312245080814063745271714594544287258529989344640041761759924224597914253689456942391886783561312713491664748527655235538776808726822686093068380181230624374988122297804761014966930130070379392108895232426205564693113660039548543376498175794730880196877970482375577296027770272241742005902255664025709236672629621382617375519487585718058781778865711201194734011245188836491039908895023872660966121038056013309848583135665406638933873197904198900060778108080117516820538891443118786160521626488530940356403331383125061046732570383947553051482136976750232610299455505857373513204353745566666393329188121937291710797501782964409938972128253704067291432440026705775813202112664503624606473322940250527462320663703719554436621618207252330393082031355344466297107200172356158138068641085699525647436563237837465076701559164577457784846981980405741783206874281985810461301338689300012544934919960843715544460616252966796576809947117223628303436151146612402348165145676025808057869130870091436881119816758493610918848439143122628306071570273660503086366344004861108605429496542557969590922438895504996699826139131575969469573459656250132308305774617597625616398507107217109517921214949568744522906369472228901124069421533728719889319521383646418848395794176626961527827033007980293457668459197160141230621079435367411077441439466606138047143573043572692047170530655048597173704727849873328171486304502446296097910990101100776272541068710232625415722910635111027974519003488082679687684654494241434690024885792533241327370993205900135833088666221371558194566244710481158916853546697253996554848627605609455585614568686567190803883370212478190011995805037792907779097799157844639817291662550066662542903227637579224591856016554018675068179229702937021987300884940368451182279577002109353225291335347114990930882896249433354274854666702491810827771303335206949777852816894369596440138301028436232711896607488794120187603141095510107501266802909756099842393667683382803121167198110353124867035134047329079592510911296396255511362491720122729032996833788966297005991736593601378981925345759829352946732080308445308708895866791148395317493222380677324803200595353382067972549210165663904334910393144710802788397500971508240752445797514735601777623266100663191290666572076840997147039668259920405684427056017061397887279939614676182035363841458195894325836852994245523328321722424696049951360875423227497839831430172319956313273355935428270500730875385850632382792078471424996879751534615483731521514606020277044465471866085325818977184675628913288218908329825108277864820587737433082229463291142672285993947717844386761168575257499707575540793213851740498346228785305246426247132874404499586280108896823572586372090298090319961837008709673301771025871701668829906851283096093523926714648217827467231254478775078865015637183801261072624318674326005772853945334003681317754305321633375350505194686637666315216815199918270713764377735605673989909257207358907639404607093482826381880552253325986236161049741250359973455680524040272291846533454978217368336993322042241136789855024813527597847441673410864568277137183967291295577534010964796116975023510761715922991958722663026848028597215515626314717098694350438850622345462710754509959898328600535415605210727546435098562095610741237974867613992078621374194168169777519409091171845727090463532913651563135425396910628577800200017115121028819378225327211857615443352860344616354063755664376497545964560850249020737091983022639373903489642813084946383914658570249830818317800250949580204924071253540310040312244827277921730327004157452742182782586866236574969577436998785942542473945780424476650942390125601029344872313081993923752878285142591542927636390183124693671970612423581847266413010301091801577681373366409143056699038229267985623837212225057800410217808736104492941436121526258040968524048629810820186210574260593361187296011991016120601192617740592977578256972725921951990614250005311977863064222559839110632452862922771678667102328592574012179409565024944019066574857084423958991893653670161770201528620972265706886940721150243657044370105766475826347752507226306851209190712937370657488400888658274616538068826944641385594640961107498602509004714677758991944515460350577657236101993129143263899073279691054849129960504922193360977501336053777799316968280072186001928360609400858295943229694261463519427704569322376045195444952561636242711412014816419571621192378856788368334001239364003207901077776561885991331771340142677511684561509274284519052212476647454868325481587903528839328110904085252073039122691864025474617290643509405610867452623923897354803869928583254535157829289023840783583684855173501346201783935865517466942657450904521276796808155036858644057054791064526956617631283436677566453727653782897848627000802433846682915279466185465339851208837537888041354578945966458614266124139583830490622415075111967907311100129027643945083536858310820363860024123830129612146530379141931238043387966096247550818953926968573082167248641687270087705368081543864816603540396457443119398797601509990332678471754554750257433798294329698436927678518317438531119916826007020830093410381967893714658079707282857924077441852415127159177711210415075633552166394157600516429776309144482501939911348750309127854921029218618311038178897402893353043727071422182937560261138685088166856398728547140882615948946446767537399354032205244790406006996475715504955000183181856828106635613310442979312061826960063050737890978243053103830235690620258386751693216835414334072574471092455016521439383813674065968953866645494532757487641945922982269031284297804369001507226765895796631346217373879424104302216821369816190377879787135362060307579413180192471965517523094604485380883491433322245768174474638024825342110576498553750571125742567364795875469995890658652970951146249242229385168595676401516188949072038881703720771015454649759257752753728709843016591713732645434028814447525134674828603555246398082021784951675839397690277285314888661029611953496800465150296835886984312282086211833057094429646766468411955928887512434820762983985581893279452855245822674527965546322263333746270308410327827952033311385252124122869407105906614511591750266181017710154966703510695630021825470650577466026767799557827032708133241204684209758224069542871548575916893561715499517956360631877503761722579465029024907336975508819181516568008125336971298371777556358125631438945351857260791427047125891013940077512191579984043938426094706325349747338709273587810168728378596087157378653190011447727983732251299102905818219741102172100039180916863328423904340229346711576527173055501373421953766466985352543728508670287365281144812415840128220368857494738559108801277224748361311850278998900818485018834168850816383927531713353899103002603973458535747680858790205191164283734771346217369179490753521936598781765455094431267096685371507484957834113452349393949481408048373537376833048640396628461084232701865146980178575228537624529830181967465614889716916276265576593681075933326953714684936426923007262245317259748344131035593856302976434573512438065640177207825042735542900349586600463673896749294785928226498550137478216224316358693224184876454869022860783989207950205402864449153194112962803104286013446300685474888407130613797551464643326874081210397020399839986059321111090704620712127528614435518986870071479448626927237913373852094741107175248710859978439638020388670018588060465950455859617502919698183616950596151910611912965398810732255873879897905127526752492582359419787317106051293582328473746766960214540874281779964099574922328262534916100367952913631439764685419826170526534104574875785918778194818989511883259877024980314612875413317363264185123059364863184077941137940930553392681384873393281356683293127103412706021999702461007764197746851181937471828450650511544848885828976249611607872135931609012477452358597317535023142841950057111415139955782975878843965808857681174967103512995374161293215718766191871219046571268101404580554604785516056674996361858304790105949546834277221786772402778133892188510574559188196582904061148348746369186225712041783316099230621859727427978740966891485908564921569630277534898083883070025543615691775189401029788428783145777800769574920687841413730725778647186887334404938014729775390878547428883864706929981872564962589686573715706157982298699695576372032667890514671025094023090485251490931716887979920121076787151234850858769683616490421327391253955237813142744424909721049653659209924502448020074504039422536817135814614715235843886849055714958219838692047324912418772698091954342782861541154719544444813942373747582649330191536542861375646311360932884191275817313617847831617708860032563993453480676006996012659728931054019613129552324249272995540185081840120349051368534536727796908328459710269550911318831778038407462117561554417678493081214999238750549947610512079927728857705185080346133947766543109326145815644978968077932381735314783737541158506027830457530543880423206143765892726428925181354202228160488696348721423971225344035696390721418629342885715276674865193829728492279502306078140663382369729044303275683808659799711806948111608709103597074445754412743558027258490620884912803691935517660455044962229179043103042006819845373675936259106676759749888914366006692386531166083757075656079230470479923745474943614116982575228533562229667029755595882158519173353053443383132304507012525210550653611407547219349515797224487283769500919777958108439553454597918802628111119718055115609242504324043449714725978211439601534226396114243535690658874208034878860357290776557333096348481358360971357476991996960638034306175913158046205184149206558672009195826070038402799437825622532973499803904146496696821384772094528412169505519898972387363688124357779108523450823417544210127819248474034406612748078451507300411502653591253797576890676624918134511334325523995331762857837574407920292172643080752094807490766906632889353769245706088439518770861647359803493284503393432708242147202620649943650222012464354495644419385884565213224072118020333003368602579687739040977636805740786939409596061770531586006056102130714685240830101830465475124190725506332251795663757693607476360262286881240281562045837110991870250034142085087590701207065855132235402618754423441378887321453421722009063641963466595370814585429561650122380669628493879944253903021375461871649653391017662329241969170106011419982649578510624425936684709693613244814447107734377048811464098398166133664585418251980143149459265772044738394507938130728175861161979603163351980278675846718464871980234372685114456707118099154412855763766555928906522635678303587213653018418929758039505661544745873676871425081800365040638926916207524549826298412828955435151896636093491504626724078322052850184868269930752960766184999218973426964559010478003035678071106873412977336492195781090471554966149463280884758229155458819209415787286634010260080185973339699414834473552692824593167745141074242580967769593545822991773417928265450920792900685949672036004853552986186623713271330770978338619436842719423794642576528281502472322284842406171514816895982924942906734972571281999380882724865798580413724154138712712278305375013902958437096847587165965127671697016740919642562921975625756997012950549715803597352252663169990105794208500934545952970058732186268964012013879280476011464646631996131731800902641346937073678359640712442534880265631450568468736936162413340913649511576764381957869070295440242135403983296761097435775630076101660913236641025806624961525776411095802867745463944681211924889512098236348610157505961356014419039725215741989925138756488337121996799280960611183193957924221788558133862196981543169092789998427249304601298074654509946598624542180334391915330504314540692354889496709462477756865279524048054975109463091197469608484428037674642645077535482930739373107691520339241051412088666463321664245528288459335192544678244134267553802750689704819998580714550789613225671619019307401613386665551089135557293546331011947212896364069115947801854036442250816266264842893367290954397548055487860195988038649667771794663962748337094330035267131873074115568432746388060457108827681510708312391351537626321331385107302329330331376697568437883650694995812741147374337152651778054648596463672885589730165934472800081809004027930900773501490583088072981940240425972038945175327365965674743743434462147156257358861508688674585948911821998981463893858843722665087851060692393605953086900379910202787561088072018623702910070584451152845384209762371633002919164597775162807975901727357734995108001458617152425018077304497080353371668381206351703037295795391977906409588076644458542454897001992228048208014691611209142229738119778147633224761385792002250327433502894466639222342959421694473113722598595615064092175880666019061262605741504170652516200209675944529846268305634768261430483659853818073398139650063671885460116448965472211154757837413460190172028101297274830615220619685277771637979431501275497718415549801179132594393005699019643596280573686976361607104348332887250590737550690982539681964916096914128319538292591501989642846218605395048203715829351471748881868580073228418521864430024439964265324414594281610587873441637368233766002892235036030091409509576262415719497279771951661393122790199581685299181583112665035509442775604946071505406722784286075215343939449829792445624623176647622917318686297368053205183381458353189634253421357597514993845985702664573146506815750100849304252693986362621098820782460140419465579653942825652614413471219295606752724015119250038091234182868063124387242445664662336860717693130312569942272559472650706491935280484383077334531733958932819644868781802044962666498646329924769542672826944913104765798437615458902056530775723866476831683279788952724923072936897576277710146802304802837426619946863486373580207329119516470622199579913113497815967813781196108371079743586915902027136987800138796803835406544873885592660643074181530571250797216158921336707471908412196580268441330080342805491912968045168959767637328202158778958374211545023498067318771888675257870763055772746802851738604876799639002656706946662444388959204886220959012076579765181166305177836639893698555465239055460772042655661170310430001240178727365923647550384567287373428311338599671188863832679978454480112934384185452118113974436809983624660187951468774646308783574904584580702869952827836596845438669744355200009630936444519903407783753267955207441675103738458869988560141653968692571312621180025798779800870416205290917730275950301298113410891637629847000839800304457622105017480574637611593725953661888685558042523499516980834375997834138904708676552351182486288583117868626251318726896851511474511634131840787837036384101981389655857058265739503754118462889961205600326398853410406043609776003354314351097441121912761309033312072603051918767649113837052257978333469894221841878917019055741627317380360689811707945938439218135694238558600031075711425343876003542108867144645320350808790978573698644179728844825013916531195907179642400149034727036597334692813425233635706506605962289864960445878070763647388643031301820660532814626106801639643255701571905012386918076657700565137476166476197777262830602247183335711184007895177892364893514280802185077286492251425959512882018161702315620078423966162224808609003073207193800942417439489451364193888578260071166011136099384248955279454649749973419508826693363420216196978894537954665412560971989806514363466051562385430967400474408164551723511395081025026281427226875581167244934678160101150971913006609118676735324464137513717517932815923632536247973645456879930479400639227845439290188356677675321319603505644597566136851979845345251739226551404234852140822178518630925816567418553820323763414384035542380270345020094259719975196885118623409481659551566254870458428637547379842486504863175718829590333172041360448481254551529465026441605666695440840987724111124030999052976100609093605539062154758714238842958062398426293553754608231359087038454112391855627595412395953648870931368466139199823683799102478182583229819087335393594361633098271860504321365254347652642208357693667296068118353519744805159883924108369499043205853283377212736198339838152605457355814067959829182986045909331610133287224781820746348689156313726497716967260557869944987859714911895815429798648505177040895108676299738715647710459176104400776732167794488294144268385718713694534379060880026169222012922513521097129590427619254425413774605056934141151673581242836129580316209869059265194117974668413050736985122549994130771954245239411020899832369036167513524575536786261052509391237757380853422663291911571527609109261361534089399082364787705502503192362132977803291291951082282006876141688294213163447763719002995197238080025481230120691257932932027038072778339282975606853576100416403668897570692048986319652361273483865006785766808964373809689581645235292385033487652491976707586783256941967041337571768076708357048256818221673381281133164729049281346966475367045983081231230468179470306879732473789416094498631601667355741942993766436499547821532179930922389551367479248751017760028996578835006471778742030988334546728111563727524385244320004703904783831424045396400791442657900868047673865675116640738544553783358760060797935117414551551668337422128222300765036717196680749450612274691894566030320832457751822435818858394655248947407798657578595652241449606519306637891587042524411888223184716379639438852293106567610091413460736101404881790390057212419401074667381715486644810135205677731419857100638511631611077704777995622164955367514612493567658220222827704167808680985697018030022701446761123779869285885879813088179479912626088109069409490438892650919048332011156620801846395597110937872533990247619479296206584663794256095423964911064260304733210050571392206758857274568924068380669843042390079799373938266076046442044522643415569255203078305551191120370952490781866550488880795158254851528224722658626747424534440583310746650861273745084362893801587650094772536842793940608373292143593484435987052382498886409731001192277180903669447651672374019812069093629168744071523732676328781407747768363890253322342710465967900394076372080202776338605847787337288349428816637151052886469534153514733752027484667551453268153764671900128636966815990610435015460962783546347407129600495057788778620436960424405436571699419393999429652721466779058303982159679359996345956433741391575332341900733594958758666558948622627753457461528649465088114631476574813916324609032702307576664038954407811888881526983994688353480280083641523525423728061907540911952468769884238374928954777861589592290351331492335607578180293132430306780021917608841987749213766141891555309143465460701508750188502566975109077178570413177765642014296679859054145378491432953950467109387658175446410891691223607414504491043830972082421350285565889650275832024327680441005069893098442922312782107309384420658621952681803580548703450685050196155823554203125927987144272019849177631242893706483778354967600388321346103496746364934542145963299217456449871422853268901847032260305469277780435481425392346795989427439464637009012378545127499220768297361968301800665444758524836160510527760043431816367793711500211596453354312687067386288568243909345019716350492292024240130581134442349976504916849987759704212610579018051370228334686529966085757601180125424155613898963058670411189593795625388408551263656233117261602305008183084933075852592364608640991559865733677692623231269637651826489476801651430632545014243720816680959083402105896515544529415519998076542672276755919840312841166803471015076386362829609183172710758614422586319188730998859208717069100226964585680401516518723654725001136601022945497028546525052416379488675897387757177759062224146565898178152250980594235514310257263578586378337097226798686834903169661072525311454857990051543100443640718045079332497102396861651972710292187814501517630418163237098222145420228363071572531174629352332665379821337085244754681858301346372408949991076637200336975544917455855779283026374442117321198714876450701457180611737176155961764556873269583316472430876597771912618869538481498102924906157482412934298214766242875536385675926539346717498028170148527532273227618560445514075486849539480277136743238235461014392598185131760506633747398711233125756776610061651210290226921419805874984406255500641067084237827064457216687222692613366431271536367069138062681868246242858357672357456815555229118873527199204660922239401743697643719991176777428322221399659076582660894244864085739410424707182598867430334706145378130752948642012952571872493028496144164413301840084261053831130245358483418910582403757395186966021711285649562839399104128803860979869061759303235839992368713277675757548586105874467013615701830735122238681915128624050818119641532262503184001529103792328370195440544316433040569762503156661354389207522966006584905030802787473959405296692640961044457534726112544820614507761964345581020237104029498631104526090928025789999883945639601651089730906856037802211613401834498400752876980170530776224958394994954726411473346562823498377055653103545329048839133951869469994428651170060139305412127405692459521124250978795318985216903137596126891270575123965680198086873951934221648724940130139892609911993594225396189845229638136971212393323047219806903518395565232885256853440663678832889790935623556571905088624641550065302173123885457304279997644797238371979223797054703228751738931724990035862314462298812479272731018083588777525481610921869708356294335156399139155499271957155634979665040417064768062482874092273934957527054510404281522554289387238938049755877473893281868702340567650768698919982062540994258220515170413129889523464870220572890298723785859537235422128211829350508505861454470962125919459867657536962496610319703141894940094093158312939471369493620748133400675071753302939281662306491989791794934210064197800676027998008814087457384527756505818580979170916472538394873820865145195110428597869684092459936884926769585066599153796864119850571263304862571806305935211570619044192544102679629854150724994773222166786732003753346961198323446368816896172956217622606583669271793203405970328639559350700338930400406902548766011834946450486725899990571963598340202986224107627882906694268117458631562202455226808771182855927503791466531530172504669241534276828665135710438276196830842435671534814706272465774134903967408627274122246199469276719568339315557956534240457778713397614197644964841529986071134408769441499465294122057785979779820805152035673189467847780878850243499475017379544225384482656561306141442905844960549670323371967816368996220367146456474780736124007253180770282205358326655626615887974361667444379842189919945331926627877546649050861178973263363547495968382580472387038112087967928209967751024405020975265259521678097632573540129889307421833032585061238602197321428641810597614119342921698267904228468045131592075653106414542541591733313070695549104187114651435980995365593180055214196764460874708662909907829831645525245859457005534918796656884782472182648090971444298252262644132493487296459583650261802329850436617736284811742006829901705255448335527435735201491790850920446213751226956649398232530232587697411961209588845273256912244981000131283717586494325195085220360612153606136240060398966386831318665193065800413564041320940383954716229796528785705261636208123313433629801635628812545388530972281705463848194681802955370873886208965208723077191706802122328717681116272070032999234057442037951187842822283369724232278718932281910582856111021834119685706947020006808818699722941563100453286810500394464845374231836630649483565405007944625612853744177601761580816133234506492457851130416850251378477690385174483747597673897567408400070055784071043831637272368459349988099874777592064463271303855051586298664531416778201773755795607181475232723447937230499804886986970576857513292336136354234691857813438134010352426626632880180203301601140360188218942691223312591311541825884136951599147589477629850010913770883362382256835281198220656308892049504002169786866976127516175061536155990486023661524571575342618003158157603810183589053673942001306425858037368429318717463762856946032726786454613096208887249769659588465047795039444828636063451589007622690550658347223243521378588006139873417468488742671918476312209877572315493255233622837454961067005583367315295661631021732387096405210549266799693773804804119479638359985004960707836010909679821212080157927355660110014442354955362926443854645479051955623798946325622601750621184207725629690101539326600675462802207289983980827375160239688847516903327150248789652795489568059897050463909013125521023885275986545544743374716396130953889062321306702581139550930075621177694986978940223772754701591377330693325427221437394578220653072561130446295347627782930456355215806099267700635823153010181458666737770693020727896757501028920912504392215972785906359962240562860296918990068349176889669012521353979386310686635960300056965478964940436740476150704438180423285667846453465497819880770755350574858700169898474246076148725935994977544631462384402498250919383099028858268388345384123604034882560214896627407889336446287168928963053206584282234599642075627425390372896342194084730627493299932653430897872872896967324404246362744202701372031535895784399208642979044737422701354836905736455148984439729670707445449394579767817287285241670144930627362924493456634101311847592154737667613158246421315392926376491741231982866663772285703898770335037136116944713783786593574994215445013334938030225212835662259170377995609344261617647677246343801017088114051193723240016305183054610516465816222327003411551058697714738343860648374683798419277709530021482404629231033757808104033525943319637461639884528847094964574262633921594488053995692525116615684060905139298744345683853996447251876176320320314817723467878597892487488054556610225104606484629143147962394417365038956572195378085998007991295624590755174708611934081899575417724267052624990205044807820326437024027047491541374374218925354632751968820099331245415987039911178867475799558458218725666674096762415614027771000805051291923092792971675593767876659997926829087972386899179594338187299151084138066891894455395174385098287415034186115069512066207193920982377319449937625866685588985285572231962586101320228087693044964827882912186147729549067676621091347545293222624455342471673167021622751300661646524633665315663124440637499114249389964689625951565765374614206361761670135325564808314216289090882086564251188911784798387739455917872528355412729734728817412276798319641059342893538963949347941409350440993944993678251654826147636743042561584620058726243855847681534487428568116224063409737881443579411961514661618610239798704606017864639460398052144963142143306028167344646100316425814525735953134315120046518451479362687582069847924284367434963811030458699116596315948664976407992141259819551607761244449718025065833157411569115814983893000042422625717315128961763066878171661581042460792874197893887615474937392571179829701498225287027566505305444752056200156850807119091854786713313495363841454924818617631129445389339598987386136235016591278532815159236597599380941511517270436057818997281096765808527275944182143238650643429996993581524773230231878377128112274340020538641562310310295513753988207666953567945381561036187512685826590882881409357627413700724971406387462555734665162344734093911070266198260448056056293009576487148262444809290151493734727614372472236555389881818478950118676013588896142223546516378309461888071494780200055617998723860902327933740103299188679670144513001198816477789927183562290119326094237305089972975421822056707980572652608023204798517428330549539901880725602293410965736476487168091941982660871482383443895266546971747290171440037561642613659085208343563474355273113849318966412527735036247522149817550146652538857242234298539212795500415402538105988678078215429368127826095871556718294201700303515433326950477162191488984283284149766750849520075396196851081151129887001291779073861002216199611437951156529923382180545441542915104546532707956158023013617398356661961409421046324403745623010035651123469226924277948457903182991639975428358551128118529755550337445318900100076637336067627748103840141497339380071489107909174219402363656032659686371841790161520555993369137057615765041759629494519781313253588069845317248083197224427221988059484338862232590621739839191906951823063243631747285421901214810775495890055408566817539647809151600746130174163441350161630476030754004639580414273311314554505155660038121017740908103666469515772335202549928083783159116386072384437931181163602678697484420726348820751842148876799366137224645967275228232590047878422886281982074736961240827097513762699730222208421676364554771762238640001445715604025730269785746930180696675943055242657663224746303569367023977089686199011230244282874445248652847498497525700520907373360288151664830757532301836237055414730951783555623522406122820981936106341566197746530533613132839853036977198185394445928683049972844110870804378609903827744770135700455337256400613989776246732319362188216356124910909704255679791257718175635035688529629323799640500185605865834890441202391454102950007231435871509966334257707514043067474426822314542562547152704129679021023971140724218947358301839356926142666510789411790752437024834579856950575856091970820228011022441684841138631332389661581881433954159494348332989691872184877721511774352486166579603338383580378745999302151742357058031348579414926702800541732771863020731208716801295200430427532990333394983327974471480554661581980192294273182274591083227454762444173256330774988985902133426460189116460985589389227359826698457090671888133360332739471176929342456695557552398725696449823805424462862123721701193027669299876083691611706226916244322181471057473173452117620722636417417606159863137181990064340762739257799175478260490535351472795925038618121490413792265130095553537870787085254627009473556265205633659865444243400905258811935449488368624040720650823593169982650905191493327342577126336321770819893682068885403100991387276444665884450727114474448891383450487798174886160407706864278393061343247861411079346558026731459662229353810484730091426117650027071407925459678668063845585797268315307457843441628077897552254320390466111911746028451990721633175001967237242257046176026623614932722017255262079428821374995629965225124144562450884273684508307838703202676631674561082339859123520410003244363209141096031637619248960971827278093574150915828662646607452855849250613963031614422893743209322892302259364531878509587037833148531027238111931000469364437854302151670049144403789498704068392302880205811164987230036583959316871834650561078078549964388952485881504511905980247570180223130021295378744369134389743385159786615463961495512630038783611175974878237687691513219556385373806777694946324042778914945586914230793571837521581597695337326595521614262210075987794728264291341484520131420898883480297865720678006494534889571713654635351764711182994159662100815588225923946533173464139595957179832848915699242530315757441637872279150126613744878384584948887701246151675383627280045522375688589826080631700582193800888752684943912768753288974694099922395085159636582563654744204266044983396914179012607956775827996713026402088030315396508724582366938428027457538602587350203782407434655557398812629224182159230291440805639891576678915848004060502346390981225931533333309888876566333132518608225741594077180854164951105305603551021981077687601800937331405982908037429849746652253301377947428199057907467732851984479259722284961509814266710560800444373451898513381307980642849845532398728972291260755216991447319832551906588154188248965101776176834585972243510456956708784878476853770643703828621575517487626446446924689333379810858870890584301056357188482388992883594207235880337028061167162421631434858451920504880201136494729656398193452744706851443953257966533708215867319723950203648914795427102720572124965485641868163206932927587726089700696506503844721896369098560972906521284870375198544793838560879631170535322307838995395780837392250720442488611752946877670189611519921959729809114207334203114696638176503038628124708622614014697373801852996860965116151562557608793236087359619606425644156911549642363131168308107720247584212349843075056100982360106471381513761724415594823745169650698251891831038283700743182164538469925461363856382989727634210685315289040180633175878534334656245458726650503443124475444461760074568605452276425597485299208968016521075449497707013107068471465968144559035307292229982909505073745116411320352360234485304014943720196737287097475091720019181128796848747917837178395426734547947098546763744427796047103715582923593000789785956114025183245725544681166453751013694564515499868355398338396371152736969369636479800238576403598820945387483033597670931235483455907803245417833004420677380454416219773520212335335538752818665195768641980223340857010409202500771388883305660380669365357370140969030823193019520334490677788861338355064866583783099771451797425613419410237783735377858652133398961790395086430195466371996136211779096725966925462397183790283412592582706109999443297198730069653772952288235090157897797575604417576884168158037779903197362057724694125039281049747137602247091788001678971681476654334086838943109837793580623267115503892390306342179814901298922668331867423657164988741518816717540618480200517542629323921711291940388568092428966553702241626404219685102798820822122919460946946066988377757731827967747450654768211560719191100330191287914542845528323078631698737965186521473905172427176928601318931896064793512244096283234069770354187200865581772211995899660984103917311467267689383281948504053375288921260165795551647962041603224343635477237529364927515083408381730790917622643840357301787822278856230797834798604976062808584287472534679472024166637485709621953367260701024770967292957328445663379765074051150846105948452940656516175668444577140204822587108084580317462070273272203832880830105070703399397074256056758959565261227348833109491300059822624506190190558190406391585708781849501545248053622070232019645449218422659498709307427081613411425273206825556534610080543619766862329301006648912353888542855333343068472460040095170439323449977401586146428683416118764684783883672860937828670282173895660852048334943306555571002912332687358724536154517003031139872156908635589887293844501867914906424401584295334654449599179361985184405357183679183756093202760142909538770794319500909854313761683473804882020301911954920270798726439691400776096142144302889892613328727280903298076098269633892770745066099829663236101700778813129248661914796111325022309738388043849552949430092744046705876654346645965968933751630040029746238099064072901258916056657561513218624776157319490146417906165504617242366103303630691682237450519063895742562415049958590658932000344903676603917579263747361493269248062025260624070870781531862698806413335064507547405211886020642339489764386732304159168193555302788281350997874513633793637314909855854875531087114886334473763002205062644168052220865509113642153054061074621133967299063418349581785132592546884529210041718237516454495031883530690112711798275667887583649865785981503654300078589585781088446180671371898072026297928704188132750195651572086390835119605261023561755722213539303638086410986015234467585189926928261480309164732648632123083559356889376391317775186893296563296953117425614374541624687841853088800140697620453675269919554962907151711150279571017171836623220710358353268940615752149892638613572473364580880662494014216205257801623992235236520147509267363589029241955181857594396209830179007174629042093336636331833315169390172735963770886848913257921557341234867089379031013279412110190287129432365260524345415566524882521711254969365295233388637761020531622561126744412558272909080046449753454525136493300699115297409496724155259978168398906942316151018057294010470653426898636035317546445698563910447034254837989811008333716845200726766980859226607643954237395002336343864804657231483608027178259649586055805243263466455814249152959709673795630531990797145553487116731152964294473888927243977829792113139151353522836685242262807136377711170383099767622737809364660292687098627417757864563689334522770212290893138953606367396552091552352280277173227139693946642406742171517973688793235700765104209131479519662337913993994648743064077529093468445374250675674271689777223579577866558907501325267458153542061548352949252370371210382541340892420688389674874318323757645089407377795973977713269377765421964787330058491946009017287498623528952388457646308673798180366199060694450372954959022176331486593919967238240112433400162351590828613590693427714492571532429437776128964343594961466734862035999110726674281669701528345392505150713647672390518045186238186213238850365470087113196508441638720086822053835658103078001958953633530526517985115561050844535764566052004298551015775099708732075253386805752052203189864617521958368635252294346839414261437959680695960036688465865798671777726879824917037072355147027410377902610857413889910957040423960074406381647811448677309612851471084994555682772985622710191558336226720692129754782231507981644612511543266186676253403757723104334857537180402031595532466250380930912098589629103298788249051781892675586623420437282271837276724640727497804941304088897576758384541716469700991036434288979669872902371915650197119860321885475549975572475744994919612458533784134197837054389527012257703256616136483842676972298406010149161741459564063600003395496751446611164890171946804818264247238775839136480479070328979115105889513705062931512713415596006058890855746355530202264144770462451583762928479650132971185416324472122872347353741702165792626049462799993462698404705540051567158034639097987838831527212121799162843792224968748309243085866652478586418809519803885490498333678704382159507238820703447957675207862894291380281011906847109970042274341331361412068003025469880932501320300495763023928952869190822772115375667092676164907113108248133591173617891621675175907830246379927546549670029211157357096965218427709420309898165765381610111769429341522525319214169727971249688604719827359839504822118564216168120147931239370461837837648463823142228117085108535415772734353503861571984733327548922268442583484347598276751722497694864511000656311783778700812377618372234155618758833793050532803549563540374074300190803091802122546222885386435244375207293211194241386800067210758419702902962343832626656939563262883262455559002695938964346065141776616887275861184506328758950128235860366241302256400735370011354908693126468238523950385680220288009083757648837014572491144874932000254477724315911845209799912815143395503865470957993669202942844835710831297341247670820202547383564790213740266063877091808947032744566151559458250055762403238513594294576994851577215235318726828744092460085096413445716498827477830612376684932831130564092828779706005284498087958512618385168759878841938399539773546399381282530097817555970580324070573173021611580788408417982392993229318868623015995877400230348344700286924953374538472582506256147005220611814944241515475289879606497807872140704920003650998760280416106708264371043565096032752470253339800665141782669987448460200765256832198963386768287342967658958957936975948166407780909670357668643902307864659602410799184214942978722264219149319150820336729816679231379491376479677244436124632574536252992409596730334700538029057137590970686948247322202666668820829187750348319541794822731890484663550767049951774065881152350817676497456813876641214206888860537996120270032732907770624418494270559263466217531269633228155616335158122265243163010498480038079017033440513130649152184362557520047220225903361076774861817201786152455456084861448213899348786983665168507725220010135605053758435475642618236380646291211197355089688196903648752027411111571975454940143861661803840779625385986453770768578893237207573637526491834484183628738087960329007278766839023556610159447199628883264384117169890281912222884196170897208918324137268578703151397592605288373326998030734923763441855676284672873322701403309940627643034464297759193984475011396771243924438842021859551200244052762863906270636914709266123563782418020422143603693067673109905303632731214905232964015401910466772926830402451142087400802891700096762471927007655466307435302172162613598032021238657628934529224182278283814395582571709688212728976007914350243562981350986551424001927464825537652220837411652967481571876425389276840988630526051943620542150374458339592436641834233677986301376628869959945632168940342210331878064016489272943272718335405450974882417536990384702642206374398944909443786275322138640003205099989698305318924351885376574452184595661670034707837230863175621732849420576051855912926845431062162796814055030922653765812385048922764558521666095860767924795271429375868164121553567735440583138470325685516471187872812310872342416938619901262171962412145024714276002607693531623134650213878512394063397217982321150820791543970145099084114000927891384163359162190093061717196434033542684332503218697328081816561709067542307331637042230923555063884597816132661979154897167635586802408564581622815363856167463391938724619027848730641013227775024591759172680728200959751331977515680395631465536077790949191376320036726406215805992282485648162296721098183625356545569113403769577516141011734976730244225195841840188565370856990575921919953472445276510495647427808112094643585584978179258683352541707697929840034279923574145208869829572206814171166744475478692865625440062702090188827994419977208158545929005970552911029915760334809576908279031136313038688385679829237065772998610467379074949944778964182487886506741910242253885218678459864188042075050543226431354444816688358733981589112381269065893457380668639585253141749775372832783824122053390653605440005915894027766801810047734478761061812440701487751746361739914029996145237788755667070789232958753880268234822735065702395590826928931357397309327589228810088375630330203879789225616351621499484306519377287360716287268530457897796142431888427355065677362617790187463665359011501844821890684350543787121735184823231179995534145166132410371948466618599789405929854228529318335110703073259378688029100837047182580396882252180059618954095448112866280080467329543436907719368074491044108806381722813591949415458393394271566988773011603387028081059850405007210097612305055354706752967401923717731856416476192867051163449871146207443241563577589392996409611690743749176148564180298431727126031989235385734333602858011632605573679381325110643909070091772421409284383921989162256905876522116491708622879460008397510444635813421728750110252992178626694687267775332922289913921839418921672114498803497150433443133643864598809858635469369996451478134059015994642082245885734028110306500097189101428705626000661410177114331823120220604132388080006993570614652630987810354487703447677984499011751353580000264145873099499212602373512363424054018466520873017113132598146240154109587784495680757302554706510282340178237802038604567264165539199860509852688198032965016631448984597833879380632018330591019666678876064172821756289209270742195812348082355577830937972163334002555415925375628551759694851096377950311604017077452535346304835261670385531140835912160530444972800003904305757052785529846190128125153218390510159816010542702355711351797528857682351982669402788441278015040361609727489362515901569294641185982917143676754803230624115727762091980970070038850042639589106022604454429582274775852264230865565333133565716118151790303306439290892135407504447465419586957074030186814837953447943757970138524752775568594251267725260644904287724366994902214416866662037399292119797111549587187443515871272246734564682755738431582211170065986415086502458520178854352647227075760392853288243053020401432946904582413686373028755901205408989588760263366028907919018097310107972389067830016974911840834480877983988644584348554663792427622869462738768255761741867393144476473001389175660460242162076179705018426408514402071353506605688354174262076242541925386550573209523703809072097896995835978555223376634780485940722169250771040856470140775903635835334662746626416345182455928411257018177960414161396018006349270900130088307772606450413024589739303283385200600043166697624252757807484098920937342049562154378278662104700165513406358133939777234058167959567347154940569742089070737777978067613282189554922100459706632388411754677123638080375092773077491047969581909018166785620869800091670893109243118530845089861716570527459655340942815577147600102111231313065815827509598513112323221255558201134874383643261053194571290489087665720228219535692546353356117804478551049289601684391325116460980599972850297646074327888551654881080527004951031336341949610187414578511936473928263035681472022143447878089239761341052398534384117643653401373832343945169521115516119180419666844561433659002927397739258796681246253701571575518486826053564958300395598573692872166199210136124428219099676481421812937784925647214776208568452211304939817382391574203578584737898936162227994528376882167633712923251912527351061457563148569732343940284238485861238851528844189374481006453580147259464663087448287486328218927713804655649972083497461490772606786947025098495832346004952045771788886167630333631364315614902125486773168667226192782947492584244784695552938176488873104081193404209419702418196270305273365248301955160592203160906843968499690761389848383035624683290927827773920068452573247094168301127350104653011607946959372804004536719143585772166809505961864843821737303374134833127649970204171318382003150587326461051468554998994997260222898088414585724208904899021849359121147988722951754396550755220606824570269710551846399614746239459035604508078005861235295555136346650135962676409190412272039934810111450585655066104110203428350321298175002598132994223032191193234268452350219059542539866794463556117118501002214688276729556576762125840160691346893812686857437585401013049980222128148508605079410508157370414501099749091091646349425745425349386092135237710758709852128063882079416306339728452157618583448220075477032561527333530166617172646274392947538852481362891215527458290947733789085546486358617476342650477150642697164523496720404524669139286400889651967943828145602968859482679810811151113342334611160462834479442115330691673630777252568263906185099931426042152956277266738563083025361185211024577714779282110030639636707039303073697037115383962033354001503746224620161552153923065914643376828045789362263867081922735106813844819940732526232111378773090368454875958202951207092045332910902021852941952410317942892527307031753369533696298074021479802614092648320078444457031561115532641089471379997131229743738367515251503834157001558563214424335398793422565236985755960820542566374112923408673591702464211313902278538247985384144120494491754638748626041904102087199541759316062336020888640513341683308258347846784930309219651739011181872794854145785203344673739476435761318911002129507899781341047320489577765994267751443658384445423055398357549607538497442540279994260068106964774114760953789814341384823100220617279774874736848334160826169329676751824141910146560002571284679699223390340401841331659713819304729727960801737743654561399817349073978035697814799937434013490091736702661045390945581201068408564094359693016195277804750214280847574131923662783388442234420918360488738820669073543761041023703746516771859687922560693975158782653064923725540316374595832720574251969870571236206102424286646122477599511239100615227654994601938190293229765623249923150755084686920082350899310865091696691485063854239266946329155034229865476754070892345749379866599109833645349641895374667372130337577814806260856837996388591225929848219328161072190517531398357577483991429695984319962283478469411420646361972880858113924391199805903036819445345438881971527182513066709886422560262011944829377061034061737216098087155122329549447985701911414423896612680320540619882367177247188551644852545976842333467669780871964199886701380846753656858296931485509710649188194649225010626136805457609793600129608568027971160705223777289643917129022423659164145278281097520802309099486355094345006213672467652401506413568669586183308608501615689165238379032638026534991034360173137946933204829732340274451833793354614716914125889263970245261299658004799618520492533143127864948250452240372629857473904233470072979906269980027362239111231403403268749802911524340667480920688302039303346233321562381132727691645131305931796691812243005011815174800380481739938660918123713764123932328362657453930336039316416608893014347085484283408621973280729865702525934139586117212970857740399924255258480705146214896197799059641430251491484566796700945605247821839395958300577249743665904066947175447810645862214378507324049399883630750847891330593835344968615770076756122715214373173482715910490430417468797437094946922060212410239757709748784725986844490999975150699705556237543188107441385060629539432181766073976579203325623327587659948071372552009193654210954276626514402296488441780706188304723549140149291624330985657685173324731143945925959890625085185278711059836495935171044536903898661933878930316427077946212084652623729824576827166007651594656390774250280751806445895193371918784207539778794808241457518862030165498935298420211024485378886005823045111364731640138251703120173068957357737892793516319993376700674144756572329767769687522706128087172218609835493462354631743989460315733232138531932744092237297074768863790640090889914115059777798891359541229840110991020294453615752863561095527250011708064508371749291995936848653802402092264076414136752044040753649672770970298486374405948140753458491221303969057456168665074411508849516948683510023839955248779924078236745769392532227707697887147163739247611287684589920478813386216929782418140736915662422982443479131011661223193494402290897145416851115201844948265564848488018496205429593230865860525186162133045118822113357702361308154471885596231288338170093233514757572784992579934040951591583674796759760166830637995453358025569716957246923751474616826391907723912295698514975586224680199804275689697166689222690835950960357324840176703699310699054965398275817122923899242511996312865050074442831941020910137401161173037827813365457781352814628190724958594000180299703306534594612101407452254915458132314599004712514928662964941668164266158063580275785125837738883836979386213043430240791903768689423954656809647699478691379767804051267282313638110941303994579225841128402481661814540510515914637640407414183594439428572781906772068070394926424691028197257515433789451030144908194736713462232404477461378334653731835588248612528664109038272702079526012361781922937888187886133611671301967613218820813750559668654646727333778171769954806063286425442258215936944223809196528934648425426391126463755944832793642687851792093889742806247772053246377050149289361392479275084574816772874500645257573882751246718447164708502814744698558719383238114930854137725651757707567061935908262901255444310878575436751325066334486928679402660359638956251943605460405785764297523562403545608652216684193114760149488472943910880763915966482716894984357926654673084429529352743314216638604318089079564814707761662620969096769872251606137918689718053856852328206644750704200218272067605372992137360040743178338263223290745690543055319113649359039453396106291739493800062164849282166394279433707270716608610335542173482560626498091229076456805640025469776168264963101301987897554212224106021653376328208390687183986990004370987938702979425433621065423131474666809638222654467566973322312608913811395195573480219971827366195883008262449747864804756391069616836718174088890636633609953519980605133991255648310023816041964342187191985687186024078213919103070359477317872184386183596050266406558193744130336973698828874678164321826659237139239361281676767259311282775189947532315709931958363980746345979151269821363472842737183024810808200614711285658424380570074349267273172588084851478503925678311597625320779003672091168714798234399781747429577250602227075130811370733577936613011498164956567506166600023401569276277782381209416080686249238311519551577330549926451092677778846422759194169583655422183628767105893173068590246361303827757640505995384463598517848939203099997040322405674399602084759955962572138132083685081804713932617922899689028331103705617753838693474125555087479822819784270615746035023146712584788015204241843315708971828714635221310681552397434800859282978691222951420476268892202507506480559225619656308314912294475890902912970582317731423639425773449943926324882279920488046305933807763766259577899593400407944484641479760653159977441129991212728622900321144469466331628819178178098679057266875477772446895346853508909291243322892978893319695310705841175430775648730683383348885832707590051136049131267063845715637073302851521324946731879189389668445997992783474194567665027051919310618672081855046411168143282487320742026480262333762408627541469050256398406125394426440036317887428802898269870178099742311397889762974799209242935422699060226883744011486097328058980245696474748887624101171885236109729926992497390359382207047991211954241612191468521299473563160092723281879815505948951755180040671637480871241833988042770072261542628873818635404921346916101474307576714690375265773103553346228452979483610248815118561791044743426271575841609637753877303221255786902964330251808364523799826759239583440638768559969166477332899190799801389210676347309425423672750596543807082824826162421469465335364233105473125667259554156220958596741503653308995603505123243485001913204361419564192815510283836001664958041356341627252412367612855998427034790225589753987187241192905014059267729194207066604649861825794625816676613622652012687942590918725288469587849640182201599163481347926334693860569849149633161947394180727967089546494826848393950719855291301700959383260291045332780308326592354202437994127624547666906272086262959410184740697922067757027872863543538901794990184432307627572265733102651759483971411136015504629314477423061458467403429079718717641843924463353011206818322351720412079219343028511445702882138890906868009151508853565520051228223558859758834384542697884598681449613020149715911762349083542561066252794305394328295984555055812481789414404238394773438676918391560835213464916248503293098716350350651569242793928626725320985363102992731498219707130914834762725796685563060455822569304874067797275690415816540799148342610625555572226125800723049812854877807949746153650713540707163039769637641846946165894903638755726453428662422381732281555550151160573860192480848986745340864676038163668569584931940658695463106972453278956527352071719493061300928178418768909386105288045716915307185958535718947330405845960577702449635322775189261972085726220502965616910702235816965340349116357645923024774697751401015280585508737878859751047415454077389650058136149071198432987462728123344865420430244050445820441903132662425984999549875590564712825118768714157912972846795702312434590969443368782680193366420498687329121416881514279577002607299209562494329159869093841196045486350861377758390509699390855803355149751189017354390508439548169459000400766676645885006802539395594858289822298396351385929035081744200747798085974636227307632816641896192572151618649708603943711519291033608892956817222576013983312717871586728389588852723189854535261236543475211125881942758931101763910950467684195130958836456248045990334001106368889543875490063516425743558432995862824704383060462345407642489498497763926365608609213855360576228666319862962943322502533706704721876276773278819321571546054875487836343353840104342827283738444271258827093185003072423379722261935886487476768976993000168632356079223004861021128727019908629071369747559680838530395504026860556768040690497818747153513962466366332048811857507863833205087033957948776928487143760586646034922950792622010309288677957608051359686579916143526308588198842226420062016869687536108246961426327012939082503401961840598983263173345183684035172622883718032949447312184136712972100256842874380346060977479962513067235720249076992839286555500663945284130199911132678231662030089080265407583907721207898837371522534275621731099450402738009787868231677875340577548800416556298134980210496339109434473743018981071431636600220596261907285260528947303980793397096666905868264281058862844931372238908908175186080290796335701675749715065217178204350903802442803992751774175536809795580400763219008247016697352113718394227366731139712422673085658216727088658349919801207080292324127695745476185847230955091231664169894094149067975545132417320796345483983179991207047313601258119133897417067888044942220881080785648848229617942931245194824770803177492938602885587753193992131180513593639433265880622631988168004635344946863316081377986349001850634088627661369440594133659100855432047405988326588748779981234829088273517117011913521422561389422381795827938846838577337613777794677749860158726402625623435712330993410757785385766819198970887885671686012040098005333124132415075026344517871130211437878817613782252221230259750348331802029588648523718705868945285767880712189098857301422394555557481907959963458346745855829735072302658296266762923869504894378579212566173911131346881666010799656611567752353474365398203458011713058822978031132472515086195715682426576734436138656029525216279408562984320322616257886288489605746981474977528171313506891460559284548780310247856038691393875951027865017946035708058358629917808309776741320875275522725433619942757171826315429031989149829170828832768824774775242647597911731714207969256075642854549557521665326229200369036705360270226229997349865467229947842542831449425341776643327996491923643626885012588512126195384850815518621902679848206639834065752067637254995168833288268609110280600379489668237738359887688506990648936941170066336413312129576991593111330497701254814722077369378572115051078494248893472342191704221178248458968966213241851275029515260019576920086570791168736237471441695047294896412698293579809756286380677218381257019998894608591035667677849868984072353065757623380990355930045478072745194445182503639975132120349247629021159740933065659983941290643925185432882992647127462018341706663586808493674218927057165618213640308082685105858052760667887300802348720351283265887612345223114696296996779752494828870928477967104223722844072698537462950511945423802761869581741940904772233520329380312047378148708832916266871553725716106421966406380931517394175099462070151548063936308228851933489873434455284102510815149391234924213191206357428435931324170053319799604572907765503724376371520637501737582223997596143880430594415434622641519444747439144009491506821966276135744134263277305447901803858230552172904716031288280125255666771080407973974258340057684373212995931209909962493222616186528026249200415229303231884627548363220760109937947201028128658242213235620106120630923749323477273420185995360654486209952940285481215974550636859138187907158734386650531771393570732530810514702478936755958709584214309193902428037301014421653245601738395844059321167923293717724449149153651065894870896756188811227391110443491812694191967331989131901208413250154635236250312078139443772718054123306832687583570945096714038878844578149883808847223558056013317477178510628926792699704733582330827662690871246772905407753454864581157828087438223270764608665105618103103392402000544955759683761298842160821553015346416309137019224003370382186976600529508700737136270179006283463277037769892679634841144323679080633008480189237608072412624574838206225454634603748119177250196325015868944282378172157611278557244848801291165544039944502207608443650493399375035409126803329534128991658716011491744801923635035669442862088642896908084079772185662025060191041169152032275993445391253691176989578215032043619779090936421474944985847990153560528232943548684898888569891867862915056493718209888463173982709442045868611506926970367806529486962707906880203500634821488309472370473302400177160612933133884888047168247241780527197184850137284259371627741792327298922633843632922889396645304984547759352678254170293528631870319180041205624632995637031283472746405512993091549746384707241736585492277386504488479961719689252186895470027720316774951835864853810981394263482164609620501626775387325805396605097179007972804786588926289561851045934180745648224239067993393722142531521865285941397944981874947823488300876072005497716838472813620298805721962522405302500892700200377592844678876925615036881098356691387511052623773834110011698584869415913131906001355779484735938526654032215354418593475796597487085469349179064705707681654719887935960457688170763074403113838473254582795342608899172406585145087321615796417236911980705098140353672675522845089269348161654037548527147810285255431571922013673903145528896834589947203903432975904549351130887225741789818245347163992656438888953194865734443744885824079437588067752369523424087718762862399148054747165559767722000734351296898545118056762773426183169840775104816103449315147650030240710944784138947844604762977487638722883841744917001627372240527386420569100093351894657401739111840377050460649038722435536214225004114771052624667664412508972698470935872871271795435203910580582129482433003987731208019621039025874714046669410538362450506551099660621578370629265070568843762956078641956665711931486941008434088255369824858101603214652582009573996217281208604465494491645613012911704442608663855665614408926353605058743703504628685471690650532797795000187497421888962165217132005948929940184685762913044171404045969356957307376022892096808036275976397389068618603551718885760926350295338394804865417534364506967120822328520440473441352382906500704382858724192298193309244625739224714119124231948651081582537881224174037754768021559947364888534086764111299207566774089623175311025645817244575212814975128100408994192723609898229730564090275950767775939478292510809834092403384761378097292209833043038111354033308305939319907768708979900487134864576521899500257382131378494831973546506396546232823254408067521546917826570812842862418265956663500780636502363828089406470541540928390798943312549687582986793701023533071945344228108599555702933388005152538921065448834072616098812914893235592516597983623627692112358723170032065856538111481969899594704006365643969047964783657172637055989142232953610900386962429718947756203176915204362831493122856456664663774244077214109284412948466871680004470634339034301469804333928423504948053711587968484355593790572365215562023261661202348607196224828577001522485002115308540367493076492742031195838330936091479118118405819297604672756742479881413081591373104038947477652069551655611744412319247442539248011968853062989807967183485327256797480345017446492341916931298059333629200214158446006974173221073338774901483188499928555555377488002956948352602664274579225888522792259078673034890567173528815946601707708999963002343668069058488605693633276949468444938754502386096164520950414005872142634567060452389929429211893292998725562746428259994015950624924995335036492305722325479930447881065090410139424078830649802066468768354957931351954111181367676671820653069360063597160349238557476145440328761429322882617741790116834971375990098573990373762454074209541365684482110086193969907256032349874088391319135150788677788055718144694811405627328188991662416987905399972630840164892077276819979743973536096489630469137973540009969613221181476604096908853530456445960445526028033055842633153275470033429195095856069501692806653958560827219022314586678348852936812371384798760332141163428097997561762269074203264690080289273411779978995338467897471161581058364235966606746303238747548043319218714817335209423813405992656174319270614201946005363293269601247123065136715452563670061335280569598779135331894512642804147317930471833965715963706287134153654186008023778909234097548892107926345346512116268004083314255679722472496821337120301732279842896684083784064050891681754063167587330788978793605398835529473654249261153087663148071120685326142019703815608484448605401849215672208278154666088561797580666447833647020523892701732403295546339576192223187738968215006915306551172606719713577474468578584812116461107461516415907270190212063018832864272262658972168201286984527538841218543080032399824732997686591967872991646833372177469422082529180487451952940144147988599438952230639564105851956940037776987362935458607646566123170082155108190349023469124817841460266386028134789987864842564714328299503033725085552075710051279660017893954509342573126375353558515090942603684998199621077027562324660042360132902164895297145033659608711009279703818660811524344571109029134694081678343192153490072536169718526214213176317323880771017458869990777304673424997458779405446736451510197962267677796403309137261309055710325051136169615697717946450719363618363416720474273880128498476228757394958088578563261611039785514971640411838984989377976582216029859485585820808023925349384099621483993887267162645085752620825049346521516462814092104940399436139567210367811905933408180120132786325442418374306603117736587995341139465413782511918082579460738748480213998098004863234669139370253601978941942111766971447793212871887203814610981824968287370580644796746123650048349226624365036552195538631151151004866018164574152729566178427942626308812176694417182717662256616720718745591512349566954754034841295744378672563817071593444643938463429346397419619207056585274834943037106193808699751363519562441960684087357132691056464659562474479356393769979716847941121839037333141788299093482834499156674809318951309142165921818202195536939491670450302094480872157384675725321959903449005720204870190804376519000560720382043967109388351647240814497799297851499650473042263857699110067110362706877759703207095067477546804959784710412696863274337566843501735787997853624923882050638125417572569025657290176249380560713772558592130859834602610954142649372010556408424483569942414693542463736350084082898376733431664640784303857475995705785843770601994379190772480330153661488088240162531970667496882161975962687794252651417924429810660426730001337871018701755592791477375933275607127562083877300915057556264872268759310658522229403788035794626909045608469088333207093931898779283348570923779759698043362344311610126765753830272907737403240569672311152582092299847460097293777167084555235213578797223087689993597802799733385972886645599279627189228509468141354354305581242851734513609801895862765596270549419019656514363194304111199794667484166494304764319407513147861935994184626365576735385147697253103746508934374455736620582328250008000921283590826070694743926992000554171894146152736638706136635080035531644813007802306621404584542693675483428814703791104032100927799744798107034252899648131061578186157939442023827088856706462713993750592338500469316832631715810984711578442170656406658399467093079744490238895286628962725234131869093609590131102266334609861877632286862650578253034714354841830395678729049399411466393617675159183323402342705754520178062596160101811163146943625856554845103030039205848949872665752604100443218358684228120536966981719142823014378813977610702119299981122536723976536805819909600173127168288235351644963837564751926363779294067760167541129561297093728171957984255628868943354730650293576061150731506613188555109839404327722185475995510324508115696741375330843734987893517361507182342992319608047011066744320133389775868911688630242953031423484371705220930385698580715246988916375888629296550013402227042538409199851208865630725142576581089492007463372135441310280578583440263367865928643216174078173701757732769573470839985202284956994150317814813698949065176196451136412514945075155994263148201199101834238187056164510508451412496545088575848117116211218505316997654297138451150533386953645096631372478514622886316909313582000835920701535861534301086364184854135056078920201073668614469655959608254654240312905646925238014064138870291919559668311940287764771386177523797319949669848466202465946579828340773029608570507444922477037668160069962532448567246784923463923375366639339772841385409048289048278359033601989233236047514146765823174286175117038522320591551575004337753560002323820504781687623575958705943377001378629173362345835304805010780583652630630869052579185296123274947169468366246479131139925517484273253167189556381431650000003026409675562944731308873285632495534299120323927372885896633506514163587046275220040914049284709316857525420259540249479234632746483673814705463258650868233476772173931512740833667406420460693678072878610078730678989244541680072856606212542012346870931638063261615379543751418929906648285364881070822394864059598028375985214760005789867332462048448345136514738141325499001950631559752268468538163991417108303877877275545771483263330874760729344692159040545158598663710292545972711785773969010610797208780251445377564113326423779648832469109820458415619882183957770020737447875713829812268113222156490385174600145074786170143876800979724310149397443052601300934632765641273198109863817591090008722045451132110731948192970160400087536160697368259681386617594501530810450286362612287704875315789223987812738256893101851657035656732963925200812306892047041533634852434562858203526797122211190702756803860160094716353351535554026565318808171566250083101965219207121487505779369260056462651322940900865509363179418763782860333930857841942940808823555878754053484161321503793690417631362590846335870460671519732003416274145637467570015746002354028098185783465434311617630201111966211280619184192403745707307078652176904012928498732406924689813488803267253176964272461726428343206733255998169239113756956600387679151440989211880338786076945785578972895701613595554227013565797694198599566869313179468082066387882044833790742076950769239547771274407162159899394650856029043151560213001024629659134277382430421109329107544055880213850088398801874947026467364378414884636229911749716338487776187936338795663829912211008532395496253436660632785735863452808086230217511759239244519627270062747607051329407038343673700893754045650435994437534683543780528790522021065230887870979306503818022559893287749467202209743096992771470253121679717705620118089295667108171083469899334426544892685363382747594823199899479036329760615557235025556053118401745388509033383981904241629123467131415137336928305844301959655557858761200851974181663997388086012565222218373814217518144748809883962829685685030739027607700335910470617028571060690596403156649357619310407734213231730232944327330674004905469816556241431195778098673602757358371135562590255334878952174400231036794181507767509825424412290454087621123230280438458904291492998789666150686901388836203565137809784338096939192682617313483756300961074681228684557988905990056671841456263473863082710710203757894360620199242634254645649741932224208208977367199329013055486610699331262057720904213332702736438329639932273921655633673395907274982917550649303050315213434355488783567023905879381307482537762095726569925834684284413521030112897973983143181282247568798348199754542481149707786026620431489882533523616694662916710192900913849776682775079505557986272465883002748292874222472056794803695854160973479047219965984612838412630932648546191217191633634791552523054158938721494264512594088169964847368736996181201481961112344865122921820767890372974373157578606268680523795546718934936421267558675157601446451259289580271185520520533121334032067825511909800321169248888297844827733758562369052034678394348644689707222626126542326717577736532207310008176207243755870745133455687668739347073142454858843468424437380078427446822008353914010348491832844501081270880602443120403295184738878124148432503395519417708765697275858942018740127332520465461298212465666650240128102296486879405498566173685847452184312847325354444742628815522436518911870951713851680651528383586899864940749282765823891214500870068394608569318790640043026854496337481702191303049851165581305592931799595151084718531585102057779274130674280616042404029037710617003842611042759907334537203380826763078454343023273846731469858948597333204682216569345783126849343797613830677775720461190590330357189349450403208334929355808421800324091093706462056278336429261055015584723822417725468474923857708333200146760225001376537509587561126472108479902059086668589652980124519534173540498597698695502276973217462739310748570655214634014017185053607155739105900281033071934216297123828077256713777689102420155154260620298818594980192620542623240205623335074456802532086683273940850764634087360506612006697038539299549588028483676200436122755516188102920884554150174975658907744280779469183417669385178119730609723946832577564034577048590948042411758060035065919615206482980759416685536713342840060171467327827942872546565509241000719963715770157158031423080100352321096833588688175011542969222647238373261294101696998237399754052307882859254850041382147133242113288702130300612015514672970749762705135164628502474968261499031939881119849638186597995183671862336253564884943743932442802073927819319260725645246737004651518413248389296789872463212931433142402062154447250793035274264425564353484175046871988222707481952949581211601367217835837722239206787556926907739894358196910800074531082302891089031591687812810883989307951692345625375770303415196495428018216517729568932650322841147937293865319497032363377560944866469419233097319132107691757635259121917105694259117575677764658668763194618082919885761898253739377366878069275771473982499450570264950802709277813006312359048427064145940469794426031630837151463526559787326899158598898272012047960718688180112077514791884407729921095323676753630745561287944972770394914814555255364508692274369633245026845141063324186393844117870637632517840943189496520354056612126033069803225740130096486862345141962828774260219681069378961714151209204715826242097825604208884908150422369014183677333970792099818569147023019545817167643980068074102381453329110613216642582499677205544397288138133925244859354430980783079150456455752440854505489022061386492276126382986178218249220008415367989946665339606480471206446794199950084167220011138632835011069973371958722693832707695308540635459385611940834917683365044246900942153924412243174306421265176240186540488911170211955109084115332468125047084757161962493717404009564031383509944426622385237831839453759664024276354440665153861505540229184838361224252290756120050146512392943351388256598033207950304492955983844616461721143674549974395655470852283160951322183936185464046778658816681607837230771087522687026785478420575492142417756716227481095211019511093344867593774735386977691704138540961463557132418102265718875848489873733295712433383017282833661477898812487609251417243081073890825253055032215232284303333603555704956368665351284707985148699228664391903868696079747931542142341319861916441609244669767682511164630507975927310119584541631455504362838870038852443528669692052464075852359450865284065664751899372384475690605322499057419777168708624196315121665365013319608013320854759495201027341196257498458550532534203531908989303672874195091021820395448810330104985037456563113072898955963106091060386815736226160527601482387273396941067275181590354894632828048815394643223623566712167872502528731756866551018783698556364489775855516402529056635566111363269397067157832343895707603363966938911565105261147723635440260913773795251734906084752766675613933118662227321418196425279393288533798005162318473998329236092201231679779007526241915966320147053345434989913042011118650586548275599671420425417253709077501977041526966371032510433539381416185271112522157489351202631281509427036997809385473132720645936572728933045361509178139780853483374323473710051818025119180475558893310111010348422172301075838150325274403308780759463998594676389373488376687339041719977231011837419889592515637239703807844288701104627949286446358190023066808076616635756558008033405968666087689978427544789659608047220641805476337587519048426417099825674036899807763801184708824569165958942065299510474774624150516958247536308504426315515745959712579494282963458048045095740392857798022421114015241477304070169325570293300341688190078808241620499148880596123047489919522188747892492431905001135191777159486028504558797068002863701012789370515915868699912772849746475629632257942397556029644829500740376612288924303071601002544396908666205108905683451872966242336220070650437144422646071640581759142937632470139134737912273273717392646462264460739597455272469656877935175530265316755566734575850290147498946158043620279353201140016495321746207481668787524714063553069630081241631068134960904506731898861614761695548341571638285159969870348438593226087293217942847194538469705974969159309241180852814503553922269146330238486247721983832250084679845729742258895904099859017703143627325952515236648146202164476334256965836509530712780991051823641644282042291576224949215030052619500427144347571039370152525301938683005061451645649696116167778869235420215982191163988825567813152670241871943119940454750301641131960174630464385046146506056401184752436374242125592467488845826679408347005445205110367686508872433312304712313215911181825728408952214274126909991774738504107893578934794849935290815925330311939810756159595595410316488767695049463035430494992305781854335235886025496834432819282744794398669404046807753775512335150438787370169546187486033870640192361636842027508744111747688082682527304911723458221919335759652583029629875736580030487147408350032184710995202082175313147505159766050859797496773288556668244093563493025333108370228024480964868686426317767911501596518350563561033603319333893661452560084797012201249600604127113215570757278442775122344202863112756533956529128774783908771639408129754094806069875082976799248024353786530965110788693507873460864099438990212411823477341410132483045173769243896498819438530367774610395764107009819063773369143249003784323129407571648887186840824793016723374235732073189827860881869353766859536268699683554474715693714105200205834822643016066380789904608567753820766600442338087963609200073155796845544427541598244539412993397352289218265073039001319313907453489359353997744336832672901912717728194016698328325633931731595156639752528666517920166736095715574447417396929402414553857220699183349991774990777114699859143815579511430137709303322385765821064305991233577835361191262845990707270052597587934191244806354022447474829967836477080290364265493290691181816240180913556366994544951843752900939043729984281096283339968183356827643845641896766857225147366756361969759854387233232714934784063173011189692406828284764996084820238931123167864429350894817556466303277693474782388573941217067679344159223073463016128665547674509689344185895893926996727536631360701276943991234039790543913525302720016109233883111912049637833517769857957150124445841901588250274692229964336748910097767511733563833170563870185870290794578112481089907181692690390854726248399493125549850423716755928739312461829456601344862688855102928227817807595689358464939461331660454162832527496354683115262356347804531034621500880703602787614256035098748768734561676282701812411851577333272843047018123513119743061966989424156248521723321738461480260659485776290679982026693407305468976210814748317881979239139787980625675248745560143218213534234120312098881803712153824622204313986708297498332609115671950785251165433986673789083351593937858811424517773789102844037020802789590924290669369144435372583945625137156400517275351199420688597116672016925185645012822234802973954516791657940972051724742291839079401537847922380177052219993561843108657844494679922674122505178404928378657101639039105406727448214459424851565326816726531117705597378008113783870615999382413572808147322339588338991447563358079715445696451856652752394807433622510394953233316408815301371822331648463801892773872748373085833388851711668206815527612403986445036377510153669790414307136233362185851827430581160397455914174318532502986652420672895556258320504109631367705214957559512558285056714612584624206219909240455567814864278452570976135383018743271125367090257216270219998612606626645932516769495757735654131628204671554602393232983924923468007306205487533477546182451703043374444108611966053718118293733827463513271951829571057408775797066668279061592582367242195086659481760045450118780479820138506703961935820568993991158548539478358718372571135769037400478193968854648272677265785169822640021560229797145820490642387510745092905402179237649611044515856826412611765177881115666447726953360247999244376138645138163180849969693233735235989347577261178739489685453325135298893958342558816743275339360722529211794168938163475612387637751305590429950149754095034370183773511804647113716538511061161671346934395497874645153036528925458948007791391329224809051719380607603713247250554759050316548462525183177633648514604844881591859477897182246449404221848097947855278488984861677300194869251857143100737406538850047142522191547725539091509120123434375263637278660775746852095311403088272715544897477720465999746957274228152300408796691253367311551570512324884577742790045968470066457227714209629325806759369978652665235105171703406209531975446609066864179675524848080011832234196152622720559653394989839053339819227430619504592824889767719516111575647933641327194448424579299125547122609825519660708580198210251435845987549944050421830017437281731839205917782496996293850163679646503852580670578916270661031787512211643826914596102643435073038124291158255357102255068335823410784883005069811794627590780624014097730236814080626484525635459970317606808950711190513419772209950903798072796546463408259161042893779463244799447577999279381680284148517316002279448518517901264028367701596089427348909099616389784692065089559597892206588682361661806447307952033201724291969158681224507551423755282098617596779117228280864382069816485344225901839390980908275555464483379246726814296262148274496954340437215825335122947833233998775935997169230071515068697450110516967439710892984802403684255248929227137388894107836918907277886826875580347951898572857100552969952322448049323342375835971861410305578497038669552978806432862226654580438918668632216471288930788036174324379778737928871847754566641699980935414503915445573068079111901349124959218170885066502188646300471568458415263907316869494763699484552124370006993059180720657146489702585876594077992133335430511645383522000177123912939169282370410411297059040498399200606106787248890547782519677081408469917903722012889637666862385028930789455540516569358228246550978014847262683715457447150725063700414426524522875819748129250909326564667608774535917015067139316568399447865696954664141470423929177707444556141841287453486674325732617131765997898111494453190500866032646460966947052383980596922535383676729470056763420061442444345924921444699533155783715001493078803926413566291700284209819922244658431226609021817719204017774713715249580865281512981805376301558421502822586590866831689943793820629186894026652028244631900315973845589635426455544169341553776450233451047058399833522884928595991945681869138277155863445985133350493739263510035132317448818508810860473795032019128347274559184224047086930204771157864373558089447180561965440850318856366541146622866419036525060099661487185782695050657608432142626758617555684688097358559300095459022805828362135918707432743202370790802225599207954694367558083113411288551433540018054849683463774533133725416655395658572226612610404331031942785017684870124108467634525043424073442956822996810348300927917948125882118921095349997767271161254375276091457940751265724757275513832284429816824141078017442468069167711660515633363421967821689839482713220929474595489241131181093610410015142550954610020677013603048691604466354721057172101000055534548409446123517041246375444291492841293306241496010691034711746671733760453721378737345093064103863852350348663389598723070086130304108313421555228388328894888033679356422983037681758049023629484742262159735816021761200898764821881219205409227923012857200556620027709544361382482641821955948487543566812651484081564117884732424733493560473236970019046795476502586468938516674415709980101880730174986287625210708773287907289711885446680020398549274216410223015990714766428123210308264527524725543201921935046429431819728415803123870464656534701361284137109577065680848170197992072980844959746680792782670340280532168778680297514439464746977310303162064526374921331183934578115280325847728351227371072716631021511890404235993888163517608890639917939642103720622178450828688747526958318782293234113631949452190717091664308127181021549486879327739226600308068668175582013591364535055349969701681903672798690099977343228359705880107693059708191256409054699801005405714716925971657247939367494228348631768216891389592381327335341724082678238647827457734497540401065375778800258655431001231025673921998446579927984261894967325538559835783374507097955104245926416161056268271972039138557620696220043788784598273369389677541873199021147894733419310226085732676453410305879662898511418797997030478959604024849102088159477710181606491599814310712434086000816747557841686333431042510092573201110770934385488896164006248572459095771709552882796030458187078723043449376555506530694999535528345189596828945140923723592537909079885472477385933808433759882140816591745281079212309117161801761209680021283775141830869062568933906091608616415357070973899663217184792926428095368940660115436326061657818821287122221175118387986414966955600026429000441657872586543744364537867053859703652513422416860230562423303649871811919112094000179851300848583906728671486169798412648824963533592641864528854740133775139370956331305826622738416480830765746273324095443349584305636858047082190733644909335828780909282534597900861129190707364060531675984776809067267450767040594919572047641809298873847348429636658674207459587859866128605546355733180040981714933640094392221943302333937840293041749224855238299443421220658692688826031627262495082691997196653078501362415935075050810293569942112613721703312852387498280491217458676126669084394776030239854926077653496231122760911785037290007737976541154674860386093661800072047312616947061510707762819368626195152383747921690204194571882349945604630808195391442881904319592623820647609617780526457874819432502654958131852815106560212340445367017010701285079539757410211888934017317808503034013381096645810053819388504278424662514080932382119355734458320586224589560121325447053658272776375922662208721169790511760070294287780428553707212501141006909940955382991737254611830804154356586480661659498143920015766621968602031652077757371930935585720443124089914035251605156079112899609387739589974392368407521338348054218083058072553878541529916428499289497401930646630048565380102369228340405002062843644224791388484337060433677259792958109502097206213272944865089737138075522631968440284285485157608061118130378883816693403512549757605701205276412521894862224283543631325196287791280639606668360435438564195384378668600002811978236359956265868102684595192773138867652476974555640367192906320146921629586753206177991794111215904375530225511976539929396768233390357968418996025562322421360248939964037658880408363033529956588460315593493208463908084478615828903555231525118148498550048634355800108836788868278835045975649250305318332782440092395008482922492744981782677083456205055939696653763527232241872539055573609872050446342254916332987182412919437678690790569126065904285869252912709637838845150267373781335074662210515493082568542377613437014835320108820497421706860439014430917762675828253326360750377103907372782775380481623189240638749541652257999086977995797610718127768070767008919394208073081543655590973970144837432332162026318594044064202984118216517238108751836096637712847031758466976936694971793122070442222821291937637563424862583718452639108121568686804316727905444232439819106029494567857950915188181817409401218675600227823392857142361549453072221646973560238155688342447116862604246169255369055649650247567104930787446665321604720058406465115285074758398108055480693719854048595183551235690614976669578483959079533112729098929742405644922837652740928864897897351355363686921233785800924174773829873019921988161549963040917462599092009564711349428360994717810226434619636877288957481077068478272611491858197448397265413501025824679048863900489215324102097036895249277320710637527295543627797437678848724971568987811995010093703450152414566968077874567640424254956121189541772792649170724424477168322051395325219782969816586168872833430367934904942870134487080407711008260398240109412950861136465384677754059151976898077277295547857299559693478883069946597392888277545345123749521567403690727186356868002573848931207546512137954544441845792411531217097520398852921785787160429564441090164564660267330833393630774135172962464474561753621000704868906144911735611359572566223336609152238386986912082846631295848295836297616277315381300656793935114868682675426873452083910033875596612918236065420337624737795909315356050211535652432820612308615795638630535827062387838858904065843183658116109973310264281274997757723393363975712671540151806667627904429920058719869636368005431430930798014761546233010416905360025640933911524527612480666615024262622781892311835910364505611578272625040659783880035330086830975112447000050046495475793203856462924640223806966154564078192596929405184316256974579411708030845937026636571741719147599132735258569919507804778114233496861914321900585908611933293249582937573774694569500903842509269087733421657101578360591315626442892122661426702295486988381531427739387045382081281686007160983993030539272407599984819505246365887625029162886896961398240928162448016285200593782674864231345729043391473003182619816210498702453595942932406265490992108565508703367591195357119043729346966962164030327384898465134454246999041952610941557434015389754733532328866360530476055459409217091306655506847955007597127701411887416297715547277419523905557879073786958663566359678950462169727752519315369203596476280973174957270999387097356056862411381866700903480139599719421935873894916796377746553538830238664349276937570502106862513373845682439287738123758787456999896801535457905455387319158779857742424503955289132588718119469605410620032595070493834814602107711584385552130862836650969032673818732392287471253328010187730925476000945621637009415674520704179314405555520883475105562619027666654581057736634571794380605228829737163850860756829346322515818276703197212516298366454566832104615378398170532433828344235297650268019927396212775317332301999196654888322849019763204207701628767510472344312195950679187220471796800981285472430910526127623766149504309329016759157028179056357707865584993884143679463735109764190893295656988871455408113776431217024800901902279721338059900259828182735197566414678659989459786823092226506742444691494813237037175779135271433699742707850181091158340995384892239191558100576583409897072418447462354817583210882658299687102393403553539936177264993794117669812604987111213570215391036754599203197485658531437217605793876704492559359439600777318690814979285194610216591175472520455599258330135293711179957886246205842564716497657309036790465105679023336707616319832692211731831298515163570201732172010107992991935993620775826694536571484599540824529997488305476849075520915545091606396609222732666756196516855653165030387738158104881044486441323301786304582390702184616804091295875762660479176770065720145901106922116671192277184460881888263641429139732848569386985231113102669566615091295529972360869899438438889874723165539593812978615400231236482195997156076959159311345469711305484123879198974809883246376389001655662601845827132921513897796497048534380120575570651661205398029976111667443323923941426486026540871993063378484475690580991976118812540108890065069068362241695311965652083292106454660866387981987287907245285855668468592932334287495208566318832499382297756494993480321733984613216331041807263368050329836816202918741964707810143230338007656194873413949436406767086919803660000442433513243490753258200019390007037087726607798756225144535416407535480393817251531699784260118442186485059794234295938243393806511728088356765235568738706578111398726591233443468753476646164631287921054065152239268536307074779262217394266900258761836112819658644298227486058169980963584263016406237591583535266430136876794785334005494604809417567208372673830569024810084487415687466613853065671610012704439255444105497582729164467487236402859523164610963596535911634196506955525493267476782142033569485475892572072639004732024202959016899849608383495932477564512572786754679476602008401578617847736634318037311479137111196665283646203576006175554152761519595698901295073724423119574314196238230783085764693893938978187160876811596475814013791849771712613376335768703018629591829545429000682049341074362743984880465898057195229907396185371761272363338685741332644612346197873979393199084993173156199835935469861232204072324930072269788293505061154510659358934633744819415225689921250317708352831000590336724739900907175724417771754961533915196590245289804706685264753676293473124992353043803663248434138070826637478859584336035779392976582520977679473687138218703333567189655064166876550406089777535107850833810168841477804988637958781993141555849735060580519322068995687022649378552157478719445096254303228798924367549065583779415609273865015005490780782751169240795261437978706719906182330657510045165605948253297045182215077638123492431805804923002470359520438052882922823570411393576143761165821991756679995143094214338139300944516361304699966067588063590531386964143048366006976590169524704371535706251396982729981817550693773100751966624257059685615481116622923230589654257313448463316838331896982469070685267190359340038287788077404778795385391968480172958974590602040567792410229949505213771993244212009519466687653278256744566309652225057164689869641603050585714303422949380896023683450565740342662757356242490372883234777507647846809305289960838786012860317819735141576055777951369349723718437127009189233293189930377694056294356502426446346909232909108886461725739919010982561327962720001980525081372259939190020852518717689999007636697860204806456087371451410080523781129402186937205704839055239500197324415478879416460883546178653319190393820402216090656099799581920591444898940503883544340606533497415990684569191387345793283265551443200913407766908053479100888486654256385169863348263169781279135728188146783938888306338776630638682704312023685701728777576641289367897806111394588167447554902861330789554611665906496824466843978175005822694310241854878889509470955722635135915255917662960388308838550825562585570479125134777895370388559890077600166043102102638320420313338875135611354152209897457905615101294625709174230161389556831279059318228369012324997354135794088852397281642053011849979884341063411453131721394217260043192973846427564176248270397323254178768773938275173287134685192636028272193313004243823618842738753064682713045497600650612960187178104677404628257999455984049250284390698746055265310399646419766069638818369665881763469504550864631461680014644652241127225714850877454067882975573978988275887353807014896334914619884583905372466268680062911792676666710816346066477835474753023947396550898811797432189663462502784309599086750122909370586481538124828126093285651989404317276391192405440153853667424318642731794076661876839557728798281025066197884777452336293521970742617321092432154835743297936089524140278147995698641538704640926549039965946930947437800354927448775887547045459173356257936764740410156817620337775939799122762819273186098544126023504083622757344652435183317279171334873445776647792059885932624725217875667118299507758582284160391866831692640067556836340695704348722027549137849012473384442882476486656719149211418756944574382488320504193107837906975215708394416505054835884898300118386919451789838176991179269820919160815031463737911782370618902848881200694967523879049545969369890639406613014040847700362149323644951925194349909538503038711196140098017429883316260520188565970709714225511164846130578839385102753430255924430240596498843705545776242248777625450360222557275545148684574108818577800481146954776107719487612588686040386385648410074968919368306931846567768376495349020467743999297044964023609752871493522025425016625800022346955869917414542428535369320092476930076872804814114126762355981590735020356845466110583391100443286066542359874425378510445196398661639985782233673588486084678415102334275910497166426121875905599458376111074115750137589322883454091790750089232523714001302148276080263660317233367193858472991838494843440831792895112968060184756319256633330385826083808731986489899972797923553083377604621027280315844402343541290137208731660320014029351652988787980840586565840945299985387545836064972308075877762281684580638419569358121613998732563449131297003827249832298165748273047178962266617033087694751858885842335846622323221864568908899899915357306058815755306171569656367431670975004595510780456627775129793513338257957317391351948127100615023165581554411344434906557795101886810316488637474731545710483237330957484443863155499732660439083442324391339298749226813434404835400062988943199925658260612431036306655860625680701222427721581389828993352137751083269848086485687888763216007728316670853084987330791467575742147178763688968569361519910800668453507412335937999004554826950962108999759184786402410837899861423643106582884179945963843116629631872939265516379997916118062018032015486796489328533689038013553021452207924183971427756773186072556653748557763195905280166961866323042842588080626033529072392763114981239617832989384415207544416276878253748297846744185647069848417619965867616993600224318932154217567945106478909131449389121022508202315431282496306839905409892122705856232415827338943859841228602235609774008995283646295127472562594974697503722389958353086232756776905086256530927114481418640940870010494789266405435222842386973794629383431540941277470694969640451670845371332887933283942833174570921832922064932601076216139413226108600078277758884641541480696600959254831997533879975874496318329778431738594664995498868004785308958312089467620192837298018933968771414712398629510881839965886951551049152431161587493673018002344745634666642044886484939436260264620080414833693949600556905628114130529806269626537356675586968649089514664713289938801833294188461388879622353603383089470866006169411121230767426647970095104280346940566689269933276294140874728607968069126936610319408947549160651117226082133226395114634877493066395663487657025967983211447228075695238554104586044109373407609832281399396385625957905211470693100330204027512029027337476003786321467028967385980415621706675773837977199054747174266772536215659121138012060343556358605813028678005216353710716793266847090221683359311393865709736544176956581100975975669537346513346561176862971376517026443594027111023725922750118268876229640941835051767532143597754111136760355688566450761681873912508412002589080825144716412595795521585648190264872658771601355744120369016558852302955701067388354447222848472292933522974536281116729232359800361466536999065351113469420580961576346043617515729239920393296262759200919283877273765388441779511773881605687409714368779712732027412255286230793245284892755009107712992852038207393208718082023343097510976260958782048750393009011037722532787276173569471089181620337446499864403528829116612297147780999114627395639423739076830839263140802215232079683409613924684308704294882458221093246029806759334786870364106971324033397295659752902386727728219096316301642929965599834688255510566624303875202588024529779692626664142919392306872408005109400224919486149658925421112621177465170093542000409920446013158205382222241475840370332683769283550286341209385597234753979019560817988817648616057286261412775654697941113950749561382273605895489298278774501155449024486842046257864917711898046624148115241353017646719673218244727476208085745562626414282359333612789006213744255325102161081783995320939684881603411210440469629298752986095318579179726544207079678239869325048905968463591472366010092240266810879392956925887245121944323320709119729586544349334956609014620523267760659125114112797206867354136372628233342379809226569032575660482757248686828327935796064403048153670659767131358706613249050376446524324207119226288659003946224603900645882623787259935332421504226889625797472446197058266033024704999780473617521657193678997361404986628252767783412333456657542058997971001244528450821579479913182864459676139796545169971199884662337860203639627576290833077243996178169024154507981596200491978979529646726307012428150240709775259739524925504172664469837574744280398957185482718041717331523709506118499727609821627557694633753144288776679222008642194061767176454014839633439924075088137844138073751336634294945283693166218744070021637589098863485482464192187646849845537401905481157889215209146962462715616774860549928186188901734774592415645469398902497628324662157148336316740560084011733726751654808655809539111465066307168761179919345759685097033049717551047155785002680360473256948666269097140513651980169317221097008866942375386278577363584394489370327398741568747952574750755881183159588364266650362106475603355043823041183854028852776953971778512846545960722384236537651699499730877927983367131051523988075314623041006477447612934702349524497171745487035420792755980427293139612944501462925532306343991281843482672695726775961070150250741453396337004192182846658813879763547794606175514733811421376093449978398529730363188502825861633494955327712349238125518800855164185543739948552867945751025499055310264329566099062393388975829535017420584165330146064574627701935595688829810729169792188352703521196736337187535358269630448192101977548929558612182836037377647408584923653918893807820622379907419469295078807198055913230944260757227967082336830430929332225966853511838772654528881764903583201250775807289029096236622474714645503122518729516611110574070431825374914424110739497567028308850601342124177851913697184360907971575536978767496498360519018488497086590967729678140540328192832548361653192651322019864140707236313952339679854610230194290139217244033227555524557266963656945266459227826907226080387023068072365893826000165764451712030936139255776045639221395074588817382626323977089123791291188516423319437923824259547511728125903679890837206505770250659756892219783979286922063844231882985061426380307028508547539101257668742752087193788512272968040416033558905900887256320155880400945225227503875611937279420819577140805073027778809642152309595607777284327639497987038667944613446183737238806304128507942458448825768704669480364758321331368102660242590551524493140471263136561647284411547114743980400042863576750681484066846200860779412552011018563325878422404991628019449151780479449106884667394985268551447116740473565757159210967297549832285580805191789250780374297389981397076197772496227736625067200665041784849068814010458014329061539674865488649457472974790265193776540984218918261358539483787574072316161461292645057131720102959064638298468443045457736904833079161105356329792052300793778196199974317012903366184078278336999004432709627736903974955622296251134199191308561792560181787470689595542021439085279116410531446719490194160498152739431670503632054867045660717480449717185294305868688086434436324358267083156644847610005721065352956347251712133976264545155588183904171525126126000068367955146847988010747535545863752425139007816756546927524314205119895997306013802525519381663572897234399734205891229118842188299403570967218939133651581066028155099909064735287190433711314527051480281905528690253452296655900625636885312987149100050030317536227286609540466675087641206150545730842458565015471004536795499512999837057677214659089832065694875965056938698306660164887335117729187662002246238560890134057375070507128289577891056448087674841188825733474507199932515590363170112280061818507114183142757535247961351570826255478525312342969661350338906195899633541371161347783713414629229006683845777289339189360054136437944738811168572656338375347092312333460630719663609126393197921946313880765992379124021999722863508243015453331822780367183802185775762829053789871116582937849445996459038293234790053913574985064036977626653060921746221370414096522314656658929433380077141751934312995185571522333596736288431792668643326853345919857422224125605307824136698839041840777094463262291419729921978320744684981340582578829702262080159149681126688065973277065563289980517326987550485834595287665953684036545549064242574891500213442407087813720605470092582187788766445564867319401777738089464615153427773488520658526941710961983588195561477478387880217414148839555623090939549796322570737931695605015875531116780899464934232245333912605136346225026378637742469312549399830357967344311626572461228167976789367544928884924919123721921668213190339174093261980932249610504846844504492937622116062764729033617743432719869097228387502254775304557666156644419014289608191947390539108570258196916084264082183450569402883764387845170485159244647607196554567794309821532785631468212764634905371206209180605601092967360250443043220369163111444779997390322042037810992669447259014712363213538558876908521968196256085682102757337028050052760715686061860571710445080057567850258457111569261015784836080250930500473825137306253106874318770354743557912214912423995043147419815356858450936503708407813547092199138944260049664954251021779474411355753242123795398782227917797775828418277498982595670204222614584537816679507474210800651233313275481559743342336579345457444644838429421363003353141640882573890507533448301766970114139822307788987450385267300830707665874059411839388164322918705994589349602453710869116494502163933621399452615827178218083516089356840562424120355207504842969156610612857267662585443998616551132659537582441356481862504336341974387067392688732127353295818662904203816283158505249757252322135288997036115980770372498800864191882498217893406721472727637030158226364493769551698758950262753318362159835414735297143225624963419124665754614463613342663097943959510497355912762656011047564225962366692846242830312053369264295691269728822616174383172323430483261413125810426568812384803973077631577926340032018590704600515887429010640403427625068706226323448986829902836574315061799738189765755713424848182517357286906469948013146983181747737280986738242515570197888761216465595770406468873888541799786063896697725989234651647550853033683915597384531739841321433436237024103208619841756315820363695317158412005705441905976642122514703251366099949102062373400392134143476475310987023422875683892720527030788011368533792350922666893397077776465070088510824151198049341846412362995843868246216497123711571643318672057015485747743604025803570568102304372948270723329032246457441405265601972253534685131349849764470665585900756022132122505678792705892237082087085161355976141667816093507927179965268413785429016621005530599385639039689486796806170599052091857614791332081255039769231548330617022024994833594893520275400008790447403211044188218227614826284694364454451893125814722647203726790427871753697166174985489042562569432135687519727514047387116073818052997457222640968467176638378878813651741863259050906713408756319756942478957466012320387504226554122986431532882606445426621250995651828218113898783912507180509338344407491873822166952721489873232958014012959659050489993499392285648827732724466909650684791718434165095385437297210482555172327944485404562698542672454545160014781744722289110956342502035547118763689793851371397453187468129108950953375160706984775914535560089606563260150422240091217835286342900144477636388962549370359155728248892723817935299998328745083878601549826545074947985618607036363717119351527809006918033665622384111761737015620233704363669468458441138723653603515594200666391899646653921660662393165796994794402103348956902671027997831472196053379722257502104710058266475930409203251090782506979695838187761028267589598438512165850164826629441636552545613913274623109346265173794706511701221343624951487106253532311920579699475902452803525808229504369255687161356970634571914816824620904033652298197907155151351154225484344017388019113909116791553135338337332538039415121117527160388448606957865362113026979496038310895485254504211860967622686932184241698319914414879121978529755666286360017343527781558979696548314969681751246799923885988818660384640715705201320858066059865190848260997363325411620233388490691173103994056153385266046336659593749589488034112254728583050445765111358954621325081984132259424768104469071734712883806385391227188946179766617123881497037107734835985876664115596465784163014812494428675094562333537149298340299183894508814065147890312560454170598666027894532824620791443593465155103098003488564996965275754281967583394257088279736500015259311609674587986660674926700521832045665980531491389667634027538119405828854674653494550397133047971312371826608615164641251070066226587487423408565792278599100763773694747117335224693733485801593757372014919805488144543567945356917776704280869844622991044505822443314136031184656043797576760673691591733664132190340894134535081016232448517619206330694661369887092765595345622207844628164416225342474062400137076780580662465200377386407015052495904550870609495873847209636674749366740810317940660510443430545530640632015018602511425179809639442510675394060125243395622974283987449585722983683842719315784322599125545899937740339717531621885637792388262539989200223345706757895716766140302634058865774922292406925719016781700636694114354910719081841004305030680651795574363486744190849843480065717576028843803090727964497811333533241176947502848467047388637334148303039210156601620287264918471574008027528304147079826614368358284599311675893023953219444912285296529694193267601383373492267147299217440006408367195583465573761622452079781521253207873114538786009095703722698873598106227791336978073814809589361032410824691446084634488412759453308659895972910299363469637474437200580385798715701548806368976265706597439562577529504685977431360438814600978652273140674954211182672170035615824001702801773286680066034786340294749643197169298591911623140256090545485414653435403438286113858793132893324694087740188775695234255631492067931554442619535646852183600864840173490920737763302769154587004157713710588073774279523670192743751091543720326772400919764222279239252366967799233209598419266477851578552541126996074117915704741986883686841802513310624798855232949744986647826532073399075025505898323874337110313392544066744569685743920425812500859000719997811315704366090789439071412813186480438337886441778795399901942140707969889077721563936647377171760604062738450592182029497192341346360782552884663744222440690618573803218853091236964261827304634376829976963139730253550693354359326824111928018200037798215594364253494641559902405863104748607490663116097021404598673732180976472384017934716626028257827664347252886173557927386482342693631598103131191323966315895505389081158321271495832390851941794325151591462565624090207782550869592682309374156203219742845553007784862447618314703908160472786603493777707695203114531235724033776577545013397353604076940847629406113015430198279001140433544920888325678176510482029138059194374137631298534120091114236568992797970875179323902225518654678771567749535830467797442687936793389091272849990733307736508038433366420310542602258283817074894881473366433598155577957762057431096930391331102284888507086379728869155685748650780420901028861591367364433771113868314750758465690484904875484027417436777249587737309565093913931392583234200364810760008860049414754196327895999437492735223440065727644360409087427645081740010654255907044373848026380874139310201761122166062480818699453945925065098968581858554084083339769216768783474248891029152089314692088763926056716257395529668062571883153355185724863004127846642655315553362552897599323785123894998997818894402414739847343707950915693088509469291102040200841488166084576927372048123605291292886818445744548257899337503273949041773860949787925163995149804071515435310873047140155210947013688637920386069636498540855921992370594176969176141487641037433867833490329080501740408881000375768079242861219842545659348562509884773360471637286142815647745857180065342457955158045520979444117927033967748114497979908956577911845895236686137563252227718807615315453111737322792461083396391165189576754450417373535115974136108365862764444256556123394324403783515138292966930362515169672225787658670516435878663254477074349302303607278169882798991736475531381223609623805571148598170351389019345896377836361173413269403997493079473574695582275024738426328855744234571905785224620925892631250008444292399162527541715195458583836637489856436132537188079295709811610741928829457754942991955623885516072707220144498799824668152947459079794515057073728447547138710510306458155995093331789598387037642070906444979585157639482649953263974575711150668504117898608528669340300117943000140826511846329989822308483012571184475330004349382192801161342191666774830669875223347578647660504126477043116974236989527646081321933253397912168641205244895330466677537228265200470235214177588683188031544284648429965500838839730160047146010521000369466046998605879084180284159048241781968634791628049673271708922572363688283487783272010111238539083440784194844518844445348226374013947041175602021486280901837914851867104423857189988371537194564951410015308086885350377290707492299135991698637870483435995918259461070901493390811502609334514350972591192818796031227042687232347648733801965190461961204885911764779240902642916824747856289463721104346517274132108586750682083248495968178971111226021803491292076610701519472109980021317578310321459245439062746938318232129817270723912636556260512203763524776001103533553400107775806575026258986536888455664937146722329227181100237220036157870895399649458142878615720911730186010482146457452364070999992525084099384935488664539640011010297050105143272692369040650478951029220015185897080351752421909217545210887800737051236097960292899307521883058849657479783550363246863319095958654803738320347688582160120714454236024118384234073063514343214225741584213325254839560757045991162751650943860415787110176569895567769715145962710714025363993582437103936932204389864049938257304091909726864665502878312369807161336843214352717653960591501661712998606902682362335457001007575656530805551521290940083914682848488383048442097819875153326890043443467306402228230193147958305300541405575002916470699794642933000490453908880879897699601950216997691772490856368604035895416707497430136134311447603557424931006090177573408353670620228426617812664248837364915149510415285658020773962713302395275797248073873040930588772118626531596054905166154516244045770611918217776945812837566124327854128000122959756813547735540704219274127482582265039227689054542611804779129697110146258185761658945063113168689341913270800090569435331767271550618956105266096863215223393502540137892870363813846036494235641147299287577409040185497700300534245096884785934508554780032881822618377008674493794366573415752359163140049390430488908238205349814023409820291818293735333147216356265345461534871227119979744026760212245185087909349936027653935048581799064098583731790595568565510836369893741494540873092183861048393601464261506024704190811903259957264263354299813982353321558173860725354970266032706283494854600337555836791774325405994843791275894862792482237890794329640367225790681346255777512305112081402309407635308391078541097428021957790443350541654869090202264508742618349305936707193923098327675870797646873681156560534161245189437903016060146555184145805779240044260366842349884507758137721777593654519107582265776655475219690125205171040039486501617736206479496401638667610775690856924317692225271567916653700315210538635803715774073778939518329659224286897403189664647522373980165762882858018123497840499028223523545952488180398296557535143445426424905532926637181627377734682715376545213493966125022006749767214634730267485950953220840786358315867431985273628656371679094844448382243618191560565320979503654909774080655991819277679083189073014260876299118038312724238299813960244284607220546109997393036883941743302610566740033577091967665954579567041556630409832166685225007599635524000877498719554240358878527226382350778332625648910454057960726178763601274580614135550383314310845025140516667293946189363148959751968280562089151257906444545177215025141804507555499737117990044983206327400304814791188369345648846934216656924342552869731091661030596460732636498373596395135141562923297756826256970809698839075900533800965997271124489507491731461573051269292774678866726419859079583473553347919443519505000787967454700556336425968092245930767553601970054455561449923302110637776781779282938982061011737700641335107231759510106924664039715970972756376367154400248825777245340076011951874706522215928275399974487237331772445685826598702052208828579140798986241537616262002327758814366630115243541295570839751081174313566154953755676865688711026808522389134046579147878988366417869263780275055995661361539880853873162373949687458439578416075291051571592426270931007289346318039196201685200452959861511219131879835582557951949089300977400699316205217932888837815840729092602857784228146335838977636189553843330448992845564382121131165155853866066649620106247531832062726285067896779368764207573160837334160293632787005321041152403698009203769703633940401088764569945136582066969058583126725869984217059536351736488035995141048461483877221963671612535459891896744130307441117698991739914263804108639721251827085747651475944578057681346242937866190830153173454493597839295278451526699309453354098060272364923100411040072761912477932170253596098024108477967964043892890630536140662070576403312990437984617238549424171499659857085980786799891819771816566289622127130257235754487078122073205593946785455686595686256740950870679568409325286229737714128509653530983613002845844166014610580089770166061999360679393829952460524607551143896893781431761581867659085830185128406653156180537941719143362290693970344028733399826789943187756580287508792381185640414810847168652757185549375247987334118939763675227156310471068775362934001881738162976520718729580602651325905423882223268037767128516206044755021701208228152898955978125800675795171769211758908578415073035515460751607830053770150320870785424946773421938414911873200370472339484288016109141687640736499093619759965785623024677076370026154308658420239389091964023703170476860230899024528086851802751064871339610111367231659914544905833709568562937872625822702482180983687598644659863660124021719139444036972568261537919486968710617369594490730276133901357087108118746697546691166310306335461706858850603872555841064842035410261805224622498113487484214130193517274981208772853451858914322559387156067812229512324816678560122743372420195379443133685782647603114893128744973624925529453586330223280725555589586219826782543703668185118623222673664223611401387660779372192121796374684369488375208258954800580549507702570914995201866028828659260596093392771421286347718316405486624188791508719037483867339142830036502817402418148770425448146919844002760800652084276388190205845614811056419979968359047132477856571187481408160728278965587188818972262009040283756643859251223790030883277160846817601901657522377508943776119801484245253930291078655809039157483264779152686155934914696756918655675118330156980601242141997050475043244171611988151121499248772532711358304903004901108364369661696573128020492895324746282508806966679107540380243621211228641040220888756678517983690530937039123231090897001210917417042854064610457148795816419394530834843455267490770606022287707115161603014403978493024022851510493853851236504041793134855093083487196056682449675834692627387958643425119954637878254774863307477318104767550517868047239256325964694110991452761986569270322574084045798295358195619247032369817395634007855775592691602410347999893031807226648805098070824115299119876189245301934779496732312375974943189860104208487200731590947118846006361652068627738710123148642723997710871735239820019426626637263023093673264945728255388778753906259791787343406490425842482522504049295618222799125829812614910205297895307273758560188402477575127286989783122252542166915502003185893155392009113773738423427724255519687224989284882648939295506975104307086119193077895778406713035518180119458321937721043154430214543480110508466921770027937023711793447452150177294059074387396437465322286074813424240323330756540322799245298751682622444360575482547408879571250661952594835550255092528637808634645619279263369928006217226608709299900894143452806213944586906409913341973485300779806646805886971469098135271264529107547078179012575985490635344877542162752172493567843237356145794836975684699575260064864110449335985546752707073592695610469362495468461029605975778002704806005059932801224083571261688296512829874846688983012260788399918651300662899967166340933127189574628992711748818309327234625999860001135813829376396985844750811102188061363208392633231346017553713744422978436619431009388749446693385910479864494807396882555052120915273167957497707070931397791434906856120103424763497791913513435523592410360351656919257621649082372773108901560629937264553883939056226865588864542820685834543588348830466838070530588176382274344685135233075355411042870146107229093694908929674629685524456296788832260280667585252922854783584917610838992499011127324229621997101697882051911826690323395538133950613849707870508164718945239515298403666373537606689273832110297603215427461515050573166651663219299716825063861586571016127813885161050574730879362336550989529148119478644656958087939083811831528029413573991747232675795539052597273693980738490661222071633166615500148462703960892066258603437053745822692669937014858556885481240033931244191509721687436375820462431074327716744418524469998170547033577673014454236601424878379188997099200369704215751482921072070582002151165003007133861086008232530223600768119313501486535809462432630108792765398583105002232883295837659813013979136960425686228229185941006171878142381975493531564159120749559398706727327682144870818281527985732511623351411722007920722284403373934060694964009961647421428434388069151890386820846520855628867719102576395856970089939407889079684564279606762675661774506485061526887996501302048753409065092019840536877671995386442574480856282552475033741859807228430808505523470201511740589488325213741753617851751078185050321142328951332830624032333497958686549788725991037230269433005726172485607999889563550883807063544667321044104529722175973620353526719445719243486373080465554755986944683739829493567712672078492340812522079509792108788393642968593753010354209690401044053155438231608501854407856465324180247509615563904882775969017103143662289084939920339772388657071535222333678288862330243843292132267872039427357290390061442358252870350164007274608082744395162190297203114332985748389042654131204408004437000669402623388486577246175944978426620707043471724508250223494480832028981165893591772041758643899539922272514378005363734160629751320960741130300943835307563545060109330425597449772295315423534412593349138376979900515376095400778253584324656063679758659691001636042330861821142224690068591920385204556285171136809426443314822244919472800372926067599414620810718732316431317242376945834070539634791527871082574060971047000741607680953862491433023842575996451801156343960937488948948809447461470704538718428477865566057517220581839215040693195238587025334015466873776689444996341720900363946773944415239565572372904455952208691146051322887112004631266561374063895704337772128010061697942037887605016738683402749019766518631036924298348614428887401076043905335845418635219255842165431027555174970897910435693384058639338282190805057029463003015503217441871323342965261646194642452550049140630702459564533299819156279263379694392897909323531080935605120615726016076656514917893387465893129022172000798554574307150529112786251201989222506944839428739651687445669876775256513336798279223298080032232183823854495114947554354448678472921441912847343593093913456517637457555442827782171904410412833446420653028109652475085894206884558040432696626951221034169872129558948628215691107600002730831948621323903987932017645849669313848418610219249707600139624003260917804854858516846487735055554288061383936078861737397717232702423257948001852562994155084171567769925415024757503874141494436381872338207380421411960152267559369569695596607830377234889694539806919199088043977909101933743509424454542036954984470348140325033963924759542022345929200115022068587111742749205710569781222688667457393425840486536994548561392155978037157316064976944269474027178207899267843947088729137476153329569182640172069720607671437171363323294274851022708781039168998909655215231435956166639474656044126766920705338054918893291944223350924540642989384276454398157173997359844488405347439806837009211542850235820506065518971310184583749970200914853108882736524430596004654824348205493547850270187003297518864343949630256294669371890941096262680869072078235954994566563337402749857280072936555043517524376110278991820186313971119158112214307495813770576425204255611797956980000208956020135085705089019710527347327349531259389154487112442232657377277617881225308704448027511271489494090798899096727423371175656272317297820565416353313260645016982847812726640658750723498456478297975237193010973327496789470953132629627527500131036348203228316429776615786051956243187568651476498670796154404897618618728429992894524902645901589732143651470029856374259257535115471727038922257461595621945643184990896746581236632598516816432893252573688972745108386206866758369336273753212103628392477720034307781985500056588234850014708050580437598988730366309834718155365694763522800414529897947870193990316408282139505571520006730551434908930384984424018395508125972210285822675267876964997217809375500099650001177747761135816163366424480604046121656827450753235354446420321733557722888268475249844443164365108108111203968370892096113326460776157311680830723791304677226610009521116118105831289793376245186033834515006808779101368296825551828765387415347751400330588848183088398631120860586926210701393470421536446679470162055631789987840091814162979543848768859096982098429847469289247735481583367853297543716207146860957393222400366408927357873674508360539584633131563169499894017910325290055360203397535839998292682994045501190500455824130563985251870537335920871654468818414595877907784083859642281845023684065289690494541761705157519174777748411768610934124015901724452123004303086579620549100164079764453012853105805421762031138692114120881592390558413631323930808160817472414669601294383649170955900191134932956944093940037034762445258815189721263329597607959945495156048365010830400660085274052856069062742640066237857657199110703060011367644566654987886024217696776642367500947582287703235039086941498905675807128816622274393481731339242666213435210173768347990868809218476629912867903741233396508188809892547804174142181194139268475266619436260857481570384915613512524301867578183156750120450954561990873998414366488703519909681733598765425654213061604666550723783193747675218424363364909033325808742097746329575299071297478872848028706966998879823187807083431078006805716431357983554621288050158648451419539116208471185017852133192395778914893031003531816445595194507972993381775076174855916829378098372365344839155074236540058564023508669916302461023426192907756274506927090649659040511490997017407148954861363262050992259007454297870776457562779831426159442695041001713692411597412342204892274748974288871817181431226964649456079306039325872723781962082915722402907819406812889286324103395974067082908955133884004783575042847591540925935613590851072585619766661038963613579471725851172605738817985395270893788034071580058249485445891263759393670615981535493023981003550463883525426995353195424634672016576726278318769295388591034536797104743893363263856685911939322878547526716555164525226839576700868853039405896484170230527195702849376329519720426861494682559347815544000690345033014586000195984474010223291134043561933811245148464088638329232553696631554621571245320888168059443985080452882630089994063451469611461304416826178834681725856573441273999870282887792400557123306754069719249830514880976283004218931902821765055943493345184187281265044243077134613262602761656574904566560047070878790520554360688906169247029268259501524034359820152233310994161384489077170230943812961889899483824952986319959368470527492347339325889739577297343395751160147369389013893683309648446057520545866503909876012494657560551215382134810259671458778468177995338003021812818878573989870515100630244132723312016818378150578192212838281958063712660533361997893324304706134487974374677889307220307064068516022524336916364016572284669436182277074130556660116860249716890074292687461212445019037457298883686757918041169285894361404195806124914442382492412084704977156052511121419804336249054919924522703241230333282485762119941077909013332446625980681288125749802192367103455830755621656443905559616156854098437652035458945795043069896908225877521485987321567906937366892233626164392089211806529823889851903433548323689700740139555231240858255383877506400240189929483099835365561858554377010486393111991115009161568990812546911788833736020573791085412661470874359325039570971071223447052905531603319910227544103537897036688623338158969140657222619344446314308769199628478816702919218244678028126320369970530451829210407447558928672608398723402829447281276511632603322695887870585652424453622094755468024678426467797811191220578271113629632835692885470683667802794181078703199608340752894514922082693581614852683103391703751638412485830500651360891011292033343556642013664677944599553146289677674898823730259601090362416091446014977878883888288802826963438657936894512445087245908177978418924649028308606834155268052739597449979057684377875563149405957853269381894846438507652797213559053560033164129094907840154172812791263920570090861923807491669458179841332347750544292328919051828857344351467655004002879902735267827756605283034592605208319659967170369603450637037067603888797245348526251184435349405030472341398463718526830496477264503639107317749014551682948791608692619338775803664331092825551030753462457238298798386016326532992862539180981147637187730242353043218763973859014700993632301713290736624855765768228565552710998108943493683853489321327418039443565839318669977978170854882806211384090951884412171357176057127357370819827271238843677014664434468303436479314126146108392663848756187129431899445433233806114759540890568560323905840603973993725406258852559307152080912669124896818374768190277507946286915722571278672896157756635449210147266948061266096882756481455358865401982767455389751664221422585636896538562822280252784643650966580009772353533972574187499757581289246812747553098513902884997241535597744740344648576765466454839214176351660480001010079047683286610835663350942762250874045145474985108488727741723819684508742866895000419782018276001518000235146564749264199253778782955518796149831938317489691802859396060138595726479125753273557885462799749267770912767097146776459699232613711435653917769273377890240959902228540581823049089077897798383118501563614014868971308931123286654971363737016005067245124301683957999722354120791409544306227170293296404036199832237069186632198628964876143168161916427981626514995982743609583924581753421461081856468134936810977842258257962490167367195415470410580365837357263116457395972559422872857783775547669062416797947942915719536580329583748034748668889747761888643487883252704716018909211352903116089644915060564741409268363696337277607414701396801608525814987899457903982526966408413355354417162974016037812524658613259207769019780433529220621699967696578993876868665704960474129471985288700396573206669269497268582425097294939397009978540637220290609161678384609877780654050809122589018709445156332634969750673472760741977226985080207486174505608431846386513698002710162854656208549393740496018383293477821360329979946315549423092811446119431462218364970014159826117875674958506309043361350106188456560117020193363731338059082994238377694524423293225136240472102742567937432490980008863325890646994241327852154191817572988870351386499447046631510350525685921579197772642988286379908381708734182928351974168012546293218895828372997555515553738853269370652856166150570128514910651202490826957053737087844533968756005889014166078793913986730518011874504779074685938853845549780643014180186406158985704210933819225622834100562391312974095651213084390315075025632515311069931209422023720690552523651861361145534652557549338500517031210944084274395702292312722566617293368098330504589674554050072674332952241910061390686700448519224076616641843324897582978236862616166057932845640611086547482129334036387219070435210735839780493757958607282045706493436627540544686354406086475551080911127431251272051910591420900392632229585920535565801156678178508827253293669703478920743379041232206438256150829717627817288148972442895052959342998314175878145597968732232452952950170256897142329721728779284244135478487587852728826749263525059762034062799277068885786646255903612787590792741562482486760020890782351341296090846044588591709506042330878583533391502645645270971470825269236741665764900356467543613654946206050048097879690322842418353619372145947383664922529647926690453321319216755687906069025926320960579351135047610392634368148741563331975548739123913289394204821249265925242562555420746860657093323805909524989982632779992958865557132020788054577053960410405475220387577888058825813283755275268006131819240465061370716462760187765586046806822156775969318876686186000517843950512741484569022521658749951007983400991819130904899099888318402036765012971036205375096167777483999545339617444949583394682537001429776360622012111479471053211135686644837589366814061173877023847393293852619724656676608395900186750178290235550388921896447144694545963592322822420634365806420497139285962197991520088178444506117474199954608370935722357778361112624090910225760512191537444846538074958332042938219137134861918265041463290026542580954378084995553278909767592785384471588727392343374300886755405275036547112732983607493236871914692621224995182729814854500731312310943618531644420389352108289417135671737305268615972910572977396489816795795679130663164132663074334360943749883508765717623490897012523398254566546638443232554757630636516609158515460578637603924690814094002571792909968508600745239862723915922893041606758600387811681705566174453993078181287373972077936101850995202023672868852693237396785206195084126477512468671625460885266835814506760278969080438723167976540286681324237468230921229550499875762047401602692367177856203467265913297562981341222475426857731433314011930199909592495508483234518480863744744958508986950422285131747195210566918600170139195118073462467759109487335887223389502522930751236038755524804558814509703605207088168717054984606028377712270795151827034210310961659123579805472996134962222333844723466906885119121425176270403465025732674618026506063851994590117798935489849975658911999445848606641177224132043348590399103025608544670064174578921766365843904875616273814621473682497778725114040414098523148467475100487270359407603270538395539644427793983758610027822843446127455820517289139261490032706290937542743157169020444205165730143631933075726763713072323533724931227851709125087985307038580505913142169848145325007511602219994162410591389534447352558809328002191922446123897296998830427616997161739515351538909540201460469087136472130992237508366895904375910716311066496772027242147817582779611349846193807107575739522239762857598788902923769876325876036668274406333641009928772602667310186166983784414357656890223068738947874555649563852196999979233149779879887952471755460361216566704910515429257603493070166370529391193546032596402124991118302692532798132281750654697676471457492893071430626508574696289978600467161449676394059376545152877967131877613234732001173356230040334107760756131301723542966929538578344190782680754822059917617576480210858624672628475325975921595428941308112013238714576871685320471563093645890855817711826391638003872027891892055270945652040278834680978458579792958783741173247245281334888363321305957443639851361342472904491739040508152310802098328053842088293913173602779517332095089057977945477737882925433389532666140925579022208667554981762699566547983464882123286897626930075422448690276790997750145539645276760917728460412714829492508561863787327370100903935188720715287575795779083265059523505483888493691524030847360849764026516562906102265071041251851006434302995264171017566515964282050311120232727711614330910034052457600257362443228033124886127915541867523185887078925976469946591871488992478035654063665634806632574384054575262959008109691358891225444054464465725240070230213954172935093639307382811505486686055949631005261056542444867617412169966035945235914188320575252975450703613310013186237730767648550015095671982266390414119191596834082151199904290999791089592837505723334180088488018665862029236661577573826410848303190359104532601155990479790347881247896972583657905703503161626333766126240760507141992048904427881297904988186916435900278484579782468359510028778169493172531945071816626636301334943886235633757250211356297538373537454251754351921089056132948599893205487205080898380538416616147285784187035792706711066972571125618741952269478899733588978292496961635772734238405608183038260971691542756540920670297594180894242896708735456855738790039287854170032951242250265549669380062149961079300186414202802785594807749960053411896095816594169394715367168265046638921425381991553375640042055197882618583486474726925732149527631472601109210164547831946310537800716669302836477891182903265124586924201347910628025901035391536118149186993413507730106104029550115870171953522120472919415967999361429172311328583275116783057427162756529659589147047132692496148465184876905627162153904806654138707466781466241232541979572717756181030916144539318141614915586736929798803558076145396494797487752653846104883523789559586299304617321598757929817904785995184942611754032732179953303304869199556621853087160253986621401415571306432792194166805176321145546351489871250033730561062491277899104860819183039598294773538143784148488799568062239957941273079305826102998735412598663599066194859202338339126138818081440001841897596608154416058746180346777569241869932687095477236816407456186783258131596290849952262221292974838846424476931167440800398765427010765117642082840899105544363703276046460644780687545342776616745606439994139044839650411827413476870948924440447903594899357846999306185646451015158107977556368105433834582389116572741629947281052500703733826022728171323435389550004378400925319165732860526050012846835416720349339565182435679557387049208538575640753193978011735378339079077238700760360418029860416607175897652739685374130970150235702064049244617669334509250975671656719694104934269005665792094345791201726127223391333320393228204281569255064024952152315491474313003354801192102831359668095375052905692988108710186112196887243468209659409041689282031609079370162130276745820011940010458618273938020566366976975866051571404482998410795060141560501005503247159500660770408809558676050601395330915522758807929566608952675716683812714595762881942821430389639550439683665774578289172862931791920936791124904625134701112404363076098065324660055407062441125191042724206051973084458726786095837758556637054183972750938626409415675383036011626240054248944208703994075309366125864633792801643520948490714481665350797442830000086481328595152961812398655052549180505896583175569446822227027309400473080099020379618250045962822246339569821539753258273830456262607432448620134676420593688233006572267350340819397871312323711219992688501286883775501639874265309905339922870821234093601239959514201972623319791974912768508656311101620961166287635349409620534475220638878889435564108376994940250286032340237498946162009886108004042482471842844907160177823287608115483603490485215162254252024230970081029217811488309325269194309698169453115501113759433342347235349838797314554486761482063585202069825262809579653695225758124839884642026383872463494229164336585373478091044162490500508462911554699961799969946233829350819622044285786671970020057320750865176059700432864180336128613663879022885773489320156178437715249350853862371640111053427293623060750352508363326371219530737438855400290809168051808460454052600175848935648012362204686635919364092418328693944391447281511274106636567196167075745601925813419672532523909388086988863373473021731918501832802810134555963787509396255793642432191915151194229543450827897568013404822177290682160797406412968380837534048823991512981780747593110036123658054798668158146327346669951788457787618686806879376983913453463755653915401674880765135935540882416743841922272033108452616873412685877891337302596174416862277409511411852988610162183863189924912113061319197534242580641438550843791067680559102187969187930893151848289302578892146749076244924640748537890936824025762303098294436279142093542962082744761068284636039515535851292728597673611511491894760348945800907170729334975648427160190300465170933017295336330932824880349087853385186117779060818828527005677114272140426410661317283703811516373320739551587301832924976767960337966232507312355337487895907225039838794077601245718170857088115455756999335008104273950375412225954589530823215155913930616935310302372794451130894568200028528526966357966023503534468765039713633381300521810684080950110456842900370364226482814694788796489116331041363123844366106065791396472664208077359023210579552774463121132408707152223710278331240582603883664422898925524044515569720129069432483634879609544959857294408094343219852426756304787776446288205850350469061358336570482443197108592523942699893896842515507125477058866760981298460637340944653733356031181030657267713665059943281952905940788180656996671391182446255328691951839957961365496361963327401927407820211697178526181769580787114377403276119512629334379497216139819385973720674269711835883859852251983674289263265246332158166429866448593353034087664746793009475763842890467365491444436218651754959123339926955055509102890275472733979517713240254331305180018362794770849377792631622777401645988275788874287653418521679370926034470728055954488066151827608639516633637363756929183437844407552972786194423404414157507327823626193574952412804901094547832219687399091686936277209612106907624354730764727490545468468678946385331926465913934120192071248718260034669565358655226834223089995393798071391778115986365551215121127430987907696755342833155160907166227711370121291892965457099855654370649246842740248660708122251093345752732010694414977283747929671601755555999473990159553217057732033240373868201326675637770045185649394281424964447718975492728769929702654654946993774269488001710015492099019389021351731045459335227494603301929961335525398497482166240868365631313887369952624482422247053332656819341671553860141828033103024447507172479290649757335490291709336031131615488055600924253736106593844706291302634123647087440008085365419695481700449910359459140763937498971952177601139628426557772699870736918485485823470177767115492499798534140751851126987003456208464471924218720666989235813287272660975315042088499039894458830607374319197298150191422144559215128825303736658571530979622624268688810246075148063386927252533071346288518950308155471575836228896025837452603858787301968750295686063618361690602912232992541959391821690867586726165853033858375886771912122420981485566799666154415323858074079836485892902987260523214093577714542330204381359532033201482049416525683169401511258257975543645914912535774946347478719744709024987567211848333620007495864042769628611280381516404445115192531517570210271954149701757045177221614348425203138272928066405359739540059209329054601498511086358766555723137777705404782613276293492980931599157825920326204660121157146203159416376404650740467620832271278158149274959096876947907178326647853024066512869105089045900377409432572807552893100711956795296381440998197093292119277772836777660922110903797019959475194721405707245793390202563797926305400023798758999581081139711927819219534951705848539130817302845822433336030363136285947052508403561770996293679283326483086507571130438788140033686372048395390779012350450434005596182540190208566005962219940774002136591540322014613153283527870932171599947056679051406086069977422044795008860120088532337566750976918472853521936629056520700642793653589957828810835060761485937167442075037393514202018644124751334963451507949068569737439371992563621106745175849422285222945277116958151113174037525038034806264442263525032109312987949232265251900782539277831752344314231121633598217478689086957330294438977690198642730764416440868526201372850022849010586758688004057253566799170535520506962133720589761595037768175201771130430719614919105009266022490415077070385892522642243008462884903828158287233224886584156511793115232350962874800447865730058875066803573592758871697908273689719507441981412823613409532372121456350829614428649442678435091312391390918684205463878700637199642346283651956074219582570831387293543095774644959809653989177219931532688617857123028987005727477363432601731054764573187810620224947868358997274443855889170124432561377575199940904269013363312175366981704231990677544166932994633029104490637934904922120789523502482130468992736479182169743747471474995611341041812909894278712493685933953667126216690830527493681129249947759729068609794671840178049722235076441549000061519922800159166914331518835886179840328322496144536645958100253835455177816110120432736229373027619731652064846881830922318983719445913729785269036140083851089528232872959512190310680781090825911378526927219039680645657735361670317940654111681547301758911181273713538353951701494390720209602792764180935726247168083367777889553933780926466639473731946300385703614660592433294216695257267386085184854369223314615734421575652521071944214254438738001062117443481311853480192004459799664363395130096665781361829528947728125526575661272034094738828509891640011682450016743761638366653851581276354304035197080275669266430946100705260256118575365304835061764034148907299476794678753604966499233285362537921163814837407559593876309361808699593519227411707944712916472386700325622497137353868125904561407141860337005621012290973412352169895662276940443519717277074614757721689350131495197169516943185492542615304275000840621615609294261239262508631844795975472832841839986304163618005661647024767724368182359604672788309891683234554365222133822022354641592745510911431738095924668601453864994907653513867183502300327026925496045850722615981887781186415481680659159232121239201239955317260814037945617477869943491271045377797243135513446768235885508328838039933059537450371153456456900379195557656441538339493037087693118079813742498027372932558662126818372217747821084043368423913315189550641347181207911504529328542295546848739048930297541884021581325676695528751756300729728626186682758520902943407969131847679486045756712539008506759224045366338856514076705603467551873203588696951824582375145492623945444122136615270993435868244599504861581067532612282004756775264772123811637541506740598120103177215395369195310681464419166894380698723474533542093305385348949850991344106646932935547406996310753604774312521865753264560299193676231218586949516308896568537621665966180323125143186072660330288464373493613977412860743040557213617783002329885455371810577473327765681497727419420987572947892083207702955056981882949916736766133024937801931235178306272043720400418022388174818371749713904957399376815710255172381127363048268723909511200077020416169211752961980273531497097933627370216041736290721307250670575228234794778056855511236429548633253150193341059643246547727590305964346053778078654581407612197969486566947772606352829438828718245695158832752048743714391079016928467455294733921827028611079827460383427702953256383574748838585613457626014971439723262784885069125775411833439526095011244384577686527146438394769609054712995971375505625120319278855316712660400395810664651692455845192138374789227871196477937520462853499787303206653044961643066314786991126696572169131006325342267664782449187261258907060319564059899307183959423563880038231742949430052366325266374345202963406508984271058503619970882034092809420355753094444954654432915864595614622906371214281831589779171970570102141259076497028037177321111933391996076897822387095712601958117919612787635808881704567827666511734989518952828994718437210789497917013249916741148980495937212590198628270106994401701935679888537389451219789979647645699718490037546942508132406212464909955491214811847186550021949331097111431067376153070713672004431910073433314423441402722797478317902283124777105598880013544152121531534072884161709424151199145192646565932280460713975517707754666094506310941329191191057256043788794467031077568214190328781923518471708818887712341065307529899344570519325177795763530799204870837693562358251665850317976235421316955386693629767819960817815734429490723183388429340588424906353234853038755727158188576702519363938699177315129045807409235652240323938579652518244391040047852227845921751321840077349125646433625496479697602082558872432172189068734542877807223649171013557700686162460795344477158851310666114553939002459942811472486097596411115343769843059899291854707353659349526406755319413565998117743990401202746433617028316020176563710080701357627486927637028244282316021065273814831349257729272947643212249114766173934438313253553816543314869312539772953171622982209801026137376237023928671210353089803819909024697063553595164251761703274747769313980757235217873742755351744662465493515775308795611302010712340957919902251954435544449532979729845012210067471759284931871361231415128515803736722051770433083746794188949214594543784175392471639696724333745566142573141109685319268065676020925184224024596128118746845052650042879108770760016129596241162647625329981521115596065519838560764060366645763978068480417935634180579029103869852348419276828220970130585935847747323897160851824188831724046920012427360535808651146886709841715358638039424941514771954664731486607193892682642918308700657966043489140728482240301384177108401817434284498293504571594118805568434666649665344603683127505446008499602621185082452299983649404121402300171973685932828380355215425043138121463562018228223929918166046455690247485146853699443015151017297591169943122716294634364997678197227718965515691529579953954208440625087621606930913696221184636736317494111489719421605961996377791681092896448130679488781131483446894463432194742566739957355146899983302250586472370545299402473326180204417613219139786914417285471325260557597575174697549480055366877797365206095848167239998021524904088426010692423374135483444320849441767967299908323126276615215108457965774937757555850091942307547818899208587833116880197667904400378183356380164155151156019738663649910456214933255603247647221888062843412607193873431989013550712706680912304414461888362490102130317671664985483474220621965883530937699558926751860870680347551348241338474919063693079795573430759038355991879735377794786242006582518253875738045182623359087362942928693258461971920983528953235399946433626472722519386941432566101645227940532526112121277110760611909561136369170103470108254191111492553535559357842630543036045512464056244871594122848383256168387684934266868622873049129883785272102974185556776239008559904494935977622797627127566243960203816558342427563770452105312292426451325135330037191323355784950982077061809438446255751513998979522512623527222175727888563405186134826600702206750917258434664933812396431946597551114119498984805738843643451161072728865679003404433180254329597682855638705536097942705765757101156920562709505340073374099855662084683366784111400432981639441682642994701038512021445582999716938098196667495977791025059841688051399379290270323724275395905315533216478597851337489168903658792247933012090445092933132126152147803002763988942422784411329740489366320175843810585910962108702710088346963221739076144504679066320410992993741888831071413329970068509472070173758255783417444823148305195404717773961861123425144316623139373336097787887346654884425375942505303155189368498913885894940930391731168014008002624166752226141019453453804643987282738338348304285938783574072881493374125666165758383245454201656423420574060518911595588429716359813106530126922579970305054199984634400270377596565219531494295146984082038363770819545905500329848584831199532603201382910379072509512772188828649802866975414781722427196967322216556838344959872944096616484740446846245571873779951360280020923024911462434740694036613205257595040022776250055612238049235619417989097093690766843794318017382337713990711838209947323696245769649692945502019445661470912805543651627874335494176834273027467633428041711282576719221126560004620709331089795835668393944554582866336381743277772805246403582559317683155219315179584682388940272290386864501151680379509840234882995681313664786525984426645295306745024810952804799350485014118048269624484344714570794659412563338548888548388250939880095656284648058946793423071231269528000334090491727844500563373435450312605969872105498660737009136580720939452127783269242870459081726013322266737756399075658316281457025534369443230102623777893783788193649541115881702938470350820332811284553286048034364177718910311505458509708774693446975333965084355719344734791018579075015225576466815941043998795995367857108451180958209745476936662632167713149485713780940366766066419383445336771218093230360741854677032209343651172034950777040917990364618887809776407932342339906182172202139991711018987472142171205348581343412178096306385323558390663274570915289537247454373073306599756980518001370755176413293099446025467460406248482191912403092185211463135753292095094325874917206241985547803867400097059183556948223564890269680339785880208997295642990041012973453097344637610971746895799325959446452758201069492604073983323509017941064699741309406846988163877607191776236551926107906254695579180494854212071539667928887881468881874218532650516780836478144240224650046073203914175660698966247103638679367488286971499109311395727509190946815731207405107546568040646861028422570199594181790977018469369125402074202743758548501572226194585115739673452575040922291334080349944174092027821137765000323966889681331925635590913508405816852059969568254896614688860210279314747211164191582534899569995456145221613954028247971131061443832357775459243332059601716628706860074196708308119037194404110089072894426593500029552722594676425632495541006958647994450842969276062459761339955500269474953843561759687132451489473120328578027848798307891806686564575559215648842258389694716211282123628156339528418949909071237803744705143802284779187162154142196688488229725879044484732910176446023286585631971720587220157362939138239156119264809077315988285817927756142238669972235731508381426771415963034432376875758503112838718269105509583410236292855534951393203006196833857635143179924366177010395677407356335665912127019056762883952314281968497810780996043685846270662500762332018862353826474138547491077303963493657426430921376880201512462837040187840389477466200836139665561619597216732604619374781715818003698408902466985548178703038848599180678576571500304891043269457502679905267471384891076440793319002846664153740737689624111343158630906337974672808896918269891775651055539650374317332972714855479832814264068362392992252616997482753832267169665603880637434245550611860258334832593131432732091509983467789871524638396085266971364166389284825189644118529611150914951840484742383596964727392882293183102775532135680840680993211118179364504683497546254940318838186972755166201396654029991472808802878392815162922840359296860635559157512094111515224446334986794074445233017504366735683310966900639014167359165961118609662793337534947829700764818195679379427307391490358795972940472617590144938581070178692475076635811917622999251726202076060151709822614439910921038125617722224689814389819658379568140024235225117230661406661597190682312360768480906049833754493285441065319434566178881558476063688370123449803472625445203527164412636610673728677341346113808826412388781829848534289676384828020511022870984941791285010301851949103862800985203040726069118283847850122559697001894450557335976885365078593768605891542405930716157584990522071956460577314103280343907795426928188719085964401309703044355382179080958560417518884242356168642325389139869430944548911115191001354731557288846322383406570931347466420052671527639785520454713719134439738762200284839886562362302164923926477321100945338443464753348918321020463588443990358862534814302704087880408445422300163651559356916010988171367308307668192714960950934560603726067324225789400506427650663221358738529531838457845417206932067013912936259502765620897723970877065185599238131911384811466176678870442775463130405831871755181974099229569743177019716799766502198224608830986063005581504920529107066514994389513652350001923194038103591396528745439528580195458253990098217680037960844395807396585136226540176554664244263100398625391676928432636783192750618559074259147507984129284579348524302380479527669871387796845749316376572308047712859626127035770454325289745176674058417689677442314194573805021427179361137841630148058203927279065982013526434695612097217512593092715683694727971636169231754468411978205037074761118735363801635510994893042003035543171096857289430480688039634182001297967083020827488703501656076787706173528444557634571239225257726637831569255985369500182012073116950295690143025259456941878219949993749899632161266580590449339057983798777855559965981998205386880724761801644489255573190953266818876880501670322957169791225328866716597046638313746930823898061253300752823094573600134125014606097047278440861177085195243264135778243670291124016845523244311320254208680332892516026123629815920373859801254387172311836598368697377095656559715540822274015607136720256980394181840026933095357487321408439593541052311474509249680281191978806278932683938281509918366858018212167767188048465760982922705376556589435840303452835159041300008981182066294438750244467406218137452641910951429736317900417965953557084260658900169202629472978248912478805197643248760395941511201431032263803298041903578440086725134077134862738036042994462609902154454045215338043792033467229258582467547760932500553398771047723745055172589492945964437753796890071809692993067445192569529044229631096891682632127748004656885338046450774297814189075876794913618367996721911900776450691482318045106618048116008212920199297899950134625993193101081670926903907031507775038735452591839036191412491374861372299002151167124196162187845326835945004096195419045976381597115130114716176916949730907401645563262304657200903574035683607406819046594274462639272831705862566277208270139457730763325597875404438661480174640807763541336983472708612875995309099246077540252670099141620610737251425479376826915658114913909942131515174745282180990622628474594058878495196039142282786430412224336865248583635911046266845032076453335244543226309738308888439830700321693732720232783086892280633614139123534773227394096055124071294945450398626271600088123659330876727197517706205507834737005348076757372528467030491719548526299157234257540490293452420635960007173661739098443131896660785368162753052336715025199560278580178563035996277811641801446294915633712667569119071228314834894956716342311709587090721955603993262299000943782149857261130669567982585305953556258683428781352691179477498734939337472998539030565547057851518878207992439655566273487588946889108186024971539929545649619074026785805702852880815218981267613289550958941527510581396098384716613824730272343108152135917535251164043859444605502556412825357062739760744144048141755397373969317425488495688973169138637631589866474187419168600726763075717381532444921812262673626368128667036866924697682948328566441802349311061980517158325569331330303351592798657813332418963640859439768380884600690609034074052863517654137507864814162268790856319247310719917283064922457584812225368062293482440051490694007522587884852687069002273075401383651239327571815751332699615323716641625927346394669336898077551806352782666850575001228681795222687203757243160116395949313851921294788682922443749666046647918250555122449006942437931422029874541141421192206117794213402788213290205320398950586982627606843058677837302618166871010042362202600393914345257030043050375466196479872029608497652979927361942607782448638506539235370243514687205383036861346995256379309205328565356814287325494865138110713358841527026890589481944833497053333877288945405912209808337966145891957162286620287298981850792779107661212075031545985732044430565288955345336468907768517060658857969310703840301080134156642370027765969516957726687794135360370248824151939060820057297641349095457270636380987371915461890486069621922137016708142847497508740436609389574102725335376968715043231352558835425510991359888058129557630114287028851829845623375342900360883942581583872788976949399452404260332882782572313980852806538362423819290488707008786958323387648739570874248061872438795698549439749102333264972843120899433180905420608944684656038775815338094643549331948914336037507227038910295528060840481202166505536498893851204301322799433659038811503026012186023066397097931779151866083657559541724027584517564479080653086814807947981003844538586615312497206687970547488358492815219472469891449902054076449117362270799938225549772252827478748332665147331553132012611409190305688100814957517416287566683652561256059287592424439719674781531683154036454439814100334394075845367110344630551336401820333312118990455470311431106689563683666303094015543629537775901875626024306080022683917754370138238888179012824723788781588210347837312736932470979533331118839646260127941522118742157824555876825271293610206508507485302742897385510270711639891955361668043628490682768427053489501388257367420077656174771223444660561902113615399148792589424536064185705483051678290953873505325469721837262824175508447512947444599537605204942410636412984661397477071793997405085005728647543261347756973998592704709254402622749873893373813358530040131155141908277242025386672822750108100468001693528161200690134127584181003794538113025589491075288114002613520806442646382082895293089376310466775681931046375655777214758654083689490945015925669434483454792324658386139083017124519509348253514735217135996953040959397634634697163461243584860360072034867408031786520980279595054487705609474415321910941571372832349960604141751907134513436244273663934841605650345378521482658225327277724460851778289756036033695235191541875512353019922904393896437237152734004187732128320752103025362190882671579290780494963667286010679693261781843957817990488502423580410887464571998996004376825039934174537906584458020814634315203611416248870264045795693638345630039539376350285023141523791673039265230149009641939127149177042682012085296036501776472525365421484768119216792528932935572290853561226131960865461814295971896034703661040641203328407386986167483014476969200022407135638262550879601561075603247919155853823734466271913505262319444753622740606819863216382542579293338465256498366067406909966299593990512235218896162319389594545244674251082389078495431631656923209973624769251173332965874007175202246881979415126449826233932980122935464959179451739074796217000561798797571462190444364764407581882260089854019279958748080224802046238799690791964409773083904770779040617211066931456915354197945210527323220061510821277201380986808858036108079902623344454790479629067749582003839322642982455819361915703543570390225257891460036048059061001598735153386084257419161704209024684712353198194227730463854996294308750382676309575683698110799593752730380571051856298897944075648465055036510566662025102535169799120638739784448155056106668217108009781670858005954397796972266414963406206916276031117946507238736177849691604276460970668533240384020587849696336415191144001052160414895698232847366061736386011603969423988217606669908514076359093306851234391395369164704083378643822370869386733134677011163456785529681499614389288390701838161455326639070895994855013642078302242017748693650467496212113377046783177708907029180912253140050561033732324259016230103909558946873911945720350797813155971354980660816024279120337967075637776042330223614584098027204425818796656821342391861263686988112477330889170986520680647502810076520009007444774545622649213665400220896307681435083492673249359894337338250829348597228632305877712006597936356067169264456313399441208258889181536094962776043924168969017705044405695147111870486330418626018684255270160115957012462343879135197128688893734966845850941916664436530606674537767233919907876834542302655588740849368864092030347394460381620417657608111759483704058372487124719021801260417930393203332972882955204463750051859175841884826561660020334097121401629964807703919785518758803362825010144593042649298890639054871751923096396682756387483194951386291361964753949371026586822869017185095402730429018380239929055259636360984608080877445736715161642642820770468569724493953354927386651380503441716115657019491848673010735117978139056571199205483317816188183365217914814567940494097713445970824773150477275664687770884628255883430154059108172420058488241207469640449284378850873640214949971905638189965689243805568295418529213824751394886766824862006409463848029490284541074474994280391434168461215627533319959185045215032126233763775944985840479444823812895264229433822166964096044816295411598576037711007878349474374012543467041837201020342629149069241605011366603166068843960459399123064001666102216442626966868686711566728985653683253061642494582873476694466507932890605046950976316452934435946061853213443764620138060919095092032138995876590317010454776071681146414607252119323911654922196892331021295248211335358087417560160000401688057000988160164276216602972840696765103382550977625488540269045070057326164267086647345591629592664066437983305557320226046556553221275986117487964395199921181335634953667291295996056312741275228174220041421977008560024673328499051343221706489056346115981773963487454240133868460823642327358509395249331988549859036350192937465809652029782091961957648699938814899129470524456898780052136124835291917004017817331606877403071115759866920280362908724176540199354145746521303422305501249202950496854094436490951133473288247007538501938357318817544579389470260276857516868258642996203298386612359081464867746170929225249221366082649970869421983636750209843016591901588388734191065923735577207445415407958196615191610798747253127636166369544719859523846946363664308825770943602983472024561067160652731382598935522420282679162186972942646597535778161374185042199793132453186209551994472164007899089113732927089195999459390348448730011631047837987482799529231125629757672597533104913834989191900034469413182894250500584425512109601370725470894961199171841510584912318695241375150788894117766263862398076778274587546257369479262056903210051094930843942323503478902044848098339017829722045090330060068410087205186132684937587631485062900774747569168143891535048947804644889237271997109726368025629715104598144672183039511306654494756386516126892098204104996573552575722147743084089068268560295839802377950863143747507235572567680478554215518973128558823803937099746097147135154817173365057805943699927602213931267378048857549053464482932304360470717991823785664105325969030747369292285612106186180205100362096710794034775606325739855217334119123876408490523968021360330045119771826334673336180592778930242797080975405999556832973941084001574136927686492617479729561702840323877010667294326303649670112192369700568255097488708992775253637649842899523492143978414699689887145905315943838084893895838885276418930981535565003110708962818837962839518873257212208540883184023771896474738110041109223926642358420615314653033976878182843936397904435948956258354385032589855446076010931175440518748475022697253394901493479252428847232495289820936931891035724269022794173479683231204749167889786349020605152208291537993054325277739199600268610319797182877611603018459186852414980738482576058083249171270782492384813099583766732908190493694647093721654404336500508715624894876938092366045646608130499053210349572214528722268881298063296776570408729328797726431048523581123330115917637424004192403191604865909502810711255750363609809790225625276191223543274288302113947243435840972429753867295548429745492661338060435574963093922324472010870954085159649581722384620271494709245996383426259873128939675971791584590962062048322000074331328456790240454529244261485591469728372882661131224389327310304623477118501765705133711836611256309401452050917759095719965842628586394884236293251327214327042803816983812155487244567390584574619514602162986427488448359326844941007852583901635129458692876886475466152420726651440978922474969358842948457788760925284933252061232920196764772146806537327079127949076101470379077111115348055107572322314608941842587674960964474498436625716416193671361740663969591792395336220418434782083004165252437183299992762994469140011578763130050539527714283195599434823296707947673640069802190911727242243508394984675100114052633080554117591428600070970687553018613026933940759187139460902718227204726475874217541980119813774651594709401307951479399850834709281533848342550258952274163397327267915379655308696193954011843806230175517377083346925934465670811652230257978899616002675672970902540271427971953765210525099801542190807794660542051893926014144530990815114025129395962628729470361992075390793486352745276956694590578200495397837705689583405657299782827180602888991483640847784639784084867043837498192710791738511184377140173528926117502771104810890087348096623274988666819687045667747283979851067183832648294680783887406975167944333556249574925336598014714111885271996361426287335950386952248587207773962120774622851217021905073520457269420925029763992177166668894999123157170919538825437964777868555790266395521374579664258697058944695498440146637501814078290910599165609900149302173332837235515845157158077406496344128687433565515256343815317224160508556470349156784261289412875635551610286709950497467428869602011503396830831781589067855137423808366815879037877838229748318766955941922204938441194102656914938762908635469151601889315632328882824048985471808299765697957329813132109009108432654820217574793325869972660241011503083836915581740106816710086386012116887429777075859502073731788647572317398778542391074170110516401756357859394166299503402940335801412164622062786261729672831738069429318391355786982329391069027301998548476309303853416814580884934188370672373748031527811722591393166707749015214687078673774687802765133281185774972090447655714895235282786199283498051596545489532917654708720160075551234970784166343474884575501246475507054513225688127532148185079914592773638082809651086871436905639341352289306906731073500464791249328441522412444920566128357939303386709603596577840079963675694547082281127317254711927806618944598811543353874809659924018234215030590820968096452400503521456636221181789254870983122958128555858454700347957212386281351118439296296822068800403010343811022886232633943330325432549810318051256282696570403446449030197721799313052950854339689787494097664152833306545741590774076152370673224104424946301511635689434029709758463392760719861322794908378570438697975261827203141074219947375988880060145467571533187495551453791314406500200105476034932432861715590857832685091146550316515181559123657503223168498679030093045436120420817588569632815029776257004449918252695810820656653402135684314546947224231522170640621764979316955226004615618970059532688361555272557982855642954535699373464563810927900863745262775633806040744153763014055859832544101703318823780285651660205550382808794534602168192214399928703840461352986087298909404533361934633825637982644464385154166362363718052507768092879363185901196838119493129997811468293032425075542080735163880655512710857586662850525417658290225059296957270283858626546196007562927061246155344258192992446485093605484905172324087612617112056493206713152143649994732956691809649847108948200224512329104508300892514132722647173305278399805167993688777661458453574072977029742273686291653277955797249357230565671458764272211848650830509511940583100193563362019958401201102095030821084249078754619673143873276309953267322571151184742429502365004591237391030260640833017432773270095088694666724469214912253625779097840965044654957814359599115497019354376730561474974021314268741311653239206132909747914511022994367043263088385165277873336598979234119848935514576191077885392445004833750662013760292820804936982250629687743992075234126837736358202643404940926440426582936733529533845511572449025938080323922824311009615321168667108945792741349032200730531201745495125342743809745808305724099282090989466484120091006339557189885303656027384265911307497161119918397647265995546391876747799523619701745208899975486404598639653315341364924565773022545801912352452831083864765013224490136660679967358372489413737448727396520752119706110734032965237663814942786175216715623168939939721417701467455428524857790193973466552975908470202965793101052782632086421220518589558327483752591319777878040364846659159411798019863057238526370547918286840959240188122918147817886292302752533594170334161228406464134176258571776201147858363208770308919248740342182959378633638886663094525222468251843551903234905794813961803763218759261303863644072687858857655706169794344546593662665880040263378091532145470092181113089117449987649773548089694642879942566867956710783959011496106620917424448331360318389161898029610542306301273588965144988033304857019543073628849178844618153005088986633894274560763034869953939435270300166638116224428197621143188454596120457455457712056943041379259651076829806750967861258246243052602843683075413149801876654073474228878657065032609336485815023824956885577451243322736268225941113331852677254049398468043121598998478785452166409067508003124361210368194749522422413830833842363457661280107832658281804583961095059080554906918180025875023492187892341268314493363005381115508348055110160965081822316643381517744928252034748847692744000227194174695170289096783639564917838322013935350189066856445519198847013379273340651340577199618442520071815521273207132641445517812873534253915063011237346724660885414208600444158262058273627022763096994597001148356712697505455403303718221581831640622373309330510912104757534913139266081831935611633733050897361753090613593737755069017784688574677103494393232049272450800589867692897571841056249202561948881632752080771680936661935208363311822723647688658783533825999782268834352818956245541988853502705473972393901154069690728365002491809926676583927405556022368495842995249780884678405394014524237463280334529110003523166220661840642191101801253573154103112371249201097858024339211253972320582569384014582794613958956822968154466548896520552846739558420721198572160639061716467272827843129408150793313240753798987841056142023507460819493314195050618626660405641359276210077508579609453305704979411266892356645720558553734490670717352386431195848143827663263749118697494483251277088755864770820760764956140997276695155627933211162433285657226924852675869087411593423606966713206416004345375962553104147140631200754268465856911403460034376299283528241456040858843180718814861631546402657010796032298616589894304260615444316313068499512472762526743019076996296874353092953013997211438592116067538300257886518933800778839680270715132867817658763056514878836884292769019291281464316000290718330515980827669011905821963425183666870462523416941726888603538316708198393687398124673360117365415352393197877736460800324875560775237394832179103200514681583348274925177577961843446523101280580876878842704453098373046819851162383063986897259204482701002700929081451690135044196053483029538924467898134631740853344743074591361396167505798427421279374717669397295616240131341236239753710682521124879158862195399920545369066894874285583883047739848186995946602729889543826323036936569690664586939729259580265584904360820903542312160880755697091798175363469948771209608346785092770559566417255657305083938728741812210495804659284280862834493038561351290944676037644389987251204030468644803821800735648444175721328403318398276973475309947139083719592892818813254649092704297076782278372537399155716374924049241920656587972440511028203200387276344885299318194062340735860599524431774091233182763919077116310604625408913995786281926434090369360850263331475371861301203831509361551725565128053755232022791470140811843967159542867044418069111809677388716845137026687158762101866473547427924835962301877210958022895399667484727254825745969866909601030497485087405017642440914086187778694709483703502314850401983153938904539101240567265104868081206055549562941971595559080629420342667948238878422219186765533775450399539354376158007081080938015268729008840526635896355732487773139188521285126364249035051405298902328129415142864187914383434004841347851283956568550638181126234650384974494317235690881606483319261725105943987370848631384126599596575968726299251269668188300179527034645916414960094566316237997817275082756593560867785943932692330636065517582409046502616542709683419268020469581207566824981990616697204008089992562723587944475334424379361222718151786042683764639219535842635164652292024630850549063188662185271684366486511430530476339463502124942813993250075499324645695859221378255323880987706673534103165520427979795704437374011968450467465005627989640428214367479443471657326178528076129457536359629189660857469317998882620272525033092135734860841739070212170590017223513100825188975396174277634067537966666697234636953670224314643171387720532316722386086757591910691052447679779916632139992729526050016594234616700407968960380854298355063651910990400574613082876872380191650075409829374893692743068787474931975071432853743740953225918260231586808440488289824874752902050337193752743524927506730841867995226346691340322101614032971800401202370825539548669067075487021401033218266709846611307426730324907477677160333046782049567905793043196245953612728154965959464769681510921215398800568614464384254126159077234194362299567246387102938478514611416083432383806447870121440969383912601670442108992103011064195567682345726257210278626790144228660600883186245423230271131926380323083216448896266057534385141405478116799291450713357771052423286888187356694188787721317979184112433027673992036989214391460580345570581037742837482940354466221606945813531509850049733664203578836015695283812971915853405906098773455742396268309849091979707297287081849125978051744993563207598037980147563192661593390746113220490709220682936643234107089120604071582374525076384358951870262785698044051884214141778256771559833749320096774865781824191425575788577006732884925394775256198149146182408817424285492644562640679557527574703336508962712191086360764065511035359792033673509573808892303065629247091216923907862724053484647831290091939959193853853965265619017743138994465289290122854642707145972487369259385026105271777997110492385749220279566317660162248275825537279256475456664895359146992529325077258235616311354940210304944395023415133868589349035080246582080079342946675134194433221302191574168111851155819439871640925611470212679943044844142229216376628644869213074096478416779353574673102658247639018879307829964803468931447988707236374189332285949056709787678984473707181865639462820233362248089030458453782434682841588199897895938714872606516171410846752777380099500847098933285334099996579098319026264052027286503057081635871326805445416578356810177915749750435352938091106718213254902357221210029474332591869946242263960762214024461491541205254371008818934001845868834924423014124006715946700161969867332497911189375832734776570536144667532314482671567800024990813820177211200577240033979314719372238297809577850245820228493802386720564871312606034589190737506623887817223043489940960044644703449083459901556280498711942499177586616574200545835161669129155769614697916906785561970488627191654763011368645758295968713516059550923369902198126386589463717308393503499696754037454580851715735760957908082122073032621359369305035757316575546373021889470763600892878237201949745310671829696468011158864945194361498512543331588118328364219065962828922291505386530388096204614083883621645416038520538393598397224685949162697118011634585744319947859407236874923269379034971155204187346915170462395109738798361541201519620340235612334864716390334733846933513716769365693857420996773850315629281203514806353434902621268168063728153216934531446540369636036871535199503079489967192239304171353625672480102829158642608243363767049806374101930011675071793653772334758567545174990759629646506751261796971965424043572172597697043531059771586999784182268691319222109798951490849918662196810949089661540136339428418448928814498503808502834462863716619754216175817000165552796262422337472835227777302137017610488944367479045250240811890513232197707891327570043996993288045849952006228666564822390139143511308346322417765806865015897743940295183584746946805071301153961243887796701830422336739949936068314112861106639998617068041959775706807472826525570901083390219228129588056121139423035196918293332372821236374128148779416730501367748136832508068155948391807434780135144373581892176158014148787140848630595441932899286290737305766521647002360111738913387030822249092223461158201386494304112598279382379203948507750714758949610109828280575030967161193199830636555519766688046806252954972766578196296423988878931584055894628054505661628497132061995612828501209896212652403286023540741170557061795157268223196665727399189652998180394094530064482997852610255904869043397909409847562976353125322951522568444384316417225908891919243401259550889531279149621973591413897108684776193244105931466318882857250713157837321172128683987165681425994594172058696280142041895987008069074349153550588474804229333801785868281492690869889373935934277088599244641103128561914231933877931010340893681794181908541907129356418884371921045395644051352228808006043645278457005871610176855375143244979600875788572834825828221680611354487762801838199825515997643327869635205644179469076346096160703430611519111857757365460987679627181177595236126406837211119565681116845869567482869498855712452244785153405188251646329804289839473247035385062102105502085169162703232234958814765362768056836940818969159775349890535108347391962774382087445966110789437727735508744999087242638224149216902388488129603165294410768602370157703318736584702611418901551360735747519714635559624636187852002196187853987157659638240339059961543551731453067188013622844980414900108643862274150533249996052787414478182462040786606680794857007043886197334309364787695566662281380593796132336222155813346670849250555215331201561173131531852209530859006001987842729453911607758506244198124331630933354573077161641274251696092844267722671744339162945142841674064779337850259026753251242423284190822455954438735489172018818114943496378076659204530173268242427324083488291852593787495208966792413263190591872918982492245424194398847805764167406597646166173771046016567999997972347647434550238036681450881550997671367619755516578192182787644063519920662438946694766936861431715972114980145781281110793358842510547338112544445808780714291619616605548772180467551840293086190160317689666897728976233485356818567093766142610367947155007941770840203489658771579630114483998849731221676425353352543072665675348613285884481489131088159614897152771557842412771939207868787774855103865538751299916345254058281095468814720724310023298078675484464737246119866601949919894607703145329383526409395489813386305624611881019388971905382056685313514034505653373457527683896994001553985916371293394119704327273980478471994373639102275424547709790466921385366948593197015504879133092064050848329938007336376171257210499972753749500604809907793190890925250720556069966986897489915179644143276299544414325499572842655322169360769937511062409542279222621363022443480795711602702631228537474112484788108597906871336605116254565608412073955744096688872616439980943343865520188810085135406003898903283522800643130171022610932868243359637924846716994601470727966458167634913849482441526373635753449686951030689402471607892083344127074018254069040603426610931204311719811406758144078879275711378990530046185063371772878306112313172293331288508328631165815869439252606713919217552630890140264024795563206297973281380960439107624864346908001541421666104003502452152692834323292299437698351039838585977886203545359012240748977040942537118587013429012565245528382897789175909553667710421676815618568466469636871013185109467784506178234045763330699907936944271917757463503291104242300274354493696915209008412020886351641583256907175787989971550709868317787432636371189695889410897888267750375976522516360031613163397563218837377491426563809225383593760764347666505245155185772264117241138980693300297654450313322750520868027049824205011606539068227465408679498605761839905213609585690232160571481268990991831795846493375331207150484008857009951472696481762619041404404354840108630832513695484160030460458782019476133646111555145748973186691260485867507171317635474275415415968305635227489470728977257835259511557343027496810043325629717597479429775228525872302813533619012416076023917100567859392499299808341687898984743302638132123676853839710332198411348219777471009624238068734374814222096025740992370178049371349540602385318223885119261105493868497428086797907065881118865874786722066855065764907234930542619579974479600309474108410405860913466459258339221142355125607441565344250264253923524228219716613168008586994556058892898958224506369377455623368676356081042569146280446774826506351517973319466804484038592468016178667944442202424677685461400474092643856918226894125630134194980615760398500464948299890646769745612509436506330013941072688729081808159831496013362367290465965150762560072160339994210898109817178973663517868213150711249979183751117200891833147847950798249648362410247645137907745823848661229783060600115233599672640725982542176894783266082499555923634006315006004749453247038127983040979296496166271882271867632220107095587638999398502943340470231254657274659990381687311108188890322246344487803424648144000693177989246398639804327500013640496861536313744865338364066421947062520712902907965307621362352630446821106230606023023246679741378229515291627881786547199164298142385978492508920995476054663564577484704929410792364087711026177403330147819275546039207662427959096344761670487570654289588775401758175903544218813285037423819604548189782524831676612363467625666579372124560910831986883077383962095369488118523767080402674829104799037697944133244106184046780532444391852427523721874702913495465480994305636638265259583205827233710196999922474091578438971012637452987829882151911730739476715720167722899492400685507245445919234796817693623438891397932322491737943529255690902281942460109095818143610780247902264267230666499695888037553665244666559953177496572044738239609764778067382271822434009240107379687557254285395690570283418783245414882660865313523362145337013004559488657394894052561097102561908887999131137106824841737126520900706345771204011889905136792172827991497751733441507257831238701374741355758809055176736652116955323092044397004548131931552524486754947857186408737164434401864102522693630270331159928395650624023105205137525007963298314995491875863450263175172035047280433103325730986714677944278310413115907013529887516311120697279579332370042238414711620127304476994332271583235930904616191689897280279456387726847574461290360832693719782025331308746330642808884770369225700482043406249007816290739775222408546458214746383771306983857478735844165479128342355302070704599324801961219204787321565976148028398495001784944994224929412382074229590681292621459371329740132547182965648344299563040138962120768527533582543635438881303994432013919764897577027944725652946144703974307926238582582831849441865132724639746287931120364606119469010652095923473948728955761187641595633161993185245823646483495020366713121870664589298015850569726312104711518446016353557666392998986134743305938599792921212434115054826420975445121412603820857379972469449285932875581030830334036076345987481677879700343104230283147193861440082678748667627532226745307501260395598306395019027998638383148765741019164914222043272018736316352532714986048190617895752114248081896152236596215372321262336459557286080718842645821354156964748625321406952876960777702307194865163382056415174011484380895482951464282372508202065095432129974633212960765552310161964994322051751140426062914962637872110015674178833782766122807948531010250000708076935914540880502877557475705893697763952432314495318360029325647336273661895437699642669796507457479732300091317913273840833923005792142507540618614434821840387474517864812782301234419843233049345500863343940876896359713869194883730466536401487927909954330503238923862052087152038154963817343414984007923886418029376284021646702106826542661430894381366350734152111906800957987662211564248472797608229291774174359175743634635065175845715937309177243224968263374663988234427476757904150299327654271055848609627655693714155914961811436683094753251554166242470919846054220860405622310555482888118155128183535438239130922391712161572552842522137578526843015522835258987299264025412929647259538380853248960250225543667912051798821767053729591304440182287784697428868781264444192805360128233969769155396592288108720766118397929043726189034116460504298881582633580759353024520812757615014670632906613716823198332378271685970934724105390225740797369773220683540330279531877383238371895735476019983284442550646624824175532611923507877135853848161280251764324148531048922392702248313837379922793832476890280031817639886716694558270041920575447561179821097831090039574164926633148723255657744509609370436431118091373711648453595893684527633609994705484971849674818617494702941640782063108624902605869385115129750128566466952931463892563467777570653996763663594649801367062898790003109053684047792383857881324931546641961003855528740859766651102490167014765374635581463557327520490092621868554728095589607373276474703066912999219819215808359947826157622941685913219632642217952760777976354538670450599392483940099204926230071072741879862311368375405387868408669087846608775689971810354063241450851310981878891496423402564857698596294105197147313877095497259934428886910043330691393821463494135283338752824372857112648490972127684164261094545932094071649088934991951921554946732725436879063320937727759394604068035776287297753844776274717347668633130394155958433426229570380715645153928470476935819133168510019776081478978837374694625997542949417398043347148153553592843439811327165065052288154753015041049546284210468583637526689283323101770728579825553606693822493847737792691829075767032660341613400932930471606665987154877980182189716338585784497305181491644555341338766800632170053880702192136494758506934062993581650380096562099227144993520624122640593431610012614168912543610573151250964640115459305817342577819259392482646612456600774390434626055603213382938381879435811046867989113185828500803948447129507596844920741125040359586153566429182185160935554526817291117167639243205249803835606245770899772944035212329544759742039067956819343709721936368527699598818245546463161628590101201402797333926249177789717733981412841574818737172294978578925604792634212318339368650815397055406196071079663994777249705635423403360263326179865440733543369334606788503950206002947794321527829534312444157414570997757179807575066812578373821938294827646004389868245770397362809430738709672264245930108906790991593290978181728945957930314341659658341666553702293603866151638658297408211275789504376781164650121203195793669296929136466802655562670269992030243781348258040516135442052748091311361779468629563158797715380001922755568242853072913077037731042592255194267386162919393742987616075865020760668499216050875069592107032807648888062018345247371366055630946772598468778042491662188270576046315921400179467744443193190208003325647052991978011399168379422839351476762222879675522636996196255017629736223185334062265170352448963195850617097268076834848390387424999737464562436007131629010364468632602520092643245077204611495071291764958403102966167339032011734855054729271758194913192494740676199341471387760606890621399330866941085618713973038937344830178577017675395901767245484799866882942105063255833303384086356782704915463034451238309500327982787372677037607342704877915886974406904996606756074392751478293162792386297392673735855434558234374662592757963964411450779947672340680946890530008300492306449252234678464528856076649436432009514930522463790754939705018163892835393800728387092931650039867954086338503630486392505359555595130405963411040376180470775898379327323066661482840509969333847415975468410551234156085391568864552242781256987179462525829406271837258988306173970282675448578675414662230936112423234571738749317024190227630151345241950768020532533308924079139210208933316617941631523793304400361186835935637635026572787369590651930385451493921746557968330381344636149402191781743511854583819943589917728366624679546314933943134321590090639883385844577401062813985313501164847470664187664831497995310981784719916466651711706020575179193029405475655181737675987989724270163351095964566037650605600273564569708838232516017671621565664829150920313827263383102081002973872311800814937784086595964535878311802717450789459451246710040959515184124941990365338627116510961109468460841850097751680616335614346076424229021871671371784165254070390044738727226998484407113545146161227770199103452923736821850459438506276186364112720879146950353309796236394517200070975801846704281886153097644948480002916543351897872357074224483161944776575049853141965029034745484907336225467227862522593412697988822185593757642386579207666706006794734569958693437352227435121260000169308613432936571813025696917077858630555328741120731941887288154633303907274701678102980321911568552937049412571557809345558064401438640833836543423765919380387066319283182232761908361864536022444907191671776344697564208645919504650542626761383828532114816122463742932362169001128028281593105400390131983049745042630191950687518249922940825950838612196583029984213295724093628805258465273530321897876475469521106280661798379273648905558940576323582464593553339794064147852324444533540290968103438326160455520226564248439402675207968446508508253059058922736769253346747289206735048419590929208952393654415743858008124664007477408349650397958232270002100018006118247717284316799324637693831365031940997364665874021448156690040450557600092625476744493022670799704011726984438540223783351180383402959112651886138334394251735241596435581754977597647198479715295401823779470949730102778637732173778607769704073062565351055270672919054057267210239501715062159423839990539247946421496529683876874386586200641227651505020389743525208595677865138700631134836923256045639884082855016665900687960527497008132843182179617126804603842759622369496835240827974330239837945073332307308650526167607112102154622462661634282979470701085029346214663743569999210710157789646283586840151168051232301463906819677157447842139839196398645707849817933156372221284505043651710421249086341814320200796682470851264533629581247588623496619163856098061108439447775762224039004642799303288335896499323494490086800042484091495114640951884425045230068572747003246111864223943396853105959354851853484256265802879704779957972963498426684795116394718148424993650852464927925578118019465308345912846822728946170701121299008127978232904056085811624818436499293125042875881183967606353067270626731116514410340523595419569214183193360234520403828413888914717625645012390642714944242890440444930017032199064184300894955535694315764505402630756154855003554618883587936658438017405663014229989399524329845534554184578992906142381482874137605655602878549351929883213647629004306825901461935825072532861194408464436606698429824486936329233213219710792357730778282970031540943612491605172460526073319339805249208411182008528261380154772355232278174047761788155671736677923267135076369767922679431819803191463181847262606302356621664484117579921805186015771387809885338135241497136349347284329842668024188906036202687012820535948659866450520080614612258919999125474367282631657450975247602651489042347409370995510934468123368030554167234412438326174132625302503229842035916559054460894353778379351783356979149488354898907799199354182282405610656217396487085907268072178495165137395404322651846920840513317270694115900426672394835610760343830601696048028739494421673019563762289388730475782923451001417685342071477192193357414952145583530737655827092584826541223838368694619498038715498484451542705794626189886077795840618222784395794824296703609062448957619684897365982424808977367059066760822455469217500235402574260060641843475296869406883106068258030087664379156162485508175140484576407707371657706271571466329358772331102504090357147940645087853486393890488392103135830690066275344259167676987845084509622207026494827275974042567899783691682656424418712595125599020549307310471457995112324253921915015929842527640582549410986518723674776290457486308602832351107321048532276320678206825614334094838311648755309147635687309533849663493779492037660673553836906007517528049561376725549826898350583224710773075645607142370926599693686654814204877314899181513519564145888493326134769242040562312583056134769303595382911702800642402415934019720555712896553731468340189659405474382064617879509029834482616295919271556280169628912229653221482502047854318293222256514553902176063758591540154275144286876839911576564227807069113831221110108832691180798866490147357776443028265043456813763694542620164964330216198791527232396556930171766454639634061655347830159383655293299720548699618224404817242865912089956321061328695484186157515521654467356566754296523780642313233731237598512505063472796618570232018282847998569055544136168054585373379568432854841296230440084697493070991622413903762613233609857423116504041639181641288544215617910291964047319812898170773455393004340581841017267725571340231487615315736305113097753431079343301740510997919558256615115575454465262608028876314881209155867838349771713353364802656282586306507356702089534914440492656759016905575729900958242677104370624072575611447671405227587618262338415997513853164672169995022600837578669746262054953126101373165972064811218323159357811869859242354549448789137883488674675027498633908614268493682692939954787771474066798674292583868338714689510744789381184315582777175550796924768545064925384476407849353363780913124722553576434205175344784734478358044114456397973177554681751846643120471907538620101378588588678828576189494778880982370333848041729445022112529561831142822793028056025661857106851950701457804384135050645996114492431562788146307739397278002247837273325499011938949355077312778343714202908323787999448927804740767509537448498676341027101826450184159586320989873431779592379097239697643474370026439278885467101337413357680193611895301845573659918477218979001289964774024210970157191411277788011443719786110337529014660387119886923281418284549890226118653014903068780903175246453703451527668869706658789889389498734026687678809544878823319293100073437915259498443924801779379729903709763720948982960145469770477144230097919067972153941244834022281691860586768114267115939052530961695351770239380333031351511063324247978283848498451884070207382356559007012122731884979507009218862377098381336920350174304202330278752255921061037594555355918911411260118202010900104184736242170569695191920171291483075007497746853573517703301128974581796283930120044354644767325406681405628355512891626923346018981155972215838446659587044026148473229190046812827934963651988619001219876411119076617323440709479379121519476053731665235087518365251299806791325720935063862238977289577175599707128739365501477913207922329764287754325213803884954664895893863120045178436942285415822464280309592032298939766654916071762772033531760832312623169454970158030510595399061853506273735644616256702254056672677439341068037979286972871209855249533003439251285057741300306913527010417852514479821852136292134880536566312839527431737892206567276326629579978341642554997544962513504037726612815891298837007239056253827425778176759990904096388669072888786118099758604600735442082094380207159087216840311791263849857501611579033435921974253326459594137770930655909204542030953119059381701040837087405575530771273148665869459646794817286559364187069650268625792849238283751013229138008304192817412287859770558112515188744465169260969263132105036318776687369238436006829796497818872293853526309277322297328080665778474131679935809582317463871494919245602947371390545760251497722666749490991919211889629690401862972682033194096201041825736268783555729341245715192278179697702881137035305195337980665603391093655521059831580743487283950194702173423448554721783228623247305825454512016402226939675886932974872877963338568590559143479186980796801195984114005905999755786083138949258864687296136619539981887908556192719236694968542343329297525037519854094944006124075560781665201118440050875248647711769121114844752311202558786825060551779400828282323646235492551294680502861021450197720139024960090158494290493687553087328972870552713598382643788344112031874628274980892512751947163320966937137637284255877068776163535671102584862912865722697961785884132063993684139982034204436853010729334717293455958740111755178269873914649356996100489296117770987884421425001007423643314353117920581877922564613384918979455646712974887493101578299655839123611323624465655017659804887793334866446476992838961364860568127899055133102024924330097876555875953996896801731554552749658397265153741865320845110623082116706553310847848335270685782426594342564794221459748616710471522730773401401350479760477401521160182522464207457647593177324655131737078783922585992689690992509771085502366071915185583993494267942096761784193305649254090157966548462407937259960455970722466941438257141660692249026040695384544406407402428372337147479253165780199809326916851915419526946896720825593392138174721127150797748400979196969021781932872106057012271670713453116507290136461597199230188845551237782377415515208833141703017643507867837623629230653628500448507440642902126385561152187896336447585649866043889048039550564632177978544055499823734786313806217589931296950967272070068917525959006424741921274013996197672626228947241304746909253198178479705410384260737414918805660683366558590802144469210663664201873325848690145698407154642042206516311005625988871341295227646864598761558642887490289931003908610468319193811521228126173600042033901780108024023680690032814320013819732823966707229962907328747761733715205847216740906164080489534279142024849543741079269134590184841567076102936267991300867001807183782230597353587778015736151278326242580714593888640727149681427874152613334846641514902045141344127809014275211655409212066446334894514587189874713825185279822987191458682910842527638753033827511550918615909524634532015168519166216500107817882471925411558844378012708204379148160932605232555563053876344942616590475566509773821594453764047050429051934001063477245427328437554788072569808877192166070338546512659331864880966015558072652979188391156486489784566769408025681344381573739520160410432620277479109578701669970553768118525694984429328373273834523308299952231114265530479710293103723196046968625391397579154791565337673578815074957481619220055593554815484907855468473006294033561073786121514988434017883676862210547299274057559389874103298178180376982875973763442370678803248046819429945782289884326934835086880880057125301794105647380199708847857986533321544153127110819583956989175230743579075823211606936050544034785295671013168763935578012291924846684242614465943770884190824449023490549760636820881880939798664342548261717250713676426337259777844137308854687416264488342617305636982758056809668775972909608465587811153795904521447584977470028455952051918946300343954980470369666095386918580639652935371193419404651592426064204901909384030421063726783546949489611144255627988437803954195551802781696505216246029321524562569215961677775344561793090864959674393734962841772640559116461727798980312008376184915435843031227533466739052800747889554378465695294489790483914211110526401886119678687763945322053243601244384186346027733392490719062056690431575283663222021336226292131617818848084824647730654146234408365628991104469778844915301697601408378018801215997197894438757785504954051564578223720657322251994142917602975753206486867997170826288233381159482923499233630128000185052086868788141349655816505862332416930927699575250754438149721962594048758036946289039815565490706525305863192042623314009398710936193221977394631537653363756113147912921354912037966021205909619176536274560672722225706606818784000549859845247206352619250594468610095350470062416203877728313139345982457655030574058804678225344471361205716766818556553785803191249209706119359536413054269864142082466961815855115466706769004510246927758278057089558221508102513531506383166405113715251258408093397491908976188271980203728042638526221145682068960713980249619563872641828531764846233819235327521181855912407497029467914021404656085582109233607219190191521957301545965466716358036853481114383738671166373603200630263625368753910549202715988140198861735082110298597506966984493860576038442041486919164044192157086316188654465413380412643119198385777399392430288596939508310674329099475173444566152677494303096789044992500461192264552255574793914233578047361204751803956035430670372544065238488961468975161137759971394935786288312943414470910618829527603551877989671739575745471422828061172891423303079779924206551677152398180448237480289678620229240605268098758653837404518793908846951458410396774513015988304370713585887607001954518668298858710418039210240495667349654879450294188062816373349478713402344732695386951716989164978786783369635695710132731337889030054770821843481473851835284385570158014497941512250693321003675317602005658624923031379398723697253267039394174802739709392009275318646452946001339503933084530422134662448621707883080095949172293948789445844378949007218054386267040187931736966060261728865154771011175838830070941738430479485266772283344377831933153329682293467886511180308856076139424910057076022089160601123418649843686806180608919908195298119124464045357711090194360417024654666453178597663442034809864734851120745281014408319474398719401042300190626006856104892364150824605262956273153967362151993993162859308596059662530470090918303690601882085868267122763133362526750118135535185560655248368863580490233733943339576588800974088235042788518068347365537106378518996259063768097492813769283584401037780976807179818786559191127448419177050781049268827913658262319090017460155591701188319131006046624496663410442956582030442005247350903304182845275578639744694170711837568270446059402940571052046847381835406895511464532666513672451716241561233623130245022239581600959813520406391605169785031076978630710934421632787042884810843388364497684534283246696148801187558216204939465369012267409346963028630626418903989417054915416769878406539242194160631330094002664623114932849748750133597981644211879876775152712455810561156822563516277427287519821825377172189098078588054218744502651362486312074299049827411287364394152088416344264507333910028334963236322832223131626120275047143595097509908485847952873359720389910688107591197776076145831904755122724625380301762018191541567429689572897442561142751161209032922556361696324300679072475311745787008438698507801118280802835124836175224521755859919459643659346863969704838999938222803085648984109158269178104149065681893843299510847325070076428245762870961079312406409386983909794319554549585206556783891941969099046862969374413854827878060093293933491997764692885201519234352095323996705519393007446570246307562693851258862204950203351067526889533799328847402209856359280770728114762127795781292700039463085684370945054146586730611540187394135377095096678370037938932147854455323172711443712562159651236162699816840507303969253791309901013189442208875656452483697534370468292018424717166791407902868292885532759480247581011932101046706851725906456866568779278129499066221296766471476801803489314338853427006184455361615113186052770377170418506413723166771326668032319035700547403411327299928588335224109066408814237273528347546874401484405960871366135640153996563955378422316720416586292745609550881435178475848962687633668706430227499333703309677753685644408705098609390099191206428362296649093724377050767116570218782184894174109836237680544574963172823980404109868317425656533564351692270889655570944845552487973187109885557038965450609263967035408370483395836750234662447841499227849492425484750797627377265535724710654923283785836730636199997266764473817574676175230839689758281353308944621703002275667800278382003308371291507271660989628900370762003216790627340467330457075303903665668831381886477183172886942295088198015327326835091863074266857869343480109646778329451625868265130222953721972148149422562304129043268311219436423078343280386062673089760837384350678248382857716174533950317441400152715229534721338891836677444929412321638557668390874770866152687523699586207400020282675576900213124210024543669299421249870568987180821965744353471283105031719499138456581616755863558120904532047366572020246985646171515098908345031762946193651333056683347444709398507781296817235461602204782296729526638284031447489326156252999625647119014444863920538996003547489629592874583070772710348047062969160654516317237089609863797199131088917612995817848860870155054891784962459235821461244598997704070702098538887375516303463879157617338542088008830614883720706132016444732980533683773017189817197461154009286338634456303709793863898786318358765525241058981411635169019996790255115003270780283585964629653236536969810698460041088034615986593710304042881063736915280344874615839958079885681532800464518777729341930577993550474947439898520120015618597661577189429906481856976375760990539022429222084709176184344473650393380954359875087592882211108212502760015559867674163010221020993095107214524769940132756103768187649649114626198318446514946521817260743813733570161413416910767507686716313765758143016072402599694746803277428870951752597417271284401775974241096661063246577161136096881686536060772349706231325262307345396128499396048513289928746511229450587950483964297550961019087677419349762208662971176796276735643135277794341786572010056723606073688816687469395439685901389564026413769883530899374483713707133301287855883242108982944677363879426145407242773180496834916610160240476488739730295956764867395765400029189606807847213557620278553391456687442696806468917643933614614900927719217007120869666021543494167860705679322998442298058730975542869620933513201509666978521920220852158358617207582859674253108266066039180601740951287601833106435312562795598425834100697902294210885025058610259008778539745952752370162884962975233449432018467123172166399129283235981630343661542674425089650667936852280383569634095819311705790850309772030422904482716061884997728031606236644862146300895215341679044613618201935640872443774534604616442707571584635760191948684090773290291689946956347692009552028895025975365550117953181232444859253014620074087102908269825918424526339974590969924852995255773487977934426898746503764551496456280446142256978257059042657836269196448046584554228147850960991603248555924057864553508455171921607847567320690195510644973665956468037514256102439297635367077190906284901849287934485643097802694232196985817543094666326715979963475837467391068017860745143324706250899530342777087983304835775987227658770140140833475782192123256421020581116889048419711504144427384122427745906719394747425490302035789084388700592527892231860256645464420871874510520783908196465839090076366677678451220785522980211841614972477239140878096296970006444515677224050006772317796743674767821936525549693199100562626122518035587009806285852597490642922009123894244879506988905944339825031964134536723841276743605629814227451621865399763460410076947558526375132427446300154185191611456378572769448739174402466260847819665263574139745716966133185838333686846790265815487908640883982960952292489964342438491134027039935076750853248704744040928044327980147824782222949182275352644649659684102746128701624460586465296464394432473744803547114004796737659298651768185019160079944216229519808316455010228004222293218582286493715268611075799298939821585656898350488231527576655893614606424424323940765195657616589588902971181685597866446955669941197471938286273424759812996159863722498750718748673664137313457427959707624381543888471555081818327492251005237551876279979295751660258262186882259723674988187097458264281048149767066440010448306504829324596715553765934166060596024767547645960267376439656975991476374997935060837058312989528938563782870144222692787145205306483570969734238087472384842863522149532528864402171274817384187996268552772097155968877227928449648434047875512314500541256855104665410192327031074214284342901387735107011732244489029796434505301385935002154144392744848690971119611924807065303103802143420829335847861057371903244659085928982182842978454556953353911288892773984288600617230693438170373961199239670762577073926601459064170424437610899802790041962801674960682190920261993823040569650896771764331964025555595459711982922232492028712887680235648335043888082548281552041215465835971173416831119859373081903947846349537963713640930011436208919535545314915092136395015170150338526233336426873911728668639834403960730330732843891053783335754528707732487098693460786387315620077053191785228714642974226774691378683887150517859853277226561210600349979782432928656103252289421631820598301371005371542469318363517604773857682497902616529213013209080794762563307949582272371075551531334925287919686106046430198050462986280235333736259802829227159962568105158514765850660002620805482097387963451497560234223785947972234443745625007890772205739046280254997693112628811064081246943740844239063276570920236361177682207074437885862488576143904649553695883255367529457133318676293428662413819325097514088551277851872525089080186923930446891600111406928505130485995252699214287497307711718038782327237578219407715162534989054639049309898762243164099308199092811224371267178622943856605883743173041567003846658096307984179237145252682398742477727810142649648116567793961806540045749571254168913749864275152606474362801079935640895043188260144939115985501858090675229553444257377031004621827579592191863898715550750984440914042160808512727421663296931673435120385514178538141512444611711750685354029443307757449800738021047319717932935570326680393948344619534743899115114839192836832917412005054244661599786715274486619797197956985361932814117962779792974900178347927837767246471086555910783970978281711476713202226081989093563907822957590002526457513287684870681672824954620153891581044594411782053950583433372593894811907370411804142513233126517178388203832519978806993640993168286434519531200136610649737432238831214198373325091241124421946346444746003778201200964131273377108640191352857671744720562730250099501645748784376212684313893111288461554157033120952420162890771232674790465982020151896885183753435843351766743893545597901385216034850253046497056176947839896009424190411742802817256195875683352608642366497010051924424377730260946069569515297105234166036512381206494620166471816083189770335932259871485591241197298191638584862581854699340179806565229204316524073091398030242670002838391583278359835347006115427203998441352073250226881483538364364502958922070280183251002548075958482013330321060129369557037656189001093320650676170701644770689075051169863778529491409697399373330493920336290632069943995459449293314405394809641769196068788226862986741150249022155248710607375489819317249596814527037267037659446326470762064771399293094409171806429120841513569694803868673532053616974501500151445589658597247209628558650791956812708149580716528388513905818797501801312964248734311848422035361807362061096204646728330981040570104774863483836862629439366623692726132973224358690288770196642630610549986532427626489974593478652207235922945415832077239306467760789661212142900902995107708964535044628258658679715841141037588719225765574129675873752348759585851170355898746917536552059223670823965088811019010180543605003512112686939394530747816335427317646704696797662101591884997250122111392721708832385721960869559172977591840893706439874278776760790589658390193932931385269425337003383726267669537023265043028314663411685416279611398710530662142360597703033868376565779266856585687457646783455902461970327372331155646827410606593227774010133067273501823122707353460022708454598626450467316452329204972274087423345536080518572870771494066800906309115115567618840038317606019719220882429111469676072637639561535360157107569436172579016482356525493504594395312016892992562317582023539566411125554769479224413381166192783220266353508441950617052756801533897685002613224312454606403479998906494346075954318260246781449558412039520982304252981205764901415544420670102104029803611449924090348066501443109138284254904641653051905594715041222942061138845236107755190552585649193945969156343282106955791865282284024472107152652833326869156187820730062356373481855824914728007586189188072387562326041365220042904043948590823072235801838993111559904787743862834888379962801546422909128647221048745294532003840189973015456926987459746526361347790453151974323754040109976146229887264559660054117148403489584924267948621392958595699294163073134708642918106946030398849761298458102718746915837015999780062276836770852952693459598715412047885976290746216849229125849009869596326293685186984508842805139026223962647094767633407532060030782414522250766834966937621763768122566835018793401997264674620892462367751255575205007699430590367956440415354567085379204765127345487952774455449599043470454158552638213950749985550291463682487046133690503249367126684917069874853676391364770442600211657976376219694177908502056217787642555642859515478918561431943162963249633367179673566896465882484301009199304095148935685521120635288144049745286550433309334820054574881708705344804010087310704121443525459317486837805347260312424515605722495926242794529185876891771706382910469044056351474919333285773889115551032433115585069802473848706935644032010906403551273192446093840340627179407951384113329462917388197022227392976136590901721050027586519499877949969006550742913183767802110001405878219560859851289320260109201441662908291683936988497390390786089207191018881377787589775083169073004144255061574469091084379178173578583701346859863907281673355243508739869409502680647374137151885260774565339190834913473368948157538484295106264500060765944121916807116705945731522351164139913725727478831355492605060446350984665631328212226749088873072599935550822966659095318682380507665798684014670384194594969384310042125043800432380682539360204862690432658334098959244282712829616050510520979661231279529937784850578067772730201508955812784677346914662405370229111544570532799379975798771227790348895313643780287922610411646327103959854832347796850658590064598971290450123735577533879385805622481549915319669799190530319802634339472045086997204248411379052896083838109650534504754823197609498458992410145965652650377906785074029777006628495983783628844809157306950535132503445394928101008493019215486706163982382963801949123023584545954319355201514453243203977625129856263724531130209722972324136017009380635872148742541137074611047914542005439386949642011592542626728721722691981754492366179723652434256030813598941628473269803340706701374863743816657415154727426136444214672861047933505278962163731952175488551756737179963989836719543744710369807142865661293497948203846618894369743562825782148797817319726470852771398754817167415657451360030768981310660400366520207060198084813323692963953263144509802305163841765995854673120239662722687937240930634014498058489218941081728830189003200836808088001504825911982883550201449052010373866170612761681129717045832029097999608734249352516895528523881540493240877218294345284586381029033667544103015930386640706217009922978400208867507302264316108205689184885393231223601995501006586235658995249415366577852209142871069474570097315126924445633718845521458779235436628419613204346331114882160520152786897951322465321614176926955139689838691783524840235407919407668988227870071953422550170049178202569085261801124062792965914098074886007956291597871503976245840057005800306724053163345217863486444101611787224423460415218139085693772536599527988081541813215240432412530865045286515235243619612285112860816924428545759644330964784595541137269774698740185694648465389349564288643728489361756171650831831954670003864158223641453789960395220158407939249791916931565139755096090257009447731597801817268020511904050862185501006609194615324582677278863591991811865866293551714897271431327653643134497856790274541643609220644934965685500971227382374306614972020350452482781863097925948864568039189357711791605154815753200957789806901356541522842915183239825764061178247078895970667503816164839515234762499385576310745310120316733016219421448921289773839128850625993130183727624759878112793853170458701881639201959712708422260221681909488878542138909235299194427157519044765699455877322020551193323321461657271040709868663731901220763224781931409336157850129489368513106240088933418070926559262763938935585099399876036923505215683143481472428187360755522477514300163228448416753981992635992664066285667910363115666086558157500355029006089410487621305195454644187642701278926349017253075185329055354852297115120502890714309760150890290730476975511142878642212419711811508384691296691629006249947201695328992861894687357621091755682798610641259191965215760039333682327537925260901975595769626204602197779529092147902573238870947513020834403100885636837730686599104489745573861524890193907409074822669085103101172240235403646892909418177389453773050955581035900229785180984263831003768475134413872567824734634410629180581098657278105621857473070633290538276005332269143602729178571723228486056129861609968363271073303342711161168146777579229694703183914871420676095874561126614895371902963623433530595370785881704004909472799462285062602171065072472719854603627506445248390397473446258596565998414671943411571321693305679801092252030341052872131881623761877013488173287822392649765701098431223519918588559017840116987080299141181626066992521406309883221970302779250874171099774759854991071846292632848889519359412846780699951812581380464149851243624186643215149213350588054092643167318657936369375679958285440821809975125210600381482893491479045648610175490943975480012217674699888240630607975203108364164684467884282618412758361290771562879579713415689319852058996172305298164073041271447980103562434528296378848198112868078935237822408531318055501042046694087685916112044606451093050448742245968092282073276535013994179550268837596607279820236786368477542937677701687883655019646115669755464303609989787554629626306575609641397795821831873964422240429019118674001935152341073778428140634376885836820605492456823258484959769195513797197719737133479385540362581459116465388247598206442212604722557641574155208530846652828385122880856194944715124990774255781875043934039554630336869883305831184605440016837211358632333234641873202490339680044037072346212954561233992137324521796707888418442158515779372322746160264913150126115912021664099691710394201792434464284911843517207996195652805539684001337039904799737176449707541856746360445096837683917272478249695541983244856712721813967483443892875917834161735038134957891950139582980389493358134897137414622819673980816633315378501139868604160773890437668902475036209604356772392255921470354538136407878566941832623448937531507898425179309021221341847994198395149145490485808506773160984227177256787215164083832358313956247619843472959683486881135485175340064338328149853091014573834035282309454222111253212675059084006647628312478107520664687910481937400789835554124909665011100815818008482843943729073034252734114247847623275233638438641123359264064954483111159643805023159388101941623256026450962695671404685402057802715980921075157140307995267793964744264186596048749200363305414222820593334834171305256806931942079468715665250805861872937482704087627862381952350302314257475660958243920242960985310927752561081630496687766533263069319563231774999052005238913696628689529067692649481603221825379872891927787534104881204194058068055296571216010187938368538380500298668034835926979030546105565494131239527110099029188469394829792979130257689411376231057458434476409115784472168176937413431486865324036708624953087221852630508676491873123817574963841184784058734492099186510569516920370371778806465480055728137951179563590043738050554543766432845761899479820668741013404531880334001988802983888221889021356340430912431948989069454841139183277190274029163245937499557002551434485419612541772051799967240287457840500729442449966708803062630192214574906514340411217861063129241214518981059792666973980957678317602538492449782824232334230487074745345541602636557068141499915311656920901189178587386515382400106755056375291473090763582902477090677445485275607931365087550774752226496193321605420009269020007345335285363896452264432258398303104962584229250228963079514469578675180062767795692350256272069160482634736751498833480928348231379781855404604286642341244848480731891495149050445888526069872430103021447201066980839451301741824723519418605980884678015683074016060235759523042897637238098023960269905167660324020610860679097066406682822960648418559040858219128396136351396827079337661486422301854526500620557144536316034528337337672651166845075069234073651855016703262039670073139602371981901864275325057829245316629521293396710430957857302219629174392552645350781167895900247143122384203721654278201993748156651189433046998422116832912137473690213047001036035805576197089636882628990303113090985299069674942621032188466117218468319753493758553586312640324707747496735227446129018993906321905379626104562954233650782554366192983495109127993097474712192826295810232833631136912370884049943658218846117594053785549027694577619531122596621354939609235964981247055462830853957985043072224912556346537535288068565478100089531859674909083936787246697887329926866494400913363298130998801526275404601852336564493553824299386913347562959676071935438187167426275658893588090883043158567090066680873203343500160102892599381124130771019596945560299928704717165848958397083710872805828899873005094277155061991317443538243938949299079279739650669298040437308183329956390845238717285813947931850227328081539543551622142876219198955834787280748824023831864352203493816874431177064628494421960699003114036190445624978568428205626912106827025179830555889768444589803603383515239218925801671608949789522873369460257475160040288354172718832163573776064409920153493627919901368600111211255965125661668340418496110661229751530021398483297399159699934806858967479778910602554652345866741829723034971191884479093648637831100118512733371731358020015554719151998360605625034542603584445506093680635767410974039468379499119859095951923840296512098156443983833123554418627817568444365144472101587942212457490201818426907942206181921630856134980224892196695006680273985848717689693372789953025915536918237173879833564237949931079237305678342339388294498813195024578816437793613696548959681149498042694829058494203311969398520024217625441309219252968516380863341394822325683307585599472074192233359696010287697335514048568876168010179527502042446432100015496918430237301746122859499236152546768183257960093299504815420168880408861357878326805964056344535659796757660664034303048618431493163726508312545062694371402920112792630638143096571707473835459101846526939956971300472268679854551405672587120172390314765428773554320009690415615409793229678607035857902598900746004077171668835885764410018495124728206173873794476121783134145589904711193307163819576791653422172696492886609381597845715735549150827756550689661468602379650677527940796168680918559085897537296113555573325954286368887036007739837848782100528689154765339470907708382236861603977583611392251205707433137936706676330004063903082396037575977907087706442795034920904652547720647241926122086690274383067277992103786333997871917982369107026912331851995035593895387711458506591328998770228038245065401667439853678594166441860673537499955008397060947360585098493453441777312238311064085336869185371426705555297707809853801106204055899697874535906333148828192380707942853267645736503375026623283381242197199877644222457079175848288041206159335132802551248687696493345758236281923525585834300491023348445823714704254620681105892355016893515686627802862606878289726950473649660668096887165442892570893083046310962149386009536833765101751059352975616947799299251057132193557591879473683170865824623297054630131911431104193671065081797730298769499072224172521172037155807613826550060141620108307710872187580353568443303556920401542411839050212122006937812638628217742080338593893224843249601441294262085930276545102245152845774713680288249725384725795065409424309104295371992887257844131435960106786804422878249855919721968340514150392113010596498747127981709322895961580636162251908686288335021603533647528071032128336750672621012420441521014444910868121554787641510164154055745552973400918171477891215677515579544135758328399082910424263475352592763828398948576196203529518364103896067663665595982813625351235820266867414124557715547338604982522879509738776895564851501907769189597756849660629417113980794503617415141482892193333352520828991907110679204916531213582477725355451692149098761981269856729002679903583422933715900165726342666537051252526417496651590374826219671700111840342263175157737382735859014596041468495028959728291204235944046375552913449346440760699253053567985678563298363689656827378350150818067332707500626070245337654539251429538781958582742389316124409887132673283713908100600875840195036395371977915157314352735417808777542365460026934473093045087870686884027449978462252283166861035855649844202763783815590539061766058136339703361998516178190926657837055183556750646849449022605990163655342799197749665090560439390431311362940118056701252286573502121598710364495904870105816371936123526092556072631288973405101044996888664150925463864498567466122956144811841111871215196628556147903985345311708825104549943978212956980397063442770084455453855954968047318186268052346634034581349768660780473998410767811881839915490624328138266301010151382675917512936273634481638264874012717823235204570691438002942498067189356212513651128212959319601231184330231427200535783679996336926861686991308552161966752741590130594383793274919498869903427728482317541826680556046440373530144441253695443660676062725817446076664866046006651044732026864104914530572297516781160609939182317687643411453665191327809264375492191601227504767016427810721301675178615811271710337815335103687953412344203199394154904125068490971705334721759174061335757123089187554389310965374844637709377743150379483331595818226225883552130157840315637343349392891631465299456357880093911423960303648123791017041331416973151542655670695388452480597703278737500186557050705373506087655676129149220129128935053225225551160890893618662021501824712884185311163207091263059561751728706594821876567859275321821610839279721926203805514756545711395022663913185444867623665351859476170665603952821866507915458155100642895605993019311216819672579199824094989830339147475835009971095852780863841901668033106442148036002049570101279021009124778812622511115261854696495319591716536116652829216877766656944082052569158506658292588962691240524590828148293367285986936807724846891090465526780667876164859970239295384288894593569803814899537621543057095756172623822584871564893293756817081645570577419936246051312406166587506440909374510810926642866904639137505714346706273212796561887888852534976116942181968545242885754492494815655300594244149943885572617998716862928598702558145380695716747108461137957528669825165436221520810731185277613377616080607308561394797007825536851018191697981137907801203045528255658203278687136166053363219555791952084810714625126962263687367305900104834274561987180994164179066531936271378261141464559128061874017605352395353893536187488233270932459081260140027865333845805040965937851239285982431577439470128245818615749338153182053119672620534721842891677783981236613986932584957152188974970629065491793461242772870158271162517109793531644181997202313342156641982890448673825491370527344035647551173154354200378725949266355578899308323961806255142589070493195256649357593860213973083935120716212271448734447407107736523059303666412329984159871832283419692194697568139624258422371379958965991976786859412409895152169804039323560894622128379241555374538233238488285904904017961994274649337746539980064202132658188249858518426875318618524261385724630040494207170288633656604478253950743506990846823336902093717915395789404548825363360257152768486585806677807250256994042676003482282979673320530850932420568440158492399369271599129956482574498358602746393999198938280038681360868383735048480635729009035130470612046325554687764063892075448055735793142560773653380605182644046397356212926222818448608329978171014273886601416237240033973186608952052179108214050063666966357428362101936250142655543224780867336509870567124453092946633353144849151987099241205383382695403226631188633189080013986912086048960977925828737169383578602482238101427870985726143355274080256510013522131829541672365086821790171785398689549610544527540899516955709091360382826690496959350393752242394916960803657863468649670998035099262273175786895910331782553814870382580002743683761948732095772503957687993097180530958594333325370383180768105903366678548403739961350257207135471496531987699317266106279842084880280369095378384171869320182769121478669846266506350173804178349037350368655331094111086348692328544485707553993147881414514459172713192446248135014204928144773802292763151504220703813238131762386543709090673521233635393898296190088813319050302006357676009451090277932797914923787068909542704435458729849308227513238617383001211220868320247686970112663784424842985848741276337351389862805077799725198593948880557157783234776148534891790553678896152990929211453263361512430511962429721609705071815164256131212720925902605370746613872091354282076099942373680979238652698442236773151742839617595814014789710584800488014832165098201511727982935603817047491406310762349231551125211265875532832867120408194681314339299022187743260828894519364846099940275778833541252226452615473063719751880880953041956916374386757985451824252918298757153695394121471563268104644551269000280087949078968467290908325245351146648805630563161202121276029583098749889019034865112871494247504127717513129721054982964410079991928575293075064462101551130147107246111044017918514717874117664882874148406250716737337656722853192098132777025444020717844250357497796746493837779550973170210159545340339975332451477118385421922851082043276577775644992009280316762287523324813572558715415035499892663133879584540022870242563827539194289664795822176604000089984285451660160417044341270930425999608899980940354312806847989872359887750177454240109821322178204798158530609775339362422989237604224179602509065470206562590722010853330149912134630336239972319214458587401822029029890890305437660686818865452111434819827311276211130255718404571188883602230397522947278722179362336917091595801079164398145595413984977573703437481094242562420877081888579941057211359611127652874444065677782304011010658955933636275127245849769364673801655737764230405837594277879016196823469641765024697592100864689679272414054207783042932642099610293480533804095169073101721697619184027064296229880197630957908025584344041821093778075682007940141911284816961304348789834231229886027395327462394100383156386168987660984321223000245538417854179495395299386894723177899714321965993923320495183078434909390324007842462066761823448116916142328872460522591121966524355256369612155858481118208665971777183527974375033976645014980156480840222259900872727811956557264202541899591069065322060152236190736476909651462539211215154279691762812926403644410532721749271286428426736977903905530071899543813269971825035064132684563289850428285498007898773845080882362185858643134121403107787772781770884396426540603619578324173137006044007406925923662921471885140547236174782506689198883730789580071922740817273466945188954018980503445037740212701227762291452207031702774313917122405817781129776220864958936492121181297454950598806634613860117977716895273055621540097175654820552731516316528576634566216158728579086497890885908097065631085718498140073321062345924189089451921007413595209555724532692014278056436521832430076144192311652083502055237559146016615934953517350664683595352774413671074639948553219350350218874870217722969340825554329457712935488478009398637534084432686771879307091953421882854031164080085152587359948874305815026190617328210580839598162934865514553131836517346189942094981880709562564580507018805710792651148526091388820664809935534553277560921976532108841151233415670908137426635177407008324696838305792937968438388645774802012495571638936615913625749769159276412386959779528221423905876269982640853386383777098677415762648159823959782413577057351893239030576081511767803767396670742799799508667363958079977503199505058349279861531743541412093003287929446969239484611718715997566792802670368760397317845835183832257551665148534695034048835572939476190967035562293030342695674667818875171653954789890107140896973499046780187162602971584698511379059152048299670994941982549239235836414738404825851407154282348066325190162525302554878844277774309197866720234343373570847800846768045014535599987036082370086328263837148489472484948132951396515491347319655327520499317499668714969572129212978982631041624377076813324754082067912282351774196279894544540477433760235998549870206123941704494131400932610752945400157852359116235485317261006273849134541143045056077073953992380281616709945295271159498505659688256086360755934184697940295325980598016517987287441329763442798390407636058975972376033959531200292344520388741675652649367831546652591724511176506240642309901395006585304555212489139839506020977471184170577729139907071903995994940573132966007305013125834858102989395620438463429383742111276352160221699103368675732107188486087866847183116713809878353494404498199702851855218144150515897713883162046389245566387673304264769949656185776250478541956728705024017627606055989797178479139962754741679807320033302073634614582543520054120906241781027374448859867393397801387995649374977450399617890405941309016169082179477848158921649972630001191178737428262375259801601624335762706985575069068810583362993434358986404655679229426188069349772359537429288187075973213019948211230287620472812769111358767335761021168273229469173155822041780907705092267762015509521967379445886645178237701291445085825505562950271909731898497611519937002841287369578880997921369967597126454535324665246395909731788897172391811451360777803644521361029085119510983764552703352851065184107298240775882930385715611176985907438510166960699872162000571436866925194858576418664146661676778585224030860285679136407856114477986909724953185506274169624836793924846913529749083878841425955758128414160567018962264613622207632941867344892024641291809180139396564433756258774246210890391379121537128623254511643301885685927598322053166511584151824050997737159214723706870378705188180116442422297878096130103625669974777240187465919806410152116501595167592768560359178186076150555162716637515712334408985123750563315427160767991049168281309653158864162760024992317209040759744295079190984059194963546898012819898856058026651038945113240526173399676619606307954171695070900040449612805543434441687924321986519118351943579622611557023508904883162735783072613310946342036906843293135144145003340645963306536422983938351562502930909110795250619334730969529135538506569710066133464344406742165975560650783781867787257910491219252389988572491696524053851968961915223854271057592233300919964759744234433958625067806964346863784702922822303582819578082306333847664211354625715343506174279705340274443922777363130197143093921047250319328166599453377006754260419130548132094524713091489720103389587502628823352226833315867180590072710198905954060267809048115680595897643925717563382448106250933516179848000707256276224289653840471055061408899053197457177093807304759374849910248365461770584036469678145451465796255610631773679596483038296746824296235649112997673774620953185854657805359033512170919159219750739427124013866760798765814897188037394934587175337595045119312353002481805879951526411825796269259835470646152444820947718680650550801065562482408816490835427762052771173822963939560967551702912470230364151828941649774452981375576436381303240046499971643289513766740863220773137106231437542664892641913921299565329029091962627835592286348220594548859042385284343882246168626929833747826401661944698073163983790844886486647550385399458624536539344328404225987709777148902918803509342558071776140164077425050380247473844348856323278240185995674332097893692157268709300155953725421027752476087958219057994215335605331787249997749836512246793158018678488504392482329310419941523450463990066645086809296269651106382921055542226124760475525862660654725155722440593899361984516232439772966098074031442302832063239230304603689378446785559810231718985223393825957228961992152685586963129475458799775332681423611026963371322110613689984628593843344008055556847153889093752894412363814331587857926252567243405310878870553862143411700713517041900078512870740881975165452603430602954202498190373150461238953766740278774369081038603862055316745677545930607272831330854824696162386127723166634005095945314810381631193678719069531626261021711531786119473700209804240342355350287604089086787404401051671208074223313277794364865108464943853725772475263458318930206278188441357831640182728822467283838218614881109439212297806219065203050130184113873165104899146326485728186049467042200104272080726232827838617544266988999286562753555957028628065142477422198078827241758175352547528873344732192935754567014768324560706284930398063122562955045556176573417263665989889232850446923540188403134531969648031915728413046022495156144260740829116890210166314426339781681477450734453194243393843968335648265644087107895709639526818262204913247832380222886724187238774283861717009047980050979648313387889348803480220485328447428850742023636227993829926692070777768749968337788912864808971000908767359018321249427548997746776948082735507281035506901228584201009146749704513039791844176665649591795216127338833392305119890893572306806319030534080631311888940193074197193455459607669646453479191622559628750810010856081188928251522262818020856146589923188061822248233535305089327644294535565510325882042573074632019088314926828828081225695632976617993223013138397813302421518535914215545011764023992831275152216831095768894072047978671531879801380630869976967762373595201653546230696679594177352371909259079124689486522661832658316364986941028530101664641551290244988070913257198696640659796951981943644859851085712627689548777517105828078215929681261089135597910069477991504385536058074472194370681732773546075334173454580116075303465400797864748096012358068864647957155164104830676708808774444411583231066484727894061811169959042405673035093681624073819860733245855673640569663782650267736391622570657945390034944456235628876290005113822662370756557115820850851721082154709396327204586312902556132365648010486754112392329988777835397639066004290979421097560420901939153414783923647490635066850121215542766523228512748205863998691427944373222895545469616623602060597086164395396761171806158498887593118759334344793854838756792311997478166925486380904346139835472068808007434012987152525605789988219915291639636957794097065172917373119804071521445367661813563662593697442490889070987800544530921628742666062828748542424952657545080149496279389431452743255615490246619699417365354043548378893036797751900202886076168916007300943193955153216699244060858402802641835429032303040640942286488794501105018026295185135511737995230656695541427384536887944237583904218220031031746673564401689647638281870823309143734520795835806996199107955106712339775778279958207288533952984281740641206822383936149467809443529259006410123412347899364456367174047908566344874775887241648851495163922507021373639283622083747238169912301549194839206445497794948055003373122683024466618290529515980189198782104319595024437016301199176796014875465093823343796020542779242773288360465276658071911047763311025573081555480993683795162979955980214699106929853498929833224907543849623076112889773944963773281141402197415414780094895595413484165075298288032442569082918385014115492050649907346756072665084348674365183533503527358471608495606817389045583330325030763635000770310594686897588606434729760319447737113410046413424907961206202998112459806783051016918390292717748480881225367522353377255037015289476153554924211904428697633980103189205700107265574469724269401995779939057867154932021356146598798501804451873911833814513917647183071233339869729872951579042622635871062852817554040196518409985718485856635237009703954295379876935980780033604981207000523553202357652976988086529478774924425708110242838292566763579271606301348917701237326549448261019116397850757178638425189014798811901508509808813260196967726720311981686606108932417615255053614501157018841382266723689546370135003560415837033886559535654704583738101628217164404976650172495871153169328678609940623387853521427349940549794122169099282219252818667487277315384375058730380515832298966676226655462933544814904143377540412409882305187410474135359585739032243357226283412855659925194252256938748118421280370767062169590771624449892009630373274593217172539750459166746002169426905469847873000739657166398406504537796637267479139182697010130823663300679473260425300947058354291280912001315278783527723431686462296251392690035413179188188064920891107593596068370653718073347011083502939925180147306050757040843708386658789133019178904515569171356409893348716430287895915851521603162971380542374318110583338658116800720661846846786273913381908485260694549163060658840526019068719644825243298608399480898335109687736419434211404043097069321203265988209107140433683848755516437594091118096581887639078033133469364187245627385898047905206305007423088755934242753697488783421750429240739521611555617193601151013468871417414520929387633137281785909735466664395067464830546400449028076859286213132217791385984832559952345710519010391915078167528136101987195753468428933923903643354449213627510665237236476298775874802613393700506073506592682481329898584160115923500458413722438168541570616383272324191661201510034346938609394170111313305760602700225160649515660425418357460843006935743455440882743695481421404398408469385839779622001245007672714966728650181749011009389178266918356879573450165711229322707993687001968127138268855951078783556430038795086439951546695478107308676993107834089211448786936316105839159186467179482099176600424548256619023355697951856476360208141044376828918472683047074535349643223553727556986911701001555321326271381212274824583929820537592579222262276609446384409964854194476482310758271705071552463613517918434577437070614299226439011207999681962462574164740707425395684312703089934218457639048628967936067429387447805590320423918741834063176740862010743631878882400292976426299158503955284162197992718866802362273226721481263516076526659129616675995620563051191761082064703363548002133357305257241322673795390694811465178405224756689684717355734397718775807774687352047721777741111406512941040047263078708348769468976638175112466931778767561154361666099969638601623397991129526695751963085176678292816149196869028749867965529320878707117622846834354151925422907548381578302899347176777744886246440482376239873536161997340351753566500176886128045590148021362872879614257878317856805508719581453040240395062562050333171274065482855397343431893906851288134433949565771357539175043549253006063541629450899599096092818167890138911343952185927315938092828505067763685748220645140726012571466996642216035216007166697221188726041072327066072138397602883738353197504165422639329264136301457699952766136526606911075233352935250981317330224064695415328986531399814042703250024798108949920634873928912345108477298604523257632992051871927780128587965440079104421378569612701521859373827535124293503257906669390433914870857372324203232515405079067120212700600655802350786528255124597486267633322144105400817850525303359362154939533208195458162998915220210800608574950926758939932749383338083887792379910883047314726272800782704972725211136076085468979996145024873984264780464580687239292489264856833727057965172124378867606371830877930744414255993411373412343398289434481815770708727474714141035951299476234477982733317294875392291039842201718757776125776832978802558126243254701482075325398391352949427442987438645894703515468855243453541874433701592886988312732858456493574097211690728088814832190632959814982978077975837926884034808194497292244936812404139450727055885371317790900565998008525000629718894653579753395195438135132931770532956330190504677294847718394781011968027729977507300886804566148008673914356218829991938489229795160292799095128439324277770829795070079094308274994770844908958472101252098229413597156846592803444015520347221375469481191673496621294505864551121466440438176733596042723814463189282599177847294659478637843536492179013090836985581175414472478092928285967250616730588571517770462772065087770040571310153409464156718221250762879998553626819174765191517432110417258878679853647244346146214790933141434884641210938473586273715826941930314112229867164794137165985730465494398041814473357630024137784059950971442095346130638230088357445054885220214280450431441402895198575481134598140361394672877400252406560524459382653401621637773354140846799938994382689822988833443509520995144876125674768426204105583617987386011450023030594592803155103041862683705238073817811298981313259045264212677831330260799855020399686897393886671220146528868379459891826593399307559920798533801540935477766520806957556259601536125849798938845086807311523066311238293879249931449358711922843842784747975267167941823343479207957916591332989308025342277424984752338326951353256669840170806481535837426956715169768823736282553589033545683970258343010891168830523909111187109661033412361858939291019225475445819449436906527924242479394955689460915064953892381749550989063636718012667436875427602685230439201028559028194749855054731435806577644270308557686816143074686652253388788308077905452889708209501385561599023457386297380578099891418918551826407093253986927486747741511137994382325083061046956414347756869078864541261606835222065163587066740239619341964926373754041391817056479123813354292264337563960086846417950566492629541569188778881189948927979893774492885064923801397342846288758947749382431660295764782450597075467843395918611392547493012193821159813177964529896208713420302721375703106223852354261510037101400853325216658994724149945543171262873240123284232508145683075035364216817901066742346394551108119217792373201338475518474259899060775697920134702814169845817828495634792122941395775034560077066175209771336773436406489779836379127686824201278741357994382856008647054628643260472072689950969433787137591087169789768722526912870328506518772988764523116677504045201783571037109045814834012678780610040752130009176360629125750377851398693610655136965978190372821921851833488861712909356991059222377073446892421049237611792040005508848409504514992011675662944605204037645628149305959202547355405791068735507305505515533780207568252901805302144569713229318453574432079910329762694390660702669106067116873690413558410884674039839378687696432570397735438589320904995567488677615752914193946366550595364307431739797799122002167019448271038523135688761296749620727374761243853002227235689756208420223932742751974987601350919772432930069050295864365974410535982212713745193773072420666590360522032208929664411554664557449741394743421510267282764544624260690890420611568449956379511644813680670972504088145648943994058977678506158712750221090305781896560838256716207087086553985283504559706372787946844120284205491182015162239344312874021894774403791817135958987479447262019380201883540032430173727937377990961454361861201041438791675803042783892559333112909964541722293198602665339517342600643763016120213101325931312361424329044509009183166842285822475993108060224649945654721063820886399904433135308138650032625672288152557695681206810483941453392227885633928255009526302633539433798410636614710318237231531417214648957693219565824554463981453868724103204437587337896475972968450463477613247878342313971083388842947743821749677962905782549727471830157836383482306497605790613743034473755751321519334191687843645824744494375847969222631398503879778219045675999096624768724894945975719767954091829472299960277217144943470371488064331920029195102609145127861763825131504189313097202976545965410505367069655564892248139981283346838075475421721054550432267649398823690200766050853734412815661052262141967320744906253729436630475291378852981468859270138043637846580841897080271091805461583318965048549530197668569294525523633064161741021266717803108848976315652841414717202919947969690113823045597930753091627313211401335279499854968849813639291750761676485028152337273495773441546169277293201501787466809191548469675915082066656310591266604560388585883416482796469964959996172270399389801677195268662593571227396199562974100558012608843661402488379099039741769950473127448060654491545092975826884883872424047052339230447929803945296944611375693281985867520935908974234075368332632825306132579337055077229311818334332609536922979827840908486588831784746496691270584953585484322686788148565467867865864273399467988627028754920302820942386817512852302235347836085267135889925675716405365524992159208415659765335650235356364635505283464047343587568425876129498800581671603293462744619294863965915818468098108513394890276887531126109173308818234583521890745757662702369466852873763025918755405577123920305828963222568644213063490737421797120639542799376566278068151640268166699884719316640331316919765398760506229001386388367960102536986446267223035435914198439993497125482057785665279508363283869761327004162625402771397874260928267488576891276958368916851704575371329333416654422820205759205209070450439578267646303658154422269667810888384128965634156007480382561486789839960643863833909157202025461215334453961131588752333245902954632341067379651088084445297306226397720686038834427088046113227878443588037522248786161450461315699192411333345496070332517787754425207026036425248806927370339693413015156349200911156241438582626824512634152746470095874956631394093626204937317717443982579588217687279986905037801649445437306991912114253944052919192397306442940580492727852423893560983063101660682788304642955298532135541201120893542070082767641383473769291370279069256445559544165956184117967285267250289224361663202318519348454731340436116204494586950496945169242465129500635571392676599498666721107748749077661030573673979395609879980934337734106040389061340460316551664751792945942023397499470897680267286260733386250678079479464570296708824684820420048180309893541479503806407780027470752486870998000177779318150781993032543616397867248306028366576424466328443413593879485718376244781771814569172184582401381975715883525204451718830523791094374712530836313315468993074265940919305631488187722346614080320592813261353306254844454307959426643686014333426089058569579479541767019154883057519893121492865559922279193359047869766139867279424692912019203345363996936158082637856063699075313358699512786888517960653645247695730860134919376581821632090571119989041862764783644004093929577438724709958923715587336525867768896285968453980278435324375523977559714322712172843000672258344709765094536272285475622063231279560765986793829577680169990087883373631460896596584387576914494971421628697275531080469718878888771041235300303804382293129301831138152268033103089402331538994094182856757192872056900957798517087322506143139991363160797011320012558934267876584500848952362260757214808180295360692178284408516721194076232400354748087546980453795489014777944462693975927802629538383932886403602851408787137601862558418488532321172103891187252028180490951491159990665790788804436866595554891476310927036122717489890063626321552152798434730565962005946858184059579393936610944773932072241554307466841396982820911351439892532822269190898403989609219714079184996555441256580684408518218614252940542303037257050436214478965986328140322552602574508053537432188244503101266362002210689391623952785303707071824022013966763097967700332171189058326308041586346078294337101161230731682354517316507640582846402799038142257056266087511405076857010777866637049744203357244776199002385578730192812887974352151190048587190609420076004698700945117261604287321313842503256563786667965364959731231303639230837223260241953398520700379319112519332561280031738822689109083356668994683797625984959667813025584957450173238700122159534128419889387345016052706707126891992333997999974474661389526985083511471078272313459570532099534331259686596224704051123678201400043692564661518036215093898175863506924390737393123960452856887119172234926305355324476638517498719836439448005028528722659898971408674434081301676234080171708671112399404090768235968680319425879099967731586373536731909412967026912799284771188640962183753362088456431864780988392312180388930210448769973086120810752661251251402262641472349203404872791125930124509721989524050790570793679220406348262805243287203267879260857236187761777361783887885902184253927425939543317833600489003287836606264748001772426388277370885422816765393610840917167718770076297299887081523645999368755847743773933221168287034713638675810009224077757782329818771974049294323465543411782887889975121018977824162168452888907855644905417246573663471312242971141473555067874852848185145069861120221852512835884570647489385312685782122192602962569498719869441037021174509093119683170708035288307991157405474816911386446241118624291875390561248164298088414854251253160473091933946626089704392500927883661573701498894290231555364350916991648431331914746078928645669236931126233199121645605452001353813545396888330838161479270098902327839434199973365618702663463000211529122107515718048922924974909481364776980207909437902028210635369332043176404149032732447712515882386561511235591600939596041845416367588958734744401087134552840029259037949665169737459985198037545632832861888995705870364041093591671224687374980225643288337753978745732863932378680243385984719343804952543281636965908710636355744644444217658036569245023462685758663703943623384669097239332912950267986081241187515526349598501620166973420527390881375184871894751209663036604432977790516059265789350075213995924313256546904299440323646667994498635491253334119642506638596647537712726845545427635602594596759476258030255331326373069820563642325312078859823413235832878979417681417117423136469921248515876924619236564695481715414378669340879116631357005280260175140476296889065692022825127589783849224203339340995928459782777179425542867270639877132333822801875436278016494435881330784925174891979467850579746598490683577532932097113831105529486768977538457460328118593695415732636817359932017188185115148066828061619514841744226526087677996074972299151980881162759199743680183961143386894505684826353035936748830624411463372521476063027679713277220462959088041405306853629465856442750574330449188826917962795496315073281900794417259387215378319052410423882356398035400221538425054191954823234911462630476123370749912241367075113227048792853704094538389707130839296835207777460844384871900566519876210289937370364388780742307110603989721807997470362897332548460095542406769055019983083587901989110949688009047062920959785184796195562425846236425078966353184373958435828551733362391206295548327730639357596606086915765586190865052877650014298777826433046876485286551488811400993018224204813976399113803511906967768236827402143603695127169241347428667644479382570904216194558193330782817728675986186347320862352914587200484999467751635899097618191337009554936292318462429947002231210016085689740516809368557775855628632592336181274467029829046249994215936001313257683082582511585324361799966848650223530931705923650374028081710950003777732982012666906296138214347367213266185637007168574813312485026603505090585907081268427221919496038444929304241106489507925904265198373228242346745922851662246741751727012026457752792498667015015044740957613862462887379344752668298965570699681237949081872631629906209171869184146760462709057578406253806779116366244387450581935768977827087096346465348284484019085613771901955480980655951322433664515157636434817606874201696101860660917745844268614857335286428244983784224932610351701654247216112814048366446834830365323509330978521280633496932244157136528351257251778350210292964048312048102894831749113359136870161904018215991670890889641771602386464745905372960918136258287432028713741459956561740277325852511508460666423124954119444492779783931986754961255223218188830437764621038158829954867813957875225704851353256862744902337410250302441534494979426194724036382813348318701890953171093028394151583607378037464374981317689924740142241729386638957216628418988973659194461678925070267142029149143435418992724493327560456338917291009324085586985162623435582735440071563537249547954946483018476017400718088923326266120879026642315740126184989241875482770472142572236873811871581774239264135306921717897990443676990636840837557438895195165976291758250624436199280572471844636354975596327314411415304327416834637285635554006342381488007184833510423802920237227087957068230531641744382059823069513723652063294115208155525416663759427389618174093299221132050948085962742075349235658296711545759790396468570902758519819662221497244612712845343647581337774844619052404309462931637385668625345251359347957891529886905047669109192268968923752212405240341074839550127016537021209469994996415602086137612883791424046443436729363409613455294460265088898697453272908764483694439852641781610038737854803924047952784350071438980449264358734031687552800012341129885801624719558288941679250953940324954508337971198256813580644792176523922915722080928157075511110275328979624247705277766076920349287161361937347556062359340032817263414762617488231706006206665886619962227996756141702176625048465773719271668858626835353844382866930164035191151428806703908257496873152460897844925141993388306168271071355522787067427758376229702578290619284993437719472845789170114047569462770323677638092408844034565307929479125306338824272202544876254493090079451669455167719601996879018055680101348155730596812822601922149395145680310380869625064807958032409412796220768087968759289808421489693206448923109835793308205698821383329588661763418220522197472439595180919821574669042871985516099520503629459909987848502397530777883627420050454409410940404921081375295056625258845425863994004641348179523393734714882099700602320298481591065446821494558908428568054264768240316550451588354060363990931797043323931030689467634278372888729205587735229114612895176647108560020881140690531809808583444233981734313791622059886381283129667709599535411192489865481857442178905494105532896772705108326064296419430518805124785619976083967793429702816264939892523546039556526794189881723890914361902439664533998037019770507218836730867937856590730219205403599247649175812836779521605830307089533133978248676960352782617188395506521443990678322585843151673452579706848266345125964846775131645438854239678281522164436433373307229779837142113781572573119272602494732703629368303957892914607859818667817285377201901290363221883680339215108893312079417427783081540807227148194551347120338462122125015724661042502241020333949264936474551717433559550080191401069425265883614545969775603838239425620231697120034168402642108217336208911258624057996523539044466593032059722413600485112951155250774317624698088284452375626674128698229545479698439922675960181943330308217042677809813691766217536755749385283338351863142911257525600886345202886036473249883027360265808289040178872396172846953398230902034395081277393415307899460907435230070897864115178072592747264433620384744704887918287567080697047554607916861067600708045105895466533316246855136030914234018943802717893975343474712167952144454203353403042504914596231861865275091535354905841872684623563790123339449002979940737388993226844437251906714111098720388054808106657355434456358516575131665196619705807813160082606549754665802939765661824342090992157755294915169157647476417276327872259537721549902241892273936123751472165495361773203988629759797724605411538899085393813247486054176676563661493947865040846037037625172978509950169457617449030183668039362515818390977568088143484301135762604660482109819990624531206754049344137307740848042540734070117063586893283873800270399373240850800223062726399081183462787677477674517491987781327869418266837619584019082001124255710522920062404203578246384935424003089885719619845096214455024205287023258881853409337810860037123556956870064955687630457365789175179622864565465137025886735618000132136510253657351348674256566047418993916994554882393060965286324103780592751423255889368642383886137685655210085234995806122486178278726925746417489377568699357547414949109511566395528509065294183520972341283466097727744192471512933055374545129437332699589971369308904498372121420339819107752245248783868166383604798725749442525149939418709092497013011761255249893873997823206121254204235084352335439599131708671764794182226996185647368046367486199008390841557628241427012370794017277638979651756303755400349893046626189407437305100437226783600751184378107607070023269671685567596799354115472485345827731352048353043925639854440380488612445813630058719181506099614663078015609739410871191348390735775946134069441246320736571730384851148961340344879253336539757344578370695940817650842163639064815052174595652731976111464904773484733807434377672014191360173643592798445381217543356621025164509010444621948785942259838319830108474392437109021639442225133689004129126840048961696577601509992748806188081427896559369540091147877543953856214430569527674878054864144526212446829256782750139939265449214653506892270749728490746111708754067114749872862626738154088600697274778507315509090373769168053211415703280715760996624550334358638687490403835653762180714330445849201236345183011860288936176784634468371176607066979402622436159573921214157444875510017542594321490949692402854456054587507794151586900722130904142190357123795519256152098351571621215715221770126273996897036180866720892865507585892877981021409873343077755335903153318904745059119464249674125966159378228504264862244976153450070128130831820286896433076714272806275647061957987750398745354156216338302046846092655287239058444108310254395266960055525493222002072598909325340067248983440817022895202327198480897735252409512142315574800734166763811581897506782599236539708858990926200705674325846891914812394043226900115670240283513929293627430617983251539052906859443698089447261449347924847978690373469586694879585645329322617636614531695941756712378145664272647692001410339077590919534776990549971261392397820962992365135737088016335283490453879295693798776559934438983737552142642343118403947451022827727080806244121962954177959560367955329986218305476275954574335578817487480456477963366991381328499171140013237760216278262732627619569839184389416891194209842890785479719557199566652063619086185518234814957562196501993906672437288392358584330790570222909058608346061598122856554250555136994284417457785495999292265310656190284676576923498140749419606549835610519955844055842860221370183098557615457289556295095145448731399723191101057991538347033808657991611479129747029373228211611062949832097121695667852295449092056254791239627015695854885158642141013553747253802557249363713702604182796016977258785804069698192626456728475435457764003029062345385665845087938579928098715472259682866775966622869699719690394877706298269973968120671385971381594186958558032181738056407874837340566322319242959184815243871350440554084842809909913438854693654562130175918358263377566866998699858215244911951806500683616481630174569231096518147801716064304148867325232140461258521232349050999723186396747727806252121803122542448823914850024493973884576857313837609054001014188184201943818469343166104340363379981622706178697185850093372724174198087829140399499987827442032036137398981435409551923664094761288924692363860278721079170887958143990519923895588580863968907348449655105780604693670248010626047476420027877529673602126779865762010621045776902113651533145402698709091472395012818713683017745053070421277968522879866797767489551520519172216345641167332479338137943158302991596501431818533341731732774915492442110094888315945302665847391921481381482381665570275000155865310722533367302243110031911591266115663549595409757674669713241092051273325942496606672114849349206075041270654289494452848935314096497208483080208397974794563876703850961585709848736675566944152453151368186390116942893137750222240823299075126076165804119982832338756954992774233567049424138129500974322498648352569385945312371147163191709712234657088679266526010661129348162134466551995407423481864947493820055210502290649979503604293219307352686876399557210895447288114146418219567272381977034261696993437832248344937084824560257409259524179797221237931747906734836415780817130735750311488639661729254570302459559993751339987016991137566680623861565058131404372992515241736194290326165311194525420546150883474634617290125122143629025227215192261234985913956039072639107035912163786888513667759937410330779369481912700857628475363124951213207522033579076356516992622252276398417374239176960458684862773030137163463095158876146995467582621207218437531451938952625684096165541394351480815647261045392928243180506855395140288743530655571894281738172890995275265880258487464469829355671446264237093566902224578273687231677345715077923158978466092189037303760235502095532584469569176629412421820015526637277856213691872584288051203302056619691955820636770056257625835466597620279267252402540275393638792766188864784170478212948610423753861347752323200786014714546767997249794116701604626840128036905618731418504584176909507131523770667867353616100277904340092519444719954216299985468211247138448086569093166624146503541884687669530300525852299751705825037654188811255668981444668526145918506578988299805623026755072290060469331159377016787570944403304727380422524390501601697314901311346790078099326476801426085836827756244491115504692694229234289001321186196458858187009218942984240606127778124724509143731239173162878893533332837166991559245059569057092076852605091224312569920773343136529993193952092720747661775502286938409565811676713654171227059105945194739110601732611904503067476019674460513050996582066301141734735521611496559446287058219081531175798212426500737884511383192863159460503834583660569733532651552258404209236162151491105745494890577118470153497695392231982327935016988673018055737897258111558962764192697527297621119220594249084760008711258904117552027745355163559113471064909149614342407941678459699531171086135722556869698483270687547667439443161876785283458911960812855205316422934534560542931134921340065812863510856861891129205793900644906351435792227884372137805577636185228432411427062443045866512599803237967511931650303386772043254377339828731342145445273143361137556786518601059979728671003964807578515338618394406382658191908481639901465422289792702809138859160684249688216229678307526589713854046636208677440958047903824425206944976028657326498706699557256340704417775688831355332306167834935990804244163059353620801558751972823886735489757921248399539358452804315434694091793499672310897073914503381077509330586806945741991095472833968188568767314542812531058899701623730151993137732769246367756565072124985995353904743227589461861294213272772044658492744838534367574005075967804048227371159151395868900790089194514049706075436205482160099247373048523012437906804417149851455783171781644333465039791593351169449675985220047576134084957825727149510830622320041138573480006090409094200421138146225874326622572431160377156008009819315419905723625862803295371085773437109149287899600672932872531969566161186215258720819012893595315883700452479229655469247947591668555663130988008680612848388870469582157911428174805390271636328087640472735447693347889118625849294390251255450582979397488286782965888702004100269526069420323016138605940025862671990722031766812081037912735562196794630243696369033977321419124704289699743507485499919514597447685055574246066199817945080809964631941084675381740254925639631517526109041298095809751546693928122333761938078746934509191416337815525126660190436638081123511509794724432410108987452093736235088493215797002039243378045047432509409389835015200658961287314851164095956225388797129113806071340808138206753098779203365368702377854391808544516973110480020132718842896549502994350937267738105207185513329684329448262284740178579448613976368967836187502858460271633668848943029436744983388753750146675299298021998209008163122021919283605510288638355273989844479639398142337124921347438563164017609939841806601302681213927192652430281463703842954580525372814107411801452894897166989450647881417422877258222104434673340890306078838769695995220556074303054948744689493216091550066843726579525456838779993981953923380080284985625836196391611171354323174105646729816863359880466328490208157260851688676249642190165715032678732410621036681895212197316169423572631836972978547607668374666973053948794396392082507148737408497451895025923858322055654448247033243003760548924765248121046787798005979545202273059902600454717518624817950144223951355931281839530480313855577045431569559788259854186824432917274559382113250382683327239302309809564851780594101190724625834799154110101029393430127496798765769043583390262215036238980052789011068618742199553961468645059684236615492288065381056447610006441107229982745576352915058493018555028180571333769355773428762187526574416762868696930345220983111790595417857729797753372343516972557359717007381955470861704905339829367239615616415701577868112907468248475400213668951447439164761849891212571192622530732079518848438762670167256467833166964323518100797627229922795700197984620656781964943742288555806283955536574566086453331211163371403297963895231107902459727089741862664460515175886921872132808539763628776427079575630241399880241258525821892554646481495084457621966725549072765592297011885382081669216232190033340275279549101129044424624914973475667909572568893652524523544339302383389416744962601421748451583212619093693861260464057760690922297171600337132317819810111222250433032438109728559425179626011704576396961422870548260293678716506197092622421161024390895132065499312106141621619816124152686946158103905464054004340345664718756857928671561468252280311921254644578689750403126859619118726691806882799907019287009660674354735103559304700857619355313045146972524306596211564104893638088632814382459331879599300180584358489398465082480643226835396155360093447151002919348145292217467229271481675130756594558046473442750878645401142813186188905552330694991406814551018449900444754099363725988334544654365778411312238710806909280420305268515753044119214998277888484049052977021619665514954655362180495769630522519495414787865265377826775787158634551662572789420477154396685758686867982955038582222682043520504522179986033852099930511164996607827951945017691131854577908793598192811546122050146719193824999328273990099228536450100787844307290092967349258412218826910769640336919322804246894975228522209090276182032072070953596576515182738056275501868789180081156082750449259154758868222168397407994064191344956303682162696796908764590219216816189785801393797268569835789358987678963293651217429808147195367263494617001352591738042722021817930474823886888997028991786434300246664720813457807481136924372542094319277712823873200578794694302056391516279640639995899954312384175047268251930980494357588701625041226203565425054010854055187183583322523526180892479552455415933982961526419264374879995376959369919691924868270174336475119483397608197747543593595442299383044466651399098376768667029752895008731261215560908665162058130700694076261091415384965083329092666450435961099800403451216805146383625141800703572589141101677424188332512257368469067828434072810260814416606684505851666385734266656292170038024524418668362910524333580340640220572175173939352826093058657952338314438567736607881505646342621964286490709513569333402454717509718682611917988065272431921135064499265971416131953314091935966374267085356788371611914357407104144743900017502832123530928342482574075780892360801928169903067294996077451088714096482748387289499868822276092740757135124790567062191551595801956393994246531926349129999636503329763663272510502765259039974986836055197315477695326438863179244940266118666131805381148782744073095793362138084143430956181777836864873150857916326752908962026750507559453121099366542809686648955890572804273471044743290447607667761265309582302141927159338815576256520558819681653332707133866914655496320658748777195718313253510511513788729310157105253826448025977192118803376922551418136146023614504628643007044869519980567491729479140822784999705938836174047648964453674408818551743101515322910566607446972757162527166667868880267649858394131931828818440279716138887436986008811830319662017449157030313339805071130067716213887539620064046126766242940366827016900677333189395227465040334863207462704319891386898790279829593477879131557309924850954869964492035465661846640423173103117416166587428142390202122634407147746433558010202470746187955927330046801825045536530618839945357848782309243390368993876922393267797764479475227614211987124454425028380357818147074530728711356430274784511624808737386835062277820341086940851164812606541505542336534475244526364870330338894098667561721128214141831542901877564516182473616188004856238116948026679550649023425459205917055285475427610356658075323893138363275549435517483426555983514841341867036721878254729421507239923388917725265289080193193164395399082032949820175487966567876884863271427613249889611234927019426017945640253946931594860716294513704549882276418097881250042723965399445335319738615514483850765358960306957974285896359691584388061673581073054044325069222964713182196874355115829744484002760407432158829451914838995874686770727433212747580641259217908872518576545840549336763011557825951838340549265474033446178758082710932619643722925917175068489503691536259047310291732302888675074583001262764644384098476863391902479360083533575369641444682291395784371787955088927347814327454854112336757440241318968969431246955950470541650490179282798621944355076218521836551346392883818463662103369173163291803848952478505299456623991018949484946981477500572809983220907750004004000525302050799416011503011616334452867726340038589369759098469152329741771171955621143944065940709690492373118039472827150918588025259477627445076658487974237184054438494540574365296959609005369617235617208821045041762790124361081978352603588762241555888897949104811600322129926860941437322053241138729358461376364796234806183590145492156651750844235892138647368368502685415554877441813689657083715234333966222811650455469707939976822395982626195832699504320271354964969188717327054771412940222195014962346814634349032691803317176188684212195627990062202638963002697877082615290855978565465058944156859188727484721372735659946513744313774770689131967958168212830817938726031678302455558276618549424677730590623204212832810901663738445345510107096465473857388729942308068081047750306174482496260424215006162676228463472081692024561146533499269935049864327944140245583714269011297434458470988847067726817830611279645004300187524130253155252810099299578073914391998358090165429657873544456005603347967302338305812799654398317854335052248140896137626657842914258194717788674735258922351748081870126830740136210741826629601108558915877918990468015345630874476352971607311024554469730963739117611611695073562857993642973608473109338555823017178439290027454861151905273048825624548602406609023985878405696701507331125557320129752502065054749430299090368266458288051622199043009454841069337935959390232976918756098266249647235162372318443473019513246388564691932962332678321729856831279021293329955359026524036178849244912788650529694409030476388545732292490110584974797326319390504622271013930228412838107521746987094369510693977608638806544784005044716300708363621037320161648942312410707418238434410043224427487464284129918303925235537387792866151478254483935221343852937752375878912598997685932139073650706345413250193209541184547702915047708501071029513047165683711317862317398940423419423213890556966031361733219875559956984487489531427031070209778605737174792931796503375952661004484130152194697840684525907811966950502234002485366884017224041391847353240567201860472649532895277704124884176249251283673468498158392334035524074462122566938014198128826792553878131994096041586339061894528706085344495844487747697881451468947640345662269679514429235430761643825121585134701993598933245024449991281070589195619887666889995299130572064000853479487774115927868806415751017092077825977876771491399967904027343959647629983423576879194761768462054144619718986766555564734134699181923602576368289855673921958822439090136541268142499120878328425074385323689031893322058106982766165569795999060505353518421259829868311546640350864890492472514783344223006975570591593417223412471920246876660963056578093103011198366115596273829098239447100867783587284915667881855222065895371650540666412840574268822451732568436798448978226613296236697344216429451980593674113237802050691143968023025794791315522468902824214896225333570485923679063873845219045278765245844630142810648054605553349844606910841093947678995113235465148387400870875939494876827753683670040337681313735369731027418792109219287454989932478608820278711377498252351025283639036369760942956395747762346402687941881071072868986129414706864532372411625097535775123480909073449508872819311544069309896530998103203141072269919451083084166369937699006224921549777161689813078783107868682672837790396427032495325736285028257198598468729244113076590871547853512805185741860564574836247581235400579231119973048778337124837215823121223239136293242019494280154234033561164059260023797549999447149305280396533521801437313999607564886135128664832732224047629239627895848415995573557815882570625137755946739269585149728473132425294308098550576011865254737257467414890877031477674664697516177228292404380257529491239499515571139727987313701486143561386130777367802620163414517097845002478381488075230964682204423006646398715235792898363325317221826294646880025172499243420507599921147837999185653815285418502196761767299401214166192317110752774117931241878438940674717606226750778472068389283669113374525619474304245241332530312276437227032076307311971292802813357205417407094747709454869817653761848567204428014700061582034850201810592873264924888458351213519406405577476724802592389010795585492986306304061028996616514458742432002531998328833686604389507406928622436929531347472068918520392789704095297258479733098891308271005094603860225494337657558308774807706681067790655893984496126229448242222782912576378812966318853554178561421148780206238630220440946945362697523535728714651493997120377129561881271098288025363324283159819912288634271920032082444872367821240836103024515592228385629827867399004422791232499050848227476517297677884280786077147036470496148700537846572202699508974860415343716503679681660774408113808396353184306504578857182786106782918192085748316856608627874056400123867942276757185225553423373632141770097809633875192806347388493792199310228492060355858018881534939698497089619643931540156699034343507887615765698760672638690084878630246166082455427461724026604798124368577036652964098498740336682132305251782399612624741300177853045296939089734432404065198861420890034343857232267208967811529229106291038823148627707507242174044836122645555798380508830656978760962903740677153494732570595568679776903492458399669197269323035718513600866644571654390124241894263174560393167651849574078754553614889832322193597019085017877618956907421336122871970651399290085957376037822553391769851995892298685872529039079844904345412939247906786749273618452305655305699018351505741780542801714347394384920877782738362849457506072884907981128910215790353816947093370203844680982685895895292940040699801660108768522644745032178620912126401621177716249216511269157691079592603020873022135809910283890045240508514392102691966678969097856639114302317484929186418670167660881097637070267197699475737318790974806258420922100737457183035279808605637962809429965629378606321622031630336807182775100887733963155614028574058887623633437857776163585415891014738051999543252768683032612545578381608644748941911643869399086021702431092727227154441023415760733336890907638203265927522141565393985487281024134481806947390211032168701091295376627572525964964012020002082094652685933488740381575311843379271219828613371965053240066458184628801131224496604858626086304340617749663378859334439840406977519083540358033688910620787752745835391773291495916647903590409200175915441824704387714708500622681138517968386430221288295673045083224325426986892691712997902694195683222771271735275399057103492601389093314118172355219302530801831354291974494710503852087487796536405182115800797099100450830518919279556202866219674765415237467796348747101566917616703206553345923265563886523853970890134828240488040004819627806802205617160220933513157359076798625888103773593808219759058352521885390636075044549228796010770446678409483400844765157971034453727981777848548638312942040410767667993385737396136484539375792116842911088119366733035153800403575309448215454465019842706021402663322953736868500263210054113108628587452576804330365312303243238314368456328573593944859824947888475818570833040034960457666469401631481990535401737830330959281756524443237524464479149064609106028921837222364086187444782401426392711699117836226359692731189162720380591209260499449857346713119654300189996804620440949448355890458883862180721181069598852758905415450053601359083645307427404516476632610275379990896420041504918523355268979114027253204729091603413667610581087973973836959137512217402342277066982362269371168952194210827676852393033987576810418916728424526146045447837567408118287700145714851091524370148163425505554877592482352323440482301350510601392921783724174895150514016460668216847687801623792003970516706806458969410598892021934548046684697938680413415265308844736701443995240459744603317615374153530308020520561237526649592241918162358999823455538079690044595275672933006006289502055106579497352594986897016461907036879988739580226543779660362370757467041365963609133878093420088899398706277963364540383837391052176420832469536371940598080079544682136970762485071366749081441843872146621964519819421708924638450124070817708969095930918174621835883402729686903777801054704895289798382229363033440496514184367782572685718270590637992354420399488511064898773426433722288319591501052059343795684957185807068402206541534983980714805850363477372003914705030121865295156063155616476686099496241088653198371401318452881292987743654692983870450701341904017647929079095380522861486806927019617157413658593552023712760199704242944185792225521602754459756453408946357115255007907200461026265625776437622830143548583974865580386292344954805694111709903670309108370056727113413326974001884263156013484161332287778074667294432219500950563465315875649661253754854322706790384761987286541061296703241397292620595367639337188358408197371123372057327558270777638541954569943353805796168892674819946284734255853345885425009406049055328638072006511393661240406643671911922752830012259255292788142625488730870714590800886015766954632049653271475789657892078296349513013275674055896579741809243868643183495450979011960658772848690180266992495889514971014431420129770994993717053156895216876813952606510826864076257934247324090814403704108885342507201354653145459488090871503682225477856206552738514488613096237415638555706948057675724492929605040028443906116102978228019736963433677479277520435080228250746803747788749100656260822933562238470251029857119553127807164987103649722042743995986390743276615570557934737501349073313546764355684551015186819412573874558441546790806465158591833166142659208594122230763667740792951012133378944623201861886063197409588230209471865735513280576949290962524218346904837391834167738712016398420020819422709700311239072874051686590063732367090430801939688524614687530339071213250933270847028469671155888774355058008650230799998644906888774482600870418688446609946226768462098264984626974648483458130106116228549583633578403739106080738162825638978779550839742309024647090810533894714688007181256303186192269471263567605546616399180079137258051678687799455486370782868589825648579233265367058285400430022662782075215992579565806669766424001941706062368672777812620599042234832290007814403729559768861224808725516815874254561045696727604717408754033223119077996946092032038455457499154426631347671502866295151976137084064013528710805480399579292850816472453454364313840355979988254563695355557843132353473914260981218939155632212689144332356216817429978802047531822995287711626853693909528216796284115328644795925176662135912266949612868367911052603034912493349530532867046482513914832562742973063946206865453405482570207228382711988513943494301046466614598228869718527721994708127185025553146781638742560351763831009413997351434360389652628003917499919860682128757203104996056255077431765057031765862293022893263261175167077781780225874864208013512046599217821176103871418986219431237479775622973652940350444909236387035295217976867426967140882933680937039595978411826700966471569034065025715443187627125393560181060743855521564804194057672116789403023735285448141246496707422199246008993556376573150366297499391605085363460547205043750189474418878742547601674610150134189617355608861786687645793206907197762473047110050664733489422179471721501737657744308661306522555740553297733146129250038837946685429637073158459194909289723015967824456353466243314988896943605050827468531937292946867081193128272863856922041593633060223729250479601515743043755056670024957596011157993833341008587504010600529600290648640004269563858789846975925111209913465568938330557639560828562078014515138878267294243986746569998553650989161616613812038054333651006687775436766223925817619754976313865653815261429929489229754602336364168104148493245541137779921702359792766713127057399750630961624544617246710438689055611926511580908243805296102661271397804183443757548495990284981116904394595508317890526589643151244075373989823314463633132089239860025632929488540275778881604762785023244968063986923773765172139927966716885818760330693270576274592234008872979712329638876369824279572254063775229470703717401787657623211479084308827307676212967814703022771797467905792844407864304575350528481018131053248227698184113782153364009540562118068722919173859923294119056237227905366458707390407174911204463103755944841331061834678545187757580629649045798018831034712778615997197025945499779400081700301266147929098569253697324723378188743296562252491821100626000955453563340574572980758624978297481274365426393152593921338958962066614103186910680359275609509552895868807825995465840870945805207636764907621457863331293930102190128571372157681952684721240088958146171178078585748608514109970949985067965507600964845930190314023538266010520054911879490668285658617189316210361402380341738878735000317042413158938098461890535052452407176624126359076220214687710080342792859526891657894197801693487411415586450616407856021358591042464801479534180263694071284852761093747201471149880432479645779252551693926799153304111371252230454436909849477700413009610442627517706494409560776641191517679329072887365872280548486320622390883315894477828499961025400249398093076873390451455495881694561922593991756004151540616415635489265806412091139514667859932983326584975682979564157398018435008199104974426631962249946232310934046654949580214127641421335666226972120596262348138845208583534214403268171186310752662372366917731423068414473471397285333986618293838490316193050199176920749500137365026191169631296634503964956633840972102070876013065466601618371261974834417142851857894432449875374719749752936896936149113722164753254549828503131694760728605628533433940592722007516787196757848803655162133317713817445920699808248339116639437274726797730028086766406891564094483164403224841239031131034074825539538492606342942915291093584923605768530775603633597684633777491459018474540231506967936446972340117620748071353073096341804897444590662735180446865939738241473254052840474482038889072576709328002768328404942326394742398932069578276099339959537609091951821055407719149531651934991747485808793410596511796937974514332817092392637860628304863302346742393667510093395777791916439560028994486829122215852339984927343080151930399075196203253075133177085421279115604441418507266588255824475290868317563049388770060309062210402569043724376403737199721568687046503334777221850229652071490557078654187588185836588257692997328630978745785383101445682938635965404931545656007770654176377863852713899047692817592468187542896908754619242837257457028384462423270376833226499923390758474283766511655203023656348723975901995129683922748602336881306027766285528171470074846252669849578890726584834534620793391008561346503149906855142605729915510998771378488094372652507560049732395392784535878839608973347516644057274012273418905161392561673352401637336307619599219910178391899120437693589992601460805829004970489786733651324253901286361586593649320093726488576384329465149408009134672272777721078353099452647643638346108023982773556999096376618519049886810763439421830420514734818978144680687778212836875976013900035378725272951282753863197511239291936369292270784894062050118662381031739951560098546047833112556362846899812502347620800576737350206729785526362188125097901795519351003773244347116107489594798064675832910818350254027007748530282399402425329742703559665667280142681599790997566386157555897426345632572571746649475173517310761131716702242919158768515355081712265716477467291381538792680795922277459333652305411769420965761456994491428133711821889724502573613011871143604751047550470987727625542830344476698479624935839541590659236370101989797846640919916135501986843219706236584698368935569391399391614514288400170230799436543802104393567490412536742439298687193176272015656403589005538482372403579985398412025629796469151226959904010241665498093924409293960567831466587698708650235882204088263152131794729320496435664776573602335875313274593105593311861161060381446834994906810601843112500618059702088673917871357062173669567596898768063545344476093913785865580718650572364436789771067689082756044106609107705433845553769607262318601783874337463693002910523452386112965674218904389173944259910246915564474478408175455267063821748117999566419466680857009195072626160311869832584159386514492203196727666799625661536672178104681029553237727457109123035262629261094722324034492403767270357859769891471324008077866105567525596142548448672277698329741521999673221914377202356330258970224709176725969384085362770721488291714659509159446907788063003672351397915343069881932625494830931210460023332855492271132390330020583545338403473729613177415480404320924900462212779259895285760584540775971565425139926707542992686254828635758332681166786542232874163853986305378077337764141392442884486403292283105142568266259646031651650998427362830635364034324792583128916044034720759969110671202885960634621847474966416518455302472747682768373787605836900922777502661002069737972104768003809252717252123817342941463460112890281627061676375845160461369064765921630838012191756312530610409991237114000042621175645489036223927546510359091259069724433543641172458671462216948117986411096258269751991215862521227656265076609995150255523703417006826100064401221394557829569671273237935358639804545158925901800075066207902415207054944260041517401850551920622008326855849679732905364976095701208491146889588934165422863903360278302686233525747979606565352419508562644474457047122728102001195747641162613752169074468341322142804126518041657729145917021708720634209203757604986785886177758049281595974619896216252096414155948936461447785677598153315946564524345818758460234759237660296976868651408739360408377406261150842091789908749226936671095210443885480491943966728572480763079893536468065831615716667688046157808071082984562348838721809283471598559792543656108511806245117101849231388157568179558382313199480348054180134488191286592442226117652934802256785520445327945739368920212045188601983435694280582211882248369738965000506734168307575737139738530665116365378282578375978689978286840565533335240114761204132829243852322466692071298718958049015567892531512136430512973870173927102850305059207205899016226940980429476376956975584850203255060356712992238513575127696618020005125878631809196194849581042467181060351857397423122315004607928564383487574327934292252061393421207539476953593350725370805490188449001990939316028587635977250527010878444242583364321736721549494505471544896530731072889471675575562214791659229140666514630768363082869181337221985752186493485379042011820717855818289363347629886378237609484897555612469678679500457959416912247149460081761424365305125431559863174262218704647550661477742246026651794239570954867744835722276493533792112238870497402019241386519627580027187427163032555831585609087340460626916769389228168223306864473145228446739612541748096824315104864516842152287269378436728130871008129722867244628791440136805472741532306040576914821831740096462878441301590542483779177963140807866803945853173902990496307029011523156615782574225424763594502759129456631818822169026910359953364941441833340040098453860503804872203745974679496299360590077400366933149173410519424597280495087297706838338088341854171427416067750025355800600409056521190337573685806526190480516398992841997964552540464654480138751100316883699427938850650218258100133522884131653251653003650472409905672500183703579937955591034022405658461906862229836903594924716935182409853730083383190518506761549082914283898311509856443212643855702542223702439852939187697879985476971040052229763688403264097482985384189225811030408604166220253778601453443133855569353425445910094843429039672243935191404550643557548096195437274035823737465051123778954485069637384355546208924812926859397064668602389696568550661339113514632719847035165743653951519306871578225541565857808173106565816010697714137958509929660901754670914753682819682262833536415730939606462370014796295882367589884115869568796986728585008454420095770603690346200538632537096493727241823161451210195253157936487137473091830425581165666458067719548080859421486529441195332842273801463368835680722429089339231107919398849434393774144887345745898576011224268141760078577943734894207441136835426023436077477641987026721382962781424545557144201221383156102926561779107264853356655144134721772794670115651994289095260350860853849407295426241332181914754599785015585959459238896715801643800762734806687500107539687812131430359952251356428969265939605003012274389371513531055019549095310556179696988106015959785948297227362315419428235249613820281224332537120528954691207497057076874496148185170380458406120394326068607234317617575437906605676927838713582065860365739315876157225509056872489831544581253067017872260726766604117691957430492582051981702640072439833531264453376515581309935241540230357756894346312038868732496122321773866897315348658243014523807555369362358809148593282450780612612119330515859390557035365194043205935171055097175802390898649580842879245908641670120920898333275607804918238062131748666947288371457284953129849891296368737914096071144763129366293452638976071931161115659277635314748817475209690447627003571855891050880176363291549952377759418532299713126445777787493661870698579354830757152917103303219637828468486704746535016650907488517120471511991484234684989637424852881617883161004220269982525061012382610275702256345785372485203404387150219033139515121477543380841651141895207567498467356539474585153402281717166259318485421623518879584427084657895773509471711396877638163801850575535160903098459778314632231409728456654593905234219479370032948137054648368303253500918239847978610227210498713967055605826327682530829633157673374396833752684709684127828372853556586596016497172020379921408369972119146934828483716076789760203868836894330443461526637244297507460236318560194692295345683965457400535236582808166546416096837602994059725821260467104826841922915694821691361738574750147713211220902821114433249246695110316007659686558229688623043832259545926770280812478744930595744305733500752055058282520306844808928633174223035010185275828438049742088150042910718301290907473501648379563044578135804359148415656935293762156120762519976785131714262484889432995325679870654635362480066147037131578984349964554506747399741678578804071483667566308833270609749250073994011737128252585660001483862206000602034500601782151132982525946455657247357635985990070372237045287093732089133520316438249475261181127335109721831919372753147960713897362847945347435207911685721880605585651828963958594122781282587850175052275135870695491592675445161576215945103376911359765068944919080168173018014796785256115021308450491833982069183839879586065558996084182740544497205435530771999466304345031516129989276905874453442471288506766129833561933944531653952335644918120518919775687079610061511828150048474251064819857397131355071961772684318436103917039815232218916811412604636617003195636449515159425540559111802868081682315263892159936046103671241810756641760428400487574061435748274711785184414796747851359696243976205092581835150168030871736765246534400846841308455631216235301771041164620113438858164034462639732782518994883598265455392504819016773117893181230818811343674481770740995064539941695807685066142701931336718295794389640174795970739326897276070634740965901418565571779873708715456898407436527559628323510222112161545649158243245854704082462617841160945214415517195148687954817968718840377548058688876479210192203802440325864116729113628791900834882489296304625106065839284536799753526449150136056107290303666407899806242791921778840641636285158588372288577425124613804658823890992976799790925884718356588873115712679216264545929284287172087254207731047044891848481321121866992314583805796786152739693995421406747512778777264069652831148427565640316085511128561735835004573811406556275626031127356030194365555657304919021937280405520624463908528098488977882438829364588506987829011851422809104709542422490108840056764231436683531923344277430069832296122340140020670803573733066138208271962438151517375967029131860503746025449597386903844169101650439697113405647477947379009133739275788864056681985421655383060928014877695591099963069554943075729554482956612766848492425628602805253344682608771712010255503596851716400343496167419994305866127281150773297732498406400273482905364804112626232656877026825255884930612783826891981320213957749298050788919661903423274635428067970100857855195812039564461284104706796440049520364786948624841268375179243608197639121132085735134570112172669034874852531700395889252015660937207210169460838301736406702781343077491190266230047243295937667019135225119206514121393017108009427719062215429028404471748439290773888058225385661355980147921199749128857575443677846082138394995123568078673994096674178823710000325619784300906723940411629940124813201556539474702029009434677979446947243721346677004251803641464679812680141639889518397030597620724046971515054282331745849012949243542508815999367545368428827880479785029442558569573169188044252449487502270372587399397355020625385265728798652276104954378109020206641418501566654059973535361208799110142913827069776575149702032933309825179384043559612867335812297808039339680021270271952656839835557234828168376325495486188224488459345659225394084068436694437113513165387085573202452739481241508049738261533169473258787849364010057108962727775679591188869637686257485358777747921333358710099570881693352195363843864692505877285819111639367467973739284135330003075740827394672910983120589124105452798552200319925978548510646783636833008522215065379197350011525134640906260039896058804853556770312157663895053431205385282763358217738803245673478739693961140663636744206419639797643342863925862000943963986316067054602842151486817226718600130883719604276559758716878337538698583850795778052008393385149868746769057461860684961859601726249829941848866237097851163647662170923767164022889885618344733035688036512838225639033750904888399063170708192309630786691527913037048227896611386537419481204073028635545506567508139222900092116218717667083845745455762822442652144602818986069111427949926118735630522188228577434541031273785940247040916895940612564046062010012206843476451255574811165969463098998227952458923853003035174651291826564207486488118931904862412028271407262851659420698201845803911247584564182990581504275016019798050560905744403798652253361405627142407020737915685666249095506428977194760227095960859306002145196719678393246223349055953908928221868127274668453852169430215770150192761237630253477018094959819102862347070864414443255810568432489455046644634381410685436755792702037566702648815442717636300917531876094042279947821836466140718574750882391158175574856149969060947410114912053398441811992947274231959155882655293311159264767040782820106463204826569238618126151186557237876186789573325101329903167246257391023327034041542696329505328253211531972165764867482102229561010344221819578928174207446169853240535723788682554723748844615963578465593793185447690321658023595108795615366677773269535514808595124370655063762290308086233270132770870658338477954317994427486102006650893810230273625145202815598943149199854823780175086944007587537611604736340326472275435414069455102451508382603856989924328448395250421358116211894218175508770164701954320042361519257359414627301430728022445887091729115919338576506945950388677596605286172576215822716904669856097292783386641290250441891511215498411905457315624245668949533758688687440327366190417355579045772821782237634076812126572574810763863640899490925938166083051971126999149820253069946844850505261923356492886460737798342066066706361654819619370408240973211747949327431112232796982916012146517342171939358668471158335048792529927552659950470036176202816363237478302616930892384775587700519387494793967247732300355025521278235722405859587315058680202585987706844654731221326011893813537802390497662707640620239169009809319081568568028077866715827958861905589030793666383466214085003732141138943676322304164195057649634745592302401020336902185579948903565336787251401260066489629728581286703555572567794266833977859056424741931356229897890292826313383015449557515474276667936491456725686402382669179015353142796250869461470675560059460380643651623394689644312291599400124090590387994967359867096486935290409789757114018456909728800320505624893245201130742768215430193473144131957936776700242149081941177439107072247830385182870943724568282134262939526470749213992859258658617535217169303979788426942358511120522197525222307071914332923294027745507163129172901230730482632309380482825454603185543981944161416362052146444062141933777622460635318950864468696330407097113695169583184864500668658307807524795611562559218640481994634787535753693442543689072742296483148091162619997255928033396732632123664009859829004912826356831695425616970505056341109825491067430502257350627122433887398570539235373299926188960156482087211936806454351760083573498988028217991719306190838256572337967655924456827411745460314064137631404428251320836473760663101220970539901510709773937541844669258959250304380510268402245053842786360266578361510564669571171866511052089333278907145310572829276964942769701312969919451316010579231424488903682916917010983450900700937729341100356793954156850119327062592075481950335814667262864580826114108348519447746415942099998580797640136967264535579283908426132887346971192369828421814574077430713669022620766052421287920627545581504807650845729330888897848307176042573575233089019977051530828010044826880311181338064514978726754872814919542730314608396400412843898057035501145725861565873552470585902118457190091068526175005458357049139581970294084028824721115780580409335766792544517999547393334788104711631364161871663655218439849898987849430414908898489754180265714568873051503796947585683031224882797893167208156180388615255786634001727346636390231504880476979024874125390300890838841158072937999869219511362098146270591739550881270509924712729077937672653981621480928282781105908675094126522901950257917426520977546353241580643662710706042196002988465930889265095311955645146928532678895320369743064490510463872171436700731480880485067897031156095869448876226557039085506089908476136475547731027633192617623866210926246341210424623405169247259044827799187941218760573607085084691754029067973472380522168988274572549204482280629618534148604916952037761660760068075718290277117870130396542724348294378463948090970341643698641365646843695764999209392668455054308661964044874758135805717818461990249387948000111039050607490946404488940290739056198967825867921135502535477368837172129874034683076236107338719854991006166471710150307517835964518828652425515222653199939988381783777780631588395466607877399426481663275266968087639790152474434534742916157363522463480809295106797736085223104799704700847788580722952540161140427895673952881737005693840830590617216222628709508880645257422071933341839965302286212512429501807612946228058289138870460072627025992951268377337598491295814413763775071313291658101560764974541876052742878576150697838181729142928671174231742217115600087915023196459425799272656047925897511406835567817260033862975335202336934642134467108190578721861255495255912002770762807496622188574295655036976435367559101181468024051529897722063263384050644086951275643546336989704282554384269122482216453567324331355647509215523894620775121034028281164546787891646457992982157870318066399283754953145334371531914627007316423783807772130086571274028073881285304853509621561551804352829574935640084695347951609768305738311849542676092020880928411331167947261640896532001425600534920196327286243314802754268007041718418265607438387168987006419820129962864993432748677345849035203689035045666426697095456578491376262487796666829475574334293148002598445136598606627232534938624687000808543544439401159141045556784610200842059362322309194681477282851350102392847413678666583917234917011477057857370870639288275218573331668565991089377850758610485299374836135549637246838727200730655092230355404797581108581197590579947233890961705896216359641726524870958199710653457879948194814635772790469565826793325386594049188678370504274125216063710028522617460049331523289072452951705609322318159063183509474748516005115820661780045999701996608439875570817266691399071643055536343947864117978849533954878624231762942008741803898391964011269463135469443936596912958184088220320546721645725724249398548350335424255320011827298044159049764007448698292215624664641759922426849673769491038973430087079041811522463252179443384530957310063337207975082733983256651633235544308878921479506911021182993791960987115712304309842117235502878122089414562826327357495298498670129276461751323131692631804146399692374954861029123915283151565896628498207040719949783318505293472619217376763842312158150196508036197506098331624135899431972127901219225329551965162820115010329067419171810898737328038719435203254656192012473197391669523978510768692749043079513173430370174666746608196177470445679240320702315262664414813928047710875089502884552556758003036291753213277787367757451115041881231484411236289030375226697937384045022905210753285271951314326015153945216442209529822740757544487371215650548864089538283900258519112033451718802297753822270519497821339290430235185809534301894919395526319727358636131376557005455046447330478418679371927639981938840960057237232665167404532057325947041240218762861978859644698391954859456925586551005522274323544103723258668363574746774772575178309981976819161135451189188580905984874356840924059759128372579550919326250006170228900632111625874185827708652113364710623218495955962798616075494747117376375959470203452333683838150152617057813475398849670923294723392991101603110864085146108392555889707637292199393103495227310221734425715005412804925810541375469078613037511964481722722679644797919193167928943894858672453595446497174205121982861932059164989618764750982151576080971857709198930898550412389451471610235157891315544754397579517429953125794636073453907348135808349834964398712510656203679897229495926081687264268621586058256524601343848110112565585567594546369781166744096022507498270965410092049941969073032328745555740398738595424783762892511053198627321972469256814441273596659934950209993681449289569541625382963430087477132301416858442792319053790655175965534661815160630642115933705424951444836964543611954971562736399743427565302790796091940115377454383952021674691169957043456527856847057959890973300661819202716188369655225389249730111916134180889967825893777811123806305904209456831496840047420645827259346646375046634659832398378033262282544130576779943512427588651663689827705279884877824103307668997469586820907469353989056031238872757093435409392995055496058204186012301449568657435483243898173738647469275156164052168166969278199223315064298609819622919243051941667900916420389379154232165067015229100257492958994421723467222112148642996669027727044700399754414016984697397973485126704142806460179964797586405786600476768344074709696912046008456118736349576166170752280519412695475534374963400165706225103421014240856152281849180345001097373807449481366782012061321459753716401953456489040002565703569964581851420507700621579378872969854260963756092578238368359686575122879789385051352001816189581928376329300845710043296440214299070847450897300558505737048263592301053977444870861255435630718628446136642054919039623003821653495383517648786408046117532175018144431792101281412915278568770105102125992508709568446746487354625212135870567640235636319307050542308653881705620042360767333928815029922907907464295014206618949763793150837752086622345255324213932046939314250000193099465293982533914011284234532163008195475494289388398655171237680572835485409244136922404360681492286524218803225337159570793442801819591335633390023350934889880322502628826464596871192565384302067529762599985032038448893178737690545929455925206461165649973077553480931874362782599693615004136330189926993990688839051262285211986126497361352727209850456764044452385691827980868579850924712921640482146657220398620894314979343913690764834952781327615488876045170874870799807385222444777276192750349756428822417152845396985557097639156749138384174833092064100693553423260831810893070580700085461945212153881376011357591909130703129196558002861314590457277944709455147377927268813489080363750787761266229935260215990022069700543160615082680337926894318649763195710816158662279291342887961300360064860622155657631876981773610357418035649370590248049825245542622973951653166300835706621557109772880222970782863678685618470709775400448958477413981944476224478406876719147570850820449830779070721035315594138754727643097423685856427163968135159600972338699039366729791622703853965610453418678038190767254096128057867420828207618962020583770619804380108429044098736323041931638429360139061835899274883355718851576812384140924190713165174866991378437142626144369906858778148861187788906180713343222224103474601045847605232216583507027461883850737856513347438682221538807121206880182415243695403159023029046565164136082342824598394926860420713883144651099396689231457040667028964760871300383050427271483648318290068584044759032752275518731002579867664412761880507705885555773094140171644554783057288423837891744182071842333767431715378424360346753929381477672804390975181610230667077727798790760296119408146269494603126466195986119030891544761837637617643422257543669892866736666937795627291480066918551089129698343440499646960700843169482744666378257259022706483689047599110897877913151709368127708197361999872345697842928134875881308080477194486180798490313745867274234118234881166758316761113937896766828749548899063420642040540182780278241726666499471584733766213419633664497192408261694802159551080445457309748275374037416400545828960777588570673513504404531144454168712767092015539465308213465163790115400626784839014867922357884205160469289065795867083201928268159085664985678030820561130628117935638962469142521937470992411892083734121605746057586470432678357002861282232360951077482516438559663690094241749659743070774509052090269809304139120322644023647312926443594931551244410078677819809936613715959967309294403517988556847445855067455497713747673477869857554967368074242858661130822325841050580554221386620983946855654043038980346717708146461009980455389717059273916910793709646118281571970076065124438411926705423123234066673172983838148425861523794457592048608473437379011862310436699976993885403392152451777830773853354032156152059106544550885341687631349063053070996104590730332776965007493906686161270499360588683889785442955286577386068195862991382085187036154415495500818276976438116434776486920151675309224989747084244040182295330592396605129375045617364770814160360530294296209507970032852370095886791393792394706251318688337759948104810426338802946975368516276134037876343977815426371368470863618813032469831723841923840577345799019561822142910011691419050893539220053028750900053342573384340986688270498582308127947412967390633666197229762980476447457347668737771015093526278182932521844700453555948443765409776216483913377832470503180047676234123850479601510407130614521906331171463040280731376051170950583115185501490430361658064127339512912272389771543291352561523609889582335867859869854370336936837113942570008909292145456906033110010202217236556877652110768630897086773955424255604346536752614075535731866281106003108059342609735725747489810573375110872042312846395146752123734678274064682770059602674500320825295154852045609671610845361813023106693614146003127844851964409555436458342914225561419058688195092335946062333099461137948880907815130217264145252133242291700895969739408907853475944310720725960531277345887985383744459446700054290508651054247667589799470603833166830014567905102208481591477783314479553195879194224988937658868752911484148447400931155804433926870507303936887122800911253185776492022415541567087169233547048850751100991642105116971341961328576121898496181501820370539935809045131503764428800662903777802085384221571389079622709394132541837830742951683862375788043756520636063070155251841559671215926249934341967737248052087971047216588089479214552980982388170829590641232274896239746467948056470957397495314351001409897111548484754809319028016492192222185381874394348950211164393604626045023824916118766294831655663038957250701431690691477917755057478051873484914666884188897441555023998524373426340047311437724032194455689213132697080975426944585718187237859344850324114931164243559590335436633531523088468663852811152837189484998278901281067450812465140776534370056709514724743118885182444559676760071917918779922516808129833546858161335290353201868514713255312891396945260976734278197148165089993262134132887963657258674274001594463160347501876022552708204364827823830962995599094063131634802206162142100289200005597287133287521152650305771961689694887509653919757811751858181232313534319673531524376964330949583138308288684923904631596681734047248501449103937405867932589719237948755872837402968806365995575659166622552428765142469541464440315175484100448836474097516114663277952047457379143245172557045247260521420498053530479005312347178148799923498850370711747620232456042071563618994895055045927152478564774780976022188213819974767702060618064013197601272859742492492051089870810460507510180946543538558548852272040809127840858831712828044628910478149840484985973402409017762372534972309822110718755368199813571056582829268184211880256957565202086868293134470456119015812668165142791411426547708464168829674513777140004709515311635545490256423252433951952643140817670376380187662161231796806822001086757454793433691328589890406295917336417785272226889924448835333789210304108406731482513206616137619113496713088574460282886976581083639522800154106213777671699452869969141640705702959599267475668024981344116116505098171176152546517803607674612305718933656221030008818221097746815324515501705900564965241426893186310673665724112500939286578325324127100644914152206347157756561630560422868216982638703314893656172835402570304964697010737719907663170270410226772696227786245085293534551579760419635109206298288375966672875618000133230593953107305778550513161534650495871743219422117938945816146854445368811436210141431122317538266858107480549044256855331357674583279706972932953917719553803291715680355522661234878618224554798066249248690598088344622944188204672944274014371995174551071192766346543396649392130881412398715605301583991287340624325956991311986678782038942202712410322698774710692553968224853286213691376164203629581815401774644504270792770811088575873441877070833680515455488345987425298385146627951888964303035312828569240999137942770468278490082611355335492800977720395067418432022159407829020028991480844731813432556402217126291983262970950883145258354251325009477482436418307392783264751078861333914304173031397507535208869466055653497966514828040688681779565386520986810420187861539530817373056978380475703979301291210576705261234081246928481975518408683854032777510699212828342708260964320981106409613619890191154130636633397474409943689626114186633217312310206016015211585699887981879840857918329418075842412126653588499927558403853489707361702452989321978712939865543164384909017393184737144964059803702574191907920533669244797231000146664988495426554249550752521327075189612835377421043544287128458441350507868263534922616115432923117237822267202334542731082526327916261581094650413766881412114936024210322376802957923536899291477214878244748023226305333661597004496900873702028014371332528151150236655362117077289632365570579867035708620620130230410498098773328622075636295394390880489490841655832255199647630080802017679930566517036250747695558831112499201418435155296437662280566024543366299515525643005211197397798707642955813000607902345311527143851524330339491527577223592550906184201342937222938269847907101378779810637460142717212245980561356448381766165731465437964448779739749906272796155100568696585343196064933579867077936329342405059956583004891861597325125698482546228447690870917874636688945012123245024876939161298747197817634319064293738093115441635707581716617709425055755531008544179561000643193500506263864432237384967387402687743879130396947871218792720542202768101828048181362814637812681232121028613662189159621975615704840541107606603258515935368965837836533491035064164659942438549318693426818704488100880906146846269391449561267527001737340791554815362038262356393904938000015337046095649727123381961601631650278889766614556186487225448878581600540055575378021561550195976365885302113970524384533023195339349928891343256809046063243859713145433022969345900269478333655817234341151404659278939180134571587905369381002621432819675059767551920394400137194290516905505588103677829008334174558114633009528304948417658812625546307122491492827167418793664076740753407178908646747328488600511932051611531294548493570671561816605579993981621982768308008358239760282077816997659015486994642738099860673452475790087818278873204501643082082471761474925287707901762961355483251308639501136358621967730150949622454230519007396644164576972015763669449091865133457084653446246170929100070456548394039390714750713859063629701435839696022124971851257701702963250883320079688684905003374568011940363781571625743402518101585869862964697534779428447717969284815111636189459550848689239952031118143892114281137337966282495045177645382316527750176017572085298789517448551010535131236210862188853047301026438818571213831760025757086518652829782582075935105621927873040419232505176476525065366469158286600519821238813416509928618318861392952240268812665804630772474820002898899708995070191923901532915294395636398689542765797577584742672386264853353208021412751612032623423393591246509591045978821541541467640632679839189566724331567557894283911953059281505136926414643111401116503191483233902217756383078333846903071819026614378173543990114793959620677742268158766581267569314988058907678793655598566769559464183297479235967358276247396702671357885161654852943746614597165103170753574503749349334528843180245427875828750510952224723133602486541870974733225721613133639990951391756810032997489474526505531254955394215938411750524583600213388133744111635709951136871390600275432349320302386219665710287942602733082704133911258151769105196783424380880547303469163965524139218537768044337618179058185806598337759784935306845336172120317895104088717100593049595059916558391169249210301761559982945357325723134314126203513316695515910600631583769189085363774213752292410201216238368835372156911160456889385736084132502204847946324629622765876623133519921332114846820223165030225303973127244885644756113859910480512385627386620286336886066915729781377367053774102553314864265236717537122488606831269287733689705403265106700839329811202809866170556991209624283797376143185927360979141996560849821471667272791148672107206941415570486401928930024958382071074726263528658548531201645641070698411124589898550495202999813751371489869220420668302680040580136370683109404759974607320767649409276343418113612133567115813566060608556702468879921827393058127267788216692172942201905773769851371298737392700328250458760163283556233079987671402262890839133733000598120399144701083624476973439138309425687051602712729559746777401762972553769015147431473654176966972669951265997726067794037276313533379267451039586153862622651878158470469909814120553454065600322486768111241229428332277368319748341244619832851071374720859768914371139463964987967027709735535906065622339390382906375550136433896251817172232051307563585047807669140848481165195985881322370039800738813058959853877209925480591246172929368050760291890159280241720768813833212764383336337791368280714104520617402418139180756965715373832629403572394951673337028758200561567529041175391964090082076485393356146498951704564969771471654553295873783454122997112508435346991965170656854730502608174641500676672535805509489627227030217184920819399770408064191979188550915954558387182231420324964819971050932196312998900702287408653073799686448001079002954068249129120433090501447585079712678170866070452281567331208795586686835153398670659099358606850207703561878497123793570142597196732048521241464309288721465041881058420019364080494388484428204720627466048854675797546981522508321175802652256847400507866507042987203393530440806143819857626380511872226217343292680664439480669778338115566984697963494011327569776325153049991533195200050735462217422963194030538290732897143016829467167581069255938564100739796153025739924568368355591036836200969612303962576964236896206066803212667563029039254710332086554796682623027406525113997247691786484757600270520107814375287639328901964025189292924448964092566418021643923716292123968743239183879143231760330505059829570607560877249097619579815282204632433428568165080223164338686908110392766222209178718819381730291997830718861589280714317762542904959987060393028851922005677272784964037717156042856493291938677910424656621402399247740576551780651149323741557358537801669749245585535222804868873263408658302768781648723502486784333692865862927284946175108733987043752571371137947674327822909780387986978288003233872806449677435708696821528303624628736492376301613804760840318873926032745750446429784422712177393181428614962599866053092882425543616775624030849128336973199174013319683359678393007711561805029777713926594788664742261892767254164069418262665113851653253858269393075071983737015906138005675914192724120599518788173813881144138629928506039909439687395878175974795294737181595658742877663590004667578294013829138393776436938346441489615112758082669446360332511279774390962176483924818293005994475720769325381864181532603234125845424174760260431078960842513300613190731286021814833532460967111420048439407039113228283371079436001519336381635641233037357657973851570869059515396354223441854606549472006810065421496919500064458701059313954209896562273768299985586821822389020727111572553418427347696299205855598784571024423125760556393696616275945111883934380907819169022385405348186386266708222914643027427524621122686852170273600873883431333600264925792257754110337610146299870420605955569581422245408260865142216344522372643474076548691832498458667563636848107875517887272733192266643806786163260211774432872481806040139734657472652212137450947158462028430045204898834267274217145750036668370052058581126945344612498246532829339854605704754748300837983141628937077190308981392365284672073049355488377435677364556064794203281021015880799800965649922406592165545365742442526461572437775534686588785202025193295508929081230455330665719902924998443485372924730274840986669657692011492524153677980127178654485258406629286510199297558098368706422950653159216999520033964367396571194333545790581555764265852987978633859513161535454477279332513461326739724457983279782260294005767048824193995631047063446076339850455071051609761164457300076604394720950485722047679696447823171167742289183219060730686564684443241022743378348241230464019728924364700506932060629100129144578316878715877297647121761854552065745379274609270881540639245061959657806517111619438200957195038580063681058154243203218395537557589143721573481268580885597653960706198579734917130491096509340484379941086678957561294521435789766369012380440902484501593053650521115023879001901079012172643643675647651021238209606928604882086661656612926185321050323104361325470808886642061028445626171194134225024380423686125935210784108620472429127826408525390221407799880503479019707408337809567537447244850000650091309818430440136324778277894732795012955781411123082746693126512636422715609146897683567494584833200307592322173508349368787961076722884112024917322466974133862893448597910320648393826940455474229203460136316607481359114864420177307573689816581178807766832674005014473303499695748061304903357878274191013081690882907671474148885234691761576381229657044010151191323505383038121114570360982157186230801571080154068187620165306108572001039391435451039777503933010629936758005789824353460811273522028466032779404661779700277295263835031028208043159836908063390766499805827336820218491905465747719268964252100684182625261902865758300007810468774512037370866168380962009984422501806412024069597469850653072213248091398002215997446620233414046072383356062295149125252457440867128937141673127607071217827463146359317227111918394010427772591093813031316245689930456871847229655943227355126359220091977080492107005010201184238771477885276044122382064126709113375034109469855201704761967985424403596150362364532861009686881714944203872118555724053734373837511038035685875230706470073104697791092177050932066710844882648884147453645717516803525174050990106095713961909767097416331288888609442594406833008036657477171061816843666668833508697110242950974329350729424919917989242432602783673427111009494657165521700294642774957735402614799684362777530125898207216413806305348308396246600703856742724191225515572051104404585032893974539400818770625097790746660878510601821297886150015312206224731210373466614117830728795932346956213422858219088530674279772368349283084820458796327768772733476406909642285567218941709328990824858671648540252719636607634998544167092625455447604115224438844786250336692981119047709113778268448658947463854654322818963379315530577372772585200454742419794277849198807604537790072423743094645187588409324253821835935506550363385309103632180745104834648840053114448083828218521515925304904682193829440469940315998992896093415942667171526527940530818537647334083034587791430380792944057415550075213232088577224184811526812425097995893362263297022790345758617873751880722579082485711229514114251259989674046047476805916261448669648942804393476775320632136909391485724166564873934697411799573321667669690789043046897217493268343458439426500467196763897311660769764648085328030520614908100906632290864919402986498980269265105457765834918444268937818156124464473658466605616734918352554976216667135603417973786654192907526762639525251224438519481095865979892247711518774291746494331448837177152088385575519784125954508298306724716959770373157667137775305035433233800206475837159817092793096590998432983940180320814319636376139169722005465294193855200376815023892636063229914517351371500514769144939359847067849363960586700171979075553904219797205716505181635134478554528738678106036018653478420286731525464042784152927162461749175618173573307986145804956043444939374085651845992447921084462281211451181772710954087056363862685377032317470529851846410232427210061510654845133853689553678988968953951687989681161776208539897894170173448769728008059487697602611746555989450429115793066798064685145227553314893818397625715137460341207064864061657360692396733517953941700873928373269088106558075473131464357524889550397544232378388840143407836867055911090692122400337240008280632324971536016967876312897893773170753208973532251103343890628363887373952473320157863996034891400073532523249757734191016268641380553718191810717310994568017652253204947277222760345286794358766802569907457696149996478984568097338501338536269535845871901705656546711830119235482185788271812271636435575752370797535548797743543229638734157860773017731031288626648129554225992306665065728285328054574256085088087572024401859613392224082266219543166662639091117762175739313766458774447514894354055179005129233667708858020779967790094546572964967707483081025421961469888933801765281063262486822417435409948435358658557174631513905993846696275165306611975608992324438551263146202994342470605841140247576391351110849215724173926809148451620947827085450202532596801887690068527336607421612800964963551073387749884097030045436062925812397535644950586551227845470733329973624631936608474779973614215124259587130691561500177898086713756979438127114753460939495237470327515680815376611370591727863161505319428408815160068469078072618264560366880106944560628016053525819799976463494449741650140590520060178188851686564021198743379850699879860625943723079093882564788524004549637193703051410186347462434234880550473189907844946675737562179017445084369278141137475142686459385671882607362304302282021306824117264929105722859147709608862886892814629339996060477654060662297482192259407415032614710117410304406356098102766840451331348764993668078080650271810124446407853509064981654157037252175585350199054630406044773332512538141821804635784095310851380307869858925107445055762600985701551466758402765518680551587208593023779220333624727212678830788969472533560474324600863620495798826412638882927518148585658336372383738082825438084189510360008423510786803592729257764258884922853935975780920976469102206885524158736990105515034698968263773731566766129522701894668931958027773183001143947012668313764763538634399666045166601256456724206786844852629870295117119639697066896769418954659825594198973401727587399244038657876036745905274633330787474181118060528929561022170866432682249760188888101710523464979892276717385506025005148445535972085039251608472499982356597041145776186183031003411869445167413563554234651877656900833885931825601034608529997463886156189084944971809813861676016044715025271307301770698665791497730223210710404126612890388493352981457582066740182844595308280408038460833815140526027656778468078005498502170038653752558411590406464867157412822220848358004279766156195166654678418006967283434606433511229072484103922592370098093106281854540443792564891078602776652661570002707484436603935834122027511261311619626711022838575623839168985258607304534694439993761418232008072650974259061089793001499246829705901203404165962841630795279739270120661618578403333707452393841083037153208769310871339977449912846071134254521432320158044238516546181488175082795881458273729769700759606169787881625831879546331838596143846430607796154580103939914351386928368758169024420127607087165784134500894197107391451034508873064651161537796579657406917073786789801982459891137769427359376184267222269492693052552172874259006300865636905811387517396098516847679275137174067535526704479040912446227011357870827774443134246292120782113302477118668024209656205438109802263000594414163180172332676492015680975642207555294960898359252646091858076639718035550367308513842399099080260291148087816792890731393039286849041781899100386684802949744726458401331367916895201098452590537555032646906412572250558738184786651580099383372854701596776657171596960387214484719692692887374136924164088983142672408156884653345449343334712171014493076930515687336739599236390282159326381392836515011914678171118556885300548225045666027565848949860334908433118100912894702828142913297489118602774838888724356053847054401954262221314840943827587779028699815194194701054954597113798131552211167769154827422236993756095261200485380952707471906896202984033126319450041224441227961031882107660502231406240037893805605562571486219771918808073720214728587829874460030977809411032264270695724813581324638149630039394401389762282064124964676414450387002272627075628441540250069575261199299470600517466372183317281483289599327320308953378960574180943124217681755507435900059663656667907287193162499620424596615584966154098109297003843233031517200679254360034735528573197798716486234128375262854543105853017314305771325076888115287126280859926606758562944603103074653324565611805864190022136626534192425567111265653296378527972238168095555620897531106893775704079323501553943426295421696615031994545505950593951087318487620850226293216630223809083349035847018221653562788968989555658403563636053217462549855178758613225031849639513344140690134644484515565365413515772846171914537201209970600386944449956758580011160400606842777155608559614503161844148126840323601736692837995190024819692018447877661097071288276757221582558153156990456003585979753245937651921477962893215181336463639371385095928672669675182208094761669797248415048428843108947201350959401792222004417403726303092410906866515088409202829585995516158216614536038345078997485446132040980110839589767357593045062557294054648132357169801166317333741373039723399058284230682729195543596527142448231558964975605979858137000071343797877125139572470460461159829458486610211982171203369927340213850669740833586919030411921726393779543273830048846667303448180890316392421290619729142900739555027224076253299225904796399403374705626215204844234042743130886598689639605773227962472731786095623916095783786353725190806677545542108349360351697569082262112337272236945328872990271346297046679689692193332591837483034143379199778925618304808335135581429871699380815404627605354565524512635245531769758413796510286768116986131085646219929752733820103856515028921947919606459022207649203604083484200898703918469503050985582638626884095195110913994646067968391542658312655224701263337877438852629792297809527462988398920762196177262812153029008294082965535756787301571647036972665288109698032924096517187525336357877622218921741188497453096927488003180686989718494435639641189598577163207307595778592616570427132661637595119420897295130289770325763860036093117690495911018038394826932530609469203815439933254483586664360227391720236772785229239559246812739320326345675734670206839497301675164819582039429479160566798113324756922625324870050654839831705972234750131631107762832072523379080726169180324605856412076662380237759441126877087806198686809566482745142113480883328571863367977347944519431921458105990677321484166033180016924805420951315901145739261627328100292593042767093039138914609323691459348424761991732503961462458629100449213313327355431842501287684105972967472259433241236796279644570873910176386311624724838832088874283537191099586012297330986940316552071321685029651368701917047348064192206488339165806700804227473933142110964367083362406407585716950132007641932429657743991858849155646246525808505512559849683891130530142568633978974546398776173018167604730424347712627437830088746917261251621379249462339774878276475709075122971984753902527489014527523187391507536816846495817439646742989916359818813221940373321856561797221763907287547971942516776466831894975586710857787735092262836128727426950554275853738071313336297227325487213493303249736295486713861148066877147309840028979608262763798127316377717844348551319142651016307989004563108536546627384952855584369824003739887762800075713826316025677699418249955275900548130163024081071950532713034875679986202043572839832726480944317151066084655151622989946504443419933539359254138643973283169922724772457444766004377856886579143420383291772425120605670881919115969045736095587464369477778693148792716925147119150285089610284454446620661685638549704564180404942267609691506859673846940176886399377240511582951992396357695147765037046036925645740912077939241962069509961317592449241639990111939269279690956948928141338873200783058648383725051620364685605164060762062003643395385983699079289278272933989390461141824793775498893185854218440595562417742191828691842077216455579370556031200734922688032085922910035724642314551721137848441397843968117395127221269338035366352755369085755711836035126349275746721719338681915606763122741514611053310788296712555042391151454846002711125911073586458623571097143070596869535592503917452752218323548800976050355016221346383725657167173174858857825772707250071901010422283552938000346742597280701953480429544297573651826277738384293852166312560081908864459103398070513987424985753293804043285715423160805132689634583439348545311491847406878195479934066266808603725589489653545578710872967999751612527040146385887321333444806657140207034958072855481173053583151060163610223918741273064727397017117591425357625570991134671375261941757990656461126752854237993639802350029734687800555546996073253385892089986074222339844822727242020765719624021108374060508215676932547538618944751580566775774093944336030137499153912592207916160604997485068268102567033597923196392194290748796910021885849920652184241377316203516645597281911218440663249735632834958664843470602515605912318862942537970591375239897930735455538663482166301993133892514428007000125324650693226895065342980168095270535035852939950952537467400759030695702756106011960783722419574594218597511336673417263634904658392572645110426979924073329795365421629902244683556946075762316743905348450859551341776041273130949597982694087967108614501203478428291495254323926734475786832346356475135417366610256159843935923578861431555843244483756528780738231940537483517350055373476833402239225128273593171653570415256216935742244784372055993160450538091760593380700116855128629551371165318403198901849166015810874509471689181606906189764901608639303039987173452201094664773322513933688502700390351491155835006701204728470737863483703135364172383409304101929988501947538313221817971901536498773152889491073481138310013018200217528940357824197906450128589276547753818628800540450974140174599564658231246281566106872997355379520989867662712343350297918130676663360459301573699718902529423782460303397858305895713214602442246780136184516989603620380739337444494232633449032499642634533629130091452934635884705965387176033908171617507300461881264515416387992405562212052960908972381187755175163836051572207180445837676620984984038208585623260340267259130784931744126228289652166122978064969759910652557295064787061270679770826477139484711721544411049918935399718405167887925190358096785085702705543515072919627907344470945217278852331647594105386301361836502623840171939858029657325011722659518160262638098615179024077755260049190725995305266792293141859392806338604574206120470765075290723599327970449985412302574392040233444501799590368763700265343928516125349433969732761456750368154567628241806180905941038247410964919930874560287974901269215457940357835283867407671177721507688082827748868793071213041673796656697583742942510773321328488294035373420390325045240695969595477956424839124466410661112328175487711215997291982088500863107190134327316293712801419034085940611929820045300760121454907113549703278117559138502361027124465137177655486059554652104230538937268883827285054328079864363690683874493038072900184876068617256026279279798350126640186480728757973350916637446604248665416925451674864337948382114693661269161673038111156636059864904724222204172149964549908442337369029206119911731953771818206830207243589930090312163768191692972922816323370422895142229975050046715818815916877730016466029542972110226929436592440121325218046599631560302211047303004988280439410214417112028964193518536470015384346830535624162025973714464815929680202537137776491478192268036486813524587690551801726726070829512022432991421522437720472528036164320484139516706386940147771833843081888780119680689998778721365046521267190241646022108160941205329868463659618581699789563577312229365149641673281356511519075143384057643985944364044688030715547799230942946410017292014546836736093100377658434679825045178558975828284387445620039914577203617907367062735411810114350097651368732963194897841863312235085941555600381631392094146855423387744628403365645707675559779604247144790645622141258810752282046961271150148937730053610855642995497835737168899516315294638484794574863980389912547000105515817100497244349563352378173993783766458934545219495161849780084618746365303005240982106708227830681328253040851950592829105820782131688368621497654408243468789686159133650700653125755251506810350910310173403092374529528613864169032907084311656227808918850120926477114755291672485423614354926657324471911607242960961854236096441616205459805474029538129929759432067259773000081263885091612378257006563086008147222654066778859662012100468324809849652320901614501171963312285095437467259516346380816950156527759765926752423117700264340847331986918551906895077493066850011139300895734265331759629121203348004239636186654609969430472953373305573770028552220348683412670934157082117516066318429632561117830283710313497555637726241493390471904915900887462112627336011261656267394326976791332339843000831350390370086783421128512687030326720982262125904692394336475473087466788638975041437381377517817514770081309363289390739091473562391418400564844530748791945387852878716192177785956020380812116531707610632274527970836759978290302180325862957266815439602275118728613994368179460138360859431246876911877152014974721152774783320312060567224248433387133255297532051762089860099577297192566390949434255721410379717582027645938878723518017303165317548071079811688705695636056480339504863327163719633701687259972765688764873264492419418227464643100456647463341109906252025827957138517548889279561846483742230212062077519098312906251085705763790091246344759675356972949410480834937971800339575359777968287932314891930735344623232746893516094713587064017674806312273425882508380593192351640564546427226619837054467944464781331134961036117919901943497444042866502615001284189450724231711111800556325034972086984477092220225180486597097202176264528850107114597033687633601694927840125607441796089369521483228842826424616880607575465939163384670825179892339605918514401075618296009663988403656528497368119209107268775721771909704428381565109401500333633040966290905100834349126757339238476975998349203082424395621307413896726045798028707803101272463325165537968267726891189556637157380260348272379647759289468657955507755875763547699777615054297801105176228403448139722327534337467341656951591360433907409025065685030665377934319276332857520565001168981092758211154759767624611201783091103570613368232871230139001506657061495332075062727363076013036080955678716371021761123087409909731050247797407827682673815928806789390240771470681315563379278125582744507351723797315990261596437797768957992317895541599281670070494858478157085568170920299596120530819865903948961583621903895585426696310549561753172246654610745711451509694159134691360415625607610526980242830336833168782563413749652905563134530195722964941768170179135168277707605285565382449628833534344506801869149021343109373712726116868008613882605905975804160058479126572392796011122647617458384026894042780774955378687669536304975796770749165090402711253522698623524353821734696534735349689966959047641327579011053644861384031896895693537006798426152507770224206969790748151497884082475517451228415499555173128456648827181105716553334039556649411269558716153302420775571371068155438744533626757993606415335667824290167277200775121905851168763479309380936333378150735240806059743201730926491226307021007441037473878971709381418322837223397642484466321126188421319563623926544953457341545783572230660749573029660569512509497518682590444367058414363892446972296947246761034284628722622505166779017969144140510769727689629451356576676600832951299698295024471530065313261714695357533548901273240138028964445389407239615420498451552862420588262768464735527264056318764028949644563497708880824861479611750666744514909907255132461329434863787662494378508616071505944066552656341862245479921721460851040567819391788341188520007127778728597587908864272733633616868617713058754346659460913655097832077153446668556671982258166393427269413881074375762173163951395606525316234811295446218767493719155013250696370282249535996751555473304504773047366304836779171602123709125778365903805334735251082947136098553847417231074638057248105155657670245942994994542430817594340687489411717281988114929846870350568972464112627769529088134747668991048712315141777011312513523165368822156639721755598591281211324777554716715712250950550652331929823575001672012888794576191847447266525440963855336299844184029155087420678462358235086255225149223056351218275751243212276997240359754951349861773375136953471365618075290755495904052652625031138121745989585383493055578974313874233029513946206186752315606379927836092865038116528170436676646146989100508937644258693846740175368236193838367704743854946153293367761298280965961788348332893687737693767502289778437922586721264614035311853748545889689671807425421327829927045818232089323504538159271912662179197230326966870456784454006643583671947709253879672848280909810078143532210136089172511934101408984440484278357195260978936353979992463798516624764415826810621248828001425275926339628641733990586180155476212316993231792659418123897030029982784272465329047658497499502455435636072140217206492935144123458637568762659738821197350861003862295508225241781514933041404956173525173840695103218834326964292773102545181203491419123216192869537285248988998197670155294687855353463507391541890751491032110313781059495336223345732622403752406575592573695174433304053594651594441834935308055453385909389846201085526955159656670513890419793426805442605771338267211532496844887834510506459798387763846336787733734833564424368334563523277839706572798498433065152266365704750765526969396095741972527167704178077938274989953652610150400540712958601588207102348542359097117762158667746584262121584307065220008050328890307263513948309164949868489008514408078219810409867399951209076276559680315885804171410458839462512672798691704120646230074838603470505261157569881601017934350277153947269044573878085411535643924850638865655004438957968805401295821661217896331053185712942072967192723078087377725440851684234000631048267367139117572071312261857726851574479089979101812067238410782967414727405344264520724186351109854300341570368059727009398373700985344306364036707196071890401076191623325168707615961138438838775124728849540766897057882448218771581234147739774881572375625858124367542323109001691551269713747224126889902200103098694161015129221519215096027530224680847438944600363904606437116965759343729811762204992654099439012127053272079816953299589582464988750026193305168196470538129679151014813835314063325697727120857077240195258361333104033855862449788261204705019950366842942020489579122121225555861563471783450571723955958552011963571811064218918845757235773014551404830928612139088001582549084102432636431201647001194452555048200709349313358792682233464553860776827877683745348571196904310541910772560497859945498136890509497814188772587450881847789734096840980771489455644171672111443320013185656322292864799853485840033044471679032170962812552774037422875339394658609344065571649700623938435534198648614429815231961923760102186588485583467992400337345853761359566332745586312182976691472857791006959026950476343474154833179186254937773541550612249480789410943851746132044804844146338004313747214482692178550041450174556644414341583720302607021401311847214303511673076284790256940587335776319059320656839396017882520401456653950058669547585235364563269576135108263905709992509294959382759739051997240027937127350589718193689207282507385800571953960085819070006936183945734124495423012822041010613213686636377818876739016314738850932590972478712482348138838118130045619208328856546581866556576911523328277848617198488275578325514130425004088339919918685117482256414965145170130896077920397450677449375421847230506782111460940991065150666862202842110436018850541241463885832412766173498336560874366184609574600902319544923917563261478598037717332704881785015405063277992042622530092219541134746233235694203961693219604669542529989853022421965238526118229855681122155646412781582713634569201979172872570777766301567591713923570587631047439335030080818540466108200501843915813332302281278149786555672936758237970864806005188818321126381767021039205279755507945397214704192082046958483897611477614536261484993263148152558873096063730644378646674237482628031562229938133779364771114718222910665255702391496736621517225857556733984148839058748281007203827051240970602441778663542318755682283318615002580316942481021035553246337895920308867730619062069748757406245900520921058062313654134681767743454204955552203621476176269543742949503125271549009780709443189110077324024006648935667618148345285256344277116233748767040290664535949896638885522223772564239264988173102626302582679287099298030828766115760455549419083097723692663549569014157256431794986883007127887612881112739789744483484680010407780309261955884255713204778013352428414814462992131398022686005799525627399414763309510492847024764838803665795577139652038049739174502649390453774129976166510374516127267843163797019104210489586299486379938416659878727240781161508756545805889395405693020989960868173620077515579315854702082656246025366531788653485334496382673490156019490880981595319817729247424715133729779960833605427776861015959999891776956940658496810608102519315564945414897370900399829927084241492911357843621793805813246220802001819839184093749246753022333240175281558547460329140877844973362209477696238883067298641062068998190478469739293969959254175009449617671846126020610678893933260368598967422170116909721622771216670421483023081197133519988714127969517928396457801679714474676197266993036425099146075669270881913522307873390972937413141642171919788956518515357488890378540486732044300987778814442757476588373509320759063553203403145450765972446126804100256632939837424905295930899343345675976228488180731326548298714897930335146684727229534735200319498389506066470723007636267262192462027074040301242795316779478106096457987096212992712347431054268939453468126504406867493330986769721872067847231460013261096186564188108393476261016851403993168654449606396178608928687681175408133021057161064258169658690238721826115514741325581903192205714880718295985650853560180734955749516298916016199438342950723060270135390115084102184713294715353907923810633892923388100288570648459406888558389862704761396099373824512591694614931728301762016787409626293992060298548871875710126920868214235520439739168647693418511482150412859703849125305162067787813913824773370134505717331593877944499467697421237551843928615801965505509643269362855472302461163571866920374197845396852001857732298800883449676174636593287260620049887121223602263364129181274957503037707733355226070322732913567582394702994612330951298186767434982652431580068975888837248882310710311289638046185397977569515734650640367414115105280565981945888233745810254561654413272989307439818155355683310777994476557145995114815916223429576020375905249722376425362793403669717979495104329251240515730744014795813139167533662287904059276739100772810708411587843102651791341063648954789056767792186782425890764417067426721964160400785352588714661641476568859964731843780677726861937365085808789669875479653296966830353105037783608603714192811805691483838600694070338119570298440911393199003361602487435455221300894021237771038380641571560548854718486642082837434914272477694594613021647584799006115869419714404803217337750434566100151245558986181485153356032215869987699190752760675994598284348604452551612352505417934732759750233460847210982899882530169962654947651197386339550531535737034733720387163289548738113813350471177735586545485766095304215656486740360495201049417696798611834331748789222636463745875908519150898229913352830044741318158424752182758315854509953713399644154313073372582847130078376889509883172072482950265822801633173800537127139871125018608997398708238994853416448760742234084817582503049408801566758533479954767851638225500967053519670933711728588798968203322084385106496606028159306025337449158759752574423378128079090504832693143831098516415097859702773190217120844546194910725687252442118034696680393281786109304958225978732550915875045866759436833913577166980843075870506150924427604256430314195849172413801441581767824732046564236377762652571869323811754369884994305931043062417478137367519780546129562140954519748710018764532004025029657625624521124045704357184412283723362481590295944643790481206260137095392315082272055178630257194419352165803914327615449573413491683395646575187595399743243248044353712192479352982129900466830406252688962829610810468558363892693593362634114917861168759794462351471382259766561847635264445224290116365336804691056569773189933896876440769937269616407892999217150168659215751339347596531773718943326547153187828233291484445909436398714181730110998564631443063128681730373171025522271790567317925955125846038226893617361656960461123588931080456822961081763876734366574196485486262886031796486832566627680323767647197377498029256206760156345555051742032042755394316786693956633496083597484042262792146484387054062725274207923579369006012057027848583824778805170942207156958252921081725936202345728826034839934714465904932822985882814392820594932478381223822894783050011537901930049967028592249308369656969818481205496952049175339110486906437749011136900725419432118639999417817829610622855878259153241603873943396830211243632842892533283424810401191396866508261296426574467763701208353163261862143559441181770615896218552665964219376170178638120914587358907575844840903325056312632657267724830859858591427740171217351315410855253685138398036666557512721677168058437602070463137421071642193073527653622940879836066351025606929647189635693301887192020478226610858609750722199292608015752754324930326446567798910452712079666650720241767868018817851515954149523022805589303919117167335813398531611595121375886009518119525958288067842556070597471919576455855832985709322085617110696032931264497517349726591097169385634298560744271445647376989938150745612589482113143666011718938902714733358330616605516537105792890570805760668340294987773912420370889395600307103592614395261061193975839771268438572550599766046850123222191250922642830319764387422824244069206951096575149185100538419182965047748377827127031069683443299512911671442569813315605930956627368603371779751140091521100786321722774131615450611077131250219224310853775774175768570445060410939793965852579912641750896414499105891391520325427965085244391412196365125245800056228405735538193566137189798006641004950989913822202184892178103180847662339772058278539548407645845863899037665298296616509922779288587470684723757481427036646753754905530769912379212905260545157033065516612053300298566825402283760699995714657931241077044765142009506986881052899016825545513487423022742580800502130274350818039758118651751827789775945604400542702380735812406317842011306943798221043928322395384767052869491120290068168823560827445404229104308923637617286452749499473165013183813887807690704464684238646794768550824585949757963070267051348554203585843285435049944413222627909574576035750106921966584953927966956213224981673550362527217699542202501872620824508479005626356319651057086288671383768053572531895986199218903527231856723951140448419879223745292911165901467183799805895590569673591430237885308260988234678614704432938357254195602119862402210295036225068593958141965453200829849370118937759036724835935120906771474000002128924963398299132573995468010923357770555412588985963517137510581456073564657042605411123786915268049908837240998565561711515458024610579686791122781820549779186948449131718397767315018548622845093812624361359850099151986360900609256257171011133160621402051158918487134528230236345116783927527517041037408152885438285892220850738278689209368329997195136135756426417977690735743348546204683996548874156799173366598429551267583320291732543136873694322508144229558518572690465128875342203026103983216101608461535355500233208335710787010771980247461860566703998999103377416164099818196675443433856835736872480779418202332891462630596571995571668917052444791973376751943331133508356145036759004729923987972827180386002993876083063610366972406284697175364396404600528975814190226488144458530171555934126905303438089115861253200383858037379698162417731898619304523875675107582097704974629017682226769229893581728755271390685056274011766694071416891410582299901732619840524150537147307525977415589271677830835498087639027454678449954386983128899262608819886858807315504839042651813769895251867299988293028488591399175230636055526361493920426971714776469964886548850787650966589092895315614448191765868903643369653486602682090469650530067918748852801327336844651600658491245705706328618486046401855209501444368029917046498189860076293185677510895837797543944934649519694085983957923502621367747680729340567950733287015075683720320693045112883867492056174618003860745679815351318337612565726742816158669138677957904035618487013572815249922311147382469133215059275552321213275970390528554887330039924294295065006883529883048922975774914811216483715496211617211385729381568959843233515252296782460172005673019207317506787419356145149434940368111141369023202957715004071821666918408435261304674717054094999518098753267517600979401260204334083925352486746596311042247288623013362064592358470588937591512614600337303466813708494914953295041785596677596836172138372991179459177337279682511611773497935602654238073817795045854017805127761043607702659536236711230796754144382316785280328498782286221305922331035399880647569602992989796653742759577852502895484320178949533438248305838964584052398810863952077786608211826047947354243560909959517791154940318396274279362713044523400952179394366237485898000745832018616194308179284322326726553918837510653128932139933985692931693288800440744407161401416203331858696244429445152698156326223359807883940757763849713414974735234470944067910190539030838327385633664605855967259672846969774975240343030943944527810893391574547698550871678584423865174005386380516480362998665031056652438189707560277354602273717004860248479466940287485225410170947562367056340914359740617611021051467615865361447790426476242457497260241763093723966355343828195779437766923986099577752720631497760043248589003893050065228396501964816607349578986371548458477751494343647152044642322495611185742601200467389487073251456129820902678857071888672131071756505935504148919624340059713131199342635402999132733706784061650470143643340358593484294658122245455564028958854552004937683136780570489831748261394170056058476187533738691965932211113255252355267510160916795030962982060757029262764992548855545164410571408471056935216870883478626023220559187862997261779884244259214666919658661709089779497596345245216071347482332047244517128565606896483046988244564390324340828553169515324608913199733338887819368015822443161489092656029921421387224756528192845252555836986175466788122286949260208057761024579685777692060084081626367765032564022011433288491014010732212199045730423735020645319206275858947612554586671536475915059929031230555339793393448711196683375479261997655165788381038882873400239147835160387564521247085850578460341342850199959419485648114539220681569790860807830237724108084297973751563877816031895502816785243086423963198273906140001246366578968298082123975956860019249397470192250641657450854862683993780500937970788354206945688666603419538843223783521559229055378094939477063398862006312634802779428219963282811494429112332807862338269741456663169921063187668405688503471312019072601730990282472189731486111812533963206128746633059610978568117998731679106263840602633930407169039172364384822827177814116905862937400825330238920417405194400247889493683731990780563690820806916225928070974480909581545763148276959933776409190955638184723626169814043327367786007336355223249657365888506507373977141028462361581620628493626510042239610442372708393731252490884482802480025372683790628987122145058605101117331189148644225839554050765756217011199516114812182161788801585742613214402700919183367029493089057166844487771819681390910806362666525457840794381171177487743035924821844102016340764604218755704243111685599338159553610219519736126158806503898935410567502060631573443364910834164133078569407544144515738115133586335990735738475216584601426442085175084721841188712547881428997131247055146875108983490622321455797423259462053251383004228183158132683430337830466857857397915066269821972640037287693280959508871830689396922507595283113200849288014720391472634722498199342761420151927017590270321622760369406987360294074020761166448952177388267495628856507911142309954090533812318660942523270170232487253610490953827775191626795920393344385950251930051114938329435902397564515006814017485154438417694776070163553276242316355570929775798536749760923316322779345525086313724780634412863247754554940144373268318519358966073670561855601365156857924084882316971546362595533968053680342216520874788549963313868365147026722182665615645352876119777396287714796892514370804174035526057032818777329443922146341704539488733722451968289646255744288719385839174288886357200528094674883868227690315507653205630728902675034582679919967045804327647477806749429657359927218212288249515663459212158658255908786940825955580605698346842732259366087869235243300408992393869455776867787282615058860707899821815694189395165806824959071517577854417336165190630424010003889072021415378671121115099446947956843653210750943747173783918917685877571279918988162005033368195670959171096389643419690228334256568598145799606826224755871987038405084762302429789546351239270584773586444910907420770633880099489996637987818584552386333156838380917189135577014291784116416191516410475812190194640142818963251116955357711812699884499125090904309368855702191278014509880167147462506427604671462455424103653697864391297674886074105497205765259250293380935395614902482965892524873425626037253257130762205815510773856241491039029129763487078202570784717387027884915867967592105644886855294456031150516707977869850561296369769625875281378502542962235892097411609667218380069185024979982585998459823301825554791881547095545153129386059634571897218055733365952996096792401079993828023290032147608982550709587509492928715702009487375409103472520770497881020964910702468462563067289064403934212437597125081565520431279280257561612734338809029497950535774044502752193858597052696608595185170012128136683299173607693168724558562979139282900345449307676461864764512418598716085670449212010920143817409996111892684624302790575407277756349118137351844157203432112573334937577148329119510137353355987069347149190153072672778875425700518695689786085957489009367871904746115608804313243576393268848893206114405680347300562551082446954499824154972149507493684269678662134624677870445291851439283795847733266977081061537669368066738315477754160742412959560125143259883903024833710643421166595048174885595400422352052324395772365004778990359322692135060394669260012443892727251929632546951610308240508008068646245551507186010481412333600769162570585844734168905012882568505932934722578142364921504352194985591909901002173860051074523992125110234111383555129480270323706397041255760721499932419026249989369073714916854851592970586885988472543891794898612221787607596326021164864014142201093106620669921602629263466786533113649281180791747741970240975917084716156924425035614608270284668558171762142419472802751321535825088258850475812100769322806493819641355708741417988873658267107340949737874220019127556231714204497594207590307381802817999702781015253909731404387313419691235510806286120872515527710512808945322522850021564148867939701404122701194507255247403963786803044509139393529739175632239153882614762911663184183074008990627778716989453018279400522504023306839812097425068896380461011489113709672070160421929283474221135991758755303643453333392243654500681023775613346583256819798444776274241163994596753369606654234997641188287089631372130029236219817191571495718874910223503262030828179433594330533659531650189403755463070143598461174225723135107228606961148362999503778936260913723840387887396126333258611769409689832189452470616754805224047841400656537637135697060920669630574323700744574228073192499620151427358317492636843532684891364635318041713874963444327097980991618834298713616993460105675524719019565524849996857458107967709309667544146973336730067453881606608354219368093451169229453476113930446458938338760723115070486127516153422578804014584157726805904933302056212991896586878391575136521967523675793536457522621502786168503617335963224986612233469306315732365422056480469623071120710315709706230123677445855533239108587372169105013067919495678432131665690684841082383264230460871268518981711131493326014917719477712345240572829097021031051933011658317009007790154605138095923213712255376525881292514654806261047562594892893313353328656721038139583815712927541293396528964646609763019772344334584543052738921322262335560094497455087952955611866960601362972646107120250802805412992209199713083870740007842352036676019225778112177111572504955314629662294505762919937324305849590240032697898088137032491982227323199278482063504940893526591435733230423131776572749268587515159089246545741900120998237666527703452529448591512960427249241936288068872825420477129785519951640220859166393727817622321574513313295461232485104552357263130907454593719843756205235309045837146978991515875712264436826425961074202941163916964683459973906893288274348398680335071255472963390703050613492931199401781320531035698337058145812303089825342567966895526609694287001780963905827673452198741174014459405462424839584800486752149188731639101752135984768551038509075807296624820971294282690843148316444257764385654230972842480507953711181585993873618002414001181141695832823402111405040217592769453652090064232801693384600212975608816640971127531202616716886202183092146535017904652879986175145181700871023823543636814446714719979248779159393640800911785739833744721033638524586168251611561749974976532717054127535678801522285622431372475948439963181298242674533412405110818918055172334591007996474692566212261919406623368280129782377268824964142322397801921207205366201729997983238469124303118475856924593498331317807272304755995401132349048908527559542248847967116699540442904046885126368271582706587197654290274662271744481858974436092324577581572008551508087946705573818199172924644303677115352807659040341096632979803370126829142183953945552991797211897497014521665510447555222150652517589327031472779733239817637639639020538387473101391189740129021983326840448324112721761566072526801742643028644926971911886260490291084968510651044652771208626860489079997773954690816180314956995465021416304073466051806401082267373818565433829052989340824818873674796735711343175936176132850649989204320976960222714663876758695779150300163880849226911862505251713741595632471473663323099748873216667455802755776024898456037747752644646494773310311638130510804218723098181497610359513478521402365767366110122525781862919791874393420699522369474636301676310953834529314454650138264131858914432637075049266305437410825872261077486109066494561346471602272088200350656634073698314507668980603431287816412475169839556493985104425708607151780278876758066272671244299712446610737265854361701308922369169558928331412963651408309935041021776832285125349438822230467803712218632728489437778208879608614458793841024475201397839208023552726722447579393728863459746383145612951251516480576010484017194161603101570816785071517142220886360099614038586295728444633238149507632541183921126792549201216031843441613367055111337607715802502930853151234371698861709309517018955606721385401975163509867670283433958668035936323001037512636675062621215003623117599123295422917771652749917981569651558984277403339908770091938795985910026062973154339351870911770093963981722210543120034801638271530993103381361149732459294938581505467531383743519869009693805913440722543778574597421763239761656656479093816275313349224948147925476905671954310675778698946757116415703041619768764959403065442786659321876793232012223557480954307222794684445087117696148809744685240591716607251041243794735106299762044931265377563834662959137614043967132986073888746872839458397948747485362227909538462561865898992860058048269330335375307611830657007355811760409207853400655715165333639673123147163145075117428123863974335874780533305614000567642074482381859259647528474992192254740293607937523157104000196848362838021006895706000487217393612699711535774250144486528805177332148502025673373545596092793693209243423521901117526182107691007028351933646738313636442956761971985832721997856679317004799087096944980039140863129728027716432125253350189788944643948801267817496683199981252891652078787204082366243719908518560112450029055452114971911434036050838598405685844322012538165307461984468060562302121799784659465047709289340290143797800891090565477817130928850897380215973160623435092618772098618104607275144651833610192360572271951763333421397352650447440645568265006558374615672194763894388701709393750435787770376321090825420918422001023767953541623467161934620973363228908530224747670336389425501470941307617604895401658361188519904370204187459398611434026588671405842793462523610155062241240684599223166618909856313791003781330809197454885881080545105327373528901693430305296665895221282893822972649540483336313960444528380625213768047770190495222144827838195350327149945914595974045853640969074497214257848946266323342112099561512396514029232782680482862689347339265644996468853397429447263291920504788339739944568230105481851680469473649245737626744931078284222580138907131383055778889097643479422448776600531883591960312150333604447208167267853995321703329659112143142355231560234750566120989367422385766135934119851224612692602028610958968286185331600473854735977130043679023748294083078767983168286929752832817138266587338985697189761216697655209924978866407696979858973580288904624508398981537475710793487682514823993990537179146480221600595155219494067431449560118710078731089077102928054005823122389319131132021748005395903353357775825884808053690727734135385192049850144592225140909447947403222575992923566497849144483904610415456075848457272245369497343931730721118201364002314801915355989025524929872293270576324138442483179941384810549486124830895789852621819277977778827551803762772333252519024423141023383299710112533528661405045268827782588791959139096509563306446074966059433276758471238414010495194210766369730479645962332144885858357917058588794259573739754085723631374633986373219102702351824971648898378898196444600702077401990042277856451962211831258730187719534963335828414790956812986779000553923262890934189926158632328080794971850169971855263424441053068182444383235354943393349393757606294245624040742462200408530500458432110210500191596287241725856833310454012177345621014142899940082432122000316095445017321469205836014864916271323418023796163156764219502672339074496399915463485753916066694923265537252712440072421292453449247670048191679972259823389887426521182726195737840846098330139303616518970329923364176274555488105773937785605590100605971611094286024534345270389658968811853243784611529495854037439588590653798166693646176741932633540700881196444890581302175013269516696758457488218908752054953522765980694100933277221072304623929090016148047333628920170704656273281158308118150567737891075476102690291783352728212795679588146335757330638661780562679789449497118322569134966260737301974380930567904104251725325301024902863386013805876202693920005134928593527128031020242553607947018865790714861861947862634458648332051203923841732194443414246153214021923551577600167362348644972686823477667360877290104773960607963321352164348159593078734312782284674417060362610072642099760495592890057364966331776268442258191488205731309212998505108727883362026242861557190872017613765293945199436447932328408997635572059530073913737850460642377092928114702681619290025695562205094602142196214092191888888419977642947889963952018734989357688063519132872014730827230052417547885374171534891347765834881351253058754615513770962036791364599675442970918542659723458816125518615230620820995303735052124511826875085251956837975720200839032518159237588557762844835540106378173761306420922658633388011338401454494825943924430563839257845881978792409089222211976645325234177564755723500432223247241396990640723070691939333592480875399856236566342352332972691597430663291360201233194951883877347281175983301258142194429866329125731668934836952131247957716163431318689317236984816859963120962914072829813428164993987029120407834573057368933169629517526759613323276380709289817291568745727418093229187846185052457838635227720057877803025963980739433027954524115619115196808080634552232528633615785326029937944002921185075196982584068376840942447126493039780794018491247888579035676770065461098733857088282729906172967355181860596914985293837565327043636165914511099480744087214118926883324607202754817461507630200329572456952963707009711349706631793194216998629425112436946186143630601695458677769134830346169169877047015894079162018355546065285408125233110510688405002277129850538807454351397123338562641318084769611660144371136678942485574022712863636879462449491218296962852357163093639942678257432458731723811244780121459344244455604991815142755196480582080265815035293550033806177788014513864678810633501744616915675487219922416750640493872275880240211726823204176371880152096874671766755364000212196854399544214867663695839960378408274268915180867443976234557136838526157142249018466315473256079032103993085045414730512722440766656594520323922741185988440835402185905935864925749242023385988429884034390520041413436608209605273263835045302649124496041185112513258140826638258499340613492520147199290707124113471667829796845690906523003409528140735449328247251264612962057597306433001493252076101288572096546664179307806400289647619119954741856681373402259931570161775780692839956033356035465502321598277968449503283639658970217942489558029643116007319213489577002655698331587202781247424895901334618485243508659117711571484771875169326984874035449305326273925778777940987229578347365287016845657519526432292353055454083056629316306630715968274229412476442619822206363368466595333599701745807415343121027488751562862738520941505851634095326679961671599196743121892441345689807688372238137213032718291794977313633389502977333313000821677438095707181650159359120635510989603901389624161282266239622329581777939924217736828246134234033318906343533271518461954204846554380924680270266528445836816944964576436068123327692882871726100708742033679012697507700562715593725468446693129047274863369208187070109175148000151044609347578788496354928963700620970066838750193893398267784544984640300185824142125545086457371995673324243052204969346774652613048193158674710996436301733100898590304514204113337295142232708218174977290318924618373227796335877790726607368236564135113784561895122832455572920431036461978513420047044840863047907450058386840620742163000473528704248207201187246361923551998075598304033148797898165990317054485128288295787676727842653729992638164229825958799208960682575174965332757523426879028812773473479728749921851756070192672077774571616971503985168067060685671631311851982066758013329019394332706915560926706029801487793786697044345196735598450397221997458842416312562887512826873538835591850468284465474185312174739757487287680231833972133664680312546562013215941910042056799542579497939563244200943977011716036043888915531216013185938719633983855651432100836445972721002340888814944323858258368533016476864343054402455101081848872373838807940230744687031896427608634790285969822200930617778975513845932139501128216819758790042620062282071204263363019955638129255658759705479791031838647888648713738261673309420255075822814810762545516988531715123854910726692066278620213987347333844592838854170566050826118987209313011227799760607606306978857417685183298047371927929697022776528987056051878349638723203409404020259506519099920657083003180739628634220615105609557957948368554416062105266546434017416597101116095442013792411222071054239071051033075941401164465720225393211143058623897346298943300543194025712406623413470172493481880712347899744627304193057641404349574862882463367654789570534813184230116310835050624061111665206120779815021035283971990297783411136634245784566626013418788652810583998872495907163682695362884638502943275285911246809047973034948311195357868645514716817909134085455525929420252700826418238033437195758787073867083624882880672379573564443157141016777074776779087270471183649055601288506412313106870604981657395207455634242097552938479327257666335148023498439549066034142575831288865909479951547853358846649358866319782913027295623077706373946357863712653122839704754161296055494352341165798359649044781933412779543561057544383270738827259309937626301621711725680750516476646961257102870223709416692269628915910520187594681942274136902120761088150557131482497562569421854915876215843957426261003032063837001654511237122914419980466183091183890702024625094902099285288749017234753248402732121436517573332869890160453147817706567765497703270872463476290686101164291424396011193210599623931652668057000320525828246486350446417154591279217014346121214561383556115031185623959759809427534173347000581628340694367859876871786547371392443985501923275570608141674134483426877179828092687917160128212990601561602972333457375518802430878683177210684752897004755484390827932680423568657557255709487205970423770214187351764813793049458573016971256011982196453639677969991340340764581545903862290482764944243897659900748309786680707323958934292730559000742196626126338364730725856692230443785526884211924480646442017698097891109350432416254053068914958142176285537343510660431089551578324105674647959699793206642577922511415470913816561078795534527361285476840100467337594355243158649581553999114777259041781433846975599976331311287153962777244315713689941332247479464344673084354328209282322800385903338815802046574585946402043256028544671450823701483686572821044083127469899449695880491347050709752500854883430867677166908521217093387064568652943030419516140008068395351899407491345282409996014786495955380082042144210136257352125798609630729696558439797092207733528153749928144112096007361834736442338614480229291239133042688799847759967375017602746956800725077653049612795848986349962751095593664639059339232337587987990552960162208604147395566026375891671192057122027936499639033234005856723697764187769554754901098507286469624211685763705266056648381932942454522472115602699267725888255386526285240691212866286821662535005465783412702926656425692298180605337678164343065039400414079562052202438973721264429126021413121526357140806329846064704994181054838255841808410686515379952644382017497599554315597253507432374279941240481721607152779372811867306550383129448136369779418618327697783793123418068668562531336936522981597627867799138214448369240866225847744419562623661966727798020594620952417623774573077775763412009496780171916270230866098786141408508331956912115661643506398610417376591481473206029510750915086307678550083616277824564097802516285650530920508648998258974464500223760328199927788113864238831042365007935891953983959735453793234523760870827699732117501557863787625444152622368339513330353918166253915126914649839272994890751251134096164340277051448613148755227768891446892218058081704159742056402999312893325898586612685908694035695185622590612871847588226613593479070533932729400675735950893235028673635024074879086989035072018635155961714966978677223604185632751003440979624643596639068081337388643672013486952425762022477314054950841000377742003425546333730818567947339221016987513875076033857301057931326880823977238684905987723106190506991522492457727525803900140887882304936644793570241679695819646682219398737358164234293127037283110813317411435667030110388031107280978374922722810296758608881572719603749658652476278791699637579658836979809442598129469892408699245186971323615881454535799171438920929333812089981814832071501079760606446085587808803828672789173837430603051450162819339353454397974369210517522925268692336011916394053305468070807865422969681245853298015197267592167821218473661066966436290331707641450783148801055112724286921714668738923787119317609600001713726647313519461016645287409891450037180086921790718743364309786444365296408197733896464151518030004386598871402571598186002009222825871567739197135316853576639694308264019072103497052203494638852584543245598172777110363815969076170084658731903754598699697449228136484613115403339339508229578488383774670642055859156353246554111810698854454064313027341242518526872350919293755417750945991001279067077692896410569530797210990103386525135572965907197822734833925407974251278595491001719613431873600656383111046275301724634256781664514410509009334636568035303698713727125618827259708078083948968150700202600335461379148440943887006404503135322362869290600362192756951532053340156127796914488948949580917825303219332982782441076839701155531176803911322473246475863818684764946714036302231750199530594777499537721662556759059311089127469611073227122612691874929646541641363342307071708289760558517838198011744113869641752300506521337843944782825274950379253680982618352189066734494164785346468004114577988717375624431982088824212137271151753711309506392310655738047309594290294462391506864716550906202569873454577725520384119483325622029719641159634352516657759551900995637791464331807836723871906881135897827399305728810929686805030703028003583231707861618119876983895266975121147323470986505910554212835851335406926648507275498681027914417559216579583140309920054530631446026970307361552792059265551302494271160922959812337640220344240319065164138394762887380656260782739961880748618721827221512254623062973513489511723666700553626507387224455856424058131406654735951177433260492365378385433549501031605895734464583423970801278851063334481336829279564241711080868936459054851661534566083257366081511875431759470663032320003980063423206184009377121821328673303615757639394396838242738169627649093944672852007366504772077523122389419291748944508676254261069629661446534279726065864295949784532972690729471025249665429404665147082317949889931052147653927640216098818544584358036882889398791664728614094183459816015533832946171105470058016833537265018456391643354751148324955139530269199918666376148080180369104225981000901175397360900556622951826785811943641529734249526833183875363870345251123923486359609958289169168282419555781318916521161494190103295748148927476174449922127269938161861660841481225874997875120241491462956506876083691941481629464036498011750656033271140092461039080764815541909188168442023954996849595052656626722557917793259218886690551453103250143169608170044850083142055620207515456196528762255184744660843463821020876474208115147401770832716597136376418087088042578238017405113372904515480237363129753631932994515312442865404616852551985473091058971601774765879135022551069855791499220302093032237767503496682806445127779250685898397628958059199362329962899236647970736990292636332106556603131587411511192150077289026362387982271060418367687786890327165117796072469120378812230673902168778803359735663003649492516942801817644779618228631426640662863882540406190874641018868528294395382419443101620161641765673767253176568187255767330665383620912927435221050116091583347905753584868261814730915202512397521044599492182021958838107046771428134270813293865930243287144429222758623651649508151657883765214132158189988923501756741838060601178254080295996134884716438564503123273961921211559246899410928572168409259196328723217001986123346281044492917668248497158177935607407003256689128078770351601421645105510741486293859137562497672087295187929876672057818290575570216412283445994307633364388423143029223635993345319785865815905547458356651132400962694726902966372605170620254931448912755270663365792194908393147391852754082360659452381462823529620398614796615599763094594450467730029907919537527754874258701962454808291391322138734753887972143787634540966511461173636060948036356085586835619851978699550228384825918858616399241379155975210032802468721277900557155398152051018258975698178939702060824278065077917695475317961254215766129467665415997076802037615125286755411555339317748954446879755666202141918187419105853014966363558463413949905063167496971355558490895173967462533553080076187860267729449384350960055044353935259934808645232991841519113323829481934236614515732094066996357759187655164260197077269830491820396892461761668637646335680233047865180503706520022221442703278666087717965479076183097626831553892972892745055818821108680289733351094422936350943795726721957875762794590152447761712055254895592201092419884162237880517274316900941764787282639679376123113251414773073288300505264691854677339390727131363389968322336717963780522298015860247128200575956559340091720330255663793569406324142007825078696909883121910117799187957578149066565994632189893635282525852566339233255243437570297669048127169584340347001649866298453265821091825396205942505071840839077645687327013608706346424241118548570478597651459458178176652561901340311715926913601853900034335287208229262905471382039290050082779283360331007463797029758748236538772370492587150615408849368041543781223015481563299298500616518222272685553634005758699274799777041163134330760601061233133456287459311690026763422707323006697623099957750572754663892707317251770091236084254167090885926667855776858705415647263904128502033411541920418736468784388951757764189864988968070727477990832962321691274714909633065404923392867895711392239415065180826387392225600286374914245733392850997239499258182981684200439260108722929396025022211450048800872254922353842233027737038294472309667695637118705867390441815227855995942989943545701649274407467956847552343263213733643644141057835045732059639224391106209628405103962264961699822159379163986844045625699608406252416212258298754432599281199834804760285951585468975864329709977469901160839574306626893727548724429311911727674684559224551760995258813420743387976519914610637777351340995758849658342351351989242969004704079852475294198346103618192308086342574960979112074717439226508808880297140132727158990155097658854457775332615442349058598150390436820176532188220750128116271784634994846824987353083350465760077214449125471306450048054765704660474816486073864119411824811438117457106942480649569803467138785947790631693176328109718191808568470992532875923532973758514688303116280707537997066574825426405959823122530837445326056741767307651981757906865228509332090042817501634655617078765606910528263612886866412924875796598820051829268503467209498874629784103755674921563794292150952323955856014410759509845292046557446665124654383857635292283973987728649678140550808081596699091153945936061489248225171126959855826266874938133352751284380935225403377529123611571686804081245284913608404204189268477284080989229723607505579635963157994571773748364558179217978538098626016515691397080231353277611489057264745603911492449233919154948623328665747552598038810175356935213502015925084702509629985659011686842727731983276087252073731269040174038808258388088175831001874230281927037141422573997951236997342952437080861638140230657860584469693139033080364109527048470205570854681592811057070215901430431113335833989564180237099075696769083361505895823682437386630536587094150523709149452572044950318184084232794283946738220670117594236153230202348266380435680150679439773081145777099483303321948438943980339475160297659800558947607384924966397365890091973452441404398620743246656627311342914371358944642265162958781297049564931859056748672292486342271150990878570916147091596145021493639025577571248404647754468347160872662080307846214242315187731878495837247510670864438333358044110218928599656773970899095671930057126072622376509554965703863939355982315000478134058441767551610552956069615463398000178713767262823135006060013896698911580391114189138249972838964095310183043074154791636963714283481921570501257378915117332886837137047944891759371725773990438451362365702021165256259404645921672692991986667841258609708295489707686249836086576718590209347027427745142616805174917815220058393301339215792335453515841566313264969971579502725172057384565693486827793916636324256094902951836521302155123709521785019198971190547593991883178094788196256450796612772650562107104558555822906204623830707318425559346249612907323192293568922556567296223484474554030876673928963837671978406785476439364984990424448692025799173487598181355281777162279000138362853181331082157930244021605718291328296340940038168376030331457861405445809262399485311089163828776353970811219762266228324246018639295579377581693613976250383396903788300396603329967304063636333083655595998962637731605377610724251727368117399869656645574803644782697996735240857183006590716933876422923769188711845702949080860077405955212249783221604124441622822443162851837726766265511720798589036623494882832245422477780515961843088652049750814084364232991512316097941061764468938616206724537873229737356089549652333387294861244967571059642343136493457227791181696560816265402888510967184698609352991248896690334150967839231423171873037300163479073724806216919832653447989166148341284158973479672022975610671182726420206520424821685047509934574025857671212370872733023073192684610141894965777251845844413079575327928254284509970794013967106551237950823988840253507216478833874421259856023397178553304623908141557920337071287954949449067399523418066068196885682604343998250162768117162296997847383897476832340232257043471138755667521824328658076592972198811381475321213397661394098122944341211767297787802627775835931346821721917982253814307693176681070675627368847269027167696578322122644926568831584312536734106594995069266783149666587305731443585298259444542050757029168115201883342885021592647233282580121937153464529876172855128827441461253725595834387375358917869754292468779130445451326397029929145042294417219527862980165932427054307746098014100179995737672761121040922124377988600134836311578630770883043726152736789727160344861876174217841928885608534540303167759477308980011744738491788100332534987445889504282802982145483336177906795229700769120812427934448439931067883879812162742058269036123482458759585797346265018876326595576079801492929659806056208169044287099069548622205775431543768048243191266619294045073007462032297178034522891051937380910254582807672843266599995076530046866128747904833881535608277764019741557276922470502396007965968405540444024839598642009986965999737836122506149441850623967299626017275940020116067740797676734749026847303162875961566196395125328858030664662165510844336535584368455176586672572269846836483402727967316360970352360762556995687928660141436728877621218274657287329902535698085188210608594691451440665856915292911027146473213274129130952889971970201689440036302391756202714507864817593143815603865193034266948816648279935855594520583831864654056426230590640389756214975881635351258980184175186475262872230043620952239768719775108229721193175957957838980434520614356855993222018349757134198668758089505774798082529385422520497349196542872047212859751733101704196725795683515532529068882891617439394200739138947750693290940162883116120084087092518576784421500749402357121756020826563293010339707248542498302185386223362582163026644985567560744151211935124849009854719607376282309656039248881981104181405457866123785035718253467191230884801602703715108750213307867128685504886304237836239106559677507747305054658869809214081057699356334993757164942313599187635327768934109107512586722487831720560260344429645425024899704948877494358365768209903166562044499735757229783087762101671572890403930343629274871689945164718441550420170975684743324094430055166694736438835684571366697472523304751227224154826311954137778232875639927322781118106090494828716040633187642528160823116026784799313019923540452909714965835728950888925917943602066786224374455018884325328902467492263705973471228903112724841961693270701031281950361371689543132879553345176406777567329715656623156865709135771611702800781066482400264680674036492106296694192796758942287081576006891633153686589337356252321919892859114571917997539998635145519818008179581999991844769292482019900477586490558475744170632756086502831076780715102859250265969946726093915204372750024363751448125603173637605317682040001940515394408069463394886156863145657439977752393105466091116188280677027462187704492432426265694191822157978427468584456840868700261108861436008692702539654588620620992564048961162277740867796206885737516998425957293418179740619483835202252522147917978063178895305247367644310527011258555206254491582939640222239956730220376148933781910780552587123528873568698679512513735430494739201731383851565324750356326206565108625568165228191830103487740118725758363609594763877298505975963142990177698456226254708525335216823201543264165396243944953323627864320388701740966568364861082244404328964014976990687454337494639686399006625971793848444236631417113295100517976887905338501558105725079616223917990330228303228172168693146825004759514016304903906427310864347044814017667316936332747219662053774484639357058431955400124759527270889600296385809430391007374654464119253457603344167839925857094547900770266747872531276149861356697909733248943958404532376591101375194661088293458207585375259233497003543990836858378410707088507782307434777495902784583362751890409122265822226428165103398441982699636982233241370507718036444913883195057690116363756607411852344457174544673841560496246151615697689906940441934996715520731923564289414074133786694806092426919593700374458659060883586919698884899906716297086349092721503851822647849711294386876471624707007810321412909002744755365007639997304305604645047882259282757428267526776445255832906685940793739561692446336590975243865583710224940593448924878971373877306672458747909980201546268903246351886911138744373366341027438980824597662666399655214988576931226792159508950133034819388865750622734598979466642362068580084311278549347593361886396770333640925835892393203354659040192308225028746550938701489850545136678859324373385134949013941175137472103442346590494822415229351979732975166482896347141607692507343488255277489563665663772828088140912791927204069259537619686034153478518989648168512522204927418676039289160037243550272925209454688511264162223164912009581204327245955128683228369786051330418916467399728485304529354407599352355767655097734163581728665598220491019551699963167403508034220296727175588713547267988599231110416249631931171821421440630640113853493620541400583545590665853885165134029648256287702909173135945604760234167772756426351398360840572613338784219048213176121914866100125255381498454171504288990249773361998840219390002029216697857358405429498258830880908554776422078354670582644202102929673727752469956383286910225185294651911218347576027885511444293690619359375356269741530973343212885434186171798419851548204950368633291093929666517602535728388609174188907500216410344013643527086311693343690637203173719947148856224929919807890141095901193515270651304517160187524229396217662744025787706230187264426296599522105969969850273029266709641835131330329410011665411393661486427586693503315198359741861208526963301776578281462099521532857414510003123155705188767449317049551312823899249937609708322503635218040644540136674948747372856055326385079346877985815979147507612333719792636851068816381625745196417896251347100907635947334249642403953476769495723231175651972244836937311721738018808624326125380804006149767019541491303534581396522223744707156037622344111932425946175234173774522093424878539906156851505521834887372483135317099714976142045463777972867017104623075303737350438533440775644062968512692665366116768314219636705315120933916879836890536647304946369568212458896064568604340657913967326422207695086925855314002704800575679957139352113722670515705479085928106265719889805334304342820899923726619175964952530505853790294552618789332752810783990076788936927534862148178697020031035993443637689486430705783613160329172772722749511339403917483100705313606811158503218053270515892992268617107089281750329889580071392272176531681912158410740917323126372282827144098880769177219882024219724205405196657914782763471710362041102093021235282432382173749929192070472123726011566776381413656876883100726508065526446948479184253284374942924783726267986215836098528112688951741840304312190279952199157474631422273731214903878041189765806961288656304976529713034548027032149490918704758829215915107533741438576347308117897347767221513715400726090437036511176116063576753887922874332222188929935561887019951105520740767473960247228619326454711145086485264983122428800347438534200595230712442086639059830873226839055650279491365772330351031130315975017520357852931668653925307275342142660356723502665190592164880935485637602270480080859883802064663238148032161248973663238420321448736289136318714441547178733476456948831149661589753875924765905288625289392620965698189111879470382381590678595827970712038283884222215916027927690165855131120581439939075953197053729654767511429827335168824563737006160872749441414461171646706501223678424341429832348323520772450965431520150002602698205098095747966090916943065323506199431227783393273479647210639338517573320629058666608067690394610178296054676330915473731134113364720874221221582225567569941373998298123786640590328010557020340220416626722595040581705950651860050985959980327712388530953413804638284641428359377456074964538886218383818757370787415359135850272127923176831333668538607235361576015235197718008787692224139962585809747171710937149448216193188109755970632383563958359177815213993150319420986830894490389742540162548241525210003729445430550678390393323567198793989825387135473058626599560753996242522385218010241412880566764251263473350186970124976277632052209470282886637309634342054200793125866043490921401601044828274273687140153530520713144805880840607164367940546107476490944242065501477969685473524766678089626296113134035722891709736398573921095480097930130990753746613454516251397006954122477399790395982537044910374941872648255514780714165227757974540835426372463495475871324585840464459249977252692966721778952994633938143605402196347654838380198282785989745332692791616690185390860130819049509587569243086827731454591945243102379511313382606059123235995656383908112324949877118269521406738616255784937076516988100369659372404322663770148567586806841859265306456123768503910840375192620005150117549444674298454026335007730246346333858279417368520248906594119262917078242169058013224404084949556839438717335640235350096511092469908486248866884538653158357158714320448088807180459723480326469862525083578382017713350474064445460750001032410400686148993072371523440840925029818103153248145973550342640513569512581267964244312407197381678240338279849862996588089048409996592940476290916326438057477429507361132797381484711731807336233470562061560899106109729566046009807946297199776507959158195860679110163639126230194758507491878026045490431183882519573843792794351873672389821227227837570925678534382641641628592255834194119103639295930196591140835389525257764827215588964938568993346281479040365133713809062841550077465420500606949780559720015834631547030218226948521703935828042556889682073947746891326331082645895238009406790467397966986620530992514412594680997703883507328500719183221387303379708828420438749153662993980673832398206997750680176447643488539675963351683660487925950474896493328082811898086605161898293201026894476190681910245123188561651421926718151878236539203618839757924550105538502528775430619469490374649844604116285262024813869939673289241760080000654621625916260762346320313013132961762995848343199368785854078533524918939143653486310478865959426654241311575730155768400515714917317002399648836233718039104861198544175749346161067089356423776237415537283637648938521113833305574481154284414594808476948187985618941590872507880990026768746255100938418442232300497487306396462435591576833954881756182055942474465849027585376198043917018601004359348349420867787189618644605901029872773161753260888261728585564145448137539736657752129445901093557949294344239422888180545339351452203643904876676095164859109005694875438792527745962293593352389036455368823061088804509640024769365085579502188646150393433263391005814292968514777180548782505140138057027537908710107796686914485652545983505301344305898840892270378194209600339920777927733332008044853161850960291279827235138372005510785747504855741212103570647081978978413406513807141736471641001714867063467523887205495181326672355730358710382677949302895189276821312275402413668125336914815392574410542453368353915056060027802993288697625840054058054967598312416177522443700567638588482351932369944627589197588775222525531058503505346794085353991120761291239901180875174706101990264530146110794674366366403203228486406422541237021085038698230240369458630059181692690885185467772125806418353322690128884222648042851478653881068771870258617354355909956590704259823860316843938598827490749097108498851325583849386234585100574403023073072377624446896754922373634036099416324567459208682404099591879939272086592444710712296540014962352957696914816361244892003769267295820917570900552475764059430416385497139011605974453516510486686768265269140235919722736405861202885571344145303861556156212629200631899057992351218441533671477451170663330404022284842640546290867709682721008199759322746679206083680817551781859743472355393613623122877227163147802646979480296522422096727072677026012746059333119670710159185834784436898387341273232571285196831197253930904796933586000153092494908026534505314639917434541384780427014227405937812254938426563393486143299266192654746455866370689913835875843598162920006028114459025153832475891130178799928300027345234916954252484732866305663346286269383441847159108053408962912977850338257150567122177933132626247941469771491146964004599484516518712329320162638743225525819191278844787602844717751734604755157376689849355953135596404751649994373175356995306969670977134601011228096777783078235540513533334552231436290287800026928853854475144849409806050480803218143757066322798351071727011284166446077458025654232853293719471931266871728250923899476185173986228087372992933962779257267080333659624651092232274471648074641780096523707820096315110276157492454026853882671503805836299263051047209095822104140062942530059434693746987774196883818608198027669795473361719142578292495004240903369074126576896436503788249631305772098926112136544601646537642714648658577819411476474328232636230652194218158787442905290550496594514550017293550472497897691590171323853034627851313070225929025347546888738501476847283094913072112845311923656103562081824336389063807083703174222105125166727320253624665622354784332927890983601449851585490819315856040439869383809629896906161302066903685482257526803048862689714976599352564178556501646562630253217178585547152313448912128191314857060947214165889941219880403855848883749325166707445201975243988847189090586967207656943841119978760225133901647516624622511528533016932758827141491854427703759663800162572032772805297165868211237726224835289241943562821908836374960919625878224073945412778486020624230737822502094266990284956770452277372203188696890945757620289110351624398301627175701536689750077409161640006970418841718103439321067790802459517206901180202715247215777853337371353120728847069998799838948409297812881728427338360020219065955637318601652413662485611102664215606732207711456444707207341311820240208421161286629267583938103109033366171446776745139306137750353773344087443646734464439191298928134906497113140233837552655315253418524464857792151116643960170532648744451185293884052197979317521685686211239535455311779033698334822247184350964489223486257293713193458164143561777607284341433708991579637912809226010830959569959172705994179557464849542145701156986601217149150810073529615038973886329233946636873603188468296213312263507704506534451260664920866729534168916164450736688804896634199210089407545217238964528390252999431022389242231876069565244039624075195273971694117593021656322658680165671536885806627660675162019756484228761991789236311785205678654518198384617749383108456176855691788246809847181586243965901481106801746180181143178232384363531666104796021815037728256129846325756854335727895303390827296912549234781424380891934316817616561262272755558332787042954315536279969278578950791676525343101581165621296673953730819284728662253065875965888706599329622443916492035100531928542216019701154220531301909597901725141793185612908525202883478151987423022518401682764744275220660401311069370273598536603921008405090537392512270279700087569814230125268245334225286824855334453614129744709324192872431645614022038848500990735122801541435518559419556110074520023638986250071844532803536956982325366668770152009408868207874678806069710225497671127650488625782949767502290465092416012540754396825763620300685184555838522647811792179528347387299802446024704662088176272717182167577706522424116240870011450027079282859383091005502389089947722473437914805882894764698308418904098128065433943100244548699811826983778824787006538898261812949954546122310799999830009595797876256682551598445564585134511207203478896151096460793394050527930709759203692389924341974310440615055015642555747626797276561070217743694443249652607283826204641077876656598982565781218369391025355554431854069451198627620794363552917861762689543105153750885889368917661308164281886836168744174444701855526313574338240418453329926872425820964980295335189243741219457770617611624507769078239960062778044278001511382335307002415676534977756400143923502865661930391647206910719364320415512708099927756218235363195319532802201925281345999488865504764530841187968573810213323541566568972429421901818551048622406955085534738152214201819766031936454450719610410024673547861423808204606946148795206149288595273685101383330455936436238657097772487821825197405988461875251735497142464775755728317922182116069278618601381249637653638993101548963230366958912006766392348932612846209491167040923762554574814930248861162237468447041112180216153409071711621562983568143585914850701271167795028497612819887398044804352437889223126177920053912656224997593132473230751967141520972998895606250067962901837226510846016372116652524873200302577425973714040597076998555261692625391384060672433160907893118562892768308799347858820448742048732923411570351975886451829359017230109142420706808569158710438337702158235880988648196427924469509375134862302452089183120626079153179041580494977554705064030160158517278009753137841199921634008644300914088465160235875469488203981598617313325199112247576603850169241025665473608395915827826383392465148350649192840290630974463565107718307335465731400994144435858444122062902659429284701662787775929377760004971468941591807009035177813940478477365978539716966785231443403699126766366458313802357918885140488065592770790974979150855360184949170465131240190851959949005029423409403978574479147342562402373618133205935440461597101831062076667021171775931195695541033037779500162580585641271914950195579155453335912629843618342286384557438764866547393985825025802814259126500536600149653530745846978679566281892933444667398879611584971291298128371891385195238239896598165534831057502545253260971443173899165777767680491695420669602670750702190625353890924814601418915709612188942642020631808410585961251776685825918877618874066182843500409903368385604228263459301755136279391596042976507842401829161438615452613355758595439479717119182291986369110004852841923422697490930756768261457177756594025924899167736887749134085717489437257404264606267876746934981926124218853548023462636659691158437447911471341890012134836362847017631410685584524007338915371459748940453498869024931438995716699532782260465199122682605717009130191374519170734764470090699629488571104258874045450089136479366833509383025035358880836791937131712417134001122888239590389820430173912990161793489178652063937611450181466719588156187757844693279151931099154335214030604319589156320741132563969126210414489619014813311135540804379141700741020833284948774572317374537356940409994845764880341334036159529307878715159997285835111519903835801177471607170607949793409964326485447440748014364648883232723050446060045287860446726918061309791981235642824345705343179037633601884947478030002784176589862987982699935783216712957070889290697280413158920159977525375018975661426752755898237710972708132109603276563644977669717729950299257194881221993924231197275285261574912427402846677765627663715369862663718945176777560159527028525609084134102865315803433512213118196004043739661326414188444172332250373646401067591378664891886785629209537976534188039267159845600618655403272004178088043417932142092570805947679420771630099417978163225235994619595199734387478915590342127724389528995804518860975509417190611628848331684714667728525503893727390819221439349294500794934970205420345501427251192333849472421113072359091750498126162329847600923644803951228856647888077438599948794785616482842677701871435579033490120064863090466050939052653863703417306134329002790364965828409376168981317301667512700449179027927754418093091373275470523924778924614881687714893515858862342631891153631525195815334334099860925620020195255794858338025287710200345449098910547537816119197609462474352730179414715679252556040492501526304527461977592319741222375296906451531983009047860796739935479832135080675570087865155571303042711749754077840370392310027045073673897898782349106465038519757455880424778977220835540983788837821374319183745221375519887612125742433551962913302218167246170415640318718676676717001412223793570576381165779400111675053375414414707193563361428471059114020887295921127547126221970671806302446850852449186980011809612546502864041988022632898721743211943575360342581064338464835698546777221851489401299995252766520454627576836258335904624171617077924444818432568696100659595375872306352197984653320902287792459475470514221257117305120575432862800200837408156255031624385281212549798566563077929508057711887288252421025127263207887613776979762142768693200768924191507798088246667279590563107484083313969348242124860564189687178922931015968503614121722003718115879622837451929961773998363449616749750692737617524125174412710528321074682840614095175072093185504223537979233818536150072120278321104228461425387324397390366420704729517125030994680532013235025446902372838981587479590614132375805010150203530307942944175685643295186509904713342126152413441438350850416501195286763254371438166907047521736775730551705758284493821443511010605427791751255670901718126079822769504978319746388900960094871397332574178491240260212040839234585603857951828724203863651385990994955763604083077968898515094465573444701335255069623787098286694362350800664972987111400784933764321737028828608361133806241305433334596193672950876608960132758082007550635776955996532300183907079602047825438057742958180244433719905572919898763165312137350174954497587629348677162370146749488123277621361412470324156720797364982202360913997650663820770247357448159665982993455433237684676538171723701577603368663654658766462436290649572244490702471969901329050131511111477247378927778250075812985002617189974803703269336038734603254915416033797373996914173088608691206434301703765931418578861074048462937542327718345784753560117949747763454420252394426139717485868593871148455205334868318548899335030668056840868543371713741076430706317418062437750827259989333500588369229151999645548398135537819751368008878536041373258792841848095340993359730471258096645465889388107256737199935104451241712259815825194421274456256018594856205473872494131973314517105773099803205383039409359578606910273419490916760293053003735683547521303330158993900668274529862680102156970905571525244231333466401501877751459154119980458906965450752623792914149186732507422833607120073625280964802431461135739979517283225391202363129429063180196769387215052007833003118180542702913121920813932367205658213835644264567782110198498259852018338249104600007110021009955958195874512249385106887088849794701506088693104714714924988203430557550735901393020500097617813509325567234847628759421767110682826520683153081462748797255489827072962706970432986012717536278619055988186642331600624940777168562208000194809359265601849280642311101781781283926056532044667677312960734800210616454376584593588556432574017019562441080281431251577577740646742511684382070590092828310076210268259173861941350031622260110885915227963731836522667966546321403287439893285592418296643171341100187468864130459212206306221335927632156232965694594079210955731530428094037420373692673063071448669613133862796819691515630428114586053974351695732836059736109427761013207661417854645807701158951216259627417498617642034179372428123620920418592531844039126310774519099472668163763921180940314378205293284146492930754348048636892180847225228520899066460581036165349428475149310663301756601464771620700120722195345134820367438410314975004306263089685714257913130761615225884704259642705318113953091576280379776997291797620820437803116292391584637379831097116508828376430605143096951101490331745853605014708490391746657203415484704233809454755756331817962128035800033100325820595017880892168017907934991936362656115223648073052217565095723656690977902982477824867238154673200566842259843655459623737067617331929998124593099044037736679895092724749050131776110997090737375111534483415656705709419122458294196812876422283133353952531214286600787592782084940646683619579625448991995978079669189011004286456270700955758450003976638296116561638235719301074659931583000656915691816475899939867191141475393925158308722898785224081790382827757278346517965875476867849815130409014921407227336432940975643095607080140271538809629568007640336074272974495178057774575943980040570271375873345357576494275578910144793479434237630293269364036645664327463280755263218810318397915286944061152930141985154248249422875466784813323851674241113158333836722437287570618610481801134400346056706447852815288761905059628854590232470448124922189734288669636659918508424758320266243599237502300135030096085046271534402646050851809927831429579339561851547651205716859483639925503930228053649427955081221855974173427146029861072578706840071487075201125594272319601696578099525148084158850117027915731535492087852633002158387874512945369866561745211290191209930853574808975654946255700396166334715948837126008253628124046358903914724962152072209793884595901095865866151646333327598562623538277910444600628352096878087891598019303548672928030035008548351542100643473760005054657820998453953875810580110803657539491692843782310427324927895788418556492497490856678058410570315747739436156486554021945464184946639022645247054184644288932698254879564865553518309896217592568139899590882697571402064434059164148816576677732695671678941161326941200115783600894975504864390505465261567742793207134648836701778624900329158777384317509018345650214256924712841308853132484140877407140786297471190469954545752020317302290530007582759657408638318141702918096212541703144409945557699099490807253193156836822312242457753833867847113892199983765029219374053508963564998234210269812720641442173562415088248662539753278337022529182411123187903753379836447258988030527379057603584665204495429866662834039320728003498982183557743956650907841240242037338787150426454054354533323023304390666990142389874939657430747511242882494666712297673317492406357492335864926360384478341427317648053455247271467357022119703646338723809666845020020697832088941529179709200378450242853942107988690818280016980452161314028837978458941733978420612297432644575944399039718339816007465386130441195784014614880490454103929245497873713093659229683753736652373176947478814842023643637901670273068827227281165371593422184309314090391679744155519838275688020135883110254554352177224944141487588149025733031797910401260891583189539163738769546774289427264298117170478803188965266617757346513368690457547889611217299671235332350830010670072065555127094123047354651434770896064002649626204206645903357608715046063626489130072092189158445087786713078808038780342774672970190573657728715246256368061014968133333234989007673663639896872573669856006665360930442243479300178626840955021316480806427088927424456283150543693869580656920378345882095718961040542072252373316499843597177401686197822263231082510302659729308470925153740904542022367130214172579915667669295779460826475422448365865487707890892062256659819116763176834637113593596006118419629935044862771302815742447096111096163105073245855066545847449594782534760732106479673877868648111668069806074418123259316124002849805958044732782313337579039351627357325859264229584642305155855790403326225985738924136817327394459367785781848832602991592511671311791634398522900584174451820389690733102236822493489044289173237325397223491798613103173680990063634913000219073710271552112077822013469473243693593526072290788336114941390314171589194940403834410879992098253530140447461992417725808965338914023195870785386380620020070135556454986108240219918483041348605781221001466926840701145532489488644178454354723327009473612044529534047186546652646667563843167217600282026849395207603799460752730312494402985492930411544181714888564902029800527253482626839213266659173024428226512607835412833577397767509724377204094820595820379780598232910645515720552606037325572132366764366266102986585788115068790502114624877176347682465644437537553310697436051050342198681146695902471779482260899504403385164216545989336854391071701843285620762083263170476254251545218565058778435141261951353194289801876483746053762096295637297245717561001711539905022645466577255982158802276310748662207876993418021877555494220531809880052358457016965814701342652437781599093641672681512893682455506977817973589936670202652980696726033672052507745746400708462400368193685540809177680170285713818687776355356172197055411216197565235589459761870051570497452372377875265978671215883011052249153775557137050655387309111720146955280888372172733267622677438928786282894938122415542894220069394043806394120230498714203585820885850291478772452090075604192237879267551505737275229093326096424273356328928524491245386472874745216112591964830377309949176463086434664465607476250429273325158069887799993855585451473025809962195541959452876575783852600105312446185665175468316604214110920703954109014396285695916347587935003499470245929837191492804926685286334896695420367148462148846735663168151454151928612795102891827422883682094561433578327919462977527893720562586417931907057171263104192759119887025942962333229923544633322766049895076469933572129833014599684544546344512142578688872247829935581370607315253842364257096604472242306677166947975283017750884498370659277032725716121522899366710206309297234481919403213719886431382510456710137343753182858613004513061132970892582114541600033420769770558361397744099985119679573983232193721358863569260254216330891144003417574971905573451915656527981530026999515800105112335878759722158205141041542278431289421929285632173134247159666070787701846022407382445789711849899581657209837257571743667712055756727311264209321347634506341035874494896191861879006754742717659123932270368692107953986357328197311983482969030783907060677338955034400683110338038296613925031724363533285215472921864666421417484895700445165115165888551632375056542319024391718498254178481179319488845751323764300043180158744954990624297706721585046574157847578373639629169384659340311895095652957827044629741196910930613531358926503600806539095960012090340013929979411519289304441383835930036500385372336243493208811134760379344294597906620671167028423862008436010713446696328228963939540399773060822977643060704350033473427879418249747643035151530749532526767434277016292896738459833534376092437058732359162814929566247511888703943610337763247605448083128934161637902328269964358154065087320202457030565556746354009245284236015607495747008893982852904376516893056228815335696292044245788022090642022848431991994044719080290198868605167773751542433862894112029864266927761569953949262965956975324365096310978328636884028738576157938191599551726655569022242444527246509954518277899230250272188453273535894744114774005844889208063479474001684937513503156314046308934363219107633438561492831507035782437352950130258433616735582428477547704549410554674336499860493386661704141196270049905375985131941733929260791268413000038456747209227385153674575740799957956788242740364339177820014925418749799034152671397634130879006432719455178843874812490763359602548966050896115369686778578495641308258330079190343160565229150859284661852347161869219546147514594773945994502652024464180220038943815589442581461770810989142345928766174228781400271455750764857004389682349380967619779203899891446760067475168236535517366126031344209445194991228091824291179418776633132841420232540390902672896326889350077318757036029442501269458173102506361971816169886013682514827304715830455251680256988411368022449038482313474769825691909250856493143272710948273611667680451926634301840860444645620850179723603670368784000081822337492629060594822970333038600352499260743374705661206314893177460581372204036573084955924150880807883326267040103608772678883018832953221240485180011652247227001349724315862350767597819097778140089550041082813728791458357837798752866326257940871927104370274228321712772661491759487891071918230300293598433342367387384467449501798202792857803802467369396946903245708221810633662272679548618749201075372603285140615239955370455025285850270174171179133976468442264942054924903338732898074521529919973626922831517660918412164245307039267341245592149115224018199951046371878256455551704656561158611628198138048307424102826371037605447175925562467062319880181215052338080863250031348518840646812099355763809043831703808401035739553979709076452217673813170761836136731191978918473594826000552231047702245557766349997337400424107136309240114923209857067124574474263847697184912989189173271078837738209933507855126594706120940098049291332782091575108245485886139153522741359728051928483025351589085288164926546165820964044796796924176589627618182578274558584022594486736985383494607229124052666209679583129120018015229048248363310218678435120377834822535268633399800365083398649708991377292142601490308536578656529601349578017427137285637795532366405517974807872720484615681355843948925512593271869128271132833594561268306568359432136263468393291313482070795781970564026638308639827832241057851696592190527881736714800233507731725806072256113620551337529762219448636718777098632254054004604037910288743213915949917154628518867160167953039222635253512771465704865951802313971272762630074667226240599050589947233544288140800976674690232569036189274385073451464334678973710987538408051907360914402425236334513759038956339012371967252402614416372998323024323386434556587736794305035502095663786315990534681191383464186693761078667130397526282718527277679569602786003740423051801891013173700431900898436576094220167704720165337195904249693101687113597176670247628015528628374661058682754852016948670151070137158904249208816618179064836668235308730939010896383960245765721235414362170801626719768865426879021055048330584197655833422921890088952705466621871393005161715543197840988754638692280772740600299557233438559590884733419047811657301206522525777422553162924655655102930034285293631950810201165913859512442043884590641960555892551039399016011553013241110401955747650819481388333961921996932337067748296573591184972115223146328453747317939003854458167321072720398767291649076625119906251872702285269665094344921557585309257440166260181062131394169254354672950421349181331946752780177172308010488949137112428514844421878736807994737454265342584002472266231490328973476791839286178721083693616087157291656365277631814754612008198369129810845327669509922468131412732698828038850813635000158074984661520562422382632026933456283263443636506795071953636854481380848055918251440749089752074102436720183711708550847896241737844494431980301039659327071332185342366031403129614481723832432118073926283484481233323385509612696918563150716359054317437481809857086815118023529677696199691679555056722613460769240488708008695651135212236540225841924774551580299098776815836839477291188076895626924978516481795924129011725127006414459945414725482525577702813177740437653104672696371459014510164321194579053555063712158211698756254317442502549174411411596204910791372019448815860899670258780142594909740074414946672464749011741989855685915499163955899313638416456484193957406042886974666939341203125095515100194454385305008379507670514425120306576683181488909670460798849193245332839013285417863509829804586939379927601271153596910075936206976662313358209035487067819325247732268167030481581946603043904948614250043186332240427433234643426269048862803829123422603712502157470811899990468909051276157979135780353904603641756478357203881885043720190309113608554508894409870929590111482984387497766469694590104602761247906829375519713134058355387193662870008447366319868016129196405879685529090271896040126189361615729566760514897030831470142743415718155865421256068375623250853079188888043409210640683799365853291231035716123096529226238882245233062647869346870190838520292872641666837589824900026404582922419977033978951431004514842303238815236509275209745504398810989216556502427274120605315537273251745220249248698487122475515333093550997162034053826285729318869413872984568991680226234457848285613267773055532225102540443687012702008483020827905514929413116360444325310822021472444741774895199306066343625803665803434757571167978718008558866435150639546094648094292111272924587620259850301285479625596493976643824003768208332101809312178026830742501569469904356051871779374539530661442708765701186816397086991141612612681946618830649268199759886660708050774373470130281775352270628632611175366920946884871677249829982834997524535957352718135493074031693314279834698463636709000878203363941611061988396048007545934058317456552704652367706474920516582466790491901398359024267904039670684832454270825887419563845288681214278125198411248850027534229393726683511918511618874236486292241796940750549024225670617460543049968901040511839028410849860173914328713797856353977582090819807759603694037761590851050932734335070939859003541323370428285880284467642848436660484910113642261436100614548050271666015440457859828149179694003766715790821659669389204223748956763447794203479973766389225834024271481033781955286307714773104647079628837015139353592881547378864121025332622254136288862546639621727615879644108869569093805010812290855806061767798094931000911696502604339488950346408449913145968293615159736851709404141626481445434375641887765843047236526526118688299032042951684406323471167135006343018677993401576418230237172648519175227732332357327013285600348865299163526081849258325466443499616221486157881893726103439938797794864411046209607538142375968853075646897490687267614630065237715566143340466152283344938010229065415157237165050398890403903524533840265587994007927244599165551684891147941711170880583713559791160544345789820859292705017767525426086279053744897459476384220313743549186989032666365430631828405662454408688469068649739505376073847317520767303184226508195626159910689832961139843296929451359141135804394981827290736682830913611296651425242315778818517445189735769938549595160280041020626887607329410702351006802154808403526789623551771071594727319138594087682841091634421826195525237502672911082718589803824666533358426930624746861256372301835854300674398370156764947643050962933867698489909571589306953445716154406938750901718224098970334473213399656334501285221850091443716982139270158360183540688250438259095324332406037172567522179413778130450699906046756155355837439043743408876566136083671042008884752110425264010696322623619205231930557791318346885372048231113435993647486840292818834077126714482914622913351277791560648283746125984238212499254901518825509388287340946809117979627087647845166804251872574748101545217010941326543817498623375724489084738635974990647097064997252210980974798372844137187698839515659372251734073793310716121664257835475047086880167407251622567774992143095033555278386501131589119390380159241012875487412932655073648082259788619667698992267119303711284110370391405984838170051881477989333842370476933110780982105054308563151027246366212019026008513988470798160122180964736581715221365863498863085999252830299831845902267775317724089741689039188163372465791756918626678194373286305569697659888206270833788616727474840304473749411274037200729659212294830268557448892777141164755542085230414446481669874948340215735655421910807632119479160780760071362747689446430613394141761429000695258012562833484318095204658495361017969361244728892743865639409312681226602709909263743143668990780134517526816648373138285802961649544853904391483016422957300771724633157158200734094918157792437729521402806954985468387563751311295644956309657793464994806141640495987612700779718615226190348021334573694435931838146455933962488100966655705186536843825554438763648080574649614871736803876904951349255889289051401869614926306501660121927180419120423318767467110282076378188720833303505906229328473153225717462653717237922731135682668229157432526427498474430048478222634705168894069620707788329500040106570416815840506126998410240114804325485412924290825041448880720120444214599396046322467996000572391612406971699513080178181426285438626508289159697939460225158213865219161210995171564347301667281418466558916248674114179841750340939748283369220812610453431343908669827327435885217909067838120975243545268685840102968444690468380795646844492975984824920742725804698583271586398652962579127749675471067625946892657904833921014052504358519241444121445142601499088643926350671670749828587909585515299950108843653860998914169244116566836493787215748384573924604181149525159025907057690494993896564746476237841263077780327277854663873767481223893308594611057754674194973066607712981598057859432921094873327254946229996057719595019068407454478147748385263591476852809726334218249391696229828502575812127112186899259434859313388293433153954738376962940747032019726363789231228378113716227644046709452440830806124592354309737210306814964749534192291266529140349885032861466298705905588309163645899417856225415681530285749079657873304074412872638302691740822723034377230222981133235227906686753781325772182539275695288475987114218218373829034577233549802853580188458274788903775976224263382231287509581091019412780093444936309432583000467536414498897112548338285033759683503711090183866815987922632653393568144958991907276848047061256667713942658837678726982047049628960239940171336153238549772918422345605128676490722513060675310367560273270419887594588214304597299384869992354034102720107686017670336907031630662450123013193273561861514161486777350800085696870013823200729462370477059423079044684536860674531629569446692987055634070377158390088566245453039196880723580909900307236369405908386897446776589088640428299136219147251236576125660984803962455422214367026495560891106783812512313924515632350501372478264953968170451540102349333859903812742249774494263312299842367691113583650227401124669638938873174859066770284559370734667528539542787081435581140462601446464829685860796201457652382943948291926109433953390387926687096849318639835242652203279763053540153354260994953645937483296897062638780833508594816792233215483630103691826828055198308590742836545905354358678302230507096020890570805689766078854150615560254009662441358617671666321170689878466418579223098482707099541109448542776789330489846832981666544623414535029786065554518548607668331133647329848537310702816993731172235823151987169671013548524796704055907191393893654046831396323072752487383445723416576410189484307005436656087499171209581378387247555785820360219464549519813247276559619420322622848288576994888575979940787955382176960154998883264617014192719716966334068868150450435415360872127200890542729244684309222720685471470927832261864554179776354617952358242058609963250769373515867788923245334790226657083971543734183074982475591310818514526735690840843078181458401339509037378195190995257044045323265035557129017557976706891124947638581587113163709178962497070907904802560495699461341526356153020627068373657971740562435433230703557999190949994429359592294437688047485426467441308220597178219966358698123590735526727305939355539084882935832263059270515328436770846239490123577375893284386898603362317657225222280328546751245285813692247013368492967427610105704589316138813776536958278373160418431661441821384864217038029593089971126125817953888133458336882612202162406132204056336914077492465349030361555018666793319164149801289371998612762144431617613282538324231162417455730672795384817128204593969478261999895066446740553417527555416266647686739662246578943858290932230576938551436793905717920674798141090179932498049678927639899513141339485641528890803331740788034887614718846045616837089136136943823514869156429147263353059899579975702198853769971081416178029542787841805193324183467876196434073626467919861151814600097753567004373854919110548415071734541222396646965585872150452240274501744493627739545274799516524312240169132289933500415901923038370090736168879421288525140459689044352266713235082430667723018677852614241761800808954892828845177993516431081270326211795686775234985926336325453346321043758706555427474170119501682455914109942636977738141901841467564378440117669141160410114197877806834695689463763744337094510017294386731304664236944831457887458989583103480585570692833788196247083174444641915230246124316745237280599123481054681910400847914339034294209137598584822852656739578317762116882053751581003903471035334695236418084028729580687096053151602239813868564169605110375683377094904178561653834588092456272926095558745391935353372613304923487201814869678940038906592787908107159447160046052076504284795579210945305334880584669315075431331897551177620797234232225733685344947239300222306122010511555282645609105121936589663493137720336629510328235479924051794311300700076760612904462124616804276966275436472537496546272590629520904582552132439945620598940539185854210961197263255155321315280422997775665104731678661417967530758156619420460426444342946007725286653859361224514916010876562671987218259861617095047389443411955486977617457267612950741457837951598578279433709565303278625499970510060705952088365385394085815178859099167432730317363796280098486729680161965561407369198793845070199104132311750518765036341912039574567832071205356800195643891011011985024788014412740889363306153439306279597011823025345377899460229977027860627046686409873245411592853441830019255452539170839110379273802039838499233312581395987974907171352857050122290601417650329622756457789355224403233020745468879007669362778274068170194682380846240984269226616516695385259060688808216357436994647305712498884618620418234340948991636628234279758081161362408430209726817275212794193386777778382716350263516415966393788222976851515335531101591795099845824315091267479207658312344938089596398282644123990289665917158348277385942885876622220077362733788339611436195007529804043621360921491780781364881351733381918406527709222021441420950650508465445784610149624122510564003087611386734530398089476839029113606321706374294969026052214276180857457433090011562358304647820755134635432963390022482596339694037372419146429453103567190470030340718966060732185372076122023099623058191224722565435906045790458505013709636621306626102933854573030141477703527111216487088295991578279369542472833482621408838925210692734592612601061630112652560251833432242248715981285385286440180681695148197597524279269071298156068530794667696856262150775185450902612863021267452602810178157478314564278419976068507465293739132013041020863663200030572150238937694519085320004391004029443050013944978976998220916046183709955852701249914066943701637768541696225326233627386568569147020596115733013159500767485488621848017207106170920862258115619293760909933829493635801824111949026823211781521673437536129207415575538132100546725365838784945646593927515898285226500149638755623878767098461374167460197877056776068394233002950265785941243154661808306742070071352651049039009868853837783478822810469699261818744441440790958364546876516510350898827229862093560858799631562537603953487690813676645120912890693306989960003722209369680320916611357029576930353798980423558401443708428966228069811029430460369825924197112691545047213402009031252942754845655678770636897081680877981441782949440751839525352563667434360972559863006281536163696795880134155261606821745545245649475457048414130816428439227683593893799987872738288322677773231866055663846467998005190313814060678249022967404163145666712706381883554685423908090489711534875030740788159621594885085583277009094125593037566879681486717778532472154027595359395871884428622850831050674391772463624458781508307610228615711164019335345958265847753420555373860727900015598445827335680216317822993784170073106377910980396627810207149325437321873422822562538790763661030365108433445511040410655958928104862972833590534340345042723330451027894986504291469944862587229985212100622935395597081275017303391757952864356172869609303485526684715784710475441557079966099069499464511529257395729931805315075948303400412620253829603401737128120467849751860490596656491461793176334340090206200018331998509170117347522193036161800924939456821930664943331598608546754678694755198600601112115174746401614620785998761157393721574654364656996424712034928396811324544049853533413419422145131731112177272378145916209572570471053791532003800504700811289562884384154512839657487104549978905220172845758289401304313121644630715091946389251466885727324145299115996052562418663993598827928846759502236642752144885573957493463586074667720209440955658631167916282808228398899333769785535724449788335656691068967215466043434676030452976065121300267630808111810889840682081724400493011974977248029424664576973975915880516716542400772043000804896380304665452072391954550366269241049886411569227124855052184746902472456770045246015243675542104700452926384509018385161048862553789058786466017173018653231132839185215096844047452933116306669168860840955257274764057043390362008169509702691801563772312834301615689693193828256442251082611084377609789708055666331063718127935709328023701674819050199649278071160993096983776785932338472097157636532159022634790843225989815723841096075758325080866852263493346740358605643899600046816204408845530253058457916489050585386775409098429388145749867479436927713856153247097839103275392904368308459723602160283486764067796231484423714738862518854900551995273055211132576962976896644452710838996343739696624456316951479596937590859142020342646341881322906052475472906224498084059560502568283914191226294352577496254793990654105856378370962344192401149201802104304797178712996724028386877177810289623957880271885808401423389569955132771255390835308697449970217284649605530243624965652158499036510093908896839681414476218463138862412966172325948454220644521380091671520690964697606846482507884515060848504548391573878116727002690560606906808065438293796639597351265073370245454833664709816719501402766327685188429225337190259942540969203580295155036714715768179029482865397518496038792011538268717693888397617102832983002927540259964601512140710360790420660141682757288590546643791002826722894612009833338350151004941710827468468153668052026897881917284571930953533092486986588386218103986694777548411382032549799216524871893469545093736425462373279338554155246522732988330971545711329761491762462586459915337980470613398244801395135923981359974547455059447596439005823384049297330384226991946961215263227097165910928451370588491257857873171487998714860680343281777609065065162154144270645568184122912697752467585467863777762448469812136769364097007087348484600976577497798290467227882196708125645976419836635205447945455151820006452948144040939254196429469256066410359542712431520579988843610581382231745709160444103335883556631601388281514784139525492816224453736323694814236570301309538319612659439638060020318947276083358162218649820007347180891372000080728682312021978745906386527626497178188690947818888810928564404619885812529804119132877784098491920104908439028092446015429379031652411275118563030190269243733903945328039101502590812423264775994256148032942076711272010889031112312427871575096052778141996536985194120535335449591321583621193027722115466301612387535239160321947477461212167108434117847154554340722158391518639082880860957259214366482545866730050846334525246977293025606228886996242680180463956737414939441894866257194728076553008669969486821144384145562148440493772405179908458646686130456960228763782453697680936662373419842002215913737397382341163638262942740022454815155108066148188453670428024346524622346154328310554809712523090601740474452572518221103234431673855939436293128894591331110730737698134948074603537682550915079302344790984218148209633832038535306998659709402131356965303504181301721495980464854424631513585488497470023182685160510503838823461745759965515373708844244488533624053013464670643689185039540519559563995820762294246905571417455115407665759020303564044626375551072092454164790837030581527080145143941970543198742122871644353616996266461306618740859555920679049567323403572727210976192996223295872803645933699431162251870960274460644590980405899979015570327715184020882625627068246889220697833676501755063232053308853394703743012109691812281080558150034316311486156887999643323286840047661105431765100966810960563276161349600669910388549899960592867937355257525835038232555997346975227306418268933844090913013741581017645738160986493357212054640453025406019867911089159084332067022853083055475535582902586965594486681796135539354034214023348154811181448809518054797570064054095723047532223772321632939884893710157089776356261393129189348042999831282169762220772547359941782158933912696034037841900578500582740763568685570716567579881434428709969619153834282535213831719643045113834826371473132723723702932118945419735012043906512571552074327853209856634060175290171166327480239933378328380411566347619060874810953904160998480037450419179499481256742340496197596845195107481378307245132008949204028664922668947243728371525564161733364109370979985105597741773121262655645626883305053512510002295331433322263051625249364752798156776876761593425293148085371430612497438476165844038127707270901830297427047582820948756896927722206779967748115404353278565857063289669573174902289064223911491773208532262148888769096153187404467964232712949038120934133048969306236100700152700898269835584305435827103752918229867372090168758928598035923896472546571712233787810781819051222901956338667903315333357206658436213966671969235416661586950637651365068229711935741291345300966258410997450348046382087249499723751391586550370181422343677147141153478593088008926940865731073528559684616102047273864281097410381473976087139671889548240481932452051622009562700511788493894410463777606559127728793248645087144906463879066098691261822532969132787177767122711040455481284571726328289824605175722976786409474713584188483495706135410116953208772586298778144324296831719183995101112626575964723773874331908308772519819636154328213629526409654213648859276757323066906671420379342061922230581574053215206942997829325050075982373445839260501781813776671968070288816600521085949866375916272710661428831805922408866540719400856336100574020817025668000782256028551870003758253217490014217956483404262685085790335279505570742616614207619189304778810989803543418779562124503829916079316228084669379374631411851075911022503724973186621075170512195423421201588651848731837877847647208079200632622135320979675427879676896298071014469880049414570321525067286109122594790723660446308264642091764708894619919686769053705718783743151672200203837099099876929775208440707569747637913312040442625317095886473588364402952403081745759664452412304635101316249188121523447442009866123153234803216733498375627118579500647806557273043878540201614980682044441991663333336367587698696767677201505541619530276782680378688322139522950675225982619330496423582707319824649292836949513362787530715484073450136063485384129902262164124274338724481448018380158749993258542547861477923400355963568319313866420392909544048507703483021092065525725985214400949550154448998757406416602697160416482612468924530531492639687958776372021793986202375583838983335643108819482338496709665107810349154294413731182710777068811210383197708969231953882324140965060170496884431696689941864485524170844713907025769751635847469439365999620677507354841884619525249877626596960360740828304650223411790231081430707751897011726395774701253805038424985856894452343585771420634262965964080913311206173880997203455162713655465610521495278881304102262194601974796085878032398431902610259274736372379595700684358128463076154381690970810767108297538517804281395345798689627259631277849847166526228993711284911066104046077308722518357621633152857282597595167834267448119989004787404351966855094993232079941268160377332861036502974614343385248484790001364854598249686456760736272460897606726072580670468006667930593527608611912724904731004339004582574642848989446544925909193593814880420698615258303802022234725371623104992025103795572764922610845294036896370926793181647171521677289561841363019647377332978871335556904328832348493271866772261945772187253626736568315367515004574031229157589993848743734116757194478554438114961318237468893599716901842461514335399687315658044813505656866164695587919318900891046952494137459691443303836589330350314210791456145888027731843037374454847233032971762893826010625545591532867509428468412392783363943573182167896538432080920617195020639639701803087681458226136992745778827390292375184796318978961508438316982225446274414075781123970628460980617581643515771555309917275538198664795765605542625832983222366993117983516186034557041168415686703452521942668114841687191579690629316963092370753058053991449124380318906851514402617086356704301795796018190661834465812857685164684176558962568096005143069918336133502748918341536483650445042782579402284767136457874472149916562481844393472477353812460873554020796250409784834727135911515183804351449806140673791642723107000154993417424527806325199393774220721669530188266279424564366674590467808239294800420770210462598649570429073289815912974871391525311154142362795269103821201254546357646971869811240436657296601545512670483181030320263452220353015375545728986915439003682522363631918591403792189744300418149223171751022466576371404663964313641512191862781884509188075009359780994084196732403765583955818091298324450883313827637716774349859524830583641862560090742859686471797169188098631671985876633723486958944874501320299909805230083359240402572463372834506246266304457684866862094691732604904480134480495553280082294018026617515473733899720236939924081579334873131033086435279169832631838552248903704339035738750257024899847801441613727787389081655509269284855495539593294649313141971005720081675007600758160728650842468282801108270782899477082033564017394894485046361937802980574627971205931933183317798759445840270997798623666913766303045783763546363472474984105108444997298847111988833369024954160918349753054354114762873611625254223580596394342776001038209217881736334170163228539472701649097866469883270127382465665088043837581894533343123689464463928482013702932089380753527317331144597255603723662718845374154997749019703822862386711227630628240541978539206519662717398004144587443812278187395873289451074080988846195758084493727057733850102683571558917210109726867586853103435575354462829287693170105596625918799930835464440078579212962479828141710881331045514658416166753053254635612886751107866178754210003326046474821307890997124179810083982523165548653007488066894136553104798769234087343183856265458252667801902033231929086295684995180242562108685069575172719950759823735290379276187608390118584845570645722742458830134510089884627599579114949934213623229185243763806687220833887222433847737596152030193506462918368625288554850339433049298304379892616624546990723312130796723119359264124361953001293334662626343804830964003995867054715282465886795318640999705720902907482631735515811752101971375055041064710334628779864904723159101552567411617706603899622921570073485293859785375328754394602272943074403412556926166080816068843696393576336661649612767513381502714441292717108586947369775003075972712182370923329886906567402828083295161349698167621239718366613784196157494472403175030155342922585280945404472102074552580597919553416078029996767480001916216640678559436381566452709605688868148680745955313136543146224533727903043622594074184963895875281752962393222534330886180186416046017113586868514860263601222577311775118939041621791277725482296194956328873952505504540373473356139386393947563348215523515111183587336151032814738045615738187389524322039856437002129898854722450023239589264311412591041791165751410042784131122847878408610989094676387903771928219015663051546625544903789402507827865555332659378821451358519789767253650344494750086750935339744994691368136512315688582805238501855868169348444350070776224031290671337154427380942399462472170222975978791765362058353489704999851452547279335295192374571081373279137214465538300321898449474452674834013885398677964325595308621491495908872741886241799668758380874352942158949546778661637457588018061192562641261895693679624164695082432118280447627496897547599621327937438418142100989286399723878977227218941842571345567077401075712681225452342324825603140563358891796724869978694394650326708901185221575603143031180315341392198893659598248671224819046743203501004240449844913923890094442359584806557892976756773930509732804250397458530317029898994217510585968000963043331635518453393359155864165343495683471928362462618276086025635225014429757852952288430362335999590217598593183057047028001644772681038035174637078348740124436537312662438526091527535862288855613124339777360990099534946501579116131689887345798218679852137484001209003307675881303993954795079817373389590490770489627053573392121999157277247672382409849108277041236702118240407931434154946439185917762682061482072290369121878479588949156137618087191480982391466061287200316839539169000518383816319648491316402627503590291429208244454583875056821039737642949702206320979195140281063803157286764786752678791190023856176129091564928738753515804056983907247688457624400381858506357901823522500833490931257300318120086405284586476126729449193161206847568654258341803126720981650719775101373826687400544009489960532182425623695045306680925298566118614713103454933766813087229779023798395669094522602125872786613381696952118618535317739155926300945972070021265040825322115217324405297141586729485259376814624931952624143739212697453805064784443838200917361782049976471702126076415294163761134506590197439272738109697874526062900029681329212878383480337071392652657476569226929473326029002585922866845478238854213743961739299809205907929430343465468041506154966876394490254125017903036115703160961535774427732844238359396862888275036538632829798304137683376280137159252074928988763786143228057265055175441196386726950549946343887599375818556129823375251311558272458564693639623728577042614092666085331781425007513996655918014684677446993480486224155248588826328661895911603882216625977603639926504278321471145649751337814570593429927757316655111216486311398549417990767691064934505860789827398920044981917950400865265078543531614963211037756798036563397282963065827683563460135360001114670554687934268235345159218341226922582031883560418619736505081694549704541237594867731982824150363096230753537822003589395077969058647086260369793370049802812289831713270895802267557281528733433290151966752055564453225244919998953751179684218657924520459282709420357533662886646409532298494403670539902217724901292899134635080749128333508862475470155102713702241156876820556779437887263745448931382796140009530452829522942856183909573367932484119564321334536931713542329536035842362570904019540098208967308349882963558302413351684008828577625087036492490488261373208700061060879826781854274092438631669515047870015309364809670448348276294650678623319056599678785126948679337888902168593437357857133554347997633340271852414915757972826125146221890637541342748070381035228724414159875173321304055027104568809108516803952839637300490590901496446960700167725681261948597596331013554970626771548165997514465739071015122708388701452632079934556762194883912391329797458996398681259163098013985927511889419389092348902486912581476768742108252807163878846825838111331315397370266063135915243972698792057355857913163334827172717790293175791447827063807455607767749786472273491519079611429929834239004902852495547778946319638968152653398088976970339245554252613641298131421927215256751493950057666109122941912782158043570980114011145557055266949037686555383488277775440778403804650512602305496699105503733001079226686430639668735118852424886035316659166310166353150668627237398482275690037422988195123819944521669452389543041437129690315230917315193741184582404556759797181000442498303271473088167177736024160337383181058134253273939461612360860824265295125201588387928228431292876866720012440728362335542833201210187584945464783004035119097172303045542807626698470795199570673385350947836457129847856923400949993770629629092612098116140866729902753215547294467202128099350730729281219788247640918697325835145314946877835335633126330453029516040565241058086198573392245732303788884747801529567285479002184633669311838317337205196948758462880853897887194482701461121266437594384310978336713291119136966837475128280451748576739887010991152879413555314883163313206080952764722372702504574074275807887803243054615310048689302127898527339501228796126175367837741587981319140414489079227178247449470960790699348000935964286281176842554532953157767416621954752531782277374928727202957870357592857220047562193051900546336578401496337851744725802004522191695205518219154158618362489642567730880766841386332590414020856119321685629756440109658020373977780028790666785104935243202836170381163781532350229677159091683664175979024390782327164230961645549505589209710175133519646131761872962094155238691338866963541597320522693327139165810228087871089448205366562127250262192155943363788434335552389714363581321414740898697705949931283603539859240704544273065270996065848917348868425235966815805701773868582576208640239796581991153857472726780501014206127131938460956610878857531037492043754069880119298134722667304905132387137106442486358531615525474534696070266080193898467857670235209546853932464470129209394062744071778532059068515642372807013659603631213390098638304056110004507854151483038404517105205571732927918183018285571157475617996630775114529023979211651497225706829754772884397653346227318536023221963301846909197034118248720857791518820407774284086082793436817403289464137786129737942321187576592021826639641546833168406476276346980443555607993911281624889249065430507906074103159761870295997669124993948004629162712534792849482562794042964775891806903099114426114287851471564737020226121499677534165621552468020186221581670549649320074433335356250678153738912602000283021391327462269855269807988394738664208636745873576309946017520542667672507712169315056350813667332575298308016820177517030205415438701285366094881993396583332016703205028105512007785480777809787327372393952352230148818486675792210646991944788754399939790430807624660801589364217679867922086804518380457778217464076623220816091402166438020756001222321506584809195543568021152092080486194499841160382905242150107759642317420974017918071677165332079654400385858342432579202795164425391770244664129274514361862777613264354023340604858639032634240321550212458244587474655082007762508069548099425755355461909699479644397024132484377117292632708881848625426491072877634744654093839233885792910326481230351198063068073715641769100500692176264208035526127908749467603630575801253187763092317584536472585534752864326605904899304930482556403072638813072417163567521890128844013518822203222215484407254419608562211263459399814673963119906622498358154992783308279924262831361621793989893750906020861147068968725403550798884762363488847803347415459260123915279604921463323365997171879404600589854576590451138745904260345580891550784851855831350968629297107774687459561411756975711164225508328894903552530274152846385556777425313416016692272156814315826196707473445931040038583612185359439291839294448584652896743002275509628210241828252188884304155923173788315883044627000823869234721135170237703344839404289542840657966238143762487927038456594323096102255673310344974454691828441879023759910227461592367580075581147342454438614559359674226391548379910332307983780134356900951226380413703348721229608933382741100519819559707214093693868658803736124985210728603180053407902245943435648782832829908457187129415206264525694331684845365007660247219235107317378232885326056325799639665533449822945286365017318245717759056488724916355025279927202659160737181071551308721345641066145761801409546446127180646499807110665561546304362390464650374396003344399071565625204913398107119697475175638166406146211169261646812007554887053180213248254602819520379830554334941440686688432156057964438877625962817315992340334151125103287283645398125258255068232429897097520570752985468633003486688674681936398259050888448866593415794923968127080134656341054216575539692217487530719282221503067191818575194299082988458815033625735258704807912990857967023436442709854191195614706959174527751246318178765823603724717334541414416777711569873450563346963490937305021532076675738154649279958885933673310174217172780441915989324744067944684725467425994302714172627832300888533480575263263178410135305710388519815790971356055179615235514168627079011933216132223764289470439128447636136792229757718518591610633793867196844301657977458227736513248353943466089700430538590617545101381953432410222627687404058376115054882791858876135304486446757797311283155006695318685126098103109052569522953800432944401487278249069956737744729374898159969885469306303934161700872548019010156380724388736451253302934981292781261563980966898077297131170616143695260529030855255909719097086789414052273207857987904520208715028884451969879582517283303145550500534717523335652080484844267991863142539800340353852170384193638713144719258582003254045812792204902825278654633426761908428331575430103907779236352136059308726135672336625525624266226220038104924900992385007816880103243912225825857061534116532160652077173163958807800162934434946263714088948098460157262162031515961822150555568798087322705345860238710628256997958921258822586676600650114914312084431396907114646167711884388177739462594779436836539931942084325387511254911725123038079194299107042787319590594173408441947074598647944159246829493524409259597236532503163918899901437289098590541134521736997732182264889512476163583446841441094989051937563515720562803018329726252120762383725848580244699640259223619709671594282623068707762626834217132848807428302984691162635781015792523068788667957197916533859972705405208245200573479270321083484264326520704412843292831598331572905606033483024828032591855110452363124519048148089833538533599190787430442449856587222836651538938147478138375207214569032335366663489718822447972432523050488137309245461991170947039566784088834215798029709186437197246613927514695601392225955174496081559564765334345749681238579554135189237151320433640825704371062461855895187708230915472599043967912401503398488298823135573450324198827154520062563466035053913447707727868963750698970877187583346550741103173082914230278399166103466839761566166176391127823555832097180874567063014192703664629385878151648813361819988501147214960871194721921448986591074908416195580776022934785699315584629778598419704530018148694127676907961278272068088381217315084751118217742175868171325223660653852750597467110786461596258803332034863447759384248339284178105808759647254853904454922399668178670086068013839664290719133774012351011708902674628170742019177829663071585737663855474323706295343982744522971973083853319325892622305417377005766120369288389151140748494845631453070875305248737191170655365453692133745812839667660704158987459310369028245700193189930276936442923193915814372612144055504290709528571181406879572297913082020288194660350567814563393512879831836007323237099377389329835899064360913432060574523380241173118724295993592908048612249877339607957398401289078760386317065922788088866988089648001094477322128852824789028321113449653311609287041373660520587286697768502567291721451405923032565027774896504156868034415659360993106139302754669018392740356564971229325317303008644520962992362940570245873507929031483138065206579207617365549617647336576460469523074241302889155396599744604156621384151624408699658345574601460540723053788368192952539787264763215841583351538138797818919704483649916846494401639545948164678941349222088965473849803139157794881487250239823025278991130288430059798452196116249330239482595882307409704859157078078230342265359722496039144975494993936700884176925878263545075672468156853545810464188527090394643280579651522897574511025225476611001490657368323201602380324431280505866286037602598402251251994246355592776574971247296980569188547328631039446005903425432800457866647340957941949024841460898548440417099279082912678897383638962248452068419041539491789308964715286762641171543709023910828269277756027775544366547460398514655457485876274505970210433829503705054441857893734429007767019279520884955348003200442985944211706196708142315707951038540406818253552069653170123982967002866211369594306357078399529116589710419090384305953974255423341154077111859211258528881618796576049518642370066452645027071156757661534969292101862466292428337969744277006319967136602125960334832049964758486754983721652202419232152069192656165803436388497967875526567528066278679198104651082525021228534928765933895820165665151819164494970403698074249044852305804817795079976193693085576443463068180224479708753475443901571091268576685010911380010241216304202249312386197390177233709177376617376701585532079898580450072563547293226806513756154215338479777260174953317319765867497146712610300059118304618302195356372989046257294036397066403005975590553207267536697970647908517996556905928134929807440810693608697819796701690604741864734419953880324092077761663100448765327244344494903510813049688888909449848390439523770333743423533872394493393698050881502364072632985810246472024472232505640047018347804914475755985872043897806325356902430538355124077207342937864257835826688099776512895632615733503470939462028389476465113284692336300678083462744266658033188743408551002243095221780573123329534027475224751639242669576055502679001767670816211634267955580615169279865417206532519923441247794488150914382896575669101948311842049305482127095138349446706654697535115112179878360562828006851190207675512285639180680915481185893784581396533797911702187864283242547426203481373178315663323300833782348323056026245267105312731151241682682414458757889315138394800799859818732614526499169560575418850055770308255780056339813390625769530053592079823800996366438532522573034501570725287762960006771127084789337159259769315338492316309183404495979392887774584529170432934662836104797078884519741704864074976524932388358267602810309977955741841829023608303360222381541618201859892042750777436876167165702499603211946201404720821700336363894318997713837873795881792455495479161184680131240799240303856464357707787543190453925350625873762455420190260256280272554573778995653644232911732646302416358441149113634221190635115859263526753197136725692247349985204857023388056238642579586302105864994648833348076337629961314989129721249259335386059234634709794707498916508618199473711136989791742861708747172888123010191121860899121456079923909893528527188481070183349856951261871327324143975990582158417852474546279935473779869105152871225119367091646206259408306855930229601293158643037199918108928593050348906967656844794457229217636350314418099013161873377709818115722266329181303535250720183983370952313470698092032423929675640548352870596809534237515865382371660865840462480915144569519058292388204181745845659971576304137908212251576337985838251214600583223673366226364150767979020992345919335171423418378980652127819352684314302198761167805420065057508715016118785756217729540402150705952777188715839211072874547072950517907123151212274196211898920805980637091884030589587364398462791541851305431486652586434142872663714580996802746049429349632226966601264641246621035313174718398018095301514621029897903170552553430912361813200512290976398768759779575799783172737256954448062451780692357581134046032622978739779095145761621626900246485320078040843949118840201955113382878279544625210697713099058784780365639652040145446366382845022944651740690537943130998708237640571916267451540091748127681456907099047687412353052441667914420214053659815642181701527139890840752809659595128612698145901324518071943982106263717587889850006329309625600613638135150643952049005309732650730903848848427951543106612151846090075599075856314817394199851715536912605965116226744411262611708103928748770530585297160342697333834832815189613538812542439688131294080197636561789964616170683424118546572858469216251840417362794972481022424670334905729252429297590344866146222971489827082995039291258756227111105477857112221327790679221192865546846685463060417340035139135366590627485869171712879282318585380139258078268808151534996779030061015439263043840970019159701629408566647805986466150905573127104380319790679480989566287039997263182744926949038246523783365102287899272650975512461130281651918215197125299589273781042838654938150454868832680794332994247081640097230859932747272564328092844957952203911516876688278456669284589943538119664158832624677286958212158776928606197418083626693358093882146200469488302004238931306387631539314629667167828144978923244989503066446312053547597148797476444724499090076078671649959718408513582949435391048502261326240873136774146764837200061560659061313661454850682162361400263621344894463475984927433560981342315721479944388795537230995578190778969524753054777791912969558005428141239311477339198057619659273673234161256106038381950979749616901126170441285078781098731799635133502952640617726307402411442111159829624864987655512247587811515722478976288296478780884865698357582452730035754521310900941936950298496709535757042232295327553269832270530199220125935928628664343798335054574127869119212262197167675863370750086860239487796569945840828476744754214450095194961332398688847834581898278277000834464933654249281013161724305860986905554790417754527643657042774427621084684033445070232377512333512046400360904950444841934012774712968447441922404751798979853147000593912965658579604288594256934698257578931212506803032689871012788965163876027503979927472265214603380166064715412616498761927802297919370000786334619093531326313649069758626305918658532984379665911745627409847089157451362490653344718066375245214016899746482310327350443360905198391445085814791232170260181706262745281321985522300518964771530492981158209537216588252937849630127062262404826736841292874632755945500504307665797305910800002154671158430606451457432392196731426510573545603275131437249075862516891612605416487257039608584197214619980278782790415422980883515157779587811608267051741454014103818024263568739620190190159495970287985375356575838276730720454466719990556924994766686030892117551665574594682426937209147562182390905042517627237163863694360804460694468614882504642277960867313778342071597661774353254119152620223385056035666453693582151431410558057643195204168106685311216179405552009519119001868237678353154978638461646829378778495125339331264749309537351559570403152409282525355246151016660059933791558217010301704407025945700608214214603881833256893397859647220797856053465306384530701621264950359610712971206033110065154000776143502729637799290037266870463608032311380478075620754013582141514938388692673237106519977675719110097644820347938979954245411495639185664652998984048547459019639957275280710838409682426364067628155466852323794949424615365904117994228977014809135790922435056609457628670856675912887359470903024125593242292242365384309888547836180171162892540379570981372277745465031528867953843473021858236751634407580608502140385233317951973837643539636395126924980389403180613037777334602021205480000228972329162863498742265907007801590229320411300158758735323169503885381368820576048308013581642611028350144471885207217901623814675148575694632794512499785580553912328198746736190655015411826293822152370610881199240938555367143427725726187344844082226067343749784381411774680966717262195518535029014037245158197135730716975064863071327647957422023297986905861766570873098810256560589839438652633770042126362379533130875621223743971133759563444601256409348657935323061853837108205869724795708136132078357437487610174483531292446695430833391890710077386542985425115973680229579393619739597731613456200878306234428592418959475479710282491668126922315576136310215309329764730866489663541669214557552935945110790603938091636031974444046923351691402289089872892708966406772472891077516299600922992645632454158912829136931257978533827021285745611498222574876708142849640628146503501892339095265671455273628609482086701359974884535065647567134094101527427691418672716790803429176720756930424652476861290466868878570741875532211579987247370157535044913199376198679837190850086413990860441600161147465427861368608492880754711774838281146236783802169888321893545224901037737171554370702473544710647820228283390120048331310827509732616635891466689438987257751600200199011540226080504072368736766898655621960889556283271419678460179460621036502883934720695707766882802395039012786679622539193682536100896035408282019514579184984552152163694999132581649235087688012793888837572624654247795219903830925854368262211408025094269748145390181460036123993128098146293893878009506443410166813155707189284528269988313378928564757513125806446774904680586799278956587502751483675761385162085460372102206931897170270100481811700998723716795714724829024683135860423389155986317988733035285244417873363608824115091797019093289556450124862317719794748981047084994139896271274728303589499742743681351526605264889254394856184309173132065106503023249328082064771631080220430776894283273703568279553668510760252049633355705907008135641604466512463740825909241039124501440701071790070281520749932134723973645497383056764548685795209764618449950647113484304052376379202918359655937041364996369333317074332125069497757293967134942481985265488635267698722205070887769916195124304993389201293857736806597932497205342085175107348136220430555748251370711240655224108682630836185124747779658323946702649451925539168261975579524600702199339098572277173604707880552406318926731240371678614402049661362918260755478375728975754810492284418205297505388365015185829043590977797319469107756965368197807523864385733242941115648035088612892414866968066725467152495799759129770930199095260790038819406776466967857024628414991344797508786921878668747568798693817448940168578088833243880372533155586758323883239466238140142105072044680063671226172062081652463134592045824606954414169539753792330165890533337432046991785275220053908547544266053064204462238952189253635820378953322767246955712194466480849383853055458551263015805237865423253433053798618829867935092607246796797113965796431580774515047802215669628211498127763538844427707594459995884799431705544530635227611803582897156477318108050550643413035843083171893586390083562831388222443864323662069183366220048044174000367270294028840496256612474049103599820501172569197118557185620384915825009302576239345053294108313183550831365832242978947933945096004459297108708700698106545180196849868718692253222949944103828685058188564723699728668582675035502313909806331184253118187195579418577872383339264365412608745247152665811860031508679727618330543535714379645527604033781265869809221476744588561431935947001117054122976266317036358207400747526399458586939126408336366519214903943728178619040586441669671536044106675000137943681424417598593679537104141302607324310350228213418486713799567210290384370368961326926380193714943506268028108808080435666849043731475343775887440888089915454282166427222629828004902931734105218124234180048903176373905713167621024633040522007565904318807924211206320343925869436456068353792567123521089616261721521180943314804274136529492092832276883318959859009849006002439089484371232738763083250860934130904060990167835325910821285409356950100669007789582353993338112118077320023775197112699453992697203636062018722964019931325228176970748182902851998104577302864345490912158232475350772377242684542521321861053897477407343981595401295513884167771703633394758305760559529214732109324595408215664960532751101809716038916770744951112296114001924620597192913771867962723763469956310053754059477969458095251730011133729816455158713925627379063727155662029254582518762780415384723542511388948431176514369290488690666355363584844451089746774375745164153141336292849295944473194012436346662725399339765745796655858906313875849414176016174797470486973618843381860043847190808658090452057557760064222708613188310933618035172738241238815481935840567090540222319856845697991518234517830255448623874545005624073599861235886976768511580141561754208150453733043614372591810013163899196226450728232967671639990530370352646656071435354976642420941356512625387939686457554907685525427894976812274646900668185776223568988561434929801364645803884516689930932167327830095110874726170673500189390185332486177450154821583058747142600266462469043898191446361550067805768158067951678204502078656990434569631533042105267976481127753500850359220295009940773390571529323496169176144184265414478950615298939190976770308544376704289257520092650149490459333049132753385620474870338679384291203700645828998987248149110110253626661919073429033877209213186550573874999155964067749477176288678501851866016149967966846855024648464096821800607696865197028407397147799883242684982840621372129983588693510738537702312708493639778152804914490388156477876204985187959557555332457869470651164200905043185104031806428839536463416176021919002788495507060818160613585304531982869192469293806846194574848883249814758375171227532529643088899444218786290960193195865488321076335447318339249510182839275509152031370557150932644800037082978908684005336832714341766010431314556163145144194168479612577061419498376637009530095293212387408534984784861817171335279000672197989411887301903057480865677687598404636537728112986594526752236583476459329379550438999081324462552621332751499837043205733806315282045974971540804891397568579016407975428027312972959442021946240974996812354874433367163756950515677046715557282582405734090762267445166108333166729714738759569968035170869918437151909836415442995206274928027400843078145919480571679313786603729067831731837438075460554955152538318733268178078445962475639097889235807553766839386118551588813242615381484416497891360378261150073722723384343432326848370203334546973331681632296309342016871454862703325441613755543511483219402397184663880814501193163253252445497616940283608278980478884755899535166831326344091966605249825772981039633658388195439945058699622759269802227182717148752308702239431926560366252345076337736495276046902972374171914411667133094332120350049877654157209612248798099655161637251937945252074006545221717295526350360999635576386694745963974504797751432832302818244539621246861188999498691678318158763287607839784387252093212437978688364255786117854492635315140244116111417925215292409224490180479908432783060346087499431300141728032452302544619372717031476462004658312133004464636433501067791709540839382080233057864120465242122381555856147617493843668381312832396349444771262124020473746299238919186789065127380725653440281989128855912651765727740910387090243837854895492860007452107612339469169202590465478344618528453861929621652218168752581520383244067613067428127402483482364843785369743346211022125132453771775821318303542284684228659327672422954357965010390505062060968285965487051830605364881940342515479537326552106333341417533169663593876716358232088088659124621117328413373206121732595979198328432510182917451694157596123124543216576071775181229275925477624527907610194713761154633283430691543351321755633761030591257829480773555567942046419895396311341041469453850121095756636468123597686530098389569095238851127218186614362007063094319502792657449097420163416987582566118012166941630512568560034575362065793176637577560864763874756373995602391660557239772731685181037401154116548147052861154692502033155702520278633521690000962813561968301440027330449103129650253390121531010502299496350149964599004799142632463579106579581328329245621035156159436719112192969301448605954864939169447451961360913337437413393296381376001724951043487442069154057956137443023031965368439907135593410923597483702877051516857492068435021118370926512431544146145461878839956250494822882265285933058640786924105456717126932327907221118648556080456428020690868037347311482512342359519201354023508759254339560712851325850358149438058442101891226941471445770604452229470461112548494046249059937625237319013008160490680042242636584972129053158477096378860133287123148008980139801420454844331116429536578644561581514278461900170977719802671108755443440290111287430333200354344756547745253725356389541645491325189043326968094935366444240809089146549981615391776236091807072017245915087773727969083996524816252212305605068554252400750981612668342823479766560893543180974993056310941135840871676518895842522054542799315363448520694722626213614769295077716470402255740909476070530365849395777471625767880915791735167303940281109661177897970062725319391521176915635353373745161511770460316015694293246472952468781292794952114679099269250925300651231813721282413993079343224594350662989794219732751447372410956938914040958441859718615387060690499551695324230184936482989003695153255046996125415677619576462682482927333426561882102089982726927249181307496307312566888231601110977410727345832683453316149633422783386793274324758686507221489623405435072488703748622199883851486945618351622823182435377727219103312341760787688826107808964347423796470377037214571213452417469596217957859754323933730784438252985256867897116215686683664361061880619434728815730305325121044745537277398883192621820134076716225503762448630092358865812496773140865992901755998251378982736266927209519833101504570359106047743965044126297285973761454072515280213609391525973395373506127590186774386080968622072483380802588905500681058382790231930096138062150382330227519830258931930681341717912982785037566587684194055107989987904261316288832470505408563204552336513273593575171022437412246691811882266783850446156695385208222872005539847446662663999039981769967091133168151525618087129119882855298213124985560485676051040428624129077272913302103018762833746007182502792791670477668230339994924241741604223930175672362983107243771020226850634195018219027477871299015698759680847939045159417290069367576863281547023141405351937707485443296557433697803394072585144558684719167005760917083465060522670234866283791937585992209715264393476047735729243434451193746866115777782796449155466645012073122602870359216311325613436844600172383873798427272595242667532811509918427154653610600792094951449392654798125644184860560196613734054778099205378407948192244397229560661110255115124680978940056687789570838542390372713827629172704321242990107932281461066415062628662415979726097644743988387665922944660853427414067454392869758266336363638521841797595003728173774241808830187780906520121043384636854856011641137421230464618635838170202385928458459021325979690785763132872426001961388405774075917231422840325881258987755439258442201195664549586069716068178000685757059447569775077731278391407085703514402138034836293287648185067873380992664766680440883497118459873081701818324149069384886159914709915833607754256323713650469983264047005727760288246060793482514437644284948306329494035523127075375102543958224466925470619274423580450293129649683058544751242025050111346799976269991274790765392239839608655555401799955510022336859660950946377888509467948065649529653641475317644140542180049992536737593949256699124933288480558003829002404167365899663991728639389604997634397085508774758197692586232835322635007432357106571904641335388277866515574674851656828819713816142393974809011468699480592555372449526744672709022867280005217418401422243387271701586857405463903528063099616198285577041124355561294397605565308155224964006999044320004892356019780348498845418325269388530326664522306278170506097666746407440468650436915619776539742413240283916510218660447621456782570096932114006163410079230772072947776614852641903145531951458819937407681530683449220621133925153533066319203156601408739577326163097488315624140750662541050558279162812830039510751193378251277885465842613633360769669099863474970996007595780212968548027631425027714770690492228652397383259278716789179928839192330450760714518775392000896530130962888656450822154504882077826956419642359467958412080512268750223563161454154822263473362567777803407133116065047168089256568047363598088964260900891818700647440444811852926857636425073676276822564055504456141072000498807116332592671916427729724490432028379401549193659538432945112208708761455636742965086703578712726621935807249669647989701950006691305288263757805970198848381365890387583352417284809431691627283330171150646402929317283985768951920975461960700251126166034853171166406679218609401791048473365968138321068198901581389959260189910346297113978530829690054373048572220641159273395862816330601538893399437688948721597183630304610679710272162098811935851980025447183470491727280122977521422110424590449550016459898515949763188479485426532337190569182575860326853360848882611852100113671334822000586347090714026577136679750228422347051835416991662781505662935729294082478252917476735547379358342946923328288219770057804815400512420183672408165959657109962170128564086810021203983274085307631604137320084494505906598569624256381182025326481793289184311444332940224356641203003979213473922752416037119615553562597723199133506231811860521777100176887754977126256734664990980525292885106248315365833190272243936071526756715379546039106313533636614543429466266295747464058973788264562304806878221772845149037245423131221398691488569932381665433836490456738881744468594410198313677118962117237513076774922205615814861954352991660327069332835729749379290634556306183719929750609794213296489824534416719194897295194895527372501610002603691573274887442028900189437806679293585894681619229186378065214988979529166801310960953091326921475807737479318469523320630132458312954738948562899696321140871135266958177806447906491374623279863671354159765422030236059862437039472864829710606049831034991751658118545315839744652725289013194937461799763799948977334875025597543490692948251868602205945198292399702612293210866280721644094053291460327233319930732246660602018871679713950545916112646618841875965538411899399441190949499349284197212222211551404261841891755538937761774517824611773937197876750406736097196396676181735384391647418419298469991599015419052103153154336490240244514015176093620770035397430901217152946739867038110585577454743655473047853948459092332454598361865655179857876794023622584866134636837216634165131472872844223730217509169847635941779954538389780571124507927927907102223044648086002617386852656474948372356625575351103001307894615194798375094889549061154088609804980387191362491333333268261355184867628376024802088894823091051374837283336193112193016003807755503822934158486237016599918224691316606058868609510818369867958615547091145703704706267112016523894146791943450405679993151062839850585160754666799034019274416127681404999251219188864670871493003609940268524527549085571994570696949527355682020677554487032615305441275257086369815433137878040709922761084648826000089258763530055419150781437741051677625000367844941827629058678746440186349931886181729723521955792386247567598059437449977290853629979701781115549651193676808740832067420899087817465995812557093302020328238963277949946918778461719517869716196521926424532070403959895922605420004885305722073202162019614443548467636607748428820620989787085406546030203769686410711879462080371869868892133322450546066325206442867245839380463572112815467934747908584119176858836957378154289371869774891250496641702005716110035508924944837341826406389767934562366412162794345267940592567359663094026567770502835865697071530116132696273939837976777425556638558248269272210579589371180133917556122144664104725039008049169867092700479672911172650557088403158887576782307656308635875856530149298882602023153228323176569293516751075557017346990697186571184514961965761408303411503584684346584071622778693557549269109990608046956909197694819793624614225484620953713223792908399679046469252016651544478479458866849857688433729243769799998237151901480402209707573229054578019660243574682681684204560213823940333272527530867625607459582297867818817005837879949059040209979326749377256768603922708738179729553479214883060501250429356375132484652163047105673128092449823271646096283358780770645646212512774555032727243281036020181938494046670808140143792548416399004508189241509723122083655744644610051650108735832833855229627664529424677252569491881355293928702625213449504451292597532863465587777156089169972826068996752141045202788099869883828145776917450760714167298454205564994074053291696146587727830071966143303230524078162007907215169903768112528039480723090849983532694910364772839456803520447467181257699781741969309168355443299964346061176236165695377255042115515702642650006068633323668257609180392908218134508679742670560672629922976630859590193327755029620227411441374105095051682941895351747871405468783151381928462868792719603407778399799405113083921381960846203137159582989739913887146609517494734278700371361376261780343315368489409086811635618497808932628297709632363436403787097568383450527143312390370292957618041898192179098486304386852257157910779950429122218282870078573615754042669368676245712434332055630365105080595035201985817993045420922354268408623167237356361061347860771863202952821114759749699399630105177299773301827039093108892256096269566663472608445376278779769715013183546089553498937239807124015701312580488118353486048458062801506704695235986722895656683147776311819740914879748225800811223292674179018617863284875975409475065643558260629399281728987911626643020043466086584589879895000124973125089981593555583564419324866058168549103620387512321352107119209572443038000146286839924005184966839069819049999801085741357353084266689959060920326202169190411375145351031641055881903647520930660281070795619932417639640349415054497016278377127635352645859894521799186873937216265806609083359084074074526339738391069266830952396756890010657040411005296582528739571159402400053772258420554025137651847836133974811200996222392840706033118350373013987237206489145988208592172916105424848278702114669432758698934018799295084037631155740905446137611650726099066221043698274038389263439144543744683021917168183647576211721600770444127559962357134192719120607787278664939808033434866176851836867572604531100657970783675319757846055617961054597262930793677700265584157810394545929962258537703431778577641177360842249106739514824580485106552735752379833324683302053319888680128650203454680484906953884386750399269451702988702854834599764764194249736446090168773595856726143225585056996680430290936540629177373877761904407307799289562881316501852496850582963268185271381077365310344490507904014174866469279939592336337327825732965475951719990499636179928169978325118406484224449354249397515497732815191001708094195549094609565015749363685924590631682634211550954624266330029828135431568622958917447012570343369874693624481291452323501033184627070859811605345245136684695140142939623270296614061455641989651624058064940840098691686372011725979574680174393459170688681347473651491970699217385099429502930772642550971979926186019060267264694736736419098918880098547343125883686791677712594450451407654180180879515469111056224571553596568603019465351511636481344609644843955805693071901994501662981761273990446346481909210672292817930798457290601997172766881727345067287213547601030572947602001715082063512171006555082211495835317846869228708264669650160204155904768929325756957436680235257839430271556294282164707507548352748081350917824760920658546942529258350919335028914599495382638328377615671684506562540350697250986313027026918721592092631867905557914964068058101508299484057609593272198939506715556672619047961810266149351571402111404754625162389587097472694362855466308383556198168563066427315398562873609682872691308458148629018038253286629532159835476689644289271538959698396336491129556568572685367077151736514783118915315277681450277847741514614442263324196017484988163924813568616892312523125809815786417530910800302925591265482819310771999562781380740711072053136469100332239059984720961597984437674564362702634390521992550800752782367059325610665671156514590132774297038101689871546487378566489178859962024909912059907366087766264117366928954488772083320022473632598484340857075360637569671070871049284408792103920031204500198503674623524801156661679546575720726026570110799047252429291862607656209093858127285799172472114130946094850804589162181097943355386392195538878422281434517483768818388664495313441161101495265351990368794243522661784375465573192877750463496096770508969102213484549079893996095403929861930378361657764501464187400328406176736730653783435260295373621355260704065518699715423301079025004786661076369081091614765854312749776599319971607757126676200540287704303964231196511524355510699817330831706217822432882742034919926728909968228031226528688820876736065158410668983114349765660171047687801159573542727816229232126294544078928140008144661067968117788750020091910452895796899502881935756825270925887746505374606036041222189995542913094261547199624021637343052392281088672932112164683198464221767833660467751424440601496941778942479545082857620015238182028569847417933442935280261738920692217400199378765699636640147784841277519643715696883049067975829820483020576682567668206556326180634294587731559067095575712949382827442038911838668846446519051618184218454737166862460622288134645417314009925249779493573218295533010641539063895535990800013055962848706417788232623527014541567518141944456813702473212977565749959554666303790237998478288193827467529820926464896988428924973343557793361714255873203254872230186198616469751701496656544315762381522240025342500810365403926024127760920849203057771898078704788352739210510647099133397785296552551195920669476748753348967885671754778175047896086243645451242471447279370200679514429189276512505283060642177510256090274727015269422011735949749633017592881383763404536015042282845872482170078426646938528496218337157074562283669083438992585713529160732002303115912757999988269181718184693122174695020744556141247832043827110389059502134757404943885909576277084101689701685038029347832375580073792353100095302320960639595218497897798952761248297689098637855014488460911422603412677019184791666713320444492561821961031665907746852130488677285427349711946068591807568604200016046540933817640223357505799833665773787521797702807979161041462202407808282885543771960481532348229121660193658982757567585949809004506670094369064178893520999907478370970685272545749466572048362876699103985356722947098312708704998721976043795874414783008514887124255248386497131424502139508448159690570521296347345599649215637118219937550932258670584566353805097760031233131151208624121051259644181323704725907084390636761598081854724259885957442858505697571461230750138067154562443863856626449585911845393338835453091363542629999944682336535952951105132566346241224926546493463233171369627132574702005245915934963789004804906426911547409412644625637214977915626304215331652668227877324439688356753744908336291520183823557228604555684249325882029653527770862433018520501133760726574957957774209191877022718287317375468445698129105673877447112759715685182223433250119687167524246765045433157086073252732584743997169979431649238609206424709455311735239409391735290085078344572912991272602837787754905123026072702037965588921826484847870348099489775861158942338757176373700229949996209586366456709106949728010675784734091398873380369525017046467417286597930836852108666075838243027045656579484992508078778267223112995207702218482355618014283018447906135244252971794061238352603448746820844207567425586010700061217965577449739952697395257886514208186133437144573486273073566778842694593031868759583484613475635862820974846088513529979463926835769330078040858006063168068388365131454910560874319590728503430570009794098114966648489054276128270459182879219279168188804108176495443045664708807821654220657917041248700006678612939210163911861136298735850136286811945610276778588145207619475860174474126283509040407469993956818643813293403477442414225939082850627120774431290928432791529111880862361069078740174672226052186012067470432777571665854986601968477413614550977934253632482214217745893906278202799590193971848506228640924699392860040129942382351062686691520532022916271211154924639164288960887529879964604735581440486858455526081794307758314545450555545076840941168463164816350207412643010317264099558546277943617955048346665846127550395612360607410016661766116209708300992356477686190520409402974106216287450334742733887332751625838199465228382594463611901061377212895835600446607952650597734103406434366457015572393594432280562036882042627216245469835828777074220518674738088575846399093742878903719606255545211510540283438597349462402817377334216307540345779072903367138837326683778010996153360269845332133129730389835089608688537629192235216043431473528681709802372689512084083672034672748574853841325824043662297038742787273204002027783394944113541709627213077065544141063424251391916074673101104697838647090863360183026290465800837343488809647439951837147182655482671651222955175498037561003367630910953029614582695142912004264148273750817101094459774141550340534432038396281650343330642280915872059864818620942698282524382280961557580112852675173355037180642806121559268103989179200175461951247415685429523486192701099715678398001069880870916501550808596943867612100325611084527969116695247236090413890400721467639042770789194723141936481305986096004810205694912456738805908219827274001728900115699274101775930509638516459669600402366884610719114928358969736402952048115040115688977245926119693385406312964437890568946381823963608131878098847236533137494334508105350047100184865212214851158098298323375661484826133565943760677740347334742134413906268543458472290217513443795923748323343926279276266761390996168283739235121655801233590452238122779717876458819039331184169780835317585986902244735879049941948773777457307877259071070939966087059039171635871612780355521921475955212835236253410794658272304486734309595470693477811861542752781385203885417672733998873350466318935522205080628618477704873822626953056356807524728406081537498949089708471030953482436538166778610637236240604347425831171932020616908190744631667503088716449230676184399868881364080941851929451816937019707600206182638641169404123270652411168178363572958964242274033761922000259261819121091088907972300068533490710644317551977147609219311174671993874428387940123443376252527707766756750371226171653168822474718014145684114275575915649649248838769750450125321380063420698670549596852180668195238053609412055976152193492266670197818782664362415366851956102907448988356948123028108868619033060754613746526320693245901742014669018974236752007771710595911150969671630065375650981283486635497256546447455828919598623087128315520084205646354974558544677521825019778224125101117552549323386513658433142275669852232576886335846192371641224649988962020242668391078116022896823750582630216982319221506860335102593917218302445533036597194686982250344330220995727506527938384095255844091567287396198737252209194593057888883110766508051476452485230126323300132129126067396007575152357477307245540157946712902647868599920891344830709848902372820642117660707551808454856024731051434397703078154755938623054378215944445217022784915675856381621700608354968649299929270921829841200100352668864927524446208757841564879594334084367992859354219507002975786055643748184438065535813760115482508140981499462950331417424897473238261955544490375475961133097735662813992863325734589015425058623590072075062654105448656239732601491385617711486455076664053995771325096920728582770963503818312978729715014452079173384327973130890461960367960774204107540383781304559461492862182092119492806401129055726011682490362029414900966260229041932047575504410841929266212757062559046151973062145314157092164717894470900583417142250498615216328057401665074596846807189898086729913602998006600466070696193193811358131734944405069830153165902590033706193414996863748553541520686476018882645672017716213787833154500911095413034920339890101818697141607811662731218905570800701129465006368351120896317676583572715715373457958879180240160018053224800258575874450664942495828599570991455499490119956881480750012207208181746659672410173050259920961090328856091157396037069797842599441761643280655607471878136644051584679665309750001047753997752066180852764342575222895680841340207608927222745186243020311718431754935029882201768956449623998419503660926724268453196342133789509499722045373209631350600111792351565623700607588536653121693308678597675968425294092979370261172249466937864223263319222530714901046251820642114907335414452694168581367275488555654903427176520968281459716931469095833279294017660741247671799200041516718804656251037194707848186382745392377951504706131659772000283738088942374640946396246306323024785305130414339169148779878880788452244007397263373405556699594466535837412735969882714486626579074425306385800005646432578302825817245952152402835642968891326169402184453507700778497680925522825959201552395461969117615837240028185589423123989826026867021748951681505511467751793120051897963034331079986152902360021593763903874629902262157534803182008986326148326880925750558901690886915096639261365655169871955792916458249667255518631794102820276988889618878231165487949506804212754071482909500093889809791750238834499188524869347529881233377097101438026641696628143942991137198117526797824596018307890849569859370603089248794232011943018606981902874593749612485524186117042147426282385773536977778320696617684373378458415515011781044646285987854168378341193252849190055793088592583845780023843854917157535418394249397654620003778692523259338731642578599124177310437314455679687332365124355070786887411923657878296698042083682265384335303798312544837295940809807552796774429734304839599655933121884278392275631789166324132942718348818871397435359687100773637554802927433510761033348906719241336457220764926328491967024708617578324960769337066191534132868713855869319768691858839157620318487284930774832431675511082172361358085835640815411014152716429086911079984390529057071690519760954164220082220605493312952696714090880016862826241658240733826206185397139719113208069445486612366085368840876296178109523838885456625824205768456039743961854723915507382776236868603545115919950806275703897396601153387461342308525013446207742957511413766647365849232107869819000233648987888172898416273534091437368335268809744624938003335530783593677815516546832563459929126673310342599757616813990933466867383654192395254021205695152577163438871857700333633876977789511185379936361929530099792320925418126913603310791304415185060817064235641275590575318545147264621492264489740784415035168216427332049763092047666812917707514291433727534293862204680362804037627515620814910862737926348226063391186166960648109097372052407412913456333099280250311028755972946757793125822454604571976643665129674897279887224733133302809956061963362185318229837563752111107238372472507567588347245623142048183985792349685602639931253877633437756603423797867454076573788935196995287269150838446090748722446959138962292917332887323221145296021107941370676336575857039123079288272321312649191694033474842012191253505937375817921392910245808675979202258578726177371572796636645320602247591198750862715809841069693442607946179820172783976185253705778417630666883903155578420897159309324155993182124318408681046488909080194804195430066237569948573216851601153651449931009661116948490595951518350629541992773304972869568530687934422072296159642749794688546485828280008268829898271903435511796685553597672571110450602771961545248395994447260470328959322383181197029340928920477299951792613076474282517321362182588480645673695851414522953186032550020229415990282582727592187411417816936572325726398298669361159526162200803851670261957536644766120490080426052460278699349308976887177232833765287880694413740989803917739517801599378662074495755507755346477648325545095852586001646983488593120613896465457331801221055139203668988330575906280405875856807217461553553836883901792404944181818048410747515875423387650954853521746703840803687851320079090060545552745511138522863761165902984547777537046776337575917881926313870975356133173360536111689581054409607933332179116420437109793947468772869238160828051530158084905937287679686566384089801962320182377655249554157729501427759808975690158210922557334722823441173661430563850557205864127701181043973964417618365320280150896850122542121217487939518714454905267742799307258698283339657690676384414353302212269571717896675970803720571441221063891666172477230193479596288501366925736547753665343664345089348610485531389041310218894714344710277589425096981445098643772199332036915711930734659458833375250442463465166203094819458706955096637001810857853485660382015119013098237678620053613068257849428437169726816149666357906665805891189403084716235297107549482965367315443373878995078818510197499777229958771518186105774003842615344289601753611672707966812180079568876704177545105410119383651164350684138422072252345336484359666852667166811318778840189819364525054743345095858090494415612226611093952156305615159789226709664777585992250414972678852316892874519511721464648149968444173436020769659910975326255892914954211904570197601151576313180355530954940939431546962639530667946653090375069568653227437455258710055632990947024745178915174883328266006571560519350602240842552250254176627112516387239157214275459500238590092837713698804478943903731257607880275011267246633056725014529581273883798577320550676953040625707171985600919166674800628394760185351406483984923079888122385810791977524688143149255465049967262259856523130098261143859612844130994327144858147646690357195709849449832525089829891945375914506708257791153135712567566072123040876895096438414882957324279507083699065296324546806429570095085840603556306191199551522314837520296129087740866123737163894718212175717541493309816304221882592340804009307657195842026747504058672105599350497034007473210915599868415186373116636095332385405752364743995760426791430439273321649388874377006790393729721239910221017563980156648588606293052822508140897015553270011892665701626291615679464259943251377736832281669792470858018584015856647445514286225895490978257396067493778112843784920235385237937765291270795130412594391696173800845108439800258299793358810256249614267651737837825928753539305379857844003610916578261672268765096783577888545516354828511782510956640613492359998307225782937545048036683671696758445751985934941408593591318014989564261172096313290969853448925110114090232135157728464468799620401467286769686048265460655969836878441726960017580094948287130745098591425420790453318819895667584171113617462177601707852351508768778413799786288292576281579896499067491242995185851693859978297542904682812524013104876466735253499322024093675398773117735043910421151059120006146697080916238002045122976042751765618723682047135745409312386710562004810441414427890430257177534431960056623728266064944889456658045046739549933284473537194014690913887345248028403744664990228064188766292808210746968402061904113822809574433909970975723350367438534961914541149407399369684205769721969330851981069052370172305051221854961332333257366781624500622405000831163128261811113903687841809445555639660159634634580676884806120062666874327502891240927287706736954157721598947185531775580023859060089676449371799566848364114868069250675350703675100977137367917267706506159707939117911228675799926643475428273435206993471498481701003288897607638287367134318641031937220909985871299712692921305307907385391933732981106881830810982220037498404663723834357086822600738335305071937470089363753767174053106025990649835810342639238670853856660628323167683247401984777101899541747158047682097284563736031589539162958780996626363852960554656236249459388942683387136273135626018394107381742756450954691012625602175870242672861214006288390212319789455710505225967327437198383034016978141495810692564847360086728437301371920753313760735007714547491601762799124549925635999730139436617926363430518944642821645586277418360331010728095953548131704653921894087805593349874976164847993455176496222006954222268198973222351811380554679198779599688804734702500758176697085549401987704677079305944778257526006889660634070295985600028409782734357823784675746839182110648507950085302487440199247596314239931408137006042926367640020781667662297846588052468158456253084266329016359053744053991702350652442799929463947202406674739525182788090833519766983852284203065103811051134511537046250450328216522274943638395434964302212324470061882431094323095251995335923998429259516221124185571715810191831779767251393807232911081889241978654528184329792114134980949993911273719330435241969584245418621266279082926383609581401759069815220108232565603045610420313867712333788340667016214304589008480456142153349424241470261545888396473281633129455818339771614622234051069069518694995283082472249595000903420518359829657124181984464263528620550672775853496839726439488957402551750363449835421995616006553409485608424887364797680397658742511165283803167114612335266564923186255373322897878179427171289362213554314027762900695510880571224429425490205432448836593623956659340753319955060413377963392593663390636893366990982083876622327552732895579119779958540641239698215974095660473918011932979318457775968620305401617523486462767152686946916630189718650852955079659438145761735485642462350694939120017690527445954098410718801044276681301179414444554067663765884896450970123316864148404382412719052872321032229044444830995416434883160390126543412037907171800646315118090286020824282110514950157624167517967715929527530091592966664351936614146667297667088224009614666475976407748710185755875216996781465309758052585534240545443340941175534475349938412582012701788954335523991600158321706398011839738971557413083995284922412666958333208410181877839576701451100310306326924715932484812770120652120406114423779239816010708857828671888614178739381636117768009362007343037525164739707678105537492615149703462786473498631649631928753963006089529758670337287737980797297703864997914875574884517312785850154199414141556753878013825842582527310175520238904101296729173273411465142253525118262857031118826750272038305625160506501006025566438139621192341678051410894597819841858510388843218492997335925860215462658513945771541352753779667153412158589026937143915406556752307690335114839854313643468593761330681761072436440890062557822914325365123518898193841163482239105989611681539497812614147851978068416827914844783943149364138513370718599261492304181180845474239651398633649164642454579690072757202133974334118282665516221533662040380567754185061939218936023653716561808082261910192489031685240654954916968289521557302561738411955558990196246402753706697852472089780321065873560443581700068516692846987000470729754303942531367946651696816213244692527838694952274532540862280707189321298488026838480575515065081972233714946023328746410242751236095461262204506730411314604084010502193229474329625861311329294843414776146215401083501434982214442809973384449764387189901316050993132601413593095015504462393312228173523854946960986579997095454470661930294421657298503244704571814281824816122233827943179319670583444135930215509438010148817177152032473859280736194873516697363200522601304261567826128570206697409330601154537150137132171886547513285219041097618442936164624441084819315248261455931374351720524172182487044921926613336367449946620367979297768266294233837717429085358853794522169398579069284412236875222631817948947725717427585950179563156167940930382057408784633027326311418161098539056266292441337235016423184461613948056119638048295988602753743546198956525943557484996850578228844592370512475763781293273154962912230545850177206143495292875461227663800419259951838112547040039895488199214910421770104715571039647906063737857318475156657478904270773064952838547739270351458496722642196681893662763179036444806770409344616136407433935498898006969432972332178911765443781937838933760980331476446497102744259037641726838476024981479055035204647581907749967919638595145804065288095380781382541122708044085023972101853996519770521036900138411780749288393312726778559282828363810143002058480612130701438624533231950364978623773173896683767436787979592012621998313771987064572643480896610640707808716517521544576007626246312952634276131839298247881371458280603667989069188227737913079354853613070716370180948705573100430668096245299466985742669572833212699668112873477498408933199349252469028848389152435637608262502968793108725834635723197331234752599488312083284837712306729677625024415873395716848380011948765137974227022761505335543841771024317475187160053499073549594335362334657072462701443362538227391506423094673086799430469704483133034967458498309908323935558261595784664946075018931218368661634300933687022774058814411138968692872703396217443841840837610659050074811796857729589314103131591721454152831119286882350864393977461069578091495184125264461658274144000328086509993177283458460534837418212199760446215246002944118503725309831388986906088422365990054806344826599253390152882196046042964238926614714594764036607253628610320376114000536240817872419452371362537694667623565711805526144305372100386574748535190522858777261750470970885159167827717124794046815012985965151550494511489672540833952081597784711670600785041630801197329534173209190887452690133014220006301113169110832615015679385220603198919091392346573591639887010307925855608084175815776427430225194363420444162505138176025316027383401912978769530189860560170631788337854585533599816908577371076171541255478944881307885224400724606400065895678130592381575979172585892835469631556488876256232234491511676540493526668636972055966752782368713394389476671425502127709079723966635153098770552285011076410974257713155019036039921986124691444033624698803678650368789599338739633212489175528641519593514013072528849189578479120840747934982945776777556103988122803109259294250601338044614002921115122022559006969673553194100557006425479185749849443306432769645805759916169166370684726210865866007963627862153287346085809816189861855559951603968461855032848107023404862518916351256788638950950172729186868480142616997590618341288094083610870941849485164980117135694757836624512800194324513202744026234590395098596731338732544158342624534241967345029932679842480115236735400539097571758110402507566702382764165686703528650440649022886348086061882952462349925053050180363671576470568992089740069418508749762344040257631710017938819598662111879710049480698735264355646495778124939812274965549102882859414925379330966217136006406725648602889447753702054629202978890907223517827563819527957488765158257543972879623364958067685408703692148715889445411237976217112215259927055782772398940847058188942283187804534594304455902917913759240207885629226207275540665046336792157574927460738991015341649462249622641403594163491184428216662850880673072425224237260974286021220000393602626175671517681824607721148934715819475932547277069341774611114171167368119107461561486758760344124884095944454290562119952405290191822230495969250789988254856511167893868911619441170859647513510274254630492175480999463708798981115276665981879714724800996290750781800805053775386199231655436553712200761566558869786028228107528079345766993383751474712431586414993794117066315916862745891032613754646006003313205182859211357953678334926293195946149726065375962119168254737152504790755717667873464420272437160598956811505856903624989881532135578841375571377176669297499923800617141611252788499731850814464082712374013099335613669517646182507667658838695542988412761649012977252170140536013715275597959189319525929411289332989269373980091181932381646853494857986361010831408793421329963181379652841468396048567657169629484403891541512066619965314331009645753784389961557161028405912662846981299545369057059129880393404841062846204565608060488076737750402512710402674512475217030582314002470092939528098304154863259001332872537034521861673752240956959213204063243700302814075700409803927002587606260807131808229997227570938028855149078244560094560076370894637473732425691755196916072953753580630897475580579207321075053082114403953930386815984941315222869075226122910745720292750497007923542468210448627756932389089560903706853160416985589896476191326895884178478663844627143672961512514725481582920499924670813520127805003200048894307966440908044761606045811943669153871352691465068188372096878350279618574606997555738261342310191301536168387602742502385157516854850501349084939330898691541193016586640867398801003121587376955874395044995458853132917289410455384527412881219718895556159783884605935411376424353837836821067651920752270994928616111113589591172234131577143294993979622657200708753535721131594007374632547520401350526359928206471665746644163755062368352041107459521203944376067351790762573971355675239391557632786532109944490899243165470142769709976819664112159265880377708740105344127472065056285025253368649746505016302076335441309465357966732916416298531011139936230291867101567992797833517355872154570484452804278958635280650130750347540836417941926635524605217466967681938510989921718121249620451973296824603602177591075947153768729842576664614784898617475807588904886932177548076639704347983819296818801490601808777814542085518696434881419139543889617152790429375281436614455098862662875426363252588745562769337266056357083326992908386171473947052807386790281458161398159859698277462598986690956327470776473083691374309605844847198049653556674420227431666254132055620030749035936924149861121098695988302663414496939928399831694494996234150722990051112656914110941068234419073544004968472609701832720921472738606374019146993375052620371684982138488572206464952915838416299794002754250003874453369203298777858001366878733909765211005034219745719000614313638632648556579875056427086983983780942516622258366494708429164891992754820761306591274131078168954345212725567742705369661350181500773411155595690156991587019068284594702280301625389602767955245659981836008313079466912081806064432699611279316872693556416574855039431029354663181579715111810451296503405560749834382274563108791525808294688208402371865963387835139044785458611543121346866684050677924709149514235728728836175383176443203366524495669067296479101966665075177912264957929285104008623329657619729019970023503428352215427345982462899816916772720985720186524400619954759037981509947869820545754926760459127768719940376995277648672739912835731908692805338794347900379150107332885576985055966819603241697311826287923772108207369147036614980071914932238574758188520960186327832974392915313357783145606823752108911049487646053412724886845573869360656941388916306790554385587322513425723159808231892089319923733380144851099795267760773943112131478604700519370813922625430309409443540752899844545473627227393413888488480437136946765809758057523770078561619017486952893013681948892576394640834617011889577204344636956611482864926432011893910637498220346574547660546802439593250207304338976513844133859478003822866058013300524832065436719163311251821870831171805701548247177556101013551990861851682485822268719226970751738028990848985506391907546560203707150339577928908260709389793681638950345657435426854297061975786345566416813218605705554698483949578857405891118343204530484304169132456413696729986677995822172383456151207691994347386435511309928537053267682647236739607648944957599732265486254801776551870496762604603802482932486319509519127336993729078965988185895953793155085843073615210481293965437566676040734801460134797135617454673940322165690903591128148218688733608213397617763134834413266879159975524384373782302868183948165463871184916419349102741720031152483165785584285435789033442664333130733877793848115557331193832509870802363112218739511420635280989272722092504103195522775342731750306103966719671278711871432734395228265467178707282550714243572293041896675465656853258835764476112858516113229520608657266435638681402020087802433759986631140392737801011483296202345726097331221275712843371020994519834618638179563141913882180804575411657275519069175147173600589863648808869196263805701526465397259922423366152664091777864734750513833744730686101523858393705522554516053482340135065391809336491002109353196300623456604743848939743359512321441709107670323390474545408898500097915818448016683551727068585656360207179542056281352332061891876858738407465630101482764207293202857657848504807212443866450656305348224554006681572448659971047931488145936602301275648716512203604422657735898509146704321049341161497516786815634326448313555060733848795201168425570489354926004124119193227268289145152677924387189341987833672115614675598107840033470659461576469688456582444274505028070497016833132095353714695557484944406856566555207489400849830689551652818615483115733093502138758813703510077920304565545226925501870393420804321261994150095654867524454831981046674833010311131286205991486370458409780249170362962745176230842965044526830702867905352518220746682850593679728545169527253671499601404075481587165967418014448567598727961295391094053052470892529892503818548461848662034232954999176699883806385386251979811418766923558836670544327804289096682054715782344748717643282692085798077344278304688610800418465426324554562042874685746247961931113287825858024209823915652385277851260707720980809609442479305767705333229383134719250898301407613722150327804720935183631488617549131265909865835316997817476133622097046997737801448009895242014999828851787568641620436258271802070658760618500804907367528306176807597317108709976457822225398611033252057897678212945792218140924561348915872142169785111162221462959148052710176343265005821835569324480452078359052469135354451835519215804508275194378539589818556868930703354929347585100145601849357594032748412114135819681351740020993324175179780949362438688779436621833803435017883659736404540558800603192522533154255880786788184862708171195519878279583783482664493745878092944841192052487381339643287822401334368032238126179554036793178677844488356417008401891699181177997699458745882659404945359932497281850071232025183445841123851312620639042038711302778289080669227074526189357819112725258700511134348693570650019436455714230476681215355479233183408767750584386593458181185355765152309400327460235264227746821233549988473655673472630281979955560252470688807369861492776046849417255193090390312871415757350386256718206998091113057474278482682773655186118946175620272403737495691033094465423723550798878795586555393825133281826745206269399025527385945883741607563578333341102970576809530722245127588532677905037383588364180216527695073040495607672458572776079109717311244559628256926620940364400018539239359697395429880187771541477281061282628683977038598646235729717047165714324223781765219885138052025160158102005720410821120302155971377823543785143933961880130247598368460608231563142770977085012757119755507966706964012463263692748414089807959642666683393844108560449477536803840766616676439768539654710520050648468229743201046067907286506672914360857856496779656269490694391748080738581166121275209568995873941761204121732599961180604439735399849001022865077087084616222220547825463163188183720604768864828219539395835655482298747508483226088736480065627302786108825027286326052911870222068363108903514394017976958515728969871141618752911846198495108758439458311483242595902815282244922703367353307923210209404350683223636836740771912990361549285756461808604502798728689846829545436528927583799855971950880653018194888206779275348459190078417032851985260118724558671268521547604479592941181350288798154917587018696334225559329391091996780699049999600945889844840938488735009255881830115417852727272083844329303775937384871058046015750922762469523581663354404231328141456125060062545631256417806733351117601340296022017123599228627669125528697906850758462014388519121831573715974942410845062316561344261219737841327915623410640705058029244941039526061716814700523161986191170442403839902074628228137279697559758884688622869765713896323069075150448699827161328379700199152145608665075549452312335130001413199060892256232076561609278319666279143831202500589115130234841931509665390227331947067968024218778440493227369353304530948535580720372070187389899213380065227514099228385928820714239133502647802836090266348327215450531960969658820540499701848058475719553450510211875837494262682616882045124578022880267830066201241672203703760740197163941105731028576069753571178871626033545920214039575444804319836557491648191276082493087203075145315305287488912915343658564488393003723495958572467314721339871773777938464042042980336921452991946883079912639947979221757603665329744453798782057392600893067229209191305801552711696783394290910063558334027083946137450266373486823209640025194114103072347508046473417566353964434104851753257742157712141116851930522572460203165271838588615493323981158695025885571373945913697357379352659822749850016099999087643939633259718112706138381631609738779919131544414703273229185921304733492818599184782658108921739303076655302434958905304569222031716806214678479896518238406560587741486872065295920674815447074106479987645833225569620678678830608760829276428519036679040409615854147532781917135589936141283303808935464906460478819730076323807256434227341000515780747242303072445472083579075936919311474404421118792935581080118481187814045934980676778351632043844706079469543367100598147937255301910237200047634493572301355603946688131618023659732461346723813764479420055553200273783235861321701858530705113023305292746531475486829591566727818324933513499425857638530011290291344666596750489241754622136304466971536539748492946198426553387230113785357486725371877059030254830122171603262377040840456369956108000266721301913513137117007373627829422935567360782207141088635988895850049563483817856574386826533522681594589154772348368600645866142771549333450993940161171009604924467175396037045207819971648445230266332602494122542615817938879642263340568028279467054912767269779667282546367842191114303222259856695039460970965734204656406006819403596270608382121498669294499538312468383670736383005315931926286573334973809948897570413702571718725741568231506127789227560308541123674268089375173154039059868306026156749950951962043667120741738072223220851937543470490938933792131830188923880172945039875473884567157450701370326602599732186195598369585490139734483430870809648899922042768711961488300737149893452525138594348818874450947582046430617890045892056452322084496887278487299226398512424624688413879734260412810547212288598061962102627266403976569188949389264526789687017420840318410313534666778089193052803659502376488934822969995556256359573376743732487209740201880321075370837312951572563387577957148568662374293900084063578258829609705962586572148874803716817136696229108843668780538272271779655124781912445294961485445507005467135739830422666959880719391973387407382456835467111062936225665329755366455696188717869866878630246441138305210335053340032116485120695156135570032608432213259650958250011840016095905386634563188417290187497285133033230739750938544165993275505512043475535856123989211502824206526148259308202463344204891219985439556470093104688583300146471479068767651697662363853018602039792653681141686851577094462063948699668108056784506571307937313691476180271785378197906023845337015279155092798991552099611112739703036326918741918038116330149759832380866010828140384758413476548797924089188331582959735537068690963145994397946784164603842978318176441245313681827651259180441538173011629264293823193647432028644370621313399156639361246439287536335707668179159968153329695853526993239147063578498831876074429685176124457255638628317930111191932080572641220041379027795199470500438504145895352941193476467373352329503386428778841291993034512850566824938793102001253264231214385204723960487409675622830974123288015787791179644850390761016057340349965500969084166364583638720446195304011683967558161418170337456825755043565494341086023496801243042839320748896777163164089824536978349681414542255367379475299925669645159522047675558477582387255719908403090057969966260686623087826509467355908761181944228358237138972118094819813755849330588474132057429732541938793101015932639762530732067798654587885443825937509809188446196894811205662041002407155650442418447294574550410907802146032010517931650643292334066347480731187124919832457898568299130801762175924678410237465280012523121776374488430499577498960457224447679705074070374091885391868714921967337294439648499336868285342647319752641240565215260801785347824308700074306536254546056280322519905814645201727290280873900114851701688990823936377004505516458659545477279852866187023464023235931828221770464372895206264402818306707613069695605917193914613719016160014974722726462404591906656772612616914808222864394097521200031734070221874627882255078114008280537055075351736856897921150671426050616470321241478731670863197601613529714705507300839459732933503583131971457383324718551706164409497653866117878629372556139833019069607639671800101987504609987076185855028191411354537598417949568281233668323977594520748378630743727717003996832432358191360798605867759804327488350224027956669271931490162868328974155418025301661235820118225688770878270801778487252024892318877034372017352551072843436042758010762637618914949980733660840797018548786948608935381563022848160279004226675776501368020555391010497828700963480863490200667108202759436817427244960618175592735678400566387040083470550905623998715158530951715728600235045078368032888663066308090593103676334391553672445701292703862141541540475731905270275407979664745468569629860017437252156385132749625259164096163440206166454845386394929355474369177702088360230211059604101439564988036895335036688356276112109542341144214967132435472440740719047161823087237516085699405547307534231632802244939436634710791544403590192437998521700805842860726987703961600750109461770378032176645075227594503319504738696185259731701634556321607135323012825646105485794477988947748000378240292687591148720895785981446907314632026243510016287502382065819513516815916921289307527274733492977477661919816927963974261481180440653675886996549574308698805019607868166379388153407642660810000194291366464559732318993270365234987792120020637364118398291794857129842685334471623340125784263189419658045666722456643823112459530958280042633298318484557131857987472638492793051185345946788444262388788749310654298879238477963241756856420585392003963854456464332364389886660676650801651558047098203752073697177421573017800279689639308664311592230163254841512480569084036190185055816164084063330710422179468763908676445373277025864924412532203965953406262397400594896687056445460105065278835115901630007704891179417515206177842410898819801571825680978951338172246614268715323764490952348299089840796816066863759243559633283624480701947246416354561833048519105837155462671069931542338400412751393076745499614282147139596305682677271203124052645433095966638652761880012573558581207421543820514796169876140599923306251719974302686553774022000802677360390765563254345632201801255864758272900388974518444101387256327708542492271302597325866515766671351358723828406091236418730158248984560606959445036131721072441021254102009872570968682551391318913727513675467291264462619304784622402595559333058017649842758559133091687928236403736717758157425346492177714266293903051783026408329221112923494683208877335322927837363966825769014310322823087535315316660393085111074833893710615862977679277229066487164298128635983513364248519432716023036051862816895467462035647904352766154982138776230757560691254398369273675831786177177236271011023364764741134117854857602731698525205451785509272777681664217875591967309486414756250326313369719185786701508231398455776031440009668359146483563263308482047612626323694810790116168752710167825596690716642795058007838233457704019317630030727596814050009760545263855248740211390173385935939056349407243140990699899689184888293472060312777458852688024370030905559286136318336525662144537925660272706143564317235597074825185355691633464592843057532814981223278332790263541780899315626476737330014665111412603735806462985643631586857770806123096722391125311260089014250907515363933402236178121864249123760084631902652239433709800555344438782593814323831726688843531975425766271624454751016501156738454314901859268919388890751222676861475492891221708365230954648250494014522505841254498203574340463650918526865934842167841328524387078176652673598315400277584496609215454337742260021669754942183557470096433502191900163066059353169350531340640924441833724456408274126059335993873489047477296464132665954872385334980263775550468567348998527099331851433538579936708682093148220496358897563172557867032282631769290648942422504422377985727140379764091533684271883038038484799022650213366287389829581310404151900089652186898074810986341021659922893716220492614490163588207573023288045420002316745201925472616377185705736654511004341604656517431549655043428134945894667027202137134889026159381797481308673429364354592955481681046917124364044142695516254144743482992167820115533138021480126254640061345370225683407452608601589165204025581204021208522509366260171370370629810139892977919853237011262867910792397358846760430324340130474165756831677301808925416890012077198793882502737069084596842779118520328450833819330206755537974392616824744041926433121525749996252248709105678460333390985642196863334094664418787476481845975429501979738765488362577157056055044881581007302839071745100137511119924461439759045738188041196690287723548339423499740563252880520107193736903318487130888805294259007326453022548780559805775741068639526132450670726441129059496877077163909789375349022085821415332996243137981762321466915710579373316523592054947548606710345849410562105311722304009741641169865184962046390587932307697123307483839013049164170320189222316680721261065972461149968628093673562505284984752433033850355822566259064493234927378157069385398065101893790815911217264295532974865758526502378371649413585330846921625987287312976219096771451445506932455930392967111725693262085409051253562185700310642591641981864391868328210031574311742214101532676723194358238381358827658388970333320055040137605563077368407916956065864850247174746920513138583821464778386591430865330552303871718351924373866116449557903912141005445112771358727390435997507752323810434634780173514952977056780222726997520631067393755173050506458119310730421664584104687794892066460489799632106430261963585251638796942736564826988834441347155612610210909972341988580384921285648980530687063903303752519034189802933682688507135256428889586595082192592102928424518688817647307766333101220219764884820083027574953680993755414098789304880895068980583482309068412672738571558636420956578675166719092652334399605933826599177816263338105808266900917605659877191941965415302547166711432930489884422656237912586699755454003746180190269173420612344729012882418345484414929241021142427330744985350748646632908502132577654792689747308290696302638376037975697374856999107586521829663251111091566686917959540703515013616967524269050309985244124122313998533405781038832394610325769757954753617196868520165924091572686776956266555398650730212572898985910573317612650647841300219202448084436159307763047946197148431963436467839803970919256791181348396085540707657006550480682388866007660905292385495462977884836376364269819740525571994504242587176438293400639393857943176977227312257383227271893930721536416077028457210315329817838163739593986977690404958004701437356095126480720603484312954051100564046984887850224091996091543434698903994898662985351819010658253281475207452086298935680145350817881524497701936090106463996686082936619855149424818769060174378579861768846175145368984906301925827813087142106431846139711474919925678845632059969559689776122792320868792788074708262568454683590993386091177659261205781208349068575466661869398568689772605051513132882048779732523418047001837170987015735590957299253596962071049738801438925443118344981852506238132896969386964090232724897623027646812171090303247081935528215554095927518892509539809663040119227449276260237925284386839684632444587889967233264909393102887004258499209005949127324565362578582453760203553587512872219592320390232830854602983092077963125711599717727612155340497607656586256773847569305745143394016322784427554104343342057318549999135613105154880185436444036619454317655732864265927842110574510832310688171833188046144249598081201254981523226897291431711040448438557021334304072127404410335577474343512948356303142378747697675365358869653993068407821371910359929663188287777427615638244845244659570499539719271902576917929196145974333607900727155184767356848989405291500090309602996590236327959064220889304515567057002095501495770525555099656286584627540627369935866501642031810109298393373400585924300686249024399485931183172719384061840465611484741267939917746221569382391048482009391366223195876867322264870439685199315445670712006604381577155639446646149742115266347304856097770795888571731111233739294170300116062194808835023054353196298446040099605036120752916434506326810570910558550747534170777443836084075610069113666045917395035163346501404770251471181660206503721918946908873836977506564423616270895950527024765890781025096055865556833979214781396452499955726335087353843714174175854551558200000661751043621310648443573348862759742106206031825906248677845543234437415985936838263652270011018303257282793813118937398822230912846165906450918583991893481008338052023426676880839206042263466481032202902122415144061578124673805616353626285586073582654425666470617116375657039490419331294973952102414306037468120237951183163712362221638437025951072624563983262054879264577738261768223979444428497983419816992014872015060491500156419908241915688919270196219088361516340541805520309696137814824069470857596952020004184518596361827884605572380546108596987945606907674011566601265405190372023041794821540533427925607275313000075347745353744389102183937188305660285244311574883886558578229958307734696991134996022010372126831223491984330530970033713579521989708175534414894726343806871655408862386038712920297333032914817769156488150040456559752564895743155797905531111450477048921372810859539471606339237287071769215600545303536319887754274323659886076652907490736084028914610685485508691265221758351750932814906765446638734300000489094863640544879943755529141775670111350075874161904379446789705085577588758322173313856836961870106477236745461879849801480332164158612464493045088215620621645718802419965413116132243292801722486814358641656691931745149197005532762367487203136124506834917644911910928328728673373127904333623543066033674907355171297546849114956778320901225993357351119612883298173197809300504532269624486328484114044214539613169671468905766896011513667788946523876674752553975668648246732094405055453883795517382771647402037188667282961840514860854139963456524090679139251292318727156752553788863858635037711350211650526726092983556126824314188810424111008073177022136667422623912553107234991548742382196495493505281291540201465126799394647192882303272144146070203232651336377575831015413790106737800247614831700059171320207208134878866740555603230084995164589065311616319589712962892719318479909071855439556095075109234956113292556540514677433311039661792303249039350387114900116926574850882319137150758074788473059128877461410744700866853652510256138614787487809852122028020707902283433389578879740205395281837576466802869835309556897812065161631030027352848180212544539658073883944423358250384470856584950365788960089821448764960250322796000172079424356680778025540269821455075776747634404714933385513381554307476956047099384039154472032827527564909428328595192978766135505183002515672496426169635927917686961125271285226147374301568697419890676013516845412671044266259026702602077141941224767182179011473360766586937195705737244987410418128574042542550047873403986557200755814634462173038261215301190542395209494872744001724319160171829532127520352273343893075411007135946572723847135629666905635401407897873257479094709870872804561092860947849312541149262809368475751297854783355056354088618807273942211575007904564035221373892991504360004272458937796007256549876816577410402994962388703324249269286408955518970815138482102942454652912659212018797316298819632574885012680108373060178000225813447237759044697922914788759409552046632703972107391251700178054090746294036159322709062458012460195215833699080045290636098703064402722256501599244405530105110736350609854117781110771344217946350810615193746707627605209037316290377852714648215676370240016572802836519003447582977367665885845756675471569750543230706016528469648675078156311100109098080976374769468329033036727464609390195908478078475471131443832835259938869546664908441609205866696694874489098816397715068045173216735897362784488322608419279922054446983165409813935442934048242761832632644642370914464299635492482293415093168596787817811976957368155301565863492217603570539557052204233820572475938406600029514945626352515603973659169924091617081397344298559976827551270331122134339688745011489922258043294863723393803786271867283560315787460855584855908480750509303775990115115305138638528591137326779033986299070458207297602225953973366079363108807626779465539947472512512067369528684062467967858304626046409714331954719828341670702388736931728433363638907807903455226883642533760341222292230121123100985746547472247293308613643806280268203139334215308813726017075639471631457101472635640252380360603606315166982931873529936984989404441653298621466031826625655090341599911964517233059011150010187733825524784406415643950085691170688328942875830891579606572582899347636828933686260087998100635379520956112698345421346924075428724530435217123249644240254033544428922501694883165196643491497802934242609743476320125222621513970593206769398434233592238286186400649183225292356389513925490474216521844902548967965627671852375009408159657128708341691352475128447502957170846468238407561179234736544074196668717609592164617807765949338716281441155249758722429284373696771340512985879146645646261054166561614203475998214981756882152950194305081690848540073247561156082893177028771086749567344627594743619402036647409567698146639752520994815654697124521712582724924015819081477504490119468613904462638144286417025487109980486536835530878190098415005129104863662636992444261447367686065588706255341783113724920926394779828414794251251563917072566076635542796170920896237999727420165580453913693883780306571894077526062818713257552110720102297116036462977927805772834726947277408850329838479339668961948928157675547521614338488689848995485821424389581422519791904339515368214799421673824236444507133346079163070889028718036136232604664384030185633923002491679363598699169605080704555375621864526817393169321770200277661865395616985556206488461798215932700910762316862735066402279628469959912555973879769309934742251747229669400243873515996814807915464225644228311159475174795740783225202499969081083817212565061142395113761549028875743773559089330004361285627128821944387138971364039767768737841069546610008702993340390428200568559894603672512261999608924064702436880008810988650632450730862787874769838536298054703852098219636640785560513567894576675664821423199682515385392733812264836792654161329360760550546110894835323968485877432694281090066142372632889217965602895791855044979950839428413163467957845931118431686270975617994716404962289211656566825942141666023011567420103271770175348759304238827055685913314528549942188784342034408266523225840733261120854701718838345231342780236484823137328740735260040331276444731672647092688217419494221057971865253362538844933115646216344623459296999005851820444494642819792094708831667064691972882371671623246029620448582785077446066087388063700486122090156048110526799576645369729929130978091479774428321853997275794021430378438353387374231624582064740186941241225897830640605320069366580127760205775983330984612275744162347277751174589773440142365617794662867427447198845057490042841160634250296345116375634727145396589822086794626835831808383871358089261751976078698975123168898324137420948640321752241219064724717401747675233867759729920927056826228272537931444871974203965495037188365805765003218644781757817395457293669652760937888603576048162342336853909428562752741865660833006404803032198673034413217046117032842835026548254728191238308120906634110249233670298485650483039547171983009234429264020989381320211555199546691273558593698546326753637994810413285167800080086003967860448774605653685882493024307689473599734415115493150379508599605901054629245474555260124481902008475937094541992307264404555345437184241888697701775864163071860393406789013346373783818861495547364148478790489390383991994600935992678279253041102919493990143179192825781082504464181452113262806209844862201516324638885653592874849488721293784783736578555054453754716484689882372261440819088962227579235083372244678186321188743885539836118209846609683187303294432645848045591055551900201490811694349755695126024747569075535303695174058580323750021208016254335488480065089327847816595247717438805442780543946193332467542402650224976459584163147102617542761604435017983578428236663293339338841740141710971671250351468906958852640208178101402594519583252474621987252746831288498347212588435867285288383205336496779518002054624248780283024653714435789508649157890989764301835991065414091825751747529511243003456046573253783067637907397663636692258988426595553139339926198931014188235949026641042171499152822693414152215125082194021621647676286886515811629084572911992976547454182115642402121297057343274563711218398248294915642882109503196806097573702015787661067863916878740690765581769547440276587476690601185339002973443584284893442263496370193586517176862988034024300836712348576040763593854945005407877831362288920490629581329190755814736564531261163865052883315484962309387978295875098903434249665211779019104157687809926495347691938741333243448388731997970437966643550796213370322639224663448532796815771671391834022194162697168488430817424185579178568817885539549743399961275675582253175533128573100674554358304497030761443252311988592177609345182798926259973357576577264093744357768553397879764516385797477916118641416710846213880122843904920032886869101593689677897754583242875576600179620468746880646417723235406734744349747447103563626982318865297955193907301748437041912497540825022757879597344180545992573863265932793350721800635841768146824609389084250142401469895645563489386745644845338242759562924280796215336932465539113480759196060483354452834193098840799078758259564603479287897423105548524290436759105256261976905045740877446014447665998586542911894596272208726275397515429264512024066653366426229791753284278016811611536993249968728983017287503217474362679110697429301833136834810739756763486218235861203407945937578553160196497063674937656905920877698755707879148813181592612120182785438261117695900958773420766937564782671476435191971959328609536099517694868114394375544215857535849353786077880888657669238171416987816479466389331541597399402603417273373094318127335461839815508337802408707188815119233275524173264284180935548634417768531677899105446219717703341614264906411749643366998121539114946314627603664667306597905291232290990683129516750793683797561166758520812274128202661854921209630262028475014659283863782171868286199568402574667899861643304375366108417557593967741044046981402475845547798600833446400788107447861469465762370692880193482600872199046562276651545273774466269149827905678889889141064290619198274159449744853945842353771562132792686162777896644466946081856727816408025231117391198451659384935118737000058972258059982720298256019904703756922246512250385278107108252844561451914700175112075856582070415504694758900496381229080803533640515488152592361261246513793992264469633128327319866848644499881979199273353678977121316633356008429031113676138018480483338915247388924336590017839469362955200201897605390093476962538228412831205976571498212106489634850922988819248472119636851981355608480905184542046181164431114776376806064300058029650056453428703761699152597307660701283672220355154001913266839712100043393729264628392213808432155864213303415519210908429569064111043029196823817786023100828679871477678788183706874234767250467905855619677724118393703040100079966984951189170072604258273653820178016787103457004531404928900594657781756536229508334525609859754517771751694273980940352088568203169007393463858392984243249287432509536946557437789935081460235266451448713899119042238107830976718189032179514870721699314737106883349737239632384365206260724289992835901298061886805293611024090694382129607792713281789859561219617693306711211888263857008734717672177292460310537328742840230726600217718942706087867286575956242499363166849262870223222738531105348893493806664876736960984684145554977992903215907699054150459844198197314701056714091499378415326532103417831609979526939536374751049375678157852164741969502634144311703840784076811602286247499497644354364507419643096486776583903219985956983492948997746162771617595247303501898731283161952168139879621676094276531952715459741179989151018202985074795745607414843628342051814926036917476184464715823184194027305012270672099613022612828871424748472692068118414448528436018516623616641760985182627319969297952602235725208079803882628781328602935505692172808292901094034843216753982637021179767277295458312692601947743150864438331280401729020034940979679888584323852605210512645686268415055687888725515289772444284995140419851008342947656897524309614092579432325105982154735530670688692408016392319916255989387472205892634907725084124353209549509096274073637235290663889899283933211990358744818441432809064428680898095784342912528262590144852830959591082998017923387252208165369746386319499412129861695572174968639963553986907506152285996663678470050928311532852502340760823241531335588693224084216422224080139126417494225167730717072384489136389096446728452684514161216250749769254295801478484873380974607714461096926294126655250416753384315428018433492648325892255985905859688416422167632240203141455217709656851051110868746371750697124075184815675981293071659505159289369269886595576876022274505818962328765550589327919358447353465421469104763578768159731507904505732989874392205888152376726323354352476788767190842864094845843821862673271482076738289108997128980798796197858036691708055512662312171842642544467124620265853593148124305848760324011730746090923287527169359752782594281040522982596244747399085441578770046833488955155992238469283196702252099967897617534503451940454761152249267565739586148673046826166757645142347460570597575492758698473057712645693308411604763763700164281565157044120848011284454089515565706297276469046796886106197014346763086492665265777061117503964110461509930513101850506163852548947198640147843166412291623525910749928676471836593647957768257909670951597148708023898732501914043392444155084145831192259934724149065780112779951428793438256836986818749263807153725899800039256763624415332115125402570975089268829929328266554570542814178564800848299120866008084389471531095977640443862139898584681893258503412402169372026446858216231215214135967914922475716368708469213321711896512740588674503129205639342699152453621879914792505609146003850259668452622224500942212891763834991655202082720174700022954871845513148501097163175279402229020417189353886544745713610441088144994068574302460174434932270406168317780845914416957063280712284200664550166690611447707364824939468261432431674692655576125710814499766099418651902496202053550355917987847260590417053559506984302962663992748024890567282941118433016719789291772476162043944530653793080592476386384370875973265034509869632634083882139722933183162900362522681406737804521526295687581864297200541968048926045204978892837836539874425826250170173440346587286424029886218771920737247736171397791177774248285361001748476030042558043936435832689410468002754743563907022607124785808711189899757738023781167117729802470258316725050064112053216615352286386236403196650469256766402793259832445333633938024011141876263027534252879034225952199427913679312591524081868307084445954456756347845499811469438572175709414656774428882146974683839376843696435775287552688488061786818256405972232167628404117652073546999848582676382975640370115433445515370270745217430604538081343360472841493952786717095125685147155397256940151963831097365791840225495563436906209024212662343482711500823522922490941699062787943234251563756230601246273489381864999203603540307538310838428143635497310150485048208434094181837769804669173105969291026940918108055937366145746191622400481200393369295905295197271360355155091974649863322884255336856003424851951629555678022238666460167597659079842966970430323398015802261957834748708491460259292487231072564528124964174925048422914391178881954286984320550592254387623475045117883305239612578696138710711538146558410803069593865459393856610223755371104410505534202837042314937446535708259138884413117448445965775872902458228449946923904949363028510540773577661860363420050575799549300657699240068451301547360454961026946374864184129178346639284548372533692593813367661407915232881375701315064284408654689195962112417705112704130347137926804481808116498232859820577672193188749431478590872350735821140082782809149267926885620813794630876490075114114638994883380821920482062554321573215441140830381546336917787586190634379201993930511056236194582438145433736180346912909816990940267055809940380521894980690349389423266020077321958143032836118720474302144604661582006428152308004063249042197931717894722162946943957012125187637703111672604983640054183743117754634263363062616526583602238909320351316805537095611656186277268953375956465214150117438909177041323178225327977929243010472583411908655487988250510387554655259550712824796921920271091965530098401884014761034288322062659315700395464591378631593803070986086802008426468559188270732218271471457473225975284358416304681219125243557749486938976200653077948432043876590504593395590023435620615746705384790771418238132798976599296627077163654601462084902005895982029227021734895732291180777270607572687461327969753094214386417667864664265913854050232488257228564786748721924277437973502122509262913675838112477527879755796511696125419101332228147182346220986267317789323446251825158462389621713141836561306465529804329688229703654645992806265505026224324514258033687164670291148107592257294839402654105090677549255715764642796120564921933410397629222515907807157766611061123404277893122929940770197999666479169143904582104508198312467473335032555560697178324742263017773067924039348586663297914575294882503567540627826392641074498926215014353450826819138560189685891095018191306823634018206870259132619637898764886068163915424526291765726844665757226828409451412570861848001245592293917685318027148740200039097850733739019150053529368314797204931304743881371548375283807565457075084581530420835319053632330325247807258045157050452427388405189075293009545226383655087640700505416397127466465077228841272285637340114331810980014954943442643326763469915111315205501380999734341519006641984973478151992817394510183114937775513986115577884435742810297454342068294980596496958161765039849920457684943912131506460297202937433598732032078318865391364509011011703026098684198473973748665969997918236911462723971550193773945421246418261220354517899973533345527538977679316228631812946289421269794558261840592719223248046034021144991754793200632000143109658791864034514511361924636456413464319089437046581883476965297622114868304653426888729898723267363095958775712179273723022861331221961701928599977682454086118987302721039402155536278061859609309683221504308788375041987610162895284605414522879844264628637805760569684160286101964312451646863436745827124488905811506299227395999033501611670832506069401046287302612031614998463175409361381657563226725260576693365952567867973786621446051181428418179601070175845460257715492724374813881213172205292623479960665259068730454674286304349909209368908181095732685537296113624812487070438552536339232826591145836675399830935108523258196426029069405333025820161716139833781954389669624690697312270188314493965883062134152953248874170835733276071686710138914078016625056287685835069645222336123105436732138107937127695295696728769720983640274364072971545020748418602310237749465873041399395800219793568232953068499166354050700528492065921455815397624635197492393004027279189534561134110513511900480413577487590839102052595375942138667596195573992110793402737522032229719872718632257306172872268364845061004158655989947792375722495205351247076726937950726378294561442107536855796657462220433881669666410724023081934607115874709237549513867650921067279362211613487851983703686300047882502842967233379635419787586971286229148391926249125214099102027319205960763410219443919248624463756654359551098161520855252774363317501015342874883282415332608761389050158725607429584825355257337894086534903635140199173498032355905009507784551591469915530143334755193743269738523839501607462157817280156115602219628874352862541124513219353857519630781352568652324972570305641589695161439045802211963815871806979222766381667209713954934528852295638395066439161398000811906999872861036215390749954108414324372759630080262574896268332954346849499308691906588101246064027870448720299625252087645603844655666565525730041472497676070928308864905442830460142065246721884875906164330569645053159261750802205027147459460160806560365550877896618500560825150306966151666982836288017744034396557630876305933486170406740741368822000069178247438635892049819454804153190767691127266928888677139218532382070827142850455630592366930894381870336134004650789351300594251366256516489226926889460910305647746085494523448951580188780379175358701054977362947241038680561028823516081485204107666654664895607148359104178767979805338498554239442095635752532486088492411561058750838718593097747605653377681457276131351167544332213704694690560492476271996664299097481368630298148997636801694932423899178489868723729777120802230576220575023121028723218574833946002164957376036469288548936085946241901977909401080196432387234157241419225975017646557040074652770370630091459393629966949458267831825373593044197232644979920770047878031409972644795058193421006135279550070080288303450870262717552008546407137865725894017751651727486601125503491444197043430492833480668524805247430951147158217060448101941686299419393430046211566630842256466804516214564560696112607353360956589121825516368972222252735361196347392121476614880101913776166847891169863709681708030601289390495643712998915068764044597246489445272001897907451475231629617534450191820488045586376196522101617397480345850549042516712586845757450904359243832770812469845035970642417418210115063943563803470378464368711424585126816727605398291134142476920974632475467428714707810439337238571596655854284926981445667290538039517619964458770180666389010991686655376559240068263727207556481450165454633139211311201109725355481853785889705894381258390324842648516406208751015889725960669752230634416535382965310410837942373232100770958247177318846806042998202787731695616433196803554477203437320341548724666321865235311937877708112337461464700051389645891391361964067086856631837260405056226457503397699505491527723664191656198225826108311851157662957946462285395104285257293553876937669750252425281401064120194296853070001059857800986528143533670777633831352220266169550002010509071437519953175722855830267032859577250279785274579098881175720649637503813338156045963354901239287639563421646787752025088457991866656426830622045995355825213597359392020646420154089864827824775448018310431933307507257557370557747048616832145081426030561919199043074345562701910007743100997734241750255360764014025531628944259684605086509883578812877793406434396659791969499521803525442311596358124462050807111946439713941539448058978880364146059365463346313554713862030535611168289106830008825947624898347623728649777633397527154161473234243335907819741464646926614140373470714507435237994903734357929985780960897637373555381581892317488845965689230019080187759881737134069934848960741603891165491091036017343766932252002137295335816653339957094694898893468150680071360337610152120519722458254207014146684946619833032740203367861723264367267803231039990027901902925242607958016964276512527287372115510990248103008155540440314509884935459729678175427288588561630532131868432348522071674380078330541542860755485519242442443082018285345093545174325293162506582613768222395190874910457380812698868900740988818108409136371000339636167551639368596597985006393773933188492058061395620143511372962188995404878514413383358396215087140345726872197040456725457822057497669403693532798576263215867163264338571519050881022098359351051677639369619172677791735007386424910576811150303739867902269638634670525864449179356166935960252701726188700780698671989788663175268691314543717147406423531441118887097669170983013840582505160614686484721253635138478717751651347149931487741228899772339909423865843129267449505928159529893443003451554775527065102350052204312700028452330780527034945269477041952287454595258742517654985352990015886978142854779432508233455721601936863366764339992230688044831106045757377402189998013427605909286419367254390377280405811644352486836680832536957786413249303137786272913544163075616126999529914699000073382968137501698209308192749067233647250939578377072245485148566267480444314689477663970744122903688212208594656474918374057348030074885296276256151201179924674949687361684207232373140601599545032754153408044324343926774723570178595543893137183192751794410988043173331319949706716815958986530335478384581872643255006552329350320599176848318565901178826752182449334274355311002125691271912134357072729700564414661632717040385854629303954703773447700747826496830488139846235528944203603309178429632447377429810434998226778337910216004480814561854195669613492787208315317463452892131153035892157539722544967437066369702605627328488097791566969582811270745651034585264243762841131370398983534351508585954051382746519588679104049182752367367643145914667791084895384835307929555655832125385248989559337744908809632725611424989496328893052600049347631007030718427662922732230402254848198354491227882236847778597569939781798432381320088014224935903695368347569389319639988252843503761163484302245340615177034094293812807010664943844669727511956899510902712306321180966157818757502254199146310285788158276004230000797395797615602959067781780181087286828191190861186475164225789761764588063352990978930140820437911281919120205256319914193162698689888616025157331958183126957767073789487395804923422383278489927011846288413071637990757225868223790873172621980725679222893361341847845692866304354446719137880636353922492016811018370242094530977130572664479710945659415635861035669348705752083198796639808203164774678392053307316362798209504660543342293218069441213633834958455374189801647278764035968161132033116357605413142210524377112565868202892021512582782200214900489263286720824088960435803493635059742284833312121950181607081588950405168217064796546595374028083151477729706289690053237390400036272866723506219816260004553826638348555532710507436129651482648748499215805101561833219133823182940773511666314508292842078908331470337511152102799674697049362575571303683445512680871387319243734277106492297193674444081020802796218577146762578944129615928873189701294153712977420051472661154067640296760134816584351470618184502321743807042987018745353480129375314433706192085409727487020010916028983406915298434121120143380615286896468436047609599052426494293348350142860220437381251809928274318952454829428977466338100961514818897505973337344454970333704019314285236154091098606650076651853230176489204186732446323045442407715912192762672530537873237901098380928415826508430584978522609730611624708943522751465165497979936266868489667169380668005436084828381543672251381144079993489527309465865174493264333074041378238666451019858244313852971931972705729567981429521380175651022861914806696814413935881337952276858410410373022819661267087406668063668452759755941573928010865904998987418106042092800903554882075595429720534832738681076970695791071193563845556389977257655265292267637677591811882044181783021933364196617913565352549690285859668028286457721703681845918768792209235514500068712082710885207494079593214561309833552705950651992835668004675019265888051476778709022981920650257799492016254170665017811536604418639634739529132494477921232340122827998526810438534938601351557859240335214214641861861240444460498411069832133858456980394924648494817494079659422111232810345612429801167725113791536596963235430888774029088619275205265049793007810547948561893522269006585941382095139435608134512868594666853533756243918824933526831110608316045911322515368360099062813290119403442465662453271212259379010232995040586670008556088642912579030378063985075926703759809811939992193852924903724088112895270097336954582973483011318692454585223579094500120993892975016347559567988008024987414970886076576081205696270374121719075826518609669457170549482736110469856738955222466988661225594162901018707426181559828054120610710757494749189835280694861427890143921318123151303288579310983129632398516001819821613986509671097074158036129782086840038343773928246796929919205047499445508590999560167668430939154939578875595092709303526729195044953650386845716569261935386731289911013766623984585823075918784925878239703495657134991243218787296436508761233956184115192716163397808677105010123320682260592310424277176113242961198336995988663683170257491281555314650809931929134939731801390024006007421957643804564063996877785544129949154840169053319117589282981152217814314791880631134986665410411724411453828902507362810033426318936581209355797980096955346290897538879062675507352440626949203829162206260917936249782151085812049820485980231635072584498037201822499006163275307274850358177351214059098290672980410251333802364319397214646673528690476343013985464933587237524422629281267534683592988353725300746296065632877976407800302984922431804489300430525415334366561347657068634586599907171039176010112984888168389231855479227550916026800797113234752018395753409543756239191916920121154460071211188317131701327679584480699228388030880443652899862437746418238195824091903968326729993431832772722235612821295527191949643796332119207491356455013575471098442064404303352353607312536398489291638798552157792689510139680262226686509377890122059796433214224523795116174045468872517914815257875815497543182538632735057572391604747095192454773282164418872472361042012939116031339644124541207718134921232797226463138513505281376268991118315592407769392718118958338161404743038916753631070254342250033754903548362285949806095750421561688172232510002341012331811975667796671550482799692177823048984757809773643355327042100600694643967094461851494003293851447792620668190221596298361681923070236001410694160955555570288828150117682419653129558597056706396867606795768648761966269317248002018591364439807438934465871805575249391847519970546523415888010550155295461809558896347696372908387699455409472949949592108032812494773448285643452550322758695408094587564495729494314906251231193496708218992022802860505057056819989304634816413131802631175346610767795661685561165344238866267207927321734944993394129130686216006265220899078636548147172692228497259018184128340680822670115835060451329525754319812863696068791591427016305420652977396529285033684766788788829254295939514092952575327516520327860792077802014560383654730762023494475867805291220895725107586920370302217805468492673390844663287163703142598876878920391004679688349799200952438000484470405048936500252983321145042948806551862456869961866897779923434816004291801849838008635475473725057808415672189922204678988388029661735971535950678170941438112802716444765788476949930310118851492365570044913977872020096750217940165403680867219855460271753291471222922684116716628336028395571326991864375489625793143340131128326482320915911614621644899907364872585018254743970144912221069766393943493042601147369463785768462979271636934092581562798966189359687401814803128094329658447499262335035519132229162208829237199885444909230927126760645691714936808854852120610342412524352108583465627385311865218335750315388816174962230670014519330847661060884075248239146530261253176622514704913948751380865737566132378724375557598310036145862354847809341097754950832030020088429940764207128686536624354010393895393927988095904048784658947986815323897346546558279986875003865080041951617664190755431408469807985635269379208652874857893653645995760769469132929758534598531260499810330390591581993454690320449576003729642502959196427953944817324698195879350519412768842728886510064823654752627179123273419988320394265824309265618580028847651195358246259746408618054427769775947758470119685123153588586683714482873954075655915061262227383073008956223351008808017989630890108395034823088502387046172980704012390011509635383187150183520141119005767652871360669272220621352018231651436622348964464964685809957149582992698486375016238085085212127529759374124375710416725150793251486855446997570089667577211852864116558374065733016659643907480298027660478850018051377233713484767918625501874070913478303873522476964232858548828641478490236730096610991395371028633054134617545451000394523745164494600397582336514651905662365389297580373436404254392642300079374148712679713712256330584653397310014838647656229878215200055989797755418880348366936125663084104881243519365802561576098327300082307023099094281585693050362126302756376412099858839611713248114355600388773629150430939022136571399805844098888377756679021386054242348227572426549630107965401329764087038157494718257802940572306561507601736609834882413651707146584986202391088069746620130668474232790874931215114536663206894203431316932016925286807790668999340540493389007888797267903173718808065954261520647812738824652045479644768635081860045105287912252974830706590043752003592983046906235356584503636908297441122049211168905030223816925721312553408752587939459751391615858954181707768599400172073340124969054872223575526957683055544150298562462944993937428378040036647458217464285252312575704657863089187863370121067595524592740522874207387724685738886016180339249845272383702261111376838621225758468768748987466676271660965155184902189180001364318898671420600537965456323409105616520043560570331066832283104519827757241414481548984627216142159924758491101422559226502173430960871531652885003811159106602726180856158648953493425159869984933323409415627797134369053392937810918399844069238248719996461822100282727985838198423879040553626078043449748276333692767405331005837155767699302473652055341695333623353247700678318598001403810515745338571090367465632011565884351137414069411967857581726574608706845032041613069705665139967997115175087757219418884866902266564346149298358134077828388581138609163533001690684542651044090121274792772358970402422659844541942069774597135844728483808347427758017349671247851476472463480334089658683708974178903406205830097100728438634707898651213655186404000391540800183258416306817741382283577195416372828786879710389234693775655615311391124382319025305587285807123402462687725782144917847568337047613149772932020371124959647659023385100804783189775673497982403972344393373026678945560482765386004027662387243847279859048325102145175447115949493380890911630840095205528241904226341300717857885858805656308087773103974749566722284234241298574747031588414322052422808918456512403020533426033915534305002757264996064066615565198658193781670657703978702363866759530801605814557714653728616862545603063701390456285750827365515755735856710750636319586160660099610389117779142720286669681205996359133095517351248853609141463073154838995944874519185849716147595074576664318204954835535265985262992431207486978614318407120982974260097098803986013852137112677662192506645546635902132952315440426934978030577797561591665277118494326218461187268537867720296263524907407431185052075176729335697848202889742684103810671702027153702667453909900665029930556288572051135012231937021208355700155920442090041814960405490967036441775477360764118899028147097232528640145687649319193698353737210818418072067887703916802686685108014763923474417515537764784486373563457481423228874874506306592967896290731771144791766204587617885834862596621883762696935842089877574716554600663714714972783395064625400407538418879649866510769908739663305971279858774566079823638638034583129532483673614227529310034726334417055991397176936154905659388831766217439952937393521991843898633315458333434273341037668967077045726589929175846376956983821210923209165953344922372346151257186265688638352250930761602883318646327506599015169993731999119187368952817752822593923582682648578161875862778855449239703180800907508876464661339877151906516948293306886123632032888680397030228005823541432350324164330905365212899349424372201384257223048413202732386268777188696072602446882277328605543824127916201483947703671995406720779986732240373295491818648210846069693729927198889333773869790333438111400865906276958510417718535228219850129555144209548327254400194601224110541846915180012303426187173468534564211392195160357038079977886039303044185150664448622001733104847521344676696237702985660547640293099787300325871684407316953636175013526459157974522640316682413237234405934562410598903437113670980362043132637315001431258555434790949528427176319355536301997888761140060381911046123080956884059735175101545617353876158357092994978091059059468989500878411387240503538013538072977128454311442618078064235304203717473449646910436837117342415468223675242129747312856861315048043660189572788867244161787311093915315775241210977082240359625136814792724087461671144896972709446750803615532278274939197598236457032799249633117442886359968729002860663497633546883437023045189305759882031230010045270405436856924790796267500264005365147657838142455047426492483633462680920946885323332621248146709569041877125643475246426141139537002498694323468820417573021528317418406624273587270630116756260504621613634147141400450496733012826241165917634911571466852226850527126771380348955381188075961143354334236483055458928139618552150802345795215892522213951426785275853801294065749581931860369835426558601509929102111669352934582873639677674578922175931274290170794948270419064923163321361923167843991505070750618989856947858973522540997074083899819518614161947188894511847098229171889571462254406315111742901287151873193865740764449564029461692245414559957869204905310265400053561691413336276595959870833101359262668800942105583639326987825760318923578182784284036690421627111805795610603431740566405826554859588673671401247946306391927541896427756800754363079536586745274915260555954258416292838077753512638950763717532981532628025047635760173781619069402635153219279617835446877132739774064283087798506570520659494952433199583845313596853905757489714620148846398307041441646550063059076399935392350615166426383665567201103773149574647538192572586955617252912764059372686387264124804044091830352299672877345290718878766864492139749727809998058413274777842174954240792417000518080157244393614038387010229040789889051744883830251446642886516814994189107604317806398474837865012128977026312794415012563656651885643529249224625946988643381109067762714840996340421894639177998854232767501948433802028669770485459341113544982664308231693346483671321306233006890805543940512548897321802633119408224181191793024869464023810427785015879899902258252173907614307699874430263109288889119611422883878189554417940870231878455899212011776045668126078186831385746443393717729704285607441563740202526609698867499169959509375365717226929117880544208303778816547178539995342027192267490005994312251008367848298286574461082662691133359706241131965054484051367582943670194897334360668358719227982021376482940694542467943037159459350875854592859974291902650088950861228685380641380080850334989465609799723422115036224450669134869506907565615071389867912868559524333241642264841997352296622296534699123684598369949951600136808663134572118349594544428393624980553323195675637260184929836380736104982251062760765439625969752197233461007057274263372442491382256713517732284127302670781814651479440650057331902073846277997975249167202737314584516649689564139394535503272504505940180951126608357578315564379966254088426542458494888137017177008410588602875207101386698229757122043782068377441687730829500714299033874758196017793016402982067430703894201740128738677705133122641999563599789099575542109334787423926409506397124428281805600489630310340677542925403256423230339072289877080255929221820028840972804686076262383396008876633495562546526526435849382431702748155620486230079037582405059285405243292637531533992851652501552654425825564450173939829618970588307354817346605781629928355677909571162959893274865024038688492837703164899710518195785525113910862195981732002332442892835613187741186309692820634083776770676945798805585616436584974806773240412054712600223323492529509769996197980372642646915510724343417669445816909134210557314295624652453851623480284187958175988546672532527170647301793424147762397405981725298143991859781251282999783006347279861727292022362460489828384286074485423109349964533755755595806120481123773303275481608089842546205328585620870777644272460559531678089169969304852677297409044761895716033277701527526650100720576178029936184732895294034069328596127081842125614971192541914482796356715559171393363682294017935171699092175082090212274602209445046083703040141643960265623198013672880324849476485788204460887888050001039701556986773179324999412308216932647833711041819178471234043391598791158264766081050942383323844819323288570171403949641046029027120000019464061312245817770305512482085931608185354535641082071844754813201157000576908977356592837643072715780641706617054168803047143947615225853781511181414787021355512563926307621216316513574513784320615075166220328681792219487744442198664396056567874707957033705583044495842639677611882142904452924144159215354989371531172116103333041067303604617057522420810050534926784121789052504330792162022273988105568540659464319687105359255745395256197934404894096452741783184880924938062291845140575674182462439219228416979372186206433488205123399037580271415256529199781917694863155590762022463269849963139663217083143146162860693867579847544885882423312510804605142586201579132718582755964444999805371638444145350806317718418223205925218687740231022585140911947954039189797208597653711367441390087276346871627180118810927960426836647034218442920606167426285606337654900812840331616954722118325834044604243602711273322429473200919840386622994421161501436526016826461752139620942849413461602566882400522751734426338007901221522722707234660871870888084784469041597522949993070486098757018807985659674813472146261506254315838184329633470126390519105738584708950892441254367093278859168839357489144816190672006628112998387971095399010075655850005064297120975576572440948181064627272121451880357513727890887789903517917407990588197986201117826359160384682017522104578026704958741541188551031811433009189099418883122793526453534181060635942292103931757416268582752634610317994759648075984048683226011330943413103562636090402368327603069214200281019453527986684463088288072826284416581376495427757168855255055422583856585896510570868881542776586814925862116078300537433469939536224859340445130241505230759547115605447171650455120441208180184172531376754994036969062010746242231868274320714008600451866105210463965233916713869704775048848668107243766791770923239281645767121432851787425020635896835652069500488282286753606782165367612185703759754933186683453422264097056658748699597053307203760579592499180118047654049481687004814941431563404142856815873596871535370412346822233350300080743036401872620728259593930098888611367503350130620767557066461605686275924819939311944653209821647189875104438011089059250417576738740420316966728362525251044362499095754655070189648613677664039143315088105361203747677742420861733984567237416108540841406407329909104521053848017229929265379114247263790391609470365324929880889518748178638940120488067007546513955305559801500931688594676271009450857990719744703759333716631749594349691242691844240493740670470667027785769541533525722971153190387326672194382881285604297726712491668440500326331628175762605461246846905705789986889591446682620761561816217062148427286764753345656862757923862038067941096385661897453857307896189433139734907132100960288372606431919512339402509037628330313699980801032684314691915674535830605639662315566913517749803624417859429696676633014288328545477957018440807405629319452672149199020627702118290231495290699472215353529325158344226283810635401307491334047691861051343759294940167868247407110358207905451978603786244836508685753625443006560223547920547130254902339164247389734072602822902701563079692938346690149749167035691312059378889940891388594173403955103701583502363015835943563483549576246921130434861304183357695895602549893347166845312868314222457809296765183609148201331919541747023013695984991280600463676791531160974528420495913871160072831513229247847364032984999856856911486721937660444470215622456356565424435959593064930522071820500799072379712988767729118489870332829258421347451379389192299527384977030094862126216649362062085830300340454391251806762200298334746361166121208379189828083517759454535992123303033269954910487182018529664589093455461710827687647130109449030553265471195282898535603970195560638715241584863648062094020121799251594885212277530016776230390275996817452878316780678043633590892290563400055948044215856723655663026348741831676342514416360512055662612236628036261080903421588572493429610954938522984453421068044627928222390962864886901592572283865527950395022082726804993395264783007281809450565721587561197245201366481806509547234581817689728862792837260608719126061314251144396380809509950037805039558571564635032657911203691328952692710270027097927016215053146372877854747952153180459330335417995355395967529338371165027667266029907240576496095429820042684381578242501505422902946848882861673303164574352405540347165236102437351512654741481089021356015638548895140100265644277773166881066004837494107597952693441721295574816280023692906858899063940175163348081399449534758197340883887120537800023983858747135982214116994922095325105666804787020407389874821786564256032268553291953982759131880929587050087747203092563265059008604795497447813017804028800775724533361150683966482556137897905957720706213312724813033174691176558195837948751513792451372535925145460013787408321175595486012276973137046255928342248250804768748475641582741351287142453881404437858460768230173064918816383316467430344264637178276279910829388226563518035554375933870513921011887098154532571252895997421909332758367410183708989490561894356009234731456978410714594862116592149043968469079109833760951944140464172977660285767832158062713806610798461114980935651967935897245424131162683555439056705028314435420671209608292034884229391296380531685215052658450041845256959389888942540447400427105186662325275920473948589046444637747063861835147478723733868428156470757083200782834654376079275384922029089232682376519825260723924425649241024612073652920093065372492182912140303732424992941006585943590251571243886752109509083424798344002813294772196175610953998677051902549471324754887956303885312742808886956159764324651233011609603274351954252114636920849979940199893250952745858427634172919161705237207023884124825481642144762404075240200011407545083178952273797560298594234858179334195763578181256258961855886306182078707765588617456664759020652955448882549008973599961040171736531884257396603674516525839178395752809111010737080930629732955578551566546693491340806662032217270865995174053269324035044187409689275663149323019019744683322810301378334184336708713156043793243189638003900216088941108797811841078280970020066466668405269859211901606820098688841112087277091849682800461986993719254802705118080384658957444372516059980683190422028430288202843933759877409066492625282792493186472055993633671635088072248141075120093452542567959134594511535879406511509743159755893550697051196340223657736555490021191370599325177673129596254161888168160257975186162531669347540300553987671659851716441932958461745826626693823249650996310995080222452794609940909224989305023835674972210335709593672492562625015967377314768411183172301866931612724509937077095645097655127398846984825789396400439659229852774575200044006379245267511232305457665068487603231816638315729383292440783466130028721486526377132529090759016734268059000090451456791485744135575256581561372258251309772390796307523330525092183171626402699272996699930488352779999688742335783442633977172849136443895496330035029503900272358747783637139951600407029004674322856753551027404505668274666279581000584419119021405721872496755950014811369377148242704174445840003358838842481597041409494645683674484624033339104147628058384503505265971256763448599257729577361566973315424431940924350146425125768725536272532348162405449388103855615849606787734161970685701008345878632366867351141496723055604399852690828294810675987152172790656169020994589379820743736464421820097867962954523547937386359637878716699542115451479074280086206771940393347727673817984400898081485447352254342315635991545103945995881505228749511179121690073346075854354022420706766619396698230565640434945568665001485280737984670936221974061707303017648863287145811947126076668026178908163381538381249809325264818190072919498193510406503103919561770236232968977347886364951608293174484015624069078197571251155106082300753302308357036227838117780042896598546626293945598202027077881682506699430443732164867704815993816737955685527253833692148331231912780534288372304929615625588815884533761283293519816893403790495539964050840098120457854649051698455318509565360908986996880980440546702078938684137810233618571805558910248305246496588241406982127569935520168854800233279287271991584084666811496881395327565378329824996343622316871288151072140261854074482521683342676665833351371230821582723812710269122952081367830589118509428558800330391252192204406664408271363885430828468356308820726425013049958164479211070115509100437676958958600382387722236087659476856251353531476958755380105898317360124941320160784940170342314017782811500385566711134014861234765253019408125549047052038266235346311193823174875576301130348844998242961845833752112201917384271376763105780208507546052878851339856870901846309502457552045234410327730792629991395049006843460204884454890706834980170727190019394775677884809738000714214317241501472778209109144899375291006375044003890982042633628205835002195927261487950587226002913340440983863268269631578450694079567059248756622123208985719188984362800638592922242322064052594254966625935376120175586225741308862109813260934559263584111284412401104652830600632772853109352348501358560584093803695873738419261026673878962130336246159871989386696634001095297931151888892971755974572382045248933238108333967136150367082525582302496156169801958449981282685433946423289333196918693806734728917159478855279260462434858096867598963028021418414302026104984516081794057148407818472742718743864221927444877833712466272027585329081825163454296057922014599711657832860799283004131984561153408475270542143002441702575799695160572829200156950374273779901143259402147553032794710127633306661616541138197813079752133297983514615118308916211080640623015315140292809886269643014093195463878204277947654040867456832974134287179089813937189209350239298031598739244191077807127240112740960706412581485941085664399807625366768279725647936680289251908695839664618921936239265298110564347019569883701275418734948435328884198007456848047129374028936714607712129343578001474262330717072435631397471848522257745598415998870065463773582380883529255881408277949448809429646738815955302899146144071746252951750612642467902356025688936930102777965687822005719449790857394933839350749175017893567695992660606763748908417005848909301250695078535149053758652350595599149540171260371737127064915385291399951549502849957727858207375303507164155707789760643319036468592798361511995913893964400476374545348522046732870065179762337535904501401456814310550529621874944664528242022177319205201963120571788401653812391292425656043356445863967010018994363566446956240289731587664633277002249688487296923662316603462788314137117752826811602011004181152790185473263258178717164986944418675395409729774242750482008218766309161367424778818690203963410568445180096126278571717625118887595099028774177755083419914913832444445772716898002263095118946051295808011299198826991973315105651575491960874409704882499094039970012047363331741749378169711497062507020021650245424773561469925524273003945580406539932371678327338345564108356888424989134607912857685097118701488269890573779273093919631250290907823413836621589479272881061857552157747267935637566611404917347091193592385267407286811138125279853714491152391181649720442630858183684011612723793859461759230908754511777235771390728206347208764386495652686145729760516792373611664699464643553122083381472390924367898708343424265742538612097501940688553178150054215427215993881180397982011315027457863547105449539497714294300025824981983046684881640546201672625402638951520278524915404614052676636221375333455469048344445552282034931994997122893549457622144223325739474967302041408199357353923991636966557415066729139206593100258121982177707494343635010292079354000369753510987475345679392117228399806596786980662355856407851754767437866515487912299902674328438401147787132780671906804016333479161800692464446661857729153626663048319973732612213610550845624959196280522088697986544104698977472148203932986283745473136384911440771936119101550605663614490673470318863011136623868207679631997815214889884109808904603042152352088705638116087498828382543491640693176671199363214114982923209141765202208127712376116575117067566419769984803073899988596078560158878075258779800689710919422905141258574637780305297757341441308370664427802807958241805969125423698460351868424321957943787342333337022502490032050420969326981723442334418117413279941124982604621163512426798661984723956714188091053854720616944997996353576216722711008902615405559615031870322851819398728239973006422095511267873033940460021283608701653456456201330050991033796063107641470988659317843517031184516873160486086033375593225278122256717726877612435206252015826438883005868448714936049319747392120133904866015299243961485440187913516236054892116936025248840925796069139505197806603154950539040803414194501066415923428536759126715368132227000798940621690255216318212432237811931264719073379628822261060117996177163209621659989645458199328830381320978402203634637850585555977813568710008372534695769999984568837871452329042631159748731651146556606912674919972371543762195723489340912659059025388448230097850911068274486174372699253512389250230307638956517075184907251435916865690720975855425558619021275820466078301146149070808611603277387051238342701217129886958499311572244511297531332153041623761461619952416705116752180342234347591293108463069664531753263459881617279789814965056396847131100305122265169000165673777337965363061852347470858894755154967342520270060471890255917589833253143863339570365953979688037486749184383740407827521629023273515969723352259178149809486002852928117497838225514142340339295189491225357111876430964436557459842783454966149666171867431280530825579392697794716485558285313671290512793710942659655909218032921191761407032850053126160166893613592422527119234540932963723319332061381435982527574743447224982657271982212391973148884701083557783380394796688693025564078304312339716707627112264874688476241760301781194324551725706898488045707936069134835963379065611497246600764610191317349457237793969339976570288150731091760574116207020989853554873553705956297022642089674473309571321071447464049634025448555462455851158380696331183767798568308091545985614349013266320660469478492200724499259773120358957958315561733190720868678990401258004717709502769502676695796044298701113505478439556716933314193790335947377504643247473640885346800437359107303244833493286457232751234752430353006086574613753714457783835568126337143577053008797196979188572252606518477544494139005268679408678830262540598260572415442866805587520562370810206101467430056767288619217713366307866814593815961322353216455347514831524528721893779398318867595850834675669314068488109700136318655481407521394822866138569473479353789390354442055607500137745003890673606270110140059208956270315714964440951945465326497165291174552894680766301659324002624732117118689982652157753263970872234860454246336994481503144421302907756554731781507105102283894521488892457731818216786074783740791024729471683616506247587909755400952551753702424390458483710294210521012417520618666859982564236652410286535923353464184515722892375611370189391667763587966429286866168383265483394052461604603694915287441519339787861935069539125685526943691696188280613811921973017250443282325909711474404989661442011338201267015371352493003488564463345188194334419752614738894967857824439672308425723138442534024656936128407689728330874021144677762001164174100468233118288450226537399854966561859227646162823626447370622834749836552055356736562701315557336159413264863245261508557603779831032211267745416187823067849336979446040180629390652786926091846902296050064475202523413899173623562423187284525842199336769996564198123707182631430923666991153126270948582606796090413773698087210609747149668386275374727389357554471394750255681076001742456904545844896714197379536506807238298622710679754916500772247136055533582511606942947050013054419880161875679885061670282555291824452436162415970858437814656279841811446717778676546376120631414403001287097474682256226268052500998884066302734311732426447698043117094618134462167485465677618682241915717120810721869822437546292467498109419717220521291305439683932811855439354548910338916550687166024563762989013115274818864208499509809515677196859486022390492289533805968438781106325244775815448576800728958124257575158505502370288289368780033268344223501719561702901041024689967902158283673536297957955778370618597083192552704366874285013702854159907409566740567199165681372961524245151850193197057609548567481623002433756743208702126287558608780428363134932533217872338142490827665454607094910573163929061821509056844929171348651552865385534879875979431902304463034847280312788820174141096276179118499265241998689368736228969892264500721107977554229993959190919958174909832570842353097021624780391689105367357924919208458653652537165711194007740436752009700742187271788230538999447431156531309836414726974305369702398035962485186902467127019459569727238074715527015927736978316962744723707058899548574488223610415608163573954204973601683348489794428071227752118571226437598301692607027621960620132031688345321642016781888982221119405412093459325742593135489883907427644965175518944522819977376907559105060223775229569876236438033038795135034795326699248670431738026019400640365780763335594876111594013365758868548116876420390793466380854433861201818404444921976103098282597126141312481845081425823604723048023118876877944243557127557471934125572464907272109654934472414393895825364739728266975061091951562471659195869208366731907912701477840485862086203790841023898770115020334572722103463814923525909115698532838882566484918089247023756944625014302410878239648229277357280983456956584359941744387071969960757248001399672961465709686849016617767516058316526559658988821052760050301212371903071212631350064382418871969526538978465532143145551324207321025466420870142051434089511178582617023723683585272402544811729803110812370915141892939208585948679597325330951346044309323176362715290059525084270351869730185744649939773534145425353761572765082487328974218204350403545902269565701214696407147117042744003125982679918701980611937277576925911287468147239313169727166292157150256822262636303822527676267423241087861210723075577774786508145240985622435862568542733266523984100651760932587514947636898195524736866276309891816252658542154025490356209749411643954676805017451859913912838283460775986696726359341062866638615616455534196970512606105853814136378781603016492636538650092429927264944380439385197097752362175398408573607189544719106106002936760675073694848450444083759047410395962915776294095808316414579021558101865565893167218808490194093163907135578287156616497877780546513993344445903793078081968515228001362532557531827776853987734462353800898381504236122054793778457955704561857745836482249082678394764235316051602723231149726596311483860565616602249028800438254047980335574006180602889730850028134672573414438621815284714747789718035620838417858411026046936822405495804652803534566531966234509828369340670787336708500231736207278094124641048769748903038504868720191007316141006188998021710832237114165137213516368282937630714071013785246813118879482968518469060087660801224745846753172474215494706307513074252537553344501608763804204867535598156076359745486588613628449376754990662310569509411638229260159006933489159918442063397297610612551550098301320663574244611804841366738155167082595895555887753205828904819417156765922982228802568324271603938420368154921491381542262340469451259140900160547884670054938970720244003417925372890831071073071230976094344714993439001358844057706637040317579236417663237667518414865371355887574658672156087655163879491658726630157601738425010234130403826273628582149568717051449019204991424780564865754621142487260586732737896942506041144432447134123943450986099913042218211162229252062169333093256658933164926159521195465660603426414840746268689731902406449243255626809641774945004078265454628795659191099810996226967236165244537179709330456355893155812769692393458896850963041140110263142605958573522473790398866562875777515687170158324689616746955725685376206787269014526762917287198274268188983463570807712200017744954850671172549214325524945494816312923258636802715942567579660682312115827215472190832742951089608357972009807847096236020762702607255500789512219814010565744616972575581559960576325624753815525809629355489587407649327863426471945379906811417750562918107255586580821457620133911819349751287862660878934269871035452369055224716213083613470115601619726711343143052705018501003014231901325559472660821483321333836604724435146484522783086495055137191166423760622141719211620382428865731935280857776549211595471513775200559520107770951043073245753931411134033138781187482895268220334967635238905446623225975088119586176301844382997728160554028805319824151819627004082585532018094960189778108930693129444295709285551763022607739207980955518895210467890352786772735878831249612800490170287378111985025611611015790079882715134804143146839241594383790164197249548544594882609852544792943158726335185147065835561650936955885660435658778838213805761007759285107098092489157511799735868114462687984860419702008605653267781936848372073862561707443458758792753913744258530566559777809326019878398699817691458007123230651637956366182644567955118745723422846550689363961062889223342091237769678241681866436929772920872948388797579309636472155702847625251960593149767589270837261165521038224828588328877500131240076666575996437525864810142360309903259965033342490698021747111766737404733000902918770992068188367932618846736790101960387996306598541016743648982019340308856898772235372609928308353929132796883953960190956636757201370043276857972539351379126644983831071220257297568519933673748625198430166579633434527937756728109841070366467209015482124276177889748050408314987069560213127487888827815093823580171803247731884310643931205154210413482576974555679923548403271843734612636314158722230216763560644440346071426019747701202490092042647791641803951837942540826841598919953938245332274903683369851292402436057440372362661146832757813948065653530219240092298522154997564457872911853754488638357362775152652355003765440613224948464160715588129722189342656323803273560869640290445214076490944980685335335878256870661731632537757023536600081193669953235153331359026978197567799843480701562949020063891652946650104830646091385396561945788222238834789241860431691642639783659172296512040552308104964493572012860501923833326059485592415824802096445963819215364047887512820920146896676790058660274130587056543594482443202445763081150061748833798392065185080678075671658989916124901874135778221597379257966001796949628053768578458722570636035739120952108459205586493113196655234856268790507589554087480911698584597958461345115279674650732377088276374345598601586396773951915128632097667489359979339762839862687106964364008369308607640299594855564466097291056497952540991110527524894558476688970756783848729928492860558297009212387148818068702164920186222491960853063165969767634590645773346942536257908867170335831856598558476578628713288104532834829371261415427664644133649961581006553917335139792031873183393476757774769109729503484344350905758338365501904994041054430774497523213605753985073236383648061764678194551184310654000820230195024993587793065133580346866382040606448885726275230465152386282237063359904741458469634942729992517768815641254341274245195473265322975918263222100326182499647349427129878792057045769048691597064795334219362849632823850496071194070430190545023825856155995318209080910266125687648648471182492007320181003856784768082861957870777879082317903421029195095643381364313420176392873655066957750878797718240680331672744020883619307859158679014497911057498547021941836656585261271013259388813475170733586447240717819836516424643411759898657797791299175376031445354668929320128882879943804939363024493950209869204271089626008102956645548025398172724554762926073401232224191828895027778147479772086142253434691150062789408643720106558301240815066974245902715642934542439387858288891871464468887001195233313314866035768580009354483323190161906039646245534442395273068534220326406682834173535734806555413306440353130659943079799037503103141130887147610145152647213635570685699447980504495022880666234105962474032150874395017484565171759750710879637385425415407511565861414758284182839765673920041797970448860084220483206122368211301349055079014476383171905789134419496577179946550915164241847555749822412993296168758728349772036856956200953529447177733320700120650446762770355789252850000488815880150468103480961714793920969451116744046673065277624630008404485552648976672770978126213179093065960935390227921017574319352868523026089601620746636408835855167345303664031063200973449891060977487286383798808974644027100481507036797523665550651859604001558981330843216917590314511801344733449038676627254293153046793242736712521326673881925881999363822914967869917694134731610434921621845268167001254063105000578704774972699089661743354940071754077204143608634480880397005850408194388502477298259002768732918521639196696028636641202709238290120294197104718713581039774169786280240462784320589687694969402030210988049850106037961264392581860254860525138628533025115607529347012426438495960751011162732700217833579123810530655185458953649662828583119402383159428481982927620337752381572020241787472565171279999803834562823054516331690684687567917153684414640354034952356297162090824411569536156121061050500039360174757236998770933651964514224183194266068982097552991474080896075527200980074857064570546573007372843966912210850810117288806467815831247251483151154671038937492189753585446687996470729965981083811096246753551511772695157624435555490133125158988885573225267733839805369429409756165002598703316779852950127941435327667840947715779585574627523448896869330897720490653556967414736769239280132659972441128894737685531417164221817761610458710898394544991097353694142023778078916442412466239786768708452533160622813824912003179740420611577898778443921016690312556656337942149591623669892308125949246928964056751839577867691702014246521890394087681138931897773648314684677232859102500714730651918062824030492154650891347892320114205533655354615068736062480782919173658543197689208692537408025736202552757166298124549724765686175642909562279399959637560357063509947923574538840985653593851974594061801199148291655485631317555256415888427654844898140297556905752877322763998350632397442337660642261179643959049772085174633194326974869706363686934890174715580369507139017980735637114433845887910519988993170169178067562779107339431151302805642927225846147958595677858233257859989812886216490208016429960045879025648621893033790564391295303734463257237094580949808213938740543292587486192522260245504450102418061834522654011291946609403674259435437205860099947167287899513405051428847901855366192453831039511804360752622383661545890527546767991814503797586931415092358477732235819363500159096575094312720078749587265256952602815788495244622824092407005472758730328327885807489084142751531055011348110174661249144868050880435323884377111596437772285095706259022997583024397246026582932358268279288571975226407501371872335297875328503742631706447367747979360736227474407861562156362474436406077504924727064256997329979257673729331665812007387370182299384409371999889062724890663992459148220807761250987923431717015000836015552649091348959446776731087533565733715779884396644304963770447731630859540906669843758132039317361279018345301761842455450192803119964591541432456921422700504166777701793402354579904980557550601858919778347096170970573256426975557264138903126902699909549226087436061464224929089131091666663417849043653940211861181685322032940426157350196624284779560141533107127830803286657948121409957818776970052171045732167524320466059136306124470655242985308545224628738300525980955721584808493792154406705227074908459906888765857178406513599713852052919450538617613392137885168043867297193600754663919193738914747443844026095384186878320136690791636986401128568169025435063070045119738796652652915430619381950841010541331152051709973016731296823712706609860418545821592684246683374507239913511583922429005193012129786048036738776672795369210209602283678409661216093833758484258331541675303749535745286606561048019396091042114470479950834536768126265671081769395333542937233832638468513095234048216732992613030449205251029170066227341527687684781620191272735993643425793804236534487061052313415326122658168632180193860879786777875877594347178067720564141750499105173991156085167972749146578302079829204659146365748547041852310727866689457544657469293073642644006865640297058082070165287282481655507421096458612913099111721267272137099988973217434356506044846987011578694484594804446735646966471353198017854067338044318384283802847070024922374569044560423385275744267677982819424605563109660042291508471395335381169967846187985244315080550188482162228805100091489461763084077418747786327163842512601056529055301588992920649446859744781971014770316455752358356629233676261798931121567618089867474882619037406693163255672312318053840443651658559816723681291318177909789958038249003632541564033528073669270394497426622158956508490843213761088388168719165213254749578959425716433640296007344442483610849489927063202584499948780981346242554938156786922400772968510413301369652596739954623195080582057930355797817829125197422311528994759209821534107709372568254078011859633770278840917355939077020235392341510850038501033152387051307177010633570287047109210479584947254204940627935606105368402631347067559429177666185452668007292925279370529995380920501017593852693110879422640948726124530498819829329698817500172925845330627105375188359888582898051484699613281466042851423989240677686076835926865402842598016016438393206682186232987974157386254413746609018092954278620409485237538968691266235438640931399014134719110547078365645861141531229156117202490345035155981416660939111538151914960910493897861113509388333685882784364890821281719678294135942434297288621891322538788622782428175612276182800242636185630772701668769633242896130491969129913892254862241330857620047969306858345466962991045575254211001665413078354844205409219128079970303230571217961825451763176635224270102357487601110517937013674187354126167788830633764542244747479599331952359890618409498365413122726196574534026793562134712378341928080423047982063697960934156049667949111216466399570707093298228013160390373037405414955237343191217186901091768304818981271053179897437537500159436390404756592717562292582639512327717824331521674064442304622597156421100115477889489802284485114579824131920655454544935651851644783919605468583442713174285174123272200317322963458705492884356968773053884701092555247446895568890521178516894535106876431821916164081190802065498187833116014832685061399651264550387594924033462707662524824239221800090794666529002208339831631169218338946768124752376891048778978176266138367921340787262852913715464927875818524369802600993349054125793294597954569799208112777548293558173232796451935668201060638754575310966529866543663575488329940796223685084513534834601298334001045058764254708107264557713631749086032977831081193766874482408064555957285474368091726620100371517476319230731345227727832511880821602208272520270494188188277997320858858686833984190870383936594507225801105795827780321583138816145642885852119102312073415293754885028119090293229546176448249913481594829713259292675583293288562402199239463875070733169079366629566754949391297441607903292355668163858260458226887711166385586563600707340505588987486061047726765425622756919547128442069846287491100594035795819425666315418915111624639066888352888471585071023778590873225283300534558492513102515183129707404234115762925522402610046599847051400772898693441579141719281850196052898556176243038954039249161857751922927920681229122220517709322031660884860655666361205982397174962826089240895920896591098295332193025320786299280855646146643353160341148525377724961722601028434220945962048015720307802051416320586811718548093443166252215887463821085178159245350829311309423743076474147869321034621191275486966397855332915336382326693386145980189979569929390973502777526823357359046332519015985953436540479789244381388978988002341986581988913382389609923963678655916619501952105772294321080142249431308961513668167874595076071474921918910653811352021192697848317156204576317872119704618985621361010614860689030232806733475368348205468979266484584855394078025598633557826648324813253558808387432207816442914905649500190888413895028875461840953008277395672890886782164030424948968222861855829858302788039602975298380470186836808943188150433594335221857880437459180704420535421036737810130066976939135130253432197088503672399810501796897802808289072349861195496061226208079373456746137221408887035308970557771250412220903880386650908805456752944647970880252864735483744783145034275791147391618817868379647492281050810039291717342263938936048504200027944318747180439621162972235187953229682181959605786420875513205240339276168425791957333053302449010837409040949776409724867452731919455868504538966137036994316996534955351814752081444156468637076333744947779852196453583437555681732132552474894179792880131161801289176009834164063858715561162391884249499367854690081240590181955740979829360676373111626895235132669008844870009652380200063794110012395278912359066966731299075607759214607007458671885946010396993298984727623854778164354802156143127501470010422618575287481481835681923846528030980815671888660734381368735456182324734151883739716312381396525804184367564627651483120608018280873427372045967293049592507253193416739147823328259341695789351176354697107790434590964044272929645864884676750754452178918701102856442887367492012369624814782969322152259814171803957325298733301997543133082888421915864131406875917879567623951459863681122273549390481596557533518992477654662664419718080764153932612130597004074153541118875764614538126926926600255803296658346446492540933608102021803981446759198711489008800129632994305828263087000097620969797252481630287867222105305498461474141572908376792171668509683201435888709062555826951354358485917731072502556636335641718631803620312455981030794583245725546803854089499406901425264476359970373589439644927892984797316545251990564901865253123436451592015240673369949094676703861309938175131461025407881413807565458839877238633739907743143356601273415075783123434295008003098314795882671169348431124678490601934257171913906401986757201037405644157713415151579816569241272015152168925629184214893242709330584371447920730912249717580466409106231517296857515863806846659771610497112314000477304822808820641261219070578129270156525434257261221003760812572561968007868068206905213197059560035886157885223401879096697254506828476666684332563727250460741835147041830777822411241262580517477324703766511348734780545406810918742698648632684683831975162392338501439611581861781716994498705632659817719180948335953965341888466595155069054092708082355754501564728573334948078357863637462295377640524003622971279357542792443451071277542885889489823453389432596847883885149809427744268702516949369974670468446695009165174229734852264469081606255477382818317111140295811614264627016145064896734082223638515382444645112374686024811616721575411744134833007038149851322245024796236872861452916366779060227515317435635446253130287344336047923757651854525774723792323441159174367236605931389523519184171975089372786226554797019890522158270065625714054490708101031314553996035185588374682435189882246296230529377955523366435719058667917578302642036255462091608273546241701271376860335984246595049178215348154939505311476981652787143999768344413745341039867023319839698011723501038142604212990311015224423130146906273889829183429801872165863363013722483733244194759713157631687359579150210888423409973144198989623787020620267521058856438099461102346805727665763739928729240086119567142402832223116123575911490281729688443665864702820144544653436617355753190393591216629764566221181110299233847301002048212216180809096253794751688445309540768540311928980613178306181671133086896474888358902282879053226953588130627748819008812798375567160119663480059134285168137146155023994182979677910105952563455878083943040727313383031245624835233885697941095035601048265581026007252716751545670637647384968182502572228799946275247500543225153008808965724148271970892344251614782589976219355888795683150599996751083518458556823127187746701520945450676238208485983747379442540266982027852496592007027452547179532197086213757409391671909787052242861934906962864760210563035799488289128055570500039797077151213805910430178919743000707602015028222531596476363693681298417266433604317925270106747788506502874898859374409446342514152003184907342039564612987006407489200490712065523172509287931026030565643801686712166076880168266412731048005584443978350543676036376635115345187666994364358092937984756687579673857844106155819897674494138011599693954047266550475640122158440330401547447516841732704460354533725427811527476483307778728666059716615365415992776907902447446323492182437822606376429781960422109943637872394501030972626700564416471845359173700692334635223576282905696814211222162679307799511441371438770485443052430124268215372650773964845555671431615933525343907729590025934793494583809121755243082825376526799535842344141015906351007305334309342476976534294944927095974449246139104515779190934659314069938164092835764742613417951566576746454784453324742815928428036183019232275664406364862228706555897436398055004443168984613827212028283161391124318102406533299144710579622508199839487244151785342557447560417499496176222363957485899949680956742073717820769026002536421695938329698630971786257736660965820525970179745766883383153755955164292921502207240528426832213473757384832494399298259682353574680361113401330529915407996535624771030606481492752413694186545668366258819094171018113894985441595682592194126947009036378498204040692814756798911187938804340395266032441058543935844324130802089298048057476171799815328035467577554132584882749718179861374420913983460984524415925214488103932576577216308230791914256630167628877386605718646945472306082178716990833182534304094471441517356694526120245442703715523095412253343497128498089813541493507406201306374563928524665189514033615420290537646812138655023680517889082461868136908370423460901281831215263407817886590314771870810669762421101407663950330062368782828363994369026135088501419347277998697548613142317979639454570714875442192233437987953207848594091838636455453531820018329508184757038555024325682778602676706811175672833820794515213274728393358370464315498114814382295042400860385154273619900892794643575486742063486420693512023287596753745330832532626408178268773118107990357092869465001679064413982507081484109472759857902247768740214052419948170128969350178225759759985510813479726385037721004256310070118596144532443413983271541111955747469483328453761815967158629846939091542264303112943413855783045863250761053054536217739411001732059453206909961695472597043815257113569370744610976291199501340391481358105034248132648082631393053450448081736429472821432922033348558636146014627894534602054077245763834111122081183115842157320977243856249431295990293982303654467747862896248361692968158780318927366817184183887169209608722935681481015876796783929205999367681712684068652705091605339516480575466367228111885603746643926189987337687562748895111176064142621957720594259996592747800403345011726908982390885347104862951954425871891961211589291722578348238045577168762422059553542605124996702127801034399365950221611598360750873649527902688063843815739877383961737664580879021721359506468402272812492917686285722086599131787120017159164325259046681047896483440936732453780686458492714483441963949253806991382642495597602853998360699692239630029640134754736947449084157483285582546279407548923983240364564454269716970506995219150363351425072346521457700537584363475565926436594616746232974640355380595393739286254266880480368341508187138188506749445425542404460272676387252549168765380290024788663430144909720781337155930056166210117189835812558315026243012435067202362376231318668827506899944608139596392320949826317618215647284397091182909752522696484644744338482686396005617519299758632965214169748382646098606141978944985099493904885389692844669658262111037107350553387316147918423106811709181060334824142463005104553514112137943361505989552931905855167465831995472046476528280391527058569297441146414835859031602384883174651736598643184923071173090900372089140568705942697506078621745296789493217039728886526098502838681519054121781448110081351532739914878671440104162560565640045692496696343440415249691214651819210017917169366850415520310617195004105354771976296118200530994599322143483713241336078457837638304165020406439518460347470903839324296892647584233369732257693421111707766359032912380394494078546686598597355659673922222041787032195788899913765697521518506088907980241296457757500764550396440838160445715909430402445144137052575283026971749968429251957947911839820486284026161936017524828042170458105320328180422578929453395429089350073992011206829919113121738063038754963472735403666104454523401143130282192725520076554365121387976719916911200254709816674697697396398012967326881948627791663628799422449072829284206691585461851174022516979428950242546331396235381184860902321268801234332244502740114638230257155701072405220397876182195820671912956093493500573583461654611722274833747016006587846674023168896663051773738785483961113144779006609460133940968218603467566058282990439389931853766953949647087111148368413503060667150107203214965241654201455105860353703138444100343385736145599493456395789277554159920735970081964695942786523504802312826442779749529959306716503128507237496377021123308956450602570382837187242726578267143874874865292295254589893054188927419100679224440357787596437833627969409492445466940232922410079701852626119269262923607509658355656329587849268708416643804062485792340247361748565821258358603145332985029066105351677175055829961897943274463208097214012188115620369004576901002297670319419633250198656623424036483007569522214084235962422385958715011613027853519340709077036114848810593835245643568973979877905365519009902192608281131298356647006100067695429357609226628851793355560786266357344347035098972851035937097399000382694725594040719505807460866306669171767300227074026098503879228906537208673707160098858979726869407536429094441985725408172762341134121957664439727868841342481168717849466754246435781746319787490766674248393153963645617178526061151602168354760408692760156409846515841077858668956076007074640451130138845888141134414981248031060417808421231667601028241920402772772804103092067074748554745429544067557510001566597283635848970984635147326335699779771734462448665879137338214794685040615964830433147425871138346793279502947107156616799845470967027274221244095021785692329008648088801092846422780141023087835892510431744643624706111494736549171472774411735610556638948592829641575832237847966414520644846268487793142298401611678691028772107689599116865216521799639466071768012064505867985013724285763958508400608102232274455896211068302921872676725600500745832857464659948999416187056217178359397852373689567998490865580675633322808153819686466346922412128336392716707210308811320180151997694860691493903470425271260660729002646983428628563343204614062505928128531119135140666228389674526310641162716274449552164241495830109122381652874239159149264508087686436080900188431735666949379468003322185258404553466394067756848792974057646063240006325015208129527316065555482090675853099269190513569034429186310232475796020465074885802071327206667837865571502054386130246931267945006742367968823486762829059219569869515567374373127056423364308297909231255724312507867204045313599964019991965919822338970369836287190111476179934625586253562727427023989942274132592339706386127801628270293483917906200668818515780229664266451796722432475824446777650784239767457262349747543150083037154107913016181596188557490151505302210274748565107395745143625237200103909466848313660594999237483161279171180055917127928245691121445536488829386232624863758367629309229650044107654801102361303324620740245167137224682551199975394222741248987920033175915385930183449444923248282559992865042498705087051320456975686313200245385049183721395729378906041672522906201305954407580807134630704024774041050456397139701692888881326227727488041985687832638203443781668338442972281649529445768658731813543185795100704051272467369915263702254780100099765822715649692257913964111097606952092388299888311174031156995116684860607361698007090936412930557419770232235998292553529943558018989480821617485147793414555489768570148584214895331068455786775163348272077336224480389642315108947470277919119528604703155586805400042462675345743525056417792998740295056659508185809760683175393277436905367736369028552374788839043654714972940991175910508568117905430931348556410468402069287303990636486021580719353045624267112994917737870058652179720275347869207830039049277757329437792681026944933701852410402155588182680764189169313413648032636078033941102275735286772216047219967938367300935161606011347035875591938398985626865434250686835597760057101587886810997281636203300367420976685283742735778454486413525748201492356997335465165739507053610030365855102689937068884395062943317729544303931338575302774404187742087588903975462230420175188004114106799224595069558862169607902659795289916220540358718180875747011402466181206834122946056831918954785762947437620740939825028147855924625856968573809040617294107103887652147591227109463943993971588268701496303822521599700191780548216168680979650303309584652729183382643514113689492874707622644223807098401547124933425021705401648119715854926543648385261713891961520165572082669578762814481952301655068997357942766353050227582170819395793348961422977867403638265645737074157654917708932145668094205552910785062094190682981315035840334532625433065256072798578601300086587673016465269543842748550221387779571610157886870172954729901471627848859124965061340742689161712447533000638161247547974211310859896943439008000075645848579326708999393384177340272145752372768113322654631308062708007184975809229405140582263442880266615808074430334705374139515370121566442921190455496651745490987109730399908924037390519270841509293697555772789645472324552329028348539497729298923069796523604187138788157175227797811571955936997342397151359651863841074840317884517178779990861124946183327753871698314284198294257911447286678112100177348654963891977902427397137124162356063950614770963630201162254032092468182061379184550540072494074222620656474297643616648757221641365890127491044278676997648079589747320126428547770616609743014771795184125409024604660955706569349944702039507900389583308876086021350101153274982416471133521247867019152120581439549287676577892294688702456288638025744463602221017683602805654697257602088588077120060731436799419418322845022492262696637410822154392258378242264968409527682778965900367159353490307813699741509531064450284974925382312513220536170231650181465917192838303501385103987885475418066626222049536983585053211704152706702818750925886039175881791813926206555971798477354027948502196058525632539669153443029529309157781835211571295114143525549194241821074219118659392332019876619625485189131769482835865372054638931626899885290324193484015069510893256187282769165595842712526383460178752000646980551653394048068228133714524903162714585527415379478878074662405286448424275680949774008504687147300416937504871621078962710578339560529508384696331911232234573946203543270721875141613564526958352734200197531265190365931466757876781763999829135333797414198530478808743542097848234247284539124021953873010144717775656617095335778033682223144235536125335588657288787340945089368363356893816247170000693774175968809527080091791714216666831339735368848892184204297870558500501019568915426439081154650752937861260394370214261332514375021410448721116137259762195567349309893190154373239634870658083380767455537426460571499047356082988680258217219738487138475208599634440863006802680419212809064557437656505779922947997093131909012091776590137376136497775996494697077934747505157018406161054805360729099799625451509739019209656141373043316008029626727074975852615810120224569725142973441581315185505332300609171451348388736856881213479468457272237521744670021293588304890519817939236572333160046211303986704600341672018362114997876408564814066054959324766872497341867886337693490803443673225183840247975047176556788544087969921040430807502488013359039365374848478321421979658755158520577692888611404166360819911679251395653742120974821566872658482959608607183729968132014037397030442005862095650720325484054490626301688787175883428598071859026182497261814294813092044969920624034609440488651269359048533648304855582688818908223135058045637791885877473270212894048238349693630779254899915876876128818588741168599685540935050684996837436428258868661899601559593861451572523129701611347357053644747767374239730197184110275819408866617990557230281002004767106953981711819186287997771308103300263351538665223888510611996415939640701317073226196581610548478501633371815267337016070459053471774665112004375147610790106241035873775128551656821376133259586701076588530399846503083032654114929237164644979367143720893641198447104770508261738481256050137134787876738439914510113322666618447170922937342282978579530012283070322566948858743272410034549017134631948626607959861761218852799573108315679401158742132472415110082958318279546039540319412505464270124331102466201631654595546229548344744426966232750943667397964269276581590780243240349834825613291372746664594137913391187877276296355572625111029698975964476918528249949992612456628425180937525090845731833060598687529681441684592417888918430365052462732720478596497050641444843162007165915748318797453265489047746799120550685504175191863611632853579714633684371105413975675260298532138923463199204174954519628660368712766268018520433481532411258628672600184121373197926546785100220401360563903201567421639535463007868144168323112907960435050180915530776806487782949064700340820079097916338406887632154152957781193516116957022158618747940979845964618728358406549834272612603833662719370188410211145796879962713780939446418540134883297427100682297868460388887611283060494185832944706871143518022566977145567762056622025784915292859971474872982855439612932361565760668385381633824251525156968545472376048830624753861488091209068480749007976131969471300952573839717690596876646432364516595226771877702401890491515792248919154141788828006547742846603890680273145532189350520090233339734724563951153564352127524549197525204618060004656874244224602062007775940540933653053212533278575113813139867317471681585543008351371467260145574395802576467690702781916532277150714667718773117492228065658397052965217068442922909267146155244976855296718434134518873253881863582679584998131757148784827794058188335315034453905798174467106146305431643184352478660646083967698266842189929325269131067989973540926081960836490113912369703551638147573508761390468052773073858130903197575514606556400427304058605494357085503097636812657201327905762406163798899693149371353946773586229092765185925351603972325613886435245932444444208478510101490674255207456248836700573425977173660397127733857108989260564794396588908002227739538311667327638732434976383644750041625494421974538516288881986059554705413626767038092643253612216102636432545900307705807893399197137466661257720132198072521453973231253506636844384754989822547580248282960324046095757444953515290376971608604547442271748299734702559962902828537454842348098513293326983287945159130246095415690815527006574121583060307140797135451859741827132068228026027245996514920467729724212343481384034752461667008883830357573024882125766760762141419107738708989759735715287636624786953937816506645403244070129843306307418471716715517052746903313229811855231872234135153297373190349997146085390682696751342500306563920862181631185613818878387542669778843360797324858346247756633035429173639823741242125340733970107280017041522037039864467133648602370735730488161542525282068808671627128309163961569753524139024487747020919019837359787303236461065331774759053436198141602869517237741753537204079996913229495074448368267811844585205733220553025685635802256128725323051760541382589465546679976085864104231342409083987386902500552881268211923599801260655491851861224100445427585698686691573611589200012364396227623921108369750906061330907734483575305078892830740195836507401687463541304895413949984431268233865086461035270522835672688525502463859774856778808584149412270048588739146070078024691816694117365841569320465198047402418498229743773659926206805808949521919167762041820663606999585283590950433557311618798996275868862980304683423540759680266356490581760846793329766500269435329501514601983609790166624787989485875339556053379069388156825810376871218290008348852329780500119520356161890137691382760066970323525824638652111758617397109930150162933855238638292668794669175319055910892838540871160817413407806041501282244391453268913580540774058126774958541763096319391790880458808603545753449202987529735569392591845958911688631546678416693797955954876238714560963888951588354699559818443082378474925118375693533568080063175080808618524946777219043598848667575163366563461582349539017445508013316207505917560925178560511561857279342885894899602014340703181689731376094683429621739356569447350794508893517709763845899975150295750984417792892773051695827537887559749866183562653209961998533123667400595692554424806349280245490035827506171288937473711498859382458227645775214859821957935192504288285924109095613937981632480114909599484126887917435409216017550189881340505375371330439768458518684053531762001667894513924020339302558491622960495995170393893143232457039740030028713060567607613129390931256831810075796645558804395255711089660749424628951165138414786200688130337892787974049074620360228716094157981666119456511945675903212761959422018530177175280577281325108111952043233082978057626024995958095998932752684572798328234615686079447960528239516625921196140562272314295517320548888743888556623400282511202178105116143668961093638430554494671547616383948675883766343000942206926702369535790672766961466127231118229111178771279549762658678581401110963526368764150071211821172735401406404405175240080589823164789459319691706415972947130759350765839728644494224951553425865987288067754949791780880564498240464378269765232860247907023088472438353760713944585786879125468351308498798941668606826518419769549478074315115696362151900296841864251613015067012214598394268736382557743881527215278921713815855917863407975080232212671884845570948396311609117404305278585019226750453301688916079094061888772995182607616853942763297749259423836114533445891988838738490414466216742425818815375880471213884105592410989297133698711615863178977854493808398280036343751089031371951318926433736808519832059576486029909402825416971772970863757574071796369311680410343303535585880639030228076632642421628906145306223529703796969407944677755365242783659635888416883616774141906857638938858493325118683424901341846293514169793853015390627546068438226569387500535942860338813027082706152696594058670322719791158589367953499761924658987405471203338820651200553562724992283302333880785781834121067829083791453068835096162008055410777569890902708362115268092203833584633801381072852207435278260744641188022313584397106437864165370784445434354439884536084234379448155509822819859586695012120137855788441783461809740848151048143463102202834542699848937114287773105389826808697609787576477842362494077083526404263984930518084536759025831193154574482100811707191465551775406777220064347257618188513075536036690318670932161800678218984040808414457684330228247709984412073717947311097231696351112551032743612319103621024203785914332567728410256594964709419042583897073376777009599429171264483528527909037618513831407177039695616814460801416922287140449744497828380253977235856906257516147508602435349914564852055070373403194646776913127674334986877073172916853485880578458964294006092366834741471482872544001658367077681997496675836351701362994980704844107499535391827472316156715366532810844180113341317620138934456185987992533306895934614298045706598416592895134009049368148362951933352310524259096580521370117589808948159195629688815958853979656968280211898535417892217823211531805549162660172577149565417234425687739956681707906225928562948932458497586959958737005159582382347065516453867050145528270137612991161739499971301450964328023684333621169643322295365629785599342588541226629183951224066638042037034906332680636592129851126266124982171612171088685799482217037508608410836515837309606732506585681162039014296711307916131430574406100311431876161188491051444155146949611213343818207577977700629196493388970697296782567525190899970840628749991148210144517633802502871437001162659727921879149769039715280744654827894488890269932087463622883931880526946244954898136350222350842636355488729548698420676349748410169361014418986712100364208749457495497857993995021021219071152340897696531736891826139793129731883415064877908672926987523466635717128522906953927320150864161685362509581007801938726209480639305282096062034423121686227404101948953187346932196401995572530341155077316743530386575633309505027206278421282398662920361912612562577589348468831671604326141879994862749948741662229905911315503387988972065243025410329575469695535090622202942525896141161217580417004811618844092742834348955728606629420877836882192424184094503630643813220196824928644005320436709307543260266859115997200352972980462414346123016186118322433382879789149427498285551169171187255692088102154637935062079333183841166653479770017382355722307510535185527370838377889120259460219985988442952023291011818523304816480647977535046633938752487544132640867423025617054086712687298787514056321868311649724217291065330166811546204875002552435538088569896505652322175500214813351348642775783943249425545208258715447128526923061417500240685395191937023668438327257573898857306141380422826055596593548443136038548100815712191170628431773658836722842986056779975886010676152650155180909452764046402623862651110990043510265737238502050735295207900529266398103165660672429253395706128975714967806298549834680462296546630344061788735028534150240786025327456956083465978926488337106695018807062581892833607819185194942899009767130525726149417706533129337664464580384128007426180807952054028433556878992122127062582272657649772884499263698205900818946033932863940741695861718059686271585841905521833680530393697936224494773727774863853637095940034125352535559015582354954847123529759670825081686674752667874711615721487839070983181946794785662577509155166087599032765350664400255026689329845893698100566176183518035411137477729488557826863171318839500323487255377848600461291516319435713295910515277334032419747509097993505109753238122844016391359722136430251627422410961413043808980188221375693036978756504061029806990713724332350625298203546009328748539315429983954670941459243317226559923740648615403427824115093150213780977346978072290401560646957585674876345842210542220081384068056586732391429686347578934571109446574510629191001846045172891240217668744320758263879923601557881534872077360544511543324320113505693565097327486253136721516565214635019347925597421746709794122831751470389133305338993997458114033254865751391157654426318322431188906562611704204095135891986397629737652717501322081482687292264819041036356544162012158736063621736827967709968452996993211683051614412397173128699608761904771260363922001614373718586564837912607544721303031523375304739898882936563234921638022377250492568196109302205256159508692691489211879744185790927890936846810915412739330646516901993500884225574658982622631440491423450705589187932909067152280357735348835084794534381628366927386273020096422915902262405554520556142429359864799141731201163666598075331527761818993008049402532761458349928894314855588474118536031130285425394549756531093617768635883971067640433236078111746931091607407088941561970902193675182680907961268811764119332754146519900010338683491677962237100803305979289313683394112538797466309119825206980113951392981580455036278334754379519768364544826214191938567692376272484279348625473774813747590741024783050384942020291657991287337537053328666372787837676120951996255834986163952891445034061900589156959447222531058489750769071122165457369570062359285682312241079654271974932117762419885048378911684860321175469061073507180733442854548280577380487252487415528876341003644406115858703875507932389119699795728930999828843294624660563436936271775247956708128144091985074772354754119116157654924332167376619428435319940599125954572535781539681163178172157209005260425428488745232026866535040234452278556639320648917368049564472523132364089483293912530242771610281650904663718963201524388680315933999284383729855785085752719901221118855282433027589553238810466072944746418048412612088558464129155741737669331172536942946676002695772461097603715595624857434277601016274150445245929976804858453117020721756836515373167165164707129398577947023041192396600118764516112011690380753460459313843037303054610407619826889107832418187056887379270590542757985554864574913252615472788182140312592035167063910163992945794711428189466449854596597501782121373014650528645711287235900303832231927129389827401058202283592800507978120431281370101884961757059743764429241785915848922049155249310130383377059585764622733349778967136913229854201362509570330749758565749864392147422713114863179259830756408640032012577846990655735470603877548419122851290936903247175531746928789979039540333625361965378222839964207872050479728979881470465011174385902320147007969479886487183709664490144242413238493106359632288314850841310955796925173276982279515294281668334164926466075996548861575184509985597515560981409160311409329079338170652837500166674437954985117524140866056329360309758799431985366063845383964117520096593349560746090749932533836709179000189939766034051275410091305942813749099087879668415237524915106059409012851990814621198529233418402913638485505658216836787963695428100978238569464218524952624038547256392195484726999271432588184032543523699417080453179727743784962103722543257917941892968339492667713892562951961740958851114898410638365149097093430898478466031874458217264400756726813297124570059727965870842190226780586269475344143161458241952124545926392215708651312320457575129122547347575354693009980682099516699873152800301123693481932263621361302630850089055511511645894875981643232662369949688990969900942613055489780885678717757648745126165007190727046744838696278329824354944039531066399441529442704742771775546241377348950485356772535945580196793211961457347407205478651206509219785823046803679682172539123496959397280799762046111728300054474897081812052340506039691855553173470947508916067790528273936473108133646509896918035061064711274601084894994977957312565325775563625655236231639529884780973132265160016083374871156934861541518215517874614061705620640763543084512779211732669394461832033623800476481952448033245254574026246713278534577765558585917784950042866852909606965479420998690228887236797653841660707719815075010396799556573717749083078989092796712012093806492422839545711331360126088555539942128402084772096786715819949432859500103067026386268361334513805739675838767827210398119462507818010103030359222803558725586629210765455379857310660057527320184438550734271297629177498730133675623320862567326064132903143772710527160288600326804488008504094613033358367687263594486625992486070186910003196306504814307293557148720713409441921178337422390652657648988431066779122031908994570110602840704377247213824242104442549853855307003630604352845405754749514099893752110346336921615633144502895437220680766419810637345405953660106258002620763161209586758169975264827420872328764653562163738542186042189351165091039916951828053852212779952731543197519185314171836133556812097674969052129210571182317897904542246226912794018253454270504872974629494896416280063210608419324316468225152695861149328853619356577104293745785560184196337607887490242046172120056885915870703605126508445585481804183682780588573907675743285190321783562401767609042882605815153409088078454378532344902758348627223194749212987452958942691541337632300100858800568870690340507830369144153256656188035857656600228059533037369629154922184229045750185020559770748694505702617155017599137149905092993051791892940215490527996654312192578882000877944842162047300206139620643185833480849738552296637028095494602649279696989791947978923179175887930927771929234982763182974460152445993241584345431064837184765302556091889311708212035757739042088867134875018770882805909917569387154111120379263011258722722973305670028881172522841627790157977712079287257076083262330195244981648195405451174918796028065444666660117984095366679712783696434211386398945079238654377792726325999581279755805720646833414873554355514406910083483965598008295745169375891646753669236364530146674732940387215841638983886072509177115226025579582753231112790010593201572692147200774723978903111492983954456636504546539718699411203292024793495047048562049271543634495577396593268259781085032546291340343549350044119855495058748576005824535571050189201408738190752733004314983231322963177862167524181341578002313590494215408362541886699078872402321702954814191202711852433458659007340794835146930766359346975339026552369565369763583834266804673700240096153259077172300470384256700431492381191566670241319537368955829721259391428628795275447874876282284726167303716115744770421534669203613197315854639485041965713048227074469475656439657608292607344935057375138404860300186796133313538641288824964573316039944852943517350322065021385591459998600150217580462923789937859577785709130318397745220892483983128556450094243476075605188888143108809323656575649532035971144148893330765069083498955540813440788505316584998029439423335765016757393221610892081982420066778399056248319045795005160464200639156082389727234514174314116009004819279637589517502922831641627307396624099491740040226818939476425143977989482205057342480390759910566576466037020681394440802673201134655437820654462737312611480713002179399756957666990652714133135835513169375309988213423252114253792573503425606158174764703708570676498133917793541633992467785172843293299874108750266357910600884291557812353263973105119351311731039741028207770561852171091508658548534405622798337986148522079041089369825360987451056934833565465721680087488180474507284641376815369573872906205776014674141758377387540652753296592510670521820277547143719397232875075861719579294835106274543940942842404299753314694888116473340442542222439007848789252302388253565877966374052089502524156728810113222212124266217169231683281978830835350488137478099349245948429946865485862732010345678065411627133959725324212297054114879824487355491576803629199145057957938674210410641255522805771378703974077554717068958680487673340176743779224636041346868533254545508758610187657642199734216442972164424121961014272537914022590801828637312592470224393456512865066305284211780081971432677705342238772460253475982055607037056323520550712322090418158761927871884184202099883875692221744501681635636051194378971627494056375013024555129633943403942207681721756448443725610130497887571072718012794435398603450911563653463388518439184483570330519040248537771046913930150701929072897933592990206230454270624981869132287257484071335028468142287546022631115370673849166744023169139621039705940092194703875793545568842659882514105214690289908554971334258653209301219564917059869062054551748804932588362523605778642115756063027061383203241718449932828170048496559184802661776319491704088822740018276655652017922776648704284985989216744620037246969463151966974602282836078408969663241684599485903486625940780513510752034694560744109402696957684280673623200379065354120868719303827514789539427205986685554998889764061446705394906525453573827237538779235165406165992174159865731376201460764505438995966885193256254068468725121506323452698470126373952380376946707210484149939543215873179845280624941873466690135866664598185220911806807763028457973143189598085716385849689104598973440321294083664908366616897630888223155905779617964772362196928061155342520374019201138007662438408587174435078621307071741067597844295327871357769211663147839566471631619038124111980121178099174439154548396721398147386180949002355215143231415392422295549816306920718952244941938151328471641043269118423325508602371707470071829813509599297451259979967860585133863885249815078369325565894572587111644450048345065322854521339484447020202974820639859000816815105267127140682238239277844520135951127533558923028382886643353319700205490314453533046064981596119074463858868712783171112467095381941872991202576360943823724218076113730137115182896239547282236293641664312424783767110924604479880794824139519444362732956087531468213015616485833006786892867140430390029134441568376105754453741424127076038864071133038438104685849591951772741957805801725365483480969964552393094965509044424102124627348048788398008396065006364610739116683467380264355507074832439621817652437461722610947503323489858384522250380959569017664714388972800622058206839998963190296922966034420681832080713152054556482678881618061340980628574610806850834422132847341632880374480748302323832055184268186707463787434650435192384937389798804509424418778678339676132519429002580367194938516063951201209052000122970298412536042736263878273150064240682561189366835613692359372019112926148793440864635894826759069832564827964182462946700473835245188181457428392056365294536294151032319890722476877208989705811553200572387972612464771124083539995628071652720474447992762824009897731313599183349310294760827795527490844834964777903406232723421018313508737118711793879112323845089270871461089738246473124514001536882782395445410628541632496479035804616542397614610600118853788026536842161915510494894377479918415495098379623603089130517404121830033900479162588839747878927433317477437641291607009301210798387651076495454343759838254452035978236810899355642348543340494802491149110230801757200906912936457417195563628183649579039731091996357522177245254192839991287565369370348168869146532226969003887421795021051393323363238035813538824291947482412140708316153351149818673069218485605485832211568607952406764942472413109624403455834147326225429599373473805060660850292542042306138148877060340538336504186717446690789486280464399733914197470083102398953634789924627654577589566277024026535615999002558169785991584488744561247979233114734772706384557706096777985393661020382010913459859804984523308099209642668390078630561388542520406860095382279944554524350531277967602406443931391358853200483765106057107796125153176736462992040342131895557836048474027230680112670664819337434698196305201150956260511109180713074756825583002629789467716684335831534929396440501360465812066740094668554602906000302923591840052788845511707453846390974540935337287843107855728529061204056161378531426919439444942847755850475209055440433436124239656381077941829716560109296357690524105970110473331322722794133674102599770318149863433933964672550462065400719603125476095775057011950687160886473333634580707762795519171628825651014022274009352683738274631195746422583690524127873805941817033423056194453828653887075407592661623164295644033128470657385261066437916582975246668397255958979786362581766580286151489441990356644710001566890221440607466392671345103737658460187535985698478108610114190883534547511412902911963922091810520503220755053037366990969853983967329023103997361207766747847122181206617490730715351411551218854560633269166739205578830595548238028417273990332264349557754859721845151941548372659207641661018779766898629673518578197306265687457209591086836972988089416197080306450380766502845632854727873689321758111619364321259216274954423625026327182540476922621008856760460938397373659922645625387372602656868759760587889951590834167149541833813554640888996492684859254865312129949297601268926191885241494697466684515770876073092739518675373539592647294023736325716279914520805787281181810280192172636423979739576082936603646023715523940561993472659719617179856532479679510004278264568331886861378398171244423706387887284159344256265443604195827742307243365293019961623916694569012693921217913716506460332741894728617957225803957796313846215209705764832791679679290612255645653079497271755257636892388443731055323941226843322294703770069892533467912126405553263151084983579684352301753598105652248919785060563890966873345909272408751470651287216477156605822916133744591197504204537826339241091121295356282500099992050587473234174263245750563927850679801357729662025733681161798439505022479315465481147399424547202298904646732326023624144876369361339144528086038209905428043378683209156957604325415152816780904490575495828587701232130823562530748050905660138058364201957544728979307949073065943686727577148463638681564078661036919842990889585176579737155586069738973917546658404507539945984594658631598419069043334904464908051816382461825333441458990935356321005809282043100187953310056099949856029055460961555977887964589511234559866093480132253450064833410461136148808820388970833839511715356556887006051659610246330404718562031928849387707157533069443211819909541357889599764065165052357150652133495072713728098953450761436203749513984743111255010835949374521194794712861339249402781448805284663004897046101823423097954113623177618182454531809458763550968288054581231695031224031813549574591237789391148158796855262549543580321206245893832799509176310949913020209154668877979184002072972088260674539277656326423137968300012199450633599907427172249554080277771809704526601926161860226736709348891822657607175235592248500102039711802679768802247908693963776927369587595165041770714371841122084215971270241332015459856594051496400825724116495691113820749030548334717353906821635002165543444764973864343250268865132980389273466313623227921214103678862745638648596324799420156924061370933176541071628738189693567229178768789656560816203487819209780307316876609184716333282890664298090098650092258633625357557603203708727944216635702435728626048498064392696211678649585026089432295286485338557724304287890071534594955634750205910913718974611186091162389907331365992461840004867528101948761941529969366492513430345528526641120463593267419555603368945837890499723796552662223998994636449689333793751449585502569453343555659346540306390963762920335380246516483151884083698539301671543849396700598261476459233224453999245349893513247257938263634465096629226378396336086525424707380060369422615927688273396008600865286627778485978878353933404324294681722474705419846258554154581754967557624614267980470123904806645682370914326857490692814916907744446653796757304021741174253971370053900772385071856564944419523466656913259114900119525398763651972341562467307286219061992228920037880537542135471071234883162785766260659538857414065928978383909077846115057009548847076595449413137242572659294260069266440898571853229332869232553505449085856163846108163984578084579296382954078205695710087411107478929922412649918160331982865653628287414146329560211615388064533300005406401871462291568752535696232874636539424232600760155892483694849487902171125680760843049995052977286657759962943710587246273158661735395760630927823147804509248884252003939339664775998745878493533096735527013507591980869271674429950807717773930154627612249168910744099062559434733395365991043419845143565065674553975433071818034279579617180958588325315207296289146540517955378794904546993920308060617072637863353717036624495998903484324401737592898296013902310542416874101210170471505424072594651289980043417259637458204046874746422228937628851623696749854446183762995015023697793890353606077173592947466039000681873452513216691819842430977787572929486304921477142241293469262016646600674080031818028350132198834733125481052427322307392467718708156852957487533801352929409166203711980277424080456745107564687631857775112006152326546777964743308375017442957065998886449389311580876385895247489060152236384368545905621965132585590384255652142164560129402445925776188974129252277368242909022680404368879410535547522385860567408827003214862186560423984418017816566309248823116335172542374425104367704299209225428602566905607833155026474647696568181831817176012572479694933824065970472831678536605235449502277134377139502137395172851935157193594611680174351899701825296283793614865666260950706451937727669751686645922095047303401071448374526152796146621812043223697013471880735529521087486251373419326769356657002988288885079820253418918028680907343914882700372682944615878752109742891536273178395626953135645231306892601565917038534439272473518739805670759982814139687297589154752311342777104114959463603450897154475757729593118643968506917321758784412577693562813960282361304210666248697397216265398575787182737141687873153765947656338288119651447531320003400370051534219619656106877045778353915286173606677032877133375818714805459250140596612946015700945150674787621162600794183607930377294516932984917033526060674261247930075232768683280935231401706264841656255631124367792877400027585328629488335508051034910138520858201429942770149781185637109099952689284698704898832203787728926679879889643295788049798824777481317176087719266328546136459953204665108821519969525654091276156927259332039058520674099628368770491244779196029248389543182728688173750504733047777351351820352156865692102362208248551233424048296246627488274297638311670163198725807969317563134288884584498261853154175921808834795797971906172398910141471313837072587746640511691997844477312402044691929590786804376234935567452111674515717888468695772127371987696760576700870375224083079731124068393763007019311487095331371660402554165387624878963117385467689812347196582714055969689585922968815803716249630241262133955833455521108103719603366458188690197198431058586212680894532289052302330820364152832406811605356095036705719728148739087472816543932135615316259799259844449698263892844352220236373041427178630553863380704243794837088768015283442832227203204284691457880958545461524896637687756921997041800051858498997941256181915679644699454885507298098482679704738322533791415382778687788955561780388577104807922127569630222391416033207206779248355478652993823147068756968545707597006273771343869372205487772560195665153892835218257021812567380214074824048739163861823244720004031404619361491108809598260443918561848658470901892069673434229269745056372854248852624600474928564820549822273426945298772426541872200046845620070423178828787108261392067864270745046030175561867622348377881240216943239935609059463274526169317166033762017782884486935797686786927321313183306806208414108315032400629823105609349377021058929917757607946784576721959384648947647778865994784575354340014762299862335428468015805293335701223070346549619686734282895152183969881273082857929368390424433119844394959293560830563367961998722420801311714226563326460891713189352856885706447596446068534546272007065137703886799563831245647996038730549383127700907401660968850180391276136305992841450811847531401407903315433653972087430343388041339210850840181280376103161632521253922100766696631021795782683666589296451079842703182140925847110311693767030098964731654522024523099467020711515507386678086185367781381501040382159139517061081376189708846761902063029758179823668222155694528320899548861159196802605862936605224964717401257238917691387692473801083438527476146733722117552794885989309432838512749308027663937934566255536118135489860288601977301641959731291915961984337098790213164976905287638435943018203598333032265375890506464895726677579396775871251692195422189674967216791531195874581329135925993984835476130645813371891035478452551680630555198198596314133145741398234690786918261871392900124487268774562072227411530960387670238898708334868904740024575834907757386862396451669130945927453752634570639264385676433247886556175051484732576446503729934317885312672293563601528960098894912337035108337756037648117495889935309167784902921952425962465806313669809110856638131009644420795371336038631205000314579816292573605919025190058940994093455757801311977862580535741669616344276376526713041766655680818580986631324446533904679273666800502255456128850122077008987930229904331903275583178774907726724385628215267370120565473765639428207506848595631983851363985821938837244815571631926449858687934521408065449414688449956494171793184367793526910968428907593064943400875932879852086809997916684030185576117841156929032426530672044606699446395570237666095952304698644915947312662080783038290686978348246730825572561160465027560559666714860289877233574546392485730744760465964932885486597333338065932574532060498673432427543542814845682632493134584421017091955442365155636356032749384880905141706386905068242980680547514311875400042794519325927880956088814931769741313411614678644067051995359901372807642549530830276764440436893695138583797334684557595059169437088641961525047367995420350824268444607238078115140139680837726832181094987608568086433831662037012111989427604503532313969482233793512275997315715649444941950861330296456022762051223244876520625850549984552974256996265297093915298462956633184541154200155415677229938220716845195721275675568087131221380127679778778285935373688901545529374621209371173027893212186598436055253038625775342406837984476448586673453630852537847575708487666720431539233489158158115213828444107313593203692297799903402427534564501766969400351194037221324506412297733544674829638903725843611932927965768583020580899377056702056566606228112285814405077966992490925892162807606577569758997080814665744279157482944902616631490605023698573463686125715918615228649757643336155358763814556728126168626798021733737172245388477507689694208726431643079484332196070115630368270607485742473653321554421433569983521126188803449970616854443124124397716394580397607642129159792553618761886348390704830080891276547797724521640248798026511972951301760653261417950837784234225935136182719178877069333935445316682187542223500022330312877311153753656988689664636470715157965619880710997252621485425546019267826318296805498000653846178422106530542539335760469672247290039742414818833591147487252607049198247441908120758113994260279169326051178290086810804751502645769443315875396728452246335723487505000406986809552783435583894514892142069156906296459998335772218182237995131084530588129212835650242792020716519018143546420750342803950112124804409368402592884460559299536159869030653025947216036389637612646047844585424503594056829327327439373237237083444415676366308842994983918331196768104374822132631119564306558755426111159589304873812568550313862526837906131082636042022643592045892652997881936121486103282067305827380456143332422536825786880366411765795061394525284928513523612550810527319549048258417789026084729250909078162979355036458624243320335382180750485717189305790833735046361490395986582475937390073837602165262203251695734956055108506598360645565415786237888719052915464834989468061598021911805637662254062957564412432613101387602768323247320296306623918160053557602167703937918505571943854384288994206588979287169437214087878464822179831595434070692609716833077239717443210129077750377778557544619212056231234261583109854730708850916404363686746759293763696603378559223600672722616005823214973838639938164203702347595411298055140366637068181231633405141992513102100782800700963116559983916683021769160537868796529479816299259154945546657340958057727480137320639195929432625454821008420469731076685975427173303824312104709475567082477299644063199137978963543725159910855086017983881237510851232342599349048812233703861187655649649310528151379780162135969845699886553393839460590830509196043822571820595024617555574938088836149964035554714948733231409970486465302129806322554846636712217881526333808242990456167244557315137292819029597696811847713720518498450192777300603805148805002125926300470871489252498268790689874499519046801393956722451732787679444423084868574818273787850314632315476445273166798037689066759805894995121284328683285092590209944179669100813489686319993181886503421716032517595106541852587248840823720373915914690489514125605256556863868343181897566207750570408519266411471475513874544508485779527959327702638752573444578270827821720964027346996961416952312131575330127138128116118581695341088713411198592555700091800600938962170295308767900761240470992222304270893911430391449412676336788776099253498086257655284235201385650187466435430035866465994861080005708901960821769739350201716496358253034963974844764268609051921896089930051925007257113505407093580724700509573730810796786716634927575698777762370835655409125180307582240411267480913139277264680642576196302829534104859197771174569077399809697995754530614333392770866038729136998835225089654865177841026027063428051927575851336378667865370727312559951639292227731756157907550230109796350266284075193488460912036889212501921626388304917233236720640715469664210346470398851845800706627739345168711513580117010855348393441161032534360809616292230012349671995755906422792940264225102057747401690556785273018485534113076980838890044173173014534313017624699483644113205808283013692265855577486084151065207336748163199182359127257771478871849537544854070008091027706159852720810071645484634351652078227464950048888810971714289341235867827328810036994191400350016039720255647729418124935908714639413670185496011553543083962535055845411011062048516109270165160899510730985188358114526471538244956098195548890559379989168967819626482989715365128316726189196894867314312331691680880862663471020678683830285882630279872038188842526692286828479642839015352493135448263181587250853796761658940423280833499245993415100992084346247446017047635905899930047941539456620890190431688335129334119738051212602461040387675995283988280060767740281307263861899016918418844854349294132275005928378116409038849257466229663021270181142999577534260896335748732949393467397968436941360755639770309281320664713503688410990951309328455034504091068011414878474002102246053721802511804845474336757752646539578637079480843375889165672962054238559304869357633716244671285652413415066582535732525621862847619184068720742925929472428883890479381369708894906075658603724503219016548709119794424409204062413654255537662578331686220227748426665079323649519764854734428295020893687323626196340343089011709755836122563955059609436660050295989350478329102410906966972776723399680997974706479799111180158073210472338355192272346010289790267044885135912257384059288066369793942454186208948603964640866514395802873388441941899498856080988362145988105952131324199786618545150026117065959112441560056531643355797323027251247362480975010493839677384850373764914468710151921777851827094650590301113069573505971917759608452517026700901842052371592113189480473513839331889490852851459218633836467192141999026884522259543032917893483828698395251706466230468592908481120174235531770661431063446286439184844564264685578178010018978646262879124655107848760302969617492442175778716537162877285149854490524116565770479246631240076719130509105180440259436957508974519848488779200142930001053670411593066720828969785600609621473389511899655845473390375536942853151987485297713423343553342933317167202002620289198176161619676776110820053659194197007718959775662109386778089136267095396961943278956174531103546065752761975965507596773651792318543167926489466646115659422836193197855234878363894729307081465191133004059036469507410393375114121912069554967397916181500848484952731930858434719485192956192587647704629168804371700947983131793770705453657925588147719834735013299650010650422305719812820517964613480745811963821096414685866968999986476313646334487985963216070813692648303036067196930857225466864472035441292747677460690785771849272784005864642926958754501594614889129404204070070898652562421850714295866658859836722149785737433033109082852837028792258555549865926946592889533586523216066213708511020244405592632613529898898968935245633994683028289727748777434424610779886411976792416346409013496043476449737140766379817365494805773567767378281928053725712123709333778781451932901534534441681896598611518854391673198272621606629026069246237744558758092508142840978178168433413242862205538434340312255497528967656430055995856406255300349500917938024991995880758729014597993153134146405467741005673120210519806262474943026711640248378705282684609785427838284937237209754440063601839153211356945229646573312629871140157290486789713826657567254639815575388629238210712215262358384332085829838751923648084640830593121593087842919274095124038027291156437545800533345293605287015696801209538090782201457287377818416791620886767182493983154200073841187444682727686384330995634894063979977239816718928698436390143983015913041233028006625928474608985099705758805928123313280750117347584328950975594589016046407184792288620947495277628303898612017306942265630653912222596663268243549911365310504074323142515186978558177422797072702172875218258860702217352368360432710499405980356369753419676607870114848851306278088155589872847119782141997833114186934309461032645150297239387169574014363342401027868329531366747372340697416614965274394394669360013461470864592614638615605696389626650799736472248377732075472783619612494639353429589546989774495687656774366236649431794816994887821636088834100340429955603791130708173991853034362294299550900360713712943025114857231317537965479782386743153321580565974007161987378557313308442448967219257366590321657529536813069075470750637160759824634437052310216991212781689458085486024860832991141583838534645770098873798473960045317989045315136505060028134770366866388184970834511341110237987750966636530219313028078923296617259229929506727442285416971522166356688217516165430228161004843797182106740931470303559748433884479488957189286073304793576411050936397874636039919562465842132766463542179514617994869277586325625275633017557592041736111825983738112568129808617611247620089337305317711767886281963042679827183271667711059565110096482296111129640434568641094451966947072370404033314170598111835642464388654229344578837182997350043793775953586141024339546086329460296438124794296295323216875216816094059202857510908224261153889339353313370653846490112008016851411917153946051385163069641990031588099539009869818885125049201000305753005890375292471590969799794981068025361142058760522957660897042421677505766421495750798815111941646449996064063040528958258257969636430896663901700749516155642309650734379041701259515573967521083013062702024220818199440148406427361456664877806605831932340947862505520067356869364774413588593774432238090238788763440145518583606034876127616085541336291492721309827094145952156082088896211997269350603690998792173278625538297076476052197612292489622841164155565431865056823340232310018235396466549140746117794000191712123417032387359300610279551050859919691196204777493441719424585952404923256867375290199762362804039191844331991464749483683929827540426322529471719999522599476746703446964484155707847449364919992511804664466287831326879004830037257097705244900050906661176575755867374214288592408469162439167776708716139635243444552387115735493726295700649655221424121545882731587474485909400994471372766714886278240035887061725839148588043524652733620820390646123183218203941042213345003548518286676132425984482265288278265452527397966274961350121119885439204036740963400082533910280619717798281609240347895790074771346035636319142045043842288478840117357466515725123248395385598766946474824203381358322513170201694355598118898085375249572017753039017761127932854094557090049476378472169470436423791421630389543364697918739249709134891076196683270118046744406972937722826901936825197625341609785008389600073082487935407580167479116656332969010542510976515737020579517900573241188544626967928014120912198048564550519421040435743111430795713374189567331497688477214363379031967346504278449817697057586518698199850158672634762690642082820377559573585403271479230626946546182076888805103630695690552974487151844675530613383608996002605804370054275768872660244502151928127603142403842519820469479798590162667291798841019500459750256788751941922541402087445949331676370628482805713302741596455780712878116799208328782709315640026933461173767314937337184253242206343635405623990905609652709833400731882279593649667369190613877118990811396636644719637829101053561994314201970227014093547661014135358861139158155408842590543836121922211260380277471030005208849560618417375524216276040084630208438133813139164422334356658865974506217331250296873284367774345381380628619685605723318042537329141280205205153387192195429455243988131842235678074602701881674321014560406727731743004598757755697389819631969223340693452624951736763650607507696670209247644540593129288656452373330572539123511177678193936580174882082057674487181063736798328846714388930244449209332322464002641424496306001833981939651011795729250797138411087854769767543799277398454193112153496260173246334688591609026927776669444391670531081972991411459564733135667751105282390582472060486320371732270119537402667738600075195806057640715952155805528157907564176155069488806077795322821085325200232009271277349850611880551904224026211908039631983124987914164067138811186163267550692605649235449754592145084850827719878076640295600574933715749247520618592267863256065198282037794059611295017953869902420719246867927403824149411122680582910155693039145137911949772827709359043970536848569158245529583500427307091488166993487160119826226170500917137976025607269265349396316942343785825270395720627278946450638635025729641284768374418754184990137328879840594919209057955608893239020716223949655716521562952248228576324132754772097395045986916261214666773408250371634530445078868710686945357936781351311285047751730634030719965859694737749933146654444051645173749882281733513202946396530899797768496628712302001434812168778133759756690076079364595976358661674847269494841194082299319758768576976396834850645061792228003306152421441005597724260670772353653507411128023402933651612330914789708295750083298720029551168490306554231308329176779652424771589767363034798448030456966652331850297462881256301927850854643484591446592974400806065457960461891565559342466254396409323166461382184366723079054064721413672561976430087323778197002075372349768213264614184868459019550481447918705659302878705109527707886561819871171284153298645243889099253483442966530746921907572030208997966219791078192091740721088299193342810204770834997075319289469853475685477620994348578423977862743237136633366341919535232732189251225303964157999630603769137436083242736127565990460380718950504524602702825899656175887430636005812110042831648451946795604428886182516944694860402981118146630053016013877109445587667382198194376811084898927031339059486951741007336277203596756492837582108054392257160430893986827917973238803628511920609736640508429586492611048722880501388321659699127144177994942953954131277022245413324349841011133920749068719988366079559426896563648250505643483411877647514012982418448816620344822521300979972844879412199118196609965109902413989029897978650864443578470879352847991236558493811167960848576081317288458765977998065483280924896117286425147833380216029892976493602550810278017116202293370052630366836253445718325539334093792403446006170861026161856346248911129532965500108522287805272980775941189421431559869704367347274083800407011398580957832868011877843639868260354912137779210962624835953288058947925085539781037220880238942275669975413575476892063406548265887193690878381018463696402795779991123324273251205579802814702341992618766896968397455619615695000205806622974502801459056737271992138824320319239827888016033069283411502857816379351867746742205451362102265074948318397502835557543791854582431679625085025997312686995496159882539372664274215773412297811619908464230123642425960914695012551487464637584720324995675614057072648442083127964943327411272682973132726609779791541999392683541588809307482851016048346661425372916982220482360919364139354384088197393638400036116804115527257541687880289436262707185264701098065749256906963176407192269726942866942491436297644273683440529985276893391156260966697019249650161267311585544978108366737009787128521169819891961087884601120721435097977903902959290746730904069494087724860689616963563658405204717741386022514134661063358384534110436562793618109208777086535490553166091903082687093871921291094765446139213691146226014756138486999770117119750917008515556656599419050575343894586659738177931739529764971510412688461229575344158083452571542733658938877492755709739082626905936694233763789495040379408254466028299882366317878099034238034621062793289758684685249166112424331917647336316162399568944397239044681592970716601796850506511885361622952718008069970397657097654708920267880677302438630724972372648758817109984079891575786814407507988355969413397875474809372449633723774749485867353628817414910402666434893217204755401370474512643325581956540132485360139044138945203676201214928100229024837014023193514903299504242276397257912620605569407556231287751273754387879985338434650125607485329249682763151877541714079497786027568981979810824302179656672164239250863802615279019338604234517576441199559702090337570199662145172567276699573779586819399580029757033027983647901722842378947009238912057295421290958713204640523098300994427086695381846367837708489262111000546649530782884973992211964776595636954038798991076780820337202289340096539060236672116682273356535985549810584025460436565636599133532057757459967232410210415738910484651879604437435881523342931416819200842058290475843274951840427079311730265644197108590521794475345091584249486291534828107335821928204615549148148127912739997764652196056090975242243552503383765731439180603587774361271399572346883123656614499331861515703329171882492464546358857295342661085387171686365148378140394463027732675588031669057947024657921532297442513016996173690998380998449739595279043517920784377863328941759683519969860256371218634425543181696637574461525618871144845738716608069231944057534304723373388668132647492891938952333409203379024807925108498009696681772105726922448218464266108606454455025256573261573281503947914309714472173474565512338365524676138956851098887818097650630803268476597756204367745894296337143294459282522902189165870104313869461931810727713452616053833941695285147797574698772963848200393501293508548690696718799338552385251987338974973800019579153933575717137150450959474719072749844345783566447809605845118869988038999544932275314680547593600013718740351509626142531870773409139860107527881452511996419657750362130814553402817485191055734815701802164883981322685405943601640838554123257295553669785733476762989255736541054091008702398025786905512642981667168115469197640373322014941529004380608195117088862529815550946764267915511795821009637216065020921502146020184056676083172915885412711759649177078592738064149654333076731420539838446592774455219483920521744999470336807738340295918908602879468716525255738633821725557637795512338917326386590892047061237322799006766547581379307305656747437368303755276876873319108396097304885178813883794427638862024702135107779011174415665996169612319816927821594014681875195170372186814582474545230553291990088297970818401595162850218704700127748491589685907224886506238354344574626068387369479064459157712388564023961582620513921308442902187011266985175870474812277096722421093489761804944772545305315009568496262646988471054400974549593766807734597244179632292104970126956161894374753778275773541617070396728624168631153609412643118567910127770953829587778757594011239573367168870724548321078641593825685936965419000455647157247016382780438317023114382456941514521568023789891755885567851310823124429200503471580765722890858757493728506086605238996450908997441997037035096546495647536189548302776483283004277304118614855800293384387832930123095579797944989605404795703366216550687884360225062792774912650265538753536563692793733466459577701303902222214413832439155197511329663634804689322944646565717746931411155216971866950320591051780570013246009533559509673367620642997163649073913251027166017254626593767368688363661405236601928155680294477959609657533399355230250580718652660439259393444559250783827210580551861024933355020043477470190017153101308133656671540036794917859737252175246046275222272094117862742259753480291223654259601937527396859080888346332452531682354008290310044145125514987721205438529857409402261586255995638425609910095688283954976714029468894421442086795387113869611986332943477972107406204026709182985366743840343547175529968053074195499894026341236203235795672035701057887369362474342207338120455931915590236326628770050347504720976608270444293196828712365844890902578912902458384675350219660017018936568363891417195039435246340530945352754566437987563746055033521099202468313903987083331432635108028172088510655783386884334092286777585775925767485710217550853651132043344103873843094076261672403954891564803689056269089037553373632494555413683110310053505722150532037252929792292072172938446335538395975745046895619155752578526020952877207093933309707618023555187288553735807201655333982150524513005533615061849167945342603479815735420949577267661931944610035348935899372669235742936631883360554565120770397755687441071844211202343570439832541260137508139053092526026729896655771301541173426565897118063525448473717110797805661824909610040975350170771908818493144210310225616590934501857500647331641841144372071347068305172688967062763791017119987645184241640314346526134117705183015121123189157963550389044367398520230793351422415333954612159538876196900147411693440054138358217192694029508711598031926245668782149712219052260558644914681147772293637937325598241491190651497022413878794063624040981595775498456249347666333172009929000519834276080001399966661351590949036838483381577756225861515943106580334389929201183621148116998832521234134801257957158982214922623230938753240736483702225273614732138373847765808808183034823816866062715100477787784548645478071372742921205893272850941685386019470895673879754738072501393774221582785979065526840879637129681216301272373899028134329673211635237738488760174459705559776120858442829261892435704519988456706388228230091847463369592722220998711127704711369207966331849697337733376650230263971688245197484764838879445780864690226131566879338134931969669700332649328156648040708427113510364722349126591123938706614295031909639686372833000634925789312672504577595384830933618308805259371436880085198151629395871709194649355392133398045971369935465119768820882476127093932346524301947741935296414816774857818732678538698621617991487457270260670106317375091536594127487575459489182645102290803793454166746155373166625825820627780841629260110791778527106808756587178122212206734621875499940669423569376565927846690715869480017914282401162200795074245594348412813561868488191268033407092974058671381342850619893530600964057970193318184921032397748182980321932271690155274130579925595774243781740570446088906039026998649990129376229540686292393080894429269629541548538466593282671009822796754247730402875927654598838308024452470882725157495942031861482763678854408289013568176160292806438034879231356692311428194615190273324986740811136740811124867570254591084142550322510288824607560150262224908519942223328463742714339465838634608181327858947050557471989665004036723094086753508603611974986509234333121074153990783827792068616935446853938173210616995420258073194874786531694483771753800005382221447910950467876346053262826422982881279377346598258130569735630652034790875975891898143831933254573660308416806961582446347114079192396136398430896335063004383897929939368375274958023632400083948610389672213862286186135523738794375871288903475460947549455891403230033848692570078033183163377737355806771362768057409150287107703342976757259014333129379958992450854717349691009065907833721086498489936902053334638087266629030859683451547772533393015107084180234434214946501325453010632939744110129091872712601745591180145099567128468301863831328371675978247529539379868621689866551043304838590327162558464141836447489856621539558007647116694530685331462981185184547449905107057405908437071355898668635463331646397881220338672214674845808318020481976269855061044885382055655358713488543139645416107639999016689165687927697605401771763020888132660521869345591849293572329762390614801369614449152156621276759691999618524852939847783319892598019563328698195342422100515279231583612829764733104274645489502549929336529276449314729771278434658132257091492320505740416287857542800737746914017694510028543331701817482655693370035012828063478528925757092473899605173146242589823052150392962192648945037466615077614855672291438951643789158920291073961680013152933340856232553542328852062543689452374215663974625747048441803889458539245606943211853826764575002335632169871238493164322711651874900559056184419496270791267768630766334565562084146790385766379496649819150045662755327454911831903036074879369478969729274714048879531628355596680437518717846275794415389922662458032892643680154050294163194715590825726320535562927252185478065831563229454858802521833206146115941676351742648111567863596264608310022194418835713526934477459816145031656658889559521523554757058677627649408969153569612675843260247800928883441057379892957518011505145027313669771588718276370077596450386629730962729621696997545047325163580276936894324523222074060451156844198843497889288647348007642916456219914429605786014464501983282446735377222910209298406358277757108537666277486742328076319382872138636197334489844258046873167612638326009378415540773836447537313734749630861295537241059186291930879758397274068624148094672807369742507241549628384049996344384030781147197427231499204545385813278224543334773065666050287281194057655764915989651920286105893529425538062392968199814861630387217580048072946897617879367904978228815800303084206502297579572287128518282805266930788249604274760160119074978288148099572309727838298142785985177942238746693413168986739370755367822717794390460676129096147322950685504361907646617517486079584193290436177203822798848690686031432208660840349917658980055751388221786907504551004606563894080829739276353930729676583365936059579425257175696035203244391514715733102043255236380555489267293521179678756642574782659039818227499478140937109516858089164751364384731850042630107585639081230926339863827342831404632954300236356261122186088177700062793010990987352859110292128873421425203871413629312623149599435652098129744575299112605410919940640777128834037863658420331918091829587511355833344031214638796677384068219680479730529177040575719302519445688405208554829344587438814983656241933119768728327017625181205085550538628915142228764504255635290302919090946736170573574855401006748936938243533390288275244692239585358891588752396539272323997841669823354373043924353848699733984194266364397587713303467453696554651003347367602552619540876735052498126491564632807388899243235566235860088409283829088292806094734336432365763405994364457789858464244872826349274171088409694158633371075042469802088973098043387173006605770869694652064827269800057708386410119026739630988323349012977359602717667377189134375105298169030737239934721378255376317838903474282069071246628396124187857418742756711443199934398465358445352588269561648226426389080297079127384416101119528542215906628052461490522928277743287068728031039768360430268190061969297094845783287625685094954956783552050533803588692023359074253878581091817956314277592186168689748974819757283825877799678635724358359776765137671332764970796270572274876666591863113691305221111885208421224780853411261098152816436335752777175270565955162175144973052166460097355506283532673392010917124580880061963424601401899916130407439690077871494214510659352752852675441272078603264570416027542845756497369962371180190841847729835754892307812446655282806615256766713977000445202455048979295829628102302876409137191492267145320676020490275574232089087415871906971782743012700963018206844461716817361974798878325051197009263742018790797583183339431968160181635034777656873108264512815608107619361627618162265034871109252086610296284468989743198751907610567742083982085566225727842821144556502817450183933746293080809501689688022611112895179734644070383167191139562108743344304677898995934578618834886162678260675259134627515138429688454138611426164571856901299626820354021048558579647275966638311902354018262952883223930669931742835546069548301449734616536392296456544246461688833102345477647867133171098601826950869753220576633716295675371088968243129720089752450000796392314659744784951846970647733638393309146252158803566921134843422495936993409137855697813841039597084573373529037865490968884338453180328314515294091770808563722348499592021106686426401251488445464055181004910560961977016886466432915239236095904389185784838859576694592984232656631061824072616869064201234032060592417752661571768147986412333228075458047545394312679375151846964815391689015109871292042762722379354261424698050845177721491491734619374864191280565283600806922160300654050292483598239523414523766201807704802969485940462910209794061825113617400367371881037620145155012497107669830603023736105000669211004279541761765748348217908356916767835280742452452089978509173194614855008833771758715208429030031775038704204308602996717004117732982523007148608852734641826251960862532941324634813622977139382220213040261342246657277861356921365210938454519936477985652505346727357626140345356631899353783679330148579094427255410861593090957279427205920074839818893582590359805504325127621790799703585780787921549302011262764681394093943472875282790210867136023168994127423586412164034570351371065176314809490894171069946317978380013543961414426352141523460661369611185486956186179484927246660961854085396452049571682586371843285497050668820262939463389093517592967010467358713774961568483373875176628756999663585155201731424648412424714742226143846894291613298788300403399913275701860036519876165684744866830046644794268784061505265015160052505742771624683211673737261154566301078635574596982339546608664875164483209092007527562550131466306298435902413887405252640159841510161043069643391544246599115067549558984478635668560227173501589174541268937586265466198916027895909187329340309043450786973221818480023516325131964621416791529393821353637767885629167854084992512097268077949473521538050087772623966040692606381588901312232164642879976440070410584600043205352740733819207823074268567536584118491034626429335825860081187475795277358457656064596149515448036431450024234835637717652219354310067532062921979604037453659768320580818466118237339044524664575448481821836824380951861431369485121056611212581822525542364822759746869459852393985522925813821442800558804244292727381673031483880848933401534975084053736284001068021534109125592262269243758831469358756649906786268379388866036998809153068534392415869527004905108448704378336831368628974971346316812494130370801689130905045349436800718647180041205023373529394132016289832700971648539601907696513406314797116512307842936872139714806213635457227383511041378104316379068333540311065617049089458327423548626638300644591622363653191470255937764040300273713623948301848673827586220980808581788738986142374518935747377192341968524068050844477506145462844984479188041052332760153224346877722540478904935689606818573330969792776341914723520149974775411299854515078982572763337943585148501944115006094727604067666014787627431896816366938559033021734940924879918455822888392731206664389356686830686644770226624070159954652718749561750806763260031133900498371824912509168369945974846591006320368618591323119455592608857252510827891522495282197683927350505565706006520581646491944953067522489824880695695087513794938388560154141251983188336642037102075279923920793303556880249622553721861871391127856499180859964970435949418140602439052366664571186379730280218242721667966183290831872008898341865235562224592797184862533400853716492203572333604648389357689012050556014652596428895693361409504594483986498899334709205204059930217584922873878331027404954316126490769204462278826973929131886379346184857239056059314747534405503920845752840949031268002813959344555237560143488101748570996896889202129317872256698354316891005327820948746497183617618173805758025186151887607885231847339649856444111762936602875272126464296937240167977858906842886618217631316949029062180883722900632482727400976880650925870677826303061912965575605813260102854306142048655726792717488026853088326237567645029035043132349207414597455893116674675965453951821500132638613781013898679064085031801768426898934435892524246439738901343533309218443807965272198501826699952736056200653682535896363374502826092710565348917968002167086585924172406336866412561796919242997509306873526179946220578634339422101887888614701889279876670315457948124951508618747557384268312432414097199915143056386246098358097982961833358987663449381180986587040323887240548781836617575955421682537058660279734764300532418616054275797946903600206319152916824903061110561788095777884817766250026702462256242791838441507039847257384098053681383549105896795198996529412100437845660233450158755732115146055385319676272010711723466261057368601239066886791563294463772031857941185513815283503202779659745184075247413466522598952128558472208380070082255793243969138410945798682720186249690311203635294410562114134791191076324776341002680859996049896867156129431984747466013724578600938300056287834326852055520847032171344206942893935844137168154919947366839072223228219501335253764124141049944263459656476128180486675013069218162647963488280882162965706957687164385247414968906014980746527588633386799156581625731783415977518889818407092668467166336915580799916454455460622596545746156227579544997582364481581645336864198089456160613974805539337550379792783893573565711347075335439643880691034876837349474950501966876091169805566542877658694703399792394324826449178279360556666029478923987657250983749556967811202271295744832996100075981613853509188988275606914200407976624482098612831429930447492169640484791599461290385290339504138008513312010165675543795741788208831269027929837890501392251101490226309154757507060925027646784695124005570982959820305043628353160514113716725666654487818321689198013480005371844300462730098771047060589243179364788589031970965776569993217174905831545448694517866146417413332929649559477296978984659333824091368746311306727493461261047952542110170106197643464839889837693773103644008531920512508572985741770303732737571304072798278752965521706378168503601678062014460164549279662462266027645114489385603661807763442839796828803146008186046542355517900071718458744758334714061221017209734339459658228410136119874256690926888738422032515452350562427521102143305101092000123907148560565124055683911285382920650139224084595239893341115925016524025376510448007940605464228361225604264607857812679988329719613059374469320558827327408743355689689656151783252490767305160489644515238993940980138093851875467261203990669851976446640891716927306228749209408716077927781845888680618256108324386552631794842217203384087546525685752050377598949794994855348752495470179674170628727186195504216519612986081424175567246453460471408467446082483584722834404807534442801637135414119028329509914696116104828711956181541441669972074865465969041975168353766154894833845641232340494173267001243104913829191699047523294217880118156979881425853465493310626228929601994557045733604974446467502390501857647668982147691575285897915785448197812179247755194944165103664152509087742612532099034366781663906715678207703806394727758167769817189378467348021650519669438142468314405934152570868586032801783939308894888388784534720368138442206946833244620437289267898001822898571931788044768316937194089599649024847791064226235176238951729380352198222109554524802693603771855806921256526915504033683037100638845489525142726444375792065525370127079538359365271014120914441364103006617092658347485539551176892826530213045006605770919035804890465420371101314657915485763211654167025185607158039996852590419623230907305824862705644407493000129623149596524319898629981378261276190173514357149641414031759094444594809871737174337031610221068160926093313413771609816594709285602964394620184345161466416979624225322319884133638322384516573258906526884550425980328583375264218366847401317560969505715357853566644545236735363364429618180905085321435476216249576363278190229185861183351652419391348740754968212055270811006722807151649483616232704378761083448849885003781455157056900924924220109202476309675745845096637094709903896227652893470528989366417232142719737150507624747565603378039130405091544355452769142877080695523305910302803234392221033871196713181534664244525368595364429083122815691276222551803037504478388134351281376691199432888850592112598927216630411598952744601248276168552227439442839847047624643960647165665009681003682798735028082457469051942138053675556150418083219968697168120792363685886884276126383214021352292963708330514181961366757332354956494345285147719155208522110643036673284305229589652458535289715830920054841317596560730193137165092015030651195405817331307056253102755059729447687600993305499524533796633636170757042344186910219603834065794336977376766213065629758790184699788610906423338383418294418321418901465679157485745600849288745608432994296119220168235011656302340362663622036377475822907865261833486155415078762110356500373845959254798535565802316739305418696784343185372768243944818729278145740706805966698207470929932799783067233466869742536657007017073782272828697141504591095355272881907114473172798118024962274392488466139602525242309531751870009686055501081130227982169704937193357116961997805048183915048244074292244035382261318990112095872073440515898465886517603490481003753682622048962516490679842022904677448707122257405739598326803462514725690476737063770299667157983082758936128904699680763895640203645674430699790716023623332739443255181838381073153915764909736006117044150112429471201758165082032321433496562179713096355316498692257420726170598518692328192071390805512892411200066100591752597389001482826529237864858511275830723769503970952769747277873530328856429958570772401694405891478954927861976292736062373508245914619788601974512278082066655347331244821979876683925526489645043992645615541603303567603901451094207313065012027443669540806210006646082904221851388684661096530046364775692525773138897186474774597051678106747056064444663601470596068762633986658215034388759565104639679031780007683886414374671778023430842180354809877847083921138832983835750033549204474963972703313508093113636992908112426333240166797247806773711543071993851611653198115005276012180664832257553044460394659229981093915540373808457962575370934510807695554367569405034502975190053099746373930773579272176442149312587470262786590481903605257130320244968266429606357296157594957064914726254437079057044047899628457162751114733265165478919410257608553173633545256485669347710650225861987993778317449411674503338493163386173835440072474090507233075208712058499181055831896717933589732235301368587837125294111755057341539862743966330956881350922079820725754498307929288157187512050253476232123427235406708841326903175727312803049180477707942230447719165908361204279488417186281634035515409445065490298559095426663511455453567928835540904718055933841125817191073174300775279026816115499800919981497151187355009260046462146195843497859762308193144599317730682663775778051692985052743846241580892252468689846285689426907408450691053501109328526574706455427145672290504671484000301531539214546265250338540435279725845156846685623876774878160954123122610941122716520066018069890284450626011820421349046904826703732584220019984738172551862881090150250005213235995798445281662564359085289668862419486520437695642100281299754190614770660280891030006917541774952258471111574863000948426368611800140460767721297493008802084616305194760132566651197435629391434212346798684259570167931834524660412382985272573985527071990609048588721663391061317293741534160857196522710648649677768274428951765863610122566745654947430267501228785612909496467701695896111831758830387122433203342653700049255553685275915524186911230913454105882454769469420482494866603227735264280183597576472046033497571350902023476109972304043449998155534405825584260101239620341881643350931975249875665551298332396283798202895575961082193834349909530992452603821293266328318660434781725814542142935244266134551453008289285128661024841932638385433066926340479952643327600007145417924962164155099886363126912503522250367948275374331608029771423293735800575863241012475115000709179386293046488068186561658328936250314680440888613665055450136271088153572108856669821248319692176365006993437209732711934797485109638001283130772984747274915610475602039918260137405440442820860434461019849932992403995621430839019650057636208789268619916574952024429858635468180228747739952292257522617282501146474958838477539708320602726829690493948999844189270396018993510933455576242402675287737005027178750980022967195697209924693028874750542311092437858636173503173807540841501813722397229977599743819496886766454539241114729922148017010010662532261360111726126703087666002137729646361585570362166421098943794301923558530693982629535021114041137789403618242501158200154791922524504152289823863053477734601190171983013522054817507363576273301669550076149572140302847597855531421484596564824411413396999098379445535196794882601747598482764110758604730368922286681069064217143355904605770048226971644041747592926462686039297642569970813416935234736715379802733190441314950917762533388533502568849603650011994233259327808125872015753475772175557009366071275382345897773257004414428125085537734290284355715047643269556880546274076381388896289818284397716880549073179630546240593106386573075052830563521256141205456724231415587101659918509761660824084519756459603541424197443464529637559035720110496842802596068638069484510966482384637202076086567922235824113896840188493266555628902957125776735039687858643051793549102971855848392455680654203408897014982307122174406147327855730411679424686222861618173607980893427135046058238460414303578635594557135542424128287657839473229902627899300081581957322544682926490584704424811428983838301463654102025546239379352837117619339157018111001994061988341251384606845315995118812719717335056677737566902733024578133887647904784846364619358029274481688833113644645186677973905498493354426139987988817859739412164191638926241994370877017215724327578659459758978520883521817910750307158974835896670508030388928394876546027376215343379630525040633151063139018717520672711590158584056283123223674713451654964151870878061640553356949656157263008054402122089674688958355942960191375632700839586260162764234515181777258008241148207928105241388240591902142676657542438142731265941722971357266022433356772888761394792610767340334325026010341241298845421479187500268069102310051542262135324222231376831171512525127360908731910364739504480387003547143339460871691900919310026230954735032818862217064015617587382254361099256642327812744058939867855784090901685777302047599292402379860370440684886016296713199347459023976023696047953878676557711080316934901942136274094733004917306520294765542614159630165312410299119434993428188019952027702596098714762303977011484407386684805911204875028825053874053032158188982350630254403151503690490629696479445100976079110063232997564066255312072443982705753018399883953071294815826258294636675849622358091043027108751825394851336745329177983140921998366472800200817849194068527268157865762790419602757299923816001324574316403819596797382468083674112656415457264511341209306248259344320700742603375345585353222910512250261852871949998588220127637133221516799048799855302471184396503177057707563208830062437647943648303237358014786384422195577073159597946911441896157857629540477423065307050965242527717225342073232633503387983823620878434112558600175648644402131617386750294459603473764600572501036170613530420014338763681772185147368888862754720184789386247558798561965531870783665221880458661651387301540038839391076633710244170550639474800062333821749615688180150580275883024727413287010040314691028972295292542200242984749528603580167386954755121422623102455636849516061549821863651940679331321837750089607255316066290756088742927588932609466669965310939649012206204864131623238739545630356189087897600087685939286240914836515379890840176059490323610463634657950068724357511890640309113235686038705409970200055602143504519833947803419173064089846018728606751881398878225318174386545723490132735737654958430506970160986234046803448066270780954798749911349000779551519280007733216650314879285203003944611190530781564518387691107140036247241509846357131538344492383487102794989445915810201397818587310064012806194773418444691308909178111861552791500988658880172532789431578526240370561962357045977859990950225983994317897537195856209932133613481122078008178515445396537905085735664373621495927622451346392056022770025316780563658558983655139677203385387021386503876105593438569192443093231867379613461239413182220605259076923078371146012153172387518477943303974695982363219887997373695240040551582533164765263419045570550715125648783946172843104675725797144728116619630588607413740096126652209552348009656058778551552657135025554208191436911453320109329941707105071189709160536494265982397612719090204701749254948488249926524734471367603630886864705698308010713333123746333745254604765646601387954392153380800198884724464779906385138470637918352681255816730970289069337430012065973846706295697571034680838020742662931255427021956179097226964372801890617822685473587420728255850880402450078091780437506821068042565591568291152213060271433416153767561506593025117135434898386299434841000362401655663609795638062584877182400177802870723481344572786201083525524865664880323413527368953974018380830530257779998166107457766043831700747652875556344179898853139303147122641851956617064502025579099127540683232732115883358978125763169246818078382544653445904280898514838829270637454046178533889354197651173699773988082100171028885347937305577224053472644163946173645348942104815581085145972984424639616614146005772234717931610875241540068267435660206582036640511624512495474608481226982172500139553443339185154216491428492392911840153357398298440366170175666450391306019109766442890694705141047542007883595325593865440093832971585564334494223864236453126466948478630747027817233443366629256979403764332051991842161955105663236717551683163112525950425521975190331690874615307412887599603818008838235268809610606014438944254492122140469536945222460264491283810776407089663588886228268019700589650543481574862701678098814991466562831866531335512772793869997723693605242940380181181266475365316924869267992774158803933280919337928618405270231332414669478322411039153313711399845713713414994469912579865429436843624921549918006233983521750972346230758937985318189062238513057437047667591058909064250258821794819027130793991675246364563030139245245194843696817479895132588886356101028634699465789912683949608965397412386430263418139710227133162707495651247024023081749753369553337626196523429554782002303648055690752148284052572076325028840001420215477027662080346083420707983559458867269726132537853169105289282542029068268994398640509768749630832337598903257353994535476823386398764980185802494787202665645480084690114059280299873999406688850158937934250971174634133955758856717472601176227338108105067136469880374333524066403775840399256019683029036452721886891878106215933698810161876591455048976844508585255685088654561576777836873126505835246678703973722379499863699240811771095004217629377509581428404884901119945047922908685704444241771360198520571456268812087702561513485099591830771554791885445426651203768276292901915701881669028351015529824840755573333856963657348488440813151220597147506835664188858835694546897955920085554991276003623604294240530452152483645774880757597300714026262239665194706347514366995405588359093069347423089741657139207199024011546359625846544522816035977781150845927405993967676083937231868354066215910258551651164832111397765035870077008705484158393090642699433778887562917271626705631435704505058202808091595805584241419751837802749414811155927861976949370527531254158957824001063167689021507915794157909722320542071160399106572076827307136028864255070537024418277913045875266691266664327548381812746640750049404401866151535719892000666722058042839747042244529430461967301312012987190229319497138903256003085431771061467463230167880552335591601118066484016476347576455089585567049548220393420501767006927334313966292717754684592652007810668438927124227535558240118207573936975515435148396372908384718839974454035559949278300741788228490886700470960711728995457526794083051285202637707977556380600221256881918789434958857065311219157708696748026255241132487776411317671595830209755895921247987537964688640583073359893429979759788433789027954584030641730700341904264504310767754893379400163609056868495969136757271482963987472480727991539121193710957675286959986738375036598546179121645654968238359736997343829169031868840113217243734048288360268738479858331626054027106690208496106383367117593673596275825831774050094044051749822508233844936367425570207022904272344980016357809158149627033225704197833696462729010695453795889349844004963887955041500795389668600256107602576736908436110567413484108652123425094775590887051402502335557434715353544841471750801193934923393463963045570497027289082951348230968422740728366832698271796674037922376563692542396463855116713621174857753943850371848529615310505779881733908108458117840514361659754463231365968323672572114039009861732215268335348258621929866849156689636701668635217267208962331902738658300630798591954859188291375038736899442263694501284283498342014504923597366685691008185834795252216125479448732102359955857639363479952109670752114269902088124973592246408514688376391839464873414617572340862174195587019534717709324491197948682604564454900190886222098138927655550193565642994950036296785872976022336224407205751590220763727900505112693027544533846019491777929072873343894560286223047565092407648049066823893310998287001749990445098062127073116051249359813562149307388656724269842345643319832717856527069254692376307704205261233544169239753486691218789575679774866079906843458734653982387378415832343655999926677952675262679378908512192041465394476382965389181616460255625662876844933056731053180855187126604326978533255320755187011090485147302413201793490867573022269524633296259476806090149689549247400752650954324249626518732754450369636721843874488745436735623472417794720691451733853019720447898917200227236884133427301334840264153855098864316123243410527893571518055518649870153459946138704354642712135795373894547909149676736986384821544030331444950247399060755070803153758472988025579038462803873502967101721517741119304574617212432198738389957232282092200285204484652535552928784608900349549928823818277174371074743668763935446724279439672381020975377798323401240307619725079702911079612104056551058238694252582529272431456256540232813940769363470574142790837025369642845639106489018329650744157200331733539046033076735202475645731598270242013353838492760662851979705512262246866324766928599763258585231845067013591899643657343011025683689289393529989886634544748242742572946096276282088483565057796424817361030398398937798527988441921260540048062926785656622055312401818597189222598773552350159208637371005399726484550720042759310540288580423242331288877982436331289772955556784286644881990240943775427633834600363947166708756876245874721495425214388273984182749924099568929334918540622491466212300297122919662400281431673329932898667149229147034417030929327996874598553323488318321525554325901818382218446921246121218459950062225271004826485231308902773020584055353262901726258430491781539916777277924205952659388676672928689118945640545217993986192408799230957131963520475604449466871426188056351411683495265807673052931219719787606199588707578297812022463905582343466339095984765626415400476644174687368750418232600477374140415376004734210846279595265330965519996749176274027900724797890121803171794580444234987190011359182288742552693978060867680894541204917990304434198694830170170764952424675741421251229952483615311571524514494768399974269914668341287379003685643921524148345305443800810324973382128765818200183601318498564701400564234528086822797546690795641801699854057136150021355758806188360015781638519695318772435549492268278907931647153203474549698317716050185136842685278591043277760129817409940029779972730069993173289970492833667819667852993231402874776204058320144988649293854725159282980307519037265379184612316061031295513977664489326964516850804657308431093127230333508034246491921801043320550132961493350594265391675222813515371170706645945320790996432676598106310507048897288295561136381683314757921856270407007163081069369950299098762559841617046178152069990324742655299987337913537520977197452269664318076713025503487742894406931881359841208358482451388433287213792801739362834369566474424898752508539574211435966359386711979549559058031253162552016211342737974971271213144919684370216114788443031803107512757165471646479000034531331410854624602427805587130490162839526147548697390026628717759016094063851752535081358822723925464147364151343992285532176488916291740743949417994092470369422759918951424862662804631722398735177163359662634453620952110145968211560457563651752614660619072234344203369370524078582829674227202434758682935149707006461445889558335222211266472175780115951684528039656904726626753679070208494071471494484591662405594684360241149378990414246002196653033703904114573175778104959368954183214359847939846750655416239618814724454753822707250568611890440327237580670754777219915601610878504526334707867939865564026217968631599008793425979259375292729098811230598991059013712759209378406469182774287802523877448133287744375962394248191992158056060887285914639073810592742783654668121443289142399990394262128231623215753470540058137913785862152533993652808658210876544879318142817807224508028772943420026655211808531526494500775171866707751478698141311470623345382910253119309438036006220307468167964202403716638286078362687630520483519355670741693098146784390400838326073659004398802135193426621847488036543506441374755027058941862037009421559556321866563198333756922265893472603360003815396023255919318125504766937587435053742469977764963775919725839321878312724169157358246448995235086462162475258067877636876734666518586728522448771155599031275941738191870545804439591241268937973057794190115130059763859400822058616138467885908559245623344952309359905074329233530351626800047851814739488563985571402519413534786692053563717973420606571900506873402075412374761210257158089934048199053984559402309233857051304241263583323502616981975869318981409506385779540946007098448705222146329874918025706426222766698525462352654027829883032373251347118606837268357203080333231576108301824544147296732105560320215029771813623635031881891730587014019447754747126585117278578462844869614986898837391287697582640886481638733254402501096296928843957423070119185543030855899414493206474861067854035611599714813491879863886874608182515480012389350852718577251523653249834540491622594422597259377721006763325575845717893652765758811891902576827886111068635467336256854169449227684313294353298844366076477913002899669323035131419246214424803669204600335365539531045396083525086889988598003310340488501362083426441710177406680441672806740608355708712212226264544072585247238797188148652191687294796402150101936318938502422437519527279959223335057278301943107100416392154693782377362845764632936348652246512198812682355441607863808476540802197540004300924746708758732057346534747493855300331210995025126293926792199001518883332416029318034784565121460818162269983037920674566305650981681703691913101904262955348911124993108618463629666957606794079916488539331744546973010372789824795121900614054749198275582140794366687956834424593278683187910872251446156758779650012279814668016745456238240303168191325222737772886629488887281880178619601603882910112981370143906726498645796961046905134206520316834163988448529472875036523535654056381908523172327366960780562991902990226407372464573260017383390366327188893983746253501480873392978404238371578704790857587479595632738429623799629083441314976468612680009792860292825897879447736900556958474941995591437222053058586556770503226388647883329800083645223797897180686267650335359525725366393210478050120882915534642967544281184120870739080350283591940473091839176318488111003558268208122823732159591893120700044249329490325824078112928974795864858210854741756993195728796665308174292850368204503708999317584736301266447927643681119177151439671684671289445672895504249701048715741830074941139181632248328420948523590371836605248353138257406558247264931986949934941932021972476545392440795099219229707057772583785091804926921983219579306059636973183496342601877439906060812099240350450601772072504206871335431006828563197946474884014547913416976308181140016466506602275566004925389313555359725661654384553414791345546984918719593718539939728330115737234453176956364395086742637218361614988687705179400366074714209715994588650457895060834131715925696593039492577556159667337035668027450084305949185497713333170491452097241080754417275038046612176057202419150419742454129046468164603517579127595013562113416531942888161040758225788264275594410502648425069161110065851148736089779010025484950683873048514846855402847382277356116377651244593845452760448573820969236411642892312308686844775000377103246209348346011475889549215715746073843843932941219102410867342766101542989049667940594471365427793344173753917287747819620526257059231483642861987534841158104418829233562969654441261812531710044845351169080421624536206017508243376265679999271919478288221383473662705530454049944762807776708547983480978253314064601715610305919521213583225813288850042993413351927493978648215799692643887049155586927909087639243086298740151701997975156280306646741763322484332192723736724331429023468675157411032197749792616229679198587304533490688410201801005099564952372280960910071138931907324100980450857244407706598946838362414003677671891281093822719322187689600641975764310928560058023870815214171404405843308907532767167072340276070126621646190047085344676754533118274745025780418372679441700506946965179582919251102163396932156303003460144832460403292185907026933287333524318553559362144074712993207260679305215496392414592784738165842221888450281357921342445343887881130733433784753927155745870613906282101543337624549293497045651306954144527506181282217744160200099439422770679530477085995524463933249127829038695432837337700040684383127150990146757799622474823779962954980227569272971218047949072588023210879316597256875510316694432692345215923099927498310860809199861363629134600234639024254131675583566167632391432999142522905103501354131297481908878916409106589241547585785004385052037838720987556803598764033360488041689106978962833072088117260769453361985643920419414120356182553149061011139299801010946415469024134118651105191847337956413069616442791724325584679043109409010294903152261124322396429241400604336831754087077580214819168256609389410411771696189557130078479677733029952498432503708966668132270692241918398114193346793620971956578276301028450976141562716206523727587160724273027637788091918959893467744886415221475183168755472666339212213301468942886211788942435145734450570432533375877732908947217016533507279433037766400964574163549339954585330067443163866534187428653456725830743963471748949188564000003532535686468230747331638442339690900671578099887978268395252659534921467188226522362797495827105670940502101061246448460539496475442387994261963605818210618568859504216981898904615941194946022050149366153330823264768534421448810581357881441887733941697636516477944281676121464506440829786028662705607205998558697824945851874946928828728484694524187501062403761456426169262137997164648165459260831376153746918874696329010508897976046886882408269333078015550229241409280095713125634293456407525176497882666274806846081228876779721891954628106449778189744550899765128494467784374252723333433817488961852583786191189118381812607998636824058219956169062954082559340713173134197038348458012410786507760646390205790726789465987490128719955985577564556955336788685899983560470671163767959189446827889677239677982617043939928347700122950658537139814272949970006796950935868800384894787893795244851777904081559350476727126259554824416578293682967391383651463879877277280433717183842438749630105559257818747522882810334415458581374190199776380327425277733753709691112010620548170557930217845690799250185540885019568208185843166665958474718400867710272103353302994666848854570474110992219536334637936953975353472626507936012692506506671873174739605048780414117885988276582972202858938242798413624461077051490974023029196112319727285510866580782476941288477884915845849903135932974233224085124512473877581562847840650467245807748857405523073439703069589055636390609566827567667355144985779217312814448429050268281233576310905083997476174761824223056406051796658150970639879209069694148104537834417027340743383576261784905161324197399954276800896167377392475197241354294722249607274811324480923122740491784866870204725428398131510222201851028294324260218327226173492343866065652717511513000181513746332465104439079123574779190567311709917183842092766476879735659304028103142405352708536880344976997863440142571974667647971599769233939254371212508660346524546929709996672030562275771166848551305940082854947938172348733434043061575714154262993331716757222206571560645992901639203704428974995886953548289074801906503937607494759873436903414092407146435628021497494736795079360238141106498795642834558994264715925217640232312782602202238403981900796097479876427089004880610572828816030166186610540220141142302753463097381026707272229513994276542467331245084605098333423860700102364152737589849601705514963385252685087673588954030512529534047698438428147574610106989930142108852460063126436388475831222326880830304996901846932681703569428205141672608045690394193252405932119451068746115979843303393680896812643749607288514745680553844562217920465150946051996811751317347729522908503226032641096912678183557589207156060883223766199726304611922609780628829131081373582026708260705713920815069293882462721748032711403047696700358809167953948732507378573516511037176320492387768299053028048995611579757862282138614261494843390387570973483116038963023775736855587388185169862921528452989482671951946292276448824487857999684985414061862958543687946185750673157678363569151612235635680242329043881794779277332746011595501691694294834391453503590707084383133650877072811056539679719485937778933942146713826089853944407600153722898505396488544264699816169103531362362500503329612011058087436690588126656571209319542943032204168690551238974595822455371640309382924871438186354930855899784339737726785900875096036302132983644292815824506961836600842141805308253994501051759747598884526235931074596386831306024186318856716803532398938424092622829467050948170150860364575503430460320551017117051698716171207291938171033958466347812896661060707649789130366935366857918595699811389987382868903963011291860568065873964547842252009795005590182528584111173730534003309479953893479208972301730381732529084066489461569706460153372711215030795010123407999854158230772203315700652705334182011186216078943478797903213933719634517568221296470399046912886935259859019210480968776347278111635989766440206884259518966139395910222359304121875232299327546565464146029441247594219334987381701633083814975691258082518631658314588007696933639330900859607502290285898059360653025092228956186245390245760784161723182804717751271484956176370573682124550682483005672161138466116793347066544736394670803270498935572655401107363928304582787637770752501065796243888200976812099257212488322283407765926296735891469398822404162646165356083407415829220492848567771955395520299326059192213441305674930725588388353792897191675447852044870394101260853969584633658230754023774953424754446294288772070129510943893483230610462605578056813966300449991735807447236928015611173968051733817473709725727358118818610980714287315561708605110706520023874037462727101079514685940245923416376526010161302435708556678921657124973549930872679613545744001767183583135325213645618056766864654800648166377369666102696907051707375285704673881424773838306058663894152266895431899771140318965187271473437366590078298333221517650294417175369441960511726855784319670518119447135924593976555814154085341159016867752915639749769987664362054863663118321846062084539561304437485131687414658021702032766763406062418566494594111364720990422035094996222883446758818187558105130041988998448594230405579361151151796846041785355938472568982927796163620520896213277492106061370709626498656086845091071134097065929659746023166199392912029671924938397072326101032252210540037082541625929699013119705572560305092036885734266425802737238703259537617811722172229206036123304568720965467789055892870171306825054159313016853884040203289452256245559326998022578304079442718528540356734189760696888608199585517211526382805078380067879829047184791140203480097019188024669108769449520230891147511075415209522235459084320805558828672002618796997559119498528567446508780397715047244956851383161471532297016031275406526301811934637287267506260586284971920680689885732124839996385172231144086742782598498036806494056663117794301443072253556565760521156119684414298485417296958287664053335308819258822953538505397452371787365852173171431569222408778175413129663498051889798308688862196740255954760328534260134742452874820269973591201432357125809067852117098153138988114512034823829702154172637544431113515274473024913437744659422257696347562715940898849015361476061353378689937538860730771682398238667167629248883688827960457496569423833812793843764648974167763123266064523216463769191520846747863843577334530636677070862039253158993971350060726307165568968061784469731094187388550533215104266957733487786438186542369566685630454078027485350128565550648167675851305948048214093921051164802436981727977204792838602559498125639898415638082816022700885764030272956584541386888991539908097267728943151657550472775893088228157020947879947516286095537244377779830859435042932485343378119712298331781279839440846195195487299938952088035217659138525451313077315212186577877869212072704212650664012512076663973777139408668485423980230573945119981742397775025562369380248287946688618009950308087469521609127239929280684409146871049299161809944231065257728274735400978251798483357974020825877749501491511403430895362383023539281574425399155248323832198673159653610198786852755403361390115241589674187364419713278224577537045400024658917659960581991556535910983911563297757020366407005621231893629254656163575387177759765549844996920207089532905814546658773812108935066629402831155265624222008218832775708644393780908564314473215508787075286218183934521279225455930133191211583983940814031516956324138888091600952015070736238471156180837910468694899648918062065975219986458230525719586299251981982206626200344087519914675360077201603638542557117709485779687306850218125331683362398848426062582744962928898668073996480763788820881524264191853593916421523015259175262375621392828713037006794762591884209453689653693269035417040473676758559032069306647696220193058322625624613307273358124396790560166918271609419181387570168670107204910012528854349754747839360842905821488043599081783029358708864238630376951125136847348833458352679886952170558122597452157083131721353873688292108603259955159513946707433133410262731699226532275044441606268231755518281335804348080587109775263051330931226423227427460878331415333907374316040858175244992159201297251707195652024612538869168756222118327486728940403233671825822992186702195156246625339953226321611169928838623716476508522166589031250547620864357116477894203457975637570487760267317124479772348766457118749832955865842007338608266628304604158631405084425504611542471881357971746743282338260648460051725204620736808168316629228541557796363041682138391195991365604056281209981555971920132408100746103295441883764889729559292709606657514263438396079367483373873396492341633234212209503902207358071321122478521657595467842628455953597525772255881461456602743327241697584246171710024969504100449789952397978875444263412559738196077935626239461199522977558205456468120832709470646994609202906202059038423451836699063842154697418090618173666973200611100249048700020433087355208078855859055669343258834374608610462529272279246136498903041695784682615282380568200207270257843320287850291871682062188248840073789720728820060501561811977184762981070590422214372688159577850479162144337543593601269618550941675418717117517989689342366433154751916207899004131404155318674789812734071509328223580068066298419388641127311653087433492036509564622563426412210665174592473732805325696821366448244147674945226069030156397677863321934095231673646383764203854025176127042415446535283610483137647206881482198924024293812643754790208650944598239567947698670093163908931111229781372259750537722355747444052420624476862562087184517858686465281134271557158720134348551901106868037779018367643677798263953685478598023617130471777931964623441926662326549518897479876529954476559648718132456423448244928050699593216716110684727182448201897154445334641228782512625520650173360704683681212039896688758822635542792427395467812508774779649595711936399035421759089762582841395565151787844909099179509447718231113293782968576201606966862239176367963560002854834751463037334633454021053810758615364627485101698482395499655211342041577391143516055312721422253993299963924578278799382033576927226058518347631209481865085176844836806237331432104016569237378397379392029090042325926892613691357640427368074299896157006945527935694059381751004109156198624809034530737049204295833500736484606598208770990034106517030744436912943372448822086743374502117640319388085938629888331114607779407257579102826908554881668105317460220055122532219724862642810604495467446081044985314776460927027432234283318145795290967161538257533127741211203361269832584313133257105227884893171303992555992680699087750051277434061656041029695643048789809374879136207691009447527027983406855083367488780971074763863277625924145972488565780110901398313246743589757817193415685413482221565649917509499347479100308756304903062182900728146506365355361360042798003060367816629289634248302292421838233663246593170869504859563446127976406942578385037575162320968490138575283599497941853234369945739447271164023780798827536552863660172277640507935469663399886034234308353295111645006341586200799726736411539411982001163505204734266940996854893666499931263333840434535998245134898313198827980565494078459951902719651150078301506077235697636593163773483476922055096466325739421225094093299540354981137988876081580974559770823573845738425130088991860531450119949084460481260780002931868099585728201946323089641005899430555010783710168091495386907945389956277209196334485856916386458756339556911476758947428311887365113372744281436415284987640686732019115248374864210213767262871048159900476584016718560294088074000776001410227445629845656238052640129435932761343278237353483625913427624312888928484963487837299338938115723390201859251716969634366043193711068454247629640986796092680075571413183420488750872441727366132495405755248308573157143614332014960945883512334823432092874101213527506332368591774891917982285873414146784469767349211951788309829296289135451389980137469207303870636787364599972283283442495420703923468150349124233165370643470493522674326213665138537900518079586577178034111817617786805582152350311943102658505084706720603693409406445634573783881187792366297996918900192860671060078787954209947154559490795739084721140326365105609591028499790043767793799260888328673544929351766541347732751001726804365158531119955941665519780683015889379169147509469268427326568678589387360479972946022444336390111693172558702280336292205763046849974335658381148964435026496912848042516873562574580099311607497517401673792455642724929140498700294339557551509889389481923344749106352471862319373074476108664994693490968199471948683643748989538975358182270833782661619988666739685962860832122354331068028861699193612138984360503452611456204621424881092120542484299279780724358300157578190146681821587435210800586192953160740319430094938642985896419364323479018877617490012576714022511146290417096773487979355403105685011035638301906769695610678206460414599875931342948044230088838670751496048116864451055291312299117229512555475871867140847579585647245162302526390621376283000433057617690574732093410384545706306900075021970476149007166136447426173774675796480875836056781269028016589209112587219004744570925366845918360528772281897845284235040568320873479632256028598942441092144214029201937101771482874159802070292208416343833731377141203104429631856768093184691054406691427395765128990576016462087376979697228211100768006646982567335236698749591580592994263795745001481440370658781233302197066021044242538346051434679219926528396128214639478153577420758925314737361522860160222799678881896800456830511645421149052756380688079453607737853191278443226820315939933064719749895209192417326516674602843578284387181787026109820518436683288775337183114433151358671804325786126171073996996637774051949075480273216891744336686710871578282676142057288687408810148701065951810862382977953096792963537076037595507796151825604577969165173563653311925993163737467250969497448157512351106919235396367083057480585367531356930817209694469503155237595080790484155480654849262177027557221663344056486341820063301462854586478749568599929280342452188334224882908410814289703818340195499085761069523729310518916459623093682735343372076631438810854040119811416911320809132207248896026067742333528096047742583839085527058053208698908819794936456116732537041821121520476538371001630246094615971110709443089170161688345179016004251336188714964570051023932062008046653643018058350314200166695373354799195770292853904265719681461058436867292577899983045452789880319985494140762313989995370129611372867029551810911187868333026837009588781714617425446626688676538666448282235889174588869804813677809666394139932228003948971257069199256179184573933817494751939870613929494493225433467932076239201288787209735195986070562124795893343886756867080326083342720203333486288416648741233622983798396533003249148039004551198586462115057127081677407938503158005862353744439168170394922197365836092382454377059794020227959402910471220545421625252720256507415871834955113790701626066340554532672473480079644041573576222104178698123029460822742570348293150849443094638764750769158865069498062690131971567378413470267969062280867720836988744197542248670723314532519320546457217225807929602954148809250973880033809277835259503397377323640580301213490715513278206945638038501564737098682435935148702676751675099887956398525826463208364310080081017331203624239925430140645640325467098386032720079976198554870375942680243341408538163677664953121552794083033596925012654980956173650845892851409570572256749518227623714913750825731944578008756996004174940836213745189342866447779832517778711694698973691649855725966707336591799693116629221365683941258137855019310277843295834316015302167016299543509994757861113688879682122805460364925320564589994244917078178403936446117626375830042351123491360913672656837092222741561118822054631483518101371734467468031880822383646048760849697081969429109176889950034604831037679711734164615181330279760906998510017935221203592889768003118884110568186701546683899118460291146584807759210217281489645365558201333613313474833146650742013845769510989969734881913094325802987008340504005839760443362087302247533858627143767243538183291382806860001775761543493503438713443014398473951419895208432781709675845795519223915967679840592458502573050748740286636718117708638492226623483866038687679451156134662767421825819224028251254237535141147103844255715888664810264328511183666582414995271123687968253999885284645650534541572515396210314421490534281785136218168419270476680563920662876003576974262710153465499562824747502758038559311686718838080741385263681047998156828581555111781712602442262311165575491702808840748995773621862635257615742032148150553229661691526294117567437748398969820801037158064490830316990513072041349604174467103008347640838238155545620342720968990125767138560484438910019725297241814944861757098427385977679003489011177398084268031802227911202863614340555622749086659807755422410589059904567788862927013166821734538298615468672334758953326727473503610357564845311872185948474907160398967775295234197637661614049134171758588833101218649329902381714571777000130738457656599800476415174680084793840073871601270161913858418927470577397424711002867034940483095264656378660914585554430135545535038486980062321991039355318402040861469207776823643020862691370477284220510434210875179708614881685705045270350050749590606312949815682449275219511762639846550096016653479209735856495412628799999572407982092101003595024241110674325776641418024063475051899514846707524464079122118637053059650396761549204137792859682176465735579307482513873219696276603461411814771877608297223846084842183435033184480617261991678534960912856363628207940505943839274916892111062570807496960971590576042988506948919755648622659251373400578856948245336827368240455239140532207177893036691777399527093547558142510482495576311764032875226504783708202110881050625400137081312332078276517676439300782995965057286911231965983139198470894827738082400689760767730779039556589545473428257545056270566928512282353063193374119636499192570858339302284991348689240537918759619557551781571578116404377670667965458919126811462363300830219315552011133070852840984394910024138734639574019578510945137022369945420388025050687260463863764043275759998595977000632765227823191904962410933795472374537357187803502772634566271740926325207011407156639368955494705801991775178554665016196449776360100171701892310220387977063207520495000396909915932013494663309669712708774239405005429762319006232112117557334766356137686805461160801698426603627961954733187313293112562813369793870234874603865085741609069770687552795087558710516446452518247500318017328860833573598179991356103579380681882281780525425622542550224221463940481578737069106580034592358732517520722982510053299222810085991851600125476078953705693823443564633839227216503370534753196234531433933970690730394130261766511721729858052510488334370062356179425428898570847250017483755899804684460585779307936067179901463261234509800728910956409766964615866834337805605331665043268898162667996803059461809514618909529905750430713850545852702908676949434495367719713750515764007202520549655914717943468040927982099459337705797135566743358506433142456226243268090713453479284028542548484938992438669199127921774609487157007774287762974786137847679239300675797672281620192957182689838984359530514627821288331220414593515301827921290007743020684804780151468569218409108542659756399921173931729827800864364197098275985124191988061338439022239766908464601688356894454914764689555193214000386125238588477502878342751756983345442842477465443963543276591408537636845550543374233734292712164576307642689795168386637946369216161360666659450756451686324670823830524877921637454416624319382698056214475666817102541523484712453603483427543818736684020892193232480524794606917282488659070806780828943612609985372940395908470984068007408292563541006718812827481937275162767281435658921119983573634891207410361557557476289771172661341348859814234425887351985286058333000281501077277504275455291560084326975171253023582132007826266021893259216812744086469981165529123182884954020491359216997972819333828951662205505608586657705119905862842961847364865216607167872710632337632972779522305739511928577425982032854560932794094190451225127250671952441621290139095200540919620001588862084411576549224709302589788622741018899096202005241681336345070318929438612792428936273817270945754584778338115953950432650523577947793517193079109162701355785839056483773163395588944571418204285578601240786995221963119289112155672114223778502309056924080116772515696174631080739541932265858178317817160425734726211294297301000328196368745241274031162683392061410376817702257688748840506010341826188106461662969787540014127919865854531184927089458205233348986077862178416484340929440631463877500770777334228412034006351584647509334828632000729664258462613556874410606970006835740102286139014432112407112816810003498259589231706315177479329268198823133286428539346967736009772094007664384034927554252502022991597048372274388940373950612834364067713927363302505039304185956617591759598071692801398533967045000626687974086496901783509129296275064891070565565553434438396845026168063902055043088975673937802821257332140689794017569089367724820976994015554005464918432580234081546442355865083542754267500770848828917552417832047365163676046457435378589969313512657599414199916823852378998039236918717585384569931059274033198757960525510214254482780787387301544044960691335811492256977865611253211414039675655270388805899928228103328160506407129952716693962988487596588154157282841156401876605482791012148004359351124513593367343950402037569619631462189233300799320457965687752875725906090350900863014889453406169268524162182406140968115452651640209277207650820925321225804083819157996507896435122260569668601560944536028379090337459427085084654733508597449661658366592360977965745468327071467730746600841756786691894744150637451312027652184300320601801720898075775371414712905926946909080349869669980997384138357571272472082914723538327420633823162463189747958178506324143496567776465599176802182475678039538628977244840042745266658670195097881858604098818943860834093518202450019856897871128439241591773518979851393538334100630966845442004396323336585919200826081352026653589715658589692975626867718864568119039198184283978108641296914262227750285295246355328181738803952714566534435362070635950310857608193747270085530714442110813364712648369182912349305778655236069037253622917818012571865163976180099687228192624016699389597827226993403333025582739671514350539159190477525037807179984612511217930533723588973043435333979817131632261483285708920901069751381894152133159039746422699500596688361853222592474376454479887058473217587777728940806065153779105924760648854387476892878712185025856490163553878851332553347346376498720653467543471422066979918843998123486962834719856047096025270243493061512912727252224751269429884585144474622799363650317253642516494776541605037672911162334562366826008053253721391756923477449912238862493865952036813037003248253739486403940550899260818132432205796659349806509541035173174729906787828378176537893602417142745915580656627409902195396624290459227908347639693396472152552772423971109633845425457232435095192116364663197916247174114896983943956033042550895602751449500791098044017860214805489918932258905568920070228362754437960983052307051300528366886590975887258694379136736358614224082082899297858782205925915274088774731250105939092901012658866825298625047066527109017052806450641224211385186372227658215563327352694691946973987468468978642193864683164387755122197990108324256758384085808400214739035108936690819907018296771146043109199465085193751141748340936132876103402688582903556807870404428291182610584923239113989639275045445874469087666587205346533434520660956857894466191511060784524127262211408231807686134767030480870481069114046900531904773853581919576411188319193966332196047240646373640205020689402162114686937760648365838076271459305925814883428743759781167109300212583307072963957503457409525006146893365689315989046130206432207548536113278796454382908781582062944069147830123319958386254439877918175948465884299524501349381161990819811120835496244076736603281803186943782239310950843488917866464149840632897856150186379486972821445395414813009864428891288630068038234650278792047054150642365155367646676516273390417720355111370178859355458788528590287685214669597559888956055352258095265244496249263379826713478054196720112215792741715386670225603691356846020899996963381956200254478049733717807491949402142506192077338904564986620983650410916587134808072902004130079000901882959049246787483174387153071016778760401220891258308440217139777483844200221737124923495764457438348719347968057821848371540986091783605849422084971302834219912504991002982289566203420961846691771930875294343516689071527480548521479706810370563642986890029443800936562845545989938602441391892921219626681618905448639119607333191468381573682790608836587501398988349935946837423847183146313416804338880303087497286961464954956449364008802749659298681117860664487845432799326416550550998049050178047235145108899370959126651041556910572205939621540795343025314003428081655054279428919208898040007054450781237052332785360149407148594672771990460027943915361268652876336576981354339609615300927075205270807349486701758163392665705402193991946452013659933272052678259874685129070214981871666374492874800238019533243078845462227306641029277953723498359915148947293717242413074848053586939289317126482107442337644782179640419968570893453122989214489026207780969950033058934063651147277132663051040976106298505785336604310349537799255733460025120755116455766776553786106263067122834037378673524378916152343564079587631337263215008722429802751044147685307002186136079123176221082437792757512028186439738093688114873274222299243219098609822180652297102215161520595046523547584485312201261272930292913686394250194762011289273888457062283424805090397833133282777223027612020293622031617890408027686627052077517356916056757002220417024579037083361342034166469450093637395584724212039014202132526071493794605096659365415336717664486039069046539865234193139856565271768065985396007712958838201890982007639788564939116627996125814932973473186415302009659665874815026534026278045031659740597082164859149071300493413626296778362440711305932840013675575367040989439884794494223903431952193621284594733666485488763134695255117126456344267225683665900951411833093439947469821826013420513595257126409054555604345518146683011785625938531503962058036694070533168895161302142377283333051802871294128860354265385024677298435672496200940326378327863536165717572135078941349111871065052108858439208835226339083650659514949689508978579361375597240716368530471852839656110585493147147997392381756385965618627701574597121821773859814263986097544631916498255887683592609130314891373635409453805612315160353680288591283010647188956798194537350746211259244783777101639761915772667672613056523344046637040145090986709475589120285459721107281052190704207607037207856256450801122954937450852026407691870810120613293038096937889707094173217240395978213331211965504392495896530297228348824648151113216613695270397610647666024537194128796492077076329986315699087380531089791403110537777236739873166835433648286275532305320634189010120454131604646571260980130634453354239399082932643976814186541677482617880757439523353704806660378908746383413609550012640891165573748621677051466817268865004611544846867415945399152896307092163662945542327467043485896568456394302015666632825082621526265653688744156759246568825685783976613754705480855030368183253563723795797358030777326732184646334085957018122630094612585623002690753947186673256691733223935648336235045480663477770726859888538797310573426941340795245526641982402301557632235829480876649886978137271419457805322760510483223893877944281801240379798671086987600221192070568958226137071085700327720025243221049771557909544053925318881888323697948860628295122693544372152108230546322295530661153158444754242886960295747784772275826942836705382974057231019633701997021807043482651314034392624264830663296887045943321685399201323103213401475347652871641015363141026960282859203207941230649030316061417660052188099385631731630598234825609943482798820636054951396665346019673273564621894797100589151098806108651099701510316666791566619086435879162946239612331429358631329992755256522249326769055385307896973076250006817165182997123422569788346705678611910240088587207125653356858732688521865948664590643421065108054935439972596162416335222511425985680948352779516685242073655900437951392637564925180968919756259958192458912794800845586397607322502639787627816948087167114624709921114847516886264541738381135902063060477788586322028586109190332904094210252305744472473089850765321898431497554277780205778298551292794112508618476899318762151948176802309454520925839656743824966383928981250495179565365799554788905306954641507879571476803338832790614694384379157458263160560786360694923608478115108929567194831070569655588476358455678804667436286587013119414859499988982254253411233631523611147112371539805487171882190500662888939753806395563103112098862371185289355776112575817038108715233007811944880804596332034563838444699639232897261733500154284188462829786965123158433906645742198347899759936403093384920208111533915096714290266211701986667000990595056457804351799362180383585875201732559079520989758926223800666059346407337099097421892147376106609668696424598340775004919617924805517869109277457790757077555510423965771252069871561934622413746141020650441162228390815921392565413930004184773687432615285097324121169194996642016337103373088405682368617501272705444109647065553641457390861608582682030700536108331595724353353755973614687382488947900850306901162092533834975098658798860152359142878546107015644445355633456005581203768504105112035354640069892956648824653704033616571397679377711252637224615200027835251583123271521078019225675719595925967961184595328485631312548061085583097594754983494313736267427299274452109688009452667002651732019507666864140355999959949015083776995901791251372354690994036192248151868765619916830844793404174401862752521204600420155540419429069360562909631221077952328745341921693078894316278338641078424669740128543172707998913533591699138716188230190627570446266917010279162387141000236043141652504840646322572252931080515702623711651629828764121856708581442721536999350830199872527284752691753319722542053931082489927274733675065239773102091663089836081581006495736296502513502977550253012821537794689519881495650581939109723042804935531424932809738304347222240878448500034138893887483820130494099340620600859289404973721283149721068138700746734168053463874878867205084356162456327337812946536624969752507350889640373217785968769842365915028383695880625830112512543294137456057836569716362341702301087718583099411177703890018629032755209613599314859368064973321876804572586125233393503635041553844341890693881841192894232879356873699214295590803897994579612798085799005577157209617789433370613959550962953916311465402202919270259392705214509917536325945727280294983643712335068216543571481272037672205934096717936694530596672530152636379353011303237033188051585257752487085447794357059708168011451435604480748964221782863093999148180309247882070067615251166287976380254320812335174945494958274469397465015455620088347982864609549197362463204248325277102883635826102962874802384174896744823500702287684144713360015785035428910657794198414518509397388514112992695381924740013201490148386066946166452823468963091431744529449129981491967228845727351247247735638509223584146546116659916233662233371134625465236296132453980526774417096465743538164361557260472357258680884925381630261797990246804310828982507043801040437679704174818514232778887995268549191902804706117433350289852142952108361826194603520279398742197099554077929377137524991987301911645475829179805961883443764293539086986786569598100528662900495285933708345595894073274725630653752480094081563512014171755340905408503887599872325541925987674192571448146044958479773541713257679876926915653147136473189215570143782031601805071469304720213532064361292214367441989617162841626137439084335914033547709663773590806661761757509409712523729014495445598051284739392753608967398062882882741812909948601069586492966888819692107400316521179986525701249452104047273627587081945198388387500798840803646507651419069177415841180882328884613307453417886268775255838337539710991318536146549037207968084745349185588451632224125816964607273312573738850629375539995513624023266943541505259005867642661055603999335362826680911857401215625618697533297709524389093385794030532741859563242669600145531479973767463414408294546316910980082308827164405704211362109635902223295208175664266362005867987517902290374872316475788274086616399858978429030809562503644565615205139165440474981460721815206219236875703501813845154042892858251682932592725761628231263072358703839062609179328901967016563538392763813096178090027223867368913989076530065045160381662883662015207160908532788799379309263194633150944744623004203219356075841819848698827165196233836701407984970270475417920314349067319461698381864745133762372634813397963868919694982005304821720285912548405026300461476620284093766639868782614973051932893187518246298673565586004138529531760066784452888303556256694450094486554452642703228415182304380049958341049061457667525034934121664035386682848819939423632049262007157963190724531458002420442077444285321892190762624511497858773265773347789769150761500064313275000941350031030850090670334446504455539423861873223730465268931136500719854559768643222457146437682456115694737098484838593059903881174399981515856752130497182204809448519523209291126911352763396751660585958898781838769071507248216810271610888246752982661022998437652427528318696530871720454142290102230569909946137456983187342466852444627290651651955127149693538568054255304887040370878347516066824825012213438749512146575520883621686765612742568722819984305718993937589834714466987348206576415757547666669307044269764909448918032487860207268474087894048432521789445597503048793166994861247002216614399905625952057163716073023745355770830776945280195290327981238597692110597510949982843162871939039126095793554755986917996375257440343452578093830163721454289942216970989138425816667448031252042586198504922541332538517853444429431428158689878803962119118424557202749639589927260334726720784234230800450754454002542389959666722270728553022828385981557284618626501168861929276445652070747404336305773164495686228246342129515707602467399008675931926739515777115389282402187780471564556770667500514597544996258371516306490731284551756177756206269171105703091539328156514991066175602275450606055559309473085600790693561884316056143775034018288417055720725461689866427120860844136286959769558219223266688171286112777760024829486751847995182780994892329116857982050236398819414036149751139242767565202013133088278005928107769342413651574485766459019395282790585389227279707256260799784598102895741804361764771864831792462122517196929887520328898082090209983065879955050244803432385525973327916426184345927102492914580209582036356294148788352378949303726388871297257100796058171380427044236821903021002067766212897718308801015524154348456828310616665760172131035796549567981966090261610415821237844164939586715583786950091342504582347884984142354728477024172567308833373139399122080250265243426870197241244266037225914236494815880893848501790253958019957645906994206011674448627201159041602237394035615426403895628039091374400016197218198468161002759808138521908578708518763498260938055333136709544085117604677128641841822502028471118506995865263254579308983811322399851699372987381408332059883524469939122589927092900826189847294189078612232723831677140103417413363555133037233886619728127669574431817527410068823496881037914316707812438541687939121120516597388664605993781968620322391911488253917600579088405214204277524067942758483533222326585909254575889179633128432407166278106137064215951304808653960226071206662323155266016789675432481172855718478807875032281933326085129601005451790429432111611912773139750383864352905613228982286900417430985588750783702001654520533090276417028347209314826113508551872495851096525335623479495175787243833274356712538069580703384041039100003639750023030272524659328589897130985165290633101226733269049685692140861699646443590367397023662560828858727650292287693736298669369169592241933187293707093043466692744302252200704237692681784402261385315240981996787934138484671817987072870800353667700680554857004618048445246805220371112348395220464383882347587031254421585040961372082362772175838079435112595579555208963727339667402746432908341242024269683830170053044512853597740969872463539757716135144575138281024991130674210621396218787651151905153623657710620522911016062424590652901733437464623490970269558381106695610282829067297168398758290703104134597502987328828134257174286728504962209696142784043738355686459544391191698692162990110604625025657677312458563542832414717683952358598817487874012685205968672464823373195440216240258574515558710563650314866015215302988630989607087752610378279363096770803895500829438445328449856939279818989867131523877018618364589597708770217948813606071927761540117322544761599088210823848541522351256563252006405466077796707259699425521054571074450964896482324750218966157615038167196190017014468059136095017381757667713257981364547424673109896277485455961360172995571416552587480582176530974974285943805993648932276870350801937282792460610031754167879181903472929382222808069136154718872053338825734283566308741114963138094790067986706842085579407049892911469719596872154810090098899427104889750772289919153791829323231505160213151035594874016145488002663610141357102943353579014366769910136999130666506261837587602735435376012585912378742616331229531423145268466191656953819727722220343597910272182903362660743611257620719338309454438474646194130329468942941489343557776105650208930874434522094030258501333216866627396720611416480763297221802389415566480367318852554931984340671703396577034475639656345782854457545726037562041992205863339952033730050356039272430532984674612899436959800607731689707694660428534190922857169882824347659582655313818298092831597789534766705082623105852464732567308348711220433268531128550685097984778453693283027458957410363163925366739718835918964247233351601315467882484882547536141241507097066382122354999326050789422819106867992861915327411076273539457755512406465253795356792202923644249372735224157305915717234346269536041201645617690390396572783486181262927014512578596709958462235138084980938245132956620150883720829896539914136469439204990875383908577745643423760590673923134745241184264338438422407238463892515587505912417004998895863395938771311732192715791572134639120230899162808304529212431008649992612585234272059855625781473588275007467312029299540873823720488807557182347724496833874837486105763304661531293992696467812873185309893346715813180745469049179572863242353860453662444124949224545584013511885553912931646381931697166150622195555362346630494282820371512123662342779647268909164367961319713190083292406987549273739402296540935329353217018736442405189372677277528841129708165775010078833988829786015295662448604724375811569509684614577083961483204100333529902743639770453182396243605626275130039960521397455355764310765748569216013223128786816711171299406542787232582110850004106082768655172036423544359671686503655511567023472711072370735942856065144148437427287276530041759197713120470483877183040503643452078266061311602088758819795340318712978787452266219616356318211348872452899566119002081837809695171134248443543739843500429272197877702169156399003018016190068783420951052275109244264628382166857499896074403357725916078941457797449268715394991826362431618284983156579941161253476854915476296408796280447655717169987263199229357563469483144906803307090175994693781625180529673208262148617925083490911778372132869894823466145826000722096533133201798035766427446661347770130589714882489125824741760023595961369858877649450452477299663660778672480925304083862544200827192618314232835270241401007706507588154674360648438919903211916553701031428597096329550114279592335700277427224355026868900827675154694477301988099683344038254931156548342581760522570596303468207432819945422616538797870368012831300633016350336212271991232578663024231200644239641879062131232011943079993927138935601639028070031298847660167825876120367878137773988954651115805035157358310961071701015301560376370021165573737903450606713503458697891236237499355812218714441014928235679032666066960397731175627121909535886727885015997473451705964849694039494356542285677400262454775027027800626112045711374506505128856842391749723134212618519330983729979588883370080369123546078155919454531808493041112281874507365985775259067748522272472401379997786761275639809826624669401945915537889037052437173678890560638863742108845373288796131380759676067393102907075805964295866992630674023429332351896808854519907686627707330613734863710919649883005796582935501451819217262783075923410118159375743794196888659331203987213782103039199815652831987361467771406500843552967682278537267353619424899172908579255580428710884636673368699216716029088575032918141851970226853205965521244599985773865879831261424349766438312458192916149489279622689248555407002532732283775669228267612497734122701165468681670983307313245369782710629512479535709499679765490057624013103432883340296976644443644493126330081893723082661203072958313900839405223091337610620009774593746556232404232674940749358197199947703870295496852233037630113219814804285177887619756531306470239796629514929276413602970189455151033129194800668983838020197857160116885893707903019322864831102523638928880676922559861955474237176759666543538698000013853690480553446402326957630426618030596230895527682785781602832062645395626041437064090401292961631383282528283029900634128712941130117081769252699679761533740372503246106136604862237229347883582965181107452223515923331106421910543742345682946778730292677447363172932182574171008996501280036672019119935091585764999194537778417619155094884840306525690088229929337401299028539702589919087281841589547287898260870282875373972748165447691541245920167259086976708288725221540748192660241654888907410850766884034547659793580612544968668825584703450128868677750543550285978662364411038253371648128904113733555942748392190554349496920758700255410864416928304695406699895778452397575028473399520162994803097388029665428407872781986310200348766640872956248112446408491996840730662889427304775927650410672490395810385323037869653474834939992126604617134855540402312005260650505525645457965259780926054300801674370170866983318535986584883066156152663357526671308574217020918180032420004493526881113334018273393393822836670566575900413631582732049578856296581132378926367896859722604677544543521125599331072135402349538376155616261932279086677997797161462067794521983757954646162431635840004610974220352452258966542452542489740460576077700459775209412189968141581805600384442532800002595763829980124843294815527805175453965227050383430481496583827993006168449536480156372872224427742119559652523055840082266978962414467318508176198536095033942548229738114146020684721297079223825252116587929568879378578570111006873802184478105222213124821802684117424391882100021020779834151796653454164347072460837781609549404374590414698797925361484961047409341494212789551729586548923423858806024932439710067162851209112501961209517416664286385318754424330990492522354906169603046371709917237718708042265279267368439534982257531843271291636167336758450159630752964820268830170672056936933070308593982434041850436005393279495068727132374626649597521886176264975430047201800793139890933582245467397530291961649403688251032216420432089294264256860768924528605116038175990830664319117617600767036827221902590029876876748492146069608405908498279001260689272413386195794196529820434776179748185906880525628222441136007092563688350346678605755782715997881675010522856861805260589931679320178890151215272107017466375615724982602559071838508167395963007045174779537763902241357263577482355053043219259464209301664520889946752387347629908162455969368031716821657212569800840883901429309652870408617328804123111646648689888758525756992088156894763811910219355639664834271441082035547552595433229198451883883098138389434914168935923195897890652325434918270465730401352907211683208196690994142501360189294425388795091387991353518878114449072258287879368678741428265800105294448192351380704623418654117473019296594822631629929332058046277133113513849782554506115312281784458069915801281882555343621059267886841075760138512952415472545158940473384695326519539893815097194481268652106624256342469541433549349617803422973265903088579578856916537076974127998930840816093428768660726113520801652220865171931450851181313770352747275795162946041330561150163558835012511341152521148076231488972549965790693690350746923341854159164723934912113221255853008883595241370113923166214608694574735954935973625915146145998259838975454026775315587766345174501659306694263763756847982512924754507721361846333026253228633564940145690428858271258683568091825528243145209565313937403816483279114636242744548265893318837815051619154483629613530404480859703406866633787565522025218050895691349325068676921562369190848762023383257824485723635135740230249681154518654147771514695060799979403847104327434553426971765732377677511859421756470393390033657386587044233567027831336941028257978432551718504540442938258123643105450583860739014661800348083074146063813252376219146432308011058440604801687973890912170585650558465293711172520229853931837912959156235455068156285763878566208282941654374780972359505115673913206307844681480829831352777210459466543215750744821287276512930509431725758030427557608292810865880965975046375173166680397068547396896462776438425076887547129747593833282224331166914883367259850067001335950651734371365162828645460439773023629174219787224517478427727918883539577492449782572860187578583210312775989080057911550547222874990783974992289853051954730380141559170083106269362441899312929794133261344992250336480335310383632514577610337081695533155198103461072730996006434826915861990059202796881840058947109615078195962132148035309367557465846833886709848190446314433095506961020901765346215251996821438075399168858879609994882258396879967297849914506910082940495763108306796956608218675993277048417463497383469012519535561302655753019277219268831295839240932697246843947010685303657089027174570287839304744357127233995760104432926212851956905223622200856928926476523105522060769924678506620197947268819347022617059521641679744986947904219617926701633525857974651331555903110996094384812856095598868107386476251713571187467411662622886961405783551926289135447361350107563000250132977421529676897499182173781099433712628264659654605703082811842222997395752538019137190893540632691254701252952598172786174858188780335837829215336917191245958123370578412584528424314780829806712584445185766040183694461835284493709592675560406724014434766495576820435413646126898674207400595313713069982175427301316077387507710061938904188791322677905295432756564830852089773206883067011826767951348570017962986890370980180031807430511733965118443020384600364849587765554041721489143274534470250427862407441287117757255716385378318922258977485156329167656996453130307968858491059204417672233620590556697506042215489392374482917235321894033940661023300062878796828307517177400584178164021351456457618239810429687826096703416427785429403079927029564877435695598362351190561185778236279513385850588205928378470721365854001125178179741325153169767793149213403512202884712490256289650269615302227278073422977670001558211044116280705804212103328279561794693763287101270470399521052731989313841695256005746550841610529862720909409681447571645185928755109305894775443417357501660942392857780923963441014716016129639647958211286612432253768641062605567939212119983810110118266861703654709481683864522727274781242683045385418667724205060686791758090869007403297317529754307506828977695842179024042364567368544242096630522750065516618677547740431317299737745213047138692471537132032772816674696026767736460197579468089469586821783947165874987107044354793161078694413108632983050808274538146651442024932820689736005483260743102502393374950776237629240204144477748704168958552501850129133881086840197698839175121201319138501362327344767256304118865312338598074257635782149285174311309062315491299809011047846242907264665604169756509377175209162531270771055697934940675602332124365300212553534046074345573998085526955948957678215239966644098021525790195202278421620735238445231553671358519059279566273824184701804307905516294095315493840020246178146209659012987594803585579565485879635915932957809305141746205684861418324237402414363620787863650270268818443672628582644806091144624982844400055392062186527170577354330367039199681015436679189838795910557437970993357472795173506417343479629819096313158633366139538591484753719525862397925738385036627193576934765050659720826118365003965502224471516111101298230001246395749903743273115899542912010335724066487245559858784119965856431807159973577575212157548707474128038471452372465511169893632237100076021662144883180865087715858096487702543421339614925856929176910812173701473232038725084337579285264428126353619025665976697124766742960736393970912176350191351792268655254661901987266394221068233514728040117457707978904465990133538437629574494812282009418977898651054966872314977823670781126619729433465745152988172480364533556525829706730744837814406013296983002459951575183192677147495685289156257086580695946514879197309802946272191922680315962468285092315096779419710052326146424697448287458950816649073563621162336237666956134713501267529407365214101848370745967823714259106217038002331849955504482589352358510856549549659180682372654780899558680437654130502297716786710499059715018406169419382599860215896445917931620306166954071215075467934168782559726398250634211191104953321853772998936184522123482990969069003411388862542572047059958923375669626946891633786485544821105058945389397745903302370379194777597032982231704421164079147367908324136395814394221003640800471766840137753380026369582583824863903566061943488885043002745549077964053122121883628204013769573822925703933641956286181510633049294865113302501697675717375373709697257200118264852330331174071411364427849615577736958032376441610110067763773441536107185368051789284506422652029211752584106757704592816933830223149841094578530496101492023642007283864224321908395616911066611421938191720885537721620973345907707634305563627307491368514478835967191311275035991624590464410917877778932246466919753997091482694236070972205541587132433633458821183895937018542280878211236425729725977014247596420322009555243998393626865005338657396808087423196938205057940512388659935952147167691028085401933632291618435516880067186040824330318076058190484305132415724528873231780810906069974966914387536006649878570138383192091907046919585461082484142438979556822413411984367084805925397243052329418315336092075455778925061839607595115495252198541957590232223739795843091379233414915658743715627975372582543337722193986568759878068824223223665965924591865357187000298206594667871601187879911369849867918987208479923861613669286863845583530165965266232460412198172116097863963176213090382445567883823382182339997834008059309767605057942894553856706545561590100765623585812881243310079580681076490996757278160382882956235720020704022094351553819181381248027461260421075679705692655289021373139364723771421588434881074114246021433967128989785859294669343561451230200941461075518562950998053075101436339798964467526203069776362749597658753960184307962910906371055674618889346638098749848352191158570672745715170736172126549780101109481333338850451808867176253436840084880445016656983373865684328103895573829447540319800846238651245778735960486158442169448738677968883930423752107471392539183400920469564368799027747549550580412395315030551933131891064424940274253323013773259050118606110341973120361091720337259216577147312427541100027795104797553233342658579703125822570431519269885595427208313036702435110781796159908500774209802611892366694093369112778541859330193545452631731127106830718383596025478848296158069910108881609784103881706292889162994234554278215145768732127538108118992961853980783077118499828898595054053098053521163574877023958406964089165352054952048263586716825620379289689524514631658637063098505953145803017969924386480155916821679352800643614651709214007033426709400118348410466690732596222453023446239777639294925190126977195948725274001088906191295936585698582815246725201676269174958020875141879388505232657540998914619277328443951208660588764009107010346125539432505294768628427047503523637943803301740094205876813426244834312717122022626617357173672637157422886542789362355484233458651941965177365872657865379155383390511533074860338835100177006767485622381511271106036451871316449836730417852157215870518464137917359154055673829090084703359209329111918068011583858882119181174256634589123660053954909628128125256907779295604685253523600121550531556915830966671485341604367621260658287271362250130799437594062205161082958610431354079632665023552709625405900973630458810331301634855908365971982279169093440765575966571040269204709446114855306917128198769824605850492277984717008379556151647712789076197583899646969890375361840858527845108166711472336320429447998722176947022415672942551948514722110137465998191018415841945945142552600674865656318782788762102853141724034908046043700759496075080326258758141884518290389925200191487693479828726460204034730416651597285202444086431280663864204558527602325362829431617853839978355534955669382884877608609897920532531641009802601162482645857359375558803368558238800381386429693906829624859212401184340346272869668145306759667210696416733245708391350035473039555819597537346797856360253556708543827020337811943450089559113981091153446710809329756056561228305408613240558715237996464098858152013999195410000861786426933028438540919318328787300549112872129481016971030630582965577819820669500940058533053536464487658268721526584184511064341367262073373953525087159194679517268047094752017365053883506340943139217999993267523820242621943644888185967717534045651221023850246332956927789470871904952084053534673688892945596327583242604109128871166297362746040766108273707442379169678546939613663398781871136390457875761854199772620429112328726378942348462669054975853307414112126976826215543863967519822038695613927229386364886672031976899081747197529437139860726589480762720605265144928235815874309654485088462783619763377879079090250982327346671980057541160857151856230027032189435968808182079711468914335686071273458773131061829828580127414194445052380641243669594491064245990872923515719240698638307134605403504749212866548978069898348868320782430110657638814525157196385269318815850504241625207653832141600663422129992528342100233964267164817555205164229900770596996893546712767126919969350625528001853703033848777523283833259536480776801672069687633964939813716062808047342080199958665518450904105325874095344539072561401288377072745742492097510395872207511382639343871073795549560257545713890107773403993911323978530024946967576198411144742200326543683862876956414388776737314948554076365958933357755763840220927113940141098039620324759520379141148038712523139440200144441943247043316767746356249059069254097746067939906642516148524053032158111867272214757596909247449732537798949515647402087623525357967634672313491858545060655436750956606902874616879603872229711135864420615726292379911465673487357229399767321482554399384479446509622341544655417362180383514095335840772011514987092879338490065374517567044050211031527522776315285090074758019048233336424013389998952460307043251297061154727747638144734287240097856353341439417425248447679832311819123703442040649240245717353809003546709197117760581064051352649217473731485390307656490255111927892947970717148337629094267462633499414368899283759938040356380104319006519694481861119167424156535027915490390498765439207189708667759565457568078533151751808249943642594001029911408382852936253565772735629898861544829409722362870515063412769770216034219352581111866128950732834307272458021628220806536801000647131861084137705532602021538668366496109126149197088442010611166911395750113786132762542899833943076166118909152119202767513561843650007522841683531420402688393499081697896878018274878297482834245516810259605780632101300588417147402121631915258689281711152701907639702211430953161127194616879877410763099969445109302182423282663791245903187463097499830244897561229505555712506901066867433727510299589160217267917675288844602242354874572390177446364344064097139014313963559310360435024913890050829916913213311962996576906021075921270822996748670860679232064194895276732997584882840213260364545775481759942508304342670331563939684931738991766753185022008690086916444292083860290370749024334238319318725500698312116084137260013619022255792119593318322836455001362178995400025088149339103065346485757269645266795960652857798219118845284802167760519391636617988747944492178484858963835254279949731248110960262827059008797046775405334424703342437692148598075895004406203670975040842581275626993912287961589020704047924539128487716521531628261742293022149050198954284512070681125510260393181948319834496921243766122605662722542720640710581461815014439926759771738450357993768363655352527623437254140852183324003423794505370256823807534949222207293419963809713216173174228778894286081926509129264348665542370387765980682198717644684647613237737407639430292856569294579940549159807659786113915374363491872332355706199701616057756125073718590042931412309334919512932433555375475793461232051379552994911221413787176151608947761935788659029489464573823432278961340225269789896097759182733896486204787748622165782515114062932827913139862208226006644436278508436117390979524601442577435350921998037592791380522294586592879561252345357737117598143071425806633166317392789928701405970139260598091169836302036237092898157319386133523119903288147754664766502219300855473681085608147820873659949925488578418058407103096749327111052029657536015283128753366548527458887044328973264284191362029806876564840796891216852082248929945650411865013846156537274046252945522672033277777159031807612217597365751603992665365108807243709610141981768904226716263470653051707154832939603358456084847293149184046932249624873342223324996045911998347716660315906148306338640769523484709455359167093594122476628177466531304397835053396896480735235540428710650428136788532154014766400845733157022998902372225185008193750935053890581782506660632672100536674250459369672617911103627914294582251079840602338118873640165339490792074698574257627325926435329391492394918676856733908171279872243979006823915057194107453871652482614581076112172582776284049729142009108874961223340742832077544498081520709017664659696716455807120241781160386913262185589855567308725879786089548302497630936570157515805650205113440897210770792511045717204522789616054970727977666213511005026392894341814302271446560216444827575852683305643849532089203277128736203074087591639793601337125352449033156210506480803694117707267481330304927031846482124516524055978117070799500596700095014367911566123187389714738880979789994361247631267258880030941171002438484373337644000484583452967259764788446057704943333783377975997380791391179579477096849001546201149965029757006393118833702142838985682866825628561116175061845173483244164766168811679317942259827806855996374824282474921561084340882793958478149013640563134886788940528485387198400622273205622970475167978319352328197549270026105995096960353401716879953986090022463089001551533249381296992797208344832005275749733828772774956978232158403379722665911486424454887681928622377126010027121137082510886058101728429911157214204478327590375364604637106480995904584890968761053700462789097775201908502062363929900617635905951958283836235366769914407167004726518706329482169091081370402909584646925361488111096421743760046961651673885977547050232869024496449143065782889870631684139035935105143090749027976703296794453797140404085465754839940400731247154713547967062168133933744765515829154875738741271248748791000985535985314530584637433596616636176371948448372422425197706380901371403727211016761298731628609967901520617708267086796223950215554492789667530040545794267280296468624483044033581246888047746358883316128646491906785237334893957006932944484027922143726981174993657666479552714013861771579615639419690343023078655027875783165322515545956811643912370035792380715689101067659589663433788312087392713995029372701776063542514518303783789915217179071791656270125628295542736655694024875570253736428433795057748009720030473758916098922735509296393534043460115478669866060271758846365476224480296286289611504748107447221459802691419823113495586165133442330007113965179905275495999313960079742579188262316467475130780099148947571701180400242897458629080677414784284561966242319104470724946308134367479486987881534492290035634752746220950765196418783709747865334864685747999724509972932902224778025245102606192214320896933880563630608601534474977447630288824082028070500958539288764697317483390633367708512817939927267010616905214787092000131638488376334790416301838840004587822079835123103324132830593292279648429282192399698045711763614114023265737777080186723634780221166820143089434369481201832865525422173051657961247704908909602805510943574823925645935029933540656668760071624764686672140221051218697138115819381187429831810231535582090981088823432312013906890420047187643066063808733134489859520008398340568509177609190687673336389657447847871932740129497283751057874578228862828126318758032660351328990412413187310676477946258657056431092702692619038658439838462486186913026214317932888027623538009485233976317262490247426137215041583682834731767847665691806826784691516116542030980125115869534594931633807085589333469983993157116398274330384780841855114481699545580196270479068059733224531444137367062755290512097562443359049537323415578361814744140639695299532363073131654418413207756797555922307652957060615363305861354486945496429530944647052801075097680892145702273854067716355925042757626555030327337875768850834734700020295221287591830242210258088372349440495669859174015494775590970905833358912754726282031536357745353012958884945834241502491020930645632031998528841820905587704120155161584839577885992768865055055831648412268146477519915224395167850915283675550580179323725316823772370629604004108828356719924362907304678043270423460963006231769278728747055585666416842923648991585745074974721655276530453967339181105309170353251970098208177313012603435510781129082802708394571626102544202223204195058873792365202232630290733766447780068658448197336773783795004673973259182239816849539182782004360429523207596783931880180664897034031454917679966381473376290203735573344214868229949687552370176533582980954947629229319322565096869513626831014894064905445840719670970612339603679416968290395041459024072833872956031208165025742742474947179863951961062244273430726996376370858479149643326757767046943847487720772292179164222479995982309027228964742154327393453412102714583295401860896407362899370729622153217395717065420179205930410018049946748207011447665514876322549727836335219926454079508455277628969220408736833414709629673750538228507476637652629738089558850507417507142186656945530223999598113243071419950740508311436520202614500674853611938470024063332687624592420837757979986456676725774028591756735932838119857078501740344847506796431238020346141746880059456366585561410738959479610808350993375928472766694904650770022821694642700463521461561916327204675300155734730340924583859713643724683563095130774454330419462108311928206543074287286233691065029525605996745142127106402235268864142080325543518156105429514922176172786014877594105111684288585523727987649158201597570760626927913514259878005774289489843457027488614881010952089276093080078621434933095068451303774811596911995565988273928554925024671924152638670237393175117129218248874463472466247440369105213351729995075811410679073949683084672097697598052952449278167582589871514024623455054041670993465726742795667226068370402008278415482563497560299973028424564217786710807908672420026320981517641582072230129434964217313618894314202250781024451755191023913493421354733876934893401888565009947458327327695306060496444480674126073298302021990062265046399788417657259190910547674349275327625113107134294529988750819657536855342848855419973433561539957017247484742798755560817765006166973940378490877752788657342741980456515884957645466369456181925608061888939677748768361727917337426591085864616019803707456674672456726770827242449315672398631571994178048818015889868928826528453311565873313832546499987199613010704916769558970416383546888747335184346361356802121667282673748258701552120605766499853037887443601566641548244146291325005584244684239848782080161468301884473724592735167584023063852739597078281124285502414071250269660524477588834183761613712252584472302630791541515221204139833911139092298893738622028763333697141523732727283250333183290189644026478754793466339990036050009242494236742045654061435199807183632921136600326218351809585554371797819229199691499705501951339726128401932414155439786386042173303377918725029877819878260348045219311692044788330944363317577450672677751208957290967964691508134622349079889202948685051716654832530176957219135618142917326256883483961562240946358825883070114198336752798308028234792574953541017928815792558374096893476822408318266780922737189380335513077940379186822065542215132824361895307856273513616935510250313159630157989852717476306922212047802994126804234141704185081122685353308750526924625662238711806456841282938740044370061541580422713153299043011516545725002828746947833188837695732344430627327618901859898899592255845124895990461416581431173037070443967956955006275807094874351914355587162327168641337592023225583096951906877728472073177834789445864471502938526649282420056977438438729039124270933913411163227516616303357594764277028814892412829084215800271223501044188460723836873858231337955773050313606261155534356295641907965074948025800083415015359287964189455316091591391219638701233884177381182693837848963758095758748263614189934135316757149092045923688299070885341492530575555009469834123448738520735219464713206729924147533505000907685596071945989106289395183648086559007225650744895197545843367824033933458138860794414604448712325504327929758644391231749401030446997924220013751176544145027437250349267215588950949070475631678154749568500303020157522512282046263500986187214192346911807815425180178742994677146216151456637701887474725585148971490704077536437248629268029373728559666491906778969678583582916501470092175395041771196241124188589442644393838686941293819077659982102771244082662957521005052816109616031594095388183620342674320204250010580157019724190006409245863970123203238677238539170511453604453772289329195316212429116811276488845086946663982936267313177006077519783048876001943507828319478574490963714687410334580742381342380412934972851377238633538931022373357826199220746207075712255135378742852622463762324467754370139778272589586265269044860577565777766734667490291988464350532396215108005875353123814252126760947677849952458032983160863358890158789622747933921787073371248857597461100588206553209580192773433612581570072043132672872331135239923347453042675617002579839346584807862730762449133536627416656596026974484597872395523925921324632570269118903424780920806499883356975864509905358967178066208260287829303632636201710578813639108123111406386439358793647334467101760981827052623409643846441423648180796555294066230822595369952318079805392487240277689021466619271690153610043439619210507836862046732579598626296832478119065688185372138594584957309880167891064289240419536328081951981992836565578696256599618842345077469515197243340201310365521704417341137550724247884529079602468109093601148884598956307082397773901620069345999064253832578837717178558289562069107362842525739366809610795012721506429987775669351096081081086620664710874213767726050225592621675042334291789182369169219466300761692376054953714052219227440625263448510443712472000400752303584332203497945766099766536580496020556325523773392705281066755884459007498676606970577841726818024862945872727876064390056116715938869045389569412814113654983135649689104873209456949428008903222513755834536846192845856108117029779488255720682569217389076802171379972890031896143004425591795161183856783086050706591029501102318310549198643078039275097009110054507480642847139428831240995047531113713607845361308919097137687398528624561786527068339449146492890264977749563495703474172708737868150324258970296547348405949014831799587262227527841347633692839552802343109638240017641496533190232395234169439668608286023545258740638631435900204481431691501667148263831903620215326745610533029864042909882297802504823059122840244753234676027874539496513196275008131728491165343160401117351166396250578895523570379260820814321465094820246910534261947165221013918541310102843387957792050209781778537827472138902425660568988802277708583907564698918789876574501276910822373736532633853553839822377007906742092687864001656630499466711474293066137210049315597658850716687352557687289967774908148226688184192884790677684090388262634418943935231694531459957553156281446852142787021405785137195287247922962692054292813913136820069452503347679002871794467695380441423443415166538217164568220361541583334192996180486676317897384699040826703903339155047092492259917895120713218357977121151466529396008152578114675512393087469502115583248205244494776892785731279667893358289617385962855058740343530346629425690360192417427389199639587226194413576698258643707588908387237328156690573044839200030958253118292421777757921259211307208804187294411771087424388611645358089487129036286637726294538476208834598552891683075728955535681612814794269670627884062340673455457552975271447778444069812662423872369855991402717855686986815350090447206204034090385147859084342940884368572829553475034293870979187529057471088292118325043431195385735262980995188542184008820575373038265247056991067469457047858423955260081178464048079549207650061333435791833181183560243204138428489182616410551843803400580179797858221343724265091007671684308679082777744667860751604756505863357139255519756108243311740482934209011066983962022637089108304533934465439031558312451019157054474184558566609201944744291225537682395558498236780233524208932152974029657336101739904031540196591680478604001941410650258591089380958063007799761359975656037844337308994337163949052784216472945324962861059236614331285856625049661048167491861791184637770473122087006846677842956140110115699182583411912147138763613735536364274603787636538878536198150187545815321049099019661449341436124507432069961127100288507638245770845670653986202332711675316007330439214706167096874518960398228899083112548661751773138497629816707259909395710553662861310133094808614003212728961453740331285792402134465266473612203619770264612566724305577688383425710169759640477495401486884402815890905889686678008230872863450161615116838386337945865991995231704391975911305277080261918396248996503909127022388928945823350837892301285240805859475161245021978086983590152290487750476897208348379519507761860132680797111508281195564753607097508765909807860751976783821213758182175917551730155724076168658565078567173385101214498666271773881207889128849016395872904544847557067624162701308880490160604398507444477583949268799089758443690132122591285005929085842774521003411993182825987352831665892250131671437090895440459254449167534473679323526714107678768755174286238649478438815149928862939587701191416228019694792473902953011977466134229253816838568684668283693066967083585092403232992455985226130737190694180080631022971821383757315002761635986685827334047243485301368487223829158125668485537749484426697751223364428627218035630178140877327696496200231316438101131825881743914562623585727463536349235914886014841368193141471950798408342401778261501583307495704484336401264012419459977459235471498475777242021807478821803917530024540022506858107452941664826012885049370178661271956534545588471746236045486813018814969136978380233000609346995479401954319254790519256235395202069142563074409832006447950034966032597738761735166147581409772489056815272470796312202708490058827736728696358624090576957812659794493916113908735359442750800353885694384932433023848938406345482299563955502780297741061471511348744956980667617575051927827590161884425282830565507960794197071612371021840075011037538527853644692097029692953978339174405064131321060337686034036140371254047896779691575134232594725699784859831145933977239122892066496040169880501332034335128322817739385610381721204764175155309467402172994243276730150681660239312284317962885329479610051294838255068436473674491450352611661996729985106250569466037515530779682918415626668588375439603826606262915561250151118246092274263862915074527679775856983450515998690207542746007304007848195406172429238916104923989769699103995295873507282290673824417223418978611081333514119285875368712234955442889235553670077186266317827898094978077401271677270837243232314728817595943774953670378474526103372102000310831245069885538945173031404220834633111429087855736512643344242599057276740387121625985554990588433954494686186308108060730538028495460873265948242193270708393936623056243285877130747590449339755336327540011207192091471286505216191073469996858650299160661559631358900476144031650760923133294005111150714547328596999918668477894163671898543614436910493866698940368379786746063381889644097091669444548609438029426110532507373732640895788658534741123974444144232277457992092508939184999520209451193204316571751938648758264034583916189032447415409124347413030657653656518499628474819501838569168707917865727063738118304099510622676863483050315520152938650944689720746226991175088930487811628100155578598946258098579045952800154944165665369741560292029927103793057309958425131372832130543444334189971989365894781344701323054184146494792799715770335114159288841420531222480650480548561211780819892416163288051744861854270156664154157730412831402016911669206066162837990605626588189615972932208681933142612994624276371931325725536464788492812599510149654000260610803257446589997112520816447334450750895389867135159143436897225680326913819234563548208652748068842808062395009571013184250796174927192586582811922770906044378751579319372278431844866512850908447402772221762085428116676763203271164574525446204636706234733314164888339959855612073150964047901608997249830998416551265605862589624935723389339844217168547868309269366219644862938011391231419880228796964687545855262746417228456670112275740463507566724271487458062206127872246009576560643993131818356218630543345112449041746347242227336611341592055114754385189039986580330738146180833538991763328169564241762775893351389652460981358782671522056829093501498188634334745501807868844149056809042176923938174349178694822826508025884598864541484120109998145208400671207543629984931139340880570086172379243439744504606250649113771115583675251397820199115846720394730087841986542149000727371521320876812652284010332202121318699608538119370285577576176108597187971577286908442214168253345403926732162367120323111952017760946062828787684562215466953079615032148342188064805672231429446286065284519870555702233559420275884042345500571704870200835223245398607057482205513426881663104743203418640391702074144618877190588751898397590955343408438295679891441451213926568533684048367149104094119706134228738331450830332838436276839784905412222544030446450049949178588984160159454965918997265038744060849333318337292915972486638593353488010089073107800449537347956975337594565388331447949940706274726372506470962378588172889716160708568185550923954965015811284626793320420527350406942677956192834771431897560956922383950003404822231640962062593914557238112668275088843204388548681829788260759771486357813645401797759369700617649269971190951360133107819996925470071813644499564494310356708106022046252289707986621509131001533706833353760313668020453161949943232980589382079808394646804335725949784836412051245274362634115470800636079960430453006750048892048100383501944611016412253619615854200940716140653816836167330372550106503697394418699337734769475895437961719624915547588779735539761398465773643714229375773890769979152481971934607093930502002480924672195343504324446255081395968187662977438732976033653977964455804462762727235426598266309979687289971451681451147163370829280857438561864683681597753914828426291757609289153708794082224280761184188197919442024051239532425731902017035981984791501884052361741051682310256759518545723376340090592609613894256412039218514809976082852055679578874042073429741566239613062913135061951148957624563611917808824600220378386692890507318560050896345446286612109339908473866842010205838706954603647880139926315608433100715484596057833995072606739616367089261745518434003014587534496595444686117414328421653329905552141011479834927726996246693795966230180491038454547316035322741953112908233845113235471599186161856997924178398514476172534894330331853469321170039363249895795333393340167456744328136471398402492472174391973029035011504116132846678905698934522558533512800332210415850733392775813271596197799296082476628810115895890967262924724179978798306070803701090862842812557959758909294552836476881513176127757176990235373534465370135660077367129491663098448734136006088828830083540355167381937486963610711339094713920972137433224721671695238016511235917594467991036402939533776479801578602404762696142040591672726678301615034469784792654903617683135165120690008766401176878153206884762511120785362552772894870549101769387483054981412991201888207934778174195536720719898132011409644491128851002734787461030530778086469395448990912314681127198983544241178726867521529961237720903864404636781678816129632310214455445141932841383278381581550704734343358693719053460410125522665720798820499299044515378517300061015969470180229450181566387132525044729035535568927242289307031692550064963925166637289727726786787172212031121715778181914191386613249258709718829498567018476889350372355038102148451981370246904526486407024172818866599658423547451694401456487872374922708202265330254270478162491732531075999013693165958358495460326376665669319809577380120271301200218634303109222587785981970751519730329279365398712525846124488628100382644447705477650858314023841823970462576159756187648991362080684485952997142348007927432842567538790914533737376772162660427036179231076367640727682274797362224353511181096872285370866461728713158753137846528292933020155099389012144976106471616263315626279693954515930246718264274150456299918612307860015794779393175287730458057664217125455875550843087519931227196886132988000319302250771856226137342372971855924252193499548941500176864704302820422007587156239046628201830731125104478380947421420722452003487150938749219973895975502599374943871187249140028391217935707997301165289210248073839447090287224790273045738263694117686995261222188424595121250655472671462002774171532367528403843149632221136033844276269406636752760361651105393400179817319445202210102771813587675587184436185204373961031843997923683879623760574517158657264801139228676572364995356835922303946271516886817006838399357704976529127647732279373524793382773537759426898336597707103953320707489676368280161689239585015199987586470311878638041146293467010361355810452478419260930407003412309456403139404878984717743246248943221963930852618133210134809823972714639119183129258441850911081103289980278896838510203627284537438171873163440510079239115238053255303460767572879993230473891854391205442982521815017487922848042624556430850859000964764131403266783362102628259232843459169848424172821442638603320841475617628080945070395220825995079849151365055203140406087045011693590836901524132915712895752245364222116601270390397503735972116416378235853145682948109666167182228042583197063228345911667310298505037466926086691867911332615880604957352957670503757489291394022838410719461875389940438477896539583794543637835218040673109731603059032738071032076242903879315014037508165530441706665011685318657402427868065751898760805703987491633540106158513826874777898448440354382359154761286152809608285157589271889255183750947676645928085524533843955472462987924937992826256304387842951665503789071359942228601103098433612678304649820506638620254547198633728691303032375552138275840628395877124177151323012397172083999869013623078899182889358303171839248159217224310672136407067727307767191396819349706320968820543498413603871502282523306724138385823056125830574986344561580295296502644872590284446916438307985822912170930330134973147275975693249751287654717227069164204235092412176149455548643981708588495476545211212856101139085888397079753282434200245619940703549018267356775928031105749682772829022518534024915744872823639019003398292818515159304106614819935268859945053027568707453041267763462265977168481751662106372958230446949812300704345978334063649141755878386845527461835407102226010164153787662422592401994222257698250200963893185391706182636216509090325705133235098718522362611223351262268860287620977296282676487270622252761182610689615144124763952055148901969397645938423044104459851042256194994417994728878934851677467676045212733178387888964053806943459964224257376912790548393830970756620145793142289568101402425281381680940677915648599208919855276341870146845085762058847307799591170936152614429105544009288642773817681724852656133327682828286092380802482450599869837955658771119808620607359536468861957900081606956126959976130485060530804979028981135844335029720407820949497470303118878699469928376837783268822986508660290720130041241966222655042269857861826221547865926205987164582538953670760724415857542528612625646673076943354895667803034472625014297415419716700979862252480999275094087253838993750106439621996870414077467830776798578962733590901273786458490565852052238788418166903840319146445535651700874246373724080277567597069528669366826567412336810507139297857385642019918883214443416348301895555521842992593433023459731514741677867197373143899709276155628615918533253574500426081346262176779066660366456831872087358477946709102136840938465057801114231075416114836074456303682336083130335090756975379088705389360652389625971475399202873288996978764428515464126222147040254050316913577509257492338840867843143030402539226621272063926729324572740325565000186296702086957665141391907582976112608989877006502748548831405282975505935677700227266893978746249537607812426271013497694184217753042144314897266410701766789505587109422350516175850901286371923685586518978362355861078017570113796496829076061528406921992523166063893542590195291351814858140797516804877081353693761636245570169128506194954172191325175563272897101905099558777709816193128775657957829915669649780622648243460327481550451846957738522458405973958197030114827157982577277017497270776365537755818179404004586056497035684026825340729336802177694034140762133685196297537004835745064181163874689547261182807432033212107740700314368956148363846372156013902606034788004545240934240391457092058774271637500675158106741511253339024637352104691962085242053826198525455351987631825483565521328895971870697549022586842031796340366285462869783959588999593848258050947731619592215377833936389842030752114996219475477451388912757292531236894718281502407141770707792856509404855639277828690885370728594876199254285894180612646299823360235630795252870097957248702171150130216214269338542108753695197183088587052957133623690272235240592208657632418409768918005099226535758035787933697796250683078287941758618930603027218789383285176837544066945269925173327157791704695706356689404897664698601045007161196022747198255870405101569417453003048801923135742568738064299780600146829595439771683929982022296858783472583930073650637908156060882924762221106786176936903256112107720152557249714854499313054079603768979094403491037488949990689487716806568505161858458145633161454167898300209760833119889587262744139835574736794489189932543421093582279509184447084020820306977274492634901104419588931935070917241347324560382131794744800551909689041565872188173850202358948627335547245734063257787070380692783368838125835550752264961106598116479331726121923880925260640293811419322709544261810720153284324161456191702972834793274843688201705626800606304389361657254718721076549435730825091871414398818403381699950754897190669921746539288099222515709207399870956113467107429793221420074543535669338010278436931192237278939899211392663114583831198133647009391513848641809385257974518375882655139985628947005308508255605403992616082771533468710410088993515354506336131647439125518247830055773483013621049302168111794168363654969214241389469546170462719989143766578030932325262591459508135673501441020819640586616280767083115506440393080607059733731410644038258940407160756937414345642187389375810097520787010441961277836457697133416802803813246486998326115417742694127998449456106024356714477140168204976033073721784123279282697325044273202790386003184837416958850439658166229553716611899232548286274225802042091768969970952388832674944412925436504427285399454610257255233166049779255004008495296804247583731369639535967545939593488175164350808743251671882163735769346709236003029046571856662795181461471091092210008834490110155545400378530827640528184380941555596863908592802724769383977887631881032630487858524966653018706147910480264237498139580407519562246086181041763436668494099621749057634975171768869770383579677133648660215463173519830016176431438565680237814149654367273214852011555516807111773524029104349872935337522821068445456583230053122718604469728858848658697479044187844486185041628378123125586002829898310361213196101521398803083027410904300628410479855618432500462068725065709610859039385190199386375919873775086071288922281861309457378537624418563095747015738258428081429736941566683010401306712421782673380658350565974754143573012496092421052719705724831231855121714705957494320161035740893437900528048469014503194328749922879645834045984043456814051301844663031471599118299156247969796427182008204371139905050029939314680434730975240612758314170158408618892183833318543818822760928987414939106186462068047798269732898793823455974857157483062863439791281127615856759522326445854095827315718885340158111545619954072625774633271391065962806080137243770826238681393925395511761276155569855427921888082074585010082328885680929078938668741268607669456838223598775285546884763432494039079273777782172566582727580993644619858196648193907193575185831363306152072143373389537255591038126566262251984047313039279393493678638207846613424024663038440028834134981306802873449017489579402008531629072437803056943019246062862229291588954887885827683792196867683106458588577038177471450335791219378278603586113077419763946001703054099513648692632498934451278682286702309773336553119700754707466841479320986580436434335519165680645098193996240572298777413006646347454969205707183661685475788450355128101978014462856405060821076608034935063515081314687709458171493046380229454568411846537110890265338652756473260932651452021963325684534518831771658054825656080549904153726928088285897067423377262074300003020385341934537898778814530344246525293216060984004693107235478969469238503024063562196492773559066257478532784800382472045335166547618878081855695464754676879619659402781634582696934726813189985405261904280540200108119741610266213601683048892172290772728686675212870011578409172820638935911849053855592447688448342520672803209307493854514685884093837625837490022618990427558955749611178558239638543727952471504929758223335225008964312141450835083863039655609077922648623828660978140205896101521642116562120833288818966782192400695385363227528359383743202709133767808388834765271091638836291732147129375684389551954551923831521483217708167268192799027797338742540968085371381613903158929418934220827267876903760691503334529945680269667796400878843853497810854948334764939938327844042959150303119776673376762060958870142779258365990760683147308161052451573064782788414328874003266024604392241769689886115015478198536191247614871937891942121269959086126696870838908485121688542207944949032561802783328867509347410020529952891110951583838970190271334197078090759914352348893513651075943642365548987022561702022832586524047599266854327054801840127407699763122253925550111778048023361942058387287966032141453504887898605642684974737010271297636201451827666219108252262702519823013588317802605225552853310472430921785524827101409280731083133073147295391247201670458768547927540634382035829556151734409641035696424967230258351010465173837193267563047978736824950616523874982690000706760139739412476028645025183532362804960372517835085236648942603185250538530938550104785334214033402092236034980041120809965905335120094004673971468779797456766781967271748882074216570283341647739138000528790006358535417447598173090315400030129781619040619752502040425413548146867205859419443558257404389408751321578912028735955041476782903852037410352895409233210281608679297904436480917672954817555825179411706129749403527835322445199680618847467344106293293018038262918934136044897688401807406040376844052568129380687505659258916978283799015930911291628770783605529283389628225042389542609438756421438557968209902172149066631701837766805179731750003431637887420703201389545295641757239048806705091702801465315043544055582507810553929726440005740130440268367174614772019464941869192532445791899242420087125844500102984886357491654764791896366377926832851982336964177020720052416750019101412766969524170527699452853739368339341995508202239430754000525813654013397954015880827652651420438978583503064268422595105347395546558526509295891643659309881991403195761148733554760883419168261452554648187622552035215999579155027702599996189451348320350286151509593090754867023261953016127140035914428583966435537158591086235259685329274767222642080086421366021776283686945032556056215384308036290603839843663250833732299581822762713766686308367385717516057587858174161856646703619363341560712150006874531606193295859917011569902057401538779764782530224511239795771727918623830798864219992415612246155936212484569881205588270541897127615335427262629990219429303296378682014782821711202263479017551533825439755274245140808095925046305766561491313471763759118847176074127791280114816618211623409766711543619915887798526033285909830222051132874863556627802896330051297199399456908045699747711174697435454959792648668810527542515108172399510979615733638601203300944099849786095656170371636025499186895139513763969452696386143088168291698050922652881292856879750076155341745344322418408773851388264910825961586814932250505196338122665761159685505860738939168243283230020018945845176007306188724731605612981020441728167359402168656545763814158406699664504827168771976348796961017697500945439393097144564276804726844991508464408431130463508629337578044532193284014315706585959487319326443232404292240942601451770663201368300770738393796914397350047656950409426117332861644072425949962674716892898688393153275891943498201370493807339700182966824123959363998464974575369736343962744977430747962814910179613030433839629086479012689766790879662411502575722456393840643930733202683008184053670458962737713233760205498855969271996277586599009014119425323507604830202688373748131094988947831969023119028772497827776654120036501232480111756880915918549050715232719058743845561562046625375553480928586478238266532856406651410389455788094211913867608363330164349926790829791815931137164485806057375083400793610906998328009702765233826668056472542011961562740734159447657497567737840311544415018739448074184142785315229746969630657599238134665948279300575119694926730764171053531903734001761034750455390745359881120742067384942977975027686635011342646902173053481893027587746033432581868541119688739192989444063045678282747248777538202272535112665238634399930855076656514176465517976542256918990287899801889207323621861834583174073412409189098601682653554976941885266675478947923798398864620979219871435608240481339890298114057891478902928576853540181984465064321135748605059155399927414559977088626852663367407089537768168990519453238931672666245820725165132705404466477829979561424645455355479135217977138004636070840122321668673062105711288888845164012825123391416069803313849204003968102569797863064371098771653318819885444395655905905229324933944386413763113574616152481496544087789626162992360409437084465050434730083822168090045564641848006803357428598544648176393323939915048579697260962589032745185126118274042075501968919479748367891910168888240892133602453721616604467055231582014858498861990159077581719847467323744639292039115491126351326272246491326089642768495256376351141541535921649728576143543927946096776075996224255440742401289555648459245484167553454838946552942359389676876349116618845616329386549666074141193786257398994224859964258661035355523596515724922431620762883776455890797749743532226605405431860893525239473726844514138686076548347975618166768170114218115616912782575996052629597648931215893993301107385117150947137369279737219299485446758013343400517209925132910101435487865462198206315142130175020182526819856559259710003016557075940246957575052585489160938024904844516465759389318590528814915121998527120719945372079439161882161321752086222929402759339943813072523254982646464976616886436584351791864187114930156767214442749365556979211067272161567424404925049932853211609288071839687549009472316087054925998428446895200305029560052622950026149038837324095842516891797452129485741278315488342181412239002793138054475722500032814827183496463879268082216629301812459220798464608043296822849404715422313226493957029833000602486297187437345367333800062223498021471582579239115437132745728107553539778081248950921030156259741082443263876452732753167366424662293406788279168045771787221847799881079984463644521823621873649569197727075451168645569316019248743115145310544536827476821472800404451442140975119196211259888665404322922699620785702646658219746512471228712677307196298257755792248269918849236447651406181936061374844040144649710500616947465348962600584429084746672750270487410190064361106366876888003007054472194408365090238618859397511077803376267888300464646445873505932231418247277794055648004136072558919485508381099867306840371377794045425965295613740279829834362198277949481598791714683943877259883746125803668356111377575923114807091545477309362702893746234592821613302259610949518522047111147101792268394287997298848286370836670782407699264147950481259286550430990953788916913077915031261457646328334369097648401466472759982858315800443893531168787582626113281143305946263423462020634338011383823007302530372083876960189706677651889519077097009310794767190113945579393518672059849854699976605826213786994650326669026178730250983575449245057647086619339008962564652232732567333676775481092997474139816697249131038034214449663642760534667283928502654667486696133292224870958747465196140144194109832391965706757934374121684655452110552672232806942557002986677288848303998088501010488607277568746529404731681529275123148607700969405556372414852420279627500262440849483588294380441058910426044402964601964238077980843952016235980571769946515969261361304946139269356755004180869654610447344934990598471166181954747803414997567117961747341332120947104903630183936298614954411903172211281404198414896015323855346696289309506867117484572557631388388055522751422469074055865077804718010261654358564857409874881389356113199708953316609525978261640561140810431580931901187423896363387456053474387905335360758811671904669895630872133051084539950669951699335807651600313594361038002353660858758641060443058328979352987865928576574148618020381179851598495274442537491063237673095498666203129015213275589211016201888042539392954338871538882239718640610867730442330565872441548003629644114329103474721157880271830786508752452657321485520910170200382702225646953234893174690298432414430153778386014569828284163098350441511248876721166463675710499719695949616487865054094521200523760563116810038909658619676140334467777502412427706042867544778923588876044891328007742359189578885142166186445739631294456673462350085975815421907315780369161762640230670795942598921842539416355135285487126561459580828192438733384807273715976013047495975021447687824212292469628628039246550345511021390976097423650260632841203578426731952252265684999734604338908082992502812351897453931126497530409362410895898516306030208580298596205738347616324039953093483667198856281030947061721218075842398980295409010545872655940127319977558972786672031075827712485606125169178191083694550249450077903803516543356988009394534610329215793376587448350400288374408309094789977553666420040093365948701701048327851404766280565263915567857550350880345293120603517953393859926553709942139517372920286092146182955852003170934994502822095678419101610961876752647783951844867137141519766863292130228669615844370910484236258008656263269897522890462819250568700852293991181570889646681950698351972309066129208687450657785474776177381160077724199369784561945826628133040876019702544279644371250906575015822579636390487649690507479627295335983303272016298654793164935486570700284259344454503406878476198281040596554262773663582621629295711500263074664379085616163483545651301623061967647138730623342899186490988744864485439438598632519198838387624786257417677491999233306114056612398815019112494666780265568382761350609776098877065897243404053857828766521339380678308157694693106838702382396410996865109139910257120368218535403823935848701238757948719341446583214320658388457734458371487642064173266830027915659017074058806021398550304870115127758788780011303124959953676308998973593533774016197584025575684500059638163977286631206880175247301392975477496279958263279866736946655519012677182927735618822129198558199702922174271091745729926652645056261931438139520635269499065431315568400777438082418899969700609763639886547255360549523105693187229526657739757797475652791686947864082860404511377418142572008388702568732045259849860579220976155139091613869117393042465259072617684380921908684282721480786427076995530633095394289615001044680480906999653272080599226153964587854698275057457632827262017759119509167814723286864688234835368574346268402958013187493796524180800890566388278493903010934219737080610675562058499228577651153631527936042865665126937453122223074883666529504630457460922516483059687430771010810741005569622096042971442291344824549188523985054208433452401146081799390697259557299389448567626715521050077216985563549526776215535106104083577530469902691873768252709287694757936687854541364133617031028492253822094604069194200297100473507761405730222850112888718207393092258446717350024685344943440889613164233748813346247909939672565817853762255374383246573272072650972060115734657665909765366081081102758106636357361184442281032236492492842295187921761525584224254073881267677502587281753824565683056698479373908006139971807382012575096096015643624082992152198116309394575011417686824059031873754694067101998929627483282765968027245992095915459096881722851568278116465053027795415029691317284968615253815533220740165672328036386516639568034420875073414750087099979251042511117962954970351425725676792517772252582476073116290772814289186393267762624662243449061905552729568996789612654052792062470672565070195325000508487850457029223844584152693974097812069314103767886350027338179566930412985769851207400342844454032296913769964857453453138011422571222704389361812124864817572467962161762082747003025095193956139249960793939574504935452519091959231618155653582623456272156908437165101973612608868189956020496237966746301361308684403151575036444919773314970896091334431420090424657522192843947717247568779521135963577628313259784939715636475863782203483408982590534260283946297332869053490802618749041547842988865621525319973712314218991637649931397617834953233398556769779557322886848503493701704602459536903380857344741398665476457301406499138004113946462938553626406111750573727884821379949521530837024821322827078179040901971559772358511756600498228337102092029281773419459702426060746837266003402877522450782409996018405582981070745778164169021582935113943230552863523369754746338773895490808838752752703888254308843092094193307507966734735839793251945512080263587996243415034800946178826838953164181214533004232319200636322825841120380606676896931111516349193932701136383597173190255319992338244281076189183814875962164661246767972189055760978219687626867485798226574966082641999868550463227021507994338514667732107674758871615893975590568663378030454650945872219353356566563208004276390351876591790094727482547250646406961457709577928519537009747797438709487723087925693202936224354938849463721562924382096355382541691411148561056245224957381406813343868719016193148642471123930275939136404154136556017301956074596102181214241420881558809983497294500073754130482002043531254823288495607224640376568576695236338020807295809364248507621169897571333790109332265970531470046559811005671892314785759897386870051591882044971350876939176594431298776432032890590021792406368985872156190443740376099576694249244641230585251619763411974504975526036258413417437011270827874025025753524585573738404617062648451597450769915308461510180112219270977862655964813265955849156084152075139316979704926974870792847250712260372686861413721556707710103413870078030511356575554234353845928225381062239166300350314761365479696431627686237893080618091561208050718879714461115374352543774543161244980492336028071547603531428828069176696965905190487004419277560967692067888880093708643098596936212929494059971367365751592789511943253865198401741725177933471355928131754708380094169343547331016546783598274150873190270653172460390464834713668008705603591020497539193259840111131452735430586495077835621934236580706740172520528544421195782628745016690784821441655920681436228683685579954653160172734622763052930073922660775982713350922600169977836188896541738333060009961872308447188187365531370997412003419620562138962830567242391302181292994657923078807254507157907582941680164358578409827046627259177858975326702683052525574563632952585002203037069532538747285222856506624190780868504892607681766613737839711646517653573665400767718026498813289192743603996796636643599816673058164341504893292764714559185770937949936368493741604149344675757622510824337893918238053408295447755519430776718570968285036676099994738678619526222626024825957518256444186870432842919998800747331878320658398726953971128022910376535217663987914467993189587076973662599657856208208215077712493179312377821543197730596239965321805440492269996876272388195046371995902538817656527754076755962002663158121202739842664530702958093757282528410539006958761535974243951379082534439765530943146991039441282245049087089159994826096635561646311884011887653051912351634370193833198535604516853655556833085841962882064512710217037638419144279897113256799242236618758549057209319801239123141763793176002529587998917554000012819267822269104794553831130905723002018701400313311393647848939934979113062689318416622739918754986816262640387046848854137505840777547514432826553166556504235053437908225331543473197427230747953231098858632408973568355789734318599108238968974951240866444526268103726032244100452675450881146685730526642345544989335898745997389823051533993078052976955568996258164011137311862733387508106971205550916696987777381572654555586221705757247923431790542519622915493406372429828386186084967107145353334782427345812006450140253065187202818876972355579451323889291500005297955641227112139123287953073766810173916471773864836534644125272176979892553046850345256764744325691274418401632281440427011937302412697029435436656160752658988407330044887622687414458142074129982082644254192415447974666096464712532658264912237963001660847464927660971109670635557885324927019528025894060847511279425384751488351268964162529246795969783216722497163520178918382574329116992456369945080866433378234001797693107962655591815526674024100375099409066290519500330729962372932893596026891311120688370036284381875956601910290757963413411368001503213086286153477488063971624423777239786742527125178219437879519687163163894010313384897559063114958715738928372299715097002155740393922235782843595957720412287153624222731018165687477405999364704293264965579337523642857656538237359164392768968728166188574141460715313835765005361210851173073474086838894166499055860456466730436465128905192820531426688770838162864486412656722902243572793388605291717893801512772913161718025223878052367914398452897199906588635684134601497932318470661696169347045602616743226141898196676037006927651755863278529606790839302692316938072994954877714004981752337063797686435493819939803273942499404802817266631944760767071688307408880923329703089202011647104641205598536433534374740906611680466177046322650298807561473056676026591840601547565125573596996480255588450727538938515216455085167795650344991356633674969610020195590919676511598774302117881508777919922453783669346442910499672157576708091920951490897782445592824294676486221023268295842991466634622265350778620849829625337194421560884176835360768817010602712014331345649913726293139432962991760448923684238036224129514703362050215866646524545085690044567218237344359575009953397137003583376990351113450229463349393292179338556910699410983342201633986565325920917656697101706033901087368363587414545640325016195647991400150259302724409834011212155144843021689670999447342185904104599362929031175716126663170707756582757352221387014413993565118245314088750180888808457436807944488381323294634955489401778885699384744108753299932807220667086874542827280837990740730599917047486112170550750832592897807968562494999214845586013262187843243563435387467695680946009827552951847586966248667138553540684084401042833927522573033398519647733262154030380967253420309470296363628421320635620189636258614187479847143434840110413185483805751941446184689189287877275277797076027345005729166204276405360447460626629024334603010775287940031550693390888261802892444322575265822802520117443811082639486551983682216187680757750004454427761177781511452096484519191968806791584664510536528371753515842467814966727923830471707999007147115179437995700690406746044141952845201975660205281010538594936398248797560978037402406625212182356239177787182021723210919687440412558597239401255209555276579672699818332304402750976192607120467036366791631316773681640135894798541251171969544177302803531542033495329930539535098111941816511151417876930399649775970541066374267403804016091057685682621231810222479739299028590101148323019674173680938102646394924963056671961241654957543167435867896807654343720405402262954396760591822960580244717933890796314394737195603692340454261756028402170722303291823253927142099139443019721375743649422636853873987451757793646504782663431258690901807329375124071342249965943733437258221786222338304321844793555989333265424177966920968569132583343394628376459796959348374095826898424920813455395663400713282435519373884967802035950784161589581767548368440367779247588019948035774049863396492287056863802196199484087658471987960017084206282671243452878551874467956393730602121439497902073450430154557387189864549043123769617368476740733376854084332822247888060956100489894873825211513350310959284758619867393276671275918054432474218017030198876474459211810842944286207475376320399320061572585949940408475295614325601417373777124806056522167188291304795133928865190670836607645494693949391839207808608328418511302311721752909823627657186190111638585332739489845494374427219150379489970094651280796501148071885044685513378211592111970780323549158157942940324919055690215776830590185949368933364211061547300036998791189560696498227699146877257862543144380544702891257603928912044194576391493270959584952330229749368638153157985260938663193769009307085929198199703362728732608308582509795394072474389947762010884238731181870358889191420206086307484481326049168944433466036604211632581318679555266856117760978075280738396862208998532518059411716782326276536761955109838148470624662668171239693482382940623158376725912490938054380050054603834180617061050798501701044346873567612204927081790878443968249251204983674301465378962968785387464969820512729737267468165241622896274566849553686198313036449280399203410818949084249694819985009754012789002116841545820188373950330957263554338293385379022068451347822441139022145122041402489524690555944353375212760000697356220106915146155062049610960359290086385115523375093026792167820539998340536743612347378418578590040401140276403110976605175393275421037592582525160465126032816421607295293303062538195104610259076649375545799517256329536915262177287853981920495140656485169602887515956290639115329859121623414100013835642354767750032416297502716990490919581486876984839483329348185350390121113587930271407729966774700267349644848094365972463829588400138978841531135708506872759710176683959129333157620042915821708872605316303903462937457931556867635664524404165062408075060320873590764114458217567440324060911831471998983714881751194042663466063625327636619759550106247083272743315895630333058712866453672686014773191177818229797020149091409864753013189449616698333354362612194718944287302685859047388804390452145367116899723477386399549918104078018525643668628646948701123680734414365773022488203958590221541777508376516642842359041696437449327637381224763406152732841752708199573889530145236956935001204146913685885954165804230860834934604137613406873229289257928611981195614235570237743566757662736215614916731091112845907308074352905214312243047264435273403232678891317648529888314821733205872906894669093470949153750459437731161263943435345724417537049892050542514928292163785841813929786126643229423203933720503359161119647146207406064677124500824289208214631042211318720747573037219876111026258761711951216183599141587571335656610260338317311303892869631303267912592961036187274940100635087723877436943186540489822187451652214134567851398406939430535744949548941689576488722664848308947843984408602477030658386908844575372713250877557165863798404353557384504690256996537700899974525085726622944974791555699347211791116901438111287925554942533796724986601149225494529232457797836547932999226104267729156539674358976808758240337217041586890739282459661568834999748563926092693945346476205646100232172396778115807068241282523403307265267997204568343828256744847786208884551138028858673804325381460415119560718101629152295192455996321458060181563928906034534534872126406282304275765526289636822205554434780142498052158606788391343714474425683666785407950538714294243278027396906125985397322542030816586840017564972174263639038712738090429844175393432119207179154950985433397637638651769558092042263801528362716897585984389621425256918615316696241963344897253783864880531441310836270637656446133221315649142523523991066266840516772535980894202705081877195290757488920735246880934077725166396881809158123555687984105438481192710083255710837174050448701357764278110252895724329272147719544248256477708536237229309847168612976515847423899591335917456188730105574593595520829790185267263000262581273465609382271628723920578514538271403418892216635560288157259328741780334000219657416391969507006053991996384804792216739431872961641106929944301494874590920104932084316033847861792509204157517374789014249471940184214375009937028332092581337300449993327740572029654465743467362723871951005336808462018798978851607203358712620724479548948821137805438495321671428540596395206009604612142119149497680652255839633546701425200051172508799846933486495059995761420237211762640075510508368428698574939807132893580213035203608157869282896239945212056982736290052687608830490485664576393211942132713158849329137671028155354570623833682917158500964438584565292757286076131707101426577120448485226885860730325834818056235844889533493243262540874464022328035490463774637182594173167652995621561058859519348121908955904940349448399602785426462325885557560401398632168304970337975903307514864617814164107161555750008590004509123814979320197592871830576612871194686609203456179698949200328787291212289971945582912106044000203663650944029835323521472825400837881752619940572691661653917205194640014197492911538727656042152985651647662122834074360286032319137055568783451628549728024605509906936097861382721020312154760612295544983606268509417729291082163489091973377157683970287004290858290546561857370846903858944374921782382117149589340825636973031744136665700261180914472962019823777706364491236614437339679968169794902378387317417877554570118407815279367198187202649840970145433264055424356603363311586627499032243257041214964661347911795790273398204843170653186410484015984879712420837077614873281853123865391257433405021087888279644978190024533854149340225945054727227907162962971806825646553848158645591824289961269127363839660558575377158620326093899394769656187546449886443169634263924877493788232604651679305140821204742613189581800344316114762702231239609796396811829453528807414878495601809551433183844951076858018256572984884259429035779348861672970697790734672468944964302990697097155030789059408645068698853290345812466248213613552280322642975531619112728607199840994461147708244952288342971365212786434812840320035193669504590359715872246214187790834964936491377882808361486205944262942328661386944759464644837219243543323542482510290482016061770680410285658974425844211250149236838524452484582346431531696559228742813037486782498060593319780697517894083628913946990693695820322881587349697609054577539060647137626528252717092226359977162625113715214059960444087994033512550189140437702271466787922104006375663731353171653127115726923515012989528253556990482344487964981211968647769661472222607813376026302321178815932300206288514825235864512911854935337790795390939269524591746117159281256328494763986962658991960401555876880514034852159925857675526116157408452034648810328911473446918067111193639493269095070342909180271435241558501649043161888892028671100659613066236506014790129158946597596289793346545061836549674366582498664870137733094569566946219168108272268069427038595371209238258547943831783010792777574578649167865524570808176470110431460879697082161721325314853463724592415036787206595353887921427589751080837365064118706984415754125742634594818705073039036286955408332623710698636720454958567522879342017075330180168943105463334096100629812386997570272000047692465545820224168321826674147755775779159432603256919558583616329962967725225389194606350716203123673336529588516526743859100931296663473362042289676971128177799770753749432043898295322457400596928624843183918667486958069874488185021776832268726763603085013097357015585389483540128576793487687311619335662741245197972887035055664866167351240961306921143762505038874801640499926176999457471582757885806115460147542904835940980386708195183751441403494113831667097704852739456525330173125327914879786870546906982654256035523953337763011901161619792020733426128485799165246544002674400695280720561791805937575353417479383480417792541772206836914729597016469090014663200643196096994795886777603200230509584022080384319541246631447321738995257322164842398834341363588922848008220777266959291056722199891078909634077991902760719301563532914682717128747271789370591968885112629782710187940307085627902871323112907489975160730255487547212417538045633459973933680600566689649035065498099852335261138298944324809478961070718164976102110088764958243357379815504571360388570480359448677715161111446379260850165696420806059485819825277111570466591102553946095965229749005441661678854987379415660408314747159471133882602186266706796868609975983341645707994990937954030825354952254011411248192100020455489310553946407112876816553318428118034659421668157703488505270364603202099195346428934395265485289727308721047645113502556336694222544523315119563697714229619785471030746279944658720840552341841816901117842535633986306402743934781465436761485430847805455761395534759234697266871271047402939225501181701281507575385346762864173045091006749532225504667138143639274476018918192206521048161469829711815293621542636340181316925260866160898913282294715810976414376976388879383423995844806089839233959170831270495371554151407014344187013224254810523027533621381472593237187283783215755421086342716538476676168260856282214702544889405228035698765167696954111934953315523955945197451298876502657887932821585266141547258457665261763025074657806372873495930388180373724586749680855696111844932309632553376555826622822138512055136809406123032144130257335879170888062515079521437818901920444944049833159885091038507736723227449346843575610205308693433009145884517369389066718482976051782368559381807135094085509345142166372436260313559174990410922454685176823008390667595422275612943294605139700483229587998125674892309541351999462081895626419422561104160939802748052460564291520293336317392039299456391411034622847546563855876678686822911180936689027190586384007488219464631732170277018419266719453449360523710334260313232240388549028714138178314201731857721507710549068854804418275546408874589487648454886745425899316689236402029511265704068986492001162443551202971623125788811883346225251130908279317481992058937424847760191974876909558370648906656061685708557038208751005588404858406357856049133975206077849291909213078301853145261277800639998304359779206565114095800519400723966666411201897929126642451986854457287532929316124432854671218396231530441500745612749116447359225010263647940963307275863770206628364385415561174462250240235115843251083987925116626499101464081735063143924213170859871772540722958234826903528048596613195578892841725696289667917228432569730407194003600290388472492557147813622984591656383774154073566972459436115732692103498481372113504023725924986315147769314668682571158892713882621547683215876384476654423496698399911647573877162488606649776634413838534549711068944509422855621154405704130966393661657526458048668139966403793485197939191961352368741841747730620302842904672986226679650003579491221840293799883216958804982092697404922687952832352425933765709496770102455454185458576237477724133980515322232357074170444906355760798987256448365359492552678655158186558271636106299352372405241010786767419992247976026971958606745194882457049841250827181097587566924435437974609589303262208427014213565841069193896555086422512938741589469498399339717244617347062042070753818126237424960381797153354626009363575443821189226896284403176309777646964710586953186854600305660528937294810565683908745025141815327761520186034714745494519081356580620610438934539561925311918922876463718961729756761571797520681617966378487754278079371705008774115586592528218002043511088625804008898698143478632592486375005351181821733585333287070260083139880260404037791201497136145331678895366244301201435514172278832106052351041782751327419918994942634940032632044735517508372987413342313287187219854412276676024733276840198244496511618827260384646807989075162905409881800877840783033167372760605389368948119102857401558237278372068144222991734312842515260689080659200550646461104266795290139276304620733916518721683255794092678736900353940035579347481160153972666306394517937066771435310987164018473414130528593572480416779280431216079008699692743784870030602415951270996732699923937905807421335586761299544040864772638311603253101384376792830294778228278749247729597894862905766563320455795898279339350659273359163300930608008299771424554472300680020443109033681444365088029750051150071845747440311977724761851854462781818931591140610597579799738281401398354327375355631891323112333933060121186823874564812136034624235238046882777946414599870064434460391361380646683583053337270156772028959451134725328949416451739447708292330062913048506650271617468432273463714812569428794851190845433733918409511765578290356944404178852995722364351311302432051678706416629667175606614452206774254047995679126624231959762111658686828549377354236215675838678826324740774826363257510885789945636853577348724793736701987060680951998617982635821975604428097686783325457729491509143963041700452095916006124719680088332029781850819980729006028782575413086473472591275657834935861174703084902903263943376373361157079025505608812998452092600489399868216420864411294167938083627736276365987256330664657124155152827465657978237964512592879176848901877132168174956469141451595711220039985094795003368718316457229811200184123050404778436464724214651584235045715476309959245870209643465792348711982858946990428570722500920818520115294276448257169975279542078434912775006756202168703112901306205403676119692514081771704557240238797493736532440181946948804317366030377454382616372519580911502106909386731722953441297412474417579270897350348745108256438342377239980331026997185351022490218903860101337702391709483414000873475047391357331766299355129218185748806966773127667895413661212195485656055107540249360512612923947402425935052752684360850208375855698978663295865921690808699882418231717099090718342994549527804539689249457181882499169923731788848809698503912252499343483822641105990789437371976206751092914375871767658261535301524674711105398360845687237127121471305166431562862567423906755400100170482112699216159818896910744938661199916765063848459796221705437657804402182867641650624062381432237215219669765952921343574422447468668679866508415416014683873679208517588143724988419639812482220909827657120263644316972731734955487555417539264811898260668542881633636239632327097235910456509931519920062069201469697073594396295912762512524031666348643151830966840888354741809193208550338347171992538802076438936288802634225388368083874357669685578216046803867005543017245851580460765575641302418856517094788681649131266684753320353842864387202909871893903115040410447969034037010265640584708693531553270059858695942721727669695751971503015529202255466678994798533343556142956991131615205357601560295743826855521087456106567756597203667822510612430686830658818955196150566854343093250059484093088947387077547196689344856757563042832121628007814490874504198894118455395390107792330419727405432472773820053781504137940847853352481987996678845178605184677602305661881775644429863034805568921028892746570600240338392386826381565350834874903865087649291534196535600108834857797054859976611550939315194815078190525905320720804316765489532798381145186825797527869483161762408808518084570659997453264047219491441165737884157041302242362939711124014427231098398030267463790874989494596999475566660215482612769409610934542079880496875991324233707646421528669341389966116580752462375641815924789286041401467181429093458819344951372290361491517214609866112067520201573843232641044229676957812859427522807340853178481200470490085585030668591787257753202117952424862261235650111616245692172392784506904180617949688989681473672106692758910555352986156616794198631616443622623790906866436233604639155943967019135742878801942315808660855093730050967678444732406327001738274536223181936473692176645077143660820801886101517035423462473226024317155886459903894340422948476288648555672489468270634287791533783252191441693293156897504212941431581310231355585408950259250958983743112620384003791303306267840057789890363432467583518838774623789196985514175138568528608782822673003428157203594026398126033132363892700767160175062887860179581721320511988951187913874927470455312654287509559486177872832114497410360035109050506559855856886651966106537913607817893419388745777730034591132805276608473566386383983461422445529542023306274499199703268456871804553178382867005411313213361150464591707156139165609901815917875235752643396834009238204336663259080372252328690135848811772605194249384127441814927824886587154151481476499822386696158796523489747105683385552504428760148045673026015776604687649616756073546746930489541162648257094333427953212848928067577118454359550961171344504269420729681030352345967435586544656562074047476415821678524362138013136042391928243936698190177388275278591468267307417523549615267233265042890953658985850617719866324545212310899488346779955467437866673737536424315317311299754288024195432370931363110002891888120985264433713283914684687429579772662137787882048953655188033733510498491557700314702209796691856298132847793983770570883239470375454498506567188993508872574696347003297032498575009507504230201673494309163879741369176276513578513426418885504519159305769079902087248034668168097726066510876438138050607775353403203490941691852662252815566751833715511996307809988668755273549333774489343262338184759550734274313454448549862470490215057683936478626646079510190600628836980239019134120796791897351398212128130826285756270075475593309632775145499352050237206833147028519834936369142926749510474173443304681983119962102951251498360175103390529377678804194020820685658034221123626398336680354053946618389264831834998129283768187057751575437824197948723440740866833466786041654220864138719593961518182754854515344373229940400720247000236251480689388529024358856738389482938801031428998470877136115260759632730160311108802129173781455463418351477806616952307373746014130234422863883341033117298566482410699193746362545125715962033106637138434423511519328039995056440327354272144734866536838628896976386717587808544048518674903382438760229836906606939399073725049772884161484458378975097062931672170741663889400639431525220240150020374705263658699747747801280520731850610519203002720809555617730035494258364898834951938656605336598030205700893527978846368615263603684588769649849741394952089665584464886264965008585652890593350224265785985704740072372826149992487447478033356299606704691326455434015090722206018417374733005686847144152641602484415669639864938658570361014519880154177482460609637414876673153942381338011802628075548602959544435282804632879434431869156593282528630297618983411242593575372791739919677266405065742316855822593684951332589667215003154286993213708023282849410886416199574278625905451169064811777464327033725278478386202720264988304977990390693750615279038781076679646479944776824761106943085533890722914825769896454479471544184104118726308195959292248103647327592544768575166397569701838381502653195826946600724733561290102860979091712030513785538589757294126367057980388635485972223285020394888057104503807278615048642916625027368015753886362990519339934618704197357305808508324180234177719444083698726277855105539359617968912359822984069670905828957102075630156130783469325991928149728818249487867243790028639835402105938133791935735018594272007005929557225993789541638767654010781675213599736704215073744205498676832773077166605692492806357718301106062791299306832267420560860121435887164769135432079342813958885318534351787872278076249201935882817718520563969809306671280978422497346189582462017282519672360326298284938954133908744761102823629312894613201763629835333001784951725737703087309345073805081222175266146479211149296927033084145449603091594493037844447501270031517326553069322007391406145085449382041960261598584747857061984863799498194882643903322045948659587063228241600720519419612504638407800493039110559057312826779498770200597089014521475973738593812627060606138868677338479841671419021648572728235484360400320459718066739250490697633092900535634801431671612830648323735872935334516756515687950752217679864311950001024959895030765538758716499315963790457322977691481350379475390390948398916867430900094743190580629227719034392317780363941632847937462989524591239021510096680834379237968398381444236274724210082475007989647531139704692324884440740576223044808872692864034601615828486609523468136704450465403332778513131963764304244299074027962763251981170104580996462503691164388152574044065256793446979284018317937417727038682072153522673006249513484495496211053316318987465758571355860638073544917447119417042291873031957796473456120274615485612654673679995507204788683214603080210878113699369020818660308928012870685795539603572126843552487137539463284985207801655396858345779242663961442014291468956062255123202782322193864188427517040849442910992893670485531546553079225220403394246052283392630140434854202165472464776497167002121276245014718678387289612921042138217551851064001462471251980098895760796173129545873178205564074742530157512853602359826974879474390911128494816257305982484197349679369104805007687222718093430036205919271352677526947711051187591436614787791074864007367241547115655617018892625883798026184129659404706908307680695589004203623111074432262587403254726671645186942041418430488762146988673581621319088213913547627891767273098237650985998921606432474187305391890233892808475816416827960059280972437443850907104718039454217810447258848763319766256768348262461752669291071981147317892931278523697283068499632476807423751425818109688459936953411517949329809320792085909265555734512584902342848534792499049619356100655503791715600961535132588185534459016408725188454703324177736199631928016418262972727681903355876649432292260868194599567178763281566540685175795308681512725606765124471334120383675146456198085561662245024319929628284602577627744742962025483553585539994186117608053730267054860344244203023486356243632438042908673772988002415443043000906247611792426280716696164281857374814963213968345454361451675767623416623023810180391272406373033407559443175589038077932739330614445733234723249502350754808609546204941027870884446955601510052204440485466144337134670329348760882022686200970911230156789352268536204987128513332040849874640188453165899005757780570332665514441923760671073649222062820425146697210522900702164014747946902636539332251764736753948072019930967436786674653785629366475408808912534640659634515095514212220577185509878083312755221869512850370640783544169092946172834864549561669695593156522396981124847189661040380067183131518926546763538327646036850101790743558028406970647589350443439929131488846008209738051483855365305717736924839646139046669451980082905535098087569857432265644033280872181756920761131853659672357099508021543469617742879653415522210862187474133447130667403778681562804235847912219890152469379065876919362279080272006498814933632330147726233220768967898821744623010310344882150966959280268588302831405201373285026684146970359082722339580495522161585845817243622996170615043940109975822780873260719657629873855865945015683534319915671317255696204170966970487109881165120296465469868281988918128450193140058084016352944592806983226950881264838482439049364503809488102398538194614805579981830165137419130738384144392473369237720757541258894782904850690854055777687411591072641894303814746422134222636507983433436864897154058480572414180308724294612480610900430242285368242860956192395129492142615348063472284630132808272814435992103610584621771973465573125991815785259480939180301711920821173011861729510220364561973473613059363527401838496825156816824821823101987159528277237126859001927399041905305952981623328029248702549935630982864405122948081261025154413937805821512643507326330601471310308182401927347512493165398057376915675591537075523670227933127092688921010526815995044836161102733154497740463193854955015946067943260540632294040538597288679621549257987881692213754963867917599455245332847917391499579234864191064187685400530508748107001021076977431011834677500375718774043405564891064054921422003984243362654902576862162604414038913309804001525744539212769234042200459041873902966305361074961193657304927859769833214843524350137033882277082793614630566547496153245322932797225052675289477851381239878065790653365048017095055774227822021349489304293027092383736034005681524841411068246266939618038136922070884323380477697943418211423245758858138379883863762721657395125760002596414073900884551953848581082563581074086306693986619257657920978659486718557195201871751429284443189299614185827694387372314676595422250718329606473617069654403704897913365703656921163969604884591643815312039893057477381139643740852230390199682680308388283422194997024656346066159072946991511421483222502633269825515610550664851993369722413599546855521489101498293640848096449843054382973341911715979428528156595993976088089074591828009268018136397017681701950523591726818227938074946421737046351865284530322925397597755740322351140330486166560080615173887360284252582085552808467245729443297088195609292283186548535918076374944028867078995555657023331946962677251022417447997930617231438169408919674563408569783470199196660023381618397503167635898581615364522523732214452150019237212950690187587111785967296317156021414948479405323051939517430139528120676960771106241005163007570371272967223046696446163537934511786752265175144389149257075988337872861692673567128011469377754495392731242748027088130075143985155920112458506638325282618703013753639576626659554937261978268585513916452760126419941803667156982586681911928149354454776031448895588777587245847615822945417661732060279281844758470333918870284518040926044930894883491002189461708789187507405186752310624384668436411495051625426938049139979272765477552022758360516932251099861949047894455711267689582446262652116239777385155722419420806536097143747341294864880645673253680399807585081037698218261831210033578164010256839914392183521987061727194525238349743923814557500071521436600098932817075953791431677467584243485775423368700391310521179182989566997863771935948087439598678943574422042514999168188240661520278936002544504384399901162041488211857455198892312790481028513922761022523071541971510769228685443555040857727535584305905018225531057344052058549555676463399932971633435680015970728479119683675570017069466096487171389350560747702671306218094106656446760331749337548268337976636049962261506871349809799229241784057224402050065131209730222789356305341195116262100543161213925268009303664651840878983046053273882579197523699268662885859919762806762245326366620497795438687112955369915838601977604419034110202948292394821509804432127226155274078132100398894827673675484172457567599335119225119285615449306235751723876404562995030654023290062347349048274782060353446480849181345374113357666642852890919313448109582432074295280141537774599284188782612618904386586450544891341514563827191010769549604948016667268029179135413155599713846813069784852151026916959171536564349389651015483688982207543392401348200768421769112727461316704625537469040770492993282510679729662993702753739858466371601633437652681395920484625291848491892922154886221900880281595624252574933307124377392715380109246532791239711536806691249615485708607830183315829250859509155995618294354185963441532505456854865989725777752916204109742637233479612443919120929613227646733125548659559582127925073218773429207453062156266196697169257673748064633182301128002082392781129946030792352762311764725764394632692212462045726877538615193906956592400925290871631425551735432471691003396450062800797820332906209152432035075604839150013326354079366529463012560023452870064883123728411819634749043812916628371872950467101674654688681637616747041442837132289607515601413088648329689112843109263890043872153964336976926132493168713378164641132691337683130914153684730982103394665287710825875411580979249568449703207928058370259603063036616223225008398146645636346100068568523557067033572205996639226155156000271342309304789523676350640644615798721002141777277955802345475791325191583672334028438258467382259879903505721390807382590244307317399546460569039496640022193699891351757583212281475860356271296320402876748578112020143004936388399892271051041675146586614605229307843801394153964078481571241082804183688641930978873724122200044018758372247166111917766094705772361108705027847419532085306161928679057431717249791862322251227680606559006977432268145018370055217437084213191824262217963685957138524893919695380962723533660856950090145145345943774067494658756627621085250907939589032919092263566803518294699018134433749920665412293782825673549358649892230811148956711119155013579649781000785889979843034519313242084591187933537845341746176678316657391216245057589038945960776605183054460488993914766328288938669337502696981435312093392297218265576883714193571923465683872862052727743398536194925664414818410690282474982643914164216203741322666663014258084842194776717423194858845325739956213247044851405646349828898277133330074333719338038300674987659978415387181875037682828237483034695668818813583900906756800764887009457512941305152462579657191605929374801356576902941538481384129682834706241459457852876938464746043548622391618978005083616099556853342311967167443899356051772596465068451212562960310659217680729977268994549522658579619188136931956949595916994592859690347584562765083874090929637593606881914542087515513453284861409234752126125885354833142324844892817660508228741498197025615356217473900283712307839871583045502181968845432695450323766621495501327255393292991304003871879139234030549439651412396863880344050034558376023682838156216218980685038376168364429117030829347342880402053424549633700537805252484613618774823162326838600289803992635479808061033965302820015070486735931454771459293832697973299413464648134620736299749712922608471117275767645310084478701077269355170677936492443392956938557832702522344907354736890282856883550119875489150967298126789027211039336340093427921116894688959042244088055349174121044257600916807996582658601779619331008730549785651621825173502796664779007877164452686136742049923689407885647781027943144780450919611793995720067415514230008060662212929926663613887250590662405682440273966088506068513128476734545075664682193108715496377301704383898950682822928880311481124736086005378373746258088517778662741990926545235843732369463330931144153387021458031725581275559365192830127210372088384067361323639500052685092131162817737964721772106757349654016539621936493385751186883410947077774232107311095988747971658426085615370756718541832941874079043034455556530576675925439909731953813004191055648975911256720416035248509319727279873059089505945938871676197039782149545229174128438857435666502990406733794433660580494540422222460293860152378963269018962172278539758214813340927264247833285683513786340377928053886270012849072664726061055980477857144517380927405513474483051936377487624544510384598791068517687454821976191859847616465295944886662854170014886189566157079794112887523809631046114113142703148781373757532181824040071275819124774051639836140826910108741335072425502320395117280809013700642406659781606131194139130248504126011616906467300913570250941230740012275831436285329011925006437300494138282930453891968895835742681135604852252180780456667706249636578084422373661719134289783772556541811796788650925233104314978699156637582872565320745836993205556909997037345505633975831970990370008649579623429817292046932828397229418662485414812823354412147861462547772776799281430607967572902984662781166034808579655903960022073986740499872731290509584907747739343787473255828898463204481030516144330361682889972564127602699974624686993629711804869410129872347370615682824291592507446418033062484644531204101018385261396946491878481006902548477520568926678157571349807292527483464222058240591905892799901853910889339581015370281472675991508712998230513472212541010154030204321718997582428696975609432526955193221909807429712176986857330209918391071907690779299192815340127906559124762325890991913818555691735803216183092293998631777456838341399163972709882393703488830443949685029645670793210598199247196296241921508372261828712293988694572705591811292370590972768129574263188119685978102909909385762150756531795452876829453161552064113875767984986445925372893501362275145371837744183570458363614834319608577097206025595190101052822583330535167988209207624089068302385905765963856155031234569083327443173018641616288525055144978194040907085205837595819895660464861974778170429907963620078057717632414982210612234872547370996039067930354992785802023191122854747353941848133824671032606849036741455708131589609911686548692579319540977577365459400518739736822801783441477270886748582240044655154393774722160082716694350147173543638424243810754781601402860913140312294982369148032348773282557817082327105779290028097003020349708447317526930635157383899290024218283043994503408895671642389476346670601120897644079972541073137022479848344793150298423697896802133007241702463058456741432924927625027241811299474375932408239011521964572781619393437376360300993585842604678270659913428416656348715471256487224619400270595885529890802462007360421312647011501585019392058714319387490941529171523320932155402362658326453493940857440531223089076288974932831516084112781089420926960911354674209932826273550850955860402024518965800919536897157464426324590639815374725353504029432335121347338352820289605125465152671141047702163645233232015315617039813372395932272273650786142051614741057380319094786195002872854891413263923824384713531227913192916510433694959831081649038716576981388027028134542043247325537550060886650958786079852669700785992716718184081192930654018558908516179411190500927634793450507979733618239902641375470058270669987067538000775240546326956885666125647536808030954578348730005444279651158787537558380652862141338986966482807735137956187047796558069441102248367763680722349944809118523498606665482641015271296228825907853241346292442920982328003303017945261817786789596385538611773060161405815397841320524010552149769985884350949845766882132051411542211679226334975765911549176246770297987373146405560092574578050200882371352553769906486515835218462576186615953287563465125602998595344749925952032710884789947250211323481685032793362392321046718995634105119369979433850918770952947182639956156554265625704751396009982663804250966238477811584182193922582319729142975245239061008501130976336621894740065158245339990877758504889132893748218526979259204977687702929647760553676753059278093658305954119232369213934765246200877043752591147398145959626453007073118576963965270724215839956362662695697147617979724024605735914824946711298093217851785573773822382217566827951679452002610851117538007336862398401842619623594243740647576721236999512578893850415581795348571937220687887786910290294396373621805899934715178592132532311994845823144071912595452314944732333418998119883603863843402037848312539697678070512792334653559427686603759882360145851664404783900448153828192355741381588939516582693039425790624546074536174051130316564887353039751170298452648944460910833984711418143565800610069492330573394771208513096051670364145965403140758053968366507152804262879676920571351808684041964508485046282387715224217656871031391202713783331399112578629624424401289401870688918728628214976127814806369065557792572493767897885670609079834472008335310053317317186294197094149031633650128975687272415404970708095487103487202625685817556130759397591223614972857706573667469938396647527637462267011936597129736763225162365502664435825753376608717346905188212358348964388439784671233663076157774378476211245649202694190809897038559413955749193960397594483192243991467619436629443599251828252054230215512516657285382745241169463818555795933688364102520074208002194268747150330806142506549608276202458275319116154740976848427229205252308870018821039706737439197878568319063397310406325604010463582174134658956441564678755290732553643438897315854864480481211834957171429188463898619536439473687664805900407086518306918512900459699016814792407909960750715804537143854382230173448701258217826388388651203237107824921292355700646607827106403769267541945351453522269347310280887367574704773296906260635860055698855917817751857685578034696361745505948340026175639914986816660477915151133555056021810782307431413718132415348966989401611698659870287876842878464374253185157643795328496836777335495358396805674006072425682905544076754642171235106074527758115980270219125639326469549885006435969077992493876397068522053937991946493485624847068223309851517935972658688806311184738240324077909547883367573490635495984992957876226218925948171646925916348388128294308424164373471444926375905130812403737050990270608059105123670865777493012467648696255673992051882976375513310286076449321726855914298065747640930788123332500743044572299200186896935722394551902051884422169360484227871252610071836263570595327973651107114926953825135207553161154173263226585124722710281996388145270724372303698841460812741733676286675497727896062954901841630237595966081217034152688277260986320415262945565933629745397529428272336100723740674027200570124025447040777433156458023221352072932475757093427870593748937373229043853268478112127597486871690049577031407868699247235578821875743309673628408264890425235134837740304518121278825678778355526177932005600320949136417831488569341749181444400925563826384653145134974110761375780893513476046606983498873265459684237553273194622352011451936794641302564502857024152446215119906254671006348866657993831410098362914819152284871444765405823879109675048244209867585912271575402593567990054872794816761882909241568809919314251631726057241211804238365715990257288403615520880948619831446981680824652026315122695641620666844910880607926493560378661267483104327108874106798175577537666342941671174765983887136643380390935699760871629931139492783217416963238453527639365660831335142469123089037301401971922926810702449263149704559920966373874987841616344615211333015988106894794953149701645850276581791955019765331101999174149435145007301780082911708823706053285183933531821347753258579354851470326828190396763873312004977001971901430230456157335107087830815773684101391015796179747062263517887492889999817503469669046654398224578742201835233307877079360681433428658356368938126167960748914816639945652308888025048945235965679695697190185393277726666270769725254112675140473668227131733866101350427650142044319279132893047257531345098123646544923421283605957109452166754275651389197590982114361001268040192481969362045704371952949391057664098291474135558635600984044744824282159505890505172605841898487959888735115783244579482912404376391184171863403320049277172081719226086421032690595104268711023523794506569289961502829558157358586506874199075675847531537704402110725691552375767857975077028310002688727202337438189627267075364012213503259068574486136572515393229919973287019695440328129388377227870478602359725627969118764483420646096786478212428726462724453672889253930989303885115425765985590963066778808165245547555988454596478582745928753953889066694924521485886851667617027370799302122316024403859037659500055785252665429791020744619683335536811062483889924894794447254526533588843536945740267487861706003802409502265500359295611190221359687281498025250982304285342341731963320965645442971828865668296465688179797529851333891767302264664823249263459742985388299671742229260873297837758508017836426305709541620998440649712462369431764257504328289062419760393080399689651967912131601515826917365316755893421912699234574427228339856777313479837172256374786257042904577390649593718879985662711522670134332772685959106710596000393269539496620587489017877712040172534534401882749159738648725055921890512231008066835513980726868965112417068882286252781315187743168360737413764835610930501164056428091586811878809182475898307978120062576763903517890111413639333005694502563135805122603269039063644080210068351331227129095300928838282454126692739452823651794786677655751300885171084945697780709788755244019805958024218891745930942638701703784236251995307415979399562659757089209221821750108157765865792468192531684099446143054531287940592774647852042638121771836111622096102054025741271309626780685801911941667652820224303729636364650518112332274493088696500203994439769097775560201298881705748432127498579312673377662525679275051287519514934426465171978979070958273209677856418041811639673435506679623110966840494809815263519965268437359095580967410865552662565288109779733534566881716102855259095207543143131444475082220640857469812051123138178445720965326005841184621598275506038027901509436037671736202821833170742765590543365833488511525407258169928596371520435147812656406480035156537607962718189215627789430808062053629535711422245933596399353554121300934004843481893564102915156594110394188787484103843045427344700989993224737961864471938592825536567850330424030814653936414897326948085626373274483506618515352405808566704311955248001212218015129856088074126737453120568588864106978291382315161329238656606147075629497687799438904354276443301694602192970415632843894979294787702690009640503962946264253290476505331807121979370244176102616472388646778474271132546931355177430971028192433640615889214648814112010303905069761644156003411552695984752418711801182412234246090766747452812127801124849217748727032213638546087170325396842042095510364626379937017525640222654542932414933863855449521596605258252595372309192954465897762169350531947297920232695686661864924925103260608033733731051764458097346549962965477645232291411006101759753956996107513731297205354886959581017181279302448278160219532594741211977422962061457052373976739141988223072721141305513440536237120888601187788783813639574767734331005821913650860730076450098753691284731467508941528503044791152560083003850108228289600601431414458827033778309071508205487315951499439354848357635063281451129962193909909123296816998603179726833296455246938090501194576764401378075065624299725160498842145708388893944825976061972099040489529311882249015407167203677577249595442161477140934507964903030916045358506679897223205498331588001903959767709567595353557736709717890254417969452725726730842128303968548413910789911931765851371805618372776889964750786849695706219909814294864450957588840384779937033869972473100793739652987919489803565047596637832481068873960147295838844639408666981914801762372699374537056935098767799244825485326785944044030502587987504594383974647870225360634330643828334842945313361169045587879714010542346556533404845681872983388104881611340348487589733119167555797081763504393468300907334970155626838556681331974651712971100314185026563668040247619679962734571531215612883595917807877067733187719398816338227797862379378998173243675849527099282569074345914037800666160820180255882125149601284364986831054372360741385830090238831600503869829342374068602102692911693923460849268839323439601487735107055212613706500788895958002494459537885944671194431895618361705591536994857368155886367671683067330637166104654552511068587671547164246890879102478621246978834238388564683468643654230388043459803960892728963355839450005428383947387503887905916242799026490900677634034394231671518916755418805267355048356854749782907304372217300794473282009984230400844183153807532566842268755906869481076123716173918984352007590317856353927756720464213350872543176689833738454826309821536976136709183634861122959331063743212405007593340590457473114424351225924574793981318188429310034096873559808391312446942718981554956601916914979351816693382868241062355924208206750384202484518695987108761289132328794055986926698638781674345720660837459548754303650738450024215949173736117513091537488899106383061924004905378920931684511728580229816650177519872464571995508230023397399408404565550911845469162066888824112115503754042273650585570325125217457441630837540145032417187348423414998897271370151723104106973687465074759641646838944049522227610347700768540080673410568851635660935823412108527383208905134063143453251165274467728462319220658995261537449793538423472971524607985855356232055787109678461685313843185943755918326682079609371374234258275943237983489051697138230141913887743708305696744301591861646594345609607944252542959561177586706408729278784825526739207307806346135016199927037825728413262547539561685054172140189301699483281443583224417475658675421472835292133137964081526397108850506045663631438997081912813254680252459219629328962771271144708305421872178349043596606956118314181145850155254562994676103163585619352131733045048432040273549761266601859614985220025049579541463147242485579396876752582034797949391857013842907995997132292776930752187078313918524795103099022424410174289136909396748690544251589617116905033956523252387970278535604966019888778237222215872416109130592134291174418320232322402318353008246136512286343881168529637899713624939719616773030242744650699304920933967754828483937374290239014124184989782622081088545864556270767975838498847547340699031832197667080024493246661505084088211496641781419989898031579075109540809967198624714462813417499606079549944061387909120768060090179303857040074092390073167755718186722961016174423040620960711159419317223602521498863078532834588056886898410229197238200965388632107653112205878964214200169309389575494191417029294678242189519541657925346472756210885671223080166988904360502035244049518844205281160992786122162595845452711131660031759528779415176322934507663764433123564222521035590397538256145593777260587816151751538060754015219056523831914236029648089355130359134498527341611662768628098766822031961496237141808698375084308671822261372105547801041429280321823204070083647108567482955471622038455806193159011229613127623852155828567376011299724218144018528832939008037294881178714197786708022548814342660245997176651623861965935411829106203577826946404394709015113714048785191737349013732573855871294223708279765874180251672809763075484399052449024862561975087343788839888267021280885323433198671926537236798810158260994466841550453813872407402152487721874472691089337918992257751804249247663234178896321843728974067318282754166374834797537557751619432327420677686279153092360822868918604750507889129853716350786671017219175343795997054923428433459752418312490049302872222195415571961658923087791506277987604269281216113222191758705793317618568988369637105690261966484066306633328097365243844726741846716998943939196108827419299481927611491686717231277137022166249981929119808247961744758080905761491987830039723015733861569846655133019607595005012947871626901194472288837407704424964358945579336576023411550241053959443431017069804755619203682292317125786516897410112797072483307627525622407418287465095546481959982684008110797697353958843253601040344809653468622477501304177273592054733085454581348906396116000328327789668429179358598913021034179684187923854304207112645412745166879776254498916028087563500279003961418282431458853343813073457838270778071929785434450711666484938064171160711758015110092501035180223393737018577899217148368674640417066416784454732621166178623058547512985748762352141190291381438502136599323347815266341616827881623961066170652755631255964394531896780400416421620954880174286665033935859109929187671787907121659949006522072668474291531286120319793136078966905190947722028383734656086894474711243982505446795722364549058769716075046950610542359026463953086614433611187517724325446000734079643461711643639713708116068399894708274875550803549892005124494667937912896807226243306020514564390710738038305117280802578002812906614925452380305153089364438799912333788361917099907651135968276825956919669070815908928053851574132579483707088490972509128412446522442600447511511982178899805971165364317014100632129700173438944642712403726142496678892583104762795777241376531980550862493904293633345430849525390455970888955175225454186401398155807797342128445408229732164578094506323812294842074528891787993382204582179930137737651533187388195663824890758913534095312018495537740394426581614999671805193223101418831924876163936504465016255904370241260466779061354486090549489520381250848690062634726183775566899964946882057522882401365108311468600719830978873210884294405155081706750697224775848308372430225102313328538688115792392044368023506494347200216671695221274463256157015525548268555221846784405554961500391405913649562644985081847758474806405049123268525269197795946069335294728679053076230978053916760894415719609354807424006294160629763164163983308024748313572579272351240643247931577591544292813838817585929711202066519432528772552898362491200738965879740956941731798346904546006820485523262527785770070970868040620214093066689720346558523889120413893660028253014622983219275254796255529423481448688964881187748859406734426503549490670067905469659885240833556956384665733137195132727727840523910474688221448817290135069191962372679186006903462456181034711161688569669811101844783123209437762229071687223853396074218352558119998205213463177387188207405905842701573162434487282435001031878146539431334891291081933251417898640776540583129607916305048015773599699366111957660908218055206304372305664606061606857383460993658163340791631689567633161547191052655950197088813436389202520109311339488379179076192754704607448799880605817040064786728115892223127880112612581244739933123348661726090472874728969689135328511790086974162362673652646811267723523210407049170072072933991363131839020436102996683978635755795976675186001484964172475601927650807155722242239510993268371420510994432804947572314528999796752850834759409644372096720318638742938010972295470051631870085777648204927590874550417769926581998803770270918623589119768071625138506219392984515742798964423595141128079183670932002941771279331559474580132742153205996606438446126809799478000820138527489191052983165029245667881817933454173695923445922593460072420503438821363668647846733354189549247701792142827040747547809645514706823796977711767902602403823570388259755098346332968744194018175917569732539707411844647573090352631424346383135362354743317418287815854770558858370257117338953963609853997291100776536507290557792783879750440346639687595111332324772500825621686371713489426644705683784187876231892337606479218515685737428348090538530353199604611004619625260089791591009625150924018720702304566936079875713254648005375887935264845667140739305348067566428345873481611485287276279714070860381938380234126480269450978272862139053551229564143357322723354015733739189641795142816823494025071801038805413803109116466321918040389956090725978029219044286868131899562989745090384107065528541714031897579829222263578004358855821716218579204520819725881302660256648880839730997732694105402350424878108842113818753232664452348697204268898315098102689595873659019162786495432664398017402434032782714496801835847322298769978650219796049000772149068746366021863282488162762036531299277454007243077816081346744021410615722693480462841733890483784059815899848075746147607840088361781593549847017867371480773333639593027650573596357880731411669747613326221553222810803841533312261104232294965187850311045091728696128583993788088567152662807116565066903305977433884610043596513415433847822061098845807559402933871942385848146665322101129390474998217317104137251059006296392515411177745225985267044273954143418270234898346404692888678722343640006751325286320005324177507166474746956932663630406704601909220957237214284476028611863413174763341600658943497011236083080579553205641883339138884868627318334346470759149390450470280245370724958185602931808628787110067526663373433216166971771118148655776989874530333787794799156073833848594776455617826603172746690203858053027937208979524275358744444794529987338962785064743372527284169588510516044716386402399730392845741907535336527551180627661461040205342570590837352123012276930057944693027962570413820379705819815886600799025868576257545737068549633479566010155748007899893019405295054304735058439561057859871076959593302252232616238763878910128021874070461143048315825322945354060298572629050955778695578677129387361008079549292724925784640646596332194398073817256751169352469032912477975132774491442322570565889137297976044517144721411562825085779532994152896500559330841892505310574433465703864137514341594427554722168683517230079664835166534856274065575491293191697129188794334506478022189940164545099635970978996670905196915254567692105013248438229392775546608868149871392795986779535547073470916230168172600968922360014390856979849522396207348904159288716779833704743271326620462697441618611840054524212964279248362217079948368368541839732700555190479762464178303771903243936336402351334899654397885396016632492060372211311542768728512234381135625679005692274789215373851052080084247455067314971335357227325452098315802173106639628894496465967275284601238899962569102501423497654241300711702389168722352964325231510167080475253228651587844321623568563783197487814626342016349238671779320803200208787008773353130053182798239956438482976289499455435333572577662203231075550136245944224623978999892229556997837018096391206681092734615764974113096110406273921335167544290184797472423440165475138472668658583274617841337702727474539014431705611894201067374350805617643132675937385295065072649164921767209080788507042295613344612166505283640988266265460342386676542816174585198620180698292065341050079440476295917385293511537781287845889572177360062624403009506630755032298764604460385312202329303900471004569506700522227162241674311862946916599778686732347374310705519991179326255011360841846699232983156563116407177974194535654557775605638116118580231470303269592531729280577253246141450860372985548313480791789395984426146486670793469361491172486092217124351679015070332402569342533969001331148793591216873194627643971227227367269217547382695491578290915353794382916728791645955053610109401818513632576175061508265100390359018173603423067370944507959213256549931913666374505887962047650648277022747531091516703168739556334573994092267963004297487998585317695782430437695128323001081707230657670357753472474493444635709498393809055083254190216559860884441618360628647484163599988445482958510850135163485722515197164501156128203164614298319684163519553893192798224921903885849034191340782970413347434549972229493958557704666796986940905204347217818601843524063085561381699211745303858557813077391194866016800336649300874048747390373886366164347273930682770153758817050553246351163424247485328550041464576245724952570895347569096463060314996824462396546873572874587915904173193005766587003545444519222723677238304958640755909390392015367555925025954461562465766462883534465004882358548277903592282012579424780346044154512139986170859051913254642105505280557959879303473919606479569640416444096359336025263672750244928145335505170399538921575693670473321209987613162020320841093798023240014308529278912120493914943408386931999030854417086662821532602737808988515513500064814354599691423038782191117559681863681070349724515460434808439899204702128119327903202842961370508240577206921308982661078978119691422180811268795844912828503690385242989196905542443123099025887609764196995531083328801881256995828836287893446931216317357058314550180307771331050160739936409439248807556183387214047801968274893778684814244811306161188979584208773379460828188841100511856683507360325862420694641231182696415011198643284410359158775755373166559423850571323402116396403599318301266336189090774021387359034399793616191234147771354852384266846857233503846689120751312387055504842499242516047269913036305643354234608256373723671397459605089678507664868530126528219520208695214465381010496461741572418156890808488392385936253745126312815668441378090052869660739046892637736295665273098622677812621099300302628173595945367620734248488179970606509217996105438399513758942056539928850217377409565844050960876658642363375146782069453949730978213382070740484487887041744425746300898326454970661908716241958521744258099328884430092885278685148630181133990562686599162654814342121462785723681071897691266662727921355819896206760499496296491206563011666821710782122887742617720892490859297894019469909898400495521546269581532528073964707155871357870970568774969340305901470904371202451458455859900346171944708667616768496036247105886718668629437192324850217706514484551573897471261465272458577051322013564302637246535631458400285964676523516174570799525629676149213266092767420405474228288374249382162595587437110348657122047451334261439018350137952664001960961699142663528506946138789328294448916895013354108278571002345512530165357818560695881550182246394001755850023669558704577027966111555803213484424804447171454807572495500190673451797164441208968663439370517717744806000112541753112247529514456294309671641479848931891516036557992544984382369760282408274496517456329020044836295446457728406365461218835038918922620885332612995291150246112559722625402937035464091195928244788563503044591959459776486515885814094153058297119304098282214192393259249796075316418542294887555364968478107814353499004737918881915932731866677315963829353193923710295612521741421091053540762511227401267331350490774012679940498754311212322639966355395006402708474691953860475857064604356522930478608266205656244249455303176029350039586220132910680057799708420870118341013106614194183339489849591101714252890774061948730834856091194333784587001273394879889212837272644821507742532481432744811930493921094567506379097979715200262099922759187502792706006348090756946455569138764843000446626102361171057598401744314216241191455519876578446547530335426352067146965963103501714024509795051637964286738982958393843954988655271213467462952618235159066851740365824510036166434947303700339087180879028373121602372784373433651099581676732768140716308035298819134543571493975075990745828673048641229558933126854476776256046557523268557235970806792322729162664342040082944527123994321844131247402474685485304388694966183782059459218060802577623351551710957834452057944076623369587919488244926360501262033935669590172273400128404160779006131934277668421196944708452819637159185790958847066181999277162115303007181030995531418188172849624037178099775054758440341884952698169812606822426092961741151971908697168271575251707522023938728022581133729206914248271565063584833847777369664848712940048416858042616343927874462843580048468563799006284318590226861661657162203338481660335890056775608431286890864548791027824297733159431489194867222147241294304311560269111093825730810693035877829286804032857102656078374390739417614691710946856862409824684148559641816916614080972712629732898435169263139849778059942715462680365704236272162739927503916369579704609463012496687951489689943449334296530171049687212156852840168366400803380827065249188060416160570447396703994219151492120943792892814523293230985941748441288711838991209046198756168028447198592536694566740053432235371291041352534577882809876720464524590362714517327669644211540388900371342908971037133176629627770207042027905400867898403785677848861917536352051574282236888612239003906782745880378783061548698461738293936064612163364072096787586894619984131498467452966625894960377771868185850415730365357773972232340186006439070367335909935165838106451413663225480909168210120176455723875580352625637296928838207301714041289805879022922971579228195227257886427146006246901036040831758712232757767966479243156068057518858713824233738409359562212273826630888947940602763226574930199375832813666768244203062607226510712842666517134567782928703778257824867067607008600077464502853888306284286457756222569412056052840984935053078355435128484007805653855416216769548454749908072663576143240402662663961700558534062957418095541268312707937860356153195739877819460829340900769822024922842544994513220212134260221399873065265466839322335347817282976971979488334483121618531429628768073262740690898584186984406429317551215432156998358585998251021904942745801299669409931002089558048480231512474876885105651121155354945401646939091312788191770002850967921150706508610301295474961277400577702919316895050750788214626529629578362251937582309863744803325780303486134422899607144728649323953984692703871634691381093368207731155875486202974064225111293833416203894399972699362132669598586139323352009872560694349722032775578697106580324711671363195129059745653978208478045410989557238646618354853179246962088107826745339422370798188042240881604936422617418317001272006152134037463450020522254951354499421785736177549198573360465584203331161131808015090832982503262059295137730423598608781526864183713121596832934838199411420953193943365000112211144459410685345605203621981944176088155616893872725539381284244042967002093006945696174962055769508977007947106800391394485252014248428323543544956370543098859947384839677150262382564972575753675102875467619810431512422344113981170115868302789833054622734618232675979172968112386951378389104960719919209948094088053108412080058339091348624835996132508026019346598953951049564247894417745861209185876238860139724444532224393986962265622583069477819453259442996332927526955006754650732334339117938765511193648431420685055346089911656229244681694853638777601216539587856210055754042139667389116260736242032761532507087241314580901502955467776168985083450984664121324526070943131082022438495432110815810209143013747624723180462250897903053621575102931138353916422235349983065143038909924549740024218463431448417469224361582874945770529542572327711222278998040007869283414434237395561433848249745394707292998034808390916477071114981085971477399660041855072945975699151314573036399136216613624419714827953062650484725161402726652798265562722699888645384527729722393946743510976341385474718928323798216616875804725773375083512211679722958523361509934704930570569439685487875913269299756866852904437739357466456668258746778810229258662605160648208692645340367723415748790396828355721151664938225427296274396270941579067410340594448835384775267089976219526378263166955615786975222267820883340791899169981439745990006937973124981375137583495652380183011641199527569460257170277035999927430493541873870983635664589933695903554211133866451263790210506178246583503004802539028563023453440205715475755301552934570911277883418823381016627162280797711727688910024558822226314742800220056070239053851156221365056663170920055981121536131534609403702217799245583938759681638749503179760281900303898118339187065808828144516316108308570745895230822674537536964894868986438867571009384545353896011182947510102167575664329017625295797437417004436562762254852720891198079146296926807219702770203845139571346275787134446079574786768683359082257357280448132346915702797302219051536768961059953942390569763020210379634739855781095804814005876922656701928633584955656985653731259914243666904847528300223048081319727580173069089444321524161329234321677863347367811837382403082588477863798378900482058605482539160724541986405543941873176653074506053261317801242386805913099668790731785472133571332970545290660879906677054086932941733247815603366317518719143679228800742866603098373333161929370033188448452702994677225996793745863124105483018370478976234965698699868261056456080262258686372907442351983672275032944342641573865346893167308782380560574153761766935069938765284150206878600580921724574631049771541088882910081793344419277402659876888634731395748663341226438225514313085742967879505885327413124232924055858632828944046285657507027158952531665461562720371350976518847270629423814967146020032715029807137407130629191132520330747269463134778334075875838783895471791258573951580216355333133666021819952156337208755935883802143437876312735803812711115303974779371990085880583186230319506390026326368925485071828503788569509541347546565356938948087447906527350644259926708063629577198095090658877223089306005639249676655442046924570912310431085028525333444406266277610408756815137188228644904540808660887483484319847704866960428407675317721509253992750269062151455055695113533225216797701437294119574277451457388174719621447626984199714677823020684966959477347647774411174289451824221986936263081569247685764114914574929348583400318822652293545685935468520939872058746669201708632973887035799414147530993822149885525428988556137763002949304310662926433663804458264129735392930517811379645183960923529862669857937409940287390455730760326927432409949235979696407023508953014482570442086285402306494290897427579950994238686978724654050196116351614476296927611637232902898004622191212540978490784671119879798309176154763556271323734321650939065418426606686990340094605119708925208464877736965534568344177148708150523573673241693989583224961288479989234970622293988754232316774488839190187265183751570921995655697983659949144325796699642674133479200153295192735691316387076778008956632098758195373009335114992600465744173187570546330750131251114660911839578217400264074791919963605437305600716168429848676755495344564657165799004845497471430085277162890717514938794111150189359228101394336499493610248284611324436596919417887971859337235425312278027204418999653093968199365734225209461576144360493475529769036549714093100889834459496896183583979867369075992917599158707367282532144256417495467291913880663529847052422586999201831250852842280324523743581670096067087733080676250729920131955745854712836474995544080353016842072775387247474393143923493460450055442106339187793812315650833329815873875425689192219206765480705779273969268735832285811230869147053205784754741551554292206611354502870640902174960205563175104626975881333470742276144381129184798187273697900979448028489942619833407625094382476258939549277993889585183010704247911911542575592460756195707752156613823411520425662409874616448977920082878369439363602944260811770690898061083016172531390620489364980135802063597792628271193833310539124048980085830955795024523158394685629943617076776086186091940656294054845882448695634767274809236110763771959559265447839921041290013507906323025941007261275702412440475553943227652775085582102501781391466722384795496709172646185543027852743553293252054405344876795722026139959167614618456361034785020472821327500121498584365959895530845589189184819622966724233501089126157716774062014772906648805368054100106273816829885997396339280809676007206639807691971413312009874539083498318822010009762026788513940477189322739283319473534716217410161397997965576607505388019946868504949611446473809245901046636212752340122875004357413690905534478837260635992713485126263931645805120402444861257952710084621031145501459494127433175736063747174093679995153048334299284616205264268583904943756730670042468851567650107229426016161703517583937310286050462353295217073351730343098412459257756253431002810147439081437694373025228081051135503073467801519112050606246108647887788582222543213692174700320374708824915244603075767025159754709983886650492940897430059833799861556139128502934721213465292150573344495298792293115182909339003174188923270243048543136147006675061354021645578337259662808639911784688352914946136379262643606838514421841230446687346280935441630364785135333382018575213764909100371059854201556724427248952584580777291967667552384205753379105264440456376423660238329615701288281492448499605675258612430158692372241418892691158037661839010185785347477790194970961481374951129901028946608244645232976816781987138122680651132830745149821522812492490814615649963953823129107118674771101573594889831069130013746012500673316960049201465167758179689341732678801892381750244313850889674675184369028604662988838637712159517015537408085224242858317184761989822104968120647721531621582990715420508405417961367783657988509938743699069555569613516108722099113153202427181565364905825243539095047717660325878759928669901834022241658814158584956456682172491028139265336327226677236671101081434009723838440959998916315431078145265054877172647299887480158253721216181096407652063775115400995227658725688354897190985409889418628544568014669690429655653849203572670498796991834715746925998500398903029742386121996196278610403563121086316118963835518653434558204918797825621731160561296377069427195422924332474775426898772346689642630841158165909660700697450237584898051232685640442304328237270333393473040055930712148639974552998136619067883116805128437100749954058662261941963661782889428277194726996685917981969425076343968620003984113067707644087328811090157918908995433112968996584035019744724498718272281974413472537336795266559496056397179712961332128369097344008861068880462684262365516124548556128945680206413451453530273095975825451192290640870567496289896971702603033576831892202510341266984971825293174164884638902416082552546765180546648093773137572972916268507805936450821208628336240422456241571709931137745418296872664546370184484874443971276602927178535706499242523200342205397479949613658474234286153367253592640182606659492009351135676756485513292071707317774818481785947595601596262287111405942632164262301807040498948093747763673323851459411313783526974372105760351320848710770212141229660850436704210966449612790566574771934883484170294828776868340775289342020122783420180176459754939455315493614629925935605700803198081066961056233177897739084008635044411511459919076944634609060261304117377846815574295015222804965804842579887631426497135770693890450216656867074102091635097630186374494037360473907035339856034042322211785338068280796718688162710765271977088368366109872133603390898238510554719550380357750044022561946922736447626049157409982591855432710024061272024759052557053127463373288645584425643473956634015658447505512329859449630616616831179983319498501558248262617491365518902403942958049637041393591628075716138283754453021051793195622172661773605077549310491981754217679624075753293769716565771415606390244416604510428724074479468415400077470060750654309911695981723687086828909173817469889489644472760683894139899083734416631595183277731155612502699922754249343597077773685109280958843200246438557497987363751745805404022732797648030847767989205062461229509209260931931139844019318453938524136729248680801219165241100821505792171418437953660599469874272850211056303570035178993008882561459546804203575899805884177393707657120749557291946136213835012830806851327003383038189875135745543295280963477295861058082847522432940510885887039385537304349045309148866948429392294319332042939227161318841077108437570846417657011858796047707213304457624804521608627728369454389835610427154215688056079481417975900491447528522647260751513214128024708417465269238753036788120591361851493214003095848666003220888839141200188027909255247846461640520661700167379778453890011118591317634178320613325933304863135316966308559317764779941847703961920937968595179763238564794341154833293136695117861873533398276499469464174483354667057938859560804300808712264728193868411741757120432745192080717439036330590757552362318051616972110971178512190141379724706923311232063704579019544631065801104774184001595059205990166590396756990240410193692592598078415983806972305782786606949337384690336806275754710137552403359342692068284506778775136648382898939529515451796447596438741950685049140978978643062054683991855789189942251412844915492087369009220390060134047840787921831730572444985175140732574482183765183943564826681184062348765780663186028689916190302274647773753288329522278258336136370794043820996508373268681096546507025460611792360172504054581211778479942521872999313114023387048876838901573350495213171252334718485648952478961076245347259315452101978629450319822780402792287826751312526056497789468712064411127601339215066928416648096962691108223410736327359254710477323124218346036840198169618797296359066236337442643102056978379585339678180689736531842789450571537890885775030739750813349537194386541646056354273753560617524946798010982484988658226791943403223384300273059949358115025250479953766146037058047367519232411616561531899397465463278305660185073416208016883480319721069343365149038748257956578835351838026575684899462587803576127357200898482470315774077540497821693331445845479706358382916225496590544336985450022811279342246126361787612493375880368365466439733125741966232017268668675139460540226876984140987814536036688047966361847703008009215036157319306311802896350648092695167527720027675767456306441346185237423112296435115149504329596366020684208274958189408922803148511149052237680343204443382223876494840775188134076105003092292124635757946593696193915474428151673338635989234167797126435335200297421680075391887541581760979436987440196426420735774097801112189871822023207534741175714186814566755796024418416328330266900806743137681074169521385973200759352684651099503776710353718808662634582999372753489813533380998857801346911710532251517103009967481378449413325410484409175627100527376363207969572061197375602703454212683043412492226717944734234590700940992045703376507626516268656883345559392153230401881053047237926439242870396486491742554255282073860753144328100304542221129746192971344907470211030968842920663722572562331002072255146734955996851821597864591588023869437500937954873184341826119382342900377199670638787917239805049715562659933229700517789319396524718786011001470450310237700042435833181214556201226408818849164433331711595134358496315415758442185920326388498955503051434299425705147256197888650303217346959635542083541547521584696037821442575813589315943554495946726676440976111342722790251916759323641655086169635043729006733857359621739120409219224329847004293710667140140539639883819531590694178607148145927959025547497973358294511818354203565391761591056809345393602104164584775696575124537046650436550895509620412385734578709549202352242874350148468399210079658278703780812802834281912056074963800620430962788864051161603078623053209656542655468254759880906602637250283156116229636513289796793953783588620882453869114071058904281470475453637484758926296600144763390840266352390250507222229344964336508700257902277376047868677299238748161354606055440001121201548288209214793953455409552012434623592111619307931962488355427532633544629042709395635488393580085936343525534416077752662606579497768905456866182526216507514069219152899838030241333784943233990974906553093941175138028059949467936610817176495801977355797599206305392031657644717690613471959684745534122824646571671690664475725864574787093348937553589182400751084109130512125991546942707561583225287333461391802798601093439070114832652283366170584809137701772707631528137977094617677455812933461139089946836498373054996322592212859937989895944762536920852677346607812964860585612203029615606329833193962035899262718211997493785326967455228842490006102321718917498096457484453109216331261117935885827139759898455186805498996200340402764887900798946574902651692658706536409180855649168114083893353978290317065038820865191626754344342660202022173092246917542928959515721731425168183648959843613365675842040885983956850366457607007912284720921484450051741351942908942171184412734076958579294711027514567376066115648392152664854479466561039916028718938933914309633712327885313176785830561351465376979918343003895481686764961566394182193182155790940793932028439311618760166979144803973297844492833178048945853995824727364324992334174440853039190745515562310745103278622678931649774552844809317752880088132822610505521472020626730269822694018192760266000652608966160923255756209057397085124259323263963190227561705176583914449333907561680082716258905042546065215370194018669960128354371289379520041867890651034891118587500827879621091787519526178850359110166625865039198220703913107912179980890145259608217413383881707050870896179159762121053609599230191330046411271882524307469976965111575368797474063725933070973692157027468683725830113524563071504757472040971698979350057153996839844294401471355598804864455238784843081660676900249965013430203725422876073921925769404027026541576739132117699852958420013997498464248739532619379762883399278982039694489921659523392486083669728783639304554620183492061688672947538116351815665801201489049404683682071406720932195748794451239626800352744016261632595062318802972746638698961903051048020244726157915026441675986901150846694686915232372336320962413638115049520253678150529436815604428910607902452555220756077118809552089434607539760519151982605376332570908164378833791465293562468716608073534950191047503970771427248034151004396085556248663266780755553145407037365158539446111947316569764163014938387332196646035145950423842897639043853776933406986045571306527384894338315839864826869371409520108475382858181906515344449097136857267164460581894861397594289753442109989178885815967582643215754036363836150889119217753593185484799657980728252003602493773862970245822677455827976062839858414952524316284073350764658225957571899030884135604656474527202360765520907167291168783050726048811096544963988788675949593518970667221499062076942483399707603192513839283984188147340319764530218543131972541807538782359703665178848258938017951602171367502397927641759948225808289478119169828153678238780326276849220939964246289649817350359678595409115303683505440823487957220445050826515365030846448750193735768197152883608777927115125791141455464663948702400579381775490648644399464123519733006281820353731102664093678523398951944924499636335317092024054405238517321163341781700800629465979980578384425574920768636607813034019896818989048448176560115147593107450021811622860726442141900323709358600301680452116590414073098185482522172206683317800541651624842940308280791265549457029283245586836112699207001168069916006526995682372892885238437751002217835399366750337304739763799900291168773558725459667306272954575858752768310814964282963339989393198437598197012197914650097742724286750384534361009512274927557259205581107107613840335062599499215683591234549197841036965551982631618651108715238947409240835302145396148492526280897827260758185005733962238309888741761105769022912719222659302969162812567079126905565840759148922845256995010371010970179909656117720764263690844076403960958263568190580048509506129215265401849786616242231833520059954365022682243197023438357766204510280573662644011798940128283739721849499315100648792719807330007744992182171000516778055506791099807989020918291472773743445760177089263476185854323512120933226965063904130827019770293122054162779165585747899780879301816038598352211753629199052568234207803491806832088166594648815248856324546110054024876273996075143719099255268182376004102047241419807161256112188989309787136568716399832101125667825335108205784366829306490937270364379891448550937356522222146704528263512835928733478383382684632202047168645128905513086471172851466739297326643474663707541222276899123555948657052862346982180676904098207886934636092616034147560345425734872058884152640618868877857591891449921409507959008933828395472438721967187942831131431525238952926425832114565387665151615350733662670928598319102787778342476578957539281869853500127437324629467863301256811266714618941632030336442859621346805389448488546746062042605621898152133939094334519436417014414348206662641829030539471598655461540371200993336855196999464034085938451519248494566976533381984950016036137487597557155568649182780381937527862190394612336278515271312800606168707783380006117916735955808248121477679969748361919968816738653111082374153810925155515179180700314437749069484838328906258029533650515215851215804319456941315848053753687871765013982548368575550137669570391348188457946032795376396578056267487397357292998802964655053788634969731567692840705567546033738127769779131616296271498161004578441794093437971807309650636573901727945859528635110573451271833672298288209796099772689785913481739290029249219440416755322385711369508278996156323536038376602102492203508582664083305928638483951703529962371928434892328476474815016384995372295190084351436545994546956467681250516904327101902421179323584327578120744500759509953502455548610227935118842234179328761065833013587121026369789348147076087509930786606582759052563134524193813122053150130058548419688579418523040629142772893761434216562733513894380531500745705256891336406299835409997349460213815436075164480186151948620750541770140587764114810061896498337092145420429252589684893668094989135598962767283145695991929365248663303200241505483099216906499612583534311235915721986295194495631624193453912477735846148424418934021764603559356535793665976707186703190439231679218606910265986834666152206478240360132850428455479177918161164283189492795932979276716290230694535556100445325501501084240972723814629456630183778957957745132031962303583873841669980167275505480151780834994349111267649985012634158344842485827324247904976872268829899625509137440237818965391084200112520901345711486070774096127663309387471022306283156702738055961112928065701988990590450739271520913723875226337703628838581585930286279415572184812892242476708118736361826925891796938518163581248422206938304037869513786071717577077897377344899176428849916442157419383443436943180777625181649080537215154631782714005954420949003004382943326192821649214142874616610625210055243230944711982216602331583384782787125225147410762517621377039887594468357455882952935637645571843789713827413793967574478828797169653430478698029030214298988882951373911912754629314697801246289326370123735165439137868394943076506414714603587574480548135099803025052173286889376273222566362840294686744491932043637407119280555648502311556559218660192528835612830307250561984493019432154114695565864428078711544241915724893316131257060193560127927837175460352022092354189280296474841764544010187440230311140480340368050974598630261060048115160028741450398786510094923325013028961152469501406551819030083051286052016961455963719081744817177052902935015251537007750508681781470854834619155981308003022006731001087958928109620287020657853796740895134510202938325604839351912029141005189674150580276344479502477965160951550422979562532883870967829670458254888263852514363285369707351065442019416033998603437763636048125398717738239358536490722849280361010076368154595391457475534787611631497872015431742070619944011636750464602939110845509678853132141072580722124542217577544926590948535126886922716667072315432587192622638145797794246332971925527392817081098459415607867791884985672544688827255131377118926976050728920219803001268350883123054898426815664255995007502512376783184666026562055630305043194838381964546430934378241261333886962203181279428240053401407093959351367918280983122161667038559020852636518494302890787392864622177463758961470495541450376821215985544676924894700235924402284034725523667904473053559753352211416037398038275684739763045773386299372379533603541463834566966379730638245136585135463125520754790037778110590729840437713926797969407435000186282581955570239506286868826198609202575509107689461671156311982778898413549425159473687344468957048801629803026907884473286646964960696804812667832440189930024456493691031233683179490016061345342839862608104110924994242012483177708883371982296603982151708202301770100018874743101239558950933081975336334872046483343797802711911147186999072343790643127441673272544235863149690484206273426268224255967130142833474861839783524946150313065540317804510357295223894684257538246270682213693990540740221550609748867942834114169455425454842242739723979517327566277250063756684184470402076836517832887480111124910408013106217760624376999292839686493546204329913975571627722727108113067880829019746241530894239801657716786867346753966339442878666164513418013897031565663678847299250122629878871863864774578105673068411676622183627317846441360012622825250440679847235756567274185825457944226241278588704387426542008316805480591344963662552185273987431148132378784240838580744905196963591298214476122432913658793243853989231220534414824065334391112627262258342633470380252068574445728642162656538645245093297786576303569763412909642858347384443476967450567112122154300845726428228721512184599340362197123496909837152045133535051990858494898699113083575061653346190695206240232308520986013385530069189002116105340984266048878069244366738430441157439770712497304530779888389453733433764654335721928470358322033639335357029011209541848610114902727768789208703216530653671888690317916278648717960024629329464914662217944373619236971813477704801245251174441631244079680081319550015977986703867535974298571296903082215071352579579708643209955761380288404062029958176622198034859977589165001577105258178644720702320575011762634564514321521455195074572029657780377652164506508883484288144058929295193900362993584957941420197387730472829233425459118016796333158837855662787826015362429081839722539011188118001722559217886598877877505005628470643572442210584210087397230377652082950330705477018230720867507253382460729476876224926760825755585200697204439713561855799298325312505007874545345438458524210154607050892967911048349066150034143059912270053508670800752728861409865936747980977051226982151115826592344422851080064436171059702836856585292119136206911175441506591702079106520707483614766643437813891220649414290790495553035124040507149402062138727471618258190285182561553619622478213964298925474980966823988900572742744891914165617284273761072119833428864245734184236621582229508867160624651157052486176373264532725164195635354057481921792193261419195994653391296984193815345503542245061771350227554139125819806492790416693580701911043102897839443972157601988465347673199191311556946774593145085570788465167170592946208587064729521419304339631660392946006533837621723397262524580223931717924276889752486022096172541873417588158715323430653577151583795591473501407592912455214920093087558307277068409763276408518644733690013879075052848451286588240611315291201239176285460541551586967643704278498600875224262081806742306870654273029247865426536101516850875255138603272026601863294760264818246502949564601337804072715335696630639547366992412335186393864513988852462248152720214045632273762852561540993170522212315411967198688194988267754946467627024310467673043942315339576179562648426557296138934168704676986026251712604621153506960434845384407567719659527740446294716520163815943192283956817805917635633940492576751077553126265415833259009627820594680026994211717040380355994300882843964003660906008780768069946743646758366068810006354902644465697458893741834609816039400152442190745721104744431447036493239174677279364959752825694732511344092460425944612515615768113922034429269919719802826808049736127877378981088050553700651129869211291802894095165909865013954489616809828664885580831830510622559228598251323529940509303503921085975573176718672451526845339721814667212741279384018104326007244898652990260271569292711981895615175438723809535727649732102160480423718257847647980855251545531219908213304398623021829257623641639021798951401259326526332495598316474810886900468319323524458038439158124455505698412931092749728468256953512785065665063973643447694131264404711886655418055590727688920275976081074887351707031357084382035699312680962525719418703895364965309465100212338046155153106896625816118463175633330413687764180803302274193289009356254059705139554414846369050379788941654752844999106664557311007576458541299660971644628381029957459729862710626996503933241745129393230471601939334191569952724643792232437079751713595906057461282145798662091053761843266118486072402994883183223073198552937568940490583476403806771043086598200821275925089317436928613644034268164366457797943559866647953607870506070053418681818655064062233354307969157308039151087993928846221285547871089868841584631018541151197267225655772065140480117811547952808740256925300783025761053788630499759388220567433915124982825271717217951972159773514265603820989476278403412233428098352489013778073424017111452687174643743269896905723588023454113242323926083314293132545608131238849171177947848429719358115877522847648455991489376347298946264526364275362354587701795989151992417159755633954027244166671727981957425583918543701301159544006968286243226350774003569993056439433441926581574194149104273193542394397005377243705420008149334559284661961016863600163925599673141278250607854979945819271241543688407073918439928666098178260536807440177220660838184249921542821496172209495770606518120770565941695306192896743147778715992148898737264716903789400812594951295029955221079448049157266170150787894175717819952280001859089539189055086272950155073934108704930882847217442115446835982692493768654409741178793755383642192702407352020505710321459938034526490362975782098399137112941311747657471248735656057174760654426255091750172380603164946858313137326632348492614179636212141690020220229630913029981937851005281491970136816518814955683249395271685610866735264027749625988986490122534287078648896344029015738880659538796449307123717733586484757616252747767069112977692021106707466153434901993296332107347372840862652050833484978912446010169104296593157884381115896864911907389591170924128953004740611243647261382514395347113526908404667778664492664204255427460141177184577276930146618000527382046318127875988930061734356465166122314786117292072693243242667346845094646235322255067428816769170380935242206507902547631865245488459832631129379580280295542394829492140365592654931783712655805542625292654015827020361713174048732686117405709124357546965115354818004940227855199737048307474996083652800796869257802604207414936908500664405934583333990948129948217038885491275604874529953614212868575160168441839288788553668077876926457479607221042019475202511966457210364562326249213291032672548186634523832727720260248379074253322915220735317393926660185886587009591865878989637597330794367008399427715392545371679413008326290286523588063486704658670306959192742430623271011628358749652125890053291136724570726864404072589845826291920783391303016155274679025826266675676108993409659373973992960863806294658006985011502146317232373635715696523000607628767236185648524949075611744682872912190143279479482621271138922653892126526150378294024092181080606302803599741713148024649423930744603018702284616641986426632767386451554238226676334789736676689619691726673290692087700089283428217757995378164094585377013827833576933340481417299829213666595750609287214606161677720976068995453174987565930625941331856389369364574321173270656600481867686340605360749300931932713954198327207133368492756060209323245051449013865018437475560611237693568927655232379532999363014645979366628561266365656083847146915480412272757045655248554185294544562026278244194164584390328181894186079739100085650721194976043184068405087626917801807238788648763525494996868129543180738823590522111706710918450031786246236550853637526287996568121864367393830224339914225365150695363314086066767024099632398389650403319117123009884514906112039812365452366046743971933098090093524928763160045976617637875690387288702393222943223748389878636502180557546266568592832458387221192204286232129092901485871735775357275452470481954814036762281752047659368777273709438938988838088237258603582549376235857230812314674106803480540609291756044690718669352549447329589032051224890498892303383229725887253584889623680812457205667651200416618512829785619291749711071384222691918845668866042218671190932212927317532031760509085923095817849042674251973676453261035262444395631256841388981165152207252384855240348838943079694595862958714444244528959074070398310413324151478743381440851380295712218957218767161026039607498489490878796285022059486011982661542568647916739554427846853047501686830342100924250696683771495233459022023681481788996525016631061764332820974576510861806202372355423756422615072923593430807542215819461992149058488327178182384143615047654798746309701204656338516120084352672124729103220240745113600476776329385511709859885853639164331053475978196322493165960153735063510838825302961660093947425661746154789335809537920339071574781420779391286518016737779159060312940472983589859564297900151423208252166922839591047511428688432069752903971622909861156490546593708512462340565060704806316224023710149525918879028853152613338697964105378941556522630187668649231527382657436273544995803038494362398740517750180626294723296735896459691198937115445796254290888535494825942963109594102174963441905093817142185250025911100788768279134865087664784111432347258103016582311015521780512720702514700988557496615216243829688305121309275367180875751097896394457013430697667002252128929683098486222986426409377116939493897229227243757061460741989035780950024902750561691534841249597446238888547580339739039342589322889237071144548838223628128436540304018054683298871029303973279799344699309087621477942108495361678228150874015193681262855609452688720587542704152425202148721961654180435125593473744455581017333224789211073263287511225079654021019831541573323881893393761955929818809593492264715024084719214344019187278163774934904696863154544285445494532340126900959969227946072201127466229529751044772603944512898622678604461678228068371577487533785479150528265842566995442501827326090215909886998403857034434693435208539863694914118934214408548517419854896662443380663610306204515599303656215835573991962937402505464563888776064878137448567707253843121554503829619788603693035823549242505744318600942864123842509476116146638357194827973958012008211626715830743252044035358512828916537622227535970517417040298083673685830930795939479290206018639313590308449787470515545147169292134319346495484990941283062657191897963654372653139885371053101270483563218446180921446124694568742160161938571757611711886455251658413339548767872575606704267229073873355989281399565608581849300857699510266650605490849852235395551139863115389586431815527483910477178495342449768615287070113576188074345287971870422152926012716364209508467116546157580689008832372314944246117848832097037817237376886973365806564569679914728812279283393831160310541670388814786070373516952956694365051411644447965480430157252042484881695566644263327768139891827748216861952950145600107417889417644435796228742393264948908170863302775542631658041423074940967245643054287521787885476935095683540008132295658100884964697642434382691041577175346724820812511372038284912104403743520447558395396457473603509940626667358403644119742722063315464645768312427367670504073532562101671482187566402136969766902954743943543627502295837509766149046624459271727985609329642274170335986776488515245877049320164453592652273033468709272778140932929914168872716561840644706751839552993928048806438455182397638456767197878120434446069287474560241685413981940744616141141190083291954880132824835442619792935758163973711281120872114550763122930095021823816245065114139112650531036109439511160249155659031170977068478280229926711440721989533691621119264986576591766293706181905690859825533263620597230658384979956737108386099542305974534631327961451761881987423456307022232418176503401601666296214274316313686941381585737083500511177181323290874200014831067785826209129295675341649134492928704658083104211125646173003650208053036009212872342112424435552823506172341706245791395148619857790910975178959534743397318096478804337707581312592876573508771393446355425178030267103179667561071082188234693884377771072770892247149244034454311618435249795585373087060875180245379991449796727826544168052240733212424967868602858733667011865447890997837521856395159491102749718133567154472646817049873022938097535198686003224889141451802724248850267492003704430323931903595114965742646363046922399562717933424864827120186300483040400482552861601505421002239054212001450274647191208025908788425355667083720664313665138014254511984196453200943589965201169036269514188647887420069759020322720085398801120665515276318232026835488438390443492010135811534155073430633408168254996864590598125966758235729889739928614926743729699050198307781735558408178255002730408423266024521756609932476257783766772505423631511461595772409509576407787251469658699148604869721107536202371358786949845179904753858889602488007285348046583717979692990369389488873837802454135049480435501937173828614892359312188048882398551753186617338495813294339783407097017225159863899640804978041636388678023566229480783754201827788566290820692724761849956975074673505174694537844323849111863150226530589649737448995868224370883284364556346208609202037551418178180824349902799359466769271940460406668233922425618339315221986098495558127513515755952093320996178666925923612117613201389027213219000241566066266971253670008169761188887331295844679315774162848173443871267684160322146787950344473756644501238601133154950606409377229954369205666285328233189641477911189699099749863325511034071842435205793784777019953291716855987560111917110204858963963084107083023883571219931571092568895248867834917248897971792340032662867215597379331509296498199377949224181523607191948534983928715978882871536544161344625560676135637532268628866901441026161129658514135244556538590354954605722573745667199732599508410393957710221409642988934504984503583674638865744681711388503934109776689476247163696455558097098422321767223927307557495906064137938739180206202955168262786316349704062876436926015414554671921278336591831676091124805297035568313368122157123494863437950115043393043398982065643840013643076487261907214499626826183661990115614138076640842801515756306973317786834258656349822908496719573515948949842399749988095872710353894356142007066686613886197331706193115315011045867517785612153484310599334609998347282622360398932929907407150377338194312203410361903258705461599098493791893930164494216397719007047376354334074523012442198382941089056387231743802644654438322722950525684030238508571136314084830487123685316256544464308215330789705560116032175440591879841741787192181598435319596881472383937532742189087856076100737421162510658351984286351658602345325858829077263090784250142924584069994304953052431725393777322152934437218980201295684330730250134473868154902385415343725386919409184282686757883293992723497372903716301943430274947799984334769631320523967188556622363104544895515344158706834688398007752121685633592243398026745362122487125214388662104262852709802380519776926274555327559796793507463685765964967482790046306137636810043916326105356591343569253323262298370286547730519755391942805206420564725543904433594181431384519449937072478686953456940162264567012702256186048999986977578974418219912509766424969728047181970424766225190361597649101436111412218131443082837318995410540539106233358597417957025943346505538713615743851908308659680724530822475889629951952614916259569872330904528663763822289870154509749596392344651018288180133710585834678212199904555515529383998095141901735790725363245408406756803729922193528134042726483803785436025943213171789108549406720184581534440919850353866338138960327693699985709306255926327599821943423133371913081901336614142664891361614807502213732978321935658649952929202097968717313107536375841161269074377114720672256757662212581178712514719714253266708302868466369933551561623992959890311658679862165997849858852624713661990498308176821021394302180751392653515468757873528647844536467773108338737171564512888404646789580175003417960356366266469797641355590296100757879839083073827537703573769883124365523803684797550268285860210907489860327253911490446889500774130609936805267170691610760789644154464081708739447739183980521810647371723711043695796686773287209543833949910520969161803016821725328870724665367486829218968361594934321858371273558260808734960250635594807883235289892837426540779420427677010029547441606047882294067702280315300111278324633188387081047223564483640910533244712606286668835752683365097284419422315714519908608639748821647717465677243437167546236685790344981165611290543051407215318252096001906120290760301108797061640216299185576641642772956700912742481539095742221197245568787988251479141256663068679465650064589596150871035385258380414598393904268754052626569019192160165899162249325803876247309755652959694846303133519568594604317216140247310572215677655860009987813110975906728018329880209362483858242400188645795483084946608982785808247435010935059218378768741761497741193387532831131827028234840769870275095928601346775371737791376311937025625024823763930374146410438219522753328286771434193647913212028042660348676693260235327894623381965983498734737043563086573433628449288651579345557278041161205232177091589252789280706282545537670148953666256955451225606917823389424286052458533900778814892394499193982756395976534059637236605392588677971155408862712395762118443291621745910300117430868163003310015706047533025415639961913637113922842234724176496779432736506528697942564417614795849573900806779044941776983428822795163619375525325996122276861011532658444348847373510981968722135025030503232633340918935380551379904215534388339335715142743177949303727016619416262841550878796488052140545405145241464241959118484031757086199894752726705757024365520431479786818308254894915020871456210620710727536193116597495000614948775765150015846207240727419953423785670232003709814132074341047710063591763496842616281827434035467912152290683465634671555364489380772993975112644742617304954323508550563294588581167416662493266699862782557709905833862319178475983686601833074374466513530754240606608434394681175668620538796545160650173475373434890459775943788879804405355848610985624213479603978792405379919924549741757823020836952723347030078160767912383104811982205299824796034097420993556062572176928186518760692760366423434985596655934647356290540148410440316591230785083473744795824834341242306193332482405544909009018219421692362844871377197880519965692193054860534427882981503611191132541445812766698643084475663548793576776710923591369277279655871441693123695779723587449529741650673571092678594369050073037296618203153432325430407233190826122014191543342298184257246890051259116617415801661775280414971643410948680352733758254533307521380955023423430080105530442775571825144831934507425747693840986298367932635636170670233521676966978949422430706581786877443010830636063797448511544968152700582297635674817745326317745074638430200785931978869052941163090074726462233523907678440200990113185122627289443125326062463934501941666002143113802189198726475109472515847780411112367372080371527221951487510592442628819609434948762430113972438794233130833222184857817983416850523784697580248399217493803546569068239301395839630042878990785576430331553571839392245614281686159122001549598058260684593168705792932573974563170643995137462071868996400460440879459050990291548090976428106537980125111605299397480681726729171652341451076289653219742495455841936592261941476003210563539964648608548933435980108040377943465683030427401000200770327324163446704809982676884820151019104915272773043376258667542683694076210224954551283935355786565251134256860883014862365163700452893051316647921675203200125199503058564730630896765563946142894543653668229169042216937524890122545592846135075826665991432545941271138824571841962062275292608492171207817995880291382254426652031839379923285822309873827929282464712560473471200220390936797211636653016526865932960714650878417374849569847085027882644478513726402684388169173074962254484320712455737660719271795619409361528327000750907515293185243522470854300017048627044723025511749683360470711848099924340900998452402714833136222613892377358766266352994944569915556671353558138789198626216377540358825008556923880328744555386023216592801978586601412231649413305257747924452386001629057139421084534773216973479092301599442810517562015389311055413106447412069852400655348908882898119932150876755541442058492932146584622127532253664760917140232912173214475495823978368801422201699008191533910567562140791365785967154270739403936716033093265155745291739241404981425572837449813299907637605752304886793160682423690582852926009731883445416604879419727284153243620255547627766845272862687797280987872279375028423431503854284992694049185832122123497105998424991063161936639459858290838367520865728704373256890662927004146551651350383184751387550511570728002130432652659207646276381830475239342168171181123875189267689896613348802855828618228329303997314257951346089791700492739887897634376824593996318705790765227041655837524455062903988753802447835582954538346416423400035482505197566138272205872782584071807526854346511043683003314322172147927800751951399422379400430229878938103711426546322814081231893952579086084839937823965085693444278559438252871628244818303744801583082041594426084750758599840384369915910786682015140212350009580724188656124879150721597660080008422840558647498098173908194353568740185510922947686711057595953814730246986419918434673848911307728424284902546055335495432432364475190882680634597815829817314415879940274937900443806653896028986013866837461706205927905827153138812648103255894511150756911278997983139259130972132948779839714247224944711699096700513558930371318138720173265884049406419166615987107303133550733520550877244082352723571422587684917038330334941007850815232783656010080710485896281739098245537404721278339056785083754826976248323845208765216951804729023569667767289595315050221784325156825191496330292195388969779316299999471183712344742100363033177224889484541854056035655086021443328425304062978913106810435913600551919135082199665630459601170822627991920867701498614023671442559926550810859070384871300817432375663090133232302993278511420528264344927916159550182599705447060170572716158679819355504033934588546611265462415089768802066429221777175068696555222252488636162355963624078294536642935747530167172084063650081767054272441382602950206439868633709208359428910610010053888066605921000052881041245713519367226821228984767218205229250229872481142681470855310314365163706159707954100003214849419951956253203332357254969185796973330655456363764233472658433074575073073381388766477308589814509126453112740269908260848082055743054230261688752566352294596196776147088974617477466815567048552082623115599827971129239412839176624897641688946340131714755122473271052277455117697631389208221496694881504926872266873126226024787784502009391212959636598852948074900998263085421625410106046351743502062049895694418573273622183518213061122303185353973086371601199623549585300053059217760787431804250531683907346963290524074538219308825864134938963018504019019618482184908190718982955516708045305031744339355143612717282064521052437856363887038631933021494188541916216867813414608770117002426188550323350608740767730130943151352888995271715461985093618896430698331315641559522631115107964976140034757355803563756280712404491290802333586940655995271051042347392750722862696968915152116357772521596850628119678736851803303667598257017900263833449369136228348364334534583431473892281499210343373574815510295854085184832091711803078149072700148596638482560596696424487931921496586836470951951748172594302348782843258124303963306320204313535772504511388404521372316480771104455289949107743926844050316120438505336173977891373816431737435305058939577085615114489060693836934945088383097481768567715815131843610721479923095703742027857202193212657813319259945494701136752319622822020461629512708681687859273021434294639829759702562731221062677527286538333773072542031262250617396174249272860863606713063007796462463826872568618857404979509890453635620669060610985242776995654572162017033284221368695070449231758895575974248308827472668595828608022918408137418852354462418293460599922725385414605759764372175192098187358555137725764390804015465185504142452945275688839546902977740927732306770122253679326879402206776399251379222296467620054613953502938900263349322201634695990392087567590678095451118082093255842107471782260677731245104479956906437078217695270245727413557876900483129636081968657544412588654057757645973167669284073508681304942733318930936361753839690500188672874565749922243255162033817309619915702904457462316032363427022694490588872713747154614855436572083787661821708864478058673033447033486548582557810507705148709577292765167006714019627403223082314904115173243028860000827896570781784589315068721330898446313125317379009340499675395305621318993193480879882442270949635772364192975501269114483085845280433385453206377959554063550157172582509454605094317530877916348397012788971518456852097358966572723564898564929021066741801602913326260894091882386966644324380877741398151738716674123981237602971679778067900231316723757631093196293210805011158941783913054109250702791554375326985957995776305497610998948688750533884360701655352320978005461397894454311088677463102301413615488223650231788697854148451797208194873897171676859405724790173681096262199082998593920978868038517081524900780019125901993944006575058290639724178565803482887250691633629154752604866763096746766154017067946085202742328727430815795965667620501323022198668697531530968545656436076231824279326348517145166025344423090888918276140530357757120613573902635592350857723313149813545378445208493101767426856663576240559068623430161354445114508561771860222670185047727240776401114457577332979558421615457740944865762515053735263377545276844798695775241908874632754565175623965094953527225711441399679607184115300974804874326313722453980946487647150755423511259441963231440573476940406366460834770729830084149913172765944912610705374583026087596883541811064163014030990733226033963505058166603326872109166324969707915950313918714866187793272611810950353055267121978080864649956729274671765007172768634312490598232946017936562804911509116934848556126717125864979129299849649914471035500181338139628470431861975148824394755213414921310820473122668610797553073696516325085280021432574146371622013872316017111901058396341456157010769106711658589890454428825957773299677415772690208455689823237267791136088952755032485101113320509522559946927186733668295043282252965306387391789019777756899032027112255131966028312711141194507078997153585644078313946882543140774765419132980862734626650711556128794937150567933712303320305455489296512625887568149226132922975025424230208803791604410246647704516275619774667678783520862713097664111285001146520207764695709717986196511515989008107985502777839991709247326536551584070665197882702210955508918265423687467971821996431589983906819972575229396192640257234571860130521960849197266228967917697707911516401849857455647555948520712389433299765693487984189336437557817859649877622458414839145855450922936690426392673221920758547851893375297220923428379062288741634964276913859680577804298580026379317338845467712262249160235369193427476031989264271731235796582290161193733507997771557909646554980141108361870677266731137417209381411377157972387770464086743785388927316659651245406342249199976227943099119849878416705966035243953703787374680584710790561154551827883911678966619219312439839977927253665989370030328993848266048399246870844377910820880574310993429105209117887121799691827229581646217574487313492865793182675954402008504035707813783358322997932927653534961989640310687226541107121808795286537139544986819541638189502068395379605663572377237070712230346310602564545476921895114500971241325685291497539555580665545081804498762785866079645399599358074326078263137962177782518217923683893262466518179802086429827343724061876743822798948249965129100876806560529375377263102857896728585129722429476511813293906786387842308309720724170456652061725933101060158265919953144634455882718177208763324537497320274072556254636164353808375194910502816060434995720843637485403882099393182124699371141295731211777391030346562905233528675594691077539361675958679995291238545773491333737004448597270490724860145853511863711926061013184613836907170021737649266000505396550137555598142833648664207174295701691217449416267271036241598096252995291627948087836531013241996341401650000833200835800783390783032108824776992395957432721569310032897200755667065258011816181934669131491086311046771727287183676073816876751801556095794661987201707076132815878762482760464696487393322578186730325491438174560275566064323378343553504362204796536195198649478612682350070343501610645215505139947040043140912485135182920756318988201931591914044743072886191509018929791418835134478394340441786356630618717861361923353149634631128735034204733973210992435501249452284708402667140271467866480976022770432429968993390689878221523174845917162386802806446630787914368032461148362850108027945508051044091097831069412098520964120839999925345951985042997279854846538374815338669624009191625259576065251255232406331345401209543184811233103760377163577134328775859518585658784095062029085661248504634343789100221611822458611884123048244274076744535912941246767372992514117578818948803391986574069901987974099932875404057043843599695293084738610596031576064145523967123660976555019239412661284571064402098002115342495224572197634521466606911828377623601640887387969038773712470065973534662224124644941137796509502059301149820179695505998496509887717682488765905432167983912716230666400201507636444955470322824042033548844735500610046827893099935055321386780205477129615568283670705485836544651960809525488761367570370569009871572315970371856262310835618037541615341494131219638506945669759909375586300084248341295954864394115661193901188119360721494730020891029180370600263190388402280394140082217075913551494527876886482842772923933222486603995375833658435610772418837977327394178512444926605865553435319165441416452922073231006545192778884938381216275355277154942370275059607258855330235825110891860550576906017802600810742187967528757294424572564390442619778208126365627030808989429128106781733770197890468616058509189969765094428062993661343543304374892813904027728662478119194018502014795945100455935988331271324953615875441896099837022636974584673948013149728820477487761760825015603109503583977430383419854924655580389524943624589287699052983207984519841285043901997306327770164510374066717623081940282882219946927395620595234183642054198896419422955717871250858459439177577535654112238012821984058428898143138947647780707997121973465159650206599953498515569124877347780122250013928160265472903781881133514015273671603439911106250300127007946523061478099867377496108423256359000057727525489358495149783285141936489404648976793233085786167483808827700249219730792509803196469684960495208410305795733319502688799983991687345186119906481795558777805740182483718740628809684730594626815639074640465712303425097669505634780569427949966266658121556121949652215987523457894110954918525547980420143943007290677098850761685481469131399223498351307608596004123073969762898800491257908278558415925893707187696112953017799625307987025033734610964250825194617222013527496138729275466703545005060967282446855525067216990050328891602934354412046694199403702710666525194805945529102594038524310735507142429425868209411401278352780193190157545687151081421490243697037094242576665221450727005790046146822238320371970606530067529077209678040909152216432615128633321146138586175681873792382399850177583488005343606423761373889277742944724987553826417773334826642735714922664882316607886958300064250055153042849821083564117626316794895860496313979194205912553063611224916555642006584066841636223388886761736025028374344357422768663882050427499457147648586880619266904292150648736419977469516636465106205031280781252017360091744331406917333202171544536445173295915757336831725835736303518838437379282553798494008981240478026522172349945413444258337522833325755111422324390970750234354077699893288908727713475173894127387341179923146995516472161382641478076690947096454946864874272977952580491438280500118122362406130048306137860257260763343489525934848100774340019798650968441930318757555409212252707997743969340770983868811636714462652873045159631407028418943709827189963568792786838529700923167306623678286518929031908960859845555442571466985932299514143820734976122579480664653682001772256423473181431913345531351326698829214939334798337886405331668677366493973413859515070772242354940534722074019615393240597252080746754651337455120971153781715863804735917642122194393670447456706062449744616332357344628903455529544116916644580757190715286737591282954098460820369196081037760218105403555317197991429350684243840691262305777940285606534320803494091336677413123631754701615555535447881122971819355646839380567665806181263464262197320681814250240681469080049385481455127802790355258942445740291005913538688961305002039581709574785173092413639841823291021902563439665530221632028368992612385806087593870564675461298195754411744410103594732965285102902777097758533583222815674877721712830939314446117386902237218393726338983383779276269428839007016985447300962288344578522700151272344319237516327778089067511756201376602474181257739191832117918864549209760571548130333205638826539405978740381858013958904494261192457806902487199154273227944509934819727351857643244880186872637624767734611269533165133347650747477557219140873353717615116192026664998142969113312766697737544685476041498141351048071684349268833697879420869831368559070014127975378836618205983890221936734088663482699485618391908943670004091419954351405028039064042135904256604723193284127693444408352804003232965518655767774470618309520916476279744518398081543917664531911367768385933812326894539503444640597041460832237033960472088105596107161773945271168035180912327458245393773666159011972035071338558124068405683134317976585488731670406446893377603377906834540780946694634622117558049676659008537436026648540875098520710096910939244260086607355008346179973212137801580700329780221747071948300137662060675610375467417328956221996949294249487302108639053293074433783199450765312690768741236045767479773159149888390322053982959473770498623405049073725737195637349391683491182915532756481218547380616737762212951028373368333003256949488918209552793422911588832674399185432971892593096352288050164157605772574465017093620759546289815224580555730966437352350961883090884471764767790286170042997245337008060823001117823200118725503873120667071742803177697534620154229392080385885485977196587229096160853196336248545161385814848671764329377691639496771539971528161013618239540444709418924121502182995166129821247855604429855940276785341998151313417389144696842705712512074278342428843635227366186886126075981071381759338728453832139277102464227785510924394214928467452676450325054486905550743801726155066729044535741193272257708966711461893096463529522194282345132415208301852663311840758517355229160491359848494416976687988862282663819844403775654639316518439347988668642547823968915630809107375956173051299796481515382546625345825623833799319486134499459503706339073269829531862496151017963899889949574677507803881015486332469187942726031093006720498274150745705969130108950877630804232219968350394214301880657955475082869475816593985832189007143927759212796912391688774092870653430396842763522365763328016306780890809894304977461148576726709150345114312927583564428166240769446230799286279914489574881329280126353850227843399992582778934952465697759677747215209661265114741710065053155371197477208162024721495413748658186018398591942742283691428789997793213206971524213628632201616437072967343304004274603127276607332086146129997007810281694526812750464530018783763952542816129076614148808707893610479106993819022149018613465481913874999739838323065274988827207776305509841199508067862578475776294288292084281960231297862170213426677172160019556894907670381127357785416251508399925733361446056228804997840302550768532825341810407465553323124607164205156564549376925899231270255418381632119512529452946301775251350313949557927617861075243845514842548020704946452257114978814881722670610168640077666381353483390318208644950888155819111256330579688223927754485351604637748386015195122482748162872331184036989695817133949359910119053773904351647249450112812444976703935375276772872953929492542848015239860497186297658998961202689834096200562259456116732299994752395379837892848951591800606060236717744296348683460216817079564785899397409106083573296564062437812383891938114577986983074475963303399005213924863616191887653188197584791580211760484046026844086459136158557664396072697018357994000787250090154398548022350737902184055991445784196580818399832164781263228690138382787909608931695643184066970180226718149656113341396091805882718502438679908556135431040214260288205610494582160849483218748182094057567058372409763070325579438697386404720096050543390046895855398712578298977751116476868120359648505416718382380487446515387132850508189725781319677894307918651738111662290355292210179290024896928111206249303949214139861537527764096964811956662454846368082187141906850075602507957263963780608938476724602608129551340477314064297148452460555638543238201066827265885063537640006233935914210582472984216493428184624201203708643374051946339996864403844891619526810530674395042713475211635733163199712737038242213841277053037688113614316962057614731583190909271962273365664303775824059739583320171452906498841883952879219979153215611622370881530577056877759523240838354049033173738611719278793866753434378160106953601528153025826811138748464867147441136330675093260157438955571511750612932257864795526365439736150735261270225541504122669626687229011045293843972539475720089456659504985194742666347525247548914115340336391622039289017639885185081671334982016543374944135896403090430984017311534409159826065716079129503117079312899360743165516354330921318239189370384907625798988033447220926006809368132236824861583729207750833784678330481401191109535583730025181848597885282365166076577540586573877503012845037973897797998670823374148732004890379941830170165325146228889441559917352707065847765045670735578097016183747287629256283149443563410795549633491649584161714799045230744449306598003026168574076553922959489679610950608602801404677878613541073036607215844816053741167608035039781404572258080792475651379932381068857703870907995339818114676397941455518607095687753347162791350412679718915700140195646747296911278580214578039494085289834671046127751633469729477046446769709525142097561606170892335340126077436537321801128762987475588438603144837190405448455407646635086352581157544813518684297353965770129533845378554508229451458763319165997441443806002914958152106273265380454596827060565185485060266517845451881628240256082021898352780947142546409055474680935345440606110377284594822204104896039331282209245530069204793182367434502983813001179966226341344767457235729812364305876864208999169056062321987550585197117183376835297346536813735936162667275092571765475446881546107618694118837651095737529219940043053781765851170407699374946413667027879003922867122098490087085684306822754821598993807560486606401866076088891063318495779566926871879556695202620088348972059390772067411043392919603785194208260834680422724724386110588466903941440928475525019948161922408616958882883987896895782807133092018455814342731245378392525997705533752112954629969079148824273021654189586432837566220666771681528433108604942998675678446137760669446736987679809501783885632064339330736484021435212813027164640685661431731731764029691039791270987952210780159652808210743196868035358739904877001546074432599266904396951006202444516732296100869061853940765633209131017391650067309754882228071112625385244051557391449040925832150858701605758979520845681579181460266932294814183906074359209736546997533745585877319331740133313406495739381365060125197419783578596556346487543751488527528352318788806760874936437721884534180770588499937176091417790430054790355730081432080974919751737498257145424483521421509340385709834346991063949835102926706251587281941028737638932249050382262287190150951449085461403890466068061181368281213378926469602125522057637059008998737398896051590221368568923243742388789259234959688078099922251488435919942821676201043361911899297256764622688887744833731107198094473312251282938851587349640580014106763422615687257662309158402864190324802903467392602439882288286257556189362449716977237470900810911470487883743757383654062755908751874292615854520480367289808523548699628701644038680768561740721033408687463208810700272650021706280560972747412824550710838299933203040296201447124879862919041771875945701685295480290466103270896529012716873093289291305267626840780970787510910719601274557068829635757565287803583780222863074569278671941342491314962127784788137416470238762271604149605030777474546556420675489226438146267395129995786609625568122784954448595855797131661774148269427355051288517546100120359865932904938832455591812377198428738164716003608784836679075509767440453874997773692338400162900946781244037694277644603001508670793669638780169477270601009086399781875628918565478744415717246312426381824936661412733508712745258143118687400693051349280988523416422853247676503234519660075990661649650902547284474000572455175091801000180656116576758225560746911719807568453008915124816077543921021716395771174579806781933423071602484663972879682152615218204642498022442653612503117170139959529628710051182647075552329754901704305307614998812038127441584347709519011998217774513493618865518188131224241745234949238642590821666894808982941605374541404349046267855968192289022641677263809865940379531727872459374483516017538864545028119985659014376518197195379070361389712397534971917455483295414291831651298412890124060194777606170249099988529142956145940550796591330690407561611968613676660632286175540783860946903709082904334745147924974815762198513568904497392492626452190584370788812033195959799908906630489036238293714107767866279850468043012682282468860816800421618920501062335774004414433807233919214707825510981023517724305235510845552236625531690690352671552830969722980598079973054980793348415048626259591623093069758760614043422487141074655275815011826806347005599416472698910859747824608565418622876600488923141447855572799107671925034703295388812739458693977748384898842790220419644241550181084834152240958607645825875130589506654520331083284094563180177269997415867892198264338311497047952942304775800585085599437110911678384767815727812897336884728330768337857345291769061534220961073422793520987948951019710304111708504721968103663695884414843477968070237548560554287510289536693699753238050101401615520524047060430911120305616469550057752448091353750499934890036700728851521963919121865381913366187704744489664996794830299060406630040427164686301942183601273439460457986735161917914439999149659531311877001258363683353477373423327975453513892895124797573841699557253806740949597403316860496321490955303523990407763995183729589992610097396751729286297292013956992121243171790075483247346062518439422042945149643038407322876693070367025980007377255321648107937249446618801014658991625143633084516934451346626834888554150941112869440999117443372340168269992046350520862545553131464606645494234417646543322431879337686841489981545798320717860073302748231448611412846545158062210991077318020401937260412947217883050926064712090973522309980348740235534101250501433546951075340118739206083655639280385637736052391385496017418160823416945922775092643314412820881459056226747089806234029204271884621165835249884927877057676486919226403094191948254492011149780428901782632914092543162619157165045296411767544317093806777386761279398075507597534470687172939503470193000510679005789064018028994347678524039755297300456911950838957401931583117300897542275413290123131023637249770823955799815532903558173556852759778386017945288427309227720232494956138583594920475132246800775156142233038557006910092712536321472061478177104253204010678817584155565056394001991093343110187361332952378892534528623416234419656287461485383870657952671231119191799789324431979550718318860398479810172673159670309666057424594416597644854975833671626369359034019018809159133087078970672707868926889142861033255970949376751952334010175433735882306651465769713707400398542150610791635595919242289688667100968411101937235607082111419680597664577183508902055334026086225018129599520361654175192794492702568700446433394880212436376599407718507379918708502197105421750618138024190793964043275725289105950275868091582692485938454222386451212154689760848720943859785794749136146269117865206173647312848645268571123377367838302329193620488783209527348499917709298596863112666829307152390545228331363781585360499944202728574289302019414394984363278637462514637863347999292874380283575558978597424469119853235981995848686337742239577213936917479491637147778101863240905377938707368694871052005478639848792759818178135067652994979262250918269606657487309550024760140338251141003992274179397976132050445317588699410569133159241416444412878173483128167152089097544171478253621131034152902874363497871404728099149115259089260352652022479539718233334344040211556017681862000020918458288934070368872009747765085766117410121950233329623137276740035504687064258827205316503606999974718631101391184227863607504196685912854463481201433627298482999398432370954706909993824427237556533396931076687041037505363814849677102143368128700940427781418857122417398341643325295873921544224931721647054643623713531605055702137285041337680892458813180831222725493627659763914541294811057645981196699413355521577228767487728971867342896252929951663360553462133515572938814372173529244111671071681320429752017263640551533293172394130639262929935643209452848530660744288946047122453400622104513055465505153178842062123048096511236426469998032049300271065791550023680000826568131865453735917564047572721700083436813301201214002507377110025764652419071771832428648010261854295781778910721563084458721983475586883050247243705194447293731310401257120638218468602732890687807993453458414888295781555959258447216828957381948276986385286321638311990904077799697597533396827551892357088508763336084243034025237897408444530179154908929492698121784681213819687518289481238772102063964360019488205717445081723159803209771670508891259356039541372741007678832757316005275529533006215690230674871759842088178984819473476826827892016257962440026893909295769312039935314302097725076312349432777577077875864891068855336190589243699444320650236990132497263932858320763494959788422701550518414887865771707413526548452515805344023247868410364888184748139645784068066429548631589898196567262456752182934134192793920262224059004906659866768127239986166967028969172208157361242889723565776785294967332790414948542399325566464683033071933360256387900773335172156455888301277186885002753023503923601459205499344557082689020176485692314856664513079772643072198202327828375328629454996899729609992639769659617838292876269715530030954101370235204634939723732467149962990130186683299298209857851703124146285270483427065006735895179120747456264033066860711583070740228937671246009672767243003541965353947788467369386918467800131661626693383198571722921153510060124650110241128640324552133019056789856706140369648423315922130582713644102607675584164006940554033990807454779683667119013596593131977367778624201610216266367187782551454332854327831638446676755778869647837101410100919433043809243306841389921458792979460211453374333153596493877017143819717432192174570693575241811364993807457356697791619339641377383814797510583915070531992229112269769568337383913633003880095673700618406897304457533288946430719258924229204649332815387074379419524679768809592372991116656316178903170278096105534469103110689029698931380866646217176139101116528674099506939385603972270338375729141850021216770440548335075695553163575573942554794379036335987331105500695350855448330564659786931640964338179831376733654884303520014316065923715135398736723207361582408508455440669964587190464686752346585581913618861415504333439389226440698291662839825948984693468634258163032078499613457428562300468949697922716294533094425938923055243831689674462120295776863083963987277037613014459027509806682799790175184538968575478942268439715821378977679049793302510172991128265689868807310426788041878310051951642943303939940127553922973627050159718220922979447304368201784805969951416051754735636454925472320827851260792912595954992169882189409588034404636030390506297047361567310333862174626822738208548020798395426968790227581774807862748386517636771957307917232941567474886495504050653260069804306301572708228149331271130120377946662489245892027765938189624564187316805183665061356396081265730191905550300983185382571011319448725247271033400439197308970958150550870060425711432757223044428682435594225591888006553925880410639324828586019129787846421982170239114670869725818010925871419656328502436210287642345616691029008687027483709503948258039328359334954014612037491423872006125276415782461393945861956163940951446112652376927592598193970538017573420399569396581316242870123154422136686589130532094288237456431798061295055151073629172329108436622785026047771030712594359380990957451590045863793672970189217317693829843212157259970750805478136635588886290784603383372988156810230934748733032885457616006587753001616892510165743549793524308279167637057177064767644768710764804412725393676346239796548649768527934149028956639731174027943280149343476318180757013052439333096294070513573307652998421479262285212525518631217065130730908691188899515214121223245901079417998948111788934698997040830022545403048190593907257643364037634850674319160862552992202529478821691250933814313248978204804104801570019559962078783703676700952781931766706517264323664831271200331213453219172830781877357159027926534225001311892669812553975660181780063200322383838654183690272428224915233263195575290702195370382300591243971698502574157428875660480858667826213706417720688683623254267844796137376142573469313900142591246731293488884489924211818639231926715380282753866221663672588085436810657208850485695431522016704146513522016284744151400094386049094926623272428162924006080509533051031177631945426092742165829972701621667476874339613219669457167427192095415616325110406597320393723270756669750168798835400563658275356811357546480735329096219220182332820474890014195017512625981344610502228699133742733359942032045175628084952351657358826467327642004794679413433400049472670438196304809864566363122116558091061570125318692355044785105270611455651330629510372024665437665849966416974398801253799149459246717225572745408363023789388319519737829426034804004231091774221331789075366885240388557658305998835992960623068842689355602117745179067272247406177883056653545805579848993587758159387303295888263368564668147937984049910688611966846567347596261174375174090460361663212876451561007590901779105978047864612441324838481448602810543457471929072202231156297456187243275324627317521581897886026731696891293539521519879278023661451975468723361401404831497420897702829955550741254388927980183523351435294822928081805531786039912133774707176345254814867754181284388776972377173286239217882604791186721662871362717068225945932857051260951744609693810349181048006377541073928553384941344832815729989275973635152898285810374313305832076672137579191131970572221352785413421643391585703435732936915149178462925031390057274389239505794810980720449121894470533146307292590367751606600623272494923991954051019293348692331114182168966394930433676183946724398786302536515189525673225493101196995278701601483450582078053653412495976361898199037708317984720452117471389884560046512069590609166257811346409328817705204904434179307221041988003092477549677999803184626175855935632046228808694349668325597991118103660346538435588810487449621271256112809936200035072626332548913272201176103425554450288800403264818455491778561333969978743100568327414351435155540050392102001159263130417444019230329635757211526282188807776129524973617271738051770367917884015404127076463858178830596664498231685406255720411439352319849381900294452143569050566227546118281778736879228673494458587115477598850275669319795564028404171495317874795612168427673822018813351722723518688369099731003630346033882352895219117491816908549041092978702348573194868486579051080957738683753024426132385146310733194740947457423725967174090054253336169005573602209639420469943488530172494113850772443847516136290361818363278276958410747592476724011669327488064353791059136054330323855075812739518017601913014201723451718299995287632156899249847498724071776010120488455008969826724265802113404585608512946737010059398529169096259426619818606220932661480047197158780540371236669568465136889980306208423499875531018022921464472766529717357329780559056298951764251187582324640734196084295240719164322436242386786542172082466291757135727986123930954079096567118523734800489511616279798970245179257417777098248164320920329491677961921756563356114974113907264191771581758380245542746381480567909919634472771815455603680986552078208993882680510563410775693935715736868009178740493492039539181417802387466474076827164693109636355030211333333626236760532333546568843539381964297912531857701994055883236398072883360236581178519666690307037008231561953263721278878775766365662709159232099008668953753685138402170905965106056980158855516382458970828268967322417533683470249875768917114922500992300459776396140473928389544082739096228261031050209272917033781021268820322540077386494650664993601451193849384990197336173320675318617926161729611444975743699747058912644110224212722376052397334683623837220864180515061002677478916825572263963399001083056691144893260085731961690384856986013264549059690512736688684219127202845646705972216269349248941978903310581540984598107161042524981594942212365718458121324618351038471644050004761115395318889303028197513380777423976574065851165579209756312477330403765753274216332399561784835623904258263087936198075242435919889123504037702281839416144228107497647270967009252793969391308531488888903969244305264984430093148507076347364732558278039555519664635388648702417203165143599359350367516843497424550174502727460666310093907703962502430022391634163373277388158316924123060069301361918542911557384013783546344647406668639694252658417341754504438236082210137380026380445631501736816791305614275298529210077144291766654355501129406088054506854728702914279986777288870564723871300998472539585460934063741020064370961647704154335032089836984706062583669812543847600430304405241250814177922448661173018709338590633343632267427349734926800312681457201493740736824235952461990119705102467350596633230324438560668024110875285709044910850778796621174541259288347662145977428923141465644687585000351144612910589602983762873128025870945268552866530102731835211300497717031550301472822420552445409827115682169001319744976247883807108806788668878777357673182110621224185297155156302554335651914452437579092716447262174015607856131146884546203625600241068945979818550567175902154525197856313398518635662473671754646984133084337040856087155706580082854405726687995336327070000103386462239946224485191330923056112901540076346456749877238792574240145418431726466857401407906131427641176885612512315581437094164366778139327649197015151672792060531210617110098055995856569303021744982426573760657213701549478382602409486178887455317127024752501468124731425283547761312268226875965289264512752798237664492468155405361998374236858624335492834850342063067338509558444668623626901218999305190726945091401229796546554446596382188373998128850246791667883614227380823784394573295800237936365946287773820297429090363813384188937184780186148134125042100382482804798323362986244089498471740555634279562786327369161823097354562823261638963864400589740431429261625545916232345377480792702388257718225760761692266297738875046086096009264071783945831159463441801008072845366561548070163140775049790293654456402231770779015925954815973407472021310957889172906823622586614332581466625044112300008487831729411593439739027157540985564628423282136585549371087194533615327493157430239766636033124987237005830955619913185526027188715175508282871555058658816762069682276025292333754576727381532966234323090430339174156507273289303095427682969522127895639499275878764293144733297480919155464203773073186241736794039731138240627711913185066423960153032312284068307012149887279619668721075177811004853912200842018037702666682875975861371265852415610039716989867967438278630382938548130408655845158591551317475487064103520735872024462826615021038664237201539419708582348006906605662067159009757742533235233268784581677726254812258636185528430599291194329404211451326037063539795380816611329908833424607336147963206921929295205945655785531926837810572131794490744147047117101683239706609329119571564270076645916646653544582332538713608406971033795183394695404612054496325411567085272755686377488046223488333231461731746492578616083790971081163266869145817309096085272847235839177385834395707990522814781270518556149601080337662094574073071361211662415889104755042115963529776782985129464054034217048671046094651762220934168654931146385450150386428340131154208394314461852285926547142252439697307150188158370346998536048603407617177330104724521401336661150943888458392376518125092487515587764239195504980028706452249082797302580279890768603637697179253662634615359837640999099732517416887686779885906821356498202820698951290665406960924640138133812208335877112169809936828318179063544135711644440759182945517448207824690458017612819413069411997071344795882250035245040554183936729237779240309767201260793667407702801620873581248549716079012767458294629462577998040214894387660341119804044975829543342621817272349218227383381797199569842000422058105080572234396694937214621926425756500934879917052256017396852923081738993658008022870879845820356776491493804408274182872853405246413500420576355401044556751750588505894623419614929223538820616696622572812290686865859869046935452649798136131569685018184488343207307585588524271344188221955340270218580560672690187534279067361078348399798587621327477620374080396150630915319122244545085402483347816553898986506804620542486788790064852799444737138321390653835892989316916882078598577880533692820994687269317787377698991917875981780334400406156351882035858194395820904752117669081596865700713298174867685033150595856419792889016646987152225093621172264676915023630330849063893544551310311287184004233419298477634732991797794672828061670587298731232394588285480117802932654813089281383677157214713997941631637298655996278874433234091509626600313954214106933969630733204410256987387788876493084311125537545847263314472458315098916311824779030267880969165263958169549151412297474656940397796488375929978894559592818966874246616174073355706046165412479579821224727890599109193613595614621985395136685455858599102815151113476568639208170952048255360615412336817325307948503117686323072970287680509009607891136731597687403630873858174842829807491154097305564818035541919430567786503872766987665241964081850047142300880540655784664356754753552715113085973083140695689418195038194933627033397087254627238685115239148387407658776338251960905859953342969431341417978506827642564431645673050313217033871497923202557745121933255419496457917928420257803128439927119806730782028599985277255020812965840048223674707848446890314266423697709207091492969489303605010677911063731629477073400221921237545196341119400995386955488716884006507453106291875721486248253418952230156038876903066009444515921392819847738485421430695691626473038000966608946314965805194617455975135925237015800957697396807629712223650738026405834205502186734360566255353265987907675831167527471657773910095592427996266683977279760449345553143348268024738579273531007404591207271621114902435106971673358523335008033568980387894653765592235293998880505633260911382532133561199602164873435256292976013632842317266995471551396330600827268669580349538348205978997510119625752664802130772202746256792884879846853679270645615730493985796212737791115870050025858563779146594642416566706071080903627156711290893096224680060185222462406008515313025392261923483981733997166302125260657298109402677086511898168035224723233431101228664587300220595983906812774939667908214438864677147221847076155984915538997991177171130416346306543331906017989436520881655484158040136990578144297854478084772825141200543188076767161114766640179580854104410301433113800717654139590190776350471723949540054508539973740471001714665470914979706329921346839550436289692558968864779252165920678661718884788022917123127455412024718815472716322267749298873693575260422134525321863209401548872502259833405241379027006831666855137723863342148897435265306022502742376295806025657973538194064984320148192049305535880309907159271487685245675108159213347000268639017771435036061439421617946637132384700498118239101153054253534116967961855866440003764403205338597188819922612356876167789854599373605517084506108323423770289569269130718571385194672864518924740060014353966423689618174151272442609771966325904625153843183139313205109438031293537929948310753533132556672217881272767514834864702732683545079955971203209237903979679151642025271787799766187006879147832611623242196076482910008648583672189626138838337147300510141729639975394998049451821484821344894476299376986338320346788180187685544415947175086549156729450516674373937684163363419471174630710234668391032578858498918781339777831395628285392870263638222734721330812593152089385899689983536641002816940238685501786134340169872784918934091753530707262145123010793958559863081191133104821855485036010350037234661159681942976691397007354206934389948105991084324109257013673311154909689783789699761620949217997976167167127485794139848680499138570597726006632135400140095673895915494944774578494758037505769769558775068372367016160885116035943930466081092903423060932409259433114303601680680981613883202786360196344703971119121434505804429527598176391126280882455323793879261166914862838725408010385681129849769951011650904443753309042081061567067664248037251849392022002141735904919370575007196529022919304676412415568159313460917291061862530974198056287750588841153403566718042527086147338817757564415318058837288987725047467400974139636453427198840250957313790883992641068661774043052397062846906623706084054920796741632727676851518836944032180070275720524234058614357130986959992282846911774647180239130634099418233108383446131739942565883502904843767154331586954712126411280747269757690839497311267651463421114718739181934589304862247611611947831781399168397315972164265147622000346152925101257336495511693793356987686373443279421960182330892125986423819334778021541328480009103243100357052221046879585449839703692754654508595644638024132683899877455528349828607731700671396482065246410821579096034883242735263625617008364954310097547491438468145500828761926472579901550195551187972847724967908024761502789270749096991179025292430088730335113034961012708727242882314496647841521310675730202435758151436450725812955872805847177809739244744271635944966597896378968865937364537802456217374657858990942126025326706745646941955040303811324112010860956638505295087685656459729675345882900045168691045820006930828936455011195976377784388478863620626119697746264480025889737143625752725054705068280954984341376408666170568182590848856050420999752979939206592242756838448392778146095478156646155850962565015493023179008461421237133841969554311071352144785914039369461393858811036624662043361605124335077703043686296488552563492934882490577162289989237612234137108160365160541167809547856077176362965295463509933191219710186099648427901038436009441905321325105098976043138184961168538660159489851347294260674277916393306327983778592375804817815035608682035418970756454105136665277455833838740560343101649903733203004728312358603139461220406243952423208967998397773195437772317091956213288414069213725934558102373637937339010432183052853326611658236847296991068182873497128242538782763411203465841082472594464060379499648104817194690195607447777821917824698600169403196484140600723644341286843187297759946912042063278695881834298987050869495956091550691878859784441986496872178655981958560641477949322293799167748465720678513606228999929360607757910536670307759767665429223069753063579831682554974258133137096298216296896953363281336974523569633241438786973823849443905910831455291858992403168868557656363944555059121688626435149446548249288221253663710056780681158875514015145513350757317572412109632030331037026783135916038548585778528122189694501711188268753137273102468564869982386871915920099012136496122497506686100480419725355502924448955573706387324062141508958794583357496992751735704769539090161565377918182924334337805886026877641654762868375412104925798831917471916531817052497691900801625337087862992973515905930494651712549827318831551251207892356446349051160691019999429154491851997742205679473807377273470652106490851707229491885260016054608666075805784454405406242547106891233365710404587361999092628974162615847967869843081116081586971888971793018414289550113841651194403501405770863781167382248470188142442568390553335416332507079865813630560436626765666923937172105306738909580575934584542196473564236919668677035101230816505996940055436624830080446232858387338862103832927728438398509839231261189326239562129817660936201081198461026186391554600697931923116346772930695908214629395381670214765803000287286316072915055182194752956630806597227495940455623255870833747159209748502401858719883003438702379525994980931605213940469608596962356872516640213429701482369363010658072684925710817513519060375961495769356681372984933360159237017126161908448274251825772915519101648500226993691461889771244524880233264711687190765473937598738910108225511717027126530340121349572603686458094906214417787211936441630401759272707295668231144668291861321114679800519736991236535290584688370577963149118694582110609111280110299664241992253989340119163193577620833237215369122539706916102707096310396604562250401171618839577351682561974021194533127504815245159877930654079487052882992194440176050328598851408832137672827970125404054885739470356201149268802162161610017155352097153355006492460621956102294400341853669188160027894718605808531494461518134883310152969038830568008009763143503190347114562474529537266845545829928802029009380257984950734642778084921861098860213186249199300846544310538495105358685058597955205810211050803317263018680277022200654014853695219951807682747505018886972091501567303960110040899890432866954178000645789979518163085104665933488852463179726748585715731354926146909331459304043119403621531815453398226286391742016078682532541847935203571180945102723793372079904889398100908079728262434048087449136679312436302806575717914184209193160663649073280179876648723331525101347646371079438507502166855344380366989248126034136900738947109086140598255879584993956534024894721614217639987493781603212372160917073686553810102750948576543188896418131685590949204175336995146797528753146447160671282234900616941313397216085653503518933243953819322227485472639485324012458365165834871413284429453306440467717678971590422411101386480062015536349852141615801781561540281432641146374110575457969557135298748283795801314650256063727008028364696479341532642207581515135975057172471462652799166589087927341085004118048570148968632286351769591354934409656456074115696073722892496441801566300744186409828164337155301229305092742722959597335814048746823816140336909225644646387818102006515192575945421867971443589941900251936629993769247974315493156974270453770526204017933486753131568416512288956738227259309568456847961333586635715195650543600544454076397805297336483561413364254090552985256620702009388918580928803815098558081226848138770053045237451089447060758001658382361198496442703791203171988950928251653527421745058779932216963626053723657261279034380677614156198947206400570092648916766892452995734726229227300277302910233165400617171044757699524097419313575328323877077393737679742475062588753452159534879459566824371674025736095280767237413170742385284540328683674804204810650274993346109893871064543806347288830903414352102931387543620240113976191727557029447088550549452527643000103609073886196240011621104814380730192608659645488392565702329908189221635394626274196128330357961654856650151544262987896583857697092435852092708857954625187002632519117200699515645807289541071637850610233386577231064620315412922251407164107152524955032907089789769076515143698749821800883448961125073924776235386197849038035868963284113464516927935218831755817426741754820445550117832008444103408741170641563887430926530605244676250734294519489606403582914971315639668198670851830602617307971234216572718884701358525614851504827690488005450028491397980708701989723162483515614141198929948460967091670739511865268365881691948893944882861902480529575251990243433188529795833229417187568970469472178023099828258127030882699879533522769494907717026887491256992799719247111660627134041222713726562477645863524110549986907055494856806026581686426210327651383335035221399339838734693669058958753833575316180816835722551516804775775817629208856914839130760264743712029936251898540582569389700294220377048180286350424431860663073988510873344550668777324492358628137087274200870829743786695620962686455404641430533947025693001154281815651657037477287172280671622796862032326750222977062898562569477852334820208123270876207469113211247824743809795629443890503829677650834270831451351726624333184284093007434722029454565295613276007971965654944985124026137421489058814845829141030900045171799309189814034751982715676513953777107084260379048736017447136346226334241860482574919785013338447961199154182398091237272395468480453454996807687134849675561256598302704217380911934914427711408719676094911339882255531926596967700169925950425815863485173256054714179943126357905648316950057304622304568913748539276993766041965127902191480335697709669853321019719058377551857234650547798817732059128806184655474486767226357265672774722957955398163954224374318387542051206790699088888726589277972915774678185416870667491114750296878461561930947325499484784666807936497387852277389202344569393971657440845221759490807701919507029061085055880044226960383369812317581879758180120551121784742418688558394823501987075072518684207439519869873593625195276303686323425686947278166433570165486944115446004429950017607008183414175655551356508654221035087465628964953259778418776184855299399717373464376636623884708179497845981085539860735335015837714538372797045489834011776460291893993317638773681750091024475524947501673513536334516595787021032826264826931236871744064131655334953265738377873816345443514528565700054991010059354543846368809813124888732993498989989029640116049991738734327849177002501139853104819066751754931945798189584882801065147406161628241644030397682559941419797808586661178993874497313997183399510000101843537044803037822362717318554520288604698622130728922476154174500651899175503559852389545910172166954736330964108899348897243629425540416871513576483583858319053007847182584523484629881106569098222878879119592140688929829358535764311407277627561795927852971924304744799523500108278487740410272349632479133482299737441127240543297032663738269840335471007961148402799842211954551844291814088329825219681541409471617079159722924425971383912344793462299471456513119725251990501947018157955571902467125818857988511681817607430627192724296050399870452423773512846817315510584778687678773337712484122326964333752589102895576067810298393371361661515318989984950599286364565269725331542672921340581998339255594690458473480512278100109561459617986641132836223569607105496364804038534521981171516322768681178818191610647922693149454193526233366228956950938126942370690688864370508228687220880035479947845152677342184357064403980812970904883100507182522421991381115928797332064328359804351629565654775151211055289151477728329908215257117265779801582042134512425225149127307361733479221185734299555057558227522485980305903168172808604517133273055225709932815060682242900677712288443937320373713433908401833901833223392724240467946294128310690657449282303126206902122157114333287671080630685145002261654443990804491567148097455542501933377495942693009280353859468756326464635767557869774419874712364327423637761826132306463368197977131550609606424302244007656532807289531363868425446974628340088067671402244642910963712613835177612107991842557006359680858479205075924245787502234658438315940923292035063472429061310109779949653256066815993893054203708806843653173623728109199478239214782129971404951577528064660198995246365124625791387281817855078370559790463438535402405354461489995386470168795702332279197532390040420184343449840579311779502760906348395212344997900955755718541952059902934654643066127529855484503004900472562348121159564061597800758133181025610064679498712593967441801874893736342503648995688857161367172544266172095542842779589753682005917111830275977249461357106015026553848196333278958334413500240325674539690781964864901988565301325641304737750326563841973021366524755084457670000335596466387602665649980134004498277832609788813032870425277828144668273066159584486617671892903333796604884516250187359395172583978238078121752288058941939973957124317380657882543104679457809552679115205236801211798989809475684035233379785699771644335397551740004411096974221373811529737100900743939683546657614679141836970015674223484711866147500174599550299127071129726251541250799202364147120439945010806998988191665173594873263988433439166186190170265821087074075148676476889872235101466682804422296064362475444626885632541281138050107833239571123556686418661132343662215615539279474977497635130853789987669183864461976906943281107986477517144281639793401834146428407428048804824857095074263773130693324504252518207375627060609264518593534158011737278809513360221934352012754726004486027018963600456425201535563785496039336747602008475902575487685904145312299661624363426414899303161189913070740598287722374946713075403674532554098046550492015563713716457478371096996693367647805210736687926518552811273292920704416255166465965566439003116934963148294818989722149994713189154825437016927826504717277930803012632670806226040496071091906353949201489352538761024029542544853395833384989236957616500640784255357060106235962936676783360159769773930732421321083554413966827519464684570303775021943079194787760224661017131422143539312438249318623090383451273276089635921547509339580068658818870488603650265477046936914247618822543527809481978692377794861957592399531875151444540124987146959270006379079080535042222919251626349613438339768353413282753241667814818778514233903198592866146712864093697995574679162171183586256812608057471769336290293046998686747970467649781155787621695149253005825446779637821507764164881309527323409660788455935601959315387788198776218717334293947707122599223433410212365113448120410187750148009716015346576152422907389258064591788309302585651775243111660686955290393260459845336334706992872976070985095423471198569289194281933126271658932024714375307374676727317879708108162183689667016568106883519695875679498768907574837770752018417480061156634006984397974018797118127504444452341752936154662530669681098438419396135601505134757408050390369162308964278113220220554351154808418213043190965613316554815663771690283588795449881108669611057088332728546254345604057040361626626677978461297372226387730809096615372947045019804243655676657720105350820255302008522743650091329663985441126394666087513069306363517910222061369866727844530578627406475487112101835711399974883089692475182894076885494355959360872651408203454481116386678175926655924926879429412368203979464365533994705543170391689108458276457186438195283618644630659277085267634430183682406358400119462361049420336290259010620292124485181840706368353519282536036083736836333744687985066683515367937612976875329289389413645231547511643566363227858921228356366571982718905879372530515504491439894137512859569916393924716741587203213022957829216000265724951166999217327990817383655027962735200273055138691770156994262979270659929407901012199581743616496463938475728367161686274431568416011590671430190516221759094671731935867951174271426258982634164876713453739739316263287133395270225209612755909479858775231835293039635844416239713844652206473364521542266759187153184128275290273039773008055003911420236835332861955982435727209222861403996530055876498133769759823770716156712325656430479208071575769619039720194559639771595210343372143632446789139495880805246574754359257903172854757235332798256372204572293038600201503953070618162317622732404118067865223624093074062208674028002184801128463424296822746721465420837443486713212586306647930059941452575534761826823854100619315234751396019396982811033561469812590876068189132760601777745316917725907939542093875385765895341103771982898194565108603977271326902104015166553445280088502081707914198441723520321122872748337148192145816646856677819044266876098524684291303741532354925006668435251056979304936288375050798001691348136877659919318047696158575549848775130531381337978356450548953064284091153400521242929619032299415039429723716308698774680137627139160962571426931481650962728380802962020491813866707594768840264412621094072894475829647519711474374432418432321750655798207751021603732741650286048699932331456625102299024999953964995818682018119689527484219672517735358487540134655210276197201564412797962606804891016380472042053440224478578233133027162616851516852507897823916396042661014874695039580411742035032299849183996837978640489477840546871137206886429890720624192413690938487881936594001088338832377433349826554661973277820755479388713652947443881471258449175024053774339013800841271650967846735659916539414902837351646585983437901488636292690229192282972494067770992212987314357379651671892904338479485229350226239153599490583674646140038375764941076889372610212844405628664703496860330941511559708489295557614751959645652474994294425575951535876839031282799018463650975363472817906026913574014247748436750775279690439410690344409860579923363744415415084918566207015788460116086402679940434454481683230291090311162067555083698165657268638884424622441660305110703450465301270488138620636256681075369903595932934088698636459704086816252928759432522771242244684144410981089849908620880404904198727605011856963596910352199904351017222689007812047108187351337068613938798022814121472915432458465601494849235010083134310184375615616684984324021503546616048632313661401426485193698294124482723238003091645950284003750480528317660057288516490543496133095339827294666061473221802480714889971064566015181188399696759243981614942659239820497063664601625638769432978387507624288426291378586863842439884630618837463892580706397855441357156751453548396293935436893949274743431936075982685638876504508881317449543684901175195243707217614269910253126203296103206678376407233691152429423318163386925491261143283313672167910100808740025441703505940540168558750449840910185752538452453040431237667219296465417475318517621449702353807239219453187936288841233706992397035844576829927390088220137627867829238655205696787279646735949348976304325022364505225663460000933625428420795268998825687539080648628298566708505342218508943777671029182719478763595133545132632917047108175936016813514771990934158341356300558404992763146235461786371221260300358567399640655861719738279285808964709504446706606266512345524669489348126829697690308484278589496208594296903938480655973263909113752974062809412790581954244901936360222075049873372199687024976404986849192399107866645204571059845392785582415864743467432013981486264227877072326149496668286882984616312888099037456103487456438388064102443455773865501722644006217882526941620575365168715373516351766690209850374117411735378840102701198957977783883230459884443974775605165173652004973029045028680149224632951518623578134916426931013786919145225465475834660275949160330711374804129409043523477379730287384810892267062396364206701314387572581991219726763299202060038528570820109018455969789083519263851533626770374329902095804001058690377289213929255918199001581435682149314017520525522792753033462188816361425049830581543099830827044284468747093256425397929485211314816113064888133622943228771512362753764645164340398153522010315232262215932099195508552937960692715795379020805278051667113019039456800662847653274272382421474681487533971213362813595496499381060854162674222047010492028130585838109589284404724763005492991073546085905152627079327733885221610499528602120096707737795763865984541502567182431152858610736268203741701352282138333668148589845215366065594168983624187706991813461530297964103933896662895609569965693232076610850200675459077831497801601413598593392938175509926097112238387907579203653809044069477142501328209810567598689883778571828367916269098132710251023008953698520868720695237181336930634175716317314861600784993794867187590312966986414472745736251205466059029650994866264905983649160033222296198895647583921854388712843249543103339699510763665796078178535299096453110951364588917118631592109241483620224608830481010096906964481831424402849190229663444641304001348877301342118617578920283556949779266560035036866005476207432222502438177870218170970698817628576035943761622699673861177409464679369584277444417806572914196003504067104881364126367133605945247157922576462940531489952714951605392376947144538448981749987246614480269818960882589948500405908225753694443741707988569402099572122846657437452861383521284166283691281899154410577016416562964220892940626100494313945917340916473607968194711811265346976724559665906194861358108682917083737670823294848437429930713337944492703011005574051902567057795681755164942138894647459459631689432383571239532236704836134374725978301591286576494375865521235864545455344028474873048431789435926892593976502417255330429114578887922926937643546223337579465962386601277599503517627509807877164948905060004411566023879462166472882211669120778566779159828035739095787398151920937338902891879171950303463442924134403699992768288541709946704851939049446426149730970397590274254145956043505801239995666539122866727922830292331053295542826323871780367642591955901329607152832943425717358858240649366377933855152466098759795249035350129187895710140368749327168425880916807931136256245971606170640705954437531779293808814515297821896542073732089860869160705081002448562329154197809308486125021120522909803592875070440430259566910007543111793124635877872980072805767941558544958327933948344476943061820297937322550268545060884511922576432872956647159019840095408522518825212520285990457426588071577082691924503880357192942667835939908869195709823170632829003025208382193973266144137295448125475084837942183570137782487814610863394258870984867093325431638806263141020916239386004037611228441082276003740832693376159974248676180086177601741358410400736386663275706191636293341753303601078725817498315400609520424329061549506772945529096604577900233967132296371705247764245349524283973833083432345906969573262785574402461911054903797362808765131079780805951085622145716839334506852083992630872720524808066177949906786955589502610042082800551229539198371629317738235476158802758643615287998643946964762597516842460203029223422283507082162521274663177600135443711172968060024640290177478053778564388704602751750437234691426198345809949417306601315410561711479218298336105631782843598005634231182442152856584133980147263886246454032088387240158471474164840811776715824326344223610330135565499665759995117741705164090142064908940192663992624849442791327578433604061067235775421159955671641010203736886660032887900776670070737600191908236861394084683218741624128361746279134182727174796542688161407287992828146216802456186466081290364487414784252188839900888667296228288254102718803101948500315091217451320234455619878125361251750677659086829031417738983620079315649004801305568802781303539210234057118768370641234690730182373272171146481295137153245145338642582492910122688133523051441693701745615916546249734449285855323867976729091138218286536219258016833008189315264052340586281040106890173293692941310932885280855174810178370156144144662055733628074474273129223958333392098546341040767202835394974668248997331646765361697328113028930415096980271770374242766825185426136443794906913857756850101594394411790804444999142982059002706390912528325443652877580985485521162606185048271985740508845147956846424259629379756928604581493060069303827093560129700739780357631231510926040312074132648076040960983181940411506628066688619025385946828031999783093399255732942007971817515701477019929582290236125634306943588847212864540742039853882138664043417118945669363555079356342807986327248293156980898338187154928047905808723475320096651793855040064657906354088756364141699308166679796707941965112795689486473020001904799068336030627271550938639966145926262742390235593126693713600598176104805759526683342533519041998822869626554622565370269569933949054152430259314179938064137703244906590687617155151048511113014329956533146750105991933982326631870266506826626669811724158893736398793338392173142082041094609061045214910029373646726953221522865360719469245794923370937667268729622366234925770970168013709793101271355764905771010889126011804602819299332219188809320443471589838219457011851915337778415276798075182977704429105865836185246092227534832063019943939404612695062596238928277671831606396789193581757227806331306829094616525091400680705766615878783080984564847477584053668310537057699107852648111072011503841376310512208019429340003611809115752709145957522364481251263961532809808993260051358598720119827776066477181986120722317867215228421985441537501741756812693850405815067361058511645283545602099792549719757580637318459829200460273423819890963348140318734555872245575345905371684032270697942040430966370242389381886053326004498862343777979592504955777348005326282813659699960608607227623716954412719126316482996218834757069649738409453808942245054613499252962514670320862433108461144120613593252971380711641048377694957185104488364697008586625753502431421915186826473207109225633416108714288175417271950838801304676378704189073312991808368813653865944097712116003712110603047709517764637554811475108378205469388662276844612553291955293188162631294748955736966435729163712098672623234798957767220435735176248424670114412347308872475268544550875757040180965031599992280540174687577517916579205434693399043189420703236183406783305780312849379764471408537339516380150951746670082286359233766013826591857027442757106337158810572514425431848293675745812461298386586275324868197589920080961326630816656058055493240619835595837574469971935302872661827581955578570033662454590969565542850108028073070934774358113604186608401709498868577786511839647278925507162063206468116881493930912394229983665711032983518737388232167902240785125392267171101387635560583301304142478010414949079923801355613570698862187782925151450402060228098070222263928277954211032440765545811716223719608395045846358087214054368937037053417394109869241967638674944569756753826472668448302966692953556406073477004332360395159611372721250893164700512367443721162026326703820141763844776755080358000696805256571775082679742980130817134346689899699794489829317362408449036425492243870297901332936028035291418189808229807456869987669481812078420086150060185644516608467894521402067774587987686877290879963171908821849327204662811919836368148501438120362191329836844757405648066360795190023390456264060602066109182271986882634157973852008324920291132146095702119181237009998442334888303091777226314397737674164553958378888624515073794108438916758608835508987265108124105001472870503256050596100423674397699287124729743172159278942165298810458213474702963885656929817832610036860260188153131903702992410837497859471185507931671657982991102645710490088055077432872441136326066246831337893796060402098831609546431096957886072045269820982810778068969287935445721299352266596269322993358826174494508707801693614617139142937166574322982400436789080668492589658546006741938121565222539297665216960133798338224102419642762205448472023529190221232487795891671064648176169881609685455205707990642690030957369852065522358388134415482384069449837034075953488679065238668328727818920167628632695650181984657137048885537794712469341624452497466774900019516817512213116687750321161689638383698685683256142521864653454090894363727696737009226918567437763973828127099159412127921004621838882949475407055736022537113197617798202131240882866479763053579870678024530925479993270060528195048313652090725763771884062739639211389775316391242552994988148714679429480146678616149409337888855331692195510576654124946751352498069926006781006756303213592581238238117097817193968261556781626330505880558003175954900890604066285958927657802971394953227830948966656485175352486400620743034061056381239939887282625499677891249523563410389608022352657826678392685576502813845853882964788817354199105408007781524500384284185552306836133929940354914046488324944270324923172898314917220998160376906772372240029658135969105784661362507192322739170313642857985428346996648661735365197615793264119649994571353623047559862336974466409353688221283595119227276805189837496658156114555255022318058157995093537948862303278884208864775954749109755709702648757647776731247597964328938101011736971562518656875195984605247861927281101571070463227770898504884723478773234339933738661737761845820247266751117884035141306892496406466663564106964835423373453661129225628640754371115716677875008254494416281808152940638565632230492360554636783855269430971475088376388911027318870441894233728899152961137427350728694247832418177174709905735242425241435878953179669873594268902543064657285147832739615205197032187432574892139840499581333663629463563004150082643778070047084772750879758451249094013249484578175599499291445181177514455321585986794923568923065590774703443100039955537158337211178965972490167385289783854437381204576831440480765171247631941762168003304327943615998836341500427272600411971491616315354757741229009186989842278949697302287264336283272792232139834179096386681448324078610796128633934487548811066593582870774838283976947392035381231542226625017489109346603525588351055301785723825935226320944320311306112040144165777884221894821156728512713427309464951165646774050542008388109981536189778275528565237556751825777596942765656672002470939803944737790575344978534220468979890853243912344177952156193172449932443233286532064321447678969961998520744733189533423721080961802113478451357786977401893862049751117518835001651940174848323129955456840335922231919292421495850164499177572445734989196568916182662640636740756886798737260150658741056163333162856122025732468405888537672240159731535451616234032890306492388176907942409277963270883617845449683551099510149756290250770760341242297085872460325244512669684326209873804888968259299750291684496240752713037740818682096187589788326153285977408500996567462616173315813686992364235670520098306871196107407134611395026252691082238768621410091920792801614208327683369204229296686557206578296802720544006479859097326333282762266175429974799357441680309041735750396671361565288631548714645908831455140218598591703851955375413753491740985346155595149959540302724090026771715648415157209289649054588216727188603470076407582362774715773853320873799847433000745435669587949771897116071542157691191747209516803689747981655883730942952683497281631207039514245260751788617910963690033472102402212047016959867048706510378114595030194779188911274477341118413571224792915852609319776806814818148874730342992458632004108171304239089975499030985042380911100029614113211258141966497158629700762821856673229715382394806426538481151232932967704227410123356021831612609524206221782903987603755380136511922860366134403278797623844903518999749624619956381288809600240055281685402422220088537741716556203416811794643106002313014740321102650838375970670994038727890507095105953967974892873883502965908900224797147252744464496609898056209147965285322537502178053642198673174416448265121277519063613035733422715658485731930121111715442042419686437624978571233589218431626627472583629616976309929289259957641988420337492088428174253075010619259529072969989705148711153168386179382465123300328641269837973137991791604827909565420242936972830165862664659314357991182407030282951337511196712737888091527253122469582713677926063010501947905342049664549595894476334378672926516250757750048094508933649574923628641222998488054084261972243674778032514195664264270078175141568887426955034096067519903291825028691317813262483232271568232386982785637742969471765352003348451228679525624833172578519895080373964804252060104087455928248193368517723368741602676340702844475847967140598171783674044783726127021381900339060814611308969072177310879931313923521881502698883318420060227678637044108712917044704278915434726624281068284002235291654372276710135172512374640310100864499452286237796193863758053362976923567872520285250973511983019572626925019353583094637847357274240888485848340503139889526641943084223016523606028321511864981449792350508998895042764169203671822195157499504170156428084059859872135280642009520475462435997818162021100843029771205190166614691349889320802234490751983102748748616346457750401947904364413907799746391237646017388676374644687111946991997904367575645272243413822345463776221845550669720386806505615387958745119876223605600009530985356024853974416117591059705340372208273235921799183448042706350921180187094145696319811292295771302518621792864408672051230998380776328903858161077084108638993760942757994285136545223884473730761246943553119161876661430568024226640309465217488111876986619715366466331682906350411412721214653250632019257524848152177873858986511854228208166784900613638586832192609895545859196698595515879233981449087021462357823994076516172328870773637110555970347614878392696769189877616260499379134790721679470792002435698716318296946541678408233456503491718008233315867067181424236652519170060073413822742779948782492789284219160455172862241316177482320788471020550201754727433429861331015150333820754761359391360201097114543979747526822128056728905916757086497059238438068517499671647286847559268884342151022764268521603781204593238405755506653822831886965588756583337960210170779301310716847876017878242550336101050923862012319265958166942185733268139801973993138982376499383195736307922488390769083713267394454132304629493968192759924981528909424429930150822329853038473326233604337964398675564532561736048348694922572944638553198840872893024920665722868712517373922614383119925523249672379231490858127885799543081960650614613623303723312502720471183311596412504805705604229779390717742042768863833247981122415688074206260607408559304869397614629389124816139326223817531498784007779591694468136979528339752384524929777416674642290508666979755052947076662429527624345085468862450202024998942063756951260025117057437867421277068172545867362850271616793720102062733312957059920446857321145202074589293948888047789147965674435065408170370904772346475722518202734509271650013824527707299053337313253380149654559087311778843299889727941045311633916502871857504817340615088475027945708681730272357913153518836746373556312549896180427879869054989084959000228949176005601257191051659082755620974819735484767710771512584483547115528347242161121891562186952187473108718989045198170529748064465641132314463000614286709030219064292700506961828228427721388189450959929334183196698020036362017981584895751448265021807617534499615940965969246623323276672675569956634942808375681168813197657497478099141281613694957173255691918414308836086979587245886513702411601019733792070538847419094282295908730136417066569421330884338826743026138893858387409967587467965031641107060964331823536069271466450714708448766260564412761500150833004115637328598861757930366203438074938097692534132836291435228015748369763297812906982354674519878652062421332710639424834574716618324966975400251549799376728481031717009894137299198016330728312833526394400609798485220936196574630172448894808365712404874355776382850261661480960250920306668366108744494926512034143320606870620023296146948110535531010220360188494129283641537771979612244527685146213412892068103669546910232486343018469282060866166378982055299053459611161732522179610020821290028950533623732403777888123651989429915966501765186099815439411126808011318981447946931985238730696783434688212295915434586275206858680467395279267303351823795456315274234988040927548129397260643173793960468544317368023585939689220153316648154283266922849380361293490318986791526369341997945871781795731938355879153726600359826685081998250591387976820958403571031508999086372727634776329530233731713215175806374025223895691799216691407222434288080336869014843347320564465880858842880441725799655241867560652246262020220299648371971379611656177933257709928689699855887485124858241685990686121558914167550402760849359913817264732175680587820816296032156840620729409005259418793558729086028790986500686547908655685784633863428925234620614209817344682140518923442742731075121229809255077920897301327617813662736028409769363718011229775700418584207229923193409819097754223762968207265591962665763567910495443481360959035754817790958824929111117290212882938116335806803375303259116964235142073562460804106304952527076193355714657752030585052680470073918481876418938878917364860994065985962666268946226874203830624369273972719784374108949722552509129081776099494048563983963903351644362080839835274281488219508215102001576860929140618981732962272102152112080209196669009961141489375642009394673164980250703916802948035470438362799487520450018078166140366458031803016808113750399030632887625919128369270775833126614434627881033308591792626430773955634259533940675640808992366482356152794544753333598550199065873416647155502311070572479780183729324277922333697297930303759005598800612796514129777609711206011324397998696150706123701909477066593193579622477332347034796071318362781038654661065931629560881829422113440364067991008384447243783589375811332483844552591545054503898510814009581017189600128565090109526003923648511765891206630724598070270895253966121368465953081312935552282523168599522842538780890175615312189171343122495573906448926388100095881820103138470170163722876476542024524753814701088710789993762563160268960117918350479279719166909761302601595890661144729079584774449736586923811524123926758239744306680639452655190719670942780171115183893967236853737517692302518921820428327294950662429561790118782915914126015419607237268818673521863682420682260590625010989241305364078392929499875543919299643149030693189885183052206707299085841247354892344391288543904608203269038506950630044711310534241358291375221421172095736155289787483210490825078304267092026691881005903761615832514602734414167772247207675677194935397286913687079612117096417348333672582917258298930172000145363566041501585552868943024933466138170258963373285421722299157194605852998554977644886252935378653030184515511430460184302085061346130090023068426085878370587378161815698702215441517364198522499917041043462910201232961046455347447634945525198786496576149898352433385231844217222208138534203231180947876658261775898707465581725194932187391698255541760911059682743844632971461476026094123805118850226000211935045264119437868104003838694412329776380656424090990996417460385405036178076649403439843387911543000134287289466172094097450625811308365447716615918078198098245643230247434748187532321630206600620178467708528309249974943005082246767141742345332788593983567766005372851683226036031378289990523517021050190153378161578624161880105064770580155420956983842067645043128984744310979661283103506902897059842247906401187285263495229567958520181527032687974789203066187433285442656360648834355658606849816849931281052558563720557167011097579753791669589940476377139314789382179426333614593059963608538722182773369910867555008248713644399533479581629615305849190507092065165409988361310154424915082927444284449161656539114515757684452353196534463057397858346054289647116204518683177904430495454812954236306467026785172175056519071343798335297022185332191720328924795847806981725024757497497189526148971397436255743343140020213188065835902780040500757360755010200704470153229249014438685657496360054280117874215729522995042101792593490902154872787810702966360975437362436790443940435036900660744368809731106924495456960197666641837549193268671527743147364951380830728033971106004113874924752707541515118224627358031238393556508147979993850587042096305515932409905174013890069215501563794458249410413129964065998526829049701243285545416427436658956382889039270870260235858711863209010012403383447233244618542669961177909674848040324079798909344353351061681377102520029388893342493219244030714403648573849428632564799672410189410024041103452126084462452121053064330220170407899392902751064551387290961881655890473412936723882433220711699172418729432133523809720600980775125112098479071652451989202963550420533570771845694864427715897088736516578807116922157170671005024592348925951302649268061168765574044636129375739825123594251801919969365117939970330376594487942376759030182200384470846073868035345331759838971561082878995076783358587449551711074477801533105489167091968879970330962404133557449999231677817220086641917971170611088966462096261860348631807465549521212822656063639902033339841199519581255827977304728355895621684292214488179092062677033056379920216365404090462784933780500661393463100038273948437970605106980363561360876433592586683481138101926913118433344557742685968955590856791375184773590926325089154738430974274988113782107509001886532593527821221834052148112491316575941506604106087804265970907543727767752849164758881339356485188409263889407794410040615915080612752541770529719844856197137653720007115291628979460211420822454241814874008954541224689059707812123206662728638305538501914348213829655137672730463257430552949857275425719853278524911277830476426792477011626414875432065062880130519205312983855377443031488064066358677926394165293963269214204829358144702381388270548200510968380241890377035162393573744041512796578526498059309138512039636010504084416874883600992632663970089979581419833723745100319009302897252702341342441257578634918276030828218010995684522910965187850073419320265878056909301584564203240441327915987249321911781057278479731313555178880194330542106956326158919224102563228566693039802212193940572789521876029095064661166619232742787163129707649076295340249000280454315056526164436318355889536092431442996890841709753636187907101897578481514997462844341389788488169605718583174757758310871668208137961005841451429928764209332246684872763925941660718811527583087746237989042853136295908667426403977640538351822543046164145649723408866215914036874460913445648591202272991603710334941612763233479946409434596522473053349510569320696762503465654533896417336818601796476173953206162204752234879372692683503667431033018971491763961585082579382880603871899524953861779107084585409375064711305506877930181438865591658116874705402747029661141724739922753971956321017030827049622900751581764287329083990161912652459818996308819213894818186881301298356893924272875903426960871707070070793308938457197596541297861529466663726881293047541792218529573435103993505030182414283797946402263505010655676121204352637987106208593037861001904756643660759977418631844847927250630902924812661710717253991417082126622335427423464460516212301918492347622656206132344655110822514074810002951924100360283272658743212237425744557381694622866405620069942599195052115523959823490326665610762542023580029566292550699140743617274464351949981931526634957894068262855043666460711972754076443342787721076683786214990530972433737287829522225778878878351196390661327026384176502846570785661517074935952260353867871226377919673164377639432577447208475666625821463605039230118095544301664444717966949441341535393253488375793053313949759423157265642525828560688492306244115018521281237880247090515961477947752888529242820427038021552375581735062859033564702688762045995598358996479767691784762610447814778418405177591686948189366415811411075962115638506124546146523970311184510061076103776346439745471551843545734247459848160144231636478437175206512524973145431878724752883402310413516216852663863759012685638631567336238585468321532026029536812406929017998147115496581387166756790410547164330697106106018884065669722103179666443711200188447489479358605798420122132472649291945076824601285418062092425063512849623317918064631895339676433660931022558795328442846549258365615495576909247915869917697595582025555261524227143598651306111473909979769075346301456670012481926914723567596805197058029483277443872924964075692155792539464045209936309828280994548168118918240604157657409839323906276304780574709564815276140634214118017118679916934193412375834752804522839640972217171925026688138288993984220798053059188590835528466203433585013387846934878523370845114396647435881320285708765986615531499944504147877247271049120618877692721521914880889381065793560359424216827769215665042062742023474357660731729966957238677567648807859358395636201309207102921641747641211324700435857657558361511251962790523495965252511023597693881202058668383155888442311073381127083755486311406324349498964473719695018606058717955717211067455389722774976352395530734877304494691575029879483626207931606325873233190664744769316586219322458746698238184204740797892279205562582884311207686348431936964471462572593768861645958423255905528211673657174335934300694574095567810427706741433013669302702339502863735039224991313070193472900445430602643148634241727117250239426105162010975879218133377143904754058325705580432775247911923113805858848373612372654074983491969091319796555760765305861777247293859858629118568388400839601520861588749672294355333172012302538629622663706588000707912131838461985487199327262140310148770722370834407357735728805908580752022423530449601908357501668093500790157558950473922778119270767412897365442496849863607393700605211225178112749959917067528589297785939424362318369416780659513475313003263147540198647655899299109747379527930633995595338582355432056505725698154464725811158202652928373256997872177055713164898700511254135737640525677258454521989119862044777224802480530822749022400641644517812008560338992338976865492680418830155838530384824048454301410630889244344410844103695037486203568430178273041395010241393445557314093242087115110530522771978858480030993105115300566914231611495537136944114545086727788552375344796067766169729074195920818407768048554314525908109979316531914218329610639986627788464978077698091757812806754343581772126494580448908336837856996026895683719681479995349269850306513558592792832406393797487690070260799760039952743801549019699887188127876070612933211661222778774192443528094258014859133558083560643734039975032896738547568316489690789267727862154707158582344577214900184867406469003017469020488316107765669403827330283961102266408324179336943710920328011186378417797734607499857250224868165982611953102238863689625885837299238947365286332943961486518959922579466802618491383738503140268035493084321909724624679954493354883996417770562802361857595976540482926370334429591423285656434540751239157019455452009545335006083023527979210378597578613005654002211167184407954853968200592534579999993575097734658272283879647027513133745245501221987641838660006517629163013831258176061087411955502232307035805366263328243357442500275730957122880864809362610441909696218962030177734116786226912144057678975403378889130032016614046436970210347604319289927883788160030650845290216224629891525486600236046249922692382393283726658999887972587931438961562559281212365911335464130241813564710095948171084251721564277484566610437858574345979755296869674067995429711396036385707186350277220695692159121633567206123097140675138510517042139818856310606259110338919141251092568953006670613580114795788478143824306521578199672004146927315358196016284854567607971007683003147055643209157697970904723515428391931565339255063177243179930099816668688568602851506890896507904542086828752208006171515313653802790470878848036758388628422858455715512139108500710995062771300990037370708073806367082563285180130004115050980317273402029911520329959128626249106149194327209926184203281054626111541435858036312936375382246649123612085847411566179996885534242427075578848125021377034904709378271795717526600622353923685112657578713964615599753941806869231113674330974907901972898895404529773505591600849398278278984264985367050805965664554871430031776897998589247887033955812534653159975334680312964271322226498608328296828592590968970073055869713914244436454256425617673097453303326711076542236288567189715121283468903109375328557964779519747256192490017991650236576818500887900466638712234007972632463914024942923543650007322195823015427893756659317951961666202476732213991141051712785066739988255848005891329018536773850097764131419273073474788807500601005944084157808753101386709876514870438737078550826163173128455146907764988627378089174827194781020340054244440927951416151240527579166678041575655522434436748001738711269444759228523507732896618626404876777378203860093857010500808781571289137351240821144060746563738503159677791129103340670889280032347051017645492940915928742017203869997581418911315252185680860473491438545175345447272864228997348418345220393515396501707934246532092565788638087014967335353669098848187511817586178307682101028815998059642204021205565894444126176189460068251891194078488592926528530987376089845038965311751816387318976871480928664284063852931289701358718678681177591344381909208723801809383502844049365485832844762370445252114738918320107179834828547502653954654602315117027172683784139353582390017311291213048878932607177589742185498356950057830591479588588951714745666474433838769953810752167544176295313427180458856536807339916206571600314524645946492274120125762333053337610009453284362232127289220084690103042496361300348251467927013154692412140938598409787618817379682779487048642328190249443826161781902317841924312055828908969407790898351125849846603845224683672524999387960463716064406667784053541180734033856086652281632091607351826165362547288113452095246129230258497057237929605605617351860334837577728622282158468173182894797132767594593886934926153013114435415942637175988257655055953908052861330813996954409671444688045004422524395315236371178765983575099527791425581950984964565631068118813710873844084177479593257808433571642203390717423675782436091250167547623247526633920049890173433785777553199661381718644236792774749647465863220527423940460391545632949641085913902191886758645450067400198469679482625053699227392685575452621340003137226530197385101867567119407357308120085680792035469284284876560035485895995274306709871784958185701747019209470609249933873303754574977213542372219121586835374717533292165228408013362758000954533094165752315319157752074281821004496941334014968295217525487329760543939854685567103901673462338525463875317065340799988985893392618689561772770222423523697309203670278657702819943107542742733416349763498577642026740469089471068276292281149865059737747959029044444595587304827015136718018933994862196876951404789908964245904099403026054292717969593391698146513658820055124089996447548064043341447033157852955533620752176823227093810099642628573819066571621983777986387374610490294038640198946926155462058574955152245684377020871438554324945231493904923700160820130087424087704938636571602035526174375909858414749110612984687860992587672581219799431305981282276318798315806448719314581414967552848603398763364906373560198166409886026890447264286826475220359882019891012840984518562762270042201420292811640068328823220087934576660696583457067403640006397121366098455758724142471706683587998381541840593161072776944953736366338758672612075385022252996085240690910561074270461331786303444194989670380683230877725677489534269902049175054415456767304006021803715478512382493527576698016952195538153425158941145667156101067305895566877582551575187257215980564864109571615834169501032042849783685100051582541594571021879586546197755596362428854967347024601694602458312475046290770604281912676978869107239343876864710228402323838970905036190902162142022164260495371255125289246227276439858490366009020937452895124545961244720646178661259429160457882956671698040356150097372303459421769550987928975005052033060496292668963411840427080074925009502400372148930073680495002281213379755380900108528340728376103269620964092255947313453798384364414295828521041098405117634662307156320925199329041153762602127030304170889980862610490730321227522475841848779721406119668812077201297068548807441398967169888481027146532376540252600605897908096545500027495589535961310958210695303010757281392231125953951439406848181817731185815823814681962679356241860315606708598890046503410820747172195419168591198450874368031057012151347722938487017457582215677920973438664806400207292893101416025574921822504563709907156594768021286967161942316363053552183264112888080312403017171748259839410530942253094720498999558781465351745246542007470165760365944037480087768075359599955457630237655551012541934560985067623391396745571287525194376857336737843817360863204492837436040539920805475232054416569174975369388676040687268625414888057560240358161059181961443970189971510609329719768485682118294172602017620928294654489533431837153595493659631415347659594503774584528366140164146408144087271401946188501577722118606622881312241546581897298839338934619414406688119069865711279924143112656183157110773996607907835679969292933387739509134456899180985839388912615505174949479851974931275097876135092077804256274527889555978278031751754174130031308427182405864151213348346789635010722758876162098290800825054072264300161961433946141342994722613984644599147772645695243626528015194378553016450676311558317120260687596581896922958768789889053793652893990559843020247467018519146010588110130182825939838500460100862683753093563829821639171662422173334975670298415656861381260717698539148971193001268708915084435871330519492040424710914613668220384487453217990384771448555715059871639721995002551099570400711746774959721198206725753293946304497838059229895066833520735155757835669021466980633034127203545891181282700985233118208480629952148226496567888486711237797646500849444520338932524422584015652629622219327125333001715178821644835436388667266870627398029042271070383295680353967232969084694741203585154317061060473191790621663502802201291458972853261175809760278491467197713915365916695751631083338127718196199805676282338132571577917998146620955946353742828765613690250543614061939293801295860474990913411684372049020528240497266533572328219960381982582500859547488144626385133165625641574409258623984167062830425995159128944634535375288374129017371486005945501716333428395480241887655338576014256389244642425373654160329311803804410745711058209735049674270257122162263572728186399019671570039067370189124359689375710861361145139597336108980991203905961685641956263343107094539534047035695763166130528378655710950093213188897149766871537793958988111734068445376318878909597945799219125006301259590525424880999613115788165102289619137974473264140637510755191764825627107054743382286267990396978201522046091199877023678069058992164887690499493849317742304660757206623198721824133671027392380595644511682888014165139014231207144376618950564809482582795884198566240730008523914886887170100424853333505530407524398811210431873528961933687492016880993620839022483020674012762292888807978790559709002962095403743685562877555875144779941475152570247785271209509675764777923555357308685130266372196772967023433264858297907515947284137038512290088028678111796566780071757207036233740362494410581012971086950166183627021965855886711162018192754386366915502324598271252470710935944116167178197927879620167554251136917076458249073135390708792605992165766389152165265311259678420295200939831236393736172247034019829603721243459362798435686043387778029816517114657046356089512397429176592894284812754809763971693312656314993703502920764477877809880454574420929140106707986654961247218230883357997970975421576071417229033430888977388169984988340275955877825569306862005821429336197270740264770527870918394213311050844630446824855751792788096346978205686813457586006580406243752213690434555856382631782154028129137739470459114931436069017442398082647309431337332925652088569178901837282748229223014659704367864997142120970091567085409617236653523717734411932582378008578891626335880217775860862403754834739957570209621328229696394534296786476242207031980334017301231203377242666954099044360401535369139184082171262053853284429296536055575413540038718628640719198329960685330006288191535009829987918155971585924807539100646528656055133052168874848159261413418409927262429645498372156887973497102960179903587048979755631496238650866695700020240297217123065151172616725249763373462238133079014681859616991067333703760699711817893627210030068188864641286976456645510156503216973226123664425199480729533146666745242908736529028869664364943495326026949498001657603514385890293590766477826603296308841426901021167419628659258925888821616520719310424614527927881204505410221723751107340769907757669996455433028573632877830020972908669589837423126412720281028609957103934802930191411122554217324529389119238683369541773932709441092504494204063038223397624352981210597481106610141454149798445375227737222305271239951142647506718154428075127845841753135437565687750863690726563078481048915712911384650460094683580153245905724573738208649544898981156645526895180990068593011748223354805792861499563865945217367131116591999069985173912964827758842951826461218486422118821159364732396121001138553595578302967814410423334820128714492949672312494015497072436230929534316846733439826986457614082515438971158329052349342910933635356789501689072156542409938377583717467849953132520343652518531154843381673563078314269425473773374344657107351592507183591989777197940523250247409126145206663176546076031762030011142226360037934964840109068451932101479932552553379053144361042297887195771697719531509133741680564563252913703656385293254711164348534076964652702873117358956741277736717231850101477685286027605800235108325385382353592010531925077947843238986786372717493986482043084755468891829475689933001809497763882629749723633112669324923448028720526933392497736128104793831246500556725917203691677278420041425855523970207460850988771174174149830924657954005088267064160601853489770873331558956270763237878868207104539641416806441246437891469278722117245813796853681769716610432868718126006275607906173988602432098838016246874870395480255882623901879304331615203025231878112615047180733349577629352019984354141478535829518363303294416235918904028914185288944320276277710239322319011201036256368771117335452644025450685143619656172457834353113198100663434287189112425061460803050201623026943645499355382029814503272829217950017673196385330194844419075142581887974625531537774666199471521234294828232033440445948205924140236305077185109524934083284141329571761304839168286534989045776894304877922391027816905364000933969550172775523023099447585627768829191892791720078989567969589815376200384253968376736179564382957221043719011718352940514429124090597812577357488710766458451077056734987716382879637538011901764156814087776644909439063735207039462227928698520921845353028863574481418849397637108329483377728550503934889246496956188702700079749729531277998200293966707041482907156555679273498295362466821210262245430792558835233234180946219439222958746549120646033138020183136927739848499337459182303939580985015513904253650262739908602419141614804964244876236014963293304516751247707634267101127061570890240869241239629757889695896778473428233287486377239562166166730890730197685620624348276924544139768446284675747840462657519963622674818984754661502980637295266636560608846988830253348544203717714286280874253950529934875667042285076273250096176649496061015967859349900358300911516783975803590665427297093850132628693184254128421077332041861754545215420769945510530398054060782835140963908678009328271687673715231661182235380931569231151670333128001141898538028442616660464784196473119360450480126754915523769485959662518932818151155541263073013681262797807322078134950735292748100688018641276339672351926707956916573305809942611799928016219523223001086906936754542882485827747681375582854948130189290114067859736803406093339581648792726620209672839172663358296815027721674382204275225421397802680649130761248410697515130671840025606942764139256610771636340243718389690337167132276781650678540320436379903292262704607416543623905810997040314062903554686794089822157020174292306531865447554424835459795180579170057037718964379462623550027349267503539573906165119679899628602762736354116203623156014841585776867972650357695360960319172369954945486202575233045749634621163558784918746770270917752713197764769616411333914526678658089998384958997365312553007460727536447483061233944817997742899483941040195711002688072149779085374036776882967463688483458516639544130708968403026572301478434304236579984670322903869417377807333047085478729506528204444156809083820180519276182989766463723773204776383820350618304932548810995879369099862484345621890835562864471336244042987107371153846872534788570622923794729266237508918490149973905991707685336526700285367793414997524492787266459588415723353088191601589369295328907968251833750608534970940755648975874347379321508040269579689327492165374686374394608664051617532603883140202617642571371326489757026535952217962209505023944069223930593463762338934983549822050504934707091399162827119185041618979384053095585438431682410093137065729537793175888631518168273909811160559065515806474465998177502443632990739475384026767114127223308042326381214355107484416744525519651904368667021413902970523802093430422117776522396208694768817512777458018519829021920910097510015903250553850311333254881689286980047305496639948716700651770409053396789579396736517327847526991900952896311432825500347295779012931219407033522392349114972300428120126640731191047808457894690981426642609952220127414069716444016156291788900542559484215159281170480868235693701211395753292169721716553403720353518415215605125563154243101987378325642291712044262603418701828027984378293398152995807042564381344015421955999647408859086691487580815136468467066877641021864414233411035850939079009175238290504651352622268129911085221572098381612927737307916309119371590874516784696899974191529611138953313237666067525634935748160743211964408642680588485498164197848707394893907196776691350286439686936155603961269146841742553974541366248315920493702716950688244792782706261926698488219645171767633752662146108135625540805807194109840657612133099736831765539545681136160786425575355968914547163178532422050029394593573951029958185668840088850108232498040259806390015998115905099645129424814629459993273828748191967187971857939383058295549528944249150929534724897923320442178206905559578187892745403415778735799338379165467477576809423925535417876402493750454002085696303461413791685644246513033058498954533619661497613560352897163281520644477358108662982196545922899349398442043826121910933567141802263379093427982295733541735213219674230514277789662884242391350231625451850724886314448855098925511370672276951102637559197660536600453043004551695803020312063905383108919375438753144347156623401667334832954914976648042999043471393999131134822559717285595045896272772195459329952059331011780323125908009107963812037970159559279435763404435675276439848872751693529182204389458135423670541744885862382536375500536545881060053561909500793899999637103962988743962152457959513241591728403886039282725248164589455902003838603831078040202220606800441148708963808767433251447670024550501337243572333008610147334427619082016235539384281045377326594430562557152131876189474669613040744485839233009773484119709928982362764815006859097169750901814122213336099498771263831389505890968449518033837212202004829814936611355360874707499592785683563337765575622005143890726345859872471882202564816727676486901722652981870436210181129345248650372036340559111273108495060381241832753993852204842500673282118319118625558452296719988478648048163716298044011177735782350325905665919291920735335606554763895838739307884114033957584511316956621533318961335701530214579877259258455414556175696811734949769759616911873909166949870207133983346843923967604102238802896886262112314457840098623366527945269910007173136465622668835573995299642372525425588432239934131695090948306867100544352721112084153509603971728966106963978566071910975485146783257530035993786067644327813887821879894680810493337381871768008077733657274058718440005399595305608920470359739808008109686379928658113176591860088092317772936000991159312399336325193044379419088276965639339231529912657646846715534155417678538462259047018372091106392983597471434113001381037809968728177775550559107427146184981774587160307781011452541250326996666672705131430424243922067859604263444243257074064591258443797673420685477410724252417171574238059507843116020583367412704863065208326315664651155878509058790650614930530910773602399098899924593786781432036944540331513351155694585939145272702978773762096410297400992170827990618384831548925968285154652136257089967852215211445262726654366468919389825371688957926357581900076256272262741006694785515171750874997395558770020743239513902790855993315966516993538476499701750682310054857507338232797802165899732523043658663496731945683363310845225340861818499708881740569851351439782944026834047754729030246945098802433830586160518572720814036849975846519109920807421617766055928266612602583854500109115664422886044267659573647884705339895274252212213629954828641154439215563797240349425151142219609664629473934195913750564873417982763412935199768573610857923875186647557589802608245185473420200977449238157343986190138699618283142876891846783875685570857839079226084610676348032723912003086453794615814889326233780107933934935710307456367711613714049306091774010981013309769170505428065079786347904059117908132748773405931435185907503396329058768497457904985814178856090344319478035921085869627372265322586247184435109014731080277030649376758744442339621124096546678408635124462917466889397905077959961087768878690202248389677665109303443580190126101415093506442725246947718686606718766038613652341217438228152802693483474721334182247196945809504910910242867964366532816001640749189415460038013657774003326376957397756426575094067870152649113831173221883294989658279701518320808731095078677006301057817103250718122384583295550219553666086455219133854194786350906941220783185908729875381057253506750412293483107372059202305235708331479104498982958006381798725650732414254782530701486388607890669841108154176347960472441133811673812213404715212555351885512514850228065285311833624227802424342398061918582604758965755076667333070055871428103114088985019465343990487432722253004080956016561647762021085504080409383487420553592485956413899118488349220083391091832028140687055570305564142994591444311240348519541607939750442328154786308184082220213088899829861313546286859550378462770769219147023102820040598297577571529875625126840172469702732584104053962570780640263984617236201249642329478473529860883315747851527284356183925513387362426245199786064471958772798566661103385624931423128213728323548172701972789459084168351291225675724949955586649934460289555591411193224134305073703629565700685124424554292400106039786142326051891009999128551393638837872886597992948509421754746150835208577827162776973521982844751816133593396425125941614234343334726066756644214564631185336979343917810037326618275455781116793540843438369889829882359182792611733903221233103918355162209222595709552100161009016042492096771534270026564785645413626898988255984565597290820358017428841762430252452646351491582177573229435923583182576616613677778851223295093852774663472522191584580129948933856018205099829504458852264570301079616373727251939759003187227090187562792106152949918259092126027290952393481331648083592065538917884012117705205215172105475283984162827020464871577682266169447257615208633305737524619653264614885609898219389281086202556682711261129655789055954781553662460802464688548835351600346092606264342495584746345839610244229569654866365082250924688114079458559922650432925205164255621914421170691228654265323476814955634619871729344324725193962278264999705140767609438058246100318987142755923310564867796769709251587566109387867755312582655482096579297518874307806217036783980746125014802979053710447893871906136926094788621773886783922044281068782735168743229225577559072038290626198410130753663988028135004374862452614824831550243001645812403636746333685335376963088224084730652521354817206490104604833985424919261537342038941540918378696911898748748712592829798570482134757547084297942972515344576998702595630533363406172096062201475948155114226850394998002835316347033046523238114524407869538244068684882622996566384222736774733876630388371343744521551669378040981906297963826436635034244401770701616090108885871809667137794966677536031367749204175273131347989306170611220749220656730224350251634479279500268939868542015975665715223806080899089486550554994433952191510398085281119145436923700053057238440456742267691883702512413657362591970785138815073415484112480023726932310083146387230732596074233135556377133694309984015635423032265452471563026933867813635833083212108335042008457154274714266048832413595677452865225036668616193161639945957577330239013538301681738573262077739804487551284777811721547969613035481709774603002669357146356749078420052723293475068413821813680369886730033769210023132801089527816632377127307236226174294357110911618277799499966627513497301257498692515339148921888284247385511071497405983445757825445821326741229006641674134534433988219486225585421897731107575854731461976530848582056680081565566214568138101509206742553002958888292642959366071689777318120516065401971644384183121383346392041561139790119312864391098696272183748836697894025414690938568494594163813143340972415939257973364567216944089449467631810055628893099260114416485517477440336754821609175907124597595933519238070383859130247559128375455791543766636043246313965002229690621754332320409485143082599481712369948413011009777470246748945795104527618461143372321925844937057626011133742530395600243901576774875777602484046543806939686673245385256630634075695296936826469932417855651811923319971979968801171806320523071744725917297440336342736361686410220681382567081287309023570253188405701838811480860402890480257596602279674010163322604703864717310981792650595030540563460466141231144777997058904059447806258911550331574073815987622327440037578887993485389862393838671343313047640166615805456392877001979336905994918667140939498541506090774468783457735636564795255875158285134526356134143860694656134130822167102617075513648459904297034525598146731265193441314385844518154416836977348972499841477820962603010696106800730967298203605571979149654692593449771219547916914613006551487016265584057143318410467279969962845813836697740673765088101831013801013733213213757611899258794074745549866157347816184524844632598937155447177702284563265150390808842142310863176040162879263647589758337076346908765158732533056915203247917856700400044636858783724715937401003380294019192540220784915875962186737112881836094786600734812857604246800299513685122221801463463137679228768888250644336421277666452614426503320471823119325605542548814239612526836331027077252573754181554593140565345808754639427233680691243546781744188375036674938354493991476113153134803008404783414670249462465339092304019587764184894993412109208642347154351674675613298857657745987267618826448863905182303630707605873966863483508254835421173256780505554163150995970420390511741047841446146591481370825089934321722563596018815892086310563164443697673481667037663776348270484427695849241178212692891522861882725909704859136770749514240508480423286121385101648240230797647966376318360850209172297991527675623089671109160203388436902685460694322591353330781755927358411371504759019805073809400869428208724683299332515734182729861115213287284226049760474546072758277573377417816972314204720953862144528621680648444961039866915727132984609830599444226656155768582705402387028516383762357877009731402529949711654351848624938985807300003112453786241520439128184212428239258145060941214179627043615354431997950890045890469842393458060746081677525863399406564816117135672713252930900296311413198769873161968304393563313535174243269329688563355713819092776286925203064017484031940028180582811820618276524500886769515260288416635237076783377521325399647143446441393849287957728755408416795355741486831385861609332322107101785682627569385534569564592375912065506268436771715250244626951266726972705738067644025262293556791817930822429092250029382794892134350746661540776775029412066253950226038625162293890726008233174149904130333964818612280518855578859645319562760555570214570869504752431530989099312235582640209751310262059401967747247877897648879877588513002777468559804836593370752967896302665283802873751335538838937111292552368060516422570653847064964801477700411316417364684213757794212968899151822624732444675166105501380593610718096040540200066361655478495674896658948845215419119959051757055835184408019767564763159405164878702091506511685339305183378971881071143366466267425164875264401018002800331431966531564329886775670171819699966694397488934460201114279196006855565312236375619748613532126120418562758065244211967177682815705000995651568118569670018765816955612580528503995787617036079260821932620533730551005580636404097059388976263640178716619089159540032135416311506802623183662191888300429520249562065449416021155985274833238242622077803464640327649202265921669867177576901211380872775926420574639722558842648121470709324163515147817975996219577292434991259413203795989587770530205986581015002425621096191575332483746986820021153277889575827473632435237396542733924100270642394942314028319118869121790187880915799727255407608622313624298203537036371177208224849571336960536067260717242302798030448755194125115869653176368725007838079587675856347806191479211871604768756720870579620184812752102335057384915348735481726567695136323549708634470562821482456702019343023775251588713462776131905476488295368457172155205319187545324641447298105407577348344206139146712935099837891179331378556680185737140294392270440782117734099250336289748626842237102596696199421458183553913875216839300137447799829291712277419522295002980047083010555388640999107937307307083120321057635829566099888370392853987034426685111738023195404583458725389877152681958592678121015377474481348952010528746014552465671633841616311326426807186293139952114309868639103902933252070290880042055595701205361370657685862650500462548932153758435491466425295856756708188146984331867780191245900964468488794353123156199602889975790387331032302521648791883216114016386625084408479648885483909215263739030062608057859269732486667940677940044246626537929182235987524595115302620210231114530374213900859608759633464439498631103933091954760286493043964589923657098140021964605664089580949400505094614415344862771105566494961818890730481202262234706532638841092652735068263284386788316430937495137211369986835146031769446290671946173770200696338352781665869941249338042320614465207055678960948406264679564291579458098063904972326293693810503134291366911499548587350900778730393338692054272884981529427918208417881817536417447702910020932396705685502959067239876080199648451312656063154672923318245815523658411431390760862409589900805396879849884698456990880197743437828597343970973023992995366878639442033656134370092731566000657813728888587210648434299548328716504868339617410005497518585193555269381323764080999643307680571835222772410352900868816230687579007421634380679860233545895261619096039831719100905741696047981144690236886801513232164472593967913250303166858100257654249922613809426889483113522317576099441700112158937728999149419361745157676105345343212354231385205031105427361679349477218477237279567211914221475980524506576758402822740038792554961870708216323570457357981773160152178438579591709950095053502436697068017553089499081697169955626009971141008291105708811632828557785583566760519282293499485811166063943750421172249843538222637100856919162795975676043023072623864547014557395486066470257659057945835794880821956742555973982623542464309457331483381766654936821465482570428774502897835434099992032944039083645329786435209200540479488336206957640006144117445333856158699506556917951805353865551716461830196665501750453165804002018537594993727490147963433205464312492828470873931870055617533652953047259095606414245865867803600812886444366889152283692647135043379555735114302050654678236196604218748831291710554570864020814239033772303571747615272848445285422202075964308706693484855248680812264552425666407888419105758475135479330510284476729681820146577419108084791825152926367215246872443090803029084999958885847409723990234277307043097612553657100154560413630681614751391492935523824128751124068628322718345408470843384906809687342802292514567494732562238128705356057564580638721572688602991369863638502906942257335949127763033356740275327195398570175717873865778894445491351091548241821173286110976974998183627512205889616616035138371581065560553805734868111928326517284648877587297716001371629275990069992692273809142663541756698068218445530554428120270336815385047881759933138950921974896979724137028817145508751175587293019867817913043275020751093303674062795114544674363009687630928695069207329578161199275386566859173479099291794140593894669488990483743793317680481776254792110929004179060281880731026955606993056107981811001157813553944100919124908725439871607481288634707320915899051191101833458335126109700950313287891693020256746789259207412272062091238664684723845650028007183345299998031992890470829229213565948704734574123761636885110170733820179498847798508286413223722782496975190330067151552573179280996696928636129235121182039021844534680591812221327123743181113596813166792393576067241663478367850174523930416989982969135899417621128247819321622084824507157255214349060241942595801105130346461507683832409469570983665841324108885188995716869437293281430024980545634614204773181406052927369247838277047234647422323500484425238045269840538927066684171968306284715567074720382381547666210272778434041129171900292007305729391418929624083487232276324725122849482398526165827971846063928297115540706226288648636762468671308866485868790474707628364996821408907691242570393068977091653253740533477922039737559933144812837817163906800680975938438169668220258400872024293139285108419395916239606059765643863018002840883532592217973867656338035780916916252753997985621731818250238677879057697001613616978700308533845177947205960749696951309698447273721692152643714303725662443942114829212554570598526059029400349286256370565546496700230828697958492062889944134857420849854828219952476013934718384147221100362085624648037496929472889887258824265323767500547490855221263451525652262019969435387091710814746853017559191773086824121229957204649943203113165167515643490221548122239341631701527212232043587420448081673460401104108522529568280003601513812499626548885969236440163749211353167036184140621960658076970203107766052147409535408640065156547451486197683485607606449682648727937310589658063696992470160703258043310578621275524802054894706789776381865149153916456174514428428142525396706912451519328181317091708211799006243428965652761650725027744716038149480934692989090217543499128537367567295437791201313564783590009106320494191080019026150308869804769540471589374776090369186290181655788465735717251875945472623561523024163845559427108404531346363205333530400126275758170039620413379338851864846702591843848862507059036869586916657275393715490277085249384085581199620734464887637454158657106584978700190162597929357631528921814299891942081103086807195198261366506495183763151379119931782979478225859978293811795516350385946918124104958696117890412579781389678480184912776295718821660614153631136712783198826895490814474427566524752946705908731212272471951091866696914273340748893210070055871280513785986508878770696955649337361747955114951232978489203505377701200425836107711520040754233190870933043544001346587322360774749478389459692294102818952792055705442162223475013754495685725680910140875447019404525648832230013984881273749366057530437743685613370139451798581236550133208175403454759776510437178581541260504673506201086758798842132508965571458525902562911263509611676439349351756433358745771451119664452623175899876835045711477503229451447709437638691472357888681641729246423899042469893408333858379730137070623196850558127143458306420331997326797003222982643027783226864641021331038933349489163695703012374473692499845228185637878898465657224400837723165331393429510906378193972728604207514583386461968099116103788900415019484404656007033910867665131888796935966031357313020590907053243609840119996668205169209412222713569796645913069679317364921669526284282091331815608777203443395698118135822099836963279609638769608038443323929085404387531968660308427024544349617615845085386105702642264564560152728286840389381716914024172503641089847596521668474146500783916615420058505410677278114667209127858559003429903304595001861106946068149161618144002962717495842922947028538242973039018050932851748889827751439377313066475734620483919003918216483273631925582672523048100868918181662442113187032864399018432388767545768328846479701525402837590351141670834184869594047424320983660868093692895897267910779884054522572101861952695710091069458674827790510635055431907737189334049945656215199199936951257368322991878416785855142153507956097252891194998706184952812952988448143316275593556702886484270049445726131941164721949582091605632589043233396965419743349514202309473027155145710881546819500948204489921380617560370105669556517634903956604611747451624810707446340950724373550330469691648470284626997669748136175951712508932725580373020993039354600697868683009584890048961605019762440182664759400145322290183155713433242323610715523937674454289537386703214327877153387811339608001594175037997295469429023532726866021135066944769254474093569486874689752971494472549009559657236105205941274034697895868842851640370116463739437142296580741194867306647284943701352642086187324130257561904481930979423787396957577846892701021429185022441876126617915368596134511670116307254539744151245190075112174464359928362802608186008436234943703538948819394969059829768596593374762277523527247874212379263632012502941531015210728456237862556539207463971288276257527530621309936057567426635853139278888433060681017122839725738970803578255056410907221524863400285271007063636246141970372490533667336145487719971128755067391350411151384697227972593606814218241564479511452907553866786687339793120039084417773736642923209392452254516446569945537413343287369886894941990065708249154232471580109921334319862552705444643021471881650489304177876604027874895030875139806639089691332893092115613831822143380917069881388399246972391967348718212765621380627996216695306675678441104842266995747997656038723031534337838721125090047491110984817419861301205316647120563356268729759781704579366331156452917245318614218320186176919840064273687277186294397990068371037843646343213266992704154205637617845836781761181087006254434469482384971877000109418498944619571850688172489861377177194080696647136535497270297082827592335589429929850015969947687674201690857710313591874776776746767873278254876664157335105684991649063663575559210620640355611378756411608470734310445846973562311820114314708853954483185319818039759774525789990667195470201523716405566200542202490663420114362259455460870257129048216197109581151298129942840345058650808852279237016064648651970421999278349291878987036403054119043850317577604236199626859078313584286008302211511790997934059154987831461826192323126235388159513784459150875686006076879870042658649442577137993218894361133647550748430916577583122749608818420869566880872390653812073390072367794133077409124076577979616449626962871881853754484362042516447473048229513598339495683896962918823732294254530047613757228055930312461215609936532451357959359388512814002026212700397004804337589621411762307674473069832346103633445841095321268041122103531286715439039749113603440135498835353463472455504531085558687359227257163294789845970482550191434336412601082844766870367078651042570307373610610297060095446648393916888705323657915795808501186165375986488270923167067218563918002848315832238824297131943670399715278300928145075426374992238560712149954705129172898132686076342076344587167770217546704080525192320933353007612399484239860916097980166782834938518517865338357306894909658922609617641481162652399990105705607291906490589192662668240088576850494797136169088103048831290920330971298260936167873335589960184622499925621355891855120715557504518320459804851560237263134073267464440580603195640838894492840050550426739363155781340945908726016740238739508687104099418687889622788378486138172508150510359075078423746823147131362931902866110752067578854671911947913287520043521648813165150756759369320739518490052405385995801767725089499492188059430614796039102628896077914124990853685133277949349562947854840877459272681202334183751503781170937002308783375075417219852852526165981783714510805859782908816552018929987835732543569928542107919476395966867670868385798496352370404023767299399517770142238538856252330460885722291813499845081051392116885748018028595275752220380237781688870114684134358080108247029258048969095599118569859825553191534491983762054257144850903831098428997333098846168544359348971113621817869852468339686898999906752232997287653781557901754119393139929238958357795935474231291640861969751161509264485088696708633847147991704892730115996089653073726907211474619058136909486290213512744563899220295179372242603287193595967881176617787558421472143899143401305115772336870063298666029771106219850309861708746143658527802018257288123756833597418109068378730473570443953511680890923714042640021052100792019350106590310475590699039887950844568738519423690486937373868799893743542405370027024036820305663245560610824585287261334757544548552614903000894710014873699660317083049759422629103186496352109835641428378188591442321368432078429687268751489849732747939200653278027948488697482319554199918375638572018824909356865144083595352459125465821874103767880336848126023169102176392723952370270087909408561628502156133951934538497370377557720810910069008001634690032876928893414733367682632735745185103076074618109689447271423941691698221939033991704423164027759780940486371516715080103442623983630091720020289469249608591221836974669615418233293774368881345422556721869019589331448270583082628635828827145241980044917361554294628474243623898350936333876865907557563748503540838187160953298160341821568499548391973024889231088870400937907069832085341218507713022982477213756480869690483289494655680544766291623182354299346470564968207076395480975577897666783868114627714451146586178850194190280505206336211082466641442451247694463449704000510918781122138483621998074508423016509390397846466746275719538696192012935543261816913633415759054454544589606255821841642819072280333159966599166831731695599388822260000324142652823144034609758204612213535313172471989835811688633499907874973901465006410183401340917602594401400476411541795504784700451427445283384093076615088654201659023824356910955015832605724389087087413844032195083636054509155806879743905052209018518526456255402151873450879211927492578319529536053712773126346973903347532666204891131088962617572792440627919611640786395397600262477511639659818874672914110693001438881921094130283005237513232656641880376995888901915327168794637199792300535079514931975272805080634957548139277259387699934722989287888645630099061260708569525576448942649848216201431872268410701173160437015775299585164009523018318203790042323304436953455250707841482701416960834897122363157820096988218054685589389119365571002915970968822818583717446779019647920103954075969617764430735884466267978316816671412613280306356405712119069506443398709472928701698368433758611068674840593003262355763052584053524563339134041104711249349207869789840697588383144899613607406697035378958749598853526392294071982277366380632645635302232108741444527525119190981287222388995712466227373842931560689427296977601326808365439307098629567940171929580559935806540022776281461651599815813185326665343364313725723823965341334154411570141158033279624749757532727007735126649970243423669687288950225667052798542204426693074853250057082635780257343195176642275394610014527721422206594567203557785297342371494545037145600556938171030768692389907449108386260129783433751438700547501758645241029355272437354958032078938110058969677994910174777444015491099520081723859483506266843744082852406935462873175782641287708570587683715603457291367711558636537648604129737438788334929547067787674884369821741398687808840266026714700425139029868993351392471910346491047878792823123038932389211931163759889680376013609050214191031604626217705173897332325051438030218239184056617309963674464228528562567213944613814811341649122206484245939969029328612704747390517183188495490638664961790353618838929300923671287230651979135002402204511304945566442291698771622528371698441635137734623763996154124299753164557454507640365524442867535859111268159174715624544256543319681342905643636584089963973924670351380911908881080842845749531988637823290177279565293749916976008304129510088520084515920180627457998458717842836752216281684431089648385451795330417053219815699129762580393911769766207842288504177917953327243597487287652974065982664851269722763118101981029134467021840919209027009498526512828430182539618688043451576438738072014771801974205354059070442114605286503401750248236059767109035664367707137222472956733808560062507635757652820715297545675261924149498296484481048610342929383350500672549960516415722733930180034534194382641447877360030792753740599144433440240677312575928186991468920563550924626280062188398248422901802578303722214109553485993262903617868135891280654879184755557823064959509926959621333621186687348642634328197232932022044856452245442692680560252974400836951921362995291726106012923420703996946872465704003757710894401605868159381315106211328654912336813399029546014717300710155565101654320355162163763067352055292959955270965052544624364278903635926409135405954707480364287296391017168905434427087177323719194350609247180201862026129339023793250668570918332024600385667299025535371346913355905883520920481619350996898240351098879010560522854917663557262281179448940771430514202849835640916294273878718310841304164073587563138178735536966300257518428760265538670482613425561490676541025377156142788730743103621251129695534581264974556890835496903554659834969432563989924428392708602888701617215329469029903290122294269462948597106261420576737543318294775376148575745581341157483055632214976660213154752493084784477140393613668688031014151442311730196262105917649535535103218971611724412828469687789151505431266579577205222564753250167699780314424983444559342401068130229003837853401155577524607240287790025665463886747722273169982742348069323646289081555798062165636807674213493228165242513872845172521257311451753949672258256803072992344703209317478597770014497570146122124590589086341170942484114890024144015299999005473429960457111364697840382792903509895344760740860651205228023994954007187831448951505549154346618052364106801794597720739234201283696513169333054484725738589300435885496478015226673567741807388439702159301945024151582587282033973882677242399220291221329132248653531226636610397252957599346818626059266186867710055630080165045333841178017683610128533270063640117597362259165405011251753717881986873072351582615423315977687901294412027233402746817450221996075522948178048994727200545968707677488538258272847610785678823653271720322641645721627286528230919886074715484314962901614257635465215167587834330489125551532085675118023449513643430372087992541576377357933294184189770838113904668009319334102320443009633689842223158954908822919820390524367260059867152543814204244120799138370241797772796540675288785683451699976315922507741260915040892131927254734614443391077297209292118177700913387358695044045802774829621797830250655743967232620206929948036545857248633565265021299350548189938647986193021475818415682457199121310787770552278798776194057297428796186404480366581756707081550744474134580957061986265565197187713949298231897472867543246454296975233489553171108803169222058055796934068489435507695514359530206700448864953750068681752512999109617892225223483141894798880910065625351718442064342743543577306475190667033582856091512072679942274312392563030060346664413064280901089685367418538253991764317969558518103751794915907015126984123620216120165036013187481215407054649618819097119933600037502051872707863905331595205227523023374754673325104031930063202490005229631550678125068218940585774671239535490961014509414469327916183938261879526438521037863239810629583388366623288585142808960868616462908603313258653009806229997536536914259312841207772939817241830467956056787274561441185170222795515563070940373096367530796546282423390859264984581852616754483234908722822486863344208304768119786430879675165966172434417684536990799714501853340796841356885335736244965934764310288331863054198145979181404545968021996094526200037299090731574879688244615402945183266212329835973678305021198874001553090515558271032444345464353868433010322705744075683430878734881987249414955437316427237714213759647909972635683127296629860251875510471931540659151476965555347348585568648944069431033460163703924562308793332125155587799371844248948689291906120234778544958780801317139573741295850914106835994643322551850584751805153360038574577068568871161551887319946650162413925893718557873369704910614547212261929695892706442809400210331044998896439934322546403191068520823309265454192153409821008959542239651130321836500037879664021781173869110166605045664034825234761155542794253046038418158535728338124650471299886202514869811608689477178842211556765422748163349886094932001133968755600467299370836527127094171282057587650106436695640941733027728121353628800029116373526189989470611490343046759259209415506389604039668545789114263427751892959784280944273995639983098124026667998710152597641728661385257527163229957894559770497084630349603362893035702865596355548739096700144321973604942985410951236904711902569658903014077449300447093707253018760078493540054917353886498117636785843792977310988149937902107488577566621911995731738539861920516621809627938034267689025680920746148935306809411976828630376656390067523663979923624258824328405941489746820269662035266727180413063733447937715557911893884382428803524946716182985241374206415445189719150067141446652088438574881225496600134078521208411042164919280489720228256244073800934264216195178800127617684228063180052992762854623433171799597085193843262427615888708226268062749284641267918338794131329245279714690833790576280710440011619794746652469341646983235897263446333369433380408902715372900632397123581470469315887018772372525971764223897496696701382120515160360760508181766714525308011922951641757056340374728340251104484646858183082789495943754969245912669344361253599234930399495817927032241953629196443101210877655724604052065006705975665679389563824595037501990221613896024122188819871744907109120950124704835963228226542091512083602283201507312578459383958638714896745697372938504914166628783950656998364530658889168499694129561094022785414925223545553670561518912839423721347322797659531142212623709314220264408755628606986946732054399128529837731000455132611678746387183749119184333025854756805112780172536625659751549727624597181086174310884080808634641479726435809541566758396554633338027084222296267151000186896833490370380082687811224015651733529778706833245658508888004102012499393533172334260023834789026208554074321917393422397749891517253813192631126735236949325378954329256047207379957616846816259928680586576705863829853586517151443135942288746819532375805137398826683942419677122978577753776686943778783462768450247209569796657461712927183838386067082750327189821828309373917192770210354471687245718938269342037118778367341531652826143195857972961554733926925306138774007801815004258136379822474249671020061581376348695465613561479598116254775050974855982978795649420676686505425837742797618165693364378119800431742782080031018390275953336392275564783278587409680721948852575110563613509369112487840081687868918053473426428828221488706748268096879544459397428353267834344426675792079353214993874103028019889219517734015362197705496874149146522336270611343053078564046115960923520428634675713990741203159791071881759122342323866710044403753731771797710020977184721085476168071006919309000910742808780322830121300972718272306295388528618742999369006400198789166898902099839372621174093580329707173651436589184124992302706650322912875217912558786673182245715850095087927091626975124318120206641106743852135260692476066152936412992851276939172059202467273180509119103620205030337988704742372078533760380912416916385784872282762663808835594849147623755847676073280512670738700329259112030891360777729610427604838761149424804665146633445066489947588904835979517952634134345932899611229766521066360680335643209319394367016597158341417203879189777617861078882760923434323204357576825466209914032225966488542167574767235802655151383621267048708256227518686851800598591372076478647354328496894301066659356736611664060327942091454655035774314081747157815383124519845551138981307606583934999131018769048405793415331885242299432210908326803086144637519359624010580813587707260821388251129222732827253491423986553686137121576525893586010646715707577084928561692223997664519470315816270809476578785129412867585593951036521782519601335681774599856269645173181045501510180569877480528174969833426304364104747545692655332248537375549787508010618634939283029875534250003543103807965228025067488697273189802746368925895197162325642420539696809200044423628851473764272813439090593282038532715330865885319311245355452765066176226075953473643835033813306663744625060353885527649675704869812274269569603985203136986593693598690516554621815456321814615349026782983347469732773996263112727742671199041459521365006784322654628171956498704610010122029897100297215523880140896042656262306467214782051466353952054013435558148889718893508611202496958051237108568917300102960520443768606500537170100707021952947756726267705589998386985406418414650841092506937518197965598611499289358411770343975214023897536769471433901892195806203339476026409158973775163208135341790551026853108815857184541723286104028968521704654999829481287637651841567731201288946124966342587533685074654913747583833849319305457914326189643830248724338972305622214178705000133977853506647271258953392400598222409334825272026850100416431701361476316142518665907368776499799906056481947798256229931230540140097212882771131226298110667815420053019669559711669624434416136398062184110453379617949298267065417604662616799584266398399726937710438808610003236177863595808561069666960708544736551534026462798060770388308773984865017163568674055286027464439687909821411418951139172892771693570390242053018019111613202911150158452015194864606154942013920363028703514562910228497776225370585329760582534745993217949129094362666752508990625107107434029663216996955081095974776006668933837831731601177084016449355506282241546937567185475250445196476299605173848965782782115905928968853591523411106937888021532330877958200607041715145451175579416881607584840700763272861057820798295917217328808627647259173402245912533865676721240680114819246185374947355001924136169841658429349389558179339584517007929905010117152373643811572034022020649698179497325967134553906402944578942364991014243060525248079664582667343714197964889252379439608201362572104885712588085133241914686386345898579266748771350435794274989260596384621055588715289477342800618334097053850871956385666671027077336557320242248524980394129615935638189747649799914110782271298036113015886714391734369400246942743861377948779970367519830987939982385211885006293915415676517982842344591083417042224315873857917859414554756374352379643897765505196712642095810265987343668854464442588224164805777821366021161192599676234320820090789044502406418644781542938000455491483747842700015517041975166173032943425098155013109605424260798352215722560119944838174079464308987174756485646119538561473678939410144267660361410393703237838146951189586263864034381393530555029674014928579569426852170138514027081882899469512328512965177414750399740278115893897288250321794094881023929768708664698046972224759979472408017671296209235357428736370383410183765651874527396836392588076093118973802149214366631161378291872927709083707852059847994858099666910966604576233846633323783692558513582700037106251835895311178262563320482165545907898120350456256449316807813607989634156726758723846150692774866670263951138579474000989913064360521144344492446399521369703730378935333302406746311198475726090917146238449021845722741153345205487861931861444829127245795579897581726479490478230764434166108191893132834291200331727267239689758850655276625752004899518614909905221656124802400873380073837824092515902897275797640977911967984533842935379465426467202049138830359985142990911573869883496770784477016489908151147169953393878746601827072958410882185791793707638818279474183430507052257941254917090749453491713743351229501126240669247918685097596329808088835456387000916583772509691700768254313231323651703537159568264591584256857072793716436756801921453347544301902679881227127067502499690064499299794019967656504402213372704904609605072806832679596251294170553796978902476215276428909477928431513551742223750194117774077794521607643396249871252343394305462966638227147043864310726039705671571676540892269324138142591386216801787606459681447421267043505667232632022317002216018492012627315955465120026253090291553834356844558425268243474969723078498432801686478385523118566390789880402346597606271868962048960968905241900845663217598921378418012964151767530485106705868112146196456215980292335822627617911534068669619900263157964487014503078100528382948454901607509793645618534185685845854003567369173642932258870384996958492138166452417459753220909856591952165057255588200538269025406291454928314021770945573360052328800604646585082396354172219956631230120948993849635217384467686187771230141884090418999435274715542361872562088020810149597159263526850782462757731483202223351531216608395866734599791283609229024053028202064193809127809811778885458334618772898132104228212332847302138045271740131530186549779995145125501886791954345948893689297642650848351851775879795138096450347380811082040677344078482053195797316219759822911351355022578759452360239038048715633602045189777366883553090171763447943511559831229116024184980349770515505672865855100492673454262095840502835473148917437042179159003704427068589602258606708522602261281177018641181040120463130972637904582810402118080088559516200099030472548376734927265597405585332611237315477600665126864600855453738950676487148948661730962837739937126451386795668664087706755199754401837090738432935580986944799937352506879316702940925884203063371331884934392435813907368342885728523926074230490900178609438281584989583650903969420709069881217552653472985057465504462450511582847757456886816149244644394361875586214395992999906635575663036191677610742886945075993033072109303712450481645635017026749034788016322890065115387245221950303613941405524846611239856483033179960695075126566099885808945641737609831461447911007961188609574239381127914345254420395304045190791460022929402857151341539681415520691045771395895931070182388108644634404755574371840873136115737553277889614321890753054726144138441572075948725405310571202275683969245926407880345059099602365048427760972418482062495553900182544764565774204769210181933504858295216410777881418106503967067761996764184089285757363494264095902723205200322426434424092809271453891374295452432464331604190541617911158089774406380481731509897251007586532021654340796810161765613084231187258606324274548922739487925779934203222181256840041288222476505345881040749565052896672880964184074013595048914367236375235883741460737988858618065369678215186641746760147642190708343290740833335512241433055553518557172897020368506393853585828206977459003053174655963367586453541061844503102569782791384298704384613847405251623756008636304109038236310475050556498555861559047712159123686838650937270873754260093386436207645243660985839706560683860915518087198722393406867191668156769975481930820527669675589407249600198669940686053957889236122730109443165066551865063512463683610966764372538722278268190396472433072364595984313082523471440241397434329182242618779937295970530229850734095478382687783221147784481096739494160659669733189305861525231473210390718442780320538262595904410750685368605096745633458945328279378698364895375376497383679148238153380084567851900239438979397795494033887539615021766902446645249876923224008890480960161015606591079990773029643108482111446534798796685311013844679671610420798912835150406278827294944916362576099164875085691724732351944400868842134692499237613198170901342664080900558541917948851572059438100242470381944911331567973051551972410270854574158638665652562933680467005204397011631434823930701834890704381094698529891446884160206586380164889735781132154488853596826257708094642591153638082868320189579992144333435078541307302547104441342378316199005550979014564857283234166154810423720608804069919703539635563955012043357451276976186000364317872119967349743331056915606775264695252869838544887722238029797846110900134470163089040388423009094110612723822471562442493883395842950287320659777236769945368297314050221668758850799052999245979768838490857141888421789609861928005500665188434716827610427177188460452059058798690862319725169562991260555649157786547176457460081499862133510992193116519987749739357140522135566659565265800099714662829117865240742169188555077021052129461069083657147546558009255081760343301333925505217389773865633753147335716421363629807302199986966444163424371418647907890518829500786272052290458798281492846007563115388050291005036270430563461102636325333194751425144472100914725312895951438412457420851928370546347685334005226542171335149781029971323958793285694285478159587288362475577790777180896522326065093091848135859257368242653303317974489441122699736385157298708094214421732844809950376295013031475485097371609280483018541408302039253163112818112262651462253572377434981748301985833058008681380788429223801716034757982768145812773210905915198820413006026880505493487201356162203672866570985093142449905986278287379034789517203594700679945571483396364505038165131516176437736577265323246576952135179802213007831174444263551473776735014358512481844595511543570684175458780802386909489293116763733255509470845423814208732129386899478402504800708112213931014484920802418451978993666459888340083042189705224914733574549369362380151610783658635060239416818011858637915847403428222676289351162939446978782175896276891525356894741106690406406891370468120617999598584100533074084457690458683348568563653869240346034261669922895941571448711484408139854483612468772425770792419060588194370418542394527135250585316641269887460240852236396314951328615769218979047167491691870295527844185313792801973739991784226630944383119824285033784992457225213742682689184406228580882933725743791242927862357211173179777113153211565530634570650108884332686212335252619301413521265352188918983389785010922549099634355423226623784873816540491419259208478809992845017663624527980518715165917195092822633126383725082789039896552074255843150393423822914178316631738106037988121529026160156339925874754757717487274191235286367834552038094948712511346500040914735370476404866914980689669310268193666782116503883410492988455825458960286714607607317715182622407323098273901610356414769306347643291792844933963568893079942738479361667858711362591584779447874173199385355362111592633675039942883937885776460023468111787370437640930174996271824422610005731721135058662853254574704724028536031141491905472611465071708764476933686458895351296383990141231066944018700225494599914534789112475209863071884446131520585817042629526913702696291646384120186251059050900752249113661985214635446097234247178868366185143145605765873491576103262942832865287099840796816798624626311050561804388973424301249824198674209582881782293077186768275720807805139987292081216104338081539803212032047093746286935446068025049171700805606114496340426669588562991476487689479356719587627194122859464553480996808400529450853100709395773287933792597044219250676159357027257488357651150105312506250140313073956054534959723361009391103572011414789033115190356381937113379747280276844847453684465005572607524452606397541318385785298060328912935667844625191361417734086029884467905977999544797263443343025213027496632433647419996314906847114364508112458128841371064533237768251983173518108973125776620045616188077660304465613358968714384414534772940933428003047518235597941597236606150661540206223245569966601605804433840181711331308562803675185961257444305581537001600341516865554466419997647043407446801207041943490041268733593047913357659869408871475939506159545548845477715484035440889734550509074945268442674897744125268062574141038615085212422668896028142960957834365280121364668149700597878652383217823719833169666764677792880267055090210122533522798868789639016911013778843617260357916288438927735369535969115605515148361085496814123928589253824614120446307789626307072355851334082492834163499214380196461259780385988248758668912673535349083120465061367731851802093540251112208265140306481778786314524130752998341673504888764137543162368293630603179752970550573311820664134606879511163077727908970083269122645376416558224624064838312801167265108308022111634245337395407248427647182353663214213368928272041637896521118337209166790988383205669283922891228981108322990067757302082326866334700213269903811588450975633340649237577682677900997794670139116179477660611197983299303446812011796142342487304659877700908542917212316227251665456204171858499937436555405191610813205485622687519120726214493964585324376365399687662107007008620025134192096426707782788467991443284394708272030364094732078269213906647567516853015596031217246016742387755206335319734230679784470087255336562538090620775023577337360651037861061757996629704689520087262226038211638242316299151081140396808482711354080513986137559276239013848742929104346327623744438691544159610216190965989792969111633112719126654900191080757975288466327894419513685674101156622270254754815848615949376099958117873659498618551173461855927791734391101078850213120788679815446515968191770711381711495511711383800935976942034737715654051552866246254159517748521753467517719616383007754056252990207608705004592103159537111314765857474403117903285653259332043737070752550263568812708201279789683704968380634321236764608368858904673319996883996940871534237167103169988232599618261483178864224775243163301015593127953080259945029933353494324578055861698410887473902470813672781142389976652471457564354306477879462711658945396837348847454030455111517593811596551720695237908359214370504819221165935325026981720854137304910562808621366787679959894111339505074720384398945408169173718793827389581060438850895735497662754961185715428343138052593949147370543169457356595720693947655948284259154992939461630196379853807774206942834806596979154643961055093724988202139843137133062758431419222763230060078512655109665610042051737571016158360265606088791835799706488050888475083726607616234510835685978869596267478450765155275730403197821329945225940119949501721787320991864876528499983342618968677515360594294190626490660450749671865866737088659274348002668087076050461745102338681616318152506621322332177184809198469322411396854130854849918149983060978472328468389463610469130468990476205980498957405494284615390085014820482261527933342234107858934526276056000514106574738867213246179966206862267567371392577633527320836590014234227320452725717951608344514416261291443242660277574672089510238585796290459818870221160398793863122459592886049794757467863878121135226791582805880387791887944776333590206076124078804509942073330789381142416448157291817991895732061532335812276316851284409337336733494785030070145042150636564689702047712061238699240590976850255272016661719189784698825472844111567050213483620475929500378855355940746676041235924087676308753599798336653995261835242694561468608135250911768266090806868741721532351381354243225265017178233987691857905884437978408513453896701104554696222386266755526948521227701730047597216286545435202518682403566748236902307684183264595525821998301729771378586076952627949009738817641673360717362892757062754342151424864491171482170454343417031398190274774092505097130152973513615226092329307040054408467784946824956652528741727708795359944967348951137065522573618924614282007604860445839750692112794547653110023371164250134101483220970612013701411373126843621021148447746205660903337849639855544840049113959704794018928332956276578392394839499049230166007938206429318961550965837153560344166611489332169414770591511655729845442410064927408109843008368018147953028130296716289388554485244885178442972977573427641543030213604841610657213430605562220922305082513375906269380078522553578722843991208876401020178269123761928712651659585971261580979915192189827039199491114341512114967346498265063420629614589751419466362869406493738812422128450582049814455363771247817175411265974964741752049178864712428245426553152969414328425289963773530431631460421711174364367782881110126801485593811079152865855818144350904570299256391095788754982731116070199681954740297619098514802723217534708644325916790785231930572117145049763823716757119145075398820837818951545345705981891613380759643437302079675445799821176631067944260374521662512355723815498276759390455034558846724206189680556057916845937340755418805287473575956419664044262614588575747433804733046177737109359384636739667647311186129097861895266467619352024626046192979656443572974942841230742207864234643857062756490124863905566099324749552357764409212228832837349729869462142789237404321486791332960807069997673042835714385571700211280023600866309166749280884598366476637478612983821631586654548532540855654704664072483054173263013261918160694907106942047854627423967246274990011576703525353241438156294894246396983934904422591502332016595716219232840059110315044583833955100146747959621687167529940474515407052693945274385973320286778189354786890104561258111010587229109693079650860722508818237960262967797578532997916274519926985489283811630239043347577937717925758915310720552127203880223589926935030143500409833221953322347012837203402027169456744444269047109528082934225268935535610366418661296095682897094010636840862374536718799280493956036062268628931301698378417743411736818781444946906059518743036317648720464003090727000457491198189682631684200732424264522151908574924565023380708958671897606108780030702235634414064645371412354356309243052427972034160825078850343574970891876561288706655123284575583997197319773358669290474756452992350662627273798157833204448875861077512452414615774846042018919917361130470006609000222485409958422226513670248245524684126692573331160409803700457812239309233917743419119889724228848779953576088640116107587453064245446959801694512156788184511878538694854928346326018635940975397436947281998864384635288852993317485530069786504684007987075799870295296886017706858917257370816097889730310530546150867032627264473071765431512146833371827054663360919733401540942328761110691265071258763873593406501107406685169377988078073671536777804351536470829038451253223792599365783395889414698041326006240923575028970484219134552038637344238001183610868426357826207305181929623748943422956079485433928690306479913953829136528655033911600243936477389654817141704276268970144827928182360903093442810438343055303958927272023075386760945960004201305780713492052222024296699622960077706686587067424340169245474380340711339264764709507056639790829884754525484362576969186955949580299967346599549602800338338264358049217328958138426096354908431828302339628632776357926884541064198427003211376904970776256644166331280639587676654986115725471611257628695041630173792606042162894645486514983971940817642929435169223352111196317624499662607473522133673984684952739660089569838639827493782182674403240019169835243961893964502015090398925947529491903239551363807694802085566729208791292979501964812003308737749627060143944350517533835303114883296488598037087776221961357020639827291785848502014284375913823852176457386470452442712363283885287202704061373155886053366878213447825296004388285431657902565002854465501712739815328633302665543692926516669017106263227101321915070649746909332873959766602752984597646133832829438624191300573723551986382779266515653329144857976248344570730614066745636073827515232270208802442105442559579040841381487131311298214313748703746805139152782697237464667948586564224743110953806918298775094917725068289204160156850992015585342963495433477753791485032010860563210066759781533408188480976991981385739388468399795961663307843076495983653959993511965551881281638531699651459031447865843573995353588908796754510764361097876650734153129485182260188557790490688726570956839937715577949443402015240022567536600714849982451537116541196690357508050399889976939623016899678400145368520294369233473768222167477984495528917569000706915734815583303389206563486085955033430209209611197541093212097003638374597177950449562387155748763454251492326152054408829978456060950667855619349927296819831369268413747116355267497983925578002337801714737540926366941588922233552153469787006969063075884846939454870382613007219314307029936425623462333017279466939102364825193476643947988972280349978857711234979097875383616995409817193127685214634612184192776052060303578144938011726398051552080866981300041444918551534517142397405000321101148609941774860144997059311819264620773243644951107140522802144866081185355254307790001866724530067882826409076752897341846991674855168331608651306640787944843074786360257404174524008521445919554250891381790130389076617028554554777212816828337422282580540945968729557424078388724576133403946609032619769731995522785504774604838561670262834747960387402358716761974888336397561444406857790941053002306020169826699648807751034281693773830800563157118680095738779929445945336258608354549163069694350022387595461216348175904106270530291976079650977175854933863741324544437734026615712295745572956929452235258229399575556709795254341420053845539592458309266930257084220453383562189610690062575860915891335462610226279782070601074182509349556710691666767255831112561514470546902934305037939652876603955416500028474990715537453037369426860256671771705188993368408185335998935376288018766339017322597824315909606670172249383449527123218748152898807885928254661751642179625623464703992399488098055185815629541679728108151577916922346746648029282708787596588322177336494921239834489411967512057569046381058445570029883268263082785506767003870512387576272114118430163862031023465974272838794240495996075462869441131382156987185779158099352837738570365786014175762983226929577414231801706372746899876774448503216664105439772624604482989681056538174225540130180215582026294407297037302742114956397685242772632043158361538204876571151730212573178232954777665839581151653742705773748102149893214343470254210746911364130820504343805858723012619652391039650978122581691993153945074824403076187917239346750461657230849757223428909260577234125001754033392166097504926397642489258010139055660590879914990046294197709407676653495667897594344515970820564272933230731932076978447808755624786857942544918082002491159691533945392632235070129566177181538164349781410467380965159553557188868886865930069817249494168912503532488703515109343734552027530474133730612550520036385903088564458717024333226055003272848420832390951990593839529066439726958753072175440620699353967804466886752311880716797770728616158278744714653500891907434875780500479291439834751524121795980721144656209148333898448523833304111704003026490587951003424572473054048296961890368240087886900418535807780745119090525903601300240118395467381123296157230652374890059915944724967043217904109627772731360654165183595311105685484845262848837948093620717374719501822823657334962848972982335353222362618785973573855815019447784444960239077526287846424562037999666611197222443086065931693731710890801860282273589218944192438218734042490490027568936705949152266319322093979768475462139478148441418649785216231681139442888975270880930649974149699885386403588386814313267770500714542934445884894408673341442612668998764281040828044221009999203974569415123328163861057597631080571317394969138401239751905204328691009632179823291784459632785661233452901206122499905060463655673343759749873566939414431894537076552999116259975958526009519846166763209660004012997531047183843360879987760010426153251722282185079602077632985368354785114936370874582503515810022600314098419422838332510471828270781293148211669341027394021195730273523660613437774898145528631591256156391593747112084113385164415703800313872653033555486821087145094462956690163038443573570020154295184986036436735489033856953310204190617207092378982707552209004111398629572400625458255893412280997095194287584633018360736264129533324962871029153483289269398144981653643108722521077662728050260212116201188273156296670498981834359394273723112135094036945285799520878734152052233659597549689014067676817261567069905432711925709196716475870406881962944592296133995085925033973775398341597784454174664149578977360962370431182355556332970437551597862751369828053053239944950756625134369698109281360929500457228328116214057787053170696135965504579476766287987655515015050470830572752796295412836726017774562733512762710941048507736348648652538007044075690995253481831091050414024687797297306941326309893057214759412501861474296023669452392218751480873595319999004184889690809091241148015009060783901802690384070922400013538426112775826949417962264080275804875276444398358222873046555434985182014148460736214458059072856759612665678232600300945129746009949215419103626247037441329092236545107646724381040732654381564637141856246274253650298651510420314526141987693674527907979548257376569658513284566802726810005329485318838508686833303536893389128030835601627828295111542976880775006587875238227432955678509453561657129423899239965539508702230148980431294974321899391673369696128284442011335352860296126993613438098871038969107929419388544378538090290423226161264348050656889177979605455010092987976177394365188379076111795595738141692985054784815952731254463955948346726268586949761315608852639115190666441127460248184850960797616414432711763498289484413564145667248799199327769261994668199765729806051588782715720951227172001831490898804817873907902490101402068404176052005292584472071598594540607534962803871355686342911314209109284072782190259849011562804908600051428588510735602118389934812515543266296437538741952613799845722218257408534564548573586279186995109372554281151924145263151254840518403244900917480088876481249041276454531880070796219528663955934607067282335462308648519360659052249368090990801310024782324240245177269415202608408324354980206438964287826103057522928322302411781509823335710732393812808541105663394854319366347261223132527039790444059694939997352117605499808131232001841276723516120190313157959466792421792800315311448169425709713213435233608837789019738574639642063957853138823695103257403907249399020320988605430814668292964122705507333312794556685894404953787114667663002959824824186107863390086743239366152376739424560231436073853121573235205440557622563553052581812599308348558016824429311325539191320781950305093786837771848743489631069964816234498094055219407315980604517736029974742065432600964042866638203411177573696942723223192899771189654698349778552073526179032198183834465236772502205616322302394768290405010212101110100930185762745378216141994503291941756099820309835757330554878489653902559508119371240232812123622899767656677603290058017405244292866883563150554910954854782447803497671144506650246835775411300915844497262710379023915922108377648740184802213548086001895785787913132554849037400350944227674419706092673070849287203060761623328269139590020172672347031036059748797200875011023505805634457880186473004446526093564908212570165799273019356507897688541719783808260329136259976105332407645300802743696454945556319594607062578451191623733699625456385646158233797880429473433928005453081505680520834830576878239583777735486596747833624056934423774588230131901171939246144758161438646753482129062903613371244558099057251809849530384475897563523195359504441211984158327888868116600859769007308871297228290326623244166585373900384902778748709413631805586598575882801600367420274560142005114806802156356322747992391675743364994807178344918912961417862037428908252553890844465922012348955067921916426816258602189570286622684828946164419704781653129271748143260237422645141655874904290814566810971482093820081233569270730453173782892320401776879919663239457429007788181457129762030977905668013909780569165526328461955632008045633066966207278741792539372610273242141714907780434569786471282813991388261374453617482832099953827513231247024783016148376288576395237028884031529985069469928522955483537396574586928232448921011043511344090699176724706095730512609506359941706665632362421145629361977604533583899856850222854945651271673845894308664910217417645892135955549785470128669542854735469924378593162901903089102563112520425405567067884486474969057593628760629197906652412497490743482018414145705207471108942274614693380940544662486850120180737236044005967273978793904439376394454915822009107955680145560264746779839150944628778293630300640193315042878978826799397312133911615357767739483966774784727921890648091524731690297428251844705402196220211962641937064183339791364044057305387025309936700364010869285357207972681349829708947423484455762121668282387332873669367980556323144645117926354487008583304862522522384766657174171202685003097035238916877034067279692152373558122905285317997018621486464728743451233860668614632345734492076017032879385458208929186871152669051828763859005274466709166724077869100987228214991049838919294111232335584320628452029661126493572869631003528825651075457396198324963687069824190253992237883406074729775332255711592197220488229079492551265293198676999075319076128856252957434273125456137697222588631246454943369017642271716163479338023715481070013385960378140062326236743307881203756601175041864112506180706650085773870215803361926000391287807594842675524596230767215651135331989060264694198311241389813378889424523784312265521690113741379096821603674660212403583862814816806852014356275370624605068477733227913200470018004737086491989915020656026520529303782940423490596389653912373739358230047333087435742344607997402154956548960499943514227266063999930961861121568419083594415833733330973725440029550842519887354166975719162939637308619692097013203871550002601859499543780683752109305569039704687701867490641340075416272655187474314174016442177209227790459549418301361512542118766359075920067947736196940459374532081797489269235535592838515614020879006172542845135695947876069305695566862117892740264689957009020925336736171627012450408320440089314829469373423199578488672616755709220043617892012664690182795662223841407825275442560871322884276390649996890040768948626697117261599982793477998222617246600902153716642599637555895381102073571587250202075497193035560177724121354379634156648228030770642625071895984734786465949537983664242953168015888434719432038367925931228351293611852445069892162806150500186458028421690656457271821961788438988173181596461783968151620399238822506285530414630350053673194390330532985437070331743064612943244121212576305579614961787318639308192209156929541741826910667680236746671003530048223156177344771503218355090942161975266855602336995148363144200275086471420067260109285841377462928413939171555982898421401124289004956526752439539236244008674852285575090832679944646089345191157936551101388716557851079363849850318339080575806998830686906875581562324252816764113611478968114871643468631662864611435068063493904578508252552731895473095393582566946889178466861612593953335382179845625099000562542862773685942780709095016051526074223773211683593744991716432159331526913123222555930586433876191008344702859422215159152602838098970928804755379439659153548765694184689931806706527287099266680394832508457925523494472033146944960802805406464692725711526345505933959156256992429485221722379815114464005543243250035860427655405051525766350129919979453505667912636593338721407672041743316776520173717918011377155517041137829070017544463315904548430235669491179560914491324436041391651354428139793380107510984125772034246151010656680530231423041247250193774120935468892099443655736892603152764048742868197294716344139828117620123950617346120884169549915460555492240139221965412349244913687816474574321726420791121920685491712692115944961572353295872212809112028811390283225353708041619143568216725039757791048153472353469796585242514717032671609551119723458071862415661678625039354881846135131853477262610316596832471975516976973554172035086615617258216137043666482968771220258448230785098362672027753619033254831892697873846654334216127857411009883587204164771358490762010946767888055879579923464032141911194814421381564737985460007728449944749113270019255186790777626620203731889271572459608113818583338017618462888696967824677867930063400236449105389697534061967761769880318487938277265974278012403095663350510281033133851757010796403856641124188534660668124878558867615223440415422238753315057409824368957376935479413218210006596057717831473440597532711591977890617489795921770539017529297341643585046425445406159449988506915484728832037608921961476774347863282014598565179022057587763788814834102289051073403218260291477954490243433659485586119896688127702261360375580601920425271545383946310420564449330135191890652410511840484442401701717047798515139914380387008391367095668224672854216906552527562994118913859862778952304740620215325429191348340046721757402366402269297170082273666936145248691640165360744696499155295017748099686016932970546681113825452417417701099601818817184652696517856687780340453059887911323999870202101002918811636418833747360972532200186380320639082927108463737273493206928678057144418183253811002390354032755209294868167925347675330365018841211876284219035497902238872792278300189012392216048072282875192234002665947694567126028478628313390998622913638282883934143291893875221660929673130401903914488609725441735942250863327571974982331746069694223244118336251314753573904596555212839918737923302890685275307288997612505043004755775012777358761640844888966428763796575843023112885587022424853260063006318317290394181100236345906657095095443554378700848690261412706332369903860604727875449939680016226515449281934452930153456116527264510610121915162109323759951451967069260165599765546626149469814305587109810738960261537105081707585608709254680735576248482185718706709619448037699576660982120143671710045528592113652006867405818776912162336425227310169614534475992795973736006770343102518352346090416453337500451898789333693237421933189093085431535153049799153870019414340333635087034098158486054591758715358231174918012356425969584619854890346812111521618380703723060809541024130364906595956068013147156329121616219330175103709806161127851976002963338918881243025756222974553568511184817182027944952795373651024697641855533467877410486585516053726949576786254984508609175547088137364797441764567774293882659695292068936920823195191277593734234001349256439182133577239835073131796356322439108222420981228656897630327237642765313439331407116706643229210271512163337400058603129111903249197714205708475901265738867572483944727921622761544244384771625761157239156748700961440778044342290195341431285202540078931226024556018617336401217183444151650048000165865996706039107072269632288891683373045434823578708786449156623228157969748417852699192951027511418525927078905087739302060949295158396972198903259330147623526049613616818301855593934830997659107829901972701380088838694875641780933350593418155624415247202400085727849852489842913737531970001835129152236003471351285216656806398075569675138257409894568463826298524079884570584072857202209663287278782041580911390097543206728940513390586241599541933426624124489574806362710118258579950246451104233187584161102200178514453366266691082590681198477026927206471467388549167046502513652015163427631428238586990695824893321692205102341434397009079357910894533410573401766690652744839847383774918783366248307837687574511052974041337934786640922344322406033479438369432281161497580938670597002064191653981586934324510576635494848220381100409814091807064810791690151789611859262355241248515156936318003434406295748156185990624090201367850279647724047455942384726408531604651795266796159512327848210239928032528998821774209312327205789860819857872032230377534107560303503591546959560013253745277196421277904814570288911066277282076957779987601929851851668435192367049444829637211022676970078462959315415721163319513691614392744632794007725551632397804105127131840147300349112806035933875496344630590165496467518003951090514395708983790996815751308004528170244387445030345148274361889960759802969828991813804723126932388991232926996537617152909214256983175342597143569924127594051032899346370927119038945181048412051089710169015336031527385495203610870144940876760549504497166216745822757843558617527025848661086661943966814585243244925281080080408593600679082977131259166521140261194181752071547579054696446622555055592837155858118108011490761278364151472548508707037920525959117855187667800000523865482433772801768703438328885260263984699662474554847437456252531752591126500026464030565929626259758602631647746356196279084448761580080691472586203647264012292175487584000705931451244537923788512383437144224687556673576531771096223337159210612935738826547416200371090104304975371895600712017700470962742154210462087156019142061234094543236517944070284958965090104222286800808196863097056220323002931259643781440513549685560624377345387577048754098039565404724298567586620215699797708085063809654449356772585700144777677213035757979310068608229563493908116002745091512492904987271203430874769928896940811482928059563796343587390931334096920625679425392059961333151509778332029259735279801423195424986473375824283720521989141752333668640265233542804566220230055887441989969734135405163169858570686732537500714688869090848975095563221615086932336722558754531363109505027978518492436353678242717349924918923590702927431517113353120871647498168192722522238730424804267794588622696997023821670093509720278735539122723507751576883948217986740468730520909969528306432316228230225126317300858457536866487357916938992043166645100514763938142597417350985609016936358322111680675324859369191801143736807312509747891090033177565911804631026059519158868754402725531949165013603515551051992806772302828608926485530031603413002722978050409013625052636360935181887952454269567663790547741642059543485606056752926601108826703719820622306458633456845964754210273475420841729111876440888613383006280252679766713764894583211813023410275459790687077474831179731862396716525744477041491674186196724689546848719050448961771095159245293925200076329422386728559241592727782723070422849509387097896686774960137753882626069894488425664640639114748460941933969771967095626351074186259404858061372854175772584365400906901575190231724546812264055423670442824351654641707342776049105890211563258053439659942271851917881390497229630617066412488378426450765622688863996317638620042557706861139833357389157705301234704899500866194731341382076868325013253960219844410199790183280570436150029734918289545723820846518092451234947744072831544027060426047681956156649328324579029078089424640915819885746689759951308965772477239892572192386371733622163965606549343463351153825809837789459504599973763579933365808047120094565495557291885334876224580701263612420728399512589278258646137059479217194617772448014341252894474327467612379446355787548919902981196607265099377629300179086985911141462865024942362420729873230394577831039619408359080379876838372307732137060734784513076055296277445919636687002512266565535096509062674772206615704065748338107361649795678891552831426570278539387989743835703171230512321925422291556233318130551352490068976288475516589308133700455790731781105486146599465216485254456724614569989543435403503065748914009487475336244694569674650546346095616923816959749328157693158292256409954553301624803322188343512969729631205590083946276745876837077828773264396023316248790848220135845884372485328999116016515309114302343627103360071283604635612877244596444395282484664024516364252406884855268634419740966239134884543176605953069604328003459458872500746898834939909274661979612477533827634734530934319768677541753165592539658400160177180404593734504531485596336130835650166819086783482499865864812639225308650512707742374408295229496943623434972303457810723867061600742291066276015417482480509570453185921737950270936060153054728661885702668741294628304022801079437506506928534797189815727000831695439104373087633721969927201937595218752678697755068315679659958921570700629824466395542627889123335160910289030571854500323849707657521150446354915626472874736136292486081322628687131961573280297630881933452555582854477665478076011927999463920817208862174378453338245262616583100722435899546152486702761497105980536089324454657833413747705791540210608107612174815321022457117969083934507603697671259918163813979907879015541593916105450670453071844692976501519938117667761794357222009491875443349733197339716597768673482680065938158449783139091959517797130042452965633192310770357947470260224234218579841549553557881352904455884013580273372366602614373190946833931018006229910970517803187642740606081439260938160616732193671655559556609340121523314247955915285087744151155927701659215678314908719585857988447302269696224662719477099597040794375768838375003820502091677652292758497486768491280413130496208222949120142014235190094648427211383668624022593835964638068107430992961574745511180977542577642503702764111660624088372836993868033684164786077034305212947687514305280337213073601971892342374668749577058442533304680014097506963825071940110612497529741236463807831941438705395976451841891289441228812845180677188080385654605761897048526355278216766332093478111877771425327251534002074746855735379931920992246433225865331820184931873072793413850616406893170079581816547985886543794621727435944383259790337345664030216511371174564779286943521885897689354558499234149964445514959125223688992253348151354346517255919398886326735133431799846025186981229987422996230881490057892449940906034665359040079423139455997601690682808835684394837708402014916308907589389829047572166697049672959934280246103874115350487787784533583308637482811830487263238148959530391451907669431824579268240485574079678002356255596398269610448748491547157320544997361049612049147248046576111713324594798278986891910952584943323780221332241972004821191099289035339366242188413003642515293961430863518379560987801972911866497515150322512518093324452223166437258215675151336726481965943860520779958067636601423855989267502974580891700553502704694720902999940619222030549611197834954140760040845530645166204097073190998761639296285450032737939163759588087375657119982868951581200061570918993281056507375526628634962579647841424716628623649381528910058500737789646116661989643784729937662679382187252798709869999677663462836621887700921785949128118447474210445098122445823562288394468419239463377304900077398463785354981866548636956711557423550959835384102155328953425066648400822625999821809558846214794087885687604736969852358561436851789630540611516012741140890506964290242492735546193849858379379244215323193495358121333958258555306020757474999702793471738960774132572349532166790438724141518647846856119300797394203557830646168839928771583865381598683278646889597445007373719748499931566144611841723976599733676146034777393551670946548356388273221796314678430812341328680975851852701555673976817461731729901294960141828739274539201894981975811676115419709182245573461102134092685436845985508759473847719290914054310517007649681789443870631755318015059008130868258776015388804430409756587269912249544075708697096313354061593648354119104260088723471222183409392113794535679364088972315296960033602632419355773715438064349737284187786125164540688598215534140785905717394171074294950449327616791146192025803105050702585179534128100030478742230655140849543011751241308759142057227959801254754308114758995544945980689248802227041308946250514360463464990935964432031296299689813771745746456984336019590868624449521187602363370563006179767491976902824012075039524894512557160856062019114497382038365148320265689555292110583526021034774075976791525033408701458285198131182856872660405852371117618055047496953162977009572761000689633226012369787886669686036277608611754760823731203821736008011129091963214408822489372525794578792763541822646978148761413778293451898008130042686519888474731884016760801042873516102226036788100206830358409094347949022554664804398067701672831123828098658699348007622725164642637748364553202045359843457976132097060713002574271331520310885676877279461651409185195886930202398188075385537381443319959964799237073051937489279518197341912140938705688435736124133545162292749416940979981434082797907264503010670026193558098090791442808035032330951759160240750370022604351793793542632053669787519151203251661389693567825985037683135408714799616923888369777072897106939350323550999762765400959818778969606321884433892283284061069460053626102249919474509255756910559327181547453824725631526023464105031460442260753329238118769162279083606868486552896005996481864764611943984785156190627926797843472901002701984626293406105939498233965111085816185626369693988615680617296318754604552003196054109223731316052659017017523184187975148729504899528844225758773429739570553256774836039418886619900161030638023974739734647543445259149189319329317253447089669357614437915575758023393838612370223238967934342872257329704975578751859203915760391971040378442254439499601824713488032000114486858014071067269517683503726972267577630508567329269360383377192522386737593677160378256335997087735241429232520051585975445099971759056846645340073489041460579170819133463667405790507507829072905897219513461616651561609950107397288717544412365331871824992465566908349449845784726159942618438488470718516996133013813927303664373418873718852154541117870909998091133936832877735673571842715590672825976581798232843650528431875563542126898174253299187557933195536463924052360057758157921759322842256334279776173815533739335191816532325517144103730492658677706501741279346700913961272157260540370243208639277968107988106412878666314908375450951898216056296790877198694564393478831389490424704064752322391872131989751768001311867287233104292366377631752149737856711424311453877713523487364535893070861556024954810150879135057424009511965432547927483749115119979531738659446531988761681571509553438863111284998086507798522179703795791371809497576237759604824274509315823828975098500158217718519051297869673691065421009865706147145839767884243309552961482712430320259698682281126767913853446574437304812851706849484674106439588842572455236282583999978197995416354659606246732948140048720525106860192292314130256918174090301074599301304849398366126219221655552543438611991477634392518172885060253747393940466363176224362195084106753483428148491183342419467147144902109578511339210467927961928795826084871799538078280842814230273801639491453595280057986830535798509906876664753648153530804327306631707943796495594128905187256291769632525613662356962454853873759769715305167500297503544625878192952075984830092334557617195575002553296908685272577882821453752938864057977816705703261662119769800429373519062605705113646255246903428445302414037215950429154594907269774917852242200579188087464768983657194736487130906362595465660804254145296283960940433621247494300278318888022885725098463350009957844407786684184494559434076008968335927520792655920126675356849235700702802456663572812247283886343986031653717205157838006998444888437733038327518031135439827509374813002381091787497195624250241731601985644013488121858072124279569093167736385094753614461453326271456939926148782654741103726395531955949637586494889545316568621004242311029310116040364268082312504933206666216875895776264720832295073800550736456848533900197655947087402088507597210732040237655170357710080816969805666900826069486664415811646111118464840212093221708346839247381407305850785476981510847566138873164311299527780448776794101549680548298895197424040466684927143688091178478344894391694610349117810559424076720224487816418315351776592199800445089600716435916264591230475652674660451048781812424761582651715208422771965313632817823056619608715592304497572815348277355397766488377210313363438588395506068154595858544256342121949952409062585091695734020809986008860094999725212677584130008647638032856472702449059276523936008544792462118205660835074040407827372839061484857094175098340368829050058714861626426337375407778419876019313936211520607506772677649572825408194233015509829131035628996255927500945394432942597983105161624273939315217848174462016957742222340738732350522988928897202696291040598237483736008561293930303904991121568783668692399064114779116277715178433161445135514552247269855570416747814587782492040305553546591443536772633720313647294945849941719361747271300410868490616683168556936317381177871356584723344303908774086417893698649443653203011354211624217687265809042041653224330527990964522173961350310794159239336631693948447213968352885519061306320289918871676822915672678796345478024046616196281419256144281668704350788840994178019693933041320497708936096241160298734661550313277848247749799855422064854518724957190255370150240075840969102575925272105732048941295212266945366603112962119598679189683174412047825312938662512547050609510338552822005070751902335318807742830028763487092963475201983520381825768258980882323109204175094118555138869865420815997969541394477884340165151999652554784684286203354334657611476594709015694834959508633093650761360997568081950866226704974700586739946358079012891534136478415686286753609399398526344302119516033857238713583978085641627828535528223725579088030756739548689557401464403966448218059918573090745626221596326410313805396884470869879288930744717269122306167102214607522846160036762239287913939442605835633853493680365235481694181188459561842067196810654824589280013554719047005026529127742846871125157248593261206182377711600156927275044754561177223758764796053469506028136747409135386888104072676542554971785708115808612157480296838518851797900802870302967051216641220061853258576036872983713734958386540787325786808201733414123453527933453337498825194158925709189417178852086853285171338729918424128955502739678116344403759737163034331269206525070171251879062537450322666811905741456552457768275019976311315821040719363364645589428464951756715368858632766236259368185534621771617899416277589728970055002374480812829238172929825957749302464821670504040965029884927576328814897171258796968287279841950109506275164071178339161326938973670144019298856554641615592075646514166196936417902357538312106654503906149868560135715579877859464187397142552076320251061347505726414690886867407475298338550715649253736452736215274857386320714596486287364058479924653642437976444682507039628940480448663879080570501300001704894025725874404050221297535919671068387725139456877925373845546987218053072015150825533085680559326834155079153063141355841316863533044595515850256648140217144096034240850934916086274318374126570334918675139095060619755412587387703440115883233167951679521341845187577783639364153307467872932252459048354794500027384157713153643999257302270675462142244598402888097820106879370558968725496963083767906471623296185864371071440054076787865119680806007408631162939076656967864636847775954659007161814287668856544161069199769716383422537374020913690938102099866496891733436914528505607262468556212836610991436167629697518776444921427447165755859464612575486156687133698012431017650736732204533147830013449975759127967957938393796053501222584400675753383026431909150519354640411757607058505755215019897298584868470239688535692320180997696987281638083501269039091035481403431369119211107724944853169908719464681566008930889574285658953459769539383574202832024498415643695860340527207027241811505897858315501114375940554516558515271447971273136859668342999614048797061622467716600766063772377740761656421605106774912091560623466452707209262112626254073183636361849567566634496391265994739905204372907576800242532508027062518004201238066004941929184254483922715107621404400978985946358206656025115484076423997203884800772670776656761620995713792812552359709748711880298205162406743934771980169496785693007077446741039720751606511369990026634005799786512772869201545230930025312588685023249799201658129609327876357501023336302677503165079018955627615349197965940427668125969796705844330931015317200176346559069047977574382754035911661169480441108560681613312271692566985291653533389363064581091646786129978235303931274665052795166986852914524815066085275108055074743208454899126254890510456361275112103839996767277021857810584190888476542465287595834020060534022617801509239741079270757173020921870269645768517429491552798219268870801774570416457074174914641768070229835966299675406659051800727418648048355102060779380357802122717223532500057486222395336653349638975467215142788740847829385211808143701273056367899355849067685701500888520029770080277453687819842456444627760148774617516627917098009422301729230227243607164877613729816971618891506161940815155587439927725284621563063172973168283033040628166597256219404120416076893829593221023159268090263535510999862205096178211753526932659554350956374390218950433816785535954476169183798677821916589313537562372939068309134972749703924992432325030839869387961346045274564016748467087638344395066729606293407208941092370002888663125994351447496560399788278799688927382920989035310459362880907068550214567423690428661083418837150595482966047010742335414866385762650993436103554183172564630513783896495175478858442803759227342668113783302004699553206936010591193951047725406281107980801597062553601720929935965603399228213097541843250995837622982620868974540922076815558097342541563033015862770094861538472963366582675081472738303066205624549682065257212757477681059959950375617667123731695571754573465248557790065372809635970630279235328419784698495014229338745319178262858370950534621667833640979348134111621198011995999148838576459528846895496377843223635885242535177967033038173049986038446322992301510297059933902133928983212190003875352962881861485574394190350815983943759268817457241043621441898636917068124309460719352585598878751837071314857638445774471729069586431906980148041705930987693954853843995122396286937176491633811395579988836940217322863667711361679950730107518568184407004849300743240165781089280202314688127012206606856793710667569173616828226414663256617461202314040326834781526530872761576885108083963386088467150050559902374201862068148814711060117313144265574370983060009184882090139173052652176064858087702766519470890109759359827750880928338324288139025328735476977837366405223456412182503595512941233011947415056624696824422151160664510433380151529873361867220433486182324909848964422242334594810912246965227700664283944088319210651395208996489989979487254932174761065741955350793471812901811063427120048764845785441829247710243556142968517084474200912724282263216206326868355234943158760743138248646884457011213232156012179940401542052763201925397513413265033567599966118164706478027950372224670605183329587565032581169487912935500417247594967341283462791702973529143910408329607858664737140990706975812488968949624742192128002791847023442611194162523909498750599741712937674341965310828964563533585054037525656158460988541122095106579527277603831306006437471926435400134740430226318280231933313853376667668212160351298950100161794337759810087764117412043854619964658990859328546648648171722025404340236667251297930541343772689153996079161942293015241260279839885871491558415021126340912554265115803679888257080574816789815864269530955061570558513220289810757163770243195194536819778720062640587091217523957844206935473913813426048931754498023130902519935755303548767340107406610188852193469071639426862886525490608011486653102154187496283816645274502409356325310885079835522896683726075403750859914388943875304510907153075507785896590214254226181340340646602996656809344229424816513343075954469636135940358815604300088144663866637998920157533625959267771263367475765748074194990529601499347511716758861870903368528313807640086946630495302543143381630093649315946740301142723019681600745587601144177701782473836192991690931487923348228279287070749167473120173861280826137307824234507163480692532611603793525756553096690033101472208920258955158754845465413564113577917143375007165217721510555653828214705673868829713440024553181016529954270193194838590822131992451662339302401530324463119922882337606541038625588096407456241358044804722776843155580136688183026054652216951082093024588415460276669715499564375725352284467284410554084103250078677313356895994705533608448518058455178847251652849329544963046728459685808289481411920741274088385946148799827686463073918195490085074709850339829481554688965226762775543896173333468233595757436609088905944474496682032823696201205565122746019709986310437819839626053716307467879230212795685884792348214577373337344038151995185682197344609999870850707045141938535001398613811500135768838285848975856069889146766730712728514306888716334662931273164303096776717111937624710237280153099510295253768221804751423618145212402518767866921396117804928496210106226127305605952427240409330953072276003015471622711486141128306920352127874207959757325514102212340646451227230862681869926365770421314363686121713141900924008291410631932551645707780280316063679893408103855470607278855563562347672053809331611629062706077176317076315313063379333217829251047283936409569429674122336045433570912869529189162388000237303661694729954224490656770297936106524117782259656491236637583949580024988099272419432223835185274545409333631437002182019438354692955525276652110105350305769706498589124087296891357755733657599823357976966225177695737059247555436279147563935264011619216300165840974582229502225333471785619754109093390825552930880843528526001946403158604921382069444775497439691846929905028499918831676939539094063111435413045270556262891337313343480733471462405408779641486779349739997020045255521929602699026791290684852100977040268038982060250197519049646070682035368866704163727865018941245946540060676704527089165451731472050859047405826634114541387520700354810886437512603909367043962930980908546218466538934067495976354668461893143109568487800829792847973565809787274175868200287377622129980252672138219782002509256964405632393587632642356082132014267150399790741815254001602440466220495702250503900699992632512317405370870129599347818844165959872779673970364367216341641744399968911101580072323822976760830666727004317631726380071482348108247110126248002852547082366685359948181052891555630857895181872858759653706300133763235161267124183237553207175621590643825162140587446373196587370577172593847730091280737770784890006796728105426111019924218906609007806896689579138502766004754138045047293326406034126516794701453401734845270769780888974025417154663942785744286290135529975959230635713007386050148863114634149302259571753518546614372922224943359664231896297621566715029151474228520883317438498989942075228055932755243805946428625624678980300166730718357320112537856014983574990419186584932756897142878822937491952016048713440561265050376813530130980399745815985016777993139951973476152322757773749684617421589195307827273650610212513920233891263284197107133450531220516127620006880706829898446558658755469207974682179716966706928556904182590377477210916866991040681430635216142508867678428736097371916285831343663207649976425453650909619120810399162785627205283143963897947521440099801153268041408955028629460526848220292175081143256004257777986053755717524682661323929108269313232643213258795198270592481403005017898701432651084576352809980004024634735174791236045201036888223598509992755026291141145367346474928612876230605229010602234508023397998197996072132882490159235091478127392285823520527794099954763559467140042582177556449446933517384934712712590169621560976363485134769918799588695815325985471545298732885220497917437707863978838198987481031776446202325232992307710233685714170509435223705995089233697789437048708054158782424658444717217315408989904335420390029755270881862344996601073109324510821496542038682653222483496702599227664231037711878613647909796872671863599831836948418767025885120916238240579038158619843218711500786597979387720928840542112476697914688604884721569079761821395989743315282784119421257283843006460863695369539724701678621521175908038519821877678327884529326843256253571682354588785914324812250484897553700424116176856546777152709331285924712685604142555670305030084997844926739252513678038499899382584785293477349177954853287695284771583681395167249695823648476887744561805252311996005519495761047945392042213878541337007097585402821755573935304862773164558351294464542859571059395412000263016166476990355523527713835033344514097241876622910233569420743822263397979378374958971358496808855549150535728099334642036983266160012790506677252536573155634829191766525150613327710186410528854571177771677076652348267387864635362460458719047529286131991571232022783399015982881294829207817759234321296798184644295020893893845889285523633302392906236697003313041801638128296179079343328028629928691509986538002751863141879144970290071488545331042434413371960805007461150701535244224050943084822511068834512910207075324977753446924769613687679435519893203508819406078399320966263282552393079751283284593908550154495072653167392197579793501192509893978765452073823523747205106012866388666173015802549231733990694032308490978957277363794795119016812705784137164413634065460363379635779823602395949235748869986374850845076315417730762085584589217369103552136520988002664491630809859905482269018213550242185050565148830783502634155711214388906101151657093091362354361348314505522684459616804417184567527316506533828401646293753786868023074291990551954454244262832391444179364464249456903935062914215358535348812090082361817407452575554050404547776154053579641306005974248727040699576366447779979015911823377027087800750974327478252497250929224267842858057455695416624806244900924757214853754085970645974038112967199191613880495852928604053635124595883089646122527742290428328642575370858659574244018613057812464657783320521549163659584179186500100932714711360770755666471072523671138663263631869597750011480469623795324471012052586936344910262407553932037113900118290727510811920431335486667549245910559926389428738827797796896496949610289706619881831548368359159647173736861564329204375086339708506922429379558990876671439599176609626519966138371404966829870382821737041158305278022869970424890217373459287432832828512824864863211671041634183670691653339926263213057204268876421508649940729577852317444639974344389627892572810328176560795623512322962656583137902420320483024282614397620019700992479711919277943824249114877327811803161811640214862409992668023606648474769906909494493077558776728355398877813113843928281170839366338940325722297965075071318183228332667159197931563598332617089430018856797540468762155310534980665688943227491611798519582573519187847546453599450942782033781796791688158816414489413531694654238060999185508424194755877104748691560255082928342223020578995351149069699774192628423317784959664797424598742250729305798685297796171709810394605838791301455472232620930065827212106476037688467903441194496080663577922901771188829122161292890411473201876891702352919022558274293097426843950870913988728062663163466330700392134885972219834970267176473133442247543910149640013188839329019259820221142163708351498860656329108147882369833892196090299761823102283804058142551938143374284496693516791457560780631773571290598419848455135600009156303986606474451281894322425554903472938303797733852164082367551206080575868891238067936113560208958390260525084753736035262318042710579057867080346891652350780701005244762523423950542233082792222348375377434997109077500830791667258790934724680643996646937322612972150938143717460676573008013293918649164004274145704950023618331053157516760192848412078671652239208680262853395328063627103034365258265953996293607639701560881292077534303069739477822436364424019284492560819270182314669326868584647780606406255547730125258352361841193863112259982843518335453490063744070071658748815137634208297140824526094091174129807732859985008618854385692854999046094122517013215921388728314178924797897331741072466104016708812448630567735711891583264270333561370898649665713060473187505988588308915132196814583881998871490201302142370861188359366575950444069453489075481963691947550709210325631789822455229588741857528067113770548738287204997333800219175966121907663281361746686692279663612867815421122710990775930818323098757086981276376468643177733143064893890512356384204167422435367538976308942834814821542737484437606793536695831022538678425463185748999908832900689755987598397790102634618437106660313643689942725614872256017566390315249628434596161599686346422207046973314736863105478980630960131499701259588802221098952500176405895526390632604130128069945990958395029893884282172498347011368619396696500592869899022478613697500496216141755658155933641320784407918680168720917787958113302855314032076767590824679977760581091963414888409371013996396157697893016587377874146113767622392881999408642418529938505841670522316615169511679579694537627529217182028242377082260891986664487996018143304571225621417277659400146433645860606832081669564428023795996336674490556327759264260048210422617725227624574911623141302931300105648804943685707950382816189855626459540916104296330613477662533856150565816253656809020113974940518967380326817120732837477292880596581903838945965787515121853183988004258391451615436300563066344685557438151120906062923745542290020733853223349794636913467065517777669427729408279694804153314806000152560573459760426238183815364135903945447033972157996587794560859840168231458610136947143188878870842328548966722199817457826719084588419129976966433817506531536136511938365085670004816717433389148846566296115443413525832198296881584638837872972640911670331385742816553726923368122514999046566659415133879494027301350451062928860135689305078910431089471055534851035148847566151200166135843970600586691937765332213646807625342185249350675495001260875121458662087105149145014537480112538030375600642048980879345412053215793026364168567508364225966942847138115314901273990670837239360504349800050366123685112669623553813958117048306077764707577915639586086221270159434101775625171022559735143168355256973112443879416194588667581008048640647064782244480037114347524525210910222907324133145820463589044452343600490114266273379965445095557557252991605756036812264343639453709505669165608502167977263882323494529971556748569251473380674543953783284412122189337223559350596308546133526281852335465671335089605034478598252819624962040035023220755052863299015393024649658106218241129263992282461433895875102873759629458913082103406589889330956836181137136252313213196280316718325179678644403633898419504446672316064738248838412847483783814849397402686220055490393880816007788286158703601523602717258872575186194630988058884899990728550856972531711916689085309986079713408169156238888170185774335432520063128856954405096268834581961039760786188660403505359972586448071368859088815177866906628476567093021124175295171079636704715506394758964439131360676037364000981567921013464810641495689711864146279937249892087753280022591576911630612294406475680381805159422770249374300130241831674152202236553793140060554749348501050647122762033886768150857019143499323405093599155960787787128136368724058352776791726765474431921539349700563880880374595689152447455677358422917619283507730297827311954266567023359251145181036830222476482646806226144141284388015700784689042919060297503079090418965098940244913127252569186108765096167545836126432740687971177055700739338759672328859941011117564048448768034441234681768302427617827832104952061186881833799846106818304397114567226874587338258664088994472295036991851480522215813498259106581447577648328040406399640439082517461163546896378716210718988188660345316512704506078666505503619698553570425603804288412418652887021980896279448302829785523906416363437582402684034744066599442598619139660419096434629944418149760873211744596000201120731697606738156840751076912182666907741746524155263667217740289082541409407951145464985386731897836733671859734870924260925653348156921037982689723505594378628183280624371925091940368206918679144162821134402085828574986710789770842783260551090694425072085811900606954222024840778974614105000621623722019392927139009037711143782843674378542239751411773479682919393738404588771383502882338124973844611712779323124584531297069915518957947204043269464483383208950221595690634916568085351285044865006925362332378396894926322802189233203188609109476823805264841804627922996760764363743508263044246831635181887760871917384440626814219489547761259488791990125790225010403597053423336317141773168424933828644228459167529614431340084550135150732750380476532346460500724178265270280058337396383094254180237659483444692287494560877344691578953230361492819133884321612726669096305687075573553699679406639759488582204361283314459340200730258567514120612123042674860799529862202677492091053512320138222913144525883644324436131347595611265262638424082950892739961441984187894665823775131766319320775130237331068179922290461654675122443172625618753523988786516433338086004471427136760305933767080050808935020464738817386978799955825229671687473077948128811236763107347981685258166040303341254931569470167040806022157031220477337199190535291645188356539830006015842739128052385658765672116514732193555737539787784943572102847452550992336886663303951755441541927224557543877237634413219878579411292465207156405882581787484621811554189362808116961547875141674592180108255980883238035894286808694243917826370023936015838081032168980146726877350181208424398030070999008112749410184859826155915745872351054150975178603218864246217103256594070064285245495209724131261806042548734351844575401725717420390279555866234215555793506064980112407322690279147482432096148660590821626275420233852322916260275680084829003513286769713428231520053333512983840865070751420642199038153766085576193314158621618255464646089007417298000502056574115504940009294041657852793160517391923828948459182548827810912509171538988803265592049797861376324526859196803223013840660409670983430502355427755617070307957010261072473614030291460981389411412545744329687021649419605451020437632494178854382935154099920884387889439241905061751704323573041042959279068741771121491191381996583159898955716822293716185369609409355209071539896233704043997539679361146500469193146217970591863977119590780460040482601298456251028197839715621891727980426485711438280914064467095282739330138680820554277950621526603746949260525760250847487006344303327746388764204345199666004223093068757363474722653496119501649424598428594058698649768775129627384838599575997289775858466328113375968109907695830031788208215112579608282565889456014885520668276482965110209152015783470445051058560068092453085934164230952239511752496371911137953123491043209534358371575086132486302383110476993951590333846455540208784332744012008788592372304707408324246526068293651686339561415414810356859927182436875858473452743648379121598772789064786546374200625377478242269006037830869170912980453008398558673759829558967522929345651809722151982024836514923511629242215791341136755122877284949956204715222893521686390824639478366454790430716435921872051171835855091029343681456241717577220376830610377676038590550905054415425264640280200898825032268317459175824977240093708296784977290478800685745396859121737542214502087649156107012836718535704743443200382012704962624957571630696261775650761427738107009211078676493568403296097046958748689628191402831354748977528596381960041300198285735011500597568456714692322839305060338784490486123993064167906387022043180367001028167257364296075417214892361952563584402207699849608219901676370440489109643856723578841252027121648770233715281429457935059372550957135646357159806114707272890184800953827693111470951142257773506329008208636291863440353459559768196416773472713294468055235803063271076301364368717764932042224516611379658346836046665026883905528520351880696618209643624763747121521678370437237286960285946630438424527512373877583708657640291424633726740843243334225346779636014767485573667899857248633969466692364290020457934464441200811967397466929918950718259758282248314836068929360058191147482297386792683728630778571614371593641981161084493289378935827143956579699625414436447546880426671020644949754497837010021010025052410505419201858049210119397384174432742654633580663041522188708927182450719128262407363312597754631380650394881024909672269875384451686800520815185699969084612038739366789555882190780266506948024529992151443436121271739243932529351551785663349515428946163446805516214201058175926425486943788317239383100704574368133884423683068817975226043984858479782488611710829213103062468128230176909972954596695115172002919075840353971488535696620670147708029681095597895334536413116334763698581938806082100416368987477588046001966461410295167668454038612229167419085731942157479578101640362666719888137647821659589481560391083849061624828137640676074181320993267778013231548008537388244167993311008064830522203748427765093713134506632202521194752652461543129543270633203166033756488467783809752877373868704733619765131619917524369377421035693755814927467624741301486023319363282412013060869313311517415138320090890031207082287238956359348732477964137866589545957897173865623658156158992768134812936667726359736373547907436560611544216895750956273255084150010938364878948500905610630196130450325708242060054193400343414982663320942922174868598801447718047194022556781044591161478797839145204364444527826952756708089630502740185925534146296835821862886444176558184695335779369923000122238253393620464587832354606888610971271286730314152421242937949783048300896970670167503768493230833591502488738133817098636774961108503211314190593188402708894158735273964997187845039390215817508091126216030494944166518494603095650691942713791121679012146978799647710914831059450984095045668703530454074043800106214366595533549104822164302879665128554581940728249446393325672971201608483804969967611116800612108060457848910835072846102594539237414958583710967008907843931968264573114951687578837063603853563373571028319689398006002356321252320412438505453499030699199572283420707881930934093325779190294113125938589492239208925122792050727364581153631008662686164498977852686888548189406241578390489417643670315493935911938035818451703258933359560209943745824107470715769168107658216146767925800160274536080234529795440522744658585078002882867147916145717299202688630435554669037856654839013761850024895768152259474111354974674421488204687502325916864742582303747219365510420737860525369334789197530901271055128228225939004940274357084536257821067838028404976652273090640530164867085372007704246931196056539991817302897015727546377474778726670538794437485475366985909003767134755832971141358187305787955666863536660198602022230770307759723117058308719135368069704650490322310927615337636270841098438603378283772092346850593996189742749754900490478711303063360507959382128458286509725817560214765992213223616794071317356853212340235220211815881567765610878995193490488238322056668241924188322274224062248905768618004845560869541204962556415000135032952243436960083994795923649070784509932061464134614662474667381303621864016214425990530961448878882700149876993788929875695147693035054973293172833119495353494988935232286126457644764747708061788452713009230686707743970031681026636321707986103556494506592454669052685790222712491316167168179574859466525428920821344222101934163593231742754224832311215497639690119853492763045902807393267776571714270521000706642190976511176533968253393494771149990312238532073813130735183797065947694975391604553544840156669565037237454895835777534137863339933491734924767575181946173788886599922934905616124912122369565853296724053189290249759823247498985684419331146107925201923739879444768494057289486000779732942466563135445102766376749675229532466034075127822427829892294954138234053323241463258189969029269060423822484765317210097393738177764018718143793179526276943731151797093516626976962452509460268335216389201245130930998334646188074727618854989637143325752532593943566976708612659962553465819984359471485067048035891902528662989501178647274961678096333957560041713982767186654808663321196629166582067065132893664830575132178338663512771648909986065580585181562177894644664545898096231542738556164062793213356413353082095033095490237058028800922128840571795818264697759673304852943655738922895615815325196401390613188010604738173553772115028640710337732994705771861318158294093523080253514110383940903189327445768865760388655650412590582216060598961205272674164827969722479247443445623896585738322539261044558962432716005248862998467364070437377101088574655917614249653848818719175371117366654183974932835176239290627884090061487231242779492065027499676296653339067245894985547909554179769016721540512560269157964911882244202643107621306866544047075329219181392633138892758437936972690497226120251516415910363000517893776660216357156043061977763838822830312069802670496233953908435887257575981025934601372774998060842137180711938676667323678388578025754094923086538877622587820487267004875258521333792064454624094122097766002393577450512686811400739613501050485601555472895458550151758706793298790905747415919686706801044318824469906947207017529973226482724218865939367709481964657873061245050133864385502277656663906609902967803276807390862388413134496773027731760239593267505205815505217765399362442226740319391679057702752757034988342806257105565925522270382404711930150277842547557694496326460238181851130278991673664572182764485301124832438660621236411836613278654411152885252795764033072904447518520507804745000079491180815446863205415226854486225994527561894216407102795867637913694282337594966769541897457605569039758386271968314420869208522975652180440886291160128208778472461082117501096672796449299145661658572690078925139877752948837257186365619331419673257635076499213829259756448525390413776129418713212287483473160971718640444741654488612471541402436097896268800075386920472293466657933030584196814773594428213260227270955207896631314639143436491478991310360626706966651211724998128312205609560862436792990368962034907451257709259511936265781526625467453746700680572550373312194826519500878190718746800089854953174770927106698909744147345021301896023448337963030742091665925715969292911751134631153697251283162894029802742135558276725029967817997279287713394833316054616691319808395272952298379412550913983354015760292754614807509086090996021255052342094946328775155344433794756363024832924582766848920016853290961433074501523758947503592337883202942032629518203872093424013721934750548054741320007371454146333079076263124569818336798732940628760286251692948734623744439223388254104699483600742848546970548658452882052212823687815345070135451878218877799819468030849040425060527404301126627843239204085716958585925976989011903617583131450857211710799209153008579217081580344766149961571073348342447302345978466745564950248616983074231495132721104380543783811547586593295065107243147646019844282983449340773814606319025354569460999833203707348264068815366179467579745683465893469035914785288352544473819470348746740118375282779580132796098081124192207149159873960348071263148869270206207061338887914462059312389138027374998818297131063635425623338309141513138567596591073596195537869561960565523301203406241303251048701289288849701016624231100753010088402272149951222929212345125749625758003890794890987103502605767369712814447502983428064305200866042988891945701901436385910685332749823052665358348038207828615038437834589602152292465937521405998816761684514017973048171993571267577073758864904909682906714625984174265127558985663004450155460041267062785354873258205847302862525167684747416059745833787763544871620671827650280155972431241065807527668124394362866795680258639241652113196705403432477822897419482530499156526136507325423892004490765859013781710948797995170149018178135903108008396528195039202490870996481636559323808002801930489635790069292719410960993160021661794605503203083551620273408879013738685856638186548095443605327310595467435234116147575487137001464656785482745242356985216047453622333268038587844534270071841903011255863978269188879496739905912013718338942552845495325932084645687233761305926558324773672204991751453778776842419237397074430334406765463338196219422783444260013370619441687544560028019169638804169843061866790005656406993935498022854044555230442924850186454508437259248577288153335142297153968313516885727324938922327115154205981110343166766444132613715628252161239654123695744113241191367575308642166422685020815267743993375078234945933458684168696688105393936347085320121043944505033871945493736907634469086296370039288116054294396958142450030777171278753758176856502391466645541408430285320423058204124021282090757760700473374981592566479009503951900012432279355076436909060787483696321998820878974165191191740527184358201487431500765544711403696417515824109237392667365855599931290148547854560195674006916164845003713992128388986297126402979105713287495659965225749541194075536136189095104561260326697282983798396248069138193367051474993095080012860918829511047558293488804565962090043449970532489295833780174869613383886681464137119398455695131443539368164746794017926854960625860179212434341980358209322876534063863954728398816275408540636823618574974942084526865478627403489573340223671997244879240132346883482420780425504901182067899682109464653983840817878020871330982711559063648768396392443181624853199672789352671417994520773479943020353134697284014180685780221721061165156314342964360146615536491214421340045690490760723425327399119907711579449151171145700369971497519703071434010475564557185117857543589336344836275662854329324526219106883960411733473509081975067667727136676830668906356047073352672968746402849325775564273577581187276837538735032036494744691338780185557945035476322034217689528143633830418061611176691928513517922744700436989583961996382513011310533598671832226738528678491214732395588018721364880151412116483891192190318270113697695776938545054296304521357689623952683707702660382942246250819070426538880619429702849695359433444763072233591894280375381216096614098544683157870749409769850037299632271548182386804441125371551773327932311090107562610868119903741964526588924636061049016615954860311670160141251649409210529563395266195721080102001164951408097868655316149053602540163025896377519777010535507805941802168519673674824166571593141008563595321250530377804987547383901638844177673886137769701593495473727773579340921730837505094696934115813489532871554969994155887648520209598420189131640790617083207832859073144121217552820831608382122487457768848650861812260405889025830683669244813245999362718565143443730476531410803508125912306053482139269420502075492643357027122042208806877151951353634050365971307825802525390131995167995431603592784312407481287014118139584335579640980703572041023285980781834205804300414668522392287669635669845954005178345436839012121209893968090893117318737622201967679785904190128236943309312212887422699889281367732545914288704355074930566265833249910986097070438438909902017141542981396271770391488119647190877919997181833801882624806999126255847592660316600613446291316481703613303457109437000536745336711662365280207836533160750805658705467023502924107318191087071095316843420714261817288724992105577593755650597981687001961944478642854310359698604305591430527304903344414020433109574804830767148614069230425521485740480248663608143268611241803778599199351340325509656486896809437635353685187911744592374667435505008700331756028278484738889795370601852405829773029128821972645582882213997028213584971134149561103583120067739096107592325538633798918184575733177156332852454027098584660410646296365037722040857192076634118440870183381053495192225937825099392304896594166019356013587835122768230150190181169236246738824338651497274039524111687083757018096518005687773087611529751091018894367986937990191346771455323784768134999523793108291809454276772524600527072357477287854582183614832829605477374061589444194450144675112934762366337226106747383943211793781512848567883569121128438752294879840994620719458523927913427231546463213977274835265614566237150032817714345969483417635172611643514804618703694508200378002322445889325606534948947780580819128606214455142640494072614239280786065640894516536228687713782158745340392110302544815597661009058238511222654594542282969952368109732753302089056890139317033797213990555048527271839607037731666347864716189115279161049669310150836433426356309632459596715964647818824369419661520433140266727256833662007716472646962532798575808444907664228907035179099291932331008207003830646337531871573029967478028752604510916904261481750299331641340621580017784562199326443592179120037847496645097957140336131121128038670290686965291826512296213725603326934360996437248690636174317679780876444885108305158892360377285537673811413936081605337856313356706443456768444075698470858303849330941959177187603780023781584907758943382458137987082277350269817584598758653353982605151962567108659673953574914916863020592900731729512176663641386810478547001395322207516739798888860035179356442776087555688446421124547081116309005349679254160562683751044905959983577956993648720179270052581852093834375595135199829803037065752781420796222003415815160486887102920316462623125841278117064151902730078433497870442637424192636516090797777794220772767762083707047078119107946030355956382388132834512269040342734842777083514591051250042090957909260371331635048858063005912627198696620377416290479123956008560270909376918893947775177394375144420183208359934020500002525702022529316276946841175019560991525711513682128615631680155804144409043528374244427978892201939397829522388505647147213752577940497334910418869369435902844396393021443571924025029910104627536756907729937136737258333494054828535350552052745908718803070495716822874589440233392200042401647875157273482452197643144936135631287234917958834656006368900402421155424303053023990573420658360865553494312418231942128955452520412696872157466364505357004458700968922979811602592589977685374835540684730684025287239245515983382589060130533666192469335887628082525579755222642327320734049593904347280001603694959515802366028521529499654776857673974852114234923951879694562192173059353675938962399120542591963469041199080975971380975067904239561356377516478887504659149373934573385176242225609671571873651482746552235484307967442754481540158731981923496936706609635200580342965549859577787840810295127862398972922724480365002762328896604120125709244836346289414361377772999221661531523442836193395888209720669496340975882873859172037096062382368797230775270897764929237698730932040703056098935863677509024250805380367450048260010421627740745759310000662619559745838934316758253815737486692186161663310017715533627663279774257774680583446986032331383124458960562783147718890101082137978281855018722087530466207349981305445207404824173225040441356626702743000493949136975656463304540281951480774647363976016199722977159651530122163664992901302558226545469366567517976475736622237610002719541339447986899962648411161743945154310533858365311383075168640181934839616928425057234726584894087705215556255288145027953576211988013555371639040218819351106517790542183654376709770502278195221505386100890358363398126301668228319755025981525711763695838648881957394413006470208366036794224872271456587891733466091171607723412422958594379216923633610462424656779912023267195850083379798954517193979669655869970340598671508160715657946941585599834194592609852171983615601027233373737283588209057180995590973568814161996355964277584879828564000366020741252704342708327576596299115784206814897672076844835735700938217466633713724425703594075414930988459307497295553790330029225949822084165862939285284902576915172209939637642251115167231710847356238320500251038764197444361146303472934076119338378562887731829627148385197475595622018480567406080548236810099944416371158270735304449471245371333436357458238122711999307726874450716908340104477294091519719693102787514559693863497313100656649947812061531429688570864415441943495461636819390888038867491888746209585958210321646662226663185717620884906670305911275123149710441608919368062738059627736514059089651038569103652109610352676867574776296780437561638357882113532536898925636379160314639827410224892081806494442109181732838299548280196701225729274595293415009209970195908382376279421077977110388643149756419547590562352111710527646311387848003400646882168362435481461236683778443619936571367299090919926230593914224561692727201495195295033138967869119022107066817292429992775018232643385745360313220790809043856238560180702322193963166732994574738444196576280900904055068475887350891071509044876142188259368302937911585383405426004005371346605689030633537028123276207384992267587692582045172141429398815962713118346920412828775077074857079452747443717714351986086257383446649024245518062420171141545739422788755199613047571869085896750178765714180486037315762366878043873554264972100710368332651780210202400710567989410551415108505268497426150752889414594072525307791684388350138767005340240153314532752547217116829518049966659082026673050832629939758779414533297937411800279607142021772790803664149378178451438219730698584801562079626491658759903458269135626931331120955642439537599999530018811158549232251149474880637716141960794834354626140654876170395852938667367320996722057550397011716187684675274654105924759894739288004584954101219393968889067314170613090058055510766263157005111002875275667569686062503343972332527360221843816758151314190122723801467101388166227077633393346665040006422649902631598906988937169919730366653803154677305482188003977090826683994995843893521335113107226271361512905600134325608494935555510554265556361867067761662837298519503675534463283650102111165471446819604320825989884119977188721931749842592421542819173164903999775602934602947482769653731696922180161483324127467170129279602728768895049262705975971528444593291880709894297987984049590977710241422469164517373023527390564965906816628305803355482966118171277205813380508342285292803225825373735820965519887113749254061072745819064918932023738011897411691782280159140467859427782274251131400903513018626837084168696738697113196474264189501311139336800042004743202952309163184864719952930879285807979177516602472699712813112810930821939374911638254619355500538226583934726227083152023720818771733311723097678858349084658173163323209487961294790653738802005925830368873821904252912364559632036840890557331078996349256683009880700381993192708227554678929375340125325256663097352770866502756023620864477020481576742622784880400549294648475030072619846468660785438020166824034470725662104688562135406481054973246929459851730442616346145718358064874378499626079910647653474644035251386233077044654848466151011501488625003632734840837751898951119633460106511652797167064194541276529247618989376967030132301544389662852089140389098122779046866693521007961329162621678532449686012357136455786348190397196074686175038759598003847950533401603619827348915937087196203567524601265875450243779063675185438658647033322722959330374582523494351369272780857487899840727779709814403960811051895950723311861413299066600462142107209310044757656844669377327668343876996756217777964978267450392986332758805956626735527171299497210846548907210857272702500560434284446756409650813640333438999584062209580679217994719861731663025133731170881240141337654710437435311340884905137642101089279824598222589854323893594142808413903152783555229618686077807780995205621057583647449290422586186095450261498247456370961038803337161865250315645877404944866261726315814832149396610935738078274969994105310574392820498974690121535492240019938007580864391048023264663145318170290262201292224372860242892302401642364790364634478240408435711047367923277527033274899612072243654289446289285256948226228682918223744667390287472649279573072268045843323566771630069822527828510224088680415393862930228196178669074140165917426694614602229358017163295401466320975628212517424010985297060714413872871722796294153680424546118750454134321033246667888982447586019995773425925828241835039012672206549071432448292039038638387574267944557230352790473793488899775662264119671961643241003301218592072099735460004196679351313488496200998266626624006642415416549277613168278319944811898936129243472414008411609939545614893190307471368063786536133950084599040771929395381360186211254976150649250926278923526680470211113247246146461959061048986086757748721981249170929315860771261617832865967215591360583774254370805668196687329708547685118345857442636307259125540847596168543495910501936704386580888050209830996218908995220210969106835709333358790440635332950931632137626521321578002687922224899251477683212612865139714955425858042695454074106177698219196518899481394262197473338435425238194799294329091170054238425332070260523854006910097385825283581800438112595186676718686294356720027729753543424559528415714665137327079499955308492022063688074611988954165688494380742983725423843707147374515975146726876588922496659486427038479203466550878173429584938196937904201548939555149983731452932268337061252296345433205922375595739199721289162610838018369002644583227200345649792473379736796574363212864507688972877717570760932493842690706137859678774441184920190736653609330797632171311501033087287065358174238641034576699825757777621862733149332090957809130731447524691690108714090600929851493955642874455636583064886099614338407119692043488683709103694008160429193859421934485136742273194511156818940548375953254816275099187570677587519354876081055171558432438931334005815885962495975169740742436738787493716459190925231269322610031339974496697648759443295709019045806944173561419103688123797117944392263118679335955685858160828422853599147353651229361814707650719944735709326950821718357675301288903375845815005765899111164201188858791295749326432617729279423481223527012955591198726096489678115879531724027657867059545438947050662683333611026280644396231229434314464458755102638691699670731978480530635965011688089976758915790088798618766113178464969916173993496018615792835614467597237812432289902317499753479217731058286293715582700015853962625210966477288450608503339874433199236933212410028352117682565865462280992004743810542297950258651980089897897659698604693924044591237088310955436282300356050528104592181756466825238325358508115280155927253875933002326668447413483525560704338524456777638081203318579513774210009138906916345749715377703340653089934569194595928155392233323733260256097981365854693357284400383321112865033242512553671674331651196977676203171837488484417054443832078110131238608415528508463096610648711017332147881412200124567322729452103029762783062729398113017562355138680682269426064996323844221421261941709252125627265252392894732277187858902997011549269963374924725063288208177741369376323021573072511235307627971153516116895239802043559445566331419923285000326175888648035378794334894807409677120038365741664310382906609022261039501835198219973413380682936346697947304659275217126605014931742814227394772694207106479668655397749920040019045541507679693076493390864257455252058648804839056041328377343829578415205009063793185775854578916213982791610282803180174663420449699428109798056970284026120242535041215016282704012175716718052598071845422197142876715747941730865866643095354314704900343767684158035381537315348684143894641196727887505423544438921941860349456475201143362463102179768168411869727219936490928449305131613730446245932036913776202385963412554807610929889587586383543318233063483902598421892563547623107646610331362464861025289186192739983331554865124102198406700961279785354846644474292153406330523672433275461254239878165293292629828920441928669510919465220517511221524440324498394498702777605655054953892488833813198530128880524446437573175246270210442223389374038542301735030883038936759540660285684389045122301494206941317223965308784328286739770779604539082135678017807979627283502804658334231613424920707768443093611325104238822511800578406122093452703067362157724597774687663225067699434565232574089118421495299654706499170733419402487878879319146517210333903538151227427192887141614114574561927545607578900088137856933670097716324524663735185500057716088546342893520462550575099373841101527956654936969090098296225325943078565971258537784104286895328999059659494280430545632676829917665752800422920178350956132779344630479697747327401911024848516449110546318307366805911574269230475665860235219271158862744948298425991247124062404921976011368511973220326935273554436369142934501906983199051401147541221301316906912634161189679609206974302605523293113918967312197766733435512143616555374933547338597790591704562621388412991147513566099581529670008046295762502127355413198445044120491532627391618972028171051727103878071666549227201624763626462888606561910023132077619032567205817760536985087952637085963629008298590582172383498139918782614236054760620825540826874185277593168240748129161349870865941778374191493803801035984324418251451511937326293347297681842044220151961756903189001991410119316367640827496452822482194163018286975441701578323313735444750931664745675258068944878473568589637718346804238162060220594159143376014344381826539194230429824454458143320832234493499571398587613345627820372695718803925734474564300894622015413619008711102131114372529277174851653929996912657522622193137507578850130753669185357011941876594516260366305767976984099744633402912434881514792488774332668225994639770979491453171836413420795064588545623991096179608004634068011439960997535536633788193408758301556888225037735448268504384513753149082395523766308582222837707194595263221416495891191644213295141355529913467089861531042325494899467045295892569550168128333929309011749097308079029882467730956910792811416161935624239996874370356309775406219285522246153592142494823515405423854484931882255592877319691428121937938281802150312593218552919397070414776654607007811627939802743301910372035703132092273508623086069027104745425340589616751310235072417335691231343255514332942152432323039950293600515390969344046246200090405148137345291725661596397755397141159441982102907193310811685707936610191821655613362879372544550197557965671789598554193813495625621364436023138089484937774657595708254831317963028649765790749174672792754863078086081359803037607992910464957301769253428279952749068726267620617703540294970304900253104825238648922655081658209929306448447762886933948823161010993673986803272517440571237671318278499605128946051866948004642983147881052705649797549344343724922152490699092594652510819752407975965718715516753024237810518189939235545179105537707316346533516445657584857920335748914964585513573962845538460836974616092433099021810106087372223570005895049057268397342104110844878483864837236101396201609340417906066919467050072291615047670750544365861532247966289344097043428198265637796668535347677170942385329759571227999387675191917590468831218510380779306711225062248169404481494783739096665258657633169603411797234880651551509027238601765350677620749880484094606301517337801263149145844070122345713651603105372673155710630138774404117511125850850787835951566031690609492447915785637650488486758123256286689074143535501972282343967500113264843922762457637023895352345503139218618046051212453117496681025787329639575287316162354010590477164953228769415723276457302058085883185646218146453797906710684419753692065655604020935943704514034069836899918483738904362461370727209798764220229920904454110677289754294320865188555179659317066612710401047287294178574948594876709759170166476756805046246804161331362470714114955210216508403275695088443676120634018594386046219592419750682621816265618303345320796141464019671850283317106938662780681858487571759517834130170315672784439256382550005572157758176991806947641306379335413843909929755466561978483777432815638777003572190970753895705710137347704554809398036772903432736339906451680814545479482184759010918761154574677837826632842252417344533680721032235453437438693972499140589205249109838300602265821903194163379496133594543086976105597305419784126927232242503702804531259116500606411063698138440582469881787238620431750263810697307570491716991598963999558625657237461512381094232094613212174877002536747370972109192832630010332901397447147791670167847031688360507376458290249166365607229165129549928297801531997502451592653914495252750388604820889635159895171851434488869828375456560750420108220211740085998424618164808563692403610667669062506659471306729001781207784828847769123075105779087954997532930774802391161725914722367221544395572451595684662421931158131613435195850338622449060933967038272006222628823731260800481068685229511568912473106950293424931027326826561972305753285831850242810704620081964964547086275936505424320341365476555676781958834015420435432844513662314113835023527809002694467645838960612967640393132685322090722508577730172977872917886251200267222420589611280696352548075473286744485499023066610231455229068306068664653434754855198256426924362607047528532151694202687586421235518097627629740634812794553733180378711254361836760780852405271352038177334562749906442401699159062308498891060653779159484589116135472082083159197548876837329495271513749554352631519707566235926482658492628587481697729808629449734217883365006153245128892044914241650125667545100317653250326895241637016938500332358710687764721531277859246649746746026970522405081522451122244589369026503597370652105381448535826836268757359768388653495812344205893474524638420991998485472297312035323633006981983908220762278765628289124996276651880496961499526344236919476186906015874357548605589285733380157476636679327398044646910567932998598663151911089362545196181900244906225129302549982092304780262778090289285958107846213087969244806408413364665683775226541066701494797810703409449748918552075929667890648908902288306331505656586283870407377031796010652476936173796969841120690601472830664787607092249369475409940011694010254647428734608000836747691286201918943867761712964662483235382370680441851024807342330326698151952386189170002799743856211399810419023463348481249074354773860637811134947495860701738243404441160276925414405490826664579515410450243834362007085595987819916932767439624180274331334408951283115308690427412328740397326525691305082613271839703928663452794362581127001030053377006770497040861420663664119596502354587322172141227557160922893659510175122549822903727748734431954221126003726333961714322789932308822976683265724261140556091997890839049090150077024053399930492786254653226545982808728035130399996979680456554266851953513144207269743156421639858011368947474971710002561035132335331250315221517469820719445113695911591945366518971457478265343451272977771187927385656128302451766628437173893848473586846637395064623373084094206302872188800989493132919420908848076728576238086875754477140628882427906668463325328066590751013644988106964715004494962213742030199666871993951414656570425398984327731175948551558273483632138239180838045335957262127632482990412275469599014729015816636615397493633649019420858170515099921929364249063183245704680078222118513333758316909095129070670590721697954589685331551969024672230937401193853553635309800633656388675131046768731444249270918075658518726192755253983195410877794859226163311948942104591599453916423579011643162921938973560221543565186518340880655585820258905111860518551081932825863106450893777759138724926404641477737487068986937538614790131487992839406585889251223747025707110083738309784230938396084527097742904582644965260784471491863478332612664124924267647550144668096881433753396101471599029908879578962239048488035319363802053879621635303402402372805933341588715216600290233598340838613899043888612566361417522444179712743242864975847564843426035758536532426712342908702459140114665371289083233785053895954497908130600612949179799692193449696284249499278248358665638632167554438846134495929160842885154002620541978798077387752509349650744295170750028160527680747021259924543253533107278490777164419403589931015259695830357464385932578762626655324589447295890121095880634269386459479375447911752949506109615614588070129065631194541230610775727804204558530992124742172713629823944040168719760902329180136217553976114444557198000036022187241866300979608479589704503595893292947878703978946532356689524395861119587102005904116528640747627480504179686832299904873343107938143103381566290764130416486144363264279841011738681053957112672339947502493196718265793983534341611987718869465331708324875312976143899817932840202327156852818956617250628083112007011511832501587058425705199999407007812461455280888489568241066035305813219764872439532576054945390476099751963023907555443042816332570799344711721849816781432818942491017549889417620410278792499521246759690332512424985619228407454456709008104706599482036105820874137782954028750221984595685101738929792082580761318928777653167918947922906550040824300536493896390840018825007185790551451701515947971562144515687773756547070862110076764390826446635324418070709394931033322452763892952769856593892433204865206905996568234269766410616441638980321554153755376084865794031624457335261763697169665421507503644463654750113914036910456444485727700299857483045642769414713336279798012754580381917707601561674266348809134524047143421554474118821153361064535691665008136597284911325928275036539905594031032670061131973434018295792243466957884891927111939262993907349205121191315687756352408688624150564834470537800501191351599575641741688658641513010792595574884261197723958856003204629965525659993655068497311493389831633986511561413054435976848196671506100484779845659733548690039304221308020845326869391149637424466791589900757030334129445562308233694763452460927898241663842925985162481196640848196049423265189758709802158770475620904774697451130155063040498411211122251834933197102553275198372472147154647347839473718581904999642029248072693876302034366313012200065910828687581919295085454334954231191272469409663780443061051632897680916281243703520125432383924952777094712174860192155668465050797215857105516513954491595421645659074505693588913224944731497559969130825823493011917078071174141106000989470598238155690579127861525616100997111890072165235169582730939224033392573477958826287148987865433861363082717959558672020670686531279024043259092718540488119710047187815223145124142823725902099881958893445085983946155239592036797633895104215834504703501726156119637209222803697469827800325104904918709687510709836187341753143188544783578935216784800441817778100781208163050102865583740539540301412387567005883559385516279651253029889813887575753354715675705176637613390113898346550158529687577958647762753449913840907664469470770501602303906449973345541962898145350796812019842353418296941794225333249217456217104085651323378597457212664871247305005535619588286622093273877065571454801499147206128363529184523577338723046940491772120855809072621081538932660444366168453532881473297838630336645858292031076988809689262608091230791364962836521878722403178990928352700552929270672339502539352663831191480344440059758642207679107082460030607929919937334157377710471001742371964801832505749496162412147703030598434898275455338881970460763920095600050969024306951503625505748837336288646717836357149223710499268411124796570820555768218780993616693088393709425783966494108058786128721257841458664896541391605439879367424784792392162603478719485186929392266654844590041247282411309647314115566826657779870018904824479251573382729854537091719648135207049438309095032141836776061196559772308062548351180981221047482723439278933835968548816413056069951663492090320145556088328726593971192874013215588400927286842541707891565040723972682824850983769252414204354051187544886283525605059993522404012400875557713296492715378832956742657556795648083263152857324966419272774675267523609362842324350970427282362260834492624234778373314368292640219562764323935941774322880756454793589194369895097373228277523244415705579262231162981202219160897277875905757670621837761948674739516153194229866770524970995749977171586083467692512523704442912085332285191098870638305943454405696180584521982817467702153903464657693164248391524635544041869136979634942800448747946051207117257648885256728580939560361335280553574172541171064273286883946575035151115098415135855963272361799960506193846880148711065571713781813934257215977355980220598785088940648099294225037996327621370128729376821089796353089555278602668549561554751674803211230627211112839840808100730081657838114160845804917893988870374038422732325514503101076724583640960374114212771566684404778749882937559627544916956323536084791703793356580411612352225453457115000684116810391229088034913066707435252084552558676109606322801854105320813026146149069006192044397147586736258251403664523173187985665612356772725442005842083276018387674271320159752425767495069808565601546299182738255839954810133814077685326191915713907630668157272401916312728178929295840516777342857991595105791851304250676574409762398727603350495091380580153586180991021409637509199533911679137691778072094925532304540326265520128085168885096386623751107911712321140647102479736393592051552551168442875725697478276313618018383942987699455365180016737086417684278406909700751658861886638672442229885180001389065496684071834607319009254844352645026475671420053066146959106922523215400886698189595849242482418344440308494931535742112841691971773380215226845279486524139247125129396830288449734247501908739020856237944416657543647132466780952197378560717827308648547380453853312794874288793081092312428144907290197541630853666561641076531426747167851431182606790469126540732278484986691778524887106082140363858394699499934545438334279742881938901227403134978766987345121733405798352611865578721412829234710086460350081268215160857642179624174389755488431203359460861639963257570624750352904078201814211713293393082184978225844968941417781301416796648748326210675338715802214514532501035835384369382634959720140902500018204545096106387834121748669869538715704885809964931393731524997739491277296751802693012019493987689263413120501510079075359790704154381940508073660612511967383361523664927961556773868621578931205485113652147224759469648906904551739901120327868413739294044616365466711039897518478354608322938342763770934293612088598173240824657154614871706545342074993035511851702648823382182893028966929672394122029153112215412422410000398585170107600024667895725603240405035482138091548762786970337741685328357487376699846926158295751799662234906668986563532487638039153162445012751580315008934211380584879385102098519376450244319658680363889996684044391273695095857967687285407658849967000477874876764901806309639286642372500839780528780134151978088158243066584287642641342183002485437611956526948153636082710762856692127503475231156592378668164699664637850054294964429456446483290143803944049948209684019570592642070732902493842452249995376403450352973360450715910110618988625414284805585929745641134737079087124182708505155093756121381490822573998181380551312504178679391711308069624688739417546385238650424124597854580455279065108033927834582696032429785621021633500817044016074318586955897499417089421370186952802195763418306169876915363744148919388839184913614254106985370495430198846277196533057125060769425765531576672428263344247729225946112610823674437488043969019452178050593016305108527184495109857075522653066928935080990955658797346549131795915494148568882504403787705336709842382940603101410007194185049762658251115847871285970803173564662706131854540964743621954065127519493343439063397614577039636293166091801647716578120287470306130081003499525173069467161336032282294457099534377498620205154061687826293595809427170966971150155386642288682144886805025475483644243308036182141431528237765568518141120490633756930632219678323613187942138677603105085064456034418214765358431031818806173741675029489984161266521326714052283042824961182661739068297713577927473826584621219983235001543687682502152022038624727531409453095671096805214103130016567407064449761162435215079847752010921003603901390135904659015611647033229708095873355503225767661449985766169981466970337538453865867054781606110287295104524216557212154468407509172041192796565401839631952787029482120465512856721652818709836725173941799794398939597005728341395321011992491915913640996896770834266163792866768655976855665244470144887102881049897112181429533101049262307842434150521340061767647657438195169341234976625187777535476766337171698356436725817357755054994452980767097816452015887409437334286637579154966027681626677418702388377598601811607516248352642142232893192607788113884014563943867034181472339413386422040930760442945262395459046744402189545891425563160605788884214247569494583949088728713431060587872346620405061895041455407037725598148773378252074142395972018805179471947595603781698973137616465755419777288264423173755877111549218949696731361392927962840463522913392489361305248726322905939238442950960000318564804276609840126200253843488022480977411230094234428304503531730172773832328934050507497799537139533883394198871869248416392799969770845884768765478075855349123419851750155666157846054062899811378793037493251682898697736483529240060410995620585235024174240411330080693574412485281016195264489535662619318809053044310135243309344972315708726650355398155357430604314728445486797036425320891591863003531455694368858909976038157330904264247214145243788651625674263995208515238337192330537271994697544426168005073502726853935852975876850768031077728200384943042006062353716402665896515111000286004227394337576365904781022311172956725451982347077012314797151001629168014781978049976280710715190426085378330767704017146549206249259368249687272669705689231659309548706626584131037310752462435602045981453623679219476653698548056413448333733573340495831480721666259107067200842058772961398285935960887743312510773102284709475100633332792118328814599156892866635880542302266058087479904412624520369318058563069539227506722462863633917577410241265202914450853878131103062179046630015179845685882070450318925364803602809085738999302772824804546327047984182540033484578362817426353223699520657855661156780580809421703235003085876029429240673740169645991488940422133840531613448570701620220179779141233432768373885012272695028714761661078855044489725242489763204466616313634102857651351552582232463281810089115696670327266800375247053202501907844152160147983485017352490936789646627554944381495319971443645454956447167932282620746762578581770852301936383606865131304804699499999820712772122286214591695695902444598944365255303274948351262348084791408973859489492090434039459693694467738725034114754584449888046267940573832054982918094629824077721277311678148437484491700264507578026610036866323138211762075822647565695637370109687712282363911656526654580548961041943006398308324018982254785997232000204646274209881613254574817363937620010567236606770548117867107383713737637580385399589882465843846008168054100213989773310169796402564369205933092319568407679031545177010248147031014213501520268943833111593931898423602992421718745972933245668571888467490252044726997181841856809462074587970583293778373363721462749201087565357037463705260725108992004087709322386328690185369791280402061316377563916397567973220301974051666922697278528659982689060208077389634419314594673006405079566924913707896369274626414804733286829370946654053292411800957804811064141311606623400708152538493503489605687089214143591940124865848528187705255154251675813974349090725131791104632274033864398692818539165970189252877371578645610398593274658567649977190488182970835083697946396400063132173455268372688776306066788212457517179802437155631020147488678031417955679621709112018430110209116133152572302655449183546469194207644686632588747159058301442900014777726723324692348117684778783084180719777849281013547818639105449141984492019100706984613365021944561083090185214522575458505307824094289254483856917099653784775425792659398915095030646682103058198915118966757050506392819682334630249446593152123901490475786913769682864623598284993722921191520581629163786175139032660468943225618718476042425728280029858157119621205132747098752337336402193900178648955612446947157278568585089965259887105345475795720055663832734957167476455358719252445522749073919920973272197544771029731197898940006608138471451732961197699523943023143648011841911125407077454209142138334778846568668857073887207920386366205653765967293334523984213809429353777116526470765761748503963435200790354117153620506621112725855404552174656766925617013625765911759669279162397886660094526572201744471237420390835439319661600136419059748074146243946888638940631607107502860587604803738868458012166658979272112134923835128875729943383538077207665757346137039857895097418789633356446320264031003724593303264736409977174072488006774377445644697104220213012436422952528046208343635690866476681472409534172180060156154515547842767261033512975756129775402966260977779079305386279712016471469207861421769252583812576742944865857268473572856537543740498066206156671926379180146651996403276651208020349256494638655192363042427427618049357126832869315817468029577260781918268375161447296812264661192878206227103041920187668814070583643705422397251749348560126416960296468811681566090892098043945380898185725087197229875335331502820049686910914725333662217786693182862727364701750612259198732222064000599010766053066484918201116388981094706792970067519387666832107610146089736179913111936552117345173420779574722661961570235389472639207433121631466143104920546352671595145350767032298711913200500803282442140320516826191298628397455978858313113730677114059091288489061034902127262866813637953581368015350509141067838593984728998476934678416063214706027111300628825778514616789965881621115961430666890340545476310672789740659104950834253858249331979660702359039132620159462522744374881890011394149954453980678566024900371725016949601548130842107647893612290832479021848930545780033496188362559798068212989183023290137272563786674724553956927427358123269171245039619696128086803158667930569662691654072683669473047642153832531732422337277530089082000984619451520299164194880288049425919422647428805559848380610605259067041394689932156388317893020904069832680657866017045775344159900012568158304474224984671275541268906609673783162086442160318346884496981833715216496350120918386356290180369001336405260685148642782066979818160506012666294072093567182253306259796732359647023580123328236929365395347170253369286737746974771159067697874888626031069821709775329192401655562311143595354500901762102917522843509577784026940456136407110524003893016550827380573800794447652295742232802843135827722123402555262275809311038316587453337698834134527975260359685262764186662415332554867247390022833394753489579307463664236792517929441723406471828945636194274872580458616418394166146566890163901338885966422875680564184233107823054595402061889675112714675447556218976723446686047206910618795581399272309885855032429156276705431753981706721818254720664937997322812803663722441025357100674699686934330415491751165739670665746691454379460941716666559934127349561340296134080283255592215737498676746618332525015776807367865628944285039667573416546171271956496913244372758978832425621890876480721415991911432453849246518269831140585394711281110798425349643777283170172902726563003541423158033793074686725972721394718397485972707608150494551087604108992882686860272384240930451903310981435459265707923849228702114421753882362872692761026907726535115781164604344500614541920090480470414956572685111626046166334218498638558681656221094244796254564364455356987310847817855307047483151681110567296420834103295090039622998141471283475284260863541181142803934559088860271805022400236779153065627641900059067773295613549210236994944589675274504481516556292153438099775268117722657215416958713290739684126605889168853376676107575386779262097253878036447544289713347693247938684349690767585289250302649833226953474656980413671296660108805121271328690172958391061048574334815164532753531633976723519702304561738073044662626139874303626382655389173105830533716477206867610470418724527822951889789520141222876025197811920978054227867895571993934823339021065592694204691099513493529735071481032757771624306140974092273070172735949758720207468318861448378039719262167123263741048802862999116627893091759775207546594757977165003272328122477167836345465087881532061870502121525243132101213178880416220155083234935930807794283925887748966709172466117605503648063397750321570739814180635061450851598119185645424095471625711464730326546230048686464077025891703858888074568197416464637989204769459392531497390418662391699316574430695708093186975154812359109287245779881254536568607836357194733331565559979535925837801514730635668658550021382233256555375427089420526369368741174920693458296121157072805908536348580806269835536007875611253102376842848705278889052754705656780824943619385124848382203444362635464763303111006551340608268231177955031529637713441879309834209965189752894363988642271447899894939360191872624753894438328908377164750867063828185032750549209497131543181600612227932058877095030198235759079310366373369389643676817707799609125578647216277918118662961696652783603581531988297492965711204568307772711674087102204079978015095307258993903965189203475523467942459616810698884132367301758799353623610695494307045400753886971955162777442236345873000611030358248473360947417836144582146914400477473613696029635402708323224091747023315256945826270740746489714840750711531253970075459372421325219203286130036886245394027629251187639493568124165862797723064053264451993221929876203105086918798380814664847935129048215992487592037004060013440267115071289783563890071321548238636998877839731405640889921200856834587663216993438854491514853794063588203331956637555343549395259171432733519517360617154089346127373519019976331257171809869242967378971017925862545499049720296123899386533615787819617549405223760758118885049521136458884496062892676395334467538178445132834808797649836579221401451404896135252834345575288842849855997939167059298504716072293201874651579592207505110061833804476182512812807304898494390906124381750978859708181550347492914670447206303493395819420909431081491354366345241501858832877574202219623668439008904234481918718182269017925297698915917106545895791420908887091052622399526590903976609356254643686764877408332475130398120110772422927706032354829258990422573016980608853761665281342497869555370102049853502381208428911805547614668060063154515407006134566859592086235364170224661498507655206311898033209605181909860995737154344867881589098278504195523692449347044561423774699209832639258676246776312708069775087978319974267628953964022131726085821720576545593908245557569193673770405993536798640796580956371610336171290117460851788152788251497777201078285252851828073331462664363436119239222035429281308200101811784132889438383491161334163427285153887485776213547893145420811267388093195840888642084375316907264074972675972116756804547274032493605411458481105321900159168250351457236897478049080898791657160030766548463825457624530991509316621814909208864283561604979174749311980005339638723975283965775248340269385992020747299434174736830432001671118313435408996667982013160718341891029608326545493717265698226318021881678739704906538356006292570807325964382277106198790447829543035599790680022869000704721304094253264674375805409663766317487434147628724343191760760976339131934999524785914707311140999856539483891443930477442397186228306699697106253506193023003677482818272509159609127841596717789035542756764182193409716806856000465098695267366295706006339461309284303354928090830354176380347279059774772438384668363455381121981660226439739156392887112319955086397700886895729152186015801890718003961729300143160864317544410223187091306393272862946799986952407898078488430669966368993871426283985792073410904641911542227558680821045526909861025397924889263398514635736046283193922422218993734333828347463884799466767588749955494209356236589152780713579610367641638042448550496494091647541321608976996187659973630712098896262918035495869572024668488294455715143439013120796761459826025497706007652139960774434971918912965884281182953615138355416651712268928133388187328592141448520954916270731464271014329950778645011168924396568780934623764118221017981835555171804815296018272359394001093664964095120542669042056807138079671815508364579025470330280637333431299666769600841990496055613300957903089995890905484054560305847380097002460033596968734165724914168575468362822353934041509633395968637827770004488442659033301373666639194279389367531192439821256360794929067461418070166015231498081212154335180974035968208988997402110016485190625971387726964202939637852875637179480572737883381391202499835207832142171264343933025270743649000272930273031665549547524338999326429951767645904712237364886912849273386609127309162416882481320295017166946688763259435003921975157979176444530706468107989961896779966527490969108852591995590351271412379961217133860076824171021839232499936275046130451823254403812962837130983699196111044962757519013232375735453538674138094706233346302780657874607284511023207089038699439930025435554838370766110058930882006899058640027788449597244002141572444270730001242546120731841472241166693021019041871194842290299819073856226727110126458416000595830665964177727118190428697666766249672547890959667686807487023066044582028804025989579766649600430225211074095961277587834492233552611895559364723434060048427864686173133310331782419748291007769634502882089752857100461892811171147019316792854812464492618198725080472515857092271394748437562337316710709832235760872933707785542173025195235275276522138884596424068892197628909180337829570885076170113607526219476653887841166765508652443250824326064937397035097068205157208004142299615184794424461367635594952035509656462647701292531171321926500132968022617265351702840313942533210302397921285277486533952035721442738140166676525832637350313192443690371049006906483832262727404536188652114563086584649285345833478186807567787313232582985370808973228345290579105787812248670277960016729448739820948700792785807754900143994292328429453171988532391729156724419731317832614469861485180527468355699470129692158720867607271598471005565432739302012941483903251812821077903419941964272600813272795038851123244338530789446825360740298484875920673262449974709727949288740230231685866386187626231581970331230362033812541934555859876045940022146467545774377624055142618727755566374789600077538863148754955611927636870439707984434362915689651954931511392003989515916160020139067432124473402343308087693144684377994099067471879250551982156287720073631115431180428511499626202285352987659071773386196826983483935844830986051014890006946442791351270079398499930677569950752539892430107067855312944486131385873074141387301746508306815388424778160127042460137931738503634213480864091745941407092564797320588744080303806746174739928835767811433546721535907237556726144311652195525982525126479892938678341871239031152590945959555901830219034023218929357152155981726480428678710767215747631955405055351454067519553189704877069496579604052765984263995861679454683825468059809635175101375202768065560515520222946486382783598769257891073372083858023725552397597705735480766218183908687197089063117184373232330491933915096808749593678187310212670643931258252982989003624652323372364162933026152573848864068802792116139422795593710509274035334085954663499974495043446045630495248082478965930703114900483961624922061497084995397051072891040900256657252760407629368809652307561724491922278036121009342886494521442831594754944558963909244094978511295588090992218164460685615122512938839020731095630926549387516006422124801840227500504223433665989560700267186969202389061184862713699855448915981840730301610195520253088480068326159267837584171225522021843085121690230543569752972344899721703171278215605892667324078948544337749647315969221233980326588801798525919263345000349694836170617194914507939641673510874949872431916717612198373212157476321294970013068428461642756892646622975944731645736081093196669400777521874793736703256008803379918776284168482436046584724089301022560273817319445711978749030756911844068289274381011520789606266672478465816420104356071014417457295572169520830147880726846626640505416591571403843489333867769758058513915507684369751891961861842201125578604516802133220260229845194811409630607060725493871737387733282044469759489927082451393434911558856124061360698835754721199332051236497553312235277444411913268229558266824037072579813240019211311041355810266003259542968432431225424324361272105110267928286220006701953602487354871001398318549469860852372708619957640535189027421449032030866220188339913556094478927623944756162188163015027653823586318308577315738392453027338324199065819579193778184317549382486637880207151473045410123410302623626400360944258273275310548021140640401075385377200309253302136570368041949407705493442229339586270309735051971399196747967202251621828783005375286494496104762097457625842451925031570372581627074434894630250457580767672076704572472695606208099291310585292580701060964703950326207793021757943504229160774013352035569840207550381270182297644529940210645788181026456159018360879709274303474199930510601551249129890733147675360270106617089547789783770486311364402989720454644125073367522762554253454579247523084877794324701231794561174018469278704582616313815283300077592847199490880560505628694569232689052172592868564822277039501678564032676450172766069879316132952149054834857377632185115123247041592864381239078347365762708451576789368132213093020714923718555334986393278816080845916697538591499539965208056099557531342896248638623393084317519641957050044805205359871055017486254800052300596277713420518415042029385177856388292767863708423130495534198991774713458399614684362412542920972300882913862806821429454526561928165801021746620315410682033750695921266672541396699832694743689955279372965797172377544354539346305115677904310811990421220102682712999401255563404212089383530090547049980956412523061335373715045962442617698825961760380040549867262948252538417689950284347051991204219462051863800389380436674090407845270595314847249933328482275609225102639679386272771540471295066998156342582427414769686509912069888148420045620431592738024805850662220090152503888324267275274671113730367057792419940815455763290292893107464243100796569677660801462389314858423108588954902815729531303824855409429645922779202543934868056145584664526299630348602864488799495052480717083192920142638995631126813501288494164939514121109344813495867990888387545602466493605756246213036432573293048894454997419190461158569097441968355467656026640432694419097079762994608402297989995353809252603203786422756269613324419592619715918727014960330080646335869710562356420724240071326547431129962595910126513005601211786519397228547192483060001263506985129649887199015136208386175072005142269352119775850436823083942142627885058724240962843135642996473016445841529000571842787463218296554322929891152916209946079584039394233652833705380157785185370680602084119336649972396081246817240771121113855097239496803468395786800082218231589678982956130526559776745346747886858440782352199361409350268065290228372323667910201711726874182976361170797928762048840108618738205426891713425817932692151930214898700874609676975998845368987020607351682873615380129343496731965229389410575188895965795981096070680822202914126214605724280064629879321045482694892733885267263640219776183685999916417428557922733060533465013219122914619616211032607675898198955149552790536437605995820995484590522054232306229472735832682605785146056937192145781445082819327750897363668771804230203745641725178306540836933593939285222929401782140974016773894569149601651713912672824637989721821305697970243897994338448409196083057933390067883962015340031042682542790319468384488130476588245183042997151867481167588609158574131159503957132008382043056911900716295111239256887634444654522834690648662088266964037763645135462245843882986858368753428644052634771161721974581485245249386040068920351101153347757745291616410999499702364412087548620682206792400360662731469694083155873272681307360364317518988414026503432053690989819369322117563355112358520835753528161965913372613313754295508631887168466243145236005973923006285162538375089854010270960104991670303330072579858099445152664818957042933790218340768219658478870959446661097756172364280683525902403469789694104998303585301256976121270426286202168328336174359314965213544254303230781663663283799582480274777812522513034941425146709245635454954919309756486177381255812234683999914946383970311248730128699636420996407164890582159320278928299255500908435732952790647594874895735399076197251360501765473853869529012613295559347972223544416300949684578835459005651193347987574973112976038657845223371788777092469887754225140340127110751552638421457535919080657622702770899728665355115640435682200971533907875982836098850657990225156581039484267706349715530294801449950868498069646359931783969683367768787400485277255763158960316179154632400904491859055960268480564361723217783749793579064976655941490977182571497467733316682818247371382127044036980063822642428403677140912825654875359578812330401804715128964877548260817776103450355027873894210811078029842719710162152080006498793450188042874091540335718400118284516742620503989223706164110420721822855380041693290940306050069924346998692794812890619219571302665879774553145798693763758890444001834317139901671300193206012162171309656218453678435972331036341112406945399224330625638190325789092468703108838691404252024451002326517434547434346137104089147308860919670923406332552770348442402141418495890643497474242154011998432957576535039957618768047657368727675274883718597273294888358342958600938869071484707314481074286843591082065741368290278305083245398442607963556432119550775465393673108451689161396099190207212770902630420244512012980781962158970475352976011566525487165710221117825129650657740563305391132821700462676892033454300314925735214952063185070950706019662042238056613163532846302816620158696459542653795229746073341607589358469826911170927649355410357590307128011870054970803417143563635663936367913899932414174216951232637537938779043564273940858890872034866377038622038317489332471344069347700238731614550707660622545325888738195560281201056154870852737878732483876332571691832740055004162765538446940784578517225606558046385828557412165350173811313586046787872259050743130345211348962334947064485980202532674122959581434485621866468212452540588279920381513796430183085010203087701322422646064201577525980546842875773009530044423017082059041488406977075041662004859582438964908685315600751749581445792194365618629191270551081606032407329632976833288612847961010811391932362839164252341263248070131170657111316528364782454941330705878902009942689236553229878437238624739211016906783228006643028515969001396919178795003814366221439253458246534263515391014755117900960078738037729750198365833084359247480486557696951666222366504215862021913976900734354152283689224652463607058927111277604822173776208291632003671081992094256828806528867266796752976358078487393246410716487067962710239352796954612991985532652592851260857082460598830625656517039789726675861518407021783644410617061874842679861264147260805709158085257002284947753408961678118881326503362881887786857102454873188568816498187739367790002550749095912053271201158453464299019110707861164967762786905659168550078762131865113394197054815149837403250105087797979002477250113590356414083816070199978034021457205150634652936115815359781980706544196500068236450226165782988154653643282651234510443905993951646522001133285432020695829606077376599837759223873378333216403132995366271331816759709811422979841662851961103510623014508397291294923077392220732703839657497751733325350579153846067064169282041340188093392520588766927882052868914442345978351834758830045615904516083553466513463831273623479016210809824000098035055616477439699472421812275128544479404730671890906146815775429242495830179636486847333692554935711543049464417413059562967855280343741079912567262064901978727419737531419820343700845922539756549401856357826094358174271304360452001322247839966791565150194957558410831110094517186658407890212318845271948856192702938541519287200899795189230718035906090171964929437651642836657599825634903108619658541505517419633737941420085522927715449185090906379688793222125754066217933096885338874886343156564096019708145226611710619273961177998615232400783786121953291057096149166141185863644035650428617442088197608950232868016814810384687329547086861618750132590211303650296051021913631395706726037517777751292731081908137476634137446093305450888978103672403562304587884116354515612957748407400546432187981443257878218255439442499532332140107750362750713055678832078628746800094080694991826390510052379566885347890216791090577141645879330259037877775574820951049535799812361055481901714896280527116412784717564674421144645007590843604978078184698633467495517232771038076240999630717600992488974669739808468034639518518394991406035429582525109878137550120664772501019970374419317342661049337358922783142246620846122442272973224212473324789281282747312041748017202581938247743716156141417440396233813374872979991349412561887556437654489500447651048393074329030306711880847080481963401552093895522063709124034777773210808399532609045120947929893486544923811991016086561918511069859845394873843288165038496024521513427313722609573021745627491602423710846715177804792924341341279393119210078831893520285148608363448743453179647343748647621977064665935673450116577207841718216201440422937396379471456726317909472079652048906246263560536163575029273270610548595274252588654690484896992408926587310055521728340159828575651176082385234288469358041484181307298766475150987985455648741654308994730299827879133839136018498117883632921352195006086966348895547354109868049938128591037061103388775724142933356954425274988157204476161094654616412626115837636252191428070223241911346286423861531022781985665110284587844537882291818559200185738539612778478946113117512812504210246145433512731979811414290349088143739298181248857561417055543239291919251369410697469039776183650581430628747978502008005000025184052834401995945486740717102733928369592441074395844870119438313030116562435045491729277576416510007045398891760141054490073165457786205995126568216389570085905033721591269416885984141613669174339477764027767512003114335707082985319651055142982207964942694697038290420553645595606157457861905747533417306059713333656120406609591131825825366345627045081108344642932683947969078594609832324899770531614192664569123258543203101037960089043871129502609902786563744115936248371550216867975103716352951950565213337837102990463270347855703387012662586786152281640744009035225025934121256771946961155392176269382785942380643295566479685101882007736562192677730677720293831494867567198445908241388598090071672484628197870648929802716044291479368292270751847394126969627906425442472641425000318285981049121399727688990122043355047336320686160223491218838983845693919529426309008435853338442088688576735412632055568758030489890519348278425669881572624282910089529022440185202080927894435557502439345845462071851449443586124472748504127268366559103440266671583965859562490352163607067112826512380512872477135804926241021869899458792065053892224205128436652868661484006047304025684520824046900429950683401922168817047427351206772039507267849199198432998030467224036372949613633177933922494766469620966145800492963080353355073848425803922860068632595850351837773502688589913929426843568206021097190122867242686775958374359423140606573945866470335619738211651404039696955081841944289433788826491407860181957889353710211041610562504196141239517874322509268212495748682452977178000972595492396574797711477525017111762492463236942544511818807757506889456336969976225815083065644449773090098352529313391365495305581153565365675511004611862292749239652131932420332097067093821755963689644652221404182070109254736429336786375433612669007606618413944468455603908503262980627218264877652339854124832435651165201915900232611204883716122144624836997173120624086800648679389983339214229422289686109277632647424088465117510129627882380643466445837401403134235049114127957208335150157635154910415206887252123147126730242559596345119779563107589532132240733623034237529033772709001498968984923974211275587572144402351495230671755989741410224992933137781729154441537898953727879829542785952847871523276505199764542116411161203047978091075083723049758673577582858866787373869835729195847701193001680554821318388918089403054749360348885536031409346816255638543912904137768903061743575350230455994181719099861367677178016853761728116077385952632550077377749582499092299016525956288091770647068385622784809433212023562600462555528921387893499334893177212318993669979162266772820087165632530844113284596535200744921319047786467077588211308874329562884839090379260641304101094636183503337740309790461614062437170319402485282427017058646546308444727126905573646985365966069954264050146657651477729840120557448232737190651037707733483156003490569873048743513050321300614548813811031277575573846968657079410600064620122987579287005918026343857706659335784574489100632336780062245488385353934756060472917098103593919011062186022660600641851548576817208922937381875283897136715847514941977550154635006659887026739366377007206975556388941445701794399440396029583535783340243559718625608673018698180300648899494623452860015344143999551311470115563559711374387110347723829402253846053112851802041663401110624112407023985749519342030077102669112290525229695224225707526499750935244875763827621520605131037888835159342843844744078415132403616130667514925458074441156270540792950125260859624669152899703225268165035480935237231832600132455210217080539672959403050049101486634868457214946404195142192517126089033698283786393898094780944591489423206891791806407224616873093069098756435656961079117842867606965674207326925986656662798216779274688802738785434072273411713050830011752292309044947546332432125643061771950288490717942882548104648620227920984672829382486545327441485164751576219027872590360631120290783486362842489141151271655585942502543340767960393727791277886102965226006870657100444819447897500526073249226541854210427543020509205556436839448242640601285229513509365136619768389559118577907274857565539678250697778662054216027288959088667850453896536425153079448683762683497510662588802893113458787904152062534160654461419367020863883356584985778659337456360792444496036636141266525514381409398964108899385599014325607965920866187875890174313602883067027120597485637629476774337998864441381836064118062937650859180393805973226575539231873499408288318154243093849865677951641038298031649687745214080897222191680228574011133261256195185327162880289927664907890795481750774859634927197911272033769783000864482348995409710039593943041023043705185719450974306442589398178064793805512733530532052798674402473682731741566382776490230773613640235385536425414304667583674127052089624192687910705740633658152688651718701270851663481835494891300665478129507387499620133714244993147355426586516128730655114497776395277901152521452624143538657338139105916590857439397041186312935868725419059987137410977577069597529226611932162568967922696712581919414412548097527647502896899752294813093312345936094527925353205975207517394371123212649059865125413774016883614722450956573668570396590448787564922869548353756695152937431262193660066381153601213113849019592260382762245204633493390168910869163123550610769192392670659327387375405143233921935407116044138784401764674589346900176063042234495202294523650597125970535237635400160253547903663032552421257920167530100927493501862763682841953477631767126845719290780520990092395393128512649415504414017554705311740768471450573991412218712799534784750063482392686548739587240311185234410907530736521720612064442770517580219661132912222536745957791669721912057944691910867837216510633103396868302863785904679042576554474822934840521621695939315313309859597519314089419062460956181380652780034664615875114028273647335600736689837792107663573283513345105342186759278426279982657095879623738439443761111396853673327083122478870267006463408012411484344266930324872739751360294311247882647652245396183897507530474280383046772754962037857789223331519176116249124715138853681337126040196125024972527156710145393439854197548284604522673048443425646809753303532733906291704410301300513447459608788596091231987290912712311956855565876609413672985844219356837900456157687908970231134292059648727542462824299105204070657796346327872743209673770870333224640736227827224245522739005685904186770633311220635418532878171661810137396051273612784565074243725585732229742062165599803333289444959029334192164718315816735252204786355983135460762845298631516371143316251145596729556073731168893939985877345230572749159761716742753925525658281783675013545187084562011512298705541216946147885253179998217999082115007863846941472379292661007535567021000770459783232856668758140622425388026938291299887731944846127065952091720024892765200024034181777731608960675195852847559185999664994599194973038207410431702551966749560272841349289952854699161566610377799594704930315292917659640109058442187640392501622791206663945042840982136822251014218094170604510619579216632695600936906433536352079502303078506800965566462949864472003585599178209303479924624156124654604449016548440581557333670508859777621100271286055798013715346852671097578705130603567188768728350237668618496854744570220678155599617055855328577144391434066479379588767351780224320666090447762491147197414376485615547911902597541146347316569994433068140429865462738389146602022959476080876655679466373961538396556775016177811143592255290239031269256090873547802397862391964358696817855502780146662667789301132183872342654379157346131074488768408454130875226872231345696843716916626909792462795006035129436856115178131215311022382945464462564412903939391500685012793505917000702489118664176180976263628017749362414072782844411085415193488143407415107984884922166301053927575900323828298792850986875617317032618599393716305651358151474106002928441564752919916755308788227806568909575638713384330984347349916385031636986665100353569002737171291341675649247686149449906943618613204358707030654460046748880347775738073498617405838743196959066645654326640318047400999354878138331090580708242139335447745169185326401954252188981457393297300121576622963965064378008234191838914572853239899068916173916256966404304877019994259223847038769321774103024889806030158502786507956070301719872420126050239618206576149783512842093848606107182164716713752008360286206089403388061838534236632961924186665488384018549697682018420213002070826255691200680878048532572475238021655658824709263977013658938281375563863827307519197156382215651715576055053971534976560042159781446329876379804797925994256649785358271325294463793668473391820001193665380831394584656536423064651510513674260536666149298477640658477613598573133251247569720835231523771634958602139294986254798310362580105276543670076562319915074090325111336453351190458810068960884449533035756191669794388315517322703054936972184100245372661476579135536057691453584103462278203824869265597218452729103590463969123308952886496501375249236615578056887147849531119591872085892643195897038963666638867350289961710353392929754294227623094001906658944957207415548854650602315370250288839450627270561502282790233308211785882246467771481918405495227067561888958678321751815510395349413007652388620247730196505701703840569791658938469643505944673477970491606618443706614888507435642192166346925398479743269248792474260462701442839427784163498783023151270526882567214454396860776392712224102787347054896894430350415948751815780817849681549425885674998144389222373502324448983727940563113328263228508501088188583095071099174326170850559764242835701157171865389883930217713247599860662847634051146222847861516880005455612946021344847297737209686919943777826329711928683744624435788893858403569008162066675086503479298974123034599537421546847155644681563953094664158873244099466022820489589571068513780780556564426621182408721156229340040182286122444018693511365149880047002244391338171283383606457859939519944417788837324232668734121961257483031701349054233769062009210487985291641587081167772741285038316536313337821147694747574966118761986933308647827646444838855716346502790392317441781648153426291882077115618343307779461383936722577720546401758613429332466943908586364926977340609077649708030442415908866629492874725143256748000490731156681891861295322850571194067131362279146057959008736407976697641170916985449370724052192424005933330666211925747970594391368455536733158129408433861740788001538727232181426875927981472238789406713734502307397220407300734042016002634828749069949956206054492556058458899951135203360509465025183445720834027582350615688084172037063916044129533660161831755159604215413917832397667441166958130988327847042172972812018047324466100148791370767034340326732852182261931791330123047219670033954766677670926199608679440193683785358114690777472221947455484836434103880597217682017348435572245441804475083883540328716510366234126541996968694237623237597642702987275265361990535834782245783842180846302505405135158794890816018104058584440071869879077839612592115939707669919531580976046733055784823230046585485500907622955569449488000150573330817390800563443507231306460367682119408936970577251796640935962114152829533954486499407305657395318405524451389944117647845025368754702949901178355722240701868704332069936180638498318714073802107777500811231910339040767666997226589261602635653189486425711890608374958924359351018449704985592961985783318825533304802397102428273558018334222079555037362008143198849240649897259766367417579944418755321895889269703082608812594953748052013315003918322947848449315380880500445432141853141812764879637092188225870267596089447837014792552725308295276773165983219350660947685759842095428765688103845414853356624301967529475109449125533220726206024857161569319538172646946436127818575413662218785928406057072091838537233765309543550243554651170992482889305249411093959540657013141757723933406382004021673566062009193339940163596049569866867339230029340179545456319831190795912376638437934461060375804207886428678758387608218121139614362639421280360568661956151388530948947568517278414948942413616598841247645962175567379891151820847794650926057968406717003539009757820243916336004914961259817864155968772561471436415845027410907299704261011799977551944310374595250990723690063438694649997530132994807948780304164480641203855800027812416898661522420052880164073981455111601956312900565009901138627522530639652585376587736361978862976524840221961538830299013321325310191102340027036654338542356963859084431009340627269618431188860751261404707718255048248466816553570608371147138375621811685946791597882978955800317327003269715854481158026601785956181443266528542285305603436691368508403642202642859694123772534306837968007517026929380964007707827462352241784071216344805697467828863676037723691297123787348595433691293408822867255318713464151965653300489851957829105510742857140217338570632760716316480978376503348170179522038538059995017914965799264296713761397067116360711190334160960968943647564282362277721968065143906757042186025936158340326941981452742259695435208527026650281448831146747584766053021514301969078708481307869748254735231660146969307209914615620295601720383662887190697180950989167474564100609288997766776447854441504627396832572948820050394527310551199648063315214546563578883957643189051395814613532530009941605081720654062317879203248661257723114454270112613846940314407002402850454587722341179057956317670184147415707178852564621123600739621090183199816477566358593389915824697852734709983141144526318040035468999722805067620937231575230531291992639203523727386832982399535515218789361176057141610207114110142654108809619903506687252056205598254579561053973940347916555257636099380008665771571978031324758800768868122725756131037871560215987755048673535509184388782244884829288704582200950498659954729473297272932232522220801060731094221392798272274712655893735872094566354154921874220259650952795781842554054376464758273570534862777142660332254361132724576271605485302802387516393153652553437834332434898109496537212431484735164078055676712112359843054406103620908224216347527012403852811055624856694105839607381439469793367459480195721749920034123520427421803479920714074824892696043499807685312033946229313078492709060739402782411708233229309561209307130123429993461834815125376215427075451473303947517941310253029263996067095232513800790235832489884459839030009655027599876914517578974126647887552305226856453973759282247755867017655005944759770495078313342733969213091510701174179554038439978692078387571655993676791479187117468309826664708209071396036745512350791134083293596231861531559355243397621063560729200488760227131692491861287075011932747048530013692552290578034190656403846299795908515109733063679116672766021840275966008543664499878589508510831823744160342049674704968886987871480615255670417233350471531899080295759601660887639132270891912488741009216924628386679241182055153983536045519667176972301029594718835806470410332765990683148578417685752340809642331442061139680175746217620753176887958744060614623197340607661503585757841373105205155205099126655635674100244085494377537981347469354631786765923948759602791048018580108016601039950080277001924448202545124064548175138118732684416947527852425743376620658462680046298262602627063501094102509693218756844427773829177144701015266397911438368148036980430390065106486350959599059878419773873828212371404991418846839775055970470127855708161281789146184973099667220604128487588370558570959458377263788017800153717812130034665581208425644921963756812842030830009127031565611325426160288568483942753143556630764845840924941837063382506602690348048597259722445592733466537946124411372707702031594215810265990904865545427924258584540768392022573134147784291703615413294123675153548586314936565555436415289119123464592883852149973633566602748903788202355633320060478958719802358443440549823371221830786668401777926386389666412803649595848827149458983503528525099439987211299569236814879106249830976368410635087861049211301989962166147508405845643485139971887633231608537151383370156338719925308930955649012596262003979372735845645045756692038569668457730064208622126035805324899370376149297463174097512984850772473455199738066559269918830222273180996163127641343689133929586264557397506510308819409779674666733424391183452758664153843677160490685409122699285573368831871081821620472463485137063352521601484150356139724420150280143064922849639702412192229605313726934405723249904790973839776582287499034866713993538427210074726414743380636183051753788698243961802227677346014676594305535536196618428054996057851762603318192172780603783724436269642856183748712994259570990515101117764058291037998564901432861133862906049903749794274576720916284716567734094721852654430872343900095701921282391844356815232693087234020461824923219845654895668963958914846485784823812212280208486262418995686666459810832668850215390127403481293755933766489757115561575841409603962334473972569777706619086357739770785919104878145009352852064105638427497648814812082633117015831101631034333475709979241901062593576417658407235803170489555087377856441877750247930753440200243455652548228870669877918990377937360214673906966740529849580396858013943445399401830900244178849578017546963228887246448832342388358746429886508775152437860637152438937607982189451923218128827411063807273659572965351903307596445299743273977293453448027528403711157995473265269583690421823746621925566066215999069589670646783502688319235475547270888053533751284226209198119407819256115858232729372452711354892626476551493985960327156865814432257004677030420666499110228104118550571727348540260517827870485964819386922583655519886580165495642513909442801000329159541898792104068432746924638284638067396721737158602391858039180210721593139984841265949979810567024446477320082821455210813487410205360189324443251789836738669790581281561896451441677426536186216116105107918898932384137362393845917719705725542226309912092538717501641050253206165797788270962217692204488688686321744137419776968278054531862450488405501597256961626644692394299447732264709953941691689466206839612563651528169502923557377786973236746724151982752662774225480381966027655367978501000043210568538777817966341147992132763927785652462665708676577065330964694784226086461495273289059745010680144106420743483788572384945768116080480560087064373503857781583787754482420516711900266744893104928805048160787935715083884364811627242196053118179128715577780055906901927987628862724900271248607434202929321131150217550248678984300627148778080554798564992930298602905717160315571878804450689502784841596846894810202026051473771338761890240323948628674608712131578461352711900890839081358629069104588100206139786159457993257208744433176172356152584419949381621518241737897582967225258187999208873636739024917044630353919059441022274443957089515447456465201343295958003223654039308305072824803519531403042270117392111146212900004468361191115479450132867960615203684082118705844818385849298677117086185188403733363194784089741429353614673727564951314595206288497351983339733264188532754176895259973342256948288958503013848584323383209388104280844270014989519936569878755997407679053966195674138675715642230356338092364201498261795913251119528601309454589868197264012899529145751515864676659891310113270286298220585349781037683684636888133625027756830691432722412788732421164462761407164998927897826424604121303944579698758608002043439699528981097090910870058630686576799913111613013299669999390058900892675038648070657040339265554052265923978503531217635471195170116985383873681969849985601032747954067754757665002787174287273329579568982282096164072235718018129589275221856339163613605412019263769224022683805068883401444288582543154053681699623729485691547915189727206537438992077876724957060330097549861258564944440265346257536750948606599024987432411087216388060572805651822912758689172566747213653163329022467327222635144304043235001006574033592438226418907326541509219390551611084095819201749823837643993907636028301441977714474002686378040803613294353898654175057460025937784049570117108774165642637471771193708273710970093689325824157289779945327842708331019080450095450999833085355264355901852348801029926205023731961994194202927434383288383994022853198020149752348207729091095815180330755295160734106711125317321155035625695743931242349032097855231205783083152092414355972768711439629410973812087181405976634218756661930854164765517620774638824400991652119475394098216398550014651609974871939707287372235762204058923387153051335944156173466412851460229851809756651796705869882304192813116910257504282181793278761537754428018455546906475355319084643222679419015676654755705674582453143221327261998857068234367260528174008313816388278155287082012431616714862425435053959953772256450131508306644258393466096370600406561674095090354954591489492011277538929630886431514051230050905815603986266554663655696693434835623103185750576878692326859236512497097385001895768326628807728741457329682056057749384295603547862125542806768294344455283286461435306496011181228074321492579731333969785966079683380501976767006423605963937398224068392462541970576223980809548238196505929181182876234395034737370139934022418193324971609933060073011813608671133850547295190276294749601747639270001918450272395826321748140132307986237829850790211676344446661566122932840946772508265865009275981551317752652681163995655290653147634403014564309764666637166695924929086032510031102729137523286914867960942516266670125902389612323739233790422354403379277166618570870282589833176375829929807824914688406919470890880215003990920492335644566910112129190801008547001868625795683543303037171158869230881136454659651394171972154417775651871582431561821133923768974879999647759854310486606304708220268555444667976112250469134301329947912349599095286517288685274625812107795500297784131404706050274846192839936684746596346163723520879709164430705075786672381266552784028627392542296986565739217225841058259683885696167363403746428080647735367774999482453354207114983718513542122658870933676761835847175302676501975677413194599334720670977075771055050822531245335276439532656297759088359548483083433128277542805791793752564479802723285432701073170808998302171016128551782678144858536137096869174538551524821202180245704800983035555066237299632379299214751141661449062294843837913520838582665909091853884658812262244862406914447505415957133847859450161389169091443616529250001435282598796868857330406234456149115289079200214783420071477393828772340420716291838446167619949455169270673355306435794045936338622651669501541899803542321255534329830298693296629070915228268463859191622057986915497605294547624843547535419010926951604585518264615740918918141805402231162556736608645118537561213183380485038957187070454202309024686557643178852940694472179663776394610414273193402667970545985415637270487900864396721702031166123331070593236965198077772201976929128709302381432180330157629005689861110727398482425796248426793179760899000372159099767232885672664488138548409692304351979957430248610812282680459229941782919545300435162303709913274987686056092885676268014977727817113112688071934513929432682596654196207303385576106614472361686748367273048436448634730407704900388532941452096316640519958690542284115565076979666464256273015178975407612781310539122534691923581057478627581696909246420576620968569886662022428075328487226165593194630698459755151524638057320272796638105101236253226203462015483862076332527527789162211093186337470356642976107025797413293383113159453323590380029626903228296096229190765205330778229682249702084027775899853072457178184245909287753253754432111955561191445481191530669567109484710701833869889904454583615047227409491775904200614344596230697058005339044306413236195616378943675631067439029837563957054557421035305274551290981040142365996644716572471467938735579248149431289007253610766794740413938620240985523602332500737794934179940964696829606932140827536042828582478176924631579834737263704658287990934516013369743439677469420003589708519992156596416389107982206514407078366256152895765280657812462032665399566365473868048703975381010195043295116338509849704578380761434364561275083480995135743217440448531479971236339953810720179607543090346297632657692866466346879781128540824751062899604899130959169795041294821353555475407102847533487923595327269742919647878849374923409468917316074959064551797003135997548591707549119121542831315934664204084420251757497580598256050885914781300422239144373573246832962836254008875270992057571771974448513178167470665941428505074104177141950182042327812432471816234600140937241453613498028436634296507967252090885610094347027846996078241321874947692209635673808680998637112322569568258606678664774317304559132183510564392475471476456676514100097646881955966276237251856519775548807669500669760108640145021686293272539501291363306569317071631917438250059875636805198207041505166027957167947746246108176651730018199181087466328089997519374621921352155907619043383156526393606991518867035297663943968190390822861524150457145176262042364819181844733525014496197162433171437682194167182690256154554115751584658907471421925305641894760743634802384241061154252010206776776807111288091089350801175620343896610875387672547932625819891290526088134944825409093459422011688679711920506700535172461038937182007057898789466396438016425070746522594868898173562203450304639265935006723386626876034011380320670503330543652383080618730153539353525157628212534412402610104049065062169540269906265010694263623672985053665924078168303962200965453761060394009589176893446149771522162576099524887115354790667283195253339930592430765860872884228243422401625931140757579549897749729986379686805351869406481411360245585861069628653732383598876098759746163879370337359136301408874598569354881702136136331700955644606919581438476938932125309628941192133042520602278740726568588924284006016439479799129388482817653492318209744260878053761036358862965012774777264071125024172152515763889111795150626235430125280800565025963319510706672750219312540045603525870984866157674011004899206584017320205061988726945951543651405317007933537906830570648630516974386780591875535845833681119207043345519150958223411954904945797962658699783812636819880723315057347449143564600081069660347234372008770362820654410833201969826791543962620324391663918813400008107008336438821705347226404013756638441566824468298659582436235316183720177630437950080315812034093161146061912634528087998278582793772114345823754415204624042259667295661048540386346262740646203298311493699620585655686184952283931551144840409617824375833587147539613131071847687060770056365196221331150638878857700595644039026280162297058393108275660275741262173401590351699979438539607059376773791524137430560440781332074767570970155173647810060085670780173037504519980645330046526209097519366526732442272236007899656078412448520346942650703800211825877614536674210128237387883058184459176481427999870099099198117557959207421803299638002697995768767397095971686040981896235919873732197681498357763653684324814013213787839107880600292336726404140619411337783126091416696837938878201878994970000040486720206297200024469648274664468065143083020451375819205426708674050390413658934109122054357161059516066427047375316067341834596759646387615954971323763098457007331300767597698317371806396289248414359452126797643801739856185363408067229320510837703587019655152404395475436546257163849366777835149313918213809188255094633309644918560279088018540303010653074945840001779181346229602261632813624504185450049405661128946606612027319791594856510759039949677171279276634128596815422291850633670571127589204247969287367753843354669983302881385562472666207388172790185973484119876258465278707575567649000593083345935943978721780458417790182599761838512915941208301957870205723869171738449395172904277612513604137601204525764902965524621898450557667731567712226711186259664451598478438541871221589749019130597302686329461750119703301222612335921999634515945395626957735298449018676430269973663675229341015931563215093293869453852285327352972849970073197301977100915602019835808544519769540553510905004551109510376308279960842243726213686820216844492061648145069860040017617355470998778474049447759454314133623754966608626827016241868225139968368806637965767983060973308416802569402002312028135960807711640747565236597478783907982420189230239992066089902551884054975785125165095371139913864154690252859995576269259860097397598722047532967959977620489325229668219526356201369001646716518993571295107752812555236287978173517287188345294317609953235239542773203775351380130100953411328191754024038925167119260545298574960708564281053746020431897253178932659438722166457241319075529748218676110857151955720411419643138807774070746510713439128449165690788247698312003887264645612554134266249866055269063501099054354338383537517260612376612348388198112635173375205727803371078974061301293232565904053983817914528061345686913209362956941664960753838455237553191679156733614942152717552159533647376638555807356198836585460173841198443862190139724953009067739472890783247730976058641209092342573240744587927789429835958815222663027091992330468816524220606238527227932994683375279122522576656974666755707386203449625346218173285369391138245353228291575068291078355994607120831890352543894197279930953898323679761098455481457055158059571022408649928468519764491263090823136938563996318396001054160269682302158338808365389323902333708177184071808851091694643801602895578332462861065161929397404838847364541528037562866615146380534848860342390030312797569525585377916595342425908546615097649369684546102095624020916079607530704071658054788527323131766022625379774845210115359984457031999739519547522986600013623596198343489162539115651477904401885577283301430411945809078476994204474038481472788760817918538866128187526334300018220730879420834760944401634872860244961882800786923114611057990411003171279798704127386654035021903596126781828256381585175776999759481675275136787666305532308831424508213337982787304256827570219642544254170173486675731459826655938743971056960428298773395880360515236831484202232493561810200877597481088041410636697030689199867138952735791546095988333233823124507717231267002602069456471116709111921312257290448362559848050198735015338747635110453775997078537874412257250294113546401119676012077362882849581691676378411696643192643684742274673126446570207340940617197625092694596610764188584545961459337211544231207581062756750792431123519830243410668514234564845321253815180773522929451619871718109638842196252082055912352613460601891467982811971102272352283582733543911212689695590754875225353997826674429376567701170655340671855229159035188405815261344384223841739358942153210092332496249550932683190972634114407675166473221929597795309651857363474799808288303409688881875352589473355661159890613143726875765455761806313296103184484786511335066665854948969934067302599017888820562515896485470331829569132454793774747360074526568961565980947065300330559541724422711743951614268584505071727602776278695480054757973105585549335851179753915942357017822229697532678366942913316949243443901781750001842661286580478124686869202380085768147914524992690529994776644790098072252304430100589761204186478605270186023039486365679132390780184676497179719946508189772196903560474036911497954637624923186714817314271700630093413148855430048922741861808452017230292706765030373460434978488386344299027059184366996898806624812364046250878882393932377642773961398759904227911386081712127115105355119902898967206940780303262603039669779031296805419076647979484557844704855798489777041814533299775491997842799352423824966562337425025152653672841792952604630203656162769058221323372676137378546332388386561707872652212170136511784046140614180475912277408969897325950045236773016527598647858541295336224463876181723868363447893436219958614932768710165030175843370135402347733592528501648450079232999292780746111208396664868451312380468008032166981795546734369255217221415214094131330823049184079107397135984848493922469567717683969491762278392591466368621362712443037317932114744483469392264302865106712769293736980493540351067883538309248810550261014561920656886954402148547865625979425714112365957245627818863985881920848240906904187269040693992087305508607181132765240950004424399706162718395834331528152119843471594754488156330660936342400184383112891699889483370991299863794012249192312406308789639790566187671118035347090334724062076097437796959543638361138297608276474457696054582881087774135203987833941275291076877910042854718550201727362665257526977028822295428062356346037952948447653025935959410173008022963642228027606978130113885225026114834045386593189640101977123329614730075835071275169935509931999837890206846094442899504315853715884813272592219318593860454340418047415441411198392573625164453122412821074618097061662241965306791710376395137409960501928558177768637187600304327296853412698296787242254729545458562338061692577378553216152507418753501116555537493173941091644819223293059291289373843855267929635190974941687966780119994485539238565450856733488697910022254319873818834919621457846314040187082149153589444048760637871217360264588035001371624471674116684496611923635749758491884861784867917623779552338615577124310416856418412941996375610060626969120705996933323889205569619111528020762461381492715048598507787258484506703112094751063513032423213732569881471867610315411460319497509817230074658294538269452166556619112186309852995215072920517610803537952747417870364384835917138211493839337633291206823153370585421135404916285747794658344509651883733648827515279284303897034813561014205842728485550755910032861762934803124727821089465620952438116570004431593399277557818109778104380414238388221770644039475913940835261785708885769312225264626817119934356800286792817257209186506772836730801493148863041010492313355481810022618130406114863827604632470110895710688439902136868927573371699498281398384693275673726940082463073448003055035360714158379511178065270202676054051394993838046293659980409779633307490330690627895664823026452877280139882120800083245188344315131375091864802857930757997243225672398076892297946072389757587461570743809991664230908148774142287356803495780719936513029242689856331469242751647328892098824970806875735468589857757495225635659065091373080849030560965877819304317610316550890752584302748101650183123626921019662757049486013207568684313247259849318765004208890483691827381437870943714787004667701742217832905524023519527555090082972956177543260876017831423696096401703555568804496242373927829781643194860404466942631099806987257552861778483923149605484362068147507852080514510420753591765112760029795196258532497816258364613824836458117520900813791945834618238624958080189304753344841685533204259969973304178726348114365862832275826482050026849690202621587889979175727012554119207173046257061979983480974760771458147837665354974772935797698225334853127821426970793333512208639443110960214692451663736999505127673552291978114807445226394237752327185625764148321857228959110031079881848118362424979229855861598350997168754282465051614198421378922196647517718182737488236735836208532959817616747980175445521477083875544423620397566999287614959037962537001110221581383398085233940273230590345749492796297510610466427222015988785462316317615955898254830066010004864455863246719797986885679244166740400001198299020116002557485589720701541125262308754583238012514506572973134484428087341327081798598541942660628711404550553774573960214148141330559410575841301195989147616848828825259259501568618609769679392156528684245860066162023016433607918669566041841003315850852236673961575613148245367068831834778937922683225398325142127701450142804746339088171308790616741976151047525413375551599752408390425524310438407592515236149947083988563738831013956511601995469908079750546356540808726498798018930468552546811754045945263538125365672490101940027294603201505457375665858392272360882698725540112695476126330523577872513898846858203293017826032872427834105758001265694309563913645293540190389593288934095583458134108414077706670639914776480239955530685662289703271710032270798311035113266833334255653506643792812983848104658810073635943268437299281646132657595347654720530561678822407672961674908012297290287581244909152590424857052866743066581980213746087881656436303896206602774907262397049181834679078494753920276280624435314197396012638957956034291820078417668947200697677827990291591998745070991385931229472958393911694678362967713639119334275061787397265961280040508058496625791102904640035079763178382834315033666544532741490493375516396535735169963210469410187476222897307989355239940170409036660924527770195594406983665414708638881310449769473080105819718023255071295246763526193204031636273696620895248242609158158725730764498929000353807211281287719514249674661871051046098287719402498856188123785783582992700177695911562577590193999723082859773739241705249542503057803806645499274943789349700885564658027192025389996183245464155745072508456977707478427538742123554863368019481833805352977374507657115873936044453701950119397048754489855919581989970598428600918493796621433817316023595881511433632946290070025738746819040477781775146027425360799228419979897151726518185801985990314281540727632648121600793612765023084501206379037350779517398928686903249798080803923974762404243702319458761288239885030485735400212848973396434829955100889578565292401897486878736420126153931818820551281686626005334046184069637355499215730075687064718509610565600696658739310428252875217942838032239045488662523276409690903945091616489431924336342211772959708408566715995321385657441420950379872309127629123534803937247376656420996450154093423943671395861403404008189341649730851126650591602162897903510929593983684221443628699117742535638857998068567028707751333255481806834201163940570213033710953003098979756702192567875367070668953732345341892011023763477736168641147195884291584098694031794628386535000118762757009304759992023685657106525101202642809724776957117728554397683496851898993171457553694906468729371057337117082781384178522653541749912276894281776970343203953391584466419369266099742255959049229895872281488683902367478370212013911588434767040975809473999193569314567661382869586266868483994521968684525414805086662504147052512435699095486739023275478840987250784508184138747985064159977010123202091837756935079352315604948110964485656475044956763778157138587553736905080196322223961217022324995081069169549888620470114441986856808972512822152575176234232283401782079589364185761138343236202857534653018760504748729228540509481776392893983079860094286691398634206272906770989856981971194583905713050078734008247719060642950055226388667897175334916965918113173826278686279682274205408802146689832773192350182541599945055777674943304688941574205741173141604054020476926068520741322602291372583781333891225346149799957669781444948801234199719111456626242454155679452223405164430482107305838577733924344469874269115859872469506309014310215541789696893967495698092987547942851374429297658921820647115326852382756992618601051278898448567620447749696772512090073326743164525946469644860969346483318506377928318517034309244391737643312285076359190110360104785725803170014658730816881733598036828430265458916739639955651536552691899123732964568793804093533332872118207080455109040046366155296352214054812918918153569775009420014476224915213001028403531721819986940313354782437271306570964621266971897683294257706415349619185760076480641063832665494286276656563833877647216351389370010770494577066409996863126574687601455710359581325606232581593236294086333105010789127830854249030627064558416017688190484593245383636328148785785769321266186722491632238227475441809183797829893008179282626560855066952312233252735738854912274530999349986894135772241436331019557958392077853832408865363055369498042063897245299063065299907221227804283235781884057746792503145630230760627285796535253514923901037071570544895320000261018092308363986214029393874110661868478275797214738617471665236565619360653196533698068257428705302178859620572279525027852971645172858548425946201998291105764949924546361912965126110631010802042830477651204280216497573481170009746692839050288997877432954475718827598105724389482454926705668239471895362947220865313861907594311346869901904856876380826617060478783210432618293449962014726733582275132449328110428289592432080931604494408166680566681729422369349752051362437517250871790305028032020884389071966811135480145225771393672775063407703175581766922471539660859769355980449769344872104666970754878725341236413493619195642587743156923002164518923732128753783303214851336902105994140628106557540124487253016400159187311215932528714823091832234094267150411560830803043936970881644423994655991880331937559482756284468804641243904506382363499341016405872842149190139464102859327465884427768678692232773119382187496173874329235631656516267058138524044477778920331094301833520603558534916146135568442401388201267172762410141981547239004817192393620890863713320612900743713219507188744708647866779596538514659455844489890567686358776070458657456211482910374188690089361242270440007493962773564292448074360801145405689723077039286557647352467262288647276674531361778468318130723789696807651471604340394215296378645576001935266871743017257165925963099260678088840470899749224674807304769493191570139362902774312154646658987431367525557301728833171780916859455569310630194636151781506349513045247771228191111149074821770727971462344164327098144236562347509927392972312591370534561605382164785917649041696840082293907136169280967707585880395014379799675336728903410574364245740798217614382411147518233007964275326535685111502762415441173995348954673302647471495157648759117956685992525395447708579613582989814024763270832341122498234433534668993115292719086219405268563139231869887018229014567491016445678454849483269032553830772812771817521212582632797864057870604958572863920219993307864818917427686215751543986326271853168589383493585715276489379551344724974169106003291576741303119047724020935127297872533418826025693123153677698441107390606764682975574105191738680927831658976879252370895593388377302898693749089725229929199163641364742089582494760332401807613171102346304526072719148776665291312246292214356060227180956491315825368590192893178538983097452892219765317916908776271861585908361744022368107153203740574682865630153347385906464519858645805953720998115070076356390970046377501647655141009231455638062119831755484552700055961181191853088599854975007104145400288310961535511442192166245369170702537733252883528178229572434786679810663453549926963872466301360504443235910432648327570579104322535342602552842613934622422523505613599815556221361118063237245807909474122033395376804187089649957427939359166791038641192177383076552817020551318036830507639200856075876539052521323517457027860435294741578637397976930654532545346848424904252975811492885436116497135796973591270776109526726433056366655649730784537085768684067245952709471129709572965137327946132569484730560943122817512842497540571921719648209363334441126477857358404698764011297386590828437120240979792775112851493108740505723225023075968903505765278520246201613612855513813865060444937229461064029491863308494542351563695441810425218418333592963404265108232041721318862493392192306185741095171046641759470095380646218640930503225526318226269689143627969843351968339599646218034416702552938101908623319366318791841773648613798578236928776153111620827701145971634355233887216193318160557265440878527025020268039774089330099808937679798133370122024145609840749437731935311720227014215445809899005691597676399689071906546967337404483264742146217407282222904838107477165584079309873989280272187151628946921385036200023252471969318302434153099790889218565970357638718179383268300452887786363041404114981871524725473638413298211016043663544673248481154374347779490441872408911217789203788484048227082485875801592136062679358614089719303717669239485782917069253745341962936311117694646715888095369452655989915523834213121968433926359946810594814368696131947870335912902081569339030144816923629131944566798646267972518122212226708759476679860873944084861609971894030370942491073568089641759589471564392595052817412551570533210608304677860133409131286778770302046366188070930734070475469166370277298511592580443148195003663499750261886488485339390644547803666683112741359098495174522972090402345984986525025813781735040467913061980597960117869866301284065406806669538298585057438592514263629112678654416971194509746466939460884159639692571726018744179700690314722737488477307635657352047853228898106541089007061848527464313664430193747062069886102569733756416073215840795781090821916057035192710334488123559918995350314161235945675115741618052367847561992985830769730910756160242523508085453263250385941079683858184415453049483873765256847261952023482165446082274542400884555336382571550549195478568294854536478089017540041938085259167426345751681436140127020358510210773650029013672088155784434603880455397168120694465916801438020992481005358866325487851654563900122479718819563987405213272317344417529078700261392202072716785189127995280286450228006761101214488163295009452327193612435081690052763016775019692104729073772196322285145055467336940431117806680061698296603642019561518582617513854740471559046568660090166531305898776852885470601902996100136632350056927862932962728465711752316892996185625861601129031700485586167592156288416441189476672208942936348535766051671867292648248664427940681437583145827264213730054253195731612077411916519214913761117487247144269717515804715429054581667215894434550166082137740141145963369291981796785306855070067876814833124983284806579472891510804141654899223022005953916511980473253751364046351337339937734611266535094472560640905092091896156986463677878656185642229561246589002941323850589091453466900531128693813939703191897997685882766890486469914179921419666143401178081413294162940065418478930005765361951909613854037478230678917369634717074977870899039420015312515771418095136426264238064782578553308696281473152938012479731531702722821282817118128341164506259075020905829480922905091073206697542262097071605003195662437186045702553125324238611945042105170429381277214377257488506092549568903355157718600073352439504941491075283472586796128780315282502544213246919427524510900508228823005684218325367508699282632813037883891666961635147918267556236793228837809821168409188777546625494239366756379045371633819428762952265841362070558738254847007590261178851616184466534853651263605184486066657700065480365253282067555113928781731737040301495054144937982332728439288424685903331225407457103471308861511607544464957414871837795994262482820347918840335275758287617757280422424200697100311429213281724941965978913437742296235449862297853800539017178164451767072056989482468151725414075138615504547956895967210718865726954579818613216038880269427846322917488120554015043390950174955605034919196671914630816037716955990208002543897491862940533796776939937340380892135380746174158153121965417364111937099061649741176489134188583345783850288859750986139705259120639002916280638580882810139500950846731675475651167253180445046248438955422206536819722008922625924254356336801241396223528400761744982335181549560701932736602028005228631228059267632702508318104158338017989410147963932820853073014519291230892482457545255198166065058893670270955291185589418253129793440017494252817381479688899933513420086538267083953970112061069867581802368758292131473421768637646496828935038284303131541422143597454570836995774973398100704952512743211302820247650496005876950273539042542209054375581120479424373962413477647855429192174493231677514685198766925246177785320865026661216345806111736258543028571324343623523090928129300284060210094246223068429968585831392634119242528388286835875538792995493592261968697231388829020131504639392448468339116492973875810190691973049949021907029250659855035770796865652566484479706042504495835831529789166153734356406505182756132770592406059686535735756900504645780779605743414675266776638461815971322507674128835314228445430217810829259493533551457884390316845815941700226626917940873284499617947580847742643414448320983948226694370321686775108588358472642282921763937098489613719484001006855007832263836317971310441667023955233943182243784911991635421816626266458170117262869623258537875298714528414234524374173883477725274405917374785737593862412052361419980127919010242147628134099534004437310281558589585810090358727443426563005723698403089463001006146959798356627666967693486828405437802238700355500537209520151663803808784219934466513410088029356405984500539363293605003501488017940087646088919670387704958384602291157413727962153693298671991365594826926668238027685115638309203078508698241059499686967695288959429482312071314120866497392381676744474381686343009920891834921606742218017323945011356549444864110360369330787620248844563662485167649697260935334402223360194498371071470605070676050482616794681025579193165020492006955772244470213750224723133356029968955163207580704499895411649188310665976207822733035722143513045803499851896047596783165883893670842379361531365252575604553848053380462669511938691693765154785835112748157272608533665371865345377477218173481896892213560025591749779262295386849079382610076538772027123987844289525938333324810771234385246524190552169117786535115323624722184330907895542532264719936705255176202705249946925833035099175983396773597401626527919297925430380613629026228714571052427838380845560661894959891394611577348281447106139910178363242191420328172660595614332372533155250076803257263536982455009182662654166275097656688452925608700402156283871780403032208258399791307145312747882040961906398091470333818057465394145462888919040091392768769366240476937474744428775382166576582756128731227328734059205953999236334209424190420794799616252491784752654401577751779953251754128041927442937745290804887945751287479641096193987160732716250265772772296121511010219481917034991470459377771418630348955620318781919193519795405541973841964609456403540501420248290327878656909773295822224451729325904796405765885757407013172307352555671703706436589051608441036615784776739972988829081063120562246932682582747908343640525404349063144465025921255017802665144037893127656801285977837731778362545734860854001665323219388211501473032151302181460689407560374135793025773183494741569363408737371147437166547622478851950019404983277600367363786469924620081469813295020396979830331168299333720979313148770718057716217658915661181814420167026777208080700944172664439528623799288506700886205441085003457389860454446222895772492576325868528049712403643619076709370421851922526328460822414475187912775147082464174116115773203383374716620495465471760168061490647115709252296697682993176759886554319502654530937584725560095826040490736289985515613619923817686463756485124104940521468086106292481554492494786972267730787489786296824937453125748090604391800663868953936425047867561681987093633963814035702050993488037572711728823394900700447562618066350127335350230687272681197870367771867097790717014292868829737104911659511492833975201608586146622691083450394995998943478080230952721099167374782888592237474550337473363772866938453962931153015525535152437068922810478749049726579440353291691332628954318722158457868559342103216871323857188901513794641449449845501360203055145392787131065890808686990414757773378467807598738541588432454270671107570079986234597704820988189689176953166587793375705418177736343404833756464241167110433522907287828933310477740214250017187573329435568730436915032271472465977027470963439728995346619788787701885280507561676561207332453733879152131950348335826993629834855263459553243173500797855579627167516588140951171087276717785097884384021984717333482927017210914844548951756867574122285753933232861499394503570401924069003141516714312213270444462511106105066895530782008230026177492424934763357544556315254741488945863169993030512870155443244721481999655907452556211716821280137609148801566042068851922065342976978282781626760153385002279976110938337532543473533356274829814000200655647877258378196049840535174762963696276149264692220406410763257499532400835139067839351129092133060773558573205071558436606368735876268869744497808903241547581817703068805824293599007675562018440315699326091599196356260808766079780527106144885910839135521753431089323414195482361781647289498017747877596960446879387162621010682929921020123693505316258083239300674702405608384490332752308102130649848088850150421751089166164709731407648379353599699259642283046010313647842053114917597025263405901336740608386970867023136931730158610484127865989254811887258814485245431723523878469411710143278445054838681282524313119168990546724167784951491678931696567792250333428802410613993478697841837395056211381425692772941877983310229707407263231351448288697437006385461582362298007376595135990745695221693480730238342300606002273556820664709923077316237532568085486860198576443333597410096336546526169995560070034323745364819334633722084557904074364796961706841647975844073852558582976911504255379735686596113071470114206468953618327971429141491545484498823073486234947390090856366324021591071052434642268621799544866780665933130381706780603430216152292377452292427311029021853383328102456670212021337836311827273702671710174110257995563340771402578884448142212299772862333981435419756582548936199552482928826657718896919104570876098047094406596186914783035516691329311975013988327432649590203174386620453581327218736991823778853092626545502650356811845322673320568646800143636536902100581465022262283295599272850190411107850286548286874513570733670104169559650882978028559745172445358596413214738942099404904176307254308306387203141069912516316155739468196338958350886670988163248642367124031695214964836640587508141755217537295600965595857005838404873775696528420973694249912015845471834358265358399713796466190011189841069121300434240285064624537439850270027879990190229201762874036956964268798020862003086043888257409331216233984208143857567380524688755807018197714939453462213254093231621624509604397592942722614166697655952220250756500578773387885571668951692678876000864779167278870534141800955754915605707806196069994814356976081756061474551711229476206958933275961257519093883043725432298272245469709871239466769548339008756706424419661107643107234837742369134975390341115281418638722984173201487180683246476890936689026040005792079837059078665580384326989141889243078351568925088056321707727715617043577578942593330984503041528396132084651377939057769685215524788403384763547209572224744458082239241983941687892652873595821334027207574537128065951897206293803228684584798879564863843408379853836508919121318917758217689790405477001126035569332203448845913671281044163401825387786260927134150276407065594611018016515186358670005216221976632929021646369902930533324771045334180025558294283901922809010280664465300178494747074779166762908094008950039645191139454083498635244291178570390505670330777024655296414798672068480133172306523135071288086486180197318976156199260905306754930812597257485370916439121478617436965356108442866535156706764690759753923094181906262337845956592405893647271265881334845939726878981585884881383805409377542456365431041649545304871208069491115337280827428065151259072420825697077977755613077166734614404487268752788100779240907237648150251933666136609867708063246406471397531432009766173747039844505542995827999506951083395621284620543558250143320554199905730238922092193995349198252762472215597726461728684689457576273379883343850342107981469398072327354622497356224043794671971621580429520663980693779627161487711020881649600934795459479231691188114849974018656952343235472341662470059780118848325769760157865907123418687742423000581523831800279362691235924449824974123678714653879259243489530909862629920352481293809462492287520469131307693845893918311513570891201914073865657387797144643006070715736582829434880513947985980071597366882434548896885089287266769570097632591027214169491030481751356229857832082855175104860321151189273849206781991274131680756723291368463166152177755538250409265450108879607767486938891474129623627097806738106781895059774579418629233769353967335548938166145073375506393913463029440175303281500230322035622001828645569218538431794052762139136594665715411008022640374436052822188944493515504994417019217303436703037019466166611519833892874893768458256742934053352059644934783638801091215946207717200199119651189235266874844566344669300697364857766081113044979127418164373375646188179346192916374100064156599522221316807681658629662730353714376445856918247665190486118198981749013682457900053353208157371768633511612523438349007125617806199743360342117452480749446056306820425217490905715758009413911739840780508777411973859995914438956943440111539269289930328679719301209269635547375897915990528460848422852528505554985691777770391716978426047574503959976034355708309829800195907395766781802706056422307202775135068484130989373194864233212495651563366027112896290697578125334149368406073302981890392265587437385414931918259416775510653174392620153775022503362652326154422839680761367025103097720635061179578775301900558575905528088775139714246757524581175631841041822007732009351218361145497904013018004224116255674694279946640394577094727766233051997128054500149255615388045206054544515132732714675059915749615659947761009612313305906700088996719822643058934523887449680630512120874955465235581204080533455002859383534450942791532224038877013368527049872201661588604493135540067218176878687707750747595843852086913621261072175682457034108484807502664102020285483308137702529644559853885392404319036530203488786072734020331488826356295492522360442617674898906943383426282418454039150348591693244034319851042351942393955122144138682272784084061943982294251001669023767908917965226372237435030571191973588270378142691405570690548684815134556856204036945301016269787252218523096056346787212718951036500456586923230661212036766851023106151160909591545852768421646887372714356827183726717036383572309965990238264841184845809944758611882525671255475315120125343235561086395108348883500240075824546131110415362060868527805807739826936926783906759814347498618669577629325729876860718499872827109142334755009962988195020284241385844197390053600612980050660895400426860163871346028146457231273206495758430756912851288153377293938512689444226611582051697025654464201807203103079657423675754919992278413666102997257874532753762110737927079507628651094565449592751130359677983782639001089882108565565950313086614443595788192889130515977703354314810365633241753937421004874515148034602853234227456320193816610293717854092110664438595604783363593434221924079437894316203104574517094713898117937090168242258667590564249393913549870299962382883836527014900492196054133668819948164689288321199972598210827473242841660201878482799714563861539750912269933272203549977252790690731159216236478404406326037950136222067891133762750603375339034709008927708232204899716377121420092739664538196473311121635205430883694136726419494680196775050061824616455522914406498849411178644003677676177305281717134275421763599862865378440567565155578644841643167786601582166405555398230690423403128912960377833392602912333872274807769471168142258473191637183833071870100205295696087851837900004282480893667674290013404043498190229416150725810266931929207917523825441299290807502252771481886955368089085532514580741425473806445044723417156828605640387963906111827635864034406328828639280905225932221215518055463146726456101420402124941623092906255552486666692646503605519119400136561993660515599867874793481050563616486036096237279196684866286741742621807344513861560749871760911191316591130570025375387189850755630069543160125328654590242056232803129724777406204014789843600003056323904561345383089925260234331665117463302032449494119632970227313973333047833041550950979494086816422394240176703887865248245073113856647150195090316899331845555681754518743921470722142543224135581769785579003664893940364835792277449315559728387851467749105550648609487445920953363251725763753821596359567984550084553474419270730443236039326423028254699624234447137190106865310440308171265128555651487412109532640307486896643285825830763401613799587029512460084680266738953461356059546246556598020472951025692238923909413833954915473635507921981366764124119666812470295176386023038118504556069897434948266715995902706815438700885607486551789173812756537082173201340731993292877901108725324039855515923245166494663856700920530849148158214604202128152046351923911285014137519825606787595798293232472682413771979938352042461467742634319977377597045306852947246825845744591501659434283833005708897298802211212135891530056129876483900024140469809074656989526940524495273131446275093103636525452865486393221357053196412687783551231248021805883222401091116543018447026008178606443650979014727529134988413380786652265437751620796791195804003282546109117003300085477384057336231001617443674669441913339679609792387130766864162686422606256326491904676602373533673101407616617947857302534684673052773526149442230073266363325161171657604033219570259785697672669920170710439008444184638983283247656981847298855503737117802012233993041166394141186833068503706115063660433095059952916305456235060155744686171458485552175311200224547145356472266167304918984512746826550733432265470381908661284312505854098872183191876621856545651362877587420489873910985565483768361085446424498874194455583066711294091045438225211387949946825385784486444051692955819318723454552296850801067166899912605957232530970404398992904127086712536883498538351165916407798453594921873949811881653872487519997158610098974827324213137349049818162208001407343473905212485170282142333196359737753522032531481892779562173717378074685571034588616120642151815624603958523689627531320275774899464752346262452705571889602738238839856330067055652004395840310157928530622588287193216859441939263013483304454538103531127114935251240470134987764921794696492635130601584726175913884558774164237281701369352493912819997793898480333034192018085405450410875750577154900230717308478247282310029001625454344376433114880778381202284554718477699617684209690978303286051759757118242553586261585079875921739952387543395975058204800277444519729058819698559204093684157252178220922830048683787574094374926582280991650974640837688882723568201392733013958131590668810615197345959034462090287649663009391102424385477872850770241080025889735414604825269684103847060979442346366087640260337681737444787670728595620454070078047887117766088229399287238859092567477407692182932868447189209229250392918747038886065659186678079234563345564084901942894201552707989559295796994253955871654210497967907412020696245566509453814509439458533650428367414231818013755227842889117388746590356089382901341602731577839803549966344682883942768014108985151698082724822414645473202394632127717348527399559463551761660522818093422015038459214805415240056405736770189482773647716004991595267195467221525456244056094976441513629835480718350177539158435411605236876380789674305714142877206499787970626003469445008025990154921756760712741065267264818408436421318226235606015158413591773162648109279507836023167864376226079152068786489839374309108667924097758695955328520934796505485942733506597707178259820912870212589274901919676939505276256727369489738127097630941190017604474680774602827251307962352396439431576438346926695273353245484977059061840579042236925212804779974917177905181632038050064820245375832756289163817962875061911277665009910881104646061979015848628007440157168011917783644817419720290088539835681928409434805463233015657900629178925115858340546771578030570851872376426975958948654958032511634889255856488753096305067688566300736895510400577278480493289850072488471767545251103057600319421718385864817484116964099404347372412870772090129375979960009233906544735574117274535539727934346517989736313360038205760655033934114176746524201889742507990967179584895355209469103587792768523192033540752072859301420394293483233534797360823454203699957012513161037093885724624706342356513364173589119987444358479657558488368519473912798489664296912199841124587673884963377703225114752353912537756559969251996497203144675898212295751064841530292861214230291974725082325749921387454193348731249021293889777878949359345856263285453524920859006567199323887918463905557894424471250958728492675243801331755902589768772731960670889906124667324391977137063710182506385728349819704961923531507720540838669657533197953318009643029502810892327228422281618966193910207908062303600204342785914981560103260734396391577046338396337695234597492228728648384369363720044481135082467804435216904253161197672166480339641533929756863113028477787705972002679956019422500923928205470084419323148043250425418891961220044283665463311039828715716850675217017391385522549174321704178783431121507749141851646985231098471608900050724837725610657362878984897137474389758674280332473565763322607987019822378314417673964059007703985172507539105233944330774529625045838255786557857657872480698448227349301340866050465943448698021191478920369927895061524671589677447369990148980374531013565936281265119013040192122726234194486618647037545341643705556598370252252955583151411476525977693030509405521336121762457342288337059570623147559643611658080012961740223008177871865296979032633391217851733989730989605222156599390483809666514053578756129704783310735038788266107970921827088744417823851681823292440623155192095428786199809897132521457469706683574828261632281603405611136216798525538092783346472907094874842956710228938080486130488626695420064220770812609276744053751455267523460179683564216332693779202717643312186769069696781296782274380488199091901699776473664533839773774907997096717821859216033637975831386577501938752660655965116691535094387121885731031637950259276436991789880758742536574419046761799059330843480644942209254583407013097664543417932505903207500444859354557907658238540755730916696548979175369164844415669234648070622351119836347996123142562974029372446640199006078526766894464302313710660000474817536805507844896829981767806915917861919628802996634673695644864357983891726533784168406363793375215955425971370939614194826530519263329387465006475953011289908620413324801016980094094481674938982311774262959384446591197583925730763486381539235354738337002222503424692471935153587364526554462457923757748498648419908515194427391507083659183328975430241887200036642088318560799835154040617755874392312111080847889720311008718499963428635116208999398082254527383537369159439952650638401450818933555061334844434918208625952891139833229589748481638336189025531271056157498776275121171025327384519394594596390132059271930548495982771790526456602813426345236734655942959612390262545558843635917586045635369168117117362639519309272288941311585381076210191875454406662760631941731332166976360825116064511943206618628447615910100873750279909147406756498100531885035302886079434582948038772887470903284949159243314218857848936800105702537100857875719625223521526244358308184759140443999149924079727058737722204974509403721734591930547048129899071611876359062604999031454084178683752866221386008441301209684389135703187144029698329597003714256221176950147912038690851378548801724256807360752190201968980134375191000976149916099263148939490903127810986135885118591887827296444508745769891170905851565298624494524466971022187327120842818439451792374779523042456047513839993942208643069295827504650837995781957846582413822873648795266006449405542108262341645220063907226904648656705727378156046100138832528735260121129047758127904873490822163374314601985400215268841640763174669457047328286291465138995396548089892954661905199909503114181183201017169240827228174897912550289584907014616218679457060667823303576734087231830142335270838571609965345850194326959429135699225450238044228559243241014268320946684775605966792322109302523797468902689116898570646059761558528130608697257186606385642198867426665902807229825841142367384509277055802139783606917047491966263678127530051608348769336230485778493227448328224387043290261027553395994502167484122879913805251797278855822332974984641205097924088723135226250066826579728631209223410571757589017636136827661333845618953257031830813277081287173565634580839164826185462909980422358017797931255265865826601600236275330333996791777624224522722613813463661697020005749246605388091036642645118262310076327314503261741418302066462011535587238932234610355313787342305200593645146416886683107713740252481730606758772915242266939619245677510268858038823434694671650853872028137116773577944535133730104727991519788653186953662207051422589443926401809985210812562811349689947886955101327457683077759832347196636314964928617284088314270239262553991907337424038862677588028118876895392094698081196278958281571013424340071278207696170891659421244214027496948837537568211903735438959116993684352468804564374614409935065479547196781051636186628259054723626024689020450377413485367300564262625761513422659260915123597285925617859931423655979611560585648742539157953184324505106835387432042688584189168178202242871785758766462082685313661194503452117204451343384354435840959494202400923210038145637233917129863226456544106848266414349938886852473815667163857328000128540896391571171826607332924669858088008739976605029681948801232558473372152768340842546247949334366335506036368949283612528721637485190250439245851626556369430472896410489110280033459133646552348893568367870748898329972385315946800844985948746856655259228590413525925455883746441100490155639921987050297217567238937382938421354114262338052516719016717042710959669256930163917344289834791771238979124371421594593377544584278128317935330226048738036770957405263159413745492513968867533301259548020257232496324044229830891801372522916551728594850490699280240318590160658284940091007739950829101306436722393642620287294592638767793557115769383119403089960170278093418268996336062843291917106108846000721027887882025072307830738831822271897657026971718285180224897605821732014165868969343644330851219859426801152241944950347451683948901670591311799930719159136937986920072580320313752207533995876669590702295053726596227757267208451006964754212325529687511979241820536376531167545025290567652712477327286438931400135733326573534973951439739817469311844364812642456238614751624185173428718757256781172771472303612110942097954813854496271239099565507805034581990189621902853024731829052185450892734259825146084898311514130647645736100646557230984243468233240103151057660331054920032422204981791123131345228648167040477718510244765360508746071328405382226499142992707460234375828725760840084575176104755414020583585111547675575192213349827758826867344528541145427167173654581437881137426632170020252500049682978849079183971658115184788561473680875993766792170746230772916476102909211398755327739144825065154596502162882817034419458338569039646712492659199571031779448347890047753097250343883435894692281713439951711807630944572894256200462071149910283914737562534833964399734358939153656675923460162859929318578591454945572075791342359630325012027786521573652898490157116583795448874716316612164815903461036857468294520613369291329398122569408520648826961965036026431836897262363067301148203727511879095019120369947527651995658533587557716201523011190965768345898054693247541328214820655430798855230100148813995587462989289255642571622389052410690201474342543224099152124818581182768861991011527947537316055035520809049258487834893449478104327694654210491314092641064041095536335567223981525243743926616358136737936369680287341707452494288577196999438207294742928317824459729414437869159565874879971942209918185341431817184142197398008876578702215738048292707856561927338790681294416305993886789282785152519415088451468192318888803309674444563062246197289669151253072223937194570449053952830515343080079921739432184594596485020629816008259263847627825236092164620562913809743331796672368071039571647241519052727904707492261747296759130321623613992054402160969019896772372309283762270615105137043923265665989853315949458019142485018597583465217638935390073981286450056761902611272923750646508493679776624887986672631869716886770333697617105745593217531844781202033297573285797950078797260230868498314505459942763694737157091939111508038395566146818083956508142507135510741224126089002272253425550039164230726834220789885065312845117861951179086393808281850344760907795669205164859037533817938814435502820635042303133554223368428141131529727778631962073817076028943856052808291520433293487309109880391331866684137879298351561102909210613427044678556895771985556401556862138007204907226939874705924484035461930410816339259467846313984441535505852814516165023783180737693326909266287643140383469734563457337634003641277386294407522210900207781068977848994259711128924298471465461599304793163105885132266151616044383753309413873907452010996154745106856695021336548294314071204630202191540776409453506343765084726567070867326431384994117373724553301391827038651595637351426450174509701725986626099356211721422887749359831767571642614155109914796639209395157870022669561402009494472310618847790952636797644459178505125122386612308000986581034084855495610680729896455935456812721698345712270671647778488288315639205768872063091591204723778700081474554078649836501369972310970171613695912376527959514679520919076539376564355055901239858888811358566914966592019116074067423014769694164418876755477543681272132763310559274429521291522360591514849665747541198520501539052828597522493466107348053235669323882556149243852879353999565949162936417145338917391740743219392108361601032618107806026102684594869595938788211471781695343421347643633971745321605305380081398517627555322707714789059534905755443277170575390905163798035736742847980220895044139277235011485300491253823429097870335507614834029466014938084480475825961184071986265747279995337346976891416016943048392535266390530061611354944231376382186284726278186388122622296682803797215423559996607730947664227915256051984547325719701013083128068422132416008032543031002634721712880135754209203163178595296055302594329167789461980061327390045347814818287251837658587244157443681093865255939890798048019465319512283636882853178025806556012991290695447779473512378793685679768992759901939080073026801816585993447626334146499256004816048447920818504269151962283443094924799815813977693905279654433123570806492336105533374862921901432780047043645679185719468907608600955856826489644925612454603377081375761436448689360794893357191146340716676202449512702721370128119211105715370767891755451669891982619700743079422453799286903548427537237611279062556679420856853842550839910693194070608137448327764595771447944713465904608566707015580022058067763158529145263374526929351690939597266932820520875894978302107878375781225114162088970467047631858764322653525420731467162138505996683960980558691939126647916053393983251385949803139727531891553527741444971990056044810287567183986794170065010391422467136713706388899025979345475801956627291658734499626944599684766158427102766353488746599366569349655989985439190955533256284723625862454298543739484991194627380994888225019274972668859085950417816035588553005008776610012672296475687046115861452477588670219882297753771069756113761543826072741316254293042819362064329853583263653230481912019615652433600767680922247601136214399207095375050895910262330270794078221148630670417381639602944640551338641217744403827274481042449409333771901764272799839463280386407552478090987406192187684460952066718359991447410254494835641679094533371981928392555886417359246243732106925004248186671618554881900543766618224272170793245930625560876205427159719914298038651791015608276533316358348885312539730174371987480785988382038615404140241334632799363481675974441060975815799615342397566394007158265958268971994675753301752384434840886678924257658182558976217283844769576150894652005905739758892002871522236548957106850313750686873207139126105066798859091167807539439555501510491085630211485769117751715583201884064256579829672856391696207027595308743691067722006370316589496358820094286134903654136370908179757242738168434113864910069698577755958080646935342372487142898857599625875394198660485735359207250348810677385853470993975024472752731333003488986849148993763152944416305124786660448937749274109764985554089289059373944474933961336208471404261925936052117203263102406265332954629101635186519282454365861301208427050300464706975675525332343075290287060457702199785393684886412018092866558753069116093349295351706906932971581227069711469993381175085534956309411499767526799486609621467877737073696864429764802425953805883122915063224991213655170102531204806441847116341637297669251683041923393662519101586060192155103253349213967654875960143142920430180706644303297221382172201593122983115921054368756331270594282257312662324288095214109716631985503692596546722186680077200148434712965901106605814673243428888155606338696933283045149807506400929619555818230506869821450429869783175047095742372058922792637370171847511000908430901045845354667999823840332280041418162380838798263430494431932170246356733420510750137566881833169981696922197573236657394491274534642792088642689491639628076543829242984937144554413137233762811165888791603272419618648119368154038130950177183925011267433550699019660824651932037194432195895449800986934459762551226035493828089495127143669287582625978492230922023319021220489525956890259567874112209401621622272247882480807638409957722574665562096051004050170414818763815058464647440185289541616710094926832580780661766299239579693134283585462820005743553361695173106299785412869975425833207432824071416547869275491358603884373419338166606980589543019204176285784010743906786789706097719216639525290600850987173202081801309441366402461258437371997801082331048133623945109289627788793198710221829582085466270498078339398438833284040070041588786168801023856707000541370409869884639041393452680025161602661864099802969957257650952616188931673533592808958193514274680463259226703750780011321527387668462334307667892994031245126144185713002650238650691254205757487657210129580071973813656280189252075159002980758918673391998784833015511341410460962809036550242532225703716379068474971025923305898534632088642774522798854531065700616275398969311068461950754383291020634032112869237320055384451539069623023908154347738617332295931158624455297206532488365493935164593858846339945668528800035320270309192890873342466053901300266210690756829136583647259839312923745795513083030488106459827680282580815234212256416830317548027483029667046463699743556537530949905536580573487150965010997288239504676095442343174257395542234298906645203383821996337387381758097620455050198342886414720470166803035434675816206477019064804484509311298254632578913007572324564162110602211025719041451855511963209187349853722818837534752645922723699610677149873803308575524881353382158753923947376474855964558988064929931810686165817591353571036025372301918373151906450641818646719744363679954502816606275173206660578347138936268528237594859235621110153605342156111523938140867443528982761565860495355137183772650346168434590607872258517212927763244853395943703336301244315450563903321717150738341022411175703782724542608799878926841639017510012902118418248219596885527693386768197146613608525880909020724156167102824332613570381836647019155133555993616284498403463664129810968530675110023037914924729095533251900270484938258546512218088199501836015427534354921949191902672677222584367019928155733125535520277020092318448750677993708068744672739675042122217037833931261778593643358509825633447171305618247205785099696895140207075295468496150650831592679173754558835351160817368074896173167388240903641297252237259256041319279521502002908556877905291143473454795366521628214923155390854048931705767770276057143694508666077987076369080522989417331752044088594387734482015778164114316048603355511317025269781474120361685037713583836545467656732059310184464687922983485377009001166847054381508547203411561456952031296600973907805870690486695294297425427859763821287934568458318333325831585760793157859305156283646877930296152283472267068799050963054740775590162115329296256045738130226990494537546785604435006769019578575035735179139590446623189705373692700933925756419094542846633819660419985342361690972950213827788896415440179906164355625865256657663442161928335628914867631301193970098175422218427683260977943269118482197933072294746560326841214111394781494822947379376464066546112619458390771176153693947122213436158341131193373230707631622694185580589260191975315460726372695851360933784084421650786372213189422885579318618108556654247284569081561675551632915134404983715840869555427396457901490856436604938128357797463168018448168049978569000628719158399179807084640735690920551787142160854086625403626199745566947135619166650540288149777150277723068250084157280953826744507497521680735447412574162465572092318325720230447997260208659847902615236959768297903757878210880269017998011775568098201921682134218355219608983206064151598451957521914714863660856225848668054246777319632302280556107643314096144373787702893048328789870246234676860231116833871491554367036485481738256876427716717680395565058804830233768996672869548912660472431274268025153734666504786291595499643291262608906732105625026707176117169771430876938900996417925061977870610832051222466164569896833000747559969287377205687126837372164361159732396141226479801677927582576933114101647758387179423140449756127255916770285971583421598220059040363811059297263240554050482777709459256779604008656609148935416678436136189849211840442326846226690493710558920824296536634871541850106675119131582914012352410083356775329075945824562507199580684318230234503409152170674672722997389551875529664759767809242643617685955470471815830181652133739569441507291960290915864850427351326473265350438897903676349517785413979470544210407359054980326084647010932427349150958909979360438415000765542703631632719128872216599990857540695228991605024910526332227113750309943453961879866864534137263042788128403278674456196904674136057516929417449081845555078918749543940078054183191552311796642049839108557523921178298322592727759895885571182944951085336575942294170449333955249354081496863861832374816362390774541920537404035997067569050017787512420599644779856937491911180961686297536992481495190156488310720421269216039836022505876992644388457499427106332186035146460887670664022755016694470400493981333213877798749747666893274328520338336451783380663518131322804977128025197631684521833374680495649012992325065573577716124936528143316208069735685996007102136353759057139358663578624885032193022175662013701793238911911395626682638516001478816275194387856999587199951881169768918816852179646023482992105233554879979217160295931196596505619462306750376013845608350684016032239012482623417732394412559357953599936709865524873997920144582218427519331503829224844018682862701265315937664310239849512931174808031155220172672984768678955123215796769648409953460258032283474333163865030762573011246480290772153834357422695778055061633910842237572740016255045466896883210725497125841048616100145112045953320356624768878433351258512531525552781665657664122724803506665541836785027941598624526102915428796908231620480051714448251446253954012049105849426738538177400106975474839185676744360199965136226295681666736905416695818152073903354239693807152991602288383272006161919674921667040848245963125365761094267800243042489002886254604463538099171118998992063649489681800756918416171497480130151230982492358060378931705019847353165039830132069109379821774382723662440680315726259934218996249537819323225121649515984523829177594620281222686081623636103245029735212812890941360427260894714292001341317740443604078546676850771998652763337267560101763685878097554389839345585478429382368323619697703307936456979810196127929720807631340403154627582009939956918435869873226302081420662250920555343049282020774759448220329212876392459793614435462800620631895996724720356892730227999208972846518867832891924598236056879636377455325934610146486712952598789208669476284622611372647435637539200288856074047745164162855460948560262892913166610031419393218208582681287854622544692055848317680092331891972887563443736822443311592364401872306424805818971183371837361995080183009437563023412627263376064323041034805383102044936385705004037033526273116248470181808912968158735578288562532765735372572803432656633567995419315101504293795894416898160064059443724570137433838759204432981976742286516016817046940510619466391699910041264026754464790803103556203577021606346849051443225233067151308256062347079300754071467357225384890815453807463806474922086048539662476470655413725117996987079655384534640218792803210102017953932612207300438866696224386839734220746109070051283685634292504318982552253295522219352346921777976380616761050534648945077990495088650553844340642718706757846431983497872911142896232795988208044948392817685269557079558345975498271998590389430214222241974584693396518139313717136828788496549394893229097356171084590263469397435860294871539534298796800371852283256325710220421760341180379040815592202469979624082610442975451674259238450350462149045641659045323866608711474609313591972954692201078392853927451746181744177651744066873342089039229696355552510908281799293028736254011437701230204339766442073079502844692076777782944104589541967809610892702414799590498947486839609488745336325275893859295651997600245246461686554692685036764355675051044113618049927898870423585552476586531490625213147359188619513297843247567275328085108437059553200268934168891917387467750852454081282895646544014176817006477790295293262468230267501265543733829057630864890720084050526641695788784185895264224795647080617255649722550537063498073278739437761057397568931438821828100406091315744997604547410412801147518968332909640420362691469097267884721644387579587989442153915455463836468579580524126774113029234545802205799813792207865810514732367988716973727473289429461643633695752582493408486774509194715400510888113121179944581883863786593183015148815869459450404529659860146862188151288126237148951975033530312008021310804767795461104162193610808647588525780251463370218866872195370206641349333575248829357121344861539770048513182661171646043286143109767647348144039324020534562223344579616791449529374889849159005903722222386947038203369504926865045017524549930510335657079658100676016646653517492724250207787465120699841790301884263297219674974662023831045892741407704600091150652521440437517261751563656132474876619883610126859211804542117478479045381314410458208088614794590762173377282184448065367046385466390915256481801212225168846007055502020561088600913942723585946780552589309979663941812852000542819409974750075413462844629325389528036461929218365603846078885014504798762194271640500340501797945650390567511688170214899910741006003639698094433092665646671641196172529396750750209803652933117251357496253471297622191502688279750621228400029744636392068872782094821324257160977399212703525234610150729278808243109000450320923283356205818503298482261597836053417342941080517892284178463220074454801478899461499651689973095541206909812271844603247410853460860514113049725808234305545524087206877277684750253781975615249179520194874583051486874530127150402015385170029776405227911598377871991128286427973486565481517440131410088822886949088746769587221112985680371647954249436681384875015019579827758618495133788028264652389409071842926822727170191376036753682485680363549098806835875735605126002326567734843436810500777168036080655710894063525170174476898811552726148025938655258962177462181757430889562050751693188163329470560904163154945453056347320839015029507664817267220290389782333510692590699135357335788469562424685579828928664988213207705404495688289496727370883745800197159910073660513132205319549458835024436127121845066513175088723429177698334868445533865792308526690048034231142178469861127702749822083525252768652752539891292600493539836309888689392039184978244494783670419310717076016326498809862307740851533794098213301334471098637412534050163492884465986836940549734343384823500496713938457140531221375365998165799113895871077796557452987901710991571481939351093866049407509658140018323567031873694300758901552267092070897828768745757430985857325961512018212430808405243517186671397495130812346380871027352076002486733093021304533836212007736253188572629756975210043053335149474479617882435101938629622728026296609976885064490015807920359916421686273877677865878417365559867116775590031162816169509336704263709012002319367919345551519137941362009084074124143941075877128821938837088400398203157834064550713106087334648494660492871567056931648631632426109250704168468895488382987659036543865770200930216148207236498163059177159094355714881219918903628788476344120006931421772021848896256461342797166978081428107150333047954742152077566570650165001000211798553177110971133630889252033949525890665491987510588423659636883512774902762500014141261181691765519738167085913864378340965980995314716739871807973880405280185803675845881910148122347032941336245242071927826708087562666539060796631370163060014979259023911715379781991035738263193371442947826801495977641363297287719884051527110524881348155016790932609750979914731903834345939633270903276011433853306702231130091782474089732388359406473398247848573427435288729092909939251512495330332041269325961818534202290747373620939569661177269468681676479802209417776020338094763256927826022872805162336283155073190597766886114416884113033236112777095570244439825521206532371120152477691540592594362264372655122513394440402933213454771367405637871140077432984492663407939638695082039140456331685473911491936522610758349629328468702429898653400484249970855196603840949509145083908820021746063767791486457135696550017285179513733955783360162439678744754937056326866943284058008364961388038748631187582707034912247478148950810143573783542478422946058117026583435306967030830213901412854206618882612831160170413274190486614928800621788490916730908177371165353285608875758190888089260162372515259223637755112619769872365125932060492636636889013405477165188730926491950381151094390888489206327725174399641368467802972939717915606238514014979795517855985821435354666941048065477374710515059458027076885265171509633682343350084550380969624423541829721790898896115622265479985224924459719187339470021433675953014614356099068601761162423667180978515636795796991457936060951311955798493744309798324495659055875518532281723237586560210859226444014221636749749158285743865355059368372555984993985450834405066417809727787574583579537159907363618047753981736648941480863997746482161138694449194635512497649537937624451448242902020100216279151733490343705585890896981802414181507532628917765100661278181161574233973981427272457616945321234533775083890570277739931800471865748966950912681311011493902131105288615242843275900435182645023523273364417762346268574747360568218778631051647611854570375304875525065046509239909208868696233622282602148808003476061017611018084242266094968489650610456362876275205582731540571711740161483683719602913275805129613452266160415710390054860665775525935482766266147188851753335770404586956626226273984915257534623697866601274831209398112493574969469199237524899838566313381526135178460416138322785709666939830473744543708333516350497280243849907452138552084427010277827070281633942127681214325899326696458018142501723697395896649252861370273174166097907992611628479102937113701940613612281615049820883975003418810311271319840244851634422412293621715568093754918808322388651065638543748473710421264545505374226580678796165465681125385193342575163302373852112958744196448160328727215442244371575505165547123800467715613187937874883917897319232894776869639280327697707507503151357077995852669396651753436149759249469405064278498735465362940457585384390641174366495537530766395587886589994612633204645899573313795344327426328590451220181904432505797183591749573147645917024809306949069584190394929289040310445937628192946663599803383433598616883892144375225122991501986348424824475225893077252140328736655164281123578090770839824083526630505346522324298549019507688744016365567613697379925315319316621605736162572996240255570688138925305197880960791922583101552070184674511631552743210162963646426204627102296255458661854237475955354033585209784570679105840375435150277652910027936310791968521400086458219240144561789273713361887046969250228572341285891434534582452444850584731059858383909481323587139341755545175493194035703348432090073340574001583488598538412997429535869458826653627493344412187659485506528469612532034215237058937172351802884660355544488108091055825751876220425043573242721747400963821849379497107184737074695830254406299760992118393532152274970330099018270824387090309142753740962671509390085709691367198724284956417642276312514532607425699618681458558392176533172979527802277077836247177212239457324098057164488146916312742492741546701901338860324577239386150059658173730120351291640360894602729009408344816203563079219291290720924611983304280244396766914768141471299984504058841012489287716009156311826469179269764061225174838757568142674303003718360537153209838260356676352798176722255611091111729835604024822377935887556941502309225769796356452013557117590509038010263687308176303347046945374409399328850005876104690600848722096109311046099628499353985271361755886332219015869391352801449360669025830387197364801930602631644294959454708413018827753780250524851228157764831453284213386313690473668105247304140456567646472680078705094798805101594217734828333303142251202692545109867340891357161700034069040615729336632018722471575723003205168748347069684925515525430897128393117684248833885355267508357374035568283852754018895907522614609497512783966822746264118735996492088616691495043241989748235287369906146400977792759632751737457651224643254291331566857079055609608615100980112234093190774222632157310947795382511447137482924515901224616692356114131224738929088837119604232468655849574489104908201733295346758474945413176236039180872363095848000029642186086884546207731731038390771263750528371548765193821809922176878620031696165743156401142079024857338048251795368584848192963198665262311820416375705287692839088408127617744337127069600164682864895070148390635657299291195686283631442774046487666218327592802391062719819841476893248779066948644614178858623667110611277146778596714449222096782315384878649475088253267696224955803799555802863881521765087873196015797905255395199888030076102536253914338185762867317886384335137337520842494127504889547665091867362718440192912145213920997257440019382291343320176468302094888043795652723150038011249932366809273754810955362149539852326851096205799889873197729471242212004782103684276633855684069254003170642579652363442058846713821003406825357863628477245248481403063291018536979740356836684985832131748360822576670172439040814593415928983696405626894968216652140415472541796136818637906361098972245636056808076847224378997370797547149358051816314150555903034905933173774888897962663474641716976238792721781013930993099522986649481998090749924640874964325122258904773064839970249360612510735160184409664139459350518332442819182505615038939009932083226272327790172567878925956847472276414338360120005862145157336099216482099134834935926704549995953044941897396541412295982717665978766040835717832438105655713225108874038590027968308918551723105872203214695264690223093696062612018783400358448107022865452288452744549346295567057982742871212094843487988188196643196572812247431254483746249548284604147160704300996565651921896722756913205742392638354859305285854783939078687764229030493856885369365816278543033726041967884438507969874323168650443422023248785475754169886115907590333644962816262887958348025604565125768799077270064965758510097739568981740634599487575611327312298160915946932080285612648331750546455779352548510737371361193940744600673967344661636383910744979090145624202129494892250491041568803167890317031793366172277211086665573492516980894494035170541135629652000825799508592013782078609235689148960322854571460974323384977420160561062595137839418292432540260875628305988432295482464281092749823052809477214476793105201258820089220056691024680014738050942775876495324117675709480101055246692636962364630674095642664163162325628255538653006630752484278879288349627060375185947746718411671249015083776882255943371665325540214859362485821098204131107722443925995070338167383484190661520637440523826130402845581125290354210688132671167506650465810140459260775981541144279334192627639564603547200704042401077541406897667128373210783681772924238755159969611269175271620237123469678244545783679573154657877399512719585019378975381299852845360361291196874386629408434839449486620998163758166238487857295842919399033395761245511017045182308649326738608661538299305681857065110616652781643345224906270944255652350086363988286792614668691893345013283925139049372350813920609151524478939182178380770785839394142516524991141535514430894145958838906229748601215337920000641364166447352124408120453609628472803694563351143721195978823178101487868027516566554153658844243418649674526790234680534516875951325595469389733970754941141386861126095903652931797029315838299905748549909693908989483437705338873357229054399089716453054546488345061061192164289539012565568872964662388438773044823346613635245104891765872291857837209265481050089524355947799741095227179776567671608107260412489483743629342801104096036504323133008534932774573526648285397678395402986686039579472240237912383868711166031845586233359785333165427077179992349283037798504900057455789959486363525806318204625255707491527068070378131605421359826064179062224930096379446934426106482072365288653097810700973533698118908430750570244012802376566537422152324769535769394887001872162510756472886782167791416171318671068695696431874443454086080487488847658307716211962808055680563627255262960333415799096680022633702223055571876153442254851863164858240972427179685866668608272481268453110042326285819992950620615754461182281731954854458541419806101275998559384121371106474327001619422484739478811763252697876243788966792557224069189257511802458364518492476914103333979511310908592980545318705488162098626469820722259600370530871612288588756650725577386037198312752835492613995084309823360544919063287692233405557382405694491742193147962066113489696656662434268190225034936395424259360438525375824422742474757804529185060645161706439116598329512577228378317236133979888498489197074985147900682497527522535725582530823906959217375683980713463710231028812406623682997638275577356490694867726739967764615674743547872247647405299623545142641834638449800484309078349628251840028460587979330633334119769871952275371772725075249769273576718238765163022797372708748336979357231909742716233601624590513957069136827962439574116160405483488058785575943024829021021614584748004646454035106001689012681138292173675654477631673513911153958866065299337966182417526086800263560909892818563038852897048115438042930855782314322717764713117874268144303213637640808606149654184140755836358162152777152926766397151685922913396794917184113547478508287586486226763665086041993965529194565280076843873494513277814437457995634084703960986448903368965013974519007335411682207856206663552498041308976658584580456010037279035316044409225897106503917829183589671687489791590699019275674440158806677275821215494122674400857472534084660770100017822507787166118179121012643792437404801097940080904809428899603744686651108571938251234654631916548075491939143708164017437248610467428480420590409961425988064945615397286466432848140046079135815651105085507056179343596492679338712933036316468885156936499242235580000019737267078145472299221447736807532898919581139202823172024814076872785643292624366333260121370326318930711571924538960925493912442424169666052542682291158320427150516278491297923609283923851341702190392836312358342665348463061090248979618887530748667948408979131030349263641221268488523943322692356712929412166143384960508110245584618812764400907842604895489700703892663878392671935062470697900839655978260471583524977668455522550962030304627633009821947595784719433218742726758508274730946927543106460431169468321056553051951515819363401949366479063087997294555170390307951133426135610959703397521233042138693455024732046717406444470288044231759380994954431116372299474139081626363242096061234048242674986701160647017028837976504673173973467931135137222294784503036314552993036997981773440833599030920322070804870430500652573676364933343834646839067658923566273851418246821991515357946451181448610843011807896625097737690831515888427863757339899362082093333752445599028040632891328886361123516777344598259928050853345352483850762848107446473285203879652481475810797940808362820796847411072926201408441782336032052908515911657105643233441170686636671972008809607274916918522274761744046938343301502313259221091848807271430753312491738036797848695994474521247657852208863393018414726371379632091169333660773316435045355802178394368675691968724306585143972844307947736639957316238447002936839160616539214776244783811210392843949378680923392341015735989063050659841942606930452878509266894320485108847327778944174646385565176410681299027009758507613082112480276332542806843362988365381989209483021891121163608155998325028677133750337496540682492379088067688788978924598925941249893704975979597433528548659343008895990447037917644377108624696978583065389432831347717242140769640724119623073733542918253634958422226852568871160155274269060761900179333460997363426930338764367885178881048690854706692337756821548006120098003076284023255836063570237099001475611031777435781655846154829119472801781319191038382520668355548265244899964131026726015314825614768123773089606836133484419674327750047370357750509451253478025638023334075159016061232356446453830498904858224721380394661094853120328026220347558298527122789355685166107430446564839702269099695309636155847771917191410534105844953436773914455723304731897535790700864061682292757102648210595529243393698262043659451204294819608440419567828049288730078701918019389712864213549724451901984779342577580652138816331648942708599998800781291479628147504352407449220838726065827519367839291250251790777352250831182602519737550023314262695248517313326426123015664194819001070010794610083212768121783570372036195297180557566087565750109046518714428236099602958041343375932177133501445705147780005801001423540684231382668593954161417814742603492273125226676427820600139283862781080572583444303921092841535615255972490627997186239461075112994920860286175089982070806521191866148750468831680303125064794686543447993503823721416293777122752133109625394023991761698138939178604866806923058619823546963771203009883655660074397626700164620846705312118840507860467939433308487611314118980274682919218976672907337699111528649359483806749218266598620228771812138270755440369890568273319227141809515002616214734880711171197200876635522407961130819518857036354831462022603059045138101205161889067236693525494386108493164615059299355658406429393455004344670699620636073103264194571411205141728172714283177760383568055480547829594205350163578155264429156236562316083213451073474949318168503630410182695591861504482912184330316145428407768260734215308558450520520030213236667245560330487256455673927887236605504198261472606525063061025405742912841639459187038748724605816761390206799289868457489862532459251731639172860836246085798190978046311866873722354523754734579032549675101554508627223301035026848376609598262804527044681451582018436291049885675875336151437446161175940160191015455274564188727881438593709743555477110917207037375541190157987788223096416564065406006470344439495380791224791534531646663500921744298234736570927532620800513399295063853841574287524836546415428574732559992414223863139690792714885989073021880238491355011032050493293883670669071390288372173231736841802868314250741171020207758408059954002602874502616665104330939353521213148880887392738102235825176351971151284023717139532613129696130256090832462676999436623159134302984184138829359566618685923038274131125809467285687676521813610432671832589873551675504308331234137366982160182935296626455788247957827588409272081277379337345383497646008871031345896787940994581013690483269108435386618625514378354784130282158383365064968464241555753282620780790759043884150479638183483272945445970057173748260669044325622320816520946431856534809685252088431281635623327067354321467805462629576573049054047381735852050100461444326342465872406220963414602301157269092158831421672120972095246533010843694917146437088338763684595601821027727372405583457057457862753638897631047040630956162487252943000034691375552703112840688218576799796491767307680669920037401366107670380532842321470729430456282736780291470429397382446164897900682667647019941376437063715201281569535410942037254493726120281524587478189942348322475137988799313842475827447804499847743053670198334552887602043007490586097601195171173951912480531416784234774289881682724319819162061189182898849706207277226535370824183481040755996678478840665101702539517528056326962377023035861744737898550100691368664482356059532469689386925612948668737065776949836306736105510293978225111678364088562842823045728781124390526243625508774991226620663228808783789906501855362918357337602835422322581188571692461010368855514452167430724063423031756109118235202172391300194211177367387021067313225705373269085271477827568869789046808316749869553396294024261347068729984727861768022979633310191499721139468630403128920695074225647197704276622418067238634139784641698041367369558450134970425984589177409314500107640399215119996923483964231904731241364265561959805391690816590873091076034648351424992891560249291988880491648835207929193234856780293790207359630205532943903316375402576771534998222919620240091266625697283432000693340520958556598843700018033448913749679014285735914063227096498647712618575907815921025717136526441221884890988601723051322882445085634249608138467037933290619784443835633060395378304454367814369561973221260099575242088958658345615163296409070189027276459375033994426945341193225863153391640576904972619540415298236846358736336322703770210079465255626343556021262996026157106280905149967626054681990591948847074688930595080054177334621230457101542411059535307683499098566253901579546863653570267960936147822253608918283396143844850159078488057642178788036003730577562618262896127618268897627257801663183768193497207462127719275345530576267468200938336463471517491031866812605980422877789099360985925787159075170477990944328796261752685067138033174255080959246821747377859546266839172442130141808264027043269497755024173454649744216224364914382611837390516328359732626501003242096042015699184435449746471507997688228521086087793915359794444831243901869266714985677854905826594135470424133283284122914495252616841607578929112882646847947250626889390207233919190534046456597276647434901040748546836803884285756263692542526691036064600152240082433835346926085078516506212387198738392737544872721346959181676848048334382223570777258761438415023412008811207655159081304616423217117430747114265866391963107766780203314336469382805422354544857609354611532832181139803542685066525382047138630438721967541216956637230377569210553827574175227536643249846332930335197819396891958808083628989952513135053683107517090306096275388190783153333394485561734989179356204069571234134086221352597745634703164144225337214587593361432105181853363940639639683502520245972310884406434035632900253905071006629975597226439892573983740137653594606611689459974607304688059376050284153121069311732169539678575372260783636655315315947458556954068825926588068942111617904383989765839367448697834979905706146725406666632088679749416129658862069345350478931266827394277075556635367381231418928662649870741472271094026065885002824791151164800481040148443979751048039901191573689931470016680685748461981980926343587458042060194971466667943995190000003526533674051907129755267072178599023851774372777710048006886588534695377146629570247942880801540494538276912103736155288067270584493469227743247274057699927398622469419259537392558297422902261359485773818897840658201062402853643969792724222540663733906383042331417529506295454654807456419700986010770339882055791187874362423657846142444659427831671575590536261083421172051238275058374666170249933169557912666917876205374520773419000880506849564694893871232128783228445430742126427618379482284564634511714276008794233341030186822429143426604214613329671230489084221789825775369631294596363826326583751003130207064369068213527905101573211473348194521006972049042117327583707191673598786477511740240148152248564670155875973846195659807813162017327832825958016075364810065899436331665958340248747645390656278087769739712927299196625844078623230431735553560977652790585901058019960915659161989321697850865611085074473314454932186693542582237441227482824078801378623454044169422865992469725667587541160656929725090628205372621305353076075719667876264158998222569465486438064365301827961572021150756813828700627155855662951263287921646057893521030290271121771135546762293866599047079042252400767946167887007944381004559252978811610205501944921400866361701040784104335537518539128104663399430092361612381126791825468964372807801771640753217309157031102079192442050352306873110457803306566502980925893174812351392124722067766165793674604575777544184976290838391875424179903794317460869493655522990286504649368746152487288338563702984414577841899385383728777580710147566010661724664290422608675808901369247889096381408906752288981961218365294228723402616535908030416721829515777280559284077793258201907771916255665956219550435157608822295927365047869280918453581442810192822974983108008691966043060042460308551144499473160395161557372367039209003213539270230797730748815836957753924929377273862945603677196894308005931088232607822596712257675060357275631187941252827349224224010854074851652262851195527178900060865649697348827808688700032868226187440828932592830048725320343040591865174253766998898791390270022739315139296662669832332912263233640678598578055025126545768577157368170975081891746751110609083064308502274028558154148678582694297832916386838957271322194336940214129684723829643999484054338020397430252908705857004992211400409840128224100636863691878002994234626085605885503402535243883509407954547312494774701880627414726348220556556583368911821125685213614729485681673646927603005785286113265875864731897654279948307208517420013602458010065457637010648566389715089959023588835955037970237431875165186335995593417565233331973676182422245894827187967326176846313709643735033188187407150368067440982141890649379040420606211594780630968596105477083924462534113127423076211104275854883274608574341353707392996415805556498869268341699751653406894091771904581238929326954300558559614541614647759046612782418805532392893372806564557893027042064064589498788107892155239508612662432395548033302781240214218793738152634611507939292142233772850667014264818300912435271271766365987089777396306361048076217430560936582328917773963574613366720962880967763204474220312547614875484683248250459222518092417410635736357259774283781905113654177442256604209535328849941769506569615166440959439500232183972018032749342425637485571230066044015328441497640414241187977708353224199552634063184834480878217703258693063095198718158187771318925861726745179267654839605355263244259074868647179431951943060465554970721581559087433166020156935070264220121820792306179792016210843338778619218491806576682510066403522547710880341086852229112761507515429918000609595104001015200209637999222899771792150780024530298059136439785793874691064019135740280006838040279721659321230796566889415117708216765866965356749688397812674040793908594885448798457258446817785963315951601213447987017070888645208337212250366727753732101395023467674266844724331112215896631362877774014737021924522091442335468153385810406822729543849919747192538380349536137950429155650928414071784649305570394404181595885422205409217525062908608967268290978044928895454870956608696307263845768705342888064250280122211364898114755020448893209057996647315185546742301051629337897937681992892753119281348272850460305704923805441550151010663229598125631954975363744925278148871412086575970316653772471949879729833242629698117278842024399368317673075154660326352587834406130324459802701568243474367064437974215147452433429628649840829734071866943111900889106909900145508255976175836972674732113069581072768950504609014985875398641082157349637737502582173011647477207688991299333541285145652180571598699397315103352380564263911485686017071043813308490923104470485935242951035061930418011497916328989211884651199420061759803860056981532544791054223449745043312395516319684149720074807086921427504057904188811772821271280677083580647307288440661675351132340141900639662081441957446204526686520661730043275341675711728184609738178050402786947845418074187100511492133331640493597650161050234872882820421960074767808061005401020167190603100958439950242496953837509213880085428575411710613597669300206462095907862873423496943628959802319467780882096056060068604854519000480792549468589799884471349438156109382953603324083848047268556480846620502423851702514327961331067614360544712031416596518555043412582382749929834430370556855812641920614060331207879634730496329027346676628610653016326789585051885900077469049181308049500171206271809311624746071891702869981514246749997984892774820818264763363180889411147662272725026265360402184948194351694383439154296807345954327440911964084477949885791034323537858988062861310553715813061689371284999768995924836208827863317778872929637916198845795370651061185004163340647861085891176700793788421101208315897297168614015066004870380952604216888820051530188797805757101940817489436278526765470028090553802877743688863223358458502177355674644993514739474133725230368230616931054472844807291987982524486458251542242242209763554352851080153358861401260190099955016234172754633664585364643617211858998464917490988010488434186538751438838973286692319491447430484493414267065315589795984209206879771021413960846242115161298509317020159521524269231385541477311883790589909083372409672906883501990324905071090125190738440850660416164553165545492346669045853928709661000588665417454848447120902736174204965024547312159850446408184238828022292195485280991796783057511543968262733385620890382719699154307827294115523347423981944606833990923971893539936226683597922134828520544015431868356999701748627455737413075298385754114554136655239442004779298904564874641649381689639426431014842331805306979099389846924064277142507145389287633927767834895720812255551341734373499166757018456494063146976501962277668234506770806377787675281198972195136777396518064493551148782523428170295388187926929836626449078412364634347519225593892422765475630819926470642072504657897861331405363148252031016009609502258589151623370265123791450239325445360543046510471659793343417072698270183951097737411316982173308466218466896671033219612354641759757668549062443645182390784412415488143301358194475631144827415988750051769118792641979069128824888076337898046052508879408244371926319435496262886592051540565680088329690325080449225394563102993591986297699737998599978774945209190369022542197524195921652699554656800503938335697421545152114505624592937580958481549689828967729978347078752967820931672859503719431970066494630286277071544375069766009453510613729791466127995239788037116872180083572159205833096799848328540871158391410614259268287569866766707152046883242547733919218068543293477473128143913927336970519038904823681546619278130881382744369006727828286153376996133897711156459038660861277863403851594627491010068999060679767759435336530994244230747828387955378008481431405058460103281015950401020727694699387158165257786911913818903505822431399185994620914312611824936197169048633060693452850604654634143242918292806041690930639857501298727052287222096098220937327869310739193822284789885007766453832198863251929357985236930653785623546010738356927840026188080787875553026482481186174095425412342278530632266505991351653284226802043604172502996622363365750991399317324884586763027180899497613027101654593789451477411027429664571214028822094473721439831933113166364711154107583145895387675507522734854229334484895535345051567721243578167639034089240974394308737023918549259464853888164398550765104633398568332033557463359968904032522468231274164057111235330190618050314023678000197848746959718952686137811674202305121348067338946956076046470843742658976466206942370361570536663329671449482001169235604454344209118739393695866717706760522132587284873516423492329915112095721951358244018563197502824725613794178642611944713395799892319206810101644935513187720163369700956654661803031472346122779629419411029813705208632224180758271160672670351715873894417456151079401704908795326252126770740579969496901879262744071983183657326061336043595458049470577337732966105651682679136675179133136979853905104498100313797074064865618421233296965129791262439110237796426839494138751649515957200517013221277324042379254449032631306617392374199862362357727672053635734800924914856232557065976610216197114056592613204652404325576277915244482180189780014981009470344443933953188685166452271548110573197735782059608650866118214851601961612282359418663269337614039907875457545234237226848251542348087735413796977499884505481985584976218311147788516546211578509515178961668770308074059881052044341575465758422188776758410187619958040873910696023362655911406621243298888841078102727057287972626898863171199603106907003862359373810427643463080923833298155120210135177248700447648202251494953595547934838428463977119707619118344292430892681004067555618535141344669053677285396662431247454537709022226179699300565068411602953730855074663779491743448419214532884546579958435714942638745213028028862154625030307200894102594065541440471157204024334467686525838396605582067369953588440293667571101872338351562965810297503041929617720735850196774615799138136325227366438821821981933100297907938514190184990347693043899059040605104413476557520630890104652864125814092050495843600859791019355058916545176715569493852900514970753875153033191811117609913832792743029139579600886314021862134765476503361281181573221675409842303180247069829640037974560492692917362293600212354366178108084523122038492376095201292008293942928607976020596467644270598365723328501411242073681671783138486344819682918601076724271660369060872249069347360870195222505006206097476497232617965917445308762226850338245129164954706753534152163958066179379836454084361518898888210891184239761267757745337276254828044974745618799775535662398641890783218829933868067069008693377229964630733326613720788421855420847864956765844419994769695431705877446930689815944047972168033048364317839795668811307821372818578428287300322260514864049084324774788492126055878861863646551173626556555251169090625461675261167001513478449973379649845771472908999423245127274044433041998666970523369520767824780521387383028334632152035162725288959140079069931995004732059978644203319876528028609893117575555063297675550010910968895964443584344649278125926399567038981348630391553674712446933739394429810965676620584148622721274874459962603421418429834067386733775548855593202375303920719514963063956744735406143740828090015386493291665026272001703823293447235533619005153986356994379631721888507187194739020190108277642951650018234141353766971539525738485401940025612826571106801661687068166134099266607647675104573774139647664163003251757699739574300052801856098492990171099967189473701333666435169477212677737016522109472218666823568642332329076440177014659513247273852514676084711765970912276084715279705622371605990392769796712457502410569132041680087737226416598342319248325436703709292029660161409274090184612891362270945265041522042437199588160051857071465341666313473286012172479830764247275908261027986018072539840900715493367965356685973648157694470796101566580842513937912511066853190376539614921914327947897628889571829971237844300502682389973210446909800949337644101553794267269671371051693834127749309890032134244855112120394245058932965314781689971190637918117037103129730810467431317442096951791318350275868305616634867137283821673827160385866804031273601254382345882655658780921549385715730774480875446503549968646901220316175114542102945932122868409614652302136335799509940756788663771561684966352173610998669631345432247772644965010246307312356131249914971613908466266990265652910461398978388271992499840101439553401588729824552951439566378391167434112655892637568786689634863488144603415449109455579508777941061557303252766318175699683945805885137314881431277868743203726411208175592438384701556876583177042247591965943518329627634203157793420515538955709099290241538783784975411221978912432680412737391594996388519479364629556803709077075859362790140136731687900856411969536964100385050715430221328123301164766540268053955859490035627886109590571924428571197846394285885658181623468970710441609381168560839935870545048266939528839954014956707901669495649637698564911902618391752584408951966714814842224985698461795064561951036851914459290838180243519130341631828540427270003898808113582022867477203204344125105800307259038505841844437062011217458035251371143635445805304510453768897483293016713641041215643642506602014794058363352423518121242477862739574656603082390603433376320582878965701745332184108598422022784234329383778861559665482137706456088925908761394240194610688472858550767052336680613181834407596139212736607279975703578551790668760903884069698786597663485093474663885792251990644561123474811067321750157462104807160619518947365530112260906509051056590584030014009285050944532636555392505064517218680911256907884767941157723369140397277156698882563216164403431127408544857196295272474696272767474545862136306739933034420330624107326888222753889780864645935073511866380560149724980799647343824665553842775545844386860734076273354127930308629471652307855159411209056245177030010650022592747730370892670358059462170222718638691790752256730055379363160174115934838909282999074374487232968801029491754144151218217368138812291497412257651817595233798250193878670932506978006085332802239359030795264002114349269574016053311948741244415382343847532670263416306617283380292185694660348435441031525651861949449748242385254130911796279878358400780597721220332773949041665561208642756621918790788332683661894869443284991955689891932113280856546093581978399048840600196113786766425215276487361801011016474801035404233550055633396003038780302300383401902290306472077796105328015110078360988339609194677480619347161034604795345967848927806320910715981971549989176724808235543277448142739708827421317980537392348927614111902766167574225241450727098095623978062695473657289687272281361722111961697587879720598245725965084223714555180783089964162848187440988496936796369746352998521584464095931718335853883441011815414564008313107720236236278563003820061786905032266971454655164707232221540656407428225248407243517006737848693956430760618787368295593074700335119243443987450179217902964986529659200757088392972836570609468668611507079630218401256245049970337470008448460447421102903477899016142471966640981304836553826544863004086314922478543633315306687683704246383938227882408661964723756512307752851865088721633891479091731983818387015152589133758732892638358841164047577601766266227044197778169516298073396729682915270466785036095323306187183379560737162063620021744813906864283904703728342700224833478602352186487926924627102168247964138275971902383310293013757056438117539503680203387998778344977214921525097800002734672682393432332932275385000864741508337643558380177846590624473584414431501803066213747089453011908833590764195498359255034075557477613570021553854346465008541296821925307364010030034027268699468863988840344058634607138294606369901904937065131695162734173062975166105859821046444226392325391082945719615564753405030247441505788341332667417541753132284000004396919394968243728185466619595685254426497951114135267365362548196396496847573492519474734416444684402769380095472776517572798881344100138360953757662687752910085367270319967736798918438813487052519224128892866576696385897890817815022174720533768515929251623833510942556843881705188061279708506962729720502223191670285363025259845135354543853914102233344108190186565416075723529251305989529893419666989936339256982760446460260669566117355173979748869976070558676703691323210343179905589328597577340708950930373787384794601572846682765135022209139209647115397310669912777068412562314464609552555001663743804897614361637705518911452562237638152757751198673516930592144288596246796646329935170031780779223511429078655446112700205454575977631133903887529393598594676007177764223297647244766876522294741006775225165252260534490922687530338404668578165081806038047992355450778081634109817738784086490228951249681355828765025805232615768403086895002058949912432788213159382109469701409339347704547353148689820003543744949910207067408536304801301863689151297353320884228517237023712267566553696110354243155465616115121305537224789156692870954277524900681095173292699026545709385016778255290490942672795627785792608692120613674057127449088385403043256887150019887665157804174649833381601021778198391186932338068215601228308024802172036752461766473513309977985661654517770488508217093207190291756970115799695518495740943332181633545708841294989917882121444205443160600187136898558542734287963359735438132720706652436006482911970904407819257131637926093261026645250610655199164378805213651113459952373128933821466510973289810458590011195400551066728938268051482701865801084881270511435146057574619982746133752643462033980849661562010914988985496682080294401425824169206950545863592595093692731329023634329847551032101622466901702435589825473570667300298920764833646964596591554955512346013305023859696116707312925569315406242970174130436123204519865411754982667286500739352427678843161057359313284142052493949481886743194462655311803365020799976509566553392223606014228254068200206095514574035961848152659920099095931619046063463187025262159031481877024072507579343330362685711929324025493135189163445852696592615390864752740403780990612837745734783395137210610645395083703245467692363002081789050978542093922265587805378808615934162762058085966034485508405110339423191215598450026069877268439146822131607890667319666749792233923723604695203263390488036374433414316291846860314751829626662656197484304136513787561964558863211186416753514334124334122465053580873735580799507597028101919023502176676831464562151206326751188371450728849920093483917069067165779951215468867451333799103644971482904355205843481149960871533406308129652605593661466871419728323918905601946604450603594370488431918418164339930024142751982917098263623554210839630626298217125966442174255732635038659237097443589011772493983635943870013532738215617889953510286291632598535804794153396011249182832308084025939636519812617603876542389945443038445922707526914069174885794132394768740236211803866320788288525223156336740149496909833225777401841549017127469639921346251552454930299720509827729094453397667634980018692616000672826742260993187702314580747701568446464169811729835058219676296471087785002660157435344076008960513486124895099345341930175240041105108832290182387199938050625850233535368798126222431644464181190423884175000286825825655624797622816120076151809433410357020557978842859935863190182426816100686185885028582678878131035643933730158346079681762203605294558984674680527632883305291004096143195832668076210938903546587038028779579049231730864610009743893834782053905059821206963129159171498719907361528104756933383668552349956820821967915069284995288416764763652589563683947660688473618739405031742499123996402755139987518804495065643762923420163830480840014010475910682356559655118401336138600081491531465171098688518028779672923745071632704531571971835489179383794175216363907173221115797629559489863003684879476070615272086997515006111767224179670568767914684409758236307046357011901855449714473688349111593801919295402350638508774657887277609573004449038008476413943060283646945816605676401761098602502123105100939182776908840040754883611869274128412856423222432773777900114770110485003567774061405636099094339564817299762539455703882762668925755548115647327513481594694286662955774751833979337543183326595302128289042420284037445450597388188818815604478763313519580042212810015866860634185017951740439799761360707572724942140266841932603391751683979470547614785598318938762827707261151344598738999320709984000190810679740991034941945535928893113423909514648717277273118794836383693565540357381843865970671667753631497192956844490472596914520571895835761494242280254775681735925477601608170844201886810087089347327517286525279453318672234444669929089609318469380544709907455999958068020901523328180571858862863667183195166985584635598561364230011257541049121232876957281943233427057575618865586012997435376536295097567096738937526231502585947585065696660900538353838308066971416333194126990246449450909699775949911387487987575517794021792873803883188128272257366722524073976774814930911496733198054581542688887016080596456459267205559185811921256146871607505914537952669406160782280695469582780571135144684181475859236813472066341723464698007333416951270649221904729961695448049251981192882790878886645087420498633738069631884823995599966945810929134889318213705249684910014322952710976154487786092295838093439601510500133300315914352093919249028271783347733209649731038088176541724396744398176658690931476429951471069630488716310406230836515534198943950598153218295742072027657449640341602378293687109404026747358952779544619511904381424814837619572913321623903911685107804939128034305135766624092105467704087839201113848400995904185908104755581812065903470518895234770143144789458791447445412935874896337547981589721179637289194019877463034360606761571653053812653144808195488951224891353209457687922391019260386331480836031530750125192554693565599587725338862036724883491919649570491189563645007852411644384108089715519446584573132750173352343034409692266439854515317094987643303905182053596931720927069415429083451488178033896349396780538852869536470107996007009716024700090154021682573020859290562847166503574337662292289041147407524313471755601614664277598086437935953182969070979591281659775764742597466792797435771261149035202266850914158226835088978523623217140475234856759223568548763404445205820531299427602710888548672054931327612769579225151583853449857825914591006439216932528349410920928087334385975278169427128091731433788419294226176196091908784156012084668334741517449968149564970128079384300154413145686602345435987430809076963256188925560483592516222123816117831080158928350319215674310467288935736033132087947001840195970638951974565419774854534088686885745509556533326615200306059916953646480335898057708759064755122069250978543342511346651793512713841938808658633668508803654254793543004252686351813680794419444806067082767448092060369560479095845993918523107710609277042251772673829716137810680391364591583854143729217642960591104250830005480473394695759694208698726753581265014901819502518135900501252176533237194639401145138874086914519860599413839211871077685757295189029115761808666475028043988530738729855375038776520451346202485969720113920311667529775875186499577443018129348725556790903129372642303032388116974248065119364562366111893442464218484104162954782984614799998874209429344870443640141064890645768245178005839451410352638906047197470486956223674050386714532474934657852171147831060049182825550497118869469483262728442856899467699128069741508902663299487106468520142007992748129227479625184260535508124854550009595850717786864509229669838801753537560421838316160056050340542865897193554859167727199484560526672814060144122867113155491598361731655353797302372630447704112688647017089641600470058865842456947532530826255195237384309249810095316917342526727397822766422283676786094773117949313134230562726168630014833426669155327607637787895296927223534545969508902432971747080441273250478582481893082337512409339346814183877310028299563666180249492919672176067089371261243526336012649878420757024307153092881528565101053677794246431536337554418898338751134053861158168592447647971702199889744620428060967096923607032555507289443010919033445579641947366405176749288859640153659038371894172702477474362700178723085788320497881890401842243204332304668264902657378557670084287680108121736750621379989912006068642277090385002212377065779284794558887926158216599627389675269107990284943715985635360256133350737590277418176164315611136651565377704681029546065305903860601062972908189849698604654603152299247455775626137388285983726700831975111540482373565848052978957534592094873615496741623592625911292499763346435344916480292157901329685630368588065452355644523536029769982020378032472859507309783405930358259006126182884543774335961323646438776553749026115159006494021851202968664036849924083824249297205274857158309576838938600091851863919951839826359620316801206974817236820428187932956081293823227796784478113474439788648317429103821010564001229112218572515636533448546946692127247720763415519998103753262972615262943584914324548847756033630356884240713641620989011392290441019052640667947292954498360636716224814145880635324207979426336902964287585599310600936575096447278798582022497366887169049359631664955747424015406602435750860031043453693898575803269297651072068166366016944414942175300504224013090408831299629449895792635150463400812477703834096137349680809270005927611475326844633427519460427877347396286501205521794954223988649791083103162180084386938278172621334649203300031581559419395461618310929902749719176766948107942549318186188244229951778757039129917688385424921628217470143950065719781589486072654614785852881537034437614248882441574992076881029179889410158875070040350613135845025825493538522937260491403709875079146781366825492962563941114825553183752722082669141459276893156426909322695156083327662881058730707305100002977865687280755163607940748141996471067406659193045265992854512992679704697070750622957944135033969451931237929691947532450919602101917427351583554810452136639260640006038427501278945006882366015420943469130748423010608947404518460780792732071482178073471462312888012055746287860633159723722079685936153681695582825757688349077768793555335038464685372405099753672560584732597598824010848649099493623860056832490528135322561228839942010371586090591484168334941575621408652536862245412334181237085298505738403834702381157090855226217956494227775709497617780588006737616028501842734274690495044592006326699824543881553839351102032944722499040236965481903063838371276316169347883077793006437739469823038141798785166311288167709800991821994849097608399820214269746267378291996201222444612961786488892785575052451484032073291947152179018688694594199125915932448092466975920619774987323396332471619166284674348298473277512024996466940492059279239558545130146792444679193855666383507786653599448607082485863507748139394148129679045024132256497120319206650760812946187468534978705032451577927015912437989334944025946363333359492847702281638664507507185291854823516805163759861924495378821025234363124507343912541315299113557747408410754723515591660971303143005437023595314131708267744810170145993555727431098103416255326270037528117797761607607722708902131249639022666433183367032128466011587580833016489842086706010870857250619558201097765849091264194154932598155454534497768170353743483675302725561034022054966911990031816797711818195873793897899998316635769063095036997857470811984591097313938382574240500901978041878130900396838360166835960401951351215669883953258652496295259388012844100251260927700033555468055007715970185416268939859324017559961786582215375593223498376675610699630443204976017673376982295514752817877006898338859478406418299814959060333429154696871552439149197191581708119832423047645244078896111737403544351733259282652778589289222009381350868408913117023798095237121503743205242360508431799811331722349144861692137758873141118017102838236987086793225534129085639171677365821767449111190051854972987431392955445968551142422218516670134753004789611507454301570774883297575117538578760317510314511913995464207934563949297526756746901766129665489750355857662859291575113053633659367288351456166329831610611149556354766028569211898291588954912510884255400245169207020616640766525526319969040395351484951551389219015561416064595458493487124600993324716753792022132431849933952283482310032612683123888830347936646493455011413975245774240951900376699620208249412898250483989558498655579151072670793659861160306728062025238650041253043093280122697065476582548524120496458985823342276035053321456109683441418001813666721987957365172595919997342070867529414303284671781526840116171854986259402192452109270091630149197078754353175414495476168377299180806893197424752984511670223421858598571242379604099194960757489330618370222033921858015060529200157948862379513294468283861014974621535031697941003772794855787007236831943947409544939668822034375857423531191764928762046592769224770639045370494982688362561552934642718855590969007453914122705532827915858581623564691903481710752225277188848037094562981643786492601424649119382577959401725017803433883548754361992289151554035423527976618721836306160906985406065603280931235319299236518578044759617909187972181943282018066601967436714337726876850705885563739612630364114388921339604045012482146105990960766729503667094529180251583473177876425864445124782292901525362628957458419236982938484642966760174209370276163185990109289637965456721768086312823710234236584832385882929960833444094819684533697610569051178862747926540993384037770381880360747259750606557653827406056914596516347615019425876656309790610127011519915183886960748802508478112680178663461975432527019440145665755886705025401130967005149183673418806265555217778370479601485917700997132686759177185998678612750548109012861231553676488792395145307591829168870659352644314317514977432179945890106073364092529866407810945263091673631008933902438643745798132992570292377783952390792711052157962745106112866703843515825186376898949261535294965405427252595372801262916029308375132864487982801367909840536675219470331703175003611959187578421994544344351366719244850898988115624302331657504475050256638660365687039138225211891799805245322871289187846495232715115993899243729958602072990979926136267506890114061576509518621745349690763769804687859418466712065185007109519798511061849174613572835765106717655589554207246584747669446980938249437667436043737072936068792412073516157148069826225734387361358826857461992208747409047188442801623932836766428659820484170103738192764030576589795643218048393550618564242566619108897559806610448876124677079478557028638633346978254501875987964970082363968967836351293655962606644952429101007803989280567264703434611123627580174332700080093892012747966174900068544670838899994251894770582470617353391362252475579598351802850200030974041035051878125909200158470803187399595775582046552862256271558444925784021292711549234029313509663250728796782154051587493697605736032153179435305956239687476602139915217804784648833388241595222639245105250761677302562025608622126963084377933724797418706090711915675056675719071871490100436959361633226033653023252129176406835406370589380339729498706678019411179406019953771141532944653477964303632976733306725319221546536728377712784094777656017654146100483383039757949079792180286919914786214136499633076075138201905141242112492870456985429652863542293364633567371231315023003105335660567418754348652574891087252529220455177811247941710520071506291574206587723226702081841776825941965038484190328716934636492594633879390053715712498858260012715555677293700468507025718267149778337683563114629500858274184414399044666128090348449426590194087490514534454854573658122224357860542124088949881639421244999011557546090188485694587938691353262574440288156347580502530959509897014945750279223504025576776470903750920426581168940403665565404296282927065841688773487562670768403010272360678080135649953774377558900441626886632290038579763712446273636991566610548991472685111317043177430605079245931022871916125840506253797733249057876990378200140005049212083658466246204829421404879709285354691015599260883122950918232576416138689255448669385834628936317008000763046742317043812343597348193959204373565638984181639152941994454006380492186602956142169751830710136374398178406588761794507832153411776317176931830144692986784216023238197461429872717450485473105448751466305722677465650706916820283481468146022872029108467206077375197763641183340654407532694277171206514983639741811882872810926832881841399071889829259975230314953336792563589014300979980213073076409368300928189855090968179139162421677533173081762618312858900079615201871374005257887155270468806656745865872895479265512457463816828561138873682388794932878985983161019908757137843174975433126484399455796127114556173773540263377282019993888187325653664009363145037692115294844063748135258039062424042130341991554050289757199612477225636438208228754055653352349448233057650502247674710726931260807388979373512781156784667343616927951801155944254843699142860718346601202722503660439913517539703134861500925757248783990014576720715533856989156442095915432116159442393632992188923345287123306934489603649488361547848637078542336444214274820403576536611187505545033462200184722854396606810382757465141851865906983270781814005837001747469168877748151593473679761829924257090809082558112062927685294443701078721074794731848051741566585273235372497197768853005265569020165959097473192359058984275951092872767351853144948252499551915350222188463448003498725107295063342341233003969314213830752592934401074074829700821118511962398050704983730246669948312042856652353111155319974365246521519597172408987331261227605941244677405845288994052381479137546528889113437614353954797049405667299336224240872490756358411857843520253001769032849885488064338723333482137311160160918915913541124700566253343580143900384480582849784681514794567619969345036725163572917478284076262129399131863068937586145007626935527255758634570132212552479448325195646681678848788500540435556906821143491697431385054692288640051269055973629940005242405833656851251345667164179311478335028635422300840406574561097238158653451842180155751591059400413226340377553169729524930538458515832849399150360187859023522469936693394260715292165470564106751163526025841759282014047715403451006004560886737771896856067722400100076955501802618686733929299327880770228010704032135593521196667432030272468661073304994575033223384843860538893402470415674197786774883944507696647625286167565129753888395153666299662154465161837034152077962901183513445424308872263541409794543115297391350548366324278314318220331884286770288571138296700977887084160029765709107288787261756714731305788867294512195100329705632935001932824067811011389303125563541674024567174494921061081832364969719868414458569667989606940147573902343435499151956087745508526015861594894687169877758932371004896058908288470611150784462886478885748940978272325359050197324878421373433618652413795922826652660390180974040569335126293025150382175203117753090143233959975304071073731090842220915524001632123282605636750234654156113702752390424501021357697631930748885416547923016515237226753692287873527898375470807040621917804662795641418022304957708263662077373535799234053199470432151574851854624889510049925248293702324497533994448919877858106633673945135241151511661410291761662940581298806072151347017451930512151237851635663217170454444733581413981447066397678312919909687609628017654274602947687756390090124022726183877525368216670739555024980750616421550497637642189350287353553096677117362644419504089440881992502172114102937641680560782123749116511840500768748060293960172829981345449765485838735359108097323675250826474772522304965776751333350391385896531389383022772170521398950970934315586378869588430131715491616474756121575034502719501412353533409319218714742785394142215117717881320257271175660336376688644332343792859736687352941087706460307041169005701753641999060966657968364513071501955258292622418808780242467254278771025580820511332591211923530607410133128270682949588935119418513476935195079786583647604088501159869093257627789091604411404163536017432617156471574655176732272203142203358577290910205558449304156871119288715788875699571655294724787507031352866540565222167587272480169230631472987537968007628616637214935540233628527949398358400513966776233637509380224547826100037870496853273751402726576515047790159393277584965072485703032879792446182857531474259469744010503976242175000320845170786593376897261512456562002754380266305126730089697761442181337468028220299108167881918577961267652905076043163722055570295218723517700259002782157227591218055229825852844427270064333174210499975549238318823938235825674278735617242444276042845657035929633968601185654544358407495631197250553139755341342590606129083097281508083485394191027882239798585914734564662758027787732030974509922476998403435224542931776738136261512021817441230170288209488747270482660280220238465204983832219918623797010944642025971732783553402826469668838767150062047771649233702119479067221581906986020984515927704617542586127048283364867941109766809481023336361530441151874982524269862115401908961262080428059311545584088079575674085617000700856834630166701593016096539649772482109791930982924090631721148155980152200910788992027232949629113632052847379099526089925358431509698147347940472621536497908556073333831805482631662911948778280014792905553513959236860061806257139811641464766709745223960921946657204498590765800598522242504748806956143855176262547910294272642601176223532062854750175459381031630027371983697107706254622665496241179296117704902156630106943261513205051685826276317337521404102036870404607070685000923063704839440115547187931349126257211693534165990252638485660107043687857208608681780582256577951375318380784689301500104716930749817545843928779709710325755732572576241488232822820236647886604199392161603960133534873438228963653381272338575728886263236277430280267917161359658352693510993341618717656424238398892306079049710467651851992840943829230595103223822060225258332364718050557512477130024900019864694056760871284449577763771085071049217750728743921933385008247732977773273681428367865644171125717671002554577537036973586622872322527683125684153261328453863486889381921479381574430579083045493406408582144180299268853236034232640662324761030724253503971693847846181438882246642419932265633064448113509795368226297019609960880363550964065869581764787887231334308341377030818143329484905223944785758771820477462932383540840204009908012647474962237669228914517308998067385917890671629332235005350588795688949662857727138145030070669126870510847888339613990133013920015831060862942419517261052569071135596091734419084563834631112475183256995119470831468936510461142241063023018001094325185175706499109695702349169274864572313859417450159931440114957966514564232982939672747265285985546578758869412545234490567832444054162864098485855338518629756592898028658500251850807727138195989109951113921679723449376753216504794504432302960102533338941634840351944439358357005930138904061534948070492337326914428215966791756154027271868095806578563299298201304317952373447156574166781797351634421321027342953236618087914973373858131644066081280874596580838549724462387079887565986351713921329955144351850593262630861788074298917502155133830975177933848431326049583677358684821480367132978750950485269445849155497900482542241182034107959676483997661696545994423844538485982288798143917212058907668389602993927675625240388290553334859465804639797062513298224031505636856528755511776079697571429480568371607109080434025801675379530577504873019354954773398877726529363654810766090766420839098847231020088777624031139543640978408201148233735955996795813759811896726452588797489610693277637662548151002450651050546172425093686826008587466273607495936650815579609041934124376590196165198975707144842384161400681349297201143151783488688326974367030879182362486172361079475452464471132224962552489956649089640812762319071484950352720351484650643490816043971784964563502794959781271169696139599927940633509153944879743647545719145802339756982088524594286083948098017092812007178892689476910966595404155462302794161754742721437780389866642970340278434466812144724803808172022422947888376755524296066941320397556984716040087335265369459309148446392206533994753621299191125853518000884078276666373717552155019106651667006808072849294955248574566328497947258254814670357569826473622144868199764767679639157085004100569360578877005846288425820875067245392130421633069140087055535580241204103184679232029170778079590041992975257190059468311008053890524142584328787236823757759295667849097889385348457433838211627442789829270457547025594798401342343604582521399184903364368161865076867225287895210516124256651746494770618219199766331891265320720491985602341111939093619571082590788972689149957275450440948723330648050539852595724675203000803307897773184284513363156593658621203511733312160237767892172464906338888179406711687353972448375907871451711682668008910168660306273747295745397826403312622173422058956312204246329136932431430608590272889455272702010504783314101516530117167471185735501401939643990083567664294605975715268052368367391991231456223043007133632819865138751958534219220645042771698579727812447885886576271119616427932570285549332661567330103484282262544201393951731767032465808329149156545446287594665755200412503934231060585157541409241998504955401607583004238723626349302386825132469977178925407514025348662140622327351118649148959449607447404388762043657524217595174422335238937840202698901554682132250798893656871654723364789493291417818101860353540813331115974763437837190030183816053955241102273645626455297064927262056782602285871828534435044905218442106287822287640182076000133780578284015398209744391471778972572439037749818832225037855965362414583294980592537927373841776327195808662508089410350835921056125776852383065424670445505168035370669116991003149378686944256429812059383937049917547735525395878915655186659451779579479819900781354800196753767375464772176079286054484852957370683784246083060020957628334708618571948052423877883576217303707831063515397775037708973538689849810473768970006253120031244927183922078127455507508221944448543975324221807260000920944598843282760287438693381228735474042568214894580022520034113291694006522051840133137086425892489086500994480376425321430699738188912020986500017882094381827389701970867650957938982689336136086575152120658384297833497794479528206025875857137358396405003601545362960849843008768616594863369438673896014784654078734429201090615528313881173224777834638737633512424274940441467222535839475485068471807000180782527767572990587464325908222408652518417937002265920357053452461809788850802529981078400491882656214751186858266017401596097441722069035639192860486205887541505497019403632485475715253785952090748963549104408804249929746051399015493468937877004520511527786316795374511635279676409318723199041594771615195938829347228841746139788633351192474276209596571668239719883078531353063611275205333848324706883577060917398431818328216744450457695943358532873686905568215091320318427584771287990195805249013501312739012667716896616618116857602234250057247380591041719053559211785419110266305734834615646758203007732340411846496267771411288148498352611726712914927558434207432953671598673733862069921153263203497696933657714624747243092918354597029555497277995780954068460973025752956096387044652233215731080330255254407397598297266757474078632218746399790714185295343412445359135626146862920679372918926341323775683892762754760859210271887466128367447153914890768892119918382400267870768201094545720610455368431713398230704382874327823581169255402890067755439335589398858232228180530095551013091947829687885372153795105273993205532938669306492211824142548472112568408367033376840992983097455596393398006070799152491268194778877910873372142492078140213484681956938328260424814104327930996562398380061435118471678206446593619826537134975605171832830051100610338048842124781563832216682989324759657539096789296447777015215354200765981830146477453003815922244482347454191187062868031919063141228449034753463184269150264850470552231176166907384147606750808273100721683576260608569707793583024971991797287505048820843478971542436619195232798995301507813918057119941106447862914042227935715527247470629931243369954784541152098187465492566329363252178490254836335085601797212088347774474792924977758611953810862981453311693736562271121927383897028086405338727358544964338919496498936835268746319144425667363129092088972083399793094503384051429260884683029462381873363296204522112740293808878325200374451176564993455549757129046104363847411964815795296689185231093724839398126320486106285233208093270818745736280486849393055231550303253977257849606195061236536132747971204872254802326890228977407980903124867202969104602433106304072981278236904938377058885377864931282143594202385375945851045183118463625339105250260361068478867727010200226200630612836379907804140268575954067391510250504429714078857326123458724438152102396877170811097917899076663992250122404122656051785663907326805692441438395865705435905583726759855286338501855859147428293485193616374001791004275700825180421103902400614663218655847896184348971176363939985721489528292248704753226182017978007634995038031640735707145248629740640554744011666883108172737491603853367330532706438491769064549199226118541544059000369748352370665176609426044372449585761510716497554871787956952395408154286358174234498768157567189673966615702457609442628141593656797013983181279626745873570032068731932471352850912758505084797199127906314506954565843011836794439690187630215971379266524526655811658211694007208689881893524341142376856069352197627385966315232870626824851130361639521636079438236555662309340845347839839200137565520334808944891134697497255496706339326034639296217592082747496222328984369119165890335062123135025195999015614645895476420667729956208916155344733884101358992601899869002975654346138602782924537858846007085470747916215612908546246353873857617968830891029719637926649240190942807762358167834083260745814247246605905789323044734867762585076809215173645403792857688477332691563724173673861694381288247522622071549470305276777422245618320526121596678747640679900680759256774412717362326008885632305173958786334832619952615213857543650248421554694314306136636362157927648838832006265979103852083748538791291513235506474057109218170835610374055978429627799311648811969437122934530096904766620605957762484290340475327134609237220213030900294069171718315681498946155994086955238857880609785006638611796552893760375299189954733639215155853999950074866677206084557104899972565390173402021993106184938039287858034275261024799263003349327270550764057067199745603021196492401809194610134032235993722682658810821665388554652298600064406315861344818300970539641631679340110888915890628068317108526316036246115064008782542516003638941027591363866847581483383126467558207137960551244611302285842333995337766468829884825486774522498559277298742102566810427504328004480837468167942024998362938964542073622583770054079278956163602650083086966573718888639602268801200745831085175912953599713259940646725899941423231778939613457891660515925682279094930268299890960751997404231914443800178159818321204343722323937096943157667267796198591159676461829119400361173824760514960362233321971423823121644955906171635013856142821657245195109227301523783775688549347128192507555580692175873012747492668122819611962123261850846180049878349195872352113831710779288479668050165640614629437876670274387315520080042905735400272912764667535139778608428573698182522841567853366366663092121188572025085282435034167674681080042763819822172853278653017031122585474136884848622896042051515893190996935789595209225389888485366132256105868447446915971285566172508700037051376033184572296032596684951818881028281534421610254247629914380984956031241236713936258616052352959802493889278909048132782524848415977489133450226449682315939151072874816362811251960143839648353483930182004462298804482693179460352288966934299566226567888359937000370608758929592612132193775577342723094082188821651877106547666376735941937442157468967498419014712030352061749209198469456474836490765427808128980796614234156184618551003150400391016749246089711745267800356484416226066881294118803142986051018453760461015817726638997852806764438969124573954945901044755888666669307735630911262702369426743490131153503445408405820712807326209746562103039997622980301451114841361688590392710080287537400021336253811536909845714590846715791777009074585715958774810383924844164155745798153895523588241745169417363921872348000550025837665400460039612203161048072500272639788716247833268106739552944564353318929100334559196931874113635447788812037380706658776399518357103950830622058381388084971331338029672389374207676244619299375227264324131543946426769811092905681702946516563428254402490028286590325043638539905815664040596638539063940775064420120396402596371375632782513832852436858241274900772872628840037209532205083440407742793636530306981547863303060464615039471042330114481023692313542497371953588385477154472559249531063225105285208477258510363606671550463447892444568156410435050197632535517993713033192187977072901914662273145751029453345569255775535419627748174907886276769144814598034102268270355698179792728288072814514341684441634036786556156203709406835671978272078237842090959215090923725344724429062814569862367757196212059678951492923498782835678510013747529170147685537737644219095894031700943628874047883567454275224142638864705619324058232264320370565897992318389034469401552792882877886699590718844666401954219857814634138563585190764503341099733825954415459183099553518207423026594953903616272987762205853741137383068810385781539436700299464863606692949036068990774477134313829932136962867592314771650984348862791751540084119136806302736986115780875124230410805756406756392353205843878467237979477202369445573571619248668629062860972174130457397641355942943385631185478702684699383119487082619383303689965329550269833028985753615861309549887748232818429956809509869430963247241023746863975738071434263317124906934577634025827249269796839662682002987709695454075550681604932718728223900962014331866298051889483372108799930598236656325582284650822817827065055760103518201325333230725301530124065613905460221915902197458166782048193752694407813944419819971082735720650707998686193623335238914617079771681325788736048871736169897465367600913421240884563696175652871907607685836944968418405559051161967143752586043264291726357063974872941313858544429239797548759335156137636010430573293350083068208885691940756687706031678322365705727517544041067014232630671708785037080387748129228566935210533316527507280731773452538853989413370928503871947739020996208657998464356090888400169501150416051269235176129510002196168195399923896041523257241948179571051486603495566569826782121823297041447451268435448567673163471471033320638555163049445414763332751429000020118694137386780451247181555161014994548162389727488243641744949794165877188891075878343460289054482034716834712319098051346445482428881227781889185457664138908958109244636220270957770700526045325274488047285531258430486807209395457078726343334328883278135893600872067630169312433286086990144276818968891272252617348044673612627683525129658047041037322107467568692234653002260650084245943142214610765116275016872525188020700950864026784395073417011993182670245475111396864923124582882419311890883406579818440725637744578683241639802111580431333839429110496333535192581021184709214761991927096526087272123732697610440814099638752725247430895618983496325419575966115867613940166884338064536352232960682548887224739389648620019471588324981685690683679850499858583630778437654177926242486661062434196390607318802189775883212089775455442350442653959095001952007075809689583853965341883817333312630070068353010161068776624950704848377096386645218908477642937694150932490266837423446084209964519483608497608882225681828885485685998406577936685335431998058926481256644701585805531136834643510310378323353425318226924605999418702811684108303622750253976732839208382680862084134139679531769911445104887641615997899647734823089966039493859074848511246743654781036329631700505420878138097123636418712943330118536521009840926144465475613370097323302859906103372187549823340120839301547307513995220913147963890298666765140653058324557138163556670043787341931701659553255678960716497710230438513643556025349138479760584747546976374655900706558621245718249152329689924900084140109895608280485440302876427544765050506592457343410484308331765099396232637492080700509674486450614556580837188445503215405817402888906687043212462586079634260016803955768854184356895577664879206005189303759411765119836484373580743980196678673897240732974844594959819900050330567257068072578554357008878417991658939278101492811339542247258627787460275672501890200049154636610877757604681543471855554395556902458162798653384808509095919350285666648219672225843103142420382660105149193105539984280458848895490375639646577393524607496084528035007682342915308301178115895536146423038118341111805721317463288340835190157176652543219169784286075124081073295438809925851670271845259398390435633366417440640387460819976583715865909277341108909226119275579011701350829313917343513389325775843516731223313983363961546589696643507431472828666609760358567989992066941162042300409383120452558583167561304933330469971923149749908947826998844977180662515756124487208563336014457593525160251656008262084654570255131006871818280549321435317401315067554729191426458683348250701145789032472561990092610808363027379553426180983726559359660795355199396448041821214041957350121736734430325722279757568493546725096082488957459304157243974732292652856795715890636403318047106726033769481473296863248418273375248972704772401190773767102584669523394755599121146068064055079191078240827160245103747452194941970688350444235003099704895223959797839277024224915914831907554577489069693632232253523078763560367408632121808934908569839579190598782623939201371497429727249916287562371039575394281899521566262518574384569156298313865833404786161438254535255475669719090866520143278849023090253978020052946219974078389960892953425672465777838634039668705310459068519277015321147064106951205758753735536102189343847867159802220841066789082482586061922316096414859361993916852760580672905616237241074752841485958908635312359519418749562224993885977487168997628441280552169576211051493322098461726019052338853392764192783280953363063232906199576515406429683775026459821163087785075264334670632987218120302770505502348835232322875330221834198424124896113637885789973479462096592973296681675035912182353736776124229394488783650615706927946184219957419673939551802549460897177636234196075955625936918028931058553332524335533216127147085532577847407885027356550953995276889955675985797427981895243758445828494939021634874060411430404958487915122700152961001506606276779469358765299371732047604417400010008537190731911434467791291587103652635260823472723315249214346705858149921195469861763032907731596861794633993561158988936369248893880925762064398654859241666887632374716932756171472802997896292577652529923526002824739112225773156858445068079682238740929400576715741239438521375075438814364983313596191699804855130415463811020643598495164847764495180324108051767940403978253698267273097757923011141178941852845026963102202541367768265269830817886600257887711637945852522226957105352588436822248181730024326330369581991048250522444322588268997045673806259672728268206453326407274138002974137354847002573725649863070474068661031552914370590458729773056344757456315825306394708626772847874320310756440646428913340222040756386716974878312659155613357171558256873138633763646979411211405231892434878123760656437547640256087764294416951092047804158689633663990885695118948172690799741972197722094275665094891786879269952609809637465944698558886262062264549458485854187259819461698368724096472990908543370223537544073967204648935847916418125115968836562396950014060994183653075119310026715714244060847858769652708561118826491051193701900041827802107257762560679202514923029232945057305655310007364483534739679555152440432613773717778796264826223163529754324718275030388802281799079248498438753184299445926414232661547118091097024797712140364026935207466615358418719459340215423601129159760397077267739293894951231582165312333511545013241952712750222880901052917767740205595811705399186100219319791525760870925244591781079334524130212954178525758393508778168846114608177771816581040064321622437207047114094963336385400043812165422134868023399197345290870231666799439867886325838254967890788472602974716122562395022604716901305933072584492009164885612440964896502674438907019332387198109512839961295986845929183169131540654575430740543350378803572259383173985729040059389909683241653225295017779148741929765262639046280382949827921392055608669096583435013739618251171772373484499308238290894512090515110294878821240212774634398136080856592037539829120306186519064768705697301400736341894601845980114772087663775681958333103220247180817673198560096995341743265767030749789831575374684173082106021131941057171348631793367807505328555206671504518027315651298149017597342280758376313395931060022071287818536966284763268093653588116326294952273926157668129588723260066943705024084921570671293147266464957022013352473774213419001521336054026471826590997100137514693001849346339686073140884303234507824280867485540730264410446578662464504049394836805443921925073081042958001853539537688321311390709970800641554608939761805570749707048874779657415818033842463715441526600374117310237788585923230996489220295365177830042086980063691884164313757024573371177049752023485173039596028106280503756404603148512190825217815388856289513895373510999657672682884602039947316804801027882830034407168603369984868119151032460464587460271321608561473147716721317423608212709038102738436030912274681722795337106934748959806073651223102679208536062558734124901423557733368299485260401508014609888949037573570597081975465896149270422573880292803823791750896729305127444777669548529747064144226216073829184419436585808916205187513575389598146695736031018702574868392604028633741446652709835191364490679680461304452312209135372826011168773455861093747972594256940669882024430148922200089606492875968660044606405648027538553718134088372132124289883663359319430042217937906256161376747137086431723091402161082500922806232748337082417050867158471766169079685434568286769460514136366369576221228748156182754763189395552858961394452872867479175638120137228251781683553375682489502946758947232295741498765401748674332809457383827383973100018298314139500496847479810597611227903678660972665946017523980529979966092564205579342782617171640883287951467964292453765858895578250563904152883631615249631932398287185114492629046096508269527211036856111769259117465537982003363234552716326579806914442125714474141481055857513551635064264885739227361686931845044518248563625508066176554163770914612251327742136972522311199244712241988514851195207308811205437599706213910545213559640443084064360406260526279757606929964052870522215325122089435688214126313963938035867810504198457158338316517099397963798485644153667359255758396504246380428245727783111805528049229599742062949402200126262477227456020403532429828266373285590316418305545298329088359514070747368909196012249088001355504077016094463616480771250236193935519178863266707431901932046768402882706628803367202803730124904778424113886919329444512074575050484277138298602142016964919154696092439070279337044028144220684043644500764064925861133798178850612319729722852368275661021648960570598231899662466812136112240612239564635577659790293765339882630690817180983810200084698348835665045939673618635289095695517323161256628482344325869245308388423103171178082954178206263171012975280410237469757005398607154212941077967522958669183950518920730362439667216074703484546285900209536796645571543896151605417781216642148007257371848895267601075753671851987856027718833946616669485217040348308433327482753386831031337761073542853427406123260889754289875602547147211095952620508345945468327523879266077945815374912862270889248262071277080622556271667207608107958919145780913462022562811504303757310711568153969055693474334267776664175414456684440136648730334235881457040081830101025474575589929940483879206025592032787079535713780863198322436457158745396563016436957769851816950632283662207996617396569399254340751232031219674957461590043805666347773975189247823333280286556633806038571395103771029598405198537342708438609801871027935984753786010575470191429724822735623581671990832334612727563535715586394896354959143861662566625034745144171331358652127807201880495148272234782182342201255170102598683324857323545412324330571137767767302383191648280990825446504207338554220460363440271554186430341934399536016242469950284035101032239320986411848865623478700451737770907662550040732970619609252963057372822843305477773759816146074370193244687273543943077441436721708013724213309144300500942260147586268541452191488855116995405335360496646175060726878412225011028929057442165595144957035979571311429874006522706971201411582516609827520285577911198534277746310514762416108098883276609797001613612627819743588428992889938409465390616939451816068392669329331232727574945937612347326240469512637217530157291034090022744864836444261973189188487299250564329379347119225503058718183955669102231161809731585322001382658983028068937222434958360575428106206250028912997603537660635375015885956276162938855583346898945599819965540962059948905996951256583960282282437725526969763986469664949133667362729725020231834340288020811931993567727154045863635736648149060264677302153691395708829162054925183805633217254677973716743049010245748568709153203529899886403038950538024013643987013203693636347612912398275684731134443777694859698550472873757838811173036239332985216776938319036047039187506772770071529024440321530795587399644626161510207003061116490960477252400416854567521188594165396250584955652058473693156900707950555136948451260598336718060084962017622413649027296673463307732091813245085674100825585673347554992174599422166018062784292455061095416918385859047438947393069197949119483523614249093820354963758969291656817004843569853715108103610669772577487657386551702713325573406264089063978446828795686134851488271348805196559677630756405961849566786990837392542355152405575356032538139487081966885317008790868494155249943680825252322351886143112777924723110811477749156717797333502013493177326559468652265927027739906108715668091932931773581576416238368121356967490661543569609371153252095736933269342684249551931789942138846304424420743526328014419383951115346274615867607135925065857404134027867863462417727991054291871003387969125364431043609812415561325314738885686150681498847457641753308689275139527202532643721075535752467324488937037980209676581638501888089974927731192540305038415061507876531766664926494827026004573488475234691709557658397605800523374789430106943382885829351820160412686164637733407601485262843003816622421216729786810486984147634145971300438625700754559066025838841535593715194711534279108952499791470183760942232935993343528440161711178707068534956951314659470556812198422397147371081917267109358576697360007427308148053223345289564357395472826279177139870342041263352037645370212522919187085746956425685839861425698194755857119021488202288896494637838104842752522070686807908357621739173881687839168320412773790293845600134693651635617493539482989603660639733879534297015711552607461151587302747935530760822221463184027086030125390947389483211584139410507459706760109280072116620877084154446575965787513671537637799042342706224446618667780779861237666669144156425364236778449664388452981472057599773850486193580452674164526630491241201770306545561985539675318712062349275491526080592472409883462980126225908080762267709532515516637951318783882229463927918625507040234459074339832590606343952795874258191076415024027411140936139629152220678109367254887364884941385040897916866157702654796861284262982273423620793145360667312722905438000109128337826065178172367868210063925524692858176146829095216433885136376555743619780211669565970757093805488029828216361276880261582391719767123053279875484159120875920477668575457631979464338775776245795312446164359006002488315415935752853953034213278535798016573907358841757224802973338114361542836444460796356562620488929703880349936240866471245176015504690705084599403128592384196664686311603048852388819495648921736519962818935129008620056823287229241579091991070465457364996105943864667018669499168628841072595864525365526531668091850819839546642940588532798048898731311042167842797934590087958186239544880361868740858050018833319900982180034027953617964642724310448265256113163407746062252658017363385919941356625129800211047510001859741079185081146257040493190782684385418200416654425840136225954619068705958872833877957692983452550241389433812321140719279277376762745391949844163086782847342177855785122771025935757186933086042896697766661971805937564946959131306714419191639066326798237636106574956208728849339347291432882295945841416326853080390393544857738865931921605484912252816884294294371996949300411709306968578085057725705855062815878616362282485893339352012887616373998149768389071747294137767545555552841970872588347656026549676089810094082077744481373535321192813904024711322549587475270144356497308403224743833154135841381902406815921862935157018735882336673583668787173291977518375740445844178987583518204599060431454318619340777756710098584278545776796967035752325613945207625979819921785804020750759690805184552110834033646087350292545149675537885829815076987013101498328067069290437460300869280366933379279989146924824370564153083013826857117485152065050508345036817425684864266045296486294048250358009968727230514996135011384570587610532342614892739587052140750207611069085875315229259256140951143581424530456921424154729815234759162089573328191328655612255540708207500850918705235903087517434575252420987939928571437744473863867500342229620668174178295903592747736904137646042922002994773277375165199517388577396275103519030517112263739622808138284596826357423542568233173159956490456352003470196519666502742409777083544831455101291186192363627249648598904959344743787183732655063374632620908485715470002321329527955008546343265250778065443554087601812383324465637015149599858410846845934802783728487700324845743920739037697793633179283717296666766062347310289409757176508790087084103087818507735113232025421127240843822958836283028073380364232848822612634375957859852371171155400795505754891525921542362750786730310968927828300361452840555509354191816327851857771160140145333909408066744486965428444774590523298729312031615862838931793743223033395838157831500824939656752192504983707070196713710745007849596205681696101276993136387884735844855285176893006896480545917080518073521675637130313613595733510928028399371321855077340902108417604872009411359869126753677977481663174858087921574005734547756643595583571063965638512334996660757461854776925142137713412854254654836172265166957359486692116348124771743694025065382316118824820575589774102566935863073923665943701427544591032898682390867649789590845589183797524911072884281334439931348850846012809433322663043191679152538299244870520417863401405137393699561700959305601497557348567227013088222040437240698616762985636206973685572462675727445764404860646916695805691206692768641652242913020093069276650093581187331390637719725555755845507877383040051921684952392413393363178429465015852680048516045100079760272005387058936735252490520374324225669475526772900280231022068218941204092374073165335576795505846346669316376437608892432548604978092000751660346191393569096846910088426866824179095093219332943080167269548035988454318356646651586703189360411114073089313441043585935618484965203679267459711085776441559377523942349637918506991747883670927824453964714199226719537099345978381790616517249847118915489547310449569862641248056182330349654477699391431823850136575652230787138449907118733084770034725327650856722385460385542461271568471884844070707717751416929903735534621539948011237609122849240689738543369917550808818672718502418001907774035254408249325472503129679579530440707637165895460889099101254570619808702740814070658292643951697834891609958341966692420941888527136645145626778965935596124295178778036120597888865661099891562299371602090904247668364393679939579340838649678989149361471599737314703526190706380626220869005670077094202198678390893719546328607476845946047864708230714507629487890071045163300109719165899204456546836696979742194963379988601992399974163674344177899538483157359334472294280704943660796608418224784196965718125394361895796676234448098699605232736151074601049792091580931227679606106793455297705267431314776557378228040528903288599233256466556271514307389756832756746472169658248632856781202280945456028452687084542333728686237421449038559723713901416539994497586942203220583134886211553756756107241984456979899886660703656540619889474282396614943769691778115534843226416524015177728924783043399007803194028258458991951010786133244901561396664022794140849602829408130982999665335420828107041905883591062053531567637007960529660136240323969852968024895939157068153722532920908282965814555032228570118097169296295149051585498022645812489316081612833698556383951958169326179869952249922717062888909594531369344548194504684825442191696354339080113998535880441805400080489486446357736038847828193298588164991822586220423100540135440651367410868365129456370091886264061056682216086249051654051591034775632085379855114001539946158285847726863411421184599256679463765851497788374888307576960393248031855993327021035975469290014267854740301640134670296024066400976668082249228985329526831333126958182269817213246695095872195648293898306461630747214022442918181757416329258692295446806998251467293046938210368088696046313724032554981703317125305620033409244621484613012191242657922166285814190978216502954747279475670958082702881642613181980457313543878417076842423015278647058598731481409149504700437881630959222502019659270347017073291638022438411600536496903009065044795205071857528053710114029422776297960573093605758540769935291075059455969640648320709644167388723449367213928627484173213581961627640305085325564876035270805701103068983608683908640703560365465017964446797604110521140474065739347169258993575074070059933318864891243522740916618276451648879211611093907023083905162362942639127165348822917669343053885888993958645117470612442044499788532024553554099502509296239844343631278927028258778657374736011943979138315658120785449743649607146692359374343782801430525323523485711170647293428748377527432580957022374804296573299524636318449956858607675957088380010989557597299701959438775540149326518771148550935417967676013593115903723219166251815764290659741880025663660596870750506975032344217416733810382837239626608446879070583514739618790227451619994584237037640550661387757677532334826846757848732909509443695211638009851244576196086611485945575196795715765203698661295307221540150151152832896303900022672966992581659588855582249555733041254998508773214238961808690961156174668540847382869191392456442333603105588984266137852491895530643260214410005223663742166464960092525379302617270498913261223355383290152966350266641478029681013166078680119844504246624602119534306714806776900454779008969339159534836705977256765700551026666058503413672916012218153696534255921137995004701758053636152725939479137252917055496241120683842330682445314942804900760674689015679954455232107166289504237855639852909700021216953836625207985546461758583338973824895164298751275278958596782668055860159170185739162969770492880835339775122088193972699823635706438381502438927558409517840999874353593048514270567695002258792767652430941832022880419863097952870403567753406532732460853600859745248251482961877837567515610132307230174696896804555294279017157695206178447030576318707000510763900326569599993051956440387458227980858432593879558263015648402585188569958919012931570520342481594390509418470105246979384456781862755619211637240989306600391194179078971979932538756915876634937456832972820250251555060853532363622333955891028862572913605001620295078637307351479297925023969314377583602973168233275878330970093529794733640349438251151660625292145293291856039710076126148161882857407346160159113379874113789995375702774538183410775091873204808100783108223768948820666305208435518561798489559421836103087620439502030784570696808302490630447799533893149220001320544355058085451556697659773114703551219388319518536479773370515272496120262365058560965947876232832600340662306605287555502934915115769919984614841119950428346062358201912456329515551007211457149686383080538164491588245105850873314891076891780570932933503076891191982836258661832296241928305963601867413116290776488999099533910987924876758767404737419637303875495326326829859766486372226918073704735965665767159641434995898848442014127949427202234941706955135736133885243763347796060438897119958007856206598240437470724547275662901533656112173652109951285674976939716881176233888361479451002488926956460851316069151707186388282650109773200416018950351727962833304028456405664167496886208200347413650259624853525931260873034596444117730475376981985962867054455615414743345783891180494942784899047231005801185873927943176433580097706882977614778104108045719906636924091417657509301498073632081073942672252814040947262502970806118650334046637035208810369045489736478639996628694403614980518493794460976574322533494282505388245178484457458036072423714503993712078453865219957404694421385217207852945655653345306359509233267437022719267103179446268510363517608076615168310566701033189761794088979314768218973969680332916364888544711745899682542486718718956595007057870297842252526885810010967752561663605694941002501644763819946357065814505938641480215811120925495887635738027198193476222773259524347468037089031133209392816210961039429777660426357810233376616952573821352481939693393997139813216820710174543624476783742641162770582747115369675396672046152682926094380014683424518980072019292890150252782285418388058723009135836098748617054421498550853531773407849198867207916739954069109456724574208277878108719037233854126502469749289852902308840748968825827971594437826736211804802183886297549120472458287059728355543711880255676956073056263214337973030355799971091594926548842718807625797540807727147887382307994870399970382060622742982663889431316655404429883620602788778891009289203422219315143866592576781037131188301010540399941253595033853181784085401485970009703755307443232977599463457866820586592088313626167759839242065934392844498168625691902537472469238612498394926459065929750738034649107865368107504577603127512078173191340530868767758143954566570821445756776357161350621023032179457223975935333247065215114600687686149739674055808469836296842582226502930970351395068846339274875007092758096520308339405333921893031973842401850011651388102844270458821590452157903254858959487688010191845838792356505503024732069942908023358858467335596996261834118178836644715916916183074733764335290711169935939875051456492592742626918410366343882978100232688308001461442330506380071771665974565496296657444327362973346258208042259231601687507492426731703649341798265094700286950521705023083489443582274827756307168254385829041306015837754527820663008648851762379629958334793860636975178947538673745003207035906369756382681733304483494819646614313545416064120757822913903747166718320433206129917350377706572884924919683726798163324295155236176589096244056888578201733034182772201909160182434070976752019231344765071880182067858760807550921451703349376810784365697783052881711316735946373362696729372156253392699497001709149010486921793391276462548094697348442133208573355106901966575046329229677377125050759446052325594873337922203300857306033133700577908721584804528574566437405352796095969068601274432148884562553919812906029822544067271329348993203356507244687922582703877736304320202747030090779198287593572784888851690012440920027132976299338804685782491920397055261783085223440405999433608083425903884163431164719952322998532064314274697514528464437456423699598928976536073287299042128295637206170840776749980112774195449079415429111462787089633789342763534899428135436943536962872559601091147360581900106040286983581644821884942878957741545994377790796717308494809427791394486737838662218718491961511253306954042224628363024007804436459294440575712674103587687823853819349112169738054294780581317879724635902889777474210158865929319988663002999533920619372254664123128164353217367720639033460831060705674455103604110902054825852695229808721642484233159395302976978956082960811901980647977990257256664517639546207564060271310223123076667039998006861318369296481767544237523957550106313466225369621799353988738511288888672421809020086267534527996266142220177748896450252328574384143193062341399233732887996983857459642822663905086582370926542460884173052770536892378625464629667988920822166969501580255898466379680462505207132055923812573883925524129474106891939401867923817268534797171580028914693483949720589983203827725989216160903271947512344208928196245880941109476856089333235332403456937559790590086261716482330851919949116386462587561492371815214237076404853711001241506179423324726118775258313759799436253849652605563031471045530102313278950721909413953242716159323729690643032977800478364736820203068870230746341170228834772466136593192317203949279880809209545829608433141309904836389365794226049730486559252640435697864442078020907298241895548917064193067882108212206625226608781879308461799313210786471616001107435382584226995887909496353033530545246932677041820016975767024790690593088863077490644072850195938547656370675915605376026560856817008484220836262201955723287870158077362355099709299283415911618525696539056113017203559484292638808727240249982504505192536236759073042651889698767609830624489460922228377684001821156394592774070970977759919524918422851226627719922975341079371549856774264599438800010223180309194853370561140983805120505846760888182082036610753633499110381227407206688360658763586347513935728452574947617245544551759885480405305762631434744613031896210434850025588529931314990788533727905589469942980550174109758770858392015695034611007983853532808314690012977936864088543872308529866843691210536634797117647213581064324739085837419010031988458234636351163052098013862832472773036753794461455817572064183523161986579007718340695494784454251907748915742803921918035193953247942761800799170419370413391151060482994042358120704886994970702591556201596051373300437867124720452120700708950837236526544869139709063647228877804342840339782782241245626773223424585213098675454944570340525339519955052811917310995065062243436174052057999812643673284810252253737452724870083913522788617383512251865420729800753681397611505623990222303810426534461669945163037136645115844842336699726413383031091363970891970302897373834765964725159575701214513143039479078653329482879054858533426458839552708603434983396816153569047470133970280049179714243318730828526295943897609790347212875608510257224805911441996542555642090358336661047437792150220549496104298132719406894885400517283111574639148871624223100497818367912098233274150504303706241695673373682335784671523362639032910148261890069513444042886320786220827695574121064986406269480579666058349986204176410056198312820912880650377855522488860126450744372892032275790988209162053082708511230781728927035176552294940398445915776129690722740121347167640831729329529280152211060436541823396471869368293809002155099553909224244237443729315336824939218706357537631905842758404688964007927740670891699815636494307721298040998434391138374560377199496268947520645178173557701434647893207542110869582482176853616137165755217929028227035144273566324732430140128304811946774760326877259913934372058949834182643423549403567823489445178268216690360652018662280067045854582593101651268391808331681067285206314697568577536421127890313599917469399939623546302781296544950461513754655335917786466421644779124491238620816650613184455016591415713659794966955302028436440310829834548997520551765803817215162706576236021185317958285832766521410185442154133568922277436192204043076690974283101823048547458841724005722925787880283589259699560203066324035853022001847384309147205521123681743859556977950668292773768388187708888610069740785017432467939468768772354978478651607312185338942363972703147390236494822010662898091318635816725564269590473557047856327495272544605488816286163100555513571682604623203928247741816727327021569288752237342942018950143505482287118634976250636846720906209170758116630863432142362048721310308193798297304746455541997128716041054453153903122965990925313160210677104837191517347582969508520488712706635755023467236665930634732195190696594950987153019639924688431670492850439750109959310654596268795905694712584394843116955101325909383986505407497920859555082695053903725310701516788426947364608181333571826668282484681718591892680955246718791439144315207844504663260650445158035015034323571666264324087445750601125748181041131465145709088815552695021084637465567032777424976338440449246025952123919317081960657777351599143045852027734607160223210276871793091385466398897466769100291872517148281175425996085022566393681088228150294013438733601526222177230451035759941227724385131488057150405850655501303270141912930871643094422768454392333048992694194470237636002882820433132549640574263144258416042393300333059309212136874533791956632727975198326107192296882519023694507695639083742585616118217756347191311248616249314807886864171163572163042778352927166752897927981991432892040387010808489556255502902571713522498886843534651878913342390227619817713264667136753083624813604129489230170630776860525950368200785749746120248567693633009506825490242725488611052547026032799251865095384837771321519394337166607486328314516977722445857361960447554228469822805761831404148129533931161113402522790361597593688802447066758268156366881798674334572998712461223937137350545238687000205855897125372633569199248132714166358875679984239759403685909434498193744917063292321878107597669435847194696189208386383601750247000093262505371515321614170187854765714670007958494106976351960201854844529034604676135437517168090731558455883197122379496307883432956493803762795843939875302889445719518912877597748869086465441418276451525340556669634800103069179680265807101343450302377493773681618440047610309218071592915791138266250323026042675992320144567925868418672031182974438581968020991543563423464618729747755255354392659214794586263881872853999910131152902399642200361684733453502824624337961860805382882028843110182072130986229612001588132131890101070772478977297739932328173336578070477711246547553296243799337067804975070948215286518492975832070712506916216158617504746577654578374838584710475683705736212753987128916223631896309830933738732147919030729259352272416366102277059686968451525687699005581947600052526077010493037041992699329203007226176201392756031106412471512835896031946167226640653909058817071544587605307208804349388108684130925429768801792971390077673621142388192637797864087676018851858481682353939551734920882956133335986166284171007963387165177365474329439258473604146887201557919689191810455579137560969755267891652572957815328285098974002500277911366429671083888502151619353281692880226379242619195955548583174193366670691770728908289937115953007905386120051506147589105958854075102544053402048602343657506260713832947329390915496809145493538124544455155072315450497358946442936643581307894641367056085957747584833415407443917536885323244537299554294373021613429910720501937228039422403812189173796050306793068291333309847385257005072586451151932261760030715873434783081650179069452741657075528617899904920925248708209335932714073025938246297803420839230709147082900805063966655606083126763387612647075941694003371389154230333043743905461735075252043668060058983027537859223296045886023767764028158492419637597376413366601163739223314974543998537921741784561451945397865603139026988894778128035605002877207656834758597765193146664103950093520989700721975501836340769601298774685718983655059146304052961314993519608288695583159752085399072762946714920652868089086989729675687457408859265688211391964024803346517578993874834959759395781735926580551249863185049868104210598118097517792106063037446895198088213227674919141258957240376246820463591750612830538063196742891918912797738469586572938371764546983581525818513400977463885143538902273339861293307951263416858330894827867652934763489245560551803570588166909633694048292570741460626580000760750798358754981973123101685120899068828502002783248342519680207388686246756829254829989111835763384247018310479817276249278430437935149231928685310616492552126621018627527877425245512853710383242433764467289881311410822631886945295359672101994313317496416195358079582528134835136964716007378276343791413905073884542475405818252233826820547107895005742950430547284163284036771483947637997292101098301031380952569570104405249691041529971456011067830113126047109732973330494908658722886052681037299584745781665915114167162867058919062020510727394473061917252508147201540545912380145727730618305497582363787305369845266857960260852905933980098883342856450768904718750407603022424288645516050815879897447606909255647226511864527683910189103098754551648314296610120287350739876415660363492018931988388701525695140213363255926282068266365543470491658695427547221713103863025484119280254352682285949961448402045181322004698599494212571024009906691333384358332188869546995036056571253465462815960100565918338888162251603052680386423756070075439744750540470100703798800067357696826271970756357691266690781044383124100590831556403799266591461104328899026650907849142455602597973472843565986867894140466114193123912025843804681726364865498516394136760690768185897845394045978210543728251623447514117203094412119238462008149551974334912696295477818003797902057390903106681706788126891775914954600023277335192924725587035646272739509546620558577997907895034969982655283458808771280216922155140659715370573069047134622637634315088261272889368504095065972343732898085596809289715286038463001113083483919524590853315240626588600416623050517512939019421110683856591535407378155034804296561569113190640602050559566629530111705823621830987901835812894815773400692318083866464759908729625343763835045865811280495721598512938457650307336326919979344391332494329952193187321822508449478411574118675318486310399905408419761232118394200498048487902972958992546026204019902608960618289627698585327168189115593833212332784477518222591889918107883117536606768887034913944570246281208347095349523661998219676195872152081904823101417653457604499306031020469965721102452287902810734033112452266299441604689222524239731754886126455358706910253408567027924503559936809120210367595730767810176457967896222273366687724211361556486367340664554717261365504887512488285135824214195636895915488511190362581899294227755171962419620414632126006011154290661643163320141574106912084963482290701766106178437297404962047234318507198960767114622806106280813159708468830346167289213502612354909335942109448184528731467984815517368415620943059796957855299747221133287372768212156058073400206463430584085042964978400019927651536196084430209219097925465794002775941952836048174086515523669255082198204122767099052122873085732826867467597383784634341409789808902300224637463021757475373261299840412865713039328572619886127505613722903190788492037744260295866281271232139390473861840664915056064042802260981744601918829046434719867029796035537714472021151548117722356501264661866952845619746628456096027019005983473830434031154624026760157843874998339645634450939634378501161311197187179253196493968482445608264273915539452315282920808117752723330885434299099067046602899511942496330081665361405159130125406602775986435868240833712009717829992881408577515772702084089962247228205072448343409237346921040357382799312495393939074162256130769373180590488683276003108251942367600696693351471233375040729049867753745818807652209292903104271296029673268230773217957469509827753731551243734459680690261645317970452201952833826873375409161140494136171031322065256841208115138243883734022620298674533709675864929737869641396639586921300105807390910072752605362342772442281847378953540034222295544608910843977115003828078705775848770718662781791693279515234045776696092474343970242459769076652002763070339605735483315182661985088336995258845416296332892230747495414629607666587082916657312236196643786830556284090819661170008920919983331331211804755467609586639103344535459436384158974757091799092991341864822566662338702493437697732847269644606258581011096194374517086670528120339195003562462286597571439301979540802817311828974204923793296600936420601441755033164855323868732067955991490530676151725161994354184472714881869081515952838588817420529266691284685118998495343681075686775031971325938387986005202121473103667665220676729791738197050582585123489746830942635552234300315470468342094167468244655959285507016795431742404490906601189030538572440872516029470973868161901571090822809020940834178694269592848983823981499861270762807291192724120635371275245071879918383813331504260832799650946601984826148629113723597392224055671729987540615646735420683334257900865955018108907420222754221533520213861953836836499223475011929927795315518057498238506603066722071790102418391185443323287268541414347369869988821548897093976485263283833265046793021595751357844522062371708349418178239515049937518014475831032367134295001557321863201989962918198566293285450893456095348971436798518966828388073530584959605886114892110698451274577292428328576614490214932267997347438862054593851628801662911511453763295169230637965360839338140577113204208670021024560662910793909627974789966374266873947140373580415520830849507138629928922711893214060677066705449151707435685852508001903988832958748097486491395701558264701636970407513109211561679654960247888501228926866154978647978291570778907911457040253224862737692105776367331696717521760064604402304458390438149645129252323891386130173790081534968599430178232479291641949240558655404595298020123705643961319398553905294314105208191900756348632785864890946708797852113466224500943643829324906943688020263900867524900257332383956887017470410428243353339127312982217897872493078102939796070919767265692711899527775249811627336044089726607850369694862415136615757816400100352276988432321892016301966869389333793420916204703831057265056759963508314207512276785247308261263951979044183901050619118744810073324056407644915223746518922134344245309483786082908516519001901539768689279059070641258039356250384262361733845070733763912424957232834778438371951478220033598918237993052019912731149062171719803272548513243154274570732285387270137310817698054909648915392534394753922277263091068749502374628133455586923060494279616708896338124486649408568076891111157029883750088500562553192191993004679588938267766812435888205269985183107604537413775486138568348341935701130696440368084164467734573650616672694208662125774500103348871698766867445160599410669994637305223833505350982461492015591296817709652786617174516003721302499798811157796786095450151609913296773158337189302723820576119306106436523703149387458988838530830733174149320196169081639089911291575125959353731835622995844799213003759343168172297243769954762882295671374471774749193522205546992471404852886848458599743403907470102065527385532239568824564544971513390089174709239751877994692357157326365850576815400394058919713365504478793801457904733540891983880252286740326161367539384356493976535324335828928394048991214790071840376593598616537877602680644692252464071809532372929223028537357948518458288298903300764235511335891489233581882522324184348371707370781058594596740968552232726306811489913007275684179945755156511863165396078772833111824801997821321823815934130475270428092292362578941340766481680432948850738024909004182347023986640408316814656189162622859453970955463856027354325789512589303811498618103111877591797695853200296666201996725699561756312035999264801077635563625926044508082441501899527458110184954762142054745046398399646130900558946670095391394108292049184770033827393620536003622654325926626762194968033781527355139522449252674096212373739559620481568483010741661314687329423489785241952830564171771716721832420047031942063760428505506497514191699952684424896722840386119664091985151288394719246689053156294497714233896398722976851839785945381518968296031850279207107237041816681329978293987000031812278614749393437053972073435438095228907805783436248827958619641685394683211486954295039485538625574260264824371690944174964597166909201626610815072312347489309841821170478860411871507061874922993532740683970422819858917800364950776640042360427369180014471571932383572798479148765125168195046876402223043745008569950196176502792579731913175423204899786722868067362815411405981741064548320482430770251508777948513114631900502216004516115751025322614399610623138432400008293929305424461912143413916615130726115839458121674486968749210992287560880377021702122739034932554619255149325344473626341044462458144588395526807873691386255975181542574917618871181353520102760213149311521674574357322539297352985329539328050576037851077227889628929266078130825693827517219927246924537175096993408420548183802878730095993573361243757687758844477163273718479548833689217325918745282683398101724169436071531995044420805261940701644501721078341217189749348988398352732892903394640939966298271739820394955202476232914221933440762104093856797807051481899238052850099523257616219158226431071368512560180378308762185723963383763738634392649960826010760013208590223049532844588719478983177898209159666537047979051652192175838123347135015695208773200167512220722395906747094090923265603938305117674866134515146060753424239953306373690673900979936012918572029193336782918358296464699736909951694282039322436734238125097344600891687034887844216618801616915286777127650724473116190636740137401903873510766286495505039693179992854022483507005026638183423076783316189234866519422569482306570635259982380785905406582928799701677012840980609889478509984451698912191768677049556862761450421202953449263949673162483926881448577143376664301459790917925272738607630439743011563656897031900652607693105532397650887524904411632981170277264132259349452716801799952242577721696622930126903332831345613761451336178226252288643341143101171662128181213923771793149713529257054896509458450359308498578017603377314664728137275951500699742245368088647547174926299234094617324583380691395588427105487818921716590788235522908498278277310469911689739488085221062944251812133971522294347588282678678751184031801904528182351150756080641543821304675789182886137481818940283061574807339600001400657715614063239319658247680527435927755458454853572680548419026529750521344946709261550192064519443758013933845629394481165285535128655594158912450625913588001673175492719970644827381282719147801451015269305147774478066899645610898241361392211572120510622429757640489735565487310768624228468503387980401244258854983603651707576125570199217715468309249860867919249805027289292279097748649300854203591409815155212656375082831920133676365035438790310993123289586087917941437705532627238602633246194846683315680573639821963972156901401896998756132232799997594263245427551291484457759307202624014711714255110044598900663040763528036561294860540854805575312655843618211626419222185719842430167396154364706823390241370948429951496741235839829238234887610066469921100665707053949216362066492115832173926279055272840351875269665941064409197508509934469894705066851489322515092820426140504060959777971629973030491902812208984096176799190230391145642163804337461564273549576311107760423721672883221742860605581800186195666567231667634493717320367289059502809323557017902725688227022787925674626206934470100478570978809805231691850735605439210471620688329543973610614830106672986418642464265447132542309478662434308202545771264208318271417764218190573365522424525754278174947047328377921153225807244793086869097589574198805607901162264006931331281082918119222230252621761684544248292513944889730732626738124412276034891258140939854648994077937931899386296317269660081186052928796976309619839985133695512069347129861626853468003028720099864680237045735236997530636146705956991850465172829544400349354836869173092712091157619225514852027429794470804874847953349959780234243015312893477399166724985753222772349802232074766990621768713919861896115683736439976233993835586226998068198918945200422504761014630272082249053449642304243833173178068057378708690042906207547594033631515655811999611482270201727965722892756836392527552390950373571154250473218724600845056101160919961170112656311424983877841638928275565383996023257282610859897443154101885787759638649353993057980758240858052624635411563967651175043023426173294379166493780078106721985740124408464502949317234723083319752487073147847125726274149928239650700351711732329797686494219053307044079749279382271361400893813878787482443335504996320901018001911181999038933720483093075161175859809033082915434582140507728558530919673172406174200233888550005771855380456925252480445235249177600290306525524559345708510434261266029224701631825675531138370147563897291402834271906018014792358761845012277419350631882430625152952272936225001742504382974571364728724475341053763383043786733431037417180129792159563257823065158582294875580560410727420943219035455390963927006567880667221000890366894222955916866554184537451449975543841102610568143808078833206993409687322568444525899468467269905400856866288022974230378587641662021378867381700297011856947549804922765830565365137254481096166947715023579239406971614808177171143904522669138937319897058973396970325425810058472023859015238128483656383589307664314235398473406089976392600510952923260870449241636013736863424207440947350497934036217247071816799725686697171700080986232161858517850043833192956614649848900445236688942632667911687200687883585324497239573928504305952561000720818710720395527003554761240099951446013729831260057644095914305484187482852896381246384535526723447391449251426752078219812205689886713951165317388143689947209936065140466130098148275476625849409168839212267163572121934712296497049766575658009493609955401567999713654398800916521635690118081621640585910517064395007484278831364307766660505226479651522336502010087396296288318478681085649604117037050671752819458748259022044400049726947575747947866642529597905055840244708996262988596784175226901516544983429680493828705309344390779835620663682318077210943915424353323260066035566557419262276725073129379189896984922768153565490465271363000865517029625774112846247976642209327626566876494754209856378930696213385534765030092054811742437153026511872962845567317896090556917144666961609621731619728511496234198190539733120211719328623832217271502700990114438456059534488968892961903307989933281621323197476447905531543986294378003055444510427594107971371769852266468834258940858101905204953853614209023420719063478098038484025804433926716822435597286714392745530369579843401959066328087012915498555679182615049388075446531855273371828853684659439393397905592988555132215107158685183528088184334349123009769782406283886625653806920543563584909519424326429735335367784126320181506608740218383218334496171883169438777628314940632374567285822205955120573280129212703060223587245658726625038731765833303236059557909437663040678752248105222211040743993496983135574596940895504567305873384546037569387283916337317740173654456542095534365095275229237780390765189172426388225770625607930377081390556504072631802412149197899086162463258788912044971288288652387383774398667789274179203966264990868031014379541504552749330786779034263406052129946341570656838333329996330318190611988494736755977163063625268375400119402727361126308271485072603788380633155319504060135175856563219952198291396115997314890392576053844896787062267600405925836920224418172131521143349995133384141617125876487851147227363886049654365900888204933302917062589588682122159108598962142413360392958242325631319558126541313044163788805271522842239791416659740526050709467897044069128601666547881591449885384280191726663963934242622513152551835864497190348069437840183813227267874169026598683792659608856524655123271839107160441951821019551167925882001951383573650269746342206781011788570958714688664609854779687328548523273278844646767492813068566033820944078919289760503123843849174846227397197626068495147817076965993453563787862440931731838010835081037702939776634601230089142037755901749468917266588104725934988311520516626867369618532396288394359943456456132418135278231097894239877040562842712524230428378260350424639898697643245699504548521308436321873758121158470028979387563303275420979126767052524606569779355220762148253925269259054769076549184755043389722582634231778173497535239840654900630289808627572062620934230963747858508275063326876856488075397594231718917307144568835980866736204268227204036673161568309503050588644958514965165625849167507816780760697454169059963111040560384451084968331840391139566270553765940841378478458802258618189606235311344904954694725899183680063487875040368529179602114269020425890105835995477368505588691364698382369351813805790230397663158878822260180030863531629061195982773755993218194892465692507826204039775724312302530571986808037819579036337078455510805530474269997809135052484525037979835532230477355229983710206308491772569980664643299452656359756906911678706711502401144238964180727448237349325279192302366533097764776042504916093118896487985256102873403686049138647516059620921108955526093946464795388245615340653139436071472225002020698861804385370326227050036700205389130375717344225476651435971341014813530264690777715420315214146238059782663051030727877995896967854029546166392947949102697529671732114603833671294529711964873111721812033252357951823713198484374230137646413171438610122607471669964834793371673210456388120241405788063390898593413280764495942275924364761102477929164217948943987599832320291043283342707646349259544389018356906834787513975560495541138784475816313885999730248669173255024275062543664701563012343463831573716301212418443251013944441212308616450039842292134342943594969422124452584922164273035265731242114301152516118727407464346099839886004200822133653109503705640956392972013241122782919379449847864850684661069954209238398327564930958955693010906532634844496225403034937783341623464254667043817381065586389683922935242446411484824870080634752254912209660497128302188227566338001443169350983361023074549235694759532315560163666896000797457850606707099873180909757125129842775464497169366259120532587775035578816729691569864270955790197914216950362862949569721809573935354240726752008383692626485746163089035954975041635372840732575389090765681045052845709035657777334169475136486835264245871456759752526498237837636614428043696486448810053499896118771260620958132420722784298574564830459842377540560468188775437899130892808138098308887640240438423540927569017681057727012265897228656355591175384318965129747797963757023544157808550621569610343385203710928122336890316388267031279077543444180662771092646608303776763480519793669129295384347624655625649796039759479178765502444326673040375805024884054196462331372938848247930384625252635755810779028820680269376218354670560500495512470905231949155639025181058546748491016039707942023797221393962242469062258396870749234500335893854400885685161253957532843468324738059107653776019362340361803130900916104911173635436313634745159204921431272283102040601890610138226334203183461072023836111120504868698577478443579350062191959934569124708768665221203319458367459804289652748152270950844665824946250138003399999815028221795746398847795460718257793173699133702388920246149541869655515429297447596010211049621761839758327592126856299949298105236333727617999317890300233403339530264551751972672597029417056868408557095442268192800663463825970997206006290016622717393211922892513725647055028290921543058546654929630169948984833429498651973217846804159413481399455958875930475047148041295433042628662117352346670456357984205760833437657518820775084056221228931402165491820846390498053178156264054958249983451879262587708165952057420572281277310712880619412750806825819787317254550772369610431323128163487873461242165878599353222486134861201333902529075586920185099070446819309553770157232451861613041736683822543553890403530419176891536625303335051086346898110662512323406581410931725903578399845012130465245371897716189160403258571098221321628902513487975659419359358577156567423991276021516103118512459791200338691327426982967376573508890071538041435363612454999982057172716254717807013602661331146427578917347761298939971869314434239643158728929674909555346968460739279516288298707553056044717735439471686841666912452085749187877515201277531883415705274189665578709884939564370310733639342484530204657641121058000218626230228724011748117525760180778202499337461608340456202488986142757613821799816561735459156310332310453863552770175155133250866656426101259835388401338575617728858014201441018208128239951512007344598928779021375861428769805875450953725004835317802567880411104832900985584892158983400231139138768597502515310059705222726054946183611315265638744580691738633911634068817379699774673898363535781657599843875426686901706054319593805126832806738716827334513796176513563672608154973574836864124741545047204522714514408019885256379702085029156411968399303841636755088043404490163373388106543039209236637536346006952855650436806576397601656455526828723576956136042566881724246583253325119130545182135584191921469404246946377197935930019582362379184023701286667017789347452806053025223468028432208940661690228760582946524817129932560483407603512040305109448539681362705819851468330486528549155994568993839042119048118765840866716602896147385348661120482161464413606982089084742294748332750773893327257860884050417827936344427324422743840322551074475634117541710864886361744224683597628133257875367472077490979720843423000568647944162386712679820706450632086205631077212645505380913541654626567328977662308305307700435026888495044499334819599227479799462117505737399733445315142941283250442446083308019920806800267846806881681482318868844257741562880720880727599075530294296042819263282031019274226695278275890632988538137633729962981163453252290998570324948168257108818740543296481545208554565031852724080093911226221381288976193821945973569126418034905030920829623695041985304258039035370141621092614417112102484985756713182733098391232247546336806227745948799974372926493866625394930799296343445990998682289760957090848678738075290033770247061052159617277569863446803168472905211021514140853213822968031891339673697441331975734417907573888066897581081671670031985842909077063088379633787389795111368480705936860102515229391526152307488751597436247314627739033410805464050729043272925073257635025842739709945474883980585511289114148907337986292840682411025989108579211131619224047816014465661329302129738037520474589303238755667946031980805385630909486179601728257656061826914217000509141808335338053161310439274170069837863605756110917870352172998087315668400905900184652395110091638610033838859370300392110862027570124061176263829212435319079414531823955015955282977900122027586757653645499743752660398397708320506620847154359023754291521283854997184105404706463531872473030203814141224434350751652685122525307633013606107191771884316563440642369335937869720877776988601720507377550814510321068907457371976685222185236269993575989629802306469068744066120219966474053912890464991962741566379390866861195495583718222706968045447853758177037855836871327860336159734533730599164981284817851341979058216458740140217517102785576813667695788562274311556359793342779294323307044333345943101870131763660555610410740928890805148370846187226632559691758999350503784168398363812967119453498819002936834483287173670112162690899472271947866393599327219591543965735112119068363849888061888480216234981522316108096380098161766249109807537951039856935758973656018153676330426075852133428449400014136620979799917595271459961055075431552051106671881087399264407904578279882354440790157049490535167356200496111112473573328643216121410499415892988695059790355605976356109118165783946641721006264632655355573311845258878542254672526822473336997421597061237757307733155673994247278417199522357742115632291158842005486039101012871609917583025661094530628573613517254934816059073959417028689440315218848086281108096323664135226587874076462526184635094984933950248442374473316221018093633580974122097311440693634146754844266498100063121602984177534915778998128625150432899371204359515524068205244165741722761593194836081505228655164948365827350451185224745412507737467156310874831292813680296307441817181258031710774416407458326717062180087168126729219450359348605349734535078903449964545171545061985710689486474549551859270075235914586510280351245442314171884453726408181364302269940077132185005294484349023859666060628088995037907974377316090222620547917004349987582669078252893901114125454318144512350304440756207523255137099668698719012575757258651387283671211826455637773748546620847642670119637746627792364767082573881407425883163778076317013397524505025382843844132820789408388873756742781432824548397373733151862860699629435955338307412166356542688675758456222513769297833382468787482375336539114939248557250464928824317990561116124794200118021703793944184569976790974806178091225870991486741138656765884210961033415019012398604985341215231989181642966904759077564662499120722234209828229329256774020933016357206923130085244279255380985097691238456379172902062923854753430029563786294853521308076846513739758564765312488507543811676517500657971271426878890382806249864236811018354758556513558857631553694010450438364541273305258830874810765784290204202948227657837385838566879794697762540824247406825939827949766415503130596508079698690448447999672912746624235381008672432944923876546438748057884349451966985880744219715677570387372639293458600135390501342915863943553986549331485660897049039900504834457087277067170215243148257395206432964219697497924369102268357063785563611674154339911297243970753064935147023471470525853399392887699514915232363242194265038633518558269607736166518105542082958322697281446533979657590455435157277914121593536118821804735028118887282286690849816130791596208450574629642895159990487105876457135019739559197545743921424167286368740720334977004084405986610854990270888027455062311694546144958872882820394586457546104125183709587222975006407790266895937789835146615156751689075755681015652715055942338761873511878280416597698731528629233812362336307400668489948826043162417553196287265760693048165164276682767640448504357752031847458138172960580001223274411533790896120648792602963236867143618781566097716768884964043540059772588498096367476178365082764904415723254461832722451814200248427233161798196077503959131499618489433223682803870926336092891790910178734287034470492902805125487590254877738008030703263428435316139047897120370087968560573592169000659355858372211606079490719620637855404740106004580427928628659194972296761879290284077915142219089048684365472465697323671577513359311672518933178529625135031562946138849908190146217210620066748026029022017121114956729709816272302839063284695246410141725288455334176830449910538843230747520319081428682796065232327317962073232419316264140273810014483373667947054473751051213820307128963578705588880270496186020290210314896573945598263022923736770238798071128817562830235559980873137015642292625618073874950832522615083815614911671177942131955753938746719916928993082311882091877632028348068881603898151350076788654364555138066657907756675892485176712355791730127624340691068311161659941634762470129112323451593993041097335660232136393485190003850232842739992310005039569400600211737996262772719603381015058233935034644042326704487490185733340222425305972400452794512316830774441845650050208268490007033545812676677182410627513921233233373599339636853754227414736356057432603006886970938229657600676662325073624097670515004714898185527222312239910192005926197538221706293759459107129078877156836199849019191985718787148463401259526907327862412430728823210865897832539159762437293488108959378180616153870392531176569213429939466917236802863213089624159295589839248005520072920339542290137751285870456332174029906738104343102495895497936881192054373211420864314192612818502699904496869159951336010701649239247782091188624536977167040811238141004791506608612669563909812737931080001132560782001499547931685083296581582619566685151399580476938155065085510449297363702231695656445997780327940105947263961946778047354224153737815538499728768570444225316460443978069164673351164138196707067432079809990332944878074937785940703738825660446785745992290593718484816091947070282522150932701463975599069685500290888657774846266202951451193708662577977965865020880857853529987771349919753535464934360762393438026079569150252407852100144344665156992130464414697296843172274388171668921612507393873785192010997533962020407227188433530187241762032332419657347980030365458475972817579043400663363801955858342272257114262701284921160057056139979369783070757709324541115989309052121473297152601843624103349549183775788639394575895662620489401104347497920845994219057682401616616887771855805499240375425784746741447901796299694166262950323833008472091633615959246634204104759699427149997696379172288720568219802735660333225885283398938140126697876616339946242854013983011608291109468426389681544893396019230438552291606889253624121130935430912240028116650061863291950972812329360346441893413062331377647931428974405578793235391510342115511074789413387288675171868994687471607050909705932214182713410344904934527122475820325275498768279218357483135319613838996277940868413081738235058224869422205844662227732356343470659034701450424418376084892864928409018573661677461281957627924799785953152960095108619597008418016586523757146604372955849657499020882526085918549835564176515205839361426857596893292224034325789212824708984228894985094260909483814697774174377526805048866932596670261532465758246630143528038838440724879480286430949380991233046035924181062844558688922508123276013631034011671527986327362132447029108170278449035550647757525668169304738745848759462240454093917379496026182872146047189520495970995217360714307998151244671505108097000037579676570862001224708674586468752977858095918764197860370757751981403058471871036688094725133035884128747017028647291530198956667266442565819438153290095986637305212357998366249454363496211554952082848338279205342821707627166498187263029922073234093369521050715614830661956863533072380475530373725007317604841112912421173241458345966934684803627660937161398662355677556971184376492280742315055727055486075899548758848030695220962592383682998125252841680058516251217107870961699473292662921379862181867939110587570768822622380026906559398486788155361991736676639260038973908822061813248230037877046186259870259231648231993817544485141136965639498690546961370855536735643811275800262179250876195454063799185116963854733982637004037932825838890331609267048590536951944964745045688309004443201888603522403043646308858919555493518234887650281263335065289735497810878466512959139250089507402119052036550105419822946024014545553380164812928009333266696243373809064426507388757123512149715365100061680255649877543001488947708975335206327444831836799549104406192159641344481173783239755067488245020595138395116176488578116904682362057243324563669394377085824729538356770120544681154833440499750948756532516704885406173735914629926171194770006179050061843847359062253408477639909097838803529981145113572296359115418224230003737966335638398066399021117301105678471613720397448690448574749179923547690901804979708997640020241253606859763712609366956029999205220773347143339221691294275067470161199820309528908266969654419097144494517928819327778610365353641209663533419803795826374315616971351316134475423134943795823260411345319786086654740182624185456520601126402522901103183983887407034790274891677759450534784793233333929820564487689814779144695721348057651314744148395922263816447926232267928053085590078693583836292539717888799491713687153850471339716036472587722307928138439447265770929002810022179951010302011700066877914882370850963426727392835556848869591142694611781989398154567872179624996710558995445582883143705380546486956430385321989448717025161503585925105031608126392397823235545174044149746661265575033513466258570050314027950422960714750602047336651851125001760037214109072976771082021688666644367720950830683859566914767570559333515391830856073824242636512789472708982250685000591128309245786577817290609532933739792531081687294974750393453094548164283630688063509740344148160514844761169256997303908506759269051766315893315880546030346515560486493964302620739000818053823210018431035366859753043708032268919825622760651675609962526026991105186520460977761896097916120332307744670734243082083692359562853970129955897466122493243403755405364664154306135805976353867413938926859128777519468679616753599212757481958672686392996926480894016964427224861610621283302238458657604094208826843558584508073452012093063681274511492699335602922672793659079930179503254874172783108314707870068399202974822946962925928165109315017708902652560028676975440315233447211556645986641615918078931757355045729876707356028177340862371009836716154236822774799230554134542670261424854634404542749593974936551834940276468096731891881347609085180214050902069380878387708031989352035748517272199721102845352662921327810927038621416602660894580300283766162248410313854590404492053259632792270093309770656451512027555067895866444815401772621632876865176952461997942949257735981791187355138362736553568497848392866676754043214464734009614357822308763887686461604215367799238427790117646104653399275187616352246029636797668276907405331911631459395913513360040860705634746340627384703915196980405179013354192753488910666430758478428989491942493409916672958402122799600136683381878685222461209631836077790943100660880875397688450963447740423470533809294349392643899221352974847923123087523302228306277668503535020859418595626650512887862063545714630463863488644516970800841814038018648867402893342958029785031546047051435499406324189464321266050781251028927630270212253997221627100163193526898454089878080216589697708602513906280323187902097526367178896597960674186596696216531907524195493133260600036908720525871075051713171495557748542752657823715200163365966192765350041911604988178882029527752899171324760362066969115185001340405765179480993042203475530617313147751587605645011757738320200692159539705214967556404388121197706875184312231313901137845421340012325486009000804455564258132876328815933110022031866330869171078672627539854139320911882251154882812381898244640730070055976789207325568801716386118764481533664220195057349161888646708367822022720773864514850328946643661963351702382739463538765943694935423312827498644481152152638790244416023583208429243535990220678718994788854322850030440294415479765669397608545327374032990353384884274163849172858418607531450347707493452857606559152775941895281163986917871731958626055809079436060127402903680362496719623727951911201814995576408026255919176822304931563094059131014876498454208324489664615256689623902680927287157372682582666957440143709239115794234384470392451155469221730292446526287056743415111194553037000590788833505177641859854374836131154736033834653575853016321829448577007628398376873865876953097231163126168692789655116686631275333022583465645515702168769351727016017589825552547373127574086145331940441983665922179120677120413672852275087744257793882329337605138910293066042052932971129664349831920648518841340153697436735852718611922924013115951368966836007985638062436501850358488210478635047533693929814369977030077216122531973616556378367907632354733892117801645915625716695613185430917868230712007985002023403967455593889633101661094670066881030826847655014487914723768608067851451257136751986100284902569798751712038404402442237563017575346924724306853163076372883074918196413299411799523880976387591438633292935172803686493391865383167814096286469155682714687663189515385516086818529663331838614935631892647190644705918116918002430836510881833852257665062331896243218971413924600141247155753613195157086814696897550608286357652850955733561475994720996206245703059461402219587919546715512824487474843394824087694806998699997354298435841861009502848816500010232138587707517100851019139176944069077369525032001364154111121125416843420461186646559684745928536316704312091207598896981659130308927866312511546883710001911027242987560435506120822642074270611849188303094007427569262927106937637402429842061655480781405325789703662846295540613488480010453390015884270518568609799117307240438251754607177844005232990428577176553903329173413928928988539287820874160305547298467154293202897279228221150246139133521157619760981594991621292446840316219502887566063490127018675206361544905341390995410157325800827172981323564078114404548899591459380567220260033226328308668095906870885039658098226743098630706782839079671265857141236221611560120871131415902748304090359954887362192916582713912916557794563335129969966913684932955635934788495718127920930777489332715647131218222589312730980608084334617883182309799768979335669390575981846668749567235541709518143069660347205743177982758862903609515285969080394358528220592706494790344015271981299104332166334404608918590951953566244960329648317380459372691475577208806807251468513474939556229977275260920628994477669927118043706371267707958441346038186850079645066877461245276618659978628411458798435136859497862462816665426167528642005818572510849817956037455087251394903466408319581764709852227243919084519247034042359686761891297114993578093163136529964488848798525492599352461946779962076486139561526858250464754612117580704886667569040148688768312215314949590375922342594893539961559211400795095875000096684162496694310932214471957869845231665507340440140107527114157518150988136526434857440929057138854037093627203653777129137731190448832139867960596636607323121020024959834682639734017228766860226245001431179355709665897723667790625051627616177375823642756029698341352924647583384085391003863080692443640666840719785714056130335022905097004977163026215022832100606279739845812642314058830093619051918557180999957032920404316412272511969152334781166079653721094511085376228481066211881568700102094061762201017776873980380292564801986523488598170926663128662035512390711167244515281898023206843661127852362828345529043065843970472443587322877624619601130093479041145211439016140442824343150642018141405115399123933917270617508138082859303330563206784378153222665794805038675688507217276979111704597821546777777659287582700431704382686357247246173759080754576025507173486365717086854081698608495670362677622426025877042405031820982580376646571942769158986960363496242542953413762073412986940211016104885331181544126889881829334293302677158241122634280527658220717087350843717630756997421644689722660203658806396621047042563446827527572525211335855180565443380870147904043063757009118435155469598792916384475023176587997560603655444989378527504439092496846007347877671241047200928558669719387254082533150688440949810583261176141260782522591567076631385206816228614973863888280956044504903574651741323469407981522408091432442449513722011223696761261452583660184690858314790984260444198356436999745992931807715483896845673151954405954577847269164742394618645757288114169054500683694839296601620059014822764062805398621076829771985654705428346117055563220697633198451936484280043407115218304195532989406350307892141615370258641941600173585479520575457107000894199277274638939460095717150384381163450713942917014573627425297358976493661517936478492253577385824012946751271877679817224867503284713056836078655287875075900412621654309137597047418058378008438522874937672899867875763442549429697682669353816348161393639199007245125439126263323448793897539995097501445235110058774313010965959436855440806636142738389999527744428432758644026866047048595186784794750676873109702144190839833526427296992852493242081654663228664196449728048238395889043980101911368785507222560590101457503017969102949359366636083235294539279873173129093865577488784279507169939183398349467790381197953802889059925413072389065477602543538957796194495081619917946182968326651415714872871473302447996646584417485528048863784877592963512947863567295117840214464670225791160130178959727512296255209622598384044519441041793864972500286016409285077797905973028150157441507112526714988606093206694777156378429409585553690174661012961890602400344160258166089622950111895254945577348079346275621824178170637685672762633213191387677850955672027851060679755194239844521338863768136497277311293025957101113142991493165728058473585932278829518452582537436606501549302231847035309937195127362379024797828812973064615964476262403603431845239293233790245465469035718895228569180437279491474472360371474367653177571392866565159765948308803676338632905555153200524488601827489595091361224494538258903381088052219129832048218970715924387936886018723521243098518885646004455853148663298190387747682532175867559587403044469096726310360579308902524538485837477058065775101186687860310754176034443842031333778812943259660396761482730054936824438604487861193161384212349762094402216210796631314846044351672985099564714095538715249345084623240733821757113219604846850791017359434626854282315736280532470370614395725139761236319786186283962763464093879095648522929339497982410597669656424760702166347848103223641760946669455370816260133142536423495593138355831080517714618433663169917050521379490727618235530381509252954900942310628282681148850233582729281221638306669434824665356330595930484108219598281317552632183487747490280116064416543923224552835551765057207246727716302006361695767137383645741887200314559571294046275120972322651147869646941960571612953321966740622810187839614860855939883062000064964605821618308322570117935276471470790929040620426032772635713946469958851336267539908300399748259417659442626060574670286620761330172674361774327094393668383923440185773084610181322364356257310240795673439248258963034950363141003792760701553201128563956448505166713750320671377750020247996973805145689734903995784904983118010857699547656022605517910388489317673641740112620102412540444000709068290194489261042127470008726267387581972011987567053128990234447034571528943199525581381098897362001115420283185799387164360953633955959993021591385146523822569660663282919726943824358692388162383529097930408263300773593018451183844376754991751777319951669918088792754837420617653315492794707185927445523910111147387623329349118278926484713436398594494152131326067444041122206113694512273917347043097673266321046269420388652480362011092863529717341149960111771582704299988672936666118706292704292205433486180984894808716301592845356826353190054560943703117469895942400489907989339926797305679296361841764830632299044657667380820581590127406409610386312462887414666626095979134193263185285450744868605157811571035992416475975349433081821278905307314679008915234581984707496872039286266027066292002602038317354988322052184154356773114030753400804259712888291647247970276478250426591750794600897589351806698742113933771787818645779028089809993193480730858050700023260682330151749841164308197477532778587233815143652459490433117408361892073993503628191584827102685781232299198535571571609901264581389773799781514343416970673348405084419672426843434878785065088686704900980405696490001320550297717046497566164641725613744712528423563157346679781150281853621680709197797937950121160133366822625154415773818368506303781993085793511592565463543317713717071579613319547066127772626986321743068455450358430381377184519486391939679753634613158746417635470711920915966975425113193352143060411332748964625377405005082939477276401974375686851956674263971455878093836370000109618506368840086637068314885301625575530268204281117607553805414696264987456775840291679684627567487198866905441314113010766768694220224989346584473903874578573557336995659241955507508672654766175841699411095531766384154552599053954897913188346033829815353666759659722736639671389574008665100100145373143413438416091569235846220733354372940758490665143456277229498779368793044358644142006837298266831710145969731467881342094230639596185988930589357655423486711196548409199139909566697580231121604583823475491409188956602871509828528047834831054753707677521230421840430147764689786205287561682800057249098102084019309228416773064066700779667855734510129494144613277204156198287346731152006969597863851021545740312188872883816299868098292796373524132512970663843273623706648087854058005804827409970395826185474053081765907481895382623896363933249893522951442311087993087898021644989316486945455655685094837074045619789309625417655477566051655623329482756522636230806236666407541440288631490856184158576744528134921375420825225645735588215735593857116259805826392686801616310379717758942699107597280356150232612855936425896026632196757793900941790864220088289738863139891994491564116910136625212286927091651150683128215414636202382837218068978069993824805398620222450361209044553299685851265683539528608691614719023835738630665795961543766763379888065083774012693099556100364829830712366665392999845811243419517421094806088628495089319569332184476364572512709758271631017809223286770685190767282970437600904057138590348005447448273744258001466726501453511834038706852216251904057993019158116401548718813032759502754974941890337425416887015118607244554652194866725503932499105515263296284598306267477318265413711922818576637772423254387507927167412992358574012692532107949137246634619727144682349871479576714891480768684441400498012019207157971126639724098401982279233985905679134541677042064085999476611414717571374700406870893548548540029920729454731010715269937737745123226392208802153838595471468073853753210767404136558472433607691794936721461251578944283908300635235085397254372655920576995672763478588205922228951322458077043689150861654956194635493668630566926655706096898256147645270353734641578454312591799697862240095559928454601486474400823292686875244400323974657222435887354557987962910125053828952583088064184263553572448163587452673925389539229078556966409907898919902999606080387460686014450512212051976199290068412646524081190180947698575762550740194729500477634723062078152812057614768553359041102215488211384576455821031709393680556723079854709599527439323161979367851248760839345052860397154762227147011619502016476841945280552489642143440098925106848113828974474085521396828609160672469673986129670384568076525669830849566945895475883868260784943423056677555654849398145695557656781562043875169480611098349168911734329247120247808702631819846459333398577741153493760480293819245345424833678240247205221625285933877718866010054820189559631877655269557022212195939142232919300868365612974873437684337878873533702860911055603601999022336804937514143190017065396822114636616944523104104722963667558666613471812403843136814403227795863914394985758703913451795038878909148998518715722661897145461416059233937792521024803798890116093003394832278774731566776179606070594665806160264841922602576025694275657426847994445308202761548778027571621378418907893951954985874543463457275629422088103232114638200260426352497876926082994368868197940362746055362508762150486772176205044045958307857984146785600615539890149917377782634734425137367706125452683628695099911898703213882481174938366057015009670450200261427268493126625810712008966253831151714256464153578597439420745846371054085793344599742370572398372717713547243034726194476679347588750107216824258183331558764892771307220687584137725225930403643670189620389945111882760354725554859276134989163532159936700815999332345457367258575409743757089393183503782710622528130896030603631062814216361664489441624055486419557186288617149364179629493186633204134135247944982542683170477525277700888553733342964113830831656418930519240805267265006083252218591852741970133271534514139330011284900138925962229536697504025946246025560577121117043075193439994497318149768336120986763130028461378927335218092128078109180748496345770925962578573114423816202245718144005074719553519422752905802971566972052410609220847720813089619403392927225911593854068279224722306967094659348207344322193891063016598801665675961131324064175490321075504773362672929684990484282793551107230119557990181325341627201297597924325562474715025414361653660446336695498399540287244330828715542519964903577418046800164316165102377344831729503176323204687256623308194676777419148588008597655474490780008257095450520629893695901769860044157006526504642965591708365775358908092922800638814960643182899045778376654714939544078123018393902336874161172858486740442816601602477100196092515793160598196602444649172507071604282431067189151170244553996865561096414081617444160473635965547373289245786554801820772099237307176857307827767487613149412591914386325991603101724094474153675610712423703138039682356622218207044965680525327826286397496948480069508824630337409662228326215379667955847255860438620276114229795427310567226555300255030633219197453564995418104569482922678013388384867416517652696963992560472724225049396928701001131417451729706104758400119521837772848619740619583150454060482569290154555651012206391160730555718193248245180790476953563134969417799969240773638713122000213663789379423984781937978067573797896601269959274556847834936429207049467624276493220403603094528743967660850384412854636233550615806439465206703238891566271710096278790035658511109591083153659988743434763655290444134609000416607282974523228057384167537752173778950362738286424188791821866895755516162039745006273427109195012976125352838171086956908258738403090865747972191189318242094901578355398608937021575648436455315012814161737084614906615477505873883107000338751213629242082971279193314487669958424249523085571031911099229823210988827236857285268328207925613333910220286269633830250301873901997933762028911953383360217756338115726110858870155651817680812303010640743561997277532041254208621391901370948331472185001364774568833850299635928775038154442737651274225915198611161686326139291580703029486343108912065778382432934107432775817984153574549510337461368774766879413467999265414949987564208361173217594401923627903246239238365468380948768811208980471884913404462660993952434584711357246590248501958104936913900843083874917823460736069565354453911635259300767544016997218007179576394872880151540034421320038564057447999961960191237282210264440605256588724180026158297628313854012216008400286399245530155367906043620706964903933711073888296561851871174203710486840552914816955234441779599148107809484939270981328772961800386925368218806181154428024260151950848058457711122171250715447191846278785473659271576069044774725359867295954198294013138727249616247891508353170143380443564705890023414821918003028164484949914200706896827945748906879776980107531451611256614858878805587415609932950305692119645949464291212306487310206103295483166241845664218872976100951950087749940157959035790330461793092847383821404760283538433041288956185582059319249959049919269803003159434304551602935723511811201512627368766888070558589861049780240052596964150604579441703049741283459872654595011334797868606521494231940365597261203021342267426077823910839870182141140866981773725366031836426257410364866369071902183306927228454133695477954425437816868346257680997485826973225980268721056749376534570343704791260310176114897744509624312849653255322823884544462627713470821926210035148390337031168616579616181445249732688167007474300470252327168257327735821916941851531416769056560697699766175599738925621214939054818133849695315046766603018180762174808395708513005812245536236393183788070856732056418503587136079357077090262492304849042022825372799173775863583210675266546478784703521682793999880103059087775176839275642097374951239205337645384359288867771843856051399574798615768919948054302308679534728839226475015010991473275979590619684308310597755076208882755693830728864757784190082909314121315232467450735630865931214634121730508601195978777245501136412357976064945868234392903466941544823586962498728528019194776704253446704823189211890552283462613795324824269247090810266015450228907354151109511879898184037478379278520071852721791168475112386708143335325753186841317026500702208591248477562818900588172091070148639611804114440599366535613356695671502271305923614846258751752655309254826198508755638418497744793243652098167030341418654463206367495879896003546661470273500059394161159533570549095513913194834749063279197804244234502139180107809292461652775034403793100118266421038034218065575388037543354947662394168140523408490940370246084475402275645627721691876771976184211267996755778234969009657851959882716047323898929585109641076888266409791679790145713357969223073405979876088050040936904315412170961807675211721244671293623260459008092219276712070379807929160922746315911688709116961661342121338923497610165149548132197968217342756622279392575474599826474361984193078792017786656051486504966860562957084403673786900752540648201422929622632243894036498175301853023554722231301127620590893111787347013351450903525468952527090479009055853478932459375381758865996214891171075461712235751739447836353788431821605180591846276598651970798658136023221420181128061219868309450873390884773893887258926679895922914502633934934280926368209761514246475166182833207011471378060052447289361287784540774144370310608058259646756591090213470578635581771625591663694210812467218225779397090653876037422927628337164871915823712535644862651465731465187182825808042088787261020939546068031055110615068693329066509304258390548957890798878834501409634016839476649348918672350676181213314591250333459631462801061741266004106020401162908498546196727093199875299794602824951884992243701854409370360891451992013436228133172829390341624111465521290537869014810626800885794008621499286532501715542232550237070482200606895417345556994155171187442578942637386594643176317740237983829166887159934882448600101581059364097335967581203457003698926941839360466422187276405269869604255829297056428622551081638242474191700412010848057731914870997495978173378498938073940247647195341110289587867463849894400978518174937552643574487793132334511522934098351913181736085248380698876978362530089518418502632207879917624762467521514932230570086255769579722914081975836993328471807752170635556056900088334754302502558634101389975737809072495364119599508046427966070055021084234573109797323935687437056314550697199576053630157767925219174294215919428314721490258609994705383524809330285132786582673858542150316400728363634016725333095665166033444855573638510640260786270440004006602832710018559460967162247204112000017592036861988845474063209759849591543592496943328761684079424287977383552096868259291126558990849359547554523181963787300820051311545389152029674636640811173076164618973601272402273700914858917451610358845592101470514093710733505382322918809839422188488219512518618475186728007504018570633406040504412444903433119959100659124692625672686481614572636947180906539827700648715353583977688609338569390345076740526533744892316975928851505913035768586473498597457809592894556512563966703814265449221548126247211386126516308767822008428106732299273052381703400321965041413819545427608046016679282800784738941668506603796280910816503611488830634685641674385262867410047457544058029229499384958178410509903324814364629627486795369128472262703920544649737586647106145087906240126518182205131398182745303914020860008019034047077385429314825251338008472873626850286419558580421980043318729973494032107105799120276032822418748389473931463466720834627062249838019323098540380389750071449675115138030747589356058273629165001113647867526051931296451478855578693429347545097292846691178245923170152089806577623059244273980815865891113061906089269311293062985167217978694386571408360971739627173172840491752401989938905411510545946343804154534168429688125926372464537083206206833135728520978974302186273953378243860239892639296212605938819408549369938729339223316689520207676407822007251348560352467620433634022080772050333449967776788246984551007022021306842114166638833760435237281981728084700958411811469908230633768250595919059922875371348592441588270593570742511923222942132202879761120413932715361903328725401128638830764330340877057288874085712858920725478371139964563787793771524788566001972689126479731758833089481528313327873530038572718991320757271503231800321395371989178405361405807543708891188518871235726774293568489907613938762245842761114842863974556893807759903353239439786561834122373915163983422794303084019443099696360869919687011319903803771181714539984318291680778490800658171163466108617489721873491595603137154301927622155077146909045165241720780965309965130892253741190288111354793681601840128220573662832128599662466731779119899570248437766842182888224900746133238905701001669300667966381538718235283641706877412617356758202612908936548605514759450590487222030307477148109883604601015956145337566353951042235240817626111531826332241778920502661648577213823676305944639622808645774512388513289521021752569602166829552141665820583434506290227003364193227561141205296910086670342700364883855929958448082249381402283343806924232869573865217737165603058951311254570453085430339944529356069575047374259911799643354054016695256093917448785483542037177957762007797879013586704406691356243914686788139072006746070316456662104326027801576238338330749413831013718666570521633350203892256160436711768649460117044996804677648506164056265927306024500509213203600750084621098560796945654946853672068418256949950243636091378782625417347581334630670456015574491248329865965895563915640692084864477112302088844134246934921758594895979404589498813306057087645846535048420559014189124167478382893054277989273105852971061518255637269711925222655999683631860816400133033082342731290188170247690780921113919598895511760820698149910213999794393375953522814985027538308594353725752220746556509665374425061214225784091531696720653210476974081636342172734343232308290873403870772391613283213834729583056938438191846384320572933001407726090209829926248908181580813856570079689882511938914065680987171841782000479439736523675453281502817917384562875212244223859629409870146583433038848883826918166734779010525821962176913263488832255447181837029068643507715656716522390538539359459937061075923380809072971394678894174444216437942809728832287301827368873221321190484711096836361366938741446237812198538716051504464547222861584612969414131328879168809023720993470391957189687928654121296010498163759128258971682230925941001306614809374323672764437698462151621008423568771409933841993721060306076502932094023122399608460315449723753731675863546064804909562782613922398756403895767403972330526178487918528707951530851007422719371604654471734281364006082871195216328429928160633008232632945065581831301823096853110948403064840871082812827771724033032823287131244952088759157747186320362249676201539611190599209931846650896094541215383267713672892614951645617033698465666722243219815569186744628172777572539919217618509533806134544039014630903986376281560459981902808318625298188251181891444772569982835526126035273662241652403224956226083842702360756022073829735214165713557888985959374754687831997734145850387807809558356870895855659089891592263964017800387771913533719243047972279530286012086447959593725195183463473132410182968554685468763540369305860328301332460647649676636496484756623938372035220113187815275040702517360552374138981574185639421095115962316143143323705063642356890208479133325169686655084852917502697029514210954759553778574775227921712264835677058045158515059026974280587413399653304534506794446459017595750153429523626081697919239715629004300532532041854065308657110251346832031832013879019177859004929487363755013978152684176238971316164163469639747198207881323685080023379994093305881989728320780572876921652778081048702850173916043860377929577453247797355514245111259220271359000147876218547910166242871587797630914868732176475288729214255549141386516176149609456921766249204397121085262296981168663318407457841781786973353814182604821737583373052943543200369365283991250108372390148405807213063358232754327158093599620261610506725064317347223880677522520467916538246036566651754486300723664784201126279862983928168009896417253999374790444742834834386846959462094238825748911480530569743723955994338465793300017351048556423626517279600034215089535623864364034782897316309887774764590983546416971649002194504394606776650104744789480900809939004167921086030712690297715940010044034118109698664497262412236490054664234476614828642639593408660687516362372382625725284001656353182526678812255164616436138726751260555823157433481234922506153489091122636099812673049562942410337029302658725071265359635322316412514874711750018591251562955604879857008927931276563712063757785914500851655719580248102633097917455131466460262392611583967621279280586038793426380061746186591319391158053938008773399532179892681058769839069633257341599093833667575913574294875636763982194163551914965564231333370931953199794864557924046116644677673352690010087432708426578121829587473340842549746272268879611503073493234803711180133529805368354896502645216053259127133299056975217574849714478213201198028948205498636371286902760091713985631111520508502704641385336234673433121722451020776591430026539037772577375944823491539445204513014500292962428051861172161947548106641141982616042422524926603259488294818460406997430397717115301424911740137006058791825815281916313633202411362568070614883851357338787248012226580302707869646615377445436219276779444029918774318660900706747096629752519678899765451912285868075353902502641529634427114270491662646384864658574721875316756128099341242487027763290116975654636973625799514853111403369900332175763623788901062732664227293204711514616434906542225880119308498496999122842747007887190635759535889953377677344408973151175301296383676311222198225852115021546296545916665608641146651392830566297747989784410538056777714877923555930543079941000205424029426182532187781614050355337404352595002569848404349985309755689066065742489482052830511296417112161211025810870573309228199301605774600616612135200340655495406704448222560290467155247189176516453549315061604595767953093358965635583474105510615537944286146139422399391193585820080426091483580504847949915366074425567561177936176997868223205967367100917607773389827159464576172985351312844314049046192233382382323052444722737438375092150731509881747130980822346544010198654981541572394526657548787142410644772318485410287471047628809939676689082433734273808870541532023438296311314330566549808118870317904855689849327418391917180412943921241542547528550989024649388905677971293528724392560155858387936163272914858628266378942970258208976231961025749080509493715773656954878560970406622077653646413986494643061598198680623461016475386755505330724970773388279744845443311641657650002027023126705564873781344881083554667925247165557966048776481427090819154421773564527455382982248024912094211306106199951751492096404336820705330546220066532792897679280719611719956456915188451766667540745266035159215530736123482187835202923557986691974307076698685367133224678819659703605101408380080635567029071206477084089263952639723136355570608411645031597113343129535554889151327314108568347333696340169160742161028144957322928289621713741728818109392914825601655285274604056403224186852188293957624660454171772471233957616740267224126317862415600526058580051202758097550244627475785092826490510739079264914081889429671523753344362931736739490631264522970839082826336653972398233896572741321460146241930534550930059699810388448329200715552463656977087291517884727427005665792582718897366491229031815250784247758759411842745075278792787987783619533527708193457969398608393895939012311149234500900868767590236196715360646355498276660793863140918639890348872495368911475757206362205750386302360148178833600789289247913028572617901776102626827654375318348590946853521979726762446155124200351543359177778846261405733173422778713379072475198915672941777466574578024602573193609795059725726554457833194295003765438364840326790720979169689558339070645924212763236162107912325025931960416464021640521645139093806766527285761768337077965048691854840275590963849457187506620108419970461354188110397072240250080398515807840628969165320202269883477080331986156268947755471899415327007109056894420704843368714456319147898932704955533376517220258406178824304156265931917523231184885926363228750282448059650687945984180324548866112433197151848648433102812087398807902824173652234608512941353289535652934400108152770362745305464946282014562245332022371124005088841435306724296004590375161020473811974435156215800289289491678297359019499394225157054835208616641706038302446054712391693321033395584752147212788272003194109916473529787259765118578383960964250758430604180290371119134572324383485827495289839006288553037040070868521935858962640651481055189276113002913921953750145813769861112180393918468134243531033079956715845050729592201224084804381095593611442215263275292271378464485608195043107672605226846352076904753799171440117165133492320807958761145716728139266005825154306182425638731785184862491475731655198522093893980763751642793975165564952132086356538206294743662561789723115879488324411553921494047979908210588767483875024402033635301007069036198811587583170290223674564709517507360014806834636389529863075396161408881891396205249286169132983526213550039265696364502408290703185633552023693684651624317973263680324726380234210475519584465757546030844604345367032221971837400893028212394068918086899989770965679412750722362783069965489869891041727123616054016170514778816033799819165088965392105589027248069187368340672236800729079513007902914630828858061759938420685392939454772283402851010630681205530267335119364187422274726236340498929370710118815564239680061413429337493155988107704059306757358177320447698968904496748766565009616091349939779844750594897687735782404408666926351914000017885034427996594177686700361893051772043854936707311741626517399325091304437746463179683201880521588620250177296908416413057155099360497892101426804907180462457870343739678237973963956756315951360678382036464249948327992131658369382012345895848612309358917047301982761072932420040907614591035548388776130354171844915151750198241083170477458850299533040431024880370126682235016680887558434504217428793930211477862518914793200592825450527774870014435140333759602785354787557875721029528177044269554016677065555178810736942644059321834236204745473600845300938516196030472481567753060552767308828405458584411195305757188880292404219165631886917121217976772293001806341268868591681056741197887219779664506832404384694144863558114351905992402931499008942700265121731345375914736061322515868850630813508817716103448886719567184305277034783345005353164453281332583913627835972127698196054509802055840743305241444581092984952497164640148830195410551597591736530137105688700913724891109462871173502833781978066461539290831900715532896723223170437515754444347684673376033183690188372076072237312766408488366946208217676190671437920978743432968326374563404795102716308649312014935421822511409219838545384214071391361121457193999395890136300636394823884980286698525691094419553584751606707530170658535199196815922407507474502254976370308666498837581919799072882639656628127219869219266934396790834336199877840879368912590395877985199750533390975505492684337713749610991136640193940223708093964891503259770772018741008572199827188691086229659035796553138152583343676975719341783379556533135000121196191507535929207951846046465125078465694947424746051114686062369335394508911756505231739444170276100288721734576954399010806961217100797915184565858064008195258881629634553593333237909827253328552499335952407059833177157775168613294074433307018033285213241517397091878716126932002799473515536737117135538916386565888260455788133608591974413310061331170973459096254408946387615690889827776902909103633144538740458217027918512822062525631142180937747405216683190729081994946032435172450838011628434903351336788916174838569938625076944945536163424023499073287398652504612877774018563787619227026522848018692396388897192750552154030312432562755392983882362017264034404579932631703340474103989712412239069930007506080992995771614222434417134195543031102883253317286087926993921041618393625530464775826835912548963721271911682331382723428310234076495232809448743416011217479294065111254735450877715741239993918090264058643383354314412790806220577046993790615356032890684614823605567735755590726547794492163768878503639466162859365129926460299512783658178137076542185541765216566760493530839426104374321667715851208367217026401298178919538505981480618643834394954484178282579635777239137253824107707262107117624283593055070206870803353559673180570451814688235522936655967919253485593776089262402252827350774137081744390926752637783416978606672451579021145808135584079631760552609618609806731865855922571542944961875931443557825826059848833273351118391015426949592606498939187140916895512137126994418277140606797050100189582632884300649852580433708122883494369548928796908316909293117250402765224263733267083963116337378941466357443528830604535130189278816863017107295706936794805935486278979515131865098174459659049594599717453336027720705153122005540518931205998960626680993825236914128793456331650472924321812013439761546170887199660263144455872587682398763810803378333132541356484385890922883473331500279181279053111435726530315765632404632721310278750937895795570562211759104234307836431879950937905330826507028840421844388402888202262116806018085515320855709628487667051239996529244852417126112199763242544670012107977130890454503643894232207422522234100513074382101381609653167188104315248924582560632896258378991106237233112739113904493963000324711965025024784448192035412509460348431514029291263747899473457174243088504383705343621176103273553103889069866718201899540494793238419268341619721237664551747141942503825920661054930567569693084859362593406156972288708385393244454847168591419899059522080155964097673068589886809942836450844312914872789718844265334624247608490249437992867202223736088253555996098711520955860293441695206653335476493728469912523079670257582557050968794280081464726509900478580300053608566066258316979904224396133255343562672409331984562676301900031197018087263627265672840194037264023880488809123223465113332640994013735628958312903066620423294243361393088234935283026778536655175149151683921258394108112372504925392542585432271060480198766782428658329114313336774792063288317166196504838652213046228898557603257307772213581884259662675396506428814596186469488554733039227223490606540285085237987787026580875801871124769236152588679326003416786025145739464225447409524846589154972399102022214085048273496589870643572021642605014685266912402280977394916249556305047328430813590855362972040775681518684153561312150216795147786709274953683333927797761562922738314900289743854424772634370933660351040878115425799993456480944019101394209050254000763911359935617474243283057479659234609404911450518303024664171613262116637778581917272429441435796222494655873586861472944164803671783683031558493574852010771887385174318214525070588740301964739687522152082531519954170828576343759444297890235684682663103468510713565512187052508068629100690895594896591826621998026713500246227813370261794045779910402932829976848441321160861225696421013086889532033111839550417404959214710382783601928621327969633188111011643559948764489786082344593837036709992734909602697346563995674859631362526555458195007082676009568774066149473947265218765689754348734874556667624947562497370385765239605052223496213715004579089443667800947548170999052388522059979057198134627397237964157143567381277099062461884824394633407800149455079977589523885173596036941421557533879765263405870561135567873458066648299794917954856388020644414397355238607105049976232564761655119300082027369283133812675975968400720990493343563080776786046412124202756618704445507505300385464741810487156871836913837635397182011386113789817469808945780576373922499842727832514223727142182569541959835669380945445629788763631554952452935426629521062699733995279035236807817496780163349188171435693996115467298256558124467648760931606497073270159073276853570881647208373291054186365527166367843542025136500846585971043486558973464365176033811356392389286345270009620613639929915385536371137106002442735847998158573436288285697653902087930101333045027300180825789614991097289809128590034170547752849531554591622775287951297247079141954935367041013600486080240178263680931699523406132893205660052658646672132927152704401356050562447430039490121884917025286989817068670161929382384047592869506467692889940985687894489860189783374703132488331841206957320613836925898387619200724539114168013965782619853574526498887060472323667372940372285401942488349495844327129457199409775625845349996453736162913158632672464966822024981125852513296936370320623027383590139244409038788471142590367724330622539741477825028240460262596575073276328494678858705339313163880042261300330958632828443996064118906489149334288867572681970946574644042646691768936635462858962794107462929202808381854617613502879309516114464838854502317114295384586865318020838391979273194680261241787467076253921913113236990922827912971227311034407243545151729494944609330250945953832680199283113900784771205421193245406040626853192753688646236389241122366944078567705022206864360273418988173583231011409900258313293732563301952973010315740968067142064237024017367821858782169284678258991351824332278067893294796487182860466577602487928241226986665649836762738279464548276015655943640515338573386570913908827296929557955720763102806439291152108275399605855795458557412215230698155502173930214469011221557812033174785578078911922142550341864807263488750486055192561437463681821049610465851473945119210750240333353848418225492770641698439024250412630634529226070111960862405830962046620422981937060254375739374741092157755746449646455930757508546291597668815027327536036493565018839982355301247944682577349904250581558730947186677275473163187183439411839660304234433953884564281457774090938616914781818670620692830167955920151228417669961676851004756556440406664458166543690241418191737456698717092724257836163974509368639622336769483852616402941172985049681092887802062183288747484066629098252089532196023194221480024357581997746171970806855085485492699413883631627205764325680180476928862815041151328471522315094993383697687314779445771502303757710588888674117433632196170772815587129000953873989246203524796277218634471745677503574587102881976314735231023129309997314307359387063016249027331196296133564065770429131158942059363398478195199635932918193236700853843574070753672660468608257463102545250434367615155247493542534791808362618865239379510449568014638833927768389523510193177791973639631312652551513097048840013146959203376902978923556648464363674472486491386824464460514398529945569796791820707542357749273368237392585406424437782565891930240028354719811032549260677875643405424385385471054165546619364083071313024431291736107570165395159024217212150178596047056396209248774872410649825963210285860716688989835616189181955593315124897250196442233757949218179902807839156111339301687912861466777733867939353479161131199734368697016776212810029175781289682520516008355942816479334758381286527487238929025861681911632287779206252902593462843136342465673119730435661185875012510723531069117978434301620184837857541960899020630244048751037378984417738011831162412428012919041275362060819071159267208440991200894456232201186848975763843943690023401417596366517285867627621603695472047381886438233081574790489998972805726299408286190702008107324600030502518729876200271357524696750776540142491345648722811465529470977951398498179906929265579345244297807337876797991857247433678736804725125117584435926088156969166634922413051574472613909773318026659029400685396281231929356400006731049618042091718912097388242911961567377876256095840434062687006234789460826574182886568200745944872602813419321524593361019571692821136538285675625245461486782000236651763546796089476790499767968478232539977071857423186511513241324200976047122046056293436055315803080173318390490490524627291276270737915857734528380046260908323670092058535767952342945606519734746016413915140645992101977625601624224444254577171033879719660176416134658477371458651559155257880222150830247614371466155821224253260576235529751166413993329578111268719434453057582759330632190388773985640575305899790865922756564487978374050503413423979637209780354782012431842238057779577967091607929041110210219776185509553436992258486803206533437371394362358913291711990881549722168809877358102919217090946415954287762951344141429776076768500669969824682027768142558453729492950874621496342757249154786348916984974844767040774924034628920024767624145411013466820986091551400427316964781431763346646638034491674519054060710666403640386622388865787126808277962205515358222003046814802173412635065388127970234900527974321258039424989726984739478462122025817613266128553607163600504541598015220240309831303719675600856937512300762911690428967036311846886338983431195378103750031204030588267948562471101010178788137238807433770625540943549340564774244810788708232279319274097194855297131732397202575705099805508192488426270654754285413381257955033290723834339164394134635644132879663217764502506260661726961934859636785381086221641789060873235428740652526651725070409365906370500264438380495444799859807029236627230834499452124490853162872799528260973532367124579429240381660509406005684642842728184548158827596277202826818962802055674934943646106307323106783888518488140278038418697530160927293030455446515520399103800280268431339066294155153844243532339969783686658916068756219249514729683357296145954282475572319990717902819806975011645836374692107788495341068120975883679951519538222599322022158059618849056534213874295041546351516927337936690511365596077497397215064403674475427748090634879933254475900039649944028101971454799634748077167426741504445044840921482837375605170684075347946323509003198871829202760854673597711874315897332071610442692329591024626327256751818902224873329295981803773925212700279414994281839363189023806729497469204963728610303590531228963947258370271636609935848191099190560360236403368384250752779676304445333767892191182105402135889977265332832675321166163232124490217890371552576194033243442523513390320615026025874034903133730010958249444791880975363132024473158090674634782366558897945604287932159538106089931001847628440154665142844804792613137482527913173873123388109212445611675590349362052086668971447792354005668959760664481159460054586164313314664924178242459276257108184536038256999752272058356602032917424824892872097658261950619646550156207851345142839926730616834993836324985133878363188550487723443193930598663577764699871103866105183198392417914995677832171074214088298436213598818007927232252928586099592881116513799158467110434277804228968436586544602441379772375334451867273098040534678132364389405127037919702447324976018821417795690081132034824379817765935996110483305420310244490638915635298566896865835665844567895984876070786505746623212775221862253667404422294514242571132254797245699167703326482763891103589438753212798447993766486739746508449467227830271460459583391670837627522882958036628349133237627552567628358513979571812945687028915107706216119812628553461218723747979660693963722541265401883732097167482932302758404477161209134446966110002952563315356705195026612229941581921816335152890937957661750540508883081603104974079995963890150056822039234030076088573538709405921788105960193866500065393210203161066436851447665084959443718929170465638785274108906455966357480822133499265336359120671705241470682135117866952886548016318226603721660494904921077119161836620642535235052415357069059716279181167293407224946274139312447739472030593843501941809514046171253797103097292961254104630413288194295969596114201163340913655335716142371369294204649729839765933220454606117763740591078630144653949881481406706811337979804237264446207048998008975607970860889366608231431254318021689821880328968022227304738146183688141689892059761291402819542755421106997682283718876266044555424769996391526762354994725298322154572882397715879301469454293824584758294211349052352659790494524088998955100676172267105400073613554125783760819298785654171984264551256044022346907520024821171528148561534300123658793037979058921821026893717548890770950418570085180676055886780607620294951148156765581495101403686692746661880970351276100584132044489006784797583160200591124316672279813763442628165383186729903009768399467041696290299664302450650658315350243574033197013135736808926077343698461165852340224375715326195304713744097918376530078732462841215087271851773972072778009057790056146658269110715204143922809755525037710740213329155714574072140040428188165308077750805608439439672261868093667308566798885271348907253394928438530294632349144216796094658146945258454291150784135577945304169061125807915716321524801109072925236923114129215905048595760317314579157920547958509868108945041302924002486291529721976896342780716667100002288715395386387201447048687099095727627995540684614184628487522006992465192457210775793410719682949637987751269111188182999614126006798493307125819351694268814831522641814476833193106908230080633399314282116837669221088366447207041474341418824981596264427190574141090743225072523081895699626883253848212788370732733546454439458434952419495744098251497298753906168781025448382062848139603608135875590160605733534501984509436860533938488821125146734995794939817406019346370534082336899528668625847329894250806227610095372154023422852771061293298843903842687597265373862963292073831633047289228102083713913196990625125669158908285445805593057460700140614353549110378072217717043079340913892943400894511525985816285112718023096385629686809704686497172635151361376667706409791555481740365489070471403519236777761499259853738865607068898052308435361337888149075711909227903559499816315773386832694279807489795557460817251691975594679431303422680327415277022466471326400371659714496131245829228890945216706617959560849192927097551458488530623912882777223776677249575117604849696391253508585640920052131791059447437837941248912249485559482186070199283694849021743564916233583302140593068008565827014982168673610206913288604038937744332552672882504811999863135915367474967187791446134347308464789986792478113027379465313298861132142037592315631507198796628594015444609141638007466144664177932631766763126161599474438106310899387637609383636288122243620066945264884530476707214423685168260058423385908545438670645907163837385666375783148965178028520990643636392664881835564799675055233991646822850251937229604673359472737934974797589919916126077495596164195081511946142774603934776815827874712785214560800321329331340390231900383828865629258741635967257920005057244428534572071356824569336296533427858676634769551434085354269631265702148980422920612961588866380330244351710304794701157254418220710945698678019774017451300491172388901244711634076843720802980665509447938100590907129936515803708361905565791786694228884811235310929085324122660533225929054284600303075259731221441173418481242058639375413358328118996890817468939179661107577419548713166097729267778038119385776207844107300051984330337926270770397927860550334113847340612860164137000760600570015493284935865020357217505641369403460831553866857033088271631458864418659093091050836542116879735729266951987652611945702227891252443939596640188782045601421153504696876469394795220032112844272267415814698967162319061021184459285530703033178291619858175449347716252687976841843350627289149013109989802662278201909242312770769543439444475524901703915296064583266395242962960524819506464259359070694844741985384466024032366055342068119858341027732980985078950302924892761691699766350476381986862609318826652295437046089324497652746028994570891680907705233760775740497707987618049684610503173094622918542586903388582304468886988142764696301727633106079253776609226935986469836160998509330485671228804704461275757990333382597243747785138240598777909071615301935000338078530600987778688721742511589508935141927128341542620297727501817031451617564385826110108651826278443775704318389052692127836018137024562664597833516370168186320584691482129171095589863535033086553413258534940715989732416357790564945834901697638670573130885450124364698883273510766122000385158801975547661438352470206454301029993842551301622901663975666273625953764413917004566812762937653530009748460468941893519372333881106800494195339362143358436610632285399056121723386895874307927310650227883011525717207608436652759166253479359766113034053949943428532717005699581754730151715806649394668493508381757392130575271085171905967356456947229216409866336093581391577576270918772004870167936743125036085001406207646417499214277380145006416991735463340381509470656107995285203882563037921152536426382359161829208385991160081014083197317249400211034489579595640631825956959126582529053088310526929015103795621034279654962051210119046528698097480020943847072655962969938293874116517624505618263280276043179693102626519346878213140621082614263868304598633804795083115526601478918006986769548563049245087422637703249232265592476965379631447169248510774787787876274778638514486876903123173468702656931958766656251271176748116245527506901913218231843490633083443375647100221005542477375836539354334165824211208930644273151186922245490559906821886429222937735201693327322817174892899134708353796340075287594431157638823708145667632755228653774558080488183141124914104034306665268023839498417779040062680621440964336247495609308201020520043240321656114947119116812460951179458683525645754112342117713637431862501099153920700776207159350118017860565769449069616656632550177204512510840415886567436821674835512304267235130775049244785152719345206507530234797072795041543553516823127334780297951605713681665045037615597763470605555723421983768994265935126400792593761055291596871529125834397879392458610701944806998153273883007886091184714479498741661936575440018143406943002138306415586900637047773128174934410580886876126511673870403173700579836177354380445066535597446065873936592376437186032058307252237379076723692003903389112002248267799549810785099133910289686266541003751052972198524793507130170360411830511867606918262870620420668263629822450263063173771946515148670584380921622491791296617709077558376209987051692133921592741338409179281217153513993638742265696603039558557723438654624037296087073221794688211401455931968708242413731728626915900667533615377798749675616447302119433507943182985752793110480193765946080410687067489096957251959364151898831562742744848455734842631660215481509533064288194463553096573056241889595146179617694868989732437050132658949650090128575254863362442759822788779805499758453686633300346475902249030149472277707372979781561038221209733822385260252132152386341221831754935617914956582274205491702674347221671044788595927988269312418306518574760184445115247977991332577661817026759198489238879095670106065960817114806985639685628512949870306848717367910680618432741920569840749841145529874857663571219139735689258950920594187556275928139131772932508837378266822066431379370326415792629807341884930633246588473585423784730688714283822900675776997443900721164944624585310915629801024671674834272900801106858659004734976895058632434849942919646473275491269672475969809538567900758380192321053234311432195297328244514891580417221332758262811745897732577902124378930543529865866241311649216743095724628274130796147651456847341078646556272497603263335737623892194855693069344661257141412532986535358222343514752941838013519222414904926543564028448542111802368892034659816310446884137361487735786875470975541013554160886569502930590692162068412460383231146170647102192584371830233517197873388930725833474277957874586265010647220991599505388079947916785174418421257162467184154493224929560948392844041616572044577482507623908673567456825992833902494266753837219073591481560214261713436916487328950317174488968640186389515706691674647298371038428216603931166162608265875524930125750432940540891645636432243918996192158232967677081458632450594662294827720652897579218288483066169235009608373216821147795492040345397784175948928034365213699986450608476854260427013982162731301156219672759677124550255717127475231982302766490850963861965539593723577291995844383575315861363666905823479660257381761608599278186004212730163816682649580539367615629721266245681375264676468883439710862286277575702811772210919009126157892915845050653207283734715311807045267450902120247331955148740712285229805270685743041564791095796984936720966660153739398725415237235673466649590159586117014476324247329831002434509523116811141850712830000675648307431908688789958317020101228037713659167913553338739048758630655805549289115738712457770851171237935550088501622803980171549575636545056759757009376181702351803872025576649104909200954209148840730927810339130114874910129846743724039658390548255165337818505399209577625037510522036792656368048819780142652849970968205534293026731958438917714147583228430060155538486741707455931442195657867995233048233613766659577724268564221922505866535545866902517663799602970363351294342696506508527231140493032379004888334863780608165861707664749116649009036969937126192647813308254001725653807377566849508592864472252300775998208016205343957092629221737409758333336885354798341568945389249425011688280173600420604721076059000291336020216237404687416238958120028211958752590594737583764993666724847746215807322085001514780670551250967574988099035973463613500701365526865110874487184108749757885066989502560357249432668974695908095625234437134250050441930574431449239451634563079951542975490149109436650252134588602910687872545169824974361185617878050208989568910728711316027872405084250457241223037487099430740713351101632542341125905701836549522647821134326810843364628106917568861334734934278621833695979024552400072415959088613030942804924750362257034815523520069291394414007332648252840691938306492114078894889917431354781691706067060036523538404612793576876795255397418736237630242200806866702838922542107751597469435628777933869759273445514246136027753320881794953771141687792607333460562596455796194174545341142921244417512738525265108267579571478606701709987614049588850890896830951489719094945742163672189824327625420530720254184546739459981851456632582559304385656876651809112829410863566438660911180038676878816891838460621580103678407742865911287130058226836087903239466574442408772893384180228881496208748753981568156660209810068509982506080155059269846579976250902006992633183406662585178148803618012836219953293450463361235037093072018428040733735993614610988493168519656590468910905166864169253064625241819868747671878468242121670003182461010548799276110588708408252458007792269250936124264239291571749034366835788134049464365510689406497171684962238020739452179353386229737844905179227365149171738451258843786032509531800266654079649062282750395883875613304785533564896956344466830469459684128935896321881327711750816211856876305243065216183061029282382493712190950834041288285778142087268249088678353140630064365188523095022798067651502147954140191373808416288814850201991161661048533560084389824362210610057462515034268560837780128868138684609171387611647494325664780445198519111043933375881586071519519983456137935321879355803178287161488462973844473754858171325619698196826809776141814019385818742421860984639371464867199058693026829536424176022004485214377295142390638268633818418046034008440940516678660417630996439847753141582835411950028051700365278248176622314241304552780039407903781470558503100972927827130640494371984529638245256452176284796591661616027913257150751283012647756293968389617930861475890678418108875436730660140901315429392461763154564485915563297674006689060771241309697140137281142389682155535243132637082100599670774439932417298454022378708270532159619330734976308763954007624851219591766756976339232741277212398437239416067425065739347129921294033504993727933143737662154187131272487994670779721253258135223863046757093178356110678601489456078044064540064365264541442819475204001484245172112480416849109885937094487618304773704854975897554849583617219292771531456028650367277450256361241381270372346451198805125860845447796827146509187522878544697502207317249591768228358304347991339224169809764659711774240296740669947620932985512806035630491813581957650339522939035528372549994002524557185809733728374410148632210295985872345206643674148159792209836056538819593236529341068192251240493065902161570265759766219148790759746939840412985727400992774219200433232396090689515354728772181841125634495220256184807599191979939599406992397006918879351034253463802959948124880324781949165882560093201553681833517982485371689942478476586194089012589159563792662889917563377085578774355223293358566543269299711047247878255951867922376761126710809096031092646540141187496236079983060916270268670581636172185408311403909496768873720380073502763352044502816183007343201655886473811743938554241979377647654832380840098742547720798949467445148227730588212454339093197917121843505147490836624813442928797354454274083310435170593472641019495302486337940442579050957199258116767637577020951091194606219326044472555547644941786172403782987824160633214617092520140992137540094903031672980470208039952892080139190652375538454023661064019998587824421384006061111273185511218849636569940486776196146362189520708914443322502527017044117086848778507540914755357775858775149123246560661518890250956764302352608034898103564424801094365189090600045746834371319635427274550626089486267328337136920960403854832120566132614950195906832956814049695836985893395462986427052322398817188737545907753390385345523796161085024498606989330956508468873847283436670442291099109441997587073846449863404236318326747280705225573461022411576043924183260208618631238951897201854396045126948474942189754484797544883754034177343157139895801084859354837005295013944009561597204215259962558456035052113604092113644010969471420687048437196999725986361213628444791174963972087249033092397055568740909441653298803850789788415817571447155729878709881075510766234426163733078199331531619259122954020572418088157823175070988545558285490854086998540039841942972879629548416095749221220029688473062544284752663749415389321157048003981040087024116928468445637507501056166550837798498739615207076279617478679809190010863926262538071508526720125992525373312450939929050875222967140417304461794997000560497264137708825556044264785129959600084521298483438466837520922148180100239858081969938902197588063073324449689832568236444244972820592429739858640433186368094899011916374106299146723971981920724525609269417820270710373030774120534948480386301732546570530400543415790228524651313088550806735945644053418347018060642834630932273442750892791663817192348462338018062650554537232374313495319151738773525186293684456695488499752763216901513990876581353731627765429395988662233427415197065362090971417130115979672146163742405684431783947202865367622141257519498073856065829943430966504004645439013769748656186225669313718541720957886426848899676252103739938138285280830581006545154332459895042803834010873881650442979632838859982134368154181256126689390657094974537554871351984763541701608661141768748516375709226440614360641276227992345700786734020387856070472398711296699533869587184715940963039553754878444224489924337372564267935699264106030154166670341047908742399472576332727080143128755469775844572722126402667292547845852921967255137521215250163030943645558145462258328441413531449737199380570006716649103683226679768749518464330436117053672414297170855575856830015261188051671968646344650629160927287214231159746803002695966033265534282382088014096403750632243300370063281400492220113170491780201407698471754788253585997942746192924091491799197791386359052113834849851844134940885368512910213479421582109252520503738891531556168474389655397768237616694828858693547677598326972678566211471529341802562515816907042652959291608619148034497608720253318452759671854107324638276647198571572780750293838081270064833895669395521670026814181109152638401838036440769955302969470428442367186440916741788994189685371140443567169211285987828473555146057490151744714887609239443018363791024223411731361266654940838042751992709750313518504045585323760158987977305613646571571599139161965686479173419000608524275850380079143290300056815156634153917290904499202024579379071490529000843774432752297973325829228862019728046226537066357059746551075895780854654719635174726714488868445824818502001744682803240722157197341639666332483543641036634937646913333668934234872805639707488426057500253545334504494842254591123315525387257643347274345986435162678957976373900066496218902839237492743066490876948346892010334469869926675124847682724619114277919228403009520455779329023270545502652123725413612585253009511321420626697432958963596765871640736561678125900132469485480456101072084753685111601482552021712430026395539632700505791729162625874371945366189060883193355092965230791305859965881282210183909864364414627100646244878761272113962295372250410105769331285645142722459482089540179235541607961092667315714617629575864252752578209721728230244405064793580955806791893709773341151232654701450049730053523166432948246208893593252346038605785007351546734444457583264811504368350484181541606499288473935350111854511115482341967978359441678252860516832608175809497357609671105419473129238045665597959125881771362438636147153891734427092707725006044263319391328936484788030998689486233257959295940987426192582703887499953071066283507677050228967845613852945226248766395946115060850687396341209826176385194091054711951733146966938629678309365118501130036199084919344731531210206385328782395659464938146510198883905303943911159428155537331518196595319106599690335350282129559406923504815297598275716311787466814656562377146697206499921694977049143909499384611818908128531267813642523505021708831079682496539110875874670804561001297026296860591985230621061889346175106829918350716277988806785797436924111533139423205167353242453372488912372387659968889865615012083452573268937214763267031267892115064489158151498117571126941873036097588346781453817395907729965690635792214933020600173842673201351998744502844488057430796659406180497876784551808033977697961512193876832448605571386104618478013886955423706057307251428627611806572781715079323075399959190698445387537952223329973039061940528825956329092039066841284469854949820225808880185159272390226379742629174257518277421053949982279449650544318467543709418359827114851127990482982658181742291932681470804728339272489331582384573461652037297391161507673047735220586595698102599193478415567203329475166351402647844586786122822336418007662489936247413235157871667439026664587974530583946143161605912580294143838099779932713888561307826777860075964938576633303120318310175183242078977042768779065098049275321960514344265489101409096700693461463915241136696300411496081057376677071868275083129157184043099069307211518203695988698285238068983490554314187464639995861217898768636091369708266684527520997404752081072376245080172345872010642178660892520836332664298626884578519898803496759608101967235598722181288524863181990954061826892979749507638999349338380770046131529461762825686309490237434414625984872279022734720870770906946278092171385020972549030914778054999697078806390846397825736846670193074824812304392531907263931460966742294168805880084816602287980975902027272314985916022452197681696049617607828058277942393935973401139960441918521313842975283007816096772999100891426679517250235137401828463583701434449621329903070912270585111320284559890781289561260060937567699333871017065105063017434867508612639615274449964953707865945800926748082765751924084973225555968674860013625117003312536570361863509461448321323602492734732915860855843463484954982558317198268410436346273677608838250300138994793538536770554048357460147405234526673127790397330386977903126560730336582053095905087314043352338414804982239032291647563605154315089202789003201465413699084823692728276371707318720578554104000347478189651512857671078539583089542094637820131902758103462655342743555047042946490804127837497054448696797410120753101150022381752027845943729465894377959593905041551430257010474108768249199576296488994979020611568848316726529896353860709514102603522679182618280010850720130249851269359783306246683608346949263901662696319430647502553061702651335709470060845206640128234454845806581140690964041508750650134160743232118455380386919218174155374953475786957870228426993061628919840387710527201408691772525030407582186273460657374230720774476633374514625545389826665709206270658532057399892041970676305564855336899344511241370069827590577881990574864406448692008144344976239348419125548304050879176452002923724022797206636782627365478863359482697885071685006255795719841042517319793218084724687119200863119975431072568524904485071129882814770400043209713515222479618981994987200848474076980321189644656026735363716612648841879021572430713692095293242129922051952059405980820664043592235229161698035305698656051958790684319824262409873589621569381272799522939204247279261942137337993837152779949840051475721270813431293123598814873173120526147369065371969286178223929644697058330556532519053720294056100130846000575153784630780658376864695483369730012823331491940814135638387376454459917294381493144201073323796565537194501673746069361896031206663361261479060336351967021107603230492163512603683979676335118021877501975679693797240034778340590197003325588498246850830786635653840949103757140775566043773084485616454899842880951035573405647912134216696169860235068422422006791335459011946642723187604455889818421185618181991761145502874467521898442373458007661939150426375600210076764710806605482448537056674505684927601857934984272735368164297556700054246633506328326021553868313591613274645417920426658356003195925878831644039557812730332504079254340406140141867237052677731714666897393714299501931752228723917359616085172717912918938690386076989285729792955352782594712564759108016067311677742722217641035234991166419577060472004205981516209096983652228755867070732461637294787054342513576710575081464704832360815340966696857392530685450195143563784048665349294749349124595864389910635862995238068585322399749317847408307723438342352371076093702130403976731612056977195800225695941341719505789027179747496577995895419044937551826463807686184799405790236466467098216818299806638498290966977843704498733658049402156888483305175388338644734239457203979896150242435828524826313718792493690177975328160379734143596450594397897472529851358529627768403776762999383979516011609960228521064821234200922156425800324402189153421981587598616295351953154381455053920825153643777932084071960913112773027552556262952832939647049437513941032959690668188039749822782243954518252662707953328979761993309933332667463894500584117636350104761298163229062318532479768500608434428985062929366885316328781625030125106823802049387258016042080205510107343126160799500988486382293298246607562213040622331079179684699864994836040743472987826580709244964667666934817877953816201902727302615303732662514972831135855754914053353324289838639018937000496552747018004194275753162976275460112259487687646543484312367073036275989071332912769874313127354305126328213066422433435315091643515957181942603217017634653334188124927707719464687027637536407435982998001884135807015938009197515337122870016064816211115768061069765505667532786121501573440066096984845280505793671549396610055426585411233191448495790382535691235266361592619896413281014145548831066652103273082417583497931721880288649067247059298739852061048465713071054434519666171757501801839914341116488489238213105448869261950192724879115105846156996127320823940700583114439515341961965304344509129002957101852599430954843782200532044204415669969846382634044925142656057345718476935514729781915235505469076145937584876614487627622905002905302867002176197119951086722864762789282238721170275459849100490433857360452984249437977287960153762597918816205282654810185669612242976259889692274227182646736358416664092645782824153890248900060560798414283582613591297068633305991192210527964528430102463250511980116587534959756470551027477884779792060739488689371402845425069348611620114397898517069693256304695428208522753109561610730195728598943278265917912250875536231040769522182511367653174343762347859082903935577998150263840912242799683593642710218629975707388419888639798877377271178719500489791106664857377164044569985003235358331076416360086379578999557772765836477630138852616248857451189653910462825060320260938971376740940483130313588353994205411036704454140009007824728017937419266658002037730499029711693371536608166656149962616982071181614086559651646380194684270775215893200562294060752852047098460570672692335385237753441451567260046435708317811979818464612101027396082658662789068304623568674347948613265859096609830878912991474636950900293758355968448460485851439874823205944314670778189048970985132548870910775907100965958926981896970548602439721116475717818469488314057578812410973005716692081413243285889414545968300469124416802600236334841007246505417494012967941839694745445516944442631167075122958276337644208513932445402812096612691695862099183298737074564595735130301749213331450113055791656373259539119338317569256256577492830245727913449315160707456373491195301770128507354193089849029592407099248329961971413207260513468210506786245992881184509766108027974589488291486197751561406835992134179067917109216236504090220621913598725162454318676103562018064224132049790315859306346944995482806913412953301493134608750587030083261486865167928301313530903080457947793427461951213635400885915763059093409783907897710807115862675788980593465772708630084833401540945479977998064557165402868213894521560935261770767779714985543691446168080662300430608919834320842713297907320200696317059527693290073611886915077947052706194237979133841029559779905374178544348109386280507961865843951484285527705394578309466770065037507906755781634844624026021568170590482338864822133228861133690442189895597180694644499698216299776795628933209311499875065741848267855308849909213230057288472916614636817919762838052047094609910318648146604427319224404166820914609388542860133580251539613950411794260862296670478742096569951559099142294127669728454037367132510923347466384890215574953537349442304257571833508653867110098569196436689451519487190382042439783205334226292184123639850027320378524527982734648516871202803097804437945432984748162415408827335207187669145760808956869096988780415792072122541792607713191177487172089776692111078925295112189577055157104752784808400245502929819300686050910379974319952265187966668305364274923844547101328301864251674845998377022817385238985828555051839304744978712250458698173808145146851116456760518009756525266084782027982386574802066732593668437176261308399193222534611336628832159140501178247726024578048031520902509266666563053240030219701185415917558617048337804056792361752703296739379938915071183750260214075330100282573545927473840647243753208506433616496341858049834945688454623147441545929365857371388777378313561399967384852682751915179134308734173315231244964304583212171910599312067549286828206760684101105701589934067849756925093140838405675087651343053438103681247729292647453068682015718173180806979994230079239439942502491402807950677608516090369425315405317596255491307055064195602875485606711306641260130056181881805708085412444917487018441997092652137282055490471494730794486563177063433974041821525081601327975285427838438584090832783630547515083309479506179296736631519728494996155141471800014391037203425286151290527232397671983160028186243129535110580222891565519337172353638599448116261900709695811852910827998998745059721955932920722566020063670852903420922706301343496858969494086174293891033528177825056993292211602266050974576328273844682140289606539003123316649613561763253633919216657767944048041127933112311571601397010132841309959927459039630689156545522146429545577892609882166071326723639053584299382706349217476196849502133814593881387452875663684374210008838899626731554653000922914428087849448934801641246567221430389431139326624721801545388986530424220318698412586524957033621594102550896428088858711526676968393283929435612152350747325512412891396174399579035705914693980067976577760024702997772725608876012296433790045052911325928515251507988928405940436973070997634109147543397169066931813480291742697675709955144750044747914687423954609367165795829034065670946983890621458682401515011312249415609900731041018845618406596782453688952457098742066376985481905308807956440512628957932401749436607021587430932634847093494654979646605621735338499513717936305511161098858785153509838752025218005476776840984307119311665318292696091419283867667988380003880164809246509302927702262058027249935232413561449808117193117174631454713905223101430546928124794565153484932851420375400164984435900459747923561232833721050357788262529992038369434320650081666608465812995463738943247350641068036935577934629947567838345824961574076333486546931021663651160626267107438811673611800656529406997153245912960097213001900826098633659387589615506867449224878365343035356566577914616555674092962937401728838559343400669212491347784627353184686150060101177452901585793642925108429418068349799335514064428022225935552481873868775967051674091790656676259524715451964360588778313751760066788679638693698847504884890770336886926031613171555451534177769284640858517347344465833762831754697128678123204485284523784135897810321528166164454041935668772360131963149470294782523786125852019233842752348513013305878887151299233168495460808196967806794794072146358409422346829735937494848825830633799296619592912587268831748047000676813677945912329579305163624335012679395990949170789807663086028057477904959487283829449052105677629048645543058947430180115137877546505569243607881389349218889381538527257377260151357037312899467505655519193337324903800296057603942379673273133235927912773097327408519039783563454602967929220047989067049729023812880988412296645629274371140657373972074328096309376087062300200918164437391982577773315168160319112851828563457886122056707467844713198731631594735053537016626392976964138452023326813910192874819104652990672597024245228975955309263789930982054700936551294234577643744363756204401517445007227318255350353902254662096102634405834982090521568616901958023773126531787559846573700692252811125621881725402516393532566713754984604632511095045964158371218302606913115642077773861952571574674348417648397036185180432293517454698342079874196162734954176326551763692504499532146418393621202518967260821527839772612998113591706616180431332358204149697150974696153672825112783645334674240459914527350620537521978649054404118632241998149291055939550967148894695040326009054114864979701112602761556202008461656848437633588493003556982146003654574787219674145802895780560670823983036943692365550648631650602397182105563460694263584370404613234828130367843646969215964773697826654508107544653158101694666029642744775376303279607879477837066845073497236789564991780772226135696306840445759196212888812186191546796400778183890449446490686795292290759919106800203956737206433895062569810810605775630512455058173720334810233048124596516668881647455450524380261268080481122159345328581794093265760382224657803774174714694479640188064025946300344556914046534620596497908189618567974462430111991562328115590840078736272384900898479716594323181650498064458691949834103446096670581030488185640398057653830522587143270003560743516338579869155755181135229520964230636280029683744470886056045298476604512028531172335032878353839716288890234757225252310500288591682021190959359085670643889179397657940959007196835041215898693164544735404950225699531112937126018780427603633978427257441206754071617483395621505088703702342311857347821054767708510516826623533342346024033584635910747312587486173684147348206807866867991355266865887041602468540611246036326957917517546285129349242348900914960545351987067653561563410580875409883748122946436013189049577126560829323724727632122341403357744710754679645797951950504281026258902805907057692149506142449850929552515217660199271927904187151502380365834319560233072922395712402895652197867167635401853468472693347246583999204181619073370194152904999780354534974784412190829340059037478507930632709210058582151107448541843040648446038509759255818069899918086450326736467981054862518278518953547393856228341516106745955688252807444583076298636070271286189338386813424642708918198384059862687122507434810281314921671604353901005970159161747553573652070166191063986978274286751297886453450187647284927621886975271337928566725083626338783475562886646722896068704583783926902494288259397800177918166869956253398208991822245878224135880102771997120923653733976676040536540773826335354448089252131354343939773329210008393774286251739832363622772763935942586306815705821194087938239521730818451863063086013755579269482523200003052460927370855615563670119509845177721974194426030198297798793068117595553832963031198388754890942488515492574415543197389409873459080749404145600958126139725994636863782556980870780769451090307478694051049254103506418403912353389559595608376708726413766534654922067608891213353073894651816310907163381714251360637752396508774752254342206245887661829653949402370718303491839247561062921871804048085181568915443487891032381313472251673579477663668502778935462350151605797539085306245558276139093766004560601338161002496182272992045606553557734076256360235077328895962319566130398010966513820343250271923409167824126612061070587739569135784886283332374610690697732152267288301711236168462085658210957035691029303258227507880312275796336024219715329389789097637583491631654469845472254854144110669813899818485298788851653660438796298871073813611985954225054203777471229305469060481646285933541369882391076969661264501109772921039346593152613754119757002918746960577592810887182364295711978271457520620971999908800121483427928398565740548750351362625432082827488965817772184317180687578124588007788525191772454138457424614444067884825247565502593540788102312002491704252425404177842839648911356520484680991118454972427783583130772300790874203491014704288014981758894775520663901004931093802745599154492030731611596923433499833017851450762311160861876350322052646802015761263997459342444253539055888452265855477419685544310292730373407659960350910557884519388900206891283998898990119243607779096882275728861590437486921723706584218616207367304079262156253945178809748918055639263576923592094959770917167651238822739736275238256776209537116510948015920817307749274936371636511413111600377730974230179807745076220564521684814724454816806629851458033070246292263716990695477111822325607554336782394690097827501009360320958868253438781706992868618458758805253538833410111783451396086130381439991987892860028971856413719815433223041743640314348523135337851962830663756501962554173054125890010222784239725124329304199921899204107496057202772276881512468469074779948788619426493400491117843346575913837095773557588952035112732314027243915026889627706717501035925852314824005344719673454322686761475973073365983407474872854270806469088125991504583145678424783021732824025406402141966808554214757200303419886319560308480695153066807648839789574189528953999819688645736432063776974105799926331150095918953850016977603783014332573853448827188414522047979203795606330715796658429394461701084111942118249215880553211370078601492579904716308223713661854200906091717160749073572815409599865619541389249005487557358246499069528149046875619434046630409045030284547690678285432975241903308202348669145112331030516524300733520603771502966715177230493054549399539697471173837084281603773345597669569485486170322351485602856381796133142401924316815874599906843960652898740407405505058856780567954915384105244806696672072551239659913193068577864492149559131396301740122725367312769938045342667361941569304855021721564649440508071952519330031515349736623099505133545505178530600477934797937975049334485665607989348441898818639948213355520587762910691570104606268183599530256925519794035678292370437795950515058710192737968745572378005920458939408048318096993404280786037148271296348333959898932413926604462875494775326209844555414836801601572487048895680868284353467930337865584585927851627756926005941910637138570781226242411543778067423364557080131905856293645225874020890168584886699291233466525133239667121909496300544813466759422450281525123563412836369989814162752224861643499231416857161862308567129459897836854968705608832718602624459239866474047893124153569481555998260828312484014465749431636234366344772651932183116542292390478253908759222487367415163585918686250167257204937590115848194208624933687958377536683376819631499860288726138359481291324811655963992275987467542626786567415778111275888087920959413721722306859563974879857774456317069080172375617024715359930927013086181011291026185074423408690132063230038990456370725444633635933648235006210826696530878102534566966100484730880890977464795587214712842256020853185160803033760609845352018692289865311340172242997575359933092525977508019299498817124770043053818602292649203762871686788731624262570437705344801944693252884672794558141532859332784903140038466411821550904699571909665526396813636073131812982839858671279461779191534968658421730471364629972842652189422160320148487635560395727078540445175917643025536778423137732247921294299474725414349596016195528395149746145450432185351360945552921873567045199476609680080737754342102706207984033846066774306451172178540472874032588094522620863829235584879305723128139398651516489036500144172569754566327588129888204143892526523856950034716441491264479480372135028689136372551344159469664318398799889646682425785557003564801680935911015887583991561931989641259189595649465460722330886447645191234972057495130610684245594537798057981068524368105631385135829780263994469211433007983356278737275317676281237917128640533217592071259491409978042447659409202038991081050605678026089423295562440046430035046444639431875108245479103672414857977254187669010843129934878313983473322872925402008057363649163617349893667691991512654432943849105044741669811642292025703069492382201426604740565858835920590418993432543299827258411162249040660772066139043484665304364263221423619350986681353048620366748011195496084616689946153507999378129950762116642260952232734858494241734076841585085164139503118280493672442097829478672022435971811564214084192492858560269932458767498689908701330276888823773388292808115592402282600892948099084850288907658007758838315876090428730091067666148556747554420072744752493364958860995308873192510858210817370292931057158189577918691533756161980514447812824868309815170835143529097162402637863797356495074727134826336854461466641599458823169927532075344211916472735786181499684883424715108427272258820899155202808344442957839201589621045162420553905536169013693944509323884102848390106812096455935994890000341659397364376888725806472591951794768333061885236818962469075245179897475505661987968742434484455506896651936810803102916014875065833388098880354527502469383410633153642402507127035064093563339239725540024610048904303465178425618695109862231403470703101876472658195429998557910812822022949880988765922198955571550731753111088455943678649026545055599774780335669136723619815925000403574662670632343034523566862936620314450746608394655399062586464288964846574036400050040591489818855175453226842501774279348711687737590031442688260121019872266422507560067718826273649226205560519047275786647486402934762609751871473595519578867872133363501977048495432646196543208129917777720073905550526316417307596986839972938517334329170685298894646076086742982907475620713056436503671317740520091328469113576427739879919111351200715348512026984887242133678670465624772022174619345957726322443986878318135107528096709321895463620279499278854828698406173698206441024104613028498796002148268845570369861964938458088427294870085932997852283345914467501762022533438922347586632471916573041146813125308938363794838237854129750972656916423837574754502070899321397356535041652165650390651589124543283338224070415894479051381180935336112936554706312059888753906501977096677194197515233255155139058571610133172539910614589527330534382531596210062126461001597867266379158347835348372853857435973922269837702238790508133603356743366304647479274019263645604897399840301771800993130456916837799673667154797425370930481416868640831083198740415577355717178210673199189728007258361791200473974651001924708158183244648211555721733517384041785911927993835336943790553446490133057270825554363789746925871482611346676142952038451258681286134673653467783332116189641520853775481968682243925041880459023580694500058224884563213274061279969761344180136106641019240009786015921273037619206373102994325701044812531604536036442031937129132189718803213756245136508508232143278323968298268694947441526483153287362532265579089879249801485820368751470174426844208644773913532847094978352963363189762907120054158185687392608317111743605559795343536646995708095266169989420815992656459379733223094566013202952560375290455376974178123356687822672682406298916681784111248106248178878463279941710240593836917950496902121014678701606646970787969090971228443373614494543381761255379450361561639845910806654925407899746229258104793448072633905601937020001095204140245550908653544702008909158894078761768469898200893172446842090288908213369586006018316217713799223332942634294671240564086796171030695889207096020158456894181544939753591458979193570488521010356510017587143529678286622867672946147569555572230887287246409247656949388425021164767031205097697540353127938461902956224567098920343619281755444397619113920508685190797920862014290821381538493899161905195426361423264412421602988448421011923774303920334100384953085137213586357624885694691188615000533507859219695079771640310056683950788897960800771378424140478498263280582035664866470263232193160839041348362029393732248322179732955652274914560548296149147342283826090257639795019971025041472945796798545687913593846967493100630752730726780943044243308371286365219040458303301100924011974492052511506004965274583270882409315935218900859036209354988577159936119583783264401563242248993524209728992386934507319607667801498192086212630095233817839839445130523724950129995863668706631606261381840545569675137586015883332958474494445509745520359641932029195765028660843660225161941353452522515698119358448177707897117001476916653698988701300394605845471204988651363170353232601004391936185047411772263820826433574072049650945047169123125580320474893382556299379743601184433959826667915837520629964373209224804880165359669595643090429486233722561732418020911566187310548956933565672651595380931273589923524299183910808146190531891853147497665803166519823132343976743734759466987890219149504117821377790998614893616258218499289053637817268323417408016297542426200529320040608760753705573491093916299690832251139001570614510990790884632122462166668327963956157832352974886925763939929923725199518846594220069926614193246698631419360408389735819736677617953518460096399142753350583433142208992504390980776108786490996581287270470044366655651780228641843327613192291325526217225013380655737742325173252664768825786099054645264371653751812774131008095494353438379494403403378957915373958260173721837296969700949193426973288417977097358427071598308315067038827874539888093100874872593008166589022424092647522929538995748318984722041955161964913214127005765505973869576111482333470252276832930002881199432030673960700358229015489097085891774544069954113834726625403833888377526298563956984604479636773300499564329083625583842444246381814462205231794062353744732468525421077709321383502080582114319181268633886139690299166320233199817304133843651906938007539885238788308545231759841384191652101116872399827802923659025173528032632959640097614415062001232245824500726462589863015482967422906260232224129284811393575602607497447625927636709699141404606863411542817484103233120516747657750270803924847490840910861999728733368070943808054070652333697913704103539027740483046575399987180612637319914074027812708928382681073169368102929015797046706634870937266535779889767067901762254825440692441291110233230633168646176488700193456312636304044399056336510721533225744089506849070165327708807011072476448626279138943917741343647281986892694595296525404626633566894097051207108479441080452093896056104515499043739219212201514884617347778101605553314973574015108894773893627164651609239482094152560796849208974093038135550304306465069660645125653551011709771300728575154880875080427610840739510464268136278887423931042304094449298736471852769764960626575809335783749351547214446695383656316091288538401488145031445456269449429617943251659870829933176279893004776131181882994068144732450092473761869924786593501871908086696522005713984552118234083866981721143993919252045642622126679269150493293267098722345013757609114113072599685983540488644848689533937068339683370510367024266489088130849445053912327984681114088482992837437826287594881935332554956975277369062981579182943711879659909355608908461657745310187563248268840214365037816107024008093849490895349906496256504732941804248554297001334537637780050656072225579443906397967486715814904669943484400433465349972370915373825772325720505116004791596540171619601709134056296126402559586395550480336734601427321219799641611374596469727461373267776986258270078010990159717626649059867028539509473140427122082064328309347731660684231433209956973541032534530443144374136167559100161599969186093995550220261450922159914429499209717606838596646793276469479076807907077768398307314140490858408505168472062855221575215523782730067515871718723271094201110085760820433856814949641485337488911285807135174657197459894506167935355652112943614286784534142454860154477618927297468598856973577618397098518102773185630420685156374950909886102084159898665473840709452928882558426597648898738320214522974689788257876787069283829489184355780683384416185532050486517279053376539628237241735817674815527849046119800093947202157038943262943570729279567041907402098445046903562406928401131894223714888856856389433657790720062441312857367861756653432987477783294817633051738757773080903539096140555956065553290492718769698213579937678829967590300919273600370926157237665537198657420072336191448171352682327083606918978741530815568684929233805480331160934475089462063477861561306009860274719974323005173037564905774902545571181887825154871739221635011009530613863403366437137749075039504401442890492061656312543751389365609122444165393614221251332664000477530798015383765139093360289465274621567919088993348569518019745909035553698612841580930022055667818973878451924424692680217134338825857779144319612937932301456080898536782152829183820369404640710369170411946074842024311624212492285734858601055643992688144414063737985366040515306825594691069134747076234609308600068700652949449713946036515335693551245209289303518138242657836354195340397952416940084717946461497591189762348958109766888250328659383272951091083648320680816517329951004511687513219935439310538370962869449221027636566920280562227853617895933776056151396090844828303604759256579779473056782900645439014516227316044166539414723023367439698613810605607136710879502566807642360378410363461609706053177956523876300316706846010260890484319476532492338092757591998863760464700223459150336779519608792523378784880402719606891508602396970087752326931821635884526298621243991437995428027080933517862628195075272821443924230167245429400695576516924498486306521516764649752915581413960115242673952265420218901094842518163207208077435798012736084006925589891137782739076140928387613070541616682218280790564576404827118425301567841420398791050746895315605387749156767957446976034357053440461231977476625172170704559996403161813753056596005456279867816673418492634611784183977231632261078764764024002849258796092801479653104505634288961256651069258413291492126848143491995152791272903907804767736692589084629154413431662510651323548232745018176059303166485777651688478113237782080063430505097819961694623848787863969313431302466345661948307887611657001821398278756425584454974813227161828092446127355537465276128381923206046462133880210877055407389180871706444682572770328733525662697680519479317355937962450323743763138770227331511617470241167903559762768959817122083148262178889960931256519856635511688476784526780064830086837956396184842513695495962189630815963522206025449467003558930588191966033268439789321459211017530352223271389875608295258454050041941668065113699506365326723575498143515621519709220857449454494803737983813633000969146412160793517145572981791361017531502959828136519245732316555005793827148122917568416841260990740009962373797233544335957597582480326771254451292251545170956865084964668603157068591030911954739136753246474710338303833565193923972600789260334407592513632421833894571092472290245349678882696869310257376606507989999609764573114568328836174225623259736026726635499835688550301447484272349682779686695227913718875887971194155194325243013287967691118494518076981328215530097130311742565190821451801513781823318925710675251197624631667369129012260365614429502003285145209249931061041930172595152678541562016574684423140446834574852250615440373109895169108140877423848858770580397439736695125422783296479921966807731620705625833779021542412314579263191324512727509214929421061416036204653721552047783715872134630298945703681249421180640286389811155096571421778548934604351946191762368963305990375251736861475748516033095315113279226583450063326484155088881076586671319391526835310877026197438233092658736811803880531281012113339662968208823408583381882479595517961374890440566679777221661179214823403227573327690111812736337377546633083590697855051168222340992886390918272592689890056351334311960157209236161589561289690542495440194711365243534873241365149863248235065272877029729907830614560716611726256724516880365877895882022949086870687786632989316013078115334112806090592002300277634997741726454485909562603801244330929170957314854089943502799292061624430666479884938745832036501393958788006036255217677650708515158935224243503509576849649390063648046755043639685801632526488059035439554553208443423367187677202566768698938299582603926237285759436944490883073036757491962928020045879725657610815225078987289881193533787648883930002236366141675734233988296200143782272937692576220114436856634661081098887089012681207264382732737264850219196781190530751637632443113105205696074991546174931992500547645238398183315100056108944040367210769344529539248815499768577885062637704785853657522407850641802871932839583146626592384971826430398234616929713957652551897550745545623069269422533001124122314538278575364578787388863003641536762965864121906271484876475505171452734563056151692601251424629354120639811842812586301092342546995414440071699230846926339402995272594667653225895584710115735596185346453310602834991292757853730550475697412061004443849200559116716639184570995028588027349580600274912681004881917219974190178566230215856115540008769559282488124320775148887010651545420103672576013452688545338786614055712784534866900503836629869043011730267888543615421941506747391866225977223529196547318381173348525006408098903288370979824765458306567241655362627149246687058691575500486823574907560621960403876071184039218900959499509108009603419692680570516187163954851808038357281579922804221965511176338450612225925268087094436891946317299264073384201582604676916093571471840330309468563050094049882629996737596682639999792185749275595749272495933922198681458634571754246365246261579465554877667218528545767683757910285562228972263508927905364025665362917982447379032254256592411568616256568071497170633345284089651138481308510446927099434585327370595296829489118106871058287028673287008589358037542230494925934487096868538398716713615845230912728799891765111558126025624797268172031508764866714190256827461970656907403268844711994111406054864154354435877677460446895059634856608654806746095891429573189106008886997018312587964436899367467518478875869817526023415019515110090309434494863059086152986814302184336560503133835638546770382939018219081473410577127244567772398901310380254379424276505808028415138156364472885582303204035161801889201872594659494119349312507748969523129804661624999255047199170217812754689555559042679795074834731187610974017228389094197111056048033165121968404072259491399965181547664961497140526964695901553071522781546930510281534361293866991333794657498407361749837403930309598109329014274802095566910012763067428420124238054997794563985798926648607879290474705409609537348410119283612303786780507574841259148775055853197091754900761548789754330059170806452400441344733125329083731299214612326465284883686706959421776061062187168230370998844987056739779152133830517630896611979990372853042233159960871871886045807012526153282399137045739143963760908863177350690440494369042160311969912125695452492317493299399952610967750571124063032042550243914839389634967391439391267715776428878292974527617732427467341106954741089495551608816816718476292377415923538653490543734577916346482094744981448064650401732204014305688375092611890703128788281998271729470023795227580334287725285847828854276844238694705372548166963425339208813743784230478669295290012867213084807982821056990132749730864425020111395599723346819579518066787878182210793937283003970747896632114456080178641925464067074582684773762775371935673668605486698640585508036258325451032392095151966057087273313550297086007649395509219958925597748793611479095893988314065252355431314486931997748041041130457124610693517362191714670228798460171127759532286338703253002438857331810309541871064305007026038851900105862164781280632350302118011354933651710809368533272698006905672311446689623828723367201946442189939319794084782685704903412117426145245132845852840517827558780316370697049725378130390367968123277700037220225985141335813180290519870203954404953830545314860042747927359547297570554364442356833270639337682279234753721285388820260978472412403671945055843495478162462275039880367538277293346462990521188778609504672851161083196535508336053655013681795179206930785527221352959015023764925658099916517553544159086746884330978846001393994414703854683310964461319183080332871616587165989120043088995062057202158031734844909702164509553635594692504652632803417532212219840713025651700716720594634934581800536504022244035174458018497856804744842963737036093733564867834278861238918105281657625803548468475212110880273848982903974648780407065182762882765661018510683359726002380979339475119280673804902091370971753606334218056240814192057466413688888839751265921497861986952416518261194042654264792914282763407733338479302135795571953080821965383398679808043177656912373404638131202688554311039131617631340611565459202577939087630030092434823881208324845554987091092118629130560545827491145600086132455870793478012467183745361913995539428571474879047820117822710288110449791373080463866995622181604153167405456815582948885652037307152615618218495953506603797735233964643832670836231654583832404148286867213645777785419903479389237989691509779672188726804678171761700761906999724529436095836982686359406377927830933227634900021060188052775698830415306639136431029141214343281809211270223786307367078258405010085483476943405185215064467156463413988563711845550262710794092982438229479237178288053758662003521951699772247541310771437446953390771891320327772378364870410572522240563466892216702327101843868825529867260202567820672150738315623258137110450215230732804033510458716141286368065045433515069618240292997978812430336849088939794252029943068243849707546383248214980071293774024492887628855570952323512929674242772131223663655031075887223720822652489719927899575368799016245575737244751001943639488017118277336844264109873707130884876164121916993968167899306018172959281053291493320524722062718897437763250386645042028818837253963107479618768666549371825218880760929698245489978893029089979875544381361148350433279931723131755364309213921134149778340605982859051249849010213701895756772430917775673327309154941088250250785392380093579952642370476361425796751148042779860951729429824787032051586600064355600971787645199169528336103438150248062097789665376508416184532949975488551866174841419534950819466771055161067970786569302417364781805090356058402041685336909573351640292291589456646460769689107473188761065158336064924101018356783230086298539484127712504120743671735501738059465935628178746953680780178874717588168528805465048687113513207143949073335695069600001856969202963524266576117992357743783492296148533967988827120090889217748617496230138646771006520334438529636356442877150805032103677135548145233578203844593746714367536079100486484592406351092385595429621910206342676244644351012759569344468301235821627742727177299698392235055975109486752720680943819522915041206596442593132937807366671581988377754070489363810321154650192245557673427903207760141039373042782363502271947524010861379939484856659927625123776113576643618636074477360537350464866193120422886310747010619781677829436236797138340333971252662458968152728997860521716369458988864043234286116676293720107239179374903089720683835307025451169487137711477223595594540216078884304668668185069126616812917414638641789890948305683752360006812523921665299537547243485471021346980648287423835837694512712878500422330248781154390040941432129271330679658727967496361538789014287995783195082809130349055570108203424322137670122124803436804534044649453539614915740411320725507385290546538870010768447057943167099135859004303437062870318843771467668911759224542146532874523650878352571989104715340480637140117858386564936773602528173740149668975439969833757633585359072482740444832948121868618264461622288735364331371150600837959919910581819838226409680302166189477546548459448733337711623915224703550550467492520709164893663275187927282123459546627464410150617730886546886330183441519284916793437020627204975844753515860031897897892359379442356213913073557535290324967146111253940331392933318248171058457206029803266025109769212105362329337387472332305195598224677497171915865202810775406941021790609702365919197735660562951453651650626359166436068274074823451783001385412262926501637568260522274950650115413624746751381734129095755654855249630850143994777809879311378839093709084514714509712463305419900589800294881256356299441199040332562961467233544768957483973467036423939656008143366776980378925941138505811271728118105977391676920655396286930363545114299142643984243890561544396841453368244190348383883079898890016243221937529240475809231861675750048904567801644546675606234547384174749903695393126945393834240325354148052318858431525717736751537463966943020658677814934566289063125862974428062947135734236414237272123387285632506676634023934597417072471433357291458731813481923070536286017782086629755666418616178375304744024415782496716659086634437603825877141765702912745543367802437167954889968993301645757999749139586524066053337851894246968275545459134350775966464926154504781864097827603168322517911313325059129793089291594721649910565112312570953308580369469475557404851594089978182799178236124080632137723649929227480364536481960372139609373864671912004236737654428846320574318810053400607342827910686081654370924778412838781419276387844775809586514779010619414433416772371474541923781149631073917364749586512623863124654699178710077582486819417545493754086714259293128121942613971312914421163855968784867056975527603126718508182928755520873135099268281734914520524649774088958469971796001808652365741583684100521065230171220940636294861550561109201054344498739835869599164536028617266324273890714054615893968363678732029518099131836197890247874414832121698506974804121605626819758039216702997880753577902198605927331939863545056612009338486061876090861816598210894534693896015394544214308066584959702768279781681580087135179715759967541877072202246169231086197785204922706882538267009115007154421135877356545905395151085317628118022458686174653801229877749904371249388040176049631004954850751902177536275321711911242101915153623336068652120690768670419133442446557340137408155461627229699309008698513112771937784532779734573507496652772470700765467567879005321564554043893088122821230873059448424859173962543891348964947439313481098555788909954678505344129074294608917055201394255267996277641837867798613261866510683330151128427597804750765219862843642843213419631089687310175595380344798172839676326521351783482077838754648303858038725331880408835964511959867452462159765698810854910580732953209088674668595621403307330873119125179711548195617589044302045078998617301382165790081997784901188067422975368740408982251840870727509309251769006076344424309165852820615843086475995503991444422626322311336650116158642811014083070006804032452809158199009125447379281821967414591533632423351430075783997002644596252539856903029388423748087546018301739906835390258503891030170051493829553759092181970164154226645950727084249957596175192573791186193038880256528155419972445998772581980056858603926367868637522524564441886718246514315837972530099467972501882095994765263075119084278855629822408533554457880450998837952412773315720070520501872952517411139143659234087907447075672783497117608085498158397873317552377954572958415260295625164306229426932466834614807657994635262594622787370273757059972741967142073082393415638741751976099700091302621273281935803864060633295712368547892809484735159231468112311536562411159991060504708547633186046238027006381637048804109598472434990126195793450009953446130949103417716204111867037119085983133398143417820500685406111454297923736911530708251167029535087045327222576977551111307227791211227905709366121212919567662782581972978064203022532626754554513496446678247707414220641245863346194971968036853873646263373107510233206062319354712033862160921979957498430392163961733423460572058323586936957105219252641072034568447876825662679459890671889721051720967191137956050909969926451318514814182667587413316505995018108270635736623906308545633700420914490468716975390197411143618388008242380703767650655399469675759073626485054585332088291051470447687367456579169548240315700155804995322858750414667529355353449538028492000987327777147268954145024506495016885035635750057050308805956869113583409486579168807074027038419739795395136720230965029098601865946474630938032218999299336617933624857198071364976943641864312161374201797900576797566763062642852779536251602673606979714164404071346415532789174081051699431398305332675584212254771758001654090180080888430146965168316147749594161572119131479365315942486396377902512769138095502062134385933725123933709450544644236473976006745023704943306171195755009303179068914930519569391653273574515051770590317332047986257324027522948698594554807859784858887907960646740627517027432745103028836224809270238374444875546972783552695119163909224940581961120991833555771449255193268285172831769803325291263699189592521994714057923148425195078898496676096388051029607057346833749212513306250249109181805900231854751202308958567847881075649473474878960824595223049702299631803484863549769932820051728164271113420004044458375140192651393480639361745351651110677762536176353287378688450126917261010650387524211433396640251978059449508768262597957326473478041281313829057442553711696679592911665741756461285986623526163130541816487737665482637919681206806027538025374755482477365451395452457657953058628420338199620109061871116771630530411864223530462257667738804210227077750096656312753000329721883105598070789089739329187527007185347476222709673839681245379672572632937672356713064865810180189580529564292032368184184027191646131471529866382736462881811991433214398978120279963656228333297854519315264856626328104614264324807365886196487762987311786387517866613754478632339922557257424516579989530756731253010512526114448899738340935722449062755717089925967673703937423606671648287708321781842297776446582585885629623892197988617007432587127675259026969798361744156385994359696622527406039705289442706651749352559013246310220686096838501544537218353709892386295197477662395671033527230164494573698636646405296559026207001528675279340010376460864864100825720542882911517393626592379235622223348769160151743893329574070204037190415654029103015489069982118811897359828960354951519327132909885896833901339823402001193274737575309004600784281964964642034822020911349626464346135768099485835026215448497366320468833029954365635668038703805609278707317350616005320760386455522514791962944998372015958100275169263187609443867656217601945842578436568994744998851378351595146013737401735013590155826844048529417941764335310478977636361012098487073095257738954493527134359950926362769367415830770960695701951910383351039737925242806961367243554231425328762198594459893758196077330275773893352786807910633028502668053526366033601410062260852841338340067544625821587654283194177667569210019307818249186716668861406776208322979115730022993867291104517517716253512400715810293567250396307670325211581507349241439944893725842216334446692864352941461038445924799866253597215202069405986898007526501895867259889587968680393247049392969109363998585723515302278952218767490212875273822357448794735566392749159740388251289703282454032603474561445123994876227419128757507131261948331103707211709565043521981550710815333473470668226098047549531198298525585284933312115798473830740505676482417872445540875181435250922488899846306311043168654630575639550353956798481476344669016277464380277042944126560174182074444238128570544821681704370753197165063706691183873111356701387422514622561622910722305086198814005166874097313956100586229548277709699372376559013643096498729858109215115612896355433196966617501358268697530175176863326653657592187189478922077430998092681028949407417893742203601419787584234211254923942590485509710958953587063602985822237278973804785138042437954961186357461214780662080367493867264940924148715529293470295896941955765394734192044755975782781234673659686357183686295778059215881711005874353595180791640467418741246769075360684573597681671679626628567373103828589040788423682156987544750440027221575365109813533595257924519521247781079744271433412328099944139548373401842439276358191823747820911416694988313820440020587881466165105668308347723867112995648415336195788322319802556755433879888818903139485039932340000984368542007993936745179273222437966929593737258372194699063504556492787519999349953183493174780831400870336363934543816751312700984255914897697488714270584622142930055236703349984211549545146281130392543686786855542150731066755264094876993171012072111085952747463774006583814196366793657295345205412656382165535922829351245634787387784747181321677857874022906753447772358633825101217097788305874529470540182337558639600640445196184931476829050267614624652166293823083978327356184072334793089855666401654971465557692229770084077044553915422924867345824239781146214756864286761541958807171366407743870987562557908984461951647311127458902422640409535885291193555785877979008948609031333818767193739142053228316548222117572190177325384427372344386672038274481652145302655071082285214148318379389477601291114745127687757320462614951016842847042170014535468902400756216107370932421244667265380731069576842449923688520777838191216917984815964731322769485037640699162567250390178574516347151298343821664131901069346842186751537766837514200085454278186866733291332653318552381387727760533526237362355971602976819113258610799796597638381307573879098569655918790067297473208953905081868558230704022601832526481466540705750717757222458666239249841219160249496826386025722893187091904987295626270118305328283601368958395618145138561979064772540924849530375609884122826278177147565400478549191476128746533200318470683755437284467033107697202673771763788183005863511430485100860625491986961163493097176092166856125682240212266961856100172426516861538198465898775426725513691581673889446428178545652624375148661638291663442705907361977002134298931048572651088955263876189603875117471837888815001836934370493725178683946915150926578390749032168528607235098293286346712630637661450177316349621369059253610939870636054673843450298096137693537316903022923152915707407790017363548210221522088701013290980974490062269779457438013598390963249686455794011197031510817850817699800842821762250828215458400967652707400332149627640746294546507353144242112515793971923071806589526021798469684827069034290583540817900737691786737371743088646060499114100787954411909496518262845211705598183976335623969890763154911118047489890730088974791229645952359521382123153932260963975072195319779965048067434555925013259546514010788358537944420134310048748613269978833297801526244764717803532493347900490924752934122115716848156330212824138708815779005432091811281100128995114561965587626484623508738524826770902176565913393987607617670418182206070435885253863955512711684356553939854872651137822151071130917241207133607155426567637880150852191526075241304359087036635964689156908545098747996988270367603610585702805547455639251208613648177693482097723066134102917378386004707617118861841540072365405271736476765011356069862010484075417353696726859285759448613039320501280497197603846023340536405196925975032935541505836613814811814058087340757886540194562381097812495545107824093895221256226118865418302967289077087867667383226745482897312624694113926946858439799004494568247571494996448540205094649122156102954107258266838361799193621467606349388374844139059609849830597826848293858447660375879932398098948611716359115752010497476996986099311673160701402066829618803753393535502582635095822258201766931013307635497290433369251625129591095212843561949540573241956115932501008161340803934869128302343311603975761183546717697708970910075854639223379875792795295664444638215273807010414828262315666813824636412956656848943413340544732109613457871837737410177660363024993077095588639595043361582243050470370429785662979076035425530350739160744011020489956410964512973329129450813319455557224439727120409186362638051742607232225655281095833452243096529076016075129501559730214278966089997616235743686504981955894606412528772619351076303032158937329193106762780353757880077709918306063249107892739384034881765946639052394920666166279074575188606131717354661531771126744814643845603710611357056028317641285112187458569419685183879140320093674336728639920107836725846064123717507850174896936378675020122925502787349214120417712136494224584099208476944226094961572802771850930092857008142354696691173323203344264940485308027904284975455219624947780571650382831151954427275007502224402701997616247058205523195622163147651563873943339282345291586804348234491323890090224007248527780588040981131261797339172482242447509775771836911182620605681961264017889889623854409989039540534439094580195880673948859160910872848188476721034433368777008491125946677748422820991225878452529776296886088099848524742675596796413663364347250342924240974797563745468924859452092135214404993336331343242496168144700887833850257923260570390519971442530931946666741492672293039054057187681341738699408458064759577373521317779178419530270905934136856964108869031398702631263606197060740335548506353886634354855579481756158293742776615036251816227335386081694852420394861907704371336953171482803724116962514893550888388196989461440693575604883749489795123559998559595692804914548410511980284465016111769259918553881203862760791355540397197386618556180528292626041655034374694419600568712972658961443172072984962561255760284798531297482017506498889938955693251437634372798600470519154829205761763379415250609587731244132840396708201194196213334986672883282436100882306170138004997489283179554006156224752322525753858510616374523421213939828628247874455160374504296947337508213035279864743751697143101854815727406074838823260001018957845362360597127941876592694997925726307986691397060320476251953494898831393674341439555881012869503191264133014843226272259642374694168001974144241717132218949948096099036835615581790071682214280950694516533424626216660837741010770473244767725510180148235932713485058278359488927718079917023257299572772230927820076958583506269249192077033791362086253356953541668531041963773607940539859618414408148360658995055947212252407139787991792501685816917931837884044019259521811960725388698970796883058025835525765476795042013676502408526033804625166406019133678307412937031757592735999771048685887232049942988760697544821969268997361614520967456399481831457420172865515173784043455182673835245095180030790647872289459733389253065344393674104130732705451312331245065217337409657861378773945652368067569256655256241650611966302222801225278715356413318616991232375226495990180630049724629222575587317273985437827187146716095433795497106391147280283433114930573402319721691604762165258554850871706955594637536626592671932319402610186843307206594132242024151166114593606181160895115356646244873344531616534542003205500824863137314578266665823103901919400150530583896254529638490934574431918303043192064095223366639608438912061220693938039157077607141954950968666545378849482505611576744735801197009614120814255966995654895007642522011459539365056448693581527864013967713776869776069543577151587367706334775070134067417091778758306081322409082925720361340809785965604409277265447575938515983912908120674061963641717213226342952145787736799393690955382577076742844539364701701866681219168682458527151292931583579108547317112886366873580552251222632921431599179075484987510840243557018392319345712855474179264517611582971168147532670714407117278140751054688258359479650370984754678963845072844913823514505954591200937303588467003631759678273123808429889117650842942389761197231133438551137017521687439921598647380618239076435995767610697704950712825484961475415102126566834041949886941042482758724271349266852885489160233643056055930752123592891154651004118094899052571545823003622635806244180325485715809288493716345542776893517540047341322279090752469774807893482157483799971040857786374850121430556745320179144642650628940790766282888994288537855165746691419444970045997486682753730500501085312374038619182454743968772128424354609726705313175253028145174322935347443110640280733569843735185190728274851742406503311735846680872710915943448580374971541862375334717988848538162544236687605147943710786942468151480363130470953059920387262727643984905001216933286987884529090321924005841427126194478969925394458550818618535598479686734828685164571474952947435996695150778335265800339212537874552575127264386742062745335509710401040266243753160376885639510931645484547606576082184896299158619885309082661839824524225299295222632049074248916769433354680393358074428670244685669845737727952738729576082210820819642503545366043106681117816627216292858321742202214575249874643216846902923647462058967709831128754409902250924778630204957915294222540344809905937397552466947230024683241892797405280099053554054925538923010963725042252071063379402037403260318860293798202973180575088873715933858315788230694164120954194173515898437108555382273368213873265764565973775301941209984173121092269876138409982038711713415160635816353158779276467916798043342683143087667560601934279970973848291139161238350902404366651606796058402140002430417932818749045966039505957281918950917279980075073639325502377543695782492131345578192780833998761074440037543475454078981706693270180520760682063927980932631815912055017075801366586838746023555194546894404888948389718709758355048193614124778021980074934913609427932757678060916916813121002972881308632998451913986460065731010809610666658728574274953515318191770479819782147473606839403465468674517744914944297561897707849877054713976899772035079886783474255080925026782609371148198193201728416593758808289979330524809951552111134541724013578139489641138988262568800331785853571912874314277603899038841235617982487219730711969209128939075004121068437909719682695642166103768055165174606991994750382196504083735489568965790621712152752147850455764994752378198649792838535240399681457773759284711247682637956478223593360079668533283052510508010356059015995173291594521641890537687532193155751201488617869216734908749652320774778611586784069910509503136395789163629360804498533232628908244368186576367926059695299477561804833275115449334454600478240596005390645454500012963858657051609323597941235991375115304931551899388109322594981340595265712389840513469581652729477916007347483753745654774608650083394925614722640103409181774844946896505947228927494683617368916883387291549466955339250680671489745276386935231033743620891877602083524238891877058923159498073589032881508707741542197189660321134725771475472767233336933737551474425239874571071329454743241399444449723649370082417320577127781715078310771059319257824295492360826899595265655178380802683453210900598241667955488435641603827706068621066032401885917525477822661446184495692540133160419810954248374370243927806887594689688249465831410038043451504009368060062808280675000458490703452741241968912875454645999570136350291815986695936224741527985768306577004630655437346883941477187864742000193713595929519987195229964113024822369444272323083600428736630958571386757538081228526187384191875752959022706452454824291460527600417006521827418782220054320488149345755227172119617657975088071488737580619061268027545289152244914627270256014009968890133261716038897750932839162185173963274028578923772824762974063034856624164734872001926428677928955241451633928186024049070566568173878703263606946447827808137730760443906376519431020910527510316216022074570089191060351157557533984468055620022024228889536824039893785468710369040701797406217201191103448735650271533846213382762183573303424111780685192575454180871787814166891482898833436567257584892017504881260359898356222384692379962890579092505820686715512790688972546510644748155759142898847338834016402252484146833530634982037700403006834300146015777746357158247006053336689816489303394755529919785363502591387005634716828552909892395393308030209582562274311679621439784170776713319245090902838934361500535199509160595701647024289992297624229124415551028968024695025938641436164697812108015349168375692846277577634320756482850925308734077065131001914740892063753011714169694850858732734585387352307430715209902310784813795882519176627442498529059376851551539434941558144071767383806478278281875463508176870923506583644877776739648616764371920555982806801701775351637798176760468567155362730911213774096008298187945324994074276866751708759455356980586658259842431192403388184268133407369890728852321463981762121322365953350164042874464836585692982392140589075029463005290339324445273986188076268827765574728597474141229386243006227358815087411422671823456088425015086796481288270994410406889670214284397370629101759772536688150426642050739620398239928584145497230162254215314426008137292663917855502403658744632131021848129425959580286502719971797013229761094467950528445534066825219269017068128794880366048708908471020665779431367287933622570704284306375873502867604275736511688857781390768552986131946127809219620661039312335772578027592844065502542783859382033239918952740136008016169479711541970482155461807432637622166743913055908438279334492704550830356051173582230419582500587919763230952176018215632196646083204462080034684964884570378445898258277746735195136532643979386522687697728960671711664569171021640809356502925089577186119846143411658616733681709716778416639284876008538773222594077634324503482022155802613573987496718055414359089721584158259700211587979506160300335896974186337085013477872570076457766966699047011627879040792898115101309212460877232900452312662659699053942718853081270122870669442447876335156432046894996143351011763521930626238794026625902909995917781760461627547886345279519589017973849954401136775233130998330808542516376264386020568454552221031056198938720116673560454993568935804855378819684380312415316120793743862204396476767857491928674727807402813676617063843005566732918542886627347254847171255269508138515492967629983500746436978238215052494898942972810639777555806321130127480902536229358814552274393787460690003898178172482288099145965632615372939036806527572870984727084366040312245984955274832904184453014564943365664952205621108254570012798636690499548208980591072755765438658552806945856985384760251911285241186592245814568813968304470924692717069130684196303653591093049965733517005015848993681443470110181647499900259463885544394127748831903771324754900569053661502640123186578961408264415365965565480303356486920212458136347876249521908958329992453723960628763278286979323867254447994406155360506054788076821244873877427821921218680878951380649227407367850175534436239043709115810290777711705758561628254242786465473659668016017122109027192811098484667655930962126633331745600098220331930421293941743513889627227119384911986641753493361677208789661397050041996466137936527717199923173705590753451954716249939688533988217067366623494912190667571093077599492088695201689366550777057181391762733046910659166131244480707248344852269825645251033686721792237978202427726398080405072273886255533283689974566008440832380940310653684968621631349409297220482690570559232906604341386172563200588647833839853843027251199704663840869478409972031132903266047111792055183945661530363703258835900359753112021961848071184564762354387184116382735315769061311750784939852598083067324124629906621449789787057529712250070610622630215804290517224932253532164333204011822286306220101817567653458155810360020163082829205435286245451302154030665400477672848465685328030373363190147542093077880137812596546105341479192581590500171867937073476013394561577398589349939987682658376936819305448403318875531259220627436564532286538051180542928949188747393135492240138364398162232071836107790684584271872379552851892184130084051524264831006582445644255282145938980563361216713319169260576582226762689008196996953020368557434120959986180086862802654490085482143043400128640444490987215739390296707026864354296043217547036172794932433980519461789058120007906069449074550060136712634887569442020634338779585132592112051637823806265452310063755619523530841126004782634694118505361758305511105278705879878196985369222346405316586986578284125202861444360291845113551777616496505017003704101712558782457609433452764171513780177728616715578850838054695882763226301948721093427606929725265587832502351538761787538319165013583069705384902553896362543288398178897340329147330629627896141420440078086588283205013567232060919064406537853157774398378131041932896866905365534495512417871840315315088844659173667838523247749681134683591650309796772795346506109914649108445562217503895325351563802056571644360507130021368387262151030456028905529633653093505862632150905231583023622915586216481433785718490730745169714881536745149860179901698480301003481977222092026561179522658978485579969857937458248965866911415766625326878193222562015007415632931842409704269091068654289214442978061882772619342576013335468077046116156994937741149741514334850988458469581582948125268190722572012121633653719134097756758432375374273461751569661854817474093302760593756034395809948224132823657352868007142584163264360611365486639178362560842825055523542333561434932467557365241311350364752665382829375631241796935338330978749447664935838847454325902902054273863219857694375902444994330199104273335381252953764940105240390508580449956020028407183635978011087741795483791967782145816909825271382394125649657507610167849201673264741366409330137959158048693608023771042237791039522810698431286113924902549582500536224011642326476440479065383198378930675350537898991137242483332086963057610886051992114689933884575275797418993633250940534887748977208729846595028438941457146526396997898101193256316802590688721459412951021958251218783413988259360418702230273388402115648745378506061471310022883437702867125839358373199202014029943147929831176612965307291669086343497424468763765820626961842902624324764424012064013512752220115533910852794302543607676527009930816489476281810196952855339888490265202040711868216841758383112239484123395254416647589327540270901749590170333120862173583766972715962335047413680883312426218461974470094458033406217183319129077632658480744722551302684624783091651334716994223934996208760536455820222695938270914341088252515285231933578801043753270173131460981215301548013305757946581429773209841153534403661952111370981906563982018850719163270545962091061013777054704111996740123765595026905865061163105886435865286096294126119020622351010606431068536915379921066633965923418602572617519287722941239745601959288236953240332820361479848623568552203039624592273977635953981578409412715711181738387393592288805706359018326242808609163777958377331473740537674959163097743645490815950626140790631586119534038689944265606445926032777894936215442010937027979879371727518502867762332119696939677393527028407741373569676433269248875201202980909292432114669574565745902671141603454332507903546591721603294481724926669757321550695273677439875640673071294375328717334966693700407803977034602799351059326959262857830051207325107839868648126821170183479908491808393206628828050930154358945374235097907601842073286957351118832249989050262826263614376906586930737740457197686649613526315085729574123316667549931881247895754265626477488814312151706859318563156107235586416050307162305642186695759329951457994748929988463150943578320283719010045594368662399805120437842122743176274215762891213567602696299275151538844514979958406917793980216691280551324355996269121335089890445669250333633544996417574654108961861126092646888108847456633735682865361704767862445086269137212741932739560423697757452884937101517275700098521285363240638328181362838376601927542851433804467229756348660073279958429089263629439725178609613514688664318600888649320577487484500154545173520957628639001439990045124926531897670889825535078810099846600545416948916240690238456389359863249612944962690259891192002292405863001437712267627042881360379784978611286302061938806769190025245800415258376727162906321652392248873503536698803949833118926157156170298807232558110632155606937406944724219772772571553785423576012127966378790128309154997394848521954204224999776952174847173014689849268883903443771384583550821621106634434943688852358671385281678036823964013813499393935020669273910049474436526568052126417247004844702750545957172508466109570228466044680067257542378688099964528944388015243091806084673142940171352861928510297982803122533846720383711014585903627169207984641808349706207639748876365905604649413492168742181683246878386926982013813771693085829807511710767903562912413245062066493919936324147969490931623557360395344891556014417415378758579437732447231575692992721404718317819515604440233556182642523017239045295231252802766794544727804157875279690075763155124796531480522174167495420466010036136949462073093481213032279242615741722355834805433149775346802252703722251317265852290859932166009992226905049611581695628618365086676329775446379226762950359455445752261998469344652977523766996475815112366111495233606505125802559376197780135189060519628391846852524282276989591577882959592878671394372642147078343318922917955600288444352374319867326488701351543945595877152348285805201376661964338009794294889955601779782277101780589270947497528760485556148531825835357337401366652942904542170158746646031526965829208037804036027838816799618584592105504382424462481601054634355737240681947752149419595043178112973496674609929446126472909002421528908896805098331326818737434844205217447004290913388259244172511915347765652841157427087489305435152914880457341707738535931528701225557032610963814123795798430370264408384006042855492508818295346554543089481302809059884966540973783678898327010721375053218819047917463453223174204417458228790341310534947006814192244030282124499535740654799048952487750308068860640728715765516284616471286113415055514059205218038061582714254227534256052365493942823209477123756913954275525981413774295490118933009669042406576637378359262398960590678321812226038788376302935808017896040391959982126311162847340262075796512287684273782415324134171027696130566178876958483354494585014311113270196720227753338814529091936287635401884693569973687411215519635218287978369035250829559794308903726352497049784879614214914370426288827779946615037396772844034150730213298345145672641162322938020451038072099482998813689084594226646816369500970730765141147117723632675928781854164069279777194181281633152363005357640560549435314342926563690237410660896255441250042160705442570278990178951800728196810008284205110994599857546297806568099268770625262704514676510420294849982706588234731190149617729358317178642002101958854013006537566898500475221627770782375116851808827463435853525760882226733925977738241356668148741937841666636310171691821171139865477033176256928668942688044748306150166481367687945005394632851909891504424062297055077398097260111445068151328188726189632495747044525220736918974248049896167948515091225744856473225318705161085705783789709114913058624862240175009603525339528156550280419644804022760209654587106507593608477990267890074318992522774242281882903199457324825747637946851470577759049085386147677902888185403436542391089388997374464284215746058995514129297817000724929674899966280677752619790780857694399930109446971183569498554444770951945454275974581756728460325557360633865900497572866130484170791800106458482361787651302531753977691670501935994434812011539682025997114704344201665779519591109039971537918312728351886709823703685279021486768755234264335224781158268856447379521445528882946022639514619596915655414779827362800897943278448345648229452757310251615671206491777334409191973912445445457516783236302988021347525336955863320255646954858442717515289535445989901225056941059397391871759721182803218050410366096317115538218609821907704914357599095483446116678837855927440874464425288223317805462945156219523664324639205657917536434339294648596007387520868583787623854238938231320459221319734020465343802452811811462472811735227768753491631381502580627189868654157808046644758327374226119089057606627899632880210070101547464311155543882534650985697191017256431185840474277269044103935773833923856030396551352861239859956369946304666110316116050002589299411435127957621979654752737878351109617251360510804247459600481293652807807379622456056422436213365141596886074121486302532889419200194745889788793731586895362559294563540288693275145754767736257200537858358857947266803957518944785987096664143451916680253951702342227818875590155081268875581768735969483805060399663450480334898012007999902496201786820201079756248068390353360428076492156361501088795715103689962777361581140393544219242820878419482366708842805674484561090699685807576867948597028460392214966912877791257601772736188970650924084499241237538718950057412909229041958244668668205030887310624227217568159785191138390549188788289549701044384593355900189999848388791202355166165404160024667386635437440158505086670932605202463109539987231118300176761009632351367805959617387294648586405693277519681828643893295189734336242207244794101259346628019541261699676038315386694992615015049918492583991505022320399571656598015421037598930666868378337450925760321585666421227490409019422162850565335128616038533807520304417774557069990767736716398051790958349344215603624736195331089783947139740966175235438647297735088008793187174599054527661658714770925122695056713071203946652719175065191750052024700109471126983678899392858436306817887089535982978664019290868340886450388451136107534012741680428095967475689363981706317016384586254040785548098708205266357951605995206591003151403874935765135394383594554406787176504061805842796869454631331081054536557162173854706348398549842476542320379577788889415116391190148987995451087035471643519296632892901628851008765732589563851824082043556242839301244148951678339800372387139206999153173693842596880024443356638204344952187545115346208940319908583658514888977313279939138797066674890163906367279609981839725647244097880006491370917194194494547459358987874698320857704387720572958744990520814620213503979088884859160930740828939515227220609717098891674323466255318736223513144770373659101159656017036595901772043221082577688987540996328808296857938847338187572313984568557839197519523303432813538608007667634162196659836612509329606975374946067116639526562482502639623266058801611707536135020870082818861277565637381892610463779632054133607461834129859754880407651007230120218400372086264656103545966809013454285745609490637335306387365829627429561209908029703668733447251950670727690858865268728861956946130799516135410584778898466254474590653744411564281835420980038888328861333409742943582882579768714093831385831584781338942434914747787053247627082605638177652028563121460449809455717497587055644420309257862020343338337743020293342998907893940013397836778296541098162001402952624221598578394106212943487058210802215019059627249464209709520819199975666442823394713168368843465069417190249463338137619932659110544721445030805388882568181844892373535372585468776157328204598059110027308184553952459171153619218402707174286524689919578540242515944521685806057482014267908096009665361067174352588464994464293925876920577839493239634346234696486090206749128918151167271507635906618904763938639432084201487875442634154619690199438148591304011630108537840972229887329883226222124804797857042197558438987766690595604720649605103321075685164432397752356459165748992251769166880854324235268927764792882485781230714048841205070478732140539332825161328767979362585057361148333055748695918302599770343850905953793845196062207413853122873758787475399828073344050615738792079771516851171094097325408713764702606844089143110613406967036264346331065244878025244246249650266471595505503546352693414805199597561929431844728938332180795081416990982198289652309845995507300456581460064788307468007389272556984796262698452230260522077130945415218450392649748399308951042175484254410689496542885061333394574984818050531756235525445366948740674423501576577829211121080240728684115020109953272196795500225615743299297148590066428578163607674499057816351244916519364345319393441366807986203895105872709730535423127941295198357295196792280348753728660402249870421953502435135628580851314269489875099473978428067281390469270048084661185075830475805106998817444368455025953455472934008958672573248965279113521646607967840347305647581668035859881022732193434361611194931567005813214997181843039818196343442737753725788737789232143335965150975901535495579294431054569536341481459779060164376320942168598669794727053949838565141000140481358835570340190175974740838092768046987449165357906077218660508328003093523931387000063870698956111110247655989285139177395930288717711489703778505750737567647595798059923046833267331660330623472730766736845329589816409814831813464947184867447314065237049343200556136293133150102181449099548156468436143053862905924752471036182058271586610548242652680555459234391673186515923636199807466366663785706103964108156523624927066438702113413012767409131368659061951762419998855898010212968379633646541824719329742695307431180906547158157472282546045883195920660138708982508102968009615209767619053811630627531808428529810554664375641436268861363193304806232349428035807501312799883121724349374414967835512535724582873846324293873148131989522884492470629309714029829288469590572452057500544654123242533600265545697127374613860140518644940643281385821319488696853577611326109155574398450854102106253693355394480528984854523140333834506227365097365426461118393003985347281269406713157010876344639855015558026856023777544658499698290597720997547160781785031060785444190370566917730713491813520695859261320975006132611930100185481918714837201015991211596453015478809774439227854144066439866298205311434943058464318587666908489014184481926999020770582162019766538381739480117026010350114608969141635678716988019103422490815885996188687945133630529073343411391413333955879509932129384902166131416900138835213335742566943408503637690085809461808589291725305543038948760008203941219016987252339726289690960107785894316575750331657519319182493676954627010849359292382549134326091832037258606911130931035811979544584908322351541379667022492578421606468059132188892630454005217210370299511939672366086432706532780665772115941631205924125296306397729683938195925498890272444533687196016713622187276382935199860707918242429040698906669735157399369991252041520003449403858450169146148650940885941014338589805168919151137452213199799004064515227472563908611819459183032698349617399655537917844106085571503969246592587763078193033679941809690162803438350371485752552267958262283587436195620522015191069781906108953166487558117634106760123609160112129244994225015499013779670467583801278886022317780794250686384728617017910171627164991422475094225103413006457866131622026659299104825107441351905937440852649399101931748014514022595365950872966798695177993958475890741185690307730779961600970287652433456317105670768295354487175349680480137043238254314997866469976705194757557424763925303528831596620675792538511125720901760524113250801565144153128313322237298390760222579149076565583243793589433456797218528218874476829462718124310673938755126651284033265996600174411084921032192576587942691889425406363036085256594368800989939743999694499512581405125182544906288960139104223109083562366623316367614301167177258255991368282144417185179257692243668951428169863508769742766376947540602796708540308412753829204646956669916265520259188004709150090679639660597303240036707801781564662558864060480418577254470121209394500881607359380514006157392435611807851528038368790434716011641060668257466879016541196718353521616123946475140611013019965435517865332904530881820702263598907169804172236173762776370790316749206043630099342372631310399651234802641929070201230330146846379949011682218008276083431744154034135586946391347512150927753812901350201228008587730259624572096219037093035872953959995916106324084389839482974277717361312260908374913623679445241932932694857968058228368733290840711227321013317881781174983759504467355611525761900900640139439120351766702656968016506699754848636311572693306837689672605773219303567681196503969214667432581676895464306896611534443214111816668216195236156605835513938439644969934605471301071290785491007662115117041332999278944324122292900470942525410352705867173457849261307426190641148756933694965443436828250917828748719833950365109250133175884973370684240695415178753774006559943006145744509847238113040486162299448310845775976288923100393449766051648273409724666338465660628924337869403159051954761984264629420320121455972644612887712774801048339158708380145005536341005714288032457783941493399985250060460935310034851621497518608379488267322822555878061309115726975445066557989124369897127901340645779268458955015134301301850486939532791541458595210977139395264729674377247283889027079542941937685228760151189778909482047792094314810353729566943229718589910413698648654505101896212873802737420537380511364494777563244914471968786734421594623188245273201060549040191475535377138433115857779561749892219284470395193709872107088581613863822869121450611048767068180659053807292708686224838177640968899217311730813271536824094881328999538953509978345360612160005318170559757987705493721250323143170874951695307946077345243012249013245600721866195957869986754537333579551649330013605694220850490795992315537573222654310990285316278116850316862195066828019745575780438534288066295463122290109943769987897273761283730385339298373456754721838996164037865950874333147285047160530393984432168072588003594244839212656349908738054539014266016830867340790984223306672624728892656331975142948462537029111718629066872758881028940952463952313132686474060606445639664141204469561421221595725341979547938628170855661511095438608251726574306747815738320915307594566337929891316136319439829678773297867211583745563641967150555473110774761083205420381570909154677800774102174048538496107876532697667496258968285592803387556311482983822336689174388230907271240199769398926080622811519229409410085783441112124913411299216190859682153012641541726700092025595272733636343345170910680370357874951532550445428269147106462695105762777089672791031483077849571570052850053052835869341067502812846990529272867407556443449776661688141437628975542068369249374369277904074834994437679874553581432920333473252739113875372969901003848032193067510824366755532853794319927855555951436723319714271333477894268110585277753362486139978691489943542464423923499379465539531489559900028518799890847918488504897527902305977137847215738186910262454213113068180687514609022439344746933679660059606837908286392966236948477444752100197692394445252322262098466821042771635394131154702700012987750186322515049622112298133478828078625392592241441626558971789686387086593257672459607445108722938128145808413519341172454545356086173060129677492878000370192804025371536675581135088370254207056522709714574168431382085903986371025780136254335879252663843660649665516405813560630733747913534384767512290382038425975374533068554903057471382319391820514265755254159026577911341630534146249708662721837259948649598478297135378826361943180195357366736614281040434732196294393637894040564529104897948783154515531776632578812042505699273837462996696200016290902863758232131929075993050887906247802965232125451083845878763056668941705519105861540287934872708653958484249746234449814930430921365038077977899189554553874093637999059114376078909579620013170139075066652483088087923673709097495969419301349008449419199086550981344191788776595740555487870844749859797681654008267757810129986290174915498735677280071304117201128113179894074923573555804393507332699087401362079006713075830419555442975571919894036740775018570177029421587351468032273614311770427557006917365043862099800330755558654694114652534862123242727020217694264435863187434145493509518596290335098268588091969855242923160474433189597765800689328308942712954003854476121738577465765482472947168551899376314310830399670788058994155690434433490310793160415483130899060095110620170874047261021649389001408354944509838216706423104644596521658555035504035593603531210449113843145974712152735778072436771240182444183985157249140493466633722354094051218841159084747431203744581707064302569062102726128080255449325391156916754235720057394273744032333963227307187415514696703299321222960076769168258041461849240976803672062868529746390141569614659552114753855142914048513186239411646723147652472001192393222961945071193320092972726653517745127284193451616177560166013237632271714394918383816780354696405403586308748375092248405203315436928108949906509452187785837828670937084995810565296545922101244539809551423055462786781689601628778897006000849772375770778853348751699882393231561253075415657534889430913412113837181789364159649032073347997715812764966677575717650797277622603892717368012463334447336074559311277757979762033753944222428031912137226901661880696189272108611225385421530371474001063253193683778622063995025681280219482637994231653569464362027034333805364107867673164041410223731015996210673310425092741229404203462176746542715072881980389591657674023783094850262922058977229631708242471917355856915032722687021300731758089326735919282868242873902154753077071973500345373921130300821504014429156056360211528087873932984639759500764167813805792042786473884554435223493338402288579021089055596441033494617894834384946227278069999232391799047723352125476620921075726412418466324832618249908294238712704000226935575757594174074788198415566654037064264580848444664721774745818849251541822420797600213376128148023068495350712281820003600499514839363017995019181244691605180474159575443872489809902937671098986076876941469182030203782965232662321937374095173302342750479056993023739312886019247717688789071245517708128915762471308003449176203212553456269651381434644315444135954880114849290507402827418219232557045136584338161143840551710472653706377950148999907963834411496055119102725109218653135921592589713927421936447572103872814889175179818648726251358824267493381512962150935057146774715186335766744790257106789618204612838603469051798995136488021337726774139958314608653173762622717206040233929689246791449773747315908975379716704291530524973396737067744504129809525244907740071419744092915557329673916924676162751602194814461340487661942817065990169836548811367214961549507310518275881404943991868567136280865972020890413714471029012130319044093010213390964674999949972148653150556603588444717900100576596703593215859058620274865217082201094202594573968060322701207088359141192624867786279574879897987228815567791028239306556232184117810542217388945987631173621905498223495207356540082099612581713138326615688301296395540802831548377520887640192410117650906615688012815498777138491897883532753936447139657969126510625132863918128176900752503220595412121980538686823906935202056015526929295205942739173860898186382673745528853682262945101961498429688164624862751230684335698190817271908970645586837706909297444285645592531204123083159272229490443305505836995828540927238726115991112619201359069698219610657879271947018682601811998227566418572611248789874270220509086865765180905287320747104691572329225997064646306859819679508695615520895039457354113804996135168223061695639736350926993036954777367333675501659898631747235636682345169475771400463235538250145653847769271447889494956969846702524215602208550803959220973572100037557907119735182686817962248359404742364402544884141308632601523878724726617601818963624743825333975313106725252252425955290692682677191311191891357685637223657905182670677771047940516504375153889881235848045630421303848363312168047298099551071153076573617814491433311586928818664486836585882354771150680622815057430480204399349997028186428863303596877019261058385120294427090679606729623629974326796895056585836131485950471477118190967449793566343920853529681569676253755913326445213963775190867109122938626890096943296130393829968622028082116241848452708081603820130450658652984758714488307377983046752488253592506813218817376906996079328750237264862885381629718388623923603254804610243634002824175010679254407938769123776493346654029063229690367903696742181999782916848322589644004875581068343158327958276966960254837720839879571961038661895848913786888973478963845893087509972551768113229952550941912491556477641497164723015701510903230586139791959447500204304880569642573154526813830059647675458302269374836654199264972912934740874012179630978371669119949067934605190838273858829096086129983735921775024524025398350534730698546348752652044761402318112403285740444705414083676244546788204165052925094691642982248411747926236771277724767004735076898576595758462123965573867120528092144770131614812447364025432161217382451324751840519474468895809259079161155481318361504422755129694839761813541366980552458582055510857934716417872062139810463012552330935283044522086737997752228014875170468148419168459654665404946892432686491177291407370369239031140020127215262528035525609702290768477347331805343396511078042639997804472232108488228956457914857643525810113460611894657204332104961784241221982612194728615508143124125044978806561444159114483941981372548446705329444422406668860127848802517354913774084316287102446460278752882654739794181874346788464759292825904018128607405422553870837404670703101515817834963998611957255079310182869754473107869324065178585278204165696219174611664612827008622110636296608868969278465578230858083485988589208003779184488256048961031164694542183068314603877975569895613521077940175495154357784459878838146530849047551373165134180295821446405713159399338927849911419398939072149519850670775066998257146384651888287877849581405760653063325308834091657335266309435529776348357649640031144033012595640993241038097026522698601313580761065625940631364755869900629385578419806778623496163569836375029594765304224966049968964239923297827061173783410849768675552030825003788400869128271199206646922326607014474143955031904602704044931024071325198824580679984280362284166784134852193139491182353829823170998323222954317883030973738515445783441716436057665771010203018312678124085581942904475331698669147334546237749409335620511701769357072037876857689505665951681090674031151093219657073634248326023483968357378687976155027361135793565484518583018086233968334211814601954818176551885936827426714136146431774904957980717362691576406104082373488515893234404603418483264380836965159195020855389525819089116239761067375686099467046495387142597338338356314157209252745574220421119999824330634667859912609378949687172239297272839086536017421176919717079435264877119027420262577045382969319864863655530929847407285725857477206906362324249496429013701135947174527902631904427548267730666503431632853114599471613809602986781075024821753323995425960275403486552889300981191070686273223474281124799828054036412233284266619571344054486741991299760043102272131208311050341098762348999793235397392416418920516109346042738360981929656776164173428672745283300059338808551618472073186495927215386573237893435928342245035311204658876005557073417113027162176920795815995016832662530135879890329114661065753190392745703390620511204762716985553368624521224808303540185539325636650845657091823506265675308218202059015068231637489246175023567177140864860417279113622779553662263678344278238405606952528653232717380736435431282533579250414733663044161787504223338304127534700145835372747044363011031448210527743981297133760513790677736422057734068195257245210918738216895958525766978497460909378253414467942453228062056549549536928803920380001866817111176084467928174525513512398298334507906761110009579026546332001213491648419447614904935021680644808014948741313678626967838962295137025170040400540034942103248619578876430388128277619353763737482954106492841053822195667346501622399656647881783384977223434152156110219977037761617134771558955950260680117293333496648998070497214530164401531898277642790514236253313965430145197814084033168009929561541743860072288799161050106954673020336111505524373165670430316987100395779178285437526064765440727221380173247950791897518766531149941774600225287860285566763034964937477473095852577155203489474131005444031632278729914435087059567822482233757016551436803285922136033064192626335152749070633293264864893333574776781686660618471967481251138535919730479443453885786226536211130167150691181310015114379871059297173070455970142771816122016263803035372731447749157131332711617948624240346153380117946291182681342652959917510258193666328842402487026813794486015820196625349791375338008798386382376659588528157891533952196977402286660582580127556867863483269435207533028687942836373057298573412374225933720528189591032802980914781658466512278604594235346784553487411494944235970267883922256811933668861843154763879561128718200226281723077438004378724862632206944309172775591703288991072586078930629336528745177352513922552834327709513139443959176309823503587030123363845063053046005838240777496111668383176355579881433194779048600045108127719768809771686412494091981087139590653218431715344294499761839109296764312111371168357816971844023911052352129100853350454750008220705356817784994135606508204341802007109346918809208138274243014466790715087110737064054641330512503289115577485542682894354558585668306554101741342160644748796472675608291910889410092389390425394098063340380213474790697595466044314938856274834364616333720983451548830016804336385551992453029673580148159601240534460158914744831343750799310817777830611653702635801842322727849648280479887237559278853384756241160811709143938429375511818626421815015736336918319726519949905835474797148109412120542090134805444974789678613073255263166328602111867171526437836706498427078165432232610691247554585721040854059637126663668094105603151420277158396856520537817790165327218784771864596153951216213822608509328349379916127558148913836730057175844884583798864386604519853454687441390361430699594793486988807231331819349412081554755503910966713327309663882180027821109540005917920085502675130703402650377742659738371757255062698854788668184537004521187156400487065909207284871528787809576139699725126425106635483450878726375315786455955711009278426029409337323668739989606490504265715566308374644135406107233761578655534549123272050404315086333004654505134643851895071252074809946083370205153539289953193184046466073274062994932908279463874761583134963650352929310597445584889101401392788985734580238439614634348135069114340766720511136011794375782524721780280282722697001203695697368536479305980165117291498331490355138557943405128400378741891377479526303543892622948817077390363720597716580343766726659432199891025492732706935554579739282458744363479585921846334507420244004161058089182981029572405427212549017982453478470276388032764669293564390886530715032097221234214594519283303910497138199248114492084015842793557403605867644237934016392218601918045459721563085067121984979576250220830160690522825182692307527129204204992584929029427105358728762435024411428096579719257922770194290160978803219036835555513514250711607710311009539632212780552646927173807544128217756520227822546716238888761111650569844687702320180113037145798826933764303629876504160183000260556967465931337921196276443885498926298240851133642349189760876095606207814136416652566937441493365213582904205212687196878532106394233946522300787635767696903132856601802751336694325952002270357836505685565493222715766319531464750923253243199431520658029839900263566436567203642953758500551180739624798055434109581574020421941268512319374686159023797316788144998807977822942381731461501905174772939573109111312667031206990504095267204380994870545551802136974623055689381055614731509300717010907957322189992617734959816255673051570151764216279603187356429272630865528663974609404203371591621392894309218182846915230031827451028842966501788765258961346197647272945260659731398818518382486037750372499360613080698141789337747846384433484740767404419418663196083042248993683848969296276937512668352744441477687141623148537973848903590114012082698322238652031404230079617279050082158974195034002446113368067638766943241236896514759062959428620196792138545783761021600170046092610646105153736661124429944662246419268515592614522657548878418887586064126120663827884511398476309681055847156549556732863567699030871441383122275878559462673215157589640578899971944040694319807293067172722579487965550817603754717392375589278915724987081417356993237908008947004757555362582563198208718201781714070502563609845308662322070362145835349999846360695095856490274781630077781734051401057012608281322621819201849144182321039414425407372029532769546592971028180776634400686727916606377552857916810791538667609364638598713656862448505636649108768216505375351746863201652183127589876916785418037228240934128085457432074451240319067812351203261502753376357507868426925278291027160770637433434021305249054927119631135256616769547339165445930515306651673383679732341071321512103074805875046123349731105600541773767336195612267973614362311787335531227738909142878679143661547943611082385496579110960599041287807973415971810058718711359480793242892196318653384318134200619978546021335844827896978212741396745619021100666303968705912987289785033815922612962572898373737263566549981108040172053515335604820662072068556813419859420086425398580582613795157019307806392263911707572146408802054771751561052744116853827305569621393659899390081459240365828457568741568845712400206877702990763963731424212795997140881763037047749380907110478218378189074362691622337042689192013600971889244719631392779650188610185476672146195458503135223758431232097447893426923099246448866853520790064129512245375872390327704714712279922209256384030797341019051347280111113548746588275296902258578751554243674634926962798642840259435438844753374117621108523279486505949264248228343365183923176715834523784025501077958703894599603076292505333639489791120480176503846295466668174402196343116711688309363935582536184977954711442795789560913379706887248354540154934779095002009163854071433309959047789023656129589463506368032854199700052214967136765668472296765019602273636203599169166920266822501566349986663766172970622347099280864844825120837472051903689321743080078294533886465953563239988643639685018443025962837974919995627588470392319063315697272378454213131716584868621610823868596265638880064479274181844052648510404752456513632563723172190576959732863808075738902259508924882946461231238488712865365025886872933879548395664867687851062846411584377158421871033494659370380921724235081862243910521420507036566141025904293928637146985040357028420410664047755551947472699220472996728030762760097180364661388878656842086532287799488634739849716918349576498217084275297513514275617047630263775594094617065018699191286117467806902114548920657605248790645881539882708008138560626979276940128821872546810095031732509301943276727569055460374151909484146656016661876375782092801572673369858101820960119104976355489023133387650755144650943457634327012314222216341396289671289684702603675756227206464272264544597974239797541952838424916453535876965113780075458589510137345403958234219704147823234413295336615837674967631838356088682571477685908078963003022840954393512594975423115249588262821170868221143274069581019658103887904469535169715161594973815193146952259951709560300142691145749784113765281207172005377119098224805150776308228153521055792387978738375392465876117328034366668097012218622370939484548030651987724509528753420658070565359462714673473048481188301235068555492992000042241270420601137786841850941051232229014657626897927675816478786380975916008361444888719487980928762302268851121415457260638232018398470638523747666878746525592889149480908355628840890645224121024398099362594739215793655748915977659336898043784627488326952504340982714650634377878522302984468834130028603239696803356764472370197921623977660512334858071890808452860594915435739425978329332485328606556977846393022333599586912458894153259116572372193632065482008061821601939823651726125106081536788400602663777484033840942837024221747217886892057395894245873476985246801311068463552907677416078591700580324653188311273422765850547728984670640917516325520007146344758364309124135747464735491511893283074665935337806253465044216361412144987284523918410795787472759848553088630072008323962134160005186727558644838272755694542000010742020483701224059333585553480334072711775456577127484082625849570119611184527699373836860605358654979886848042652490286771338382383901747406453892559736888163597894341743920705747255817643214490567307163348293319477589779303851181189596418622526997137585186470739252735517909817717240327943884786983294254194945667501685051644228671571910017341628240049567447174458846712874587938847249234902289575549549964174787468631832470545585790829138992370498859426348867365883179154759552321408870894813325958734251179642568321323581896546065714263053662730728206273103002473855206774271444976534939160166210498690535364294261329130255625627663213454677671252637039011789596665154135780312047330092858991268208615200423308912634355432962883126329780159203630328032885613859453887018229825564576811526255677776009190189156985869071148410898274823388358418094246223207502127913263526920418181872357530015551403038417014189141062323920684475124463356158404692039302612157090334189633635963298120564614510573668644257838757082249131043482122204236027716423825472557776861594040131580265039047068050513854822162421755175155856418982849947319876294060246066153611923478218604969308174989692811119646652649499192851968055172967572977501235588295877413515171824315316480241528539419479423622066111314183115185040299404101306115819303201308670205369539825086860554253164689359887075274007386529965981386101878037099267654961322693532881816156365040263252433407857030785712502253612235294632670821888634899035917037313442365362480603496555074689904023126486036025711698738778463565444826697794242641013039152541095087762579564965126839045006816566092797343069747484429423614573644565187439778733052591837233174400005669173541365255067966532571913528805102424879010079388409898962920117545042909009499728055421873370642467483242836385296897525335245689175195551438395637108049895057044254387712015976502063277399055526285838886700494119932033623497676540942124301133768645479486467344793340313716572670911454576367158416613610367625406806106618366658935460057692709066942473572644117698343131770263769797524064298054727818773620802245113436659017434813061772498158751751371253542679884511693561849913621150545863133112298154678926914217532782855885303944422752163028068517112167294940522514684545674351868365095650952748745550716269293298926954567174146437357724296015151484220471148001109509443595133698913617369431097528202463060915791509651868818073140288782493383973377369373640278436328785049108271131593092315644100959806549128894260448146524446569401154291430495303422652107205775415123869377344041937173864101359598327575592815757294504551237987928803447199131981468344528389156261111197297394156820713228614081588816273202626302956258862998504436343925875509198021542792478897655748917434588772844502107606903288511379382567910428215351123723704379969720883964131279646049997685781235576428850131959603821615053048196244662429874920609585564211169646152008140952906001611987515085500629103763996113199425978685019289290743400200345025051467195088242061187468536282757796751211242148662049795234390912517446428570391371291500331621591084054974959961794646054265629739925478654174293585486062926952390659840395581289461632516506813210596745796410161364340667062017927484443295498089486964622412289736592252872337147576005148034761947226209124385039502515599743999891811855824931542948585386888717769370921687910422539721855169206435235761290466906073404105395858180633026638077409413373201258080214665423726814654804940551030406149896913678912386190013789297163375647222145989105115028338418671393722697274060413592780124406107748404605866874495741336651537324083163412353535750338281073933403520458112513390818541912561766807489283295103393838839659578197965278146493838039258133075015327985438655944527502750101403415383999980292019132792967523280089061472018367333990877606210873193080719246908220365669267020329122438395811490674536141497339301342209620560556952551840813473172280847725336087953509313128137210009354253838469856830710624342294377821210608287467803339557035618367919025643906937579272584866088340983760126449060884495356036822934516561870703758487950720793206764577955339643685229379876697378699325385869298892727863377677544951813543325057660117820657881376662192447256869609454748366088956079959975739701118921363706901414272665250199255730183802033225876849977658173418933404164413337227926070924299873995052849150794999040888329894326660412970584420081330300085483748856438144590230693779896481515633436251214666656513030256646142192423346940234731831047941547037000302464914591310749671539395135368385679421697902130312688796844086845194108334131956497360775247478222119257407543778474009344760072556370212791099766854126042684683266437559922072560420209960541512947890873657070636444997742616426988895184206758463204682351139839618202802559030070123115277795928121827852369246371655236681042886701314149143409129207219181260345582620259145560141842218690797761728037430151533897548342807191640652566463361025909427064142537454864478994140625725011544677657258933673638455821198930124596197172212243782626270289870488093066876730025844215347705202155038094282462486878785508303381985051800180764112022697041671530993515570349848193545831434521127705086591116794107605079490217945345769301612686932573445798288653123236728919873907076629596353266446794235505538277406189630760575800375556281003389861596874043411649812909871946275460257274375072863386247933061936173501443353595747522084138208092134325112134930014659524779495916633222382121817034456808898139528924878950530393376915000400928250833802656421469478546087120874150832598964354488164588700717980279280349479802691027084627107533754056132544130649220139525685992351521329795989866089014642479823247159133934225969474706574574800069020266398311234584413060273534287280219442124795185919779056896479998638131552897353566890655026546850548350965504038972750268737419281288011739425904283818965445520589825869951540515492551128941551732534062742591788086125702509920835547998568599820084842632837255184173283822665688501647572864519212457026484930286301430649145933154089317499021127007754206379804067893559004521770545395288969824111125660517154772988083845251167423361916024392789112548427945476012319732330379505410485995055121367909258434031740498479383210754518012790462418439102933205276270346481746057053613186932594638012172668187882614809099936056346641193864533119864502223643084891920818818102458874080132545549603489992269897256802168928490900417908170472624139070467804884168395920291099499308013675559355827488739042432895161146810951517113276041535162726109112057452060046159383841478558266230961157311013246023015334549226561330042952146775604779684181074598658340902610806428189891392718519996742297458241691838534766486403041395770374172905825956376343045576773219427025082727579063842180221888844105644526390698516137160907487250144462029597973368099585595516982590217717450169993939502328021844701077566290268401054357993462792266804892276620890246911347071658041054675731883485545166204016775694557929504852331851031718268007858621805328180124035725306885238915814176378277518864044472500643134774722598471150202901412133543883544580552916690590516401291320259645507755671204650993858955446112743986578392950803710555568869884632677965303769381912744571264646822793707490146794794243748498939469558546551396776399021465749377082263947314465354099605917729171271037844912159961233407883488152634353066681815240216653302772767014925640394544056006726958901247785236004967076144105627125899567156158385789581688603997950770479615393121553705931764919835412562086123967875928995986740760204211700265760820530093273939724148121715013454038178632057703042985976616432027049896949922239496131399418819477241742748543591036086607828756862445219813673874533363662533721823532131027926240822107193165416299421269946681176912882980562457599214863771099921105707280956144693256702063496570413154114684275721030393207192630920027702412452809783133498461897680426005146954945085163969485993351309815999703448404540009925276640028181779221051988846656487618026106853741768400348961630753615395301068218333251588788362223003778708787615608715683032786191559887359593279586686991306105425603097716887024568194673859135335450189460768148082618423093339176561596274202620282062100816360653211696729993065428045660732167629278904752776577487923885766733544625042537943877512461660031055825499800448534207010172687375586170387371183484479869706260266023552513220795242535031162707667163975697913121435903444607519931854110768730285957747520378971247075896740889516254738919866943931134872576340867933159313117524052653381985919728511080874342240758219726266579266882226988178091685087658102717757435053571572645639590769887703727082375170381765440563832694813554019144953242700995091496003665956609271571356704490301636668582303891951902382766327152072098135551719724875414866772546981872936537976780125201212043738293310882345242080466874920845172770619557573138046790615881995575331407991770453357602426486831468695204984371423709274581813138983285400220521093574759804760307402958847287851569960267896701502137601449720776294575442480980512313004296118429971522063126455509819197174932452510383895488015060250031943657312956255845124270746801260537086676996357855656235148034398294350975882248962518592209767519672190343433675096171448694809514104591970390290319737414002402593602540772160326190653745228226840600526719536441928349636995764940982786442227095574777061862217327424590958081210266973341832951473970310365673067865403965092861922852411230398024637688708762813253605346823512421537787358608198186913911419194796748140826860643318309067513062273584281860001424799994472413632517847381789551334845167126108170164032583930674132898533421292553861128552060783816577580763733414499558081013004936458172463567192860823457185661953902458267465013881951663207972183441081599114184316268403531161584576602849093438427214324585348054705458540367754053709887105712288556884666618403519657073798267861878717127987086678092526196105098875874934228919833259867948832441818440109637456484080908816054066976805636999655505356665089939842064750618741755663748211643859052904890123825642477857461713105488075589697535706167786841396102949519869042450947579402253155311639891346864189843470070459153648497358181236908805305380105545996994226431539947555745464874631106038064959341309956745261626845292772107366207775143104147129075031089960611212456168538933072207434909134690019768190973410868875895703641395092627124036812763277300702263578673332652268650181601085641829528455343941620526445992330338556405524919081518997621920315794242871579695926437944369261559137213623789989162638426888768461974383491018284212425475295543255661946171619955013851482716611562247804958404038197394886509822783954683374391611291325279932335992146393476456302204754486129535344734850842010982382989942655992343325451312612569530208996692539528200576736642154187061126131712962264102581273896630225973162552446182275468869893002938610158941243456475442089409681127262428628912867263735972760013665662256402052430899729059675046244554132350735891443538005818361543278283851523605016252561666990365612897005349546270314314946649757063578450405566753995107704573347667510922873604752039043885143267390324807783340858687387423845360163882887415302068825887601279997277383107815723495726612481904736470908372902633586206413598002600128524769235587648770250091785679257675882178007266417442412455584812947080055274240557701316367287550578710766424728983976923048262194038983421105120360748259936576595267002730170358581921094016113265235468498231422770638140942359914334467221575654231233650718374292335787567466260290349017953810727956055350487155006549694782180900690117008472437000322985450426436361941726872365126705071248717784642362054479061255947651973061603418511695146320471293276066540666216788980863544960751193983104337601338572651784860291442934536821398277699832331775032899219064207545372443089162591317798318387675282936309934169148522825524492145200750944502356609546410048982604631970394135968907395976063926586440362824389391736120817572811171987211572044185400751114536297119555565443205616102672220412772887899004288529091997808492125421924901324699695991252582721998413150729018923190061560349085402488759053812299223494008620060463835432985978842908676668100633718380492293908780264960797570172827083882501434135237606852787644871049441545719120199679826740027543256980435884167080536895117886403798435595366936022925131597115474503279441653690466279975069116625020654063711943647671775975311351171782976120018026220838088172000148859745026098343010206467678614115163186513722939012062229285368654389500298351907137998906783936577460752986797019936835621264072142334348858100831765488412632320680630474915706657975341740139698190598978966433984901847321356910676518837912140014847516966843734711269063197902800379343705605974869818734156622907429505615967943551342490725631626807585062558948438764316790739235164387281890132068806381489061045097235241399346110257203302303294657194941876784930950429192616876815044951325370082556022099085436943561845209559923574604725742670917838879439737759141878953725818799577757820176730803597922361968796460473454113606665720481293276491337569981943762649162024450166185234629967769780184525434519556859895326923562448329925430478009740828842929121104195435671160415568559229726039795505767307541259329967081931985303250964115276919048474607106585589748125729544697212774857809883392782437675787058339649081909684723152856009129248426580025626953032048274271978267458751715553615937223123629328325288838861231824217246183108621588360777174542160881982323359810257483753325073056852508479076357983039938839649607145382604147712003337071566909062553293438042239524051141456483314378913649903213025780174960508137285118097989242895021323626722672029942090888275514413928430450341117794743514737118225245383542710715032081963640473596650553617173032013921824261446021791762064049996769510615030739251613212767328257771664437179694085071331770439850861380209709338470063842243594432825705034309127282499522343724884103820178778321370943444556940877543944529231375130233913916250910942680616521654662736547859850922148623651080770089431463218213344930065164793661857087032662324585200021929340175063632918332967944785836518771924362423570381065207806370944397988647609973490533615096132642098266926945876817136968277803526987333968904869144308769978222681768528912917804293062396230148644492049513799293796561790018053183466041153954430326476497024106431003994446666367534229062395639472401412262713537224796213566059048658179012691418306211120366217167866167576205127279812512553686934917565792520804753803128833960478558684569774455795670411250773002327453093256409886827489381994106509056391720294435296122680357320612300618051072275390060525046623931615808852695547078484622038755587188573669522249346498176357365469892681414313473277199123000149062629687663016803604688306435233293675173655842864502713942096167768529670331340867635851575851384386195336416483980648240596038687104520708564254707776969567027851990074662707637897131588883013537246996414357630370825756635780915232594295955419251156482970486023512907727952064307028692545249748370183662610519190924782096511266305175442122564042529176818406535410793410260862544449907523009280830813919773116813109792575297520608464299695040539570318401745843327754399085713573460541970949284904940225692789399089894988326330312683617993623634432544397851211023946855328417060371636835202134671556767941964844776553151595929659347308855993085731360410112129238502397555754697138043751225678766931248310854232263025267939865616503512834192629048317192742307180667202135787629037826927796606018267375440492911714102642896585262250402102512631084301378180845365541810848115790920736554937243252225951227849146819953447778469363461787192868693419975399443217702061629511430124898862228843043191128122781148554986314373866115460074460578768722453331867757188332074332867627486575279155913985985887061479131260931903120639870955879351297898212334369793214621832209978457759093596379379240644898839498429490899065245635902166301092110710370440094968790368478439189134895176144849873772095066805808621747595176249888926801236685178094030327638352186532047960161765525219509853067523250215308144526533893231075827080124208940574289075507628005733744371453356091874801573119552206041195227515500179308105158222464997024538323888638530859451449931158955859951721469943231257967000559514957840187963159092429889378446711140375777874923490203144777390224106711342808797955566352978986180171236866529260856947626512142393809919526019416901363862266553652084173914793180192340920803661180568293349314778058103498809146505873837948819781774798286608044254495443627529109561717238943023476775146145294072757741695439054709527878449657873405767780298739751888984903222945370049530466307755071530440016449154798257066808520633661422671787071935716372644284838701572002088142955782999365352099414813132863306822936876735936760274113399640740020645875551110062136673784774332723121664807542221821441230254716920843676425701987139695014827631256811719003076421102982535410189265290105095114705862423526974766896562115403353069207247847358951181368245121593771028748529420943098795286048476676916690293832248879292429051225062040140313102300114251864947166779552242121175194250299770676928679525441767509468323431934784682567491158216035850877529579307217583745439263207459466621191800594141385286419602431461547531639771777724129217996689562798012588310695033643605759282505144158519302121993503132181359965443677198087382380573327410379539100510554571584315796905102753508634349929034277456791100569541270090596605706506820511452659955011903326147986278165798065271102292129026142177859167965803251374421910436151007335503913125341589808565591236297980214378045353405686071134803561137124995859531249141524034074467392822163924044134003940837608135679415731051065129575575509342692057182575648533831240083919559891436233929375783986474885062736307682626182060828316998244348973710461182187306880388876324908025047347463256523705582275827506074940400800370746297211441198240159855125752044068614011160264826173106127572787425560902603764133893751592951650283308399188295127824806930530082648184736531354383653951053660356631644457427776509897593886002282953892105498582442809295182792164329138488643464083680417973906563277759684699355009224193912498507601676100067208976344266310257424354983255277496570875405172057012107076492663812313486289172809235911763301767706182079651104492129889986988924475547165381555016962552370731244613584161532719543857908299983301401398049316693225468663625591543477536843196119084775759517325503589152014175670192194592623599463266817679739250183102938847476134020692684556639734158158818928401996258342697544607366626720042397133184462772744822982687574144522685703382583240141473135567378102485940044621003106740867801286226489747454381045308158239581584707541153779363813218709194318557955522872593175875244396395577215265257744613599409704920474088738014948150916013179918762642249179846902501674610007340382442738336803088039620235053073426543609229754321504928788345571592748662071244698374626273437253151140302046379810025879620339065039502008465116982312277187464063606571699078515474317153020153566330932479296866589506958693462591459461122781043352181296464355370842207662972417869313226966522414652908670004362285729095659114480919140780692318304308957785074754899035798984925228014647922433812265189070987170336578325145000382242143421755938964718863134622566921039317796551217525498698854642700496545151276040264733248012248513842956382901880275823631923700906734625791785188879678951655725946156731992727096515485471319984666454782445871711333837909766668440017436462347580047902691704041106831352835400296171466573926995647071243624345993185347190984589232174338972268236790460762261858597491664753231090035974342410422149094894059572459227140142438783071600473090543273988557742367939363101764774758827793077110674269898977507254134583231136865799317487403650440324287887521529762645553606829010159608557340298353725287614621878326790267557227349005009240311927143874663274880372847144759931822173844220578977669916428879557853021526505029074002208617543652607736305410054261213023019656263810262961583835314285730907916862392909755755475974248553720694045771978576944599533148415044307311274828054995154467347880298526108517212544607463529970938457965806138489383914339362418340179802047700515747809945140815503745130935084789492990139410414691848982754822623071640773253938434370998017009309410854256364129227248797653247762032050687204789029477887944950887301140802501940997358824501502353360946913577337079399162280372045098794640136243408899681924868977819156571063037691919158453647263264682689112802892394406375312490408126032307012809526675064818832675237689238315061670763840389537847230022441212035708303610002907273929407187017580940422549085131387203849494164538551895375501325606482679444195242177919293007285546351482180002841297420752610863560073560831293975647923726796210671654221306076144131124857340183781121348931778769068667568327746324787542136550737133485202277602580818611666716176723426536379449132716978501367447160545067886312905450202010242955597748623648548785184256137851176380847057563001017492675405065785338279903296167385064176806252567807193487090940307107028027399035751827217309804626635779266668128196577562109085996957836349656889276378383739055488028848515279024800637694309342082373473690099050357221542284198463212935827425390418778505729849233988413507416934325499757744394374610074469107110043576635764129793219234488349865790626808856825430728489046706460809671033113962416020496643504570118518296930475448504634603294879108315382971096818154542680684647536281015509295442037424527121380198804565724795764620333541262815332731172657073871085094617081170049643067568026068941564334229361759018933012623590117287755662314062254057262716994700727600810122299583984859306638026148239822236016140089780227553561478201058445101055170151422587880279481365225048192029532678866941867090422828159438468250956885043506839433359471357977157036629917903554671956396553355278000434911075652435700312334813492176389369280130367773870992639700192658249961071896535145551559452719040915608657251308356570264561331122720122533579030910989914663513615461836807921255532850782581385729052149297684235246243270097214117559288188057956410679500662829514358346837072931029252257508368383044202250655705835054940889555691215500201824983418803796130166381015975494561818944638538504255706032373750488594647387795295836743092607123947499514236597069866037340249990470833451499714119968562112512620654127483184061786859539023847097060225335954407350345623357843936409146308593846255316295995891568991208714611112661140478975245648263532070399613839042575379634487073277748375395620024063068775400903744512511731598849173733726682911664605644098431836506544698247520768372012937185497766995820133500738805995564142676766235141171670812509305218602797034910993780016479274569598836363095968140946800039370043134093044909471842732878625091657169367028252270017133696151422572244928765145098473530594153760154222028544737012563301065467430821153580107298344125629017428995561509996762713282486932376557024102374026806066737751175085745895249945600381660735981953933682815053425825254671675220237141670196949574141229093464533243962885770730824895708589446042711372850118250820048071379501142908469859962785013626460132944570534291393070424219439334047503489995120205496913021511476066994580640920930815034756659180359712203882763482395218370080540202658498715421996201965533758294581687646350164974826297235284576304799373403159432099254603906275780725919654672592657518180965072017804225962250530748706407519383629888049350079502810328446758893332028139468971205829059440788582985184816796046225178893480437542091907701028349911065477465017403501655739606871318846542862787219121192466754361576155132277584641211709574636502618421216561666378557938627209557831907846461387082172876876946748486742878089921886481390399470032013848741210343417646071537694935908189140026575518485652251536795658955264080810469301839770155675179345624966510687325365707204949794938702781146115632050570205923170350178088897195814602802207443478300975384181240290907975087195520850919866903253361358250413036754051904794432302941008188409682139919883767997257689902373554716177355714515624651693998770537623291472020909350353047446728133296181457478879549603557245710744780771549827814301335786639917699945575192300556573636135336948153256274275236335395769301171799942253269726181515054197230705824825385456756068638902829806070536674042741183771984232568430888837099002476408088935606640980832001466227623913860505571060332523550192771079762061136518436184389809559888706250820995755659482054420924015896643389147757057939476673594906677968762668051610660779092481553121637685079072805360977140854885562809713197757491953446128510326042241338308873857784118969658622220998076901417078560313399142123504359381867636005612691527457176914077143515291121369086645521976384535583506420997507841093072232279771752622265560712713115089844945689907440882295830029739615557884537181731422646300203147165454861447269238354099876048458271821213658961175632249213639575894147025139161077761228987990095888406185263928530099899121168333424055716522642705983050802832591036231987844054233945388162077192874882049900036272926930008984571585029688957920456872040678003705561363777180068308783510330805505985206944041666785845138522923539177008096702584989251062067864947612817039231399008557482100703157476479814396712429123814954333554573933943016179097238996618666159499232009561669180963925347449723637692113993422877363828460968150086815507847136368907739822333671084997840546190688085413338394818376416530502302322133478749118072053862206423086778495775036787106728315351049121863977190613319908262985025287725176141320726692785543064674873126442904494448609708658578412267645692244009896889899519484127190048323512876239429121230124052659215067955176716175568303270920209148720145159824588303972007793770348996449874573807048357773007185482153059966134783958978384661457472469403456219631741141672607875963833153294683034510846545076899572760208178890532225281394463623414974827555215419034633977515844348076547070502026163474476636054702109514285615298386952166036360094763985679380830434046436719858855989243787336023746017686317704327624980747034776173129446495581337052622986637530080207671154435685313061552077117736213518228616473978187200338908800972601968189343193655178395794086378923005288692766078645092627853376829761847256284154379501569643432348662953791997634233766880381954143682888315306023774352724123037511592239721993491438782531801505220290416170692733772818739224982949177187573588159472119269385409916180638803664866674786302499014433982613763967999752028309778840378987484903057671027054294583749854613373415105351612831023828523238546725879871501839946253388007831827396583043515303294309374621330727562536161848982024772563268789421377559250780200828160805466961594581186528506579225538298422805838448926640494920447048253534265676389146337560208970085665543596360441437484786227671139488017357135087317458365609021935018422997710538824726471276864406924145071197447226874531551385617101917434652948695184898144351868356183552062079715216635092411460553117697739361281017028311987674584291347942832991626891546403623094806258380996607638737638636151873971802753929871726069107670190086059498982100282110121350800092604027870354805497849370677699318472955792508884853456164551136742992165302872613438908222483550024162258064316830879549994860534027491001068443040098685653557625180572844155216091103667940331786771333387260328810339265379222072920439793078652779030539922100557746722372920359930999547881097863857119446101549522842476394007239812135545334236393707963931171442045221877152373991771432288977598790309262055888133075846615633593735145692544305091269648906109335846325936832119247771339897374421135194035481768955195277682384295825445848939763991279474270995076045060017866341007045267790194234155188426556164592633133950994344221834305172144884902887829180807089561137543914717098331276554565026501602032535241329128964199551536687055373384013186909829156940203639384819528849605000376308858540817026637028903520488813164545773707141848750492530392688977086576947154088974444509358434869607573575574601283895898760637320438414299156300745272078077082595719262828194102613454178391407434151492529075670872993862408178083017229716871170355872013094964606777360203088213330709245596796611651730205124377467953330191422294688963990624846477169908922568636035186036956302538707649474015272166162650895822684168175629755706435221898495828897761471077302620672397099800270772567301517707400919837161376185458230549322401213486334416692962875919247850529169071007384902093588922069996325758014181708223448066121909824672507279310820709631119444478482348725326375918484489354070443324333229356501316993341070550720289742413978234292217098737307468745320439463418413775051566298002423806979640105202432312096791636054502612957654355054905496318287216519246619183625052856356303103889380313607485169382450086811925072057972133251859230236814313360147661050176688210267049095331186107110957222963808953926149269572985373296670090615479475777372503949287254437227739728678271171197462139773248104495388263416016439055663762802348978911831659483450168547576750819479701994438441974455547999575251120835766024202438285646879511177442879662807341851988966156334664921213984575616466306362936130828043841965503670427017384289491692136853989500289581486484719119647606777786803195000702996760199206444424067168705114870647265012202257931650965201627768461345769047892695107431300002988644753667372024024488388986377319509413238535084381695378897760902289088072764763847772325304709782850924513169096337731930621194315882055187081952020932208475448594085504826299720030838204999651022791423785129911992405319559553030011003670716556006785176664252027692691791236377142120858770226755300674432780526377695094427671181443179233377828095642132285069089833142216909041492265117273940928075458373817985421765520059630914778660085132018123173814523463278984827635023619669554488884614579878216085174762823137087407511306452840978069615020851258727949833145539979135048929822509840614037929004285915197692243069867614183592879459547365765168492050563430368996935152982660797013059911993417568565737026439210208030266055127298916177909950652498719121764301878855492158316102395762129250791614886270272811378872870361120970749986668488115381851879183036684435388743147819608559951025736985263182789007569142096199518361497748214143355969960962996512262858030967216183532812063386063968708728978691626800878452144579475007820165608151834955996236048694090267841478297455347373141152282604952950666056117867190127726189548150945524252271743962124223325507168536880993687861834356171462193533376851888678234734924925946543632339396717312895879362030621952381513597935027518476236707991755959683523315131371229631725102589680592704868157362737122208397775448448952226319309292917990654680688746260043751024021247447268410528262340219029613112927394942525273976882892964163156726133764065376865750288529330405636856900057174398459451951322145203513735140648947993308909500743392893039104326931861199651666600978907899594540962968296220746769138833220528450255025863524677556639621710947616749494756805252107374582306402576860459614432356785654138934579012318927364947077778176373046793546498496504298561695886189682855368787842774987038460842369201236269529175282083380260540194728058091303268087548720001742335712236690525519511121381735484661680077111013498610097769275072439479839714881391479629925222684525136940924595322721312947135457860992651586153459503671041733338729610536551273093570776207884485091078530643095782746531701214478742613263826057121003468699108838106025965218569072820347971866910490428234414704427179003526738921690355613569450933711720016539965209905071244101431529506008412509162089222177592958021526144776091430665041035122928195927048084081953318889147747844218352573780466346753060505129451206359670318621534267304084773844404022828409402800987277165990280213348971681399701932502831505748220331857289536300342474937893691659702669454376994206853750362974042220698875942255455109524114019424515655529092065842854840642676427416494405076117715651026610953878887102720850653537613818524024038201269664196719837466046779449828225706502678361178957341852539092185675401842726917027300934242453379109624516207275652415365770545947231669767017589915886496579700338276797040013914549886205983485326246085553134541467970564208945743212475256384821393270547257125525864223388371813108937006134142531015380260517975578099216189951177439364876810925904010377738544979503683816310912772846434003499493554779994807613505389053821683239675563573628130042761034734044314269017244948571061512645319030587514820636185354957278404432827281625190128468287447506600146037390577468156808872840378583574213217030091522793622480781204988488587360718575236600200453087419609495727422564142543264478332308455572295412861709498206661290851053878177357055753980389270899692855393603846384751743567129965229036723330477446558441797800291705813594531828058088683834464703924403286514970403262192009557346712073297042841531250091501976257040563355468853017182331971694198724901089029796839499794255467207396119177854740004254789522086100956636211477177586812975061334730226805452858981610683329663853175978937056356153706590783873541226776047597153794211364018436389351475330272140892026785145513274955533278028833961923957045798563894868220029478441671069935005675780814830680128190783425859054516803448719736615966178551710865065329159810262871110079905303099316856485602651059293294404294848107396876524886829097250944288374312595592433559613637062660056002868230540270223723690172948395114395618754171023254834240778199732107495539444704435453452082375159922828680751561901863906095998869123599705374217474502100771828923854480777277951756174549040130840370716295452345593974178450836203057661309775713299855583744009031450565471276248551708629495811855630481243384758546955502490452816130569163868791342446501274720644794533818604190032245821747139975325569165315719316934770406786844057641802379098455594974897124024335773261335246890079126861001125067001898857586237488179790537981717010039953560995514146810582833651259227208226961774606665359558409157849863366649539737939663849056267071799536214421309032829028871243995226305148584272187811008232235557700109833575400363360489886150125776987963886996389433168821834461329347753560858308085233264272773586001213329841774670123167067223588489708263725483845639118202139081414523349402545721441231498040979288417633971246221782860863313636690635252236249588018475232065714535906395728219341009995117059507639325702155060365212857999568400278305372448503323550901977387718514155214634265027959989240887333728835658489672759431204310927683605810103492486112439642415227365053182243606369388696453397001693845897921640617141272412055612693649503130860711353865126165033940852639050709590959217303848944702261687208046331481846244813713552933583449256965697121525619722320870511445287618136256173579388689600136566934060430535966622149689599727400917954366831834717275247123116996096978316897393935694453633002359999374709892023653156170488866366643419580573378663696647545784270266718260020094084575249199078934694332664096329746298921369808889935481538713638104433742173976773250452770275656857843010746281695691650195610168401082246183071808487941924454555671904482290170859473115055772967015359548953778495423815936904681185581108775254657378798938493999191685714400305442293969742447573182388022624954556602435042503587391209385738366513587135548802665886425702308652888054978735105899524780566986750350282239019853215780148756149727006177376754430553329261764518960477672327988280883081772475296703258551681402363955940291042954840867874558008161217541298629170177550447618697028923287065139593239367208512828296385958423631823276848337452712524266759826357518830004768273592288302913626430830648654000724054789513898441402443896295820478800827247699383791289722530807347394191280590262797385125092396462088188423473617362617998122002650483303279693126063035693591803470773223990087081761980228666838684383845423642933140471527487300630704828312802783237063460998478199563557946187871811481481453235960435184182080167712469151168097400137986602354750206367164631722093678185984777245115744380821666745729152733322466821538596745842446887728958095984176701315114674148499579125603477377172571400535753642365988202308402994300088597773478253204731328085416792430862401608441015991360449103331663143383897738133518089694311385627425734685433173474119456587957627570903052585557577565942078102727014124190943100198757987212938456698912520342150114471409369583316446376260132655714414632438504581475426346428579347757556348393479497214667610682537200521356275909918428105799710905126264163501542808893744637353442946885718707973630830343553877218791015737909143174472178337580469496767226607195441172125302546086840733418425949801397528660169278969979655380060862715156851911928982309738818551165483550950701169114263407351825810029908907439547611242074123765103201447030724546525873580767356617963459097424566785145063360039578535559172076753763661393108435461109559645351752945722457427051192298399581392215645980066194903996234382850293239466968661387389832558157286907865665816188011976364369694481001825731655433364440082721120322257260314582839593059349004095288260465583054059281406474003934507435964509472315181942908292911425758131063671819561633869973787758430115202669418489288519013438330551136821098799622346159667401713804808705038040965321464318036970479668038834654727369830423559540573471301733950066834356663943164946930474290093547024697105950526957274051148164788758079122490991354752780207771976848023274204887960778765727497602428850683177372226312753912938293121329733179175754310005159239509887519823224062837668393932624860387594490601383689612727758299254357117032694879877791978010451390840420630250200077076763283469571359378527110094798237660503267159962079710027089840476044166498164646715258497278193849864032683104083349269431458764859047991947582832902042021363674269973175620663818423193394704537940915330537945421431277571164101321703834444130969028886537394255801132035599068442299687367809293854819396435976478858617991765743854016799707950288827281124464835987498991656417499926365988063124731660675458535000322499156250738602877392658317447814919019766953438643025746482712215069717540821406513372070118785271034713095531385226856895821884425211333595044613162887300117559646691256313567317831224958164439493510764367412820207836067588855601050585494107514862470956539315350730415857048011989248986064357180686932602519615560923464484631529677427117131761955381472555287355701562649990115828686601139410533255862194692498038524431001561632677395116515001941873299831427403323743300725849093277560080179328649677478485087106858555681975010499995289611859724251985031642415395244121500900716685021146071141641539594588156674220392300047215606339065927036375203732130960941424831399765825077054198072493956554102985775485619811381964053295253367069328226400726412583200370761571161965195214291405217914786827034159620211611084293953557382119993358204193452108941320019831075462951367575011593720624538613537217188029246010061497053995195784050836289162652700523330212110512475797037624824713173414070447175056311515246474281199252502125357592651885089845247131827682012614789216386742471609956972741967720120178125595386003731577324663455126315529839016995574070076836885708411894085322387333326672122466721561400922347137867002572754738847045129292962893782243913893378889602599716313886450760499741158654606380791462648573768771964195283912945336535571753690164683780804315050174577717882709071101682343905231472809452310089008250378450815474262071783081485644692598240367411485485184316414654159127667449744321905888367979710920503203742706250570047014806754868653546863185810868728799212747376559330933951544161584377900701699042277270612085678814087735677380994428475924640276035815261122542823701458104509783930251873498237797944130846544543812856092338823771168891819443632266074149726007037964136820338891738190901723863933547526147865922243409845753070174997353179816503463825297006148923431713618641687407151338684005324875675857962271951950800175381003321490546214693003869638958094159455385991475206041599108840601871656443842614132543007393555806893901706413291404681679263901963413182542451934916506662871109478186252187349013962970873784770923272362873525573138403581993247067377910834043965287350469130440529185367616970428559523452963186830386666319692969011425077396959615899031188209710197257181245016644879894105157664500764571225596556567391216379283937498487757310261449208671580108146963919926571783049186276368430436529223740429494894605393857443378831711302271193449448415081691555612343617461351525736639901093897687387418246482153154057191660276050803975243775726413080153245049434295393590262778718217172162318410637122079775193284683020738725487146437489630270540123617996682879845263816699054014377183308692841993870877132258638993416889140648493051706383487754441988635558502345909720234073621054988421492355464884759553789463621921209600800694751003155318811197901512864363900190971355540580414870144506403845259895293842617994539702609995645208847826691217789956124439243182721467520284409235525817995229030461958345764789175306317056451581678420724761493157495700534075595890753906511076951748106898868982603374009468404945270350339110169288115590224177717792205037008231606926332518349642658651449908169488519449504702066481386717328208244097150900092866643397823311491384583326412276182017767835473711568397695710934449515382758106138714495245721030247917379777001168455258622376616149642644178290882561561757863303905489698148262010966493553127679091513660629080725936662367335390600288525359859835069007187117099610403945456174530501361118224327240138890070328863555294877575842335370534244905071987064945363488323230597408232346821251908788364355938592480309794236332379249363490179735762062593478819497839445922846669070018569875933953424669133138500431946132985069884364088304640580843972786003144631325280949606878062399735984505583768987427616824872315214730541723481735596481761886232747551059937964491744310254760762975688256680458116235274102776497430860218675823732130026120845991610518190316053837549742963961557878865207173047116934194924490671963073169745295159433961006267085386334742060152193123016367154021578730137882165763599411958460172026196638916250081089750587394822688358791327415223095091039389714808873543994236135437487310550667315877483675314038500536349244923724015710030453842723480295994613835549088447780593064872305253617378659560161906142691604818461310644414416197191230187885007000954735445165716355223251865529445317806126513844895868753680307116011382268447119629072111889515734891083212046847185555230414421689938220377292533567605729105899845481168244033005769573405081192447659578935190475121175664154861668721022007595389746184987875181979493851500035908082583971413420713033098347131625183821231115273715665220142979045556409351513903367159491077869322025531529252875661789933013656939155580272962772949559812602473340696543711615056082890260822715602257808807751089836286964299210453815283695698101460763232358988230928928108699257684568520353322084710983984996808945646013862420175196293073755431007856167111526040563377185135949088193435391064030073455256454753969899687310585083894153199798636903012239432822860067904630445403933099588346118780469085804066893083246497621349306334933679632844998146036692195830791459751692699500452600445566146659042463085506608809419354112079566769985902973019978166397392091446888756033370744954537096144411412859164335311742905252781606434933604145612792520704665963599290685500587277777992374461285757377763072369411289805746435345356699569491549529562777750304218290848203099917464757502088341456682073019736691909195234076618238337833134452427328001245610108566878695418636509648938575412545736862900419871658225239926500717697794112558222669930442086621617243822123353566955398294832315271952918789423705007733000080966908649817572981313936537625649565648320977539107592417868912284857994118692736959937433543179369922472428066413217480693465496542892961547494968463200353314430632754120345709155873898378270443665517741126603877091389838888586448252952996555121066584452190416113401732996454743111042156749568206849388114310589063036148743433638029373329038183016979177452696206009345707582143769887708040832634482410187873753112655752088318830013684337217640112500717966888381790459328629381244824719768994700863127784034722057500183685123906966410584040113148791560717785667955497400292394710554134226723368687643654869765230570815417840375867682062198365673687330389194831485739119196342394638314353733824997740736198487614064867759874646197410049544192991507359629100744474557763295441340301798113086896121621683661083963335825673560766879541607577080810046658531159898291283892785875067085145908853349376789825084787667343878323290476368426705689407140556255715601717600546441956771480064483481275671362107846109148282756542614048396973655199799438216782023810893154012323895723043850243217256333296950345240681151654165534793875040106556653726713680126498674784764112898609187265137028623640130841621749865745222294111176284401143740405991488271797753777470035475797398501986425609367111450510398711315283067835065779175441611398939367221536153181216175188885210196066940298281571771576218182115641344174227370423928610028048374202280430223927259852083134772179855948806430473791435038127255195625948263420857754730065400382082198937125579425373682509498599351118278807704143802579151118280432620741110777029848595783963003853763098165868874949146756974943032365130480124102967746313050411414248192816171899042940834643229937669582784850518990124368775746137081030927569905317863342513324180224846042264000409192922236562210540390701572747991462579198200460440278582648299392007715509550689841395095201419737041167864937346821920551962749460607657853816454419194209250923174761898008373627471712027882861549519633485298488721833940571298585330762861485093700839561618081532839014946480679411886834599287133384765009342170855127907538606992429744374659346567694913228829268314636814163999150670240080170688653566560689126003851334912647802173738012515582678904133978909478182451525640078458750377411200525488181422013164655893734900539332640570938112581372215064911025742968207646672904155365739665297615660303648771904214486662515128862277883180715917663209730250127204021190598259903574842366635346029827402609935527339372705797298394769135602323642269358485760431737536770325169846406995453371959943112118536644766452272870357859771395303482474511046874385258631639537756190009303587123327330467790488514493140333800637586210681794730331774122117585989137529667530183437858128773956575048012055081032255111843307342712740956000214191347699977305144230015921677215459863911853598255514120469894415742428029522084378606307211716338773135856747108932319940045609990927056841987801207423689237575652170481772139150106369033090458742844741036958606981357677340695526261326718040305774958662242208192825763335529351714290727350618624949659924088643378865474249272898355214295265610621648009587924513191539925450872699820880179549520927358826028530964180278124921637394948055239172157856308568223564150281471723356186580322239662487815391262680566057757637915372543624855269733884168950956997054022893477076900326968796986519375495516691736868684755087105417237195115449766010117224042818175498614323294598099138211560797939070549453173470590302822121628984142220979791232184232980053451093312066193198946189013626200942884497340184423713308641133857947881513707074719114137580910907509957615746226766409131380589083617304850416216156920960683142083140085017856689541531632092399585881414989292861646678835453791167317275546570408928302493265015231773267014039633456629788406120021716142325182463965454975346774017025773193588801312563414353946812459772710244413279287360360987903782952027803264628439759475726253697755605529703382258178790895775689292445401562922185722115257187210592269845744708678105565253561293293430743877578091519829540127844672701789011627850456208157999387769851402333893554005707454052707579025442982047140141548266220406618135430698121752359361242234437459590673790555863096372641727084700819757144963496873372285475442847747379752565024766596462669677872839981651777109413589892357109623899491562056101534119813141678837521735579732272736449298008829475351555133622110714255546957006855220983978967615448104544958211043624394658288227868049356573613295594532504930345236406945867361190433075422932626341175394583881570398457279089961051380941654410200767003337191181852419953713994250080023171236343146056880394475786295508089144688863397240836631100417480039997089255028273114179503873055855188537116615604456571428071038391217199274032423936791303652325270971399902678542759065593040938699240870906080311152138031395471039034256831176241683214930625544039669564032811434988586690019837853308237563648400563338337637514759889636937664551922487296040245356234272502238829036096183374782562422547965660907511438202148827710257803379147417110607886460446184001961481616208862176180527972692862693033546216587625000410517433913936859724043620052572686495690861648494844287250883612291821093908154159355183053849571932528204590569369681225985108492313709785772301734530745527741544194434660876317748860923855155761493557732393727554156444652097983237208223512476711151119771549282245564025174917908485566237626799764033738048856397350682848031069164723584888710208361997476788630404460345445143323331756962722551764992988681912017651544583643976478975006590376775273126440660161613668965426071416935425137332657572557087490166938289935625032326433917197941206866724114821191600442275175001732726681529733573134146574243847884924410479124450703860523824743755938577101308594312420425435684160489907247574329907438584345557144092851901217088353156747765817966514358217480463470706645943907979039584270899783231331223988226453616390368344631991406192031658800952877855359034874718675032592795065556261959275047841212384118098767209382841001698476996236287357382119946521174529696965890720398264557291020482910086700104026786281915964704095488926759443517719441379277444310918390816542102674868838953817723849289049760110459349616954502108621472919202854541607831624715512374051669562145555713346765632847645510456127375329897721466455102968877272175026248574244089935040774691074115459471953122553845297943524803127122035865158292658347575802827757643499887377710178484025198628318543010655895264502645357304786877046653710041908106386706987703421392125115253401474828976286351648933970422922778114649701613712813418410340142852063551174019842274815089445860296435158720130715897762402713086804945645339762701539620163551426911412837410202544076622951466979744128097325277896410517574644185231222569823016109802341313473484004184260662074196278306643683034769805983859551178122753847308573756726892841747475025347689797888937046290303081749717393264577599742503599712314155026164151800332567988523938660747634466522892083519246244404254456357319376563364027345074915284676333274717797477728118847804710646736349472343732419101277288874075982093037036059069422972290403253239663435721306381781135116408572124757913247492151550531853890219547113331758326322565924647603035260566495389964752925982099320435931702888293015090764346905253109943354250500205702617390917253902002532670014103381427805851958459028309121918476079914851039352772094876776359695095430093531421349571194443136483997075048737930550892993941469632754005587543032104670106454793914076364216466659210791198063831166928112343700421691000345872191012638711202768500094469771417582878111773067203584667967149569437217669506883070300729120419243888964425811855347016760352959527594005949675863190485228433121812359627510188688243633226337857866211837271256595484230758985287838333544102964556895683404468703470116985667227026525653380993315984767487369176633120913668934984627273082502689539169320268526896080136723312978455521331750853863417936571619255977371583067778146388141808570196411126473167167510578593309351876294477814581934560579746828899317144204957307958875080734456083267385453200359385753426175208756204977298574478764968352861242358214652962080021745684550856122507572575615896317874346173461404341606189966989415277907060240878381048611852943342185944343723847777811252113349826317808251628325577180067847087521905962393595243340689179608099045438874358244572882130207624947296427229245308845085984968064013406935547903423204295220478989145473565949582133604738882186168230264745868414765991785532137919882997145606362648010331281088466300240287944511131380667863358990921528048091048988068301092640698527290985757979022042180930105457424841310954395817184860586426284261009633599342451479708705496065221638975479764754627737294957158753549296388211874904803707475192179279410592194320689474207246466281114570802041238456790225848240637877854988384067663825790413502890932902066552074256759354246301279062529060105633531124283726324480945315626109543265623233050381892172660876639215742411126042147552166047038956245196007856022713681439724841859329573356982898149955285416504111272495245217052351091629991321945096127161252987306534465678997501519192560466637955105185164236792297541420192458171094664297128468904528526126989676150497969104382588956667079667220501294270190754988310559779250308156302082701548428579884852859958390114567195856366503233492198685591465687087051803706625357052019792433738292137792098089373461771848328798964003133538948553336073578010770323812764656064968374428684889988915506388773515476580296539955627764632323038277658199978656906097815821841643590614665860292229805537185727040562518710722360286671955776564564761269505326591723266520394019721465527894802148499259929698209149924912886878700688379948006538314290174335113838162731112270901340984462427190076905792179476713205935499736301220982488885651603340945056389246409181309368759661808176314557635894381738593869431082046858749652032997378696699906742627142142315053213599367261095177789661726207797505695841016162831314038738459925801317990008444619165079018106201960478397231004212142627827166624280824498027101430261460382287680061881199190103552110174858612224217423601394154046296180657655496020417965155363630212674189440562464578188392117412429249299177727539077654152138281934144548765190649902462381014892294492837530266595838451133963512484879319933460316909767123629841345290597605088070103776356548683289594966383715116859898513254311923285205431937274411946607510533818572676890880904506516158920837137246772662863072556955449635760543824875394878147473916825032192283482655628661316974179419537708923707445814303022803399376516682371458810269774452950476940738636314895886786282556095047339060484781862976293772213569208469655233221639666322978987073390966474280198670996211520421110564781921903087999748015646516851770412619449939411326493468554009843247835868843594220166502520572181955622277724745725017098024448267116003809053775070163695285072153430910410737933929716561511361573478423843204100714129514778683860285887783808431088763542687643808762767164975469127018843727575287773789186481796991379131510556433052430954607382646085959132742071504593348939001424910018365801910423595509178717500913895815826249462931738350223579271235843283024354299475872813529594731376142710468748191220889205493802460724957399315581623751239388025334704114093079041962703500224896176577197187395200994596409021454821454358779197802920279117510187473335245970885079060697343444623167896530240405344870932279517358753004876368661254865887457427051998591074732934109660607720351122762645301673036331426301967912039247706819038867607125542367637480154876240492925229315832061202478582060115706713607122762824360317779126089173194710222402702349776374529883634899635158287578831503518417000014132654149741949330377487969695596384829496971154745453755940089749180675523720154928823904728312946981038038774703201104818938269295750471344040656117421630808173018503947517566194278513950101903484145352261556265679827028946332918018893969462036136144127476470892738017348262526144137157960642075853582585337259631435559976259776873375086761118049568018796169911264783196694946686056538778510518589910161859539629975692762276765333457250776426993343988276056874426327445265910839421709641224237141413080492082512353857084883225406254270193998910395018135306044884567111511937430799416306459425114111973143995950218676958647578518086823672449992343252357836237067252338841541550022635811904492454767283069240731713125535148134129979241855453324246573831750661039149262231582031504745882096817522618777547540026054936819239152801486964041786010603472945602951111551571883096410876749798601320570965433346075187834968266137921362191086617193449208965731422285037207026583930645481482496113709033382041750718638166132625287850365225810199259058855847570250104196710636179469999927762609476214016216037151791384945498072524930253026418211793205835450829196678787460142935976688578029234684143494171537171073220424336527399650146762208208422766094557465674950117130292194651094816075279005423362053177461843645291867510539575134604772934902595419135605985749630162687085186478305751786209412448466668131769781099139109309011901056488738594987577647806233824089289586476083848224866091616397070945376936303235354407725505179533460554784460657092269367908333152143303918162856938586698050574991157338660291222072775025676058167998249171740598714942319590521616109763045204983726117951879727454040590543722494019854214563632635458519350912361405661976410115539967334123655682708476881373005032754865653186768635037883537542681315998999971515131551054611841047945000614773338227422616127107441508205708775029495630468143439492405035850834772265003181273618623421441065062837592825855638016731680791936211215597085195378865293871644279986751720855844829226717323084618419287698312527786485490970414344206356056915611644972614412037445904687929988314864988321055257995853848269353586360040100539502171438446148297347786986526241690291931223945088931780591373096451918208470497212183076095269010945178423781462373766345240417378134759103772792465338458222416116786990417909951277614336494456700630562670470803452406919419309599013118248014734353213334995540630323980157145203306063957823360103600345566453275262185415645775278726405778620562629223407898445294505010024462735950010027985015982247125586900720894482637469186923762128306343230606426012704225562168933748391756965114019569519057688968380331910549713497645192148027319326818574618019238013026059046809452616391528453610060236523449128754598735001572060988839058976726712019240789380112378858614332349420025203782005969389988224073110282805560548519261998762563022934793795742303790812148353130212500241353966595231683604255057314966573301870592935235914837765033554065811719331965824717293016551618161866738066243194220895901965596187099948178071935098230411488862247552172757199949522573087979754313315208455627303822582413796036489639285196392597472003934130894161842565549806569684853269883672699902596285149238625956970464487579195482962970336522196209459459317952352932520894310958247742420544980334374060399680697882235857151549411114591605259953523076205023275620088667781224489815090730319726461363689257120115455666003293504869359270397339337406828150807010464164883459951257062779407728787019489201292876623281058819655265001835111200116319269702439807306448571246889724963423032173488387353795160206117516545891203808283003880305430318137955449680102017144231029472105436352355219447872403119008075692294875672336871337539001586838063971982444849342771823889723561151311796798078630673941319654590774270783655854548194565472899624540571692466583038337180458351691362187055390687690357184782601116508395944979302204848373009582289146321076108014084777646451001945060753282509826600234046690729718981079894255375033936806493556046670223403679021419490670586544444107054491955107326568346841959706054881831202735931244171261794723542818448178487425376606536177784613295048229887862154026598913648333521448873007744356575442956068265901685029910535649557051629368103498117198614878249055516834539776881596796738515230320884002422541498253466923310411342178151950114025607970102397360219762697870362121774779303881955077711130209502279338462115102102278905588534000005396165118874278202134354401772610601916258136616558020566275609423401298322546810117351323860349312659360896089479298135702904401909913209106645845707873830457258508746519894010989045078427916330268177308464911009219789017407303947732925190588596117299609162306985594225726053948155695541515454821039829185379171421202913021090077444420907794873575679556286502558875005992830983852206930575492134562363445337177492411476629162347744107770197587997578842124439671491657199332348985909692245350378603431782106046829596903068958332360723253808556874004407009021607543468997894348024189977406197203943635024468589494669889731498551430192160754442628945442285629886838617528275050061518777109927246519551371296784883660136721227258624338107473961540813350934047781533091193026103677399187030657425257514440524556431586221013354645176882688531806328451104949456010950783942721652183003404737579271684261779290669292816584416413763832071091575801861713216436172862569994074380561305829618884748956158352182578850337378294869792391464482346782224859964156655023528801275041605927481803503358747977891796021936238264950826576073580870400873148214540018456478962813629605543211684710337043085589064988200886740189724188918908646002939226242687785039996228785046298787623746208604946426079090401533029227499287447560058753935034581595154693305084826867927779435759515177794560446257941262133934208940512452196095978585388421931392967468547269458366449971188888437144185435435879468975100287871049640662274596027645338803565005297696234641559145109640282052038611161504471279570156761614562742688650410863865326940559128772413486075573934994409739204060877600370711052034381828514462282451582999455061541138334011563884988223065214867419082349949587875260469698650733144752043988045634149876488280534808636149867967192048103130828063941009413650817358384959006355681393636248037323750483030865518118230461795419906057549889436586098364580681301404499863426715013933238297337373631804386878682725095325604322865826077119180766917617208752389937180097511687621501930680062368841106365677434536008865802284134807388539328418428814709086499528898309358191811193681530287866246818057962212026292036412246672862451012657822931028947272887298130757080874603200088552784198013205388640002524829002444137644682144222602128755726555811954491858991200838832015748488653556936348332195874971003053166674445065259270987555223622889071868717728142097399605474295496204879674248269329105190409238917036848983830923643961983257043620447457462815192339205516477905940402194128209604575169316356110505721793332935003989828787347094031302209765595585959273658523374059810967133472076892800761238926120353031190504536004639500735259597357031061465216398407672701975176939421088140231575419258052546540483980854550984578483069229700930103176459577836945173363559756587116285348148584084116916948119969201456654818002081029067552809029584272092799818633000145766419839038673283882590311251354463926544552190111453253364317337880871881154542538629028267835857727447574931816001950315245020357246628193030087677087649336861370978841781677006789183621935759336167990691113951018212560846367432925101787473200358997334221494677443027077904356282117388631326361753309457560370998247972094273226372945361864230604701117399895029497064509177593586453833641657888932072423716878649217063219144753219481043817533978303386668795324032302432589514099159703968850238408693887096078503217419880090960286823556713201950205089165200511795660015624115292442389649935846725591688543669713057259416566398203257177916250488888542522527442946909481688895515669147654188534113791047662835787966530118474216821631248220726226789210369121312094211767715600162898329993366714952357903706795408432820876231159375059723664550110511920513423582157662063484653747459231063068026910642232380009047083207312906715135404706202628837462675560185964444200864425947440320058633042800376420419719947358368234729784286555634220621334362265970659570935215107495645788103433432006096852558388680739836902959156280001150194718718457729460960548602233123435705182123510185107908683799821010090587098168170858917240289144491082202083917572476372484773134870184836022201295401247593896729202322376372573608269475427814886713629110979623024379314546353535676529766053569839610526527830683755259484582181838849115924398362336667969679808561095671807380236215982977993954469190018391040534274552342783489371388238198645797913400385087376609292937130022721600859851467493708726588061340703260969037715263941104208851021759182364786264550818955697090554588815867151173139897261658082013865158299854196092781791109557995930373880700885153467454243584730096315643353761810481669008965818613378980220071050748136815157721563119769965226535865870199905510009678534789199956640668572852754246135698130606399685714015519601439103982301571893623460246958676084374341654480976115235120385609658087596375983880202137308175795077421363465175265817568013529110080734110449187187713179023802947185837418412849726980238853374826011174722915420376554943027921984381573567614498552919972584425353711097126658159109190287413421939871248047478882541248288287593571308660191263122468150454903522919900024854133753793117325272632891108281142678933170102363936292368287905755309470100870109188664888596382929556731594566244762131065036165514529251269648058828232278908835929698235163151345391137812077868103462760503140393349722885315195396889141626306696083409136329802513899998951185460272342065823205706673064533949694783406004773895694682489446184421606801982327112925040178331395973469249857459536320184226851160848000407190962637728103032925812680674434358871096112650734643317785478988176477474033029166442699427145588898805423922544512396406667264982314912300366344711791074477812610707397299530360382925830875938898190307419257386564249320189934693001738606373540648557867999536293692672765474037659321919019749498910304076612153547801893311104007540385645477309952206926572622777741543678300024032876577562135718696247189170939494916223767556530865609547045578294310684104031288563884750549014870435001379285968169502786526159495575820253025345993644215282376909560338739579083098597279030854981331929533569630530168183996790779483453695872300365853198974116913526108178738660407617083042469723043788126933956435648403557668259576151214527384253685985158643236034920101168618291427076257939125986551074252083330848670756667115016499079122923361498177973847597156617920792794280010096467783389515179424544073907746764072137947520893657110361010236218834587546077111263833531685657001324791297234203258156368624743233582865050155109345800952224767595949284322749048131299926958608425525163045566393972318433766062119541727600998114340942057474441190103357996397521396153205955136438985185893297631798544169669039760658034956549532141618790308137965978507730213983714144560655260829612986629637617631397583618208727952550033355508517696793214793901770056524332922898425922133407762055239998148868293799573903028323865824604773638825627192961342733982763209756585668635123082519076781288664513150885498213776366859515239571185003746714654029532233199883816618515258343645456342239404709776035551696074965007416143484813576790692400659586844045894226815939959407261113566069631073746890113117807622694180211020364488829111709103993578176990635138732452409890972451151272636188210687756572630285363929949241764765640809757465380819614383998150040172109211466715851729363895472242495454958043426253634228625926768502472887391050232960982324567038891777771183669862039043250759723290809765660354935263769595368366403599603685725590689514168483972412198271961881915059472363320114697470716941978578656137086785781406684609544749893919721144187921859612462893862773006312270496946573643908477713101700763342119805302977598525777986110451481442946334350526896499569251730268788609129563788150187417650229566118593170472852690218307884084506828393188075796500465326209298450743938556333366039660807296609164919380527040803730466493761020343920465615343710565931685817801747216636900740780577605911057426838445095103497160564712915726392975565973851838779738116156566875139861637397426950675350706142158161982931402645737416805634286070134720902812872819419158923682061051706227634701367737849274228979318572731667802590075085734014508256650739283880571798966110793308015809999923362249148880673410029485427554636876530691157012414830656574720760784179888416206204609716559834398817143838123145482402855855356580525701533532096578858318397682834014008028866071423363287356220060752306777891529144080468069860179184431407551058498870838896237661569983066775721613818422947963950514738754821215127091482841748670171520641254984017554541001335682002475983705164007892665358995574743891344767155759957766766284093640197873989340492001576339421761968814615643424772023740817520902663368720710866740263625872556427098025522972063642979854635405746103890893683992145638439334784153259904331827609710836989811256340851116339432505483391004770915458460716029057329777461993992673424306142323892734950700896135061933334879651880574776590666079867362446486881147765747588849795824538675805460596589393932376272130209218843082638884220944763749659888194266045720394828341269672826063543422903314369426990310227138206075028238063944170169799195951274072747447115679261422762134118042014974765873931535281934779803208274707776641748912371167805371347178871602310965755576021753371819033347445058944527413422519658922346246981071497860920610823384283404895222011476361556708120366208658488178451208673813511359341412963255645244468115276927539837476686096226411977340764808252743042598249058903245731525971407409538601738916447041111166231465107412482400057157966103503482025657130338018208095523083889772477929570992768660066604818824003560398241583662327133936610076534646649767511064200427970030603175012448932472386549911259352970873527489549064327598079426211750731006792623996542530055750205594585018005121375044774920027965109231099218744547201558369543013367996424348193605039355983829543154562410472202126294119145080429624354519684460377400642130674104530486120152096951375308072261174863581199087814322618680281920031337269199203398618003822993952075652339216379863411043573422806749682768027187791429003777399052247107335705370006883444670277978270396180876178235654982847123746512159796091402481299414164979613997766397671841659434628746533471485695242828813512950123164460023997830050742719500802330096045109466829997959064816744016546136282626122188744941478313130160689006744578925019477849834274322956299253367702875160364964192016026061313588079827197643592567298146343233345811397166498573513064439307446314665312013057809414888818631391991930833379645650242434905648212559545789840066293975577991765436258327281968454952952319422790367043361523855422048953714626025332005127025774066168275900442368875560458078238762000623501461980540319563725281920979876505687658522228098080974046529089624767785066683089697214905005748190861972434585037596600602279769714223336651989437098975875808119600181596364033412273662174531602441994742602571493502652823216302195898137941681916577847291188980750038657855882641278599503621094173342842309509593682283690833585574462471588451007339372780128502039402104460756471247403018640875107477930166506683746578541003935861975134698712152122047091815432991538873794274792178762644999024265819064051710041913011007650680531624592837773225248998203449366516915146499478155790860349003569026614711876515463677422856142733265438851862239875399482811051232705859153425999009942272482946410725311102876061012070071794494522522659137101394268581391606128822481417034981863695145320720059201669880802468493405728113416982414070588295439098841121945205501348819587158713060291371430392323876649849745105499896884833509475030244613959001739933042264028388278208412826550982463118392071211695282830876335763398304286200487586695562141186664633137841287387937230416892639227539635813600183683500179131582865527815892972137159285888230546685437066280510730479376874172281344535225133833140049322394114079490286265895326008933592226801389989351451062846322513903793321402547748453141890248449063559582346651187332630183314484721464518394772903474131987170008420297153628527887917256883488280603793856587030594769654494671291756491376022201689508228937210729969174268885627202619044739673860954692942632479638434056343702575404153119348133054914322337934153569685949843514056934004057356290927220987878101041527616464831586366522579063953573253040048017665584823092897942677229997495420394595757629893210590124485584104494808966042874816411846298725382304514125519386422027735617721410451233749008293015118588779370546798637582937834046492225957339812437748766837558397536940995775925361244018565808407350426404615845682054777439197527946176735921521623919722386968025772456577177618628487407240978548811853516211300109251814883721865023058749846631239171340873804619917300604700947678833164171225899015090744467072265617504131628703467280216217158384355014957799910989346237035302659742594368426859944871152617582075918713563620273231258841394668172526331172899834904273454892972522726784670233434849869662705502331597344879452879257669127558949719450524797331140091835848416979978456789812962858042997976425607080133511531702435847791209317673847379566956877395485047507586122838119925718027110938637793521384197846120985715279164293310874207695279963957140423943965140651234929797337734847157248448923660635059402486364126965558359278679182630109130264103852808301044501062275316016362293843492896249415737367713585887153860781013044388581153594862509147115930714526833011897097617679622892286768818953127885136059156922861863349086346494086102665647567465827260851581704823778029300405185173944157186236923806438359844770616406893323321864461902078885377133834794877647215275630049490611800998447942598656249875352407729441986787180009666877248660050595584206966357589357641381094538597502707942027811109516100398773214964058117701686933476609228121659395196241416996803881532390103190900210209692317528660548327980297493053100352778765528253381172671184450217172844677638504260259757711555088774138658702100158099097464152847027632416589806725726642599723103701868608347749181397088334555865752908651831851031075056156733147789697580188767889046577347842074552683564404676198981895336405593749372413986562120405800550917666165649493894844634035388912223604724134329443225544239267873429634672609647501301252863197723830456543388700832348967744294794870448720480223270814727564594432346508388002647971221958161731951985899751997003872011290094385563647371112811155439587781749741788237803910675842486263180086791406271598174611498534797366788237194019877209111557529360055758189001883193295028125266883778668957166637610499123080149451246683824025190905448567446020389803097986534348153032221308226079440480701638451664047216651937064742090633888977853118546521499526116254714442474487876558323373818711607565363495098354553053229323787780062684091093292028985285855116153744012249784932607784296104277217138462280220495442661395056245578509468857419842770613228235279657621722952346870499987770202535133122147903250251621035642393198947051384416933695528650211211952441963151774455554868504853400570215752496311706187322264491402846275833621835748651646102878355348476330951250873400374173140490389002392552525971990602107294205185196655613428571749827580509522952460062547862559904304860266965538967200805236267327880930167962572435245705404012209404678602164122861125252223013325400341279004465155407629783335755010745780366427101481360467286689326325321069698224597113607568728162346246981071383011176269698776675366148968543916804933779250418469879823439670883464275947402412393871644257847164393081791698539546267791150924941107149486274589725093554903131191215635395807100839568256556014283745043706109484437092593902808294516646020079447624637349639227198255517679484882692496325883949580751400427137614768790720486729564190275540932865328472916730767108655556917421418004500641422038204219777659531518789768362785581519934310904968725095205292233447218102461688190586151877261251344551770725431586005746918035020534021796600029978977734429906993787532493465511681967281328808764660847673430154047077794280537538974235278087486717008564662180443230443282624360125205298632321071769723933596718874873845517740087386295151719368274989867341670394513595971841902397299640863774210752112103483232719342328663500436679572666966839544257023852624012593925998304224844103148614599033487361953132150953433590047585696618577686943740777626154433931279341631559617113707112328197488822194802507148853954116707885026144734093349556078532560122480777910200049283307342904256488225178887244799259585055087444289366565929261132860339252943712819482949245119881657998252057119570903570132417652001369371164137707570651475995968441289342481158368193092191914070605899314829175281696509792110568625737260782733588424596148591122971059408925659009488646248780185446511507606891517394390928933817917857039619330345369490949815364374949342633246682972901252787661423898816599199421596247230786611543934679032391940296844232750738951793705121947083384346753658896991421703616257232154381314602158690048452023753436002133669269635329535556207820263798583959966665094980002322262074114663347100307466862002809367348569052622213894742509387293626455863721479473437721995175358181075345579855839980311619925215780854898045056844081271393541156208774025862924432706931860379706205897501647925901797355834501280144900352998231051321470806099307659219379832002711639723304789897294059635985009800576498996011677739191000246330544281700173710727794097824167555089664458203264313111269117275613166548232758397042951811821930817805246425328819254042315544610887317356033460618774730384201819918163386048241248156877431747298125631036648219270754866846041536088223993984491804952973269517363215454579576040327702467344314147497280113781116274621223476839585717968277958009723475529760737622416930612460178378606782789734353978456178853165527827679366608023188648668623167515932020455405484706838933640200620586429652636132875518786829128392844456194508241422986595465922959477741331003843909229629159141100238646310590711274127001175350634160071783790762491282403691930081814210252274624535660021956463773137717061774685223168345000577110572195195647968471577240660295941549171942858498987255942283516638027492193524773486137587548153024573955053374197975079186974711837041027346295193847950481811194522683606120659833703466283885307254914543702049598986987963930433748278304655259060382815260341148702064165641948038440816274266879720982523697421723310642368164454205803047787437491756121394864744402626496351861839980478306628644642606359098056237893959188882097287975904910556964870353256117344901440047778433658907513606525329620376440172251016301722509331861917262721839539189098066134580902481411646137909464822177749580948906814718509566664518520756504575661416636093490362514579999504451683374305029071728495515108273005389166856510900475447232097055367178580016136775446954805135164921200647512643649057051211834752393605502353439242663863287878918479112964260705986149508669757949888132692790709191496864477223345659955300936525284553381129924709211850961453552783864867873428888714209821839489563649977297415818025871729943151716998139811405768176302517573597020561728476341113435984138765123410722957728052388155726040930988475818851935704304024167108384870809358556781498127945777322803084670852383736030497635580940547330054785222858556678314902817474642125708597835260550800065342389108940133900630746509072857157341489673190141521270214037061358963443062977432971431709165087839681336579295250786331053525907053665440616482378013878796028554008113504187195479289609271377098232119677145242677278041584137427006259973934557248001796755671800309555825858673659291805204865089223040465856405008927971304675933485745393784390101556441192465479015368364435190903413773124032548752169791818828688757072420200023435722279877958685954513906522297451478564585056952514350782646670657745047192979265741700510271359334080921738120941840165231333639755045162543513537400895827962386491044348201958193568366923215271044427912762418555339712668236255683029733110435957261649450524391310558088170649426973279596054922157834941155793930846632678921440035765534205318517682807925648945308220713657830767297810389223698105436148885200655764778760464109627957790609364266776480770799988674506113556882434111511594087972651953648811942454698848783809669672738524636272035441993759782812363749253387881359915292478260268320792383590278018399573017767562645357500045059895600653644737565531171699463763631019898610640951312008139441641499575443188220330283384853602018123436388334700800782433860345691610486878155071744595790825039878145284879598906560134900062918006377869527266564373283733775953390943295382747913999613063288710849192764336405926589383852015133599009651456708295274229954169389594774938566225913716816043641136367066297104312283095219073618089664562701022513403745379036311570076429986283564994592896510675783803024141818598311770887939880480154464589173882889217584830479117726331637129421649468701138017111928790764891734652837064581798223183504881687114714845403638621033279871016245185695158743697628818312324826324006959788636343450877821287382288415481125864394106557320214544141042506254734292345481241872486587791329801531330878939709655983410848383447366198927201025563087592330143473320688221736703354745306444829723149178489595617363521601577001491594321685738988830647452488664088004600962345441764900521002045605663809532634430253004801840490396362505783191408503543364251112653526587079039456935976157133649242981479183191018187864694273436899636935361665168192237337689829204035965679082157277808014596266915419305443469455223067616291801948001351659011471355057278608268277061986918276175888735458304908010581467227119552574089130686719836309757520733626922959441330748871864378083574702803939656753120961772213571309318264089634765886257192915369417759519986912710339232732349245792703132657726976872819692531641819926223545399294060539146725000426106713968053926316590135938095557222747664226705416828956182656209091338578786164975981159672173383198626206263509737704751206792961418146856411773900426119799126348565362824470202826550640778611210045460951760774461556061116590796896743782956593573184500454279984675768402653707648243452390650241188414720714070676394972751676135139892187673529643075606943732093351582395945908742127017238344581202601373796760346698073987858214896747385208044029016182644932196126277681927397426739972988181191408406085450667137588351338155364328081998459868346755860030977536461668210356146183812943223767543721184905244076033360834184884627768937920076367206335786300182791008016487201497648135927029712666521378318408999798833784725206690862773532958541584339999510991675650615101384510336734874862344146871488835532504538817386500938120722982615220370515694929519272950682214666859041832937492598681127741343635509492407946990475890214572118169356242507478269801584698851183028978848076360143954559140883306226487876618280910253334096067811882820055426942325805683941351399561611866027923880895961860107743461912607225690433307276663522703034626448130503929584375141908470456510955831156222966974765952331830762333920546835004066114036781411883538195809141958497900743562871093061578805095708507409909862378986634827989832338715156426555124530191302043730769261110645312875940046547559793475735752915017424992725591884562243434543672515070794989559957936230178093769147790792496310154037467864255017350968330709740134543126110923917468320976005535629062412407340051991244009947292614437238223294309061025898931205583118708398095011624642214118547743659084902500568252229575467913308475692175906715206574856550062477050064736889486359037333733081783018704103356235178909124096562867102104289310715518666140775834476294952458578830698779123738663727628952308722239624050642709420408655695479046642264202918711060594602190626088044228586845680273863834956596457116187861219480292193924074781209136144021152709286690871520785763969256075067295373083977798740851748785620438731411428148576111931777054919755092604873749875863256424685837252329725955385488144426979282584126304861789020840070358330259096645224220930597300476559489879920794278316600030377008968906439213979310280798475710101581526872973527371704644218574489656786273028632517788978044665708385827947032327387368913240289644976550229060872039309713226860959098069188782833478363656488819985999117296461149409294463902680910596539068955704440138250974210738087229206099267077936900812979916574157341898702046231771992699124521066140617797869259149615832635056091507261538842811232088931302911793838658171238144572066557093368543220690801272330536835273111840939972511155328860496458799692669327934907654768663301498846190457887752285330346827406884990600363875524888297159556817175180617312913002384111352874581675500917122083678293375384309154617440778701843020506148678060778389788428232930235395079303879418345856707153585607219402276737151492314411777476924315537206825685899505871703352400313519219894796999647733833598674825212885144500921107725418896317772020963480160288596168823244367954498020069343471626977372514150426817550716838027134589831632012075515339506653664473851757511971597570455147046372225709318256095001119161333119771435331664982715821586782323737740329273877932205423003444758129313622914032956764922766774213583571085236797147068614335622250488938620623866270322911477899958165976081199705088727347442821863041256423513091593959702638471973775961764566765286198131631730575010580936873169299725447687847493603876278685563854116121293023620352602725837697384433010463185046739328021149135297455915246179850972793311942638247174058466366614996636833860727234913144724436294642228587333477391984033805279865100934857025152795355152495068791339011307060520947467261330309908183799151385831647313610209887794921489242535444465753661157784558716824476583597034099728678866636535506830053145975402053573096941738421727770165583834777310122956566732757373260893070890766357944182469508338718293182135119756721429989731626120206538360607536268289607517952175661424922286660831395347199397886144193999891093316288578368354967256472715496631662110455300256372443733638097446429356847552227776362600656552107173527046753987340130895384107398343650529472677288101065334187588439791878109312392689618184034228070119221370572332715392461114263993140395524160883235635978514214514616591726067413919525392892041088948047777122574240145788011768303487879685629699760165204014920881768405966137399956624547475779041895170278566500400337264886021712589468073515169974817628594274163498016714984213269343907377947613554853194766384054951359343970289945030673098716206707930286471123670864244075279571129677500649800367583781926203100202247191268877455808385707270819422038207648564164281336781514880440887195400052295345214766536637185135426492279568007981545562729361394141069634308822307801640262018590943529643069309772979566696158056728642704689461130285776916503113692468134114168811513524316844344081477581759273964259450376839189364385118495825990021888432965556779833652499540851806973948568161879506177399308257764318649113902710360824106710845748363173407511914067828260608699751353365496578488727479455914472537851558680323730856364953995439787118310833339943172411981572842792808696858384868030290443706318148230914297838224971236620277854210110239017803282658503959515859052124048276068935733451646458777390265215358883703540509907941158512024895704873795341251396779288317968233446128535036031205013819230627292737618055327051737338867625790010035692625886071916962383596145206077641071664250785747742237700761653404921806943402543772832524051917668176374271362043850502458705607358468251932753460404896765593358943558501979585347352095436716607314335156662018437050388982649227481235072911353585946605492113104927852201389174800922537408171965912551159882135849942312657394878633008371102364516776035696942727237991727039324267339110146543462965395655616799348351976642774839911179641692345718838581755822833349166458671147467148364831705119758696816101719257684694732026413966789821153982383527260319128290871444981379254436601975924716860916731218969786876358448500575508240012992085091776814226073115797059667888115809517901134973838567882551655869012767602760263114597658550910294469585698831147915698294759296119904147852125749818418351583020738811001942000006069661854352290101808109936481197206996233657520509764597418522029311222840327751359894804925245466788312672976138370112133724429979612761665108229870271102992400002614764503685774294057728603189987126065484214987317919557166464573287223100438713893562284419596621270908250673109534575059386921129612313428626089145616540166865393072425149815755206613286302881053596282945044620146474453648477100486757091195990233684988852217365329126205389091616884051418610227089572723322791480642121319646370267409938524252841377420058968854595333460153175343827762672622098808876054381147126308360717872849434762411429662831140384594227869905458347582106737621225946302261464128008210653531233735053055334548632980116189528928109820438371925776132833967798218520951925198440765489462265094826540066593445017068342392197207906959537028965648364745014292772781440911564661967351391224778144172940605328015199882180926178941717909987005886235507017411497895064490047978211820771533418135829805846638271148087463070510345924192764906305700394005228029308534625767412276080872856750242481108455082086186098789812242074471978273009596617413896360730631970038863545433290955204542400645686601740427192565985551345925221603146988128290768536456660895934398234648445915623704360398418993087093837325514597808419123909462547766915345034475844447951826964393437876931171387723349708170730571024086556357417599011609595038444460581252862801045284024068790044327283029288722846842076223471752315762369647631854953329394680042188925494781968387610086000237827562402242398044456605274886429447350587793890103571818740244586399004029554686800002642517449464275376765273476375121166722010625180025975550719249966322920575750739575861341021629892276175611123051930755091539543833612334794307929215543314220179656441679811439017451680898448632536226218532799316282321479156779041343165508582200434516120117253519780587594557398276629448220395245041689962173977128369823950490983933856306268376548940663017351526399787324631946145620599324996592557763105546745837767624438386070032823017272021308300663445190051058959219787368494137943808932340221466025748273100575390228158305165199114075201471531796177950994643746978734989429527452787525826959668754572754362870001889864135172295585268307111802303635971932648566466823076988556829408807727282700565255895476539841838136031790001580075382630910842748844921175322929322451840931134000928843294805771180910122699771705860877705009363333545430555817980506341429750334603891043395256324263262716616885713310618926084988681323220663987581560837443026016196319691848993124905798534142851637811389214475464897731584698207490640764924038689565264351206905096566418180429082808287492629636858270086678849786694947481625664102704746647187599468714698181049155937210710554042854224918607058098166085065198580859004343886613235146429828051756369418759622326369739058543616499917727032788635546703033719086616774517901489394476477992576158458902235449477196780027692263652183498282970034706937159255483938943883910770372045837403961440332545469332568993710973837674900460179254225130702585409308613018426530958120334973977192370697355585244672188290856616960063782506904064193581709921561981965176190458240914892663230496426368312117496636014472613436233918997282127903853895887017406509608413135835077869236422902517765673035634650380186399203461932379352380831598459981726056778400064474027724515943608834855522544509416037064219356362806202982073636597868147628293010077595967450468845210316909747946418447657698911728326233691306766381187027869461359936304530676144989025396562732253496390749397136416503071439650373350532996717593059951227142349752240647574632380567196521807594918860588729976044689620296622007653108578438941089817188139084517195761347867997829090072209514175673405160319075013489687271021750418549311740773961783192997065768516091068950062319252943333801063695776644110446698129832975254948739111276358986652371175645367159191429412228131301135111702562717559982842768976275561184295074732128331662652633778137687880624461723226285257667588750635123705854248747828071471918000228011419125409213387224284422242949021953487325152238653666190164678893153484161261729259508643753080861487778101156159786432616135439647195928891949660989156748983832493934428487809627370737538157736228596010021849116812112640488544677043514023048119435202153517055445486509871180731899821630839518938594349374767594919559735032340205786828795139123762404873773118644863517541186083641674148719054959225227121620963888389251702721803718572403924570037316994738423843719990210328351451721045544423270482348010992376349882046814108994950998432490550839769753150531552315392759161985618060877087454270491560232757780867975396662839305731950609474239801872015310900463002564785076451754376024410187638339075252200174606750435979141824596346944100706195860744799524505913913098788285253664324482520392047659569568871080082461906095222768624991324718151162370667388020881040776835115258976462887750737017600375951464231524979144828228856751408180673963042861195546219034746570484886166533903811647535492375101737899269558149217711188010245185243432483917885685900449069766214846544648193848930194216067272050043020330852486808755595885486455625244146800185977785700588972747278452914277787041064362185156620961479922526837403511844432306841855148087390719918500266824310675560465871598818975787058165655738519161041360535970113705493005906222850501261022924801623345485951469222430615811924357857721610724563995264367192312511801692804644481890634151131712758731132739302591041331632710177688793269835100813578106337810127268302800167097800932172204815562925959205359894955758768607590330941776253262780819496817051549753202433272979350665148428670701703451588288215096932743995905013795688694171020975662365970981931226312907170514327010642670097806844436074537172185832974791014527009487868739240956066228617762352738204170613123518189699848342114066645478652637866275472920018510661358883950038269292444793270266107861662593294185011989373020140337118984013622413776172582616390080034920704795192231143499305789887399198891359587098143524050219149098714396137201765856463017781515121658927230331105516941720427105992232916716753796266529583524110801219872669171280046041714858865870168605120028761224461899280113976759035916462321466820671433475610642720612555037012450344637315091725539580528092472676146762329192950302472312065114567335282602946691758616955300562957561816192113375048040542420776886486666115171027962163486754674796307231208450645415091225489202911150300353798947088869508936828168295424100234994161254787982260799444343949045618436982732776305573713244959859134842922105888191758035729287280925314988396047230777890049075508708911205575510088593578893619550386198752159842056402085229163483554172933635015657566672039875577625156814897685500150956009926732332203808038962800663846158506283343155955032042235977318699257628268611587806979255909243267385223464410752356321147843404487139612606381031598277961985911545818369084881930140996374319061418204561217016067418326840037087676963575302792785203399733861846486047010314220318433887737801912118640608067637441364787969262589770334065926294653598406819531497420285812246025689552423636607083586955636993815989836273495159825135068038399112915630770198009697771097117814473055581461965965648598912048411808587111913231309281627504291272788333462004056438428444110540532221525093256859373173848080906506673641306659376100400022569654135077492120480820265834070776932952564173775296601089057371376031718173219291369438288460320418169067784634813786506151280268907840941043766343524096996259220908913780790838089808040593435126088511404312742446698960014971009259842460738567780277061385584728573924743502037168001956291673286878635522474516973066004768961046501336093356228131009021883276429441761748327309949841033699023747819589234497375289168697792521071216258939673731005848572051529464657851976081704504480410080509281858493316529665105144495076684182707320125847602772417106755017501157276133790711035940269931707940313462083035478228132819963123055828530503577598513528348676774822078108832028869986581015248408215979242794735644708350694345706767993925442462117255662060688483920628781461617601347296788594684751073778609203693203854005413880529083506273075814854481273465765693667763257373108828993513898137440737316538383405251322319346066150356831745294070553095833196695198664095740949875138146004962392180232063231814441936049056077619097850938208226176779318180016194650204486194570050387266841959776981184526705084483000174988998926970106684152348186274223918019274866128854197589727975301018853454552922165472901436229625201963660287339365499220289862717426714289290840636158749127813628625316326921748020725251389940642699300567125859707574822233791353674297148446757201549915593591264483871233117701807038401149097871232017631484628927417342662118413608658439740124002965726239570391749311069128515427806905243307585652366806866611859895384807256708636967305431002738816973312343651505876934945295067230930520212188630763096532880834561194743972288705758123646645387483639282282451823063903965215619751445454093929043627273451529343341450207880348098883941022155358155456957463814243420666980297925188493831083858009172220693298861771619588228552443498669562853623774582544004250932071317792679950208816761851266143772868113898532595116898014047947172886308781933948350494411547809896123800718013079032562320869343666255068059959586269130659885093584569534667969285063771028190200387340866316184003600631608599013283080615371814127161355258223600718293012367808905974875618937005899574640474481152228506321709715146735002721292496431399551185926702342743812640400452244925229010980143412042301939438169186914497057910688121872172216191205270414636363193696617788084529129719869853222799615014503493604323597688285732519947230647335803719610995026622600028959399525673418392106508569822908172831547950214477880587772401126513449449391764608462055936023590960212783431441769749916466177076186433379322972595578650522084304287450159859726974435095766968296135533228125140133794502292363149073820324695197093481326390790415633754557810890524258471283074356905761045698024655785059700285408392341422987401054453936180966044689844585271970152072059094961884772796003975723680780892830305901892935487744911580241658906274403028072123286435992127331058571259493719808283230923437744379033619277860145201780645638815793396342565580630528586900407957059951933040779854620240540493383221996230548161697687800689307312884302856963635613231411201163209284155523270938056953932378507012868250360206940133696937373432507401843505082866253213381501417611031847837681125256951938131826860534059141008608364322227153751964118213032449481344914373193088713752361787875339902668613356613361436768393554202423149987032908634039835249254464461520611754745687605747599642524763821335776662660687913044798604044941033023835164697852913680248638367482737361205820808135604252768402410478765975836711979133037716154778695914542442258367569872767294426546281202683306426926071217983865811623978116320784892485760654977010472231356930485333320989396385489703825728849515636151756116631705011132149763289563978979301703606975488893606457860122344182241312370430939414224373274818393483248200319496189574177180698112303226257576996751227813857574700617757745896613984535079061773873184592439356717728898749285615802692805055012464268122817347148001118691498908267484503137514178887886036673826769793708854144088045864759541363016858898160915983073308139832840069188327420750922436836834809013887054804083799187249562273412929994258589026039141952058394968833484363002184400300417238532312243229692283115214110652869556333970629790654758711877154834678273052431806698022014249751604894928625481592295584955846549901148495446469092700995923611613439707960256269763999082718693456793276440785885341544762135996865325307351733818901496302786978218753007732369248988619456701779959994631670812782393586846533520394228410879224996701996642846586617842854971468112811654457580285392832879266224720340832881454766634002843881723885067176407558173468183724203755924680906530807426067279855982212826577445685562629002378347630270659307842929584823494133909758994076915724367611438537059740372441250178519024969708883219076867504414347039942757131756195945501282674653523018564753672253671734147531166961569603374769385746989653205840581370862732424034120188095299766400523551911729268176351183169968792302479575541586015492869639075556555322196488434073546310794555519137071443050557653325480636800951489560732463223077683676199931063592158959571438288537444746729007231133405961680180591785860176864744918850751420050862710455783493295149644186881696719343231287473662008185556482948362527107087498625899543238630694309192773149627295360930259036477664812700211469201194550482848976947153770247228003139593161797352816905079717410963556549886741864684325336160157110674228520525222330238961627060023997373394220776283845191458154647277650016843464209664785922791838397211582341526174927480842015998597342296857256151662728673917663223701375620401706621993638327312739616292042531735177114471828078226510289525603910173559125327799120466426502082421222748845654184616594971536759385214231436297699183620724160552813102432054573765742573720647549762903536762027610443200630747876700981982758247563836881518364700199607223683961824384336904097291516199143606328074862498910419195044729496315498042504429834678186094474069615101728674069927888728389957671213866982263633134306129962462292906675761840464872575314003612633327840648700389602597724683355878671013906866987718719243890601082643763175005874880257820997599207396317519940417680906057614843940874027902661589694657167189510577767388691604448851951131201140813531622087455925011319061081145705161604246472692039737233773735748190008777048706285424433891164616446063210875375550803004713347643205368727465324399477250270315125117024989354923962927211252301684061835941892144442189986550324151578179221221745440535254429928503332804979762758746862349539668938459274881212270621601186460732673456948629404851621236325851118728275831131946317537222244481438318337600470902412587371376312849061363132762035510081914699792504879849839336977805250658908902764560104276068904466558024910622824603573530506135095116360161431238038726839648084660541396298863545121650901169889063044737370399149832401562126444021684378673473892749398948533945384946575711862112962173372604928296619010921138121680988027924021428332579832365349909165057601875527446350328714161128452778902851692794591265007517294613349416489393060318510867825057618455145149350965268845902109584866858229183692929707215396571709105072530488498921892529353089853748402939896899054854333159582780951051550655860256806568444506886738951948211223248209553264184244101806142842640063368348631636815450166902649438941141602980167148886577378707591423175014699795312756514557463920440793511676500552046917705969232132116887463579791683945689249020302527632408167515671128514606371277067547338668137846207268053434470458630113598459347254444207366622408455203565135806945874255957522809480690960063405002005284328763018165303260078164836785036326180969696125669645421341738947283653602044376921964670050830968767620253235925061938335811644554491132617431835413642672402285324073811947345032166793380936010453990905427507551602135991873084336221386313690332677043007970254102594270358607508205843718066186835549157395567185920545936859261265906883120017232776265444544747853931369452189057205047774293578128036821353115758425913880123137636854194533026366694271922896127512431364907283592782431798039799457045190417888842444379526064599029749578115611782081003520158171962514474556883687796613792014428432690986558632710037903938599131503603183349519113111422902616845092361045815507942124240577249881132571719677324524122664395646282439643928268371069235453076531921115732859989219359574818881407567471782882820178262185495532758850056296931785585059486016960304133161835993223384974584341939834518977606985543989116235698901408128564482866722425465593407263474272101615623871365410706881606326534670133037438379450860424499236319049382334079264564189735361251659658740504202715500848241993343991032413807952944812520847899936304190656261301215904208744238883954106681200738487581515888752182565375352347372457008974477816400436327462849355804809660246837475551534941093482744101919266731433715685696127433986372986725465977640066198137017040898580085149341169293927726436991605757385733681415701597932264475514649613757030551362303151376691480630915674313942853040432798431876028849699215683853510116119330553046111060254659193064726407527522360580477047262225965199773921619407162664450637212101103087179426002509263934375391841404813062528727521812276006031088072415005065104573047948892141801989524088209976321751252207822511799710462334580937953895630198996873632050026395254273627680426133222038010007775446824429123435027170134112687418745124528218766433644940499904903635469690021643345783168846614378224097053985515664881214189333721700474396087986233028680531704215896990374322494317194367723453492872014724148721474743124614608447039012413882136156297330654705977762346845585095581733544234311424694770618776934884569929359253238329139973855968982592550345888617596946530597781409476789047110629779987621393181618701296960501937720720847203813722469038386227567096461015039791131038957982522692425977039706113901977368655237490221646663031220659960842458869691267088654565287391257593292017058178953200672035130547619260034538017177208186878374148605093323023204173378831963703952891333567208290839143752725024832355057169487799136825777149838753877656491088384278006348686567433842750385546606730653869798002598898245586709811865370163822428145744863620590095711859445104836350646704286562947440667075053880875758694228390219222019381251283818449824691933252565817979777433193017484295984717752382879009910272531478647082806961640608342893106023321190172981296650820349385862218566194746385160631846400888382114288783424794374433522974531815909991591992964246843276772242667586647135190888558922673867985013311060649897573911123044427729820456302670828264086614550143668597508056497064552320923976490680802593840121800464060444811995852637740493867471746508977576272763278945669091550880716366681681272596223599052461775888756098332627432067818304253381710332214768086247741778013610179210886345541802743997787850786368374627410256792015550759885022118487764998450249742678722436421944534227137535075138785759327736800304136724303174287723950539993392353795399352093728980158074723271104745345368847445173992457768433826578385360123937404013244972486903657748852397173759761902250243332458876141647092497172680013382458087925111183207481035329684678257010552984432500027410010625636961915982540446968386359876402619555104730182554632296009109570182297567103969022791030849623947828919100239184698244708623591687852034910993785271018925432383502365042090396629769782275084742989813701544961344866607871900531057334349905020090170893032631028482670497759222537503997043667750025017975346361519931309499927547811619235689186900935148277840610869446116015418601148779369795843792620512819763801070093351703002488353969709506221110815833324264743307753442725825483096703643767301367820416554144815684526867474764060716093212683857893381781612741920891927701125301412510218519919223878339066799814775951389837363310668957946456417385135457904726181819303373785691160855523345031641090080216096867205731774413568787085474801123028796311990650880571259906301983820193147791183688879458489058462654057910284006812482171765184194537886867486551798421451876803208304023117176294522109407635174130613709736138171210552953594477712944074344222927434220260514398796013812628680227402910988196846717940469326335331795542401250154467369561768512731025124489334011581195224704298669955641695888427722276723362683571773313091980153502724255341669569920579434321678614037452727543456126421259316297458732578126651506198393958298486284311844367952146861961339031523843847930275763099031853841321531411602630017868015619721095422483832757996998370586932920485769213137591635585732408806160835063979972607259385330663294899891105864263237392687876448247615803758722410255766793283568939758959329817069486145469964993317171870227325349967353058085481812209088246799547764953751392877150416099772069228593424488711878020038709257264388538067736592794449762575820863331700406854845473588854612829527215938873251781226551416557196796537827727300273425307845019730556146007398262286507364734444625226483883037362814749875700767774599017724446820554057951275817954466907398092567195414606736132707677606651538534461039273751572597125622746167567973677734265042679351730132846625857439470384334570018572100148177851462593326585442996369291324379521992720418208022208191641298712914452565465042277736476691327865326343355714682706329352436495014558280549727752219008628414836628457071121541218445997246482213243398663472287332543022268146860941817755598381586048897315918738816399002360701381229916006572572488786088932071906010282228375666979032062132495224419837371577288177916197002913402409338722459362943719271554882405526857768255451827722978110828964674205708541098434214520102686347460096528402794030734629523825576217250183365028942581607686094379236393354282922798841849246209413463035350773352404357000228099535349208145626674138093759399502995211897300799527547011800468744492937618741194577099392029648950572639784266567022850085527821843400388652700771356668866366031828278575615700812047877248286547175211413149754939479227332974883990986942998706798131890851894253122625685305481947088508227998535410754587287675047124916057881971100440515986346054879423375597687261911134955819188552038246476590218224527688976078783201759656299747184529938754301427345856036888095339202449930988767513666072199082845808277898627438764307373809855338145593388478258661570756814096743981476506865028427400343753697406872600834191812804104345572041582618776316065355126309342225141620432761652868406122432251987752763301679235409751734590880725081634850853356185556661868363927723915473627521507380283622118527526969147835161067612219050333364640605869428494129977191217598856598717275575749683031439789708071332866292390537502154108152695126048631182472648979201246891467010029787079695134568277125147894763375644001584752901677765325003026288041383377785930357783253158764181224728494633690940068292880522946116907230319230422032501951695576141882987058542820571236174985726672991065005222326985861297948004273964783162098388922314025361251206459404646714416769023405220319941238429442141139387704012251444146850653102927351201780234421793417988332801804883314864168280831431719775187323405451369443459217366852719831675980535724767955457372341137994111088066784609975649434070020705675444919412431635254978470700679996509248978292233250325304377909517912434563813422427050409889811787922433101566766161999940792924012672098903204532019125394149261292270849950178795126674080593837121883046466176568757545567420935227975273813518239187290124279027000209933608748285645342799424702006756682307120862646336579430983278133280139970431798556022992066870241933578205829478093201962300675969720932771403632968893890870614166189611040003894872403196717227364619257140719736027640667269338742179580532254537233631722592818507540152671408967812999670806392464057084582172858613173136721701162033905637042175046952000111261870890838728675003214168537776234502235035646988291142423522242615139742987108555275566505027415688586684994606434852969188381622205032495740408949139226844803383958595418496453855541466994190966317565735111336686154616487319136315795277391820263778203882959101740726692984249920895217546103725946144847170170639515070168688701983977777384392050047031488418029838194447002835871339808555577556850746042300965486549453990050588204715281055750531019060613673430916213449118804581868155527900921362487302321382297417882833136136087741144987414029872399945874237289329391767566371306866142078423288589378645488667039834085658371491834862728985227558748830175172670236628461018396326036774962296869356901661406273589620778822769299262166482663124831454271450757719907979013453698947547550351595082893077638589737596868677628707269789967314513495945965601348900316169832769188228921699940753497155504260677658013515871608610411794581820109095878974444474472737210022401363653568649861858661430652523937192426660088788587144646337204574647272040940611131430073649648169685846187589757940463279582191390165147906357513589599057496453866052094339411723097872870751523902596662186174407702868917866543888036888904367618211883459098300276514655748079368482435023326638688177582817639577515708125125394693760058743551874385413696803712388371198454801513049369701963334418412734274822059648089851242726510464027198152992824057881942645328436686629176625972790746425327753786808708087483169277457555587961763760016077971950478479836288638550343775432030804996738251024355054907283559704306591141135281364514160632108846787631541526833510773570854367550552018865895995650909283588578682818807553631131870899159789452501250745054530708113292262560788320627453831830490345884397376023859579356198879399034098401325138010990897534111697522363111498282018577700614180342280800740792076679360538006989900505373306935095540838519484577260662079203110493812537976097880878437233560740264565092524688904201757291145361921708777043325687307468718832983492328316501884182489960058207558882907114225555162852523105757993071295855883137864010624235494686919606321627872040981565025096700661003997904615531695894343146383029312080885406340633406898790724725126579969841471842481573868555053901007038828978475192124958052396716278990268794024402984961700676859200397082983489421845307533993670394553023661811019827654645475801338432694007388582808134306547990757799173984830892078191266694924750180536111334410318189219405719922077094629429766866201519377225496779204937177924945807252655969582585074520737942980487438147869239166777542539176995941850956591245641846357993804945300807017237879303083664637890743041407244952954115654296761174882037748671050886492169714206145594090223689334157430219440823870128459471477089225186758510464384663196859496744520113519216301897537996490639996076551429581947265280306220208961559552326783410022428250590831322084065434179786519520959552331013041009097508421505206854574654587040928198506073171990535451199832085034375959547258659088920766396608687835742734071965836152423422994121779159232416527937801745225194814839796901627755708137505673950779471567541307912028484172132304180282771616962305510670866952786972345865979441443177587109068829624860943511086485222346668882681314696940823728160422475108519718784676685233470928562055597511987658229468210658982106585134144054954658423568946509116783481637168573718205156773836095913256700217262149453507047425615511904281044210547366561015766843089572002997200659877918201256692301327874757234947320095241189401559880196830388151211740296651647389612605724936823328179399088374733507710118204785474673351420971680607281129872877810832229609407703826593206659038800875424859118829730732049464748122141464828285223255435434958122549878419546545341132138460068256103877445727221390613197777324498523856918678090012324985853664784728063051545095890388050275277898220780727379325779435856776846676142334784366097034346653231432597532206747641409134194694431917935208688002388479944154005630353227610533342542745302404006334785337595896356278485310089148200511653400886041110879294901876136211517173829292644498138329788254818555222977200670320228251610897642966808612254368107732140484044917803679052302715522302722741846581029336240720355680150969747530320385788298769824944483753320419280449438851525036295831817964716587892337455809569481413269416816167965980481577510496732483017344866275791608655240378487200394385629489739848633332776097154890264261639605611292713166564583567970144905025959768880998314827418717811415955393918681607630436920628544428109473064002843564532520457616134024801769189987984265672569842078185749669330291700756278195885187557450234095860124898379124237243665950373806410571964243042181024775945588558538432798046553757171894208529827127928294275004282992982131510871891296137422960884672576471888944895972355106364064451294643433369095605612199546289354223227109309463617844658882477330005779417377519160185009966956304126693055846514845559050632503634102196704837379186979419623568885530592628774314705420644598105334166381482180461018787465494175476646941605448789820724018931217904340061635146650096835057780198739906212143735074751297298199892318909175135646819230172956532223638352742840731075511864017732538603091447996762826387633936894483890206739790676165983099284636331906514535167849759733786583756652979955011667160608998600579492790755369662377691246440487969604016693876996435784427044539348174126475114428075134592809315194258939320996670543209411397893762274489520295240000803078103246812935606754576763471622728244039075257013240120112150527737287107408297772595046064173315291919755508534771254534926545799762384685648420265005327926667442689946692310912165086045245461642414352945532481803048451654241447327146292433586805149046878804815238729778308132539669136934810703388497595916469224349277837596234894677968167924991345449767906124616804291588224630720310999550640387922135920427226955632982999710571172528147479563347958841017198825331838440068391853453288739470802515798054171730563467189014105307103071024658130012448351015472854408883815332209982168032018767221273706912704119927258040387774969041629348324819940608232961155552019926529480865452544789544988001578637124055868088403234959042007523933336511498688718716412123115880239781770854708722961574360217381512901700125633000741315406596923487817949702550102568015348923663105467319555044088747814790206475747190124480441775074626477164760496099378825648638512203319863946679168369394336422999277411109332671000556957690668679403982076843615899964262842229135156126120288256396576529933099242475880420807485719599191352098373326719369488736877343495954808683027369327505772634718917121553551037347090471619979503792043459978650725131736401271239073337333125995270309811132639013333184475243775072508069947791370109417888429223451065952797226745745599434555711765883344201257890784260191363909761531746868516788642235633577639582113995340856835808607894943731810584009978733750671257300901025932427773969065141112980750831973093480793502726149575943287835996533646380425641414381762471937047552975371460001907225710667600073711011928743412663390226822695091589575348179405098057919996177218734722706661915173326967205269379735820858247031068481281212687736562019501027657398937110162311983494102842114455591003491584171385133725135655976749252888352904505622109344480688614027755235212842829008167767894990529860592899403707166729101072360143937107063626172792607061306129782582854508276032552967990470559301527366352629627585695745451293799507201105602159687715920516664711998139167604891284282891932301366458142782535390819780336653354818423543068814637964395070540083277875731800530165890295610092717431939450045238073548178058837190956715185051717708864699310862494552729477491577199764660308998804466571504391122217665915534930897068441017558471640746027186048175042176711974456983985293300230967095906377816022677904619439095371445692126462692338132379218854693328035342598396039575359223840480258732357599594109565491154043268355965240845514817202350155657912820133210173891870248873664966009691817611538589766303434097560453271064791081965837671467539611975585228591031746752100698282453459489458183654207879858454532638202687921506776248561329399575000007296846506518930442530497065085120691748482454270191994190133650735397654849674993771630990422231942562713228241058049040940577682544468496998001371089896850401194569913017597367504611726296459436911097583554456834084424588101379360800730199020990402219138118137637196397048160292157450757939769909166901881062146835054986454229741566343896798805627857463083046583064842339411896876076318103988194949020619792699700676087166653857789008490963635269715249364927456148663423981585007215859308681531713199138363078793286224267249844382248021465106345517039041186852185222145449624623893854136500513659807665271308440621939089047470935071788832210179397439730689950585376020027551274352410811607691720789325199844334454693377046460925871628518128641931743885339941290963578999337085424429609731650518390941315807180184436645956366357565759046723356292022130525030593928948178878779225260788209718580241482846216385845387758903171897010847754269004483276086494799568257364327505514617264554835382119878818306768564796369901752356585595442351125000494448428777926263499292599079624580760967848064434117474295085091176422889588650148123139008137193633289520986434122048458472145534134308947290228058039343814498030413015183406160357878574688917728594939098626181810988796315759131516524098227917742473242653119675384548378238087366096327844193863795833844054486606658107889305497324836238285430350169604566088093130538315521606995682802100882690842357952969216235483346614630207026984207304994604499459305888893615220506339734296636668522542407560420010403952118108434514804720379625778864993447257607736021454107211298504067819052030954960734303259912020835886180878939182932850030046225700540184437617018432636707864674933799480044411460781991059907572077670021661365138698363635996176501321179988897441269071069286804066399522573625167378920480592991376277376194784418023199268737302522544391472608582264607866430186762138051612362574066892382828489285320037195772612531058275885169130350775345008701166606949361038100052043895507274578578642553252900803169862098122851115797468415230941326048456952609254892863676324418753064596656778607576311664282321082089894343666717531496467681412995231526936633134445761306402788977232512112948739247344529706978017239317298761791704343276307502001993792324072337953192197038843390914787439034858204186865163953814466099371549041070460423363537171193637612653216498454481659027622766912765717510843924844158588634821124635009922435731257711635781498075373240722178861661596707963728534708991180252747057894333006072238984100886256458046459818223610604311408554360302135575299335570110906981620061223380706065609590613920596135489081114532832309864738464413772561912973360339751899482798370611937733087611652304902587427776508648118592080619292804867750530553420716506840790237147260345035339077014704577568096523711844874011872469416778732531061921702069944997743674457918816067481468471948587237866435545711366430587456445296725878674965273483818690227887277506047403352852510025443738074097575402536781380134692199032838933827589199256033836417461494826585732935769736997825535875376541471394812865628818198347396064512135598779550407302407613990694419325502414814137537104521955236469551588409181811013599672819361038269280798233035708538877475150546013855038731869947998252624574233282205897733150588804691464119086098624479271623120785881908215049880591776088157459113463995622225566971891467830976325942029090485261737664743910201154803380548189596655698759360631056276270161768916812639282424918793721233764949995166215616456737192096971453742691729080777859472618524744212128607059798503324956076553496628496748579701143022290140689657867026761854332200341920890293267351273476999023309751260876440659285345506999350155393485273282730590833732370545840454355301337191686758090856801920244731389754445880714285894142268680076915349591889251736513987001851727113895224319401365848594877505236032723767727768751405039082889555720803364454655632098719854216569236256387054361441484583183423329870772103458116138137968729320952984797042029118509346588552281064864053050796183334014781051283231969935519087513674863078685243126937946399519857116573090948209815812939902715845550049480492182227285086830141950730071541704910766656184683230623963506159535789967418017822250370583089436634908743951436834242657540324234590532830013004630073400782057185792076030952617106261266649980777428309399647980224342466668266272841450100315189611129419861544624854421284356243047640105556216601080762680641816176660613552826248273809865285191038762227930518608753640780344581137911000424197851095939412765476150345463771015131749078067854940818901038761005469482278518629684790741683710320799218354608488898414894961253512632118649131911130008729553980786483221168940238334433016294046066298298855759340671122414798421666363031412478102722917227036972462061715569052234928813488745107634579022944856822682149656529475168375874848396796572659469388702314592924893949637896097791090298532413986753901885258937002803420163805832004144635165612301212450499984164868713967546191289683279836626617570066890605819490364840849846272587368465185856943470073900223587699053921801557219579649825697197324907036280563563421998350740696675378536563006388275609243677101787110114372633960745683901541178790508015745441692393833895558522566875041727333741956475572360787752284228056652445689412828595479663046778799115653601227319096805669927020249455820086066105548557683081295442445669126004814129370056461742215213273180191265191387340446045489625088626504294277905201372556542551357748954669787455013368830207869575540657547204253931761632887854007413692781228029967270628552492102999257852616986985947416969916770117041522733510740528961010908428124477781835224459062106977378978678547016334125529614254573939691819604115142582510690127611970809006615691566950269366176838274508103748368366929904747500728318221497049556289113667005095584709954072269796145552741226862269927403729612523486326779899134843516686120958908595189905819226570850059936484823010179991775886622853506935768920900671852581158534486654011760553479747499071429348679704025836959818130253210705498823410459976016104389453377781301407693230971284747727929496952714000593856721897738709673354876391272155689666866930699550569416365499604138561569365002588179771586380563836332674818114000858416778183725298747492046767432564557842383342092164315880346891336780372757288577958924909093096337494866280691928463141945287017988597714302343100020469618386358787125693601812114221655587919097855428579870817923860162457035843530381956142549347047111243749802198605342787369566054486688073144486503838515725892095482942003415351757522056460347363474611900655697876363445879393878498961039790146979136010010053179217601672888281888346752185131150426120218817856514923074995115198855120243761716333204446442319191246119784789028876405740682943291356124366761956658404016039394525010950570695956218900450261628295199341763265210962502647581492992034734186438562176553901704780555497224727740750431465566828865475403051663246921964101059399549776976159698596536302901995338763576012531835188861449645628939409366754620582853552205399484717074655793477625752448978582402772821426584252378092498857771744562713779895549131151819129269853000326766215583870864488082697512033613726568071505551504198428348090403036995878812526850270066332031060528948493174957928576264916943999574457410922370241260937178068289688926771273818942798070236359280671971078380753652380458061717578524041795434504077600748248979261607997243865941277868758669315385578096361055408722206754565436378919660297130101414393385199074843870460417553910091688880850070277394886286369162339919572457206031621195163520856334865864192847318550848206532826265119964806625935320597040517038688793995691416888133859623667188445247755102706774336022679150059219355896549881496733858555026429560404288787296123834687189152532315354370304499276398102713458347428739283839656848616401421914673737109109661035522709328481849570344978536438626985689387702510609477458674682426542812562589254441381106499611428400994231901558086478405736544059651921026248153225446025762840422158857508052451538431792531290328094313451199168767734504733807796564908280631792783745995423225056412547283623651956383923176470065099713744757753647745215414441934044156785676962193580943484615301990579046350866393009919211029808376669575342617851267092682038252808374754599756030588156894290498600134126303003098584348394406639997126183637992458205509855530634123323685084048706229008351631445305337711341333918246901688664156266182128178537978274959999599029031914852593858175622404983098521576875926891071169515817618621784402870054688876959270784462005736179138256418221866685074165419163749681074232093027405045987410925221758393629183755166327821242710723875270741656522734877082126404835017281956091289202258595934724509339123235029261754417963389115982577634537919715626177784255062730970299668535782113096469156507592761174442910164567922952417627208277890776009503456578145671833712016436454294102362534008081994826878144591404854484899220994310156909165342089919230602789681107900652723920958695649646488143131855737886861346414344766753329335570103420305237039931919156427574006542765937162417386188411172919544261390655792273602901241893391506458702335327856720609224327370158999641517713616920832519317006513737446564881369990593490733305054069583948566231454894871364558184962909023149769375833047196272532486703158947872907194262626572044287325022644866368422449017582938933410664086667265706437420673216565257558269173178230502215123225711621599653082097306619189088967791469986523408158538605611854251639174342527278278630256874108033356907019302564819118818529755023653969746512323253801017424735222741633916786865803184376093395095938757499903047418552972658591497510804452689924204484855089788027564731751665185816781123310657339055457428237725595409269315563301744637668263815073546289441709489725026210928166804002772093325962298084516724728104150130426563092223008542515963113579529178637656325082764280718865280925597277901103462495421319016972385235461333121823081411128107143267685945768098310696951028537356791704375845008311215530725973771821799884254899226599978609774345006587763765089356186492783240778163714545388757750742811403927151998982929042705551884119253119916447807586689364634886035242485825767392025762264776912828569211607593492530148164522341453409349935142258602015941673610034295064767389378825414344466372152201462826385181214538232515376219608746446146845511362589089665865819682995794586032761425089624744643155191881171359632400582334993725880704005260915374267237978890058554685981764147388952042552544924668665572361147767562900241431675786535874668088076854454131719108133983241295168649939983540302260906206081724213494140449423347533882190429746152559154645073331796558934221187011351240485769542858549273423669891343273721310610909898216459951876884486397309590268334254881140704606741646890619002619209391214830336207330737124214725150939579573737427174213951643433938479690361061957318119556291053022451405544736709516908090131463285734675698833644354814268984453094748834997230017257108032191081305814470206425953675421113843322471058333158273560824544083809229100145616860390272583965736567246905288029070617336320910381655805340485105615900413029418876283885386198582545188125452091849374485300294560484966187035340586233441296836476759320367996643274713848683132056201309227718846796565834609366393697308686727014594491268150099134538258572425202067284567304638174067942327085813233871830862923899173076942645242416244788328220388726495091848419327309888988143128692056059528080751693616452482707453019267258963373893146950367907344966054039584823938559064240664674499516909483492357717423043212176991452371960908085432337536301657643956027041129676130083201060462118659595456304236199638567897574899918672794000498615222913639994592765882150321644967439643867545027195810805904929417886990658221797359993837729315254223577129133113517877340542857736666806739813147537253315165903450213207748645339340352391847050798829845742041080157577196994974951152584978306092517041180554254389200756929626057496582114033828348036310352760927794161824273650210460182355595543357623798763782984372768396557984950009743272538816902932482875232828096860146672743644072346727410756965013340470748252990589861958683726386690032371540284848120173173088024924251473158630812216526858885656112745202645543763695566385080115959341889298295661480767689592590129550641780892422628068790575494928740714378357360817459445387083584287822198403667811179331954497144312855932750009063632182104870745374390094270817922645418036472394540133710635411159934248179982477067751642781882357603492321239882216039735628739500297612734274754739337063001238748040816476310302697303303572120762327104265427541298737131900801666532137279872308072763718001873840009013673794287936183932576141686312437513558573516326340348735304848316362356708379996083806571606392377626511610069905105254387056618089664301961591421460271831459396587667654419853018587257574965975026758591702449903149576449465060690489314855453461228425477963241348342790097388134189451354093731799944273756751711165085455107654109393946213699595360003791454992255137001588174482794935756143814243899771178304964034402624233685574854691972338879203178759356491800998078626452518061243861979464877257203816792846636616937930657904075623409988392234097001979845980217331621585227966868384311517946291346090895608806808973920605319997597313257783346944516413417271314421067326017934184396245910024836355091321340507254839195006648650439237465822183054340518439448643004905970171203911666559426943328396498760538209022069370773611314626413498291866833249224560379767988095332190899593276329151342202818734457412453096592515441416541015640539430751376220859246822631351077805921829987967967795281885533628806914299083792775968750087492344237482647081101853480807713536682627093874688326224999383426504531450289738774944465011350050725998004436641560345651899368163216036203536292187862060644249786485568510085368603685847569676449376616867134373464112177487553187542473122508238584547640726497978442230199318247078671860517496041524094778653534438563772933867941992990198791660448245691495432946900359023784510849428769031831755967851842202027632884321091010435738362922660930299072456515116214920903319782442489133191251879804661035895490125746067659202136794853674448560899240674355286358039357981060736156988038598208075923202667072665301335821812411928571108541424742361783621010115993166079071187406596364774131578905372767635803777484071540477082086382521227777832213703040171979385985808097977288714541354681271288850568219596950556270108949288262460023134264810887916767027172115312728831541602561306128839149435902076594527403250961014083966464000516740504828751871132189382002404059616556256011510936726440602506064817004182765924453218130758418787644853831990084107107185982961668221205281213192395236235590509903577750148431141627955415663482221578833650077472228373472143868270166622265569851226193671909264715498153531411805922095488115606890558871803505222348121393547327685379510172521778746373361510492566265400223485733851486740754961114505961194083746651418809235625670249745773566050109890976595571640898357250813138380996315787567013337209679450391596516006540373881826096576517483700186619211965728741351216096933270065341524506978490702257714906458489393057490816232696675937954446434409093988447578586487759796210224394101256647874118119500554827263187022421283388446336056282706942632095240879104735384478881884632813328197901434734092581507027196136546866058977368875088799926321617199312433079921802642536964332245684335538772625691867422837316842057519202434904767188651306959684734832811144875962041906277280857076827670285134297395713032286468443025645775486496889896661068140242205440685438353019205055612580731390282100964495805087664439319079675664668374399203500061861998324496311993903413817054901930975777381472174206041966828965868847740607806084581230609810975170348454365558217554258090808312612197885717950624680242680536219166892743798699730940218399919979541302163502777586667212608515278682604005138100576736075868114344793466327958027289971302397732537573420344734410186487829857480042045049474740093669126471248123103889186612760032309519897767357767388314541074677520550643380353782753317218041323139919693378376607743610879176418551321484738598358326348741258385076967112516388891180379123405625860108710255068506712280753420346465812289401763674916696027001165236648234810983668089069979005497450668270636892598554910696537168208629671823317895331970915736027728219976025937803992084384333869341405233449342756700427920191138523682472419500510127910147434474778489118529739578418866902165163454037497074897154991095792560453998468573511187111980624309918173050785318523217924832003186442105613112678502370838430917575163585372283150074234384261936823775504155532042709711774396675647938571309780027605900895610931308876594979663689560839589952533490035255213111581792336688319111887736937764076948934113968736212762481829555232121702817184377682232146866216016784987952205455362469787272095294286875378703522490738528772577540145467580965626244602556989658800324549676628932234046684706300635445866953898091634080718753907107415507499830559898630092396940419839574661645186147350964291804185520023556000859844933085396615328289497521003223209254028248132906684287048983528226668619312388782821545535800129458764892034272379956669270151204138563328987590404981309982714940543366483069686600252731441749355348536610207231065186886647469999743650745471898851036170189285956346741328286046209519001815549608359090866168822898044033726143404503740995667804534449530330474848381282180538354359961093433031472988471768966042618027082083843744969434674582353307780479503423525823176589291450751739869608680801855740435903385047323545931840660775548280467112343975252463917242296849460119717498476334446177899066624604833701783962193172420129539942621702528201103046951126792377827459931593647862092417080425455297103579750018837892340373537453982634274792617683232766129808575150663939411133536138863454506484493430180740668747469869204855907817156601681898142586674573537827527870452517947973351626849453063803758068348551387069617138438261565178143677303319658792506026486592333788897112485238942588022879888756941383599091721891978520071441067360558175059776166562664899904032598765223646027780853839438076715313916018859647040938643882869513835712582935515771717726109575356721098844445650416074172838398647316765645710669211496236170589969982195949103615505970802284283060666920051095272283264687916819623652302208384496573175674745859926709470496087084773729230210225818729416380682707451935740558650340952012947366470167588137482337253163978041999707940597000750842614740417027183872172887713594149570697752343702810819182503849901632811846354210956171859486410868684742175559227983575860944738268868449867995158931304644082635088479472790934976210456462227702368525612087291632126724066952804457201295737174075096993051983796536132044420056858596960858017158194925943595938739690488049062089150003434198341672064190546356637228485876595915904456984544336154365687528561538819107246474851783351408308563804633239597350714550587775886675721309750360565783471737608145191230187415727442555765120548800651160193155612878900366435740425010672038598861094826043214177915275333893473829952681025899368899151896048274813255933161848515199584915496737565442831649474825247900786237176464648967392670028541069097612214389842099233995877294225275225505616799159941244362630191969812468852102059665728500940331000163443926783620049422771205767565325899403606336282211926243771410792561761501974138287355500730059882538110502011778278896656247184301020146756630500986144894997114212248796398525590929651963673287174572519690170376533820655710487970620807253676593127445816636938498663042255888202633212021845173552028540637294807405536803426289390108419465320226348292707743464231693246013958347505851544055580501220870800181621311797103927273056220365827155713195749589102322169387557490043477847801551270548112271248948574229017902115735159503415879718977129135290346851074684866103753373438562751561945790565233070017413159757042501950132039932935064788352999408253060656641541779291941602506302368937420991353419822172150641626471848463602248067291122530281061073290874555008317705149926930429587596735076351726924165343737083915685648540040388674021009485957129212471782292352973980778092563097532052735215826187703787908763479121247354441616439992149413293484618286461509153997962926196279582202857818230722613649571502231263574657529418465399031282204468946431392590288335550488913238453120121990810665687301264459906198642849105225946676517111613383895794035512718709528560332042499360103714026977342914808936862063441423309704313305341565248131368678427604258192857558672688464429515967767851143994974560474453136566910640456505450855179567641570388693503196290886717390845681123633300499754478424411151477854451646093989857868068254429189060689427031450445677595999176177274899207338073095163089140055844741937798567822311608334073786886180464362106544075867072508214745399270539520276137734886184357740345460955559327370149151437575984490212931744844880517630825232478146462946505720420982905869534269966878255289147354586476506170196225033617993794057071198209391401004248597857448454029620704353138143151217382109033622831629603315973583470378792403548963976599679557468126892122330214255747998890857068836370164425764920599255428497054843199148730882895280105088231698228490431438397846423030261108223430782939526854238684302177867157078437569244971381341454264947722202743432448556896850323615404109266242242824291781028841578357749002813217009052777984385916036134266155742241192740883794113608425514283961404221220844586847107985987463424254525796270561896250736298343874787312865078510637099148292150929439943041430726877140291776104944813776422274530269618710609970339369826617082356158738923026666607755620048542226251922019252763853961548118555827997412451953791090259217730311855147007831271092924716003132550900232698663658967381327512852267168367751192473797432153795695818795407700552239306200914080802699779492492415382960549716836840551370714255291679594095732013812903527486523747835797851598970309185027158792162470070933675409746312788017634970697076012430457687720424455118871245237254536813847346609043934345748245461123903650262521276448133827901980143813762820866409306591550562334500615672580545291332006180100321424838054581045237378254848980981826778259253943324642735321651837834202159554263261291683728579099717624788622206699609939495500594009351549108122340842065982235554689958629387691796757354265392403418952068208746450307516743499086494948044941119466162248778975439890771581964290266541102798286666597955352154578619347699727735274827446000997644351764218238545777119218042004009321318692826719588804302506814404453922596487190095776976241477586779761518111101169497103233466049950430378530699804594973067253235332362676844102183044761884471505349295818372758286631532714977846157569565701898924273541846841580215769474289746859740233861771539098895365211994671197649909301798125102527400743734382377349664060541334690482118016978688206768627375146930524692783255604614035752183298695564446161524119408422103821017652541019088246431593155619355819434336300215010601630040513664590418978917098837721802626574331129350449150355621554144178063904642219130245739578224805225230806478372620013751222881744438141870879953096568517640105787365191240177570203749549360154506632758802180393665544872522641450688860537911652295470360646640802767014401503871492365877342310254679026597301358219915635913251928300123732259411907820898875365897221940246948567720358542146937781153157093862560935490925555841202302860796754835207858026303812913949422032342123142584310926496014908681412727763798224042103344149072057756046753713883369060986524863781374615741830702411959521142996104875842213288109930009319522826060339571338856427688429135382571963661734615456323983751874747958048896002315964101332620051553981908656069417320469244937032175724156156015611521830719310610669405197374941721324347946435521527403798920268233122098942638781525700086749826634918347140528872673103191977205376733503112984135244494838308804120516124709326603674087592854862288101691971369667080024080971072823665068325760384881966741390805848051644294189291474909242987537595939630008594879500263202093164255978866957707233801320619666684581495989146988415662355366296565847417439549953114016249129788744592419425260430186873683417186776174491910445338250464970985536784667877168101160590341458864075259546574251206221396094030411023089941902343169287063793339329769558643359195727594648603883234378116679273402749227397879270754285165692627746650295642375993870160096550139413241671725878922831303237094317673217086339300134426248673196686207382663984077028021227279580634664912976866190980989099650464273464698301171679738796969346333802557062862351626473706861821324398943747849786984478512146125238607916014475358210867663378181280263004122738936850319311671865966622897049400482524324829847225367875670686495698021309969478016604703573318486397059056511475925447121037678660770524632831264777392955774076671236913329893349183064947652468757655268633474367919235622834650119804630305218893382802356643287493129499472151141799470525235599616546263353617411167311962385759678355106502605268983585235972106577501052399989107138812275117456173445958067676174387821455437864613249533922395866783401115512630604688389840485707758134273427760350241854717127263352220450484200559761700299681881257469770458976970123749882759126761672241259398378928588712485594835953011930893828447480085406344534141768186365899071105840876573372906640530858899058889747207570314419899379633638262196920617476642793187344766779197313122178592854881516736523249989526995896697439234094231725353733894586885498927707166802734985767917223992756909601288937869957040667584254871424787334757075267885061393913154123602556548868802555243921203833920010629944970375858263864221976669827313148013186231785253878117375598131255390391561103813392249545353846255391893827574924017248313875932493212416515797754479415376928897000257058949257867182933890567552126688132574478421709830707417381019729059297135950401205369088804204958878156059784855599581127899073189289289170776517808508008159319462613836717561294209692194837325379001970861107417327712250920103419984943184899384803675778368032935173197909766105606824726306470303972996615515377357980289807652113253235681324545457147835256546841495839399030299003353656437736616703443190818452965476904318966753848838094044791451706523233972555574531908833617685227100875425912386610023728963545008766166286111270340932200060086601126305248941106589254937477920513015676942763591910866111560959364601962295044356622770617735463452405172251996543318058772225029280770296806818765113961630224749259582868593174404206803479584299637953044121058845097514812890687961758426698386014819704963245495343685017458749735164160337809141417164919676460961383410769650780983302826453910340057407365207208081846074346198611078904539099376524514370953154330946970074071727683316989960614353834225316006637241499861633275921415177774656885103498682421945200398439924106455088027166845185920216350735543987617761748987237064084289767788044533188937727222870308777226547996860149556570082970159968580954749782697215953530466781683967892484285040440038569378903103024921902232415853841996573700626472296814760259770348715748986503756421237828288018014281036229455097916815957523504167398646538330386326960218581042809178377190184727620851205872678613355496801119120364848966940709234563625808162010570977384286880758065575986562873292295242037915317133043604987120817813106303870322662826504598012761584293104427106306879978477895666067788932825031683413153680958092992548694008895752850681808042815165238169816327931885261724583059206519877761657293344835899631602303052478497818449875169972519780821209342290666936817420073728300052979788966727149537951175666037164261737472834969599045089739722694563110032954223400504333421744273649599920982562043600835897787058583331194894981680012783651459469577790278906670692746102871362965774228109490209812955936748459741154937830107108469389324273831570303669374122117303446471659081003171161437664974483918613260674520366488499476921742820501910877009471441500229787770169471516479891971580497662837015891039976316557605220766695916536031397660335082427697681489831701882198754499307672589354100414431701249899590700216034656905686737030855299181042303640530261074132279646251914270607531621315437557375219846763342742397951665341807541231635447504037744664154134906299943117723736424535516204734827456130961773405019094441410482925598655861547059036034532163138332640833941568082591414737758383892054473880757940381147185990229419602375399109749846128239484896546848632967029570748707850133032911958963436735311006135300307867754175557095644691878702634525810925875298424106728790341180400502889805931077118376928944621534898932993695613154528207003188111114684975049614058786308254588755628079574058632993514528039209550162594738052709760288300456529983872152228066020247073363956286760466586277694934211078668754322597907876836610900114425248072087145147101775873085591842144325344548602574486920031480802984517691451846259385961239976977255185016485991741305427292253964203470505715082095044938732968047040857609356762079221755643468409209115217342619637432785758533608084001092665057149151745007039773805176032875077253380571607892867174040674071220864174341304573747585251622053430493904379714004374635719270694128659573264092700489685133693200664730634382146765271428824884473393089380447836232258685379307231827379572596185224011481971763743456292843699806580899632285611883496818959340620572415243711636478777718909801727936726308664482218918939517949700202714669604695989440935899475700459291621377973712381541785756732668450119552022549501599894313694952548872716395048108877691433409027132285175066263941411599306632673266548854010909225315055135852801315062343077318735560487810885144370012350214105867617541892193570292970433452194784230013557319046153228098660828011324337375059852670280155386573140899281062470079912077671221578429343616590481233529216793300918424264027998743345026412660209709950004588686954848285540553646355012293936671967886838912020965743150065731834974827978537757220221979949953522088006301176820459361939870650411167034916464337837676867120530439666157601052351881909748359423023160000263240910769808868816682270959891112248875676173707227879101428842589668376718313457600042260583138512499459904190016055286322029303484006301806669005014963377197751763642093511708689889898270004968543286896907494753319765815767013647297423279120356297685686702738176318211100451353092674372644641919123080461250096756192174878440014079409621116177583850809121135732516253916874562416338553341723788255555257626454111073607797468895995929802972820245364336478529581081777405225408783972660558086700852112600771216321614789319701897113012371740158095883670222104699893356170119457772355834271005093829007146429605172018251875104690956086571825599010892791791983326257890579663549393940631008119930194906515746903866165630166532479859098121391344071535784709838427214795460338551815033806619831158418887219297721657981060249692682033311400871498829662129743773186206589254915927195164774308060279544286244425126954198344933927130395303035486450995518770193136160894502022811523373563949645490427117936020024912413187102126686190343930523417254355323053630416245055491253248350573504791918361188730132357656051310102213042469007073435964579192479089873083659084931074761269568142404992208795989884725050755190491983983854961846962282300381696090165249461457748667084912692340628257680314367086987868525283287785904530426053506479148890195482455506656806067587570640168615681402088978925002715599935622169010876480648344712048811192621747777681816279139381251141281162526457860836978309292626299933309595720437768510610868977719269273363988009650456361635802720043442339893897656682691266010267128072438620845524617012957510258014283007110808848963755350934262542545629209083669522965673879515755641690842558805446233624520918396364904665100574345569892320736796358073296415331704988496174309363200193691011496703903052423345099549795310469612555169237697362081765538198536095696271235251540023148396642321040834186175148257536375978406536832328276904479740859220144769286674463123442592179884702572499636041621213469817580515172517779729567402723542929026706038991260326938394477865979205761292576974170957721171531076861312307522592193748488380448226673353187493875015557842087387273638598486018565208830892310600487912604295287195180798379344745967240937099989551344713682690928728314682880040646700508193802246200036212156707130081870728993814620939013352015841383238999278557409921274531499451302991724584421818179857530171707436497003967478161684547942904528308505323982334719530781979504917212829542363578951142656405245809078765690626541323722006776201276511577068011191505840730963244095033643098511349664941136060883825575174165400056659514402034004077458800376802901833482159877014533826308164601853555132432228446581594788696870921402468663821663832327174490730579553363830336649551880697687397596211438486904041340012823190733901227767396006176397188575030320192190193137297357189950115449560145961649807937478036042256434110111187961577283063310422279460017404135315013119643667647752548147527177493470312956846223191978650691609993481501211614317529945591816095911696173904564288532257854383294678284554759516343738433314815843116612634748544092393230254830478085423254873340543202387129507642574246251564817294526215431093787016326805268189186743073483680677011810445812146325803330641411654606918941167440453119057417377265850047409427357771953336467898197188703819358615463645889040804201349930060051106895637992898048028730070654770700883716626010186389033081768744148918447418693360760722608972006535907607303457629180966872075170073178470884885446282031288588941423683035048454112657451178254337097157129476475233502877328126075092211963087865869473184351188536203881157635247117506332545358438994387224466636194261517812707676994669396379111494429650820770732852820532136804385388748660552520078656951490731473781698121797906548493927552363168904944981356963666521294172335252685311260457942508064032874442967849849761149795311907597187894700292459154939259618849597430912159846189786742724315137948120227282599198893778808246904544677187727642609019440104629234143944827613605115620168458324585071115652440749632199926927024844191993321009763050002199878851385989273603996982740375174068025256163224648632314846269076862841539835227990777377528064157648099244248150887084593914976237402695453106554573876385398353289161300164665617490086241600002855560921265295012319005411045324989593396363927904218061152486901726176055118112761610865160865036220210355397898057265004935330538491215446757238121561361677105404915959392091021226242542634075250664628358460131582176113360024249765613672318758436248057365786082136238372555607885906575725122115161270191259923596280034299900906818141569713628052752532413704817018107166208480659002449773711696329084343742229501296247320225071050518679376560203303728430785808690239614748177910152148851564408989160561845513255972117967610268028551567208593862331148489855402529192313315940516971076454404033758986381343254012370621795183548523340207174002657368002387005359643735525039666921857794080246632269619534089902684414469016275385229184805791497565306325358037029995768358259320458811586721377533142245451967020632691512909935043629369323743720747144212144979301403112435226111715581540469883024633906320202402192095121853296364769797974479741461862151958533106069018777662048307895765127989442377119757196560291558747677875610579666653427340800049573925495519570747685181518677123224131044685861826597040232868557195864487999044122967183635968441393236970343814718224692330050639121182188119600007149826833335493377890325016944602467386664818088284684861784001663776918832415558185121801097028460557148826082523906993529744663704929380013053920650079366826142854937317855870379965720305719312293236551033826730211298662051506341924701680352479737987162217327157621329676096593990601813343481680711371805666435558193645134621537227845074347226052589115438116870088184365352459853431498333638987201798604905549440031870399129119424049329935809127718065435447530015324544266996859617228059612427026445312069086428253054577919527448227913746106385461162322500644363936398179105175443329820836587628038272843679661251179058314001222860058581800280601498980955469436642843379183514224857404101661068437154439991764231407740539298599021236020765937243337453667871731930247069242249422563048076394760504352828422735137384248588696233691522421942270123349651420248581208139040471081922914727455082463155068277895565500994638662775690333906692658031141633954409006670471846033397032462692753836928272263589293698236483798445969197119930039139672608341398034343202695413673637165677133801001163669330038289277405313664697066620292478202968934807121554135015016921314092906047723296438784639947033231731255018273519176973270200040628464253799899069750064811945744907927671410565924738601670002381063846416793594707608941610839886106592967972104740154325136956931011148623454972164866989828866321910796671072894377154932353568311161070372390025808812778029758746387468304858874003298475130450108446460663527696970782222962038698763389791044038926386323706624547793208287559522046284064675418659596644597715860079235789947346199840225655335204863007928948029163301724292940282649245060525541308393035994789226215941219334663509155857917809469854521021151210479354015897263197697349605647614999280764991257999146050761549177246714763564527084642342759455487250126946711615483684354276858068746177894714339540600167768121683780444241156682630585310288230661226341779677895496567540204955232467970582363807279604359284640820727941225707942814698984332943721517798294208686966166056439289427833171953961616102636211981285122050373002909972146713793611195360658398132682179127902786116970345469388148591923841194080883641509833481248180316128603281348824023250465815112268083918389082795308875967451410999624427355004027950574908361246449733080619430317754442508033982492778876366814504038854014284456479650377638992230153528245455107639031193421514840486836845327715528623671842701163267128997104837855477023846617103556304856986443982566405399029216938723950199093373671385741620935683136935523718555958598614768780372656094383440725143122839050960815954189541316722370233175026933332630866677494627131303009438681323339169081617909318535891793438431775602755496309484370709277379503941606151111902123256681772681052997081730512597038284526194130729830030216944024908312969746999634256366897613827176268354234781018502484037670517280075094091331661937030010950309742538392128791764970202868821988294449865483040572001270147065872156531541247447925809514625100024265929065178249434426808098324541492231862336586431429694301446431352165229582260477878102857801924126688635355437150217916287855925909042109616321109193041519707066593488793561354911544040155581242805766823890757375294722577183501515043155730278005514047383958329972891512374049107777802363065843897321692216130421114571428156843657991339995944552792210360410949488051480239371472774461247982413462340897211172997536105968216460499439076208880454029619159833758279872350464145217036199995958759145405402757209539734056387311169342343668696332499776318467506829965934375585365166973484976690711264019471838067623615677308767147395627364330000433021351645032485585031028654478928143438083305298181745986236408583950890452736811383012675723798133122093934960957171691231984595889630131282060376152132958298345098156679491849415411474432907293690687364640188426948841321478438807216098292107792003656661341676845339474147227527060823773712780692381015407124394433534737841352536951024583817954991962302646175276298252910385034905258601560550843515258265481596083775733892522673997144987033980244998106844934231190532325717156713618259724873789230737005619893431714109624922881604534394419625053229536118534866737792281653790551376671244887666378381782397814767038494728235319913519975121972626260698281783297420691669668109163629751956800439238816917433709542220937821416864121987985378425878718175225364912838827848881999340466030213804098473667984012859561406972132512156260053352857532273909748929423512463668921945205337927082223163461209853625060170225041795190473567157568167565260181575417172881864609373621226341438545991077894475134790662342199454023042923345561019043840718711214451067474160607955804942606932996808168215453137633936139342780168072742629820141118467539386694023851055290359563638989183444246359373755671904972578942151275930675447844654938577544036242510897973955870639540760522735557299841216257047749141241333635465962931685151583254092996340909890018014442235274404063531224806941702135013492618159261252531368555488597991549241014911556231856083859930197744543499573133047928495924016595738825652137524804818684793150997851146972767021644845878322491356835109326990775504431496464419210475527983006620044794021752459012792995791309106641658863802910104748773431136738652682032022617476464576173247736193871574687374068197493780328821646351206725924691281103301765320257148825817870785474028513653492524957167551446765855593546745347854994442076796251348673397747953594442401388747425583613049437422082657067984372220475732946242180420185979382837920831199187799358817334585587924425925284634374601237647720019694334378083497635184606276143217799421168104105526571406251019171036993827430392364216915980234009248795307683443407752519417483785994600331650207177333037841094434590893939803837574574500126527288013665375256414361768987284646315898326029612237374686631873453731456970424678493989844804647227294298823323935112752782996205652154442384033224015226751728895274542723771893270470540584343312715923391554207650604937538011251594028844168038300887237496036485605673860807354314346053672457269806019571804369044993557486384653686606156639254001084596014221765207728378974643327225445364698693161513359333614987956120065707466750059291811015787143533309927295394278809219341650371297570790598415920031771413349355643638802149991656542973276365560892909850018893959869532149478160602492909870525949804545931355633154046754719214147985318697405687684857517112439680484199251286237838197446725193216667318257231119490397100429869250832345200258152595362869528753753367889454783973226433651490046537489569011708142946800974689908806237887394209844209497891062227594170058766589905852851886025142366203875956220527536519693452421234935260930441407396855500157731794077054648782974213970227130906420861187735645733497761105556587718302400159565228047396356914245175523966607396655161018089712434034984097348485831255954631781388045384797228712663796900612621513022231360328123920185414118265849567044559739364417193256173370043343686650349206236265237505619157986748196227829238012992766924422749143736720303840695225777143959334790517972981166429149817450172814072539872423089646018331353139612318287889083819796545092473580991273481172072921747700723960492785088275735549122461386383381864416876534308327369287596344099647460199892626547229688617486395985416315206391212898134874525212998394979170557866153188171221279165660925767004481124152105717850036558909585277873670522982700502073279434699823272145859806514964245035577539161737321307655386444780300593017411655008669834921339268148752820483308203715258422255097455975691390013290452108737145888614704297547959461778172607964632119512557490942015046125737761996963562804242533507457500911947404086399098839982144516008834625922795885961431509412739326151335729632999245558043301574047712118056719669474406564744338066352796451570365585885360497843430465217848213282563369076611969082184021562023821628977490128836595944920219226330619320023182102425259293087263894651309967647435595093356680335047330028699974238173591355479359990763188317365899178970607015212140154166346800539629004812949110124305076683649524432611168112892565402942716237452440254524986244911877348256233864528944602746734438392964100648772824031609611081030161828450476515516584275858759050590615147934898990937034577030834392609637206886411791288195655434692162044759883901057521259564711551920500131816187727862815866248518545901299417642745409219560047977148395785050028470976040749966997025927557999161178167023195538153000421146917177859499114178343689802148600347920599401491331987417101284970002866192426008658797813204673460879773683849297495405386794603256645395986573393885602163326894481138860013289055527429297154812165825801828772603253042612613921089379816497447732415654231597679024296756869975603578706493142039372411785412260978176118969439373387258127254614963924183671525270686316184145823871331604549142109553768044984941113561301970078313328342464785258190668602744845131639782010154283677466315859625034823236197566917674681661748017273862526459842301703172651532824836484786480618357015751106360808862565944760130324106905456773806084456756525426738678599322404122051920969198077427900827186416113045548311274660984354075465502323834400277875181723456856655351800899514723300829528890065511104478338491910903119780704332659573046483309177921025246658663331673942686479939345470594402775153606839145672642649618363282352550477781741647926623116008207814938436393364980045248001206680917282985794475504404569837166795147214587868355003888271415423032869013578403389465906994974925255277571632704646420678105407211569015991662139514055556119755100297595348931988488890814761285918173015639526429290926204749201224233355506184932254269096759563738335331847994787824997018947241577802097440338351438048795659018054067123703906393703487197919637073667798103623092794485347213389134489223403802507213627427938594486742691658943788466408505834806431283726575345983690934780824656755167514191575738140300425693308983758106251193187498388161214459381961871467914930500706775656898640234934437953688867088064909712429363652467577087045364018438861271440331787975089349055804322657186962524416373934632988539293134907783910526240248643636984231768057218067769874500924231097617132146379771142078117341671177868412413303539977305639574173039117218379199924427840465505863249472645499337444164353771391474772633258475989891754251406233387966125535048292641107647347045513940640891271322166096548739287049372706339756234408109815610524334210825576700661436704922095507697170521730005690410625081256984489746879025622427854917747021946660983146320462631959199208586890537106940681433149861936017549049352515854406113817606065774834465724495658431891079348275929045273262789635009281251789458434211784840825264098980296623017776654201923877607744167108198077853744747889995468270232499951063820472180493598351109997068920900486862882541457246433485270008153147944829775771632487092969967337673339790421055828029440674838190852178229489851048244638915926750014916843650226872705040576109800933356837092026614221568152957757229675538609932669896757442461647255187331855166299750532874337295141611475510174618243612031792042912546353961021190642388949618845875984772817463836576428423894322872458745408982357203116687187168901638190196095323841530215308651325702175450350487030285262736992493049151022374159320277879352933218664955610472674580235284440810101175156031701682288823826571564384255562228853142785220954597326102956677447979962882407870983836125401808767049438731211458944414086169905884522692369158205404721508474632563508261823790935093244291945858596891015086205851005142343615130487277314683650212865996941309667967911439838403688466160060192209625614118747572756889279785517326122254001449708469592727404219995777043091635615965680992426289807696399570301427688752285115835465618110467187540953306439073625937202261497218739251510839976337442676243499057331740408810434429753108728281331054160353921702699991518219736644860951036934953039689049789538745904675556092477523441760923212865867521697603384509483290493943261403573220549155983013436047566371688915067264971588183259722759692205339067920659570266872906553943409450755312223059216482258483218546192374528120306373235373142814919972653885173554450969240406807833060244844461276302118172263556736493849115329307033920672975349876718495249761976251783542955822221324599458697733974478930065928659472889370139874778310089570025232818575879615658645135998684289939804614038444502871943521505430548951578492194333885450763357312993387226213287749893960828066789632768325873803053291227379412723681111935508280322880109142779005417015787428723799442993265333786022807359086009548133737261624497141819139388670476207537649224505277452862305975531666662905639070162765800150356391928401707541306031264686259011597590149607588857241429861872421505074429895229276429556461501844535504525711319292625200286473003806364332404460654427346822441175879478333413725859557559593103361802509751269795669752869744113708175613310576384157233854965842655910239231625014607646705491408393965500294803758899044028058565354469816594454451902326815633412814403274997624182675529867038758382086055118209767263258732777662732363476622759495157023425742789548491691419099245928280077525273755311314661043182492362779986858942952919962647187389820662545336942152107507744820889484216849501440408196130662507434705901231628635152089059277663083460219806032981863113059901429927224953086950441423093895035770664766123701906165020668802177470575644188108312580433081738867837739798865113934008787961627568094005407403304883853613044802832571104077993213649266458284384307747934464786346127605243183750594876692991219026795097479569839372293567086570858044273701012453845243621398221970336681189443042371706111764853188641601926596062937659619510743499755572015115163377106977643958645392614856678646204402700413382946804474796224351526082441178673526221291956656956585059747194908694037966057506617386218914813991966007203764707166905160672290347642292914461729360616253810278831062101350651266246793725269385641305183720299160135187816483455046522258261054720740456683351837526295247399612965585918892683810540110505333908852250925010375526392355822164249812136991700010078585991012916960341661974713346489942956401275432670633070114559009880632899069832844087146593871880763565569893898982975857823819072962247092124466742174060082068849241166674160794329346318538875902926301518790600263816879957582266948873650570568974224428487534888935268756426518983268034757551066137323115334399722267705171325302543997502437622215891172984166524241366040032708127556969873258952842445353173981412591236854504280490356081882310343840101967832285574082915531946335097077507851188972349605398411432879304150715668901772807340938678636346859845181729973870610062542905517801118895189247760381676937114393549960153909095340831585864038844393769914666929270106647831334563982309087337386352184868734932373592964281704484552002511296426576477140432029453177008188407642488547192066023989522003728761652176353093239617773242915192563567464862327132043535654886388250201312078564426803581105041573211536082367974858861165765108650706131828608433506161481463989771822956596514440738620231040036419289425192741606340103813767141613703628100544387709035858170688328275627615931067396136980708525204285057953148771094707482568532077575590007808741988224682291194274919722718638129768342724973542010316424140507897209730912127371068817766967367695193760828062060611762535287414007924943574608834276396814596055419563458244664202888359563910724117182619571880735803504918919320386497117178769313975240835219308497333203136338942393237887605701791785002686809081789586861536390187392418519901177717618971482562410370834675939337450608207808051717919890707272233826025927616913497924465835572762636268226779982317801299853130676119768392723746246108581510148825454545891828223461167533273946159422290185983671597969868788461436198058813346332304308728574616199337340442477813612580861450247869666149865142477572459432820275400211703283055216779234728057279754875715638841297531480809111297430181464967209487770673709444932558293683423308837298777121109777033319710919826418536202672205707165016748288713987464290676971086546607051127856810822225768102043119271314227664238003941266164617509599255471372171581984938468232393066341076715268921037429707517983795970846105702514667623620981974076918346927674220033042383446954672537699312492690249381451919862003856616082066402758391370401298529139912048527932626342312020976070229399414867228680370624437618632468523190019611060380301917980600575044436003220653821164583684187392741140955521723985955168335306194895987837693309929220977680659555476294371562222888110027276544325398871033157085276643366461368694121996355771060738092378467755875480417090436049240182717210398946137566508681358548025052529408733084907075756881349572291629933270157721458241848715165616943020429839759874059187315043439155644054816866374964581016045552573736700384285907594193414090072739572447890887709952502111085438250856990446453646722142337670036921573312353917546092822523886644095097366740928843913228404881196788700996779248937295696972076753042417675174996864574621410947551156791201026266635538841541899608652199850015990123656511633192545550095023322253322699854306919498036866786551248063876577649486699583575260254382658349107957770422517369580939918199329903051741397479211690440624855117445586578315821968885360603835579474621923296534637965604593002847192044387017163675251121201372126800206284434350261098914799219956675971195524171409848344266386844772788668480840582824139860998148114606167009541187428610995768789298655969394976175536261134819347591543832164253567127280063906858812648705159070164471730841757335352558673534618601902473600839846768519068679702254746859819030903292938051853501955339762413715023972735783744275918570759801513006110165494377427750178653361559230931921586448664110483330410644629819525230071721412678047671263476146977751320016149131781312338708756877446627135551827896739895117088734577451837896249291026984701248767159418463982767308529394896477081476789214036732394053793868931346025588355942228078333503370828905755148852723149969361781895147308223181764171961169126539414558539972331191714663711808246512885690723153900478810792402461211590220756991847501757195559800134751338990077322195554744705208675607650925059508999052833235226119902407725539763537825631049035566141507217451720922182071829872173389274505594980463146658324887869365697875252445929717849573270969090499776263227257507559302285542627217693559204692042918087796856636357091954466125241395130154046010556734481178501417903014785222435833430061706014461431387700642661993221697634710821103925908885858663021771284039745208310202804058288501305170567806161960945512647306111936081798355583599631033143469427137577373915175870232719168846546787397632752218206540082913573247665576817615562312596045638926064270909232139315901858998183840931626570147464501880227123953106789353155828148349349917917946419276853126243602890025073486660461824082804684933890887340896051989756182953804200354687545611924185300412291766677137797759133817587400985314477762167358554732929983477493599893116229962034911745661411780165264154324899418353998257748926036715310153575330265885467170035596222650517799379290723700600555040437141148649385406128809001401529548141104978448609993278156108125960068838348011233282465287477262194461581061482241845843101779089676524636838220152241030646834800708813050738441282445103067297681537020026256389704920122932086982725586909096683975838746305633842686421517603372620413536748757571862525623827413501322923300343583243162484144040858265328455664330114587589681230750960132837916690838154465446796784846246932797898121535762981847343271432651799802998550430717410474614579826224275074752810975916168216732446087095291160822379652310323797409328588590987449667218525947763064066650111360463702198831522503129035355354955460018384368842422448662909036256619262546679162506939903395479438003416683067852250787306926778211309641394970116835822156180164605118111059738094102323560756220530302694279034011662923133785690120240759834097752996744913280553433176187764962442051191495369688542843372695495887376853323165592120246889248170408381582856408440157619965731755994969434087295276963542733903460423146961106834353010747437381775350232132046126640444094514542791870586890277052320664809493996199798441799961965128322955935113163825759705787271141994118119474359815223950239636188596061658319488528868706194506713605150854778823975175156165018573735637839959489232354574047545176782706005962608692593955603343341477649951783831420132261288619019600251335021354994424291063492545997346339164350843998198357643311587461455488888722130846534993851700884880736532017117803977240194363597393740816028986027284258196112364290501465459358565834528467290898635482109894144671044065675081121334618100495288310238109852837252583246243135510642631604430405351178255655365102201048291351615753664264405638857332263733168050902321048616241079110643614333036197550077040899156083462996447926982057119817119533146501612456305134531318487494513121569739819494497510874567440170219128112787551400951147026434430566156358417977308737681527783578533813194478277173813964751531934395829757624270365218745023494709254866035279326800616194706789985787526217863532850676306682899706453815586479050360072198075391753184758196850490697643293934213307401442242389031818376470744493250605132265601361904190303099826287381187709855321362107006816230802609466309389847055475858113393519907294690433125490447382965424795838172746615937735923473188796261331968078400197545579500679550153999579906379341366128005230557365774441230883215421596601640008433240108241605466963531636754910821203016482909384722749028632912770676240787197053727197773452309097784786020313322678278667399059533845110551348464954790315020542505038247170337714398747197657152231140108800831242681992782462139856374514851460441514306869781259852806406154852285263082288637320195571186891977406084037745720487206498654184586706945430307339102781128801516970857713748064985213326035217062285650078562456695059092460405148971643449722975028409515587972636364434032233482694166922997529784800425885389629763091546433845882100783134948246719378520594071287222485496687275300498362699764055874834920137285543720937154452925501994145247778337984161834793827387230738288802246693978118364570569189444413775093368426514894843229087612974595278952631464522438357623001521023199830590303503440847817575482730082919523910911092643527819127516232185376126366717830479509513755852554776717740493666013411578571094525539872797821114309591665603319418072402553169621587020849915917007378091116036355218109803918967036659955722221357467243545169829390028423541454553862138650205394924329520036076129607936250343827241428675663807466835552476991225534497640402706389352924460393956158918051917019376985718402242640166493382385173685139192796687539715340351727189886547911200825711922099799235035804794967834457188059968602371834452692211017265855817933016829296128981063410160219200573131497941162176811658656023760643170104340924809543616918303095749208911744792391379617285751712284554960416473286663168189588163206159772082887547407035763985376930058219676635490939162465024843670303228011532642907473502331406430261940984086222250931105784288471471471845912822462878760309898552856689841406259255782424466700031102127717150817748292888654159899093896003297386016852650508594976087902171635982032861446045553674198364617737237290893813416686386113028749512114960250074153618290934241461321544206871283648199882726136442249732083857387576004255219637200893003313485616025132646479879035560903357708862895239512235866543004590088901832314353313318413600275046751532221752224436908478791158702040890668889638109651810181652564007013885587829358893320280394393005632222928154591358742649612571940001681231664047215195687161205531844085880686345495543714547113525105872070097737572742768635264847288547365371439628121301310391750979851908515533018377619843347782073163956148209958259413116074436607166568691144133430942727519957934762379547057336007195127506107468217138436929741734187704172473924952167529806349572816679385225031841823386875493886153547427929827806866530835350348851742457764555827363375671969960039432594029762776024056320124351229240258720215596878550078243290131317280582619854673798574832272684515429218425741691680789991913016388360919250787740369298858122311361994456970186741805112231105932004445974849765590902281509795163238344335976846120633331816245882346902649304915952195309527834018455027692103264017333580860065508112391820921453419152122606180064445172672550094813491397688277598198078233068184218401115145187515361621423162475794738378867337877481640939279311321048690050359624283959162683187675460052624564481867421833560360206287038905438856368611088732711355297157645950873531389042798154000495496501086889387291131648146018356666511243340194431620377299352968824124459543403863119129882815961420977136354962228350187606840376625369526519551436862962851013102121085433915909604053245897364245043634331905180251851052884009834730485834133241689206702761724791884286924167007100624115647361510121371067094197031272258881615447411505154243608117276387685865409165475398732418055685673359405673980895886434461529682451997767688047127167990216121803464283254247194982153770208142222086080136637679880903097030902809935393541282439283559815836903512058811118535192126896877259575786410643133389451577148429701585710410676902326617708985772757396381784749467681766372966822325514137521572239358206657408614904454779043266879486974536449609424255023348394546941493985261520917261107957425917774139993356062094487959393317958255523459934345437124651474416262654720628415708014697907253026378060548739731782563836507765936877911362675288117566376797279953276082084776216946119597622305826458825637920444108600110789762831368994334958591850791732163720746416644468166512772688378756536586579791200595049048395773715770651904256111335829998870735561816997687488630379022535349269773268689233046884746124819937920323749103010974088276870506536720568350505411462691658317858799589449465406168377198259528036891065533747043497200534247605130153061933345909530457899648926140317466097436768780341003114046536842649699063148233149365535987211887305820652826101382644459535581587870566244151320904765243656701107208439281309910729495827102354236328822788125741503177122424720719144917022088571492817715451064501148380800310869460691739609000925954939755573097389163971292299761264189142986425287378827933851551266926691662108371633523360562660179149433957581140125860852909197580883445509532373646583921060844669908614374197830934274277981281051162560435344738785299686035803860772856382933850240571129684704795433692095272814168721549968172772209769403884524013194595219963458540901285820240626850767812593943467543609189201533482919568338757849469842507786767735386018925016546325987427628239277629931504725011546769596221237856943583771737544904430349490746278141851005645701890491404227404568530337161813702260296545565812679817967683575973318330976205275076004878584662763934142467336664238506520708515756684247370267745891324670855403494597346205221379735376967801636741397047639275687276826569197564350664995220985731079710828984463723529196687641343151072510772710970067101710695226236483742186176519380214063103930762586598112412464422976936947983637169363067625418240344212053178007474730560046973108024684366869571687913877113299771104384364000159520590323172985529273613123626761696281785458848955890057383170921967508102152607994254743687846225378290425093436616811454317668244434767424621513460505169426248091095210545083228834485209808044865295565448165380822352237768752699098001576449760309000430925190626328483060524106938550245636139025620967302379119664342229967141831941075989570740848468023375096362754804577091837583711175985650432729159135659528880654599988045395310978578122459036770948011978995099699196873329429518197494399649313300684258148700172038425939870874091652226977301180053705688278549534848753031986660468175971647916357926534588234669556280325177477979978538645655208587658069948611484268123545818566599355227165792858333236628935769416696596509811781395206645531028678713776030853060217315057087227475620225164498437354494370450443541535465568062847700850358926027559132415583484904125445695750476952616342867722415454766263684816846226244499511640927298529159465776283702754193713953999724486253735658426865797809271291180551237115859654253241964727287241864073237915686059092039677470870817371790854472017075191902753740726020447719998814823818807447586399898652291066818057648452624385350340463771684508687865511436152679855630512085292231039850504864764842043040461371891923910270343749276464157093133284102229397435187814562101091977774418266760906339211347907868688032693544674905559649183338660998762210033643247256470726355424460311550003617098514369836961309638351467200424789881656536290495857447236784022741725076416033275432473196847362741677895757274658574424956654478997738086945196197434472611650909063253498411656198005540516667634147955732083098049527858371178337739187360293890513613021636435531317277596332360638693001355978046443846476830978652946874493192999728090193994752668898809023278303705516124511642067171426030653587904102426029132697372412095565475973817098232893851445791909474323685906948239725560356696528354583008611573658341108659627647698018770519057065874663715783962080680911133754504098823288481672904690875122786559042566800184286629693945228956793863280409911311658922605246854406460034154349783670502882310795325020728283772938666741215712777313288540172581091216100120308098093792538879760790542065731930589535883717753698377112010268706031353961269537028817727043394392109381298750415560542768481812707537320226249639792453881183447583264690781296608835450053457871978948971739813860357170042185964435334245286474741879293267801146978078454321266478716877125437609533391404816643825177762092632009422260375423890978871710745998064667906997643613299932444151493667816328756547956349798895595736622068157629551762112606369860683286300897940141059108680583088925403240214867185717680841392324727076300127288267213436837631880579770187863125151975692458619605312268816181140352248473690828289788210216656940145916476366664619793596943251549333133911578039761260499189453563236985740503239616085521423369926297458285590920549422820012549503826727536442570149745121947990490377187898049011545104523587951524700648189049193467171524830863043187498540075981496373517586330047038349275088019203422491465253106845882945112556564570727682455856331281633173627953548583346625140287697309493015644249160993835961004008406360838058423474807561918175744518349281263163290103826226998688030595178309926677432682869981908590418917300610670302679057427121943259001016168513019347321188290054608182370276699773281062351426012819953202058856387323974476966340434137784755461451531235000863376522926960877457581073895316122104077110996065277864519413963952851904010322219915550540607979002468558474940029358495572122357202729947175804090170213989939491749592095899144922867752437487879126761866489245537992496407827264190851005290580714640721827860618948862310434585099808205136061229651700162900600599034397099606393045227546457485993764160031572654715321173702566612340355283740181789983571101073447007316930183036356111228459315610895682931106219390177574147035439232775686930790177981749431748401849014817129867271493535531235141028643148038003502078249449786337332858471114108387425571437673654256038027913312691233750831422605429117594881370390173788769692386478693975547653773501495876845265407770998638772391737065186589868620731486627502765280135097670750247749743543038972826343037727786872792538341490242181401269283932500296734086698922735442919915630887283486364623877695801682247482123829074881073463820916096676138463614122318377014856447193420013629128954859283333702699742860452084464932079297321226256134052637385962710147148887469611336829334988431271340406449000036011624876592404984814761427270305764490511342761903410179470220071919196365639656748949998038355118420637745493623866236130473426780296039599513689904585853542911258116349294335558203886092602051440767821863681768225531416321859210991647428025094514799327852162878633256073277712290926827453621048676691186908699783114990095852030559762838930407723947170254879311162134009876214812104666036791414650903802924219895474724199788792482837346012101802680519272032121663769294506214950735722306179082325886480182162313169027096688808080863484179942767765894025842208786441804517212679695123885698472303258245150138271929620467741592886927194447174782346773377302851869210161378824786471135019338933647448264677753250676412708729573391801059452813700927050282878460452250726180951456389134416813862241745706666731281238067228532742497891400838401648058810149754665829819183286861816074406028298536201031962985429187977567257908686129999251270900514990874819404075417965611960438462065489601905532734464776633255170375165186121676439048628379084856333307705712947464688741366772436713411665237577240289110557801602094979679696045829853326327773880151583244007583687038946793325866507895590894980668620285288732508672322140673128055154729456063583107027847187357209379492503568902471059257398595186704932831960092767181393364139423336458355934060365902273590485273277667036262898579652226794841775308973046262233246002904469581461959780194543676518741031944790842894748914236671684253495184903683688133514660221738533539974981254447489683225865109157821775244796171351741217069690397810083509696159211185533557927387397579261659092025756532137005460757390294379842338643947993644851431279240700168510752020612706381768329304276460735077682161110672094580697039273430351358838623040454592527256270358538583321788881623027482948082155809559921970653257210035047169084858987729213041621336538857998453293415688720218790357151335068737694131380874996042328370082092701806362731303344135228243258438510495997437489359587173854579441390363743918857169189687105759702823560393739317110848249693624967539436119160584693661681726643234368650822112562086623899542383640375873302058771376689599403615198365912493447691792327062919749898591651779135039381268074817802232315231627674734809517178782814841763020137559588153951060241121662718096510368674478777559950182438996712330602104605826844405279339377466655929680912469072097028168300672509305032082083326025125524934218008348911077634147253278775470256768446252038373476843546229159910693867744030373288743041077201071277562879754860482926572373339402246969071454351901820442341774471720842860273667558311350136850835330370753289039158234464119437702815270069012456467969170360740854142700568844982498959535121566067547642038085992457271088428018596679952754303392059787081369016800166887035718345590277610520448867973542817572479385626762139007032371811550231674524241515525927061595537605183465102699771041304793656280393983580217011387409289830432333187935118382739795968117605327132094545499021828250761341683267486280523152026678804579641048688473363958054254299569895887410060830219044659084248633596392921779638449575701958326641397208339213729008177306271351395285542928173503320603436196612595684461080614427361374066618684433890478928319628677661510288733635348642468808992367007723104385129298796820697381988706533321027983511746990868549388929363599318397616627766921727732653187130488455995242843765578036383505195625244327702282315739135226457025843056869101982037936531155465523766895596202297426633972011691155681007837720573131460337373618500091563164623619745913860167740584501812391897261760251443651284796698903555514119085073742175875463076710725413783992257784047788542739814994248438831655225782123905755520001489610741732727121717551216972076130749913265107256700383323590615838984209739992850288676528785568500414404804319358834506820238455481833940901843146390355185969456535569236290837536369941561182898680561649455867329724790126666325359923534458048519084757991943703696714825823732870192382007552080632401483352718692127613487759135799887284100374091741110361535237864612872167679141952399463211798448535528644778154632464441316758579165484903331709492786210974494414260540643301297312621738861186942433942823218853801976788725073009400152244264445207886445615999042213001928018187267305477946126043080922563338128952985489219929694950540659149499185519922424489978956596932813581236912977783135442609810646141841375031966691943123258943023566632339301787633474292306981283690490952583061047171818614880174222297695182727952512267221147356729982921151048600458203464782215344861090092527860178038198323840723539877837765019253057289589072835236139417289652399463905011152043402598060233399922790037243028313707779519853928981398633327734379261903295283806756470959709489997064748346792153198695963969778234081615682201405135956362792437650177642418926474183999309253292691518041183921512017388579990359492779378368320149439330228070274433748506871816756375731908865381335677333111351794963925672820060205357110894701060396990123480827604896877384343591700927260782758898941041848196038882364393523686599093212932605713628780254168346587157246775891212069004114159339599070108833106841040232720228383077413301046625289803964006719579006630509735635386057827487047612374789639240375843738829991269259934776509106750435429463440498496053707019233992373969780933067444218084761654838980770283442255191292898416265689184239503056065029411219491643399534456816161605799587299569367010093957616498329665634275117892441606534419868238195311242012845249009730529630295855220404606774609061594000463963909963128651033067148299979946057201417394922208734449062645239655335963453547077598869298382255294267683728703813156343426292304223865691386878705065903230121245041338930092036846410638524263846159470168747436008449930176495532363294646778439101802221839037148247293843330856093315839810166211334023001321559576323826981662942111641749919185785378122634574252730290281097885809388233854371958959081478700114735201367519328488738740918188905444143259726788168209251400213894460953051892283662244532442089315187907665320610594512422091879039967371172312870307034409434568213179538791409551723884220015028739673484485757555647125014086031450558141561793065078338156025009472047620980858143344178517497942739174741284054004429889037807660807710426565103307968751876761716174740640691898144999345262967223819072984231472795585673324511762817083903616529643932209213744650258022730160033025202844327161335252152426415928967085296078315779020948455369552966984194830546443359638117050160804701620081326541382062017087669270678398115486391378314122279927527971492522671807769025923929952095063297399637022869078860690337279331487069297995554914058116998702373699543717905531744497078091524169239210498834929130339891510461566617275722808047468617501429228208159087265511257575275424129891222215590043374508795468153728365989268963820127771824145327451379404970232377177365945163287750831025625484299740164660977114088254257559856754754044271446364888545499851929572123253719319581865093752318937478953759089302697072017903554492674445714769236741069570269414652341486677540239362432452748509390766606190200578272387724803040328208255537347469933264517801191865259784886337492032229253678805100720199189763848782721565452956831789868916204799534243188935088127928024522321607300125795963109064966779127719834511695578704636762116205041519627258976040758463420494333290509208962444639692772317782518258338422639642729972809317749212563106503399050989944294719606526692314649349228081919171490653350579732864114397795731594938023415179802226699746165106645829567644609763756086518664768345585212989255436014001358869275152042053417098242363008349232181444089770297344310059982353116270797466626726315070248346639561458871263354031036145683330688766521334746944415254485765379736046774522058894088034633201036017991707810319523785604119026049369065164038665188890991853255006760582933768924004693369578922072489565375742641531166265073019054523204146367372349972842029607386756847627287603965440499983416560054325708388678484993576240922802602479000066406669559637772916363863299602490677755360672938129814372989815201328320820198051104678059481828036585860764183504810163179719467404937911952121051651459194573382018336149513762187560720877775847925077157816438315257519522574405094891045329102678484195910727671922141913977437277406726367636802191807651951353307374777853089729377669314693988561523890068450885683951325649022620716007791367880609716706652077204984986207784002158116918680813328219772766978362480951697839572425531952111263558177343240128261580426365381520201244191682274415027154615069133527049930322208550244934166235884372731105266165914418403143174668042324778711995991149500222960583316247769953861884696904567337974134175920453964741000803351596819308258220012830118657490140351151503520342561362852890636625864084688266945712572697697402104051366202648260773467985351127604774325943864746427389718194173958702242409324452053070325611388153334233598251746689727700809140122179849389657038561587298803824999429906489380986063110145043100218076076581349953412813057645063383933371195736479954342662661097173604554870335928644268067684408495015630400791430051902845460645126050327187506596399562845572769889723296132147113832625221031928802563590862878299676368288333306417717091515913317931758332310470297046168666214821060086839131549498558717864816574283680462419662520454789070918388246937355747591191642974799458892728947561346884595021010378039582196364778447523507980244150657442768252742417479073730838054243527834709375648886883393966036273266674712555420304349647712725996739120939524257737362629717487878015083486359850073401470586196462785844387166098134210739403593711752990970760012968623249690018766141801044594852026925541465813551003114168598013025625837166667869721020359805900072846808574084970205752447089495558262538579870207155141304990329327263297654278311571525208086155503002635167101731748419901365146561387019987415604034712556162706748407550991323152145585044232237121897561001328421642248558710670915710070196841297862264767564509994421172250229545190221527454061559946730972055560154938512338803483714414279871194066329844269887315955908829129009402522066222617468417315383447834277672075233091355326786042949255318615855813069432562131416240581483937712501588010542374146872419662633263455246628022472362132250905153791526488609062507491052182713099693512004552900099893366145832715463224709790179581347820887003449190831548676829609824301814266769956426922699105527961931018116661726060234156586480814334192329231565014477379014797394106533778318059813252343801434104355450285694242857747108320381069250960273610106998807332487696551946261754617949645812170453595977101039353401882896216700245363081989079993366054174183491338677716298479825693460710133947449253441097816138742304305417659961095185150744578030526876434372959412059239200921253055277445244260547189231956889011315850021029134768472277865043812847283705847674597340569175890171868241773624047175643311335879429863744722234733540065188420673517260209040718713398298090202890596443894222767925245345995315386120171156024764668814341012850877879963549875667525505074580095436798604705135416318349598523085244435586734863753450842854172987778971823983916533675481195942870582684894156673899728941510887784776406335569395707247060052392518035370871479752615721327184287831309738262686112949598374696404733362695556530819080422933469099867280586308032102137723008354659784031123643844306574873985103741577070622671759521684668370834586881041319092509817241226398262085576280767172562003134318469423745752032499379434754076598666345183789509036596860449887989504415210419077475831877840976544687278229668599268262344772677784282622176217073149737295030153154580103781039784991016793295086087234216418187103649669702367580726295192423507791512964969143637829138251452368426902456358872320576969448995405811152238084094469367829043326200716231015144532281903589242058331608848821663318242290142190161723063984139506922358802270519057102695626652688518309967677894494717768403463706814169624899433312210988699523873092455760478581600965930454342525048856258149182749564729131380171180648049673182988606858219765351696863365840443678306705244718902627818006429740482214714419953896639746231908217011982801732574680815364405173661007650401871987148163426207998830088340914088357971656684034130717807422793649995200682807513486875452976042432542609004495925937871989842284301331776634368425268777014515652740475204707890476885419962165993530036910034902394158445739025764719206343787306770804862262139835993385477508811143784099022234099093738244173504469013453313464574219708891966289234246842477939679118965465754698655974420922796507995588927020127284040494047334182259366358500789744670684573534440303739933613131245629629420742875139069301286992680240699798744892793130465451198771351101822050456102805901210167075283043780862749760960781292451859887224330431601800014931555739165390299215208736824623325083671253758753761929539124144430144636325761038795246716110797131312606909041309731993511770353497112970014401241124350393450125915325819230205771690040433270780857042818608297821501862857737188177319762795388975163481175893758508649083536594084789526907091008298305389242596779089555543026963492078892061619572403455047811446574510165774984713683904037243827527745285783890745105923089220727545166509189924864913184190172523503315820922020610036518789061435918955135517807153313072973250759622804519058700486185024189427139258831435917767414597351391076115256865793498237190609299467770029898091049464731124518159119891861136936343579170097365777829609466516948910058952856810659887843825793591289597721241175670775118280830666464998178751907940402749468482741587168775265606930080617827803735043351432601303423496337593661839187469195460600028260840458615776316808911536754080212633949214170828014248474914354590133954720971282564798010691992660749893434065696526629381504061091866837528451132702993591254511759613370945920061714812549735874138467565134991642944283366796268394090085919386821664472153416828762725395472595639735541382872588034808996763659445322968082543195437683328709161196295047315605880105779604998568432800103791884011126416942750666268058218996990124018981345732722479262852291344053498442867153204463931405557878137413162635856735834645828912306594150812325396991595337502192150366287119696464190752399674750527275784669733059047793243978944725114200953823990879023814505276731141198591310410167099684903547563102817486288942973928357031233624223007252355427400068250068958095535299166230013104306070411171576901590844107265250308085620861969208723138491778365434220308962594308326660187360371831853933427277231626435119716122101295706877250389661055423649024561103006484352064726449896194815140329479154364645795482375953019001569268544053175531219638289223517147601413661599433048244118222256050670491649028575075120305372641153995781344791465234982672905647852250381564902243457069777614361499106965654672789616317817414641257933672076780454825203053536668489343995271733822501128838420504705321888037642152893014876794252916762074044626655898640085021545260426224343142753635264233848188380115740756112812107659669158118261335482713540875431719148788865716127223914065523532946277777456899680838989401997044371991709716422987379899039518653206156371703338092864002265160836519577723939597570273879564752774012836249272910494234414957917422537493820759956899019915134552232162283829103367357247797794986324694800054530585358720948988844415148644254564227504257388622328772812757823001493558691991252635001301779871026366132098445534889461853029381716252718630085318217105249047044715058512206697461042037267025399141897846526391981814892075697932714928348402894391317139626314896036506596484181262295787529664189378884178436815311093048921709865183781902599491442514641414975245652699443944316507850780653213722212407999361038301673689036258673370655219337992007657810101457479414285404917891950209911667191455240263822447439764519845004178184687917165542482680934035536104029616697685441296859529585351316336248201768539598904325426374248921004095923967746392829386487076239176673876409141597844408860628328146184518044783793631462647158916640337536039218562973974080068795899604617196229113728398326964458836879900530969862554308271466974285797830620843876559356751028515322696979972896983623896782476905392382669281836252329107586256235194016575512274012092402472152782377778575639452894055993121882265607166158709735632665173292111570059322951424059626368924830335102253793086787297132168159119802663371047638693879288192722994612079475607867355568499155971137513910714441458340688256915132442453678858610275888241616616852567843727482965131524646518391791427628949095215502251386813419577982130779729988195406935747228105347042257318569440454721165756593089693694008614921384573827571061503967951245336446428550479185121293826587701756714232942773807338441321657487240038133254322441935818316562301415725577339415033395391055455088571062142311712406339369914108409285706275758736428463399911684964803452987884780129302401027077685782158104266586329137392354506570870598295628780183257476804875055488080063958677367364375439517874901106460587648998382458777914925525129525269318771842100941525491533825677844496311330806746044499316465419119885947801120028854443595158815205628204363157344796997639081546425766113907583156709557577637712912014612725127872716216664999173616913570604463046043453756226813450254638423069381775621517394538698581740251857786804353593220126394486907714477319984029081948500344596911787268531518404426033160905991691080687734502942271970774006323317106410086009187483992734362001092234035188574211590249104685126306013423771616304953678818150900699981534092891402401487389357455125505535068378184068615435021054828610039822607665832659943441044765709823242033940960438222450155536950666893912765250438038899520571470638281004457470310531678515022212248531356587832666575596329714358245066219108486956042278824071218964438848743665059880706211119389767238415965946211882419349991519973906920055313074221267875412717843807266911324135314963785921603095600628509251313798379982954575503247617592043676015988610342068885828994544554505799288278395132408833106501548288266134305354648754434889729775669361224342597190911363843651173417370691443275476513462398116480441497524968273272966489219154040621567235319117113761071988086138862147470185792060757036874583819765300832418212750743526486044816169630610242838346784685363871111184989579412273179880699626567990971476540169253020841918732159326304939352290396683303382107757737330209149345751177101278027742926834057781380317568930733552157130254602669339276821647889886026678242342328918299383062910968186721018626028639246034951063927240622956551077570616180465325630658105992087847768139150354249710820669798829647424324073831608542177651208643466736638123037753052197885474531263692948518922415551061236479226013299711827729982435697162643991183751273584797181684828435894921542154453310992802404373426536082913166568018434211034489790792050305515587128847237966271681218638395935865689175830669591420744207152703276917810307023328101436057717292692841828069511397148743952809674089210937363586980391432219303192160832799255088155568283360265618578966650815569330684460166605395885186717652807998266821329127522640761372095657620415019750959060890582186272355620742380524448259915145185011330300726026677079338280520993974506991323960265874394970107215038176652837466555657971551752592792065034092208662642017272836327179928383473587223482835647037019101656111536273519746069657170832093795993275970609080075080385340904011831706229440923517189795417090130512978380178917805564080195008450124415181558063942792733580068847772705287213308586701499185605217819614099545678460412640304778179735094355430703837394454837087623383842607701856348743312398213627662687480925463363676578996747631782273367937658649689681670794532379045135001170094496118031701141888314515470418237600172952659333933094439723967524265495848560650647151357758189607533574193381350111031911715242853268696350295206698714848921673589070374222296055268836750365990432710684749635997790931691036321599268831391042379318232911076992240350814358991107931305822586342401917196676059357494059478288658080886794293924595892830030847696800132253492447450363904201008858585651560268380427972929316772713157660463599861680220608325758381006616087096043746934857320523065046961827848860290359589261010806856975172912167493262074329912148273075465440954654573320090751437104088268745086078622146794892971467834424011712279460245455694136765011493426562522264387228201185803828533456950698745713431015160083849509094199663977937065806409988994322584700125733437704265220883904111852763172583045845988777494216569400679235079662513735764117473473786502522450264393265508958893163811165072604791285054055638446057880688896967182562201454497324280278187651252806207021098660254655694171282793587642128256969082286317241433478702917280519029036259035877758772304415710754421531302355887066114468082525148707833678529161359286750293237474224851705056709971619109502806596956960179336171773044581299450888560537731971668392221024000016835355250750422794165748886365854075171094549002181174414576839185232479450135905373788538364302298045702336746169894697952693472003090890023962310523383131367520709571280479135778244314961099714112041543256785226398623394481353122331053599001724386801832612426637779561738917791079210633536780513555480863590843172004127620302025585264089113753195260663179915454575940608447864212051153890167692810317661637431095007130476856999644485473687185526075762485096453037668629689831416390832095439683288309105970049461434497444787444291239252019383320824196293130376548407370199847985944482931956147614747515235723837021617460649952310933891921122905633644991270936135327058231457491397272905445620053075702035028816369663720962497449248948874717719748928757112237466728401545473747793900680957130429356736408967667905975319645287751011883052257086707601245777927176879136518176706223065837445382958747243307820210138956425586835941224352665346465588349312509299120249907740442008288261291659983931352894478550569170165482534650171001919310564227424573006187866689119096912417503316566034776314534890449113501389772244393849209031964783659712165658757795440396407496841018870149655834034396661257858809224134016662798359280247674953284320291472456249248284270116405667537069078582734649574546070827358122481255673485888366770423537687375199990848176970891362354168189786246682852671006185803519920704841641902153535348432359208854230762115567557838685722769548157533160737794728872649183648012988546659320993299339159749953081822699310775403300405774761448387962997785095791454850033092378479516276977295587733756530790167786990030136081148955352042490161971279452306417080679930568771747047019274774358812601745199489903383415242541414266359902113264324504961253998183806668470740728607659715666596266671486877324576996941625821293984776967159884334358820248061921282510457305074492386897916768014689574278873872650560844078337959605293583758818361197952075294830535563638310189698467737463079865516604558495761222601750233442577019845287322534345508356591116656058499632449030425097237561557591743119634819770271476964820626297113180847270760735201058088866328583768891926533599882439242478100287070378158318051637146250937534858091251821447719616298281335125883047586404804847475350131897923553036639607230602089997353466818135833314005286047562265409234889183228322804685938471835430339660657054507980515454347352158077189853084212921944602264377253358747662995115360515401729244194757566196203742582931900002180218533336015487892038617021497356057677605217885086636125403000929691995517089974542950596595277493079776132063357887199894277004524872478439953400425885319117144336018107274142109998304458343111485360090398764255813277054683748520451839389656715124954500310311760468468629735453697913078491892787907099428032885803617018893735934270747157705628077798603760086645452381891987437617525775084669661354194413398633360333913654366237989265839637636836579977657983059711217606657148778844876440807532183590331580283785116428669150616359598783282338579995513507168452677831378735940656073282018009225013599620528781059920782569096022239261039344155138089172184467727155501029768322179921644176719795544551126437357874987228691579669699766002282390944960862961264482135325274502839078030805256760926232164041202362207581176458727064923481781316550908621003274616347867823465425749793268573019991628525516184678917067896869866760833870379315178760379623030773234814402499010520475956122093501923866614529452760664571973760573374378345360437772525994121324293244596199905969919616820553078616821384901117945539091617053482604038553314476356931571980481582990303862388772985534983602591430813677809763337089357837339777791453120222715135963367555684520578830098870973444887432008095831691194290401093161034676814770528980938654439325789668514212115587148224149967367745862014372311383973761431193396410665685758821910561004866300040149936295922769916433749483154202128256117355736333858369652504221048380959285705155839082920625394500110431997703260995705103315153139923008574255640487138035184588717384224189946033451693383348185852741781260144132422003703756793624969861167174630373318826447258959807542967026940788839964858166232059485890088297152692735949654131623533781172084766059393649270973654896602764070371398147613759929215163352757222484164718466681523988360503690953721493015359216847810642542074842383556538835290560981816295550457891536217359696844638949307605899222420168498682177525332939165225798794682761399572116853104012479960466026092633901009357445283849975737791883253859765818573946096299255472968247494726749637217047114152500904761213600121098964784875653455546929027376858308983314482645007106882411148179393716345388366892961811185618229625766027829750376900250279174390885908984336749335384308668958512429592833210507753561238406950755656649780931484260164560554172179396625846710010415731310212791702315378106007823190255251386435658658489764970041595009562117653836352356125590089213766574951259980737407507810088518795555818071033264404391609393354903300308204631905367756820329209560277123038600501943237187059269013113183152469122739761633313092527166292067090343222048710180565959945105108908639081059865203417048978996979261829804151495328719486500722886171942388315346266060448806311247067758954656933688907825402080856773677147274733677448478017268798461426074322462533441782804280362653639548975318253387038398608676851635361275760933740538650878946576046674938391994627152613934426787011534863539415260580196156307817893077820689796799813738660305585551938170322345265677219625057040540491510559228336291883955345776526034862105813742434387903688904866446282770420862102029093676292404174973538779793392557611531104385047655846122891067312592345557637304866101344927125677226652562246176014521666927291026528977586601335512321859714619316749940980583796403078313444501552018090248167440736602052699377576894815793622083462970622757053876717074033255175591599865796982799721470307602460534715595491674676887154826667327347928142958591165976425220887890460164783728456973353570062859114685646818304451919866983162070886885970002949759982141519143009489293105099673447985074514511558083659559441202265035909524553611544395563218283029048058669289720758479459987611617349933222521358387886885555839813057111340417104139134946888967592852397058531291626280457473529125670268023523056690548228087108413279437541941968496358509415238857065319140378154871894631884422339943869059998659072367473461105187662954243181643727282837624454292398629306301703709922538035229098836206334837529720601359329710864622168710031056231814235585966143291355605922481125466134178476862098749908255873741145891984229549053209284982982323008909809409267520990710382988910340426380218221993426196893802247216675706347892832998906086670233852444290698994239302257373222793530791115253969588249266993574813448734115803146250302317575528423512832858006407383340595691474370187068718830305522114450042005472337592675275889328529275737482782920424621948201976405644522327800727379950279879065477639240194844815466439717986482236586772134465560802925500212749796925500491459348896902126062053082764222602554436366549842032623685144599109073607855247986688715146135307191325697515786891995679426890164478969320244843131027380656996803651675162099385560493413619384050118424202674797177871874133272441014637744366150074296385001212186224885093304536342966161503477564218749837179124661048425967961853646752880635867205854995456576339788815808072672930825757208933663160648313188228865759987217575414489364051976674499521409727552887573609047526744024024837698265062028947211372518406352385945710514587258534580524012851685308270666980391168764378468154367010273919133334262446343199520129003539197170335160885945652965523947871315623599653320425341326143182893434692008496517575933613628679048080297074049189176988907648926150222271589968960401616554173637932068418401002250740998312975651337014495904280346445541236751071029916945917519398438227869240026181465717220371854355763100164355052578720540430116049562665686481765605995371719529399480377777350788878928828687975502218501546815211261183322337876901070063277021932761975104878202709836776949172776100980010816345551145435979051447537801498778978119879011263966845563423692343486450827435284141804136336555936585333640309312038745083623177868377988429958276788033802863020888571458676583359867854934019941992778213390040407013727232719421147935717644126696076413783188718851358564675967533157954904191456383741251776234210185385633698991188350989707853417405213597412069971698293280326918997986613752039851461797943046807502532701783318451334425753149703336237156762490166630617632390557422613783610521837902385813495521709857585480847647053154491394864456589323536331593487936661944265638093064559302765061838390146278455532824510492956714352668425759644593037780457011425739775182299272089331465378756061055374421648120731172106880079505572570793757899300371161607739927352504237357006633692909467937295871265480736971165699316176366330682294577949163688616280247804547325331516155396616560826208707294768266025909510891191162973293575327303141111110582684525666173917926589367315405367144305945718257530549848216923544084701452620325625401740823976085448218558261255627517177708665969210329411735756788198767447434148493648673633176068812135378220751426887589117059224801107267326230941831216638628033911035943891138168437036114210870131645977512127016811616858971945935560701273821526728942020100544161372523374082231335715963808012461755230004851684451727659090595501734911704663391119912466539138849905460138991859082420437132143504679986667563732944786630514626707259229493375420824715789787095356277503317225542260319097559070007256222499511788542291359788599109940299082440649470672133129000926809627467719654571861624774515319431540723002844887240708681257810996146635165197561712724327600247058675107846592060779211654725326563865110019287672822695093612435447465875649476839423311388049784889996623915111369897667766239561226499152982246178676267376302315800747174345074419440331043875658898123658498496510298456038858538249255800736991939847336328272716802736899700615022429293043652469590217026477766977544289171086371322863317282189551215974738876670418450410683221272714063355554366990377756450711017638615993215703371322617234227793548585794830906933237391134210100624380871737121160728067411327380996222856084901215865136098516830864859165180887732281051797141697229307421101918890143939163481293758381464206977804545488814857032475807460644366303620747357902064152743302219175129853076219400452471610407082395871018961894441485841621421688362779807709428452237144468760244833851704195742901776795718806310838320878608844219945396038003848002471882899758959392083194260593101777843383677804787266947942400614180064540785913779727031153367336225640833308068877446683844542791839904546240019252067223092757903045961863132074159963753163237683479069804943221709695849548750954387878507102928067176396954071551094301465163337498397753552791870908565707850829601950632139665324602141252742881777765527825551545407780012431111861121390761931404607657210209302051413839642834062740610951511013723286101742687802544783600042554120980145328653597096456865799942548204354925613528628611356286522652482871624162466355434202504137564353127633637571398798313953629879881529737246078036914855971443249363007161118653575045338774200227550042314338648401026594513845211530861016554694510189861408544916438008232974782922549537754909431291516940597811451453849932628251983914330809541440572541422919149484219593832385545738359698118719374022197470349226908830453060224725817397002611913786927294749911631084481133679387035524167277516343233413976632600691408906759020064670073319037213348394656236764439439603777615358328194645345281012918413768511716260335247593352567540755236322917262716565123095825323949766911371817009411999593636684520768362605969347127592306976808015768595367994183567159249297699385875621635267157135532781195205064543868751985805778892485640864772846426430019159259281431698835616570593745682671624280812536248319245865949019925187621255126336511425564554872096359333313204845510898108115463376572805051802167094861195622163709693039667435263383552017537802752243118482605826587083835708033258199728241987683227870203909232720246328878799365451213946374821585041361377352129442346522031825131608726191487823521471569952866792163571709985036076843246018183173922443435825462554827131908920915663845976830867840536406405436222328891047025359208898380046544338469300692808523569068185798515872297743162195463935702336342981824745301485295259607147747065664073341612524266324330972918749879071160120210237246371846259236764430527107776646211967679187651102764087545603095040255574917813477130831928737209788407053933736475642159566936536879700576065255850596198507307012571354940349627162243029802446306498392470101561534696659011648784061992353583309644196778488543419027813260149582671935370908938670306875910148878777409689934495757251681847587477782834586355507566973892654341168964070742410622496461066411865983528794166013715353501269297181249707085865933736343370516446447764007934022803588642568869826121991860951243967307432615623254111756819308825025855685947231103767285893663144999095682320845897529477532784689432695260647402318403101126316225564889774320606408371743240797921540544775248530152273463960856558492672460446559072794762315923049108528014472489690953544134075121285306389354241581573212665275267770507998325095784181738791375480927163451031073553570108495976305477297860309857477361450814608696127388184656002313646483258413507936061487396172623167137644497968338522776591332941511903629995904494785881550549735748640773619281449415244964688773511928549840439564604983670294668245598854642633256645350816006422867803020559128608013194703268085753932630908004778350172231791151539956378838404389124575615568185473896316768914175612460262038046380868903724199719844018994883415899243653293412340404866091728696639987903341778659885668611865190336622482674793862850994050775936021598251371744604563679527858493667533994434123577297965021917516435591228159449703946372526066875529370600314217710207293776112786045540254570828035404254075057470139008781109186239729854519972066862340266862184628799053321798122286121989922402864067245912839244240819975425766490752545137017119891973525248610521334701443166363153046514892786852584237532360802239914472809470511562219541605777037532775961890420564195019895696602931066760888873143339588724538791340732404317524362186796520861241356124098929304092908544944746704376344158425640803001420880784159679909058733000514019592562168552724075701184807572927016995259200466218073502679667972137041061052491139346543981665868756921776929031438135349265329611691260860278862550629620797662465022849476874795826672849215945852787696361897095094164321474159017400772633671007967741611890511228172322092967038062828482215060654896257059076938620051780269094274095667260114157021894605285286370941791044932048985447336659826598033112743370419318745976099605843194598999319754221511703807081944703704515363669951367074331927529366923444586637170641513220711230449972489989281499024575349232797589683303634003787048982783288733769628804094965191980022603915196087129886891592312685794767643176706971247203599039039300469114229012666310442602928844770283110588105654067171931284128960905168127250962150365748549295303653483478009235980416102540024113403684663377682062124983396008997598866828259387000310106623523853195023154459744384071851450556108236096530775534020086478331295376434052682042862785700804707715342820681446891739421366739836578608737557268202434778814776152357871471621371167216201328158443383348241425229071795834306715977994488857711512431369804663567494851934438594140931372016361265847244706006080372124511281117744002364012063139807090741245806746178814525477913386457601790117784296573447235716059773360832826855523493744776907685633994962703262393824894517000919167221414417276108774764310682079092167126497647049778459664193815259055613725541838399187916831472489366134815898218226535388094571823136357581692417500385862378733897706833173534056752308645201765926240519528073796402077467816457167497864368680673223514331740758835448687060419024781456267361737808094558311157949025406400881074386684675056052857906390554580050345670661642345001649748175729632227603831561935236945214789748143542712527221199117256959968601079885479825329539322262221929120439299572112386960889437910015245108807443476587404284048939619420671697616252207132599158882837888361872336532325580737713951202124619031083596162424930463027680330980570563217679091068888169983783068749857075501955298699378656256361743027197437281091230608824557391084653207222839140894479882912283648163579024148832670603335264839479767008378089358651709921006225451615796954250504512373887529447760893903763415352541861499088748307533228031679148251893587111571918979789052257250840379187526012287558285606621748997772511320417916979078562735959894401996772915855515901190491385163742670284775791718499224501132637874134496375976717899583361824267602105258292073660258092313149644688617457122897436617574899030830576493003695585574202974719553013714693507909653882522974696367434223821794645911328295311931216665739723353854624905383598592311700711785916630062827469622797036915269554354738252184870312158111751870060674141646078158463918763388270017858699393786168492107146129058010900016999204022099830954933867199932517859793922741189886890985501871679104693265501079064061979978108747778060094542294487674782447732861492014750425435310717160032345374337114781693300844884560221390199799801651857247638237444541985805440266183257183416421750665334810354341614511949184933609347703959430806683614460404549849344702703321770226164142900317280362841021498037628019871016931577362025070288734987000723244439303286936831479444996666557939381896605883506817055814591565199336553737081761902939288160310888838232948036482594936258783179169773970036051216614531396777059476534343283132334907334844710620176921480043010781563459477881181250476249793539659300310428919043685702204404781302652260317866127991013034562379628554291844767308199500304241371952760328742528581106345767803052455111674197945679931498762169651703543424328653788360238400875830865316401082086265005239015942010507653028227425684237833574126271957139208508663514881933821752839542247850427538844255128762523130038409508830345336729371080135374346819124646826865098284721431962886980184515357069663190331623778552305976819217378607368223037437806588339712207954832451274169139553070528365211770121653431945748365979088461643414011246080322640974540766043445939278726168385418289031916450124430099919223175779010486495244342712965321407716766601943962430095344976806699892094348431612876669149863914706544298232086256713829806692314549161683890361524860932681657230099484956825200220375714249784621251853897059809608929980491045521447776115072922347330267836077352323328980287995351319006096519630595478152979340940016935743675620841029820806580342162857688962472373846197430681126744311276009920594196272419008284584958263671116445320979212712064002176588744943812601260415576555794215154239771652483355057821871917701340737173877219404904450927138048101779697576171203954032719206371278977290368964037954209470512232069357892582404482690207453550296043835294650270257730564846885619232529267825261146085536148075451562988267279720761593332720936510785605489632835497526382893618215336730799162077062835918052746187665492067593082589628862924837357245339567495973306406972420141814048929640658584125861841619004732197400867662742318382954135338164511307167762263068411271702883452360336606036766736354681911134402595656984056777804792269205052635185658529155635037664005994949998992735455296296005258457091611140782856195070348002619084397571899550847372718564139125278666302936362646842869514998342463640936103200464667831019311625514177039899256017653605227550258733548246515313293063178826908205388873980961987644503718457834466745801295686989161528473362295521069012519106241780659233538965241230320227790291022388793761808230529331854655789646331746193443528036841610134251773279063687818302685126481949170033318749953422643291069710189515998477836902137992792971394443564476595602154953918430071605174153947309277940823024761756450336519889853672689973918255609974395575139843653934345471199109566544792345167484011180694624356256348382754987532300172310587423459096861657921407761403666470480088176816259332687431692729399113060050489377647614361499271223332889868535262772362380047854416132692762454954091883264807141494975057228293383375704943697498943570281818790652050038867525063113175947942415371288893844365962578571749718004221368061581507659244237466929812648555984232872249263257600477716805100386109921508129322050788444952426111946645218753708073408709513562986136391376078054887028833020757398728981689796206189910530256197754891337570365167835476811995086131153803175529407218950676051124405572861885060695581097365355318056744443386138913281827532472034034074092408000477485534098341928062867839108099046021964181878219129554741104919679787771666067984683339800017492231641256948131538636760827537557439577439371296923039128923389774106945658082660205952350852696279094628288548939577416200799780938277710644739690169735417604110421707406263879126400313143561605405095666706514744842922374861903966247548325500193831842451106486575676578960608091744672134986055634721162989852618305927318676616215153727031447801702072359111179575372899094616794888521169070186154378583460731587616023082293546769798309115979067017846132973399057640556680688854384464408070622206590680288396553044208515613397520438530368836602004376322021278283064283647419536289849969893421417708512096116559031821976140740868351149035265165959296698731019661770417585384192054507155655646739834365063959976216882000610238986625931935115961562707004127549226963440626278480061540082190497364864212388428458528915376405611290795084970467285215254567158744046206387056315635952545443075628797743695124736399938575812619725100420633130018261550571369021319386063601089553974843227981227941189260775414443833467560000805645795877625324977734097629988216674445799601420542228593459491031577474265048923504243240761594091226312456842031541082508465521329997009436594794023430807008080552217051515854473679870856352075378877972344608235984477752768362315920616648044138110393762832705906530578475723082387732487249585007789351148830178545961219402675190037707080694355588871091660890096478743423459203314678427168249305601182035237818695889215021558185950620552276836179704744237544505404681839983709918563124184522128253300357893203936428239288311583483573910293818203753398795429715973930776998574611059305730610859357032068460273161974201536249979350294634479666860966376851724106375736140009542189963101827482437410394611847923431045795798244785136486916657626675212280816227838667346327778175619543799865774510155439320806137866806229822583472351260313508898022693229870160946720408926570727497236632264477691578925686518444736999044495223732252906254051525360011527809998379588045675181563656859763384754834255639244151540912584600706871066211503383976176704382232592247026808233904367695107954849123097724285992581079924373405957056961566951693450016305817111913186618603842911701301611499798355231511027241854962432486704073964763458041259676346969679213461541906785490374059158825590703253028558766975314146537999171001840316460603108170260170179281248968286689522209366103038891594551984670855675426510325959822357379278916290356107142426564517870782521336148435267586362265153048955791582474499913379748809169148803392778092085732983399488653457515390731811799483134576585910168840545336441565353795978325189461902029736882756170594078430784993005758953451906780270534789293223014805021647896231640446820166671104226897653766763447864276786142481456914092475950477669338863231096001614691874039153739546761893810168964138158772341664892905060125287526848450110993395740479536287054625443781897187835023403969491745944043363163375506860186918363293434462132988138853691407789779395464610168798105064207114693023978270301646636527783049399685536048825586988852400753871439986569769577230047346763252597003413933622707791887452725640415960183107881200701874176570543288607694414264416214258143980326226295372618528905403638594431945160220971948872937835587961340549755763940587090426581876777809775848681516335579106543556980806382023915075861227441514527823991856211017424593072038814712778849995133013046031554730693251107297272110114820995663251273516478356594546854843125476124564686661546231921435194146425177713995440349727852212458279428609532684162426418536716780445891116131225596828433549155126607905890448068908942200105671096000652842671225376060865181262772016327547554784409263058386666863156543706568269283071710718380845070548936054148433403747713859321789020282929267379152373394738297272356996849774747308557965529487681331282533000569135108249405505511691214237027677922378164399168021370599906983032358095511985768992575771495819086739400418732051958705302477156310852896147641647767792079407967662085804273102464775627920428301194079202949188465634780680966483275539544469876805048963544497217423615449318842818850431861684390116343632143986622058688714990139229313062903842409010218449211479058750728467308079951649707690299384776686335654999796688112321671934271446122816479716799483590970406559995232209598531861370077124816808160459044084635792255837699051365656896065792690472282745548305883565596390936784587141543181140102911462934953542921812928960770012148685816821918310456677854579463706213615339165621038690915214110260443916797735529535097984062158910789732301454683892097333208912428871823542065310924223488254857645514282856088976910179007252233814573102397473238631674402377548946752509267609205752694800352846664187582036998971609486917818064505586253411108492484513973697736343250096173391648044486896813498329738039813245169951400435324841423407559984779856284820417167526534802904495236877453616682543197404489809444740711022549058022595426652663222946695007258865374536708451697399576600002272003752867259321202442054756284507668941886227812724324472941345534103358638124232122080771921024500391273484385922989203396124722270601188687403912803562773979133036301824838297771946619521053266072405285383972769362645783569513540270366303343894033065327523854633269161512969925851979238625567937033526586596831263641239696249540680710395015144072826190975587784598299255470904208452655611496385112023277006090376632436652642497542864630203803386113061531109955568610484685622390925652012920057777765124423549535239294208469317365910579600953387816068683968065294091266923234884871729188835740927759422069182113311929278111652065065509432590741797773692959088430458311281242580906455656322300113470420284828491355497671475600089382631460498860228626046861723099823587148722470214946392747013801991508723682612275693452003772443491357359764812469785785963598226154863740330288356747957532730297741675832528283372946735526699295360944123494666781001895332601422100828063393715806713341874835358289370802458536319533922421069505894325428689424609343258802352175391431669859697965198701353858207727567188306725542764112420701198478646057754456920739276589014997579052133142723789413101162708891588264471328972519336507436673548657354728154680805397893063226212308032834949984343690429838117620205124940304153851573530227773716622841710000737950345182584448471759801755323960174720675061352279584200152929204539992922024055142825497826705971995443685590180447246422847794301512444840796478690148303859097233987122146887100597631573206175520609796339797017324568716268895838701269013991507946801256880304412984997149116526524633310829939866088321149069022329172193207763566658009603298530327740488972688950531436443646672621267215951842830479328276378211026970901458809625085813181091447315636436323464525901800586204121140842787147472912523347891214524752659552033334583771008372767312823758232965933163248134464279545004937256953679490548772125063337413516852421068979523330053329168130428297648338484111101074516331853376145389978146510559373101593479404036918552475955031482021277229508529908997279895885060146909662331278371905234138824935424935722267064709987933162338841305291250022834161472238243968664248767238106835055054666884112134463958424589344237315494939256190618482380098700201442843878919956463306883302333062650896362562611049334902823642073187971000615795023648367801411275983801603799361219453842636900014260845149460798427631927764066390250123506466620488995512431790773810081077443871417914393541416896278140378735874746695427379099392537039856712906075945454040641234732694353481072890188682864247280550875546680406482535233827498262077682550635322473316994271855946488367329034701329402127047091034140925226139718063979119290522696587174848751570946968442530040409673772663552901089930986323903795585600427546671609159227711067126452197479437526066631013883134285167588861775076834569001003719963096258370029148810044745402683732770861214913434996647359311035770262323909213099759677122987560090860603773773492037978766494647317312388196515660284822080953857132819195143535005136046202248247269916739374686968857140949043735168021261114072305597747572330055100373085612798018919559965822291961961992315790325967995535124380783043339399721517468209401509947554267876576153139631682988912230558407144336103683962133981590281569878230646419090295434572476059223713520466497325452447774114421171750443061189292710717040606901175002398035958961541273486785424842035539396898526518647786006712633419962446017027546662161639584440377772241548645550447583277105002479098398281323970547342985945948548959358664259845111603597541166957653866265430465464782127914561669453815744351148938550279292662250562606221093906095472048507230799212215236449256759966936048958295398481827773948687936337179063374219283514769293839718385628466682583959796036603307727852300009197742930285940124140194209848740589514196649160917995082749832541619076991495376188145291214379041285496036844849981720297649685668277179001328809891365864375081675439283069532577182186510080001327676741184690727144997270916157326569477467389826888267238326809802254381014907524288769287477733559025338966969531481963629762139703768566686389192099609144492857840467627531756517531365612730377322863034887643351325609528656131771747193136437777508669527095864299769081711408613721107224575519755385152267546176496901866643410057105975953082695044385620511079101255281395404161853607206699370667791577620646861855241827482990829088524620576840204408113599925420194992617485422002799469586416943486447494687203934259737098947221545585051332302864053127623074143997379525012751738570198734278568888554801364413671330637279442645192062481645818543997660277490462723766264119750094136341550444402668392127519159737180067548741372676033844169512945902063446398255917994103840654685866632523241417519423766535974243891508494272439551842243205052966805441290111662365304320888998550657303695068958445722125181538119590564426846520206890368091243973397395725726374494811946352989768844289511435263322423144618897009103601421364093842883046508928592080393554584210408025496693920996077652024271254072533127288717365395569038368372811485770007216971257296503354739697002721984709949407258626145954124908710162989546879889636243262747069594341479120745352084214799608276475484941279915241653742200235741000825702956670683469119036308886949077975735018818024633750379805312664555917356072798826771281043045701218394430019211666474901483554287823699221794674608338401806658792823545699781084836546953141906653733248609012218380785416628766364317061233623833315153845233967241342108873242989011189957342625642634331342710883035579268806843147859326254131160350548032466610217131685253490859502119098413663671078128554873904906121039187058989425442101498248632331447186781647808181641689251715343133934995552680970086498864673842584575077526537644231270140099445641705915329637253714916957174161460227962140921065163851921789528866327779367883471053111830740959249224996529520792945239079748840287564745572760433828753165430799277189989367762590149713502463592807647438302217637564175533696886804023793511190796132898185268362088299058645878080356510522041277556523020446453188667591599710424944564098957881853650702820639409746425477802025787768227066218122109735667380963813162767719127230920711337501968923092049515457076523099772099147173567341719782479834713670545565803838860338230199897088080892886654058798098596373494392540341739624230205076517830292652257461170559342079961293460420323927340279079624474565540596275407459788660661105135818731067336801266994938730490229715874398825032526157522422820501026881281037507837439934666983983663731401444768445866367603774711312167126999572000737649429838380690647791571718296428412665376561286175280187519700090988633993752618578469201816039837275765561347629906618378270469717297032612867138443630431002183750616583820774415880902430564811459988818066795363656836004143039405545415133592736587496977123308585024781102147235229095583828446593278622292827929121721696347118641866693158509437177173973696187148073393849687199471487652161151075953241013324621103370088389062931028089345589181365513727567761980477712490852490713759433049965583347070742926728680343240355411161965852794060819832894478560445009940693088832731277737096866683187000269832688613656980136604010002394855286640754781211649000951010702362985322955527667958292200224259977337902087925482091862604064217292268769432232364564886721405758942743053743758261781562329227316101403621655828519332889418917007926696150475226205393215602712452809080525383079432214183158092203743858734861734318876281455461537597248945883650805811554847239508174966895201890793645088417882594932964088300750178793979210099087885249796783628573164305786411940748916137019094451465514576600174172579571720436980412134953605053437778469839942838536289684616469314234797974180592441462170627011917203800457728118302930010552900671501031099608736481224549587494123865166865919716969149016951366011908125336494798861844796667213046307078655195030531951255301178870610424541348950686085415996173639167399892120348663695378640819914444705379578802721972084813410763207453578787918797815716126524525813239347944527653258821300278711054459046856959626600365464440508975183991652818972384659474718428308346874503400584654316032469580731451108386812609014544932851078460717416782826736614844211281501314565887772135646501249116180903171775705798080827756563753702783907490617488441446199706195777082813228249145785494497014318459985505163265771522217247219829620443132205009746233034073683402552457354398026333684607020386964532447816608304623418922002713070398600119211032606363771394839172284391729852462028796380653681001618214009689694637171747187845017727938482637633755658471922744198504052850672018084622011700528625932658289068001746901541305623516967710465841635075838713072675852821943462241377743167746928109095851215778061071478456514609433664810171585603977809392162219659498528898370105675058048656532154569840102939716081004191983626027603673850322542239047627436020118752803795090644743331658497206935210020056149410607556371839662516908255590019088855069463428439848426610689676720243003026494913459810167428439419690522534762093184494239847813015627779827409588022439915682286417022959384539443348976627854401150863453853594318429162615220344033508338627365939967901757061677713577950863489157675186513766902034002762024123924258320876783585229467116506637566504261069548841855971694909223150605189037106092773718209498462811560261397249662711795056217118748322300904036700397740587163047987967212276490486168892520671410966715545372469498589334780885722482990947725645189482577551744637273446989205417109272744966364582068140106870948568166348390543589822680278719030844594981137003542409550600820842486446438986553437696278787148383017514040004778652467145286861857337377813762472725776359654729200603314195442694339806838698627498906407667660850922662486586531888488758853798984309030324906417532959673141582009727981319864397645040902498692124164367852892008931383399181093131806057503970179801855915822218232099912743048342783628356682725080431425567045910661323820203576504049518709166662028104176568773402262294142773697946475913930732873256401544275696476113639507771967701857773913224533692364796854985550544981316218059619479118135787101735300327273271505692843568971382246970139994221405576681439036247705269356153338460609363049527075831849681947873350582226896561240063126695082028259829651156925560848382876059041361068283787566989529682975784681148092802563562927475551576021474283520034566972332593481541604463066184773514927408821068280538233177607321953631534406157149987870557703669062718268032523098611108767453861574271851789420542667097918800388082636673540098652335976981280176613455818091087111675112898363982933575523672517228619264608528917257506817609428089963522272514335348997557656814810675610564250934635843321179016248997706032697445308814986758244736070813006615272506679150613424396437470511043958847013829890482674027269678383882874138901705933424926977509977417436238940692985235116338462613327692518472580085701278840757232235656365896594529082667893659867960375650674311460144670200832227230895360925403383399764735231549355928939186960795149684446966228631734700957308775971559157185714297688509558234387693332597642143977304229639802936078256081935551202016663827956290717377482932188972647003787083646428241871873352371600002969499223915614593091081580318323927473592735701721494259808737885611303211151129202214587713140168545086725477823769163745137385299755094343292190068029949996704978346332585128871628392756638389820188050046848565523260391564826727109815887245879700149138928784131318163663671383328595677205164750569320544005743163663312194994620620453210900581542773540861117141808387597308114002958559893171460539995771986686192912469931318054898937091309925478045820170009951773855447094976378851936172558134022008467935217561943256953507181999415036204815385355103857092303918627148417976938170308262149186504074806524534287712297106620911351028053732938611461387781788967033352205840566321425189767077833953572791542465038539925442231558575795313589220683758020256409900293324007201834254700631889615051123882505462300835048150431467688924786377592961664453259247914566857997789773317652834234595149212652646374169546782172339201703332295899143965054600527968206432983691067261177347467887995712902797533160472799311652732834048791388058995994075425412707709979619828172265100354841960402684872755927913879822658614703308574975249481008784720004370824792539995304212601986970152673741719983601335247779016094669115971726701040536226311300210135832628309955706680226690879784797540469069062264741915393009821785105738407439207808054028366325272058367188007393182762366104799267990593516278383020303281038431263289748818599123149775800000923997168742224668163483179200291056544626985415674024885574958044291679893531421348414986739533039504827649068077429839056834376098257524701947702088456053774549930016538378713235313304587809935510262083531478366048330346893332416119788556901508370475189114937729217544650450803445998649572316890054748369382924755399743352526494194246931659131662897546687242734111697167717984174238568074919105004033089642567553939874861915170540951625469445555772451158093922350982561243999682317531842431324346549132578982843988577126885728426620579553771677579179400038881186223817446883701011885821777115552310129822275561325503436527907724762544696183569989117523479309400846554967512910117132388896634616166395016239617381248693144210792380648444732345265244246799522180273800357973851261902573057956098186944415593443389165917345598125565837877521956990133145601744321770872154903662365973579537500035657763768639325719274917517812487231168967007960307673956357162918284492517375849956550319028829941971807052130832004772154197369180990531156932065524961518419263982495812895536490936645290769014709704913572100977855814711908679299156277417821094777946070436196391446432568397980365949177536032285994004859698609799846662838930096977054767920448222928004756843309064416329362844714418916251083533189773443306454897760703075849463965291556228339323081282719212526622468406822465713984310682801041894974663601511133434686277446433717388497246978920625871581450453343764970262150103378854228106639499713085172869007404137623703774614378710482442322673961889855398093751566327359152987065825425463040630502349509715592007289911094470162485707520091408806500926734628039622494207318814893008834587343481244949849648218351058350114700397770808025352221833224440846979792455910731842306383966321461133535386364616511596669371867436724521201770271932693718774202533180447196379211100881151673102123281144771472877726147126675505463993428765493757962483756095251107238111427295515433968683095635497691729540518335108433031846078384132492255189892037062407404664017958521367233406056855962869594007373543514349396657449399491876876267627339792229729386311087473314527808016468061903125911156582412398104201053330707914936289061220779165254968810414158032262235503466500843951312830842060367998275253225305485187513004018015604238075282522884140636341260680147984965079536880011096361084905835996377352925625545104567363759598995064406107626400238646254529404399241580513960194128113949000512605093166356545805460074028353671631001389301858597291686153263266309694790611668885659233150308533463623080408659314519504735637745427408688166432636525570710657544643836394200953520400485796845844686533303265061903303289479529904025450487005856124407605567439029680892565983012861355989699986033258229926635771916576551622267251924400141030810251912265093434624440352092515273071306904940267147209680426953385771308479221227680988091328554589792902072976564265311107086421007951596979752754289556759187509955227047059868446942446065527450591637769684188713649007073152859852389006039022942909060093482592395626435061499572903094860024237487072464873506896695562629251363649185480356436236795105566114785608400365387736231757275223023381136174861222737641032976081589392501833340723227814587300004886269114405449850945214109887573446974647625338364172082657014027518184989523639216428391242766971623809506203878770660699354637276661718131012543553374366675884873030178002952809863692680471678797143396401647838760409630767591273665427579177537051515000692654986747519241302835846312815145271091357214247106942603680508160710452958218780177332622208059460049296122907594934618566420437142838702979506472098248027978546796712900053573067174072879249770706495814179487187351586688686358827150980703742808473845512196939197858321295892419945638221380170208688076780771250819497662392270966496412704929131171386554423702047425379912691963345738233503076154828465345336450363460909417935114382709054928800324943616417197441361558540494377680318828768413474892574129353736104672016572727815515052022867269458297084001553234259541222736608557182437746394729604581981793760919338332145018681650288347554929499145987052151412799831435856401675671151207986351135332627794774485363907855280139355549009515170558952489106650761981622652858809225261405918599176383961079836668450844928595379772032426366923815299471784217205933206283079649182615614735590225935010492848400709103659083580757428527767730993518544261066085241322659792644171357653741081769868527848889035189173190645933056576989416950251936917607501018013854263017092858771887756975336495420042057385371638812011014371118119332500101051049552985967391567284415188853627044448887806693931485623306864212396615674995511935814021836370622970174840355910208009113461374579275364286239713444555085830528406419947514116907858246116080688445952608438471131245237345624826335266772066126915162499927713150700697960238382536589425916070289821168323936224224082344587559858846528298840747564095911096023851917273687717630415814136948124800884574534120596430566085662175534402711417544822587668930817147274543609284407759249867622349526710005362622515970343346091708472347431551506479810963107450570037232593092783860091161316203827930794323151422536296885515792187585949947672578564730850542677973909467301201999747781606073097062213250725256784017272854415692712628077397383992122299784894280244251000980781618995337368208162524752522734880344394185701913668986323212143598001066914922611358162902492105709599962523350115123219489376941015984563813451216827132108026591027466450038857518798272987012322712350520662602780600859502690422907130686536189850845757230465578293380731128298535431398325245485260412063111236564571189524340096076750964228946722128960617608993675137886731769424018295323327530685196322255714449199562057271778015394989545497131534470411491512182442738487407278297999702996862620051460880040445414190731389276464442494776921548759870817483391089269782526543001995160579220009548098968184803776532855321506024532043651066792580377178605197221636045729462235095419072741909702953849597943841668381296414829659215151520697720425870441513891568376158993512604743298658973896908105539310065770566816753500905885576068389070419014026055794108613266764118517683179321517805635396232876657016333634921040936425109200557312661647357959491423518676146665705423811746042562024404933680023335113490527337096535831961541408166325286010633062924811147420378020082830916282428741820016951663930371432243987928645831385927590136501285583504356642418096809234663843467870929783844031185074727005098188791665461266355563743230087609838170454579436098187465110382527731084382233606009376824557209689262828885454398597123700707697321717051585309075837327276898811586498095823035543772358766066276078959531052606173043360096603138391196116753432768415354689537922951708810789942530485702586568021015548281827234263285062651366042029330317213061793844562882572758748579248495984799950040729965971312619692403385919528304661881160636441107523682721241916981496078449123665629370024979351295073475317212051768583048075616563094472724613467687925845303413291069054218680400835750948569933191284689007353944260301822128619041778418288687931649057773467100870557922029415827239871004803162604209011577255616464488522954468841741543360795955147115458501217122132579219431990806047320094139566691682320887842813984757786187951691061295571265058420017483807519153766553170595292152859509485999292575356738708429974118665321449265603765819356363003234796875279591627481897571004952402643114808612630107807546956399007714058169620290539690170326530764988656936298790572087756222905187505663820525104885710263586464464626606581099044986092168410597722184534538924147102091146693778848030596525683459978300807479904055141638466040347488083294109564375772961766215273201010347185133823560724627955291798288956995311973426004826568517804865400768213668226263113080483678805035524319320629100745775229759512353742190160335786771687467195520653378491687403948349726735665088965574540287588701673201174976057248074114268525354767142889724327869523340823218691424507566266729368075677877276088655752775727603876294954923663741979153286000019063760360955768060095200798065545717751231612234957517491021239437608413932671060343891554738286815897371002153472858600805723110615124459349705097577417071260952446740218779327953836672137950473573014556365529106816164615357620734627446612905137803090232200724918019599750825421472885139881535311384753188592283346408698091785091047631066622708481042999375559263433239159840218772810493987264113551306222430132193973150686978605210036783586303216967634950721354655133979370030880609068958426234772029254215070124065449811516846593507668883901728101566687253836612174231094557189124054491183906353457006069233438439789354607311468732446742716229728069177105716684995319803901301808670913262353693203415667717227373880544731435870429018921640807916701582802911363389238396941591254294182236292464976889541442910846030303454597180552827052613222930530125928093927163428233649076806195790019925468480389335528372162260311071938789954207508054036992198807590885485970651674867977886235768882923412054688540580576169750342500346518179251609008616100123949040803686548551983630437945821724333755855382156301579281264461352503810396503210344678072563228468255813281217140185701834069455640242881276452960872580399410787748602478948273786198129870300348368234248294626828189328046497548416475530117438677065810336200693406276325394469290283699357200225079983302076716510712902295491536504059106097320024428850043669271548314718522344477601071844189216357402740374459628811346799575518125871725041915445570474923214837995410436139968684456855016668836096898789892515934148175770124180723895268345289832001726685870078998176991975791968753619248847404421128242925601022324749246572430658725937798701943863381765638313046024353017883314849907747153836467279099097406320472186150677395699488911868499003472023936617450710712662002600483764113889127070368480185180175420030320693016167113250619969424370015700595820955748852830965802555891917766474785516167024694674469918079074361661257184813569901900524918863756811493946846397785470742630065918857219552613297360009060390807296600829408891836854349725455844294775934656160048286111713090853120549880666524132777724253120857042405820404994806591470486752391852490259403050243790646625437908712319117022276012495906049235592274425813615232097881520864287937215524201905877267506709814814018419214853719324010061894028661779695009724070690981932554785671233022773427299768246756680392140079629599960051835705108220877125008242756347431988207822575899125950627731577056455934254054518836741843647496960945019947864955685015534018346652505094178837968318036318729210883131212339734979497273538928376783003206658424045545521226500912673023505343110307725427899789888030494762449886779347065110364613713832138390481084494920786595476595663369022860669760817492275658466847900742963534947173725237276581823969998720786008684393847398227262075079481346591513514034615175766125687265019479980256185017110820893537549074621350523444706897931460160774295928653960162657841709818085592801063888099074032755416800686932090812922292632446659735250273155304680664359569021142436312878782354720021329736936225026312574275716871314327248808943819986087184363797256690632191078399133372376864875158194244968596734578878462770942111486461289068713709549138243039354803181736612977667772278292147281493411457643052771987629491360760273093615276354242208887335180226521275804974849841677361761971472880611548951947148184970004273520004130614705664959004936662764910145283878934245601968660235971595318970060935892155054802677539479979355607214427057664053054968849034462100605775415603858893799103345448454085157147992208325658203482556574114783350798549146452887724449502234486073517547143174545504796558264304699164324057943512460616172457367113060630341719862260831351046537760000566288317639260556456195286161870584192845817060145435351035368481687062072204377990906832986502077140337645103154587157146028283159574332495913449625261815196909936578318044548367562084513811385412012826783738112117726450862728971200820480692700086725902735763047070124098534707276275430732962873315562920513132823238390216720783008547147071644596722867424393230390027555310386643706036951254560650914443774239382443972179333219710234783750314029123192815982196121622631878106018063843536355869871890220287890444482065908687236108201279504393117865979924645336623220062846875408741106180603469208383930495311807097634571395370377845027413508019965092058684581359414317193211621073807445548643715856541411882252263004218636507133362854126520529763599531259009509423028358322852347846318195943105187094611913844335460699525106411651089641268950312633294365735962293744553995757208147478292772528052227615782569537274142944032183469593759722996664675695572023605555022396200085069312671722291951770652732132288914139069097172780549278815436700944871357012257994888612815943349221231180922174100726343368495315665949696341915049457851136338280333491900430552710013211483876961480510783905096473064842543258925411085920488874430415415120804213280918132045662298956483488027236109971745946590919185620992229921981011746914815997809995696393244231945200270629331707348661900558033102815549253076096430311527822675116020772683713105855388526476485084223924382547704213548506153930577490986956269943161862907901968926427305419811919054507342733343633671977424348086270286917054347922843948247422639352180702837189673059779308544844988632895817493289139276767557499334945498783534564532330816066420043063503303730332545620968497972181335942702284295433938215622897117959200837189769927753879612735229785007642019553288013504088098678327556682089424119456533541822894610544902854246501059982457742488049332903258921696348284998410329321164876820204703421145914584781969042909523078527677030781780025839077590471356804901232642008319600902750153191669912294337003970465121697615203292579908146764433477743912328308567684089596527525336231926468588587819274844214805340959801453184357536108929625345500898612783230841302529845403353524994154682486380252247185893855631245329430123993059081723775543303613880173546655421274612968776224042028163516899223954710676535461892650041938457996683519315390541190350745088016784038891817952455072644521187927750086315741574148587644614326117374367504515607367727305676222532479672539697341586925690048091975403014666186439146690588152851583473685952067823114522926458197903407588747238603472700293354591983611414200247187212206608470978281542811968453980324734048820061959825055846778275997604327245442477792218995473931253273514075729023116541333473441312238801808545857222464337845755965790597554202626166348023542407850760033401315128514294728080484659447724415659950265073069421454313418460013101826242387904909540074586677806196187071592297308256315611608704387553696669453919814729356412516713200103420705330092119953624418688141438618587367325175248707553209919263184380252057752991330878369528928802262756634241352749904194789061704545944529097697984168459313647097754019727195469143387977916687651089599348506031321526604168029172451218306814361086562827516248072023684695357480316109146463129475341990254261469915465879354305100676476283072098361324208942120039618839457006456511767073425490346399416231640142095975550181479707221734709154372965906042433146088246883638130500538647904531902490034615399050775460460753498895155464707250161579029793214193000262758700350585781452435111142256116475660388730820075588007195220483619962324180860931835655767220737010769298845738318891927379304227426560736352648910278504825955053560237135893046781072606191810265560179381151634023875520486972883915635685155603704395326155553153599721304994215102547617598885368426060024636874462351252009367291896785959630300776612263590990718205497414161069350562072226333838411860564548689459583283415679809376865004027702571128900061494275233535237866797277870314827237177718157112940273492331704232290918376432830971413241731736692977381149064087636846676566239680143785777452145996597289524925304320386338696259710899952394442225204393661144482102495017033010093594041620155428388392351679759770167579935976833950996032820815180866534601438558504212943894170818554734188028105735569219143123979088982056237907798943625160197768106978342807256403385733306677733470676449007581065109832906410976602062407155171839638404018923972991233705185269346473554733659319926360357350107204403698650340832625837453110013703840383874750728105136618609027896524905317576181170758806261791445937500501022398025281302302572875633819273782145759681965378226883925261679107504855293009345433523072880178432535902374533085588855009834850179826076670666552955881310806493877485223959054553414909861556047478545884524238555817916976428244947173463890759238317756948840869363964188533935489211507997959449947986293669336474572663887930165929526570582573545633430225047525070404866405416523035550039489886547210477383888263079656648669169709559256123375960003141542682908984524607214954302845787839678708976153838995424381691787458971217414485012077643402169777150914672359616277414057705332563452822081714460087369924450026952552977544955893095646536454366734230278111275721632227539579693276173313969477524168017837720268538918448059939493246171140940857296859833725093917470958251271303030875817975747779200656292730729904450832767735358379013234935501980389386708421357569918097617790099060442511757887837595564045949448996823634178507120214119230796017322671508300742899598890578694923434706387837243683608287026444633365056219766699784330570918853876747989263929567590082739116058050113654372748620877059746908227132578030135403713086804238261738870455074984332882838296709241205131990344227679298044875556067599570292860627716639628629121048502802202052795010662580584938622858526446309676415647141083322715753157850088831691665552365869417186687781318130531343067393001222955857302494906690061141141525287449039185285602327087611766539756634463121856890328081458294420058935198901698882316134238046948915655807280567818371191805603455706833634396973950858356178933218084052504387470929143678211717112798342802358082175429549886634300496900500143163292987061178829597568413291050852554827418383142723542430300623456025391105987067001992936460519670988232604603475801425375709114136635995997284243842445077797650435142609220873148222695554974487181732399492344589886024145165643493825501675751477574371768444810045322693540690724870399624562998915416477429921066478248218347285630731772911359891836823851779894719006647259568261587542679242039318662842335395113001282798483161641105649116120787646539608481965326492536687818069263603282161344331232897248902517434076639003192667924815303281115655370046232572391529866825532929031929121053577942337568628733882884292741689485947391952075315751761611590144500701770074856542937120870643497918183365812973925049089320226443084307461683839157980035213090769131205162896884510318492385655715872077281954061135431893692534167092139963795038973909726585419877657773849744897546153826057517751881154681466522481515538916602277582400943899302214424186207159435940262928973790593537459397455888564373082023321021444453090578322245759224669377501170530207330320060116743555514248671811034219722113491919116694707312782405141353642109086927876172230494373505977427887914881437950116759961531998955255279314043402024865178491203817433752631673527370679381228265844095436491695408217363008922555006791145319716417486351710649169776478076546685608270200354542927589859490895400654751355482268360357482133701255498193382129984755108879568635263642369528005843664197257515100137222961403850266599184683861104107524338022808579837479108193279882462428312967561103211106976928195259198847061426940967916609446727325583973920620066977720259396717889697358420263977583818320643520996809976040707500669802712863247043161077335217570366464601953883005061051506735668685940351373304651890137908403089430781153074424575705482769494905709725338858598381686148719275704375865757930485892782299055616584378657182636759959664954329293309417344538229847016482065953546064134563931647965562047470059047916496271822070322316891915810507335527866178807719674954075409526709947332461492356613969970094171855879873533136403839786098699095949199091228335809237909121590649950061549365926160899934866391029653959822988752353514164998470505366010171267724938814027444044359950388485492707450277757960867590615922027282928897304847140505754662177267931689873657690369165255659325130004653548432702375840059580030328382166244783649558669247941424223389777015024541499811598144583415338611229421856966209053302872330099857493518933028271018504891317489907453733829929043203770361533510430616835032228627647992064279595710216033554873990613685273687675585636529453389266742204607218003877796001926180781990695602638260382249225538161829706252767729687321452942612263788606442995007733220707387744511315783459551933987759477965158860130832581716613577698716770262554258086421532622592660831118282591826285510850934006855557800846007930517293253232238339922895891547628389593322069556260302145215239554709368537420622362747195003324877636679338034987024075749782616825629129146957828143131709443196076571853071100617027440955834312736431239422487898068411356806884954060755875966899681768170889534898893501687355141102005233883782503652840466915236910021717329007516512485399200695854905993991262750618667687233670487458285645195825780197043011653868099821751937790015677494748207193014892826402025032517695689969676748683030420327170625565759760276085562607485913656782360649416198522077594775324792175708869200215317055066322570290257196777915759132361680766437498413648305983707358108721244425068175164710918903043701418003310186280961335065534383712342814894349485196706314969049222849840247346199633600942448902212199172359804029381475408917029080918720098062474046439986508885171141571130757876955163603835163232301333349442276997340351753061406264933293115823570199105924427415276188658519810559694862378682726643873853230626450408500803764843652931022017797404468468304720404626101164189527531651051216338517401546597199121778421005265727190699282212704387059047851031379747914992281863108170924022971838328456566989366615818938605695085521223262499970399823772472184956346077297102811656612466547154802670119957567478710958385708815812381495056266838715091054310275936147461109102468346449827109971644716141582079776487989070327576288463860558939309612240170619086139658712417731429778107403588984986554086514637917669273668675552692856204436274862147606150191539438514488724834441839797840763173659542080202101299521456159679834416022778916897412264998550791847454909206842768636560000161093719819266235411880736870180412560244524696070723833305706774053212671593463242465686980040195862073278158777213445062153452741780886588979792449266309336585816921186211005345855845925429711823264840976112772155459295850394380846503724095214832310798000136273692258801204995281446725224923122286472216382747121053008511932120170927066774158959997303070933867422643597381778678430984907608598761907247507753128180797388504676533742279670699590625470941963735483681037507881745306499857659011062437605399891999098700036371887775128563824616423890684962758537836830304060435538654891179033564409936168977407376298971737762888520837130760997757358319473077066545772049651786171179906861648651820063949831058457975012737840371818790068276052301637438370902351321404859142955268983708073714195515154206813379502141009498198181819120680866371113087778728096329851475624008697780644411746207074761159714465947230400212557179374598980868262798537499621210527019080719424883425811056528184657132823994418797808033730992009429302712949761433984788114118203964860029346003717192880783782273078329038740563349160772478697651097757994647412200058996632932131244926599297964932421644167456574945324977627779478268636576106432025069995313195228297209077968107676660316506377904560188698992492876436863141727015531987707286357097755151036608313744842282948022527424260375717465627058547232449820014777726026086843879098181685726392225330702982745990562062076986737277556023565918129933579931524061448291981823286334583604708988609539242804442540206042688568687812108342712984455084726920172396347542881099220899327601045808735417845146851953542120531058947787027714449353549616316179698425830800663500014156649959350239289703374728294282861886315676767234243601204317785317636260484957175759083420384513246049618488263705457948017758667844930206786586079996835399638426322846046434140789732407737129060780318661250182715068314730490988311551393004823695932565940334694014373229750577080937022166398961760362754869081285699732902283924873234020313341812977106346854896188562880047014424925253221202135735913950287045872418927491736744010805338832433990781737990043972678634673057143671864335815505807637772630464659024443348171544088910915533727230160773074960222358318824219249843944009568339436426864415353362873576841934687073214501998503489972773047791868373524609683669610511485432620343180605539229217721783569254896233929737773397202804508634263246795509311335299312619436633393093194802744176495334096098512636445823465485630657183744382437510340372310129669716853349641178224460383646523421271582793475403522577483622775441379745814967358275217073171452938303146528414934127304313062875801586844054106996304000897225824284862710965648289835178316602212554143470234706839439849744628960497546512991599699193343801429101127191377662660614517238784653131088868577544632034976945993478530268526357612339148683728874942547167930238347499144127851365951046050229304399053375323354061753896195601560946617668245411624918189173154484521885433945163463576129659432294269867185273694160684378402268704327745347687459679892870662373375524697785031578180191644200321069529227009077420006967373656685098045923265389106803792889601964672252274606626382869958902766886050049303011108798911633946315540576285427571161370902983100521966474844210041868873231169034133302955544484431558935389990027005535011985459476164603779429958070116816672677256833238210873611967549419551474653791821781746424969731070469640346851353524493178968552597435831929840359323559528387495012241935891469009569218204834308251015747599315475097110222525517189617623281799214947635184236745985207276782428403779202218823095390131462328271193238224759231243210864725325112383018974402754714366102511582042800153669117520099611510032072288202934127260527362982646069239855596803165730807193428388590256193065504857196283060248058672936698784948892537077417469592381727195215372473750515991144517987731067798374854930198048133175055609339796560010137072746172935192035545173532532129619282770721247892178853084377786037403677849244919306187327934650324463641924582470113734555816170185911364127691503138137261754937472107343794273768060325806895294571293685510308593978798705264323726426885717700028178245804641195949181382513351806672155568523636598671015206572521261939031810725256478675605212388841715169794225562799567610550343296121338778185860060959788264162716441753744063270536974027563952356366446856450275552259670449248251354096977847700073027593530944042135147839791596618235814107258708406766689171584820210636482255371146491255856888107335839736443873668550793920238597979729777311362753617542464734677095618644933142965974974845759858790492981380631048451365157538664142670738364924045303430264882654883364704258988613455413641290996197638274066086054083617012692822961685672975332904709756073493429236550791988541185991451266330329032651372173223766871672463771531481640841235318524517294112406427593405040630322452300739085706700913652534632235766870886301060335289057838492231269951822508529367597523031502544074644482058010491512941764768652472686248218761782316582719278951672777977204202015716542373330653918158311658384676227887115033892269167761822008247393201783758739384339336416857634099283130145313534302379852764842486951319284207685980288778225775120505250233026068468983670793796805541253271231078434174485019708155499081486918136970738880541256522295109460700037297921570898409508236595265046301757055802144759962727848158827817951689659760547638339202739023073268439913448102659092854560673252170739652779155355835334640762817851445308662553735627069932264980194982581386303901949157892087083046172547728090264979923138781188426689251595908949059085627276806675659710863615018484744123793876902120991958057314989993217605354261301989871717427185473097257809503006148368662201044706527656284738165201933556443116541086110198212830697411627227419082374949204863031573538479756063054514286066218187380160807981881546520475644338862982955441758215900108423166764620413717933467189694235178522742465455523496850176632092891457296150327877706737673124610614505996844561505516636836111978300131925397462725754031514615670154194100389174628463916162619066788123315851293098400881812140154318971770776224370818519249298164516649623036481278650036959226974447792277834919930163708702957429023881934397962291941856303089761756602176497434983467701219516290582778369985502419656305204599285779761241387512330683957254944185484637441374403867831975744989737071478479711737436664874419815060866175990782782801972427236251902742988444084988373411948645773323602356865064280163940635685183267511374985982566895590785898339662997023037064562196447475843090310763442712109327812049882253202358366317391521452813026963702213894772383945370470269362907308222315210536904690546641694278870680973958243787612596167630758151884167341346017973732838314319475977326891464368572675833809917288069805067243610823828111707908726384744009484574820960228718559003538020449015351167819598265720483816089962536722179499146281611502683415778648616056344698150040948714358668842805135228659991078439063215970431685933220458714319435923745334666034780727895078766935975710877714522582660496147298809173637892192867296540353976622081588989709238328928310580869553756414751561199800451633738751434638156020308488802172546762122337122763711872786193118394275379609679773868488693049600043919879242956452220537262195168259314636009205211014201989345193785306247990463201366016240197356489095812945478308045293477856563065572325508458837227631295708023476141552573583047973686576399805854560504669324255392197015215158833484971581807852482772098413341228695071866808129278959107182429686964292175883326186080785579388904750781855457632471694433076038558001108573962692763200287680270978293164873333437295573641724539018911739849812919639655647621601989455777872902115988462615584451166259683430047484079042076484066547894576196869802545968243461621582251853311044163420278619894701101321583509449470217820178117432196740615836250940498871451245612783333838869419959949492762325578984387576698074532425328988543906257204161071152207328034574469146365408267693242825046532171197538550018294565866672026302568558630177263454890053566004881127428322713457201066197756246294437748494069167119697357251997684682688378456826461290697607474116740537411180962468669113153550122883860616327379786641917554138667982545823519944804491170963344199892815190191740043385624037901917239256608380371852977060010234246471996387998599084383396270350715424451192516978433332152530618402495262921165950541412141961620817696599876319726582631690847583651053325679889258291829112674289172324380495031473959139194060903078921065981400093401197772423951280555842600191478635987283848683740210067238759055562815292341517803344179177135273042193486780854884181583823044890460890247098354562661788215920907689021302990712724344672221237609374600236179653812837563298917769936552951322350926316952571132975254487054008074929702115653011882893653136221692705460271560341566324027585113646614650277745482274058328446946163398387940756119388647341086038674935010368885085149175808039264575373727152031346484791300540497282212486122984051736713176467596470671223710751796455974902554636874928011775182187259308502164953530017720203438113087004306070652242567755764479697957293825011550345070449604201586759032739296583730760972577452714640725737315032841241908713435607299839197423995148609830814118059668276486117224169836409893234587806481043649959596058942750538043431201748696174933450523417864181511977003978847106257574618800944942296174454405108373171690927241304684093663517077717368020836746817754883515371744267596502182695269475774118727100331350377843026052706765029354406496313152781569115692979283690072783041262027200266713105531309251575302256043857467504422027425037150450152000187948077969988138470819478652976340145923886299784043186580960566915063503654859629189132628788028288120023342307552950691717398745251802405401419805854244100191168767122771384590058326900740066647727510710158265641017238110699677937411311895699242920645581232911039368697536616225371873801226571694118454876777170925829410037432577763682032994442501454668777106890357028235642008401609477148470402533464102886694147526145158097105504005734475569902714858424478574887566568330781187242268722336669198616739682364870399061038321685230285001213235771400811499613357307037417565143947009634682007101536279599785759748237055798966049547466722960688895761362850537197395729007408144888311002903258492244800648084309240631835898190468029397142227950167588663397560108335174023479896007685523805010710359463236007802479319497599029144056042315422731090869123605722769921183967851716131952144217569496064587646716437030138428503469670451614338258838863418518166289590387188539236031980420920672623624521188781088533489566049041763951791866722606356915946394722376142011642100221318145565157383090055712516782995243421148061257122882336866208887514514442101250722484626834656097168920615583673373855567872736547113467450154122400597234486595354156047618933557448844320147930206366532026137716556842782087009524158067986644072575312465904429440151800559015632290970560583561459648821486797830189740086284090175068077697031246745495778191323194980237363757436523465735634958152171260792631994594486609184427608834227393512127400350671434031919272021295287449638569304807361587119200440407851743401177542055582602583595851116323055778695790721538778858809128125270749800047460631530976829317179220799053792087041681208583743887892504853665276158675124655282348242298019382770445162834417718952380113968772022845469233640368842182234884460589285279521257596218739574039338868994127971811802321874527031241691634855566179012335770745335596720314740596892536900279818533575442404452534245679568366196076075960377028451379951763445245101510550345576482802128680675828896631863021270784057560247556554177856528109538244165972297611147387476828775156988238240914612671117178178636507764136023701883771215860749472248408146903899349528254415500436089402821613606202399515159842436841426412239490456120100574067115301766066439588066162006665029566353135649560093059290914851007273824563481953010039532903796136533896203194147954801961977196621197216667277980675740410772825356681860975863643195160349182814712717274131994812001591694599671797678606802873249931219330320956121095893267324506826608045161008850768473841032241155921302808788018233182790350197242962045577654051707270523971872105054525197683135526085111425061806260536519159102307142047234933406364931195543107613176726895757102755630414777226777129702699262726841397954450903481671160692827007481892621203736581999594349181596567703096972702605391658883372520358315941145574545467873241960276370323422755179060687979997139474483887081548814928443879090291355793797945508444792231398822064967152243930265587398696403290898421139791850634335020121474327919966506155603289382985773459437039434452133588747034301030097989379143089192302174412107679073707152574398504376042421519687240939491972045966800165305596623919411049676499993794435875476488581655957976936505272634918730763154343927186754264174465668397290022835772857107927199794349294277560365931660571426243770853109569454196168571415148895056189860950256987808172349544519135259052849121107139442848638709743321038732898746468408665693197723639774813622635381029940430188979082257837587100405638675782706199633956446354540461487269343070962802877058577491809697650054793568881786570969048986838949950427724862789875660301574985355879850506150587430093816250312621703742717413159902376854584142383547477736673635966550967218373598691014143616860358748031117537423353883244391869672456971225147940031501230377729967265021886261526194149183282274506279838230188499780519001992885725943309513010093485186523977415697222300488153633854678048182266028280361935208187662352855440962413031052879182933738272180795026642675947254930615477170537840671810645607276730919159494801558354368934747125982823993463906190765152828569734504630764581323056258285142543192550055368546289211358827637926911204128600886616469684772553543850828970211203374368650473820261577076042612212032080816522685833177206900658952185602679118655988808119462296882036711033117783988639612893713466705678734583706533268019999132606157450246085489444150552291776000280980262018037010109630507019420969101905211489916329615221192628388265441970831633565426954236952902271643269449838773010520568383767758289511472860824332882911207029715261864316866211993338475184304868585039260236988772292907586116595158891023458368914802119527251626805064738442071908981942950297075377274971345400808377403993620646548345139754514012815302359569017694975741265838330603997232304842193012416765181407220284171721331924689692279597061697226933070379031788492670465259554384768098968347515425396084069959907119835054017729667134589137142086709483277075175607005176195862571755765628397487701258622583991649423486801582690571644882928734889392993692862711850432876187089520584509425486182330444423106434284586319930553595601417933394026274817696596435362242146779007898761043364585025429326462712816194165107357752745146113909153209179245118749489083664688302372192308660000557504254536587917380150138008795806194334936082534646781381965637134927155081544765298205391223521521774135879122516190457456034592029604096180155797058673616248957187589088883594922255971490109907350002419819731247477405585343735341491722390181833993886083838559613977583966660231030074400401198221659897109171642547005314008901760149226801611756953652647036818182876971334253763606886766578163448882998315179274302740611046354817182253428721731030541184347824000851356337936900133619942034187218721107594660874393158611658696720725174607858967410428252690842386815552844261469830236671112627406355423637690924996538557859093047863625545397342143037009959371496070776467788581758663514513191393213415200531546267173627335169060422009562193937555372478304178046673056404124396207580435790017089132682010124768728243569755516144492873484656441153374299969362875863001556214619059012378281459462569620700603531373094822224708077018662603928073628973563541798869712946396526051161909213643082939405181284626093464677268162299289689831164574006701386400933863079159272733459327634971053730808884333683777189636581067226463988239172011302428869668221303194935678306339119297918406104769222601451986434690772741542279541020364863222413129049107771080528403323760968823112440704952512206890635877827571113580688270443374994502836890616641532126443232303952095918732648461581111464767043835012130679432374401846975742890317582990206963950543101747859121449510008569366044364260734570872394765893011035239032047527979047780896665321944425205389656050963476817049648400414871066563750085015799678627563568398442017496132716649972711190899137600702982309683187406716765604800948432139045727352968920067701085025535358595207733205902312363050424632431434931537313314700237906559369667066206902413641681372044732973436536328802364765509518512803593565273102354808691507998254878891108909574621623937287706415624025175095978703283611743033876599663626436267636796812234021365214830379793845624010288047147920536555737855339432206549563442140231103446565756800182079442581542244539684154758460918831918699268343201692943286695509043736969706410086606998933230135754452734040309693295877344024505028314061594817324852093457251446492858260104032811220336018227579910818230634328537046256166303082009879818699875109222739412516561477911932222458482423882203092719206757901468862400173101785278582249123013640275095342699189522265710544136062267144600654485578812503313536981560034461976666027393065427924560128903531728084193578376206435386117000417812965807089201329347284724656609621848447223473208662033775977807528766875596073401409480853259026162131885100381236871866463461488602727584211160478570635706695276364446641822213614311654419308444841221299889076912965730623345168769237032625347075856236688201050145536658131880974261635043097629180977075742885202873290408735882128558647939495551045569380361192885160838009193583467521807101300904286816713441798258918605774599021321518481942421171657944321544093047494314330895666470485841708678812008026765188464394435584287746381169023535642151917021058235631636538891882128462456622409466363504841509257882947904329512643354983686394408601141284952089645674487339297505577722904028051660628307837444697233334400300323058541751557587280137194048055117508804410204441386645659077241522808230900998403407185603936305785199194329850755323982652800196079860335581041093436145937625667157993679175999375274222610312811240848829832613182484463725636898820181094623056701041809372382227838496143652653856564461376681293353839209566650879185168459045251871554126395059552979513124880596754174924351903073029667863134279513549256528173670109904188413933624124871528237093332161368857820514577661253853837159470112231553657478638848402892043778571260617972309710828744048728477893081048403862252283801751648002690229041732596631229917978376307045932829015332343692693035732382600212349908455433324376530347564682189354164142065890918011439423086666638034577733124027768532277720633620026040579543372023529929641273648973128393260477644445055398485970428812268119619669304994039120525252865241409127665794182341510776430306881829918138284371714015900645004764449379791384835135726067659682801506886851162829328838911733787853052390564472581328975471461235329799391011096498505030869932771603698494816301754634737863295724287047133682830295454840224605164106718359228597286335513999691853655630548331655095557208421114280520397228534275538777664875233878991012128774173777453993706696637271755769305220697029226513402180185664170477881990500513941174327475515181436084137283259082257606852333059140641591774272935234018950434061244786544149632805228838440536658620698075450546519385280686856355424162407840925285053596396580699400202685717323214615421626157963445999356449027003836956259788908614384730487259404677385828647657923032978355856424691550921482311681965507020962750637975397876883181713705074715423318495437441780779732794840644225966585554886912340845922372413485222377893461569879954996114058150327772028067983589737263439707269763970036602987258003650875631677121850601675370962344059875434112601960668981979843207426699006181306621032698127406876458681483660962405862207010863319771426738116855012626794970336770080529483957517609639604445445368289933989584036698461977631547751467009781194805568482760954759113846734801108126970936856666524317327494438976918171664037806896972597266650838203749042105890557312425592553221699836252919559834446022885672850255799300772835356494339040693958410328899539170366228912673641425464102730106376081325030797772619484128857960455558707168558534467722791179995760627301910642447669934563996840348840085790297453578069124879448409384207173921142020849732615064798908427070789370445749553452685503558288019201498567368319128622460747630861385645709901884054659345335068724140387021779458735180018830715408604478405737042581145357395507595917433490038968871123391971411272906276999204101946346003053906371894094343908606681018455695818143881559323796923494307793324199726306008164056141158699223675977564079578850282380872446045482802086682467265587672431349094341095498786110972344718270175104500681693303430769256114683380669481777283059974059590722896491939487602252675598388199811675936826721938366946537214705608877119100823549124682297451682996593656858085474429170397685296413867153853352912350177256658817437499030300079294101252541936128487909816552176359187358913928736508430043453429549911516565397687656152456022714519435880987552534675867267886648440652095797897578294986987844610712961349057779584955606648105553249551288836082793166868310774301158978924463190990776280491979767154167075497333465252742461273688268875284736322167126033169902300160857554506729466247088573675762149388985846960645011241966397265790998843174282595114304410436502535266541077433934205604507953227057704317666677039930583314309894841862599169923318219936207073491835160464289439889779782865073006749877658542407870538180272724243755555184199330940314444253739962477460376893939816376657532788886059032027258912677002946818100516575787994057517937870986982656235764716694005652917664748473883615479639019962227962592707588776508137583685980563451146024691335023218090383972309880738646725558740571495784941245757587918503694574452849996656914735347009269237348151627759890036990941050228363032617626835380047498945826666482440304860149759939573253691338543572463641630255527210584464054070645167990541762509829962612830829643570998879468718108448678414188995370974502982345331135990664489627636161727157783985478209599874597465459875040241484396313036290137890708161206770774185581581735463094503889353198083555983309310958004321546688355702943779392703582441184720887732240886443228893960042702718547127690833266574710509758141639813144656442610610865991800603769452480587060882132784751122014782563180043070438359956053477972931438481468268366745047918314089466614905056143557095452239671850154677197707404772295622221919933339700681782194820491778622084673596112309914418369386196150530446410675366333575730022293306708747057547835637533434538885000392627564856369713686880317176139612565314016743336552296970525765543199876039774286467854467573767220838034117319438241227273241633352261936336693106461988797976679104427216462970495490314152455401704667022278670472580973385583354239830353956785559617272674078534558540489437657349588293132815804025320450241973649604365587392965932536830062331919208158310148643871040810355346676271875886744577872591688020392231642461077076174137931875882395169591908770902950624472331135636538928768515365273059178573748781349394846637253155709794165561288970159969737158458386404383825627753976702106581925485657328482113496095992006541460475140355931928868650749571748085319855900060079011662402207555041002430323907649077589911329560174972176628100950194968433956214018752380247614758763440653080676595505267495461366821568050707229746923180826711381750053836014555025072223300174930180461113136845654661279683059158822635060973738185511830405427641994337851233772757767731550863266841043268342998788503558917344744012121647186543115445218047905166433038064786798653817876679345708174475909985988151495766882978923029735809572054031175230404887258374392900697515474046103882478273914613366253660444081814443885260273975450008469447915446588655086060519675468535941575510766714388988729036287779170246073142516012680448861936649255268069158512245672032763582606251854755087449989906630498188145984377699319796412139909251366396734232577635142468491891996351144335404642020044460115242051167772230376296155775782533325355095035932985348805045380736536600245063716623792079729151654635578167850338933667595293820301089315062126181926531375909025133271086456939078936035320328729330034307478172754793313873225070932710627730958512146213897298946426314198313255247819840752572943042073629211843945972040113433262527070416911389168373311115013204155726544698437041839066191457626500099157339758486987891519712075735733135894229969740261088772700278145231414429119703313753228517371772835877104576596096387467910216828204271054778410016306059318109004129045313262988585696820433469548346390595674618431265360603732305811783110967297306664394151782605752014902495981031728987973975115866764418694439427059557233260214062889826990224850772566901644727429567291575762395952786431042193460489141871624717885338083303799131980799033622951854792093494785591118030818989036514792176234449053931473969594326047057730983642657950256448340011396132731789477542734230955637841410280253689411409048445290360444029491932997548351858786087717399387248662688818376242010617861553997737820039684922028980505069001956634356572635518294405929302517410950600376264481253282832149154747519022522509876997712231206943237816108874153031002331848233932069312361683703676255751735490415097598494104568738772887488157278781074853589148712303385568129216602085820056097436739387639543447796937127033033199300650274776943077939523561194130848373783431844574525259682314529358089781838344851855136419053261105524150598490667119309942406632604277177907567853934874700236592289460099811727089040028218246490874686334166661378878697416556556977684969758938511531706924180721118860246497524420998097025937043303512177977356732575635089986190873988038570999930745377229246781523148168037800395436768582128391561087652613692688962801340205646863227618332318754282376587822966023152754270278352416034320167141847863008305439279344397920778375040780971970224016003777397756936066420872573224542095436806722743163069822137837085708033835586409378616052193750291922276823842346170384718568662107087348145812261871295483438446487344721201702858783161950832415913858905771614150689815473149639817801770780825116356905687133012954326259299184994639898111982242076702989035002058648930229282992820541661244771742515669534526403119701244438272229079678719805364361592553542825288093493889152902119596607850405897508485960371275577773067321786280508543092292211524409691833993266665697768128323454108287624416327519808288672721691138614491613734360780667234200565892176348226218838938779831612676989664223653060044247433127513263807355177553758251303480421373861720212103801866655384494646522260875567977056642346569666078304523088741671239166171013740063695191104411058673694911828451136933438470472624247557045963817191861041374102930728033222096832633442052845022973306639664073211245389589854903022913711339810979822984135244877483507686287565787178017041355577922035698397986501380901003438905560406841531352894896474408008542977256654767326681901476584445100138974837301250865526662379882206112171129018676549549677226469284498930564919298019103117293156683542129946213801731751447234024530190098599736720211457635158452621375965073867553363744325790492679598181367678481550077691695701027630154027157089454660509707246721135195269118196357131388781816113685060255327606958830000875615522308357438910562713439671887391112840212962736446944458932711765404738651755968100259943485717287270115368786974207447133630066263643250869898683235744485755794986540537083541983122477886958824388865929025306802387643445369950273395342641150582166064715459549613764809812010836361278543263340911030748587661817986469512640365962997173100259652156916152597025337907215415456868678595160525582382544536336344281739804432421057444756526042926906109753339259502408290860657580227875489492195659153933385647697254674983067173436240296353680991635452360543000829907120797101866106701907727282702894215639719047915033860458894872263193965160458043320459010025239254454016696492081415237634970912919961692065695182663469189027710983892492227804252687328912828241210975496293510904214703051029495972747237424241965402539780146016128193279803697635556833960873344712320111720087688818015013591407161485652172583019892825438074636804203473734428822839073666459038490936248589613712758457950378100141279323576239697243000729430274039874641138620517051981469774560148711543700462591856157971409377148423216454239922780150632475184746822246447579348986902219544041386494508229024174705557281470447394438569399423244719060667183095036332784454684450544709806582785953927654039824125780289194237187830239948098509112762018861138385908313536373637884325500215696032919764954753751367873168133214986632151425816910065210529505384541531442671688595339935493503967282372716204181102466091910185343460975199191020112166308708701209460575611393406556319923576353382857481252682693537059027093582476583080525210122005772914613740364405554268065716686113634785716337593917353732719123556420081688266591140380911618309409783994365806587562410384591466747097903036751250877785886218782537760090314423465259144203258669705695950141593020786280094002763474164125772398635306036947312945086659429831966691533973232180195262792530687255711510298461268830029995887470580573698879046037417000786319743068170120274265923470262008653425905348804954063473770775318362164815454964129973704018342463540227882351387651064608233548052042900976384013875280214570583777520342992443430228537851405376737863790779999768459731657655970110024000835350859770655612036363513871106422988349671447322134282954634706107219593446299424563324251450913020339870659766684675514031239929425060334574664092946687902686252894785984667795887891414414693118457128653352123081205097084708998769927049634409924911691960344067057790404242351469739814658421971600865208174661490067596571457492129815957168527343513821184528953075640865666782990711348738785226681744398919067177776773139604517841345814914706710114794606746990134332173007390493645995093200411282922168530370095067158970163953677028978921386798136111353402093235823487634758761209245807845887411256513143933087670518509367273813160013900983198884749938227610345962791663075218758738678156934286297364641395101130978841616574430732474246110939781635221521865805766214239430757737005251827045112627575850628302062580965488904588406011181465907307924496432405017421054113352335143656379217441514399281867495952101688718971316060937721006065052073994933509456587315284970581361067441158021030611363990886058198556540618144330953037784226769714608950770890243136742114298899138028837920588773340308463513250336276253429408937794048937249129831589422335574910005927650457499798138012602201983346927021336566234607172364715014943735602863781988938161280012557276689606345422357848088292448432125282582190250341186034930393875463085778072727990119019942971204190807077474280789699484879879063432616006746940784321063009663595270295669075869579095855452853678379060609767320008493166121801376583378201291764099773167745788282312705493709721309017744074507099628364705728871554303587083900354018438835371813648615269275617523151527588539721625413006529199035260205681228988185409853688620892367259573078212887951165443311221086294960212280316907754182133642832111589649030304144691815554397954715547353964245297967671633346137783149618258072321812447863651990651051664794608961895510277816890876807127028877885794457986121098402711914150343561134216956022044088599636865790993158005665632592860253964176128552905787258881882984515517137203772960627749537943514047446529623736922330493256934917373926740534873464122334195001509537748180897552348156054832399922134486550940038676197114262136685928824188863584172124586296423061336210755893549376853864014664656244230339685280101675789872388256867792314200979504022422005946978042813068499952271765983364550580134316807274609993989316123169318358371563569729808626790282819672668696531775683824042339296799035331883744993010039370101130502171728036175704719584916732792814457588308668819608661013204363222977489257777496964755170597879520733371784649663523462766750090602867225742420206865405653275145087971242233825971314655089758315860181485419780133598954391041220796703091464310971335738035854127456379788306290622411321952393740206834075508880829528005045472586566715604903862260426896245062089309768556637576415649017826747301903563886266735007563242294499767513332003617340696816953011695383875646910789659959553200837291021642686680019876278337985283109044883390484037161626878265503455306228379554771105053269196425626097305802759727576189963207470856437181087218088694879690650634255784374164967073432058156938766877772073227677870992424544641148227233736971027192291632072691972616819172767931776237395599327094353070551482308438600733297252057666765064427313984134463943324292538136311414611078153398035647753816354232581251604819676099705221052403026674557512670184106815784731022652471209229131392979715411388616490281652516020948405774845647804463957689603540145768589978841932523626932888284565200257006553557085577699319056639615596359455061511044651387824904949317681222370877360349934609322551616480970672211430202659212928341473945783879000049877403652626051121746768629471789996341991755489430308848933615453386253121612355932450696148333183755392438690513783010247889981595738960387035164133318696673284525852220440976823273907350600123347975921832230530526721986930328988239190079367746782127235924530127553764589183199569200576068429769375249291941887482085018059832952432696878415811274058560838327716395365561535333035071707747430701336375040631366088906152425035756399973631139663181479753093899774378930377864910785669366626517014414690661443782323732629620892169734813591412258246167699338695987473877739708051642612638272272391867315897227199675464132044632146286973985099602558189756425958172125155076910556615644781027761814197788682389463834763204333253123259286912455737234410877181576630650475759605397808209044701041578824946131309014798910826802990740944912669966359848597164273693724862722232376120181251161535510178547871818766777903621358774675368299278391884580298192643514050411203870416740163671866029667245838451055077873014657546802822857565386450321502100368531273874315830325334179763057037399002277812602525536149025850174295609125976218991519340158680145536763763776614391643564507147468069749839050108007695179311183767539187031440375211316188831391715389308757458632125485839191400957955610597897935334789807886700125787597102722889899408934103278466132907469139325467030455472474931246388700971631634843779008195794518847917443284371672987136413990667023976610063129255042659288470578672835369674011271167214114936927982667890722590212105673730090935118524901116809946941421290420234256690606742837480648210482015448993317780777609089706934027491340480358227117952072168555730412846876048640895643053766243958095811277183831986211418596413045596246977234011616231599347554340567914062795180332996230998458859434276036573898989718627613965172643035406073930510315217854236139079703756332454857510755328120546201736674768469983675339378299850289924812508214734914284175170507895433051354652420648385055165663304829533517965327574080972182314537553036512106411496061069414812570780470191067069078153369873832883032199434967613980297017102383610098849827944946108853140879117435984265167678315257942620471636269569216985395121741274310160572949255917869408347387427027944897828494584641529440046404322758495397212539198746824212197679837455854079333464357869898708148119102953754920600296282219856447940987797247551810188239414947399666037615595824320993299200346948299737878016305384026139511607625185935122342081853113624777216345242228804068166226339741372015362319111925570043233439703197543642101225726484717637722097256995734577369266277586947146648582776768602601304162867804972215851902830118772545914274149005793336375326108557602493789966493299055700086927718262713057324487847348682678483031827369579122554361850081541697322744383454793741028396900863737730434544724161297847829794110844743777567362628971705428038627973329154128652524871458760417193066165845667412028884946192146389579231078816790138946868596052346656114718634938133586744479945377561258021114369136312180649257321263528180941124970306994131997663727635325375431678782414354097286355833981072111817918338571209342890848316357599023924616051057486120927682017321372990026517872366904240935412953677427917864002117495317757409995403384972306692631369753785597798645866372261353838632418040062232017453493884491202125894709198097790061955719277037098457287211543522594726327169158253090970873164886630465100241272529762021129660820191660125961349732574320058978958411890184877295425041649906436107649086286328529654812775581188313144087623999071103199265727625997587189668107168821583660396565545052457817748651605070245718941346972163965732429200796192401988349573711027447152942990008964578574079077262424378706149963526946238409828749677130427103388588940245428960590266692868738794758873457258394343397312901655627268433355842328654509092183333461035701634803078285082213461305371247531177600976595085382578434522657085728366153280029495170704415659257856216892401381439427843156303733814904758711170332488633495410759869921756804574193038649348833456392259965115754423706922836103309903664945127279514573746897118391017544667977654694844786698125158016167110761538115202866616265149197608626793257932357271734835193122474155156442280539098401354187415795574191183999613912648078049528794880827352067830880947330250028292490047171253417355533093392201698649100739137749862024721157913392468262915995906648185588606832739586450210180582429961445890852584405299548330206319847255122309695945191053719669055571131486058696908023965247792192163407776597499176678162742132563578604454902430670583266092281430446442484881771313959104171973681719037179235288516885389521767377681721985210847609626784678976901545881659521450651019264385028813283098519974314631013106847122561131031941643876065003940135253962823913722766270945981322809074444746200377385477381591852772236528180629382602712962986654413874443779649818484526903847101373029212722086187814249371476645466042377775812000945515816804125931825953468444285036727344463445734556395581604390712710372953760636152834609897170661613586639644771481926145524549203987231978863141667222560268034132488704628449441828824411187958388244145883697791931820046454020600054023407529375382274660530368301197964304025657455227545810643797626653843869699995795527349070475841528650098964383025677403799694805836481037599294769865747435638989148932764210440886574577163164041145585657041517990001793264445776450168199987459537425509848240489085171822574333563117839010251607676435646622384863466979556432749187271319063494910126663654540970596317976215859987924619005544354949880647109234307255731987815223978954003488002712640545419355670412026354306421413189013891568528741010367963933664337632947244469910463603139000409249720987292841508372237051503974414191541501072137327502767220471684863782014221612025029270707262570190838369327720906574681622949489092842386909273644186075998803977821354681837040750580778637801249221803478023055448184262065205335727110308737008722038966402334267622331305120076657057133789000455565980278089197106708390957908512109179480493466808321482618429055375236053056973998632085552408229658259764789911972106882423210867612291712236574807309339199094827219631982342266080247314200834475616357810136838882401949481682849239899935433282694769092829141980469771959280046227561205002790219127753176494127670746896044965606965253966874550237427487146639985558578274067170945651199967494635365414657764002704550211564108456215453243711665245667967146919957165291485791422783531779028976076482845740627788141064966103476837508666050128493681276137376997416272115618225553914897326131615375788709529916438728731226363786989541738791518069738594903394721027519937930200181917418372901355908448026484893125790036590457547277007788209126413568488092980974265240538808716461373698027775163041664618124997498351123927430317305315979799696224049108596025202171479986886825308532292905888582678222486518995617398734518451439343087418024504113753525592218670020212997206830909194729338290544741979827606984874915068712273881214865784894048599955217898195165756202203721072105397695822743624311098007892533264530129681298342032124941222384980859531152011553003928946889735462034351471493515201055504937341617855686643885713710002467446469929236212127663625449627122372969230168954313398074223388826457730934968626871410346271268790892757402140187517272498964445736250240617661053976265030666374928662988660985991276692203917975618319390937168352749157187632049614735456695022109409642726739427240190112894558762399542757779347535240586085747775615429952593694960224390220063355852638563354503828149806161287330021693518998568373569591543481557329537166991608409395986720594719923095906615170129464927731594471885241378717721194399814001775331924778464773600099782604064151208249505406342674798338573097302271409248129671777765512893607328539856917876149432605682279097765308543152821440758676934519427592189176093786814971022566939257418922485515602078645499499718941970689625381014572489805324233038889432284433174594752574085503003927881139604312366446705156555106890098476872439875397383312917170595831650179139963142280540337819721040778922947483263773224727603894626007509143950741672354863045478021571403743835894353438957620877330919208075102030844427869145963433706730445622350950656099707674842900398772562341405607159960636812472710603879598785390662957120036864169369642728381867869005681620391681306510560177379841883140646113535144156447353284293579277504368434558983622207220215174020901207974936294922276721128340619667092821496504915591102830966024870212258458441886953095695603581944396379337051544127911876562580781920791248569357330648796628855285463241890662808727300897039901715826519872351759673874374898581591209145168323401787890916999290377786866386742413790308873583644557893252086320941175517622995419014195871320500263623686143319572456940224695360023481519958158033708296589663454750990600776729731490425355186181173094232072542006483936680565999208406812875055312853369439444028742381705183405465319944553050579633591392331028175850917199946936984746495826513141408475556341188992691898344684429818213595776561623203863155811459330808278295717711875881759189172598645182426028668569999205254591106761314236905339180372086436986471856086809442750167501610801149191931345281031130118192969925045434670601170324561038728445997504115166432235943021671813016626357961189107353562416381386507175583760614793796733744226600850770609602858329799294141806377958991843443305860711369762903596277980213581294256091092150377121931552399149675020176662626578646558841524417611030972901756421379942676657319282249861524325058853606008783751722984436945865248077513184717028401553151471674661733787306717061245560552576044221383229522879676213854381791368486958192474534052736815277097010257536142441817442085057965886140905151586102617328079520764576112681813346555713996719626177805130745505783092681799604532632686092135234621082511939610781428168002551435040861277204244533752015410705577729542173049101233862765566464768608432236583646810813646406082583029252474810750406247512550536227721831979639670925668922149922985005723389667639057028858514023577332654263306846497338656818715954996000261978640558519597523354728965996859263868590337094665682029477512481136201239101835745099713121005847892599670890134671591475280549868302901105147752120392699801470020166762742723343410778849003841836170590078237832681501041899163556616055016194101520005968990147277670979001686610395209198870230984013016594622880532175775240713413472062563444079165358387306496207721870272080947641166204403079421253827616362491325175174882866261524814767024070842417488657558993002994858503256519374189596313555052950205761243469051978747668824814687838495636167651413416352833763061305906927384810567197054238283800893045309994937370834812699122804653352630496910946861081696572416942153278240770073434016311878012723781971871521346433530729541481967129657218554083633602875430174616845167682352113344437839958378528385279478038241073648987892581514686491394766998284367354764796877376516836867441090196828168849989249369390371497868623538735922864961572650713809257783484403147186757467396546503343104307788114590391318561139864677798294047757103989686638894146504611284525750137582673165782744918588304442031701627319350276970165463874450762272321192386857428026348544785526122999071529674874474996069393718499873166549549016682909259645821275641588091777116148778315228222370481887342227261205821318241092966896154824270067193806172865436739948542101765687931891282303007653613507590396107720378468265501470480793870462839972107193286585260910071358387730499709666208825052871800002542129056819371861690033754487224830192341909553789928202960092395348068526835324585885561712170321880033515446004782128548473066321777986767438319207013733221614207763165478487344770031052793082594713399629161032633249640077352054648222058766688848955801609347870354870531242275225183211693113163147600931286986155851403019613567847110985331156573039201175195468734483271228235412475330649300108702645535645227331444075352407282228815356153733092370337287602073057401124728792789899385775995003007115898748139268809297360023299868326626743286653077081780964087419489296429891700605421553870905680536631815505283370187991561059940556753542069873073055077129868391141233831307100556361719844968222472419564489043800404665996944994300299446989657270333012033571666173559184758119617502911275195450903883004096093524079432162352059015823228756090992217951315223818035749507276335031628726223657314450132379430452968235033973778307777694579129265663398105240391810859779512093057867615133706024909243405831468520663073755723950446755908453416115501221299875039322830881992471644086049516690138891950798541246782464917781953529480845101522342168971357234504012795467361235809758279456015499949591465756180492492100498000540751527768472834642398008369859802475401532527805325719191686617917323946864494265567401929834563469383195067085540033584777640263276122585332303159475905231546375859195638490822978502027680114383541517647736199436404525923776924054286496261914541754389668096474079162068651714201698886460745261367880376703867033765747265476183944655230866996142070613134338080162876503283059703113890380847852663472889887654557841335950904626964503762831975817170135038419448636027000522240848526532080705113026931400642475917938099139599673346787777118416023238300817215867194289999942813541657874344652615771388635399372443783420595489893140748834291400429830410209650159004629891995514943561434639048991271083018270952707893222709974631348396004377968779342878810982136255990885121693427997283941827673750416478486436428145410757270109854367347450592563245411364402618369676662128527596005835906910128825907292712418263752936294978396141013537053908843531322403840064081483067524078638294165583588137687426746019853578038550741634625632475715407159759835973425914169272976487978996597220694232286066147614697361797675270326512432908483159400938294790826098091160084022807912897124651994650168860379942061615980792171467077825778724762804633927688589395682249472164265873331970085926829150207484728689743773108618527461283141875120492124766407279198999255311667360843580770044679126994927132497935589596187028494968503782860371680793217063860301965520886343247897797461822246856845108471832314425061372412248663077230339958281827661594428118684584899873834208396814752547487320650536074416233491401105833509957621090627957277536914315351735516934462896652365196167638132223219285780903038333524823628407268497295970524012056892894789726235102111343567645897317766482686282879945344830456960596411592818225001276295539433894786449181348025788728997634153923385309076901975903754123787812956975255306693813333954016601254993984861129930059254344500949968075030009323987569565219112312141333589938749136365650335770050105799023635860903351144125304283934991451329973111875154548545977575569599405175369743047303386114439425091117912854205895385909278780618025423533598844532643573557162079631028770421808323060237003307874786130335050528385293946593137414313798174778470757563960200098820763191321749374597242445150767605933439157061765630690879238128065452042678284328407908514277449785404779099092242111423807802763177748787239662545975006710291197266399432654319348068051962524235283699999925174657164703743525565406079237613723277687323025641527585021128659098271313606889308509199824718559267302387657810996785011818615493157121669491380534554264579186495697009889611240321072237017391909409223981899960084675712516591342098954305323241567523720787868209126595237993627491578739532242711232314992175456549241591826250187187390145228379302708940586136158111757473633647056146473884196995639390132561933770695327131850423828672400788618998435183753022644405486130285358775552129756122902062557669471880628156118985545141754183685857087412235047746027940466548048656016341415408873968194345151102037293816050772302349332765031812829986537355022601531853855884496607471870800673774606625204707276015923251771291586094066298857388943205866720258668760409118037574995530165016665316106935644427281083652556872511569254385816920506022669880735345575871635619796492228669021098193555579898023641943349248514990927604231666792061191935782211176585893437830350993548427726012203510824353427013447084141787356442578948653210723176030295490452596911794734158362475420475912538688497032860965117669284260560657163808820216692806325039918212974179063315344000579461011456018195804462683926566034184977249431639439204286086781480807655865754568573641432687234418167051037149369229196784738092041842330662005891861029272693471489746041542111008603639854384836977982092529272418396372659895684869424957602008664597550775261517926441992949573483403659873632451678919887695963416679740670965218261599745891805868208548670688419116401045892141088394582338722412751840095359510427524183690054358465999706900823062799918314406658895157090103531675506082681516612468027544827433235311829342642135749015955795997444904222955650464410808024243981620638367420588745264881233864200399892034942484791931690102350900144429034932468825709121780022059433386116456044442477203481414123816816527584660318087409374614680822802011027140798515366709708993196664378567899867649151335557081715677224724014375697270399844926345140701361174168474555369403420453325618351637230583742887417937467215860588727021597450339733052895927378006847063656695102114385397239398451658137010304831686278199440019320616779621873813878919031773210422638449548552583862411805592352565568585044722685734162312717739188615387502698450317034650230578974262889632952074499892988700307923940787275886026341159453274911461257797510333233852153794316015521394441332387901938453668972739852925067165006688045588050058158764946676574955628566406039699177252290159384591655809596921685807742698785961277720521632579693938106299507295437305484813471393559161839385943672247230939726882449536036519521634011584996350452355778044805431397626214304296381384501878448713600189906433674463352054372678826583077875907412021568904121160958758554144572921515538455984978418139006168320086146001320552302561737361198369113683263889964606798822733439416017822204688230690323419101282459653261330938220068623124821596966231373181457676706953486014777829182652719729967580419323545256751401748628400039787251700972785023508436168042126141333929720024856074230622461553003460840689127065788649478341385034237383964667385725417371046525769842595970933703960282857284171588745987689415258547816164752439876141599100336015471303205376562843082264150261677668383583138698657939611886804123978099553690105132479103858365519489776123298022319533973786690081858948289981053683342757733341458614736591867165661909671902219638682018355421152239915978165828077281494560484634335058308688757359215164873233163945005211674488089807001781342409426820982029405413105486221987116634918947357079204431877999996764284632835787833356217796095471187364504314474778768648553407653536745437661999803873248411688733408137490419838357616180026883487363962139398605614205164689438195245645571735501167224946177228635425582540902317311917988217872880162240937468033271191631342738202457621416784222638726153785838589516709569524349115202763215926642633736286921404608518071774946006344191754809502080385025223642880962979937928237953585634260095765333375114026997943509909012988400715793280021271822889479540294740884121608634681779025214297243390245172579612963511060683081265557840946090056117870330260854521471717284042485429827180568816634192597851946180708868625226925178682208985625501040554149653749689603816128788751144568237199724968704162941348700147486238051764871484751141386937004385315378761173904743563745954793341381833300003529265311004077521160571966648582650824348054268757466348451441049581428377174571136688335057440478645369949904779429778469832667380315266747029110061655645127238062110190242054143929204398776002860141145922505586733759462368603708159491552014644569319637159007867483163199921692390800844641966088083154736523036652476855621716972618340329853038091039585409207447961973750178237573759542849936528164031201349237585692841890480548347728837033056475526427582413871057507556881185288839102666499837993421154447048232168956939262330719533282617725042439974809232632754062751619971843933095523993469941145826680113639530928502296913823835550484659461396905373898627060786409900892706043388601658480200873521372402858556131989238251729507722052396637788273590619735267013002531934297358934286835379765725214559229796449020098194765357768734626846405019724069415377684790082746843287957140918678282866138705841616906192750971138606722503929893869962706584463340787509751640313725002427646106538475035267745148380724833296514397260696432415278062235526864089924500850586603632619364254118515360039814968827808986512587129577936488089268846324654353363941946251989725827880771042034209279574025352605965435285140043960996398379971500238192255850150009254267066438461986762208557414278323938483949252168770491514764469606449462656162105158042157697140763194239339300041746897279079355505908758175853584622628948131172124732538662596431079768155744881421486502869190230125045913869467521657559467900249818740109748414228742026701835322038179111127961553568510390328023641351290598758816581452738909511437086361785180732140399660340060142210211272384317269870895815683768834831848878871263667878107392702058944848245341362989772321664182596330610796622013179770984163953254356764521528672792191508861986154956089676466622887607419516416554967337491854897132673721495915678181348712458745944564682274178678623788464194668961063750989704084110942461769283376789618468589891420193698708178946535876386999409984012284328326174576117875804934496043690393436272815045680897167386702013645166954465986221694725512664093687369973912975280180887758464486711961871616681579179608758914163458179220747173274503912753278108082964113055865186688916692464337309946750509971919843399645012447865807386126784594603333466693758938471018878822529396516671324555662348171040508015080669327987345839595589012538192852416359399323127723548852001749859695639342070715299628483561780161837542556103589657873132566622992614941471824589373067244398720996820642570902213412620036304055338337724686328983860927876251373619124182623322752965078120301672417947425879555437290898247889022966544769981238768248497639813833458860437221026835486007285638074938474286551999682474285774993773367111783716828296035555559458040443151049783464234584128130469370413721155299128422373624252315998007322021323587583715781131770640844521287055293464433354705311653899388324933970855707697248452491260508308584130070469823641725621689087356726935458708498437608716186503914695896860419984190962086599781690273131079271115220900465560203347494724208779202073400133053892636202675335854604102944506477436469924464299122013583415981448072688376181234161997260584036521043895513321314336920909538237929912604609421863490126797232456877742772601594168422203966822863711463940954378713560068473257618716062507794751497291431527668061012057634712107591833961558139073551653480270701937600432900654329830272063982327482988007520505039171036211233937151061091299426194518869377748228523659599212091120998323632278316783796433717239225546459450919708565668604868585003346481097606970228101764016367750865803318085155227753998778584963175793816198518169030975010005672613869248235168861223884112903628292791931846888113638697784423991615457118282986881142100237126219882427019132319368299222580948013540566214974074111798751482754871393988133685635134417658399182892221794619572034840016086115258550667231376076821838091602514084625817714154683913164822537530979995729960517005929739109367817027160773215924996693514252678429822775157426211240799986619055913743024005508108565114942140675616144498941042974809282071777080116115471354284750945283647584279187116970368045485386766428318824583050247742363684363829444573786654596174055277827826281134685586159796744079630582552013910745572267429761693520040551022331790985083743853677664055553104214107667530314186121976630835428830279548181487348684681121958727624136217190154515268004147754388472033198466881514220201089525963974333372543119511985954249573152965454199317380617251838991021686858185747522635609946276840355909724861579368811903295607777980780980284236878913338236378666147012181348951508850332918213735077449420635327246074110098382468899333614018557032159674482860660864793083876646947579813456940033787230809271099912765394751961031938242039639250441296281680073235511769906577084338536968794755149010896621680973572206778429749011655171069130343182591455395591141690265603697836543458252005924498549732275594266414277391447505238512946734550399880064534748982470588834937307653693484929310595685503242572644973906915475340046509923730038061465822451021614907167795830151921425484850336635628300531598943420758150362587906051017622585386031537447180755241377890102258562890843857043403665957663407198899223713158646210125411643054083205719416872374797030996404158749551093724285229041708834905399893296416711300539904174730990217110301108062715612442464540420001004675117117148030620776430236368984745019629139446961684829893429438888667842634427242294411726608478687446693322400860716274751618855214350542438420474439419937181239136641018754733138097683544031849516399435538219895208610101505530864131549653440482281351043290487175998572374879509710797293174653873291542961606334576209515148962907121253731496395337613789417420185800653383400289487935601010072772647602449791817306716709352143079955600425383790773688697868638730937527296796291575089713869591191793161965736284823368893321179320918692446730572256156425837285185609087064966834796562896169234886450239708960477854360413329097783436850561950519942535230169417901155709030981897220540489954961299972596464981635848042928259041094719457048308303623848307162770971572179848688545455996324042215441769292542171546755236683598652495181347998213355726734320312742909287742485117932692204095211811322713650104615021316374815379770386162167394303241982949084323074926335590681382767762550588497746562187764014888652053514914039955508700057931416951387398370889733425748009825297401441636955891137737865552178628468174537919615784484930806434826520087365311817469960373837435752768699174056011089995463261516532680734944703858867103902734678702610814321539680042036088244696541905051776266855627928808965263027675126345317702103764542735287164284521132314770666259193765767639365212311690356443150804601176398353107599089486878929665724482383493494097776668457770982023095112581145272981493972422160805367071886916602059719969367309368959636070174670083466778881706672536101980309402156020125523429792016210745515822403007613861322282048607368793679067361319146567560152927058932971152016643823730723371733627243765371389287859527039641586956699909467299543314236695442023512311849811843711336480120565682488222677789863785867700674821442186017310126631107838435407374772182174962177859783327463558244583942050863723002906942005185289468851608829689609107832790233316365324997607753839652495762636319890124878732749024825601455755904590688160295636970895821393543111540863059792984961649515383512490245902544354365395542167183511145839586942875118000367292129185962338294008616011702754551780801164691577856296686912537394723859082033812015957870512370947011687039582975777693969352675824254352398494251121606663531930340265193326323041179514701338695995820440625253385355270805135026952870925842883351868792656395566513035526563280606341067850517173683822545269471304014635867165572123144135934483866227549646048453929972796542000154002455061689588211997892042671374265315940579101966094578595800788637099102461287375244845992902834704103336647394297817938177728860681274464449441129922085132440260959618794480537097963515368480869927625054908092548625440109789184182299555013090219313107881641757959397349837257807804996911927172811131527486882240709387539469111056225449500176446772500951199312696806456895302242235860461094479670764008131001583124370337458844335660991210810871548808444014092847166498244168108864552811195034693823751452171778084465519476632786539223832823534966376191204066586268956837237841648916901390909838543376220210984086604956436016538328535462582781238391772633724910411028566123214864939099304360285090290575145453209337064045235124608464449519242014673694396713750738254879913932106516717549780177702556618121631348583270497898479256757375671526394523214809344558979837756544117954149258747926619254284401020559986280850826215250639257465661998712145547919551951832241470180255355204637069709021397771681140999495095590760934682745446121320775203279165524917435449003867828673058569921749261727122435216109510930498871776713861808520020053944934107597823766341845011135755332121888487554356373096392550089164615950856257915808860283779506097245089084762074490047095185944606950063897634999277244501947799181358026381826863231178747308213126975777174182742257432008098581254644415928873359902393534744720481006494668027946932593479134584532632839643137353555019220787875959834507754273053914384955737813619357980855966514328240917877781891710775368938130753925618036485584622713246089019444949650277745078448138246177703087410234456244875006956408411643934660322812481849346321516832409315248665981513184017770032531466477329301782036997521148118996045922154772098447539605444283039124433693639287972227473581427563238630564591852765584179262973110979354547190164110966678782015910577563203993602590097309271367555744848019092570839201282309679526176736761883854001798981655430732310282610887910939595346363695984967727888450439453489589190184098845619637025745233524339361321674618261125067577643905334276960881088001079091688769722512940962235351063478289491983225895781585877443895183005780802772141065787531270880291653263200970146574191064583947594775406213592976287914614443327730742637150568324366491533505755589514974461484389373594907141039166582272607710326050213188264834476160306133971394281577951261191105782258885715683396528620268309036702762562188904154535332483155214915632051781347311902292362827548368921144948043128932468027409600377683299137546752721997776194908822064788117794509302413892743052182820489732918196383603404369863080151658571624751874341340845775633119854902192319465373268101494090897568917401582116196349038574098523163294804241624563917674856027537559221301157568109112450943134832641201663014283360921090722766141468146814847320667811557788736313154645505456123949833597766069365125664567736297575205000855976142832308195265308648807885209507331194205784387263436993062579712001087650216215280891329907471302035009801213638272233633242497012097190990132872093792115739147667138422870260967631604509452783579974945837184028460825254868512177959470568487019874977911682990232942504205885300907968855583711207854253716257544645010171536054586626898253840734496156378272544263086445610350830214738062049990640883370936700932053402979547549132795392602784384244421214570315288538108980035826275844517048920466464121363657241023792829302566036417889312121063540136455005561531419702921203524509771790775349308029929498211228432027398630951895426022396305093996724190547070582778008337230754833017481117454147493749140622115880645828387761454323746806977096868254321470790131279848142147148124451862913275623093352713943016516939475237259088739176098961880069057514917026749771090326397916575344601823311688309765887642274600227703373665962528554889669669428069069523898571857446634171473564736276444509387256491802731586152441726800807267408702263231962232060430004559331457823022956597335588192583595829989003220745397767611084429850503731084091686271500432150373773021302205286619430837562647503320340518562754796225686017323145280234855659435729587703745638147577922598028434831240377510255201119640144693737222534387594497523886133622490389472143467844777195131489331372946171139294356795171812758672565376773955911407968344520598454958399030559786060192223624632110328111606583713115126251225738449462375297511378207984958317567306926455472765458568403025703454554242758983612952147563504152716664029550419120659013917024192549263181709648286923177232582524420022238771263554988623021799930853682238313962154116977004500839155879642261637743810539775349068861201966461470823050805841604546072479352952093436759330145301249336636056698763189921499378543552639585351641608240140631775534803765833846837344485417165924293601628380888462002714429697835176692751772035810651721173176862567510538446860458204568766484107928265406428231110427168473060782362356320654591055833533473510314913405371130975308010573170017171276099529955880780235483941902913079143309050585421046942391758583808331211844095786249439807602165922702767994121184350448422649613115497755470599317641297279834080085516360019278778824908601107201427911970076247086202477434036353702747148850223172978987925947969278178919649374299574272637476135075715411501629916210618359032007853095275783911460553549666890067320964571318180333286867317486027216887126457017342474850539265599645007008951555801780946972665282393238080425671881286052433294371122349222024342942948463527999471209837186459955584289257163104038279463775362631799613032488017428092053050922586495188270925118788796737308453890189253927075082205090339012967085518316501069352918342958897623802446150933553634628380211437636857927880232555998534437560169981887700056842910890723734269081679612463242598375743196797288822772475813704867840054717239076308436523653110853268713390107646626223320329301381272053283429092675284930072939563286112199646735543463874429827224768586115637259887904204152340439346989688295541149508414446310214161015267662613346982065694367246884108270670993426725456523047909336617393881230308743224097249730757375485554805290843088344195087364741006976188365381108366841637672661442130666710012331425413103452713324962950651225601066679641572910049401081021377514958272657172946221030174786921956971005367441573633707568343925190488681866736519330461360264761112132822509626033481852096509341253902388195105104678525184810646935866568271539190077499434241577629080841533527595902272670503846276726225347158713014100361770809831785819990013922979720300295535529642529265521456733996278411243205457005197475832152443966120172818091913732274447991324461665616905349499943769771465549930786622598991390053615248261009224931867570719846530592771187352172244501915777683797157785711417453403439099792341666687845038683978645387900552383667857472679090803079034182956749550213525950085188316148406603323377144342180768423386181033683710022369808750986544794021648502222799140614730087424141759870397168902848477336898235374983607848683769288265712756625077311522175326752126958377950172403925899061672327456344847164438204120741567178690933327128463826172777420223269654133437119872207807454126499521992987076192211307506714136449452970983793305192582676932042195158423926347699851221833756097044284773807003710045083445964850763792976331384261231067048553928818653768988340661137531823908698832931410647182915452477893085579155380410292630665653945947194379840102727770311108215706481598777106512272635804106627369475489859494826813919875289169256629111939461983470831798688385490475800047154488734624061423634258999856958624216213185991994026712786878655629778579947580183360668071662743117320621123875400131251685645507425683587764191098148861209586533877623872289159415123407301570287972757936489449132286703783194312477351849544165962094356046604503269296368026072274766846119142360424208645155672533395665998025763344198336083578736996093033024921669164105032306655919641606852644481620944908649444632044688762185310026578267279215959588689605470434057781022096906541734580605566500418155203634052614280893779853371278128399853110191597185119546703446910944488460051439295166170711033482690857493605770902737437732479818484561389432208971636454990888900190720724594878857763154405881878196787971478999816661699680759089113285961575050413729773937127585560365955368405538722217906802556869675374629895547075673852862547318406787949347619826440398970208535819700564872165479713257765033079089869642793912217700559667777919580526599399253109402808857321161944868696238055266043217833375553017217159369807544341604778460885079790817850412074696448818947305782670260655108381773562478817975615692484414212767449505424683086736935474817311123341623599090517016384235494641788413602520893774356292120760330558160221607120271230684279065349682236717630182469994980078771087547344994386618896264726870289249779454301718005187040088745156035631996681445748046983269508751339683376127265598461843421891998387706765838162375924708693599843215539203454130247376976143621574775117204256591783838185411453900005141026131827381869071713503828067664738405994648123486752685839654268812951200997649010462995138706381246413237188263868337761542365613043871580704115174679393713667523671598036664632690513557999141057558103852255148053538187823900259089699184562192141221778799869279513596063270742207077325341441099568089092682136265091625895239811791372063869893481704794481351867868752969141099223991652781707028878443346940092262419119552861664382849093928804749496857377347144388699580524920710774145982973991706673744546975251221805925954299193913741015816852967120279078070156750056713493252748967935378621132453358688519730889672997426018617962250222395906833985278475792145822719236971000324081928666357631616575496308091194603070794816815961026034683360731519146007769910322365150603602760297461725418302132510824892234166174157802792927298436396672000479632329445726737013257712902508367838650473160175691423709350163782733154972822211024459095189333725500979546508100991507170230006467046872517149395046101808114195115576799380297651865829895618513034043984715956642702648392820216045409995853564007627849764215073958989200996608847378548151656700108097672013968315691039899558716659923702206960923961070234551598235240005587547450733778796889685687761325141839823762910932404864153226880112672510256091633080856142094736003704133892019922921587557290770854535049953646756514011355850676343714897546667990099170469660687079457903545110906017247068661932985424265836375962979823149425254213723546582410029912242691414063027361383525619389556562584866564958218932808304031077891812425508315072174328800235965531260524555062519170045707131044256369372212288371224123229039028713093091487345279393503990962560863938902636444198834333227105881664778228462771309137112792996041149937012540539387855730203116383826192278430209166475045829025767013403531253117933925564451916812465204205830671382690561963447304677210521437170243153700140423271054316660017136553671498452484779791504470190578953952587294013868806145832924257958339311164170986557006243217763105844446948283500384643889729164419579957588817279543649929458776346188807222735025425303053634649936713268748033309090001599389893904790162636767283114118095295924850955528879931498209227706438962585454369817056201473435524696619926892077088770313498265838045735341796802662084045838790696364537518332524658406618974405184065453475840036155642282035196693560834906517000270308559291939755952861961691434100259354620557620400645124916379611440287855810679553743836663606532547955997680436376212204412356106682622797180574667277202095028387694395720052317650927585226802383499230521326863141549937330302672819193338381232102582268916554085688343700997101943355599074059563836249882586887499043338303820649676266076936346924896423664605668566168449120210407428974990554951386239372101441420564016886512235604216592356763585161169786969945883461703825866804066271986709557585250269224113633297981029709190769254716599672204275596916571662231005543850190122654672270349741117107843889112776500902385984598128799406410714066760065478672685782299965118172900028063670729722813054521767848461043516057894957972603872861520011942864130943564634709878424600797595189582434548863238770155726747135069004827177930343830735235882415861249983400026018308704834781115745022578739771615651230208774483129286183662079568031313862731816516406338502164133114884181136222575677637681062528439939031407407405285390236133359376541009544601817978077029171881058154037973830917308295465876223270001400629846885433770972318148520206541057156307325878873426547542298979051609109328117022818402940743915595679491331050214185826886267378004397551403389141583586465944037470896046465971497004014861478206106078703548452286792982450151291182217213880202964924516973306130465281901892447463303486769339230770186797306523564366033697245336835846022941663241902763059326475074926900727474133431356351976860929148601485336187845115919451993368834095361156977067159847060084286248054686864728728148065595906204210568118571233563386808828534461826780556588433147105339144105259412900460517994154228636988051056118150519363052732989845289434067757526614253789602110955746197779865609842120369418610519629204901455521024231329963278180875845025307271773192918515615106470492914628150169768249090930809896200359754429203897926178975604071295904701434395153135676098678324140093338825350684047879570049272678046736388134400794445709497369114464976520405882592237559661757460160651270731724297316005729499097285073918721320336325397802383848359659191694557394795090692870230411610579931177189854664388735347647449511642161726944279031827626320669491145254056208425112509403024144577538848863608819070915676370263277397928778095421451552591753587911580634722355662088595217167307793593268069701442437426856035047075094295292592247420419550505371128585363859323522616839115779937661437108916552701236020729379362727894895282459056052318931551188591061038471607868822414028318077467157981029748102028731609602068252243712862573604591968665614205778635100582169611537413484903582201005776595331212289487836494072097431183550017746735645372808878989326352423968048247875547074487681779459896584979114499460923059734905635925339184066536424667359230099274473965369178707586181632764732159220643099463143277162975660590479255144222129037038006576477537457343782482165107480435578556659112289817966418019414760891081037090098329228630033000396543035815782076009788278075170486365359796909595348760926955752179945659920963136020360034945016000872556016232421474888866703148472747465609482549880113768148132346666480920860935313555988708971325636783446305300715098666706259249655220018400677461554670761511408859188850153000356563354012293070852022017622744027061107909107760297201166851974606689850047881890033285063557741844072542508461218713480424170377878426589538953780988371609809845254938008583406840297065804649974946370861421690508393891042526900299891680427321637582733817331908129670214117554701230958486813027616930445320608966439248982682488467803941141477112455261419644712454457913189768246865492935065126629069751412009375543813533747560035300212741746455077343868121115921261620106789717440005506754009998170303958913289083531625961237271998236181036838200678993614739213023157226750958038690839230218103207113335611221914034129420732308364733805698069170537071339585474610006921936909448560705898380556574712012487618020802834425299017509209003650597584269623948871875782798803141360625291557549180072825373976263615927449275015072507154701828556797333205547679181848109454390306881272681354752598874352761867690984842372420856062825160977508443476124533723956857403033680261164099846849648248061125457422177802391973640122234600217165953293746176910810613254345619499631249596270733899625249791100681180683990899887389609100665747990260094685099319647772165278452034619760503533416236686694741365681078515179656967765827962477465936729937024611880253349914536350457445032757682397841180872543911491286503841463052537129235487066428251868274182557731039719297764518372091009104596614305548708972572107029287003960526162952284835818337856219687095856417010804985613561879712238903956482428480069280600715688649938937810590290881773766312706420531756275190684032099106266460297855407304105310562078150052256893439097215959360138909259601340269315697401643634614402830478338215988018784401141205656204336788493799846716976027146337156898540167415012799165619391425530086283688638016491283865916939457343777036142454957875619195680547786205561686902955064749890967298695440414933946777746958028922029677284573717574846704813537794348485203603113963742297981189181194571364480212115846293454295789415838395189521083596120286791184259736870111673840327740105749634859926490563757607711874077684104436323786400546711069625338616049924771480445620926399022067273297284644998000091683884751416432590335521754857560644817718393905725791348265628908752422242787016693396787744584903576903932738865837605409906842519983969776853974227217095710734352064458447281235724054817286215366816236247559923503478452496376624940760465796007458374767742400400135060312478276239720600977186725028593805488734104779220517049701653846744243639296468438111169876048355303902321951812048344540239321946968162624210664337999697695682287660750395224941622319627969727557495616137241175436233581422304264381710951318888635850216022678802130849301255376065791205225805619975334405907601595402903212563354118320160538130385332895510760563100382690011529782625470398205203960269619881942385354789409545310408768715379953375974837641767665487260756971809239748534774303621541524569978346396200929742968520878113958607284798414673263243005717665893403342519544585555787882912189561433445500202822721484554775060187806155765914090868676808522079425732906277824267534010925931144532071007759899405702157516076343156949880261993159081086343463351102167489429286706476904550351367420891346701091189167002976913032474962839424834227587919919245841940686696091425126655419507247804701264690496573192334035208754479780594261294397501318195963211542135622641919738011917952943247466532278781634153074923576136183918118403658865706424941861587697156562589846000250381930332116929531060830112385756368057264268387735496742678686241272033799552747520740550619165182035612323518590622803310258306677842469002400491874422357168512862861994318777149093940551861899607709255133478995307496817595589430968908991191986906916146292288559792260748035574102362788421875398813803834819692285669397450527590682787109370322255091182358392200190140934543925059788636421988663294378691040514608955574842277286476142049522798115249156620721213944549581628156489631932895868271887428768762307457714369524586070405049766749392393988579627983212513951078166453478543397933330691242138861724636914097139440197163427529867874306637676315962943758035336430441364180165724781703399126811738444093137486165008573225971725497769663602162371310085687750930131084200320759716586333173384629521540581433428204427248213137441725529285070820662634909105489976507017776186585938806417816158214614734912567176690572108278745247646836853427335319852085149880129564316878628523837172429028538867586659963576400544336692443489885982000238251265811051270878435346448471162263068366638675135569730541483336724511902841792827490427279236682336405366414033844963788025799028624308435978365448298217559883474973682826440756873351172018173131296827651043413817425693711122915647382012515057941302869216359460666578479409079822823657199727636285362507976395702098085972740022324979921766735204425092504043634628920699209565707802400201792648648842806853394019073920374125616894415598563432931690861805455684762879170344600309771572562780246585724687590015956498951325835655742866608990950216698837318439848643874620743804086266510752514694164255139786225909645847174247855591951163201658470808701598037360213183859303668219100255226240648179733706772298816930081516896960663243070766985688153225960105070957159344990818264008824947992239580298706605914602441659648455581534426084370749976118758327070944086675451596661778629581734443030243135544279866913753639257673213674756488420827499725804776585751219213692312029705921854895507758942213890241793676498951920352604965538926897396558146971795774422005349329579139866503080526816776329956977171979133311064403126972504638919085790604450501320324806337207825341544264340950905273843424783849563106026444208754410946593065479452228401036382434810859695129640377000830959079807828073272100976243252419455590725286705416016886657584044298326374896795589551148694332810513773787856400887703994367027289325513167925077377493522281554993327161672510299359251944463366929139698069579948205696908122678350307072737810286786165473674551797155686986485546165820359582559578620827512792758785862311257349981352134820116609248872764091566406084709837618173508387383779259721182912010520981254040886677937465105703841644971920585219089805761287331028407439346757721627185514414529748211607572084285105478287654778484443536916894428743029040094881913668570087271869751976660743793544216247277156209112295764796745666264987019250780533917175192687865528951870313910348041709136829255698884073179035096268014708832148761933237371663186303098871504915990176196265506225021871187739608927966379771028257117933288092303067270051206571446853443019028702407861365340235687059638554256160373925476758923433045122238888355225850266014809273670528635088972505594028776726332184882571532252524662382974372172912437080602172655389371174437811779844595675741680342677736893231668116273782160747183089826747598834639960196844265053192416888529740668866541468953965903112332460068628078195585086472777305866037907627506438015916937944939668006951082489115751385892394512184460820152727751842788918298906832903230809959027420256590398028490425706989679585914430496694492095557794796947328094011989756149303844102261433246389345270909085252765013805699056186725283426421383585313157303410916125994928480277884034914232263522800729365392437249041061052432766862020121995289710815586646619154352791225708766558457011733472541345707534208027757315868599852279652488717080843218607390438135886609937616686606510532637636520598546878316672828414062250706053196200316945780570161042024150858150638120242375733400931103830267785114264058158452885746793230513846938856797262688705846313865400530518329809935257491754094105783635152478285553758754090447393718979631087478028366232249819168891903117923146669658775686000039374876136319654182823855213016251770687402808526273671686077252149340785991342475789333957473087045432747935462107986539144042139392989051492249901517601227781119577122880470305787649718658795723201121927841778737006054421789138397057081439405445628684449021597523018149875481127766598508811965715209418652401563545655998592289560097570620644872973659081466374387390223480478148971807635738016455252015470433369699988735451393882847499522099208527585021114556889991264292932318563228000729436114773661183227162595732869478545574426040141323845177124620296740487408918724189004330525712466250473990100382608330074703559687615989359234512738197670602624759917842438193957518932775660823725641457556712732801191614385511289565362799057003109518900443808713764862473908680889725719259758854243462947717716936043884326675787963919967188508862707414615319081731027680854050672921629652041209853100992947263602320199728635703831829119346577321806507906453445654180050210550970929693911482024317322420314434363855013533595609046444873805660477026824711313418915945865617206503045246361547951165036568977198564454271056309519195514490103275310471522068970218239206560073421026726589250395088326089623636305527617583301702580325816469542737121522493081313280528016080885959547518213834494123810843977273972107570270138683686014855663841616122273742122993718006416628619604572981229245740539815057699502896506914705942743059129608848116873460678309163655229360508859012588412680039606156456421875960038027368636596466898219725630560048139203194456403679665704325946373345524919755648983963568559212427221502884794208751341234061996773239900199904362484379376504388907410453829340219231031556616000113636486860636476242673556490475863471186582229985832118049900741563546981258329462133306476047557360401933298239400003284726902997992950377250460266224034823400717437184963260330958697705394031161347306893187923727317026314787212993677250831553905030645366461970459893746355728998981228654653705206052011511649332073569427336449970756778640975141965432783143463329824655052016063342864825458193750625089511960000770171982690648106599383402498966398877862757315548953342969626797651598480317544158757678292108369380992792863002907829378891985430969909214323649861071295567611278966743164744221052899406088800935618506416108709514150877238054636192425835423132637547990149524194910442359490171441601658004708442461612572926860233485291350151986418916477585766668049414514342152802238522705058628045421397509150382848186133420506679634543486128850795700099751255465454051008957367255269398367509561704368111375637084526464730265399858730649575347260739135310347701286760381864433323437016644757709950270881421044994050991456536452363986493669575688715765103756995129784792840204809686142666784582925187404920510698746039715962017526076654266650787378766676114964351999885563903353308497757970968030200613634943349964781680290913128504428618051258897246756284863527711799465226392545298883616394922169967462345501324427434401195318388838774849582414781306614421748784381375520268164282278182408839070045679513027420419057473841509856926589101248321632291535767743343613032369516453030958234691992668348977539716541622142876475341383646305340195216946551971187563287895638073194673485242735380561178136007042741094203170658775445852600633391891475601103670817613851819875522504385673705219753944782049000619494321811075369507093170067955367243163049720522862891673672048244209061939007057639448176246286791183344441025450346716395570241910998900960159704623566660344324126923279811793610429966273990970564788417513621412489556085779174481415149459386645708810489571160736513477274105934000873947938279483836349300485684575718189487882683218692930086394511052458846997465456234481781822528708355765580978366593655205172216558088506587771740795349828791793911453972756580298784978042183183637157555360625648560876875209897529381317640983561853052800801687176568240285142891873023442273837865381517726392590197047935845906634387663662777012831177816272518149385563032728574025788948724095254455711040130903981497957797872721481294952440143345100425856510235881426574134257585883539930750455204429286183992849686978053927950719825162530730031056725225590026591101581788120898134959194396879021432038380551806117278835345719116019290774092939345579954881157423129195362981640837761403190764022221373866282850435094751853769913806598860502300757733304402819436745711549909425582770933071452583005787246923951690421430464559017070364196030341497845405263624075291580041837868125641528409185140597952369241172855185702403495558592287879745027717977047199411556340229894177976244186828554712102134175761520773501759303698070859430158579685250288620420986734882742964440142932324485297832033450285846970567799511281440691641702151747528021252509927149506749718188909596378146296833472874042172296364556530721385594566892016715032481650738918508504835894002602666368710964493085314603950966137278171463595131944468463387965207675875610081187234844507416289413422540691626997405460032715928174491700589111405737377163376217886654333739700558997462157249727543990261592977392051161617937515591620620148310524286449195856405354540462863591444883310925185743889165443963123664599001575537443127145534364280777234583551293860239986074095197954911800116291227851133559813159747941733614576475447077812369332922428948881987307677800262611179779696235302593883632104447421459557847862220799785142921522415889419398349669990936658502876992015592570078872686242824067207778840349758904956419109665984506093002205418941427171771394453129838638016594144401910108181864288296229980804278653248629250221359693194600984812486478635421447766362580770549823449421487006382392770633666433862927516498328333352063357818460562257873820190506651528210782908508526589071995419854227241738559832878095569908318396717508984195538551257635720655710666363211178395150171520484682042890873606247793899091904648585644136602344325987606655974832410074835935599686378691590045822470126853213943533114184798233704376857474488695723964017280462435120128486711335708597203212569890370781432106657107630921362567144272990173569302237160413482868013902954062250512061704248681730543837472041040275279352541330577841421075414171741827706880651511340859787509926630680002920462074170612878937997034376836697430991290461265592854008325357683366857388075540607726074961131952321053268467090888020619813802659690312893520545493952476477661377445930911569532909349530487060525214856249283188346157923570038033862939485573685494191868053523037271644228995008134102888675123232166692963757636666958714467202721151398163351410570761025235890365963783670994697473835269869392626660668654050754779078549783787606729602044723411347667865496259710269904952273229939504922142157541958467709184910867473516410106944170788022592049350774201304754633463592880087496231414263893667644883458654907737058171284977982965301663285458671897122629065884523848885555795237124514923614661872527990198405883354836472821943151989180819646368653266623021208972310732647431961121502300769768682284562840696551397552876300677803777192996072771952282845844162594249119919480093822300697344032649794033699617281395192894749581936222722057021525190721724527027353415495938184058445188437318312847405483991293902670315792653266706735197736825566174136274725364381954943217304122635186574240029595747694264752251164144151081401266702198715124676704317943663638543853493175297863817429836393944953597549970529179621299113734024711702005561180532708008278749997074660683576087206695639496058757493783121614053871185417913735949160593951556181907167283551105882100186219812620976002405532705623136610738058476803836234350465334619473090564192907663030325543761604939830774628856576056375167066020722994485134933033893708828582787026598777610128752123936583492739151281131961179503965172663633614987493363839397161123384104667431258863601680156419547195336125925759169857084914007804321405642502390146610662766423463138530332271771692776087980702274902547310139220441276869557443984830507288176591384513185576404372596072260758929250935782780070635176750353943995720692937344652004194927877527906136752672257902275633470704817132100065900341450367934606747836760842234226319672635178396181054676991262499012097334762902750139739646980158795022832024541914620809336681204829304151552993100963114171087819888902268934012415709067034041748670163652991077901123101549445893546777591773807016239622252379184796218771484582827694471128115205701717680035069193439427248647640413481499987415925705841563447417172687952839034985005246985038422576884102763431276756170875582984780920709636237659575837570556470132045042903505049211335048807344035045930048827200176758770795484004539647559164834913542635960146891008217296868144796468163381133839204701112864339803666164765664672779257300125876912353388908703011031257169352417192112830225822624899294150329137394631478044547231969519746048618684567231978428027960960812554062039567484607009576382320181196470196436157224651467034758471136663906185328359281827857868700633045785655221084489208167752391452771865567241148965473692173955665302388344651090358677816510167707959646803824947585651764408785780304988904111258370474938773256995121652978835367991834398867681788610368747010551581962398130144292765685254610005238786047251804132390711036421857981003344344075466695889245267652252217456816115374387600128783705113514781022101691702546335898614266817363355228531707207773029010453143146539037307454791054024447357174264259261785691949911973863599694286773913439834987802317754654389553463507104976423282055399786842491229521096667230244786016239595831749756164896389848381145709067067611746954070037708214119185333517062668458632657474090169914157152762234116612401639602420410203802131955108756442819890862305557113525144867276963579446867326198049999069390933861706638431843318991146172255268055001220557490040044136223692704836576662802836771313813623643078790950366287281300879204655197948828731555772452228194711587979763759036559832777389173282024357148090562439192229623519238358523384429699094792545533411668469788537177533033704516241349706875347027189256160745691575262018183404355190903513377590017093596994066217632425754886054983614815553614017989010821845405510481843163193401755546680305315245774964676489011643981748161610548215772305271423284497028099337703054660827081119533300992674577662397507514961097945597051011700899044429582182643221312116564724805621959852637329647318049555907534096967681828278218280968997415006634786819027555593400620644653235708820626488983429066998478541572552780162257091284601548760899405661546855886679701112534915081209358027311174804922001963320635431654777194662156881046173747134839362149427837223403972786663715777586095714706413764185483359823231566702404979009272702494720439073158827291696064436534680225899260428234702977504061129733250650440841692673136754485337489772034896663872415733790096467774411633025720528478921409106207634141680207114621712650655278336311944141487436417032279945481619609916895706712900571979069505976895209985836003054637004132717416392181038773105404587388581872571412218708815322918565431081253114929044515518611472553461531822786624493276823959011006748524093355505142972482470137203571727396941550652128822426636255066847380016565317759551939147761789797868511394284707633149334169359953923696432536932296254242402170263139067425566733883158052415653787157931609045724970424267356474315903252406479124732293944506759467911673082121233640602158237537966107514375642105683775886181213574484397130084388442484874502462229117014642100424515537622196601661700850001900446866879717399692201826412046819252112981456953950590859739852331643543659505249103773958820926167063067862584492024956012924459775559430848063444964899794615298804099316551875382629958262699215244374680937047197687531218023709906820049257924590578851682416926682095137746129663581674204628757924533481520599399665436618393636173926206964534767065462874314760398440206524091200534999052990426523986508190385012909829481855276366458215757031489030482717738191321753967731060930340497821293402589781866567080498557770207476997825186058192542617336478168300601976224225817186254777237706922700016839236210182341176899564420814869156404271535662943367526091183816698289333782380508554585106859286493191546536380252450475080451218663105553747158515663411632903293992131365185631548806065165264023075667377899022914172330241834302057253160242853671878914693796092125317171484642291756793169478402059325972847288144835891642684144755950008574489598481590435397592834738206025659570101871442167498913573957771903136387971283173924103228485260790338060508539749689201755325747397802251366922362871060840399012844524002738841124871774308034815642446199713580876163822888083299315085189268943826417176272398948873215047348479109837395166278135182636491988379283170433420751347921645182538687598231147981263992458025937546083669052440904295142673119833685539439874707563467363421931932938331954489643470861731197567540921859247595109616225931484148644937208146459365225989071590883692621591563506247090328422772410170191160766961054969442378992373703553832544722668008460182899739169913203730065350192444519420281754224259416376820978001398318104196882553452196454088084559272739639167996764220899846104661178999880779363748880773065689367050347555789879565498773824018775338532904519013792627396734876873244675060802145089548244664035365751359197035340349457395750612762328686179800404434769188550903853762386054086279664795555948387642127719962492759977340987082703999567828781596324489957537761351505855207106603673058896747470203669752730174517909801660487156957115665098513208352537890343314568115588749088747584027796293609316918123062393694488140150543045617305393754004626101611416576472203388142462371942914793432945177552955034915147926720423947077907294601905674617689186926148117591431866257459727664610939306890990269384462040401824555320493250935754914440509341528507322419891038593647404423918958716284754559564281910763255045894628566203500543630662760105153972574184074558187736957926558359965269071188171524867233539046237136991601114812954865772206821221116647126678346266045985379977086256605622807901375582886408284466020284337896780018229841400584499416026259541141725146909422273619364719507465395459112284826475370750980084337838174270154457488145122657695068149177319521240161795391830444707252156549034382730101198225396669490508882992994836127853267188402582838961722633668262663070322934409685619148617620348502052370860119900384189645109311056704840300391750706079354570848724143119951864460860201724866829588478821331555569127155201615672006216830664437870091460024412292191308845714494909594086861876517946866964512431665117754358065938777481489767846401169144939744258183419830060005521782994700651389301631451329606170251512804105980304311793002089196060535386619027249963580904269548411009064969719893255275470139577023960706369829891022050973985162876262920417956828822202923984497927367787413407280391822758017711575210087319850494649226392822468745338101181261509729442480832869422465156474147062163394187632857626462457366761301864714363063404256963824542186421137773125904637369869468630855014968125761034810215086487122798285197823403693610589396699078085495495915636413124553119156693153283793882381702228842984859543439421229336654865944020161373773144558904972380316423216547171686586983567027096704547010417432532824591243927779896898017784922628837323130293789930276732805980889423416913479743298736709852759425886785220949557155949813959386862952536658778951130272313740071279327750720652026856997706101401270450888903725253763801032907287438507098930186569257979240004384763634318403994197416006838420612534655771053410536089080872962851505303692032196408517644441044285649248466171953354205338200184753164048299296999945017688993913888462633274034519609420404623601624326103053699927604707846205461188423330116521473768042645323552404805582846886635188928908764648060751937508190104341274706086577825893404311213463031185622270991200215549705161019864656379740092361374351416846643190228393238777717958852993194382761490262060648985797607244511845117384956574273728534318512934779991354483592499392551122856667797624533742546057023783944619691642730780082900471282917591675752756500466423461955639077522592276168419589813455469363376836730856167333976324925009513286917984446269300145749016401193361688984028205204331753227277131203580527015816005675685314491875798394056841065795923080441454751710322921628093737931868635482766090955033787526945605482363079676981573270001182445940039746900184825168941196135336411531696147239508473617226854134731761840921073827244851159711350760609645505352699351215629420647070036371523392131748668985143932247626146213080963402054517222084018014382461368539345988930149429251672524623622431499109799518260347622129151228063155480238257089642340528328097760142750370660118920534000839424957956496460186513575561251842506925451664466475344807494218572134452028997877115176343414212797683214562692402723193819507193327062834301818974094989223876830061554395147043593219322323190238569529915659168661562349381772512928300571136139587774840566356762454167775321169967662945727555449400705665134472633380799780098649982556119862648787221709578388461685653635074834719929001492929564148418350265709104276324895549903833565100290632864021389380697453981539517228181359015964229347846140646013851844001044090768688615265074471943143439845645435828046532783237237399464713402173623954825451207594890476374163866834903032586746529068137376289060386833631201435073632172124522157656182378835593372364122894090723004831407474036846965350174856209547122450659822354092651938614291098184136166929916574772944682397997901125113436856718402818562627818376039564337850688582829425574443829790190200212976294895475379318899299719574852983847324088584015349598535091880691698900465152065107768226685732505655606979245472677622300995104635680130253007216852876313444088238128662409500781995733748866218438192433323934361524268942267674832139949348295592790836157760899706957024789122031922580327453029136237423379094151466349136459585253170791763519565445427236253471041962734632769841514652904836723492522495998869639056400099190594592180042341711431954728464272238305221376811538479550373594432132504142191807578049008434316749020392837639314933672659223195048916817781699977533159719822501558971104104010158552909976963494414777934690726544222349618805791815567871050050493376915938093616843460865247378217215574649667217470819074921661134702438634824334504348067343673726212609203734332061273947911396272565606087001341213109820220751033400416077235922023255589771471311417796674772416722236215384911827072432676642848914382042196484358772455825861839580104291226573465906538101516908080536278020830034352485299735926981663804151753405255098513638158333474275970696716867598270422934280332143827774946218125707599816409079641736882572374739165684266859368894236239546847468684506799339366969209474715438747759941928158729272737941624497172435776821181658033623940544488239297339474979863087118559927177644254429512940716905122682982756134764356625373974454899681032507515579304582681375672155291966469376377928854256432825408745322865401119477181722709353427145389954588354936871069181155069155277727920089283882323899394592680168910952107940086486809581504015820394395881274816504367976327524430052292296462005260153648050752803719883928886919165592488236923952299221472232160320705083645934914832845084895499612461391788826686842276819720871232113103482614955191927519096431960054955947561757587497614769933179222816021175733132671089762656415142913436926350573209099032159954178309659897784284074100062089264306024497193580427937682546724467926450449873192704428038544182198581962935262596259195207549892123852275643444929814566286147665604875122798471457949200353237677364726193795462190894416627797916467925355227233779208684138742476641769069238535365750394321886101832206696238360920399430353812391982033612450793090617299518003801937336374562152096362998749840666015175513682229729845926426622669506140634400693315651004255122306878591758927047836849088192863239473698688969459529300679512189626940416090786392753610294883456217891277644300680629469822672520175429194475237006940177075403450339652631903833494216945191256846366651749285161261099274477883504998599890846215865994911054317866926817602114464030527063580492232789317716006504149056494762204427840523570343111081853595330286572685645389917626796819722343685133090872065005084528113134048350155319008075998646190510873683855434824577016177565022322285249366250623420773035685464990871503982251710373203495355360642629035848748398523804244965178899722713505249393370191363327449776892921651808000716493915338183623802393798409758388330348509378521163983569641056963697720603284272833762854332390885902266523316853548838873501225808723366173842120909384102573872981163455139117717701931665386927111952438065162149643852494350029006457892576937987051452981035897057248348454796745656824714950270007061185335100401550423197805185540902117010625605182837512796429322538492471479776471236112593315973911057814803104372486638474139459889801695588172853692787920053388646438390334665548907076025793521665916331109228313917425081667799824990288618073037849412294222813065358243943919589965573837147417720531564833465487541903663144907580297791991820430983316309422269072858996896046844725070883856046178525666249925421299453354198832429614504180647153571180343643826508107120417288040779139183096205089186554244525836770947621398069051974349151824001456970653798956953964615808836916869308263044822345363808330610886063435704001894232655104179296328578978913116528101771447771166192385027767035705133618781195180701577387809287529466099271198068359532477886139078309424481155031810938350315369198202064256009752334132218558042086783563823361640968405977110387543484651864848056705504346985294461732048631505835886011689333873915739457465852152135596016652999430183251879470214105710868232239623455295492848330024472387478658262389132635329349048019657424513357119077519294614890635001437233102342124163903526369352154551470202087226703796040300358819228587039920276352291784964491420995788344203223282391062032589997787011522075594603716271563679370219282919804014424248105868784713280958512495618708832103828606525324329247710593489801783203693985988104784904540181484148130463506932412291412609314580683706556270230335397702967619317650489472690886929201106362983359535885422837323484451950139555464616143562424478333349740513386711968786512153067571157570742867767704999060056092937688140627332793902608325873632949323318445928985453518868813722836507013520586905162773779676873907585847437315692856607989206738762672044727237902101120729970275083247657949240156711518516046426155497374420520992474526408641102552198007795421049493776781640564444598773228032033867344685460778304200222875864117096043978155870328711499172353140660730458377171358852446269064219666758802608739683326809723091566705595967339835611849293283214493852959419914940949144224311738236415690871208933395713992599577183478001808340333556991398824646458393641552190719542930759241985448307233200074414454549362674300367948268714247587719798705109593087374544958030525864739324031036672635929856815201990783957672387252784331908076696579671160626324510879867747946884733481675868167707546725423802279916437759871003770518454270148900334319418403133597072806293503153326994794934903866845288502829460563640492271807535567142390137734691029073739043019996720377649025979090758965451765012038505388263923518558156975250196906047802777406232679415036574966370237775082684997664755257421418885832739599319576306448933519196190799849798661655471695175423697754512577578442598963947395770571196539100618851779368203434331710045945722193442884072291525306954447354788015973716477841482272449272427379602366556435394383688207185693393110224524030688657079514452453928290820980130388233684597062951175415011397986580966362310632508174016944242042543953398750803631320380629989287685964760827206052699956709414710284829384863134878417778252755051829916315417961192424995145542976260400132737115084297543147505078329360219153040495223961120022919880379151700382964582606172377261752242005576920029203581573813427425980719005353347071817312021555166638283721580626126260187293646231625495945374120833621921872250569016966060556903537105990479591708732649755689428911865988173849322882732113688125640772464177600339088386517297188818518722104107131337026843178189747698406064850656598576255858370240034500127592514060005004238891542819557410887048417049254536202987078181045171913099434389972058459665962208859099943668773088327705622249588526043238950417824028510244682547681753991031677019742416152465901767021312155439781041641089483491139809715888363636058702611463486297340923780741272183367257154994473688867841246167253687958101642355763507054005410677888940460731710491764707552287983692872390792484425436302517966797556243777142201734498188801492857421144508539548291865609367041930829309142025052160435025408822241996753672665620711019571612481797893468552455785070966700072843306489700776630229571528604465897133624718759189479953031122968636653867871440764260409875825149889244033325786458853326412459167584246902527678581238205419863029193495950388611788891163440024971948859256198402344341431264038884854633915584925226982200820265840656318398057536059821598578587532909289762987583225169569195139674519557686370287249122760729914023288334862429273088756545441631062782575588525790196176445810157391414135242322998509563467570348809866513593602517321808168587662441833345471265898420983235765113236123603092709956516721764989692853543530493347763233620702651455383141471958478464462753919718584949478813962793122764309238738631952836897974382033888012846031084679614385054885058554900168940254625794131113893593419924756386310362835497366211381940021379425513349884132895191601797126038290829777382807401651750426693994118806257874213586791789187299812141739899330075131423645383823510084845135800969311842500871068288476912532759214981178516241919653610762900981916004471584341804909819154586380907905527449179280815477053246891679620321069630254309604166183036212245742831706544378406050707772236448928258869767294894542912430243289955916694805346132171989082463125640319232059246033606131693251805162007254250141422094068692746858575274931983655603166025658201292681519294350189055496623130966073007193177825701677538634450025178135997307780247232136433377700171641256007153196770972114455183664335117160233542976090151754876218481905202071426528786807253272005362385215148148841841218848168243205957584496355934470934991811604323462858450943572809234556613631222766275299225484808135412158294271966686299121647046287186768102431106360011164063250435777935309547066918655737460808479129961252141440733424140752418757412456740665902923940253690023534083558435512038124867876164361082031853187572033524333159162114780829102671915366142937308648571896069267450872898464870185804574249375379250249265804733476679246291156018562429297258651793304911436376414238864421192308248067028160245423455448948443429795697602485525568893874289802948463973129578972320134937168926166212127046991777783613985539066589425548050152502287596992408105917360966291402109265758221893866710551187485771624215302753494760875097941066078310244325856003107318939809693148906276992598265300586508855490047603560675174498086074975951893387224895029792727318531841215566845927993242395508029064566399558634759970849898377533291179258661150347745542801952028130078053231550003346801598291806526264394569466680765461756511554181070135963396065052009926995442529963022582436427846811683525050818778437401290540739355483998208611508554322941587900831887398530507563211112421352055600134042793999583734250699829670851950563513207851468477212283205690961694771892108995711719590633871539692996910277936310926910511110083676486395968804504056441142642090778966054134485339278496851233027621051946913701437627919540219513297586140286591220467286420954406580254594938643600339808380962749146920709931647005199957046684206653438978384863635879213595215883625130551051788454573322427271040861911344152975969414812214188615676547687062367715506674451209601380784013886061983746572100797707222041729950745245882300186261111046007946725379500869810971891174699716596459412526203844954316477678881251749864707066261443945260842329971273164146109639605891807062692200116120816782574853654473564776949899080705263270426861671920732868336824988008392268836293172192717351019207575163729033423173092945213421530918489704629840450717284023615531426325417573542534938713905444001211131774719935910477634485582481552383292495123173902077397884333037524283129445812407244208878332477023516819115117890229380294428343864272802477461493035585676085733939062361573501668000280406258915724664123916336487280457136033708034636703055138579725964534052770020252767374807099997998441490851816435901372189623929620954422418738747655143613507311306721682758729674555400988166635612312149276765479573696131568371312428296973979658286897786458375445070157104308117003046911094353274613920868613555024565750016205210748367757992731553286749708561079165969214516546805641889616611473113633644615367492540845949987990291311625420880425966938557770076012892759947887454295541869415123913905490433764446116578442498600288205269415688696617072680559158555401464436267192683323382712961098159687382558231409762026139225067227786407308384718614871782894728909699686172490175517610560454801411263272766350242530158792441035913932801845667301979323795469685894551622894492988829926247120724218737871438333600730511190654476085704317470206358962229080710062376100646637712060244326271470143234967364799938999905786756157972903682081078038662056367235170890588922846982121025453304732099877595069572080099254192674125319935833147813842975571245046330720084932411920610549964352549109543992118813958290334985293588517968038117610232948377142826651641346766369819971827933116813422956326564706851610063038091107699177091070853277993187051394726651095698358652540262020549598051591063542594447862342974603735339400088030614414874962380548760278008578062789343952268618209978517393578580897855068662415146052165513034609696991989556583201517306117605511627572805896665002106274523101945927300785145458986553411491691437741762497805275205210782235194908077165832183693821094882086146896472894716171540241857726701826625927747518611501012920034416326280769092862424734705433063880469677308666348727692905285068091667352913548949364226475034071057764107112625956032979784329954476216024012318364623421891920500060397035396400587748550287140940256609949444759364876291067575236973411546015026483533591719479919702030485725694330638973431410427217380103210652141184286666867853470208672301144373700326108599775938540565662155889557313834161194375120555682797414289568637758048375041635759426613221663149051990748379999813157832431420902743764882558816349800504711899425871981705909097736890096130883077524596143775521544556132241428861322578955166459700705617871246113706278632558704411578743821522394847184270120198687297029342078322484559441079521485179012529025566150328070241421117326039870766816285214663760353020118565978479755926993593873782182698076374675304487040372400580155386518019990702736940347329991720520839870443680241990995424126356868538028913325880830823300099952026432311139826426491007693613752451461731925117294283163268952245834981479886453122219632883112044395342658635938506988541686017605570119649704571088262824939725537418412816015885821801372972495478844804017487107367994540136278633508991121347103763359186252874613456337931294076681407222988346677670779455430882508083250611311221746746870997791000376802194257839546002556963002411957278309281044225426140366000979433845548037348919959236004040505930959802915139085447145394317234403552425949829728823180736825302265985743158298433067342337961166571451283689282179736164854645275927357703506336669205233890149504908366228325898477853009800851149112987986332026792063718672691756628315521410505010037597302995736571589805507920359344847673784718574979633975943851811235745419920484908648910705111467003275617658308905911005796265814427164498283225543046249136367262537321860540227186538279535326094756529671660034553494506901475040510990438572300643382469342989584406670590244819732211591354663716613383983883359608767919613660492276123530337566649981533458153278590866985993404026640971213429367042335131454402988107020344024397023933446745150009774833294553616059558747635576942209717114508032909344582904400889760568911924851564097633318892049505233931694416634286294394803100860837853024417765774675524281389239615880675840766939713569530728539404521885593882463681709508975886583653660730267227238770857498736385080456177171246449522177874751906058028016239144181530743625061613941638563016737301249681246003298849697733249233244251157601148462052516710749328678740794524002338462140213893626603026504707411386557195796301462042747584410182179265180749280216676906586886397126261060457557336948284958613190726776879760472621272281965759537805521950651642395759384827746056446569834013699957399658666635143104524092731052334748880516356511133385678318564971363006845580406507636256872252664778099776831616335734307791606308720941819228776462819536738039942569967353206062191491126655206446268886032437780072540809033122553505923061474800944879139571897828312433885470221525801362387815894461472035397796460611610799241238708499052787035229949596779939588661746831468379656466507166801862979955286757337715412944774717193466304967220963274608241956403571818317888945881828478932035755837003541943987408760950844669673038519204745498689755916456199099639572872342596255337894468650528873874195286514633077019041488003669497133468444355389080653695579546376743473567307658842071672636878511144234046190532616018127742176303422425264906829401753677954023839765888735525505861740759458539912832394135101452267613071174410887633943675637563957754041356875840665629951405585539877830686094755312930337140508823890793035607946286781974845636151583385616149777937017792976244240751348945065720050853473593322902242928003932083536185814082924595981381064336347587274570738766433991164564205088589130987986165924076727931926691394584783008578678779450399833782702774712751285571050543899428254744911871783950220118604087993507785545979124658847275012777391208588798056538364595556591993448057899388101103908050377105434139768616460377555164900989886306362230792932891160851457922615227459616618080963733854607231336231653431463123599346778355017297529942895999384206602893037643633625727344456847910596274561000578902489370021382646069584738076911899918341620708392273074589486571320372500009878375685696589536900686544808853014697690418750996234237280334421099115355084907801220550171105855267286498582851889294386121111164713054454363547930084879313177527697755683480342308603897808255427987758174075055405717789966106806689525881943138437703623994659835264102620826157130165835346571335562280082315436775671628745092949703631842947930057330015637042776593103073366888162188114336371691181610439367988017888371991940611903821047436155488419482330846448362000877967874741097089560795047691816686987841402116318847296845255527527434703291494274191956993987660713201605253998963615297736625642647251738839521272783025026869189817055221660974874193397145190774666095214570905854999205899768405826161708634369801944075184887296693545695491487102546332903899068795415102243658893594008423532451515041124045846352255571542416510740601050628852990587736621357245841805219653705390513372931987483248394207785125089782964835070221868526027850978226200450640456131348755451724823533222757081682628647203014675164059995524156724662954488915886324328272040258872674884151337452128391967203378135656516680899839831782625802444568176020164968840282597943632008593025853231604451738850667489475626175136094419394099397944923623758051115649089086673593380070763419209289337670800010421389619345424279027702580782096980541304474642884953797101716845282296408972348173933354781156058379759555779336143409269811227210985875985141317765184525531314038668763789618123685933057617036172063752866434682455558321779846256832768061099912119727729111601595709999155117325377326502350837340748528695778274343568399242241689738894540901783443715325238790825851766826188082703762864476963612296520227138903175367419723231921830426835694495338789048060314978248032004422473349572610830173107771597305942329767503502483615078867872842681260223263559557721460040184687772439462037389723843955360894286738926730279981185108819380247637809246372688105985274988789995502233491604591116126622047401516528789965147061467089501761359147036985756343361364358057937668027322935427691068194763890670036887268923608474839000800945288871066752321932706231364168004091906414485118960576333750163153432794314750491815653868325469447853405675734300191797282743475465337275181482878855218670483071544222900229519770654855343044394955018199819634088029540310396467411167653281492149598564812128170786877450999404344953246017429055495586404545044534887793319795122379528098374758708425299106087658098370824109698671976357953429877119143892003961288718042737427808303931481237337303774988852323006059212469611607779263063029377373164469681235739613397562972316201984523618283324395270721986829384509236230384349091773978611398091108268319594783551830188696958015815994792780645659380688789255000547194525520581271451943919220624922966537535959364379595643676984929812358050945679831126480023582447806948309670935647120791777557829950770683196543796267957871331951491980130977730050701339874618664244633357331073882187243748893419138301904220483132902678527555022500237376490083909345503815430666845930179667392625758117780497931337753859314562876252383628057930607650259655772350397181774652334111528272913036079922346862762668055221483326430045122045021434223972678677774844002910334175579413482219246610421944260287611211744439147834483652492486178001699436146560595994109354380379352390015693113034862777205351892777191945424685524348476779881150085131806622301632635613341001566386596744439800733481620502344519346815962578589662794345239572664340402183087584005119013856278563704781612400108609224752469306387540175272902341980984656151404551595471197118460409592617771141509327112424988241573937421099442916637491553037487654941130913378736667790291524210598912998239708512097928330336766880003693807530020705143430548459113208349867727984011816516311000274910352926067477969815341799833426784195745936401475146866790381432491185507987684126589970948586222637270091265321561140416601051048716213519410375413030696266696644243495378928293665244162405034531305222950432904885200623230730366696063283932589915161110635732778214936042652520212279749687450548973400533655043887701364935689218665884723006588772467558565354810104179921705206812823651685799156277577173164788177572445194741210364462722501824055416317896195539906990606829568524094855709218655896407591105916380757273830130819441756665798410116754779459767653946236207994051913082091053851820044470669054757852790812189914545421208174588457123765377344623356950317476726913128264491829627017555516594219794504200552580939125689603711171177492403683320770954360021619939610179825485977803369700214529173282804575276509649614705305565390250930205523962602767285516021252416308451265259341833359504188412959967252442720087106048049709714643140532281799036557770479220452980939630845815099970218452245253296346889647387369943684388421713363239582760811076416456603493575256255129643466379217712467555266499689405586733620953947107624357647320288929570168408340082255750473145551039031552497654670459846620467842871030334049672062559897924339996545623994968144397207650091778155560484043454550920310979547264175297922563014399102493618168439574078314990810768642994384864328660766362812805610971621342061076284872703848515829802329289058004839466651214575407291185892584499133460555529278821915735729353216315048448118260798796220619430457665424854536561480987929205040264536458622099642098415605762479629861745250146112490980191161142414365893328510353522384691362704668564827959343060853368980831706244866235719947909374986037075195127447983705465057430026586466534371061223624734835851230090442175828273190787985331262850736196791668712223690249114761633687008272361123830552717598522178823581000604204791304779523238837567628681884693371502586211191337213331248845377111487729573743368215853371126499116507582088283202818246981356501830446768995036928378072985455230616888621599280809731724811150237165327231169288416743211802982111415457300554033605876089502026861101979508079348092691825485615491407286187296091967148941390416500247445600043663416757719984758699257907085934436335641749946607290541041233702600793875763960919587744364949378376085478754316482855081348437253678503052021027740869456936061326916432057107613916817206739975688853010165550820498861228723732888379894791257098572355419149987509980522198090694769263521785689837574182895672492315525316978478770603004070873956200093625675959975934785333801941171581584234172018132488060549450349559330329083455173836718126452431494074083876045189445410342281230772050530740961957601483519651772351729790689878622977059672475742079655463111645559633062395352305295008990859801564744975859285838691982520792881775404276340795599558899112042878908330900012297875535730878611383891633281271793875698040147847380324520140197656838362370145983430363796383478179570700383056005762270380942271732185613488843686233941958240869917621474570898053312975329936560641844815381679347599277003932976337290933358231876740384452160036259378855271089495995143881835620196814598688765381352695355811831955241007980240375483716229495883652411578274950027786169160548285461782885916583046948219958877527258781434668956566038781663190964881053428220783617623316815821067510885773609728831630136825781538752221242382589673543548735908197396171253690321698097669238619168214047844777665725544632344843683886525324399473254043717736850495163520946778487620314575316879567296384803272221834512619805334813786675987406915618038136713125983395842149818425254762483840897279301477360458628943388063065604044674652262037083721634129097487124762002362410588465576169543500578000538471409069721983019812255970562283763046552740771135134146838408117058815387123139821897086246291872532032010996788885190514584121705372102794871111417038168014122301014720425743223683229186049239829149513898227174207625962280390683097075413815059799416716145001220292245345463531036642966926419524555053716130744465266436347347383769439053048782439857179532984803102516922382979940312547257772741553294358854040937989366999349604613581130317747293205700459130378268676166769847594090635481834113489794825548693301655548220192754168040425292585738938593980418169411290210604721876250725106655236680590494234765610019571416726865776427529416683490097369488198838200447884019935686937561360882387643831312620839487124592705103548161255540650037436568406988872370502703534292284829560047469758742264969542870972564749123925237527109071866176417032690939762966262419400951774822699787112506319978812486073836112381105645057633163248893576038226528569819148617900645497573945540204072433264016972230350494135211739626032933090155389273992486234014136553107345194546848126927250593289166037145453292588028475086423667513004153235276219499240645494629720531846754961286511267244420828953305498897976791763376510305198943060090900688499740211631830239712240526509974647522073394176764114599399847583459465828507375227236898909285279331051980035783605938328453072151455296945660264537717278771751990110299271125829328538585837616400153952526485587226287165993425523599048851124736242952663904056980400155886516714442280985380421313337382476863523293277151774305677395972998013128037413101242394542040788504649880153844901034089634604747288430691871177197906041121149531055699321679365895206406316232231042749563491832127444325370535234606314379239509378757467002363660369078838934085249600625662525346219540090046392755754436800103815898523024687471562618797840995398262823261096741767037411111572858337212367209989328270071561990264871853682738779694649901199444635279043269411181279153475769475970272243040904553209203964921599626592337078762010798978173631316289895787985537238077423108689688101989153158635341753124820957462039481170253301510622531463666672103321599021509640152011325228076008677234530818187720435678356619437646497692684591197665271902369387366012557031484021925841293899150952738187050826498256109643948534543181949594174812980702110770514221249135612277547294364726860393079066595689526244298020750618478802736839683015201058114653195483161233795399930844471496287244384078280802351653494403557638256566595117926871910318180831260290625827667544159529249869315616891792413874228681141131129458435040908776702996034197961543149277131622780122411504099911099783246839151363690269101885900522222640349262702705474443853477925170382826893395402371935175192744430884637869982614314141613212650083835249787828397956449474489129726808183520092348514411125626864427971388528195355472270710133024320658312116218679980294330938205945275531221079729610069453471542703476105679262166388926427025915391192846824364512757912019273006997390222307710012565047504781454941645075712166988181706057093100271417997200405005220744146646842045954556276945437326517095153619495392159595480910865917179285017209615743764365482739699421141530113574777445699777834686548293167584822352434796024593675745603867642238701451697951335302526263060912289870527970194025201799275461809610023808158444745398541781134168551807896427734318223411669288048732304348375016385476934180630100463109486308649582085403923036379184340772245870087851856758013351947078335184382256407659467536522815219612153169801970724192261347144267068024645541413491325320104879945451690835935811208716352538936028401805602524522568813635182671653737353617867474515007793620514920915551951171079235097294403951872059793595941999768428869004695262998742627648010544626017974515814160673796485972682107007288085335379425649238605146730502581183188187361532769571141459008901345397567046514867531153310790442155344112807399101678920855189121821845851873780093431719987930642728743716339372403716776081341543817468126907481257882608577992573469679045029235274067486036654969530683267570341681192194987714425467399311267223617151111679002688440322374388706667845260227488624404195655179134422524362452956498772341869032841377367627759869021591880345102686354622332160166602915717035416649704979097182948997530303183982922892315673592888738524990047788270950338913559848611970716116062920031657533166400176485598509397710593489554929395242192424872543533506710110126500320800855726181843247042729975782550338055329212828268419876175133432818957980374841159312011272647755278124340946236681014643434675861132224467103672842046113683440630023419220309918423160011689611450502431462329385557305766670704755863400577145737796401391559200944785853080918854642882968265734558466471706758425687765899257723690582582843901940128498501081560495804653499061693532172763898680846693730046656706357105058251653788988726786778811349939742419842804150395355924335402644381945042743980077408601033817516465590531760900780549327198795709069445891077753783511464431680736638750137452114079814181114606898540233376870500316547415259756828045532593214275017144891981432720602130157832525686454575075005004101609953489337559756750621574177598433095497489293936952590011156616665578991106286451376020886590585897754684072676487361911338482223242296084093562863909839097272961284727019936268201382562463280522297414722912375261612498580979122969177188268797910622387999026298372552770164953521154204842685227654675208484425805807526202478555251011046819936456312031249022490753969888185817485199659567711781949151594956516084790287983140743647719859086007178694803947344120476491342889435128239831024810458099989969397398327463540354653870870745303158991379747169861641283101881734164841455983224101729680824018772510756740760592334519313998247616344359305464644836904798181585933440659503351204610879818421582256611462351070723145365568046012674822233981297918324363998985378047880383649481587324677718480420676984303556872796269262692875894892096570513920730017166695360915626202881365403966094531102079003661278886751815369715992019396432172067106644956965654122506457714317480089342130264083669924722857486951353013845632198524603813277939347381680581946946997770824756046348265302214393812774436586071869855783557506159409432598934790720101212963376861318287281425050147387624802886408314215333871166256946290322836195363356886482959735687610843121473799827959933869562054084234979347137903511951521520411810579221713024463804637084826774964323494379663123051347733703088528198719182669554992018983860783198850999757643926221558342788342609159603510859894461927633169810352846680603512890551633450796221083657875935047553370059848014857888311283175841817389304119970582638258670735702986188684009901495398324816506070906757253348420735445506019048604642909899597474129047161579876210772539759878049458941450038982024370178354680711927772494301021555458360454713969336926509716808726993865238419690268309615036152264354872869228209703069806929049938104515361075984589663361752944934318640865889753172092382129701796912812447724339073573194390502734735921276111871106609666279357946588035839261836976626750215967147444149863404352257556277112826044726066328982815720201841358936687485692102189403072893198563992093433858495386846486720750330116319504338911521866633396627796489415348916365501828182080039599260325110873515866820078272375983990983979426895507516198027664983059006854489584553221202829428488826055345819609576690758000261020848012672699366638378708577422342876014776293476726360298540690673954214571077191679818733419618779362396403385798248451386730283695059868615245587500010002756617844626105289126863402218596637715180888072330831345058893306682000697477527091097813469525158514753103493202412013472204385896016161588208419796054795639307032258094110264447357773094049130230713015970441711734017856229543108620587520688618370441328135484737909800220213241020128951797250537296875198100751849334608357105357124057953541065011662134963784302817789372510209513480692110931591266612713410811279029180193212920504779788898820920243793607366796288390598759712463160457386685167849313178425257136365504346846073729561971368889913848078149900129539678115956485296211644760071894478675653753994788282041915157719792517017127085924479103519213656250933390218856260985483110408452036147468955681803250114230603228274077519059410343887223051398735058038150972110459418225626604866882997281818269376178589818118732088710700112053011482013824328704364197331801590821613371090540787895427652689835148064591791607393533442680594729878126774660162092093698267529209915515267494434847473405113257296388534816884747816379397134239512768618662371943548810128300299753592047874254218738025842410103904660691091827707274547404872411106791193373706242305383342264624078452701756392289699209878083134963493578157675447724294736822988608571636660343238862129517219834642658409712086134170471894264973226617176704662947868243231750640150269840535122219581107584927343620824089548636524267919864471972843656610145501347146126279500545565863927769951117097294742238529503910002759639405016309278294742671949687847070234734707779968070755864159160788062737311149959965601015532142401292033278620078601548356164617705978861475681683598575650365951972445917985088957711304078126475477404604596921899656772248700041068009324112820760839134960623114295323434174717415273021629025408543367506954619510763018700347894572779839013923298885278537459872538847086109645032542620346885185420913208514509041803199484490611637014531107835948356611614458815569919938828213108263870578726441752297483585800019900377998805644841970099635807009004680462035327054795897484185109101437938341273932351715409580360152723294615405424322667305154024933747961835056006506311535923614473176690204513006032458304702461785635101503459896098778303787178968574688584473957063653219340049225235173492598167897365941777222597052008375776132510136789656674016996876473625903258884873651667847582168791927551581487131021778963658900870350313679302247542425413816809679198144712883084519264858370400494859606042289019438961086449809604344798249355814358993024637115611227843370492251770720859742695501762681119790496010187260793769178029255811839995098327505422709725443827343317881071778497967944624870867296381094913029573593457074691521717497889660557062429651504466124584310911884625528879841504598630542725894593822225929240160041247862719290479996894452537603208004104790457604519525588057400327591315423253083742320388405749428026225738222965366030701056059070466534138736674913741520859265065313624217990325747786345422237622420989587171787426833193693243770644797612539188098282463261951268832953602261709993479247598319239396509788814531192858615978983923247736055649687344879399776948336019591638588718855249075297806350692710353743993774067608438912747743113841401701922131019137491618757156597045152775880946425752752061961344891414393382291701237152994012949185846456407435278140892665845592472486526356318491053617316061818100424580971611213907041404270425064583460221861668887107686881743013409079373854587861185941734721145867237587533008295955260800591258134574020951778336245739758362571926531628579912025167004889188841434091295287842239440731647281517409096145770369215753652033405781301779596036386700211072237072921364401256148777920138842782746649479884212965873700789055483063260631301392123383148419645891894454000050751249346322128158628476164852013679014400969093423355946636895494496947622903731323408906315103822156692031076250896219801390057196180664790479533043066962038179696872117146294153181886554686584522051761504919873513231693372541047853186606274324839252187007965169675822676454980108321022321955101438789781995013095737159986869476239165389293280800855313484760002366920103126057147711845723417753274067209793542542654480184434763937244097583023804130129340286623579878591552784927466355889109473220129217625202319463801914094514042368708576717929010035117298267001241410683540587451882809584558676373678783079690182061818941231471721089773158082625347735026302678907664963386826689914117507352759466994151945519352726564846499856812412760889639902686413157095162027360554687887167630925342282884979444679638720816545915233607792941988312852715925957554511101568735468100000922169440426818763613483669473243115711740460020904164659144051462327075309092406384615487421111431107993482308436860473251408257049260820087687033024047198904733311520946913086013526381871654028011772869931080403412859404611254705309835314120850081234506982238219591038532603082940717427631663099835121323182712498795844030215277627407276627415164069005119255347142697842337854687360746252923700278019377274334335730713721840450745232884168709866199948130182397300038180197380750054444923878872444336559413788961272856521650449909291110704997645341420398560603943240375823850723547484352638819602856336267925853941553499224449464504330470154646515204877336753836070997900989762876472465304078029662125692441554134370121793278742167299153376906023193653130069467350331461143219402749168140295494871037897114670823920000190662525846877434328561858688315992374111119269173975091177300389169614964274625682336797837273695976307661409457952029861542858606468637328350619927129732716682377751054431948348999567947539337624646398509161930122618163359163944812548852932931167621740698491418695487571239566288344336134415186697761531258000002929227609084145686690400121661385071870008846474977823665923060158641855896598508242432959082174170266236067980903599678428810604122897982912741361975852604107619222474464194159964978009482447781081140320108514218328850484719188202011589575076198636409219759897156989169871140270933562329004782352039254146076054346277336979674055603738857017213867506790420750006169768635684286529718721149247135735057307568437485509253517499463596941582179328255880388232634929366645509252326010759190263977895363989197154589626622024807537800378499727489683707271933166259147719708835864523288815591595993309416182908577366891527471918869312152496258435859350219694405006978215828432860217527429998811547697512505514936043162251951340059405817716011337048041368926975574158512892225102648570806596869588885658289640054857587107696772278074571651138476462266978723120258993866725643348976087020388863078373994309800732317052015866087785742722083248997333613285560156509166192588235435439095890408683317209167470804326909304121259942800416041609653417857699386161193987549595626038703069376616656723676348084393757489970451773071079551848175055573394946111340484952933396835901652791557698561913085786190239236972598739939038710276328456238572351857574446356915928138032595708964219827070798235451321634144068083675881788396321643241254456965602023181870230788110850199799890588193993540888618778224384638303223531988576284266387961695449620714618762240031589544712663794518743053687081000869078125203536272854404919357149062266272937863727036636594357954918171723570896753496614325661564029709916169209765515008169719620174751387628204256639990253285213628463552683616297373905861855781755897020325782937309542061436465541177380274098294219495434090682437704290061878203136053240892454964485498542463777764676751803127431541851691621913365485727856211525628845260916605163071113411206390629936812561010358620362612855943978973828227956673634678014329918903718665120467729538673360558179982752789819685646564058560019233599267516045083731021488472481557096841618834122173197607365736627637405672007702114181403048901015219546981307968758633247398776112589696608730200150882563822449811295400766621190331482599970512050953140321410339451763971174853437233592818449193948426025118486014830062624399382869864701355138263923578496371082082500555412098284355877633110944108693593270928307034799587417599167197566803272181224259238843628583545685917606623467647953866489276911276075267736913645947232317193146410838292010837861988016883585842221136937543682163188314432072993582038370890786164457915218144377516502980325794574674250627149423833820543964847014552028654999168540957061173825415481802773343434905520594020066182097125229796944523035288362003049810119073942654351328815018202866200828558195412618830019040094343861992203967240570286709574424240661290965878524588235844079278547514263777710229054208860486070754585758629047606374234030422222815348261608627894705430584351091003591302886811388386997129492106132427621865282088785364921800415114240841971064007154132982413814218027717255183475717079548547719855024037306957604673808238090266074378278635139879002696715081927367704574310064007795816117623849583217205435201745537215963121862367245705193282341549235718384142969890250875620823862242660756269017748242194070247445097706641936731629161352469640216888665334201016533831437197419481242989520600235652557852314567346119598644145162455885170101090100192771987707498437546013490400900892047867371063158149808624099005240472074884881534013899754662053231837212703424461986435563840787611700537336038328207929066760839990427752573699050332758976314375831254732658967085552104781214479176379435846599598717679299185048595523115178934113676634027464170768996019628991466717819354257068093298548486881604248258396257094549115806967260525660357805781325221238036929819185981667424445800204389831608821853796086427915387490753610004110932528148753154996889102831079735536183973352069906189452212006655483318368456934464534578462332344495359434642101554640841761820911052038854871340600597205131725746028747980348970405419027617596136357864280887326629466003212794505091509114489604023726502617211342698056518854649345808764506379304969013033922639656622866133616421753686497753292395865396877150726647610880018108418650327218091773972543071570709248765691521237411056251415418287822090310478302955757283510397584055907975704642541774681458902233316199634751696697669375018027458986261398097389400233416757624465232339107412556659698008553783197664734694039313259416476963819181014381285291767609070524267108590258216305516871325851688330221197918545980163154275372146172574312572633613868746685561521018576458012354398024544033584553420894731345814545563935871704001341012932219890132337754215150853214325070429320273049285689032549512215449870372130311999720348839093449529022928972332685184116656348534216193314993815110689463633849363144769980601293082603868411574089365277084616974288603031543033983212682878227150181011453956793770498716093072142483433896585513965344432463032197207110316088256186642056145134550124776567665050258447559118590538886687674282628434140115734076651286015838716786904399097000172920424424371239832932008966314614873556727495263284176120161326601602754702047166385911250583310583702388635172379699207476411544445630613872790204924408375388588262996967011478931318976869152765587360350763243708301603220540601012332999952346141176825732931330584161980018839531658543404966370258782286944165535992431746688448435051760044565511666093784660955259235448841379391727823532693538335282159198130849779836914791416277728405254480627058699527713560989943799911625350480536926209049355339529539926685813392333592801393162068199781558363283194986169547327331464804673090288743593987672754609620334472327764927513899813159526306107997189338182277144456060176538330942516229683672025500440422274597628488292336085704152168792366852576228248182228889658582580781839179520435103647100535210032736669126895110318862513304891674004614291729883429817482283588192145161166038779312468807926211452133861354268851422442978958106079663198134208294370799603727264753647619814615604819824777651657036194553060986296156007496077133389003528696991794666664583830332001147165829315879592967484088128028599887459963570294453949375898544229700490740344141452695338909008868568487665276886927477107219333544474769258139371177283016751007590436328117660371728332082368904293251771369655206682371166087636363509536733269723700379849854882819425209612936393139252313410906352622169076699172168131410763114224081595127779794523607590419527376272689510965221261746766575776994667395207975411699442857097263438807073102471842285566374408898667582506598472521945512703268486279941226364920230603236669589140713404365499178313644318008684351147809045102933933475427416338411816989828658793262989278665066867012301712611119970079727496376726666470826475952875801545433501449610228933428662150379331176782752849371356217270578908106560146164060220613457896047686320649888129777098146096751069260087303582032084376467473005651615617012997082294328539012977616410453041625525098857504748957803746439772507173427676059442134410651535386208824563138713843627211682559866100336653643195584498024602477767760054305754083490871523064378055246479482352626172449464858519718722876318827835343373738919662286790639060489796825643199069317295371630482297615807510767448161326386000033864146150864384687178210322033690532637076732421919341869298644308366419590728738621695744046964206701250501843607112115289650223684951155923498110538643868941128372380737485119874903086156325035944447232169416184551100794723530088096039945104009385282898349545945643767927552842784037953694220168828580742691748558661292210215876229305562930317680229308535884303387417523506299095828546214471987829562932332823816307743487274550011632385731467751635058350518554678793386790529798045866672582910708945228875787174550222068664028059967249383157382289513754171535318947202255474285997218456881966879885025751043466115761904636026419995529244128925189405386921446011740298381116550793306166585567993983846450250100801125715612325651445574849263135968156957845954055560245817890546965826105275235427625788690416941407251827314983686649738202447360179679497384425930179576564727501684367854568514671959791994878655046081445994257829605334921514279434138511324184438294291165436024140245949074000513349593909539881628576188780230579171744589319628937339061734709928122489795421785030237733540719786861265696655543914343597466638368261374524116941757225503598500004049945253495948655524601282234360594262276713044866296722961979345348013105625383258395139442709404008516267424814891442879082049459209847640311012619261127159144214301176723248997940492123174538580743776804437425801505751523973372265480165701130928219527782238531002037465590257293857353250957483853264382052060181819649037196795132480280607826222007467643553912578632169529223473615850801418282427616943855755805654652720838350534211410247473047165795472856123701506422653094089729166033215885123719476226123616160504003532627844668577503503699114166417067252411722414324782252887677651253384573559195627941624896024789919591732010364851823507191366528598740188550326696599411724615556720170409010934680531482126633353018895749379735034011028029901639247101100203809719702792640003154807337104819665810347195706465651220514262966801199988956968800336512925198604935173051300378442506499040303914311201697356349678803576769331020593765639993758774855388929074360529748936919646804218939376333979311931244281604313902976046914890854253877842747339186046318776199656907986706604110556390829331427274565897732712774039385317224572016574306233383384400951446559681946166897878508374368284604851753832525175980390142601977303192933767195423620225688128978980053265544449399295983836491209191596525614976056430770169550597631615936331228775902454611087825291058295641289873076928639698058985116733478679799057915363858703824659339484618268649056950279108989219196412848934532427057872571644560435853079485296626996245352803005898837337882966467837951154909221440024422815326071906568068813463919717669581338429198737829431292808809789294046729843347615562279834358985379890913229308178196001050749052339782775115050091053981153147706017835868744144048145224775449574536241902641953596323788036261013433741910149028665398050907052310049589893046852013533854959166521408789453919721575379412395028235089614707767764376857815071771675211424914624857163042716235010857597564951196389298261167647674563309893747029073138591462567338148736424094351631039315552220459458730938207692416443424973734047386901480672446243605732712505569855207912324466974735298259599685529731796918039664211062248042578674333685058744195784519219114187705418741892699795466600507280459732857661652902694004007821506495913281521528420720027402092845142431996656044611976854777833939898910850947624736003169472329249543971948073676810192145485375943176893453019885151292509049223375938483626381136806820933214971767850834162849842427967522483976434919957225264149273464911185183886318952690104583155410439040567495137332528264251652564782695435138784947392815421805883236401598886261157533287643722711047537997084632299164355325968283582900897229631869148500986439343115309895941571179551571029773839315367368011108983303415363623171198234451546565652654627913391639830507351529674905534237982400982666378724625507717793273957621202596495210817933901758348165291698676576340279259835257415023193371556066997701343343402505741594719387076999626696099560830015920663689848033169999196742399958881385867833541495867776632999440875986023581121239972659843549419002713593630849552489347453381591051765562221561511065779349430487423403442545418789217328727742173411750347723486837409168743950132384010673605956813956242262959886349023024244614795623321407836540670719981731760790595551477449329972486139797255078174127630536046458994012648044297307073734983672268899187956226675127149310318807837706946593996219881784590696470521670109239603580637159973780681697392313746856630849868069509087720554597206057691904317811606033697867409416569878320328447622874680148717205867238650205533195330528746253099942131082874496079876260523444611614974263444832297646117945139270157271347370418576618288846984665720838117174859352391616687245972410935889391105423217197011417623726167582989296623288883323856141775668633495067210063271486369098737310750673171097649586902229474280613819790650432241456573823124563221725151685811458078534708595949398033528897843569412787631289408346618196982844995708965701405373079608656139128905102085103146911172475797274938526608179311248999199641384641820861605257496204581248311876453428200115961602440201608397408518790826205959119547994171830278409419751575335728731248272564428226395787891142583425897251014979074146496360016320170483274492053965570439951667871644230141404327187019923220028454778284973767059628954281449388452607836675990947609434898796792717297106157984306846610824244092842341213657618372852388625140162785496831133724193400233930541969811538162797368212898666410712640385191330775664353812460383818092872178268196737847467168522459152822762078093089716987053965559800057208536855131263318673357636559896244162570222014630845828457159434604410940835090994956437586537347772455208492065943074435333350452078030891515712704148475425971143353927266224365392309483969770036904909124207085356621185725413427937969561285926521186317880330836189519446685686151466808991806111176798861683474027530931257562273934717750279118818451726689972351550074883213599649757826975320724328481885517511133414284578633959453019384367558696892263630724135606975438780051986818775946054284085126637625847916321483182120827623637960120239610804133379881754401396808147521567510616747246016754519298548417389129700553516217056303081097276312911153861663504200045914265095818847722594351649284653742032023562886777667397292134993994961842504517230403877765472474870258580358526467036478153669808208452175744644566441056159127567834260103848815896932172394912606310463738816961759958140405939190043976028896939688805279098242127271237202275947615560562670419345828216273049218355552582404564293051170923041471476744999535840686722024264468949530948727211772098364391232025103339662685033095068697253014602338393934036865734693627551755939655513522645077489662852378321969435291471889142624432829522423674442658658141457616072084526884452221734771669917679313641261332574613815176220253331083243781669384650349294189608284520128541795766452112145844091188620537699658480525083363744897738890526660824054900715648482953127804611316956416564819506562611533284117632638048435797687792272016966046180832954905732065326276528083594180487474915374281996385777382926762477328666980611355202358873727511519723322776214152156271346405998816056107611893796931137618690333728443371468190081686985480260759900398950066728125480535665382405368720138529501060962395853720829850866637462051080200130398319611522390746772893719597859297255540013414404784829389442495307036392066813428372050034433200266437116391334963665331036849191092745943666318744492451238528253952280563239557072659400056598241606146620481994310818372933488770959057378469765633059482280881524958747184922700234425061129798532533506021216340430935079645980178296690422601679783726187741367170361840413157087994618576314757628644957465431292076582003093145297553688027563182426827622094029422972232522953019310756556991374614309747498549613837546937322525730678022960997586348672378191818060051793413016982260015269113198153140079488972163199037457379570441220237571477324679089992952802697226760775613625822254833620219354532567046081104490808188816756130293844335231048529517525576045495000713420976038976745985432190667456489860976953374132899189151961791409271271339529795736932227134516712133924317014912819470480971879428904792321590501837810746608611415247549466761748836015371838474056897377996066087519037600235722403036903920587441893584151078886250291608919843642065797014298349539291812300144206575357555290684428371687019878219728558886106557760824380585999085220222497288050330552134692700180641795093213918111108574179940952882073696904665360600364959306322986863211263323149288454181205184450473829017257202120905565501415685027208405598134947993742612127053469878992619974783450778341797890173213590317793381059133496148036549448128682333131585306501689389500903884976780638461055357595636926925009337288264117742499297911211359379800395389482323265866959543403529262675153524365726761500585173934632882708109384180361428484068473040703513952625633641389231689444950364390034085897094247213490483923335955806815563725330154191506732643190331178728446673621431005294125376934972342185455241779148867337133473552518215923970650357599894412804916315753425690385129847943257132109676205109796063894767067413717175372607225568154990038678041937152334914437011946781451198322199799436334500013419764779762465938480605228225499505084709911664608336583119641834032888955553604925726356433123407453161463964273484267269746933754177149812863964032904430657406082392892301254460812150747937759913721883258798403436908416300860329483759802314287783253566645334220625362111985150760890552537004748239640056591766209634147141571553049624622425057052904126643503933147466337387956268364092255244619795967717351489415902276580997318342293210331430491418394086332277008236917136680116226869931632680383931511972864128733194579238250061074193480827958148527279227725977859268443218581842170732265015107069386289808311570407303984885834108975210594633418998678793201755153746484289390548872259245306738848673104210304851037505762011301913295083553545238760111754075686426974252779733541833934062209381553220194780546361638044445931948559564860189675024243855913616514215236455258945670240447648441150894944354024101058216390939017861628050043924673376372786742620007578503517455393470692873960864248932628751578184461951477958996537045874123035412960811793578897501295971104106926581689033814569147362449637492046190001976791074142163270099172523334373214903438765587330063436460454134494037012491855830234163042549417043997059583862165748142364529808440304086340005623313298844476792810448254849434083546536848425401209019898634141103069130895863268448440873938288990963102597312587662833891108162261582824887846151915590492127895030420882771757770761165082306387310024162450409097379410443451131653645652742564084988944165955878697554911994455859088502752003342660910028372732862425050420685759694274025567197842738931118151806874246495328526255522119695215682786781012948856909360238371863957585406908244894996314805988787746151180456107008275999758638265674602965888212593168303852309230220043582459684293220164072326096702009786978865642448113616176390556694134481641465770187776574134961944430919934854407835640263465015779034367693750319956000512961236631153467565917010563347360887533242661312738425143041716963709472586856349329969254013219852168028683021621707969044971021867683626077202840422688533498834822677633915391419588884427034685904278282509618110320963968993749916080039643712618312281210534893888144713646303663108584508346260182539675616058214615557409310263387301458786284279578094594723211271019574856906811309560837632258251869966476253414062749386737114472524790895053387105505707599070376887204466284798492662688964617997515402215706423811184111173002362188612711646309759708651363682481418609622755521631488936712145935213334499262629505539653147137109651817332579806035360632498644017502665357960695648347461579725434026375016832865248360942523527050103762309874284187985023729284020500706445822863257282870906763714720740952404328094709799072500226521356220023694692074126542599708164585483375644556945875794913401706454437311717917199106250494580685620707612818421464411617054399762283768044277267627569676833574715691854860060989591999301631827893634555660061449634739018289478178678840087655137463192822361428734400335559712355658619779989225340688342476726327407472365785376867283238139135006596445293901738413100825836992600892271863322265790858010620038391648887226986058001009280376601466567806814292530098491436890956338025706499773011841409228079547492171907710198390828968976887772293415721913805916966372766579287312353137229169470470272131580827481675468221617217692730740707415233003606911106819986054974134971652380234957177302937343498054581450304196021653332963523227495029042270572600066850104337879381685047946308565467608634028616567004090774589649685954547240400156598369774365630056901450646710015432674719591713732675412483377992088791885086792100725460416613695747326076772500917459880128900390662698311378898525260585401696719443401859519695821954653569433898167669896027610569636863467188645108864588722856339683344309054093899644266344017866256424904803905420278948663366704554082180953456278644237256202084632704811257231876110644227479263272341898302895711753826920306775363969964576255219591234765510471698697287670085531976721849729645197618361382668722235690711396816527287033242631397308021927442839770627078714878614164450327500568827967899803747112312185797237070700818428250529155929261429238907085232348552043045145185847688570796885030022113226440186133121730217072399898913758856102435408060750020212426517321033993987903777294422184665974036450755491150067331439003882279475350857992071444974102172400491177644583661083417953499541207048694330897097533509737362299242963979682351875344150274477894688195682119890264410783809878764012740473982888374200374397280638186478478084344552604201955665314839521030919977954808594213869512000730515078458170961501151405954274500321619215512769147830267964996933289064431814618807226706090162300696899302709839666297589917580265301821571178808114561794153349889412730258838719891130927940687625390154855165395449654922558515817540225423882025878290130349842102478044166857440916026368630444259414535740578752552702719534846366706828898618553051160142348001992724775403444026398187959550248190638573703672758646257991024069591524220084295239426107515022197263547156053972842646075933189858630313086709021540136360847277634077762448903178702234437706015056854662851181445999276369596953987377831865542980719465283030714116712419647330385468628332058796932186662750501986998090812474095656982070365280575146463060024204614978744127327875019981682959015174670330221873589671071976083018265435216071252617366632713778140336366133260009161572606605397520593539460568381993114316843631090401864230746529411412987731447083170784671284667523543988028033866395221593820119693405824328050604943401588484286268610601208069715136692611549329318794009211669616573242956207982125507010867746643062768852774969539706677684067487693676119438811941192490395698068974826575225611349412732071175137774313384138284047185481758492460657536155334037674518650839218108568850331432167233472855112457797415673427787391660565114574630692187424897445639616700197866082076103793469207060328864500542855207093680832374004849699395619665785775177424200445107852415183790709275221414306080464983449388910261391475750861414601066206051245684627551281370697976661795840250600089544624219634902783665450410921200754128746063615757180268832603088456926269199789226447389249288686767267951612132533961771421855306953159502250810061563022208290232081326812499766040773042001658589342552591744375184455761592766252413686794044431182364051443417359429685869551238908783073146021589381545123947783940774556897352228251092118582358654502018295177152437194768863376432859387458078833840870222949778888623852462421860735167167554266722474938819545330309562807225054264838655258549823301960479383001586327722863457628267546619367607392984465336308305658702122617439291697382569571973113028599060187863134021326286010603363848651963680643967434048447801542900291693257944108023031176380628215471602004233373142464384806043175317226776419911241843748076400575072977656165035810048891836292760796607140537270646515084682899645077870911452809826507925459783923031443308422753710414193948254245375821142966455742138261170443117186026866326629356293938575633480782923574563690180253993712377690023794966262048034308335385838561472797403578150002072730631783773413742645618465332489788546635076970189351473289265294656446831042296765625530504036167720602698830866997804173976509569134907740468328498431484552197910236611889903269312615491161473640105155758296681661449227721906463623321597546667101116585473442299877856248746192781420347754892152751075417572958793242070351170133928664638363532955716305945572484499737134928494025204501785839313022267562478246517264048711331023843898653228343843798797627647154777567108588708686249926573178296044161612150771298121071584729656473712770705399655382430269567703150234634657923619352917150949213183272617558594321771462828367683631282913900073993251922502802322104130777133629229699169294732844202886463619712468239246065779263069554408368177096653258900132478181579281059527734034539393482648985402117004816520639051258636975440503169359594480829121156623181386317515618524799318856346589022357916770368865941897675929180433909346543937679950367999298010402347730790071542840198466249237615442090054216212046042012208741966180872529852758780628498505520889752592745819556088547548181512457430971169635136724426484338917586255413620860041229436333850109271885487006942920619188514861141182608200937239671493237033700014125304568419755561079410750582623129193883832808122252383892998390929003522979545006940939113362694753524281039517394732283292637014439521007018559065686062505170685408758678272384010088726352487633727971427325363289253207616896950037356128727510685636179018334966483621511448570802588311565356178395698655423080712263375895680783284353020510884811837630856350043600508361580717709165833215830568294229671285039563972759567981211977578042533793886476802913498039324233503186041215827254837161101797160598814477364961659289490132578624224167387503355593585138921240378161305664351182204367805576775301778390655802436954726252233383493385869766548258823496217515343079475167047902426326740233656702685118758642160719366656034969931562032552017351309576225216909181973936710679568161135130660803812915763436257364763569085439496939721653639408481870957607136723767730325049354458556537458507559356154238580592615770492558636203947354785547041525669615646992479116418904027465186935157050716640298056446826608350705751908213923790554347496622218178239050722573045506610605279827442459002775398612642661462209702608959783191884198170792362103217469643804882250504826589221485002795557191077099482876373207989470824222949967894976937370559296035615434212161764840538268276588799368285158572725620697834231633200261435803074862983204559622123635738769692774456881436954277440729571031883979759726648362162080771197787221899378165448358850414907559848363433328173989355521549469655008774931970337574148904516025277615781790205729586162677576964166305015753781494125250930429400699560566064767285201288556231825323965185833679524468604275765877833618395026377410647101514493012380544995601576938982609414277232452530227586044693813099930423806522532626439688160281079679801944533628755433429327911766802629092674406387843629389292612525122636218891825789942319296591804701783028240527455846342641411070648983087611779683160799729412135422813134904668787414855804498439888124585515940875301890065785773041796561308164541070232240978433217868580281233427065314694429834683410089113246705170657496963660520745691478315932586137736181701795923671847491990231905141917768207401642888754692871493593311404381848778547323779625043406637794888559685422826409112615852126424456658614892508586682422576053276537684884406818472404841898694863041676942927357975565218795174315321664568106869107874444301473408345276816755330820732838039133816121711971166100763591445782328051751576929267126041657814092454277316475740283604431465416816166164944473061544580594871868391809433919912671104609797660937715764099652122038718177472109512678444093742739432930681074904204204673636541112588761058524477998843033961129109919483936121582178538601969328713657898431025656169575074502100935419721563132457284126504680059875118518339290525830210541681907087944088658753570468798892644512470939837276024401898179642537679264240216400918638117622414496662904112096993424085920558690099000742229096582298925466230272472625591121716504987400981942354164308565001768944729477969099442721539092739557217823314767060019217790456496467223957300901078763423954965791832463685838148681377214282858774138368054731330303252772616714071238317484434505436125653391448385287508486254855482592691748148073133007938076595713858219651671955436048673434425481512556133828713912138677317157362819185519208097052713752103998615243031315788475669376135997046986267414538981443692150570247612653732140532325999473539415078218329933069628546614436301892570552899994075639992109387468320680858267758527429991319131113881369764140288391150447583024916808302574988830611325666059714046081783787699165078070835742355692384587711413397776569933204057109102187235362003861088363472536504441568170506252210152506064312647695523268961174533271718359435717017700857274165311406149327669575536023888114603453544987023650434163971638776872091571765965961073004289814270809447765015297936410485380903057173207854654658261141294287581765030324235085810272242406769200043105486661625388455859679631133027489332920380549489535938480684447870025669121522307106576827618491216900767035430004361089833223350241976748572774654421382012985689121644689129758715821281513212291776486234767821702426920732067176194003458766215490626685692013159175549090083116016812613056178130109166495105833776222630442336552666964937369352127522420188843477288812972014267278650491324199423343825490028879365148272875991107871101102711567278755855050528665028007617526231145432200534069393272758476256733119793505120214423452099874388150613791581006200147558560327435812818268000672958836312432283470668775135050905272597531822286262449152864701834933538856253181172717745049219797956046570916380571483518730044661551441800114934618594434596057229892554904479851576418392609061461673084546094653572166237560551974157923022049050585476119517080712277225384425385419706843618968936959230108278162233898850419813453651284144923200641359370754091354672283963938068885129726730631471387174377878101955531581142639205666558305458218915551905429386874218640845430172557596096602374491226273568754943322346545049443206559927246175471467626876084694253420699197331760677577186414306315579810997766002908100194195936350821448354707496938107730206065658832494721664387872704911142527577043349160467873368770471677821957089940722957466977516695709638047808984483606553370207449889741671683012742746715029996032629920748326271580400656291353960122829017358933569971812034530440606463311168051733523903429903593907189388847066399614959703070736471123223812450974451579866729223542605741059655786930773270876776773352947955531909707867684190884708894712565729400863680972486627674336215558242354081397952350203108407094563934860279327706358650495989514103352543834021997401425637829344542844834790490918020974216786121472812645839830435301598013929373021206680424313724410260165213684002501360092537935012546591203573284771264315789717161621666334056432226519958624862015381281932560774452366436689098211694423264784519381419915088362256213919425053505358870120319737836047388462349220201002430860399868613222683115425181171107433228239577340835176334206099165287693923392081119020150884010964216406546246112002363051743635753854598810472456124679005211823075488230555713961176267703788005976394097055269452965901637943798983628476634767447169274518325473190685565741113343465741718322852745098914231165769408034489977826131228253927815038895350854482908824015765104958974854087423853211608556954007070248677913420829895007663709725272943866026096274528054825235709408740179066291973466032781581383648155036147854495716986423228500356497256517412732515279415024021655368511266564346436235086903533127799870072410667948429457315577837526102967816677755291940473609296566502012772790594370381384862348208298077697004066738449530132684963428041908732266658714198407259804132465594970396144849042694961374318522877613182366115835285916464219700125244584925784752603452007071247101191119076579325883684525670137638063421762615110227037515111021772970106442043362579311264986524458885531308985279109142833874679072208052846150816941972121761285765310193557220186195181210860742487486087016033931452540249705017990140874469074207469706296169036740392433323919314190257716604717360719784945539187851582546470983938990802646802187430492466059817980876396455647655523598492798244331491750458827657963068658309332955426755083683795991164288094536514180085053056287452666180067205630632533745353763318174603629669356694730676431354265918700288507325224370073393676077093691907379021877341755416460169492487044015519876270955229447734256188953895739734345251484012671032482099931480020851810558412100307177539010057501545804511669592825987528438209018412422957802289485705210739421665315076711592990041993784279253696912418645557358903896484144947919162626152631642930886602871747364510177403003501401092370866877719086067427845437467037681029049722859695557408040945647742694603844115889677361750075314617994497136973639691335721679227383791210585472211508393643458323243286604180549190129326219914058357149445254258902011977726330172544731334483168401492704130708745986624087418447007938578245032853114455126486925361679443811888533927028437093812679910076111918924150570832629517146514477852365155994153247044195830192502153470968366674491631856774563182982007602048842773724804980482989241363951185895092419267983243659160212167073229302790052365253877270858379450646797198276921537583040324394907377262845549940257548770370641515338739833222781840054904941688069885279345032511603168281170081824805530195276021480934246355356518702149046630304184516718389834731181059239536793111431062253624813608478638884690929201548932003424021331396403030724105935372685598169275216358919136359095483958240888312479661178469632760812964368983038842235039931895460750303885138705603690252056771869194545163481571735249730295119167573043111283279244497100386999212874503615752967642521934666114203378720727697601923233223771751592610723715223831830303777534178866939583323470361804319726145748599451295773787515112979091584814004167801198731770851476368315040104200351618509721373734948932866543783293244280052346897715484208415539367786663015383511954405597049564176442346415328197707097592765912594784506474038190182446548495717126024736720881260606140652434213413845234297471741533962256599630286211328633296994249154525903993884531722075773516134867735568650223063910737110826828639547112552338836068004835725278934658517968338377073674760893862144704194623658025486127163682598345400696322555349038567610215199497185306518144815572342768156316031825292822018411663990552795507157823553583377362251970720982427324274476815764850935806027191342561659799742416568002141992179508563484124471609364318036374643505506428353085931712409822656438983065743475828837911593390345390949356971844115140737291626532191154744721167634680895033204159784707390869510789638866202446928106594670109461334204899997561774654591648890829992434772856968151606992111704507572166266043397761203293727327816053486993169825801138042075700182972780795228910809808725120780669712172698757718247127267884837458655519447899094702108596855525656107392736413655512595838745931928695468886845222266243982277468109029422030065026436856665393095496698378230965799733551039448126079269283975031248033189783209706508611191872147502738783683316827041993086416146854168403278580061455205601776914870219209293975136762454573784253897018001135191500081070038190819623927261857166253209001014045656994285469954545197984683171442948472463434412206092456524845337063169382460978957023055972461563512087273239337007015109641001815755619481210930671950703425930821118452822371227065650572808588488759765756369926918294407924320686204260172510266119506803840816579536652391439653268249044581112315765282517269880877952398832672812004579133077741123562718292935548459290554258998429007614129150094079059555210462342870235094875771511206227902057735669521686451154847532515404722912087108684252210614719758507625448379066926156463516932212139853635848365250638116138043558043723350757545011960773581046524801344784891995190003910462020746061817125488173552956376723869012648091755848293434751705851707678902536452733235370698096742315750725565244965498923728384295564164068511801580096071973935856310341656876622020049419638688156457780904677793040567534647448311792204833583189389105645902850664890124098983303346144473056023583751958385750183288222566864465185677067207773383422515799692843613821277228067152996309085179363656122780002468241455662390757613945945407619556879914586578798733286607847557847900341542589555073472107835361755973175045180249569728697104034514282268075775406016490372585050824925505987718905283995134213235682050237063726867521874041504854496096915617034228459281025351361762362738354680487600687366794769710593025483935347827848160634786365528295305726742921835379940248779631907848981527683325499149999382187665949204022961540621121403883244013706595554798508289543846694392975798565372494776979278349774085143771947397457532665145948149482290875320273479046101793412997889192682774646292176859073870019633484874479395457107955612678639819290281984362108846261874303517337104072493869815775596561146850768637240057124172314013269736582984940585600883797999535124117790331284380237513791404813175339967947657650845500105321127602309730547321284812668067787858406562568147099216138763073334870867903517384105561040771880061831837516416136365623736601707153563569610566409139889745738837604955907165021179685150096915099206320978953744550138142659215129888039944275828902424679583376723105381688065182355143082519476914305635592460752490821294230369372996048908878221958735567939245499718589417518355412056333904282884971399280678613027449470240065609189567862036845598895605117424573541233196671691175691303728450019454170563420501560161901688115043606319382867356190025393389434248577886625001803787531352041354651191544583721725218584018778114024620776989377104269139809449973215724014113021191074373792695246934858891867576125696667088709532367662826722878088837757231370950120420099238422722179751898399604189038587720328420364081788514016105761528490567271598634965224693326274941228928650957510341772754131025971999333765806658751412047172609940556938124967882188087743359580787401265573138594952343023839032457780400355982304522532172531248091699439079765465384455240960216471182590802087587739227660820717148376093700485031533403618019710629566075167854231959172032594960821318064104633719830927699634220654015324291596727535039698885124787924404755937991136484486518269982736608958536312231753161622646810301768214321160875141211654732949967181494382076454796280747916029169067954149950846423524697290043379645739508760904822079380069426804185248437203127877760918582565864628678094047110327328971478000470363911485277137557259091390931506199684477024629119218833530552062273051796986118876594206353171606964245149869380832445879525617447674526165288685053050096067677738888395538124849044880459102683097136350398874138632314743871055213852421857934952515808003000718599020916119218143616240232842954604910284046686613191055338100857747263046614901836635681281912683687375860654687237965862967879362014332841857290283275609718770507693321063897095130093176236723537118551622781701637836477903179865917060017072343775502805682596320117107656348831943527757673551999880683049359114170452425451802139253384516151872709731587854425548886894579587474377561790213895806553831095201240325229086352559380953354901657456338133846886160469981032344000720478682278333585130902050720162394126554780990854352685705188959090459249432029963989695421911401956394219523134694162734190487937737314434471097094683724366108815467336240243523995091650416793338733252282839161331868263820005979167788227685851093244948677048278296975694863339084146517085131729661584143807909868703332472599074875667805405110770768879805266327889551046180028473816861969211617663833612700157441703266049721930363560354084223132534155023631537956736645561335301548241677299350364361672523492720506746515978669533762102374991939904962599832700386267668660719175797946175840828857091554981359148393933986168784289421016632535640569935744422713112954263370930215724047366635949866663302887830033252384805852968863262974043502675944715777458628674199644531154556799376500822027725920985921902611417396128203968697838661872479776282206363108773788166098281303209821835246396131402428352994279429911429929770384472298924533805670454333836449024116731497270971460187120901688726616489689166780188071818624966038675538785648669479546807564180193225052393187727459966458648071766467285262739842347738386512488966207867303623098395128411517143555805473368960500251174994951246970237212450910994946472884174471779279154723845525314829424934157615412334740718701183611491750338404789634883993812569923174019608097314215937892597710449838961950313537016066776009995965436513242222145937284537975952322153084293024664011906250540748770568226554519580510163170570641470928179163131264031977782240847068101004888493949824327665046790957482578533210811921190454020709136975155625456640756460263184122000781841096933234124197413370970354095476732964799606149980836468754253710916560389024470268473855841869705348348515071323154393546268240561388369732125633537139352176806039237278400597567810997748825639180857494359893781409727861680984077963214886166863824622432309920244352832409297133318593289506464969150170968068407872015675906013421242151348094870165586342105062957262070346206385613267242032014061819699258622454788384802233464603822709656802112656316356156316082542673266203133319086709530703130770379385302047932832547208044345015090775534693171342961312469799374895190784041840581364440260527402572975792702406613221086219194684281959356790544147528121725126788914729480925920205390692629153286375438251578962430029045073715358876240569255646504469839497833036556991541346737838431080436037990229311769185897346811329685481776542129320831735112305254481610358825231599594535611583589724990931257164461322212409737732326505430999236938615581804681817236561917413230982388731435880408526324109832385331879774603211894470704617837176586477512854632275589656414669073609678584410671364124216641136421370098768988038746230238825316642324792807419545822428829610927978280134025863730226086446179441501421826809012504130617891932938637120687380132694210294692274858897734867454800995251944097831836319430246536050746570224356023339448324705019141412499900008421096581803034793409347091451693361922279686961983265059451237521478079650969088756653612770083868690471983374099874973223757641851514196614605786214230105538224545340525848067272482915884315677540586453750957573719886576329353026969625079108453298293188122567931384326712176701155996790028221466023931070383135356849727559349621729843551557601220507448712632570985051563184171196472491435110595858143472721764023059059885405294193251061750174206048888735945772245116765712980080079469986484452211138945125917475261513525267681236495916482922872301772297300448634095622927093793770066552473204425082399771555715992666747063403693603734279660534286264227106684724814920787700120127463770032357955226434419338167480278006296259135469976234451872528285528569850506373295383227551922705060607549470987421264789956984163794528340498272061700015504304901151286403150667666116412585783163863816856902477167485992824088638945993383985650719399023129442662153419360725922328107111616036683450649606825192322997301397612187017019701721326431220225062603535283523889966874512767847683959741365960486550254705523328038031815555337654838132252895977028343619627836131974961833980197442634553545573899909924336980689361549320607308805406162402164901985626459970089910658372673083034153747739216348532689318766966072633714793187666449517935452735233943574538115130705961410244955885419795005620667078898052108046239352597826525944567745967525823096528140314171197576178924634868685956194677620438898231675232814176777380393519163110617308943685994306529429469595437246489615213820911333265889598255684474852907189195888281546773899460210856179342637319213129136559726467646120510712957277242444090796903122304284929517565151060454295682787937814149407748360314727972054217853744843294821488179107810928463017971497155490082923246773322798222691712407568594070416749878187810890736409756867992435456173916072588651402401365622235856359840350653410179918569661300394189980121759831212343168861283277496851490455381667112554242897545136968743491256632035091151070029934406583577940220697712796535140117202158460026243402060039471098076313883122648936075987224257162564703441987071766406315920029428631241597648952959379863272141506220633333385870834568609645168421791367368233348618725052265806418795209849818931488125991913636502275316705035446437290405576727994845613553205925261099781499931146127057102243395443021616632059639199042911385225211430724273438212729095490501924569021863850746855626243091256866191476315508561082326437438257818297496184989131074882255948412025809643640484402989318561518328861173796671103389148256512485363562968941770770536994817329177433527813103002904349466783851353224890653146785183669824023772203947968493429670008153226735030856011527273429704605649506881839313565148456126788737396243107813836726960034187043536321225662498647634405439610753541563633583998696204915460808493740899632160144916769930905780514229214795418438881363459000215742988942643399192667331838495102428064925841514615045900163513597965728405205811248301471507458747894593401280153771381899365596650031065667968197091452401255123358927696120069295712870575134711991006251818980961106389297105528037605103341032716001858112631929201215602137279662977535568522795635387439870754768933442094243557828981019928358670300765596742077691274845743554293280978386604329644440007051362145868772267801843412678305992496962907761324732167939992121804780858677435377965984488166176918663630057443731530784319779262290630202891775878171561127758147031612656304848604431517336670585345694325972438895501534061936805595272371809956698427858683204911599594196788242994483594406233708656319557674362366835890888116447628660607789851281223281422625956369606282993460117210947196527554746829355931792228522000837901790679966191330306830321726901389330791316406924905920190973840364500955627510442141489822145262620063739599013329592322922238276938165941716454564695549198976399691425040088685775424473834031604874339699651383745816885101128142044865372454196039819062734633187874553809689483392795670433045565258130374243236945703774178246837320372985770519012753336618935154793102809965651307455690171076902427300746039843358015429227565495701486679890906962203750385682161883715824164262832381260548115455290590498885921952066411117011301782832296201421468949691708495840331886615146349398185231509552001452187681997984441247811600693772503578501352484117025118939189092283030446031347030061284621816535147477274854180337029207891046402851289825557926162720253396687921249509335705405491595376272371657374749220200226541018813610971072541771612454109215663689172917592344596800380733325176791917909299836825506699595088044246167568880589356189831399498267657372888712672510349662910471212314721901539198074904970368399202473298287776454471082794931159574434040727004960844400612609572690067000999156497639995729992098564313876462606505282543719607875962104964922312206649338629827523180285200616902765428767301318753514058293056677345786576608571797937185781572919043546313954936250459331698284854795510524573104639720261991260760461731434464658062572819879948935100372211043252804165016089079508252038154260585915718744795564261639386961126168539323466032122182867532150567556750242975801437196028356249001566635917753889643698748058021125389493511060921853949430561908543777629439965657138068549306681699847929841395595321349065193084871250512848033404645454133726888672635838485107323036713413142650104953174322337648890442283979409257543526853670333804015488373010710781122063633180532000880782258900739796046761088016749651037101290006787390022384030957347770479944308208387433244396407173225762463826747667629067766586893088228508020743572391440162416441101442307033957944681945827203468042537314390948822116285486013518182120867490540180894374199572377247650826838656974628438721497421580419231224332610381940046859154257000949492976061679963003123289010822652269782330458312444589645956878347029444005427758721328123193901919348048299877028896167955177319034380208620894607907281372164138102893500887963854019628181287268787453031289231032964446038946246402636874490691663955380991767411832373649980538885042239104417009538468757504043183487448506380609439354927256538899863759664296381602575135888340206953564910855172658321046903253579646643361564072638162288830849240949205109419377605292684090409354128670051191801905805692057439441903319288295371252768324343056762118768487295858859202071954145605012014591491469038304830023699193300437683735622880145948892578168743964509568583771373512195987546919803837791954636938836778333979480426498541804488364403680881283130992825566670486840745372907917276280387766264210023362082159285067329286236103715838513945492688339774253152787758221077027889060344130509218152210445030499815302959424671087312347562600877841147480643331679104014593434469811104149663894602146078748639743077801213280828605911020324334158862850471018951365285492298039476266678586549186952682790567480586768724192798073144485314186541374900917802034294191510320735642650038672062960270069455492939653353719227105500531549509605513107971426243465042953533506046905544615408661974741204059703759165468029955425234111087710360487874723943926387394517822370201884657072447511487415546733263059242743250442920233158892556082376786581066088119027677927456093727509125133099528298125147612246396063540597083769340983267582377014727151361385505363762841807226010478236951556725212412291904186017535691908656660706951115144973887318435789100586359052133403736064065700612536277340680603295466020911225737453038062224895937808849637837219769463501381359229827501193892961691331688872810710029554284922145338775583477801452887934952964686589019420540158720751117615625422640444591703024162324895359773689443150075148296818926311115324676457628541631855216820499567732387178366531809574227444618622463039347786543734510951492010600898522927168549263743225262052838867873471949375512327380873952774233323848681279730889588286528416249604464999493800029220985210633038263261870235121709459559515319855507239323783831062964319092951076478682056701322937962757288335726685754305356011168556089391913547459990898748058728894975009486005438687150735902126978913669271259303302360022930237500161495284952193617788827249314972780197128891986945939543104856603742602122632905273560563143783603119691795173363722433321467647266483554019061096558397555657677532205058441702857630334402790457867773794541490493069800902280915374721556166406533211370503434490045775993192550827364400468338376394145014492912024375799011781247726438444257374435888265630309419065150867688468922985340712971952154180580018645930701514027373232741501948555015632299613093986120119186249649620630569656058071618864228226931791428694916330012480860895287245942217688842884494199278275644713414992926144301865127552672400512984385887277158459774314892346172753415193998218752194413992074676247123378701268149304996468872063831021279039565006088441519696848455807617005899318457311281983199640264796044233650545318110822439726626962064369528009869126034503394522087563315333997667462535424168264643033771614615635623642666446018156028080576924378236845467402089668075404293172384431301396771484261864223206652002291078018008119216042612790588158167593011247688434023259682567508301554336455622288641886219083331611639838787835983026231300928377449971705900121678039017772920347746597746040107755794116836074752975662351903647546854365945018504746397861336492961597547441328374210348826509798161975635347638508920831305503329692686552363914461452776864266710002907414569188261319294889134294570206788462896275969598363381842962469299327001863420357950846949612242436936875013939918647898718464645009170702372858849904657651460012876944678729003776332586057952124890961663777546790926534223049287420732549071100151496970000891563977491463362982918681786640119046195052110762455702630471812505404255170278179531180924737235754280644003863833433818259446061604111993639474010588419330303553439840036643831516597236901195835368384943175059712162943671270434911254265138349298016462300478209720800472034503938370176703795976025858792052327289903281846912804522237899799013512823697907363334125447653278288761277520506985153933810103946136140690046245074454866763864660759631782484383174896420785528845602957363544341159403772728827707947686424490494077975821398757867443474028617198551916848548785939605828733400370452432048892951261721686025688159569709869896736761959445908688871991192998086554894972801723248307220913900493471778955850619580004285511645086562657937360901792257267585924844990871573871252306065739497980432469682482390478468395685695392131414954571693705365034103574861879522881034602594776498163625613306139183376668456104424675810784574478269163106167242826672377413333315615487578329692883849661874256124461796630423613782886556008770080229826988899549432501129202880878442386997520133148425856287589432028848901392612905854176553491070681618808226787186824881799972799067419402414985435134956286405158085296788984422566619234637836123330812617987128367516805013415402840491842057643458354264262581240398862267566747131067674599751052671367859493381558720140812318591404093243444322810160484368499190872629867572941433285656865291554504648250833202669943744812361580869782551465898824348773553168928162563985711687745639217336316312052768398708751833014699875497655554118488755629671714479160235710064870595848998389967241129841935315700997360894697947595451627875846936334469227778838609043992392407939365934415375730376576228819450919202395898417184433395117274511786343135235559620325672777834780260544596903556856775674603985537788866704359597132200210646484882681698070022174143873499258449625895384622122068509074511396286498660037070204267198029629424664273899708065400029924445061236137486778705018333284582923570908997740973422075329223487845419258036076944905119466210067673642215752638904598185062972920521143067191979762898461357413553325436850844704558297637986934745963163938514727455044800428164662788684102683042269171798567686692542550073014780636134098756587795070560867038403321339728671579046778526084448999613228186415652364107935815470707128054847234655995460708762508616002916002557371176059205032094167922678901066658409836299880019577662172062436056826251217627442098778694771783402090020769279495682200557778250418454209087953727575366048334888509087945404412489063379311633168932411394676635195655509285800595826966961885837143643877682395057843034261508855453381766597210892888068559053850850498454863304702918066883677065405046725276479249649809030446698637763589829504174843834390587160785814530727292199558068762318058285194631247677869276748348298648535511745963723070916980018253935894938403094396531973466260610471817642216251487044778850385745732922857237720231992438261968150273732502963546338016734166255184724149313779363114701867218555980740781420782712415540067485315211881941487248734638869391383290989168589359183992265751239567354779808974637600117678295959868947805026168807728932477436367719127728676593047112483539653973568121632533961557984371126922026377043469763435777550716373752401593302959086999195212611164511983223238280132318099246053409496354482157812396081404236726045813784521667612344305244894167524633106692692093699892350907600742389933496970724809646363529520630282832057857321506479170600385129649160771071626577146446881473627110301586090696952600754580703761099082440225060997755727048813995737375373109418402113498009997165698892136947177887086031260556320628566490837821908569194068667427341685158021297641235590733907901945911882709725405097011465263586380511983322056554753441795524371809108330698519899359572016228876464696722456802876608809571034898250841783748182631271748921786335636784819239849721843730285756339926820289722564050760833012407165385929185437002401779922201787003279081442424647559601442709607344230804823873940583965854812860137183619860361050772965082262095281705488634247925488933844415002031786512948741475965678018181569188788825790109017248095272568175828524698123702443741667662268712224828283019054334624511829088132923426286580211092846079343961367873150094403687736875936828133419918778549221878317763369378281783099992436517971764915901620890318292718211991916374196862927490794956270574183072060312123429117579504870852365127608560231253339632784335311909966535593950498769260919597335506895192293557576059908743311459637859724459251666609745313274628615908043592325413666764990930533338289779961576696403284298536109802299804834044316159620301044123300057314272192513325202001119485195136248247244858727607679685124569780003442649148301578271010267510422180742905926793618274307628614437196243536717496586585901662154994966347508060239331904085491250513051740494062555677504132854960195408072021865936773677204392762541792071448970334045983044126266707516240252853376489616288376149107606667648853432309855149424263731479277852732158319167748701111373466418107272710626292735267910726911567726574325823972074481091034569270164605489833028497246920290539160273546233824320791401050090023831192214069290110649044561276140989562989102803417197471154731353000592498205303935257783033104603708382369559096475113667128120995366334445366869505692546200008406283759228425642153242563401343443249036058824742386973427318360445508664451406498794582523339566213598776220545260788049793088177103659902910844765978065908993164237484856285799960309493759522057039719035777262941784236256686623220711394468864300907506342358290223905712475628007914584609691377925610960475341436898395593141416739836643034582979465932547665098683680225053103092151419532456736320524186486865409340840958063461074998068448888728294094330108454263953928374629934692846757149942928345861135336778876980100125614433066563566962953389259427172678307381692821357747675330521303861239251024834028330824431530328366918661826006306506279316062446125412109717986218782714837538553309705256432166572458797789738630064148831555363903717400189652452339634512488776559515117229046659696731314169900690492866693909416591017104547021872432392683287246716164789053369890638558485657246910281070526044375284839869938933741109272009540357770128092382725280033742030956016678656398369996055958940451796423729394545977958497278437410892457585022731335920859247129592848270200983322170427915113595185278939155709152471748331010707228425805262166147493902906594253430053557049604173271401234072251599986669155635532860021594133681766147583132000883018248742906598839115865242080174254595358728949956799401498297226044199076626576877540638339570920142990064071685930865436911763930715097246406913477530532890264563687767602771491048641809557224096842477018149856931455921899519624851901753472965577915404853205343700061251438283738747035340362070761336972625081616547664893924428883161212299467400786628630747365612940536251342084498878965320991475011090779505112722890403239638572082687965947407810533047287732273313060011363991620527889652083445452265765759823776528073274398658576270619064026747139570766773854299646038245546297430883085973292735728788473460378846280190213881522194602697370640066973432111003211603178526673155963188038572489362499160669067288343603549029563707408836480466536105185570605934588142955295810789378661525379489391550894529224914844089236345536655309823421643893801282826951097584188256978650786349075256359090085421649377441596153077576128528166224614242612729620381397743154117851402531655052626995149275475131061848456736025731112067033937052618051105591351375686549946490376210946430688864528693580180235169516033449952150788555538225951516775829212398596380238047345345666809456316385892885123680886942037345216645383893723456999808366653584163354608331844606061900172029917360070761370779144202747599467530328961698887300097875940000515103114925762692402255634584258740241750282339895648292374526749573548329389904670875021743191481593051778569212657726387086360100603735948377849918549746106536276756936232670487112716870831032799401896936363110739400669975560005322666376480885790226726438451465891999931603654519324093369702269400265882088552321655216146537430196331529103185360973190899078446391898862885041627028219319259840404174950162968461469450520010916894993564603287791215904245797559271470000683915170276098402476519997062894769357670060868677065723757957651020623527722415613355041726648672725637203821580316149932591887384443284337626270801185695403329893824361127850619346522987073013901582305857374798255413895062220553785271540732070674688590237002199902485295635383727476304591201244108940184328684106909264077058388951241640116545967058611240427157404187985843750808560127415510731655762386272649778371848450543651869680135937878742746187468589912601270665879202223362208603335443320611996125806007461174948616377379435640418550708673784978847569337490566190718957109887512281141210743425877268824506716213808418834984537738310918323864597819124099376409855349631035799459369527086115671259078462606572461116009627603271462758126830825649829440928225233143638909469393667472652896882552130209011029646568624897912261104027758960556047635247510467618236766970523095596639240553143659060815739042533513623582603686934607575634235551815204591351964416004859691289145237824951620445629702575732028905377574421206549766037863367295027442178662256782402282033284898939883636098640428460557571794803682740365693033728157780910635754532171562255950904238875573908536234525370706139223917512956691464248842888647152662976758156748134506489269329744023759870382866704596612982862110396541318910610969069618241709045906489298477053391885284636601065135884636130403835348958796439112744799201715565962953327092282886381744314014129762548688157991537775360518264194647124883934369515628181293279835725850734988166225719991021177545299329360291863746058501780935691335640847201452113689235452865704481404859367781770486982808993285319256733035289472282125760132298469140872891637139594872123285537404456079034898812756569775488576282098983048139375621835990136855574015148961056257997050599267550452295080789262634408545281405939850005868176196001668797132392657500397337856078540585816720020829979454780790152567458397699797378284142094595734500830246177772872369106358153655116431893280609240516813001088346613316066767156193047757716426737026590809052281287677410432111812614900007583024498650135956536951014701722610103814816913129058506018568985239741731672429831622793759766342342347525586480714769863223823552475949283287307836482802173489994143692920563545395809306249342094945149985167315905771008549245801608012547927817834761866075556327603507255094065837520098924134865735197240873205429890777298861389401375114597929327130852454927980501804298340043934725454838019609095319767863931668595304915822139600288324280803529078429941849045319889353643148323467188206492105185881943678260807581200652306509790209497851065598484050303348009630787069813690570163847696958277899696412027536568142138642041252125448629019611417394050725553162960120693283550613302747869638150282440433486323646682739008063433066184873618792830139073551851570231144761672418997408687787020938446059024316487581904624054319943271027719379220090269072542451731090460602089685320762084192529779020318727005079062412100956494321248661149776593836735252395305812013163377458402388775493330811394747031336485174101770266597151456563877240285664466052895584327015807896000975288854812873104488271279741260968033231783210487815652740667730143045459175377996963027823371469505110073609673866169370049371517398628763281805355745232767067149753666393213297298763794089568144439609811131431734999340158990038588950496221218548431904508325007488713553881889316870855331822930578723237389211190839829335696657684570809043863867971397080144081344965830752366875823699496121069667941024904643416797381456557095348767667048693681668898476521634678690564594706487623461517420616937866044667412820898984973386632039318823955536125503811139852401417022401146832223481011956671577533507463380381525780972647249775017698439177441650497006797049933759799966897142577105466112365028545241039873080011697346141358960240707955254316429984795020911171708218177764159519855639672987973051627777065761637117703976109917031937687624082802704968637983434212710888110957972760793842809741863261807523507835431472701508443215278971400609591936434026720992377148712671691996007371192965703522089392175484321558260738542852584213612567071637851038531232952929314133845154818421868242578826860888954257700653417183620619208324271332085291315031185427983318454261369057015312810438244778178723255152206186886950072010568858393390787512161139041431644132071619122648711152127368975370114358699412396044338180660444332067132628424068326588413122103124573947642142377405653935650242319876999848707032368760021612474388003118053557015430184475663764281835842005169462571393170336580047680526802500747164076062974632325437872140648929468186146348513868271663174415114074288560565954776595805286695980216856386498755564733010527480425394390600341025287766505903366362871329738038302130222062332513870075543376284115195322508539656248224356482532734659565101417537600649812538561590019282852548003157253919116685469003635225866232656026628709937006159109995483281696787421799062566024319450429390093874857082923736144093381865012908848274751841267897815748522706220113856808957517000536593418076196647724471794304348299366992972747165360846823757293195115956951777640832797048723957095634676169910409255559258816274475527777102845828630665871669294488193886005397096715434597424237225891113554166164520287989073886521711945967169096072322160379611836157715259838591594391247676968605853500414674958325057214358696965395607167832070387940466523458575605179184023207833367905170426323309118944209425078819535000235843586510935293872880018182449186543309217535735529516039216875330075884023895861178012361735717512277019267000297360251735939862458264244094897475501465193599809077986953428079583137393500185867481907634138954972933921332186371283791832228211740008129889711095649961685676562521163162486358681238885413079454894310086976952358514794450493842729839503099160260612441531016761023136116741299814264246955290859844553931910290383689661105312547803994583218930718829336126102100599924088837829734813080477105430810410401336044218284936255944931246839119768520604900647348564231235644236865680291886973558136103312437006578352490965956081866771770742673181098766313740716082914682127655483304052324779331727476060316885325024633909819582417425470490094687197680032155665240017592992931730772224727359977043934107884461494096425661366763640235754363378516439921119908111659607549998183429247364274350784289693163395971886129884797983080918641301605581623914523271274752326084316880075636979083331386630409391386910672463181490738937465712820223536442784477023264268401108377537269407831293012407281854961099481802879703756472851506293380586314163693227618674276895269087909851508111780071952931251127976399858150676097160897745032660189947777996556293691424334154205640228310227198513598641541615562324497341036233838961477612910692305003582519079420034441062881791353909048522620033814955818113562141931748680149897268968016950189439514192000453716486472784582240755743698968728852125096819656189901385864798558896348654956194133367293738959339956084417065099769875908410798084739497790327779931328400174601580270668786049263518198723248700840335604559595997668559675811820244292464727584804583591606084397053016015580488410790258383616964648846819660468496666160795644834122186170621785512516026641838292254552859667337280643092811884863287357126635809011055633857897624192331775937588793039838637790898135049091004938143871406123344068266693314455595611286971521872582973440037290009474658298773946979172991514699585597703301820679385912730522570187588899120204348971302020278454712136762457920616534738724827288338373460984146110393504434541581867177684375587886195438668575555322382161646993084940748381728838486019400000681572329954175023992261730910201872657815449542932028046140611037181372591033873485122427196750919841406951212953780162878615779505933601829539209688032162993337076420664368399914600442169188839224395978496524018000036507385561726086580375328925281716286979496627740821786640060960239294518932699392392778828449634537979541955238890160100764213763870172613590630812726787226204049088204243025989045349320677215391607457180234715617235513823771519690478440051627186432818985347276028470370283120919470510254316608362775740411628754570500777423494859282743365665378298855177622095725690624723648007976359418133085323443449348103729664381117989711481012713080146783949117046400006248000013555710940413212237840741740400100735667102555153114461191029856270327251453923448779943822897302298591692226053467724546342037905927555334787570836175370089779356280703621380910704651826051557381174439612293499420114757087329325081189957074979013796095815851745935319293158908523135352953570152712528654824643391331029223615573668131508160691557791634278335914296295287832832724965159269323508535177108315081354369179455155165210688346504123021787252034613254161609107623050035933944725303083722735569057037070565957923921104649363844976817190731090205210588353873461741960014835687833578301344316737182270284683145001780836033712850898510761563437004335267427830134298219691767112420971138920961124763239713323492633629366588816860515283152013377150359698584273725073718754736151867705305897742006155960884159248571086933717616601931971130901241151505728905244565660799239332882711130125638143190243249329170965158879786436923803855372745383723947053734947880147510114513719795672073300470918836179948164261951403113797476113921715427801924391892394416911366149003359736453942216485807681755354566114003423662760716335612591348075875713975283489170415651361608055071143132616147055710125766602250120911016668442574032729550622335626542476421005028496086760938603273305222517745048032608242500131078322702692529323661808537478807638557493371696167566516781877118422245673953095228954272827720388327895149093256371921274308122488509175676063498782885507448366548980840294986449129468848692163367855707084010265482732212335384556941146162379591553481674031171879705374333570040142535075936321751991279138821460345852297148845674413135342173284296678879736003267557134911817202727514768562589265807932086541017770170040134141887763327207947107220224263197752289750943899030617730789110761472557837593419723157381258389904303512056967751690676016877332307786227742726468924741675904939079384897047153395138946099801607305451217642379738357831145890021520886619668809352408981590015382641652162146185863701932499021519319386440157628205026348147340285401944844680433244125268406828241835405705338268770798839301940109693241204125564731924472852719122030360675651558536338937250919115634291200873510103919646439252479295471632511410872207968039968906637115689030950660747165776826629392765007537142944803718755084539915724373783692718529903244693869122281284227364102977842448552102157455073526440992447997838584297383107235026753510406959891889203155209148793451793771549607390979718988217398191853755273669798210705827693001210872453542094211595597347748125742948636639855245562369117609941117439949294094907937071881808750949305922822297190119247095136080764906325423205609910433989088830216705914713231706166540783451367360761777398804197841583039260578024040236485708139238659689307471025376861353821599235813734571266466306120049967096616447995182146359435694715501600529476414634194360176492057101298658062216380525613130170091409206120294655492036647374362163063645308532300041615171429722916623483622424614822227390209611371566236103862170867378777890915467623032502381944939366155583738803463818151150008700682728409044778893685405800359216046635309761154363196352128681243007188766743872355611905581135012344423380920041754949298313451292863564991460653833216138745033954994807579126402837817319649988428780582484324527406822625151402017276464479360117552703317070588751862868605073748532408511622863634222271321148446692788659021835777726900686074107035410649860142748074300586435623457038190825037497608207399235306268239948800745128575374921740668844337586721209579886156547220484479460694096654931482659797526045678175042722699327581483158428834426089114625866777294089265164814360150187684487757512759971937333028867024490923074350235731925589813795875061756206361995752457720444758012023332790820022635842879851292607701125277693280538783068113430352303076830670473993054061272179051737372873433746533502855658000941216342905177709378896451504948780770834118537092911929068055212457243657758436935417670315917442375178863565945163809049614322221676443076862927251448104739247832826650558133876732336910156030581533033396158289313808435285715853189273168689831795014808583430726035295860107446323189570876225525139158435562027109170460661363050022281311075834240040325203985759733324733470886279483604955493059806684519371288916012960819623439031313502785168291468011172945447400254197590264426654546786493403638908387821139890659869210519165516270525335946764987708172869692274909375484297208088481798596036539915729938484816985460050521481912364746002498521677631945975090833108076044815173470537597017664111277621708727472431168416888055775457162177284831366035268253516593499030138665319420351188968568054738956619037526618202402661599819706652798512477260590397781583132748342074910372903829052515485252460440321891365332028123968388265191321257667040607069665193216865964009821031573553048253099027173777476419249708545169812491328252355936293916231412268909599825583998801739999879723933377749337455533131566543335672915987336259389072486734340291855589382506288977024265922081736106231103698134682929012791637480651659815837160072300206800900004244869792859690381495934244455234644074390880806609905896994420143390213098925994979021861384563563804652900740572490287405230364560157121703188446690637310383127210362960104839630031285256256528839337770604523946441186387774790258392866293987917493674580410260322284886416632078968386581210107199186124405813696720912133749514843485172074997766289870776016652482639897730945916098315934010760982521393328403281707886356061970393258343645616061706332150069711757361879164501096532455187633963993248049479109679426473036926809072373348730987879473135819250304152331526685202627122445035556438066057610453337661995404020444199735620429414317120385500041442097732889565029820368884607929877927992562925694684054657989054592806444309788269006645936368451695206598665531414016109113966656345137319391149414749212085926203013102237165711766096228179644554589487049381343791742224683989124324929887772456323915370393460905721137457546505026096549578735713145696362157301638358176578912558366096188836643987619532763331270874337922640510340113158770228476529063865034668788429923030860939806627056066094394630863037656283343342215591342387829337110665824186933179297162636840280105721523383591674175683637888731264804070247112594733547224730998246987946308385433411894649028897649777451903004711268922481013641396253099644352754814683776424751239128888449619776899704763047609012799952630336960177317653904960736783568201086780280199773318171330300295570704005434759555868454152642611826700478690167574074437613821090659904564354181689096565216372145456689701418466194631909713751148486365385206279034122370097744558731439318964396302858952791868207838670574682222681551351637147278754653601003850410761726051276017078948451560896127714290572576260063311494614749284549373423667620787041231307976982501011196426601183261028203000183009181026370933561137487321422611190031360789695394309430790978868736688317734443793294690084373658397544478231990861298056777412978628140141413487875342055391665582753888837720150919656192384871370466158756230692588620766187274362025556867814458718145577463626510496975717282279189361841513028930521629983996095133089235381842930670590485686014405419432326485276376497489826831393230070040174531770352938634412511968001868104284566223546954804747743675657002574280785596744669032310361816594659976733386906331887422104928041276877739458969802405456989892603941323921622863168247948409445165449050130320186928519483868114690059079783251070395806147559168928224217834409293258872057005395363563907654840907447969669639645373198618909959351586695057570183334917334174537977985220747425645722710213993878290628040033509487094802372778074217523718931315829079304051035272005811979929265184264793227150287984801832924507388697462036211990524708463331667888725575931713013805847122923015707626854738201317750176505844756983493965180052543763698670590109582913016405060422490719200678499771667615415684056840737918001716192526075357786836668327494036997366459447337144860263816015603251120562906292284773791659655085930286557076062533657532342454623490285281666202890635563755463757953386022667040803386701355359659044199158095048010232826075244700610182386708413831450954815224953435414238140694672059116820828715187094878108316656477106908515530067039332671724949337135815018378572731157269606348259217449408856458905611520248298807132282616832478244841174359807182367257652361628382461726936629132065715186943694634339871028700534867249955494970760505971996271852926941184381653107961050052477142808335472002015987511693176890388054669939974326164475058163644925399530209107138840604198722400249815340691495023968450732212946160391829876102537468575408864932089360808023372591731423162415147671938456714631329599803922076782196009729094463657896472433356500026814684777029556358857881006457627374293118508697260374315737652207836675463584661741803173398672133739054487806521612001295073325669285491378929713493642994446408181151988544620486892694140236153056450282881008762190988918104781873767504798826739920678456119186523030743644491399718928142147171825360992114003375031528215393537709754152099964127894359065121210714476125595069433883486472836974145202731952092087080481869328132290230206180141232712773109136373702085588683622722014846550123698420669619889792066946357327754655561909611720556966759480148816796009829907804384353534878310050491081096457870878376034160631339097906534340407113652069331407270597281701162838463017255040663572756608217071175636374483735068703571415337296967650601899000696629590917457566053539176588777730203644223380985317780001597264145346114272627025684098335685026373842970407669343592771246926706611598996023468415489567758189430641575344596102012342991087080311043766798392523241427993854475581060032381102620120822323678977031424288503994801297141271624894465319035516552955152225151643228273526578797322587375763460390430880470775266904898500875081175078633415846169014967175858350489270014851498304925067551989220139262544547254855932667381417272920619478051395884579340150717866411498822227743457526422157272304069242106042562258361355271021942183307984810286700847590920797329210912195949959432482556583924474236587546306183864441035955032154408957577133114381639638110140889072018722962964843234060919244605375583281839651874133470769430327075194389645390628577310617315002227770310899002750811033506283231030033336000169168127079454899682470086790065366855499015031443233812427143525320436289272964395799933171096912865380449679884478835019740264646634865709833431841116507368601106639043978679243845591648656419175202105429609489572108728418082631105524832030010737153215786463583834456459186060864600055835690376140298313293657739065995836398438256703881324880060158538583568850506654625151556928527280783128463284243954000442974291751697715032673267705702773379176673937505716869231989349133111256262351577708397247344825392864460983503287597072292256498711743435838248478072110193580206855370345394142807370175673001131674174728787734660091349230127751312377190059816573293789578285777268570044253874380797159965712299788423181056570705102943898242387818522042501722687305390849747049426867716084539421954653578135254316560009601585131227972921432004268735591260235271731930941097332655100865735683321061767623410105126883778910165182109295442064363020464458715370832647349194230195691689395958656179639087010965599941178651917385835849869795739600352918829197579320016586797934646373542079958208894030130263581949067629233830354490577946428510918561859067619342419835582646068988256538730796271122591974975702110958396865865374680985270019567913131960406560821497905373588926918721251722073913277110331750945532699073825204169437351089640779378908528696175275272610184362445175016868818630499181733198010870776537018089043803054243624552239501277660328566885180860560268763177737267350350970480929782965775545683349580861247986039510408034547681858596610898319547213933932143674421358629904529145102564171437232634078264766457551874257758024270289290156750808002968384474525252208305368725381576404837051654424858391608428109048655575042343494589119089585831068310686967190772954059322689377876629385365277380637391822037676429811902262686138246913550815209955347045096052715507270382417205620744472829108939069418790911095943128178416034323763041967917604996567113978881619593151463127375488030534841188779477313615698019816346464035850067581850539137245701283819167595763246953597147591672854384415276979094323262712947749045102455375296471718092776006410018485834136351230831392526988418068606408550024138460250513774189835099269895542357126322098398092465023546646237509189103930329192769489923820049852781842428011524362128633888521887655365653200399343230132636358691211061063144508758576537502726122283605255733509591169023019771487620510511324858726817826860982519036893266390075095134278291152968640781610157045094320893842144567753290060006434979685369534112761810229198310043494027164866270510053337598029644947147422711167178276072027580928425879110930298822536675429746071464634721740299117246191137845800940978802680089929249753353738880959457505220199450176630516559311622105408924038103813275665140446566152492704959453572738048720453029410092496270011105746885393822396721654474985731842232304638875690271503436479203015719672347381521080140150486827100173667306164680288853038020019240279607172187057294446349815666061261719535346553729869854038903807440447375540769774265765421013860570014022181754632880336068272390513344386004501716026765859171556476587154816543938456422041040806606085162744987304062408952311184715748670226758302438361227363693531010667424298336370986637015143634127352461821503054560555803265698797122186763672202550745800094630925022450121941174007794314660605162116229645872525950058737991414391891044394971484177252096474974224373581351184195409578949548841069199183728316936189580427186232623433711571974289118475492508895873204951059276522069591301702680820478649072824777935583909486758131855232739582515179131984635731238780454562705508309343179653541367205383930482506666119995841133746484133711735157022971347775408130857230970221791160972816561010277934929632674944612244663086865296619915024637422640972538468659079719932843835133881806422231498646857860891840238140438787412287185569846192059795102649045357472931489326843178923628060075418772758914856170625311846355929360890054789021515454778634872849274528096489992261922476084099804184584001765347578369835579793122304468078416319159511426985776833494533753631487413111027868606975649420505576974599169189924650463381578959628862322798824760852912726213218513678699879178078904190577539742201429989311812423835178681383031730396700214138508212339250730477269387790231802334916415456539924071434105606986303645786883834931950201320474189052907404395708715706352032717168756596404144274058101620143959103244828337089168038125831840762339273697581406506223510908771642814629643992529272163793812145874312470350767361647476032254001209777955064421850668918882074016187018500903751351682840357040034632272585578225107521662250526359945692902480920924609148553252441358105363815195508448758888386798141895973690242798240471623307965335870482648950234005817072809256986414117798320010970051002909102614201540435729957554185977360193687324589788609927032987056197196052794873301335887310874717077812482865788853266775133907611543608575018240860824957919348919859973324782601332549868865997323377767812700516557826827905757706578357318289856741168671476883309522315149751436085766982896227192531469028126713460987749826337087997438694008868551550450239736010497237843984162581117633006112829182107174442083583282791006741461498571808595618757601716680048717972153698150677317298160177291494332897257479612455325350984858267525526766968890062915938344822839223188274156747027446512640641243407082114435405619487466260465312133846088941361687438999558238021763016370318571661093566935116755731091835154424106207640867146365883461345648655796807095044602261484032255630253409293940691965353817122454618947036258975952279537676403982660821389458580985535746044445423910674216759283293021478159569100876006107676831407333764963558191356774130897315076610633975318087733487755244793854773099171662001658059608249277946812173713996836741533299742051367353492806811828721723359260513916899151765280425097197666195029525964746740931576359281740846045836335677208732919554977160824298704320376270475215883939424124493483817143059229985718176501482465987074323965888694360926309915071323789473837900060964125684676027693833159950645757141152356381185521731849067920090546275710707436270067039457335188100223806132537717283758521966323165898702289604424056186537851803642597706034715916282913487641297491422673970541138784600836568952377985426323590835307859046210729661486656890764669166790883562508877771488593513689816236439425161936802597410097338111629005192341529751808637212559990430130427543439781084322437038994894207618432478205210291134984512949441968155224498425942081893294783878036337305606769066743100833447145005784125122223262014831222636394123273059054686222757411657277770949308703098908415356094468122913374701647497774054672094785275896929281198875224885009012360152459554510749176878442293905425951654457596944017561146048883965594050142006649129368432104921265979775497327672956103168320558899338908289707567668230322719037647669978646911299641076732844172772194304688303241644954545957662855433259612172348707604190975547867449162744290748793236600135983590253185919063452860766496306802091379972444997636396523195191795975725708723909113488633043611376444912970015284698568428612346007739159629304308384896552570015206864207370981374812852591687307836650806504200086879436727655097362436191855595316781439496245363733773072384204625546301502311924893028210483362824416373871272079841032099709347361273747462516264998948069029595300597882216059846595424774759162670848058042947468817121457586527169139690868502001266551342418144297789219568406517263538796606195826518841724319955311355768226938661357052828228084809783799749448182988412426992165336261313690846572891608901691678491225067235531115641020543597861363988619160664742567370738030216316470625325982202438926461925408460976752010579853485085316650700708018862382269156088804387808992034403495083043636933117692274636520464914938021641607953068353588357028114224356917478394019325607713729587148209182736149830005336288432489628686654796304066399264074051583978919175025981964456777138361294106380233306654185315301091956236419695334527799854545460457331192294850647952444216966063291300589095929196747860807652592592217275472047576856724282909511004902500109336315472071381989459182116256482930865150917076656427991769524686060889412177112188125460453468178449028467129839104269442951578145667719904730770432279172516375665413321942095784464432928213936414734216885213442524736302147451807629554396622211169857529523184780766805483300545632516668367163089184571131949250103980721422439149793311797765279222162439633744660309457598445481593313337375216506337893394819167288588599072740578337987053751777148497567132359313625961316289194840330169591166170481276217210075117530514564794593598775521891875807944991642434790520567667022238549237054291579709989397451042142129476954093094892557555046942820013895952201708296825623533767423000940851777015710188247280351846794770114851155625893359440652016551227051116278312884358260465984573480382117342437026729434227367472759252604557045376367118668939795261785033615661280709679448676169631503091897628563319736143766306112606291691661766150944780982628941826538910587538836612827291817240981404284978920163938272968383980734457639501572248686513873814257562628745353900385215491083596823003800318816313006470322455773830803750419017444433679974019471685553212187814409712087507130915251975724644072445649472157825608580535596909322034446203948017359550592239839006961539308907205795220836243581957071911594402899377273591144273419324701776372826816106432747698757843670105231187797607186244536028941391588786178802413427262027523291056448305203611510445115567620660686580817879725093782519849903727973213154402869187597237997828944377777250652862295758431769211626792331586266105462192299214891005725139138446842007921296970356677737156908195239122407898811417789185630085058584546388120897069017524111481641377705549781458153953468866921907081109438640585414891988501098648419902595962328802440085691225594049833129842131199275391620844674162127458837933966346679242861752879362442265981829353130709193656435207373512259902524856353459509649849416707595869359506201899284062818352994579079643515206303945697731216929130949548156354194224992834694485310409260492885745399341006160676103716257181126571977533527890350473830438092745493989865380071047798193314546245160916658931419333415910013145039133158802442434036191481924347566676471438827389440679693003175835516403268687207048012107948917595118139114107129447720691272552696270308929515051392114074513297555657554793308938772683523352237372030394000250189040784455450664746553410029747951749823356598864642411760977749118225952413455059093465943164805582910725928585577266382149712037272849996642196057639553502436391225189541098310300515625827343955441957455949879658773703738241236411919072289441843131958336861382657972669868064918763663863864416928062649723733827205535762081684817821730307670566591096474261986220359044807816010370153914072875125106562282345455145792887651293685503772073252448526543878066187008446351914304669756262769610340500694011993269136736219258488688505657879920651538243745155842931608337709785587225848114176389437347593648303419576758783441243294166508406550456093768653645054578550888408149385117401492383323419701934798435523515814231205704128541382627630281376312046342485481178356145435700734521048884197264313392677930150517245588380083311633465332360702170884131350545293514066394931624071886468241466965601533301387049756128997763508144305619591727009017729827361093418454873218644933421795266686699609091395703027634215755684192755730896959607803837372423646519468341193386073311575829020970709477041521198166702246571689023724820251738644449890810617134430794592051037560604319218586367627078448180535626798317606911641379652807251216927554657260466137692533527746148001744960016863634606389701536264980350442312114082169165223438637090840769296397172881029211967491056814626237220590757165744631873388492946786844006752827565432470183608865235398481758811653482918794403537428497250360746994590009916798561042592808381289432282178113959021605678897986281575304201148413433605043218240026161286877229167328185001116792524317471022500529560431828674374610421065452102780241903834827367152032650889792879540729313800304953678223112515312089903067775370849328576454196335916091491801916175260260463298290601247365342952838900032254331985380083190980542957469056075577188065896470359437785842024005244484174875839207991326525796035684731482498796987344384481307805422482240222570129529969009140402878378500210496207663576422672781160777760847977419523857970158893588275805785851928595540815120259881329225660518048858575190814046465072786708174358481532782528155264838676263653151188704391118020806172707402407800431287577525110863821652418456708963468429350639366691690072496300847712163139244691720722573865480532042391406105788352016893720699450560517323787970946507622284489772329813158831578436883343441811174432500748478531976216949354696122888540858604392297518883264790371221416387139852452860145296924789305995570447076236059539069464299911999729684325177916810255748375519646639467304797225731072266785993804084843188892764982343909069953834896740287864679288505226930363623185434680883740366837404871670054127946158663403828936262606199458449647313161436621817836003013644180759268914541370175926525225445290708152765439370862809744813193055323651058462241302173545929540770949899676563343983386145654676268401923902059398825026723293305186106660136101626077705009414309037706429085100349273418665773823098609434024709642213322903780721026515762014775843138580887037470539163324471318262139223896657210989069668632982176920377368013869856923094639428203488808576144940246490116999246545416279541776711939788527812129744689946132851890824858408887166852477596253031209691981097249324736709130260624201397538103830258589098671985080802939081512414126948050027437308170549108954541244889272400076332952601901100735148659194109176233505749543374113266234686919851697581959266179292577990080770872246561909119594433754421568890078075786905143391227101294644207811259309035325186716498728435182200205461644587293222972842844145645487169169329942382671197812324061927406511589473068975528220685736695516726799294397856567918990806123029820809704440937958314040454125690351600128217069192346061923568377126249243080867014700004988264366900096376313728055781738747337997696824023503404741620433723830747605583741658595246612272654511998428278770112859654522636151151327091452217442802916291166651716800312322158505483105492932399511252544696319335216729339498686992816256398878253515265106095769058025274256917172785819647466505639700686202358747801508314622470199903983996942560860806252945706272334767195478578652544463542540084525855740918647897365263985562328455396915050487725339195947181432967194368155457918289103638150487171356914850928226893169427201453807978245598254440786478954015646653451418086365543796442928860521955321732513232173259809875711197340729677673518190067901843976476698291933782582067349548571356954021469640353619371496519931902007064614101385283862401664555551348280381120072011875298979970968914103381388948485836328729492659602182622364350908206314992029158007920295355809440157432346857709367433452278799043630484596661293376207132953479201190326798587419399578105349765350606888611344262197832302871178869366284525286749544401950240755342551463665446389354332984602273173765107450218992893708978028422416717133928438200735632300376476622856936287137664156263349954259333001749951998130916597179258530699279733390045755654785090138573140883388534802206231942246805404367516022051836230874766057616106957639548826040852618428389982729832146819054881175179399869339802872833816517945765425231926141394726284011530368912364522087719846650035374591260557620788430415340324675880471209889733795651490360523047924775606438581194112126905262116092640114102225269211192146208620968323730530948718772529080759855626795812917825244554380800730550774328971093256183127250052287414394779798987641825316778779930825366040007885348190334332474343967610560416069635952635438354679654748453296711799370337467108825097875027072483168617873230590642723611447632964035394892409114171936857027267902001773749411350304866136525087537965692859919294181045126184116426498079029169388021132827103200822628260494420127849514654318964096142276994076795363728150824573317111535039775743661063840992376808917890172758842294515705254236917307045977441329026314707436310628947254062032470974248945935568084366605523603972204672536557623648163573409665376119963587183235041207768935288891120655146976052730751145846987143519438727012865440299644250238519428612849456527658478583699429471790156820151939557926359112317715518565191616504616024604050817360392822865517453599004291462773146601344713314112247913534144219980480220830572784678434902316106166288958111964226876226007218543232501243290676027170901884705824938652012394314508402745131216187054464931462648071595740831749123910717481431164072747076842945747708570936897599326323068998944829176533033845920060051047251313708569431199633970477154408824847937168122605852576982428312639991238216268315439120638010015347298419484636165257099304946168464127704932755255005570608324637545533611094251159199779229731778781207450877041262944548468850075657729902559443393374907286466914720284145120236237237594527431571028770537829009928771613122841326081434829530359580787760094933552678295112915298190105134010015056679678066258935638440051923660125002795372150863983215737553735805904662209494807547323711408547818802766644710841949907792740314346794968606631240904210938711663860462716869968482757694758189003971929129334626415474007923559465699234812437353971604168838907581596413686676677170754159761108574821337752738491680608265669800380913497056354607667227396666203093017253867214984401744687222346889549212858065919261971700471681203883787014564110186280626382300706114137325183202682618728428893808592621951052948683321856514660458476085624735654207577059157559649015584777392481023722389160035454286213539517978337546587780690192912280927382705752463666761457334621213540345000150747002746524593350240789133964036931248248465916343282547831506456305933554812959329046030474499729388724660535515199741399525157366979363142361625694650353441645841156773709086479730688345519370122902319940891353140461969593095350246003159178266385405264154293412974778634639023743930580436565127570700407260886966509823243550306000059002563654610592214778982917444294185259850230875058109477153822770139111143605511923534923796919516460120492075214379846783434581960062832042342155254028427869868282752270715333686645339686824126318485072980414306404890004377360077227347291579543692958412213985718595882844919787942596826228802948222634219501154899581055999283054411936078814217829752856449992272077997570245674369399211924493812151652997720685644622770757083612186304229470511099679290897147856558115357214298122639941066371048689476543093255726784676829470186850210575230790310934512836038035882744272763868749049566213645038743259545005620425138417486123165301429838265071420231464013259042270565837311716262178963554607071183725544041855235687060696721895682849079418516824354956136019105512414783098160151822517012885016077355132197177415309979999100865340140478687836565313291513739764719231310317151353874535567798636978573348177361139292817566088855238323116773774854643457052519847382376906266770293617411080268603215241931953996206435086070092477971651799064293125009417750081908331033311893316904302153930687207671193327526262538550453600104592931876061025890451346566207738968119264263288997081953222009544845094798874499514604194037792985348558973687591352697866316079266152059202089955346633653976864072123428285310620021101496174493658956705553600850432146095080669636035188682768669466952035546796766747810935303784584944449939002001346471482649344218497865237197464736991070466352640068798634347599426056863324471077567626802660581029748410297130948408536067693141985303416623051832297440971776436653473816941181642499439295373420390534594706905173873367943578587364580373025338236228261384045699525531401652241816282340595705575384561302673081184052440082378777497546630979682676033512053241857215354228618366782347689702912622047413118393153823016241748949699501381097349992467793853607876094277102422449161521396353846062491162879559037803740950019786228754977480986249161256487611153484164965085458151563408350200301969566237225304081138019522656186459922145786439063451472152682078241235249284708734740380325469685660856474329389458091988518683946939792577997465548639827459214761472506548551316450640853463549551292118450427836477806663640944262313934786190857132649812296954833227319175751589294971025949411903517957987190096080736619832601997119714747601038041564875905483457084601831131563779922963225611251727164928923417653776399655346437080069688328977849237886748729800295254351509430184375596148511804118334017003322679168155992451941273609321893756114228568811189763944405393771976705835220634872531212940505125116824036999626484937478735125242437994172493285627792954469242221928848093965254367217717402834042066026462295714194206414581717933820818346444976486009496965571084043738960035178740114126588999681609510306135380825868905983497223011774669939316451934541018606270426128055241096084771962812212502406596126011540489482223975773510640699845815211172670045918051080438936496423946054767389447214649020210647015959638543198825452715913323825873667524107036525128420996991046853697379298729729852635252981442784776965604084670099114856749362236482667988067143588146118625201328276691293993718899580207515196564459357482801574627930191418561342166199109163055911777123525029822101544953772357365655976723640519588408541463031274141881818172257947145005882565281845550509303699874482409226933375927099214524848819120818181969664140946627091072960370837867806551065949020061061269995469439918020036556505370314263081138740870343588115693739583017884576969854942617947366125839267368355484573329901638558578688741628221457068614607102116230493152583875425592976955580529012623510631445531843892164045843952543740666371682443634792655860066548834591191920238940162429907529063238913564438064476298088364598712427104029679147127417559154642890084019123631174446036334753021962442669495523397805673371690312488748095999466267847799643031262288743102369826654698266585497223691365104370986585933346704765262239528472228073997133429624495759329051649517930888700660775911108736155466927807562355986396479762741380374940950371996900165295720770095483329126701995440165052264469831394071965179212346879642805002870273600310758493470387043649890584718747015703439746160354624130390106012617546053902642816692100224744571146272581651482032760954273615881379151026454851258401100031993272566402114672582322018642176594827019101587319376854300651118154392651864184328616301522562355219534914277342417722714617146431300171153208507742149376638558283854423837126741381328238539665283410003903501056985146133815660331216128578730097501874749243742300123594612875406413378705397521662306101116967238320734553794340735509177839142052204720291091913176784222609095409270878506348707941024035781963969070763784270870684121267774358006976253000494865248465517052102143106159867336585324826966680851050298476108362153989652056187307114102549792799085021689360702293566755035476675892244357956926040378544908511145311678216192622323868993594740851962346083349877519227822043674593241068188504914140565921202703930996331575067363365075587763477226266008372951770942828373149125109470131889731631227871658894765618469191215035989783402310442778792368753126422960257969571321552465178497481574847523195749200980312830780622747079387320069693443592269183071304306008571750271197589526061856430297089203893873572531068994976201116580690101636017153688006147495680555048812284561945804413561780932849594252869995045941475981099379519001029215690642232956106250426633526075825685225987212942758671684109119280952699904556815307612881576840371108077910360663848728008516594346115483706830219152736456208456909001463650494971370694264755120933650221550524412433036169932800198874572629905291271306201525501786532835229676773282917242124438099336078764010267250189394393282578274077729373324936692337051726582023166435525976176611722413543596816843758126064163509434349409103888990781050498912152453393778926916664155972282814721270989852162846670971226727896857941908763876023068335378379680860359378690894185155190883340653663351642935798200297018343522244902154687815734594220773779298958787766443055703038413431348091752092732219455482059432016165206331587978835391842018129492409872019068034852017602270805440142012641917051919605210194533757571467819875963164496084342285520439843039506187611483013099569614176108340892166017065748430446854485760756010910553120266168007887460262498716188171713401753115782289055876353843950646542830013723256627127364759885142318416244770813858931014243874673117326877121595127575827361550451855919236036764506170677605094559790894235577758029625954531971148252838984977006662418218311128109519376109739476696347274443656564100742556982385580769577309564592979822653087248060850957067608024288470066064301731853583751631993877113602428340286448231447066242541392385470198751047290507578217240023903789289314054604555146173860670857752718898912838277892801331069059721028450072127544674094983103268145154945190735446936466732643387590083978868114741850180163600165269020337110284204116275563744530651679736290370174207028544674560329541647217045261337617169749881083983957040753273607407907714157968526340644992897681312874495357705082910609807110251067366145100290280120590806184775638831917813676716716996533920665964759228211921897061195736890860443424206651454676764699105076377538364585415533911672220415325695320751192831644532243900755897414588034441539839329552376594699009932806137196506049831150378033081592924704762219017949078474290530082580479045936287333373035505389482246222867615918389312325877851067432025163189440086045790279801378402596380516824680120465454715803446562004952624449604440095516972218625776805666014685415376738381351211811881458532849479580936924106891865973168121433713583653784655549808915789647489495201186186601455126012728191640949996203158701064674095664468268698535576362423709500239079161935131999743335182568122113123656287557328311328972790215368183874847957468802403978600175894357696476645980449049902945175813891493946144864501478210265328522280346072287533399924848570087399050031751085018797828541352505641773051344143131670896897098314037847956627527781677689526747586912563675011315685838273034075560870756216256363795941173796367607759123985817511369677848314461400384396314227766523153805815421135147867634388723402543660869773677118114196515553196162643503223060038182459817205522540241819069093791005579291851059315838006574174237833609011163782327381633865438317641073949693815935102627071701065552877624426047667765359234238581347757165502771177483876584787027239082177139848644351798696753235919469947505548835404979421719987760528733394256006968110713085977356922804581189534683624088057749336790443332984078988754997155306650089705403055812833701794226761816647265722493395041685958947071638257436193668119618163360258162382278691341081297275805152985235218940247578722500357665124614989881399134697391691270352641256027512272631329705474496568835900450694272682601969868128523213034754476287748167449539571864291475476933134605934875836879532106127081082505235716540555743719550813188348956588118619288477942243007612709612534415617843482777599569269632350749878186606331212510423965827622165291082649174898675788343106960864598530748606656883294345026181240363318764199459785195624187826234693703686637394455532959001066739764736539215265387699008500239896052248124138459890715802795642663388359108549571826785093021292867615000724021831644352692924597190783261844768667288441625754062817274744666253034237501059808898256908058801545733232164285994288720561328107407993955647634962468081050878887293911500759554238146587597458905154751719656262210673729023794131546624341524300267708345443722440815586492321555565495010471406384998607646939225515804687226626653300687409677046743639516055003111754211543856795897762079155689293695746596709953493116580931453311850324355981079795824097746748248733271020491895520121588609103808474041213449874696633457053538502068282920899005794582862557829935815211807699415226249996012207549452887830117890648546905919105616612919045210321318961699125089852005865638874102778288436895464887058105607805422104868230870040942796584028185513641555239386985851569200000719726286516606588066780011737046566605179977572577071774405453485512728529834665316935615519616538398373692083460988783087827564732361726369883823363341468181777696505206399024995351034112953585254093911571845815326711033383801085644070506518256861301207504813853053707095488865935341410236002888837768952345511610091994285489834106546703707416810286457371475167246838360350768637031385226563715187679515381563879420088697370481157877790265993520682678049946359487998265420887542992044272933264370942343635836356803263689630271687355929898089771721034017921831104048020120444745050366406887854549822067871857325360052444601626077601625189198265706207882601418029756888420198394163085561316538927571701347284420351712215409377064426102501554039547651717258363131589603578649788691064890355087388325351533552038344707481251170805232489135558863217478789032108204228459253162846298464553146105099789760151285631445182162509389441904547426511939534917366512935286424005897402088228391932578023108000400346512985845159625978489996367155028335470605814140516992758050650368874288120515581377679211520124500958251012914627678251604345488135394039151493650480561504352802310620808486305276740777594341060070584007241150417810183243468970024191135117133785048914068373265736337244599531955273786496391259093634457748515909226890929314395586526187707915397853022083246111114646570900955556444037223851692738210997830694828902790928088750505213552242964755371706184756155055853038717377436266773174576650276081315389060741161280879050190125457499152237567534835763270206953599115112130137627360222188745870901557376234989483619147696056380425578618750728628796467352231531522839276824679554068410756997349421511530904726799223330385301729428565530143672890995608287516273284019601714508812442662986406212674034725726374014185944889775930456075781050870067134195502777356673887576930661391068610576192115381483618853328036565589814849826578986576848370795601099317020232684727025459484635243010441027652099402144728490318011732786200675461676827390513563325941908564344130024340703289436707370031495461919418276015343023703355764585703677067022277498425677830939960322533542949175387975856928667947366745010578728589484694801639622416330304790567494876918057085020316081789585795355134152387933300778423241008688666202687533538708883215374831363297890329486760728631412600397422014710116012695861331112258304922471679031716342223812524752078422091505593462540392710544825773246466812472444788045685951748800639688836707680280005702559342270295698301490001274578799622997229656944217395063957698758258407838915716063474741933872516544411118038776433710394399306773991125114477762169020422803339323537364208388153362911320214796171239559161018052294960092696844389337079896031777083227108332343659121227412154224702295726084523548366719646002544290877756062278930993961842099795209854918698754703167906514491853962602672973732422283198026635423565986487417004295104931077553927180492374241489938106676550498761067634560129520856544872757529214433887617959203682928154581723435891723035661549366799353705938420522913388747887064222944978273786812104172902541182753594699471551148689509499940112098656731664194166226192816401682058000093678694319210413054936555044950677219581228195759139736490690554294552953843477967982388085319418048847334241823801457972110036249428126016114605583613289595858824624129970430531720900235605051940045028016080483808988950428348208081056173788556779372296455079804603074543326058112154982124063105265430493267647456652153132452429340108060501937344851994498379211676483104546179848941540803611530793205560077662944833519157686697451240636879112060160454373209214718548300792885365435360334271493007868395040548958090563337882824056198629274729016200910776061342861248413091197412566995579452710464647400970016474937053210300071457409944435712136548953960005178069345276547621807386895006266635600358467069064881489728854382241310554527384466657218738384422358552919368611823354070545175366344745443755009291176155631021038758268236127047548755306864069377940186556702460100049248740022366086325898498445318776731170312314861683434691909597463221563056513284455714144074674645148669215925190554826910898419750937058626093236245848305760572077173211742032426812147295197289086861681843331045118417772562155957702526419564971896653057757637022567414181806567122456394326172344722536427057934688407706640734268391125822646473803599522389267267950223317361406436429582613875548808199126056287475895859865104657539842689539450149853660147934598386470061430840389404550833805570391715275233317662428552183204773490219895593871912887143205522344297241814386933570517031270089389705552467351481596825926435025792013701738510867119135980308457584938880909876346374445746054833614086416359774487909540180334201302699336603545963475109977726831220831128098095082958681453151271439424395946553800380300157661476797538001009242773733849485987051178945991519334772383552993296609014385302253813651969893399640224853577033339156133570460951245946228293489946131892964968646827889898421455561945624542655469188228964939313432725709109138506898001788611972371453814130033561698807929082694728276334513993152847826024632552034909484083107849356498973229055958107560641415253657304606020399899627749743964489935754492846961592593264105721358287864457964224664101602447186197258567587975332254934785159899110613523223041388387811418289651267689917156297556119898245934825362492880003296387309524743004527104041515098984189431720129924857952609478698962560162901970914189691093718708684098150426681580190016310648593044341857917612596172711447870986177349395303465437117297629536574141797862015075117990015139600437867143064064344234538398060413721616417306545760067149832112664070338567837264965962457868979735841286382208881005629946321686817759970632641349050875921602425889171293909311088451444966955969683592573776381898439512228596723774517433761775701017473936056164212027297069313231230650425528734605866810173960937811720760789753754514678491382529495760143048854246879922068967745336646437808847004449881054279422974484786871874228226126316617039384951903083923445806614701521040375919490484076951230660877276345090160852425051967394466319546631326611837683992429414974569365585891227654852107401027484050661703744141524324025092730568904026258437205834651094294389667782192287131211517215870254180634524806998209797866697242889189194372183499639734508227828662416153597991894177742739414348440792085827970847309850760100777893481826832998054711364665595102429707992688266390939420193280974327381782922629887211749053479195935304577984458710010566874193472033658838243517918842897146718248922118679978370297631123075143564581798420849840529393944742108909041306108562571064247212025691946553841256974793162427707440206786489678787626338634590006049691368606144938961616692279298388494716914792638898846390381356400036611058874222042416821788897583965449946465664430888822220023071088366920087822937308411103176515478839504834978234259918161579637344876612238308081572568995554518162438324419952945064303065389689138645978654703606024275904338118126728766193463139241312713023753744454327833840601243857507833020625660473338123009321257951990920542129637327015892938344966846686613023270052098642657512034350875698389179328583783974855567270357848849474436278630780803814670726898607704404366213446193277589146352650322886788825211428981375036974040737661001112572221162770145102088440997870893176395032159609332401267816290266131710056819148935567787832194632424690713162365674904723109304131384669784169907392881060940878071620828574683250330123596916903829904874394111736394398175529498881569675629998369649753053108442916896472893385272398706834987172477032267658427721694127153743155878809893883899392841370198641560062998425521529736512101512741585615889519597556996136200578255882983858805329993617475929512736101115703185076563885655153510819067989049979056360926053312694817632692938621050568635039939623621766117219313321090789215681611440929291198952107011465091261428316619368151305929389457111749441879140151854579505618962356549878524515643787689038107853078559430362951654205457332868205945594636451081173325845636585721079883302692255119036720662807493091042506117169977506915882222450095758049715566316434549881150199265790215688341758478056641355070659901403755839546520393481238364516875390779368075625989074497878760050356216182763859201477712834979039545820074187167399434923758996745489050266135009354409955950702769549960669221116181017760896509753372781815581159650752307185172001038271863275067741536508743802170491162758552998331131750787177075255557119166328691199776461699734084684375599722640616444907047675879523445034539299587550840166792996467164161342404865008409929103117338736185590222466097204617774791186091168895755440664090095501978957724387095450033729939990639974407736533682338070644511360008335439007093402036734214278501082174729439779914487740963509203086885763544962323583453344867349900540920944087721039661157143144443714196706722162817431314761279895391348149915134777637272763476689239510028183168250919444781030284779894280378498499239223771493206275880705066760052060137296291489786038198499342127159765327978522249697882973823080642720678283284773723172887636033576205264025351647655443897384569938066419952822679821794698485698501915528099850934804830516498811243031978330768821883190366112435844367400256356930671061370117677980414180598055212484597305088372164470425578211215018326530913926570938925451586135779505651922038964498892528249911787037660314248902775169642128484457441698437943937826634833268369180391438617572907685888765630907581200580505099408309173112713873536097938100205592671873950418018240020110732075090586447064278387461141204710035900264363007860481621317397417102752679162988134822687957424779429302401052148250516239187502655879933798519981652817924987255195406280829516715629055578109423542946937411068718618438556161926801949648135357341611037691143920009565361634978994273512663217989625238043717993749164939470841203919410956145581202737643622972472584753772161335576279597208486701928594753448252389494567765745479192972145431600841023270899865003372559204001362973486729078818496189825005227305043888143833795414499159288964415578355107741965977942216668775610839279937089454659342545507308936919865406050932925694074458763890311524689529965799731054476383310882593411138324959152124920007703178285225042915533214271151979796700789489382953934367932917185135113826219443625231739937067603599688504121311510637892968380632528375675753852001197219888726515033433596615434935941802623925644885061456682434129080683493578269805991699197378855169754091213455754204026989421293399786514425349977696932492078271703198053683130140739031903650979442219231731970990285124489204224063745647516935313490414268451243766945717196698395592103485932370735178048668707349103826921007944325690839282361208672107264004638433566379118299572123978702647444905166978069471294204634020436864751381187814185448062573067418814862434889140632418448840072761049565958939537586867341510734617770495819753130255922027726870162071288650136775544539708634894695744808048170773635218946144845128650162544687588572031478887095706022317062386469241243452040727737216871219496557973012739960752659026802139342754113230054415610295149362338815085499218751458233009194559087714466737224657675416523218990458637086302097701834647441360405945080345038357453387429105864307862933467637898792735734433965610495352947784002595239907667784422814382786373315463672868998640994956272505560169636754530345434762839829268531937464641530602276030264524300438710948756858629424459295370126216259389781401761284536010044603485766452422262687250044712498495498348250264421116403042146261567612990088936327520405886913351957420210491553485070355254125079629903610355140258418645347875564746953429151934236387590762060413928183410991449987154104602785016877048495869692381569179510263664529513266214444891833945427676981544073356038142371084022987849964967999551835096619266792131081943584770733395985675608606356565034042389644413551201215136285347757276215971017543600006504168487791798920807570601447166105527516801447957567721754006951621982794335608960819097827914319138694304683723270276631677107020755297077066287118027077705239299966618424220867477777433904492724008552078830341346353852544557336332987630132007724681387028228486406641078265993891662463382228962299679389090184362117926632076884648096238415188370647514724687187066884619999952546248635483883639449622988173850276694155249727962222107353106279418207272338002985499923062043668805412357528311168694098775566620337585937310749696547970712461263148267295483832597214687112672974820154966236909930858536300812275249259247450400051450836158662208817873251418124820155136878807665297329864168005782153303274660463157470567986924661715076507342174737678014800563202547170645642222868885770861678137797244883688469390587164143355297359818078159103581739452547857268471667453690566822061608430578526428400645255937044322554725629115585117701231010844609689138911654565196261987798277881816326378640223127401268659896710546761772423632542744433378635875388487285387329429821308392578098255820798719125538979270878130743478835886838555027398434269075637592192745420974045977965355882438295456341585624807044363926279522460129000062788628177474676995017548804502923752436494656082655348882468970166203108317474030273432742054260168327290558528196263809948684712660013400487620843845249038551740263175877773108164825322338416546064259611050730174618029465259611153140559796381568072900778611210638926948866225535975313511367074611833311128182769696214227607115810047890678464310410834804913614022770514734196870360177629443298481814561379490448837941367790152701145043756964655889726085322096465205270692336214422958036604204068202186426745308951493347939382534297853228342385961243758493069669361478642190407964070283200918873096873836690272385304480546884704120437194100564674175126509685284725942946021726181748274262874583578930476778353646790456625285916455053086294506401517390727843374920368512902492585170997338623582218349615331163145822438919490222955557858123470320645448787144306477160861679684566783273202537618120721858679663029537762050145704944340611232110255412631978143931522006373958657836861230847215044034720431586172330124013539686404784570586233898641542255308078703968434867628552416587349034027576445462025105114045559756437440786053363978719491467728054821156282866918448211816682994080294165376797514279193010486041023269662782363383969581681183407869741005374220540733558037541543444555884032650237076714258799281761649988502296749070927709205206373231466975473343571185122221192278699299585470967428103150430178609203037745755741576924762133017331250326552327059840811370860342982725231469877373742236222767815583147759711091694574847551137881078982552984680861342240940798629981170358208722097295064583432488160704271695829493739202285581207436576014582152330418934252710482014523661289468408209029457610957484933021616048839533153128802942964096342249874300944324704223178779573552936818474240951739445732864198925010727875355773892719343031545429420830529815004751714340786132700234109044239626869242211924218152751332614533682633740638453693888071725130986290879248376093083949768235837486247195213458811789421153660142971583410834699783951194949483849198843722230987502544816807985722118324366493175895762694626366802789931812125260490256800031192352703885378016615183497532865025532494248858253268616948843229291528363252248242089532491495301518296848941288659934061860762722775333316226963598001517395888610656816377769495396401262081958582107056392552372288821968172035403749659082653258577324845398829543408147093524705405270365281804321238734640862242907494250204948874615916339781584461879290224794470062727055457294696379060447949905682252785075536637098231437961983078497213489507313238901448552303720168579360954879737170395274721127356915208208376445003762473730677205963720643994916718136248363482536419467894603567513514867306389836590710702977902353365280873910330208473086556222266709600578877339461345952143241113687050880285359805223949048260105462449241138762468839358993814612375831909028561196985939977729003836882923843974327627807809842853538209190659701350556878571072602397768103746957349275390987666128918399806098184781497196066480524385148210896382990207478684127305836936997823232898954243311614360768612176677688637686397505781413867666921885531363540669340324340175633006833904211011626605924091454177826337796846728348307527629050853633393475765391481409896738919736158684826190986426411588900346486999544124235771578393021180868885570531874466220698170235519260150200833591124924773572101934381695933249253988784731997834255904484498952029294296372485891023159638920883069353055103261496180958141124892573685695960593390537984689764389593547714064601779869250655569548316936905345902107172024816075706201047293925934335999760643923987896060607011176169482711975258273799550608369800028827615569612879261599536988575659897504299573722893301676880633592486359304155599748045768125256373532923823164048306861859147055591861784084231420249621666860681984833293898911309934130567829399253616041592017593200549410680628180865370362117318872174385601801303738019201655103414611696246918729992125605183204403205160755428591239368515845082802758345025487626766743290974901809351103589921561919830279198458815678790170809213410587461617715913531192174305757579878178291311088450391900941214214003827088192121142919510069342207313946887339591269825288067538458775842661027548804382781170040631882775534959334895124946586879742222557505268746288477472420109975204787039283843888438469409022275469097613190050887151904943242332121509531384407005356186349614766746983249819494015410294377351633481589724211561445357098141514939254711091700241273159377751361027689643895864511980499804470800659770542543252396480323434750916276917510840452996516297279332051334085254412690845274529767723866064948556900588850592298630775669603790342060622041362814856870926267318824954734806974548901626964127583894337813746575429471254717340017823874180520104906435984540352143108681759447134286890574237947888024831668186900629625670973474330799028970145770428150104772491336288604900202065884978755558135297415932794108608890113338391798242641708719372027771049553806693508234624984802955527348792394177719262942344612792390639557135238899139062132930674391486102356029325471292036691978415496256494329126226022401500127678592051010514099311806104800586162349115228824675255991851802287799031515487697247489541620294370507045107938332153274274380563745539319961932820966452343836944835792454242921534125577949536589936353419245653082821017494734859819136633620317425013034491142303863488853165643221378961081557281205923675953329189166124095337593318835481628023838899393123310088801352522389191991548514481711358500782054838507957633407601173627839179820721240339908309589987557487380200119119896497831832187834311729032777040008141740806232941725174071247480329479432838051736174846377955120804782493552375562221187578670771683640643606083008189080892830977502636513942532914668677729187090619929676081536026650662695411452526819766214273421858229547837355337357844096770916505532926029484817184141659029163089370558003862313025246968814466065513029006359724225090355182854231669014862688484212988434239715197245669726137871001422133368066154354367723648783065326501336335569008215810000093642880964255666974447977736923492039727007010538107391823514309923713380111562746064740463156082012325067703742409825946885315288386407960780718560681091550873926006352473412966412551880074742663653036439926220746113067490149560261147908506226238847623892132893557658187242296900125022814083262948236039952179716012307694454988783758191227168633446929885085802122967417855960275134592460990547063192253939001617417058310030122351796071950868443271105475074998521564872283884334194640173744197703268896267252141387627514707828127933139141405061311935151046757884511871450278412614688164316531695071288748356292185643142696072309414487792671477883044847470043997390287695905137336878846413009298960016511027387430885326185452715669214889248654140992340906366398665096704427465994683520109241713205969039372867436671777544656204549870227232419495396546528102814164327611802825913518705439970493314861719769485656193739535372183489162593514803697766822987859199652901868560860279076988743575731823839091172534524091813417598481354439472078954213922627062737979418745115267921114682043902189209371615382224648628760099338241119331919931502007346874944007185406055912831814561182528577498979176201526940225674558265839766946661032514006957225887311671386310627478145541260449470459536382356087657124577002539187989033502404893604718659869794727427021056180476731018525096454642651107819819800578639569822316696728149615675811027801003370604384590973108277068845810364758850352457603071471711160493789170430912077912602258388718508732610530481360673388345671695288271597070555271646733982641065148696039357847424407781154813133026003788716803991217263564172795705094435820205219939415853745389578548475082338782503571569774845865872108411143758114518972456054840427705918325056908972651993628232662449162623401443192461695344603102323787435219884276193259631016362866343954854755477215494140129076681051041522059416254916288808991483026666259383558507894892033656906051670113667861299857300846755491167595210096648633012723715440688458979871321666691993414152831771994710659143140078455163966204411921965897101501997706699646543553144112025345032137514973685938924356717484165819468815028436285489872842549720562841909256850092146843845390328664942012648286680086488031731058550972349342053096683978832273053262916666964063822559781183327881684185466681956113404738898261361609375818239108089608161253650470088290158146454043735506700257478970186967822914545916320296415504162926145446093321150097327315077358684666121978135273978061338239840790812027786908726450884734490080122714666256145424041072118778937876914286598756332728530629230540636939067906932804791438139887517830212035792725837823148676834683228626232058727967914408287347888442496697306374683748121716989352195476812865167588968699355752094614621607896300316559574889469998411706103368625955494710957628049585046388269590359743888495126721922382757571198792117846664841766416960213038532589895101561824805296354957802476019538993549343023193468244762966624240363089307178733526027231178022410363558380706545939075459848110787978363656232706729014528087300951447146546938640341014659160732625973633242814477189402199943502212279966563729482523477958235048566403097652866912653357249067538341667817652681680960897710522527488819411254168332125239663798209492129533075144034932143986821875609014747509070847241866444872000741005103675417465599884590441109072236401433578827517739513078092608645049765937713078276770672568542091732496037867702678899586956935309688796021201520832808549976076371500202959468351562761248855939008729449397920161457597810964836715619453626994340080419313927037924802843329689958530715672473192047961402829699646588932311149761219600568861228084769496667835907125195452658760128940966167253857933571939192796328313450759324615183163415391784648381047158572476808807504784185549934897624555164879715584711330090320356260552169222438230937035395047197851744084107005666102045048832307772406057436927457301386426820777147667537827188818597452376226011030065186285612967939469694448895562331785357949173078222315306979629119979911169957424680525520194399801512808321709938220664505059010129505659829868001000670851706974553251818773719116246206852113402612552432557991594868374044350742183377971476592539054549777484754694696729087284610855831653353150621255655710838759347026833157406845777064290509890164039520237744485536262413998716881175066100485117816101108606814983874845638735430822016000889727487951218995602175666286881447680552972228645597355832971304997080576573391218010963445484218244216870895526205151529848417791507687506266704561704908349735459576527896741821650054842500487347036414634318061901242052801673776496171050317547249730356000502472891943147882051302369254245861110860125485869781331716761887489581952375535010300010260344690549656058639113878155403737182243238377920480176671462959763274728570352511457104539258572988274919656013144190552374333928419920676949206291439124671415282431064320088927173068173172113621655530496856944434958959162080444766031033905585379524878832959785388831802446172080709750298751114635171220456567913720894741148817266604840303398401621178371594336446186836385682451415318313539225434449335677325641083178489297363852689059421857482751507193603648541880573572286649866358489345405002774259881440417448481708955582800989257729901262268380248360066832596809533883475182209566864484869134225241868820810340578445594852641853385330222475821097140202708226786975784091591850322933863526133624944904466627396256830829704372373398616672813550022261787462120695221676420503603080096616105552412759291932607006908834852530607126075775489079501316068799776653041415120753008093451004358612070829874576666469657639942287493312655729250997914711323135950056353188903428629287767683363681633004103394363009335981526073787848368758722614884442855332766062779176809393296756695063625360116768756308607036157025139818163192594536049810813985978380400451689349239981510497449819261780158542470203991788386113306930873900046952229591058972261929811379853152282636516048363657658378695497275725556385376382907566368754919087631659323545223543709344167274069558149244630102457309178348029224476929668671502218266486074597022820561292923162433875986119991770172754320060477897055767532379459330359245040136949401024288375167423436158016869485025322320702108255783897250774373319546831315604391634512452768029326360470375755075822620587182091794169284057446298783029063280212731189742438288585242086512794410935691575843658082499330918585709196295327831671317575915457762041404823703932017569405891648003542570820032701558289904087720133687404601786009013733123578390747169349111760833676365223332040869059190316175458416631804536908606503620100081524467269201720530285284499132934515964421145402614195593212348600699453905790929265214198589393026227830962373350808679192473567379248252655986903915082742462793540642422840964974807949098113424621238146979403507702210011573155342305201986861898896182686589401142054685428739092926240818050207519028010297233012204544091808841231975492720954582426864723415689406220083100835190831879631965281169010705449771944457780688646336874070808533324435574138293294746334686815744097819489576235098723080841972288078767711828899630501820469860529495002312912213311190729783993828724138928771068078871608617253929254447444066244662453925701904043653842780197269943034168187840237816479182400544749276075579485558561464790534589236976596041353623269794587631749099284828224325412855447299159843171595154930081144410257554189665637291736560437130700163248712444029266422194337499871104805571354229392987037110449844738628283361988644988504480475935375854598946173356013068742276107975456679011241341946091454242986348332885955290326071583387976913446832286895268597632087639172129842266449816950849360343660351448045136529692121710248522858609475614666095764211892853929804935261827053027681389436796131190532809322718859044812312834514617825943122893881013547006797478744993369284237305393545432063243602833917459861357505976902989337435421393399886569217205353790769770981147134501959349605628223312815094692448989447313582491400962350468609256772716000212782863137770897741591213234791818973257234027156390191759074410405498964372087992962780485928949466346246177075689148970914420050934825569484785627945609270137601475266769767980616920376517656833248404389193230774977217594553122408654410329954855229113187904395283296476138121396717544983835284786034136457673861424940408521318827616075111856697164772011208034656873325735764747262809060663592403883851491062486747103295648079916667855282750539874907249163654645971927076193710513497941504713149726046373718155892452453627454314860447164523460908691247103839246760198213140997604641076319423055110517860028327131122868274963172633969921235096933467913201447999379240475897560479043256489720983259225644563775990559375479069029597892639642315501148262119456458194748997282135781787150208960408881040446741488261705363884906525432857061648197841353916356585514263255109663673407633301943389494694186792624519162648730758963066989218167039913270088126742114564500106320245317793081415349376352574295881141334093924820158165309603212228219319287779463248428988275648684663821722718171276819673256959886645941992270548515864389862798878017492152091194606769030834170675067682574971314076709649266591890068341880625727177993685528717044985847398588926933280708800568807865963453347297087625640868472815648623289283316574499916103686934499784528928719044815260612822699374478534240403149152498562381203338978675866583776189337063956744379348594713194961047179856250658621032683932802574633460309500802271704424154061911827158513044908987358712837607200277140848879440573010237860266167022757407645731242978923824534343392270507624495716708017672336063613749368500811198713764559485337082092794251237036848591842456118123248261311513511881250382059726584330423832903161284387938342795597412065421382711860504205810245254769181548282962589744790480456023603423391919709820856062634175857318875749096748110993535090287008978039625623027288801690518200882341953435576825634784527499063877066633039549113320550454684246406510335372125261617773800321348426539563288369160752736631161596303462451233796018396850204585896778193665819872205211622711178045599675684940819994323370192123769055183244598068461622204825451500699659110363189199502340013247838905619116045037079438526425745010360284817167451361331664253686460524283953000899738165043321407179528242315426272825177052356006635738008373299436000950998296940875605640367560082622502002470812773716210991284406877122959809369928764631113661983352831221806858851212076813415866772086837075016109269774677587806718195080557725055619096164138297025020346322102267773869827775842752825124009210629980898432285217948784072394841577423030899002333179352991260526707198898755558489494667824958887206071338917584415725077880980363118912310923491606737570011372597682255141829935711084827022325284820247931259769866080343582307933974239180931120410980984960995270207226100541598065430979954015444506346692273105290200526335961765358333485864159764197644470803833529611753589746351202582307828935795813365165438659049895264849744032316953787936516101905490498973012422475456362729428740010097257500703650785947816732314067009825777373237750931922284408317394264909528617255357070735943009411832310178429434277561632371799691746773242936499327769226809980057414979238819592034276534730406493830029555528570736106583700030277135918269528129662562031749142180639612841655168608941845216990049818195580725516385616886890038891995747348290637391040563511133246638355212987797134285596930738793023344443258007580161506853134889282358436635505717454401654283318312319136045836238192604573868691664809826627952314251155137913780709354233530217488170606774201239212814565970932111183074521133727967258310359783625517934569946685045285111372511649270542026678328577041897702218485744223415562087645096157226612014991284521944294525792046084858286853782121655008458855188339621827361424840884026682482096349264779569426490608623785398802524896408247613433007755157191148758301827263848042070224213334291071874842150383478066279786143393201403479442822823900247472348003764159146157705040616249691832725203971076596146453028421512030704531705682638533373653480998119829047220020704410416430107277263248475433759016145020964414310774450730945162138188873797507478999987437913349293457137657119531952043856969475704865340942418956943794405002530999837904862392782600392540017371361896135463345137130781836901757520224853521376441424394988967735241842551159224411363279092820414891008378852852332195989226906746068065741111010613252019306430217578359768368427726162472508965094292303163217259978497235238912621922698392269618209074619610425463880439506791540037679983837631798061733816466394075253839451907863920507633528205795731162544872964880079674598033976068281678337858972459629075666694331903877862955995094518482195161113220983065032523111007806826396425900687443402222775049557744094842797519304029659325307804096916311373842777732577685335360780380577663452767640493545913310788578399803026034915292646977382537611763364067732562267643039464894936266312797411597186296727983257346610803593783523968130976982860073201069939724211599599997672965732502971172423209739322296150968330490991378412083291156377318978754448093898516545259383342321024423290258376175187593210077876183538327126723434260164609925472316168359226037730813409082260979345358077493322695496630288977682032250122074521712341709332711738140095482365431052731802191176779868116678680729397043638766170551666332596120828597293873304447666805846984347547624812085341105041213194577052803928655820241500350571518907832408529208270412477348610176458640618402122379948908991849620824805090077925506448373314547778076382195014889488756875635855427920892015210838646629805726449115497240416483493762930855194996239741465357288645205119985462365248999077335080168806245868827202751412754900911930398177122745472035488939137971553534851208001786391508836578098956899260814718762525974988174563718267672481518673196963350328365658923863578394150951704553600681966768673433213217756738161522635640003923387076151291082456126412212978762587207698102996538290352252733968381489236409356484672840399448148970041325663703046556650429913268932834857465817077704566809593795074202237513304289931374503468969355602461139702121858075578547234029579068714910700079588924195648973415255820903535016273982178654236004562246007196145684947080790109278614477229108463559174592093322940698311727033383087908994793411213853338431502854807501099624267327379961994993179904824832084049766983857010439448470053189078293390893094635722141595322111385448032642822953144666980588634960272024944069529429611654624426229049054448058602848061476546678776578892685863377851499415907139519875739404822333020840033800679388460992214081214131396881105566415801332374411694582764191868013260657935412630774560442042552848084739718011154041174787158307853216734598261542817030468258641918919017419139024934471642365448394475184473214129626209918329849056684929144972832488824321810612933665717170279692818019290943359176455387523302953664960229497101710688147238943752590353165909580196841285904843713731129834120953511300723462644403413576654945224936741218048684145785999423892818942531339558636644415363119059387092352646228180963870514820454699963677380768678148599427045440963165728886550697099210821372705231252634672604298876028462713697918224744993187090485648481708248026993448039752084957240345539389236065332074928680952467090257134317046513324931772445010053272641508598725426316984003744195697995891427513364279782921769511871615781664645390834203714984353311364994469212972453247882306950077003804568092956506810575305996051490499346459886752706497783400459613259142245899961951993794782011753559083116967774947248955628596727215987486652722839080022200215213687004246794008172280253719626034433698703742434198630903272232919100193645735339510079842001222456093323152681660816444422623402623443523933151647433496386196251541228417387921896352384977018438082879296675291156108932743858657369148632499228497584012338872698471127659329771744115951607806510434808356749380157530094381068090035364509288451030477272325617167109752706958163713253491447976267188629416757912467409617499489814943478389055393100510754546726438037111723612269271628242816775068622572235602400703844417904540219784636847250221815756614951120176151967842483182726885269875411127722164488022453949537850185129844245692107145736114486151401967119046032098664877008045123236269578729608412117293876648848784432804772197272080483931814785816935201524258083663900408760756899471680095567116122151461544197050454074335362255268989844956616212017450744931757026501640566512433332195204467831817826924512889429546055016582636138239381198843918016137225601257189201130425647119704342465229766065401244521815924851965770298130025943254106077157154380447047365176310944637423068289688971075184086574926288723507908537627730927796557855369743850207274384062401642174490048783209966119540432927491649232412786203189137960907445640494659684415350583148747269590394900575404754457596366287167501475657815062753862615164216450714716087655773111613331686008660866447353347566527252128059984811088513633894469750376257211270543816131293097514784404355613021435398116938974263986970430843987747342474341716236916917831938918928893188902998365490417894059865758621532153273755993086289923767010204995090739954242513924386848624080948043727064715351836088662999472608780901570037070942315834779422637772278862770452897161067734065229777880979894487296338236891833030568937134597945614121686085180066087915339069669447235389704598996264575097991936057877048210177658092010043354801305350868228549288701432877201189376995818217165263941294433792012714723959331096616801116801526121700816498408313486687267165420278411847021970297720841824531428218599047780420414859666173077787110621659518584137767492021321234864069828933872682760404817149304473842136857545900926960742110802518885367619768331494116466251816497682245166692455948986924071230420365380065501432394859091266754009391929795431478467589203285284260997592671254229425018832417762136781489470480477814791615638205549019548396013736822318517233146105822118174106021304082934639254516241146336161245087358343183316195040564681544217991487802501353892724855151904638669783615325981672990341959659666249145924140994868624032634627809316355588844168471866271073451815854024531392056602458019871784735786210093043880088541250164084383603371949909756811902610612937378715436264693230516792016554711209808524273014552145886548221296077243473034435222522590177463072970838796192007873348567835961889446786493590103818016636731771415728914672137978006062524330657687450914844159823824349199215316463453502852268257153153987917526211676520682272569327714150574929102420877682248601817372943171675756049609652483512501629973970187491866758730868561363440830491610604728806843818483209238751232915428593911794786117820517074171644967487872296832880464610653184268784260819134349814027392895076124787814551974472646191751949955049798557393801284148598292484777759888920090053355576563404953989826145664388060200609912074976081826265216882726252054294669934774721233868010458293598438764424056623440625638705622999734046777235304703821708714203628028264460192813941420516328457007285110078835594723713958667432081567661784697119412173181095802317495490875333945455026796407269645946110522452607660497555856699451317878218797863373937837712777881855680917540761481687330576983876565304888251282066399691916596943914343667435675254609293263088849047637904400411234632769893814020987580194224447450598443346827945919542606020667371463360387921188670831966630914592896201237593882477827043796885926795176869514287950861771960941039320634253196560833490854031020490151461562052626900402643615098303179024737296188377190056777335536827057839713617523141008741970637320446652097104268702962110175436717672618208538768384526751247416263624866690422642197938404752169306870814567294782342466627723994907366670408318301401810510265781730199801393773011481488807025806286193012719326422227169863760955002989764985051354345815379663136264476028189631679506838525031349835546312679170894257209100143760200122282314107581724809270677598479402374339510007158032398031605521747454282545102607975257354856527534762660395430181896265669520202262181631190507010619888066882597877288450506909925589232003566211337804664472050383739885650059092331186833935780023847035353893909589853032173718505799754673976505902347646395828317832367036005816396381365821672134941723476618637660355105206979692249607335549727879063270816425800073339956472266836188980926249095467014206516088787290727612149673249166721483318530790752228423695227246970738742616002984874920561057619641220722709265379756652451614874423639308722882104883495304628883463045432365240544259843524526539328384266895521925419329737226712561234774975237355202124245545972063172908351922735358372068704959774460486902449106108728957173042235146500603009560507112471254900102554059169433355699341120826675561394032027527949516939755953608759948732370087030223957129249233036744899523068255642306455086699806252420972938804413446675356756247087607598889724071442822348671972853356436523136276852061100614616461700393604025847346544228862249175011863679193279063477700529224902786279264223299692562236899060218877678829400866720807945451759717048836450528333297898383497998976696402081885593963665036355885143427878560551427888189940372375821940831484812635418499539503083018733522784403879558309069803468334895973281898027995342307033080543876308768398190890528469552612274098976098883367885260682209280008903407286426642945225766962657282785230144122478611517232350425698930228108735936960294981610932708737331014162956607300340381509187001459759587119708713547045037387173999443470742046660902196641152724288196504123982023871302235722479318923663364731183481973444094787601779630294058526593077083516319847002857420786735753730587578088845805756299521829350693988730092850952976729017766789937113696979934433949682987257294181074382495590412146964765422813580959394714106022047656289480034126539384971198255740289015707168997111226618589207603812708611836143984428512108502183398430674840213866817262183047325344742136459752809569426321871247935780309834853573488108779062435630002547960297610941847672569501457369045552182945372690831285585157711467123872469409288084554509093553206083603364030090789149246388958301847056441186486783591638949779040019054445470572942484886217902828526790584873780933105867365881872716346462681476964867763844764778138793316587555986615325739525012113885565522915148251739956948711400787917130402506988192149015548905897257472852148539660358714458010370657476762668724954147598652898080433421069259245622200394290505717070254687750252303416476567502365958049453569246516666498571655112802796255058733598700786871367173454243934186555112365029218382320111293471433241391104382974536661429243901071036247526579020907555282469094252720050466562248907743071096892990237483138454987209466035576866202952880009605888237879502280530705564432389460173829277412471520268951873740254460970427559091652654425926632079883094859703680304716159547672274452723532080862201586850040302970382253389327816906981986024026541782569348188549484141273581106994100076999357773878364309918767943379381387053673310353221488691238950035311407559021166337246325235854621475642917151233936538922661936794193512389385880744314943261762445748821375972724566750040540219850629684397648379359474324959959107673541912773127787049944273374513616708979861799888104804821860507095244958596121494899127972485872304564922389858343409457536067115768518054101344016690849985207033639911352753242420759125365324877339883371010564242070907882537544033840381243898854851210054701180759406117750825878402336811699436525589936627801123425637356638976436774605281833360948967182707316357126028632288533897517953559078567074795616927609418109388143509246057441502043232066633618176117917408902566853338689789320557101140784910898033426779814641843388448473151169677853599377607802685691360859629602203890225821590583054441490517798361863435573840041251101110961128161961111313226044008930430778347233516248575755232647876525546193892909386343642504236462114516074016784091661069253236414627513609937811773320794956295404423835034410184051117867865926523214592533637898599963830068547103945003053537465942348373911875198501956943534005124653554570920908695956197785165827654482554461064557324552981321264793101996155026276807073412225562654119766363953468293895551826533370016687626680659362262191720245944096401593810870744278196998664773891841069648484244516866507242200021101056204898922186320434858149229991414082332640518132053495190579644049129043588116956343870241847428338473475106588518405665053990319005018357320188176087705505811642254108807683511272938744067036044102439523975043859810742608032401706883188026023884564991073849448591875625396996538936619724834022388191240069244596111286207313101786048621145254065144594663270166637765222083071863250872463862778128940913483079517230848833521079229545602301353300274769187101896340190521428330747274820184559495645893757789574375936768956676630915017615129689138429758377673704881671182306113840893991342955439440465190110580096312961929803102239918676735722355824286290137991074947170182526618113358148994878679246555671699890152411320482345368260116508677528272293123575077332270696361456629332675507456750325639138594970477741300747110976554311564774058873100945894852983164414008954310138158038962065316481388099432664487593266559231376808401674135125068549329943034215140367494012246371723142557800158777456783933977141095909484312705852144125795462863615630803005576350391484478320671955938646826388213232328498333128003569456002008563532562096339103180111745740319994853575249525964178731554449737032838205596819237077597752732761647200626548275810591040853555095645119588758724386620626674143748989626622905061892085470383321429118774615295513419561936320770057904678866208406817629724114033107518240150042038431904712676429864927300520195118680418209420007120561316717583716877164471290084252351710744868505289197472846467883176654119171168050759385966782910085533081259749489469277226550846937923836923001451590865644365170322257180389749599156761622336839407947612363925773832127590349696018668106752553707099690567617678770965402753560878761938426980070275931869525815341337860962292964887614024852936414070632722066862230560356852367520593470441896240730095126239980177567282230825517132737478626744614520707019148407368687148749774131337694650742270707879399284585508613240144640270162254407401632090303364571089686127702513621923014410276019554081035427909246827930942625087843045909673968229475853678224260987180296082925265012159627056730399680937639770243770366820910237479630198526128218838120424289471813121289970438002239477031344953442967682240113286186438523353347769668760538837519226129232607144383714001305183663500060098387790782139126627566480134176957157029229646291009377732348308202706114676405270384618534753897079802211222475435364080912048360908649956969077660083032002146437134369401804132412291092567236673226508136161988189584648322460266007443513647633778957912622436367673476876198004520164202516017788840660477251693836129817060917957515813265752973498888684337583293170034238231865729832886909590850799670666667261775161644690087095284421444486265979876153467768509876858761898920701226512945563037741664106070324215864350655672487408913923409442923187276817412135130586382747925350139230011694047690596992607597853949983362111516214805823012266790478122055427733584768323354446632146164153742776947691031097961873763339657013169491512882608213723763451147088085539549088889161588949918126629776294450580695051451846990005584890891035382151796471197432344367842583382575471071176124135956808351165482845279758920384785660064561857678965764898723777105143079912502088252969726921985343874038746052395983794400576060212502383634640643945199961341589558107735572200363384793419031129307085502218457739012023502260432802647362377483982629848749664534428345763462220396042951086706561940638757718642771992086207596425204619224925928252725941440899463309497860652495887115522880258560697946691941599922674192981323246204203888988637017418308804107882595544594210998785573258984625966174157504554170010397665935346896122620945106462113129599958283507634076833688994018663136822211762893315074731549102930685661811065097277832431268154577140690855104400214369690426432221315087618101019824905695321485083434056354656349946172868750410010411342309494200940156573399081570052192014748974772170941217850789554821996668299989902152761492332697739745936637775123708330922852901500875136293158681744908591027085081830698140525274862300551784999215240181215290260852057122358799015592493680709729388165216602076759862429260180733252159353283620969267672006793775853606445887746492910623659507569255931478560333505966908536325196673649128826885657678837947601592235974893952496134783685021667234652465167447442414343169433066846648713029757854040667019216774557043463677180540787007699553394923691220433234971017940212079521882669433584693428650661562550402644209722061235917397422303053239640571126400171335024890560230578993882160565305541876154915585853206024884163138101355972524311155927948196891910178459846620085116209414445491746879640001754036053114689837068902343811173903995463038461303436149117991293248083974971520844271071249875244511599254851485327649310158714719132048150922905958068819055482590241426507302513425111194894221619188997251385675806152277270049140597230424734359579772134575836962515827155160109271585143768347243084585702225411859775426027071194584570597737312278279818451493084213215413140137772107614368981538318711790435020474882292780844559422012946238530294109644612728981613095275260300675622589010781174189898831485185689913628343321507048836066580335262323198777352637767653762142626206477126968641736627139756464165557836544893096544273129651575282619921332683561052856964204175860828367185729889867357012753932423305826852003731281902326445194705282307162928869632241408389426369471520208737296507236618140740006517531725867077477010050033235117123128398428659897937898202990413636012412085898780311500230082483370638956577672429429859650366840938973274033338205810925683440095948091442783902145359707860100204015059905547583687789843636475384680388207495617554025151472374297143085033799022121147701953655136985345634255314169767640179855786812696487864465871968362101606569053665266066349865541676276602969249225295508870362318300188856977721822049114775147130391041269150730222615423511568226974678314809815373181214548972922171028343503453252396889742686550768030184999265508775971857487753387530565457812799971565110179135969753288919766765176933998664348617834553842708829773044601198414407404495180618041317872649850235342262029733171269386062132739764386340145396743406379018857725806945248796830312499131956897481413488043059128285226307381434454895147335788843965108363354632913235133750179881773996508044617056632300927764386754259220471428252646578595394575182043241804512862220090809060412285397319740566121004195964305244964911562863153791812880137775175215727341382975802262325884489714878024877973344123815666860362644130302994419009500785211799510145515225265836437401523063173886087646786377790396730325719159291690894621143965630299024617916750422172942898093677000750739279758376549906084653458130545369169270944857657925777009546862296665831475012664027096626358746882992919722942895412757672889846829524012981944073175120039992015506677460541480780250954464767627719992093115135543021876292535208764951911266119810316792857157683752579522526767137438122080473649589314380716344484294850711194253933166143427188027369608664057385034088691558270918566387357207150229804017389075383088404895119799625775814497633945611712035635761345489249373315314647696567638757737980818807224507058518085312224342251625162645152364248187243508797275658833930503063235423891361085602852501066509160007220267395004231359754706397785474388831562708326302808700060521048356431707860787549631290873097684999525180500227599021282198652447244160934207477999093249999662124355120368669542745457117501680666254850989930275649450458200435835674910261632517860718292123015605662474741071395389840147817606189945455307801667989285662527918530973977046910533217834716768671296320931885570465402533228669386411971440568495242785267761252379203113644604619257509894435319659344352542622735097726007874640877074424009971445824151010914072994176832592674554838118835001399098007208598471136857959051490523766588417909329703785696112807031322812506957571183234468935901333783837595984039549911864158805029715057638699292461962981951732932088228920770949825447060656966314346386699188036705311877967001138178289251911176917902129572212112463427060164389232888820077784817920930737050220411270974045627647361827111081409971405014297850441748918268308580576005017043009467299398915522592293687205457790778521690662212512692545064582684440909377805452636655624099333128881059514068736323145979893022140161520395511481096141642643971543174522949881615909241632756007621076027804247123435983410170850708268461981100576951542335325628876826770222147871569759255658412319909636544862066739859033694571860366859586622413322856936749081092487447688524536878503744311840161770423185792001465963085210518978398913808808027030631233321399194174580463374034855963074694353280035928380284821546599381067456706784491167664344048945844959140568715927065457735990854861777098962307844196923359296223241888640333869105492035641000741099006802322125363366344917353778208754081820186188617141758826640923255329806091576405331228991599985066264291418866145232617076081262177684738350364634903243817955162262874950062185270250752577206561067063943720618273513087851320870752588631469454843150743459408809969013330734086221984530780491864488767636149274058328324452463064500515131642857989877876897280917057732393398849845439791424469810756856673600754238875003856468494181516351951134748389857069004344135538888743032155770423708451345595694653978778692005127734103174884308008418695308490046242428415062624147076717129166992264690384008483643851008863455940817671549509821720575712387495969701588611513143717634175759618855438638915138875261236527269658134149185888898801777511054309100042714523753314600580154018301188647441311462809004523270030382751252234263425102914752499052617272555474667618103178304916416601477898081933087750123258728289809082356426314831283840432782214847009133031610511014383316167534408855873692729614431338576665081004972631810318085427207475355545159726918329192333798879917373947098828544317893717714321218441387148300371089882636971699977611371710654876485660792764655308379611337459535684740799453727927180405614631548524798983117120721583129813018918689702911033859551683144543741914361199978330992441139225000997332214123893252689493004283489085862342355601041041353713005539683698782721858860331222799945442484408519173328571240556929281830578146429024311453291138577551743982145980552238773527258158265577842650623127096188785381227259044034024380034227601522169757692001279554097561072929767948054364932772638470137214031016642695104871314174663036886407982151374390632661081567706943646718600408111470254223386427537363545371806078842861093862535834871819412847451593385279245009173322153304857664132915515825975992413715362444011910440203983153527026514535821213545075733552010334831502387438981928802337514110707040914771924013287573811118674642499759623920253082516109538467345156371716165960000572470741871358157695650360063659559314585107091984296300538501740848578845152231835313849349168294711662493510216765484968440660701213421945928997461879936270160747798237331539362369956679769634588734430331042017654164105034758478616724594612952291819147371592558849696818431144743777833811533425023435898120581933801969773828581881626913310975118374128633381030585590638138984801180080379304930816696019414162005463070746187709081281848743216482258170000477234785344844769541500329078641806605250595334727838174278152588023570577820171120288783776575327899830164260075655106184409582078328097047097701893278028719602948047685954063894309135684844353722302766619725691882620408238650185009191974269406485002366932695767161398081155391253294835115029673634832787313252340694349367307277305380460496019205323589248055138930386211751389621198221814181325884753411720475448902768630522319117687189731316495580883353151849238708492194518539222291715308170620373848932534931802557108655193817599100416893413572419177316953193869458640925886314503816377821111161274630155537730964725400333863088356554041116271712608278406629052403257393239809204331769618668612837116665615767880438348872209131496479817276915123044021752638885973319637970087617712052965778202849800978691098692624083406237026168778976012222277367012355093822155553657689157011897401844440302707231784761644264633141618557092221598737013997653317814626381083059533372471627560758689563437153105546222977782021664307423990283881274472875279707303177224644628435175381976653366436997007215062325776218328604688806945678995803840936487309800123084320531025326686572903115815814931357166829157845536092473994435189775565138264181967231622726127753329689473184707398601263303274300913673736876213827546660979368234266143780554438326235535886944748408861265991811894993807529505348110370502577024033976236515152762858209389919810334449398316024806395708143301007077601585038952585869440288832062689102272596995255480420728510219220072632996417117339678438090305978726525444893107485923229212125188302414173297446023607337997682457597384090084529883711217108938222287625040051919932605093329012815305891672186999175093123731878231347454712439997050123364769527797521796514254245021966580292608159652008702072183925878949659366418872637513730681812359408191564992488736172792247084731170175633570854926584367945559898950074246696912402708323853759922508195151365997776071333642767051682384403568089335769497917583645362833429145100472189811117712978545030063810152299901117391789190434897306072738393862944630784316672085129742627659988074951618598263745530259320114237796787480939321584929767598122158930404436560562591645078438514978740952093115959564474718328909412904882772980040853592562239926444684773427278407773903934277776619356092045915530033021664054804242739595256691214133288769309557957716843329431180297767181380599885686410914765618331740243573007938469731022498993823084604948635724179539632329283080743873140596436684609627635979760162170887319395309751350995474132149650147293470833717539335074390328744695835884979857184443434213963213020342569057110707392849109444473785830968093681783748723375435113672911752894427279088720262181158046655502275037210765704158414493194161166645456370748245387955362874672362237440460324443995833645732456643487786693428276861248756015830309508702756586319395210379189139745700971139543244842675894980969054896185159793527713166255815874637640938921091912615211758021066581887689015665862202144867061570665070168304511646482492129480558202997631945024696033805673889528897083346882747237254740101095439949664832646846497978268557979258229581093583893803349839435874199745009629447374292384455298678423560607419218924222876940732490815923072547130709562141270838351292635903203467801707811024984296278235313895529535272945878202998880949465448997278054670323328915918649530460673375782302641433838990443064744890654651913977469941722131374826026238338792508180020990123191746773283702821931495383891770259667581492882271778025496672699764539955215525821082947520140478129532917713401245298282138088634267437203503828467111283589028963969656856881690976880921622426184811526525790325208982115224631055475874001346738246872999267007014376347848110904460338371862035376275786107427516767072833843224183073351808530624382937973335702735315829290482310403627448974467031128008333012593807305607090476819731677468657725480119204748777122817097894932164212830350295863041481689702196265678859102294575634603069747487808316378700574081426688444505758121473560079580358262801640997599695754306369128194105032577216259969830468531539328492297865037229674824208853269258084512159333769947030708061455885531319944680890398910522340393062671425389238510789319016256999707824549025168346075067146003442235392029267526721137074842863520308673017282163821775649685861836203403718205003098549325555350175958521899070338460605805822642789062954049445756362331315002716000089132132100116597871115043232678515763278321698172704126238494620779263634863403441784469923872970221719437970858893648086487678718061940248304662435684667372957155652775036334587975618468428924084426771379029217132604829929457037881321443294702744149156872112793479888180144092457436667211937890488703654906162588271021300661902866728996472242610053299510488528892328209537260057684608163836397310655467288565446783490133756875710971687991488139364898803260848125846395596032375931354101671029805428950505577194537435105373608510475208894359476851296051064877565352027087572353375951096458252299334497861268071723398730481526049329037735385605627259466773935259653383674124429298461491377017560042487973268028512973773901262670868144056148150129179715545738331210291439358836785666261429860199540765779537811770510231795221810932195950416250898451790599750373854218293642378793695773056608690652021822217061181072966757159308476166217462558608380974243130695767850785462755793428897699520393314068436320748494149550151252320978660550401639781742612186139780442137632847113768229116413068028903138423848047751475816811862286848497813214976409028346749625067179705097718191783031350478983813647247192877949340080718448622428109144345999076712941266401741581414020988957822350553537782649607451689143607017409127135067081357975052572919290562051857237418308087560973921936832615606794981024189591511194074585350540768489695141453123251132378253823203922901681439531121626720175154814540580304120552225449582900323941579634009929764086936806340496219222371117307271869752279090644266811979535828260904842034240803627904633868997681906424531004706058511113305353525750956481051534129918976503594075989572899194482700058192257105560252920964312139200408624779067586136049051106402042371467208069004546974245787454764013914419977153308690875713507209407155854613321235624067632967068214007649922346904500317899384980140613053371557815805009313304481833484227189318181573310615169547597786295300918608595363353091382272821888697435007512124033236872614546677614715359765466618602635865746176547936636462924054755269897153578969055999153336219964722821770169176882810538709776911375478527857738244701342764713269083377569721075111160209104621291138492790270765845429287232125531770760899760735564034236877674365220699723206501268369445949359959834836526279638915598163889787089142797910534567614560010114235107762797700662243436956593514056849739075484568634909849090849565393067011687086434822778863666055107807255588260978654935412044270172181975894237252234249216050956082600478946799035418509393088781397957443591262753147079299325137179613855432723189702878668041118449927565107717491084462125247141571753357669587763358648674960405494002405286865302050472903413262429722791641671039728610716807541341984826586357281614148154363304909330204702063873066956339855348059080083108528410499972615633793488255956655367870109460007045116004961109805197734080077060596756948053798978304241393963576468336444518819143317033660641532711915028256610541276392273941811300147899348373348969340165031388246534941339539613447135872775567451640557011395956404741826938280097391125613862834084596807097755595912209705688040475192218072346621589699490941160753265370387907518291794987539990043950284971504525957833606824556810627793359125613387468662188476214164020871324432767703454811924086117896004816954758581183866314928895962453016744352426211561895479698954018621892235155712368044016821736636010407120092316510479282486363629210736131978502615067373656081862326985957484629549542405786696286679716398657522899649967659165091457615036248255488053306721780309990192107196947289403048890328518498256339883842261511018190459177508287050384229228615296614078323393720195561551792786972721927773283593330746035132367349805668854273397083988666180343043175967101976046405074711647482853338843702469572475335562399167222963696621640601137647369319409582413501970304898479284232642042497520807832538558626632195983521888125398373635700800685947992243488080685066666525332980031425534700331255956263038208690926025315148653134021149190275770718760817219596119360137894734250287562668595334998454687749957795466652304871438078434929257894134272501877038858255200483847379217549965282819888913813869454942399936110190793879317580760930097291134343128238863472526422424413360084054312405184494544915593624295331598883345765316989312529732269788583385529813244518562386039398284714713538738196050822206647136433369603141537158319786675429074219150229745330695068209079369185835613552570677268254052048024960966389749452888680501867335688358042255312286765799813694949173888535993762522366219072166205359709726990095039978104686878911047845644404691387932213488001989780110731743521686241341603493637861482156613223423133803380014167552158923798028960460108669964742495004432587101637800710169385175759844483896268417921185199396059612924024858392040205584624578343123889658926026115920209818416838159828987706192138957201693004193931565177229557270550027533245291891561781235493803481088120116715373859594757509847701870053804661408899778890849463582638692648584150626037870780267516296270518514396923165608652272376286917347450587671430097324801233772073834089612551311629424189482558242169893040542155809919644676542779537818203069764469204718901884092752125718232190876034340729337235039076730525678035310174753487716780765152351858707856388193856347155129108184788860009196151549001924417978989311621926256074064511143913960021575079890552559615281832902183674079946880998059671786751740098568343773242535516505443550093212546465214956852417098096017607356639530600333158096207256813393618392329147856972174427904283252206697439395219736991455018592170768776791928673512528651928331963554234567155880693512636938155784115302990531133927015500195057775968169151468973718768614248256214509509405749183920773827756584094014549580757216127360596048693848970939141502726478056861348123837310597516288165033062584861760437326496882422139629451174419006967197646660957485778445037825141471110248996702362516368609217302880016842281350154088480988361589228296485580148698469615074481323364006744843170949422874899461197048781574140596066541543296297294842755116605394967777530571091811097302298484922753207009568641621624956544669688258852463350798666456012753152938184076854942145608568990743348928901502275950036546359147016245824730179300787164408725451334440429667699948772542339270822564809810491295665560871869137974101281038910950616931479981432934188178975816714239014887723570804163085897701877707122537260700888613661293417657274844938017503423007109340833593973304397234442020439348625178973163962891130515939664208565674849101885558283223387193784287039677131296341725006199917279012721128132302061087114502255511499054161544175246605939239901368664381258657079491437591415265438626717282062340047024270618928624490676761062394000028119490466399006773595949768971999606975741410810915679817784148666653356960816880847113946379642684826817250420121603564205273277826063638371708388473149677574051417078293048072408498166502681999808909475654873711097786406842699831274714217174284777214311751302035035677898367796357593516009726866978591555150153971528626289961680388500370753326360063405256599854925484117934421446080328673808551098622602051193877734356092348975803215102584211127680659735450341898815463575187512769496904723977030041051702008978361696828534489833968973080834483897546406395374488330064784829714192364847798227009498125098582918214607998768303567009040950030567621195163820116973085961998820837512864448529944731364207462385419972940224440804315993579467801644464334206615403625794147396665659303539066447338892752930625941040497636834609113540518261211905843049897976269692587155367516309135885502918306460678633676089784477845750403935924377871711095493193319960403529650222509327271812635796137367980444657057884416996316577004759427826946366185687159758235157331989012865648000600920502972488491230517301905948426740249430990723746023106846954299934030394990633609835157135708699282716847698397833670417878084868990334543409290645392818044231674008915161884463368407569481401543402584112172143989024542686045720640181023739888504366256278115356399252346455841504781642214731457904899535146495748022418508525750492015837851856838781892906734261304474683354119053700253717848147974305689309613311217043392751553658819277847539680176391702235200727407688346414545433202284090448020843181814577185001140545851393666164635126395510104725707185789523388438994400177326791450914793538535515963167077527774824903267863497481078523501354604883411986787914482170073378593928499687412532640271029624351779944947221965028415980868619291130067143301302978040548944258645558968238717750245248259671009567117924927184994589268515432291032157001639958307084552008567202783353129627918020186222649387165699834703400791879366091105322981444850641170050522616096379781667574825935286957498664565898330676405507587049248122685227107660351250683663161016320221406435660714326295073752747566368626285636397462857384440157288244114697442329839381668657931824724625861757644240097794086188838955831223250179417272103556440611946831365528590538489493863121046042494011767626920927214563182413796155274510064504685434796551154622071034031737996374993252811904554950950600668693766851426463296224075176058380241150313313347286540519397706682373879526016846023404898605538802986711760397055383681180528955569704912540784354496077349125135390504022498419863289847638133653890252122256267757522479039170844698175213333297186130731051192935836894103098960048994554436709916984849593142491769541781313453670118244683025555038527225491826848063305885115197728115412111844718213225932311069886812374757252474347207625792150444246721826586790840386166951425134218556537612228775228144107848676730256434930824250748253433132198147997157486033471646199165225426175349585844711070499103118923427240920450661342281997423050688573760714505861645563543126179917171584649270971816238666017414543849558010318289485863883623075386351613731026977511257949043735812671766157319255432366265619169301229672440463317654255019802481057278365474331645202377438555488881561564690173284799656662155317955329190522872678163951278003719055197625893485518350540082395925892351802444106156011354304094461529223415882271063532492673787287195811498900935151921066270152906367360669433716654127931359138051752104969281225638604320191858567367769164661912937330706192285772624078322976975261757320809108288563539330281407857598344893414415146542894442960630973872339766245608900023912039320264886881177687357464328072288653725477824035174511825818069033327622860259426612061609418413948844921159280880312219464546096433743997530889895358897973064184706565928945281883436193218391064504561288224571043110458136928581326830678512051388059755155006722252294806165788200076866825999956620398927798055069208827622271540632942718231550734781489230816710750986518401746280944030139115063519555321121389313194676261969649419723990195904520629663574485315988657051339267879037014845712436749602499103002268060179179945716234306510693928978275605771817324141565465747393566576384304599542643453822300019287594919968905755121700345035967338220726834646013211773912558719515001944234333742623971158104946569369989312060295430817045135887717412037011218422186748073245449963776308870069498262549783840280214142092204425476282175698074799377776369960327544462117152367995644236513731514360735780121026464202330691373559311291111031700777281661591195997555725428158561415693630831637401861570254172883447785878264339240899815848898377981465113844045612031776814168557595794954330390499469299292906798425351772319724205836746180753461448797340141099615900779174564575631136943659336679895412475426853870817724318855799619587303351280446015191458459877598195751681970546178195038499808170890936935756274234199791226352507125859294355860693414775638544927994867929523262544839315008259779774028403848595686017979717500057435892226586968524274960077159457632277560390098016327645219775969194218492455910980905346535066568388136801352474477618165155104076980186090002823540673553644063015955551668740254453122893299953746167047503928788791042640806227807062491505278756095649534842085303615143657763075769834400557136052880510979661469654477116309369371261646991299369568365763888259927029646022073309366926733522100347348862142217266344721574759661134196899342193752357369524458017973207807934909853580442860862874332465067837038334188242503674848634234677103201932426747024101773301525150876160087484537035151876153852177796773395032541626039442404795669080996274550935525007950343762037552823679499677705449759646294847664306976933653390725303131266035616905699368026204417916740863185478235660665639608517525566297857647822631045313619492073261208308179204444822037772189883242818017173259280892889555135719216419266819472989271920386361700280956454790921037063214350393248383309389207544630084259365434591011728109835295543940859287886123138823195319993038631450443886213321485262246312305970958085207343205227081102745228977550494045103751933368068734672276904796305680533686462763745065898485694410322856633788129802365542331349597440787147721726455566945148169469850044246982278870450003691557526915354762114131851606953561550991110058625363156183326559888941372838575423020519924884255912976503640747819502151241638638706392509128145436150739133974652225002421017402965822782228243741224810175484586104884259951076620271436224850246917545452655694844411551761172084303022617675983905755179051733307438527658098567388406696844626688854812449387860467476754502394542056316182842831200142289687928272678017458250366936921357911086498578475229472457907915605070285962643253427787917387841863917718726832413031730562568681665230056182865953354853185140869381537625821563790370584178906009446603788349165921878529993266525904030205776086581258794998212368208539683766096374346390051929328734644699145771316057195587045190526511448403786808779102385252446668464579889807735263430807888350418205788937842148937806584984958635020709217518166606845625664288257254846681794183315485177937866631295399557857131512339390528518750969458520179384779521062558941507472942171109507334829191680330419537451282490748037213675471432494013772705640826830905696541051390712871900364290026002698607767418975234619717959556891336696243384061696750948477542701897634805597920767210617104220030860017672332275693677237092570617257601725446253875196327036577279059466104533440947897191499673759445672442912019738373897362144581903490910369692630408319941243528360986129359893593427150166117430795678318554455216750677331212602695145948641886139374938100451131576397692824845393209711526939885631528348039135482780338102957480802843426949197581481458701444502452953991836452652649983647109102101608995001905128304745422876291893187287841154346304675370629219048984241559922669587884667348172570226172362867529778098433254670361954649937376694505001227062058530939666187314649861309670272125866300878836731372809589861469271627965960210858386131590728531143674843871012550434034347760831749958830101910726697513803525459863932787174720473192911589171924079698939794197943382639420101089771049496220604393709768880483269730751410095422427650953889233632156769936013535497082177000471899296365503871870273585147560877627961129770127315392008956581080294985175377195993358435818326373418736585404097823366889657861234463834534505502564312977329872857974838917645680884707758481384751958506021753906575634740869567332450777706330372421575949720007820045696925459227532923995888653402737042582203079648781619551721049508098187620307896642991457418856850800344915516593547141535317997832820700313416428570050700250058262887342741102691594169927062222862736472663563204807514149968022092794594307314243782317967906085239797926091285370966946874712078677277211192835506404073553357899198721452447537729289985461981863502887294918883323040991452971865531365349353108213293424339687960878202135867893490704006233328449652870151138014888265305256504948007104996962364482887120810563862132030060905710040866162514542779180429913986996032233251188370945374399777606619093861741557330486070475249834750011740345616417895540027271825711843619877765456227925637261028433998728926431878808823428285365322926721004999313136456432746147483706801259411948093544774155622595564937591250864694181050411373654989369322016396033599866962361354103665260253511905506755191233510066747731286427458070350780350571784619954764054677519014516222678336842518475301741017877828982615664014472280854314861189511495657271835755130357920781501391572031580547740961040830363952639617592781692871420332425473114007096515153935265272727558696497976184340238214148175240444540111729435833827194159791424721114878082005085941432723691111002768862082443763644391500714546960244249824195840122040945428760079073120565370190021171947270094982747241920262197267553238862977551180342689021008586608343086472624085367654412229425442065334261330299993248363428776722366627566781441820325732796692156767083586479240988733519830739080698091504839372508533387073283409302495855636075277428767078108154803982278423798313820300775611781284309439648979954170473610696281508657155139409777824325511192369367392606249122306131052676390851995096897009932721900869867310365547692151078626639879775253108069545658645117580036776572766655314879321642351434656783244554889838936678667691802189335753801634317962022630216949932791148909570989188196393325941122935051049842344475547791489227307060700893299950920364919118388014024957937403024089424392493659396392658644221703137880976277679153553308388114696155988247491098156670210221931720452131352257203627635404212257942516274561250510722030727608376271938307216923903232981688802865865468592635406965519481376942582322777597950101713613489699486234545102444826536935751210137065076173828970549800207317993257236099782962210155356543731500149024080555496950625442152915340324256835391484257999775632260658211008774039511440009031194978699987439251478419940681505371616622819294341436427664646944649776589618267430215342306892436856690662599933136323263903112841027234866768344014040322216647351569133847660151526046062645134893658305450868138580284151785216506020253557712016697390071749365944261379268554565564419501295419264368002988255246899107930600083254370412431679090389461549033892860607101399337064922976068108744492306489002137491603829034595059539383754189494289526756956256849557606862221082786668099392483307129614158905049182777264761518703078416022425028246431185639265849760057858283386845100581557839333353120379256835041131481840626760983055968881812660789566620506815935556002175399510039546103263049288748197723261774112510958984735932792255755495217525197354731352151116656288305054395723885879146083678175532220827618701051731334710228406310895525546284743992120257518262521719216002254731641608524790648051115561077692759307333855939359887373992293334578687993796155516118113097054778508385462830068557410005328420545554884844421011010893735508795014739645200379148152824727234843386039081996298413092492663898065543264557066913755137485538673562983601601878897739049236813296093813135046922920537256639287726153331988838133836596773465532622104621904146692452254611224872036445393752585163247297505766875794724995381959315703645402602550538642768123118612142500246630358344694347685756386426874183180741562872964121241080892738091714522566981258259350615138123712746618559704565021695056102401241743167642872707889795467061663377033299681815434531067286126984814277241685753786809480296346010558100384649717255576046241813134597725797695061540024357420715449464370819156971958562334954919794257087840290944032510990629266440949255703477263789749521718477429704732171707372155156947548899584992904081485259072403412529981234091722828776407619632840246472717711427914380506814867631384203999774267197371624519380566365014649718793536522123271940917356257172425667297814570534491546779636955825258626932309202495197145302413649879402795945261978035640301489989566705142001547130595875239717061088562293391087247761940614129723799852875237155982395802135320722921352033629692405914818785608841886122578074585552778888388913493912063313315649562058504093538954717041766480049231476425685094032011402433005499580815560110821483530238609234635741211886254882649613304550808759321326898329901894437837919418737332470416419980126546716399569361136330331263129240354638717963425087771282989452462841746417739366679988220570728318598836270003148038669176285865615039968459969570583106583518087250104286164733011390172403036112694165758700710363352591533563260150248971144413641099107517688359911464905456670421441237503687122315788492771075549626298140927894706317332127277686949140360646262276657946768515622102160675559248171136955658084233635928252720018006323808346740036519795518770608422142934596133399813353251782776602436650321704360351278580179113519493698921434961367355948893448583583866955579081018832852009535254781338466174493942084776108980904629883289920855974239004995844365471507667010291378694593473423008647168805899478303139720166752650707645549628357089389463083729387348011841258358191272878193874137948900162630941976770191734145447768666439045432690221138704611910618417630078391127826051348630390118669238805926316593272935222248724531267489527077884403368558829738139327042312911411153591164988918954187701537325427579306382314992376163564976525637219929193019460562640074307716858854608711996524807808994308849053054415082176539955963521344907265520399012121913379286241950102401127452248596339864294683141887024561723747000684235536974967100918184109061509458076969166256854753775489204610078439083843072679095123121805646672928866309458401232958218132629367689182694991719722516507923787008578701861727001883038348735313661080655720804547266378187796897264810621692615789784658514794009784752078636797865745934734640231871943179571496508746421996745052096489488542268238182709747524194162953887719665041121325081685491016349730647991818255338109530868441259469751423849922368830428700531362725677152830041074278895419424555032705205988547053610820577017435868063758210277162400585981930325478918111202632287327087610986201271527083064627362227632283707739720045157048569761955398068436098581132933762700162905648815582680324647502542059439243818436902150203058978260703916781929545930135018457546108956340970586703539147814618838291760183703286516616921948986958727591799167159948388003609584252917887574009694238763067677422617850498014790149761112287338408018713343524683485940139513628747635349547753612658935603375712946106584671429360684953096284390337590745056026234127077724301484840766518191488368264036390016790545965197101501147263556596963953595102645646485156101610230069973684088116550290436558178734023293656739510516681303120151736800463031081605793085126971807704402494751051373230195888831819593625171656608437502086935086227157256022553056153031940700173507168052850310292749087571861788441119890809942967633092278338952190758598453155173585068953725718434889596372058525734141794830722623396227188815591014494076911280157624900002325479157352419277874386875647689666562501275961100497099766878500679414319445357497285681596827283463605473271459823539043552588336322183366166274621380867990988083465813143960641777246288500947117024980673021707311010541757099899729095960006591704414264183345063136620412841934772123067162496897423250191134288604660833041432392651512173528340874288484267964076679427211877663645214860559078763991043072312172122865263078163618351475938166058079458792468058657381488179531492015211456810779800240871485971257166441669879065425296569260973610520745316549536754489521177730531507827352218367818281628343438451773689486510293849891367509149945015012254039088574750847290688630673368546703815100152624076853065365549252783182713921467700591893863691366795204403216825631467547567137609011798604917415320379000201007502129192446531421821391468984981406620400654701001062474735009114262604643076510541290054342686192410843057683501468961111498042141525603390638506635001202166064369982359642459023489673742878896180097114858394976682166859899662894336282188485316552487982157978878083574939489962000093705541126175104463044345764168920008922019735063373954177129105530542881961390479154216739783931308580438474211393814151821006562642042998035444368729934639463350462671073324587682805666616974731277892853084185951852986159198646054798945667325496940616867439489392669397705716239442070774437032797601479878162716605653517784465873225916741120237759037002730210713771745070451368705270222342982811090293476453486021996689744626530186163449161151500152141002299334872987282318296962361306636089188227808488112248589917179710440455266752656099047451958356802112390981880643951014384869819445377167852798638632076283081843483726526146649460761306408638833986408466391310379913410212444067896952561070493885683143792477536296181452722328038636604369299637512418167927506693601499899345233356436120595363610286394221450761762287870302400970716339468640090913641920045341594775445468674674569482771188670769058996355602258271729658402154099317338841572412200548460029153742058628597648071240760711905877451880501544447569211956176613443503151308732213154991478151165587255615352189925260478229444124078409173796415156810145625443236611011272901920967098192698225349847847688143630293814573514640624851607672201799624981031140181606368108968954836466555919341940174347637194851403800787372843094723353897105258522912206196280486460539392199586865037961635709966031832561013830716961270444019491759283732105568097145770950345487440603444852366325675607955275016559972110276794563252255368383430561509604562584798286040752097684644415107229899107723811808577125517018335702647574021948248448605646393514167856009624636705556143579841920071372575550482941707038755530419116924594847859775386190273315213942523818288997230918358207568912703631571136301990007991177988748703857465321254769153105740937030697249068520943379476897148145849637521801117195768142278421008760698067768956647514954278447978963625471658741338979842835177559956562768673146308606298260637684974952975429935426750451936053489012479175522796064337667371836537294756893222953769546897639035710132649596046903211017658715391162056506910156415425297204510087861151515272873406895901859201792669627824595522288292613602486759334974173354602296452368118565813691062410353808307562701879261236760360536100098462115210526888233598321735198351027407034136221066287032143865992150272449398663888847894770244667856014187034129390535062605206080419444657678157390781596376133283792220844364792454589173852000975773731210230322604371058398854705022778512975758387741556379112189944451990428416866286902766810939626508601836561033283315779051714854878353218814276882851767394717445421629536254033888889601625435175765860199078988717089609136499357402348087192431772206061777226205856702701644104530437754375638687333605009419493812884819904407297267136606973626659177783498171281050105960904889156608288128391851107588157133596388120244856808023168894220995735898823672494311750315141779201735652243586228837173478006406109384074533461173973723830446115003331536736748362406278445142369296037489954535371187669051511711283046086375445164675352924992898047516065703489070891236060104337015208669610309520985197766228575894809600988169604601463327820145643738701125967841030467204289861317408748060106426373262990646391263821489182635083607665405531950348839066072424489488686090405728458045543567085637270190004366976423835511096956163557237508232347862670827801569353624862577910113132604841015686854534521058241537532500814986732799938223079909664281403212338224741402703486836043156478360817486257922382433122221153752896002739475463105456193497516352696082770023778841433843301914489365916634563257493496249146856122232337675644175909490952887812322991173423665700695409413791253094776540678119108026767384270071652211446072832412339617508585195791717467706869818280557033759323808820045789065629428778850743519041973881093069298126754553423513688151237601944812902589018109534079713264203893750360578851035040815375853165619592202036436206710084227237025959367658909145435792207947271952905960037463900000635348316132374460696739001831657441656197970630960095317621011434526235447843587624427452099050196945321090462931964786903444441630512122198577301511459572685646705369434084943422809791370490542829469952158732905623052212424850087205461376523369011755522284641316580625863802037358087119796086579341937247358578964551438846452389262228687772997485948157197234616282437511855474006198543394681287571404375087199376809682987478995604783434572590661540319142844645490458795728029699574510739871202658308467376016271400498578629482058594521434805462525359496078332317025592202485009384122020205764263758756569952260842877052789054990088672201879093102761563725712558464230558681965059572292488661775898952208608999787512990749784294339528650272655412940612870484139242854778734173983379452270623477974100790254529496480327357913723156036269928073491081383461238961491469559953848374812179338279802972556709316526008908988430612278138731759503088227552078513348744662956607072462800339629135839344917260967569338267382497105970862447746869130536526598579143321229440485207288010762563516586177435693046956143398862233975139170302685780276993190432339650218152286886593528458068113929641078554102205390711944917820837130054998920816092284476405648339379858191778547612838031984410630898839059740206148786489638970482055102408946858874090169971762807822992280412205358101171768476162409173414246370831724198334850970981997206550045723981340462134853300925058098284275619315913285179594058363263015993103553132535256650545713765796396606610796885653756536397109386344603890540549015743824310441486225217627351634348668687528823298352197194722709036162979629766475865961829541328568078196828824363884147973069175461798419865903571395434776692100208983667151769318280116943327454761748635472035261252349293942886727141233491927422314032154131954698123050343241912552095927410169746246632801142183570152399594327334552533675847843951411896341113921238824315154727861226510280824727754809513791357827835025411802364354036901390612655353666638940052969243881759900721011353273477845642890965375296226090818617167548889015279182595040938839742456054066871786487415302514498752577312882234983921097900533889047096657439106342719151706286907648753220735265018813586427116241596414006266703703356745055805436167408706251160790273793954557434577453259935131848301801606530024659679066893027222873335327853822412282311436260198468744585249037391668048557922777315983233976658553426606369850754434805153403196964354580385400302184994320030976411058381128844095630591457094052788606835751090546276559186861324321902750942232929185668014148538500355870184171064902051861860265789680482191877017054422787667425223160045404166878699124478887564012464935108493008155366268399965893560741249480473506456187051086537606830233941729272690709552041006203769041758727987054610740979988381481864666117653807911659763009055945624559295290278001368380648102097090931645532208948005047972467724538524921518877291046285475079728961080786066671039258420277995338620985403668886612906718211818300482446438489950317786915124241892220232499840160129467579844226293667153278162587696300609733811705036424525105285083312441654844107093691734536933859264831684681540587085946109847511468011971423051609200392285086766862160218055222107105338056146946925309327303965672999073020634621839475698064723102416052403682010801826740344273789441527303972793486511120110322570630821251314251146959668543275880635979146345943135316032336356182323544004898828446388469355752274077772136759956750151883634132840557184094782822400850724203561360140762537315068038937704274203040995234629403269015288448659039936447832688572248862521583812728616749431147939426450636008101539478314126078563734797472105307886697899487831139158587608675872376456968508615128794888203716955077359976490469582776357733352762012091941498054349559545649653038705514681954288173119613376930332021549215763489742495530622487541876638171950090658419361494876587307298613532282331647504928698897726319368533926770628498208022959872470396680078463418787253494874674310665579420061300298210020906603139004492247610870895271256067242476300252773915119716962673070604691966097186016187182642608179989758102405248869846526830111680933523158545078657907259151689111357888192594447997728107487959461504273349880515978013109675686620937322969397754441398697994077762621708115647402783988549828197112424177427431374118625407469517906643822307999732121440352393294488355335413444378669276943290680911738140811506895124861851559325309037575276081491028114758546706905807327237750196719184831912526776005071303439576747794298001590454825729618417827456428975776268116937705498065055153255866708844598162412278001376986127010191374369983152941748922543933359053976572523519904022193424207182334982816074353316806531730204983739327893277308571842278123675522595718323406800245471056690312579416037971233814957347352123981671546381324585109171384799824322448636813414618230511911158284974967433010647004966073683439772437817074353393348425996131693282076788425706404253255572451279373437126580472544417261196214638603984920458100749155313651364768425593476399980872163675152923075169863889583479690002123284214764881917004375772509658486290267374090352346417589871598720065723236129889767781193157865074651289534833546556327676883776568513405583258230441030374393592766948013250555361755887481385959101256203491149350252686176054135659460753830290211201580659486248448378860236090857274189680167886697963884678509531827077647398083670325267600555257315359348622257340407117310274901780408853682746270785811362754189782263273515428215136648142424935681709054658093548516766779253023314522948903965608900445172468691228770847825433698191124125507202252109517791131993175019106738882401689373500903041255037502856207681286516339694639872703586594380899813071274828575338383821281755349207393960230760587640230444535788966702069868817166697528990375295265178766127698034211155096074751635618219895754654998082526836470513456136494610685606386765167547473741758278977890744691457976927430323514784562812366136050891872614225075986906728925896390439618641811556293637825388145047359587450261306756810365173608515206411836716999414588222977474627956766019715300707649466845980462383875873399872095329025744198188406016621998122927260740769693502968649092701365777884163758574761461674527272599416849398490077847802939563475651830390629857870857449796169107921564999920497065318941527695551573159868579516208927724044940386137987204126664068272339259894865729667401083705452057218405999974212010242926733883984792135353673706126882854813468452756528851389961171621525092397364323970976872772572075485710215786986436107097311931322166010136032354143610411176331354770518719037906756756038765593130216184765204497069775095092346105407140278912502876548126830210671082092456885047730927684645224375215960299603640880700020003707795246684930370339093230794989414323723518565953381961822295372355298277534314894925530041957231187669460126333397226526666057034322452228702680202541993583457961361407124175135691634360151865204370826529819371005607611854373286071133531713591525506878327154329215261482686004238395959432899642840927844943013292741089138376750409895561937955438685834184418505010372025558095546724181141162251979235625762673687833804488428862796809315831472746089850737453758601992926015729461070009795281982643324541342825436479754481548643069279381855688904377976768892581815348534421464418431995360823750834767584642325141613191007121442330719354880657133212467315475508719662530162729244405536121057846707618031048736057312021523520087855423774338427545504575339953422221860224022933910685864509154247452499042001767216645499402778750200468330263285399595995650072025476230935112944699433528952708294058125548356625663696380632170836672676209136083176871877324243111539925973172528285424519418514242281170399060132258980280826779422893227859276427184331026417271194995263063604327628774571349737752609651586016921280778978732253065832238473317551263741110832776981393589145647431705493468054975432257399532717515211681688981786377110990005541924722395123962722949003510705383677845138393519074572888546128555314909480658160507891690441780918302806417694683003797526812592338764425892612258260524614937559879247090258839955569228070466087239312872987701784062784322594154687505781312783746340886286708869268558004922165077898641697194747513152739653162632951598265357031194192728288264085905371729818871581042674892177798036831500767574669626226633539110223602337806626478681006156723955897384362241907241941302615084540849603941301876597613059602896311393102563351680952147373565793179832746675224278668201373746444138104909208551066280074806641608004967288081671986055435015343445473545951587325814396863710969356485011529363071736068293452221269941019730369122138613381406514157187921271315652058716255171063605973264920344378918688882921604127048714351926116986650404178796046690852184940561259335995149079518267581714873489375568325762645393772651651972082290305912028169631600032514806179256704452428364631850415492264434101993237666137359925056673581236249695482529551885132462266167807962170068106216271672072324723640640978068272921602782004048470605954578641280576946660695835652011424943181021928395857247784345500307475029325611342317489711428234759637260687620067321202922235878865935324716793744856727709127632413706859267756985763707477563711596456650960760518474336713563243484622782268204923549430207752847080821735714577174682553726961825845658644230333224160047078159908761757244783692995823304840124115728619884024707720733647110281074183682515263494623000812863715012982620066920703089169841149488469065317912929454214411562285890225680427122483218808958874708532743794599064712154036460126747505527448066018272126140830864673693161328113256179269207409115750539342851121302256199324210274169817605359724952101265358058395628609666443122855222625201558748668725971667164437254976449794551058284672219843959995351330430844259316541504639112619619990397652680562057043879752202325581563381483530591678755251058067180545594847460944899974482052068966543285906006805637518793728963223616539385093352612473098167834377348274316642017140033250113861806345370496521834623846869394487530168698470020371805801948463718651595784041879720577336759726567282004319425133510103913175555329170231864028208433429837158387537501465476066625981793441658817370806886972727028867049618754425591841609528398195339974491132995260094490771176564098094346954749656652322134309274738855575610636356126329611404652263038026564440758743792508913677524996591030614047883912270355258812089985542889113412943106096094468538929450673724461817616297191307896975921015146691719744873330410066828098574987543404377480810552325735687264092593691950731776295398139701081874752040522967716491320810311059092666923278147560038856898311625254443993284059913954536571175114740160527616895561018787628681068844257587967082649732095398590783532865302678215748663577231647088134323614934046459271212977043701155757459120292861120501040725364078704542157614044512704897574999009425377455514589306245689267264317518972191805294123939709398407479920721630932946642099195650974171655339496642469075562941350863075618227493669382333313277514053566584220999911823259421229988442730170308584594517771042436149399165772077038909625045521832721635113694893868893991373459114515504315673965105055028254447602058376548255834485583634003783475918486844871777032359160214825372231555749560570958975309051096958412284782237997687816366261672144520673351806326926117889400535160488374523800841830430737883522304376294532174610483774827601145445615856746048300138135638009617220711700684124596979116778057667859693500011669218476562403454075406843171764156512176236095690325038528763002444546572795849940833927183099715024242552900711290893392191070078701702847093524615447491283321721447468841296276300031628665510922646728879975763900332857253894409696003569286268882746278022580392956733230423392140194020148349801438141085226428044132913667176899663438793343584188726842224856190452308108658208597140685699060502959873864619378291023349663340620500256087443759688224753933677428949307956152720286024047223728813966354162132762855663678890633030081357848524492318010251082188379860586633339423652535554423250879523489465887597710960417351577924307718243256807051175284314052278743804102935751335476904026574700837719356083717519503774092205458575564134437156128154576294751028842558958268364051897580877528959207265760953329326486645160979636045259910935850120920475446803330229993836460842845347824761947555829914242407812251215980648917245251022885774120035209940281329339426972315977186898706730781446294292401917194632991341409869695476416844621992288012846977420707917711615685756164312312214854848467832928589508960410998607838293321974256710198224402826560424831856926511277972735512693856662649870925572058479213072285067352518713413041330148574739567107870356016222358182146328653873341428562244803512700326382159626184067369590218540582027525205238831773407874640241239023011097216785550948336938045278833392145830188820926940546895789871299430655169327509638636295161435663924865049408652672217683455751540681385433841583300193216144724373227272048139592313445270333972442301062926299350793684976977540694315389918450900102400146303112077401455230301853912262649461768605499513734376653917051355144413596799156549614228679986821821055169797745871519738724182200423015738650458170533931084744671001469459504734572623070674761852864909904780515937132600214553141834889162826581264224149884249803213147876818746651210358235650782911080629805321122041497518388576067607990426663685324103152497973629056228888982058231878281586604239888899253361804014550104172656618395419962790956961975996335225126612155259572451906828984613068954783310056027244660153427706527334942404610244943898354481594198941009417168712219202883988343626491788929195457718299672176721640013295787164060982123276784172840735962680954843882996015369942762141821404364979216669402093786031553538760970573106999674912318902961982002655506172219188513206635575228281546579257631513224820294430979128472883087186828116491890696374257992642462171970776242635627758374799429587125035419259295643710601426181720442954759857725968787598182519179347956989774782143454203946734084782359750908540483620456846159895924760863859084294269521932296101395086122183982618539605167157920945893776176918806430574330694267187911429244046095899758774764496554552399373146694216789104134819006416003177181157521434150137637964671896776738301421988291613060167332833643952325403184486626636378466614119094000746417156249106910501207437182401742578452550379280482780334865324303133015951781624446941283576712007649817019572211944240816178476314812869401002629795611001391830500630432735532923531894801244338662779317893105773609684509612160586223238391811327656670922358866603394046759817726502363455351450716366254239471904492807495104305464333240500529702295866385718498194060600056039214821426058863252524960739471529673742783784018661326220920341935633168772804101368289037366002370471977924848468531141832028992532568884561317880412213900420494271447335305870300311772816702842715976563951560665958480343407851735008357725980920667970477832079569078261866577544833410795114151277373715303751729869826399774353109701662527764865667703605038475748264731416670059905696686249769101502494994003902599324856939778981402203977296530929187096341025412076559290535632478011069137203409765689153436639080700788886377022439381497936684924898292800634533407436859702552423858143869676482531565728695036871202916293888122492348602092247649853456965142713240135927239167050444405923973896850984224505830549546943604575403928260438326623042450717496768726785476399397695692762145778391318306586778238196626810055538960578075737130871243162306029475271900245961582957776279803006032468974945008623438149515066843468997103113493722267958063000667526285914758440254784495422261085934962981165008986221715221191783984865284358093122575155763535455210246263231807795785683586470399526767439067814110937823031157710952385189706288698685617232545716963044077291076963135683454436873511005538584504118005676043009215828999836937540638261904986368175758101683570107910536408355143507245583864652018968020766685256594854548459637822112166050052139083228313887213186958532501887338068351555634722035723508810967336090200209878297137955548686951951413678216285145394867590167048748777818162507371553834914600638121473114506612129019374097120099720156676135795938242820454494449691114140437719335475779582038221768587346951420647837047280767264767527980830025748422377185872986058779755625346529080019765844465087446024943764048922340253488490900213309598718298287578160013262865718962142917093171796625155080023873372748467934347139251754807246242323838459642752848049118898867656979971476430153080902293525133570252859463066259140449378863288483202463169479531706974887715637897841287176075367287071449523927179479236184045510682320385805814362694231182010571315996790726921468695903967512680353976000885766743105642963566608427347856847397895087092314945006583793673152797782087249450558295021912830000435789079096370576411970165999586376514512230138278967589124498176332294400188892731474979880371970179693698597658678964062801028279819702061819606944613163124551346978645613452507763817334714712997452623253933948699804223041903193247163985991607177492569674839256661913077825514636258588982139404286497911489054823119107764337858240031912005710384670172793987651874917140053673949520587768436394761940159901298407338204951613917652846986932588864749613688413226084428678932364713237122257116804932665738771581703884632848116824617928941016444479217906671675292377392322055680521178011574067426836220947755737723655492274835906509510681871455213603296025456359309908129328114636260976914903586402542649411802365338726707845839564323968186713990878462207220614264218393750602135289137034263494047221754712807341597868966644644463921445155365285935231872118456892134653826887488213115171219834981440351881025780084330274415857659684387512141029063876845414033202338086370169605599373125848295490581297982147148666421024935625307551412437779173860799189479890928722964686444479918820318179990469235487129594037505966033869325319532245882766111856052916027775451306429292600998423168165540451677784469404304517811701016134440215457966122392287616233552608664811477144634819234597341175686874544920913311975779351903764025175334453347239010555378973462471467847353656765321478011672712883606128592635127870815602908371639584697610173243893280327552452246365445391178265149061628757901638444654712158890119468132700745670715356765742567722030028344960919105571910344356459666140327983957948686119314537164205779097229812145402520339467883069584788717190700665489145844522658882898833704074125971800517959130208689266660713164706449339356329789873277126040586473058197601284923932695370954498960825219543997313459802494700170155446386986199297434468881723722500828730130658583326316127557652023053754217408374203774860266853451200974664805767396008006180228887422884609649377445308970388242645798253096650566745316465814419357940910967445606713958357723644888845205108288349455341913559023960823976486243049674754134793755915385218935759740656905379680889585837928702612833652187830717523817903910621078320066764781307154941293638820367589844053360017815777518203645161341099980346930679654805285556963695581254943347967156801296530069803483216657715022994397147936629536539668341851998595784512496829946711978859246151475793776982395404002327034453743869892521294163095557280950419990897578645557166957374513566275424728508002558347129425399453500137813576883491027375293618454390613653935526343263624505307604556409415070889423751581775809276543235852487600125100420567674454060569429530405388196988584644311170786323634719503355711982128179281465053162454063055703531190045814577254777519152552858154587589904372446246953888673379914078226358301118779663693336298577781221617396333927316614845539252398617787064766725668177657933170474836772890504826203115925687480614394050884421004211559494960563281363159267857820495382668954339515856816280651034860610862965422113941084646291170152721963964413175070706645179026298245558845010522803532529044402086245767304964839309405356204096097566415832765369082361234222173263715208825000485472817234019717493544946045137286732618109951387974430051540053051173973212766721439462644276982297872392241975910072008970083756342376002331510604027802401551542277164146582142144200302468906041331685025333672970953675420091891304656738717032024690813176695692300793769095686228859558835862004050632944146785192458637845188685942993870624805140843430557109785797415955860734826385063502724704548731016150812061472519984416974334675518473403842833192327723012158790725961293904527063477994101745097235129801698282617029379440777099040843453956713878325563965191698922220654919430678146181973361172243577191142178371048749493959422738851001376067722294586875808856004530039419330268557997795647216889527878645742322029687338692623082811681908889938961694736533785665107726561990049921773605608850704837259871995410626594425342826549478097991539106888863395114022779588644545556690405080502786961627928631535989316472048406102420418718470830412575960834276918727791647009640035377937251907859477997995997198334621258290895137189415258328144541948479829042115703396595944129964841214326351042757956588824648726653646212579936045763477145361306960342189481206080326773826133716484657026437688595722418007709264141326023513437433783038341470319737385115757923352555551807190544445677138319115870733070691864645162582477277425123862233069394668895681330173989527849916745204125058824391910420255327857725544995190077010409948976769516073099632127198447997047108108415367706789096611207027607357743131394966862280892072934585836844825755714673212856443269541052740230808526726437937972445559994702629286828615363945836366010283330503028173114220999771532795720188622545805619563622449636719898340366086148137065764180379722498102000677499813277221840451119800582509408653326513088912138245946045258863668263831684543054830217291583790913129996041995184670811585434003929324897098735005736342405849925281340740039030886506794624059817445998966082908086475310539097235258604402267235898119736671511523407707997759151724701782273954522301945688093834995143986345979320358482950298490470208191871121589844623529390749655248229906747580897992791558542501505747892950425785093297062190234659663331419023895595570732602441986779568260497681248886718666277177227586147634974151716434817093127920954664785806538004794223774625025959615861506755638046577068881607731498847513339277262253060918542498851464946549306667993918438849859980703922935586442363664556537371965388128197591661845921145319545173461481415186002500490300106022446486598475109151939852225712037428768992562321469976586804480047504556372801107904443973476704712300671305287628904650269215207539947364748308502549102516337532324816089202458542399124179753369561410148076423480798030703342982083340852703825101034713463343112664391434738948171935074454851305897227132295303882925941959197941596171110440090107784112421292463429796065191973693565090140894387173881208124868015235777578190797231017079371832737083319553898208822580591732427788619082571456469033403814411004544814835571385915119281511680659913928887246656304849552869067679724902096264893075300312670446592083130555526303394764359535568191233482029558096726446351503849194591192397216248978937423501388133558045240744789442524927054217151988248714031172644253707499200775821464237713224290024116440441973968799502649006979370734148629522363125907850100277080852107173822721665228582710623750545365148298831247871721565685056170554031820954979646454602567824531544086003970784075148537065365301810128242797279232500242169604844585505788315431052860390858367391598505636189598882918198704638371483114713803240605580338954500902405335252626836329963343820329888821729571610204198868554056154275961174721849219563010453891905017349019944926833528436734915144015547081823241349049665481155315619699852291697527358909556933160035359761071791569087237815225280145590800013070685549545843049650175828060058492233170726931256332803825099591831292775043774009006306027863451561574547020026245228340531910276401071458464248609206294411491978243596019300413608380293607650445264250238377312039004793168000433270791890403263877963704548109147549651175358013207502056940923918665365611458602243003891284734851793531642203432155159103687708162818758101635197313306352444325270943527216040362907756325209318198563379431509588117131995067100036742552905033975036629651053673380918189569099589283832834198159345887331343030346198884154683235437455456636113636429031711655581158795673673128667098131920586427381269291022277205341883505869912735969216078330545628824990258399820686254335247024640128312516245211446586463461537040603090450418196785018797077325128823008449320065204444413369727045168332741985487968792441692908330669548761926830453794682738143140777425117759462243528228966007781692180360777427832294831342484488596846890738339022225529382462098222527996409073524905445738408977640629160910371124675642898612239383925958569693139192559800070783861703835737360865153284290223836004457530094307908279815708468158563138020062653214949524281387043471393958680295411307480960661591047159500437786291060677625748230678725699490498774521851070801434891503402053064871846359647855533383380698195631908337110421693834077359770129350717377956542577277686552375734388534048831373294020356591632898191578239213775764106604869857528336974974138888876740703070910506139746025642553656500206058132414015153819946755589569668109535701768856547273618950124092735564909649770479853302668727889123758011295203986643175993026232374787006163656822759342721453105190780593686789101918175299548489408190700724721524531834742335896007441257439994911857654330558578166364629710137996327667972354743555279931649421022361063199000502154847014956610289171569857294458462577110086170261794764379769338335202004616732370131435484600310341636901587076933266811397898108605549114341928942238543693002916874908184349857042342694436303518242848086581470376989934454456801926705478287424873675186304049312524456848243908265153047279537530731685458412978067781044916355312662869397446814836703244876032489652938908706496786151170291129081803986171942370840527684940444681880284615425278660041624147809022704644867207371685874375488077722475498145629975185687002708567940986861907832103030236996832465122799327649711202064136042196075745083148130626938719805423013455982618034394649753194013240522466358236200025466312940725373518892127810468246835808960568301006445242612715279508850796180467534405053855630480209006313280386724375716140496169142005526427354687026044985342200106520695249644589817513697611469069484626719021174692329733056405103625457946157356882276230627613043388133387868889794932425283348795497089369728679034062483161043973876846703430673556739577347713483881114385098767183647278819601440166722260841463324750442873928858707977109932152939136437110751626087346508737203471572679474496593625500508270915727019700049748968879046381360624144249703100984533527938930720311509650529777672781602558438513989371713892028421865535691196294220683173060779060781515946415966819876643875259844954197944542481220671471513655795545095219149083530305896862393608133672256611520784879863678876948018107340039684797952608778923933191511457303618436918374522680464627048467515753973657930812401552513700290134159002687363865659070835836404087101893194773681330326324409749354911497122010415451957652064334743293824502061191663742128816384207482257964412816110575755873363849763628078467204530836449101046622321400821532180558531381358414943944534698692185913779720502509019053234426450446183303165759724497472838883950338162710646547599542383232903019671963355924440754585329591744225547000575736914100888726484536993901378829697162484832089730867057502884015297017478159143145686415855511237504090426261002146843814180318800658876424443410968361658979730634192050903996654162725181981094486662315997672263175039799558876200874806747468178958432334203633213708168481414329151667151113163204028140620667144913116009931684937937890453968063094751589663671479179313210844800457022016068824813406650716293155479709628762203355591532911166783047621135880913996370145012107865989728592156978474371342210704272966534849218757750558998819479726554141280477841838321005888487007470744312614113809494947657164325632585747420709648983268275928244379563681874934998506164413446478636882590890482957192380660170861886270121595052384097908680432259343340550394749928750076601535931316216453222938874337618421421378287987891967428870865145169168472180700848540660858825580135528237965119949563843928030186681267006283643858938092246081295726529741856985227963822508120895598713993741927672777043434514307519734475949769867142425328981552908536900972820243253126534870526054758478504315207571677219804325998636124155788736943798576089822173744977403604789581203786444371823463538554012489698987461465960173969444673950748372910114975019975320057298815682351659560567870764936858280635570399199112537122281162881690455745839456575135273669163941876997923312115233316188953197237023710370835850502652565255417233716531777478546039680384778622202700149217392014346249392168387418634735739553194555491018623483472259225415910968650748879460421843275710923748661969176881441828128073609039188974573668511414106566800727489561285515756259931894823503645768801188914014507871131213275382628807935862438290305984879003784327382481441842298321923587911248057138508829769503632801795796161382329568470387930379291315971356135520734147089479572705083127230090158017593623666850422596243851004473661881414108146164909534367336651200803474226623632360207676940013982603864311832737192178258654748645818202112279827474696840124724854333024016155291745195579547459363387031274286327479082450056000602432434501523953210197349338484117845511334236287083850818502380963443768006024435074476571881241079616584561278540405853451657130697436787459563319509080908798419705714453973269200642479693062588872876350083862951253491363697612375580582594427429183663755880568323573105274582672835861345473397957148434957587011163395466612321010805297172275551048474226233419121125849845334721736938990713746052883001567782073222775785881603903579566905202583827193428159566841989232007467925508690050883872845691724057949618345871611237264385550338645858704589178674705920275768068669237584347842045788653715046730581510170154903178721976618330289793392217108473212567642751624094997830058688963584673021509882437483803573092155746772212835788641085108988706129480169724273075970268499430741171394721964686861283772204155969549854278747086437990092811401752907259453847721210012282422417668655548731217981621594909586792225200043133973780673824669735558925233239487946443811592807533863460460989433658470397896793400579231025115169908288377095942171844299511433480185609090976629991359386913487347468482785695844584384017342551683554138034402896699136610425800354161474678847507852054928569751659907470914403130488541840861560505985780435984867749770343447536214821923539893381407485753904929077418687116173187945753112338967380463871774761034932390228001235831135827517920939816107563355864178328687537706359466171393248940513996969265470518970109042598824221966580612554131877427195310759589029753887680624889764941963207264112963416205584940527050583746076611998081808680704010607583207061607583210310520189845474410422590175981395773882521381942981617244225587889346070385402111322959470260050593299670412716993715113371352645297208216876820831581859089342039607452655030008256535644064814207287951135195895845958964908062540954123428761166327138157670362594666026960674685360103762879030883351755024111083435694281631591738767286378503809950664576135639684156940689338859311543342586738248891842160541607041241493590825329470384930067165973571827698830512233540529022412829447596743003449220869971499587244473328658908097492926445415879893537132801695610990182693685780045900887556640161310577805385975886686276341458088215644116328450527311591264787908089935335891716319630669039429911928631078200332334125732943281326934221043626376697584850301936779185767540622317312209827308102175108481574773968270439481059466480646910698952956534844711474174849525963683268736278137376267642316636208705044699942714021956321239012545355107332194629757763845637768163423036127087548055314071237654335363956175597258753128494152179514850564717805231837951403033560008323907222813614313009665959923886066968853733218345908822141163525395320506312897804445184687937809255042236400000081298096345228059889759145174198815683823172084176776143009298076847625732045342306114475262428288804544009871366408566857318332842813369829936544714959704248920366753031630473715164117929742795553874938626426437618050503420998841537119551344893229075903860343664931908819059017853833071497724795706578624585426342217299553953926484725520146733241576146567838303012408241730773115995185943229839382484147031599746831389867608981063899591171182693640719309964033481620645943894943491971621907372765896586653168596309983530957669783335747483113777649432538499365627333007973481746417824923684829115316166316258919726811765095397656284761504637401676610201539505274667141092773004917597570670659520065541179901726981829412695637604562268759240590176034671466681007936805272265770673152872634989787416239830218448101454654143074036047020792858288332408903348562129661271297446688264860004734048116545263341040114359397506473977667935482210144643955847379189133208010247182629026646122887966553562509968908429230808360587602181006955636286569021470576390813869576039690219611368484905896679138732408220093961681646344238764859416497342776873905897206428223055124072050318961582581195559412299886531209059082157791820256698923436810784265736548415190805441655894396796779982306673267142328780414716627729603304195398997842666240492088693571187870048296790308285422805748868031655585828799607186819471301070215370118007611695945598006155597382030693557187740062021097766333864866030304344845972197820635167648624230206348001674998416872448726420603831049948551445163827852455814304954168352648873256569578921411873459947144485079844396175993442034252677430605392362024580210510767126246724513055687109619050969933455886533716759712242912703879267995767560501157037905357930336242418808941803575479964165232379803734312803277806985773599988256174995754637179100815268345922373665489707289009839796239960931642515268565929265595072534756119766690007869007354382842638238021789642142521169578553581284360502477810373948330802745337409081187260380284886459691886887215509105047245533183600410879177584194544090590661833301486696802449612850428512545057383338103331068881992608702790154335718363987285936434128983366279025328707473891268550084332366951901213636082805062913379070773255141044483652334430044340054604091138651413027058339828245974535767046874126511429890390901981724548605654595247386030212926033478052174912389233808205156738333543089124838823979783805209166957213465191739073401453472490064439038981932622301278772149352040262060528561036965451342363223689262598362046433620356864255386702950448969249067580042118477795262815283391132486890898414670948834905094914413636749775335703273822338019123282153779581509253093352501390663462380848421961259805069448029632655546248938695842925405656344065558622037260991818600280693779711857700776956061861694147243589789066304334226021927408521535357831693361956050505758663416944411145436335807607793178588455976093506256021062332136463775317543594960525628082690385262028575176287001135309878634696433490960975138263764036755445560137655558631735419320545447281919278526134409439430505714485733731472866262003485612987622072703663216391522629704783287865308719570978455300738422707449386081478391161124228303969780811542638004490363351845973443488894495985712201659677219960500298579657163740416493213573807154403616702326845782181564602987832810211800559777652886517043464784683473177337114731529177633355892979457266538970925244075190685746474563956509201006818285566613434653787034097476926763564298588119495599313349775349085679847524133105197762848927791564161605351312469190280777818590590915144538685470560750115359521515949877922263276869408067150699769980350980166006716512341409562014733887894982002122073322444890675512616345800106544814586654969604396321251893408937806411159544512670294014076214744157288321477867852637428694384193635890525637171727658428975605856888109312063635460600208325050498872928272554315828898435348147728892642759361909765108107556188255912061629861577460162597729995506518721621530051843427421482710263670403961684259135737818965556587114463618755601280522023112198713450507976374612786863738135212283713909185904186166494371823387480591908722701928882549552818848653655696801412507816752055779772218554141267829800761250901129935845246708939518579131604950680548924131042932451762699723429389676859154609835974588292862008023735302356655159579021292086490695577978787895210895783916658356395362951602896962524327897266826421013999334596122248848288598729794296844135843849811947358471476685733872529475274087141203912087596568796063009405975420589251793789530753614331793775642903891702192486340721989424953332963657601487726933427872059396469968249972967331754243527103002617993614857354101892012197698772381086544815410747183304414973922922464360300844417496184491974754798870347882247443202027459356119320848626732382177400763048332031068504203356976592269249089681671039809262691116778177964746290547923871809869210372198222455854723346373835042230771234531980308482180860455235501488045734461066578364125672230860953928954421774548665522662196048796880070843444759906048592255371442854155008900540456355416479390518391755012834525919651223679482986577927069894791963281794345515235009663765474941197938975986789267127499961494022649120407370712534626487440347067691873545499243379179464286717438751308098178902134876294534539612320487958928900187830292276452509309076198598283052197150793604790637447237060616301744854744797235666048935176825928223817235337400804358939582165632001170350565586642425782157550553195146259829366509969184406161055683844654715008725805321610031346954054293928255930289658113575678832032478520115093257896750952987501852028864583234641737558501374308095392686079155867817324213833343747003114366398149720530111919364683614555457414143182111582909309072280808271460250327125887793762578883725225081592936041257706541489582801568287418955460188585720075615127006093930450737560761079312362971117691337972203872134526211512807798713720269764417945068908258873802695067623418104414241873430155081435358079670682633624455891099849156402163486662406198824375285254348564977328419131015285705167955479744148018935976297979914775597913619319757653160321006639229963723411326316437824782078148667397382293894830022790764816825549536823040395274659060050683722970269532905415544099265958112989129068035296239433565218437364225397065498793519708673927681826935848639748229092937527195833265690763253462156596816980525019097379543393583109614772609011748710195718893339115273412785944027490215887301054219895856880217957656497735063346741355150094040932813405640985235957834495345192526439019594694976193760634118803660639855566237837850327964200040061688617760506203327514709804494714497917149374961742529077271644065154994789893437953951919550706317566456198448060236470538166572158597879777901431383287948717721895087240903729916510220504576610891407356752601251362546818528110746588098997705371573348415932350177041948449483340434958736812622106151363898379579027098934261202747307821424727083949914769001370560277363789302424452490574663715835914774454341890196579471410629892293511361126937390433497100297526852474871099689220553429761816670952358349350056771051887830179013394713493726966851344730498931228167847202701005061061760817168509086800159719200528740420142045871298698250355067457038383035975317945102760372683780321537102195103440947909353332085107059509124775392459402728892883320171749742220478346436696544932059503793054273290024622980187771251496909211139455910991601520904505563670590312280522875193978935688737983290415441465713133701514726865105648068397831808289198297899264870818477930163516791501057588532163219156588374116962343411294053246132477681467642336285631989795401978295631883212977469454999609382910949386953533184373522670804347994235591550410114753608115762748552987020138875064980107241287899810850706400570460791360647564796161496200611632303657357465652959239648456607391104533606461812816421540603698764488509703560347422665187255629827395460774590592712143187055868218337684963156842355962048570153916414298883855262490336436915465641516176416426556446449004200416356900822991498360029240614821284555341052041450898736887191768210260573806984993782719091598509216155785190695826334802308806329591192266304588914816753772582663482225192154417817695791145486395117349218608093083928409277012767056958691944437461732539698633837669728879422416235672703097276276177872139187636985006771896620326258919205133737915921777212136086713175932962317583894775016595074982514190950522246681546212867510651467114522566771704534206498239244313529374703130654792053219337016514377190289942896852054348168295842793146062760149156229029713344409683227582449932365542987325250521124155354293292248449394638418372381145696768179275552313545792981106638926999174641167393017050514626828444424078311755029891871888012707682542385273050944022154982581867604583757953613505281435792656646221988484224355111384664995637981983964307704970651063265329682309180065391786279688601451933562675580154333737854152943938730433253089060236473786928377141919857837647445766846207701677980256692973185587246896138160243068506214702334386775260877885770175293706598198866092229155459849775638319798540510761170654455473559483151662093076752453246039869781864439344853889931714373735985128559722985475707211887201963075168598245199675341369268957335005947716516565123985079150843750155848974651201407091842837679121224918545475754714085950179919743877387886331351174344411914598160743203471665441621867576664548644895336684295922373234307709434580707040445804049642905513159628570681882719824718211288988604372033616425176711523905485863857051345730623107980563615227984907408932878616540563040479921071737909459884940333800588469332365323841816521598146575345547987192962155649486129360237952573878915892214246901213442297186370960665254593180436045727514390648157185823206723271170174689480863204351989319439637802768128840317188586645072690052916104153166852988665156802630832815941887373345830761561566446196477390584362181188789875926980816738950234529330644000308842948548366913584859670823572776646929067106533184136901795664771736085728444544837859527722323610416308633075652054295872866120057464910207854241435317302158436226769154915303596708837381991018962260754071732445760469793732088296527938881779921240284315628161218085648270217483310853501599091357157775318030034839285384570777384509466559109934557877602745917713499684478521422110418392618057274260503617304063552294248460164013701305788014924629419237220744028966254627390252135608444125408567600146437832399241091641040602091451081194985828968071228046486273321018675467293997297918467981972061824698322607061562617824153899171095384883986974015545547279555621481052040063874598735513895794044729869447818047394578439913740842736467913078807402717725945382025375496532978097948590426258615445173249405413008124772070030214556805210089220860601009657071076738633467758315094003832178881157049161327271662564220235343644033350052333266280722854364606796056761340424154644047709242775667933290964741394360379745399472124643125657935434351403543291169024636356981872883637188839688031145057556262708746592175924351312335620362323836093963155913384915532471154461370029050262045470850998932301724755660308673455738411628108323631445087818331113628506931427784597096619099528847227346977483035828446226253959536515104429135251198845614871121089228688801633428675888293767665940983321988883012256736885767215284149701816204073050752224529457337671508633646652772202146500765978917722383118532882426643502291936633922473517927051012797700908506566547779044858986805432711249745575624968241892482453770726099585576186509046572916058127292914203843253499301358050889008116690364105189148531229692503957437439040235702007094537301945318377844100550942385108314670299603931669939582924384003924326529480362891522982000860538402707357424558197759885834499376955513012870090590161484813106482058829713467322142113113751402651546938431916844525501518174170851205481047760662474843084007041820779131956276941516684179140017705765770015919070174288838875216220497419629887244934145885236062700704218165030816225628645008969665456340802492802032204835007121621811085678897254182103915760546499962948058750089250477730941511197018082916201710093793181631228358375118315312760068082968747984012414687111024833757381029222104057230554478225240695326626518955415755303409024079605096364498143016556423828637259492742184282469587253500989963685226783789491463630945133796678196281019560808937386945056508116647121095748663769042261152600411053653088524672676350260369964446609703952235150066360528951519128192201082170788314661177239483694801367879299787294534640441789601463730097107427791907095759033954724123402988496315430540987713700668411663208003112401028098435234785135535518777286665605528097309976056201925677897455393185631931830151819589823210418127321281702416049042034163788351818295659546620148311127996560885810116230112757703135020584331193091829114781128641415735393301183986263618272886697489328797573755687740544032275348013218005641237612331380197417551614673688581591195236949253225333115562626818541582834193586618858087725131005675485845886835290159065699425147422558578751144332310078504262683732056522215600481041267508595028607554604002304885696836506206431240547328815224692554039651446927765635719682509198408635651634780742206478438802014893960812552070497658097715902083699664344648551991537938747742983681333200345073567646298103456353766993400127541136115190571185836819445809949155133739126301444757152576783753992198541071407457031517803700671160582252162986294318054361955805713481175586132485384354199205545819368746213173435653712304545574902120828750206484145222627447013793369137221464918402817794345551066678770879678457677503690091727232659035059932632854626170910757777641430508405813756553284403464991504175397779645175260486319828746737730762707803988660794489910007086342117704058527409258424866462419640386418681661712353064592514955099479078942857107150826287242807498284314576541399039731973966301314828397859351375508675428292482114573719284323896062018055144783821248557714545805121452765186840433020740135280542549681211484025860745822504193681398081740193827999533771452685796637788723980896968772405857224974154775730700379610112297236056914766049718205350047000653348607266298813220917590197523235060469657516445973047690663428027677976319448266352952799309570110554642055442864601916743668427665681659710773701065135273382745377163636377703437765159776407295571286412600156881955863052714148595198184275767958812001834217676331634839736376928458063968877642119871276501099736221071867224563788954559953494072434484909765040669616566438962172335622308860988380058970575973620342495259066151565865820435613137617040169148465073798013239912072008684450326548018637831321388924805079958910545389001359526361154183692495858056807670157630147810345942056713262598381380874835802659668408614155732874750253752021040805185319352663251307776855066299563882982277525454923533524247214680338403154953574536794677785306483892676962809923883476978209352468427849477898607781701696787462577673303239668416883640606155449983220680090386092232265402470755152357204325351200738907826738295834662583369123128502080521948135728678552563774389629493918312625959296181079650343375022169554752018653324535394655557823127753703807447557561167345439866597316375148324189502271147394275101901255274125696631029168491115339149656242528761748972873865523724083829938943008096429593695242297400034037093819800562735391540120145693861617598410989513644220414036123191112127976806962104193784722329638058997501266406988648785951833808966674726214918913946130608545796480695637520954629994589807255602417570875578252588457946167632025582979870098439032632779344051609234945572060822020817376643164782330642477708580879170692710284997329178779580041843200914298359565451966246406150034537361794403198295355185050556990152508425281716163885144154716672829611725670288618004240770339744975672407969485907126914838178925179130348451449961604927788558947967905932926606734659035223068179158844479882023738386545729516275035049690128235234101926121785701076177123087530952638926756916369012578270920915517380724559572725548667142130374651698205737745408032198568785840453380960501416977025355277043778758255101416625757686520934487445680559521943898979372107183514120840401388384679662375184938911173072189425205749240960339279896527382479190230759282272741120869112713072101009423290701036941116196610828512225686825386621269907148974976988450128405988533969158280494136765535605946326580303621997389491685183607402330014499754512790812316352065614900700584710387059482280588419952025660697620864223791779036936944540401901732326508449309570936932644008873376726683561091307940104398049924854352065158271665399592632410002574002811024876836179488144874502300854958526617122890442123412562941963088200292743654413506827844909501030843236184259398304360650637262326802504642919594509675845580273318618597085494577753396842965516475752691800373242159505670006640317665855357281645667907648423192259660231455731819686080454495748423328490697052369585728345016598772208474667684745960164474307538647047609677354821524653246155834427314487526122329375503764566504344720167435365184682558250668837659482990377286917427138762267108595318781751309802899635672497575543686232363867766338808521051750465358768248248507593812931232246258069400083286611931242191196671459902151459542172897474284778255863588168245447137811183837252504652421006760061092752414279054659697597959911652102284518222316960539603725601893723963598137474636256137604714569534799565828759736342909406252293286048879865681336443501907650180971861070698548690034442484141942507924486563483686845490759578086764709589692356607003920407251532460820794762041894716850847206122095585523498941138100207767557192973495038521569886387757283602959979184173363641311974779908549315578634619262704684242106822583453556588282575002656553960642684129059141559665881109389306429469765360811659760819947439990674675188818711441746014357727920255674676238359905642118118269821099221081055232584479300003598316332591256278926070827577935580424370434328680124509341214698071189217241551331822783247525432825788002560482758081758244306276341162643275068372133195544825046835715826645190700090997455348356589436125941585770561684999835114890160016856082462556012907236981594426216872868879384876471314061602897966835275882415795552607453115074505693426945785396264093132217723147958291077939342279705532377843823438866275187723060468573949913175968624110484813989661905474212523153722241449041399576425233421128022052689664063121668424274614255509644991352361499307308272108868959928861267056083550829623552883476237625390655242827316618572148289392103225231384275472983395458405467017211437728846493859357097793084588625516997956981620737315814069009937006119865916988828105306587387226585737284066796690078600188101933884534951236352444973354780764062951280547381976506324883564991990574679418070124280925374646882375968698887379444853386755226808098061410206613580046045380437214424066373762886719051715767140392395224266843098626208502626328488100242360237484473711488959499285879478856067579201650102604601233225668529138045025557154003736915525895325630702558072984974327870219852239110433381638337656993396851779131878126817491608818947263534150117133280695299246691613850297474818009283749580540629974895804797281142228480677948856948547620090128662328301297745435269071684600775168081500796827260491641194333004222509699745181510361389204187508209894849583176108958645593210799684334341828654349477198323861984732616605426913873733669089309423323683431640248291893359152446747624617726734821275097442014758809537963358344509561908769966733477974447399048858372195242502001917621485238375314299746707297630629212384610332852645909423970491946967009145866921151709256125025041731108604411703186474889181529532837576008201114714252376880762545039987121214187350928616166389429169418486722373998050701878254608598633056559442004955401231484160579118678279366516739439146849995872492817296553979224474167532493811135024949752580612725784518232477169210980020956797743133911753282509750030037747366440195300072787422295487412965545271791184744499191965240161678527884242923220966276686745862182798835557369342950944531277414238472176184972992373428905459490656051896494517185849538616697529412213560660048071157530424382136853396359331507780200280762028353653363478676071552774587290391660489489213403619538831049351596032871778320774893894565469255120842075177824230458749778862539171160268218587973323567026953145059200095779719564479758605411008848536383259060721692493524651964642552727289263114343994213356688983159608600364344510052701192538025826924519751548286470215892724510523295555227734236800429774994854457697609702707920020913820108385549134450367783763218228685017672859175847341145138069215244607055501593016988777974012092709551540941754171127328021647212852652393282118627850914294302926879403578955135114338755469069089804244801785339519938005909316624767023035804192477550040027552070457800209050076295175492478326968948248183576732917082027230023352335209672810905980057781213600395241077105869608473861317917554731542323378272240191407914490442155255333384322468238532406356864593910935842055138937706669630818143984731155033046750121750324752495148731453506375088792830276402114404325340073921578875191723265307715294996793097728269030979403903470049426676807807644577085858165396895595543541476206755651898590396318114913864980933992690386570084680168037078079277686438825504012227295653358003095105215631572430652916810326544433761622231665010283103419317542322033319016782428620262733223570386597393556204806926261549490990186394752029131778820136123596200920344505562940267258664280000682332951447812595590224907498150546186816107130817560185957204917435325140105290423320654856513786023515630462343829416956150975315577129196394096416062328075206141447266916040333053335418865240820176633202714620919914952554849399124576542508901171794929998163606872647564039950424258922977960305314724322268599985161224203128522963860527356807387080683964955500740932329440501925496328814860725079597406843158612642195027893046403528335930217103307047410877011982120184194672778954207057854140967984895876442236598000870324610819408578076130708916123889233849622406502038713989186594033597021446798852142276710594192581171264314686950777353993930068269540614824479154208775841144279738034720271631767980215133230328242744824547348700172552446404379145379821062035064348982593052152406188359546847704444427778485222570920370920602500705787342537517606208396997404279600858348928835546366060166716250588234765741304669624978562021331148402255417886406532919814200087991460136375809784817725958514949623245511429501080717576932395314642419966861194177642372998778687837030959680444328737213731350381338851706000404362853732731531254261778153899510175303260838471692420826407520620912321781825874106969856264251316957327177573555259366370958070977108378398627993887919573664504110496042583277698985859988240779300199590125019987271530736591432530540518625223892590312158567213250132383537964888666458341157296975788379140797868916811660229016900359663837745551475256449148940491857134044975740469383369973811965774744902521169809670422065633253896824919167947262625856461651380484684801003992989861155518719330445832746704698232424388213494480539989436688474397359388692338152709965096112684331999186481562232140095668957938094320856734298143755147037417562521855588989696039552558657000159246612106428388648691218681451753448914810175036504190573538175136903660707574911036761454368430955081716558791193984101379201071346637579286775940485863959539790665065939658528076564365731972425822950379328632010167220559238952575821228483057641073795349492739978294398739097112240364742429142665862072799951035143378418309496103898896628428527909350196584386265121267367885582428812462398214397484899860578583563126932097980735938849131156869778832176726743783830685634625182983974343188482988330153975748779958697186626891196002622740229568264325711390826732406247896865012193290537677193989080364631519504669634523855927195244203152222693156450363643627952806858360998041636082731539643685355478914920308132513847252211076508931410007742586771208743365543001853345006111012143003349846969838138635419350705965604569070385581010739042222432486837245501276828030298033618884644792901021930559643388279414312833795811299181840832065232190453897590962899564615855467732179540587615226478999110272634554426584440913084893219067096492505449460997963970029663076542914183074950740004081463465724935765950926770205322167316723151407512249176830550601592765541939785090465059905339929244804725518899585106374030100862779055411495249177937563097828693088506074304856372780001636105368820496877695557641899239130737965276601675687532671092724005978757706891058594474488129675656744975942683534314744703162610339530536236309377995010295894586087250089716097313156297257289776598889058540037686812586981012844455374926626466950156065235225294346942894344097334630591606250771099649298691623676520643719332382890355404709283080982770356755925558958146794470241635531034285558319332275004805779492475295638184129499558910627940512762977130292736626420690447118454765809688611421123419704964644085122042555981786475598277426332954372836584502269440534673878746467219661345498431475591791705725883598854875863839216967034028331235844596141615810078887883375812076475919121262858704611023136091221009357145341344543890898356420762552470944472174108729231526225496615519363246586502272573353156779875111030026596999112914757816833542512139228524617172497094422117824608176216899936096442084545797829366576337431397678530179571940714797268043826539939803779012274483523605707495237118162225542796547245071808871078549622876306272834426210276838485454907817985749432316112756338369522898889515004342393457100178873508015962058557628865975077951221129311662189451826383072377920800447925214635094661065441885097430672279325190061194655369938794357725778817372184006375063398308465559049929737351570556973360891724355366285875617714222298899063270288733212868947998950940975541302610855806484310635811458874585187119124021124097070435637486555567666138813490805417776814979048443336110690996638977191293999067150634178558257891117210293467132982301954069373349653702644880629295783469497880305709008928407714234917539297739542983166725085764924616550198124283649009416494466988311694474159140671007903774492555981121253601464723466545194893312957066402186335907333655483096708826063806138123149365079256170142185840596792243153001358188945456260650934578861943575985591616434998241414083369765444811601622079648932768242522700131837976127117935207816837253279232969241401853356724445331303080280874544530390663215874115595501228323499294945554278463888393759589212991471177777734661227557898927422595520189127263148172932292256914919950483217293471346884303426897777515498625487854969461153075009169565559079138486483772590889306069859301807108920057805769485227587310883358135140314260330720123570584811549366623053235359221070336230761684854987603777075040590933883291357770969629238045676308206151832974198196826731610149444890147228660216668744526716582222653716170317124314930642002909063519231161251784477491519260099676677182350383401931686521910991577306995773673731615277828891830906611788855686733796036746198651074012696392152285260835895962154244383648899792498400875752608094930472250349704457136656282338555033026425326495301632548299081066273450949904954608257686649527518265276828568894377349608996944377392966536981556394292223389877313829902358427736425608737708841813427108347905584528540075239873721764779093455260828839842024630829599534805349103545874716543216967961360771166676207609249168945945137829123216864599823231432634077873931049627109552097209035103699289640764201331733291156762403400067900544592206630914993891739475378183948270954918202764571152649283025488386170624637991227572713038413816046237676539438509036251442898877024765932739621187172913468410576193469654873249592680371809087257942465549200448039430909578628510743769213646725764835035381835356048028138538091009435048919165987596252847157685700605156008152343160251651040980931938569611681763400457386066314905153426759061350892279529455201406992174685117579037487402983310531732945860397290318141579039352938059356334674413165270644716684743483071462014486511014525017842593172573191781629896685228200572030520944010758895834314941043976837873529603600203876725741812431213060668564762507111437392284163765434632431623764236561329194617968331627142339069053611337177102384549716559247505615603639333318653667856261279535330978431344350652847601598227841608977579314745919140276693196929233060335472499586554007821898353754682396284577095931216269361335848078484852288831686988518787568627568133252371353765618472120247751034503152979830746076274351216640181812088162624173887302530201135553636528340737909945069359944599054626904656501903727525287041419505470359510754319703902857759571367943281000415882220897104631542327488816671423941029946136894711081686952754639072494882793966203501733417233307605384485220640862860397746556746722494003150951006648364340819958979674654958256818161631253108755508566889168789873900678155714187123355421889223315216479116077421954791201723070270023100759773215643465416874729765729622996635402614494631943286711168467352156980114125233853894487348850486450199540071242215724801221933131792283769382989611115387361103528914274550652013880826975123166100273850723135741715971463767736391231370320086705907139970787661341646936017365533330400052640268004288515357238851370923721276178223349531739295920923888041416751011325463731576258852765510555971575412789841362623192665482543566155798822897419797451389821376359408390006218123669556174536043492174361518879856765947945705019757068204379035300923025762580078467961636614509832815406943829895756000181939893451723555578484039198058901983619664478558153531363133418699850097432192466739113178494326051929241658732310160288456474712584708247552737458502354124842735901499966612805726862721606645679236616399040119320703600857626703133110228278447501140613739562624066724944569899806044729071624724952319588697518012468208708751656144656617849770563699522582026567783821521883076134900336718236151354238286017124218250925388317308930610882536284324632006283270049583057794745423489163369272977591545318244242599006949001737429564777286751802247073289649762979745522630951074264313795530905446138595098453850329447188204464932542584354219730604091797553792442259108341240935785073358553643623826702621101863963772462568587543603708085207060050872013200266355182911850767024397258702218856824384078687423577268710894944639368675318135168873343371129895795986705890140271453532999234530842279323351911527125229183211708582628150384348800562565493429923457716690134302519515391001589282477312798501193286671110454669037621645879558415330774863301843324064780357032374882103995087139383292179853434403208103965495023909899771376482118066197204910665575676431444533013638876867555196401465480331848002337675683685523984519890822485171319567093601979215997133961526083938255208294522144313685341529178083901040667808253020481570781502850003565638180635636843121598770666928157388377829796756193127830252577520418878949214728383097828524232227717276517785206094842619311703657175443775590645201817625586314752982982092508214966424158282878676925456967834720416436665768456692516252803133433567181690577602491272380472849556568870689503234306873769191137782116606444564585866493359830549661718742849491154130018804143104148122558821003371033911869362049234679587061228499968165085532248828694384267424601146772482486099913172500361562379102992487923355156507317082034924838537587581190164275111803013453458810791262088678992124855025280870292022238964489032008442566349149181943267603911318130052512459048721042096493659199316898505271684716186786065519436716442933744346594489990923756239788290763077376860311302524090176282403811425108416724378392096903599579035659011280191994055657631821728687225201696224509964283956885222182233481324992529222078403611122753099404430936805855575457336560668200181532755497603206611305621026654444538863276614090331412753794093084478612992583891322642883565257379000232797722656576125968400647512087055607208603773063728443269834692513466425253416570934288771840847841817346900476647874615725126602997448058805677487906963150543082489519612893544974211677151907825890225823444522836830328198293124144960784158872049871359894006297145942894167259329438295498779149705867828682152972911685671329679839335543732375959586443818515888596145380327855453426055351454596724513905041552614388048707706622105352188805181827387508786146750100406305571332471170857432936993672526494489926993495128383423072269134942205915221651399160894942844464116650774746532122698638229049037627893138974630389082072156255917576517795655453851870879927700979969356424656854111074543164172028920401371102240693822660820412624549280514339816313056671855167637917987971042621974634053201465678840423453343436909439053533379830019293552206354714257521682267325236710457892017897102165129318573917606461760203054532186777105601901814891392506337698377623341689658978971585870933280323681818823825860108731682444131939411571989877061580996575446309057840513297293893912837194588005466546231745057788302120240180381211854545851729303343911483246088273087319903050921070622111270566451622643289055656029905520864706149801449765904529424898181026124574803089459415527925953354054978326814821196099733449901266847034890366814914946054355257894005528317854887445992488265872943843661600443714726983377362853394481225038420249634961772585261844305827256230870274990041964095497883278744806204776125390516318299480367680000423627132718038340165995389055133716576002233898094354487076919846252543009623658734559527750189719447843747902830532482939209495549388734224494579940373946603731255638388937157957199236886849643731698506442631739285698392539068778962841146459664799896427738814886655499403172655110554940150452644967396334176256632663398681490330905430875476368544781188698507359841876653086895394228159129110785732410507990042087243611856265426526397332412832832964196430885581704180194192579529725601984122282700725820675991102552642881169200529968859274274578839401575522932242331420872044581245321716978413005182888403619119904072815005054890130140242569981180628960545699987597658650377733891830908314319195939251926232228628567347858524088325937562525425142572143268260535935314483080354744615114390555002408690492823476274174713686389060228721778830696200190946402063508491000581295023481076163898513678984629364581511496542456356016179343442660332288747638693734934642545627152975430867799909196302767739351411659792015601541556709469624915287119637227261792137586710479081704330339334539905129485590860470043685596576773940553752025321859970755279928417783180029266629806692978019012633470626476758731393524615547841388191995943773268703234645942409259183176326517899690888981330500394870652792247083611170461933837792073765603522968160905703150901844514005406471936060434020661607967683509014413879211502479856639483604665089788916892108285006670784935600658320718045945185912495962342998660153052423551918674828988064087477271048656705087336664361976664571728272283855107737285591580425879514077790013574986208111375624941031757272891984489924412472949200963325650307467919027177901594561264678309564404238911103707287724420609529396712321660222402731717230639581073285182106655559330873199746679208429171696701054407818013480948741267214500454941670105913207159014941569008034608741303831979636110643719229923804966793143747917391228289109045636872250854512101808336819485588133707073474765092191274197850402559089781616155140647303358010937361753573763657228938463918252543126709640583997096798219589523733850658114203750986516507469095948791812858234807766197574286035904051685450581975992026411294411198278101031889758617782816928604327271524837849396392752720211597073316109044589979199837395682263528461893238967504098302959419997089655902747006751994650235395405932954295995632107443341341840191312724932136204108375159850362864192090644270663937238534631321502234597304751893964512468291383749415119076853963672237690860201614588659235092529752751876626810946641131323391758335500388808771347183561968335311857358557173161483583558769083780224818596285774047628178225290223028989096054262179183895172886594784406203346677813357917234452091075721793986987232604696493435399457008999797745340621385589983772858020081429033602426214478602969558230612654516620898364522100743558087386940842577402212306405172488491327951316935703739566269519322208250511140704053368973929787696652465160523618495569465829256934874659401129819713789925110131684265476866461796434483754468820717394621683945855480470351720818310634540851383293630918984980764487429980777065436329380404844081078547574434717031341659379462826272948792496458719825734189909473747609942810215079021284949252108302870450796022202961794099203622227475584599288065585276728692767209254208445449536951169602135503221155605758822243088124819380834963210704785006898835381410988318381722290439645471964906955355646718097920234149302069576808932385432185159102385961094463458742992021850404813083723221801089779412539239785488894515457041761244813626477248442858287720745869811611123846504999319437009391780647933795683108586832319246026547130743217468116244360258176836501689341264707083823521607468921124628098397980014897634004919069447884893418663561069466495248531359010178529009699692413077049685786325571593631261221751477797887932778617634394983446334449753647687917397235174689548111683838885306220404981445800725048699686504474005114610574731516960370777697441596876817482385145160654410239094816449789438613393598701083982555626714601677370556727502140824593609630059811209487595625761680729516619414455204136230401415956707563287883863630247284832449129449361601270401143303136511670545415811742495240570643495251654277076340923802569827472610300654035250537222618770770545225813405813963650449247253714506702269290690778835919727083255830268062042433891123515354841318777883793131738371466518662649760986202632600135473341290032765585797754737236901299022503487065724398897334478582914993610727670452168674151439731094450030216428466537308881244887486443574112380890470593163306162183290096343246329477986433369019001055703349149623668421004766465492074933891472113157210119735155624622190473598804726242730965734656859469396415797585669501857655451778916557277261769411374724789523225733510096128510099795278161759732270613960934428162986905736059112763263940125648040036462196381224219741797803473063161797225614701578550738085762864434519810365308061650484682084565426683343910978280312346918256937068036118872574099194148840399816931953738844425049476544965897824801198854665312650968031907849285840341478322903724846869312471785376241391428391702344976950234010338119868540308655708291087908536718480692679505068534974640654611563086545452962780975579393820253581482719505301056181480479552428602949947601784193520459667003608113328433847371446137045902936540310123279840183727046848807409302461422992299461565009744086869808592822349141989858045427525389111553981093503949654817477317192325987030005847226148902076438554193991193975610958692539586852168431726427887901281199354062816253706001544660035069631750682503136012980293890273080470857962450237465437820471122473113650010692425956122786767730271377293061372977409349506318257898817803589236905248862940109641098729955392608387510899578787566970821862844162428778986032230156194585867422741157886262771410262195728781035083122453749329671493505145983535747861011611750322372076111803639097221054874813643329880773620986123256286459091349233733734716674805388984525802268153368370544624748197276719281650049098604330584195997949257580237778756175042116726999737368575575673998301359125063293286407104814169506216113920123261604138272903270389347580809151723850173769041136065379325549642622179325210768134572045307856352120223844666219961141807014833446187105540397064648968706335905371602700934272711310676421231809312458959558310702065862358390664643746691893985807466940449669392921489385673173088702952012986421500660366607568183944811337619772472319397486264758701159773279111753504707953689668951950390416702299689455672719250459870975201849341585628680411670534654593887081273586147178309620791006250720860169789921648897063506316516745086188737662402440776533287604053267855176012863412255626592333296030557334761897660025007167852686391483625890275250118478632010279132651618885290423049283524124161150196206708578390050730255811299857173394406154034079439603154073668662247316562187056459748769404791868270065642195496963474623799033013633547109215479437947306563882048403358592810158448745496025504059636666621124880200350104950965363924975639252247192634811184584483341023101947156733564424857311111806531785526539477720203078944943038815491445113742407492563378125611216103657934430043241513039379349511729547921423764577386642702204509640571291465919881287931773561140229780223085426494916862499390853685828300662931563035969933029255992815651550399402669551728865353289029231202229345488224155526007204503690808165881862432320144588943378744050765044651000437924997927484078268473007194041979565723383337101302567072491564646203426360523941992952245313378655288910653854396245427322072069912306878101846374901067356105813633671321586818284890091292225592734688554606049707170638819998079138508611424459914323309837472812803308765229915033726839255138937448268753209371242530930573554308654254128560651606346301466819605610105388097205760163896157885513197075819908816944690742907916401548021283918791898172206630037270509523600912928874705888763088239482832425341487573982228617199137623627506410788457145521371705004052541208835076297363306486945058835093989607549688134024250132047753540488862739691576315644130530587624783616949214125075609517126482295319863114970333234596253718899418337995298705871391747688442146728820672791790465142030658853434492736946973720486704813970063520224337927551602443058605028300633884448772361833758174407010844961510722554153149610919905792562596578306965928114497387233333963011378421517025929421032942824631697791773762335874263680113871943254212646978293260720066824535181039865611284587811859562475397628859102688128245137046365052396175437133438111048054007165504360724236543617154469302969765306345300338472513953240746023736593025803711043892081177848476649311817955969374295135187738242178051311075667760087058867339052170398808469468133212228719842023984089141906428662119938543267350097461757730096185960305236291509212926878573340776383960765003552242153931822574135357488065854348266894067716310198010537354014013511588210844691198607317723495823239669994380504032515454377054754357100028973080416853445605058642955578209435014874645568418675316361976175302019578887340902111986815359882869237737338564310255459723292637126613237315604050519575390410726978657705953417553239278413759624942268384124901273968426758321267894235245183336693977161419517581040313815457437088916132345618885550967801148960284658665463963270937001960570436472100562717754883757224726373432873866561567673825496223136722180315221871686651355571092017379926289706462692805628022645791823166488871921109656016166539050638481282976083372634420481206122676320982855319603296163813196734639430995818907222645590119513400692642211902371379560660974773502329595684596825311879080282235062777384213349538891426083916297974115591086054620319780606630721468710946389597267148535239947736928223864097225256783562586304976267206628136736323067537682654950024002777587169834940349477818788503058038171710374541077222099197333125370192118916717126993581768577361770546384098858654917618964336289386261966274975233236769450469062130276596882040685905365698906862508452020240224696252989676056689926665057575603849991381562267538976221122339975995665930904003481621345365762660712388258830730782620260115533000935957294775154373811175755153408147737176216006395352726761172815035553440252296440013870926087398917906546012309170023460927617613020479205756265934735430063308124028456425671661784726441381523701423692823047084373992677469631410340238772213734129393813797677330231947196445929499311544970285831284097713198823599238334959887856545535096434604395462437688834517044990075502162506363521077817120167994064878988054815723991538661201387816134262756647182472610070629231424002723292528689127119024004848089816459854841063838802567847835460695584506164602960210332423725043936407689758804639548595634164784832491076463256351863748085327292754401747993093242106576426686751519438241342084542402259152307236163205459144432821208662101925008243395107530538490133942395318561747240461494863423590105542743099376671529940038783508871652627442792649838113228918069704732085709070817524865467556944747234195389585771131084566266073932631089554751830247245238192587889316688755018303850509032751548510077968278134547654761048002971006398012237267568041776352151120545991710333564550492574523699811529834179565703295012696680088892109409568383316421477433510835291428329219355435504585456751605488774705600093654526206234231973459391539549018472665023428559593162941400413025026909543509823171563747263054916027909629717469669953895562688405431938034074541056840417943606093323734295370355996822395690484400688527505581025623088622803232356396075776338876199885553457515155859832833725251982856651251741364227525010514896623363253088662691083141802993561704539586193744266878273648988651303616537421232161696066462290301134052170657595797463343178239091044207220852153581521109825127058006771695310867855290263566517502981761255021588421197387575799907106745842618773433637255097551686210264197448198628272480238504097981873455646389278489756472618745456063167873264609425203067894106916679042015983359047837110562814562574518115923189907480828212975108423599165700328550002520591547812797260459538041064734083317033982877720466771098788977630410434231621667468941665300548392045849799237916047333628739497840545801603378090867378250249300389355990288693425710610010793088184578785542824830295743508763853204410740401226925207470507327615817092367097146728865788323318238034050337911785741702544947731929120769665821499136031059427295019510366645891643972958631417534906234890625078677439159480920276681052274043027395789099651140497053563760834992141456398723321712425909881048057779464800884012243499734638278223183579260840953937323865250736112259801874371465503211857433816177685380958162928184813944520964054618315397391880915189000559647471353124303727039701141564015061856796413509981435584344478056284404970378844833272157098093685534916150909112433112557171613433384011136545880757776725801137510321545131712645986833499696749919836480397359369110300052639843627999406762655837327602358782484419017092834286869748516790924691698783421929221069824480916376088898063509544288559031267717498937714903011895823250798787810469078832778678065969894687072998385411638064143065892516691634318521008860209736853763523478058834740978918572385983731723257607223666207815750204072614282535402355224563805231452148282853203298429576107467352912307230923693480902425060305550772711596518858289002648034946817682997969769048778964655291339602760012463679526856792194081157721098892475085152202286864235157954699682051501142165502022130537924012227464757601288865764149052066599404073668357254410645700322324368586050322877503042040658397684908459306436731489205230012589671941513280002966976010668708413237555517947811864087229878332848309696259902370695090906428736423785187296895789145671916792201472690175361517228341629732385788478562169528551662093810543165814639253421099395191471705709105714738768905576521604014792383636423462148249631085595250872277304396088355692137793600126353447685962021447012839567266362594868794339805839115194631351090411658846572065594188943171659270669592038829354589717913276059446865925857939111101954678356561784286135847322016294763772031424707548088163247233397662765515223587997229332009788167874226155499478124885339629327088358311834583809176947980647807789278010536281232729395227552317904229422377318423215221211714565724525028692761071462709341312111637572260780443982387823505306585194939033657234706700163422297816794392154717935278011780351604895581949894415349081726662910199066375432190216098192093897144960780069682535837662009520935196630421893486898086517908972264449978680319475344147088955312225848075672120368835160358301119040404135775831745665265091476123264777629102888750883220483322859363204007095246513465874846484355009524536801007407234595895572993745724867675116267857382886380053181133522023873482790367386088084103345789585976022295265974701700811513619995556733523325321531943793855903719849551480484881575172978926799057694745623867811431769748560275646185778855919979642022064292436575690288921047777481298537862638880639370272288228329653226071999156927675693821123253662199450736837123655347870058330687203223270643974344018293028661502042707415177736600270389268173558396391771191164339442437135485002797984429870132777036557126680440580229330207662480794371429824956576544452376700955413232008448318488000542241443496060447268928017365343553846100341531804670910115328072419380861124104041891315850962145180068710800110433435073158280936928630753041451636394280365546332779103950702671252123489276135810005185866769459671943744383122387817979028027171286268238153402231377246433917963045797060789312371987754338687911162312753030345541911568061587665124384128724435728680239902801861931251869305510071465866151448075470407983090476697194518063635455906051448918780094485496873769322268618687020236284998021298314659636366953602411439930360899463616180495433488484707835824804409292358614103796492490873412013867482334927460617292674402081303570154280208189226403481458572281737709687341936168661548461093883384289366051274670778320848567230149125851787851376200711647052008954841905545874374895283473077532680394002276732779991198035272819991469264574635070449973575670643920492467709339260726587541611744456938828839694818278735485995179363271768927993349013281645371766986834000056794694174135236209641042815028546908945556929653083021593715289907999565813152570008120056980472928169432997059689391691023041939614306185428070751821448251842271935792532878220192020844383036361863259163213322300239492084904423581049293443440909049406240226880111726070643829006270679004085083215615448589032431354421083399782787653967509042585498776772148296512459666013851265491708933381430676686607974343489554871082959099157039602869517264635711569187389185901498420079102496610965520599077418570153643874668894048360586396509207811734165344608662974608792696232834812791361918088699781030123776370583222018050728488345005051870523900581284498537467113422203519900075135217843310435846651668887520649155020373622094418853077427702736064755125084551146143641145745458295860614492436725153801352497232268039986183846196291369516887019488916579860134870765523367630074825899677892782222213337960529723427623810189132574224374310301400717780428982440196914931987538122322596437971059092426626583718576956081531906171990675332550083224801005533515523403958993874602142189889778618176708686139270966323243928157521808181950941352133066642870428858948789642712992913779524343650396016071035970327006727820829406311813883197797783365057056967970324880236234603648573089800543997274332724602766439039064430268914575610707655788251859843136780554465442185780189288955510980947274436488762015909028944404644188726845594914830247540560937483517980628995186882625545872141368361127194614336487263815842200417856208136172942373772184784000194885209658931873123107338590768461084348405097915060623805793619610071218336754488196972422418157685278438955067046737959796385867230916990159774107025174622246115402605160076401257978386024769082422218586359858855552785822537644152538824205301910358384790936160361109650326652344653772680192326965166112892968405139574894825691615279471400676568128966695219598479405538899677548131535277581048422657953343414377237353430640287334280701431830937612255328890318051197836968447542553127476959699068314112826250745883372979746970999321151309958863824476826757421534406615911441121394572011298788047810088029972368367072551379384067080324110136444505368994386236331379504036116375155004316655368695795046257747664290506824157287002499274770728022309256083561183334749068701964442220981008382702855017952773887627704557122179604890297181053285842602640225719180240199257989706759784373904202173828215505052469809582402274902221064996876693611803355363692378993049321519528045964410368111460941480383467140800986833463824187580961643895542759766169108553411440207406269109984892646856486351755649878641949367203860837874216004368019616247307735376275151279593437091727666420034268645044517755796577830509280481049010734501227715017240612071741331626728605679031172850127513320753137830247790079484076806992166892682815811648117948291920404060106706686369802337365334636618710841357385282168535267450804382124901758349332890548785944936345528203263151249266782403469613493119619924868874219485450329474009982236074689151224824413363022983676470747386105209856879655978979919972907342580378868488409764575231603483431204851246932143922740054423356131426422213681081809196001587998192826586609419048491876062890543163158941162430064013961292230960670895276721353194769492218557121319892400984445324642333975635435418108381071293291166108571227238614223985315220957325467915338774148301764429559226653535627737291647384447835848810881115096923972160266965785466078165608547121426387937628133748611751478238543302113441915664383124228912240530696665761122833076337280237837069730087967582127394796720185159084957553715965554278707749110782070513088691206027579434612135635798248553630344147561787568855224814387401074160717952006808734378244655604236920864471503603510291261999309885102631040845699178291407133435057065417624307826790587677175463831681495031271488265319918717866493218001671817863472863880280240784000005437895024464744727954602210472008821880965771070513189469767061577248673850678355317187348151964979906878475620202735541004463839584466522105442536775177701029708836124635740963769339675684914389122720684601131394075686785108934923526514497333402681826949201245324674249290576419877997737067352117948457993861159564888641819403208943580268026447542717942106604006595012636526401583751247084336586193167911360880034851458354022542383723111396433887974795254600031242530729774690702308411326898574914759335353594396403650108091390586992818611362744622176624947065019987332830348149906434819622298927540473484517962151920420399038503908639860321627389742568166382429464471251701433243591615994231237398251725325952238703824773970025386320004744995485050158616320364257220659741487525221622297179302643248591869999605890524866320859172541145517517150806121549017917008285416231482536023614141171128288333907620605522462491872171044008216243133759810412824807302435240868808198379369080672842361707202103496300455777303710270413279860970747844990791625325954818444750706909253482511742040656125402572807182778911967539387871273917137402943552968058562654308898774329198502129226528175409951568693428451095924372768712427742752459223736976316990282444936672360926996382089143332260509552201545307664486228570124156230032541503642668300190470183253628093337632011284707493696526272795994616781258582687659253020800589936060059392658131887668628297482040081375675945441702891611199830034580712219839958182037164955875474449270460323666700910460096986906803103213662858916470929146175252200020256673237015019618486076820411817404836079110381985333430077728849900292186448138673361019002990249557361253779343710750087530015209540416448773551711417844738441314922731716999292494846180448914780860427898177667029349513492890542984323005685369024075596553640410373775773996111092552847056918086729782569255032703757023328096410078094873869193099411602060473807522769500863593328051810614433016866672922568233174373671693640004679990802734462635789978410799634298605832871805863811975843427258682595075693805028870591638386917605113116643630022648369109265257865879445427037813540165596116507235145781491837467815041865323961816544189803068432803375023605779994294771533653177426409349871655570741561810347018890928583829359090002922577976583666138794207726868207272069872915525111060774376101904505198304124330112697216057066662146571735879435659095276210288557618038490851609772232392035872342320679185905968010902042524352944626105326862738622315768286010970374117916962225805978564752887021325367745843144979192528550650987250218766998061094565670209353556104378758239982318280167202325353812389986434841812467830007496660189644744787781474225641116722772066526135349208938465307844746464156420022704019878438577321172982134821633313946294256550328230155756074816201198876534733593080619923932104246077477430625113918100664439688089999575005711133247412191227022009508455691583977427589875911852084822762540745502839587849854388085096815748092013115290745050694893925229579313154895035738533374660509275406186053315270124344048052596178226841832206950580003701681156022194326846975906022754677924700122956197742422375467796362651188330606117973567723528273786276475653975823667957865436667421329730071849371684318910304511824304879027462127233985764506699023541518536241517184726961469804709508050845754985768266353445256417408415708061134806767199813801615197967648021923958028299692494926216304133430697038805366322461781460940844459043602764260641629959192600017384286850289346183452603881755769908225849144688514552106360302052604144905783190416047509387108370398740164686681369756337398353034918078501554292509760113106056466028111288522290460193846594403839571134847523727074737686677019789202358178230382146661019619341978782842042887852507005251570476675087424150049100888935396431358092490821779197671685260431961758096562019850119006233555151735091692297130353122915846180440583408896599233597789621502967285702833486632422128189176737486997196300981648429730355901276813648730045407119162764640495536743829263236337628022627736684034346711636631070790196768120285662081927682868569207138982227600052067437034892404536878624571000241884090057343675284898254763301420002859027944560889442517764511772832031314930386263604855303392270885667450734964322827701414266037961690582132717149779257752040099615787657781214285563575272548772225437355238493959501327671065404486209158021689468630755410785179519221790225890912204140486835893073371400442632873891995609576154752012282011794242400809517068737634701111857208532833666238225806778450881134979262483724340691781499203238611784634194452149891351621456714235297273265889130426465986369666210124482585887301579483130774301297604369239678045164538146735573224415114277035105462552325658849732873554894787434901295894132716986963157440894036235148948143032189949423635870375254536353178515534104011312907235213888174824839517437171015651221619542101544722973041839428023036713998657247858263863175793862807488433031688864153015552188688758359397073349726919078497639173259077253980410288369196298852624426220316756206530561747636262645977497124003951122262165170905843703461482380246945598300116949143184691315184262176531374508767183239488302257219845861336914470207947679718716098363097186380237361345185098228852430850458049148520990922215307514905800267697961939923656783911696335357080439464535449577935118057030095528068384619902595277869904703032747909770568003674900885992806088877386250012875289914958946863929921971474851816584165055645922210279195006919254103594037154042499693638268371041039135101910998727501240222373397949648114001135159361247179543354122264725865160868997790729401563487796207954618251061118627945287575394045982928074825588229273803465352588442093957041807848007582758959300801938885178862607968461823142878557478053133778815743790783839965324112285501963565347410783299461074358691079969722489590146784578876172538973623139123259042879242009468578684695811444083830191221398366638588930515990530716545892522390168357147946958847829895021767274180444187927114746713038811313349381898576688374532803500684711541648586974457737296689189520623500947088675535877104776211181700036666126118796922796437379627945426699273785327503350208560576502051531521669735460771525741418822246950624504410438927769013357573721642759641013844711847695041345101574798138300002302559594609673720725549916812982890090358475987845839738985294518990373780926624444124317717050588539633230166929011520915952855852396491812655109165069113904920643049112131593376047246804668140058529295772266737723742534232534955861818271971801233796272467528617665063585241937325071150844268763193762019318598909922172388451217599847957807649145607271766765332237750722981978366354531722196745670746895314970654858803659615090293097461849466147922140535506163755820810210598698923861410138736626738221405893461833410324637850448848631444116342019568896396282931183060363009268203735389528648588543223790150066725956641300181592205526765108033349465789354485562535337274494742031188990529982310798050611624681423641456773487634579805321159299133760255311473021769876155620499420126096071960958875442423675919939811277499682791021310684494279457466072355350878691741959276429194216521548039594831620799313732795649450543731359613492689185836632631266424835047105953682458603975229841693485103328669964362350296667398068394097274301597321650317231055359447180619943211896698489165367919552875167412985820694946175443068869984825944185968070567942552082583205462295133350133962950686120250679088208215033272650265165118328623017704773234903575746349301108467934230239103038695997343061680010089587041155681247536925529509909590949538451043858488058309320327321592647044676057500586586342081661753964947603082459090688160606903602642843893642081757918220440567702711795773619495417330580000769951072882498623550874788455095602464221535704685637794399790246504254818075329744313367634025887347410366126571351209078615281763989892499641860189836321243340602959995663953519242967858496321063419734258021524910620389514276800769587464021190739746234419683454513748477866756143235646816596969871909909916262695180572650483313778899244233385451254333466257296175092707856086037657714750312724097680878240638985965433532452937358770174702979976506243048889130670496002061100455997624234385067805669735250617358628962078678873114309002737049376637264636884562035391541615871093915419684303848628834606240055550650609759371927514257103093375557673182680373605980763168519847393818164921066414264373574561708683839171890776826542649094665880156447061082620460864552414049476890294203718344492780048112846497834453228316557472203693069764094860505138699888069629560290537520535283062017961014110292365557285457166352998022321366250835854350593434178747450620982813149031493214402428303077528421937168415111902322481704054016255373396675063638094203586389692427387665996319030731445474199605064864631589096776473816942032454105083518335624585426533527975972700697470566356923399279327115757876580059598028539681914607854112472753941130268056708467608123187791752468229446005372574775629501501475784693318247805239824879132465322309273781019769418124337538513970435667946666240796306389234126137703578899682368799508949567877514390697086652097882236541984241301515057192702574441723863471914465878021286135571407896690504793007136473486673871410316421426816435594394242231833629868698338167269747987468695012924823337751373163330478987096984201606811132939049625985650120711412221641707573601938479100346100003635042231181180619761261093127627590146162285779139678258461982165522994198428159165514312944277090039286975814952080147213434169668283117362381131380772869723286772599964989651242263089927385007100782885679798335097119489402906764201709241598676595955020264599322445804049486329945430395122389706472885423116403885038186949650863717538393753397014925945552880493946091022225418907976981456505480360865708436847265771379858355979390821436369449630854208309227706309838425509889600581757650794120781646089386267179426142378198343187701814370267184906138469495731274138256687858234695739571732772764861706048752079762066345447654003261248948377172654777099890235875291305136434751306678948529533490633064374773562899177123429678461538330798249470236546287218258289808830203925692888348445396267979740400446712587093463851333946467380863314832490395906286121161944573141589816442195001714431657947700513450642140996134156332623908305550503066201481867707026550646181219650659812023348740305152336038042860602485917251944276165334059936595756466111351070275395772663765310197051616616933961960026010758244832256444804897571008940165701942881309645053734365974907537381565541272625184692090537607491478916256332734399994166974206941927689034849053160377680776674895335807468760736774285641275336693516228380505756908270625708645555763246745079693921449783152207274495707532403318591289525737118321213842187871695257385944444248023300301066422520539605397895360641054138854944574895276207773492448784603667139470268479107879808724637867866200780784831494826944343558003293797186878235910436465087735837806108458644341021791364177579752452090739799104866172461883995722740740311765388204632283323089216166485941062591731063963747231616652322883657217862483410863124477500521761826997969944842885390680607265766499168927298166214301520764402367934258047709551377443048283994162014918234762414280623125718807330527376179498424296530855661994875288791960511563961108156241805252421386622029018228270340301263496201319849115139156332834888373614644988672398004100255481210677588234311252187922062062987753097493883213752080915523512384899205505117811181135555703575216444401831899215679149935414560807537158611319598227217783428478871581519200159937159159941325252996607595458974461706276773159347869358297702481987185039779165253998225038646138923861607043638631276752775294971024245088894144418246768761103956070140151180999594203101669339758085874975204928928539597497629446632956890738945693908863824865178326891057614565389556516161306224536727485422835011814656867147279494594092844522004368315363859532417186115572202501890635772997364094252127447480181365256777996895213060083979314494814089522218615721031551558455855261486946697883791649921286926086593948940014352943236234925150771206334323613721763685323462895971452279747351662038196418108761663608838251203974168563320525442003127325194456568894150804658680252862749804769496788874332057431087569430933312476355987809523491080283073972724848025742549012219411733745246799792265693925129512699257795582860888513847996014958480446744968732335920447517276538264722380675118970791325870473202038690667625938665232606784524067964197402754982858337086788422543494671852271231610760437936346272262652070472985763830134580968374935613970861912581661072343703234898585178602681618470663942715597620278346336289309269553840538836320930493190050461714937970204408524993764817365648314740920539025642648784925025604290029521590568821628122086491125669889297388234878735298600943338074304112777490423695268428929294178490966167663557976834594082719347118854758461139611104077146126656385968959772040159154385046413095557546499272068477781349187265610717298683591543166134315928097350796887544979528315281528988705804067060387912942346003776143583632907520133101703602526031785999967201758599623516053669925806847896885706377336181630203844045904055372707307017318441795694462422380465604689209469638847290970587111752736494822030679185850048425850912107573562312412907135851729328361591273940091457999244762645350228050461856010740954140722033492340332596133331540201504447246057286597599570140293394522955134060254524720863240649427938638708809110590738352921864678800501259578799362451746095589430852194121851987148370816934961463513270736995866252800992327953143462522839104674122294756891310814339707623292783622866745417671273992819626852494255126322093510899069725623200694345712096431142192146041066093488560968685976500983908109025342550671237866921500329040381774666655930855526878907557845487536933534396843478472258964006483581237702908421015566435409025156862487596223339570481717074987559726426260539131409006267939444090577277035252678370026445855653357141773790929108716821116711789703238804971401054059114578551187970300886782485495063795115898642636190053468678605524741817027301562218932411889743905881186773553736069046391785342100199505554035398596309394947134177850957497478065563384634347507703789781216965536563077114585139035043265386645891291701595808355221957864732036422586422952774168246294464714419477152759469732835871323114365276778084823371056396594416335772706088332891105372575845264265924928573530462355121586312265234622615985548692314871888950411650161137438794713436897589762181376111534141268286430616621020431157794966010443449319053864604157017943600371680276102466441327015530379375399082212123701572237284230419703214923001686905010820065095226431470049736108161050261380641448658466710123159729859780024000380725689805788736216130254898216384727128860264148015864379798623663727123222639742945060443146823824338619494483137006939630576613406856440123411431226247097840467334296287243122436990415251738502330852837683552671179800589880321107132401391223326577571091407601929788211082879618704548448725669224064277914658583997926803157188917705469028803874086411359450479144561312547659579889931741774269019124803584830558108352680937545204340083807666747082692362066478664528784104773486940799119254507346952793998731205297084541690834061707358947209080374351142112652724459963008141905576183206672458487269503106001495354353197307430510598319210332451251713692514801023490119220799238936543195224575473457296030410122117846191540634334534266601768009592250886592026833787026074096969382813385085216866145971078711214147449868097545379496700487147833793270919487896826244036584554099742850857331353323391965841315415665542011632626738300903908436840828857706785247130250349412543111727168154535212797012415126061924810905857910113091997435694156021076336695697827917098049516172225268061684538776901478023397322976072258539601707053862355659238334397658538119641321482551089242755689056709445403332742570727688402466468704274389402648116440401730983922753813785148057611967919656264234750331779825929087159162540740800578395569537104300922933648292889654879738371419469031641557009993239405231262926537897147097731674673515099588819570768971569387576857227383723132901088601747008392320631969314732805220184787482402016857827479635222640347167239944435593331712237972329538999009527527146885179861038152218806575814436997987474929191490108017162089256280182094292292127447529703544724025992670776647231716321610811277148155973848655747044739206787104927006804261049927811113708984917871790415087660527570267469642521712536414231821087424141409663223488896907645963348759376367711430630854152450471320783970104088943991442056829803188703694102177706614805120474638165276531035291341797688615350706538989540194199073753527583346477203581223947747615052200267655714895762297972963162181380951481951786179039507697010277913136825092383632876743366390359690741354388074666237239250665580808037568357532202435312174061862061526534274945812948562747247115789472255348255429104980694656310747178410369462967930420674571631082544454526621211890042194823598880409051754124894279548456243898434351020028596063023931988917837543727839277388690235861375034400562138206379198537664977198608685390793092888446784223153527863203083094324982951823400511279832440005054783187061413467306560353466498134341774854792307377020377029135562920073843847393716653357984234124304571226328983889635432140497916972063644871459300983770755418120720414567801329190259446812670306303004539995204826596863819491200273505507590501464678093311457546133293953008361464750397772705239423659582133170861630624360177580067064107156688875647704753351665897504309834272898907383442018572039307913157036453036733489117250492139207232521054632254779646649121297132919760129886307267577935382310547933031169386525832116358696729764073430840771256608346482129407641376724882359359504996950572212494748972373307656002572424046835796423226787432592850503567457722696004282930515525120719953645165438862708254889694830662894946188693839348299611433212277008358537100576613144399830125212263759133688158889434845611140495787051548352110410947545998366374577816503344157384301692605269407083826344039090412334313898843079487920298377675161665176360747481891286160921220508146978799950985582023081322851774814975172728432778505426141381862333770337950343869186649968688754975894900497179202601800083305822709215990851848372741910367312681584846815994316803697939010140010687849006881922045253747304750104763179904379015013156770637905305409172302560956242112294967950283248312376288583073896785844960641979442967689918590015428279945021565604999282438645404544102433946727721716157995623060696964902350501105063973490376761736891671283790366589075105983668925457365322769744696057124959530596413272273883961120775161578120721886414895358505671016905954116510170237415249175190232994282450844974920740193853929582488084500680029707223219019400395521830743003666517381971702517891528125849303144479164628300727126442406007175700370468439049200822409390626662753335451200784216001420311340140164089496262251537008113475816915774462117690820714687644502739542835518593012664172778626398439255952328536436021297691183600304846075162733559901240173794202386091588443805122397337215772400761148501131235721148771732387256277125851227384515726364162836114896592830841716567625551012954450684615269652041485329138834715099782372933291803322274948551391174235697507588665753715926452625944054778462761279682573882641277470678477219339513828940356446477562347254366670300251848942097476181963824962308575058456057445541099893297904191729779336783580621425130892586752896092711497516863292506529220802429287284844075520227544864945706657336280615165837243241345324571081432101561056350494743702692386870797939280302855699890083272953855471895272220335200225227725377131595436563550852943529717857507806358672888751479760364182917170033717993106598821121570727700471586792880956505068581563836118498524159939978217936885931259728947412385047947274475627918883707480950460310046842955005986102317454197848052289085070893544604137835998797303346532450253432048158342763744356555129879513899285241170730911631881612557491195096910416412590678498500275750084245205187241847619451793955211584809717549743340829057989765077997482870021525808133673500898127767457784102337313768654886789089421344820433874962373188267052461746870791490676473342815882035202252672284299535481556642590748553455603986311977952328061389971967909415279341500028870135188691243081024280127011831406613351521617191192829303845004534875590060844555489849913672237993595390899905367417700156626288409801326953154105370153457548588231030537225065488244736674869772463427093118308369761638595337882860733104964219614901037800517000624528828852870817482286458547024532321796965046393030739800722150222140062839823129868084028592600740205978303524462324381374049092841260973743204021046548257616509891885518060704418776191437827848749408458250971298974835879739017558982900158087897641110164832237815842761475257141501349622939850442846257789965684391347129562968631159997556159973457328552059950037137899814844964421448231208817861253939602140936766762186897406732978411515071508936530206185562957290784180039840106413383083699115720676147917045063535227879619019207632314825762303111711201844007545092498957900358026948401038624330742745584841666158741462339136288412203433724271057016091015018019729733993711562639833015797692628165752316386632740748160741048746702564055185477594550371909808193623282060315533274698777696868943498663573278566051468966231264636201632688146738822550935449243482527196828867016758111293464892457946213936104227831416577593284014342319380850550717004247696312452261268105678234484342364359048902990092549236686544962088013754636149477161840706725249356337737781034023183390038134347599082269094320977720193059301013633660607942909318672722179748659147125330703487449940470998098817907762382549456013264698083634042779930115272069240896063247909244407784131946018972067851790766192923948308852737903041475754751735065525829970985203910805141869057396655858697558115939635651267919893388562103481203348453391245063282749790349300433604449803231699796280796844386246627812627856770991993067495576207057088643229940992460868358057428166924655382913712995276772246143191119340534708928974953696557802451438220852017247156206592794169898924423208110147722190177414093814132605648546858450469769266419559645234875889527233565266461817699506658623378612116843781324246655434197282737589039552971088986019765265367112884524871132812653747717281273068338985018515120168199923730847718627269920435253442000412287291913637063609225332368083150257759451766376013591543651702128930795947219079319449054143721379005006284376699407202850496494377732876787430304878270268839090729443428009476104202725506234002849353733704484173506320183063373354955188050426555001000723860944152087701695682405974060890401890267627111318452007651243408767511681974489804888790003596866465686594003065978150672951687810843284199345195040831250867064880625772084439910084324743086551264730795175124329119036625249065341022954267272343203913345838432625053705334567717177358731712740393533585484413212962940438443892251810204970346208549968933736087485684839594094184119297476415957572771633853203359103335042050849881864342452491141834253795289281550016455584854227282598196250601423203381296956599335652282603921556060402218875822143119907038378695393587353761392434850231209567121600730224278518052586015065397278081237307917490715115076408296008821947994298331617579100773326746788054571275670163048191441784898269558302780146091108917697867140738770912315258885264098976644924730474605517576687846659903805280655036520921376044192743439851755668151106174339787299133995866962886921962512070807888971486841501338038577147131877227092230568249210918458100532928440614593580603620388917651142737474772172020924832168717261394018084730073596638648801327436997625102678420512022638781805792052893734082725932388025210506044308770182460921295470579709309029250392428742786143665874800157921846665646437468583903121225382135823522390051414542621393536336478671562833274032575259971836257023844146207598395387008253728384602479722403444852256290990024492818223668678879701683958477786918499560288898859518212268589978525266791097284185682876005700106292210042240730933993721411809184227793420781923256824891488633558024115966370567427615390629126912128985487173017615611360765251523566313168289544839062078274779294911708393717884002316817424813389968574119418395539247790505077080238301923027006529398543425439479208970652152854502053997255862077210101839491430920171266028503411623288566726707126035983875266014305258121963030053705495170653309618850311523642736051928828736439877752006771625958095121435606825638944335632885538866280796263015559791863950226675550905980745388853878680414231720535325163613482896987674587645100984424650421753472383237109838212273756344741677083074405189364462562055097015906856008428012216253942730416824530200544716970867492081198955392909447582407907033783780480051275728920098367479801948045030282071527542785043029021064801558190025610345077456555842257223361601597856117394651735229514214872642467294475723838978127415063375547813780771796095503817628887468885505289691620830313835474648321936531865365969089052931333587402063656293753607786192336864461288365499546776864581257651944207787906052429069984166007876747652397018299061724782136260683925351461763446734097037525212983973812110230248842320360730753601955746572803110766945792662560043039627816065680946628375941274625896554617917670217935294212925164824116882315124455060193430737520992323169466052506336859080970092928551960597695995856067285500492051578938295067404879959586683593224347822529763672984968911495202347787656717871879741206803140746728669711272788999139349115178082811054048113697673854075315829092709073902720158069645383733201972823763801580958481660022111618923010224131293273429116223155698557031856342676979422975293757154075391396874182561822917858063843293217889332696320192155108714406003850149499997121926753409585809567260229670850475057375589937615158062193353970173838657778709816821352096925896089295362165043385507711500162162282006798242388949326535552966877262790503717905796074547216479802004698377825912051811518679635748827858028263218481016502065178005822404902175401985368896726149927804589197169420795519550664387357106230184546231835501887895743425602064149484708437426618733878456402534702345421529256371296577123907668905498611714490727899443651606034067559527250396328074209787743347684195543933606693943618138880964566751183208543466391174498650575647588114336857054380738536928250847029712868888133546716786564279594019922341547937585871805226273004264227187477300987335562251074353297142121904918597665809729761839572036715877613212371826758233364242769959494466282224731464816145187070535110631944533033200959784889149844129291394957406027756496903149594358510897171159706840744652345640838193498079082916552043318913672655587415821858901710304241273547835400920768279465767847709069777467734067925159266824915350384830624580671083758119988161511142121009826376936111622529197598142969267432037116615118840084125452823242187493877010774146938249895555288396795122076705269015656777804770655486354332429909702063174916570046177371534463478556233168721268109235874110650953491412032303249371799813359412865467290222954423927442398723579277685127681228520519124223765125803043184605420085472969440757319036163876920702507739399307829420941949223662393010299340442124517635152277126144743260050567193081504052492929487891783201136291931668227200534802985773895883787575962140050353687459356560934218285409621860693461325620750713869244316301347179371004390340318977989886959975900235134351398762514280966181108435567414584220469560367736973033629736837055494754226825031136903349609835683362740831137666582089095402683837836479796799055498080225730982943364428992750807184681411313043391135372805014363452762964630185588633388521824649436562880948799874065585356032908214920016848627934251148208204392478709584179839142815126366336177279024448339189990353125187330048206836048316726691678899840368543297294988272949987961169538252146465696253392715962032295881966600303904943279522991818133130424902317178834792133654597409505427606633657391912036602154722981419112240511335832821808120755909146329431508000198181708083259183177485790560896360348453877455383320271134437052895058024219801423463183350619133267524870390123299258253648958934403605528665729860617442470947478733134276414835689509482209136946175746888249468074810958980176795859341198488726429014424979437377316418158225387961286113298360760048401057876816455307882175070991661394050429314026033285637237760537503467394237020266091972582722603212950396885425102354373533227008481642414191124214926313791361356478063640545530967227489282425904026591642245529128335537944697206434999808039977158061104704464248356790471056658035399268077700831784334622879111281371589702422284377589489486096321589031265099301100876162686298421709110984331198282463961341179659709412824303918620531415055253832798406620436050261889307679729430476260396942396910331266710747880895621839011832250873479458058175500285273639943023627516884543371362662182371329732582537390773775634017278827381164599356923020599374962551637883860147444534749558719745345919228924897271273807447829422633989636102304885233254782177420985459946192008850636962428265769158865263286792881807093189929431460474420847812513040250571546782601115078848138751706725488926132480999587168615735491384282011753882470252657872896763609470615629378739668981099437042721215616106669228859272728749097968035566683115542771994233020356862807735949338569831220393872820001911371704970115995669162397386165322872899034197779210327036655029317972271215570037064949526719194561823069691830198344123210804285459604847202885801532117957475286175518803865363252475830124771256238004604206865576074250449105524613137829770613526063492801100187557945688468408473682044186621268197420685747175675272950823243724571005351914080472339400771138023487506511880853954175591883974607672557917312809663754997088778106004114775571364723087375989833260304119370192217000991245856010974886655012271785294951266768806827398940177546637027025069650720871615641986141380955975690486728462471196889453606795707608384815882616097191084112596263588314022896841821489669531483840496078002507284572806597894752899082663342103956625333882321128931987312399609996654738636314589942856608803600792511244888145620310187864473210983887292227783394167748535535277533870840076749909674786414137161102293854095860094753031265034605628731398748246623738039272342865170140018396734970656972226797544747268154987561394181895387360351141734024696337817673701315610462111959606689770988603456158474298457744085682226845166574472470563668527014785662645331419920731714938481834922772036630929616009873806819559773392544869013268274086010230585590029162829648091512079835795919189209318766846745438689097291910277937731459077137109785251907083447448110049258966950192607598110707808654180329789229469549513689267868545165300621779529477898140033159511852244164519026563022131048683901197234059868486423602611592541470552608656409761906126703501958726135371546460148833107228590752948429971824357449133351882842388483402544273720206986517931572364563761752842405072983759441252416362393576223097291688432682992097165533860093588091045836628893386600553123584127157602306203560634923159352964201787147762220845348800787907700051999018407051339895151887450768948655995756109847858903021222172041133835130797113796332344771718322047664252040301382214179293440332870901813792539368897426859769178415984739233200692127516659457810042439202359459511729108436734355656549836925426848416069073688614188109753336122601611660622940322157569222248807657572170303628500206493481957665114485857249214473412600693261234119108408742887175793886093402415624024453207938862032527729516643377549511872264177267726350036077093986741424557340997363033205202383846689587599926304239979607298832390364263773581540098886007586415816146439538559824254805207440869049537602825384777274178791632633659902838500704853130986528686584712937340621577871543569819377317707034457046058625747001433589398284547851965393358088835759934372646256748110892494976039126995151238637446201119250141495325150188415058256999135750025944190483818106311378931995513370646985656498302436778058083002152603220298984026689735493307552267327838817862542882566904109775903581333639695568016486160897713761713300267267522422890600573475070157666732884958400352795427073875696485855056451557150121622676321734078450387742261666705054583176216902825411893790638544529810975305346221555952011753003788949152507215649640213365559919603728950405143995778722693598883034243183249139531582226407725887137149982885722860305028956051543162439046913838050641043862363516211334668170004328112857819240728534640127778640587305861638915523805923720932652289333567518814164924731112580931151090671680141537210919093922034965234615717394594467085724432697542167744731660856377226411734237776404216233053902747345661538040181450489473579427054227054620973588004958318198550614287918874513025701502788844039630705947669542900645970345179695263360252314351887895789086057258352249164778051537070634252838593369652332442752037893769145922422168223814259435919505248914849524965938940042189812542684440423532452112450272077874588795089003440877363788837635350705551168652047734146618399580541077303753383518099242697629022171018528139017560470975278653826587504079242819004256477341113481587388152419054400377133183906455833366366869450769770316608985617240254615935292638081439139024899669418978691922017572567235263210032883473105241619460767672214619189513355990431699108920930628901152091124204565743803424461086221074411053688388860512312353046866334813580401217139754579191035771325179933982417686939141042178726099037282689741342046742841106285886327239561457081796957776507544062232010288009183976945853711848556480050704439526189077233723125428013292949114170153925810157031887030076895827065018695065757712963757475090477953179378719529568930550871192934976451424060374454549190581586680102688418895489577376484842259914470203948012344407856471406878736137736947638241190835942801451237935809844495860756057864471058388160713398038201123418248335166252079230165555320330851315603242482287466982132182793021024522484221460266370047625990503009630638238772627745237698780688910180516598000892295647348374024799682681830855806123490860663909114286226805533599725136608956142183412194521100071371394897735897339886542233568755656700244557092354694513417626257014331585506009659285966571423153825678516400430535336496701072611614176719794487151841759625606287862371716243957394296720051283231199332992968617448203568500084950056097042206728117359453141259195271023973229427793840382524840067553762227453341603157550627321175150666541031309865523792400626840557515701576756349718973254864313940709536036296108643914770312134661045480213311448524884196717028036244408451011661972533526479671327073849728819230732364531382339756559400720443412698095412178384214446487327281190314974846496888351890270347310974283045968184565872769901399407661591517663572172997086436793714031040905863831941681477322647645512832360038152687785840065379399713624799244488868679944870346702675078268122386438722818948426802326757869731167600978286450874748749574260916515067034520231101860785556653460722555042652648460264294010291261680166578227775157400575780333954066982207869743267390595137465350358530307465717080752162979386387395500188894711549185428101825686624283445191972253682525939885081886473288684057949727159761743544446676346410039125262294969769092741056004613852922394898835058296504295927526599817555783392901443486589681400747784384784508688045898750267004437331770670885320406146872738923015502265308187890801676220712374485001854085458548300906889354216559459173646281299953707740228038263279038688024132398844575223473360386572627692531603799389386385779330928409674963304323733387606829805920959121901804863083563174389485245165328640174161916715426562507643727825588530447177864214783901777468361323144414823766635498532433166893122829679099192227625285022543166597013030179174602252265587546223469935975216548109341920928714036931908096812847506793097738349448767283004474608064831785712094699848513694717248616989684899035623360527770081809891533693245461013025050391141586114118518332215185684690637325165244261899551342693528309164619098901421132964442024706911523759727179332606830196036663040416799010502636266114920376508890153818659677624409269426173949637049290936783253134188115224393341420151977056428572891343632658231474913532318077023795040494103865671601169321127896513196757013375731926089743223812399832769520594636523037851395496052204079303507742233222552202904588662375752628548877089650362650560270760927682851207861698734293329179568239140996900290331763615011418929518175095496280088266411146410426808253408322111659294645690411585577166187356657243675687469217065039812008504198602998514774388510398751601772687253003833143437518803446509591706146006294845474614310859138395120267784524061595563669879716596649177028631184723305075376630342211753077068512369942298960805086811201390177504184457887856777951889730475635057686136287545086107589517050477197201188605880490840077387103276129410504857752865949199667931247423428983877994066716164333835985021201474503207742833129543827892046999777975672722764609073293223158947746490270491339132997107771432857194836569056904775244908489762353416201696361278740710987852913782969681589484184879544627602816428428075328119157506149134569108373119951666062878896942759014899779651788655210047386576928762554370915076162106416498514363507303189649151307000496321521827285250654951713588536507946000777485116841200664184689652050341654277050788352558387539004701014005565367425488516555289143964491351351154202046390310881602742921713014076599560387462295736777151877764431639869718294458721478198050720936475379627621709204751594763137938479635103383358974387690095204835861120014447829954933372983682066417804877897920627269585260211554892931780074855997356953007264610904833141851879869103755457350122232576020372766272451440368334369240573236112955698162937520824201914579713628306349429093535230398630981258780838206742513882667273695335749452623376811636734500427850959264312802579819500550675613383959882456267788383745382937426715127699103472181516218084220014033433415870804931129791634349842006670271713367039389892763400879073590542162043076559052166470085101132847282762312222030901266447571816255830095028613767582609924350936668653142064484031277997168300294063405156563002942915008317865568111163103592621874181087201906302337062331239730449134826370092564394749660011827580740148035356661729155198155264023793479153574918019581063246042256723531568221422271018284925571431314680318342354392413337934669975884442703373544023258359888734291531036559050776567724046415838751790959207251456591012835852525034414500404338649362952818657775273455926354170621969549535728247593831841956954497434305674247042805923127457611090503129238999086617204077061245252365573903326707471138473248446059681078070707673693208308872862563264026020618103565171906168942891610311042747848258362609030284122861142694902868178372831125013904293056922956358218054811130994629362370121863595341832142961155077169578548105119410171774521818696865783941892090189275498853477612520240818620134142189498497568079355702016200023950836348707698386528608952393857568366831878768217057123570429424017025753777956339980085661852301628866870897449910582810037135002221558349167789797469137412988411836073978474459508487618663540209126184511006976537793179388998630230721111685411825549187208220871736343506264280076219124179787648551868847461700163795324788819263217090626191367515333368146330673109442312562216733793047320002815760072473560766947266507482583179048661527365714362995691126385354715245371721729752298309438242509252783260743940750032714909772610744779372286755524128847000526516043685254096558221979320182474516869066698981623557928550167457132931239243558543448166812349943267116893645540693274447475032666560324863972233344969420210789190698641088444285475858825803832121711313236040460090214521557230651972610597280612690328656504500742158365583664688503900360937592379144655624507677972156376228574278260427352915835921492222006368258259043291853394060381182018476759812036954003773839295015725021397129583442496476548751218699912084662143166351060439486255069813355485045369647282963271769994121594487948087929655402192415355632520256257745504086166852301317540468283114702838329506806310480656860793837300284663948499598024678301502360580172846740279363158744779054831002680967789661918730308669335804018458081410262271631694538017055977189803659466132479726595388116551328535365417339819364229575767750099598385838160810000372966811194254596393278414750086445309739184174364985302972177192079946130646322774460745014399286058282590430133815688828693649123918668834594824425425900218179798516218099075617770746930646523130358849094094044641421474492890234946334806438389936096764174034470963075187423801417512271274697012757719137817408871965878593897171746945407086969434132124793671619881617229417530150379307803484908754701540708289886805797420802449962165123052343051541393765734097652521788250932944483171935535004876336411058392315024882167432533535239085820971064642143007012812044128325441616157482603081726507585753647787331293859047739273714588927668521463695614458927110815336141373420472755100508344244322976885990378432769066765308892164238155902290116155657202282458510773319553768877585691213815378216884599796229493207338238374969282954976824770723691849242253089540349127041641251784840178693584419852837702349282317711346226993999575744899722725648636713887908613417370299126047465848819240026006870240261191018012628658333071987141930619831594223324049768910608112638309315638583385165993781011045331307239439410356470084406384068510371960530700825531033754784205878361859973228372150527067983063617111079968410516690617327023469492843443346403745725067012993444445666519837257040674928163277600125863933196484477690538266439336309213032876212983007970746595663513713900706885922060146367865471320954442722360801956298845666126034329809466629005941430277910266119652294694339834040175827283743493102259735347208629760667383564536445521663227730169736158193276949391925987572572201653256286167338669399049843722135661757909587284539519800653753959432860184511253212551328947090445706670665072468539931788120940118578960115689925063302789358658952170853831601636403262509676815717582299607550999773950558388862214284169261541503835790230351237070218356846226739099791660619562894800671715146076490306409741393999745822077269560993287201050625202438381661125634337047278403472766050698234708729280481672260948356728897509860463144095753003467269176936190651465165683347958100983728648176272210131415018269210802991675922126773658801211285832623948372837708673808464142938040846461380699950524725843343227222689967564234029858094040650782983231502978805460933018686876705696047796912621475640982456550564606009556322687577386708681567149822198895146991586434587772339681690048724880915830478082187775649764928466006209446137004733087862336843701852808636253304139348224301926218128191322538811351976657462370482790426701794567890895364938024953909015867167189111444193923668448933348505808991368898848681128113202552858010614652330702513261320463657506774311186264511563984583091878757513745815567508140398637012955316218874522055623370535784191574631820449479791659518260669645453052595410854868088677398520659898245007023500362346868423273752434315165050810495207615245224252610277934105237803506110730793734717871041255510093449080558421751945576758232784483517498279680696004283096834232137731297541492447066530698058864477826158144085931332155348510587648050073596166217563170575021718588093688438299077723103488707852021969631873880781909049187618183576136288869830812753647549606382959827410944744825860010182296979782912512977722617649119863227538890456219437621265823890010952677516114442731794732390821593157736825446387744785981115579829637871879500129933432076905984463677116730209946188135166200081304966053727835196917366382345787121994414387792817500370595426030147149027478376772420478838086181685242323037721165083470071841960764000552215808392367535277203789300346533060663048657442305858489251231385440533555421309810697830670695865750155092485621362308073667157539234020635986664981790313856597518348055022791151201474913022460354237062649746795838102997602821806645993232893367629222474282632649980403194603444045122833314643781309929938914228869551672448130424320591072533083005460873434745319186055559507264471427068051930627545510952646109917728051252764003067145243156915361843882798231854831156877984327824383534175378645855857904370967248184586931686884668994628697975623964069093636216666755960541039192993655414544175392743771317695074454535724284007098506223712170613687662365260585256149061679191493722287969928699209521516347640757061713335276371074726613256456701726939565655937937430238230061932665509946950252907078430799061787565481390230003277004518800368136114039092005626881157665248255306444103857531854446487505317359578176299357454570316362834546376759842880581594995450429782600637683163996964535272790698913207912812098041563497173412064294778089430726372114601550876065964863581332079070829417950502049615578090703693033708597631917791188703832880255194600766597136598345195567949589270384263777686107770024469785632553210099493095760151347711189910493057098534716706888292662000096528282339275486790124544971169575542922930990359791882903438987152500988923823710765763494126479832856324679477624387152296918926525661827598993099559220437205811989422365097274555327375322951459077858460109054153414952841526039995512572118805154125317468495843776968293323127198237008217172564162612580029842636867760345942843540475247740188607587814775401597776731692015513932755343130335010276880572242643830918915859958227139735629658752697372975191946950836192322865163288529387428577903508509880762871052005507886395208238786226994607539800603554890055342112283026445704212227885066022035424035643089677199500504114141042438712744948968863988691761372676488490840321665840908264988298771350552077305305521511916826872883345632895023014919991666760804291967585051092514555717015051859881917498266591116278316386202309473575664675897823702995783963859857667187282954517408651746610200825079420685034722542396670364206221704219896051077434769299486930232374452340274691697299016096695428142162687516918978358757226574114820590465829585578256531911532224121300367634942198389429320102010279187160106940521388972080607550853941330315214870169401745841789734588251443249011203631461820125860484668092298843566248387669454169719846077772037414950293731333796014058051155708976439925559809519614568407377951245718929082504320690852908395311341991821237300735385204492936712465184822572212616037101040580405682193937059817182930776263749309206769134969234051877057328241370313032162349389586464353069225632627416634418055325255693858932548346376925303432514965384738758082640419027238870490821779738186783576799933555771844779598076739835214196956895386003701798286758428607049309161459958806185042400493861103993466657837297316612852133054637388246154640412107335527145350997676053887975582286623347236756463836499041742513192664102349025764265780706366080928581343111760032587734235953659076300985556219321212626965475381292746001097515844520272324031855669772612695352995344469023676653477419237119601273097409711487854331298547897920073718897486836184377037208201452823909627051861832189808388559261612527568026795086663713575931874111257591106088148960009335996041008548965500308593235641744447287000562294392405398528879249853257263482283976166598877530008296694529183987126374550155631637806257264482529563562722424729616901178665484995278491329337753560009683555291738981724221428735335564373769349005114622406636693638907009965743881289590940818141564650174065870646514985882341630485738668009514169395053019513450143894608245662308044221097366213960583486356091469091329707569123480306689406710485213640909823586207899488555043109402181163148656684375371936149186139643521587313140899938337055147279667660554928933086013868881086299541649536906586243851559743360139134214602764460383862385700485661760804211507468067749522045588010176415586773436490875531514393179525203661129057703877525957382818158042285586707195855725362417069617866967870986144689725763578983805185546779210446899773373882777978077522640266805290683093673408395048961500052231633011891772517646466507997931341020989452373730727306864648937143358065516446171174660383242344420602060669512073843047008690940065010063475281277607242335051753890534414987103095980726711890845432899472077483907309330942645234504611539823893043666125075826554599571187389295026845094985395960538798986286080263965817475598905812010724656646291575340020851973180133448934341726270753264333173764930261595726175950485559023467711923559194057877946773941027009435937341689600634815019918105556421525737959047363994294675696459329675668061316407894297444752099542827254998153515483886861613743842883286971180345015591022036948000475121967169993928819137051013631354027515372413843308297715829254501937315417126593847373785042986921590496171298857202537808288655187009335402445057317232797830155901408219911675667444507831180249935295980077895767327900165125487346644864372643601205915769743192693721741169579550024597827516709787861281554641470879945496558905327005477552902583643720816692339067214221759552878921327978918049193806723090458450329029530549651895086558198842584070422974439527242240706246307641419838274307170404737742565233151462607778263871750167370806950294107708574261145116891366146755782728698281546384757279049749366751950591975829722174943721536347156420667424792286836709324895063070094411037730409385167286425105248230281534616571731971295334573907686750505896852065014579251597092098512656876269480714953465352675033987983021371244756260828978071650025911080890417537734850198067542700634504852677368963946648959418846515197323622168710430187199274136764510789866747175867830103026554022274356222641054920306862298768357908788587643795491222564388300280541021180882219580097266286657573811994640982237719345881045773895931979839789442792786354801369274380568747089669401572320393436526398828073788715556502747068782376127179954552249354414047187052628400573669374729460820867389072295162333851152432167686476021628179425424993092766215979816062210187618671136115937513030357197402245045355735063671317249776639951202846230370024788360657246484412316010813229242796658587511191728277341306144192386187737419169259136060421452749207722269557292392528830810007797919933410979212826317269109923256521105942802644433714412116446416186046787806131615874504068724011756143153607383594670475107960334696771266070901283402061301119217241003076381341643310760955521373333397683072029477409560587026606237258899410965025564384877019898329818563137334390856079064748215194151491561261490252295840797345767735300435127575902803461761053131495233001002257317994539523321158632368092635948126424924098673786801447238993857309432457823393944910552049496853951355021963764478416666577040992456599946416889117220483720524614390599700122941118986575412622637938229656403221198170011401502605408327241069597451921848250808312449962351482036131377957033650409829107818682293651810536147067702720521063657151239843881538981331055667021367868483127895732633916495824416897417495056286732452422638690653076149936304793530751178686929752190940656376601254663312501415916248682999640313819933695207042911553731668175297039087418466173933094236790601984327124588751013375119606515983661909523875802470771736999824605318937634620436975894171034242158324265621128517770253065235031161320505564810797346027871840995532187908681304930980559332831134136385934336581416314881576360706890419261227562949914001252053721659220437859847258212420707183142398905099642762817155326664598513025039738153310821896112524512676820985751676041442686909483016161793765518438811713989955851793402849014924557739089225727829024116731167491250077044025514552550385299916261290041409205064013465645783071974424326362673452648551115511630532103042128191568602895843348260787465540852499900912554847300292025305760456093799773950801829110214036052590790950406775341121761211028262553043823974433119059439940438541912567883948804541123855633878706582649052165595936597134218070663650977946061109794210009052131468925603608527815276484749643359088331607284182603293857371594987007755401027114619391110620413098388564826564941163448856034948640536531318375928644246469132856316854161545868509859279723647353707248738615729036943031523942298459410127041110109569037914905689354165042835452711024113504015792030957785885927260660056003837378617469840878022631545929280505734439997393777627078926181985378276068513191260534780547116763310007622592954442234499038253311258318138918479082995143471343779831228442731281397955976204945469541161487389875130618432396603197236194808578294888139260883979599945746419050845747342882285157102807320652403292278960413579271268616153969504000524158283790829692258143931240657890168495644810416661685411929368665699550011685181306550641572926757577314883352499422845504769234645726352894017820500643249561194716397700563030607515940551186896963668669833895225226965517320967431523801494204926584574353822538808130585456692748416249840271054920015229828485729457842126361566055157618845685396732821268275365456659888983640745660613682005025953983456127979476832314196492966174147560790719407501331658433037167738251807552953841755180957304414388599553327873938492366472131427568896771287717309259847475668676694875251752651530159631125079369412367851330791425420158820074532214033453829371049728337314074854056745510876334303833557752368333790908189802989848110286854247570613934452704689787515156012146979937617336308479606265892270959402404963324161783506449802929174186958987298501393160310738151142815912770847893749312902606889046581794940291687413167367116896808508236294165989363447333234999430589207049201373377678281792780181032543508765467288381439791824502650662817321773177240439508063854837815315698044219518210432323887566828509937498511774356340627661315069744199867980938909558984811608769010227548228584619200730321638317934369402583575090465790853496356442168291409501342846993174285047732376936097853076377812574011693902035970625546989257042804301210636629155879776495008467692618541984920244088596084091617716861463961506525941406029774314094495597563396008783822674643420268979575660403688940920191297250071967573676894454748058102174952939019657440917080998790988707387101543868746222881925205187365240805961940509328637205715936589178979747992936268963596264736868567645855349843647478875194631058487859371954838304305077130189843975217604932656101414369401776175668702515899702150266536881504490841205310732956471994065840085542366747353451888970510552691276450046676118229467160679747341576619500767596900667726673864492732141812166510943667353143525951389814123681164891075197517789470206646721583251697042849288268119167817659133629206512360969436654612999937214192122173888191102519347630123497765374205770825086055300714766179529250540744092244374675416252096047621135709770425951721078324032906941006384836454301781584232189233129441384929181104336469654580203894977436298206148905565302148992318427378669068167726609192814147818357259667348880502056896571998795808895030053195892456311519641045765471359157725920738320582342714872978739566183884289963509770542362385087812969810882573985494452341060658602841099063336007842727334476260812831214989298303238331292605909687769514752146050198953128286496509886313596058425470958841560343151393776111842943639272436596831799533853777994622235254281860927015015245414603451952790788354057013217099561304093375214210417006221946559344474346322026569389326164592026262881446153111851966318785030233885434798873405811298930816460166093021129466047449465005183465602334450821254888660455962277610487030369554483211990370710278587597871109902929203175716255020524924386726210611428091937897372811731000927396244481631761770800897305730278328902608945208172215542586967044021258628806411958924619208957971691513664751879406078533930928322448217871613522868870908750561978206055387798489924391982136180232685263354936840809256175189688267235006490116751468494447418939564742230570557707826509453860832294294270434712790703565883054351830811341236148008135158568321412242361204638601858637621906489418131727970104801225049045982193695528324237867105272670598431993819815485962943904491130413253214932589535409406680798603705859319351515175823756955254853879700101750256231901610279599878239119710879893359683874117490412195164960644896299816912948685259015751394369396514437415499018467352470039096044584918680088313738465842594862850209345892942927396632747267237504984488840328874847800893449018897035753446317391931915204698814839157507936275685991629956163766186130317734328364179798256233932710474229776978551980545107960101613588939937631816524270497256282944616832292454191641697854569288011570045591723620709710156581810656110111306156372841475666712210968131702982983362345348347378886828432377241999739032594552287969018487640729621450211683032019243305223975286104863756615325416121642042517346340171293783769547335597797438013803906685605665485337074795604390066960899582991935458912136130806839410635174802189906226884310116279852583496281085125037456719670287502132649240989359334073253005347238552195320303946455250073323360526366814175253729242666081809820094770405631954993166876808929206411944697305101629277894587024203725539938185134187331029290545181265032996339516685910689634454847972447450569330745339255557145020565210757128712431042196425290919853573007722793907266237706248093774589557755399035900277141218173308459622058855425303786194365426898065590913061413803890018950848510644063887652833565755627901754183136790757235978645612082061002047688235628790222290446133870028152454574293435436257139603478642612615762384691716770760093493503969908754005121009627859550858531035080745395010969634373142515338029830638838132126225312379868808479016439013109965995871111716466836347932221330783718862294930073688092997970601539846568447401770271599006175802124793245092925708730846282238421268885859650633129765419503404087504562728945671925470390220442124446510805661464446695289849965036461729631472884219174513874637629468009958045858207131765360754767851463759779568081165963823026852931320021910006529863045096969840209851848322461923344243053876035999600772174805927547925719587707030881048321838134208426983734558142132948011894213725575999485754402196416538283059800873242501702341100904071508821304239515709551055364643048786223429584727098859600248082215132599183562419186466003852965202244269986807863978608597636907613175403128007822510521447258021854168313662207280731133376705183137094234681664245354734640676949491930007539515346311645306204298482051887629055140353171045872493785849594869181580028297404097807597389457417523083554437123038575150165410593763907900857965792441024636902038220653880295238451490058257988399844652216893385009587246018826998044642202547768175673857710439772209140930639312811091147401972228484934826586722861071741485503404095118065537026797674696724044649750681565705533331235114313123276917576477413267784990916379392287404320093620979554960461585989297737356048332087258633042921413567113021301347531805803776789879517122115234016890296426930636937233375450666461924014526920757261835424053227465989646853658955901873841626204869219627466234680673082107146947800261734385266116768561900684802463105078987184725312744099214174788193914431642892913158814108786767185441378814367144862508050023438761342508249657750358679631039708495358105871589836570814087981620311056380845595802686179823289629647148268257903260408908497729652918597680863828988406479576502549833974211182821488979896977217678996673954368384505612603325758762087714793187878346213317482790295971217717812959849011592963469516178303239862267859816820323879599681039682488972429027962124735450081152225880736041139443671963477278025991164954355455837610082379465371629952715719231757375095440364825237593747438087616303925936662806969473719880570452566364491284484334349837360080962141126159122983990742957249621106384308716351087962488698368229795717991854037479387609525103792207993742419624837661006905661016820757100468328634119267966676891475094267002521272221564052378014738545850274800740578776434625865289571153567827779790338699484006722334630931268417775454261233758989486595886651713709106870763450459616705016746264860522797642072804085997200004996606997682415904795877683232772541496445995483696787503294514067132195637577998503412862562835666637312975380143700538270510396610579386617103904668191655703120133364905542410043014296335028741824905810566926692000828365293909348644080511267960047681012129256001747755690734255315885121687584522648905045908222052272541679715941557495843615191675056699669581695102016899002213891580828378277912770532129177037151208997831442815597089792369726369252413133388780478411865730690994032396999035071420739091237738554731035125052127337706978518336524229891703868080586264165709261129233002328574708643753236312197018239791340199202597538025347303168191509380958545269269581837029538350573256109284782235748997402600768514503453734222463410463966283298600389232594059195383143533258301205248519825683406845166850910687196358261321522425149748906509828751857071129086040503120341718957592527118931937043170763856342080523166182798057441183812627478624237297082869753918292603350698503930854524775602817019810238401406485475435942889767527478226534826409618801529580911821778429684237427380444778081180833131666812094677014675945543294888525333352838582573765945524126232604810715841128650042201108333774509406447125831474795464955480209022814308200204388587364374987047435039447267303507500568217157012699537206691413857348277637971068430685768692527346686994316676255955637091149093978431490030421441916851811318740924529094265473768942701971886743576148922398779327256848118125247687531085832827915388482000696883745054160952306677668698918932145214322339030891454816075893271726108884416584062432205194031846790093064403034413200048480349746251376176220742072688700099466240605074589273617078996901432844976305672987293243447585903951948701949676256160501897474427690317267848195467263322206058394432080336372827156312990720887525112854282091936264294518408254427220808811334252308042992159166392557219138767025043543197663572425036489560430568475822751486619952545467611994331250815080710862628130302258703998167601006686392175518585668643429423174826302245619175416425003814815869563344989176904786945968598247149130934624053338280920397539761028251227655247911384009457555810262681708197361667473807268390549400908025357110807453569942392264615622188860174148903321385878031707413452489122966956929387118982927220211982703429546671848508480676331839020754574299408774914386691354601456118726503616844290102708664857736450363470384542176069583788882491895804331615562945712631561153048188527013544712959905807350986534802419399528646986678480782573900013904686117147217495265840308594577422942634119639527673240923839991301303286384295163827598138553422439990722698161812608063812401425385059540996340770550677182623417532649015399317459982872590347475630258660836252828413160761885111693886930496012201209060844150988608027962400362539832047993072450173240405568670415874180518235462950288949453247551422825413963797504139255588816300075887778484071770537365250804269480478775199269846971189677569773644177761160664826758430598901610623647412024743893767371576542366692162088730564378673377319211008891146138936667511182286406883597968503211759787238662648164152075479949816752988082214858073566765023626504744256530376808533083758453329859786847046674752349036009992311243231055625993040643685396130950787785193327646834238891883862809024969718095738767590300723319005768344579850697622208180279916622987021405083532496575646161520061787340449236148057506876173630106707019100092318983053739620667497494896514846449784568231228224966722743611348313799181224075571779353743166760196834310294219009907793346883841401336348149157396531817980888629761038250038257259950855883883066582623066349142747360504495336583555306406329373181081836345572937169476893736640415715196472068148858732680384054096237648092888494931900285061926680599027147154185290801920130359418212638190495919769551656713429529742751777680542647794993383325458702811895379245235226412541023337843612237915073880010515555372971839280533321391324500422369994522517627353833294234334336769521095236076390042244652531317610979384378919966906047815140014452221740689077037192103425344782667392281954143935775212555653837926900880270995267759205075807066792014359114106144818618721227211962901991927145655007272072543242726574927395117626640560945738486195979772926977204705989546863645207738203351205732655985038916027867241836615130148647627654977562174724420311527091794261175963334563336134440155226281185478362158153313382238435039365917962920507656546384647760750414628301954113363375757312658556620186610975591552574894602912272845035902450388988999282766318931380827430431730548636697534718248039566876305685203654829244909251396310640452728262249085175700953976868509868073822801058979192071098800976789105550147979728173175664279926368530398440442355376142094090147930157376274859046576450819373696094291051885344788679715000915425486199752665757745992215154960076608058382382539770376961197020359607019210657703049997324022520286945186649928480826238256978445712259983874039775932964686935191746771811204265123292454488720691021931549502176679242535355423762493812131345192181353713314427176457345809060580193814193708396417647692115270035090959422437412869783792986469148566604130625134898563171245478961044790217300997312917219431792366070415848251634806788654810711771670007853808011362839078158535963166494503777168249985332378370921744867602352440489287043899866088665857361488362956694282955556157605261577876318376594165961114819513086177393767978619498836433334151767943437253855857124536279608075961484931913692714335507135762237837158978599146892776777144736100694600825986487608504232199227902973777444320960186383653664386831698249826475796996099763120815376505378642376037709891481676333140397132464125226134983754131942157753061971998094961229620601101681020452866636902346923675600780586085679267040093400172378293146558736292183611754398614105201180117600139570925118269374515319237477297634243030061741604523902169942586107608114746791562708525116237858128781692519214505474758419926401948184159516956803824495210059700753195003723966443631417264663156963684796640274609328773029730011360472554463294215107681303112379413460687589426541329939857144519861303166280744872376673709237251625132457794076513657761116461192533354463125957584571063019647783340941720831164146479867098368053666696456090528079936960321022467367929762955013450166901961738855190750211287945796406034597955655783874323393236225851488992618177519140020909852915879869442626242232451127713173159371725069515766329011837970314747418526554162791524043856698633837174925812808585856742984377376437632089384233957114874102626376910694857540020891697471006210273781129062443517270440578271902757891260462707035084725675525553784524320318104245283500986174917712752195246499106240219277759874670090211001274587017518221046746572527819719642080023114808202164450193222891622942951708077236652608452222929100042405890985922700977747741865169647507120790183799078325923630715158617797807422284742022635482366685034660275932841249483068418353234805907934519785374394984400681972311794811317818530598282578978484203653052006335331848233784041301977524852476585583482085779372438613207474676949830026121541971259551055124760321130752269319839943653496680526768181104172857749931563730491636797039283796780964108414402206655776140324599318709790480622328310266606631503621729890490499148250447696761662182716370347236900537914232966633550962296336075364341768033097504201846634284070797201751087770726791793569808180848693630030577058007483286254763634349829241038165905971781542584427551751503748644927862102619144283940422094725912761919043664574534663432536502645481893542993989062124804782147246746551187165876518902922599607670352408959738059774440823782501824708009544979041093349648418610625969016013450043754717377545530398091496190652327434794063374017147912389640894092879928715812694397369608414974129613656215808013961014157157589859488757638952683102248302683557847120628901970592981256620505763261747308132069328997593437350426733230503525772775454344962894844121045618417798718505380813051856001873089951993394053108649605093879449285524054953941862421169490692704819015899711477732615856706094825660934794424219021198807727911971783697800390860801814904720587682191441512344729896319124940464741559183408445094307279091585639740237850156435080413958169265016637037217931462640470816125826371623469169790892383416020899654337494508169851227185583977512524241512690838965963086871476719133343762036704709243582536471336735856763127721266777865852263615453436705170714593568025607898680515898799971697647109286903889470050029717930859054636973825869842812305486499533051680813816455343685510324250612206095425863250572319642935757050095168338769202022234052410537841458222286488276019187499212509156994554495635353704704413977656371040946981773256324569748051890114317709042635295749388329758069109756500135819153395554871487119876259092059248690062696253449848772472577521376320521801824424490330366393548605868592342587080277270899571006898562613036756781755963382103970814712956151391065201059096368371133292887608365985579830507181684894777882280245107145159265355719505079094563244017434058962904872608463378202774341719160978886562078113859566968351305841740506561210292072536123125709662932232148387580903044726289144593800859193652200875328797156935754118034187942434836924060552633002118753249016314834886213716374247069452464421090381471288678327549349733907717942644382427750842608022262019562581760245361028310176390107926691121293201157403383621009472078966306591771478104157807778656438782035418930157197226214627546037226898771125956079332880391650674521395907607227104909526665750686086541643384434127528859644745923396901102315209833349762987325258180106529109582936711460720989417180290152364071692248743631809534944504262360558024352486221624345768790865791521989211533261669610632786831842619170130214941621000604213652347483547909236906067790437585390672372169191208339336907221312683615336342656574731668787319282942397242629037403894421040628482704537978782805580593120438091545542104592013376218561457974110922383361128239985516442129040705223092511093552568455094334067712594866162013975059347594026244845757002124821318911377127560558444976193613623820678654433694668619609850132584663640240893449004859523426264291575099885033508875835912043981373782472585538279051881470571092625186374135411582931730830605551596046098617121070938590863657255875865199303934774444411129489791072201452209953622895373911834909469902790801974910180188192535445854620134808372716657455839842073087567742535837709866287631380669193666772260636619022000949344673052817979106863306439153254723825674716027203635043091402626633045100570242673955322174672199696511783291516067116974997371361144914888709250567127378837718567279369237501454935666066015991566576954342496468517599486670598781747786157256055431620110915492601472077309647952111328056547717743980178929918275887356684361317566080500634895593563755500529748482470524606644632586128311803417433957502842904188847422821395797979267363306198250575893901758476060765968900209502845771022069893120299172148917762221273395909976270685779702545974208118067015997872482944489706963365780360471108548294805261874268940975791116235745713377360613130899118736045787083035665038840049781829797236087587067100031685876630633690380486871483871762162818023131334798420163478688330011692500054674368838363632095342840050277220139070865939955676101148659069881897593149754859463042054647489915331852662347459900298635536725758068146370004847323376535986775289656045990095570465795463387204637293920791377942904383434922430755983628332103996708016757827329431308062284107222680266647897604187496166750028905785316983491956633016023754014239914727585117987391743833447868880287177938772475423413745676273731614925236502542781809798402189355453732950050105433300539092852363273067534782126939901828398698468389755353478609838559445137873598805474743342748790919911136504939303565065018743691891936651917678747810361228991274788701144660435864045867153150912296191869778420097317682560980507498396675398941540962522791914524076853866835706944361985005191925762405392042606391809125187244407598896465978261816726207580955480773446408242898168272013305483212473497863654982777575448465262130647596459098414018506161460335849823483032851781891046514243045670617331554476918435516677720903204451025217163416000257225759493809859976866359904814571606558811733167747972935097122440775390239973592127470068099617655528069871831725895461333353260711695680830064221293644694950625674007805634466530010396022506904998665273239964467563258191987554199757139565433204697945023543243255800385435263603875175115468514834465986878831425945371377065076965901460263743308829255265968207513075056330942109718304534511835859747908068719341432772597469837633925401195151448877056415146399744985416924406596164085035114880936899428114933730145693269630009778084669432837731053744363139113425279102103062682574699573567975988006051272645263442302652924511255110911698191954333447781036717054808503218957538883105326062666350538912694423931054736015915176632322028760880225141446256395976593082417628889863644202120017295526980968880590265144334930974702690307028799875790508705087873928273912806410211476293511718447003971770797077351967303345369538008545727509840346691700882795232250411367107496183865860826233775357685028832510702798972938934944079816481134685699023069685748997274485188323574509129094368130154376512243920747422180927644665340631891187767356082720611775771297893533038688456665699310209648494091231397680326232275153287277512680133404231105466235885974727941009281039867459632950258187109544434327023356699553841631489265846890101687959030997279503431595951986676888570513868375995459539230493520584381840015215293608514152088627986500092377811944230910772915241220914632738673037607624604723613320185903259694812663462272099677191258033367848736325909394050216163616454340937644430762387630159769813685661098438983628086421324972376008678857186787399865575476466592613483747414507405157794002340111369308346119585938126998075164743701032815711291031884262272839836266683507597829651740004415106289019629372705312043151397298037182310271617857510216557104163924002177656848959504366436617360695144148496883074463073303983830424732432818334319649808239762178103657068635251468967378242561122469170171489474701031247611526043323183709816099351263847067552458700094843784126520720351339025115468302525337223986398328719100883659649178648647160340335137371023109771782735709254144271567126887259727016687428024112985367840795708416597611751533325575816886869560944718999369024619604542434932778365861629746710121430041003393081248071024905787890243578132496437602660634656682792971691262652664122683977714817132503426445925042228330881152484348727535612278488693811505703205599604693813805189095350213821051315748041852921171224265604556480349613365953891077676003053843773414865696107325218727410196602539487444189801124005828868969917003318814055171847165263409489679317127120837544742946510465617202870844975607097300118318507594163870294052849473872686001294883732045981274643674138498494904317790393280702661347707533132227210810776424428300356210691479654492886044673475623816573154890342785035300902977940319599258426650671372831234235387287627838203669734642984498881858175143694617709196513096814384833638713926320879507995464245904706037589104702735526229353027207958645493637759383127463849399209048032631925304484007974786483012058206300744920902630146637249420664582403152690598022652830240623282502886728960002806327985845766773225170458518788298614272823477181903632678170006229307386196041446261684625720558527234223970062662018459598168544196730485547562258431396810011065096779850594019771526615783760225698584260183674537956616017997029346441792187682370501197045636925850512396951053488531015648133171097738994775090685797543684416414212555557839421078810095659483898308274547121228580240455889253187764099932316898798313603305517504927443469135082456633565693254744944346682091024975392672880775574141131384397433587921861185640963328624328976561588310286670140510253363208877552432730426134526752755048316262054801537754592564795242259562966687609336258909638421731997819012687540064240660679250821752096884187702979350180475363281801275173495495164636339861263171676017508700020345049566043250180782147431292768883130646624057598860656482781733915474262974045728397777510325769051786287128114880911480251740436863298531428767141860335822810183985157952588735489298648788433862054128325683076700531558216569903927082240455112171662797389658275553810345017564658863536094929348527269058869822009574537582325316359000626199455955550229449391351014041517073258954563485163334552849474352983003254650448349828564180160207479995027525873200494740874730001245669997644348519401339620230727815094718453575575387316311921076984080962288223890797808242921545677803215997534194005095367745765590156317614608062813978315574748044644546509431121746786578408436236291147217098167120456567153111752667615379126690908722176944758211713265956932645348161985600250891214922114361543552154666318681654967643902247239198771602464710743011763806317127038679826422338462297289811337091446359892617932765814771482146702523821291088833548609859951731380654642705520996932987117152038936950482379220722836177534363486345681116517563353363741589362124003746364960338951151165832950573904909252768537788785249847623746588967856145054440046367116347789854276645266514237036336833367592411222656083147817046985755916715152124052796238457323104467766184297920397935950127148105459154447035871375569018844825846411988568537724569651201538775160753214023376665737238330628644588705200886941748901619322630314319869323832338899104609721694010963012636404038520606742355748081589000125283441443823592417527252718552720664293700039654470141971512284931645391396921858227976579218886406208398198650948215279888628305106385884601570667760508487505231878380086829777658533501140547088129509168772921055924242171098960422428530901072611989558905922416395171858449437318169619852319241713611898042150580274857488828699411855031299240017661353314097342870558831458653438419395763288875281595545162306942241594847564342691424873691232788159424023755442761943340958481920304088507927803678045153902204177586008666106487593837962410093372110975335490181023979359318417666825551589935905182758305234403621287302238315638246022311098802942420227201332490366051936957327576036776905919059948105544357593634886369498105776003209820384995550443845885627754196235918735621042083039233112673704504516589210667233740385340726511545737884331285290679267928375538362991273292271027129182865154761964128187333122168266955122990459905998309112840010110206203987677803199282348058359348181816682374777515674028059691795504581037322060777280886753389178124747799045487550927177736582394690359804480691521934268852212985943371935609909300766504846992133991607909431503191435244418471362101692209921856900451760108136713064273713809343915271155891081661850183827207422327796883442305050321537831034632310291480868719293380407779769484428405388153611742928821532606989440823213603635366020312712344678086707418441903921620969495054533665136225253932957946819920145468542491179899688723598375018720039225679665683513897320512609163221591210637309778462640082271326511799420198799361736542610250432497003202197998058184385544368886441910090883524888992003427830019163990911760651013958551657507635008136255756426943809654080075944149038678908586131480245333300816079077884971665440267070695211084810974529239897616257504589072453308102461324368636679965808218680196084818412866829365184230767557362671542162979329856472904919101544307721989226802533777265204927166992735070318895512228962354071563191408088896865658116918339729122229436577114779324796635302588085057995560837608563286109493159366958890483855358266965651280704722017001282439183181356866450909065502034128038774205060880508688402506043124486463792897731226078592459540221921692357788173523988424511629327617522621006912246097345537558548874305541715232149526770513648903629581403847086158827334429892946815245411972270357550753015985228374844035318513095265759317445125350128108698862204138526714843721230382284444761783156923798289108631000560614301793243876898271786013719696976617221034479846514488884029721745799929047948475781613189872719044344612061567834696598201264444193031490148567767150316943465227882727209067180914370364041132303845836442414769163739281349887445925002370553020575164839747701641413029888294623846301274982792781684063122821566662196346999220417115703203556933585422266098842289533163607312732715085747697439462197790961984350611796872895362711663606798383074831789910924598676733317897569689145389258234669087382011004356726547445465856299063398167479773828253766974338857259571369532911422309578772169835908843308794600749822694749783097531343207718065069932066089502265327236238970298637682961059885397476998241670736317978498060752835775771768785969301061986511177870075872325735926477715013526088216283982857252292513100863737298205728797673807790256777474866914441390002614781822742320683520011664257962039482599060730083391399243546663757658526071886018338206820888471074625247374797751480706732860165450565076178115665571992452592063894250847945387591760219776454916156661133126029650910027808746310903128836509105911989846058774448300853342508412623477374850381074277302761105547494728048501222811794870887863393964905144219279217654071396838165289825425472865047605109759442211288826564976607969107555518389615602011192662714259532899586215949497659412725428169014367233782749842618253283209497084456612530768505550978340579606101575148186437577756337223731631654775124908840829135322045903699464537950235662112164112088145630581545200773424219810793558532285885586234352159150676919125962721710421114563770240890630528752248723819717105862811091405730074573855192529799188083610667636844810871194576312455965909666281408103716789841720521839981341819225361023951395366692988798179027976479823389725079492827315962801986058375047579387343281248927692649085534975794775742511502084804764683738773871362190802324614852020943500126452503769670097863239074284306606746554653646599195889096126107323635546071628360071246793750203133355866331852741789588837270206846437681398418627652651474370429436028840144054274073422291770904386421619735964910812580150367164328898701245378240111102146310429754891587874131683368792041449275538182135029875315318967932376189623317464277016246940896291839579319548374804443049049798558407508544861480694240186766607050805704095728712380888262702118407698191159367139518229925787356189624041919658126088612863916334211697655501405022527716885337265159447238259235622624855741955993842906182425417999863804323946984923765164096068097648784356599542673460557348766993436363385769825623856332316302698938122415537678281399707945706048623797160022324673222961829428976004832650022653605019366556013808712507036647388381689191051407806306181043705453749815513517575234701761846327586142941584379927252020948414448842481875138307777685280420006025752274328849900720033653083999980544639392999420908732897115369245314273828282487517758720265461298723869085557340998014791504846217166872055659835581585763066225909083299658476893161933458662916138544385157853013544324661749661676914576801387039661230871985881218868171916236971436381148817019098912825011955474047781625697934392437469479567948591250452565553557840527782829554093456253752754852651794699499720551454191964408274396931597393238848296963678968410061273040753951504911980382531683096586119303050691320554044604019936238224229155993480170122277633690613829931810780297964448959686333098296496024558346801316413901355174570509523013551288974648073407198423853072241593097856794407094117651705054492926466728259714788882565206594070783789656763422234526144394228462555759091198575018193850180106802075146477172173155721259596966349384011477775067218945414195282267786744784647369156277323805574796148115563177872000130595827453487547688143165220371419576073468756904925311826702157465577810468877037078795087630985689891706574660162568526645767999288404653985172602188117217148211270846523805292575603163185317811888802598544695749784913906103682128480094376455321637206313034513906314258969060737361287781781441168034959441408285162775556756236005383358521449360281598569037617694243148242282500819283113491324125463120100237498678913168696122589340643717994600542325035046266288945827663445538787773120779863700027439938250419640705086346057746471157699898354858599954287222951491008302452972625617632831280013867400105836310554343194271405710387523490933089733288365358462606130082479129838691238358447054913559605715560552692264854754017195397705087743139157063390682152955845176891801954493105484906715518138367328567112382760511804845213820536508110979237036330045613484606728895541587468988626358267543424404377600502651944532361819296363399286311556857542322876665295452408489345097314999955293450295975738731340404275520404217750399935610571232084452066134551003876825412434296854792109988587333281525530472430218967061465953675830119639354969705860429655218222880991212472569976913106353772960692103837773335921530155650688517663954538848129445222854058473675504548935298278559777535498775533268030068531539999113523067511380886039362116240095406310269870687421787525476584313928768142600486627410026330708656493866613732061500222102644464119292559453056000533041507586701299445448700141147749060211876985975063937899196187435040362438994749423592979116733474413328023322300711542302632832958189581369339441280242619411940889099138590145937095255462273963047912731192031176778036237374247379281187547927138037517686373830983879148407680070389806462167247868167416179340745987296280453125498301283607773971350172193825268056933876878471367425352463443930460036696467736007750106292764345739831667916458172117333289879300354424161302987368533759882158952720348553475365684979248770127833930524459009010472906760044271571163306050885863572206087148180533325732753101105476809894521495681712576444090413217533019972897880061466454960043151729366569571519171866346524538179863042371201667399449815319719292790100011339840780484271011483469943853417552925539344304843639836682800330288047538051412414259878153117220698827694962113850636923751613225334230949633486199374909641591554689210242092923604954028576271411895773498156380286470714227613675197374295254440998459511781214500359296780498645779753943668512563865462132287315253496402663562207831394478489812251358547405574909709127936504273986048843365132232889649427499468998844241730116698177762964122606823798234630713216779208573366606133310184395813074707361026276477946917060490443619153690079473391376755839315880139698761822175695486926846602309000152536448571500178327467562925147530275096530549539581742664387090231668862815666819171921629979118611633185023409242916395587670384719084694489580607230874287467902541606826853518350562371296938847608568668901314600435698092929406705628534027154903282263837671963386157607185398111646618409142184542188424772455116779458554549757630547666794540188149827089548311682357777270708155102489392161448223857983910915846229318472820561199459335883432250601653391030228737088618971352852112391307603317738190391274383138614165729110727724273104676353506757206283861974670660704076629332615170981072846017625320067658213525000093341898719264254703078392370282896096820070980779955005464687460736805400391723351828832810086472252628211288078937982896710915618250821276878410481441849143167106414699735067697362467640009076542885221635723210632874165384444672348071488621984228354331655427734750326307428587093125706320619630002152125420723551761246406169113752933736631636010132201929026024787488451562105159550280046551984865964241773568297505753120240210360513598815975997392117677970056527914521867235493431254095615903635542767218819994848584210785139802557618841789818379483157167283489360200513335843451016620618411244068560843863431980123764743508722097636555093636537388602927902232480789970185244411578582309005722720153187705456508175754393141645637342928414146889112724050494956414484459097189132821519552988092081497639163989607893003616693597447039567408732680154552193311573951519118194092369108516919466967256867484939537682011846459444865739578953467824865912683634395744831225552892190157448398077270740400437255946757158378632127706426988520701045448022876316509227510462994812365233251485695581382758847957034508681033958986772756286244385583977052584691719734774267745873195426012679590339722261250452480471672873695296971000569138883179251831290990896619806393387465413408709179927180586348566132082461681885731812012371029384799548646859880805982776735447338536361396624315463844262082473197343644036755091790946856713353930554843676179847448046219342194016936287663953280002553714338346407840229764304644666161998603172725120688490410036197896559306443906060345334268961246894327797768566749553779587886582022523977956024235247869247208082936011404086818610454300829206472458146449612276929557106516062569131729203445504262506955792700825862931804396895779242469525345341850919302419112649013011954021022358728512892235348516901396661903862655780718224706521412841971809317919767043835560204821133500285479315406006709980801658957649455465919226257492215462384665085698609952678529842270344234051803578480768562645617268764808525438353561177326448431970687277018681718436873838054580382207600748030579444284445198621518822454691083731736991942347727260770361520637277553556787882198619236821257239225147111312471293391993966000343235200163646850643301360606668830763058784833854514537970713571959714366548916043800674096577012328429106690912764350084429891584692298298859468898804246867946451616448395708547581030353472912707304668763941421805010115182498863142143908899471626140942038885915579541203727352045222366903982773245193839778655006638961034325850318755354559214844564160590730318017006852553996990000967103096608635007356949440498715127527180152456665598319705106385660688999911698199683673894009300692639088397213632861652956007276812428302850658949880601532068931538562099018959484865950976437633597337240664802799370631623937626460841236385535296938941400468956815837953890257727332127942046563047151995806594510569894846984322648304588338577057731559438016369302453574221558524830913107326235044758007755069589060693034297064445271674004009840406952560219585257615830282696135480235463332550583918283470184993914858924750466499122809703693786483350808795469165771829082989967395720018117597384083539401592745345487263358095615995790259370447504897858321260269370359412024525432056571842911654229359008063935098122239262481513711050336255653752866447893792905435221510137202985066577183373984529907010971105112376391134122110053056712810579845659765598711560217856455079462176420355270777882706242388126942407686538306943843484159777479478804569060618810684454367402095658062324787692932180698878623915194279755081116458064215622519730612059161178997003971161077071568047155847419629817504253013416875953862221463943375340894257065683322603655833273552049758062905026177253368778982784986589134980255090690258461331417600269531507721841605089167118530865617233351160957982395824767030108123081426623990513978724743898324984939771073298870934533215378347887521660057417991381200909172913115868830591115175551483980143017975048005469432447833839505135063049196440359175152972840221555994800184843308603570325144521470449190791251903667357031173146342568640391993759136351856097719779171946078808562961443582972983452813005003216198769877954922932333186592365866913104528270102970831100666559017385924301244273479165713801008501552039882442885438538254217558670015797495596266636845301267536789851289362013123711353855511811815949860529488113608205821392969725559544605606136638973394433762397850258442199634245537501510155768226023110016003939040669402095068430044633749901946406226106590603662606296035452518683708046588900898172832279648892865316841669321003755282158920176176660979664856746647299628959156727155350853917119849378676252186538610511221110368995111967881396565252255686750159201711574516078327033403819903227180872638364676613342726059935529095489682397164411449295624723424962426876595734641569330052223579016685530508110715180149056586335607787380602772394713270040958124811107668670158495789216637438919900142468367380514629991093695919717830712192823581677687349214900194423887983054989971550454089088138930190998905023577910472955887583617468890881169399318210962072097614753111183196241711830033075560462369921495510603589017384791863513855179445133457701532937510001167786722271419350384929093679666604225930699564553896233386166291531200152814110546481104332345451059234115174232347421408806980884789113303857129907369534059812526826280844089814928480627952967998928355389354944912255689956447872564113291782171675758801481756590834968986318623773645979076571732656755361478959593064968903937244243452590621013557732976393339306242970698824590569886000325377878262297553520572428775607021332713937024050619976920335702655308966594269496120289288873581228775803501720605556257970922140091468232824907055571933936860197618929921729578684727215792948777562919923041040499531085724634308395849090976436351678089833696586080889558016791737084681785162222298018218834867906273211945940757948132102100715709358713563464433972287068814595779904779809981514978420565405985095094618428634131212657921856214766235191444287341124941137430936769653257640035464099683873554097572514925733487032205159679961961839888066428233401227790695779780588741976156420499733009824519616522480584227785184409772098159154655323070471147105978033139214963461611484823441763322463746275677582392708339290959898006172578443022974778747455807675923223059496673051308267107238007557606973674830782037913615407338789335793592846838008160280025744461138834142149292204911826649568050313310076329561540067182484016526186550504012825593451805139285379363633183225259144568002150963531269906001176120905910410669040265129984629466904544466869736362397306206497332401462856077081222946933176619482543615039090915997237393201442551464604457807758233877109049415351487427664086870255313295927516262967505905782165544315363138607209768743029644066241088973621311084769682089607408981530511338833325500039712944725052128778834745075013126497215096896106603219357651372952921293562738128137315297273661341177291868020960153162495035546237609034128886423070564303908462645274191332817639090755201416946499340334922829513308706887466799034049379040499683697237989255618420102343040878041314665063494899456191533682634789048915898071137064919223262825088762268685393976481623598956993442177578731606057983569360692893623415539768919006075398328223183111437612705399943046601909766755778700641327186292689755642736095259122057629522854847815864095450131272898718887135699530934655917517395615709408176805889585126101872416582106012206733963136070282090822699507168499319007240315544223295480535726837875608024367050047296581443249411192776828132701287744190714352187145459376058590621622381898231631380777282172165105496404663769078741794797700795798403516812186861670380511011430689098009218020989426774643092141204582674757799335112676670443908183524846054597076812106105426581146736399454600979712336191182563127063103935823970928261008114306548334414919063973878225026329971899436373168733389434733022444025357037850024424883269572411384685090638791066973557246044652817477101769072860814188682170801276928861358390079195898277132597744457792466895257501855053747773680972583792305393744552240311792631211586841721868855404057127983687011053843508455827815220404194284430865799729459912859718475189862670230403192166638846418942019036163987741208158975771837622474498030023935511483323355886374881983275068045246372541213583312161386342620277604042454084605296278656229217468330156379280144765764125685019224219053923742595796514646825821935116925966307515029257757268523528920827620294612694060605477362768186591454489471307173626930914930686663158453489631850004838087549423267700682161507168707097465168815520152999792376259995631346808625675648792422665142752632038007063277799126975406564696467611918372677621929900924868776436113555750446328595083297478440584956682389167140874817316370295196151554272038369954148016686325565883593536653763270815858213683985926194686811271883525578918982126433605905286548585302290817137962790677856543709824581836096022947221361671316915498730896504054758720128328376731009502948402013939343136211569941522059785932293899654002847243641579565096877151895129681586873436475761842936952446224614355362071358781014693219719570709021281634945423556871069559360270507346821756614977098103335387552835845717934742528977212325177904665313509770913955270235086988473900716810979248270422486200288182438977322146338630337146740318720048518133851528666629510982741489268594029341210520971924097622114012713362751445336436796816217729166551327610428742604362813705078480844725846494111442873181475794186896059106369672388477071026019784200454626764869810467756256116484841023820383790078080980217731451904490939217406656120983396366647291091151002672108910423306369134709565186687050070752498655694981421253680912795060234147335056604849446298699623706047228472843947312804864169145181652781274048237871745305034140380982459326028163598529680414520825013482165498053803117163274273081123749634020123948583231730693366888690029465650818456385165625784045466997054958103491048220827382784801341536059575590290366110143869452315382158258420226048436268998117077991326975730641531366549785621524208137808552329154036572454755015742133173027364151387706554246379489607594784096896224828764145444685313755003225911567028576165315375745459567303277793095648628023414644352680226277300052563571582216266174791801282799056613505580594681209282593098789439816246811735018597843132205837782392296122729926470677828878614623016715624068647835136644775358162672523392950639719422610610654123139391694522098815771081254727661917910629715195348412613148155303861229186323664453760484440808872392068742841247677623317616637968166017142305837883093098144958639750672077636036741514219521438486239996814329475206932604138568547945954854642963568572040855589124242742144512962727504955260240874977464098439258802453141341072529741948061802272446497563231487878566011989213895501955525386886300146928587268786610033122988421848102142388452301476717557443825052957820302352549679501063102549728194973108071391966107204188068065247088771876992420032186545758543059761883242214883383398342595184463646358186852416423440484379465518988537934028884059486484247743085552744150319532477414869928859051377127466221177909632176915031043567441043985127634284179775806336191040087144260253877732365167900156520651170896475851479395770057836120454235531672958631991801923995097813661205496368903299800729317998654149734272776583657590687322822223039154130053900126786963139578947610260672320673606507577659441472389142326247213073586784336310122177269813709613493345066738274764781336244583131587015531455898502804183468182212412498444507959278072243430937727467946401363669031216310879219729270344326123473365280180397004840194901082417357371489899253467194136302648924300979667623548328782494879364879090373398501375817218457134460327342990087104066329360266282848283319206309990287808800529992720647941965795513708016161494206858480453711942855915510610279572119431917247899803514228150058683419901994401964941166645031265681192582117827779520256650410433007750425866509615440098677177498116540260900745711793536610746826665424876131591530512786010157381295389403363371104992568013012751097066120905061600272994396537783488297620389962729260581662482803715291138759943450763586789868555963584663607763206726793592314024785223776764344476418427279454282966114744346806941047991751018734832050712497999888565302376770945184454297412202259488581824709281008621448116412482229256210991385912042228334625701370970228012346602899166430003469758607220719234952018958785746403727751427603463427725714843530531350203930312851911156576532960658961097515540918829929205946686162934513024044682014318502958542814793436234232991680519503181078391118611206414326996565532993141768925548356008780321469639342597818799000473673619080350125159230320776012994271852770978108181156939879272676786834447180752377329610868643949697004310920504113614821849208228632702110076732058761972860093222340790843411462334372332073164670411334368185220049586498484125844268862328399006086703634185703215480556191088569912968399919988292449075811287141455276839199238371106231539762994725795456393133843714388638082987322874923794015198756852520280603567984941440072438999428824318955093719519444526510761187294355172846996898150638725533405112916245674345170239007728624536656919083645249081639797005048166447951534425851596378554480039153826437009390287470613055504653883034227558567295793105779806265687758319676044043592867063072711691433808661129837588166502728604943019553086946228931012628566161688299396445935532815851412221749642590185640114270602417268368659699651140027951899815839770538201321537079932633464990965191296906868000807126096461644938524149981251337801149122900083810991477816742272841915388082794972861637941130396534769979814682703513715790675085749664469061227035051567540915483898485239632156614882005496383900436517199762782239818470385361856100342884603141383049782081489371476869931100885540304329034619028380365499455549430757999186657476478524230822589961850091279759461554063893174387237537491460149900467976915130789035170007254802748772529857393834426908491872792410699185166673845994755750538059815313226177412958415466132897226144575240752736538105698003830220904677205047449707231532914843473889000021051697346929978111968351387565981358439521409607176131236735150950102534187966984119246320999124114759063622662542127474396065811178308445914432796880489628673621708218571149195604637797308401085237276042240740806114380906721206202733132057431975847590092343737383671104611109736281635808627423776136370501443566848703218184347993712591015515952318169667324156945580731383047059368055658629734319187940936379048794069377575140804366643835693666005926601517689036553688509001310865262554538146670258420386171901989536926749154711315454613803110772701898479655321228336183339090957388635970260154259702504142815194724964959047936024541645326380978786405416830555518270850295496093978046948451594859476729722381616072621685158943428509380963422657099413931977506385705506928836192457658704434713507148223444738323961992234224610489185618845476156055548396998883312925349636022523803299543608986478646088919150665134192648523311612554416294985658147065943523517216815236249224001682094420008559771055907480081366220750082003978334833489542943313609534678337609212125985514217085154332757239518069092961950280225089180402660964790507458822196190094463947595719171395984467933703321058061904910139129820076395978975544218994259282465349603435258011684597407362879275197852113240792080326396627865933322517146112250843202702442857527504026464237903911677695700433930425544911231295151113365150462531152735250114283958503732466775846966170421421219377409629916980241388942752940989612017656479252754995790950225457840331201593294615323829360312854690350895941864641866612918179224806262143838993592637107974259307969715403947106309020129630284763949192833077338418566240817804988958110356025897272124743047588360404015052057490200324069514870933142739643712849224646252044823829746282138779396368099657482307592500954216635318886775861205338296534795755233029134444493790559213944121918237566370422499279604429882183026672665070789245205290175575317895443149478155983850936161526153953909446158828919759298642478691535079424664140800813320897412464608716897359184229278026831249685716912282920212565870638278727530143663090113465183357552507372796319288371140749497193429145659088848157757994051666699274966810820186901498787310610020397282843284244520772690139432463743889013961950499407809897560930474893902197228908992409578952492497629510748014546898371921846558313680010092561803568351365432706502820804998144508538766963765868978420380268564307440066274595952327153532970747297633637336191828298344808539576101764079349442425415661597129731333700374056162409875832059100993812199068047673788218146094484858498090570428977659967764067879634464182536490331142934368458380756780153293847314209473552314904135906300033900650305412255387050568080930289499327241468545702065625815153276617124216271293926154147228675901065826497871724910890905630370545362732022681563105642002368264386550419847580538721408758161852838715717052631809304230108578498741502431435886084869573811243774864450571113752883912723625695473167288164991976124196910400033518817457489932146058909679947412466317128568637193600267604753691885536912942290042152496524273414485872226653957461121660112488387477695218002881100643330694357765977015423866920735544364965076817447943841086855070572372159958860102254186036907423135684355668730437033357233846708001704410380769993288798367286818237335694010155157818911729508156302130005913950582641493208668895367580560509734496719088031375359484092400019664933445341582913174061287741261132156998298998670654552712082561738548683597832631187786605468859600515909277592438041811961357912008276270408764772627693941391553176884460165164437602254168558710050767553612590772834125438315037649651375753581571157156402121065577180449129937907860513221144810647569834675428653020539502956247308494695816306166969062197126906674769989530760570798214989790019547637431639320204947900721958851403285222793308861894040659914632399307375656084547025251569012444653087708644110130374745765874257689586565309465756352443170053323638943918336509735203507729395129597709772288103908979677582844449514452618328481901131935410174252562223462064103305307333611812148878118414813972055849838857293517793624717901317821073282460953118750281854691248892384394668966155333310272702645512371846031556561486956891006424296328520123171847594599283325300708274214875709765203429194202912316602535187097376747254642735334169138044349790546136212930855067475341354438802522598339540162792884406521771295544852159732945865838077356164011464070142022818250491749969282654999395656434290493686353489164687902245235699428625319447220094293682766212569522233669676839433530402271347459365869940138621324013262224643398649609512945199396118098174857174386162372135786137688839241305177753346021920982331055701943474139649059058520128589787178272020594955363091273463954810131632772519763962049951505415733879619934302491177082707860909152090828601238379885302727528221129413247076634245005217392176807698064369278708494686257650209965522338299862468387501329912737197047470737075648290845143131435916815233205905784442581870467755532858401326900831742721936873865563868192820815309532687816028586274178826401101465152760125128503398698952942923957450360270774022375888544932026801435167306692791999375859197924239311693416617068351259648888640551185370028841837241370258890003770593869723155272485217528989696129181854379363078394435680807875809337253190319615898747616743794593290595763780521901500372701165295568653223251960395717002609646203243324683672826603128843210638521012857927174104387732972023655163569274629092052440810338670433677755808407577158424614237107647088887968428756074693124860239424319474614894254518282283613624216016871967012612466656681001085465927781944141883995891614257124298398520842216238184143235201479284997433162440118129375048229304038628765699757426815037463309261625562865831048949497219756703803324699377811699975517752717235831514110969760226717353713794460198230162905388740572842331676329152101813322891262167298348688358523962479232504408349107411006459682350006551425070060493256699301266452958273588519925933828954121900878796303485693595606120712469307681330571609100029660926621732329865939191554706161952206635649202781209702007240200232577298975837870509303522014289669915990627152560014203093157269625666806123190178750842751788030013983977285765283719903117591749373109415033100590973227679782240427400815420425772402195183219656632555593715290921565685943127611054180375761283470662676598253226307471836317413451844904257905058642558295935398639243813720852034174890706528660739447027348911212880118261375449131385185685573678283481583534584868878237678072814288131074502313405702991665095919277005123666153563572702214773982090061974721246845582771132735523499141103548096568393817558751472268368477688592740300078097989029036517706663103642456416225806305890615148046794073296199938815212415901179803957364721507619043033909619954752201227135607103283991426164151669449747895428946678545407348434364521382606627622163050279612308465533225382997758956230107433025175847862665718081044053235611690862477711473413698783406222352171142390482748468301814208648369334270235589727148620749010213703674159106160323154953693252186825655966365891208909880905958371566162905416387558831299860220715251887309633733497673030909086644956579681815599374812257527491587629367035672144753384205539922685635028349005688936263226034998767619289154297818443330776041594694225114413122066014984694693030023487051989485990991263148099567547618677408956958081803288160119622354554538113534516217276256204387737224023979662001602791992625384764737057856631284744081975899812407482980914584496281347943281278860106349731131834640474258108074333216693081094003034203184792727208144345952729978704616241572112562763667912285198472651510605958702222147905595822114773704364235812527526192831483616692218260656138879381829368543489407036624333324716803194404843764173458196712223713789202795762800819144447868975978878425199650168991934342720550347098756487167068655659968617112582970154012610950054505965142910380941054777301639638017322918837373014908112207888070336354707894008821676234124394945226662064504609873304411681523514092618773180643977221620345835544279995263265562041946647213177849405433905236163843568606781075255198460374245309714155273525378972855285721508264350696194083475631056350311861830008142444137695412776210484926039810935425807082575135299477773413970010629470993710003539561659117295694422232245911516768945901240887612546440448911698778467480445123128401691709197527172277014724235438785360582452165748509737858488382078719179507813643105369747060409624632223818604567317955983501818674427349160046897847988853020791389040393265823316534790258986838840237165879266496586544105466441030691705015928794753401126213702622142645267143136622838268549519358990372636022679505041878911898868570303144606162001485370647038549405992007051218295060946499355688148833858839195815272174127340999120253962996359077762224392635735459947100993124783220948078589744213393572247648142603715131637225371225457576724899667010604307650512147839456183602178276858452642184616578739043338256213617522386221186316962012315261948657316537054700128436558400474369142830719282201720731942060417462305183674739822040049932351981842836708871832332602200456898763848172672807724869305083150194663971286173359591896118028353934014336636467049769375540561569518245201843957650444076072624829375364454592261205927843450720507714408840645041543219061432015818154468307736005696461900749677233240258979378837459252305115832564043930963276988067665207052064699013576136121440660762574266611127291485763808598990452308757386663593484574175054635330897295078019990393412659471005827304485341068327165580572454156374639651727039932114160295724053725422426215248550074591677020995813970599862874723636619902584643408992267025618576747430184490342288320383822903250859587739513020807571469389385984699038951422114204571558379110296659916398035588179807420681257234064286355413103199519842086080547169879227349603137129120027640830223710413829207838136058150100011677430043879089590618140601655965058829539218721608524828263941643194241515207271799259988832614778034200595961074868918273229735839753666279954833335717458458638844547467650046060973932617532102294185920565151123019643568138824747695454351837818929652641454012134130675194030736653303384405429662385468972135049789775231881439067099396570739653870297632416943487371609425088293832828534997385814654572303511959795895802709912123289917647938401560272203950106518132209633903199585283872668006070940978532018720579138754709321901189732212854197957966351776978628586147889714915849412654097943315910525519661756489489662944552908066127363403923486319920750099398335057108888274227914909025649127791731652993821458325660834910839490411630127973129728409646533659800695740331963643144299459350609905004276203890072051216265322561724192653921325914550569914137145023678592919036347222365053147090709121089843449489075992618554271351910600966357442465101067202276155133065655973216444662683911993802103777458660057227885647265860358452916896556453678300029792350504786527971817389206084516557771108023807126718395098555568530716916288747694584869166808643972576571518500109292826338665033376908151428803646311759247256574599942196064141392459005985957287952484214781336716316554523286937048532345472468559071959443216146306200667410485403182639899671559335221201045407801623932140684508968497687862706845538855312308922835493710488510797975141344549955767138215894362355807475184233858842100361808034916595827010297543528866109540138025109251679517736326594187120053142666509956099451628907047082102190587448318299378569688342513289546255160534996405301415098831945008785535083573028209611200165509351895025552741550840403205060000493827200147730455946749613071818429883777051719734402320882272694170402858535360590828433029964050207501380758986824322485792194612251846250034772117031362100820564168510502188173193578939911525924542593682735205801643001339744712328764919019728512188880052495237207149162273108488712650063655968284772778689940445127942547579827033582824609427475597865411424196040813073252602576075861460736307373825675767811881031698452360557916422775483781837951744719079274263558096473715533687550781692453693654875150592666034616879381479726087357043613419006923427616752087875549874211787236742899970884359310249075276609535207327699266865712985722904918619270340614738679745308371989034476841878183472512753294782333368137451126058228757896186144164069054752633427470208515537097132230805496223563302588352189959459481889435259842625851294332473601932989017600173483467977376846025380676360908284103516949571441917830086754327875947456111827289505965016065660258399589594837122120701495446108714113418106329894467506773825301507045878458633033312431597469981931255132011941668296660852857590454173501209525512985738732774057080399357481017325023576252559238625442296139911936619047517646886282089729882636280415545336372415151408897530130489841902853339573033583650605270005737633085493006410180255860526361404404988791231014993018547836310874401046195286741484937823531751325588768934676536663772540941859409756985526202144406935558361627622271988725429431834048152758657367245278232657715076909450014726415061853747571790821333269583622045651091231952577039492267542639095485560268522142206821282159971837750229321536885356592857049735455322647820730023264352562086342877784162697305113198406736773296889387361680184692462398730610978608446158075883191864546837139024976754611694898247738601055673109309986950977923907140074841408142721997062438504993519445305070477316774880530408781607313510657682776950834107208570869352163350588762332196745377365610755095568462458262551551945973906538080946497126241916767671625542467636696746428938017528765105038656045015690643939596394442072384594915135631437377107153679606411964077912987977099373722401398782656043601535733981882323045655748307971197871449876150730833878363807973268851555345883432149175680399464748403950596063533165801117201829215325676049008485533890279874749085003477091855235148199046928737367516897865393414221489602367288738814444646725398702592886315833567875305185027380786480425587024243132477808811842411056212906066495930024475137113628717792931145392220531046768354022899061127122064983101751439358957073434505052575218639442464237010983001612215278154637691755053928314417639090421489045384117424135681468886601527081394731379301322007478642772429422051318720849700491691862069120124023654191432422207683270188138568838574321676780703428897762552169489605129334148656381558057184633491059083785767408678901083827936530953136510235343777923701192999690779999516288576878109095111123536211988702284751688395089983199171259972136287835008113620141769469243227231164823726497286935885356108126163904954676991790996884870479588251234565953618662183836559498730405830089047237057670451240070879709855452739447254865543523965228584484328809313800294700544828278676521936918806048633527436552925203336364357501113417532122302298725982463184980331681192384727589003096922726680686921120953910200599399726821187217078925652507564893641947737435398322873923327342384539367616118285767393355265732653642047017335788657824914990903152014433211610263541547484571250706320143336471073146974615891141679581952899877259916569844915118653264416325118566067219495006842826678962762885256214983927251876871608707729723385208486314394154745405001007125668048250973755947273548350145374240922110122636456206795269892948117388722218849767079991413962012503896154219655425983359525768281745269771814881275426838660541542970071970163255319629938816973857035888341696025774872367085990671327075941382384899420874162673794197345400422079984728970505608639729421726120308394941874870858344585286267986144700881285433311854831217967496515321795125239480931313306414576100377025617054737031901500523402005089747039014999611022008537230748298254410554705997853256552340416816904523255671422313772794045236864237784894932441731087753866800586523767980943450290590470239981936240340045927917324924028975556199484699735833986964216417454618314117845589513386427641023978590366907174835546798464454044595572005265857434090398908950327546878061784743811675665757032811821249924468303675378420023026414388371333757395716807454539109779298149899254946054064121513485282354357458117424026809326820003207354910260628742077113684851066164927097466320109316243707445661007125077884057414194205554524017308425835641707608855875112552027321085884342347912938482865229786675642424262782323764883870804282327543788199659631709565696006968387108816729746558059735544647215969467963212472547937676784896368216778216402257607743375152935191438281435982562786334429136766838709328492635681860150507258507621333328808993411132142032635774807108181916934049483774808535448363973092770363012124701908382006936009081117138602762896068140197795390992610883221236388223162588734325158055405815456632812557969549105743194032158834022736257071327632420513511176863875413497661424668359418533462482325523248709074568561069383148899707801396190905699273390295031851235206817576040428098100938094031868170130641867561388636072210425055618366934538973531369328172697445077896981485953476780967595681255486733155648009081732877340949439676690541181124894572572629828540739139707656015463188087416637768146121489854262867823942045237824745894448771466384482406116732983515314055536399134076440940582293320009293556312661825973581335693277522371423246049705750096365450530334403924366290230431253388456898738810086875156294944770186610042637316504027828366840845493364453725799343965268313254667390884447197979590425271131105959010077620428290525482651775427515317900288281334534233828861529335454171961819516070310971260692306391815366165721478497636017530495426831059790915220038087108096697826428987064817462324132246046934822186768583307242056421566063971371850319470389055980227534583089978620696266412352900760618997550126880526059088816528885030091610039169373759691631159357276631264077062232856592153568826047514235122504589978588636927427925244638542106605192719818017173186774970922613756850721220868993493900397962656626905856919975477688090250725634828985227359508551032069474912341866156185691380292109940399874859546428284595156878517442878148607230087698079170674711670310241896351794513482190903403151623181640276389743895696488192183886354119469836450348488685783106446301769213020576297204614385931116273468317645545038186517194579469041440196952120954559045227683670322093306887820720962025904329812182004416548794066435105633252192759876743107654772776194650290299353973822812729153099662161891368958861515588679676450746341079193065728110353501697372232358900166763963667658807489385705756745178808364195144810170378358117865150388766329662702215519606522743555641476655750898147236840644705479211760732725926034242278914752439365560647382921026695616247618037007418031959830828958246194448267346131317991082896439686176732304574122113138516937665837475341793025630750662549461047614656704582795191395323516072324956329269827177532134894558627816403694227252428748007857279153050582462154743169031092484499946545113280646186361303556735046147025746719666909009423663777550120709905783970900540047438480703104852482709520578657181082739939978844333046776497716084231390649970925666819982100788986853844259039017506485604021910787735682790908444056128929129550396635431727265342316196428435564364503713172250021371930619971791337101797508211747460494691037030340190166585529725846760675237805647867884030583781239472620771055023585102760691781513833846427963810075276448324926354151358068885720738536495982885459675408069143817839272470347573526968888391341199528305551986405698410435539174718964802569066924177889655073445647599366718682679618079810336656503004651231581119846598569099278294804191119255612029553559780530989626853253697117844117846201101240662827574886253356803995850555451770944635888943455037220384900446043964873298113867128901420981360829477644254084933890651018010176223503815312701999348034439967070775555443432169185059472732125487592965651914566325457460461468034963092424401018250428856121106725421277809782819026251212254008394698997846390994509587946216228650442259472684712472320730700959640559866770771319131509724414193500751477951618551792473214711301428748953615789615094391335980936850237320892429353222342009246357679345937281876416283468570163434173990048596856566864032479481453168498443589751946821663052111972015842125302402837544321375121470773301301566442317245940934788596622249448522310528508750328656361915345191213701224047936747803980035147458862688159906081653617178053298472967872791220506338803121304677872136744183717273527740904734866108830419648499116549233288740016665883279519700808657945570272805033997744714995590397018984014661589246980274027435969680417127299522293989260123985542160889508122811060729735483017970048952483957483930280208212960033516782348399178663468138508531646162219874919843318230855205501828089211074381365838438521914935172350965179457354536770952315475116732879922958379439064208821718321746196025174765691175622760908924768526369217535877932359418510473436128449049459606485989487270893612639788302434465214655248212289282284241338013135654250806474518965521055272611246410850786561956513257813848517147001958363573473025138777953010865696798005231391986590618029225359046322926579118025051887653354386308807946630167126611566927472660961251173116291183336927562455984616365959812646013119590112537966630040550742843622257872043414362407950826346642221626198291004381381469569291363059694715546028833517711362459195923895118131115875311430607369887509490485949604269241853480472194046666654953865443118526582812113159112212849013454310382355958827215120684671360220917903375940142709684721093352627965322310228512171572104035651095495756803087560013598660824952835271850589391229677247998811534412795400252745169237757718082139444257771075909299037940906851952803140439321827842932322247048106319069911560420555045327708169849482024732543047884135034027205861303219718674127795866489341922989465558306459712613902914536235008651666767557968923693304048047229139941058547316911246623535179932833197629783228419552770240880148799135835286171324066190393197487757103933026883721334167570057467195004606913305403304460941631671466541978184091680298042036365776783883985670821601177289529570353972483373357155144125750737889146101122689854551886220681399585204889996134213722343865937212060808937607552344872220923357663631206495717622282614755117321441098996159815305637727761009133814506799408529905466553095463939648429093025383612675692546180837984021856629078945655083096348465407052338077976927853969658382202429037472067233797500782069169093073621735269249629886967802242019642634237768592983175400650872667598404611905452359661444025514710789475323627450455533343229074736904374982843158184930156178535880786147735524520627783467201608230704628625953743069133843514930613570252885532797258508100686399431582518133226689346015191663502145644022698212605640364328810328637310605476815152750226300048709018878525567801558770022524616691029727815590519834077261709279305044990167359115190082425359988498813527879515772969396487050665429758023833329207197091888442360972707352650876779771573069687122434894622240408323809429549879370401623540129078916060626876910093291829565197260661232100905141863696774036356166152762462330887207352426248642273208175282637629718837606564220803383324519529234517749151171503508731954218725992627984721458071673957281225006164678877970935149558266125594670699819526675197567362819784438530185907147988187675150026768562358722376260482103682425022584036236646539224581729866780580884067468055561456612120966344797862357405836362192431572133343686776900470292863528928384633926425929299484982898173638647709071662272987684855330294770929575676046005486506106883155882173106741606153729693078672006400560170736344105661942314937894453762840280406675811666370631991936556781458369861612499595278104382929557369164383312243614271197333240727276954961860608320269095486161496677805409951951975825594437600781902008939225120714163158585768953991051293903202174560166682074748461379315094186022017972587115005588174335378120615332195579483013513019884700698318607711752044470981571940329473548319936792976703823263595590866250059208119943991345059348521271217888269694132555843485961841263175118901525098332520978221071140353592590177126934697242427389406887352677667447086011811003066212541172357031625805101164078173520242975365219178923589745757101531957325774480966141654153948627435277438689809459095719781777165483783455844092019188532985831874712661003205372930230446643227587457766529828432872253338776972205468882972635152469379047274530616133409019032757916441774050824346595958235079212029124617010145864703645846443554830952120254917462600148476301912989696254506530507218843614690874257676228891093367251982031984087389295576099242488333753163274952950816805228453889155138022772458023342414842606400066904477838823651010587222895529536511465238932357209471598141696577539701572633301762373570017502196618179509331099651633007563750332804731008272062534191622522885954678184099813209283989791947591573652338868990375403940866181778397592591586079442639924728740350127954253154395611798432246958057058300700747603256403220295495018188325635297811036259621525101920012948181531752613142461489814025715250057843948500828889700948111341647963336355552762013518116606082042338162581714184259594549454993143719107319738144166282662305440021882348677344154197619212825927812021960632403577253867633066554463835296558755771177891188862103517122457108266518874086235074643664256181200690976329163723287826587507666987255357153018625568271807171200871701026820474333243874304281298312097196639247255455613802947499620251902646837324889782770630634293201666208077630857278591297933669005242469208005215548813344264149434713255875739492642805797548527947006770535555842675520051415794654234215875919201221962814247874815228505335107629566813688940108680998988203666348483517944836745010678078754428530036927804670992894714970841015673422885558978324474311069495308414700138181999645787680816395545688804488838804677607787833079708248158958700618688263580665102478516443779211092360947238994920619398584871111222473184775694298434799127706503059003405650586134593014981123753729143062877207265006892050776923458870188635607606838536579407234751456095454592314374990866789179342738135647700363112276864087635613657604129479182202812851544988262659378937178079053690440080294314850520790018390372078212659045680393081643105053635887032756650500037679451988802051448878935485652113895430409569260750689114153052389947831764721466542035293793675181914482569363089798596380821919824030544801859756588244356458062461138574856206001404942250443364029094019304802103244618916546735652842601742132160107473666080021213364475025954837925172777905215653702389592753390453223774421692748867255457063689730617768592473318033497014464675471130383980534266926502476700278349577623791779315132033966402004816773410182447418535779708212015487378742063425666372070962976280453960297014440405251829407195545934097438786763790585890377073337700655130893862442241243597707426079700750104274349408726778699689874839923717259330886073619585872999916246701017736222401252400725508255250577842168892967237999702692309005677039110894626603587708814080471751286751918462072218765508178163297136608267642881046742677332348487029783002164493126830953502946505216764229136082904416221087104958483481531184647388534710629804608903029213120604286905534898710714652717185064675252883070805356805362423195939497008428728098285877146498164019132948460011011634072946279137432237494257348277114128306696431761140115576874129945844146699184061752749526961289958005814195371188956783658513204843095245669480103921355746158790724485317925426215650524219710500876734686742898013182874474454691941872754293232097753437781740456536654213971680997884413749342011955989607490891111449303517437869565773038292589471014298307739930972645691937390217576523739294522356004384340186437422099285598556166580266064903611083982088989572015786259089739044679299627217706645726809025206356982623195909225571639065606144526485782631616069261787068188335416248585355660610851834095155865356840779281400525157603575313916200572918704062063950206389189560711821686438411291154773803822434990076361067160248076091194516173345303410550478966511065561095891307515479607444329966402860797169137900805791210806781878033715061509907500165313546643068945558394767530877764042675489993235867386304923442209192093282059780070745535379022857187507164304708694831537337940523722183180392760739963877204414922766855109698499320033214323387740350281482567575044677964808363506670575610937998934701494846235344597500617353358625513244858492029348775999837231356626770674754475728312022785146702438566093730828494983792386541953319845083903018363330500025305078196687211503490387227267596173048902359519121940825479662246813106327394741753227413287722661860475503013104586612071292128461843234914046602669353009125731401096849867902961178542214042772526551714929200765487689052815162522311636262378607949988392760498553460016618705271923138044468957438381081618281302390195588866108350394049950935229686244983150338155369491227697193381642348555228347813389743473852847069118650491469192887148095920843492553886921846750886935013377796007933223858316751755191269561675198504657945420529733325947296331916783911630242196650922911152186370446004564714516275345681552225508175497606651789823343016665855498766856005317890557764591057669698801725166597741988819597874052148610260881752118461090463582526411966447022285117926370956516171762505245668294390257575810372054444926814550038643570305141395606156607604886036579205147349421655180537313231439070160469692653317073128996407697725956512892913954232802926901361587655290035677930308645706848306510923115641188475401048049230223941678616680532095770218519366908881997250809455804479472565088794269619782124396868657537116994399298485875300103011749083884129836414012764833849428701524740397145537399388533578151535064555981814013934098739950610082744470733261165839653894684405637745285357150823266682327426771956606006699012697401683821690496757214597107764935532146616119396606751802817418745419354236070888589077076213098077232979236613827994491282523868399049691174022722288082659339381238099262591122090838756831515503957809596204647140037458421422467919246601343883131041752602964575247840057753658150364631185203276012409102808402285082406646735918431206216647673465512305523377643094933633892646168953161018952906102118750180497044528626445583285808297632728063483203360518370858311117443322598438777883884603045613877721391062222310949822705139001570831535267773633933506564711966132785668875669072325144434108115903682723723228642533044322721554775142636023013546253618868639301613855295298489746408680476658516621202039341415284911489551007841339811415896974310989027128196470327661513522041481847298368383500863877443844338672648699800627560624302649178411768640892758748800705713733844613429258838084358458309105816930256869813524500744909631578778041995065845366488251959841549826466902892844997471796264364622152377290390222959870661028221670810333700088439123557655462543569599205700796540654237010192732442214240124502678808738276671039523592808856101815813208602586748190452288630203450488477608006328907050710362641307153209812323378311884105831471281260330950049591972249212100477453534774056858437390771181929032728367994140647636372144118668583532985729378094693042098320350330938914866508048158570335626733770192111467160405643850618159573919597386373753442046080791145066253277678651479404643372308811920089727019786153511839965491691603827425344760486976264743187226915288561064471013455268097813387185728777167405716207728115998731101125794780701086228152387432222792124845066697277357985025725506148208953980776605500513277226466665710543135462478948529498611616177866783614089047448702816975145766621904566174283580925040007375584903984491988432079616763372008979230557949992091198607307451020670467309361772846587314952570034587274363566257398837712539539330207465333925168363062473681403667810286232175322061893444674210880480333366698570955588709825703482633878790618457759451923047893902099004949226024521081408738463708513252787722157388252059688115693918247676031274677350862231403718380073927232785613083176985126444494385473111255369489832075392379035403408954079300686939490861010349303458512807912117450399337415829151898332796585596923734258229970494919640224960421597589654808456380269031078974894341166903066075419418678299637730901550284836591417220495847646450681182431509768380528552122205756500999161755721502507806810261032347755424456541809100680038391178547418933246607179847295865320950870542081231425502141421585276404330187958339398938316798250745781558462367358834220503883077100736752187134420335428771851160759918861513166853353954817006872625237674255925969061383479762449041379723761514923455979472562132768513503331827640683091718405241234797055917504536391321382795727371936586396771237164765542890256279335106179439009845965735263190218793446865224716661153956032865896174491006157561250950074245936095717471644379584554028867373737447435293229775658695053947094831229413148828483230619212725773412390555932163325182122007282375023204520445438670020367008622801424315773043128135173641976568401742217512463352577774281340211950845328560672411137388639792797298896791058071872060882810526273975247827558492613000084058603200792109998863645553735206902186511263552642697045300626996263704627677884771292201138672717616704686722233389931199821391397818901545876381526747676378724654481352892897790848373761140646344479667151083715588026847615877309138848865332962942649328715731562090994069706278983115481739665446187727998781173320822447546293402951103029696010222027984945272313386913466482962246027270969697379141025743853535914477080102781073616259493298017916543729995113047071729428468464770145800331437699140280256906581174614670149817862062399490043291889169703955457665001293863493985969053202642945573572167156580941311057726539193551531171996076469287142460227050618458470745284063867319994114433050897395129581080499999707899330607265731067686331418323916712536432381963977792900982943972829223957141673552416030509451057102631177413038744087438729103473488863446409575034892176555447750931826458010265741953537771305043484579728103336432250203700193011390522125445573532807483874668916834133960331579686802182691413071364187231381817308320854225570999501192911227510993080069333021575430973020880380354113775375658428637498457483060513861671322982278657632037246563332014985426814505583060994972130551114757402033461439558900792977442951311885135608400078196100762362886756127928013051996196496465585763125539223360022678492262388431437255530814980934524047373950323074625786572952554065564443140536783907381134403173709607229944801368725148653385036538264172923552490687109541745879271976659415520946670355960351959471728584891209727132116264156708963222621152305818296417959652264262673908716074655777750237337100801806489190001798221646720707573013653366820774985557690441803269821776605541831646930409131055838096410893620764061768327635043628446533126762786051652230771615860283203780459242461738364264129443806588915245169190186644553914212495506455710670824242298673833311315317406722533308179017726752183004146243859472145205194431734211575596029015846269905537179916887739707274399552457243521936567051750982994587715768727611977954484045206449235007132654222970841119674528660690536456330721840848894428457970059550204823911054446006718446774692020002109400139851568368621881623786955126306701852745648840039009731751948099629744240669536100426188508829714930141741624999434347797542982225552501527743598744543167399626608905643391784974835896804469505673204595637517642377930916302916771468905230094179196708382792754928637225312108427780837785586135325640656981105532702584207020205107411825349033647534471993296301458204005771864457311074319400408658203868711740359115919161283681363505653838165844887925884445678863261676514130809335295977758318572914882943605314069093808738913297741747303253051077923816642809109897533203867671589066015845693541359606518640171001558669439464825836720240547022464625130523464581482927228103833292420154295649165390888135241608776572278694122864915425958196927400908430972486598057337690693741492549612112351287309769204118637681004131634391092277014294676936136833366013464510042233717154106508069625985995152672847124739071176055691449517646118808026392397143683882558379937975319737190401427311254834781501229459901482584258407851015146360099687918029483365686521977878696583934567680737470607673256380967527256756387857765020506423786211812425496430157872090775625329002054475088800858259124179046371572483080923930320742531712622686031511211781723645337888924410762947658580484329345351965728652567267532340137726514541041210772947945362195816818308685336695497681579033178821109170278093487859324632892809044811407648779084172006623602432340635843358288033814134988037284881931287053413426888033320831714867352714052576277174368666491468921604976361058826621846500946110261860374948218158338896885666491843832600908056761814100412229941449683372283596213051285267660858948917891603824542626741865665616145303421858821835224995955830968840213679453633124716354522160417649321332688424531085421425175858928889134692588312298354229470003549538350643434480314105135501419828504563051265741798932689822566120792050693058920068539340069191309443516113595184925474048200524781045784495220527644034479435731094432022939778683067375194808400900369065074328757009210372872280704468315288428474138169001371884396258438961288642641267248531836689013495730554751133792644772626877594650156926484981028062677664320957680767019184679419695493817822807212871786006894065634209009811991184444548116003871104201411690455210718783453894308231945511913147930466706027481324939223161076712707241523716743948404706576377743029659850392544849247379000579600948395383181562365186940616589728907223151572526555508091369284510971086173946571269134713113099037498325488599212827010726568312803163829688384888789504896543576090110962536955394381414845864405413496383433630985307863464577473346761762406181799932901528457330956964117201336388964865313003142685921527382298125609942818882748451631229160260378410441336383239829355144285674633878086743106767410286756790343791177237751792636778973836604434012666188311933125695647631365566600095502871802499936881879163390672786601374920997238546215666014261295738466219669132954795775145943140367049054784616726094731937001723082723332373678842739112919015380084019385242210899278666630298915848004042444775573442845355844883300079403487434255554776834554625445176743321379193150284844743923969617079402869694060230032657924694816259814013482540624941982097633973979231851071080148602669909985590798669743449568908230893575746630940162483545140850308482731343940872003517768948400677863070728188616232642759296873237278334207937084307827626799516531235925605637734379266365357125750274467389239921940625846678022257827218032750017748137684002495725171897635461382975905593366201516225919113298502606217756202248458634252314560382024406376186917006087750236843879716501084664049660849567294656892314489952080696948852529955617776403008117592293610536725040759388328613791186550410606943640674913803067091642384515317186040195139626510739792371951151917076640220190953319731290378650751519134817334314667712457483720943971116644764523930977373488193178305428351560990841466695661578121439007499997925934297859077816716627645438033416358295797460054318257039129268974475696592718729271795518542684422275254592057695749885971964360332822165960048530011142634785422035830227978882223317779031814745064696687748267099549022918809668808466301428127301999956174523710241221171899799495719782056886610937042605167936655096418665323089951606437644668651652759597202971063527836359409351496807342763430068890256259165408426978614546930686381322603434062251088541851499617484158388282658475028472264520289320675926010957133067036484817823061883634577107973116758096253551643079547199114265331870998780125401104560417419470946371320361892191621131048863810152252304717993461451843354976805513598807440138651131010487470498699172601690307135783814345036111942392794606822244506619326878427543459937619191805944362508279196258930646828447799799034471897834731712687403346861496105374434679295584036872691143815750263650969419829677090205033251894778640618657011219305525767062051341317203597973384651002437378140279659325436449928385636838811946537355000873892082727709269963287727264004827262838520979689005912819282008286476009593242349834174045175335040669017109394693123470409268094173133423685044688874467785255635873188947056399446414090302975137899755054507330934106918982127303132069824329093981673674267562897341891243951639809544956571538287285173031026845623430567404082515068441373940085892546983996639272652006434901217469486352788127458819794611188213662943769096195030588923788727137467552217949482324404448301423053261476632388558531574472654441000347484460563915350631763294315252178422142963448651475912522129428514764742919594708137367947193117477099983162037374597663714686930749476746847269942293367914567717550294208316397508825722942584675346645961711272362541152177458675968716510946711159148592353461336933557513294247109750917251911385455937946784296050811720639882490394332210166764901380865871242285477605749093774726945677597233661112266696355324854638956692988582702707427889412984176439169512621011060065355741060545173486314536889224394886767244532521018203131536357848236912238493021027564875000591947802927134493570460220188365260857047927001482158697128612347825456810825955373563161885564391588750086485000043896657502781406926476271865322461140344864565864484466463964048244212952589016898560876234010832387414511387973285853754172932434200552476176456160162055869011887891753748453183336388622423143598135878957703012362767356278165819602476835145920275837894008578988114349405598310332919482263014305857550753538767665182225158952687364374007795451383750961585515965171841145838683956690314920753869133868295250562935753561415334197450116183531518609026152004512009792705851549323064875349187705977417089182161671809549116951769552358671433423756702764491292646277969236497188249022686443838452291445900708185559566730787242509213835395335658078850709971598201356309646573008314413501040596559297950815440710683249351741608606987529310423815639831559578714859695381024806048770013774717248250713102215175553729487562763369164990028842071068034315088465762937644277432705849904702334238252267666691574784782275657159844095111444724624361415270349416766279235408324530971972712202897721149673969995561707012473725111053505630224796870119921173865970024986575692963247590761785731158671375560027780531025712087550482564833842357016908343800495576911745324760750386338369417827485949194938887896716762191168739229672694459145483416562742412414020307119728920711530408166359816761705959909677210230820220301702437113064064225604984919725101555767706632531856546903173110909140431148235446101971929810612313565786852823196447196975186472907572155052360515292990421761603284141133844990883237972080074140862236284479336201406007371061740455106897777369800380184118607497725814746159055226752973162825994823425654342333993583868983539658252840953930028023920104569125654505427832891612316809390507009697965891057873589005872633046713901535087746031562685489031698279372681828690996339990081089504806145102345060876559154907412722175716293010139602068785442929954564225922253179405506497036411043523980271995208412304452788722306707333236149330335335510883413348851320304781683219445102547687465294723947957335743012593416685324621068746865833748545877135808106891929186611327199626281488540807015686864865614740332247565206998043904090589585567909278137559821805536089254938444804883474455791018591294372109131595319925888807729309782508855884637064230202020857748277054599929148828147691698768207687016838047097377511516429885125400597903519672631451852897836276170955244786409676730822435951518434012727780241331613088587975836937608466109589807311162746655211049325365060076747181021346408609571066547582951006748419667105481613623049682241825348704104887219859827185438070593201847611983979883173843683546952951256147905635709675722926497313207732641010862560434653836103580526108959246163302125159667749021362710069792051869021710770408952596059416665874562123939591297437158801865184451705579173568695098206621886027324850439499977189821887735865752039199307959128416415566100112921872648409122974893523776816218503030694072071166709731368857091476557279530772910805921022025392311318917489243375796096047067086639016296104311618531476695493995716590614564880675423823895107208266747101708753345999020557800253914506518608843130741507560219813433263652772802703146032776719322310712070105304831438426734169521215868384440631405366482838558509326885227344315463896041894001530113551785200536893542846152746476337741458304556693532901593059511594577161219022065806182478507644320165493172113258098540647246936792316444996054438797540643460261265012049294822759265692554820758823675732723212234650682101184077014560152250770070396861179424727092135038039736549915873054668016738986680399551091874661686496984264988608636843968661480568290343200749356558854381184022597323914884944458481430762541875732385616127432500394566521951665590507793824440231634319492248194999050114884375396048056329171080559276107802870738238769079547523778540716596630504697758124804283862983844249434649401653221386299277948331891263330352392659794332626494496691493654029367097076825732613784662181372234889424674038542643043115253362626306691647260104046248356313811541222275054650102829289690011101827391822270272716851298396130684523477546448468914308939873359649048465307018496573005948458676176643915181462417021667085840650780509607131603514415823215938314740128212669744084013665129078511696077624571977594496218369202383560549059293850880392171232088556943785568545551951356170470024210974803702079538644120037811621030400403456655359879411749271146461042589603006295632789571363286919959135079213209850763763789101579542729548850749969124349175884932844630075717399293162373967304679715093648855721262350793834833749734904187706844811591546276475871047350281464000642175586941713705660295909245469066175345670680620759990850812876083383396762086865522569007335659034562581032124387997609082459438588410561538592555233299616218372170009888506370719827607728033063335617319162782461333166575017118072126682817670016350763032900788623104894902121708637561777984853724042177704249028399957633553005097076099266632434452464097126080711033803992653348074413458553516419630478770531951115996213981658042707952074120940374814442837195871416853533165908803271526648800255323925479221015916677382843452712658039265658037842796439046523009579170524840504275603583321430103844810333303510713124116116419898975293149374449195557951560794211040951229264397365678533551463830978336645322827778354648296416466005793813408654560044480718151563508401278138942300545397858546782395729752183920715896206484446467148958367805775614406500211920645346293244276329314305299595094514498763712244680776242303129503104022310269144388564034678424148839548260578467344037397861116597818208974112805978858226549717251512232137838647719862464672946623571314098474398734410979814002002947576454131739600484982675305853320930189512420096968690988119196188724723158931515941482890095028471551738092344666783605220153502466296665011678054457859200242576462599744597481884165240427412951342181370009472028610805227480112647564652257263870396479374792510164486674244957133530194736886557641237469504471208130818801582938812060691353734332737265810378250381289962030457337625108513163417245026111881302335137683897640037865266086794081805654478136300277073008001061467995935584077262714854862927573173968484514850099528568009498136820836135755256350216170520726647307924937069726160148341226035856897214751720601244093355276979432824416001335754394170187313653353153961469110182537606994549571100741201478649664456426210679949695779510094675152636990967148247022930578551473634675910658352266815818284286624209932306060553883296994600373539786720414910730205976488539133341410178688389188009824890956737397384418363749981345860705629171274655668075259684815984015248313501577394350507467476316370873254400106004710803062573903406241926189425804135890971066643506301736685146007229375825173347541972125130831356834985111560304138470564947304789039372649999929814119484714991674373688826667847713672253695223733959442863520255266184399642449556300362459000043886585752199156205834334597510481016161747022246773645110194769141996030146717599257919162216654740665533134256157949007771851815529351374555688092243036719369302109444625559830891728749925254678114444126539023738649880133035860091456338777543884186314905934761910166601953795078061318139091928252235730348385989914991511715718426051790061627574370464616646517739107249486778374279837520676104736235829694724488932744341848129033958100312848063689568227648202981987811899056374603029924138310456044111310639214627982267034333210463205727572640734904437915360442909417990629658573846055520289803791196283019537043059669076752790650901941097459549789000823294116664475595900546403566557005176476585530650035705561650605573900379459082740964049611077806520809198256281868544589240315020098783479071694485993528870301158040303956086303392786035332965877711594149895670116920001986200313062271804761308065369558525574523324528351756837665591421576546035680968270650101762525324122492996405201466536941389543514397417432129546843028374843057869764308567888121216955117884201215157907250629324142621461283390774946569412442033337637427000878543808987408050534049625912630969818540604351537173384258894954303670268465882030566599233729535260468318627563176574984183286773284671398357000870337410138634941347683966399294288835241333785148574257225369954305394357233967752889643929206824121378431419440001344881779146914280886234820051616661577599359164016170163423205515129762194358952940320777677930957581199658856599234166951086806919992167835210267614895601577281874094567452914522145375531598988963149052228535732012033404741905150570711181665025082079408694896275950394554591549429553789549828569624514270724293379016991371215718270066783216789898972887669358049785200791943954469972597768546717527328530965154976454874649462681963918472525302900310251243777877844781778640730953499035357887227885266378374089484267948949541264335200368066518278877360617423994900317718633660836430324901355864341950723435289535485484467474311410958111076122570353070211199116888480942840497487821229726749877655074436039245410415732903653905068731174169409865797484734241058281472059697385422734384821821027274434450170410346899808104492572015585045515231119523227011404911853721983165029582732774760085196263475359245706882252129522329872821140991597123367838670421071744178869841642802868402788094098054105267030560870152151420045179195029947619607955935386177872175197053469678502338459842860007360231121927640919486727505117384735748794036455849091779864525194031106126255720439142265331071401661521943777056205156031259539893441484253613771214173700281238880697171237657678762117625903540439051719039393967217247345146423366224438371528524210852271220627452849506738092733628267604975797336131456234676720094877031173950326660783284113436464101026108234007630438115607623821530854327206614127455807227761913613742882904596885771088929175631083429531993659094276518045540291230455974674547214826414940412989883316570881787016198221947971152032528625943606970066309160330879622462288470382015896262166737776961658825271669623207205027808055540184873329354839135537221962014873405435922141004021717620479853265409299471651625732907572474917836799409511336006763586797711850906779135786250993167772318007956562062076761354288327817539749842391568768711255498574739168693475998583778476985004479850548793945293531220595395978349405452288846058385006747946763122939786548002566029750717947407278164603873023981509201677350130456167200572849827186159430441763500333139127396874811178890124749131429884312537797123910893984702446121624107793294560543404982221726435126103592560328100270642910215550793178012088593906843136723474061427769053405407708519315241477840992707608863521597322515214494563922074046698024968020203763338688414649667160289265256006719434293897789808014712492594186185526519471406199709614409398198411201332650710841919293591016301249303533645490590346037027462293889883294165189338878097925378823093727611141416465034485166633657267758772242439349424886790199888901386076592472024787108990269550019640871536638276035462764472149098758384546683255191879282485734885791486781074300228739353194460184953992393213457105719679897688800996721368183528359736905528332746593365590577281452044227537162285262932536090510112642265434547052614462738482779284653117229127826587663694956510119442242042329331877645901670771865751834286591740666418269280585564911783622406735632385922629910803044602606558569154843580287285152940364459152418491107344265714676458293832107626361471803547509751817265835258587765270028462164232364548679838793674533104542432165024831231585662306636284030624336091539124975880569318483227052775787056963984814319449979018721087049922744915718255819394853909000953793942167106379652751714607051156986471667516474628505108943846149068736579529706537108587482327417286359030991763674293632618807013015025134649813255686003826468344621760865723399153557897258156745847287171714522484303247659990332207964295643370584514846402564177222230429000834866648451042014009997341749400744183671519655158372411271035224033365089876036915299715871273194477126799513533377686694991712988455364790909667560111437198869943155526680761733771766483659910189017279418561400333036211722025565157663398291943470344039227911028391685110924354254610319251597327770223581526981994409905333196065476258761736312565015179217178806521604320380423454978814632716230412837694978335271345240836311110198117668840815928845777381175979671342277479599363416530716577717793480304846575088997071251216530212911643473025879109652669275956255733933245639357622134929936688919062362349988421232753187690908810695451520995459428214180148900356055822776700675188734338435457676480394740810803340508463398067031025723555967999529866811199035247381511319337975069071752371554897649261304471577045262317489876708330161269584562543462243063566773456002730168396026122794616018380559850327661938376410869709215707079792317180958530416080423013461384547172512127670984671676664087849391848964340642238698425238771625052970658134843763536576137435036099140514402792339579851087412322292312987775131337431954208870983036065721148057178658363956920969812850245743721286024895768759922983160368810500109925458562409660612737716960896114621810719745340185465898742112341826409044097294979974125549202119148364693512552623372361466708772308722075286036858486798173081905701043925232006366393717943029072627408402227772750708930682789867262543418246266870111072606831826666758567976497888115755411013149762533948339215569893355824027113088914817431651441489702083243886683285545985871813642874601399047474255121408160343719237073278568218506996675539801982372709280566752429279745040746279846369302348922104334305898759658997978582522813417535311583715736527108536771647830891933737343487917836203810734284798598224003645680357252914137559730745104493003262838829834416715457742552916227889157945451841262937689076632913924126045492795117909122327740772970816305144252806747411997172229547648722450559156829680292675513332871692737938636655985550962694935319178966863067693116242004081752913303343324827838735002167562073200174383340958518198665444531483270009181408462651238921758149557946970633501961014289391433030325117678905540732632860089042870058499023861741887197854303037753960398661928884263626344379134926377217377132755040864820407648763316423669637488118600415980117372588341222874484575040757872911274103074230759376015617990292416254880045127080741286526650877350038334088519801333682994925140057594145476024095863150371619669487934494242172600155993464591019917646915503861368113191124089457975693511998616946787984179814756506647684202262806114082039956312214320793944611257470612201694574951465249302726386628081946593441329513841350642528145613631850222826159332226538114338536376882754378449444155332094789939836736667071073934252321044319605953749160355386495830901443939051535260290499356007026443058870185574701620808658864215412150476711801916984326249840691968907415915736102488393676619819656909714330070958016594150830531348891365549423392946129872958621102161382482412011683310579981130736876375423537871411300104013571895311627452718678666513293090473330825303369038678470709496243631259034166426816700503700860584671658980776309311066837648215201821025898120803005620637777940658834309001340427552814225601798781225763976161911166036566877322933925025865461436917328478976275304667673335578096468484151480146162152274890999184979284045079934667380173374848107832779847520693991193119858831147762521558518444986209061633470457324890997782443617888403940356481789769118696072945264680746261778854252880374818146519188807127759746718535278259378096429013520555076900031008911523865839019939814727265560086599196733424375669669122259555116806675687473953436467527554609193529327593266503550319947074472679914764803834185983737887622698153444075448357538521871082629094703651994237143292695047881288960503755294797935307325695591451102490389171283152656026780456280348356648579128975634548442286733711786663254372555732347921708947509172404625868117108663470894148332516691176332366662551534208956352667989855428384002582278199636709720415039822866459190394127840738916238230451071259417812299670238263809529353163453666455454291157612152639468013280809604476909785493247816083529425699396289887995432977844144364454217729771129041804982268399440166449277180808741189751471614084882545543283710434018717232145584230696375178402250386086378364256811860375633342438435733460015086868842711150730858526663286174901192192545654342839865221929256038621614271521028163853929061163412745756122090703437988480954828531656897912193611555272475288632635290169951564095476343354976044584139152736890134422810520522364276639989858821135723145987171581140644996305945768999026542796729514044805499260147453559899575415831482465451484045061502804610418396493659670551163103979456363658652175722676261716361009790760534626234740944326445797673010233221993055473985184566536484926808899928241018094789155147907233701909798110683786457311188646920814313963015237449851604139641982337236132623657022074913162584697830539877513391187453320214757961863968923399464057253404011387807271669288358554865802890832763556897654916176999258909483349841781655578537654966985405457071528599629325376013897563856021835056872622029274161533625174883057235838128660017912860283100499511953267568050788861277365736105268410575286392669941655069791190458529622036038748050240546014290916557954397068683637961825384728681677395167161695874234597844378672568931039672466911902472582510572985711182961314277069511115580445046641853962893893235408861661033249344410926327881722815495801243936683102841803164338371130485981385432022719425993712609984422147476145639213504368455742611790215978495768003372233896496257652279802026643275821602042880403428926334720305507438724752809619417014433054448228084354477644549726695736391046718557174614578817616938063319881604006774238769035510428929973384319857562652086757617932730888090711090320040050546713589324850753038295729416170955937622102937915401002473957265659140321689500826926225154032431234544587636493093682742165565145146383632160555708292838591082369665682475658505794515044256213333297910432396941493517885859263742501502732800868661194615621447774128329903999409623013907632296343998370355877609201127495023157329969333509580286481455637542943715393997972465273464224466499145834191797542407333252064814558558188777030304034784083760964897933001781390306756749932618151482238751747132292943147826438638368401842023949003532810605597386081345886273060718800094712559856619380287895102459494688514097133061943485956484462947821648392624589708566238769378723597478066001048987767277484958748708057402450933080983428064174668213648204780088383961353516316290473201213994929698275538517922805128838587447782390961050659592372286245946612239304033679611313037097061489324462755060790094508610124764862985388978155606381316419103776552103143148515932100137247414810070541939541219075348119660736075987861719349762915289227896203377223597430984188614308222007996899725696344949649284662050138785927651157233952291787922701867203140955336587043744383313932328752828538619647960129407118004366161156965531324618804194368332226205906633299929913282626394564297349262659417658609115108268646328539758173891452613538557102430777306657697187967750786168273331290876769089690500056051394636412675650422177307368281465305278927915909714856265693812783398007731345264540755826814588964448097710031028972925753683431534791059242366652727957223215231454947671646737917084675434685642461003179708620842598423544388632513017099032121271484026541334962172043583368422844925921331646931153036591681974065694409029889902851239586389823591183546217521933908733975182166673894970728752316831855119568428860009748338408700971125575239345865169875461722113341140555966750694708097786084903034719623191781664740046898273423516239839995017609649998993056028620013506423383655834635254154688827919824075661973406576744393741466453080947867475285953536452190899098259950417266472181268764888946110786791105646450071857155719021607323137554239525695090568614733748467934130446077610091104478985808733953255372748195451594293499919241065875829351697950659168606906812624419669125749698272007791522115582985298910109564905109514745752790749605464154425662686028170827728479564222415566244991906553692632103395796269393583649487158757736671158568288046319031131955808812956304497320632067237545593312620953160657969594157740376286960475722419426350333314065916348266547337745053918671705651013808577777501086886969276101854389040591970526887193376628961459481342568749558234962309661762633792352762940019123557380432862526607168754299093206927453031294684973546541142691795397707928800220623098970847454228290827380965656302374259015052818206693075564610759973181470075448526451478345593480395187687229609599478841212156897244129471785014562285923672135156166046924597603277472656003252379367234640141054563030653517496171851335700089238829935655728988848050607835629527606701172035117886168891328601613662150601886524838352358352247588679120785494637006821641017575875940559229765610587824325654023380843398987005074481475213694040537698558787592552482290644807174187190884659250976779792163559359653599118661872017592382235390436937487236899599125030703152092074116171726260064558194346454825936325003850558935861960723482264393126293200169475775151744797689630964799904452338183266156999212205253311362166044014287384666307506714602879999136051287721711405421214426300822077056472093132121095181335180913326182928023510546903323083346662092907491944018861488038232923821517875179974544755623954324311609766328383193905872671307535845293225964618147495795725059550023288400362857280465563404028144102360673738841631867119456475607853657453539326326842184668391063287439855534961565726183740961273819496804540915104930129634125648711836270257447011854270200944879514542345768921149766344235477726802154253359999195872440881068024528000559966723103024253679716061657310385601055521962047808561298588918631993938395761496388688994315786351394695808845926992296839239890178225230502179858873088674115642266790277690722896912386555684683194000589382516041132276583970563266392671348731144859209069988205113942165848091000403851548518353354495611160252919171870604798672502542375138254415854379732787682837076758329602901475608118395747937406820013575391910166405807484969655969559098191890454942486506969904758361015180488250566745080938924745994380642202396879911696568271609124924431072634425453846758932267335842799815676789612949467764851813366768482322989398025005725626812086870535852898729727297919123813531318035481738253606386366267405299965848267895895588625472384324548449377754707472915255611933309376182757856249852841347309866863866131756700123154972681303800630470453417350679601854473055429801575258188553479890185058807193709285496544883066996789428508813048888558657288063393379623230347879058065976826122772186587755064591591801093257009600671452159969414437344767390307823085254678469558720827865958985285020488902543411329489550917506375805825434066145268119345202909182391040583491810936912377705800384339524361379503444620586334378804216337801014471805568630368981787140892335516287470124800749428101386195412870224884684634595764820792308443813929850039844866349372153696918857022458469442832058001613555036516876111103309516990682595402295033333300932692981836139117707621835617274988351795938254676514698891074527992485888147826363203701600736178000222722442373656494939255739121725083350424646845393822880527995887392097086929828893672055827595504092869512559644633435388110679462583914631284244138406994999782780538272313514576752539325451131421289490868477984441393942719304107160386957657968498661139444748070214379482333916665868030611309541686364835793269629050146026586050571873913468743640896014153207406679533282228400468416241291720879463116314299118260594781604599842946370490944763885011976933378499302790247183814759961833452129417778259700376538251884298298327930058472162842082149145466034966012336732659528271115798711436282608379438356280637828462303183134852757255413424824905539329598386954894706505984492590128315300273279846730782034363593840043473571805195244894201995118373292477755645784926586388055432011954491892640461177271037133101890225075225478186642350178172012910460569602656714822167479441796183913718275841460362341286532309875415609772257410640232754119913210750896565357393243021756711749578571661112263690334640319094807116747550500528572400898573809162287813262349031022948246765349694608243092704097780886920757790750423535957701267354482256718747119678674309229594157141206881696574521446947847229277280595128724327891103013361116484639532446580769964504501093049411769856228131678365978843393570778241378491103119358500913254221710994705216548567648257093659960160533644879097458439601605947044372858477454481010099317090951569769921978391818225472857827316821998541688015954981436009484894851702927537820132023813590257396752669835723821734510041669756302748867403245672928705508478780656724871174983291171676616782441489425691195121376138443177488251920504701056833995327263156424022050631284614575424814779819828789867084164426513114958719708112119263298670066885100877793393486590045606302578336065721890658594290503616022424586314512768824640409551792109088274329976479648415351126962178705802877042124696624987814957819698235294205788430602445082616678417219606390696265436524878955464854643915982014873068503906410194048506629231595405626670625768500363429596983063542436679898061918374563142413971312792059947828023242715213547953493080509721854342067100850015561725802209098705158610903625618721793443396799752776443788288358671435616543646099290131289925179579453193686787800888878583309452524803289573753924670929696248753107278826224405393553912008908695113927117442768799232171815529338108164485895607423988885239724113311116343197379499885756971546475662456769167494557774272278163306747663176427919663901966068481351764419150126728574939733430449934435201961213686772908895345042623683896373629921243509269976943470410611022900038663863121479369871726677675895015948916574420552949606792889203927735924764591435285965344352783855470364613799303793307547969587297873667458721421641397365469876744068986381365468057471862075211033101023391596745872092586111180496458299784755158957262794502007159406773800496300317033378728922707057101582213777263003518393826441990293752467595542901375962346915615833699082288645973919569101327705925743565497546010788268757245841900056613493974850244021099308601170111127151931901238578332564233728575877954912442083105503282568517628348907580329605161671706368385392668262561986269969672737065319285472444620609425340241658228548036023625802774119225553024241721271408120440214275324387452996214759119307882427902193802343923755201588824981066810345075755341313200371792722577368184189692463308521325559406171783907464922573896140356020992662657382333225866019204220442946622553716260577378975533614739926984282317467657236915889978220659115532953833733583371232655462848418121828686231397878541334620166308568272591119899309876504687088185224148366734400281298824918270944796665884512994970927994664413055702855323363141090110467659853791917043054475490208651471503759601751402655106289264258049914401275772538225218544904964993706198308099311862731364913770873319649590149865751352388795336506554896736189996762493499973878708448935084587639033121267888579871963776670428181396555891265253288868838723016662990560619538510507951892467279174434247894003826652430860891522528996349215358674874598323574777105710726802128067906303103629870271568293393599714350473345261967873061821276992276637648719125042881535376691390328014697503505195557415469724267598895971450382009108895920459074548281564224360641191433711522408850246605226617264705661754844093535999606391582454433612320906307972743828865971364788448825583115100642690278892152655183908994579684045454740724159511280132393447749391824275993299669949305376744640229123943493300700570985455724491639835148744211211602208887060778485423669994783164761967113045662048853179928665348215101836218753221328058438728547975235040839716296125965594806562509004206095134685859045342300221198012041293943099056753421302883761420204923542608329607179774353944198763337365934530872960153406592576845105814808910550257750287762896183070815632148415442907220595075488676413010033269427131275933043841242118800301301879577257897865112818038846756620744225282713722428642223856610837771428639510028100335289334013816693695581463549480863109052657389319393141363596372026358344182699911551351182710985785034087744137944038946498357821641142131983063963651102285927084264994830807466604674840771602091701361683343635658514818175794231203402483634267818594105897418685652199618915619136852259915441142836704174567521346825226858606904791318311421700787733599612180169615000286825491773250786307772384920356580118690878888774501507379788710667377520670130332469799987316105606143371488080331487949252695629188504948846162499807370712105555141530381268800974062296456144305490723024094220537731869147524033259220312910691254327008910371068854263407955852812109155569114010200304702608633109657839709049371611966329317879697937227752676691970872563281700786558163732635838116516223506281175591537126832603640968895702563411725104030600928855242866968360156067879868753260797873084226635481100923231069077096122905704462063396318450432364950116220111234092789402467002253286058663905404804242872226207198778874023072585394589350026134410445841181864379524222449601060486044685598967578484417938396137605251767029495069034034023594041441770317923761746580246413924516100921990220832299240357163842142561225106486143595152619769508123569409889871660684225824084687203889255098434555223779902798055548349003456038390937190239962142848453401498592309266532626920689743540913714006862763363468263920367443139320207823383924893249254865005844875084889019287924694705470454888060271739544444829915142347730762334031636023126912080524270424163675213481321976455632849828550123600707118085742884230411340752981407002243682349475152074350994452310116098677440060978745456515089052647694190682652227181740829521172008793832658380573619886353059120834308034949157478836498983224267355161250857294125556018280699850840010242166289923823994914115624695223176119516651767262695332269941028380377228430268627298795779907437927759553101478425364035896155224473254616849856113821440557513923538208737496109485901137142170987824152143709089281233162706682821138723136436995940737814338630403067105535877405758094856336459645916994419331922313909113559242794475741956209248408389228355724106936222327172517800152652825651389954571439821501971733628954976635662563677981920047683524937542073783297079311142032933024679741712748569502320398785766669189227227749766737013321557940719684047974487283689748551669450831943982844321341091362419628537984434127717194661462463572622467464551527870460111827035539823625491496005412247589404932012192728389032643087632902799296220327806015191757802192262783390870115218431954932485384967434111916705343041544789217224938313590461373746926535419955849206554990024510884235871543666648567673342197035378516858391883821627956155585177124378496163812421769252275054653813426678970100770241571991173188143941677832379540838472957114797480722582945011759547290461791134790061572116300146146645557166438633838965136158440967868856210202541599758829789921539471447502257102325816249823390063880350518801736952315022647413574234438632935056838133516048101021990261141357932983617438945863802149767957393565974080790365700493204995027969855645277553684895112308630924872653325268237511492944113957099710383994099902373265466867401629219023296658645466767399078116219007594253428698132483915480053705382931303188891184944086076232859753025453405921580050990660450819510878362868544217416135735232090869558864803804630883976251482596534266728687225945474315674611614447209621997286665778756473672059146477158151008433464651632337776914809588571596493054668722313064386432928568440902863639128752608045878396193648991526079556521460027098974824416317454687180406583921865568422514817219642910782862808455629249033318610497778453311619125869664206271200770901949059787768129938015331776088449110767920500998912541253811669947884313570511508132028415503363667111042405215955418316702038794188241152178199241719560282198718670626417447588388940169666554371514286968010722748548755722384681425025580018715003863386388479693646761823125405615771495874776436404407723574792230529736781112246661377417955945714555778244506145899460105630315953523666856155897416393871419396105511329100077412836059047518916356124321968369464575115698604158307274388464905804726903372670006428603190372058292349568650363300122184222962316359170878505225041833206593909799998336681911833113590374286017592916778157356852640993566099402965225351686006965699039836754880698621493107222288731085546411497968227416252431316767230333442852571411114684141688262952410944452855054573807486123176312456919608300199407800157486296865212596437380426485279082873522139579232584192155415613438312631836864873412896362237070860937664033329281480261595600279892416260282547138087946059658757050099054140284088268871395329697108655095066945224627897619768264377506422605346760714346393459507641806751745838837598333732804125580507630756853153815232263642601770463641454273492984256671435836383387808969958481085705498706626145942420460807546653250738442675513536844061379921387908084710452965979569918407472045996252896659667313820423133817546720899602002184570931209767750890028198857850232546903967600410361350999333354094685203920139301695849539912313643366699905937348824833057600428163879810736372247512957259947019965314416431460781325054557697437889332052383808096857955617046550039778028535773541327110750064602481853957274455303779583400397324566028594997947960085712833263773510288253783073097572295554668496556292217288546751372902049678532195583179453425368186307282464092577589478875435262102341280097741456841590239248058282622668289547954099676457432066068394089961301437873712771849355477341222537395427993163150329018825565606317218815456491054720479211373876938065949178617943102078416836603457884599782043585688187162489549337719977051580173510230290111408468182552869429163066876254496272742021387443334551574482088064691956045127847525661691746160194712373925538571536458908492458229060227962273799907646226730618464032474207395620449921425119448134638166167573272360230169525239527004776317659807415780283434927372965738765911268780964010862280757352655658110895735284689890854689963443133883305523169623055099733275289503255736086646324091262371689761907265249518142762315889662026856865201146177992727367524468841957803615451050042038808177419671744123746449900126774363399861899524891780902571285480988289516209213658320862076233628266954719842633549074989522695633989106625732924911841178528965029399345083214468890742684251041483860435756828910894027117129407103385928665738869769477882108133106286696127765000540881594885582757193422133686497110246735907038866036613266790685459527719835280930609819619401197209686884714400661026455886673197516114296028830899285508008804514156026566354537519592298968277774497322620700284785088958890639137899180530822029703457189936014597773988343434423735267627290679068305618666356404286468144525216048979908697263901976734908863465977148261823823536012010374583034160200194982591164810599094580314241310526110624773436880672146177761236981047380809677508281762411106453738451476142800709880037614573927310639107053652505938447582548725500795913228641287247762652540655404239575943806586661725320771708035431795445361243256213617439882055091331428310061293456884194035808005090986321713522314139217801610363047551287391953135940099654807422081986715511564646182035085606293553290808994145761930796698353937325887008830961374348919996448544278685272222667275580278597812369428392635767966706962967843026424780240134892151799786157607283298371210534988482610444538725968442836290943200384250150767299217483816130959275505680069873002919471596265245208171644766500583049209159081179841025595019457649570613009694033731607686530977160684466316226394660134587918786721097743314851707696465234001843916080564952953382500755483641715385472647868120411507745364524685085171858103166361236081178125462764416616870864648896988561414491853634019760869971672869406330886602225749108920915172242322223028724803832221343188923783255654030444290889949982109055781089117888807806260813176480328510457623303275140759716396855061337077165840952062153268547239745459534647739895242247952481261985204106385602478919499722600228770071816584470386305008393518845692812212745346170956014310397960984364862361420682543067821563886667662360438626426457602947742675912621980613467688663998774567191370488125418332503316255197426109161201138198372669658612940397436078833177659898855292840596171628863766698328300439750774949457523772636943685179366539113684686140562548231801450226719520152073864198030166118721754037365330055880683980532175387990165244049071912567282384714371927723884228559558420169187797549104044022389912272716335424387854488966195199308696433850191473502995875584840737278770997930047856821485711494658806480043648240967444053700027811289977871147599144620760158691158725436607629687652155682019880792701616702255613156609698935236372688292710148528795282762221325293181400057784404725231425756389053880838941595598154479017319967158445792997293491698449279336135105899749665003372906452563687778934659868051141164969739677001670842154241733649012369329156835719194361529765344980810413334066055875206899407033155308846224297982718295492899418646776417429667242115731376942099852260732337817859430331035063474124088408900672911569392896986548346987566259903818111837139195651349523157587088413596469402588043151048733187051591985091019646318262911683907185188487536994377282054015199148302569785237204267674057741787345036581593260603355535601737644410176645976163136001277039161616716406901234838758015484135268412875319814616656093184750529846306161614201880877353639787846383938399265707928422004266568788880934147253527014087243910272830576320425422865784425567039574827824005103467239414597387033675103533576340283484585092359108424254101573618682764349223116863039956339413594922831517944229533647397454478626448091857186614654817462374232818219109088765782328346113192085936341611984742182208646073256150885914826736105534269797680473777189389032403296349334704942211454169300626239173589309836401901665790949336069206032167711265260287327935313360097891171270789579358473114420896450871799481087189246080253333879798185489434935127353202577021633237554014521079396323671939274290802063226181157367824449184483267951977298566532610972551680748727910607182235476813017312344420481332475156791000360540835099946829902429512003423655987945815210485536910084346558462175739495905499252049670791872651247757055844081452849549631551062520334026749205456322801662221143061239550748143847230987863448660852100396218303864215139299169307553623688064235424188029186806240139789903313545208229260973517565639062627254469555884540553459432598191162302232513245221451374204848773413019991147994739186434737916660850212472642123397426044604077089184707502969658249897996304977188264275720677013228056746814590651185261326363689818498905447327412861142531655613485695265284478062485087899200590720611815157056634098709231534916215239296249342291082969010208778043254474510785782567084437950788134106730176369186555822909848814738159253827334133815396009031104262333137174997275844098839411887295670798296572224415094921493125817835041137748652798650093421539121084742586510040760394479439811671681948138447196532421765155402976613119737976719420963487884394687884954936272339148951660258942259066010040222032958762892201684104553217940868923364233932982260473636737241935134969000818757206830768183471590083631134914472877719222630588271074810520057229572445112237646382249602814807047943278209786327967386794910896501212116194975360325405232400881962680727978279505902972004418068391088086863166887750312821032868104116034519147135904257071936998342024829153807973045897682436280212778852265630276406829719530323872849742165866910517095568524880181287614807883658068512445701239063529270310233910799390416679429432825196276385589721206554669521286877788921645760126312215188877825123320282987865207435355194945136088050510105708762957089228556740446909089394061055499619439958569866774624638575032123156979345600357661936629565414763189191006653541060002482019988634076932092362493736769785416272811196783581826017711178591228562742218820568091782671016596393135753549468211850496443105330663566413371635843399953626540237798608445070160121746317985615393222543947977272269103035562637890275285845101927658552456023136578505965449540729226420807193766342188247210987441041716912808077102338517936694235844781380792381989798806624294940189187933952919347299649808324604945174140922975081786222460914600126388224359638573880002780325518734058677522836398405609488402468273757645636617800840733020782975036098308964831724223063796015576024959195561310396303848142977774541766446042731378940499954319553731200999224799479087063220798577053330048556566905479508084631710629984465288570878414847285651243829484448481959322369469702309988972047301821978444546991561528690184772768209245751734040285001108662952910113427670825255717963210803485944897678238877373642194664628193701914136889191962355984402770479101990242023980142337652252232091105275023810643114477412876075090356907767008324869775550221099274215501797875751419775506591483861384255011431018642458205291995860077896448183824429561187721783936002761789098224881023686995543954810538840714423238836200063879743265267900856011054653364190595924197379381344685517588046357548662214118796202007027010622203947291071019905007816151014394459130128409466895446540552756435148762166817796256944780158740315771256283604348978272204153791973381760432836358181967806806598688398726821827228523300776833776976377345479486323491267877342219832328546843772241475504326831838976129375777529175930508160344294719343523091657063085768516894267131651125437220285167928468332320053985493616257317595851062578792612374943174542830953929467113412089319903178162964838314748224030109627054790409347388792065563346028313804454290641298140900783415333215700151800211182640369564684383534986379286792922273003866760676974501488426022764572620010377081422836960317953161818412558667643138528062666089203079153206492399049883223208823127543927056780712052726723967049051555896938788901231509071309624776317819530418007844203880464659203100743133833475992024410116946819577601431317238563784177976090199834767601324788734391230180606193798093329579786089842065493419679937113206977104012233168374543332327460862831347006495679901960655300235613305010509591368937525709662106801001446632612035786785541749964326991077634121371768990183026869738939045846272157401430947660046985584548140736835551491638086562515814839010080379225051427161681079828078411129953656920582761662770099178124108615086785829051590871263605250643033564610975301471372711857740995394615012842518587563387182640735463139529958878826211214390277908450425645618733684568685181361334691848615481819214263440025264912685872318777275539232668718047273223110564563925292644731961991187864646058905598145004734280398498222883213410931220857369098170074447339059544500216313985965483549142235549931430972228096608112301966895154986556509219302268636718850822537370409629184566866434150613182309727610559622168509848441028236002774474452338157714177311764176921091860252647850693320045266028442819884159697184050987637982510409839888888102123904096694104126238862977201117341348873265324436444531000548472641318712143441792585289614462999876268805732581945998842049523671894188360560599747882934529847166406102928406062377756665961920740418418827963974911732269990412442286709704873274899931708276997325144254435149981151642400060479645257256474319892532492873685164215749106543872990943331977728241771422769820814953652271376632240137178388611548906510741949995912293163753358734336288047991454920733177249141643049652075208438884989869976814047747491116437249328355159031836617972451180721159781363328696529604406739196397013543836508822170562656930343865475925101894943775305327760705249159278663475263123772194596520620695338393047270217989635414254875489491710985824488772471039847207062479897815689383231255925694565153088674500789576661901937576770668277774049894668846604061492107288736366023287765182595087958699732770005288090408018330881158367759677835628773329023967791394121425635095484747925252270281039415483046003440096216670247733297618779100060999973871929784427757008237500776323572694578769819125290827644798383020570535853075190190391114543543982600084924620062202513824204022925193457628437528408532377199261199201595492925481143868260742864523050159722510114087946749647118975732472812715295965304406133464374573734316102809817508781707659414174075155130750435356266539203833867142712948912098934945141257092206052357423705471386411750103248456884041099653904760839142657223900264884753040087091578806673754353785428840432215743152046766456848139149027066535963695552694429025620086703776122152043982038823530479000771196517844726623341333284037587281895703585402363981363887481295981545847351977061552222626151467994244851593366422860801264518220559838667484477794605973208550000123767269267247412460922320297016070055377961500328001701112115788037120290033007426165212014629441255367210356933171176449016540632571590036703676774918107171771414768119135751465796428809794824212543514638217359825984729341264534403924110636327627599870844232111250894055935483170542103473861983827452475950392837416289765038407314562522521285840431195227264326987347048063859047383524304750822890173514853334601109950208611573309135143239499583651452768788157471854614696573010177047854404408521091170247671696164941876009107103399363419317446230166532523395068186488509238866631452834523050902127421166830881065277547109329655628627865028692738710364530454834325867252218230195795437420644834170776554052886646443983631290669943702377686193193533631157669963762935278657670323502850336741458361927680849086728778126902378141025134858626380006378968425858462639517890874749390872119423314612133195485253594032212920659267854224701606235830297732301288835465116054612427079005804160989140117597330411436440977448305678126009997482767223215521014436034308106990187839502114804259156668343647678377843529714808813321611415580823120122843395354546701844708329449251367509367550581176490042777926543287106218821113540597084401476203064140307744624639816569431014069094039621571636419677759110470810454286220561181811119787724364832021712322765879262106170703989768050613694393245039810669415790156427682959472076835568374427473620896522654999258328786372121656090324236508443680183612224669382684230914140807770620165460677105544388264000625060153358329186873951642224953159362085370788586858020317396020529759855352718937762290567234714333973237605494192322204474255352552609797305040911012154601156447637768665049194820182654279370809121893769816087678695852356636093855638820714954788765592123892076457553947913458724475505587016256163542028992178397394203513406811125510023138225659223288568096474465092212825827416157669517479607948467531568126997083096788397748875990328098451301415415927476631686948707062736875606122210202784322058217314050767082036739948776856493382751295665961445329498462042793017843549933653010607072026452274843676288442639226573796846337250296029508575274227074147896804020202272731722845324927899889990557489327403806249396614909022157207973508579579636596414528183681327391865735891125713905150881820017223937408342055051095700651179250849106871109569298836485641122105942107929760217630703525178574606493973504968628781531002033949307177429666943923704329973731405470043851781902666242436763161825249711858707403698042503960209788257898965441543969094021727792395012989459597165390186303717951735305334721270357024697574334831594113738527388942679785466135653718206487776373262166427444576250777963838802906302536768616242130606191358164585744219944121064334996544848516511853363719507315346454102246272752733434282775875615945345789404002779174539255722103503715126274560701651382871970635110138520430816138210946342060169672012360510380616783423465985645642601101167495542146662588448965213195104254922238149179206998361841957665078300121590401700088718542661666110618942021428072084308620550738469567924924643181515622030073994531658366988907512496310016841209501043857099860626233147501731767250086150993829459169252132314729454070976391700192170944577576690426082763828372352975382438036743351179672033628696008692468300798594453556681377393638548470719107983756820216450363449091726101160249282831169023674113062073204194330599902846762675560021776054481810969976321934901299442098320864364905285906900323352860935096560694502016603407938220741808503905373467161153975614416929536333196743810626397836236069433743038114239558339345471202778058423971805213225718432073599723163917778457859871886828109282455267779383221294550691488642499153913924631336271982737085094268810264199920206741269506903835272015298744231678982989397834425868480926962729103867672704221657429639864477708955084746318878635568093185089158506254966955933203977717643579418073167927124702515733184795113637382178116102842444409941864362055659192689300154377662330585755263268678024259798944235348183786008845314524388276011952280683931981440903658860924163108094521252092815130563213061983070888288668297598992952667349022430243160421560879514539288209033475387744108589910990244766492078533960127448305614726094246543524185203270862157598639147957701809274860274284312387326976308395929005855930387425949502793836350015559087657696043529869200697310944810653007854458607993398442059081811479340617884955698151998720823356161754550903099625839622831966564391990427793935451809363692545836844121773436657628603820406703976675035008086001511097879003982999860920120707683509990393811542312512748944258702791016270633259799394238176022573614532268176627609374432472981015332150461843227387189930247866412006241634136783059028228449474369553658476927397070982757410158637291691062304980828145442844752016869550441508611130260404479288934242218198638988611936429745136386995768516326655748376942702553878970638356639040616257924487713468718110436379937697655753573470678164591476244593925009879026668047420535269947963156651200955532638165343622946599939685733165983117672370470480775359337973950998201040335163502813326751967096141014276442569308904112246647359472578046849062735073555008443866852766908147731260614409232247476648335547001754798967323592794722670108516958438577633578217672033491801769991173703363741564074237562202243184364672342663237911155279284048653822526639571803216569094512671621622368916073039078106625887373362887074226367440186700590191336879998511851533621458509523806723019313110753962644048416482239973689359729451285321612972337406824981336359493075463552885668930676266099616112079825984778225763793746341267089514875907594321111702213912996024576038356232830590745620453075846994862148267758358187412210355990958993906144667350613989887563591524862614164389596954402441169735525915309301611766950732283651628248667843281419477777031098794356992257898518050903468282268884792276629574227573473252806008147695193430932174387168920617852470431179201544189623010148788628122846870163440355289805187224279771733533761606394715190509951385913829152486761502208714449635235365472294469337079638754740996685828846373619673060671239089560732539630731265075549386279274240062208065080100795801691417893662929278661352248830920966661475762000369760266619636037143348334537653879478453942167742808926610587885071794844587000030144971073663633382644445086050003564538997674347067189111820858542795754783789886674107072937573413900678363339178147226576568786390834968673895486768372660692251493358390415340777292709831366084273563803687801034860574511490212678467998404501234976408725659079579006745951153563902953302686054765727658618503132987253955690622913667004764191177414027039053901567727551008107339214778917652302983612141641765644324711977666655778293419531888513419406805335221457481457073846850393926204398842020012081334934900269866372373819804843326224960137438100225377631729459612914832792584778566482159069855349268419376091845520750189531110427125659117834592274419941161083931919089681223773334595429411805207572250371555222194916224883212618490145804304379231167909093357615106266651179423926158076443805631240675529909031815021350479555259806827373364745338316113535110142220458022831693268820452628957861568200561893015382855430497200251444924601626719922402965873404174208499107965190940109811470627509212959356736362592115147326530922775788269851422265372273564281972367911779096909056346842672895582817632929268704213685452297316552908657265936089314510407553268566031162580838714852035954744992481335035625765713950501773877238852922561011933642121094144049273939181732637656916979670404103266644716035658454954788546669590969238583982109291558481604437522148744628159216621279367576829278075941210852042330619539207300127720647336038373546907811769824608560887734733632863805944947205185217901918205457222680713813335913956190104265183672195797316210668871722776374723749008192335602732464586323875009864123134605691843513996843100495877211523632079891104238568444350198849308673175121684991351178612712691881077019691319732549619434233197955223549928925759472434537801027243659750403654945687872376644370273313079123757939284103809321839603768397187293685538741956139478549422328343126095964074774650139028497134175073611554635049308348448076527313205662919747464669641258169737266883335021642692745944930530943403216479212943503526970594449335070495375115388808145470676893436872935168811628497592131348344356448644560297213969459047363633811131991139427346906069596671295245061949008752635284080905737610401732932426393008096342349942297970861542973752497102835425425868613071792012699431505461911977224300993324920788393502647511044425838687582098623945803434110986178836771053894465818498496767641425883312608256788174643837007317356209173991956840641596572857406116323235189404636923685937761646644136628568705803222896749710231466886394145323899376281856826478941611539510198541443401866124466778743946778585524931958190597335030200813095964625839288510954225160279191250056784277053281242095072169363678749231170195814233587320519958449089147676611061278550508783345196863632240382792018551207837794245822640417558387802454357137666036819718949307578646605284123277029619344912625683313712130999091051241561223486380740499824901834816486729531545062638577302817343197746352047296887545179740296617148032321128864219372139362328135000839757431762923591214340037287353858603148201825776378320334362024235330419995682272922243123504413736005303544160097869927402149037549560674053692616070446861404049615035805667374729242816927237383992478240584329401425964513322865063097773305203888123083029489123784378678162899381838216963613835478292247353762021540677729780749413597392725274406836250072758277331022503861654894041555788943092980089826515057096432722019692991186778038455350141991918971887651242499664004934264411176270267560817663332901409619587109780781738784314664327556734580439021474998046660168193664996968015063292845889294010183965437990947407274162494683064574745767279726542283381570249302199435392346549712402340935449721231503502247761262422011475100794317668606848738630971563989511704283701929752414067207276662724480534707401435088421633978871054438680974556988976898204459407565121433375510770824925409417310185031655161579124369638904220513619613786103292115382662040779986569792510727188384096125139873744961669045303764765067343997187539344484050161367961907568584078756287057570328265116302531550298715442172651852563070244457674333132370227965590595962677185753958293831847773817501914694996211091952536367179084419547625842082448967217718099960127771529150255720311065079793760085547348495050652760021841085873878966969900557715893168331944716837392706400539915572263789336394980867227827638633141645021793503611837810106937610408499212703234398826196252275366516474482240047823254679995825354944341130194300205015907506437589902492077905634227155770839751155872873431389524664898479063260945608804658614643486599639924607577306924413418650542486752096246006652120242185714990368732656026918114033434919019630385683256722770697881723390121452208360194609033354090068741012398685485083156672860618238695532957200327405907306333421683669853104787865148106833073492714450566567445152417050997410262861168039074698141538259967856179195852334297423510904000738890789742113435991775117674945555196256411912019097978815805857363071356923227972355218543301882933993817830502924859754154836978569752422607071980787178888503534634788219384774273673097062087683196763602863269691068299066109897278682426661790282866627692707241543434410835120569131521060997682952840295049101987246224712993516146743519179027162509120735353136155289235426414305536634822786603990473102149097463501704158087819435111090298105462236997800960389592728018059674926857597274826044164174232757733236558572857551038019175933381263000629459649120720974299449765487841305158649271113712074992308345099223084351441916715947089114984473309108551647541572248913054488646515286396377655414966525452518601765935891422721875704619277073341762597748724142320355285547805718388038300603889704728520136899492625166108514378587678173619042251805230752413290659010605576011957973115983383503676664902289471439174431785074237923827874721034942493269500546954325896561041785193210589445184758503816391685525681034136916624344219375718425939668882815279723327468340177240067243372848398148612199706223492815733742324444642396126466027607018326023574083509030110536191433173867668708221653849529834539494722769546716183334929056134411585200320191571339350490247816445401032625213739589549187377075507419563733296872168257781047582751799043373393238751373029704265832262200635380821244591462301344154276212338142018423283342912381232611259418924996266038293007538207685223694689614999631269514967323713434419693387741741654620968016866993873282910369871025555861177297953837943114809863967196850824555732230517815745131276313458994910887996669616371276689988567188696763043763160939330379154538451525460474178171518133377039666551166823297520053192545807759499637941288568312305346295032840086357308107201917616462068016378270140524331569186208678586806657972330805748056714269611879243879303094064143348614273200579180021457830729751586127046809698850269176143498114406029469184638301481373280002195051593581236520902013949407309154759803959625343736132825562070277763115528016113417955954041171455511047902023992271617951844709543220591602995113891033991862293277236542044637909397293912778944131369856456084771665657422686032706814952150637268481295784049299542325891050634586455755256575118409343400211303525200917543216475780390912499121317067991656448418777617929924241217626662806412757169440171447755448520493434123358284461987106341083239978373389052955246565384157601855062511644886415348473940591019882607548804730976954467186782832369738199648495770588825289086043500504740851250803192538403833357015267961703635902732150523252218016350237999870097679705024699254466627414764610300349718267775779655487888823625518338964928363596980159245330162640457532035164507711414040533267247897456096452030573161890748592572072818972437720263042834168496135876565059970783660627490178113733203246375931136137321131241790264786938842558397100493091832208849469393604421922127953968549633846211945002095134275486733848703169198623311333957841172993125501470474230315811968543628862871890367612344082778984697459811175424084524102809982722183830864974421511352521749429872975193731216855996802447562432035651638275863262130546324312500508244264990500672843530579993046435621852462367663845711139192077199182498594113498662167827028387153415014420345806129839886933145179529799664878083632779109606466833023110118601746047889651339994497113982657690800705116032350615925451327912641404463017913802034841189141390047981259353403472908975158661136520887517945904949425599262396706042605471281023974773719762140162302288007528547980889387752799502845497754302293493247576104563600086610269428968989491317351512248536234806249316176239130604747674223417217233404595732453168174783345822525809094379903873865445492023421155460333191933020761849834064084283334152543806706390583268617013621650298544199419368059510034215726400920444741529337551449074144578047786527667571607303482826267565649291961272524722311433946899980687059693635613713768655645555476499544352579365070570064862950806031085865393039751293318623222197694397116722790385877208878363528891095954659844377450068044055372199243778294824201520765073450875254934615458857754119203515239111593287134774169634028249496124150376988099958338138817420352472246091983554561727056816081777603470834326333260652291485486035571326067013074979298874804635520020131737033947244093771643712238741868547487412321876387273410370923938871939823964724018810765988255796166811825934909091361333521504991233796086185759601068619256576061550303668452589494556413080796553141847503384887383842123864246640230734757309308478186393653611392806000272217871320164217599502527047382305447303414391765161832116333849582415516877396098984491360191932117264318675977717852720314137929548884861553744057762843789361621455459197606261293143501293910226643479182427579088511603173465863440241191979888598227701174730476182822711186423632203135446390966765209594487312333915641109409975043304894968745379214399780142210058671987272975960333230229758950406036458378003789831106610268413708466230063413361637052455721297775420239510674929990627209016764377095553657082667749220834858545498067926762094083547890821512418431187056371598293811705585045746064072682475586741455947167912750901316454299195553684889524661392822405591177517673080302737506751985451104115291033004862941421242904081454177570831311388976862284708918733699096486404523255221093929751681165953365400373629707072093305675089006548872183915905516637157145007924972548359255973470016823760427967003848374847611933547197505962862581053550306867794252704595175999686957042424042748388384342316079922330244413180473354125813581977273431909264206882511801388190262019690587074819524360986390768697701263940145618752647838397737223737302719401349958381872524367103929098945083959011364895098247721086641787989969079554711707375212473754471224266788033260931839624189069263663895362958101520388618866103103939648185194342679515162625229533025527157753501078602623289484281208136062673068005805916924708276904638039540692183469683811208555897406437739574914439311100239740842841452409930666778632454177964124041446359835067020210813259669676254936148036050431437315371333878740796490821097427533362907380540399172202555294512677888351024238703796350427877256280029224523767870888500329273537199086576242590432187591612807016798018764036302576123201070530659695331156437577897012392391413914605455484433319228016284720764283193205580209930816492379171573067892467683690768877931289733697790555339669975117434226002542328685922851468734650236452281712634457890845879858284739198589747425827395771076643236833268300339606601735518837335442964786110793624023979940522326571220605944656918312435212198662193024723283689485390990779451438261297923238195353010798093446389340168555644054052385884143495787013833428438026847515415332759397435938703212592809711593120301017045061986833598697856214560146799231070130260144954053184969153991232297964400563398239960441865671663795281555723481241517431934778957321161983859513892255444725580075729293310393149377826003308700307121132653044952082663928311320896549180041694142482910809431381037028399729373720585966960534442381468157385340477421792625027519463545261052769438722599868850799263653090498885899207899729389906474687791943571165028807193185633286455624464971032387217041689429807849848828498553017567736753296362824184680927594655138992859545622474337263870944013388431359597833122452090111488240696714450916258731352942945724301566981603810467582973893858495516907137853310886657448900512165604847520607696760106936082050147881308366500639532874357215996770073664972455215942199764164246182756020753717365660576830881754842861168759147246528563121629767958826486922265375026968247900167554495459065872742671780061675495039609478441894061196800472448268648923538485637255240553679027447070238394965242184796515181271034885463358715300216790566964357279329616607032264323218923600425641433813632743711067132912592056861487568259132619880001768712449462519962050994848267734850853443054395224998920955808239977959363718237760160758738152349189634705072558910781243313570953060932944636866714576685169278166157615282126220768898888932884796350862244409655014912344125726220679163497068043066117046338782464663277150176622210511782949460686831495883985851454658540464699778029593312152861346779354588264517868892941115036342499420014188915862780830189984792390869973062812464827622134322453606778450572341224340287338232056742867926775768884836419888788548697672199859707861040095561907865354454375101853005575760953042893948622572645143744138793228003007971259783438431113303168825443468992850200347838288355674565619318294799108159126322180297866947029515290979550492930369425432795803213334917092750480365357174969551642948701148007231181269652208143019300863192942144928987976540688725979738624157659650285138583922979653559824918029502348092119520197060931508594785775891782449037700033134941473383706047646579336097465422175619007454561573213581810184325790004117486961306098246264189106935344255002628215594431882600756596414428599482041740343056045403608507923810830939076706795874379779904509038334481083780408460555307185624469441266879982515373913283451585450932140035625992860972820289640153470934806056602969885407829666453364619776063439176957978658619505472754456585446676778210014780847774897487751926307309750355664542712312114925819307997409861055052897546471049510539650601431951004293957929566785522774951291417580386348844849727156097472589135624834142658713840080658031763721060847373680140915997159589068968717671005075549481119758352299405682357371554259348778105211790722792080533686443797146969222230970702448155413729770100900087366381028735703340150431203180772499625019557460180027152100240215579257861187576359205344225651050050421656198562784150590897025634135320320648787755350997352442472793814695618424790442569601700847969602567169071382109365030455803095573961652635941671256998884260839747261088358137035022449433478526890686630588480216663828449600245174718673913558421000640948380255915753758972254291975982019731348382486772024902757301725052938292208302021598373118374137646017715532891332182208856061725861009367985612329122338958031612088236891583726940737552974401174027028260431559790815410568407600318363688879741067345466992569800984101216782845072404285901492810827503701274547310419246708858263539405158181505758025379425747546598478297218131580201301120177435456245737829132422636755775089499335435685583666417711341944415178524351619283294656929851014188265612364892289983332531379330353821186950235738596180118634709166211052103056833477942312793468238869355365956291605557472400282930887695630588392117934634504671346024939925229783708065981849692709879224668583672573680541160003699611162220874969719238373176124212705290378880612775195826962835406801809940183547541092335158945252433393021047794705680727313090348779688339108348251565704588579926379320293649690407691120623568992040125666220770485417547665039406256854075013763055497555287142662801227796947891918797685169540732831950105891161118911632189630584345605806871105247851535494908080532408962787896211598342307126371777994478694268723810589789656104644369759263567491307873574904670396519122672837892703624257535836289008801172338305852263311963626977763018691948241370903920612369733298132348995816907645871553131332165283614182523516505856561329511986168479037720336243284505343233441838049954542717947825922771165843087116386365657455591363572530723973428522448478209187825984691885413632474511803089216286832559490262616005857373537017731829867376228673366874144283596284727034378202715996145009481419219528890697820754327118391975053022674622042274454525430783583960022380469100301923575205904569399386072626904188900767153632146050120094524686727568644521131316630485247129650444667855909870979258445442197713226254396172855267657594868409951196424866131190657796217789725949493971477341965032477466459191057497363472632158331814176823879335346163671343263170475066266822561221899717986078460018920957302628042239705583291104332806374703766374095455448035520014039617331701793295202086857142487497624017729090470402388711524417693309894870094002994595465651853047749263088463022586700811549314796473715253621847532579789724748575978889299587501983128225340614562883837961417221479279550659924950804845831000174657843591086808944685834594253232038105024912097005205437226113055210370201459586217172406072167780854601887523150583680878008342693453939155172126878617096854460194148298196386001864483652971700929323994394126270509716675169842007542932175322738046208896734289474536007131063033180699097907487913562143969668985340955081751164328678421070744966459783561592591533307897348137795417009847348807665380804966927552217502275397942406077133198426526773478328120523045781978301695300273698403029083627506239461284784068081982175770671472147015968987259233335029382825836509321073632795328107730981498469574096605923122807823618988464037242343122512138494392908459115836227427236894593025747977896606435198728761070679488602111463715108048798733368759123688948206913151004249944708209383403316092816306457245761343295686255192888463203373243121897175525056500727185771969415876148984925205328254287161028208038307014638708967103715446893878982541519158068272436227251639614021474272587878559368013264137821491611537131688389865737015910599167077267580860423344756781795548584099353696734607553524655314649254308087945973582464898169259805887421510852319349455546712611719047795115996484066076153969452481028599253950284568549225600942456517136866005095327862095204247751549121554041179097265593542580213001782537043084524877022439073538338269157269680800511509039044486226543034747284018225904281547503338056931151408347862170958084418663071342796513868024091033450466951389056839237861897396183919297222213630357938874077942892801078073439690260506217060418067538786904056975137253426933249108348795497305378185673597150059745076198919764948435466699512903728649104352985337575106820512352865277242302450148480543998598522587387459223429230944484687874115361178034797159048821569731207136134762297194981669876275088037217445831078571962853091336430298191762649951495547832731940878778207540591045278692251272630365666903418318673511825623135374643173963042058264060213982844762103686913855124683573484074153037049344164589724999084656082218613967950946766789356336302170612994147890277277026521088833201084293222525201807255288682839200178083424938308566590821305543998136345397156906283003768976383476978594733395439375130052813743292612136135428183413186516284918606024862789853699405663481173837830798336335667649722365553985711132394677072568197382570582133784823718005345138646973213043157080186491693814609463479533488164689352731498926378233059440452976890505559317070347772682440428391338260242652317669159961669921444983834889304500370643134881114162618122906930192405561590291423150602600563994751290669052176806472508949683787767305852061785175536864100732967401196691210634323747378784694103397844674081822326406690019281711024650836606375053252527949099431059822730169946616859328746886569387069520522372571016167007367819106304837197339956541484900623430863106685318626523264643591131692159500443513989389613510156236813290847655986907197374227316050208518695770890672501791691319688448889269975231367596770882137476858316829536941440281258730677081245416378941723728922392780499213534262304853040724384302424909582422119336711803722643003736313884918323593654791624223270415056964600657609198529068351324333093578238588374646247725838250349336137748542822469041867954898116832581386694582992669376678068076696729551483012882835243813890379620776528716671838549597112795472646415277966520568654609849265077261881361699023195375774439736603053404461914535578167211695910310827686491316479810395079579527923107791254829815863271133422717900570222184101042167196431537264337692148363356540738521187858758779342447112269238410080357843882585966387672382389895697084635305339416734010644582245326047027450379037744055436994850312699926548133570870655137861868468834626305395303837824913116316827026475192858309428984236742918785806727634157014789673230213471619803502957086835054849988233121477650420631649646358495985291443100918633086960144932295488689396749546278629381974848977096008481753668952224676501052267654323500952644201064123061886487315040041921765931233116516805493564870300301097794607057094172067261015375109188654273126807050288381645421302129454271167858284773668098857726898827343666704691189080061503466575045197181264097906860871283328635975896157062420265664966797262325412031208858475910318096413515344866299165910680202155416638712172528036647479228029806873651743728911199626996318326637451386336394237063370125777440381866520794156479804279352348591199685140001301613544585684397961324418186917478979777848877965850866733803597918973939734916938185246758548058337821436058475722709391383270149933081923995549570559099087567848455721850973537504071609419974376577840172521514819275435501911284092662493697836346158652382398876842523827942411349870724256101902680131964490139405080902603550817413682863062129665422671084567115434344923398231736503623466248790809419037731004819020875183153031080084053080268866866100410297332422861234260298922509197777495275804839896619347803225417858759753780424263546633003572992247316375206952075664074986206830031217493066447431085290855998910642473793214287360724946649141914928774721747388181438037448588005148798205157036892180508196290117756307005083876282305634867783465665236258875061176675918824483021443308304994146725109866626733049158782003374841569892867940164318860686575133399174102090461152250614249013188172809404729373254544888144565501855470597409532879067093840416621550394269949965853336055661650568079074678645459756639360972492645540466912092052334288536792517491096788273083087434240375457047123049390794592897628579984987087299755071042647434492412411230584731138814780183015650993044439948019328882594451161333399680443335268113612278453554806928194142218695596431449641449757259630586340933508753334835276118307380464132700874523815281938339323740525924401038396522110511070648242993163954955193669385306960376044787222938226090442825067018518554562811143749985406857369114720973381246959521238219701834278493596102723689372374450712718907878723893875677119343225541166970385059972550901364877447968823703580247299928263346852809363172721999397139348057910327477746706185711968868416924874436353031862644028679786911461193361550808670690785050063097061403322412330862170841882434794240882003082995627377555450648548050926368715130504858128008226619574016598550782252588001443754126617291431239882396435862647422875117719219990097169817498674819592827001659313535806344545792434828745629461565878376876878068692941031221236462737250841930642777025436995779948458483418007940648663820298429021370563267974683159073682037795514179184053148048513615849642795355752837848847227370790336420336976123889058353659266132535073414937715429351180013033541651117978022774305700149517986309300135565477963919049445397930305669268350870886384545327228214509554084215622351358481352188149950591860047139580619102085517119632963517270048153264059799198066410999691684069547110532781408352895868857075149885079291873076710194830003017608089659815003032756061971830085076532271667279908178345885262516059694820684795092802764068529863898824006200295724401303653719276186567635895686894265095191326396073878716638069001754286858694275085841375351569238759155780152379707271823253542225947248668006769365074423903393866107262620031813731825950760676485452118593274091741372394127794939381331859212524213350111684465661984621572933666586003474124944602285486669710986506506622629517068517169828703681990630058986834059247064070551362840012225858715324447558611670594363220066654280746303540987587124046115946597598504094995014150606527269639940520509036719522387369021454919077989917890727323736784428725554998310121873877059310558078256720001228778854024317369376015477125653444639752891696184864597789573931488545740885845853884459432225940558698499416986518760459820187819866817813880385090630458589003922605991098959570183339606166173423826085712205616910597137070067021968502198825569655743414159195952533339391448582766415988345588775723002459224451955767380917936976731768943184363007274363243444326548027985934311419868681613890769170851593660067155735138626554799073851104713579073656973142565032701992409210395311590768479907248837047595278820503198150587514584778178123285403845752239797891212513743585266967241935297052747011715089710062817483688225774678896713698527326405940717124207049263581234355849177053257138781106025989075688590647584080602111868743973262214800136085256702859233521892738844874936422261358716377790846794636737015323803393187125571566526312954108615433345250000803136015305254680983501524714337676547239688465143008671943009655903382585664149724378484209810836358779045006567754222874704411504445823972962273640411064441052107679531700302018639386030366346436179960596668489895107651122302188087593394981913671629705443219463886460620803264809884256161686628384442429422858678888127988004735788062980217594304137685384038931168836331299347101144591684001195532812826482798209139620493952245001775002139837177026044752044814806035777260561773638558043230711390624169980291673198558416578835636798588284012762191316920436070182403167177979847579981897067234952628773271344636211428570659038297179176558167869035956493441042416553390557943431109116402661233423080388334008879592273980421471437315184304210399052331080591271819388947354232296350671001441523511576190829847708594234797912018674450568771833913247417873305903337229222826551453783745195639904323384147578707322232332506627170379924366659810668279973823776554254733349981296954265911179697007381641911231342999318081702654155451830385729094136734769506966116917418434145905886548001185006109580928025701663980545451693911765694085995489171413323079821767824835687900231666636750363950756054700263436672770213931745939218539583912205793169911048661048090419319280051494063619974784671475288523972946547396926377030113858878736377215720044960076038299382209697066404388950962657077970464555148761283746453612634139050724361167964389962980645905546834126385653629142085682637975022941957584986890413057587182115824619220189625296178835511606524291440815821163136771997774813126469386875779586177228160587632569878152543930689440887991347071452578838005432599710756642687203551608697908112648529405951802475869293326944419256003199153208286664182292106806078913458816548129981171056172845978362346506219792903940615946102177745066600622668919680379924504990933862825106013085832689734052419093227768087444714839901295963252879395516667520169059344521888559286223368059130531908619256647078076087091239828869576289532029980912187378758621216865737703296696966020575169936234730660907377749659057943703504159044008100483189929720854795673091971200640152962764814739763717903169789387861360562766169684996385846896324786683052771340832945706460147871638317110216469814860131683764643688437243472318400675646982733169340944107872743238523611608761579333435964290966579931082317701502421482879955407366695997814056894051307909277822622238660828536173363171602347255227953138152662126224028999040350470565215118732357866385721718564615933609398827544321933287860854718544460760017632024937789612878178475577881371176222528942903557075611916565115743511798052817025815039929271965925236065111580010179951389338475800408586088438817212383939573714073667927611087615828776524382620808104456918184871797347013775312463385185484987968961539047603626728607313856674601780614782938031076321260917518528198001569682244534795826041758387993867951511027226045934842650415502113118504375839628410665164930408693237637129264699772226745977381336740392320970848436856822473618054101581818732405848488356683558450476964274538781433104377498981797445297356004606065249219470843718098643000989659690564631171791183273692977714236256829066411550056847795441011413196392715289791411273261192242934929600544636036216993498439370257632185499963412480853780307385707321172440242300539645211821932048733373702809173257449101670806845596326489801891499925701643531878116838976408937426181602110910210342830162622714263737677101824272820325816419760912145291240369226698843768756643043199499960163177022151806115219705458887210431314290649639449082080314645928157505219239322925425086354654246739676453979372952206641248327795063239628872232705739609552029103939817364004208628521715874040656326055153758524221083527543411639749341674698043458820375779031392963708968801487198575292411811435140420650617179314627732663015673841970865290788344098206048616973320796750854409534771077670693149069185784563388191809733084124637864129372423906279158218837578635427289792919986262607690999802775361719136513165411497505041105016366458567561926565373810543717852031620811836601129558391178678317576718070409041207683056239523142985551836373592516081240162416642104644659128385374048044991636186955944669244337854981250309392843266007436335456534362905884702948786245914931444466827540184684394015381576262330350274257440797832376937535543101873886475764139692940525066995078703654256966035085040596230880422479709410851548680552185674766006224260001780017535749205703926750606970585078020052940367029459458496723626753760289001466056397144917860183529015333720392817551970419297945270857272571471338419827333777054981723312833010572354668265813861044843732411929857336707391333151082782394165846568315376158977544171654219922649006158204327836664244023859904060081066872634611050744175979549283973881900280331729785668661756198790418522269277926116061593321166228105265260512952988350824097688222775876697301743945021165568145730680828647815759399573540978781850812117184617725719595100825686458721256930070640401834087447075771112452518149862703548557294308948257105904012944375649072614710463729162778224016255073613571150133924803957969091922745949094053955305163516934167610582451068427598394896215325108883087459656197479914040900439956005292397164099849722763012451284529492750602353304264630887359177575258609120256616683097881033596336944438421979318734314921804586969375594201440823612328594367981004251311517037957085736102472783700622841962376580461339723594742361302733474458054162910595742458852331330490103747879671013427857245524443426568143602661948952462256517466775014681122264077211058963623236877132094725592037575414249945621049025694407206059454789030829144791468639030538086691221229947955020697811147992679372053744004265585635923965305003635698435446094584838215206439880039940262128582309269458044042433010064492386160557505455306494301489946576651741331926397729836701245520885354139996053832214579955706724135405819639859365036592649656952098933220016634473710426394901006744755981758221343881121185722300784393693071019839560542889114385411527706846074890008881246591312084381241469786484028234205986570260115499029853996193504045787532128579876048332437021850337052358144106899938829811345507965955969691709573022035451244321972672798672154320453251348119375087716648411809930827265057655067504292870409633451115515362489892023922898340049035740234565145073318316178944671913231435643851948345800892148499639799529712866487795342239546219600205749996530892727778567968440429248931656215403566352146741763363438247221692245458489657085549913029352002328033353387512503768268722522088573416077892003148795600009390968585850024636588590924617069287630547297058881982180902019868048608976248894511933091599517880250833365177858788208048579312768532073537872645690225315552660458155419690836937935034468175826415667306819295894770786263702086096217211318209035759316237061972678030112048197533475790639982380366640551273703306980609599927787810610999167776163798680279171336374804353686337555653556889575030845586817592545716520585442418415370766317183622229354379541992585634781070350694423688631457322556753977794489865915608697867737797473982548966066288857966330382268831555645418822835199519307653508877108996373808678184133127085123180528225777441846001198628770752981666239764704502814000937886517516275370700731071423026109367178809305674140251248140714405121155842344912961213724442594037782796054195981746869285924853762874004281215449593054727274167938443432879997765258463703746825064113333697696998563983916300694357372743764692387810214619027021726801438354417720136327957139173045181386256950177936629414717013317433332869653476166505622587965992379714629446996021223441297985803900445418914783714008450662172343365300041341419134752804612115797195456101569529886945628360292214728956068360146095104529457940210580029360447984009508344888006983536751218150480657075476597720946169498881077153863499516869719075435167170006714822201939722471487519918717564602042508243526012856495378963468911166859040143404206337810759247074916169635822593370286381946580114237981186156805940468382088954579191598197614694679317374018729137400533842568268434373397729100633622673326568265811104631628662216470806612015963344969128869103644231933519441793513212666664057728393583637852096787071590647652976683431478190268178461571922152892937410492082686177015755988770562638555658302007077236354298539651986690281074347310816011974191735753476580953044123674618790283523569699512950373950359139301116556544224896756089620233557015173448137250059974964075322859948471210519075967382559780100227524242424113703174093405398933916323781664142160986123744107675304082067644764998718357221456899886353936697488712982949969196977171559165405520401824575319291327516126180298361627669108343178066512391767094436270415770980195170225835116893876552238909450265875320914089790711912058261099239836287950688144919833160599240319220941875498628911704275416615374167495354104294403096903115120667841708573349519282939968755897134744424108369872614329289463774630807789575010537810336001848271762881977209972867496973816251612025997595436447240317837186072227472396608944863759755723444643593288246226099742318336620395970767853119262262393065913148187741578937829378852041873011165591335225171154599415911775644351079358245665175090450304443720674026899703524032626574133557219714356717251203851902570506827856467216777942743518828674083111508322486765994858886228277777075034351221805313019934869569362654513260389432913416568941008992473303469509004987260409271990784550651200762083729622127686312445743054216006415866617093691505983452634406099905538383662325137085028361748156044971730151615108534704220511471263507015423812824733597519454114399342010175093534906264666197285394039544289134665706237612151732229040751424517228383766507366639606376304400646670032221020355425681336485433250595138281458777080200525862614639611080199405571217918052727500184074665997924761419141516266583830137159353431950177444443859186369570845231513261362443205809428858049134528346050146836337921475651868753113081650836980425941840971661737001893013332443962063152443703666868708058984219991466747556966201038326456180702590799245425467833049735077005509628049164090996309638081234983998506691220328135489868106955337481899332696444925549652156689424763813325472253572045041046522817890724960443421985423503765603318579992726061867137154148960964542162279739657698556920293676923385428186839782926762223713194440130568372333253163299223158129025943191386725923616308998972171113817383432537594651764749737684047805858239189944656084366675654483711712412273068407815121759330036245847581339949845979401335409510881372235190331100212940731493503755401819404231193856911310163346522258884717931424679205654996599777807746888219993338218573834626337057637080533611727695972712115241692336446316950408116291742714247690788038089401503562969564235999785730202738405861091354755510568810809247866908127105709994385379272199196641650062212173297056770403993676948844173883872807400164737317092407650133979212447757112761386298861669159814691638817848396972789009980371521009741073483233485478862901975413752213126955354277969209049732173647569225260856416222554916844687962710343414971121354832393601502568879664525917454965350391385427559645684036872265130846482214700393339125924568172611343274990013818678231533555487875736151297137491604731636553919124941789995927206900118450249437445473938188988589909994870134092449821881226371034557671717775350668352370744329709661436574028296619211775153574367785107856247055842337848036846793239010114841235345257386111788146292041765043466737346140884990693909301840041163083289571153115904153350129205608185948508242236216430883920749712668131575651531696873641565203042496867552636216187612246157041485515765869018166708871345590240102149001193674082618450148886951718277479893889257884184325421060150986309146921305357429406533537444409162146368377778798273021428171877308996939978915946194524588217434399299626296659012543047567296363734542876470233656283757279223526660375357499616995277497822363510645986162761950187706518458012175410552708105602506837897005473135099341873603892658603213044483635890618172944693040473675544282494763033999625305916109021541757585549994814523192046153111787607460310826036613975894343287664527879727080335933064668639658879214911682536786121309196261871060626627450549586808886881705680878401821388282338955726367527008628841373726788462430527497979076024034810111300657193688618862941419466419039618672424269546426211898894919941837035835963164146309671255992312094763962550130782990530062618012479828706846892391577523101053969572266203989992425689939909418895334196592868544365532411203782123267924471293432617393764800375897904327317886705288609165202033367460516812657494891320173097165718858855075979361809198301921540809035512627588021296916669319394830205012598910908334010085706515190678097569756015885407945482691914131933342031097202070368721632635800464157154653044632865200134873204565122300896964258085121324097088704849878892841062732266278225720821514954196091037188298623729791779216496052176189104289336662745337942494478527706914297279801931776759751323135897591726370696357608093452867335395593739465838657869697097822817688800505384161740051549533627553739116960467420780171056586054578943408340538931947902761414109023168042367621924606499323924302527275806370730723817437162029785223683088476639517731443447315536180036806851313790966253387392211789466257417317091451153213581314209268205693716086795529007153500635063976903504519373564775772767594898855282538678871455613127054231591499269380705477715167722705396151404139245017223801499096132703071911375475762730764183205283364299442608445510298317568815553995510444068718228846834884738504980796875513633068250979041958221957826449775066031494034976333376637021120899205863092575299535555451898779199455207872483707521419178349328953244164272221346630267487419260557347198288105101188397173843826645822604536788255478005783116525359535750385374974299934647775528965907725680641198612444543535078355424354964011104079919137680338157859888124082779867310270412111800067526936149084280079483611362193168507861481987554559238999621954788495679195877610184419299928002159308728815475824966511641460039344478545027502605311536362960661411458764562124778756215945882458789440367893734422706405107710454806391121081049732454314884291044609032624875915908171435157867468124614679232355508397507987469171742614926962470943682797551505627263555059284381133402702846581289237517210861646310873229690677725263796328578106075916718452286391553642245741136053873111545353629358261548437156512475051512079209226430952232472906215194655922693739244899549250971582010586899057458170103839208773609032765548750215213813850693527456389310721539264602051643413984269885070100940626006756703657977887642447989838551892249095789924436884389682858148417238868706634755767951154262668051986453392916912328659792952037443712560121364648462173531448289878594233958448341946435504849755588675935955101997824909595209184967080217372880897241237826867146176683636107309873541917545184511685159636485778510771157417964122345625322060348757404891671861707664738527618906750997657175977714918831330553481589710345480100417352175372481235698925451178471117549578785608047223057301172519523536462089744890590184092537208857249465980982446582897430505508804620098816020441434497539433173735768169259473432162655021864269664855167856668259616560871448496902382562313735610299599216773212375727838965306582437986361934167944012709974516016110096034633388774745897619760390196518460250906901122547665466132423830313931173487123065961447401392715774835710960977808948129607191792073340525078704728221925350413021062926663858299510211895387703320410870945297667517790829576800864096847414558346635538192425855250154973713773727481054504702295904910886985761030773644591313983282525917431874690790176220617677053385224749557715994940924364517736665019534254770496467561620753904134294071425620584100377426500788612418681242974641438962620463067649526912368569484540805406400196532317488515968286761282020525348289444806990152167625044178591457532557497850019073112745610105447667585294446508064235342524542300723146083693546785334104575811022929807158009052898418613689686589240818903744665532197213760396327147255351988417620985798166458544477030585202012430488228151557838883089304734386161282512675239643900620652987814247929062041124498414702526444608289061624524763208856586733303266632162148945300984336842249887706080383407487144269712424212234071317572331331658667827182852861661352298996056688190784342987157933891496062715177229811270258796573286156739983489772226575759069346395952209351972044703149339338199161837228149142443637640160063580545816167386224640073185482002519163583607846124389598106483593854041125490766678885073229999903351567828734801853550866436283921846262453558427381278099770612072257959237569105082614299156475824663852868695922977404360472262054241474531434974398968795376038578305821843873052410099220563261654239348319557825830834428682468348224744616619256107921858711515234310491241463384057231348395897446977180598238514118936428421764700035335291798471586055924137264971777865438403930042524575855640151130968112193038939128301222109161358764879404902966864071816715146335964423737724481105839087000113485880261948762867971143244586035388495935793356201118628329834686144539057902896488615107186454596827356302253346471418327141025191973026760611890266162338454244048271822963916301956006375531477173286085439109352073593116401288191659057706626842645527410437611344462877635556159696736892995842293498825908521196919177449269637012966065874273333507369933834782024609604407879936272461222812298502393554026502130728906483108191999637963414730725028250917572607788796895920980268559881884417327625025764973970247955002949412014292910253168403630213763146349436783036722040305404925396122082891280259217882169930993366403702503460405156250284469954327052083808634580414996156826969502259175055559912902193888150195921973489620745005656386271300394083359667564840298504426155319343764250663743636094448595514005877610563036559455244852537673497755546762409026469390991646921750598079904444000242863099123301533357462258633887240749317965187758372219742024787959042710602807870897466097952176139003975908154929463674558311125083027827360785464110309134663771609251875612877408170312080774376302225473296817438245747161504826522019201507472677782023214399161674291141584079882935069407245647603783171077330805527527966101831343090668770291033200785569797564685855699114591054312340798087292289796920278769782208737553167674964185737930739688203307778901199240889128883796293678236367195690586389691188294761723017790231991156691364847824756445136636777541479206199401924274738557100965462082628604681177657678828853973360204757002289933035721245239387222888709196759271964727884918785531848072431355779787249035113938516319876309970292674535227291816795651563032786973825908036720947462275479988720277303296275224427128469592930625927920370405736031103502431095913969276413888441473135623212086140032556962585072283217480595962316485718113898037974630217363052923605735217885394840767537434983756105685233746066961167680885282388348314006449052793276302237492516959164686461469213604694667111930344046735354455016400018524213758566371326349821829550645713271156816030528867609217893902394049802496526947508476937115241002257832141665629969352456742068339385647576689939309773378774343133932884078853300006079940287972320416325315049281109259281574233153875936318101779152382887516049141896647565635438164389272984717559572420402023640485373981929258562269542298521073198126994026043140254182129782535431672261635610048209983618641008758811743631578594218816677439210308266385061006969870829970935145745488628790256884444372922519027500378031022908219446429502169917299132141003753004986288718591118382088080814758054143283468913756537434475371319571730302667962660140808695219758288243955028473753676585784603678676368422099215583402126366341115035939002381276721231677486658468560615455932715903172823900573901222480258396141758344045268927077212275827539388994447405411982432132630255829098837716425028568183232904746924331487808752726387054207252041343125289560055782055864255508653322724230360721271747798541966551412660917562111459285962905911356131013941711027118732272022694262229831500397146137618634817588946383988367867213243183230204630618648122675086785772143275870750130044041463146634505201906152483931463923959628083558127317237317496971548025388670040818339013184584893473916586553195921023787597115158308327149744689631737595231437114637799907641877472884060544761559946619165813187337507295863261256548976833849126013038600600966883787684310802379949090002838213632029258993021166326255378959001550035486514021612069564054706545814296353175387366697884205115064760733639152734949196906156022031333900367176885230005835400496766662776407764039665533613821405507775012233303327484071546209510590136287154676463398544974691672242448189266571499007564425936492647266508157334831845906251998433683064277989265184011951685202230904151927418840299057126479490154494212101562995205699564103330448017478556184466309075221421578085570995283106024246317608767935265370518407156215055597864393412838854692594189733795663134986871327948740665189623913424333555821964256249447534352810625246800923852740855982046353164178843934108683690031667708855887117458452158558846046515053790197919163034941812965306022119102800597269526929395590819630250022242829107487189260306508299306125978302716211105535886006548970397113530732014939256017597534535315077611747665142390096059506412917308006711576567489034066068101365512890517473060672274288086565064878341651866679794951887504689656886718983247840825321855779459703441715056394513967296741164611867967027802666407950323239367269853084012941414939909174930682219099494050398141743900186680826194721521538526306099697234101258130110224498583989030970895622471311412163269239570743794007741860579015167427735696427985609123808064716031271156732592968937139729186367045435826262283004756900068188588735267799295456148542719912244661719297818648897014712486629218010628086235450462998633259771165029771536854383226661576708024646007685551835760465917176695668779055684677273936651332103109773453098286936377577648319794222779289679282739605467400592613408493929869745733132247695972130062248156394509330277307912188557666626389256894591575619875645351229351783768946602780912324975622439688594498682207794614523236761432935748211172023055714294490216024108567006335642354758554143109179133524087358578891151307270556484710544017891567432729957681111249518534603907722540169759816357497425789909477671976850668143254167133150838211983052943570381694453796316055426762055684956050290458337043089809838253968456263556563156507434488224660190919469695565643611960644718350627716325627592171439987528131141602883656096096500365117148121556276361802672426970657607952049937060057150711276791886024227952160214332363488068522783786357583752034602324316252375081341761964073725130688077223459366349450555728860954875664786567800045284198445457317448054766431053535692772599848983580501050407490517724584844990668920426189750588672237055306174279243555811436275029060929173159293250368030356967985638478294730078609325545438946749380754773103200572066809124770043363413594653170967395516495146517264838144522539135848743518572261612394520575975506894331539091296234928016805281682570537053583870129911628354497301041728000332733717472315636707312586206909107833436316775703151838700953127715857112345655547366267022365018200758322564020959156431514757023842913901485028228632335338337132516245068772629914920421456683775430499370990203675447596046413888032306478958323479618839785497528365146467495961926814922610219127594405311769699329294182370397062115923937860538278129084098282316561198174098826961682144210462121349361032312102672416795176696453342017581177991843726486777972428814057433272079205443421474516349460409585154897480476822735127635132653747131371844588413631348525781475698682847052333211235646200615785779383613315322315455490114766159962518331388448871587793011174080554155465732264342191065828390556770750802581516733963382751429377437180786188121810789790030465154732497921208720701447665837851493362225160812631109015366459291040616770554047555347890119847612543314178811407097678571449591339638239463673807749942744451356988191058288384481516023060203254683686930236571312515972640863498292540383049963873929579269277633255345529263601794382988535635420255574686904323552990935301015688810392612552415132373717499512151946698191289243710095529188013398912838881475562394898976563007888291228177509085440284156813529813550857221490463359951796086810141972509028533422781963611536504294888862157523656831565407422820355782983552997100511305277545630245399513214131629427231987303689722592694013326036425240928011449930338576602243219287976609988688512080039839307474964006934242493807339920753270321378996840651056111270512847151368599456677431461480815894397111185326787450068917014730033772140232647305022365090451640132424015169703679563729863090196995001653220768736092812684319578118860330568487542767686189561342282905412876790576735518732779303437360273610929415519644899646651387577938117453984735032614290966785938081677220685349206867170061008085471390029019671205708386469342089539749460449517546076147441638433406371195826534134944942010822357719722287109928315283972682459688666170352659641693427786290825246548287724113366761025355737056230507395568997236745731377260980354559426515396979885881347231021211070204840452895409525452090987385546940822284566189049932840804973735483807450799222731196985808107753396654935402024946375509905736604288870357577172385287725641994628750889427507241655893495895071813810211975257253310985135702551395764272283264226158495801205488626903857749220122991599850877971018817235951545315906242361220229010068147377565403528607356460072030528439320200228734399564048149409790825726284173158026993032016607022626438303551746718537584740945951994327950691688508229301142871698028883660691476756758506782752337868074793054981910266475537115389291420007095766241678202208831163476540341054217099849139475201885716810007069379035943009021845736387796433326675597463624911350958544981409629753531057278629787749519479736871376149774751394307595177894061603705216221625907362219670801179489015347605730169956503552056300775056245734575171643879674740409761516594533943797557094669603727876521152833566644352087637033517862999656951187198087256395716216134751060406637584343321729765420305763532044795566389559944864254932078194556896339663786610663994150840653981056422283292089779822466113302285181530796287087697145901993447570150781686449220739443235420114161351670519368875388702250939568953673602814735943107980615715626591945048962225738938928577029494959484158193075586856383251594771677807600865855562269591574179086320055018220954851501035522228109681250721317220498196086056609431062722017993888543982537009279524100151277297644098209625832765060804898947084004825271128900408090065115535882496243406365488112746630014610789674732967230644884009103307376457299311726798296980892752946496723238372594243586218156717246132297534825663219681086861763310478656745328504852937793849325818579012544245333806678900733144175330054505293996055611670289242838667107163400358848832303326262377083888841415095232632414257031044687555983274447904420844022339955380944929600608867542520879760762895033692249528029533718455007134490020881286793883466108860249166034035428513554790228717249431084437280244160864022908193330975663768450938463047207159647579490435921019817094990622717552799904231017019604739709799513857388251768003695232259268680817659421206867433346199367578758958114332636511800371966672678294418419135185527845304112032368928277288708494813271129088984894018721151844729987068795229934743280437053451089389787049730042923714174215816695864312614947133785937143978747353747681658213654117213721367783312126107111590447578940284175272664085602913164869457296446693447710128040233548972349994366919295350164843321973345781953710183901564462890560925698878925013322100533377613742409663810536481833255108294512600108199696354140356460589260316643985637309395902756764034546747447842787242097312589989104773954308764947582362314172704319692246926727563613131404050491668574282995473312303072724169875120897553004304542958991770325613706135007946271052388305072666324441528949012621903044877275125718452340871664923594868453168807603574875458879864016654667977728336540463513026540222335433709501467694443727574383845966963392595261871246745310511082328264493197749983035487717601715035042940434370996244774996973588789894251494681947997271043783190562631546084831898515093334832155311244439319840383367114479892381681383664161703850045060136940842754941313917286065498150557931524262852839973552244224019045682944437380692095266321991408713833195476287482459994079604137642398169107044835333668264284736093911066679602857834516629511603148765607408355117029038935451138785337308260908811919000518184807269421774814741828329566151275820497597093422775271459070018111341189437848314387896027179272860002699076902059638445640707778324612390599009117318775223876335136223806784333308196031094156755659821995108633823607552453798740275435639705126259981541065303474121763610748385164451545548085720376986840865223921855607112947010489181241987389668762833097382821460569631340210817867095572843856995463547886268818562121659688553571165259874641734217888771638615138187669760959670170648770656020009381101500154566365382123464565472139561226276920125527621980648854983646142127846048411018590664938491662326547245755342236534552467573738020208801566297999556256593495060909138267495078820747732357785337216081536825822190682048540669991197369912881758953796421951133437411837004454773700229923785905611286117339827995058852499512308714122483977226746063675970814197429642103411892713464316249858281687665430704297512712720768156973383486804012331371839752140894531537086961628095032696933770490901244005934875066278704685523651546459516283108799292987444784612520104051711121364987472603330558529633617152689673869999839187498626223453032609706617292508064632020334623922190886915365911834952420939328458211560526188320581843958625174731245020751314160203390300073175140064737654009617526873098341155525231081929719605197916799087384424719574956985726228649356604923315180190416634744625146268642973280165742213466220615350181937431240486263278268241148918886143835437801368118981531880556716463249867753978013286102915065797562315369799180034781677709531387565489378314476753361191799248594291150532034483741854122410935923073114660922302966894833463527283135695451602175809743717469027411720580644279817240834193448920698263719532093854868957385782663051413793397377653510813969375225799439104997128697791119631211536763291973807505627452954891133951282325786357896773551694633570182022609956810090589710884211335000565473871827730663074486525412736569083661894100645797805269778630390218606186334054357187255311511758095391709186722652837359488738802796668504768486078517558353269887069444960238834737266749060064837988163114852528305036586581154157288743076493298457966436342670213302758424783973801326213746996972692207540551575198190669045978630897564423558631692267369280071896888654800853048904766712925783457432162002290943998968258099573335661954550584190905489831705740147372756842409561825891423005758803329599338941177383407214381141850537807229822166927226530428556316358555307641650860701972252157350246973432748240596166912969513491765317639705062008125648318860005409009938489996237238086650350760162409130452290605730947277610299710785826016276142480767414076595757924011144567970824798794572925705710330055025422782303642349840649794309865946747964721794465153248990585006518787495428477301504407450165315800337965771333024582390829144767509046154524783378169770914371348974094575717379217023710688536334230586428720239347351425180650071805653902194622317376406110216634616059092480935119027946844265716582343406187229530180601045890301564360752734525052534625264577043245140563720742758763747232729792745292495715457224395321750475420824709377057091899988710130910123563617291935519776552524006173812473358240655045744005332457935386740940560818223667738797982018016669501057087821672745433465040777956511431808779793919535571061289267604484358889792288439645187959082931491155741598183817842894793226980863085654503228308386261732201211126353356909672405700275505173672471533548967181295878184327297453897485672556685602274246062688095146311271645295759914270751476602804829592650001544254303238749363038707254613308446626243621490872682211048452328003949916387356137810560308419454082106510510098412942737395786234640231357251483850703934104442912682890301525432908963191984911844430715049961089119765137294221530173440948267090768376274568825715051790148524330337463049144993859896788127138384166649021173005798052863696662205282754680850630669798260143976025165760718401087726902878406733013083468035565392461211436913405813726265860611230442362608891411616776790888182195873566010064596569439332626412749702851991575020982521126458920685429451972773992853647919812838523517840072741240861376052634007128192274599618556163210245334914267698052922703227817917315027554267722503328891212393038646081219395978635166484641033043820471032124057662313821253702878897451038644509896201752837034038809532936292873519281691653038771766507826638492811187788744650252415885900010247356851560407915562017306844890971658632206181271595223953781910915989087949330193222677277606934383852531387250133911137168258965633685027072007552737661182079323946120815421471825922847580491278083703969436046261867609432899041949662480169496235367804882532280297033161138114951881047535911758496476731591128878155381890907446240968230627731180304448928409496139798757808931514633002515008875923320026955827547890293304904226472387415611975474893983516874848163017316489676717152400888534407192780840260698693750911170106455074878936297634930714350644714179861496744689619586657893247678384355056146334184373236941402626531812223078613076294756218813618366550420589693839992735192379956537082728067244991679154186027444555029726757942725587003375967056990016128741884163688487500661124448748863732957870570437067010648514472819245029083652874366131561370557253539470450608423884716647084760987345423005492924911749229344576834350390283281309714378796759040895230425719801183726956665128090068345021807354036976175716377066397420552051333118231907279791077898050813017824652230696932394156349075369254408352548790011851542838343628808372474079208088986109320442681882472706196092601015108293878107151451856811109671649526002853995483190975128576567216409849463572622248903371955480272211573829064463298364921585886844227730846425298479508203515235218741341215835569685916793605316822486205914517688816812447030154214146928276745409541178024434872427830210040612529197497122418455771323697084669645808967366228802763724743309709376986504540855355855295039301752381554910113171503358946711347935556196375683418654373860836155781694733380555374552330386132278997922189544261189068673564861231648290114662414702919513485286890241986609378799047387751355859074111445983980720164880191389182839580510296648745800052270559085372679169829528155790266405149038797729845014443577232591017036604701092258908941712454453424862717285634247504175972517769716981148057794372052353841405625951644530233564317828169235097915615272486220929278544547586454389634225281875081749972951030296105223420178330373188957469419300620671801302388402749205760310309055606383786597960133199573072755752597606518623211968902483657946731208162083346440558196966882401311356953490973530391687729891368571639801627207109914689217688572277671543139028445512464792881021422509016667694414599821860467157773621164085988571426410278761123013208678739956409648479938733405480327016784276596096298184936020370919728416634338020047393726908125339177716524539575628902286872111589312097257464068665478321600570073288648153040745171393680104283405498471296956960780640157275784629519677501361951344669874761728170817548130828518174445626088923600912172062323362424131632253708969619496190066702497986407009983279196005775808614769436252550133139854490756203337375933447731035467951150990424434601692159343192647247086102757302224605703513778217458719689102800735154359488887134110357776934311608170554279173861501719773976611543512932001486145199223401292326775526728981050828636443773865397306690048663874310755476363561109271551089383589963966750939737118028473446732563069379996594736415760107319723900107587761428720484949681951985335593323491522053280852591778802220982765108751844101013730369960043985892081294093636056549739503196722077052117066528859502115260189555473093079096185318084383428835789226225711298825676870650128459090663636652154581613366382290726946994211541659188698940128266103400559258874077069701103274947306825125086255243241755848295118244114662421921786622934636152043230803153158492627232718672164240221554768609986233990957754389495833952948438994414422473731644328958082669023922111866530683350780150652241337943894984332100128836624748923230467553718926473669186791363117988774338841503792708618562495815521498098435050528521320665608051094852535363071068612521377602643845999372645008140489041732033870308108831406352347001319205567232350535560567720838672867341940711324793600699193510708355117517789868944326357598541631172633533195193894326289463320867311344030028971707711280120829608029090169116778146127291218196655161687050977404659289139594237322452593049646230443551717570203560901470856444794693331093173991317423726686334028140071158382983360649751060003651452089584661117572074437445103388937721644442642359247916138743156892090559875735166555093899033593326872740045499304459193201340318333584703885953962308301206130057028026332656597304196540086168811413646610010408165582396756848767618277026365053643381194931556860666144702686962672707846732342667333460728104516640212228072388337028572894519389623498075710167896994017919762762531696315476391135495067296623521027191952716700919063144424817234517275502260493146460987388000166064835164312405942040798622517109034005006122748069977632386828416556398023146624567425315170665224716410106508572438405249574371084256421610855535009371654269344949849388305385561375957217625151795504137699387390709487771068908064242753874267420785752283580149501864445691518286917768773171774545578660684982903292313554413072132955665053052165303277966842929563210723347586399400786605277167127527849217783214475133490448688955617316061502539720360160894540497840138181218057929296920782060881338750718935734467007145350036970167150595520675258835910755853209234595134122652312618385707913458553278748867076484997174372431511882740355381906336686426718574595064128964102437113575415283201870370750588401014959619470503797992613514567320858992772469420756265720926558615561272428653020943929513029126516995989412316645524741790180817216537405368108207442598464523623556421733832593627150059327250262622160025396042882182630618219326367509256073849697541720192016131525041604810604304928854406850320423124078228001659212984112565417385011024786178512628135611772003616982068918207238528709663430721571040700323619011663675139298317180043020033820037270027650928762470136119124749698754477643726649618088097256102502085987736189355666053876969140014056052505948217889342535452409372578949989641770531579171051254624336773094846353199056826495673353394593551614649117419833043318161724503771557894545540459456012369360834863181186359102426516699998517649463638901636960418676759027331193237065424451727587042123089032350226179725690324832517126633303709200314775969860540829678632586228262076444286346541907322754770726656052730004775394762484524781911074354268608101636358621878925537750825684465938052781370502707619179520744741293656993924697455538906576228085804708140392468208242963755839559899652261832936613804160778151569607954094240025176740242290992502534271333976195129454382468270910829396962882041846667175516109640135749625334616666749283070717037970572407701190194737312559281020103172801240631891881867927669997180102889395574164094444391661968420892420953149678456174422482725660240087114559408572893605847521177092680961232909482082521773843797611206650735201953617883018616801214727380454002545248629682645851068125767739778364346441573041060075636386370496043759184704090995368738289657060780023185634906091376877317665672438685895676733602144889776919136673785429709915636950739503669154584201518481784451796315920669276222785192869178360048261121713732923396578728844795356784131020735706971997335922310087755806100733492386917910014992769862588563777805666501307041911019896047056562466331651695309818277825901583902890284384129804692696272232074483219043367662893262519669814294974573482952801415997189310335470437612329474071798231746284996513029821500364679734203789211263882177695462931526912653855705353292992168545866741381181367706248536782081610893154396567857673480121855945779362451951684020713510045109120529419073809599477024996504605674371156886692667579328100056745509412604192705165249996629819540858158875194161536930105647798622341854053024334723583755679899145577661351415525762214285724026613474141047535955904557970785559781520338663577034426558083114654901877571705482069647734936397329000388528297786042735690637981203370220982560649960235879457356413614091568167143770133902292216837557919245962482241543867502145849122953112190238876006296645912245763826190705757190768361980569414059893009682554204276246423082426476963085364694999867590890753570221061590793039704679418874186292664995458156629988430368027582503142418577804724372898651405695145147935470654714480967795089658433481994062762254058564820672993435874241161357363323669204776238857204241985854709022739461397174206405426998567675557302278077892810049424318511064025847922145665697843968222958272282022478472688663836222844745253798565305636559029556594039649017422703942367694309121893809251495392014474247146491776573842163876141482579237364079317960109679080378859886610550735765872134259356932399791768114920954128964576560964265572706740038041046871471622093671027640521882017357009541545951324074865467719254184119860760156237897688525350128117428080182353491945088565988964257849875434704030132457796959444360570793731099570294096410939213637980009733088551114299348246507606760784572186815008946531473885171411337976659971753100778203359057948468276249320310743493131630458158313349702595933635639766686510809713375792847535497018179831373603921720394307303081722150018484968109881336231228498088090073102099148245156514115947700964517121344939410548681165996764655258733145559773242012058588394354990236300126015442123317755176358430038092427933441311193819060364639636095599971163476515872608112967114793746660570544704134650830007218354235398436775919275873261918014469033723269803412635296447339133961380834326384573339625151280968407408492856778698210399209949642593491183207772268602984987550647427343355360500172412059446229881788534206427030610655739276739141450352702676673224431094188337900191079551058067408124067540724681562642689827982223505645080922012358131704178118744802765072217001329176129248772643806019066230466257358920609561314527066864584903176349431192505427678906497862662479437185079747453506155285554349224137915388796634566241344708243203674181304591846513814612418356148861172541952740163938003079473915069524096379057922517992897637403453016478241877128011064773911021713874551390126187905334171997625143832517540985657653315815837107244670090121342052901922566814407862848799692013669597604739560556519290074486272552351728344383142130925584465961364522805335239197173590129948929685450795208569000071398240601512473418735767164974767539812019095516676864688834313014923892950919953138245192757211063347561714389775325738670670317824070855692052011248525142027193809664839278150551387024519209529820186761220339737245005316936833870608115124646805998390159393044012538626450840239674189464380515939494918841634398806459362079263017121208357731438934784600801698252491149922640222043681176948877861094712375511742299829024182953954753944246158693496171672788209365651144782842032011034853238126565986461891842185620446979601499305226853360056236569822257632543749489640256527943302853588411696792803149928401381809010622837097716509159945191803596216579878056114961146989353782771929548556100500607284018307577257669705712580619669902673332914624589623280093122294856558888827624307810641505039499100314890420365003352717378593372966948612717888271806185188893286308701275725067978037359610026957769080515541158566302985739817321468201424456356654949486636296683695158704453882199309686693966426727718749091595607729675038781513921976537307276885260838598940675409498651157184060369792555124196555261788749238998265807324325203761176182267078781662086841310067828698437169148341621919441947884894888814122455739430579712034267183207924969353216621889752729189968644600782300357576024156211910758982975720248606463577528606376854937088257174659537120247586666435420705108695350410834053177847259348425413204695039765025928366221053619453969642959633781371275617892130706295612408933965243282465661768530089782764655196593559745748072079702368383304982051789622618706894319889300153041787568740440774194389448398011513354975983606239016278267639130465785504828204650110799191455403245567447285059230457249776679832960796260923345031629195646663911837183429681737648947509435607875569570521726465829771508823114248371829912897761492750984770519621729500779346110631672211313739827248875411282401720922616730422781445544900291710566550820675084450200189936519220177515925921112491062550385941414766738078655734968737079669113667556805186249134626798186760781113363130934636518180556710202772847601072604525623169997862131260040411929589747736352398577018695319034103285360502867409671872203064219230999502876710508346744074649308889840550676960358156446095718078806526570015558741280592338211189248617919193248325026579585392178157349905587981360575639835535955370585336724783709529672257868986840668331526551641336256732679647092544937425084007408344669874928064268462849470615490470785476844559802050128545656542477780947011785120562256358312142172230272672845609200059764046969559376942419569386672304724837564164637394299223982434219575958805956520977391435889712227854354302042061659207620965802360600290090330349033043638185976768408465651540836257541684647951949878841151157452884703321752063897707536861036193682852952975604966548556229771519294077777410789537088554975476248354094906721980397628408576303596622296207545979044773146614559036653968034699916835361937659987199327064644589208754559826928885185801531198475823711587276918616701315551896722292965166682376787636201894609973645065647931065291770631099149057581454067219614925949113556060462109344913137531261405208330796084923552195018629963751940825839247341945141270538497668594718493196515957826582751214937271242832305007563089423122353077541855504759125066717600362439264935390223746587367063283569249068234024098971860755378959110324688657080524710839496466225068972830065455690499976522651527803354640182039729303286522098727499809113085911202102154081624444827953843683488097258764768449225770327525615816583593560656096227353318754121146976620129598652426179495186048563416697210656325369151041566511137654797871654035611442138782201550784541180350742526723428863205117228783526736240227749154934093215838624450703543344447426534852758203572356110555817149546402371825012052343222717753002917849783921945747575751507200855533066859268709355857428516960421180072383808451134606492174622805599002407539571463977709526101130596238379744590686035430455562852645013440863073273666645221273188723143604581415763697388575920079868900748731500618363672126321957080484782850119922431473951482655105284585205795027688082340644747025122928169073967227028863580348136243878852578757623905173324765187408862915589000213963274318360180537567920285678694205661749518291166749886863311611205270536581571692487653703308101100635334257164433022563402710860591164953123652591680019529581566569716878722089829327651821404290425642052617004316913855728221300461659494744853315588072096443962525900186314739160182175459593029128146764471854907159790946807623861656736292120494515017245694424605943303737297015405391314365487102714321251988949044507595024067952492417588544713860013687296471433505177894710260882836150352545196200891393842717807350775200927123520885536773659610107645260816761157865279911126441364020438347894104784150683944650659991829374098369784840721164722433151777176509503371037968980257987264794298782934380375412968343024225601141171424109843103592073643891762923692088446074381974950501651303324003015760638427345972550842053706738285737381975220291183741805588287395556400156337527840583681108818859232219030114015150110570515935051659204266382408976913535183167129119294403671847351703864775452879383061690641968039163785049202083532375368720245007913779647117552699863993161853955534573515806254467079407260269394279518841664963582446808887057184672782325198117574360795684537338118759192300746060749589080247899233809748700243504612544563895242026456962451105244535605858152451825651315969056535453010988050054619980376195023069448449870417820045155713929513134411796169194931751281427661537911502417567049287014307726458778121302792456929806652186307134726056151263659354109583180728023020598043619866289531901320190378770237501108552986238418119450089489658420283278304122148660825642727621757681701628889445655549225000489107054349296111952153280785781237798170439988129135307780803146477068801728333730965290560505224857656715161225290955961254152815136526163551455760012912835874378309112188014103372290853290677539029081175339752279848247156258280903962532478213715096774993561531924358594929503711099573902828851480920003404201805306265364445739534654313789083468290989885731512486322005999003556849980737046953833584832723035527379562768610275513679855282272685992887791261493364152183844004971763797972938586959354544092589903061199901055776208414325893800955423675216676580351814216076988773103339361264220892501626460773874540628222010180843183414182934576203132648120920005114993895241085639228730179562368575193347243105505233404084995210092522672372380501354707325886721193906008434165758028404336612341470379108920642769100724255086620107982360626626234948537646510047009084891023693109692888012595898147883125994286312011718316278820551627237105897863753139393593155754539530511142643054694863984385441898201360715801261760944602596503592502422443771434722053472189913964075389759975610462320248575315495975197027285822263646094870624186483294865891442635087673097790703668419929933617567145666268342998252161036528841035859361425992593569619865374258268809947010426743354063148626010811265476605978011313363487562137871097482811743095560659677389023238893271894014213629710001100422017363018452622691069201051546404359597336745194518359615969329777440864799959631814899099158191181585431702659499760064237410504239422666375169875345121486352523826580321066399000264686445279742224357884083362214212216367013277104028704904698704107661924209891946102167531015397343746501323683258582174347441350150821490565628651364422727924190045982627928173176962383510289215686505316223977789552889326957974067072810735702415221449173815927502542794464553453255972689574135917652080574359342036013475085119342856261172509927009839306558383089545168043581167945123497932454373624181531574545964430619737769840935081840536000327716372680946469027856676075413191649327396765897013551062048565356867608127685518056088482335257547188060188105121024736394009262288201900587903622297324803873209742162430105099911754297079437237159337678082338225654872159381355774790000883133640746327523414436145150540272139363545412728214047216043906395252746076119986210223087519534109010363324605870879794791635625792675703159060169911041316192646688843833888138931323487118371117532546982956291670730945867330307346686378526599857118529880197485392417815822040986052153848469791109115934685556919368203376624577611348083044926801958082131337287666615247779475292946965502583924188316437390973860256670610425624076369080230316063016872743392838331548875279875401386428127169946500129853485099103550779873484929907276867033218267837641343748348462673275262228150413433019442463695023664203246656709549525741954668957174865711842372737607802311161420063341855102038653428415728829305405858803379254722261986854645962840693522946546760787795809310789276178864611911910567420845637692287409002295273700252557898166550166462713027304363285524961447676440958840955398955235189266206343299575713300501349485491955161656500489455375619395310909664455284540687400110194847573738515174943361802276964531949917714434711552321531091756247663710953992685602879306426926071004518758616518973534254098311526265843851795293347224134147620810231765982233983619589705623506107420031101522010857559869366513806363473208583317438773290253970788003088944005641297537948511566884998787437096751373565662128344941165622492863101361436274399321311658817815716957514647611116695031429338290299594478907541995040636108945423815334289068614588066577977252468426294904208386301695157661468729375764035329609350782068836084567175528409399765777871003982736072406738436274093962103733092251818675340208290915118352746832725711882676960468232956056193595458842791299790306066571501755758231174030567986161293201724273652219025628121574071436222642394987859208630603076183740220947327403751737027542550662890926249295720219762182387027818810102607987726681615697979238404068224541464396351721567264338335560617682823598460053928861096699277078372779071239949344829679546965113910766430520083701369368997692716122781421769901514739388815106255446955903275359848289246069199303045522218231421429898134832680520391780491323300189568468499550606221337398328148725139152768105806389868454854170062392566940976571088745657629775577341879181737148200018964243110190179628655879394570009929000506597905318440373123516840589309539346699270584776211978160862953070970780862242445373766507243798576406219186339369467468950276849661016973983811632769107630176544110968248216114783972118478681234101364266898486761712295692822241024899501170610120258159360353919553082342241191413633487606331646632251487719146704479285454075495947860159914950658228180193112396040399702480660371271886204031167723157689109404710070719313920170757220530996637919117118083784029527659236482911896608627390421207477343913105928664954068112252336309121369353691861825220671024506065762346780099770721890000371269509751883241435610583749324756496528851426567683450901071777339761354417921309006574818820853190920516511835534325911218532642357027461665200443500396091866492170495259796560588718046574132137658778195122019437454237961785200850774377730892568119083796911100568316803283534278291894716940509478526864929370038003947386410065026476307006323233111718349182180949804207037421830567134530216633885986883825748674601079248898889935729873790801940395687324050498353437925972161484393494219428654945386558998269603530775063356483410710145594000444650260144887111089360768611157987089612360720589988980574023564894373554942228687193812273121320962636754160518515103638935952610393475233188521535701634691118358777747105786443890441135382318139879215697228412424615618171898497087914691569475639778719162193783782641029488418452634043245399530722138275362827560953639744252144740031106141376342360831665385534694907549587097768460740361804649822924254359066919860206251354646010383707890612083350814391418024868770921714103018256048278150020316854989191517758737876683219247611416868756180300813460439499182930611421647472220062873312214507678615777238237357617501148744489259575683641490890529833505450928875469130988527750949676455743900998886108856606966880072737089538572482324752615054733709640664768817706162928345077623218424444657774333042428704596379134090305646655480176276139843610822090557295772910977033062051141770589749604752688524889697225299107549785727296626893092291468073905640770695330540118845195873246595177565147082949021299541556496761453556871560578106254883203344809508600868607227586841115258114749373523392685848132433844500708865640164181095615228491644456645991254861981827949742449557791484082152364317194102763681000006021616873011892742150720229571122850145559962971734772024395606545120561289928015828235541515459401793573444208650201581841251300192276371804635821349678117501758567168577363950447429247105097937524010484938837173993689663240785102117293541800730288174934714838435620495315403310129543544356667866004856246351878687351677932310577869886390333316646369253852280457174377997278188048636641905571331671958372091370998256635570072244520423465262455132182896342392390704449850670632389648276525756172461458593006723427582757521824450723433204497426257780900736123416475376296889339718034166351476900037731931558799113930508800160182532192503982536612770219874940925932634338662729959372810664656687981539964840605637119381877948032125774512646263806322277105306291283662590939682804856248568528395884127849764151285333920108524131032012942835098445000958106967189551147868643832276217207657385234236992312698813785228031634741627792384088255355666286221833323117306695093978043856533285562375667616310648591830804449187545437940281799998033264774525937875916889409828093497114631192937408323882591705812779272748757805520533538574976163115737735785069917603082627231233788650832169589808706455064163452884751192489627464403412658419684619121495386711941590934352400620789900679034580137221542373296082524131328633100472436464259675323025864807492654679240313678174939596942605363517123263673018265177074560472195221354522134478142313577201615743730933287575045075647146047987143592795808955264628429660765369668751370375118347825270788099735243533717639108059552634121658660003775696019920747364908292073637168335952402385809590254579818523669730146598677962534406851687247681217720625309509825840513567751694520043766998232203855770746031289044142552574172720774156011827316966428719438554675301147344625270709020749083681708138408319937920576691936082369772675687358498950220318984249560263040161566716908408707093442608199342388066467557582583427132363385747748643338900042812546325456890268488576418891691377112531250495550782855866310731161633662140545916753457064240953462629103529366723331174299161145097926744686391550536886129273456211703471184139743362023771868184321082267523598059734778572565713195273333998344668460423927550963843430687696322114050060746642827705814340627072951497590158933301345892345933421380886303865739159210152025196046674028381695231679509097173092223152285518591773886931332298492873999844847745997666574838611534780768250751168825214173543396051321853184855683569238405690490345352185838657501006603045535875424979947522603133920847902178446727675597734696967662240470239971257166399152950081696993972679288750931779158472461325286598460875299533492250979499922366948408254577112910845164269534134949524199786887429803247761048762331950864129271913055053469074966066618599637240014425666944673371110983055595588099111016279517493610817746087604927444776606578360086165921058745213047877135001234219195219595533522630062884006342272568110859883603328195295409528261583774398989777627662876601945786066358766942093344735158588278559766727505671718585483213811688739686561926929833858741855947621922146187536009946294088754922995886803616434606791945336080114893738064174127201011834389913610613095787375295021824063037952525563676334294948362489976872075028977065839648076476639028278007937701840792709936306723507930355139110461639139997911726743110900040216802504080747814459738820224601764229633082618599988658681830357733958491371770920489399630546790089355623677362407012265952535694906867878650410600736181569518165470960369916624006250500007997309211784642167571782547558442129119425390833983247737022679901546151935255969388200136257561051695652745203082867760577488350008987263003012302532059111432349278938161292067801475447087490123117821701094786817408077742777555821999779503469022381328594325985879497338313255597971940947861053682609241106344080313049808485455738369598205767833354976382852513856102733652285942836566784664253165981364835822062729438203158048872276425396552090361212878618863426604646319946764759852021757341022546785474260507708409317034426247507174829798221442005724564862317296721583282160381879559922472270655513324365381836072024531792320806083344834378637205924216504768935157053899507357811101389935219270483810987230238394448005116164273129802583657464420881326643365336325154680844303591523168059965124353729616063177822671067404787911291284399573800187534756530107160425828605235960668344919854026833975402031336507439315843173838211895322775732453964144282792964987884561397450481575045438372282517278327589926460138149814455939935298097930493409927222983935897087266601044225702700580414648982172856592868340055796312852424894055311467668925149273384005533239189523349188850501719953012056105855904082944062351164601180655059772244004965103083075812145793768188379652000244007468505489951217800462073559664429396415933759466818075052527468734907345287501401088026791094547310673476542288144128227489279917421471766889261726415724123394424507709201539503861884956204280108069149939651320013244401989719613847274747670553113354839233089499275363538748362904843460399807608229277061039966381324508902280472479916564853111456998777021114341375718137333930908975525821795977784792018798818531657133043401552865721317694191610285257805604606340821887328231668377341168232853078517003587642585736765552766974437008798418793644039551070678490701076782971359335738724157159439180488829510824725009487881803558595434471543945843328234029991057432465265940656202655839607854009965316629594347035230552551303838706608337465640281306728870264254670500792305417591308673513246178425748866365488444712796604149176067043365798667990264632307539698292942286974817000212657018636505982021587860945461207046262168813066862234753336346646522122468112858354817439121795622795387939076411190031254616843169253451610973457392295166964711813376629092693086310240362418241494883964084681832336611961255411369151062827993450607605952771885167003412505200788989821372620430343089458937748310200503998022232763955424038252087214892054945406211907511033790339792641110105601687916520212148823496034769567406540573877486357891228493136635451487437265381338534598535983119818521684766924360679662007472134724713588713654943387544676832044012124876333809583435779757029210027114360627878330734463597019971790318871786666595928844860669118649369693964578516788855544330810993573701608727336754342193662214465301735291445487239244840474930388821726187509376539179089065262344409213580848540455169410646805807429730374869587592221368143276387358352057104611522957702441256039552951768622429366504143952326466962296993615228619850864006327053904200978227826724407679131467838988624619459985332103513490142431803582205001467717250127722216028470143134244613701155463098645844552839662944962571681285104812047898642917107913486837551795673640335636016044762040825209454552958237909874840898508663621219053144422724838746367647776187921297723764583365850218516777030427200969457546603567789752557267654434674464969007424422988232123489932463849516507674244658373375080427348575455867529793031561455641663992349447000750886671909888492925185956690992210915376942778299713385637257402947378758899825299220275583747845639336472654901449966675088939641349026655698170307251657598095504010812839417527261759206287877030949311828157126659533142070704346287532289114719149554727397617566155227023257476538253060498382060868688847452656457413891855697689796932147370174612093095196883668247068203005901392853127650903868112752149876971758427361930646448248872947698430554473835105208733649027840620933077348364734491651499106199081177613010108686182692298522411875815514103231779699081141141514116584281507271250070485673086833725248629950282714705977653620938820352712471592683422176887301502098641883701252905837855505968563442793386366229333727171017061622406058928574658327982961724109781826176966505695691098266475095760016984805628551443965219997200178418308407051788744267795408565381690808967555464813789733250657955007180911894411313540526491523705492816121553471539053722323822287564893730116815182246672678579981844722059875568125742926940483391640575679214310934439196494460761245568736504456614495712375752352959703996871441018962258555147178885693301968571917749951424678543312701891982380667332209729093374007699926154965525951928412107209942612036616467021833922381861538909286033254311539017661127095984121361094004121446347702076695158864285628362400344986261461242964917576483827273561818200022122617184835240401463519728266513896679478481797994096916724567767409191844105657924122548681298816568868342713271070630941043381849467569787428154263747478927502086758966896906117968278033357784622364106142356472238668391709236830355519803052216324085875396055354519920538678511518965321979929664472954255404760454750740130713458674457393037943272136326513198553555673503764355942913151224875839860654964894083298431265402216873723400619600040524030466233858727148721915276507629685332780524983605397606815402552062564317552570171564728728858098684413579509395327357360188622841565347150221839054945873271453548204169806827941961132934950222068828900136887590811277475068466730548461254730186297448706918811545543098232332554213584216058769559020555138458335812209688081302601043806965574279353399956735408149899712422866675867334116119624956564087558636697932056417562978609029862157798169489159166287654805280620895037060998310707970788095751637985350015164013381527030145376324366406769821584305524345686090857214042543689563089493263383100107720635634035904911549230377208752909154138441582727532142796939076604170790894513774130990853319807744224688232866334484454779719031042746892056262499830221650776477131908891503262773955991527872823707204449160647459517987474217216685136869129230448799500278794567002465712415663010861438553218643240870970938995855681506070022672205999219037092582419395728590839077765793034840565298221804155160088135421162038614581428142109996615557412951387770456410297021218228819124721388119784912624882422526429494594556344752794284845486756257949073115784145394301507425585120317266933722220873770833630625267173007794345433611877923708589226609076345312258507692663024080455176064566867449322235944804696205178512808442631724949174138791491895761691934245764068798146432036357641926898283712884486482748550793328450801696153132362535993063709808746138348407034468491735657550224331822701864394269614487584184070515430801611269576202660656355044513080885657786294905152842476738331043871911549916445668222133512447689819428724721934846920043970633228952472619202667114801810080259651253013713444108326837834874794314925955560389875462832013259691526364496124484233241568428945277342341079198502178633575719243306770138934589156910115550003102109691737232189035579515823693604579189004499934254228039383048324525880989401165561685297218089339793407885263450938339630122213912415014370729428980006867932616351193458226912294737665414047519884426579138145722360587282482575286445771805493737733288881194880196695075176628096452898951267214541202971691150341916205165138651070099871792069893408895981115888860933709564220455980785866323413082161745615379924441384505062516661383632174911524383633966985673216201084183436272241173447339442931497244907202224836971109546516928344208455295368942663408581713933285804046479466269478980459901439973321746340916686106476486199645385762881401029817181075039865665563385022340082046469926858666710943817651233835182223979006501096758495965127263189990723405202506714225906413001860810480836206674331854853102132953072330640940742096634380440242773770369493133089810897622365505586879776664397708031645944039888679605454279271613089147384949700999978928499175221563509815469292676693272954182242418247440974468564106103464215583262964018196684828889807977913284827759579459410277797493106951744223325190451806856952940638242874476420422585329748171371153433453294479796950231121286490331558727315264352106757795136093817519372572227624199147972852622110127606805243818732384838441952137518375373204856096572034648713496599548521943718480526757898829313457232025270995795075135895344650288433406989054158984842640636051307973565037432228418861319219718768007558833878036354678694316386806737205594676722848474604405421044800893560112063458128202508853428396768621766814673158098378333120001721235634003095502906819713335581222743447279653085513125122974037512095899376521849173143617443881638567192338590576088508109781523693314429291492844908662824865986862429943826155331631657356520241030140686383655429048371403825903291292509486700752641109770657026724087344495568214070299617512902981325968395297443754655685405849874503431142054580292122957259070653058761015404849569733703260823522656700073241147530140874507754129036786611663294437992334075461724010227711697701742913566772876295052221200884933363072587342705815726710249767608952656800669598114703886920909702870410114768869177556057024707150079651135987566517599674298082165237357731576466007732570607003907858021736865850036280329846479886434092877723630862465064547314511458750590302579796142937053523361952367512378853492261310018509777777189782198732248648191030175584123319382605336703877493330413608403514494980430522676889996594832564667327337219641034727383596022445616450577670999192012735645012948521809101584733482105415325136330314078086246484986089730018603896755199125435378528786508656122247047138644330398497968482469309946168783226119127119924552914004719626381417836727822421051878545457302568226528066576217283464563939939796786272689437495343567311484802625812095365152544366855804002776844691796255218608195913012942000599426378488560857959327884935685737384758614062394587975012332922359486757099418159574133491663973502168664554184640562430816413960122863122930094758205943768643203599386955102826914508585325501228253150932145270346525871067845214531563579495101491413246391252158733484139699118015738603578960932166672511589024921135140863869726709878062617336056739971704631193992446705693350074923180929919791365019683879401860723555475152229490435462959958678879494348846149653590270794220576178981475726065944767875526196740923580369082473173576071716549559983076087063941327340428877064785955184021415555760657176245667103193375232291575089057367358102371269019339658398677006990737378204000001597963559704194537575850937502696567675001490123490003667873056803991337893063846635689889831702117878266001605034057871715489828435706762832212792352916584043548380551023771160854594902617314087125248279229980313014221149009387216512057146602904449763977008348005243359540143374744106775251658256389394110651854221463305221877432420325404373002282672444945825402344730380288401196138790606268299199087029299243465139090619972924931807251347972353923815939145958221717663877026996234498153279306266845557840955046527832542607336016237390842347297904632724067935635815480848283177959832525182993937467576639037679168278007240513057143613099122412714297247884000936376867480349483291883414566773798557579792471574819218589150655037260201662362243354102494949225400545970875641968194113792864160161929695756987210298210689260463823903647384014386623676809325784144832420310454585485745542822395428113820440689675401419064561823889758459017737951490861691901087023284210850892757951569623227728980886361819483957197980548936365814285592013464118909258400544256998858966755558741989924160951275458822021117751291742571462794714334429406480867655647608972802432458691449412759069485189206695006423566214565183861967809453044971094483103717079171929380176769606945142278036856911998457003365987450036928721925543228721713575531767440740225162129759678979393053025497122361747857975422230911425996357124537033488901781751963296292791248513662418089808368241733664880474911115511483894291859488267467581639268005836154767174898571246230122662280106728388178371286780880844177680024462054664223015566770004691313086062728659169639067162752907321917430943428158853517938259980548607745544415407224253079709270317565710864858673443699747925535008490423863995985545622254467065583536179556387909155543543176532265656220105408912631327503580576172617266381597002480367464968513904820142048809879398642656282810948392469845644021033089300745055360786892013890993442873922598541306448212428652606625695013468353790966308271355466523812599741604317666934902229676413179265050994190914615281547246879909217958920321112623749164943620538951246641202424712904554252633984708563118459796945640886435852157704469063574917685295136020491342860954225605988913986001123620832295506670382006417267049719962910751565340637024502182598302341036215048187392574284550818887457144929889405775007297870562673498441596750600372455237744385707537444612209007992976837836169819509785511018907813257266263747451468464095113697822698172460804969860017376148435234103093133944308896270150514141379670789228741495914372455798246300545290897029584675319823234973392217893647944339402368249234397212846479106671934240005402616189062730310070770160030766479444425584879796412179854050473222067049121526113230214113623318177101098485756214929153198901095088981459611231136401789967095189438198703838940138139654628044538662957113719775786627480687466383556913495887724069340563902862252164445885666574994324370030568591952084869023422547442541583205103053647454586358758806720700101481712060608653103781579647142544672952706410306786468756744415008155252715091338232078723290944677173060637945126278767014876724489685683008405866675797089056537267092362742691029268952486121573919874271029570586261348301026488687654409068306357412224506202559013807693363595333532288244299814767752358709244113113551356176558365164814322139908916328259728248090244660658893122580371379714667547651729258718416562003899801605854469689223282781021242040395368111272195330605907779651948701619084145326014888504664370957246647596153632520353489101046055424304078166789814968188956861130543477674889815633097139524801229274762519905368846769879646695927967741459067901031401990861835900756900987117749441904432672583703869354118385138583013147700698510538374979087777058678437803643056525712941995433374755663444919894693048054535855585813974155480303429644753748006316357638079246763273189274435729785100065420325836952841193591635524066511766757342765738974540249231544043338658097279151932451770637708234648656275297178400243529594252492606603577508214094109899634694232632430817339104951319592435973194875493725378220252820630706031946948658353591412409704314530148558822340214885178452817675570781547994289910329447570975779037149053416987481870902497448518434227239192647467062870651845644007595737790060331507417607415335881237537720964203215549143475152845404020130180015772565741685154976363495748251335930612568007560875360300708239129390505166294826210767175370311031365495154741733201994285948847294027606552620207904625481750629124044633880964591105545124357561554410467042832673327501328398106507338843682922331013261657141245674218434206229053212865504100651369070691962715813955269279302484778428421550136722896584575008340146586198692382038404516269283512404475351943827565771075547160374321306494415562245376855069249829441105679590417464928987568457319461139902723232814805962933896701714749157197583958192718683638126145929097351433078607677243236127203525857592967884534879812709326140284542617624471990941054342924768146302125363995262149811004751255199315445943227541823460459097527578635812978616844060337810653899841785286435605872213847588933023105918168733418311470341262112689246564610947027346729057449328421531024639134146952144874629372542064180378841710103567975133409860986120295124571647980130751652212462919580765632111637842515888864536287281606730584175213675709644581822255426648429291963132485762352707154874186656435562904712728575727507206699985532519156778541721592563995918568133673640706120007924943562490775607494270778791707602356127624213606537479087819678542419988267537838973939829965535682590534467914490893257237503030997592048795436944818275631006101841460730850642401879550321174305003531079972841863605787093106849784087611539474965066149454135794412827218305983139533732811555275356577761303159650621024148764368291422189893772865608064229459313675155633988908091701199987521534077092065046317828366721348818705817085809293735337312397802748513299035469260620131867910879707331095539377535983841666931826427091993146313941969499502058134740542349422343092651522290174185267796380266824196039206574713658497223299144061374223738528137221320264706594774678882434252511693535515621349063300213724754864089827048865872817912105110181000948834677665412146639859466134712077632289618973048776251957406209478788280837271769226966250135678411469892595651066104537992680708085164416905263592465801752990412335415850598818794494431532833232820694076448936083419309187256547903875140517180596078320538350652043641767548852876051841310812956365716883805104366611289307299791777859328170185757290110547376878285624165621978896187571746403805420253638938272096307065783133927589372204870830475429029828964537413188157731063622143746997603576932786438462519890519855343951527336474607281912992203738461581352794695574947003293651380179985735806973388993331140174882217359012229981009802995264722714509977147867218112734355024406994618241526145205030411966226133253826813375009254197926776830013253233246455260078748332484312875717054754610420255803650553046832308368713253110994240213527614610495843312836770553105460156465676490882575470887941593831251056755830897573208263618168837477932563296461091373594198087626769134969550066458346524734129762101761754874298378170462013059638579485610945544914235326875283137604529979503806293684566358775492417136814006896652572821002883323035864655702568450663453699309022163653333015586103798538546368390743892697372295177488246011732007785043088577298792302993100188528778545642499500581462311972806355661714778163769659283572665350627338007684419939474751857064168033041249575159608192765945699950539168140212969181887736364977514217977411242630112249429410884209607385762215693580513683310529191820842923592170200287754770164263191030769428607236673512012396906415643281779045185457789557944808439932445522951584063828744793554416899283788723122107911450645955322480930962900993118665619811843447865408256414964904533876642769630817695096516470554669211514521526565511115071063740802007169474410579068573510866866277068300368836952156963456492865765774528594668578148448420839764429135263462068598629696243213155681265543470761847673881980533236363384044956571500551868948735316807065841177618203794939566660722010161922759258737657046623557226624083358466849849163543447383048461309518508282813070864346652012366089677850628984244363810091285598027393285758125191669326988095604089856266578861194342214944157879113197557203178421682607140107327649772949649128475537007012422433892154504429379305679441897878035709473698454565520312824935910443161973941955759320876867542750716471474323060054386436411038093104548376463445152120454345498698475080678014227663207249101184536937293707726755559956875604871232776029955565935135356053181175874962651143754310814680824100115120495552115983880604306039251674547065259454642481135759665664288293467535496071884710752880013260036547533029070435104387476864067213342098887181333930772302350004466181577128966119730196230376360203624965242910322663830828941278976517698649206181198299122695007992049175897284531152980877894087665537740311349235762724083339016999080965317924325683174009610131946870833609246434296602833298188923522031423488982340233143004139497103360651761742808772290699492012940790149380402265840413683214216983461826737952146576469778186130880156956799133229951332312823629508745993019772138312627140511603910122521539577070065025832525817446509095106261916522358516361887199253359473928153428024842291759910000688660043565693500322761814400845062366688577054882647814564277253978820800953394730676220202419414746839572329076974712044744387408375707447203872268111511195634508753357406685500687195093832888668919717485690193691220150406781534773795933347967562910048302422757518813595806412608840024050978736438009277161896248149767709823481306487776227451180578306581246716899127809395494814988607840266496728824689079999729912018022813557989075760909890667070031934233432637048556106012108693412441892160636889804862975734725086179002404742098103861756058958028685488014829097694405426885073562202793511828787143709354769849278559240381021229557542520846671176441037247296514399057735494157660739845450559861852809606530239499298909166009937379633436876202641144479558265483489798390371873312614933695045908460062814129013097993206646157759200659956538933997442585070428715451622367421814835952899508889404316323948709043141746275390389389082020274411679838154031720147056941772694882569193923798025035872907736513117233991215207975314876590034698907678564980966192605145819892769169592885208496566629197241590773737635252347078640746326885371118748840720088975157882468928891014706854404630601853095554070714317911937702786899060608987324244845348993346950901648307546605497821007383762782799806488714571264584633250717814362353513232960725676206015967793564156119399709219012484219793701305804745232943569332838137222682362330531370079550361450402464313232351505265079381235641354135169969069267217592322205951882183785053959363410323933815730391806926485402916833851114499665600606734354974393938047301178269639566632944558801769282730696369123440659760821908980879659316839063267106143472455658267696059414451157524593608560216763799462148962094342820002543056741848607070620058914790959631018909080137894540911122496641606160503427763796461859716949349396777689053580254720563053143036783167247740894863704848385168542636383480325305651915446413379041330986319810810014659405130628656701109690629275074057376167368659524696047366573971721462902418006180425135689251426981270018051529344355479306605812891429866511477655672027699301428549707063751474185455711305484687340127284824980307338182988949740820632890447154646498891064477958955413791159234482043948323435704751923055190391258485997238315240821715798388782403708792706693404563827216902475573423134758999367663774301315615956175744934792417869594167054919492630829889322451438224727419296715886497588341429894125389012021828156558411229346803307518987416135832331606250755025017885603133752629455394402062906244657963256336581553823140199312332150517046313607369565033255196012389698495488669419101535755632124942588847996084598808073645950334498976565076748991148908072873236862578379140945116243050978981704227522823765574938605033850985424827389470165777750420150256663175816703636244677051729120354076959563198638289310478685783392290889788551043887371652911631899072203691252334138054770650174161219969605348733348412851635012376653499898968288763092314285239899818078280107546826550182683204816819885646007043279555926065278080932772153308781922634850337679707784477244173549319753820222893029574697192941942663799291246777326409999916630380948291880848335343100748466148300766513102207472592260302963171127899770492152274329169431590102806182963301624252062301863992520926265051272023628145975676807290092856717435536551803105483442619440083528952335255778159342320189396458932426719379817617817078493177645107490598997921298668036090953841239984364479540359958062453871767513413614331197368366316838894086054177532928469946406808368104270640738767227692586863868447503463710462056050637264635922377617203978370779061714067202106496933754566716153492260904234944348150577117357645866811244152700198858990377885345128316745816678534042154321776981710530515048365768100175608006569879335966942429200388977286145066980814579640518404670434828621152194046926795409383933465646291274230468211326431761847181519023493478278867289524511599182760557011989045745625311784085142282928311476886323042970797884853837967310860685661561012735253060116361228725650414472022470697299599469596553051079762788626846812786601250089186833343083788807335682371315543579067446814950917132210047247469239444161788929134438160792443619915591174899384352046322791000056892749294847489925941790243192630484530440235191395230419289340989409974798787597542061545514171814068066429175597221400222445929829247679017903844518479795561623542281487818916320336526849447311184492571750281658699610539063279832138715686082475006476527736609512266166333752133340434511327085741077980612021776854367506566823241364489340122897611578738232998783691704171314864257915552633672231131123608076746300843724816968357478926317777463880310662282444245511611928093513997943199545839194144203365972570329064452772273342001848816653676378145528225014592457673738855480026854402350453829445622463016949553095057245325850785592621186836748222222224134800049595463207684797786720842431732211011931787415413991900791431850006796045860710348568294808395440317717448450222235056030516381724180488118951578066932513461787244849535338614456823529614856160839979346206643892247893349649846577363577770165149336963052280454279304286193626156262921675680582578854638153641797702437150463095581758318095410937423761194892062573580122436309465030602280077282927486639265020650436434163412723504990278565912563180183443313432273985824776932712248230408918692874104170376072293627077629803781856088587158974377816806751469439216306471820467585983452426871008054278340840969177524990197742581107685631602241504508513168444972964858391523780006225594110792319834321953825995958455930110975327987495079647018600593150151849612042927522952875443382081811480997159212442606188741556003047170944297330214292066528038666709414211811477971549966055361537588603508053179741361175352114258042251331714469735904000244564503871478811302433089444779389047815684814153785763757562589801267038901798386006648676776148364349423240991694327952856285744970928224588854083879300778737053873494009931162108960710099942815557737301758456376008430259925961931591258274042602610037589722320094891213065327672505729271860911815293218745293353008652028664906742619453937997598514117871981699500800914693532430067592390905778127661043353501254334481063472704003984559969150638340386654668034204138132030360992914360714482705266186074865882411002288147098507315691658978763501956276111324109291784211185952853402032874614863749466531588651399309788930150221943926988172651092798745089938587443835070096440444033887087275607321935065732660158395877027888190662724089067294710910586613758348429965683541025655397628754428557222045227313085694235373051857978487647733133270499467705896935945781091328613487142179844098762427308145576902153696390365232250337722851756747124607871271955411024197243285136853286525298251485847096214438009696359082579287088268737847379380129057171480415852542398409134947997194963803819371466469317267426442382553337859424710091267475505883845845297721114858529531163246381870544405970373548657944642131976977317962249482897416947979894585547679038340660372094920919093190868765199807650960725876406406642730968307278764610377337897350917753953368752894552005579348775379773545157776186810453172005096759736029710281874450251199565053386790784335134527897125667345726793682474663093433510459882981412234503982812938815557957916182037709415952349782390934531528122146442937265804127850973955049624666256257355626222746898631858413243478985353584146800676150764938248215162398876537064355897401829544086541111905616682424423326750129423088392941327708045537547158009594211292087788448233829983012635133481532397629955454648745495324770126387689398451096720198499197017418254132851152147188263159645239803587783698295789486134226896022911849478560926685809416483116804212093972147811308149257812338750602383159125676574316761944756261894645510658879871913033291609930006131710729274034721763865994469264325923677619952043794702694512386462503323097266471814275811829330159115769555353742504233309406315414109711264162898906216914601505882434657085687797704411113113371274263897741522522522638232277497410473839667823008868294031752704935483805762632787890495634546128924432432328235700041490561409717899528248877018601310013625584654024489377619492633169164021908895433018706825376282550846442491039755268895402467616096429973061372574536890073117487794392162236014512092534331725405161045304317871628090096054735479838385190727051447799763995501324975714370841156521491000353256592523728010639618133706002320876671996654933559876441151026025977370077522423465235474053065191371648008651564189712222008091997691918993827595446044414886939483861716183951487395913863067340554474767102685207443319225412062137702712980440248289067214223689354710277636957331083042840353557153047747319478269577593114635745569069362220701566683905445093177752310777491297914689179370254197260590205295716109062295108583249228686796084920348587951461522460872048610491310020479244596993491095740019004933659110669848465979631903670941412068931039826413625774003700840431317271643119192614565194442060957054963912777293771755408540127546851498647718926538570668043609242767559681209331728363669910366694192798290418776661964774511427734364538774648950828835351639288450494748897214618983324837141293344782130654479402991808936595123796831290890518344311157943037919579782965976280918494328975308720350671757943386886374257186729876747231130383285552976812223305213769265545703390090949665488563852231730651505864782747864541050192136541736407293226449230710958199731885325046669502033921984802327837261354761490972895713933902846839657583442114268734145750262721444766864301234494612880767030030560690480868223098311376877325986603476957001527264618680544356360771590267442431121694626683527149481222628680306191875201336263346502395671477640685290591569188963176981352208935866561300231126106110378547533599683410501738953924054996898873893934759707335676127398817480114719984448882863266967210232971778438669569466861287560722272207376241350170559987264852368594719656808621357966757665584990212086765951123902971771974477793637018893045277883329018624024839792263386372562386650133215136454008899519867474039004967557903841632592051467507087077917360609451906548166359002594695683830850925302920025137490003064510798310325429541129022925788223271137128442405568379049039189879871663998370035433649332123793269487155886867179284810716837414293695154140377072488775200041752540183719950555017087263943096168894829899509159487528364173309146827373747625081852036536530418814664024582806823470615186554834346096996184939551036536472661524360123642662139760640014456354095118308121612329510950084469458796121059234100936897185483198254251527515245716996359534590943965454768772241311406282926655740622565611359695916737610698376104480054537709490827934781070167026326243315777547913212593981702396711304540635274413300359493008320855101359717174459489427922658051111782398195827037222435297471078737832544185855784110968520380771053037820267972301393642916811479182231606395035908845923484943947323001864961072344755584243691571011718919670124363116040174561432195893302548530454154143409448991671409130880618493493069441629235708315459554767231092427253130269617035372932162083033952609895014371434664965865658809635441765940996550707123227567032223330648751425576435040594541073455883460870433928172329336435540024649083413171537227137405124732472417398680645543059957699253992686676957709413898185882532516508633296504529167216310989435317094348912358111000456434703196594588415556524023646742557219948909184455875290928604729769729043030665530951559555145964249806947430712287325014295025259477749258665915833070592821926086675377751608533835389706259439332881183774878532188331466837901636064822687549663239667135318171418211895457174408518877797060752720250622912202892575881400801320299013955184626145359891009732031029894951787022373300264916897908171941801567396951742010304651570204554635007731362390335715416277622429207435827295176240188376108658340649692762634346743204239451752794492306270810237901705863621978663924878976686968573497267457419141288048809316151798435599915340831814209495347775934885608644066486452959719656571839373906910119973046802025397795087648051048201034791407677244235129469882085648082897877812595338906121643647404701228550045555907247643359682172020110934058158655012432983398518718219398765566958948598063378100874085617359785856989840747953810270002836213471381118756324834353528304447978586701181216235824640693840338265818408948154315869431829112194088472656408741448313853975061813906026292553869936963493024054335200860567345131867854018015023326726401192482182277734924773368002053442770540777962127144720351954295848246837057804309800241775734067329496425474819543885141814439262009369157615127289958316349673292094513548117860020173310729886457734380035212549334274920990424145452135428228110600899739390366578571440547794662293093407831891957579952641681026081130845560926851882141605676305240476416626779666285195356196424587029860362163402448171168062483122392162511296995364026793763300744928841437137653389270027891678296861533626435971725532386458228584783796423209456465938978577388460026386125301272566046627819701436598789682230324736724653108525276293555996767631149463484456140319807658448025705368528332924103238283876621353043590978005078633000896621201877983997726031380480268085044594492391546015015282575939140005955028739479297830738063291409043849363501368317011412452361885895074577151926853481682997292907418351315474201046130785265888370440863921812776282029364585940338788393529514485844882011385436246309825103671004093034348673239988236768815576407238809919168242175129126045497519706490421132727758414423259020723588590287423189249267191846279288697500921374577950750913031830918011311035296267305106703831516874598656259730994205937379250320517198859387083704156385519448852301552875799689913999419005933707308537385441842554746708280430562960715239901641776436150676142632426728621746760686600344326890994222992256981730719062808778777346121865178011706705169783281826166712398314914269360228580224369763486765231014636312821719835548206561336080193435560391931017728678621881648923945523183912053305242874466992729741591374618059760590046623411331148869900657121811239838848150252856969527077921109258506435007923633324419834382514683945371015193049521342487405577863790826813614552013440418254391770234089405375446798731923167071890185941544129005168401271880270248478229188594261628678512377635686839027906966683253138654598581896110458167751348456392254462013586895878912933442767942202365676588132305248925066022774572863514495612799942299924493430374453462744344181910063078463443540950854330569681884904971145553146237613838600900879925556461745377245955982236539652230252219987649487782782135521051475670248878861621500008180214830900637997170314954502185725120680230075269026624974982959940258482040697358250971020186357164107946641010709112417571815735227702485461260369510411668116657245895704782119393306408388646833550607513892564991596960663090280765504592403858635717778314290803153921834773290175074839440691209655858056096546735035870881882211428665868665536683380761679300732585446683707183505503719564863423273100459888215581807454889195487308206137461785612438097021065170988329707048258275712492869397510763845826153999760035819161678983395602636613756936366918986011411316253133793769119422787019977949322571465152530466824038841886485526658311818643173452393574788091401940566167016401541555900895946947132538793355375819160217918199872360836940601727720814799267603698410865702329084784781334969859186391841079578952142381093145491229963807853637110038813054204899881171049489389814085811114721781088758454383287569590090892262782008179844894955711790240012172133006260249789589035302211994411798311396771895205644032144563265228849439111255926364255625381767785415400172688001439091543302652582016356577584144963794856689684586558428164832015162401398191134287916787809473813000512683826492358879402142885307513541689354219246792573571777319343422319315967103812907633902137670652318894274931138457237613305980938234640794885020511090168975840356501456634318849801754789837701126694421312215739122306114372278148484702191850566162940746707560855528844905029477309385283037604516229918648983873456392721397235848198385341728848436380297130723740718807170775839459907307435835144971354256545425534084353871164220144657481200929619642336719504933496333796996524706057257112829017436464076794353243553311529976280797016953038678072440242182639517682823373234514407000369834815545848967246139289831763235540288042905263525030947083531667668698833653315585771207022169297795577152453632863864720714786791079333147099028425729502954649986709639480103852296073785178808964534960578869507577764076000896440817603349904041378717954776753528645620788281994653589315761444578839899202692046147209142987062484469169821196853326454723920363611991271966392261002537162024278630202207863423803105394905847346970665711858066494710758496919355270067802995627353274601338213940916174416138347777617536902926632847217708331938208329701508866768836637330178355116397391759238528877600609308877635464482456252001621209630759775385650471925334188223700031737655755001701775000482436324028751624775900631253493565129448098060585228606145062912005799795196988158584493326783039386695139152480377860343802243363356566227236097209374335980755332365143064209857724083609194196540824272622173605280058620995610992000616241813592544557158413092879738584053774739477049359029613527427002216454277842440729954136434354889406233918196536572605755105222676577606338327845291954156293159888023724086691582710249599169362715832356170745222923139879775168480607878496167662411437323718851131014648073411084258189461324667233448556462412922334381953226966575569794917402850726934659814199052517837966521188050395696822600333438803988973364718638769366489494811552836344159590459730776710858507803308279614636322003059813617506054721559154218744339634029499846948419226697546995433697913602791048237850929922646452948585857894347310512103370068523752629010021738924196549413895351643429278429706979169517226102665447347678466991289566447728167168906774485319133189621727281409769501106707996439018516287749193069991529596591343543096974823132654482230693417587317853812341801219017370207537525114866411201014584419182485772941521257217036972327130071085742071194002252399189248279110835361414719412911632746079138807097483975588112430527923041814463408728117055642187690243399152297823604874416828004093196933187244610879784801262961056608496620450626442242544037508328561972088854799607835823992539362260846447918021954972425704547809247726453990369701263294751478407208454956695390188055206435730119999834976010074137879276505244829937844979471242281216636803974864224560418078150289381225992021163454253034096820479679920390642164658077065777564024601069856143368426701386546533361067049669956639394292909466611122643120691648824960318224532958917835780714157558045990676471753678855869194346323442960039431195565794584528641893782373687041409417808775011858173685238036328013945975319600987053697597835000011381701934390131094421113236708496377985680775524046602594802911477374128659525946048437059912602488985499950842917383417133557288646791329291223814783339468229143319341869074214686555462501327503817915882189620705589668142092115307873431094113545795009788289857417765578527293002398907262307653985663424688924307405265793878116359095083990406931577014889118289090415274647962799442802204001175847623315774416067851509016007218735182234489715957900889718522294443652817426388722525003006429812814795439429913450391050742048834526896045212798858004383313551635832437824592103586871976299581481416124363055961471253627574232232779064804778469397048969697168732789170323542285480644283561960293709740308693150220079275777979884996014092505640167360324837944023323708916380900447370380760549200958458753869134138236850213172157531578731849606718930350927388513662721263893749940855910320814697755158921660417010793499572001055301235617038026493679504162130167294806137600077366303113140086513553962924718211729194485637837450860769155229985412503309281405886125481611637420259400281988167915779848835092887921825965040713689304582283923319814369135716390147227696294589444800739682148247053511773457294049866560396281733057812856784637792367127818143118453910137669022237699043974737725648689385002725609244328726838028858221350286449023416855850790549484928715722468797485357700674589533234730864288312237737654631684367506479606579801308871935586430290466272191072149295921939797502132060281667348538219815755666177359226954263035101663145739203437054959871015146996246777668097816925766296540474271767041590975376326322343400947345465056947886119391579796639713975163536851758081733776390314804007442026975759059421539500032676292812319478063063377654803572995264090357932480415498200202991075718696417474014801062648399174878854977403993303255799938848621276077194553711725191432906122145940374181866150255182275355024084370455370558833340474535669547835638755506920334767839606734787628746877497892980166423996463372992615869252295614827493638489646496158240812616022822495708604103280792646496487851900388280161028722332959332973950026493041890630578657643287406903510389702843377161335759110019334528948584490696737705583599070419868339140154947497059617454425322041594143097586482622993873730877427892333970437502092238629027205299532938369122266244669849552737256719947446145839214452580226523317130247726417849959913081033055433087664323329161526025586271830227253491513576697960137046167234153539959947818132575098371621907114100023180943780885814492241641522163310415135793381167397122290220142251647798630553215651607784903060387930124358400957203663925486499595986069978658644008685398598388275604692527366796830011013894293503471319462145175271826855427799765327068647607853568491036565552820004475797907373323010168335082873012004020194419823301171006611036815879404460537082917557752117312562129626786014194729870506707501944417012913536511929782695279126671188333431275496838827570238470623905789301549475911609018469650135906160977762047147842702413413655357750428660415993498819734162432428496943720236266040967035412187885602757546254597430962266494010684021748303630295870605052640715182843319998751796744137173243601989533496126453970773033592213256059805801934861691479615361275761764950080327417452464232841804631424875792474503788715310379917096883851839659341445343074842887181918457578024469686228072777838373276060929249889090421903160119261403941862745473201690949927602427511687896958199226541812150106544666581381032082826751142639549868745722588949943675865758615577757739488247646014670640723727368064940606314717784732574268822082766482710557348966283159391004069856198954022052107269812633046827837732870864764605936818670967851174361325694506876273345864174915473849185614028020565005166915392018379957581674826158268067924262380811881589978779981762938486245686779461426297660220571311287627934763616528600276546706578445311801648216328490318072314197572497079110917775668006793641578335137830127061532235019592478109015829522518512359078403285669621842354265507081774275800823880374805503086512538238375412339204558014098238966289429020921645373430441953245731513692688445040786730217635294860747750958634996346483549884899912358211348887072688670197072676643670388981960915733610052685148180109123373245625040157132581664303305119054383979042920694197642410583430563327196639965676062018733621938153618945656366213959390499734843019406390037372867012180676817289943806026245361031464288101678395158811033099338950822587153935111691187941693002857214011207392254910447024267186590992351205163733797275964477719205181136429656536660308782132196511779965387802784969111309684644478144544251120649890229012619243606495731218518207422969126231588926882134343027656953309358578359977493549994169403586527562987415450033400174385725277610422770961723516571894372336287825999738488990028631572099951416904482979390939648116497184137008679022817689540594670489163780148023716013264044598263777349284806055805875497258465761896935412853505029146951214639908525547876379291938407959483342410049534202592553077980661422211663377247822112987785383268081869181624190692739701343164856796971742552022370721614695188491183225620628600410654674174941774731100182720119355226269624101748834454892217206163908237663547687723227404475453386269687207452674622190934240648475339989711727787623378102422553928222068578894976906292958275448216428234051011273842970627387091219692730057175608282684612401511046519220231971590784933266359430406521632370353109294104943486247482460910394202684374434863284681896728795449249436348207114279796224803506466148086040546345349890964210012498163086952330963689656744521450290506812409783929651528669065253368763018871964033620743272196229122415221941011798517677331696125580923991418684781741331545323646382733598414946030332968921189911629098304036725712549642411645164106140134385353063212558383662080796246379502080272065082225369214680224678876529057996945579199889759620233588189289860312496155500472978342718268687185694908009019081936553808690570899194325489300318686215080437488039326290588348084003392918102167704011853241031294322070229930537842852449737324229712492184183219015337280667151339635556300297286745670996421313661867211382976525920955187066827130646236034392768832101802542556358992972362359277698090516332265918316072592797442243353112291984321518920368345611135739465128064890349502051136327239097627815567779598782575791341454969792469279912377185106324530341578593224296907960764685781719002720423443482614283082377396910519020364329159121192607970194788009997593611835344442023927716719392621506984452453170864894830619287945513850067758461563857668501912450627750828513812181194157838438347751888675956713636768163355458281462923730129673325180762177119909081285972981068870944022126876112680249453617626386488288267251344278440536507646047180467763535563079235116076298468300852213094876434515420462670973772325502798568263920703092930585698248117670924760288515295746108176998075885295186944327952947264693532607896745384091858950625158095071294802520403530926017319083983355147767808210329902397150871584460522398515456400948895176710689759381911772521011025332763457340999112221440606798518604240174878557751112624047365077202572891678924496152899759432974001590382539802231786583093036830360940779442372776292745664591990945235437141190787111806618461555200000618369246512979491720214126870981011852217690908151200773607747233322192717644984668446240448772110937307388678185702935694782244492885536285796874044048382803710749964973986980072648847470221297274653179475756567020166386093462306133447170721903089646216568637734216968928725305729296704331574280088231819887541886273310413996553654684909646242610779079040093185591331259831178135731610575793209280884660499432668577594925319137571747924746389934811224035167289649772078686146237611260071091517964910977967340296353590515823217876457500881396505536438440517746160075788813842291860693989455934946730997833415274455734983469250193102300992865452533166274643847841028723437153214864865298300286686583060509153862775751665208205141861269834534310684798270073999928551787121014640177385601008239367588161736592745445044800518133811914700954090986806095568321730054174818441499381036369728423103646109510487990856528791596960751086383427640671605215917695115699174233956084974993607302228960304795065307258451660671052419254406739593353646623552587517722861797145557500879421603019293870292811122876486532731321876702664019533705854689731034240086764914859251247925182160171756898861277095142287956258135599267133919007919010802624231592344813078438180353669427605332912312825492005667521414917406176783971784612223175454205268315271484873986014581528795231231864505162860277800295452078723989498683716029669386108102884902461678305129080526447015585826858472901153821895872662337624798427459670042499245278069793184438373728836910222373872537794557978165435822627033613615196703751398898803449120144996962411877916761429304660557243900339453313189812794016357302420267682131643309836581034010976734543321539487904902108027669399526246537022236959975699571578404707155394783967890886072836980022504325011692347902671926693988891736364401672297716752638077640108176436916514968215040381239377939390578004858426298384363477462771856125865279825400808917804192008680067618968780627577905760753566162839994804252556183829857239023275155955459138936384492903850329610949702084901031656002582555991090550744180554279246625633606613779479958473169372907336721760339687248359355387281172966591546241857955114060085639958169936819437205732687622187982141733546659187630161313590452711676312322582057440188166887499822650766833198138474802810941470330202770329485197110114575770824529562809719811873369174511936134745331666262676541843451869800744888008679677209589465003293891299208044906294366439951073149674799061361012635088495986331930301918528417290116248190856390928220134520494965395072585635728900957073127256898672337786313449353339401863413797822290499117816196375936432865433806133866814916979036199683371019741796857901875888496281207841879568854732293461193267744289883224661084163189130666323363574582674121671228298823459435205006663815277617097137705576349823153732079664857932353357062090137718719192058454130048718403890947860964431225391038030265151633935497981312829978975221995856523794020504309549722576352838702171610806235962014654464692715933828567555718177324470523749072932987360582133081887221891518436762320462400492899483217656588209618046774673778556690765304469318606626829365127910796741680037895686447395950925122619372108461395514120575950118451806951937786406290543474653143474929334142549989622837817469485205156623088997717268030243892661715685776856425859185903841410569648833589181441597984181573718385649171366536774754096333964250276009020974405911486328239770072516412143460070535910519122318440479638343453150006654228670681166424163476636133118057143017009842283709877159966257281577245361161172691570061801731409812520621781621866328824812076226829860213030458489428305985961668377087393981620981664746609171089438720777954693326815516504199608105183773888042381189901950980608282796867075329416625833061682613023761928728381481810499631848192590356110327883177289768162047972950973708912309175644143138437500303513109406184061495456253157932672529017883798898894530159653019474078239516068602327523458534670796764560764089213827324074282757974185305874154428150003514512169882045016091693361247192999998035308409936255306086056802623428915436770533472988244587009854413711216910880134527470983030310626636322966119747176713928589628691176626147215748125842131393281467011855095324790507511152245301104273125373875689864798980457408855193527833379167464456439625008329244470751400096267341582822644527561815304088225348146131345603266411069049838408948287001972869761398768761735993529490265775087310068568335040562859990875852561187357108019772695449056915922955674022600943491062265994725371818916253721340527966708473153007279412879422490238411742001445363330716279161159112921598594853835363018500909326698881803006118516755956833363654805794839605634261186404600619156528195868632887159150446859254373347851084804440288374580441651410554334428278157977803083121035664928851981343866799711340834687220660590227592360704312491039645572860622873606915279671368798023483182616527118866799498870693772495854486410185692417409145711401810014579613642987249291500601687348167469419904161677799641481373091366388607040421713429227915435630359654748650347630855706572984388843723591929797762980517989633338752418165372689029478313039544816092274690784339396303705454330496001459332918570803930279672060064476797622980671902636540413391914311064424476096811394710140235630783721833517884667295015955668869342553535645644085019939634745972781081341896060353616521059903736706473521613676965130410591881184520516900086365370532224785488851372415212593047858591659206321977825867975757176528083726670181985379247036344357213887552712210569779952415861389227084546961679733545914538011087408744352624879404068426443361622402337123074424835941950821396758507039203064164547043230654096728535100982484670695986280066484240576156717264380201666915783995887866609335138419272404737863993898597684757537617360455629529127220642644542119986781589902488210282059487723704417293066330564455812287992701035594363624207649010189658190108416967077139948833223228607519125507747943336620139069924214904387153814666724703417448680614362018682207323774903984125581776722293503468128603457856394027682672736451781219678093317052852146915254625683640333151140682938464010757424949584909949923707284743901349149018011484305367974009897577629457635713251257264981343209855305491787407515199123945704866620719948380385653049492008915280030133938397812369687972132549432904932647066105504859671597603531893363049677781832619161687201212678159350247494896078207961208430893091951912706219221854352479601029243913460019088369021329688773374239301860264723747370780809512347772475495670200941174815937658540762084854785775583515522379320688137341188074151588983016464667167923082141141848088411998266306595671925392931106929487633086386507168212916364187139075386214620969519973709025125128090294511344652854779792078927994427049167882057073611404978096663646343901961079053191579979557677132601652179628387547088744054663114921694117684357427344989132278586043454845507736678537262123851228189619060267046028218089771745546684812161803230512624943327708857726480890574766325059872368102852377972487015986763721254101842013022494628224405091959891596298323531528175393005723692071159755249076309287252704422546440606557995697209390542116075750659297569431906632240555755943442813241281816371407972113479623444906925722611222117359638051214874545551235021738619675606691106411148905764470318652733008374983053793613756980814600830246694671881418631484704067527886219072253466009355273463132953373431820347945120532752621822395937807047394221432112192196987253469672532764801507744614984821858246699002266005791752853763791217591654383288736318651073966368118937991021265441465786515148578364769106026511989931199431741679537238304078743307711093332610869851067804753469060850351781400694532777503503298409104273017242153946743494006362646533308176862290228910876204185778668359781974609078478474804720913552603673784935567385541527915244001473437980004475268668139716056360990710405976399977757709581092446877311057089754975050607754354659381443652089450952037515219979019581317476623898661829682777857832059258960269985990427708016189071457665721565892414542018563560610234784604566889983882816976995379859099764063803174312922393206430479799065884230516196325709918311029747005820345062758875183139948633361583985472681825840647602699031427410378560711525776513938388605664151950733773864451103149457186034866416004962767608557679715108744704970682428586371925386485542980367078710174202912755272434273070620355831922235902877527861299921587029115183478382991676446649224218364086172589505876009113941537092305202587968841418829671028245622479672373816323057539808323448865915780906741097093484253083999121462816845826309304924150679642913262360295399593695459187025749954020895854602042526170122394578018016623062867908132288565408155263730192428686545985712700133427668718592022701739452723479382742102539803093224713430004790991726102175264114115733484269323127117358735442005698458955639371509647554367369399383129502870428757011031761539580694574299975073326412142410044478640622565356507272633938262167171023947971025166571833666746886059313573635308986721789511546520206043548087072130611699395269503462563395014184110408936911258944452566471010863373668222951970694749135526981413673967918829938109219991591789529657750577605368188534715662501669615478709687584861796117884621888621866957546891831086430920807560709409332592307205676540427680855339716827072561453098995364106402256263937182609599119655230699777624708766526206724898734068847046120346515453787146428385509143925517847289031756620849679090276183163663265982426239328571682210770285613233275247872514836578176246069893438574096187473808240033349201189470425378074891045892735350013994340825128062398494412334499810118426938521532685689769290931568766522022332378051025902988964273472740338570831162098037923666988442926719805743209775667181333308857566730898612943114195380771579677381558095310216377096364366319020356035630657253066591843971407634575682736705999021076371661983109302284725753308489793831346927813968268053738259185924500481172912965661434221274784323511362154349754162369960005067155396741887415053558494650913830812570643497353505814082741874604009615987982756671500897690633286351787301165583758135792659012003156856412122540756844772728245785986512927535920893896089894570136743610018929083435515918210492249906658001862682659153761412435909662899097942218915596453839728773749519300773062023998783758407195430972463350547799051453555732898117609541506332078438829823518363768384927501839913268254853595132565198046254028299943903212350134465145239135120465749697781683629724165620863851837692369559892406161513972283130771736700732633970757634202464696544102485974973353576985528154580125041099408456664552300591562763594797693466911931517183707162724814354068036262286302014307280941758053367165664514877894736413989789597179074870964322629357361596394829524902356053866732983747694187415839726197257013524836106401010460458583787404973247152638941980875803265701917070762240473892549196178168743694110344143048061940627498653012052663991475303975382695275542505192894132554117379118363308876666348592111430087636316615767069146025297918163290405715078789586647990538267861367150088303036195130000126127409912053445423392705285652809763313188984578951093359687054945185421305821511803328995338424758442048598681665909581371546509689032410784621890480400221318696060569114103373118033686177991426217365575995021051616250584612859657413253549178514505475655462539372127544460093845443810168256323282145441840592265240202603996486243673018703578204850888106471666955550267502638099141251581557540105203076835610266073342333660347738121463898815844144631414059956380123228932126649235110680771449057192352058346026045508562610693191292702762029834703499165886011355846380645169022625316909033903737246045651906708113379401270318378250721975059824608358041436388523961727779450038635852126667246755945043161458693303700834680986266451997286948661813795421307298272186822319425146325033750195161930580095002480756886003405428545954843493016482950136411011911613772702322998450922037818190452523091866068284395882202081748447007821303798005808910669417646334839598378318493941125034038614139573362212275899785466917925625385529337349460812143777496307617102077258284567660957548142356627116404611923812996641866019880766684483148868469666871028469935601530127469030193803317940038900587220377723923844279007069614714510625407689942662964838934860484969238833040749498859692462555569677803270351593098534984419179824802337822709690125971614876049026627962696571894486158052611546268899057457621689453826486099734310351829517604382376496204474787590221339077542346353404174032714976995320138676739067238848950463008505173067290621367498388275117482233880192575807341997392552305131478848256124928152106013517703864690206530678790646117467825838963542415752462235971904222042304342560440131238579533483948929740735402729757535048511927360340029831187422125063555653939175491816325221495214411440111532163014406643441197578083188103913578330757796029060695318856730297168954747110228582052930824622114111138919686789732123036223662589858458772397318662157377968605283051105323581051499310670149289993042867306598019145924307014580425847487162544743239113884693553997996666963361040058220113675396667683157314478723786834447272708944664530911295339901649651706823483503304227134023294947100870286493856369361449486376808743079170593266786314486139029848129309739297755673592630350150642234968578491682776241569287712393966302125468365975777048469603773450351931835171310228792284508111668520827477090882246999636074374124676667666875361478612636874819773998347758443448811529343825258917915114535156346682470622059284261029899014281189380231216575892522280399383907120931655145807166270876243026146451162477667846684074168844868759671615523862909437937710611657839246631802629500832687999483960009439828990034929450000918791557183244989394222494368035770957380878339703676882546232133653920932849549792714573597489182676736527827231431303026584043838871692251004272944066841628127608737725395463966716920430175464883971904832598584684758606077501357523540054241325020736661370417454020942414994306652177947291972117594256790487554574559448531063124525014283524459914015411867623057264128752315652578324580257012662099859701192118133171841327946555016893209661008591428487545405356487335494005007558212234553801749712505019567748053077484546525293062776928041652273709123684510406628243452742402823810336987646106716762841238539500391374101983650091105642718316683391767947468769485194704415686309117570323956255478542087846083581521775358483221683845872033637946510019864204888503734198063946460509006706920874224675178465750477814054423274638841815984734433709140768449894532132114101253143396483968534679548495522861880513873286941867028780458793662503719284368022871009218985113871894388800454222225516554783169783768211481016079655693936859835956258056596416763534253432545598451580242198939395718882471227621681033535665994393766533201453831304934875515735351709482434485710889657486493853550686133740643731104985178446564935829372615107720048375215259624057899870817533694669434398881119778411369369657033697295872279131160838509874695767813825648861053834410050533874683723546205591386047859357338905611490207939311626508851771592479488027214422013786790863384760058442187039526371678482917044743209187942558881924408235407802854862237242102816378620033696090280857367729163235262994064710065919809797786663187073871951435068644031784727534889539334995856621098435788356504009949237977078549663444862747611832144958825916338970870480023717077549167090513682746001752525885994516240833421993432929362615883592258524480043450427881781213765606245195290583275349695679275164330741741811392628121047603980547379458836963845029535476849104591623595902538531043459146996243309251147724109953859357039290283624023297201068043063397256415401593302251081777772381158896897197758835465058444400077038237207259192768960845048128265273439575913899823064204896157480662458299390593659388874559070708588347951622498414023366813314208911065383579602114077273513769631845017178080131882897615844611825769337769391731427959956552930153326853777895295606088703946754695123162509491964889118974494368714742734043283561109321382246996783197989023979531542836930243500584588456472124578206964123298461761583502361497871382219723869937085094882702558749688982366121819753648574250432945889109720350297777798074755074839820952954541494742031751806915082458519203848346637912871703582153297373891306157281746026846677536423221836960376075916293252990859230918111235128757629596786583802600362507569347899342092087838078903779106262455549287379613046416918990929203244732270424350593604516907856046288523728933038259978045193895560026192849044980949253573466961721607156417635953977170952028778732770573292129769084017354243140329526350188471998465944130632751014558200262756419478844384680956417855561027128544045172717283299493830023132840083949216735382862668924622355729115678071763359900157262125119428050669242875695577522321008018827868708171463028879385460541144652380544735856693203798221887788467893228488249216582475999565226967171303214232649200294300174444701548801590109052074997994514543796146970951904924206745265394722304484814805533911472131043749375838334342357946452981460420503372112972453680538359270092089538403716822706064665536871913315878468713568351785483250420495231251324787041342891056068676465284911927712220812836950859258905202003532318278712987260788794200328516627781175877113200133277366895325457632186829608029773084112229044980174363857369567232560566539144112876736034692988581670828975783180241223580160018633431945005209403224776158142309322696187950126889958148461236733724075435810212877670446581697325926316395283379491463469928927496931993495069548817691922794431434546454135724562141098556759529047321674307156474592915166298760987388320177448435212635550132473326928059431330119632879904772252930463087135292223242637213633406398741273046354219039774838928087520058851030472378474352340766427649548058694587193465342781918084249636289365524417634415668747713118459566224104680884119120103563065873987401309272661456319693718328410462120000346345817221273815142616887535814043225726874365465225344698500538442637034659321100657252376145363695434198769589604966094577887283054210356946750079629621796019528420448424074633264590231604828014455046571331374258763454890620998281851509714798449922341840030598740192008481641852134229295826526773006138365758994327269051981569124992948499388710456723357786924843792633775701822250568912929666193574957824511177836753191957454256637859169698344516575016271624398869735356021482365822069216906740461745258721953813007786673454412164116628210097566399185230981931941495613545398660496623981974418252197925827725390004691170655222179740043440419223976331601368978239869857199950088608679587395099238272239645850044958539181860625678381399356553994377974976791262559883632040096449797158737524269977828721889234318260000012364214496794197082532277331140668008103277182258036840226169532181668152014304905629697983716244664375946901333510916467791165579175087178325347689523754439358890716428355125461967177502728704761006228496512412545396689535739036752433508254619119497156083616925721726160218748072138021643204737483674586590584433798463008246400172227392941296949740066241296663376165427031317544251731569593081310432467543868533932724986302636120272037207374997339349176120832598419911548193625256502704989328221006289855261991178948213192178498313219331260633683280394849243945851997363979138639685977648105666133375975811895481102774601291224508628109144514670368979533911460614559252853386055444540495305313257377478348586537319981009163486265970131154364035543633968975479852065084907456577190523493578801140355945169483080141143312267614439280385111871410643970108873261546105698358190351797000125141275195150863811843581049477858238389146609600220861627477150391497324211002292497311006926642475156626784774787347460925599049131799737030384721383499918388560453997612784157928616349567954331485905075793895745110548573868301456159424748641915080954312066187469762061032510758757934157332752271236523693193234854370949676093512917552841088677574568432172936665849400115596808535628941837849473791330932184094051186608996383948471557350219730226783333428785820962717925303822987388045037201771874756845694516906794278891122331675828020165892392285495719178395339777540748232101790193037475211045345632190625119095773027582031911015857178877192068660184659065469039513524692815594183743439344929465045830783099984527518827589759657307508955823932565079953484418564292322397328940693712721405640121991952787950963142498166588499225493068458522940075870793220959023605860778917361977047140920635351649971738268991636925031390624603692849729109405871564339914482702000845156203501610323530288551851828973838660589724574094881048456440769952535768265639133160098164362722532786694543337974421488908860692480003750342208404056119495326599506589246942773738021482048682007485243317917254725092421518891574209706505948693000641406366930044063895831117431979922289672303682685440306156409846906728548098321656695302889210300173831573609382603889588030878440297745479554203706286781282269930089397141351014013598107047290614754126301403380689619672389486409216094883682081716838206312521666828190651780865499485609831602564380277941816623201568103240839776056554783909853601943939803742745108786382669084517417123361979500952771566046129389022400979210577315578958538710577648685892135352007518718471304845389358413163022499610094245886958581437191930845551958269836068421879944154488635379248146137034555496221012095792010067653027870213412190661968091783263709419699363761634932633418952640295271240334530775694365448507132841157410847276005945554822469049175177483103014346524303347270171075519423169684718623973034904969864551763709338508566174904671422088736295984828972075697986302720372474830223387590176924813192678508283799632925579382484835508566290321390803393089069399992247438198613625012466984106479628347546889972545527149783595925255941888900262747445904398215589463245966761597965525290612309589654522221818584491531707018049803004338881350920845507000223790979841843182574950864305370792172765998142590948950594967258979228598778974613152218062417669016230209706833865490896614240141042008603950080577184186589979884098111277569237341233772194283508816402750266704109051836218893672218454363357000351094780362292287774202870580127094808822826045722108334835833620649114080486204409805716559276274599104843167459726282697613889865702483036821256078012317536847298778492607098081507577563709113350477507347076698197406549572809164317305147622565118644873150174199848733088432756491566285872413054495633836328762760337927252003323329719782872262648144905507841617158729338551044515425265908026293575095301013591180587633020665631994534558368266013148760015985817034120332669504737036596606140753644899651613948194604002824495294783526006718253226186062992247359944707600114702561647158175612539473577420694997010766752200458289381402815857400353520141581781903043990066067108802280575744369057215614088437446613368982880468412548399650488658923526488349008317463708604063966382419502715953878661423090703029019559649159245370988067276094190406630440848768971124824514336361222242522142165121575211154394210949500678847017129507910002108109594362673447640658805572869189563245381054015594894473641791524444729702541835525861600177185211083173529925229694916159814396729475702276872223267997964282261579318660224720338368242793120255087468937830214603874542330545383197696818621377814978736545484649397598114950707674621459815960035440571396770414586635239675893062075432109978215284926664587305841215061585659846649355408798985808664152154837072717507227710776460537520886215497164765538821449482355466707531435867178597339324338862156175152416536279551954796502000621103081216691837785773443593740881509445619408788619030517976189878885628102927041509033439417536926517175728576264052749207991771727376669901648528238729251310107690459076671296988471560662856184093077899068236007625552659489427592506245252367146629260328230232139549833585223409180142797319039785715491540653856827629139047947776000277987949952211386229813894596698424474370709162224624091747510922333014612489514156625006383064012428358813090813827020559271439606468433893492314827436727247549808956557812221330804669007887858762023005015655850432334865701802821559567054811151854086390429627471569028497712342257776642943055083570628205764202972317510177983135480184993594884949543895868308352821821869162424160210722437089911821602671569819808413750412483306955786599065814781098502023772938267866168399440146923047936457095861511724402305112748434322032888939192601378566285005336729197004351574936516306925966687622268143096627041171408126326308191614707368540207885258017997836437445223624414526171202471095146541726088272528131132239907560424871905571769714907376579834853959363313894539310747580610752051993229022440804804683125944609058842856300964565824249187885267919613128303626703236907868749334675887721103939392865947500723993493243569019338358309583109245819792167709629743751101175403507649985498578655747734333993783384308580910062060598247950505930870927449315256233388455331482303642059745350557738901631970865851169670198778950122155895227726955797414229478736210659049095730498597504694133930987234448609480510023963750813520842423064538279334877347217501222052250630437822684757985191452721973717277930982901396153055238864327303914625730507097428657408380250101850278146768790991274421491303333381203566824490201757751941585499448935304920621148715826883518907426244834968265559834408015494595833464652382861497722901694228084480457167190703591793393585709481772732831424262644270280061493129755334002857125524272147734554861028261578730984717744724191921391195747469643661561718510551230971575699107627308668816004754004231688492911783155928753933064408243605854180765447153775255293236822143561489376958940595990390314480868332921927093974194099640272820912105536508348241512387786089581657077741189639315951739050256543558148922492253805582333786336924859938248565863388643019561039216957389302971130239324149908457648911785131436817681358804161138077772933128325243761422618834843963973160461450982190815028325350446233063870817077087736440758982531745659427191023300793303313540331104739326319303410804203279383684997194396869933483133387262010932172372453596622178384073768665998615123413035240536886601528268909572105866031999860049045286083514573633111189120171688496192989132458409070300238399156626230003975020618149088509915907318534283089673163550143512334965549654902814529352375509137975352308289154861525548150446692233607960564258631698338288427260663313782448324120871104478261725993274405920024446817212424169906910862465380882634889723115282847595568111253338527500178149808533575507809294255817186399301762794722006441581751657860435413314404305333144715492478847085103945660768191006248302231280135749675780162251892273640695160768632171740213581284817797048155798074098168038150021901351891989147446877276711950383934800485638660433221284621804420649702839076920647791826006377653461500734752201249625131887277290189141532022447163699531446652244218793381787238913418777826133066959449617363881126190834060480258077391276745684437190877689414779924370641245081146365964802689471928989669140581401923113033694689379663781370845944099872682021669295644975209104526863054272101334074081614182065759278981350918921613836473960944570410314483036849354660942009138786715989966797030692942004197339288597184627846219284622818296785220722633935949652444399893739393505705783235206814319762421539348998337639713198711442775515601667936965042379359427326439740053593850786466726320410585889253248833393873882869968823210866977630112968683260458718382434730916954802027520974662225890743968016560914082031239792015728553827230135010606920301105833502999037770631588392392842904308304148945455741793609841008422631087556754509563383963238785991964627910700397451184862909859319018919941941595884384459729261844891219645168717389524672264103612342463289773741249032811839152586363960077423983826857135338358860767680452554588901934202895022586597412359877895601397254235326690585526539862907759753645538877629461686626476903279154875844530440685474818440551019052481574270759219126823338032663717663788403542577253097507802083803581790897547462421209114577432704078339065664474470097329257767621754796177966453971070482141087921103841122808646855560286830354421710884492153317831471329644526725873463177199937576239393139978595448722346538074038489747490789138509362898813592232062032420915527565625417777973364610964238169210960168033176121235605717502826563610521489860339108857866241254999800814273153455538346601084680109226074752683256425327717559100921257036633229112861623568063108444189273071882473374893785040121752045052696398731818877201757834319781761972881282672671643639341205126078013681711472271613889141570611035975842359884873998344375686721386034880117837210978058958010410977975524757514957800224230092093694212407303769651834909771766437586321148227050882365472278152003751668992912504183282226939333954786299744764840298231299308865116178509184192806232484354188714240881826720842326797541366505599672850458570598133756960684536446781106836004561288175419375845427458772196332956738256394227817011249341474891548092854476818061550920991588789689320230711862424953086718725068514305744570492764955501814392922875013616768782131305406085539743519269935537246989733257281275471051274082917186971971724309208520187880983226280658031131674918817251935278465838828623710402541484873678132876464425154115044211422449364566772550266388822309493356122036579295219872581225006651301571212460878159657796508065280454366012190753580538871901410709308723625588909091224400398839912040316850263049207659945870292208869780125644616795676275637956280373857978706607270872593823775776203777288922500064102991844091942900952661556318248376765407286877335234428581589570173019136515332932292698961025667294171129294594301566366335656332355791414482436172548386895774071879954873598621331197051521192942121671981883013374353550456346960812929260120475996651843413791049829615652244054476867894909230412692038740937461548427618928048154984198305775020490762310075324563960871537329562967120235167965054541098148806434311807379357732035222363574378349284805053919255361696030942259681162885293893486234845139653830271159209191748299968854368505221498105168359236170205206230368185545575582010921124265126684036364083108128716451957803834112102604910373369266547130768854382444289134444210304502505596887251047959832470680939479432312067407837782335800307713719578706801954754900487604299590577910292234624616212012730819993601541907309078143157945688708539400802935259854707544986936486119471921791078016985129660625153735152639540096024230322637909715566644899766582093810640600080541713301260529656098735386776280583115857447422300167393589207290714224392219228983000991265097388527450893278489456987352255448798678180293041560362922786887570506936012451196712836802503011044834843976042751345968755809549971756971141496797593663351880303804154539174801158012492187473761534281100916447307795334917506437582175659428308655849745481400343303736412131186913709741684057923152029982490731108692444229444481149973975077671751707567774522974119935050985161320376249808206349194251289241876870364438606408703067184642421867488132552197023941962088001570816682140940003035101745104973447244233566688981359275565247959915437350032450074103966066732929842059387767608587858519427026634333800456620273080565844861396604599044152913440920526547972304287228481799417816958840833111554008112576601996281390978731667468925753411688548337967905633250644623547448204241394093000530493507911883627076555531350162184229290133233368950207784975906669493557111833696362698759540511666298437265540227047146458830607880143287189166113283198772580961769117908501774691661033228004376566543806804511480363974488647434430092728534088449655257012366340437430329196269264918489207997358402919458743811160794436324732523354507005403816527556879158951051593018266815545662412720104318321029803145359801641461502464472336066251577468292875329752610812169341984253832859889219095987561856651217820358894807259851622517249920354922364809195999959566981396332890122550265480128589889251674712700014496397701110274977806704346914925581870486079743694267598465912469574854991376363889783004220652652454402287851752000963194018316133413470900916697225381516833492522286998427794767841704270217211384422810023859005896656734006161695766610318265740021850135997294964135663565630456023983883958537276518067202251715340819793691845563042708823003674809507087900081870829277977836824694811380334245682821809482575004459070203654985215383208513032550392645134845729743073065333992258415970025832744383887049964571103087592895107825017529657179527550452242343614522346468464366493586879024513787245669590467378503585793250565059280179923168855167546576092353660357252862427558599022641201438380135201906983453609241053004264506877448656380785753876450759227522812783773355289346238522727894090011697955936796464236935734538785816352354588222858475295668096156128582287881965329339655286775689102567696138411320735848436165551334184055353522040856247171530812578296593864065836701641756855437744582115314324193454468504890312947967795131959733877094653498324586323888652152786877641211008792961029062305245504694990122173570744021907649772258165608838595325042956947727018255134930918174917559339174532949189535226246388661604757631707499141013168217683370415915578046977290781967624363774440336166256897369738087171152066862401286798850659629925291615854281871471387323233390478580306541348323372542658677381999196263530922157424690488677290006229336605761098472818423379527216899135063561542382704731271720317890825138745083463240850662899896415506569062215138532588580843733447583336044689119586538186372058946330860985223280709929538476185962126164203340939624721752545067456293166587809518418900750651138807101482198681470828503069047372493217240645672836977455090480315481052637362901515855809155969095187330240368561612438607365410245072221471057356866122581627555508518160015016751472874623130072217239768849967462079754838010302746184061348009700205250098702988440299778682413653181811290766573994744620359408693346426617643349167193512729946014480363049663779417547082876490011119703266121671189198513456703082193201032357318951789796806825813728854585404525165932668256597879531724133994749729571463560044484337152419550451445845909902667216989910143386248302618426714533692238884379553368355056593909720335413225732681564968101214567466939212659590896376013021317939348401141746374053770429889595343038899375169578476097195356244747990011061158728151313275422152331204522247155850538574592138731920301062083483702866024371343420383801729394716034152881007957827285864188549408792942132849275936957277348794234253935615889174953165959938458539241644957152466760174260986045396462963370664424015141344638084462266139977233697784096639375347043065401291872743703764197154711226992573285374559444585141455116190160935692662062236155392716487140654483776990191944533939158377380851807116864288465237745850112409078032504666100559150226289585919103127144532406522895925733346105464522982284536047804494538015830894158305232504230498647159492126010720503680104556410365864330672475623980454464319663400284819001848968450333549511180411341975146272726183612747080246344559366544583373481444151199262636144761850017712066241495133109325268886124030249799614481391075056329984991243089977069830312297603808986405469036587730595345850904526114123010234802628627125588722021442009036285907908421732774719702903588971779753650515261340420152249977598367761663719410207317843130597571812066464867655387665551821186698226211069902516744178771255533594296638826119460999025665547021956088721794208014025194160220261794890462981529777806632675138206239235230239289390516613967670124790710292914539928778945216873390096472341871016092932168919592068839274467024801174286120730325364338434299767814430137520444845530556348351595675560218957835840853329567638909706375072835747633809818725771333460223378579107616714071401371927510070887603260960312151010715104448289877133951163376422796922417644771215886089809245780483121734901367898249248063431641189619552493418219919913866801159653713533524033724778765650339837312956337384728096091353149760582353487574154188633767596311395858133609487318688873789101408927001887558000104704525042235272702722588889179935798234584229095524450471346169774676361257710831488827868090136224582780546161062401551702075225042478737141723036659466654527403065031735037285626330907680498161470365920844541650019156544357877831173011591086957638162825456515673582608532621579499854279303054192545590486173326136022450245833258103764012381760868353003978223491711247391336171170819974582406550612903703458134174079291026784996303977643358741600571329776234296743036822247258599892728862767048425610176499934739366765028401964849719278347512121231983305819857234148121999905156932508943848785951240700894991592215637399842404471445662386069932401549394895478570294003413789220287932339815260555506836453948106685156039720313440353420229666568614951450519563542616307293687888607863863720657369098420236269326803650073948881735452538730344818665936223149081155956379703063806132620244153826203436945664124358969966041623143830903376144712701008064301510019979383476404350188473147372755662717869633318831218469822914765074083564404637890758873564620210002012641768700308844513223540944563235508789535842243176499250614836659986223338032849823638616673735655082640229218133065387642176536019424051631276424931157449022202810246223447134086496571198111647791128931607690640729625298264812683661550916657125297203928271965143469083082663702906722001176611156153248272150800994210510017310942730297124767500049358226431196235313960945959297300679522293755162277867455933587045691411307559208456446693496152736376000234316341567822940535084129519211090052857638431039126170356462733530629870258555613527278035501105501633535896212409700256197838395186404826206422899489906845897082283147596073959454831991075805497370796024155697032866894863547010760908124580682585218582589104842004636388249852449664229903065148190654520799268424758696369596762868443873217670058284071993050282851908360500946034829262059794951669805104523549081954221657053048842604727856497589574076374992578600298224904629487830493277193092091729646733027480081504904221834938435521897257485108239476928720735059620407511588688881513094888351490262086606403855086436527663316376680429079945481627676959262073535243381748370039369870859554855423379054934638571056795652640565623634293130496328287369897045940041026280715739333851277705898828005466509064543138387563839066478615339493540441459889774224057328281470404401173396126009386428618590902448908046731734733505992395420746532428878142276825586126654260469869680678224609572862858429382141945573597625092788097880979768781952979986277482730755948858275785421941250079174142990068958399701138319564592654401604562357639643750823204272063600938385961138366564958786277662041163709560788231487117150396186159562116367558963930523438694514062118478212120013461017215598147683081090485213859134068015042341159183176537462903264215073032536934121536720507878734233230180179435126434956275219588850556625940781865313766090058711195381872082127395610123102127191825230604852732815615223812717051381369375764611010965495677118630683900044815755031698193218729294392244777177072209962116658309835977534650721337865316577083928063145599067586042937977317351368738940334390692652280934791275163023856515685343755967945319901820888456481694104334070492972770102014915991710931217095433270990585291669886686835706498256102335394036330362509319890003505486973665492606459637050233158141827612232770221888340799978898388390738140623409748061356019164809813631400554768610083294342456628225446309096905112518499860597402098042391780459793314606933572511221420399045964805105437234471197735318122508386471655048365919348047201823593156270154709867168687440338554100977090711900061070112871035960279773685724715548186188561149429661382861336813528594776947522262165908685974450535426430083649133076781102252843591851570972625568189107172428089899001558453005118321422963835162067042627191609860976766275187799250080208276200032608860158167437084478113451300716613706114948264921274557643449309685385030998622955135325157754712895805336851553097049118613089199515315743297616453567910932101533565009626496929981538119521177657351990661166663218403650486605073320719068266593959519403420914247202323507415426870848260013524067261164100473326460253955310729485867021208253519301765713167987600616983826294085811518907890324300379958904304624902636587232814496029580822172842876381915848795657098225542795114473270719537203721338176590129462597927167465314755788553210674518338844081184863975812815650920710891106838019194367077096035966138237786130887319109497726385582128132452114479092364527019202650759407400015010604929849977492819861209911163765270591252881548964162406142213961530767756578575994010321994790878147595735038297852421174128683177238334218507605527976809035728115873758027403082181661414400409496499344539432064752572579422668118051120365474503790884071311732793614298435137263467824406097405202160177179406626556831998214611394095763680731008712002766875922551012554523010429747972122558692126221892676913365500045921815905743915598794934519871869194964599001037171930570086539573194464121081176510095440189623778800235371510831281881409337229161389338812262770262498362058827780496210401041268560896460161877456531719897817158278676241702982179566826521443461932237869125492791094161080166190924822137485982184828816528373457318385624234225337286505689156011168546682882185932344459299399810201745202639811347880001460388691979526857265039695084262568781305164011669407033148107606715366368486033438252048031799960323885234315689852485111797128134627684344559088452103576038174243375945090226850163884466146046555229027892869088536265959100032500703925762564702896711117513126389987291470388048607361640485628724677848984528433101051693424163812149854872345214112130182608759035532872024907874466653245897813098896356701537776800707473133948688882488525089339527552731265030816684203202594312602405350487020113170987859238440958522588105517287004328145225505868366880373400083760015081240478737816312366716826041896013724288228127160808038075331600679919949861520578089981209232692519182186556661496258129879893737723903961799000530527467236139556754391551415851308461357240743931370066086758640352069992364365025288569399484436441227448358387948728127918199805879625622570492514374788021211216622489443019118046005185220122311479274435487565214264887784484418622863037029993679197135354800176270615939279890679772792992557229536427249327082650906320428426365628272183705982853109144905263948749369603772010120217968699064266714303523264961534373360805824953305208098424208541564448214600498828063534165066097825451522640047411276320222266419625340762564801221369509837188421348658412457742277162883520401709742158409116909016312447766321067755799415046163221131955760279966522970390398753553273944433708803998531432762981314673451853149135903393345611822958373353051120754604784622160442419294238752340911944176370207730293066113410078892080448934022870498092322604112110063826725588389156583695475596946530356175981829527826900136534882333388072411526879307358288973879369841181488113238459791989778124590350605637419492127012578744347400764523318142798822878371471289168090712713236978154576089234740863643200994044344930228578018226857013810105717388835727274702423855039152339758815412066276360425745848707008168846032008431277330060445254326704309443218995341894715620981727064673202032839348248058952404978703900488387922728294464933298340840421142261237406354579089749785123141545382998873765372606997638822946891553794142415007543103231754602058332353105469586876950359816413456359692477682310924660327918947025352608225402387535909351811048455177390752337647739827880238008763440676322909805882778701449823720730035870486892668539365591294789881747159759344284413081252507837934123863659705800599063981234876490028209782944172833802713547310107371320205655459977201496815108251587833229639313606087441665526368369514373053643454159921551543082644739007473454628273334828251022355176120807845091958292306992524963374780732901417814094857008821869312456683041283449186535716630882416776917540280049229673418006217962365455698055959404069591228429923217612238336160355221725180884100327274675810664630077670578647181825501251364685081207829291171936577705010519234724319980831771849720798203311345402821053113788398742742192819316241139051702921843444054396396721726311197176474515938551756646699337042486086660418375403717317190927560912348557259806809190443336068121356552329722436928532736152894107589661253237957317985675064259648881463474872969909042476091275554067012157873381323278272711326548873304057511007080687580132410185161247277932510163855167127645880568471651115112673225809460127982203742286283735981981521125150014039335166449214747133958028462073007006785726122289506555268950131844170877558905756813093345795416143288415308568010129521508850352873306848648948760686968262974461497429708927783365691651611802641600857694366523843648017303473086515782829863751262749320234313519409204120623260449578046118291158741620053283835663475643454817683198877309672218733237319054618640041441150263581048650736330700420470162350226985384812629606428098357988006707114826996329745073376878790968211876638676832084595460711665815179607892689998389186927014086629626605388247743524333612935704095418545018645766854500712647636441470248074026449877517668027051735384856945132971616362333002309485374263626406248980187330199351411951633914138699672510746698695588232721058387849598428428971820647405826741762009339165270304249476259038396106867234706345269815168900428720377080961569465942995666024512540026412738713088888269514006047479075170888218922287962404645468820793666145096923243530073734419973445117213217746388139725938294453268951012293459420831900369045633332860770390775909203078371707841821041297752392616933227979645421718655907856013190152828943309167410858285703871698371703685077101302813884127620781492962056098776256294121009169614866623643635964709718239404468252956427265864274719937026820251276318577248023236811021498652395825483909613973289046909095089277631106375993489511435831103473451674117586238375872546017912923332102248558092578908502667715212535300967732461985671319021655638559885225690348971553907754434984311315428231724886894949181438268189426323750304650067933086175611359265851282813725924947254265275346797962934189440675983490925929799080975687592904803205836699472009187719375437185815430153045457601475789339932373276463861796047928588811155020934992679843452544376551125972783648340952061825576679081294850927048962792599241129980970837154634771756037191126991134028781284450152560906441273111859800717868688371908022164064992314474003058607662672488148323610426370269458371976144571995813107758249636859729246956082564221808711655707296134416910541773566827490314237642464204306491500936726788478187476028993597980139821071026306792115315893009757774832857486279067781851289597676274188168536800928768597776440096418774672939775087547278096227197992149431206179592868059424249115917992395902472395322551096514499124431226791035172370082221912423636794032558268099536133812399730883949956076580625873953678914981459521128344871247089756940760476929906510568426255080901108675606074389717159154185326915607539842177567280907554496481227505204586717212560296516173641716903179366947018452138072124103659334738495317699479450425975866602381806316106507617008826183047136425578168412908608467140792602074883257098741647814962152656354477933363699769131576691170260819493645411526048463968474195870862860536309229014888422021350492708799764619291141455521448710106372008740616780626896011355336918215933937837410283343307096145494022806697937741142490964903279261761560964125756309897583520515453537271207235597856882120509936919271140610556196322965908323757365175521656757563328125514967210205246255087860405254431847884378026288110075633385073969075886243048870007735935093947273241899209108346156411287870999594748151523394924396116916731513492773648281845098155327658945130587946625644726839360324840355720032640666892960649398570039170111309184017427457060490933817389066568648018271894884173353107138238803647926606339735940998456306496885081471010253309434209334528464962489246388230869184389793337249376540316035600776972268885434769020822288256035049030746940024135429249665996863101626029859924706814835790315654300652719383129481359322618014556903916278937564723082960392646324030566685496188918727514892276806454518851979300097444997063957669620186519740732517894918530525364065205840958802813178866749560247376619149061925899220701926104050105671964941434702224891764091866859102013170950091232299711138777191045102097390765469796677091899862995058759691699303187302142396414448394961307661809414762591738430587467576773497476614505783168975157088845170728178926777455520215075124269171065494662811055964698729038344420064997259950636247352036297137095455515211633776297402471229286628017212391121651659363523844743090074368891713264569254376964592083217823331333726810023968312900613276741167767299672533327464559951716715404236114336931623873774168003928365081351465051147640295966757982076756154866240780164696540741436430298377478153837877574581675791538947768957858678268860055764864031950929800378036682576907259737327232020352635391088675171414499875687180560085617831527781685144449895288762230331323108529059943699605925119041587442069080485941274382032038574468713769280724067778926673184922148735304423724867189180371239624007280500581140975034530209177286278605617298276789258299003661950728237220067426032978944701581701436182210882073894890617489825807490988302460911562219625518351071636822863770341776876364101936966323331224531247581757688163796743993323314026104279038695526121881042187777890155333899084496394205707067171604686652098867236793915709642042699209211870460927588423922980351816059171845128217217764508901924090613471109029110754537025274310778483950005625015317484278884152579473206540202068218786493684360787354098265265149043093736325874653726446845990911347736119720496402644096685475213753889169860411126976572596926876627724741008435728771327956279581367035059813327435898995509402366528497292410274031080392798264414911173500948748932700835520111310223679060188598668464702294682894223356956082673531750762831745486620272205791356045974972295449289844432807796887252117451697084034447005064072448529973250137755253833010345234427898805702500070919488832789393328947255631271552927526155579840129433896670210821382728106332309405267775664637116865412698144914322349160567617393150761564519127433167618560969202961286689948751157406912399605678698793227113260452940305308850752504349081913905148449591636153999175540140802031410830309479523056109241965834168763737967150492640374487206258080225478141590230874927029330775071363930009448707523601363894784342870174246086938990711330250851854528737446602003756630259741035673322931032340698077044303900373092106361404936460831239749297077171724304058390727345476788896263885130605846324817689843486581910868427580739920956030241461025440262483520794725480788334078869756608931300574361713848141190741696468887593615081746915023277306028363115402859680724844714021324188560864854593838033101445386822935805961684680975147734044739429412314295889600737242075859760185911544109491608368869505841728722922127331425850676845080619733714570467302958818214367653752829157415742243767363487608119948804329360010202988455220837486763501292597865258763345344147980525252166437112542670885689494884082469020638364327953792407591506376054184145425094301478277966684081032093068164210290851306737144659794629241918823586047541831532647778257205406400362935393644011710390475636993792226793610976728047022360478982702689301065508709315619492848281392963768232146826858900236452537309622397715958227803489326561968029536935290511433793151263010401995316200636821355393137694521222952244433141699185923403761407456457400303943089369412499988155941730124310394330086640132224285980689103368868168952897923057266867524631268211398301771915239299205498526965840168575282993202333615184953861933209250221396736583278953029650170671652907893596052750373099124306371105507630774789475663625769788747330737074956915242417619762680541440701902665435718944779379166329300067818653693695372608545936760440633618068356585286620771425372112280350494964721964085907974360389058725641376920727770332603956883120132668168534264689499462667792840540705064484349816646421400610192452150153868622772467584633567232940852586336216616155119070740045101152433910368745502758669824419983616663944206692906029782928070939268031739791248227054506833512635462591359627848208627933939966556632690214418832120332683482900062725066502963013007240435825378342505885216552340606106948393933055021659039393689300056786357615321223904871792012600247320612349547620098492425264276906941438042181951765045682875789378038865529779579831247646298595208650623970837534776940535798924488847325267858509527897759585205995723709376671360799120416733441763195368584458969021725575098698112551223659911678155417842418208232457656668422666687891447993804237956276096322174014057354373161201311777646778341689012779294912755187084238925653192863511851159696947162941784422632069186653242555770243465581996090759853386339749017773109805190974745031102685760629750478205164521051090932342903754078309745226720296458729818911878527449915722889718280734955890930232948133355123849200501058770642014708958448295446480909265435190348954687207170856031414182353404933014628042782919786576018580057015294580920944127789299255799010103862598716414470803964471507958638599911504862966332388800899195393024618632366030089232102959091067863552724143925546176279512540466336506186526044573905718751684000536785172851164698758830014800699621515685540049699456361256343426637685390221710106722735669156284905417261917016063666822957949118614627633734097125509454874545541729571041687548618237023561046136385333426176173694104687290976951488669013374265006036646338028428172936195206634947673552280950630697732414207407119757434682352673361989200974553686864791784723538500290638723043744398351648752403596423217751721988101046573019609110111730201320152239543751798380907780648735362338269263001414376819982365437628920597478901905324834696888243911849649754506415542824908529500718155125662738092432618010570561775067826776755902428366286433287042840641068327932393445229714498539147954297049972700585111726991747181024790310032704732791448130074709633553735791842066758813162750266466612474210156744968180583717014982154582667413817953159919611834544572164670275210808700135515420080999389746702717238712375354243863648224015011567266512399041147754221750948164152230636777467190834939765614205034870248892704419010587433755341974024712924380278348028785686672890058409546312804242996273684385640777077039553970252743168114605330442497916245582823482977046030629682271244640223097095153779282827044146483929418516368685564727170618359075043835502414822260088158722927384389867276385498379159414086267784923989937143820105667773318355803978864470802174799527106954839400401952757289877612031189002019709442045658081604527629325631559738990231068439867253742520488001433670485687433122888535938130807925518551173781877488195677809495009974506730770222197918982992512429026540937539850701317542162610237342932438116760845336207004250717513571470487995723962566869608269930409348346446534309907837198808042077012038725290045100673104785124352091138720169100538546513768485238796966237964054777965446415658781730680579560087588095179577637953674628574078276536371294262006588401856826754990466388005896626258952297180195675265950838810497574527996971572543460024094609430405919481082012696171074227406097544237499978846127319528892962041831182315336593089081260880420387103928183943975329553612503084209696503439052666598079742717114116878542761482452244578911912076587301245385388165846716092574476676954725206515500924910226012836180764632367789163317011729352547648096379117107201347397754859664252773682763680829142122551068214333698621247674693941074330637169557148209549702395322561851228081549884197853816879213422490383943960853155122918292843240577072524775394199209589310565970698836956865209666554438413299067742095821926125760370144303169780090956845184174767233963278862084932015570802179095344141092710423677770564690856469902874504118592308349735630651637333695674772607636127655768977903633238417039728095497401613622195657909919915220510757381128152976494331839310136506312683468974557804320782025690909145482884169425183641761385396975049473660061182341922813938234658043648828523104043880324198641438446495981885271746449302781955524619006689853849517579748031797894899952678761439379530955684127746037059001499238035842988157291896348827654256796735160244235594053430863116153378054890472822131305231922439196851290785650641061708958085636602907026945292525098981533769540573326847623839524157261603987265724720560466584752320286972106642011457583529073480641770926780684934560418126470119065592536596022045613153279137712712957095570695058442652590362691823589168083395578211122415037509706692244535282276323587614316395776629161588098965070249570949975178908610803461373995831978248878601369993879314231706442902293345900760631446365380199692548417648815239565893971257687418185476014424483880733236065943887196614922732209447215099115627981589964709426456024557420517931762902662342269449875917087025594286831948840028837110946196840314729792769909454947832593650261574264759716323003872418012544457625935824017754268448812436805333012587516088892884203100666203086688700323003993793554275333027246810844143775238177377157850420633400191927377337739236817842218339277238954515541338406111731013017943688745483232600347718507029067735123570722424249098192449555667572544692379758082016612068109216133528432609080569363013361630617219593268133107301655285496554732013393140751239956317683774539792712096867845180191093181365882179531777224701973083230535384395224598650392517879130366962171924109488125955752781241562573389649837515867776176252279360651286953538494433390655988217424096242101932906182535935902429747225683713767907614353480717601806637671080644150516697492413163487278293648918900535326727694491365940400575813022779397809840260578494230297973110929646250453931329861414244270708227745437885670237646839883679969830121284207103315546566705212007588825339404189821057665222752289149023651261814130219927355910850826929475306886401686255071865988153408935203342913246843051976793630365255355715090000311668542300277781625207644695758352764803708526743672758711196755726394014618942576969761509207087996838493323732349953335714482780617729912500337918820788398137749536839421167469278980186747634887912284652031088013713659386627844653220117670517282963820964621322632591801670646576867686985196135935990098190609916810358346272354463307740803161449361442447205677518150777742681591236338919979452464352609527917530968646257362834496426701936139432898079841963427048312399112771774701232279841834091490450686610764341773596673819865338568199941545389739742390582284264635377889944110434527649559483998610897233043451553215379681159830906390539592012585256380110248862638895363311354839750709141982968901149747454002860091780664592394305316934222209438955684640542259495538902854654989456111156434793811847032837877848645431206836205683926509095655334216738334307544940022045480837219585365882252582932498658475575878788733715014994412698020274580494370018811353927145706866957295354119525669775318203389981240025509934045624807805222130067126317402442754491369908128802793180230872930556560086700936655710608090683439795165465681127195286204781177108822853593224037011288080402302648823964844883520180993273831632413277287098899147534734751948243771018249065995250203735435341459687600369191308561373080223845791430039480195154906700474986056447000854396353475927902971172323256250921958778744267524134108259297578850133712627175148340021551996886464233302019602709983510592918275803018980993977636438324121921150672060640973121080482300926678856433845514556782661118407150798597030891384685475115806357098009120436844643923262373927630641312688709834919412482342925934571234154020160052098664424223983328565242780933304404282337928573422452865429957938272785337050527936008860237847703037221920180905871103871406822115102611176105980624665381881100114564050843419013929270420257478647387159829532603534642513526514372906623407648600193704687765818888609079370059277136608093971277195961440610809705944929443419080973172435818000642024970514587147737889335966046122630272845464352258231355014337883045146187455459069848774145016991561849632492784842502495098534711721037977161943349790992486655792313840397039459786178284816321382948448371349201526734071526838399884177150910649658922038678832331660059542918134940916808270016723160043017129530697361099338296357725105356532212737551062268653743660021817627827313220354880169580363560151702502573906715111675753498930140025130252461095727878252726631862356194946191621889130359326287337472384844753248399603117136094483480908860726320967505318388558215820483157022911440550746345887095864782801310955462449441318560970276394420446023462050324371052285686447003961424447276416368439326645249862341115071609369697903229353644932344713284363827616164426663674845336507416558589426119950100879855295944297410976421952625249737614381393602302583929564510905780749184240264805575859722045039823749428623586702195982549309269433530493733902046067080142856806956914633840529180310834298897967761175165163049727879056847643160049395438190398931668351692597383481711476314562490063291940959315190765782247078806615941363747715066964211467445842326132235428339790443028233340603221380514629626635438725586228638679964372022358944463436180713984957518760453322800430845060145797259788957554898647892523891064503477985083898084752126509056551997973847210712935390200361272466952544916925298652118194953774428479273691730922085520174516958748537952146010763763265977892816910894094259623555096269645313017818621822763369908505282739602612076303486449808576974563650022239666680406738566623289976035323716989855873813319946117914172988738233666687293634369645914867475369190112254463887876324116440627357205532754366774775508016743116514625454434088089533958062101121504272619075802198869473497154917997956238958021178217566457973877333534742559505135702046964263510300019300876820282138721980448927567083152747446689724094336799295298054669016472034261171182276741701457218655965699398600607612049075608213757571514424530026205832658172379991001205590874054859320118434470582871038982307747510790364556603962428320144352318248746812809601223578710248543872670774024183706868444117682657976949874456481133960977117622849849182091223498258963228983609798977441105774133529853286442762466807916483271929224371474097202149186391418665055562081013921078713408789163656183112684603681515902029201092927747505193440100839942950668881451498450953691504432833534231888030179434062725411472335565346485648527825276358221096766223093390003589586109395496909668510880437720256107711678847745253613297158608036467532342560272672708436953407700998344423576409350854794026353845825924964179079897315463249482109058672348152181969177139472176324329997718791901476583842848669131436257831083798602833581320403817562407450390290101995428628017207543997739863442968629988873612935113106662565756704660066480358968994383096511705122597073461446952886073409287713432726018394438121509248230479990328340224845701586381885628730121850110908484871121192592889625586921312231284901011164744159658023395410571731873574629409847153569853667594145061660246064489127882484795215788975756975924738486017327885921625425791387774265470940479329755481121645718130492038910083450718508022887628280464897405956275545293631227403263582573050402851341210120964655428996813718953178583749057857670922923511901578515637849433985394512693700735528462435891560603001928412596301889583317739314423207101592863988954890300516871895206610671763403540398637551050342982865447238616243502388331777419940244253582909245456488878874930153397078713949653410163693501694849304931950079546805694589568770119973157843714997953456172812272524840565603329205415638456114759594614021218206664927398186448026961469600809021547575945430913684649189673792771576609479550896446887931559681480105951124662658307145949845245549542035805606045200772115456940303838690060726276915185125625626966412753308955901697488508038686459728064020411452420770504663048186823790024984781124223064323973148663366130840981631964960684984143535110344332131899855785435532343899799832038768556241175303332307553169477617291984518011942962075768642600794876325002085704303013968050866037297800941269312620549444528719446849491232254455761443641098231684579354274089686494531451975324490571628999114032128106482505448456989861769100410101055093928232821776362190829543987941109209598907182966913605649319417555017513008731755328127489590399768729657252540103824390282489204950729655661158600496464193646852921160673506358598695512324541400672199612590776975731502001652697609009595302347860205652663590273808097251215928446924076394266950147582569481209185778130408839097182932717558775907546586096690360898528684800396140147136964590882249246651139037640950771724958342697659370331108701896611369609932789508948316380538726067335894804422267422811918139777257735077336705030670834490143429198039853365153823578670210378069340237232941099810623668215887723742473892831394053606990864729754014181302963229420836343696377064439580751567913815316362643510719640429149594874366057795368580537323118891878733107153867381109302209711454027277348764990541562288792599089585303801332934000484264963392785639721482036318915040790527030917260780499106382219778199896175814774804232971189052617467079047605294724673546142040686248898343301606666212286870991075005643945925533672736996860884863493341759047884443630706449652938912561763716766887124999772319660742534040376775845326005590393021480177322003994181196722541141529247965194493179268181236836758589332046292625076393646875231726184147780587710939581142386779670477136226191801884563801390718632626947643218861905669073105424555700325419372857988180648456498524230404443568837599204457311348417046044442680383571668661581799255414517095308421632752520094285204165630850355218271432749687189811561136177237713759906280059078395871147106666257680893655817489991067277913939210552194695765805977856902469309877811698203838508432756270328194467754871709952607629999876378238311033147075025868669014314107947690387012015979032327509557323546746591180451056285822814550309494450580004417595096752000085153173646162621882784498809931953935958077187671133488377368869227477962737038582837388102928915099726718618930947703097667197007681289992854774476262097711064150293386626087182832830249114709448481555728128699164975815939380849540114632172821199589637835585011164507206777458525427647355451882672739651001234648788049212183556540522547824615297308126396151729475028933843025188364055445253602829651864018131816252558371899194154146140679997965847465195552616660105452478650240710837815410229682851391458041736961727729742196255783015681938405351483706740210736502491722228739548456789605556423541832567110565591716491075994869528934306019860637696165926866723274313954527057299371354220868460311065339699080315511165582285616346238623826648198935925818296481927742749607790831802732019350317155512980503224693710607840139108173378913311806078301611948407105344341001089192773517411991624128951537898835653038087889946022873450353322558816377344384299353426651383212455325451316442838106517138944330554007630415870806580871794532990862875811322421163071637801321547020103821021044341328308361780594432100445458136450845967307170270601672950838248524920902192936166927672941943152625620172446849810872556320243949479652631810382388733856080312855855782544126410430280625438910298006866199883686503816624886725455828457899003415477786817020278961454562069357360105767092323810194982378024687390295135042329983922253730090587844413273981634290468737333610016636456361874807603465636301514110485114313862410387678184774409269372097358852917109612714909509979897367805909748457535788603562145112288758553994217744780600428927242931601516016860726876805988705658311570770729453544161842431401759756139974610212883907627974693991717330157245588986677764356428275948505890764391979769863198904954066651118683079442465900610830521070013797326239372319412496843356253980202093769838049958324708428783995741433142102945186332796719516623354899201935854853380695755058877793379509546986859022962335615586439665379728450048637763023787860281114501539525004736626285740403751184591598949028668893213033143720401239062193802628623707373064346160809952719652960154509031908283820756312268208715222663875573506327476147840033848790641618235954125478327238964086636391489897732278325293639887966354106299878611986345314713192094729500801466368426596437093160840475869622506000370957834923526867919177797126301772885565746305976092275973756302638194818257985013377041380466409030380261329523272029180073701318631214025977349496193206328716669249697299371573352319813659350978733828182251971223730420745034801892584183264329194735387559371581988009278231925895737440401007467123767560273482997312929264479902358526847333361101663244079307756577592944350184770839771597731388586857770494258743094158367665124972441855654992057023214993566893958033226414858607710026408770645997484928532307559340418071511740640567800350168898357929762726755996281008936325383845397598032949187291219473361407587126005970707312211692626041442691262483551150979518710578875588629589994220080443773603729244483939365930394141324119429644735916587292745846749891000929105736325064873109201121586819201227179378668683273399355157560586927098169407702677740463222693737113010778539402854011146314123564132936501261522457845313963292369896551725532810933146952538741666193358554156287753028439334756043904656968061470853374261341901338374107390101926922931002065798099237536939570771368764603167224716421049481289014234421303732214681470663777524088895054499710317185744673619174034102296270445007643550763648529999434966383267748367488361209411944286366076682763400333463406943619106041045075792113872149923395358936893140503036334887930795355695368684811362927511715867046444914503694273250247304980497803050873865549113271925789731770214162400268030023214474149249385160421875794123740199986795849062859776440803981647859791555141110533486908268803766437363915334081300042790059146370583536317600334002014778431611534825350032361003936447703593404107450840476034913741644239058269499520012638525354698116233350378373234723883474638544231905415738409509680072933617543182638213982336479383330937098122641681105581613905772477238179233129890805562647593995213425592707690536642240523767804969455288346638746791510023866784139991307953853204095698204490979999377416778893437659076559009481876320622369170701589622507891282682376423536396463645898129398758975317897679515156137381126809049595344549144684227536058417610561477868561055981950467269038551093211697271501214803233621102591469170532290526812802628875224774008846684036881661764406356849682321396215984295200947242985768001901473256070328153372543100785980794119428435784105677110976059153346706194545386877493495250202893001384142080386386686767295854339056753572717148169104788815301510915067265424673883788658228346139971101840813924068461522620569390398254573381722141330989218893144224778219238746659753344896300203327516801457515435910970556313884847111220912021756881912360892360077953456182907395569088307874415338942593378061688971805930940055526431766632291495584344795983577246934113428064329939230169087984913925720332842157466687026119835295935061674783377069534529913531147836290311288114229183522439533665094233476697228946847193601026054101646124721769589396541932325207192104598974807796350372733469208575220906424451350807040540286958359853025280211173283608793768762813021843772269367290740427261452284567354472889718153890584542748886802052246428827857533756774829492194030892989168429141409198765247031027999051921154798348983827576699726287981174954386670126983314492617165537548882295596029859691757561489459577480946059758116314012194892554031662421197595560231786270500590201080369395550996195377973335193820372308155847325956911494707905881551858648717759973448939147908967680163275743193588239763314110766569575366528443815731179975617094354812991799977963267251225669845026938763975025706239038749570755131267849178154233914004666932642556206414067458834454776216136242448295417120351552136137112410180409801331833343293994984412780045622203725830662938669464744115476329822586137229206106715603835354774010310294277809178851961135139645029804606202089051643126871947909341254720260066633813412411976242854955166344272345093736292469386256511058878155353132882894084216057291407661818794634934094783730360250542787831416495735686377297902031796640456734769232426909627107691784169785564340186157136163069711407662266903551897411660949418258720234038444644250835583566637923888765444190202747343992319267054845201388946449462226173975216120741593875801060735672761028493626807241226942231601039666469970236234704491413646529548710360264755612710878052429696627024394211718478020983171167651736510650298861808531654136639262479086267208461695015478333369913951360068028699316975087757357690349653444968657668900219659319449572756406908841434438324979174291974744009211810863193918806756848229876665989543889317887634342828906861943039918170294509007009851314430471881203109187507688453825303009957251677773582713365145536707715634791327286303393257791871905770398987708190680485126559252490842274430652589050194566828553255343363248127655396712844362400821736071522121042418436239681804583546081555500680172196609967337316535573327918879648749780233627752573487218702642941179823855364722686073465951048658255360547431065011889800889464653301527489557748791079091980299293049824911873178939120147022092707697451264316657761514465845752345457573116437459615123012000168779156624935466633934329118043613649107607124945953603822152933725751190061195179284616203536696644446556577318125182072208565871713126595670826986548960795314117719907165790785390143886932720077201894279396246160730507336353996671206014849750658822848058029553062924343380047934226528410316811206637319338887296785585187131701705316154949875876846370675551585446754052941276428702173393181457292152158469911288782867522462827487075044737744292853043683853075373134159451872882133602226489206494429178988365112249242979701656416589158580484829560743185941922215153467824596459715091829265931871677245416432844619598318924660945485511964093968839755465668216433930634737559983495759968928949120009352183182642031030209828425883977862146591267728621100858821799366705083302872409531951376097862007659996627931375127830764410980918884794229809891619154607672638679389940498063237792959614094934873999241128775418526197169987050499896183504280907123011690470122499957573236847899938367390250650375685926014891355841049762196077024958244171134215344303911618818330177811468287216019731801753727794671275071291454534123473088948735839874445194224112860104339620156578662121409875827510700629938329906487185276488182919405433547273894205296814118143949854008227737691592935041589751255119949833028184110501314254833268932259841394634540795303104335905854856537352867871650215675256001726052964066585381330847607078749783402852895055903471327933604348874049248828663904464112750033376223499086051182074792544545624237480286447366722797214567907078049366441821674389170377339432803309729455415599747388936890030829354108692747981020044474277603701275840667144022279332643303117926873120064378014828408638971438127156219952053859322022346224865988476822348977803385703138867085324806224699702898756386997422522174501736160656237907155845800153970039375349832791001804617146172483598930648692146702926937997713116147381585355757366171583669025603666873740549722377316647753730145189140509349154659824568624933099680933713661334453034552953134264014625142467406613620282509218187628946621475314953217676270189260583313287837794201326786392071589771661282218360826744951788430368933454131129125396581689031465090931571516945975802455386929073548461342788224689891387513192003952733388277449575782124360668535093889003018684487314749129788121191623970944909700188533717051934708272793287971621320418258117273169611733940025922189107687704728817086198966876277014296422902149050951059634814555813556752204929044472858304895203194557771417161247084260026435764524389432498216886197365100101231614149088047374443588579091470754039504524945025181093638500415915210879655198817799911999698026536144441466438058764682370428768048267841934813216734070390153003278627763741399345345204721791362610051079099974761461954504633324654395790032310306756963655724539579917577901565291937968948242515852548537564953609810317574916356066170095630035963820116260692221188857263902920932280350316583988291958510921789082154919791376508121902035325686868799376621929453100575739284304725466319192692536180828588787650095552480508435753286321832059350125655593520398362152300357585327871604936179666184558834186022519484373400083493472854689023368199147302313934196971931481943305260222745592291045427079632070300430865736949389259527037795654180063876083392245772457983007107027535679109277686162202210748175446198414627925335094181851403923306787249796469128970179313019986276671190988077637007156258074864474821431738023688061712122716874587420188838105987596256347109197118043296381183167016751407022504521664897092189317828355067171482829379895938933172872193160154235163104893362963305712798958654768250578639894356116696710470169591585858783247135968290518431690908438344073446942565063006758216761735726192077209952700083593335644490310733105653653387396780644320198802323181209648314454296566895710942313989861174036918754988031128307185068334800148368090314810058067645452559341348424017927763125083192655867963558175571899541579444372055310424458741168920673119893286823612803003715886700539983985075297457942771772450713163525718503469569736322367025303108635885413132085294891551247666426229447967691676079976079885570154236920642685823487151592949559426891367253171629297743732825759614375544499832675490395553887321667419963284083867550217652652556649897841054575244733263793573110335943038881458139233878772360355794769326738204090392515279161765737800644333442035011515964752490116000685076943711064233176904191271122828833204408175584824508747812890134467227613069059520572991412425591143412102028087205763624858828546587236476836985593586970021159968428443622023617346949359239359251853266813339480934618985917949560892954895116943577060050762957509255019340618187985065918649982860928452402186272970617808744487144789673720288493392496026539016476659363179199634314619511119736016992932060079451538993727312407656509540111784926565251152958293680092020978141783379791553128728868918541150970244060815756684335417794775841188123175734688405257379769579444141145359197927205602487216820014151642176221590266228893675526741591867798496053775644375696955521621079854534785108557389144450074878915643659413791912757260928853518838488569099334283638323291566678512586734649878780138248724236130387722361211397184357046990368379356410844454775232597839238793454828078982056635168846697682310932494197898223282432846701140285252203631995586825495574890224868820412909331488307879295262343874267748449759288497685247641801372067157337702990154072263261147790536456014190071467746459584368622656343023554089078860094477327098920894611922415939567662207691679903450271425680183450088156892572144767998678382558804144445936982143132143471150112746217888148712566122407352870861315254503093638964012689156695572618661566905349867406555216572457065681445224239329379464929140299616876018839691422616185752435584271112341979195892694955295247364293369536822553385351868782450544786479906853816182916375341993121337968509323763051639905420633118603124061486257520548349427963248069913605985505517975057226441381228199266082174663600928162594624309043890128038499602220911275030851415886193334217694748022941333014166444176985594158239892974302352234884583228400097272077121643873151023084184014780499735228852332130376010629398813913200228855511829169788731249229412064931223423023358910933010716778254309434755503687370639550789618577651910051704439097118730200871072527040543859340738529719226874427714577539917270311541610464925743509975564198100427663037729397584040418443148448305868263011946546843779304310375091558280678486939601077194615386584535237380054292471315757872564707448163636918664143935824491276565636055655490116834568608684135344242317696030601254310076478405671100234120602667748420740280873471997177815629496732868211262599238659147019537300274710177229509611416345671735278818181464510929625419553176069940842826352818296133375203398004421619204174369629091545643758367483298289624366802180109777866600927305965966420467387110093957361668048179620408025623140942610061018522363484911236422698380878573540192851070634928297746843399822717088882297827460874510080851993216519496423918387874273208085558846812821348857047794733803947832995388702543476829788199768744561160136441683391310910201801896599171783261045632193291667093179630422266569893971703176678652786105563935091810495842176029872324085788694721369022176791842280750443501662179691022595381553569030271532768919357385596805648304119281517126485144108547215362137784094915301163250744628227187253111816230755316377032655025978154849502137551930587771407564456696574750636144148627465167713012612409361632209169519300492875478396828329461545770387766520991151195029851016076008506556338080031340504451655338830993718375462280864268622873360313486376433429412855923588630156915926763909013116683881463093741295347464191972575810710490750485334944241281197834985098942787170256461199823921447774790513058196731067049569867516862795564608287411885306540897529179620519637321188552747477727316332602175304825249725201708289633842044713154921165122302231451787123346627689171474256624414637612640300462103709927818509711332141135686083099460387333473047832291317314240189831729465178737770759759986160765467765707139400882786069368142008281197939882972175430214649409176932725289145014937229469594263187836998698438389588835404650403986176271963240115961877279551582613541352558026354308654360662954280546354352154710632916790651866094597794107607914325745544365414544204134691888044389843268555593624205947311425965066182480900432355871257046415581677387279155368076035033844552950483867198085415757063224170758213232652393387871239574870735079649697252033422744882695336330411531102599898496844428845736471171347736851094949358645724324744262171485092076268611374066792599498406609073434916022831776411811799493143225740121338035822701350012390445966058493998630943744117019516715324186717100305341832003057137625546584269804170991689682869861117894032242996480000201069250798776096295698267219494842749839670879554478925808203010220705573917533702590507440339014245057344901975748310849045200449486086167895673638843090701004323970484044117185530012664954320415754277673087319335481965284486590555568545276473131707416261026128197308063026925345761842445207817137297457432868306023655665061615351811608398166040079750974760734052923007216208101262395406567939217515384949685258819502346593223258348527277864775639391936646861294672017198119238852365986756652296897307196188556970197565356067266714798463067788416503950782255667415538691450872792146959378676567546427097519151860945274122974929571646299012222474661219527394842364419538862749503796289931535899430051700423387766320434356877177030821009826546925029627546393430973276101136619413761601213750109523058938103817914812659261296414537373724137756264810082071572015486408186794155841538015742049599119689451008712321419265794844824825483374829322103961560597834229894088985136957200495972811583260447650306645344500491363820221844828117853173853533642435115051391601276001367244220360924945394472178241107586653309919856580636400190718057641314762105870651399912405224814281738590406024960642233928569890115560871699794317079650395045423962014259043204116404613300622707059722440311509065596832399188176686578356772420048239151379345478325583921894087220321555594363307056238777406433019801825913084643450497580709989184923962142086150708164309826654357109049789280517448241694715290439656811274437457184421002407438376895914773347868592110022415134327767450462635906216525830372872234769399264134174837526294267512584785652001781649251198674813194682197791548783469284025548480472517849398638654092067908472200054360814635889693940306280808950254105618425984792785582092326840412823237847928928571961573121975232247555080544163988507889995066248593921062358115025487811416304887734092446562880046418625553364112213573602418719228008299044046399205012212417515753606702809798776911488976379503036302052838843092007647138553752726642975060026574945533996253634629793500528963038069387577992780970447856808031648451049067769447310793711987340796915338762206740878313966552350559497557585123210006269507680990768799879091495163592735975709652366542199389801554458542236422328189234809051559365650742674400223051037970377472523457879065058117437102396008398466420054522291453171423531443965694120806025825733609387801932632448683805678452122510717201997422626536509268958274753231070792917060518836277814704026194060083123991518903067188679599225513898544222176307271497040375389042674044551733768441345130828513870146658394466354038779168740065785564617154063240209479992372494069831393414056457002077641837859296776254338261866614416862515952747803261090056309396414201781700974718088227040969987040953448378507506342333425785816083685444692248297410574951939600427285227604809993042354763166167490124408949412784463118985407275443118110504708271919983777965310682669930082854988029386271643144568791883452750593351796862400559571119290476711935635152525227100736836017554362680459947013756781139461612235381631405871004774845390126510315247516360915376040753597061035359957504512875679008921405370205795608029660930029231399502344477532646105101102965363487694505380553796843438457811461037050417305411573157248815933455037185348666261583699387346615018381258355450755400089743232757534015120110007129432785302627908406739028890333926912783624237336237660173549138590808142518592351603836952517155525387373074091687697562255487686530215939250507046736200500441527399617759188977872509375268680536627482423848730037179890794315257771219006411668753909033539597398935668006452793661203493666442394966139324566436755861644859357036374104260077096419503537156068389295722035252944377961761357359438715517181153778421620261080825572443258099116304463131949518101963589152968863507669982800585239809061910912436393516064117986994412442664183606503857238987914508124270396407654785956826837637692120717510272407084207621440353217557703542788118919733551183161838682385143293394129285490085509490255989776492429868775866973810702281702198089248302710786387929890577965665433752206878895672508371081850675284011779547515357698808844837603344349499554477527500498747698325178833340963910579100928288671091294740974748022494389535665149575397663548862934107083585234028532057991873498790241593363761813281116013234110944718006182689183276385742375504064286974069254376464207374445905168300512339368762991812570132527232865333804773228884913840113087545254277594215279213406565931791718959326829634961591284370444377591903460493626524698189257091644543714215210972043010942779242170431398407619688495417375159353073477806219732841913994046393956017575257516552885179478297458033708807174335544148898064320859668855342798226007701601491699058270905442651677048320375050996656983444142302097063967272736811315453687346936079117998988702688746593941808818561627956999952410374830420506848821161397074799902312622231773150348239813249038175178533667372813269143278660638201895239471990269444541679118484980063121571347333716295649733035480584805710371798249638697180335029602482949824941803171445819822377490670719753215628322809272207455960026452587934215121511502967866737952350892697953475227902564850023118633902639736883480319246665875560068612547394176570600530140765554552100654529569189525382440080488401906234763278298882229239662269116340436035314240309533541178186411587584866660623628842058715910513852091676332439152080012373917797073221967989215622588502313602130698438425167277071371036698614633392633313498932823977883950345039972664673661193746203131787990334855320655819178787729644137565367143455411374604737105300959639044513178937171741944789499285517092115489759612053924013910918539999946924601817809950301071461553279769648438704833534641351413924329552096542373131474821044388087491389045869121687490543324281767654154899187011242410044985451770235925173322017703135644714169793316468242703960031538508660681880006568062283458427163999858747879075850438104503828431999760719739018701994804685273039078976011384333480199306653264016462200697963781664175521342516036586159367323194678432675487479167735555633224927166843859453747213549449441396548796870966707049499213372833703051646466189418810363201654294415331326424342582345829129742030917459573531737044601992294684780824533572968890398324886520233794709809922007117890800278675957369224103921460248648688662433047072761348559341204639768599048241901702202151229591421974577981653626657096559911762001827891170802840834912633410861569648362880125754229469089695660928567253852254524376899120509382334677890554716987856168383373092791568117625910141655731793936096950045528723133089665474546058679499893870731875299127624034499356654257060050074631302684188187436061370683140529335112003517281709791364925675356426139797949447755977611392517083013783506694429297333974858297328345527439966494043382021570482694876232097959410513666880078826379089685365431819905972549068693557448550378742646926036807906769099208137870666607519909515737301519578557799472680042060988448373963121152518080741704034606379263712459693595959602245354420617020073836156151016763904830448547117029722650225640470076236495658395269822540864326713452312997299245029554563280475630757681115907284248145916910504895679720856490286305324790839317412613372097495703176877098238847160134383385313219026154591955574891837280904484278269126871510865969244342465949951347015687851019877096443658793667438593811515160212227685534468342387258006191060596168062437917266974627820212450703463364697941367363192172801964531100196317466722094305882921568946118852129945474988020656703178656780137656557377105169643478874842633190811599443791276607284059865093861212211003365238578614291891362399114267185830874466684133412234990581825951618345366866747834595224056364296593157449374171919031123324691796001236524455924386433758353440147036182818136563990135774330318398045243895577155501218562737261791627646549195415053689430191487285022037601829035544621483102685469776248261187781879909164752078361347223891756136114692385664724843820256052462330595150866599178886297000221487380467298529273671208612681795472619725533659435630315170131339721345928202765305922655181379363104410054958848315394140607493297501931846250842543921055393226192720190396887070983826156879953510060479356672321962851729256950709430937908302811912533958207865377709629776455139816531398504663211402214182271560170949668105881940009422974790718332634584290346291928476344846870931186439988094625240506380746571357393841357854177277431123892288071181374961146409315212515488805948223255412191407335632289135373132638227691576610669666538884820252064932712103927875039333286946909178177661125893219389745457731936113558665121332623705838393542235112366934164775828687671266412796519790445619720795583357167407886439603083949709183105550143993160808384760606808915429882546144015455016238659609856869618002376770984713641052921796282976500585191668651978128769420503457458668598134896711696030784025793003518364178400338689136683437489768895112734070947208632078020909757948270650648420590561125126984734132854437946399737315152732268099980777653354480733167104766620562969697824505055797162396855850971956571117974605024229096779847696537514687783241331002107618043331627429893551954885543540837031680770889466503237536836930232448929984740571845460704673890998079605578296523407234132347653471923275857854785329045891910804972260451242158851196426700548423418777906783178760231752707256203047648303226322761566774942484968498647692391423979399033209765759661305923250312299927653102882034558478310725253672433169540154799365604731825201839563107987329599121259333707487050884464137805663929427781103946957733089370293665192858542152097428041795765547164948507769195367237258564429961398950758766124862215392697280071938770076025762393281213837638215120601539345162978232579376998605727666349906283814621623414806919505788525019809165209812510199666510161986789729395877585712876129856802560341142760688714359321073949365742041263980792917780959967628846276851435530244318026360098896666723456130969044088586561838336455757865240811283246785800646985533457418725202751675482277792556815139630638795370277851135674118652845442387285921911170866450938089888446082667669894023198387781861708387218162490813308757401429818552061384263330360372693271488449846544038686646737178693799954947730148126281097776234238542917584607657903342972120358720313018489693340887827953914881775218867276208274725358030525889004590400406672542508132919401851929171245824673650653348064013474461110878101909801695739284291550226835709781225829301516500201510068219312053483102573361985138673663932734155559008605873568107003341440740523760009322254179228540869327423099910600082913886949063104283631639720176940094774263631464330574086288021455811830458913194519208106963412672964040030755184830406028715988217872439141569888865108690972141964273333729640301190545540854413863863375661339459043601086606279651719225364489860171130925879827322035324567295328304654068114167226451648725562536622250976580486701236961803672509892160598403815146103876953770190007817766086400260832202944909390176222018543106000111121017067783030298022980181880037296020845368452413306211839629878238142377257296822073309241523256063962250482728887198100962945717139369918008830296565320472929647802483927991917398657528341806397681342240820008679602254756843269058824981846208862358099484964643432986445614936485270292404776058123784073575452503026415346056435019217887030726770697695253668172918455888232482492513673649082250134273015457954955632062165018525569537557196051979226158097398413431160130822754395248941939310324587532180789592064737998111753244570515889974345992166011695609860458795083186455836857946134770309811831404941663729787936564798645180699661840988558998948868777337039572616697914258469433747214185670366947780911245943592296790016575651824373090107967230401143534927735953183097628573608472366806559940731626837078213134668532675117088263252143540697425657355559930762648599360142019475571303910347513599681789863545894038827210988107678296846032150221999851700636648819830388965853811285840268891661128202532223988868490535475157271824450730448002838002201460258493592865534780543531586949436945565572794250223665182889030119035988878286821584816813901733832423926201414300639780206206999445061938478655963902541886740492331545989489013080673189315342661745070022165900999498402666690538354672629230672321767979245212083201902112922200726042663692947112036817566418176464621313240070713588714205442159291613211019773759555153179817902512078096127360626547241490093864866204022201713007848775325695248865072535595072028983512839534744798165829594163986140763682945467035335960213101199379663972845751201972211245381405241815397659134260233969535773141308607515542383230985769060579561571446307300635472218545185632217306256338423484088977304436055314919782668409021209654635760537288134780512790152029678044298058576633930662405485657706956832890956437572295377602986805437253778989019112244876935321598399154352330428475071167037983691621280304762769721682175200317733329554420057327269678990672782765362430609699536398226747865206168964348459617081689584533025681071994570812598288894417248194750369031703736425431310212139021333052550992420227522837379268606395967912377175260673010527613418082694630668038071861007791509148577756519987331414495620898597459402955558281102637472918676626690579812063369763074668327758827975216763199140897125567389987616489175989617991447421001453977504140001010543690158493278827458476794829074565237810100878022778094498362676008281076706983305969279945363159577647047482305906437367005441192663748292531348837601334811657873834020700874805123228735787884384683934391967457387602986289473760821922455457024148566420707492254991457681802537281725024241492884362064018858375474203829265024771160265175827209472683901558437506882699506203710053791425031658360245091991159666179675997265276251033390906701246485380799833659240533955112312795883117787130780631809486519544273152102183810142803907881489198893054714278449508899309553166955563909915485851312723556703972415588250367731684028850481448453856938931131400898158552547779223460128658660790032123514692202194625709691285969717965431714720185236620594952567140113614148291890034731416384234716750453765975722682688234228161567590765714871028837576280546721835994249081240478977221029433975264980124491584503637315584669163337698105171241002962334563303487542798971584723575554624655145242777860699214253566366019212483325155885756738063359637437757244430321896648192979739698206985767991994383780372128019087069729736487883876832733672148056176008607093643880311624614251484977291730266794462991340660409104479974554419632486964191347071956220238964185871796083754099644539611652570051927712648222485496368918772613981017500972361661905884333034358916147552268022405011044800380868357670177695719188860060689515326476985738946933527992913333398196651401370653788374567031829153628881000490575137289613431527502135570646371825289558921678197278802725201924202589735952902048348415952339940962169391605521534585507710427372094812001786295853765028251883820427997358309573725761768195594986073644172344616933445192489463674950015046691906008171653016954076499648665323961210331593657726076100618942307491498846245366788945227780333576590369722680807484187994900019714515691447022349479924853880071420719081101607143196692809879043837117563080903193312703289930212209226959972352249622123401499359159070790376813110420159983673824404098497413073600188702306199496399741730447566548415830733601113880696819059046403946073388511727268904549163367775231432751876938984534526082245551799393919414479443382614837596252370701008497638140004902150845306712835778292101786418151711324233165487954081200696137759023289007163044251290306708292905437792552213609140446838031208969754406317566282347730511253217878792670620234435000786496892464166866926792824116481930117489832809784011331818672119577037985043394746760096346699771745031116524386482074061592184972842543374437021357205689962883437917898881936161767032982580342028132777182949737029551508814921476173455373636045436727770723215076344016809918683859310160551792402810167030604661749836412547881972617450200937254042308178681343527947895847338394555754832630836439873655890650551595395701525068790155485186911848143413572211817379805430504351843206228556472212889455628350197562337479914751958750064090262481105672835213127989049517822057754186201537722904749560793230398060409233177035413682264587246886724726047374206005706801956029532045116201295291936205661399543079188503295193945414476453747798583497098209187030241765282358460390005741344022946570483229503416621527009354002822025810164303351846881623249393015347921752702548755182987902746269856026059581146132071034355836777751725915837069644777025794392863815440039110874991537180727850258864033797523056185132272860924412702141699288682859193445957702904804629237208370246398320016954018315531679763474182681009271233923378623025322962116987792022044597727767729030988426850137486767611005211023284636342469141345595813592103536449497569991468191140190850825875767218760565777196424900611528230841449308114588784804433276326580293922897544910320080698495200649181903973678724846271600949876348714779645200812818016552670579653758872875329236225697056088574839812818090846533811746416699262420753526956991580026997360547876543847661724597100786972581073206626920951521438028184114954236806308126067313902795981560717630270820841575010048880890323098320152060549927659240919382847604378014441402261089828321321385812197116752422989604082130088620596069607059770099925242787683886953425219758228409241969103065800697704105879952399743182159336719313206207036377176142211327419205823679068475126283168000263671538918699657652623233064170119505787153895343324060418677003375515351372242027840235188111147057325580147570683727726800714959179806116253580463718242464408795976505539781229928679984173762418796963161917417393013371553569717043303239227793421779216427859172516298180107283380882660831502238669171965799565821138509740280301217938922641114051003358637380843829137715525454147528685622942900537642038111742064589338450060161008346560437410396351047308208303137664253290937942629553935070737660182231872403903382100991709549761977280909483977343713480914476552794793068869196036909597923284601941164164212659156319392293986925499388733786429228057215785583734904591529339020624312540516445392787364499684981808618059195426389828694481531608270420814456993078632052071877447415057854591969046037851409616722235671663616041766326003304390740113529450621975928239861910158489283199699758851048540000626649766302166892585277792245840429358946243942476957859814126099598615489155726456127116434687030831721210264659558945602244608172717219037890836897666778859365591300643946230006827034420095459641999561145171697167891083970530661419068402173201619193644755349219643241468981555979644445702574876744570654672798801742353222978576193693004986488268104312968459764820988003491887536638815682692766188212292137533883749425249513074528433892272970387634991996120424601150893984218263789434028383701374028319212737055660224576123466589219237971474031581411351716200004699368282363780558881213873625287728065373772112451799123135598755871439951563738208864012086963828377689369430891888733101477309986349064260251139187370168189006934649387843666738498880811374546209546921492815644682337224066688868735270507313924124297935157256884454618478233090129767666494885435240063866649333948038685504077559419746889796223211026650828459065422941362938855307376199681248769159194404046983265347505219270197373643087833526167263441216022880838322085046866615858676090412313209645132532066325250363239366506636592121008126573003733152497397481988224581209417602455152517063603240907197414752665847799370087780456087239774782891994191699290450337005148262827624072677589296155009529348986713993989526650522304752726173868194207473071172602200309445010257222533916679414894784092934123060116424441646660495930783375210306460845540724445213642296780315492918656943711930858918634649119040259820950707937697926870381922502317368946255597860482316805506179427601702021802230546284365010431414140105348792167624903181666116897373796904576313323489489972424059689365791916399589189088177689944889379211991386930235586142642910976494974906550832556133408123702535238884826182925507483065436994656893996329331924833542590298669052899797012701119164876705108083029471180529696868582582652337330382035604126404350437789639917697622002735857773916196125484873445855848618281207873459224043869921385837589619402926429905172373670425530017022596023729977802453373726560266532371215852029457649720471474459530280419772645539506194790766889156834838135770680083431244065999233471330783560292958113959757503839215307908567790950032084274398558709972837713369256966741267395655841724922559111959026495635732385683508821658473769652095955226767222944338278826212876187217722101004022953084234988117801607773297753506158741100017682711864210489969936166799114237157063947020221950958235730762714512819182782706989569872043164180408477486973506508342974747059143539403355535552492595411345671307814326125815225557933868081295673187656356700845595985549519896586450546325079154523349401509722420086997871565850808551951681596744364072371245305459662971191673590140711476161970241213168474348379274019606214111233248728834952173516622749942183016226582004545566913281271319320609247616983365259142549242218541805735928378133611642885259979403573040162522626135621647670816860574952439738350052159604035488939539501682137572354957797443258909209930251907462832542700525204607766331390052472824426887371690084684935064486979051842497443336770094178525998824469157279051589336554616964600862998329149028683660215981373535029310953511888254177307435301492076371638165215986396642130695947348114588190621321665203149830957083878178140773291974105993612818409637474831486234794188696943503010367071255178834521921227799037674462071845373237349324696115094562015012252541652473247975336749265250278478328215522531805614444190391722862227599056914634027617279037081793711740441801487183400731093300342371350220020181343921787804244973797549760877323616635390476055649633393464783672741084727206158265777438059381906752696817858114862334449903792530636572668676476488259094670327714472009280395170258199502315920470285681999139632167120935361924788037142454797291731989607475815536537609221403128888363406244976512184646758504021886408740692718101229257206045102030157089561557426981887660156102224174524661976736140207547150398322247471257879790375643370448106455290295541415372352192946611112550770681353922657574863416804482397271577335568001177996053021836518325051855093931669591192621444302932666324436510116599654030695792422037790384033835048928475447627449424920252799026309521097612967327479987387912927366921000813708921636400580588058637714066464532796920706846225212634037033195516721525488944340987087548108903703494611960658664720812392609163209284547983156558710202216487153490874541372003410075029780486753659322607040381990292795951694294933097395214604445585436536063237066531561389857902063034400022173929085297842991711737535755186335553527988431377915285456677292078455369268930635086399127798533016875176873979630134788776543652898737732496828729331798692073299749271792244790911633571995615744132124210986913093015361925973614576452628071895519201021241892911005103479689288407890104785720624688062284185526536358000582904447921660377113601126039340623031745061769306864126440863341307295407893325843173073508894235861772670061138863012611897563483534444364398418784978929688368192825814524724529062876038242146088534131985749117456353641799078025124615382768856493189822859025257757891127267485473301242593662043336954933491368130617015506737540679048154611702311037974734950865256206164075480901378925876786874876849356841125709634449163445746169224065876129166664566298488515066263791331468213286097200502366153324533696208632852675826702323101033574148285549299125216189309594439344134588516032737859295201282539319240854739931687442708730106993655941992559930410040942891928493676608479535213834282836470193159101553103663740955494164511356252483914754364977352882304364042979442823425082409878130522451222082227262144171891105940949346498177231284399830119500230037804553681230143019935133165429496050581010904913212633679101473560631385424692891935689116454916783256917609962766396120212504048209020022484924487132167554804867341717837337170388836806973228391578023208753751202564899123092878865626218398311365989010489104066006770865227911052382706911583002699395085209570589713073937408090359258006865772203360296596042062303003874983232104706899887374409211961704158565132516704369765725882165315831414734663463399846985759924725163365650252086987462968609410605834297418926158907196378403200572832130691932053251737308165827678927812236948489532972078311940984530007980281584779350107183267201452968107376346035031246167407118316452294204696719655383466607725182975368758635607083479070194702289866714247921244847258470665723911246850633691766962879060317285725490294350411490852225895810591956956163143493243900883753241139471949652960414191417691340708486288892200168306778096305197994479443026523211148214155209728461507468362241788087477287261660655359078184960606638652634569789676497582924275669523004507130188958198141668752390420767382130800932528125705210195972130661344732616283118757369057716753097431898662693120809447865738742087865195336434085401306907026865110984936196856391903765886644001428956448500030394088527383953056757930052153033464491362890496908764146520099830310328857974019732692266936937048546346351556284753864143412486481326676174218281903611976414127979011480355057141354786020494683119566501503125290848881806094652330537441220156395121163838112155140824324476530526216197027564372202536609762396385909232888343855483320555113314111975220257950220303170005928384019677784624150041106767286307095784331846210125549054914589806853858613422124697227471573149587004317637755833586284565984397099318311652781654349579766048509195395370501130781825737871285429627793921550689200650621381545610369740014943995522329318496998203219186593087119639100166472639720200270177092495181782174592081508046712667357830263581984352434809967855369300406414087932897719521026009666760743004222795502895020052349143289853770054915935198795602958064311291387564676466489711731707796314374770189501757195008618353803122571673275169552716032679374516882013095766226068017509012522935114606399468612523078064869162385261248401942257254133907040086868097353954701147313030291510195042449868815351385314084867964283357622124209557835423210263090388840288576673796236735614006519655888355407887312019486700574627421355708148844957853155010914703785739814438508483480241669818865187385784331743915495360591169680532588409452098764382792262527933397147003844553593351676071233196883092802032582954280882265493398320734442742094033587316898454250941712789407947199900392099570862859176134279576886230926738830555818997408148922365057223310416780955228689131891816155072251035373293375150169979145459039825431601987325608392865001087412928715780680278255559703954737199292931550541015902681622677265433308220482785155994004653918610851530548491793896850016469483515721829562996261931375153154844560007051877376041968978262068745619211704487688080448613738702567379762884902815405164153527879491589832859679800452571324044878505336470065524438055448555114447522469767024904741473145068617916500250942086748905859835877635961325998466416454902845197261485977479156997992765245026040825728030960411188375030694483873112300528376635838012927135430087296074025432941555209179936045678397001858095353336398595720230913804987166894403504564585585791588543980615513174380336578819518394424502761037407703134514303136004840458326568186156187601458868819440097607269279953049164692153287729895368988838141005039445761106482482944472192395594734493793015076755559161027665818914873488761881942141031552005098254497519475913373886900378825135090557868125939384205348057087208136291296620228406956340120937626055945863538131679352946610846798370226286481437768602137872118841170151358805648905594902366744096050477358237946123417241486204620902256661866313100944836468508711965060727089763972181873426990250157633490260876462132038898412421104264522567685698894904602166232235844809514647815552334244978548482177956897129286444778856646016845853154667298034981480364822006940237869302359354800783072136600516280123848547874180263490306890243978192078577294705995872597011769245328870331195698941622645066789465193311758613990876278176858758959307656890262536665366908453718624460461432150597233172015348305274286839815440699106929149623189733222884740537436351016076685988878232894987051612928878083948486491519641371096729588207488151212796306124244468810560754886788781524678726276617364357425171194281330105785213043618141913085060942407309122253718842596873284408338817056549078574487743673025236227004489199633150330646151267900113379114781074469237985528472539647087954265356883604629142029935891492514711841627029015093620852973890488950048820459338867053430201835910238470290611302443182384804892349338915264935559395346606875054623859153294081116202506657748593889026453261886067785045594385087921683080701953237721479868376002408285654634839601610087002885788224787732654884910939920145657178709925980562255736050350710833650977601287946797593920681840066450298971430172862767545196637541360006242358138636696032660087408228640192826745452358771012806405689068052563156218834107049232706013814607989231360932230125307981777906234346490118815559886154714907519563073059258613898612928352704517007305827931268140944682389683040531800573088366331255132130012393674168160043827816954200092085376943399855098320164313845693037878151316008241785140779763989091521679760309833539653127858584835430629375466679935301688896266924476901257951515217962803858657863743640176597002358125787457626485721575019688771911513260216902140924404424515675815549600032726610146998248888916895365396908521074986911197050807469940541872958994188301142585481478077953250159434271463321121431903954152842232989624482720066565716424771831230621454292194880325100420968524066700023617611286976050499563192425632135390505884200514827367491146412569003855672495533266836831622459565090420877233509467378668439436414153816864403194796647364261747716420333834465531327621998841097577462248622083348345136375509710807286853369582749475570854433598178211910626892862546614198175533359735790107213371338425884703033896880749043480126098377608766562576771214589130989428527359068581818519431854188770719158942388497181902343636842981953267364849051868099046160827136478140778409349362488544676431148720265102565785185343156930221749975631142002046637574417823146923685547204273603622183177990788288190647827646571061397543632271719330358954132671104978122957735371955911443403436606864120602290467885581962072118291982090735739544677282509890065045220831746354326091774490440520806860129216991471956398193533422868235933641725473299044903929557227023284737635695050122410575487008268371508447392291062801204431210545820274222125771489623520845669380296020889031699888002239806950420476433470601964595817715083181424674794744015091104304766865052866235120813908139626200267315544028798890264413087705291126413246003790894307096049912024334396293610562888664778448850503064007383417049738930592440086055293149892532656953453776268973346182072105807778327957639048458912058587943911360323131338210796796963127508687658694055386578694067717290169727495913813091993108093129947386304229386763017447689145587871951899772593044138774064759174757915152939334960053037103742896571189281807800286398756271877707722195961309472993938428949697163328519846251686189637899572751766583455835141101096134483735651965502321178156644713870934886566804968277873855195348501561716903047806886994223647067856462887204479365389009424889745990387822276247059151536152072173400434828543722137761476161815443979361397257305702985186630935700752683243402113794707425099503774471049226737548397784972439188270982570968812765227934904268613867342422492102686194782440310741430693782445189759799839276900821519530674198454194212470613417573989079507994418523751700891505788547551502883794299578581632458044504311109326946652065690222287348345763911986093949402280880210015501795786192085875023261405064946853401276953409198553065294207310900337547656573651795415299453794935381039769826546825050730944653719549938919499520523869834966169447783780855174393754555487354379935568570720956928397493567930300553086240813444850150926260114282387559084484444951403465300666373131080266856834940229862770457047854237795049839140574890346523775330559226281326353504309595578892789644092996314605138837174304138269152360745705015555904540682491421279863327752332475410361494271329676126483539890590191630733366162220976599702863091871959906821321811140181951431898615985335138116749884316110483759450645315331953299927784689407841081965890804965226347004512005279096632391455687775780695064605871960623654608291354311269062091678561402498819972970123974903925358267705200783377885584822031850253137448804065896637140265159916761020408453164607152393038974974292146844386964796051818057315015065826372346914073125267394753242785298395173167438705756587464019274809694588506648700428650557207204027753564069147895261729956859914397160132009674681970849920209924993329942804837465035913103784611646388191174120973148067532490503496817714461491541294323916550067069247156111429922757359086632291510262629627455240780197034195800634892846358638490446633195141827458399455372669962977042635744824313791107306524370084192785533320826273767340656548932519222654469743120672877150108373450840292211537415899306537828143132273710858577290231416619739085836125945081821572175658403077099565389692665645817598580690390452079775572065009802081628641518802861931180047145698362593046145774232841807955806005616135801794213856761865743460852861640420693746199636212668321433710008093199805886123216055058491981719874978716642275483769626710386586441680004470818042334217690030036495545906327258412718356084317798594909666049860609585725033259737151923088002442881903150602433726822557430502827798220430403299046546682526343267110219882062684004102752495821963823657250739331320636450906170073774238278891630381605125494353991890989726074542338174750558719356099016575789883010071205915661304549634946963441142757863003496575382272027860143680224524956547382700115408599121638499048665215833038405856872760788947820028619884453878990539118687996811813394300666962427114249206005040498325180486678369727115271444477333776461681255270549384803832121914072044248426819137384420753345514075968778690200175137659868269324173686801210050610322653581734782910122522237200964585909485324733881810223222420184991243202329636332629315640304012467327086788201071979542884711783998687960624369877938573134980696563660474115679515611045079956468819188980777357255204180528144199714822077689572671325237713054194493978291876474532649778694979975266473388077338591267595805325276382288680250903681152726835791304930804875605777636448696009529966268807552783764437027318094960088980359329831462573901368051527644036873974841018195686897152035369860265160162359285515931778443972468413478359256672892736527761970152869441505675417121013882763190716774304422951782425159750364250591953510144388721219106049452800956824884887807092631360408219183673631614678487675225800190122692026115620734915298804062425290661656689072274528426247058998014384721789884698109151062999844451527791295579670324383398316931446344159661740761921323638077595891762499035782872372710413532630337213679071811526315282384229437147917197599740241185246632565056959120926416289002975496756302924454938390457456359333787728337400305107746829855383395508221265668991602579717938919050737265720530848217642726413989738475006955216666037570721631706742269805255723003374553501315425906269412859389356724128778533067120731991672459179706499579481693771060378701662109122009271229295733449723688321327250124421353568854032609828006450166716641382244374206464005687523096089471105959147267060306831200289858822650372128850499920053538798983229215879918403495154466114615960531914997053820252643772129483998807665966534103945566211489722736310058282998122169858576584924129715067866740806360832366298305703477972597229808504682706451555295630297344380215606971265373607370436915600745835184466169215402235100077446061736392624829178373385152922930556165359744898752893726480131849672864629852698976007281234416351006537619179358591044145024261541785708970636784867533610513802529764126337679699165317014206634587770520980439990655883441077419851065739816486542527600173555251995495610315235412927792280943900224305180393825570702441397901218368649897057189601904588368775983214502731852525568330812653707272224649137661133140508542233841419806923589998610365390493817850146407492406454284802104928201123137912766293954197766445987964491009187677207037579396950317536681562806968369372442653643771656245119011637037185019119926846921415331811005125142235466475129556598576904754575946734254197484345078936563058100626608251834937882511681721030753061742963374826477412213903475744540931717937608402213078741909130513580780546705274630999265890734530828754755703538406604725515009318819637534686932385218665880768867636635383012190054424480367618105872729844282320399199579223551313057697281616430560190072359241257960581585426372825100914325686255166925555694431714822853424398013302746605090184808703385079461095247150031467752499917399358005761701000946249469334501495009563953754058858696236680078232540322582665384213789153998156396170709605861059260713776383013852043544091374825568139242490218044314966740110571798012874789147729385389572475556452239878129138976074170010033551950567863158602289142845042122454854507562136313316884696795201528810687764267806617796416287160147305657132551636860597273060025199910145702856292438789089140978746780029379611752295477462779478027562057346758163645521223524882965594578862233264344070007818813583659605587568661387883117422774927098113758734991563346640647088345975370390301013529502934077147635899253564004942844492661650630835710711243778369422664048193831143701733885583725024799863146309640241975848042883299389730372777811454194616837719501258476769733401434196826627730538057306616899185794437289597449260644148134561106593041834366595020776335973497017176676954619348481685562587459555215428041138141088176128218390172426126118771106027661816447866116017444993410364722069370141886322430376431477557333440091926940672061157103805812069209996661694306539054518674748914587982572747983039330488358243298048936510591780579588194923837368678344968995155584823425934414257095814627105335863700546031246404065829172761604778344671280889006577693955138671452196891955828639203768892909128471554991207631459465298548322264238637896414559954998630562732500705200370141319749267163514831588233501787831476408986878780019391868333042710316785180186105016735603738032550122654727847626710627902123668519800469557522612976623317157127562346285561842784383521914364126576425424261524336467225947074371181279974233498185022587885133718506553364605670385605297104108981610435069772405770548969781424280306805122948462805942192781036440804308297805769175156998870730803448521206055130683581473058992185384837937982565546096714576897380178284358758222621267985105449041959772006477969345006574933775014678236514719621538703976899408272749739160453785873490149544882816162759496979871333999395011236461611890281903405037501835567284161985946618621291506703205392210189661069616938602626333699475728072955942742543410496590080446706403973156921273855948538755277584038483581442068622908203101557885887110752582287210423689798340133229617069929177802016709949113908365936028304597769973559259507968381357649718036959361985050132117479791541141725772765233642002106813623660844482849430168470655949533531835976316511814309497244562544805145759629922137879531497133705975418522721209974877270145313283626469655465479014643223652948424423623121551129009059369542367781129576588814561198832953420725896074571520018186247452714774133693461894139744163102585140166287625369656586946800406380659220525726444685935526186475306174827145784776598980840592594272025253786511061952937880196558155078803417093328672340983263566897932383011750098663551739124979952883689112613969067229960209352740501239075817266393342476945265456444098979354406771389432187609827127390272322966549138347461393405136806485253766566520553331334771489619536383000564178011615629707485290814257497960453842924826300014793238843012296633666608364496628438755567412027647973332431291465901818965428873162730362865367029620114613942666528884467749133089635995649901498618802871037359227649933904030867772630157441495928893502876614099729856003927599626545898066439683164401694513490996060697104295099414331280788285056751568084187034677193171073874347005840304369546440723903886976488874303629137971661852508040439760507503227106127108146993980542240500281717743185999409358705802002748306862286093219934707428890518426670991831304047208562639779773623320402253487201579540935180822497478820639978690041349783398656336063804094799509281025951125336456793425321141752280924944900782011868035847234396719025851575281167751474749176695255319290469189384168318248281788752256892174398672468010857589190517025707145983073806556186745533191355692763794871698827095363530819751509919240175687213143232567753109039698542078128364669122502627739175675221909720759101575623841450518106966529772097555993546359089345755206870514342980370762638709006902244312625231495819134172534858980606635723661999899002878503237631024927881048254279530060686150102105330553945533439670047932206287096900522796150867544964199413460298529139612824230594390182262461561476719770031820036172804491062930413759669949681403335460862170061901653913977189713511192165231854851811324919409488705582876228328321312737528320107868790217329878326955042781448915795578496318360115475180312910232186664817438993569043646225598608853701460100033162578842569266392427963788471193885257450919540776439278872896207099972421533588206001000552294357274882943433390602315088669654472841543147657597285125011247525653006658641826818649539029441419114805485170636152441426292551675041446309255459874378374658662937404976218873368066364284651842889869912437190903778353783430723994772282311072233650127315021818133810874479864867967093521670832505881819656542950994191084483331745085079728877366175973805769044724030307152090899377843789087257645289759284101271141842452513916984277250311384076867610441039142552656427840222586566111043413531812356750064807204158921160027722560848060228262288874601860162978868972374619847696855580677386284649954851648119060110030512256915515110489124078888849896783434469404612604879632167304850275987708741711292216462874384965113217493265410017212680862927376218441605381423881308938697030923084671141111669409008776202555515419274199381376048219955769933085173496162624290650428326310392492487792324312785449297300741559478514769985195416870243691470719199567734098914318022392654876200566926643694759162277433569953310335551503569464460333971493525845225231203924057917585133951165611065555401400798478064721486166315326841708935645024796622822367427814713031587851461119308382851371941941019485179533931040797707962753330873291831953040723923254325827980303620353625144258952091778191697550781653475421659386740306924585221319029670459003412007645971464569008104757914414029364931205948483066223833400156270191673911764571272115726123247068783004123294839108830167972930115615224958245156442887307368938197566584080554400289940404907584198772966546261543085801169332064637618871300802977528355072529554030287583407137778117522661618964834983470847589340983039430679643028817809312084516904450313050384941516188362154890640975719697452686952427169206081972595932238005366058751177036729203418047492742101285282842195706231948558212269924193997761116492542512096190649800319878597940712625980558702506276231641969211345467711918509771423603703911197185293620590596457119971956876948443218959875319698900273503523950270277121317446231187989215679155124433535903148995569000309788815335220125520677430223037532198919543586757231213927957295691689545840671958467900384472387237935310583249531922751602940717448828267162482862322491141393049656815958776257067485300052834414236156639297638382018668359339479348574361575174084475160618495144296320038810448987356934583290023013992562966960689619923223449417133482297307658436093237846334573475837544252735566015592439286403878475609575361754216543782056816850329364020842538156614840577652637806522421702959118407498764620212099840111881212267720882392734715124741019424095029374637349112080699946689732580371144672973361620932502527436096296830772469090425971862045449471228911173568235928094183791511574310191566049725594315194826249645100035153790741566228802179468600841585089416812308996458334975448182683467891544855860084013204482444834637311970956279483446222176671291328517135676857812213889654416027875216203522304824194098310156796575479717893142097741343672927000683161174214130461591117645351070470726934477548086082049217262292137539019917120254287669823587312873055162578576673139653462821071195292817709019705046595974686205060840007388431962243036375260606748836974343252571661007400075760002975813512473074825730208155618023954444395482816799893559877850219951501254846924672385592321343882155558593994879023860806784965732370412377690483358711014684939247090221089250348304422920485558927510635707717320457872686508370394570571622547556969946842666416037375018401799843085007944096652358089835170898883649838345042365141107819648131649296741463805858504756736952944923415237143438666023507425907437223218104361129936333939379994614375372943717025636859590032806104712117120687259653063754511379721130506095747975478930285664803490906770128709184910475033161865688776973593948068718849888774013756591116757930252022062695006278015600881754280734284624005761547132057566779979252093144238896251249730200480504925567628802260751935258339120168339195705945656694749953932854922271706781390085497846140922617798098692569164714743910122219118629956886449741492799698764411060139434611289393613899817320084594916275314253305632205554648186902817065028767996485822775131989632076490855497390878289353708789708591830111402721757062116400845370865535083346433104381705417996272857253109326606689139976963788389929939134948250054948368018088089365573350294126507233351476248782268647854483946723406336020573424199468592185666479271523643634076457979343055696952258639064023592316427396525882221425965877419377791544749743547593862999004101510597311720939703329945336838759379969295738396366834390212028071775510969697593952614193521446408291052546975046565457689639369548982166451171925629239105241043623688592677307791684134929434787618455719601467484856194366960488400766965279985815374622949716610748270989561046757832058635123983990461749904661862076242239729547769379433560032389429881354901140560692282503013088104890019254376541070460621499062176055233052768998980027727871478384693158201188589778606048927553079885621002496329633231813769022747735604451408155094102784885384630045246489640393058056039371469503698808596510848818359979664795458483598859385006404855823008470874037372022700616083793458544976365891936342181618834404129158135160400333386361562166169035437314203512306633014763821301030299863238017243231647086627303544671360156960136568521064793390390196863597829983567350002537599274049388738450517897422425539537581805242568641622723717358884464483588511099465890044004624014666829477370538989306788833596746200296725556610536778980718727763603660938908965008896433576487097200559128076739041536691260391314718886720400668454627558711021380743966987042010340899087237286031505794625154714062717694891984515262784093014557925355079592273976400639926001049293766762156530626676816138359930006739440397762192852777178868252122048513331270893269947970518419199678619405061724914734299698377101823242172968117517796903985216135018888298483778344934638105164384741704803197034128156495846229802805633551691234081153807931666640681018608846726998875181601434441168169454321055030585409664058778532992300417995015587972295081357036381132750177411091508574854154686700218555528336180071787491003997947184963932628207688764844910732356052472367876583545738998682893101568789370654292542540514606195904099302537296062577343619025945174383088012099632825670777836496988404018213480709187042638504240362768894809784377082645334455902013637708879705908790917858152563938826852605841652251601355855947930631856542054795840481154422184715679648402812398550019624639646452377914217980762983017754123537539243031518531429628983458379082915349257515676990324890425302877818911537755419417605136278084822794454728299436046317426188206899699206017628071799936228090518842727114285707424512717251022526730085919825948946028045656111422738938158220450019877857533386703938827949068637046993834470545577851692672454734300943420052446701126456711444086008883461399156404299108083043695923230885985343684577553506727805402064727028494469861062850240753076516480064681593187047060134282892339067120216239110953468179071164572084780669557096145676752864332506349485349579674419187733236405901099376233918507383330709776416480087884388002584284468371690468972489803343779274071119947993779906875920648293867727584781508739887681485741249855113866358160420543320552062206285474695146514697069632337123894276132015357423284638296511224804292462495739141697438960914090293336788300915130078362554761252223669745089598020541546344679572813935975690532426344974738147201045598261097410792755175454348280590316522721131833437363236816339369378018408355504841443905075446067384970448872147019485609736840744048171736544043496950308948989592451663935991149461766036595036817299193354203907613098550199756415376206963371297373569109232272423219249985116143062790496661640752815607037752566345322148112808478066556632039272069500998658160946185189807883732665968204764962106043663545738398760046456053856030503276582572856863722445096338042549075454191936796420261093690017700057828371858890633000557174459929677257051931679979758160283027278003438327293749839894844097446247471339830528127806343573406387041756225860842244453652707247078594746298414805286343984224438381312564839525440200857135601378168706260682452977674746233530603105561742063081567891437670404624769026579373202339753032042317243503620575424966840067505636082808426122565595298307039507250481877452886775581866321946188921852163248357047871541944526095279352772514843572470196124522750947245435681860685640950824698912507755793553713258742977341697562680434833130622935849531488321158924698437213146218930508628383887597408834249012522390349441148472297640693028856499384244093448339002506237891393315289394513834878212130502843839575989683834038585893613959810697097948425352952578919167424285566446972617302430024940880281030385272047533839766048019508420187606374750073275725541753643943358855705687895912679081775086541509144921398704467810013685537060264925554130051041002830815001134975277197671770074934852861403140701055402486750295047192796089691336082447103094717384164912028506180652436834499401094763312664386274157097267588866294605371101347551547093388533857228881421477572417338126655948373826496693617623206751949084643337706074164030479309956720317193847583463626516552433013539897293530922601934949382978461320065042178467518397222921330588641588618374484674060424727087759133057691421008924312047573020943526606326644967752746489574508436264242714775191420992485110355196718890141183061991817905618735894508816235475410120325979921215652232944674669953396571954001530934272392198573206853157781664000633050024082234932254756199416515732989434349530259205998745371719066107190202213448983593452887921830814541942455453074903993365298180198409833115907679175014540648703483235041700536388932826372078327339586772569667195394560544794524065906143067873390499982384098796136468722568811178912457190527736495573029128882435071609049682078025612931065578829742296154449923707304217827431319748636875350039433105484445622758133548988661660522795232011748237217829261568451316390270149498603898492493800003602889881916331141133391335755910803657319035571591284546746608029267501694513760344880067686727251976321928803127606258265742090818440339735345750010927139698282583813593992230679200317931519218162805233200927313459854309180253867702583757431127417807944308561093803319894678541031748109779823652409925960973918966558851863272984032561806442221731270612526686228808912574782338358263694855755606385177347687321097796965604181036493726642021385045089147067001093733992559681296712916406084032303819448265868789049142284364648826777869569332193333210640880767167753725423992379330352247662744873260522550354305876724826806260319564498208840164245290185591736715934993956186213332918988008065994791924363636607054168092774536801584074163895251522467465202613039032695269504190954702690674077758190027581283923438059100447144841453970025504647862372681476656181887577666095234261775033693177650988653684082454893996747953468883047252470385631061668354644888459250904231501770971894696751650952006375419516096085417097364309148555375866243235431757757754148470814101585703954568040598124030755307521362384141910399825902129219423078960094923742783694940548940798904316323761625511014936222772659954807304479253346860443832969670752551398563593497413254778847900876585469398810669219237374614358855973992527530257010893861937160102026592171096135221511913129999466446258734565892615576280678838536154010945701497609303044797025475625210661166348315785202784367390852063176021396304960016844654204955445107451583523785645777708352612497773900973813524385195291158950051024267926604363771761594925121047608415821944133220145987231994611846780696925865803185421973291831354358381644488142284112979343759559061088712050094825794062291673049714683096331309922668390058450708453643803298687000426561718881768907199674491798617106493264537697425147911603179920014657365052010082231358764806751593941912655215684810260550312237672960708800318306871550474496995210257222964025414784233295720030455958734878848223807956717911108246787095261689380967177904963606105318024207987510941068068327720418189271812351554013636784698132780956654488381894746061051083913251462646588102431081975853636379075582320296510254730527226619817464259691255013338394361061134781803316965207842626740852614614814845056585322104437577784055660293804369166225591529348987464607916922877972288103563244596321415133883229770672718329463380824076971721511645438376430616602739353694468054303581731861606982355197459425502093103041224234257171964823588728770275735749209741824572600604437178893031053505294846248382427105830512624362031215227699873944022730098159619508084174481675638531304187431386375179487372827693150741091227632603800690122464394949874386920549622421475813495451838387229222422029607525370227780264518443737168644859490977770457782677408602131512152352829238200669559079320714327578210899020905586203962307189926351001417693401364183657064346271309809765405499292139313395807719687345592355797485897691147514596140857097191127223365814151823858039470985237311448895491752236272016776754362512789375728326204856065625664848092358823002426795077420206212231672382965431862337085713941706952779774255783014586181966260480895919485870923708187043700372141394129482056344530730230219238683803512224975204575725114063464660369489904908453992876078988283541185686086133739446176697518386830107419984616496664284424752209401067205000528368631875343240697706095976204220956848107153124996044525204444305751726851056723701965634510592658287344883488121251020580895102932071820610053021193779126012465339930165516156909456798605442410784458685534041847377619493465054328654821623079863180912735287739267088036511211932220346658036399145380302033055733032363939058230036715666598365436637378047771197301375689121614322199749463935289624022858073307647243500393514768370329701551944238836227872121823637436806402166700400841204563126618317369882681770270351702125901769701090958940448317456240949261460566681249906453712839716572309007642541640913001004014482418491523794569321745234529765787455232480327059117974530267809939658139097477384827058180152528351011651046278298660337096654931011610795594225487614741143661053937322672809517552392154001817357076593425978640394795717901676313380202704518206214814010127112426737702228515393687201626779675443056342903377298881266230815139612292870739976539919412882359938756162601025200290920894897708504605610648655283173840976753676677797715797851388651844180326042034950264942436538173001201512421624183315283461833771643519713038661465473409338109073178207946971317767309048205275445419248945447448171437084924701941512942991109996097744195810913552005056916943514110655689068822383966287921412368980466087811383512692753829768065323335760270033246752192411600011311457971046454293764291598710573026445251547183007918338769222872819399542375027328188333299361967547042687316921298163189632998876851346869516711594019455381029238238461605661646670928349577277005408075163217331951245307219222913533386452826364840104234951133938541279636499533467251600223561101834056643137080155444926966221120460266453285300848527288691165186669378313275542150057037279852135517363879271152373357466094411661175007793709357799753642727586305927416703492223066559392505019508150563657048469201498265672975769846572018778883704973375206319180896084737607381355068694382109831779848684535916739175840615511821882567945761263171253956062864938413477301933677363669596058626285231878155606166672469393253307381187115671038621249058368199401527025083334646767606455042957956235708355940303186245616731860608913748888819814773062082403896370414852502576671358183797000053020007423525006036536093860015250494731787003701342759980355778845612375983504761090082310864188754051228926616286651926158797714428456179665667981609581069936906114544487303838419037280170149580924195114873823175212778562164867848489991842455397572467404015781294369942152162676169541461179737546151764519886915098614784531164018639140670035765509654644828539279890864402734106871206455859409588633710921965825893755354533604403954681863890980900755992530079604155159658952817460775488390724681729991407059961472522258876341857368333716161776990016403829808703818914087670617962305098991711379868827114815310087158896489326005321168644837177818913990523746293110413261973454712456897446335132621124609472293982209802519098162288238213482831632440815111386916758253817956335940258617834729844189993479319043379169973153384032432515935862198282054908359022807025980289904581217446722571007537055426736359959327020130516382515109601038323507401770236257238535122257819467505173830305883811140126966413637986327134592409736205503943883370089893674211905625329180507135842333212574221671955507052440654981174433147879271159765924154994741889689207639201060156474254995542975086143663592345746365192074530147299478726921151461605818707793567247741134007705575232681909178250092019555236276074625057569467354808342989217275369673231987055892024682669084352461238051915919217361603317215091405563407187711430566525179065499937347033467571222995868010992862151825528005522491318286104621212521244423119742681580197307920034409724023965067939847811633583961562469912090620600146432970793533207811874449295238307614639095687535373339150368620421017614566079276410176874525051393802820085558991959924946794658407205011669056846353863148156143089974334913313372790539206836296769768720820976124066667879691211795441607687448909053396661682704860646566671004639457049464383088178494020051061351054034980398733849032312859443749231362605044292178726393138001202149799399217839302459380461953983744112316084639881691163928733110879596944526922519919046553390537978618951454429734253318315604998999756926653533805619463073995239216773960991475904068536497944493594626244296369964786986531233204105466605871078867365775614624873592270669047151494148610829710062400034334845240435947964753114680858893684186772847905666843660564886993002718529295946086114175050814989961899850470164174295166994753903666661305843420998403894924203897179197270074499268288526983477593937246890644156463601359060023405792779939521474061517310345428646324529301868614024310750152308189963130540161250594013707916497241491919015636545109506639039472580887335813002958867385683583049865090108776626805212981077916977705535460063907508367864964699611512373237838516319660085849183877169626854070158356912599561161278150791696917706326340981840306760867973936429981249470555995398986745563306476944376811540648727997483192313283052759634560928093890206204312215986528298323778983645507823585857980753247055402172816003828707167080882703405989029040904273809112421194056242742380566982278341808670229371906204945953043187190252409047151638338138382830208147791463072365679476733513353688745678358072424667412900119653282065998620087006781056341954323294804306953370856522474089758566496232355832124378006937791105804587062396062407614780521099406466400812552205557517457982242269583647100647683777099367458125638294833384721135933812014354012894935290248249663685086445434204969365583791225925143587401055942018437772762881103458853959341135795482984946185536813465849350085968075424086655518824071543493944569171664242025963788657832703067380031239697302093139612694485113489977192893023905923292981369060726296923550906051332413393331660713124557365535848706753427559977477089950272859941568210356782981677069424588902762961589079887140163662244528634753843211999535652803676637543200487129691153235818738726861245768859635193543982138646054459345194209444425488212439306897946068628694224091035519665112044035040538967700113902700770259567598200432339813478675931817000161142757924905619208072079439528639510467275562952659181563105822984396619822368586535551188443747293213168509298750051598246245905419221355314345361622390740456569069022018036373692752885011532239640074893375638885435221661923553304514495289270821070680233840219063120843094108260793497549093116570426428824112200337227080029869600192357897509042932249576856533829380822237611997726581306528675083521640047692891486257759533019883737820394064389175127068124524396642006696545946639818740730001737586315403957675144612749399288223996012848824675004233728796073136673065575306175695781587394081045143702496486964073841676493476248145069100819891403527562671334172673779410838797111981646067163415829868570569523251342851363557840887821590406926682684179465851766677687973920799533973060102672354976562196398249093624673873379181029359923125127944967660884538678815392861110318234182260314065756358661104458062232416787183800672047528401816613195999401322315715176347309150989590882970738529421509462647905617760772745447905587849336322013877127127281204324123652375137123123336207297300793449004566384870854804210818969298320649934426515967837302343405884700865986871751960115484093617959722257597893367755072830773951850203297755899319600532983934435252076780283008189686070411058973279252467413609646303133319869861758603860322099328342215578879719616603295411701797789224830668206209518262641817163783844144117271330983107130046418818087975731050343140626877806860088930720594814038040412214018315772774545253531741087860305859767629985536041940032254298035003253791390442945714984610582594443520462214946989099137721862985098860825247617996817844164200922940810213967581253336684771165144136895463124792460120507496406287486724036366143021261120250859833939236331263632252601744028738227337337472251525224376947572942759102738715412675295610825519346139966556692547559121795955007486212364157087093051552168287309133318899872099043608790541119066671980800888170865469118905939364464050688380283154903402341246595325057547279035854353650590130607162512583743248859273124758796567605896304624991611605387221338766700908827381933866097226215811864436612832795807803817784472861426833243098815522167959926966145296068324648377114045443192156590519566778205978273703638333288356747666856719903338002534835574897081251709081230015081805974523024735980591729865474071323904576554188871363699216028078923212175499080431414474305879230110867167476827812690367455251778731770738979766896718274618881261040594513069303372427373275333433635321019578848226383826157975124518458142260785864483398293830132559546300590304476545500300599475925875324813140526688629842309900271280131486302733399747632382609741291099048564525596830562972880773401904762437867416930118611667371895156997977843846245291741431037050549808329706106322598768919368285087198251030467826547354725558451624215349446737954325374014064946839825586229964960434167909110344327054066831081207855472798345886723167953796470342661745816282019894448622918094905989552011607479381121443333248167266235785346253605880727989847730161352092960254469501513891154000493633624212353570769961585790072445480294622072924271830889663008939709183253279668772928269188379747449872737247269875550872347734163868791704939316360324387665058306671931856155863732730874429990408214983991486883504959376937940148144885935748042223937399355932674222877997378012245979599152513510848041226815300545126858970212769585881626447668490141237138912217416345575657978936074318320399663433194750009901315775444691240546884891479164513251144897066745465935350718646722171923083386446146598985111663022651903890223291824794501046189145476412947973117661016100290239063989572244193829852328920723800435166136649409840391764316028589956072238809998784961682367185215150738470695943321094382261935891439567697265276589511726616603730597276870397734818611975556353819705506227410546059976888478740673197750020848429655322139634862609897056812799914710242144519936089289113826880335438111786144907123539820635865936307836328154290837198323715225356195461321945328970848433738404572798980660719970198506941961541115014884015683054618809924798931214860992608657987975573279756025530155803868932250982808892183647792451393387968752337816243848058014459106367987561189560829433192492188040685609589705019446796257098079645311421098690351854682044158778819067489909792097622613841141716460566252055288357710110987521372035326482756344426456626022837738709338199236621385052935052065979222899245916847814326021651407597272352868926738775914032579692062049729045052195760811981856823697444548312040137277507426138724612394182731827476182705520205256509305425581106548144362941152143197817878126418854662183192539355725618117280496349760005271335880188555510623222705705664307866988436749799755408124209686482609813373236549120194476439663761031646634414185058110954762103513041851565563629410282349265617599670243153989293050072121050694001548640332901275831763748288739834305661604663619634497001601771308406203850567158829603280621401370728205676866289196405119073050172683148585578140530505796924242991308035855741861217789887361356082429219237964705397246553728524746854726173247495858400719658499116848050379138008366949389821525707366087121234350754362009973586344032357769991018944371681493353669556852790227089261543009481231346232183469584675435197966910199363719181934286148790562526651990906740072435738464854908663388479047266236232496875967636139381232584354491489199010475988801624058394382594609081075945856316868028801561670624135416495624552608857193948540215544715911804088620297393244638319970696856635580060792115296939897270633139799609009911176704277867382476176119556949312450653490140253045113613183386200873401057483719070335603907275192673638904576707217995628658801758216547232721903989656891790744031078123212469386392169848678020749348317077910803459296857436036626494879950729149870111553147974566062601288838521409201497314368581262002845662949006187201893257806531251212862761504453671279761810293058471180247991592213980072494537049424339045683517958233503288418512548141240887896604034081859430641753561747938254360924236292300207592628602867006328429283777167257973496876763738639252508508427317379458182149814682157160398341106968080935837727846651760477153599742068874287136097663901552355210690127377866596702615483787147855038500000917407109453343769825340069953547760981747314259565857971916356980335261978200004081925344511787470616599289404323378014670246352132543780555317961147399385234616482685687042881209440116026197931381412279029689387076643684883124602912854290471681141202072866814726713285458481553440498066660151378164256968253442299865712910175214922245349433058916075156492686742197879663357703556387132145564350358658560652147304071801355956496826262555099488465904639914496965445440315236518967148572343556643276195277028713258893655339706322585915913140280146083345579646154437172386927871026385106052985626007238541130876706756007128572019236357412635088723667295473435884846716176317401710275066457137470569806655285766698835915929774354394314299399681224724156932578713426312462897580697778988682408390261166087097147767682569949127328079308277266383984892562981181949859491144773174488068002758847272715888210769889040314716111395896988857683984570032964665443365515051531213724526428679464903183313209511067863209852373990611324665494863408461749988737916125198206323401202478564630972803310374841178695361321773153285420591360403841683726240653966143520310294164737242571363516967760434728176777011694867103168749636933336276514581824241064973398399120313125266692439056246111946121339463733694410353934812052914676780432535271602773780069352173681535173357212752661657972937658198582514088482823297319981480717628313945364782608870100413075399403167493147055028655267313102350698865316383744074373755216183865298921442496525580982489115623341510437314463516050409322397396091296739521162516900627388794472876467042751444419331723850554494005053638070855468226599456661422572311967875041765613971191645044090697525918519101214909228467986231076179080907956223767553698834262947777423575576713985728373965828518209766512039505871373725366405367498526761366357477541775630993753679497887078371888742058255289413690355349677283576160062825684383371734732710750483234295638764002901094346966247226564278564246571898484463760779521422171436934981152480861563060244938697477159626829001627918703753249240242396316063218129465729594545892219546758307004690864609384162781974073090091481159533079701195217864620985665659047333798102604192944804309602372974549173518054299240559208045009174600662183727357067021763775107296543470135777493965631791766645073379306884201597769701358516943893486280179259795725427938821413166780903357134574762997952096776706943424081864420118976115786532322300014833178646751772733446541977248081981298018293518992779694501019401062598871461518354486829655042537302422516592953909547260100999560895040306267707453453769440139568197350747400695836075170162296541255126851545715332542570015164363179333926452598802274281185772388298087316137459906451902652018677760764947596913874985448360906338489352746014025369294293506371687367035232127991578673858710516209473033947194016440896697720738005194746387393093314184334563500119166799614017793903202067299622588082725006623701378153194150665523200878833079022172082658247036527255202550101693105618316137930535126024839784204900872888008612162095917091054081028996605195835776197934923710509177371121515751691472703293207611003098344147282063352315896583899042670354922597684463082803551733329588851162451196414468782347338671461307095365977906364100092390446935711631308478719907270107595538021274465667831268597710536947436130562059183445745917359495396652175303923470374092904494926115218976997261893194126672834960857192408589691554740407543452380268326739491949084703927329050779969718095156132218977664025634656229613163089047663409415942532454426357754935146839554233420494607213523322901061082605197027895915684522043052821725911979093876987313138207116382276482061408787467482589021071719969646501433658923743701746808692636947435565471594842590784096179697798277933240130823318166997929396543808663988480674251787861443181492005090129039193474983069441470139164605322523901142538356547885880892645135261188323649434158154871171260194303354551915598530550031477751564798257326739618832501137619987237529245930809754850987224120164832565366642205538360278591225491126749431402095652575990019178185036825959287470489490054108542858867470555668147106721499523031416604321949602999451171486529443185432204197011823989637954934179926825746054995315227113955278377123791283474804565921362874605097294846055985233606683137176855608738652026149441167162081862751305641639876448286921508760638663268458208150035422838781363399879954295751566768108658451174214863332544694179380108818588751854538597765471547973178396670271060451717620346933460241822257879026518592179972447650606555824459532592923252825940010945172079831362344098662769757661573041152905398250183749828815447389665987619662211115120065048502319254811327801694079970620401378736231752890182476209458435179526182639614190389883914979537065334350281673988927550046948829701450957146171601759069517351087350635540172158255314850363114676138843280196510108304041217519517136457588831444716722906386426528729499779497588246819283687580082856654635238193995650440916008238647762607612226787251071733805765671693007156303191983932587346246508782411164594474966450647139334766133416734627547445671076785528679947954340991077577888342941270195521508556021114004175868418979432560997412854589058165899595386420218211029463897379050562226386473407256738911421080384944047647517893876409816306660278223040696371034461097383214928904438812768769284536986011720545573265056053434254469402373651707764595559293867357798085561993683897911390203502550164092769011281166225607782079861171524917970097102118247555685293696968712965346686336177806048781601485684915770251729061502956651621848083826005219410112803514157325053254942852668933192444230053505119734385779909414155029622624278118599486650552310591617658967244688230936141697533870372165124410816222322258587940402003623594242742557491660900476236644716719464762316837740685362043942794549247419869359390928798228496375914404002105401555862257117756460720250955717470736096665036939334038657190887561141198634492720565034252657693333683647491875266544713197439193877048865576709429776094546417844368066949505414036723560926845577320309479891890818375030550052951014613400101890405314488910025895071218145586547809130752988034903699287970642398110352962937732096220021577515668619274377965835399495384749235164908823623696600635411582891507657876925927600236779401965709773250072828076794063185772618155741221206893559516914866019041097687570378763067576783522266081870638188240693019440408074218573679990053588368102394471132045238634355444793849657649987118086928154869867283075507576806308032007446631274803166756883287345674176176496199139674455397575779028109964701971633059382570951999911830924832876918638428127233154563879589059274127866761962332213204040252449162997332783527605390500500621412039005306338758418067691909984635093444215040443655289723868462603999735252295008877799565382966339151015107926192785352824721122784319664698919949197424853453730924661612248545806488529383267548958469788382109186649204621651498724205913089699965811885232920472572240134699603807355136263684731554922816533140386343225558112556200455682359362912535493001080772415245422891669326618579804194417880250697454926055007382493338388494929732460196988157792816768365156987499378624712095670556093245999016577945230707348452120719446551263546989740808182766324099077906436824706448936941676056073314831274705285181193438168477928853956133954574289667242672487004705086740885153944322897059931115446055212539711703336704681789623683369086283307860829618633778433252029823003547917112959625821746609934609449498132357365881202964054393623205794527207488270646160710915565580784574142744988029010982315085729203006944836085089203194559188490003671119583736228895067544935576347176051524424922497305154119406445006061677401365773505182241435371273454611313447280667170551656468774411765934291729927515055398492033851435686053695573576440300164282596377791584136830680142892518481075796294686084149663655167569387972413834942542368946077860862561268453346395809985251397845904383160152707410584499883583542933173985478733502673689600411669248857844076374151283847998988465187211802542942810370052719685615064758077358165303361843036406059275865829781859953041015481426165790288796062833145290485603545915819487129810949563858664715994553453547008991648672482669192205388391623777087135618216211636788062057093806625003190803283032016152576088661298257713519018646902602273247332015604060102237242609904908237480297395390244543056299902767585951797328292735667699075900427810777605537778107211436262717578925234988577053031391600372096706255674571210855609178049835292944202080403386306543000764282171792897245307304993534149432555431468355611493017606249737785424639455039557182009145862046597492659992100193716898180888441819199161505784291965858246643098684723528898499876670215909254290402495756915971454945242587359366913904701033762374266841592522175689049552021006712931852965939194415145561748731238590375114899338284113836674034378982397806276879508737183786406819114213159340945845892982142082544491727864202857121315656747510873922229260217205528418226698756954610058947252923386152219214725824254666333130882774590886324951402691987446651606051507305625948326291914510464183533131085332035744444861114562078725907291686509427048819001267892248568686933312762316900942329627628901942036598283614925558413197545316593780947068794717399738915946132184962082567769070942314627675696058859473059687768158190598741471115311033981525903041220630292575938235510630385294787662045617225450153389353094818681412462397114563737462119593323375094086253606362867022279121553440751809946868863972216442942781134080278553455156510830836666825599193011905121929608242495789759641389508568703473149768563304906337740491343343398885662949833919518007686408379407377636743760115933931530170629133700012123046121864245723646335970223820864239201089083359179871067615463148790208349616860786432590296568695130457658869996980394287317013505106667052278776235022297537568455444821953531514539106689560983854797248495949927559339014119734368952448992718074957487432858370246468509060200407112345097362502993764423803208635968130608747746277550011453795857748043807948710160975416140436898849789104007646460545069400629868323127956031098849646202265641761659840304048426113918830528334781331747473548873143449102386287647341988598022063039764967649085050984919105233403170003141184806537272594141821712433884375262420781974385872498808288782738914699086995065506684239258612867805804048076682612590862415252714825936888958948219996720776162261469883442659461509409938076867217904875685038172132742703970010974234738672587726656456566534241383011625977605762113778776251646433563565717012349928369537133832978166020803405484113604535603458536720202859920133665472007088474965224326156334155639354412359318481245628193581463507498776704838919955020645631770341776505815471526341363943054373171097985762557534993723068156176549206092577961508804143151749747887444496937276663883854476551756973975734081527795964979891192977172859754090060482967931572921869186017239033647309908965213003736913756766205842766429776677488181780239810113775934300570513176385336902271486111760213374814352069676259819848199953084417717949343724186732428576162785366180324732329724382044655236119846741237025671437248054749491248469883430983017352516952827858809614531971130022025347437643651246828942240618593494011897498330044287800031575709475127096472327099077184421767700945057985013631702168080223341101455723992650330477035313115684181012847917147616147966045072821328325291723364704495733515683087735202529511469464909497787862644351964192496867608222516704840640294311591682930456877451972926265195770043186792926315835835961223700944767826669793616524270410194501429114484175009521077916573461279770791474159911135940540278978419835446568952589091554051973733339195914239528262490532325348481731014520483249409814271487654691192387524446401835407715289884648591492676969727152470126985780428563586194551579500158010406267453879106283683248287335338413003504456539758970595419489921576754417987987974817271112710227219409963510904330033012097344621168806029263647244559819151924450570353021641377352807923401693178206302953228996052726634723547029866981026739805649684452697428914074036008041583705903734108619396861845577473586691636462302905318600119060701911310410294166618783471838496978194077995562768996288482524565263831772605549368921467123165404671523414095696665648929764459760300635327976982978231670509558224008206201790102159033015891616926499453987467445489010159148460529943955775460383205989059366646061000276554502845135437755378780700042074059129412453323482111684529752316802476677205043760320253472378492211805850031852276752956162831091610974665437571386548907776221779755368343114384548222700814742165117909943144431035685882289634061376168566346690632536107573859814741475675903547069137351564926537490314399466911219419080642084332324481947436635458584216980409941497215669580924159298342270498012989809016481044723423068256844990090925421989654195156240726280023645065137019524997449106104583776993420087181430053271347930151903015328745873263582565594714356000270708141306772047874314225926475539273792447740712939347296696729951751431523090558249077493757731914328790683479912676479452685665215267679965780500062896958701200852457231260395164784936474899493163266120164170151840636187436807951724341557235926156282136167011519872662855264247330520184903238962526843431622599649352727671436731835310197880578440753214322087580346204492867023739913065711315086855869570934387435608059698593232246890594539784689171241296822443296498364397859602182022294624415482610284666051067708300819741280693003773220550979841023625728235312638081042834290985952738804277142532800505160784871951317614241882125767732082964455750402743761746351013699349063624313089976698091928128638831977503232249566879783446146328510091063210983383175581041678669883913907599321211752474385232912571393089229021727308512469861348859271401344466839309985556649082106737376306653031887552819907097869002440594422327009208141807550889366360461889769226336487693438034101184572943816692493210446019850353891798956078357776915592753430866093081642199396901663602616132217470174216644299788752930151984416208989835182894693306992454733776572119973085008589890529262868962925564110437787164408166333994446332862890335454009584042391875109993601567116809031834643933893786107813827990561423002048418287391764584257185628561335615069499711972208237124646841851755584046415391082283656374234000608939824595441453236975011649172293779810180034072886901766162272680493764316225446569743715596337217280926474091321601425341508140281412039506156106511377226403994225728880125647275185036621781321238242807139744402745350462148645609612953370627569935897337031482776546403258593933565163712737427944895458793486885330393861754098791349670834375456535389678989572058602408972626493491263773295690649226311020857937138446463431303012858335966170311318675454983634115330557521113059886246535187779929755924115799083199280796429159253491038289958371316128396575606118737157643122684566637490828334130308210318482180232521094518045408072081739606711919927020556728710220228261957953556336742035349740245289608580641976118446690153442692372523521445585684126630851760296519808427233562180713556827824176316839108385199657284686016703700537739515362095315782075825548802902700126363765965821107898856515530788807168276053653201810728628614571954960505266996896128614320536554662475823007409305230817188702827427230961613177240281244161641030316878269611213193302207361163898583101746652692233951173836652420876067002925838271403976129125721817794741411131609333982763035878597250836349559948213913603067728963644194193885738419608634894513398028561537281781863790516133694856935311666173400600212227579451901030209526967605921854931681863309341379854101816464913596264994521376706145568003596171060868334279495915756389225038080341876631087454141154350662510920103841000395923951574664231060104039232799640278918080376086804538609047783802340182927205212040323084880405454207250298548102397339257657182519430562937496081692632893051713467287037985885747747675621079565384803117248753277900233447853484242554823433494972474763574841795377987196542207346562223844432189993038892846218400668583849705815599212387466243034208729745922223213680081275776602691310208631746029367938654546409814089850151387244546652856479494322823008331828288448554903985148794088597688771459106370239328928163641503541714924232345301279175630339886048009186090325287486999496580578042504160990709105418311767402795223024666593512618989834359874796370479998513022487529685951670309739576325211061503040283877011241737232092285937591860523563335129945659000617222711860229568255071841600845860336545102382982932699433798883131685150153233910688529725499910122170174163967665342802869574620023563679200323951862421187908190051247321727830210934892014466344632358000910649576530287508251343240708793881747309442141362106451614275201540421084499133242752423822149817500531679559424001500165507902086152980058637505044874503263271052740954562522588974941167067353480156263867298292395667605166346107036579997414361288407075035314497597457935957861286406321941090244840087410508930199754959019026145005667675098427090026536690440927928859920985438727538408422530046416021945612976122437545573979539368879313575724365346462227975827037960215429141947284228767732761133722687063112248070627142983679776110468313651409073462572998558435668945867559319595244427379862934422714487187913955615366600872608034617121959031170238652609100433093317924467868140729103455968933310651979411143121287561616749026564176683423652730184441738536663779397706295477787612735819274232378388862390935445695507284538003869374751591903335261469751644117921135946781016804028359472596736211550302544461933936213922907533182511146371969207601762314353924244772349323632507134209638326128824252767394534444998541404946587433021892013085204352967928416603041322312206499835847014343217421863997866716436817037781392108041763088383308310527853974115609529916565045265374713303395207698606496233497221497648715000796955584137037911367168014891584991705973365532481899657932286567328744991580803944415483289962573239916140314404498318052924127512693462429886680118386490453411343580334126961821442512391251418431392307213319666834246903747850600399822056284696356766926901775607316753586032917464821017394961234873974240939719486903530690087101986847846877642940674062797011756899760379346453066516588471342578250474204100658613588768055152461888091410758618775786177161004768230881939812837787394527915697670755808587324263317337189121356361126068360350989446873862409582711193738245720793874152440347010217436994086422013464914498620322994023209677822590177282033189449555716041389167101373680992381028043620749989214444690041490786645835852696923836555466377840010236699157526616746963705043288534119465893033586164537352197587631604100179574797330520526877931073894670734021467827792890951272401418042168187051382360494240737727434913128151856509007052568019466058062887075843179926668329698013444141743452877961561988374633339045971938671144213774242990011919763889554528981904982999434928220238258128616029256835830462395881332025692542433020589210897695773679770688861400674951654921327587037285859558359400814900168231798548755320431330842698686613982140130917335520205581951190356745781595155732864150586428886642189240877843150799558546851456470720668457941215499367074856356875213762126449297670874416633469307701004216278321599438991587862380965372016107518844297623826501698358325896177275549746913913838766104669255032650928040069781735773512764636542407227471452420288082869914831150694579201073623497125286298413273885232035116887495587614340335422669447425869362211273825542629388481413300594387391390615854234283063662878511017648409481371946435482782807974000639359756433635114330193029862959639587882571980363326461849038021663591675631580231274360050256613192241702825027571456217500388222385466712426518014321675329070008546952246186890983446596056435688274153226730247332418104536035415602261923218443563636362926384968840797022340931177910834504793325571567825269337232229590571685348962341723301250279543298626026316877049257158184858597183412927436382228146583823221367982972232575834903588763852209234797762753943603434424397269849640513848327526410293922899982293413817836657366636131880432237650627857052921070233389448664436980562756908468738062562236485769154732737599573677178517813476891254066002063549629788683899440805531925268785125182261841398582573108569933935353353118349024486057364246115533843544015190088216644908297898400818456417583521776755810553419147607044441845388665743423722813530492442409339574779938249737387825724782862983966233778770052511748819443790313857696934051611985794894308232672580183442220193033508873229450562179356300256204044290558702209251709213703585668469960877250080511882246753479618831237805499434243343022065827571491258717993771146929701744027440651489050898977030723267892926317971770138060324601421789664195108198671647928172817625578446630494235853216447083312022738412029191498634430050320686577256961208737806505395027806097187786163779320232027767262544201136596407579188365247882957441318550589178438658144151568021785886976328427197399168728728552045060845030852314412537054466274040632297950036961692936362637360262660004998493668325115836883539416719873524610284359240428065060022290828032290504470822731755584394847274063928518964239194296025989551945838035417714610801758096962268342409563601105413012273632456509764053752736677665997736218267388453864191438449977193823250653025685185493347259408274827442575828181804983853541870800388786419198665153863611671201966592907467528876930515679295951581542603364709799381675793880235901096077717244559093475279144398930319723415505678205825381480104285533089242407399517096864321201888092019562021781409891830005909558944541482303249737740385783006906132646816307003512254696604040542757746446726082145049741009434658485567120920242636273782552463550892789904859808673386328793096961239632796181889172688598234231046112221913128878321274450635306294254679359763505350709978300226922043583246024119605130279246662464443587730955212250419502034234450276102180107992309231684426992554917426462600368281460285238220973260044536928915101813617394125087824519969809605070314939988053297869829756414495441387867322083858605998441848306165567750612899985745789556043491147201551100307854523518757276901905282848595681494219970954742067009753809724373700774031196094770426170763162214814589077163185028022444810058752104721412784600857050423369410778202494386712742900694443442421923051919525963128265425574408783896700841113770451453344224973401787833072047558800602026566663073509123071367205556803486393575199387862849808000844518923826252450114773413023645741154624377951824528186596664687685577413366953598915718429309271465580175907087315049122844141094431458177328107313512697468352745657665016192156747645487982442983083087293141469577999377474975274928525222168084258835665008782543301325091316389753998254320975406476301473296564162970182019729517244568779938358260848462175407448257848974124096483669734885294173014964329427483062138363029265144315584754045110501323536755023295792683507883818534130389035372317300307145686402838291062414720731216893134545538522902964531363479175266642212010532512895963535351253478378606672481751747909383581640593306178325754277153927787774070775046965555905455296106914584247770409458608025380014051554896923316612735557337101640859514920550634136051933378692249095557586107241841132199331629318116087567119905763655679537496583999882487458317429561234132976197110280034954720783356290245248293575690714138324796593482415479940534691116689775227027089365485998630215183268017953867956712568307724836808595679701592388738385287610183316063294694933430816317658142663195772316183861258390727166592539314591311487266558791616482374771176889291364256678394692983703374855612573606249038082689001173875624936121119341762013242863560500386661813969891245328352934399348764359158484227033032052337109776071427813366698395097248074363342565950424619744324004543321034612999139358983865790060329172866527848169077655909474993800864673604120210608907714807139434418476017198701670401216264501988914802831677910125795340774737876673550713100696969701308752102453147234009932362963270805121512383270595912629404204138382667644649778863661101438073753481697707581352698856612240537548609620946893198248938477388719871611841629818061801132831739910598922439781177184329628821109634202123354452479801369339670446317775426146823828502656041356587604049045301952671060711836634713497925166777563503650633678323933201114939763618806570757342103652196650934908087491313730193453315335720958422075115139448847571026053054849143649958705574028651400178762370144915142694131945610341408033864498395954358855790949303567424829083827082929620834158691505288612332934711606385893478067711973737783372581126411041315566627433328471268180803702208813237408067317116592899070347268151606212964238881059851277402851366663189636715524638471551631461852650230165975741385839127058728602478700504143719745485512603300318485843082297387149339979384977435224066304741712313958241470871172417801899861817321391187898265889504371224167596037989675712940430869800217055766067064789172693912284913718177054725807877078253542285682218368194525113621995808188872064756177994900480403829384089445105723257638533328638522144108189686121359060457435045592703534220793624691227313276172896074054435718886732522217982160813138980567995196592787768224046716207631818791744978315189816177765185474935571811450108947352752996796710835253881675392182393889989332755251161016287017269636223672576618381838933424862122811055092723201909855446636968420510604802573951482554519539949661898045519157301950242448496334730771381793032453674208217776516815422089377086309898292247192170001638846719148327975177033489801416047622993550854534898367475853449331209004915777363494682557895090899560856185624149694669333599763163980315933298764316366612139554461016492944670165104842743240952255576922041877003330466023516468316940859653786207780378885015996553743969221692645152819736181947616745612747587717977345005567722994940757308663425294722727424158525207625988819684988218947095760967941747803864999225399785732851802036508871374380727447349287771141361436642686565714080409448377039867101063642666578356704290508967267822809341984139862142585738713579767959276223612177546537632957269277318655423027287035852937406029966072031588268287010096946199352218228006453634904057788358529196127361128356851575272425261155075066049215424537820231121812553335596039591625630675215673754225423692913534220226285057618792214767496126988695391317117696487072204591453303354048732656688045971467715772015444405525719501800564602718898920075144899473022839328937337158144714054213474554937174210798426076612943152850690735862072103179251013841929018193132391784482020972732412171238292234526212086813169409028337562325157486498709280625584261962537781668973221112761321596726891159344432936031664909765222757883824911081946097985019354357741279878115305244210904210593101296667326165936828085135656998651058200432352191551254658479730256646452056484521126729724199918007241818043222666298492415847101330761973029509354093913726317359081088980606296457966315364550563224583721070191185757820443222873857788248912201302617511509185558927955205637427213422582176901311551929825664774065604847397246747271709646151984073253840652840412397504098120900836586730254726306735599880412631027078019356595191902297324904567207021559362538669175315142261793417095337023269851475419296670165851325245480949302762871376272780431230751443253627467790173168158077308349667709224333165309608865889153306298925035137418066024518841920543238318822052662935505606650158087257154525067527988359816855312264617192735117561059479849926824793549421699875881563563584647872245691349455772901595746023324418220894116307792732354303740054293696770831044711263945109528471876047545071884908181474538231511512203632673474754174763050620672781671982416698676376166759731870112760367557465299133293965007903181543090549783276734868172908765422590528336286141919887772269228467461677898890859105170517114414010972151702506387786902711674896288215575153343865659637816807292984381924364214415798397912462190226630697865477444936310131463791371382462438826608579336565139105125900967711801685361043995068158438402684878320866679114860440428311110299621594173598514853997039070374028888010429643779002475664962162442650205575631090677446294233613651168797969395177598518520811027215138728655680918035902176689349441586055724581818623134565497641965551451161266949027080923249922991247118655956341755683587485161363202406076230681545020360786759805760524866629120120467853519691698763348089706684462810370974730958349330829249960354148360579883558509273644485749605282953148448117160369819523600639963095004974329877462896987027115367733320385901536905919581957867229714498326003357477574749248780969039951886586743885010830457128277865588412270301166219424107293253796264702990827605269514773124851066554303393203795106015080325281928672791168154192851139170906828467780233313544951750460360942087017342399431456170857561185560605738420023707892325942325306907906417100318166352473521645120504798007465666347209014513397114547045577312944639639157790616746423483429246735273031165342737679477019141534873043201177047996352900564916083627465862532851165471825219885886977980623701650960771676688289150606021033127335087670860255692774662818892185801959614219647738845872953936669690883999581592806094682726838707100837124817888169891035779309965025289016427481238387371834357253633831800767944999809924536845211317825584629971823090837800474512574161691819415700706996884580237813791277506351493928531445512125172495368518606522878541255667826058525768211518963601054697520530956073653458848664673682698114114343351538317624614906788339997243761506331572431517025862794962791183975173783763838250537408941267836584693993927627228549389633213964970725996748486189411622472687196215420710619957953802571786471270750926299480742642936188601623094492941719408675659972464210548857438029089168897970725148360012816612019704597045768414425545575679018869552851228154313259623251703889738111010263218797034305444996640681688968141568935999492285241885921195035652461172332862508236460878039289278751198771891393223447921408921304008046135214193494331464589760890391764365574624354983132628626307326986490154928385208202257958125970042494917017067230119545440884839552685710737798477251406811034472392576561664294582251706811047070320314945854586580463213415852131297121892115847677724224499947937298991444430937700369304201071922613517178945674306341812407239282580750924173602685310688313870812942818789110012014774299289692056479500475976978863947915992517101969566263909492161698787310397801270156213068255889988410721874784647737116823054037496384261152028268052446258066094942602841142289066984862549947646035399858813629243271499438364823424818483693695671907808200317746091642589232075926121440277303855968110536900146317408044650454834786192296932400240239266418445195867981762627981361891798307640791849716591636265313424483748956691875833668367736295813537109777358287282479494873660881648953661801885341241806688733020419695378120974480535554660384517996206101501276148647453398691334322909742822517070783602284910917252722847734395046437729156836433976795942593390653560466086927551130669960761378613411864990273630411008437927734647781203468995265368560712866651952645056540923112981991342159026707462586292709456477013068069048699672984266558017464350855635186673193385830113740117898244397394670581320094580116683198695027362745861991031198186787697785983853877893372572465552852005012998491228208478564575610892580188075129074815447372563246190637788202509050491592915186981647913497109397463685163173602246366663967811388947274915386974606887719529428753531282415810020668341009997720235347864439338627600330589925505408834131761434092232796395649866817695613165768057753537030394498328810167921735169592211186400595086983870973570722479156307524644521682082649483223367470665637363325930330485779450418702917316618199365949624208547440996734490530856906651313820209497070813021089053388827459997070644794588729868056172656173996470535290437069779025540968136064070879871053554225924475431881439239036159826462300097739298251515685954282618333984867777382685645351813877650763496284738194069953847655683205789798509199658001146935332814768996902707761655506904557003275859022855255045228837173027241873082433717163872744199602145995518423930756427070034068855528254711400888893152798169687464729565169166225696323226435725537427901788844150634880817562849530213813750401061194462690774547523308544419044420833884172224478884832278344189948349862634487536308222449392846441005595933877039128601162755279369368182621828998019654774111194891862119689917022794394077615053888533451280277543825400698460581393961876767326663097671735204148810293473850581213225984202332651284303237353840533253488281518101880828080158529884862232783929040658099029267990652834973061898409415075998446151301415174562883587725852262691845928356381836789010341082363178996706030299236759852952626336401863242758658452286548538528374275848552813012445222600857504801380886326465962480655508677106162492058053903010733599574111620276832629515445190670258869143547954741237846394499879719519581175612297774185850064752448591519103526258653040369903009170358304921436011023267612083051454183492236586349725377515772217395764283850152269078464401158631556837690547858052961463766015230516913698846369502312496983451745552898622848081665711245583788719331481021400975943993852821205301979889255145220307490466576429410385074030388001753375862393681817468482234980461484679604820202717033413708050320318032511465900232100147717420892544685013134219615001410101301907045218808513263107916715682918958695505864326337129834434849835271056678497766821230446548410356585717944405529105993938500630941864832903648631494925421821567375912029654398620878950170065285852041200248864278064056656474476932922655333999698621116670039212360681775880453440177059639914359364177551749712180662156076710004743367617493790476176865899169637978463323302126463534286763356539133947264403823322215406310281354573871363359084151289151022043377150833580254208214362716085405371106102423605868236484936585783303360406955818879309556207805039876320828974013532986193687267045317331902753996753367166666724489235295641777188404403277490469470485333853745967372994538025331779804356694028737788764630040155254897815213605585734006375699767640662140013773305947108298812184965593791331039981855169802470432208797820182565835626777365498256405624545047842202819589970616173490490283965528855325852314846506307673949471666129823667139848752107677456898993719187407192375177344152937181929889919217840941970987170447053289525146434541219949378542852513255030293250437532430004114734631332127915408408383647340521339095676058528562649907313906129042388886779419217083608736475555348913933760121156042698494383486932112750931428233619461755623250411501216208922651244510328300455280717616707072948332727219664948657905314431616817306159777784287714007771355447508834342663794702790772147980902796625036909433916803722585611443567317245263790936050154626976023956284176561746224419775510844966381264405301439068637974083849995010548189374322586590183881219154232551183968602448265998101474173985015103470931305594892478716085178565990325309026339561607350534718020258123498895079290497127584722978280351466822107697654177042502489393236654884500511229641535339562766926549722348410840773688861016474135471597744497609007224138672234226982367477401899253238679311626598213751809566994821919227577016155815582018619628569763377344951664758773980428979092700953819349695687876565111765304929665850613410533334186865186694323558758014564791206655305094979843174853402648355747510973225209083575555505231088247351544923683577829009628494904537979791123262763008662446222554303100451030467690928472994458111284303862923782720555062918011413719728224611911351993797699884023096592554461555349106072126377344467332136618654406629415355231229539848255014834776708650834809132802320206223089678940637909301921441638907522622283769996282611019830296581973855984679015838900836887096378707823172871932391692639897139240275377350285856474764558919739227522174929013672869147258849034145718191762804696333341517221465069487480155976636843678044170228484075605767922378416411044648827158734268779550828090772099898605357438090426633463807587527512632336386212172933043381024141636168889343272309194635286096004734358646818941292730965689123179939217930462680719673040766964174792916140148035481985698070551259336133119447340534906095306521530375251116176266807282084385774569569075572370399033122768679300903209217336841827745075648101553109488064758108077535953021201237542820936776934568365661694661193317999023434388544480906313511433772374284708736255376023698185440475975536180979251361490442649748392229187477852464813604101181749297137397259917226106447749752450769807923374151479816624382484298441605495333450063260191969147088955168168735767373500308254848739836794574853399144385020004786764362729583504005792504527139331767137832823142360810197244674558583112599879101055429628089364480199128972847915069128473062775411890127002153140181545541365843810858393776176344852184512584559054292213784380499084949390982125850052135365097478172718170484007520279364436626079683733544164323314896503240595529370890374026264273973779528056980941842046626196747446610860752842591139587172282347496842557964235468739786231532933945360586035793206438143692591144736384334879820392851480666079994236181563711105095269798696749175064891520955103671157883694269690030149095554283095469924929235848409295750539471637771852746839532688000278526658014486975495642316500570486710632888278028695101083787975843555882237375035632783613940016483164203969214255710867284656636718291143078733293734183506582296929232136336896047512725569647106526224970314495137738538815341902812320017912507996158126223301570894392047796608972964031012235555644412345557750145769657830933932715368674087999909941527826172899391592852319847740148271425231727290031551853769928495340496397143741405950026890164941215087954970302889536781393615074743891253846014572336124632557182063335575779037597265657491641785401612625696099107585444977614044000355642012984311131934802465462560944413737499561127629645900205952351355052350966417755092280548591332131018481582177378773050481082959374502775968401570017952176444563911139518462004792612280792581185816149118529190419427869397243499679011562551248963811981951900405910962068638526267097594112081964556094403983601587493265200446105645460219068110397227846910632566172588031856099567145924486244515270984076247059237832783999973077880895656532271007816191868333719274705731054421129727491956129967015159723162659148230386500173670765658719605655580798442751729270223607754340920451232852384187072909931448622397495579381372484825445478183512630148681663957725871308298057472377760561300243250377499263888254006279374226874121150341449960166192913414806043650632966464785373506826231472997964606412420391407519255457966923679619936414342447005161549854739519448997856314072729114240486801924059468709682312837580052312718349938088186110576611661034250351016079821908023127067094606213680654801204433533377932548466242867044472436590405288539494032193966917675137956240272418535294582168483290290370419335052710594315670622210422469714809133002373661136077318745655590723189808370070472289669234111602355357935736455431003798705272041955946987497637835231767960367648386874690098581959205365990622360977812408746159654546533379109226040891249662798156732618250355643777196758510440455150455619758481886878792031136619883430802648660056372788921864545471726244863373526290690197059023681886494274843432615826112882292014748456650154615955870737245010072274472214291438963326343523028572318988705591662984099197539881145394080290960625003636341168198378509163050227127451514821679967934925823673183832979808919743440032386307337812538835562386066234039560304911040151552498911087728256742715356409662602727375556240742928060739324944722009180906770429306396016480044879423473945103496285068622910944759253319558444059131514070615152158592127988130636220644101091326249383927122099713999887461230631018191496711530860505654047625707357071659444867564931078898427792576712244876805025352010544233121785000350726311084114699020542454462373047187176640700424319609800122773946434562931145845926636017409774743318993057224942780877141845154745732942849440663902260777768493744842790482963465668064847647809174836784787294358501656162528913526329549906120386440293057726748551355449667614236170886866028104126151095786331943352196844653831226544635114560978101781903457846870813764244827149954471897971151712514780921704332760785630714022259855353801105620373962784034366081414810714024314139533716364945910413366309081255825612012920567611692214842672680467002326648883379809049037708039770279199231313258940481691968057916898837112494635894421768760012182665970870553164686212566790112347550409982918755018438680216843376081024168381202732523271938277328155796164307198466520767930136168538322071140402166778081806665502844803788221903387388751261738951824793198662347574870975497667029343608966648368946009198432471358636255520818542017499823718332409640121868438014520152875394830767299323655531357435747985483140414783067755551014972634565175004292181171072410794273307735138038167324106227079380259520306016646227960192032261965546645919022409382099741698874955877885774195719943551188262271809630260195732001786149971971626436880083832654399543042013764800313665865335740793453623342271872960209372702829140470463765697173148318619677883510029680588300504581837372250008466283790342489907532078197606338596184856757420799587574538669710578862282290440503129305676372454676236287260312358447626765755758857806839579041463884441410590891160771067640598179994176877183600622395762868318766436030323151778373283951674225849795260401346374705573835964346981496330851499907509773919781426485907539219983811040724683530230317695555490941078392729078846548847160395310709419182911793828442221587900986882899372566886944333656365034937583621594369655735949776894422361688507008406231439634202300182812187251236290248752813677276326217580810666331277154480419144557173637325952988959685892091485236872153497787907466295546197634741265481550055869380776535751010318000711745769259608102936273345679431146299336125134282024081146677702135005974649655455058840877555897220255076111302415719625277071396126578940354072154317960759828586329932216991126343444083719421439037198332843247018786751788557542555107223623486073529044650033934973983307832746814061377628510401741729602296900139737526201434296068263527025658578536660194154815601530843200887450217177727712558128172340848997367297823486589130862002266749607407523398155157489735928089958929832211612449656884838140281132695758295051166927926244716916289072272560011035936570795369606134692867973010711101614059663868380804550109952852038746973209427741257487872269404923456706658172685282027635449793800250161689668420996264353444460963534668784057511675104334934233310811914686504601347860107501790909842322029502667789428907627766938068179126168300321803858679365893877406296631272660987916714094429919497805371377357213824947899540898437949016892757624731225061725421712754543448348638874474659934755528336618632397942686649177629251928238108610800251013530449904903135577291067957003524830949821124667744507813092193570607991271141212561879326197736532348193049703421721709379660479784270064954474857617138942640881356221710091602411656602085111155243755868541272642923747407293182568832704766983783946619195992903272143190018007883181431710446003569557651992862036799700458157248138171316431776036110504781795875316961190901667265612854230077175202957595072727749631468688622916509475705967034451771970434580708745596017822167903723132119174204564490614082347188265066079541006580041031856010025263440728181993991184991228429088198815152468906064837571938154960437519443677404438465938269785263834837202336837656873689811964098237929693027999205031953496788700338299072620017740682873249457709770752741792107202371808993740622799459757035279625690676302291556183997470163160658633656208374600177723194845106953154305342555577019646107636643367873467263581691853910727312017592823733471826210483335182004797226191018047497679821100187649866042173675479611694789433597447711056918379321803160544152502057127253533172489785113425916660115194047168337275874051768152025588067266613902685465711158168051100680504228026500382731776661782957015892205749876012168419270549283205873816287478513593773856888846353978723351088577465309136443476626684536205239163261701271698000640398137372306449094487906644959157646919263511344040670361500100075238890209197477645236930422339525884794880757375868855796665036237609187349211060799589115024268793397666870723113432994421048442592903257803702268759274482462604234317376663057846763217533379313147189511299661272130759146741498481547817526976651333112743255965640111614217932220381672740195214483486740489164116097810600005834216099232400637723796565744632180589077020604808826176325085518539533795892089742352344241774438960919461452687633586526677029344107690994759010915246515221953618724379033642267574053289707967893789515060365761650373209416263765665755780795845944046208226806884128679460147932533701132941612561110973719687391497260604684725678243857241504920607943661404922499707293878269680986919962693498135366000101548585161980619333135328363524754875063956664595671860018890736661361536659381073968400665952098846778948624081012804225510480064828386038940963045984233408119110565143267358244896922039180552583215311312914672185302235641559891986208559095884884920494570592044852104299332689326649460078260298711797248006021987841684136726488334322589215130569428861030640727691285198882757974086142472805273333004511422811544642367068118982352855016444814893745392648483902043705213652658849265164286994879155563040780401221064824628379589858184894189397349384807595549208915231233421749564516540103253347878562227436836986807343028363878707264538605948512884404936885467838790253570347728071345613406087867497396103087893291179990810879795862652629953600315180949513426805123450722799810934974037978075428264226635876667677556707925548736537957530047094087984722233362538739733717272970785615915029356948808769732357368254981860391124716527475254665222006794489747444299314752762245202935292913048160580886500107802831091232989828946381639993658915353342638137361236302925076607144618143109336897831355119999404891916432066798419766058020136259174444388121927297000730423683536783406067896768534592473731994180815077976095741014258724770045272743224094582640333918883198443303599743834651345249817492525162815531103712772027892008844142469158768656123769998896943644468935822040789520542932494214681297886662319283606826668080159010269368003003149032997580349788265205063508865132752175269641958652057504382060507863561486665781859390930643684603020448822510949593001867899281538674183281359336428458758724639393441779152624318034729416979543808941026395246252483626011189687209956961366034281127743426416457045936571064789824271365295253368146759311325647947282988696612790038599838870239310734531149820004125854355225979112468744201809838546746255020727106218987654490571068909456549664985368575605211997944832950848304970766126898063373346335744243764386026393795855337916022480343927866065803293011997021120975538977350705723149291861945984443174861322157940244894194746771023914354333495151946604220332187723427198402637376395629024835302489592687978454110220626888353274129575589028389251238088191134786107697349254756014940194895230152085530506796105744225104907425278195554541927587523868026792756949169146326530880798309246659168759105729337775579540881909642092073550292465967611642510332950891556551079016337110999106489320752296231760901475225665513183604520363591035387659102545656286001845808446869947869878013417022631025147499470720938381486426644682750726589761958918978027632527677769300952350566183217373349872980981176476434325819790134421050170698721416003005926404768461636436461838985635245744892068287263437512911291040298860662091864352969310866897648022566499308943869449933601349156321942030653470960930175911304366040684667852754524482073216054812575189816966762682705798523972058356105571797854318184548019487780161756983002709228236563614716297893787506229024139035568646775377573708762332125419370219422436559862806451961196689405064205527517682214865812185077159129957562696663133745784492069713748911606243180572168751026352780183081446308271423411496695792860128485190545266513763602768137541830351844245096212202020108751328261064269973674369893461294532478497513401810387331598822391754672948868606205143666254465840028396457639167174489114341946829959233423972909139334569563689322279224168975149654098052878163846307712219018203860107680473436174777357659870331353090428109240754302384716568747870246804510792201248465696495261334598260743822143437172290103114397330271076007194348184778150058805312120366570300377195959449124266671766778437086176096332332644716272847560665385758220318915073235824333752854430282123288699276142017215914542728013707295560056996444616514498034458058059490153363548512503061615280154923514434428246825339368881533121400321006358438192037327627925036889804576742758237658932728000116785160689882663526264075704707469984196190841767249021996586632090126213249004529201001089087543277055033348603552675779225192482319112569516968594291232296621214045669299975836797499248357850286786922687148072154338889575298573257441436249550558727711299243650482837723046735354448046343551052382032353865604190173880602284900476068376983998072407433152690062742928569283736586622966986161240624676458757026385493866428479835833319556779205174433199842118677896926974726847263195860500983598273326369506862693428986455090347310770017972026182104012105401027126576326830071492440179519881081891028593903941477737217173168925943774942220297302400559245598892473382556705112760956276670540448754298622093959785917744309514313879281204290225952695976296290110359767336737007154057254040865435280611971947622531644131960241974356260896823743123837147921909303354135654149473126902108878710483703247459129223043288028837759737111206790765165256599489536664904120414210268541186330720389142569991335963040161178453470415102241702230000680380646016311124547556958396885558383561054795852437049804132942162496150262957524048703860306255778477536701178209214997670998527270490194533549684813535825609801092244913339437646231864255683010348367624582360549244157221631574299731218786573991408795656524141348149281881057731911003664055376128493890999577975491805742350387766905275024166544657643650271701485596132750717911645658436845248682520193762616111838570287721749284521561471656441699791016349483011019225079958232859400627739143757548336477002438952190038702853247653309634303859918086892494795523276638915554126463847667907330929167214656921991781781920530955058650008574442656489914460182104245684970859387854642134138064678289788788006223504174133837162231013572494408459153713852977823175415396337073219187645705300356073039882372233786552902434260690226270391794091175423786517341019461452890217125733569801835178134093946473706699701775708347729916805610909013180786223907137729357054368085635327023493871736204250107932265092483865176091485076364629492372201878538104929353726759436152524634034026375070396548890563749597066701300171858156358168385020507977772752326586583200425620895362167371157540774060272069406964523306718562943724019613671759944362988722678894257530358844423226100293595290548855912386421132876032595707949685115245211734339156318705797817192723681706673597049123699109399754374352647578595571623108407036568190709101321241414796304212188884706159429737623193850928882385371628561799501576652397808322502343000734774605986439384581410029635051327024541152818036336096948927636741889740558228590555222880240292841482495960136623900303684272604412776506809512319060727504356625962897258696837054408721256404584879171591027575142880741803611282386671374031261055435352579229041387282224096703881851523467015189635016764960010131219142720798934840566566386779593594603694910891887654358504138299851745517170769182391204900575660427884396035695679751774279587589238794989890429272552684964903520199270805632143802741141760091386657862234098817329997533492437695703951282067652478991216742151312405878993875131524600826801592632659441860471630627724716131650966951217477169615974852580687518079007443047057118961893444170437703164284517215632018971975259447429410034398340382692153943481736370845441538831986488695556639226169355151096651648264696762085488094790884521415502489864244751628501101250468473339347292227423737607242473626765592861486307484637762093845732119882733110937705620410277062779749334529313111211403324828286690065355690378168735221672962717832348948327340867414973953667485953589647400921005789338767645928240618649251299852096630331714154066164267989257678813546615367630228969879096687188890549881435507103497790683210195827593475815443984426146502294575697214651434039807582646022950740560084469834853659802148969017462280888487914446010105335518541540545766152729261263217366127378840486662410591428861173177910661343604611485227667725103985930272630078246516871302175279588743841372717983824489327885421724793789320773583291900606631856297052245121865165273733270161623803756560458975815529793487077079978660044831185380326487258649338966395464720354903451380354382876790665802765538182509413505772169601322842645075878497002717879266842000439991550493369991981444320182254935234687923673367190055621737911570312261284173777612960776422918079989354019655681442076424457616547977980633591329441618760963871808767850983693725338557775461074816350230984347675939540912184975743602318755507094312581391734081606206059840386076845615114364008697762508723062351026375180534101510287674066453060731593279283657089590112376293408696002258395260597733711827571356658427224594557671826755862856496704646585455870591040777665088571517629996175134790140566673185094338990394565059949809743301414135870796829502080509236265787233671096060814911823205806812148102428385987965138297143081784222030775147693009460511969236202332196915426720480526746680807889904857789828129774261605351548746175098174415500728384275494003095803276872126010196091812149640001712177810700494324118750668684887256592440683626887246840930172495182767190413284061697711693400661336423297664640995345135123246905255845420148805353275683447480224171225800726506350743264071932807511824875043413143592910349621696330879557834582158374883579617433596216846200787778069644766454440931865735250465155123670226611962929703974404427592993266256966484267442300008034583870626478669770305696984600760530250207774873785444659599248742736165320419030247594233987575739630884248270911142031747344283317861692324357958845194122848457135280094688942998015707488720798164101764077692338227499541969256264962095342967344055076370467892213158686341483508819481686055094102722518651730962333172992127116681233039001475632352325215075672113333651453794825905975790818858666142359344653062323374615651824533930123230775290449317122411382977764456823823265565652363916647544631370589300702553812065487751751530619728238359874856274312114250101454923761262039108440692959274382248929472269305740391043003939109570330492038562988310938101163585979861575064129107641941428507881960792237766839229593571097335548569726427086766011538248246710367089735443773788969168940902697561269580477597625952152405903106006825670289956655808135814990347923858957898055597553043084767627744496242718708684534590037395914889441501198686328406667406267777156346322602134958138080267495930817633507863318259111231148207733433397735718556884348474720171851017807536941144381040236672158238281442290050936400555557820858929458841153488741048560578148976664329234552296897360078655458069049850030818614645430084181688785357662539943316201461131230829270550447157245444165135546275422035494176794074276367966391268277122562569451973241050972054065932969946731978551697526313990292934977621153296163286202060103469523537408773342153693598103547417471785010218791624528899991373486951703254831511615072488761903583386058284900285396916721341881719092251427316735261838442079124387012169498166733409939269215302574191527506388909405371753968355842738729786958485448091580334446167048788382276965506679551099738753705350495372257214460873449584932581403535086705206639569410852925066717669056455950526040481836681188141750984811401924881994684135411459304576600051742190663497377391736705433001639203189282603159256512954969041043861339068365154794445650509161940893669564290861679215870586448525927960055845926013827961373619061130160533953317938983162288456870488571893956087658624487894242546112640165003744113584656226219674299542417554549967883176924435487631168761938429872966209934228452266508102150284620070948594953290663521469995717195905900893310688553159075072007474727259895616785055880683653642227618930396663639228051543777014308138450067401525329255462630924281091414178978161365813286193912068048648496232392338489171892949389887970937784324792711625408686760457691506111630993916750152421529426462931290100192779928632980129034491529146743354431418834840692261193566297148534315699435518994648214694779500639965362520217348151407622882370084310451942914944221627909713440014939867131436426455762106528997024809863626313668665303244072890068435759717543328250904511181176145857560464360189919338716464278204523658516836760669801607840698528024056278866769615451665116325771269673549940800540484161701253346567238685630370432899482603098749407138186081078245270936227575718043807396585867443614999801081483504339067360954111668497888398781735415802654896629421710132473686714960467472207005207010537781964046918999677425043021625411911092582792393403491998281311264717361851087867802110315053614170200118223495467944147034718408211642158417057930812943604464493567692231735420125374270222685771403852997762119806402456446665468831650164349446272552242997536642956135784265162009860752411580615650391904536063294887817131591107629099217917786207785284728963331080811493207295917167098670702511454341645040067424160388531469153059571013099694168388163492507078227016977562872682585595008048293027070425062071742611798649816440862847226906472919204528030760791357442456563042008130372155498740559028060105362809875267514313471769948086691776535740000348284674934354468561715372618846083761650113496424840405234234520806534194568362963546505321142946227341073120861788778575290905424890515375461206099994146714169447683265970456869108281562713953656601018066350141616954981495327249986128591234486382516488436302686878182755630465349564839621622632487557346340606053594739915625060489555277571370454290557175888844860275066779703775389533236137533611190896815322374203636296101980499862106417989962358810054744344311732678889850499883575564431925904472390933609049217326006054334700822528985863277421093907569304735516340481158836381937043852505611141446184133462071978309137318783094225504955237670668703757490265687840462531727298173881391607527661954967910643027807616602565479404519393804637299593942935460506062459553190020203560585692087232863862197954438549344778694955193932909428723875518147840879801972617754271735426257996705517542621433317154145232802650024773389005646644777192856704673033041518086721914576680171838046254366499490126098386062360315925512221301915293984196379411226849266432873840865970493702822709110155703461794996115014290231334312598969145430938745135508082514593718381685794737651591590157425756352768399881129127475030018470773971573953431909330384636434143724533567152986222971247535390337987311043254231312803779514532076732922614141556042869344599368537595079353294109427893581797468021303707604809635420482029598245060519116186395923316723350388254005133707455422981256009090142572849737494740244082311081802334218457695886108092783456303604644984042743011434237760594193961809888149030469353237622735918711816386772696827072986698966042270550866020856024087767570650768978370071092280281572621211826541420118614688434776561099522303514892719994563949359280541220595990777609402439043513321973350309228911027598224359590631361176642330022851910096073266067816486768449543138831928256875225707237667233450590829599453081887469580902540042770356222211209091844510827758078173626153788554378801135533076858614239316658720958828037806285603815170464354943292830436790143304151770311493524481343060058309471190346915671656298309846329528378977974452078510286022418831563611422457513401045675069479849596086148927357248250443956253478473962690597123935429513301454865382697153207659450910572953417654514402404248620250132747328062778147800584765394984182492691582149404484580354813033628163265982618096940337473673681108779249881758483514981874739393117248368943504757886120423511498903415180290284098125546822717692827647106035634078234283332539436393289312610716342947843658426032339262502199580240413763474321676447202253668163573002076138310425146338182732315699681654060344997470715864305186687378724303505174570675431464329988804642466450236140707167608336265967204000523750183116168096987634746554184009733642190913075566339180117499946815706206929735162543020880303171065104302724883395453298859844937649757150546073498075529146907378136673100644978529912932332822431921411913934723183283359639918061476514227589840583698464756854765107927712407333069965229961003741855371292400805772190127626266511368832183177649889122359729906967488756129394776101135558843112507846189290517377670781808363700474726970623808078755909133617107914042984117066239746385324709321546970070649110078610862514454950431681107323466704863027084655606460082535887431304144638824323183950254533662419887632528924466559592274258060960440009799397801635584017699454296997348332519281711895928033636656423942565166045375548839471202905612778151074585662833006691589089480853151573911001636775789801133692527019069961934874704761525265364215803833454137104532594766498816827966102975918091041446712045145145503823273925278182963381205630412144752706069408298342203553787501856211788282511859035185835322471248451248457506888149009217458622901931228196183040154357932413752999023899154132065471225419859144423505592438428125533549086015834801636342606775037721825791990301875149223893636004969578804524121560036364100213456922935007759537807393946585262906677016059904988069750538822114067973679081534214660721256617861050319034762039649390692723596007844228938370710266377046103630710016036176050190724523517684122748765544406606708387464814993168437058461820461247852350425796139236680916618395340659209615521034265006427531174475527327053217521636998358843518412895228894619472139532004573717635039077059176902442165285419341870170219748241126908325764769197564228200065651169417044248344638063008055159440003861084501097753449819510268658391559556705222176648030788570920944424518116815615749626890133057668127455337997967389309571050861786799934283467971605363008494860850304067521206147990559946609261965941048122928102729569714388773567038524794034219491686983112154261470311242179796245607378317013936078663184541309208986450656974657995823095092127279840883057898976711607752858904757290014162863783642414649364353622196785403961128007325335129613150954575705559066724350966256140332752558021795344107277236024166094992710808845800139712422530721626368783961478463155080438378952366318705535539856821139422006778084476311500995714451128233377357431052962903241074630670527183751802190493124014434910307535746998156466076507727342734528268487160226671611576625898432649975061759006475417922604052848902078539596426017495011408186550527835867346833522043393769258408599063295682954783967532103506567044491293107975129224262391942648434927092488570806525119587099779681910954158809752852225339078629864317758594709093907256204371075610650945945833147359264065967573501005792061348846082074841963553188374439325425990134503406339922898644293142726566135945660585799607221420595787673642097696185196345398806635095315738953997934514763940851744845401238558126029247965966223432321958459735826523025481957418776810044617227774698169401874029843806815435665624231938213575653532494531082559783060122774538104089916859525496163654371164596253002600765770194706544604398167607999190069477232175376696513135562118877458079063835231845241703728040508616227017852855647565143319182418538041606786909059861732422326680844317402539624618643954153979720002695125843110662046821838673631012583733232595463894324316569846427256366402988360567375899537140946286194446327473366627468685035775968137687266392829809689847492623073295060787827248180238738812012483037360424762010375980556044529593238828848187201509989332484618931236499160668384437972122192498854926157670552967888889244308624809563305074982989398724030302844563096211925147514118294655005180111025440410024141601368653304242102295296995643410043848127696011590162634691738300412734357641007557261240106029979730769831442007087216243798903581869586800014114169250440293807496315110697329516734586351304243335137314817758245661493672703078748383035834081083476864617551169926382031040602162134525528697033391936858244595702175048351028135293664075104640701484017334798801160132210222099789766137413230909525575527246677897053805788513386003010568041471829725671573432982107031867240637909220896024596022050316206623837967825651091483962205819334623711968151182351149105843492716507589806619312555780988665425089235205431646328336683921715667360694408106234423575407305686189639587755995353901928566577476015576694028590285568030793318015360658814146413068452562390953213123623507759186647186760712629160625972831250102352923660213759061195578033652363223897088480492931281087714519372915199420455864826215862949138938650891763355119669817474270051217379335072981804833617147608062858937321227503986265266248573149520598270016444749577953162928889256118884739452701715312145644101816696440511866154390327822280616525269192368448114767801767255090421777377624082121586893908257008402541634151393778449888084741234492880676093641030296345399244653977016388046964366874941930144657528766346555263356604560511282372079269979850396172739492874987145126601384719502101641741102193360695325961750967642652258282641550451209222750904566649260396880836340872670227235167447856419100800136541716907780198964826580814194207679457340695825501334854384642005160905025419389480516394008648168123743250600137725163766512843104051077903725107834241402802267070417979794630894920517752595917826158799927395861572710070971908120213671303804023907441549300325919813056316492515839226556482582136365567601993053477664063750257720643102944007919208201944702095331761755313969508046903355214971994437876799444009548821731675301017758568492908562055588657536338834453313824651086670296410643106680122793077241124084504802119963240308140315789058670177991226442278372776754665820219087548599539230556977414689884774540114516310086805304976738704264228076142553199655838436616093917460152749729600048828545989265716648077930148626588798533218924610163393742562700467386185335495015980443274867665155824704836899383442035752856539274573065734713757660020889231363358608540657390735788119677395425303678184977440318122502388384513875126941826966453505560164136241002603329930706259730881149446451025900766521358998532343907801513288697256359375507419265734405723334970721565229059508102761460924961365878967765984405942841074761926527918928390381354430505740640182104596292254062157019538642950392794271259222400095541796490510556304837164110583648794940316253719685942175673250247600120934730978709972882983336594092583568566956045432777800228236287009943161658864669053725821763420123913443885854833264282773651365108810023181935007693187867833435268623565752130385353132506979753040855029618338471670031808080696453404976915130324591679977203956596632291806072998877202899366641023130901818151110508003468358664433828241744221643036173873633723585078224554681219814621071475649215802552129919975014406932039131655993841595186200969079492441595241464227069515156107694398907143324706845359619994185848173609570862898779510414654816699152006842433656678580387244608201278721035624637806575209768516156672223212598305801583141621048299074143846451860947059963732334424942260345673672648439177583431420776344786373763983607673667277020028109192863094277723301047233097639211900677255932946569164194325988792626326357319140672493427082549121016953676766642416313800029316751384900172521687391526142501758140283063440416942112282547395768701885104482346543347225322444443913236639725615776899727249023581406957174416315858907661710266299278231170035557065543202360907979137131604380244620452392052496019239059233895220186133515313761737821699553922815260018519345494559236193401197422086385154237125189179765878828107944699669865322450053937270397102880156187603966102082355674489458503372743422104494540343826774730879905208864314433967333894546318440491549252820675349175722150702629842849330690505697504128189563273073122965626729442149292572910587249776923257458728361227061343025732001071024962238189962223442893269383437870573106706943265983833802217436448882822169582960097815761137766123871944548269021256880822516098911199023021920132322746244869201078177048067441196136227913278079797370846229316499315150641482967632705820977912069287454120689817470124467610726451865896118693503169732199081207203623828836712913384248902434977977354956569441814770787257352399630412723440949837829854435186183097254522044851509111924317283251353331175917507255874165827157804513251150097732455117420263957675396320565349154637417290334420405191852993433448191741240254526056969799954291701388175469951100299819897803490009242566433902634046183537198747711050233782691770783784109195592291311341090424689243532840298537812107737913538213027456415980609341460051880922130831605778816644212158102085298114803066022604363323432174217599040828579844957919046047441088177690625891479499878582279819553487502987704234804269489455978215737740788765874164571891293379066648538432615927380900741321441924517738219400910353571573189497392176961378767934447884129472639302482221045062526648452710265285714980794279989051716889249176776622561092112392618419787195149363679350691158589142267041478806192656925948691545946177002542508804959358303601582977284882202370467803244835320305124303115606715623558718043275110406489940620601425213713193160762628058525711871879597682531695601096222725348380154057310759974185950618488190158747649957884466111681595379661336208790083468290738537274241639670975093146179690546469333493813390982174119194568190749820458251641193600670982305932317233028915253120531132437871881468821053580368609011652450248219333524263999543702846167916060771696579984039632071051437879994397692441391730868023841389335433475146670928717830811791984263590709762938665749193697971237541404910188918059150351529173406448611901390668484370825333305222402383464110681370486747071157055657760018019376966081685684491276177187221726560215936937886222691595807581901913895546165903257936639487226182665657123635242871070003527253408964379434529147350616131301324084496070788287369607857458538611415570480604099667022726945397797561611785947652039538422280265030126039029925501876567367325409381596302477480013061474952759937657727347862914308415165892117480833320238161154699365160841020939703322134509438395343491762396871184069829390354010976993122871499613671946225386102875386163806813244238004981706775275652295024824718875193709939957251020276367266862389080532069660040043122432749459486214521721811902445169183683966985773335892609785694553483027708644359509428200524968668917113110218148522736423603994530609703431642627079363160773303645035198136845432968544156907056871568123183438143509419101900244399118799521783287638457715141860979825418723935841584518014682369395183739562906143550507428827169780218987694687799355959050761433258145818169073576559479101805273024441497652040946717738688572996689644249212086553562160908488654044996543219985559043612075001537036131037064229095477951417370307808701129318324660167101885798467531232927753751988420889377641685852156308325902018618969469485205585281754994280396869224432827849542670833499347143591452074606829363924213042739295520567325004960609898589742144065611171496909760293185586360589344760765075924385178291014192428682445735131686535940046718184729158649910304555012502426692474522184196630653402875671597320490851102264143148342475554995574858049711193396892706716521333720857828347130186985532913292458047250882291535698896722181846463106578733715264293323078344963870496834367285340886680412840442863212475043665605838831021316800536551055541973158640763557057398319377164233270036466109023121472097532230776854389353786110541218832493147404438719289011159218300123098209100648160448488704232556896801713471224513160984238945129401633174428705580999787282152619821672978781907173757703310490692523758476534707289453385183112319309132110223519102920874263031100872646447946630073548480005964050192658286105127685249875462322900123639477678912105619688271883211472690582506964693025216694279396960408077218859438997070418992637763534215823462903179555172574419037050784372125445198906959498770521489749147905152326529228726357027131699591501078123383611709070405812443705665841322221427605520395287508084227567771263955646551873573144282148768560976658269386936567591674750684878538597699042026668695031047274929394962175049113669352881451315090685143518310942847383562296205315274602368582361424424600558112856845633584085775927914797986422989903253602921992001358739878217710333161574418450883669196188620037792975873478392137173943742676859474089647145109208364817543934825296177338777027581820219617679771365469289152442125279251637308624352687723536020757124846995562024148710645198275032337651538649544255098816228832636529827437839814724830371080320066003725222443506165740999267244486769874260636521151459228071935250532746682827814066191650740547271792157773147212873081088583243573562163937862079723590915855122556727510313952671920840020763572748148593346596211154152328510108865698399615044516791449124523608303459883571917310140104466480570303214427811760281687982812824453737341741349582801140793744924265600745205790998750801882211651647921812677825563746305394844349613180814874396607414850276754744266643039396960427655143423888152697907220078277069836015063680522157628279117742255821034790770632862509247354176448262756876026805853052918646584168609937193075146464149942518867870991669497260131880714645924550587994129319709006146168012669730052695437250386065078249714876574682477736517519588807329900947075795585341008213134985540068722373048077534150951529915623640737056296148249127729055657569093637641336348014473151469345432184268449721654273030745488869063555548102068155781245158115601863277832717796493534982726732494087124689482952919267001010319144739383198702655008265646470820806776687146685650234508781154382617961819144207140906934676229877697731403889278033476760003864095467339905982331636882057283530802520665757158998586258554123090241348727124993907143289878490147335822623801337197522221472590070093168872281372089636209056043008324680778522149411156822610810367092523906390061078520835774245129908332338907739871286346397655281181472595608219451314220194160220334899113390702187385800892069554982816981703578898105283757997543263833416787361349837512846438211310436975074295507215209802436138435774923104523064942623744958866938641564075571361566276300108654444339908959647878776285309601684269399217093894132232398393768044275090046557268744649093577458310621187478297335343914516788391103993032728140372228324145160986463898699681037864278606586655828635667755568831944506329204504393504741581930195733586747290191938669828971147796286900582130427372637849197968418850775194192403320866095935757308895815422113922576643966947707050344031507842669078586991647280235533134822816811870858727139746670529887212067236606819790664633419079880839319949676553328699048598819096688437184666791528116053463540094554352008019171776242464018776667517947048483474260963816954671792123493611398849845016411131455710325522529792076405452724234419694401685974136963446100736414757038941833578427392606362628037472951430143275097832133816382853438529529171348481295618405268238520222217233183859896889380710564471419334692964149129178788144575856680280184625818015386716341715655996633517822773860645489098037282768542188023536891149064832929410007916375583365383024369478698531086031701485785300525641194571820816663463191427012193243749615126441532578310769819419026667106595256294323570162158618488987580030659734232534866099513583274098139360721843541624619127343050384019828471429706686685209927251097525234569159608595590461352962063368233025926021538959320994647959830575075179902664811627262208096081998951090554452852155599012522582819121870864892354606571147173753521870821600089615850738669522204472953178365616289272662667800635689574578441790818327218278013718302716766779688704739986662395129046303265360297545357176252206505703501627879499680599103121174141144767778974183318546959188390820128142047109186722906849878931551195729359225865798410479449066103854125687588835284678180734322895156198510811860777254326594029174657432213768717077121611168460961604923192853436406151267009068127027086733619214655003710753591645052707347561434720473789273924964882615128754323195233948124444645398475546299600525193729651208265723538797677703920162698630975789119962423362250908870630321405606867781947216968364899714884723224707465881672650898674615100122301890515208097990006855398343654748169240081809737215298436204724792285153279935976168813551865502129570205772149370630236160041289604579208858100097327305488240869212248354844730413106490393329701870703314588430726146146778216957013616824215406614281814818124808113693191595456474013108415523416794670442938997416480545221052152827108627834813423978542631580441651377725866083311421878161032473870686582922536131904331443330080857649741912306682868072743059080731069421427349070993018104485245430027255839411957258866164205076794036423961735002638009464336307774307298965573027524769909407168147910760720548331150169018406792162843360354667247254551085079452298964346158429862761131857142619829060474634520013150579402000292719025034532875666529770555129958349652970808983512684991777146146624336217534408889154518464001293561926414159965621980807461531826754252214684453175389804359862680603168956098208443903971697106707712982644633700050091398006239981659041708707653554374676279933497388051995761314945473261617383189435208357859227520809711370090098937215013710622074399872752540624657940191464377953272642212891327146272183775969598251512575274539257506018971294367562438396349893247780473664133051869382107081021035698654041867968443953712035688702727594299459936982280211510312402078856149595354698734763020650567278551370224908350967060911988795439298816832709734542055299978267095547626521250028566853088646403204213242096548977938534324982354905441250143836964679132382144671766783011230596348205418850325908919842886444753686886212078653941390613024845919516220083194491270565554544306460760228651322213332438619238262676861014214930857288359221524505103189412827517958889645567159878080460081865907976086108781309279979931832100949538156227999102836411305252746686582358259157454529143924185165195009438527146468955864491055347083238204827837134113224636304769629381096421781611966624885216439985996866138728650663551507896975798489169667679860489204189144418142983142711391882954636177541149139220719609352876159133449216213725596039291344099426670361818593990723782188153106518650536583946893136175897603398888220699827095270315162452210571556614296286841478335485444679435622062225758065410358408343810673308308351384669014106010191734346385949678853461291680385074591918534583067958946305479596875964448618892390445495088304403706955056967441321873229231374193119107048730519025803602917604125738331608210519810946182269871966479417730770790235368564846229537390145336118543206929301693928044661418549342961026940971251811648168954282222156751957201165097604976488732150306435571088663820275553818789807875643784691096625845850822582768090901187831966306962012782603292286630746933693324327244664148885720829999228550139357406635541644406204522072594813251949484495069792411338463471810887977093988694473262198832883032236738894948697149363246539088145690290839934307984079671043818614459346836035611816728490488080303879480272148072136496099355540714418062812125936557299163056319799899959041572460636818254415466728286883360572650368473434421386653577616732314047028056746680964937399564879742136073754705822141009933227827902850778383170010979408885580663866772024638792765274336459919123909999993812434284179414632001138583087002720472317641118422508051131099348444876535089335120893246455323796604618630146402374450938215192299495114168058008709341445544408221792732667116977181706744262921885251527243328016713823456830609385143731050140554079040311477958652084130650001625083844488297978867194325247689876286268260231337572651706917637262377193570262977440959459181326774269727731923064509920638940604153162830089242989416902211400715682219109513651148457710582253332247983908323028020094814264232186413035556846086412755688785319776762774281597495528236832176701369592786154720972354961906263455590764469580023130599762005885151537859127716900600753223038997027733848917333082067969316304662461330624756513777724229239361903970129116708306228799049175417651158635568991832251216650354967487809224532423993110878560315199498232183244760776037733665755299401667987216293910736968813228471939520145240309783938762133962677829847708461031244771367088454670935954878062983832631932199184266251630766992713389731841842931313240382518200533455556266518493641863439352205723631019874721310776728364035620309496890480987239500281855764934675383173582204712104367993975583078850510539500590502483983663920737066272512298403168451693471540988067781253530410139338647250377089213778150337716498710105320905431322213703709486826541619438287180793306352259809519846943024154648772148634417158339638033034433374797075002579297109673173360647615964936616564786298402464428293498317140240908012590989518985170952337976836352243066452918490026822710107456864505188124079135042294830842212294527611527386484706685069909381205334753502094450384104708772704884628673152154988926754267910841759719826843556655346736179222925814081400197592891317790735971910217712175359568086916310116477461406773708238225715382172803655633356763112044287810472571948983763588719853223213191504837402946371720900774609717113231783512174515493616326743564984334217777648416739353247588351939227649999937945761648555944860023196673673471350834025659870353965571457444485272181386741148469795602082564341440511676762964208118911284042163923006808205502937433622656510868025271682857401106890234929993899448720234662005101695662943360191554365560853919250390569359175410105449050526109005723221235219760036318962413303731762354396753350245831609067625834492131999519456318593819795763540097380442715875364855211527188451108774661428072884927868878126596974575970291615606280707262885876320392004355937010227822359802027090534465760500834248305179405319009017204968400957365081767534162458741907064352242953338965648437888708287573378674551614305753386548667302425355104965307979747412970544384439949628577815857939279808949121213626552885600273544829317393538083446166713505437735856693349635340810382729812606598490292824437916720383657638164368202663568599447620259976716074308113709953027284617098732776901503902368086428553751762646701709535942659191252701452471644084596518245394696640997658008081565913422610144980009208777951770411114631558806510299690696466426824333194897457880044048517937129447481617606108842620480815679753379674612123857245761523215522399484031530010655915331165127253753701380872879291309190192995073389876813175318994708930096863774946846272275420001624234459395899223488125006559742039445633082290014486030656681574490649351411386537207141717011842771297797285560202136262092297214693164767995796714570567072773634127449062382968678487209268042114723568250329351221575931583300990546971743879708241695524164512133573257942231440222040753567056785827884310142309715375152775799020298110629992769587942191944883772011656757342779024606633519769433953721873431824818231742789799327279332361845670056980359551387224242389233604311928625925405979564842459732243008136665877668653650696852170175690077741901919199579439029800710041910155375552404588461470605098820563357754470938292403967851727156086091974765600134089092862241358771516920475521632698479062267546863055784323742332396816917327170238299723894864640703294172620625512162985650793532675119252015028725637292935926874456901071442972258995293567108622864141266209457590117052424925808124603079969013279065816837558618477292538149046092312603310399000530047416912901912214875319806922172578275078217458116076949824653564075267849751521797024247936584577696034948408437229218053187842073679810286393401808796567456793232312315754542772735486556253654830024870336773098014813669698527698064905925621578908851793688168106717667269375834437945055155187021390028341329437426916435272559495564165919369089838098095356057853363849783986420956281699118786553673072733775320846961049418167434870454786901230734592725724200716523387512740432644099424012772874726208234419711957847596375410891485780785729973344370035796261648688091301229188429713132370608058197663685074718661404922557768237157225259322709218293212477631642308952732109085976790279488233452886734885989533424640103450928430203091263811713113473855485161782651987004016998269467406681593637834521845992289677495215543317580197002258346817418945699482829427575221798531075055234515278348852721422035973356292204800150720860974314566688069683303001016491515854212561238838745134716977280131821123450735940375609090184968425610565354821655853983830806211708498410933978671331776597024221454968062153383782754891237272845289946744433172455909892993714541911148900858813933603863085427485683839136622354553936654049100220842584232494656566693858385248432848673424450149478049977559224251325821521611387310407534568262488465737753916976493922173679749816534706533650624786266452971137470293475074403232197391105395547279925622515139821551991449748192019155014399590111835697642423240853656416557984771969777803948435327606804900985532314049307620460590226854878765490921023886667264218407683661658193663366578864316831855054950352008584488849620261673250111080251476907513400059334162720039382422312684476604389744977540728197120292750462370581165489061537892565472003558291849932033649891436463157512998541268656832950777973259189025352969527645748696327126376476855874931449918777046769289980728877499204627396162186189921653078275245843546278084105988877903607319749561525472512726259572668151210944619511279698153323622609581045426136876471105185028186763167116757460567449877452941526275705221871942432185519279703560488625871116519154021549739287010669205329844868214869045434378945146412073481510199293617063539764978808660463924412031094132452343848341485853088557174742303575237668148122904844254737193880304100299538954047212829709370714241182488241132697590439625618467034299820615804480905411944551348437853357705129128547713827789351412132902330469435000381951504670825952104850694048482823048597515998161203054727423129680886786396915896963897962122506699002772720571941683992261734577686414306469092362039734104470115235311825072768147641003080997122459906736971627697615403367984378168751728536573224157046114410693066324543836531575535218001985545457257901138898393115889259671316239336025952075570419480490732877674326541407134469283604142565782406683146198446845499685427464996402905053257821369761223136326310369843955638764500003762282430199371857910661810647309510297107754312042563732252025536646319532034066159775645384739557993805515322375080288145802940441443505759855394691765327157432502019346282251542353305773215563618831855204776179722366898246713715348205404706633493627170385439584849774219142783401113354723126164191448137191959507001369494556676468386983302574963695630088249249511072163549604546073065981640664644887134423205969513117373530584544154428653105773117399097296525742953531590069776219852161501369135847250291327288428115623320746586930822866168989283831393929133833010972448476092937960636837728516673959589544024080319278153414888440252024677516480948561730628615443596846656637527271357248577204126829609977671581731054715380885426222177942225798289386083862490898080459453774755223056781378396384132400880659785733404160536664190302839071506471559118546422619890843409250126174170953525225278491668805543992414511814144974333273122336896899670588217100067673394445921343331459589085325768922799158566302431671214430192477683408162909940153565653683855196039355294171983548871830160843317407653184304876158898296275541346017085017955582449911549004682342789624221309404841159877467456518428948340013666269327961186188874859968143067609759097279768739417755414664779086110865989609683944712665202336725290654049241977939427620601577457722698207221424930934528281616573200618814301401440724092125533836754755988454756165922175020552447025052493365412382107375123902289851300780559760158117567413295915587367824087504620304229600100338124085005016997280783617350290819214873282922339868891653713499781379522757656963244400949855299296707713714109753933264282817375375286984334688898005272472060078334709650776976346679408015660189827577507990821812736100584051163390272403208002395430478917736166812753102962261159625651536637481986670228229833594951490730669822717883019314653492000011102451887539926687188491652470184559019372400373566123637222875372129440618769432232093104100527321679217257154013479438436486063567224004602086335682154627776273209392973581983128041370423552878720370328401894408404344069396704118184253870023128622753780982487700250085697513901557097757540787652530325102707667682060287951633556149857030872325533469599099889361156158240439381759894353002753973758242960661137923316390453616948682985249401465572831066688053689257946815376102613896949758573717909971222121058803934444382294119847737345969864994452929576472358579677357849478731635918811710886870766240262836644899475876437192836436669296949680602352711788247576947579730186937148530906839010756640139026356308578756866563241290124013169661259536158784537329746456876401317763564140215532093953577831114584549781867729761297082570755809204159414556261383457255339801520810580903473917778459216385852375016623151642461336899230439796926594146698181764274664045942261347161653154474240557785940354587129182840037023741559360783282160698847082228227206502027192160092050069419390883153674936145350494502303302695314111398209820359767616771782731624240224002804372469266410157833437607221817691041995253767339877116910972431680989994486399728053796875961075273863644065575951214062409107747697874107218045814093713923779785279203785283698765927313384380920546883901378430170144038364606213593653931942288028515542493897821335871317375678445978658741962968323754684096318139088056832527164977100217405426004755059487898285900685402986878252554482966960783002349191079659238529875346554066584996963736049564671703197695197309264195993579039808387737451437031698300119513196546166760186507543078661393659495730523738733073572382033229853160348398455298088915407064401563571105185160469627443086928259782446984486305549867246443960019568391991467074910784283544853130088645208828988738726366270368370540914405490404334783879453998539162649848387944439516848786001551783347749463993820338296247449754578530999785913249923975344768085592187703632465002627233601905449644756136947700456717081814738455922600359533683661806500718859489978722089970130489435077581584202254881033837326100015666684641184460345539471871795235070173175336161406213474403564898520461123565001135860335731465988100057479788425739486374659552508492757567273248480869617128562454152186967604888325144737501649440114288313456180067529970962475031602032254681382436160068237117333332765961050143960405656266423853518831399695446406441842324287402817152717690232465870685104279677450182428397248067269747942455055790465648364854509129757732490650879767112147508614018445692005286469734022717524118025595724109741485701022712290448904481435602666686278090659730319761808847896220444671419605205370102466821858282319852672139651164795485781264894278878208951673060581980200107977918908564355814253763347092241737207744058970417806633035838126181628174647849074156891325951296417302493200038628501014635276254647449342299254158566414793249557964316656797211057995236147400701579348377569874566814081791312520514816864819229806642889677339709482703602208555456193012569421449896759313192812611714001719231833794339018239138744381815289992100129139240390073461829321483009875058933138399657999702407788226808967566851189680647470250861863194124583076434307040567436763158144121454150386716025207348818416145753032989158035636501992759658115275040787818217382968911406911840449249812942298783242027591247495386383646884051398300961985315750356262147730590270865970547606687117340729631820953910328202456174491262273360397571063101890015506913145409253584194061542662446608623433352202807785734664425127462682973938221779764258316923663293204205253846411909259906757585064498120677885313008172063682990092847221484042524915418021592025189466961165480872326219160834111583040096687510043858612007732584769304330966767924353129887818077799003984660146183789987956011423649354546592558356965746642280349682747886762722960072659131405738912521437397402153425599745022379952757641376767687396844938235421498595696161060105107296733691223125683854248691142514236086594628242420400907101771129717196477295474307524412379270387278377726950249230324592022298452948955965790731739603604813036677886791881457139887567320817431083884750945162509263633959966150913545363024038361015100594845197467564364985571306837605986319504559482014491722639550898755710522558245195467095903730780611477313863758522044801023659235614252053245671157236667770050877338145500089538137940019660345219970431481673266790626303155876203347299458387496052426677469308811324159763786709899508003200860758315123418497910569594964447235554944989525515020761357241593987440645967298927657595095435109497163825296785345734175271665553304653709031545042550553552662326443920432490090703206591006446012486324975453548857038211442890834054122185925887950731504174371968686986926990863294360068256648169417032851946379104319208859272212569572600248044350454271534898430100896390602813107931337297365220798013738496123991539420639277242175629650288130329460009201617838825694936730950677690929022249449799725126022374532417414774286611659700691420681683513693405655404843867654668918454318601562074864141160735207153172974232811054704753901641662170488588669894592822556962862579381288869554068340599004999547836051824459387893209415397864482405113523094151422034599853035176553128048809401012174640483760373644918866592758300460289672427310261051824842375143704042153111786684120859421516265913842523202388371441664909391798069201009988725812899634718787459556585031811465986966044638647414021994447511537318080960424834340401946249925087891940620801058120522011800508807974407590434119322821721702567104420437977806841124258543464529104573278178955067442100949119831465914551525474561423993118281131261705622447512120630610539558821942049068870188289291129806369415122375857657835392353071992490779073751948769595847611245117607420487534243058205580940766573277979197115469854607050746353279236920685939383093471685907119974712736831753239609087023158467420738461504859369055383588455393805135049514828624218888824688691284875645513779302810181441845385096987457560823539393740959638351959257780915997537745070734071341801850601445230865772375191345517860449955676316081499929382048201592975685010992974538250372053514452216711325682944404934361868987560313101275981013940278268236350617818885835046895429276374457845716004205028011215422841833073769155691570189762065335146906510821412093802712131144097119114878779889692981053033608634223500589141711277761704565000815354290282560549927110839859069963366495689035179437813481372920788192015048316581002703012701282763065874930679975303789017537259619502579171507603486154899446068673413359512298328342994147929708949494795527890648948748864528725864162350575465249172002909829282834810301938774538732480256562047238356885421466134846870833771230032747280775393784795570845508006876072490645469626721736645236255566625237462190793525654343828863749577008484664415643178397640124945891546894380596142471719790240632669555214434427658620380499634456589173498659968783729430646893631272014438425002003352895800239234365507932492278081410142977525776527895573105076897278942126417938678308199847598334138585062823671087447049237893672373582789565312944851434202213192284570861451570334063705711927017702959671905482526242980544386586796870478295166249489670716370032703191675026291625577553468206135828254846235619236056397823603847330483162190121681873837106702778742826296336373258657596578057734593187328526583730215088220547046547658480633347748668884839405844417303963589189782639899231209704424172014229695481467075727409025557658088887614263547655136244195577767614629579269311215691611711966914488543281814836433411153578599528526145826978482968524310852148109616597564838007259782997119984644225657029140360719384370655822357323605862580607779046366197013160212777046974893900613818964465494933051883436938546670369989437829410824019092826890379064747611398192645306119038877515677421288742639464362393535864982149013853660058714792773916971138693416384139698031967220587471502101724099461191751498802223854884198947593319802415886045976448320778686028734154766968291942711919500441183128687757288779524959878873131999331372595523209432706121271686102538884052647662894305786726383610181380617716936218874370469819577805800922486013894506009189884273712158647591029637763643507249274987078575465154045535506697297181945522241207785616837123972970285828500539341745897750484788298234850047884607396838977706596804104604003224519544988488760690266763785046989038451094395069681377721499433986630252605447761048378869781302707640206618049088777066990180386661802635567509546021833061504327137327155922090894617397079052631677568381813478076933336993412236086736054817522964179070175978352626413930562207880640903638613511757622212863928570995975139085230993332735823105086760274620617733179034301899730401810983582848891779907224057678579197419436229321443389587821113287080942615228337195129075511696742995543676132200722482453487790358123254237205759947482445413199865351480814470407162280975152546568336219449094433137876367815000415881159858692209629744656584204632728081009153010306080641446794786844542342532029669269620087839136157996232254632740150053961696437300694884204677763222235531230194348562888060457894296921680499846994091607898249135897912534959347310300226908631882691763256052507429065314084943252787605340092850512605438129223297634766697915009978228962258981444099797395621143025201700649239547368130532687478695149611666315347418400623328183752237305013783412785648687277162984664503387266181692272029129132432962345171732712212942896335146818882891768808038913296340961999492779362828500398293514396040877803868007211837302710497687090168731060996497972217231360461973101110909995287300818752481545981881669012951404325324311149691379587659513967462407951808090256716332939079786550808745285430206776345777452505254568541444102985892366659220912888899882653629712718991180241116858841841288724162775248274038418025261129569746328841655804266004322233969712510862071216338159241307050427861884014976047372275394449709797462070538133037523947374880810223521354049238329910740853171613806186743145327970458278834628476414026672414225619836251187133562512196168589141970873371140066868322553496254752848803342039648552018482083596529217550618915657877411073134558555046417802784995355683733135802596898894719386297937901340699397345347553838065929803713438843545433432482592116975424981721199930901861435583189114072514933445032059954780241160414937154437929642841446631095749591078069496966883792758888275903578252707511638468358452328601204545297167517450532248958221821700937695994663588025396711180359379355820977487534918774355043887409832467329066455593365912634121679971719171304367327921343441131295955940305207358447771837217609572327760942956963368614580195988613262342549934711963107457345434755190211391797130387892755097860678282418098089176991870147543708521248267722554432456838805251302478733661346754870113572009462952155908968166855677839364575088827723137401392019135216814386164288153096561196444356923219899533311150842906144970332912260484865763144149367492518095870059479787629448978417105564923360259914709263151397994642248196853257648040285971115360625344246496984807159968321567210295718617283003784115509025340889404967864510537165471653603311850390641685645901523889392700678927425889138711591689059584353633971884749130795107613707856816481261597704007016764388182465043434433657433043096029244172873766431491666972738662381011156671043940632074089353675177052075772830089573209390021117396276370528981565845298516264858943302578469338049533425431896167976946543109477939294875845974532481857347084450527177184998686227860311265778345096818661235722987452502827752032040469091442817945182134616327642287708269270572710314377376073337638284134660125720797071149046337154673818974699216065720700455437786959547012154983436820863492744366145337372098676513415592253183941508356765480032481921094979926896433221616620436262000018751156900306925562309499121293973233443533238645174614627280510195335946402233351964163459815135247173334838054162424990606623789484981516374020727677364339038553770356560705732958514046445808435063332620323601371649321992973380398030793587566311777674310578250206660797097709161508641427932022495952919804618910438689175400345561928927326900810870445246107442859077980079750504812851740185737666845081332349899039986526413715779243660577739839050057821790260772412092274213697705683517059486624193507424306389770022698608962496854411204280316292764851042668667560092540821958329530594590736693791937905845746610715694863541574786403536402199640738452245108897943444006413860137089681610214000069078008056707851434221106020071429394597863941009353011601963983571240129221277518061688651805284930971982488021463706647859006655189006429008830684442859452449020971141878671167479922202622843740393949867002415130450288627443184421406176339145895053030915050434222232296428990933725252426154753452267485898256939477637311752087989254147500976195527136840545299420065397464772017460261994801639562818888158072936640415891074866441349872770480884949794310226314734308863099523880663328646416435004457592647083306032876194043659888147819155051358423051090051077633388061538904703828320828952238079642533946201751899186276155868785811685067792643604268391378310607496030624869700062499203246470213126829512828814308188990465262764314755231957759003566223386643997802666899315257692313549691652918630394110069835285763108484885184012253808589706671015536733083927722200446450827009167266997845456003176610095730139191932037660465570095921649730801533280534451316637998015305991517570999988835021685889482367416994227247709974118614168566048638456505731626569879497622488524777107525942634630140705428906959133093232087762958515796552554713867926974081247896306996456380463304130757875225099927358126329244498834673216368785360092548293318909413103507786617827114822189246981201102859712080164934651773542093063442870145199801933013624483937473873463441721652734722566977345171086842808908952957906461524318426890991492072545253677135509355232336945779199316998816000883087400639156414579045717405822112776504783426023389008836118265198631966592874669105454295402007039073756709451343908472220438018014452992459477646231533200018495588791254202345697845148523325935780902540014981850765624904460175262157467168522359836465685684976769451183328842929319378744439198261281495040657014611722832224083770697356696601059563974582348478606038406414668926253153996085040330498733062079679820151616234105772120412516441835456775926394148182994506570240544551337621573407454099692903107051012025215604521145766326756394146731385350599607691657272849450168388194348080755438808582600159139787614595201040173288558135657002514073757174872334488858359248921711492376502778099601108387444517960930889579614818360504918008925569668864168458907889799128581391828911678653587063615832081830986390195878678566376511003615230868157535387084745602058724009927099368670369907801055374246933247609349471164698028496327730281577245736820807184827715539478715089633755423342857654849024830216595147844920279324556599552945573591141158514256504154556955410032666843684826177693616836341649260060973299086939414769901094223503100536234207077842138614801989541952667529874957990726802926089704824392644764048706817434413299903250783901984446177130995026497379371859576388111828299250200504737927276168899766795231666819507810348505752315501690742845008602517653472167920965777199593624417883410860856718427445408050307787184228451975153795166599076163490651367266005487130300506477039473449579354382732141016665838823027377674684141805739901806373408115511581938115498429942058849288575831076876683742786281856704235135687430346324696121738059178955531349870584393705041162807229820946870438137858825400470098474961467528524498193228038388880403423972943084637829742296195454293477663829978645911520795647402562684114668593481107445191151021414587973681599571877697337353999799368339125125564554842424554693206092366028450621439947407182029322814126799207246267246197327362534157601801710034959877864053870609421848925639567577343081766673882504810238435309770428528378970695853302881134168905006513824890386566308894137119610259953266993866355871571983980074420087284959865318649984126350896244293021890028604832664034865784501852120531446542722007856203388083289008491317491020885683075731213805414219429731577242160081586681073130475594419256349351171551666965413947785082605623512153230520444981845934205182640059320514706028969496508760026879989925580716525796359380005513422458841160519381575661159697597679287155730609655670684888707191565563753493293316828466386128238793891372885104460039820020804769638372746702206260921630951302871485595492687166719563337877039978013331221914991686898594730087865574541082410936051646347256253116576352343960577149594774144417411312723604996153007100592765227399590877714315900960819523606925448819142481225939743760097387049145325399940485410975709317422866162910389862612889801046329983822661951476262108780991176898471683723262198428394416452224194908559842834292571972087425126270916560860383303973726423425723109806652937988077774415000339016901647813267955382500200316866123299707095142557380333982087410170669223396516333596254539052452338318260749631288245718440497359108686367623406242238851082406148078677159533652233009686828609154717313723770972017866469636658930282605560805459636037456384140199737225051344070907796032483146432090414269616838315828298645533048838249884102114577611836421918557253203054791237793595826989672254807740739811696838612830267101588503908032318530687995528173559120463058317851741768894938609898940737622236241154854734270979021129526326562346080045526437168358046332120214477492840634978310891094884447815171219134125891383931083551715797525209087699575922740406108750390024112040218866037669880092289486767156946619314112327455729502464519053843852120664088294477255788355562461478613661601914577486441949255704704772699902706968568435193338521905767399192685714293531333242534366363065701390354358538046408059451123479784488345017570925822735398736512388462970616264313972382497661820261954464954828540843714598979897765823635447499851311550923574149227577249917619381528240447916335235327471337237727901094657592218064230091288704257575729508262893515446684762861961672669095393429624790287897533192965033574966398301229680731269083863395446181631145487213753808111223942227753054497140793037696495285546828327311982367908176592928684644596422099704862153747221263743700683171900427198031607609869202902402352532653306704964151468791115829447671280794212504909243606975544918116592658968258310476606917141852754826865097357299079578399796718195903049630235310871743413150015669489533648124208070885481520903309637812147467257283148746039374767778869965923973301968356515581448564327729224972098306123999431471912523784065471402224948590134917987299292090587175709306970924632865587740555879744185707830478573156081650010160718269757739366522357615210541458967247971668829290420953027279509418510111105021870207723221379232350934305442797137073711062629647079645452835567245287900337309323358935147892312127012528067550767632470573528544447944669878845733709041762945185061795286304413599199358417905014749485721301558287894904099126800686299467995155825328088893561589946653353162034075204917953498063937415924838754344846779867935356159354279622106825175278021242456139905461774318455755566929263587143079407413182146305718743069208560577911687626462699954098203895764746271894361008213671189230128451892316715321384182278916638538504379346939711277100833781448398753030740696087988028020340716739069893293406070577298027716097316535148941443889341571433155043772660856968324231372439857623613070533569077305964949545341045217960396180515038637277068820578932681983238197365277374984763356732893908275808060835165392042812458946832034923232423203984981974766989153479678234803999581086278960853214345264665320347329948538675527991624982041082291085913596031657974906350919565717457091683308419274674099110903250925696905936210602069252198836930647182476362859951437428699441313873052321602373684182070494856172068307359998047446801945753921786013131396971809772597456797754521894889046857452169128212317164077906570420963012977810851811270273248214653347433833801371240474841764738598302106447723981634599880122805731189327499168694233030958464664776475640560266070847949883093834999694564483071429154394013956332416828178415566058666608482255040638619752956037592739502384471343039554608339914666144678189912664163824085332676323959642233704273996284561609792475833562004481190205829152680469352202959557386181190897245170880215905584502099267026368243896532252526491663351411542669773610111771012354446399329959179570950165405329874474700318208724613725379718608962197418137753985327055333072844040036568102091545068265227531632834386530072503595165545803389505536513640379276078750735368911401970029116413787592442248108493580909738506781217675148719159895690700331986664898432975284877537154148148495587097570170814390488451159920909514913555248896585650421271816508320222177091888912747103658638658603143750727697397811808698580091579172753367602111963723336310974759559655100435777589221068225252672843028691533770285038580243494978961900710937294389234080375292652751083189567995984856439462066536896161481159875046739403835059597846372921324177046682398983530761062271257189270291115284555059510063416941300885185926333881569223528008924163469645889966009537157564956063790681774395174573646437741847374316931288185476010365503158545042367642463077710869448033512866229671863945115158552895756417384149708890804745363816750414552918075645303310486244349839666548602417089956523700427076681353274080233834371232352276086451658598175833070874116177031858516134221918272197433161903099682344243901273347830930527825997990395764657750079307979574175593377485474770719429746253456316929345163377019870090319114379785922869737248239797112715667766224927952355518156648434420384872623876716789002824287122994488632133964868410007599233840813609255461567769975901022570594957318553196259212181779219328429840796057239190414034589110294464746887787853564658813944659171464937857606182776028507970555871765983893880845041585258709698272492238188176065803604785252483599221602570822990424134673817986573825331064368855569016421696504104896985636589334331382463852749999349821539110763914354465959230443275208653411005326591205161622809826620382860997440076473052492565103133968573946765202224116954738869191118716755310754660510301390063254649492936796667020722162993514341739541080357923476834772160891731126916708967045097062105195869791208269662644130378194027738935298171871571160224035938288848977574221492232111004021233659593143602199924153796443701657474412025087878524511578809452778378080089080746692518500923404327056411042345396685493048026562850596324644922276246739717686049376948029499937032179546763138506216491129010186366769123435671558142400412535968177769227443718257561449002949902340579202842743820158222116330671711077852854090502285103997739248392332046088564058854228567058970748825900967641085242672710197973813027051384210002699061821310293792407059829651120330258581521909770060845553459704039551539756205285706998126191272411247627607601005439597042084479948800737436335924345018080832701749031437604499580755235843339325852410632194859018534669417090749298335003184177776525392411487006112893464037806180644163553915697835865833290436831279369685765372984415442092996314920015184672144879716067519155727330070640687072371938468160261383992179892139892001492671379779962381270507775838294887504603744829018027819184526961006528198514428208548583805738527798532790142073073201066462601940805492883685264623727642746599043657791694900380555386531649287150588014544848546727023336575553722893961925827945559777239560146693084287702004487416200905126186495379741705500747045471207177624331072142363979781990666343706381176084498236957268192001125868962044682516273391331414895507340246618829051936317777937451360633672765072465424894771156273681793144613778189714682184037871875962757253288175838831215677356785071968413224025284378933224379036153148789800803724993411716437701442892427363013710952357153978588641634846076413227244186881184304813813359230763930106536117520105599393177921221840914869008025198445160388785045456490668423208333186540391717005481926640741238352489503333824810646514022014279396528133723068373775641433363395753148992616665803070279327319925722872156539668714308750518770561486682397929855653918034746322650708065050257994416470386933764273772166850468663917041032026242086786809297707901483900538852971300952266112608939572385546139418711125645166579039053064808009560802726491080619438333057967320828688149677752046324163913946626094393434882464393199855206126692615712097102692270689967654210610102687609719094294936923976905243717011031085242835573433706157100200379764723346288698908308231276237250146076469317325958515197993876217851897646952369389812666187489545788504244554564969992318228829738471945496206071050425151208233958767803093796000098642466192750316989771758213125523199696972239668995887617482972698894528587019733035758311340389889668627760100727338806769400111691547190857431816665991051092210596177522510196561712979367015624649791864213944120400723459844858084431699203166227682337169949044369672962373087965698809614384766258022006763116909530511379589442010090066279738307475429832636863382847882752388873221236047003276010177175945258969704597263124328599685834576172712572258486038845941268950599272359257325010789012538308172918202578469792888969153324137552560335998813469591856116947235702831340128866036680333328846633997563007343674451898239869556849472924939445404903898008646413812918952576848337271909900462820647523605633770700974750147331386694052186046192961463262697755506244694918256025501566056166957340689216757290104193275704152022727297905293333143298596046123369880008153174111464322834707847210222333253113764187209980119845712437698164416067690387427118137125144100829185605868138708503539241257923501283400593617097036174013158675552139341638118933815226993632669934481117678110094404274494111585470443082527692447800478445177388561910713529088000209566820184581624871404723643349610860414838728438418407551494735450659277177324301420621853302768285070614712716707174560185598538599136093225796566937921839546463787535048436937002671157886774352512849609016693128889966606812473088245166949781987135831258551426864030348798890882140818961023285886137153715122528651511136301492433533727507992809012823842215858856168680825314168726591537705024725230317334863826701609149227295858263784698551623363360600576359309846170932117749247242199965382267124253808659172605292176829160044029933345202258890272936254510583403293534865832675852200032738357679593544248690981031905730677034419656070981603835716705225624294939832283038169808300141258067393795832292781851962520067000005343240821881429730216411626489621811517826697800473449281228995473290266381056760530252666757719222750802891757809087702283090912968542676131656064292343456718246960898366230078213894472092076496159114048610150444299886782319760059490993161447549074864238229108525445414732521923676724411100169590847978996695309752811061981359092249238407475763472310530976118379443483196229341405611557699051747847792870611675831107444014403205150292076679960997787261167397901440018736761039863743761171742014037042032104955262155717494693881997610275392218440574934131466534506490899670241638555760025138936819390123764581805726911212269292579040295206087217803466447635376877609352903200314936417400143502813912265219146513511798206946871906083513867768840312156380119319442602870269076839419113439701292736624521264301680951654660507861916882329875419127637992040105112792677328992867511740924303143224599674935791593877937040356911204319857839669845597011354666064050564921000310912774130667474409656088694733698705619976023432548805431303471963418681778723014344957494890040580702537130133018925356424337471172575554590243667878708927294200579559241817162442454375635544623334331682608688021376511433203643381725304102284601970617561328489445465411041687003845853828915732982556453118742095237173315548280097771512742306540222792361247489941411821922082051841095573364810248675781111565765984318893841617477070201086511031774736913776925210030093251037400633616598335745302108421889034188825768781231891341019391536841352962482094306164215488877649460622163589481595497689827456194045657282826663267562856960499069094884905023818235201778903555004958348694412906979873881409941874422133207846951101797203263329828878096162587707148560585691778297128937455748103020985036523202669364214503466269499344839055766588562243493784383042206571916270393087223970762378658427500051179502866087766818042904496038244310081498205181259531368432738549848277630201832598741725462456866432369911004169987281666031259243799520445716120193131665728579667723010095493233643144365941084837611176053914500331454857531081215164594342878272474097566513032422617694013272629802712446867681311330580773922448363189159797072354588608919710858613386535515549706207632596633499367641490114443845061741990076382426917172426896676483175689708838117578649927031228379308600517254671437592738655604860604388522584405588864006181951191850191444526105750515629275835716106746174782487861096995332067319179231384905330533318631531354645127969664046132726374289934506093480959434332154126494958796750259775141009534353912132549732300157063455342725182806997910482281101286837572340596162627384603671414963508175327493905926873693259378356595116055891732155736350580155458384163602536835126191112830151477651736990035820332757968356813398766738664046752906268794604370310261208658581867710855076197847729032037912193742863525935387738855902443227362445869656711885066900636793619595869100263997312709351117512908920196297687950822365347053646627008181487290667466270398799559241915857555628042178587168930695479793520977058180822573042342091523914886423426989739900470184788182062655349741725897788366910996318034705719227849460139035052130950324007833260127855902717594401817692982281884578949524211828843122324394179964655920507759758072705241794251548868841076950167227876852092017670250051174592054472531871738957220074575581060185137012334526301644827232199735770136974754157063995630018326175745309672031853914898247490714377495875005238771681724822580199254493937412452570942818247829050862283311923351978902553923155571132057158009913009908514935441106033753006723135283403355334505278950023463346337300390880088368018928468425619136098124050072033544440836311242078954162893858094555193620383416721527002476172307081168218354236016330653375658779058148388627088244393174598576626782588047408419217789958571889278720078619172516342616658077190403778001318463072406834464659552615229975299847738502944618377421756890895228162286466890271528812951937864501214897681755372321096307588322101328083660888214364369193121320865091330415962103357051342487923449533247087428613325022286517494598240304374714629874948127333602357966092574216737634989650065479721346463009358756624611141657531088232306381364553411712382176350075099115776799470877733325086684265920524679993013677823688999288954463667176722783901983945681153938963169104768854089883353325418596223817187185790684240169574503817653436291056540171198026500691968814640519946413467098072226579672691376485929696365121917038170406788535586587738678758292074087678554041402333356980405700294659143229762222689342167552214522866468692521007864329597809050133813421729388532789946548388915396060792093459671132461484228554280482867910419895773668135143500569647734682569403480926743833646064390314442097841964082684574018736515606751250148873351194729627433434684932617904966690854052217490323556412772675205795985022868160843818364551044968892592072701199170225954893005847091494730055637554874850984242727480689423155014627852903692896525178129551242830374655358708186414322163236196354738784562718052253407484539645299657408438562560504917616208787875402139708978481182951277799695994964922929172677963544183491666259528652675087637453791036681694998795396492910191163744065047639109060051707701498772274946003380284603424535740710442331318527929941234672883385208960667838593014284061015878636159280411637310569986902956885141701942640720550567858841937960537008257398180627729702571979593527261862032759898145453143129728959615605159125515311021700881008147894866018972175852202751812152350561456034806214362077058962424358345467445659309514157853624640681586098557958558449703302636787972378972520200041057258491400095707056701064575878521563101726357648156931681695595441547621598935440851507020662133801435093812686165912602262681438328541738861221521469390423683972524425316080479098031681164567858142589517100921856972596545079552313925390678826974966814756133235190229687668998706594756513915245086928257157355929409700097809410617099952647779789563795971592176704169301503122589483447984368901209580284722520162929152005277801016733736828764706938118953452191920742851569421384443168890127311536537557631391924182139990407756701743792657930724411992437099283388394803508383919734600168125920391516808240722283415407670739521883544369993521130401535849338709203571375935079551118886692776413801984172165564437380143412981799015049430876323986331971996628377838122660473743284777814340627091206765919143095377011298320104437373217633478284659870500653538854817548416237783287334166974668737505613103830235948722775611911383922252893776504269799996474813236933466727178084937849538661725062175689257331937745368958337009667443436186516383627343323578611639519028177235316255567549660076127526129052983901269144296980205372125443401003734402430197479556943711288227395498231825800675378861596786384505366246519699991778770714579478353322735632845395412048239712430135115220385721869035494326282925456992362517139571565686284017579199752370296906335642960597064346009281402297187086269051918557137465556111903839001722172403539650703954744803078295187585119689880342404878316657591277706613407517390539421218676604096874192041357232523317370911045614421307902790067084759640779977989087387331653230876964595662906180767825776796805888743452352749540166883437159223473255938182964402903812100081146342729434435007032765661224604091605059403128579456366970583256380352951361702839855449530247206909147322365286820991050269652647768139387766882760492614358161710061987311683723234678049774877886352514711345191353464499454306666093802672120635440138240988493407776144161803193915205495467060769033967146957073127525516138189575570831741472562432317456673820266231783134933843997866133982565909771695736835883658010492813925775969173493834528839370856890413192785298213889295987076092729558256367561362072123630486004240893077064965184544050000451263924277639445721643970338147027086977467883925988883075321356282946554967403256933720419648533597177079074892456673539997785146258034048763945781621643993179712332235466212866623357396930568913946811987944967309565090186316446525106991445680501378867567334973187751040594367563495669540239062376409854534201698922886217903850226292812210185747914536550493560677464360231215333327529232105149077362837648145796094616811726453792195895083886124610907611736225818427432625372643251927592074884476990539517888735646584521179157420967720574310318018697807060300476590107055277362579572399782937575266131684272166932004456783140243843129439688226118304499295348798102726421324851450456613630131082993482716327677304770184445937616493483627854893087364830612998388849903632300929107268101012676884531897379411046452379343946679604666525263215904163604884724360023691112364325031663544591624190814897577722542181415266557004958699974576867290275004368829737739166030781331505993887114385410521367167627150797745883100662630870263552986369364174268834735162671202760031024472430675521744876587423920297920532841430230861820801591911708180782692334564774650988732364879990565565696491222736416236291222316094840029295242736360851448916304571454683773237292015408804003936295626744696467866201672665685931243187511924483282489967197722806052178493007570768006685919906501371603738037220290053146610921517423469588087534492887584156566528290023591212957806009013231811622835589459943652991031105723422869722677772688622471824039844596668333553551674733552032799680460389688767087614521530092643608671469632086681043050666009431148170802968512890475379150219359007715403510298371926060792930858666213699394385591080596368136019268393100293428686009144873916898226311889102402579164921192853137042971174798066196482975742857421101170577945404011338463391797051175440987938773535342971570499649924368943540692383433824691615746601260830928130139562723031423935151206342512576965339664927351446954536349250003241637774449042624476328336315561207378751549796914918328410309833151467658163703900132048501861102833952736648141901780126303724708334591029204059142817816823681539509976408873117722125581519020244369414290161994941226343773017978818023796196681198139410921070969958839189708032495723353444317226918896122650323680260329305836826414558710397085979045679140566685098456352949000403593379485579828674955206266202112866262565880700965022798577066276950857813640615667925669359305602798123121716164013383186332695643310220992539162331116025858562684395162541123596027296236092410917940563575270589615812259738939895250280114501671133358204041234333009726407132212289574284756202817325530751594866977433241565774155572907309937111620862612210707091817334913257501696137509733768387558900316316152866874796250683287348111670720587885918936184801803444912317571963701783326895078943088663064645654766816266222608729498438807711421806076522082014439302030222298805075688236013122447176868183753341258993679431852078169105831389751909334362470479060808399889682168408822301906860886042229778241775326473654779411406851565641214657745234492806077054071338126734403986611755238111627052736583435756103433846146655523269988624910678597048390652516923161152951848324832224602086919506531060819228648903982014275399712302372277228501398797596682345508835629315529188151890625134474950702533519632944475196343114463842495054733137484455871913190292499689567342379934780934981127733292512199549670753256860655248190783765210765363365022127923113359597976092846624410266365679840850639824643843680748175698140660684148155199527793235276528407756530431698391737970008181612117135209498731335224734271611493916057004815165453159691465627317306269341490067279777007291256936219600660485300829586967821047648631828694671797677850223354818121367647996802713069787924262625374932420365021001036009499702639995845185772391822050917461498718155436184464362570325523400653838487794176139227541225421528676051795081303950068691938678052827375178480063911281899568483293107176750169964649498952856502536206643072370248955611278130825597082939392640392035184269575991067057320310119090333716995439314903801560926585482115978353485571290716777674380308663962421255359852374238825578468866913541321388419387639691561082458488307653529709020107524544569453847726217792964495092522340687246248449213181954412079582539181247623330648607370537503271261531445365233757457843676190707296039739316838149495577712610102413144655666662167561071179665672370916326133057786878965728383959617641506006195763910204641904009502806692027974470178793017687299916039752399956471574055925976695953696520761778664056259217841459727353436737132236993262348009830428578234524464888578315316329268983735976619541403524152365498539375209928237735680252620855456321284801172905341122392976891019193920728177390260236026800170526699470297177843497572490071725504289359647488631929372487608434479215019572904967381723004975153763066689306800238783042817439403288012263919724067701572690942086965258595654238643719582164390046504069419363199658208631924276721263728613906417608951515158339767495141018001106993256152094905850768016625049166148524051675164166995639181389985999961922362312230873115523187412058325019311101492077873449466241794655644147374081736049141063021632045235404580803594152063549552223724530374782679884137606390491948235369891112163150010743558258310208522078924671037471471529488532511126998376791094436998416192479413984457289640685352128358531725338197900565662728829884291810881480132875293611853019431244378468696691350117668594997634190790363465719432754703765030639183272819401934627533006945034996944609064837118781207592918389657243342787703898686294385556921757404682028102671377894149447925491876176289528012586729744015560819367948487673286561980363021386733188755314985612443981933578649442510283837319668596606478554099439602940600322484823136986400842414998746246302307355828972806817070784203352371576748310387712039727350639682798828903997955549192108903498894471995869923597661966993671779119925229961069569085128281875426142360014434518806687842077352108158046891534677074758072839097918556075331661898394289133734376077033659214840493065531168004996808035464974641657054930786632506689234019702727921978569484225133870706347936584647186878322156823099310225788865888516078406999644174379764705035325316523444909825438601984850323151600641473155519692715780739691101495803917801916093257312139994957746959796054599343732007271990415011829861598699962891822234385264278926590782132202773323355574639125370348599839963318504127601369336806522787142554197414309359172448773193247298994053566070683297731120573850372581592856419901791548092164432929080297661500882448480939675706519379465728237365678385603650728747515861785588097705299412624239170178696888337694384565268514787142213413888870710009375468124687322322819429905479096988324799187671047627356421294132062952746538427563359339080165071871967751520757051314369766576606685041590678442739101197106066881609025939642383341562322223608648533221492014948543592017689019299639281599574246720018301390394675866386511533708232753475433453714804392373914575867255696202215565583239419591892726884339682141406055365844580222352926932039042258357220985269763466072046727663222810872248531456662690941245712693375649620750274626117621590737582901922419715058259201234711893695478305788613128954230753268544458137133872787607418336022211961858838969131741952251005056606919723711617285676729061840139673281619284172152298333928543063183904606237577787165269045391133772309936090806992984942064549566556374495778945217036695009962760023139678943019002639701046238658638678290891854185868210258296343858293392152715821237352984901941826592019826557458027411891256695901571504232663356988868700529972560819459665214530018215592717896729491451437506510196505695662621333211519376873117134842128745809711728671110631235235586542315276374441887202277638125665152684074303886392567192183815402853606994455430367683965667882238115088549913908767651168709000484624704246737684838750406569880811628249720474221136995044531944791099438916549189967687158812620836213335476573569590436732344687923389821234156956004804277233079376807711734628549602218752455891744108063748127348955537160050958919663638621604518012926609497316356501240615415661084227363261230493924787693916377194801786893287237950810995812238786448433999792806979789758423443464539140123806090975798361104974299414872600027914104092116007628368920436906181753346878440190302287308691125360162165122330899526609861032539415292250572168046267971121194813816535060519434072249094680635009535700663696341275309277023085061241741161130417546108305859455481682554617159007762955419508114030463038263785760683290306199588420334932781308655572352209353817308592297904403012499661181075669850834060707407142035450775323250081765849529714803239516404590747521006432203417233963115092880195266749047207177443796062883526303698100699163900315900936868205307063986385239060007829980391078272112214883071375651012619316458041000045219405916853379023606812871823780767452167150111949102909585370673942321041199733345783250996177985966233946806072240334870720933511627827190974887453103750618715671667082544389607162562282738378050812873878125599404009594023202032776240321743712538436688446989785053562946469217811678100399750628944078210742812079083159054232348473753858661162103099902736803575154671826014824727875241310639941458902396542921275159165554691998833854497419702655189083868015454136343506196441237155819306793479343559962616878418719843090643940152009967743400848043282285341087908447909340205688639572607454597345830414893432728908679468961382688108687948292473110684437760171825676823802396080627475776123219913160659210383609815114236056025531809694306920611943381074140218499369686722035915744122373538595575745679848213556299225551053237239959118660295941171740668125712769685389720121786354391429968914428433627381171703344526646780143182996780248359540902661423806153560053126930582374646243812131007947064537550808577751720267693927739273689191184158773748483425882161517908571392417185671327047939916703337168033867152623387103777129166334601505873407872257433441741303747955296942859303827886736808709000514827325650907618694124417798530451262134902143834109872671744876787495566627137480748748484217225011913641722165978320096994161594113522314884411825903990393004240229497743215360029575126139524866370437557785423249717510957578641514973899823191229158441892233365974276271316664320864528036132764421230447919556756188242650528649157324557329000781524499348703065809182057506979470926266003092628416074765017250383807979528873149197213244496868542644770769500911213710862071045487600185364927787226642527099604837658135982450253502276824613424905550507347035667809828152833340801295891241339536209309171569501280803328718303337685271188276831118288007753530920087448477251985272496341176230688300733812123934510299018867942590590385150196330708190945182198401224066024760478510966037212294643702976444152175917240090477134343649697845866378729829906465071338485579750286986637283785926982344942911190379665217727842799304684698357634084677394598461096296565707440599881948751540290083177689114712507215824163921051178538997572385733179314876556523917483070015807220656988383581506562176530475236871019105402432346313688299640560220170188295279946948206546981482445610755062506724210111349718081274292418530763801178839123495202774142575808516586133448497726482803971330937449388960093602952562649367402158484614780394374954153732862929861969142638350550208462803787068003994357523732253950148915030207175961908064728467295963751945221463208607238200340251343872923071184810733070376414474433742687571951747276511603991808185121035478724038245032328255047952096591548300279057478814706666486521520605808513802131425598449492078264659534651151617811164598279164603436805575981396410419206461309705450011482017760450659726360176336768571106513786738681181081422152549575261266646696789943403515974722621095189529639749535779888992465221534447786438551173017767410598585289151025972392679701652122220959440438193742923725410869033326533325752412685331569101985589528902878298039389898052623017955326735927810827237938301947249818960027539283556498972639179178354078766182604144692831535443047763842788850541473245477359680133092106921085117462995283475644042354220908762607501325009335662802922682565210621813094489205191084448070893066251754852885830405028225978730827658932491710299351760843692234240599976537472539224856240906548536659873564149488552382174994641688346606746633996013011768062943716063340424847413319288089701752757745322357210856747402454127718473211403686442491020919923092960431037496836699531796854993927724771266122727728432676147310589847234858435183676429494884395985894296210323903408895935635196482971025169966822466406667607741831439066428030643163204331911309231333407087243834234336968517041315891578287454175653224168988505815565094268702544134923536977462514197196842923871946520477926292516916862455580290443479717649418242981874663132898410754992372173454975801541675915659853906406810619675209694896613332157248999599469530108113277191597940154246691058463284148254942046744313169486231903533428375794895364154092310882198630821883366556690990969191855973131584440506550488073537800708608937450681742024208517101400792910360058731296347498813855193899788809356853513479373349711657159313504378529322620530307967388035142661706827292714873979419484451505628338310351795279390017904485587113946260219739205200272622553758264184748339408790234813345402427980446579805578299224625250234525719784515276487614954585142676006866421001307713524604695892445100993175885344235841709133994730734804786162428200746352468401228019873513596437038945375817497732325748926589061747288483085861542562129518095497718601518272210232386386104484028659161176625114117248252567135130282121483499520389411643131990364236199614397922204623729355938678620780034030114352384392820183787583260078059010908876464381709349534105131008914591922759452539292440466106509929278065382989991324793089822940382085963712560834958413645231948926470213829717452497188028285576243230432186757754851529444921999703031303688632695777507135040770769489035603174788384182200561337771192835144798780534362499953547357659272381781311980432632714140919190960795675958360131151344183454959565465530834516668804812124344481377092544435788683119627709750417786732820064205131550991512602697729895909177278685818280670941983841077631855173601908337659513225469624741161748521803787255837063535084607489071234708473120010606893676115340120048149772337880766869778381863092916965187647321847433194897775709957155322608926093587693835532488601728408769170506991748566708113886919708899917022247249060952909676033588057268193157674357228362936402410068929115915001122493907665307987391896962025867208787174330181475386211041187968548654767679535312320769710691289870559427981838654832230158147209321979545049276287875335149592070797699570280816817111250029352159979952274105041583999223833108629102533991231601546205898160808435572818694180173514978449101072105205825901387212972675522553412404215264513405345201987802784001939595552330760086189389025368200688261849906533734282722754967439554447444286759753961784430663507056746977055731581291860231629022885099035356919733497272381884506579839937999323396292338326405940356910392453517570506145492470216713286726564193374602877942232823918437748848024307555055143452171125027298523154518299026183718475406698063367626997150499189764051885187047259395337465240215124859721486585988151122404319967454018307217272814228117951803097107564095360410355920745807212099183320179021025659157308249819111260147525303006672106749761339808680062425390436841285296270673400378139936478151575793673064506063012364586085292431606928427632965436469385135487311968677341971828336961131296119120920217332461838986067001932251100764425603808248047638286259228543504801797025503664722174206656869863436257117478132046733100681459374484102481012641714317724339477709094298487142469773488906466692441556947712995188150046857898785600798631904932304663734982347354766547552576838842449588540009469905521793374932325425658158044325780722214787402330176647616446749101323704161084569487781585471716881541283073110244258303547761022776348434795860178585669053744477930003730992253314374760520895994416405576161568565844907044717057874496177012068196804632243927456446463161207822493692814513093101170518872518728775700430687367796401066136740846753518413504817582202904633802758624794148217555978010495818898335049337589593647975104315322468087575374137620700381490377956423684644513281606807280808446325707691163959208386230491221852427635585436644441269830789998930011219499622472669132363536044636480818232073357229206483136257547506714427576468349687692141277046787532047808303754618683995430551589878661632825662344131779018620755704517003017361639691979357525325828975074960670405342253172357026268398540764921743735275966208997272140613657639221021597242871435500339986833159741349084724512349954719602950908082351213667584505085772108021852471930308945285807169695479229645278197180933700635496263679623982275903105785197842768767422186208657582818596084896669169633505714354740217461872737790061432644674563154249093592340118541991829155132364760744123542062635324724767250534686844382592038467640248439079234928616500770007743938177645596306917135469516638474946586556164491381589391837176671364950965071597551786600772491705535202027729953714421311531694715653753720373606767836431339686306871440624858937170555840230676798090298192640393154129460757339874436641440494861267901545190144462580275116057274580257795609760692285213812003390832123115182981088381673173881380893328972710086396541141634361247009163736881199724207267673223647548560196087044786707596010506820055533803834040104362700150935994632498978650264144657738262217373250966651176360572732867474823764665568689688740621880068561906237933023586983460060465896595423767741996125156393918892954213354623058847788678925949906750250313186333564828937196041653908410045960558343342331763179710906443479563740322755944318730519624946669954109741778142796054006675700525457671246235385289976767512119398673783758738562699634233337521841169574033267438082181551120943008479520779756102814646645311863932934992632225059640208568010326437371892646226380553251280159544848032134069792365039743364184481404793554423065962920950240900062207014956923124318615327288707941249965524705638616188410049450063662802492881378561787806769628368233660512410090339913173105678332366867452900219322797682164550062023446148760731794335290083513452843404305790327936970179509530570596677915037423468372915112198148209256252273673296471103549043307661879436331629936247573370063462199786010196703413044938093026777396509738946317609348907023023914326226374576684691797323793412529731183393602264540849049128428424688048069017986992830076789870548723828440498415419953349533871910680884324986012587979622655567032955205649729324255731864407720423026763226284406782208232562333189653540271125129481481573904489763041243596103227578565549612349161136904952636435393363071780065405324237004193258698711082835176784127174231098224086925914202654443960802558136243813202580770990564926554995103765393764335482192722767916367210755973816685354570337861191017036883761187466159897830555238434337291192163409992418250882116005394179417889049697921951388650933696327009964013037795847814218587683299255007813147600804242109927437678038780626804422334538475455856605658738913666248270733313803691972620616122414263037697327156428909780803793260303128341038233784136430916352876637272643990203260427929431937662934131143842316379125284823524628338084976379271451668034684607673747026612623599543493128817806598472714189894581984217057746866920876967682351177951171647919936896890980657360802817662174286814161097642470854063511535769745535065338772577608817042604861787078570564663657566340588289697429546756553953380304358690390664859363750450771469703674768095276955273095548762376178884226876706872116355621927805705737134744301500915757936291079191809804190358979577974437404820504026413883040260892659026226247081477714442327390510201279742544463760303619746971705513634379684708918402351278258799608759346507382610651148038580902170283270649456940636163175980112405563022296605362907677561491037580739296719536186042615755617796220149709655373149950222271372096355596670563540205916283414440088897447174265317159166354965294727836970834201465648121213114449720988224439504769431715804713795082867858441997411554460341519829754083469421816182062848797155886470101989885678359564435987887518310702281605379625718225168973817470497299108758257026394134825975213128085318474790177014564890673100423971329323968821706348145349673039027303200807107558247392024474972000542664164304213451991396888869942792818904515434736365067872041197535251208626843093344344679703635867155622639247955746688595122492840019324070069010424966611067965514382529664949092629048548594443779399689246506407695695155147397713327935565329154358657274811313224307006851436517737129545999607467901139535766480332529448168810048200269735834261467190303631706393042655935806799150782291641363979205394121913852960846906378517112618940605277153639580354628937881925722691666147176507953474130852804025309915763557838862313336468014792185988375352673987712944653411069126169587599319243807506698642314767695482840757349510210632814431429482131767700434813841860849047493634030069876419543629552235696655937938895623747597337063343567841135334756955537315414021250796244956040425649121001996121791140762379006168395703125189429654400162073137850969497044989374291041332874449402754273931080587096724365181719074903136449899024993490733115978392432068181566132198324570321882651705226903682666235157731248744011503233504274437325668207444853407542673820913492611007243026403798433694685837547566953117361722477586886816603315424169111477325139555274859600817118692255566669048347888383340902622033830483919812033996342828201887693280716906049394080682759444405723638514018006796327570808066411453014065342866441590426572694483990338698326962050914725661828218864705095561320293858087435161007165927859992141083009051894823103518617210985449571965055174284090440185005219280245392724462792256084991600858907018393538238348484397807217042183278169146382099584007529719765658662077145503208241031987752012804962269326282401549323562872145947688740914992611061912225549342851103600078157783354210939325939960742466302142309467145973948487014662477766538928427346289290232678079726763528733948972528278821518979567275011682215614267793305578387556496125906549806687909517611979332122373743975121626615278578902197972721643493146090505877765300378660835516481633317319332384450979383081865090589563176714571140491170468276008066577530463278467808355400026983393917538330185241378876437879873595870459363284468857287306929774808050703984899525101999697869595707864155241824170629175604559960982932838318911255319878217615883101648397548408681332756903096258273465855852800201782008083138559978490013025593572485870061609356353324925175077238200167568229824088001752797837974521601200839188519381622512270504060499416206078685314366458077816242924752989153437217156128083729959129325176514247521322838783532919485374515899800578392384193417867294872111248215516369253154551364643240294958026667000219461354323770898706351660936528891034481201741990817302724081682590446271721017680809216408141506852799751903325559592623176853538904039337447757064920669710642566450444677320982892536042868788997036703604244533699404977252830552697386830592033724066279939638048493313837354994832410290890346829137269281880447149960488713338592283159267199692309159385662569156186183576880880052124748073282078733785174228594203218683153016679083916120069620653178809434876326292139905095417778499038923223264062343860579098228568084407006353766991956972440720655631377650398160460986508673331425549963860971002127616705710853774462436242375119826511755269268849695783643807279211471167987323693403166421693316878681536749751930617805732997389130698063179171185653592771010314603172225563668173292347716764813020464131102473904613003441449149117347518470258951794753427496319849111857767300999735025878377065029782429690668771650107926621969812059951981523225538806310093818048512031122777168266303337905760518317654718542143388272079094443410213427681292770609534034343125519586177106116771003549341953282122315878098503284660394135032248464552635183940914774258605190340741998823543704533930652092672727217346514095555605385035081148184888661617452429458938968541310119082933014015613374482179986111108392870578386515534715893838541736719675229466998045114102257005252353137645442077176134001204241322484492136618492139059873066156559754133921390357087544029793051312541102384923127870179379950140668668753916834557455164922443458620526424271675137966438484212089967078277185977329837798022617041418386082474217874127364446884366421647991918484045087191724006328835020197876933392455338732245928023440455985098132019227991056779055098239024070837969997111110986581851787983786979437295006451436149254701098430718427402717100585592351275474364616940516861577781741655053105427174646392070125487457295397372256674760890459418900724349449996218600233842359714113661219036753832205800712245432134664199023208122534771456969660961682583951484615800522310867467286645974306106315327580684398714836401942872889955187946033562299113952156606174472664905204486935129184728562709557245216206287359337773401246451291044614424889223436779901531313483286944192058261361168631331072427166590120485718931461709105924313139769862129373445019783199786889039121891942945699395947038234638218136650624556286986546338568161989635476889050479114397991216662205685865787141332090780815813074874287064520977456380505004355601523977130495883723232109485961815074555332977123672078495236276697680323823630552690261288604442760015203623784288202832728698902159414764842997870496400642776179245776545918602655318345328698725021860142902908339854603559591057917054553129024733398239423402458155035940133602681715053238943592912242465979407585283808742501726705555160307510258192943092758581513961142159995713623105921726220897873685664554952863185263971299447498279550831925984204793086527735699378482350413654090777306689713758232999600203674545900141721688860840091302366761009167730213745501363245777429732921498484502330957794504986075903685494188435420188359269122862483148995389042432170315032466347341609541120972028422643715185658180099968733061840507969592006887931709143036415540268309628748805340073742570881395767247283844615994398057190243178875654149063764084233989939479794493682259172980727614683728312678046576737416570234743605318918223555284728145798807296717361609629609115847330188631305737777902197731691596159264326111764308870506299919800782502828349490602561626765656279904525408817589624712727503973843111831582110558908749035295005256865694633114141034973609215133499151269560585587337777243441071248548081551042015937775697759173533782771437644236729995697560235664408144063611661885031199861237956701035264531619128268636977030620381430692371402858670145412523785107508530008012706630453585808026864622239094771112749715075079805256857205197563093136640361553541634608612729902785726009094194647532890528134914093851160321703152726871510646783445292873289316395050591071036389237012311390266208752719617424034239349915221659844385317113980584151685301247307294242542995302685879689527504672561545924168271434825049200746765457642003799191811034904366868103565097305156321914312803669887051048523509042452640287357152446945455092255066254489864288572479470922903696751874784140373051193361132690155650116793889490268061152672575412004738388571380665973125745237708998039344548058808052776617723991934773645364694885158720856354965074978990966671031105769487582007255976307145224465656422131078488669070704086379963737411875655552530483519439038720846640078615089547826727076794303065528639671249326627565514201004714090307166330632970902995493797826307187315575347652587071711406272205387530300371406887610044075032420305696127330854663484743079276491572021907301142059273471705480180455003395956207358459673902981604602145038395468881873134896019613512127670281976176018900637265180996171617091944888697892119114205323870740684631057810861009195095042894735516070202819849562455259326035132817697805384856961115889618880415861125001136045221569025309531548595815255430442716686055217479063990638866523774853677425254807409828539814926872384836383745376783086722372046642807314674612342506501858208639941289461799666661164583605231642665410440922365318361056573539208423401545714638135979331985976133136828361691500544322507347251831597194606888302356379307767636472957930252772018238565063463819001765908098494767013342706452476800974009262470399525128284631589572971089737631596283285745238957864246036674098385173993841579013297869992897182212140904862892467446580164419551693460573133213075770384738636147411359899043057986862895936252003562953878053697170708332921587688006582275366283540610030293531461266055348465304236192760604404028330794939054043973597712736804513733155874702014672196319085085445129021781270732372501783345076255444155735125295858825902785914312183654661982347464761122067318513111706491519862643420312135490092614616998721458320437911249112152839788633690897282238124671459274738798974170443837241708250303872518881689219255361898144414788415764622893078445763104191634894528770780199937421685445503609167929604308065101005814322472071864737392537875386147941825945934021327092928335417080335459865048308257184465862140781475037148640349358478798832578847387369008129663374855527946443977585727013559867525202088762773184831381803528614385266667783822165524105565047214956045894829209947144099476341796415697641652817798374424970680297502516233831676094988942244033362589203253834641039768539302507361930720981993657136432590207954078480318272279069884614230638454392075192065220225256860471907078000104945460271391224649439566047094199688863875120480570106278027463945933368347224770092177769190291658870486674334012556191471680299743325121083922660156956334380488790848172984141062805132930506833371454840245879514950922393234841043435067284308706250361425064893011409560196053870557933238327512041305289798057856408213676357673428295849370361918360621266188175948125629673205042451144945803868648486244063622502142952590864282459662954244724524389975511375232466115577116223225335030799152829415247219559618088470672318906361739856046663240793796433565409224715798102089434941875868971281963897165259432627442093819967186078027675636874657219936927496240391405270488171098575288492607433969684012353419389700395931345843081566715192324806160010453407386728066428345393135524602034962652212056706334428670146380777289825164327160436892045238175338304771476568082339895923707695050640188514864445856878014482981467623483888246537028160758936714391905009175215665297561212187201696707342741301471951507633076706338165204029539635772338595372914654033160966764252935970831695941158318978695338903241706869984339489452213816522122522138314138534931911280848917721356271263479640259250090235719934779243913842090183992116881867740199977917231237670697795325483101563880342262239235329496690821721080129658572285053541988368163291618671735435593018678090608674719574768828449362110692587355879781972738223490906981627203721883641918640287782706761587249333359085533911801690922334016465735001820446417647152598873967600589536293205845328023766156937069241898190325384477165062734091190009657684424969540139626481342513898946961910943841803498930962568348585631060071604962215786703475787470035460574763487772472872365695639311924384248099250962496957204660984978000599388274395772457190299235794997848430630478023975725764627934299808957866747073338106998065028218138179864998046397325968438994946032303817079585655910856477027839514036827878116289341306678515650900976381941882188295486168118689001599471501178561835198609263440503386716798173174017389447588433530681634005556274317609590713367421810665813390778882197172280548382793922885427003253097985100922206520123338367285055848735366969927131182229012306562975602161404601015522996992073051318160661430888221391899340623883783197915223856612034164327456847363168131783779906570603586145671854244389959217685764581056890116099521042121448851487240591201993963736726158793804762757423105404933885503059431879785546572810071338637403689365339444702484591826701281936446382138213358283324933834381392992100429669904716076104047128247916862615774689412803230822331248060781543388814368634301791934865940529673316860885952983941723762346967252938539226037618744180702961305413608358109992642058883377949045315475524456805800813213423255116964796745554463859088617731985494463494598825201693372142794203994524016758681569584098811661598022035877643652424338641258439832995705451697474049562267708597489362443480935959833956321444724868210599276267335189516845524524244892860713893421249780874908277649430812870431033301500334571707366772220932339091598095755452877637928881459119660096605634227542759314626673993354576073664465652350600544734278276017941062245682571085936694441461524549877991480566567945303356525600460904778385614546495674114071727375212941672160224325713484816231199600800600877909768744813578129387508662464977314312643443296243707238519067751542725863196532423559079734720541969968603495922532356514133177616785660084819030610017236907192488722484859807362440157404303351952126508524617770986517274781044815312823075466049490680015410422351361689322639247516805575694631494757576931712257493131602661584897904622254031621085941435511404700024715526808452957019450213851425938654681267686667939584741376231179804655836840389852736233588247549253472959934359407239304908723696806103679767804999925275368194789601508155656183566976813243153035558943327383408473269569865453020058293386602590065389982298369265646455202432461227821463805842592706750566491863171252798716762474582719014979599951879528559495493006364850424627754994675612077317621840415293816909624205552919057957168542884537491012067655951866729740423001326948731862396891404595886745738769375441005001903728300275093363612565091523052512806085395195923081652220174927318733909060115189264761151439668186879961813151980940946070874459766128687859820164540867254316588731774840594830165403063874227241000597585298240442501718365181049940058624026430207546328337048090298143562458533394110209902736649725920190054832590161566275655308338855120555575796126863636938793175711593321464051812453212867974252396658603885384724069671368105069335900607233051484633675393543313885378227378537542104462037559152989767365966926835842771366884151113059917185134259948460852859420470286769412533138558100863402827729880490296925082441460924068314913411963779826885480919196923892836845380154531143264490831416461720487874026669325634228348305864654228799097533699529953970899605166663333424410082946849484299267879680851873877254739270155687214979440862292368348937132043582872253751361165832702773817341416829196362906097620559887412120036129553481143363054199518623285201165934275232601179097873504991898276349127176139084023819357210491170515301763306625165788573317434998407601419062586000819538161002178751775294139704874181414130611154187996572450870205533034220485350726680917953369591351479554472707230295093211503700307190189335648868441069270233860405677890781795894654649035082785453109047173792107973320499964012067255654820038051535763479341592761832036820266711449288579995864376215023067891771502478754930869266449547696023247318188615543610385206385766015286150335094966616242782051766472069593130336628458817476041769324937320360522932526295165412855040640991140213988610827382561745939576666128836178112883745932581662891207852951731523126716488235206132990806250267065039009984192519555435999637453972937333854716691220226640903802940209261969141301946079065124052527211606262456198033609908384537118138798600800122361435647803582407819501850892358973198296652586651309862671050054225832279703766324001907199124562655770363703502169795999397556271975012421788206154498119347220448732465965173921177482839115187261929902283586397430642530739980253137426909892798668835985985480496657593363062731118353247289960918736210553323666696158045178668065785877202483357431360551381967162358679852663533017469248492954798018575684623879504520770159583524320953919902713460040596272018423792632216577855557545915628866454078059773942139182202263504108669170341484249990530756134351354147244289011373820232279180677455280758653832782607045267131059258029251043742338440611115551850367608309298520848233577524485372391603506668292363211788212549450332307429865028634586249307006331855622084006410370385121794461308276380410268565063952088235535052798173882470784144601130808321873586266719710412197770165270690439706548765155389669804181318657327256034236111930184901824029595041001057376953138255453360292980241613159269496808389158920028984349705598088720030847772935621695715233432324941780273883440285104324165539252527503236781729351765087412879839862072985523405258910271275111442837711556661412665906891667597328980082504872772614602414228238298782895031785313375814508769686287074527308771101155928892536591361618044527114247660957282389089209918023151156040034243893199872833035316224848056065465140097746253588368161082397955358425764377834303403678397190365793053319380986916421323723407135316384819129096060680285038424745484279159202570286202596016327935308238654406560192402456901402592359853042561672384253012213653932673682011099972547653312544998831468088514140118920360866633301308350353472843717049548923364241667768669254755886096211404029640424701504328468480656909794001591989230490166738664430519403162520318293856976914321847935162216924073462062270177492235831660572578430730718244559030706008820667030902290560715975169796530772488143873695403978707838852071724573600696620140411602076622822948412577207750616095061003262414290149154906235513336621280609571689627153035529918949409955495369263752948734121844191279851571775326778853447171229147839976249201148862752063149972044389816731819938739279976079507261945148983554594163013246586592748577121800795169914150587117012070704786963716539796873960149452667779417803232045967629102433349070181466281603177284112057935027125219795688136049673139165167769076335514422183695417341571634161966330406344288287949082618984197431497997111439373634908493770533183831832910671110883891713942438779431649912113941074980555850414747218491379212435428328307984989126443790731202951830809591802364543547178465689671785612049006521025301004148048884986107419821806206551070751651279932017711018780105212487069799216358189203573084371088639937404006708622064451190378756197842057953906345005306188414301728286526762722397441535638881484374699252611854461037493630908280562984835855351715528976252791765969707866887229323552726839308515064822529804828010156496189570576123773837045246592973757178548317254099120235668333477752484005717892404115332975806119882487004821232162619439674052402199634863735607475616093801213161207435255277991195213879408381758060629488360323967773480209052309025182472866878288868768226823392944561966582555859809928430049479731809844753981720353210882290399315552410053468289760581360567548418823404810608921059615368859040053980267364978639083431151810514161279143929722269238654574960932681344973535620603873627020267708663665471096858528680012272647712687200799950079069208230177100644053649734695953122012708294945554035877574397063767695142964334670979171974944239993983105962812705872500621905684850419252214572393121564027318252533732188766660792560620724786464632836952990010706604073025935981489699856623320346222073067017596762152480544775920513922170804776288108681943954151736549223876731656182074267663544333529710368097024450260150771418065739457597008265570018742772878133864221399264661218886844412298651339515883236357339973258957537914418187385903343091979209819514373207811957510279120075958985360397821829722723829044951035825051316486085702167835000651884025690103759822177179352977685367528769122087537939205803359834732885174558870675083125745900242857688001442267686747083705851960197546369119163425542400998089095531660209139353442115885678963095909491081014696629580315913642511034621034818541978026544275582143101343026008130377661780393924361837725788733223006565759619513782542029794695512038534951001781881711372784280658008320185839984926894061562461119301925833801051283850075842962878389673686862440875976818234736333501133815293817950326915031880818681824507538510343329097005823074873076680772097341451846723735270589140409349746166070066158831011793365245969403792994137822147966461076866835665969749601881408656672336406724856071801936303448927075585359887435537582077629080360933998014890457099638682847826351404627169134604431495021709054370332184776347368154350484562976921585272107778262870291809181416327303127692729544533176356143893922676856117676323991413298562019450397079315163450349024954189919600159850837612589989954779454551821084259812576947703457429157821384493422155211354787939194647362998253946463320110626287631732117824358152083230871085975286888592886350322360645548313818356661553346905462851864342397744479289035786694056745365133703951073032153914203826962441555749224688967108550416319263906737491087107641057190510730715675105914445548007592875063334745390414888960128998085706366358638732163595020206678436405476082375760898797561018743011448712829455172020308231130416012660982206275207976194672480635902697038989635417013010632557289335659325128986242878435971706489222189501750385899468603040289331385005403725242568791034768160085235542077764280804945952909141309339222797268229103247743254402431201224670992841033495590425945979538124085975951801361648253741847303423379599821204303716289710835833447165437940171154598958307495660415815274018465647881654010790832520833965357574138357854573600347878323245584632215371247695582376761510832055846921006636057237041942952508481980488290933362916824524508202479432755532200061019853294609835968617247799668902068094215098439946260607349968679887747748402695484976213568082272754239216216515446678999494024580904546182629586408270604247716180352918922049866053557528896969098516341217715842390995331924486159616745912308782146600276114015237296256320654932213237091644243035528472357041314153043702401127855817178736169693106293076284553062371911927161059915034767622444289654684147187867791676515452558783999069422053586872446294332721331024171129728893033973528710082670185355046738982240561647589506799935067109222653960198071718973757755782313091664110026053948163114097232575100670576330957990072637962122567510494280657442458099867395088104734851372579120556922271026142362186539293002218258613844018024000947723814626103062874223920171962869416826708815979065231846868243313373756529468585493430852785751207696405783707716239599185073566548640213649253265162308910022238090955640881258868202391375550693888362365682925782549851694753236628368175999630500552520858314453315410481271218791798400155876696115144809153607717761105484576704767697498117337457086091309458708547617544921135447653938558188382265803127039205586342098320174797030647028948940434067061322511468892742563349966857478233441126166216445323173109845497953047517238549846550270237373019632666896587168372620133757562738283649593822146120654559637089284764463380034236915649687743567741086231324024137026127992104313999965293303872977282432993310741011424138343119403516603870876462193723353896607702640480332528861250360719065937675881904524771071984982883508832550455760375502757389138806989502312795987560397470607305431826682863117921910566695011541089508770135776261726551167401608948512847219570988498746752462490547954781292969927257936382454517651112334082014153328006072957697526853152545383432133500814809097471826751466430431914392438769923136771665586710979792382899008597957419833893747457101820507267710949483464077637734695752779100200479158034718453017843152285761955831661045606993304851814445778035743837888228327074397924594403303514680855832113811459061589817776619223702747783428253356349498056609160956436114207044530271264579576080814768150706229208632507042519191777902048638313263382325476927795353876141139201996927051364716484629480043158557102346922174740945821862885723563652197146717824941003692453946568742032243906252115483052043030610677671329910813014536687923312546664570652299115154779155922109360218492874596351023451334772462032739569813083180461065774443797647571909041097147684968227341196137678586735589944107416461854141485756821331835911067007959733884548242525247310073114182824787766049693379352629852641728953820710598695414309048226497305934983525508371147802373260927029179798511044206423494545303246044720988153574199740268746085556146456563213652852382918162763411776650279513439387035782652953213815509661433728520131245619692415613359025990517079710359018871079373032669060248104890279104148279555159433694309950085564075698313549867757680556964593737231950536797360440749962154555435757741441300459763644025218199364973919022131692776933939493746533981510802299659279955311343966134971273296293778710077417876736715411017063328108133478391722054099948084338355488787239110140475177888668347996022077901483535927661876309022373666972302831509390835906884648064658915635782611961116534588651169566215183579024613477620895515032518501437524999704506465686589293788510146247351788664498610844129035467449165259161593480469285879640227302575010122397048332553947212156126102125964984548152902773259943342828877784162111963484359017282599337222712834293475076348297857631572573170518602608460268855539727751607028098896954564459332126273770943363613893065900668949222822864264753773707099938157526341679480962865259807589085713549101328500141748014441602840173146712298758153661031650437622388345011637221416159959891432934182140489012986796134819895053118452567568441296083156575937826062235966599499121294029187774823508389555928573451044752718687649764540342314517039039819457677418831122876150914471731305528382048278067740288988119343591639649993635862400146070266968760256407332674224332900097445352172378398275018639418234082199282601560963855150674280272050899879948422502952848718899744021329103922453844612766714040269859867155669067200138441702177653980976826893198486201193784221794597023922688857118164002097568270319629866741196714083142903030418145310602943165291547448537190969170016752256745757743281094570823273844597024332376100454707619534280441016779986906364334483674034982769872686630751816322926061277435020495031438405326464372237492436583029743901522409514700320086814505583078162994969062804868585387549551138400258541790041648924717343994505441692210129993438680336216334771862474537057060246010658660893067774526121422472771645375915042614787881299745404970227527997215253378732985801297403913387761712261196677556774341311231595709105315993794525764037892002478709319118891616784507520451451200935579624161527318270471965716749802089215210114989413679440555775453696361682535133178231137203420755337450821784855675737127516465670741146263229954124247558092078059613872315831658264997455151551079203111489932493520546980570781586075032008449217736374248618015937025383048905089454562157350443647818712980062338273319392575714931432061068122256149006400815590749945885167294085748152900180206794044610341695695229695522387552140065542117969742917922354538073728111567160450027525718779206072369407305060589314042397619852726846356024491643899519360479212792602313556773631596397338596295167920676705297746399810312606195849566656102897400260683099650878040818272976909608305602277493819855315971147744087373944973378279888883529379800348457957536705991183593655834112846672235484171293905238628467695638640943896947973629510297072128766480482210334776812384390026237653497430264276373246884739093584102843049001806962214416023672318714820854083947128867635834871514252637366909371822961438312010471759882570438450481662217648569421834201011941993150001062957580085215962225707497958134442943651761071311351025266706976167272326777267963352708281432570876094444474943674266277488898505628180905671241826630411544385843127307026079116250076551084302113830122458370153682319870102682066050400293968166673631170644812145609026500568295013292404807482796819090176806900515975006817908598048906790528569040853639338788901073899714167631738399090704122424310263353082772615120389329250579026226202630976202466767029769801104000081506404312889428788683429592461617919101290819041049004646957185511676507033507767459937120550316780691226573091239588589333690883110568296830344095774102128086021826386992284458703954709871663886785880938854779285204616088554578198043419450262648847225349707888031996987865037183292361399751466408284475348756036948002057010446977673362402286438401177291540999602220906400540367302990251192028581881312102367064210050976721020844401987342343735869218026006647958321125430877915985918045766897162676606905843695407513565024805128896147370302694003599530138271966022074132975272089355773277067511360314492481334489436249696919164396215384591725209231556034725547934574164181282347761165377243729753432202484079214559961822908533055042585792835582862246360987681830209462030219881036337777129479509418679669739441589238150919931674454482130982524102559515785470352756122013067513282263638332702591928823608023316186250873038405001882040050201055186778779038142168768525408433287721845749879167233089680225851404323272031657178673159586633245948922836250979016012297494614858639629337807146205853956850222692362793684261226742717278109724768291784251115542535937636320274167003537022753402213947782311628779377999909625170072702074966645881847903069899529532724636733320707197461503912848983009740985060516032684825503830246125845345959525714428120071070929682149496416611074264970670196858379926894108431677118565225654842074013870043375200383576108586053203316009753932716955922123202866626730690625259767086734799739895940764950786105187668217759411535221384053854161094870457133707379318282355241901517644151627256191514654610838420623298172970858120196993451902909623050258077079378235641154024237804542693524369647732457995309288902103227189273235482779513722991722845389621841379575699564471115566297010223090015095763698472502025468644359994529836389772947927990601431499829116275116899005754655348539266031925926747945316616408716823714908690179275580821082522708105341788728429265618442676407851121104132296592429366990668481734456146140431902292129021137119858145389643164960202507073032448270888570850122055419293068135128923291701076316378407932213348481580993949928071852504575977711453593804601651059649471845232276877473622432666322411102874472504119977291600726588277535854988077436546230658974550697704032285447091920666177864219275296382602539183262342907638582889823748642120765286773743452997153700415436260814505929764055120955803562145349019647831031778874408880869075186432863293777007620185565678720887335164657619355327041878404360888496434656742206298750211273519865138012609910339279503119805819078182781854299567287770455139933264421308695752476800502209767486885560285394912723896285409198067746201102463908100775909956853585378147383984778476419957268050724528003232743197932082351816491487074881663800863302793155234220045895188692847260592113098540856056110818886334919720734421684331514741075792386266745400277369924292368621328287761842418654292473011569858264773271983464648434506231398873523217958513719049160905948389523324434994892159622794509933576375545889348652113479954991574614153615597611965953641434831522088442475783114622637110184005805816621990717222140813151651632696492166433111433645864961160280439712722450221290697114230468787671081007375330804555182534379909459624511124618175011057364468371090456678198715462785321133753869994906325132328366951308431007307537619689951710609648294985888247742033076491410527686981588816182472438892184446611499102981729261700608765461316159924222987281281240647425523193122084263642575096063542122210021324218687732472088084063094878048682595445972268800520705256426302221966142578597310552023618234557758281678632918265274161354852729551644721028068114479512165330795821646360675307091864067951863530158692908584531268462400891179845877125794877872182565862171753010615369723603833272847222360774073537957624442603851254041899432690887330060624491499083981535381788996263144231641546749939342088589809191244031979837772979728160682835446976324363643562725319535375186686049252830629798216529894232975669663557895539924281999745986569025341226174699547640476739888779017090115289466573443932677811033015666727349526151714478512999594675111597827073915422523242813328217232105711722318827885211290206512771978170211194976150511206503939580911848849914340474051040515169236462956841037562441324178343886038649044120659541718311026942479819799700965815594327385549639698905551710188157983185233921566771934678616743567020672814528097641551525728453777762254032138968743796102631006730904819677232345356639435961823540924286089592143659950924671753866866105947665060845943653751483791249777170317955611065090738894711877866188832407678551941150669049115272833642478388814622725721941694493260861639112753092618246549517787208459055759775305876251668225672300519605924432571396600902732446618899951594127633109437898420359110577938197638219943540798656180658447505322065936044081150729337795741207921830713344788431671262958768748566276253222955010947927395677462189631863317986186438728740047338821882917795225653923245011664162268377760815160315678136476092302430344603978211213390322807993372283032888740526085178659285353066917410827948654137183037951558596247047730698373066631388998185259250460204213757221173446813766481063617672352984993606624521980934702385071768431652699405739156239701640589700423344020398290892883651380528500310282956061986389083967961198041926406728783163858864381548140468602189346073970896335941550290312403878321505059032317083674322312269857244458109896588280891889810297645186090658955675884904279683491892647966608855393783675074129012344075716657974779627664491451688424465414412447733122381724697778662742377570688974106180202367230564822973717446073958020489309740612943671552660044630813153403860846320740161335023855298149583526270392631721366792675572174104238500296959790102054955461458958640726239863568875600071341865857930563775201310430356409829186741871551575058089173623015514176226524470797754451559586955369382637671620210846728425441009555993909062975681146616814701901311441191002376395712842958418188280348538251956140679025045900196704249243301070358186227170943786165822026076850516964086596480472156540255100537042775159238158403706957274014737998491848892979551784576189388268694939133386538520755794040466874111341882019726164206278082650482257992910709289718956469720669164004009338457592443802672878590720486715277225964543307317698191650330870340259068279794840927715363663369052436724250211691716265754473593861892551772036704441920644537974833745041582039584878098395239725905751285287727068711323756303909648785920934555570332102471042031196027377085138971714836466247377579897404395874852954231139724936363076606313645950474935972704056621862911599425432192909662960410157308728476946919139324134435131150996247139491358480998198053481742867422995444889722807307046143664646034680614795937641984302485790198468721997482496112447297304313106284993742417920602462146626701099185660322493476571948892353212520203348845782902375890518587189484736340640869213794197340421558060861924861633710393729558677207198878373745375678164114308634802523897614592961646528126617964355439247753624948951064808442867278998314842004542117524208560025330914622410610133299551906479983158818765742348700776933812105193226673632074586791631008965837902410435709463156604337804134041714484739694554947091888167766050815956504143446495996767141918555487647182119647026046988654212906462508258037642983711957192872405540256794629500571916482734727916826697236319270990772602599599165200736171874873682659324470584878224361326626252972162089851052584011239866297007170241156064751860682786411448347833617714420402795777821879712072963349574364726000805224759284807259584592690247047685282415772805963253484021168616662939161383916433870121099651783031316952936661707917547891472314983473827962203610740258414502972667835422368705399706090180760875506459117760237969277917821948323809436150531356084214896482404882087390299674772442715390502703529698335232478659653619888584076075873963215474008756554108987919768290708488950008434332516929494224677865566556533893873959803825363074207040051750288834753806952217409550020238147133191139308979429976190909609905758162789920823258255634449908153153760551593515415112173426381972698740363996150976695337073280341072764488792520669893988391044181943435171510780398448380884947783505737195935884020222260620073329213616236953026876141867523066558480770442287875363972187719064028260321885531992082824591254369395715732023805439027598279853961065787388135475118830540325777197124414051771383116757756590760359471943303446251322331080239546538483528257879652275309234179352913625312875432806966184755103747648132083682172392826588310366401962694732771749834606839966366042850768122926019084666767319632898430601202829153479094610971789718908030891418289326457216485461337514818013641090933908913076530337217059431169930742025818643499054054419434013035264491200728917922382110675302812843608494764102734263175547600340887901086847939437953649366221074907474952262278608481406619231201827559136733869632848969906473562501847122701707390773549900115536619469185293535953597414671079293064705891454816548509347976379750159865987104303948202511665362361403762801268407364003257441349258273905519163406455864502090505815856886573249261236398927740300289495131080086679415272756508130388332725455321441313326969696229890872654953071324450878888405124642152301005956657882724718076421433056911107151070069308447890196385476881500218287148951152699275349351356293120256563204665319297527956651778545013660208112933207923392147632942924977567828170754955401919241749792598773779555761753579754528088492716794079180895484568289792711189559920024009753921639030131292445131206071940779433534163055209625473752026005124645579033910123193086216408272310606673249423933487927552751585466174651462333165795971032164853722386863861037215437282570968175526956976813944579891484751680828049205338563560228870277989543652774233967296623753299536781160184369283094753311024871056864291961962799964663873326489089938644771005297846941775139158526005927794387201964645537450991677388943596520630441361613188705428594079311153325784488394118552514625330059914729305148426399040363060895097729833447784839031696495427629404056844354806648390462205945029229145909869013444425438885448077252925368130482653215348494551934039145391185662244129308794029290953423483752587009802522532427721375764158693989387673432106541205749941245606310502826157793708322813091029491028109403184047234880736439399915102123553075194903848133627050565149732638701623383560274951005610475400745680046670282458783644793391563927622177146357247681466925639407792337235747835984397333267679237825133843732986788010400638975016005207595274133063113757970832462924824617376216080863006116761394449907049212449102391910059117287633883202951143303811978090844785373759579265260001507824213738601171045628376249387685722602524714404083535642334773459852070669460331132821585363530807413466972123144331903241053505054306739699544978230236536149747432643125571218405511970795763141020376067213885903839798437780642191403000458548389839231940091050089658433221033756168659244396799935330427539581598133817205101485747902056127860687453312764329165538881853577067612451411616418495767928155669092728359914203513747130669548046283792589525752020465137821475534871551704450645954198586091963976874874994314485478864405356369322582791736421153527699653992656230864619822860989268592818920769276455116169979418350470404943917973737981218606755444083672769213782903846457851022362438230385315579028959866848592136457641248207045780769811515695614604604702380558341049054492794101558581393407143678025167067249035786740983942071727520123566999657249142735497710841190349106742402586761356782896350287705131044372374138682846382468132612451685959897223181689679565288669515938073875359141549911371375292997097334616757459345665947643478954964665222614819932174799959120041625871267491515098051010838682890924013628181358987002529934778141432219727973578143389376345197828629527611750609114906864160909298348271493445950528654826126191528138404924110641077989574060279245981311787956835715011262344668103599807739406423275166258309702753351171328339059672183873740304545967966274617915707912296063101331636766666268096671778459429727316812210300138778225590018800584416009559431993626372364773359806459416193718918607125146869643457772805049863932412365671925906746601348683698053458422926264847844205731424018019143153044294766715877973281124174265502732533734471345130796751222729935578963749871764345627280516753683720688836800432946553362370086120310871911021504294513082679723824162209219532310475023819926135162050172132540902842810257857779043342710640859163606666446673003293839013440070634144235515008054670883975356790512798992329454594424912354259663031064096611000998638854666144854617409447911098257826307509366674100294178246224301214519712555089743356121993847523328804438446205865888980196666753848776016629717348963303616917216389094826896431435827461791429719002487089248783066848377675666436437109859432500206866761957962659021729847131170156535379932678077833566116907307703911891463660112093961644588662448926011921080109877769302480050405041025124657291004546195436446733715823186643535557764845739230568243633008682730172627797888618780843701204301457395841842126436682174497576039345245759789112288591284179966782362819151824265453489499346104715569965797874848612735666981378168467800846543866813534391036003853170844821226386624282596578926920826337067542766031533823080103356716271712303990532899940890737103620892985496857877574506830352996430700010607722995333615760324830196986118657596963058881521263007750570690655259235765085674721130531997047043769569984587157570428516543572264044783028780461349434461968846501084808485302708531366952419021209917859761708440204778349343020250764762922173279018255591948965194641414356753677046232779863594660680589565426593219891846305463122470903160286119152195278000115612760851216237996959344607760436609279498684407858694245542207388693507255795881912654151106657063071568553648498630821906278432181401821293677966351069140826219043649395355396967576939350321177350270020526075198392637294902477459646605303184086142888399019097706685309164083092475812247799495216685848351986781424195081585077950242260438374076686762491453984868215541776332734093384905542048158210556688565513488252298052481413633974776205882455534628075011643848259312810659414060613586860032741347197158715072780117996586859726117369276078406203235754212579400992810145161214806280402419361387115460944813756791706520192340799246060445682139528689684787910162595974725991692923802907400255657177945558802623531617814612366932793053016641468411459524281362554889577053761397472809854083444240728026596191328557523884059350848219953258725148006074300535332053725816306440834318666213143610388594911434487984519113859680457601596948227885259459852244311611229367464710394594438063196324794910656913283835272347690857858659307803844968082979537170348100287319135681747635637680538030822913733239687645609358632058241515077952147213711917065946180204159692234984934767225560150327458480697196997757623965983483960564458962352842733438646915559764044095335581766968873387800111056697405546020057582719533649251829173806962829449178563139809897992767982076011723814497748465536587279088598312427179275877265748626537071636916964009563252237112881378228485252356830865988146438865022727583903794182525500165268221235281666398848679067240841627747320899501114843141141489975261324888413980278729913675769913879015555953814313967702388563340724353525820759236443783299003594065862346341934520213656031404286223847852012272766085854044067173661974356580545196247194732042368333958569794825966588224275051748659865646218251458777511208001626185160923230647855960786651065273560461668815443281480590200967257620378944542008162799201469342490213460324106405638631614381968415638335848522935716769669768219890377053251850510687562729985563472404523371595593333153473261095228627773151753414992402291908382083652778409164553717409314999759783970936102148299548404626572694599143750527645099078654006316349768477442472709631965586443707712538975336191942634845891570331888909197563090415214572010192510410405555020535317430191098091044939861639852271758172673729438408221417833501992870410342606823027355820011595276494752830795721716901689068930547113163872817361208646505683351733969182073327480125532660208260271001476707920628658115366721228690955648149399435420864143091046283656164552856896691211484099815814168594415839308926411844025792367293019799385436127232835573023159505187265469373330688447497525740356607274386989419196335403820987524875597189688365137274596112114802064497614580220575205843651418478082872366634947329701052577628451195403408209738451344835464261962025982321302499781714075155907962227249638276467818448898642650304225046255055516724706901453114926912962559154506508830053464588140475340440714629443924105079839863712625119060487329488037820125372599455612829376517643568701002453018346136009311819262042067154520743253605165719679623651906974395633868429666881502191090524244743319762175906318999185506249884371636157382602724411482417512552289892429514964165720809074024435796120560711790929306275060982054053318242666692237463595133595579658637802771814608221011843107913717001749565235965854817114154084053262080024439303003717180972339364925292285005777902457294302980433813386314921897953053777823604753657528325228273691141230883166239717117323484201574557424298639110823792801638557514395059714251859358093530074366531360056103446821976581038747680808941836906358245263778388012550046701888039222490579801025277824424575866479091529103605566067056665517596983936837420041131869271519109644167692170042292504933045550785038814514379649241875840255624605085980015661269604864669322883498045465642448703989917415842121073007294202433688115830461682418447542463911820523743222416574460608223212087165728796553565499284536096937379734371308986740386177773178049374060392044376048199447281965679618230195414975416138268076675526349790864916673147692923770075131642261572163063279279701477545868959804674700424071470831306919006003098996836627735447500496504086273433810739161825766914058368437176519539146121300378501270435215836809042401944467208871901598692017219058018421708444545092587025618330158507678915478334370587653471101814648711119395116575982708382119462551509816811465608163309335747373452017919350373518053010298369346194667225961955410094934461173963175804372599709936192673287635488687988986076027284432295287248287104456056620878116528654310709754255592323583720775767336398823974641863449860286181483275997006058603890291218048449470905037447905376334232313577996949096318768613283837068864619302473212836363826312477845837514401694587708805428732972534006953689077576662164149364595938838817437113514890847582520435599785519446716758326375278725267997492732521232553815519868830240132568632871588766512764937529154480651158773339063732825929178112455178187908743366417552855834336689891606624595316842603039107722381095261723603534298121567164768779276649828042486313456662361491992401865723933954821750933476308140129800739530666905554757886034920528259443937014619624362881009260274954630497119427718771917307171151533356521352737216570675472823381630388768426875513921305753952705382410103766096230186877687544044380298012098511366587374678544473048489588648949646991344516645486374946848707893813322029534471423658085471661033541118514550555214975013641890249151702526358763610229698630029074411217168600614722576720613562370395815309530192212885764363369233613771940663215130995990382177060737583397868869302616498146092038665791607774873870126424436398746318823480964659083127658482246431887049274236717864267142649885642073449309258637765455207385522354778726992350320971532117456220266314645336609975839631858896961442399025650945425408048843530916973885563406801641962091814281227771858110081111406063678418311486331499779819568636922924933057691784469112703384189885659762222481977009959751389930638708391922429552548363971170526113960031867822526751442933339004883551509085833864455384975923978687247772177751729074664549860471086608384991537833299706413044043414246880491700391848728223003733931655601676594537306448740622686607264354502083427669849863391579018365287620603222059096683038136786805099267461551225445032235353316959374760602107510341119346931115932523505845897853069224799934461906313636572995328873520618705003584942015093371223443365087902046672354445194516928914679573367934966650841818953187773437142581506574234746106107384895082425840505855179839087495176153283119041247476062919859806381086819486685462560712033603386682467948832474873629598082326667888896772269671063801706269367636447460698640836349980540004627602148526965518355790831387998057665779716692325132423512461990231658836266474471009623005627243727584864486424984678272754838234603431338616996825354094459419369412652147600490932132072717807025592092511716385443205116905507962472083825554671539676275760499864819739326065830899320634163736957802540566765743479904898099998406902938658392566475409835434518157508855456042615328188184792644626924932562685645785172897495732997023369706506993754606804040466375350535641382656946338918701852765312372100125085288662178698279038630016834750470683648342106455888128817170585597875968941413566600810129500658429474095056507023245829406119320103463045685833438650599018714171844099952281796663575852540322883522754454548274618056386140629253930423355052441675649836899899589864294348820740545128074593939032840302783936470842200922148029575059476005786400392541887534340143677911810030441318343178611933964488005436520202905232348487300351277059210509112897416745769577499720332119713575595260191400792250201970444482864505801933983626404373038511910473164882991724177295803626787498691456342913186094589684142557706306483115486510779767650963970817925858828522328019397361680071918616673786800423092778840785915661034977175167400088115892379430075970717552798166403421000661530370375407564274974122058057086388042063596451960746717101882459665628788630280629752994461709026416447047896486046520984413753141235996010411684442089579940517151426892768504160442577620304887823435448503211999326275004919099702191744470414902648597221499768145590499295940523618687251610914403467655883813509667839095463406293346091246408460600225752015451395698085639965569638162674899472696765683358386934793629062421355486129514521559141866998040659594481587850314330227241091622028311216229592004179203382500219159397036325516538065154086593353941460962098550699690000976559409146031190771124287028980463794393391751650418330833334411545299236107656239437507356464844221609086534960984095849626463759352137827088664855666029851643091332568827579853423898744269152635685214868739906669823549448835602668274937567397858893547005718566384909130208368959510428162052752412396330591639899768296937666385042517114709506009742244936845263467353686707766399512089743240663105139584855661050067718999928459770883458182773232260760622778649262682246929447643288213837369999272451692059337693415801091034898186771405722476864918676527903189697100992632016702213255301883174428087457606536574150562381774171961184291009563300145099530316669967899609526976278269245768950593873203781821600708384943386214562785133496365476607904616722782822178528879278129507202877407630338402051995929321382169202251365414324651465675574479098949015152824335603500893393881434809311973941972408476309688422289430994795677906731652118538533754625957351896864748176486186362950276983453840110154593597643131331552654269943421891951405777283835563227958045886695914059905200173239901195985954716558080534868082506381152325689894299061225985739910752727803643563132417844999757109979393723564277549687613366671519149984400733587255952763690079853506234729599995624109767968757402278481784466523823028616519756099734216909993505069154041847178620161531894212682634754827567272510917880492538711324103097330494680730946056128577806293878354360234951845042780164679300611998673787582079191905882508131338871917106172754525004150000870232022950224005547706279555674198893269171909975338352771908952007369162482325270660225619032448898203114367001626589399819818280584948524632685775072947666626133296924702551086836726934287412940782055175179310982323877099741154758314584041351888155596469898920834366728214928385511695346676196349015946838858643305578073059221069257661798733996870814503374390154797838942667092480655078630923802157970275121159222017093735937002929001434210409443151759512192637802827024420003051483108095374287065652109226282856594683296900922185628834159629353719288906467103921653189478965461625911110343827724900598270513061915745791255956820274719539497017873429565348090976810806203239570696689301232021897568760746993126483419788295697804737910793049056228705515209963839642474413695986583711312079926488693916600811829571888411514842275853622342270768973388888889927589636401596320185366002479383091759949173846010370672818970268812831493185144928717867696582151551197777517761451687667424855177011467405940740099945001584035293984203625731350184622590767725110688662812775055699500256331249668394870314858106972478543239970034820194538162187199642311345468788832984020256763215400304911460857685837564305570722468041110930717671309432653967152655215632560286021094352927719577390004484450052020452552003738596871532287931353678888943146772851791264760444114393954447090483643550788837496587701839605319373208154783227001495589597549763923919415003559508732813844675024118736704787928655804289950569913829519756597905308438234182197732115831202481400182645747013966859869070375445561845804318272317345826919404891555655253797638558606067345685979611010922406201529365553554708324377809133630039750684715476856673107491846231863208465095795835439975843894129684063508444238198446614899539250625266764586288967442766211613903724665475486837017627059431708566169858437196695076990086842717164309142984305742450748967388403903294490075223859940340420268286759669036023293647126596200888742604783693363397393510595045837041130449827238304699068427357117910765497795686908075810690048802930423508050404349063235409508009669133286317449929124596637508551078934506574049408918826353710462130186115823636232211494694738067556136405978657419243494414067711265127858218796691705511321949954255922300681809034796493625598715898892122430423651775582647251583937446965409361266192568443993350901006325740475101676704382439730573239993584659345491441121221768644389620159856150418359421614729804528034037705200920050920651691030369429884597159972368922186384199968453113444281910715969883996621909099496734049402790114669489362428291310496664971713980500186442805551336154078624234666134024981604877621931860632109598138991260198182070611612656111598629759209907659209385462931532436206990775643634372420133824550100190592603331383779820974498736858789497872301389043442165546983174008553680121943136607751779806479304353782954638215942169618962738800148315483196060376890782323264853971679245208344374506719861076775465468059930808012867720820740362936276957969485920118302961797348376865921007848527631866508235509755723592801832684221919481227134150400055060800531163567087467074872586995251696624287383687871429530281929002063890405103827046034187389099893162008419310725569597341342303911588567264646341049621077571183966828501392093672713081323116253154826262125159295272734353617911190845088100165718676266141992289270012957316081109350074871655007336641342938820610816321436667307621609054211241203859909122279644200533832743005827968049623168107756207020527116131850374219746955938224497942594796094412735759775855483223686216155283103034449044768829051001244195213891094929472533505022490683199253350495393318182551617198903378434105348914908002981291282713557318287813050563632080782569078914759881182963259431466441629940753283265557214872884394285065161382819913772267888446554490432950206434954173541574334191891764809071073647898250271973982864688515130782736528062573129888531301041658811694856198689805881407697139641434312502215674634301517610052713730876811218808143581237717520863238026094954404426480952985578470513545668590417511684770855646491108139754905195194907502905215800573540615746599787827465093633943126938813126234207668369146098294593518259792186189817534696889829904778380858141346917320131830045370274963600945483425367216548948793762917202520429289758001389503291616582616145726215770418070751512615290227956307710622711221675511418397707726121076120993605343810891357064370348608238523659362994831687736756781065386110606429770896566015549766419200096950642090157804527906602828881003097812053671784110527696330969508949943737118031367152884630908831366299524241499019994215212337140915246819661517233023176990056415895036909821155893305155092512109280391678074044387669342610199590612800051488596103833721917971518171291955088055538404996878533117735555664700110827207759007498951125977635644209905324889153268166156984220390164766276316217424735820777273088067306007139382676111578578905427283020524473451500835445826328656459285410384706511844225487238796133568279610148558437974440359671361840344637070738657678663989883598791694913316946252628498287569693758768221452491149823309708951562215206682565278950103003412344084805910592841596096303147518089704410169391011734227372955680295995917705998552202001923783435676358794668232480120741143984433056746718371475820642990147290467251270059988687346296388680588282562058683279778411534273224620556519336199267031325892734369240803038323371011989982528201650966242105079657792014088521755737160655970254011025051823883516473871252942059284544032964133621750755087314800557297225145547379596224172791737426125144900090028913621307328990731396610480040575147106220093298905113789333683133227152189587894742031075861211119357640289314276045181791598123227690490065036505152012678748395560149241361461189736827721860045084370631408749961820027210098830754298566122841961449571521669680160158375500338567687943333687439410391464596685619847414923069652867395538721309609035308480339629779868867790930201171500885884950931593555951199350051974352824659208889114806340380438694722820063839599970857254573443673371540335298607210311809875838003672327696884406050912945842583503935113040092693593022667022506691124991004578414274534382457258892781699334451963675140789709147072283323928110056375250897501146427497905769302284626348816074719651563658711600997281587570106202799869051465506102323906631198999094547467492656469937410731225508429320008322404720702309386386423525391057091937883914822823224059275428004848083267308621562586815670780402546832271731309770434631118208775047307098712829267530679900325873230214420556273281940100105617070715351284908361785244770166782743733817021475156984559282673284710844716137101391067614458882529571823442243138358824124499151214565935826761489615539643339261165911321654858080056124896337779624751082306613615790598898499960362420623860182638583634762376663976315127300745082922409266203786611000263315846443378755647971113283226449757708376977974868292685691286989350562543340425490265990978618935035232304042879162099713367800486178244824774832271444192217132230808506180472740327378200494710044581588281874085373931724641310600103239903350273450319108272832483700196562067412975663175713223037581343379622570341047787808035100362810367992821148469965636578684109958447749111922998155717048907938057882684188831077826626334264915424315535551890120337145985051769735912262270735931973002149524673224503805647646249359535016910509493920285025217972744918486646383025705416642935402267799008091791245692004616845682474213415719442437311402617185593244535050826687456684906458604564624836152187549721486934033216783156039335977645046818552244538019306283026831105338138836698390114778711598366309824204594657378493952396384788810885373959015763801905387842999280538469108161340441227262880423900467520091784948791831202923491454958072794430154460385395239332325174144656260018866385031037868103013164027973176293801685983328035781900345694284380367819763343465072928696989715311133757959385151107113305188008299448286405787329662265324034968584456304322492174763129855798859233889823084810241927241948909453138798605080816792649324147375295835898502733701937676683900947442106415336210569080427463005497627039476202635789774520866838130584629949363667996330040639416936373266836912272293306757880615701745919432047757637345426162684561092937881037499649981414017754459769977380876935327911086238782506397740044833432334288734350496949781108072347152558550512213886093913402722620567452312250269612636758481565363631519835287888459475837454009971039427061141356387685057306509381094875922919461593099126553566710320891136313980571654993667557625778881775170963042731248287048894862921496531921516055877136930501942009807493479851405951148751025885950494328254947277586576962930151374914130527516732301471162089516211689212760589360674865799975353066571713275511399877620117938657326007921413388410826996822602980680691352339729883561961560315928608206620243645166691853290303289144590145017463270875972991204274615430327746285120217984472079383378523898971566350806828551238281297745551138820722907515032282018267998115123793162808308962278280839793437436141729859375926421213437547888591576547349312884361795854272382705872764621125636194537198769588325996331165507997344791914953880260301744818063734528089310903506437831690780206725103843471348620273100907305257296253797922410314029154170106277219919474168981977944752996408961125349419109785018934375196118265368039253020409159245209701864128183128842114836425451098107781335438951560354736876261807631809066201337103790114868355569391328184709631437391092787013134975608200114215952419226456090389781664208357707207451796420306211876237325111503715791335973971659652584913741296690614322426642347582560446092894157697892302040431055153834494377077297652139813760588684335790223336676523180231605291362788924754992488844291131516084997067483422256224927367915935751679749652463865024875082946744204951822819972872911282514468667165428265355161575151409684508184485983361197475144817721836532029312886060697060284952807931360908585996985476752441551676619441725405933339447438672808744252729936087303322745877401093681018723561225470208499814174600160334657391710523566778755514014686431721008990080748860420338156639546615455775351497512569792833933111587920580806198249908949623016001200973994270241956115485396145738417024911607130008882293572426536273286982169407337304506001896229176639577974802205218843990191447611297839793970096790016332383012952624061159326049952317097817367355306241959884419871625183802328306830934077904752719761531533312702792248933975916835482720183504130275363665871108009019129875916134763390633183792423082003532909922256046729968482177878347647309504817340169980521990222417415867834791877015465743702260596305979233128834500118912384751519443035229773294812582966123877584423245898356220743718057990863563396603345116253102657433713136300069323411330597332820310221399949722091621892124019966087460282070629949599703718795189733646414327469820216113227737662740820302258235148381653765246347015498962521216093957361690790671157873806580666538235886795224621624201068693747821831586253534574446167537608509079672343889188675757978841364607004294502942128996053240903731210489951777001291243367313115658282860903804693535701640139801825666465591391397591469913794890675808347505865271402621227131984580320645990743131661618935937055534051615925244033376974442626446954654801283941525272673651176558066242854748812945348630898448582124627550587732789583783281888326932699052737120651512787321932979829474877046743658690026190955973657030514696031812623486553763313319573703626961918934569271094291558460205620989529697242996578648187328375267267165847814943991911477061189384262498821492455367162516040037667822521166068526164100753588742041494032992594867013950257965769669676918755576245760956765201079074959418097551261344548926425037663160404314865344546594351389814109205786019450613891197808659204752815012162707582639369684637221246809389589087276105274076457658157401498983100780197255611589378072690666211922160905662990024552766182401054659436944940326682070217780101433012153585111413973787717161171726324085122178329127087321692212627076462258040256867166352185181990745608122607369458117687947548419756086733805567545547847931143769346630005374477437979479733525113157073676038433129620610362113551258811076467019922796935985578615642968795194980147276254518155928567907478360729800496666893906444198686359425639254626726600311903120291938582859422665841397714807298821892984403855619384485259458579155069026036402891685805526892821216325970026223937492814567353762371294086209677686819282828410119674020180532669627128914830262411400478492388530582056090335355045436072576494217245949154733335606531769028039128849721612650908824765237399635584741068268400896479285969231084971743929261641781135840267656869892287007378065900181660574922844883987257955832082807404201609202324505385629982862025824050277203581999322782942568158329506766628141383595604066544556405487687487062424609434286357015077581081412489548775704883761089858190442406436647555637429845281490832713408642090327961283660059396189461981497585138920527556604898396369514525482288405338240364061434831738578025467447838977304227361292039289165971745156664558726481086818164986521103328213489395957212113367517220184908790862693869435849359771218447614327909475233282904394084694039935944619914400430392558385704326156251880591367072631730044449666944249218134134724027048614037196697768454690039537910037096061361601290699248553195647923968609060651611597572466462610801939104677599100190448792828648293491947805027423247767439553527659876730323995666619778250298274527601895916720356537766870926640303907754344987945398417634776771660217691998584525875182774293694670792331440863898426890503519481824278291813456911893771561980815517460269026447732731187887640164174441311827081276315242082334787693759745346585072053723457237365495419546578497279111630730466597248900838065324322034368760760416254996191931800202640063495158808971111804547032726028577549828314751502493750486090818148688659960820955947196982746974967501675778591754427128537891564823328769445823679050843088881050448002811114688089522736804740924047246954645062613287617610767646415306657214821588561577910668473689942928722567202785159897157225887737458116305655315941570462340157178341975867698384027535643605465965261604139178995369209563479486296162816642695198010972541797302388024324659144382251463960358555369660938487693063946173777805361254622360601109909747653426972565205506406727721951934717079876743215654410645060608561801580021104497765093889651439473135742945943803200146818206328942764730507551521709296831322980144472645412745945454263996554163747652315544750934708238101627836220859904858916163617832595023640189007141954584435245845651783371496258155425116696568467273867845329534579183182769407992851429104313452810074859440495135992581089068625242813297640899878744258911268821187228076596147603000996540238767911571800223201301398861723684952048484674174480177943100836801660565048875343210985183058263661748190138088159674588379769517179232665863707342231784883843267910201836533138135480377873120315019881467997729152550451572567999887072976762020277509553577096984458580663223789150724558537677022710141427167375598808001300088551566471416351145818375513504867701239434761245253179388140544200614670736158436309811075585838136372863700716291579546037430586813907085807197998672114643936912095961551688692631504008083086150237642730857149648828261190026426622965417932692792131894093077457616733604959880260592685501341342113478246004062201282221229007075798933536541549337707600706988004980964294186849160113421285863512868642502337596153534537627377098607518702296135825199690815551792007916298386997777673005425848166748164119249646887687238871767412226199191192958725299686465908880787150574200705804001239903722492392104447781217136720263543304810888942237529718670463192052510139706439412156769805094207043516518630146618419028817191959886727866692661677689110225697122568408158523346477675968709601170660923264425634232375505593512327579001837076781842618641917726539345632619847632003765256461926564968035661140501222303424475307551582390791685344985887892078595859946028645810503516909291675895864483723275273856713727180362420624231484584948991510767000445322270634517636543402813256353979859133099361297181524673859386369836405338330782915289441813477842468326792741347467102574083367981031065352359242569379167769793434414357723063429324055883361781953356942742918598201387031002523937561767884090567283133752113382758987232661052303622988390773756630361424584688409192765047744765672350286459999968871034069783088665826589061432446776388059233926975064221206736882118134574359044504431548327682538993253571862482675462319246245732879839505769660299185793660815579459763196580106901602259975389537015041240453966006531054970981503839009925025969884947874684609543611383005502827072740868708007855272337064979284091783171920744731093686110393788410408082276491266002168159372425165161858992900412320013442936394801740937937050212226908549930023628115713296227163087797867902998568139736786383073478243690674797995382233806121651916417081209053251623510960059996583096803240467237318342039575497365681547458846431748184032005373827181258455932885920665488128980030841935950627059670705488492868636091851961742067395482646504735210548379706441758718302450088368198041315319197394717603756892352510820077808308873424420153247652055405994170249534928318558500118760308300472677062179927400101156170691311101846985092263323677724302324034028778482563694974496516116069687429638187638389413187297566374802272618905418430808655248140395023512327836689146908596514790963223900186396617288131634890186697845693898505379677901578810784281922225022474639228221161507067878807399086702969846960410233592331530649319944054383071637751834675176654039944677621688555482706479224671426211953461900277895672343120678276428080321638614957346961991980825702788376475283921000485509857949839053484105690608206796513482866283224748747784233951825313272515733380519991639778209030463638045637736481621629657977371597765646094661881214205506380171593921410486851728890725726473679239764151058575750951299952135398128853773677995366908849904115880981483382444556630733730884295504008318609768651391070070227308845437986482212772443632548232787341952177868291586697131777861093505645308372361782985466970286541732827938532250958848932180480268874603381169455054288837432917652612134397331115487619546843178041553362237608522700176129078050943913244052368290615511402628229116594494132436214817805058802599662893832602805382605154276914875356789655386844217835845659868833119824924019287849845579465468002719408952502306739571550949649417540871250014758396400117512855702794975523058666064638911038628456125890484446888853832853383079458408825107940834241397378647024346708149188034095516625819800177772928647246673315891213061597004697530305062430568981008442527164383932055206510715028403939463027803599312711944865279468622388783193130227373012538894545029668170157497324376989788408091958161912667045725298997204434081725211170971438736934826378749914887537241897236407708102042367660781334186495674625143563550667240004251283279460694637267809517465652466627954845039510829538334259192737656370086371448256100279504773621289073614583353886083953253685341084278343784821669677115286221905463902921116438533354850904914042651936649711113563395300009701986496624954802046309124205853440767812116206324056292321313358711024705487769082319528218592075814714122931728198686158539027915173659069247740409965865775281112661574829317413982907996114658247113821468557240904378711653982388046721735379891284376712586558657746942652939057770666599834999880597257032467314301544451175277268410545892575141003239062515606190237490339700059784835385174250598251662863453604927295924318638621475801101414041174952824557325867857582538857220040327922246393188983944788894148261876237197525271383097732350971457163267003344358392797715320761812286479752156913965505943996144959039182698584675849324907766015164816653312990118322867984121286120637055509468878715069641255615142131616043225415227760201937074037266684045675767158021256664824533375206272497957319020710804366247499940153968289250664602476228632300585260628672267921537506832699590955877790555108695743963922450552243741071126234564746045721811672704379614996927286049501215571571823663930759874426147880754949264336497147336199393632731185723944118766072897473928357683903115764754269760237646185820882609339849378391864316582203841531183463935020005741231353475437980134685333700024341222807333411679758513873692204224640395012936905364980026322753760353581883799108975178542103764062224292283151088890803897806379442555749750772552662251766401122891811525237339157440339299693121976753112638702839557675761788435603344813539663374119838932685191472551832718505391036796902108245566524926162082245762739733222672745406708497357153585913386014307497144650485322720096777530117935588015147131844740711436906230479928632305789600025729369867098870313948969833852503476841719459257385375716933739375426915031701065729632805834661447399420227694213170408721526850110244985477470533526886628135728432999090400752947469852644430857799276542084694639561681126165071651964103491881525482837026273227338156197073930848007030730823725013255560428270746997327876332564169919919719947187013158776932401942014200141121292850111457443507425599276342199478153621173380554069075021686060616417461192623893626654359167418522124203449965446328457212128804792586306053021015914012487088361618059992230489308520171045713858151609751521334780235205998165710422046138225980881338959269399232504084031467562076755233773844449290207784509413002835969321613999721232048341834058327417876289531030377521998093703363257244214129250539210644020757604916809492612636922930566221942206834024248481370189831399745904747431009717929994217972944699868724553711965472007734952179998210842620403609817585995181075121044900148568920631720145578905975371460656807228398165456967898615871339049880814286042409344798504309349851910483115236608898494231283177406036564565604465351143744548023438081996072219772190977647357329214179778566588896852077192297493586111086532094036475159872205121581834919612478378733789030167490555567933285863851819816663488569027898903571545140750648907336940753825552249834641663448608103383422061296341350235834013590824174966636923105979487749333760431910220200860224602300509725417970592612702494770915922595218701489383210304993156772955788609037247365899892752811514835946767479696951697456361254264234655649508999001477908714602623422572035006996042205994021634778018897333658198852938971457729803393020826422068506489641679168653733113425792764600884067131361805353498139698191526535252357984774474714139130377347842008412964513231908378528556725910436215412400963954044851553343941922426026362947312387099001105245672769032507507246846569474959144214678402890102168369987945271040766699145142672002269451303895861222643492128367953903989612272143693353877649797763028366786846754383856707291700982182664593784658865080056599501096064851047911031294358108980830293835222360752353674781579100171279030252180520532406783584845648018395911286805610985985306033173400078063925662251865253082785711739844843380480580268169998767236551848372378010482031722849228139048185056952195489714061627803189750276856421585113013490381984523768238645528582273715422656425974089875010307080534147523042060417703024868150558972568394812511856803777471264977206361295634260254363049785776905435218801573890955700021056142507322791025201678082056076245107616881596249610834843255669374153845707986184863018689660037804343503215771483472398747901480383983401002201107429062489541961438534650579777335613938560151054223392911723238468613013594810242297332332635395308194289705184653851062508192105276506662257854242863643770254061904010866211834571710964391699379448995533010427123924326410881254873498715901540261514035220303959778985903705113093669058020725763238596000173982940400449394003704094891393423154943163280869422059589140719484766448543101862811320691978900644406059895112051573409701583522760579798772574411536006783768683382291785494912798741299359370735123923437085783928204828083891234366946001760506144566092180717010594546701235590084000731848908120455233469423869173140523726683862809803453501128070266543973122279965265444487785399042200634877319966485229052852312148535395345505696707047622812404323570329185904677696898624556444506784890754047480412334008604621261333842199416502302931689149472721299414505578164603196426651381037767651866536828879848634447896991236967025367220491293554124177900336513918685147448222433653245249888335998231548951756872500285017930158620893481032563701830866671746847867864736634461156779495533349257706040360884344865087251846017812630562551459597677873861451155134305630803071089589020159864492079488129082202205450259375122302339854632306182196460570439447568171374367500760603771475078494571929992720947070546242322307238011446649772059703171979130096664134940925059653874120283631319586823089115815885598600184851844194630962864424831760707527162455844733570180318362762184652804341612794991189678153534348647852286663403541424634040152505407796120175975862888780742733853127418869838415406265363343698357507493104280596458587140777896067258686874661624936157806021398200519607088991389740546346305455658129260848749035818991070359939463249304452157467594048943443169848799140012585466173004050163134203414766732539054275906911308631767134612313017542480513878881679272030474269303657672003013491879319628264233189210714379240571100575093167215846941191086539278409546661005238733454128401626291519889322517794896654046255222986191197984153407857603579315114982462976974524778825272989208344316365908283105606840232862255736144412707087206747954875625192747587610360241752270563943126756842732785262914437490494965902987579195277574664727002823467580347409064753013521870660347132317245208933446537564392668210636638675603659239470682705789622168254819615107920058627590544247150900222836875646353501479909305428238976658279846323710144751179089623632616915100633456496379118356307308452814372789739347335959468910683240415056262230486344242191362070631964429021895211199147935769412543387648769198219813763289101982816512268158342969453815215830634745655675157687909157956890042417338998281413941641892947304135570037995059093516756019076616481955754989469982069342918484547170187856774199895597849166507227896329715277016264166264655738411108739107167015926124590792986755782041651860010880725126422751550099706853156134057199680677008648953910169766247384045147178502562515808563348428343707803927198583904062739329593061529248658104036890578288819520784111902400715212718519477746287328456443254513083373849492924852354381122284941551082955703018767818539765274870517064727512698919113323038820344925275477101322427509251419900949276136507147544868500242437942248696064709769858890836477868240316869105014838344943472282208296993655152095206768182926634311735692484246900068303584572838330854560170474260881208392076998712026317695834855815445731713936826931576250194158504613095406244460462049335295313473453459070158541300756940817376918140465904471404401915097352078176936300198017608271961236141915382334082786211651019016232299742610963237178634982576832203123149502580444975203095127618094556263274415042917782059255298713433344753200832348627451368060455917742715307503406333828628018727761337398812330488849315967977829233656687897078154232671836144351898090944440958110466931408773838586030066025166240198525328726493724138147727693177712995634940895509110725115592634438366526493604183317309458075648429643832202738698494511621864585928698480873775467572485808724514648862583739649063673746851972143145264810837115186545463002968881633375476956711630354465853270211285707329240746782063332943316864782032194640394755658982717041733665378857692497429569206475102981822166679523630194977629020711725864403823754006326356533425927184674913062110681358712118368280112040020156757246253763628151059458709618819400906751161963173317261139933895582924815427696041547806916538019850605712791842155664722946881347448416304056055748134103681297357482766510978686133578767116847643064680256472887483292051653813499328037536649947867344324916468469401082027115015807416790202305787134775139620745287280683919008824171572767088471449611051203223861417001990253232055267937979568768862122484174228586684729918040127361318271419720773270081796275229855551791610498994109752556708170847174473354894237191143793539420758383960322856210636217198900786742604983080418585100271855055726773147263225914566561347416247840718967970930315292611142123281502881841634294860364392737170800479922794964436787507156931283485905024580971325868575327873675702517195172320335380991196889748885706180548673426268826365983011978971886671006451802854650257822982247488361659867961620300355754827811732971151497362711045944176045897863097188002943747016611603778909384503315573743125039869235749369236210886286495953309911564617573159259389880653759026068961181623797526264974504016393225377839009481924247496689619233996760091314510786392071535257652421613461378572978993821221032292833364793372343397475030779862175937064298378396130662240297229210562795989510855816475825947709872540463741816800711224688540558306560286990849404732015122230132565551279157034325936777692292469093835966268092933662485058567680927376182374598518763972284724907585613596726621482758700434070600322550217863886740619136565029186976215593304939427275350551486354890153525447639413430369530058128811039798682695789939838253773244525556226348320874637200562614906889223541141034916532832105092726639920607200818352828331339601407244007072431642026359913985831222243769055259051880427674678397066844807057336154823055380380991040088260005849909469070695192430882528843578598650525546069757452435019765554899709758748592502159038764310761215924388732919650596319637198730030614865118698487826897474787879116713826657586115005164746575224050881742008030659620826484470504447863857781880418568572311899707599506993726845795122258300887382347408628789749833738838624327353219287607268124444669248974063423525449412964081589173703886354967550739464528499404932523284882505351415741174603699968608091730697737376342279398157114867450140394627415263758178096640792619265600011623178231302445697202368701863428178400935032345345892562603051485995375856391054611591893478827678365037721740815470347860143299028967776449207468394056362128616631263638138863622334533392882380645881168077447211735632215255138540514855164446480759182868587085826309568561490588398019457709901423886826429998132648626371647258056863212745796387088001215893345762873422758171118991013778063869689805991983877549180046928821012923522607828467957893222623439232761025004013277596332434707256641823481413076364139867830341106410846250306091617658440813525104622541492489519648207242441765353689887509685723980518684013804269233611423965093155495092931176176472152574857601838170356716128457719873210244350394042981736146313349711078859784028135825028547070272676020829656979062101753687370183097728922653487670349515729756364639585319037314066463537704377414832436203472043885997202299808685186377718231128521398987676356775435477362393631498451076606799851219867512551354074429812992539042426202783971136999529605161984850576668402004255628326099417268978575913581258908478705747962137637020167634326265145130258126191310995130912940376732297534282214353391564106129167534726109174134222437542027892377554008292836476186454353938565804813173990868010815525272183241302069827697807042267382589434618052126311855257614075766212571854079665791697539201923134446879772140446471615009588985931453875212521961654129476687862979533017405367823582470742479267164061163968973558197375828948870240638863815217757417090926272605029849467008910298578526326532699561170342682741894054431812309098335195792724661070472497504448462616519104028782798378753999519411346616445481498879068513547285215180037486469281203610056141797718479469908502182186540219641816008963806671271808696958548888719840019559518221288342970388381917135662510623105293162044563162146009216186592031521071081718970827065337088522499357822107361358512930244029669426268252814345552079153251388721423127442448563465266002349545418846820498301504826507529439982915720828779913968739203087790803149330243870597495416076430673993332687632947306647274709003114508076769970088185734132339074998920408020246261761519126552821004134111886890116269117264799822548887086107206142771847675614756226719482975824974796315750604317366176691473328976977565017775854796078603338853753584303265261747044460228031364871695384476215160031215559766924052478689597722695641191349752818536136717115803406134653993729008969285983680347714313910859920820826060905298435589776886648527785406709422319913693210210568316376887084347235684694646412698938732983068360786461498057481757002044864736805301183468263224037619292763378843009587512710792417014572292545422082369601545417202552099087109448087109120089065563964432195818351106608613339369055106730351609473756118482179967977967772866305626065392638446041093574737846000743649728431153563506990082099597071279185580563485543113848520572229982234688534798873445781357172165298275098909224576822779019025279351840694941542526946722276294192723340625373292641780192893120791877627127074015905088233009179412271951016560546734281601778359490412806761581853218315516694912738688188473044334760737569098264608056812003641176881427948372796837725246800258206377543758256598711875945617831164481346773589322773121839492516552326213022139400860236075861700484048641036191432327574454526549617779620327720188477158461663495780436938219860155920067335857825777516746084519682465579328779176989592370869286889905997537183985235537923713143196694430156174617988563477475506248051777515072904555729823823438408269578505049339616874472947440615174318226780259306129342401263208153425520345230355786945794225678021330409901254544318850978172117078151245232439643280816878406387659312171467604879527470435606916963466498304160836191322474771223861085709550942140673150950242547979817284825391080008655660584374851306918956472638042878023909003412161416351872530548440135548024347400070416050694184905617236603343776012764929913894039979587266340285782410700595925431209313756287449196710037750312871490015337895963895161196320541132273490136734342659333236536592615259045934961280730634080818694466814946278088272279995621767837610323461880627390527115171516552418921275385548747244187292785373382498117131149976076922235403897260014607334222846997475933877065035744239162490429550924150223669657023223798573170375117917326950201810452090003126177211364649995583227314548129108372467630764137575423450782273957465877040637707679300848219057571739211756172026471738210987800888755258877580051362717361793113268532028382514547963236442975649594703805282686567997673837945709793821346264032870099828979070759113209264539964504403445310712647030548618489702196165668170673073669186412385847476451819328030169070322321965820619650053405201244900900963730754548684237237055259042222807935928095090974389380086263296315934785735651752441678625645865502069589648567013676415979511546749445851197856831846009190815119374163605530547362132814542967914511189388967384166498630876042680538798143107535512099579892646704567168196384659354640227045666219736113481322325880087913411176891845879861340865179265960069790479241318236907949565017847169686670188002688244872262002607105100135922014897012340147737593947191684616029472880372075667183579608223470647126706398777053436799012275390218931541106409086566248456491244518554726986225997836908153385230935065444045560421965609335610338521299637999295178793413900962583920560499772052327738062175300124972373466138047210840960914397110513051717176033186297202509404213764205431742538545049202288284490209423357453233864792608124737017084729873802823774126735463340758528575456853603536253546699110324615507663011101106720892560275948355775310249089411400510528158179088475585338153319141432075545485958023918176379667209373651635754505883720956199048346969649730730719160019118188988042547675069470632186988482125333260438145488734935437592523829510266179465185489227561625271945163330710038991342708773816068215590583987018052798630935648394941291675646972899998992121095436048987750667498742612992200866568673749492507980141794571753852952627415043532371745424385821380786401117831385884451130643157836528532306495649102966368885523942070329786675933037661276472605586889984312229372751674248910291553944800362887451221724298723968563678048129288314453502217597266252339405698269814679736885240027801073345645155137299061168181176811001546233023790936417394882126298028716166805801119725024259013280693505349773681340462764688632919309735817932097481951942361051269378528474224850618827914159858839593526620239456568928916052672333407133244234161449845196517056000201652450156592337904444706477430508775870691732210981855582301477925128909033736343588820907654388614657188166624475881902061239404383969277924027843500885618960999369980739976695590330794804285643499177397469719467673888396451314306576575210271414667690340199893410207404219434780253945551976717477980321910473228796769244835520643005678896197591389045269170989027017743714495936940431140108596209564775601284076324221859359968172596796636233812929941678020729359913630122896114069931315206125104710962161524414686126162915623087564726293881899579299674376347927746887833486002491333863473464743008884874096210268255936591116235987928849162038897973873107367499762443313758933619745785756390937772767521698072346593845412489048472580523339317282256445975366619703313383705946963916090457806726915102508012899048338053170944746382282196114611393324776868438620828491366181988932596827676337375902691832687660699018461683428376046067203611727215223698749201529318919821591599194604352995787572121843268370952479675321886404297166487789191380582063367359731579974709545445210749211986942825505442942548042715662706700140197838072563181214305853913247103812269342817644026833091760368473707281395959030358891097287511116983494135839300806870717434810679062570591088874583686434555159597307769219262670542575506913310199433596015681070952717150235258181064006935890341164048559653846236402811020948918142507983489869910521592398654031418236457954280838858950208707213342134681354858134562421698574218366043872809317440612358720447374950956204774923958093823255890478586489931106107372499674141283685230306283242201326501338664808025577315829423518305808340987637322904598914413361367433310529070985943014373951215819357251817738700562614117104241239426509574239789345178115825701966068057768381034602095578433984801580984329499294438676924468042627493048800764462339529219797340238062899314425898946804942550215630370883675697227399250443357036828050328879325118816335111648911561246799930949558683752581301329733526505155954819908263788797116505022089713505606429134596941561243327325925913548400059222387442982497270640248422535122571909983574606338060833516429795322928367100178917153244358717567241542875209801869075203629616543978422985132392045072871537184061773954803553606055734565599045210858491182174268519976428318090744585113688044050480575068284757544148171502989266990264931995910745035442396977605526083009056585386999482341992380386868510360548695528763520380548014604314802345424008219572965458349524473338810360756303491027607038541867404519133786911028163381709882369425375236089189191876357795162471547165281425233747554176006590697244325712717855206091205000084115327662326167212202999311056080755740093876089476010533639983920001018152618635226591532144937037843692934877379669793838714698211524262611405686138722741037101049411184267227027122796578045495449198167158734225525555302141174422829111527347104652582850562591014938365313656940826776189613159768400311594825917437074185552502768893996532914661720358021041257095079446112962023530693805443609137067679982639932288417783336782641497716513953772468937711863683545483808546432942215303232343632778465747635419581950024095712835581288335609380749552316664210231491217805429029663741978139807421923677095931398942709047532358372332711788865235065520129123181646672687465339155484491772725548945150132649142120186674890319190370798161465006174650759203698909301406692151720797636751139431557875206871203877198851101904258486531451167921623416744610969525825949852319365819752724748412113616638626873561939824661571183559368400589832670087524806915260154086666271692634384447048143011029581152350254382594107677185687073747697717631922918843696682942789381340260202183840421433401351141256496700636207572125722260172166726835322417431446325862032376594046173818563515609205477149964968064691737813176840073533790533517482713798235841082762509273220013054291672840871415941757442777848903063136592440206307931858041800100195575000000741928016319354070608765186005727720894925541719270374235102513314337399353271605768379781320438740090794823682646218539795941355143157227615364388999448225576848781644489800545889298287492318751048972155140748931121968805487591186635019101456152814697069637661213250953026233772289976968347860284017929363739175064844099589870341994278026909249936492919330076319949025613069682495908498624513050208806206947313124630480575480847228470090269638360447156255414426653677773201917152061036263400822307963336781322946677954627462165457463055300134121046400022601076650094074520869741231428167390476974268351508314738444709702136933291653649540561559526876571135242212642761834858482022589282922222968587653121499011186561134725837781476824898027886669838794723965207148798342154393799604662882961040737368480255293289643703274732701502127269568787953319189562194077097826700955999491784417766275453743583594663727934048115613173913446617197788746477064690761386217295540407916688403833008712755831711905023320261352702073301469833112888432633406472147025526822500207921680194486176069009623262876622565317063500347017540814583860384469583274818944673186534133089933256294551106902566137009207035843369457182988424351832747715831591068982500007942403463092007685194700561906465513902187302809448743591123223970232065274629290827785930105208068940245750828677979901467046114273636855753668219602594743032559336241405362939572405165652805776621545098440220530487279383311064127618840652214587683250833925246101635211730887327777791228972676778652342704320393502390407251847613290726435920571031173451915178986489081874879794140127297069094588882724525480817624815871201421594698901130578197246089055984625125887333143579985836783457108868111955078855978701692812021025823556716693209310395009386533847679057521424594000942370201342887122847527126350530723659511187122214152184759594863016803710945565487955731053148247156513364482727325972411859168728469106719198218812008273836411544981351000836715957162831928653984214583607993140760925277402705284062448038415803337339272501601643312868192056856000495973508552365190439205542873553860286840077574688467111081947279311749586601511521041465860416306507125037969968727596841626322332748661746036854969018412421118470950941774606786668230331152407078818509215516177742819197218622731591473622065739792286658391272289175929778064895812127262693835795552467141371191211265707016748434330331964451022662256972327507270971132962513814323350010460048695254361518390839294714980017681667031094919190262798733973228180976010930136836889315330490030734830841156925390877859070717140238830102406298266901050494083912222786038661835763051657938429650206774334972938995813597281177378554750286823181358650645398157923595784191063961343428587032149519695273213489469616907156902010814415214123214931200506942808975623099822549665373624522737592690500139692247706087368926337524308092127851583723802361426428507046750286770982789868071418741788023555458273239189511224159944145793972177932019735783031893847880026387008174298809752968199575678197563338283331807523101243834766834433543324832360268643513567670023232573168887232482935130188867010926695985552234201977072736206730423395190804858688332955218486318369633818397882292858664256412379882784970513982837511546642789153608556294280123296484350929860318543769932952863676014279836070462429669603604033646950622105307160653256548918842136372804871362438662701822617293829138570376128654144392518931590765000372500483407991009818316805310516772503541343613408324043420264365475793035366541808698207864928709842334806223134285910483100005715917583988057203777752674076140888233354360440009802930029837844450255766769431776160141311724732771439537221886359859741129896013264184309454268944937839187166730416316973729369950197355492444654293387138161433443660312565980707579469435143439748552273036369418481039476230013072266516092644539153575102594858424340336233216841081168995289621611923809416908843042200070989167169053813216523840566518256139516496843136466126276796703049478544708155602730668216829805340808510823905602022496560396041689501548277224730250631845550057546432239279183892118298980322824720442483119363829906411524028525651941477993921495338441399452755362027578081629684008971627689492802333322488353082260382529453669678959599242107580699106310641446494675012310339524643353564735794695965573444921086774402877711108398484020264218382244573408342734164291484078338942834922869131329013704822536475783647996400728917087297184730025894006974187022880891379264894128421261283775346022620350900192651455144148403593532557556214648269708665200628480320448258395326282410636651008198306551470966940906317796963079539938481008614829221056196600363380587666589226123789078654672049843208644410455306134785814912091108021328420413012531796382789136619432395297264248545169018992567088353370323970472861866067377140551896523590671546797913142331265213353679951462559995862304968198346182436708151444985667340707926088303404729660862222084500069615194447040776871030995802380176525323237377778393001531711321948982509707168695589307376361544563473903327932692927238939615649267875235555273627303558169448467905287774596889982803141659819567840428220111119055732932360563939310493629369633485766575641845000012800752550324299312690959854217819350489585660615494739740285464864628682187083715238799337278784296156087634614894673035097827732062213749396030474158428040544681937833171180138686162467092013468453124910018811511293217731837543723279301841359391651924207356529608830278909871630304245390645331835689869319453647835828338946011132972363117879914833180561571631888851650020073166141644846883673268767545299617328486054969249139187937087599739819424814032005966536436685289687853179854282708798911028882869895398489689806297744291409205757543565692422573101756221849467772398963389553220815664385209565348573235512165074766720781249130004173026266991880943711279332991702297847542719044027871066950622698190687179372599796768635000662459293999554172446165808544856845288033361387240994810549460860829611221016040603902237949513922451119426450314733377208398933004975990703997499994174626204109274705170925531334876143639846081279600316673957363080250603191321504571470411538421323653012641175873220071280547431864790104016730283416940220684485436124119020789256791541888815260526574835025743820496108692574161070827182188713921227916186608794687718514162411355310600450208987456845523376593195850390108513855819001899506448771178438226060272704174233559863673272734368586243722262399040016562573553675584586430138612430515609015400959963561616250955190421355689807144238993788439872212807306977582779919998128524905861604875910283899615991644812434552196640566341256547403334421032360945868338630276124535135494253374586442850037595004074474796750698536839188706525725739077537166012104355039590416670208239578870628884125232904404859101260758031181846451995251892005094865297686405088739374189916048913468742773788579746348045658237900953578957923661035785721925816195794086748316230576012568405898649324550743072038916830575791547671545503403279785872942154855154372480575357464166513003407070346883794426471419078573517373017927208584251695753555986073673965964309181411927823706574917762461302905928865095765483227586172270395897802937624784743245757536147686558336408829882253356081104458800532792056285644508650223790348208385841436517366760178974519805517781140545295154052385045561230045469239670920670770202807146147833336785520464205834634832163395168705504988543981494089122003758385931981484548622971705433765796374087873121222873856683984204350290250550068919387833158049853114565670463558301556433812651572931218001088969330855580215336239813272309238350380182178192587133840014455771012967441804891705683109059480524816328838844581663721122436983226236666768889457521193556439999850652108620321291089786000644312886941030533642850382100557879617794579149084868277041903319022767708430200162613168012326602970685080215119384281487094357821048328010612884880195320350936101568796442736105993659504478249930163822211143527850155768951700037214134717302793411927385792946362344701375637581108435729719017758659920218375076663384188705041693561150156290297032067472628324908236911556939736077910061469118166690141533692532102987635360223734413433225088891133489079055523420628733682514059411410079343878627467997205346375864501256475858438136157367438969161212851340468765959941331748126229516788575402596335896564706161822705806356542220728233957592036585399470866794123256909489768904827680653298503208102043796132001465295408799414279987650434743516332160050645380067551306727016628429460449293860454646847057631766552684077363811907944575352151259459667384647917995347639847742618368641053470010552028705958848337399517572082810923684734233246878746168124111609521065841552470679703401625778466428586743387199235339575309946155328290488724033633395091221845780068561422284210096570283135074640889803047332305615303588005265440722252206056663588345103518850242559215607997981674214840935700946393596877984315350637707956602979536462935518999768516870252537060613499788369755330869718370932045611634574530549370429250319396883950886359875374306729670074838364675419289578011271375095689749146512002657568723726054787453006116350105147601945447218075643741781317428124096229550547764454296974566915577104965762225646331508146511233791472866252003247555749060798017881578238154797458684703944334425208658785970198687597477072149861932934506439826720679217540678440430448997432970526601425191243784641224384136707389045497376487565393237311004231043234403150201886683180401249390865925385359035682971950523677391253132386852583007735477116032636489844801920091451458422111488940957756357025875434413757940451568344593135646733527288189049735058047085745673261760978107101005770470953075519899890282850269234160999542320414004154659232981627806893960122776366581463693589287410649378842623525881318587699096475019605182334889779108147651338673088876804210925222068167828866546325023005594163254396352638421349153281707553116731777286470717235163773082159378897436428445581937388102769426207582737715535933325943180734521528058192461794667493353557975418242827184741497751336314657815458786150877319034483288935583525773434970825422374610179537097051899127764681261936235118258384431861059598775741989509201085610831747197068914102277582031253655767560890026207652492760059242997127770062421481902585015535560834588847860697047812566712478071070511157615143473029810648112026107017487696089707107089734813840759242513492797051547053139225238802587278877324472282960603557653692656394317772898039073338529491088357344296760150573036878467985658851420545264799592941499181680587148547413490385619466982798808605425670293199832489871541756626579278714053301196729138619819252563683289142232603928797854751217436210677621751333719047130945542965456262264503482668990851077396489439922612433700048703192950446817538342459162202483015858173127732778823948025188432283247521774190666961892368154989409875957833333754961222016256637153877581564844062117166840504836677733880915591360150655531376366121940756014410584498598545144629440495613562428684467702942158155144195085844684143908070329853093990624972367833604213222616068455521163745067882077955811589737503165346852470124640629932731371017405125734977242224025390209087028205600064645698842701524855509937806917819142948840657223281540850755438362572160897322057490346182534316064961383203126858072831726644551544470276276822498753291753562050739776926946332727604565503384311305674899401372170791320040917574526213970876948687191798186716878436749502630554064248363665488093662004095436939118968010362839658273795628822768165416346327864468003002564525346861692653303651339572203674109888208726815423861646121885683315344923434129350432148646679088283249746471273478133636479971681263891790352713741450745341768208803951602929523605977059812997102997455422517154637186458643188668980983071260537424171001590694934929166157557898157416141110131058528352870556520685364998228299434805287830281617270301472175995685791212523756394936677780071075588063689127030887920257244531771214964028720250293499597332893926602451063285669628840561532108918617641331311512428052275937653161078667675440443924056641664360562405079332029540206885326987863574151579663342493094456451946846894763631651787467373416370334618886823159930025014210199126356570109801470760194983026143078871568343900871295200810670777682030521306031674105605909065752268061880251165307829708566881209894313083705084824254422089841090142761633843655915151428060431167824029687299424695751312135463457526533278059198161492474029202813327437873046419257640547086698582509934760368165259172997107960662340452608428624920467636270867345107332546424165264743773163918176035497057580649094939774659227082777113192970743033574311245170540679826873552676001602421341937671116637016414447439777115051543668466640808959032522552040775391848292568851895393288580848084389672627319943188195685292621799511149528212273105573065193054103040817163387516538092820120657169832215072382031744924237975499856461844506907163328534600122561980830699104805950398100201575899053783792115315289817349154718031445601518289560942270921653432739077029151268090574097698604234037708431804803869753465734748602388970858404897290029667352015352139375655060316748587394030395697543211744084092675059264414847207616150400680549896144265508970369034857336656051818936883136685790666662572532989563758172337954565897894592640972490412074174219629450030033731596170143174257468145095671429274589903708469736892298755310145182017797004220411672665740535560898945940372661681578382256413897712547304406591965566494113946740404519629469299630583703758005562037052404811797271864013815748223113499479625226432603179817818858073885861198256173107825507264406391297126146066453398020910192528373096197697410337326908722900252263402046279909953957605052595691304015629444177591816295417121694063712035663388981286672343397132302063592070464014107302829518774972620541451416304068022252885543057138642523531228091711081273275629574757364156313938393645676077167862805043549078789126002762602278357011528929617209512312623465719616033017417615023368784240170941641190021925424606280495902046629344114741412737514114818929668434129927977607916957448150274238204229690813070429673324365172333936537555547654640672342275941148771621660205849947140081087414167032194165430039272466901911536924761728617967797889128556690960880162310613699299241903743241332100652647626811754581296806605791031184288808801757655460474284702478629336688297702448487695744854957192872017726677154894652714318361748855878099404997968658009738969069698025882431018301073644093056159881540025574379234029765824997924903669667691122693750212636768359387009183169208494904174445997876226077236794696119154573717363474689443709014623771773998598022378053102252461226590686554621967338079929773021970908909228636151031320424937706484047835198051366552976308994043583414387494460416919208738736751109683962221832409794151720024485630895604790642756061406652297077742908330410182796187048994960703430479498270186344078852742293606853052040549219479658108442213805098226740752834212623153447689072502879068863746154852437431449875391182775916373451950025480656489369892076149725377606036723494993935500138254108983735892142594081633254982783091152012103036141833681770409160223668788981418071782237431748672655372541775714350291074708582762271857240753281256021701334013912193995613239323296874492231769592161765061662774967236756693486404638934324200125293136738132439953705444731894596109358951654537529660482190650602981435497535849101091404657110806059336422391111914510331250182031863813942151878920821586050414449829389228676791463445287838809601226768832735776035496131012716694576780409043103248954186212245169058418860676894017651829602770802927534634390997061835173634056104079265532037643746338827740190310526927778615871317038812252566846174639127620136588506038608490390083958494993660125885803023655582826786145641435197124182287074538979900925454259106399691494494466357871087881779814007207609403975727033504926342558165270598830696333620696554869847981782691203022858226455014377002883921220678876361120504906701101977139341194429810714282609291798358111004677462237599220782094936546094910391290870802586404301420987792328666591518794924691888848436330394376856956475549737021974694927234641099914809487541192755774387359306883020923192610981586190261452749644355214185055943873388920544737498658252394681359328437271569230931599706658826337953546854265219428706608853512854387645984620314137202892615048261045967354179927946336317105714950153708179605568770080279675144379093662666299421330179366227731242496626631676677181864959110301489770695567325249006565716815618255367562768722500342332099704991410474565764334644935593543689017319948694853050941868611016203911684974975863107201389557231978655872149954372593014182514844485177290373576517788364946340862306180640673029016433336302571351359060520944537664762173480760076226458414271907830130335471413719189516066661374272134914333178180305514344357862848991435205543944304280200827616914669627590671508114652199902470888920912939047030850493727044296809465908937636610259113641654562000800374859704088274930134138218063511168746658992765679016570662101395532505906957484653079174764988487696669220493804195115361929492551459399147913917047937759301878619044373750774686277591831746962143744579293540218397486430815594895555323304075123040339160929736158883885415421554559238637174943481876381188145533321797550184510285335066595199972673028660609569394967708714395132081248178816708379843764848469368650236381277060173759361688536907723945095427867181599104133754553596555503162137378933701579023600596829129436608322603764156900392034623083740510250939518940880961580526043060711809558793832634491901005079993829698106618870769091506521211923637704149826601322590120467329465212577986341473189427902900474516856511266239412403727969229763530695692381815643846048372808299934966033874943848710873649071701532780131016192114782054779934654270865003152737786868152156585980050590150963785729049473591921634465645671254897269962809923564478259575354403351689511181294818332212722476083507436726234658523021849561891387688693702588235270014022230157752571605734579216228502811375638332624439934902563229163961507013664489344216332276097918198350204916361583441181568630024454206230881857698938322745075125506494049595512597700335729766254366365612526108094334488723008558133000642416747173129122806318485829870045693021267738652451516647811820037903927476667482368120464626079174819238306441353186923007344470349773440341672300699935549939997823842188744806781179752119960867192746236140232422561655201726048912298494264410698004865359147679087019128712085477384824992592175014035289099278853522770574720732408233970813491778491031128424827369209025740300501259240346612489767221843886702799713638154505060240794825322349621540734542188800413410720528464980791492938443377059972703540273050914523110164996558194048525700333552166752318108429680891833726731759481217670728536560266201825581518690155833043903105853364920892172251590050305979545344672522973501457039979615304068789048934399437751262187203371632368028440100120602856469090572072903765670572274132491580433545642153306566556766479614049426910600466826636897406105983646792236311682676685369022029625180098984136981457518949651423145093613569109900164448475775748411326960711350793362504871884855238542224422518021865506171769634880079270951120419077888243948690923325975721270671265332357749392258577748761341454262375336964673482411844745063199008321008921534326717693481674087792089161979070728088661572057704267664789507781422245936786114750904095283943303167042963721241555473473834656623478723123323974648544102009667486720995794074464254961218620994112313279476706802581827751043906041155575407914500795404568348452856462887811923352386151280396026109096271159109147389988296043430431511063154809177998179433318101101983207728036196663883279863913961224957116839658828945196419106097710112383541607111487757121424523756078682752490878028798456765856140465457035570283295105427382042673120248977599919080847278056499741425000438272682917677788122970325928321075359473072270378296527016760163776124811708110699454798634021204140425647192065164482486499780988610200676386098240301514993135746452192589401802577456905404401759305134031597528285205921386282355980347415327095581825136796848344772363775547361563711376782838339633576344961192782152381149215683219625718795168455603876999405874732744424424023361789995349662099158489290126105754416344462105046328260532202536154696002316815597082003137536978656911658595188466062260986818906889552950211018047971227621365592869881326607970318927184547235086094191548816904422747265809805073392567422170061885960621835196078018515063850851893137276478224862389956137301697813809433393431155644467941661854566162568211968469618456090000930528281139561701961846319986660065193279196293734946821701687412949961197697163562531880922182969382477641408038336884049008215841025914640522151295351704486490335346059314490601862485758063920640043359908088513259063825234683503371051516700630621400901397537301348447386619139476509169875067155171821557505344639137636265198466281977717588917168441720757364086011610001934016416506314284676249604226474002357809711273167926661391670947191624893875426218928799740714065278801290387706855864828522876408510181440868846341456211873860836287480783724044034529582794684339957184003870270234416909249352274676640036671385479862829377767998774522378304263630745202817567905349468418614371365619860986222068196441500347135876823324406068984141766638858470506898700616092820300470748553204150699761460876220004287767787732264361718893472806645935569588273862844451764615399218205381638384119047035565860877035846943345124145976786347336447485940701507577358257185721129784427313568862515047205774303218415386409326384170129854808332738632932510257239084284338680251733123204417470777569444619995396446636370879696940087170495984133416793441606951525005045750545545980219025876560589616788994844719176568127455214779821723453071279837120437298474818584361892335296662742227863922586657298650793983698789589163007002835005750622238194827802722434801654440436942999303779713273842179731603761691935498212937461568799739086827866637159131507817482763405675437226809058835325281033241807526140902605735499119378179844170605687138146776135590617931084654143478763425936248625266242726743121305755886525579896575575128338821374103710612944116260692061761888256744149176269932844927169053173446880585785539558916911370954514335013426607495755156522960174841761551165513969447503915908384549001473610223897057252171054288319526785058140237809582394381378552068350469628133661363704936019411943154589906476055061432253877680773651873395932009168276736377510071493989036816060359289315217900763436433406962556769089386339027116876321589680998050253733458482518162032519113491185835897975965014364796441494293301222224321801061065020186005620966222345818522106279786261277744111800494749057407719129412020323331186559010142084320306624644200381982623644648258497440149874055752212870302690815982865656719970152824042915208140313516008154917400616059174320092188452269226163868312294210187124788813897509235133479309822899618399321419401851622802167478244733037727703468825087129549254017165464464967635075205426550877587510014327315759000389436526083154572026084001086749514115000910214608383916260219032305302587335628800436818797533305088205537268758617259560672947296443126919796443676908442796044212087772153232970866461477441970191247922393613545117896295040124554568069127527451555678713995450990725263464632601556340743804373428303121010214872646334727668491357321296706875652493113188345494163360633851298943289032165464414329755036016082175241918457385157270962361087089925753763134411459533907374761989728288831783231468298757391676393716455564768389373537007434681571601615790278528141333715262328603066269986621696950822997614709489056396982891838940652673533993994033800932849579642581043391687007435652164128705682954258771237888236222211985881965020836149568249793621744444461941191637914494552851532189639644280096032439545602883723484222337148488903150786490377746956080512079439009079628192876294886897422121598725137260310583467655117548708670981275864626725410537561210669635104577374085901056604861257489283683889847230121360691262128000178822425803798392813399810028824567922743200094232852522446473319740835729622283469120103315270698285145688942337377043033851458724073132432615781131648007568920141709657015951481478867190967675473635378983273319695347320660474637360070375140140822593216482376847238495403900354425771960343114253655834711690114827832674649707963689686905623756074910613049395423655009725975486371110600474798783658869092407476182101147618041586960454203887151131371791152442982918191155978877169904630970215414913829055761528649602088323710304589443005280200768192965023565558512592071998249579500104301938292157296364581368581711479240188284310223158320639943602272081983066799640931020124274654217328086965440139212656915633132157528181649322726330628660243759423704871243109194721044902158731637081268524344673052206249471362748050073390213600067781186750250680300115430624614773319002843599469495713640989928752499349008139034212695078816979790789891522142872134145742633906430764225563396108048007871487663975253629887793171260491161431017085970935643327201661224176214134476408132410248158931787392803462100456454672564199350971543013616363923930129960450008199002882276734063533318683675910621227217878933188510764899371862168384296631885865854707623954440131370096488906506647126388470559208942829812966158947454336044767172823050380119457245284209126127657267325449914289275803934541529065671149964778383281144616797850721445042518349205834628816367693429566381625354303191312169783004185809738814726292439670047583035815494578072624471050548214198482024809116133873724913624823205384780068100367706265192662993557630671432193201024617372366590250467097716566172053621608809552573689586462566417430264175667300570205268013466968024045152567842246968222340826032474289991507749869143776053495561713068384346348248570632685590087302150278977550607760039281839651527665624389066082242102343925583357164385792645420029728838578895429145439543990437225232138178656954588291018511844125025226135673359117530292765195491546755348356283165930085791789999814866595773630065234155343397487172941105108528592674918954073948009466852998726036354149357971815953654514034139519776773877704712035163970403260870000264869947938565106252970004881549834794193918617389751417719768202756801417954687937365592618836935763108919607459287980370767276642842018051102160271238096198981282598162330812335623359788733153072599977070252029901339238083137508826499762833447101968227341973197088386377311132968260334235019745949459045227512680509047430285786123563546145622404985867736525260128142871524309918632142943797609933676178636415398338452593373389605808294717038122815802370476933833435683285226526980536262679471402360264714773077922139633052363068679062110206426319530871167420491894978569604718215761994725417396378753452030796840285898142310043755556168054905277881641046308543858064173113061691774666132034098626929425748195068234641689095314987877703983375691370280040320001361965841978963613679249029094795974843763436280876710931892700898306184617702370941823106915996099776132401905373021968521769726793984588582820457433666382547904557086592487887032304185948371817950071347637979822143292579469500690219021458960879782253962166532305673339701031002596480824999068437297637198107264341895726814504995430914070056133086241550178386552460201590725278776609972565092607358791796115226645208605404877001427013423890922071633539065031922453607918177740462185106587128057338455286395765803483340900217993069340952930386818877955106990183453064086894055379801635844658730796493308600312313175228303764870907686503073341998630943473409267635889159019821075256137368485389904623495521465403380742531003256928512246571073667835746499081147014440645828752651164116294079149884282091812796228758830645716173988507578050172459732961385002422901450961062676903582576507666712987880287896207803252861797609979018860436468186969387131121175918964363549402344859583877145822531976716953786069333207037716893338765526015691268091828748937527337354349359145350675753280970115216031006475106829485956014911818388443348601302218917795235968231086790557253761418388700120998124574296507632226639585663195796569380931831540749184731194680735881089586163404280447747430398642539244996080297846776190195723832022568403262930173677524820643833415629106056135012210820513379739466806124349538896582232925260266387788504631931517632054233134250450470099434807946313240884708816009948665785260096090360491198020118446188039779595491041320722923859336344778401073540396200508716658473652945817109226930163875274170705942541466011301073174786867207228713193584400438034872129617912268924269485163330526648863985429930897796720151921521771359463818890429953455830823299595480400581301726377132323741990080157006269614441669596091226977374313873875944636201389751089070674038549149541366237833117305368049216050952417465761279347936555958680308525713530698084430921425751529409095034269773045114491860886318706433553175719375193225263809141466180512954860769542827643229582754038385479735737287392337517702646649641118139712409565296011196615247577102582898471667567248407012184759453061133283919634054457418969520076814596312507626093559424892735305092217045994796610630771042891602285310854362697579615676524494755446805933383328611291392713781134004114443885872491546739670027023418720561429994066880342409541439541888631853737122900922744441264071205918301751442481128684599622887640115952278977519468434798586155203548413785974083488214910166245870448429332723596455382916735087149237417229179522775635424708581169716365108991578939180275939804518013498285166688816659384889678063618361844113608697614417932859449040129657000518149314240505462510311005772691347013227716821422359704677516628442236305013046036312774899100173707308543511743276869139299550860717692439711423724430838780633329567389634151695162663764790173854131778041343610028487981991798272266469389529610522263473173458826268450756630432348527507100278831054999709437313501898746810902967163004928460859331778542296713255859257657075849896755834577955656605044334672143133830686471108281275396609156285394554083545937407195123097412407273275299887767365376342132777916630594236581874521543907754455352996550891648264343689079478401458268808889722482760300544104482020662987056402958058721936182709874002614787458504215346193908600843625367507267127419224821794239025004549147217590229706062979493107194843694404395612034923576761921305739376638813345873205811442129103946907856242234848530178239499800402222919397398367034407696926011920608063645449214475088029400359974279068322857845842913974534727190533219113584771219509384271460094310585918732528343704260136747446742135264119716310662664610071107595709787088003312886632166412310992201231439821591061098407806964645415752166982452706444929287099364548848530942595297839328832182029505864463152911784037203292360336472865787632198397083406594866385193510087347546500599519376526403003939841440313585847485699435652990626730131447897872329191132421440969812268438578831280683693882761454503081858564815052337039731886459157945532290984267533720874605663381777099672360901598256894577660225927832627203488517697056243822894342551171512332821373076643710962099922489894259443423444983568858512453102584329167786239051628460728664340346352816005412376286466519791551045820734447421911969272145948786951102538215715847744922605888832886292624094664052527667615544994223475547881903660905029197471027025319957921817605346454480449393973924785404883750838928484446899869087834418503360068979761006681323488727245849169213203176169406748783269532143858435985751626074127646101322508554152008507425271417851066208454723303823138121726926370939093437978889149657178534600546397263083698284484393795711341019790477406676887984994941082968439799193554752895166503701708899662327769546749687121039759532542332324887005601828942252244518302996879794897081915669506194170812221926663618091878904336689628243815015172113737810084070352575202530759414150176705306131714362606557402386150131374674834281221099361500102924003448905720632336640201478328636419822524139675903709554028567662190952764457605135944637912701409708718677005386756055972356770071168574624394925962504038231990857152781673665437523785925437958759390071366387423032462376166844739676556902566905455535563580237234492201376312045154377931633424144874604334192351505677545870993824947045621459555350272329551095019439934339223073089323696912136834042692957816815800815701272966182021749052759433189937563732972276524388363365315185898122752319577003172271780431919247378591007730618348851766296786449184981319015176432491909253568399859071980541602649161562545307161304080032691702163979048913879404474086405452766543149992598360907143078853117540157120386685318755240555015271276404218495400136768571593082105327110937058884150944726212469513400717874298346208133214539801179399933875050929807838427320691192553538776026619537812371726462897786438133168129782389022155983298634839796331051459315480772592186210279954966035552967000671343671698662619814814615400187388958967093772894518790589910447969730769504405884420963313955857302329869379414420231496760833213985736013230927574386598762727089610867826420807260228147052173706530538651480888761249895172490677103430027654145414972973581163340298677973225923436330554855269007787814663572123533474446610970797282679597735398423891464673475475197544127607194867239941064289677073149048901205880100229562729840160798269766794510577778242860785442193107413960398491801612183879288214736546775061649365766193439106237183333905914682661220017492297358184752421691238511365310541344416392080950856435843057649437130123442547376312325277195496330931396281157311141861647881675807079353853053649212018048472755109943852667696213919047342331503625469865756714169243000473801197651399654297466793393107677493235972193883236015329998079274606565730246326231405629950869643628586743282644302818674448435945061635610490127069539860751691884960233228442963698723141989109344284147582436266393901374048918145614657899978739477850169756155179832307040596755056022440122337334218938483834099298524651837571363490056349881188640318989166555577304583620955647396990727414082098358078900960162750156029711643037366734297196811516662177858919378898249592959303037549009186066414508522560108476970810510020268719509963958340359720415786917648876850556896259328209421223549933316964565423804494674819922641337173198526752674355610315774128396846291728205252356433938020791546920175899612562364099568747352126070465709347544839987624178747022027386825502510601483492590402884362271349837119971213427947031887158118039714231620359914299732899484013679954564427102809138432665534433825515307424496863248987552351874830843342674919375491490711942880116905154907596135079101157463266478399466148356707657204368777887918702209452769934944578265037966981713467343748645680376981254065218687637834794797830896618566684157797228852373751875066889179668557402804422103240598871102423460350856280613024943183787305282941743137064243918254604726381081385688080768316976800435731471958570644938142184601498691114533879128088977962815369127058514857754639393454672880995192804886004086210168081401992161481648054448734450164417072289253496364128213505513491825390332977421139391428524299601943003175579803437768053480333957317218058566312650969801878300278418501574163727359615249766520805116307670770155847139660722454819455550533085462511109286195795499923992644817460317201854011381644730888917732508167604980897345477580432818478056725701842279244229220071791596202449972505901331277761054142468542067909133778077369995601076041679628592603806047571906003714245224853349669452730687629012122156978096416410546434934792281921273481111988380179625722583438702759244455719112663963761837015175165701290608898409336781016276160682554946960375823960382413228558785328368131078252129105525889992531269127203576692386028858472759940302025424954610532710841106813890563880995694708304432324029523921151495050294993682014749766741369912599113283498726554258276301186792969926216811025603999463042529218615415597405370218970934791238095542959401041040851685589225505764857848376855800074001103965837437441497945746204275681029985186840676858750242659999727200971287998687805019571631667379716799753692131048915547309889460747119771279890546200801293115598754899528871125461689109115257019284189362419161456175420330789666559065999314075077933536690036953243582964714174078188872343833686594068817820910958549173777811633560750335440291383766163558020909764161519713705386179536511015419118179640672578235950603607535134738144227477774403476989247121831568103379558362994686920275463731476340196074599283271646822075203570730172133705639397450760681334328109097664873816364930181744929122569383731605317238258546744501482051544648800089803517662713378119821264505804337324973783331954081003423378575952958345368355607753040892333648753851664354020114727696144792785805619219351446650430962955155415739217418005191076742447941098948459055078084792218245218829866439650683211447568348930482244783704516049236414778320531195913458239547382887200248663971519206011517372694598826217294359237929550429859705289677822440627138589965338381185962544179997120676973817605293670428867515533014349699155531925889267717225041250802502237206644042149129434770258845700902938946376927471305888264323138629156859194068115410154727464377032908111195459884697811345706813760511318372463582621795145065576728126884957035001082690902422460355935040987053719146545413236611324399384128179963907944670636921402088309606042824456028828121204063370766131029348399564018605259861510409834054126595553662269872283364916470729863982624864221384429931755195720279784008287770209186581183702327644104855612103986991111901823599288566751360233444811351764461182887632803211287610645352857632272263948318404142475826843129561683200045545381940850840908633718645632737941443328482972680239752738330471819508206090988413807105999281708168268017715045186360357300185595636688407326727054084125912722477732330076302486714025557027935230146933788053104494223710818181973939509666661288677994172947403606044694369896179447313024174239274048727699807837159050651985264074024683233081829660235985061872972528547665655063438910443231438560325464889878865404982009452106213849054773728126618461916258000214007307874203857712828897083286683717270995030975290695088242451659866807224209066106292444916573116212331579308403426826447466786858137213750249037152537601842129256708343024736398435571439223871564246091895030185962979754989427618295630176032243880707143265206397250905803320141404235222487144382110509166747828545324219788143875786461147466542605466218067263116670248746989267908146462520311452340752572281839105184346911405944206197625239146282709242482189729458864792773955900138199381749023737745272858855797086973300957815665482355901999996586209477721630787823330424780729344938784390171276925642096861744701257276624352413179665553494691064147985716131127713968114886889442792710868767275330521554437708169272645448143455678746922070128942787468297212489724525062579017913179931492300230835399988064726250411986215444646833730420988515303321542671586183678285261187667948404623284482741954302680185525314382121008736674172221879685416950027266891310628928119529998297016666083537718267804966161655428376482974828615808965618145791938931894993966078253156622485768979846106393199880212390315348930023417183155781274834236709770322026859251264771738950937933043428796898871651424645237898237573944752702728226011073954891190538009035502418881581057824014787090275883459404218449394192291897727368794512114157756361968240064711958415074922326223594183342451697069577360581254311241112503460545500734700002460529173464813824022921373467077384714730367472524959353257900776650134880539201730586018592742881855514827556028934746822353952989045274478941892046040900584340299635613807682157538014237890084673597462633008538407561080913770244826448053669632382734138367543207547045847299607550546268677114289119182917222912227769308119208736637299721126336551586110836018193545561744967866190644468944738027971430364101953257102507039714311148093466465153084472700488920632732775498611331675095598139488981192035696197970404364521705688116388874064561679005633301351592495914296502683131904396470146478774263721529936334067421347293674176917327607157608442373465437181413383420059183737424467761173578216038270169740440350056548229763625976025900037227812845120936122888421296146702312510328343579928829197891306792821263218579759391986103443259080620673179537804279187985903805364491742417936355941668753754401960305539036495817396959400986920748131625129133514681344172965617937911511156826934220533810802587551188026802788774376623728547204873386814002047598849488270533282854392519801352386492712764476405663298495415851159150925569109301611690336071729523257961737398291183036714251663743630334309967293526609058331919922704606211384833810184682097028435854148579861172810134653904088923694049811307545635551739995635041177874640358979491130853908255935260527506288916885896102486327052417227368247521944263238030859186707767295338870111070868687522585172985845052833095451892866609324286208232808252235009225419891198193881899992719355450705584409866877788463096472756694316548503962635224942458250325722273770064301584634173749580875322392029938354839084789159317334513601608613993159181129245977494802425389830586260467467672661497357955028384065910325508877570427132810586068909811335467907144085529619533307374437997160317245088773100844916072262759433094873857664364922157051489601037722219378821339336320988692717348995792175092247508849785907769553557898617271269807371874645846242541561249323604061773905071048430344960390790751842773110264296040332090985509745768978696252537815889618988529875924522536016581555896998788980341323992495540760933428719513072012691104755236787109659902488549155146286801703322325360601431469752640411840801361940698210578739569376583181769254367422228795950750365769033215279122038016096596192634192448391139144867598434681650650710457158549196679878943260370548113322190898776629011935137416116463225057386464503079039705093917004868030110446240856457834142889368284166640757451791891696190350203557813687855586274019312115193830337510844785567312425289332047014676051323609154686314845694473034503883926441958544241288500200894580171110385704262831633974368479435369639533337623628301002663412981805509902192298628050990087907668935789612058982172129284088460830893567560559691869778511353036762660071515666566047357181730765179408077689165218529183262159534544923879950914064860822128924496067385259025705930917188202218905534612975941295479977555481094808100861037737174741727147366429906621562266077008623101970667367712587220009585811209166893955884403836267201602094448497992007606170278929435527318752594781459325773248139794994473667801933579347921542586316502685653184462095480813915022210383224047830409536151834651477845780942852547087322237144721213037517800178174158954258104799371492169842360597464718793827215568095391925729387904225294893783171822079852407883629794012382258841038397648023018095545380347107432841856256280829299486931002245537966619123293720641113784568952617558067978199824409125430142933707770766476054039291036863934350480837398810374801824177389987430811878305633826973471804076877429517838196977994140105076534939539875948789925147085376467174249369523731472408592578604974503637410624502855481580864848639266955924770353716105749428877687299282526793680643694137163605125970569132285243900486505064764990461104374144391107409874424939717872094730754497158532345196916580615015195601058286354007839609902356410643402436798906439190326907947490584738836261391864480280738898172110162185946029366779159310443571601405709774123531225832103195356816937017780917954541571121992984234803985067106554514008356141289500241090309815973227347380183872711018884876683989693741311289160194167965457288355178829922261627167497197981404513729230778501966205624111464138886894641153481909441854256803874950628928751961342880047268391326508726268370338047418728709403247171382896269627809230758947878293585558065642530092366701913094979033845701050853287202756870330730958728498714299354823824018504523387256568266631530082705005484066689006813745478182967748885014184134725840483271870592891471110928972907234432972004637556595411568228044426004307651778205075299061251318891700705891450241181797911241627273490031426762340893001423720576096041899156993711827501022314116638882047609889386637951206946928169155215686516235482856840677084659970073437907952644140128129985344989579102367028078789187555630559474776998596296025549513933623395728849250119493938205857132230422304144150152177273519640430217300938795307980958146396327945321550685455376865746373513030152853034031357360516767360235696893460107945792767780900637805590126807673047462609164684843210149606546271172032765816954492728348990867248538414960884011544497714794130931172872416765507054825727648594501586101078270171512627271574435773515423850261682556623968585474111886053456310363559561587818909700555322862166918872129928471266405497355033867724033394606287537893632371698722112616201212224627229394630540991757171371484447808596287005356908369565954820336783030860704280742558132981535306664448024485736519759883800696702886250574701422744399368809349230166269164704987226628390736120149726659337228645022257116369112386975288483598672747613179702969263304099321776158777936022672855314940436239789536009196898391379448415750113511585416980799002068197471328621032530762033701755642197614406222355433866278335095392429737376010734851363036183860565762700482039312319805911092166453386273994372071756786182265257039946019931613689544221453529972202663785838197159746401698437869101901545482169968446934297298664527282678971529133694406311347029857428744495302095988286767955866285620549762882734000154809103055379686357420636896258040901771593493137615276268955925150628177094600428253059175721582930715531809030441668704639029287263929983494051026381784549452786320622722975456508365388292935118414574408495431781535883363234704683719748031014229682315305946331478403833830611100196761443957190629779821084960709580655949403308751559414815198558584168482479065713552658783677367189159591789660816386894504184091699923951364373563130984984500131759474147119759570361281149311734511486112452485721749189847089009035285508541067672401722535043738096798318044900418277024769199614790413578385716276055179785933783733060581691601322308942142419377068734878891973459808695860907440845215447580567184422114613285706439225292660272382562785569450490593640400686001868173439685483500648922874318452098968845042112097288912181811805037204688532856144095869546656972472036252164023705009768262477234721437689253001879477920007944974425847844295753162209628671551665914617962706410856874356142141836437185640403483796889437362685972995343053545161957216503377922794553035926562817590428761023714609696806082225993262856697256813670039687025854720485748689585050263923481641673237476326224413470999975456087923753715725501403755952605306133248641465266664508578854717893243723977081538605483357494785888063050591762092395668235543134891502884816358408271218305637140680346699985268542031120405174558939064029381840490840324847709364244181927085797912087818647325142724863145933050987058559595749946022556253418136550146258999709163475186824740651040872670889496894825990679196680652807839517955987726001679954667059892239770943194799960617699399697682984961998954930827396205159048002335757057494333068459782883060360087962359947777185510516248877638220527122859875018876748388916705264540847379600406264615960004094385819423379546043729267400365227530014677869459299900530552985419400866109662176488172644128047315755701385932621806849122895651837497437865497694695937766641257353779279319427397402003885610304300675788397160086901016627656896319037371084518786421750561118945939465867716568431149173192870741563377224384040066165409501713853693945445157773503207412890707628998606940362020005481216029338611244848426543962788800673133005969082973293012643627944964542467389450365385612962724221548223143506808077853323610341606024334289993750281617283430141330740333503473928032092964604199837183254359937096242090613821465002991038419192087058936486959717718164820475438024731805613432880210306101494909250117765337255775507416164714614850245677381693405233278978938579296191722878441296715372632120362602042668466866205700244221676772201895779094942085957688556533852696465784533629739213502848293883913706696061369780007770471195434479000214987627565223515187594701785900578697867949508031237732399584987127884805737761422513089140017118303081614029761244427762613684264683355800509084088236004817605526527384904703350034198339162763109480384612770348538880516765114753280147696825555530040361822017083700579050634706557687453731461201489562994727361083726653251820564281754418936402753694691937283043730686832240251297427622677483123166095836129479008174513692601713918284972427946968772373455296682734527217146801355982320210503845983645809380976341117100063381662366899208432393946747741576853681236845136458645315198652007298762120464787262239272585235502433356654119761487089764967151540491866998116470314739498612920877036794341753671737683848837531966889787053632507478292437039896699701231880729638793583859691078523156990898477771853321652599454029855574479604962059480694260236028497286088298405149581297659879433721508790501381464030314965243621995378422453432878828073421587861662266195956899360401028297221752071230136086212445793590286176409015251475117945313146113276696677933483344342105783762906724753123934962906323474379941222805024143544768478262337665808257864954190561113500283813401052474653171097325292653997489799937667403149283419145661888510194968860237190892881541713562696779915125822337832850034372669032222382936214317232788138208187097286583616282332606476429799697571899417474686789954299368642894943295594408223719287360058977094386672727209439584304947130304815895704661080662804113989075467630036875910214966985401358873878624230058083216833485305071049122155136681681110333731267691570217051748604281250915488215668733061369184107946584985499014002015721345082158900420429529221209935778190465767560819098418464792621822622566238158255507917918226326703597997946813437992428771207476607410731569960105056602115154526863874145040136719558416991694580471444852599214743280569698895863180003301384028861294582481518371582430927298067408261417944128067206205321096031526648183363156704959649354044844514385490652998938479059709521790784414589222163647742171738612012079657253223350134913431068002935839834757001843974247823591653381678237794091176513811136998527662876327562795536752057344669288451658452726762827798486519377210421042377072459055452811976283896246043216527577786759035413853640272143071939564729770906948429616241364780277210853522191272703331096491006952663475935819603995526781904528742111040648398549681454003465214685276063434609027568427373998991725918455008633473006223615527946703436907718293251547420793898356400665200816521608196062184141309157395583757667468838181125428212222406931162452401923259454968966503054279948031731926107456991659644995732662045291330733379504051499270049623146832486633578462959960073472037227173349305946298543769750177918270836187202372282719620733294285538027592179554585072456069055782943046339833958475201786818793018115074681717303051039291684568424936799671889938398748195419656596329160627594712090040429007952591979322340578075198558916809270200005120670622401667616604082269150281015927940830076668606056880582617489764584713334951426204327688567048182511596240829797955623072334652560668192525562444864951755002586605334811941236220662675289913195290947727435377767074786826005609408333420530908861417227714338364214211090216267637439263454608076528819725340949222538789356065613537212234319190815411004017089031956585586339411379686307311973794195175741531584988981611870602243516550347228294613837502731419464607979492639199613120188787823841105725378702210881892133408257480178022160309918935674953821656939303310618164559770707610398151890764513350264428500925341944804544648642471550412589633426849576925671540380674726681765493409902942060434715710017981753129990811938689626863416629043558331134713227719752285532771699653557655349241988278834061072065202896341748259633153096484106164009337666453923964492036930506026363411887120340148351974299564303948172065050822450047845099073554726085489481585637752587093650355789867397749274848290285153173186622718690491606986741552195566379024454011609891946642645811228249657799036685614322348842329398567569365595477876311380083083453304708618476691275108038315717605364288800864197587692403673782479229912589946258796922561376210485673487212529592296213630675498769348994418884164135009099093639029611659127382673092967730334771044179207532508016527479417935312708384244238779855512479680732224037294197649441091299217836420705531043884931542251616204961592038310536243114006994417156380137180092580402668506328469588230299086495430155594584682079484415111723224291975101268308184702535934073546222236403450873244102192121318389988833449202227866431075462439137529383149414621780178948705799413926269717134968434273234883398494872183657077473154747680597965047806744437920445948483611823934530333826496871309072569758270108747129953818914123252738145402815275307610979060436316016538406168504270958442269990849166960341582254513979038086852794603974297874844793850917532823380132441304125464126186345187251335308925383504882490831126334870846768174641711146795908671550034558327023166697104092293182981382047078788680806262977608996964998855024212899313108056394414819835906913217715832991703273895639959991817654277243123063851486026887220031296744086727742528894464826503081936051796736706717094999864449695501838287357867800361066934180932778770697878916613940662144084587354882525853859733051273281070330790321505855627334158336361177379886518985833926406309384462473076476392970942788734036266873268428679826532477007970397861082460538731478378620236807497508703392569445215065943968718879184244808817596914380658200851739381073539542597055154281253393020843315344693295704899641821934453876776683098976408888003282907875736192666069655961975566235914073595823924084420303354406816043353318611247754925779303919476845254626727120692354748600658031692683082438026136308521107841692706127319203040163397113080642932755378567160414753028591215338518926735151488883428335377254528594504651654248346733606440557497401663885461585144207082520637426057725437177200208094113000527563709715583512783939946296706869057946771262135731304888950221242743262139171583208885484598413119912082940481650223691006378322900960619166572187424563733025047215660257685102976529254619185509441567574152040828447537885677154979827268719823819249880335886353937295323658589098347197333130059024596837935306696128170097440942409743423552029056698508409804628781839445312901252370382436698555795827812271983762491183173575952234654222522923984322861149361732891224754548060405112134106176233183798027183720454727693072110144279637870538374683550876547499151790007049761547467325803906970612827282766619724966020513623537743669825856598830440982201423893703028587927955812769513448855834019571328650675802902231504730098739385918589054463122781893746082145394037297594951458296693617824345176336918886755073423483908590192791835366345108616810054765901941326643028128741897170825222575111188461779867203172785411977934837878995271090075701165357184281723116688164348747272421395327968128509615391204902550473685168513942664749034885591177991888274780670072352549991028059818741942392070949745665540144586638676542764381369857514149042273790799942959458848122341343226198111655981463931796998893007310641646925731201961827577975965613947880100289372866395028394850094110688092299813533190201524738189978868247355128757811433618529451861604164155587520202947793898240603322094949709891228794927777239852318668989432477693250031391317759991617940953441469750646616864252513208071485410354081444731804884381310566239413021223272476197449800379355661131105288657859991038774064469331838227678295168017866087873898254771075796667445063051098405895633999850222134385298901142184356989570335786855700039409712152325704716656776566901226880255094358647935268692855916207597724999655901371224268078945699861031492985697073886494598005046471941620353824909585415314738784432361629071804601909457735819961946585826270517386329836667554325182724041261519351740234673901444292632336191551113921284740000388386872682285414780661395261007050642548420193339828484794225996096438042831116636552654222424678990705901695500953492638360121688782916656361986629355324946810254083393117179935690692411553547072637410002711051972060862860264374563971332142580463167495046268542850508105584596974279312618685962333527020363640453831225958732922255899780316074814333480806599412536351579163988588540892270832389120626238113046959358109314383443802954769038105751034522137902435976348141281287488931809167080109258893394023389687667157204883219723452107422650387245125640137855025079826587987378629744876427656158921324044785469376912493715750130579735355155929312406257823755989783523753289234552098464531262033562436085680719362713377898731976639835502417424699682202006591335600499326913530413006287970278115966254688971502153793902098468833303261257466071805559079158046036694086381328078399852374397477647973788449711840788572995901391497301435325688145119077501840827908926868290971999565350963819163966708476343897196729106125493425935681525001492995777328136521042946326056201961375048104754254209458510164296020541107805383083454894706357327893650278895155660627864721568232187361779852382675929942487520629396911970408843292876682420719779180102816305109519989429049887377978430487647531590312825240297715610796567830397514473797842445225376460741438461546493834689335272446522999161243769588389538798221004753455826865976808579081703269625592812131249409213046042445623349333621867357927836216951966416101526917621822874726431541088869947294358124799109439173103727778094185345288179849157226143368004743844431101738504160871904900741346391342978423184656471203268069276310005218089478116057389562635983894057202849679598491654280419805001145178592310709868434116236191912807411175292851755029876150714008474855002922116129798665763147723767109015687813543405704434326845727183895528503618853474120573100022600362970024885632133917196557660320054054224785956473244245635297890309758691574285339534749641191156660921288226744392157530045350378430605493563445890909271452436880117021894073283129387086833476459864681339174391992162251577633777651308231571777028474781701045695140228761042506246677256460339547685163570866141466935503988528351985766731754687520913960377746809844691155182457128836273544182020102079514317515271445056142144291954950404484656809274140692784408379511319213038847116024047142532386329759332539498925630085005731676781981775066756332291730591107675005769107278019698276392026145901232311939095309034287134401329273878033551961022402836670197348109731363752324598966805030472041742413815883751799267122605334768747503789547747963252195968347476075333380714270015837770035979512061134830275987230810104527127841016376980845324682557113198741319298566410825934177470036960156038408058837380341597558996816430392239837165196897164957256893430493290130846790929686077584611498663874615330210509311789706303554431332717356489161620916152392442927498638858021458825311776566261007277261310919343957475010140154894910841334062686309852573025469157346699471713206281759728816390131316401180910296685746723398604246119285768414710951396861031161289010679964717942842670385751621138876905631627318578196186605715640158895803365994443007469626432466352394919036482563704039451035971841826312561738786939111904276481028465618353827948609119778955335386180220029020046712372296675192667568122767528928546937633680276974515261949962256030833486003912783911800254982408001602894491486116583938411881001996446787870280009798855812170855667044083255462914349403262648757713176442992076721289824159744859132096280471184174964360890241090376516456603046728797738418221808751162355289424561565421224671407282568989269308418852114841452335098379178769819512551112632544005612756890885665566543307011659063704259425919444064546244419335699837989266734222948790188567909893343725918370567139216723795237978891955034679512031977535050133260727445578380873176179258242929516965744384555960483707604779857547877845388126027606909029781324313014423136897430710872931837376867990887519081249323783503003015376878015259930665058032219605179186497688766169689427789814410865821767681961946269247722356985259762694009116667250499811739180394987546254310630792776390193520394751300909007476528118611464284929007293126922483570411168396118305132832260798846698226561461787252639137040332933418004635566601746453772663629497343399838156090807269224432791850480278635836007085930049993295127205207545160416594140616033303914363193074416776978322165402826309951545479867644360551420406336633161295699425419345346527966007573178224732571817807029332698513421756319106666936291283058284630200108486659225827242037618090014812354155579213856021574907920576133803466144920763020430337451181627614023038614644402868503142653711282234566300472974822038531968278081145952628845753255871041357324860089743854682485824135015117639117878807197853534169768626910643367019343730332275121500862692319810925711765028603903295831027707569178036851116556250758891809146276281769670343287579000985477881767774941371878873191231596913659207336705248757623948134165333252576960615046593906059518350209818035417965448947192648544329484400263870356143336728559620888333130800678778718165527842761361853712038185699238146263207154126416381268765081484106061753346069990720992524655306486326951586874184969840595010932799258941834619480128934868334150888634795523004934307604149497079731097239156143176738399630058603138649003939173222927127715238370108561856115265336079086406429747192836961341430108327894086798042659958346766060319231546611857270726917927278358990145179823216110603034948597876069549251005668583194415040840185144642991357273825717730044451812658863123588493637969262458775741082508487498028482470513937994759990836276086609253967182098253486390973215168904282624163994387504831908739476912138921076413258966472690826907866188671081685384428392587944970936920952255894818644413226411900500223237700036520503576344797367887916306137037014858721588462402550662693853957890605471440368907470551068356104261754179235072013910417434548710464564108095930525380423084420645383665909098676518701012769723900991231936660154870978050507564926610595494401518781548931908063285621128093479786102016526149117438876821323579697396009266661750353146945472759569039829909983635590663566160934256197716336403629326244162731666989046282792562555483876737530733997615803469480808039369147333622954418549610058025845899901736014216068049420690649306871760541564220714442391388289426946960684021432479991895953971665685717841378232338773021781247157210465290740565468459531844354895263234214145799761165143176852320049664107676494460693088922866936195418662306237578723564107130798135539483494627849304154291744843446798812131461295625575558628135487882104493077568272401675680950101690165236932086809732010414573311287879956287607811162214376850836610283632127854983015559635931866167450262139325776190343704704429326110593999532564981897272683473750717704510325956188253147891193344612875506782991103127630639264133309885676954319233490272600574371724763533343684967363957478034131651102008191365981752309600504271968311127518080225900635462175464707152888370747583221357401884981099420683562161124988778272231935364796754964101001751120044091479209829797088861263314284491388811355004283144552927139483851616260449226283401581017067701876987961677975468348120529329479000161010500921331267974657664138140555946470403167794525358208361275137228766791185590315080699376946273595382359459465853816273248366133044738552423748990296336200168260121666533093609083992947096047322111416754469007585051773636134811454951461772468137880762057881750276678885022179220062863695896282814425465835199393481267034344614007337604572335705094092396440623692245643716171711245629409036682185472338181589010835807264244337002083834625691561256107985965511434186904670963768750864273551837423160641227977978238752022195271675331602858962281734287773470393615674474218348618920685724397292655798758315790229718485293012728776572776412983284005291764531285914333444360984062856828609460204089609169132420275004671088784558973812582883013040318907222744785898976592142978168118538214615939656254837584668838458295088318962883778239371476262183880208378456630596351765879901044038376349268812011156659709714852186045141324828299734516607510167802066583274338643259572053705940276214882455610765280016827044939143985115579907955612344648135905056553121967875965978887803888142138465796010747317115175499230827558156069589818779178181779622893543604859825314045080148111282156369895405686021647953183558295227912684965376852426576973504950140681282135188451454982631574647816053708248515445620533164265690009066219238966192013881268418869435667471067545756845875883150645562527883669294474714222123539271471724093294303348366781750029026422355958100998271668012392976973925977950309590240263586051439532357505569659133115384539407577375175608208398165467420779986396913738316286752273874792976325015658462968955400147049607144724889229420938448759496055114981602041893029932510046230163040248485699346317287648250178562629630493065419999437013636323490583849012633334673620855409641294630702586152079099396852490936420787031826283981155730217368145261597458078069990475246815989849200546133557842938479072513189638351658662930925921418994434969886914796695354612613042692736749576529431166479630195008852047194804207797000839794238514434445243229848905161765474568965366471874412538292886242291693488079920827248699544310861572371351748257264429536108683691622120597040239493450872610057497556760353253218840218324250269349374465911008426760721475313576658119755801226487643536744884531609346529686910589045060620024823322994303963113686596433965219029643593552755308772306946991526545307631234375246331247534052949489687951567718080377013730329277894259983654590403938072145911306217682895571335835687369348768735448041255595333093022570239959189566101680029360583464564879178534262066241700601154808911942052566711126202236205972572283411804312417193139509278391550701793279763379873785992476819363264054893888887315454058281851560885606986249600209749493987605881354216961931487072145103719612069781525604236049446008504583751455549794890672978420821674546572137922786775082633012845612423030931688268985979458780519567826690001703641540877411713861361798241014317344022394486972574748472946459382888061091085705702874290857260710934202033268158419604565301702645267064938041602010948655633967695348292599940719198360667374013575241411507775538253389000245059125064059015015244761420543414778163568212935464318507728959036637232165713769625367906293098861271109842792778130318273723404774981471384126682496060130717336706102412872921511594471388680575356107094819295779217446995219906827958026605876960009766940639018126309059411360316788996163214301629777654007701535323892924358848483338685151660797539000765859177945214192603926133134196982208776174350901281801858014366881879713208306576291193929307723127336339026787319125414254697499239755046081652841215950849296763823290991496209396212711988896822911816484758313766709200379690727575545649986362480762531906502183404985587104272622677033145831388079248190965280562064103476893881671989285458700533854253521268314935903187768159083138347237281864067845922820979379376708770327094670792866121085897000272932044697195007798734542180552423818651344670231593060273161171768693742222924471170518352091663615923590416391250082162778807210911312370579795083601405349456799899179989427020881180481609430253072170239982019515973947711754815860883058544382427220364590453144015362412810864613333690554905458075190654255476260481591022478212362595324316799420924448970376468459825640071554782424126540495801896757761027271747791732750480685818342568042680174776798030385564022530387526228263814912149000397377638769768058896718957966137312413108551743197186726407482342617855905101190958839443412441859309998019135508467813207432633189018878587593170038262688564272654547503964960243818383233859493907823557642472000865529279889018448966813323559177868283832077508068466824277360254391913509665401462083743076645811850685244720983783904508383500182017697284894998607634910751675307683720639035860297341116562346041391259325176328907850130827583124309011579362116750847907751683795461040308209824930683774788146610229580754536678041266514678417182080965532507090119903703836768661122791837307958375495976636983529563369321684091685402878574509398864216570198472558564388294265721962498623173851382261560309151954077194567489124446590031871394337145349409980747320826157837661847870335604792565207862869967415565052042150056426037858448099260679473009580974221068654659664661711892522582048440780052542495347059055092094582851689774593390039959061508571453075597543196433150638272188232197049024534150473651115773974925031421799958581505723103374736514889508276516422968855261268223513275594436639066691955018636173103548210212561778032010554167603380854684237311716578839223071094786890314265115160555383196366695724735733883016225945450015580897841989717455239594135782882280926979281688281319649962683632774960130139803084894894981802923027625980092887460511524785108000519604232723838849794399889692868310436394955130310130672808455702215682197094131486090411316905720397514049505634105539514429457640954672937876925889954369499134309314536970926890328044374821296054596610459062985873346897263480424704812379255500677887310822502314459948956797136059710620624138959107551580530825832683930956534192852551566272086712898447150146188707138466078203104831945215561070913812633548984180692061068685746402387506953698065181661777823660071270175869210405874531866206918134153230161001190181763617972170317556709289625692376593624834075069087943671418132976341703498050285208427163179278862897931147722264930955979172259252293674426575458445603301974042941970405268211901363469320268963064616402281004538553149431113680932645399244921053713153247262674647251829219315364307027256898747707341043276437088412179068647858348606903314466327035520665061624424018794313544441860026769229584868587656392571443723739017529549253722676433065891154778121764782152637487703180086784225422087958815806540881070234783984153121651625752835586742431813034087445910031048886966543352522849420364607953554011154373497381077322824514674751979066880684625141701929468221392367889266610586422775072157452404199655151144239265660618049389303051283883110658249772743105460196429754224932358787543257195753511297598706965254547551902302310208045943558963205175759631837444076711204354674508088486310338017700033920184231574156723680665741305131362877902692153954155627894550995701041263611595153740476315819225780398239541949868441108556561926147307044964103326085550467212942410712863135650491735768116166760886393736006273524607395836452832099181176263196661188164992175585425297348766399046993247153282177352127092620009808605050534203860482071992933580306140126209063995985093648463340735679060499706852644410341218149063345371450265943331813301917573106756074655223203440879718188996709538036478898923897621178980704204188889005982359511436981670924285663686146160187403131843693478718443193383300122338585309957212511796322629719052398033289974250656579427244159931914881401480629553878185792363642537205213574361572329349577153183885412834572788501549297614187614253261492741810657690761970562901013496198814911703966180670294930184188055666071241229341326312501551745766816995242562941710642541925362063568183978039753314577510560459574751355518511800420375013690028158151412378467082115446316614758923457927049649673949605874734459618502630735403626553971243993735866700822181848595047009945780832537246711688450552478210792003937324814712595879323974960702252592390288577366621955468389336841569133354239279716703235679828013416889516499942667909852250869367533820412170019175605933853838178641797243054703986508417159356800076306259278764060073576883429836087231029785097856132447536163710411467113534271351545967933099780927632106874159373893375182048557018938847269453020308044741917004576167686429777766595078226289065535851357605725600907002812924110908533195099038369487103803456073129029563134730199878595453276978619287449767652108835951722841982197308986154789293704169000055843443538018177262456560436617530788305469118176339699151152892537970752122484808535758599584428680007634876237948487692321480810923493846122390991034250179069803325653479058904852935221484456121874414923642240557119289022808792207344361739136868254565645417378503832756762485010547478621398829356381490109480045002826166847632422495927057495312675604690956062179483568287518389476787389753714468656291412097364198995373038672507846770269910878477859403589063052744897596167469346662311956812574562312263755218169566792892979324435152675972185967032430769336424541596378498955295173150019269834943892036532028433914743125706495693309885059553778667694521434173173997721659730084148314874447489690076321130748574178490143539794294370133745826843294647196897636922077200954251213436849167152758279509913089783493396254908797598311581665365254241171987853473199596752347413796621370983601916367464893842019038206879984472081802303670972904487331033669420698565051785759929849947946512043629184358814664385126402340530958554244244575156912311916660440677285934699962898654522725987679499274857487160116619275869356537037231459291818328417913638308556002828471862222908911374655891862605951668384739643809430228102046201940741486873136711276149368085243576655066320049006790254561810281247389942203941096083946160402586412805789847735923283668737619557708596645130223571814430054333480049274967518600698558766761622753789737439288533576978848595651844090153412501071849660821186184445611182017269371630073649997008969756824388554135644817656495965832064355224131863630780245819075523784734378571083476525157365012830419320598432312496875625141777350627496831449257797642217427796018972335430421316652407881662846289867958155809971049547300445089094226838661174638145616667233968597519345479674201970402974286141906327615725449739931342184375875439181087210354185700800760685023848135025408912027873572325146475925561742398090868963071531600071541479848321178742207321875821621579626390150815226822742843172939331439658398645040304247230634335705231922512953791446669184354002665996557934562248239499696321727524525360473412890676566224785285856670729207709741903895588608607138248876670413335293956286981048829801985864721055047574612200035341835950472992499299709718140205216197714783030407007305588491100918973706462755538884694559532336844098155798695442181602540291945416955084708748417458016522470173971531784880942404965779679481232779507642070466540798418212214441766644123316547674072129545290537489719790034162557238055334710595477780875143895845075843093381175715602305908848502891006881361419021997628638729282658507350471148150176859678481415071942343770235311321551655571881003132574918196931061785398248957084356639230769167679385189363499319624724676433939370896844307247986586926829125692486673478898049710239570477837810736878479037192547303705831903846624970181117036655827375472487796135494182996956385454003320288100932038069294300103406727619511359041052447694795086712033060940482739936054238360803626341939158823593131039618208404398039603502584204656139974573290048561067028932389771553342046990703560859970789546177172447796317690259847561294670057327346894485672916025313219864853713988087099456489133404973110038691858375064609207537217000931653190219005910290158585920147732901300589589109422643064230835778082701857771195799385419081559902814572493117479540121202487275204717625782824716317168230096590544786553571335917049958803156844269228944533465736019739178308323657642351635883143089460316686898161280925942430469440710385600370618311103850154355978289247661761870429075772416624243124809211815396113012913297797076525154656808674685219500652710445388876899789847505657531934789706925955243463314509735849689697768444913388581125934873308876587477241618095062455303910051006026689153227317367919527214922293183710843003778279733168916871370363532579037680476235303725180667462513213197581398467978264208486209711306608492461139759194154823132385076827436980232411803886115364765003225702040353780582257768565204475108912734254445541404312463648730688130383339326707202286783297168538120672326416169882701839460481761185271679262670723719927156070122963808773059868061856472690245478636084306044524552922028084259524596288294235133710104395384385260455544732525418570291804362512399617729674705713929382931073071108918266936073149875926508912955485835839263131725171421142989843115194014516793108212359695360798657994989051699178027126082110264815686808180117447384471144040720727636458739346702327510283562141952513559024403957593145366008873506007542240596069247034123141380375411618055414054029704738534613460006693730552967868905572551368843957330880739911144625590339478140577456472297048529906761587530809079896805433934223096260841025017828752180679365043147086871438518577985576286479003792819453508457549553820449775251073714229147549535594100047044484234290736785665334734117595075057523334263692873099394844912160394772813274028286640037491142769902443921162476998728750347985114499396425588274400308549726092780867408519204270243283567274608931172033635302456267892905587259919577555813055354485622261154183820611862312186672707384977306517336771506389224848728968164695548226579587928118770160689294582856463964635698405094294396959325011292710187616927890477852451080387192722919431093669491855110952250422762786699287656063910021557560828267638422464344975382368876366217548661440905740920009393482940079079710775271676523371591562538136402745817902677760719823848678460026499223737966982337244028438723262881665332570197548002041620938688493941259152219409631503670057690555558418134691804585980707704738102909588938447647997214141630993091233531427020920359712847103524513818668592788372267218268369833009421854810040525539183470886025169159245365516151388366444089039692214780184091211205672432235898720136825456982946662066683181847494267287141949452870749170882040731916259725193871613579640843417976910429686245326346170881363073807493435097684838937545304054565018217409732344674992469704256689644014037517525086915709611431304821618265009360102163653652546533922328792584779555306096273779070154169915029597658209536506998031759479391476112006510364803860835420138574185770542203151296829976433526997495885060641656507558819142829037599425505447953203909011762403866668909417922817574431717148139443725205721563363223281313109554482443684997806149575137683770055102649093615952408973699925853638066838836591969126990033229061325607572564568155178545465013774707232700388269394227723855600954821906024902275945576653825315849185357957472435722353503439452410597407784360892898911486267264841385145600148613295844601139397623708899515929744864811251251977855674162378557203578735347097159253679282104615089182478351653620101897637556521362684904336349878093124690101972459308154657946941540509049762409333440218782664420597701203191835957259552922094170557623219848489416504451096789586229622333295510049772843876457071112780705089127388588680702745025043955326202200238584008369644492008721803586672646276430036826338889139114180482428482153628496064539923503922960511153991746286517995522609756053245829971698024535474174875371742373365574542421481024830248750943610484733531631291087764256713160203953777904758777000471668845896930216882273690298176057113907739742767990846593490889237398540381547746074132492608156298406318913060453246044779909909942393978543784654339113247686396040423387180894584853747900547938638411926949069267812035712453169915533540072460541407014320909627978872011668566984338039465157788002191864395883797117805634465735477073696079712570756957893419108376613114217168172260416812546872664864285791149280090561655424944304429060484733083167989944237956116010636701924348813956541094794833258040081529983569384937757132298852997686398142564238057860781426499779969970391980432387656896155853367375555241196238782461923821493528814587001334841634257734234004432251111123242386075742994848835889775507771909256685363836504018441771694752113310310969827846886894041022715014595291350526668444084398628793425219379167569294108261989588731452123849406719740867198269508087440643922268970863819207151123424400088808082341544111343333089413318027681544249580603962374813455896440865973511448786345803159349548372255458353122812800504639709360493236143122194234523673607313061349129986000175228279848743206456452388897187636830200121957070972939549382531151859581581743580092272923365670339641243189103456526313276817189265662001191423186920341817944622913312316510670542674880355939755575961469187861906836100813700875499342266827419628444248250760089653549770967860157524302997836458053659282229322409684225665837678405952558441352224760088168901989551592906987370248982528524150397647931088432711137673567654637814890281738718436557140113024956107905875869004899443073136926912773718754435610891784557218756591285416159695033088722431668798615266504075763531009499011029515237385534534720889685322644985231516160059303714468575589387358874193173683494817665294211827628860695821785478041695238224972298525640683228015424375283125280661970756862196416602431729020249982872818004861113182875545222345783924312447488154868566031308425909688430747590283707060583031775433963958336878989417872495709152060984932081289481578640109648216416465248294694491090249647766998020283009358855767319111190996796304217779616617900994742255756128147540717606044206408952296429775371899933646423721156471447669046396716897946626799579155052085729765828931087575600713004124410824334488316625203147676352604817846654813888038885353568732822724668967614903490045141774897211736919756276594420739526391231469871439198682570247856641347997535490540270763296319733622092179054914672559456266050057293931726860578142332498551268813943147161742700321184939530919345309304514405199899091540106419153393044489725356671314146216431848607653624318927908607595650935099402348828961618249899435881538476445631455121943054822544258279474039801179475107711599450134439220783958483276984861442633677761221669073604597093299276115072765825113421870780619806728636927446708036634313643548272154143229192876910945053536904713424128986239983483263185558604312066883964622596870877709280383009464176964549759093059087128945306771131127437999707160820170042756590997617094220709159098439776505253564733690999401266689058031404585663794078433137289981376075224256570155828987897333443757823010017580509080650006315531963838432207957824879827384242925367138619795955300608748567352253419287781512554419512840298992802310123141791735393006318985277685589271184352051776247848660791066382960238854396979009334907638321359528488077799861510625593988408460992632271214026022206660557540257471404531551891995361760003859823556465245885192251757801103288482552434639970216419668010842365953711354416233215251807771096171242195886113039645358793563971007216235904578566312036861611170083178888033536486417314941671517024420842274481843328418569349369441614168760228720620610469736907706121774673320054088760975233935196419260553149412677140904873903080053810739197482785000499921359200084634164621318698111978407384024413471590591459515177006790804976424617329594539381853278447105199392693739813744753510860563425254844807328556187087264463435274457087050623284342928609105965632212831919158625939816037712388837820462189279405334200660446180731953003127967859146713669232370203399677107888569724204868828404980158275046188995290169246028181191510403368765366794312972777293821248736000096208641351277737969767688596717877328665318074597215349561742805885966456770680940642850169053671553951049060262015656175305523477182055015364472790459457946514082791694558447261629323563430115806324185669040699329897376366786375642106738002469633711117148358545609990821209852829377245232082819342745526041479744422941023261645983465640406020775122451054939200292739314469065586004205405954307434773184966044937212050573038804015177304290227053048411682480653893404216378269773491539434209028605485397615953533619209203963336522751042853885162506454845404308730340492998337995281122839034677840005729516748685926498989683331650740567866255538487298377735578375745163658302762424724554617636646361501214949541693829344079174977747585503154767657137074355577812585120671585020951859097568119293318710142110271850194855010246285069721810343931670160377465288662594568717115247599680414880712867505186676893139416996094648716411817049515004381654134858952844423482174437117903096279762745693639451143265850161430180067701995926773525371229273214568741754755415834277025243490594875905849686992290400209835846836027742525285219183127772249999041774603647200151512562276657210406505202319073308250348189230333573758475149421291472922110661229350381412480197454450747450872379618766429819226658236065508234156951727983518912301721286497258695787729302037033227579715148244838841679500190406251335297265879163871522126496994997476440569015409462871270403908517290889648477379320908234540529714886979473530785147790735420559333602126754874549256823409086092784929224112737597517799448060715875141924681131323814519116113198971488249788134569066444693641529882495342795757398450667386802039598870867302464174629828361846485377118847249218419016401128475535955221071653467195814972873500143719930756153695996043731109644987640753507851941684055031740571058267513263885122291546336703005744836543877659311802248845189650720199224341427027022541191549598178305117439593571588947650546674987309188099331181281025030072448886271549091367268453471391397902440124798805420464949941967900756047734644743645157210866353851321072414252775724838651930275643270271709165693929745489397855573737801482001008210405039881858321575676753712249091869627357783686077273727263840436548191595130355297752151361405272828499019056081684470416244642065964540616099372404641145272124163428657523072593213326530499012586693717990847189862873590460505863996490007914257363043597792532829592342007983864516810846891852510522729119809584443856133872000930275348391187180425041210542310757747495004450956963031061202696326373255740337843626493047529545129011536163600644194249351106551919661788557244681872083932958592016925523551453018599445899630678623970416888466806354868738769897115900331149037994986430231304396285593358894785244348883532901356796710483988143087983779815823205291206207129888717835527112960855402066482486447716412754322526171609483839101523709783095075265299222508523714233296866050456212778949648518551726913160493572439583694217228393685615699277091869853936361615131195457586312864578536045048495141579273749974939984857692846817675399557605894858367375419159763793815406778190775644026896599280764619106507931935969318608659982575845447638246339218678651177206558659007693608461405287128536783268388827356600010283485649308651034459567984913049123570886077510838799497649002342101545510727202025826107972890287524134344426488768100842128494922059699785079562598903748116908776254898915457699930464329706895424282235362997239543432673245422053234122190014018074596241159816187019267305565091298087297016307723147159901078566083168693631326676615145066603690917059828956016555466455503977026592971926337211492629746589762815813774023624402580590426437415426635299779471963082905445787803093115120218888248673521887957323355669588841455225646592308429293597496910972317744265728424837476453934827148165746605684747906517188115879898241253001156553665272641829641449150365485409387761679184277105655737707525534507861199618552544966602615740277865515242519896923668111489758406388722694287691393316289140135683437156987958311551076404881010368960869631335752091645416101336955500809397547219358406113498843420508157690277293936465392366920847166934129058775676324883716964774414403722286220378000166919707624254158471328609639936635969196241737937666857876357865046184180054161844610915382156101563032120799129528812164990516506712936424307597219097332302126747495966187403205857007979915603848998621867691390825526965415079675298994315837948204074768093832322906966321733234475987666166860756445995507466656709387719281464998056621900380960130334686931458135850949821803309901876688218666395393720442892923319124831018033513553270790964506453345901066910799687445014634000034056983319603920826353837442147560596021068839556351682978548012271085470026231980492875211038222798931970827890403109419572766119341022731211702813438027380380817961719001871623380153007528509192699116972896141579601414826045294078591118182262395530663760032373413604273483616199791512732288245757943109703834408329458868612130718316518207990311151346534070626772979906233687928378650335321325766922787999540921277777220126470205107106208140302205873109485293136326038982293279086154643861196708583251387816369137485989391967934323171788617961235419443103118150523060779503750569347822844306188739276144045793958303716190636699855350063909040432697335093581050753676778203654509499567215912706206215681842258756328599742633792715174256319013502249632329804310793074042353510550489346671964208587959606956040965362722851841914524291797374604068137443979986579343195515433489128833431885846197331131508111361163326115030498882269536464675348213243517477553390702038843818747092145634231459686809800575623352893325775965313025439576027459941017152133066056848440194000789801365597991899575160664836458151543530280826276530039524408941500052521709563268260805561212329220027493081281756014160587812547493106900923665521966858355780275398436269078025550816398421068970226758902567139855274227868302060312357996031834249256784352619602029931586369713406609339331474588784259329025986794335971193345900019182624110064397137162029245465316334779171077575834564487482615303145583659393207878715401706552265024425603440936353562923096368173164568418372680320267991511294276213791239754405218864714040754229281285648524534121097160605003952517483584632630815239778130696171071853714936477479166441200848396135601358849253269736639506437218934460333706299675092388350428199980058769093031967272006053468060072951982095135555924508660540131946736323628333337567974000417804595617187796909146818030145877650803726382317628921869236454260012554665133147274179177575828536744246523083839460889373153223385525367551884465571503143921631457144771832119069628901842007748974799913200842424872355019620780065448539097719541822335233497221866053343041612709531383537807293886004917930182173664744049909944852272865152484377430050528664210685572182412429897480440510886120233390605815392413734611049673951789743573495674767875197101747081432247912838719206636323228453690632872086726425872104566196923719456658680606365943101773232490976702422304777892449846129269852152467299910863760756246001554568802090332440037582962263571520351814227580454593881782688355788821061157120996462422441330808401948403315269723446837643936799963440458814996586729541543471876745338444264701072321902326341696668036827259846913755863943998376867510726784893760439347841611285576543141274755215747562194799023198812470083690278665782976944144386047416650736199879940596160028459920825001559440703540221312684170798734387560911558140486704607987165132812626147943243354858130498910107707473759778899870785719438508256531149546749054322486586602263730590751459570296021881904327332127635817445528360710679041343822340090985419037231647221923896387128733771431418098142596733204230177648451351723764695143122614805263260040460067468498608258320739701714795912557366130659772351608828297249590321015850046440669361729800293047306694365389124933769615058453102032641117235499604570996303736649649982648411422952946695894350663138250955505417738573752490077183923870019326747977010716844440274405579429104869104744386109491776906656825940106277641981764770636130364288863214225468858316154290743238992766706682732161903202250563941532765449628078266983477959506736253551814407912474974976716183093621036107406339539612150758154133984351157586200463252410555295274741765466514006312629106721294175259784841970675256049588973651649790704721300647101355835825545904613738459619838008942156720448005601448254552582335501736879155486904332858355022389895690063660242277946433512179709237561979017130828065395289936133773571749280952825951723693201812085350631096905225050994520143192003389265823306845092296496133609437888671391813257921955902973134015594085654737148727792495317211300847057814310140009171223908029588287080479548945014721018422230239342629297107628834739610209832805743364699134305554553797578813112202298281591549208423158105282513554661930194539522376989508039235496577995051812346829789612159758229057718926030710126038774975410910511689236993175506461360336488641279841221127666630141846773308340502143507224391629833544312761682693626453888016219011742580334828910712701708678811383080763594228819970747174500264923524802835875544136531073139443869098153621389852105165674357526059950611853129467407291306471006408157587953133926214074800312543729962674603433254990896488636979301318871380518105039106777267028484723650799510015054526797311432902183967190115362578665000796575114492148443426271735703145964931615667213628511855928266565850986012016169258681973917590696033992195187792067416394367222433150619522619369412781221140973585142650092117646844195180362607471221254998338452163017455248560932638691029762188452966263839047479809817134478324656012358521721494277106214696056444139298366836070817245484892462632137982951047616974776044203302647032644216512332299705403613113140046995786676049922837448669021421541288214210275524091947352767300776155386065872563253771275870072250115597880416645678857481790366359604403671358585063089377668379235497826779981987520885156092240900292613540561537891504761191850874666683958334045558931161122257135303606720925824040427957178380158429569117750721558904287939757695085562173034138079448201569532986124456560659975970035852245928386080979179606032182373788891392489336192061282198521979552454897356482688131573670997940891163562084241081602526214450042341349472549776984932961702359710770416468688248284998312204639430765099683037822580538229560352053188218384459819523745540213545564721499780318570790898971408024867820638266378214001846383138283013402783571935209478969504003937356662828981826879825305970354589320531770732850402819262441511990109523019008328069972045185711515391613731190008825889293490059097561214816140683055051615160263928789216204338321551400694313876610495020170483295154645488706796495225693667129724296274655691963094027705962383774162637465009722911946264965801541303724832837065307357964087545883898090559291594162625036851210018604702346209689844579595132388160456443371842749294860465010030024013654417012894172285120056327362905315081381656184232227617569710301896988777023658494755647229036520288800042678026142780421310375595596964020262747753385659760664990949930624860675887263816688763494522795549603093006197427320961245883732809489279490466083735291674996501169346201514960422410564614506609050206739911658741762983488965362060079426456651456173566331115747434149880742526965693299992920158038853710606914466479551101400718067002325568986162435746969755446905665882742591645722442178489466358829177903859891860421110911121737057360311046267196971631683829552683067863327122628210782336653886770778404144184787954401331805711692167776079600782505200085813160988879478828582669698055201544504395319389952541171142432185799026312353485836588111532400736219528133255913259222297948487631896494946571768132345464530089712360679295246127245720454880472833195665098635533256903219415794468390265810972297543273688486491564633045810809610645116481055462595856561323147356865423885015967599773905560771673760815486741346204104491366917211133606175289994511771825811911611376271677938106893469958224624882134079277198621799863956698907543771042882275836539435960154270054651202077610569152860491260589857618124666608698595750072442193279440153228713527063903362522557983770211431459228540381007995364103057931438462393219748106552270215398486944775676585145911039627271284322950865618851134062766971678118655087995922424703293056635007477755829545570050579459498566090826253253385975232652121461040556924868263861388191390113948766504830457713662233521619546576761790060010968390123669352894775522404966485285453351861044445283218959618859076282381988086462986085745480062276868997644795036709157665254137888933579207437920083587760283665107628689289510295289613839093928930759682129340550400909243710713406340677115427639034642403202244338309410087016852554102671557226311105467302104253860130305301066277899445363593538325157604094033438126873133127400092979134739080962970395437994498810046364869024082144814639593570333520187870505474473710176449907945239231071983233342083427687239709533507286219270234070696679664943777447339740826160425622535769432552174152287853122030347391653031153554505443474133650688807946768443071556822430703474898116596854149054925385767866126307123433689894724226725791925300835781590443396050791766849485959833079622590185992545285585807127458653247426586289239661491335487491916572518181700059037832762771497593117850887460478235882374382849980971066636431268402903737195607576870163141365997628979733870394927534965916191562253302433805572709630772193594288369898856782963624943179567208945973905373606352178153106908201528378111558679597008548504038440480076465737882160375029707436393015713748193229582667289103838069721783014303612396152999709442646990344362039777841579325889131733602253000078722308661011184484009218025981095975841011726498716255815877527931077623792020723470662364869924834077731862588811129882129423616653079455172752968169852306021149894506352411951440656307191065442572432579053548991714088812034684966367021879718294491326488880816655067537604298181944885887164103059705916752061267000366131528197014629279327225001380869753027225715418453675901812137843144928125793831287251100640004762357975213712839589789169348487663980272762699749709678259900612004239571583261272861161963677252192176381285509754619710395904476690346765421976237782438771213167434996154135789869159229771562908582671599953007532774174401916022966440591269840054265423716135915488415160306022646097676602551088959963889654622278295128610316898080322099326792908110584474010111350510485783649601741636935711316274625840032145368270039201348176514677707780249509204160684393329049964252136936984889112900256937223848858297379715449657114049609558727243520136199715960365942214118496633406976757425919738631064206959452694687649352967986195495172184001323051984241643730742258842797981396159134614602569994690250982732041923910697583948335621637913953334863254401035138078530285957186657311887328086159973128823662616020691184656611684075860254499023288362974384608212759195462426309491912203533618541040418616325422175721135692512032212328169877416047812214466981395713295086414142660586002863454174361640391266167265647748144256355854032116036226528237065496198647860231482495867725467726427898303703950741847450119395504799672396415446624010282984353513657672109132598024310988597832751974328734680664823614168943498260815849514793286415481323923607127188547873398583214490908087962590522912668731897504181604001824801142867103198539566592987736099652295338744689104676083142919193124851172629181014304952615579575922770958041180902641972926390097175311257367215298307172288070780548791154331104216634135094491246192928881992104282818695323354223008270562616005957596013596162565187932369103706701946749756333400669914591512104584416337128445040994101431784144793397247770698925174312827790108420567852993493343853280426394957884564573706860466915311198897658236092294613002739521631341310071872252291886855667300530634987061437119623236603558414566652956693937803592718569869924114151315263253032127750238997286661677365924453203822747939777217352210787293783186335069929761405053540605004117196027613914827874112414159808687157913974376043363299439576703785227832637500330968990497507975703958401634375703640383280022937068346628850047142126263491494831867165210779289855875193142981641659799198915200584507727475128078473370709153976387384244560915577547677907297044162764292038211346013646044498458813792218170299091431235952321301733088276877481115914542459018574476847619982555739416810357908837016931255934008568243939576060279873290054523750143425796634428662956391404140016560310020225095459864483138034018760917597635932737040563926396238308567900560320502027779494192986206527243302540231670322778430039790233078512198637470330844816297574577735300865555652224290052614803343535328891695607359007414328226072695502317318691261222469253852138961190574165552185849833992802487593443575353232588664289628121908216175078842343593047203106857532040685191128478658840199927063844403382172707238870686272777611586001450945594551625377981685927934804076384596511098896629858645187832937741409835266083497063083783268989618035124154282458191072063359663429639586816812798880229863969114662904204932121143897939536810802297574543944774797895306470017585251044814345098685550552097667321731507227631021543229432452040767346869631642979549936446503845239095204786248436177666624323415686552073541826587661389506475870307066262907905961439739827778630316286645511635464670016985190516411804486508721322171690566013279996944312838008963317496732886059443796591854213118405385223755398149693876100695840159961655186104119335199143716540125069752738349849871459644688656818634726332456913602076617232918582898844375495090220380070048467286308887747997544434890223341649708898636640461829599461575340415963601476146712156696796063887558994199707416853276972016419079272153276811938090422666025936459100570029027621333572960029954112852435376159973547094067574581938105466618194776540926587057684349311222855172662808825887307495294498761301643731915747369492034489377988750051690072239874318619292895251002575152463422347378879170907413821858947954337576919982122953412215275485917584435498574339542319466490121398545894162688804015966026486343452116052103984151184572374590331587029796151938519884383175040159042962461281303042640039530508222993227274626046436652823675237378209248040111234804816714852572966580526016021247831131169388331278987026127904573280951408150201373961065270393259506435449173251940343112973692150842626404253702188196915963028849717555609152039370327430521430128695660317459204133837374032966043763398586247273247514071796310218778479762307502159086120542111485727880016852555953883901590785378305878569878724872446585126545930977679735722758721846899831113205616945732517967238929640363949929533308303134385278566937152407856992316118521374546365292859796267627990144496138768545735157781112463083982014125144563507735401661215732115089870470383925225667708964899691153800526111606095641973688809083955373823728857731837308511306185875920518561973419810797666948514216178820659807874783023644335941474080298619186088829738215305200748383144240745252060751363287750228419489398597025953560925205744524939046615185447832000646781201123300322328610613118491484105155415520601422486157875521314724778332161964581391791574491135738603125647499215205341504615075641191558410753474323318679893324385623078778372422147191319137214890676635993020765773876233095246831993847188478300649351219531313580932183098863339828903896468966730853005681006178953675192555748148856941018212219974142335244774823669384854708605962461175351994012448849464646133973248675371423203147775117666906253783929355619436222397006568702597402446081802738526282740344771899609445037215458832591912849532330954423339223175429737057732102341524808361920153339036002521458303107347610954352716744312633437976401820719627490788209017577535036794646689680252359719904864799378931577117458154092745288853677428610834778852769689667084889520096148852219181210764049948037171251931622444560284087761670265593468005739821200111448988550588285367077242959157723567464635681443491892670653402947269491121422620536497070842979730042783075013288963828895346817745143709514117394201330457983806091246037319301617324772180182599553547434650220785815106316273279288076971178476707041628859359646776381606153896286111400153057869182747920953818734142147141372229799263715515535587144854759873348221931922428137681910456284601015904392943463329192629632059450874471061658130976538413261426254880365853279794071975180412241772769001363961864473487047274959491800456526728556487374147908543628064431131943105389321871246986183093149595720220000059994921421319860110477007548941181882519889843613418929107196409415947541314823768419159441028827417557546105698619369258514341457328139883446950060816341232480895346528867201066173326399766617342012717472659614894323222375810960535370015887961571405464684917990126815576543797889388010929413044647841122046243700222195924291534879335151636690145813932294492476000378149613118180507259120177872978014392522766368931727152442276649363802272586479893312286362366298673114701952488813945555100261962816016795244055444561352036669191615414219523949506084754800698575176290404225120973374854558170044236054744489105372639327164641633300337406005677185200172056155966581818330096379741468561674101549085240006864900488683873219988867153233793585109888501730594993926214506987450451227439844162066996795406166054858055902614130091760144512543200992300468107431834504564097853650626441898159001798797600870883507892543022153227635262970467052841694198560605363288505770095649070518841919980113779158835374473463971398080036533488321651399134246613103003114932593373607767571210508136199622833481520699507802548559089482316658072290873140049482028035100775742470124241341335878252050877082848159024969519027192709317299033100242472830426954587743159727799162967508122572381313431750495154808285092810070595364641964030985782412143959070425660751152866532394771436083393954788504792237598333091121504273949957385513271309566770399316570800416596902784522545512935257982952014712771874253158721456241432254898683415038500805094129640334204714591755295081090251457623759522972323935002538831306315903759165715762543171491125411237161764454990938996770225350425486723189701234337851305666949068392280956210852337707107363728414107218982915225983364964027586708435121111602477812869101581745135373609011527982283322204276194819316381084902246501526481345019044616620790021121859885371026342641433090853307273540102110459274753261528713943909273815076134838247298073376370588933164752612411037276862824650376307136646407218166880730265546295608512134225694166291927652794607897118608683854347324754777411493140910299491797497178687580964784381336115148308505020905571494049409367887247272917284643494646717927927180915162175734039810989403014537239710749056894623755619215185686991177440349841902605362984694774116185866636613448626519017899075611431273987812194734124083147866645831065660197141560885570362628866885863918119494120133717717886654901111283687817224611423394933724929157712772278755370057090461723374201484867733953777840331961656261867592879718772947297037576070718024386937909560855087074516237084275543530774433827555067890924081589421859321536223422675648538590018229881571369644457873602123540025719915760761252911154839345369011360223580058329504870021767622872263329155287058494934923125921569758019963624952935489701183777401701711155609742535943730239742333851356311256667305922851325240075116868497391538666634979685123885841129253336240507000784805627961258816369985452499350145884364856329964201649872673411017762743161039596262266894448685181337310850595882560921626901735742336040735140499966316146245289583196182627719432729954418821327046386121411837514866106115810088523205730129351474871474180295965875462674076313432911956606880255352750830330030140446636943361425665931851304096957732685731875048950379189957916624388593499333310054365548858041428651548026099250289158909880292446306054440911751185376028331981707940089949507737578355816155535017132664646248806195149492656075341650162488489049725139598382958824100673015150345447659820123156999585778546033695823427863276306813439812947933911792507932947506661291291226757658680977399141690708217904033757628179000382115414686936520512546028041767214977351212678711526181724406486476554675402749093882607890995753607908300713301203052345971198718166437622799462360940790105921697205448635247052612207168829533841808150045523019701741027773651219546861362444720973457207230918612039070622943413686793137262430813719720247819510505173954017150983241598864543492855301013721052312206068454912736928756106502014436201726500926474673037573243002787269438936004428496831125070844233778724476762681879985800689575736005120754930799962442215227118503781384478065199048658544458762388606976712299394592370123034563587115272929580654435157552615241237754954585157448062539002479038702601426235926589627442106288039949312176647595745402832149813424476578267925702906815919810149837920117959594184824630203022342309163901556142746176138298217601203666462230592448582333880207482685977257019083457553857770544090698242729737033684813587909511144578430141313240608624353038556339015751763550298151701543248038193095456407243815618347444066278833695279506512895354650117911972698983513290812142317249472880348699963089868586311584755062765630884740606887592698889964507415414648647105788334890286999493638210809946689283005035701199100313451244713336718448281203050602197909918960382597152133019291336452883442808073850352120915027421558060994062778898293294724195169231380714194983022486585755186478009966462657168390069680943317115271342956781705426693194539517729530091104673430319072729550495098913674694124642447421889775977221336645936832598701562680987901535691038954819783344217861453709897751657692316854642746986229958846968643111599002274866815363967507365382239353244022950197651305844811683905474523763261946878199543290313761642986665167008549757720040003061820348511121127521819484318068561666804236507491428186177058244878233709357555841873464172340250539288352704397046269054088064878107963897894135765379933087626794513360209485560144745131620107007108835684624840156012387099185529434279275017219664289843091188942676119925378660035181523793717457049032933415165562783380213562655834081708843967244407486256539836257890240597753108141955729831244238196750514484628221531801958958647486300676686420225013357504511847685628088523911397024753475164532196377719731101080589083205530243096095842259464133873342786271069542555070484944083096057975360287268092311517557956652418192078832208672729876732201761995445970625316034284298864962036458830316085716304413077912333424564624623518026636204087214242855652151616831110826053214971191300061948409964075783999030780156055860796577382501705560844434340469215901437302001950238213776749773660410510691882723944344029960558359377617298685790614754478180529412793517851173133483273791218453072621429704038086264947282972609017328936321819383909279474951067916118527026002489680706196130365873118621667536239510711473740253822894715673370816300210660007138443932968614299657547427798502410960792217465734669455981960021276567673411281265850118316854174898025234678096803932213239090024467026999890699223894576231244321356980240075999604605526506577394889814174187309808982266324425089920895730891518159879397165664124680887469689410769075185955626145656963685946178278914935415103683719315919651131485671309924017870837717258188200370620317126874494654991009737932154519564124767822266934857466287504121684566467622761114750286849448887342171117641920699867641463780964252442083673765776540960632832187148118163327160088181477596742450425720206658212347644133325369946859011535892015342821676085859189109306102482952582284389331301820685591423902314177483271385322400687434176520726645074203913911538036604448395605808319278209611729544259836718891795265765021085788115239451937771282490658685244677835927448956632001953252608760798587601723657779701421702123463206028647109272808962291141635473493975637118418585729913011481806194942244771488783225418798070516308379192853777012352060178359441867491248613711598427756977619214312943369619102133839990916321563666072490678443393835172244014798200710671798447332009237998212326119565539515650347159582248519577145127046980443599056874042832753834839134533728478320598639343342635955967081203425275539804329673570711284081077566013283833837095077971932710471358903295682577811794210305169337229084911011508394967301882269729977752914896161963918054527435120362887396153797434752468138883230863321691628240444975506158441454254769969561317163056720871544009157164518066115462066986681809490865177172309525349311712016032999401532088902618704303212278326624876409412567836660768223214492294431120891072409719690882311609189913858587850271973810444242073074366376680871294162385623952628283888684222563152777050860835991733098765006989903579973850225303030871178951630185198048160921799665739273668052626471574966307513698041158716312618111392074295562306149551218956434370509651085375992955033606271063785644717572449139616371865921519451844668512843931898925498800161871210347739025635126476846257009782968972393493084363963566088996129944634114050126695402433277066357946303118869721102258063378253756766605970923305173240866259626675607498370954222484300454930426157165425684267737726083613375547146765536181244715784583546664251632571305860726147199700621718448724344228234286954946152233198956301971254185726484851115355178247123632186321939886715170406162557627241303246919579104043820934820399962262565192079860640321979000422913331658051908127830553016710500144290334292853039370451934193347510614351535158555672152395020003658497669342040009420200127180893497507910740281822422653028076142131188112963476925822093494375690881430949827469147803136846935067195707609342755156218616179689067939457387300093302415302521949774490519287329954650503542993221633038023013167289160393699250689490749442837718023891427938423199393678809723146988032703184035911023275979427946054655862928533162399324118837331844479255636698413286465453762997015565565032182535365617786349262500983801889765804150042674182279775485209585847890960621961063078358107061572242642393834509773720239477743154118877469956884192417949590078463206016090650034792307436344451784268290560306172164670442161276982634551474725327889047931373236892017345952149322204180937994586440686933796729327362893178599467554632690340722337325571849677076296097818498440654996862018782695908464733228625545907591544646572209327260616176686440194764711613765937850472680932746047419924533551561022383730494433456086855427109331159721584968477121302337206480894094160461853876952490511721055963474822169942290263190048946234232123594310466301987289166378987534891592475818870623979189673483924972499744931280557518983431403040158438558901122131731325332481195044854313628497698398642935308418926218953618261383201857525401452692427237432312680091233085894084093954844540957843560811424908439144579925097164358136493564035150562962267263220611991807691318362522204330519043176166412545930807397298882640718818693125323861688021701308391432978002821620327693688770637531632716171817048788833596303824948861295118657141438129864695277305939021513916128051031250860979778034128630696818399674334284082373942449432143632750663407641149032524215951661325432595525971532543324012958742801253088947843320487807324369333636993221644308564158317431032277051030903874010144606409718460540050606107792553336330570651469626096542178851309578632325598887793166745470830125919792064235027664710633953669747390874012623553503320851405788635659608325330269285415468158855443165881666963280051385839826836921693648856633480482776312574190467592820088697343895642822225900676865297257245681995720024132790170403990357678949831485433451555580868906975116485313591231746058631845288085140087472715008427504188738344034333323189152927031185878924049442235935564969578800487594195614054756054068763786873100691861432109928396426122481390905731990387286127366226652194125188280179929654388085822795155275983407623871311905389294015210025987675673527653153620614338815171992315615569309734924592766667278657679447472607761725202115423381995988600386256649530274071177295292123542099264720102034831799303309836068037225200676111745063584517370151332673352764085640204432813250605431038911344061586189845986277974160059092233168360576194036523485131407882911352760247506312249274893904214754121187244876459826970384399842194475085679036602635687067172921009607030698299688362658000497308409119145181456862241128137267748731845359650688502508036928734565756147943295861082975138716951774645174178043577193141752985518179150917725746818518085410264697500344512419832035488421938848317675708511327096307053838395983799364644591971635574028329707021658929589962657467030304458929196152508032009288539118745882739765236757247892406259900484541801416882023147488892049453075451982805279898483382969262462673097180804167053481202896929994935606109036122778390558583323601224987629949404356038465557271642638857944237990516554163169657581441107155096362614245956938592374797851521111353674086486688431095863957254977006755602174296936710434068589056885309061468839780741225127579220586725692749936415314995319721600802090165975726331254669594887324696397257788501705657377148428185975195343054020867125028953478005871836408791872954051230881925102884972123131771662770751750748740327317655549935926481650334975499416801919950997776531747709349676554983753443222732013583554892384269277494579630533593496883392317079646078500625731071435482198516305272844759115326956688402479382740534724449099786932478136553077390146015631179111449486643601188309933421817165383018682929773154001847546550100815596782841220401340901925262762755589617733704249471200510388051298133898550400784926869823323738456982708756121877637893317894683698673712171326489774845677975032186145313461019851932632897033536096675108780114370205050818694029784410959812998697249529667513320459833838484265144297547596993984290520542189842053567272079345521987127583400574806618203297100089794732942233640833880389082841709183495540649455105568957306725471061675413628547028489990686121652074663882344903083822100260711258162711250297868228979233243419114159204408362580846193506092651332736342324078443040273455790508781354581994712483995301672886112406151583755127517775229829858776369007064184156793964419201127348811536579665674370124310975056644225978568354768878627611556194754631963699337394405679506613196128047587860163826196573672812409782138747114197438784586184426791324902020519832125488357499048190048177754354541744818016007317865922753580831505823817220738494883875351077297604323435997904685011347762867501504701868832057916552327047849454823886038296335786452012617877903357026211396036080405905211157451662928010328841696675113564830563920888445078829200961259162556753422296004661497728372676408097105202213716073008941247960154804182465609651326183921344126593481691904924055156536539805083145949722658913211709927068650387610518763629327631384499855713060918437125808076239566435017259756515865351117513427876615083449952407141168661417678413263120532528553565876205659306793706596738216393665158594741724562107840293790664786334502407249919218139737541511040736800371063669852068175741749080466657255748282448036177606267054892737167746816915027835319846351410623487944546470928126070554494565433733852433084494616684408572387741337545576914096816006975644744401547712197123126730234907616487633441537164413739048320352120912945987469726969742628517277564406807286253766382766229541830509587394467274976144289664139612216484318252947288838781902410182854308307551951966592817773064015164943873086691549350336270379346202944200120399879172353097833013524670787161426983290224111350211826303429695456323300389964649019767833286866050587121586027493797432403105922394738609077109761718226099826693489307244238129241995710203728085522284848294333751762772485489161064910016716156605714614820286899561556018188175742311873100642391915329538791139453233005987842696870868165021591866857338980515424191753471664047277878093805980392151995490564779157219984733509678551297317572154886382772309477753656982630297579722941820797794436977194836253677595787019802276312968798699001485913730161267442416286278206299230478366245566344463328956926956574052052647860746785356737155782092751002253801085703262007392641869472631733686880390804500032970675477575936210591894394079114573658314762005697041872919269346940984493989208216813603894341991544029749976477313820029056465574633221631566231891121266593333773435171537877851351791356369504250843940698251305387563420614516168288580088532182783265327468416266397613093459609731257511541545743132090189356783229656060202235271085174633941552906651191503728688081842607981542477348886307419725229760093797616194865239926853828110565530333354215481017242491962720250998507921242955146397047537247373376758958958196587763867873186468678953531066973729109916025923982310491577775076821746956744665544854089683768019808269234053420483158430065547871443139693901433187790138546527123100795578190277299838676816445989560557303388767507873977520416288321184561502890959168725968349389931963782646840608978855271098368545737754243602598592733638718106806366490931978334170728478022957452638261757388400532337412628787079059760591114405817757469045103341964749137504437251590255675075582522704704531490546709440397450374345504833031491030964272326946556895412153463149894136447817759859869954362253329380504873253682856573405318861679666395268725999800619384252866585516422058960305779470417022197606738641437755964883417495553382215027074546283080674115977044632240974334312972476176579570397982659223866412221317200173258501016697927801558274431527235633057835159920239635191444984290641670059116787927020480336555789438550768861512717926930308385409819918027485277487351994140266059226906451990608542408872678047645147883838000772240672241339328537088344848475028640277831038380470959229109215816853098835892453886943338776041652467485899929957654585691825108794328514941585643781579650149571985891123124668276679848707131187647978406958526994182656445379371686265234845699724403909274489597350213180962362145196725144148018214733110726761706187716145727165855714380561854305866603526210437123005398377076394231090609710588095221603854863439681110362053576300403544696538939398298400387194622271222439505293579883273968211271590340761272703077498764709784754977735653256576866874961421372857511664961264476926211285528646436593868114741955560162358303083114081089209155306832620157622821236366957618312935431050799761685555240417951841528511065676420655514654426973765611176407952586473444483822789000486660022219305105554799265784980701695547593925394046596897117770567092143982182332461241618615971771582533345816068317366042352989466711999638326699525274598913324427504436319610799287257633026530720241653123285221976904475482896303517310624947634812962411904845477602665571315889961251088782783872008488285997323730808708169530320872171864051599347646212290336827758239838357130038338551185631589507027878875900537922697415363877095138525316808823464668299501898043353571880406083008941444775358976955538893637357002455877790958691649392520124964599584237540601377053042242573948938825757836720401885472250062662897493702925277448928017004036877221760179132304469540982591260919146686507752175915300022855684884566210179986295847620551323306318938487598823958668065900856087437921683273705394716915331014047301708171570671442255677786866969729501880387091920323395435374725764740184754589002041663429978901388343591317188333495768195812836547563473002590752650830699199294325790211588107479379271274435640618373740371398915352172557144708842855842814523203573655343759514698330159096843581212375044536745677240499239054600428615696973548225057959539203042140095859103055686332872492571491398619812360391858765167573266160999224909007386268357141134757678406990867641287862433644275137806740962512307900563655645539912634787635091998646114973665307306915248432101718283537797501198588463872966433384186632440401939379589531900173465065589299679666659736897174160819774211978058708578094706188520952930398900287588249544945089250330635462398583204783207634772031684185878358890505447517954830182615418481185435224531848182253320971239001223637525041423114404232346832939294099522987300640042827060214373878702121372471387170010433394507428475410376884864289231041612242275481938603783441102933224248039229643796297629056098850142705648251904040123964944175867261530121199088498930271112320039665131400894468178059529638998283344547113154573730907374355627822857748319114439537297052263813164639392179563850880053404820260777558058219827727339489021281751197167088104268508693737652087388106409510056127157812070749113785082022825998997866502977786844051608364176601749819855218897397027484894938225110662809603279493352169062773402763419622746825418974652847513710661649800563525234668763978859531420180967004307450962342284435033406918521903114438822916823432236574878568518448347434510325996803129168541539021040798685135842952660272949708505166821557758952469255174581952730281228240402883963294159819044818195774316314964535010701669231722041352331071912227236714157231008249883728555464582832644202187414336572186148568105656567247795040707715310720675983228344256761351661180277995024355365921989015736805826668372657419630918695064130483507203222529790925625046518555240477880823355647871055789070477363424071138228292521235482682745536840905615247411445860079253418927684024044680824985764644907778133579911211338705212788370875464904248159935906644457111432484168374502837170939843586031853236324006851358823188411850933335601373741082532527761683086016302469225206082057220754407532270058580580900787452242156943350746840155824542079679888223964477862917772368818720393048136486405813853710418848191242137436526179906156202692587439142899537526824599874294140674990940559998015136135563584932953579898954657059879649664069721988892324319587739100492174621741924528481881376927818866248724009988265225776429194715994524090253276722335150703506968584547164175927292997256053242334056150044884662084813249038349101923105815967798643741510567712368523623338243190076937537289515661841982630673534409175370532380192944130973045151861264166742568888039548464070496226831818404639392862870435345751513142510636868923888337320261378198500966724716224089055400566593299936516984428366461764702036671379724926393671967787905784693067305165609742591096130635364869613869422820796247512846024351736778368210989943649320609247093500515326433557506138470297552483067971184203745163795392693262519209339329970803405993719825306074074197177719534366937188030152581096743986209558887916623148991154472530659981860782680258296019657147159901567675627554125806689834017904617147633586570202685524129787906671311041358401759946167063206940650832194642554070973610785827814984178334102320184567369871859391716914680030075541790167633353787316233994674045497496244885216526544596062474072843068480343883890884640316883150058979589373732041658312538589358215053094589413439501080194384621975024237433422371008385089173387874277668368216728076778308192397590864695473154956085299978664094876023018709877134568006083862588422786059151001357241254120924673016801266446966701416407951328035524383906250352419025470304458832804433753451483678667545840632938412382816809436662957952979352360996367309539860120797970437183328359408526274534161500953741843245759914221111583666177253548310809906566938631206222495034276444128921223697790203335586070427244394890824584567037287632146397412599503138295875845781005623924583542904407337251648706329113721507829128815946627420457741696084399017958376799180498822308522544372330037007362444360428711649190390750971302369197312316147453146132620904622771321462468137875692145511721775105732930177977640535444210359724079056150568066374868996857876122152265391544645909058832952433089751553346928644845187457768594578810479239163041240311328372298080110449824438572868966668601539658611557918287416019151811409392239704374657270226684079575756350270479008213209773828422068892112470915369754879915694420350820601157537851665247560359010424327521315907718562629756220431706742541968161527995725829806829435383230759882877963307110247155121201395970025930400710307464904304237725865679938366971022494810578885220216517617825272036435849899568822948158245654680304778306446135255965784621233912773303382649007926939537023192247139471757493842593092452300048561674653537956459975238036724985420470875937367435127350186915738468009595106066784854158134620120675397726046185843299645945074252827011702996233816688857130686706691687518828703933680007314151399210923989466798478537927596071717053426835291358780977245082213753566360784395149009868584588824707946444690574575126034669976250373817085451424783989332622096523366075584812638255393204174338488934305643833245327800784382850121234478809127091004279330637929384513462644603100058271644183110927600115299398653900732499050368503189771608235404436690034239050981415446395030222154392032947665354933654793184001516189967289095544565791618739009572989581273936288010619601539674658635295864783434289281722336178368833891828934088145272701107465127907264973756644428830306242044530028361064288779544737410741846299117519100702265223141483562514534332671375723426560368987879237384809388049200563090240304809624473589981079447036877731017121793097511645938048124444136468375713093636009020784036746911338743527141981750975209207712798308540958978153504910458405501435860848426588449563836831763433602278909600293781474465043919573502312439099203932559299009904178142922643052539966180858784810430805329305748105293788602796826725832616510586252784753046513926850214982687749561736449473882019105597931080043848369204351517179475502652594698550571387417482855880210656828920935377326630686297307572713172083549174399525682136838296660273586731297902300953323460134851585130073760044605209450056285762605329343124641906447928461351534633261050467602991011540005253401525987552603152418824307755413272548570406923479608099912515190472692402185101338931746768275931125447548128881015199350610694250900179955515000382843649077439217490973780174019661320393000996245714321295364498933459060047912218410085767303596593461563866503327594304516094906244194583631702251589465530244754424620328250515281051188663278220887121954248176579679557190621196491743517365391832380081524322944139167770405103454679341282565402866992775089121712972243162721022607502608656394140081539925445446020956781629696694644469131333458989327101300677305066883479986514087375974101685616438772338538854560174800231984071869139058663948238407123901858135560224872340084654585189685176020426752271151979420083157628813623319775125934339852311851212853275964659088013468856056482568232282798117409179353526207107171984740697740363314138176609402471880976239366735058208219476799830259059686667318246111362025208135163393462111709519767308242635713885224427564324173325292175771554645848779690946632195654265452421721416863239975533652689324329154402360800262679946406201441560432565119039816362168773542611262187561475469390260452023460206605032549897443620527287105681303009740254620405469858403646746306834322969432767114074111793959284581475535818821448555490104665006888730307841464577592476873463395527363765623792383177581153785570449947747499162184162963212959540435354514550962365731081777572368361913748774958379555122334056921747559388089583165055485386603843453759482323496204271524163401890995493984484654140547991842097735369109201056954011161395446239001284387212250583949221288155581755118087817056973181505247946618197318621550885349079215995167261571970129533891592939834173469199759048810482312614624810058053163871636027810189106668441789572139683788441411224556584975280870858054985901886357982295768819142305919525832490048407767476016637347300091192893389325838676278567479711920020430939234240520698282641499969614471814363218894516981497257059246028747451376832976203109356710948225594681206617891747630108289617799588447946542310878155465451175125544066825963636469212160467831243693684904915014664827777740578083263453314604564763808421461811697424465362994220160136276349557220961660793270220172484900631575438267936968674800235855055225706462875064722451979639061014433846378916385390104148047743845466142161410556466774094889930786614829888094602321660446558163263762099043883549745196749785732589904832713002020290936217621883172271801614154111106290305698628961360365395430666445895457450750878724034229678653528165493362613862500199961938960970563685902753162089004155919712932736596086261026865640013584600557825383201685097205549111027103013742879425113845911845169317256720700236768523686015172664860050351953677061631315311878752444007574145807097688456033633384419127621228748508033203199993523502364794237422519722994742102565669499037556367646872623783259881160713254540374804411144692281851924609041406754520849345273650877512269943938719562397686093479707164137909779711999920689410940669059038610631334963967759412328925444862594760005973190998264836700836352295060453641361110218081776386978235975873457895716603125666083389423330460175080776422241662081129812386581279807190443256907678918429440765963616836922034430438679402030604189916061905483259814479296514625045065367483722365079768596511439158106714206095009969950921013497107273590986563661127260892025199903330916323786595908261408995961384221469421922662268751623534560699646174906057460831473011328764744621353204022611076333863362773244945843006905386338416347898675632296772155579912215634558414119062170205061411029317205360902938931642296031607433573020593758305798013737595437900021556282398125972143868382290999307320496162943556681107973077740020300181957168946561031042546231203472640437986733472133239415769220654951955008783801982698562041842141452765340055826973478071087872149098043332656713811456530854456347930175795549169568753676828289372164877864709365388394523536292156051856421183819073985177761483841947268630401421047247474845116449287666256392342893164796463917375050748162833516279114861147881900276618438767519974697700643518856385224287852594199392675975916979544702600005520369823534429512984269998071598945367897177708919883223064368560765950415847093669015359770540994149745445317532857721422846243040915204449168491305770713887462774090575435660239025819120281274905797166518863534613305146012055847539635953684755270202023539299551875818470461314916648843831362374913098566891192554348785884593522231024493414485297726217822898940101070048205976794967148812842400459257950521421535007787844129666478256983690440680341663756465692374545025525914218275779446509086679575002642826585852818092107865838004553075691574257910973925742322022757976730539201711223819637336085336032373030947409907485585840972726820637234237147063863834339529276278836389421505516600807367343007961414415515957674780165244595679299220753483179887915695474749892664450252181170139151394905797936079675372390577519333337879239711839488471291385204730447585683374746023267599396947548655212717422764603345452330572416436095973621232844054514153358537582207192635821728289853022359632255347654824491773219739887051641004366749692705733283120594006714825001820404812842787120682317358866414527776494198916575301230979869146923984157413373959334012167510821183704600269293757028246538029826792616558116409038479909717235748840347641684523844249176491013057929585673445569606232560575622644337715669651404335776306365314121972752075682387269400393922177808684648305119194172975415982542715411365414335366890855864219208404008046068832418229286045089305540380229274238585735260976109317356531097044081917273294068769602709887862923849345915271830057925624108642493663621574205119416485024814615082050341928319501605592407173253083683195985023949521030598433090991410315554617085321440629458888284546285216891459806124460866320570630290845738736601391223973900849841835046950854614119149283336854204648095486108973910819568724097123291604116033318832918579099133878340680625155343917978012009525885069261756213964188148420846209137189357658671540932617645628868789351307615586838155267303023364238482821876868683847225133144487043735030177103870662310890343482749985998275772663308903609967152604039656276853791037016263179533582546208709432145523374671288884409195385909763647752460246339180205539421848615402666708309665714381292877632617797430653210035500433379208591962038363993032743322013501628052862940716550988682756886580174431557297127787308879591502142019640946422674081499683387166191735613303105471542197080586869444005613963677765383378901884241237353956137937763935798706327495137230178335490012797767198578817065133010032554798410672899989163972370853525614816329473515580435684766199918883383785879458299667118764545853402476867141352580838169180064996724685958847565187629925237428902085084566523265015898442798458401254226785051201325843623559828408208729668482685719945822007743990687612123500941024914568218998467231728324635145855280995076674095979975500550983544625675608428567115818455514108195520974854115940894525234070342697459677585548329847044201294971904161405739236529466546948645866195644300245456915987785360317145742052065453781078536144755937782331066642436351187205110898933392188433705704227850312859230810032337846690939221969759309397248870334574866915878731003226039175558028684658754823562953601202151597581447471350659504391408384769057284157787222238178809301226425057938957140437100985213056167388470068932457718996680138518398978086284954189083792241293770253909068613421869937734214649069529353024413120950773646745388983480059828568491838761694097831080049897836976924236418985450936372894241219039555648912026424031309043200786898240837418806111821480191747180402680753448602125623955037777277001133681030063517565191021194232866603692612639595742053966832752422988917191027959624400227374543856785586881562986189419775519197590800027701730680552190690776450034993526672207710641764150238067633345145182727352072982636255268170112867911151160532330186399479848300345066860569167176819545936145664886701987310484346813129681845904009101443434210002377578352199875661252675663554498746142170896776142339932750878814258746634609013501974452772742149646739815535161819252158351494608577658577210961995548724489350077624649284139258277408999080027079265114171837455066271558855095340128642930150626448205094228023616356032572761246945865653108143158342472844153182995770183676747862896171134688476796174479905811285855869937645500763167814043613914675415770812689419051432426003671041524144212579698690105011830061681140723561741649333742905015779213776401709783028659241446381106242228069971390082829007137327736572690430040163859113885250782642769934823149579015113107600772462349638557495343023923323970724546765289255205626476229383765486312912380275342429320199670710186921267928206097496747471833310830465811132508329512966973182893637912291986028009133685437011937650614802678460486632972716370892551890396133437761751053101446291345268231205918111737838871102674112116694547312457410093862863643677820388702848353724497827887537216974890057428388153798076397328384214999225841761031986239329639530556670089517797827399906806679620480864435987970762419309687518373992764510824463327810266504969852666964510318966390287268116600633468505567435719003903714362978450970355793989399799188393395846454616552977008532939294056997163466623110009190142602319002299867198663919000213717475866917941013052909965278193171520762152200073769126576165830221237341831150360310120226620295399906249947729726760261133681606276280523863125185706634482180792112721903803667166067391295354565109512623956028816964739086460858881532517609968189915412988573148908472637832902227772622244194774852684902095715981831954552098505924356131215223143926359658072888256246355171415868792017739791070235749786676987337996620283292835992659869946221278593559937384004612973280553388676852018888742900650858974443724364237859789284464278405094993135565702263954541769797301846066402358207377884745246813539700672865268367102042877663760801051183579813557683549844600201180958742167235563194553260418959357186557381616918265497927632163649393445654030393085902789173286925999016619227475538633085369671589436681055527033743191578419095431472302535681864129579117563906544393968002618634774642344079187492272646604340383316886670448866719408356486596516840946788518061702707763615624981583214879983130478605373520087910843954106479425118276597176405834509729634267852289811410679606486212627417029061667164758525145297996398047873021487041744121005205796093211775467295579447706152089562146430656676519183235456215762174560795507362703133669804384443889016882417299380667407072690425180981456933481272083032403604160218952094283993283597258900868113291176216642275174785102040296620233962879791656333389438442705083337549450743453391853109055950768892824465479525003330791519300157702020543068579526065369464148599486266844313338657614716141686592230721941073280826154573692276370920655392433599049889693800195974618213774750116628738212971920396166068896210630589507390669060888272447511780953857913716170966328125128269692150473201104363810426434235373609190512837563070281896847741902990425771340053590917437168707948614381370485663368429123233679022054383172171601900751741859281279191324733810759280617689007721730966295116435200257285897652510911426228466525162382486780144575100417219298984270207448329323105713270483246121589733537582046246417952654322944021763406680488830528698093707389244212195011655586648427140695616192400567278694209135744105452809870858715058441140493193375376369523177997821309219652274634732479251200312313661781428943603548704941718832460510696364320222372543805826416921469215847663238465643413623929080230853086454141861665084631097522000211317242819172572628354476827108868141374528499444477319684867599446037849378478718682686123201982182939691260063868689086835867510974239836210859174669782260182447868133488164950555227127999368380663015138816079894127083787391756212585950694509784467126955069801754163350655369057513514230538789629994833550813366044865540445418975859334803013536270103560288863812611111788359063776122264605446632096450301561377591341681519705828277110176933301628939489265934414292134795404109385118904993761925056455803729213179424109669039713260181200222698103729785497608600860056663128822525444430004997016747268385751004760271743564032157832290995508544515116920976362970494693030898495515483431904723849850871718720676343370983321272464034799465957503847713135694916498982225035437901297130603045613897889142457968403626794737826301777157374305200983840073882292259907774796504871465539093854931222435587300971094730102069083374628500958171080512067368126086707112110398801670170491280276635641621559898622636271299759184050225577982308303978593979098834747620819767504034928198649384884148654071350058589868946726569457436127623487504365240984488954061485249266198922078003680842537390715648884325945158101934626698707559985687450144164395588054504047941966812827391307453032937784562941800582001253942826303890575074280418849994886268619643330814074170599710800327365661031732799399395494514142628837498363414302610898651354242332034611378101835875172276023215995951756560540862737177278240929038003457652848310005755180702035005067861048086931596146830224181782643086456462984398316775531808063875263142045043563561664880014717376148033365042091976561585865604418667741630169617258487744932913842600943833000425013078173600008940968644667468636977069049570934651507102852328718016631284658481953116237395350292342361246901789090298858643127344647743151810870851627890456293201075132795307256908908743011680184520437860433865799537497207799098033823456631816073187269999759406452183024433510265839032581373555451811937340987088334704743571225854285942661883310321725778471555529096237122837080724760730968680541087109715751313043675417505527592358044389593774865466191669157151323200628988219856505573023300614165186267649158586562808941711446889883981527735686323384632461556631138413574210719132182220893590755514145956580008408775742024532959665174566814918468690846081281646274553769398408727632119513462706873000923878864083679627946688652964584768541643497584906721530737956635058468848181449072517729363228118476287598525237775026749517069032738378712359208625669648268856423033161355735195579020748054390931451007294007565449967130810796723496944655456899414637743222802942665141560423267725327432804523348488597052617323565741011878008887656795936900960144079502126097941643485485796065213870746336586505122800479696818036312687747246652433387607030547740952625582497444651606284742341510609972311952732948259100170343658131551513878424769203301813389141960053870094557007958005915847881783253799568306216303237563121776817321907637535633678841582623587413799883541529719647324542308424905243475654252739952538490047857696830661191400588372792709745124317574532673492054636307662794311737542069566951357893496103177076491566175189727729404337295684533742002249339071141183617255788931470468949383049344807596446850133011001679711108567295860130098622914149833665569686675464043903865062370055586253600617199586373450529464544005644689944142553407411583158425971406043488686458446675459459619069839804352796084147006677804449635362132334523276990951086111333000838431710794704606068398207729868056984093545799842165795196296463518356311380558800144167052754378888016223126033704085810752549949702690683491177351473912167269833038197541546934038498740367086917907382740434189110956074449493672222330391757325465325557422531124114750373238331051739829049169732548832106051442947359648053838312698314136212030440979325570045138580503044300537108620679138927990136504531901575571091236194997394083059541718699210727098549442101303218877665510667159571497801050879364106900734951373912560199111589084209160267913414320532200037912809471797307595574757255357896460289398990414098077244645966508384246940475046812714717873725460088924161757263528062003188645666516217853614901371387943534098179724078267089486123846925180937549169133279800161166497768287254372984898701208482725436575387268938893125649983669842818569930415330533000383543167321474327021196534576381756717305150175816031542439467414522485430006830851612166677842821600451113729728060476868279083142686755345271803676488192079064565544959162497003431597034130610652913044230536741010445207224325426385006971110749242303455234328203151841185155299764276590252489072372023752162114155198840865158278476709194735868699464148726089639953856919393297200991384966221494959419680055308261325359318144152345092426179934461628748912002552954970217563604538234239540262567465322739476010943735303393926457906096077179842443802584962856786797497812670901365950319997705375671607756698796256997021435557228276620445154718077509695966717710060321748494961218252995895297907902393782716773126602324072624014111323851767004941554887131216814696883626767988983616371876059026694479531673364827688199526079286103123314017717414260926039500798692262221517675752995133600897770362238175026872793170749681303404048735397047130245869142116044427434323576528196653255799056083800791974846528973417134277507971806106303227788402374703386083341410828201202031078618456497812519409734308119767784174818216242961561766608934020944539930461194868704082091500768643885711275202756190742726358874047821020067865155404347079807599039068147374284719378360373390400707531068926850997813390886432362167243419431774542911533227711579626652871625012846095553558751533257805676988166861135354806612255990489337860729906393751824636557873044803916952609286026121135728146411630103427015106271783816134669646927574907062413690374548903564572055187329129717683910186806724315592143600596048723068073202434890573283079317594429432527490648130901075553868553481373461214538435055359141441683118502094431003805138949501077943127270084959339712082802186242924924311060953415277897568481383278370693979585192619980760511397371910948687076683926344850922697628310309083672182600483114934209149164673782914730638688722766350341289348076719515950402129029321777675642925438907488727158014608499776972055914293228191105588695672391983232753469876360837948169128669847329422494144017448296521163961445019037568597904985018038534345659830247753662996523693391394870168569368221159272986725950478271407943676235176511853955559890218321484122317800014230270427604216176296130542497039623980729656766742265342611209254133916205976129168243519934809266941570833077135596557785141567230581680510084938184600594501166021619024094354191121124656318109475075111743777446244732807933350330325298470630721152782212553528865883960208133480799544926923242137333479062111896418098364765909944801320727358532910850094194509917598662424836918748440845607874222605713634645087919545839573576958821775711822745800283431448840706673398755090282019210064118972556042554878884702241492245093955296816024606253260245413766994286750730390033653946121430204511719990000015171107961912620317176848587531983168825587306081212176433178033670909314135969583975867075771055454591367512778906093746441160184767242883427455906521167548342473567852997769654655830167665263562823285237216812890458810136510567444044483538621521573963703334484218036600263703863053033476401195937184961717741309199622701570171158269241698042870575767398809722048626276890279657097469528987419587551966991751298654046275110204134216982256601695828682487341954340929826155631643584836121563696807803356953746807007007415917477138208366138115969149926894091003155801732922156580916066424824847225285178144652948779311717160647362511813682848582978545432047168547974106666544913679616083704440149195059001333114275493462265948652713998794444408616571198395821451345495911382763086753001104592356313694229590372012313136571632066807047944915962501957341162822370680814174866231585774375592037435030736224981934161267896424890503088963100394352136088702385351703052003735828672188494532006955551397479511728279420414889704257295934406933067112203473734248490995868216129444240900411193997736474537059470504220445920333036081158855948056400761571903246903372372779088072080824855607918502562980119471439476325629953937809599918945372602313465045628471106633040988980883904554229202709139404313213258674670539402710638113795097967439672394010409795163900174717309947840948702449724768683611621421104551754513114037599107782470808814305492849776967602049690515003206138387528195603895606379611977830717290813380416372752289022460742976723922936853517853105690978338286883560247401382806851729422227909759936665484001291046011791347810005303704001630942561682670281612965622036209948590591783420865909677957360214934653300759317196383819614837404267572327870186237288825335807542896014659905324014378520145706703023154850688400975459005957539080435641968450350444696018511412042214857837082562634542923640928993324790430760014436259015203593192586730810297616451971266157803250684432481293854609939960754642287521458584205606140764356044939073395621167940017309337608766595569150483984147559550830183863065300816855659946375084410876763123405658247646702518421957211117709291218902959946461115685591656919675158290884662984210897269342161070226360187952517428602728022831320604342608720453799740775075517487412235945152145645373516824595228353297781420151465853333442223957621459502455498666031535945339552577875066813986263494557064243402006990583139254731785493996842322844180975533453236070725770075129567026936899606840115987884150122164912538697327123243311656471746993013971849440369699167098053984420682071014512632040967713798870061925248756524102762348772776585727040571766557769323110229168544820558935066917797151950843616126177572908330467276820491537380138637976480490539150026818436593434761201399178254281904555868852248836142326871763210096152105961510508635091708663932566098317090873488038186609710363515567694073936935441114802595431908388592560042613107312696615208648538428744443907162056527126964892509129186177209133596874807518865988811226988874894569748460792311457883464775074773955577593730284378523209534479701758538683988923727353036571232704749529259880942303620298234187867495763608996719192994407144631860312940078952736484772026954051278252693331833275623557038647701937108013241938293458825125521289366966293431511887623219022760550936530612403109886286056165128805857225249103137331039237658293156425015864788596703633379131823319164382575614237469665940916487744035438449675304537123727400493186883134606832171398125486227290240306831540591601028748019546660545198202795344417822587443991595243117899280128984963804048882476704094861054753224901114176862327847424293391859444565350938418774098755855203973310366528693444913630378658941879961788047176441787342520374156085710068567459188239729712352809336171754215334973482063782810850596048208823101068483014479895581085022932921460870706166811530224087394009079289993520428798115830820682871018258798906003224670475795943867162433967709040357851846555025946923958087948744878681767661968352142459424404904493133694489901765420023499598711493895756438401915773724410344858407865972056548410671714630316956334370370710811147821113798109458486248736557778738779172157621775410842161652671961133801376734671867431113014280278789878602396118559446047919390641555923716397930850906364095578001824285012649156904662763424309546557911076031944689115555540975303462494403377029498594347469795945620169755330050421395618606665429875983100407914099817837038669913212480529769313696399340598188080233687170701819761945526419183480185098854447189053755911596038637445734216768332165706834570595128656706515653589791914389074773387759029366295457475959289803640578357306485906252480969875291181498484201651662526112250644461738995472823709727921892049903126419808586927672082462910198961709507406315546229350294518868166570900864672822349592554859664598643010444629532869433689159179615306362007107237583489101608430708585964031324418421456955077394247398844385230062190751725534031198937270985533404670092466148003621509430578909311746488178504627847336555971946800077999947090927651225020890157631954551645879451654476728694352778698694611861187289083734223050997369410467497515106918131596798268870843338189537402961089631323181938946250347115339718839189616014307033765300094556757185878537641004813381026924265178681510037523743188190871185072296459263547750949406792694305420391706780823468325757276558219079895924719007361828833185134050524946428704156243725551598105446393251030967289016208855009152548672237766430533500499090167736818481300866868787177658734496832315243970056263116845284627135343005964776346812061329527198143760461076482062025498923489127311641422399056655465198801276288992054930728908493016750440357799233280961595480768357512646159151225023448993059050088486548181929601815968453778231745189680338302763969080816387831722537300211708766523387486213086193741445100172452201163273480658383815794149724597183162110047077006704929029307428633817557094678631762646402796590354167800415775955952621820773597173310767078043380631283540636866008288615304801800851615183413193006164172408138907326992279603609080399397702316445524355075354388319633435731200395734016824791474569033447052331227952486695965951243860593399785229268186583883828517019982732946683730357034614707233560008764383300909273804864283056871100712650344301674242513723881288396537354453500661921207663389920784094503696798184649837598918622865912249651217794138400933114348098524604918117157805267007836795762192995360378241357266780691731893478549533889693890302490551454933996008840131220339205010623953435874033741548608978414837324901774090852735803261151927176299267075888851670997755905764545439351569303452942778153303259359221678906578185773272228581886996490369785280878290146417308162331428692129081131926980112776911275128008136692977971985702983383953057143627441690939137480196767530409602819649296162322296173070326852191071445757764098879468130529113731039982215404031359686303774197904491328354269642684585846844353758789056537634097557298909441006998850274082471868587293993462422225327770039950460569489342348373976484593615639293315009445689417382695216830974910540096170892951019159180449610358936031760392188663154963190914355243165498540072973397376051983718092566514125541336690266505660273627707620050471155672623694933280024080347410898732959847816968424163012145717017256947247533889276801781215895158250910252534355101621783034292348736702663766893249147738706937068006824234750104744724577390914473886387357051648996082689521870562132989509058380260565287894284178419350942799751470498788923690429686289784683908292488524922596767077023607160576182493745856195480194970322953313608611568783963618360981170011064729732493442157535715920149427491302216810252675118416089257272647616896670896013384833582428854141156375464539244516849881290479452191290930810467451866388768754340037382900107779914565731825697004280206116476345003998603531329365924450019881841626810994499242795042765858907496029168545173213609610412402696986950952225545412508379557994314077758569065907131174378140481458477264139883306429945536572070253067783031785307993842564910545633992016616784172930566372423252888075338260042658856111803421756520899598439013538067425190635378621172165229067232481308638326761750904997861355499592961948417155384027014697437469604745125572035100467687695506990159658064502331260554895045795873380642215214353673129039087540867809724944725499960306965530955216380626218357040754052626824360442218681213135475461133325613841080091511641804695166665749066299599855514255200396397192100074479458484300493825542576905140008797659904242204906460673955522759293941064751059281778482640169954720668582520134729269052247512983526754507652696023329027694923982725561025893270125663768715986039510653286600354605257051385406942207619174907564017821004520196537878248115928455137037742638938261242836106727212733802056565164634797123954301842023378568565993394851243480645959031452630550874788362903279154986089160186989200290381794823176110862539899332474987115875937324835378137148151826024578432817160668036791792225849981485200810599861599268485537333490448729493577688681891534386406695211765931158362113887697910332249452335800092220612572194134806109789342989170199581192458001806212961040658226646153440826197500980236771185662756464293444650165947667637759754388096491280908702940422165328996931001242018228977453628696000860398984236395605221449870915198981874237052848884074859065501596080755802571776148536457085207799279239379695133623576568805225579387552985060686499168080707621655229857183284025170936242260058058612906871903608263796678313104766920464415467951887878476284148746160575563370377639551042542863625379548826760197127150882344258044641539711400161748575742972626010923202021729244881708805071940049317422826076369369158759968519499422803405878317136907387137256211906862201331381677904500317524750447593410293311100460528777601816228439873952819312688755853591448525880215110613365744046624314829033203909797781649964581124558295617682663354874755814639292078918091891333154804875652654443203568899072724653161241551367194541007345512423340639321247318720540218910269252109261347031302320505961249651495007615251684127270133916726015675494850337494462742226872796381646073574966584698582753827909477239165534911523097345623033139373006013713335328664824999312842759302805453242923196593739419399140733197537028255699359156280167987654338082079134736982425062759688009127583356469112260622316107794900372254610397966452485173511664897352116567139926350413724192826341165233155860873277997917964706762060801728059585764443605100929063774732950736784081674589752616529702078984867356323942707431362362756718738132864637931756103042018725876013906039922232703722164751920693915223205280703082586693987403599398469980083400259096056751517275606985025535019507843040481255956198447196464394991556162981466903175022636653248063554564974972271478530964229182043763698174443924258715169544558874463554510618304148761757197968173421558494134709091776611948877068206253167360217451087702305186523747623224911985773978679515882034580866505100713530592962747188568634824308547704284607451907767574765877642969969510871227433218001825189636883273973788022799073554601614397131693373247719497856131652173938517521468521723915397370007782361958899004487536045235103257766036443035922446855906213520095384164168396209506790219248771516688569185553848259260334419614786570320080880045595609740602501527957027093272632489776154057345274059574488573519701043317364668425760849723350823928804257695330368644350703989352339059491955135271260875728301744341152797370884432756112409803248516651172237856143759008788348596106278061168252584999678126851443040980810706457818512515306030019060754044593123530377904790632333143783806967211081602571711912291140684397846507979381919073301850943320233126093323783984109291460174905054945488937632784014183315297959904055932471445340000719133155261382379447645740934651295611782420828307946127824751325876402936997725121253312462240001784476875730590393509768254132641652688470450465877438727981932389296683722475345591966966853877950784895321346697935688211507623776476723943568573062053925815230738474830388624224811187393580913736273401150904272993353106492520895380529578932775787027638747340302755967413246987203225464142121924714720563150700812647974722093353398729882592344053620356510015172096232833775427181801011116401685420551798630925564883788741195748908890841551546267679668588732930336737652557149544709112211235452480994000987336277787406527336352763324365021868306255677384988769220978416619914056683171505345001565383839188366646513937851308514357363821038724759819444959120529710312615131747570331867295887570787912205705572039135636727242071931862796949515262066951940796081836092338211183496111386776936949533976384191381986184800625620585740292967669796078075585892099331810751025759095553217074574639478887926772004380413669164741252697018877706886302386912052464640123951023269357162862730580935250905607945405172808413356052397082312311866844337815199681347680516469164839123917131060017194408098956800130394261965141438943989070253836346261384205261848590416361430463318580535494823850372154014399878460218100347581232127861975422928380518296424429335909453754619158562177169678450890687169607198153109256035566705978674501944939738205091730836084155469387401083227305218189789189318750488899899781646105135186049401914955023903426849938985909734506748033518914747357193755151048858838777073950381383136001453854130977602349665530383152960873388214680205246170150824772529242489785836010579371702727608517801288658296041094610176052887910956935531255500436342124963417591990001087697058171449227601424768005418503998182270923766624345353930690329274677541112588804859432193008938680533172124990368305255643558810418740591115703563974574545262993931291332888679773992774520126687557958064509065285082463867536065602161668508185783842409887975745788899428865021014347742901341000448668922880961251497516215562184489803531959951987010758209119039078670324238773235852181790623603815832453946091770742234231749222905085371219345196326637899083909243562595178254386119652683940615634550083358109595470010765860412869137131964596260443741125086208509994093892860080257851958501531095984920007040390839237436132053408570036400644435108065218474316401603118587250323622694358164135507337881132255744433239741725189705206228462532528927918773244676575361701826611571317328085113317754894529594128105563703980952335284157325989430228243395412331188601612400852233163614306252316309006916921802468013944554208858546957119083609625907289135173368152650028419642381602164787672210000580768717795736329500206656250020994939177491207320685979618295607629478870918314326936988710860473159843640796185209674267572011717758592142741734546242045058579606739216124817518863474668514171219863207353235512608540251147994997422580106269749413532605993782233423543325328732829412223903100834676036572202451182214436412141480688806726199050054997842292491303990117346394770825934202069097260481116180159913661729643051796155345138049739751629562320493230701731159012717416608939423875431646754267088070969483208054840993714632990342184510833598024651233141945428848029799954877864813710501133224183856222547440302700407095421818046451189979725641802068827860462076782629717293102698296960651182646148940851445677322525850761846140971320756555835161492187235193874634186083961748096444483225987490555276746904471354449052145687695360920249208725879451811194197611248158142043441108003303237367461713438553619683116375463365514305521345242547461680472822986388641115680240349286608937918337088456109755424267797522573080124761930316784833831553950749637922868066364178464604934682669776464714853322036471442788062912114047668502013665893907193935614517515715235843756071757564564311748885711052708306978463696234038650352067643869250722065015310024124516789422830438663198381422191412162541234576017624086387590342239685692140213240352652708140859912423768694353354535834553329662217697286674861995443536094758299966433039106697416655593126952286132259294244335359125487727524247459669462864567732917605447979158958454174642292322066453271615354493505397322857681620495720041793353881799401979002692922924723175683220410128711982020864778208242462836204529675550050784301981632334391315041816300436326335856075251117084948580926101514231404071903690376378286513639303941967506957849767498234117413061072797002729170906561020907937734163562799616258780035178224722450890222460648044055556127073703942891448864252842392121141030733896813145300841433491480899915875678422891456949014378406776932431573288738224392879013322021306858858674576525180986867161990043074086666924363456817828116527325263526471359152824157880411472072528896226115062297888584358610567359968192232772824439949745945185916697466503979312836445799797636882975935687242015123631067918590533151550432441718888717254004237254663947963117788923539406293042817997612196428110425834824829316775553236353713447945092069859377481109614372264739953447670429413304048284392196930552306678432921644072119878137451889709165199260139052861280334785805350914722465852344576530971587563083583049262447846088014994962748798894024786828517390916238628585946606174831185111519439123242155534975048757064062468748716354402140299625347250891455957622349773206837632894476713785739492664016221659292540377494918075345094333144522270035006230522007611258994491040615965333966487749150897394709188819684254934007651123294521349510829445804350439497235432397116471041141595851853293778546725621237575702432030243061055342987497889767135167224411322896311342382359290667595127621252068865201925838702142408410999286161260587162602766558537891515294692917223580768941662918578165596860931100897278410288190787454887690399830174602110995701646398637978950259876889632351372722825556260859665670991817162934228606741867144537645645219025306991115370356222330931797538845259302092807476292639137508451744047400425618355126586489951030679323565686558391742032352632866802511222213874327689529128104281888080720261129198746804850290470894827554479466779988392264889794091343763335857410170043156305011730617494554272400973055612819603226807124330888842527300641989679911738072256059584534384500568834756813099492963076544779074475460642534118120202989355330572178840298981665193195988484766736344333946952635243465678354004732184247611425626282498793556829562560959993617397241412788659159090091461795851284719590951132170175446263713047806550389840032941833110822532008443445780460850040763154458812541513646288741671426838706815552628792820439333776461329941483155111837916219407053781431847758568732899448863419010036494381019091263584026668153445680107870611496960223273617554833830186885555581386455526259876196015140818406423121544063731827668737365640890273532154905300487228375923716909773592954099108445654817736383537521265584900068163059632390616651630989799433340370200893417803046561154140226818386412643471730901357637295884893502116391532002311261180422585980939598777264229161819754684774548168319580358160181438169410158072691633466860251502915628998792933399425385486526167344568067706923294914909199776698133882216718205783484059622686672592244109991696439024632202917029183955488637802351105931839373706735709306709165427982478143498546905263669519044048002409966841711028306264105681959947982302245151165863944412508413401606610052780316330454347418496462401035250343639398292494379396530331999763972488349848868317306140852816459987722648723542295228874173400686448507888253186521168154682000857441872733106991435797927433708885220345386753498359920590774260681034434730966830985612669400830907326960527321556128574995616772742718323249362793368558313242951370633501051350936943075590302302370099345108619751562000030504596233773172340421088445742020372751804566140048890987983505020556639590991874346899670227141791717348528931252019920742861608703223978485322444971619228188081965929756827403428419553449809806211406293914817509980781250199618755507157502419616439036788498857290996767436013913118724343393142048148427438373070529021838905835549829419959487149272951627440513641533283915536894020855890145812778027517039982669021025343485677752283793386719688105947931089991195770327607374341169583651663757319607106049733220967853225992973560775461472939359616593962097100609100113294214572646435671715655138644482639294083455232642611844940924564081215141524686160261954289835334212172857911437051458699588259398436245964921611925447704602249142068834983386988155938880481265966135234483440734701266080501070303722855203612061201443977516825103643114827840682136732549249589317673511847813968135939502559557937797694357982938627017854636835388168863356075004270911867348808293406194171973842967312824997956199529453737923509847421068867712983526266651298562837748296014794874969586045583333465093046743901217098714351013449239538344691202478937205381487182611034141400353141468684340682162716564206954424654446061114964975695604013259893771895649394546520202323418008448091643610420721192887028439939304130196302644746792224253118887105219770330030984456705111139172555171847619449477661214401682397180370568486407989948946245865341071656917033666854799426280708939198588495506449369615987457027908309257321595695282369590647644133536766535361363349734597783611650738092073464675716327284360679414197237758154333345609314451672890764549693212154431757159993196855823777511757644817218226436559604160527374681342977293931492029937112063983957794905673469970248798845206956264323637070181348441691471638762835112990496907940674819354631092029587569341403325188146952753861378429047812640724802083893224072065233366038911966804450659866664840768660217336264199523642395889609310537540158642478394932332452887165660062123637428905702938665088220830275908920540320102776748036117566248376958898006640595457829281951602876109219858900308166367825504126408527844545684093982341075462344963740327249388455909875401282833174603711319652744960363068871649343130682601994973444784508695311691324773044391860184617257443578223794582490434868098699794153741312928693748036194396466892712818963867692180462062886920035384035847302410274650106904585767386576353136206366918007438513139267529503759233131838522928415629578846679459508349505396273013066987604965095044095886472840737106313507227954188813466142952054770912888618949331062910069453790485107553435401959463243758765641217159543193598996457273933262953102188983179886100379066269639627412830091823224854401722055041520318320793714278075841189870770499426220953094796331583401384766266973002920418179703774595035806691057069046931001223093569808285040711124495519660487226238280161235633055134332790745740046858462777217504997616137314620303386085152499059773683762096674882263620863157836845451419664770209289728988202818917074033101745592884998121268533866269661514997669920771598772701565670298343960165244560790024197790087422867239622019080942162389400291362601385868289746980546506559777070416547838988590298992591093364747921536205388854589722238325701320445939209519336489743434356767543232687571713946089781740631495537111787524109969468527462420778075804229662649836686090568265752648969943139013786655375873812886752038112777844529373091843161866225210083263721437512969262603581375261553913845591294275416009700937131260772581301223805637179964360486001890285472937259118134222602922095585591489090477645032852876641461716953992333250598665139315014877373187178911340895615736142594930281682270220838750517010104893650154638289871550620987064482467397732519492839308756733807167834917212290796511235941093185831128632565092577221059408364805203052321323304992563966915732026991135739354318646399783523903708385354610707048955081287401651880569130843836931698489045636369797967998268115684045766536195469653360151197310038295777519954029377871275402142402222960937764857014644245284602120868154686187371341707371954170405181269016391889683615566253998820590694567509341388345509920740773166169343124544651135590161697467217292958642379487226711306421689745673177912144792071489896840258719314737923912796154557513707067943465033022060488810082125712357559975566766564458953392702879743214828352398110601086557558061780733629733508325801974402671252384437597291608615424658494371652918786806549056399676856472245748633895810465485406230744353519351207332159081749636861592150714968301880385450017689570487120498420549496217297727517203779530462320416495208907396994093896928850821915697027717166715365423197794786305169648572517973557617694236373291044864990022507472801430043052354926013551194309608209383934256937276455617186538027369499014393302794642873942273754242657029321607860706950402289130130411109977945879615966938929199867191489300637743215568327336852369827806779835796906192494363985571309529299557178123588144092965620949558281081976491750119303647182335628330804699393726786307648536347294861438099749364922485022630011269678053091855478312617002615942680963864810610861744014255813534342085064746025438808346105776944032798620699896691021923851515924311195698373737612972621679693043347614540270528743312388133267129768498902724057602033936212554726014927392033650621067177707729681373651462821562705798735786762708591595845360914296212101576484423182608057610707514326875576308058694773990006955344556293500037555238442460122202888676435784409533401244052296175660436751082802368563041582440929199732003028992914846987049958273581203167410140851391202283600057362493374561318290768503255164319327634816554900534782851250321568541859624135091122277394673173204183416451555345712439319449673660105753468881984759667077487297121869740680323545701924179222928680202263262625499673802002728970361134985891348634956861765563229886744289583197549386427589595122472318907304448408654133165308323898846180853720657704910039124731143617705391444079625171964761182629221107888781490179322900446038677933685988743051321978202305946087460066559841696499445139940735088739041306707808418022858647453455859364985706203855003275866362527001684161756224350739031770716415897033984704835286988681922890931400626846293060964401394539136668889817914652088053592555268935163500413650775861134277189243314098510192702516302974081348820520640662792346149280909291750985975296692089079137821990603150563379408602587084225777411006944316643867766861864067139001916547855059132057296608791933542330928622663976464944520472969301343707614499170496065083547934091200008989965839004082163849122244210669730973981474436401158048860684932219415680371013565595269673401339334447963838476704644633465839090752833220123059278165676997173288705077102183946137214393659096038335084472039821220703983222272247958037281827152831348658234869394683929855347270366518915907329717042378788665721104187345634017908652601163399514577596596590461622869152420827127450875636013030703173570131430108355494794585228301112394787573875602080882386093172169411430273712677197135667422843091961933368766728843263190844438349784892304895830898178631147205624233434558585724515421444762093662219373556197183608171879383634632452000509722892331383726590203413025446683775098615722428237246725296753183206103496346979694130849811351815269768301059837400593712837361387211161982536186572477327083728204303647569809403552213101322548249874914090369633921404957050107394398918990508953944113445085470160653867602290620055934669456473692443219910875287528108839931807489515457179084654389066475893668045625847179130988106036964241499205310144156999993841892457664680703624273968347737990338323728207100695556715955202018242919888348322271431626687994717923572008410565481059082793910123866844124718575109515164883517749246540049850945033195366846342188390060792617976102642977379354327942797207429371147450447710328792195770264651187612748446331916558037457286182707269408166362325372399115957489962524253261391597638769600368776091301608058805008460008425515566680925964013816458658305980960598944987342489091571990917020465804903440803686168770350413961186435942168716417262981178386436461877696599348567605273271434028053949221781960085960308746788007946224070304213365407587910746530501051146330496894628767538952841383381157737482367626014385842870077588637029089247578822051811225412334559975630231608887694742266683049001480636377947153259964340330601403149006781592159615649934617750570115588840921551677168224350804063349191851683259393483630039146327831125064982391294798948925940550417867939709113387013670338988345409900188855845756257859779471344121770622072081532770328031034294753764191377471902617791085604322128847789901024249437514033823495454674111630320885100249658133551194897963902156995632132457280985164941183816076370289943309891470992066268545744817476213984475545348686846311441068215460118188790752666516235744102399079084469348360934265580425166434836056752604318669210750779495008342387067422865308890690982148897017027150924170621343363986452575101408406824086809236546188237092187150162032551653764908169663870305288900059052697851738568319993698620692930595607216668719793060647805800115943132988036248703391956187831638745583382740019103117116153913778808117545477266144039433187506563063856030088266651169288687155255060251637769033950602901094500708338525572109743075293178655956118279752413155338810287542951421001302497910743851360558276883123298345093721582784146340459568536356270037618705790980015941927181623635177576997149813665041681446587919404622252723041311033847250561639901973327786023005086756719103069025295774184470050290460130363721200104010765705023005804851038401965569684520769717185368774082938075744663177391467994797733351922664134330176791944095116932781339629942437793529017896743526314780391245259558701534639488345536011128683976172919487342655394945001567879595816499047839335071517411679066928850710183169049076877830759153567246141722766460535825004030860044800286735902146616400289187578273190225527083718001332980242438625597900267217079557921842404952678818043718092165365144126782749598544465215536468405414864770643553310752235021785889411068211054964390166390624436311235572077270793499989157929625118519064295582624130566699572237724590724852452118351622394705757472492412795095547029715588594775906828856917437192027455017166583420574770951603834297283682550696495446600904326032782005595598148391308120969627232728420618364688480884919028095551089828080528008248429784056313821097063071492035627119611011870665430899902710821874308929496191175843803390447169932112509146988427152997622915593703965908348757994296469966426931067894079126985963826668015734879766635938243343996029565069071793847226398855085702531341404883932582225067223672888762834675307082807935496312938826830712034443746762359881074276167059962806065550948127643815113139030598084956588444663626074942141713465150052005849079090034628052249194669834609725906692763703854416131782253573965956206772784302558063845329775229000795150691957867349262478776308988918572652926548695835511346960603691257148699651526227382467747814208585926895296216915262398754305501491721370148869898209391620656204437289853831515297727661894408742483668196986448810004872310355317678273092626803857825054878421485864342637252351884899136858571371011711920174013195628697994516352088557552357682925409649880557464050824133683265222602110057737698741978103030541984473875106861101427415499576431128746922768002822978862469521920793528922942517698079274255588407780252072401498694918401127744420910134419751798977400565099560117003631651201779326005400073925319766338261829891174683549506469493085139721561397182168641285626540495448557309730198280931673431911198551028247316842958587566587142265864403998078606851590069592341584942959852063263202267738119615528692121245588780633518059294335144723863389571969486424008548071582487986902517570482075850963401390257031681018939497361408180634098404901907594735557445977609177933709198309791943872764681203260648306803806136599207495676220083233978861703582840482727185124475930696504714638944680084457240609666565966076552157272102290265885560802354224775120451822422634184161033749527363784555503701427509846635938739517994223469731481492713329246676167305493323733725618454575526836295188740783277829188085415367552887557475460138098840616120145702254343497708060495587147348348572687024308307794665659975593309644822237745865647063923467102924115602113130784490295139108629836160590962634895388439214635471163798985701838166287239054360796897280976761829860019746487547330708008219466311794594383245065441188070888202636496937893332664551759939542097655465443829225528950205855391836208142238594865532335520245690259893668723183673051128787112921550349759391387470138534232830887546057519947430108471586489464704599625973495211472778346945972883581163163328684112192294264240788824146655453203878082869078694319562679916243534714342591796666530281367471050510594733802404812745474039641802119390414538075052010162866593743903682012996647179715263948156900058423730875424797055883098905442419935590463134035121192065838092929013801727671690610178064170972277116321066999833023830951179269013777456227895938380343852785413800623484962592598622074513075274373241122133595264824053388341021519270170304453792509870522861424029702117748183508950009045643744443943147533888952290597845692392283564120861653388734431318712949376636668978250702573632373422529795741620009809036324672702043979422193640663837420010123866464313593238102643868586249604628421532454008333658101747914950817116466081070829053879920148867001844136026128130822448779087122320790745929338376338505448162770345832068259884472176703471146232547434024485832316900559170699673925351965044562213369355727199380455747028013141675234741724349345876746729703997637612105002782697825954388311522179281805886499548576716629131302633981525622626366050964125031615331326975262286981519497677373726229281456264165357098914325028191479531020724936866033546068924207052670099959734303349067948904718115259531329379685431443448824999737947646639991147384717132665743648841393644549710653300753725342362257525368542413837041419772364293015670347205157086154649851869706028062572718338787846659051114911917346856053585759991533718210194814494723420973108996515523409720248945848906157326782296049457307376601129602726720762662843363727516176538196475978432014862399335758854550979764254033334641042656998529300308754642239887755668725092628134843479163211377385001112797207534893172236374390059398381104958795760042639274575624763685109930542660153842291745179125568656282433492466327882022339844999451613879206452940359246917976010588054657717098081477812511382043057778457345946074286133154232707922091321717377817447969765338316083982933589652944558169374863161044230069486536998929693710394560347469331893869940792436477283745769864334817952043831235865287280522063521662572168703220825716210159260885487670972138885053944783868422045159054008400875290977460295855038732161521515148019781250637782769055539182337307638893869259965742199041803428983960834505555994375845310812511820769357128190990311691428753734478513248246367846941349323233718704268284479294054499718185359428038345543925865105786212175704923214227211114872330328718434313563000996308250932506041910879571029946638553228079774821902926751472080157768853134079523973412003847878583034241188795626074810140840394117982775922171661364865635804878727914849212194405159612371173199999947476185279913901741307200404076204685945101737464207415106928638751858011041853538191707714503588608389918909707217648181413947826406124509423155813590829877468840385220771591199477836047735075992892050166064302152040246721644419625788783137427962359391272651266390305543128669903519904216969004235379505676419057043144060837244289596669770435490004185943893285006458406086753101925444054618798483099690566500614421326877587158320386500705574426945737241033487933794551405749982444712788678292394372700324947902979781480590516674964826561043653269717047247059507227287387946323834476963095212542305747398450303719507818740110538287703461905152337339496905173309684411463960574623501872799626186204058991112650194838861229884541373121638911318688982097928690552045516621012669480695154242916078130105845033803677905882585432111604899864227318626905018047537572909219644387131889145892888304845541902977848473669443007656458099800676738534507627074258188106879659809269990142452600019652666963283426069063184186457191324957403929510293778994066603635233569657488280093353526688461102891780179213651398303418033553273178539814915373385429643774199105264433299340421113490083733302104783313581095496988283010348174950625897859846197521934442207677024654283388683549374720249991813376378501183036142463409829416480603752488926547731577901424179377351062776098192389499067119683358806164532532880271777314842082051996027715844533448885785663840257239399977680520886061192098467813634539792600864118305913468391452044976841397005413771654923618109884805926388381333649917882885341168656147892267174051763586453222651485778525718326094807520858805093047364158585071886572439778962620435718885124433909560408053066518357517507954215491994195638678696024763712810618389314851323100175591302167339324933412609260046185723469897140336504928323033935760300373456512227521497928731079519750701318723947499758984432898511795569545015357287179428186063958421830589287692522072422132993048234584854418243726891553247546070201096988839076269343091333348040142560876418597196202706211681313855666509106342930189892824153781212185236434168567289188953300056508396860602566159713815821429877363777420335858206032578793182268923012141001866029241580183002347250074754426569920495400584618703151748703003939478034691629379801287457097745590283351554980690464043505655721034640207968180158298742513112289825462493457273974331557047275035856385439659159539378441435583164598905932059223391897420485937383933760461642961893423215160201446583430635602793347399257395969105809681442791935632797756079523648564978751448098327259314794826741892049658370855124305563611110925775118824714904857230983813203561509099586975617686752358952614970231196492660441446947083831735275251350589706639239189912235426338503650468444193867157491641342385404015712928004389985172435190083708394744008451545257844121129212366310750104066662790060395055540261503320763679133946289208126562425035982120100159040911710542372379333176823696131487003479007181916214744044371885095675082048802407615740459518066842561782258827552757302152139152122635040594184446921915972532601418173404695648747511530931859066259405003111588279235389291028560126136542189470762044356575239493390885085405388816776360004866902102868025213430673838777171980867444000891647929386281314396044972526450946569592827601593177868777859725785269750866934882778365228219624864038224788659346474326272737569623405635050150254469953277296629414669946708343646857150517727828630577604854236063226581284789635165293641158589558616949332810710568256476950788340152461693920358039557339023834688757254772324035090316567282979815497991461201084050185772684070076650862792665183094684958949032918292139640177197962074916778703199729325463812562074914510990354091346636372319720003282891005320732671376433929533466579407692019937918911624379914593325372376570592637834287384118211038019858119843019545262955687204370616399591869266168141810648405717021269302518315296613002308589858363440689341898296240580365520160514522656481336510522513247054507575073188966170864469281210346114118642910186731871588853360782174433359413674550493407117807276753286644232138250314611941600933173115961624572471472106544508358033772385603479667721551120568168538458806590599189621503729824786637637182069556567650899620891179346591542459649177857235708345167376494137231665044550918807712667739609836047554651214201954972029989830357098709185900220482011130624749481039449259631274366485477336748515702629574137758143568828547396283743963695741084727101304199335152310306242454487538401936078130796264133168026533134559617368815674366072483877618423272637639402448292837463060056781011847323126526267950026990161303306195549977806342786580648929500123154224639366942554054980455730575997954272555541882331627568386383249900547731285795257098446675955661137884850592804210395157125072951719995501481399479963486224348996498767999499938418058342656230169577474100275618429130348006755360989539834046823688516537318422869113353047498394802965872029500452807652969251145253995307448734851923184652085846255518411328792634802423861019376640507913608723965987935660537329632681643314794908111773380051002639874920679377325762241763994900407561714701250931368150452116088524054691319822542742698363082814457853018764440182851485724106117972590739963432443847105145107688473490689979764346304164279089684901494974980676566719826884620778033902772148570461295924332726427641304283349513019609424114412618843628976490181674830349635663985559102647669163495337279267591847090903774733048546428013330962701851156446560968241656596392425903663278570080994109940113997925892938897687678877097074040371748576977924001156364929036802494949846280591427807820455476222025826399460114485928108734052457528411685409345449178737069637717381742784413700391462224987420434877257828225702788918268844632920977983525487861891393795647379152297555588516980073198274607185551025721612943665447155904047703182748852168098049138593853937276893408343328280480278186691917163941036994095453407798413223754102594561761867989426642306920604830659254979180531305359335403188400681758221411005492427879762882761401108728457378564931898904661136809207240895702970000774483730277415429883638953873992723121922625169766495770847080324068164522927186437376114890343733104567951698667660739732654227649057046093035382659937146114959441335395446878543261133238602120310785778085660456208469375514257394491946373326741507475543440643658458157004797390955307439434982325649106055776131553580909474602472075777237390691766866498696359117596994017263193782756215653767018758911381324778396681963076053276537536287302444116195504772872247471857588696574431846350989905344631431695847508692822823531558312572443080123166377933449912736838517276195321417876651050187774850194201937390675026211059983954567644823036992857766661548838720319641263528984740925919611132084738793677759985547351505431299041090038334228336563052363050726785478784521552696180729531280667631195586105970835484952199863333624119879841730542054586742116648324399062827853804698488978768232984226522211116703438149419789698997139878927048439306062541789392693750530758771649608271773213315456541459182788495572179658407635493375132161122965828888909144976618871325408718186320078338428858238237047300140707474576367103404844977215754929685027373891129498534306584424594785662257585928942381883930906475236445572926330560467274554458182635517685966598040138542330834498192205285055333918659254862983783326752653493346559890934594940264119011523226072923119517015901101004429456211618539353008435670908463938196854478652107850776220372475755115117234336685502655863096634678813513698114308875655738031762412484958399678902840394282044609438650053429191613476402775511417356712553725739823058560739047532415255320742876209224612279619430600605668418192516756929723846952890827879238055011918636900946261771493420552933292521929353148987696317061039609124319083215227197582794795899074914337669957165531345603472320101508512909281701047187368457588132107864404641887697639736592316118899925148729619454227867709454874428287584920588229072182656632883646472765952582143812793910821726355300376706384256055935910944089786831839680601081705270483554658445849515365132634931615358493338691302040712306209078002430868168436744312601701799608429779250044837723681230810755159886370707387863544160682363233275301093845908426408538842025130823358035648046032559867288912940575060238819608104657362401291853057044236502231618260282337299209864223507036038956604924310153374039469832389618630735530000507052916830082064392811703922718137377391132898013442575418160498770816180293740632047948974362583550900635272398159832825150435540534636834034985444366859033083678324182373312393770654328450591227326076731082824046558777937079353561761900725698337519837148817555347372495343719057979568556007290006050725785066853681451643292460655381968042299907540339108533378147739552430692542153092725624525602139068828183673591994828155281533518877731123372935790515326382528020964766138377082094535693059597547341615579181209730295314463098194046020738226836043912714961298068722697367439358229978014838551410256986261940433365213060853182188064275773788178652481478952731757374997284404086985676480676343068147070964667593985834030394674895496603912264953406698227246851096114809322460368171998833577478745374413221950115535673364154238959322791370407328792825280326132267744167824023826492933311739043469317669469087643195673653179052926793282879506606321732583521975629831696171071397804075873262752058901388824652923481571833160038014335082892739443702605708104913011544204669396070187289925338158017569178884805985349162008794176450645650554327350516501044577323018249578241879929258844109356620969394763622835564791440202455861389820566950730974367345304280379308963379187860476346109944807450856089536302360657248826169703445075507117374747602558295928502287752816438503104753409583373048672213252068956469496261323069930251562114231947051227374178923915397155120686779114338972534444489071562111822245621292935581921181884254474075976209527744457592443717571928977351050102966861160903751227100106022539063494182848387149322358002748175270087807206541369254087582198802989311168183918726510398009345346462897413597935940212889273873729374003091810441245987140443127508322035814253790463257313273099562669996320027372924148401932854075029684243757262689361226021934287587370848872386349719873142992815436665880721891503268141918253430945318958716913061479285135716513009519184552628427001338753234092876756274275483107801404288016349582665467902401733424983490102554101653566979343798924866559119485415272377567915653112788854803317658586255665880902855070179392203934787973826272260389001805700062972417001198485648049178711494404209356986761092400819135348408721647526443146526804328923007589657936910451259076609149404228958847305553378044603853222765515317637511988844667727485808349737305766137156943676102601853380145727630711141591147277076680036136501838910529285360092204785652994458001394014709990339264377628054851313364250198271240763359358015348282692040064997739525938769160167732910215588381006717892233592490693533388983974000611452436069509451170993569761043557821016470622909808733569580975167429201823202634437381971080662134461720603641313917910676491196408159669052986178935351608829693883197737319768273093322104938386993009850937890800918910066396151421936925564963060558127004377045325952933754992110179071073628991968055783604614570751883715829340334234878973777615732304708097483599931624756114117751489163632333574053047985458032827115155721801167517756940057841221473852560734467509008084787152987237324075347018250138212415545929999599708030313765649889638726582376534760875746232220269629816581002470241987304741159011353117017578613568120413903602305363071391197461481340064796056136338634167071629482589623982547797896569523440716115123058647538139259015234853937013435095707949471391717535399605493097134753181041621166959633829896459080777110795760335273600797050845695749996868393423064863021687839976046430285907714887089835429428186257621551901331338147251461375037933184643590837682142182539045205000418922333361417277969271391386379656921771175910185292517852564794149877120266470201858461085907441040032516357085923316371871982076299961705626022034848238182421457804420837926006238786982087881457689480404377377554864554914177350111898259770486673117443109968535598359672375534385301473233869492966888751569828300722589578914603281939246361030162325744360211027074683577132510800807349684790199385870424363085944874882420110605077011467719679921489638708046770224801539498981678730114639764326786724317968371394301220486539875572311818676200152228702186910403368158261302409883446743901098882955115128762867336479467120053594387846081290863085434933314120696907738215366863847917802530534580703636937307641532893064038287293686180064646314362294813688072092789180490129185932095258761421255573685929919160777713533579381359396846303780314952110979740138042694586994545957110289335641820906900356735354606482172588262162813154513383788217732211359874819311664670098258567661042417949159781459956953974766228354123575737712983318105170758001640344137088232371338983980988988664882041705937856701445688726708457011923271205701287056643232959693603116633207026021586080378182323469383925088483349716165928047359989617205795151827971382082198672629498966687226362507547238431311875189059165412519292790034653111568115696487509631612452156192760617027869258093893413950125830190570468433735962401404356449563689010739841549572705805283161002314738732728143920411966708919483344929745809966344350532301958393000041619965963639506128173306836346606548062634276076544877631463660458254531769639295229940457941779707966456849069662405673370488491043929084464853513515511291423877328236559018464612058870032965645524449591910191547157391385402851617454732743369455831230527114815949004208914229074626746629094886187197479948116240920669298323640628410060360545121697461700116782540637747247207547998778243736113888767116646548445565251193688795267328855085318667317697107360084682539031462197971215039925021269893449976877062121310949172553539681726308273585299668002279741950816295202509785456019166490108212380039376938423065767731294032979785102256224547727234179303875292973903525652373721683131860745526491437818326255764568340553999319509377659947100294378290598328577646347856175994176611957052312125665203984366975527095353017221024423978700769567436032702068377080108656004229266869823085194259576110948138503625382446461820181487847536370726472066887207229165682254367676039195653045884848362983411832723494630353158292163742787202542754344323936138274620642994517851297520006623943904477217489612394585375912411472319570917627881880605365745928563523841141009081476543030062760348354607287506422247575106195460375964267385184659899404320640149156216815838397443282740818316396781880897193806867920527205182852692966398995411549241220361725198530426460320969403926907935390119240310444387065369898860298371845857327129395729342664558751953489278132062557335702294721192391299552580807867387005552090122874747519128375517435979132001674967557134861860932038558283328467326467528902793507654834907325816917772528543521547293384011887341348020876714561590320656586505733426650215251976493473597339157767675703093603872196231747965300277103484254006819958400497998175692988087259426477532934221819065087866258506328000262331490013700074388275776797316949682169719546494884695470241553127415358349004798168535401137534978939253508395915608064942815645104726586676453299738329617350620795479764989699491560822007317909745872993799295107676959203286606890698629059330824338945023789284439501338105319674391886249763388164478890986169924085533743428029457613961924307132988000172308665094271597369061129531462648305153472084406116231667340073903107415918175469453405049799259007625099410045050429177551387230751710421533075138790270084202549178920668498257945652527731585348682985240308601669075887440126205948692164346739932587797280257777313405997670139593663302934385352101613856654352636011777558555063696278802086714908825554060778104242076519125612632310235293311192270732617359784317079620626758334829773734750081274312351185046747359245175669509157525203740071178134188562291214117305242425217639523780353829841451853908028958484761220388009061086451645688451017139140369149425119370169987114748904608369969523241697747453401285345913457842607632627037139610161884485807936293138704896171171697319631378628463672137795282611498602346635810674897150191127833584321493783145082733512783763076817974576920432771033686709049872787194861156587835572605022263686828542086357946020272826541518625268316372282805837825621000566389422554276331216571945388807744603797641947491924219538123028452333581459111216871570177873992458870987256190167112447532820928442481289698062907956616827074484901956824148060857404581629075067953374437119971867423876227173908500140505373319990802016219785472987284298316896715852533274221008420178800032019779106494132409423976688650242013582827543821870410450703837232052706802266842255495596906987860513282158586757540907867317813457623260191145446112131086801273258750428487381354508659771756975030140055616162747268733726132079161886041817794091447042733650729520056210079997583351195508309024166727527158370665334493002975182190727693696157444694247148980269777006284383195671534689234728610435990095462567346266718385080455492364008140973313234245752875536885925155622013547710970811958762317610499842647086937686016044269822446762738309979010872074222469106142425963875803813714153597692438140053952067582724115448042209501523963760617540479282669376354058945436363990126327358995820922475214052364177557159202414428649126557616103583704672891870969251318287796336651951257745817783164260848556107841547996764828923207327475187483801129301896125675165660223182098678029735429879436588564481709170945153827966736083033125669448747000640445330320005185581697531041958328996543911277094270353956874857855951947022207582691776544423778485561325250646272597741374336358112998775127805713394581263266993587082630707773135238222499011090610242403553739649241404509394175865174212157108976054334408508533253080274266506414312135019353283582455876078974611116615721597543014983448909891023319339604267225370880395073941354089714677685909545461790086820833347104287422290670790662858541029197324256926500608036218841741961103827034770209495840613281802830462682980655277439403168052335888397486852566460206166204108053471795138251439207225720281599422347956471813441780241894283971446490684205208597102374601721019792464899894167925901611724695825252851268534102915955518597276375026244201129727875494166045687264457550070432648460318800938710748582950088810327448751213636693747570774454747113659234638310476207747057617129979078153478872852146741023776495886510136295373519902023685616555259023962848534542795912354362864804227344444412767701847837054138035536412301005284299385973768321012825739357399600019569193358999104519005132239362728829548234898787295586584209915806431275528789126578694064340111153694921409838951387503879813197511881345161648826142131647318118094247348725238929109833490392585956979911625893260581007420101396407941490516927768494755717440292636962418363294721662368803705722435411979932446899200255457943298468639254378986754247648947526665345201378744950031794178558570709219747717919096246747800085134399146919789235166884047139521768738129942218674535029855496552620372533652486470270036216871079909070394337702466132465392680023259247648616879258544083513173219528938622490027375532225859177339212897327608437524979347783771227650837347911428706138068150738595280454717224031188951262607703267448172214763703782123025947176564125334094723248129954975590954458994739196868586083725838044009824814136142851932943077433536090630602423827773015723011957761977803968883532761098346300114212902280772891425906491289014457829502596817240070422359738351480769202322505781080732655199282182156106142641762243487327490987036690645299643797589707491247922191664968733823437792748291325910054970683242254571981330741630376186750114247139438077039953480710110183596424479126175215473401892823861681207165906610892270987121013675929820068009278620135996589366768511438897529767411966040843487360984883495501080992454936650216901480715059057645792092690036944769798671345175543112362437291065797469306928683752218347053706514017220781673530618406627239765982783376881468419255427496285191489493881173381842515150066887844063655536838723896867555179916624262641663358326100396681573044293373635597468490077643735371423162018363928914083551400807175512466393823812460005165799390237315138929873571651599072085570994988759991226380826094953236527954503090962962172277589870884397748848665407836728388031723900440034333640275542885727230449922928248767918295063435601646880982316867711401743840805836137947076766748357932902910915255969710601682595240259208724029491227545231699921639748357416549825970396429222147754446419513367185320635581194268989512905915770731543985439997244536766167460316294329697227625613767103736704256397286394790036057279101595365848141996627997076737684537022177626312056368259701135630118796337595848882188352116395426625964792806244907942759268784726918422799065145126800842762746412662629011819675184428770905012969321295143585887426551581896063902572888646120195628873859488945957564203551218572563429182440974447057082999991692711042660699167079142150225257287740130648760995500278156195533800023482846378062140193937855370312351196698310990867472468644837077145024413691235946517484555259526515314963759694707179354563787972672173728169055236464338324748566497257035311984501294094256873390961134870040879734257987828044065035526789798138283336172691971527742966669007676742308634998774463510596381634288003236794490660811715135231392017293475583958391189174552313708848973756996578767510630105799561340237522285040555209759365500668193297028002920651465866300660607774707919277121154243370097849115212839064506299328782370389912832077319678085939388957056502955685639949558978661725498113275601307790050601996336173528832316006796160624342947770967449837262308852559488912557441767260986121350281784180967412589899434078523272830908206462910230656199217145866392648029215245616602567901055649718896322422119778366984540265454602663987463365260127920465383866221088649378812014817349424170870711070688511178964977973728571793465894674855369926293361480694154334299645681738852302536210712912267237097733425424314864239774210571242650991603318395819205431763987665323856001904164891390861721606846879973841658707611762837530040601377362680889840986382374124317218037791514785330708255164367525641203252968012108190540412854104771176928427016562511002977823999699937402154867275501676478024778481166913944406363037765031131729717840125303549085598556606879910343628653236643908500640708430765568500573516582840285723065450626125813869200697026747348910610780320402403559350640366813424751079925936023951166724673862230020689011940076046245225257012477994424661477180358252826938679241041384167795574877323200190726511385289223154342807035677730804967881509626826983787797485266026487424541817734030156831830508189824116864371483747457024578372998956732925515098761047534982729536364323856464450448400842319210624078675636045268492136253996782481089339438139322531207894480885516551374453201884369603712350003883201039356009793463503935518393749509169394958388744482060297322284723228931052271613266971140394202008085714239024744850504411155562962745000053443079162364165365619964788576690181446462470492161801445018054453459462732519943256994950372171120951666925310042558220806922187044207162912469432546897620936775400076777466000839861501846473711180936087130105647676240518158906563106152528779961828907214368928308110584858163246999114803971355468734659445577749715352575171821361592992772101852262522609703080625000392187314709467108847431139632770853815574390455055980159249717821334499321009574748450157585622573370089833180123738626199621585440509140247981703655554854710328952506551361013323523422626942235266541427322224583990829159319522500700997497822109265264928124018817354408751124658101747869751020856224641994888659768788554890287648868680806656413541382682620279799583379699101340684499714660095736234651182462816209747742531389268826012742713295917098517474123905927906629456066171272296558511930507402951511579662535696664963895134793058826939683746486260115101766464135766672150520728947722950729764130065246248117995421194476921380469378044572762448303794200449835863554380887366299603024295953360702143760073895093098177815459033246864180884418738461909280608090122926068490575210998923313698005800388375738774107221666363887474481701542109957877572430043295135714950854857986934545144475976154862550228839955006541387668963582215659605468724266093558143630341795717246568553688366313964479296978485664539840679924849006874578117090888002674197911335947739252916682494070103342553152969992945397270450513677280751221908188457751100973352892842191679941649180608849507250786759066493191101434182333626372725835101467936977194026236039389102793702696933532052205070275067221373689735966618203858962432781920758636820856618636337024497050101930600324507834784725664351338942653974224130817542114169435474656638739327853058243124946311295516401952477277836528531478355314329955484169431772823205207524258551799936986983359901960256149864379769980415080533111633656407527636599787729704389025046370793435184687575718993254120236058612650699682899578572673159152051144404885209819012648706805948775989843619497336564964094405813983001133369654264969824590353562471813850247606651756500665274747389179125330231445585512766652868889745600652724266283594412793962982554396516812113220380958136795353754042238655377814519358763078339900374976504296401471190366239612017466714992977958432501195938551677891187687010375397478570185210241607035098785448964946479521959311824506573399061468917313103502763525696360421931184152625269290549398690216214091323480575274802904221279180936258132861040456033135253801449856924066929009180277268259765074373596250864807071756223717468405820180288007780664924996982215408692084500476113800325576622994079144069917115291867681423159805614364321694987431233695000759888245591661461915404394692953169263477173957409330248004285258490973778519802083498579083617424914473469832867666330777698792904801911873909670712528712863558355151368793155279208286148955714643068214431134875049751066698117888959452216567174711173564475395075436386078812463294061426160521621394751646260101455543865480647741505070917117810016964598988580541220637039816400072725431792455510297370310298485213744127030837081865119402980496354210735595676228862862384186974429816856163165074649499225628810504159712688487522191798320109187720229533213987729188515179650627813106771427208615344856624756212112164612422577612614391922316802474746918231813673346230364336207460376699286750860389424459561801941261360173901660766091751540182976840141884564388140064046128198400649636165519418684739278519397188012956317810515317191503929923378179002617417584311091577823112600474929903865813637711119553372758221319718452806396970388828071787689955480709500730362194585365613339932962511468971316745829138804077435770312036559604317230699378739310063377294436080980126192372872627620387432801717314017331351736153255087517075454567860584222725815911858274144895359488343671627120085373998714697955966881699205676638901015580729039371052713593803808168997650557771763356927233867217757285399252852741067953248804144027382479564802904521613432575381898769997945488467077746774065841636360212584090081480940296017593600157308602640102348504422224574104162658584153829095004757138890386542330653816745380667288988628598298247855841328831637291615628531510085121890193480404174001869721130838876860955130855328308458493819099591558146045999091507674646837533459724051088523958177980631481502598546892791254723513837469511882579347435151132669896710881837861584724166437226096382339277071340238638304280895839881602808974119933454014144861774319964979280578254979714576326902554488435297915149262501698359764749581146592828167547265226768639340246513612595955979447014029775548795417257721738939663055673513199536798169288912489674057111648009172554342078728838688095838172046069848492814574952209836495106110377400604938197747353168362587690223971243685581108659247833855350373651443321178946095144124731183556302511566610528050335911793290175737572309615017256417742167516726320894246335447035261729721808801803049671581905603087583221075429001452152497772356479961441885403151076468656668154825975710333430783918808639299386563510317825105727886397810240337918968598278188061725190126164472729704339202927413003442655117177475910214456774307511693135216221697456624487945127882391188008383283156260142712198528575792380492838166480251744482544323720703492627546871271630271554597158251318263992431129499721737791239998118001015018510328902991288937872227000027499417252503700853680261388653187358975688063467511807147951211429908379664881802033713995360976822001255505965574192442772312171887143378651014906069473066022033379895031117957145479661344037043541502660227544736723377270868287093254342844330707558365436838775063077361224583389902462690794903590565662654654407682219217524092040685657939787555923838826326661630698432286153022036750327832738599938928528046980562570797101925260872660640635719365663416686798752133426458931192036094574319732377470503297167108983921488165835578171199107714743097335725244471888460752079324170772346214318786654260024839478480036362368205603774955800544190693112191745122352823377078908504014277923884596376773173740116626797187693678081945239344525902338534147024775477282351836820047080551785184665141306671684606982899903643381333205255711204227235593563431271221589205413902445054937341932813454929116194720532221113965615493973844763247781678766624295830365339430293697971358463464082483318970520573388352674303207353100178322856446156958060702675968817606236647102829780794936192444548890371762227931790338415548285827198652489791289691239117433409268637231979332235845491247005875700893006925964219559628709535782680974689412609366452395418657146325402658327949457534673741848260033722294216790047933902461886434687686761586961596840745955712575942454632027254304845088550539789704597822159391359941688523209156909512387550369518230358025111861886940855216022324592589089642512905181588619240929301731854212163572697662217403864576339825280867148857794021234970167522233924951936911775620900142718385278348087732234874237618679629465426649899686149061170334913698402175957054010537492099914439884799086968995548919001433364769221041012889157360579670759063486415911197168992175747262529497599399267418084168088555174898595773842946042684681178167869984083073511461921300221236518805838716454269128542508507975707944039506690409097401154075185108607148511028557060981542941863717692030042434771961326009446786256595729632980273870319191000061063955381465891720177921690694695435918111422148063130159983951164213316033077310015987834804894797763354487875066795411052839053018764843055771900459311377155207157059129809788382262106017243093486497795593393599311618441466930712887862212148690781527360177556893134074248097494663502884214717439243444734240147010253299782104247035746765100488423484168509413378109654443732339746964773585967244239170655411568047160693467882709280651773336695300965610720477501233457965996673932693846365552894949084503272565099576766827228885323126572764313372706231052421505341239548348174086623627639220821248926668885869354470986660400204373741380187075681892810076057633017331001797166728120104909706835531880630487130577696082601356408009810367301019248511758697354332721375739106734937135263074863551066495352529256295221255980876598890741913897577660093939073470830843644905947667016116252695978165098573050858780977892974487818396508167591010563283481840726747775803374861411215624982553185560903913409853664067351751223776621168426950710090247919675411837320673035904376235688087831861748244270203211611569353247102767932155862565753074473106253020408011288480641026200035148933714678378745390036881548739237392465965760691140144397110713212521315915920190208033182331609400591974162204005307720873699690352417269450919337814979765476939621562993041877277126130347487076314350187585855829844918816319515492170826285390360560261227473206024957461774985563316930578485851857553404001160069567916723165051001030019110717441596877984894424538482041511501836643116239359808588967056551106535058242843324073585665341741448841794634498010607392144694159996990642194569143982369958697360747031198566521340921263446648464626735276973046583384032180791679969635109631936785473330643273733062532423730843220203108536002787123110598983554861471811690479351652684655287225452636568468893780855772332570959570284178224955119150137153468848649464247535579520975262227987250724861452776037044625032202347350299883538447562937615115217587698554656500091049693838292151224119600168158309994996178382225476843396034725471069887502490337532401288336122418405251124724354367383411274243578381882765283911293339683973205225828065458586423003528351668974768797530641476758779967588099177484112985538360733876621196626987706162573832110597977641088371089122386811216093489742633511740327077628730299487299185652163446315564608711211840882347299446967732146391620518887262277583756666711525892773593557469874617989482517814346774692076357965060665134603910487984031004244806217423308361502896365705549550725534253821106525785667432712665593107715428328666029744051001653721528892630257125574249732396907780528504710129042235590956038637580778725812813233788257905733935751041824061823258160441226964360464138120018415706295889276088489981051639004291795126052543994433628479964913959638276647502681023623970108088280925667779177154452127570301886832575750079385283042776387955557985963895282760494517803652044565964310684506546409715575984669666132092245155520881733432288371363989528528069035789921047786559738877486226601593318303549325314440374738103236931232799107581636776136374755897021347240939329992884458640380712554192577964164516410814361272376675837498531520420164857881482043111005379516029683330585827788508519870412621040678478733572562252961119950533542995480795835252592058197254718530844651954412291130348648503686472691940861350489409618579078339714423267936323736292849754542887666762916814568926150427680220645712879787835029610138844556827072638738796429273821898729109457252115904134287627902987861312976735099177364862671364245734990188427342393479236845606195539199149469357986631741323723234201811529507582720906072171110570346247040236893253623509258773953057587571338135832325391045314516598275384198202848937528113603319545831904747319614003717281768188856930263238192427458605356698852277361176443572151869478661111995758243085719766606449928276932412845868410088366085590212618491483020579526751720044203944428917235484793129186827760799647738408508347515424980133771237704080599248067337939084140279639901242348931658109366284708073457042394617050456136683987806194447686662456389834613915178231619890302195489014250316298214797676844170979318131241404290270078377986222502122754120485525215719438046570605222658487944321780827334060993543327461469148146071571775371512433326841258195849077349304945918252720756776260177517327133398547206488514020166197125300965126619853348057717601141790952398449162794767890524594760747268194231156148355379119983246764556930524295460903796199998468363957421795035917088998502225373257078997855816023536054722604885767931637222644755927460057403200360198694397592795007093239617387912266326142801000633772630882874821014332439484547393091699667398191859970689344858446332821473535043728491520926919095824335345838340797085582665946596285990440746650987160412835809602376030533657808427765931478372633091412947086290773079844492964880752030105461866906754175809586810080307051870778399090256972810246174950992258244292383338085518241886516569214647157191717171585494271162193728029419517156737559006379697862969298826039375300402104714960342867267708879145557764851812847661886084937552413108717534387188971905469211231696356927146117578814544904876531801883631650314029945809256358737783410472807132896800614158983817867183327554118391149043606231351170782070155062976753039384327501265177546995068149074708287824771328235774002838922801409840414118915701851174793370794376640442060679060737732160713058296729715332062398128264971486359519626457916720197386142633694792936366807989287806653208604169630662529517588509174423534757274284485352265303536160530621809126762004461887682285524929530807576876677397405400982466873827180072211850399274673325021838493177781717607125308156637077227816454612854800234351999628543703886064943441754091630291099257647654860056547169539993582021995046891764399046607035995464016925262079429525486107661960396271508919551611535086082493749629640250701411470945064504946690473205754822321168767086087095774974257876069904443477364339760721834343272865381052303295091115319349536302085991123039720412662586089046282227485316377368997784109980046385979561364604075103894281944563132327189403697734217733896661780297841237677713356745921480474019896797965928314242504433259824222263182227236060143448254178915337273214517180441383323830924719203631359791414665799174852698335318368384664296670886617418189460018104046693513903998816610015180771481444044581829118091483125615067259208659080722966167297919759138363726950467549308381622651091810679404150110340726917524721150019803599333674315514220544696030002395799378348430702817258809537906478619110753425799252689277776465216939085839365622176356260688401593179120456270293104776304798850662936766088179760452767528538152008915387331053910799389829175213480364340083600021472334677051172393596012964020428510715787513488855755784788980975362520248374041076163977534284057929287700906184452110189912640264730525056933212697958021693204728503372001446402972281034333351598791255136575615172870628589574640687258802488132954784892038111868600063275606158361026040105853972958628936778947367013795106490224840127791112900665738811698955471230774866921724728975326639955938669630611005627065188253768923264439749755905818576746203673246733831838872923626304820139759902781664146767147495751748550353730102787976961384409646596202315725849353642260699505827406141303746376706396331223586858365522724457215784712713010660349174377588545061602999778508590460805132804140874291866047331801615738035581401324104683662506640769487392707008750550935171113624698464907027520300042722614331067190461984928431446056078961420288781131710196031071462538760092879052026171108172976658916789926403526725677402085698111399726552505258409406949007354975051115773384290468409800047935476693285041840990742665751477446569916327164041040834338906559883286570198294317045315249152048464832764325200626646596302164468504394652843167114536961405978158893887699137456320036462062257932375918898248161913978006148944217104874949227536206657834650363434006077332159919969530530069214234622734856360070941745745171346809010132261518814224426535683284379834712456653614549503022272616845882382487047349585138720674984953684889413945930107699531756603250565653628911604168146699560063789840626161252330547650714671244807012180589319478775194932076120482010016849471118945255185476184610706863411764307298228898561388191917059310476048855401033140627280056190529861437974260603459931911533150271491670335790624748955622027299114846002601919030673644338710543574518125884172309318535657615704171663212398746551013865318894771417578754036949118800192619504696059288931788984900666252065811410198581527329225815396520230092688962102931053590069556221201455871604218583938750869704831002900764584837733648111490303011344974616742649266216596194240152173875991765085414615111004981016781406766247265217482141625528109445564984864848183294551358457942228728965961873283918219509396625199678728380162149573555410874341909288780037342170090496149839925099350134145380650462742199117065736404530382317701427479093063110359715051253717405671391466700746464862799583946325439253283573180146914809842353777042751324908641635526506577983251517542081908921039658568163632528328846018311291467647553110866425203067844125304032041835913881070588914023675063433383674460803558823562102969803882256298403407132380081971116650679930416905331863218421111473361579449943997957985532095370120037319515751091094513319327871002616937044441304236520920701292470788129454938751803696993063140892912452243164194531001088911682537884985812959702136443839416671914232704226997184174198701566660040676768497292330180155891233421443167648170890204427167782580507047458710096043583954277268380364894638835155982924317073833252918043896714212919934415264110143382331856748559055662841662972394419050597611787746204395671223409877073181996679881261930066775154266296547520028334776457205691211652401867453685665681994103513721939158661066812169827146137058924619338775186849375672636867628570120297283428625163028714032195875746668327002960585963064439298965591140112355213023947891513764797752880036960013632003634275849548555357031913670113969750483298209194615694855026815228282983452833773163375739130483124381142643950301757557356415316656721400897588916460097248328908462329936122916401467667245418027749197258983183218863326160823712100544938326808413167335859072631079632455258092294709200665500870880040439702478069603818906572003509078068857238613127037120552471891702549609695590974118509331998433624045424868601715191090372134148017507953594861518312877952347319834067973196213436616196762695486499914699741352973140043373334530663525678871123904941967248170462912583773046240082738639330880433783558429429200865338420222608622802735897009528021155607108608427554139175363799446393544696939082746531653986260956425861126590385736789420945651799861959430527542408126051255448523120472767182196580397758774391513005041428202269164356588064466073086977477597646558162369615166302986220856612987903451190395886434717832763152567543773073754753724805313290209525206587829010204317791299864377938631501157288792886183623578946633917376259195012690894954020918024968388763067531957497394064513151787638997917809119938155390946459994695195026444974834647984788060386867437147184231658391280084261395693221456593597184644560766151255673701245180111944596703406764748309830720415015582453365192250841094117182185564520897064322661712466890857003497998403454673763224936341778228873740390132681620205186438587867915495834963295865226930032340968144054292119692991149799053375598650395035836311900225194959510450992912868654209812672768252223328805010255205477067214782940992028682582835333297521849935679182602725101243054969274628761232354937918802279791129324834400431374924430218302718993901820218890433345251027577504011887344121272674089404596466080231471934811087240439283005409106007461288721811514665911062654519584497542693344335522791897731209458586153033495670458206599465360184981750489548532686199501494609717825427276103681431658577738124341554227611399613921586110510710425479532654394383861413985503342445482982185711943317720568272530378468894920025595858876647774943482021864316998448622803261590433005465993784014031324783680525251108491696664481770370786616668644202470017580308223791066913519676808034290460819557051668738917706849973032190555490964150027835039904719485886107283212238006682045656552379674635983441655958312540168075651660302303268970447795493224095992367549105984440610601486241563445090748902506198615400387845696890429713653260706703888173739221706487650143130617455299417243425137884991777515081595956354060120528485952321420191899059896085683070337236778284424760243364689922757696799341135534957977711168168658793718125069523890391557312949983570835073109453052453804595232668186739538296680061802306664216172456820489984926799729269193015320745841940628047533789155894606858863740509350034520831315079141757790521112684419583925997080531130508027766433780460336020617271409389426555307744013537739036708687600798090247601300993375314636148247044043477606103777773914568488674025457907023494474929415950646294331554700633544746962244834344862193558342340903267308099434140571372599611714829121475636311586355581884668884483215018000400472979243497150974048741423428265766440668351805489388045528479151504360033016699973958825031462019432638631426931053963794465134137444547762433388999504616501799225782414615599503962671230435409267122555516418439239737176689790767430960801412596107236560670792888941799903644533393913073766441254788099844227875573760959771781296221423839617567869819140497326250603957490729395592054749353694342912836262937415188718987117519025124024647644438027835391230162285984728758513752630499776302461750375757381904400252812921240530314564400373156399193669361421899778293683421361706725940318607154623910643525634187269282641097910338113852282749769997224549964676361084751935459839383084274873285161019357641081110195971570590018674800454930047267806000674716538921953287021188443943711351363204291153736509658986158343078892737701188877258481971873895553029210327829907485918444369112910627927754107877931109321163500977102428686818393891558039134498287526715837348607038717269723435034858650011050528038182754528974538620335409185553554335418776229140798406452188597497687725518143010326067919676353118724959449891361018840863183276889156966424313666845879158603343637766815363974185384993287198846216869820114086624260135120923381126621004623501525379463797666908505745988354412326856349720992606030084811737117599105081588614931964560187363535916479592329344943401053449254431328850446558818043727394305851135292267321828906550023156026544919612156145440964312978732906304182321987721369295543488557094981753801167639772985980492261252360413538637425608978218137816768717518039576480814167867791753314839575188670736381086310864240540377021780177012591753499657948246382372664775269284668269380159671648695382921133803182868834065685937796840059180483551070968480104132479444310442427484839695672890036734209642876196080838330828339800031725589957691107897398573701077384253037454872968853064835475487414809489041568241799726882835230066730894918567324421713424865274312721077681114979716910152318472351325264592666680445275820576707952413962587604801261982005997983531438083970344900712465127060559147503262828065343129067572302427789772428648757336640375254637594191522334891753045389509667023909505879637460802400646867439978381306461348211993965878222572487889272402414335939695408454240768441628400680343944450933299884225407592236145786896799101044847536331612231460605760137061115490573050673321551983645609050609678991089097964522403225534583444215950633515033742797309335043027091834644362072121483308430164162427794141686448199096321366589944686511002588690026000513986740166128257675116706780590464584660733314484767443971177525734079247319447472444815379757603500424103762852095457102340116548831179963620290791256840271591255668509023156189357532328797863113925598893154511348164539548251178540608336825443809438948229068535272556939445298845621893784043766498935293432049137273167609069684853475397730345714441270725076480512801949802566857620146231417067618205132525212285731947313841529756310791994272483244204494063239276161498875743089898402581370193847656656313110688875738587440314701593762609211046844666426300692634276832586937333087894975692860423958094952111577110648504362447181880186160758444285927873149434210581412670610515664099549317241149461087949745956921454167757372026603998481645026563099549369037137798711837466946305128666249608835917359372454915530728598004083113903814075726390654643211897934607799798511959097537866813481746531089549254007837456849574680054629919473493413371699853438377588549327392021435378950689328714932543541443055590870126577610223575292472942109287646997958139851543694909141198875424851119835332129323677012152950566010691970992006888982511765488350973173407152440842695817134588176253870586521048194655965736328413105103186385972867157559525044230126777445901412074752012364088121573609144579513900481301881534092664356207973470562756842275984065746352131382214451391893888888036487654688024744494083850345606416709499638801422583073036891944113198346579438249100756078664573128189970109127964750892242445513304610377415364605890831325130762310331584214118234781645636287346627579720878635476621655054313898770310159440608925245135753217127429852033886429025777716429176700780410153461152691740623754915404402141289885568324307726527920889303219419248223552996173675227480307930276790300872507995381062163908652356432878829502331741812185468450842765563267471468230416945255810403250395091146391911764999357778345498186191915965276395488478202747228352725928853471187494531746068307818549679674145917150151693118077110547543200087227226337517439358845203454569134484611132279116322374976694623250067436669927479454118399808686490576245934382719100189784266784995943627489705011338320018868253133192324799814288199632898133335873989757048781741154056238127515001785347402568319908180471974004957158093649908786034093527353557247181371061409671634016456549205284386736910635175892942703595261465407361827206379438297389427955693299690029112235574905549110526028720068792375640585558310436958535824519929368239963033705199557095295490898053388394640938140678014301977056340501148989788846097532408533276629850211374016652897238599287111334434147027258265015386284322657329426013879920570301937026019741632229477010793944938507077304388661863285772026330153385873206022449296294624613394885244183665226779072889117050196781064463982667037675457510905647700977865461126105929564660127268736955676055947563238192353277642598919322020171806461755776736365639491140532399692479808365351368919435251176271295236691164482335186446633678767615341113852506206099516908867828584662146175320610456085363041840642154182416565221128798022822878722020171193061044490922582535186443954028527796568149571357852340294882329953820883594596649241943326117185978498542265463709278096620204110930532698910531226071396867899877204677806193391345775970443401713382594055774902132912162762143931008245476656672213202803229920936700739826924044498606154471246854073117442075629701102640110690491362334633263547421945032436863630310964206183570102512033660012272019151013599005905672490886532589188627421993596573501031201749205875836413128321860278911702098103625670269097731885496888829583559836078199275456733084069097901147245608993051883372225366288314238080285522009262004163036681786067842146931683398379895725395631927916629202138444165209010267936196180552373845726544682850677997601538168667195919785155119409245270206700838526507081084418661576375704315849933569548747528754781679508347449426798354986312119009643799729036870198772915863180326834767716688958743035320309783161701386214089618633390626744884839752026363625787956512584740443623927124240825951356224144086443437639419033014307626720203509263781975133980030198233807625091062330458035803584695075926004634100197374349628954468999104276637741526313163485179991832431421716989863208410365073213063339885753435305188892538633318086167867403727992728509324930944189404559226467246642607718775369015067290859663678497019928219016366737928860942690889280104265886987820318943772607958924301211919836057128408563679176144311132705499386186454531214201851928755930202954316311252545542792903966246192727389536238149653849620280318443731103645418814567813880267326785400388914564256013544230582635297083069256678253118182145411011273591797996971520754699527043409500981833651808018240630835287857250005942864498542509656778814938040009891742000504314008499693139776338409168860578719277698916908894334213339565841351058161990725362288203598547620235335639036808315702529483020806665531781407739342774547892901401446768428788825737927592317104072160427676913120612389022148795357734587278320650732030195258438494728496453779727701459532090935548781630326453258418083010532898202500959164009891847433474352545207539867207474182156481120361225261512174483408825764811884967027859661263328014824446586373587580207159154877053260086837443596716161419568594676931691135732733229317966946518216784969310164071005060261095819167270279510952078735922083821072601281441770689252212932942670565252885518583529270918375327003467374142076705454263266462176570973798955784181360804981243979872427256620365887153218128815224079506629592608316451266636105447205401231461663771173820263452846208612673857122306929367486846540211366564941003705783355812936956298693837409979299861948145849615212701044655843408113747961607243764497462586616555652592096716380060323386894060183062497976171566482983596650827865956141659635813151468187300321423836398158619596604871277383508393564084201961181040797734049427858424435168804352225656243519041374066434356092224327421417420563900291836694705539462538631942409239307808321826644381938418235853133841635225944800318935404149562478596392723597643915039226802288777788659954352659134935614128896526268022977758864690953042722443673460735046883684343798655637532216731373806143504741336724028480459820734443949734547150470473484094610443192974388717700818957505816825169690090727295271811476378579720391196239774114372016741693547295752836473029693978801567303360085958769727476648784814216652649979655969679067332037655440390703513073991654543859618284549349884120154889147366943472453774157966667027053877755134979866496757899045841261026985321372894038882899773331881870795444994023797779963740983289227487673166845542048387055979820959613183989435808061522908045542792308286776396691949565772624947917804637637043056113065592105364947475298702034893967409137610542198074780064859045308533529441968502339971050599354352613092821536669486259093787681005011261111665424884720197232532640157233445445163725390493196227671070868082043319457478081096295409827767041158565627941608702589282842793234402486744188798061518991266495224542169792645030703565759448161953517256440830523983764578516494871071834378704727057011421948811321204248569895263850013297099215820683778885022882988803384321956049848948940197930287496798977242864752265628740942130382980691971433893127384833298050137354788964149079443549206513023028690177132784162806757144502370711737895469932716418934114268595792857594447238190817059236672559937257432755493426309954096068369811403836747706755067678674333214922778502054737377618394625001439067923194504606715152598535878638843023337668990233241975420788096331966460143276754319574654759837673099450636121888226819246552932829851028975859005204834591674286031501611243162507040257026691929201064347059905349451775836570046905543592746952337406238812057642291311236892393918070877736673036314401534551407959088540827027119971732669459006744336145552373215526261974644111929706676094819460158485946883211656406772893143339988402354773515799035659694372169017256144802224434866646896590666995810813999909302486801348191435641842905782025135535796878472675402113848676139229887706153603885099342135438768441281012441711778777332977583895610394416253430154915038224063201387068240287193410446000852132172379156968832410798202972986606882321038662130210416410414690691053271807437774086428295588293676340717180058155851010358745778956233874795405587113042786479843140930999304622971599079374831546738113736684788671969055473450828203990654524903643685249600983905045655566201679908599705721118335887039920852494493928099138598817985336918418438434437670101587242424356080996739755139299239136158847026173396722039919810330262743063986163271506879093223899897756151064688827437252467957812003566369899399246887481375866209947254098414107239658193001326683656012909031768115341802342205361440145235830908585864133661434471995469844079022448973252045168534370067611188741659638561041370584857471104868438811411781524851708980644515970751161318933392988864293779923039537773253085493463143530345555504999046505950900601541408859679280927985604028498471049562050349467002405914347246586478393541908920294395997479537800126087259433808167286784205063975696396194987764257788003198944218486457129139338847723951775312357266636036179419626118722919624811940891831337947442548546077311917950907413356851191056448375391679182618021197603666232860267608981458745237548180286260642477453158349822122828080896068035758825401863835896025012414582742352152891588244071191370511398520465169326360096046692423695191971228490544282085944101653945949433573821753994614754492760167073291056619928070115544512092523707200234634823426860919036717625859633786326926473282086791819189091095226136074344411578726142925210503722056761677880584523133146109641309140381513284012235424345489895650726902090064686654325655964319744446245384607668899951319468097055443402862481516373124551407362953443814682150185811129054012261411983147011591599837094304601452147750473998631723777714671864836803792648668201822978658489658935759308315864448091156575808082232344751786254388168878154557994111675097622892408596029714800417943265394343706052892175244169438456377206548328177315694153750310705583819450799521655618561619183784591841458501274294153919025427809619350142414158665241184716031339612632405631839295585628541210080163766748093634951112157932313724759863051938647696280724167973740709682623586871440948565584013230853218623050554583496887274347646863588886020137364454085083350425027333581017519096181290997303721783503446536074022306563815880466972880778606085409601215652322641375311858747905482751347677833167642643108635292285485099503097430687782171078919874287164500893708949758406149761959494533965678790961066097831231340210322997653891852906261330741263487626942612841965365317495661534298538926574619208009245129451487195291256722369607071961390867913261388068410154604048922411639139010692279746205573501802237197314831863387601985630488247029299908217020956059925426553273877867552518234994814305949943678354951661277993558642723147865235115096579057271784597533845186686505855313206559707167106813326134088679715366166862792257390484911822899561329555772033516488440137130728787410661119060740821706523983822842812367038225586711663748372035841000304314530493133845810684371256224256080413866074947224445134375148823325857540319624692975957591586437665825740519429650023581440324292993283272606643559821834814599978811676268789621587109200818619617126341927242937981751471829082873283486478848011339793603689119709445613654656904277224124206702648441548457110708210324483676477842772796077336417540353643153527497555640518193869451446058941042800504112719035214118673360581829592072270903724155008323888058035674753415779431602009300066011108798454502670483874586702401406532542880579848058246831014386326935142634399427249816873407438482340427559329661277125426631688863944827004138369390004106363755216263970497600660216422077031922894455866381135652285085775745852175436932454641225093539604250307321933970315243864599605372973752679169773282117577170136075087570253391581682513256332359536496155787351663515171420324003099859513288458602565120786977314867096886380202956751042687783888748837025401430427196769842389379192103154667339339944521930220774591733753446915380246598306137131915216474336447118179102539396556013502780914829237289098713241389321387977586165724530454736826112292398589154107780584406512836107627955022609384698918277041714436961929775569013354182577760334591077499433572029841974969065367696492519795238823226518954083068971024840874805133027138271933044473263355817474519949119851337608495373459011151199226182163486996355702291485010795778986400090784760522643483714435660185373613208001154663299323638046503078733112245195678343286544277493060750790788005251474397462940470250695629555341694558420890252451691173321843352609855492881039739341439163345224053980027060759921925180340383761411429308049794531849778458668553378854790529868487334895520632770793523550582560098078855766924411597127695034885474656742741359949712313033384427293470299366476243215376680776498077963576436597427261589575271770529017752418259820630661621956296242115701071454223554279092758256141431502792175720351355873973999252770810545929804521833958714363353907700153446135555093691142651122477565640988286379421752165886274142030918948286685798786187181672551491623628941119647583525780006760815111179136510732203016232803219271222804719570228761278820314386185308517118634759657010695524844309090298516775652658725871304004782111171916759891780299204685215651928738869517857684361834316665488910961209036092900329382893950503950722795944547003953433925899212790084224645992297536716097978397366939765738611506202800352562353195439136732105459831168363344282949856639493347608829492796782299623252793391253831925783025625410402168490917380694943169951352461290816371967751434168364292634251327948175147162369096039621937389650392080130075357228462742084296346007689407935771813459475599216616898359786683529666562955899886604761437019206323910967720383353201649321117821543946241388685200200586059043282972620678933021465280541647042300207329822684151282423961933791437351995756597874672507980869347342098413416801458094260172521584508288608546486126983543439628759634289501429680344158784934111668307196839432371229802526811566640837920195480577831865012363068917771723708003973629322177642685889515026274147170978311240911764312861548770997132743683195007002522229133694893911413880596436574895239586662321774397290413170083054669172331254068230894932994890843274569761580288319243138586374097149894311515704071685773620981425971752149987530624442207404746995904087259804426026709313922146062243039082365962440171637320469652335717514484198263762629858244732053670345000310732553573707216389286900983692542234000574402524142206013915815121501590264581773086604438531044388214130012566546496690115515833335971721529483843654908826120986168606317792562307991012028664661856199085058060660886639182258461320577596997412516107960078306944935534637737493795502422975626139567676999893021341851075853921836666594779648524479258363703131006152326814541477937101594362728758620876045914184417686114167380126131445008849547033353696166719227194725007795945527859784037470764498415937071836422209460163937071840812155000894440935286530002254546263813074982337742983316140220723618853494536295333636671311931374703840802355206226094902942083315013563754960434615188169075831628160250165512273429044529719504412729199820256376476187611108479579783156573659729762972516682474883705758918617371887097627114644712250289357729386050326413846152919569706023639193304816363025213944308674247410923267628192587979192298222694312107771673099830865287591171241947389222824607950155745461011764403732800645654622377612286534341214504645701982943186639057774990169020605703032128863729499858368552325239601262843083122611924955683120456321552882722492185193322300312881108499588152007274899665318822839963964671746247158610817123664875917505534575369690280484903563076531573202995476184996537575063961297586253058315027327122043902915855653413246240680513550028928088765700756614255270547991180317943699922276719076267146510913494677462465335610492734519875742102892190843402695406714132683672773867844977050979724983137341507281747153742317914571999780433413515402869482898261953675671515743273171614703898756917141050002560892715132356137724787251536088564570518816645085849242484015063491425529937060491516026779320994126639929624599471704336967655261614441244522946462605022019282660914581995769751788725830867452769604358368926702484423633577855783972729816037909884012388841519843443912323752008026476300125958504032823521866153200566049593955207115224299366615882219363902587344616668914356117851534434259965396472655215454313743595096880959959651172202622309664828786767152234540872365945944371042953192608710366345270677334478917322206279952971208603747807523008723360056197664647855848552797941728161148550007776586700261353857929858207790481431202018175638230846258154863599800243233307761786046395062921098478366844105553319143336631683883711502105872004325450247137147673538389408968518148834492523036385754439618564603924642386271981725938158848699182084406165257086399212049038132782444167442962517299729100198528532042450168079281727860051512846990514067718340119822372472076729614210136097369320688072312433148008136196869646086375095925994977020302851722904059957609602237081436003846603486922055275967482127219135086453210420738623333158679860450380369992522932910258939231411006077787647292736196948862290375900891939635033079694724645632253590529973043632494422162722514493375718473859428771489501140979920176631192586358391660587044042973381805653715270818598875636137625478756421736718809977034148041300179019683024587271697950086791891193516435655969589763300007188433699505140027317450333278247592720693066750176984046094241273580985888959899815377409787452359785976718969528313606081403312985192388496144284526521878734828840635941866611347711593599628631781131066387032590665599219619288981739249797313583406544854535769075545247208787312818406329783592838191645850169839985282735054905389513734951505792341846015727478097617560529247117394877366598022011399052191006564142794408483490098441379384776000904084457474522933132892895323212468574881847002759474626181269561435357851266541087969887847467862943834392823553523277353724191377917339935077471138460820357898464343157535475335152653928780184849698227570866400123385531289428983547041597325771516150897236380989469388780506550024314623810627871532418789247719215890817530902768744158421198228570255183320675353100688526592364494976637281309892003381306341491803534672204988705576421458045568066100236949083979828720457559143156699699918675255573427347566438626254080698366919100503801587603871058135386483645921700210369341026947973018494723948962424291713373266360953449662382022376698986573140611646597841155165013783590779391285019268906262404723804427253770589007551261601657029826049837960650155015142028990306292110096474588198888304784067134373559692334202652965650523195242974269498008821737825872134520947957019483836317467224542839212099191354618703637355521846165014377817775856718527029510506129604397921399433874645931795413634405707094447711543994655170196975771952055043035560453015218663986404945243094703529467023422927849312433007899037392265007240365994934239192441487177785140859777052517131136578140768109577472456258868186544705815302190759142891864319211363452719815104233466800579393533290767667696895307318468528752503189015037039838699812980387363204199760347480482407881294114004106593136684802868150621726957474948541604052606627315985119147434034732997420785201090631820524924701561785982173653165433219332002966613123395973461196088186963880979700310142764089434420847908862399778430697641864898346158281816222729330835185021079666651695006601195411238480186260446533999646662587791974080313679765153253433405037377417990297655921509969255087467289732961149008070024319640840832753048069506868829731908822481429388537551814689224978280144941078174948765949011989520776632598953576914800534818763003371272192526159990075347607273259375598602117675065231403490928360700893381745378198423226062316938376497269180505331702212564523919287364813128302684066039612223365299419273158967913477162648812134913745711905021090336702412725259204768972472718204360848326354115585123060471758533458599068801615543677070586758334093296135854294011471032995769114944880136851814028099662168238049128157033094827098929476363364473116983476808126333614886666414612935812957589255903616955401165143369591364106082931451088053230782925764196923848627413226342222955297629809422926709472134646421648397221531396577356337913037800965740291030564217107383537155597968665193768053831596813396869645031566222831050917981763088358316559433564081888453643490936878059695868179090372475984716498745084096620274713271360557711794905538271237651750270288727507808536508132653745328741071439957656089750222317989780011423412813788083081385015082221764569102007566538054360691821001979164549657315222489296922755158589023093886968976274807483014853305005770719635506395951214113253739283299339987918061171328735397781511274105290203958688458577264998516505472520429344366201599659885396077293941230970476767941386125555038718260892314815493233149265516115542847482258871555712005210548022102221928247021917733934141986975324436822478888282747133253791563377696836103807160643830699888550611715461018931321451292367571717587145655932862996709818285137913613359156365388565941698366754125590977037765573134118570710759864924754796710484761497599673336880266819704836309500060057839657900660704084175412727027873416496501184977440063354361688213491663312230754027149607882728762798638378032510963578241153703337928113911076961314616025422259925978218762662022448857212259986865792831471210502132622573091036350194511353464225139196856021842910058664623444185921257377776661564785193961179331170548098283527740892669786170230157679642999691696446451169493486665518197963875006030424177630547614242024311682873210201424758369729260252510628036980944541355691114275480646452496871345510033402992862984724185741316557601288701824805544340215816903068422896618478337525605969726279762850627058496183433280233416127598745377976426966844512152099328353635476781105518511834377372911061512179846779681598006166907529329675882377439093581282314355237735842981113056588524322031193957756367962237591870835088542137689831667755656061003578630173231176569248838467581070514272413153913184697992316764106757311793710887175882130634163701997519005356870161108246296595444404494558322638847319536481484067872460381233761569344212441892367540648227635189399377422009350295170509242301941782301839791705603908625953906748561959709163042804340722621078372813785726338342552071627415784347035235619949095242705176840031609196074945834866050434549062223488297111830079663051794060600601484085072066702421848362779732105099571190996280400592667940450475895336637959642322000780497042895615421767960443479877001829461902929753141207354646770265431562834519770771041092729153981679731741843196775328905888181020621707696314053546250331027118836796210507183947223984195090588453122051173808375927716404280613041692759135912956148824002444224643107583130873477807519949815084361074406844656915399286128789225381190671192239918814414160094950598946308668594544722752093340222557417359584412022985263131386189775496699863029569937657514156730071592002940774779639917467559973815668764600887295682726896733179102446046613608141178819482161237346629584951807096381564911627461538884716301050597977808533275705556015577283529473673054231619506067340701723650149217455717477096981777756188584391238272685364568700550264903323070245557029981102236190745043240619949825501523234987998150996026343174874370198678900306911795161238013036012584842845812579321377618449204494399884241771992837210807968085973961975505289048125149763401788951752984453187855337083901240643033615572308437893743216368793061193444207132729338827984139760530786828777284872231410198753344044344905690549627929534134866950297970263524100642165938591170579734277391594267406430033756655007344708838147057867361361133757931402214200398064227895928962363911693599819814205538468242752299450950842218927635403501064514678683801808390436055423402560602016403242587601560448962346049935568101329409210738773189245252901130505070386118618039002110741246395790291953273171046350603455618201594314406563680811083252247500203001414749535797171963312962599095951492894671039112850439953687406083314782795593014354481496030959410235857614303693379464709676879408333371127916630363545267133668033241193473220649272525055239259329702442270788585883807784210546115299359502891647296024321362147929764801128994590155925461033321901557753782245122438369469266304016209381910445076379991248505549331794256729759539250982072749060487590376147240527383242124958672621193122454008153940296950158595529146540870176776494586671846468852962518576656774791211847233051564648870604496311027784593801720496574132731687579216806728762938953674821411022524719968122249840874108036846622548182720471711860659811573658384911984069643582153176437876288950968612896127222235791030330140783993789879272095635304465737231310899249459020455437782527919189445764697003141521970981305748552483465523152112745443034932455580378341596970057783780903205201445128623341516829071442634227185085643710828581720481220575888097137257531442330125384407972002966107995696209345461838296825133201284668906677327607760700155474655387839363336682444106086905599408948115865984814812252225403970882669142297333636231289545543494130551285390750127890786621999534660081249810549040652758753357439332377457164220021340879882634016963194835438425002262658563031051865433376273853926743250739389303812361934029023929866222564797081021023745096653219206527326514534450097697495595353704240177475561729948161865199201815080127604860134551451642053970341468994380648501165031940339344560177731483384369510006131374578755163613777709274254379061563217423952405139884185742646034979465168831888297807214185378333561905882419267771594718243331105227718608555680671467505510882573956302235644429172274478673668181720320768324623084321033201781740420501529966378072770241287195999854535443079834678149223665373446151169881581159345131252398905216547470551582107029334455875377685807926548105154111312098901460228425572033650696922956910674048994852057538065886281542766455151356017944635203036816354825303331728261540390560518553096958343245463789440296082865533505523792093037664522599199755118387968700438392294406723016668776807954593799111629716083937369346743863244622615967345984682613953472398560011655844072442825855219015490310292969467379465484296971703328995335515449236315080883002276353574940066341733304007494855622367936427456805782080252623992272233764102730919005285728441133788669592774890291570895651125505438220258090922719282942171240432613706020171976174882135834632114356899012830380357125546156549023115865595385241095978583888558408979358809997971850501143054063614063015745567257649003767607298348372872127782672439836350357098613885595181158907200400057180386089873632505392776278083688451004554734278589997568089587055965182984458902804348077279397865669296818878513259431959757924292340888087561260662571964571299992160613939755755041220610050120962028114539311707092258048954971429002970855899872701150216966186110091094821931143784902317710107884440221622970460808846314192483787884099463425993197784922410642291799614720580471963504540847158378617794479104944095706163898486984116295449061194869642488788714912808379822825608277099914981641476773403244541014124110770146424261132109126758366581915292412369039729167690527658951876151334545365928203081873619856789668076334722982723938518626099765298679206151107619944650176934728884045464851317330029746214807109082369739114214727658922298980502891940751525691940465964613816745044763983329491329667036622563921771884229493028297833116664918043390922853123056320674579597054043740763670458826222093215131249874849897829751090635996471993010490817296016427125145156763630326105242058477857436524354377623489585933553385877348535387574501610827417131501846703403327445733270372255581389479834223295741296968153419997616814204904791035369097403362874583841699151264870760051515781270610873192931375768472213847728264087571905482490273049231645352930294902035428846311316676663988700726167318343526573580852732188207432989765169812567364448030685252827178167446477571709057040695379211569049051784107944566647894214504924714642580354863360391831226774845169376617284361289049492671554000045134022485660627278411708916590231696853766566637899114341860474770990244611985344720775790268511422647401333192107478077184255254249822375426949277024427733965310644497335859497500264884383808632837294286438185208757376284051034625945451166811812655450717859479975966709412614212887173017853467406376936213706197729453468129050422587983064894953674499339625716002702301290221279010501161649054686274697905884920576839963296086299314220059838209361083514272541637989436291084079462959203737325440356993614650139273864554411182873397461759823421532363689201991023809299307765580926969963206505132484528347671494233418667021506261577204088847089734451040103105801860832269615383634392848435945976160665343025838086994253193327531877793476950556307133112554949348421187935792474451594489558026104154273111479916667077683275062178320685716345450116256943126048637568697711798151808152117485397230452067663360171141013184806838687846879771528338795079421269096184718480092461018654837970938648256271519576896863923286497295972238288304089826255165277355034706436021864812075334672274216254670014744927910737191240933301130627943515474200808093306355966237817976319321935532332371076713376684826645790519209009122973324571001565232072581116801108664395280073723494505058763764000444233199635435837591420819111564385133012884865697679197330399421154939301350199095310972965438893694472229341133570129782976362423680284132633895022171756228346617777749251295809795760285980994426071515130717952479230563445447716365080565634276754753621233133561973637054745753785285528347610509681737157523508196778176622405172775708160148428119248705644828218028442046943169174930580328700488408201398897473414667294028178551555050697944486632970653485941868872090425630349255920429781470541280138863320382273191364496765272457061353870591407056196790879165467054693995623096326558565153740805875412679949350671251435917204683408575209711403476139053373327825167609475426109285212319363743642007622224336413044616568061726725461381225355641895299307418074412955457425061479558942265839532404951027894831116616165122571645420225630323451098481081936646082238620759191471899093038867199299462881195245295976933547963148710651466597121398351528202615153561947201579684884745938512950076649430914123581606313941378315572240615991559820380100100092108136780970823646429228297606855504920289735137594715491750346443657986393945309469005891480645409105365591464138370248949582994159678328480978985347904309320951244887855861501980158249355018916947780743275207876967129005096519400230411853834771899015956670200953017080304237076060176559496236409282044910811670108898701455256924209846022937735347270739967910014860965251361656769283679071106375000869936691920801091867537739068679525186712542347685529205985334068371536582798334285025813010025721645644252372448641697000989434424766375046687248312818974515960754063820371731143607150869382789782222670238050037459664379339745936459337593310294653410821385570442404968881894265137692481592400744996385876802575917585831630598945154155034958969943256960292147486782347568896039677956791995158710471157150402391796535091846884761118653959628112545616677644588847543775402099167181389861611842185729296765175830452483835461463239151470582447756247787286697860210697107412452139749447506301842792794192011849754581210358240484067070057173257103461356911583804244081002512981051720655140257722343558516180588332489622726614985668482495041000293633784270763834254405265868183045946333285736943970464803385435997762472117985681396526166596374545540323046579637654171165048058447718138244592452784037767435365825628568456328213423554651773527973249951877191826705616325748432274528272594066223544662658788105066535803145240650339284613063369635899341245223873795260399777286813887353546849051571466810136678897506729237405376017383348433197830153743822386790132933822673018079401323492688884144252981469591686243897053111668283700862742801047989008625433049447548535361482645604575414707254410315330181776725394029694071684154253868914436913670350398521045684691447540841385214000920977908956999541437034492392642956379606927358293666621421211938878085790067437784224064735288902840087998219835769431688355154386344102952818833763407087832152315536765401030769849995555769069009525486983220102864067744638310670712723396109792768257055500006684162275300423727948528315539978606320690662447139791154449216363124262668366181613226472095721479657783860599138998827376014834875677698076861506275473355417325964632662863412408598925323092273314035474802123323180777639777862753892012393519705887531045352166481967932726776338296694978864818094458110257343323212546509699685963712007672744538597964260947617691056387263458944640835046171190384554261604707559409797791551434509549699416506756375230287900567078709711979262487246364245711574762349960801550322603612423300463045724998702795283870269964179309915008602883058980566692841034793721098486486340771475294004350998354946901207000934132683184463739885625567281581909577063646358167995613547466640329583167452839244148797267285656235347403881772174513998829851063438923176285639116162917778904604752005908845034504015958636874360454531315281229225820183630146796320099482307480147296203843869066702582708039553420481549936201410037866550246897143556529959229013870736038084620893829639963439210727670025094479165366460261661414826536283119081304357404668267826909024778040556454917304968500151176941139960680032067270107863708190871101599517058892004095634362460224514600731475403021777679546398906081031132989313610947126766038952167428048570573849495395175498347684632244530734882911038746711805296786456796232443914974941229418694349547921086179397051262187794135444826007918197314707508081912299068917667143163145721986904300575370190548412614688917094640500400007415758894718654398688683948437667834201898094456935054170070986214588703315739861657699295377188802627207084840168697221804508895187699557848627869397868575362569179172274641904595668624356147349713145886222631553311813513968471495746429936702048736451033601580879347165855521548746460212976476790574810417586273442335388215733474815974194130480264656599428623704591353934390201745710927772888757183721355555051913235012455370112097887362149577198966320782799936824655162530358345512271564677703397163072889620830711531631923067935407081893074981364596534877477245025460203784793439775297940399837555425457428356402238620064195975044462697814881310931134749512891596642694483344488795436385579934452033171166512434288469349039398915433874719814078890169537778169201568510943582555108617929134453981431082158257118582896148556833127636309256461028772715710644286258445293017561271007862078535202193268193652551142582845854021786617782298012350398737683609878965866437785434233153673062431627346335705196551157842809092138969101048509855710979891013659916686550064341565485847688773256388486234587122700004956073707542003409908416358874901163763236164218455720609446207354986998123994887125771689863731880523228168650635220387993837665301259417402298974311750238706698576558248262823132001576782186643591744250349974807065996507145709091454728417185190405367698302281749049685491820167644278781028683803106807313045790559026707591534654093695613044659138363405067203907668115408385087949213294039220486146917633999445994079728771880867802377184582391146084126578228846918339199996747347094009790246619544654227870582928404341107654874440075226493418554342059379825175831434174710009320027021025818222362515692783666177606145009953986178541053969291675621567548891665142249814218458101182339869260205584874280171293598648365120453608519252841546606619355243259279320898393541646837982460601789789182544423848804568147434657561355799056468838536333789555211581430065167315773461961245622893307815529297571627689191068633420543422488977968801605407749170511810943235016688970647634539748860384736313309663100001428887731648015206181346677573975478699872044895727361124811118010061227124990586017329934930933701239280234393218466500841858498099668996995650164453824584044734781388715207831104025091042605092838301042268458216378050624264848015953479738699234748739852583906643124910821441286482063920002624013858540018622973246198443963922021666550089666043156293604449673123089168476140795056986527586185780047958541761468883514581222703960425384474485867166142301161527716422175919588667607538301526623217332644657986208395340575135736923665757112794677731200753018590440023664837839540088760434203355473295389474114360353480682816999727754880522262321016072266079307022735717744624188707886299185387074398833008728916508909105162131558849662125087231257649376320385522348815708475194702149931729258265866540429409778577801701464776911841078798804918181299306236016241920322491122765047465551963105760146824342358423397521763593567690430783314709106430199989488226572379661638282346056692122705088057433454912648340528903219815401919393453662387144014869747356514092941019223364641627538744730774864302323641686608406767816520811001266328996563159234449496924357927500797801969983904703907509419745907343233647526257916948091443170617798185027817203805104033818755206733149397373183959031127788019296552548411770550865520072176432542062638948448900958696784123415628399528080765916841600071218870220422519851051040007690962667908232579434223882942779797646167172764087782586461612550299937510608324851732336843183201057260772615843399908330006714980392252154246474209025069038154813191580679406496381223666975947427916599771499646143462378171411150681882738110224724402135853701012579519576194146471155250086147030117709709628112721730978765348942467190403074744550416251155644288602807259347524405237892190098873655470867215682996979670239950460478691013918773088010938350430562593441033644674135717530905354353665159042738512203589339392310932279893950432397741438249045966920163000952969616024218844385527418819561307816231627491059062993948975752908071723834894187296269739890824941755677924919747394321851158170311604326302062154208418363692236649108377627981355728079575921710422572659485764049650899653626641852009570869574634081636310534116295610272901716123101706759473544924392620209757247244943301304409974605671129478933179385965989850011098787969979493659120817772252665991300631291971013787210216482757033889700599345024939741653779801600635540224204121363598959988099682467495235133364306430493900818190801935584422654872578330457126535234371980453157185550539656287767009630581231194615945645989377748956717521376821762203385279686695281992208953967333597864508900192004475544984261389584241366330476856613943793657342432771252516429900798684905767258813487997782039503644897823535835844698373855668127047952666436251855323777670188724714588852940125876021983121323069999821650177878941378498536528688419914793511343735832858648759038052683152262118984557087136796450961622273256531103733180054504594914875889286484011646799982782995213938239274640718458190624494210698498284105287871611547551845801257067404722620188654324701732782395675632005113922874768822341337324582654208400405204109585392213841327934176306822068427237052316144731570123838392835036130547813368965175471271224714027227593990281347739740534228819895823179116588742168107652519173274837716118631813084834604196796430580757076386808385050693400717598983704282301919717776728373534994329755349991988877859436182199853481351912776447076884678219219085844539952494408090078864046086503019169293478460850456280932462193157590990780156788196858844628605587826777286076935594050605647609514411668462361407204515277325660378336586900233418028042227436791783306794178747510966845424989980817654170105602145040349323131204095799629888909916775247001718482645732390180745910797477267956738292593789535497354180541720848820448389667582278112877163464167546566619172372758068065029261981967826221101804687899618980491392034513019179649331466100948253668194125180700759463451595741579511116345470895678905346316835405660243516252075816294651228585843963766255502547190597633135147172899841582798208748744826093028381433614659321134364296883059631556947452321275326046731569622718301088126350495624204486970738243256415848694614244576878285632782162167458670208679371198800610480506233273711325078136996054122482429812201039842331578392322947039166068795073249515312862129565954098678541245267572399343821904921163723906717048034722030541372304107503493299689378362170583659483551748301180487248614753097339543688820638065730394390351035172280610922284020829003913005137715632279267663671739344740041163738361517648173946682973119647058608924009895973589789117869736024534303963244909075705559459012901500364077493908736270925140234878175640496235551479280718073889536328897261623900265852087581752511938634997852742908457038959642900013797528464141822449112161977231324452083505489768614030527984066573315026878434338186345586519982280369713314056207223607213005804931393380052339652424830727758210259242090945041828858125933128034977365182963049703499881067251283389716324743017799436976333249234144049998528553847028761208578745807513451366475480363597438096689863375996315620092202764143428352406213742884198936908622394646112608741845312911340735177433557000015464686479524192797926755513464140024950845479760625475869602292534038385101943266760660297555221951075919938165913320927732155502689322082977637403264221916759382410264001298920569942367368366371746652319701400956561561333958406291364601472459366832820992990316764329455717361474781369431992297919488590168486286726369880332276766903863148566057243692807080740171660654496959452256102820877792298890782991643606242734233591430218247799763874039654074626199511314716084366190972062510336106165871186565760225433219412426762713867318600494526939573651945361414410993269379702083237678547728537701545600968838743930055755584432693202612234308576733536053213819180940489522171365445121818025191105088760491644436069595041691481748282588538071834106977442148947476127692107010333848003015645450608624849030788524846486251641796712707064054332603884128351128038394720218058741986057286366849246348873286662373092718708963939367460546576262097853427814575469461131870580152179805302627629405675633524498052815212765312461948702294909748211291548582294687743179007341204392276729490888129907606546955336338167269170231649206141028329666434102046501791244737319574580806589995510427457471709475803279692934114615877803262796212555291169492510565023584877707949199838289704083163088659048801269406265095246676931794456535507717831717600995290130986982981239560916905293149891716065095567157641409770604869304756424025639097752181329252776675981784182061175554629267054940284484475659025467504211370564507037103268979283930170724234493153061840568396537051475257406419020515911645970870058230425517130559798483800762739256033304091454190975891954423127254668379734076810531100227179340893417870875691800438091071193460448536422247820666690254333075439312698065038547891519960540095289007854336659700114301663989209288269414239963382031574982187550204804176988701144878696535911002653910798695725428002184885015018678052035875200186087598066947915194696160809053056064922722511735663093264403892836237615323887612524754432645418166487904934826500251922219825671311578398707897628615752009570704849972594192532280981159616390888348149181561301540356459747495730372071269600012812567968374931195901298687864709534210320298039460129281144991109218001476522762419636300315311379977314256309584885884792701743974541559788815058506645360169552311388893614906162710412742286943712916837245723910319251466880838166512089787012503289201722185173669473526934626067577717743568500183766959955932913768102523230155498483978107906600855670422240898760969686720282156517751810474245996603730715659468767246342228434874631225112117883578358643301007918371783400188994852081711787617888043211131902769979526050581653311908379039537841451952495153858345677238558275478791518753120343466837925085624010033375218351591130036233113106403336431619119836314917798644189005534890431997245066997343160130655214446688019185415650893956012555426731689377164091081436935257933132034883883851176458383660556737516919559964000246948063261814387563309711413850994485004145973037948884110308017496642456808493863424642689811641633574788690756409045801222613875459859053587380899171839717149691264522886319711606851448213610967754846063078213235467856971524261037643786552960059896372454466748493153059150661019245871664226734521705264444705402106356263296512524219408598060727960768027433703071922055204047503993676691262197933113106495990648271587208896682583259967269766426727731664312148593892835981254071672987013940853234286935372983900358932264880115908175227086688891035760287124604242233118167037747962387768793639250424181071479225962223596714461545143911932071208072319592886946108572248872950162538562278416436422036046211494817773276835406645698370201146972719808805934362608610894034561189335300011661431190208208288796309709339295767925664991449639898973673841980924128514547109611655242250660561571204374650882749766893436540825722023762496282466050878710214385641289824960011601162656600178995800746103591125249896702490957908825994958976868558557219154578323010764572886739289580444862671008999295098515661076575149557474210096450971639381480295777964138921755951629065805786757802737660327253626062025913542662561467754184811313060965049245318934096037284332302252354629139262554200502187804279605041811021083842176477615104190956037529721790578876545810825244016456019558111070085119782149831825693174809768132561013988635427105760570687249559922081014263516442007396629532125343854601711192355740606291764412884954032449746731007174526465049989604807526366105659637055939534106022582847594688409976487009235784638485120867239626286935948749844684916450906270074151254621865144089982382726899521376098406312516577021404802725456383215724928155750690981109205975149976930936220901324754544966254485369062988272466825078297000135007594933619657410167458584842941374807087204001814460700515915925693529283046186436300773403419453675227349130853186398653670042003857588973766572897679323988221242348063482878784773560210612308130507832530425890607086426257374060713919946116780275681827636996534735694135246875539656451999735243419487712874916829501513225509080662891399999084726138387519990909657968530918094803092470648044735926843054187869449646964601364528867503639879913360132138527054927915414283461149536745929481522687661007328322079364651745483569843306860770530578912157582456115101802626604352183622690280925108348632732551685223021490629989698016716503953822407155307056717610285394546144365280508660360524896031838227319640632461495933229186833371492243572794664694162318649274767606020851317252647754187394473972957302149183336330752672430891064448664689962240667368752311723738862697068537152963558109740445987392139283262671282421891467014901220075726544625782887044527128224103687980611409999169056599216022988194228269303334538277077997145585050615061977285269966872177719020467648324143490802819722269637051143696909488654486975599752589036371459423431582213833610235928362373591616133209178528875426912615521899874219279491854295174909010912521177452099180352872014150241542526851918815522877531466806264010883203774535983214092394002460116901912565879412323428932246019444708934226868774537790174138080795400109308994547557223976546831233626435803677553466869217997457654953784432781903723602075590668176283122762530116817698380533366139413941121010156827853522468341188674917115192468599069297774658801740188163722192953350910564702572515500164739147093716662435059423759346465308935538718191145432495011225886759125014478950001678168532944159459028628963083359109391259539505255832668435136058056506739616843685698873700414501439278596275262839264132922687973715417770933755439467130798820312993635292610601168382906871220044631469081389438759161172875634569727463494383948465632408951299532593286375925744512389376163774602358737638351356078132989381114752185211578545471651888170982070963245929137920954599543419550623475918114212360330193010509669695593148596818790790115672958778767204542803568433696728162315577000442006763925806093506814222495526057787304826871953923755674685948067580137809259515537566539276231760785830937592849827239824245964931111459807318630216675046913645479177280795298502034273156158961850638182139156989629272795398491024655053639028173089460334103856182938076404838715070976724474121353914265551228224200538266921552681977934819211917484702660468381492013631562869186051112784072704517901611302851266820837136547480652945827348327231418351271646287107005226610706441913786815597709602264707586003400654564796151821029627703615905394746020249164811389197789712922909280576647921614555560233765958986832938708364784844237948943070305182716411152602478453661926807084175394000284908977038409879520561245849482776132001325163610907772314267007859057195401764449112207056977910113568071108436528599375486580153180481818030165758103558405602630923644040635102419999458563381355453108127170996519137486125136683445410698289313947683898437875623698363001224984551741051194670929974514163424290199671825365176347321604701278506234812943783169979130611921235536064545392116594808394610823927433122850860875899255131204476877661562859623986911851189480750866946528798003095939259836255002565816319440038264565613519698208023151992013634273586481755100956761715349963005914173490894331636971464590204140697917555690943485948537649500478205301882742053824643532366008883816358994028805071138200672238276323199290231207348710144445935179609790106331167246512463514568846610424186155250883117274955169857864176807076185042960263781698533699951985245988525423382559931262664214025025138230744994353550070981655160538205216209523828220482807500783141337575824869968633890856887591537024408234681929046757614419881468963804212794603283324117047361251936330074835123989834847185375106102293718009935498608514192513460688020101061622233706740540233269318543235056707159321796173816671748575983268153616067730282666370943466330168090507862265514619953722174636004081264709215105635452391575123685209853156298545738913467358451194848693425823612323767956072135633419726064640877659471631546626452087794959087800296596147201352885195437376899353263272798723500687426221104736392178446658699214761593164900530969528128326207633073345341530493742689029569993690333725488669723909170652148825975479597591266306723619469609437550485022154236071820425392458663017565884459672779801580216199823789669064505182864560049962592635967198570807028577258031737969275963709939566442917801023086766705339456365662977199787863467002916240784541254720105998061553797156580848902292220012338217084717174335595123366366447528148953341533781319330389470974138338369915793539518622943039833386050231975455861354751561530794968449331148985079583097605903500907247161581632231494431605589696759981049349466103245764516117143840001722736077536736988738573772586981510025648417330595419269630292003957649024960490572124134517598861553803314932385769658723053734135303619076041137626234429255707320921693538710344788443436419754811677956533687576205631253475505107059254120967109180376513798787549853642488624134171813301808545711066559803321980955756628043654038986727560654040493868080222499126626863976589669592724370908797052553490737818321518273578515997374156969202920475110504889579251498590978410364248489562078953246990867888493517263874566527737116277360784180397245947230382935094650511803280238376335934285407240585431324757432023891816869213594640569119225157494571562656653112418215877968162736652214493503901590269036795225824731194827885585633761550585972626460147379208087783473457327863067159852209711754191796333430489567383733948158194930452558281029088005883214663822723388808283130546048654255449927331530056845117873664651894968203702686240062277467974098700221177958738336963209952856857181074925006387349098852396377201862290349228989314500345057602635312074636211220501496957872702404275858094598204993225268869852230405745145476630127225146933418419678529499905537625839175177699542513556068862144378140043182113907006045471627604079757939734292823599053894771083830584405532609198486611839610186456722568094676918313304864232353723809613262485370652678356090479612424143903712573095682178243344869206619025514370136536448875124930203761263122336153550469426979799731736122660681776628360716946260477756841289144689194520637013476968439088066785813017752566466348177057981879912183615179889306747081275834378373767171187783979401384988112893637829060695463811899722425126681849182945946159690684648662466646715809212452807363322659937290411744419786002379664491711364675031387911800728262822382048872435926897898584876860916621348417758161199016630144965506372223426371830876855922691707767853171768180450412357277300372482382438370163143202920228044111892981127149998749090335624910581738538502489839774396804073338364833426763657089755428882230301837860810991656604923404140495800305874587361954651959654134293884933939564344326457418837023269462804653420625491064665454804327018975821859973595215365932638379842972585351915052011926553012654850209390436238684426239504040286343441932732590529931892604038248850000070152151794007255470906752367248369126438748587299924369994532688350525515211611938481966225241562623403341624328727266571936916739469590532486982936177748723999510853646360109911279903473329720934901751868095109918487353536851999502462947073729678841655187687347966870769874311667015503728573708922023473707540607939821368945111262350935158134199967727146063872259272699449635844008617704911633305033409082175267580041873995554372769201229215705958742060166468284318497930747464161416259015051316423474715275111493499838178259748508640119939626492410539673953595264629725428536816406288003842737640179638447830732480342604155555183665637328158743219255179792925389648671642442282120645964259239544432098621292390654261168847320589089541085343606066919518958888031293475503656440340776926093561321340784611540751443524710966274536243026172656157880734895890211949813979226365549842792014397623122411626525960038533834313447954121739458172311270786864121800512210025297909507110598117917843716630361578390914757133142251934305287412142360876176165168018680267251632643175919710592192122704541964300959871449690308094187144741328775274105840522277578573084295053363241810638827772193414889099160741320833612159700260936145431723921979996425484482613929978459072934580082822946399684068056801515747854776156141681082828561210389302371616117330750771814275397465447867066222003936216622269278578803693576470577815445786153506656430746335309144367346491143670560402827874172018099322506142054611373099463771757423725553456581674211706590877598433990899858671573615780404143479254491426908095228514407447211987837256475967739655729050485230891142785209135661184019471659949629891631017944830169479901306570343239344041828428246876789419076170314439359470369981095202304624398931443800713373338044368710629624685383460577071357602922848158399495201336127209447514824825997281910761018001090529805333389773310396223109133994019689123967317185376078623055124304032230193894991657760644118740990220936098004428974331567545502228620436471665686589394745015589565448242188818002539303153897066682167634810580813308715032762459787353415288407358804582315492564139498854978470505763461098604351579806522963331891107977207334950774372097617547434758004916792333174815575193966022125710194376616774937268656570922004021158251598283906517995743347351674598858162710220908356913708893088434976956113974749550179124613689755624436211826258485535814346648507673639601343035849905772360723326377632598808432132783773593875788279257605598457482780836948237487882994173212579314979402243806792161031486335438685181320566278545728578856589230201310700377408380342390965269712196737576268639604743010117019910988020107196001158715840051811380704158549726980171897987576976099647001235458481911636319497342308025707231815163900709555174561094975994394411353041658171082134068800407152130303444226762656626940166705617298044279031975560875475832337534600616204520954256309879198171764772842438222337854592450286395538556105024175279958270501939440107734874317373976089404878491036489558101307718207115046936370630350113253263842672624932843893370896982086458398157278187613286994561195500478276638742921088662129114783584631153718190920759329148298632773380689063538977280027674053350275589136381073891326911950466956130168035782302623464796779795077995984410208260170585972939217388604614258546318243528624675088726364385643885254092224407402869852901950723822159140053886728493674613315210671115838763469146792071130515367605153231015658312720332184730946621925085525736080254182460949495548313937082795750204334160899961225494250207329278447196390479126945192974664458318652579631513173635085368032446413971792995596174882248933852942074859845603536267406792236653068971503541229312574045100229798726241036706909391985908062178283162989654347122915209856135805044683960319567612456345791381071521482857837947353154126466226797033967523713835113433840155949899297841352478380150164926122772424371863635748415963565861393518261611268179720403987846802164963931841596565584547266837514855187130508651783464576216084025738873997426237124233880325806695970932186265133002014956803237629199105608074657307127067864753566059487535152992742162103259054371857145922792829950402424820068623575230560108043730665714895257943515403648725942631897993758596587905344198366751188968711997565433387992372512108844231340708898465080927200802251657327912186468884764242873149611050119699595801512738208971333667649855197223571909382740559405655653180008737618307185921925096116303315231659606527961551963502503797048750499246381265095355415145206609673039830681483915407411490652105982186622392469816852090755770757085074981340079146695205100509098420443234227401089783074704440981392578521755608563459836188383460105163228301635232910557234106416177895711790790062238617738410367229944838817003136868350712453438093980823007219818273712470247864590101971582675961611145769819265198098674006583205519367817514845305998416979054356356890992769355324321730333861933520975192790839564919858493718743240088821911416166209220892988037616726399108291866821177534979267574654599622745885970100885402706102578825847221917400113292466734959235568222282804474543792011744016946358482618938349857212292268480457303359607230289303226021221914129527166837280786445196636851386413430053443388912196899717635717237378062126004866346209377762204329493978096307476540052199294367054783381722394992686113098147434463547779846024579341005124438518457967605766559941984338380628439392350510823089449762356436984868804045841666749511654263510703150305196508176078605976460728365271539225685876222255889304940721358296405859106384242458627269473738456059225398332788910263087894981040982679293336119902738381144949469961252231317936929999175127597338098968272952263636492771527382923611911452030858731982299821117149537820899285540452507861998047103843544190390102403887262068760203928770790905046473012098980375560394160158005061054090298105460752928914895496069937069347837985218122097247032607576019060206868763412595329269395762290976372231227882306932092925217374977643849843068918427292505007343905361637265056421175017106462642787414268386644814575490379661221510350804514781586984069775718551993529329723748590017774827318309368127326605915925344576047108892778063434089720028801230409904308156442432303587766851882114367327370751365696038630734812736697025050152729683813988394501283022923985778309033784439840342485465060300291354909375210634414938913299871555136030585928232913314524890752852795338426805569269329668860800976215987965386272822039088198568047336975874917556773929651891417488558810567467852326140145088903694545922705604517041928887900544098839749739723002935753104391634201687597280983650245558095627509335364691202337559736270213410186710634786842189137716243570752056904590397546328030066402954262535135497750214680324971177547159154680990275196110285939269066730224961538922887070976942138389600024610269586489817489419729910251661886971588018667635180891848986018102569674457449074487272769740900257518747272709468056029160842649400191455590643135659671110712735562394364663851745864268006416981371302401045152214834175019826376706980050321786705514211020579295756418133389362663850728395547788994395375336865816128157882146598682916826605868235691308993189712506323157691890519585540852071259364938144462613861681265566622316635688446408995236180565723766858104416116403397672647314857421843832848142816684981730484055429360965251402960994713402460872126956250458936569232619619550727663650866566801129834421689108019568942323017797483651274111104602568397828678900643571370275231417939702016142759554786137838757189916474880067061404429908735408371489064812896348631816948885551269626138096350291293664045397885918368108599118009686611514586467764098727147594236392772348499457509679821986384072960484543574460065618175141661530250282786662431516307466607898284984078567167095916743820406957591458666422478225209652471129589685177401993266849833504983109448562425004024381893994867569766104937329763497182872937025824725453143095833238020711660511478095033212770560501360712892583096128121683341995088612103679243664198592741831456634914758335953765582028838010065970503240978775909109464416155202810298845448994883831122827984057621393686660181776524379121298024435232635574819632539570839617267428352159013665700757927207941582750003406647506997658829342865928568432069417777294733411298177355962904688531195621362879314689570372821737130032418788800355781379097371216614818854789034025337586726387639170084047605816018549329759302786856191447465152322275970919146047737039836541004422024131934938017813510176177616212449848274857104309555843637934399785247459369046307943432818107274103047490057316587538923811131354862461155954473785583407889779722302814854913811527886631992126791433351880698382251443251263465514195913527868290057290698297464888322556585161843244071130173102132845573383298433368612984904650490188411081407558203428926420035775395151598868734629327651056580716487035388563871703347361859455255701003288976839857370516846774594603927655543185211930887489485713997260163953005197860661712868799342122204057489960479850681613963181702170215227623934760099056656347256611964468821762119968463126945251693588763216754801529177790929919268118560719132846467720799907575743326372803067115981494004879420999753841743175322775946067817356071436167753818829384903605277412908998634809400346916051773187571945399254328325330263520764627229528349658317537817014719129957170636944279887475627672005443387485589072514952999077635432966667107788687777388731839005026926507296247003585958044807644823946117946244413755943649146562897982612854114382005449323404678771769316428909654907670637330671631485650860775500195234711587680516291233943590160307312806415396652118178480250190521462018475258435857616611918381006740010855534781227488856853131009063745963309273160411741428401831203248057528450509321723594981650010133721447574754052896799718374590644711423733155315165322363196930983978571094575836363065217335443752046512020641364054380049140028210315156352572393815332182328212573029983880555271669036954880090173806982303713195517659800382644331231023131774196297806948421404138359358386401598600803252761784671927662114529757208626438663477349594725084540961886714323082614396476556203887751994904955496905060597205093617415588903673295960881837380467089772961529758731686193740122754720743754174631659388521332575166674271977641843630956980998832672699511988140753689796385247076808117454949170070994466727414562462142278557654680353170200259924521358189189803686972915205017444516822980603042622613368235384892300733403592579173825268491157463052167361243799715174605567889429674453280112341358406674879056270054648956214455753098155838415776932601122454671270803295648690922771582902702059542438731347660489423384882532180192208587119652636623763049679490175907338786073875951720971337468146752826004125611212799689792271981971609113607108637255226604446105616638210826259053772795061871368904396663938863641366778047258207481095036782184924321017487679670756322667015530210438628896570220198130686191434670107454717947201317682423182855094321059647217567052587043424755864181176887414193132584167338811180333494361920880691749192591046492091754384613884156209899759792393025979742858562337305436250963568670781244169904799392624984440700224347460669731018180759002829896920106787634816210531164940373450016518292899199351121927370381765807311179789291419272133330536157483844077770024488496915911096912228459685213534499960162751369682928737855663226880089472372085205564031094819201369847477601467659652415106579193514043921925402819339233123287694680606004800743217701201506049652145678182914841878312810160505718730157383850026051927760056999507483052925880240800293600292794442394906406180311741353038721934975739240340015784668574250214948396964484251249650228247841366724342361845801514328724328226124487718805146116478700530959051861839778621055146192825742604361033018421093169176679872592415168787988883056926743271056242425534185315558402995632699915839243710137261388297167432673277917076206962151103624024403612066564841077931505434267876530456592000263807026670555859223278110046099754787073759841896615150503021163708892809036110145669848900346883105433635555183252285870548003343803791827771436407408523218968316304604160322745367440719580930137332545330118506802978001131896110715750583782564098329984081070483688134891393458493083849627952271084639818243870253435699834542701569540313709190863946283448369636749402959109242362229586161427539805416255377212623390026775147912253309725123295620791851303953844812124651404041692648356862409347105240173392082947039459247616934888596919016066835021340025460283229986807092457673091086682123128468864863658575811501951584454914669293764841711936077630468668289704218542369671451193428328327391473888308039178398546900531325592857617539300609747800215204348971690105942125690776385902314987221074259493239317346434517025551030982532932612338022687091691806246146280178046375801362115175979048214669184754895462402357160391427284488519065608123118678525610356591930229645926215290868788452677936060479416724069852263684330875730637807615407836789685707818601147927495285570555395642910429865963954722193433617052422120445656357605849888777358287403914292965637060523852871972110152499153298354072980744577311818959408339126928592377671225352516430640991827258418768845877463310982220561523908049916441377737555759113196715394511312264756067318858620450903439899104277612517801289604643088513492468089446842455759859085433925727816999963261426569298534769276407138846921747439280593944780469641598832482620658315465551942637221883049781390915086822139321703130623567134348415246403957148142092368224302771377212366448679184637888280719087719821356236007898224845203958337635983856306170214612179829294944557860157304924771155568789596137558012283529690292073217227115804754212329572894635201403027241335867864028941986411029812894473764918496288735640192757591995924016660286260060191846589691265066873494540350606323288570467493882432497598644533255292040114121824598166283682925648324056805845867856696248262952820582711401983484733071521786759404589662549916348955802598506078383429760463923739167682231740754275131053886498308020445235016085674216986085099632976968688294678210111930114971215062812284363455667838126575848305568213127650742383708212238262639023278455180026780675408773756574255965737909168579513480441031983589842524666511600843182915832068749212705357605189741466759176497099455376068776106904775838355317525205038605452724648311638242958948569320175160496939364000880292499893166087405339030450068724904677326476889696429568030813490297141443182255427191654860266788296561595053875184346635164177570320622939422880297210518874276025244615467748159223760251457696493538060397039506664883940245630768867103674704469954484997443981603821541990679488179467020886315795098938934366824945358713539402326272515635360431611914009789723924156727479067141839725330855960615286944286854232838701267948536385373323098221818291966269123879005862066918211254238228144696027955161238379836835243156929579679027325951520624797272258245875216090238576736987643630106650413570819228673838887931040735089446861857988429570095323641052773518505580251839400888569959779466225700645557586707986915368597429967491320208668701913006505428667302380864694165880654850557037333868567646938604452317031475506566640041693232013362014280643706433181523446076166472372970500089159898250266509631299819049510095317896118512758828776083940266580610631169107414432162763030978783749806679896301136205003766675717425456466868283803490456267564973620026895730663690946742142930863834266270180545986402082329494278908319501266747091805638828949825230243988263309813211184867202896902680459796203984586349979118593423724220569894531696416378223403655333828519931228906847259843405720518186287872330414247864754383820448880741921709990395476809950939255333140735276161776649212497119712982485696425733624060756339358550031241059186453208245851900281659488883498258057288346051013526868599172569125208452238983045515687944841403175207693287725379920283126670646451807358746529839692111566342056099753655265979227616865503278811801721825641521178856587042655128691570638520899999644441275292860087282325931634585147819797717730948602812857920490075303390329258597628408832008314226888562703854121562583891310655037846295931013499657507048842872055627572861850312654137402002080085244135910407827856211024015667695369425994335092230655248027126876055981085720847200614784982264932540513971968246376503492806037126556152142285555042153697884905159783924380613521665007214219001208770437833330021605656714162341310161542313135083226990208182745490879668429745362600514277360434092716095831194308682994578075078981055638015360891052570033468949727094316176596776363187471651859047400925419412754626719028714165217423471739089484967008239071766126822518677654676020425969607793566843407828276593217863410493287567169576530138482491377707137023136006258547178023445406494957285307287291251616926511949005456720093170781877225051084947497729656163905461578332775187633858312935213373962904149453583793251399479094411463605975421001594648248071286232672276229711651176557158003916415580379261210383358675319763653067791023212240859126045778312062279671693478167569986412542478804402207178772165485666778799073136783981640981935310436385639087361791220057750375706393995570364588752107001693388990407776502387274616660783793656760284270232741464468976903590262848398580583954246229940789591798037091591408373023832475383479689231168654134547349317644037793187668726641066271242313792528826869564839095551441085374696037998060939417758113304385024970378559027218752674070849908869449100549073294578309524931245235829979201133242987897070939110173360009957634786420466890095395664401310481703178104206581265384708031749319316569101562270386584913704841633863553777413041993965165436695742304438581391884868249059794137915836316466195296674959675333285583097589699850455129710035066427181108424450712536932849847680558512407437706171495264393997522490206273389940542494782472905751929980905605132152849446760013392148905648730796581155816177311282437652875772169321378205541660043662436257402906468714670800758718622825349372480193421981893822136813128979635643037924389480505606365576288086481194074203656681349997897300119362081536849238410743991378660266577333828445476253252879742250765481151193868979185515203251576765023025732009527073128982123742085856667703975970086142241418335462735616833067845709012065970803100643039858092017061780156404408967792964025995543176040734578353001263639371229479984550683456403044899977457597272081317969086651884646491444268905732239817013418478317466796979611516723878579596268681893850094490462552986365886487016635761962155783804694185475808337168828889787698209025535533823911621799478639879150307771595689254613470633254909641421717357745619157404363511365622592194821786106659705631516660392704132244358570262756497211895342819525016269204936132514058933746038434994175501379273686734484145472387092676931290300042620872236778372723746855681417913762021713211863256527135856785207994215820480960528839675367147743263261560052708264897585095400181068022691659326785391023557404993974159251614984007155228241177346108794430885757628899492252889488262204781723760678933894767142843783005724288399950133384461398884363190335344864372110265076797844981776462290760554591553076427771279581287065010972425932032306607381295867385252133209192622788673220073689643375178633261531627942321074758757689768834736641012113224479519704146867094370563027006792661635090034149854833377411310686600974657545766814288990699863630659470216516191749374487327523361591431239409463601665810427471022287396863221182721593260054541882701959370064646030234830643923027502923415487395138007698575084717064319818016763090028653642175186620607482330116332610851630087624107921455297747426655390839471728268694808618228949603530980438862877840878631982215748913265553928306251437176482791698163777676272214528707479394817692637665460827875380410217663002842480880511063426051350261007093281601696575838692697236936854856622193583923473244295447389164481999611493871841108550871053641749405348842841639719572536768127593411998243385861613362499460748780401399366208347243567103945472152982957298675045137606263974588919911221365127082709763248026172364596747823681657203676560050495282303702171801319963228713349042685800282507480471903750545274637247154048544614436206992507184979989706646938172471153523942600549761804919910350071786005320218480652165503452547464877185173022576178400952386422444267987764043074892637816467926153993379755437492506124937408949534920810052064731308244280794861330043322965600646337409785216554925418101344453623037090928115981641676782961901736258024873072241172317048718366408948297557714405561388131893189600703663372542928024914734323213455861609286888128614852197581881228805927304670369160284188626743781424696445686496937193615773779861543244756023228333368109460846457333437063401829750102696184925370855259872750328284842915947937561006589213364723929366373891326537649815614575634444222091774905447710496970980791297224192832205828609733820234065075600162628783270579826427867021425569164304379579310746673546997006521827025297835671890145456355365759435568573435392485714927428473721501807029616580028485049170374840481293495812995835594545407961275277779103361829447428682143412296622001600442056957065192391825265907873178454484801550756640405306048990805461709587422759117940300584521713715907653728145702134077451636639887909109419272631154034673802590103862957985692205342895233052636334459266201697372119808729030149677454908066337892104088881791337990718043993420391769787038500242344822157178340035466962945772572636301579794156968459244579987461364533215309787816687273590438947536007113477742133780328434351607692328494255572407504400502329511545972133613525815287251480320102056889545142061185547924434177824314123097551036348276313355768644417267799747716317695379098305954635971032666597568717384389534078071473395886609769941643768185681493161278312807221815522448335897976273322746065833067033222072225901521333542595530247484953661887400025153319264214728515867167585034624806348042923872003036214355644410426458603214243519715788145173594528007786182078560733856874782090423720571540977929225080125685446949809465736572283026237803591093365360960666507745079482606044843971331202631118959013687763628261839466207199083369095554843153235662097786807663800467587436415562914239877731805963031336384822838341261482466848976255850074428390285144314787829607370598672448948225589578555573761100071054484469181879121252001333232499570382698111379055085059634143031658723555132963977274597354825745304340754109748527876678224697588248201186558186840977864120726374570608402786574442337685549528651560955518660213504436349938946268417540437267360006918953071530972386564104717657202842999094275236570715959293588232168694542189448969983659005392798779259237884937304432120919717823734792012339269872802396871684802517819071953061781737816118261932949886612162245612338028986095202536953105143130665122892143282501975475294341452878064072913059198591292340840375426365582812378257795953614199889610526110303993157874375753847283481407076581122925750193996969041444451994653848399334450156319058645095507419059823054589783619184333048890235957476498113639694114657638977308505865431545451807679664671429297018801676519296629372040005120455970907247683548210462386130506731433195183156770041500225776631845803022536487912378424926170017140338848536267075164961028421127281147771048239496799877251604401643815908983601794677216350453530732320008003694785956502814855398658400057194721553693769334314073306727029847541349468505458370222406754502346412361600938822613772743388284162921500611934987282286295043028891931028516608077134002046552129503242254422876876721042182369483335665457993298379959290155769089151928469951207947035332202644503483442970409233613922867245448662402475662199444680128465620725781316177460970929941338615409726237841111421111630167373843132287218969630784277085847363668719697640547114159598091250662535367423178269180928401908956972879112996144128208878732545960955682736678474017299072518619407410328034916913397735121362404743037740227624368979626728340011351152935008714747735246350033904051252380388873842627290023247770011412121034848098365763455806147134571523391232447348399094036075716312276432973405139190757587677021262874656922804691472440390922016021516765923500874837074444646252155999008377121327426873296407422312547807403189871427743677361557563253528999637826336832658193816513393451537806214363880528812442677000980360874951926740994697569839101752106365793917168460203346575709179980031722884231958749789054857434745498377862620549101156957646536936339069543177017252227953842426658799708440641034394634941675691974646342917481999837832935164299328344216909705949187827129065539433847870370597436898924887866219019783841283501683218482811664367760853471911066594022613311866124994787895223422994485885363319248305889103399374308479770383527755909877597642864069884848478812059501540445195466524963893813467143969222141103575449242463487551259520922906253218391634557812871492274344667549159816899449620272873016682444506115585717919195077325325434848804027351179939818244790306400480293308698325505977108570276610663213065832056860086294112256701679174433981139440582698031187637982625293744296258683538038792788252410633467875737947432066169035640335706664335465804670277273291796654868056919808844053578797061071328772353483366177782690954067809794408241687464132329708837861963070503239758502051542334604158466791501169073446506640132938658278599271993487778217616563150700218609828513560184731019228110018465308676491870192334299812351315767322240678415738402603023156572304025894022451879489720239845273494579533531217418788407876431433727850515541715927225384795056892853407307758617708338804178808185794097489957027096535843639097216034113034011273979899424899013970011108019542586712497509904556352345291377158352624169265956564831701167989845292065916194610781402864137851994782855447281555851893480542437898378957189034744033049384539854139875728950340058002008270113716915956895221831527387992464333280518018746727073081788475129698133356595216829463508342652859524689047680382850437445325617290636166180332945000628812038873487482897124914175343272481715153656575063081176556118429456702896076404055537371039450074913043446832581438836512713082091955477957881428113105158257778731380738620063288330257423970194567471889125435763964244430432076010736765183442658213211431941839063839817316700429639605718808139315615665716111510911345612776560936621454253519932503103489290903394545676574853347909327968151413132840060678199948498284685412023223706373760186460517735437528751152192520580964254154798942159396616232923312573065512696207939504653692790394332544191068064523282606822648645521580862174563765606045021997858860566441699978563682276595792783592066013038703936695577139139419449103580302748735823818839807245397608055959319514576557284850943104210648872994846814168107154137861880627335490677160781329059135894877949836612203275597074311884918829971118599589093763712467330340032256643238506250825489659048546848454316384764666146572162690590335071493948591065560659374403029049847927179483884161129138169599756082180581540176816186855043794456161643877531982097372107469777084114663585453385880584155018692801752534396649004137165152982661737902470851564899732676594380294212787785756951720456910968278181646994699993431684081193067349166639854087847709606675586932447014396282715278686365546634130626285223171349579787411719344289884835290904666600241588760669708906364257424185470373439827192746715862637836753816834109350103413565927555813903468191972792320610942917874397501808731383740712128514889441855668609039899550571794785267507522917552663659885808267881236450193451603290669963489703141153548995132485716384620928046688164253839824311873264988806471505462338377253619735152253158120517164344115508443736852102603040723490768744044636946608562443381167906074970638410020917767564190509742866823464032018536072829536174447737185138383845852612673327441006242076955495407342615197536489922197271192008541171720113655969460324492808030824612776079470607905651462672267066889193295837305077933727874577791398949762343751317657828294073233326534954344719987231138610095369944513459593274232282828087479720383440282816599233700711829421171948395914015811106137180506502331676381193843575362288988844749396134533424195390275009471872862435456922257300669752824660912637042535626391377629599703091756621810809146224033998509614379002836583549043454449832559303923884276158591395922609806548609264226642061708169507711844196904690912539521211176325410011394870343050958718245899299166706913036471697014125412827350453713152310418793767381199071844815600291460181238861610055071730419734831964776964727954012416121341604592006882116697124133420033441411908544459064108860358397534986206339369958685812100257960746301140461230431950634520098148198388223948737802609751727298458332924919349280039865932764817864083483313317623797186472853173228521986304159741858232998495372255256257401290936575417638080242631623852725550918851374258515423611433948252670960834848480690939412990676869751236315894522666231141306408766154168902628999701166681588886335965179929416377588498277323628351134017896442936660418814871651322112460406956167511344334405516263724499621006061718270734807817173297310192831825175389699841686189377555721299835813923922341164005368161646195143005164505076256633279443277281197702951657076673729703100905817544232970218390928428742019259813964465320789146542940447565144292392141223522636784122947571726954910707154043083065032519863447590304237083563290302834684722314962989347333007871497784437970943245669709481412408173964838552982731242220298297402315204673460660432372426985939739094091968317654051681190408116979101254104781430780234817702027639379498648005771069240921775219176591745781006185278935334605874367699147880734775706815176173244994354639645716323952076198997468482236841867554855180584630855678003613528252657275654325340731710314962918796011228190350443378255317221027482541900464280347565512776553405143919100776284382712652602912136153739010769654534229793564936064818268427974298852706501819564691327606522830694703828970476348969608485520833759582631379429181329499934172908864223513291583290546018372341550928173057664726493875458313307305412075177869519878967695215686445301236455443477120658332645756078222951500778513569304677309907977585725809637557257329787370442917199328036017826664362791321420963344017399947184228682083181471172361011264258745304835821542988836471153973492241872470010397040902288687019730064645423414062475985465055829470766124842487395064084362778958257229412902945714845699340805472535850268248231152961282741923567522727233241778669729716293436218822725294580422410249202495732489059125975061756518386056837013812974071650410693783854194289443754615690785573822296183734554845712457321926026314701181180313779718066965492687806115479812835433875639975385649608142474695819094394546607203878913259569466810608029597292934166710331448139379283376078230095804805924785645403475935152562092739304967227832047427616024856051294912021693846285953212344823922860037696931253660594393252443067722069736077369715838791658450959601813781708453106534641822714361138266716727899022911499064030728233595199512265396859955924232581434685503433402602282730773260324467110529537156083944530263768224870014512989814869302655019647385260485051354052286219384157933018385163472212410626180632830100401890856208415271656010120577059079025820452311886784685420848855570316370885900941358551523921705423913305912693942362918563288778410933163317467051343866449691638400609605067711927272541282628078301319360295543117373803279328111263488567034927485647869964688955695711983594420935585877518607484235795468826087784326618998498404406411069723683747042893867916313177173107979370837495695061022054633131931291605454769694877951103548814194873901260728813740370619109305452435540762329978662038400670824119201026447810226066850860803929426932670591245396618510891258500549453703506207887305935503407358730565203677510359942658057878524912349669499133212741733272155070922667145781160758408822198931728666061758644674524274315419232041951204571544432093100648716972567628808415963088681959523184390996370933444809325981294780158621020751263439837478217957411524038309231429356600998154766100912927226616415132123393810987842341644312071630258328008794108825032616718969626395520114424248606001916372527740104407409926964586863096849668581507896719174625229942746655930078813564361755168752613868432218678725736967821404666242362940596449354843041663110744835086675243431462341975632207303422702320837959482549639558044233149065032905512008803137223597231773440075166138663337947780389088050009486089170742060875641220497364307494450645125405995801961976243240539730249032180594874320006757487350046937154542872812838181891859815927748944301564030713656956450387265990649220537908613348607524529679065774175510925119853352749306014280866806450705773392929711089840853941607949022935497410280695986992120363542648739128202387486948759027187828183428500241214842911034667649474491365098360968754567619263682009411410675276591025615582348917566133787730457188286193865302083115090490648055955749398733984934663531054491476015313111288620015611315430111642425735096197211585823248702068639949468118388553500265981056711742104947733675640419935351937641189090029948391669678419913744676776756923174745060349105577784706185823772943509830334788962652003273661148472331384511769951782671370222289253304817790127512120272405401663876285206827621472047810694831260332871933912993134451089015267473705054973925823205238411739856940962400909673133901628058816538937911939484401122821030009926440528413129206929887310082142015915317087988926197677834431736071541767794295059562385037825472857330012358367191931637416494003786615344742422446503230686301186031732774290824418108026333880368905243182777654017982935580487775632836301995262159692821238973533794758054343354336598328534875959687331036970095207386486863448523221195363170674606251824636530205006609892702947108907539422857012889822833384836680240658178735237126564076482322281323215364730521868654041212290798166174693818271120279705012951856901451875658398689521627941119891163756957004469310725757870652068574882918872078936972707693930883507349753885665856754094468624614200286327678028442322578880710276062673444896622180164530823874666521159815328654212727464149339100371208850114324476487129471392430531854835785724868615913275507253805497648096439050397820103720492332210612837096258246774363218371816445421894212547863270069939887069184212661892673627137244394724537152537229548132533891586481452257155626682824284100088579869865693250209251478591072154241744338938820997139846654207188768709141136016690442096706230446579097814841079971460971851371744118184408738700594175775542938875914409403119208740357198051039333322791023093157636369089448508935037735636268422081888629155377956401854367136245171649713152597667490500559480138291698374618443415506669000660794861377373448661967086986589784743918298530793982336485826565579853637424707824883213621049118288035913886160306123962139115428107362185600803445543933121218647420437150892578320545136497144639231904973913518558873074910754293457496698913996233349298165753544984959433098941283441625204629421326705293914184733742581647626400369481440941260253604400584389062186348429964049688443992718844795004973327169179795710872860918175843489312933616492851127508374521102628279136676676877390327860413919687124101746409862772727292356332052005392229649094247852832520449756560867675759145216475043997078135447566150147341308659943680911183851583393888466492138845595633917367090089305584171217912119701944103648115558227926795070206160601262178745381462419198144146232416680064259776347324588228908695857670407859895073750853352861870831170243630485233033579472681573691233308290378479459068258778500085026343753172751395850611862246051085962185857827655199041688470982901450740392549852682044563125273227244992752657714808781618098195976722833034185093825730341273090217055267254004063076486056754201218198098335912273704252296106506972937463905837512040930574795037022821919425036062581933767183666596054509062446691874999864257567794970261690380388847274501026533394815511407446548453188184942749287856713193640412551545574807927195502225224534014866637045600798150496944559536559984942783177340615315164567963828653030658733045998055599255297537268625806399682754008891580395437428488413358620255161698020441699290970130543956880749729123172297702515630454468950538775546799932417376630032407799031029896917397733294454587039429999616903486193595329604977863483681269444936444028121157234061156971700946713973479453446674195403478089442137747728135303584875747536037637995377032473227174192035029081637907389932474476111086269128196569307494142131528026351362418177165742750267550609973582565720279422101847202841308008313889497741598199302091150831804291570398108261247913925718595424276337076035822085196054172169295532399172948708914025766869510155574655779440523956673913357099275225714604656868777696592337869887023285002450475739381180269107560257467572419986847524736239293576825289794447740752369601718416763139073809773533510817266129136934088836852122079042039926842113607405655779077797965872886433093782729690751024598871167150963322712768578770724775466277228606961343489672416522059182290660945452925228069848447586112632924277856608188948532917529399812501323847806986925806956058396494323072926048737442403077099659413439131431468591159891006428231479563264598446886398614804798286034542632641941493653863631020236996978657192909553134147336605514635212275700352959444293617786582237140410912124114823531224592328614954084369212659801374818872101948496103975983717579967704802241226710357259571457110624224572858302129760128988818848353625309560889011183441778939736874158504882960150825082823624145462491517982146849633916397597479163963501617211492216916835608267306192995348110860630221913513712848466400583799913470922284784316957841753686200193232905524926504329182154813947559124086073039010387223782646786323451440658458271003079957284994894376594812483594651778237770192252962539829532359736842351798781061166610618170537515610249685506536288719915499706272185661928352139231945349637144281662126350610365895070130555646008642289051989393382418562875183731692752151124507356010710122901966218409101932266862744251190031864862241509755368107200703735074556189577335210092006971968365028527860483114970750468862835562882223097833162450275863658670730476298751425322802652099393124358173499384809527057787516413860642219997582367812455819777604406943241562880998267110543588649170289512272105761430076881153121140502427462818298953640274809857312476883687647100031282565145967826569245873547004127990124843070166848112922927275484756885377548841683443007562087690056405944537681423028184293403764381209733623509658706360816416754491077985355858436851163455325367632968465437549224435564626122296564931862693158136703264117596548803016784810250939605409046239132495036750416105256955783722732624763624262500197917157397774145601331452564735046169471387350481597980692027067661318677966461176421841007138439838432139649364079476554746729415509962955883432513932663076066896049533670599748088991008009675206437350051516195619205796784753283931140440805643496777495553941896881034300582529211412607449335390557232776405114418154293085019551895323097195303392297141461615485662408931780515649932987672498320494281277705902390564155185609627164082787976364892434277259109090495640456182998944806843844648664370117923062015509101204515116659600582763003622596499142893289556988947171410780381331659280718109435302801097522676053169077299002662770054464976736135345390440617187812828265400365685147680421708723533131947286909682555114939001569456080321913170692197261939279430518376979190274051696819000509499287824509618315710923130058537404861449638427223799637530883102088444477946683746705084262098952145908789971413121291431409190394288653428648593306007959644179493943059696790572016247312946779609389979583760667830800309627895875072630482498094609709158748218495834452924611641969858046147130577604423752865434847534790147208982134353154489689572417403273715209321143304687444973616324268881657663051349045885245930457245983119970519194677282245922750230589141138852907010750482369250856146626818488759343684788984223251508089816757285710616124713629403101897169451371716957874484785157198643185519869359770389252528330891431295009953397787784780949077402786357733911122541363805539946879852414496379699755288728269821405554841748515295375229721838057031394092924376575385942645392264921834652286944002062361053733103910492089179414918257665721200747247342960219878192262872898604106138441833173242917074328035471378167617397835354945063161041208264940466889051713479148309139567246614191158983417560143365907948455079309625140810984591518845239159597214222834761997819920867682143307511329619634109951301184798436442213862455257020979706562776493959013811867931416877758444807357135175150059385990539039402830303774930265471584055809017454553900462036728058022608320665880937901357996981595164646254855747551441422370819671157387335654310286598437675156963776038974269861018717120117824899295538782384888335017946543138974639738234930774759234549688683347118940954854650506640326421895057500214385861112732762060450247149161210942557912469161390286073439875056185286225521014555709849343245925572393449289752208326871702452657881062769290040272365794202481860753681069140032623987168121228071440842465304145016645313412202523392493257044618764009732026409958630758702093003966495349670234632641475037571614367852701883945432358416647190072692094422895433882342564583246006207711133321314847982827106856874080190133085618565898480299485396415374787868122943447826856612723708568652611080405695281926304131449183702621968380001162974517270413475756604888905338290416444415318231514060195838377578617227322209787403784270844357825016355235202039149748595916513317323139593827471034427391625652945857243762244254403102581693384954457184020302779597859245938470910144471759710885472426845568114537816984779442588728727018758561474942861221177057128049154619875954914286844077848279172928295283930871656328371553380380971755270051335626673561604294814023528254907213805425418522402011165149020660855901194709660885255340300346136504502277456775960789780008643598243924241930126088073740409045365075584015299336243906346641857627998858257789544434570684638283918246704775463144241153909656603920688129791315008913547599298723684487469747872948976333201890566859524174330476377155114070589378241495952142045060953014422693087491898619013151113633497661080015905569793687614856389617002529264545117276090519399558110124666068499297318466750223077992435866092058868553916913601591570057991666512550586932163988546908612671478453804884486662245436673376198047972323548528728988564402702397441195281785419258475634014913474970317758453091447363476416513247336333094254246465418835061923757800180832918083809963571315511341674394822022188414112079864285219727481126585111301532156859275341003157993172297518609657078639404917121836142989141578149473190055297442344710088569120076629072012925105803218528969621518213228862170434247822087154650491885844670234283988162919503167066377265387015075171329485640719785515118407648865874406964241214712063928007203662244522500052086541248861225650810872890369929746188130907500201174796399556502866255880632815413807752456280957217589698548558637577398459525466170989827402524229833954501874534592708451414451978113010702861053144100275679950556006679281455271370608307163350785626411246192196919263151523026120507278921757838264298270255577816616883454783594151096778408997556957115239603747922867605402723140913346555378095130111537069443147559142824431689067452181432590641415522787476478321096527390315844289287217015258854750050427590082906617707427315250717463908948579490620844101387206737887567890632114079468609002999502811952879639948749126463549876853917018781873109648044976276234103457319920981947462856076566212811588804680079061870948160089579441606576737234010798755201430335741446705888743689013822259930170402760333076688108796655248871120301365715365405847358102470427596484978166712838817944581302182832280490271516902371490685021712247171740649505155030347954861943318044302810782461869130382872867306480899286694445544241245782404700998230112231998546665626726899945154753533539245605561517636629776425015477451335139092676491034624093514078043542409287841915479842477128843518275413298615637588669417041506077484478287753650708683798903561833870262582280961542560645506793916802177367745102068437250130584489490644453934787251427413462945558681537715711113542965448630025525726603870657087754498771794850591555143012502955856346839440780532391560936956835960348703926669149137677173975710469581494350672196770934510994705632465250272723523211396865033995316611568563114211850952975239156987230996531985899128794262367260579188598234758501004111835708625191578567910588526955082564985792991620105762536601934348472268532091414544797829058033956199151590475993500986489304462843638477020392786860548413386666180553552389447659363353882715006679133533013540413476316209162524346903911204481068817203747805758905360054940917800074016834272527994394028382257205876571253216480363105486216922351498295552523788617683294324632361311542737912994926561421694271779799659154404134419305194076485310768535646248080250818851416070321557755808779846964854351368269538421090423360787882503572580052848480967693128926595337216765309238314282931519146660916416753156167310890989757681389572350969886599443223698488577643613175251653451513524142616969547617972977877739547965884887642074038057071351522442352181115401078689287135761663136823263094773357681073733754210708295447892450664276824966731601442210336670620573861452909712284414028545744401687145137694641824136284897056966034985310933003516012816813430791301120665788650782897254994054383077423382953561982533987242370242858698519298467755853015273439450078215843344809963664032224096054308181098814525955049344402555568828393550573878466016424667628490987720416708941108669608724364814178458184064825654009613869095413070297917091463637316340636789384500101660053899742935702141931817447792606907625325361500242729549533583634729231932907666559260393524921460309267405027458353881457644051107555088642610068045918040539703942718814612839373989776855271468193455469762558573241983127629758906856448259444029666751427520663288516844495676978671537671027879467498999457067470835249315234508916742662584537210669770518332036216080176651773116533672943089919671675627455699221979295407050618644220420608571664147086225773452510259532614946974075768043412751247312208101581675421231835189568310701464099666434508002242524433364625651470935063793797555284164978845610988932646888492470508840351413758716744770485014451645400495379248725408675130678289452895836042154103194777766999566343809282399390034928934973570709931655462898290759685431906599984254915178862740935198077801135642684897084657435905150671523775100748677841333973916185635893587886690266793620738024833950664399529403140984453666794121691722873915091776837562324170027143107434925194853568007160102738879200350621009678172220631062057585606932633946809290590679040262381480509809010017135164640151277636219985986343391895772774813411507807178120277125641788157306724074928081212197809784033254711221033234550759171293831665966282236468171300496804900554133328365325881715934968778786067857510055548753516365608326254790917779856275883418940988548887168584933969980912853280368607333187140762624995360832127704878048510435878919095843060379944930747613922984849272352502282653647647885017628706211514303299394050733393644030041061706074133209970519576519776140534754148987982957831839608937939559587876859983147194721402636313436626607021299191496135679968872332114496525572104155856948665136114102535327500948701748090231162393551022576117576872679026831146720268694030813967073261755354669156425134312054010197791493049383584433953249493452472881324879343772990323079443272371279513399992062711074561220597308320827371337446103414976671466100153644623579276493972836437910593381382217655181348498941194032927049361575341185889126465447567149215150095325838998552015739310875796536747282926029090435464939420965785433392060012231349721459623049726904739146396965584262332526184437377223160540955165731460839797475173537854644431328741120328752868115248004496283617824560043976418044540238948431528213943296962840513916272425524618101861441849640360230482924738985890174260224561890884924604087882822554353940186840614204128822722196328878655114166429183574701104821086864485129019193362220946916143523376272954984610355610808564958039254520214197179044619000968260192265825210741812753211904908506896900715502182862467077092832554593148042163763379983620937781170377543092907309409172562483151440364666675263459900828497080866549836953095202288435184728471416010506513813766529567623326523901772087665794805703508043439295445231660632824303588359812514909145470098309677405813244756687201803841408292263755481020407565706019496386215012885079084954049964843338793491644357364143278124530574367589375998665219552294683923394783614601757817045487349502276849638514671920987415496465543509280074005541171395797274467420998169368530342371582970169344890858079005853134232236895243892972570275362027778211266552767394453081884365586218512241969200154202455827831184184130556863021222642977743996295360026034007337899340360432969302172112646869097526926118950689696857322124142487145564929424227923321599689112257177700106441497854478174362588381717087424295954766553995070780651110646505094672252139368710286714164980706722933607558396430077510259544588280697953749528423463947195419240465951014034583780477761028343260043702470491744150553827163997983076600530030282677500894699340682778688528128764226429366275033205055169049060438925913243302668581337028021900145357651966323362532812810101996822421851874851361632334747060450159999862324340884228606275824666082470100135822381125610892695903007491212426157735447504430655535493304841888317548320429425728354970542839445733427691280444250578427153452154647401490205437386157781235768043090772044053192274548658121497815919586202238599726791781289054043764597638995630200697250713769034660879426647758501832150134176341018741604345397612301623946463378566907680441004323919023728832173045571915597532072460504526187801117358515863452022798400672613823871850421129365487519428633398716175012146972793896486547609137562710670543758097327596074805970438330065724980222118051584722942352856652799702412980852071537657087775548445039127285277277032866894865953882869632552786053202479787826349654209879463342540528630538600453481457210547864988843752506279754530187317566527392002571861858444621722744349226886126542319514976286973873850567647260000708776063900118478904291654922208804078772560001950709799784553950403744583583951618384455927267702702148051604260439987989893453544131028509609347784528817373365507213699569544541516590042776844415332029773468684986071613722698477892042671839419439148755391164938841507471087067211028869520272369224348499572388015358091454780863417232532043727646932856439852818001245595062797847699039598007692074252796968039963406185095631777477976398501429423267373268871866226063699815809127871704111061644374026716563780366545808289008668084889942538076420018626497180652061017470114983594512029181810393467566917632430453708869353674896873293127393019608715441538839823393383781610955152441926262591721004741352308860845341059846871936027675326607728026934272783205973721170982923004284548343137629553787319639470469282191741655039461022546668508894195615208389235559341966603485747186921836465028584886107761966582614750966999834613159751503183981865552095388130494056051244707543608150188650920983707215624084613939649500716883100197799148826726136471042448445898863168558238162687623307284896907791085791642141162423903202776345527837344731106509914003395356665703349749384427866452319765821918729424924708249123984111655171719758211630990386994242441769683670992793682819905515210539648985950385871743227443175231917094891904452445706075962613270285586502434072042587016923691213695035511962052836241553860469076212561568483978120948062924104474640243330979654280333543468080921550300408734186662465276812377770112262723246997811794002498080755436729396699562915982938948418868761832509032295645500474611375566689713309487517560940990048904677732319508220792150980088455341460694384917584798662675249075029690044368527563586331232522465306507168650971581642840660442423237475901064112232306377306422811557956782065038395473895828151017778445479466858493427446031233106753920708518381179745234702999583095578369686335391262934289126012231580373208724279263923904341717715153491969238692413342654702630998721551559923276694090989270757061880887986573354953261764048654524021566490413065405019900155122191150437340601372554225944662971443055224165784538457612283087338804231675150974641744444780133826280026100602303704998768126769074267614863819460811793882811325079790868386041220692535449368359293140108767817742383113026704356193326322291047397566475112222107415707009233554241042702300441113341669014859225268015443646344705464720027402517160014389201166311022745410942015734672277306495604672213232703107213073522092188758412095499292300779127210034650195811796519722746908775885059595489027620926842433818420855947713290477294907389489523340183988954325702387873669365919089852031292555310977710296895621745055396999639074577954330092955865841686320992021153006569190182927878213480297750454720836356226215143941250387691447060923517669211652407495712539359217501609281265956155003816887017786945395279873922601354705043377122318877103516915757800859008588974769197468934366902328045492029700247247641412756182512832702658202753739094432206270645925609970790666263955747529031466000732876463035178011058114433474723861161388101000310086518886282180192893352400352498815101460094083714972544628118891731307144171660038095137074092195028538502624676271851392516901875396135580837663169960956826677430179498946144895125015193749423290512285886424220340496156728804024436225635476678362808356186848714371333810760986158922819638611510525717394864790026021830037606813686730715123947822137951981296352431134628632772199300407992602287082201244698417567423885952538786702028322192849081629540482575965650403375520914337168892122245884535231868721101150609316590198376178496926462323814303079646450296471306377459059573931430004678033850523925699690749837102010855159934578843150430008230051663320269981599262253965535528046985293318687359723068913672709478778649780382492819084844545024228951487880188175430051782441516926945670434718913730494083165068901044509219754964755448867165855996175246663934340533431676693251790527540649642226098098472016341214939051925297147056829385754563513159523213413828279240871619300740084303050386747801998937184266472032905174867767943431379358645133273151221754154071692313060060480403325781444673808896242873412626221836869707787061556805032130857101659581605514991389355824439965422003313388534712957621665803033008565685317882667477136641529847914656334768996283555484796274885204453571484896486841423129493487676940956144257561882235689180651556666647328150434920037470106740406999108617800525601450271905089646252438404105686786653544249038696734039282353457683418669465701302327486390527345598707788525099298159985383247084855616089264087189161283463890156157344544606844969898477000119817649345573498271541275949425802956820561253178252853740687371623963205280108046528400101013865072190401252937073962493161393295529602573436715301885229112676644218165602744406580510544728325476526481741667566768103108591036454216730260303102030003085933867286167230606434608765101680938258298927643355743984111921813302476754983626014993636995424896102484441308255811219626095642182552011040989697942390670357407235846068345494502597405456183110677724270736485953865398621047981609658139562936066173252974795456374255658413653625905636241183880518638686345940760744003108790060490691107433636054604757791701927740986042017504728610133472580953951992701684538629756264288490522531583653011104159430701351323735069519000319318243003623882335218268206359788914132658545708832665202849481827973013293490651938492257525501485431285091450600300730427954952584288892204821098134548231372832656439419628839111037600106784705217783054728345841828531689041823054751677987542749573216806260034219563086289704011103966811703398897868049236684652794186110783026815255201994079276193475428483433192893528309543904217738998892442985690257821999530150857788096571801475210464258187330045272599813346138384160238037907681733598974553224752105876915910553606784295780817422701432949452676569457051808243281210634517513603564206569410664284968839536401665270589880903765571081000891709303149987983764998258462145908671768809363287770456137362413168799886900534870481039874341896218911516431538249034438927768001325208682920849763321219446633793673080196225337644265990659545248637029445602316143424767972089358115344406316592326459095657543171984510181761018111682623319762700769667635807187319691219533187895959677904416062611158425904373380227450559476400797184074148699365927924339850123493918264371927178600714134195403633561074672198793024030175468964573481660610154578781728341152592402048024603435028389278705539747579137880651895647735617473657125647749749480549345472195280699147779346018310518473855285422176060849202369266065048467509644685690415656192047775664309028664778336452793688700334204943426548372662517013853879951888181302039466547202169703899853890606888764907874540654353807735287459002492304920579048561789770680180897462008389072177075064915004364557903444729167891940653078649972169997658551124351885714053062727827577859420627173335035101860334702523839088321072245870027602054279241362023189573991177563304855407769846657900263957018101205649072927550146950137742685442527123392608022529648233619608567773872381061304325043722825078592467426294795066375283777604133717476744753225919235117295997285335059719931702945201407108402576802798209719323688100930852752241097627952815467555979240762395286262078559813147554047172286475164738786803861119023115414172156010971487498823204472605093864889876677910475259688897994869576952958589419141948634398936004305148782121398167860142208296595359335408999526990436137568311810071154934852722041642921245195775393254669844989133042112110711353666749325278355386761544598872702532894178027597378658254386648451457259146285084018127131217218299271423535019363539714851053579328282874738631912262615910957545411457351562813598025680876077245708276667633261567953648154281373921712329467265712109296188078532278518240653431295670825138816278069193741156241399975504642368239500741031333536936463986519085933657839056359869360567006696541472017598226320289824765631923687811418578696399031855749437664709270363702268954347125797092944606124650654637889857974952308706594503654718372490385988248368463344820722196977656571119219459969468699148598237083148279197383226895937684176502297103846920187282641998047421071278127802781524692394524947458388769882242088563640342732696286549411461071676656399790552884584994046244164093706603562482149390802155413614952978809611711581451472562982410225849398047897814153166071900108073475440412864257273529514752445075389213087689883640809180064322674887804059284114664376263469296791366599039561342089658424140584125006625005124516479451222907194673587335623695858319850315905069818409730297297549197730039196698419313560773994310107992928771107328789883644221333898585514374645959532202299634857309381029895664931268171106976741039221865360094099012041279031859384147961268476116667209432961322910863301125793791204224973399136519505546367724514803005852345825356389655000052979657049658237146224838624803130796540773512256447412562895759518097673199413954619827053419347846630048212870365303566767216866823570505799150909295068322381590459245345567299629520362288430205368701314263838257011477770052879755660080688359767237341746608942592530977445318233981705683013042822429467495134390314593631292184606220042764033867061416930509797537883399739562124330332159291316736593509023841866012234113906807068098567705834964786576808388953925598471910033298699685676390202592835460851345173720154513902938934817513787410737508844607960712578872279804307326174691120181043439683975264750532765135538530753035613871747668511788565857618965596201502220368068813235307022335346670334242226501297055672346143991389303161534127015338863011845030027576556234500593162708549221765911042142714568948155436447801280870276289112513959668195311332006030372216958773987948549154442683237957887302525001631417152879173212938349250951025178885010101642070569710043955867029420807858907969001317704547810899852411630190159841154486464286154525154118060536930417855885712610501529808571598149286537206332603943606757345343762332659860662264648334279981699484520673826968255557582980937657497496833729571425026250341432478391016710066201559099545608002154315935595814590722485835496122755020367068949692670781317103265711329122880154815590411425643748393175331367412556833156274731504246233362550268755901372056426439480062871325908932750327610173017699661366774091963146610970656131888762126194048035754043661511470280636336169463089764980867904689194290141132105067278246533392818262291106999027556692772417717286748549876649339809035774926557385058423329529370607697276565143435898583444023634902491733444076791348420550555591008838210274642205517203233502056305247454496595676888829635026794741667569565444293676619941824904049230196199053482810385847296849879127155935122657017180390388484225320330207380019065629869270284817304949362327050206788771042517935574948976440701591624321110629666451011948027850873869376978618181442322936042111602018608257520119003232697224877607852394496080184541230134644812526194549371000336189288482044723479086597399335857469169288963699143780888451260292541924263243846795000443102169607118656311179196729678497235726508326450017970559093338164340192922629038599569134702643961843333704313061788045042437253544731064765532719788459332646582867674262625036851288166845486955955843688153117022215290195171619861811228019607825726541601100641319047075501269331616713141350075042967357752752738033583464772592601887658175585045113648973924038980636631435687978994107152178242444858715494612271543812095014424597917175702484265202921323517289058575081958171713660222250069658422932221516099308207969200808644710246510568293612807602736648634563487912382387578111847587167916364929683538469570249069765826335822024868477770940062263241368982858457450364480318698191319921510434088967295118476492318199898176821754784741834070516287462047130756483635155332416732621844779714925080760621410856615146811857880085597053351471246534689288693112678102070475716182429267734095880386248632141601174145598740719028946786093836629022427668043529767849454625745455139778890162578492239014640924284931564101458467786874528833377671392514912047056032262532060846119990802179726630767582424455750898955474176233087870560866465088464230842249416444115985088176085349048073793935639607966758147816832202315258391237117152673787024732371708700895778267016150757618578014915752573103063256848610144637182899238565888036611149025102606625338627791109480156442815804432829210335093459681604685466090303109173561697132816753101614051883842905432699473652264841429146738037180023449912191364367278098331767873437555007370620365404048471861367010259640349068233176257485763819835916696216962291824356850635267082164596938554209456030261688825162126355444503674042157512895515889531200170712915456944457865246260002791856192364583783778234162402176400431934783663254260339123922933854923336083920120114152489258430722006984410256436926389134927173779941692690680819681700388454167449297925867753598205056946325018592154046506664760566438045065212125220973814928436729367558828280718137059460638380413283240993620904445673119978360546708223179579780100434217075977255681163248742876753839689834128952099447680950528809596944296694613177924633098756495879350580447756236271837072581409894673041210281637808472005006545457646870054266658157560614954119687763610766979759498867636512174616995825138370328035829032028516963418701581393538254276347919889377504144940093240945191593635367708025229215076140318383286619923312451379397204531096101455224545829793163441016289294346979248924097908730297863814481024028033697150333047860079772748226473211785005883153929853479295448389067702510720808202232593624119507337209929851837922157487616120829212873626239957154123174212667908672253650961945397569603266102524201490401838898661445658986597888402318992100239155109169608001853305122123288690079331457537126148722404016741073521024735874173809866390781498217020172990258785737391125113307623331581121454037137133563557322355766549828159351958791229574800690604185235705996746040211106469854858913044842750666298574099251053789673028702257577699820289311802358185491283517407994381132020158343914141039143876343945190025403463220567495747005916738050080747918061330724919476775416375640955682132072994024503711057707036223287239092639017668255202269867051849203583629872424323702106893486467402185320053306072020102380636761217283717936694719780310044575188493250609554474390256600198662535551544471275236633618808527866927828339340723823941273969012464793734975846705466111248067553872438213746204736700389961451749767618496674038931610024548123082636159063320048566943465542288610666725985277609495420278108980265943431162069705341687922658066005663283927126266079212793818891406691351707424048575820134857426717094584410502028947795078855257264964392343671709537440906509413103482434345700544501686922491784064177159958655352291069290238267256494353332768699793997796663490476793990135805814525672783504448743558100450422838982589104114434409809570654212719439811733354434609200969056719703081080685564369221665001417306946798110459408610548759721411140628357758537320304687562948254086310339707721183635248524001289691249953777242166523559148041606987609397396082289872106978213817210170584627017569381904095706166737601605900366585540219111498204220519497730296727445274904895763196706177224694848883130427146140212252305982262594346921524739149334926982911583613080773541229399438274972226881401700365733878682146280744147395879275562497653988555706594258462166676611914333256133267879577020335440347249221368061058594455084288123027590287772615759413435634207909254696652709734598369762775931271616828787058756729482468905295892144564602062240241241091753839455283229452556300368429032676013488486623714494934330824261780152792934379489829810249104612754509420877906162480746531753967885684945645716524517461863242356045286581524356579203126831682495150706697420078614945749545845062592944826866277858048670544291185643148170008957991218599683513184152410933915435616421413967941989688972550896237729113428424873130985438848741264957241776958552971460358334249144458577893384252858760397653916194299249915659741483046452548426508748603572564636579146120591644808684880100239251595471677052736812557250655232769586053822800522848072405341684938250258547623371060655014528371756798499923405949381612378179100403319517236487837473673828433851864006228024032273620673827052274858440156692548191724258748713857415735343478133874542983138618352893732678985372764483134051965043543763305724213199934043110955120236687438204605021113643009436619771491326005938170231404113205400967143644274280441673126542880308126290937030776567547263772016680612933720336603489987776000819427563515472575317024153994111248210178467103003072685015107719839096162564477265140687890640047548801006074534313952651572513803916071580118509944336578163482500739717222603616087496609495752857025539943868957088255916805019094399055445897323951429059906099007460112352711032868355376425247297772929987843266198554830058908062413709429610025943443824187088773528370987521129368201024388308223577417937841564716763071608992135745010581042652513347352003564233037182004144203399668788808850867914145245691359396929194929744182161814866852690816977490465705494605877158980476976971252317100190518792258478773653062664575436954418914140738071446064309209731395653215081292017620125458382355107713459331014494745440939175527409550209603183557892472903854378458017510723577080722125779148302613327035852473157971252234881747199916369802819003848341127385259906222403239855588730130088238866776788293290204938577134320315597531912242117712498057714062877521148341861585498282874774904319654126390274173204121483843063498067942888388373319167790369384346684032889774167474675418801736277366353018439454081295635338699246704822998674276498295463952145764259382432778144493187297162906483770984524991378897301033896202104131319537428562895260246204132611486027205895504126432100677915102375241408489084100406738304209500823322115120230872830945908283311770638491353321219940453064589932258836669500110855258819518550094353995371988240617878307303236091825744207730059303194274667700578835143581982868400597146570924232487702777042637261752354954255057656871456156001911869581189956375099316342249451953413017761919170643275372258550127945911991006063540079715915001108792467600301474434629778483006388311658413041281831321776657347243370076134903777118972267957582665669414547542603518907912313058300422309431750817534159134514121020579719834532830231394308746871245562197666923897196875093140202753252707573028310760362043585208350670909148618003248699076021993695104548337279113712592311955795869427567094074287879882174058395304875420495275528561379337116495218926429251988466131291732541118177909742609475684106648120166016448349401877697554135304538552775752430356848029487749695768207068778476079118122500255180853811530623219186899975246394626854111636460428791810141380542486427506753443639828798604452838614240330710885594376441472972287834183069811644307415312539429420872640888213639492130630988924466086642438832743527510619835011052180199832125158929105590351315743317355038848822354270768944460306018046349282831212705416012726653554560242827385045354129420434592281952755984392957479316285097591276704805442583351707846124179667550221880895951871866318765681125213620536664013000794219807434843645866402170188563672182761173390165273545193729525417994629381722134413394122993363830143227155942245321760469938788946427697538195865867038065388105705450083735949797794385772733251677105199468801078280567232803509928756669870904605472598431754742598629145585858998055698573283092290153108265170605056269733598074770177370200784982232126699718779325932565997174778300033182258893234439489992310784314760265696281537149718554163975252350874399881935096739199754247727365539986022039072823338799407242851847506989952995617800754986244873126486787575631640720879069899417175954354567816491395196679937877374635416716009394353747134082249849613569943430255574697962762845702398510791882749711358305071562132497910454788353994701065724405784704166525037263736845367123547053690806313824094636185065374114220969221258705667982019730990829022473480001195603476480566431576095895545967395076311349272890503806107777305400629972102279960992165442693304853708386595269509497080942068646500375159054119581428922906040024305750415158137459527178957911098701006607863843266695649368775951558624724801270695837694936409014411322776549035594506232297779239216420277226192096299760975004992588207231715413571330789466700262712803840675113321750321993409527868038818262933080542847190261579544763213940207682013221996727682064299168205811472072897854282137130478114023787642800989665854515269238286731403099099731815879207781913930463166185927107399223265230382099926276013744091852604521168476297255636470123265069715619176287140508185152364646616137797372760081847848214165691058526119965321090727543461482305472840061886790423039380719032270382691046851811091349312704111018078664386892619472661601891701025058028430694421791652126440843370980607039263083486088933024009339249462141208688463136044191829714847474020594452672706544248044295433643314887120619941006457736356846560120112188840220691247313308528854512931373439478476905270981041027572050953872638143074088312027950730470513485935906700411293770132236242722502164399483157126332638957551686758695750897222145772358469441134725271884836395876509726703808779908822738709190862099706664395671950780001427167596593819188738935876311198292207156446979159955462025570382588205633671634098161245478793226379302019444452915920933231755087367889882789550566385293385788538055570388453579109594340630751359410166060824578673114612834470279252045546150974123240635659619877304965205766880852836297317077308033260076411157982555455508625638749934955608671558781975071568041616866685103241380869345087114614098356500505184588536980884611424922808657490924116902662284548823126970494365044140308818595823034382950755157542679920120102674658543461669756126228257669266363970039177468987669817816211748355804063659738710345422238805567590791644628743199795715259264250871821746713823841953588731644759944136900910087988353810672316798606274440526256255162395409158863459070634024229222994994263325168717802544083836349124419330040629714439255643450213770612575121207230827515418110560940336793047589167803042928899879835863626600719931029829782988403670077986909099920678691560703710244825492755660470454910845081886924452922414973084692738301905164129655275792129372613560001292125382659674466313625347280805608782821326468836283611696836928282874378936641841476988439382746494923580270049606940179646436842738602706826594097925809348025464806801371748573407723736353771283099004272341130199683772084215659789913363809844953527689799345626135101486692014913883635679588779275075241599736010065843452296337502825236227053300359104447487615877072462429921739464677255629436684187908269998706479651028171086777299831067956828019095284954548060237664306569790105390136674023488155515035605022160316589858444652603404033906072378917782047782083461667953305168915624257100298259700962401856655272618322505661377603928820942392817369859530846684759244682591055735841885109117801435180240200080109828154508806179828122803198071964560636099085187529907493207656413796984427977715263027294153014783753723970737954383352361325719263684913236213995323965997652351187543204512135839580898836652017032115852943978583712133148723390711832022144259249487132132166574222531427923212047157255397741678754815429345125578484410695864043981881274378810676785289317441164934540494863537789462464754911756515177575969314899643800886588305582783688170143118580976796030139400960285578335082171635955577506368631661690995342909946092062015514658777763531925887560726218135166598344901257229957846986502916172305450284700262383047494280557420808442534753384021196154304359303204655873666574556525421957298182566268919415213806090232093964497157027911582398404044072435600079719562078348541696835356108643894671272477530729217509076598962823001825797675054784886111186241503371434001939766895155577836404506082520741150980785802920497984197535519749253432054401363324222255077062873956751713367098498541146383255869256198281572682708235282355738937118706586039206102111229899266353354611774608161509656501600324147284434122165726181256769098670111324059202771903109482817088391126105936831711086095706753289336794057563816065154200826667812905919488749728815928845512814554635815559543058570074366919328853536686803182641413818971824724687560106134090435958114992129929426926393464331868265780923743662282178407719622489171030805605890878949566798192793831705527066980891320576625363896553065655431153548485023853575672024253878340091867482848031020380798652250736963357395490645456916710277347142570102063840081065681369048339294795066037185628237359735853955200224904839781626217580334659068505657496864833050691689968762834173063097272127694066922376717020386981160529368931693642944824908775346625670377649608954011124075950834434127455795028168478257428445664359115735754230815141470162768145418947918496501354018682991661486423380891406692394461448671667841059927853284312648778942463837478605036724228300877245969788325937055646311227466047645040012451541634518964841653904753840679067297564661756542342661264317226161499034791020604261530992350509577214425926540257212489536881972795243695111871527068475809858481341623737715696005946870996774775459633141596511787695971587478013610903406333674191359289620661167828664770279239416663277613937687081127904451647296254825619570175490525081901507482684267848089117789780576765203966089727485263004729360007104135388239264748516973374784121850666684777333792929406117412426455980745822514557873268842487499757559290520838365389455471198942478271169527409741645074916783158628179512533937996777386008129210925612551504047153550034922408264098320797323961759064488346528877563106267470141494262573011918513550816667688943326405126084095552829908327780985290177646588476204039279999818623728980614553349242411786428232575972377735634606944735773081397418881413912318914890191386347156627904779292330461535099660754189699695609256974501024057846353101978668515818029930717389426389846487830638341830813434220950977275871739215808867634856887268467748741279063420102588349904759211824583833441498818089197727306462362395048830024730302315944512692106171430458207088573227314629072853212560426280452687403602326682234398589846984255416823597437305538087209214679536908896945337256052482120854880808738124653779495259153451771368533429742037247602301545446747790153238276674899308218510387987317216566617855705200699757295901585498303944273198921159072325669721192645342486227424349243109123120419925290701312795783869890116530378995114896226890423144733997937304224888266259177328754121625966851558049915922785696329752302603015003667336408176144922572698047300281291416779141826097257886947859704755877669608341863261726471929308169805263100117484780479623989298102753525558391136261293176839850815059206477812894302798580937589714687993060318079575869742518676553019768344202221361639874966151039073923808901754570424091723317952471061405717755016658509189561666181086727154894342524361257287351932439694520367262870085880149778059884901056457998062908341769121301700415280384728197872763941193862252880078802680261455722413351727683008174063043175017331931912114099003810947910538691847464385595339600463396502702997191745060994167557295354344138427106288992214269038246902784795577598008799236363716885102800545271744765913810236891239478243172260116780789464509530447124871719593492200377558942024786844806361532552324153345495593816119459338674663129144309400590285800251254806257145293114250706323870570007690876202800080950245150109133589479145752857329584685440794959102920508719823548565481701897941950779206721119386388992379568673204528207852278756069440005699229759458580167123131888331169725210912888482906662372069281093543010141186589543474686305996181959057604843095526506656646806893285154537753774735041777135327986579905320587130880737272217317260698865141178583531344191977058927687450791595470592040719848634597184991338239970812021511158417393525554283394873241379355090068353468628075274983136076761315007307365182082748469920404127413224787227755025729219529140059034733392942479524699709354202715595077737761266973598312424555024358078187385536718416717250072177177925448699232302872823667109047758795303687026392278975851284519291422627410773856304834634366150592076140430575409638993941356597423539943962248880410807300656725905257103962307412009158577852800846889457964694994233462373348665188455639865279962776623598225809236694733117229923025941531131315473506934770550497555075780438839948257446253037384549005477130635361421601919185452083116956626618980217354711393333996513839294627888871081492910984519799517874084538703889174173474516614619513338458077028147851050175200817047787817168725750833428125248708472758906655016720026841317042655393805918156361251547872773744941068651799856438978881471930586202357541080834072848604620847486370068851530777302384939664511866579565967114092118296446517732895234686187711748194116006550792346563307940137246060166024750434572263353283721464890354535378630084655383915846259916466197067822085026723479126461521293316322858937364152811293405304537153011117511321154966669135155436879114347751984410551294223874032578000584690806152399235355694245314039172260178257229817660144358850204802227451449444125469186132051017535903081127155542278023249727413998991365206058485056477919633046405276258274515114019496292110576230598610680812636505554450915734548024857816058176991889078319498477073722600159560623863576602362794005537667118510406884761238870015725511233040798761009647316933585907029870211857965277932193955694041964905777185813787143753658256317924124547074647018247828992890256543076538860501615149126912167288272906633590306485893198412377947348583161149836434048411025897964125528066922824618459277182215934028601045460318205917206418720913153733792834967080323406373114628634344583122887146315260237910928431844681024112660819367730602534218811063211300453587769968891999455881384063457665575401114719149475046660103268332314361266287726291822545036812633775567973479289886485906881359229384231989369484239957483494415401762760724275766309142681830009191839470153920089612631714062120161297882691461628575211573823269867213746104266741346387185895936388031479991352048458666532495185059478665099326727604447164778723785674399057126118322014993652572899250318046810453957144022723994442486048704796520404620506273400783802997593657644025406987579094989868479675816798936947381751757403039041014504545635542081921049739598181474454870383831706986014486933775500654182615858963865054408604895395627637341518066606783743734673232709502978910625835919939761069395683797294310168555760377029119497895999916127850554147904531693704027448333833395006292575142026763760582181370535263558741923872428769293069964311263164960939397920973089880571017916623543788621038496105083455478250810215761945571737048328935791892095989825797591668639750284331272734193829952492656612985110547612489576243194469903754697723113789445778752356319223568291252700771972615263397536708561987708119288926459396769141368632699507753487519564189199184905240047041531729820598434547086548633473255055140103981923589454396725327863254944406626484552864852078649635974904412976248722867275773699911875635821402850088129228347161721725759339822600213638574738293074530041172684337489727243650322112795596113708390236618923140549848084026400646192286589052405074832571755920226206464899472356348012291454114399157010716441473574957378118006632928483710597688427008649215350351207106446341334262143404566080333583009105768103208330765807841767025968353732909038179631779560637127669030041271128704533776495688783978749900747854623765266905934121815649901162548878288687145348482087337055294205621539321070684519100095730810101643850735235067545465048010660963834828692255987277821404047753750217939671611357812165633060818987040992460508647700873836322383641344235812873600181566300584023253704235030719541450153518865417126800183812602108404850084235663178307318677010449430096743277367473124221163477163023872264023821551841149397682328338759305735858922038657189142043812204201609399622123845664392663432778931203716537524006573557430864081656125029032175166590027383539230901380545827327695615947139226777423273570589182023159100174376287576643551172188238484375289020488829660769261145402344177053244058269486368000017776306175452718244698247593679595539590476881330030630925929886397117479382850079727023609163147864795799171216070563612821074292544490025632074580195406681554136877723752743266236428617764627498932868877855843859811779506721433125040617533508469971798989176054845728374914322216952631961252163833417314558045764126681863305486877114386118454607619133472248936756508856863709439426533901141087191540528246091867875036720466845994321835585024708639221785472310131114871440197159840401202582836730168241984077853890007402304059615865749006436881002638382964586114091771078652587003554327116700367382769346386457402213732878061373287558042884761403486065877045801049554139914912758747023830308535378513985717494134463474428884079955504814867107779080861591277032518236189558281867423698248845064762191611052058884279364821143915438342286177570917845824252846475173218818045626636471062070680155665862430938873400290389540889640665927384569761510978784519022021146541960809041826798033810871600005816172474135517633643743583283770509933226048607360855518861122303519508410093556058394247254588019729626182760909305196718308194196409968499491837099823876377235200787365406706780496417943117324463968810430064179696312192693472784864086978247994793073943644203389158942274282540906054589446442681430352743970875328197777298562362430379901200367535341369533632902410331726040044298285567074700315956495577780586480705150549277809594867275392345263991595125949578362590068760765243793607204519741715297976506377050435420663170219706858127167555192204707679306935172402412544166576912428083781900212769508749290188057924879916403280491733500222135188377896211292211784833750671171079020448947420057510636377431986964293161458897437308353708318639601380322796780368798586353519737343420031687426336159574871872172669504140513382970065833773494314483233728015441783955791524549199123643521138619894047372193960466791679457983817584769674398098860938306543320306282262180946010763676441580713834954752736336109298583032499114209769079699070258971365378797054347886459880993652223564858627005792431813492422884149571365213156095761575595436671285607790730383310374543928246738139999175289965149495718314866600113436872688306090663703195850778587066712631261973392910794897008548208946610488425662859552134110572676743152298338659003333630852794056793596564866666811519080887514004778804054284409080125457653900028432233170354173726400441869147122406227891443844947298350916191040822611055654771107093415621675322443928521307579450807820380869221627971378438587522815267710499259961678376995509265169743533096282165158167997515089380064030220056149438694728996308690528385091927590159601491186454415750350145461169327899703603104749003666282441350673657754759984364233613720382315588982016219391762406109392143306638972451710281752119485035431925477474605077115039219806344873319610949993275988712033340301665613620829297200530061160231556952341454097008742199646265919574390263473740579357767279575627752344686523961429526867887887416667779520375545965100941164928726408439545861330765156753238213014376226880744255353879250166592385556843158406377317264003729267218661431476538752158757357863025625006947625695440790255758353363307453424281623855412848481672759538448324621342661467871827542398402622772279610712075546412637132600888405182790005765466750220507585719604590511064974068221150983918449187548519312325106748017051686783871875878572050335523988116273306518808184868612051015262519210976349422264721856594699814264556635665570878263992119499573378499314028491897632752356263814660094903394586645624954861656682989118373532562862555058302163541566497824419813811948980662198847152804755694848638648972916205610891070861395096060232229991747417764396950930709560983537524125646463586155330822843774868326770852330560757070039739094634059435704989321131158224251815831459185895617833446697620025200580876556715891254179956234537585317080478979386863319966127672690779544529748648821792790733677696588700480910040787988815204250277634902275688320601239496197005896953211990143500778041143760131285346393917371728549696370176183748611344682621089580406544524890182610774273084626305612204702558351212789592832036998529007371071075214336533728999051286505020931388897192103995014986369128996819876130813457495329692755717879325146925994226588957134628681311664396427241327807935046863647538344693327536200214068940550228912397911796782844892845824762096491829991522697656874898930873620020276043508109561900119165443960429198112693933761712254510603086584417800877794745972408110184241512377467213157103363547158477619787023741496699043148565231853103056869654639477047078960762592550154757868598552806259590356669608863495113729521894758371761322083909329567257669688803389188877784903517504859014160090323907630768904013201107370325513729727510023432347538755790185597982578757053393756095944724919719779859378181342118489152201806571416791879498230924006682624922243219087725558878368620150190989790851103062743294347901092612998457541428805061232658042245261913034367424455083553742750757036421057537444642214942821477149845332294872710185398013710326992250286150058216194497287188098694910064250911077905366355078995343481022863642060818932013497927160368634542893351423497121203202270063538519847340695603426175638115203862165294889282151927781946004297766367139839241245547440198321882647673654582058604224056615356242564119638318993032450777456681930725678276059061089447057619251561650634230427669913107483771183906496907661224644409389860500693972004536310037193133273369552608949322272191694726377249719218913905901481204288993862278912146540989277833286373282168870245725556750901876509992115048222867098877818006329159322478907171774920770065600266851507695941118657405388729417202002057848439518049998095432897323348196323891544749259878532624166728102354640368937400061650831759890164920209500262823127765319808014690210967667242352573130202448336491940901012450068446821156834490374622191050189867219648073228443090563604540011942610019692519030538047740562289388090122476212891106148287658908436460734427556083191913968781021046570790814737581732436631160153689504189272882130519780189236728394464499295991930534859584153833929476647328440143315304267200725072818325695405709262071484613733308960851450069687036262123414390443061417111225004329334735393867012653178720154290328051096686071019707829946469769950353798069333716236755055816945287388196713635918194389095282876414271475688437303420541167281758231185041070016449130788578932482687124129302524471115410597710698277782238968654845479878876691065523225388819266936889847302699264223812918445434538706876768414683468374638619428912845724369890683850638666219632369234620842133238114084492031061305611541644363379572893210403977017909232133830521227873297898623390478981349459298368222699563928686667616972766046242540222891579131507725993846835156883172424668199666006109408263623775921853181078642286362115680745152353064750015009371385203293720371490864401223016206828885597947511123416303351521937711138155994658549595510449077989025377650598523268589991751499970056336054291987940482047493349356268591953809104515598035374943609299849925019221321165210959937239062013700659540526866395807107440710280835160677930097335766586725796865862275290070795301831440048367962428516212615271212810343416013732545805460063726561714411699828159338183282058715953867774052752420776916458877941052876485061644297219658486795908986357831593674924184171594842706405798694237902682031904854660385440992788375350951138651148964961413726255644400575069056680988569048784134547842098636489676754557663966690848056189784409487970156478501796561241092214318146957334259564450576689590543733103909464453123721537517296822911962061171964404277066271769045312035064410977834811351959314152732679023424137906304278871271421133481331282858167177241250710555653511982612131547272319321635191365214659473413112354422962565342097704641895219715448441941471186640571836597385176201834541770555848407208967717693019363754283995439968781709653590468824537455659849914379648126654457358515836083568749023271830873268779466880107694202661353868259514360759002601891845354401711719361992956945294753107940580154889624313218194535558647029852247331213478095115506054184602093358753322004514277614368757549061663591834682170162216437253515328349628967323404025970840498281366030430852090395159844654942015717255841259325319492254271949964030867140519346575752234713603506600511713540286797510460946685277198848269378955369308906077452614081689762530516796793341245547753579531013447196240586233186659155854770267074778990926737963106247266599314462085491758024467123946392796072368408378227982400855670570548379126958814515840353263676862206328481903972748114411865589143998208227526645583696786671136490940315376745171718848299881326335326296154639080650627206069882941901053205065077463669083447683141737190102796648380606491918345697509912191325811677321475531524789828239851161947314131221665448995792172401980614374607629453153277993393186650132801178525316886179851172457427881414342221965807718466370554615670552235764268368094179261802033252963764024791703029408941275741764391907522677352852592789107605048884140677096463721636894587826507467940998383721041587887623033735069655943705841069644295690674106487302161581844738786009322971912485815681667132968568330252615643980662328161273812842510514858309581500696214118189501687598889904383209595723072527463845166504971777720281708607830026904293782028655748892255659171602759028000258059313692713147517936252593734629160897703299154191206931346086165915337886502729571946008717018509811091307122681672542947570523359170614066612719196543569488785432221593018512183727021188196841006242743718284141357922943549453430781583167774699299039440001005993725639816883116488178061308013728110715843148611655763506929589620299991540694662114995018179693360818724205699794564056628942060272064637845208807212787716055578681092613633912639306454227288215560882358517373900200951383164290035232310073646093440930058221991752504439279733039153735245279985503712036225274436108841126398693531330358734121328693233547589169359323240985191970928726557537129899238101832004151719194208880781579479723352126963513678753297957325104038685664536492269618182535893714494753639067133363638740579304520849067811224223213548623894833217475071344678743930163857300110609497167258931298188994710653104101244826971258937829280283788560960806967503359624835247394056801692048354484972123177174668540984892405769172388886952188761180082379366598053308164715618439846016443100802174034622228474736222544287879812695193365130433158027317878968374769970135314924484151396122631324203242426191172791206633303842537598019134843118377549173294706274820786159069583256304126964286817152527636646514781301793975481701802893201229938789414963113923395826224350834830395388974829366315609654643375269560777498034558793584236979998994201467981898295951850413506098283344229298513413961568126890974433018908374710358010340248871718744840601916216643038628722656021834295195287197439798732527611098929537770417477859194491747064554727998589575711815111805111625883109333122420351882259488037817323232035559184098437788563163734518408780485216074139802145128885713702060953627897691668054135491095875247341535539660163059995326940126332526284598151002236620901732485934042512258163110648005765776329736913581253746020432951705803034224763958075623199889843684499080886186200254020004265031505084344856197089027941234882782843201082868143709816019861599775813393132556884534883715974692372174419155647205642416074433242742878411141311176870753386916235654647205099361646104208829535682686829762906716807925301635302580538586304481907108467032512991291274919765110505686097425233359383124992072520502253383667617788671714783724666205039104404512540480884776981480102095929813271680705998363492030618906039682417163801789334318010490295276588310630619830856575793276294201709213382085349046375623534261571719232219921677626694305537020124016602714661049344300428681206492019856050769093128004441922273692133507101184598188583980291452205880097937802097397736200411133687452411920501821733969544416609150417359770037674971819978313861925516824379263837196180829428877875024270813935651393632729647082207349676101128518164961292412079635649637552395590311847537103759473595655590841750309617492703961709419408511215470055908343512767337010939907959237381549620763805225373390906018707332471710936533520163493795450796830268714412512594243071155369281682367464534902531935295893772914587822980886394188485756373126482756750328973927119705315687479813764054773397161962960107543546854932029766733711039589837479937200898192123170926052597195049742637323981368952332475260900100591270032048709879417921531251667265570517621800263166311647830911033638336371837827937907070316859256183891502382073155609778084877171121729459386008295610482345617679119830368413704904904482169434181471712573899141626245309748471047824705770496421701180472541792938986779621328529988665582847217149608089496497874033431105220347110731166171274985262624394371133802605506050160468888043393121413597757807691041881418101829274321416506490794275769865509158452803838847671346077321353961038926686629973339234366952593059742810086415371111350623091920194103657328501685934031521373402962353874492512667021202156691029848990167767771965085824230589981518186821762710034746401912269607756311380664947506343834998421866305779381013329265852017587502553596089794848442782876061952539250165802215654990574408079844655068747083814161321981420732313861875773719895299412058284835749872945784722097162722702668784274998420241439513796101354097783996483986852429749577719751819123775846026482219511509484664331964314425419854972175074958818559798039980053607699023827400727975636246017847067400771769961770995127254928570164970434630783172820000010138296145357264661502716185676448237690621800459428259472884335767224399954307802066706267411307201154601930727048817877859604337171559153815759402852542323889885834606247092663642339171650148717536382541507276150364291092959641119214575244302225358193624416350143360737968167214196613869812235853407996029841903063172928709017367634458400180499772573889091116290082696103820195833086161209562373375254558205523860456928226569744749852909819264378855754039164889584662281586605572106526874981789740975058848568400501352960651030051040602288276599023718079269662437018438067361882545544842637139987892026202783229673995407674576807239211404905285049866599391856481785223354770911977441351763258055821199823641666943868551629915476000305290816473288785146858356504284666110128947241187183871520147237956731992109075158869758872008117913716949176642828397548261629866045541741921390888753408318813035653828166527967292235154436159620672302319779436064757640441287397269355545212654101744892852079174885233830311727071139341611743054994187517199662528446848647467002798534771204802257773060562410291678898418234608575684282058878441874893754271683536704477755591892083815732282724896005882798847135652199189667454280301337393115010469168309842045431968627776284775607477164289395111056226958009419667870873484284062326608375160398100011800786755869777949331134519475676121374893140575929344562811032008631682223223808764705640655248405511792056314128253050293480796485382708608565729873895567076457161043076004275849482329371405493163351061738142065884988967544018172350795996161735627297561174012232348274416714623250694790362605785911474513660123955198584694849292600301370675503743675849118477721052013288995419761766978751203628951750767164747106088873270282591944227017529033319852379439710585514913368666553696673056174010257586409403958011433022031987763749678546159431744457194296640242671152457259443958900613539513360419070787962831010090821927535976957833541736734943166020439900512100072537387166295305520503081729293527301779893149974687413922595982410502373105808767840068603212576668209637824450592281856073254869579686114826632370380586158256189608292288872629750805035639569771129966051896598784304934740280115371023276389901319832934644438734383869240763765261518194637204082698414428483332103444847829728432773634563058867578868131925948939070702376700389972180927066362503771663666762894957510053695333291981896184185490777248315158319380564807866695323767071732069853816925111592579360675405401027818081011444154805368225409707081274807690780882531525838355778049454055981392012965481110050385022374358175204519351612272996660305950617412763800083827057980449877260191754813325500152798420367592604509807226213611827734806846297129878573496777887420942992174354048134553291174748379473342109472212374497368199395272381771244604512642935233794500358693346095204831306452553216657905878431305909322100544528403951391430681716589772415022198292517116027311946331208636837365339883788978953581756930748728912438976855809223516671112690907402457792691980013945389966412070983511684445315772258937914750117442689101476648413802553996096020280089957084625068174182599482170946421608967081250722048464348301160620650943358108010562558658899482540951351113910479651106565406815655327197799388176989283815609195784822037097526480767797643022904554989554388898107662630463692771340746099114604958790296055162924672439879996905291357853535529858987665999651597032121879199405006292346961574718679641807255435330824605619663305205529437583777964189859190705353997140726191173647582725533854020223972551059474841384659052344090968445343613214198058900601816716494795524586509341788938243605566180561866404604548113774466846947471577078909704635144404161779261006626164861937502968539984100552681801003754520759443174875580091731869311919052285580368758984755088698780228344166038068024336473986237716049804095055856697220954026892111114286053244842729283507203982971392990750281868956531266514492351240267639735994528208790537682158825346537784777805932317948883651901755305934739751543944347925521176217519444178414978350468516715114554303990743656405954127326656057770715858755653085518452397604478161717673645291153065425840906674679221203626794517107542098960375621562689827257927090255821492383380564006216429157402517975555438918126296456655558433776144892284318257166045422284112508270367666537371488486138008356311736913703176408381190877206180733550591351132760073458813175138547726325726138871666378963837454820672569241583930561041306835236304054890403349815402638909542317381061412144851261727978995598683039845100401540828734277829010772836126283137680381830744951695686645140243434291151013154668954041986568161980385193156649343231266102015916075447148425842750929307875546063896839129197524229675280943499978208208040349072563017282718541594066859779682322355654668011856524768490743624610108200885379549646210818386128512271622224144953461080703559329234061297454558905966300234736552587691953225588533573951757392052991293451212254991759724094308134802557864844281733620727961652116818964590605972196011156680434097161992619304851549110054892951712332978897743467499527038295133851742834552552492466150577437663282610345471797249455739778654486573685917534171594682837633845225067088516420746342528930243096063562358134459025476224553513593349297768462148790412522232471134204123293284626788895414951561158558546931097147149557382754806044844073936794104590814738921770922863986970212587256443403852178134961616098228451862756892057736278888822052667817407336978921547660410374626198857683678972002627240920946195535305188644632297822545943662031179480949878256203025380187705896145736639119613201041974202855655988060875223040934279461565349631066935102458518062543788879781466867651891854578173336014909825758647822123337927920954445590842370067107199894500904986346513469181793433220410904174464509594131855543865183079049778256656406608402533474791452152353886805033168393104714331313950004045424470724331093354301668865624384322998130079600570744892574279524529126087331661695052017750154602937218365601783500338455245354530013917563545100268725485397433998603601679130917834916313493693850489412095913840267127286075399214439726388517195294333393698532543161898041811499770686132039030330929507480157330550116406827427455979737851108505574681269344382473113376276649306338571543976255344732452616900019858701268231330246263837254331369581626180981337882554671831910979310561125014760529919779055670770930880726249563678704576470141692547719266656206957565593204566687122399180620331014677891024414885674868733132889851868010109667836965633392608328075234696272452971860093517583355772281359237746992234752561280661769670272419034755806023067846788163597544464017480454728178051878244047431492940124456899876970964396369097213430474041087331806016010743192075967594769122047242729735482206074766789937665502674215778869754105118790577429881046012416267033270542103099001481962908885396259665645438146065576955725354567516781982874392073397784788570895102974314032694010258058759504009233795386554187271593081876234887033213496070533264072159541385922660199889259087275830196958762467161179158764477168760848772054164640165014274191355098649886910604318791205571448763443727082384214931226508869974588334129126729568268611087543736701105609615249843923322099291472921497816844778350928545395223444590166200685995140340488541802946136052735123737805050507268083134646521884546234897700655924141249987300710740516863936382446362809528930960833828473545240540046028536921475410834104278291837731365672136252414505624869634756542198036463258085180943732850553272975039741660420992531573847504276741252174529872730299151494976096622796066118116442467095357843606504240087043361988884272870791904851703977915945498205266840734170355196862302203644136629354142024297063168258837520640047786810177315985453146682000286144348031499141567074656102615568293174391559443059441854647870062811487799341119329723214905175281893489822796325578291064379367534328233764662903940912037457679063414270445025330393284819467804443152309451755956416192759325487061139957966991202306820692452057442437165050370508918299764510624154842697820043736710874238443117360069776113656570088297584907524603092698580575168804850495331825294176372102653808801540283685470912531000779289860793195470249903326424881663567539797354758039171167941024691199870658474571695071329912312638132123362063772116601128071179006285944716076755031351958112795898282886816504072372286033468358658845241537314232367064036718158194675022256834813546201912475205358188661576276212261779951745364760742948717794305576695812081929917185737440854189837080313645964718852395387126221327175488202327805885916399747650006789848186145639207074503820104409996795004228159719440073047386284708509357989149396045740702455109291221858174071877593558780465437339452944691360787270830167938470320635930697678095108320647253797924807309754915611075320850990867086255866183451192574185095369258917827045629799051268850269429441301666156775166108264148331406237410611975142299027533502765383025167514792885984008049019225326697601458930236648846324462911024696080923415454139456974924666745816446317960683700002727834846222462180410084211840811812430351768132244183265251866801678479186236239535072826450256805798525386739717229748886717996781652723467646365902792443529197916155775552949342053489005852762428282187239910728262407969461553424548934363393650639090812196500502140948068595161001031771899393910700478828912744172564252042731205310572579299768332339455557554269386815308952709577245518305731967665054123526232273520909260749773945710642549472971472442337779725215111925506401273567663221377610629075404914383883077139029942894020041223697146417996200618905759754018907482452076179126754224419776869084112168419830066723342946613679544913501910978811934777898544277647400354818011617784088782251477629272782565471895653784639236060251549097389571389526032874018120661418828215598536040321073835944299954291775336179298556913238941702671209560024161140256566028452660565860811400283159009839123097760577878950876212244504082562708939115136893659654632107084930184519245640648163813918040082057652468046256694336449639551740150589320617468314726976506835667653545151622909582340824803730948599793602032475820553453699013189899445384824782198306333466201064112654988399068542208461069077593454740472283845937671841086334684516844065259471328564790709403368736874276295695129775757497825480919542464716182200074986168309959015222315096135047820496298922850871935386562779068098715534932307465877322509497946361685481428191935871933607367479786858950647843040497516926043383693975122210219212617051467836609173284093650045763008564068485076206679641210242685291000767156367218165147573381623021637692715313609702294893873112079963909819206236583342293751238437547909388525660608883054167437941624952724165587008737425344361510199440141797750693771969036515696765481197428835906084506266710330886819673610553929685149711013885698939386477202158464401584011650029958271953046549538532457117156654016020562129470859663269576649183116507145355956256778640441902179656631287851765446570387849688912614138866950087201305334204636815558546751894609490850587624359373951771379395352422790649755499748670855329843697829019465173334372015858059808845088992213298113788096780183903823250000847163447014411739700565027862076953718419701984703876027730873559825744431998469812266584447048313447047533839824942886306821269289883989684794437523102337121838056983202355260472860228568945718117802012796376879764761065163514420335850058061597427515775167817620223289651637855999825173178937110722998375031370840723714936217645404706153900403610950709193094769716604962474406949976749496082605426870427576843111014775973734619447612323681711097321319753833853435565896924836601896013886516816978072072039409973484633707809722640792551107535978149435661731051774754403125334746319478993417794420181495730787864998707468910891000036362077291424392856479464273352304373932765900225657236933322412488005125892775023245458490577192585790482489415865856136870614678272366319667033922153494222349087402437486129761005128638556558600240945689387524056062092376825579127148196969551947540548673675644544652379096914030411541891938066025774350232202360078586713329550359474610864905476795695320917236483656232397551495380830651626170881889901343146105101100196592678486614352321176646492396547984078777437921292544249012959340616616006204070705282225559695185694365854830540448890019147209467024314421066508509593201155265499495826662400998788955627733261499666370587266287890410870929156099303755933054506528511606823540646170787074114257862769439767784558183475137758228643227822530575272469918652663961052676059443181768743126666821764845646347049443015778322110744227362962361146052204377089565560931774681242817880926439399031596705894688380969580957381106685663785829042381628906476049776153322525394118446412851590300524694904951498711712966240593250048742013785750360827480327141138474700317707759590934665262273935751423732679960117342454281604881566652822453382315283576872419463253000706973877800659673021182457252775971206771752043785281862026550232432500141847188516557228533461699012514275811086833401324009010576646095088966601946537602162555788206841152604370149278554551351120505630945661877554529859655751997675986496800322724187141554037138380765384816756881135575256802606675064699529696232007590610065792595383530233359187170309243025253148987498376360420646394256598550475466368096414293361411495989883208254109795778471323751149598527579807946304046788368152930920612507306890830109194435647603387746318875191187133984997961085743635943821215235624942293116185260619471238620244541400482787014882347994959907733767078694276397300742589613937207945049380884486508157288585287637736911812541717280536857100904467251705073092452909199081989432750607371244254521589653720161206979878988070659696060007173507207075073855275551196959333228675352757816406901068078820767285278255518749942218697634666820331682088622807618546717511807746116237654780579095444719999152395885910143890755059865716498488915097763287692065173574001965884529694954338244682555027652770664534928555551732642574777055204903636089716497453368892556028907303461472628827579733752696112433968986135958222769798459165704027362093418790462562917352990543261947112721433200416406342187161904838169712263459902947187350776681906604313445274904164406819557383775851209754123267958227498595592082281673570739438805115121801052831315125817487200692586110450341633244223281941616530625956083199553259746669577647107870073817759038790898168577748547926497129246687861469332369982294177641387418911452644582600268622418709988931491979709986814437991987966138686473851307297991050996567096191234991044861795316947401206078566616051236645939741114946605297943824747812811848633834861716912461779232893572625819243706024741423597386171333042525473750311741834664963328900418705097388830036423519839140545337587418932067375003569646467925183571795818580670001592802030426680017020309136509973007416199318058781056529486152173777183621824753491943132424910121355529926519123880390249896809977550689349689427479891703886830423168906502870155969515238984961655538142359767691254546761639698920528733226454938018964516420801633019028661630468659227244924859140391820163881712877441305843796773305400444693272675344488267236467987748918144458743623682400276090258878414706777532957572768543988885032289978157400984593660158344356375666427833470520609426963295221959698898790243895937004086639436730547933062155841669119318276636613779569482146674356639428243400269619183948990754184556010302945030148876290058770619818271609436374564095827736826094465697255084863598282233281284642912256065604874234427307197074298751231750605165527994247464488735162781711353064662262395620339958831562997275617804161126956642865878114085391178721945267786012147549309694938008214044949513728529973190516801033389893120802698546131377377873558205892305704996265947041083436717813412651406980878829340450018501518429710098691535992408613628741419165705878875557767502628961216843098588978929697981330258081779959753926579375911354947987685197966972667532154687010153646564692354583293597990957086782080044971808824327331249287361308270193539893203809460387052789033311651964194215175030988441236074546413690055061098645971639714479494004976580415913903102407276905789399284577806784290444214389931621402444923310239613319392636611259376332614424801333900496115471776458133129778950855865064192398990231262220334899416298091644939249190111052550633430864585324072952062761054829474506176004982474696042385281438999219586789602218723348616376617839424193479369747447827122469611993173301526521960689034620317011734324996867024727503327905427758014613768108221692137038620075820615456459517746366016576432257928309195601691559432811875308323319648536929843943460316745804613244491157306844668715643190151497353467506242278794391628051551132110728423459099368020422481428550073898790770653274916387597392953317224473303308314819358478684735812377618416828633509365477625475214756921380771829404038826837045485627704471167260587858609987766474624613261707939519664401132664804902824005612176946258751792862208833495507640255619290536794463870518066660805185053119361161539910831103117039939954874730133509530548064045784483857829070862669479896380677909566341441085978730590937920989132236669909542301622783995934713986314887241785413858100267037919323124082655469237996741900514409711103131645884324111197319104705684341927341212074924103625886276162939777730227659602414381589107261864874596936760599351798364114405117847483730547543616338288089549551933434776513456016073277446631401125525721404793382194089828315774438468225690263719392416797843967342720652252887645753175849334135348080423642618275883678102606930685208256677656075234828320796862770332282687717863266084221186205532023054233717241727218527744188251958650532443751346683351999902093922800344271719997409306828528636506476254943140724587468074513403854562616005114595287038212518548626408438054675516073406863524524390355895417269243378890686756247855757425616419172413691346340613186048866451622885257917659792444501148388799346505527023265815502966396414207191350799471775471185025028698189693460388735120860124829990090938832111361422227315251045010629999816070232827171055592753350988195236375410880207195876167209468682552154331193274813967405274874131141500850814076437254945137981229842187134961992062258159290694701790089255098574190560087507007643561438118534144016596559945374727425868669152991231255698411497770212540131685015814821869314960369292458219246633883716224078525159719331837606144128326590576364042132204504562113903263087596138594268942800182107978122797334805746622337905166015669009412421637454665974789854685875121818144632936698676945683099754055057561278295875390052343618196375532161268250028367771414578973403486694845580190328548802993297085560424233007563505515531853953230341572175874886499012750655108443591496119251499979961453096034277119715964995888760302849279152499127631959934828451450723669100193032173839221541220722131000601074331296177785294163337436293925671445948008769200827846370005091248299004932035772570402592125189744660177854989585839279527721231369448491798201350249110074875158256114309775929707807896787002086619233903332094729008073231225057073122598460404349515611605678569183465564632430412504986718578467136321962654273851255742276434725116454131688811113663726768116092324478264342971281684305225401983430401512724320946547345638951931388308348118856218240495998800024474684307058583396493131261977475514770032476587356341576438868927785852596514563220168411353008757573721379271902894427359886561158893638873196511998533754776992721058661420709729123169549568414929100426791281458414504035413796803294989131833916507981070351143669695099350045707743452966403109628500004925551078839935579346366960519059310643860205602320413551584664323974601906773411877918998410907088487359064693464136261331166325712428097484577360678635788002755126016098378365314788763225519418371235454741685242855872884846299925882600578224834352804125071422083102683779487118393027809254744299032688816727100408431164931742839377588368081109255999223106045947875720883753122085268636759375977152241272434075401108317653311197295992597131550748798732620865197716901221709246830978125709203192611593696005948525987896498232422737116511754123130889596684232525167492852783057564219120493851574411755856130610096212787238824790960509545905127787629459206096035416155794186721145204287584610109993579667187513278617347820009195768058408268854040024288692049894544625237008360741310371453915463649241215350882978815538536171912506730610107714664547226352747713276278133695981806292454431284402350207478727896642851867513336115423939931222689902442242377037917795375815522486089016166320982324084601853549954023131479797294462064614301543199124374665277199563830912391019895367736794525124535405951433362713400750573026373666194165301663058634248315120746843100794377844280134986542496704851370193223067857471101272400277656676540297985683207850543250373253600398728438486156212976433552445675143287519780060918109006578481201877740063233142094302837035945910561865949839425432782069261934765014351116044789735689272836233237522272930689301858293915068338520274395676817441899621771765179813819984667161200940466546800955846266748705283244486717813868234975742856360840356605330329022812530894243152492562617218281660099344277786591422053431636036800025374826606212332474067639643113342675279910698033552593622107466937825866200825406528672881302173389723669858731607389173223406884264558445009979849640657686976158467651967600623496060006520311913064415861610661431802957381585656391576828166164998403488494262694737098011063023258792856034400940117523746940149166911498313745748427190868178281768919471352219145816331052360262627747112134430213249111927383122366707766755105748896722824904918784017358862217415930513278916656166751668094061065634145645749745803743412429465841718042556533115386278308161786239422180380923899150627879359767460075377389684233837493451226658709171205222549438090815560981128482096918296624719428285850512461447696431071641555567354266633251777877116196972464902595182301242428731740562075721181192559833262706932155489272284319271209418039270097776429379427340757332981401457697418732132014671345220115418192238695406016835615567435634290854109076610396307458428624583175739438553078261591418706773640038705022513830975032630728318962629941074912413776266851293535067981591142157366144367479070165626063734986164598754378789179820431790876169903588502668267021808632220064369309808548157768175108468601250111821491487845956214628428622432700928438890874139256201406545007791288203999317031042525879573181303889653038268405178623448662124197287447993086358288030270707516336366137400436114456098852291169067740243700996455219311661476347060731186890242021066665929818597778486922463804151795104154986198404422861553188839497473737202308639330023771449193246293214177909486146662329981781760119969459223260472695017986486254078689244146461492011783550687436024962528591555452347054294656454969196581037076589523875082168843759272610745883642101617038810517788308958378805757047811429365487612317555669428853826398007100458376528021065717812076699952456962815419972263937832033663560043540198355580002896441946835230647422277391168269351528139061528740347001449732050268773714803315339562419114174435151235312165675552962611985063692697229807635291326590978589682804312123754988514823315240735285293473262420173369982311817538463680413779444623592621694260869282955295095539406680744446401073751861360656440194117069989648047503790627766858399504895102489110580864429774452471263332472000304865436469048489388879199254110883017086538168083106848960032214996172543342759905154238492725050841236296214953154966489061937628736511006739258155011794869002326926457948401471778489687874829212755769538616015141706203931776294739335241334558086990584520824844331610652766149847569547270720033809632475399523612325873510829879238539102321881315664367870060871027328203502015312165269385852715375650815556651224566174228627526782298009487904499988033844361513771757068009412428672708093732528678721916671778704929859439623856402578188156291301226051835731613205535819507110532929845480796883219284322149374422266651228491675966120686373338871104136143552280549559744364109484722954043712251307211201042252792697200419027717758498158070169235137074965477528013278796593401401696851262140344236164125244349919937776842089763360448508673913993126142546849921335203000964027460750911923543224818915562534725681726012211830784719982525428477446082430079289801275781519073834333382208866785054273631304748824264541695933978937319001447787365018296392029904412094829653250913045434837729601256288821176759752266224924602802772151666286515438219629045829477709615508875541504590474527239409782093417082519784266695993183812813312689070760490047042738863484472360908559235448568044756288101460747338155698696845702805368466527181822781342524242169032087247406204646460126987490323077062495830420189896066061911464259925825471375382802990873411159588928142343378724077713139891319599511102819471215183560863401994450452560430527330419218809563743650696958237175366457959412455574615169472335773245228482068947377189033062642714708510288526817418865110600250913791747282355074364644628870915570565944151535406489776290262821028688866920953373364636957548425042527162277183962563715246488865901764207372131605478669433512788112853331346939055413514578010350783402090646034974800514922984866322768314600928194743088258247538720012093445628987646181161023936789123119371180844307974491505258549234003526686162085687707363113067512716610450715189641828757619958259320547256668721687941316143915364235401035944053637619867644390364767717632392048047199914996640870159506017306874756856748434447008565874881118282542656836419653055320230518337517529153494491435021163314323411019640374147212187074312025237188094336441989720686710283864974683509291334100407336321351855412554027059270647970170330265891270886992478828636347660845680699629211419630326762315867437397414650988219736344247229932841536321625191664230167225672343182924201295283880645647350940623967347596173594380262966797227541617461418145222059430425287645448476478200574376975418040978917675267398151911196163735155949429108607704703209941782236560951559069216804085748045783959573620610381943000108199024781667383271160502542348437667128004614550836959652575720616196338338987013977535610293204600108405865378189796499584655476405556997070338307494891182966472996877339792432217356027389313474753498197218770775040996299597203387338721184092968567602424753641818805567046790428932587985829909989947331897251707539108710677879050379311732347410268518905194813105222959176718727897048445741837104509818921251889902401509580522722968134623117820390712125664150889946562727525590258469256213153059830292949063764018819399077097169978204761800411406815756144097105069577210785117608439965810004999321431896304064243338605050924005520773125724652506360160398997967985379314705130843139579008284787017208246327392093679023715837246724030296552582753854822805674378721355044511215108434015940521252983051613365429795015091042160176167742839309554840795577377384918997245813108459551826889484752972154483891987703260116809859596705955350365774457871353537967535629528125340501306288817218717563551084221951240660963908593222484606015248771639535482834359863878195219043285534038578970751726414798172053573664249954760549732207653099962187825081206534449055896877855486544022955762498732419749357751804394354587192122934518514622397903390867814386637939947761031490509360978880146042072212128614293437813012751469117316117458103516853786097068613261185378600208959950678245774588639537890606763862065168243614625742697749077600590809235805658573502575145791167688682737712300221150600354013367890355733327634121941074559110230565795543868155927398739433700299472442691019749875855534288721312056097367884416546420741798968631345120225074368668478858319826491386707519279138158206720035179623894189996853266011507383321876008427478217124938863304536299627230296807211929808959018494683964447025383307194989163885133685022025798830688238519715424826807846092099294923827472870645314137411346959253782664058676281521460693165141722729979885248830523877381622665854636784445668586717778355108795027966874684013209866437939098428505274897800045591442092735474207460639851656862125240842024154100291117278763210628692833615294026278968296940384396667821409414675208011129417425710737341691371814840869351884697182753612795252465470383374943622598207302881063170700746084872156415742682448550449045678689784487514711981935695550990750492250987185108474314484080163785314973476332206906533359616769183985068482580816799788827095526631907202827744379153852241373908478973335762662761354113884656725094964799240901158866665970558306195170884851914189763486028067207714390107482453777836224248870959186412942227846228945804500250347539949514971563751823304381396041082233339207856530298204029753428674793653768737362926664350419203265351730517490646576758080892422837741598472229507408001362856034104618352341024813368981191789765367039514212304479397854267091596165682854785806849745134210382379977175924814940738803333077947852060928620383602795235319157891177399448966521474025706271368775870846757997752871680576391624452383137981161247255141773119017573174824327749641381106350741597268222913579218213137285070750738741018871525943574182955856019396275403620428250894770963346210842398982939118648995925366846303047620607335657878136503121895114397351691642593885662575569964634099788247055566008913981928226012895175766892189134222589430260723077327996026281916511184983285122267898121339024855448333625925669288547417180547686039469692190480788925286792757267915304778196793291592629285028241938126964105387727140602747019713351164962187636433889757469236127773968169825944222219969988181695763604209784706513173881822957108919002618089585264162655227401941170920998528836823135050364585678145335773667413950770939037109277225891047509015376713389303432647181138632019177668046101736001250429876419994686733822427192931009607395860931589828855900011045724619143096386632671779371527142432444286483178717497509973256180085407342068254859424200654345478743804865765644041386580710815447177034636122324766723597359162911237010456372257896223935436056593075321367550159116758498772726768272807725216472231131663364664181580751410917823207597916778280663482473977127103707218756338914232787198946752015306626671539801677821057634107923888926681827482085873948485150764120480822659081442339247511022697565232851783218869196161112324778322232225471039190492003627827364092795023421023485139802685578417382138827594589254954289128062945798054982418822641781093528783392730140855884702598559226281545869252806218681844706850842995612395061674860308918751771272227295269272621355313681463198476727637585813664717186473391967037892475397202377705319157752803237401283071596287466264503181314002344031059773860535144421055608379468589255034093600466021869291305655608165799114948129247721650095437394606807345777465984367111731620170490275252128395806576049932757888388504084604837097813828746432562821476171993439409016581404235108396858443204585383410406769012761551746897169776849013515064574292283152424923404620764289380896624279605275453571580321733087134108336194469858320361062210050738431619248299151787251965101889043233660137224455798283219924749894436116450132871135332642579983130624316597964877289970088152267432047101304420715178734373678082768517971639716210146824716060605036886398228406214375187180388466446233459883841958244550238632231047992117602893687114426077717027664344084763222422079433312434084194425624163412528379636846952512929604847622094762164950247103382601324785237061760338292612112691429473144836317152153411241981386721466216332598220758967122078701637511989200863649788531624675663931806841205019141437996457752082369131863687348593417677656660972437146975058626324799250388228227254842931688430252130534279032330352031720254653356738155073367632372684212893795828064913311950770535232485390042187949823040059872211874138537783321011879105877825192983246328231338669793475540042816233651302793437201857178630073713849826775777526188901632654203360166498760186948859530484674927871513083260534425100426953129728701271703513381304011770461153963822427511888032488366086064414250589635240271771824828536400739307253460464844266582361491497303201127488378375956776215779909311159348429067893924698558711624792038217975418337572239281055236730947087132194723376232727580062388073918884575408418254693419798195034197114663378837212235801250602820511231667161031661607630354212307376568672499900402911204858847115856467315242763816717917034404340327461908387873516179764212399486519863684357392090250595750122995770403857702926698376262503394716140349331591587528324152773581206033408272835593265091233120024341510445306725346371675037195998540482199517113926410577706334558790521895721129827297275167468201756171606472267415143970309984281890898101308034334509846523908141667768129659152783533376427329302741672604486880081247485325756741229045383281982284437975907958824575743540189172204298700821405104740125837602968175901528867054121177317765768109868943649765632026906028238169959529956973682235923510044274306024917711831120323429877729826140568613146176980156367525071395680219385827106885076878979419062070495546519651703249328862381120987561117009135129839057608414180174269361952188736168789272975300043240597648951114053468770561094278743713059167263797642900563795454681198452693876923288477578222518164899370741957028210506528435341582614436861854314007113209650172070058452371599854511390343530100698258375606454362840822703190671557837496799599306441722638983930375854604104895762661841366620707175256935513102222799310404686271264983892900033001750202580003703744526226594413590832400224986185718766197981638356647631779130734835319793004076588440057169693110338067277006021024185773537287387719674326224400145620246635390170607002320343311473379675071066763553053725900458671767337362646137376259325227838002373254694485483701643189220661695219866871873644027743572683525756070244850030235935297645075475017107793491391077747004084163078079720563244720718345302330552817917297028424117576662280965158240744642119187621888018465377261408683547105264028910084891485418111885682104176734988923914906957991284105916514554491518513781324066267503846459510157555032620893842836004924319461425375710032370808685349852609587947036668877983662523588405151589921391921999098509834818189978607454245406713783904581062874910606094217263246291002677679949020508315570872974181078367233113116619496729741353364236412171722300169204094714841392602949440832780919221337981974786818707002559281412415331180067987846075884126420404005845453458833114566725354039335022319766009994306390314793149622266501470889074579971943967544942389417475893104691286308777278344893022228770514088764517981193239813612828328336200296992064650292970069935424777860943064726841790660106061673996753748963113097675500854693615438639475987047474286826926812514703919222254311887861101542536525989579105042091222720601508644678398942304622262576454180448605652249010358039776232557747279282700495846430403254720093572740599207423206994241677625256312775190473102571143832628730826115787840608613245109195857403846279703986876269565924194701011897596473013604590127916012380710840977035807010701540607824525269953180622146608989531051050976017237316291999702964416988005980678328129244435843017381312841722577536797624435833985432570741816960053542420615481877560051528569148800811026982536169570224874304437116115302585432441824072195650419520668697813849699369918128118009235503961200636063418685462191668774559581726285328649964911733742754296169726443975186652139131241239834992845663614055048274545445611077439202990367907966137386354696433664021967165214973528178071566382841669428223011383949808126994867689137530715057872898735941262626915998805569936814226632345030627654760675473110557612866866102458244154572999073253848029776548790545129387577906986105612823955074337356729035282678717060674732487670559483554970831370833981624963036127009593471161345065561534096909784194597488421589316235815043773719446788543814074655824931480939347226849358282633740291626479908030369293651142611988676874387883355234896988954211323270350343627883147696063539104668425826325081314334398747244104376363388597948085481581072986932142787414561285321781790663915205932372091681378791919005825505560424681868212046414175226052784459775569391758796787597133865471717003846320337869810422446544911831161800785586155101827526946874569818094474896537259389555095485056755090401802380844496274790434878767464521936263082157467813728772745045389101553807888104528191680117377767188090180039780110428841301415500416858758261629127268163076851556380579754021923690015865524380478093423145825906557345838312893295193078852518618320005754330016601329156076311740917531902678916945107294955286477464787572755111235667813877832065157536428429159888656765676352074233897653425457570653422778036782177798281975327468714403107669277004655282310747713942224525446702089857557904978378007612194604297537830641100873643215536221696958349880754448349635527521938286621325926031989637349785947226712059315982299179503224033546506888183884031987587948506402808745989560518220733596361302395844058825160987143929154518482085644717694496847856189320600446323246037712163250029172386984477536806598694902145075785006038198131552245471602386810162450846395611883729455580657423517835102054573210709432011317818267390237694412489120113579856829781482392136668716276476146369606170688088129919065077102789785553097393636449673454344000661208301042322646856772490628466433732738675725305758012056396698544135563580722778617770685120728017696701498708843341476554584966097616931658906517562479402819869913212674422244332186892260836989067205720813644094020698389567178282213207502563981871300454728200405382835597719933695090648333487821542373903015731916147051704293151545802728041678421853901116412371136491528968804574414651697946288380316174461396096820837086798098952666237517413057316385964810545345751410503233910797470275118259946767524124618847469045513124391761972435365678512177119165871288151448445173029372478065191299818862570361303366057339809174392907380307592737105722343813072625076086847748818700260596311668788473141857599867397531168773667394478804013360531976268497770972202499936019287220957482129425571554850255599944582921352824659489268665796880181942795332613468358581617552520505868471853219586747738941743549174018888013844980421209491208834485020652516507560282275497103866713957077435361652823862510128151146454568911139954711558694237858926520316541593556792692727702375342699099598025693259030635311775338681097445082812551266310521809642423092131085219321802903316575845332057929369145889087136972768911732686518988690172127934051730440651532216647375379430013526768817706895287567616303443591636461829554385949419086777321041082842652332782332397247931621750413758369686325904454574175329352770201734184734439252166871033546698056767970196111741774570076293905041091606535584194269615139476358301001412651389859104555538255358368493293071822933021388144479911476609955642938657894651631109936934430692523984247999628218849733837644897148946795999824050628112056082062735234941436420302756389963428968784956821973897547438115558916425326977207720693377471279467658772574142574721153506491528683825618088422733577841509490900370714008554182792969273096484999600308840568841394853439684829410039537333488789414730977295138827282047885692691564639805551608955340732873608377141833835373832154948505618260309188450884932332470983954934788605267303640812311849132296672060048684268569654951455205894453237001045893711805939918750346610636188115203680244642739752339600509624193764263313468024446918983191956894235624027563787345039022762944554845880367617408041022254989732478135602179608658629477496899587836381957109590517840139671661848128518273604429690041344659296793482968944078481054858980074818322615652572036596756437068376776913057203792197040646691076338483813505741110765775550151814302111669782967664808534107661058469294394955312866743008172000305303336379175026408888772963546632123965939105724940576710054532309376422078857011488154466325824652386940575954696775673527404659540025562870329970753811191872299848832826451185328198676377254738174898834888446064054466082150077562617995738872611472857595897716854722693016371089406937329439819826315822978572713824658527170647137020820097066468436146556645067087894278977915339985624313419362431190713284963696026045841952200227688288993290805798622598568978904984006274486395980132403667399309986799708799228808972585069405089950985268243979114923705966331972609556174458503816618008673533584516321109057287205784511652624149668197370645142554442321000359746389010994400067129980590861540032664352418779037124804092439153029048759805597629176329157975720609867063036509331343422916470036263809241048775660996330730046828159697549826912148772329775485633514616140952281538443773347182820312191417468026695493933969205933987451711168728007764880876031057675839123307924724492294240314775663712972687425321746260217164871228906019476770405065721386411092525890360676041126838442566966196971543632119967326403206098557100358715798309570195097770101971313006983621050397857362541605092136006335433470077787700370398671389105075023678215233570909268924857640911488452099389875701477317567044163963794575372439087829003094576333824403511383840644644925637805530355330318090845299233087379064566414124539240851016266788949842981802110746734170213333832811592086262457906754659374351549226015702432982379251297438546830320912842155779562788139639365340651215239118979617868389454132797640636714005199335625354170848422235453264181964986744545196598999754881335462727757666745256048861662266147545176471172425291614599020834357032020588576388270277872791155702350693831678260966459020814037262733461894115864419109464561562677916719458075180285956394939286137078346827826378564699759085017615796256098566825243451075640672880615101733929449406087283092908330032521294431905487750358453636346544896145591549927141855054219685754953854288485968693818779800433365601398453593070516213320503079781962064516303818888548591107806588866405141383001556509231640892975389054350476851310702708887381874915074179654007825200097679088087729208321593011874144728176371995850784423330681951708956348963159827968799697263681358696005275869155139979230767340266445127592384187998439478586506304873904085427652679515956542094111799462573914561546263657367565522565440580248668970202760594595360363867071319152692596622749893694214938801724377936558654793342375743031676836489225915974993134966804252314224524169389408161658603913433110861233455797369187682962286223886694104752148608955351400024863500660058542410462321358215036813334780041341975608073449477139643620830813691627523851185101726582774791091680995761195110035069419725978585744681496250603874882663471400304388763175312507080791971911640067044716117706131111588278527444552724085581809230324394017076479147193880545303394406144429348785631114748013263900230815338106051791662454163695823647633964399871646487329742366127193274756933188937668044309643160112728365937666320781952647255364988113495598323432346980385535588029155501691536265311546994087613492686749727164131732162159178622251563521869823844193428500017380518906304928841008064945956831978136287628552284659237279844743417377653702669558128250509492377993663216312427727074450307600518732992562119031384593447110211634429995283991044378577246477437611129591363688731399112162422653909340483624769301215558058363436610731545148699022591021480782847159148982565966612535712082327030063714909517642447706140318150092876440830289124242108690706179060963493933991534223311269327267348622453483607114033956001521596962568874567689494278058989871606421343237147373847510548254840704087293335599881841754098957442783826237572161975839978635877597827417470628062788582526248168986828404106691965580315086134268957064698331408567772915190800801053355317545948803529899111581767294677602671924569674805414604726676735529224964065412626925599632907433847360724694201704371358250420333051230154116286336846249258591123490503949154518675510252988823919460014281598438084909861128979433402377853603935551079020701258276223103962227769681262594214154358705781406669210695645929965670569509196938434941614317509801860116804682027790209189632306823496472453977514756870737161555027746115001735553723783195088772433448158783499886296654209027863577751668648935629975182194725930569885647352141093300848704473524582947905672214500140604210879103484716024650099796458366468168400503738215316023978670399002945239164713304386946787601245142512813204984658922023230042881253664977457017779098936388985470230677742514180853879257497861958794755827400130670956937130553327679999510690070649900942804148532109513613539608678037933868967406894802901253205044176620517699183102399402993574536030887237331697958491627593119311853075553243487485851982033118942905387870614330644959257732100949058503849128632324840115772342300726838053750854325302113354291205220406155331246512341265849766498263824283624937585736490118553037417867542282619925046454290811376539729791603966853990908554929045350907246653871198668588670472580772123451825499629697748814629190692608008142934935297408787277106602153733075402309072393060665412228610169252956586432985947737751069257543620875498768487202747371208628313823927606899441737485370255485650937342997904426407051535060348918686659979561539870388976337346373481338438719628010647526876417584937502106494299259998185299791116065689897960360478146947818807519194231399648321938155480886075924210700972172334708456180430506829687083410668446991499038323885233095204357814354495404401625094226211598713055937774144455987379442376957802166470708416577759678664887966587966137686437182095383470238848757360128249470985923827340382038131917969474106181352074234704463858162663274712930476047341781122274373164696773492951408773082041370830944660893992984172985064211756236684864588019553637283223195404686673547280250597262718570703769969408409779010617530880806026438249647666733535004150245550088470845997128426918164299524471119242298119976581201461959167660799873569074950574055892094756877861523810985671000095453116540508543151769343489058351295587360601718283289727311607375901989881088965947419489054038225675601619546567602570165323986226776769908655770630588685784649863157766489504467304455681328467678924480380990594999070368713193923616075335444227884610434078004535596176139620076692901961892889761818078267701981242856161358557687473590510334451586645104034930801832485180859173534559068730458348710813072327493928638997510400066249024103480143397300445324275320785982886171973294883278022208989527650101755129654349141719723263318017792877479249604479989148710062446822138969397968926428354980010380948543424589833283588372666485322928545851859462022373806928673927032226487262008261671899517780243698430538072005042495918041666087787004243097479695401296145395615287208561194749754080361344485378393910396157322630526153639115468458596043688149318761511601812400305000075187824060961511310147999899936806853665840835730217103851667641526204485868925312076566008810449194903419404518688900219496414152128031610817437152284355443241228666630772572277735517062564918349494949864717487303050912426563752953628024220624498778130639820793216143857754585253831121016030654968511821545717939921499093242566339875049180281092536934111574131296204858815310610441598020749493783059942469547829076858463174265951215979778215298042985924208842071853731251756564763482572247690553277365697671708557472050712537016551361530753445146982164947822769188479813222485223852252253269581449709470783712676494595493954777407016702525354846504707290879237809847027788111458900402291423557991755216567640444842924495959194186344278720609052280808983426022313487630865877734178205891197706089129721884829565950754062892778763858299641277198780467122884923796120416022251318065775849757840507681075549365526530163900448733905463789501456791735801176875347064138379394308632676754787507725312798608947651409278556612069245878656648666958787152412944700425137652829684658194651912282878849213670042455219226743215973937859615573818889127843536642995844965533912046163886639147264771789161020977325544411195173408287964262755203180933272493234896462025264051192705966781351467148018185959481421542546039068461337434911542042339314171161631638184195270354392513571676332976937195458162862316524867070478124957253633954045123523565060834029366144827523309656440389874479129019322041124223940489206848988820402457453746289644796068232029387537131342396385773720853983709676081409013705844148832304780168234795252531200931397055792774568222600050680760496555152649635466014995423856566360250129666790883003566234392622656487400448234831341339843846379964724734771159188370611879536010450024575515558800830298438147585657486434890847627709221927508610390858256617391484464945842890704085852463733704756378697951493212200410002808494587268398991418588204046917864346152013316037933494273581188849395535690333352028629784713699382219275771740789347807713067473039145623181666753972933260758121529765072164624157049166023068875980046827678862431645925774956969157993133244196677512874163837783771133302332854530895513713195157440780623589845274835067071632790528862374129847963569241707672419757340214967867300683918650596026223164951271456988639143605162158854185730821092414974913303897448342645784289316633045083542303376319321192978505407116897824728171853663389171509339610039259413299615354200467016719457582991257818003486254692097496899099686828439397541503914755304960455218941639032456711734602399021400199939382046795963089683001385847596607518691042809481432951273920701202994850091222801785931632765177495967896940989860962506478006413303524789648282390638464876038805233143485833263136318215147683483199388467454634235126423876621627244822811093400734877522780199270526752744005253145886278293844985515315804436264089443335169907190712128317844247062696504521318395485885329108967278642074248368144744318852593065713436985217220968189458943484837028299342621086936896961411001277569957118752751105511121242427874619121999132065412405194184174982073803178778932485329186803887627037325718297387965867887684191199709726953608957288555099908389315396655891344404606605628312528533001446708688984910377396145085193833457881709324684469856668748850134688251967943976013348384470051864285757884568538816679310869826231025308530123904682480967775965954316782473505342713600262696873197011229474922593006096342362118325280352415593947030115884579881020621135352273268920137192223578352748433200978279518932449346821646269400267125675980444418655058868197961130104242179283330313608651528424543085957764856880479275023365662824038938841309745693791847223250068508529427157192668642360755078521542885635680630058953329294748925344434654171394092485938543631401868959554924753582989948467187090871459112534230300054933386786819230994631175468138012380566900607653558787420849679127431402410019013601401102374998781460323767740897782339992440205070436154722668412978162693284415846722826708465373635469159528520951341786126878644248966845599572459413734379174542069485163369042266439057418243999956686934313953746335727308070505923133066256738426861238055392896734826490911253389409995158733854155409017906064168558266552364326300842811913898038150758310282715478918191799460697113777088900622601205904137422188535682676299062392855554785649773002684108288654839518750053586292224094449435573663405817600654234375028240387445983230266978096262529097394186680152030840374089875572100270259983833860844706532619562129196913058573879980580816242835395376909205379241987007980139764886322588351912244117027800809719555500466718455947796596845641377396769226886546058694033323614454756513831002335170346819779251905134677175387684784067048650676304071983150456436108583368336401083877174804401869266858333800556780282767447247949348773903629589164431970798824409787108303083951648304775325107385654063049318608476150312497198321832557233410840506697317437289314147692625584567062090485139047889045604203884968914219814876691835119529619875714529267205369779514509130755797912717556858253884180386297215652531614333740332846026121171388890731503718877025402447688522279910067688547260540115083385874441361591846687556147663149667610093735414142503904868968549517254082975323707019904318779645199795812526078582610938003761909798303117327869553174999798059754418426440625409001625882909281830175435418414962391704426723910591205570448506662560696092420906159510308144541602138611505578671850217336695128359463021042416511609025721265645847382634066148988495593351532183104963215980719955604911712653818202552930728866688327056626716365070333403368802447478734116568100510987456392607368607304672809445960248887219867075239559323350544163103081073678159800039893553407424380962949381893555641654730762806773379400033254970274646694543674368082920358470656357061333995051172891463631940606007242393787416444590071555930510193151721211099349398992066527644878166268060639478539865925537666234567094720333087585287904457759256638394703825508668946165133819286587401343891943112785347580603835561510480356359227399883080982855332385027510066352419340465814899678462902073327607363073401681994440197678552487842535903278801133910403927014591896203172787603050967503307758923599072799275313980080167336582947357382866512966941447015027222679775594114369193470654246492262869772678379251191894576635495667658216384662090787234721201911344444137268504932315245054755927153453616994795195545667925947899960037413154178410454034111174638892251916215202070470272693744350395795342445722631469954505606911454610197822451887867858730089458348576323520006695998815121201786861944543421476325108677087717591218638559457944945535540631012582703552258557363948474474797175988212219428837667275842406308795726278957886090992963817317730175040668927648697486899406238978013280658611878457522480595715715269690406449900837939844231221169820600163681768103550212130974103570367218645374264900798542489344140090422256480142501928454423599674036019484409176699669321362992316902943381306471268684894642853256825536596985563481784692363196865637344366081283524842013659889712011855654791025311340700456343313885568049528855840800289028208276840016270350250923368604903696120165546494399506505540197515649490430539759862142375021993447601295505661783042735897239980814213575162212973654295662387200552540857253846571801259151604304017980394506073856969723075203221171757238445146799564472892471934234472437913262422395298493933194209638870502333225288483430011617503952889685587285628332952748250529132099207250101135869316598407277024002358784115840269046796716001611509304415269493993749652136927586308751298680764502237270777231538326304010840921543922379352620107183472247204658422492349197459291280613598803308739216212528270860641101805716827109957464318342992862309452542132759276632535298274799297436410074189802078386654302349754331640430134653382523225591679516098741673968619882859545212473298611445835997272793411504053189895791059036838227835604608933003355639335246004239725745096418544068774042402794645943153381313010605340996542759061431827432458046261857667807605117860984877608088254936905312123698531427397333786730552122066203377048592783307479804554535493189549041737171141882040912906668027807985295296930313534796244701285066554252832516687099581646910380079210343319176003581563991205857392506497416733409444374520158170553998718925527654931947389452981176129528782021872257085214578209463900488805872799885480826328056638740274116008142150251750558470009294123350923241834412758140823147977168373532035521014833781186089198880491767532882554694890243781023323164599562145298669001518157273506695143773249881908281912348905153327626981280581124328107943621867224867820737876074114277232470338350088287907830207282991852727517931693323049541423837855160859018761321209301498042715930882316436280145051277625769361408578031554589517792613553155504567418362196527497218387491268330987534760908660739926738252632925960836455643460574441478121812715115543875416616783497449045878378633531208604791218522708533627656771099603368430662254955470092827935021701858937263457997840874820971829784663190293416568231555188529256541163649516306624601929814125090495485056799585776963697153909970848094654164185607961990463438112672585344800357782026358113802067971060473892311505840980238213405756205614860812130604653684043683556847932493132124585039167225548575307858198311629172567073965357463902326059279327422236815015215967681879186793567914356100672500476345445615976254905900087552492729471686470077733118326368699316964667143008567478416404680954658094319423858430708842268059299515131709489987478341419217894918001912195835665623259958927745110998673611644560971344665857936393726639084369406148373378386900096443607235849500634721000745589931866719659017666766058292242557030174088976069281657923664753379962580343578961327303360816070677768006753559994528329862368439018437530066282036410046415036791745189805359933816163873780289198012628278770073024485394796498394186965228408101123252424961881695921012958330357198166770571434133402898965207621248438077050363349697968075921731503981779085176745075348737325308632297506409587566037176491338407308828722022542740957665883792923212197559430388110528644571201066821123417738182545044184599585272680720652463084011217382887882826901468423345003081697364449097766986852169950373116338644343477795441116573210194047323325662577696468785051200342396822516899309317712508731905220244773069281146169759643694510144680172928484435571961865759777849104750008651511694453944922539353392256142956052118979242016700384389070440262121004683132500048604717580230801816432629925111194023136271258890645161440023359682807101812508898709069796087608779317661371606516334066186412519925258488673206379305282684772457755586753833299169013651424670665318844526811429862906187413802034802079639224254015784388625212216257329652312802320792338651002829195021781396402533087669491727352253161189056894854291199950181070797767965115768070180634979034661147695190563731886831266735069995224594868344941355299859922551931125451779569888872455539296397991653940467373464757934301129721783271328879500392747799712223918134055354288700716962048009821986313163642941879612089455159687345648792599946754109372067525269009974845477491793501265655175213896262409983816425473474550409639451763053742025639459440499988620384852319986748632816645495445532655450493195847091410585740300258444569870776388027474657298321709841452975929407885878111740019873261357350966865308415486217304129739686673999051392353760687959135013326180345236609685476339034205161968268536949976186047996448381814818106847860298896224966477217198599958818929786226083567774476765345978701139401679127208831898534558449778455227881401930825365683524969520165611660068179054637740728837249300736642387527948122432017091017314794679470822522233744055936695951999149558987883177410075834943812247821615818800140211091233166188064511900198775599918871144997841761801096780674227226036211933971545091116651784428616606147705308293367099222411440425389729041848162411665047964945028363919984430021641057254877458175786470733754706334264679678825416519712673433833682590231582321364417459914930303463938490346962588669839618135542600908231605951475492857821907114347831282240851551617469381687953699711006016353962978318516458866967095011683775088425575743556934752359459514149090497796178308365610545504446637847917997234033610782884626538622495947372358463477400055958467529770415648896402235427116092720849876513774290487852218202415317239607511468509760536133158533489034864442971387295671074059701120231864765170768064805783718824615798564052004599778429125561898273952742081262576078881432215753612579227146978232108096240993101181825399545659845619895699514406290213121558889588095986196841199464254562137072205435047103920423060804576774354434289773465966567101877142144440386574066011619072139981854385408380791698257986525079777137088601608303129783509402627625685353357923468896911419149084363410910884813582982522384750355904729800964056417619934329230007348435895236541199946563216698740515538626923543215224054853176050327608309305103617055584652831494411581096645302274978935558975631351094634722423333785294290144331979341613122083010842044443943666777788795063843730764824850535534792519351905745738388934098813132719255169988057550610852175607310930716531967257210707574415935031168207344201627728777536717041211302197280007134134013867206961398325979793125574553101523541104541468077932205153549130594195767344980859304054746285090324134633461469458877833284192150586140298588011665150328939075870465489268154565081986076189922764632008972748511769415762052287651059578659339955546913803982022363222026950627768469612002989130466502510817259192748925561103165830264571230213866711789275156845967766423673240075607462816385074704295949104151117585033338170925249460506415476771209211236781492110897163956406721067384741343930466448914027959351255091305975466164002110112547077383140821799086298256937866276932264921198001845860404344391809834629995858049140420131482899245896211124595859276164064357104378555668637609840582709236968663867639663690506631780055721685022082387778184552627605299862527634854414414819139343576082038016203821225282690753469135806260368377500884640424423651218657617262673520851110771076368147458100599214686310625443522220902400474352485866017051494792113649128689413898219980033035345869704604201729107744086969178845709955774013421146001653058228847068355372779697282755290086264237939183264504698649555748682391831838842969739653090856496959824773669480305854177586996862899306503886817451142793611615346424683720374863068760391572178734635029313347635877304158967002746295752727073286021951731596647578482354334214933797647300882005925576736026173150000534730462332759709803426051941301203764538316460045001968447984398771022925147064083922051738695043990276950032383003363371854320694366603793956422702760962229849107094396949842576086404996011094067922063847248728070845822877973692441119414757065456736077346717959313667671037892650231276249018849123057220923812136706933808173382548399383004058821974239261918204845441885135476125235222611258847641445159982907834183630083598778260490178507260860558387419013834981934556382736674509367961059445526751749698900557073010046017528279874933263797376969603026206226320007755662824640382286663659879518345602262000280861420782852478377419188115053747540002509753823808282256815902789170810223959135179381996788182564577658599834687016961590942383814119997432765791558937892653575638987876520053562167465543243209279962171835260955652057723501756064345585613932875780566327176353460318675997406308005524744128405017158539162475439886012822320611755818492053692981958693071754155666727552098782795852804430571002943393598314455124046520286923317767383883891701502006183910624052775288075186465835767741705606302654132587957701863243151928841453379054608505679059831266496382980366075780196159456218066316602637015153939527830605534824111378828496536633357085119141754913240855689196560601110110167200907305039323471712378676817099926614856505213624863183030422262024201865472096140964356773488956123255531328873719234801108821005343607975270180919825771970416078067527294240616874388012589461176195352212318845357642687486199547200452262294521493135696216137503157673108783391680036301903078345972372915479377661707313181586981966084731844462155389764699036029288914541141277928486080327000598287565727358800822844571231111479636817135207969736442904436911416999322168573097942505216274681849626909465801133708841518189453287882267571189537211505895809828148862844548431514624098869843716856084416770766583820549518851559850493984711676750152041644425653206929638479748528143513978665077215644825777711808170069038663234635753286586902831795894367369689125955511360722765153639528232358105743012883352024172120262083109525156273856236134155840532477530699911899876061601062600972610657631353041271532574369592574726982219998969473457993518887873749132725667226682971462064524461243211376460353711226719865240552920829994972105809959898743923416428146810433328906010271133428841439873830750892687919080723380334300412059021818514773072559610587145583092168782965837448303335237817423145474906647893572351696464723407105518627573237285502365242080122712314660864495425030884232225800423603599489090423943493027050145169608859710836769525804050564773071138495866285460458780873099177992443230760054954159753768275293560938251059784199806762561247339353299894213680617108234237546538205945843633216375424232852789105060460167138087146414388734827628422320497128748012248869326193517285314446416855555413014200312178535776542232725515371764765348238014703775809911571031491371828886791357559878760261802368372783041418427435468304578869760517216474265103768108872108266891313984904637191250808268143721978165824015115937925808099616256512828702318952134742840138047734744761284286784250763222841123493988515641785682763510382615913816227065738658580457776508371244142707939565057725037094162514114844576625671241801284300047790022817086244840235660411506499188781431039706877045611849684485077368105600201155902483459070444352606096195329662490402677212568139017568228117763656350692398119297273733191918213974206638978373134583417224634937354181956425060368612625532263093679074600066885013585113329919555931420936437690370071185975756765164158081530824042801968939183864769127749078279182117515653619618835900178322908585342843743619963558375622314067705540446965125942845032358442667126359601369514632691988823941692547326811564721602283946385147943265438522769274252093042936683884277459696120101777671936923492241085067137743440469209487993706044035816162993004844494224678406871510119512566143650960972486189504534358797316624869654723006473569927105644939554220396486967657747377345316182967777197824131682930147549319350038396506116596521295021463784453005853576145413701281968631198309450036865169992162123537296403269691812255388853762979796541546283438034133401234602410693479731827324649082490421109261866665568605147859772072604056876031255031029131750303183531114280029037863546431632411201047188421479988114603860209931978031962591568969080311560464187990560969529505830862564637353168922085672399955349656049813785088633328671615914410155913491847999147659249481504483321533248809592327816075747202880979917508710376897501717841637470562607847132562571693377096434687836185964452195876980270841625738116346871392567537553771085652971308763718547828440109275811403785733347418695421734288665783450632664166005240902047699636328766957892262299528327110672873017284779368317756448116131282224047042163492977433869126248572392575035353056518409760899814784704390042930556585620791813176765063460508374353833632786253838593971297190734071127037066444128436751738916406598062783461413773962077154671778073039699475643793089854915410287733717364411987051211224832572272654220295472678050313434054324213493073889008599003107458057710453301499065329883847424092677721587521735933667070792097473320408425531092725864006298640881384673274363350417758909149971454719904817169170167907804891591636101017207656825415556830396501977245475373037322881849698447822137864419527286617629746499481549667957747767654559593793944929752963671408821925799457497126941276345692934273947358374432314606654693051754051463580051086260557795135317646610084414862287737042072394561626785003932054950147771399704214301579376759631250702805429598716211892091575478467317636348243149320730344588518150869817605338087720097511345279874340895828995192151607533530098964837381390967897781268458205911616936352855502243791491613127440451333718673809922424600159172027116508475225960643667911965586191843634866134863518797478379739623263516971908613589522313166620318993757717752662557024367788182887393615510597655449818002983892178575437170762086414153162014252241409102548736177351938053701369324506065561298246453628573544434973910715263483942302813833940838964714748956647647050139544348980684507307351246329869112586988571195794694400128201299718523307771152727599267557776461098485097425674082733431012738043321253303401192265692375719473709401662326165378491785539005819598277826200241543568332796383358676857012673381303977587400712372035922685179383700269351715509864423130690299043644921323029070248122631454186858183935324738571814755911010156670407030603824300400217824496300130968077615116658599580489262805117183787559643055672561759565790734792178346216071585851343959313059795490353401665360450940531603576255071728954552486959289722327116744030751478670156180070616057467848733599794651428432368520414197509967615713517852413261082284763302031634064215522020666906397437683146305163530019918034062280570716395316988674522167627945813179613214178796094177062435942946164738305204346225074098691564652561976515806793364051344948902118000195644873734446065492390606986059442654578718195170849775543031306192530030697497518866435563999885780915476823704003786068185155804795756305419627590490003029839431128207686466319151310275943141977991879823619170535633036702293668982048149822859406858503349092934404426263964626902919458489069727339626878586725776859353978807678459468998789231896202555301067155883795886834929907779800239788187966585448678149744418088171483544965191434106651180306534151820905293898320271319582525081046797264148927777516914855181602360111844098872818675745051895247028999617145329603479888922636832719491027880447190821521655735063889101466904066073946449370767256562463720772760285805368238335078684927564391298634615809842727591725410973499512634448452267339845912860530110228922898855730795923756192996319897095868452394626556098758900151998629387587751741593720275416243267225308705436088666894003962255684200348305668057471178639803468252987325584140136564472133700140062957348717291820183320578205844676635433171571978096111471023157885257256342697225142554348612612396912424392026328058493598653809836427153754891061938218953606876521295758770991086563534050269773855378182521137267777621213710690807832939884594211297799560983891153234702927911653337266750238002064492191286617849977781535640294263654900424056333517056675391901001118395118982475382257663246443757549554709991691479792464656549072734009578979374449578266362782624768060892312656527547157499751734630445386473113315667745932098973201169089775833960415952694080950858088525117838590579359366526134552632066965113856415422310606365786806022770561766754398381092383653480707565487354427445779450014340449601254235886871365126487569380367156536497359350125606652349517501583645858505553369151742323340142122727354425603132702266869188967105595482496438292200422893947725630848176563312924756218533950146749486554591777925355486468140125778702086502455642037629964768643667185409514187552914950772432268360618791860622008520382027224840424799925599611275070903338135586713039709634627292686326542887366630643824497091512333425665560966344602703578347396401345864827969214301126890837719623715322383604528599846450578765666556591300764760588109452973306223484171374736040477798324922719161742780542228280444779078348254818026641585305884083254692892946109667345829448382173279627287193588209078610806872396979356334391875079210018541729039768688195785690598577507556009767387488943051926108357957472074401614400446627482447132730134645025261151375592750540460176087595948502603383438887860691999381460102544586078514928060138719313319327420463841076227054289180208362530163236380085370254260443195836183226588441387859800945818762488043935299287290357284258205172621245033009985215258861854953124641874191545530828211949975890039911715267949527479266009621153179101568131348732571375849826183600145154354398802650759402981828781901705958329120937397853286661763968617546969835488754000986182930245388514215526696123405172661008000189286251552256676203220431597402333775752410803547385170620787436744060816105641762570866510600073628297188960663393304409741018947832521677007132122426598753759640537325203734502753904866510925515668180505921805647312691888752783661670430841719091405650166362988753381909316979010688896956953346283130642761915894974656461145399452562065912163973788515417732718045054901013540004855105347512892344698705057384385622232732421871093264538192824344437451260965737655874598882214598662338646046678763413351440856954372818731445999037953013164731474180626281948887037208077206450979567793794491898376330561760701492705769557420516800773085556743283766598908028270818971249715884672347191391913225762977440204677018425653213807649554536378705648643992173430649811988895035943906721577487955370322668821816489714156681663005835598618260582221789885834878919761357979478004704692813479386607159444098754871000616806759796723479075481718901708382289635509237459964824255509981991942001576151445226838066265848292604857162254109502157711981992682015819029907891785160653883708456063153983094619497770520736121260244523830517224725997679306932991600037039015481826584111290044349637778327132506011875410318305478214027200150484133609866085264206280114557577620547206771512062093889701004160652664334391881018638257787243420079821313642566080573098168155965448235551354302440042789710503893963320780071864011984979128429954442650722645225727015857320954000827859887812276983201755995547210818454825041114908410825633570841118667445003888279063602083706226389768426839478004711984073434320391019885823715834087923009769481017789421467452536945380345443630578633770688111180319936426638619162311190598557559169801052794661577625951461113704967410913945008056504729514542394357210576521877698311957416870799068560082168290125572194465386527743064076809815175543087518242644953642424766278129951407069825703003809046781930526743456153025053905777603057951455937579627277538349852928957179298413829900589047722494032655124786773573670492277793778699766300537092078258101373544335787224454829487254669469021448350149045243398883812463292913953609064584437259832286103981542842585561394780606498243888611066286121372625007693327653683174836201925982499457161540083881650065003338509837257446712869158041954945850634630003371525147687113210295231727181215865233935126912967138788829964757196100547187563681099635459472543168617201719037357106227999829081315940671231995835384948527449055731258487943570340912341061438941723381362833625124081124437665980655681670505261275860942668257076825199821439536295308373146257676780370306003668003440316051423838515583878073507198121798713516454963296829363618070772710780775103198429923869479174556353086132319111384574133393253458322646794404553488520290529853259366215484366522926577682011399741877753384263421741326467132956631910779898068889754344169466041440897179028988539083140556365211287154545724615530029453472527113637437175020091628437892819278715634933764026258178555439290917040674065769798034525527187092873578942534784696153237827173213937225113114469029767322009244493932363719033085983838321909014326007350605794052221937329288677175507667902102163992975077689516141413530389076006018949133471170514182503156348798929978868061816168637728952311816077506850287368294208891755373416975345026236190298059550869968937861122178739038717458458146062842024186409218158423472931742212394986930310814653527410878245617612543797732675845920541808131235795067828607339276623701841762911660951127848854398280921041779422560480847369821819905849617995875073643202078725460089705815640971883933050760971782939851867313918464261949870984858791712876487469038906479269514312483625339174876551031237248627103785953202236774495886453659911562557455232355547895575240018016039439155631951576865093763851607669840554032543443859166900053564756307517918013113593733200444411263590162467560702645242090722392327911894067160942871252063407518836054055270812504630013392328167813877029882342283776248137985042987538208676122596126341360675200650078979997529683171303784481245867171988052254538476024975202297437344404120296523829563184987093341627343379920865196072084970342293813415058397106837070216306440480700410629407995997471751669724709943184719477222064324492988428895398628562183339680596895094590472791726551711887602089527598402203175845983027659282030027614554149201484023465399161402708374111657917944748390024977248315230159215489829313880354313113051996858011424785440782187383384845984671239920853066712826996853214658709830606289578235160423609574176422521313229309885953834187548983227518440561632882207129540206403223901182877048721858928184101238317166486631789875055867033727973700764859733202218802715684914398787771102002108208755966254344620829706432725220409750651256218924488852886716805725201704117460444613149025442023487336744480990078787522005484104867520465680370301226070221278769753213553391807546450256648349542805404362882145764533679162374936162327800597084062518250713160784087245849311681917203998579898011631909041204152291263903869573406325325697790979137475399762623435936381028811522919921970219852829098070833381025237191106344797067042221124198313687790293233118606908540894636088788337792245380972845009144462677522914653839026784216228693278308744387679715268416834590772901674604142661537673352082774825862074895567973797912003049666513718490874210201063503844963292169156607685175834413564804391776632064542074839122690164595708077661842293203733515263943903736763626647206671565606409274069616710174471595619620206449295029435626197450337976242189093886771525755222562373542620826735337109718624963659108500681078600986557214812638129845769458496374050927036884178828894880968329980593702637866341992967795590613471085144427439907912034005508679929961675348485758153768237128077374976282724962135081359326624254324842112099116210146032519466782680213377888479494157122668727849693903180079618480330914416969963197727858660475649977349273154261879234466161221240940728818876836814116014425133780478746748725135055976226319151788315575160286622568224621793531587263378576892847950656922708464480667521583417275858615490306973351946773199358095185401700554759988864735023948830595411677868237957828507039004259003733897054178737271050659323565106452880117585001419934656210382555910403999103590243661611865267313854836767684326062550368352552551538546471214924794436283694674943417857082857022749569011252653744594025534906076268176014570985409627666521031219618912535356349598334193203225303931237024659904122960067196240161916936217623318980580896169831753654219746418657117040446385570594943064098252597824327806681173663612039530956997554286225236675011011365690421189705766209659424022103704267994775808109423827694218710206616902583982174150151757820776988023379097363759317465728925425991853439211208911117321848841734834620430933601202078127198065811868060425115675326068447539682889144306696653378288426736372294981338463894608617489426597974722590235268679721828544266301714492726740502843141214944692513748805723755611074646343610295223842306465311789775238404027751662001659636463240435753930714760678623934127981095360163265070185554887952560669230151692968759637989621129344194986384627365954749259904478157131794480842373212974302344630017064495225009639009806622087898248905091846248449565348394917288287709820661564083822438088212572395074628349179954563621655689079757515133440849571336380369950968487652557188375585693605088670134865402655702788798725775364626826515168523621887461818334688137363910771377739446406478812790504809499383209318197044411905644094510917301620232446213627105197908002386115152657830771829694461429480230469905367822351049272212132670352321618313926002770252067919940847983409434655489365736734012084029455413104166242454678618771311847062208224444294678686935047228764095123750296610210369455987782665581372882406317491663601664316050320825846062898932747325351980892889254530435286824921097924366853781068557972130986465594846888050307939197579777185720675228713683490581450092119310352551641247841968433222202584712731341928322567684708722789781193231543623049513844902441524789748412670933323272852685892319928185324605851474991890004798586613553370066337843982256502487822821296194666644442309043117856935165996442585479119438467027850782549205565941232033194601563537990198545296236877264694193941794741278620368433620310534392254300296103759289186087666042043606586004128464071037333766939960814345802543695249047784762088622449968170319460452592146569361818211115969626959449225404068946056812184907948018181196261784956359283167529298626877816029465928428941477607016336541500204712727142285030012106919022190256773814604727314868419557703745089088047856395237973674002650278933600908376298911965741448430678412663485779050558021393722215042687376821940726139686269793996559581883665499205478450720894442689080137648265963046490180755370587789649736669835393631888447484751280504664972092734301704657664816104412884516575678899728389088940113708618869824430762570196565195809720452698095257765270413395551389755710388596207067974609909406041157846703943133922408346630625926539243387089832265960947190148220754663921690095369871704175714112191520284731207285804403093994388252244211539131852462925938895291850239837061366992639401158526393146181157235278889149885083031305404406843000032653352748281753043702422755306500434681551055342322569234816836368423958653159371320105394244273746974853138571573305945009397553808870735867189744520923821171790370317034635896158407980089010194575900607341921700953408594226706159356163778062074129229733560823090081354606552227247359966341236294143658014542618228623814437612400156171255798212072980361421060058061514400057947675363856968439354548673456260705781224393623164672544211534522666184214298516826361069038255952013675182067035486057591843161846227603066129162202381621857893609638159620385031382628246887429073667355413712283317823723688160696082972878206825700657879001877355840248243619557435695345710773467722111772763463467236576155345555478480098904322564352279764957637994840342749630762525924351748383056162504013681318703638190363230897685061510706741993597686247090453868686410079785387453031698371692134960567903452871511399242771468733567328501916043341600485156216351842428490168314259834199518247045692909523595663121454296567206246406435011687955478748688643805389085165032586159299155743490796981996032213499865684177800601515517780757156385339499977014935556454995880804947305220818349274104936698222473283985126575211368124824985431300068802676355856002718537447019837069076729352998346146244265256639508609509258570059183706320276088575447119188464722032148623400071848204099687758678729613734497109582466141750996211015255524083497679123980216536443487832598093191152211472392610204841332019149142791040303181275973011308387498080970174919488604935183206614177101973710172917433545543691899232769277726673911997631918775401994703108526393400912813905577494427663700140777658311154642160437969416853217058138502262544206023485840232955388050687349522474637012999725268789647055922740009602689478926998103965724000288446596788460578140939442524767469937705764256307525318669102668520488699401423402080910839833177334176285318648038450903180855222529821120863715170503464799101797449232711221808454075761482622307912823466896358289501043415783483839883929887136880429009740031603036113996762146620193959165148884277748231502143472536408810780787306380784558322806491120883359189046053768915372228186407271062432860015070986393205786425382562222783815720012112660501618227737392251045051937341425760594617220498975772830759473764115028695040096593110524143951030024719752217058830055218644764988441751299362944907149050784254790974908219900495051765880735468396106750040959038493320773073419809865732337156973608260765512223298771276241097764347311929036863491818400742438724362985882290437329831499514496725571389614441926781973999042275591076921284841959540651350445710592517074789993826504353376176422858437673134745077938352092573505592552078059191841679184798121437021352627010924993640304247985433046122353216590300515443725390924585446611942750040073230434210291130785619968439646738910564471929140493998397299661933578837869880486587982944130421172695134946680627118208427869847681594746358769438886499411112770861697821174236608048882368873400809939567555307679658047283794745382284581823918348153047959080682310069904959593213361521090256379776884330278338199221368584247061552467643079705425795959255661759455714624794905991609907479101463037380598060019588303059554812481056689222627706443735082582977114100520379439386627148685038020530053392773090960967446211801632685619517571436297751908971182746981339097881257065976046122322810070029305288522557914970590229461644957752696517972419826448179675378591754743814339372495647103096663066630913442702683214816799531443192887544747680628384827739759886790888605322656586368946202111995280823500759529868929719589525873692015210538788519289613091838726321622892422679088363648615094273909512192827907501647284206484573848795987068661117254678863315871267204185143622097878051370969948639427626916773386117418767895465273265895258358524164367053800522280583216429221284301240672758644537577414217209037249639718210050482742573790703674308475164780903173870645829920259192736135654265351067755608798908370020828382239924358656359396694361199021170405695510780789200359973369652522782128792358276925110968267707491682348928542032965958998101574130747642625019585865331593045850867410756379712027420273414548776065722323416377032326231286752274636915144471578709159107097734674676140184139802731330971773777620077688083346533722434104159108752503623032321163865118090183594478450175513564854537298784813830038152854932499309188748537472216893337256009107964101750335946652212199776326719043789908927520371787897311871119562851469491991015469792339017978021322172687330957040145917658475294189007852522825253409521545168060610801783768021586341181107366072569876767345161684846333058854765463679012247173128153789034506146303824865618304125394134951617913153818283654321831767071963757414440434134833862946031479128100302030174765016254757670446977818126616181419221463754908491408745072458992965631305159965414106839335294317064477355117183600595262807485705755363976235193861097556001076754652196952993303067395233437577465987641782415660595710706388929822934092702034907113367408432240745378965690845316925072710437651313107628161184080906200892676209937239609445143031755498873735215251012220283644177274636308686071954646473064048146272675156798862798689536522323691832406533288587396688659037831150817864483702933205457020714093827372360719519912436047693671373058963016153968294412141770907493679530397825715222541593770420457617457943393129355894531535081534411247634680211266131985852246785718056771768511699832520608121366300346236165244144723290579798885943801987190467108022812736600484003982211617039988399317366607190999425352693323326746779435340858241132218829769743614726456213639836461361315853374198252159993344420926183537651508084181895365549686160441436504119367285377200161494817833071261414316550859101601721287307658249937127866604674197749424444558153749745858066570490007644670183480478844071655848789481681257731340073936868137383775220706160699453504589828198326638011436330183407127222635502792625448551803696674403439978938338106152836373176644184239397666526965861501737569914144093716191710182256218641709367417356934585758845234517340360224309575485824855157578899543540052089843808142987462834351089339311176674810137426928990698457369386078826566021663170302449127416921380960177041027027348746104155802566809581674465249406768293268242669795069775228015873663707621243220734953553170402075013620040336829207306128451048195920363014276563019491163764142860998495273639952521951866882094763245108638731179910843777283029054522448737472003299753514853461665030701310074522356762545629377497742570415957072146203404317768856188449491500987979737891569943250492000161153428707289952230169933785057171941413332603548266709470478111049303873378153680106601401546164489398132003842869524357572057066311695851346176327667260085007410780884216401578120859660135413403282909386178073394809123047185869537017409065345027021398653982193388624405390322470343286249349295691296611566803697576090976420925436080587277916489348768137983997133782064567254760048340810308144930094805761062615592942401906743923104087346556642180901342164265174519597004402557523245213721620378118476672158860983217888657249514670157229594029499029717809971779442388334558690149041045655603647363009082739105202236991075498146387801195037425176210557105612073906949549347233610785190035977447073411657210129573711834517856289293590943701498262013795026707324863328373886392529556274306870376456027894891059968586803965871693881389103928782533622263547208031201450583903003061422931158891777246403581806689960306420780509931412828890344482168782065793736307156313360129589932165653745311267105924030479686274323504168682280222573570878368583501700443140396962311474369286449725157980199972258170111199953070654436561208388936059668206831005034448516812969692537031298283498763126977599928495408714587203268023329332234220100873126153043882454817239424638366397679740184190172801635359364559063238143152462386360638960575256106766577852525564494691605156931485974028128541349206575496412256318207205867330972198367736146294201925414116961756910208634267310034554837352874099587531765428382877502988178395121203990324589211073957504725912954096300448238442410600732284946577122107458431456385991096815759778122129179102117554290820493092335692780442425953483455145210994685885545013359242670771776252910967374900948751937069398409364551107169737188706135226531053433415922273930468295665881964286417677188757625516553231247493003723015926753283018325951147594099256315261380807561582666846118704904230289802063017435164743656453958622685006007238171749229170402775118481839471242455369413379520546625713499146924129293161139178290821778804554770867763934725138431307065940714892500778590220110779522260179704416382006671635389976062583129535200790269857215269348960399799028018521177808376956113401566145602673432388255820128852751069318459549115576733875196591168570606306080196274339289250482403050812179264108210278043310556232898891961702004464345966278975383790315062479277996063354702843249239613050209991830497956976507189992075115146734123403858830317028794258938413426078141955318494329670036009152911345325590974461111483841808798042258814878159216502267245060210444383384494432783287875930208769404946840776900947680368759945501378138879148089053026602802774844503015132428861030196851559601432208841546493329760542036229181645481224778428494196109973638930007181458464008386300475477466839885610531071159355955040910574069600805175450417100568633034011782791967706775303465004156193850886674934261685308199698268954272208112569599888115793814348467348435445417492074467602142536752904526963529570662039554027333706824556545746438670227126667282920810220739501432267255361368582385815067809412192617826275291779757865532428326816979325001686660512353990809465637150487201364029082294817309704182130597978017863438339593215393584976617266366748592261873197732011395313344894731718368364751675884071929814701828555022147065909902914021401930407276401210051911261424348107551301221465761610641988657883505379811218466308169872570211725388298808414509174798211556972887381088668626083359129164293540691837072290600285284814538851092816105516916772934942494375951601354250807595684326787679936481767759783057804239820728665087184003731812358496315305780954447658650251091133896673261145584945546468569783060752395163097314228585421326840439798368161615046170201315128219995030331207671253534818432244028914296257082000877359572308722516734960173673328739743446958078179881430815414588242407977821048048417732097117412170761735627084717213240458398081423567387417033149481168567317553343878466685728840695805255742883214951491284564314239087819533195040047571098595012822118114488438981669311342966707848446049306252725696575498871949810822279590474155686384354034422548682000894110426180427632377168161197771219999593329886813813492370536905984727121424056240602250192875720790058439978744960221738360185106938224833086477507847268371158144756662337289971040301927832407609926241567736200225689764700114216855970592154071628301762305819602045398798325197298667414875751070835699225394568277111830588537985727298357609048644216962432732398752899341861518619144466896318649414854004764218954053848909321237741762616691217205974649981797692334963548692516381056367819218499636618478310102670264800561671547121803605016439033420590590816367472812338669073337955106635933300784982445470006898961189099946014238841108858375824499775711910181955187548616584085355649351289706583127366911273649527820106086253189922415828103295423994608426445783615782236500320031759370519557210093147868830831887583943076147132574590086514290531885042102834157405782590425195687057602434937747365546355391281114212345087063246696491415945978783126217903533254080637383596384711768194781947253183397737312068388163161992234382604315854195910115990246162141318142575092820917673937836806625450740164054538039951411503579235111592622052004048328244011498373844170877973884364059386364948445154665693711258996419874024306236201647586885751431977175198705876102796691388222077646266458583516281840270648353753011682012373387205859998135416208648285296591547847705410403195350924759990370826582295016006887966725193364983725479736859601868689819167167027940963121845895722054691444271063419818823081809166209575485267872456339099173495771263344844565312192887796219042669807354002305044117699644559403876703904558688374306110388966387607021912737542026753544616804029928978479490662985804487470079965271448426677796631745647247356294999414530585162131811910021349279244517449946088159072766302791980515088265988856666889909230963279829895958182930791259987150512228528315282698072496704707913583690968133802127797929856144200279133638418805544476498781058367329679772518552055079630990882932778093408046023878459700690331175135896281551657538153708105933454822991695886816195685695967599460215729776778293012620252686444352872557378712287894790314682420862559333883753401932572990885693981204450639887202144351522287359103049377244383651014718517318558739490257047555934733125601262132567568158956018693357190428338390278073019315382412416757722430045700615043089117706338680420391244513983279598046385217495104808122502803451579863077198646476899531334735494283936433840681293986913171629689803015968905663624505558757618789837809596950339013617428599858589319862800798612255055022929323813428115963255613967737181211805891974923968040740171276725851178850852540417073330269062243507003375055406475365519928442837195103354997216762883724960848131730941609689806727626961525132218680170001723240090869001634684194395240136854398662200485599748488966183744063657273175744141637044232029465636645429398229710182883837008940530348598438772184404808168465426876625342878891170845285385730226356925059261512349432045617178215244900405587784208682345601637984622101044267597053186260824952075056384102421032142197086293914381039586446252574916508790700535172608240670084528975920887518618524327871479443018237784474649409126128375825755636820632958506938171825125729376556377856796151361621680818884283109055660044783646051557137718960966569916097679564182276945714512470011372924393273702579155804119012444156760618539625673122797162055240176839913292573033077431126228349455483007155719616433649281049117219319455074524130236832071408751197058213301110135691731458268336707503598351033841857799880238225082791946689103061965688180538016121113859054344190068950790037414516617613110845745134052421413635459225583174631493611012565690188034181887369039443434198574542007283382120180307320639471035023705895481857690786302885184241197262811876374684708769535668572097879283982739359538006152979568413875526684709376976563477089752996189973888264742401686030543117711786317814152323072228074684311696694835270098359044871331605089727544641516545625002796157646881748756573142021710517919893405077723952098357988500128147105067326949616428932395094187239211591382257583591192188235137234256797354782163935021074352513908628629900745327256999470069528824540732412897422209803718321584750967864666639777194261030776730818583897010896519749048585295682904913844309760449618712492268797360108176553971162597863912106644313786823151396051111991920691210779101781599704046598047892462217894793102065861635247991528133314652435283275541144432533518558814697788484624371628021867014447812692341850541434842881658250062047537682014407931983779546006443199022624202515502674752398911816393613102391921737401677773501450473302629340103038592204346977520036233936061341819387187487312996192605555090127563899725135582590568154160569571670383820088138048712485405630115063763749754887466825327914459709275280181875691368173027067965455993809689408405632313617663123648624948469019629766629141646685077942074897592770723782683503389940289549155888593828456167056312056803953356081913690498068192245201649082369722467887770107632093481816985290218797526262913933123120523987473929105711705691525923823497393239685730699069018861353302760664572139677909528346357138373148805201494460699508603442891775146354683657858534996389825361934382429156685500252701594736495017468667928889628980226998022970389534264478615630405084565180834872251718548569306395285594472696821079859268086070644466533316894432489588882874731271096239610702837629054662651680625621113846458707192384885104022841311933272184099162897402551588182560730135120750087677424990028940623322045480299595409545321588698732636629310352045368837919748634669666672680637581641083884198338023013249337379572370615376073203618671796345260959028544038965714971034708449969695461042271532259001250676366208862870697662800026008288505261919718563291538569036943195957385999838246430878628434104518359268344054953879779861561789076575545713901340483786142703860204374661089596421637517077566184359341299435475825181118868760378237806043861408239445148885983818702685776226176256441646950961962582232680866891257622987912884238522355584464333830617812034384010180368608813606734109391898867242479278623202373503821529712426774528983972892979602165632329185125476686416149303554888662484037314791414308588275023552170827397199306888111329423940483057853175641633614715818746126463571333860692902646818157311296334946994044406132968714676090310903196389445375891072194036719746628473903209221369084259230335418676651732889547581118452238796253484106952857975121947026175178992219587503248613042734533484450194935862297039517121221135213746552557150920157344882408606698016040134250161694742132183335807857945046405671951324517153837958386309433494450590461341437993718318691644624730168400176478595019177906771342050656264366600469247745035978580872384776773625286647090029904489256278577942693935636935063394557278292786774934924100894325339746866504088937401201476768672387459384624122401373590356452277045056556518350748003491720372480667669878068730859127855541364943357065712907182860290644583718255984461722184443621114067565819543770407505709225797104391445573942795411171781792892779673218917819339724825164780979006557940563906122914056723171357826618480045907851317215113822333230433318086530967565801300008161177121847200630722047708324997537511981698189761708140067537108958191819835325312542796816925178454939854841991530966022900571866379060574259497357393282748028262025140862995345837002745061643028223373983562172988659158454141727578990033629430345170150184449837544817517588708182310330162741669802911478534486742537210269117222894095778755124930254645460384269794706710019052433529405991940697305240596599481855940921098623981167567841553006512225587640609170442199759682858444043471193772751450337761111305419489020502932756311552076139511408488347058672653681331907847507886287160792167501645976561906991871396826717469360605379190787296229064797758915087440001323221423673566530220908893611726161313500911059952010062740476234775833442086456594694427064968159027031744489868978044104811916249518536036699442063142809483454780784507092032971709843767637844399431482231280492249396281496320900512857294153707868285765064902046940237554650885254613508568679382751561659039572549835537920821344950113952128868758577959899196666204113721029841272212747013204338900501628659478377546928925129078395784616809027601977769085860840452785224492845735018998051412044800699143897744570184042851018406277198814840616126589627491275384394118019999089174887642715893706049703772839809058194366338144190347826529275730523240411782863883796386359166243408677542224188688392185136733976959933868869378221857584813821618992348966563323505133942972923493023696804166183441350107568193044821460804420108168461562373464593521907507236935251191203550093297475088480055796564054150034359035291576764052931817566792551638439417299342011003168153310785993921033433997651157766899786911406152858036437005515225080349878919483461643563877155379171394679496421337776654440519897112146945468294768144501216673912646016762408264845502827917369957340130620634401720901550016314991578818062278502214401488251641939969213480945234374127951338579955369720851287366152110340864432941723937677406337568275702512527104076785459791447873173254468334470318792919483491583201539554584376051895109371244330772585470064729075561410858012522364133074396702880756682017914682874248756131849169309356983425511047896816824618312830607377341120408600702984887662269174479277584168926602454540624563988674617534363579671149736461979470113263527218413001925065069818972494880756328058139459512534314704128065804917746644220701177732211430932123600959943872061399150771682488951172989790973078601585407822446147501077953258975078506380668667086351314238140432148613955008212821705492693535809053133058879206291416147312090379803627736571116196584270982212245553366301298592434884414990547406947311517638585603237837232923429694711197626826501778930576590627423031430374870049833891656770982885288683531142402058657798305997864280137172596668213800855178715988777651047914086265728942780386745428177981746486111992411178984146741771152283047463635929631518967043499977381311889713349972043824112338184088330929753624453459172721648602302992650591858705746489339120049985268502246060730911265654034384124935211230760203496898421230270053840122726268585613835104055156649453551906699586898616213940779640009015045181341705636642765214308163112644701336351094052685023138828957530928254708346367673668650114612596485778805745120370719384790020636161316549078822176077134773595665353440307808937897587348342575946845941620774653751331256165481073400114148526100401274128924885955408380569016272198485592825089592610999635583932441447087100320723359618280208776650494909589476316917471347380647203914016928395984925020338806506493110077721034571791788076532125376664276138386993633931817228788809764085590446855760256301929700942022065121379990682101302580184279473966446441810730006308246361194427685894073534264157497393941538553033162935160815689045693548931622649894138736979849460996288049007733699644786987824999336553302523998019881845511662411345854305412036338668014300793620951848557179213881002075076855191459586800387741693538839965454026583722658166289805684158536163061043566731128556610658978491501150018122610081684025639093178758400677856281613957447964910302505700942850864243761686849484534446464294747321034241715191495018077832860378279442725535750191066290558967499908727769629475369732755347113630492638261030630237799632352558981775006608375251850585507397272413062409856034215350127811179497239213919988104856498006773098033832164049956423754700134543386476270885563668211048090780196038587632218489612397891767958973329124838161887799124634406045177147774941846473665567119984937513942524981149233968089061939477059786225569118644098100683094757595085443031837702088029358020999734022194417342175812174601488109361782540074224078392146707260410125159814602059274777153509404085395671036801642042353242240813470211092990329927707671349477038651441722301326506809975295160238171039750569225211750921243746282243541570434324099094034074261627005283334415684499963613379864961365133804329126540251773454271343662517630621701719448595445232696625287440373454497662575815747705363766334273030770207236282055552074403395369015464825466555225545737223799305211476434244064022775601433808055231798503139861365677960560068414050515129927821279269751784224181455074160778941971604091599930896839556409441787012456325332597123593319530770089429467848977549349773715176087740689899693706670844814246070011803029643945130052032676239945057806998510606836535766755381579116311826126009920516097887002606215379323653336924025462986196832446519380494368891459096848449835160872481599470462762616939281497796225231390279164075594991840938292269561127802751754272924302732924789556068323984128794200972379158165118871544579682667541577538780887128940357425924981506453879877888719348026885765688554754801461532870267994975814173833630869356108331795450690498547880227456345745883022126527205566194562187133456186722412922701785571170674989770784979326204080324362753071176021156748278083223065347084496329442283299968692648762911471973250394182482781165423526426485284465240034083925924090704412453177684045127847644837688071336025060521313138798936058529369483009877229337220554640639646823217937370180120224490467175593143170039524020609586322123250734371894411314994037138278842868341222533978931908208375762545530056927127405839767945291393173116538633172948684250202147981304621064829790278567652399484682379189136741025617038136244640741817829757434490154250200155148852536866862560268879640270065964212508697410532680795092024564288011411341871275121711947687555120561818571097319256068658640675647415312586899688652354584442769536577899028123954397198802657688683220311303783752716220256093749664598676975129296664287688314251063334967057243984713100924263338420540802306921471018946000551155663495973263944799303559503865056879241083600199681713766928802511743809027592170057467616636082816706096446091661441778476498226933301522776103316240148216251163686144555744464375482013609018771539821567280739308941361359668951113976037184524873860417162775846447500538313685333096780084741219354633113991467647107368988022867705261936699130737134792871468163913903688093432976916117572071621066576827046977138886833076618476629870268116973702696676468167503668600526267963542033759323019987977376343658992343329880539072552492464053666049515797633489891581436957714589907206990979907106606382004226707135369375052150663781691079929928345896703351894393144874676036892038795561670101598365021419541012359104519843699135447933766815568044874162579037162746853153453130918574098368755544446268074246575402619016084604167661328740254933707785329842057548440254603834600569684187049716789574575759938753461787091067797167919257125042159731175327457198206081652497250724982699702271260873394814806145903280476815218734427679036424751683264901605497568691233658671895761020892316204545317378940343705976655125566810449449946872965384936606132549426720832835200655003817590324125853638747215134572068319583745396963079532269453494499985012825533021270494481773985158246021582444480918399122408442402100126229839144214258469858539487476220344214061121793361570970758741438022139482143121748933976055667451340404995180169995673010771766267300738570097420610984199786577299990681537047768503388855503521410389083673162522414653161658967071392166427759874800403336986216105888670836851793975204886187525070395697042063840660459362501489843597232059104765704082194325923117556440153281871233165878137878301316844225131000096355935931134525906963611007626954820921164631019933677663790881560307764754817232926316979969060790238539087995249541082546989632526099677180675095506436362337571266486563349258176066810301630616484961248264615273900697800329761801842853816013772393501289392122738302303756391987789458297824896693869148363521784926791544615253323631786576308820223289630556006844261344851066935406958882348925845977684923207963025455877816098258439564851526518601184764620305322765385801555389763473542413538191496922163396458133552356347898504444308530747374248780131337062566194814453515508112858376067071921851730190362368956918622302356094747603403095302722606527123512664718143874066868564496776145386472150953255063096454650704364861206003820353356599152509178706450448651722168392978247349765375522291001295397759915047760187716288739315150437336923420946068549580382926936637399734364357466332191581872924332163650754697022128590427817749305496886599777043812192377475862944554395422863755190887862600533857157523757199389547837641707766294839940890637976546743509037828951642243201016004295639746861592989695877909424493656356967932965718053854478743722449309790671230506291014826827207237523229321648034920125165177568728389921791079470269030518453800172709886575354779205872085099414938617721114136676471134659493474632699299804752030746490177184552906932645102875714569479103254062716085647199725489142743227242852950786647598101176420657653698202857380460478595712863884509313444704733868018356132190458454615135623900807149012785282418016689550520948833311884078056605876666248362144390413685141000081202133972164774631854989879605463605564362585808861991063854462985822165388553474469338531222165392620675297823507593186150286899664364325093188568749594183025672941491378404937494349439473306969264264107500725190853195062251497514958179177628903974983100148154547962543023472859176347898510561873847080156907294617879299208921557534749534556210569309124788010653578413651005162108263560306915464551263768968417347718632634067789900499724741917380224919453650492136255187305151132504039900977121264151710149162578424702073934852626001830596577789332964930233580737485549226374410117553136026506492925954967357931487222694394818582895252617146963133703199641052210633085645106603008516802835326522007220018737043554611242740545087617326437223370551771382057465765835480554907819909539358484262636467743179124825097899740627380707154791076093152364886795412900412946852875638737254463694557005088250265886585327673352749328818382580470570759391820591010918702511408530190513100748261821682018627724572769569222060975385152679530594614737659982116780905761600480338699804791939193166909628566014873586220058352775728883543425806335946945534824400125577291549635166446675291961252185368374973302463759189664558937521322745022561148669086094170684343664073634928187138132592083109673272318360330920842358333934175647921070989361998032350969138224677453218322906967732885215008703067765089636007176447808862846783288475606397068034813748094325076537733201912430702506079460242144701851849489804340880395692197796074628169566768972251226605754422475481065681704160138890860515084839605059105831059831969174044471555620988216410520405603043500399069511949232944849003787649485839294743838822142654738829610016839558386444460965559007615382313184525056515458532819740250266378391524723702070085155145024628946820949657948628368789474286815936615277015726865304498341945589690819139122750181095538423849442866018314572280020387902563732248963576693815090200554938060277746475217964811820887697677694996604341807729239975101518123038629093554710488671698611736896980882874761160706190990054347590467878254519753735232441680670044445342739016518978633149848818623200104758161364093690095647479683413276674158394546659974078384990286722891948520724927067806664936360216218564191419546145475799549163347900300398981288653119115121012232133366290010096229619401958765755743760299832786174227419960135408437621696085863386400339293211571075993212842851077759278822588807235509093952898466572181432055000061774727598180758366761483167190666923040842874122826528274084081890265903010761951471921277603215018619998156626830346073376346732118062442508881463016505512141533596132411904996802185433190713134671264009843879644590642919418711919859004965029504358105415286420459405790775566111795044836492168762068008068182219198974872225604635137265975366236720654101647189709459812991047193754178384925504395815329241696215687903360275394034465809651787922086928751534261124236465501591121605115819460316208308048369041944447802276934651610332022789761101321764524306737163338577089092846481844953119341279213304285643423403048506033701439865640285680196315050362853143426698351635725865839828987158766131978937398764038957957242148280361426914292539204752553442407553917786666337814384551467432193787091551818214062564411101249318573614301945735565893583683780239279876262451908656024274099834074735702004778351786634197965081830965202892490493791388711670345248748567362150365032619714250809125913026887816802002196718255141767292536736900205617752933108207369028081093947271142405445835095688264679243527647606819509361284711612342105115997495389678118545313385054254938494537440745042823173746076615476111915859948549330889207240431789318059472111534748136118912743175020527160484032807229468650289985092947157433291873384965723413030404661572058362912775151583285867075949592474074813113987443726823373470759159407994586302954950649347716533345754931916813093790477471988002504684674406345644475397731523468231170567432633031634821682268995926907580763062249964216586693623508784193516798047761929780408511924911339861082180403862618817298415248253165904819612170718494836241626833830933981569461846510490348001089653449473673421342179333656605770598675677877026373774153263147867123460492162558855770395301903140919342470224968190342591706750627348605410131237359823257599260296741348101311259654021440109552884403435512796173418314228968022761796094014176761453423367762245256260343656290482052126510053728632638632126111170591856283570774071414455540938562125886941906621851344739990841030495585463486893739485306602814223270596707297796887417306196150393597724056038884015923410245354951793040525859581538715747800101040122009935633829237758621213320437234505092271983230367197839764188904563786398635403944724701158527497510271545214147542274296997232404192563469882733602249517592301391858272159632170787758442129390629257950498860173413959383810445510701977064697075403740561323963491249662737503658823655254610865558585104307362986233082642655972248537441403398706722546380167817485383525892808641121409927716593777526156143459200296656755958098061367688677608566134204942359873482216098835606443568865838413659761311524021670454653392386977395037541708782370756697320345078517691438743114395552853252610400381091434423492837650152756762826247875913606817256535335395298448105556130926917868298057866908010622117086847671688865430955107694663613406868054879495368488925828717192107296689318647068569079890431266014561362886324701534787277807881225304307735679595543741296681896306518998051896468093104645478580515384400312563757795714862987092247371577520635499923831831065559916683135044883761532846826337400932057244180514875624926726093123998457574084368640535156799399780264253783291658306803671814099228139381681133171477575662082259593148043316032383644746303490327840693634214429797552945734652188591638290160109176459140363995346453684193793037331315078417668037919406729757802777582162876704763802549363487042049900885073012101869740696326597402250050079313815059370725410135736808763142178674431752033859744787933995632681672981900201363872497152563437623647018639235734561214293951569646329864974736676563116451072016209647182997594322144928106145623692329370482263761785372021006949944998037005074693588003510076069373815018142429759014646051055656447925955998112713750377325034049143767654215095842796425340931102509272473143597543984303348391367203854948664659238313240251998693829129329221976536712017412337239021396058482174908155475996796800948010460509237011990095018548334568532318708622085336022962843094794751522933611258882543201279777572285474990307538306582393207876254965346488398997535467399700326912180883751144682155309653498119524482420004492698910530542040995613486665789297684786262049912720658895236329501564196970327845604330452528647182815706762484990837438395463352894310145939422356369892533635892325527491961521816282997408696867211166654025873833614766151911615730434453361448458354712890478824290390447200811329376880894501171913742352443352193542702217667520478690346681770152601139607413817420415585904220186864455877585877240347094778458667351735463601290907700861832906425606454566292406747716684089444916310228341607407845505914284729371628881760049375176848783564969067825884555674149820704915899562032772355856661179313113565579872392147048711451005256150202949858660341800794825544791469126568689856477819641712038299975148205684054015374243991139708513330920783946767212642307582157569408206527151721891444042939515072760641846359257519741493237043430446324496402978796955164692701407031016009243388654182544879518651291096810409045609267898997755432090059327263423202901886809039292237633474090456904323839296824786934042228273567031868059167101910189966823166422488207200934162382841164330959816105624126901646047033231492935199494751189458122825209798726720266041182252410782465638297561726299855692297120031897889067441908587476353514501539615871670828567927101667031990979367723254442888493726243496457363084058299436189286479576806019834882851909383640254225590999286096236804346621391516794136612006457056236643753810902112112722941716522823505831127175849511950840345336783044470834045078743449104074597117886389549788103280385678575086080252646623648781439610983139968703829290591836376068975372172544147720726732589124748952100646970384911222485354677465581065909235558797270842876318192661801164749584918092382697136098795794391385241527926006394330382374126216279622639223807149410432190845207781984629105252893207505696132883018532653014253663007083740436859889376370690599969811538670844839501018018884453563214148608269249180670671075304222090089235474080166110365778556392744903123505769249751852610685379154194630558196618001388889380615593973648735639564639429397765708304439858886613639456635322770971620323147982204129056596024013030435525242046853612935713028858847185223176826302748600198232684797494876365801700268200241563211821732093468228514528626793879465108167773268861358004673555283185803422708706029104725674867551507684758336094031983258213118288439501636907883449340142862602121550328515570608544758043727620786165822421456051808984279651978491303558709209686885737725072754082965301102699620390782730289893495114418686913726332879783107114019513342581781290214970364574780785828832734873609495869216186150961641809956959267201579256215145196565887081611641788434305342321189753849687718213564253927346660722952763822282739268426633154241182696641432120959779937686130363467150195591059828717294124061187831805846404839859175951414803189046548261928943956365800892239924110013630412738698535023380135493045035005903364611049487163781144414181708999895289987271473274804169055942264733718305823848333706935182371017800314468848419054359046502515729197405406538622938248294129706431119213637796516994280635504195236964299790596763143231086757358700021975827103449649605896467465231443915520294467188002323415975844496495324722149160273998218367108052696384984207306839924618879676862309245054168480047685118585651459961293069909921800257410187065612358704695343242856284021110361109691946382774826640054064904188498128517551235067597680340455323027659458318248684855047928676447753264891980083694982920292584339798887874408459091733539288615771147768134359316687451611923177780113410963591747490258849637590922148462531903904447701786357803834536866280263840061342473121549159028081615082844491691728774073777712636605251197821565074406851185896385366251926364076943099490825261424104065086948442312775020127372161531133852564139074038305228440482819917918746189163128393883097935915946086006591680686886507219342038940515688175111608999748689796124771127297500345722777984569976658042070026601234116179943773290435558564751212653713667554439156254410328150137874599261899310072643337199812144619166968842276590346349925322592139894040296903925351030665513136682118801498377342835752951099478572852600956555071469993503984874857292342443832977535581753726997588842043285448032877914806740487542036808412958702583738575953924139173697971485871613252157034847261207636932950220002995870877823563145262885083257666701991971914537632162656666882621679178326752664524749651665382485793991538168375455816097419485964698802502007335710659714975378634313217055790414695369119379883836160002181116621712058266542091633548095245730308851941452037140526888655097814966351193392035515256719943034690544410057036248032940632184601497844836714567974096551470018543595853679332831465992648891722944422515927359240481539377281791878434108075682051263228795756282963294166508276093276991465171492513908144730584630080374556281358475813707631249308410455165781989309705553902460207745933636749397096398229872100050225954932726622019326694039028007096792013703672654808073009432553813355186053177371981411059463120869784191356504686041328231464826927280843172925532807556457134943034594984207296630172457420642888768484376880952555347595302810528323605156218025372465041542217505067343882059790155779822223958350202684138798978817538048775650879345982820056940338689134351480770760344927566585801536227321925720309118456791719603557466068557146975628098881695964436012498265773102804390142941351097873230594255183265134263761497624130292394865728421040396773455080581658242739321574048601953713081405638342739222520826614273919524133879894851521747842262644458292874417907355203200145496966244302301636680224476211496680523190273476360461971753448612384709831157210772296392717938893666987186795646057852932587928899439183734835197021488909101583672278672561509125322114345722118576000698710794819042068199752746920966768203817705003921674045347099655718983174218507160011598456926722166051190788476604420555405301829894072653621977774205419408191888876529789122998019227190934380677320463832837584797234280754352830434216086462744338119822926354045955707281152791569349467157184495577762593165302903385439922528007128921147038508961386036081438231378048462357981240954532323184711943729879463626625377577521558573198399823730964905600085226668540121789751762437912706295190891534615012020410984184506484159763036779797943469209188654075258025952269753257845411486998697715117366226520966751007741288431489983327962780137307126355782194399045213873617203657138266488618917602271749440997550150085871253768802439078139617558954827565721563088288915201890065880173479844938522663756284913019924201608798651100006467392707209715603710668717253691908429581437838789862033670303236091063888023170987915209120898739421515215995044125586367832708301663119606330747230457461323768916564209401290206117091663457092233120698344692210600702249676284294853776965649738010591235743619365437245207508538655450974395174502268280549475671223720784709722912038876670200659918203352566028283515438313400287586732044275718862551015974204278245631465879530679450123414207908402770845830005347298003270301993407703382666687031900513901255862050608384128066974765296407794412451866285807293017234904537350683886223331231378412082239054775229022275500290523919965708209698515509745046576759273224695819193035021481188122391444671363478373924920497317972308866028930293951595571196058105961550899411436957134229375379540418195210168896189782076020830440223170121450450903142106052781064587082966589154367544242226146213627614374176492436855780462866696360218877579357529921989971150671851009227047516649141942773384383901874831441762023385925877861151920724915659610066712563433704892359143240737031597044612381411462037063495403992678628587458776102659204805082699376073588048682446854262062343043615191810429851230891096895268771974485406059158277146128247704986187967303303995421630789653906366311020478258489284390152389533220695383752992199568333264278896476265066178235477103600002598758500161778854466671001823778629662708121185152197566965926017166415521959939810710866306452414218346888015375097021473425405710659067947330885105273321952624205548543073789943574542986476359175553005478171290014363651373693097599680419712604725375571009894346243356733775439509971818786365402635772418536040557956292397832274881088946432855616736548972620634473982694367135230577523316242367713282289422647544347188522055666296103938352457677351270807344043332642728142939355072813434941950788605894097926018265926085306680752106809527046600801785072493819487154935482039136616181400899716712223394088966770738595842031135024978346639918927630431231783354615791537906054398881331341923863652398409865419838047984497341052701283692132036957175935131249579260985427953371566259137501941231202694985195701042011657641431837521809246261840148750469808173270765372953928557733205764708793697849380198492956701822092282951921542634765683177180316105388139051514949363419346292065974188827618063776164117350151200895268740722896957362107414297403073493574742739805331707571971328195313244790238305439479840082368950462380675362570289563075365771883446502405695069787507576187542090541249722237166877743587403312779205614166523343166685452871242634847792190921278088251257943929409895897194735830606462537952705628353346214800466212356808194473387223233510120899037534286007978486338109235982156808794984983713355295453935562831304653159916506841357668724059395985522598719057936982661654587829983915973889098959842788152360847153400609701757256670118251775048483296998984262931051013983701774685932191891207957153037374260902669741676368584209614730401951244763485390869043423475234650201110420370302086920524642066240234247483000307560137449370995662875834216656213648863663442302876774151414443242254263572168910565780895184422004060605886349285712558899535160176164987581768910497532096172975110043179492421916491944766828763925179006302285196938680245023059221346535919292848641215193819356830726226871692721011259478059967767091217701447087658910070887572735720132531850548313422327691350303838195406365701230062857533956853849598980358543755324360986680789051237302230052119350504705399107897016440076176903878244974687621821246388876126433169350894325963092774597535800410101250605125123821998466721721923923943221505857321408039735772803576374262709985204319597940333468193210631244944493820548318489559149038888712461179706239083443745981762858986969930213964865564436082613786925583769164621158346432837323249006191914187292646149680598573663028327082058262836826398128244844881166775380518534244624439921918561693917274629522090051213383456347089713659068653987286926607094147973646026070807770406617147834724600293677598445629359625560450523784827651831503315622248133504166865247301507389226349061214753348903251756578607840252292525570160107846014538753390531344696762417673967816695559303157646407893301143631548564135305596761901485940819032702805562205150933801965241591016129727756891108459074150689739445398446704530404792642219498068309655607197231507313562472567778299505530515843970345307600961255825876549275049734223973529311256635883156802391040131998181027061259110160920694038369924198985765295690105300959847240086592141867039125091260045707000420378003840020942583580935700546177848100113240895924638326673091604379686527715308719284425407560814306583408709865082443058852556127684974474844908808061920426273213854166113899403982618702260667824643074076243612890206888929000739261806122891269960220336202189972438908023571961412034381018246324878351911420656944747757269405094430729436993346371329757444826201354968262270974660691491129164953532589959497645491634101321139517015471555708819083360225893863758306773704522695550760957138726654769764620553662352527979247857993388762031867146984063215395007853735458574093073695148279360004990014388139866207841904858335744037270870430143113310953123372256830380415320222941456335471907197938944075515520197518032209177259580415381052206134628091863155978537579649320067414852339545144105636644986203035199359397883794245489178049269720204292152170436263208993325981950572714084276726649062990282787701491739581915967361258056961863996082284896816278641925769770996345802720150182332352166409474688491076150826909074458250054593091004178091992508529672464051832930876166759925940601540982802549728832247646803108440048090586683716295900790049845457710861296548610527284865887010761025391101318827834282006020948898088681000842774383898459030215958747364801978608449792714280332655011594753219670929251851859418445295352397345276787756195235440268111978670622140706653399322853987134049647645621762852018181711478030981044938579468191855217950595094293892816186230958186661322458655602631920061921684722187188530375332970028913796121893111954417651958061408748076391353949363985498750524817666448205032745764936248308826362531093874424469959515621865355331978105991582171713160096267033961677750855773630292483505441523901959178175274381821022148155457260272771600555270205496310201244274473897859685597403387568568427108856589730386460171562951844642982838494342046804998686100986186639581812934279344915348156806573909512600972157880892593510907923626920388397929811654264010630857612092114733584062019133622482120298486137121424193687491966259398083747235022198601858249675534496238796270923435758707388108477533616730447442859376736317769219345209444438671333471363616223429617798348318792673261349435158085894254857511278401275456437153485503475509803962354705469278540164956824363055400794111301018263940504764303135806393930853973671109337611018804686510298268956181161025269790486982760986677248778776302394577982577200656678140648853364853528149209230303044409795320454722132535051055586142744815140695262049933367638849376713071299199947082103680315474206018649178151365826132185861934777438279031800340898225169323832929450990685350983380466633063887382044804961341351247569066732531077645575874070334491238827388242760617691653564887079047552128831187898005696096401271473945752165137499220764465373065884763848926495103511317127956181424041208325413512368580071466250215036765415735569453576509111345384648819018756621303955522733480998440387759216166677629135883688813933944315648080562419918237003137339168910050185987887008348117556636783716597457857472469960440038993354052808545434308033738370617441077209690283771665163582204597578964344533358836288387275884069632571477273808156510602140476609898914242554122156624726405089442559852998298795203834353665572998380786451482985966807251772206720873548249622714587962367234377764074462384477178314433417913711260943904659925416310726368558460581178951826359634223211194394853805122548256467668877214837893102804730828087966378948944051475264485858063680104737373634028770244275154211726545390449708773765098442236696691075221727406052392598564827995077508540397903575181641864470591684420250085884640693142509411212585435652928484262020873185950670503066610272667685315388010216133979324900654018598775027641718106039201628452544131683983952186604745048510760767741588102546030762487403519107926996666555054093188253064812462868593878503621840696640796772297873139433886877996825435628536662677728305721301178996372519933437364405205533508351060210238968535668461437976391171882884527473546999703414265826503291878225476995832363991854971097109120218227038628129219212021139845226700980888516250316242164552992133188206055806565733620052181426466362366447978247841956965386679476171935520116318063980928877776503783689750936859754130672328745427442790479382586326197863604157524839109175726435621833980008789497342149933481973053850035982661604115356430611114842477643795262859164374093133719259888548373424040754750975712250931199552939929011022736928926188753612536132209557552160043852797457488885035750782593329528716468357165111563232700218358435244347387318266314577750229165035964348899549759155076701115680970115022912506326465539986805306147425393178337307929077620755310539826094590513365245659143313748668710570543718294858006089488417740011647608369021997070097865782606163751616765761956573500552104153916446056104510891810747853189943687185813607571536954483864503016614690898812230833552255443065023180344201260357749480413977921396559667671703735382354422657619654330179080687505469939213775724908615090004249297131816437636848677756143858935868047270676095533044994498711886309182323517520447585581220713141047742248594368791274000375856101432295436594583891226068621864957092926504028826466466525751250491470239269985525962354766518530085868946685707743644720290083441333341857247487378794143224149363371632220501040971767731507951488183105940584937304706171723917481695805301152259865861180782025462385506126658870429125087135914144938582317168335790757428229572143412318552182215788788120509079099673909957755593735462535323713878156637018110045631251491386130930302896572972007313005211833690274874556492488671928498606797541306134740370735272857198527606905812872644259865790690683942406862727898476513779283108780442783234645336016434711739436577512372766250880834385083698319970579813375713788407683857213695679934491998404347476673543148913500648927739364563668308473537222627606341635426888599006350184265706285308152969060596260153856197869894667409522867186339393278033401386442547442444639524362352871010161725581483945505333759081952631306107280516842493613813197070876057933506748044337431460302115050033393650517037816786527985177037706902587778349628509575305118831301568148916263463346920155290354617802397129908614569214157008798998204109460041921668792261587632625074416351450203037811903708898378705307719329608210780598757756837802255503726412063984011090053184742114689457532689964992241596261213667064834990508112227710707546385153092131032202566472175222984939026330674740629104386153812287126659362395931420668745978699600000606480424177099295309162019313159335995323782829579240359381264323684000373925460720151725145586145851281683319503583319998860959703901694187963958335358055397445759668586190806371118552689057599858743409294119508454230778573786291427402571324503003214422249545609472065239073650351406744337714064067439755476566758674397028662419643304597124076624561589873262279339584420432844222396357248266932988283834501049803794695748983256232102712395799516904767446261243096527917655639588916864431438899926614649156917841732670871283031046849326755775915406321568903695707904988858406212595667942396058384545237412022150144759827019438641465828779666879620812815177970560401691064562034248291593355560590191142900813537621949335376650140896971234303162622654308066931764887550398693082983678870939085487471356051376831708644059405047618925747302516751466303170321097559992189994309221623696784433968703353312287940858794649349464321081952126907730219219513645040153678006623328998227182135824552566202421698676780075724611641016157884885459550863149723597025739131072082450352492415327041744030798030920338313584151546145601888336472501950768938088143535909655003749792339578921263673148691052441990097438913739534303802128527083030224088219921162683059575785560050454434431361472513834970032718462052282732842523096669099487102670338300280570149434603328583590735443156343227856243116880461694286916630631183983382856437779133649428866498359551294073564838520435285860541796493245893170499387726083237258207290208991238916010492268860259370798905480025086216246760690195310023932966517514035572334651592630868230979337889895987962582442088034672805950047360333494669635921932265799972117197483536230519679575532715253426689608720185631111574001657350322913382116790584109903233961742331994351119408107169065101732792258077472735087408374909685919936181443270378523123518910338092888223144294718258213788247731838579783406529714191673200511534093921371413117603728818725656277211681016087171158750124692745164112520398333319426989506122606590656307418722593601313847454779608883627052675981687577782700332294999285495235656077198822593015309210492375558844632710310008380531159589424069078519136411314762709882887498372482699231077050194547508957689151388787831686086122039275236645982972442025263328067122578789448732386799741282692024966525564523127425418593534756169018278203711546218407366916386221932480552833401756506327544146397877580373832583283819182021586987466174152728814011993710858420702339759300615997412896803509011989468315923941893925234486068019627196797377332283245156338912202601401230143764312929695759273991412234626849589551789423462466043676785081810094766646631264356680393966219828733265566393054441187393939816449495027429063613920872585187780821252153280700022645692179921773799285294416860657336221781180264048508606632205108712925178622441983282115332094850680968954105954335233055837870006769067060161370968913685834240080678938312698217887054288916792387703146740049220696292862826883597167205645863749797980318131948195894778973016409656990604920468204828306174275151732239459676422087620266209813158759498424354576814462406891736083697959772796616467277091991823014515571194460574020660450500364821550350049604942580977204991867146431232774344350585907422740280221086056548603217105554903184427248235974789074007629550617661305555234583313261311814216393209921204654588674520241428074316495013567355437660858443885500889985299237157868723796705745991339312698511673202303083137739861628853515177863303035616205027357303635136169415373599546742073809256167105790057532276338337477251821916234871686274185863463107400225801788541090230867064826438723332344198859311499402858009898865803882713063020533039410863553066756791827312779439303492431581438163595839109606849987213488919754632120973402456631839312010454931776701848143758808891336763947677243053381161915703831317708447380787619751602528618755065935921351183157460612678835020893762478571161708858498920141928499978024405483298119044217654823188011447744227923509857569802460463521210362061273545610821605515759299324170112096747180353136398728364303414601160700859162679277963940375637405098853098200497447003731788602704059754303511718367109384759002410580191613451152908308632517296402254656507418627496144398235162618871255248258542688291622736321935717406091845616552805736160247132632757264564168836967834864466873184988674690794146387856698114326651549702714468232034682744496471723226077553332346029550093405957936076264626697268293018793576700205367802141362453891053216614165698676923522133306798463061253142214831683536103354784631049609040711513397293811106716892137638230975404654851834863051654685408499257599818064677143497253056599277211717231869044537316898036898100301760868962863251380271244789353089330440573241588591058701555757471263008096834089928122390620828419908344627835051666155907905828957434902996286989998781181647031785192164832152917633259834923713139047194287632139387380335488343558325749590285287774648027373368417384486090385143342076555273959928151033219866471668943008591571605364619992950277727886766401632370439071246900015692937013971718439577646118465255360162884262362723448534071870341171835177856740453468901075148141137066897454680596953236283104501956033630440588995467988446950430472639708651839186230824610611203537864789380757058554586242649377150704733398999063065522228752086174284814670399238307825417933132226448504874014594916336292143974631865950910695514393249627025183013371096880690169099918445599866001042723701321716988598861478530437737087440672655596684845467934506318758302415909668980875577662733122074318178394957255622114386450377182667791983484613913497123988780162649584094963640182879469639241227037154672221181988317617662801228791187361815504557724942441219337941558966470162150571992152969209817617067983076685291924220753947204027044013856606020332587745266364433226587148602252410863981756964560735196185224679078368562397895377346994524147297855847260745113581747490336273410210520823969364272999813253736094149305313432097433183222877180047073265613400544230595040423915840023536982558703652322250958790933690262836105135513675738105925781160993138907441502289400208347736681075369393610092019532564542069934714579182253077202903710566462231026231455382255835899355529393609774347398410906084832743319974220507803133071396506819494569021789645486592896871597608726770319792419678246375191587735463162601337258870712340832219726402006226408839801668836167789432022968702626708540033501753475975446654391745887829406084096042245271173031380800873587660488500418690551727632237137872716866616804228651533803284186532256928496367372567524195295556008615086376184611751988185516701034382635724241282124883599556714452056068484950204207648478235666233861451361072692542803720052599232488439699999301231894013537520884637554850540306137048430038362709813737200135286421789382763084146090073126850420634836023402693983670038711675544632888822211728115718109495012121193566040831045939905637063192533668840804976675871676942404824955737924508476733206990617708202289906467666676491256771625370939037880555807388601677602944482772583915211783258596839087155852713208359877541046335045496014679046743208645883770635574024388900016190495658928362754943173279227117607650007704304214347100827072998038410336525387616149361689067411753923912645799302918701513303273325666278567859696060873947910731202536775332111572230397330444719373014208345577591303162296596309744375979198966515207003774397850008950984392132747712173890810488713816841080992162114767831823057757267873503737016430650891970458567329759002882741672327361917084658061979705045143744227885172673519551693470095330872033550261938339606082759414540947057455206952495566827510633518677867707657936718591118815360619200502023574480671728431133690134158043532540762463481228626707691933203954734100982711561998876155430025331978379995919939976251850335644578474490885488703833405644905136848755518917100075546632026713119532193348432938111208493626630411434082985464144778784239799964108375310254138157854349650756790073928924700822451862399618594246637890376089397343044782811621709665357536714791779157164579870309563540689925113273757376601149562913157011125581742289581136654628817302425162897908677476318852296999105306136885380575367823729668485323351473570044437475623062359417985475429666693206855421634543222183941563997599942296367448475115863416389642877086550651683271992198799602067126801578256314631321552917496177070850850593873048459451132465122496752825518839217016661833854234235045441748432013812186889582032707751194654649456759904343234864741234379709041357252236365786649549305474190309928909030619685544871916179110737762337758803262685887859003545790877159172378243986120426362649424615496501312853327213512217555098697460931352295298576619398132034673783625899594712481078516275753758369433771630788571558941001242627904468004629912194640989543384930168404920970649543070769832949928658164940400270708099459053997111517576564881363759160733232002859375408922145787590674611980615375862332252018795309541463963122992234676574741351820714796442861455166442750944543235256084790040182889196519765729903847623386990180728589010020011468187517030127496845701568095681670303139486980733892428229429919442792853383531197722739750171577050449628210097071609875687025186538038450097389428558105713669834760903648256327492355553260228702416848708123088156173972946215000946675693114399493569639038988544505134692208964924202675243648552217929134426768524980482110862444230977576268408592374489509631628150374053187165388654445802598467314593019658598935963346964991810650320836548243603970625482509512597829000814482176239664375954044723222360234778787371022552928381603095621071984470317679533346607168412016900167720500486302228775743785365445663296342405011459966309210566128418773330416769301079169660486121473324014888036647712530259817544020051464295952147095176781853190786492825259993329454588540579737425299490612345959646491840857960608230699165184328089716039086975283258597751224332217914504468860274247028263217143322672879640116754216207179047457966406368175315976856686152573880380516585843680423890659961529571067378238417062786680576306108664522069184452349409978846244656596106555170484124012747640951747054942519149577389393022858338244084824423968900586165714530469949723888845408964628989394184307094491836348541882834670629161513359021591099370682978350073081456394581928975410018319532202536889627543795107698585862603615832777358847874465832558036135658573385061315115852006623075316292639091417593079030236227970473940933573160227900859497821209205778482401536689344910640647900202171977712834138326613822250241376220240178744100651305312969351740252819590214460435381676000219169543967275997335764609187915444153124588589595855730768174295179682120469665959400107877728845436016157735336581152059205062355459477421526585148560266608310567801358359904263136327765183203402426576340478534406469617551292255262195111692034511512693984486193664027448938534807063889849205221256987439835393732759010070152869166884366185946433759707810010660753365726568777395363616964036950963778047980105165526856019317668148362483242291753659338156851264292111513457320939778583020065813893699856409462424139460293747687371560608247973411887018635872746288844656786923892466598181849748170207672032002304520812247627952784177097521994635700642347056723007863800251263673431564485716096877590677575562458339688670002570046475699042670298354648859065235341021797294926029838320909609297184979319375663716730433842018449720292149710184924810840807711134309255775406178161235953382728984497027230935538844791988778635442467913205611255573646338984934632096421098317848432778800105025861355147415565840456844998492942748255583921276908332402939339018979159546253026248054648295941749588840417270487446745648599040820098566225659341723308431196642570067012446748456075777141674689564551145653276605271615888637915150031967759179764803756519822384983616523910812640320957788635702732815602908369908099643700493267628446838526717341156958698638191561450497444058789907468312803652489322241380160671723332014863053878632514173709057671790946427486838984163431240922602587789247017865251471180496098421434548746923338587738804257961455244362939601064010804709146880977279829890396339308378253093624183265388701398723404825495212518134021087918546970914428997328213279683897359363642024190861110002834620355897575257507452980296997029871351885523453685449643694161243372631109408376697176922171271137875392252971033048955540512625199882956219476459865193175912427469261030287656003117491389436380828929331854013126458216784170913897927468497945152713264813306366243200192395777568209285902210049369165680070030409430559725670143457582152425051067407415152161535947471394380996580131070385118462457558688600819608743465355835277798951545944434136850687993198034918014754289581283417592406645536157494676143676697670495043674706386023522015349217573992545480599352869192067556946601773048603571836897956678618674670351282637800713648135228034226614273292058485500429319647906237647061073243035601326799220921543190507392992760631618872589106536011522819879431634423230381415456952618687796470332601821884426547529934698362776835066917555427473124485315671103206653476437671801729580316192019388644588077205960467532029397416598951351852695582379300322429621739321036221220353487816466361233012891144469876349948519575810277763803561861177327090814424853378774578990237438269170240853803455880239111543945373245427213040880656393200875310094683633570666587029564988274378712656475665021887599783955844834059015862025685768314651860546599558128724835097178441819975073980410194163320255476266567424325049394923008188038262655368272353546427381705257438164388754913111348858324622729946552148907860055258444413048728236887938861252410940278629272760868472469123477223467912882071547291684106689694865510614684957900498600106148975145267801647432713090909141941188369794406126512216564183446969810508827339817396149607903913045653690865512918826855195925402744002546878457020080934563339711740907053547008256598378669870708820905786064690558588180166632654803489986578363022162761519412079189716493947201764923031334283301151262426105169604957506878710172406841518081237679718622496077064691370152273765873498642243509683711939827410270255889044113896610625871830449716790660407646248037872364483619981853639761347784145844380323183540174302072189309444913877787702883378227218490007977971674252031562025201744956988706902059059851238188364457351314923406513745979334345912317646122721678760946316154854536489035101357148352478882849465986869474766209841684498396265076508696916133378774381643704796060184886075954745374223418173646933349887003091495651736343614784156924798406969085360641964534669833238874080577372277906281709586821565015785497305737139297838909608094400232699665162092704983963137355445861612785855996405534797497332755136054035512861022910353209956844329809688322507798832829299526861664559613690401228127807052801902177552281077675130616125901913007604415205127761718032401343417295954129184783808982696299007483056572544637381455226425966507962386422038845050278079005938487903577421952534574387959399755872346862410259145607012551391600105005710600902751527458752150758117697958552822813689607012030861601617908463281325382588798846389501486420887800405867435955175590204708523761277884364979214117918293056288185934703240597941657459022279539318936454589172096204313132402478041009553038162882088301294890980481812343630280195674382528127253912761307784526112114269597073742129418130250124103483359924924905004415369902430559277930258605278626558125996056702394240649602291577607927143806289911128778411788939677205593550109449181015035434901268172685331528498057703820929991849549665305138093963771331514817428623805854240788013507630396624202713851393328344796031373949074988780078979091619782559274265948193927314481569976682680569726354040006259569798342823397819549486766643392556347982926694888109272769404878089079788887693078458175938569477318534715869537866044579338292690130148860509049099468302193305157607265120951419783445007402047263327335158787915169271657480625421954801751924428418827907377603956018387444820452306643165172074597750126143550236153054637523967205193213219583707818598663546916953290002658402019732053070921010618247466106447759298817286929639408716154351118338186810635728750486181593345236238938494708513454519026180086706007105468468801031511850897159602230990521985890706869734386360861926794925399685556950666747238890764236691875015988901135266561895476312118852646087942575731007335141091754766470001770407572110615347196575182559732102244903799858363217437759290679904602169321695138393079048770506508313924339002329038375235972830322073994154012453575658630424056587704448354908417072198216133412217163611236695271913937226376391437987162114900388274691764806491556366096243710152371209352199192809115519560819519266910306954747671188236648188336006120043722109085060379318970458879307420568740368204031882217624942295693719769370149078314095301192092128058084566220491765390822842776782862013700398132180070754872050495322561413816852310322342776070713074554061031053741892552737288283256874740695814356879244935095454500103018773380011387497792001057042399113118571922085913877864322733752887612882870126048898586429691544349805551003946844342791664143456607993311699655940233977306024205172721820733913717245066723496072522176496139607390376405758487341569768348254817641034907875889757555961771381341188696329488244691508435369203783457202708419613627177013252889390078231459540509542897106562615545295327454747018247349654411204163360435160441909652289029352826457546895341930149761828252496624897707910418601100523679466854149923452861517684921777753618423670163335159512671918543815509785340402269766966038292850993021308629353390387535225908228954138415691576911193213826614924410312748334989366804452829029760108944807119067909231908798525624978166571973500511330602282566234243873592242148053135389750834129526625814531227621936986251063599283877309186698916233560670549264891800388697547986232098800090117722648947487471534230544241672372580865300129510514204234201476097668825389111016446451676660470509175087173082200290938265928573174865414928200013578169676706021023786718312443636446156774738498698535977941707579826615399767558955826087443017423580965721714472972444033605171667236848087684449205347291932199125679291010729589680204089766100696096132216473336700224866581054763032290702246899533439502678614114620693963956749658178380896922524394062449536846697347764731132467926173808546580269386427371380140048663719085310081614139940633674198717913167976468424651495490611923088201556701352409282423502593707612844724225728556525816921695282683230731531923746487356746179181544001749235072130796000234988524049793868956610750100814001762350367990648764837242465450634069509803953718693341172205555753149161313872677188660248953884645989619239713605869575367268631915434044455370483509777578593543685391216683439447453968951788712019291577803407499381729923427787139924250885750851696880629480354929070129561443401982575897524813603515762459563418645470713444178566354207920069139327532527729364153881938965582553691379051683544825871998862925837181851741698529756692746504321008186527576105416688573678622449314433021338857381790190758790360585823313980799486314987127998338002529971840300182653709857938531802927186841825666276889970277707603093543101532890310411385681651526127374910674075927546477697868068957511580127570242336969717172316190025854205228919653167154612178873396347936137705116670549374999686596556048446710103160093120190902376573865976488932565682537844968825538977313368609087632326559497953960576230787255867576952579194177740217571753761032243307912937686688306384238083811961288205378018962993828887218810417190202814939504833305970184916649786020812252830689800531457681180036665931968501919463205094428589780249658946714665739786224112158246852182257525020755859889020025255853894913641328341095029320644361094757116985164769893843863941816926776390249610638059034142431605861797148752450868785484870715346571711668175195615655867068796416499799609588609249459864585404803005469235625652406229149511716885032327763416874582428671169589839184392551855206466035132540721912282159436273274412255470527527333982616749188964740240374066444648521346205515231257418758945893825010531766871554965067712444411702520510669962262697566737131891963843098695459845998372370466016773897433103960731850143682717120748028352675545762051061263303567914529802249353992250820763582706460806804787294895620820252310077155492856993672169377921338768748331363223848665840818143522273386490094955152117641463274455854605197082390141847129372958053931232521473414654493418499205166847424417207725305402994862836976656071859629607617908426270529115567098833001067704405211115261835311089842738957580942260039432197451583416256904001146094893094265645693960635169156568061349802061649855644325534864141190576128224194512099338119529473167116259007164798400106811342336449150711659593227369615824110713972714644468081671999576740157812044965932290777624490084154476417884024561177833478934319871891897169530808797313778674001816639574810525238660223271356827567555560046535171210466651234540034685344181951134779930417701294577043842606469118167373553728941418008152794188139563793497233895331846297199281411350413655066160455412771847364994527795401287966600471722967123930232124120705031772617376921212940183222304745342492145344199206642035172581395784018217847638057113190044589658894735219525871334008399136386962003983036033530447353677179798195214434754230603159719101405790282985823966746138495840094636189685338512078616625706755204994707286405603142735411122161281244781294152699936941424072512144056927677429162131576975029589472507727076284909791893932675292482317227175561854869190254130538470067551538140870143689824308250764377988334055082448276491683335160996744714888132735649670653815238808650488126927585601519084144361998386087281730561633036748476715404012650256180584758518844567389370020224122363014393640433712668425234030711573389567196303800436101591577983282004327703566099670613743767021035700634728271103373150707322013520272764183505378471192420382369299315666122684161970021543378733615696244907421096826667358845318188593124130876491823869107392689480070816834267523121894725886496009218037989686959399325349439461649350571751313048240237041964762152149937543656922944322343297092832910861887712039629193703627437259064798728466893316094020755740053789158825769238092559354658458679419137454992780614432010593380905880764451128540218781752424015913009284223953952356243425981297862627980958468428272921336391652160030375312164998296608310750680125973001175578276320050197434617880620597945733540591283395262493779205531516957445039535160004592539139114163608960092982848632677737503251792935186132420679053626100839322739875568243564248360136150697370723759129611679720680458487989337846157005469165674233756403106146081045273466397780523882366129545567016304014264211751879579384151724724524207677360834744135318006696450159764068702198593967102640582258435708735247141146491405945974241138994629763999810452906168496037597402945216433169118750156999669761410054177416719263433822581560018237623360537239510014832287343773936974902837437208282365758841511961676241807486001806392640301857492392370418733974827158807164197141408163897842394673504692653288911040575281630120451551703403286691330119352450589334009434152843028998733305795426950218123154162915278561227179561696376398545345237808520787992543558279567245265794650984168184156893646725980788774729363252974480220825825675147815273044469158089365751827558625316173836686728458220247249768180675183396009272456026874400346400802709367365860893479717392348099069230902835222991584249132920601782438851668520998099519598184321799446279406794978037007248527051516583153386428309452390421258264489088573076024905025862016199204502725896910566219726259341995655386157242372451808218342258123670059795179769155417458281276562577890213900035657408698113235844459527308018465973405827894101760894058310300899443579207053892415885307014001124251323432443753875774546120628242903235782676953256045610619014753200129468687905835908398081585709484927443271279929262411557431535811707391020918181315191710951706405409616585004236239138685238149960382436169555063994723928002815759053975261603192329356230828101612484567477506348861368263800663836057782210709921895163910793291286319591930005724448944687125738463364799067591233704701614334598431690564902960765047798577352380749924634458947802811517642038290384650927440926100823632339191700817175353995182013268726418384225603303891384392975764997187331906646737557669528866541668621755102500154894197437387464863661528936547434666243803380243298762546047245306578953961039456802054106482793365682359546094006556965603331477822203291759266620568587516940464168475479062886679093841653124436638780761179093491956526725560473550089371406982623661643908892384265682055920114771387017422144608251597729057638155886827218098936948799840206667508763196908887191603989989539228864221514234665166109531940769253460365709164596032433678098500151824945774103139079568388353139470113293453325054669027003853517411459436966931352355720221880513626670177749068416376483634722484429433752533760626957240326378932419683768018661769790127350160267158881152920102083119302675254029225138237752432805632389307947625042744436698533255197139344227884976432034480781548255387499175704973355067029056815430492841890360091023745843647820646445128860544787901624717280541424510881002715108896728443163051710422324633244358527213761650386230789584058622108824449828385451523020911543832903897316454991171242713521099661324073965690134005971384936884619118508772599110413335799099001630750505335348804594884356196597029602533730455433088005396789772837407120586118438087514071356714539057201592919689362325933299143465622645750167385133444352383991551261184941622626117151676592347626210182736802999344051370026649259532462032815559186169623167251003055820235532278212024938089813410468523150537816863501942534312522388983569857703538711148206650106464599088668659703564361649150078431432964714232834879439980176452511605387340927563730921216408442011679824928070850058548803682787694320309863302333624649689351994830867086790107246573114316988665662601427997497147289478249240579148241710310963920687221716606833142121571422127232747425879848580026858983526650969958573642327744272372625280132550136757310870251060249864772597980849026743305959179799322068217358885702463542000857140795895285409140662762740485928050700783710517299626189576838254673112898076890561528554721892037714102611008979093840474994412242459637283100678025659224731176003101952642195149143039814453260347375835391101121432847867651912037638274347150604486095501439825504507361458327748644216138399485724935450547706446843774611676901443524670230586736682125773773981028964667754913813581088494002516250855203521562911504831391631241575183310354828807480304379046190105888362644060180791153694133624092254959474756046449648784229147763933163042777215227602397792268926563440315015178580051989174454054407388237980820854328406856671829819433060784350023899943505849878110471224650349897777320953294798689000763295624390470905621855176493758540687931082323106840017200726702644878777008951637462839514096163733672634364997285256131221541788396058550506676348168994406292932446143361389768862785233220199018422688954858219571578113224433492232683364471656896520178382752420628530521729481600054864776980580055832753778646551900983280378099689295615492281571958215777829364640927383426158080897264606061261695878134665672996527103062593183286885203936604148636431405233492948348910998120730042889945500467623546086748258105176097710226461527865321709419554424157416181053853884300798610289716321882460385485369533979520642202351907176796262731526341593150620276371621222930349380829440862626516604999340738053459185605280356675073211501090465957433538297755766791007548856113868761946635065060268294061995494648637932005392013628138692625624441570792808591514953539873896170974405495067587695209492773764235911905644994582887614110187899961926710386167908662979322402374011920571141754946920966068197904913180291336087202238310639001214346517482143255635289911203334815380134347524891698457957972107763248517239851441377456149231027450544098047122822816854330488615286097543250379096262192458006350728940709865085254863957682935703678220942594034095675155474984101444691885532701092288555311916373276477390317438325033194364169159798103407784059176267525133958143882570420482839802681776772893681243272333381150600486100920499628466396028431991330687980840843202747717749206702827666306501590469466413766533963769865565453944618490906734112062152985521148086095084113963916098316523996294316646244340204498311125076007639436295241644432834212871310066740763024904762248798477888242730321579926723742032254934410477373775093787317517851913029336404226096468612244185833190338487484158958239316919162420242211893468906201628131993376173932164422147644502552239765220184805023227670374175282383254722406548695314335325198387015447650092513023713093189357109300405178726683689509833516015425603384782181739826081876519597618745058526744328560032176650417810914334917348233179631889998372715329781497305437643639776280259864515192097813467272693614342337592493071322755904657229877539330794389517450256894314092087831189498373241377197759830573555400552340096683343254153686949621738978812246955754909921917818635185369734145757566096180382613561771975125388995067135631301115006880500544132332176931215389142815874770932488467592677764979654486338959081440152427402734832309340947681459443302001028867474159906702304680963201644208027593807113243021070980127124515976513302425124595727116538778451306296468629435349038367836771588506378546954181344620114869479200066366709954730565257679637256705135548139493536455516900262531414967520460893624309360339466097128286163107206631405917443927991876092205376809163670463635702148096198395338374898690815408631279429057327544264348755999848711301150133126832703447843220741118924831109419495514611211641303739911304917697741730637612143675877132783080761019653233552746915924612009961668602682588431719370002680823809991342247352448990301217057630181920370971059403399666945898060306502374264344461328759729990619379521652319827737899761666144650183650372062697551596184999596070287157118310131783307591240571280285132296661850434062969198047346764914227484317408408453690168104378419313656884619716825117411665132898998238630266038583218180376955984146115703117375254499149488624460976686912230630260807804715050778194171083437558975499374779886445636140366313328685467555524546145395425178943129951663615935233984960629048843529898317076312696076825125424188936917848343160886099444041135458287759888063333805168501245098698618118139518863944630921609799772824988153936978374245702075689495581906054257009805566585133671848074715675187169544606174759914110401048088595236653313097026116016121809165730645716546286078847266873982651975472907287506423439989636872640562256619476353282432891660309565938753869157680648478696274041490942220631476255179601363346218436861419597577042612459564359296865698376425064644041334390821852800194256668056800180996880130552146090886504550951945062150738244063957782127343866358827217530474226554921330277868648189717858224996842347497025100884275793365792088866046122397774965095528083755536850012013511558933836329806203916604061866306105825665105108746941568269774938962472126950387485674998391976040303667879400532443962974053401458286952570106247041590111873785253627863222578445970527691428472126462228970917820896568580652409552399541010593293286301522307404372215696462711381721385199862278908752202154619837123988280173937016805360575306693918809764299752015656703960366037457701487768250767317963243075588581610410833202694453354015237258990672691936874221171141919765756927687044510865456578074824493592440465366133984411562197433239025780506364503479464800223018585117629645667391617163566198633992282605814343929376133583769429941996924970212917680527005106010731250085324045238620548507361493009942368597461549898171542049457176565947878109437648737041020478416785004625517956454878564007551923975491297334832818502750863625479996452088425479794334003907763424448500377364655545684970539872144102127337029029197376973250380134614300499358572416694048842110760268926054435089364723819865252676007127017472601520781197095036890796116753989294340464048637251583650042435590448296716236809819633110146665724566176789187957879304213796735219274234401094918135228748564676431673616907058019532879056633314969975282661264454819543179893109245104987922223058406618564127237097712182025225181997908640611433874435279616400596866841304119949824421558470788659771717385309425899165107500137385155148623926189116646224620066821559619512273290614956756334418997584133892426869743966194482331363914300759055758982109985641595334212146264641910178424182933780765854907558111143903400278287155699899960523269540139960866096427942743728091412591061023752485626369629774921418192939643195688728103654710127798157715505569462861839599171004191136831055538003663494598643792576613817430491835903492316968618408155614625868332894879671046399990504389852163258791887634224759583754872181688999905590177264083971685171395030154603443525883149420518715750750380951710575180951769489206418897733422082454197542781310850679557947523639422782755552446379238024113895545639182903736504077148820353218078784041982301627878580933921362278891272980543037382226575365882630162044338698764346728299904530261907980569405104888309609741235233945891102676888589693783309669135111074113193663604800423821757074997174128591785583746597989933984289051940555621477707339144254547222001138970000339017650835010603204746714576577926777784130890947069567182957723280449122444944244764194704705946117133798671130648354147117907846758865191937596637567371164378939129999193169017914712283429512177017323769405827527833754434373085322825062653936375081566812581088951500211270812692588351243186010499999723938481092143303296834152744323391383893099948337469971339639931462111245187711017191660902195426692642361058189572148946038240306280727709450898466647554623672151145257679786808098095212203326419541973938574084585111931246676550262464721836960074849352382125869513504687511556398215732604503054946473774763754844910551772930205027055354613070039452594173520037517961154487919778398100097295692639852251961354760018687884073133077655101535288345249322345040590423212247380902555516027029123508760547065357844843920851540816657629826009123701813220326668665445892297504729046673198498200602964600452308053716204680633796112660595941650597156335967398839534094849816997820349257486665916450772487138899536820148938819762220741403310405497058548057777934186515624631621295289147707963284038855655976006270670387062142684318262609243339725260424761899655917827791324316711999834022340467569882173720295338144571191882061122588505379704324604038778243229204243992440417374243447088665636860408665454164325570082598083242046064770114870037994269832781956031170668969715816491471652598063235743667832295529117856127069450652088908548459545099917910107926432720488003912685806842627397753702831950291603462379023882675230336517960974703896460678648563003292557079626667046483638635899265488247337217796516698040847395032200724362891082222308809626509469451890410102021853488176235625427850108050800319535409935338468150565024995543628269901612910613788321436154677364257865513982044098397273430111874898516701901195030406467801692064266271370274180541832870565724546881980278831551338376944534637117359605078987880610066474038451596207918871246668347830173978577323931657910082064954755352217281459571666390678110839459623634573169801734120730347626441923108419211481830125399546348277190515574582022548315530571450409949116535487216541300824664702189275417511676052569252014048406509658972882824170937449732205980648782767096090808414619225668493287863648095414848005297720930078927603094876734441660694374497297334980365459095825236787457318288310482245491258516232169234867888776476317238496508724229360605504654801042328358465818110070628987837886242800928932668086942986259568977235317178458894392082120124350916345403248059615112331435908233200720046444765215728416034663820673093899371755448574125021489524821592998610526839618829069631300192079078301391444945860006277211702824811291998823757817205241861580902165568930337817861977298681999327253968770403501775733693432662877917932659354676080442410021986141005377313520604059253174819929271269972572509081841874181841372532041299322145594421558873856521264985505463425715207819263941581682158336018471926223677819945680476356806497726646900583608316673461542500883493719893169231769639572654198543903099495260024352650848025312845258159443425767270232308642658343637137484925905384188846052865210425418763841914678341770706545073855035278752666612016193192945947712297068137413912851331556732437273150853016848250975922722650487322909554002856571151453879680225667313937029642896912443566110767576837837322544242331548620830873914409287818566596757785185830312263996796824499124696244832644080420418460878600704300017390753194291418082142554231510178585026752925669728340034923934899483638913147687963925819419478641822738627272059022628748670896869538475927281723370566075552474556841378673512582868254947943108621897081110709252315351607280099884674718592484578069429597043953148702203072703834159293850782654609342634886831149244473561066400181536984607470856181193334525423970814982805950199949578402054487041550277112872495091604681717512788487850558570395694648322560354273694417638942499015472408549453679494021291984319665461080549687282133223697521356941501541164781854762625165714369792527247927146262581529840413851747821350875025684712465399512974354270187396428830148383267507344265013676686687356463589529248480710089568015748083608840281200017712547957850288768264501611551167221344802158354793502572300168921658967643418299284522118276347169681053866092950846531947720643671857308076311594571499229267479452339073441108922418573830758861240396430983382386224828929167976382716789367880996330790830165818563818984795352288808400887752017604232490757548563298999616113873529991303607515356889649937018194266177420589297901080765891492597826732907188237697189121209529390839007288650054088951034056792439101721707708826135024786672566482132685973616420401468839862229780748478270662847548953217797611572690579009430275983873248002590048758042264097654608624062026175704568112801770471367931334820463472080075876745360424659715280059088373197417529292969994141732111803261599412614890452673576971444487614846836397658005557186235653224027863765757674207479098497385941529512208496368707928735674458208778493242134736734577260290360877007070061913953101208101060248268588534405335991243240913525009790825152701201857634773596647783404243753470595352118720926934069635663134610925556775385034540446804678800615552982880177159361481695766058272451568421552846608515874308681033322983777757839983105761994808752385694855653317111698081904925140932844254797945697772591960126779717582260227825615340468171166964269250307420562535924040281265153771515602298245179342811285163023980318790351447474610404819244951851542138151310563297463964979647224180073768646155120050150967890546850709136108818865066591678356945535857246900436758358836317591245847522017659438877728234421456182698514409725896845694246489224121133198072703872018017517648575551278543266018829566129021005599399917021618925927508064150500288896275048186692672996001175640786055812539812697752922335638297079846108149952687521485358585084488359855765877769168958082133151567719673900548539611468267462450859072745343125255564226987415165383714654887921139325372361172575424788478821635387187836431044550727956740699484000177092819347577920521822970442091472877736323337546988002603054623129734064320914613897408759766941796506806405138458604801456640347869944483778478075670334315986494741255406407535065901358579921671550511627033477102907163972768041307161114079342942385687403362271851263569476268685522392535999096174422164281213977541704507095654267741660056825515984752751892050186463085853775155895999233751910771801142997768499098495930398339689987107799069233633327947397365061231118424532103157481915574075195699941443926623195411255642732327061364684156340128039687217889828786263464414582912235527925980105626913619464455641299337145064632579876927034196202486047874768007762750889730680209829165084034095314288954132540434706570312836725430289719467266279836418467272919697738261037812062240351097236812192980074152124913661552969029459981506623136335060111683600015323188388033432823992354874044999048684689005426146842435407399271615550818184989041602477362488477556753685577947401345459804494511858906724519174862042386063579563324600438789177616905434035793987796926392704051992532747404893821370826603038443376576850272647011013741809597621630121195952131989108158802808622728747135585253926046656896076307878046364432632884120397033694835080651059399084614574742750265144755030995479552322805106692571134703469656361581456596590711699754736833481250244349966108781554914438897205642688877778872408103518874292738926761912289769973472314530478364116551663566513950918166180286917032086155916359064954500993072351459192980009734447095067369167158019707036253482001122073325356048051924920297425355706982154326336116120328470779274172687935050530573886084281082950976863332056980566528618606008901197081907277313138009733834307774296391919559763571791575524697567512205044733140389586644494121053028932114798776449151817040286401481766373964944527411812952392549351435355504052288370167274982982751971932952638181563526863510184849077563054151678838280612649447756373783621860348303323694147546128196127349305620117251862378909655997224286344889399411115723147715131496476808391254933301262991416141182892920011109313770315697949838332419315891404320634104380596088259000501065951721475051721692635644951682592011743730307666226044343058355741933638766514103248370132000335338702075557780365445576379034694947655409860406138419920809009700144032495517024665992388797335464170053654515344461683477749557866909217240974154990660918948766965491399894483323408674216057551520213066118955491382011143485079127326889039879973322063093109932232457116181642355215957927539398380969480534335047802658414128224258822887530668141005942747930652884520279089030589987875095748470930330538049954758437120613814526668772712766565938114965458963695754430879260483307672542858495882956569710140105645802931305423830458424011174316871054574411696103492524836151523087259163495589252034100888187827470378218953930693009947508773307807635574246126473186736196849213585987598962424655277214862587990285806142845065947358151357842809836747369038467138422093841256502660600123806724840914941117537303337040398539793007735290170454446774025985019392830658340767941707132947618452185267823786128340898846999436759326655948302692561204099282250515134042416623937244991895877259742586286040730287651814022162053992203329104699790901190509290672986631961667309847207755290112151487644922406564118510861078794713427221768938484383765119956660877265300441886912500666484694624921325643264863551840239393843736861071268929142597399579640628834133598336351601534513604534105388003712194667081366865698870527264686795252503084714821019541860482235670387195220001023232908342487057632661173219051118658573917484753571205054713817272292670349823103558243339612326635638979624692239505024407953779692536581858582099290478691034311757528946292398256457097280390345580237359318256039034036469650312974973658044272912236249158760887856776154929354516957450786977291073190831123175498424158404785121740990039640891355488536512781998407763042295307811687004590848807204792746810209957016863472198273641782938924335765293493986641705948990087831105876957209289425054838739790120063642908036555406635842191857807675695354701721310244575203441382936718979358863764105494979009871069621711280284054754020672948299183183824791694571257196041986901387654481142705922561111972675213515412767286156996306820981372544057829265907283666798718730725108315059146760291009928478814015200445915546864105520917899539074716205825641362337140017744638487057924643141870275895776306527138139631236386705636325724201201444944788231279660399741198271951927628335752863747636640252970787818080362840194495322063492989574080915126452100768905687299736008298218265418687902783512702050465438111100933248666389705516526983719164900057516279926079675245933598326650206038830149795257625816965311264607182695305681455662443287812131278463127376970212293841978700005304074989395162149729323246148833036283766934167807298252081365999970894823034932936811866546550781223185170483545737327096298061788099650594023661602896579688492128427478293490212528984217961532567898217170218997323172099474628655466512785378726949096079566835614239945942241957768472047372588455077536051114278822829791039131753937533642161951559432255430857592174997873341618700537259632735033357511861659675751902521545273489102084946171737715415077069097833102809472865130751945257953340364396443367632863982487024776310849196112568478809496616646216423690800006814313073388698192385216421446846247108761767497561930956178602772112765259004927992758736727830539038939210888977633102853728615095886044922855754626465927791183456626463803744828740655629174224325625601370710184332011190354612126723615357979738514514914127238643482930016533428146756574289393832940959580628966495231968948608317840426361722844888734962013591929561158071538813051686279889765759431536181587406552295696730632885567007683196405449214926314122713847089328967333778019050295866281279652557191015891222235417384680697921226493102183246623137917754336292918624435178807851278619122707933074093492922945703998818244618620935242133724816887674361007556656364008556598481185580515265310343519415168972890671163351873525826450089178945322962091020483013873688760996225406717850524097604387113713207122553304298397916115155596713622947953073059598392595636449469714937287833968903262837585213684057892725084060168729695194209895706300534941022668028627554472793770707012800002104703523053303153151358298267564665822317676285968434455372555424863190773338515649231890284999684168293822591852101628711753170312743126092684123662158960346731989834875285117333493069304495272643826872682876565325653908271636764363658969807763503510597666282210517401308801522927330608773115506692869584496449793756469896707600228024335785772759117930137131659171716535627935927787836166133623177181662995078990808608299560763198389956359334545376828819025601713221439857509195235213040284727996056377547221412607276448231038587649645467049770161305078059520008978616580725108084028432626029160001234295123260673132070846769480036910234566736139942588805828977571078911035861886526521489665654326472773231377775806477407507491105687020216931412494127280150085349301881134385037482064487035501636218526344910624163948305003663956698778939370116766664791232080449402955360711607043884189428756522832654522566191955062686050409212683828995389404799074824574883902932866775768231987691738882253942785478488165116748185694302271546628800803940941685868480906950307875250963691905723000509973826318723188920389326712349374520979591054182713233217615269932154663083579958852669903016059016198164284605649230280583622631318033960876482419047755979001206491555320020085975740491189153492309495591810900508667326891523331030370092584829725233708418117170465624981247879627962573368995921923286456947685148074132793652927861099994939263475651166422928615853176770947803963012292313979705106960048172385077724861683384725919351808441022637378577513252412750518615619793662989217270337864813635651310989900750546171574318953035460536432139350422107307589783515754479893630528259364414452288787038602949470412156764465574971499401004263841429636527858695165866814967498556382798356600786507840083395116628983688458762582789170779034740666851541817525961947622472098163875117641898123319553678918566000248158110104833399485965344720761064517299731083930031990290076018074255832337850952629471870764158534007985480912158479290575040986869221802670295457717943635208198530404057169899029001297047517890989128792735051176358513921825959291328421811388090029810893078595245918875240766503500815625499309108824117385083561004409580316291895595278369971328859959629497112483640596393399803493738515755738174103182509106839737054659992906616563098562197656587616224429292425953887910938741881902111417434579159107969028589405839615289697591313558899874381514964167456855654855421189118793508108033971808471580621552562530187205524627213023973126871699920703676855110065841867978808275432975510791228677249887624043792887458782386343921099558569843482668098662080676500707328295935504285711424364467912629640993583601050935504508650467538324696695767940624230928009873583997072701616001646755157737354945123638267867054462234626090417856216263881783032091178212302405049774837517340633659145893670460826605325183684534314057340245022713259714979237411552573568924427859651357900257545284203067318850584225695902973918284445053118038881848947412132455366024439023768233143472427536846131984683089762654572973434042349851299191414181093543250659633066284880564577317185947086958691084162053357517817513080047338696735074267085727131109564898692697826036650085934336565982896939609664561817126360508268622089350836227547164460957904434606205666934754689016064795519161350258351035351211181217169856481218433438654618048491941591257291169143245377436927747473267842801529346259530758167842964979006826508426868062580603687312864104924533330443209986502668944617003037684469939426478052512199932104839349471387878877926274095158249788264931387467892947457791513227734567814308581089679896393911014829994838165553288176141044043175045672920743434727326153185903702494073109879702676202801279536845310137376834620994741824856848317748608973095997401382569969513796836443219042009520875487607314490519449093254887789626308669063321513161975973327526880800793136208651789454227643383428412147298292599432429149047903170297502072924839598381594574343696997737870851796113211748008159984654734068864082728235597058015038265318217710861767290589686759525186022479484884947385332248020130946043541441746483097327220851164201179340747965163435007776925250580493454999678221851451090005250709879663528703767309203724261434520450609843975258177767860685863319751341220754699419306061654616878970554574756338644612411476127372349230016933253565646451241448937816206361837079199867746184340368494495267932676445505725636235948016967988545179371663822233952089176944100046876805043138107584194544680341145075969175000316945148246463537820982205919647970708589138452816826796021127566754465117327812750656278768367271194406814934501020990796054040785883137987914164108790873702269076652465350893952779862562772135861586549943214208287348603003054375786417865911453611373480828334565311333855100985506193192675805059561477661733532577689312031372012185357207338298856536483537443307877297638396079553990159495349100739347030847468643840517859165581507911870606608713362336225055924659344333163841883393733254917677931531491792446390372883941569740627554309159509809165436958888779706744280928102663285828077007885573520066575612523420705225291980568648254502385515070364741149875154596045797611269039940881889045963061501641009206653092060929333254125878040967600270729824250034123323863642913049005743927586617189063644736696959870646563624563632921055561368770984716038612100521280610771919379998724645872348426772090045745752117015277512012267251805557282900493752981494345119763152758749822985893477562973080446672989123421708936763884354086320600814502912751073814809589251457932506526697306502226586475730531285138678736525942834113166266336512055877012137106581448474635166562750848315216271943870785913346226299887306214273085023923883571891461488921543765589242798039542089250543952210718598753341829616911097911469756473106450934157085113219743383219436809042223829981243527469529501122263929513908995544218007441102732371989300855906574009918459793844807678538773313711424152221369936942426129357913904130382755747884569228834810219488950718787816372194317379017700668291676048609884767164597436637235678759291981153000532634085128106215202287071946334511383315312409420724688186623904350459575857786874171857752810392688482495530647200321370113087200626669374338343685380020767164233723300802134555891008535070259344497068318462993355273546194632271035048276742455693068679462912901399551531658045566178456515478203492702490790663507160934709136563306798144770649351091493552159066444711568563033234448635845301644508731302738206979024718958382509576079305299556989740185835280483583040471405304882007605509423172514160548980599540937421652591990055507788496960576101118917193620961290534526022270069770125762919120846846696520441309573156238444829152026370464593597046112335897386472893956560465217010485499111240193063940091187359443254355558544191616847131689736970929815326834092909194834943090038032410919930028079749115739054305362688341175469524217201766444568197588629495404498328542927902929084259927307609318682136784777504233558910531088517683113010821450327073605441762083587838290300103232738245400554004689338533444512777577603571348973796000824402391787105559732678064938567966944693899711713671186371609148263327075230234387426394870135114545719503810606502454909197247471091498637733259223157445127508448058919015783962179913234606145858659533491281630019733975099168715549974466308681454359035115459872886791321605887810540704753256151198891684377455052855023261224927736400748784237499970759246934610463208381315119550369750873561203457975970485006146073140513017982341810993714128279630436362882720339311109143169660521927541506575044889118959664300586300663768654709473963031095719438235510520825153595289140681158450124245969127140097393143714931542489946473884083420144189076416927503864332098614856214003872577026398749465417220241011223826797514754203344025279736911115327675849968614766220001790627335683463268736914160393317726560032561397356348058962748184916535503124151717010079698440907879787312339803693189426239105829229160009795904180965669428061701230075948024169467709659380612027598020399586322708661371406519576220260106423911391052020752358689551570904117755289610168523237070443079674516031062710730112434586152011675135901834752732173048667989900335779499436832813510392300418188527883091896653070997241777570055210666146148829467525109572428951093435025580540681740760497799960984458468790621743419056347154025326522836510056440641677931276521730220030412593012821066183475890650191480252037182423240221313794624812375293023050661850624206487554059527198870895743218382116151391713298865535778351143616422110932190804833603976652466467168685723910622960951854094547162797726054106814700606776644222917654645738455307655148357772787179267288388702400657011320535507076069422530650025361577991856759804871398978456586252236316098076160718880583590734100517856591444933628932867053721814542280382944470319370651960951876119650570831269924087748232992202488642823944702661358740498207321983250401827265861973481706497444934193153205329585461512151087621525322953102391782486072562301382765446970921752861729734003917158004764366170892469261250136493217382075488205969050237869944253040262040692804912267720331824765693738919402357834366443583368352799293170103423047970693320963362803423126132694726341757680022080513583648615741040447014631566593664508986155929731062043110513186090296728203600230926559567527829811796053912237991692659277299801635088070447977799712027221425495090238920006608816964243094606466701144931392700629148483843640709211472982700345123753340821452623335687255131576214233168437041451720765180833960800998005578359198698466477395913135497951160072761202271012582205320038171689421729025501813592634594912890143251317258861389456775192184178906725264691178867810725232622222802530228761752113197896276243980656861026012726444643651560488600057566157080576342114678665629307369763646725968620696942849253609819438793420728531005959234497820774770596109220926832653529395254205183467684261683953314946571816300191866935625694782305350571507263241092290003556307415477190340357229146020275687042156945983767278951301686356923840290498514708323597164120087282157287844699162255243781965073672953190171913891416446325040406114192729498005097533983441839064593519967419903189724021560638490165586241033970914462126467337299769026570993554210577371437007044788402484720458997273930558163620758021348237578565571830494805554562997917239043171173069283305617359898480927577854356904410621324961113726745905995074429648117809157506669858932225705628876196460651585543308241480697325024115543279640840941227729969739119291389845528155632578042824532693042105354047122969680348871630174641359541892247460459579587251401388989815804598138346220122835600037966689233397988600001841228350895405209772830538850722766998309415324532038099959625157305334797401807743216651955722030641869830702801926174442233406383571535178981639587641096052935805242230449465194631464390533703029889033464312575643069541726479878310495019895315036183808610030751331286808282679233211569641066701411744461479365393112782737110343170182795073427163036124494630313705322652962096818378573631740993960107615825801974644723530889581484282802203794379509261258993762426813645536569075580131716227226143287504553041895485519425605790727951351194132949873723036436404401955029913508673724883927417160240167809543638884112489522877718744623812139093029296790304564685065372891565048088829642897597044630787926852602327180845854459213541505369564209591523983493972828461634839899115128410685256977973138017790013220409282229582485080053691648904845181353882399278813402916979747557812757400390654226322566697484439352692716179323900394921690833002383166875565937088467522323987939402063473900450786051991383718121992022777877079694147455434794586064669387577224305376724801366461816878043517621472903769515463505134091474310183255529750959596574151907498735009248103409975171377300946465567021925055015406664204366352188729506888748687571543611697176828959188670213315542209680017536082201328263520565081552392136160664589465106590033969380717902995984188278592429943523931794337886574516636270765212760213567380346533358797848788764730453962551330637597432734005734516677046575808882456510725491819283483273752455405160784370031119182425336934812217665032573178394776679962716877615594527755402339472302633678740477563352258238134639456372727639149349489891007057066580728836952115060415439543268996589218546055917813671425011381103872874040012568022185931655925182506893919008992358115277872106046498515559834115350122709908839935116306542859282701476937492522467997308232242058556223843395922930506665393074198629559008905058176613407788727715029216348941663518697030508930281116335082147080306599723768865110625312704964313537542025910318395563526601349758030295959306216061284574570157932427564028701783194660776130852190183621702769670816529318136116518948506275519430238641697271676496898389183626985341536795274074792640538969246642729614733090173932448821185732078273672224620763488336367655422519825252508406950760515627109611581842912456046998971138637614603404941965676006205705350266565286449340649736943311199575782962313801261870729402767965470860830287513485561241933327624843491212843122788184727689358010191990582111049253373745584655867630902245940949967312773254859330916859545195227502209671925864706614889498706543266040448363714800402677742593205825710767013157322182629081949822483940501572256578652074808155426702676538083569225726146455515870514035770843228470750033716681907648240511918432991754900720613662188459874888748912355867498450394178907446680232312984418419475769957534271746955826781538604245455432434761190674330687097643306711275829817459930332818261107668081866306804425814472477019747913360781397109991739674494338337994228777746235259043065516956399125014136318888562461438052774901673773189915339386506626344161942399427085167999485575372323344084957380740308262795895658271268134364418266539748444074191981624237991025808673363496747517951675574249472688543525037726850290385636005737252819714062659185918340152282353087255542989645479117544942153802510419202386310549645712893178063446445435602075101986453706819035816657156324809462517827605295734091300696916922567114911678351025030176010572407723792092260456309002006868277532607052594067808837677457748745568263700007596934544299406293174876561249407853414185692772102774503439090216690898509359945568585556018242576742788256713587887580640216403814409295002596645260761462122808683894749308841805753785190529444440522778066118519383788930420136626618577113945020162972752892084959267589535238350849669857244591334502261386657984268053916124122894130605929356107417094634595531317279354646461426870029279055932464561882970128786295842718105751518153374959438015069533573054415842037958316620922601085814047399337073962304361507567955249675969279074138120164097322774757560969290251803133669000193716383528042889426801660345069673894577903337932137406415429968401180919667276969656344286947281733108673579470746576381895062875541288733712476486722143718397710097213680031823270043482732669462445488157789220458408285917632417929776207957797019371959195157542242992177342461658631465249493059042887781129610356504263808986600551752253764979728486655402051933348434130453193481915729946035822256006318389590624136320236523251602182782543802847854211202381083349762496162494807911954821395190200793387172916872589448926390806840270215063385037194263869274111106449564894004688159051268827960889697580523286443108711173726752728746953307097111307710395916847329715043381594520533272408871273779746259394132423948473085798400207857054058470945924039949311793330464553651920324712041418069506462970495290006089115432507875853862661726463070123689303716449208449315171310766802716838307020559460936596167761060091659158448130799055629973452764756654381578777085767715322217666651978135253067907285878660519521709641376502394811067709279118164662848982582175647238850169181206085231797611233109186822767052338358857326305777775191585330765883182773144989556284837383322438425289704052757549722177515197680268435603585520854360113284708551117079469459303181598430024066987088829893845498879146434685144718808085009840529307413181173809929295278258307854321083699239870348756064824440521419267401800531293081240946728928465708863951656050466984290033083976231633504373696368638316280099533988253871833052907896293334731475895202671632290957009146997519014235815838996324084346283777700450573614866210392939461765366756131022848750348633375889945378803290717472922258303056637100460517253196603715294992983339289686567581829426291788538074813591900154079995092044211179060745823091140207545580968312953869439047639359116917728418940741271327019972616059721681571205043638826844307634648252210411832971522183795456285907183717819159329377358048192326117728061593259657475295638353295094158325180736371142974754309547091079222690354876057481063421277299201080554727473797800667592766197011729921993908577787843438687225065070477954961315162571498986481182598792391736801477539547999423171156043635337962145519810581149927646527497016184039016366661383536620066649692483371767872529800212608772869023131935065772721688070545091594353413869916951407688144610966618421652767010185261347467013243651059178108910032757042268370634012024942875589658251647103628723004865625242057145760103399798808376290943026179112491866038765162467342757614441040086662975803785067398019320089991137503086384352043441264572873671353971355490550134871341301688094268575251693145876679093693107763188198373105420460640699486802215075377420814466530726413069762679966039857663697730731977478858655112430818846729469585474671991421779143995898169674032046121041864341989106014044926184093004477537385613249811798115733449491393875393032473434257993289817080732373235824951870149338538156377989004166405154756299054976985677987671618933243832200859963836436325273629762281674435913750533038772398680211712068017822305300792023430014867227339687618822263716175193442018633960225175527525609440700403331567319195020027453429526960040008672723536928057582744533400590190326724472389081157221627068022061963457498699344001581003704630564124397985419755618786701851183104529669114252152617180636378893682723135779536309629001336125610111958526968424207786049549692245330608648654354570030886822808584442411323866366239595821746128087614506793065702015193004805120621924018982810789395509478525205815523776532355811849973100542995491219589916473992485393170926905607055176383771738436285802834284553355344738777317837630617364341413714877894809451019968009623171251122444267966161580293258711907874951323368901910535057267249505220069638146666655278579653908902794955815396860317646564712106900309298366208647199851202057047747718843775028257001672366514775772734653052213054363390868016315257990004168484515198433414422656157252234909819303242333876158944719161890716213084750546260664318685188587849310034700533000511642523489596478000791752921617729637772956637312482570667676536577967406867546545956614582344429769451814837124916338982833776260998740087085835695730979492329748330398995228141033413111697400882783734931716140990058761167751286780510212008699402415509949223157222071890458629914733591274128371979665381161062734389081467560318261290711194497399218663827990690196504687781608781955629477652118252187784017757981430006892140724368724881390714698439367869785221055243954412449604926836131719906974507669315662538116360707693345248266476134046549805736682271871460803247050582551676388649029203770174997095862336318804161308661148708520625152570810524884321139700503091088416859799853439041915380424429195959823952046543664475130484636815546344246462472241786335053492842775586389436409795383735540543113015870427802184042675184075219900015106329081344093811684188384059917941745611804539031813090942429381420908459315860723844424824017644969577079211625593494220508202377959543915504215736349368974699742523876142357045288079933547389482786206182676491326742521339075142425851789802456621313654177971715267971996546959467218338468775451991474412444195282986096088396970506725273601162232523816549762195739529153807538529527429783058399989192826158353942355473296780775154395640866778921692961991798572664790550111920766090721042777883303297257345407261282417242656697841808675165668394559875230615816476094277356955665365777776418491714183147017122038506571447043698029853634643596378573227932614015399160320566638558213863061741175877619736289646915053563937369911575566592243917857734147063726460330241413155310365202240488919205249825695479997384416787150043114489077572372397122172590943121299744036273822943690985801134754314190211055175566454644626008812322081980112033480928712947218429468975308564404420924575054448253621908740512442528757590921958762493592106823457999637729810025100574532354353075564730170747707680461699470177236187326892568819785247755853073804482552674989088936210280699657913933825629611076882416907824030157633488211083939288746282826795457190340412790054667738840877777451715932270958791435176635957393753578611267854488944928249096819221254276819825118858280737994059480038081558937510768833622046151003187450115378023294106684384723151682625484182775101644338781430782927645703320632047027188673892408541912590178382743634637808256054873836824104018864849761627882403381907243607407661735378394982830433515789421882554819247631786098019293824356286575520620249427505568579503711963504161259764379047310633439885367716481964199594290194679094349888478917330142105896279658016843715791489471094362969400943207159380788980426850131773501884737970604067747382907451351632832043421568398099770333746081657200033696401591425590763499015874455953687832348035256302756428495581569920048856733347304223139961060573180714431149831887633678836858595725663999292871119258022413764348907362983489972115755821756570141864247317228183822025247140400296143180573761982904469239863066573952971251713866080800084105198052336799231560706681922646098709288161831784632499851637758531508952050569050002411554188383854090833899782578170184312000962820896912548060306782004792264802939340698326963057344366311310600054945010968432549333715583155660532534298125723718591764391358234646099925243812721772495107823735886659596979147712108693392971249539149242669356341428580290696550027139751779138715350157158836366752007119279122564845009881964806881151432365496989938098119161962174715933953807176548292711395008079211294871579350266495777379043527502351647548495904994374821919391936954198443476172661626877493759715948236810215698689069069782522379174940013572346052221708401621232121320653989493858330424620069163718919686968697693843651074530753341935363339061487774839584544494514403944642904678860256560465975793381154244552291249717521060901829260217494382851830941655580943399902970225485271013203620146538413135559647716171057027601655809297319099115851863007320850884748770959322756795653931340218014583664301246510924578035407234088772700774797917778148918182371184821241199204913486354122378803893691633154089377993653985747154380775720524310919516117396704404278295826209731500079933890980061593264455293766664154304621313348128325374339257333055274066556200996354779666235711338130583380557083307779383014770093245144821385959064334951445915988458345199247793867447648197028053825290307975041809818334618606737443824006340389054703224691121669044984779070248494761855944517948700663853045725469946586698116532250251426813397632622725883251548933335938626461484334503708061346452496728608599014689013447975222398349654079117318519262828324720978189967552463373679068874469834045909860921795713579856690434157744720026152199184197994546507942874578423596014008368127057392931944891059434597608314439970838972680014644105628131843600573052185274879828645825862194124610256993733111320102829476075525147406357904719835891408670179998642450895606592996736100853163937775812607531296878997394343450341335081334751880219387351937956394251653788120994427928394972991127208346325374639152423588661645356344421993352449923758500100888948183994512506951612746047065246516138740017677927279219513062081502156757324523114361906062596046355167002675571599527040823260794849840376091993421004316487084286422533055579056624353642210189122665290784685542818795005461809091617507322755592746571151645393046999874296963143430988622073445333811352477344686932964405320800438251375111183978950058396059199974430446646609310610547140433608037296523351398640307106765136891548088863512681588676711025850229024409006453780579900468382187408357463900886143578685293390852918300416541275986355367470195009455455876531230841847938162682881305283050213205055836459047580793747157888617041596353574566871069476598005861057887144795449016955943038319441842013044567782041281743177807616376723859283350409781489719845022623112072358332037656406651491315365907123684386912529257185365833972579468193867041684752457791039628955765377243313110952668497509553497729132642719604132124959683707456959128989871129172680042674379652372477590960638025635920347418171249646316910678436941710692264005458471245376436983447423310860476655167040124741568876966887530777157001807369103777751669644806619322995940951554541063978583732428619503907807899269091986272208610680964218871035619324661252181592451563423074786299706927645528830422569356286923361709703546200611221691702366357227550502449525996727930718756545250806463708034341008970645900722129533890543331226636763807666528990283677904754206048411971277245362697809846796233054655922163194809166255033813442211939210836740882929048074895124876628789258277600762060607894558852455511781493800270128100573290587132374276974223180905518482124595131226713560365517959353327221848807910542074298122186752975319075727369307451680506363675191724454778626012715526613265323953011378392805615484334026658347096819069220439725941305652945062873797249280334940866474532091411788633186362698125071822578875124038139516488488595551986754164648991900324551920554901762196355772086997983196213221462176548619234419786239602523344548968692140538868705835815278397236129330288083404849474005993987286975803070195438113387014950082167015100888019308245278942715879864559533788941573444098716573927668942926443892194668372170778746158236915354710026990328252847298759418960077975340425284898676548438450224028441957879772187998418311560143220342281734242911996774253697550699190795000954906352404709365656013809802556401808474831665296809817915110239677701817503957382908296863307350521493803000900208604626883764509463695010070697180889808265859387598744417732161858046315395313085512571203388898968772724520477163406435933973652721068148220559128891573498779583994929173008150922011411225104602938618448201403568707968439162132583792764372606775910405629446495755462936813195389789832218405149158089662809617353285217756074673310100974628423566208886102077977922487129323841346590639867976487334865894562130053419485622931166584219971534865548534424546348260457854202003424875151376979986015830582320337613049093701093297658414257149033897381173995890302406863358129338111408450507426592628543338930710951420452343604049072474271849468308854457330907766928441606225263985264474383103673304016829899923300283299148008186460723015448077359969399019615883943954429231538727011960731681227245895694597634683713800335712126000727319172240220191725155361147325632849537342245205028215900887836539489634800416485749366563560908310356506666158458086426919027237862172164837455244365966322562109379134125018522750287631892502136774519915296446552666061479961235184846604718940458072211896519909630353514153036862116924780367541221909737565776483983934869962212870277663538535287275702763343658057107779741251226448432831770549828009852140034818015649144475806419435378261265647352453322586897645834544703385701908706298812712636545055906313453734778871573397870680712135144278329275604825936435298188396663719266912566894148716488989795262161827095022530115090053536959554374498094968038596083535108269603605427947659423696387334619735766517721265158420882794876762434521380793917804627030041999888211066490234814690819241728480012556003060149235694853100535343925681696599537327022217664122341133887905028078479276519173445077801769593091939000710461648477628477319207468214616750242713411926450244704948602193674269659655586017451218711793761234471898812767740019365577653067896360113919520826151809563987099060950620111227418151176052198416954663784663766182002268938899244324732884938173374623340520291795649795443844529072442083786013376800653671936521216511043414956576425929870499799499563846226423539305460680426131337315265617323453347861767364162904838116240067673054763930895528382401561976950158278765495470442217468404896078906832294985839063454414841829776545711111316677846891973244409643693116286688072320611461517646676208898341352216950354888166359547616761331959607068455980923785598981877692336639742103965765504152993607339634132760846012828750910444313261723656985863143146376610551544239617240813971851967312295863708769238694444437771246044115987662267606586040167841102594957896910894615429237150615705492638456485050246804050627533880444418957813333594650329035072456119082936539696410640916793904195848486927902769156607906348121900999719015846886356573208842119798043026239843840726003625046362632215597993838823278773616247889851234914448956443968764797080193993073481855385911900586798283887551177033195234789934792588106398895061653660069278875100944000309146423364607849369680435427364125120822524742939668787051416560058797764995362077226264571329328561344751758337812529477566564661960700716616349914385715774927041904254409601820553238326774838362676764545542401145493869926434106379078304626795024704918777951091085227829348014826775234736142528417727860347020925524245485201475832523820742835326172029285069428114450840574902620370399870206343448025716076690229221924334124014352983606826445362734933788336250044912291413271906450079747300012025410447060000850199463112772449869509928976249983952724075320278088535560266038846140715335471218913698451706040537190270666813932860359162171820029717779096841309678478023418283459924881443729458750779321317337018261852671647131273307608335273435925575782773506062758793474671590734591573050254790870217541667186100649299154690770236970372924292940127425623593675843085800874073296413543591946511096910561496403715938471388516623032146189597937597557654171702332015911743461830866975727744309225405058259528808264447718185929579272768014784141173347858376899709050886654631542766545326916862586239321491736083543249556910042124664628795544775574395300142636842420174131693140256785525174011742116234301218525840238998212731239607460372109517031120969059035871422324570027763227654035488505669812437209210002658253970589260371698874136998770184333337176655989834022411385070891688640675736261373043717355811804376679959510604663862210058652931486966813978193257931891781993571111812801315270804976923972244917898920706084486765837855541324816712272529439850071369520470768224115720467084812054192546705448278643286616529621316292795895169374037786578461690621213389286900485248466192017924914619107383391972238926696934138217634452070776685890535915411858045263408281936586759016385421768531847208224997718085471338184501030382580877165202557406345892608067965981304598280768191803441084248741064801932096306109737223472100957304208155864174454798515363198358586348713628881301208423224110963477758941512839731273019082095370340120906844040631328978095964410497077054140561814718546725032251571251384449822264720813356036533618618809158972790614720285949643342449152494555821836527193118183543585283705049590070438050768835841921694651037033614395832245971255663433754893768733919508656445555390369904854745486361314923958068735491886702893347521944288023360658549542502248799872171351823649559920676094030298331416620742201073647552400639034092114578076536400594224191425612356443165498466607385823963726254276786298957783158622709100135713209432403772712894774757310845876208610547251463620418093643802337404344248139687513187382343528628287222552884715529198585090132635796715910502356888338248892707014142143477806095579354287442877051015776320300089906679555518647118462536213260678181724665684963747973838742745611934726985192784563419602314000746067646357106407570735334035077624099667489025976944749444352721675035403525049987976875366058445378570144950625017603216010539555697318183992648166150244963716479178385222557978245788048614851440591135752560153639834630726302047969759560842332610209477889315264277689451911876194899354240838291615314161023864245964791833482784095770408608319861236755355164526791680547471000362738473689611475350429101713442259495867330529775193588729808470325612474028160905448033050540852799891484645362963511113493221753299947978418739627410265904041321693048641062687142137096263431035867454585202864925397094124463816587588739301635543776621916255390433647343047541087883336813467348482803131724554026745854662369241882000834277281823409790340432045602234670778891793861024814569854010357328566545784513393436815144485543307798109094072709307280908380923607083953271142467347042158199895664975022365008056199512445855563527396077781229524098903689909774918510736068900876150863483011301245196323947811183390343724292783778999661754144681234828465965190939857821284320089351358112525380941977565329887106977019875974556686170313727682994341562464848728359587365328093010141827403709814264243232743547140518585626454404118467720246829476519673179903372697237047590328568101299121931031368159035749199444424585678238035118013178825359614733253181928561771054386175465272236758840693521418162195060967478032896128655740569985827041894246503954364151341321426316098777380484880599304090371161041268945210932404854776221057955964028209487296788094759983515642783524619282362456526646530947483298650596243747381835199267299276658596103991105558204329210906401277196215487621869094316550530048833829050564429089172751334182130398905121212623941629672637112312921099905762277177360891668194456326646306735819791107160702492159857678898417651828429603913798137697920185554082030121673692142072536227193568822647553416150242431621911672915541076152364756744121285055770839122807117635876466003271332705343830612709374567198960093345700383164523285342368251817484066296632768982876906755427163014189762828206702623760659923137090004516836679417735238502355836941879849992898747286671929838992807744343147960319865886624900423046601859536549609304147433391081332663845918848656433757446842412400810424987720304730754789746924383008132679583181267462798166675404004300208196866385233160457570496664087091557825349303197341286845770500803504055841412536921292912029253275455376763141580034990304398365799085756659130173289871023722766391730193617545427027410205849354056118369049488849910051037812324700955756384981439244046229104604939912930058636062992702709349132797133210535060501047314807993004601532356567683099224683987324316343792025301547775163901525612676901684168872208741787808752621095619492504463299642488777850238381448552015560367830712322568897523629684859958947359025167499303489071384478281250924147638087760599952899355107419984773206920760999994593860816327336736740914545210448476536539496555324870496495854797245577457603068710876659824916399270698037977199309983256904734151160773528271594761928687220708515567615642905017802762445030564829711508372460520631307180048540361391884849170833326139475658675708297133037904067097998549094618920948632473297918587672506404743144149776760951992081432676562837057378418518784454333856095938523159802978393955235702241967487323740603348019044182252308142533570816125362149600567526718033428583039968923859275126362677421671735841004715427502962252764038456583676294211419800487787523847925756192828860170465784079399636526735728791746526383138522450202469940703971873654700945885612125309207361907058707018294651705567517430713924744023226922952650958014726825535157614108337731469838903889224885970058572171752403622193192177453542619301046310093634939082581002178889976488896796280444436806663091254454755970539365940058057417931019455044113912191190904729863485506409669435686726453033342403908856783131434099240265888674125139790050241508705348835103905513789178567768102072739171772953782073718514797984483163022813935239980055096295056231918672623764044182634792524325662602658864437985235198789794847265520075729557449617957102924234898584763146516339835378034209655558200950149712443685216129450457057707689924604411689602097066490845481727094426182987586562875867613626808994592689655025126595564117364932017197742934755532880147510513851960532170297224492596866566469370976611728959174223286358644118620487175747752132150641093444027952223082091088878054156366130592116234488438683287744459592490198563321299653421668969161304160854141502455723880946230860981347634102054985181339287663976649552001338921198809223998403787768082917155536509135789001908911415220362708003325007701783391722506405912466874619581471427192922131165896691106122618462668642969950760617371336574001415829745514933044393975667132432011214496046209598341438675168439712674000759931149195430248530698095361417496323594864768240002905306323063071976260316639600028529053529626400909454811279636279623955385837435386202755222899889948526278557587057279122961776851798288530141763028021581409308920791020573177245746555246906779794837437752318498158366753018307873612074771303008431906297501862246734156117311029190046222170458558798595381674560278493628733580512935743929272841337511860345517851015146788545875315825336769332177778328786751276243541937377233209948283273935047712818694316942988141495601658104348249265458792263174119623534738212706331156014246640830075674538593306052969803848571512167513998552777377954760838272901873798221089527092315679790866725826237965491835533841475883880879801525724168721408051908703310892065585566410996763120359158969553498961011817359777619653601478856026916098964236942889865540432761928457086887027242897039988499680275520076438715008697530821840766578755546924761140546425561472727846259858949612763536069441968795905063173625695386236038927830598670724269429174770981180953610583008964105227125824180087395691368596540207225246441752019179011342620206036553194638643436901586127057737028972344204035388663669837303030496125837027723600694033914664824236470110774275448093322725928240948014175082022525748656842880990016773148280138192281839285354797855732569839292200670537953668661974352525572365974873923955241644462804234438524727934593535569189433779097481792403836498211211459425540280158097715358890512890932715711727909429596587975542693454979453651977182925769511901214521833429823361586155611810536080214490868665612570617561008984361133688879952347093451447188295989543752386728396035395407585952144906919309917260906725710034968812175728170709264006560627280574749623169969185201421879759679221484722749693874125570819580803770214209578982469016399401763544985077196236148114094347185155931473355144703972920210309624686593773488501201107967170482350032653887017541591310110932686529292856977116395218319065924257694938818807450455914102645764522409859505807756238255786637910105158809505506889965852758967671405588144699874058942856298144189367199735984427305185789191877314123253328442685075181008869118189468374014569176749990056483120174694815321236593425517439777218628456554266558499864264692679262218459426480793976452781304094140411339590233102753483338601569258339020367684537689493790268711482037018384090853770416561611203696233214809268509507153854170846197108960741844515762659747648707620250368617982946107620329722403160619106477575147630425845520784510418039802794715075093991856565278303366217031405350667884147480419140719970638456954053309969962251464469416909985029346611028272453860533975918765541949786961241463176890345483851793745437928455075205408077474911873895436558765995877586545570338536540337926207582502885876519692786698883735711964820043312584857188952281029660798411724989615558999794388634998734694062009137723877707171848716824812381798183373064231169895178026628234160330869824065211926605333960626885332160683865896806760716415913710271906132886287251238698330023195893902893945807748694250527817492359857059391436514976703554659461333934464062536438211338123644960733239187449457293516511014449109599366448730862394120473726531398175707655081834923233096865566586903055415168683716856194873852099596816824409827774503320594505607394346272033919356341245094373729055573964502393767080137814226666932898748496314761316314347583929882106028743572563654919644927826445174349945240478109665476330263034580715495536840393402493299105909805837098400791523492126356158376810138603874111097370221747151640090899160818445892641802896694979124950554744709535759094179135766328836519275343328643422762773220084896032294513056686342736803409822898400770302562865813718463829716897053749153878933896691892990858820356391414451343634136307364834315870145094763147964156172571082255608452592253600910436785887622969881703078969205657614506773282865504046471022112479755869161054646127423137463069143371815027067163943754358297154342712161290056403309029575611214942266727868234563510592545530672486309681375665806070069722559909229088615409832705251779381304616539290588353372810237219878041140909236698490183746863875365399306989397189553371119062673142958445469608357128029211160892763576213838843339513528674262482679176886742396066428264780591099666299727981756357009996496583592583935010743398039008079833795123185072848143089785210862839227746926213503082032676034493015893464541213325757050123008731389026408984748781538904853616240301869642019686376588120119484944767140823355078986615220054345739682498522210524086690008004503911849942613476120821476783936667620913664539107865432058690975451661658929496368217229403985695188111749341069499239144873467534385061650297064180034835517136513608527795722513382693113070264115226842294297194265884336354662224315186271625937543455497312850964442831023867681185776003247724211077579337066526474423201184319524441103022722190582651419671146066266048251232833469499761405242594904968482332298358986761878489542574444484732670696290969435359909336529941946622069651595847713418361371650787064793868538862795613135730933394088860073450596145266727566801594304667557819690146111873755185443821447913316298211209001407282192975561749776763015627382356411789260952696043014765789735536768762915711319535790567859579076589759238501726235602390446788250825867927418067379004617688326611120150041081318798405542561415689629564200159702615361103549229966990853952435271331444294550448251018892163992926100463698172068796706179403100356776750629864890595720910719123191066365729755975474151268954117172946145682860720518866159469701901906903661869307987159374408644046882989586268158306535508896597606201085478273374763985850783047819169513361902205062262079872615677838919372941729307592324120505559948213811451215499997465553384031703805630468816729768315625627492300599711323703154270000613573334076951265549195327941072592890643733742343923785888746715883687059665931713921064143355440201234574299179005215089105683753004425749187695551039701491826341022517046031794516650885167688611594060239913822259076618601820102921038554400363239517789559214283895520834798857151291577539064438728471886741658136126251566427714755966739066047098442166034197290909847372483169262489542435960537325143130860060727173773181462704276761640424279193152441745647012281721369116077106472024862129485411747803733928287351772495972513800486219715285185023417816985537600655361171417073748138093465613058763890504139802347280044793542496894043569490655405480168365988399249448818600963590878433575401023530964112885665036326522358765638473883829154563918964766898501091071162164326014961285646071661809394846827500025168528272956463877671517580026408106447650277108800634159578108348070614386679038559077089110882145478895938146069549991934291297702835442312533072205559118583410452175017144396222709487059597777670226783339293256081945493827371328980751331612699830170556484989352137053816465363182772933862136778858108577549563072123324293099648153597481403007800099236075102999847808334009251726692008860858968832294505357490044902800256618424635940387063399994277150222249609740000530850288984158358025062265138481876064637112418507578519655823441929770224156493488002564833487701536881071367108342482879543896945532918756597528846689982854872511214617081627883451296774488952124054315637908819130722422995843776512721074215897554367351527882001904199793377039943227238388781953007898747102958375273029227930346512872469532858526126713751418301215744343004831345360894183475680291687778870139922143114269829612454613643909401043444946471929273049551252869152263082713725046620959338077864465161615070231350236797488584780595735071622446503352336138075918829254049021591884121293382208495702935350249720190760623906998658168068099325361769319073752520866479675069285374439606653297547396986125584258433091116268607060853744612622194747362646907748391374681439272594375565578829716568736588569447135038725775957380379935057916882260937305578048326454515551727452925324833185769307932771461527901349125380443000905357083133142149057151054059439196538469676344882215341185212221492726390880960299519978748085324203802825841555060009545710776793847646035995879087872477167660012977621515862637919405462612942099194478165753631650653552063825058034484578579371312922744789206508441201935033728233291996291739699651891369143643923805872396541923492606828512637567436917508807317600446616009175023707057645940288169558767566563421489935947634268878494764507016375143435919996660437700497949353206467458938671111272224661613587788875315750491539004444413517025350882211396256991008793494039033898108726884710876010278984313644613398518697742116614561790158931380548084463302955069768740310498909718655597346478852429119119488014056400732553268137166424207424581191969446261200259835901037131994490914756973186112291978588525449296081389136979557741120786109018643896894525551993671046202699948420944154642863601919826559397343079079181148986939476121641918046671062894514840982508527757617427373429122442840816585130043646342444386842135350826132501029654266134258461513779123838985331276038333993561099347608175672386030100466497530982564943735154595928931435205772201159255737335391529733632961376439652703907895120856335492332801522180224767843852978948839015280727034682059868307548299692753441296067553793462183917132319319842158190194852633715728367678398733336254709358182588887832988217209959219400070571328338020032200599877515291524947897082628045501233027070631649382425575370262491207954031211560814711904879660321094776386271810738195261191018181156100596670467087299425249720743064651152223376480623189347470211450267079600363381474691903728090862559305840820400823221209499204879315012672356230169249837836521150805204079618446986452769743387039205242285356222655770844487782634120626150951228310659198819559157934553229674867491961628614446619198230147884750002970262697638642682567307955011376323010411733852457398424237065230254870419295336070277598421731311713721659592079459034015563824414374737050811130149889338805539636938666087140499424922930564667554600091497798954119868526858626341174026580068851352958204709013914982809307159221813596919843962825055364779465571472320376508207958997575642540934790503309616018214111561544192215423837604523568073141681760201353298196997175961736437050917954004444008460440501016621671574549215333412180888656682947999969681683761730193435283410961045561878396635997790481933489335805984027897608165492737596396557347541080907560918208854981016299456215384760612638639604889696137989760652539094157958403840356642693041118012034219990799338485887414914555180325880184309752749597783963101562083872210164931181681796782372495161325514861982865927647604738296737716590942293445092405740082905644905632709991699486158744224632002204235071556451782377136342973451758369066606811821442472554719178232399205424356159265069867386670187629238810926805043909303244228167892010211798905598999874661620256099848041869634591078639663117710482698440907012637072157041858328031867082449357413169363572218216357594820354133872393290005743633663384432354764030126636451311848501579469100524263003294682543999646345680299946948021334751655049229041887447752871191702081590565765253495397452789633106584897521192821881717722521681772651631178248086034113795546422910928225368233415055713875658863242072253396429708057070973983051670689308540102714605501759988069448978481865267146066953955024016010184005486046382341888034033127344900766551571188739245038282656417208965536323145657126880798864144626993105332025675587584244529406099998080750033360439410703675956243499179482563117292988841829556739292354862917025882407121748652002287025503916900668524931118118548429578853845882542204633669513774087860856580701440910978627312148033083370733261217140198720288221455966800112474139979211890641739291175199381275605507254796783743480101812805943339378393148582021811883227078376628375659574817947378080693220973982252628349141545852270549025860721370766724663405379169183289730888394769024074578055697500292764794858226015840070367462034688413377862439691825064731022696016608626151535407813081847108232158055305708667091809573598197756274844927100335133442049375250814726285917537276226947232490929278681249602884161789608945921256396840720202608056195527399605039907080662024636738837441923397898300737536282891943618712435418834645355050727351371331637973938209998953404042643962395701955775425796395068967483606404354361352031243685007232177553442266192367430961694140882826499278985490142073948845963572902498988438364477751191435404999356755524432875586878676968394952668790597137245961820218653815709103145450926078031145051391770794539485680615415772295672461734124540983335949949881968022056428033333989880851398485012401700864515717413893477649140428566762298014254490390921796514342135394517906482963766189499222949900221286020470800296900681414992185157146475802343553486117987150539455634378991445206932232689127177409050690618938909995444715052416917530474626693580041437215695574493073288993104204618985442375894430367352876581780479027227600127719733777605839609751517767519058276766478977616961282865189493635507955408861185966556359002998108280765772638069926228120224400858707195614601923285019362991636159344915732930349588404698777363466148205285664474140827413080349274307913713366357302338060764722992395271013256325638313396675666608004218143193513483354915695566915964871746426125415032460629998940934114881888016665297572147922292166637026246074373604740247353428959473399379309747928563063847030056805374206677534760223968094119038808140234116327472147462463579424189372008397642045696520242207014622843559391305069487700253229181732613400330973473996912628917898261017334897500127609177506284485583889384152565284338368202268902824867605483308592718105799312767012358295323959041498433388439457385056045193936255606957211866509813423665415867529224246384184180461999055435081530246189335590873501408779495103519586408106320055234001891508365675812631130037325469706026638188657696581741450824950948443189276409796285670169754443177199275587172168134371936230218526781159172875740787069612141948303958925877431380267798252399469149719615678171398370550107695668769258859718895684396264405081649507388904767447052389845544365956878940651034444609400946450786195861344732558048564791819700830929823197925721191817953428187322451852928967641315550406165459645045091772865492196802453498338938048425614059769715337521202449222051544910286496693740759840996094939388240891964786904454264738598496148724365878857559032350247795823298016862431300220522326135026702579213738797251933010081936708279967485841399267867226461471621807026305322552367087489355066767886569044633201159086849859952797745722326225619503873689801068315335141528549103372759967335938598244747181883434828084385954236009672192401369230047362838295165470657384881319928903366684641485014890679696548183189800659961337475255261951588536705541151387029034990611121011949787714273673530296727470633724806941207251814967415813106492212636916388348576394907032253090192573980099183828815456544087831859875029609900822106840421394007441611043392248349282945393272523124360463710305054704355887717573297908916849608120547714369675535072367831026852724321059313079203897385064470034572334788308802367509619711178654841957577056126517192188844106369905709361377734169349534878487343387272664423068889408098009631220298987851677738062206016607477087187832361593011871617562486668430632558887715483242185187466537124532737001696573754409550403561671091934755211194330882056120344385384524289889327933493160425215916046667735337323422299073911854763698726130970402105213743747343496957900494203217007385466689535863482912857339787833860950762480992737567793405639327280185284462991206225273381476504688354476834631465690023475562324967884379210244819681735491844808982842636630607035377402815095239949238051465953604537511169651706874129847674660602074762513185012134413026519375825242945056080074373810667733190037371530814302044182803736745139766964382899203391392629302800186265943490106627507018679471754933722049056020532912868741202946309507610953568431310500654438883231941465852013187285269421306691161345643626522749202227470570684723896244307967346270153490220398718859861219952439708976231303965104175661662947035867902837137789405280414322675700516133966258019492630167854794367634199386148737045024718386476403624568510446034478411071518312852326944538041266264280233301898558625211794591038765640049166725019038998623396138486056728592941569773621068463330322587802156630790191200874281131916421126460309065305329204544087340859102114556082033558452241232974315893839834190119421577173571894664802305302016487148860442251158508799379820012976049821456367767537989334888638271769415428049895892823913581022520801373571986309123262762726797931380946094075711677830383526903934941642039216966363575347951688553345726574687665888838072661925995799744155904168900973333330272313399493589891281225805339085092491291085573664390878919613523012682921768459188581336221846173942603607359872567787222667689679793021077181819068122179160374084499624931665541973106829572615870781769518684327948556195671588056051625800365639497645127665664399353733253090040202445779048133195916917217022239636310847244187458872134726463901623006443940727036902842949583035998401180649362339060167319069082454590242479146670219287409715106403298106695430212126721511512126962209731083819679687668388901099216928882408427759636928309362763029563818031862590986066679544762833203374045134318099641952339110641829598804740612613821244268641596951077978309265566504803708928940895199519830134220660372681422962906022586477967774137107647419331571096917244167789086004027807882602254932043593381621958245316803520616188369072701982168880672320252618247828313521668719836399090477619675579741982203638391876388991867802576375984557620464830906717605059489952004332181541754246103870914904671856653580576128428849117435248066114874368268957270470122115213852994323205687638741199382867325283151524645124539777048964289692012267354279430410685668105405869823080319899531373927436269275177315940495525948553161384373511209033035073631877832308094731759370819530137499088678138424226505849594168179748710698623655834337165297400172853008035888999062599458167302857323582753642393786430794839955018383870136717691497316092465081430958272365542210486001435007924005843823619760915874546369832099166192147479220422531372962875228762378882729192573295267579587207574564252309175122099832063048123505161365663081524546758655200448675802709301376577778352473907385590621157980712653030618830357114409512277423893662495200929152851544912011833826097086920622316494998832469697900023420911907257589318819716273147819139291666493009471093191122703888439485174503000339253692188254771382763361118513351860564838378307538949514315954904270416156170268269344750660485818581042810008453556818398643164307382262875147343386936491111139252116553560673485112256094285271572228014826604527320789648486114925418704184055240537118409713131145778215221126442284916619857494075116467020401679062573855275614259813851330400709484650465254073807059914093082085355574458514477478915157781543214457663726940813708751180992619779145656391008103167479600711797694219255572625487702497366594277779211958922118445193321025785691776544430880991964013607318041160113287656276561455061241922364076757187577834641143534482520538940332445183132623333648189893791856511319914690175459740264660354467035497454355673745524339416833721184901549278166211052513127894078259522534346271758596376436638575273464251840607241899038300055502046351768191510788469343766938306069723320995155151154027815622302432934108989994632927158207647353825669357296452145835033894089782667171882368810731213150318487844251133204172613072282238208632495159546299704435820411251353539088624334199334979280457775076732276990444906766088021169982238640103212264640773000307863590397081896542908565068709260139170944476392660695995015643682999226114999829195488689806715097420578673244029812053613584029141844900670292883387842838831798276768066496174169401742007160739779885987910982667624737246083611427450574358934232742570124433539566127178236526781940788873044936836077212490968571336158847340238026978064580202494570421394038862756339412184628056806627656298788072279697195517318156049668250856859147524765241309451891601748930514241347921071669305156731679863618839951288307574768230810500799402078459156701232916066297908084346078734962723449760632564637854998001802182151019539619378979117944511813696513589755691870062895454946986106387644151592953838138050512688316865252038615019444057768350601244892861668618134567699779164158817342623550798552810642720106961203703396888997208236240628892191174958268930938231120508035183015332198905193323414354427017033613511965303538497743630935990469552889117908953822132885029993633619367192738586431078530898064945410934489457510718042983299111679791731510967687995214985064551142157221359099637671403978619475741393187403996239735243007842120367111009410406786214041988244884954993780668013277994616097119355591623696183916435998338161476718695280831698949657935428298696390745337374681212313066161963820793571327331008089820081672210384198045590270050927323082230779071724229152246968064188310433365698434896564457102384568922080672145653090053522733074088954163257586497997223719592049096402008197411157677700633605619165849244057271704198360692248733054410863874855455080879180663197850045097680735246374509713398405542388338256285173453570883355693203954592390098437631145727638585785520402085969354321817728905024737035224931867596292631274885433740216286597243390864694365056249090604402542686064065703011426320151980820646177279199621581032680018198608534240913749311300893250544475757079195971650965945924802521015549995916219001376229529304005279421795824453887267865930601370570933951750250482791905072076111559589333371742294423547323972548969622693216238406697059150876315151817945523657384812325344223743298704913321232865686092241929832810483305533530851444282093503164430632777582597434019259435268943027060376198390781238446392912643787344053079551959947865228857190664629508671813712194612363524948229902847400201601070743401447044264351911755881264398974329043920197504736638604570389332766255517057768346557236366370203297121210705678640529456623159786009203953168801074040094359768886444891027918533161184591602499530764567702296316280255551051073893722480285569171716051997365555782057887911072267080193751827515169848419818849679221843086525629880017969857530142155966379337713179830988165300157250419075202503120840897099648195127667194618988365314328428012806099128421671982339639776930350675368174683604082875972569356042807224772406539144598371116723066387314238668389854570433997019342261494374732813742864493496341766867197957936640893246648711452620470962925916195891770934814668002666882239802845160399062971833709145308578933067266340330115700998001382014459256402024793860972326776131455845736999952948073921782277406878621971285563028192835717712099408289873475522353095263005813030995484824005980239996018987464020826158103247766879956806407406524265215564142625233644680517347704786347272424341437762922402039515035076715196841685370117910055469922269248645491300399451938231882200087560950050127976249561425631428030056589402033857990840357531905748730350643969625339163816165976028677603154125088566084142725571634490513492663587638625272776999961100456780734391566897073323344555493998118089122456869538041918291338416873205601224974571533750984059077773659062460702592173204873541192218217120601622062686097914921483166252379401296396419923715223551187563609109854606261020430433362114431875193474718586175418193736824256924827429714375163971267546246664294179837753923012047658227594957403069230584442064313801569654651958748708124182529948103621878877784751463235276692806620685248879112356583721459065636901575163457295793742872600602952690744912247224522975691042813303639745142511835140817808221063491726038434524278496897632214838023486891194924992076664752270521418224684195537669060758024507096952675513388882912470091833305091431313106497054346509392419553184088619017925770749502066959332717708434893384397688962560352665867569829731888904738921618674738468336757217303005439641363813607868716393933588749552080478776024822245481623103893032966906511795849940817468439334720695160403326030732746122111550924578679898293976367321328753219789101302290865200411125982757625361254833478705228735038080517209310825049561037246351706981485240779666079708017863896819462032618891709620504498867262064295141212399760145102060447920853379331832924307939366928881927349523787545307246807560710660214579344119410860541848101805445278109861866232035804252757458717280115106922402749715192032196580625775208938109310038659696793958751205958151421216785043648235963150246251384151042737220780778972172690830870455285843119171823882924396712267085199957251671461105789546672726695339486598615201861078162750213273639701237121181249668876870051689141860680536339926369830915548896739668038164675520383248878497418606229118820239467599505651181018113157755690651562515429981216801083076016017011951540345229855531007632269209264231440035333715862309946176313078464196825947646076754627920732200181388537813527389015950754053857136083260414779050063093477451538895178011274047397428762383182891409625960668264258654496707115671716790456605940870685179968805770047358460193257439962992909299523855166467282870278513620951284909774563996234809927811645172816207044207344402742235640672301582434696879999444156306722892554691920393558098464815838402727903985373929943668491061423096931496476112212898416403612798119039255365193501443386937149143262060915187964455416583465150184404494936025069340923760957935693224206695351723449511099919936950086108604775021637419985663015120794551406098690548133519439663280440006168380348118911770175364047466736825593913740558106245913625081285667075739978456390156696973114715726251441102343710583265396250761618697787985701605237984638077165799248524956894075890530357303460500838329466109803382898405732926252990881549401420686355048719894054378806794626041268783408413085829015317623959035843631716788470671358367611939240086951035602477122256450128005730167794711115475641655955790906253339763686142859055079575467380873328445784339280646303889639025103507094398658816998554420937455460491801165781506323720248095072467853442721034065230561416232601970915677021526106331392284012098880297252225239558308087509846251572465773837878959107738615312966126901964001432514307883843003815626953847839370682371100363492127968555051525511159293248986478624635884410739028275981387250068451815366094953108399452733820364322877413887569912799450553503262459069822828752073571945753437502487894902410561618130183760812691796216358800742789843937160248086756100372309355764963477215528878851674843652852049502520816689277631293488375737036591527139184088234256635264197052167410781975757046206417496895731428895764494124697869690751658276259696892327854444465001350180999094972234534760875383223206219360637404148358101207353556389841323246411913645340328277431352203352940938723786670459208002469053466297565089906433439130725836090971157383118451453928273565936270088810197477538870628890036874763205566900310931993996912395296504719927014592456969061958815200757995367680373237188918071298022288362917829977928646629505888244076637184768851984797867344433599709936312363877529785367377485907810243300050420743210788649180070928748319217541570003337784792924747977015245299669276160168960811740938277374854281464428104679170623278929444169926336743566855566571956074862609672024599064600137508768757293048347661475719910910949078466978389946902811851887466255124388898003572032087384891536056631067395015442725361995122930265374956372990699862839009074821659037266850045751251824462536470617600547833697736344085358459087811643653869093509578764931728836916428911721903166201697408966196451224910717156075267645632606608537365738163741547660433364834840886850041467324020306956546426029359292225954668234329718489686477741324647058255341937737058001368149901365127667756439701548931511863917087822580391805119329981370064651369503622952508326103720840408888362188513135708087317379271294393970177683941244327815010429590175998656300863142266573625444997731211041851804670634714495856653270177706842822437702202740226284599079646588612473417127868426447700423855262063636338103787625403155884639957595730340979264001121112628479647591191717296843344735950275545058162323645231322969323158210216477709307014847947189455496422708857679526375307934230522735719192281388413104022365699514180410604142437825337873853281323266127468625619136776883636818894188028928490098731321692430447515813156054967250431660351696140185718342006964026006635652324873847323461227319884560645307374021708597383657392909922529394326783724984189504500611349156243031529450964755829113036974808566690748225721508209242498442087105021945621199004718302267710097555672849951475316145148045996530123566014657611727010207331851058934429378153483155697202138223365511092938829268025457870917160616823259427131440049528101032865664347109231064702260284415594025044314757206968077834392518936606875272303714399632017128860216476893675020915240063936904231735298574099651550630285408936656503758160679756287385737691911054931240533460693162113908150972243476354553785616085434108660155712369362802957089489289021325345902024204871914487340740496078185431066956816005341014260214437990565402542537845771333414266613718370413333428575900980068058883100202128105057231282116106329784155215437861297125349551097505691335873844408822879548268330864614217250690557790172182711272669615154495406992703002279880544754525041772464541021720082192297256694922142717301553585454822117939788090002781000350951818314826337962154622551058137088099656128726485501987431690153309448060012137864378800770629748997608009814242972147367387336930868259889062061160257090878644993126671988027366472124550794086770003757821013814953099235481329552023887858372020276866413381859957931170644914968227231214706933136814277403307849277304599182680400410827571717556075103445169093672025454827483100600740039230515674779624803837375361871787727152068809463999768008432565011476514481355937928420670946786957983097292205048866059092385476491944184751151273142861584790877457276411423927954812860241666231841925271708720328102821865805593866182238733780150674302117138561444756407106778744175901932092823068802779261441640130525821185094452063767433320891429386063394968677221390096564213718045571531065491177109357140300627033116377873186422463485150427162325953164774601842611510150185295087351230630802628163923456448645225966080653961442237912177486467087083929117188428479786518998808736661367316655128992935638688506943164925068498332816694583440807442973206130631440328007334752038125318540890287049505332252945481600745584963647335422977134096536917530716443999778521625827965151630960574810429984708500748949922994668851878178836133912015566715778066380839190265580390980786938307283185090566652589240458660731490691656013120628608482818742114614557082771704796241286190816916384555070135315486274279821244263252361497523271724733758129315552758448320686332802455118554604606798308731290660136035360778197242580399247068654810351295180673747667758564790644522699053351267770497701193838809730134421125134807365185766404378302944716055672577612650812524173897287614783757914381742793746303926343288240859130358878108057353965106175920041511202140240830919240060099995946902540968724272634742868884398940110760476634366866960732849815704017301930142035009566277664108662168714353862302560553214431912108644262017443293693898129382572711993516545413779074519665025068043759951347214878014768001535459526920350737497200864754875527638700985279726999039642901691946758550964728195449387324797024360651264150881354815733266022997897804248343116017594892069389434644572641309381720531822779605891727996883643778704377410088768319438459875968060706863535892975299431247128711982019150270544853332717123637219269971457235898757239007884382324365943027196995680077021995997560846830794944128563886607457347548288922338650051601809407372310055469821552415855966679197135487008423298129097542167741172284944865177457455317636569200679793540332736234836515406680329414324618811759028105762447007795960905926626788977246841390672143385209088339731154130975076815515069954863531184667076217538676222632800486561214384767431910595412408640465394412435660148948448239991143595299837446936972751758550338434449195444851825359083443128062995084719161266635560212667971047024851936571553153540636219814519092339763957000594481669926711041116258633333531889221203742805816395204464183479123801785193998836291549419845561075895517659292115956813300202515920230554705890014584021757361106076900838267909719314067210530066887390082799995243002537540232449423622798070197120268614096329874392258165459417560897097218008964531308123543231259697690126780721757911265584739195176115505649082958606886736808196089594258886183515338677568105523807290341000324652041883207311483229334042395090751614761676930642553426370086291710771105070962804186492234863724814734460388270554264226629601110717270967750653183056676134565049489055218574783906982542846949131239214194440659395302512177309555531934941790348227897608826918699241311259044160852543689902462681019506478640668244137068225585773681890818553328575928670230015590409566906253895253272072689011285711357089874586733071070902561858304062200222230136764055552434186537853954355333680201242501370739368049802632738070490925168589476194358314293334536098685307553784642683217804986566220395212874280934068035582252520947410129071716686068136681226223826223572194980024269794591456118093250206460867853386576200605069120493657832126017660867426193964264804061795844762956248101914962594441143112820322715774096935172435890171106889670897729731239269982896791280346338991048112148362351396431942757128655302087236677133401097382187671100465657330097301930216818439019700953253477696387740651557037599677805694864963827120446471271544884326692857505165422911051828499089115181382682524736403279733404790714761262294192710249609348380150172547186560980218177970516302973564912848780518148754910016001962259933968374611305165027107736813976406842224619017436215937590604689333570228935070316366467978993438098646422599418951922913607376459514556583635071409933022614946009491549915523468301862133692350017705679215775728908669192476681271595451459013017335507553709555395826162474870376034358164743201143940351985921616413699572839572926644639354543026270429969282884896487630618800749055707140019720132937759899373949917806707542099767501468113837840590557155530635408799654189752396038183178408514749929667366939102558463271758656637805605694006731796988740321118223566588701803271145428305598635672784268201899536200367505616807657584147866026665369426083356025611905900148157098261361072884500234125859600687908107866032320327586660604769879265528455555173563144635723051622754210163648677024259614698310317619097991398001582225993290197173589874308488652220159378024560609430597560292867442496295719519744671527229306701318236690869112810161730218022779807021390220083711003415876621476836402527940684927741421399404787276230496446503896130171360581356753037240818987889765368056017507105847278346388791490351822218238461270996179781142277422273975159343524629489504869239914206262802799230265749712212299341008321717502895498636548742420767350547669834818557060250443333059733748233248297733544144985429690815608583864221919506744435658562562848853624398421505501954409360455141789249777336751252550926222768835530951978176101663521649982974596940134136042890571946327937628654642768706330540885687762278388900918367770591283977079465770593477157940671477898983479345636402150284241668632434422539347453011116755692582752984732754528329687593104803583470920181025831040152528613794734219855200789863175981384776471579111194169561689635111041299277614913070980673857632079498977816866455446772409278250940493510433029401262613603221724348178218054555815449575563622351356688007764340848367355483796745789836563814742019614824069458489466213811750143928124550155693598115620758964610858854090357596143519149126492374606394414540648949584694689270216953918900760864468802743135997147603444164873222840624275562742670519908215920696161046969019798067758261022494607315784566770221526556121335108911753785462950570098615486817430261415715598411697362545639218954050446755180877647357758348484980262233545305818586468163346812207191314427197818960974236244356517252123154902255655653451214001555322150678822755120418662242510672574010526497271001263588317291831244984129008116690048089556025011246332698438174328642216423320337390334474990514795475668817455654915232135783263716716443602198261174542361201869815609749893235818266259861169153636048758415537706644973840754558801666756209979743369096494074516395427371044131908904552083052281550543208202980234620516138428483444986399097020717107754113804682599912965112281055012687870010832546760969316197333130727023221325958040006003825025392071912303838389858440591149532397361088249428381805865192205135970838141313958973338243200276147649836688223720857530489363238842741177279167950664807537676547283949353084456862228440372551729779282094046720612569110444130401888989972903827194784161277000248209134770983988775990169992098412363260545743887656742713891810970301016108454264157613400275852831382932063870073261533470756430978245052593000878437866733219444902210391724803197023084324087996595479987240409765792090136840473071526078360752353941179507619571819543456588270292447545320440657200771560843250318430446909981827201307017985699400316822771553157987116773856760303201860905889472559026999122346324268512164667110196884031811538256499565950982893331932047041821760296310380868052077605404675358999298811016295588097143869279103413962703360969542905354225394254651611371575456433027478991140558528200151233399983139341510892172174569904288025558734588372661914938432608792749579211681884868648236249796131150887966419523847044351350126736780764515404707393063250791139700322640649425533305422579078660947385701642164832437912094434703345280854976379376214221741139634537906317496236684191799849445853982142548119414240869381708345425052433983927159213122138407460181643346742772302317922088253339067246315830229628561379759236351089454594062374538602819023554483120242493550564189502074944631906355302156025539457275209891920888424892929681338326789864929699519013266158182634082616675992213895467127356848243395015877540590209421337977209653924608999791617867796549631311971963025118738375410480966084601464638996774280979116605155238190546540911580607344366539712937948223879081388251770538019446892384378792507187356294119375844375073766123330509103821005501057399147923178875650264970675456543158805799577387038349322803976355521489052508108572729752765748862735857435939968495540562373743341210491557735477727009364901296984157050841812156875690692407324695260248733925429703639013806735514384370771677444419626793811594851146535669596236188058739852544064562741751896774504290448678726342479670675197459952173033787882409603796761863264024776971811392580812571132981871858970862572603374993838939511727701858898434915695244538177646758632885451380505451845957120877803836675957930139446627288818883701503004820497256327831919030400164145570298042832499006406088796888736690934319732150251984232627320351333329941635366851868586632896862750291981836896076320720816813310092617915377882259366245802058377347774589859952807922761227022551493056196041703828302089955869678741749878036022368433843745047532110084400686300175448639184265246423119041746130056184766767076862040654555791750636202713979467091962384170634538347664111782755941730438935481473986927034831889103945678002161574796094202644733465111262476867550672372547031227755523116828838520632258391969666784447716236849215288054708307663176439219408620024956583367542033396462046294726188312868602572434658259210938941656693173914727571475637424956802577576964030677460598499779284720658999370482976420701405509199482657078786693040648069158896388169163415743096250620970442029075574986236801057730201184176246683649538646637419484100874995437067424382330893223163950884480469723594089549273614282351208771053070550351258771354007985237165660631773278075921347406616342638343622490046153277740844992805976484835080601959967014037084815616093778064046769887539042546806110951172101573548597514489944510797025321609991853875830069704067801283609977517977262392395141348281019942962048973152041268099109991021386754402974911822640558016113859408781464863455971703437402174714380539904277106490056543973054980500890022482784643765143132159293502717419473072751829771955298872846086399844706174555735408095510159749101313052180928867081722183876921860284089065842670165887146583901467046594460921914357028144577402912573857539077490429361728749972172936259259516427262900889796251157650199917421247644916450907196536004085796911259427446365910442227523258623745604314361475612318946226145317859590301368562849448728985835945160159305791925609100181756558346440916176561358934061055445147299008724621298210702138072920380514214813031417121621632911274428056848418511115170273600862787750075944767136116708108667846397051801469906380433092647762351254143026590793574362251628634730687335858786900176290632970224218160242771582698923561028871717078138272247437773987693665626412152377864289739804222437287393056160253623523180834221855960632585198740622206320106831638243256220636671219755805502275352665090186825404721838191050968343880068237338848372934647321969441359724817187331158434030048735617528760854808868710734500992382260312253701312159933421042198433546556761900731010504285078728325536925863153134840751642471652328451727715528045324899253979425493487208300372304076396701642963791407282387032808360061827247897919391740316618214054722670946330225312706229029477623888007958087515924627863781118981846205591828874417550157460160940093530963139316267847244618308364728677187046854988205001997629016538041106747107746265044492970144417574606098238808823459694046072862654680729742904980337531357906765740490689582539148946949174637724791359892548385236822772674036643944911575777311480328116574977710355504196240956987717528773184667210017091007389799124320783425879621399511813446119283240437319852697674854686739702690264951946213325764884155681764862604598129034595687271329879339651642819087839532620356844808614325662089654303791553660501709429551124198133689134875208563255757758759481712272228856445470942323925800057063770308954547089147629570024719537319146744073944525942300160800191522651164570388339009142633702300709254870319985673753574029898465925041448443604111920992187796043665368288648399708441101080402497345587182896994998454971920088167973059005812211026749607126848023022754933583339502871445945587503911625833580012891900470436697148607118668529445509191895212413394536714502789755292471988798149549839067102773053010497323843144324700719810844230195807680672680295860480623156896841899053747274639131719318195826729883011459521186094892867461020684407355558302769986376209736867691519259496314163042257392543876002853313607435717395425334010516483818852386003998471357640667993444985607496275733122945637973422111541911582657573304233905879631159116018118086368194725144185505411963180193698501316406213005718281580730654137493083428022625722337225375656884504585517719065339398826665258020032063357254084547620276776361677083198963365812832410861633294756385062908686989198471584268793309851012397104275816037708496690370858703895098817602443898501670687601718071400661141568606540150415293942096317714848066250686036864633976190566779837948120655750519986745281785292143460069440533994512233730634902023264526357723308230221811412910137537017021704987056136065585458003994367076002442620615462743793548582100898911362773876859057405918357200161778550337705206596717429434265180302986694192529477639934743424863391398259597113398904521578928473300365735194121491216505040215152197808294522994594470571302679204360083944015761380279518505083595434359015338486401764065702888876541007333548104569325439753700780611514747061062770151798610630217418582044534128193356967145920301581637637063473157369883941016917133589656655951714538477677338529917768618163554725705045319511878075281427597183001047020082049582021088209106516249546843861213901752913241983733991058015931738078710693378570568271839697706253077392578673772140898947724338908132088019532586928251488750593340528899906559811691172526635746627618257143761437481603758029886068724781691542913743771388082036105066759475774576357328667909531191152394735014270368152599552552764639757515813491141633323529264625390108194447731977655167666152505117722030032066564735067742902117422580828087325255206795684999685326630939687945517598953391507101876565858551912105742424633727945535958432124408601816162389456817036441497061471488568797824369694987054829131387626407960922195049854203625133850736089108926382150243984715638744634324445360252375302752090079937744753411752215105255048867964899435353630578177651003088453329464897138124619728797442148852904739923246608945982865403199277819364228422650106119681764534750793693210123252515976946827691178256252822761139910264097879273158524805042818029035113639107151333980342757569460640044362802311886865883787682514770125660891226664060188218761800547461899233933990029232154234242449059261393448871462311794486944764559203939902256465460173729628701969914725164475632287404247055564018150157853050345582210643018652513426875607428202401828781722798521043721454569318458323630630782646587679620295407227947028046049866872703028635178006041524856858424600562935767190617291575371410349319375322449420618731635444855262686570371369965041769538242525308432416375014694954788332866831633675044075609042543887414764774499101584425973755985380069424224636984951319623496028675087961064853773716126318348809284660986610651608026119344176792075844001258089882618524075290769063952433625589668611758083784069134034477281546614574468209410315031517547420062810789598625768397265705056647513783214421427967691420610986328555187414611124953304105593016426684993209143912276915297730964336620272206207023001606487754899597254369111387417028846359354752951201338610409650523671498253886681042645489698207856192871461548899221417884428671100188122081397892059817661005033992213021217053990358841107080027586691268354425815737255002593497256410590032210312517321008042583620685872278100475144889829408985839999622574750399449829963524722182433405330912067809168802195429034776852849105169465000869937871793214033434104828106453533254732678449459517320649497374628953274120671402020235512598765106764915566346801400205649164876798548724147513516011396839085599641554256798913038101229190746478212631096487741920305303150420666838078071262063440984213564981434342752303586839097627606509876775011178398086651965011381270926197532100497010328644010517702771251830861918516382647808865983732496937766971419417038098433872844530740403987242662051564032038910381439399266996864480543671762066160911588388734803567696748006098491824594258864244669446703010031195276836384000259720590204021419651135679401483584563351891409999343682279968387964497360576926982965628885406254161395951879447247223952142147909642240460027251445116263539230113728200488004033454708736285278739830006171691772363582744697435319305381565678012847344756652722045632061978274930367013093058738292909608455467155327228309703748913028579098852293446837361689383095669713274650985017261443055428824325611693058027516674359317311103540869675525518457485312156146048967662409934151965496546359586819177673077931596328935631940723752779056572468009569636573407268294814443465254190151369674456645965590584554637845445796482221531648102188216363457813002792196978303812465542741317546500095477132890701606180823856535995346501226802211997873520877984433270694053044473289371083577730333364749609735227707377101435110101227070094851034619209583533644846679764149218276667311497237190273549384045660403533468165974745000553532624336028879342458601392091493350157404369237410808201284377407910723701102327419960628102172011647883381407397103317477545264116143930921107139132003871482877295592948255240486198685595172036446143816464544243068235055975502572842005934507349886609986955716618031227481828159065572042273559777161695357232384736219541686074616936021138678690168219145317730686413829001929358675617293989750336323837585066838104284822536286161064172802775198181581939813037054284235587500217842355634403449211078779953397938445109727489258681961827236812621463461733076562788806257557627292700274834741251728753571085711793444854441995672989701608956008736448574272274747087160493851632902493018655274141941970224672806367340654149694307265884149246976284249475697856433963398168266209012945015095913792827012822457846435757553774147225297570909592317292344929061742657074869841219904917021066967647837220226395579411647735895679163768779014072956073243158138872845259859602311151448341112943737580187700439197568377675485956876224581354658468751250379653489325116240967379400837128405027835036997567189618715263058777218425475072925237214347753935019688103986775674638774864144303573384219727479822105973280698382859086754741102456034721200523045535418797812081728071570091887507489643553008231961391920647334271674657930610407145815832107310685029246467380567149975124439834305329106810789933172412602316274321303261293763161871827346812256086432618949605511086664450056135427271114248558420348395617488816448303859554486047509845401399215110210259945536258134526520320377626936135579863374071277253331288430214386737421317607983796725360984595191910871741980356228078045657181903055517498236084273660732515961675057103557645001187418556310470811501883507322365234528342015242485976181727807691274531262674505838177858385948523337643719357313371102142118162436435663345359158498609370893043474317961295730434524184725844390493684218375143426839998609267836415726834294921435035493819567561082643552167831103083319661358239449059866936390448610851437592927375289576653128542091355022357249035087157649994748739751640640211883925182448156231559956226347534057584142212013407744865054580250304737026064481294370430057831608977669476401244326752531982392739980508387259240031521370634686432796141972583612741641792195088102057458344618888016769602118979220903338512145150341984521943642331048220284159486510845543496519743559342729941886651370812101394337857580374294403035810113200095020877800019971378943372691079116399969612621976720866498239743455336674356429074544630326885419607109948921631277830170079463826981862749594997524252068431851714045977473832300791192742398434990895296922282166845602541530179539830913241395349157862970590244054673831233717665443556933211080052443101766707037308659868816749305745666673193090900681605612409216887183948427931007184189203328018428465089786202031278119961645640475578680016577335354999294152830480011874734243383804194049823232547483200109300063505607113849490748092088027688356356893049189167732944811712321571355371554863702942137910540735388936254965067717787606123575965174431917014859799653138125350808012099712115017421701395835534314638333420206641561543505214887331555778752693709994243084701547551729872775766412958713457834934330922358745818069340354874537447764490903462849040547933093948959822015162612783346429185144310644459653881801452258431909189878279853269462214055800792953170871048862934824034197518053454177579512764691264525704209108365122857779230737341041943286590300842707177310153148829740971493412651334740150842901270324124845174662538896207464422077654017814590585047706920652738049339502403732766317818072639279023153224005959001341266027911834484653314184632289591844525070333637713217447961902441904859039066075737486057364483621795710438698639415729586331498539118111887319929988698161114792302573024524689864338386083268974418689183385143064957114964465806015172460251018423508596105120935221904883283339952304156678129233815325309685692932180728200233710841153890884850549599905935755118191233073551038609802748734589258666008429903605254371151984740822771745570784983152869982971256466983113489539515548147483628751191227911051124337555778647236408219620810706790712182016771459255018380729800499654653799740360939014553144013323980635818536197090724851541503392701828494995934996251151747700748483740065290097676677308570817504032348275591692691470303178004106211377754373377593618880452594080845166578503625905411490980015976927403859365650767460381396341177529124169404568539552661448527422184452404468320608349725055381887421566614698268370512813458384780617910522432881850606697600187997677585565179824638470965311268909163166121145530831538256769241898564721456443003188702980304045938593653793735443708112287818054975471199460971205543879237209662740987799651451697750044511137593041885699671831262566772422703560149078103710499986993801294613608627527352923141248551040186913637007090670303711952016663429815351109293241349113785863837541878847059547858830209874578132360101936442966682358875293622313894623255509946378184909790054870563021627879832016514743031170402902106386848179596928898398686692396399916149482433095011028526882746521101295092854629443301516247689477237389367947313344847506264669995897869058185478931322640191993451211975409531420305526518239056151826390217748100317957404111137354518819880259419534761495589493578390375364662737496182271615883942845368190801334266372196435232425302740139587697249187212228797882118461030428071144703101938712560296165482074952824817403098428040192508940851794348013427266321244988660873045748249203654666696760724731271684041852083278394683320245862120068804642524433005253985747441023220494473391572239229354256602357697705307122405360250086950290746911976015278338610583224598245972591697238623431840995652438206801302291602503305144843507018819695286638204164385259578848550657922892780566615481557970965287205194664243705235424445504695361740186878303615020339256906022025213014958423081712021700546743910392505809596684407747560876290329527623543613109787180591412936294048058697630261741639907286351085910534118093363695708776586702606627786040493496547562171213852664558938857435456958569403367644065099235385620521831747467239830064836513609190611036127333448211761697796614148989929917682533911267254817944485352777391294959975932416736435226526220842887446771359746346024266520095189729860063135692513184175422870318508001263946415618005751576989101789514198043876185381349282092529900490738409411925747726423391500139966453828801713097033269104930320079313857057850727574121260555164347832382304356166056146845365366539759614744998184160762015895148793746548033447591255633787328010771280484087937319617201997022705077007893032707635558574355382137802454838460561887708676112744039496451877393274891629701555791397840590637496610687915864635905080860366850704502834034001020036990040799132264919978846853708426561636418947828958535177886071803934245837056074169641953120221867540329884075498932073266934844935620627093367351120643767234839398201071441957398146892939226369686074667026520604388765282605686877425003277751160259593074751633086946252219393062022077617739891023832913555208191961976000465900368646239069510295641048694772904223251327882489044103625829789580055974002319536623261642583608694961982422581583727679145730821066684033728729395425635062476944194695526904271902671501028709282542283214073612217464367397974147371587251527993898250066666588869312732389430382760658803221901665416878842328668833678881904782541524332877466719179287821274768536209974321887148507285810852871296634173754720924157912171300681904182941478486342908762011416453694113260946553887942200539149170901371659824280684114063086908994201437602610558367758571101322340638830501622558800747953957316170192946912409981862474368066752169124756125350949800047642043312901405225038866056707620634817540916613852720188376600911672225519578595069548059104157308488793082261127450218235313904954502700933979116191575175071177405857555905623970977321281417814063925952308048703736649682617335062661047198188499584400459638455004232960667580677300569203694658559193653857884414088165977267820674723928479560891653467328254359519655931678884878140442844274548246928174053277634920774961230599354584169224098493197486358090971060010083856071464161363655397079082598035028358569146394668696187585562139717322236914176664376904284155299693830020875661538040766173905698576570315672186130471450442360830448284768360207259351534715879210916004534498801453675314407979225775269477783785695792916372863642985176553151812797229022484139262172810443770932881780909903952027321673459742675722534994385231967458527368692121199921690913083587757304845374940546789388562917884081039354545284231711884434753694045260381976174024373521158479988226442725163428799710998493672582290551948534703479987055536162611092270042356911858598432169827611986716867556746901853275625216476090495942443328095412076692088267013623513373882314535498619383124214387130776649062369962668832370003477326976404747406482992094222125935708568378499509203140210275110493053548584384022954665182534137085285836737233528133806867445456497444455359968302814758362549611837512595156431775360439729884175598066326629483692102975803906665323552516994728895725612732115749473671706348281338874568645498514027784101809191403195994958018359586726446381800944890547377575246330177436081063209690383111807138512197736842086976262831131021077543560035165940254405169618934494531784370453727796392376543339261461352987541884756800171372088179774042590542089957028838530252467566095503958940929650080151440081083578991336413745446355469220709672333297965637464395068011881534580662602737356459962391635484859804735851981246489743190125820159490733746409958788010081321653431615514865486474783595516534543644404998983030827619200419262075037214357241233720362598880945592838959123012182856055661498934457989159530553284760897972311772609925270519259473676990763647141244156146295724198661079585939311614889857183164990715078315651034716178719766660061817448907281353219157468500343009642077123217963758621867526288930775449026205555871011483892955299916861803526677355404484203187608847128163781280035890750544400316371153866312906579869430489615950858945870053787298197515521420376241427432149041595028065248901763061173275920622381096221462461042540532388804886660946537666755508314673180244071908850284256654946029906839604402241786529584918465821453231069467356365257397517301104087554720184195115413181380957386368577688038785455857699876591253382974967620880832408612388615775720852293949036712259056038953645086682142128698462421775061965486852952321610900756033608782809127691470473712413830878846607324271161118054830327576071836243673358989675966711330574685531443849792001499370810941843528978963182740808222703329470480277815582148626251588603679746672933905792098208606163862575743163186644283600556437045732161822671816077949296970490918450038268835807333975621051216741529924942311947869001963964466405212927647896583673850719932351219941851220692916578064205953183395970257817754420255740745680642397626546252226722659774169814474815906037938577799945165160225242754835277897047775901076522169785960212691713409515375177351888301904136363292080162035645387123626749899374055160818919696690924557081857949268723992349158695898984011800722127205967573577083595682406514315936411734706885654073764952572232662974419035004531553949609167564354826784151332116001333896596403808761599493386389493894307044873343838213261467508039636870086575717846098206418026477180115356664302203910504773795950857505469646279739308207377162155297894443751341999133483758607752220120624223015939485781565224314545324899643905976669496093026098867776891105511941582205473868616850272726250046902500127520134959742158208519278625294202137078516050089844992295757133058238113002485683198510658553136568271754796082928243705448272518708965245092374405233873976896851954367840737771095074997370191515510873588991173728264384906927291565505259995184925117136162441845878372896925274390496151729589340880924722168418473217478670976385557670059372341361301498307007107331763533422287938395281924696019296600625261347366336715239516063166182156767168540643892629966643450514257636811652053928856577271279370142168388160173696853007839783183949922596921636137252578337519129488968873387018062047775067476398645168372037063533638134713832389622931361273177958971443452939313395138581298771938794129156538902795236874195520055812853815612309568452235435230117885299044312695012259073375340530975802233311909178362483153327227450989116843499182391181044428921224198798874374087490631262529834615209811291096923204400567921033705934174352988485426824893311120822698485826811206744336195062222894337410835335136581388493048010061814737132982697459351164166992185755296953419604128087782616840856151731145611774425646902193435680206080947170508633465632779652992653680083723266914307691932741481763235464316985619133106027737662779436598453342185973861261352467905654804708814790148894547876270666582929959207166234812889051830739675195237997062341821981422710263871812699438499776269886437281120953799213794506368649073975400820354180260804302583255858548831093871889104957028926581203509288845127520104742795710029442806065951469077550719308401631759344758413200733471255297097859879401751918237259406735590974964355779871080754605635762678719270836343117560369112506315897023045386829791196527588227663849194547966146015172865299543005046536488180395211993919244871195584940527321274386524889677681609937878401170213337743752364870738122683557153137578858442533770428774510707175002909322886916322479960804921280590121911578338986669710902853841452808843035490406190946567578741304564237892773261424978715483106696836126970800820513921274999360956994761770576032158642041057657646844350420128415967593559630428781309881176669481205757168462292289563335703913986041634113733444478300481305751201138826641141109281925582732276854460285624057302725455828563120471588863219137506945852891997999330445999351367348128129041644374457019317899077772312183689035676091687030112443526341673812998453596708852342949696384992886056364528140499691034327012208710179183631795133399272905900501212689418309595651587028753297318548950789644387368161668706100892170151063999648603665530431368065383911753217839519170305915273521394347367602740154406413271342424234445189660734326345807498696642784695380888801193528591727384940803750036141158921945563251017376254579490652973191702458372680334769348018514488320442112853738065516604677522609115377011930289990852315618552663254560807985339943839131648911058632213893159883935011852882630382547410848605718094530015555328236427020347063332942311034120827164802059620475626683443335386438121552989603455875033958187126006743036491111524097131201390573861390049830744057762224778688942373201859943894862175098865999203586081377365351500299732628125528290966958750785886021607598449941749401580152172838919914367004016839789896535513890480924498517489838815248560682425791579145436354441962467794344254918967637156656573911289990787174952610793219908356101071825239029194342276909787600789506548386424324635251152009297979446186684244950547339240194615313829144384850953740878418828277540805451235573298961014751443074068011284803167614999871763878737235378102524349856260346062304234596446686849141354786772105698272809420441548123878013900289373483284392302993316188504052388505697000760657345697050205066769294372965314283264474112488001331039211558460977834311085053285730301723873723456006785565209519918829101470924752595150668162288560343394919097074319580650383723596871357798511812637152271518251074098360707222853370356171056293623253509714340061593501514618101838197178354873196360261371021337514048815125389409093142021396008945218894660296427319014617495168865113504503689152181736905034109917915120122910226167468180248872474757504861884347746576393375664953948996328497222134370037570287459335743656954326344066254664477246880028721740222654443965991304002987870820462783519079040509882905286090498102518389573079440377780123150059265987598264977914054167071074564191358680052255049386877573554113481787764295052301424917130685488257997089504402216416746963122049410985509495625864220554452350655571735487653799000251157258766884603845696664299530270663157964011830266995107791403201226874573973781514264087673330695815846605535777050146706488450958397908434112802289473964213294455249727341069592766482639267917940445065004152614214215742848600921735144176708819288262142183084302054471864535519146354758280333884761393988705954135080757023125447434650273702130145543515846484036168551542676912154817468918990652063034597854029035665997059743759146937369344509098680543431450085994305446186098877170121353137628845937582318284699337277763425912744791312402206640795933049532285369270939163289877878158555207793801025288388091888417705324366439959607117240422981040078379148893032629038678034102656668532239256847459602483987881585032768904516640632164911928606573082363574728233190910643034923004457963080846931921758005774140278041705918811520643285856940864028363063380861365774717999592339256410191788901402502261065800380551631622802196845262700462946744611712420554459996180394625145773646229673523187191212856587717738122996987466796187442690730074461263862770896886593872090684886595606460170089408200103650895475674066776353108258905411051765313617796342193429043348361972882796436617677998903591593238948907825946466311179876900772884602777791844709703796963861589694196222818562183457857041384483432912167562952251042628045207110102781252285193438229677487505119655412342418746705932603925590535056222060783983931589214755921645972717858915766210732738897949199795487560645418957247546306648037714215776412206256325963654238193700208034005608675631841408252704634413259510275425045869756052472602057948439296156185987083193880058343967317487332310776400797772414295072817772953320831865549339814546467325431811021668144493058637741343507948229176631588961864686565067481798239487138527373286755605156338507037531809813345389253060085577999276499392634717965394641682571805961869650877532086416794564113300590203594733910038891921245503897533351746253413589206680195264323227616145397213554589428138970198557162933704204156306958152690247169917632065434237349016946736752855888636076308644425672726176597111582776051577400933541490072475050930088336534805896563410290529157039367974484634578028164659814041319961293077062948048910612906976559378243851418253258224948989174162830507194992307534849155825352801986054204016524636923847445957951438985091496285399726735552424212547344814308769328989906001964344401224426171849046116173512264169392311185691964313698852084780861936838875336875520249785526321136160001500800223510851412107494534299719829841552223883443507312212873130884115383609373893762580852289744913695892100275185668218198735218227321191914961142838764573017635116537389675223873770263258819701884569581286048297336810163088622963919731208184217482831304594423854765793624869859895181809318731755846825459069747458352537998260101102410678697114544456561113287713051493844002312299992461877456619713752850052730730474698959388636061126529386942692892838601115335109011533073844118597224031129644326747955366746634339612889828019963861054865221923404546088465100564658034487206833752244205443210532011195264220131154835587339732241475719919089088707662196989375066775179691828863244858307551745738845823704584849066067392138944217769677663091862394484160281993776958489943067853787558375474119284919981542884566195965153448072463387363760101027759142725316714604080037438280979113835560869630057580004115234121348246330993200626535967849778861581990379921269771829846256071247509966286720773339509190344715330911129295154606624382952591940163008171819750914987683065611836865073441998312361900633271538573168596706054170779719468664871169079869833256295744552653405646453387051850438403438307767341198975278952098425833439012676348915665676850127544036398968949874681643409367875365803048398061831835251874583422211555036027436622693634345546420262915862377123894547547328528075686866661316468520730366081640979179991724110589454146792603970620777284536494186794478088511836592076941490658618943596801792331581103602387895466403209578921755015106461842131177985888078223179400549735301043475581343643147524071595967445370852187129455482400926049265028818824993483397635811421260839652964723761148444090015413329071207245362822009443608497979627963094135562575725977757150593176532262970042401641863789166704447765813723004201061086822474732197898072747578952483228247942039285693538257153567715824533935489427109756742093784256007750343613814831913619634554057161253597646921121829020267397406285927519519651708840777808025718419328376855468847324997149744448367409784436821868448848612265383297535361306021652646301948474924715622630612810084256989237372477819124846584602668123939792423087742223554227191596455203161937595296673318444995175824819389139187816397533831821388655719658994177083235177252928311610154267168509429097527920381461790606800859920402601200544870708659450810239035808483604587248406246126014585436010666428226594136215079875415421945092027343948289558173922802148575463415255344645105160934636538268560101589111714786851670700860903118067400349653739153003997025932706318932068330971950780193483904394765757084491108574839472623178868026698910896134842733899219342286604346410283614862229585934991894468139520911013867444434386461601820715905728336070637043357262595543670922729948153677045010157854609011004433640512796419248197388928222098623476537774615712265412859939238439058782407732002338095407150157479444325778501404178751762469610403907058539381830069963943935573481585257167849026753849692871505022020560234206526298038784877047073789446276179841499259400603927201677060660221817550187906184664565168914671922456742247352916271018417031532328185144639316884524163993287940071156386105553865604727429953149382722695614959533332972974433004449465326387524673297587881083319385970871942402906872607813414374014527617274838394204891658352507737477017531658414176434955532115922900031905484180721761462645140619486701682192971508403471832369921269103937093310981560710891658502595439274096718454416099432255072188924801346172940152599021694220629059940236869760113609489221393505468365000007012703197264536065099209958368641458160413936588946834701697367714262715489010484051595365258558213226305403627191819837549666839649656794085164721457716645688849543016886188659028368876601378848670013785808549586113811519420913709523331548448603571117867346463946682343710030834404864490496884927937106426548434989693883661562359328882122063496864086757269654926306651855724654465207552947994795952691625386003135704911286008018148489309455986340368431482559361749170001431877236728379214918435464704334302718413601928050089719343797371734861640739221878957060375652111197961107753567608250565846616579403841706356430062371469346662965199926944683855713813072666265108715236040197775146551772371250235170697669126408797572040753452188292613599154234860152484183388409726410486123069516148172814379211347451379993137359008825928245723557106487759234074856052185295227055738884343327930236644159292158646859185615793554288450708351941419703328402463963194448862874987716831173126633511747711403420722830212256535799665325234282287846822023148742048794507277956167235757894538744776936716266237860009165438208650360302937160029406902635654009765832929758269226495985263096680850184876684405227637626560789528885667878741699061658236397176337252209308082323200900587550095862412534697373666705407149365720386478360579439681089152024244703676664814953013805338307248310160274251829491062758853998630863840615902346409986646569508470615924816643065234485534377655771286365882398633380522081551658124926542800851786878415700728322424361413660631154541453873999676764053979104721898343142027056211744275051686412624244179131557887227691466839012215796314608579962200567267677209042794060508535934935767528504803903343815341526505040367699254105243725881969963750577361155194629189139534587224857143781940093389879943733930257675599403376175038215985700380137184236892386324495305094106460188740474781028336376950296378574889782788174782647678438474833174008927323956753486435035892303840566514626620567030427509239379733172241453786014382964185113048463343135441906792922884904468941723168358093090291043283325839720391819635466468136158075597347242805158011007772651424354112315001878766975707218545326308777524179612792124701353059839953818631613227683435225485248406251760507520742202674680911552265983970331671176314359593953771005590228451716437302197559531177817520772768759995292924590496687283221447999077792191861292660887086581886408724969925182854849329365634940922212708626724925846465258048453573985460048617941419193440118072065531099321451382148560735160454355994531984173327943089515993426718813739174745076185881719848939558798955151603431634657114748421031549305193969993000534841452789762662386933902900904662057750259885083010684083650931349041743762798157602863339169536383082752160225733661337075937045423876100870097239109945702395679108369691554181449876723476252733707137211187104483868534740627765834838373515948273890047939201274128689688305349485619320640571256068210420574017105269240532183980131626150915861797251782200703635354303132416548830611506577648347924736115945600694656602026996460589259761029167787789748685044567541260341464890623702241911274560627907285660334512715997383699512028660767400311569799242710093238532620803452371322907614915494298792960806877854275739688432610900762882569757768018907283017236228553037716243535958255898204233470961028115809022320995805953033056953206076852329190709112674942381551951026492229979134673988459352851052955030704055264333212227959478766813826178577926056365016506071860849572126077275593879080913595223578639387002650032352839257465767211156583448704790525386015346870859767016682079761816446672610256103075392793739747441788938146636879454671210118448480300639221459794232834413203506684520327579346525117385806131751384994645139325913314236712036489731208543137264811630337326770439765021220996141633298257952575938478404935124251070594668767528101657508051495969744585972869137256390484317684882865660453214077209192098184697824301496957647055348472298250064418685766019682573214035064595469958217474273868867204373760411913858330647115945119642980999019404017187446028102843300391873523337680207247273089133560719978689343681349468328359019423055786359154069662376158821983912805359853840238808573247838971773547534420657542517121555203286108542283044025754539122690445279076484036413259377052016400143907631483955818296453257420607600483238710907762853387922488826582866595062438215065409532692996365908965904362354757335543498498587033305213872640781802109945711567150456220947643533376679172497068368873121011253240484221027398524811755833171325828870161267130115962980332498451488737084125187650721350637124991129636627479495904740540174001950006259064263805852635638057350400348740953258627332329470177914320209440490772861144109293913156698023674714011733629404993277523468161636769267986142804006168009883160724372930120599153860323281555841780390561173263065389150207907042655379369033329694214130930828007028962207417875158250811763790745578943950674349591061545021679644716347081214163316897967448011506170335849768154632118774619646340496729406287186135426269360009444188374866604487311233129195367078273270829757187417775530514201762206805554881092399235569050282728135727302696863195417262415343822141685256777517703615196081732281896689398817483335782559107652184663580462161023821288904338110970548508278200439064392907636307807924312630434938253653090726048901493263800789832078601233411444066047658615312987426761647405575714156521907079697830020424553789354234118746459583317716898489592000541062027088187120072433145386483267434357093089776462454489166840767063611493664225398015383873980646735266231761157438857771393302212533699010119160226873285811569270165965492906961395537286228524922814825580523411030992737375385481323168750878751661550298948753779511499239037832587096068651445730207119076626395072031301822859846379284757290147158111209255780685709248490621023149493469598853702007206669452460015090737959889482858552444832518546567434272931278490438989407750767212030107785795571923570932508192103830226070006319442037954659319421340917728682734838409403880883094632271239127141039224495197581573961614553405304752565566400926767514211101498539303467558529233892627598036477855569481809380900206845746869933303039705383316724594738793537836947025248798929424901581221255380868285161499635814747569531916134719456934775999559030851322996491966806464502535669948034013779959604573715069821367858042446954433799578054895735691941880624799373322165274589589334490110433067711500053374539043675075011871850648675057280583604385734358357881329465733007648989382729001647017054634078756182578180277831005963902399929144032656445173146653586469571015578426886026645739090404649824375596114065025259084701738972342969448483627597815642561168584365103980218715122842680449201959292561854647552139638687520046683170175850698130101228275528775260196624228253804221222513972635487126997494461385340936344681867403436309566313363165071525600829712583433701616379398838710055481088995119359438740436563678966755177932914378919383409744596135783138378667960884510462286854721990015798601575940036420623729515801904319792434104943338043034968897902930503194055324579120179697864901124306147780660557737671587269127747578163927594551270538137080047559359668822121307571034666558979765110939194505610921503422323343185055601609603127790683478324024798561949754382726614885946705359025841438643907916698488800032531986638074482887536705075322447072252095031323459365061752068613743565143185820723125662647965070381174306954944866762459331398706960109825543337033541630899503714354032468462982526608426668796582683193673839276793330759725435495852425993388901531567508507007297186502933163684290662863414512173171555374586941765115977233850169096851866763700338759408897482896476337218185283837036080980936621060237905742621045541409567515015509234290916936079450394724331761043117590041065249086711087526227130513429808883702998975425299765336969322971394995955602291045723206876923882538652115606166624257212997783874622336745434044136164800309541545194112543513302938858188479322669549163201434392570358139484100478040658312917833120452547112130128346091963117868461733973359335591697588045812781927278311005673443526352904950445669319720264676760415755620509023439676561783962157083081460178000567875464369534315804579550265444359112676195309607001900096143561140275098683111046697632029806433435899320056693938867468089134064364723283287149538939158106083699623385703054369392844888346857857167098402620475247342760703840527581495181884951416615392597803816528392945622153882260171339532994733357530284650736309062519396153778522164565867118026289027437413019301779061421831611554603144932501680366820399673488880241344307201360085380609388271247790555653733156779163180641574552259402064485919154457528490626154178315834239355207082156703607342976166439625937555799317177222806002254490858710094782868615714181388353946929455152217362962305162057504507670092221517520627177714023364946911611649680227192184777396900169771713737822098879454849721843541294110536510638954923384038411440332137416547911532882891672078136241384214166484572598725393009699940814649169434466846953719653525567273569939579079988443580651118368818937359256454154150657187963346431333843921174827934664202400614716762702938099975814436599125508080736483997738385987855884522965230937821781061710494707264712015983097448206828556952337492203634442777475797587096209651772452204906294907760269948759417073312076363523326524259836960598213290753099259663175293809738167040358949922105449315822169660168936247106417843357555150230067182686807105354329498234565045789502894228179231778077478417221258253589999725972112151683419468681114634698906316586596309319693178074402597840574289792427494100250473034770471829704235759698668941973443966654755655446995341995647974869862603614445842815491199577635610578071533939998889836587878762841215876174160272172688527691409533826297527199934851322119255289873618058095116899478434607823054446597860311186815162023141326359245281378387027438518570341768752421286832425812586311788577393458525505268222088098993770488940340869975247080790094065383871281033868349630426444780024630285765676965505582783367269220329441380404487268203357720065565316699313440055755854350289162093779065503097580320540023425104720306863949161717136720780266412116623634550359194966944087808659862826810268907679751996243787482687282511797103454665117015805779685156502164818844205199819828667991802262777109596093018358160791848942972486094751230779587649175986407234534800464495925098578832841092923052570104411195132392288225359271802097034881951871155098857225651852410136215699004141560527995836641027381706207601187884372080388416430753194600684178875286602449071661574682014419656190548575773440449961276424263016427357530076049588496794496374310948652707878211497597190423471130060034306423173330693496885793173863777636263640647506937631299133163865470956083837659521200025747767038257892989380504703986473722758398034256323320487489865157537242375794138107457326807509782876456242739798312952095013352884076794671903703849647542615909736126367623189823549439366057519882991822751046877566662437791812895216053162042170267428501245488672404901777144347206438297234546813212983036774066872307563679636316341273293978647425075976210053497981171494477064451525852563821357924015087297481372322837607526209891127945077208306774979478641781760642023142987185178452652165052448523384734809409854911664841997241822406569449836310353831325137107680141329880132682417895049011033109498700431355225447099655599985319913897405347670664346662421451056397970495479367187896113940229487881862235560326679922450656471988969384617771005590282639266276135425011799250422899845756375779401738238849842432119778004370168010791889907675573427916935663994193888615914922615491667511718648411067077947259631567870606347061317066097582991532781099178834771854359730051371593934406864782506173158541355245991650397007424933856561106072072309840388711713445218213958162889494535163811702995306510221271263841528362949055581045214533106122069898281269170888841582027739560462770632778636069617991268947073391923471897786757825858322493422944894650874535304243862709089070333375645847380072128413493413769285848030171384311953673267216618210512200681296516783791474594281125260674079671383309059491648072630985510943239898963400764913322477560588515914521780857882915726775883455856657151866117776064952229466578739129729649083903194306220156363179680654892535721144434828512113260820949880461343470837281421668499126018856266283341156154755919838899439055742711299501741221136599842646826743606850251609757105352046191985753431040571418540329467055201072130883241421257953278355932531888156655867038072971218370043631188766619222295760860816721784447169988663965588200444408335904905438279039622536502986697279544312707888911098527141240587990196294231096976089364315342066413664516138510911660076976147973804676199673833821356440929483215396886523209169739122221954933309096342240304061049139677175435571345108527883146162414330907768314408873125298603195361024427949594052905133828025710051014525919755737357097877383240483379037832690225462106745429936476022596356996473784324112317087387776110701699961749337812516974051908657110230005798678281206525786833506779130958447773381709829247178527841897684418058439081022334407701185848437187322058525862744142497046314831660290415945505099213035796781947070235266097666366095293308728343278434295894822661550248241574999238391284817742901140735147146278671586432151037649501071914536318014663552935253283864793562587470961946332398724812287335778635471923495087492323458836596772926756299939080482653272919826075460978879229307762672258570048161387930619203974397460792778886509991484937153731955723147792984930875671885247155290329260841482490500415768715770803925028299214507478803123832075917711153690165676625653208446975526953892771769636410796892100292089416547049283550646155031125279190102020384532019151682834686877369791782427063398601641694626784957192932245500065068043633564960633187236766873895556388095030322241143040434272221039367640942777641236011871668426274945392358289928035479645782250648244274909901634833035838069376223095707459986625031115164384642486567879708795491998610629570663746674453612037097408609192328951819840219202829053041577403269415744027220288641995952300064726242041362565083892197335864129250698190903435079514619407686562459890471884658146541121353799110562258033512282936674601772965869138670051602845462892668668488325819004846102488902694994535677133161958040806155385246927043711950568942724767081342945704326006413977313059530014109092159013819520710481683397699456528712181130408312475617294841335572716059956016797075280812633984412527440589781743807867609498767186564412983807238462938002165124530230054155354200456871354373182844697990263890138227206792063099891101988364247017383659705741210560035121043356790424782126436003769528416693791970223587003554880823133450739419234021094480891777870829847362670576082917583215789587137851054728574188779465290727277661513206403564011163435523806963769263601780809179181855055962025201633065803714576548631439496092255518736174330587051007491161895469349376559864166183568696920501287765673676093875979396405866310527812718921617543840631465761519182653879001046140778654933401409242516783419425251199103044534653710065540168617935744408797552855254843317029701893394075865931883168963206253514512895385561851407664027217281735333707458360783581453840924634805236028343532150549431115208301199530224964911437313732440492291676494795120892562013756382521918170106314419962736896270444890721639212560949332487094993758368886943794214182948467354690222823163860591458569924106436101749623230921468867179556569731816241442921003914682154314031274803678491495904164684888879278369489695132286377813230425830654400903717149773997866482973144358647128309541656006835815376668518279105832484480262110142003895261025167357346512344043914159567822245488115736563745072667162315078725453915465663726279219762817446991199903089867778024982723248715682801594835779803607734085994811187700479909652470724930889472470622779882990554652822277403128987556553635127143501163949795790126169123847979690500403866739988944768141647666705001566463169204443200042632225409606173099278166755019467967037201282834796769290682438131727418642435923224051987545703526423459306049179466255422056017292224930404502019271138925938864404048005921712209837408147657987668201929724657752189493554080693925841021705464845539883653383533957887043850297471628252558570760332378234706290211208114712975376131787347459936329142743988418732409752769792001486770565630280868700022471634150562334249811625957461497150042819023254921808543043908270915488198160411058952590789451410810818671394792071748487392466123471676824620594812337932519965179854378070040980877023439575117170778567310899031842549277793360985674389844723587491097416220860748203059314464244078728849082599372747695276856441492239227284697374348584446613117170244579985299981325438625832835801849574142865328148069513848747786850200034190775782188617994432461559501996560228117414786963099227486515102420427873389173856386861573626160989776481395410873723881133489576708739485622250962979482839776567080631664029738519582912741579266944708353386102068917386410144515362112859096903127256172307020051343075432648692558755409219718347452424330757070326699411815829239099947604488151173515950945332843948809605358640760957058048896052828403427923167590840038974240808441767395876403104206100854972241450241687223447789825522932674101473672707085283830176376356257336176195696442840168043107438304123526381054470838632035035845177693336731378504432529945098627694199547465202182337869068386425808223317419658748223305445748881637748905727467487585062655870998031758550442157918601900759283143553323657867121228374522019746264881181259307198210313724860509326754643902197354284961457189125393672391325145334344928946731707852731559593418623168906532501952174709377539258224872402128259007728791130931357803396096214727032623517015211064832106689508903746532765764784044615227713299345750669220537768448235303940084315593183442994193292531285190347182478034174456008099307676886694719154086850955303959067400485108616691877146420505071664048266558539522374671798491956170202048275918442554633051320814713777407138305460236688725151182362506644252097896272170746272667640566909181684416477558344247324198783733743527398150959048289821770921519329693991240721149960407090412045682398104959516736935474646642407098107609171068429838256018968739557980131011688493919194315196670734807455324037473909705475795887315148485930041758507545858303791390951887423533062810635762958910285723943657586133061149626987041426169476006019023358024287790318348052318684988586660408730091695725099890203237087406606723178337416310792204058546595007668348113996738849996645369755588648679431394428633349723868414324079619003623679082729052608016020240091835394616651469379915118018322208843718166768212476218269745318939667795565641971474332296936451059959946381170521641976359648633597095796961625826659085888101902423428979356600767103024932782131286986639241452045856021165312969664666663948188850447292800818665166370969444517106292659654709207788755748521804248818408549774102341565633203825865578872681117194055168778392630714140384848161995459361578904848315267461367842630711994323794471631934544060590673260867258946374559005942859175048612924204649424835721248200700101189671128792073440980923074301007817141201631160332130110564322524224228375724390860495221547016662709501042575294781316247595759275005160778890041661332175163645307307685115592338591003904685480033040110229701952249672447248239822803109259702695927047048348677250326500065816386673339250628360644763664602374134203468438466097842234998982365789558389201046416733659869967385714600091071224381730817473568447384954882281534980739946441507803131126786910937254984504935331032182120135288961223898404427973802713685291232625339431332524877898697443588810620922829701070715026062199357679117238076405097029946539379761545765431901047633387848710094961555669694481843062910591008683028979617144306470428976352309519878788184244093690581244005482935899712129565091926449618791399855819042346022487595448883043408246492284918929479643075277306786459286539762063760359214132861084661849487762917657259350134822461875325380749300340326302668230119408002985012142395041741674389623629879478388623866276685235365072108560807210413105864817573390025970753373353980536685897647916493820810556586220004402390436403773517164705078620016278218166373555811219597848516719790514477687703518380978350846871041658873491134797021560814039401387844486692973787251256846614632777547215004160907426483854152913230830187969465642052193525385647162248993009691607137174053064416684041747582100375303062161679622067973828977130695647559193687990119939689529859184843163825676472120600009405407029888799001769429956481303327464445447937642394214028683483312414195944396273062396073204953105293145862764647862164027555477396333377751506759814685580229181272914550779427831743140524593138096778525148585203945732991135204458890537275820771185459938845145827495177478469198707532986924879132716274744596446627617723602787411655848991134702312510167869208979438869788843088895630955261466783855773270576318404744489667410965234415518437673707369814227067435632313461447357843216841561189829520184527809228546019677606059955146882345590619391365136384001991743777402718977224069748057423006843356173195421764405999607430764308487169989120165939809520849625631758314013271846006360867108164563812339486031104521987630379927234204433168147682600399337222652928314604184569961828633957228415297009355399098654588666388342492761389971223409951386591711083154993890959521424956054946160457964303327646701622087170251998336054404455443838128925938120507694292549627748588077997218981711238034109843419444353596448098602309525792961295400710181074370587272003952655403175054846282813701076726410530128315278782738238735541450575963060026630711481909197616876984129147128171819378687751954755566386522906523405582017786821968295358725027057629478078589801175886571712245687145773664363729098528435147168007987359640623813763870457216850791708748305965152979514157496949731831097041102919796405580462787288995061484812875952944287925940782536101663314635031883223798117811301156656934891352496134994842412749371475813672460975686575297583228265013791338694737732860227100935319071159520015259300211243066175755029746540347036431738694731480192241882230322095041954709403377311726322683071255990661402145566579100906468756509725620200497513328227454057136124767052132691210018068864564017150745518359051691677697248236980989116110597554233039963220071036405943996651676341471724633484259126895367736372372814517532623741654360656729803928105489400309341674000759170085811408875962291031809469755836904872108781221745258615612327991011723278234609287551382192701386511772376106877212930528875907801030666068813018252063468104922228961996484323516931206120564142046238016671574689032924269359322889081405065538372424978054842632559246864978007703828342838676041304750500529266043786413316763495262718213319059256711090846606629309098592517604666795221914472316304529906278785696118363006646528856802708025087791457832334995797789109108690222686014288156199083373312238958549377986153512519779998216798819409882562929753967755913218219750926035328420426931192731725548940163281486214691692723016590614828170535041796293652748918568756428244631552499727878717119254884583085344205070363486426353653628260789085467527611890517556276887459010572478463436502301303465579934259305409286393238177920961646160093191378000009238299465434277746107828307383536927655919986659338652363943590375780907593218182615913937781971380381412938432880513540106385083399880083893017455778080540907286475932678722149927727162415882210144264269758074094912967708338717664071627779453503401668616785976391628796541526951152143038786958604246339137282343808537939190279402093909493642888300888391973145963195484038034187116438356652035117887547918348462126880513634471920342018218432510812868007371352585919241245476862184000217159652463560977622088872330635169930228785440940469887455096685104597434830488051600945601462906612379453992196096064995028941132005197975486178447469305800839338942824574695883416402265090628787132596329745879004239060432399162687828210213817608772779014208923767423338848108829734306707430250603353209968398373514896916049952773539990634933194265034087924796400377791676901251873860938123642514667740923532418052401173172921577728990013874589488214761130863894133878940317517571344019173298257219297105335590318933783351946379483145507566493244130652557731266843724519250938313528157093758804511863346895260255103326770844484728873895667850350924650880773604326826824189218637697697905903287281394569041498698702702952071124342373720073978090186964098806415266944472499679344730956402469837381730489195369937953249811217478631662778500459029761736491888225209967614856287123642853297917180470599706403780274808803397295611408002323691983938344628000125082011421581742752358776581542167600570881532086722606969542069420246599965551313348984702885454781370360892928383224229657464095561172262589082762670287689299351951793388754274739611383821670444403517568749673860954371041998563836588172571539878320834960498834876668959130762422466696767441833148986018571487007697870786997232982333022084188769577271557303187675331887661661926396646744982526478956784308850333420565290687293752111686855521614692959550436716569160778908240572205729710952782016138370407624193237888506851026120968387102100521337870958936573684009825590219636723074225199852082805025917867287369529645114799330557982880932134784881310383393697247343233972425031334439678309641251955273090513607429360408113355990846585229220352453618032274008991449034582959883281333532531320976314976419573612062829034680487459858866151730467652734768466114888177605445557102856838705681220810236849535214941560818006352346927904451530896958313722540141534980617699749947254755887235699923418996362140499093997729427525646894333641214662318284656931091618329612502419579412785921668793452658389958826223097150800309604784366754151410994366156212972113822676784272174470650938436669834529172964690443555126033991572935264168757947276679301877813215513033058409592580268468455863681351319889332054229144114090245076517015213665381313423632511987713515423899289584674206701576787548625102639139905075721966086577586079352677594478534766436327453497558028443905087011596468105515187487319224322374059728682625580164467191455230534386384561407027963251349151484585796928392271974332933466218932926314579947806532205897488523705972155971461256049282676276939196221663178943276180630764188425238362291782382264826428053415457411717540783859524108284469850211581232086011430793459562845829511443869308116774929163299583586071657830392170707999440186496163362493465794711575706463061836868263636170865698724124655358518444588554862773314114792975135655580288620543363306164840887305411977861749083382725356061435849135532841933948394340316571448889472498834498515672975772516768225741697770987909656573579695981104017868428199789129615766166465592485022701678220254477634752298743218735543057410070378167041941190135473748103530585180439459974049817408485675108078760936964565028411622129097844985367512937788243204654908774799624956265688719725265656282261973001880825613568063970824950050596751544492322418898042784185510036762072262469864931961111520252699706825011271228523259104658680319261832462415365773232257412017347899381571742964430335478180724177889869698396404112537735349608250882495764723327190319244428212898060031014944276661777186990583021914261059509130517965709913763100021682238771047668627646728439442020024119717399715559419533487203004353510358126738807143720498817176004873094089024123375883521303216199838229260643680174431066076640299608637913775284389692822933928390382819782336516605876917266111639660759076698772022563792797575489465533236432248227323082549970509061284853203387538783868669788415331640956796630298424834553804281334905597191290265880220228723022343247960829671132538774731869947448287253956816089355049085923391292727503656304538319316524181221331159572801587929851086294210401990473590995328905951623885794682262373927354751613115939906220416987310041593398246387454869471779009305450969533764739799337165052464868596933225487650884878203780143955109906432867452686384979920363868271085010026364483699427721500356939495670859433589017394460934810559687119293524593589025965872360982531799321406592960045732905034053230400301121371446710372823300002553940130391170106989304786003247934401204524868269769554555453109871751012426470877103075615564903355719065953489351579659682885858925440599575911311461864858729926919051264479731241934625128760449997980234203013314459564793606183123205108338475974396277324951512355553265251149775806209375183882087323430095226017807051165820821598100715806698668794376803858888201774825027594203439613562214172521924800656814436995545973999882611595672760736117801768927325676415717221051318927807886295051148710675584878845875556964036370523226971778477741046097707383543982330954119630495510971881415336267818114163366442058758388452549241451078952933106369390104796897815904049238806940449290259750235772036066457520248883885217583258422382844844167989765035156301968946946327383220664112893559409459222292268832007857682032887757086683877795279298856995209213429033554877976272481501865231511525947993485364036237388423281495873809373467491756189925194647769863160630955093398923266453017418861547243200413465110090082003058279181483737228723295536942711643154875005260976026186532231670180310128375074018311807303642283647587920124551650384039109750796361854506460710219730913203909981402717001411515879182306753216280670216224351085314622574011104834791069398149376500931248667362323034440288375812501936379971750899091771948514831678989125387863147064676106118914127079533565989598104337882611778783897302835482209859744953335902848860019803432598384465508651933351856819981159430668586041049959883865142815449996785922685759301803045936576179093750734694197547371643369084390582476268083885781301081922983255408531982298322698145932677006800245821933174993986617506487082994470609081844151990449945608547810317286956536224171690319286320738505849234515656149342823654755112395368869064363479198048684697641918348862444417681787143609535288396967736678270080790035187609639519023468451592364121427504953463059592816866353924332406550145828662079112661533603461000995528738633535373682593589239063360485001383108314602123851949710706524309214947604150656741816976430271742400171131690102129974163121756777257775750540307485585338484043534677581069816829978195796854067172414689473249942635868267605355782719225396286202296970350318098488211081798215952580088285955880376152034694336801231667115119558690855973966360335554471368594570955951646377878972064121532739452925240516718801815772228536651333551728044461071079600842047692336670970014711441528061904365588303469581450587318174785975221860491701418139755782323652297728184485619072822720129472168549040630301387650633139376663108794107203695079230564013701480388583429740385524816898050917855482388531741102728072355939405509871217994703470601110837073526090381658160041311385697116544835719668560628667441036399930760894778100917732013831233391663964582316723498236386322461996584357010489382536797114077921328024543442985613792767006391156773132324906633439834819724615765551711451283852474439119208265306677835439674122303264626871310411441315201330264349743950008663272909546692205073652882705179034068095761267282758787523986730722205059201231119349136828032371180387936310408445341467532917508670416016985421670026241690131230105396706141930219977080231151032229625260248316104844476357949249883240215263644455760244641687570808265163109623112812194194270213994246013431849049205908851407649372299236429930157498768501297306385368937790421102792052386401164966912093398988251722574527952845723990740210133694280659509765604957336759577667564508247906905318763217159266569424502253447902249102798702077366919732883171525775417833435589155902665069053485874053548114953671935471925001440879867906025370175441974583566672675409626652512928436745723532044433621361578721340571911597077006293072500862718206899068227106747210225392200390558589747488677327558297828312558696993660207343259454521243731464820074940868727805079943525625543317097595499810657659669071005328621757918226665443353345181767388799581695955463081317791191128680632298578963352079338481688804244984099304215835960636814358411541150167958042067578968951074387498645592960035185907433961461279650491912155129137184534925647008639067194339423960810250079060981965930371884244815513027850842270159005752929601923889607036082680090051711038489288811379619831287116225413076048234380785586556571039823485709551659009190427147502557929464879622191860476832978020361717357409535959793254319648706428123274894250651523901568693357819171693573619985579055136899355784162615001930024027954000899812496994823549613833848238271698999127492962316733571451905360309824801822539301565537229930206832171787454151616909015731640244014954448010233801478766518098812155687738137971833128717058400314008323844728593088373543897916108074084867592659232661272264687837724544894572793448172345036178443289144636954129627218302216567395504855558457622858389292568497663973592027595548534783754467407767269671599553597926506351657238733573337186645630168798003804500011907236576949670317962713240380713311016218887701081278531191331384336781175958969800228152789625210857608836775085734820829538922524122672888173760840873187431589940821714119210341342193378333865986033568040321945854946686417097907756572202651936281502032641189409036262476310252253335734958098791589216802091760288474034475470421066569968280308167794170191220690719737377348509804194660749766948652453092099985918698822881973839574493066942146044705340951579593351374525123991677810304313564514978409476806745105257361802064999504794692713000387351757409072973560683624106457862236384645982718286153877412920001390977486224780789250639703164011311749168405706764892702227043929989769927952562249998541139215573925170601426191650802264993248643705074949115956473689227668574872391875676072866994595873857082921920065050778258752621999476684298841236938015416346805987866580927832985032091871085290794396998704145389070996612148263980167835760012031868670448214320510986548832086724921984726862117818935547953706248943085913897856971053842903059324572601399901068874729251624885927323461266188987982340653769653472120173986719446985416467635226267277667299792237684044030854094936449672577100773197790419427503533063508676121003675479882869845987330957308428668151062973651342068146411484951924182593677203830014208140498744164686806109112881453639138871827921303895839467414285423384376888183321523529012776628142350831376127349027808365117077916278826426099351851410105115347405746138039294064141094589517083905983375317191189087472852433465692297328682800022878656853015066645453727116590016339954139341932429558075783873756419080758060377885569809755600227292836707220447814492496018848930710203456201175005156531423516387995761534783720331725248490456710229652293432823666048610747799052968727316416839076557336351986828570613159801605881444261917326985749709425155066140639530325884783501625580190425089436867593717861790515301900923048673921052296989614941866343679071787594552285870798576313628742260816958034674601621609248177936246547567661539950127719681427570352463503743816317413057379615831616613901943310490682613012695782795950759326887852895744517929552553063967634561131340225686319481298699770519215930637816390697301941018831387848926090599670634733900782980367362845421811742055987016021993488512317561159421641493649290650372623464214463964127528622001456677840731276055096182216878275012826394632386768820682687349472496749584137816862169181470909298417988890964631917046085649346904515118645472081927579167624840448481171626581477803600427913077722811632311186575803353263676621778898637558070786902651267563967634526507808404334669497508492129074720341885801152294276905936853066317857792619585560316963193450653157449789980322978520210845500326104906310680291927680963407730979830374592270028644977810694296459724587877060234445882678998275275090291856168127129652420604247903900949034581720713875587820076891543435552703898919445180570760116515525231163126093761457747089000241806645942105525231603837958187093738615047744999645087580217134412172800891034928781721196655149094119507401775891952412946625356778336331549955513378446486548542704325327373413404454456229570862493578724612140480086699474355881906264108471868925047774275604838139096867217737993224355245803790141115744582754867414806636439336987846713657217249212622409671893588122120541146734038161375469628996128684484371030939422407474692328077675235821088585691823862680348788475608720099518199476147079089175093297053520682132427695710925487932362739469421435145252507023060963746130635221408772137377242229302428016549286082611429444465738703274835699214929274478159201936872465578391556758276935826682161312665103146266682130817888085962836720051128507047587481384948175442093674146121609948269818781027730174998552244765685806452435482097377170554299721197099254139877418393939491787838809062681819078673286983363461410780020451910254538216143110491658616972211934866033847671897926106763864245322667219383557060272681224869084422703121869918995801984213305661638016463976481693467293049674068705201800445586003805626138908422626265267779265988061830491402204027343299513662112220174799970553227605403609776257189593634152457674523111266198083556261465376580094605245885511940754413545548328841105438638639873720888203656142278779370194281667388219667971399968180168064303089078507333230013411368489931901718441214343269522500243267308276866887109355363663226979379291134788478240198668297165399887707736426683907191309865788913011688027156663666698224003097434379313232211323697829521681626059411763403218222977289687403150135339504585123327540611692879989203969190171022011720725237031034925280311314791207739214691190497135229706861494058762988048209835181002407826475760839461987400242027387252496821768149997717515615949335601474542002367634746982916483991879739819895475578136993367970749222619474308958603070262627638559364361902157406158666139393313965267960735462024641349434285282960834341700407497684931594534059318038588282793317631812648149022568279790843691375193444891615922492197945862690040050255220066285039988174896464793668270846805058581887758360488762047284296712555082559359092820588534886750144466371529369360264889090896045229262610772517896411496697844148504796587656507024172506774980839413348315868154889650070965027891228123808152603370512468366914041642370065253757938662527733633993227351200481355074497003974068919102059214539709924215679523438872887416852889687080308629511884238224348838888544230171859711874179260673617650797354148889022959137682009552293505347708795529734603192064536707020520406060938813002386909765658291734658763493697774916274350071841688715153639257154749708643189123931714671342171075196462795599450205358300829645356156498526169408254311440672013629726487701587414523156375141598442332533432022556688248778753472554118840409151516251172403634308810308771559951153552603789524585932251377267422872103159503402725115075157269899377621596199974931673906704589125681531767118845315697987948438324263650370764118963324376053480992544984445895915018805800838180350422533092408236833416276775533710573612553448017047918775261344097708570970626509327674120718142473224726368489872535761129336919971388627828985255757798622498079729832975228987985891086755398739721261407894456449951469214695889484751546563593689327182431046895349131568633880128599079544421939136187232873622721114028537610101791074897837981202669533690584827476571656652269769603914354727382231018507404722269351562079741562492070411100975540372755511334577801592637428403316060116070648600207932690686588338326476463684545635502467026344742491585453677350381611173304154707514416340888254006792707391261710599916524827268777770663714316652058843111013131406038816512470281274014158326165364749147199836361952249595155667680774751852925747025894105471615526196508074034798069067709127459814448338495897999120597059170730717354935961826989560953715419436979301158719509663407329053401875171269720753058461401687410810900093737369316125804121181448378424355107158571823016351080075924603196108069953465047770140228942558055103300794004094440415283558330464323574812414034014630055944856067412500491129746771559992958235355256140786363613923783326323110186296792484796942795229534815012100499232417634638502659469811262668811934535060435503275556162267176539636597004475045254620074595472448884662456620197393628067436677010827539352666787440319823750503010167744855927908764846057661058611814061971962454041192739363644124114736574948586331250278992742469114778590254596487935155334071702614067888243143687497076028038173688018426724557763144100534703447650066954944467288041233192579372863260095530427592182133714962087065400046718748320724863502251559547663384767715203765205540425127162219526403021420042954440663156331110896078201773843460602723677016722120127132528333973403946247860783932115537198828315834378276035127032479276072466519380219205096916788923045792053524524921836620526514085026452057652927429964824734448895514703815438789896963696705448361639245658213753195250353645320474157749821930258308040829438877968067296262977589772218200466856902133925440170974965247403442871308118046583251206771640707470845194547394341669561655610886717850728738466148448322734872822763172003124071281299714645575474712770455891877768106838664628126484445031919051308436631537287595604808979327128282811332037728758888267157264878419355664335533754319247112100987061689192794954004598735701120615190715112223225856138083352750517724166452183057624176767068013883876283269668929951730494740669111605771775426121768240290303818770202720851109775610829292452488955427294174709531473254942163499541538142752164432411496074331007841425091418365539098253402921370315885273714756863417954781788594110942460430653836408717018913756350131352515912016423285165871709178772767239658404959197110675793760481344546397393619293645394976269438529658575592616667663215909654908496005871301234681998557990370557480113888658800974159404307425278943717936684147442608209565620910030162067781189782670261668293336082620329421175467333927294777371208128860580566250074629377819200666456186701805225264653954979692262985140312294056529997243948464953160337817387648706691676999065306989995428962722543974519329296741507808668325282713194959497901167342656291029690532555077007123725558218133419930811618670884006318606652828257927010881539747407706048907100570493553784444519688762043247393747652748628648728627673349883786430561740819858372933382467423212764871852163009093301989102286818238222263105813240277351417450456590762608077657540180912430183051560011911692454594309185083621849147421515439287769223153206713498446090863085654684857259963263246103682260661315736520849506545231246904283165626305397288786719450754948980673824940419002370607569313774192396924998896375974046310610368886247379479758016277634102811620352788942071122621042213783358930819016167355002356174818017644592283589155334382381277741739172637893907185508397889703472364521396732661174842774714323128761880817670162983263841028057923306186036101255635123736392166181867182579041271523795713860917297354136068677871426874581825947945208361497145377667034013978916880520305497874107478298377783153973266830859440235188668232714011210812808541038878410913007278647040269181298151666617918215695750356830891291387988135568268280597698679035851397000478374069702309676356197240087613557787802733211379943838018637278025437062609118350428545823087354249051786010829462004788672005719978354475520745520949746825179473446567683245657449167873487124539089266826351800897672737331538123712623114718930452335917815328396772951700319611632724896789689852248363949179452626035939130696954519737418059161706778905296856624177660345854813572396061760211258713215458219931680459976949661032955917107293394928644149908560532520871931999705632765013113783370427038506364143354533283066133322377828012359611526451460513017110625160030149080116521763657338429168382591949599917751346863679817966578366566470629871808333676310773785571096617980740813382420955539099258265278838376372667830568432587872469068500688866232076328220939433796510655587904293672885584866513078843969259803002709027767889992281751570710826364941510489894842623277661644254694481811558256145187298264121661813950618219782386495823201860787181812073255176849304339493441613586328272333886246123676346395048948524894344296436116911788396600940731419897812629120672661986896298836123597359989004590807034578301611922844947101782735075723080453495079999651145505480734080171842251909130897663116598809603381754175324666952338510604906018969448156578914064505063304113930086201539256604603831421086716025362571453738112172721303259050645495277107343808601702223269694591563261816319753566765859654416446755255538862630486478222193403128844925247707749307795624745635153694298012312608741070907612921270875266602424542254559701704829219718904206694988194954090676128330405445445615079806343972827233121333686879019180796036253915763349642889494098585058685704579503777769589741510172816077061424954958041204110164457869664384842575233428573212763271507404369012273204745590265031640324490944368465945389157306654757467695537815423504011794161896659734924757724293219289818164554659756442758834306815400675573899043138947884920788080301447733499905357185793289747168016740915570323582820945180723950628161422658222013629529436877112986925222356308906356008846852379957569715176789614166932478029768587004891056499376625758120041011578869568154732850955301785787961806516884643462817994154477833439886649553800092363562118142730769007832139937599142820319266747116248683478406766414153794183912943431081621064539330759711959560228813255274626790825699208414415445151364557276792151244331948484133709582280719309898725791936822697727305207841987495393573614709009129202177691475162629000736784577370417143655723142032241743198251389942499240035851827116848635619083726783649072150550135208011493906739811197916142904130295354572091543525953382234857024363300304288160161400310996454203723005242429485049535207637092817782160012835423357541733662905945739065455996627713148370105231446372182647958992946009698190821432727541395170691638675004057463801637159264338657963059561773190844204058498909596278988179505775758500479909447196937332871406419134010304292418232276167825032072160043570105150780388002082341383953914902533980180211175158594552349536514004158406200714843450505246567859012531432585367146494044895458151955137578381927925929430079948935368717754622662838641712038866401885926689342428076866754686277003065584001130851560283066032676539968414782427529923654179030622162912037659155455197913562698840537322759216399434021639603136742077323570068921674479470927788074791056662381046050777366046410217675947253298815253767449349975712187780420539323532024437763840424562217876545481331759990945145959716392954075195790787611890755385255443066212268017527016449233476785637871549959169056693507213432421289978905865932334700045365760997950709368254207083220837527685674710062957245948180188211814981132451010291366726718616145998735492157751518246314355282195878840389886426115317703684563757058050256906146819352806639245113510233505346379509123711873710284876493095658403897111107644680207869778338735095335431593754281565114078224173798331791652563346138786699532236560989655143719215499864156442832673629767485783154565374786553330680546588920498339929872916859632627613207026830171799460805607265102922824634956917882309950792381736470718586626570453636123899233296974860562896515511066146259033168937340962219560348820015172894986939174761080947344874977691146017873900653676072429695608218776163363371572494702620238294407302703435200816654312477796678162276575167165716783712266278277173804739999574459875581053306239288441203856021353334325997906593864436435156309574065591293880901379440925331161803911719239637508363623800594420615449899809231397198010267167050105925703122788061994323788571813838228784593398332953726806309868403560103181323634831984489927716445487021966155427322701419866495950773500432149643571033943279858366540497025790910413344284298835789294959694049669467675494789363147007235441916959002704188206768075459599470031074620075883721653131844518702459386486050655796761768595941154599890688152167814687199290436829014307927276874579751304517441621204463890214914496567090926322236893695537504892053561806638982340344781546956257140256944660034679971990485646491225301085215580925720565625083724161865098044620726085587384791717807427617059159436220152075260396228057552943290817402819547977822542880144002259016695798272607820269005955703449264354504986470774535650592672371108170541503938325848974471838674367046771480043836836644965997719502845706739416845363371078640585247587064391495085607550263050747803167259916292159739634052270677349197848748536334981599016106054716365033557040361580759494008293226152942819704356381443438163263067925750917766022933362356423760497263958875955578484248089362847625435662705375505170611266134640540617156038622318980338463826464858729133884348252432969729672814733597937149235333929255464281751812454839225002695038378356719894883309192471678345398154684307318325220961321884546239286837754700960451236629112552725162485431321222492737540611772625048748180983667209490048538032001928436733480375817459533076462842432083446133184120018524872528249834438591201202430348150318168655242138624581556419710756227152928859323599970380532432228556724324178236359487553470932300696307180182400233789468390003660177901386988233001240584995686483693704132985857319777995016249751765500985464127776619939182713768635232234969897618333205613949031618670135489636231766107751607052918586204628939232567089332777701044184439144795251143033409807440728848292293647309837286145821463564966664201040116623008214554132468116727625967431984155540866408957802013433546511377821487064122419715811570835417546722608183173760580497036465910480157247862386472754420737829113555613925126293666053751098832826578633410823946357712792364950937705588397935170803897372033176331866120689929118875710693490342986589895204868724327485319043771468142390196388967361448050262428629031487587185930800500024728007280675431589086076934249713262073122447598508260865133231489588863940969790096549789645670412616827462602296584838778118494391625346158854338843249299653392592574238609679850627728578399889589691544607227073990728893613640402732440008940667921468995276755938480273157555575221161465835721010962588850494842954145620222387687800693940171682114576503901365815696742658523523560257843604949925849966455813930219719523959155329195534883586467827270908088822398096136947568440817441853184272537488226472675485776780267459962169344592663553421171133329851131548800172806458745674234194585431473083297165320017320108661120955730677266185047434863803239451114698088862823664623642258565329705945275293171458476588058947786000224112476417943216712855786047709108228017245098136078193023836039970314516736060285919613915679974473587255901134460651981582377096528367315870334664768995999703420662777449083255380365456540979159906338990982799977842271768961584947981010665295249210143564860926666081510032797970728645322184400699550681929738844436003789233240544725429731114013521905386072033547694390378669425665418815150540135037319121047992047048451971992808389008199036783947584875655571204138714380586983045449010968017335079293636223227681532935371301643090568528913977054358433799222897908370788953555351331478278288508963934678056085636136036248280207137166625587329195421196065321748870119420621088109715140911726493006212737107339183970523928794429437134511085316940132653232491505150653397950220708593178211436027605588331536729073860941287215104377435329128147302103562754101547059417563377705551603021624389370490111432816711737012627507992368244857808051289741606007975161730437469039019357308943227124900372006550480420378708427543442153973686355752844677917630981073226784161691198093541545946460001099859529592475626195659255886306679257048187492477123803044126847246174498436486848426449951350217030225722995449551149480669815534821945859562802393262227475075213883976285193443124944788143741636550159405762925470974583183679112528869658182274227259494508011262611685016557278156435519925061342040948231567769266759834243384164661644037724656932054256068206413906979497415154217489636077355816412019365071703979529929804694960406262722824479765876817180524213188707155655293710834011814769652016192806532669901638191003974017051055858712584864290165333820032110437659619763452151291714567339114861285935606402529180145296153899015287376692592498170915255891258030888817231080529129280532723067204520156445906518629654674991855976609206104398415686339329680124474294006125111833549123220506713279833617792434006175214293231879199535953833126067242108920420017509294573791038703778978462229408041578814951342887266099730991211063133319900512878550220565130554930289957406628238377768573491151737774597874985610783498635155262374448247527306932180488830129197925106701453278729733263556390692532627263339673980035831275073560387205780849835986080385582520600405627574509930787825035536468738230409538994911530220393876392986426547342814724038357797210999843918971523669836323526981548134606104431718360904896132712776120513611542046159312713717924109644962381711743456559222794019544018245532709218714378263043738178581887901145761981185334834280663603717469276879232877912235989161966393627524912237496125240241516540003980579894822539761628469765109922121289062786765522451820785125932134428247374115249413908196094358642983925164799275502378460565926294349184285920752051153686071256839836476471423846476061635494343090164704903190019341327751618493560217072139619452997269561503230561557111640348136925539949060316423820992479117192366293031570918072634083052597606536885821351169366841578860087795478984978699916455261983804683078516239482133457227198535086628843347440242259302145404956545621864999646749447002827206521082234989014389729269234941382843272702540666008649785522314770888921561402340935976294082234031389466988553288672055689600419648168337677578691715429816156227740862631129495099109019119163118447487662328488099817142678768253830110134644895382852685757815417286390946232617395034190354724634912952771606304234576211807993955498447226859641272347511222267173000116641876504869803326956339679589652519545419680342512685628414773869243652994986819327891565696539766953876154778819656427903850246830066794770441010719922099222590462777250492652221756731347180322706464633074057562385080723875543413694901444932989545607050806847593254089855411243828127236130894936159498827430171970213764827316957255376770017509563266877675526536484614774918134349535349134488795249091999967160338498974834554865671260789997430487915061386187619279525721015487057734306722211841021454672861652703511930410455220992809921476019091694373924057753683812244577170359828162751326631014600819036672215569941388819125126356151573090743571990889787240772503641811722042232048443557317175745364516263070764096980145033647325493350376177300770326692635788464230835308257701111781732113362569128096397418827512550472531331123616561289392880757160056104188062101332234298715558708713266516111054367222307817996685543791979746875317601341151816435087436414410236790368738473233995056391994281110490102379611088208105361409101514269538403574728034392967050541824173196653233516424495756767753218473599085687839181288350778813279174303290376305499549628233720246189346675755505826668207685851996436301541569234566983510118937137737758451176606898832270233453080487019981542137699025396879037355248780569909972258843995083072814458069482360009151978492060028693914383706884050781696498627525833590138475589491405373786243105597674809848232706557814837245550072063960678883348118304457122177430737807098995968849028478544440354892525328620970730925048878307478974410227844327705779222655236774387988115006984633248920893985634176906576059416443374010066054807558513638001050163529632123760300565533185736292191425025851235252263021431916648535505993911418383373641705867737955558272972742509101081604083424709127013876166742935395946847782939971056720930696427249792371513423221945723498620436993263578229246324804091556685797163687429500868367500305361611347561172910075284731438008005760910660313708797767368356705604542621751562704214847028404407630510286873795010073956452111828380114289091892217725996399698175172509725268150855459553353873910225687703319812294324798926522358177463150393375872065554565453191309861864608575774629857956546737172085734709929961468467419257731179229020868584991092924944251911175518763009377244502478692149057923843282399391829261666878592800075549990932671809078476779286478260113321473050742213774015826852601307455149788779798020161683639278337585870258317759736351333936037121500969078363917892029197666238791903639510906248547238554540476748135186915397315977858586780297077685237135832002925206370853143336937562733617358241819805945354302535902897696540145405416121894590128408394563544610558375846412988340663508535177094014330417438564314902588531597503743159872290745615127319127075499231147954881504439294054514682910786902269719019968963469116378845666155070435213774992381627148075150664890108965304155451660769696400317137704926525180851469026236704789241701723494459295186593090579775804322072035307899194169551629996736525634941059708531074117346609080580721732937998273102182747170238390421985255060241068307762203836009936696090414333528080422423768073027573457926679763615332994876316083911154999511443816736467624535759331566917364905448951480558300793627889753835686355308972586208520645321287689347552978700419564832018474232033247777395275084493532373284619659973484898076784143014697745915809996256974359444841715631179621133689269325238862148321979878970269246581830593109440593794528875014167927273578889456753873984685447304211866302891489388702454870984889004608079476655968326307885404345952143971475472138107721188721516803545668121811979718228136134348817938114865195737510339306603300127430954521430379150703389565397181103300042828698715005576759403030112029577305921384980642775545089953099573363002300171914619563204280128074922003864169316644742515020715986394689624600082175876206115846481636763829959347373174781182441118828431042557632635230041697675309038688789246352105129028726887258915553891002653751467491397555863545843396750719546813247713355225086614874013611330275024513034017842870785697346777130003400196963088182191994300518400508874181267908894026299179098145749179223599428499282195686797195291885244957395039935833169207974086082747510808370217104304871180978284681918250508131012393616046361629524874136168045785697097164200115949801649365142677664651721835899857825302129804955672790938247056992842147783182232669102314384716440182175856869643611538740067859853707145112108747840374491795635955535748998352421909652393109885355221739966872966011008758691333447450419306679358954139960313050713486542483093069394175208375123237105810905235893955864832616764410602531446768038951599158688043918750447408160153937057229909513559885062507408744699008393689873241079531711632487058356809858695727111921452631528831469660327757595509518346683141584756059844338238134997000530642018268192090941010406146132647186879151643660225921610618511698220756214277060747927203440199127105346218430190069234528503260714789784711504680132075469031772206532687666619072190960602321628483158814776307462858953249201860484580318793716767389966478838176712965815273332222802897248329248670370618528211843197890608292208457217274621733787422267979485189839513357811017020034466683209866171087140655426943366879883465486050689525223204983209549682865980077261706828348921222620844145553985388975512027341910978810566300245920870387067283448478893983030069844503417757770533533170296904577284909465971194349255363852504594622138805854623810532629173996456658608245111127044669745351164100753261096771496801598452603826462429980305475175606172261280794112034700004654018170977770990074601024629225488530697237344843408214789262113289512840152384562449193132269499756414800387503415750407299031115523851857181456769717136127982540099440493695466892519402955556763399411692944696737623019863112211249931111226289938721539878116924590317364184509257150841624110525172848551949982898381324208154666314191056612428587539751359698179861503259426446706516776466296281091339001301813646591451337179416653371441311718443587064172128058833594912863620668033548072161623469678095031355216989735493800853492124407108135655996140449519789788132871447462340279488082575115929398386911293009854508932160935148521604145979947578092974552990813639423536579094631710328841981495817957294129548024094232874332699012120392066115979515788603691286325027056425960709349547707674212432295541282978944617047159883940382040033942716250010151915345516348880057647416787484491550243867166440651310042070395844889542433856822896865357702048866548204123301300493017010742351162675993260896420895462175790494384321884059031760254497444757696463677212754963665262926063626100845941755074618250168813696652979007976676135449587083089184458941640636729752262478929314057694767868044734180470316757006784021868830540417268384433687417410969427180843925562101251387533948282806246966711945501671670763544172274003428831373390514479679264868703341358593599061346435609077078572468539792004212958811207016513446892219383908896367392468585608734949469512317308159372539744582459151774111018641889832253951978621528050314755031180222760977179498270427919934764610004155480223510009865934357582784953709124245939423352098814857415979013181850716157737027362537039984348764063324862132277591181294787931684441858811450732297937465606794664561722943059425021515396639998228513621785622077700256252450649583721473833069296564065915049847616926520424578303046823353167894975138668167581465455240634539144534002439534876261553075630970981153865649934718333876341049574253739946476356003606053997558919227829702511214767044472368963887707468169433150792335748076003659547755733872281186155304911987617152748584946549732302086354098425747333341402298314445756645771533503382353733172464522133598305435876764787828160703452682989969075642385571248045146278497727581168850528290473958784498546970568232373298086254124059084000848219651419313724919549505205064210426824967174755900306499111234224036705211560222631938363341558381557856268340764291375731750595375531212854565805083907663872871394732803330405437248462817215217390408383222870130888595563180113961524721430131290702654237644894495237573391114016239763468318405675570266450780312880557404114690960139474024067534685056530556856012672987933882276982940077644629725467867665996149193908757746044886678571199670847376390435505714343319957663999541955521826748411472288297730252923665085202738579074021395416354550366773677785281164856308701837477825112466085415030881479351229900821152095154735986284866073808630998083849148196401677857255923121266378189477100452678052040077634165483527199714957265317221192771984084089333935054817079993738890607386374179989990018195942565162341051782435626750789525336892700622884940510694378463869869855083026125151475253635398466472855903042736188910745156133736918299847426438726198609248862217333901802445083870243630376449867423364073118556313902010393689511821948843674544093167396162584784678710845767071084396385213628877175552461863656091563865537186593444408753704501769876035213926695577234769738460145489488385569998195795133898290378365123024396907179349989574442078907857158458834767452075748296877768566931109671431858250527063747173031741782677621342671072097097729378446895605614398247025297942807045445537536710033734312953601214677324853213958800983345054448957570106804134674950475190500298911783400011491728519650284102518056442613511412130388430408160565554751090247820702484338560340640605311978860500883571131188025726120414695826181615911504180471365524820884358616381214149961841391219039775099613199329779707830832303733699276235484140335368559224753153911594805162248384722024608455595352384023713797769918803888582749516836754453274995312707590811147653218370730906919479127855768190084516077328012583835345132188773422874571119144221199453235188314587862366740274067546971959528428780967466272888490739962260113044701979907986829867121259483799231661014057415676851155073843646976701360012287581820678449855559689002507842174367280635786727237596908334577480457818097772851931170885130535161347289562898208012671764519951240057892116167619682467256572449981725965144152830291395229964879190087738271163929247319135083239578734314690901076932209824504040173144022162324835102272223703478393955743688878575249767209125925452039582426153161361770680466067375694756341725607998209169028785163115529671359412661883260992281099505088395338488495344966666528178998194351481024651689924666272030443227286444057631343998390854638925785480466950742812696453971534928151943122501495201358293189344599832801643474417407754367939846734101508840159495347069606256097218441458019087826706294558196603659518629796910237593953057400770127107415850494217232583991308327538672727411056768578726098705617237244748526129704046564680599071720700379360514442525875428594359937417742674484663161147688672545391170370239149674010114442368372033896076841126187940162013617460662844918931158432237610496795951226911702745549600961892487682609761240216347398009210702207730927223370931372259029581069303730994127145583598338388346729170100439428669238432918461871880939874355890180031834248267542317206387322572037314513869633267746901892902955191331001989399648680471267317698110644813181773088434495036566230717903415145905361508316218536883125180021578702189120270807638184538998545962785703870426931430997139763523236133480005334956774945909685277301579665351489388839857968591957102503860978134332932591729224053654311105925924105749713858397790732306044625826325034293568035671360121645015946148206599794709933933810045154298346147204519647598817965347543187937943236143628982346561971598208554384596462111126997078750959324079870590853000956830983608171828444976058388264854558629288658221834335161200929671873894406526470365773151336350684268789307582386231578845024592264696578905235471402738343650199795913539708343586500648890298732735341814348120005370795941686104436065108343357311510229249781979030337737690438654717459888856965290308225679771977962243703896711377118557587523732869632348999181859838168902832035299979702101825236168524047589689695813052797302301013408604904302991820418310113552744766177990024627054123895922110683978338382747774166880340164339618802612565485082186702990139993072272343367729455635987717340717192583903010676994059366857041598769110746765940790163129258306560296552185511521685342808156853786156277824844878656543304536395216106215733927293437850470176905361882781401506624411518682927071859641779836727524563095926078541750708629220736907575490923495006125335129977323893877767326172098984973994098197080381475236489359479149910635098570785196254134476795052973238373667608580575981443572928992107671744435711505958770829124367018749268084285224840523744313680194414613322275434657667272238645167873877855601103720416105375448288952941422921861433081087358512139540759179267138093383746148813962776199669217919474781971644100319593886093181737490613384551508390825527528780866964665260274111136078049169714485409776431120026039863803139543475882477343423539995212869277507294637008578557456043293444747092481301016181538124994479650604266187993086961880056239891425567116403247407532828626628351446650822952067412109748911159259008033672816131831132953630089132517079616616388127153738776570379008773155071020344411607745218202224029241071635702786045272920165079723942385633264697689720489420718848270675077060100045399152623616780265911053392726421620353722259547680156734377818277674586607968252365062667736060223134931907522680992041861593341366430609664978153941254152591286094798261570549125514098734222306847692122202029343144491567727502420085372978122035044140427017870658210380067350171417502057989033072406933794347592847930008268953851795185050880412282639528164596704660947461130591875196568300885920056176677523669893640373477277828316485239099128371963078849643251096297295273882437289091321504362043131088566892415071978641408791087739744399339164442324294919507192380189808503735273707346619146750481329938250406928213392942818431863654617118202271218417347710070216825224673355376664747985764092342677383901080992341766049107128784263751898143930554270520843978571721730321882097501044720389387811563970371054087655482827955342151161809963880156522987999286025702421895316351387106449235634520875259356551851988227525617616282489480397364015944524871022834983313748861652151238180151575008097821998675093317245090167543817898298711308506418184939880201449125383840941836677437699539470226138377772310037682876100715824991848617050937622625859870490548639960515956573508369500157820465548009293849611310295828948802566816615500796095255851129240710101905059495045387441698869207887980085640303369718152289801872339028982311541872306235713857236913683591419945023050128862668048935302867700957230882507344196324365930530864711314632876956117242489325432171145091350941965767502786814820656581149650045298811802680329467124928565121460646308034149999507242959688174522517414126099885182400605244201488597758483343382091438490260563702839631543413261697674822915570959905895850064136411911551522685640770655867437004983749666768107405253538221059101548664343249254881250742304563389075671479009099300928155162691694912730054689637017253003813734502290507205946906230882389003252197869477267137347247032633151788461544857070741816944209905396156703050182592693002614319438261078434890157181259756030855707222867690207236072797402843780500777754108223572996362590816407209306982381885390372946874055654721521818137206042634827196605225592622944531591801765956887769815497035103738294613933635001447373155731134506518517127483486186310331324743287094582497740476880382375175627809307408334494959071897958726918410281114510122285048685421296271557450204736377377344164928525776316268978978214302493480877063611528706705577729712614082775661248881838143633849894914908739753280383997386248211536749293310256131152685411292157258330154123225252627668582188449749244037968279654648455160420579416133159082736962641890973970122466417387672973444978486507231276605687752538905335274392316602357191050991568005207020877787248863084804162194266827682375472806215834257745021561298822220227025083623797702445956317033961965827254060938030160762054439598763241550146546094640401737896737788385084897440923675619132159692025622362633864200711332400222032594645091435439124370461715277447805501650006400736841902931818919521442768990034142248763833367001672091794651307201299047626762575559322825317991456263424649125861073491801847962338616371781313574603743184023227361862660889193556840461332831443288668187184979510238048342369007157744436782254373741012552175097051511170483273607819547704054656903762518777684436396428817519672256279241248158496652500098891006032116094858881402757656520462971043945042354193436011910614870051743247621790032645541449238224481377410905723677952132121529753533474429198434796227217886565476907291720975797298989873073198309670143989521389843691023626085910224555384688326484503739083985248333802287733691267360519973417404986074134384549080989504110023090637587962502364062143236880279399330618299965112503494329612288562999335907927315422516705497570752083510469614379755785930465637003963377052863997386220275391649010316345670720447732082317883746195688505105446816296569918733398949333806036691604114305478445054439380018394635745816530628838305599189416318837690421109520491536289191905057299825376392668839225040579505498992656414917700046537135000580850470548101305516587615609259997361318711348901414786884541917227782904009694283746487874799780245992311025404598741225346948511136993441673941377403646785254708106514433654076163776329814387262234863824836413928922892482997501066183549530287883326043839602995616803888586442784042984118625861680859932363586779925983369504266016467937887508899919935887720041894132906608613813563716502860346383473562483377577658226705338858390334608111534839761098229321204685529112006148727136639950561034663574192351055988520848301058940876372563026142519715247797701739096417844669048188201844722177039364525645984203409423858645312488183477208449170571784203407304481209226756130690983088523799018663625838362973241726780022434454916242857948565789267427105763501575633821504563400062360372969455591791503284968978989619364551595735640296609281984071510413978947843602973481874623029662759627552971591536294954681934446373647035601246620065676225273743487966827940313580873661858038428698810474158926814069096480327912359222214183260546295834305815596026173497629012407179064202430654379538287752632444225843557625587108551607308749301940329710097142793277030005982928073428082619804652900542247987531145912260876990864843186167689148570091516895135645098468130362714357383604542250926816417073247985307891992267660525321372463795841495716332641277230289021334253675980378847105923995857307088100489230112162170347455231181647008852840964124412883656171363480544784979377640413588451452420444936717630639175420161019681519746374669778304107823760147341465195606077863053898061368067652495752991863328239004533646449370200257786774501813835159059498912767273097711418481438470907933413205582116606394032738024676848783713044391996343374465338809916345393925107637672825040503518277525621235396906724336836876179998807589285100522196815132957434227909446914517464451823382482078142036372049831206506600526444504593134671306630063726561151596579661890956546299246095180682541827300502054867318779771937313400261280392755199068596590284652521260258330771691219859938319216344907350483235814576380188205988526507384980251882782589691789352524944217221610127611918650527573223808027346459766309857667877656577148858136231059236195397253653443845663680608658289111342944747485257799753225883613522215642340773073481421963495226872374214520561076187283277509733492731834679723358178950033451232382241639697112630934912151247115507689669581354925956916924006120399475613803912419608211561883021147793017911749457054449579812928730213584422824757769994101991723888787042946846204903777819689022304127377003114313286197040617160747144670718743582901964502016458496198850420403243135974973791996496911526885500638963804530024979991909231590234122084413827161910319976830433729757326341238986877229938444001694239248323672015170357380756955889567896827181327124865550672363663949511140746532487295953217286254474055967140074442774263375846627801326352697706536721985859055975452864874553644727681781892555608023897926944460607375932992313534610762324046216953292964596454540380393020373650316130286083164653645158532400375225972884119958840034978288913458222750037962553145485493151926266053106787910936519582685997757724375298462829850456783357141518697949065192240111000358330038171136227096768261336735021557492697479854021524176934923509140057892391195068609288781577189987081148244282046538872131921425976315590001795745605254601854595114552930971419900750245520060272419053943852151970136897896731330670183446102902262503020361867288118734697426521461518169875164010063245674475465435832950686541432851693381936857271301939616373435720144007534462512073171709836816892336054772892068868597535408796752888869193629076385684472751085181602269791058696229260095665295368369156941144406656626443193701907561355726216499358649471284427364783158844897560258974358017461623404339757370730020324862524702595457947125311583792106680928097679328382952390993727509422742498308069271031501587862390209349726158987706086804631161086337678901720763735700133113214767119740652811217632721879525061786794760345911889701856949852350412766174902058586780306984337040543911161850495510957379008151892016873336406174049195174987504066289484184028830585512960677651776939793481105772219876464593152789988724136007570617282764654249396719055678810501543700377829562490124462883989576494436593356649328421354813463965962905184269756646743000854074937359188637659222898837872794786008373349182092913073086161421429196409919218593017899608258509036290464177340332898586233458088453679584064902623109922054132788499212374409096356019400978630889067261257978296104884347869863105663453269637697729090254323385632356871687177071934825643456267845951731379405683398340487628271291542928814139996981054437552519079131566316059188810283153039707044302719431888594756437822928327108251966433520501790111707175258803271739603383298605737350692773934001975807189203512275714470865542248898997685233345385457794096139853520029848778756039626116647911041452969524576098675502473208864277511415845330390319832723678011139323271153317386546455517472510720291421907377052904241776232659090125208387012794644066412618272521781688538202878336795255985100130757769171445289755682323545115100397519110445596831639737702381931852656963379290582610222059776527306392993062296943165837185188257267954554859088722635894383845834998017222057961442213840407190141872127719665001774694841067342132759336550273539259131555330527624390073665854256763670667098272242751603647494264552647868534741340978515077904188749667341918254334033004270195983089291653290738653024068135444109671665528618370137440892931243167394603455153196709083132090849623155586338536699485512755645700545861592042240858673329695601328902537843715350797555993280807268460189526568209570751806074730525849352529493188363043911757277231920829666838293935145095188894550108321275691633439113742329398184507756830867422229855943813275927461914915251566280695497855803276245648068694541947277988966030262943319511321756778825721523118203115711178077278265329814916058443076629132315123742357600274454439912530075297922807410916654426083923256530129414609634180814742426147329168587210509758363664685401804936572132510267129267032115431311069540329260634085847668305927297959347407262904963011966622473454409385488043016800716222472182716207388616056916283453861844611165431790288408284051902905562689407401441998370016082706352539863404478887046391911006754541471338322980325523125932834986113525651641061264335335966957676182236674917172906743315061124538091150047738755124467018480154998449121531780245331637776208969309190574504311581473954785220311067620026712897381702553565688951035952204616904683041255137999502147517041252112329518418017391855374860266292921896468700877229816969033972818681017305428150532570249079788013135284595826446321885429891968313370044815373344291751658338528234686810627855534541481493525289120007249965192078527994201708018178666770852339966022046842797120432051297735653362382882798114632028983807837326343807863833945061314857908782883051193943555718903657593855879442625922078527863730933294669717460800188362549920930394081604077368058803794323678575468310444937311287191610158843606836086584144638898911480381413573422991186447652425972806759948092013739855722746143525675908460100706859744882912140914579525306360923303499432232295025897018298385245299207013742794540111725607642024943686234384594002426649407666059430409563722670122853299755898947209075534351400422332050398137637502003730328375657251219981724433483298331910989699537877055196730445527682891273833922721930708622170511087668520694787961074248943176683867213148846916058477732727572055139825876756244694262796714977401159918212125579542672178977165390931457527683350054453277013475578195217670932211532423819131499727239726239682226576539698812207522971678322114126700243541972933891685683165895571910029484652921569484629917161773236175876378047860056369458871649986835027826869467747674141341534213490106310412307245134910812434029835675331651683495716057093974463572243179168920095334602987846680702486970958128173504021240035821842614926988984034563281979475910693869671171743254718134560127664168822664437143306587789925889216074584052318272830235436123792602250677463068999231354680542901676161505086357062437997414088232627897314136443138241410160000201360275723993148620007910256266511458826490396525077372395106168065652130365482127817514875246077516179887413779893326661012227437221234037082812719538455292206001263995314422112827008418915139949111352168619819965965256634144893251399849856177081570931229375688737746465132380257465197033674078328742057983105507440940241450406775274971313764659550894106620343223521084677343087910096210243534811072873936343570200452298724820234736914206356273879873041048639822589603373179000174517434525351422264336622272502008660801666176578958011555886416085301351228132451701213390615930171341588114799566349713047213513394157607455823934180329446826633720864900681407612670234008781234696447382540284749501098372164523521059526102716721521432983010541521370809561540250898029908161109779540917280363930736097497464307463426737789188773545815357006349727658362277563267375608046267940839113523364888834346656631393548237406672378121762549203682931640444869987953992692404797138588795630635126775753148535058046590628369528030865104273583452269908019372355350932952249870319239201966941214660213674072074852324638169690437774313308867129112310759253829344694370087763482846270691237432136821233581185924901569113504644949729833905170193220060386735481991277663852399646737915642864968341492471722529600503400943262291706503287577228745653999907351281266201098048333206902598094262104111753917652392561346677721417609196828605816765735755471817556752496551629938263104289161827496256290439076138192723811251844691717386829521653769234410286523374133739419689401105440764256138553808125794449497761329531647778585462365635808927172522960021193662157142892266760331330766668107437354708543849000461126325009348402865128329877730178450566479256474432308788095505946910662403235907278775862532722801211106708032063693987692534169731258496779417527712336774546707497638894600880472364759288328475986426800957714600990582629367921920470949146697813939684569106189340331199253529406426681809259971775968009495364007569462340674488064688424749589038591029086257496653507281616557560644431015213142745151995056911794063516239678127144721182146634278025684042691198879673861678897957367308280177896075977300271009162791600369805343985004818234995774613206234246318077351220270414096046433742412651504212238404103722829255482759063662507031866068908060144725520114787392327815787677442571850977415909971503716175203825922798834936555678007020204784364088164510300481574645317023061242089948628558715719254282348890064048981798012223289574500998952022660846193025653163907867366520685396221953027489016803438180383278179118360719680413708654578258650873061343077539717321376026165767503904644669962404300492024656302256664667807483016511476999946315409977506786922463487356304572559192443774933733483320853576573847560151206428472925209320611433936237167744932724494621691329834702030943206615551796002488035848739355059876753073085342319586895589008145473198640039585009099761218697548037677703498698037525552927789471201212041797557739792577576235529404068109018136821169560902376782688210305383484496541018146467504925614872390203275068756419795333091955343547775787380225621490581120644984492531337299347812221373523302987468383614742187545611865562803943047759994292565827946381177160966353408238299092780026564778909797744212924142050063851366070957520742779125992257591320167408238842981886214834565210606472350108051463899834356551489899211109911516296784961661836184637653872256698667415475765156203816471790669693816631735914319928023684641324911203982772060069391786292748536750644329939065471663031226047665539958650290799333878464281351157824868556834169528281866116967210710189340850052300184397450757973077256537322739248464928391721635027314125617921411214357270634478517645874238883964742538185517963585256832040029568114413141317948157854750252553690703994153042179824030667585638610158133895098176565314924544299043051348543968703609890459818689314809927409423095443477470515363772911399715255686031164042788701710817699618026454460378640606751088159755021109539423624380478348824658540505023117425331071455132594108489847939575772794754626933710925772487057364509731760227481213833827206497457781374961959275994031350927056449623719823868008793602071449376068609065503123232525089671217325433588570201127632371812820432466608734600919149005733667316907041972032178292777752664883003620626671131598885222054602569265548917193510055971231264148219725634086850280590591652775471877214643793553950590205094819823083130528535428264813847216117844576663166483929443096514144646004702212231291830843508921046832920806259183589341263116204527248396988461470610462387496417743856022626547886155556085314147846793480160300751990292305569407046114251348808559174404285539476169188375928637143083416674401701617614704995659179399628999993971895485694391166782360552954351884559897584759377145737230341401285318831801349077156242266476259802324842512453799689436493362390385313985924687674910600445827758320770861755675359688721427946610055811189602671967303171274128548485433469724897296496077958337454550744690763479848261337816725686997282356177911692688024700871657308410955428796424601034709962717814941783910230457209830483330573115908381629540817318904089662398589239047673191539826648818991876740874087980139294672809484152314041684419406061682052750820724423858850064782206140452283927739300256646339161600390547455850521797604097332358826564847228591900172444295255206813629194355389431069473625378776381610693902689832778390861760305850885980546585919830917023243101117518520634615064761390085703983928257868349330831526864990617085638770095126654892547207131609895940504198937891703526443175810041788918632269228382835989112814066495286459688648624145269209277528350289971947411796343493601930763182521368894449518585238999054517475601709659895352322410752273422202524468161433691646049002782918007058351655268228035154857572601494087414304747491163515854087109547046241491838811536165267810078048599280786277402853980904640073148864966980038977140126482753023402925930634069383135333790721160872466334602251032427208371799769638777440769297229296535063431220539002989601891314913432519088327250191881788627204423290251929488942284846088915639796453174673003955928743800955352314742384457082136854003485074550438989633828236083806004025697425771697333408034173343416463580022337393804753362340679996928582813325937325979102132702186777051635436444127042612326894429428429987598786025182384456804172122250687863242006970301667412919440821357040719396069785480084483552882356166672638044711840412181008846937604608755892664911662920794079830644104413803463059605085257436545570523917041571182150079635920109281292642704560877077479262850086246738108473960026801398763059252883753826180953795081101461701638621710154559277684756396039114702557387908687120682910592791592068192660420541697015743974128643334750631761934930723133231370257465309652255299464829108433038534745885093114322942411793960890200442574054725170409025312225031249380708966765940010937660180072725201471920727469426919674136305636222939517536069566278568310570686217180012110593970815244972231971189388608356685001087641731492650077319481910400869210575323233452207238731442284847225693146031579693889791717150433511437262121923304139860944787840899390568833341389908664917917723216901491712234701760965887842548388204238738793976037506577230787197413741942242209303590413524261603769356719016178596992474395809525686901274829335731426104845165640047434527210496342033951642322103401698014390498790321263516639433966829473283586833582577972584773989065461440153452301932538632356004168432283813226436723799326936315768479047780839355212828146560310162879950767391096728706289519299726860808254584642369958745697097548143692211609304774658733332912366099803426315127980816889363606859804968069329301746000215276384557898887085371267325225727685167897209072245089698816962564321370715472143120602569494382597517143689546021109222510970887161369496123369312193425613253924647832243756544231505999987833836537946458359452027536944269250738983530573753645559998219438553455858913391684096627018021571431738974360779271673116395749803951620068264086041510559535479020114174420236471614451030454526689121292000843768932904246938032334995244901208569328571799612779511947863423532416448194023096159023753079513583577083580227982828416622437608512621339215497448334643130671801477241046889689192924138307117901241077938951844496489942065639228304347311967588331833973034748226926668253009209464534772032064137506714250152548963846403332930230330801266539503971400604543032198868312932893964443772465340151116561297912177195575030734748006183356397476424072195131983217581884004140545587383111556916057924618475634514568696070619545375380452632467109951204377110805725645892683093062960425836298369247422060412686825963340375418613823891151618857703022432716343786863894347415842099463128456896010110301083086574427963493746543010579757782961675781726092648039497601789786646487375011781618133340548639171774419606046893616674922428986476820728778011442849298311230774941369279068034619853968659715148514030820663524774931780894694570321245018510106130312742582176572864184875884171827876878256929804946994514321691938168554931554647715429854562088705829131620086370195531439860262701765917827720366087060358266423303553450331821853850922026936337275744412062963888908860596542562168565788380411159133770513421565276610126757542507321323591195180345791988684714090299416102902950937719762813263754162314693887340551394900014938731391921115161539512828476785006068332000384066187755483063008715027894886110922848970665854091264671333184639695216064878012423890211381025255103075126098788444868113816358159195495388198631445024560938606968578341093908610013574269108526699594729357733653851031381974311802299438461536493437990645265614668775508939424253844530063380095129458309888732317971728559139087952394470503709746044110428172169695189050785861342161962387091188174289171557627334898426773447764251222616613981138020868658108219049428076348252508310129747977618378488040135949154194471086624743180065524171865179356688276355043367107659064089184662635539278854300647069445940792174500765974452151902883260478535956405101882438837444837374753368794917565413173496676290081627772037502532982534594432832642686290488781850060882865146112399285386552706907065263281121118214547553681900782530242309877626323475111996370580331251752186306741398750700702868306404065348006945573572953865769926190114938698634776037551707543286550437138639180193968191843828780773012737327577242585256418407382726682464320143330266167243271133069241569819398096538157142932737185908018539872889153539794046998456467590507783179098794165431358997427241372373980149198343664544224464854262297672565229322401540166250468354350293540630733862993834402972546474810451499430293520047441481771915160501981756894600931740011843560342509537929879164022639869911343935447310688993224481755638863887950396245338769500721750617234175292911825643575508989030215331014199932808348161930318435178933817844465089238243836686562391870609462550867333445466426192138721860199263767911835154165379955850617015024217266445595763022870140311262811484611827474494503687178414472842861374076136659611756824095517767638334589688011270455316937756187740954109318620084883657993388535031624244141657019527061698832140664984288264179960955866882009000479755262684295049039794116898444569512215236103763829810050537646246290608859071237294425241873413633098315178828443384915829867633600542579075227026043495423295984655486151531100757408771436318637507650063712248486495735265179128922037579698241721454287484373699298399272755854643446786385032719290008813575807969287635825456160706819538947143280365635405346434619057049666437771411149317651616251319227731844680699044425028649125850726850142397517331920344755555742891920630883490058587747431933729770447369674950001849909021856137926764594087637154279439242573319218421442325606924783736405031843299597469065187374577043430176340698235747941709148824717319766882948741159718250659878307828857645832871088382934115096845236129894743221918774328859736954341525053612986783570060061078561443570421568301108091230606509401294134046218655842072835802692481632958197245457337826066813867229610752119541668655814954827997220866879706609008748395644610620412282982112732961542905367514763105807665064475917350317010805702360519513653987154568377152083572474244176629869479657969858068226343826195415532524051865672201885865385998777394691887994835503503166544662366738906534758851258289838560360768956010605357246818282839589837548998923705758975833801136465031805685880156331865237588329542847601066636478666144825925928965403828910582256758228548353491481009437090820072883493983212568352867986263792401765947866173113572736702796973183288591704094823554756043960750121253535922789984792056601372670397059653561154137667528768971429900781741065085567789051654149681356540488307566170433079489984428411954700795379918842786302880264379169675692740111330273751793022186591889871906524706078997077575954844817285289668853525248770036461279229596744265271171199037544921263595903984835453213195409063158048310156509303695913745203916029963495428726038219471824656530396235876324129034683489922504147666589779172768126162652903452331840751878171831661309970654105133077570341034382400301685371507463714419485860809680555600057584437553227953160744236952377553370157877223239826442686669185025748580020337542747944235514027830375848113925564779061106680693817145333010030109400809907030990923044067765325839074683690598190248173200602544785931486286454363969810900078210419721260819434453775508019027002013826554945165774860974753159321546562666177360073039382403050648966392265307142036909301511929327975568065414912421952188526590940130394772607688703037218786476101181793240691384352078523634861360377353390406514145923461928107869359981918695347463353123345681252773104388801577761496260111483358344190402724255343968011764463787710671555342710206593618254423840557972085097218518744956671728654773571128932793366378661914114817560174990696492171544024749583976453476173068407342532728355119355312351872254659165510187060042455764203675897786674405804432186946760712171242870338448284376149247627635612714434754116197504824521617470292795318291884822784263974753645555844625087721955295539827851974807032658540072245571464563155376933111041166489451455111717607735486204653474170371123124470591484706998568280141484482584100349454532323912047424993310114623314628984952306375152856870509077638647060712646610263673614352089348568753445981130724221054569874028858359316000824725573586624333493772817481338190266140483939142198780000450895094677017794807347167693469084231886746794383450850389695493645003682889265304746136096027591908128692936581255723858332358865087295750760174607404120949950322419644060433789779100815566634188022176831813623300713268633597672234003706696537766302098633710167239270745939210604183884112005619563922670614978681757584387302850914051194917069934595769177265621949721583724316828929494779821016093175626972767035849770430066190551727098423517497738630821338896065452029983488466241972677415778830483325484916630085805588335670676943538558714775991074006311041990912958557161373295600605628119080607551217627776720686435002220429828921019834166387203310230766155921717526313074980116070092908804498488103142065813878416682946199706529984992747926019633456427605725152922534455952181666192730920293627017168075357953490405328026076108615917696318290049779437219291709773951930200142747068730210508207386107423666004808343358337752798398862208166893622265286648825843655248286673374825226513570641866957704928913430229086906254826224888603930883597703145085296805444677323746551316166125460185435841087449673281661874492656476916243702113344294778508444809130669417738133295226513122890910511671371520271018713975170150629092085046297270431658016754819753051042338099105133023389257414686329360413610137444016117717591712418072922884001761356901213189575368819612288378931190402376573072248300312665292721052201413643460246561779960577448679076359743650560605776820639308078090335586859823984147421639892800681221288240574160421156223833111680116110097281970963539397294312362208681856933934749369108177323317790804509252510906556195618211371915263426847508487328641264572149424357312545610342767611058985073717875543157866309420969491882900237624337323828322700678079183245892160468685449799289907292657799617041287299817037585035087822234095735454382795350850179925220937534149542286644883863038718016298537216097344271331510152413409619028258125094675104299972066192355769566818093970408182971099103578108203754478225659217152379407671917727784023097410601294113633502078227106371257396386631815990480349039420270882985931910863149003688103234411813187078892716017891678921191402060505550170811021785232133653809838546925914940959941266016774551828269585951002407528139942255292992581825110849359905477150417627087142251383812616172604193201374382966305517590904525324910180512176507511728959097940325190227603600804927501520983316856091350233288235933791163578894323134793260478846661075560497388246709009941812599620935114796749805863639093769818158959423307396728394525329707682449972015933608862467525294154726095261344553989079911161740771421624682664855493950479682584202141332336262016005767822920581973667086632324327614108846021611992201287212603630035684373677973342099905041456187336140892738457948177867993510353287822017440126370840462996747745216575102464055313717847107045851547043432904815919595369747899648799390495707034057500675150836549854840936121457796958132036043621529583031607186351827251420718075476669048868605324190484600375131183036740454869939596530693578450158740341923376314368726364240745429853148788195994971050060824049249367844065803512395681313490087542611609004994906518372547394208034227246997246948691755910600024480354802788127218875205814629312987450667076745030207364318153015774492767937071161358634118330095270808940256672171278894227740991966299919146430180875631580891977017320076206706158712721466396695444656891631434261663750048952959096047380667563443389608893355632202931594470423487075776109927815502007378000444658047515336302941222348213518892289347508904960392592001675503116301761920854826723873025986596000921370676848321060927866977670034263113905157613915264192337769154894984939959777151768826242829385096881628832195526611893565673679885887380389329155776386807153800105693603816834780254998394314880185663276561563127484452639288834096885975905225590238114122133566980773388372613135250872063033004522969756814080605657755206177662502349870070225024977229259548588901949764708776626057192941461966145195109647032024548975117438918020834367993869904983782746625657159263526334437417067629017664439085283408870014685692585002478613610457329201343657283975076485120527559509270887183761422271815127802660559324619260186199527112868194967206747705061912730202205349152521680660008574468883889198982969570076520453661374781007365547111731955794698138368416981711360924346658638363016081730972183466386880727696986207267448839169499933409227640311691496398171237139563352098517459889389451198514661753912372873175780537610267949278292301348952830823305220660783548508592218390056471605610184349407807306883205328956725400203809478381358801592734084324694996660465096408166902864025779354750839245871301882530039040860880905166287611402933903907459237740507320811208592922764536110262018394008720638793642411411962830233419251497702008379489793044596307618871350394772871074907707553284777079695833035636785368301103543202728758478670840304032912651396612760395854442451141815009442052964053628302629708371817063308998272403983430355601498451826131683738813864531655255759055194359382632749074361682245546085402988528957643360291834594932377292490314656282050916701105482951971747981165471358812265949333180782083951833976029133775975217413341369592870862737798385828504263551882701946247962009586183034561180700347445187213873615179108367140083126029770302105951520988239563815156880405117161146290245368909304631455512712356207386291677357941218241213121727447081803952733821168280571978671526430249462630376399803053537760578989051617856104373452229604094926400477771339149124171499667730149413518894131351174699983884318880631928715850113557809399018079539087446181045596854724159398404859845232615458262303054632637690844045718044743233097317247463709731407206079840839441154100849185080559839383370922536016930183520054597375759121229375875151547956214621101557437306691214373892571118487905496876298464520749965261883247283377907359697863027742049244385466437611972128484578561679271379624382099671799176002816644820050054724796589705342004966388262455426283818293233891380103964236863475489451194832717101054035141903664084440694231185728584393732214316034033919028197641622200077162156354730080233359564398029935208153525871801201514693923480423774701450224167299129643756875098539250764683760524317680829655585664995238370919333251972795288576156680233906586021461265638440266150271885741028752136530058083923637605428791747486528058158071436938596816779415863597640612841727497396872285669667723101286323509366910320312011934538149039424631616373518123679594466618851529363625833752428523844868137393081951924326023962648515327167703921328892358883023533987975921749134116212352127171040726005281229134420485222830928391854544484953735397990175341564339734808357509933727622908635589379936017250969431977369998524537339886876784060314653291323664374286405422469792123859655223302648709879470705127249222079559479673131352800309897778215802298669957066813907427143320430449402789294795805188106816869633416576947315950415734669807326630806075863998032195937764691644815944987137527534012175820691102186022364731178795011184264654740174004580720652720074162768183845400174170057025131764735319634426293240516151200552960507924673299506042379099181258980002348488740070857506869160703827350571242989911682097220355158226067162956936825740093350584454233999483550656406388878854915934598875674596633050323784384238302895744184188376030351239309373115628617244328171590603731734013884502537581739701713722865924571562375161959891469415075407685926873691263612443003051492372848000874282835970429001060376896035129312915181604976079323060583336604381380913076482341879052564007887398847516591357905526130886596202463111973202384644686706840178267543708084594978860461633082359653713697105378856679359884625005878138357925766719943476231928558463026684221194446813248876364039459765715703767606789680403913374771445604879044122752970916521971972607841990138520009470884154931793095521932445165506961101031332351865892351566183693924577463210028023174566137563730878175357622031259593985666965825281213361637806074701359447151918942091240657932131886856801895296073242942567818127042090482206770988819386081298042002980110449019880296781597185407798601159618360364029859673186094354061552423506107295186661978383192063076726053794521770932724215912661353989118536228145883380896182474175446482518706207071151486388368032336740752789956766378145347133570144894295294568820246602005428766345096839699709934523070255259067829165956022927123670614432277509551610183335136992977146354392275691285421273235501988165495164909776335882926626536716034116620535111670637637801300633315179401500600802386710523638098425758914044273253913439115515840575540897327443753145086607001900647212015021614150083603633578976518338514081597319367269305961037532747122308293263680904861779059180451270316708728285540312598807117846174838418405397237925064527310476764227427451546078192956380935736608501770642940324684107951179007723441040068975040784515989991976957295465525344989129633734446542542836519403522257270216460730304852913542371423024763872961785534911914474096674945780898949773246935006810381187529704386146581241607224810381059993414301965189225174764831022954769257027531657855119392030027428683963928076870619871019723617043202236980502958781167743686988016548331362672253957769490413565538303072384694502308185783938516809179836249549615289487437115517969579548243195844967228782001241115853274085915575500763387048033109169508075740305691052240766114326256480360233919642540007085493509472103060733363992335732232815850274171639427625343025373323413935562620669758971681233926771625767803222021479178651223958904060545152055712558961748217189819870057385143942637318930245185592252789504316665973490636796428056955238128339196281693634295692048271965243289469221770537982336824771240917125626567527209045165547602555371454378918243654336881739801432507488873110179740040141825485206138909521505587150305347410875968305191905117916779764080908503245878360109719458780140379886412770828211184714384625678694037135065241960040134482381319745325214895957578194093109055208810963441176781285812516132284354050058232938222189688152131076837079327156681459960866514976569390350596626347385468506134266390745843854201790780202071002105776999307754212210874081469118786349308193999529590223254251835766770404975034678870658325386989261047011514326143295226547856815106594110522106051890740679918064600508470731127072014490230905212823442232636984670741451558364943394857400367617450720509984205824938764126399857528169072254903800907964300868851025509627768131422297588642726054301333751744459229899499220054096547494223779972726696979218407707982079360678552088403062219162152517010295971360111546249716386889819791254012308750839260632827598251436311039139701406169172022247637386893540418943359187174632488425534218186667931880925756361160431636096350321326779249164396895355245173078928545513249221972669310267369208193828105629428251018596368014017170246244206889432033941975068510263152625932697595915901909670263820984304079514821680700026097690197084050486109222776676640519742019143157718022272854385105319642137375749378796602576977745343665573758178152629127465507205001635476882680584672252709527249539285596772992993600329621973929122433881745219202757896148859934030653285430298764397412487690685150816268839482678260982122525688709514150752977911202864691689695880549776034484977720815780465431324395830598989054569208242740596277379386998059642510401470419596517801055873178963097540017061088919885992810353200252375003223538514550186422252156164969196965673487442847248232892811503783610830267707532197355405535302954157674770531060382491216174583460226911873524733568627518590299959331369402924872659141139951259108950832241845090316604286876167304806377138225265329559298478639990002794227007889544155088712136549801701243476783141391825710793422676827820092753203234794062524578160173088559831657084290957967713318725229906136221094085332695035845700007234494991773832425607414812713760771646518276778581142316319113002894526777945224536956793671198423987544040888708182028454194212812462304413770195163501517634307040474530992631422000972192696939955947263562997959745666227773091960499115384579165225419426422317319697468266405277613357141297469442498108498238507875303444669483179065433347822947662991221936848339438004864987447519613021416869854486783029761877619343468209391423950967473370235807558049711959442512192269836480504554712064645996783629407048521701847097723854660224895537593568327662165917634890242087237343022532972055576617439722384350845858641626613089666792751337602620899330866383912801236502748280889987613088395286058992297031239894647918412195775311338001793828994311672782845107758359404597282903311288852636432688672074987758807086876440013511802906803095165672148677501400533181933354530737992052934255417805614741434070633015500093705231984314312780833249575574507059251055562648393688685660460154945700062614971128169595795571796905367002068238072964095174816996787898052710441691850837991324498959345279451008175688656409400719289471190713917094034266785259149473737652230943528587558856573429850440564911130609470184452688609178461997576783067871276167399435879537681379843112652727909903783914244058678393274061432143650439234675380252895399646018979308592421124269428390512142451027542765762008271380486672756490538498932253411560250920921632664811657619645226864200822574446179218370969543979021306316596700268940287825367611838979897720077205030719049789593742858939631811937957021477485427269115175865882653388595223419797177351231841133538628110123771949532246413632030930571742136109796883703597242636435413175595045018700138665268366793388237468859461720792106547541415690728947877627282000701078701409339640126188280468294265643986967031977696418379397478781901215588067788666653063498194273439991327191178345154543756241298808601485628275822232123395571544619949990256874197018141068696198332449245279511480943121406437878970740838662674976433871244473405344818239652373257071405452556197559396513021141064445333559220456851564200152840890809803331747288036838958051110813090337161177023950212021238873554157131571712062661254773421955142216545504512064475105255527026750194741353130971914689205537491325838865821804017913040430672798708170509034812243608790740469877283106634654905706499044629415984186725172468918082148858899830520971384156940912220198280349550262910316402960335189043221678041564330153078744683298122674971164069607780540291166649011642951623649734627955435570533920978309585589632117629376122108568133459803038005696940350112671222628304485014417158994479271740657257585382668718162834807646891049159199448660084736199946972007134952410231979741530117314579317887994290971335806827254593222600477652269762709518914619146915206887012610198620057397629486823286654110908148940162089640759685681036164389726378696949419384789111178359827919170594828235171423678670183208300231545101395284534982769049918629215013480028644983518221987667275151519610219133127793035884059545515769761919775299177492159567558532265768351621184270307806998741046058473035924006017740589269700144160258518994725606090638497420844351591476734031394460682507459357247460719983127649448128171220368785470472895465039528417711212831388672988746934606565625594001923458449044135032247134449512869950384926066154817025226459238616560393964986289297449099776308829143110404253127188767699526399682894423860721780826221742856108923457481391978959924314301952049505244379037823953281352944339743048601603136575956155061598291615371228803968247189889107970043406133747279417202909227838280168833780201859753856251583676034706232528165196650611581121496350607466482369860034913432552425669463157346048359641831050176177188640974466031814414875803255115864340222799695218923440891153025689738060208193409614440394644910372805208894187429944521221800743081157914549846835367714471759037405935211172400454774374766989094385827609265711648696617337106355979415129001550693492703262822126295528323001702160210060600170966011421812861104484458234763679804972726954475021342752906481228251512715065170253464725655487072449704186432153117667275238869229112837987343571240125734633000738973850163866375496965323634427490970913942320773877723312911849102350943867324622239435854672340137184161006881261494968284481987893774390861708242741676181640338285716237964628872569868105388569538241383123528776374617948920462666708004352332960446711852187888470419376666249139038283625128713683381659626705932985909380760044901120579216493722792157886146269690588865951658032209068801161146681040356208811138864650355515097226187488301423452954666458322288036847272845703689540747295881167024070669096725785111697543747370613410442737518287613665248167154695176085139106849670886868871499221489896236882742101792347393774420574478276676369842507996663925094213096567217298554962108995696509019284972180210064871834979780734438462084023952479063697278883912440810435992677988431776324114530681759230697173105823560422089892431010089664436464024241033853841852261693984355558407355560501258817895049284146285261101576269528954558193918670819429684372698974977210226862120494825806085057034327400501259082406068922976577632632428945455052686009025739269329030170247465187219083171560796191183484498566046159391081139086682088669974369958255665181707242620976086045687058991492110109464859933968153115843633940500860821026839619276461935439518991364705143978517390246571944858927410886799257616194979099971838567006834857835310863311413664787346577479625784510519678444616652166357439856927299446754989268776221419039613424174214819331449963531411815060480366104194006657846139591735629346386097138793539874670140074277596182095072554462240627444550639283041125177419178748343461700475103900383509123239347794049944239546785393665915415441021371928028680776901518782116351472312198924202638169409828022496773465257957822793833043362104062786911394193685962801130205455531712927739329168591984583649352937443647151290652868980509178210885138732231507058573906943322095861721526189150686594660067336812958176526218605883913358782428081328027587280649777198447837740101247424150031829543211918586191449223905844488013447820082788739843054894719585042312365861977739661556975019438577187418822660748601331464580987979315858523855442635325149828468342019117323825258200264593600355320806828920427492702155532425530757421900001529806092749899191213067058231050311837989961668213201850625882553980428837782441332696848030734182389492015967699286192555134614910695852550030401435811002947397183908786023249467646643686659712553040601799353850848516449140452491587128626484152312597019663121956306261452404286569440144503986573904373661506333342801262468301767555896058512641643999044043112619818445754374497460993505814997680028793878402540229777213314194861693506495906231108294340143005239523774755308306237823672621533612914626230288464719601416724670766798903836098088864346159161905742521260915194173176670985711921015971625506813569706928263761462741360206278694539583913723223418357036960308283153616998772571533562622114740536464152045512830202132570778135041167389159439822084982580406962630360034499012820889321211550573121013282173068118820058633955918949644676663840072427056840053121516245513297886906186646478259339183521952181389070377190552120613673675315732778890841809648413208289287133928739946779842993462394660658816704302488273961729581845735161356021372536436797543016333600984443590933854201658561474900836705460211356305054075256909282307592537343622664311812239194942659470534287101719078797362445483383667299004036690610541230362702089023464377348056667167035325594459408272084670516607584908848893115385002402495469931573163935356356646865186626944550625179656078303272300090246855817989050173831291304638188477235819207385094359012186514202413771052470704441728724420885467300183459413525822631432377543616749011127118734004267076842542453914837607105006942105586258381369058507255111431161290024998375572964577343066378994138274451826453168776258924101384721178160652876181546039858028828699408186331193254490421224380197591079577123527231925222388921420178260639694480190447585524887941556721228983685181527806025145391871270307702293093790023362783086423478675227684149218364978000518288134858313438912622996589060696966246245558124919414563422083715470222256450140891960767134895750730545875700695507742706278275897003608393115832654501810024358756074764186651988455183283583023067250413926444006524056980574321161590639613191512530478003272771526385321030019437922145973101677029913522383274194795323838808522682475039021160827779038888658252760981730476716439174416610266536013352774409343828457390650773245349917150489486223857594157581749643743031690645210652159015422267283796027370114912280596249067540917474244708521067179318117953532085163277067387182442528481644525243171875322344414719666874225638010462096624238498648343212761620350748396450801057103820089720856223818081225101208493742955776487978189613290909450011353396010497473543027302841484521189732234736876541110537911851483067638776628240136660651133330384500368268507315519434009555065416892711720747458802198592593202701476024573934649503344686627603016879932592789376510243775668812391194825670885601470600736453986963731189168953310891149280569789830225586833478219481298462033563270098110755763421736578006753301355246280839979425471734068204351598610863228015821612251466432742169244710323912355360939500459761592665911775978211508751816687938691808316757468995609791194495246866131087011283400095687894406108877144709647081843787611213842476784754216367916315439645366068728005580799462803219246493754985344905330982774700773140642335166390059312105585364845801220956848782911499755665430705134320694345160946017376813094785004022925265615469106986184874401145140259556584324110567825827279830255089426217281949308961350221329776077970219432124702963652206585228234748666420887588903062797599487111840309970360303073354572727599804616085185429086731547051760647622240989935628255786987426860900898209321246865983417091695877317279929511883344334568390187111557404324263681790683883482947123423723628803241743419629122321506769348148228328868822290556297783629490939912556330255763733017211624650645141100281753909993638957236769552032926104781586272452172005612640068963671215613189535590834611889494949887717416917779147613101548183307291876923089981975205876348916439426548657144806058557530305441046699538708082985507125897662809058327513813526876832079070869583893942822920955998877162536488631800809119100684727964419481141930068167935784557941509003478310874612808470589083449038943731893399735175774995166212649332702856120883652969555608851052573906660303151052390082699867213288242512577367992232209684393491710356227039634307635038476421947163853178298065837534880576231001414230013033939333012890765850874035310464539562370897436230734941921515765628043216879624954942382132939384009264768384192102014994280539999504101531923338596577673493174946651959842381707197793136268779622459124516011667605921710097084429117033898878719326856247468001752597370169476290604884511196769522015747393438274962388596621399133473487805053904369908491475820488449410142700331355705981740497712902789045207969079739344073574835160545820426884642810387504378028811103543688354883760977981065873151462188331913651498677296392853909042063705359309419539042571418489917881187342915488100938882032941900641547120724699966559777550866608551206864016096358856678205465161153512523773686701213404322215961760236125076004380495267668739384190336850501321753592654704902497870008051432743367624160625572152803151015098021795470303413541387298921774944213787380633741644462751735967250546739490409767715584147542372617042361488006653053621061179609879606735374715592189837046564783542714613176663722353381284864300047400217434901650180004011242801531846485152198869092605486987600633624301841078473310790135364546242248179470861455319578056095470198258942198903830099322332609838421120695585960033744441547111078404524639456043601905613276906897943974533582352660348786118839731365658061465438769212163399702416094375952278082500048074621973492307841460025590966395871796214589070775727671772559645679056712028245154144201343524507420265100620118124713144468664207771133461787446183357344587491613432476194836513257994126196631516374934381342874733911640429347031255993688845504853869864343369004747582562143125347206786613203305268739236451022440715120312125412909553915996705261762451883088247048199499781511870772800984365251052570936470855910737688029183466813558403126126937775496379587610641152979713291771843506482507467662337507027846400130075718041524071880679649153489437558999420125880424836809005024688544597801735354510056466514718122095633440063849539212933225294917946259632846683430670782111856840217206635837324346370862921565700293100378982226195134636265188315858830038824591313974554047711361481512191225297093692703760503660721250591926861272235203247596867909999665853417539125713323779218964321253096967547458992450774653996027866537056943828013538675948168282790461879927203397035157462338838699092902982941486100776759374302630666495791438963111005596555412913796339823280527803375854414544117153166195572485684242922848137156013868485243858499455808805402766259111514674496269552859858442901509578209911518691450309253869315757887553958191919530549571256641740360881964699163600555875672413553300565440621506647954409944486098260300832583092903412430068533027278337326780770221265065968517172060990676485541843018462664816128291607155291283548096148757246567706362279093345398850089926657550160304938780885885821614662958275948001678123517079641492158514307390972636206116943781883647395266158333088719041831017823855184889183837239486612115371893085845381283976065631891231185610343620590260682080709492269339101706096981250919355207758308148676534502548152068976018977561429784425565889877741168963131000608150670726537714636520941090146444427194301327783262849569924601170823950012305130009087806976740192896039285723845078682081681087710273721858361711481038236444519844411474094461514643364761542586749486006408582638880921502571366708056532435385617741760094292363270356504088144084460066517242903866241101757586644066425374618519640498335897337781870926222109673677400128775500429368700892837565933497698451977877426485612222569043319334873041743199931844628474283535106114584833922654668193092749908743903052934046799960881674366531819357523277878962113360639328837319905883661782103772309143227981226996931458076154557703951587072142506281087435373900432334055914724209082342059082554079868759256438578167376371271455136535597611310309672184238345180263474816969267692977589293936225191845318403935977077258416722969711110913928195399062848970131526934628810055639647152052372958630649708174688927249633659068073137341101618711092619774852563763869101498412057879912909914112958867499279914038374495134320146159804039079579488884583680286737791154152959088541040246386062640255599028706227992283516938902102294287113605988351272563265151938760873802819411739679122943455403396011115841340006990602121642517961500930213594245821483971865948026864340847173059591860236972721578657743243458542821555676614094592966098710754677223240461467300247687324384962073245257034936797701742491918134278957424039309151666543422770677761095214104429440640781691107733751488357527166970361664569842016606458275488262582985494634350782306711968331517070571705024501144875609855975148121531336509112525975673266997023633003869294315678654706724671491533629291985724113334053455588054343811596416463884861718877385411534018025306077130132480476912909108112426121930198280534156340197405036450142841102205184162832694138394515689920880816952998760188709824449129910737401228052633332469741115319438827208168324575401001500008408231593217540183742634435652919770698644093590779321209294703890400036594272739508040153732938115509343176634317681421942867769830370304865182363323066858777810613346848777774104967907079528415099560037949964794065057996474563689879644537983558721120051092524107912821228231456979840576135141704522159546465190383361412012605398445346788689697495242269902848241823917948390153589016100047482429029660079633937812440588679116690006842912851524434969183347777833239696374486991467932745652221413653760679685444686135623747692766760253032769873659814495511680741861142522858250664739057436947283659330759986302012691984982553924845013644194079100800166263167961572945029818169174429073744175404141918362879139864120805861936787910010011048905108543785835590005044543444939628777608091851662355663709187354958928752664733293301588091492543729968498492943609471237973572862236326252971840535782840720275692996208529615687911905887870502074780198547057986011207651911483867279553002713034437554452300033339802191121789047738663150339053095518149159966963205639705530489152949857460543955701696049662462878382485796758009568076141729136716799135357531588225858794441290301381495975894772434105763084934215863429856385985617781884719926856902165767120051598469039458577779648868593829910469073615269705167826918258171706858276054463048440669384246295717776757150258614174914774090895410992290658821943839227978449453506121415856278176720052144150735834195476336535963186537171675714032572387600365285068026864149546566850871745494631071210236439354452684585861705831032160376336448060430177933651114864245666727210806849596903745591392767755650489247178543027292881928820322121197864456353042789584549384161749310690495271859101455766675454625101555452453665905144561068385331210761564319679895388559239768483911189574810404869095757910919464102871292283567764893849977361261619382945114950283889644886621574757691081450132728805287226231385478275158290238054988497350098834452903603689019367294264836869313019100616750419585492258804678139280286354473345633285127470455318348809490688576072065119121015865912653172461317066786115050505918768512264741984946571638973588316630349469629663621728136021850287676913522225366526074742511971018792464679003838501850413163651892877763380187239542032973518975126952640286957797626490071763187418388942476256758345558612679953421813842369713938960057421446130938845038661578095829688044453544554042836793229217022281446894197372777409507917664061226460972476242162819186562714304654027425794651198511085747765077399490277202860094932128185924226614321225644022033024962300279348682559404247925223249422449759501188329613937152062231746286932046466287709191606020224211577641373500540727902443964636974690116516539222143806848214881036120788569588082630108803528083656415944864615372192694545605476142261532576586401900829521740549209600549739272478453821494226757629942638925019168584710897768880718110103544568417849151207643141253346418127752666186947255274508528091507418945500881253222627224525193794466056329135175477362208364036575600048637946601615740890731184043704518297295860070164560995044391397712857652065924916515059081023352190082800688145892201711171972131239980140074628163860104615273001815997696657150967546269143409631145371203666524838915567343219406331309698874733369490485464039758537179385435514727208705700853520635314486450487319749821344494949818498795665451960926165564284958346226579825344124299480004048388350524664558367063448258455873335729568812371545941534968282054254357954614486841485189671524592931762057435680781450781011612710476188833320889406026481945333409345103395693292741476849243082458275663689686885940436996224891619158002745136872929502033093368729825461578612678843623141874053381757759044986901664988798792771465511094060328512782456926535968559792841282348863641603149616083217290659006526776816479741869829900321144456927310177550282528656225354464137148218602387087656243350141957714331418412693462538363553366623580997403932628005442551228891152191488096167899361552690666234615953199356178731234320299480173026228295864603187654018375901319924948971466073356093989510048088177229806853084243133768114955980068691254715345609701743753864850047951493768502837035049695896746345175200592228666689206095165913046296070392146922304756569205774250173574915649435710485679510950406709710492861017305236930025623702307098957321307242271412831157751798507597080945721532173308550493101354568121183661326206507483814519044377810757735938015655616748842122985163767565132934641750015331836463963618032910492766504680988909515410746045250363260228268611126758693393425281058731474202995266971519364608551078184202100188196590488599368770016320586973082703943356283023805691126557508885731974935588892974883651001586722430372563966346807958988003355883629251967860795170234435622450760357478030661145617719362018283945251190459758232858696721896699011152994566454594926096004084577580866279811566737976567390930252791517075484130525404062452287302680222041776855289701816929993345065761474566165507938212052645531721326554317606222026840823439133298383356804719268694540600195985955823981171236241846223372496585638814681719313900756413373759281311224053724963308422593365084228899138310061091590000083832809293002576281923832246573766543001639436532787378155883388584155075965173734596254430096659463548892257307954740154657629342317925591512180245746360783948945936375511175024777697696743270193932806869977887786544247780953214164847464662109121569168535158797511412733170648480569692948803225789391017862319708000902775090945110611381805443988935639969302799827818938651456168015461091958263093921224308415648973077693092849708542545756137095009640139208321797277240185736591183036145006246840100251124521141544241022011633830033840195294092869160063380584323585643607417127145816839002248771136289521882638280482501259208018722835145999608218477085079019351059294840785224100997906379415721951430940818283857622132314265871694137463436139311351098748795151087011184872313396077434939264270535724909109365646107081509606708537594601675747595188039929120739598570015183966545411819597072441931154116152474852664897071048851138404911855799572514017978389574913611774671907256662763106434335034879741257693876513713154020859343112359689641689027694586946607850678761505340555596879793278858888616328309324826703443144278133576966744832426829149901639512783830808121071639832535241849907883004829250730774581943785581049273942915638871897843168272789064574642799015493467019304535027462867275810481016490825223746229438267985490580519474224589293594342082766080687621128688961060401881918382877241107075202809276311496001976153452398628823437348758131917386158458177662015735186490022268490150854637349621937039299746705205969725607634373014235675571705923694341810554995219186096874952016449997863763408726580825439731680938014381908966459105143034341295428251966322944292999407771595654662415374764282104400196955799480660270374115498544606335212225828075537417623761942489277274717559070954104957719347305398841454989814756971505450051867223861993219493811132574889506069818741046905046981890770418100118109739178190756987261362784665547182117616171248127622027374549749594385682883421942007512313250006536297690688205860092038977444857222032887500578663298502374841829845444179165400888038986666760649939672909391209530493573741782571634700383010634498267286139653945173372378710101116975042907721534113748353789883333349448887036479991558239760358724241069466542945089021571764627247704974715730023351448987697622216718817277311108613780769111693482816054681125490099778610883147615636362988804831969373204853546683465528067214385071743183783409377622939022983473653861992683579995829822139966497475222171360885789055877946251081880434790750937627653947477606001256036560147466417977760146525021274785053542653867498687945373077254627044022335838747960540547248131759595864542430753542531893447948578757340850177698710066294495712509922655384047634185482335713317571097125186622741077214463797327924439753781910453359734898583891309419431277563326628166511309121336331609734682982784312505294613709938148590663078859554941772407140824321156620133082132063045568549438337584830240948256883707689756092368203753200785537778417907826012356109300014983163814379922484665940723612012192033850892592771309686531197461445485233799841615505457664116356892223201635994138579592510554386693818543366441315893312391672847153512199497819450435869262660647911784656988974771319952856148566920044881914445737632743720964421289242776769679375324628728966513201242079649135798086103875047735458306035398608029576149273470473766503335864027811284003753313295234495658225399447136127104536404535856909573296621763518732481458546174604818481835988244525796967979017726229279004136113694340823200626548524698547129219738957453883406425948806083527229172671181389392602178926739512048097948119762412850891706012764130460937554081743480544164321843512878198413678549081112212731226428601349139637524835694354683410006241504726749058573557233567807925269510151252569178543586539712073276407049580089378795233793499081301189804390581511627538362049896689862297497845786504447158600675495093002660664517729530715649613627732247508424377528173889565359023669738523274509503884949204641645395065484921159226422073363649869641598018200778234417075381039617774595459732100240278144307542037228763640727573777070521472856306361172583626267481281468308020503986341596223276653701375310950071698505339236568331285804239801291936353209841970451227860443250000794101242491717390932011122753452742454151727468344671488372469858720723915606849373265319067127599522307851247701593758456866864621472175565482204140742378468806014002851928178158741665679119714793943332606641601352420146165560040069931416469550460551004237671829845659702288366372444636629003431747950310077823671034056174374423196868192086685910983393524617764114641118320866332901532135156810274741907020695939832613691216706173120323373926219299736087028785902560108871100103917944687313066051559939254910701363804143840421848479655782940782222231468513027901918805680940339301953534894511294172473176624291580457225411460065954159952637115558154802319587427562928440535221733462241122332887142518743703664615414098669923802018511554096706334730522457124310161804249955855318620594250365194126423575056420904831331005683969168277669386051439050172241629683772801514210800908265179173922193654526229140187701632501560837135943533163795978022335408603732743452404149389661696158367119025945466780576448367483483799602807243849877541673149234911149911339156290494284085883175262676514500775633089626842467541874394589204326615545669637988287917343348468684590385509553474892192129240005764076161746330693031366619581875695520734298886767286978023026092467481278358758459278793844055993330466016719655536452457608722506087550260443240246630053753440708305255194642659866212934385195192826609912782092294741093319087562689574724343409153479390476294552646608141803522649275565645168812353274012064972194114608684434927379154727313972477851068943528245367029058589528910300514852295378349187996264721027495821711981510520271763627164058093130803745282298149174872259134290029474967712334783511598197941850538818379743202491847734152901434965488689776093229133528315406207770296702586045909558100714187528064808089144772759779161233526508731507098187544981834591635120792912952888396016157050144153648231952585580698449892556575184413037842615898662981001208576933945993966873984665730055814038032046206719877435295596614717171375148630077853613328368176159945232205653217272582941815937264747483339491011630132591317730384751873670112969632780608898786117865273117040611871034150021380316488192235575478744572561678620379694532175548989360356955862685242484100364210935253689003998434458211651779304321492556071371429070480351403720907331373398115866036734123321684688400135807355126383729088313436712148903652801275270665523198072294832863977515784799977833293214536703613143498430925510362268002418616012299443453157722038974621147839625734729203437041352315514344344401305458193583554963227124998708011051746014847170357266152872800705667634601430054143549967857631809380716608712636262214531245356745186322895685824522316953778349838637498872281687133207672949851865242874132530081099688563893556674181714008041027322845565776234787447696462225528580702728859212249180788891198728761585341737636133648498014842025048832695143800193410640072061876485261538350824011007578861009725189540733322949504338077519124568390060369885130876349702355435145466853337595804461395249117510766221079787327512573041787283270535624463296914008723603786139580227215553807490045014079496586558334555097273036272654868665479997407767782317655661446944856760366016844917068895320057248008467061338690959706762036986330054881756382413661590711806476864823683934301537133482754967249906257825619500306990228378504593469059462993830308963703210939469763334633998162947886097265257669387295975208313643646704285172346140153161452527918814548006031786343814410458561551659628820056124763197032922840788073859220386786223502667914484136111343340900711457162272058312150423627141441445120762018791104344551455759757726137804218822953786916395298858610531814801454569204145016731456571777255918158832185702454953617899036669850948806935445404590390127574727865110913651500076657023613472762014618062305273352163103446976088355036469264043054971692830666513069754443088678359256535198904236229223794822828916501760284137276307196420362735417435183232469714045870797823537427620482679756446656167394156552662510419928146415426114592449648446190053900221708586184466938515346728187126277598423187703666629709400812526524950494622107952699508714219304929856701356441360077215643837850359866628519882153918322026718215755887654181149217784949141003551001734041638964708895694362235950361524172643152375089733512776369462877559219990637659209314836903986763858068274432121635853333470326521685751396768278755332558198087983876641717331818003419387035196505070559473533651327999241518169650051767491975388288184540365921715649653513632897988967367719659653902030446685832355350074822112623958148384216281520372533244595535767689748961385602353166943788302025608577707597155580105546262525577776141668215321378992010456751700953617226299795335779563553885362146906424222403674116148901426972218907180673965396876180020133103583926916797750558668734272211072349411849713789456987725198161691044403186292185099585498187434566037660097442886090816558240102124218728625384552181866674843614035279096625266014598034174670207964209746986780891681956662134675617758725507307162234791388313304614883822337378485445108151085258280204248408632316881522006904550923739887610553847978698207229556859564891942764237152452243132303727790239965032042970367835496607107973624913384760997011220413041456931334031853202731156690386844937768051567817674717191032195284597144917141905548429551057924564814784025738689442354879369492901986369031953536764020775494071726295590152287635589781033465456163282304929181585239194699647303552334406327674015860789411856191461334053659035349511505494186121710257837143924280052498998829103063498758164716007475597467794050743037810374100201327169833483880609722537701567822353151888996727275042481386523799782579328297610580333805684331026511012719332157429256305208161964591453738489409184257493654444994495198710735080573908538045931026702523161075448238483720150964146995612412624622116263201269382966868470792371559670937390206970168493966941849517365313636265740405062881031264433675766579480801120736582505349579234906982824955144009639759632053968006863923688861422802796543916490629473560641828575092903219762078657682702386908434512475211055428996211544373501695063306531711624951809294123392102131121478159591132786787940505586584564999843111279454289795973673685568490796789132086548383174163960376691899415571064007764310349061612960387618749952313231589115493113431202209019304723471321848868119617187989282960813125094288047585455052376248424886708858370753030276551923264510447365942111252031933741585559324505292523731905091876361776219675550413607682193756061891559309040315986009752952979268900043232150963202275921756507271526909001108476047976641065796913708382691358850886329181711732497400019246654861458117622734781510962502834396360605634538771118421798167306346897120389783294601914643978028041802326569953223235445444465834800798757819823754916978185854926196272243157407806765322740783796383485561441744533570613808731467813181632862169720082929662104564414946442876528435304033920841530890520828170717489204963940263819917577495187213799972757901886925564735313215085383836870188701500352947499416928172884542285858266935419092679659231632601530734019110937278835075892830909060811298867457583007650372877491418268250863132381588330190692037532932199202695997838749125365297904334655056618309017623278682139402221283013973358332429811464176598978463400082079968985428136245117922630929639902409842782983861248687763387100820356318650741613781953169469085253255927542277281867171510233074035931448198370831261711001354625499531035077685320319506224233205092414375049673346302559598269601120559303959495057589301822131389595577212457578335484235230057607434804343285338663270437960157801967307184998728823763335010337198329726507115764877339030925569196250809981140362704954006086794466750582256447178031276568154281152688877095504681611185027757512075024182658147362258594675561764580114043156281431928214788005636336537441203114523427122464165906105724501869588855831923826546843500135820919652911755565101596475101651466385088963409384338779077570693124881802775071020600140460749550713756622181111613868458775016989061561865557008817936549459099732880209133763323427038199089813167348645231318143817766183306411931038591036451192528094999554966797252684522263548039300392122500814174669945238511611552274030205679803574567712642259142846645785850529362798215626579195982219838198792064068370797986693723375871429164207214074262142769116121479971568640761770204178258772857236893270676720419272744500754669565688467885529722390447118371117655570791729204102947768559263932349542983197434871430088082391194019661583364860964429955038534636602056703599954949080500282181357193394064350739839763259330915145422672957054898968041685493014789007841009644954294698122669662556975161683588820024206232629580034174796660046870415190063908192440451493863434657889671019575370724752764232828253483514399108791841998230422422319875735355985925831959667546424704853667092033680960883655673024276181955038218773700233164462179620471511235177798174339139895974549528878863968254521017625062616858352928183663227387873536366490123628181102681570514483826730965377877302768615648344600008798565333497736556889985269853249253158393863365510108034997562430747021069535033066086681967364682199517774010310561551024325195473551477309039578659733947060299096240805186390984729844884276238557395437861286420917539964247684177814932354112346497594436484119735253400333749732492083042841909104688937279761326249795980991343968763871796335043195230213597516158273993232009601314852493270424852214066500542409152157507720293875226297827675665654299057888562692183172853047468898524924756057130897493531025585378969897111294277956786998708759724756826484104583286118996134046654522550726768110830857331796801705344295673994896363256328879205610739365818256626149840067163349925369094464711719943752660542231402048450232003343055740845231767750699026167700598803269587881873453381589189543344450738553288367380938247632327211276503707846079972609346308414310689731317682739692149262747825620213324291751810501547362570430660877453665080280042084144080309434966423005075008359346871482851828249754891330740376564748502811214292598446133893197713878132026490076603292804109830446491938507021499903317294463356400514187408507272834660578209641067911642500292332882800686313351239279513449701954073352003025190591280066777127619138196895533275163403231106839378644360348939219104871845981338107226109156114657432248965244403542149508327999790165540075489010731916224274284882775549490236739173491700725846446039456374532783470599234173798245776689148306527372103399852529109879014690082759804517513186857830900992350462701330372237181206984465985807922226739923529391223705279683784327740032580074899932963663293881967466678164380937330149916356172209345476103597911666472154810938810402905454682023928327505688322079449469894051777671965909957499484022028053594461171510782213665133208522483815251234881675546488563297623628192170201440934916288584969728483100401934536978873160461342726869877611163364842218045650042944147399158367983745318454053019680539064706060705377939523787778074552047668216040011372976533319697638176292936936082836036609582996208056897637390434689272550229031634245368763731355741608372730126545721680268165321822651869569860951159087839165875341190198314113358947783182981250834360714025672483231288711535951737803950139664070406675313617980363540197110527453101637957909693279627964167414408783736643671893637271065173175931511956844403368321999321449830539661781511693962077686031669311931922675187044746464070093669000313678409259767282106592770517739222003142395625053442264757285589676001117458897250927197159457359681360092799901619314945729687321101290377059898283153258904645248890554862775095913959158674455165976980176986166015167276576859063076398365572160581908624830053416000784584363864893160406816002630265256647538471404437233432036638683209271780913931371320352624438621351062075576947727337101558759086482490761763153494700616191516348153439412467524914237705035337770421436137147715283330101371156083387853109047837934453889535694455084740216749881348928524663608444738770760677921045046893162382003184062717575708447597775075652577349164749646384367876150717757666570275147863294689734395729229606243342818280947951927768468101045753569239685417925697102768358584620696160274970933976485101959391198100806843791026801905132198740512409012718954430709307307847295647791704088154397471517138423809436884180311175442254733126175147121320254575223492504256596985863265122500299042332459344170378722856569797436695784117762591283047971035036666077871704725549792860817187324330462600240377776699793844255287623321250696048560909000376015035517094670293002635382739592330067977066423144847326784601943438823951418248407945757335796476205749381412225615668390908738324017649544238812869119177715098317069346084178839208537028670905997452021766909980854940364805158792665029396361479296577527880449223608871786421257544028333388758051974304574383388750694002064795072513089744245821515085323772439405612157050471317298133921879630695547825205374885925892387415237580506349724708190556332049993388012229686905920620424855702035178724584392567340087095619982412966907095787081934320741941577244114105016395377168877269813456238246670061908103708948209853770368332926157213865435593027988400555802804350911088475494290038545406635399197196121728234697475060473812536503834073641583353905004546550591490255742952013080788898996411821426023646323777891998469720017113880514475631559053623383044265632370069708683994853145855936248349561092164433451045516688759636397059352405957474950092379132838544552465472449350603370779976762155571897849446945504946223160547009924992277902994108895342515588594603763063673735967961673194131614534500540032794209297092255357550853653732102916916359946360856720673593883085611976017300750642179382479618579141467824816491385571306232594198080112948343277478404942223687279958456744456703946211452477192904870423788920495135738212765709504280923494090220127294882209129272860315742988886694764241656061171719629403537093166746282535972131536144440460174939430044701715798749611566497172080854691824445643061931133841330847726253829980238939090924185424107009266363001351297719584318726369295220372511220608750232741753214731160162403341115721937063675151579157812385595778028954845986792819982290188836807424163030582226933638384966334370571754339867383524976351276941561832563462029147152179971794665771557652926359677830537894547660026157907807674557474637061773515754548225145478271807784758831039248280034108811960202218371542634153129694643053920168062968491662403831717139588986495792953402487416339395220503699548603319645497541539538690282786099571916495957936249914496181798705896291051344440178765232978328954159185273517968965386857632599303481187672904785298776462362921842272326346382777562713117482685158985099351321306794021005024592668634303466658018798541338221465030730217902433365295213431391283793798592058094343886707841840359996827257958989462493493926716838634244436529974872308257078028776218225717138106058354770169423298731136208693706248220257751571079399543904807922650679268046657803055780104489956407637450078901612534010790948380974702552335884940932097273842386016943566244438005518787747700226125334069469010774946770450626617450944297297480945714590902891660459579407102730175149441409196573239829810503277086819762564752709428771354224799168827870097125989518534943798013155921271191549094740484577604115425970585426247163070291878473019667998048446880619881707849953368220846245472739634153045522596462823647016189684558521004186961232767802308250372489522063810294629299362983590074883617484887807702051718804787446130781095459391467105975318813590481831882986603919912575199343984276017750864302825717131109871680887016748010122942734765217453205929327262649053109120817799443132518062748908813220454046114054163732979685518135761209933500746071439693237466174312948104167917934751031066841068412706433767163457274945796803580706727705553832309255202597643869602932932163765815940923226387758602989922737380375731797683102084572682898590574144412545478628089925234685121205748304822719405458981596099240658244316266243840336525817072146207033803331268279876376796750358679946830571971808926735326046155589501023067824412889486437309395894106360324180740155745892565808992095954148376004443384644755577107113453721530226620696643689710085618392218499193579452194560808615416007819419059861643788810023837836751350310101683692341481343798596269567564985071053254500030431683308167672234569299941780456431154820819195076403939571252813918617556260732224345887721156472542839706253393011080986616602592348108364958935368332482219708917793936208880773865754242023596844555761325703015471478738261882012715315605127343655553288686758099881715311639603023089513492243881860753027969889116261739356398333292485264697915351488129692459689064495103405421978411711318350874654270674826002522427028770599439335215460317057539022027665304191563040064244017558366446174439452075225410546652059322068165236602395250066499971373914507081826795945329625371296510572400775464305150060834976223286093874172573450797151063760553461882328837862539735371658472833593948165101369669561472310135351222908641892148696293267861016929521965693784122159873300253211923198842244302744365152938049756555055179038131931046368629053561372055935078302539602337449787743700745123732363387323167381307595313249416850220499883090124466054880399946888451019223295724057193825819114368013549706918783536150637899694017269088664193249524325994294523630698756155609267370649718943417486965639337453346540174194224377346395603764565402183392759402327615892662931164895768985370632053747264517887700034196458533677992534334289636168415988014282471920710028037054135384727918685920272509082005945786212824388495511710810039518389872989475348200981973674925246913124643642912332989667310626177693756988354198976461629275536727520563954461178222971042255533782012242008786820634470196476297648252042601336739598253044066217774428576527995135358263475198505815197317816056240483949906846290938082389968428062652944582418539499205126377267064988752912420920172036539245020215640635329494990884423367044995586663299425149398562519075065494424250899542060346429494761484346740203272396375390004873603998867339885699966174690357575950097709273002677819694969519171627172210352046301911819383296278224356051377594409852881792584613370682035332575737357908163515117814332445643720247723891093199953673673328007192349413002006220705954719017294039364421842818813399731278807628182059311752801294768198780673400508381276146919577012036536709983641223437159927632032107757540570385687575995668694652000332053926506738044167477161305703592780871231153044200231851194845045334955756633811396564452733616099900366102835233925754221923190180617411893510911106184573153560971304995557675287329869819936996475464058003407595429827241041270251841183192546959241938929852682410027295420599383564392163508949133218429939889188148257947546360129230649447158421269261552795728285898403059946139503710358467437452846261109094969451816332516273346561741898801752765659218981316363362581107945594863793857082011156969604811109000949023267400328997753271685248739577881030302213418205113947396515134903334692142791556736101059802641410150827296874627197136948628139780993110933043260258776314591730563528614177763389309068362672963202619280104734459574015839940294943376420395701286267619735437418023351318992536671765645583617666976814877341671014983749315110173615691477258209604682187073690369492862315201763149492498130538713712248943521171586311852567098310606037457217033677181628133953078078318346613382869903263314039124592836495936501157401786335356210458188948145170716519628492227255239191351615173251471239139503911420231314250085457192425395803112719388027395289884271304270951915310404491151584223341693185745538698936337309649637964431032623193656799190633563638983588523879947712596569064365964158103199699737320062307358781324616437098026216758952277430204736757999564539430025702920394458512417250165519283948680038480369541305000451033409318228258218561126336848724724044023691785739892471539980755667828970282667244313911090861643288760977748625526624154687971150561673234944832184738563089783409989971247093172782576077358444993344086948677521783099995401892358253109336596089358726500080509768182391819579635879757785513909087850774971831584276615365419525356099347744468159922850138200105924859827845375809307621553870881781936471753788484005557102574087480386624258918143814189408238530980096354037291096682065947953684670814144226217334348106741268020457786718962332274630283813478705107509316926846042286090855370604734479806649952268586326000705759690752627347596034095539499342257696377595144736794348949076425024249584360007654742284433467711258101675972854683410349887414697773840846803606276586763606337376267664305396697949799506018192090001379291686161843119372153809060663588531451031004309372392187220049113240846590110223154504926653491827134643368739663895405706213125079043059671834545413148825661666369775003425138733663446810697951867823276573456045488944303594345200608138002111806040788753930546599843349815934951276887477685270122411641578856274047788784886931990162928848262011273004134777564287762790440888644984242777875968580916839796942291711734077416994306682115320336289700750325368456868411651366478258389430818312863851970303453259584704427447264972501905267465443341514174530784185115156400501930192704221380908754683133461127540634056934547364558900064908483280095349907642729350213445532988132109301656554153532720954286856900354708601733188473707864480313284734412066251093686499799214222997147867170911481643416567441716160057764232455505234134833567928230025857118882492237094387857058597500864770907008051723392831287456442980795940185926766366211704139613178842193510336665857928639593760432570710139109637576555559619520139924402443775425205532037347202920798272485932579209212172063969854867239823661216984121271993907894354211880403862734573081282543919830509559517668003507098139800940504736544324258496238801880810468206703062439337707289020120466786146677916795120013948158096693606643014307132082060370813362982610048403642331773484954228655431814828084305565109468023095875994727327842091971309964540270919710136700727241337213433629504609345442409672571570207455195667706542581281319902835819458651469452139343599211172028449313609577458858930104011280408160202455394567014422201886799528207899839388124132586848214793190047833679165847189075897848686813399829728515326215570243757601880649160460122311357687699516460211835112252095471328579662117238714706123782715408444188505692718606795343556917328723734449987819254427157772859232171934113949943975518156523355297303199936223815102937406675903409131911579920557826837267449498372044203273636691463074309363432656803066227930236262169968567567834133850240788669599830830849768737530579435120858126856447538769527596133380521020435715358939136592540641679609974643352076742171982632186895458835571624504807427463550818337002838599009379227943453793982100025442809236954887294346665839694523955734309574291096663247257219406327429868425479793430728757334418155260155897757353214225538718270278719987174851198430038889022232120556795787777995536021897103730124168635726794255323725109264950594872856196294251663814400158274313155967498380055992456657860169918479841664870644212335745250746008719640286011574117097528591383061787544509931233816733845586453283351356203046396931415045864521237613465708032134901878898624482504225830469314650001593347319786993867308491559393677152266386297514798218560011555797820059029901858827654653698657065935575930374443960230814352555605925023405326093692858964130137891427872596184787195837678065840309185696556470286911619094310632647119365070675258903373680830505287771454165422382990268337459780183599395477084820252593084340506650257940410788086814021133031417824422296490086376438497787475737576868000114788898317973294812976313562984924998518743594078165482950676140530328193582163994716894229733768061530750710883951213282171073038960252625429265907110507398227984654115153583291159290128857243558460667842766638992902356865335430059767282182342030485397849099510998299540949459933479250994663116307654266297860623394617614148752043416418998353097849173979113887715732469464329723116119501687859351231722008633373615579403409871610643733466829929147506934594308388602086655263590101402556802087435782282588785942853514347954211850906897514845380223492495580449216734785371377737604928485657241743361376943120974445030018179230004733935699811220927595880658191030354235675607762769410859487599005780031973136506479862207963766039193625986940109052917980280391089010963366478361441061248870974542137002411448309693815104425174698666148856183277334526200417373980174799951912511326926383903456170934007706232248303947157649362086410475489990919577999913117899959854937356752724485410145812108670437559537218001865509809249058847523555142176689192662680035200398761628185904032213359088332489505204019155435276344740690602540924082427213520861806046690044298665386316397724700033970650176940623185970466599962417301479942937003629586004522948383289537123947476697933103718679689413079456937083948858906738796404460428385139606843784389373806728082706941764551404671215813822966177956370228784006997189354237182761343241148871738661190650077475967961584841954354542984142029253536145483106806704617057697032624718139290100993575764159666193905402213875705173000245947652989849167933846380529140581670645648513097271347052165505363057531775562372909312081067654171245899744397105243934339132123953390446467566567864368679826342430859376394951176633055731934968419263541582725807438691728319696576525107482450072414503309867592465781896452125100823526517168728248973253594290809469507727084933176963703332891614343870343030859062445119722317006449939976681603355225380294221128147844807367529487655071695147904403912270445361746374269013987491035923474476498921193961929216561358574620618777538871110015340399909731195535644124330091443792323854342622841117906415030022159741640046692621712733816239995110328410542878051116059240916496540226975259879822382026502481457083116420390224507884217327430215958473820245821272007165762397703835021726592415999104699549228430441662045023944864221702361341534925069367399222905743883219093648614058269264248690883577769890592216405612764397165003256922528150390046773118445229427967809465590861493754455019505150821126540072482118070305798877662368963317147976577507924417289147798025369261160377662566945633424315896184238140691828059915150613308561192132576212742939631561584600047678137792295840861243140226979647818832014280786432438103403390218588147913160578684735477227550945895181980024081063473659289839872616882054520943021739499284627720686978143804298237510805693394243956320802603636697421675830688907630317599962176294849469527340837807115602804202764945417203860308180170020813151145169784430371335161515341222232608716799887359514973177462928052178024961081665897975540475272358205303843991269920371575591168569341171109831949370157174833745877275916967351226611662721937341302541659412890107417181063872228665070494654098937659262970776058886497595340821567597426562383426105859541471092150056420413670488099210851965993391583317856656378646302091168529834124697136383506148285119386309813654517727264198747869975305730949679787162165863717330240930543048474546568132000726605070589355980759975652726598321489986391160784681696046279937199989686542608224207842142447178322710480048472426552351460452380858907707905208884166065778531407735042923080092052731358655999219858720428789748567376995987162627841466646744727058452683373025805986047538490767358981254361408476414237305959431431341344390767637179433857618511701110750137253475147779025196540132995881420869546530929811140177772547749504731020738930049214960504575640162013439889938901213257469038139999434835176664404322182459704321334098282195667565745869316480560719525649876906989656896681000227847848719214533090998281403893513618457614487037023760105296931251577943423847603212959676460117341469454848758339871959951654611020949892459727987239753864983441468233546666218302219088363885150956153191471779722721767545613432209214898485595461950299955139411310774286222154112736441874723042952251126996702831132549986110693822936425859390343185033850417097302853945135580375476466389760259997045650517115523479479836742046109903126626248861848075990029996708294250930501759479324422425142799543938476093714742049549404824000379553648820474846633359079195440469845353864727557875573622901899614935883552730024841568570470787525622651605728149221203714866808552131815311013438435804439672446680199076801725941582900958531193089107930965043551427121211335140029071441774194159597455231942094982825482270725899204161206385257341189670714994156505564129404169706542545339739683903442781527166084771198168223447724331003133561806308805419687185120105606863216641708170253708062636319211324170239004454323086671329607898665047470676027229092176701391448888376742052997136081097102333170131654405952468495296462494211673285978913671858384078030195670649153803942195904555492697652299558089862414940981797961847059253078036642520030788658616154131076465420874353627757890067226586217000703886128031432917797972820119695177976980921159463549734940542904543943939954579605202624270915981477734806671926803434492423325643765617144621188223164696618720995810852923157520235400471436655061210097787126181492881339079304584944662082888130669341616834751585010133281308970558894490082642497624038577648170897630911851565930715208175062960613418961490968802229714988288584247512535913268342542191669322182809617143200784444167465287418354885736142402366866886907784952124170004092872524002828040565043370290936832698815191203933226058009485358813286260972923973049297505081061786748563058981458091092413225012967026333348907159579410203431005074193139539153716392899481784108950448960780537771300741014263494834403660949159431758076733349393849060790873882322334811792605354391271973036079316143547039793148815849326363354226050194547054089051557019937529606911274908255544562697386513760655478848305723533719930843351207912000718326858485901556909663249979359398264863155202646358616405250676093890659513564647866012746544704086347001023500832933565872991104896106545524103507972162036297290636821821032613539564526206009191893853781818831985334666241047855002068145022663696766084965052769198284638999496150033444202899073600089797185830028873582029518529240104317129242256176483365385034146856594849209270558674887817129957157811450843766175226712308270997105613624377318165198970236266579375925629142421408228358890392023976814316536649455157309028855669869043702048997172011034650413758313977795593182037733224300443677126325620786178227294483313070729527132733657684155029960637176140640883188049634659705721230847179576995685972319133350721315742976369194002864567170934320573917110914496053560663297006885839358192068878857669849174522485997805599805251596743504415358090987108153602445760425636031421034187245985716471843170762672977213123809114676714956789157990048462687416478430182957844463520947492804797177193249565341717012628488596244622010139616396158925334441899174791848791420059520069614446090686820880403784699441262273821916465588781194065142737778654624393640004395201758105871330614204969146003846752260474649052893931654049248616142899610466733645160242835091211737508860630223840047439228101580655710090486308015647619497074652263492085370774448662198657780400439668630495886701494824161431943591579660986186263674593464433723041903505730614556273500240474151295911529356330407458349118389288228498870268803846922155421167918231685977446125294887856367060025900950078165762825660882658056532945282464594088846870532776269183033089117991083659544632270478434131618293529058233784750912315484247692019703664715047120606520007893587214793750118520563482579039628924155388728932418543473829996754994628868327640129339640733712540168518940420800929566199916955652542463217884028017102855554006096320225198015571868426131627446307046068521952435689422056267263941604358542480578545133305984419372323389614159858318477124280734022149026125448511011689253564251302488116543462718192711048360582775004826508029816471353349445712081444951379945073449889803469014607806151024493489927742821828927495214412662994848928052153805553672538638378835883101672998569505098552515968666769208707818649927448234869885265898376728538140569879053236320159299487014500863826908193461263026727204245887025206207922487747881872863045922035405771194779619988623820473697591654394636974941278320468307169291591785652021031413712176067612826392265367904643722437408574018399739591334405671531661411284026039117568245939176451850828308958662076359387839611458587647412509630865430781044479411867847167897012690629172425660948413601534582170631970103709001855820825523921532546458501902221853731291721510847460729957627501200213997288191320422413155909482151378675417097998998973769402862232504193651566269932220516064978197294995378557926603446641392338949219380641482912578669241795853581477533529356566487056490849845639358086207980443947302943667497423712281619479966584033969974096392250344332410893098537638324941896826587129353645681238639846938271577263323989835348361108050579216082726654323636251821596021690564463356228728611359783840105351576070297110430290334093661625970755964416347693899537403449442230494647500885129199288537259721264971021187256343742370020602623679502222235976411279568278411736992272953233227911055235046919482065282845571674834033990391192709464356071934421090703493844424161317072683353731966177068610266584323371536715707059081224405049878406105656399023053933764820341131197414227350621437985431668803830250882024837722279120850353207308264468463979224723148511775421507295740338783711467546357318106133880694104203321093977710705095710258265585031912800453001923951821553507340903684184414917925475111421579067942426078747516780283220202339566732317502964117637130071078312724752098857687047249311691992626305522947995046811628810278237025898715891297500035522797331634793415211519546474326997330842405011315844251869285829102855624491328894515581496390148393006018553616333398793373018069682097676435712718803120776628305236566416533767046785500717407155487643255740199212980112719798977580828851880279295226870453076734342267736368787829984657454733562082993129478630596307159315109320030608126798458631406467979584609900900730924118756444899687960983790966721442368707341876381697356688406912681401982714729720595341444240133287613606306066864296205533651667308548542903225033298001546003209444757206690496807405440444710455649352336912631826043728976789643634223174933269560386184789241069480045607256549383220215499016133174722726940207189886524122540028995349038483810550541052157868993618859725352345660244170517075837289050209194321201235994680451344003764087551693631427251834908596397596773384874080477841065123129475035186880698809952190657604399660413430600936163441109455585059398519303832608291266743142340710559440080647687365009030157867900269482193053080407263010347932359633998202699872967183103685509396484096255496645110006207540688082816499264530317356253142495364237830774074033872069195478916475584560523188198557586906315747448722081554033747203495032916663095499511795900618379947056671436888512965201804433023809248800866660061720112239712773195665537978161912406431011856722328180184735820446916035197737664077950445374780934772162629437860028743598270981348814784660554578410193971099937772856407766099448928690145821071769959652662504441095134286124479720319155341944908364940295643854164331361739984666991845887016009756167479343348647338088813983462407894706646507315171135553758361457374308551087256688088091857649662111716851566822675765957418900375763942673336437935123698373310723935664957927064462601392125048040987608282984222879213529692802093150520480586278742405103959851132911297729067268666941594490799926179566429760192241560443238655688811335433513403545222138042684061516461129647861397138017926938206916203451401212318537065905777075818656724147009372680336012797284997310670988989652401102107393078317278811899221583004269008648874293420360101603020694602724134990340255050605383345897679622468378151300505604575519987997017383066384326754995243446746120590943016270432842993075650116145697626943203474886098841020814784057918008556543226666634103068603318104156100743379360330492769909432803185807402031719854025383608565845190283097126654611124965322375209197843565573652221521888752358647355207482262160771496518801449081036442313603013290344659311333727282704305899267775457123817071218732569928607503115457376691148238286319871979659684111138462844361743353510643469426582484942829487515678760596001399443879200542430135992763729716621083187391961007988765452856861814270600290609663619165659209486192674074634470389556043072967631905425769126957653290276973058588978857858482010522584933699422006069030925687414086678725390253303277574988810466157038741036526558402236830100423432362610724818750235292032708417915009317056973902713013138558382470123464381855948867272730431923795057184355340960843312788120709797350294110623014599103971484368827755486043079909933004298778907484168054627819072202846207399356165831066386562691639597822656475308833002238372088709039531844827605082786675635443224161986684749579374508026720088668176232366970735810224516895088513167171436129802198181401014470644586760596827335240582174818514628253969644900622856105886027434637196543341548732810246139047987195899550061466907768604340449121190552313966635927192843679181847411740883468482302073078500285585780347983240151912385024132482834214441128557444247376005302353642872133627595061485883966632209629240978834307849998066826416210805143471975854807718368804858027969857195929605869805671859937712682175812689320983557882517672894782118422247080762373760998185395293704641701449202137290050114838934322512854172585982053380040789119909718866488524422555687525435261888435076888247346455965312026063039751616455885253105908024790621034351198227759607551458529302512462586323619229770368123262768762714776446977875718372966462307168203944978008950485442382000576646130271406575231827062723716103327289331517774594387952168614978668119993639792014275173451904178060964823887948434318412844981323221566196286082006918850228544927849822203058192350170522681446007488108933564230846728303586302699949426288150386018773509476251591615521717280522332801056383910753224123576014732185783439409546269150155378735518189974132730217084366214835361038459132887248170568789475181459303911515698294259689303801682808042901937948382493349604404358046712797880191040111004246921951544142639500540586819764478199337739052615873995396649418754679469320676348286580818701106485681640622448971192675167006556583518556185484701622097482252742917337209093469895074801316196674321362106786744731642621940022924449877547856500527545334711486944295787675220320139445251773831276304896246572486589921019542497507021285511636266041809229203191511117686044750178760136405256737727616972026316656139856583751424698488999869241057399867433090045683254708527112115284858841095112641042117718601705246787973045919409941415315178525514397082168669675803356573367125899202887780714268023629203695965529028762705105310550039372464175344975749462799119250699234020038802600345998820165011024429802207878800188582199070547842069912530516821611597468865916015392581122355870217876418042607636779864122012019979149601466149952590802877327407493371026691983145272820964637290791584497014497395214268506909869234763511265703471291817420942285360383407213150088047796759927443212151397028465019009423006369687706819888106356624700136374304189033733532328370455283736868787149135781442121440629323162167716838663189274522447629645455991454487834360652543763511645053127745105300727028800829151728760690130412333151047085234054611181120888772465193185773598334611973755913016972487191611745452166070782356849327818268909012097894784590517414581935747954546614017067008746909209598916357286885504515122704331345631197087851476640040090067017143056208861152697541287351085649946489608607241284904411652027021194243981454028005768124446581771504760101512285508541824910942168028780904184384113251640234036738851047614923447490520395802147838279043541907595075897933331047504288485312858942005636827426857808924182835681318006401606150621840222393410818895950413427301678473214870260274178333310402914891555181908729115195550682114023827010635104497185416982989341542668032486849234919082161854485107057766371832715678667466789867999768982408490891765471600039806708989658024097108307044412781221474862124882667161257093192178406144783215769810175722872486957543621939996801361160061631557482268398152542592910301273463666551010534433460405140511675566547050015314625466359126148620310137941262278602607115699591095545383702625895811549333058814634747383571955824300857226514256773010311090700173399289075459967188013320679209583349510082443081030150375744889620011553251881314524100044269755373279761785726509046072982775179500454984730132782543364649009628003083721909065450114274190676983941514918877770043713837653575538758289333700948058739630182667198912380067125756758696076569488464061603835078686983687325603058983425875674328393209503403982745979657759914172602915538890462885697836148116721946849789752035892055090576320177205618727059839961182523089523290211620418461761070388715355504695629577697036676305034049692905179326933937342989171379798582961919222346003166555216419017018484979760522199631257866116092245341353458314161221318646771008818209569103776783239728773199407603497319819708860253788363752251672652272105847327563606694637676031670643569716836415475982971841923393820862572283984324355783175031224903538982368409785016492403968495340900960286021615305196136356859311604471879142515269173043302893337679600962632640090822241725423503943136903455856388976124537166032279046969810020631566569447691503374201812898728655202505668598325961921547235042268222532804064907595359700390414307458681268165219080368145410505511868417696670071460224601777780194831425164701491860477574266354969229564608629962083788277221802436909052198031683679431776478874641001275089338851777904794676301646866629385731165636960334486964629775349677155769041543901058493186079898198491992086449790845563359384819515490905312605436249043874056448069783523898001624114663494619572150639649505532050084840817680111207562911276038880158932978843402045844016805478079346750454526471820267721044823086059113671910967069417118347710701707312311001017908423886277392656280098275204655885852024474283543375762950709696333673936489028537309794190775418349374168617635718072289750403379816037371620838499774757604400142473838420101186063015829497942627336357690827776591063328921422222357173140239742462867573906852556181112312559915493198788496896404804452689906007933208245773597171525403735050011424246265159780702545250873244652910608493761346553626490309530190665143875392053722585047348223689094881233034736105944122195976920427865690267090867816593966167557444754379847107932652708048516248725243088895326498371595676990921111262613582957188175161813001468431589521157111212743828302981250950553547366276081684910598414900575489327564058026005385083997994110920906509100129858807311561619925910406154802717603284075375866524799963386560027296794066791248819854233183846111119190819437613846171412564316928169512308339977247561614543817948577971194539302999119405845200911384369619612930678953635722499733058467705919926788828910612820060021500996351289114304530838248908861238767855345449010659336330056029566502618510124536938139506455773982557766157868014031647775429645823543638077835491168721741215887635433602946989213623335480952767676382990979702229260233438693549069328441523475360194748892899395592348449380030851710537428913912154868633349297223203837595814355152601419540648302397263611497271062582951609268079502100225322337784654869113853686949573559391895648318786777501803455814954344169097091935980850012544710879990684706940272696372070792048452768721454326580388561100120539342596407672057065412931066552029220057906356379429185792942040901802508394853989160576753097073029007215107826322946114079399131583474008924904960743235983469099307363716571280910525386796464928041393113362615272585398562644126331438191432657715251882682009351111200453607937437618995521717255891625754632377269422181854493383940727784701752639115650498744116622798620976960645110040778538415598059669862420688536760566699265041363736305453749642157177842075833811762929627159565975116076075784821889772106277478924720264559410176546284279292177235285121552614108680253860627574674077625326509576867933491540100676435725129669259916128790925038666406127572277842033273615800322184892865646507145610939996674445921343910482011472586564040797068631049334425841702923021054589091624948994302881250007995913320464426033875329452567640398870749651158685093755626990783234908277114295066317109209982728787605325424813004725418742489021863490344059680427919105929775650779799370606447030630220236867745027898852248690019542888458685491009832133592787024533111968741436971792252807255669992142770571484168577334318916941212264853855364936914113513774896290093124204469151788968075542892571352031422513563510220047567247684731971318465061073130894911324742321490188853477474712628096452498324666570820021281645245292680495919072006716623319580433745604602343282636951012070279429363207421119085852222485245299422426796972381283366459097148364423610755068332795501624173433859952323773968044296867593764995109992896885779358611117613169454425785790456412394519178752333872969854168227090465331482234295012076820239471378472926016940369402860160255030477528038035708471237233292023350362785418249450027685544802022039610987518684089116716511480374131474475233214256266772698766092854700667651224044261446040525560499281524525843975575417067774003683925553012761077998668180294946563428533713640102214116212482770171393730441786062023065455896343675982306465380683948115689954437206598416500535319181398542166175912008915348024592616250310935941097764550396497940199919273174806265994796790380755352905768084299029202821404930217130208179232132588093743942260357838809525252368603442431643048333216227891613695473264523648325158033901577155992831052290325027403708575620777782428837613284483351568651758977894121845679817699804378297544867601384410025327256649991976765329565272819510062178928008619880778887526304434075868714558132607934739018369922366086193719526149734830350865558125928412093328058780245505169246270101428399951188092924471607156863568608992628751700636638940473576294118560327157670225886548368625126750300431780855859198916123061944606101661561319294991261485164655250672833716130046497940077433184543879126351209121850678353116764601607154460894187675976393186468595485337176215368414782287482844447692991951662863880821932394758837819854819917762984858133749278355665920006038571113695789063830946900921163906357863745166430770376463924687095122958505770425165848687536168327517402930886340623138590892331676626842469137512609261695977626530173228470034861976026027056830420968037789835243573863720639028965719556392324509945911364353920687023681272461539208583764233497117295462988609278514958021734733966252820876973566570544000101267668226095181576066761485678611686291780702423682650705739465543467354683485410348435870911960627132262533131943901615440669559406235328426018637714881330062814197954491715665481462004455119624745893348523233030714439811950027045492380775197568309191696926509943089797457257339269755933055895226085894983108035262216096591163732732224329270582083233095100444191006500370716792497665572659129142940224994212223291451634480244118525567435344020809519395993993791008849471291301574117875541797387273162658865841925340442750070066534600987945166689020179044930348402162865692154600652101687320206058211166142606525563023799867196366401779681116190475074892223546162787243082534542925918985786610828134897217114434915979855273111892693080636024743216789782940418658024692253873714857737643525478606620769869499859950860649937125270525160531423686035554280471961219980038617916236265560642983560890037809294364689363289899508602420922741407623048174411778823054069234860450598778857346164868036299061768582914745319712078272143104680005245310417914548140727355868869581815467042371249216455561849431975880106140349854404215293699009696283450031214156251481194154069225287819592383645361980760551683891543952771176133064407257709482232813173320987013999627064172493315858673322961312627249428131846161639113115694826807214679951156085343572703037081338494016530662458693827355007259887085815781358188578541084439246323593807001445597341636389453298511744257144876280846626624438671298137113000426322345632033111731256814255731395563287990191245109934232100785228547675113370297069024445489609273832968500852607977752223708330504622804948888620979043646930011003724071643375096082885378407618184826739738295820421953081627658204271862637681057228626012837616274558133198538559658018521093553777497104965329269658225868376657163585386208324374343689514917694270509037638508052792716808728840177540826553882826818603376728180189072883434909181428853884581142697683220669986987559091186651096506388778966810206074534448269780662939095504721757351467505660383340765701060353325038340659898649551222355356626651997495299429239628379796984085989386435561480242575040273192468912098732317374654615557878450036477355033371071402925210162308217999586999312782288545550605702209371250933210811217464588475728259364012333866668089299513098028183188382313126137967466480153610352061433119907415420830066161175259020793924025898968736963301413813029237202829287930603370947396797280688393940135478456870367769939200941275090406738459930735281122856408207536029033534741240887914879611607322313185413475459729269447242799318998626184116953662455453077048712951025983300647150953597793468817832455098773948263298218156653244432856349601358561948452682566677698122146368331836684625672552077883067753437720960227192650646893413712998694955649045596210099420580638015517610344460863942784874142424098519977660721025099661386854497988442339870663277890871891282796375430843476350289401292583110485317632907123762020146391808605705378302590960058312073166801454088128220530941233994762953537597609454967073328380407224060134481184007455948433915698360852734125529639670560256206951082005933677714546371379545590822918803329240221144926304970778948551147454123366021313459231925135118782827836987495921147435422762545005046311576994437681424238875681766050181927062291737358267736756009120053647440499969901026544609199879448077369214454778610978283173972761616335943357703300700931361015960721378008755742475784753111064984456189294178592918006980440030966475725757558766073467241461974749358173647774536854210657989587652566762251714312401743672556568931532677897556139692379687218486998403228595194046434705376079138957992370967883705300766245349857278066855918070454588776705001575119750378856647069522353565658138377859512604093710347699476544219249815660060978362173931079236915996667647511985820968997623216682721879711311862406740910296530555359504682305389479201428723870124833905039945165262682992988257834806551369492066721349901939539388573141379532232504290401659100737621698149635069646001587495098875211263679916908850995633811468609773687680884411095080482521217681007993787812146716843431256992373800131967485507936927246847360654082999429521882344706502312365329688505404509257123926805020531121702114184073686808581788422377760949086564763104323765939555644008629780436367191865245356133316705595090800000098993654319532300517861922209354797314711620958293357945020015891904288032827437364197914278244553897483800314550241208200443576927752101063791761331813032481430551027535806891508050336136856502487155337724029704024071749890160926242366757891130948792929026545362395441454746041470240230037626308141985017884913470721042407329149945067250156636969598248958183763693406061073588261113793830106010830887713479942261907747014497723060677812009837197766606313166058944750990944605416055950253874776850509606237027239973423131505673601653189557528963843367446528607758179328312998984947243115336428229316439360822089544771042700409272620270582027887939966940512437469809292677787815453388155264906172460129201925595167040585842021328920532150504187851994658364367406664404523161012142761339965742606954422866701061614663677509254713803436886216576706560372446368130207428638908919851388994284606271406299398941701937561374178698808012116916938838879784542007924632106306622439466360931654644219726059968109615329167597643502810437713194574478842913255498427005899612772526823152050051814475905374460686285628072261648130364832106596298252212496643005517036564499608313223478814758219944644100062346689720623657071990683807045895506460441361232722472706279983247557320872783947896444906302961312358757872996095876407723508204775128052602323707984631592327541256290810315135607613517704644941509735275891513953822649572910951195281187063717530943270923630852153987633996499813168595517025487944778446380724858015257849602654005652175549194982442058025786615955824192058272074202621517568661192513647227669584981516244208825827892246352401317084314684644700117576096893421515488127568886657497002589696132431388170661223014434326318917083598432583642333581424885759199092781919926570595968594246228039205407374557450508299622089627522888070979656810256760539280990709135102694050052157314657358759295157833649609702841226630474223788838744431676069479969846303453269091571109522372129492412853295150104930986253661913084753151097004209158727665191370492042233212896583472109010187670044813565816869003780900398852784427315067556365172693922622697969980012177223380260682108373538695930747430751953422455464165964033793540518395355572551251365899342884830881648769971577879371828356502317585038820376792644957743285726027286001980389819006233460483015121541945841966578494250556913772449112607342294780140386220510225657643366378469306606885806974685750542265106866419858906440869981842705494107653266910586611592824364064665923806676358999529550502476738713258730202674727880092487693343534778987930257169478416552882369278071689305911431657553802956023945351665496957295652124267936772918583366440489438574835716653987653218388928565642603379110400699842136247771535569633021820141082218743606333836522094602684049618510679835298609025718027085877260867916452242033723938556930485141809353604033534326907311407747605319404144704848130488501458982826179057267730053406464186155469699077896095574387336306225634514065190333517945550490191146948410265965263045600625205420282741104390709565845029185591285500197785469790800446074181382303388022606149022726341747405735675875521522446717471439294828617610664174003528514784081868864248966958150976707301008926715328336583026756484489267339579235671227853431051278381807330101658131116886294079664552197259896493087107849529815632905797665350058507005070137725207775663287644075018396316918963508241144201683885091124537636983736184183238670250713066890805640592331895811011735536776016930246318274211329464621790776619128494433753690892885789831340761763213473181947029973014919663026439576863490969783288732673506344702965296127619341157081151403322304269494430909299406508190950372236696135300822313600747992703875981189038681791061989522015266786277523507912485172226080910629054538958417502190575096351538870732343198125403556709876776184548710325054254610133163986931012936791376499199406082834732177316851385367243132459395566957367844121177374214285173542931227991387665404193849015537896756343871591568432038437681618911566475453993713196491167159381143129747895235382570784837701149187394968025186621640103445593951413747109447738053302019200355897485841503088165605052788194600906498781023991129932292237124960856891179139894193019018581150727850724908190547107670435304464598435206277385658512261628329783199974210235279833020018895952863248535726310381809240469773609587819716045277715123251694634686605857848774981784251710328896034254551016065355775843402175544471992662351114809752368394243947376528524886427235858301170334076785355354953118369940512510008757993005815362573415956659035622911612402854775848604659205864260255509324914655722447837072824716911783192107156246389468674638321496247376604380325687988130970665458270243299162779956719786140578229651662327084260921797307507948712092598595295389130147313825862330335015002642324373740677272612653852582898890894086694540563948365272699616873224418702030034290569588605672467071578266535986112211899182649366581478521183041378044889765620817725009174436033112292845303548901869252874114161755126210381483086101826000880596781255463857765135574270463298622170210373496288299904014498285533527322492647684063642684479706398943350299546518733027835664041049898972083688613481933590386550122649115672131281484241118812182996962961495997581572987498679517130079568583669340821022550389299445798617407109225218530419205773865059884832468772062786669347891098186969219270418358283165392468577888474619161218873208436631257213317069763751810822421577376744286177270476285061118291454137569998962071179297987682407827093216015859532429688873039980802423881111976166737528618311551606918465946299703352137104315835948554027031179828990963069210956700280608872239914385976556093294906654348073332507425126859097112119161058248839875761189786322736501331559091031735859738815082043599120295045662752825607716011966360440694391491682540022731869797026498370063075298105458038773343083752853733441310492523585921425693312728883967845060161266570177245552135133012781754695905114372530758934500104324900790241618666052571634678466371925081468914214827777559212971006526949170706111431977146723016190146458955904600725585801322812690919556918676821390564427965495208860937362880512562251262516705444255342930298667663282846301168597083703761728585777475872242812739744167492655366047763917613751309851841892168721388035201400917673757814594812368549720814396222015850714992575328193387759247656670210673871008125174786621072348748709872699353678103056390411578024171892233967142016889395099245901889976013151398872047024621612987573528437691775812107698564848928507916855799627685454997103383213038244717641312198038863664981827915745451292307113069272394774923259008887261533609646384968402226885668595410696113981800309944296068308395211596070848007828082446306932166140064342339358219023479835720502279816666594791585392165350211387804214711448314540849430181538978208719104645785956832975823627724420577388988567237897102035904270524095172128041815171362966722199899867182666740255509880311478940801901887711267813703789216114295055777506120065102624044978659364821753239788593628110554825527653677250672416104900425470342450931927071078988515152487275051501132478538737873811217820263159829562182550148846270058919082073329277045464188501640174400317615844533175569902745542473689310981009011732330562154356749382687740459484203353691674477283908602721908738198715024030069169692484830052223396287265150239576561029509462359262420702737647135078135339224364881799062301519998168063154432808224176343588404532804794664350116996884864291863455324191405281742469717906070640173605524319887541156597110234710045675916575403904108474675642576092293148113268545400176841823548433855039232515657942558291475934618824721162985368439342269302481499276813144826549349320157294916861050462877143410023576118727408049508783895534421242373066217441609465680255305648552421571032548104014320077651483290275201317942946983463827227165813920606426367450689846906837593896982871574364470406376697006458740604598295729012278159021215488388358580329453773579284561157288010318450364596275610917115713716926460744548593318016801268789003213240910191145790565393185983784539342850638051256454134206848733961941795206339760450763940548948745920466152941489756790822139472642885938621616575905052332107171314773598487121175732897277773811054833551351139265075978741995310644120713541314206042111006072739545064456125679517922907179150896748120433629647999989538640590668007143620779296312429348906127288878002324242938081306733144277793496419957265764735432329647898226695389330493387805398774068300783592517456989010847192783146277082063009340079153409451430192665077859136897194033388422620657439810388763774919380490893337454769544088779263373594645728715684320413324080189349884260533441568134250724226571969361267572851415568657804934869397167028751405777483180476891581255244082946476614718618106640664760895775218900663389209336636009842939689464497987442460350072653158031668903274688023768877271005089976789946429003380186021025109880357828642601994491576299547952605723996982633765543527646357022192060722933881692431973311521077308200218529582767741775034041552263822609133733675360307907406348121615152589111375220887418839162264125288769619949903170726368896004765263292279242304770887130813769331980561213231769506942482824807784635385632290429579156084965066281478913489525154149784788514135530384656006563104323965081230569720939535495493180826712528418849689790579213629581546304144494746258170119109739306926678480491489163235467062522178483296231950420698927609393364376979795200478927881021404988052156346577542288367243806197686560639409176444341423965467894081049868065772030767912254195604521484492178096195324100676561217052578156265727381405559812158753405467135685716534399385666207313022969500292397888704292202519466796194204328000209333072353294926916366423138708362396487668861574799074798639593644991412517566093889408391217552101108277218902703817653846778246833409964006097851695280698737314097074156044764987978207716802499987785010012678651552713962450035158712171721374574508443324914301505200013021309435368488810167449570838976985932204747799457873921135353893139942301865297819368900804218692014317008890489060448451800350653172953977631145694686868045503867477219362562841609990136843716304190541610285320708837548899633067318479542059259301147971512763115619807531248444714578500806011682356197658478920921254643024455487622220203473044022248653086011826118594093898613068899552554510297252096221898464350992811860253241129972821036754764839118514684529312490539501211196094051067179770996108723057876514573303621880834420024007834033558236363376163673028459841002018413044535150210959481427214114889676294432435763965631363834257624415744646775132057727251849070701125374625874236542043547674084459642597758608587780216343976031440962570752780618118881402720197519301721868926766748795555564927617827169330893381380509683388971316972669677257120870437491182118435017051074331089482389487614164453788446667142752371876551066581162763445171527080529785286615060010814293652008975828518765913192333991850838153660946145015566633382523355535683036852099006469547074056008591397456425521370666449778497583234318404650963745280975668997519081121832244344596977426841882844942504391119544514644538528409509347376984000597564734435418386725844947435949270346335114869501489076811800102174474952298088216538588454171449242192630737889718035948229242973103067672639548207368257504303834577710897451203244404367788624963434721864232610014315394903417716896409260624376291428683980002261686970322196768649652819101067804372146691455523054353876149929526667880463257930019818394682558874902280449798844867806085107230078238645123374721554481435919779873610780211116005117164941439762145648119753561198939598432105064915547058180613608382992462454562154770057295192874894704696503212217534512203411644802813913021109616382118990159792096248365394521999169297983262492110702703041556916429900798794861250362206776402587805634211047164920489340056943056640432567477377044377047333492452049353424317801161888550208473143550065291285665759347293281894439232271039881727551895285596500510001440669148536379768681939837177219972393416992969190474246334027774378450036529892164444840611236251452966697502925062461254017838048910634622955937313323367821112501683694977989764555660987849115930659230963715073462461948077991822591288949853266121385666605415261250904704975434238534181970978033831782350996994927037673881177635639896335021354832830347871890915850990412658991430771485951995375890254876619778499255701317023083662526604098400030356968989556907127485502673894394159638099029325124309383949892416627235842514719548789638883933907310193394619584319916044782436305632688606398503829496150690355828052959360209569780922447275976720263178909675809959601862592544503289761730365616044778628162517949382813286909920433409691616269293238306842271152094987137757152042120386777234452575412909879192756710433028606336723718557807504849851584024832822366621090984936478103173024273455041417561417674801373353441555481764502779501192788146719253665833882744609614122529689112729964031904734578793597312229426663890625046600152404273784975545473081815439403590793648313949330397792062048775079687560676050815113572883077710759444189292039431670246210324413658406444856430933004736948008759337626533001670628868049578902211579549142324215963610112922055773809817055432464671827907080027535447322369466955633530418074516277963658107309573576224004187550426593656888827185106614801274755616373188735184616699628067124538139787452886233998809848133175788035276268702696875060728342196489107730629980784351754816990234471632924895392113154445090022604835693660721758176404967822550673494148813277355631558440340237552876286709779221482756350682286462799716443250192115770516906434918090892622711659674290421649391060060918263248301614816001044486912750702193767023928846685276163224582988104188214274072370253606899360222187924179367183559174346689570563135349152240128668762204382610456570530584760535687354399166922916785711761463223512116160821538485936103420712938277998813744821117249655748450731810235246266716545311482916443825741548169924653133260172634128258719090074222790610051771326210613166163922714537844291780972651957614223629186662250828469163712929374577008194224551193900158887278212797018373464875519542865624381801291984818994995003359473227546123933177381890914503489120638962119013519323041058229160024133328247449723050910937480011933439169137492284937220667879518324537177738957428354687646597725079396595155619938328793441354961376052422918370253726181906768802282396167124401817322166441237080689045227413942765917097396671205959976379376060012441156425573950625687644619500636156228348458368048927259025106412465431557868702708202505822752336191681576333893250621795432724359323180211162857960364006726045240683217258992129714307994204258572485603268797187861690284726801630101742812945188266699622901572362291693623960597897473524357714410907451308581822699416661947038613811847312379226512171097440767519126043197828672205654313806461136578424262827825208408446113655110002474555216583904536637512072246566682223785694372838847438270532843534375452596656828429421566131414425254721633822360078102685331033843322824522775791321200685890614626563868416300922411896142183646355113811275097728186803220399591238767748232563577553120768089497490804970440511520836672531362820106079881646376766960671923543459224704780860702287769183569939676942093829384489927950547329161463645910393960611113325071028094370292222981903309146067349892847452392384024958812480702433311666759542760649783109783733011178894830700890615910165960832345875140176634447275625166881066450521765167289086392456469270247807306279159694341886319266740078979550450669326859730121790384971167432976829353488679592284317207170293830095792987754180055003270322640582385830522795772820084983055755619734451072264629582187351907237669751780146673848785973289142461527931339512167094201093702572057615541986288094285299196978076758582878922239435132548208637850043649983331089262293556560929064651726890705455966297211090721916145055708778549648155043587170154488717665135280865525960424279243872438940145454835133886646491497461848734300317358735270989255956425998979183693338185389449572714158005789176172048469791079791009621081727032856190356796472400359005379381611348805779745070984021312997821177697429602192059407656109505870932168386714994138945226847333140440152913483208845135972330394962478910943434331046282638162365968153440150658088543168220472139857199127801715293009643491017573831794911457166180189194624560595349596866734426889597232208413269429166790527643182871844233527368724064532237316468885228398659591772604271414844926445064209608727953516092211559489705779697880232251988507406966439367097699205724419951186428353696803825872096817448192374899795113365763518550363742361157309005471325236975316614333729054404636892045578772070408799433152551006078126401621773869621810785805286193983769633963486660279673624554699929245245575765112475358498469848967422451849657988208943742660272481113398781142891382957511806347332503545364821862339727405984225839931888931690026748221224434913682723850049783316533980363602294907358480397108796570983701285449446075108953303841286806354562204232747846459671386634170615888175430304748789104545948794571322345979652341638758821805264446187485234769803720178318680080435280572509689171929391212664312202416401441067386313624477146715533909626963391680297731439566098025715006167294661996022921902208249797458653291656206001617961354804725171937690121109465770143336999262572845939305284214736180019989778957235328508076408246232807213738481392173415558433308427846786822032270071278715659077602936196202694271028283022869818116391976523577458339273252218158059512936127835032009963771849799332425799135820721839522565911129043102950940822626797650858041564809904576269514550150351781766912617534710171094569938730909667990865595993317820114286569228900496755534555849621264546276557758394229484725533559037994388289818929022846578613911328207562751371965831478730115569403727142304384325933187512421404650910958266370225084744106672262113880304781706781291757469542240940992365282928067177515685359854256007400303745065617131016463862352692452766945127279160980916566088784998270861386041911580381833630218761500532596538126201961735631611554369967722073941053858182619837144194145783716719655207290890017409860442114804601501709740748156988848510438515022451251838891123270975900939552232424946233525952487735174437533413487191636381827633295437996176181726351557948129794659012844553977306174669874918805151768595532433790459995388375604442079867997715997970592661199830602347330459392204030220882932014287381882348700135701182430025945123701039620870249699783216065000897060747534036419358102187682766221467136266498682883159299134612043555943522370233415136293249352742196102517177376382142016138758664760308987718086874561303523321639473322076282197134681186549507152183825767769122359812147192099163412342359183752673079422730516737146713174951883567111151537561980038873253064957076448869362625917260367304126905537534166397484765952993038789356618746573002780655366227454591215494889460116753360722554162183032096518719086563970301993073455318637104059163702738898834433485882414408353955986116465119822834774991218390495840954248833021322083181461057334076987176793210377227428477153309308112112744247291107673566076021412872939484623713423699955080704584108572411086301515773586862563466510374944302101311195275410812685826122239095149733382802330740854115832693847299151662241981097793745135514047007296513730302648479960813476670565243674595997789430761404932904091339417916578513475621704413444959455166899400097338825330620860130445167252063188461407643766042331518063566006255535678210478928451099548072189527624569378148814422351531628224690325091141718340680009630235033654130585990522832428667937238312746474212051586986670899329885568164567856631153648746561012586515649005357055178235459957398044056701070119788705383077673723018819282493100750801126422442287440635634626164110230280350865325879728153039946932067564278370921713734656431441402288024560228032243012893638664310048098692963438660825221099904680100952110427662085080973181380220334793785978781239774856927214319698146198002113629201059832552426025703731095904636808358939612379581012093257522244710318779836417035007541591096529874806405878318033874786426091628095802428696998158166892863830475148223579808783633317837452180480455537131627875634293508936167976724078992037195262365819989328732622031347413688117022335136020685827468400265680080097827519528399372265622838403926372993229696404461657742592406354297643166234281690628167143434145812281278564116170141422948943306298893795152117720097693709248266200960827039351420298577504879272928889151594652645814759999673324616806010884150546842617366980232651424105096868173361937866563588808432000145013131105051463332381543131016361882947219465165118829177745943493139738023890188808068941250038854004029101025697233459104529829659126888042230895486062890904346340075202999470365720703423221533598296846112310896316744624210459809233787202034715750501635245880495401308419392667996875483823761617819747909564027879963225587574005186041789578857341760627801032864113180385848891887892995562328348455722803351069375198922837282632177410048781038017085466937243039167043811715206518350848713726818546222448681400552059104848232499189623857303413591429309840615458232322825547665086514177148466220361258564028185915297618812692468140245698939371914274613376257678929367554453397374123044100692179116908467520957961127495832672888997647008798366472767764152614948773635000710273329451894504496670016959623994538013244690913168894687679806713185681696725072901094071296388676378835487972495399655746032429177913202343625993813678226598604682359516360457427906286378734075685359834558759506348723368098033891810149778543310949774686375002918346836603269770294494505559966227114959112091313302380845563912770794926655573786716228011449765205088665959774524186231444444144604542194380359582518203899988459679089624440126986010518207060977633981853415107724973051090928103422664320055203360542874824239630416669184248218525127447718590072756092789495239986804554682502911413913450358936552410468589893763376015660561839250857678037769124248606889055008416382400577457147615426882903244597014622320138074958756876353144634142995375491905861146845915596313054772559478038849993193024837538200675822616357330140023076412084473407536357795638738420636279657903665118402862849566911296522824621304677267582748333377476038417700481189693944826313877264658406657833964558350828042822009856445792311418842090426589749739587235769692626562855950322530190833304385189640643667540605727713124084773215268452085314607898682775513663293662864409996536618093670019793927912248190188437202190792878252825070630323298918966850113296062939251816752212302202052468876349817492448242053631254963028160407531025828953102091872512657527536224070843577426441306508247955301144212281753553643659393746721454773179831824354697530429090664054449050685978154406748138449417076615005367282227516492284545289805466079624079180962420093914326016297730752180254409018232305292154641665130545738713146625933983907707293254682307091246058013792291473175336198859481195348261934099039775087939685794283759419545816033238740411043049740881852391058324216771932569317698408733615699152371853953101628964426073984249066897135237087362607830899342328613200773704690133427615923729325890446117468681200699209698900059348282831058735650328066260321578103978276320701490992340190705218744579542979038574933845887370078653089068310015736076251791282758923036080576752933209275326811593569118903680090933353059357101848240192518700595048017153408811801447120019956780285203742294513152662136420735898811137529816015221795813307345968009841934087771560493430135086886745469726473982367737063844034015843351446914770584426480689705067329145020246068525977707243421870312500352177472009717887272260986946572926502745287792347671444488634321118674637613036290465683160304308183904701762322471241674392718288802289738225456720883326574980315815945589938468811807629287491067938998050057612195490220701234724104158168472558980517183309000092890481607560357833099529727613574026528652476370065188222239785754997002735580738808809723259780922452361297067171567828211986456678828502178094351553520610382863693978698664778236209885872837113968560608225329579967716102058771722696109494803540367582328529535933842112100162199812807206864636438756257729298651599908646522693208809425614953715311927637501488653814044923352651855215470936088755672054880016097897980396816061408409947578976751849081388542614780293525100524035784852165069998524755607350082061898628344355850785115309353944536267170787412378216327612377669506267595691485871484358732125829337159114076048391487251406094276228217287228429228809654454299830954958492956231353279638458972769693720864947982820679309935347513001730732036251523711810600255543256248146643588653832451864507007884915577227861975290607025863651589379292094625815849374341857818875635525860968621206584291011779790791749589675111095745138576467054484603803274462670054129042310940007616863948325902681066489655291002591005644322889371056446898326379652415655407076608487103976024340213469231818510358975745616004868525423346003672713459611500669075629226346373868297108351147011577265006065034067231377933858109674900698859583513445969287828407090099379393832000450649983445521054985005796540113118974157182314701546486264696321602816719110084259639467845911874816368947570294395270792234687671371404784785633725559439501655944281304388804094298198987997209254350678603958618986403313012865385276409789433308099077979980576451018389289566824547089865260092697111108810624633436129196995312507064761931166304898450047425966410648964611103975404127156197289269382247416783657949761692152886650425619305423476632618764017616834473326586209617712970698457831987390776705469861158125806998549452801717197983410287729432646658312705156684057378201556644640146563950841481398651495409083746926756814038929006852822180337222184412384352478634039314350516451376590831976476346939277181761317106612823661799636418960438422110309147939364390127761176569682313913056662289251584302354161307868785900141514400071295428812747371432363054412318082479305590720238572735962967193620089282039981069332920277778200053786852547831799237031910908375783686680550720588419684220403474431981751853615064118247644771756000662574578526794310688311014032668313092521145016425626347661026118887244382609700518641684069562030616888420111714365147663271852890368115969688478884700695644106084497358427924957160207717003158191133814814323660903975130822520167023935495692334278303661267859251917802474197276174275041292770385737897194953467420457375375231072680728421618934810697786896930472892072786543284716465638260481256799081903228655237457209145235997121783037440267717354949167644974021931969042252436580719626936140424337486638618150308921936590785499157185556038978354699559762368943615553749509800448929144144749892896414924592181497589982278764539375810620773828743141079066217479341379109975120385248977110223986064365213503798810921671274334598455714306399134549956920386011513787645532443461918480582631836094867488446631852571025329799852156237944479678578184492837861648347510213310753188475807212189905509770142198573821338304849552890589913928777659241266471139923062252260377078151133617930610672227186103120269814523555189528235925697812559842150325885704022857063683954146447080659933219574747972056119534459284836877547222351467328311302584825161204514672897104487097921283510429215122238285622949977226230758772419703264148234976048077399565390122840843792314796999956287771775888325321694535755035984245985267745475128037715522959367125225997797067333587700066836583718234841615763383105233785326110420158531802174367469925446033717199640346188168185465252704992874355893080838736098718308450714656429686060912054519223734615787763053352375323603753494348897137019224259926520715180685385576904799988362905336840798603306955689602316718115319995706797450752777851865298216418714008979909157951631830299375978464800278621618105898640161774041651469444701080079352507458977957636378951811649985964242723956012385283845460690434626988545031178126632244317930680511160616646821108932494290146908422521473811292636694343982113940727517789849063725069790874601205899381882287723493893146288644426919416203328740390841361010475902400415394645639840224384735619079186612219889542133084229408947598728698893621762389843529224034974464736569037879588166077375865643657282843577084111821160256153952056233627091695391304171413639049602731962994427697614528492057282708783711799251232310959825159647089393087350125574563590051591725515471056799324978194671996117328985209477606428461225239799706380666754409803750854317501893410300419630851429932495669571256661627048622757196019417031040885485716984240236695216957833741231029594641994200082536059958687786192728954638828487234619833136728171329147131567274655060920765109945510117655936891053282841768029796265616302402309570334956110380509780969476309003860381228013796770795278709783060221107291372220137303869319724288416806446985964856849761198997008243431550185427874617584603368798972288911194962132413770578458364516312158450088927180413365998071741906249527302584075013993671286047638905855775016668238482249422063907606755587420866227094153422062481635428387205049634255508100218412370240667525901506157709781567769207708846199721311436738862935554617036373373123722302852635877550184006691366604324019624791155718177641367019561755245182561114130514291812139717047626568163545578786730030007563736800827028324492625416332076646063660055854144409107957139444592510260370367806501393905940021758155950425149537639028986699052530353027850958006768121251371280941900406779776181593661647474742734395899220887612120882071137735982589364767588228433104051032259590398061706850047400558063839984676497638249748550249714820887347625617175371696722717014152970123164692810376055482773640354272738719834533516536378419005069814644225614882515564717007532915670795290700631320008525557400718302504841608152975510753157112587531999920422444672478144938755748193154796816795399103859736954766946403438712769291923450352544360726020013005659335027959498389611401916184433100083462996699199602038479823647540094941254125774917101906669730724398188410365209411847313450269573619546425162738921250350315540458367575640752228409613867677485521887037230638649111746051553944268659562354146350234849746247896927580396487435723305709218709703595263610703312482740624680464237315765224484330546421010886171934424415587008282311445285720957817894178048674752451652108376136464275275456162603768875631512502338354473443941145540706766346682540471583073161458145283625193851017243721199840978653540705604055177281308604387716093985302014382030987824408032598655262355106941802272216852370150136414743396338870746682081477137592695159739605462130515541799178676944873311917974772228737995086064069273554034705918180079704688281328988164466903141005208804367823574552821648827547749404358920694135483498077213972896536423701402465106599492047978120094658238716270391913858927382184370519685944936825394633245189162192116850247364699558585144797101373933143234620400144000305150146511688895868411032142749672865064768466214486149115233640821037337901245986567478760758269524039394761184727348421778536586259793569328508800451486253339413656327347633862699503301138890180385050662282695951967950230749061958677746922155390841832574920807056186716772473964983450092782991245392632478538038990188743782270039372862495596774356203465267452178337920319951086087771614849062575154306524832776652863926396813764753586640195773536041082998117308210357582349590749192127128877507958984567409073887497599119739549245074346865233479864548541889654472283253068863972585432283257294174686077049352361883309039001721460544279253127370359974520922956096004659335236909940993265856524086172193429523599930337286721625381748393051227735801443084693775725731741479851121543076963996058649191320611587911049500222278991012084318315113103568055472947699292400624096519092307295998591946328989049712852029753260526178090315417891219191325266203179386931920912827942494902973906689232738246628468291308539572114393417398148706520598199555592172298780984018363941410135756903337939670851380434678660628060720589536389018577435806428577853691155336611662673306928918659399558129140156952595470952245538789637559603430702402409206599459100789790732856194062171998640659464837329290989724158514181724742781246046963279283716638283231860556599996697001983274500199551208610381725810775835773982528584263164739668788345222204463126029642013284777340890495745719103367971305919828735869029622278293752503808672343109156982949850573501956199586863014301889034170247160717427277261233082369549012212018506921314494569417401420156648876089592692612215845594535610854190841378183663913431284855355830793503864382437295033667675282756315946090601825835045896610650222049504753407155218703097334073645857755467992260621296805084445889072284272291572420277816035486156435003749899547785460089262569282499606353113804338534415586947315227412564077774252808558086342361891116105862991233564862432600538738879212686922304328840555498810694196246289122059745557149794635292033191146550962261610043655885518209857080266137329491643517609467227918201958313966245217088985976270841350491780081943845017780771922040495623129612317183372779974066858327361077385055964349195226160616086352212164708680834614011276115946483464081135422869106445914744157997465322095453173128004213869245401945472643156820853802670920889029126694767448620670008348687106130189128206873277744920885358609999566263636914148160017786400376740339910513906105063598179739126988763298653171374295096357567030412446092572549720514688825912250387925543845952256481579002126482817122395953657658939191211026704186171216064855541378060525732610352381692350468238523356085329638411075530368474519393253829084196813937177539247881628832278087300646554979893012931444309705126412953524402049528739025934386273733868038923055146253614062781978989179523721722911182912028577635289471134456039827283093216101861672894394998505368276915667914889357326601983195109168077662894232854453048855999103419848190867803736353146665052011228822863226265968695287695755121452170504110859544332248351663479709342789051399082249161383829969530571001568097351812210942842758969005960748986611284224014557846453427340201320558453855487142895288738127072507147152917043158585764327669747805047409475894077435456981903032916952365126149927002054594032584189244556889206500248003842164712757371636033249141246262375666728679220724490785110795851253091659890913609355632846752162169068058747401957485032460102236969622232824595412772747114895750257406455754359514349348586367036605888317276294643540251287504237037787522144762375739529539103692188892499757263552923791117940435316105345917583885905630896723584322157226259070357576336785017845734041526426982276423562974155043185752601973198844385051876668349003169801345442003110845998000690868803427797261981968167719254184127081752444300091164190452998289726933593974585222744764398923368280796919549749578068376386973502635800812705101338459429830477656543761508545784271213895353049989825756577420781791045291353401557604742753127346560520623954415737326929457645280452814230068415035557033551619096644806107999815164465928923920776849935606163619369059375064958372741829657543132694731691763206662709630250014480340714075471473701664314290138284484459213243282349521635778816829970817769908733871719167285587765307300889944164312104068650734394690519859883003329867660961833419348555085937739794884366600995589058856633842134623056114822495930517745057649856240701938227334201331019888032531555785166982554769061438869467726406439260063009352201448511868136490278888346855121680144105834410225052864027685135578528642803903941173685598766788854032511597941311745506272031156044610129438143205993689006085221492322034233335720729389725267602429413137647443525376599277106337805357671044735997356682050787109488590470392741869097414784196953703755536677654560766414640831894804475843128234010230582857594726410729750581235101864622696374327504243581374808012481720823210557721794646369176663814472025145843595421620476178628779314988237837095620604455502667260843571556107000562124120521462842480485950632444462398471198467649864909747198990891694053592546109014098735372718332956057954780306752744424580601264857184607703240847810130905965430358449096721534542323886818830524889630931881630346306782212777927097061064672396770478422622775318935729200136212966244889719108464618480543442563408572910455708986147761805538223912847707522906245543995521895232706560847956752420060156999272398201790605388225192155825834684935794019981847378175796438720675377467030266256820119649074747589755989095926885792551231296387189460732362014939920111209159421899751956777384146207341393298788560983665053261193615601803058215166489540537134612697325111577909415573790266865892765605272142785528237768666702929222468835845803056072647953845367622425984188821320943258514833608173190060382541082928467994012494847046177225913108249556209048012601156388184003800547489493397490332462603600417644090135112723557367721182423960732426147114900374357436752788009691358789581676574650278408731060405224822558375966718451838065279644874290889208031489267200545969337060918945205409961702776766098285490132591774463907096423240964807612312319580688043008825735013674437243740888296128372645872606953097879876073252184772904162814142455415203548162237896317147824875483777226727416776464197486693635675135881111518129723421368481546423390544481782445550924334522219646313823575619640242831876584717550027290694955481443666884016013208103479663086441752655060497017981356020584915345163276506032702263314440130912883326554234427250532203062803612863655388755801101940235554983758061310818288631141687050420979271353991196770460950556302785894992113487847503200266829924356134688410057913845253543153166250915837122607533311033885495897125063098032840431110573046287616639872549702874966984632628245611461051480691317577091650478804838604287968243376191892379230225651715095081302002635235789546064783487278143375506850341069479265132666099952210959669905081511426927771073021485091380409995659033247739171905976251480008701829426329212863800854660372197683147526821300200923218733114071160541208585539790477339588308280341943498632258495234459344533335608650524828823563791262297928795574122901454167405240757596168418688848055996369519632726025143027831916591531218122224566686537389071489390532230787401016698078190166463350884549557818280777828623322656536192231157847165054518919683736009600967949119742459045915150642785941141607982344138133529140627781647875205523475051645334770986096811470616396052952745475221737957790912696789629096127242255100036671579673661648464597068253052243571139273748481109100279238320817665311042939584914835955374928223360836870501191378585993741983172647518452069929318536509488370673232970771838442164182733012224365559255727242146970874156933197786620093108073393966483392033544112257268707729032341240567667710761105341043251169298012865302772108193677153002805461568484912237436838800120590208285190002965193825005126036302224370459088730764036225399489504851518607252579825444094098603398935615781742463422225631261939509328092786883651864836786764738805977270629154272032935608143918189762866338422454874868034841840410380412697137066662825769784175868667791175778811870890518687677859958404390899172817329399881644224726778825737806571999362406578125179042320141678391123571663406291416900039258230293921852767444978915042798215190076954302076225237528749918395095363369928063222726411231221582195483854637285464701075583719027942377699386249605436993457285810825726114393184944961455824563652894038423804528086133592825788623675599405731544421990009668368579825057843385125756793087655864106154214466055986259460499048991089657150979421366587533712094339644463273359553820770456688136064504072412716679077493939774101022520958176831791255055925984327934979797242008344359239380463377747324966213040781949379775522971108356431247209658407904498167847106289367651149310067297417582991047769285981950972314067962071122890337798445320543251211798301707734578774854161291383719371824795499009565719594504477234618344712732698639446229953720893829928376588782482051128639201662792203692305186076036362944882885842346324482708367633822079261498012657031897764749238762301709112448700849855908201154906009250054457909787616895392342024992296706292819401002611572966348825062295749339771362233287909652227386492366387807324705300405790582679826332345037738408417008110823006621135140373342353440442072624403478129713351284595992737229453798420592923423260799001446633536994028802681755640078216453887179751749123943390517073013767780271868780978686825272053127863080802181587220576173796124352292286497341868321319609009027778826471504218406346217858326320173062566648950102329545329837154476325918958324152087732892960996245368060578427012364723087144416986207158048636557568733369891501330869817037482128823281199862948935195849289645598280539709011463919395973183874029977906050309280882154091933699175905724666756237358579341439984190212368510590567275212579509491119614966813174297462529598543351445352240851768827934361736217186428391600901632867453616108512551589910584893414979242915468107632621908635567049322537447607369583354537802139208592601456692735416885761209302141347392605730737697854226885181314653081553259818595245993869972070510102221862964812877571733498022201318322023725666091043500185154581493280967634623859178267484948761367361797313694366406285511230940966270654278171204547128682862500430201700172678223793251067828615702118624449531817912043775547015563342008325240935124217589796029484239018017536733180516275078147168314526344127381914160222802239772515822496030452616232358369540525104865808847179029745812492005055670559312642064332478312502068201293177985351966686405547062135613914303783938236868888228098648264975918679379317541048119951426837705665167807072162163922466658148356430026231012331628382747144036031614930831362708900241598328121112853288835690197869831951798300618391031298964896563036026895506512508489115601264364371042824465976006319929331477879834793785998077302030444641395440144273255253847529378365751276217056851173890556674078914672542598372843197145608935333055265550146399667945925668475623823202233414712430776574655374516119224221138276642575996652694004380713377541286274887564396460216225013824942614876238938558128458525424127285000335215678605943784725223261329566626281543037997231064128704540102698837335270215336805314686989840850804453475851259070128442960418179620674953977485185555885823114525023602676951330152600109648947833283080869879271385359822252035975922992350413814282182584289353910700202068386581763453172849045155487839569410597705394738333393168862960114382023458296930113071837618416785323100107310060905724832552690668411796120077760361602169102307394273450590396439716882381221091724883847203572951273432636393065533424102095280868374162850008885792810926588568148151566950077524575510756595562406254709752544472402057440613302242917100620188093112711244474341029356777904953201883808732406388394331923256748238627650399751528163820462899838267914709992960088793720635660632253869206731277193300839465028425084906898818869516714048527818443933936445878669984419815558881045171048541151586371142135352355913702237426035931584527500392934749041995187350719193054445139384809858486782858712762038073749250341833864812892178416558961506268326976995025880895748491533437272955790169488885567505332031790354569639043079359246901485165576172923801602804517545145285788331215959763950052403668774096623010054861537308829944000285502779927502892984517720542834558211235701445609445654003018961429696116998616144702013849571440974253220479600862205032144620314733510138397767473133774700230181801795495117819788139986282419077025410596333349538077020120525670834863086263225545564670642493055244390737177720696476054127302198849953485050490879046960725781682895451248850614988338802758490297860655241371155525374081765507187423897609722961833389586362803759179600147597507291669581626911485381150038546413249738992042160715088979257050925645998573970628769445645902909133914771282229946062880613320243504895111075798871222180542453524632645161303940328925229421815675019003231180568669149428508027642018668003307175376915428213847332158984526236237395304038133541073091181041899947604478387046551299194942209171350916103472474889642672101944624385283381452927930410384390229388967759627876968038120391383670175016287585853490219471940723277895675137893902822227800076770020697420871752718079920318039844055291470194360420069985237040400018347809086358923789306693015371812937383954973549805737682813301822168103371898853600849035689516493020121354251165406822213154071068115432843519454872493113476502857806368164949814002413299129747274691638634764113029024030154085599363870326996615110345145724993523938312596864564878236524403458488783762139878311452997041784036541285599552225110130157736827826265439178961369593019870620912736414558187244621894196845849655085374896900094845943705885230886258103998588691857769309946032620257556157496449008235682375140193931006894913880492694460390084013983008794829055272459993703147388428769718782797496150424363353168020167989409952921159651239813825654114657401416588878718328187038709222972587132974513909339021381409276584244834250202379705820483474836520962766091529517168290774788271589151982494001126060542945689916093395665023182227801569957162300072833846010863627031570455954575193641813824050554326574590646051075238546631853535945046075317129418445018768777308728659581670946545271551081431736290536799408755708732657980570658118666538969608381559981745270352833295057470077785628717786900027140748574124339166661374198967716907885957152677085021538992890926362171379005711650125092844896599175974349637908320192172722648163196194728431626133443042130467142096069960314763274704523360642594171988478359387951149649258557182373290442858241572407244929083209044483730079589244167235910775054954980926265174809357499831892091681010426896025508020764410998137453854688661759138867942933764565926672756319666372079495896203663195062005650766426720681755575392299780803437599676582923474427900850943110905984122753474380152122643467523193554518049435269702549680929585316324062034370895716942277861047985614107069553114312194791421688040890798087421007924344236459178624545318436386780262038913707099296257985926303669518391783594658127977561495898733296939069970947100862542778851143828227637037728875954005038141528736936783207678879037605102199693149298871284634770621942823066617032156072555023400578653156142696693067666881930034086620829971588230885081007193253843564333654478613297861163342556738257517994916586443630028241986987796789724312995115734803201023948830799026536406047371536668553182206258065364148527802862760080613883373303812670898586944064699063345077140800931532431757168762915543612688398596826948897770290229928338253358776874936407662298483109544455988391049699605248821235138767289718902454384959126867652067668421339414371279420512907733773433083739164221825564557668830524751096337908976421555684238224349748708051939766351624903536317057899326083856987458477077446619326773370109910983189029346416090347000520276684613561600531066058115413199875954886339601316051489774192485760705708787835311280076249653214708655277986739714621223679125837427299647583448861012132887863207082899999657105098507231641074335832725948569311437033222225668281162986700035339972117415236665043009868608283719877832483301186402388720870268876532800987139704449751246862434627528757411381306300093666141878188274514910437382947999836891469813273179124256066983101597695884190649878890138697082301240834391566160967934647681433589075276850706372714627422807049300643898375969549514978340793783922073982251752244980506167322038707993472164788125951609107121651664151194723498577283876876882547610640555962904182584416078650670106187480304637327406471610644741547809211100724297754727452870970716750154097039062503177994676956778489202798492142371302784811879621728776534563185565880415587716061317690696141306555494019914134769063169039539523614643520443563637512028344572543807844374108887072175013998754560156919172807339791968187367451686259326722772965899981356865400535690558080620176822226935922723259967663025562129260870176165435422843583430286347543320503440576484380795233865797771699201489796919532867398436104134946626018986718874617582487783644699515159528235632329621962199249415960166283751086405231920234835141160524962857230396156284750468539358393656171929901882205192921271970638170657117997968492911999421976381130650013932386339638984413835404070916281327425594349991632654298923234701095707667716914578221563622102267261929802922645310275526042144578032257782440051963093953359640780606583000248533746735695262703612434120722288391466804561775882046860596955214098466473811950606541441608822624874167533769987427432558835024797963326075333450737690749873433589808137714002065834771247359180848691961187065738151349638899844524627961638009548445321621075422791772321854518860077254079175895632188108767835354099739191206054324914547308443568900694979837294614103527631700996234693098730318002704924645289722499728494257747236143753740376421686382004941035377214187958205113371626886985333626198293678285865657770456981377466835634013280366247166421759131750587376909420537848812815785174206310792583815956842005168287278537843751449381189886946850943800005798770555384492242472831277340014700650296844995199048127725011948899886320957589815251087053852575675533240624270569344965214999096921724527918363011059991033387513627375818619750301904423443181238015659893672123432049006611778789515508828184477657719713454352825611022626450748847647167702210054926361661152755709053658055716379682113940429141623033400876735034057845886461962527475511817321163019946571282310945490958329359725681386696432611355914725822136210079473566479037511433252438770451079755029580721644973182361533709725664509199883155533863321366083430249335474378909716718524309278539593564411756877075170537815270914330028308244931259560196412390427043490327311752020188822085607173907553092404290724013826458860241943083851363678391477233294029789158059951260556272794730726438248463596125601281478403756384687664037262320183831324094283017944787154352492180978205118171263003974254822030600606797948959549130487521202953261045118940300718260365120602213038157727164011604668954354025986968831075342376129709855114969029608873905981961026373551581290786002180151293892671247709868853682006381013740349448415904330333725323274234957256442456925222300129828489812884370450577099925107228540673735346975581632789280055150190965207818571875050568220843320109334670763624384987348823702207795213916132510727031465767962521280651714646021141133728516038202638397898061260958276077121026772343918345130313111355309576256470480145887526641557511695186483102788085353763006447090964546221136055531033351680664449800132765644175044706711396633722623447570978696274071937601787444664804773832536065950467812235079769291158978255408917942806376421041625022270132913958549348150739264597046176617943474450668929904635827173760533651164657237872547168295258340486383959545385250843271062391732308633799407092637356380702967981476894022236181394722662141403495445361881087726303263956462255395832215381476971043699252671122373499959006257980635046350847592831201952277934686543114040011886212485363104691142612158500291314019579836514013857321055486469503955143410198894019652718924848949565788173306757360887649479099742707707139051857929598263524634819555302135885666682072251408267193538551217401776483959221110461635764660661223243558823801959445028961879767747680923670115342782052052579351721137887362836830324844623111936304395706102393245683053744114164085943700259992085463889237459570291780829213115662257869899304152427059243471922815576032098460757018436389894235964358763856430173999903754981798494984779404676805574634457706559354552989556737107729888247812731555394056555666627878409581079802104683374895105858367455131101027051079001562228184730768928060222154979268508231336007933589753684351300702541319443166888174846389408608429585184431311934084613203310545610604763138747028428818413976446905982009896454396687874617295557919289605761782178232831683433617801159619825323125647948852468173836667228092772013478170802657186364365331942610113635168400455035586657498951324599173954539411800048658209895811956929803746594241338681844935659036537897957253641059725962898323446453282715276437751414258960780983013263658231796714470157838003706599877650604156918985511168298326659908605092860579907577748712818889059330671021471242919887493693546611396411821505468380742340946516701538750891230593726825796274115214122363699041771047911988480922561171271467538553353478178861279313380871676704546371028846570848246155404616527047420888575317158458375382080961902980724059085495843712295648467687198772348266050586519441594407654747257893989968574449129963358947514455192100266404801910764728790574862558312803448321020371044081090183124844044401079993692800662003549366980377218686432600298856772749943497933107678159901145847512027264399135360198447934250468449882379901501283690507520622627314799990238578666999963556689334591621878613907359012645306652406905531254627188533407642448497297397160252654613885091956480517831132274495996665013289256373152598824988724698950972577707737024816772608268564855760550403238898258980164962158308399526546823606291334389280662411284670245517813719360778095114098985481971049770554869384488447695583737370579165071250012499035379279507901874361675873280746494440781652464731554527453259828527705187354643133132276029211578694992114482598169390464079655317701892590892875024446716242218814367599766826575454671830117984509745847917385114910509096931416197337398307016178314927042595903898164544121471932454772212464708059520818188599443913081451114850138423654211745356680251036360392987581264808487305255135215405515884367929634152942411062271468506770732419837847439809756491279314909360836335958991827028267084048145471916386253430148117583450574238992543420060530537495811802174775912885296664929176415088943891353343975097002000933516566752280164639896626323343692951949731991316552131197388779234116962383142798423082874265517812537317554251973066516214293333316011783293114163951726046442185007481960594353278998014163034057840408900153811169968182692283695635833235639346874938773991061705890222031192782709047341758096862932591539737392189569699057062898462310984797404430859731758379053859066824501468729497745734198220030217924695702903626556195483422596316286833271309021775162255058038685955830261843681041875643875521547058984692569198332987077216882163811185297100681264238530699640943485171788495056434178864047229780628315958115610835112636282177787677057570117890859434935845526892575571315260242151955940675702653308042599255190282465231244773442192009045236005507628554135763448427412948531900760940646541746578366066446377187920338222933997335398153323216531043206728591912201724998628114919814078981807847763544434771943840794953011787577231459584563407299207507080361915389327184316526030066250989731269263261336257358955827559817475416639226621413846960015195302927780218224407240970885332411769942013519650877072933015055594511138711033882398275174471638428811636859301359169029213610712537148923914368326168687553292786575522323157176705322427950242097037261388728834054007551959302477829619283745218521615283211488746758902312250478825949707872611062876043380109181257770327209025428040671977569749802136124785355534010597008665004034507181118557266099455905299371559625180139578876929813897029639542220743545321803528400057822905691937593049939919463797186053978282783120990817817595366012304044217879817048709131856502251200763761772192585409705564467559684418652570062294006263326734562440924415895078821175111533074406359311885655661284459954447881992514506243929828579348067810523769260559567250185477734772511383291206229234318471154802848760662838174586077207220938546418773603548996406279862128371594226001386875205016616374384622990090808335332369988246897742608118429512272560361949507020198936714974698723050359601589739648639748371734839122979364110455721672871297299129920632206351472356828457080020948434452414339843108984631724898270001552981180664656374357047900734887328482959678950039277165910622217634086158002607411631294627356234773211592783975207035381639167006233181265432936301047317115697320571275332469062958213575426046272219298790936108888021512156958779832988053194381656342997908700591906773654987240527343886181873837550537356204817607990891701394420349900815598712636409683416476165276505657458716737360954571642046397906879844379618766190247321234401224811403144873698581670503276171961697183251772110488668223747558889390485099110729265732537549812373654981827064261373613738612821137749399069781935697797935314821931647526662492043337567352442832900938849884924177816503470273202579457967284060555146406803829866163490968117966908137300385131975966718046719277418324642611834072660036735672802297918689940201689126131076273470713025948992398767432520083946740011028444397092708648123864616739421310267275141645339802482278117534675463999761213362017510957350708382462819042076482328471808873654582510488587808855553821265961371359507983690087027915347934714842068432498468468558562312669534294901084046623889954213553650511762734950663415120799254734014952630621835153284303138253077902224537574710564624104203228080878268491580125898647267464549811114562273610461793163124301693047755087634829295455884198744036124667147413574456188211936684935259042145665872473565144567299485550623490590111944962939559215413437126811545035124185529044878816750966638968820330246280678284198529374640942924644250695229561515814135670005772401067202858658286007150879422884255473117212390905602016999182897841309130262726553116299978662223420773227890898491812163785518682049190293347444077817532830723123992073069416531458565801590926151199502241789558526195114082700980507321871881907378133410755481940801740712578714181316457458158413337197103460499429541672624991020047775481160976487348217495364806768049306119432609137268830489560681060226775149312404474263618010518999558531844675873058679178768145016175398704954295798475930877734873759483034400494530079917141647231215294102906031387792334962462323718214522722735127007031301893729822472877526024824814179821121770424374884728384687243570157720009328376070988791992668019052131984104247453137325065206016723829975005859928973387159164013050048079216718618187471019357139504975665952913231600047171615926820764185733384201580671566996108872052257808591663562390755201044430617277024077408798616112510298125603688685834373853083204185566157476536611070871008148802179896467025904785764303750603929684852431782787478432651995536584778477483433878105894541126440509900795459778713608185468213955491818096246066364759600881378768597652816959781638416624881594725580189120000172690146576881290922467448661441545554340835120280511013992343824442619357791158672220304582488871872169294033904701145593295601104362825245489754312510090647461971651083678671993814048939828939172316342764168952170475195259798388221935063096035706821770719063692678230227047654057727850677224524583102285694102500546520861322463113344469087797479391126667200848915267124314759495674439060587935793680082676627074175679346198776285539371646406079849246469601591717658574260953618335240667438323681326475731363402153177221855678133537540834025481962540633548797093452296446766748104166504432553079370218363740358784822369812631125855699068477427244692862660443457837518347665248566011345387806443441286454559854104045119505137233066059050976419845700784904134167416861143817477912085392223871599906234989267694851415391173829227974532366258027867154577269840253808514392693437020464921059214925648528689766494002349297767488981452658197446326454297267610947994939777358141603306609344733935087730973430827654547083179499026415545333031645847604694692711555771713821531252230083323249204132196507140445459643764121713625849154264652846905604912085554367871727435288931475700116593353884804427582746488439480998215965744004905260587285020118705840275709421800154269335307391817868381738752289649076776278117636205359966764700735343122208948177085995925994319219270254168911813312344060178698124657921888985427285668890393305877248836566770662370003073087682809331744748665773653535472139970050322370885176526029314012224739674260699581582970620701736971159378710814316486341493409365842503672448590805202669184501538413917295558789977246286442916129141851021499040299864938619732265776944306660598695564745566649101897102942450010834519877333414569502960498968450622778329783878715614213398930191564502924073287670312118311072494854414364054103844021569713361838241773908348363165308490148630541551426217237622099838823838797501521308532532731332031001683845915415430893107988245338124903020784662703250016042251402216487300509925259008915634372938768422833968901854448813127158776177181885587878272927175572088629072750639936753349012814258756125904197578656393281680462059727200775081987584131017357746471976893660745928311976730435803486363250076062903582193119176202571933402034251308827154802550393873515425111460816819787533230889936689410958470548117034097971222510200141951835969665216171604962564885674782077053273923193263907902587100922410356119526752562939485442228992946367435999661604052436443354638025068019665985432637945474477872184111009099184182824972833948761500341639396718091189626255625503928178663519344780825255275276186848333718759771777966121343046202777091428912681383725585122096662498627427043424678908739695812128242859154992330918910511556566778043993693454481131686935636130886722517767783008772691789577980649071793975703802902933964086523031326654873793294631292923390707434791640641929809905240453071289205918843554984891193503643563637305683171963699858193249024072663845580262558680240875949589831222630915391924647535699373234216198503241983076644308945278390815839462561114921888146443954235546426263380334302663049879374974774688518351563944832161735042312897955187977245416483517471183736524564882278078340907631785364662433316806015204263103521048971620624401098128859197016116953037973858906264646119903374187584000360031972926930056992917585534258039270929211485690295207252643393225827912684616981710978501073555392603549390481872734453561567114667825377929464197176464417979349535225372845196793567530024972410995540345154546736818321293328573464017029091050672948514825716563264579128558175446423098793583702511751632334204768479317927698732438021920211717084819826916814731478944686173516874372646178651335236090666331094900884650543983865749015681800230518781750351187529441815839051456691812369834906142953320184615349447687121591733533817842320379819291888736015395492352054974391860512875004865743006212096617178040055841653901946586686058093511994829197051641637620673868973378687375389110863905748654589138113611305116337964908906506048729363389976820666278373951063669020867913620825105678895592472446851526556691619662417962467603803885551101689422987731041448533788266618719175205673101254221815135606664770659474106640069958923993976853376552592654643866042392297558548152117327512248037016471104505384799511456028813192177504650803586481624764330449359094236703441485912966561951197467856697722896772257505253158747383254081708587527548578854526409497586629502449773714390524999898701622645378499978356172252887661803946540184923506716184495426792664186933143370327847693302875823645777937253612533559535733284784234616496419912642533665130382476010417087459457474384535104902692522576308957604139801260470398739973206200023817592130179354135529213918435870386497000124621295775375577553300449924853777533798598715570855885757746331626556591439583172455463072284901460432356309484931244482989896173162337602112396525239741800233184854935694897194270023600312808328052170541205883313318601167057804718340437446042124866816844362082419418621498670166540869399097026193655011376755950919040512077815180438429955243807717623670965523955887284393680709387905319012688064033974890982434150342192881839698883829776820816629701434016456224248804586257330535366726473777979192712167530306427738817064521277565706338895430758501731424708304444131529256209132768980635569125391314492088080439544461181906759623987078657975722946189377343526125123435444733219673814570521326691448385173983266117387108383083381288894122200996955357196572293768623972082709553329255819195357115128110466241720514163772753173841399251059908137173058738216117323005653862019381514429549350052155233438657873190016544149599518444434974024842482676401518681577029109686112421620962901183602741327026247922910137522733347986786890169576029378856667574253831568909720372495172573300846530463494136904785081179930944232910110597727650073383933912928780550827518165353662743891202076757080233304625716723108002413231569402356612586763726713095352047475993577467035111090409209632548891930280313147670937330044708064425791016399506060383339571584706262336803192589777564854222494062350705177974323404486649168858465603379867391019211249469792325925188550048761167392187628292275829475865492092937892054163717577464486145075004496722998166805938912406807624104933622101798808735996157465453750342487474630999028695031936440687068668276285941669665996645308225299971355216293175227332935831307576122150898768753100143586957311238453702802704055567325291506362288611984902052194562324272595138346341982466650283321738119292340000750939297153387530429153514609701974459149539053339455986777506830023775054998938124517752937430705393429062351825207509740594542106385908212732396004833011088794138429115467773887550639065330612074354376769720450550635778683398588620453253842427535953391744040977051382633574449528287748386915852437161346893020160756460868864907412975954506727695728733355000810566370864025683035770767180440296660170678413364943910409153869018152361355753528724032297940972506121904162288325099877830320831740052907046350409291969511205141440402063296655326325623896987255513919524149861453287107012858322110311803348152553671207449120539353690650978858396384663255294965199349825047842453817532844786673180414167847687844699336857304337961998592588207435009026904321320163177198511938271525725399651666763288210088024990329605454039165742716778969921566788388179266622195290927840673058601211889670771281514405207075289682682950958778691171097313366273598178592913053621907161497012668074406245479697119564997126290078134238910724237555892294135105639550359004824546740777028392291781618914243275997145268204386449578610970537515867189036855945476810804439446241968299251526528198906060735358505094712893370636033824168263538642895897325049604261201065762724945385270700518674561984702039741801211817885883832579127498764518965819601064786627462379900816585834997674412751465399692846964374464106220680325079895644020921320309498795604705955442993710730604068352689333148623039961790101443292999875228109992789198700962511626383748242496059013507413005740667296117241985570748717600987507676981845214948990304852100394208114780384160974001122643154342133963179610084379327565318393525970336149985366706789420608026554103483667854422399890120309972888535613026616258553023729974716017212326744115689023899844483502376356057058262558781023382673191967588556204499395008979034698276300886919594353967113003551391143575160686685797039974960248214215434968494993210226571266485655182191339173254563941089973457291207677872738550729130811664662060949281661895451691935836857783366018875143523341557238351764341259543497210457060668402605890461834433261297499508293155109035523979279003233151779542636791778483384406709398586057136043215251765191120284830721114671008257412834695925884907833650827829587793944976742344254705890798443957946394807729132599860791304994939117305225510153445252045380561155502010638679437925450665163047444299246278110682980456914558640095655484895945312325830138872917923275685210089479236367576778162305872875790465666723896678009942661725158954165888021194798835136633734180008381030260361922199973570575304786681793747160629328607301797846581942789255729577094286826187067387404140654635402932786410419536111302329041286800526594176304405144609599095974846816686540974555036461400221045456937043384271393779727995660432416062887600211263821845051325456258883259122509598238669220446373599101523074959345633214520958960499042180287439262557473196046960167517070675881145780073739851720130201045817038565802046576245437212645426461359288313944119346288666279019072935820121200332963879833620016369670453877933677984469858016941798553278482230857648946568952658040516835452020656550187933516129029555017314497357377137730897077310941266689489702266926232684210964548288057748951436338173616370014363367147531731456609204524272825402735496972130330903325093807097381912959733006644995221160230422718219822815286122626905186357501109891535476373691864300324368196165042285463085023772126071124849496074208233057788921732791141528335819195646768983431927868035015417301237768059775657480569030204494749193089947573865696648946016098171661577887792794670476698680352492242982631796795506820267021106709723961249618522477452586605835118495154434390999272557615322242794628787083589662902082195818836158552547042727377658033321053884432827712751679899199543067377685902667349356346751104392494125894237898682454346805507272721681820191631174948869178014239807309939684684823959063486587145884223769291011674899418128326753801296326924142288007131949049135683102678873154968034301460092025362832059411119314754086209697655277700798674047136985396862294756539851243771252216396474462743959424497307809578357539911103477859686067922815953571579349163517256155397017364499564420054647457945098524907439572376188399970722129180076852948927315494182551744407125989207981226571150228607217013779649291937743759414084601304087465612207786844223551446811804947931825809304680431888139790816374028998135673296551886782972149219095190310721781343087358586065426777822856454251948665754921730506698347622258606055557718147601455602863505059750769699465454578817759917428918948438398427978800428405377964770486856040061500304470492400603145546270707575174319441966707674210043789420711497674289728309616643440209472207933743685037505382750657006848722432302770058631272307589948569624448285643081105401013640064519741657377192520331727698987303638708493749005176450335618995402852263998023033251578037467312860945109043925901489282171729433686834343303072403606267970686566984620710200871258041062678015240592619444376137526517623751788212198646373501500772763343790530843088205656184816079524450243767374074021159096478707133646136032674190396685013369777148752100251690213817000899320917482508661331633845301717470576404830424294053472758455459373343682827356987338618779679362702178870381519886769849615073220630991809670025964198289519791675660418100057982988940008721905700343978785848647373507909937084664910549961230470069376884614473261115293375167203396017703160551661778574614438130234311325110054407752633555746087404388114100324939857544954604555108835784423123512428932131323115327322921574234518456822170223878419067680612466904064710574226967320673874677872836843719807771178966076986694917249081043048982517114085457545589517471319344746413510595450032020362700914275470867081474685307155751186313901541221975478642314808244818089236298899087521960159226994335917824527507774058664036989117427089886516577552437551300618767297759026854993408846102232164455598827914106978578334745678828036573902514040165584288638386650705718629243705400621409466862840846749036236302484902642574107315187161726414845513552103560978219073411359302300027880325086427353149303483006918997917862830486982430901711405794960100548336918910495316720737696612965880714335193288053872664128898023000120236084972283005917587461425970555552986546017688418185029216378779729288901401759898279435897976218974987567601744523135483953814660942735039169356755152918552383709935444832735127616545596040912909506587101678478090609963155517613300568141253528385486182683666381781564778654804416976599778586578432937309421135700605377246286709145540706739965763996087301393927322193182968830788678042644761967008740010573697312879446009628319348836092307116460606857086193200286781772459044348909941281803118574874795558053823542116676897155444164209225213385218629443207711672649736438098977274391405183438931831232834951540623256596577673248548247935372004230476842245954963163162130085084501902788791332536710430329383915821567978680474618711286420866294768280564951831776322378979889221031159465626724112689804493021237713674162539986805706653337362359246254483059751802379002638874992939768058317343253518423390554310521306828019249973251884965974343718816816147760835901876136837102853231232979222172900949664202367344901855907832401332919107783521842870181362962156035780310121175133254893206499158126582105137677841372463468300516640029987614627271884019279687191410800007443814992698498077549007684327182193355736481193054867685486642174143231764340270276092722784611271613408067561580962479838639669174570000138405797151904222401841041418283028296540150782090468229838163384459532691457792534040126035494934057420846635762753375387718565238384739206214570041125893641061944346802229082316068445810049579182387685900794304820486070216542717912435992528268545230466732371697254305201660620185384715293131649984648974177019292590000019569458773628860874876427242153460515935788075706537301057151523197679446578059815574478374860299456487659624555588562781220603340770728336145321299644413585657222261723996542178449012831310834457764410949498192512465415841980311855625232557664580142103243103346354812159645663837650640956210492703503695918760617774399585616934506381531358934060586106278742289618312452005870275633363425109092730459042177753629934808998706150443667241827701178448556247344320219171604353697299636574095616570373001500746485508814225569200841588488177209965430368083004583637770256468114299678726282922501135041134833162830626183923423435876366889231396440725736306893541821365538140200043911275756755325399083291357128829696031482804091000243366183148507312345356844740251415808023813609344394460258861717719035955766265395047240262241312381942958698121795408193112238464723706881016639033573668432864084575028152841585875250274132448765035881459221737817217323929148725494992377370753680289373261270761673889444636730215079237222217719635648636017948026345479554898734311213635239616807027743175950314649453699618421036662958910631818845058850950624318737734683307229938761082885352011423681214833001109584755026115106575689929106439151222231091846097074019146894997434277242195354863998305335349148011345188673171576673401014911603521988235209302204520933791123675016612381437585622252124693924476034896293788691147810100588818291416945222366358199364480013061754898820587333495520741877341809980520691468213549204243879935218116859419431917367930405367810795143869468816766604470151273882134098217115185416999904989122732519593782502089789723592351728196880611556052439737450902914640785711156803427281704452423546669786245630422049893086490027769512336574336812454656979181653755590727142222218557385118302398401853392328303048494106221267157893436424723051189016030253372706737315864292903713733727669612738392429270594225600466133181907904155293236255501719814173492501339706195418396919209974982573962565631132194976261283647226241740060214197545883707975533366230561372049550216124360332974559022723110276704309042875203299170823493301609177140957393124302403143413109544023030694441355580384583331127902201013339874484791711348203147493946070518873362155045498416986105113149656383718144696793239115489954648068885483956177228858443223018621245244207072024220126296327232443771517507889792539697616693253094345528404305598840764859621570225711088447123087124234680005995830951588805048838117155152859742197929978761475065902808727361411486221713558216373300307013443481985503603526933129889953991435688307674629118395380112060485597374291978210059385122428492040058345492707380590235030666329635747504051792274648382697854836727736075073573279714775498208337979711720367084855383650247289153522692942051730455817081306820591320243375442379412128816255784122673787264650450522622402084811175296753591393617617633201317598344023638732053973373186064305374834212383996021395599558009578191969922136753966182558378188981845604233906840694722149429507052598823287662156303323166456595546708964192116589200293089204314624411769486029084872862049258510042426413268299363778001052870830469928991575773320781933021167407295733773052134911892085865428151305362682191797677459972898984587835053593961650724164500907865152291022515250896174521416011550104652389895874884609851620927358000848446899036963994731990446338274542235193683234830509424351187472643705921127135993190559399304800664046286607154351599844135813121755606086175810393358521290640989030337943201809484496144038800047247707558773636797420921930825234735921332064188966006960253438169262996521545773310933652083992951540488093564457729401778327482756527628007744386351128036665031618772609794415415688342554640260131886445506387915023425772060025813459417349955411511923331659137874220172586963825883854651021803165908155052545798671479168319644875120726553623364028528201839010613306067404879179129927632402955811570540078884585882625437745837765952464862391048947510521968391514304775597257642084755438314386138483611618828844384698935457539066524735640532893874309184521610274406378661336743938080302427230234708643875382207920563053337538347846813572726834822183402682901325952357350746566795761462268891190087917433144706217182736440397031099237868010492475307544476044903674558175654237739791122151192155023345474105175864725254383174915677139559954597415692356330406570953818748906588313131111715404060095744722647336643139346940013377043290849158184033780287552909549421876468283677914605518305822944420294711796815451776550530626971018471180419107018027668992416941842328011124094817721272127061296250250774808697247395560168571935299922722133048368196091636945962408831358359566353328357908033648163152855360653274012319784700436534607726630636969139326753273119949919789741828628224552107804395077349892166886818087171419426495432300195881326978190376253506109690275250563414304016842475856115288152669990709907197680580048689086993973713481278924701037628259372860747640040923564106351829263659213183473942538820064713320269681322036053655989103197125359539555388066452738514787373766649452723444907992347886180176428906908269824854084014712844671360745053373608081882625730836754983710863113682380299338630742185556200015230193569668265949198004520008057168569813923100167698541086818563976230584956246999561544025000744665653708657383071563174934090575784708130456067355030146023197020022105825253981105391954391830904812206942129595218351420433311169526002128761924136182900123163216895043630076043182010014762169684624892863776334697020734089069207695522151082623088537971905331938676028969101740952743605057449372907983446058885122964807916373266172072423076161450039659973293712442271932478230190021774751261425477502695447589618080663839322383752096428460976205319817225630376845954287720587531908588038361240550101053200108949839843103153892156099501798224297384004636701931732436830296166931604709163522618765706611674783511372840970925336985596371690995165520946160270526055326175378987190441294975232344986954769250090571120197751853633992705119406244003444551680400453043857754109713901648549101254497189288799202539258346005945996483908212415287172684574828421624923985371092885967152648165897377068760651784999007505604878890639476902678920691877953485342616147945783788500176859944219338190795738555419655786250302856630205619650208056810036579704072833351428516359594196421727940580435376190038362121652793800668389904511528349686485588366921633767423827772526027864126507504213315577029325421610292731617733746766291153490221191163607818976481920336106675206825404513197385239497442550891732129686699434093327303177633030211003224639674838331322822575404879630453492649001328624991586771143747799713559635171456127075259129953804658431052012617464369232257658712723441694123703086308562486800427461004673761795261825718022320785216050929840321252643073185622266009880547006061654078558785612470409515863597609666763631394802425186521941820369764729717988344755925916418679720296401113630355907604660068110653433946108032983608289501160666699171857995037912368418187054910616514536145096376992526899696618574135162518322520311062891909424635860958300023701568554203342677508010172110832393438935345517231948295812357145829015115919771464769678570625248138338237477318059705947379973193665875670149570113799920107140774414711361141969333886621670026196054523666037859860588175982030313973729943174234559849762098073683145938610474906188217868689504100711047381741754779134454053756569773606284731939646754570720322616012963360838399440797828647421334417838725372837522114438067316919164181127498586603534636519068221594279921279411004841761324766782514153254953957396728300010626473376938172202543139684873292032742163565520015053318689635350185584299845288477318055803371278775395404870159685340944270303710454731495602812529720825440357203093075406330995755257249580418034614482526634514839134493692219019829920270335152553200906600557102869195027682660882245901075195412310336219721067423487866800924837284382877233598157071474917117456571952799276379447671072959095646182646697790765072796110360344242979029714836379300009327207724810272159368763871587401519762508795675087768112223856968303110720927549567512726078806416301922006286315160296148910323585103644194381956627388477018223377755002595558692541349832979153068291548682578212010356300294401334698612772779208911116814485672367755333556084438777845069797521873893941634994867747166005528366235405446533215995690751622268771571330591974032735019734944655558021206715088959922275935511660717958162287655109889106757598616742180507151958164191718461103706719413639653171436337698151576965144873817722724867185798318224111284971194736760387773735615698941024919072554643446712270813137514446623868661949677003268999953345112631734635340164088661333378283017292248724089797748662047278371462100362088935768340288990337509038804895412666049550911144435463258624899790825489280657266395025034097351700673818685414621997748548534980004998793520557443619688613466154105966996439305980895079787811151633319728065529161478115637274595702005663583178877030195511583732744407428176817238767671737878901058371173086854044028855684694935834796125875018066643425040003335496923037565133793665844153951168647928439894549589970467607781099887212136797293880109812419184054455994351327817159287923427490072720816820381226436913811333464205223551354362298267317744439281938730372513276401869023789494617457621589876246149287738775372046994187528666294893609515545935165298771407546351948665782322901433397215591548920711241460481844664426114284417316134207622706331000561023269853023832437093957903987484603904770503408155893259377830067450046245943990324942901698914985469364802942796858487869386209875570395259907204283301747152610867047772562974140235232351854836746237086581177732240503078399230925178218714359151300147135818470213113228385192438887688947319359356411481060726860859067207256439126681742357935505638164396776524595422928898648762108976145003673650722766467519729059640332820366799548229360602098077793557353169378730848274737793752519352287005978389465887983275528917827457792651258534126531895422918980587996379408651900618177150012204210136529872543410253064513346138981399282850920386896585325960245671384037369738722508489766724826879716070106762646832905866278384765354241385763954206253453742952663374682348807373975442305038971487993464411486024719962589959080423647078445395622401574986505737163247193529289191848778882135121124496924453585698188809124789029297685028350060105642438897745405745267946650194622462167255333771393868340132229378267872017334170994218779635988271336725221374338828977254487822191067791884843706220912023568802260262552937211168717403893031000614864003012981432537430128131930333531949660451062101622220076505079174644913953000611276284032384229231608846785608726919413846022763990303014640096414729373171608835740573765168490900858436144880575659073297388502419574258119504067098528574852548063898300147317034525586958522436078803451946343193214259928530980495091145403014641158040360186224156372834854154807083488176522818255630527303297737762544922645196424542168229773261995676635647761666421565998788678637837534396744436419319325058879850334085104954429871848551488891065310453572811384891792801821357795555291915485770175655169907644633084601997233453686834584337021062923665303578129126485772960880969846409919446085659183345472897245671300509270019723460347806609298457266717683980713095575824979604593535250111828074290718581455359379122995416961039751470106461355902266421984222499115803917800467878451562115214965202011857636646656009958992461161603117416843189508678972471165480898412230307165027386340547676896285411351093155849974309819157132233922562167419654428969020602973589363623526456704849856020279079123534772829304442331188007208208796623786406283654712643235009833271241796407118317758689464506766310041665115814837929379307735916344960716255955306848761452433708793344862842909137173136842633311754592099468857154677390755669930077315989541841193650646482540287793021405137515266565032813052570609648950997411676082398533063109890251635920740850419763627430242237427684635380113490917937674018902022628839228696891292220996715770269669502247494910685558362597100312960791841649673830385876797533031583072386279046772009912747089948217784534758402677002723837284135171290249685437756795231984722149147549277562522040949588159720194718345192823579014055125045421946376041543519643349523699968923923424583284459502629863592122366109838723951857264683599862153685655880517362603103085096429870037475517992732397686046935168070431844961792252803770220355916467818396290941987686158360281911663687871843649749407103548673729391912302502305632223479340101265169364088978153090298682601778044058639409594875175695315609565036370669718232470826853685072642804724455084698798309584593238759548151142810748742204374525458176969686359853536462370263708740112542501226641891929308931662407341134812062170834666717562237743189191118239628043225136011114897971304642795499505133823713059863866872355823499501661158542105459388971730967300832293863805139811189280164967646244072518057679168249047046599282502343790236155801324256133108796824860423382316625349565229635989723525527957984562323549597811374244860676408143507520076884408181520344296964229939837281134485021046879629929148633164646482469290188631620781148303254945338000645769115564354361279855940981425601630217223056228954047377318006052124276451564520458289592943522242240112626273577804252187459602369708687609502774813091249429639896473988476890026156916405751580201974460065111668719631702727344789164467185103789921888742657549937483870503451957642017584079320269568205302909153840588831240936967711930692105244611086877134375663373777585199205699500983218145733887497630506088430104415166635126767049347111623343688555665190084671762516371493647250027770170258388165969093585009175899088470154838944919619686772371376297718881813636586185885769257381726542322130443370966386450072671482386363205151395132722711801833651652218708007641897921018677977998297259643387458793874390386682560133727842724878835864914822432838370302479222355653973115114613896603438839439106843408311533116994830816316643423101455344325597794571979888164395696127500611402633650344103524617180114742984722224691428430995780478349257038560436021447135347069982231643396299618194618399853127607638467576641032634739610457514213960764475611417232792712330780662237317900428579930815479197801962782476069495318087925639464395069674823807844822357515121631766967875277879310716866685311074588835142328843894716854220165238716813270540041846166141386074938893887437788270875392135756893123192295521005733205089611703240067624297313201921003055660617297365930447659677005954693596099996299669542599383247773567193690350783073222447833300145198626402864744682800754371519622708063469259916493285653008276220780368838669994936138217438396853159724382679218729531656676271385093181190606229417421468702347716647947424219312111888225819836855017297195118325742855818768018101220666174637370432334287709237833681202691772923725411486640585365770998909415308770475612948779613201518125781355909669658399686706179864502723415052043820561785741771490566490494859636586876642180805539857541318749803429351515218438057760475435334352872885578090288038930317228562535414934162226337603090841353538524079917156022645885699636305108218316182128077971684061255553178434502435402306515758087045880326624790541006344927688236059693438917001743251004176386519876442133571162985178161812418630092057916069069409080648874172382850060065952575650504472921588810876252690182294676581402746210881733570782535862242946162647505265346844297165376810696012133411950851932343470342666641765366856086077398216421451239288309306262682217498819200057080058287451022774646089356490157206434347510675519667733779959402116156298366447201788649168285173342136273886329722380924338558420486930392509621097347909437778824284937286905998858870508391951254769981025258446027981306338886033029839972540352473459169448375231956222412239204691194534121076998951417710619746796408835982350708089473907176306393350801352845968270702029153820841356096644363004412530559576593129469910116397997163805040467080125713973991522286638708983363965073822374070511723985891018680622673607309639971617215578665407803090425666213639350819848573841644219799685807965969716136575043053202979236216656617534147679260623829920213151213629669842081383942267932136523433881471821939170788863582317057462223448682415687952730010978019875987798465015366811875494887474177749289693635478635221289854996633261441499073167532835043870102399561598779078196605615201279943850811438916215671591293812753492393025218155536994080578005332388566968716454815804963308203095884685360971302078704810563525061981805131268601031225576024772221395592206370887275995372168848626324069351670408137710185261997837747769609234613787107254974519706130147946938877180865066240240821787689062114524796539123598740637077272033630640701084885244083474053254788260188930695740086795254688860986681204969210180449774566746166065487241321306267534842802646314063742307554348737981929604251229740092441985938273989348684543763871760071446060096622612720373790481008911228333786218396284741249515169430647611566079226639311411265503963576353908183295478077398061542156658229908098300997840284638310986349890656809246621704766862259263833762062311464774335401882087855645060350822061176014477650794488066034011011393140823232961007144016816331863985388354862505379628260768310941185419137267692425387854660346339851849228471252972015154299932200439089682051202112089783205992242943858235771059969028132801833829038351261763696216618436665921726415918460700593390146679205080427900944618766945561897611251796966017671986052396009122378434234941652379292027330967759570054497720019107642319792338143680229847874609087922360308544955781193854555645591965108645293566655149590812244437719145148048153772520734112212082469324699001943885108197494107416101927033437741265820436943788264834117714712101760162466937380378039832863031219126524710617737471830304736095099299974217330003305472780498321128787264301656982762647455304969632705606631385339118759845596683680826524100083276420660508900018259241426676318036484475778843820533801437779130996671790830681312781970718024266598073885537263251171616025179997868899051459694473461028138939933326923776173009370466107000038960827865163008377527843615652179026489858412414765428846227708773048344630674669224710631839132590421654739305509981388987935555244532198683737496989224558048326734473463552713809528156192619897884677845779650548508152751378217909188753355109651422164668128458615690695540479076787375768685036319804070915356929270987641771049576782419375983364332866778621942073841732397737221962427671138576185931440856411716282072092615295280257508562493382875568813366746353471079147632163180502449102409029394365513405458577317798577895987992169572539351804058209498566933755709290503611563371745840029390148011190145975189915320247966340401692108470068565066198874451828418230499896919684930187085589366773438940811791753715150675086902485146021013627563748604957526753836915874517402069054774168212157330221388109934633734019739353830399854717953012389840303112102927981620221509746292637517702389683963338784547620481734543587098940264695679987819894223057058669799568830853416747746270437028021869982477890224677839416394312136091812601481025940871197625520487902156616794768099999147306894213960311160769055191470828426664452674363478918736990300493377557878888074163142003561139391837658415790071764007724658122359481652316308631961001751300688012051339210205624490384771422024166881570208053993250194242571648525394489403064121899417574506037120894658192778234862966401453758162040505959213443435675518891263097318958574969795652448558384903151507375810094450603019677420693039219305333585999635148265343086679110148454585445131390697454821180276487067075236639273856166827971643185477144556253250812593665725838833054388756338997654529199440173524262849277220242612417868649979731982374106880297647531039485308824241678674330947005757856663720904246715167502620535923162004749350315988193114156312972832517432556994589156586006389784224168057153812553010337450695736582171131624872505746818118162677604496642767951630500226317989168594248864614399432692509741473752050606591996443860087451860292799897607380840520400026968504156543976062326723762678485908621569146585643152330865293939730834349582236034859596823562458198336798145913232661525865475655831188637886340193155299126785527820322004721204188755676752609336809271651528124099543963736789411274890413164238617307305518755688541753122594593175209831126283944970006881959461270263749046497247130514098966513065031382339095907273458111936540285619691566076471955667894935654430757667102918142555402329823261481449757290738853926717705326879807080456000064767352785898002498673444233644986331302372147357652501701569523642873100265477778745328914193768602061101786678644829488945769222278950993663117495564159495262516565634265174647921421097561620900419511521731863064740964860560988833476455449714956458130070703040091386861074904352736874512935095429225378461842937497676720599242849967891396855167563487338610197001667858168998759121648004443808558784839805867697311911785144953847658366179698619661619330401308342223856840001679082865027971737483106787216760192844752819677513757662489072126604261824947920830877657842470049346502274594281818420686082897985190498845937493512184471964571038439830786723945450362597607100620853436857638370222411135970574676831730501549164167661569847407262240943896581803221895506438883994094979253911282586129666530281348568944076252671233166383093251605702578087449293369740894905495359432767570214171361935069604841757999130155109527108000570497680056705982079030123542325341966278084631323367780070822145216122382386505074371359892378260280341360570316893114569570024794517609771346062260375906261630202722359333849347325830919380660452125438568742651111951456945056194065271439632509342331616606742138377848829128818691707265927274688190084857591015080191332703389827707460404294932467941790183277286270912077955459179012485960520071074678966055051123037012850550077136849450345532704478834458511412699417710449061267617077463631170755454031179844848263244953231187599168611631888805689573311354261948058501896972055402935546524570032591520992799349915318865940213665336825514525902761402373549811053164684141829025889261798207604462744626266087333901050531219413550476529932817235262488628222614341100006801184835409701756847976641338452051286424615546704428302868427135268736308409240656522533408753846562954485240479584289449385885877327429781406241110546415355037788135087558023206617176203498071379609322726200148338144712616944246023030748175873961628551059823806825858365481051615513001471321000838749560169641421776279316712033210998463633472800623823510937918500796853384160605493685113803545273457151325019253089454120181941557970910491942520550651523739944201651400747573195997326701087183450249756544297664718996084491653525215219773784303800924407483345382760783939274329706366542296818801352610879238943145228718908244001976562809226560414341712002481546017198764139823211945882832974244075196140348285086063869826717129787288163835408580520780904377059101899379845627440887321852236279025990315867161232381085437651444695283491499935174903236663215598244774657172595822644069530977158136218900406447466162061567260741205321768256475174154946547707215143918909322329979286277966742996603885667159945511097781062186830541948553231054177351947004177270371179604954100339667944893845720304494173397822152198706105367985053866355627986725614361059263189243368328320485880269412771551962093934696697817522435607151163339738452166644901162796173551889298379454490538644149511080384152458164289718055951636622147671077201639099523252812799201744958066551605803720475362182818669064531282669079942219637216562654049043206594398317219880725231072940499392355338381856779046022754455886647065891966632842917160060451225107067294276428888505878419326581022110516149751258748667858884417086188531615130047179060053073687374299353988712718211333634585762684153200728851073113292226664417626153486326343788460770353155063294958503657112819075328938737986534572354667770197395404831551541660173734028519095063507591063849335769074153905770057012204198322479699084054845574869644113077971076588684671240673068114556477675149658255843955470849895216002359041140778243098260814429932340610384712954678619133555282539262960916935059719662598668705649664546422642167950524223839480243717909323088207786100594277291876734035891745689520801826775910455751216118580929674114151694520762303240326530005126537005396797950279119169695453804531294063267741442801870963706161222567888245258289868517041446153888566260343374454837949142597528811368746821875366654293580635757506314960809790405283699528461515629972027296520596582606203237665660541139528360243273688169823951487055298644959572453918830019984164934499643978617237256791807539772652007914920693973582447179439448800071882179055392999117844942950062389514214761936918012802539665203125063435337503438105608052678109935705228036214252671063631703660480966092512594609619439936995753355678789021143952325930414697530240672112011458838917304853090071710708634438398352231419921054960836425211763922195747754043042767576181048254290761394016013894017404193460719593250700955099130222451095096902877074939098689876876702019817211827865711768076004443239294454939265533945140787002329673489732807113615080032510287798326000218188134357970299831136503854361773186372919904450682999266609031947920655445167999127930040763330513988698887833169852528285596756207787292461144837497832133359101194585498131832976933333314313378828346543033419582232977523742846359994809290692561494925117801084846948388317667732717671445391112197009887106267673877616308347642994728338528827206140280322644391204412061890470483539155118295292739296366027398587267334237118127368788250434775438509812479424957493984952653925699413401649534237215051423636302464377039169861684999781686685101468771199971279732934531629405487981369095863241070153016055123640047719401929142118249280323039688072029386475076441995086519259716832030506323449311312126559814530230613813254454951368431817903269296345626513237176994850215611138245267972736140297703201654289251388381604949820856558379081232455540524231646365689175764723114365223298035548841589731104226865987550298078347604074457889350134341146141393419631959361785676411129856429060673292085984675160716715548286167400634520662988428168458714356821405222883082697241898707917220506069500591914611512668643013293646061655825789620125203494647598473963935306812362338601533203014084649121291351271657187569308295301294462049014442421070214352214438958998864975914408948001459424444289453897959744813821136576129749055945356043063511090531451718056851993032928082994572347947304325910167945251739715211445324518170363439384737353609060371755419491818933714481025759786436054938747393323392275064487165222555733364536514600540602429366902262042297314985957624255198980894889496425685057084624155748667671157812340276626796446449039117686039282038468463017781896699719849662897537500764323293878819031651672948073604089100114550114825782402162188514396332475064816749729475854767039090874772379152259621911885140719928604664334448529428587218766469724443949326789019122972878303061189651861442808928051893815779909930298897831570893742496291431449927521621901408364686358203010698944425443288803757585913003814004954655763410757902915729867715758203060194354358326667548429143632699712659425960312993818396440957513564083846870388385070795996123687752593122146012944223491972349328680124360106847488576491994357325202061405004474413382029363980508492454639341963174471155731245828191798489097628606421312942487055618271568170097777118140223388842330073906536291945456013713472371963767386567115008178434935769762217532120056852239447768867674013822731739054100186152784902650799702646402473330140117554024713151346561820006670845225963957334657825717886772319620842675437453964832551323138808473403021196917206165920517019411529802861868405298586922428913506471179091018969578796631303550154278943938987721677362953345921762210119247066112597472832457725272893590926412982969936125993319172036619109958681033473139490982219625668395325334706753608086598388356588333330195112874172613021272831600956434031472202212698114264690695733189718939601672910721094880890500377630725851756845149977060229500628754472964514575252067936033644250347122145800098467445043297005172559700456971864019888276824643979086090361426233470880652930684392839220565799726076015643948647335708833485471895921040003658033110676751924139025686974041015543796049835728465697235170321937479737889210829767732752883429333750776536804585321364711559847325559301908826558364523434967534095320366993368864484616225931792119854529409432267175962210996674003855626537058676884379448585921241923528033839296581987300481565216731180580799594377027861402837289102330567182892238681660924738739991907027190831531704250902101368738494649575164734805514423557164448359539272967182534782927554147608247167263989427138961231576644969049326398139667839824513694680159992889266307789832571373413293200498397701831580623632916193262227738730782991264821873590630062136704428646762163550273787889504412796488320223402383248949095138909387210016679605482611395742360021388842875975494930436541458587950555377549317400812703759328789851548070857254983742473610711140525820541995928331893077511285871377808731733062673919991573394843295886760562259114181145547733003620620434508296766360006207603959650137959129364516753831417989185968048063531237664693868905842255835622179377564899479686982315323075012607632417552590503177492691113372314986069997823110951693169493102466243932712219457745911422747684364719234746299589686840401011887533023018967048800619835490162171248128135000704501999244344240787919382094014233201144316735519949322146991085180219855333456998290349904684389614831277481579397725757445125637561951667330997592225881823400095304780985787710599395113145743007881501019392232399254947876401312560988590000001388119630945262565220380020268435087483461810932973694977633634870981020957452560168564071374519450735640137354366925360631302705132498945524162453407519738156284287680853916180287853880589588939874157475391414073991748889095804728042663934127179557829604248224862855991503748615338298756801956933218367955756079828714147059819091470851855548782906015588128189191855263618943395290173926787436370491655007414029669561938333079272048153103206294572171178460296764160836141631247965303169754800225564233633659373878034469932186814836845793504146487203595182904150897545050699949074409220291172992279076976783084656186326668981547998206321829526873570937185152530779375763273906449167829444509350903025473442790804340092778608627635224593920034381614012097434914639780328987582403284714363994025176287288577476143227095041351887881904961019174076840556256802928448695463995158299337107478365518882833882427468271283438510473795986894470453132584776602103800546639894347190368227326289789916993411398445480818560508612603230880897075457336913727221819894430795721946833684148068082593888228340852694903286267198981188304712481455210413517514836055437286155275986870519177656507924344037149318074645465463434366586956297258492915556360973668180950447022921942972553069369242162373636642206855458561142259950699019229290155171141810023898470015159730921909561224560377585886455770882107441148026149151793366399921211866837312156590232823286670658558280317015069670201097533887960162154065579863900341402876440067837318830191791034965894581955998840750166446115331014421523290032007180585415401240664222881887854538667222749926618102879024434176864616542825102392309430990295855148061531437994384353041198597961311815028498326397978409075777584182886050091716352118319072840715518254679370969557058410531126380141178447994865393674760335187427209509022457679808909866503729304196524568886895790529776637228222763001270928564314504772184651377803249050326729847282993395191830116669795491989302004565070545036098584846765460419757333279727979527813306075689416885085259073905067603940975093534241886509734821267838291744782277235791673122565298375107435964742239469275001286228827779644430635631771582389591753591433744763142409963256622531693381188930093746073679332149335539496410334025674966709798129022618854230702961049190711567884392844056967233104772923992823606711443821607054867659118570042484956105312218914994528613489969496045030913229745783691157164662136036769993147171219240016164841275271948007018538325501116421143501555726462826945161190641870279515523703454190249798094104513534451909569526653675874652357419216507495548873131519420629522507571781995886081286451240574711102379098044706289209437417245395450912803834417196195156030598076287634454855286115206224175291434636496950985661466581178961321674856210415916633817799072582465427535839188525014851009140898479395684995900930768953770020578408861126455780641412996716979042649716659037557493658985431349031551131328965809873236439870786627891292970135967270473928027143643796269170634248773562804108954176815570064231845402192246545754363440039891877342320549513567216882290742993829212198247272567654849283141078078200126916413189222643247616212047146204811122571898071027624183024121658449664527026795630719060870890323447670941186925056152547854355388099031937880408104973276546593082518072480273953211530306128848713431389886650040696643492499249148217200457958588048207499287254821085028020592019910472605358472391728726791194767157272643450025628854351126085727209600590705610908526445505703182516856362799698834416756019321043495827916649219311615416328584857734172733404944315044686508732987502022102253303918302681885357197922982089422411666259823044589649017999288759406815054445644172188387171319083057120124642339243781551288018375159262291553207539695746141434791966237996955176501144394339886167658048638697754666362971924307420235275557206237031040003994060272921605900589382436421141940306271624635857383175536883344409812164333881795552874276399260154637478283434107352894811750201224777922555388543250038935582822918752302338967156297857219911171857753884203302748552427780831274694267193396390632560174063396006629527609336080328925710257584770994894769925925678662103285454480257993634991553201898127860973238478100196115841500635246868815960484705780714549998828452812019052819060697281038956161192319364069057037110480694601444748268095177023524687575157921976406857312592382346598260683238692966781378801323094697315055273802195588511372950471782832443853565234533684823009993481302680633514664896939040829923038241590153004981933028085430505616901464403389287377387454550460428707482011885773270893917745602289747695645932968822859049299460665978300333870908498156461041745420303405239664671275284264568782248425155726588131341413496329354610041449394615767235180535848530757665330544094330680345817591116760468246386351268678565226275728710744457066513972899419065779732456001406472676472721178493465959680718154195912160267932972759353385746791996435896116720098008285082061867554066298192655875783937866153557500640903157164785273821312126639761010356072508421291419063189418447596204808695330235704183522086610546866764643626923594259168302721280710332059182881612475453060823729315426242415521269828848427668906118562908256937002264846139620290377530254742500424646583608062542326404033938441027162179936735406644366014444697302921177178624633402050052724322067600280462804408273630290012524737193055745671363486840584046381190136634300463965348324494718437810807024066601884814277253852738682329931067092194415911374279610203667730098103241523050865656115541649370715716408105814982331476939532565850477649364468474184445163598409288314488181553336302639258452574517352520035933589237649956858992795800900091121173557077532885508788099171935430300161128516412319911980048928652092510016845654486503802429014435468811167704536677122839802904256364678693222807743288564437739791563737480093261294686121863179266498202990316465987856114831584069681964463799845932447655837621240942347423192562161340591164142471653299444422129739228039936456406389520305243993589380290775382312974827438944363886249482973638851870391011316511908932538186324816887904076600863732566101047073912755384420548106685534336539050257015055409854003367950557253061905045543378889565241079510106058370124564823706771540495762567144444478903708773833832569844220909186669604363249964827553556758348665341512761475495506684767953091528808172055457775875737050253938155137207920917987435400706626947748960540247575123025352688099889285254292070849467700978599791804584522527860785305534955459475732370543025843260252802050436079923822534827070344989928310838692148322022352760402909274966183148381510269726453268561852971676202195537421901497123981655375086186156783897318080338425434466482587419880034295336559170393283905912625891058483114294542956856555792303042940397532016756816776601299776905851158865894618510585163764831279237255681056506719943207606678937600356845211208843239987325825965309251870841763303025823833308405750729137149036653504873700596340941479914409455367507334343281108329020778886429104028750089638983833804476857336253524914318855027479368272720939978664326330897728067182212057670217967919931522906732612133215642081633150658821517873209215370055288008671383869476629991427477638019257501574152985182704741071603929448073118336501921233976070195137106869644361532200897044033111585051844292713605882313198137529060262061969092292754891642842464404488511886613933014330880175988611495416844438141366632706848937385027693780519856265095088317117853244731500114877282943756920041450086583918718139857503136346928480158767591916067074186486094764503613457047320358496010411806185782871574052191391856012861806506670302184793544492708307731186508635996629778621110318322729318157316886596345277694688605357368652056568308305932042603276881342570833573311460211926570316145130281303397199574304498454048995630100096891159922980211684002569148061857763140051605814101306401607943666815841031963392910938212935706829145091668155390417175106248830065455469103617512521208453064234368167396703537902029136382667606756193962137530510148151877744769683994545145840621016022452166114268472782779367672433580393101981616963699667959055985096677226745368456776145980158746242122770706170376412185139808512522523508442029577317544093091353775508692721759215058028467279989934048381206542865043500751701895503401021714181972906620515904447469867705865476473438280051560111713992799167888385533630086535705918689807994785595444261136872506512546425046162414730966517187727503953640300929966195689253999628195577382426677674452638703540362099931213903995327622062390786721063562532300429816368574657347504211150995471761520303497717985703047518861042895499487741022431990216169096589347416613470072052335288828628530768014874633320888828354651925702356274606455949108161158514615266604645038040616322751135010004941499931156951322416208612184780600587400381168298517133525795851770952768407551001931384155210084366237634926406499469685265178750949394779445563237789068048951554822547370791104265727997736044319227473396787421069496047821290955939322373710190664953854025736868096478486387623104532700936980367980247465179965557388031810859465900504504785690106998089486749131865445718204129818954988499234333747388728435836135884586788621238375754343033695166201023914130568968767998089194816195955387982524393490778018457260815596061431231701091676571921506226231061691704850622134450756111966434966489096850616114435889274846298452495220650274829232378243207871022765913381434778969953477275854731290425125696750061474850488295395501090529028345405682662413658825432985503740780559938773398452831197794422192686373226231308856400363333156363953686128675897060529380271964019953110214977871931525587209920584697124295389366681372756759497098131896194182713026841645662843317432638895593650178175248030297334610894831473810371542550182131201438371318280828277016701345861754894566424853525441604171019126159983492712993930966388085759399978582028946261588254310156768066981841116386112346253708362122249804828265109004991467895597162363694456366094161418955562145610706996488943544194158756848770269347677170233459131009992851601543338224175938299376517437975149605991440192320937109231730331196689394226127992098675002125678137657497819255317132618107267675611816955002055622950830454977782624344945604693395882279901809387507498941984800064607289567582924962173138213583918250729065422415883136215178993742413276157813593266774140589577188085515861506922378708919209687114132239940955724286921438042846179707506411527160754159292873638708456731209005647238317166601340877328925340661242602746258998397991145688204098803639751432916367587865262475512385916644632892433232197371854390454152902404652925666774350518539336744631674536178413013569536660759107810588747780083990030959139213155383834827887190332631524121432713872337627092215053735697677459685023126049121173791245407352918700979349562530686935303064322181468951261769814132988407050179896435054935716369312242994102726904788734281006209730719350321163123439594968290802517153598415615204131300525185105402084181016419204258248881927052560325955644756849241716860095936965111304379065018796164695239064313330216842447500209780622628294607042127195418913531449000534205883091757218828543197631153173912128043945795055055961191111416412234369868544675785652400550617292579736874197909586327641187941328279689636966917479355634195242032526643468136595554208885101976553450932793324049408203757335660049483598795054859797706712610548709130890950341240436548487218940739398956130099264027254419472623825048710629656547611398902223346844778485482403385225569829801372506070689942719885912074479686097293383326677576860185103797760472988163439665549814871548335203716026505738709953616537863209696720393333056457057163340745617814441864509375476174145285890262779246166188492183886158884202866877869507564218329133051622681914888522311650051559241275194736821493424484357352553695140321972473881297704783379947848152094846074401145661763964972010726178092495329203192186063920576965863634971553284338898634489929500899088999003281821871635814152411420579434184239891979249046886267969499224064982964999394436843464806106139897920531587693749437785301505862813818526033018523026752611196652223248501523407171027356937563567237159131901849466324819154684633464013834345169041859362698415051411918657621837229277220352195299347779872650253303875656247472190847963982037910547753787758357946808621952220602042013551895543886345387702345883364788182422821873396727969868422265854230983974937937641540699378245032617426314129490105042500366386165644279419698348770882424798037778518770138731771311503051184261114193519915917368916777666117480008883741030903989952449947199208042851203344207931879122002773194960847464611585630942105508988216682993526148391536897111536623682376312221694460666965009423528356374936622619269270173712424789667592715910617923853121190042721920530539993122737848362696919895640217923046370536564145814127412468701271918005821020416946972585087031732885087655910447278567683046812278304406964828954376927852800050356856721074412294731156898186579500266883855289035433608791733575460811148355838258619345453930341330955050852412901368745815607453614537427419281947154896895118608356301618729732530562854717280271588998842062490700891996808092347253363968983512551603483160645589961607025055679888506816964483852656239302754550115711613959035432609977642250620976025721502237968452263800824727077359998542769176041850867425636883885635570404611352283383628362846134431496967535930178206404106017970304525836889275871745990984691051571178174274376604590274495079874112930987484663039661165358425687528655484470797058622561069244506542861016823885100755307094414942411227316572298985753669140919740641842426355489644840776312063425794455420977679004976383348133102432888059932905939417752335062252537693328395818120147071847909545714241955843054189759159893364525942181852504052371645435543852546827329939891852827382605082922160144328098052931974368726592729700578531722704447376378491929618768609543852310101696131849953881891434780541462674971245568191855367819838022871135497014593901676803658749826066241971001636587960884007357812113133653249368833712295773643341033914080274605313036728732587713057588388286585608961664276086614357835085203492770122798203979427533597398956860965863125234590501519521535148190476203426670685826338358691385591306247639972473934452521297162597419374887412744914067151563761583654370403901603528782362400618207225414534811466159142653892466490815686358026985189572495318194389413547558134967532087846835796815383486462143878554869373496479321364768070292334267704529360074973338892722218664759881835145071824921769244741817179345588964096571813643973574397742253273323956741728056886549344011918991732661731105823132225281864539494268845696160278218213602208620481677936580217826808814442184266528573176905577164445943312039815473195940900786401282931547335630916421712135722023731379701584580465787019350324721189630560010943443692840855228067142168692108132289873718422281776422548621526595298602371137410448129004115644979313710928054603950575321291513440746201360903876897896921001063382402232575258189953655822062652528036394084826983887400306403062601342891221362489452682068395031252227222285823391510459639923076614580819426090547633333208787462849352026794699134306705096151736032315272307859016844527775161001708404015412602627963641711491997544392106822006485701802357688602158159915111240001883668462240813195220381137214185936456320188383321572414391761405499440756783324804933604011281333322022515749813873703197118621758665522407789263553139097307173257494911783094254942634405466082756476634994847171810624480152030895790242227670610872008210288945965634517082502691900766231657458072353040955590140871287862722496990508710499143740319497144277949054498040825022300102038941320179189139282685761849264136718719195867275563041382812837970235714803947753335231823166944920956797460563671529473795598985984457486467074295265767155775720519707564616556244437734580629704384221596941386545833371109612153903559028266601156037229581270463327732687343487258026782843383670639679209183945796730164365098905982594045924344119353579700213540675170108888529574072284130958711826354004195163027422253741273438365688054224924343060351356364423579263035237698783822969230777906343913199188943951636429142067752840787919008518969814977552769435914433677315535985036015900092475004422282317063953489051320410753746310476496300659092960849178668914364553551318449340351491112327299814358580292643463840481571925273747804275086288495667683079311140768468574909173829503264092049325483918290404697563258031142312244723042999077372010320245700467850070891284187183588976075482914080506464684941152046082636703333378069385760237508109355130489292059608403315298594626996284636126700771971849055467375669534975452128128702330082004743175651972633437149935708898971417403287536961032577206263872140024739941124273153899809023662158953810982427743523159175372259783758673088243481840306202542349710359758294463731110615936480942573200833204301217998624935817173789513400563350756746671119960697318304482890176540304326046918278447191124880351507018464506443393672227893035611033487969809110230111932486346812290663497782945177014443763685666261629309567330667835221333929242683112829191850170658338935429182164331733463624137538738596443102341472520036750460493102332576205275567520152179391147523182129725151183697327882493539357224170049282539705373116783690922184847846707095678115634651809310713166858449490672559183300647166883482983293934291547348432221029684918465599048356688992360034819504758440121722995237078882827374853150513230671974426495821747442655081913753665167496614913427091406866348775676181615654842187907226432398865539833744331900322221912689156451856516500240950282849284779290385956424505834369281959766355864048185946577630631507356447409210798159334066395373157450145164423202408728516425811581846033361228811973368374321501935246624998105479918558652742666956697055033659721302449240039179527082824245115051606451278794982295783694047698814740592618464340371945437588998559947287754493754134312405647415238920471030700220023116606990872614819625846569399194310004505071118587769721220384546829123125058078173999424753118702592001821861956688993030055952109626462876954423965798375769828912306071116732381073049934175139176198734247754463949682460762563928662050986323749070882166590359891214825062005246762604558930633344727452206344513533296439031466786056812291289395038488187874162654255771788918693372790631665610762977547352894584033939941790658891609313506124078781787948535656654980425100696550368421274989138484443770037864282972356950779042455483566034506430868832865231701465994868477510814963629068309257683632161882690012977845216312786003099178697157364889882874843055025270755847337809200057716182439965375608254237751925718801831788948091510478519072413649274003259620651244933376336575886754822579349350944099442339550081794656326475996627748001425046910911555218851399148244202763245767069883097146527589773416735166443400280463851403785584751528517043671963910516920218558614403840047863751203297464255822358148887030161498633544387699833556243971671109590329019866810175547134733369819401998634941832585740476322155447714827843492056950559838120823202335196575534438341258710260482583026072401168011219739068300228336287503477349086232457735618211754666002213428763522921543483286517723792737053721307698990757813893333768080334474000628544019888509816964780589887033261564588619717386293077650655241362274667618167002438007814753719218107504860173796788400970236262416911171842146989556355086648294460813345970283617024494227924805941762553093596789312808462278487531065231850656589535232448299141455155514493444279660198913532470974245473054978145192236565117457960339882175225374871824353775077646139521698465499206919490136602546362121459902603905864404915496620745106067230020839708539879979943375134565718690432710735840118205575485734385986573666279469450056899489399001925653734460258341658104475550636765356753099399586616535564361778564767362275615636106713990458648688134531010151796983082891505505255219196909185455797776151176722180146353162513922330156905997637849517312130684673470472248043670630407267265646369248658649479321854938173464667022873758490739903365992525984985367258455980738667370571264572041221211015091478983276887997760285804599986227540123823813099293719809423242617668919266408309832797765146593994623327807636515778705031235662520666430520909282985852157733449948520888510137507329275302501460806911895346275704623276475646210872670909163518804365254292769805929371289439725420623324080756486435428893056233987023001285419237020990168061237036735388592047166321264998804915550172879436134468034837183368024313395646935759127849248143440209950859877622163272672462358085583478351697448165290749813505252587984394383416464232729264238904014382086711498801296838069127481414038412290026033743210898687249965271351751721090808897135118916084645071950016947542134794900005198177250537460904734227438644924969956428138147047101544996950371040037041196597320056181279807404771887130852466198705828792858027256218005521059925740218410951677999017238182885637807477657866119412347340226029458180851864227774050455074229087377873896578018656733284481146296055558115966004749096816235536320124308037170683746557793134489535100528873630554442919121475571034539065495886174722179947773351125582905508178262537335827895953339776424850733205155558765220268857502262174095661455202330329814643667714703603712678839277449821009609587503335711476588974808466850113543460511232083737541230065781089985790291477968854319803555957161669159341250686463665715960232978596614188532050353735429961406924509921645356762884463649643936862114720718994789216384482104158378457845941259503021658143788623836946249225290410278125961528334039011967410484295081702120247403610879442868801662450378935206433885577667599942697345172182033024412366534291737973893392167874206900178926330687345785376743323596222852588870206789715548587590199294931396892498818496630835911293775316384558544087847211353605528794984379309037694778184607132189586635280084061581246186382724371097492885946792752240944281912594391573410741087431599528209149108965614566191288471053363372695263886205117542250899992297543894581312882537127050986120206801336620937102767760591684907246047213875272473848865823146922558444360769647178958997847227527452520444047590716578087697245610406184077796652864556149828824153365938429192935678006651580280940790579645752525015413233925780207725746939126799204002918979648305774215601555100714563516257038013444225097751410589343914995555480714968086020193139874093797130578158852337785216415752159643403300646550739542240808231963651545260048285909221926691169954598544241686317438619988823267513244155363885762872765669597500955985560579612796739347316882402656381043201123927079100582200282419517000558943972100630627647741229086721040579400244772795151085604444722200205456736177451971389128303311783987597358455057873427353238756882960931830947160113616278260390557868931507322093779604662067909004599668856337233280953829549400521522734221589674425559543805459618396977675303400015781962324661199857944816874082461048388855636435186408414589220348685226205336892780764227961465974752965875382033536460939996719420693636387936532509429994734146322054172708641442149177239829496584860261197800499821596286333398257459520649572327980876234916746142062274147008900952984776801148237983292356858725411151836542449296839059363845591741492250986087821449381066947346968710752385166487129630265817799567148384678657889431392805425769547400267719242360766466426036804864697712753344468148083443116084787017349797786513077286129610266403912196138203828237029005295153093612124802678744549444389372646302341728425906701458973875228524339987161469129658505231935143178800137344993689278072738839683845377317453318184032698077297754377191363811877974837652255853746436122633720513632988029449545378458334741089727493379845029762004055611620444222683297864756475995604276460180668084821852986465155168476547772337010918048082958357235047585748096540965533758692241779795361794043341389987528558944676954917119233145885122367775832736729858262752751474084140164059104245054043980422281017556906111812289799325654763021308482451300177432327711501162665296548080975816376436973054176542907045267682073171693499039294231796726827943294689844157154413487614991052430438268422194411140540237922779435537774170518669124331759422049969570890105454026879259416054399751722445142523081561385891178933403304245788844605344476939650482370155782186701001808085488004144966566569070117414476029812547154019050321730979173184985070128717613551272974935574525528126398242778677440378765912356395140751211692128915096985511352687031641999083127458287178033837243030873740527306500703947432838061370377128236717565700250520361357786303796177193834142540449347730959626645541634137696667454048313080027519310334642002610541327260569624059824498923001484876949381057554153530244604361466854378981648910810465930022996899294329514396989604758526960696554144818195511145671516415705779292033508911957838771415390870423345399150726208085578653237585316991252444609852852785365725224148185623292452682137556919243226063304441790421338691122275211178448971724271495077252531743549810461211119585164772188806800732870269625835736484050981798916897932180432656798553385593161824862762280176046390910359778883031658960139201915003792492726220199674481337784207796306691959303141311816638011642716803043277584019569261196701058014499657554025109332674040938344713935201689048764975338027639712425144221270553725542337760976651233661466086854579519940906332663346302123043165396301379102783960376742690702030754489620566628772930236342123164898989217496490842075826907395376061050527943517835656911462013884321347345600530704861269879978820382208237060649625913013557190123378263617666661191094780599343231170773501909726166647915659602254984706352554982208338483675545835519350766623147308947518070120958545322985584258099750131131858876084585865353155568877961327195359693466484019886859925634012265036389251659870160156951190730714139033494588269586925886468920586654751930187188929192443495457748910843043044948169558464435977140929194900778624750926114007665623962101448594246088450716467961030002310949984045336841544963765402650466644483481326807394191831067839870724704530310676781016423080164371858019695318751060464336304654695885549564673471314906908192646889635661525772401303870254745020832396462117472265777097578749240775055032881117079845788476028564701353188540567291460948020781693379546694212189707077770070517865379198519211927111017717457974404832881485913287095212961003164464686634809270762738577274821925484524728192014725245410863241187649364170859618229886610439735354795133581556532227707913973339529625981483413218697061469439185684630456623168076044307009497815610117152301337615188039336940473835054463590485614739278661966891145591341972820197789946808723822562337815225260168635536048040017620556709035219558756943010065142073862187808098671539125046259439934641946303183740009736625669826812452353343862531398077620432359006643844920621586370143949598209649077263710956388807214604820149042044562096864626361346696678780049323723413269411848425948161120461763039014874806536006004941795549000131986418033172526617836933964463036359717507405488980305452849797642146783847009787089615871347363469495409502215653772643254582729899448168007025545649707155862997272457891211474481589765714899144544554813330631448054090173309861754158151032845258081852309269339164657944252495337440515297801717993874402279621782942217672196126239366388969668788626382935032625260814581130141125818066680365042433035718679129575054003481984307888459067463974618989559925482212912704472953624723046687323272526432868350133957618555854083993985900764806464319646431055813582355116728502401081693598771368844618307740867496275082900858208078491629035362747575697617290730583008461527693779647605067152702472700313411692507892336868184033146308791264175781468838438511176367726331415270697961411741225546240833733606068561477179817224453245990711425149777652228640533923173741390416608328460067021070951966501938846993577890627685786492704393608850722897118053479376266731825904542760389523824257763530991741702764326019147681658512997548952540310785506901884247772367603543079448586709047765976489779866346919710146925569163462954153492374602976013506760226743354441120453045171140004385739768583409527950439993071506726822432602786946754677197719894928527779297571909324695766661658927077428287018790520484798307897402810574147822805897909992926331917138167070354415990449106238359009492120117611785578123147368116766887324251789005818647388556459586243915216930530059378906971891295015160276481034275697643677842689806839047523321210714113511128804171561908458716478423676372301315909951854183541071272915278032316443345193283660625697858275387101800443132217748448484669607437930963890360747286035088591746008208318484661529979202186987590444565667715251815708840419306581934833529503192864111144763315153487201737900291542852525570111799240305656796825396568881527442108329967238838121263104123315137565303659305922039932095918913163752688920463483370354082183945490626095741432526833158333038690913626787631162834132516262489384320352979402741730075587685018149871688572674925776439002013726447652407212408836435871888639457134101612152956732544793129626471344283936038982267224749517388270167665076818995076203583175685049783287180711113205791701940262220370032677937909315927667448940373320346940340381570979224473202689558184157545769876008721258578476290831454904556823434757211800584744557010551822804301372737016690886907867613417319346297114439798947256671618892235337082103472292315584226960854299963823184860209148102646287726385608103277688257066322451862456060388686846648110370412704883052335306932200516743057173623477109316375888898069512825309884696313355681311448522532624591858492713355052814315601936717853979953200672765196629093177979670154018235511395001690390754041221285532559580856530065145658485908734725132371258489901509061548083729812396134796476898194295416632507533995887695840639428287646035725419284075632685572378300692550472632747271277579831162574919483595502301949262749845685813535588502063812024407418015559032496588227390203121313229798743197853925349123044502980904562587747371034379645900842259247218319357504726807413603557101874709996889478675620374753949437376131430937830893065090961192563296557523176569259007330345858297995085930604673789571034236649931443207129920770724527709392510138459103313700943402669532133462617992875862495565452514516790881219444450173079210487102379568819461737245369756127694532954161833108482646969633094997699589733414498891859517272151576445712676520064318207790569564126593767159609301701546881864130955150626646732592080468940870195161718365768766388484890630178776129232542153615879727425263646266561442129148066699721967155285467906470672146416445323992719152918106759063840990419043686912048510368023531266112084834898671602651988115555905238890391351959160518953603419049548838836025635534656944773788488257470158849061934048299434000575565831815468126181047411813471608063910242808505562869295331925246250159043013045344133690583820590141216574525665204380966369932410364159131730444533914935151815212061355080219767956575815430978290091987628348600032738428584163493623820077991512200082811934188823638815632364573680858531631441887682395037044527034646302561355687415234855312315216952618431148784305481119467908517157799413918834995061401268306761997370916370962163822734669646226858849156504082092871796331490936612623153660598303421391216161818587899588735404091638293805634779887923822610095587331390786943846502502699219906544973304972486980631055006609784695218621040542693510849915983579244417531005273131724719987460607139737061940811668801457333500296567567041718480095770569534042438079519528823426962790139710306511054935252177138106187878970379681978860049098462847766523658466618339660836050763846962336249827925759002438804476698921073027551354226901820361163711410590982672371234507323396655675207121573601991091111403580553059402731718223930437713223986646062491086893336522313052913466057810405069741928070319778145177752354695831083589450948903790304366414016331062725791555539118555748963209220799446081916899951208293852217995107835642742805819331861724315348073857653983428493398699959674040021391945962715011169820647822876481572343572321101620893143541988422048073782093284055300937900190400978840164726620764576214485496248608454509032395544127789588673503150441749044543052168082460831765588735415024180655699260260459493176936372678800091497456351642801551708486612294820307615560787483909762839563273039497695500288584971027266709303873831510169388421861380611602085420072880119227212603752780398639857668309209549381630768344716700996580942381864395696878358597920566079882327496149801547039693437095983875315416647181604398092959372670277023433447750292232044184303044768501512616124533634942658786575866410746028089667128878060597709310694961158281999182351480390170897308978471392618799872851984103556598205100968951793636444999245580025645174325758465613222812762541743872612110398741833648405361022102436247015966840005625001782849014953175329440133180132702635193370499556481417006896651330465577388548756974740571623266352616451100680423571862971644674453940523873168714005531535165976159859785154127805587674899954483054405991201168031131186418843437393112185494334627222586969443279555218508417015018435110686326612162559559268484279996438507424607971705429864617554776555392664731427676129713195715489022164339892287771068172149274076975903224846145363889942173673487580601478945462876884667679166510815231071608395610599060570320338189403982287359222897903465559955381904433255655042157838757916641304737815856370795806413169352815151129201403142452995205149275715741641309205172467791912409777883448432675513343579068784845487366250195842809713207636674344867930281164054487212098915346473363832735761806337662488604400830398522655770172932092967150252253110658764666080451218434961745056756402735078324844644313201476766735291388712833248279713952858239722505999463134485298676751385382749266194882750425882186807386787298147224091520850828609632266085649205863808239109706493844671981787724238326717774133995541753783964511793633787270770745130809030400469832213798547129191525843970461867123218002288660266936098197584151754274126048429222497866678097237709769196550419325358067093691303757145254884966021838381688359454498640040783346009010867918972301253952794679016211482444314395612933076933760069320849829809633331645031679481257652022196538224172940162247132884378427160901229286373466441454753565325595350675935549369143641819488777934812503475835675192295737635161456740845805548442983312836312840117931682597364354377474739067675391190794990937232449722471182999767818150139354303359124403717747421324421304319870823939443833543948192749457867954128588676392068539854182420835017758771408630965658836573509847349975492844693392920837417845532133254187956978328038450395963879622452062148483609236465195644385231921375183271226834489863033052691880170710223852692924338105682537481540055002561153106055260924536930010401827634705154478183390497404229257495466152684824096628074104485196648724929509097550571984625741567040324477384224849464846213228111178949767702459314596382866467132447800476937225293022620479650578383972020834017271382899578583828971027907848802684409369216216970552326879655392838346944570148423209294798638141424513998241559424838252977058714331903262903338219833617380078139168359434574541024590574879657836848973033172745215415584790875050991402477090471131755208037903744884943935284754303345713230933344720230596424683039268500186567288845102341704430545911458628222401799360647665755511950913579387281615070445339833460342641852778239678574452441884630235659281073782435609665463408121751497689774673124824906006712840508995988574560170481860533390321201769970590374782577471588574066344096622938815048208888544297326469386416781266304100253975007103081420564084640021305217611363025587625691434271658307895103066131482658904909427280894630218202444633602156053645355466965995509466288105542450650507630259776063210162799615978756221609288267351412927323088369563318920298441792261908094921079955265590884607633358211319852481603721729811925010031777810527615243387013735116376335839473105522686376185666080988716495409419524202728606375490484641224926456999583234946978615255475658935758883009347596624111091713147265896377188183023135535828366221714406975852561655401802693673607348983410973354917421582326581490644478753609384490591579388717824679138670501108259083250981375012237598334172183901956964952956329137745796451445662449296973845494175605979182870492666716073523295875235493441280192272561712548254997400493018287548642123857379486300559668068276727308166983291617317917302773756895936777078245914704263720744934648189396443555099539118103274613660980729403543349922832826847649650664956602885278868625514551379477019477140933127359447154344422916482494313903143919351345644644798066077052334116146391281154372526145933547245290612603432759011433427623352512479344151485900461561669208455615913707917310508007929027439535958230143609820322445427712320848101852580719956661980930849229705512348828686857851074807124154329259075478814581781829279493891865739036740146549654618315900026444424981505622322375103279486553482795069327866274902389748339575308063872937603725888229641644768814379805410918118137407970399290768463756937757904505213274051168325198604003458199489557682289743862338826684809287825993144699713367660019217615217325653538385157387187407817632455498907340706584283985709009631642960482942199269455168630122637582066712907720992625684414153660727435790481029621972872763077895992438637356061538406183359037946102358469642117033308834362156297994875077684420351536686580310109420670150168711804720036085438702695401278428757960022330649262227991068660051930189498484875818610589069260675964533236811877612020583841588612092109524214517568454711738117869388813669197067801097008415907145677959404236124240738995046556509282846478136072887632276088815896501105339247177129255177987940809030736874590899693599251083225665419377655276081186097745701734455663005859806695395080647833409783909782452251714377170574739043737130959348821712768404067306369339248978992938829114430462094349815198289876347725230416997210771128213915161876028792049685175260168520489577467527019430912003310826956613901998125156008116498800269276142477917550278672288952722378201590984389590270498335895743549714352615826993921347128737955808437067156738984232769972495542475970531801168778693129974215482906747544435042018664511148190823554286923103113962964207840992703093159844538263382101301074900085209183799979919146664254519767640369541908377500796938390739101691558684339939421934156466913776464724358937988897558997189497607565441841448466398663219984223708731165988603629539967748248766198709768253759190297065651037556722411228298472150174470451437797119058432158888220893258874530279045491830852885703616071639817943451221866255719883109793489425449144296283374536884355118035855676044329802132813249015467651711841981558548081834393266018901095096615706071187489475218761350459235107129444544816310553051164597027256958841946411996977233305502602822823186628790308723260034351051092539475510017036469010141170026021621221513466913090868307491114230302505374394523088670795524669551023039845022923686871731804617976020773494653270550997523011020099088645873499228947708242352030283179678634981544768756901246106576323896420256215501928249571779128969075261872760717870986179645594608896515232683626238056568194802916949708818930537848792499124685856449170206179846203267655121694486203228427253104070617598912500142576802312917547090619275348921790716568583628014978375754275274251112764501152763484960062447968856791747854827230417487286616209870602445291933634638755997020522090043049975929112329372107947634025095880985061598799003592427993291160988187156965098057644327208686599809663404060466479462525313281173880774961591149668492359364777844358621301841017664092189910527655140935032729362569464357242773448046348519414183311558562047857178361524372944569027948618799044385919720309257168769884452924880837028177141980635670097615367795225277401601237970733837361627249512610462155544221466786315229874118557752266846632244730961262603445673378441354152912728911150433218846885149589396081391372112089213077651079833498721504986581599915081339074017986729003102776255026362305348554364687478250636532957185738621972634256013692345344376809781983402509995346086312846172853218810685037576178007187184893101733226230648038990248857449919217259600786050169566692491750353198364597093835706820585656293370989082994834415311322750075980349520178012028195675503468346680369226459485860761875347761879702285494260014789094736752532350089398484688101438864989899463928959316191594115907483785731289482185095166290208614482100622376754103490265571954911683658551250619009898123239976883831683518246747693889746040059419811091190489306805104442149936416780612025968699785741873061400654110569776970609453719579229760778674250194394181598687764634683827479640139191418469431810334780924007022641219988947979172876859049941411948779292411571265620543803093359336903910434880075426704460139033593402367857246500707566752642001146101864548943453461525232718256342034051559987414571107225245733337604284178345402440607717376570965976134731722274197074760685121382453090727456980029542049888420146313577601637302941915143977174789935635667091363685145215194956315902227763617745156086482122114304801830559242797922624004200226954373721292636626294688684357187177559375227573229671897188895697487894596460465660067713110862198515902939637297374793370620657843126936552839413871895411360252316673238505024442146840081736435083333272462720439465621791310465296447925814516431503194103191714120748805860711681636519502614463099374644580655507642523360567247345205582813190689417981107900669491124885296821592896091705646224327606949686469860973171099159597381866599290847881728609908819675020091032027427959016674191329628687214765795875110711483530234714483334358879578466881136939140458855104444115046276496482364844260180814797120172141658559149970634322578396017117315481688986509947161521379218596666426026074365279556502244186850609183348441256282094170374210562321496234511677717867047122948519294205610012319276459588134858873818452030048896319825029874758067565462159131286775163561922750557812906766447586596442286511781154750177287350549296725725764795367557198917036529826910892175430869210863126386333128018542149099888911959733615464185125677299918591660602279306259951926514800564407674323079598625264091150384224855488520261802066781784130114158762922485470189081117354633203979435200329473117856805669591051647600739314992372495961452535650829357844733199246129903246396372547158862642284404213874085934758071846790277233637473270292253675633973345646856118331844896138241582336913352675657648016840854042707331997760865559020115330640324199899240925377946706792329752502731709324349438253741222500118961315150794779176992671723497177840892587782361804778774500156526072216476265667935836818352007234262142836808255376781219659245916492278220097017620400849144155867614140205501684829494365011009553826405076319043428300447604558301838759982122236881526391531495149813262135777445588748055238609842033664875056563154904668475276204671964999914909280918951848610666633506215912296053993338300186762478557715183394487096588629083142569830231554386795346573639189971346570735077776578600574756296410517577892888772771508058886600741891542511839365758447838130850852734006696146258161389648576351022697706698384330927124012571813822619006516236122806846750790452743413211264421513662505923605267888357006401015326768346911869188490415284985848263193292800933047622536990352108727862461041840923073963376972253582686882310099510252181494476652347421445781798048703273224850464526463350877211703880190559161900145044858902785720733219194586259266480622427183242617239553019520052910316101532367203673867194197047565851439404394856816248696188505917699953380882655954098053765068379874295094895017377118230397746566881220383563815701552442981980795445158958048242973573748304378881192363599236931658162565709096089380088005505721832937794024971295003280601564877688428482779536360499375755824227942580777621823443765536396796222804068645619309686032738024555719666534539172022613481918087044046093973775281776770481835750944570952073051359487800893084844052467319204291729673002028604579155423288993184234273831281743799726145833593159831983800362712936108915631368765300668075825445133064310349772741037698077312216189911656627771038222474693969122696334122507610239392753660835353906590597407249768172792311189629259245470652185199931167855666850702562755244333677334340786484679355686047627890099537442846244970928514945629680326343802749580295697890525432464244827339955427087422749663112644146739880328783869812484276217053751900852565921485944448790530447422468471981490639529275101140391143462152910197939184884124407046194304948975836794795835235230797824757432888710646787942697790428871964759497602043417460968327561314573737047853775508744848546498324876919996124256147796821282060339977016823370855393229249636235589030119842330237943705383079463683943994583354116313314330872525244650935233862590619627870891255404706528770255225792469020777644230741772001940778383019945291207908862754348350742094617579882315468453597000517809336160022007822227852856460451191860309318038449611426408638422675515266916332236852815151859639978418263657977778751583689268184337577844020765967131763910969497108920410858037618598691734208691293235087125061030944449052929925085367615748210034563034578901118187558957418597718454148515814713682263898647481480451333313215784019419295460811040019343581590479248603567654652910547976049353242787399052452660824745537984865092573798017032531604383311945448136840585354738895078360690881848583907951096460302166509411319614753349510774497497252868585370557207482256764028464563932985221207398647383243319707965680860479665515393308164599237851072242014944203880542863488387993217763103612273915798724662699944987543996719522278171117274876767223558930321666591266898465791569563135724761895677909353358316121476947077492463252706160374234999095688091923297340993067346254736890448874380564168404121666262297394769494674118547096299023113665813447405158502699497910771086486192515526773520058154525672947394716025984851494818766291067299812353358589746184860037802582620067623399079831438300881310997927078017603745198992304254185088217040566471972138878987318975004414537351304834551276918842464122910008250432002362618105489905992334212361664410839722782279338340971787308194999552282204513274403313382679883855253739174323136800059223232251990459907207690417636260538221223631196495569554923955224722745860235001049607190160876505295215897851610954783963899081720812674265716043265916235142878388785960506524407553648383310378328803670692710057171409623968367330084574749430667160896973789730754864320246280741638308026513162461527204386436566176122400952057752840101170425318874293938067224674846418189875148480734511009733044566224450709711937077609859847676958101840259067247644843076972446269766122378855002490669800653684711246699753319389654340217284361151754386642213591149586031940121216214786664729069044295201574455357116097894495072873307997041741664558833675805720000050701358621223587505924209413773948502398834688650664827578679865323233563041471130362785974029163000267497504853001337335742468258612602743654551402573165503903060767264757683013396680670623395378200960325270616014892563073081138161783850919188683218665936479404716000658312171836009510582933748819417081115790037607259492002779934858758697098063278048828618602578536256574853957853647479907292302870096416093534712737665944283549069664160697531517997019022863877954367520858354785240707840353703947958949710275563551187196886234648141690252844403269772967983728553184064543739171718226571346041769469861424052497905498474324536080575668536831134075939722372212061984869534830372457026117264927066503407151870964260031683379378999145439181661803862147557529345910453370782784924784611198391199110368464888485358065279818446796564697209715515533712767817600598768935440601569246159012500101455014641137594440021279114571367243135497761229047545202582651440829769215018529858012497196670168078208727512802327491656898336471716346951304705167927607986470916226089260662144832966680490792800336615053626720474790822647297683749340780716201664494045717415057093010891692282169139366734099758924394280019767554902405520540941988072088093614280062671075347151798452071181198513024952874420953989105301094896715899357983327239081064221314486328355978356146116172180749425084160040294160255336149981628745971596058885856351860897572801208002382096670264036607662359046544042342373772205756975680186735813408270248147228036063188172563396453060497684863007844624513955172510136935138891993952975518704085032813979926154113434438920896580169653922158117913545920189977763785006024588174424749443402221172154351958575117374966456027001159837898431009602576577763019560583642727054580735734320998835352936866250023722707808313080945158568524344189150460633619336445621534384897398285676911771585980337673351079877091523874750404908454603791773417364383345283636112894925357845781626248333441919875555974140606607910695181493356497623377481725162965338802291842620160774667819299767319702395891025436466850451084962937980711544525570310898039872058443828890662165535012659148799683195481994924722074005869356538872000120041668716810514019215864075581398539938420552174009802952263571644903563371509095302889221724515572912837020390990370052717560012084949488111643830995141040763415822627374724254242773562696314542699746316047014423430042219117292327412648211671729438282863460075957742534361458166291201215792671656607894927227556662369482739790892862787111133188410755818038740387525964373646701146170569420742280683044188654881966299055273133508795648726532072279306980663362164999320692037818742579464830735150087674801891389228518920343379526444231884929606600830794307160734537737108929363807993307790110289206426907789976168464477395292272726523825041857630021911330083083162221961695543122497742979048818162288121326129741463790774844669141988418729857189760446291850527395315091809891567031247369228136107144878112858782826704137338143147291294532967169364968772092590632920716019539697174453937475885927703411675233622900682224290377863719112942360208726229066189365187264119507995306690761329950610480791129710409250000838253185577574716832992262218109618874611874408788575866875983626633726465278539944035879853836203252165143392898406733536987015307411768521291009064749572075433547608424674113369067706230806575495195757957239776743991203513569223170099455232052207355798193909624230608868406579370993994934495888607823796335295752009180708316183346561223067223285756406822766524609372440363772662442291556392696303356140505249688371274901077795387652699356883271393379184154598497524800325559279844192400683313763790641022394048054702831821274730198667319802780926882873735072363405331948893423114848499941875116686623893550443437146880770358933916733227361194482388827022764197885406025965321483240065706241585412258685752744819216573825401051345081200650058448740293641046980489596312480389453929192414829202303300865537425074086662169310968927665219505837669596763772934758935763777060159613994989249003517067014503226018452525665051531432198708817605794719624213650041547024883708013975321999447386809630371457279590394302274685386677860477796743344899923950748219551953896627300024098414953402428041856046702822018587907461283365752368751912294591242823910682808822004237002321913324473159206334720280366673591156846661893463291618501486277839629976897345076491226138985424904695474527735755502309920290281984341207428822112904462462404493375822569814989294291694296358938989508505027353454007800319810174614279604557881267642961171769534636848280010576118276754070406342118454489970372467946499581104057735210452403447258198602717305969353692316183379132566548617774645763424692856955029760727532655023240100805431249860957601865343709696034088690691337760365393383677824533062698122897786035239571832103675517821216964716645531162019492790144484805139603915906569547117519430315130104961546615942334796582165776518294974611066124793809975092947553217161351029440171284706775327430700852268038847649445576880151849622916357419396320923573764721498743071078243595764325468253456843093812926261636692179226800002864452048711556339149746047494386372199592895453171903524397941625885483065133989534850052884620308543888655743304958328461986450699817489638923258996081978368802343988793077368902046445700190903309904641635553763520267111244058259402160886127202477229849232604532468570810818268230652162178414275511376782479363456729923809884440621215779709600210955740190369429205734637167080505976739686156481703226096250793158039148259308388444284640090859664565387909932597871523740036222000248235783006067343150588055777569891095136236034519381720489308773565168030861826764397093999951573492243049099027302704393916474748437259426232444825736039823160792481243608627502550339573530401980373771561312386078196657270245827379212605945613454628181474965914864851166587321883697784485082558845283376996819061360525131203496578317572106540306004793401812292160538347094779975547972015267058003741378681296148828706750360319867991915906907018278094565881882326777433497908984344519929206389131578139867936506520675035540856769525419191637224691145010471868422680797680434738240521503432739084956668927234960000800797845352914047601132752471354560587103194060316318412865147643036395485247632033180813921176420455767819619740540161256468022854394794112384508109639592139469452597111124760596659115228574446606074708140390680730673250224133876711520643529933972284120211236568199330992807855980470755117649428610838980923080729224998326883714231195630903046787591300003654875229974244658626325955536834808483762182124153433180796641453107656311210269978485921192038544383482362572181218324104041734340906301068108563650610408753676418863596862420859362632302910873575290491918698608605625288932930813276806058054435589234255754909251843883792250693432966583192956158790183664197756568941787097381671109383546205617647959554188720831320098100066214223632600786023157598376089620626746251675618423654441412699013287829947266179239362829248635605875617236346314618730719813017032723548779744513743883210251203302248638046070747529895509040498327550505823745270952376350836840410381110379418951288398892319165459960069239660579970012236850305051095412441440791996776373219965785132337605221638906832248063486293658749743148027562828556914127207421080381142903269402454793119481187821885580758631392742067598602921191217636740578500003087338433356083090603239213327037937848019026409731050782845011471041690119533094632992886092254985110923336172430943636314787495300999723689481133095957139937634404975318535693953268361837129103259029411453229128775860525155925817317091659117118815166017756403349464084216428625547143527003850781048565551117075331583985448080870862364165126900982491342034067356815694821506142962623208427683672845305775490657570278959266935226764698776151047925246052634984768375137711429693791495013378742863358822134651042867241971135162677246960790820638811113566367431606885501543459155078656363565718604982391458588406872791240904878759681532141834077975596736672202170256921880161152787376804706031122382557519997922786541326970580237907273402964642460300372341596614716252335439594423288080200810525301587889989715508855479517717325552997354963817872288054620863381755287705565434079651406346680831048948282789818536218800310041294724327879731081766599022320070358251794769223589958382492420313202677421211657542545905514860194857755961724437956227901344702336309834678901573152033662659338264607489610974564290831024385541037413933379008846929099084873194470313286887844758808622143880590172350579732628138454616983171966246468924292728759588389196305815581010951573925161175016849542793468093361741472151437530812134101899010930640444235816985897797483454504931615927470557892369717445760532136251064310989601377170993219463566301747968570176749666312507755597453079342102336756499695255395081732075512671213825800256551547667875071104533474294626759316820011888286594934758855069171955824796550435230077582114956225218989396919011240065732865518209117063340265607439674203463249644350949519977766717694599464596237624088876034256078514771299513375251001220858693835721981508496535436148926941726327697656119710345730434700608637159068847837293105665469114460296876595984842164135458538057184738373513934622331858909125783500679885017650432321053229648907390651203079836286510065742822188100638853581696203864831932666425512092743065105983890660741312436096089863379551930239343068661562268009757769655385849311307716145567467773390370580871497058249752219708955039414678838845208506143499479429506722327334251105461668209821096199584449768806793603889733038718499257029868368930452812587429521567492775050090270073950451933754521058270466787789030408544620577463161230106440386789457656295465125106016134957325078767266543603361448164141574296415475754766497085229645970160058364993618861468085437370809572178828997574617052765832972288121979629629515721906940984024351148443048883221575923775933160267710537673484688478989534618783287145738836759262352307011337637895824485387003650525433599471456719350590022519464068118954691303526795297086770719685754166966906895905523035544187258051460844099568524248893886633927431558838144088225170120922560537130337209840336884734010816153324535080261662876105704785397751711177057702273805852446116809612870833370811035085598768188247849126582336739941474943902418449139747280379994117918101291329514264796501179361552592562874391594989034531213005683777683996097588613736727159552565833970459370175483865727022329398774647028694539813820464201741417110959942902041563355476020742886302064257864338826858378745220469619921116158997208058019902022750499135232597990033671437880545607736824819369774402576314577085686455026901595264732302336568482619531789587013384232109007049153827908374188233414179207679923501539410602083479686083345241331484371002682712847306670237229706743946202521223548934706338517393830901578814234517198704528369185102497082411442000675291652584396089025076233332264578789564839606525125687544353015686980675251940881995669456191332209051084927749425608122639163220812245446612631382935578586365578521271928478502171902093574876060132242701712930475355629967594034516077684721486599703366727541970562790371273931283665584725474935518098705777587957811035315567689906760391693313365031538366591703243890841214732316143437287312776204010728235266721383155586306673391432635373076848150939779715460069445818087670594506675482622037776965261551027952462235050916480772119683496652809638463226913147528895293520579758057157059501324838425670393437651375017968021095840361064909596491423268192832883627226016811312769966599604498290302543921223215339653106524633260427081495124996110387342605005788172977848832828671639335964901385666816392367690021970325040136627816212997237829647043447492028390541378594844553026910202766699240176663748133527278465927440863729615903663460070450781555232548500644524955144724969166480210329718888949138445857041226046751331636119122927873245527166256051189849987776243754221859775751668147519267518173083131097440572580479627180441655289363179971093446965374965308175547606851062808338971372808292165346923056465305591023056212186668977701367726752408121647426892956420610397352933959916649799860675283233186241918809354651240411672758336291645060770768676350917370187053004204356058450321344359351949842258728332566147362389539444537791112036322588894700421916279582870322950030427906136526272196885094919916198096315928233050868714145449294605506126631280878610330229177975181350117334524694027277815522612520700717739500008312402274072286105168609009161725090466574717520994754543957372275883785960299504109426357720988881278735359386770283018424072526400242283649513179770803442177341444259263692192902656358695335335155766851518775067948367908800693075268736796039929609467674212044506566015972654167161937889555495540166612870899535186906601558653963555859055262139374254758130176838810751597746513707614868724119218911293945023291662608611658650657357684223912752855067104944124656783973394900356553796569576773277434975890227306599484781086292115873596437997961969216249375998114989007757837446985303127907197475127441431337512610886379815189897186909025111779237090295172747625439401175208988011204792152503786644395794378479597778670896967496950396301405547383037669717430311490003434153092083666532909331958014963936061833576947592506234952707661250501066285625334770402462772606372667954266847873593608482978285505540724918419155109297738118548462969526556892573294208306933599211959683063802710541805516556648216893096854982885648300755865494169281295295860029152980563314009944115284287930418548375709183839103297171846507148290916448713891490819079323282796163863569569667428688206005652780378084640748340456933458308449526153627926094702103203462076615424166587835154042832880330162186378610056718929623435248963912141235783706058782300340095805343419889417579052488323865698814388930969677857261769026572408560169524941415351554814051757231929315446922411460203215793543389172508270312842600167730192407320100088801389428558284881478166905426074122390949706661067787590330990969286383759370767735280780216871025271369375725621340784763368125830307951681168828669697190551000504861559206460302338904690680112937245457129421004828416930775172305553353898646717342681250748874678222078093141720831937394580242192050096883358480709875508406187586356189393608003753860617785599980221513843896249794485960246425721229051759053602801803305001561260909883099656196914432157650106690331663722744839204634721898218584890358584065136263018567434100721676980715673354268066882222620626941704688632595592532015739134985239990152780692402877528601012927030933693204962513989283091787222608220245275714029484924849543479178884461868872848404192684358367933079746321501330417161261917819484415112947664103514479870454609269941627521105593245782079796981218643007808590209490678113012608267418445710967762347283414333047064571348638189046895553717466617999348890768209691069270995525585836811225435880694382177903129265981038872416236734007082698329655409240124294398627669524134350107957025307527344790414754982865760522747846034947635067402453237949674210542156102971184310514800157581287116126602749247543228910763523154105797593752465020601307332234772379014555473489456794222644627005689796116348740909550844893657849933939780986607040580211376972808078570877567951807632623430453092582443513599450142556002730274595042727617529788574801739168085442266545208859003593609850409873576586438079347597453028271641103091257030492695086564792068376134608657990706590592506694341174644582588684483294500340142066815232312422616401795893799147498053453091169502839082470183437432438841216049214629865378975107659900323365005537319579637312007610263198599207010173012858818592859558100289598936126449977560903414434580948599572908507212053135677185004909100877717927154143723165498772940871463542903201314313162754595389322819976309604348937942399178509208156331528483919990369769662009307700323133305480916894549951559260620226754302015125029170905044011860387081682397464745765472256209247874912969209100418972141330694048134355110530357431932420076413686936497724577028398353529690581968618387180013371396513136875684494653394477544415087960921807335390270719564161529046375050104450181175041668555922212610246049435628333481285318468812939260181608228036348390391302227085801993375095605650231461959599430983480526653207360238433163416123712638843865416685339816947056835038173629350853680206300608160198831606063506505097919149852692464438932675308352813925264227357938486733364318180977524608828079928330268350627143278059227150165640155746657114391525916043962383762887161777736962357995392892676681965048973547140713360227337407573104709910458891769042692167500217525450350630748125611849208090291658943980925863333788728917976747533114100997897313606760867781412453051143252981490864963998896506654413794523750513306216706245661353775647725998530063819513611030022523292207049529672580247714570671227205560167685625404509000931511237671185471192958221130316818815042973637128811083511674523208678621175643542939950001654292889711333245451214169141383731793923207629027374384552734998779000045524844849439599613692161492658687190846717406910222069323047603798327456210221415195987383676536793592327827607859789496632568493386469975421586157043721615950340680616045131494588841006353388193489500288038118873242951325779913613040193693901489161505751499868450230355177685866581677909000213556812268476513431074223271503982450231207317746915570908978304221366327679941854921905483756895568765088542116176619497780589700607458158014046646365685125985483111013467699487360968078330345673514429316191425737100293329732009747810672247369103354405898470129054623295259853505946025362413945768949428986822624697150659746831188743975526352641347186408431765056836447809504235401514344056386149453420439333842908228621539615017224510087449075096057871128609318228686060832064523767157522188639993699368409989459673763628917022878143224717788879333487990834676509343353591576705302398442697658548725249656455849541261128706110578331413145297836556418885859696949122629101281405172193231732790005568047064388931940918904643250925621393180265534136131683950599699905288935569665313322706783125444764072140011801230999643555233663277743784100986892237074397661929035567497411554770519957134926250036940976247667566307785720073318270177860601535000658258193225541123315213390352145600071916025994089050232763260214024791680116959095722373387734016972677937208680732089505912443950662959878291713908790053799875784750853857706332651057685571007106239082000219067537003771798233049610873308025275157373425314174041703342446632816331203776482878382944046627960905431532680841736589933207413818523061213998426343063939489989572164634373102399688146811376038210995214459621619718075311274008258112561842906385608392667728071345177408933140062685115229745933623746508843799656063455394691766093895764351256266830327203964191077510291371601674505626692185329217554490965147360273513655449491390027433946761481914451004295878371676315739797087442916154080235542024900675692475062099425119486423974816088786589988546525312161157214966950926961164086008679633557965548479254090153049044941208474513688716889563189885888741813627342362895463142525380419280854190598845750016298799625648571793444693982142643750226111289959584479883913744918711202647537529329532882171857498947086682621389724779810593246549279634762829868788415673464025483693217646194773521597052052657363832581818854845839559884669117515748587722198946892459725900020359620137500969731349994656408315715374666784627032938988675884186940814847796552549359392090019928576576440800798443526084925420593780843431741459445009123121832944028845421520541619559379916058139044259537540626700815776000290252548152511216189033161740621022361865685740341878628775689931307657491824693364833275740356576468877323037153018063753906009964482514856849795796587925061460298316933053129098757779097951487560581719446292244028093040246504192012680581558807848060627436244314130748469355018948241655345666262762439965801502457067562566963109461385213094454922462883571050246815040775752099729582788613613412524906870742753805705770531584225877398964938385717881728042394373751887637870754082126303364610082541781549420218010003311775415066630521702947756969063580453751256804961357836301261754471185635491415446779789738504481098635560568904413254954464084172037397091195756269706409705047335517351079227334692527258100976461219263887829767963621483864132107661762706853875031941573627466724566878527319392278554388666875712694292875259045559135998663097674610074268146107563131880897009112883871020514625968806581830838045158686666027589117150049265487746498427055285947459710996323167545732496992947842997748061628787217226491098477552389461113423131034363528928027394748652623323316180821534281675510013243717755045216062771165921400160972780580908493630401107369413916347700042494581610850812374299773543679881777747837992196566493726143677700547678022603727991791340948914695489778578389786036911899287377914212931165756874618996612681794566062076893429470372728845569726437361211867451934004978036324943119356842910514305600455695566148742690797061388323697745098576546478320180248220554715282123958291868683221554638639305511113362414710151333191631818132387124937905649111948506891794550268072170812211912902704014655315762288237433183706718479787896569954426543061845766355073918657852787175198463108516148605705100207527663315298608464042483831666790588302543972927851793550014504877626222565734975515591697644287080533533765726557945577219097173548351594705685739988096669946412410604939561262993631327536952515445017859028490431651903980210085939239543606679160865412484765935218344647744252347428219358123775141980372827869496163312138445582279559815001935237118990829899800704763455882283653767346652351790574106193632165617888718348508568353814389615059912918496595617604778362095799944690361073490502008369749465749693470819572575469343784341915981606962942361418798056573283875528446836847407651108244159826177203284486919988365202487668927961839795102277459923204797456786733763725180533206334388385872112517996816895948322790785755360848113023214726870984457101631724215087171437022740495402717523868506047795135418907407699469565360335314010681292930881644621235654108369386679130726762482079879447097416921935586199789518313844522312034302238373752158514126381006625267395184316798938802418733715396406712924306225065363776624421755308008814808573669149612943423584725382348040367006543995465753530075434357144055080678345254508606098283400258994176626932222648093649308719277054597654575738628479432131694745599873518314549220510146267163139504364260030652541151004355227778482704624450862780732580708012454535699319557821112249272530083049823074936048588373314367536821440944220916879070493897448524648229710012088926528010318605916962453465930602703376273697907975463643311124142485868758338949137811752712341892288364357040399663314316447278979360424996512788358587992169256177567792935592157007689292960457570931218263848888133492823089058965110970503889806067678002227315512553542052484719605113119528987592885714959474848362610427976670287467466485729110493651917389748826568723527290050299193919216169774340111698996282250836198966596140636801080630735812730721775185646426720192569698453561457667712621546622322003244086272139441462156594508725275879299555033894812833816767643541162941781588569730073988887772847327282021458026270450283083019494472106577428321277284639356400240635698259070903209606578655212737032786603015851535435176485329713755494631140017050161498411663244924282523957950938834740380763622569809411751338375917568675678874698482682365219602413004671179975825041182219525538221814463909075036531304641430652485221769526318291221044914756852030476316804896663882173900691635002970119841535818770865708011491742312176470017500589079567938853127776367403518623222976319173359721726418940017581255297456519073469735375342686169470765554238837930358211591889366139007561425562832825258589741254753532774706852307741051927515703695919991671761622929889414847112508812227014553855823016814747732653498825805263434346213547661614529912613963815593612826894999462882343503809061642320237908333566548810924926474980682304689726454414803436235899825758111845630872014224749445018152381461316831128455438990317997046487284912329114969215178466130188778382611279440371990158287836589073344956819761617047647851619101850367582173274539320958932469989720916148892365053431415420322964838621077443431884811918184206492685368461127068692174863658158346563901955538726734835161201896278798729313787533333967511735591013537237903334641117636716984976384194350051252043174407366591061775750826200140746574730743873135870709088586057954436218395833166501805104388251511435635229501127851537543512790758911610448980334470488471326778846694849549117456620977260693171098865824375960463251235933507813164793598717240845848258584331596896265693103597615046146579990847534256353539752230563820045582791509844087201014676723533365854024621103978430041170431583812793879561356800080176996444321162714162991329924775755664916431337353814667911475120689316619318999305179966805698650516195110837680956399984497418832178184659646533945348085777537363472832148644971251496768044548994028451233541420513767379069024577042500904564025803366970446145511539721704939319287809756198918876496092327619512728800961067236608188649818473350010391848376149444315749256467909523053907704782372431989109115140910714949091759012149704019201190925799141856099619295391843269022670247309400170931343720473967135760422600130400373510858575222864637027582475966918949064577314445486762388827561089681979679744065616408788378207830205484135420754424430180900828798574500911077181863896175646799171730572330316507661463529924097114235228634648109616567433410299784538762750295815375383212235256166804070180834723780234177221107917421541836312576790843615919053517009303463941930934267149175473511533498743474462487370465849875367074253750653312305675527603889481600536038948975732489949022203256449389454463493550970119998419116382937520476659353554509045170170450193500743160537429688309022527064268119714866706101379276256019509498190194238691288339391937303023487402481727942311457921778748697982274918155094660385801697841752458430496820715408381499458383710670865529923498653854050435753920361889058369547605399940076751785565429247451561793660715427931928563710901268600744263065847107224011612517938519002711699090626700841159036114053274192322448067319597259673961320539168250603613925156467862387155809675908105329534147969608478746769672378807077243468161431368666341911733797372879574143132318691713492804979611316884556789517945159534712790110815051878311701383115984051066077324192049642914108187439119126536641359028350814559576443098610015654580772255702616832223446852885883792639742972613563122592542887838789813228895217653659363071735115709233684909467447395659847342610348788416066713928787959931367355505444693030157921219831529922498509728873059639946842673068363177465535169191354445335895364033667546166244601953569219363677143855707980023155836142389847898996923088016505684896034236546396190796578745505288529701818904920083267706892117730603535936501339126955996660912316621600115380921636483501936736874782847559281540841701573063445042637798486140846290247909526176785837155488814921309499719491507550605588939311968955281108045404430084003134917824139372362954508563394385082440630793873151629483235145186415790299008237398776528558662390207060382374597082301792793873897288318724397706114480203832531060226047549176723212780580597324319980106308990953786771337019603412380001112297394007325229795993104247176522608289526481330993940138166145493368646473751839165684162514981796551094367360048624558991558703210552193280356056638187088973093008196144127509997931010491040267975557400618275462532581327642643985988505653415638724875665327569117086376789425338026372166670110170639911000801643633438395222856372722019507220040369060243719290586742820526653110665718460056443150765340561229220572925779546129351024361530734669848712451780969846202886238162759054973264631569575728300798115513401664774870544942469922995310324247691940115061307081030454116041548779671664045497194801910262955781303534647981135526385140141643224203161378493389055821077752287750820249730611526225370059625919553249326319234562975391018802855743506955679436254632116211475904391192030409163076195504054738756006828699780454654986753538813214975363580849984231791058367390214871910772360371298830558692688281624771715255785931335926042665946023418715483840428407037156659263573531666150700610335736356497415312603854443985868373603105906523324360052508314814591830364745779919262405087297482010199507228935889737726786231548651386034837256460295829037764833240259566742482255846342770454443411974286967981083365819312501741267572404282261759381059673932485504631288237079916871483058346905484080027806103058064088500847559850927224411638146714665687855503554183325999633267041243257749709356408159026809681124980904601499163232349389555801936545232268853854118360882910555545895155538347666706834472129533420090029703170633760534453252478341779480341839030314808954645549031891932204785272160763932030728948575032996500305324947040601530626664964103560088843757861968670422290211487081504420637179077201720940414020319633193040249176013857687237642490632136345561204698782020882082320652537498716501708414261340097562783134483265457065173554867838435960075844120908718862504158141655867727162579420357934962452451290964424484232169348001719177277440060919667022048790432542743957601649451244275698860442383230497386879575035706069421457673355422353433849061361955103558476836777059904815551296098871891188406673387066580930071564005659777346518831229887145245574131811586406158928616461234485000444260081690471829082750215661084025942804839995744169668640428899716194421096529273518398048553374616475263180397055859706161149800329325828195830488891826580906378384070650247066592639368934812774934341306015868912204791733864978902307058697797192154818767340447119792619356698515441960562111233877986754772033975369118005866329794101382859103775712328471554607579312055047264077760983285505488375002574155771289347944130861672825119033668078970392171025889040615203294329938650471741436122728649084182102265182566184284709810421453810905157818024115560241227113116819573564048320324275171594313856183364913025997217623617227274263382914297110910105079525091404375724606557915872436420277728915401937890267205303160615984837558165778403898152133829971685967568978831091979918390076157268369818154116436327586402188058547128190997185954936959598572016298345958013016081175317348571200776006221706312119948277948165577979321458671290481406332865603675205539168393781341947283099852474658569082185279154136295824147740290335839830451936647877332620748298860836087855288870600881020386271088291913163321152753855263462615556848926586940739339980347584024619589804113127451764332538322157057535649708674472983656348230202715645768771853599563341440999552565988661001625371712757813511835282412481098202394875387069913590185755157917717638657003917665562389705712126003017266361073569854019969968431228356089369454778760857634640896149523144872941000551759444520484909545923979145584714098215082590088130055104009432693199850619134691794310528135952806784844905063592313327528597410424178410561109830128796220243139022973494285637326486886141737043162026439361526360684568019863018937053642435029280978044025461229417271727201622469683944081276848820893595634435008007614640691562697415444788381973214371501558603838922468369537088865942518021248311739920113977962054522126370451048179053319937760636886478567052039574600405724417673089367525937060222582144633559702920783506207044576766088006248377799538644524737974491356559598576490868333509453609896805071380300738483271040818608479551665102341800581710408416227390896659408267210552417176788900189114631618510287717773132820748441350551531958788598833892490319299621138292230054410066273861903116262043139910709825093619262732035004558668283185297199501063217951362214305192864831951449876040058014700179475118444759046456132253184634788187721269039854767054623670004354536179676600063828216852012872524814990276414261531625382055314189424797442177331759734284384451038391598535195178482707485250179136243972731933861119916049654881137040453995175161992979868132582131982525824472267834770814110634760263122244915562076816353042660916814430591529941369861615133550825446277177031991684081585030167470289842685238963964377601043751074383101702054566741782710974628135303683974068243331985375367428761004170697819373088184728638962581744063860680947985523719088986122365437994090559313385682213154103621126183233995342524653298753059060803753533657634707694688778323725506591015580079814602827993844715169420170272126794286084969745017469710042338061768055374810521151081711638229047460650110263988252383669102960587342125150327597641024234948722441590523179834924656179710451756971534338018357758791786927266334708136232229623458894322477717604437078900891798794116468205751339534847078709028027397594576514371586410986884810778172754734693634040303772629598633746937013615486187790043870101376564444277449709681729907361740200130248689871826402230351909370989938925322560751240950142859986891370752906906011071068501681278619006874721388320236438728776227699823835662701485591038640765708746502201819136784526941810846041762474412177162659603815430810954506793191966241533513702860196225979809499886685603004004382618149588292164607009851610920228657938019370880600420009468626807428412099559536732197959846270236466896113370250990104943695707416294296214171593103513069704293690848368443489006448974273069044378351667333337321395955366622070253578924744129195425822692139465826523415542729805859417289442722128959276437045765913411597317042773331364081533004765035515567547069236394915510676843264563966009666598529340361392052869354971389216706001163396258368916702049940824904691421444367179808861346301405675299325604128028583170034307471986619084665952951887338123640512192961041534264209952905491508900426663326925798778232961698624188178261599676334121802380685952985696955653690178694324266963727623769801988613925302766306115038338150760501235745514721335566936067312817839362861704069326192789276207964954135318982637129903331422893660075548215344316384082189731214990798880030904791344633200366479841880164099650193984304518269555796232008693770321467639983985535061533469879879136069111254181631456279954243269305137506607424535396897240487316023352682394538106028633692499920738715461745586750345534374763562327251544462075719046559276245882861296617557151275478821046198272164635757972069327529539192114479072213153137562572997577661884434802409616193054272968916968612317845927356495422405663939375763260257355357999910658276705633955247999543210712080823226033859654310395436749183464248650473625942780727129279068912144391668862624156818398478270843085464189104818209766546277087333596188498552929459601769638311095769957722477872463854590380026997583237735641726355604066272144771024496850307136082669213651024737457535171208125117798766901699949782914093363621600013155646506398302570057855504879267551249936953290732168490388230337005492464989925039450214430065590065989062903837636159097384660399099957102454139282745898406041788613261497702651785419329763128889217978861518832231670535685240836828091250924572724575090075641256381496143993890535574620296022642444530686457004249417754213214267266289339991215571520863947094022411213528835821949628644429798713770722585932088612586198752310891031791142311644007991908646530588690511908255398495828478476366031478198294379035331748145214433553278045764073926713947407557990618868698331760496337946535310814399409597922478662527010503544843735478475197819632507577039697344199897790883902694305205466696010428277947323343452502213539252571355312573735663450888895008801939415685399400318476836162171536396648986255556567327946484095192587969082823960364851846869878191279067254837936808318771343614522239655202570946448853645571058870701692181463986351506048350456937281500311055396882385675108491443019750957368366676501775070562658979615517842273347175387764571558102151941912526173467802563646441266798256162896677371596922810038052960244148940276805103746817195607025128035948548430649920195430224086894863972370492444368282311815333320025261963596763531350420348250913287992247028034595807410246693827300232327789960360636980524421417242732426313396093565222824876255805659708933364525747562267229234940961142421956728661517613405022104064525550726045411662970426387017113055595638081368759183565847256360963400117972836323879300462760992393152697353913934766143155233303684471998846947220450710164547842183285870360823869308348189273026034426836325610393736578115113315382347048684755191901679596665129095965908971554607835098122440177992874539459190336413718084511421799942840442792601211448484194377098367796061844403258755700778764816647062541164142069702069817723983250342305644920538988379438819508985461620644879930789109401613635951865733555438759100895013286879415074864849433031841555913514539772510660964481561729283445538082864579351053272015705807031745353121290894693956855273891830574941183065867460855813617395579847967760012647878624066044522175844893352461246676915540006464908471755031928752872036608781561089051094938028038752254557968895153564505065527103032318618964851127690740944477911311631422427479881126074526174206313523414417374277820631624028766318096807011298480906506840716862217022829380867323613290582213108281133197668336048215627168251953891496296579794325361095292941195459346584975537591561852508401680560801547166784004404552135598253602463698598473103704178417736767123376983495752962153215997440335584820172714826133329304393816522981751147854583271498565359472900938775658848397467018111940499144945327805870033997824487497255422208547630965387008643496919402417848299174105007851343773047522119596835281645806899981413541946957632052481323820978063890330909347463814456238966716849288230659124603897020763221032308666047795787120392119140006794283302037003830512221139458538900703712777040400605168189271793628787929596099910355643948126246608057955434505502235235060456099867359425157489122902382394042804586233414893317712427133645596899323891712818185827497720430227585205383207780582576171248061278221851294331390202890018761030734516620373322747816673685988574631240369647981150976909247857658497853491018052011879824420367603344185708244505000347053042106434014100161308072279396339024543653414191036321412327260103280166469520797296364540439858664252489405538969976185881377966401997578472676102354554580752306966250189442607687076903699932485775977497035867242652686666669202592827365650941312554623005541541044592918132261854872318469322412441993557559609254611803309623764391894335539260307516836963476441338390438584641796331981777821717355182961919346217603018872977039706918101652509792079395568695571533112463410688729802557392974784085500681981071794629292990026826410230341642334027195467549995007835472261810261055149965016869389966571205889128123838577149112940240907251300340410836339874582599595287002165496497364161594436616920217525078059971704409525029339400077042076601090715236462611321716492021382567214165942135663768315365039105875518717174393109658346652394290540451137256533318987022694493669906420510131524021150107991330904882509779698495377319971130269468268227383340932286577381483713318732873268548304218100346471384785829864249662766466135729187389486382280927279530150308498511081402486801249612248225848552487098928708856941654624396160408765814088080517175650355603960002846993205649539110726938871239018752887442198062324067456601250695902380480939656209707532428169189536144781994867277589225722258347166080841467760400800487092743555010559251872762536659123094414600232961695036241161299246349376355707696433903665140879700107923355093448984352156118719326626080675488006087535945161735269306097137492334248072607055625000633802207456584537261487580357849767613567790702745131675330593417523451967269494181908741817908585812209924962054034747395007055590990431191777266042132322780051706957091228894870712923827307011373157357771699023292782735886148702936664589062169407436992912643046269001156936982357687103044022166543050004557426431117387285333303111229151409895148388377130179969893379518714664501696495207060272535058142342071813117981166472728560555705501660588410526518380785991290613534600849136369532663565563660518523593878172799843358970707541667730473649298230215798491778865613278132133920274220430970464982936923287735246924326692069088152073302547654635326568610043462402569776885120328825132965478574165188901666421841016933081101763152796404371748461845044430590752836363382505258891905240804077482774282820020296947972617215939659312561145489524583031215593488722035326064527565378639347309054349711275385780433674315221564495525910201742080010497199412449224504467980337271803060558812011726634058447888852946381223773487311602754586939092447020875146631883788454892947889219504037191159966392436158753821985261609334947147074941783127129246078329919662012753422973934018683876264715279646930621046985388540012907346055104442721874396933610329183242724422076663552558773897020638246286699783409155089080873475163011126012213818876652800166967802839451106574918596376958553777751690526665216983850846222942399098942774562788293656679338792198542380937920518371620233785535536673700553793280328112555113213387831350329592319354979003405572994226866439621319834881922070390976948841742789779011923418731218126472006208096142016766698010419518449481731714421866067754695983199984978428651700421811605105837626337730154980339042723248185586704957814005050865114080247083443951954382493232393906418706375414232478198963694164817891919484190076782909138437893446414829835025305504133262503891012804925451469748452998637942899819564442493773327123220859894765153502150046359822331026306399910314647295668231580062219466852947878220284718317484562130923616672087867447475603097399302590329647908658845843999709441331400018492244962069024678151361768508725959774747379287091879459149901788589021235168808821095968993325100180054972126875601918345169003329082392344696668293774856172521155609290709412587988495447770422816830857169509639229584773249950834006282310871537697765007947035929397290133083270350882187176572656938554907052479954572219895938259488310347461585575619578657104177168546449139991931198108705245278945122882817811929097058549551942421971432193515209727498439531309764956654339346876507232916868390143935903175373633893955736812376346375917683902977400239544095571426284436392953736713885732648979472879056050255405528473743118177609134420975148374190227509024536914550967404610227150277591815857832380848661076389329148087834808354687637583088822916520133532911447438563561405577477969679348572549060871324581136782019946025938453957529474888255989720578328751463601158759469804486787237890413529603481457416926717945408290815027357554972121495926397760439790299083367129421884081603566933445445349055377253083639843124995077408407713137309576442212447410064062859389814655153486108220025366660402855225886319025258923478677579659777917499554847471567987993118228871670576823210421163313864604679922007068828082342685032326674151404579409273847986428290256756867388906178085107113119111610472517729449893631043179804305057185688349269711034115848905698701341281498609649700464534010795981739271636620034766752303865753450261422158132831632133958716983214638941308471473845518946375226609125530289030597297007464612033547687097194078677036124616621670423161191176778499133554851153697383911028903400378661330897518564449017613247332572041882871805386457497170675736436889615882232746181772321970945678557842431472378502078392400172131135124502940582579000087838291860983429701167849826391779797802271492900850154380574691765130360511252832223009221845431687902093955210473753008139237268214532276705388919617336468321314175682064952916584636968823034529248660397910475191682825007506948766666572464027162817939857672059185509126479866452147988111291066690931156303089188173284973954855818308009532235242661576992940960833608344643104494790548609373587916116974597689831355569779985913558023644753205549198666416323169324885643103793800358716897219455848519612674391079536708847844719210220544995056203923151038541410529067660935107136897095580470937303871218086603686886526871132994216957435602308988820726667802320485448321522229283177269932036649672508042329008163572031222751564994674713449660851232079066941721503824640429396164640241695073480061388313187954025918628214091781868965019812068480378617047277377837303111694758741683205462158383602618362590402800445610121987339815582499396970862879223285168555026392209451142983051698431588012352674321150928017697990116807409670927192559599639196014505359958254399059317641651180279940797837938653183672277565355383403842053624556400957880535299824285942136948090049751416102156481373561006098107191706862561833590411548592301999561734591263347323056776760427276697356919415195438814613756565183444603140710013244094156041963006768062227448452664453117311158367937128410429418416677251171507762509506369463547153420659472780328745410361387633458231144822431533042972101533719282077452888814257806651234816886308562885495521818782538870054828830545534867788982002472810231807213858051676212971634612665283223582228536760178080945523789815741370245922152366535582942985776418854114651084186527814042318491761478303314097911510445672881643724791876284712924926478708628563121489956753192885348486618852506562797540455149779470935924898948954030667220559583996160621400378935190526589840137834034285886515598230212008893056226375364497980348995246769958799657510493208423648743312968750299794883775682285103927712371078794152951354719588620308503554706973181033471736329176976153585004782505585439963610744192233849483213036402804458103531051891430642083092646758557691086704396128191640737651137230536762842365496810814483987754865856541411730539072080425037862599624422557917442105471248395098136342125835333751317794262639748023720348294016485864608613255523341071794864044805245465655882313939949596594775300081749107283551989420267597501343175582451247600206315727814065353417908091934276202654472170403008772972692355080278866460693455286154982672279247148196954822775372205886754095635830290237887916894360714918735561127200688336912167554026177981371494883857233053578321941912124967909339923616926679957279504324510283276498117650938854632790935919671085769919575072201089635184962560870763296352220576454094426612737807440692830825652679087743811651616206808705694430961378454881457388579432447971963900435410356288523580693533752034282939650138600029361844316703401471868499205063844376495529262557866699380531236402481519223501765006154346909792416617736292743562052787594125644736354685520791458010075396275687567353572095326168254237293280147621229921115215681691301914693187195834797548089005157806482568633163727339284913751291764747168995764112921159913610602090088435711334652206632621862388917176735739221067239975847160894978122619496056212583857206161570875412799852769660275982801069943128523486883505642800359519497075071550987301759377955918548112044451339360080574068032625211484814506630237350283138896729974156632298141528191384663576014047908639044464163751673522276046734324338247160292167969865466633233265162500683715581149772306861459340926832907484195060570493211767459945033866784619290250810662521850451129716382910804907438100017700557345204748377465968603745484032019342125596148700885752353836386891571857798386361829419378786054289078256170565016721410752694819320779984665354387420159624756594125241723453913261417764685681611458738510418234868486498430688589220010797795813596984410473316386807666422252185822361810302293304687438627127398793396907556788095256519033440392673070489276748092873754164418091839261396886815844672006916036848873140755166395716224387648517995729402819179570176329519593129997390533790228832443786308280659560910310420938334527546371699329205783069882897420679614302815526388621422609176032684346356868390530792677408697649311626484568770891942794458427342645028672770008121318332926743385704693462298572906666432976903002767237908121690293728516327903258994667818292991765435367970683678012625218507359793189284809199232112543313340505798904560342408115285452244359730919735335439242409678466278339551504861657873014065662383966105167869350775626028039980323570008852826746998451581011694476691590796588176109942732126824337808085222534799504000421389489921205384710617226012675191328467889554161927795830754377041166469087577802723056602826195548365356693508422681186621876611722008198687259243760487052112133401129230798431760872857483029730914512354939066878990010916118320981888081971835187359934678173993025870335422922334730723186601333856581137914106460853479090034718868284491558250625165541301651996022483005704745018685769191178965614928010829648845260863007696887097898896370260124851880136748249220570150268301409066663257043446777960640397048960650711816534734915034776479454006185992755674107470192063451699786448131309192185046804838447284290947201106143044243830670702713671155412200735000961897081236531004041167972708898750582151158126021686186639122676822800245759545144898930424145463720011375902775806137459098089746398342150226290407222915409765141855480501071207470633395638456986623011366082622357276351480845416479634119624746952074404044753458632358901116455789865685564534962853600955613351762923192240773936494686547235856825161322510580031353951938497410393109710808005345486728605358808192640524084266390857364356554301694147839033864705293571211449223496031234758478965263052169209164972631034472770653299427673372626958264041036043724935743548757493414778529652513654976425705955701981986332607611094816923010098139915026611817836671996125168521908986294023665338347877841170445803152930382690995356951031692282227099095585367335796779119280090867329534260018229676176971563399261059929934691425074097154251640544476554766370952276586016986882633898788913868624568982793585370364266348218019874315474432893995421393996149489174610752962982552967978461715626606782936985162265177011833871800953193773588255802163668778619434849137594458368242428918573588594418794070329191275682625667957933447389772113524581027053531497374409699136056505200057050694639286612678664664088326663307673377595041714949687934356424238849485562862740237457199841633147434505259839886906383478241246409824409273833733954925057849039246955215484557997182671582704849276988787330652417427552795243418626614203875607020133274658530998935244109687738168483884065540747085072372806419169646152812622336240580594387658717979598827996153252394327472786835433249581966975638128514035937435063300144565195039835189018450006201501606199921726543953603689715193509925533752374530832611049185582657903905348827145591754006973005513049788419085832595854179818199257044187989386848844092104747666456393909651825678701619582341528634368559938043092784082614577951499410944315130584412412345154824586576150971184937348942867538264856656928484210328257100535725769697988458914303516687646530263170073218954114182720767863909240206215935409117351235003055411164268215498190349383424238655079771927660570548415543432739950046563091481942384480302189940258128891769025908837433570956740961650055510426369265267974463105006412925411402683173829407407079586590398133457048072785989384727007506666057947569058150919635393640757603526817289755712097479538932227550875903107159500763374614155716164038160427329650039998482988814472199930623680994060514625847486359595356460645473852509141645456369675281630042281501149799842839807686819679322429988923594792919315237183758874370222915342200845589155483347801262855051790139315267036227036222153894664552733484414660697354675440412364393471718618832757162616994072155212298952916377142996339640652706422253944419763333365331555827410183084368969977655599781131698553944391340545034525315078229402101987284656588209734962177411597233623143689578812639612086213452392886346527378644171472910877812956676661860649669977113518589942586042943504419316176011632256952869839171515597881037253792568888016107882438185292300180109665888646271972131345287743486256799488741724390616319921170611976080880790082411864826372343275524705126349570471814053700572122433311149344351301656302757215045535013755678075951446194335906359902103243794214228763538011792400539615153419772375122707020238785944146657801271773338888429752344517905626697605017981435685096143272794445531647661858448981594113669424339929447314997965359637944015184627920351427781634840486374268906256228339421328307971666636372099201169766378133936039483717096577181157407608876410244434248322735518014525460241855745798185282107963087280133190267961673079746555224837699901364869900936801563657889100066000336394475069644190934154945646285872944354712444685527345044641628053347014956833297039592369258910253759435267857747777969368430717951762979653506087623253404487195287255694681967276315535368239055974017624818888235118850557386117706708493637993013078266629950636047818609597630245704838367500664513922621592879838538466069971627493547023920187526003555779728871461303456140219407637999875442800276596052312967214423018800465113515610283826435397906866771960494946097235504454004200312892877153018328565089706925519038831563646558400028084080870363842979170733543868244748103921517017825833552200322697830846036147514373946932802519395786561186208557826541459669173508215864143295309141625295512799717659703780092033407165713038659750335199688370614310889586337744032976818457522537061212191539831228074276971324502014590796980536528893357976934469458260053034988466593315820897320988470846564035581318741263874325727540080680242781531386347183936407313392564554371708778696738111507677704809139172603120904977902812944832833688331247178754435552295578409543082599265357244256145569797297608971029012835414280283117073897767871191165128750659600653205062239241941010323201326096079836772181031476035428943918228668054894421107634489039273468879347686310436497743958688547566969569851252583110572242274813288901652017468998658370936040868046604366154039750285530181070874120653605086164971540765989889025163682207936863998898718716781155694905394998373856452645160737317882203392403212991352097379794153532148238185553425914202808971100457549675032825099228968158913394959354144305348337544718580827041383541023156565408492667948577145309570093089551379271849997467878038965174431470561923670181267689849005025856964797230864331665342603249172136973161627890952810220097723572118378614228967803294231132440141644084862145179642166355474988488661018919021987786160376424435539706358179854210162048072806489415397373904288879741734090688827950379031453928557960641624977036243735940288931225427127406809867423686569490970915949248445080415319287982715038763518126787619503713584119460507783161474940828847088132008160401340486019855239697242150281373921066454654359227385501008407612109709972138455814884238316158264286250970049181390404150726074761866326304836558577341220526360077684093378708572535492622217114940369954370017180274224375026051185021605004314532244994589933451997218333774630644864611926628758691606563691964624811393742518132452771868016387538578730336918913835394996650931329512451838333042528159580479829590905714204892456604780121990003448269239262685315123526936649292508110409468737145217335982999540996948593703707771871224896233212118190381186578649587282032327972117397009780565234318171845181242350339059311838858205518957169325850807508029069496047034413430091066358047871272539418491908232464583870670831627207173924016834847812582715968898830097269381893708680855000197333500466580320672553612883664593017803420456590671883859123074462953855159206793529039540191388562027724328434229420513018234594581015073303409291793642377590215237709868061056709509614447222980673038313410327616076211749041040251387115162397778679084424288457779208902625576998488220758650160521484787208752966156264986436676549888344735475770510907091011990956845834126392381081282000565941620600753119177051953761543912247340967554494666451149845865506483254754112560113454810628847425339754114111060117678904962758687452857540542568309516436731182578127489962499846832497533964573953581454154213338611233166045292137658049033751627676556092057939295169971711194370033694967179960443744216024859527991750745334107263685116836399509929887357444238117931847952821022845735473707631902894624232648120221808348074776611754148875867944912036159765853932392690240044430064307194573802258385508791561459031563950557027685518090195462442539499125752836106379213096697686556577341210298973634750349188490429204312745765696210332181491990084518011149445153555827929101956984571044844724474004040451013000361134453973568213441320887627375301998245524616144722328155696348997305328337422131136675532208152285942225043631902340073865709482922572798890411187194274304541532833783759331289796338349522736238321315951130885419031878395063242097249570262541075682422802209994045153505142760827257302614506822031812792595371094697499348595304321675589694882466743618608252111279929569957998807914283063276611039729506472985437319651194102852354028088033234610555827362161936487518050094669334240386962662228096529422805713377058969767417726131138644764112887477384167861598997266339578683121395325973544108833043092359947035404099979658809092843288249167422917237278812327371889258840853080666458876272123480516834305386084423093082397708173340043338397484506092552166890256286106010138234293173945264725724649338873889066743999795340995789699465116661846541273301088804488352008259116282627815238238532028153562790885530772063939000466814612110116217957777227469727311344528215262213280057409099541239412337149117854390850863316784832353824433850790229380384464752259495570209698879268166337680530681665375559972181678262414368126415248280610138583398370114289789585335307769241114376156952354173191124348072264620711437613917022540375856905900518440423564838664009066714469620829525898067927717104706723680541294017761479476906366360606584166126802504675845841936166792968643753200667269139986479826534549055896805134640946101948432018097316555941149334478590360860903877469690569829147557171718946978107701721742691922695559230307762024831484027709232942665437376401363086226625073788892556929644304536318624510141810462686492345998022562476005104538824241462401363618323071131842564282202328157157045962771330497003286407666832700614740538802537827873223549858048780213107598279573571366397744181363874796067655841044018774304331311162223258504084135579424595182584713799414768715069674714576338551565082338112440390238747354684509664347233512559508179344707374982900749355563077726554899160946693291453510476386628876701301158960148602512279247890071224623398189340651246076527856380580147580638388420484891547295546334495116509245407647995882407579159920915269332887407499525964265438893724355985598418613736427437133475158273787711069241048672317132651883426275408394922411814784615570830479755215971281087669684720206904820902501416072241553976937632586245896051584050506472671600243132959370982836589049005712673682625383777220090076158328350954794399555353683849623802846496595437458476586378764520569956394815144036163758793506383632904608897468691872274096836773926798598235287065969711365288322965441800237105999678625927327751465733679138813300043325508488744861672577618808581548342021462706992090659054236027311909571695621140485862692747847944212493311216038122778282858284584326131979346780726592173328018708854078861255080293179755946652057283140837391424695266110451348687105159560651295013541660930931359084159278968491416743888852260747247862483137348509042467549756230132945267783532464356839863049540860330670316098911355081433152479187987325522983091593258648082153206437468570787576431837437316437792650176854955356977508705710963294203982696864232115636555253003274502057315199629101801907895140458823434481404106018614162275538016934301209446003390376510181145028104969358582265824449647616265781147202197354812845841748214764357529813512417396002054060232379975081413820621414711955860202631111124483074270176861549529677730846101191922912940488630397799389160433256776408519981149045692682635454721640883422722160140074766809487845957979731616333667944017325693739411708040199165774579823130956072369613005604956197866306465670040297039667025352356971174633114028561254612002022022766567146891810740212893996521445981240361306949649082856176832463808546379753696014704578508524734200738985630243908975901536188855161102371705916226310787340598587844255573111299754217189539303408847268367347150480414528136410337232365162134859690740244316743340056250614821729087008091580398450001742733908645534857194458478090597162480754361277463526244535279558126881886500950397118160410157080367652638004310510834684124021200884407821341078354613913844703986821312702051852308809752123035552356000203602414913248761983974594725154147559013147128242502594779747962360552379041768509909589990625633791070590084218958652062687408551691891704375837323367554290770963530476931940618229642123579914327443174715049197124770880627738509264885842839542770070810730034012088495925631445543376955476485716230842032177432032578891942294419255728155847398783307555893147471587823660834542650573463638522439284462083128149819251511046604261655244999364679155860272217644161022856511416872376031818263284003693449241453045627016755037709014475417950143404685042203632719956393852522474812067107123860528265561675660741048309480771647361704930858665403349247921691051121591560939502902833316150435198979029190006291693939269282446477192008835471630945086428726596221859075280860819069036713043414687718148151398243489934834146373553290354332206685365041604807401002676879575568092640845184273726595533006253712139193177713121427601794680365348155977033252861214189241870672190927089410995062396471376983642155177945746197930169973800900777108999141696661177375976494407977037354158602644003664594741380053190671730143239741451332986729663701325960222452180250514424157244926097982240699154209298732726818450283774084170324593086790795109884548678948102830092433596431855008337435630842803759518443369558105134766487201826518292272761697772961943897567403019918772507942161178827882487987179294349389139027522142336375798797947630547463468559231326477520244771986392161775959281729230135809530887261469145894104421304956306225182428758823966690804422208914312396950314208581983967430613333619041539539072025143098079870986789064586001902018032497486410296512153783887180568577873587566620796399980138200534372558173288789799122945544989412020495963120815076629479697680369143631045195650549531495568888078083825923461653314423810809766211995017459146732109209161524352271951281084494130317274049900344125935785071206810644625743266468389490766503368041923979087150676310029326463384438556134893552592515928677133188050613085087656792512321208608267166278312382172225037947504910747127651328018295799402149024832433216751630099186607236585206139529606326622699179929346566526580690968707770427844436809320489408587446970322122419106506224671485863532859423412000474946223126816603061244046639326157388267592809309595726934653696852784097523479457028860196010254460388313514862554284703834393775630700806702517424614442091306802547814126829178283276602402435056619175839215526716524238806031276633738575585999143240019932292374790898468251948905712805784206451240020405920992920146953987111587048789831628304619337426561662272125549007574898332290134871280187069439605075548506114472393140183913707280958502622662470033503558199704037888976886684322038210177774292435241547809634820188341264071358627154053379929719223292073836666714491771334729737961195754126895737304285767063295924125273000346077390791130211833003942749650431336380867040043925106563473812495945162513340030133361856997137443635796406737544382105508709652438753612143756402395757131846477396897214693460474606444133743925110801124273285696999613235061672439519576945650333057087444504599985987799842139365689630472286416476960193695184928771816806847606571150070557627483305675899924923801664645630115306082273770074366585427419719768121821453288321538335119500023897445568415410834213043954357296619554981605426374387842670240906412548648608784772614565717637260747464261373743055420120001786174990962710374551703479112320729958850282258336204054752833684441883112056480153539020773256048190370234060655831158356658700944114308160861962293512647593816294803772849780456508846545551985518150810985685990670582274730552513446087312733310347304315268743909859610181685055707880985188662866595016968516053562197599103006954282759264976685553700267410829647000671949622626415471120402143707190888629864930675405425300057624857592383883214347672059705329729162782051164389086007537383042848256402143838449558330613187828815247103297682489863082714579027829212972322511087447317795283074584180652654061993998814262763695699878091360332876907592473947736460309518977792853601339368967319524114019460889361661212529079013350586107525738586240222946606917824775778771151500216570719180699958996868033162964409865247712778775702096299181519968937295897005669192670623984172474812715280768502425418557382423265045394612704990984264644525994737914600086662269136736694854098418375237438318847812168157763220801836870429695460907060857254610056638941163618043091136222575476195304036286037401096723278298267604557501230859993306977692789138992447489651630795869524936520190673040770556257936950299524723333570194095422107378862238137800603092172725049900717629739033920918421220429826248714078168512209715496384387741017959026572171902393573128002460897879220675583265319910851484585937567410099335577027317531728543275506760962083023852952126663453994757016099172620217523154409221123545544931955496757987919027350700766283469539199341849708488079091103978054826049531018625438234983911052525713253078443222652273574819321608667992232334312440996667838078678776272145685614414233007174060054488987225862857716903463589438352498023330000582663285248810150095109339093967533871007952837141159779797824112566399305767882193395754957593621538136072332960217444292794514414635728412003894010183042580359859787167671669573825317919925806617922103630309251609316419930077560861637222043559908899244190516577588970150727505597143535472550693219125390416301952100584591977396388955779990757962607918186971041338583924733158754438143147373282692340370300792184522644280190622260469161510438414841678283472118053247495217830061755415687952256745822320110531116767611564524795931964965020383507922320912524846517602329512324607523966679068348975551995796987541029517614949754194394508851195688084694900193643448580168701311317279424473529139745886437625747149654231564557715411620432264821426052230910100678844035803574103964751928375553570218063211325931651567776148849632277659536398466630856475209332889950686749767405935498756450603761560840186333060549305583745065181525424086676021880752222447838870317827756242767231933253849977787535629995976843655821257857642148737389126685242180450570559360777078484872536092944887670878937798559608600397954021960179466372326611851910939067369246851101263907964321796589403303832672876109147667101669917610618834252329647273170886200927195529253008575259095857204539855597674199060694070910927533951552850308847494883271897639221560234976685047710120897586234237990938279237966232193764553060411450803122778817430822756636478295652401150466954104550399163789598965900635381220545402186394950119955777548231464855456476351481584450356066967571129636460030156173634914723402479086855658420641055499446710989222685380747095254446190433246742714930737687089606561997177480992655553882008949247985800992655596137899899440573012146765284762290551131538676113370654642321574584346675113344846343179770104966503008437220486877646917816698981853352404222823332539440537956785108709678352824791630410794921963924008700943707520380725400923202387853727739123879088000364327137264060444571280778983838062374021987558371329637273967544046689174309132839647859504928478896364788229686609029691982180728680980992484022686845000324716016837869539921619036703681315700328124308158986622568367915957402945163468029989771338934904271619212297336682856822581014631035600040638395919836175828232959230335297260336000483390018629401164786179306971936788450083440336909102587751209350439186027701671959373804489583189906704107216672811144602729761021892125795491975418740627052962296028315123751508916829660005743217950022918212919023504188497848048704822158754672073551385453963508750926926711055614180887939999378235743588015489670491984376470475301513699944775563222908413074041053547877763968578639709412234687404509991297104376154096085938730794573500934299312232751096777546759490665165026191307756401000140352495069328962617587531503840451917408620696516593486327574850049142799704896662150349263705381239366824008171444514252997490682514423649264039987470250268914793618547092119434441955129651959112416044659759821679020580061939544098736206373946185586677953497780724379968644092398821803475262720092937705145597383423660691324947344126245447156767692778057731073141142274014175075588025300137589261171282954217260849576461252151496565173973172581299772774156503529837244691208921159953064453714599808929535082449327024231380988467866380218837785754912587238963252529637508726863277112940062739807934952387395096509870182903724945776554801646229855790618994395947408168445644913127697343217283391438889146180995147539805596052080303214687091286424120905411579401563629725923007385921294763269503052190873923244495882496548194367010136240714547110561385810699821410147124266266975760137501642662466536170516665824708198735337309326002187098537596970430917917436706632123318290876597455600156542146692681129761740203673675631421994357218176862625974222814421740115731190934915579802138901631719575962781007827929921782610509680974290304399023133158602418082138876437114182766680952609058386967647527221729154912197751549075609286777226872983965875347459805200716038676164644384910969952559197938580525140215228899823639500032251867219995505021746374124777091912639540862709851170122187605459106474841848018253987856416769151972216258752255035175829534358249310106973422079779551959369809186214346085044719169003271197942974530689498279058306689949310074924178128545091347120752752581621353131343574242372297473753741735801784120855839043833590769145267864369052808368547309282588589468501895157858480649727928928123406326391150666936288848550973839958645043743028111330721742697447006185535262339593426887298034650287761660621679196938884748954541197976031135136819598725770881932120131952937425824672137150581426305097843968077128687953313515446287740458611668109830161469551857114362577439934221298612699980959992060790367514497305611501848621605919425367741708551145607538289232098171965237332869517236166846036733934605993825766342465859149810695846471569652845368787699305457262667523782086537035872099259487147300916007976576102355191933024999720236287500812127280546904949603564854871990843708671066451826876754342097894411568647594425961394626716317719733003126613274280953769904340278876589431778865383804869894761448123755156049638017865596488674468463628375626307433477466623926337234475520256667271711585157431864442875527091641246553360793098677676572382699400487167728354087781833465667149482367076772371812046502890047282818528053516825515171276972903306414647785415217209592481169432468463737131656255841354336816566111666328890175472898739981821189154634840913677991645528204808409102300784052843507652678401895112516118411950457986832763719424188411052176322468891145680853433484734220965075327624106070060975145440082999589503477892574246707554657216718538669966345747203095079179250552301664880564568525652354610089644678464474047543096455093787963964473814323034168464439356747137491154358057082348720888508323242112158040398029957034373030630734163642302928555293313820878672877865326397012268625490735717323113738366256681338273140356729514560040251060822153408301920392336388610443190835389315880488564890540604317877401703865373163725221427224187316930189199290103919461619872999434109046734603435317611262230862485893534532776832502458909605536665495568427583484541296733867961684234577338025359778112649048034868312059937986830071349934982316872124429956581945801337185555230720322284858048576824434360211913418216915440044645631578142161740504604085366588027293272258701338493907922028499051214224747725419170088998552598198814441488431183920293205521029900992129152205444623757360685058475569041423464597208349188041377762535377923235818567634505046125897440469033426456972673819030607273124039731700310934312015789116402849942863098306903733743397165446655410170454595350112896592309953866001110772641842192389602938439874058101944474654254628465366407613658332241551000900792572590954487903734686216929497126255009857755232707705582127292480488151329598989161469622035856212827038081068623805565938596100535933801135233710543887927377739471951564011197756921478222522687586887830998061669617376042056661514647006469089469560344054530584536502624627218492455295941140574072173921422982902147861304645368246775030423779701255935054416283520502859506000135499336037058893675865912874787869518385182844216666746904961862281324832308236034494347979029562205498539046577945525916121874356150258978887443661203900244463704007357885726592115486967453764027666091527648864349489425734675127254564333252372525411831940232554076593875470847310296787207836532513418488096881491250152174760543433080980186843996560429509561953628769057177946286596047876538831247986291594244684164498559098823852042300683342643977714119178321299736850272873927328170198050138316838699518996139927462266453650834446875408601799488797790986677472819576589478112142956549795423788939963277121824271958703099048210517424755214604819474302294939784044724168191732911173075149117695033560511586372026093100421253010298717715072057157349542089013262768345362610817375164516173204557106231619739136489436860033587077782383231293403021145294408178693828120681182541325093766925993741551095751972844073650553154886628319903034417672941161776213923981215292024590239970539109923035823274575098486936036753039451227473696053026536478531491980814589388692981724820270701344249603454532783919891142045662392009542689044733850175272403045424638486689019753231221830837491842086710001765225410406529686160491846711354079640990071591643020862652455625374100323605905311137793235038728531681679327757166560698183576049798026642100694365753838036412104334804776690566159034194688685110842782823585560356127415923271055485151279470418968209150054123790237058478867635733607777185551953517038914536038916697036601346217750836053545045914486937614044988471482307712981403472616738348237443775918106620629090311160131263746522376691393425871352344055077327266182055276631592748936075180656824759095789395314248181386805024076803856301018043719623972529063096591009572660766274373155155515643568545949474236164008353193657123647776449622407747174190396606759913735155195885819879729845615339210809477459762542471334311662841498284133304825597836052566991936477846741695063738389115545289104939772574586550151977801197257923356838998697225370295177632508852819994412656823885208536907319785533795113977012543622754108964425217293344341067390908948639196763007024835053373675033813977134506135556713155906348025756563934780859910548759942382179519657173236557037686595118479959640382432372175120752651317237712612478284886941427666038572602623681992024251199577779611914242544863604922683002417964070324179566045023557908900822910602533993086795771665574043373493532160078984704454810193423655814449624118233970067217038521301418837964205565332581974757659464527903016437309738329566120791886995953677276393008380358034759538591031524599504893313100169835968804564400449289484969830385654617974415713870119270051524794873742971745041773555128514176600479922880299574392438699986701825600200974292663669960932784533233049405417598010402375333096438613415086674370510089852454853681342144146139467763294539413619494575447156428207395684250822078653316156986395423560567598189035027497271976685252917165829960312916702175844895710986819594632551529287485152095381578665553839734336803650342011789477841105144014806221966054183224806056797645281318857770455444276316338884144573477068609004667247830288383998148275887060032581757878353295881088235441930608631246926899805836318051669862276712339017007581615620670420175712568676294316488237153009333415070845413983016411926573228611582226910067812978108925343514602424097480271724504921541892682686085961379888654946511721383942187042403339469364174022233053774616016418153229799012353261377760898771103914758230488302095199603937039122857049393689478299422370315222471215331712569526041411609082993765752361920315100447830092462759653973592992367705057605638539073298010832421304255213256391709997937630821714912766216448661229973203929855973401374204985471887748770268061395745309154871954642626298443113826248303675369082074478587313781438808294902436048367044631173749529057557337066777811449377452013620411801802292097764623909426959138823145346627219201749337585493165501616978811681091143250035127059394981909473857671843830282626470057253827491372823202659315173917167724466027067829002547285788490035657650470605605881614325880235066226658327262270067439703314925984892758525274847363777518170290111173625223193222040443244533922368471190907283548471944946249638074033284480885011243477744830855241900696774870971908193174564340145209118801279422992542074352889408166521339307092493223458106815933770451362484210496142768979926173887175078632231170161221161700866570352624597415604794413615652044068329325223020725519438406253957684509129071226089454873978307239632981046058728683509898827645104126322192241853534037088970217201714794385048557244573066481113030447501237926766216743557861812432796691981305234543707061312852705736439809410485055937567825002212900330180085824942765110176124923817363153600762382373108334219997786393198550693160285494775463510885830167028605918880395023016470118636493249160572521946406653524960385502964311850572595395969628375113643072393675278197239230598030708573631647346095403550260855750654527857534260898611008049111998832693422484373433488327891628242119758830333895927093472192047567134178145191574996319404044240380138447407429232097924281298256294628807710246829361279726273448491335842163871237342742934656708475845982336513229756984912463572977161759246879431125869138803855196071695243698807798581875754147692941135036090399073465740136063837649021038735426006209396050434055338163725531827725373173220208881508835748502872061055317546748726581528624375233110251910061712219656039543460587997115441395984832707419613083685272538075391784534612122573687651499305876151128159724510153189757878008254902545747814217691692669861001968066094253960056727102801792877807313116596737025637249727045812444275309964544906067962108918782142046935178256681347816319594713661087640049487293397024228492855104452742261264072466797760318961573818445242808222869047946881639590604899813012395370535489446129754701780849808069454369467099166541788568366555887999120039271225789569006530314425741989231081536628648819409687858706414832433604387347122219370437113915068069890648698255149253288002390229852064801388635300670108794641678859514594931557105795776562672579274793003688573563830828361103095685787289000443706843144772911322420858331883190169296928939129448531090749476296282677595554877573321350566200862303680066077532269959810901371045785415040467701552500296056018325324160249880433288239945311652600543051919581578831934135593474143591297485058448827446954374115646008132945652607256374118401373556127382281748073013271952279440882693827054436810657943958282792794687503729391202374812192097664987346609921842351950280833649654350763930959173160443378630858058341847975083298873548321563560216439446172822496958414442156535905138062650930968954737452010431231672770529768193135969008991127772688960693944635543219930541401177050945090559251750278967434987085853101117930062134312618714155498600614835765511500231779784816428333127384536638801171921043467818472809460361749417459087296657262921999862261474668004256131105721876979995318983921088061564557642698471891578155222281517127475275178786589857482709440091091534167366100012401934694451180160146530564440575728270759720994053411693637114135052227812094326407862035659761913559039978632710472257572560543633794910417947117470700347920106080677041436247854668572676599415756213455809183440758083605882356715176724516691266535389578209310674398477228320313641770309540661605988879904866571179397257202218871753676461785462724399865551388671365656035766352036918002684484913186543365730823257026247510051332360149529674663346939203765928854033615306805678778408502316663146689803888119783164861535727263867868925908103645381822635414249803472974848213176216133109191040452688887596303738219865674455804644821677660383317815445235817436108385982916019351786317621130020120879154972823936609822425763576994097795471680071851405741334474894856990826862430543389026090855121231827312435450496660691980036401548845099239258564316244428925578569970521309994984588780391709656941714546489642639481786249912810703729969177941312712291284586937406538564561735194389374193752201866771748831664138011694183846274588217597437966047916988832608857972007857178352016336451627613923036849098140988633789664695619541422778279255579060224051218506731516026917456248056134756734348430251007961360082674747239485538345364348570230487580853382603761882638434391726452630317001125630864141333693908038755577139931423858189950332557757902138741702488981721933452115072830550738603683716978814682794187648415739276209750777646653168676012252934245913613340537402265394742136894795096976208847401266688586220862469016814835117643193424398728483743153263546735103401735674176067398012312755569599916617180931732831082762164966790159619812388024548046681171503265335147268965195506176022637785355558603033547931787899288817422501844661800481516439927933557388419479913517851134209794522548365718457725321103742872296372580151464052365718510720988164918906196915926976905171180105798935083335378703506064250052240348372628241211407549274480363795662329922220823286026383336211744801240645770385395717472842012456659294439018682682899846194524723931865919624263748492219283266451180746265107734393874641392609542307780384942550010868151264107635407324269678465646586820245672915831551832461364574978674902970731656884482301052615727400179703854697241149354450934912870945567108951169860374674363114347699703194930867849899920456453267212857805337341746211454812822768987256149162824964216638718313742520506704425692625047214335864947651995163208569982576243787641132491309345962849188332784410814398599765219855713747326149455122864518966599669602633244779951574662823842535474248496115462860060519774990653202219630328971754550794840743333065696950314607224595104299190078995486276180629069444917755161890608983074198161644847701392996497195567500847913083986405488072783426689478237658609677413079061501454014326174818954869342867344752432277776818310717059056283563036743642395257486156700988267201094072502916066769755974760711282024110358816578107410294724690467967345251593349647601280954369591792140156246740030258994705634710525792127860597132115533170208668960448452420546703539844789614874143198490765512958974029719975326374852417486693140184075786137945991901620189327183085279003859737938590997313534082417855734339422271207461895115439130744658950683903755725719892301023248926235051870535292444074918519024181538996878797864664103062907564957820482074971905231036435516064520964281525814754409406728984037963972998353349841957744386933235832474039141756019581279599726424899427990140737249322470547468983665624216808064290304938519899515528828475436115740742252843475493887303699530022553902962181704901574688145319365766063025207782987556308850234730163727143928968823304954280481536263995763463753908177778793066832816634525120273528668782745494632135649449719499904486207848595318518705230299102167663819812594830700391121892839200875040228127605139152272080583349333615260424020084223632521787872905758283103209260169924991372793770123025136457941176288290730182259985036448204842512270072253937633051954410098915384987203673786265699762587703907771439978687421215720610636941311533052529790302252440964845086887053327342099382578278429128675587719711443249650612344643062632093593293538162490378013176244734289450003315624098861938228727957300221874154899375311796419877904856495457475648705864735706951913477077662342066643629323798793768744587180906921976306727286207631604259793327633678193791137119692112009987575816536243810442168407919793236400490650173433410418081984675753052638138748844992529833599961221969328044117237540491307045135928067461070532037333801000485688363357831482705453693536319868593390609240574459399732572241625171736363884032774735194124419903300883622666305705353487434225194444830375996294924298194780365301767431959252895070756821114509092655639368103048690896287923667269466736833661383869268119585506640160962533529907204253602054077372603940274048587230055438230858985980232263185687960653039571624366071337509387477467680663744585434649866978002265268841818803298214337503343638107117599987008366174770457155058388541796347726666373301217470999400921932141270058698449278001825665154694919788238725449916886436373734500279101636903291522030254335255558278858046621350884968020715062159313944281131831437507623503524600068552808529012913691801584910945645183897877068029048931034041656223059885640650124910378928638245305723180188098921127944429659822499664053036366236916512426299030060239876258655630761463050208782546264851501937476670607224348894173268781798657539868178157476269957067723477309032458527886120787118854003349302858022820907065861590565273778537298431599448891393717030527054822298603165358405616764082288473207668099250672933067249319339835441961157087646093397610428309498185089010137276300947292440823465238120627212442490953174277053118196244740182177678627711004579593442402186362813377840128673984543779433249838335007171088906867988205925106747405345873530309678576592879414235963480812625728234437306487488295927230971769622588343270818725610794920755744081939878581455475926180126612358766665558469071655782192216818999902601269660740010981894241653853749739835068696192868145772975033524693587688197136133205490932508556750736736944853762023308830967349138105730187816248919429623771300463051678044079025106193683003535483432424727376781018829249415160290733442857390417068298304745284554677494713624313274300855503808948666425628060191245391554608478296000216099891679966719299392842993804683316507936739768562298457506932488466391962010888314975759607611286045609345445806457247841115968527143508194460794828257407245852898196019744965915074056713205612463670629768171034184900364755988440678954068629069211131763947979379590922131136267014195716004048220250121092313580850321046480074840605119589827018256486569722090591154692779117523618319700088886656924744038392117610145252607926259241424099891191406736709185616519353607009268036797951259747046760839925547244292027810799986361434776868712434283472520016985044674011716716398064375383091958233285790288775366340428500592760054105496100764539439317656970484797075828947576158190364188739291299721075280893234862044554182038848472190226163356567875431537162442882024887980860152877948712239936755733058696884729740124686357171962051530616773491209146262827233043215215529303010835095293024066781802397963057490305522658308776045880147563522342601224807835510802663735826482731069864991984816648952794554318744399058377675583280133281407030943162754235298377309467689141895222309007522206760761879307855817523680164774323771894656609251226178917595899799396126168907788609495427257358285376456104295021110796936202540946320763645070871799565487542744778937960253191500030214180964851187473895890009909403775520746866714026652413846163112925374978845689907176102023489880532707900876944037155011634734651403385953526587633595824469296472264998196962941155253909133692261409623465287044437661095724041741192236524633493559878872595191848293530254575125496289442985427233135681028593073013768484830597219165013353078020796942118356957465778415779063305124535601232600231350783041920277234408194186370199454108770399373142519031959269130795801161445174140337305605939993201432938138093214121140131818548281157258629258608087532715997465945178321663240370133592924871754212097106257471765653508453948399258256275895794830997002379986774114329865459452132738171068761777834558240816717327951377569680876099338983011159597471711504546093125449494693611441833462309305374856693624559758391207668476551308270622736628282918373925631460435229462821443333058991358357232419612069283119203303211952682288260956296256576189629273632151287648439814187420814336877775525842230347392670896283629999448130731585947488307071812914685080398513689943696546713761535339227167878817442567843361773532721678915963756248252686395951523354835802584316495123994530502292664344903183728042530786423479752512922829044741965612900708008242388600162215956299911705585810047695656453731737206542672220355175874325232118431351909123895356533273863164051346921940838873366666759559829571335856141662171546486100528464582511168663047542232521369428371918342194347963359622085945574980160137515742308570450412938421276979908371253988438551626443392759744281920211845849918539832595504188286984564218547052604800000462593290322969641492707675741156658038265247283957491601763568500844938708211078827476025454683939088500046970811516201327923585216554128686815076371450723562150737592704980441663454599725371848116746364401953059508132951741090839932193555321954956675685147776331245095991794547347124599918490318362857334942820993582629167020450654817486995157930922530326102602282602899498995863602099222523804568597985598334341159318834432965281175516777781619782192077846642150921270922495586549706465547129017557582306576754797752450448192007425080424978480151813242977223881043530647512435471217445267856117086998488981639305571545086994723192852630847102299030520133545264162063318732452667276248862404965290928376970553127631344456737226571075795821715837453087166260705733862574945990420410765964199737236174249260488578384404590550403107367627739665016897865705422770494593588308893358843875061529553937605099969551987995405825273994317905071059187882225262157867739392680060289737778600965956211098265234816556499032623760940153247487234894083458301218386217728288171343676853970726683855954968039772267417380014311206468782645315479179731249139511165511993618722572753376020370631432417536753861461940807362606231252679160241238655881133180956354381259555842610410519467163460263779743708459233940286162188126987909427460048896051900228801463487472184376678939710572881521566262293009855319224125785752708038997630133972807602985033587954573641345353774861847675848469353915488878510366370572827204461200374163038931140284483743850920179632199990773061148439861434747288051526231950532241822726477755876449423416844156888162570198959376233706122051393703044186209293657311402032969749103836641102090034276294513986704892511590156315831085137330736645469911683230109179994353614995634092898922759072081531379775986483168536535251902654952193786491143593511826603831551261750970036502993074534175768592142293117140949143707764441893442602801834676330155041446604084349684243851960136283157141602881555719402002887621180984176493470505202766521766755423270478687054640616158005961942611823932869738916450816890862768988277392990407157686234896918346803635645056330833603673547657261243947508215076778361020149694053358299214388079601113905935168159388059936964605153106079167293005345178528341868235396700071627264746967060920508231556957770355891653611521086410820229510107822913050007942522264141681663879020089729147665357622893425703803498403091046598968532905415910527083126832812727161536724542150243891545117169644118725191188513057901890001996148369513008019801024704818016179417502867370347683094683196246195781199866380857415310766734516134162305598430844034854881017529238828751572289491819484818254604652386423652280539565121062305882974082259445409062101030917165347227442034717594572149804413761671116226206134838196968720561226102310968325905770471812053603326085426226934611109081279899828027357109740047025341045663380364889926224473679155173847933520188434973329576453017972984556907362867290269586873667530470210975641419711342935593997696021055117054086556975175078853641084523202930342517166823243674110599768427193713968439094023614290053223059639767727513952525032304612909396996993189829812332372012259554750905306871456587381929736966861150600928341429347735780222486450221166157734055378603715088767178049499849500690069041135930520362062823269151894825794217276144150117611254734796015211572128417052116200272953251688749454577387030417742831749336746723704824722022363339803975585273228569139481645786814533944848454415850869275632743789310885399181488031119999816444612939195890285588525707160554083074791073143077412359907574383635485586971921311004867862790375160808671071367991606357115365447033418937239267229609084519604367986715229905036090658430774896329315816871435176932223622136127193701017357579335287549521076745593215736429349821511809683429822730487935760155929095325440883799912437817100198920092705918074304066856266880347896603670857236949853403873743799092487883830369298323317164038879849495873734984708052705182232793527062251918294150524556652632845978816746383641700794028141385153034237177897518693703776389138160726863080957292155456006487827641435544244535267535827339393647115962123436173981998960505874282692337576371636746216004184724980458643874928935632811639396333164622379811507761861455947457634785808337723289007038568660069083667995951135091389735195704284201903455498497943480914767835813222321916824892358345688868790592437474354264299230383116762994074975457586556999673259166664451062755019238772580643256600571486221049927567270542298530375064694215983341045980291284130753195015870993893515629415529322902750579112956336283995620476194979893723451023468372895242804017712467824389851051999565047775218451630300766106976313582795948909877272749981786605261955014278846593418344119583611157753985346614862129288828641525703092423347842215096386904775273634735554330753691893510286754273410838577726323670538410486346145073362011521775022331655209433845233135745381819535434749015576948432391081581623422215402544199683488520571758011252172060995320573509151847161759033127225609697792401122619912873153786637231595276119180392363182806904771190965520569801569710395957512090233898179613391701065694452138609372872314338794253314615299891299052480713438047355732945610310715392648360343244450425148967295864609898189467642005023103246820001450132739418694597895553919342226033273125070487140326326082134956871806475801003673369845291771638104785564513192257741699161487240072902838273728456931533677908018944726946485806894392173059468327545562841565018273103760121101952239290699348578750057317536545654534295402129797921405489496744119138288600457713789149661801130897961800430907732120500079291034037347734583785770163839267242382895826170428209094354186622872517700357941927535354877500065069868466167129220216877691623070159626257308267952564117309023344285421339983126289481729010807436871269483399366186646168801524915978060030814437930302929526683848491819165059463289465702303349353007216485436737977766860187187110347667899962897790216010133002299739365438411804063691553790732549523064904786568787525381572922017354312386703748482047244002132438410986123954699122834298991295589521385778178270741928553352924109233802917018835025398192632446730687218665423227561583439690542180107184201246288432672595648693954813942346355950478426144374462169948633070707434029415444835799983319154700397559626298044048446059423598576522806077945612551765436688744013026491841778639423534373593622872025634111761768177206181490052411254788409778699161121667247581538525408957002805199012394703777482579455953126171663233577744548540502436455767764618578724651364456840296506079395177667259997760367008989392679399708497762214185297960688743382668325291042386022741738033053696934466538335334022226422810020639646688222711417009330924944897379494567887372138908421757208733089762843960767493762091478724862903977270187995363107372736829512086974279384331240375587263347587234564496243043692125821188867603619382241560728422229168868483266933574760575963795521220023257214101213638610027018065809424757274382169858228179946611361190732066101077285706257224939651854232659428774453147705649927129459451696795975768264728835213423742691247062875735034498095256024019847409253214166248503533208476133182375627562866672001140606968157000783049504346769151334954210017961236665852802541652264850683808358987979691964364600789738629892284471885485593516022819181388989723958488402889609375259854394775975955331050010435705034727329368311839058849360049513524264784127279207752036634632193243712925303486109097412222878149809241286133218646996236341483780371230666052574966775403185973242401183410567657599739003831018995731530617528290162242169112429060287877800834498403124300666646222396292458306799290534971751332525257986407696058980175274103065886589699003571856713530632155136683378531825054813664138719234031252072928924284269430660984689775553808138379130765195562912324231735676193510573546389991834574393683250450132182359032415199637760476694447836834700242311059235378956585505858948422205037055749182755040771112685545523743722684617698451795897561610437548042458718352995499269197125422570396376617712840945199996172732430543373763150975229920475817011335667997067040258761273616307668785317137769920996575230184570743848793774298272426632005673152866782068768188649820600474081075111617812813664236703526225016382311615732863335765421577475536178938907417480265481191694854574593034709810740163990902237918308360314755766367690869662181438473075801412514373792653760285590767587458476833121760725014671052519623788094548302971972211301943308547531931244355122336536769771771526690241567422022293413244878207401010397921316554805889410448117497711088065991977857563794449191336899304782325780143012960639717492796695223057154385137236660667850926025257954368703772840704182359025939556136455695061136832932279901627574801333704423716273475869768090727828462645865689929317508773745113513513209761401948413068895528854032481202320879990029896171345062846937860479627432202853175473420240220674474362492893281367984934628883638253180374349400165536662594175780747182386125581333953188894829583624105011994758035485632742065358492428459535736940964423213880196369732639810787638118530583826750742947538444878630421029819304456207651358329029675419046984884830186777741881743150082902475502713163840957441065199080980604865623923186664982090159148448340668885142131690229770299940165028700386980301718637639657171626335078026340302838027928010152614781809301198492020898740649815629622128395112483184661756109775561271252590252576666964105169004681308717113186328633731911988988446570378109933119867824091162889828708492451175394381924521258748369731127913653498191846044590588520909362212178766427908121409710873679261063601879456460285953949910862683850766339273543715876583717759221473868710208331765968378253223968861048139183262115972361000312956415436469809276180771400148128009632970533963070838195602503985679619554961326217525878844975286269756008053192113913202550713194981972546193851709967918207679963960115890780678207353035467270973746764149230199983283742639792364181797122967956347272738733898530519842563303249876194559841246013227309783685761156560661114283148244578384988799975217846494603932293218214144077419027342358439323845575321655178269558206009454957281191141836391144949764990681003194875271471503850042316841641461143209564601119624656473270880026114173666552442746113209893158227603959282664930968500600447130413245163298449335620991520726233643034181052636113686185801477456836187877973727776896415522182242004973316285083010940734033855684905553290426042743344052042796601516566480564041869602506695804106120030564065729629473743375449290822242127716295780596542471610413383110326656831340085927864793708630415179921314530113273283192695249122481148656540579344306786716120352822881436815444556818712760816381893202676188627673370174460300986534769273209167936954156801263346562118238632198579317215610996041237380688465906680288630303394769478227040410036220403458112924644720425668092557755132507873266795114574229778403899886178733293109505923304793971568610009403487220443470981273007099752152590723585509948289659747244306552564286562179533763881009897231243294081663414799650198732806548739800353520852389887824136551985710806483867178380126606761709519903535529242610877087271000788247481825946703484609644591515875844846319343188781585540443933974985157711474240438251881030133595815481523202052409754987899408949784698724100137113833511048769884360330070290876492916206879358687702327579790952159049812901748312338078761390644833702338252418747810755647004550137017746969326791766461754800600235719367803784161931399084202469340646812517075089953023887263905893924639778535760725728173452348064134771056856019680027166636510572174204508494279773283149420369745116811203746834379377232279280798851981889892659106629096096426616135935767722128164184601047729699968085561519172725357904795674580741091966766945316651870960458003449963688078375084027076153137018279944972537998644311457885703122354941276966209920233536993186293666558642635223160871200001404931496200665923456290081399550516055451553355055448034573499623343754338228718875220229815574854751478262501846802059408105761662116222206280139351984404155443843112233917270233557703793154575779010136549843274368946303039303639779815103264794784279674260583025778002739367615567100785711469664340303391282503758684171051954019052289827424653271454624002595448382257947976576161977637845406459104482671686667477180240089409051600520609869988089869713765860049216687455130956925882396520265477134961107969379825853376164846322835272487114474208845238354157478121455400881656890486861668484051239934487549378345122441891284356103362942712848083041674323189591434845153180462035374215962929172709433544868754504420962561479281187670025292867957849160748039612854968860173270744050054601529851598232327379184149220992345605716623297647057693884764274814476364945271964677897870816732087648973791857756089685920596398873196934403941038971812978585495538398147972895532176377910201730324192478911787239705644498021847484379798965670769587531554989924308802541904078364393464289782438071790534041550746464350874207146839474984601122128209071719806934040702328002704413828389982536064249831374975541289720648857364275501068208776960741369654382845547658503512513356451460879384901036632830461339415249207839835013242885844035511353169595400629816873947513984832009260242677238847509347385395555480167291093627553199600045083483734331183155726060289851601993400582253749403578122501447324331306469824381065887573402724721008208698119099128478815721436513640205517424686911079223234357305013749989463947378304375483202087347950623882907385443732475621787783010725096962484663128642854884913958462905209918686008510198548174436824574797427754121868564416590233693235616987997611729355431867781171400892858676226071102999765395090854401211156775663756293998647917342842918619157489481951134059623365540835421426127206211929664517514572892848711948199952655900046624001187350076455597923687731680015904409954746040032193193545552087433284159060801458508761704483763275073930190350322626937561093166215593739984960807968540216617398442901309254888160037338086926159435916605023046374605906737123262460466463722660580408810275470894818319722133648875055053224062125408608532592112174250294715655620848299800912801567221534893029221118679211285821089690997325664477765531841441919854942810096967024948892298399042663315876997376417869570287816658630005446439772866003524518921535257515538980632501274740839364659721985045481722818177074433132067175910398191774000963366251705206707509884269621470976291469146492734144895231205989614287207128972625710786394317592672803760707903814901971072413519962793797251460821076015213130662184255499245883790530965088694372854832146870962105720887001732828248847146653171037191051835325171495147872886076564736126637955625563769273848338843934244209608157673927126103950273036900126128634950121465765046174071933136489657903205571103527618482138244486363529813777446891394684822709017837923715066045707055441106185624275263247071662101046521741116385445170566987190841396012454108738897359014158408232036421326640505268232759433607609287922910262036521904793104324643356068001772303702523851420914396110336873465419589752714926989947097394781678341723281728319328916397861279469739274223007808684497633732176995581181401378616448599557474988908116325885769092625070232433165951243851771941849730076847313613902309004636314997252731043259633641809339386982787902970345609651049858537869147508272215737046087411332781069619449946328654841072190727586559892362214715363269881617742727346995400121270384464233003253958727192122490927032979708345315211693334458665140283199916576127671649125848804536549639291160360377602342174510515186194972593266718253330612572411102817308813916392950285058542565034972909117654656060581436011854691636793479902495847969497013527291872131998108905164835361127629993248634552720793872680778575300815264094747082028294093032617818520967284257056383969592973824315728619111617488424707194418252644057789647253628077237386217104277447387838885378670666738297015678069488110951751825846721598697972329933568718957786031949808115953648556628894038976250885722614242067626552867741514006125271448659877987892533038056425211605929424241044819466726888452941502658985938884371907573249254856854176540383132512732486542231331245305762490265267060115888387895673423558441801092763064945030486894918745818743862840189060859651217806045555016837440230999421985206808652679365332578311382495044240038910780578035092946894782588364634868404866800286454461625355318806836272268104267065339473927623567498108002512247554253135026287964469318905078614797596171821998178330950553780930008077206067366105068439137425935223248368852064720063333193530131331470119938041273280208894307338049320582161376398044123659333157271895946356418714178018533387036587384890588895108080610674802414253532839405433725882901008632601719682771808620187617835281459531835308316362110729995573054080019059177598395913410998149299695292668104673402205489735528983885928629460552963886166499816377631419946088776576481412863500326211550848264394634344328877380614637938452811778183435089852458811276846102427115939114455684346335158062016329781988335661760722879230524670608394535071923039046233503808296995908454278890525729232629115481185543321527865552008551896785260199406942309086472057538294988403794295147730298151695422519309321112713834426007061036124974584429361032052006114027669565276228707311535441651933575426895629347018923752388051496020142186551595918728082747374311455701442623798742743429127958633749379248124709467124736764768675263395409221013811901845741682873900598565612803897087056003883106546312642658606881322167416139594197729154220130172629101610723816812698321616739585911444734514678461472954947500242010568960589515606564014822765005440364642298876599147940991976593059750015371560462061048479450430323073574462945132098762452361046368866357147822294996792080120780288434473775589544580466577029653059869064423046403000393872389141997704331609726779376227139255822528640936188187481581072306271339174064194166382112627991005468258279152691134936979527964530369331104428621668568264515084872436676580907463125458726638848101694562628916483793274409062254172387548276605898732588883825295872052522353215354969057601847192067677851740052700894153285238413515310994294974123413797123603031544361376346210398900373336647932567464522541296491439458134677275640992365105083481450485734437827034391419515979765275208537799138915575643308466620600900105903299171012535056255971462920706817178796984661857381247037442850388669691590352847952320863059998577464279277323104227292770130245047369017439271187765943360972776395784695418743298105587962705135338031633723051619280651931017463869240865788321772572780605088098215066849266701742914215884069419027667919407304418020723150107776461265991136133265190440626865632143615247973536350594219618165203461447543211455821249163321179352663013645031583402611616206442783682664488053733821102235407704120023550155175024993850590727630207302507237760753517892923403027613383636524219946436105971671637740072867624933299130158959591815348703985651633470618447553751371676355380112764001629050272959878150685831927248331268191904177012589964803451585316247579877807888417464978763833029417735108119469943482709018923286440827540069233492925350867780423631195492504890613353952998242878599720436862795268625896020989635046488164433639079167392270474490280798789770268567984913752122934260854810787957199899875992669497846023744475212736030711008127926368778485950775246499158300581551687802729193761219663563506175200017483867350940390047654371409535405331186676365777702226274960164795919999306747672631428451424267396153392582964078180801978738502221123521736415275024577090861075414167505820398748143380697042995396534721334898197469151817280830401799326142070877822868965865323999136688380379997210666053846635893578104200647992005992317623548586865936737432586809391665008696132609178895909154436304581636146417218874888345124605783244113795061004560742779808479296036511130192816132972360475594952624414689239092564416231593484110814499299654712888456481190535196574760041954323679862817942535680324864365664228461932315296727676053956833059607412937129888492583600830686725753582188723263143871803979972910123292493826044503712967749212616386668134512163554278549692698431111642112155415628919627430340678607476497027981862336029891757765618895304992483543717160042587481222806738902023713894743516443585585414304120819435813533010008456557215121149550981120683577303659430845676061225114788363348467259543752934728346956993389396088042599629319968371758127898053254843228126897903540502404336946662452633786485426758436431442589707819754248535611259853994677781627090609245727196695056609116867547521935832348217368905434963926666684608803984828319206542614710143043234807210624329530500330537657114317880343144841359045957191378372343332642784817526915296656350975356254779541945141847224375866144742093088294588354296498669299513790918932197317855940153811371236059737094222747476591829061908924654220843268549280139886898233875579945674308202973629395345281005440174717907645645094639973455308615336652251956897294851239629026563750532806187691790781140166643193113989791496857682787896853028898930030240053483214139200973644073034603429446021474694930626573755702311166421979650157212879913638353075552773455179631566770776999488427893731590130629417608450324420021437979144034200606861960672707697082085685325607818094748900595692421503188949274249963964073325841529908507410585359707904865606703016246100228277931758758234859225364216759245605196608398789570144510480734388455857396904094514813334321128866790048212290813123654529807840843977007394915228264448767590000563542251467876636745348281220565846277333179547474963600952286099298979924507338729957249353538910014995680624816854591009720334892998039052528928825660314369628254622119666614281200644401908910528595419267943497601938508964845420028623774453276509933945947079336895167812993717311779788170023550568788426051991444486009309824826057344116830541161847481338698881253456243387572721701836658896285204495764440891057945571511734864780964153703716402855647013654341671544468181017889031549604365268537811417694974787254990072524654221921113533914781160239747982804873471064740975003713486637735976489645694310950246595885641463735288680409850538562889087077409681663564874780966874298662134670674821969142150750603881321121141556553352648653037301503255003612034696500258215849029773549082533132196587836127889086234676741378547134924629952954514770587297931700576973310415736003484918883950900121970445513094634585137428350071199213364587492008445486151128131872162149240629688422400062534610834137775076004255793806950465693233525303962316717965238550095381853265910978044957723315180959464352269848541017998487209478555518709157974952432737559892721653404884178780695922090898626971721570815803071180442384429222662693565408775317856706915728819428986113954498095572606745003516363685553091263466219994096131035477743824827168126284092230903142724652647610170006749745139733629834900083714582442944851211057769120217932597343322416234716233302778965902944286538016359343756610219449141226139582146146471268303643922872802907844085899235533223067020589718603621164704694261913368821676287091500059282943364646815532198162941698155229213554415495004869220077363402125577539333253711996217629374176791546068306150069291528854729605741165624033971102851282924800948443182404002584416590033181800057741689698145041030140609361411224101622716213319108754148406685983911850355336165344075055784834197690501324973264817819091762149946648714026846775578351144029169140515320813798924548839870961214817500077500292941377174035846348548449461276341005167158340201436083970365007336534171932074546567580176450405302706397190253968300423617580697371724522812733347858170831823535809396420911721200664368943377801374497082092557802923743455814666406804574800017539957404876439564626568188247221519592615964500438467646978391796070973681808553187263952099798212276101834804742502035142310268623184390897722316360039349910859465814659454941276441546214307310907040557243394373010740147510614928935026609150041421135924186535462851561949486003105768850648549763932510599151111175503801336418125837614467430766939292373174776678359840395531967181569291139192578043456709051724872310311187221349956026467674320092187543094921044136479238565958444760317819758901659182660849431816326246499126104120634321245209766184933341564583637373154382003477833925811910794765124265324268661225876410570033954389430352217061014171809860359113863709083221355480518199722320310680549591971078935075785496626682405415568666552005910774340825914343125336078466245475065273238660079341410168645390537503008050412211569620924004818624498343230298034117290997116144586961374328714428149319738165724678848557487520261939643096401461920560307232976002550322878627713442408225463130797014892342391412152730472160056498388052186177262899505611795791740288265318987693626969471860245177435497639566899686913422011460785305898318076935508096973734704047371154737502295624020996567506920044801531529318155774424996166978602449264997020014149560067564913323843937222152664746368770830967716761240638057977881340831326350831065928727418268837221394120198312853557311474018468171253123378493417072087149609063724069697761609153737772180375170702096495951425505338474708591363239863133035136618851963268212500298516036469384709561708002605580111114775475100958338868061271330633225993631073652080575387657722506100910099558874992243709550782037006049021562748990156356779594784760427939212732936410575530628079978318884950229674623686669409937925138899966527492997129208908843582362494401316622507866060756142818659553018712079616470287435606654791871033634876240103645073765615689006293731231322099915641260219503594167202140546077159055404157614372087858205479234379025348106658872820269889246138801848730040316312456138553930226560575297607516151661187471552721080377514939839787050860735227041370569936892326134874584530343850923409869764276415212967262592238462793555464365982775570783774093046253971282863933998167465738909175330168112163051206747529949221880346031932245370016945538541951068514991431924538532958764871930055071638318184898636169094434281398711475676024134412332235848626546624276240575083222575810807966616696917545665902263125515177347406996284171502613930665808259624048832866883361716031794821141492561781340438716295915262211613562863130237918950965482073603896765078017676692948731347510149678385358152160398196510844899046076119102264111324642444316499840913745425256443668454786630089885190542010081722748366399382909938263001593575868854599943116162675289102889755815191991161856336181635890460103540883925169711677552792437489386631345505901945943823082233470607391810599157033698073053704323033871281333938656846141822638672742427859909814188818508358156512099229051295455535166278581066845568653579331917262709984434323747546148166517940282261848038171414843018867122836887740319170181083738827624429083964020431681183342930271264448049154962704630317066129839636590881639458343902120757537038406295964383187070424383524797155179734266758817274530288079734195809918240882649912546381470068865914424588732981088027909135188949677748383140892188844141285765230427256411432601222633523460076657902958591894338759790860603553819978769313266248608868581745866599192634950235192067910641911309727142558963094816722343693716320039482963704506842154094373369183545710834815294098126064649430189133968396489994912808379802977140538163598904589084184561220058877257704612261650157334014235028681255806013129703520174924093101131352100119928293455381773749096739043489181772666143940276141961105099117729753105952823280844948593247429253540722603445797506782964616349096838493055710409096155187820069370180055144469465261244761658199287461463025261946429473717374372667810307672018469181494149217746292215244258719713601810024161788692695335406409835330630118236393374279429487001668752451975673626603985811485266494916815012611316711553478338726095352554004471654249664541448681132995934256478817979265213902540475439238866492192538542746440245701033761115224358923253668383783383409535939189134794293988656481501467368492269596005818166967141129682677365143194404604020595561024818816886162539882508288392276649651001833611420526172699196200558768356057352847824595779998746851609340020809938519993252249862430755221356702628617961402582812777774847747660928895638781673536714767095194052943388780058056673168980367106584941134716075169340467689185402648480396361741037061037885954378061266006696230481942118216513873396734369198718538114590500999536405926615043007910169279367532909426419987063500335566822338896578786972932454662923268112907130428200417207832520377529722105154486459565707724612585787874564443021077234475701296268386209153616336779445525773384993288726144339332132228234155017903904632331043245675222211052152895986992760281884863344707213883541821691838483974418561534566304116052366867616452337384207522171455690980944482421245678236273410551355059197705335126704013938795800828533314517055706374351873721582586792744839245266821758899157743333290001553920707183462147269132885754190317325011802159558779449565991756678338029038060042408090027764560851966472081269521657976087288404870918803716036872965846356286509215489008754864259524980642167887045684613776542042947118854042173672314533357661088790519015561675826764549452569355956259289675250123921999754824980030046267163016234802498057102588937029262615914031711762316642052008665911655404828418231217888966289698081719470824992736406845560978132531187916322166605731791561345662305170176639728383652844867854341124042987934050450949424221153219358053064035895544838366265286299831839594074796168249772411946922838880336627076237996499525077093687652733859423544510783771504240170825511941800260116329292599500918673870053667214137618009792849007623266042864401461333488170192528930955251419929263173603365211655513789836621135384868546217846378688893024995878892309818127198874464821505086802806589433635841328019853005163455784724758276553145388199283741350791108878435375373780532243298276304078458832622185430849221244161635997307690486957329259990405134831788882239383893837845793340734109830850946021051509081325131631758564795591013384570969414552476406449764220326276839030577231272726726428199435416856328103201794308733929377255556095803958088138669550794427893966201683771752671737927793698499011231198878029447447312196319234524605242166744755545684137408933541954985085284174936173516192543788472352499791474298100173277008216203132016680058947422669528202828672653757250191755272055922240620576166795477136620594187517068953505430404957175134397006689712297212723076324452889322248701442171635375105005763210176956029081990094633386844696087638417541507149466566378415827288798129045288748076990887879161643871358969100363416789672315853716117006297342023457744793703103729282263079234783034513704079353762386331247089171085976193156176326143529685950635695655966813042750338940572502103090835115620628242230510526761576428938200755909511105100733260955846071472158086819779321645414154134737452136479963289727959799376409883630721925948134756913558853538524892921839040734297954973692554397635093654695879202431022962720309413999218421611168028872412816700777428459167415408424797644068007819063619473574135642657857480040375544344310496923210743233619884754631862554186703899701971289655057321412002805269041009588882379276609210896238698543860643472916209442100965581524390655836066512947979465639126566952426467731088102717197887062752350649423944377145067468873328174296610417498673504754443186025320957971344126878021070396683601379018442118144740322916223095493748850077017115021027266338575032122805606607490939674128882574355206709741482726392053978866623481854183678459147970353559764545391152668249365757034150765194451580961766720895919930440754252763885447867797076630023718358355957487806682497041908223039852102844066230326922338322540824605506214343471018845822983193319010909885202198037151347186842609411592353345004356185781257647474232129235703126535005891533674866358393016586683888331108547705320612606201536838877824836052593855787274189273854218733260987338833458004344597286613076727667565794262282210203261399346289854466479159869909495117922372631276930900617946621676445516878816244068176470571431517629305294101236617475762471206084525906541266253929512906652412834014858059296209850970475491955040465237473093297522420387271359155214916701053966090159956970419462448017301958412913118115057923975026734852357967222860925126121693733511433787116861519574961035701810171442135683240488483718914227316097184950014139310840884475490735270307306742506280428954950849992211362815071659004214550470264867659481998990929505266037847016180386055346813393990564203398249834680662813516949813009786861759379188395847835452692996673763777176237221799492252900005132337674298268069794900853470999777656183201196942193896607925138313911042783317270910163814726406652933422548778463009785441963007082152412220555776735782758435921491957565491595824820738301629109783008906299092375652895719476711769492809876695209428315977913652118561939422343518413271183991414815133118654946416344404849537081677824629724376686588996551744319584148314462008061794139023043414560182894472822709486805274340637604864688657821709221336147622272564551334959064225181074583737948806406125960815297545784284997068537999312704638132318189361496287134274928614572597620929314268315785321315517488052825392008062054711612030291298418189689987548601261898574488484336275357448763425871277659526753166318680395434053011861996987403588236138531300906495134981966641542410266636639119339842609416135163637068371876838780758851182198699291732499563930768449577966440659560805556222418817916828508608576981813435652018850914823901176829546675464168365318129559234836552869665983827150101205234654270801331188124967819541426642204756127028972716388352210593152374488643770055549942432382852600342167774169512571698263138642896555693740228225390331893351994795865926581475970490434488938946726640428802886750058303103512660936949025600636363820258432795145673091592907281547016054912207741113960084727236043646998071738680186654661181772097683344397480562660571539332745773777010261223177899587451279543671516730669009800790675441258726077355633189532793452420093813991628698675857091359590056661701350350877991718425625954621066147419233444234395729268571084912105444133138831808621691243858924279456276176163667273472637000121341823360629843467259639538634306625323864605885675642115602247595513062021427695371143453021738930133626043153707191632550528790432927772737687922661731649965575079768373915809632674515909067399682114457812291338939622548424168198890048754308499168522318334473437937943528247992835924358697822016638934435253024600319173185862276806648609773001346920322904483503239928231388451993516187956490328072559181332315007562832413983473287579301717082476494338020539520155652434629968551831804301000955486248113426873729919585551508569993313387469671548539423598498270868939599534618979207945902490488284896355750489981202605734842002825263041321367877640414387052958444691691691586907170994013342853905742261397914670765338619863626080948880176144178412724027122469135914446319730568595800799980158582020878856225389245836973061422380903118407593140239708372939439417519312331523517996922254442577831643987588196937348616422336615078607691103001931924279473747200178395646100526333616345178028029040520975836792094356559363571138359826776366576715717451657119241664488200006975051076643883360219639598613726015976521830842202517303290877966906015916229025983354528382751499063274830421092095887514186202863095909346139959497770630311890384673386216717394041076747126086763090490876436621074292318653061901768403416036835445652674333279171758944460950369586878942038353803663820203715150099008291743673921927260143910337571088415278187487634864528684327739435451027256370769323474068120425466182366001550556597021100757992179030759541092819460244410810125891399606601921601383099523850547195277579228847163598865711719613677095981645933798354293079689686633063722950718305424991216836048989361379810292540326761711194494104377884555336678994153551944249559892110620203010372417148900149274867671003738290970245268390451142105154873751095125412077729528614713725898577375862357646107624654332696278071433880025040536708052382180513928545471460309558860660628891270429246245902511803166542638758556289211388928430783338421209829313507618378468115470522401260306044951167317125007553838862588676378471291516804477371193687055334910582328652646519060989801852005260080518578620814113248356612507998663433490078574834890709403356659455364929619634955655275935356771907156321591069970900570955424517443470504514237814399105637234725486192832495723404356904790743940330615490243702764691251834540430458179169203570207885059394384800106702585260816858323209078602319781460049439255910170848279863808737599312447657925411567246067665975506236384880510663858019773927673570868371127750981508798964253634395943252077993365139522697248092589841192647715593618789303550287821449708371033949767772177101271538545609124395995523014408672427277021394362675304440499901454026519431875733957345014599543000230561750249067783404612272120759018135798151162921276950976544989117140383785058274282727973191012001105638297934875158305355253407696140094523476208043317199750616479908500782223060364563474426560989420521560598328566211501767963467502235466055012047312449213060329889061493601034343506110827455330452539597743239140294219835644968498921844168848030453488944478673114070917203115127802650073954814946780803639556429934003843872254515201249431259718840683071669639629025275592113891483265983206227789347525478839457432409335457680614016661915246408319494926704314482254554958196715601076627884307858012198967876739835961906182289934379593650389266313037092134712499259304228013835601949250384590473575173139923971742315882883565799171453782549815481390464320544390053135860464668013416148342898739398695401268853256474672452663903843326850906703843514883541140806353184870725428293387963091013235624969515987635617235112832032167210195946803491785937886098694436293842536360540642221679598473136501864967785215301406227826015891275613948699601575640954296873546540618112428493824614625327018689378271026710355920537654962714903236586789394806872192935616830340148241950603947703572628023166880593684470754048426439108528341502762969828004730412238270181474736190315074655573376008997299132311574416383876814995538392927765232341032737538219049489846311758874740816173213506146261432138094019352978296648832975175617981592408360959936935547288948209011124790689376650470881959829388058523785582024984726612386137418821168618073399792257857175823078738295513164409164966571587288254050957390782950935055909855143418884788622259043204384175720480388580039198731209406123791826283430522440201287356750995358227128484700020492734097583846316483343549834002662283715324959822867337735412412927179077272496253750641913919966621952614508488402118889331283500014019905719415701888525965585189629502289307631503024652003751819656185139263028051805514580770102258718184661582566104709618602116330167748461063965209019557428772655045197371642438655475118686001453218297233301865504470088192117302430353395354833312559981326872649940137630996064875773716940198617242565315493558288963105806441776221389282022562921454182567938331189562335438408772259105826451624534893572988503212571398310137981156277499854137536989185739215841573455051459103236658548354413967473964234345154841139098858723329513896566668298985655893036331837551266765840242738532093058651221377906558224182119018027027134108909294635870816240593113167051277338131322150129726285943038780013575339924357102869790664251696357524793289757464275513232326268507313542137170614792613076586381338425166078842889568209288971383693087156484558107008926327073372706381493606339197093712838125183412486963220373486714997666325306199355946689445669681363230742130336325432261777223867618972683795544195507973009307861240448560610351953559426687508015563545618872092675673625714601057298767668918551373251974840083822548116719242920090461332816759053740156339640904831527784164139547652792399697934452490051669462839919004879847968387845113346608242834915104546726248121694529986389780478681819128280826573923893577704092676497868191442413382322339549772288436317716515149972396637143470539296264076620271427268906667283279142185564531788921230895413782971439767835812578869540063648249669935509517325641238057963838268354163581248221897976310885412847655529970448446157280434949701155104701770895292881084116714075813464158366050120295811771311661311317291959318169429822947848144391828054166877067532961445578648324185946738115288621645626045413015154586843945686238369381808079048492779954662184161403974455465395090568210004188965454955187237332475687286954024984739004810561902404574588143594791483369190540855301921160105081118612378738370514739183063933227361905918476136363407866601178016842663678547066717262167500589717652563239912592636704496220430741404443540381670738189587046243105744755959014042384419204881270805368066914305864134568660882376896829186954560438693095390113386513475582942298342940494707002353250965422235542340022203338476035498411831167880701370832427305184227327790303655865510345625930508866238213883509548814918520200724258432461221408974472167654714409252862911230945865599314478882157706265435839752173839753527354860221306607006615001007897769345021260234385952355995291126494832622733966422251871854288041493657745211558978357795346999491571268054282915359309561067019953524263662397349849419277463480835316485735405141457801131498506219535450919237786360067995346181885758004868675271523483576323018040142769707941131410004305834701809489102228428655821285804225628106532396427567680770223530732847732930847110395105437655248904766287482354573714227219238723261339773698671428408696753768169695267524851169054910553639539936525147210888623352915305095659537641157107500436075376159484662833712487834464307050307378598369048758513433064787993656900326597861815362848431900628519478356981986081808553826974155650098576558996058897039070355436910341339921243347298764557275107784836828091095401653820080966796301668676776764595895199628722741466468728650606643898252262078112458729594813201161283365730510376415434427315168246424879544043140055340874963994008556139706044367472021891073918693439026044300760910008407592041784229123986586031069058207493626516208538443728832248633079255238813950242746810054441074972854410867263345379648852596535429614501358709970626793306961096474139574106090131691802875536858269533244560488349534010353404041877863911209243081459401921329322132841900156313437012694072675032777969737040969128500234803210351507626872402394534860823010315429428613375913760655661991007130675161679063744158780873251596107909760183500423193521263919167106371491093584086392902467021655253286478050678524709723701833296861005537198306749138086678092699887626642813636812982959723445986613220294750167882025210807365468682976069156669999559439702522895790742713293690562767619984078215440816773460949243615283914172396702881501397210382839165861099522862358593279019702628680769521552102012150250352715351467169466595751981992891499907914722920283617835630908145914182854882810528819076534924029827216467933655202128104973212063793086495178350918152028544759922968359007804224685101086498389433855263070495850387055352051992729436466500210809601945820137442320560924753375123835799162692316558202678060652642490045742435271985966457879469462569367622354721346302142404112868026303937667841964914441203832744694340617489435367482366118882710420359044595526042780982730465825828049258673496942419099747555656543408848895018222072299045893175642566078866547925384565340920180425042458187290447363623105201125298321082823169886607882922255821081862530493825811081022113788309800650196573506620259140415306830437145580635899368220327481901034607291679537100723843800569772241514344189437952977598886375344627891827269610834536984873502570145585859437020250292780460630423055553332976151333204526703383739669957030348824726487597902696112238950787734526795389489668064048643186379440458992355987803337188592626246005691859397628313046244343176072272597191593299178559458723481491347427258755477582231332742824125784101429120943427666770278642681442439948970167166032957918767757285442052038459740522314411819480115661115794899745621650521308477431759788379224883581477594423069153930522925925465007735483735507767891059505479701179548267509954777589616054308664397698299577788548493974471439662557504585715018075769253654277666079457801500320426893796040817305463259261299238563674674473302672575356199514759079847200687456670317571775667132662563154686326493553438626886740350726479968448496142725877892964834867704602870056653640835966777918607380081441210792423631850949649953999985405969074026453395563978150747475672554795954540443894217430864007357896914991268996453757612878933000623535426637114620151208330955709494916264526705024466263723679119090714404055975112903126785081819069645995033487199587696704528292041041411221467334321606299201736594916057635641681414449254491908599950705008573854635062401742067087297595634005983020317506233572642172506926978084308562441136931782020440890068415744617472721207028871423125740016748281313180511419537443055692975950089010735452118932973387722533319485951912038176733332021236550459228029058355141681967511001193759566851420802348052848884981897534144552805117580980136414230895111953250696345884252577639550232429316802106891071990267996279053793666389073576184318121938873274478394755814892817404331278466850413390124670631821703067503332093327327287358060745205309468090652115606103878755124438444091768925290035660288861491322021560553084661849454164982661201067891522525325796312323407283943390320170858507443346538681518673271834688278903189261983604494249041159857254849413211970570783082951740658630187806258307294033932147966492994809901056453686435338165119687912210252276068858178414504917708774986757479621385937429494277232459850433202707012569647985948315034581002152243447654312535083921459674408891561898645304604000301961950686879864029390292544132765642956990699577285882788293484318554105841706955569999514698514291102327543408217258157041154679895578601783403827350973238533317878269421532644743899519062397130037762244623568013647656736032307573821685709576772386045432354858806468970431407968441202301298944652273285153119921134505049428353632864290959365811413833984948314366662761225430769933790380949034070093206813366587781667763043057820626266367480009625403552856343400264771472460359166661629248591216312018932039147287159745546798692092005040064363229475715299336511706528339245687822504717017748147857319169040404480664637358567350996353882591148893049623991735743138048386920273584601610752533184591111217413052034469914785745358434839615397889075224362110826961219352817328363448995443391789333348296050654379986764785005286536415812266210258815251172095979814578895678234196920097015983767545211127179204741509504118119924914582941203582236989388280458649194554604414116428729174916965151504455646154462198576265839696701475033724247814049922570089808405622370599931146007240173620579377543709785918062985056814435349823728630766258078412439267275799195856673211504846493295268189490691038331834998117602741612367719841792467016501316395182450281249233366568593971163693011117620187893761304547009658083798363613090770512381064169343143829313462109818347618615156649649826888262636468880771167245394851879566081374117768868313380635031838634781247388470146154270274578850752820707449980697618447951202264566501120977333414616533147142606030345259095920931419978102968800550905962213075918393902354111231587601542614447705845117097139316218003507369683451948257557740277468019023934435677557011786378077451299710539252906796071220166301079459991013366533933950261478010877993499950825320475655058570778430785317442149257672191308681950277159004805136346071404342407784867340149599296379558187360675074998208808270909777140764461997638759775725860209431013666255521278718557521352407701813557680232286263867542977523580131647837175475809036901745152207169562966119106780354134573436749843121393431820325394517338699175548548725761081165817237056283479749668658378562094004922777822831349055105715373300120855751625690492656970051870051922959533819129447086982346519537047586312703275468582518939617252315389058193287830328725412085277171256872797023451853251948767305708503036269415487692384397175132502108344294849127918359509515677249238708138355753836244777414268324939688385118984882990693426329686727265728746111233602697385306816969327189820413067183773689498508096704983404073172429240670790448568326925088871243045602787980254524668318727556042341271483384859119508389040791837746511233368177155234204407509178997165182421178654276491034024446410157078545216318614573811986290656510180691800833965414560956118483561105388777028563048125229019780922997846178576874435798126024685762007805029708184236377083931707842195765141604129572648681709843661926727545781581205207037645457792615137960927460998512041512334249836647784889690305298846632144089469173366380573724911138259355616305648171635059757758949121898722135314983348670736757895891474507968266226654564401525557816105271281290642295201951385274040295098545642541577534429296517970689196900554916371395547856791884024767465784593770942731017689480020629786315300270342779458249862390378378241794144993856577542507619935941421177651665172498476157920654573274590142540517364622654234621043176642379793702536710937855001989101160365130426008209070000768037651080739115717280088053645513518129618226789446234590007992590174753717840151494030631361515875073423927311472308081561807330993777631352408275169212157407632760444168712526377460885077596343113735556812330872960200167645278653332944847279820808573825957308972660218644630964285585837035190206904712811127631802799438414722422543794804376723190827779221346797564608196767372604823448232215897372238188195941834131955620383619003206196663266715486283273144684489121586572077611945526353807798288100171420338283178398976179354148227481588111494216652678095524752091233117700738612641242788547880433806030777344178804641655269427479080001369291577887090088076746320714002031799134280546006148308483550288797776974232852783749576040423192383895927100769082972960912128282119452457068059042497252721279949611094497905271543339841452078818118116690797604415304977909519112676287898578256582051359160659101553441940211693035245581322972382214929961747392373758851499119643857503770381611697757422097946414099567016582677736374495754613983818235199689696241644803937690748585372220398717275677968113515943606611638850023496035235350321709018863815598290982017038665793562367664841482605394026510300341371635968943227087533571888922884268853376567227398046161013972645400984156683431837938131575970110633439184416805578927053573721249888371565471940035754604776132689739569125070580209132639112045056877835643907451082443549757126759342737059327944786398002755735801363756699093493588150011379387041938580295120177541717215204210800942245795234631371523217870081576942127109333007690621479744531304058569712756115904216115314283846450250404033597755433705039457457213446674354997429100549707019302934195479952558181720867668114611364495021374740063791513672427583205887887922442893400176580893676136832480428160845141348817168971292316625324806695272875632435386581481765413166674911134603822533458160764215104053330328811062810077703358678210608709031943208668967129343356993641176345517119624660610322496177276681495307923647596848089358960418297541395555510279275613343417822173135042014517706470313283175264345452661883862649265220349190132070707103903140823172479902155158189582005842199323115584473324641189105516712108796393029884332155129467665800615842634678618038663133130302980274100162213491547805036239419432031001331448637277932808383097108597370359923911921463722632834729388985590554488848941166025304956931201740401171338810689599963019713686015787064253978808129239933021129065967507634376900085100020270197649035144217310630468592013572596592275520193098241223592439587742768848503811446311134394619385878224122592126813030345156548401033635027745330267435226140263888926039288554007643416674073072706958573702962086704906904657733288580810826826601348302044230892642110161904331356572979956377804173094904220663449991450482912823732872360841208987381720135277106797490205705635537467415659762342640000802602297550166301542468359843324901853236439196543552298032556567439509649227958858285600558198816550472821439959780963191620645731831035876412537958227922037340937336151354626915688968359243874484919737606596538186821842225909117792066348250876454347556866873706417754879371889449478535206419881577528685359745908276690321523714257469595121087093863029104190386224274645231844163291599428552192044819205630657280250140060110002396638609949995841325902573949376070043219353058592644536480943019418194245667365839022416102396723514090441902918223443971611068536685949998779971719282148631804191793869492200189945161779571747422612021092611627330502286229901820733114525769511207999256667007558110986356055838012234341970014430054797512349180557063310797899443327960284141077382420252259063561656197069986182139031451610485089092873790447728836684275821327596558106096518958291454280962522333488015525941087757224932038765913034048542136992999105726233544158934827220989939830833090664609745982285608448308104137758423566788727537347068685281044507439234164680039100627588051536776807658103295853683128030656201514769208109837940058678222277474606860909186241761922684257319903335208030752638024535993434324862706242399734455971022320564071098084101022772893981506932087452221739658514782584121435481976154589165225623158716766815979553451771721455872657356494997451971410988009371783253762644473139996308790583489807223414453847733292668961445863027971098568772733549530837744784101675681514819229900083101647334465457248556312625427828366300755729231519617953767429944158759532569559985635224492819667455380412791189843667944594931705573140199133690734161347128395870982988727272108842423825860106091615436284763900067024252579993898160057310486781127517431734450882650267293497707977859522092510321003775494949491065786892626664002443174887715857107702484002040509255097805283357825583630172488669465176907123371201519168977796700643286384383685933581795477948012861129955593914017508989956193263618683258013463862557236181585593701723172378390171252608498785798753217115422121736659306543006847081485404581108305780529506544298494305671388949109344353851482178272347065030397560744813328357707165705491937176049065256067256667865931860052158199720028493971247683478685714229529881544562627454010292484652331400304306476677373725828070232799086764376820932838804290911176664418857075656915968575524023189605081957976043391759220908940768145986989223064205200151208380650377465009277022984569805642947001990182762640307037408935106654498354364764887696877110406546004805519631792415052985650757048892455187075530816162723433528883954191269151507822974053456947432133786250583087921370255139242937822596769079161790150589997215902432787328501387279905328607143026059475888537236400333328324947345185800821651907472749571972369809989922515373109914733088222973786365621819056940554840099433646245657510706950154111683073456621692735201812153296454500881968019263242076752861059826688787883480044790723630399444202971260492429050826223992109953798278241689790357531447838005880938015362269145276248574457840015810107409041060130895643075553643660854573092920491143138362549123010743599271346360993059356298160582719386475726265882546581346186557327466995437469129086823003618364446173793227834736112099788993725459136714855748724120909323675839338690677396034057276483577061396046375702194019448322182500467185071919044230973050181136150600163539146127160496749683813859719797378748587515461624066663587243067943965026070260497733816437670500022825064414232205156950469365735612963948525976406700771838996766175303551045914895369791512848056714442613582715572897967626661054078750056181038767817687285316495242288534740761669098839601614189932559494135630819504908896856520492943866638102561644459085239495153854581144596542991531127135604804893745126888339008495864531820405842278537031735840244252277772641003990168818053161371700949364356774113140124534681532981258095959784509623809422389678486762487933527651981881908539755451720069391085059419967212789416623003055200616243281399623563280444006637585848412454940074404176650449006561608444305006925468113628019789077712297002633213516159616516890189099708530443630318894306418636926729894950179280486711807668022270406609596979482800525715455758546878037827558489833583151363474854965089629824518438531885568564109417107115355646012815570470901385429088896161168521841187833480516876062787423941725089761667066574916463805873790879597038117176229575949860771425229755549667875160738582930379120086921850151074803479077362089566220228068678804268866706287403833559909087583654635573128161822524755147175554322767264747433375841571925822686269340292252135877992425785993874431795533030363782434363734024952085305576154288785391149338971551384172066241072687327696936617503162173321004295627830828248748948800491370173441359460055099524986254097671405049036769977143493201863712485564687691563533510948470150106213519025278300813154485223645264422118340390780175973864427890856521920913030814402978068422499643645893679758018044329676964421829591422197860005852284760600057233024765468220609141348584376542651892801308952981778178010478290084210940186921036674619885264528404232220287047397576691541096824442227587009116974901372392300988273426909307850517780922398084127067916169677271491686859747057060744156731153343118607611328018616583955469640437271395321149577093389048082841165400421798477571563273535481817634524413113131098062731102017005379796178546954682001702979460617112194192846051945258567826841582849446722527904353061321642421705655352071609732206001862329210502625707785667831545813701615348329456376641525641049406290519539621090345478981960770085552001941514082510837397818280793747576026241194070803385177192834912974276650585462524661643496966971957124735981829251610737204549937446499398331310377687529429401309299031263749570647999907399723405346728219187700541468534593388913910997929210310909562436093247329082106460140441033122779674303715201447044356317357202395139170555161644546938854351735742154233488785884035227988542919027902795562071060429062838337315100181941002676064601237844597991622497881339735346152888211521406886671901563154491212453893446143492444443984708203123451442858872256337555923497461185150978524695548233059061126174139050837358845102022107976496179853692748526519613822025969666048708711936435862998833061875704579275373824753635551320688818335759301308240615303184316073155212877613795037878566741534712340560686718846006158204237286073182435391814230410934999437012271726274464873963577713412287211309522684082444528646605046971357813506931213962145879880129221404359868958747645351956968026956795149068205093282119050722244458622947054976241805101068871948246111262318671040424238019660037523666503972772335574511597782281914967940523782548059316954626219741373306842654289700151847012140079687146305926563162219959259457783162982657198857906785629872923546839002039786474247769981993484719166039747433034122264040745015443212337466017853087621638492287668412275856260796153374384256096175402034421326199630302342154863161024331289613558610337874114748629579680891535334822862023448189029076738298525796316404654168699255182751713628722600210418452761592973307171285327112336410194084068840393628003486947104328286577444356327733208125274324264013313340730528462120092358113229777265422815213749591309530277760547855463385704503605393998450278556851948415148091771666454869469114765788825515385505692566688203218291379510803460583393536301488108681614436219220387741240700710517842264320594013506774794978956549549631225944034495232278645268067571198828707712845400898106664287629763599022415832308216837346387684539788550520386826937959713584530331409317535557549455962532345281757887422536440826516111651962975443582008871082120274810073015583921168325218470454519426219572253882816168824730470750719967745953356549776386244260561207678633752551705736053699808004847299634279527146291390523574252200117650735036655639834992502963504040638233923723679957642519650013215658149536894290401915803573029283375639045656254144590511737407121314487628109501403506834709802982075033467856848017021688888636586438105101842353507862713749543010311293533978556954583917943389855135619793580945372667054919873872657973654993143805883352383607449360897006470447960427024753963010380442008709488798564090979832276936361266704527601373473897939443704301821374897175428914279086873070257286277711801922150231419540700780792580701662127980661857485605511760868613817407593870751577691930738660858962474904112865192811292419297247154104092178073422847937822090134366065965451942889856590658074493893462687339797455672088029404976138444801368544172148480563567287870936499111971290134599827048418092843634636087136970521747889511729695208755158075712575362071332886483245307070418952667147818547305352565135203906410797594103680529623236519256883028876814371316912776509848714043535808548681155825568291923149408817046592794899636229648969643699378777015085045134907627153940086712625063944204305758498911685568851118849526126272662567791417674757590944500482770787852491213893378260499150407909171390613907553647340093053724711546809169449599261774141860711339802047472805861784840768538382258526764164493476854575939689740560768205027871249187931904110495465998006191765937646265477132327599994351580148993680434098413964773446232532038738965736826872271542570849744211186793592788658252373524382764756020300864283810161131475211557361375400996227617822076503385954300589291372548916913460371265665917644935332911778490290728827260550640631003659623445125541167813199453351888647203822602859919895565440794170638539741993496849641642494013825434252966058414612049400897194156837782529303560696109905303259888749483464876227998117331629746547157462836313387613389913891067205258749867425083578910910660388907505212125648545965978321079852813719470271527105733608059106699388383473256102179227895293948638546162850003732788285606916230423967314185586201681505119285853386330269852187021405610088042857265614212322240171074342956485674833520151172327397058953432124439834953590639750782426904365992845520684627991470588212270515835911134222476228397044209321640072068673574392238812217947095336037745884408524597145313083467343159188119146222370802155662656833470618291191860338808565349095977851355545152303340469722583985653772048956474952637488539763232423132845242992357682044607649243168168864963746926642652811707781511400529884321369870579591757070390559482427157425344662735537179885175478122693912445427766386428823270790190613628305921859221483313060132298760378550834751806043543223637399541214147303723543013796353463852735511064837385483680272374683559767231703000827335773957006033343988816993893100722179611267694495944402007298015288488205851953456544201175597383682563698555446788555095149942020872816026749628434801173320279896894417067135097998145340561948564528578798702916469837614702783950688319745429122888196342177030182426672366412334840281711849394998062675246405213238940093231109445839531268226350354513093956131133728005923996823725225302119788961757167771583834277147171088268879575423865512245466918355862887565701520685815031614628593980839989827316513397074362861120052706463079966601402137266499293139671707352376491963283877986652647270302877929581179728134656337913020471282210041170728380281763027673104665373176711430212394834962792096015172566107839387280572505826533163541614566048141033028695622299037136296707914122462779228640203027959343962108313785300751528087043424083383014459670604310245719538809899500157499430909000628464212756543662141123139348628993465059059528254303190962245182841871465858061605558631338003829378312989132584099352379478102502414581170792177942410846503991535502299846738777610799212414831833289346115323822149180881555530405121238217476543215027904114237420126383437089584707929266363136138084634757270363175239757487181336455867735177114353042843186633695733587072101414731851927669606921889625548382047899529971574337188974701162902967559510318903361175271674229121166174863533441629873379236674700255469426768013665401808452592799849144608673436961806389889259009158213643107683595232001062917857170867411520592918775268668562963258245659968093289073369166554476867406472629847825945490662496149265272528677375253852651105900872324467618706626328827480618118366636692937885697433207793753893622017706597772280513013292117002094747286050832233738910905487674782580220509399504263297534145841915269736968323235929294125625594955800212018643665014158767685467026735859980170487532491924657350452326543798070544079840565896735280802794096821238289192187011292605837693203743163080662019954600833920335745860211742022860830446573250278851783011592719646882369668665498250590499390030814056953789227729573697889083823869723121747191053046276708065061720657722242431381279780381728301209354676394041110199380213604418383154778078425257340078535321054225647957795609010291034038773069050389780122863333834294085719798298618552274120712851766561631255832675664188555085857241805448458729122847276388200451026734146144308485601492058665481084565653898386798926220425236620960357421462608828522147059695033801023663501461407562388847021770306703303005850610544329197348168076626942829410399751994647363502432115258806781027031004884544407886783972272207509043977068565727042652241955706749852070504894338749848785684021564245438337921590098906583302003291552334057157178092466491739697217404656413476462013206627701414834206639215400941945823116105741998096704544658310374295456775992028694660543789671225760426943773630691590589302532492934886697445237992118027053963799109285128204760191621783736411214108217322765731491604518150709406264037848111878974586847698348445254775323724043725785589379639824233480227379447912842490678682302343118346957488294528586255653165108627991249712043497497278021533220686161295974882434139822918747293796597990766231920358574300280689603691694505986964335932231950350754419924744644816204858769572121693764153655256578504866812366867751547858351133860401116505468471761358878803542599719745820938309995482376436475242438655930166111587206882403393381355631563495219419888882257186747646943437682128173442206510068648661269590908454367336201411547160172809850062695061819577424383169906025268276824662577506739011814971495765497693461177337698019181778368739820897388155603909675655717356694955758956551632099887652067629803353176328690267596321735706380049135238066429068519559302254255447698556822407334339205565255895011933791768672327614721109739606659411839395232051943841638828909875387389614760714814085697383609421625831907255030561874970704576312870458413805778128656717887790292334528538963057909682856546123294177307312576956513909506360165053727872490324326338419990608466624763819365263745569395596715826025474735093784602590465344112633986838420577635532212269433777213190610739194625961988203455129319391485234023676779356070358698174676358416094669453861348962942129805360030471208581062762392855242245298336371734273157590791444022452178243756032230809054162343221759321792900853912311899159593750274691837768987346256625983426934704759671626019456653615690039160544272720707884581322287006965433100604347151136909349227628757166743606198945304900957369092692825550136266259583160228418003813292739082560731460716565458963912490078952617644534713285799996175548673219420054289388508506129741622684374356650269735342310698277191981789808668567576821349773214700342255565828649888109064087005068016814743676473637964675078903200340126625395056085677771425758076834138088708783436440024906360730250419697992788433827724195228209946905788831442226885511312895485844689486379589759197924780063033821455495870851575222445640889240436343572793844674092619146633220335596011815942927506304738370284506026660840100916616850508358847331538141265484376673525878351743924662482398864440720201334455531947528529068979997422649290277275546540986582302045833978562384465107399602070911888655849141301316522777367299612560608434183221352909748077455310636969160730064142227707986369350933035198527535433342189344048984481775235694566386101013869394316484705970033127719852585834760452665686587343642433627217215418881655436925992920253658423114000428238546015060504753606804605932069388087232250805508405104934439441445396419129373545695931225893216198099183059228193616088891032752388519068871413714833378454313873822671663399037264285680930502143807495887645070050361062901296702749383183602206679897811879567021615893639334135221319799447599033122691333508628045652955585776670988975290379012101429386327930951762805312019627138616138635236807345317371736075990738150878483668779370075535379201890373901905797436787251828340608784251854099971257258512271848207515028221339008743559120201080941888376315217925694938018172798195988831804033901703476481209329106773915800251957423580771184683738471203165589310566192171934637930525105418825400788619834843593799008215223404189224498251552316122127983538990451405313360266058915181635685279232696754355219590910144813252851410866287761475040922166289784438138776803415017446585752772134341957609273167637855464483819134378322038890837424832573672448836290811619610461121433509015123281165851350545239374469773117609653141673018709703841016931767237898500144994614077696392665819338417727509294466052815241315074844391382647622328968645545931192460132502976898709419224190698379349506750023903987426203343177366907173812132733205656844805519417258001889854856062692333421582166853490099796076231736276259979418387251929845835520582551438204713238047360764245149814103712342224473946902195797402161855749058446588841277047637742683845535260419299743115725342695849271626584534372247218464492321097158965699790407123991287903205367180130293566837282715330561568574086416999983707761442439624168526288088766662456382652564336623016018645965547436039822176693832185563109710825124488231170727827375523799211038277380972611879140978349190391280806440583981834407707970386994350478148449098627311683883199346455470218281646727228772430025538308720790996022215279820658663797864280539555208336357668460263429372600693877425556301867642566614096263318746579288872383500091211491733734978888654848741220364772124877761571486403124494682136750115013892540740619851104004043730981156723102915259433333253891238078448524302337167380961300827729100817642426053234772772176073277851837537249950088415473536185311361294819208451234179994187478376387712707044160475633467088037852964916157423446835249652495227266770576898858214007168058747062259031578930512358702819647694656692456409717584468199789507347515299332951135075505080480967173621962786058357949171719620896332176485731693991625518617413796063148159906956326951949137494899820809274472502777118929481695676046172287639489694079195609517133661238615517308657900108108373908568242947483531063664522265922085270348751296618343624848224762018096894105425164671043109756638874681354774014400821503571845443323678043654653141988934586446022077784893443261766278040496416419978092902497726524264890346333401994648122309190231677645471853955578984697466385349708395454805887354830271205955433866396329927030848526811485533469056625616745454229433320496263428343601264350238772665906735505779174822981077704136564835501486368486881513895508530600798739123503682628315390501910544162021097772842965867552974032563858252250343356573502826314207368036799085737199722199099773863530652725196144467181581992322766976078248596815828470064789666823108029981300738509841535847546479763477292120580038227565282279820680348727553891378676068480688376200226461424039891465118516224687138914822465184278906578002799975383906549239549515305671630183373956044305218220897141706944480415255933980208269432882323115236434388375612064981226028557892916357235170229294982390465116639901076320485028030596036750638183806925324624844709524181294693767058705604503722175455029625086663812200034868040629161273903114492486342977804243352972734474561489925652050547730395196287948872192674098074807649236668211502213788917067005601171042253039872205051163187533614575550874189061728988175723297418973449238310936929909430669195829344431363546405159259222140710210909839727549554880535649705055602893280141114860363966883685848859930040839333923138550214732306229912767143687921066169609672872402997824643242396265854919988384827729705520237735928640780630958912040146524018736571006597874898460197251800174974231884895931342676741290113671803273724213505517445492314163107770867514536750445378885314964872882849669815106354226523123334939183815595392734945360883187474638118084259425251855397306808024743408254709450442443906806311366638268973248734447564641431063539798279036786275058651786403118157267383377379161731954811353896677031756851572641201390783562781227791559043334990639056961983706175430180373055678036044358040860812793602322237227793746761334309680205387195964610751506575184075494135585719079477208344093734587006118598731273679187733233297337424563781528974316240389132374153394715024501816665544768371510091143940758483642393542580517462706578944025113116497768989419212917995016057148740366800338901627708883395395121616506682473953454591272979574287213881191716794325008411999067307754716905825487219230758103019250533340360950877704957893288384674783906318917544900480371113250538493029125270177680435642246389068548762796455740731936476039378189763102611980355142709550744944845387699245501280368817162262266903374264286772017283073141327527072964795163832178275504065361034820463142235008050665226326052467618426243571001000023438698199107621281158197791613596397162391984090275124261711955365073549350611179462444464429101407421458023143528557502121524645602210304796632143690636830595239201423160921727824279503511126525075249943742167529584769397449296603555754265383451699681943726359239389133063218758556339187582114548498616805346486010206440553001814410809345199502000606883351761851922942841307657245263855894604881375785398268116771839785262704806868570053225508342867228325443304205419482817097994569143937110725120571168416366767009476678370069207679993536161306434856295427671383467596059341908194015651935248126284766312000475817078021784392490188375547189564706689662298283717878561169774119045115708503202483160923925514864560687589618503042393499200501457494561601338325697899967955541692909040362399489080913930249145230423470728398575044978993616202163864627356236579554066122750351836541111298451219233758313517916226857398896595094887909156717344702148766990552158428909176622413843649584115875193358599524946858122507321052204612461928489780762969739445278704723901018021854711910279548225219348358950663724404662463839595655303982625135681269023290127055255455286244497851602514476488787285934803623622253759903886895203290054516488641743051463678321905089969184197632231209164154676547351360239523297533628604764271610074486308879427107420325789547191382432629567962566996916371000691939888023750581259434400382878353954682276247798273493976231303206888076030530400609546449927825025667516081101252513607015810777093410531520315557429025825625036342430190660950437180646494582095373286243399773015627338246034985274054114005885902729032856737370069210764076058324364355750588893898919924767175909818304540098645333930556188927069166889599345050802170734119037107049627245974613277681473793901532079133421183109121965602255085683073207806262528568526975597717494869059214711296481218935639687443902365031351408958544389461828378340059911437596572968205833431808767201841514815446077594554998171172595652012594144451767388481754947006100937235375633738818457733436680844115868619124923127467253677287031223149897068335588755116787774673299074418268984764651455816155348624342815464729678344345968980881394053403128388579309436880555994592984125493153138002676050860690743281280274026049132138521355901752669373293165210147803735534312425407971414903898591974912521927144243075267365535604181847564607743307734798756581838437474143700700917552870963567985546080829317514435522262466824900141241986856517723216517767631809753248670923832859929312384321375779398854836391279052886595727371244461906284636818221497547404264360084243008635841781676958845044059173075976815973574826728526032240527420942361119480534204798090867854982739385431321559728553578552646918017735953785428647868405518500130314954899962003265622107570104245610723570403466825976205211372605113099300038591257876134503535089926098960156476022012192733768325058731797449859991029550741256291648202518408577494355921263042947181587025157463217689028214022555184114255758425577737008286217746569093550397131919810020541153147746639688210284172455478367470566634431594660753747851243002193002785757092242232790633791069423060707656452534153550773104106708854173486167945618481215848992460940867645373777613338813748477898860919285590631169966801777813692506396023568076226273338545871186225289408736089544092630548850128638254207998591355146424535054573957390157883888699367130253091431285022371951067542961973421143598301871942721777231340150401353404505485464252696120742639020570982976948184535293504277080989645576688878717449267130148386176162186533946653802275773184928271533233683975465373395667395905959729672761045539186311450514428969137301237939590760866587515976461530542569842299945290629138195866221700250363160635239272689630779862510361759437461197612500350852953337745642106434439298935039342522155496727444382884729078766450776503907959300033741622566227092586513854663298494753512641777630149537570239892591752880776783860480818922663546180724231037928120694773230910757524833264597115455931062455296293983695649775160413654194534289232640976744070316166172406012925316121293275119391971645855255247172185555319863762149053669159380057586075006627304420244730665927506478397782193583906958345974161567741160967564774036607979904130620985961755152192927920535334686405872134235413546613386344177318425429020514068252431082311209766840372054079824731597711590541046199030986706796075344096284043137682460150714504211543506384401294896960029458756329806294376610344895212402675253490436814222632848610189336068539852959324229100191713695845855081313835656497873630130508924309478438947712290015280714232169233549437992085035611115225404429398258118553956532702411323393327217034904556545113678953354552248636838654106460425653783116884805784986680853147354930658490532070762218071182403040847379560406307848086723553962159316420837975101019613202684088644538421354120049698581147064021444670202546338531377976068587389341576465601246038329702766035483188272310085781948389459268458629312612115519159427557539095920377773262737549114486873163281754905270258008049234272220695480115112694757643148254183695776725196230759258707600222069506315211598099896121162525195320189566647211180343284601796636058344489458080633313758966140758487661503965012546171705246087793855022266632996697064461937761605449293507923855065113789156137446286778552548766058296522134887308500292112434783675247872461773453702033876728853067762748588342437797702410111064097593795462442848134838150072948476768650271304770086800404718737471415702312998857482928397375898248010172562431853499165618914246008635592823207047471573734179827649106207809845605563382769488459794493374054953286232033213218844138946610631175199724134062995764534517941000641818188837873227570007225631633210015658339917839680765922491083254854497266413552704207097660170601254723058567115911760084949087112561279874223205305486382206269260577411258214731196082318128989250965490917315387899327718882359083450320121119355170488611004265063336942934730903464199964582732659712256995268622651526883860193088838772442545937644314334305314585601155096364934381951338608033217716651270172395447133999583696853889435556577470593862263752447337372189208446830832477571994808339051994282343824258952077452201603554491017946129359774923755503642401509149659077607955724509513201684022729690757359176710486778317947657331431531801899020926213259237251198686536356530568615601380269898213090852842718493698788818815813886904021432385697518987294654638633093562832579777955073154261635898921535950615573672551251632930526060072656287068479033776686840552157520046985895683017758809901290325193347486343150364751575175329284462487676143387792726241141576493153169464369555103551567049340466045808207712669064484498134554718367450397752766177885123674615588661476017713806307831233934351134725254873384001017719832978250684448544526646186806541733893104577229596710894536631171502723640338365145839650895076950506502895093432362851483868612953004417374673648969493235694592596967676615068581343518567300870453310931766524964268189576223086548259696743956509413756358923093970088190055762529573070927508287804327616734872234152163076583867080658910460785288066965586504094051027995862406836457500641371825137925867141209156427364033723793150085276863725740699723906694244144991986782876706553125210034102835959225001493705093555856752257497451025527511521428421550480129040397797735837698600859009045787045702777715200656556517550382594495997500445396973148125117719427465006515427141888125989597086422187297950627016226880875219967510955984376885871463637299930827324467397588462328033367563022647444120937474436370072178221325408687277550865316253649571774654723587342561693830030481664772790801618670282737726789936948517037778083159311905255550051029206582963881370124100850198114239477344316696759039027673134856202817912040715548162315969040900852900736767152647085686036566440352407898980511443694662264859331702588591046229167692157321408908056925899500809997545246307631554809031193545471850105586835557828120864488117976109928479135592315461688316473579608334440287375150391575472601735307140787553286849366020374246025098999959218611317773870204038426454890771041908089218479815513498955929357786126981534619013237761360714640975933037116785681902171297106866220556352323311068427846309388259961600150735957669024285569121372501994799446940133664298481832527327046244819526614848146817254754309199533026854129428797494085831927943974681202635781738987162398662250054255244955921083653660498250799626908860054558316567958487974440609616999115269372354760978514533473661982215023638872500255738474164794487435734198357924915330017152289035416189514477673551164735809059390450596632126576264392521720186943669940458010233919738318401686469907693666027403629711710432060200437648584003584349623922826890556400806003888264269774069230074141450297169877485550748503237422697833122647687155351279868054856186422658133105863471895855710556755599500665905509190769796796723938632372153731571735051733784700522657726134341951273276281814689337886302559411973135631401354736842831303043060340091894539894788564792669497050787661660512366856202659994989905413285322058769513937983786174282699917720621049576141492377275518366601708704286884084882009137578881021045819309107428753513881387202196348695019460354978661818635467437852939200599323814769946593992528232107761639949633521155305705057083597621036773919784399612889948118639376250988124449659256450537161771433265744245565736253015977505878045247429286937450071164922763868830493766321491564949484975202864190344298906229778880128164279663833622758786368553216027999985562397123402511202956056792754491564976600958579006302451094240998094508304478611442647560438203916395821025042453389017704794918144130115474077033890363768507403239668004869612001256104546636920332584793929882825082523988840675132949972114326460980251779159063493281549048717533094083517407363921428384409363153801010476500574212387022105036736447287959773432698454138769049409167274711631141805003014757099572597063261851143162042213466506011034700385770793538732011952609446369261028332493486431418676581327020772595772192717808244857888314406194721570875246047582275836755717041694264217368357079305402820505764407779218707016713400809460174085958241382903440186338885256968886734836363397295531602417963915407994755587876523646953779357436824670518661923142575183501154064653966501985852957169491671192959961324667204897508571732060575796041194217211509634074413399509955792333715177489325688154485408596462632256589631991208246160099576787250235219705773515110129086423121726067674408731335782579087658610287962396925283822873496058381069790674878057685884572333185360880917937827672238194985788574866482220927554448987823872020611104597092827517792600104351136390240171581749784046323970915658179024409433423907605305780570663445395144243640527852287368378385900388983908109000906155881684176741713457098240377722934224701898638904643010081633623909692741540402822415151079548581549520167169895298438166245428035486596573265208905742312105098096603617010126068552232109179720786218036498017694967771005509961128172874829930466940604001977349667927690074839890902720865132904603909865323244708205657802047174432030330856674989170634851739833992463784325771821053434659750899096605279541478335834459979067431128337552315992870682631413280118569759655086109326015528696474391936267060983653576448452604127369931161320816258109463964655635843651314774330908801435940785408172732349836782199428139209018649375215227166046436568823034795321468548727427240586543378470792764151565370044436617203956978840575953803483201454784383729678878527811071572079529774774552212345506487332075761179768771780776873451895897813500577361962258205671088478745691328292500899914288680867212993738483927702532370383296205625369802022523822687301511103560389324342690275506897741966505098325175929497345718007346253490572979507354624236663401359136557782501037726205023542555600550857987209167692144729425959721476835814320661150371526816770994760678931591551092121422836982001546573295175516475075144742996043375158857035424061438133263512643749218687497652956722228648926010239452235673729609312100096520151661106788384152847115811711485852451143536789506885446065182831951934214294391430454930047330495111315463330342405608017929276554407483884255355399751232449973278614421187917477283817674354183980691788551715550066325347965791928280953084857798033266478909039290379889295108853130169501773514995185375770650955784526196689982521386484864543103192186432444458335177141721565731636729947433107129375606126510115132308993940931125877151323018905334524796515106066687999214406532275764127929819776381205745507159678730149671628970188699729185469692148265545297849868767913581625748955949412299011642692341777655936181734486596704757180087312044336589160242875195967087689689311167932098898759579998273552375770858309985487650365237311644398548399647694921846905807221950166081435664243685831375846417162202680877367973952742780361964207255546347828927498866532226288814256946943923784178956346826412385898887827327589823155375513730876771818745217503561682186908374532092576534903498720754171689990069198737130134827243095271371440994202728554768513895452847709415426395737176609146865452515547120357162325923650915049085986315838865533067326043406792756956820571415498027559940840625299311236298408311780351742994973303270079901475502951415245507599978129724775822227353504955581786067148687827015624264807313552208690740569891508081316456202864060222328190213224880579031773571734872619277383637735130205817621783351661758846572265318293151771717749838997254258344297400913984796416492950480093021652573130413916367496025614460870343721172869498204487071137321284835715489888293827001461029283368794984308558054724309017603325615230376631303474938000095237451041473470602219872938526047212251035640187935747068067195420668329656240325034390067188221168947419324837370111413304228711929856067727945698600463555772511775572707835259280544740158260506541246829895119478171214164005885277699988048879993400091884298143809442892744443881215016961856389927532305984108770764735599228440874784242103980329238957501957213185669900451511440967798335883742737654593896609894920761942788641771310129475023119742860781857804153789120749686381163714299563604089650282123913176846475180385930612842175697855007346359701594779689529397807340835822480882166827555200131056353456714330281293622954563496837237833180686080094811574931846545614685936129099229455641114235649614643052465379943756427686030790536846962305428842312048080397747246350354400009233171307371177695178270120902913188828675418126077206154816027979660128984703357783554606183736006683755045539336944239992423652188248489732342229262496632717522822492873953011579678102157484392978178886244298603705287941134223970944554280212656643029931455092887400704540570177558896674204334273131360694520703568489289007439072466776907432472142807550286738533122193261189331039161474523849561340150950719131330397752859627407089411405470773015342709131627405479145464093543577994091710913986987264765499393808956293611704029436797318213765205642904750652883130829972566641561421922343055694883973596116004643221916982954686352849729395277612569864823374385888896642676455009551671310510009383799794023229206434119785807763601765778621610706487529391566722814513992573924929485636855708318261103833337115527936108487906701566121630730456543790204360576476353486308150231608111680505494860921986513401052635948372832297186279267658121661141036006647983645232058983721368646194165495842500088448991611118848013288469775672194748879470794989271823380315308919658255529856204253251812127893312927179387600865003480119681643878477272330927211192838239071498205527402384153429269914552457255820639694052311007712492595605681541030137056819608882944248779002999409331145627853690247016744689986324804762842251940209923958394953442690922195480176842231597753695315008517286164068823679565439092588558997933490026042196822596436087137080534908980506219867681643345806213935598305155808029733425693726734041176103389456566368418348245991531612112046317720936266460758278935175859053665301851829135053759560378608742815361541827366456758803047320013352417626670082565330991603065875073718705804294284729391708367457146423601613658217336142220106228484842516290875626880373848867036482309406088865858411713050544032837820855313412753203008402632325373759465121499377333143525273081232162703423042421641442724027198751384891959677384520930904158586294467688280197214207033102906896725525251918743654751936162872005731231738921339987498608067319868080154353618727964622702501239671202357452909898882013579659795014628164280622699186399168225007414495528430408103643656912857588896396368007935196437310432073114145126749396011165215109440705111485804412711195401994534228226063708858512025765297089035373350381295286824544150803914167239292055086926110946908006258511301682392250652384365639418534635817419671568488875694721162126385193982995930404316037540620054525178398566687201602173103837294937793921880403584716281908219675961164082474169580155569993811478326509866831528530261309933609051282942789375535154848074988866403993649188146894946428226273328973272906997405166778071987653837148624428728869611526655984552316063734816693280646167323158880826557466494523935692049075835082594044210638318820905842896120014737261629752440550170768501970042325174367716856314911821893392747362236508162873518136088954069051066960337216446610088907631374584448972293227611500168524608908416436323430364661854092415178439722283836134521246485811757524921463867018270673369594718022300493516682572657686974359072531918516394533645443990267745315821106554236340893100276720958390028954909713731519443252155741185641983625749253272890446398066980935580130682455291321204474882504439316727811005919657547155010888899832181293249421145469085770874235291113173072818904937965297771539895498488033075688846180406697215651181268997000353304413457730632993496293583235358916613534428313135795044207910302948048892701320131167678916519832750450860280426441274742614024287152890964438720584510525073988606995495350714438992531653860031839645729647375561174967967042400980042441503604347667871851019267551303221781660890132040637312262498104823556922516313433985548771681166279208829250079151284879125742486363601846123430803977433778895904570034789430372643825609192800214260515221410595134752460364635013374843730863032370506411724586867872312510728147830175134720102226656211822826520018520746208562442670620473870118805339072697576579181334066622312868352992185587124192155844209968094337477489253536078971529806507441334015838047120922170635164468134671508379580468545949863516466712107680003904289214001718706141865547361877970208915437815813087277906864400195227817986974965432071298550062838323688234375315802896635074244382444895047690520510585810755146372388704673759275884322676568853788916838047189967240240644177263428891064653244649892729316118812667986201864028594501379341398614784028320202743099701109552554359508850489157932042210715003716008268614452549288841581298939259396207174879584251230286156898767115647546137208493039080703859786251412830063299158620533967716643562229995859251019712210711734533338690759327100879900198154157033245965596294309671801995636389028496308336387161735113546686729359834092069371965590928345164749389145457698312569866713487210021960926920028470261629081004857864425071963005012921067317200971299693395759408221297260383019676439844057218979712073202155826135732307414852353339682398149651863007820956558480659337848551893355673110029177952798004610485778720494132035900335602649982790975687517816692160798450896633383790294880428891347084835484664727752100326501856996463877837681371315129407598599456490008782988023793661575997923627358875119992913088038038079814201648450439911882915538182408847515491306514501309298330916628956699905604437898777091505066054436354844378514942033490628291547136783726902516048477875689996143358730703006979030823573180330723830148263319944651985673431105013071275116254066039836248083190104801976949052563702056529285587321680390493794725892672423787826441316359498245022643738363061703181277871164798033780759120541596207284142469778175722926818355713905851461526531423691375861004197547557176734977748119150080792090390356852209926680784626773668934760634904418131476906019823702232591110350814798286223481322918611037290404680128046644290739871609239183830906710605877606257419212041687327304215004349223383020726030005178460034767677653388260846261560659950363745844557580063506369187954358061104931845861270872824145794740692296432882529089446784383786745180114481889550846460551078374001738204904966795868347638277893925839898907716628860787577207281629323396654862698261686378309999047461587934418988951307501717997102509353345691030205271758292310189116349910628231274926502391882381410596454441305799188126200392427561630914229670817737138228335697421428472267479896074872538519507980067220749943502699888661842694197927669201215451864698846778908402861027725213642500647007156970935838342331299780330702645247116790888703247667889303320548615181072664333725861723871844250281761902231400586380501095613271839862472931193401590647064737450512934840711148565896908191606856501545580508931059926695610341640763875520488948428775866152234754389338093481133347933118382268086214834676238617392774237227176896870562356107808368693168122034055326208467454588058099202089302087075386474172453795401619232911838249807589653624498983554063210444614717077727184289594047846841490181686150828763851867189289851989100172933509182242746299441442495455410160751113704068958421821646579521003082966627589049436233883941848109124371676718165014508912541055258375013964846533874837173132146300156148291120343249694274077047615272633823419661651893076962911338050377528104816420397640729844207176759779636822789852779372764921163662235679492642864119953640512458008497214199400850280855904636827335820589965467535206471086985101874199839006193457490870978021820649928914707993776824039015944162487459678906815880756874399685890601376156419605532045837821865696585483662154865478926157175413508926623240924446035563997486209872060993196762241734623497626327858730429693929255661814334364916814121346733247002137294265772548986102924027280292608623482181649518589485369109581734734209501320755443278194239312024249006512206098220836358844274749089109026638324897345626103405123089947638774364450830083231933526945403953499463359258638565888488120246900815221510626057536176703712014276008947618152540730619496994618570414281175498877883855844781891869998850946054878683994003645295873301401242980323377305338076904726566150013903829523204503760281595554150834935181495396350417060893659766968920689613454289872994651082893218040606344687562800927960941413971559914179562134019416996100177766181902301216724922114715548809295746888806038273832409024428768637463049292802331140522094324358225153791205852422726838429232255161315500084328939722715567248312504472184624096007823403627276603606761496263620295263119682821852097324077278960058594209109298917936794587644863605737210045731622660036343356501321542785721541449712132501216854788246391746545836158017326008214165071582245107347962431796831746818304107026995791206229868492509217446568009836704052410731410293625951648218518246885148309064175829897605528387730877312175300063029645431867317274170334862075797753676724638504417468194456886815031763041256709061860529104762918870065164890265695536116097186807106769883923304423795110397370448540888590666335447489951038448744929621084745634062370492004730469159404467832419200712859302996262775632028859938528041030999242062572648149230736839271244400278678225491628538405872862686198492248412027035661914021860717726100394549472458717835652263577537000299160741175092064905253189805127307770620207316063708417654367332034281482487206099506406003258628552799048658499883073028231065740812917176801364865347962505537146139250885752753446175580309928547210648299430652107027644985596701799776862722585688940984958463114445931173163601162564241299073558835158657370699788909358100877789970095518181813580441167296164469994938345647436048392069242286639817233263072798520113152254565557950682859446360447361516871565267611240279957438972138691331986969959695007604973765234174353906460293307475148094191272033106735816970413856072657370654345696728568285545411643157787133397795202100113867594369795191563065372778420231853057418738858691784353413940238049026226839877814274976819505044412922656509925533258990848823378869368134512623856182642828368401997391263993288176289173699553722598636405198508679582434875658857653050696522835826982261947572651905145504233966483407823693208690639304177631574730337270702080451859343268209593479638378812558338123305903968402256961792846480992798308586614518591969173780265300412075338508336190350766932631331456221000800560229314832290940986630858575886208040963779544030272192824936231633420880475067932928534027036079627315360351935614908031436636103149138951084793021444858342006294599513742208761101084384022046516153409078099668593362485370214916708040511842196398653998869588210206619664799368075895714764002305974664710651343663559762398035106742702656132015670294588721748579555471680242579664070339781394844410182913557333785532565458238402776571573916626766845000039722195978884975530960765691486591358277499616744314289584340478249360239787294302914859606980422490852441902164629498433151797199922047725446459922649407281357307978447447922327859039722258023453040130722333891960344209464632896401895285000760012961790207832853315444767496516979504627772635550639787017114758429111920680957473732503888002878132420157379694869699995307582273288973086084328245413132516329398373658538064928924033388703053296120346405466016965364173029002994297597225617883000464898386757125121524730976681131158667280520055188343075633484176928092680039668061634960248165853761618221159785156810086164304474048791102165351050388381979418279573062510421558016181828022122463535326778436151670641225011806806016479665520681937547505195139769979504856371908128699418300224895016039689734964515948270160857950002329505623265944102374803748492611871411883800810955335684869063992154660622007458469624448692854697524454401764572318892636049371386830437769244335874028469612400987541521091951874093352623673407854986933874665006638017320253360444325543150816905446117190094079660203685674260361796708329276004936923891384922433974846987066235266491222094610463781776213804218599838921130787251509305588579124316692180319085025830028093069303972411398063616461921313728999715108912509497376196671925912533463690624643456240292903518134185643596088432631827002102625663448064142871444829923072860841525410163005218862656100900680282818727539672733739970480254572828352025279277410642042122051265399522691570969116472222079149710736967264920455812632608347428177048227654676308487047792248849561934635146287571706356427403213335300832991005686530773143199558824410450391662547934477557129269459572324571535010771642541911097263555464632824465574446375907051460602778732145357326339682658167190135701910319989246646166048740027972448873975565320119475019635608708025088455622111958243340487275992569175956392086183527961731174103172497597929091023229760151152643751379670559331182233832243808869771894368229258276296183460139720539952995695541199903034412653306336002838971586466440726966924546110403983453169368474734474331074854243399979733003913580355946935958548111308420193682558810527455285171955325361864700893656992051177957398569609505814280300572337440136275992784076340386497403982501552423313904701206744034417995497884778531725687227931421300497912472197215495103274278046221626142505635064879292863185090274969252074824363709071189402384547787780869601055127124521064472965284771860915814751860894545975883932324426014195222101885301625320569615822313020922725580938609620754964869613544012548642094382902071966203799896027494739145305579138960209070619137025472623870413747455920015925283798076601931469249216633557875821333282998906343586085597722859075672586336805497791697686669923507657945626488870935584669816565404600710603812026626892507597531476586832982337810118780447385755325820532651598041970583243709839692786041450856547372930197510010327175077287677198011586885729391157467960928746793282303521074367959138314597598064292554341986681602331585767613566348951184636351001302007125198064020760568837667069625901345802912853535384567100588248162247166720693402553675579966448955513373583928514900116754236709191215080151720922247912431485423335426174356743916841148776162388298035034039338832784427316593202882477217835496111251847438651755107866345886508672040549149345629337596037740868112498789629874572922957997430304471267221573934930327861705678665791578488655914162069438862384838199586675122236953137633291176256638115333043297020494005418312486180469707679907144447435688896745214520726942810730488730993890087505248250295656285000467652466603997387265755341597373943693991022884812507482375592025577993830174393842531012109168795035714825489481173344353685546743764665204001078947066695219579446723167688123743545991747702096586019004382969050321392625137357592487752792270065420254745929692991503240128612125184354844573043009792192312626877315376399833831187112664322396949781574539112678513419918367453612479393247719786083334899939205229586166452901476123950114424146570640971637169195952151492871763558789323757811354994995483141209002860599972599117095872412732646382611438727871252711351890657075627593823738450116863443221135442695692939054890409697980024902175522642040156496729138463446923645644107847435817158210187003158338326597545292478409126252840575875567892150312798328122458348529950715898898051780851009841115690840736579662833012015947232687287133305583354668859096135955770975408111143246393289171053346712141285904865890626170930436218421473774756376462396421925937180699341260481429709727177606656543124105672999471385090780433537523659632521525817252705968490391721539865029394476907278406409599392028536870321230833742948048182781143127106112596732481765342585030666283645754866990553370016718906111170744318523200412451443511946760615551127350423883530357080791302974162541747357436409557839791919971467739056713861918427774412273902772965001884736942506557639978982459522614611380278364214888399206292039362335793681837227796532996203003798915441474763639558247886582618240991922954915206908443132135415720133641727208341776036924276120124598087803738186469261348946605390512949300856905323976961285394245388497677397937575970345980840400719727137640492976897426141116134982548000676940347460012377419049481283435037065870282539159671900303698827115072412279657654354847240821824462216434698972813278495762159226022267396637447653034519966930705174716718530551722472042488685285073873266146090328173585128581578763263043806408968453283969089060803405940422262749334029003354738186414237640524728178745920713863715566571800769748512577206825294492232013142495856312319115683794241065299646035832818802419445036370294119621652049316631307237493174262896244038222961872522687581549704621679194322963433510266481156700913156146622372028477314179196080876079119802530129276848479308515995634402836079068858176251079110907059993295054998858966212697313474131728334094204839812084643748943886269587887868620755569855822891385647200516892592776794400773646002702659311081579954973931078665655921479621453355331899385618456905504327850619321522519300227082078670560970889457269149369954848563474959144117595328256381504809222171879669504366874660160150523802307521999395420258395694794783748394693914794409864813931850441062933078902516552128971925739033429458480518368267635082538292997462540199128041654841182972876333349491780803086796301765425175797926382078454158408899557070153262025201196588784266414642215504458002352000137411780314165005713728953271136260663473564007967689430482919716889741343905374906105418920833274831716309884419377140672071692109400514906403204850813524555166162191344530262026165938474916584316705320182678293165734416040052065805117846922615807505328663580467192476661211185947443161507272446380643414589707288258077453102769932258512942415576269100817564979684056192200434366189930059180834410567925630239956617367207878460543723625262056247320230323303956610529078904908112803765022938761898767996986102860549590281074685740504813761140401072000215953915872925847122698689432306272359860356188224175404245424616090895005851078144624357841749768046852558589737508951529250004602623591973464969059616289144430579209731885444492580649035244127379045374007995454637385761299800535627966982526252027179681431486881626892336496735987189666509311566948279174636549528494505494756984405880894713067053595896465020862079874197271924654210874687448690220136414441147948676077418941875513624695578768837319281895774020574538204634626251056744987371705040596136789530158093635497633869637837153191169061983100607522827311930838681138858299027699684087195831732356717882207293622717792602579186961411981980455907309690106279179241332381978023016925576885287731082713276655992922632605046224170876951058361716898845911116422176122906012602160835329093065017193503750284918325953188006238475379233668710515382098122617787594837494403866315142579474858884851809895187536740427423586357142891645744850420452440195837226567815188014327709977264050374067054922462850941015062587277172809643046656502168086898829303833451752805754369256036647271170476064440895788293394470383688951341863545698460515747481456690143172380977571382329171228612629402735907838938710842674138911270425742571341223689580609084619068066215277475021368972464169719301518421592691896433896132699953164601522610438607303360915459964047996774552572395236549538366496239114048383171794767412890932773174106862019253434031048963821072157225121573899866104414172734573796855310036666709200043061123355273279544564231248597321746585470368224886588420120965407408687025941621666286501443089770576399341230976066600651553413726799371661635960670221399781315742249902854936524521986368686895322556558804811418467656615196882022782972881059214682262084867225647501855784712374571216632836727472466977845699934180835968964932338382517620040837046759565199422659543665157465868438108317659175568070967600046864384782645485854474090327449444730553425454519148189877114468776966954745627384197056466548069912408695540686293212441960128750668620000468148445655865638451565592280051421685028937837061139144007673122685989917447431921822496521775095282640881319390397971082358780833554884849584422041756159589186663115427001030236224348457844637015181919771581511600782487372324569561573161189360436731301555115042550822001405696851248273174055716460813097328555661440863084931051879494308500158413010028750175006557365625776558409644040518939943162946024817431996095698601124064463208950553629881067860879985858513122140943020963777611027265260750150462742796769855517971570211346672346097240513773779562825937427419803129398687989050117724308104041712609029621004493678383137335901179116459977560629087215831952165812677259918375402664007679973407841048622822563618448898734735443411422960584339521117968710413880524424498192223700176907197568560348603532138715766816073671013993136154060737196349415497459378310398895965124265194666387716514853555028439450960872650240846070197812613872682967562742591258822920725455553590563714496164801025877746026010642121951877205992675722400125610778884337634048370950369539863597785369057349090264943625220469146071361146016077197097580252219487806308983501478180780849251597795052104976342106371729291875712441532357898174137157028062670252456056137368100141648186487911455600055895697177950728762999224942417014907602550748813432849282262254875446426475438699876404302422264765782463837440556717925641155789398118917120554335869558721503950263411696010675871630566225825861641038798815946472212283106294879367356861751190720835933353348424498214266277818558642611053621193348998764118760556515269592016283625508638255445805026417522446625923452344028953129619199922622648969811417269420215767411826052791136336392710783515179068995218412328682614537527110957347042761262202483394816867764193996658216499950736471402591829891361139544787921970992846264538559053297981996774752460616515533517068367750200679329007416596708927162182932667496081694155136454876385635028191636790773430188224501347266320891489568771307703415261534647688720009208729900225143799804958154674363108668433773935247448012813722776958380166876746370497983676824574623425918136427477118366370140230505451689380720366307684143710216243336490410151985811118814180454938370771930396502952005977773837048502127133964552657644471773484923874195019501194022439671189085090384741092224277548197982437693527337219365539237219534746584192665154079772350926081778218093487457098449518542380761809779538799518111801193775364872098489779419702937496576660324814277552858771029139856207410903138571345981922531600898621787786795173439777048197483663797942421874602043555142343087938087665633218995237832211876504785981082531282939246054848111558987907911708523822945157732559959216505973842632155346279980579877939943387235110786364538583228387549742038932472849206407755338146772327370785242535368590440736617664868705998137858997658888597167597623780065515512644146058467533845279255282949790188552905800528376163421852554248255625354650116567664909605032995112728407639197542831135448230289800696781222337428518135901766879116110281607784955225024522126325790770004420261247360288762747260368152897165714206959195602995075181362454912814909936160282349711246503690876940683203111715357336790813683052106166192924671158915228069221797913994842305518856421170990831283328810352228495806881069641157327403269302552904560225370707480252079350941743333947280010151611235107985040489970198109909337128695196267614023137842574469454708786620886922982000297178684238622729922336611642866476754798417664370928358715361489808419137161117491219011391655682615577267801063235337944600947159670567690367240515659272629012847793344349082722230237637195606455732391546989011295231170179820433863679263385672494907181852794223440210842138870154260175100672392692276267868452727417909950277890532684936692566562249658800702211066560697863428119378795405040667714910941752827707055084293122945199422377679620763580893170009227317598942266860984400298448282273431550259594580817902748486133003554861199229543616447730687667388925650737409761649982810796105937040655337675055008797314028839363513425982115127415876881833844058851953654495465584629242228688768070860855718222746782155430662556890753946641915514469656545056946135852017467922430340423405389928525802362217822000056962699023210121134012819292290744746418148030274326066379999716611237182438742032142823362322332722084259899657276473253523537538569191855549389493202738716491863594606915058024571044471092542331666224599930641596791931479470448343337111343240786446951136427147033318051066506729932531576634578366810770776840558781856138016387900641303758828912768886722310499219998543450755330935454404070241339154628889300895423297886641864035994131069165756029231552675722551576496888360222558442091054920469438348207721286737173300711287660442223062329573063970167308526517194332348975934590182598574230248352274715727788180261970686072193422882582141894194385764847119892921455643615955439926094457679732064905641469967232261526522042426733089665240747806186587017042910671802499859402150633503116551042612851354063445103133735598605424889894336528522632140509878275444825663109181006132678959223879564868548950506783328977595785282577813416670677307302329951454964396983919498051230742714571710483250615960107116068514143140720372544918102452670703225762117712819645723207909861863046441341564642691514481720644979513145702424266430537391272801083637458974928814214587532563562483757003804844301191233786635769846042025044909344667985472946011672572229835920049951045796516126294741719743631884555050744333730605194414399893701617395836847587553662377943256281885201797443349543087373516579038923484901197243079805804069215919189732387388042733298620547497247695204688847661636991384140350643470846553050371080567801117611295211509628604758070493963582956988684333282621869506313654002250119427983154225346570950494158487492884742928840735468056154120278314225987608007836582903949110147410696343065911984677492911308983382164354171533383974349587529686152920876459669203600686450520676015901475611349021100211526431168893726082656043834470912132713880554511418168136793322874004880455547974875821203567073042108428491185318058493639411966754309544550603358412473828667715331360769718908957052843035389228367708931209142438011745473738784241356833595321943615411330030644682329068236454075436296794911441837837858838111653346870125195622169565924054817669000102074471176573158788471584689106907345401629376286500912311377007364585798091989041044591029911508523465503130532777430152136955627042770761681905060627166499822312756213497200371814986473999386029271363142016713542579079525882604005007172047092610861762857918098624079811435475560673890251984265594055701659439648169884707652166319392428409589966296246191132630407604525137914539648116671956060114400340160382812426081434666046500039299411154309741851605314543368516918903451810707190432014725678337650709947019542439067581080226701542403223027047176628984072818010644849701732939260023234541820867094222089522963432311636001283950709666692166643655144075105701833175630022609287860453284859352136344957818877611774991581965913961704161516603769423914776012808012970200036174748943685257010389189595588612766489545910912353392763989923932507407810766419265467933139949212412434707954843043469210164596060747096322202184594953955037739208400931886723238893184272875437635766870865523438780333671176815605393662808877542716976269001178015930707479738430368713345220936519790517787076165873545233049382821821555464155495740867121313294787618671704050099938985204052673821934501683525189320329233287885158930415400914061685283675107301987300588938789938957265226189153415467895282894686657253999240848454592681077903426717328793598522290427448293912262161070887121039496375357442241486415325284645424000406122726230699703377859730121357692793956017003524040709714961119834110002873383574804030107652938704163618986892166974408530764155126226829461007795248232405773338107942812525726323504249513453080239823266075852563795434392945586993240541564440829820459253461019236742940348943599882507253666283752639956247233733318903150357853203160745047571576214193184411282117162691837872586957055372644099198865668283741333959332265399292596160937394998965885470374918857183522312635323123759911150254723705446225226884650402197579267200330194762259615386260879054971821872239139537365451133015492306545526907632919846325611647119343097608064359629304365301711499911281960980972796857203954915133944818814042825615153568914932357188046223586627436079446880082160778081129236075541550212537091320295344470001050826126024044130097218825127160495728559343622614627561201641279377441764597443718267119370380889449815774587287363846068695775391893496305646355835576717395294262029097977101920501713386861227313983634472519185542385714763548910082080016045723808091693949863643860557371064902827224129288267668125398842204972242841024582422076392489964773736575724598693675469704135584797379868236755138703390193971855482788296735853687271684778534340721048995022316120900122752452748301356417551658140574766588665538074838163872195668883187563387905782989138245246972223771455096259061105430386865131540617375104970477860742960177568116155789715959692580234947624048605659058294598284030008554405182090651608540262138867740691625081566407375204552611349566599761290271494533400225128000648700214566209473310863418235309241027862507774521314965776919049689832135224960129110897653884912145880091127350547976762053301537453177395572376472749538211481527515435019676697292795786158420818012166509847238379114516023079966220972026880481275586751929063982445748267520223162578615607202600002686116303695349834757885046791934167134376269807993151764846980044659123916682439067047491784197455081386651174036766685593071538055910675239044312571121401258712273081687259837444957112612911986522596621497904637338858212757099499533449190788442712875993829500293687124579002892669527726798173541277741771144964443253152965967539327660118821943518177930234429549591490136320792267951962630858221648965257946260216535860518209348619613512292958022091128189361539923050568254219222177183881146903121017657538251568420524819423708895522630196890926840690650437669095751845362333278880955594588214189337812916682865529916169804826193598036482778293488847274806295075297063072421588496690505350473677946278593252496232697591740661289244491797359437217721071031774431275589938761848726965794203165439025480061513625866919301199900327313659260133785729898094723616024081988545455812776716855586250943023374699409442050931084598607371047953879898045890094464127321281839141034524252622417661603438371926865099373215659591553423520491493556551752368552598140822584825486671785257883242043404530236709844698526539806930635909818605169166919101179559835283670538901368818471321299708975063596776038495140853138857014562638440033660215025602424384344563263770388632349555999559777655481795536008615776863865376726064594805973065312202533608160040994852726894694028979610798301916283228630758614040159619815935927474897364743413367243815710194257881560215084522624052251267180625828310228773485255483149722483960992714613389711350647064425474086107924944037037588230628197197097646694297639453404931643275274196845893517197037270851953409898663541797672330045973615053367253283852082311022787952059198054017252735508015312452734925691927149317185289015799686712022779235174393422666102870027910822499882507156864672338590375379234552864602565348978461886959346935150951911068043830946103520156717416008375919118682174813448036275686038018421708145234501338269111986957470820552270240514029526101455094917301769615265024772362899744936638822253170693717432354446131540492423823121338178052283758983537235129145836415362592069107217452538053766919035428257046548342284325270858259095855181049627583759846136515989043744324007885668667585783875333107714837337585037968412309374170700348420456594539629166794707228453366933170147864514921953296886457382629510061243403001033842433923308756569031656550919150418419452299409940076501195389409781331606683190288840162563598944892079451045222475019060541424638316333770080050947749100898513129268629437558564708589253384040433802714249042776572505513859752206207955888323783280407648175035792930753980522154690763899552797862546095423143240516786928822610282106949428801720564407108386040209134233309893809771413765606718177329215485419277770658304450108075247141934087560610316438107162455987885886859773933728774455706013069845507531423206967018274127069332478055833263509123455467440097030189545625941511248251947219860255577950552457377077568933487614498018735223467450067789170248391883479455416423576599808493532861657571380999982933361518568994762862830332270986004027934752112465904946652365816689876839243698205788512229358534703995005969058300269728245396398852353811956396996469843578667295566041420853808049320548013519463296614437220286419812012013096442816314511979221094068800560214343344900004676666409949527317043749167406955530029658885299239709588594190516714559922569427841871800485333964550897784208148491935197445714705098168688920987527673922261462529427651827259021338983046107717030610690267668763692942791914984022848667257120658306276907484927852416886592570575062827867022694859174360900359166888369877837189982081334979084911666608449533379736895016341700954759854309516737572389893160946871632888124538798033307609997894716779165761828764718848248661390613453945676565560228902584108333526566961407853937103315564875592703828331713783006701133737868022824273912090663154485401136998856302658080918834943304404197751565796420495663924093150022274462930208223632802350560654969339856263924826163218327448681916161115518191004407774006630489025605551756146573618968908745002204368370466651964974282610507453247765432972384508712149059482656201878837740704017560056735784639626992525655124376546917592608893109979281642928947081582635200352573198098032474607679677749288023415245495110320394449454444396067101542097360098069923168739931401492062802398147776192434504390416590859417359592794387401459013118213987974029720135936511958584063437179810153763670391263357865665404669034636027045472202052133373904161838201935586322412335822655394198050930884054947280171637361045601414610280834305628236143643392884951346925525403217187969337556020036844349293926968336428973794592471582185599332967582954698027200043216937168889789326372098159213148196054644572683987691119469381542366455407807149862902710248988711109031658578362436205224761949029618487830108008319229182808731063132334329367605176394250519148392598909588870669871111191532277531065849967878676883820845962973019835203050272736896694902091386292429015663446309643181003710427796280445788729115094723533542620713761739435024947333391533918185536502214394485927992358438817729890314474491439448043404921344859456275624895781501974472842530606366889573947913216391401030325941266311788237783115193319324934000930296634631842236934310040541880248628131716970288623894153281756642481223117598908848076985319948571313438535924797076865865106358844431599362774568943191173887528287107661434014268682194326691694332037689762128662709440846648700095141424965843727084247879811837706987542062998089981677696623511670972055932596625772135465475790080114372758043954057180383985203915806118691770177401853061430519774172403464504963059317258518923589505253269967965076403357496583928421258156659042168573020308741720067974506869756430227813512305843819624301142298082466605301877857682349254168179522334387066155891952911448766484790332460527586479199812244400376322163567892123675206416986147151127943415098586724665832078798610559610657452715531935328267146844037840392879862360521816567089764647074149427425382247985336198170987404259451352670297247824167872190058129512088921644697991309938379023718958042458367444431453015070734440478565762560538837702421754263716072586288124182325908537917609955001592545391161740266570733529735897243310517693642663811033170676522657377524878678061815765302472656934725386410951772273094002264342928587086788391213996377300047080448947914351326152934416720374956873212182566709577437319876638532233088489946435682159333981385788264470658907928818063725629136589569098991909481951409815904168287425709373791628106010566811318443256217365904603105365381799449835019659987227120868111935700790122563482601067847630284707405407026566566650720870762058984764592109388885294656772068359613738148872189758457866042021487171800339623085329491886054130373311561915380034755845429850254055090203145845034079516062671709213216642238065409853680149334487993954245568124052310618580682937923984196307786076313771987313613393500118068529406259490320962864147147662846567618802312513594461811263548894823549317035406334827148566936643102208916894984318854708617563738638624253354831954316021179236656775753113300831120676156802548963186221636794928169491781118698957522047067638110220044392688347759319859069006934261045774039732856040916455908563590221356925658733939392849354720209756608390672272737683797454016842547912901518459711243868700983510167524989495387392956321932996822870431515938456561557430810662100111611681043798652852310869601704629479312571074914965445487479151953387317160958496822126449012475625205885888481023230735193308939901556983225819134624113734381323290346140236681153236132640657847163749727556703941897373945295263735343652220185634740027440701177495019920428050527151799460341781305429056052515038556378138252457102608958707662432096309493882797441407495855960990979480509887944727026902063393973679554111262933001836219414171220828269972543278272355183879952965076299695206925014319771607074283093216185938680358239944224473769467581898359965327544347357110906950591443624493756786524409505929933659036865620464376465191852040120810531857906101142254666781608151324802010399773963719389508240876607624567944296018346324944687796980931537510043402094769880797806035285162074578493493191726420709400191026974841178537355312374520713322297175376512634932632067851446365544090866630986512912502128044678508795763172227125172940267527827580529202893981232516171193350019412658948699734097863796310200777345080105874742874161060383512491525953611081677948709558470030820749301691703117192425100073280080988465196627529232664369188025506437206484931305156368307425953170140190448341526994886292312886898188569906810625879657955405302878314683693481920159465211218279570367983488816224617921707726010017494954082084273307833372212613746562438753525255223895139572083473973257879660046876733630165605403156192935333846619870135023437862851270497483833482744867013042417726484407287561639051210848971034352233993347463381148904686403350201710196930874454672548054961990320395013289162855582821816568880925308773137048300675570283070946924175647913667997878055072389100447575354272398232940090470745295074937638404993348024699071033736318025703645899256566660567136132853842557564236203025595101858524880676533780186793947772099242635080917688620865294781906121111813793395504095381139886844158308736996330608791430455793320402817449222853290893921673518254934051587695319858640341123807547647325822840596705335213057863668423779174435896264530645166403728107784366979594670727661813462634633462484887429484923667535982361400408533742795570058543366251506272965916871329286618591619952868461663737226483837517727649902852647355069492257971970756266994979966909106081507310174771837757702272014216806110426559437262817444686613307616460268821472622582218404144450474308220093010544818432246574907046799842975278522500486453906770563480405680928440319674723799030466576582832234067811304362412769352412869863680253401379898282056624828295452333542253552354140805377374508067297591410151036204995413234132462138354080797458310251265195299459835451451475327186514302565556833031646118629594966401873182537377843654023719017307130670148745107828877326731395970227566124771641494936393754374514574953007414613972074636466170342720823389123578458996186552643138574692359286122981812140698158965825576671356347828060567840363586481996359216163005713572372028264079948568703525242044238269862801438138132785159848056466398696790453693549747156757223374635689797694261335634586991907160719807784379820667907597362867502662093955402151601971810384498797933320469801373825789184489153821363233314728396427588233658009297512800179669840200724807706123412020623564422898568788532083185884967581211034134834004054813333825896937439956843658715164449767093907897132694543122180298891713241290319433961341449106146111164712910184499865464730573016661304590454053707566606759058945623519439552142477336101891169435076001726790801742817908755456155070143467406158094612622044835270019489511956735452998249554264686029031398386575841136890691783593797849437741472782082883529413646460472059685683492913261032868791290271919240002695683171152661240653852288188422293996439640155523684997071651503886269556099028223912721981709686855136785681648046308947165334961463037675860117766764789192637380447333379750554715804917664240680918097017198869744916670407116661185380388583829126359682720313307163882584853502368531298423906880568483765635924078380656349387648584495140999532174522020214227751421663885286933635763909328524327652680472944361698765327928362260863721803558107577796211327499510127999157533132629023511274422204146335994920994741857417973793167850764906622358988329436723502366640717040912215701409182170631406300482022337502164429617905176175002898932670163083104891207025142240598643813460521230304136349974238661852500040565898902384693801516420420038474877524016007561076311038928444038040810740284318488857421027384903118148768935941327943589826286794671129120903191839753349997756213839093870630494267270392820691697424711242139528552810344370830717453117954145696426678347142791819992351680232975193492865882666759310051806299496734434891867413376063219656979667772761238660384415308653700731824399265515145214231295435463926304966313640048858232040946138685915837629211147421666731698506589913837098749912003729566029877952068121228632218032032748271647657688067579388532544591646624982893875470059627180774346979612395468079555720644054855434312040503802613070385912788210801733807082382091333515639198708441288005357634027228973629158513846559769325019543859213271318215670903604739913205904641688399999332059550345204268630213845732905053441829383023857520686925957201044541744006471721999421764355296456620703130443507142847050237373254606120209599693825911386407931831419258817657371193184962711212616871901133612208298544888692872389410093535257971644506634104664093199650688440623434517338167705142560421244193976955137775193465151248817048434109310603899397527542456940372496504817900322019874977051944860458561503916049252774957739087279729569697245035200340697048694642937202717182327772587948112692065883500676339939469013095193882764014504562767122552451977322306507715243993459631738389386870447099183493519010472170170927598273819366340484579638203298323441761208024106011161118262443378785838717245415907756040385463988695249346938455663228393990146024822218559449512680321411502660038202760172981827079782310883361874216147472073794189951499365941928887265279841990102431176734271991358116941722650573205157204864815927975735727734874324290120321719512695442949920611311042326949056221723486569542846024370256319466824689487599736337332055266201777687343558237824978325737043390327142819278602838606525956056338851704225992027326872692922171590588719113235870632503657726290791460383322881685614964334702563076966865412835835784174333056972264855067220770691365220908644362276319940757891761661573842474332408193645700333432754518092369027338939064312560932784088791225812401356144066053872319318223845438135908012366738205020502928354507647845460184843217244326331965680743031934796150794904720705726052193776465470148486046848538273035039944459098332367893714129117928395256203812166040289841611559590081129203960031730895072767679768473090680390734776224851995731952908272730080788369950387174483575727437458629969926570936917344326968332008404627340294649259296430735069442463572718371776335443415772836011037249983190485434640812405962875057785167571979881070016842730229853267531780688199650366659109378001121449934577663118970143273513442942104831260162324363678666620043853801755483397364327015276628588572908348159503614646136851748393173940319196021928563433157330453305899569990949550356573691844764177615845267277655197194675818843003433463856951470475170344366468582464223266855496602280542305827401358389749397967155012346597150421615353004570606422395927036887389001779343937249545852853169692688978735231681590705803208219649128440536137408352054175095876517882256449919198298104511621569394584531442345063883401640354216857769604232599974278944674039384298600872847429824265606372763221254202608615152699609312671219458559309109018174906767713956229204725400528070097838636985963186855746615943326691996447170347133215381595028811020807737944039110655115180602435041492218950331024788647957444956809424527155626698155215113822682289698547002358749779266563652255719673545042956726217912131359123651207032911427456965855532425649649344152331237099875426624164384836368979170763649415091043971588245276879521808127374878445254729456699764302132365736301055306193341408545632680940274582772984750431918514496440361907123028576490230662305007978825428374627489374244232769064917136531518556543769270532640500736417909400339380142842347455956834897356614676071945476752281485127116405531759377696881344089554794028453385557561533922990292249897068995689465755873309760188551464014289934542913502051712078135469640899055311393748006593978184526960168731005317160808024753720044517203526902359721525430235244675286226080999661924155670734302033088961788100919088103505582765177002944281997188611389780354226395820598886713700713922644929043513139081531788391754382365127968073166861219626950926112688629596613182364372279344643587054825347486626314930570926931497415059416934299973763701893111090371630842258668370945553200656172583700190523723607496646839759424896863705991250731308984534861456180071330104459278249785776623329313527348448853311526374276287328748186334624292758284640317842458096672855729884695456699617983609213006320690125295670955166241548103263937472052353908622179009896036222923421831595447742927422134108552604607081542707880439921399905395199644387417468456148456610651059616299564816443501924667731562190277906509158732950797383798092836761677238149701213303976457965562088485079692520654364708129473110981184924777930964301559022922510793732352030237536478569389837090820363792346882997352157591229874333497773659500381456928270028366025749467021332437137292666774757448076804538548208233165163294680024795432532199322206206665486641738006212343012688411944748920763349048521962372263085014920823652480745288880094393046482332336178332621526357126577506378562045094393501505944909003219102315786789849292985084973997435830316076006171721754850760091904904070189078083190953254205496169754672657403045449251186506776766043176143082175989784546399292618755293302441976723105479978838999301573916995611224697456467719492957792590981195483145362669796344432227529899599842749812451545543832382086072950298723888173878181711677627826261789751887762873475547028637877284583025039315526622115445628459939929315234620958046820150170830741781687530508156522193318321115435882624781517110192816991198131066907125497285304670102325997318767100528309547750904551260201662199701815300896321187556736955874857193543051156351184467768238828447368174574566531270361779837001036009776770555653112109336666766832246279663568669830454626545482626119907255117949292740116947783211575112182593681017044691520097719117014074659797705598844722491312999729814931370454741452315032131536193905849767479193452861143361110136364936609238448409216155283225558905687993114659573921393154084779823214288133351944796692255251558032389082554366987440885029124561172225454259446977442845207869710213079120521376394487708361250857094091490800181776890430839273813538683590125784909007226533813858165424346129132951387054935813658536679095835498258951418338414682079463341342914434632845023274697186073076536364859631109117466778068786772455794903681495341193876571548655795007973688114328934830572911296812818999364899036167593795566099626157738527700690379574252204891938745961204167109912567979502842338178826778010102736121898965034707020537360690025561235747119175575339976445932880806543899303171282803026424364263846910774992920760607205270664029286228589397666557452347820698310430907715650691651772697819724658098219650933679154208662739955771599334652856704108627490824948952240023886094187678884567263552769467746782861384905709765200014591814500483041821147321800868653171519275362926681807335509833155498689065963723392398425148852753739562188314189592605375333135816927229576982791158717581042627769556669000979982934544110782972252772489105708639517629492455712844669914427475098372357564289124498757751764715192960558616769921691450938294656144906610306891138951956795380297302417146098569867585985825183455636899588867434801841713598781997963997078399688776120530088054664737658210204540807041749556486244542516264009529734827300605492966808355576473080320331506733549524625922046250306339688733563780862166401683397985542321840934483110006193895042303854810205416063582545253909216607083532308353640882285425289064631463284550167043195902952460677132375457853724218026171498335910269439765919735015148867886820391260206945601567609494470590962911984127184456177505080218541759598663479792442474514612527317024911133120510097487754582979024586253923295660822609247588524054841355879479137452465996702698229191064231000421630594989099479434546458449221393038330233719432073926088014491234268360965291911880080949122067528009385833075936725918774480699803120973913431196997153093862901987438857625344406135539147200258366454959447745942949213648745358097731887342163875180778317083637402218163656749027214239923629065465175990727845956354401397280964862166574947511696005424011238939469165379491428837658859404883243349117629086778458164620570297215768203536460817298157915642653234335662938174895152491830186372977130324577615026416300798193600937356763840117818054555497347693433743639593225163480224185923653964967153636982141716757119438790351448495435941753443526218075708623248977532643913899045393982280539904174649874691646194072074237991281068554841429784653647938046583406236739350823927984886898288685019146313608865488967547361351667702627643024262615934695464937467116773035970968312319290967032744090583112828997633927628918972230728845875173046927506553422317840327899006693669244069983055274880749175816008550468692902623452764402176707393823720187175234210797402717368382004304106274211823720664049767296056406100903248551763512786924589420469252755445962998649453672815893484160088993203891726929099425652757791089691072567756444350045996918955458921040243485333573208442648927748575144035690242510923599289637649457912158235612896185128039798345609308228175566235742256724511567506839251752099801914500184995100646729277641069961132226549663521152420696946453994370752921125458033766971825889501281086486825050915110358794105408976267221378265708435147732479396441218129739461139919987587938605634978992188929154030275028772872855059162519298580074839454567535254741149821997291044359782710745272253177461054233771319384284025637695177156901399620773955407022729631823537813917659152564669506632874749415888426552926143626465893030466699443195953294888325835011379651216384965881003539090048467696875096996157988886174757409067804635501775865485606761481281231928715307161709987416280264718039064189241676380511335293383111550908720915950933107586091763849042201604019036298518885198972598724007622000775297987809266288314872121058645580974865258290675922143267769059741264726134404031820091394797456803976746193098646153561471860389201203707860426473418146498773949791996803656752637440448312893915566204567239155193571395089987782150150453190414038151993842932766126958059409098760794656703438039577213238439007923554527514004567345040887238972582048474985257751863860443488793818662584445342917723803862533824521997809478885333662790742360139444126933538019713692885020919708766348045831658675848179389339144759610958523360642163667893902366849435698011538024043094709573073951608453320093802586630432816027147295623938259216166083122882016877267922121769269877338200456490983160438375227629136438888545368842521732513399217145220357596784177347856706306876438500912395119151591912576928335928248829118564796755506801094159289796743047469443465507254486842641941516516602864121957908487064831714253130605314912008603919564437799262801983352695912549215077953556108584335093888640941595573774621179665377700898019676348591843260657588860316540095097681866301512138658478892378182979540723189037462022283403107676449024007569223083250912661870322600066431302851303340761050543568507994883887718364406607946142156329100876269072140941874658690182350449890589906960561275347732069876670329599930767295534330063197232609242329844787722121622296845189412780743780965764163910950844109439379744275029726474356207682790207732330599959645298067291806162150996646689688849558836399814597690799753892794303466719064619807694669966083670114983198221534394696357435198920551999842387267675856884852133651528047285180794987277437683786456104252259247264692474598697844338874114874670329842950663545475764902005768312988390347583766518696810800392201463347812895082866211199927457523499826284628036415629198598885212985220544559368619283470762630923457071485180392070183761801045061295159770734521653966262032588216419161855556594115854243620433520530343154612987683793595623453660812528227224833687222446195653652052388059585670640367157049103168506613768958317354892296763549709267210198705707466867480154972112092346654166968800269743884144384750036665071476855540095906734723008163640410606352058344229269654306402129749024131696563337525117688544116606232098458141661045739075727148863665544020159493862377453826014677482021464835864773210045786767173523106039586781547428435448989074230520223389397198320405938085101677239927566892183316945170307429931580882310688504086500770122885644610541749077353157205284160001488605688648142387174063080414734864490495150029010480854185157332441973755554980676665992240022000498079089716241904855328108871105006484168279905880234247838077523967858820250109884496864106580138659051613576501554540320982046889240814207619287902903778440914392415511497802026628657198822072940648231791701284098657225647734280659349308006803619301613529794150980897681172765896759302893283555329555498608626510194493455441623934521329356694419604780071137340668537168814161254605853610227845592525243420612759933513422715970156341915954356901291450004054375755848429697098864487588470909934486308555515925049076124084695974174451615500088920482823373183455942867286618531162581136579638538271618440844780213283155949511109493992956577324610635236269275860888237059270816294000854707444106917520390947379771616368244673183688744978130652063955014393506017916903943900497014126566921669289277771909211344550624981397043829511299408843216533641716497845208341161884250821275176075751353178588113852139556614575330123560307396963944470366156566631209653916574700686572117371499306279006171810156031773010158529044109224254608644526761489958389407179497506496864468573470384950801948536197027583755488040002912204918889796915557489732379827240979672487217691449515275115893496337167896709080965270405515901657745300765687095269048623357663440191630628330470968175562779348518756633681601309655462687152014244149351223635067954147969953136738843429518599891574618813947050130079701811698120072789299363617471395172542777198779207486742459494215374293408365027421903919200921317082508090961052885571654658019207290247812748117402581505043395214082928383073015362877051035868230262495982652517528769176697951014694482950722682854941430870724709262161170286902525063233201432690434005998284303101371294242360745710806697155482855630407480030661030401384279921556567857138717062445729968327917185602576904704320001648857637517297301487485945403047089701627026018107148490566207466294370038837363400058447816506527388253712427719667865302324257783434354597095211049321177483936863084253774061288871899816469525395944992876518115867072764235208590026664857616435894738887769895486244911361221743224548566938479648996936741050435277318128987457955882354599513285382593063474412453257791133867615033741235305440617944540259368751331671713528205432098076945529693634325871748564308345355557306281589760031468585398861854729088471354377892240261504540129358647287397016628535804511934132803092598148422406897950602575545742301497142395670504410454748455485984805561811444673657650527783468784229962904252910075641763669986383238511338129706053258035946457068502253113675817114478746379646964893413356788229444090684902641388113098764380697007427670922615397557320476629926444471948849356419682310260197802051695380634819272458355821455059114243966401807582816633590184869063125641071976697911550910739301636968914511693070354888612379232824442823237085642563712265311440033583659419352018501806573170543918629432614262895127193207610305140792029548158641028481622324695038849143670728119734323619992990708481101557722188104891807410082084019026525334892980937880473444806145189631988247226499351546315776315425430679126000495285736144104516643134599999424588565334988971731287028179034512762629007129675669083630849618613387184946681100310440859600300223245377247519557418383108997236736796558641354811440332317959145258632092424516338470534382640536200813522341053447569652904067944151601252558419313734697930143521919238527525331563363339415843905238700306600884767005282694627085305910371878404215169999163972965344021628445689057317851993766107276723648869194315095824436034322181538353132350829166739696280081867125291630299084972523348847090248487171802864948140705240611975621043890588335758295135446344546573280273334418129107912257959122762717616370416047698156659993385381806577859393076799686826807962755179313728933300622935655222085603027749432953767742399003618902677559328416340075738177174171240822440884394314668923724349478204682946540388791598358724618103711186682883263372277874106976097833164500662979205311475336841310768652281695701305978419716209918992507993336108543798864431423913896335324924177848112661014821033392877307775020524199482479018323071741056485522393842525749986254126802157104257138806518415208566428607941751125724624687157643424926841823683897157146397053581554754437226463149008200665589185093768940708363014605199535776560159594091049264458853235733221716674542433068762137092751073529250860440936683623348014793632550641391976839523380397703052694511416369929908490228560259992958840007269556165207909679909948634551000196487440696392616925476390971213543089130635274447439964111643974073395835584043065156270830818434052397277738370785395410936977325498983524042267877380667657065835049844281798722535485125444809073630574159738761340950345335425772266340018843300874653557459907983403302488669803310408755651448767173368961940689140015200705705939961595137482158234780313905246017464651742558192909950666295913894724743602812690191413175973284804878755601473747941843408443990769762295856986435544116075007454769093434045811131191331425469731456247593068619438308719065193384139640297172260565373956459805189508720471890145430314658386109562810318768262924777469868726833075683584177866314692964067433441900630586217707784012924072669106807678785928427568998264949805217235203235723756191619490252697930030155227493273438599647072022972335972556988352502817242846131653277252168052979589028084823884785516746474803401775739867976502520745966507099874412976009218818521744296342221991276795828086264519611291961576354461501482410045438368199777312332307080373194874632693035032821470347555438981157791581712160695855105619073125659346977717958279948677618720483035663934836653844476313826977956937464625812069668991799035969623952644695845958104763837408169102336110709872044965624265662950366237153011661322765689009967962690299444385119012511962801836679477753812543641924114662061261644107223393448878307880250656979957584939416508785145262278159455105526335196430375684038483681349874189367573618695009706033116690039341524459056417065545759618352799507278325934292566022507878404462891588591518165719383966209166503011281354115940490058217977639103321428758817582722156466517529961440371951554044004616722511992115030008687865715215979282595393094482459923257444116443531293081170306557312048760412434521210716543320930184248627773342747123034508569602309629665912645334522069920761191327956260602557861479697575556958053217412610484681012973360601588450484834481071090464690757694683818126726747427446592179010128773144912956397613316979219426611166994141330515315331506717135161962761862530528444271527834480362524659657715128909947065963686121725849148793928005017384191101605004325385101014794462592949170787141091761933294844744954082529982239149870026015712015437507787604715647326088918331777758805851680036703116440611935781117161764120191904427279891211615232169265700606588554030205189819813573142724406585611599158329126575033150163062014968018275875122022630532155666724984121836211833101157850787731835405835116583623675281627526434585124874885809640197849370671227742031828421746456930730822562711385771229430197032564387329079245313303315271443808633348984528646308266620917278842855386115150790303919002380904319718531340830966003450244322055677763774724812281253174970463169074447246759840173015081310027341785336937090305001643657895635549465583052729910471613866020855749782129384939086329860493392624048494516507810408065153357905966301100993837758582888618414501456872051181534793114837784917900919662693216577212733855710475872553886822527883722448921859796436450195325304423004783531868923101069807031041429979436207677229638354535673714136062605879067772148684752763571417116087862843229602684562781791803013905337650883729198146828712406795494315981489283090845118376711009250023893323569298164711552388828659124776156700314107374205942767403848863504456909027815847524052793902665595251687027519644302542677479561963693151796891318800757943904005133480859369723971734333530486872623687796043006030771780892081033561997713740573651012140147636255819075616308414577456821262750943794533930909014615898865241114475560607608670586995404770146837199661586256584197502285205402898968170606157848569036951221610647167053155515410932646353198050818349850845742127098136412300244008076350939875927889152828929484340573681006042552562539976255332804168381417472090150593223505680138057869677791915815973737636044727887366854594698240576286596390911540943549547453985758620094454694125875809967297255286386251221095451354170313814616912827331445362097457415106109853005278547998477564601646145860965732889633495347168839126661424073833502862416762355103845955089871229627688145668551908889695399700693639229942384997877655186468943632065848988218826793267129798037869653731659767188980705939525149566878440861869886419787133920980407343697463468880753372931452476861981211163066271595574021317360227986958268567966282361251176573000563681568571378963111013587036645195776418261036588494277314327834302986134243381519923174200135858296795635619893742007893772048517694144009508282174045486741745929064936458710855067290273272951530820283671031700389814921908371459826372265145570031041652846330284458175397450715621221644481986948332355958303684766945883810676849141491360668039666050771541369829115115904954579651990372680286500736451790638569073380230397778509226178888476961176643956323280081805916631732266120305642483498112898076491566979219788848128781262544452079649904423451053849317817868253764188856545530002831259240196087511688729372033804161879957865572688857922107888928780762790885970924852855311272308884363432207836374498984562882880549389212408722257693516472888680750544412774755450547299104035045888198082196899082581421783832839778675257029171301875859517305145585513701170142128894550994193286715599250836177677984048735957351020828898473473928650390641558781158071073050127677442516048645462654331356784106855752281048169757225642779016704796652253237612469807936250502602046361733123089252854899226169401026273006238486208268293069403278790971424494125880588772529676851497911624948758946851194196305392086827954954288528348923094859369696608692481725687663656105930658203341687098435614868256460380450868461127413202056220800771774010297326710069385855725536054869300174663160198340239800052502348827759033994054321788722974585836345197631736304330242981645370858006508435380330118073435028892369155477150886299047911642583027331681662136561096503745657894742656435900698851231984835997466740836215707954591893713727031352557276323031006306587945878734784936937363517749354870790111851128703769061651446540400519664297816597441117277293928157577936771224450499874671633039516942671818344041927804531121662261311817360919221790637219169278771222660543914894322361203781173326230867885341688470890021585300609235895182052697075956745244502036974022386920608359328043640780232386184315284037484136221162886087413472400489235914955662534795345071471883114125878064645845338773028566447843640666224938737747847844846239578611925492679463348532432737922246303073427010626642240174155234870051806098963606939027584088673808199149140208621531959550691323343966593788262299767484636527752587279575200168198843558405513412168963475919453525415986517456572169079542232674097998476018633277402732444049287851458423350356053045032083148139938252835070172570144377405404419026906668888890120161061167006621598112272647026465200895982616471584668098551517220602167666884487698139053960433749444813234748927209748045563307760568469850756624919817857925831864961201993638612753430252567974031963358246256381248793586290114246817512782793174755969717357028855298088432493440153250755144844148342309248038280457180935013659029970834574865993753854849416342492447025470597568938929147151655246044800409887736167799786009482951737820160511683616480045876982860593950963578530313963838246409743789644900318544433918706552021531835464733526912918030966904723780043047236942708864510552603520138646400316909470828640436028323782972403632581439908632395093238353397814132824245585429796562029753462457369991193541233424734061007573775502649399311184109616388515801793753322137152153867472576916696455209444361893248304004196269402461595504011982992981994762960990501820893836056839796080895152200990905388692013383405654611520832211315957726833196878301505038731647541371302188169288011659635038866675333195455787889262371295498938630910083830166928340573135977728650031484654162781720120480357559639666620989253656783014417043093528233509420111141579188517206078029407373907805707672613441469926972366398315822233525289891418039924324471725006354424399852742645151315948869919869261967229078289430532508721671324114113142154470392373921531861021231486852460727605522969512282088213579057843052740206357757522054718477339973321190578493631993969694143776443515151978018012527881287196199195587882052419415469478889921062914679811104776095337591763967539364347418109681289742905010610042543449734208959838289376887673812825074495992819192121081278051036561128327990936103892292155848578834797293858164165887927325262780688148603945323589107200134864818980481846660346812210197172672368790585186267219719453899389690756962358604985925966016997205605907542000632166788214991901204670662956169320270263021778529567167559474836655332971400519159227696304387512396740820905122758349298821473985797549295055536132312176108508293247068305109546267009482370379383670310343210472426798039540693929771492811148581552951939780117185104803596629906293849407394049890701983990079148032819227445531023906887229694158431627136981518770939057569430836542634690586040207100502038541326637092956967855772647364905248616672462721024596503999417465607358721152473377496842175994235179209380329582798127915945080458162488308331473299464785843045896462685877627588669720412524909643809483122278199979612484064273411303293812917833834402555289592237930331193843335582725435587246074941386932241637613411660474607945685614834058832972682843213768014531347013042310779670401749785233101070154470861811403266053964878734447145794863219365630547984390078656969825372098899361390557726531034340485496903161314279530484889689576657043709400450913998938222483218293180519802414384108466379807312105044504360516174489535317190636230229197838762537678757791333729444768926352487443400520575513550063159842713178278945566091115474697545997402801496240838759367315199863318562936001009390945049157497460353620769931878815289937818833566651457314214501049692599387896798570306290563290771663317624963247539910329471091894339974458813895345334251550527556988052026061386453280959298684946864712381434962104763396165482768842009744941901179837090096640077769599441268623440794682794599104076653967092932526306066048715066264526127156350175180632198553391857111596972724157821751988785646627289554004503783730531462265092381831216261756500891833575386739126309457604648757220850837882600434708214716737830955704649661290004633102988206777952065095008293944970814133215917451205285891990747883258769873269309932850134721680428527565855206459356927107940110654831480178353216839344901113700563843866661181364734547221430881339193951365855990546334556328820700874553223606133099011446890673177591480967363259538990257017776866916300739545223157128867149968353926250029446139636398584096788753171290461319238465951862645561838151424054449602461926247626352038882936390250148618025223051129577031505100685500713142112825864752655654851418248129117628573533730829068972225713272951351822145850909793083630470662140643293615657386458610668754712331068207492447598674566762688219695721294747338014767595638269774689337260916060496344836004013634699060223200057576432995501269243866583241755462697652622479655801033689339945941374291533020392185366714826108452828505250856289283119828651686641135631596100085278511078237884571102773030561123884417840994367709009665098031629121879730554532030493530005635662916831550248156822962437505586139904364487742131812254851883688636462892330132303470959099551729775395193665743871772481340816059514546229642508509820463959068457727067744119623422220065115869415660880769548011526094180367420386408906900690308577579432801219044081612037598355746517805954168809425480562209114269842702515800311093312428024237716603126540097693957122203342714682511032662510924116210692511062000088757428251594549748353865620373639768415054293155788917405111873362607081769749874229755193493162649888638402582452215709693916053963445205618251302575235267094846975959038926977995210574200408966085586222853063231533360707849364113147965016924735682699725736602782104113613348433594307575498586343511372237188541624077494607266750534348487221861915233043605629647521252778762392264735510285839537698505878380033386699544294882880738493273372772990569928698842078939531366851216408213007886872998122477204046118883206502201006887868997246953147604290859037951145063215854529722282001823275440817770241539856611642257708460730214637985196747081329414406296152593282519740417361470447759117486615340019417271964265052028924357879167284033972422665445328173896947632705665707620914657981362040829528965122621389878134350154983121684183536529335577611678278225799214782013120036106688046816299703979565556305629196623154070745473543355598620890738096442268174527261815886826993598486550466328563478363361688248842701955672207507269142661541337289005292937056852729666071662732986066298521081498213195224112282940395652963488887216123261672744381295563617418037912876078660410023299017449261243919706014379605574142794144049803789346246380373633175666518042017591997140392116423580835124336926237265874165427629622105170672793753794465269190671419175140630604985946580591928447067511444776938677727738297459869876394716165693397266094465561687413119201853142771562267357132293822321573336878589041772567380311905481039511767817268612158038732699827013747268010541786179613371506967613218140880376755289538144341647004830365578781062766465649118641591032363511922723595933366406731542856721636850626389594022995514842018844860154494271410899326260116410335350123259123531037812591063758926755632877838050682485061766492277155224824925156107952704324919117494728123769207057440086085005946177399254773673042450788947044019286169509618138757579157094567607600351552587274815277091958176831129478838917541257055382128150093700591141233260691494295674008431613294971393741455307541379677360323565060417523210623301958996992823577368679174159006985184463372326877285908017995971563752659894458912374215403372258300638693807344106509974756851087201261453514898835513351203083281958877551510370192831267845031963312450823614825382214111851102646230108232434159342622650928485315474447834209010630693395248226463958155286418318057142001258106009726674607242354604103296598893567084978985485716150992883869305750691648165854756798890170037381275286223385798617609001291815311442511395770548884588711332509738133532744487022569186790713091279906290980991179914419920442282331154904626409726520403480674062865943040724524726543023571810069233054253500875327502698340477618541852028675381819016640215852835559552948433975536216513411783848072585086894264195077232441985124047838593491303596942241181707968622175055244558709268689586814355284269383734679830031895540488328145649792841680949388918010827172062740852920989096505859123984267215345392867320620517505208740504619332574681738277688181614045303490860920208564600621072272940086234885599738965121448112801186631109170329951691153730988511544463389835681763455588393976744424386604724627001334011942648603640392225707108506237622901542746154612205079721417641422979602773139142253409500781217549103146025154267776444011374829725222777501444681376563826755399495504346755102385576966093249591824622731482927772110545847765822674264477896740701254302114324349355327366418744146682283858572022755879897591747202734192285547581042225707313747339758099199538155544883434656377104454788181003653827933642157411660553435707263916051579217184767767276050022657256818320171866018894704695276094776151647146294973439071911794716770945744389707774488924181259143121041280904313120975456330128508282196352957286449751773594322066627296961872126319941405084035043607304802138669171885764776872900941038404321353800987429943620859133342308133830572670109087813438457466151182944279807841557013393343477022680083513044695241958109443382028178878495505985832906603155343594821589319023989438425622173988401889591163348151691767211758448671036002914471694798863164833041541404912720172033242980805030039033395363792013043110296532317412495078959063706210529526177466573848977041787362046934405686417327892948853330826456797599498484064653915325702097616308358426876333522821833928875336842793685780625602203477321072874016655322255778814085343578309208798047255443345625794229683799319111496574451560688466546282724390300612587134829236395437900170438987783761409541680650627861997649873643188682386625872361671300383880497718552853578476109217448333080510853420000113972438315100589302529526794454252323349620294261197069576813518215813185017139252947296613386595990554932169626255751085371906184761244575220432890197344180018585345419262949734027294641770684795313737750220415266290564844086475051440461874922159227949959473299237405939136349067844677605746569883446481244725360631762763488916140173303856344964892232751459554735416007893998425735324865265146536521057182895538158372774296497444190722746656348522401750160793452448570352939105885194412331134757119305133894896909593964080574873296156531849974547569741993252655205304999610707477021247055376442062313888777678655849903595680414599766462444505425545720555650041383812272063673470372671154600723158925111386545394895530673542772074330866577759772147141115739572260843717295995490641793064895023845483993860810181056846351943272636059805739426832154752159942175257528192247456351911710675127780957888626339961219481225334941841968420349039800837220594509450885693519601896396774494001702810556180500433387200983676429767449627973634172812686366323444313118299044694049067582161842308195486676964215979290907566737710117156553411616223834078143808811515911630193475448345439595141269990036479620120618748075762316504770865384551128590452765957924806469796286560954617560214405874251018065682647690768992880895931907607162749887934390191540663184587759670042648133618993749041223195553550278674460553128349947500988979099446547135506964693959109957282213945728931319141338431894776244643501792673336858498504752072635130244505643273705253317542767837521173475410306677490336530746572242929339492461781928010972658949444187775998529945451107520061267117202237107456318988918594878435769288442157950762261465125240903847704303294987498122371682477491512744084828552176355809478453181399515639360700982174752388013069636400150256416792979726964146149428520272511110903226770564735092627276901269185215421502162741112973965549102984449487983907896439593504404268051372066789783407290186232701277716342811403007775530632681666019834059086343576312499132751633458277199846870733986746560516267252695693659197061884140838643530699209228352864722805116602580663635625315094006104649199748030905742831876505873696552565564959486494615518998981168706322410797859863757475779093434180252947779485199491503639071727543019614549174873531907659674832427874378025503768005917217853103723519050910922198868671942088889971587352236823994471075995731879062654816668007945357984700632730946169068649615041572458859329323952982627276622795957126523890429795843173462747730548699765346879501053335984753321568625067830071174190431647939227982389466217542575295528999414534160775898096802226288091088679275510179188817413070371932668198836158668728564309891343013897186150180075231774412120911890736286709399071154181897185672504292518542377672063201594411979884644781559078003538413695142849737929486933788860355849083757469641860432098347614232795114528956853219871927054858932406978214394671977372788428135061985788932412733088407718871034031927251579933151066399942298780433730818814254167621664832926408297111113074620713438901950256783699138776184723795090745747256342049395244043516826989985495623530394427178676622935556221338265285015966672191982439971589477493982981734478468042494859881322367678027892378315043988764373919437861478482198548835146996469582445163119434101487536792407133300727583130549886723876918138415864762198526816553725285498082775297600902078480176605138288476443030221975794567372110827937949635468846852843868930757268632509155329167175256652571839346957001542862991507250978974010563188735991681807088378446184368851047676691247208049154152509180528646452783712821149069755868439310212886825650819404896092189766246057817746069837035916723590338991235281962747132425050963637350122409429086388432767435152862087961580960818183879894972781470110696552611337830625194851717639359840091638654332816613106617445159434335493338703912012504985550028911627679117112051648230733926527641833599622172002288290338884201373354721669646473419994677984479398424659699804508692954237191642908458059585906904094034811039104906464978743243057693570821694348668149809558659119500755888114563763598278929469335059545378382488038959123203902801059255960093810260476760134563039633515076138812320443114982836509724523863030621224035680632185533683053571140998680223423891039490471383408177846975577716788015427306869944686708349218086808171157237475561551691024043915460412176376080790018318290332413277707265933974398623622106388113995466555721708139320758482470682751007195677833551220073198016884295330329997620959591962539670982210852779545123005767744167197089057510186954056836589212411426038375535148231066894255283930879489291857088789228129781192356302895916479987381796040604797542834410764498270724737220255882250426007520133938955428393910566474167619453587916810364864840957577450539293748863975508710399818736767971394762752633863869709375057289641743558746631399096068769595025922591425620785617281585962628592004596212678439678980782288111441866504600968561873940217069992703240432833446992854880569579869839262375607453838627982650975628101932512922313696629160503732883224387198758953086003069214762202217784776861542906985670468603125334822289034964200572309458442347705321348413334205685572876828479553742691051682858011693157167342514088370868893114575462715487600556206334788628223023065066613141473991309801196455713855872614831135679539340939473080652226499551225161228116999394444649370761321670311920782966664673750699076331304052444555476417432550165837212338786341900355601556170613547638601079067347731772676400180363068959750158653879135696992977983880193850301235067720658039479144094302244573831796775570236521185055795598413477085593811285607042660726537872045219019773973194844562214116249132062901227623223122554662931733838268655262263144199884649441342138987589056098869200326742180556972068690603653006859502391493646857947293780405417211968875226179998242113148696967388164065741394496376548188785514783426115585804915121782095802999940815769878250807484050381528183749659945918735028882766428549712616202218686972338553447223001400923391024934786123828589002415408667152961016581269234529968344336357287545022637415609864988245424279362488642569790044316923098118807782840674545574636669956174654916189456361522198595010771673049604223844634248287642573045841697892442645988360510385724061918814296669596563814705360241281413534366763069029854531394608596424070430972779689706123866480482097432354225730507061165664828990933062599294146140169730042167835679336397456849565228220312812860624626754024689976776901901692840291159079570957903027212266502301730421147642348152535399849982159554017481493297803770001932661731992681049370799791686628967070765068297068899684707142773622710651020799864872505004577897919522741577316119926453669313180863948666439395704793612618307346595580681557440894528304471406619028623131786245267224258018557876411053636614477538114854358964830242197146433245063873906319556079207669072512895268558205702365492352193903028823702624513067330182357826888971543985414976399301553259766017961633436999729899804896438924522158268662208401090903116670243528470381130953471215427845402132689868226121826980331956180703059730502978313713871100607536050822967046379468822180031244446926606971509035467035327634783647935968195268880436112103055435073521223014689326089731228355983279419170891209856665493859041006069064927632117068750919483167769630889994613759366878107429630117839280986928975074206444562737545066417904299352679934998921083607195239406853982971526031789512168535384479249040626840619053071620829164539455135393761820594781373349322807659444909951572720716167713652317313787823721528530352405304512366582368961879663202954607618072764970948039853034992882286147933795748387064059215550845204191632098308161365673613029755015284150271070064306604457676835876579419656101119053365657978351089202770833746706800495827353237337014760905050507864789366371413120993631662132310121940705428251197625557186447450803846078717133725781491244567309605701055920507174865555732676960030080357448093293517259649114776160161603412075507636122179307936092660317466716836645307301005290412059819070947805086442721389688129531074269112649797632448420796914835086806398157196667518545445423800808067960742046634735791534928720783590130362041300299841676442486981552416305131831077668041584390298904866772220947427973883002042522885838650041164485435229731524998981214122018802455820129363191879255397347918564910918991199988648796389755639288377589085933716249646326406314051379115702593944370479602120448249631470869299490765048131416225786511416818220840896387843875824213626466742393510378723738631901543051644857890375018423543037179437657905182468196843687333964006805983128491083624959706588730994036361815475096893012023680887066536102547353309454764139947627003168838616146802755906626688446868738703786531910125650289058002298557420373982055664996278811491302605110425995815552860204469005235671588449895041378069706396091244331922608209502762407566348796652168921003949573501821781668348890441011107160185711960753397285109280609580906650403089150494056271641925154791877267467312653161121642497253909423146592215292833457356735592169656738036599410143571010358139168129929200345469175923202724131587732697178068901105414549320325698206952139048605609469879046000090709811761998897059523547498028092778526153690350190109687336200570470031456313557336753840098058781023861344064651756428026706403738342878589687632655216546667635054276550326422135223578612579754113412303028143744060865857671452314285342475448773432649031637490560336356664022656318470463292057821537307753524997447852641649445357981704009321487100948379566948428307692194047664174762272421098844809271524188576003620307899635614602211783699317484238609105347585661797138300201507217180460703150977783948385306053662893812433418308756393889285502515882235568644194518492535724959643204704409804804663646770218323261992730666681688823980900970937807557408078733771964963249307768268940700059982188011443146580688143462611478264828217356557375033274710819872000042548946622493706368981414266382747269986905142044603608247766290762291174097137069746625504595792048927475634305922904463199631458560501609465476218290984934576698889096572295391937249656304647074883113595086935846758292098649796858076165710867791097120274432838440035800448419946561405058596244203030891446820702843195885355557002340538928124530882057056969673917586968583131590480013393694483728232022578995620171489744580405183136839693056089381000790421208889565427906465493882005549192500537713465856460061365466482930342126273209535459439800455631640724434087699493755655366179363076829643004576413230478805002637867025051759578554549366861777968945974575910670955161250088835625852831997561906712355716696754482059525587802052866303263615411345316915874033740618752546231821343113265765360994377092944350277889650515500787788699373682855974689581584357704103561626041966174346370280918373421791640981051572862870339427860756623396323420467142156340255054778684152276730482093493212303240113622640026879101858863386363733599409269304619755965839109780916917642715504569244854791801143883275343750650239349731676900273855762970687236569991968884476734520501297191397138412211555902067436449990361387767852831445960836973642833151606850992403711439175200886698825328597558204141683171311677318157089591553281531868853321016154026098941614006426370979976319985065817279049986450933908204765633666080075145239923460626451759535036067454679704232648252675377407900925716249251480827142397510107385308693526836046078599066270099575930576944758731728731445549225650565386513025700730906345585121125530734507364498784994947170974735050535055213367531776754276102959819175793005231782518141009219342537298544037127657793578695372064341929270297735662776943397553957280196638089425690273425302933482181201057853985423148815814567568676511119839443697975272772890311808749760659033325757774513813871011616896780756114910400624181852206957457319633751010715006626774472435850189288520549702223133423701701295799507561956673712025876042071780853079167316032473138090551930837318523271814466703604097870609594504328156771189616032257819130022920937443918182821542274632223774026892378425265625033811102556013712769327828315487517069885646935056984781804972573749274362543451961522940578888877091161831517464645456210827247411093418334032191440721428493844491417643001682629984968215737852583552756764458341539046063230315471501622811783826154632851831494474372804831158997914935715376833229816122520717014743417246484929081403447245019518056165581493017869591624745184271404744988920339734023130929289007238545773226561538653420323268938112069390196120753673486132065584356351982231720360129857897880075528833287016388556261811815143899321875781814494402338760495737680918073868660564674222282158646070694539978878343229651506069536244101858443620019047691072783562188026261509837635145650879260680911460508315811257072805868423317631000000407581262023801767482908474194151010807213221224435106966733869475269029329126685033233795749867445238811430083938463467074733613689476107120680496194378076355720167318952040084581709934821741611115782494488285018282570264202272072239996728108158509750591528066844913366061125703326942324201568520487792840747198489622929377719136833604018240550519976855554093998758549886721146960130799458729790726468386423246677165183770084984031447758545239874245842692288889607659429568486849438144203365817960549262459207601489121754658374167626412229642532526440741200657446781876192433309183882290134140307411690045827854139889882545632522867345353188074192940101501339839502532753962994641066071742531815075213950783163943000510689461097408699403462017767658938717456830990180906273166474559475079504052031850445471895828327811092487837981683243202660949557243352803715266835031479234455673503340813863912640374686880238621384108955177891414279309285124670215388741982987454007743186894679328889446418172576420015769954466451695936812416287276713359366639057143193989728826385798496302894527754053573168325668082471495122394294595025823342773390131551033522386398956413601513440268845341047698667210339764004209730804031461022204622513325885957703723608642919398855270076001600438427102652802981207479951378042410054247905346698291215608104075382171427493274725270815555211230166183840597563667846802780739828189709578929925185203381362500713245335192763654597828442219341138363128936904841710882933994476682699453882425858977462521442628030175200250552055726717311565979585443489732244514702055725873172960977715432765906638060838677291493983557982150581182144887271715025470346770699255683394969340373592791746592221983473555308781741662801093524240591605070066102018549118908843784769058561090331002255212165754643963418964275092273607879599631654090656397502354370815466338468725735948681053766890595027619473807180426347030633874283247876943804797070635312549794679040143017289668539223842318882321967383403901592261693354195636362236951346986057433187459218142994769738840356141722346273054926521772082194965928440504141894465508847655064857355242807835047599785877514904754626376144697233656138456765052140866243778314870161408349430782271925485050137355380156382776260786730176516588242120375887573054315789212853253062402178762955139032414469755130443331118915869376530978109596546821334743811326445815998562610618299944721434482129259258664886522494464585206568217151448386769087269568172476684037208755298394624222760332832820215861315564380386945370184006249412134842267732378269691146302616446354075306707521858514049284316252628674034259416789871383103908739903464682643137770272099178723416170154836622037534159402881189128385496372556447802013619353299654938313178553360423902991707142697233280195554436183956891511399065825800166146418106742551000772541533087397635161276832698133173647481651970312219826598486604095656103397817754355500607459351788617543976034230419898576036413204532384215767312390402864285726040899188571071843881407180781285737597325863364760510336600669566109341936824964880618683745422890363152978735478802614834840746368564048478745281885479661130823528924553225352776345437536558355959018244620896556884261329616748390923168218799086045800499941397078962554389651336407905553507852536247425375159062634993143224570258319033783580629396559035665627463350727312613194768926222021732143617254325514794587579654001979871223290262273561902539570461998144505220161868689914415538809911655680065341007584210393088116616219095722653251997337344182124924071074004610180440814821614477197371780096140214123762717442235727075407809508047709071797429087370261011345726063028581395613347106581267652363934266228910784315496037339101878406857734660925830491633629118287960460804439401212040080999231883890466348840595217612501349019077521029304731099657017193567400297814980339050060530930818526018256131963751072593785642890543743623506605353634793870565652757990739332629324681981733865484434983371364452576504892714431286320263430652335348346164835691306590354152550574079493941447726398556477392942575251037297800637169570759079121396212424784786226128264292543026427099929375645669590442564055532436527225641779111298392099161492473487299882887764302144383951018638994051973815126125484712403132245029696075049511776757402954943341737058270470136599314623927367168541422320909590738050122435942543898764052925195493883818704467408340097105794255542197799402746291134949905602102729092041938020351229017650792571893618797733624610206804012546135683396955142322332334255678365686576424752843028107768763963184886224002729910314871747236467397362315559163442015124748239838768522677642905080417914479591206056722051307009286058758695917584138143824240080240834975091892228189863398466019680090852960538510093467639408168980404728829232781999350751839207373875216875838451625469403879733010594039455770413168488257882104517658975628455221028840576353727321205545933130224982139913473894709280856215373665053843246748807009640340440034132801150493258724930152073668276398354584939664478214402036637810427628567221786359314422836154267515969980897261223174650086310749256261823373233090634546360879279396615024365288260867469027967026383798941198304097946811002017492227084891283695243580739466839744261295917868870056317426670317388747903681994624405896694290048676332794623235074103198370890933947999135319437741982853838081688607448931265839300940429551063378588590531997748207348902017359632322294452898158503884198675177393904703323320172148120090491697171631550404813297910202914122858817831741393416351894926889414685092997971523021181173877200379938409145107677738373441706202231994185862058984931289032071890155535816564060736842884408779785288630496646366235801619929831506027292198559456595359049975906422221607211096787370810696984014394734329665550411898165134018533867954077975571497887954671185714388134008734861882874419769365089646110985782997083843699860389040554675611521844105709832319779484726626080955193415586171621179512877840005405860324076363848336556098421491070001235669923977104042952114366137167118605821238132281785160295828293107195464366658826450404956181659704544021893617795366517791321721204138688367783071862396675535461496607941229184757353803003201528770616550090139562877445222856082024356663400484406122122556070259036623703860213268790076166687834669283669575184401672312943172151556356952059546838351328889016011265031690855424725714685308887154528193856676782320132847456720967293716855601164941647935972874171523411088348220675931359354947896780776914878452467900457461086589420289947370536565721368276308357049749692783545422839705282940572937289336314115388712927846595296641367086842753183221127944484796228755839121707458262972506871956542156940710506432554694746844317845335980030952333368677669495950420807688516506122527859254234067171868179044121010643338790354140504606837866483782697712061081742869546010022395336574353273202355095603994249136795027866973666224724520989341336455995538901538040933303122660772389188411289649545873699603621063899534975021746957086070553131564957326186052888163033348550192548488900238910306510310603290235004553391955247675054343877350680966407303459079995339221852024170388488010155230101331049183195321448758845964803216627518984764016502871589532255408864823266698884910787886158573941201867652099933261058017300722862206253043106101883473147799358686010735284927298512367736677332140548593432798896610896822951870414803710044076273189614953346753290423637292155961943293309208640070617564857318163416555069139479064878769259668003111586683033126973990993515708953867441521424307922057836984507671852789152212753722952339367865283552829484389015288795842623412923035596490511879045060985471626899591568835953375461332827280740171507330623466597078456253579887369587234746711791132252001680774416906788557023220444801892040954212879520133641991226214323184703558834515689983353090475836143975684837920796092340884171646513333354539807773092872240047918859493513454559100337354049207222364889673447114952465557388956066033099543263002274074296622262319118727020686247094005143141483574914577714778305853926833445653750626194757451736115056515628066792367748562865742586185293274480787080070254421974630752833260232795032220854713753150802191460414075971927175798179358188103861018299420243872622185680979972734251509883154283506889757434929473819713583568581469225112575023735379097874591364139764157517843078013663306284996582607656170644635604337932815806813326460162873382662633186871720511633311803236902434363274562045151685154528752881066025203333869341115732766354921838092246695529017705333181617338639200670123181951272651258248636323349238919119319451780497347788854309103536251419506516587679351810006695736033315079507008363297922620856796636796013040429439971828378604208835002129260073350243399511302305421935431156589302223804970773377843787839504342987042930284127524849107484475723695563904455760230146316429496807286338585112825669354938061132428217685020419916821107161402161292412622954738704703955757157253452757695428325007797633188053428417150798439226025456744063000066846051525155344073709448152230905140537485713002914803725490673972284050139303415919984760306457031442552989692856350361545917561566066007073335285077032384163761393328088818443805181052097695650100650953060285284698689229203496602303653284619810113019062773086018389996125351371179884507795637262924998495487207106439279680946232976818689012358535156495794389929050208181039414301598088875919584386307780145527537085305466042455615867544954383403630491009892373877985169638612600934768295176441843440811170910579223757344230885051288485610325968073314141553547046498395848598983435058153659192467385364371189847849251194684617512012685474150126109530881676141955695838394263089704461193258947523770018002331767732137555596978143831710367156448423542962281977431711436162879815608813148601058907004632154382958612867449198643371554180459488341168979514442502806111916442956726098243415912273231117546498263692362858270595632048766551450573394559158676851218700201703689752010558313390403551551116717548101976502571069376620866035860927033169500501167895523439637466001423255889898869807885561396650294248432262936958977941595692071652810713602699969355587066916451377249214248276265416209188431026361676304024464371378687329182200392442307016479467065260804960056026873122254269629859828944722689045572182029681818582535559268808537223855925626024598059702241110840814690138878301500919575941621980690327601265854546009171074231813617638916785703069217822551090105820980254402175186344235188889410694711820202508577538725203013942629293663486367788909848282793234469774980969011043234632157280924643728637632253738337917806542978854721629179801200895921994807832750914417493663873094140180023292895674846685212249777570212262256286463732877036400178928908996819228549428044420507334782062465291034826695512813780640668723413391116226039767333089009075465004055602719177782148324054054862630031972013640266037419003493191024070883931655109133544542244486797470445335036548631081082323811876046842909165615290767782515087310074914749374030140212576878314593977716856277066162967294202316413019598460322609342719999009007329112177227139857697176921620734794244088876191151807524013085229941566015341181016794812215123082750389037472568683179248307091308533072072872972409842526323858450772743565850536013182169627766442703711956253091215687754420056708180341493185027794598576812197605681687947175602673029783956334233747462147688238646099477609395073266131689091956530164673542662771006778002247099420950390664317237006898814754490087301851142891257303462630765845447384716125947483419543932061052061055677679367235312533425762041251637128198138332131148726024894717961360479548434422962678063249320054057759654418027194329261808742814921746266418776163839912587129394551020649139810290716293217962260645996705435550851279888593922306294179606233131758343638928542520182167128144018109873421137006597443934165045675677560013523656008096176621007489569974776924109091112108765830744322666014727747211524057185368690155173941740424843508541650338287769568753631345930838956885735104141633239971407418581393828764995315336943953476871249805104051870913831130207578839155860577799065629783999002464228794752903629762872423147658601315293513259786989114296149443784555577499986697226189834014005460316391092778080414286591633193261975505223261983922914695153312266901950591522442990679487123209364442889862294564124061922620489421133652843027890274545701072737117232907226582563768843860937041231407830841675359677763251343506259855025152859991888907867141731023184006091698167482903109419492347844561133163166396379404955859695574102882881840528842909040435398889706497668781061152643278350919945081347350557791722725483098627821004651954933358627195290748728117201471201263204454612012496226385947560332266347184304292127770890697430742478281902622467559733781067058051130627553854878533035729454812028393182226191893400021562041851283365625176070547995379392646268895766742727287190493099654381532524570794254824425562873418106115927234120581453644881070813279177647097778827968081240120061426905660087178172733262395760113313714971754423644387836840612975973829341168328764147289749490947252057819888012507649706210545719781016853685309354301842870668629806221897523533113187672804244512519773316620284541545524115917923898001452611913692592729313689208811858297267323843941917727444707495969272011655928667278758522661224659514726013695537996847589165940814976767831185537588661847759521068552980900567972311015936198452219670893275135855166523466469693622995101083337932884289246055133713303478512243508407854234760923176361257112256069491137117008978273323153861205353648401775451097295645212297764450063191888659091442806953373592125742392354011909955614379277972327242996048469451128716246386639404218457355854230904358379725610756957026257429218613149334932014395839821478962904721044354435884229392536891268647011130681778088304888894930781386182465019980574159954918737890106085522903439139306186343155322000997615284461645535126784335764757667959275274359444211895940864450957804531791149699565037859970504791739609465537967588590966234332896831866130581227357370502362589958236359954902511481323647824316520165535360672356483375826146881463733647091428558086644056445251932162378036547169404385543975170370889216074084754131635838842076791665445935153213162102874305995081354984930771322524485258698516988823990784131833575880576242590499211523852075101355052798689772538255668203925524369042527843624753482685519584094634526115805578965720754462622209801220469099429360740357744949122044452941903361831074915987953201903580195487709770926913175845366520065770100561994971965469077301641982718395583732065271424155615802792303110044595884730139499872769498080676743775448445159298115022836489201101180881969386674607839980613451265324280076752963256525568637492395692406841248457392615749129752555889161152127240806528226152927683985254541033459493726602736768543513203659932488533775849648679017023514743654819112209901549420181585496876691501958887751672969461263462257849797547276995450727396311666935832147499241204050647376793994998177976177535059533465156183088032092095123006977374608470564938202680804454085461575735881424245167069675828352800062076563195018375917788951577329743564318949004055296358310495612174678941049019358827589873451599825432746380015348007959798922217564247744950029865328620384004087352562884782169402057086624251010679538717655654822215477494615596533911321580564987246678316090340807199541081684120981231191616707573403185662483508851833992741564154800442533908456392341480715928045270700708520639374313334863671243313241930995041505824974752510644002631256173936581404288367641007049350103074363039217081949578172860979873620184778925976173668715216966822849558317417997166639525243173555764964740852168363109738498860779594429659020782563004264321274443195584122251217013612216139423090967500454406607874897708591332344990411806372816388883198012465304118475169801081749906908702790963978281471256265359489203111168537538437627961599184221938528605723318249822984271309993743154309938403231390780003874015103063480131413278256146935760286282511670238498624443731436084131392557862133499699781782627478910398771462520203698884975778717186484537166966664688472342052221617220093658613869496921868073029005885450969209756541655154258132460082314812676177843944834373809203335544957313047931812452880973915097524413786118022089253404736772827041045196478402651132178551427923109386066982423155737638867043742542845760473513001993578102763177109235181176613517774535657097481929478946722566324415809865357712172591932503656817636664917162826947802975200489608387458571685865303982000459939806035612878995006762521450098561275351677163663920273155016455914422553822685520150321791621733714261361138164987338583899698907511083348922223581968416094696220364908235280339876106593653524775393220486133612111259106684198296392448368683726558615702633981881730237478658420299439015968082096667127783432886351980529678612820395200268755752769590758337009641644274507332224504067549135974620123736185357410917205119467604282437762614553323546978085496335502566830873978573241625332518237748856390646989146141731160215045455826320118825678361065204104649682418392193429669124793449899236842089038115918293212634016073686952257346406180214853450591753868541090115690779193631438548222502251131716600895478663080308098259689537925599388079949051845043491225894295868978224571368285996645478287687091109639724161633718249839702092876935810191362438331583692689017464503364151244767008281020919080650647393416214165125392390610407689004711942627058839924563832923473172159825032005273166321044072977823313910683262910128095308371339829926291603582359259217506112325465145024088518028331127601548264489340674132759559374317777189126428299204372283875980478023505088637066275142803291873198910861883838256988497580503561908551176060851980533181457867335373728937516084612194525345083623933281531043274843021517518446282201356422975742279252628216314520001494322456019485469856011864722843614704380517523123481451828291530035226105728700101706746478138812767393215926385714892551685842154948521787553193835152018534915246679152265363862236655546541316415131204210260873003750166047712538734165090217240187884724266465200657942805092909347780541061656838118885010046522269993124514004159651641008068115335959637390104832028821751427401794950175078130137768364359353324984997753053016369298735523066550472692236588510663629156340194789110341038216638680354945775033177962604953749568115205933056229986805325998320283944553090255892786239518599026923842632432073802283575277590133242928910597898782107223297435069937808638695491706300058755154088834764890374121667459546335172250877830127135212694702326039066079567035098630681485863653978789369576994357246155422926391943998460656047663232316959372303364624200730958200009582930637818296083906125584118325269265430822369610242131397019192708090836736174062859193366829089350392248464912011340937574273425054148163720528419420003274495344225514994867002503270917551858556802596113559921941004303989794715017923002765302971145809971415471315937357083066189411080298603083184841702558358280373656859192543806237202161909704805441169241253503039166982453979436123100236069262096830563854860329311389054700034607884294718778488862502689888325836860521237405461609371855841968086784616732872925722648476077506696208145799506308472073787969930128742421378954520774097040727304788888079682366542526801257760509146979843904746800966360320514603146922901935259675040101564144253061218583869577844787533751205493737421144326321786444805755433853856314509196168207994945551566959079851085132731311999431819011671924318972599761698483682077499918426416045261055351488003804161097135046090114767726240837372347552277575501583147135066302243081913130468549938840986420702316847471498441069219217577510509899023389036299066524733449914844762471868846984379379850059305909301396069498120461038034501767651209815586063495933409234747662111776009054120094591483616326641596386029095413027967351041614740249804107040168276253813525570364676623206367888436470999037567491420299898888738499606814966962236985353436112003541796917492688250984382017677483247336253507167891043814722568417931245081536062383809628096439030917565244246253764758625835907431198695995984740875152495359529165750918409569789852696593519140720309121025639235406674611771903469458164987752949170451774657317640671528460842678938833834446841071251034117691818733741480596748123543063630129104656233848763987788765884374636198433378396371749385607945239154491265395127951884447811176659305861275276488050951266634499502212792784596790421918632615569833294718073860718208058434021510015842052589335963820396086950173711593219409336905515034947072145872675218730142560983929332985451213318954219876777372493534718846807554770555321466837287079760399744237789002556128035902292629373315602024513173828859573199271368793333755381552054021628066208409657511384924788972588481655140772861996273616415143661172763010731709853966386701189949598751849451914900874332952702894208565310993425634834020317963217519758459172654147902330581991449065174668100992951847578098524599644822589329709615204123048638491108300915941882484092146417992578204460468877661599356926315148311392925017808417856849997057577800111057549268368154235950711544199712718832623347209853691187709153521473813153432851170512062992661420916347186075300133075059138454654061986217451820668161125801782071366363592170663720956708578164811201062829691963055190281875786132632694375976544594024766107179429225966525069215775666451626758880776563944321039091960097989137196733324201110212914760241267123675630707923697291421217192063055443237264498109038761879377667882016446743844017178941176945422581111394822243997963852444421395830360833026758587589002498451450027922398071927433357216509731572781588723421458316324163909931067687217974753200686309254656869125531682967515530900608815432007812097193131786849881193161109304258271077649776392915063626592157868225559374725508483432902096591053285727884466918698671799298895451712246836494402666143441015403315187715603635233309553770130668477150380362686777144895832688469352805971174595425997618452396239653022019125580485415184828329273992827739611009712199623378541387140153632473461810585797100923171503892635522024997124664450597580741142351842600010361735605906466051939658990751168603853363959224553668619486587488546342347885872477972744753432698320025640900625160596995795872805547487390247428323830036891949735687058137461665522285879783026204002783463824751868070261869323120362281718340395451562519043096422234946584360411306511451996563064896627611358610057461276917591050435636004089376184384991767517061904786068539663630844813471238834284871443065044895368380338891499227611924926216740894816248714086873935993233651282617539599406514469030571030583957454319001096669328388136073288298894361108385053814594087558713920748211655697462095372178690184896962736510084437731693112660168700662957737109433310711524667879708349035388679218538554711821304822494588217880154594203358741795527697201890789493291723769281489307997404227886361418742780151919948020023301650338484600123324279177648702882805068236447162473767397085664881657354283009606834304700800355687023281034015670370317633907369176179442465849247652217021788859681663743038022845777429236115729159296748856487943991137896283497814288289789785655364125326868171098047411359793021856307946290968300455356616719313974839559307004470438691941779187044214430144057847669102071641814792469390312773857327524156531421976536131227175404754326813169631977280052368119909711313102725771499131282645657137139525175856817294839285943348280255276587231002806901361271036453206017225584525267538280662916237357985969252162782539018306226620269554643823346701709132507472868102646348132143595948762776701113457861563556462179809987788303161669595631356331726617963418134650382069694928079380889420634402522664291318851512984807694111779614118507165991500786179020385229622376153482644046590788415059573144186460766149861196063965937722332914384085809748985406383240534312395897394447848247828183818340574932506837334510745303676445797175490292724501195993017178719043670058567851812432755168878608631280314815193908812138863609512078803401188154422415764116599660323044202824961082888819848685289412039489101441211770053810917073220448263686505044613799008166084247759580352224712689054463588662891838120337434309764482076098479861805113739086325109075410817128084841036436572674465571241810951105988844902443276926525814068368803525390189553350999737018367833013736473220339035532472621892718805843579547952269505959903158249451904923764500037617823914268322209930152044963406856752102553212438134862611159644061046987772887552637666539531483630302712298091556875637634651368432165648445895577520103330886024877788020618708485776195175469033661004436949061754151614658044580898782264621378966155950654181450052917220986018325117320194626546556391708345085709935204822853673431955412446982699807606432157265517737055231198425471062769400896125751697710257070643253727822308769661984670025646779430312515591842793724059931750279022604490502525552992201589671851011461554433778600265087131781613400854699362737043228678182633166744943392464577726304622665146207686667520551634747622180044214609105204994771828564845436309655372746882491824036669380952749404478295809938558945028660053874435094494505240062151720148871233573181696052294698945536552969735632970101685559524763770216236661934628875933620759649159005469762888046367837827757822437062414277821665992091523134157288031760757563420905626536181238399229221162052126408853336480929372844107158691934797463878122353039600377166804353353024707427531857116991466838959166417109579675952000482300115824510836972881158938724045100535792476608581066827226182623182956750644658913057138366448954943194224088424309236467213324373933575865903380852812165902025180646124129917286832838438475291624763070820547062338841244673649959527916488691774291458140523154245579128141653355829796533629629065789889610481089584769749629938267338095405678234424419024645266942845807233580682246474525733989089802690836899839684709545143520673031386402388493514339488824982420732425196487246851376670231941991569310345393361966980566549228168421498395786895338157685082305713687029743428584724955552139730094877984819374567866381880061010050522957462709850783368611215933956205329656716532713337689732568135562911060798842423291532317911425169379601282719584531866663555058068824818186433849299119770867393195457135339177448440674070637859743722709601188927390976605173558261316608900397449433761850561617778605185287050546602826883172842873272494552858292167084536623266602767683556858795380443431548484488748619002722252098336084279137975561267645521713021292113310597524733397476583958160507135090759407519639672154594131280263980802814489634813901463679053419928195297031836544511407912864160428099806947054923323167215757832492730068381672458872478991498094012647021998730963012400654984456361056109463032873889332254309228346488983727612022402321914741607982657849019567148415350719095281035834188134790651524746608769623153893174281914980451615450550139623622783207788028519812063517896773385857109473604466058703519896942529353438411503454633977034467080031575633250041281374089735980263670118955424851212029008314748050335482445174050606194203249818330817462203256383705985270443940552778000071202083104734233566568433832483693962916546928101060378037476235222514346902988676255131898751976278992730420727703238858029691862753634446866767729283888296669786300285360173156753122442059606175516317221248610811346258606714096485450009643750498723626871799726903142097480193600594299526719460152032031604350105156437069596752438398103535320803365156926085457184040966857778351868906446116166965186096145808656730879064354834945301945793947041192985366535217282962496896245208676470269484181843939446683484057205083381334089047173544901492450629655324918933182732691885884669686206826791887951381366647913984233466367509280425540353732375808317404469973561350873190950138309683988191921001688631076508966124413606867739117010287004320828002865536266549335195209238010368154286314574006875842887720880942457865699605173372044821470758455068545769179882623689892268696687058919888038360071770513279886971936740206951316563167450761958370980048519708922391133501822522550072036345725343791004667181453806470001011630478592666911995099423313205303116391407137689674962799112823028671385500242343804306265051628289203195191370756995917438380826393947968828263446750420181356640766755831569335744819843557929670701378866765445213539973341624405410011191660446449445028975084992877989773293365995921427182510220469092347904712511625958589843800492735678146532591784316084095564157611480025090284213535826423716293658225029963300711450724397414773087383486497003941054974526253738271732742302166481351180158563923512203979526656874720983830643823650717625183828546704559902544183192211066269548599015163705667824233042342443623760053596357240718597519837897026367648209927977789318699720875239829717080686487097967668759570412603785004661424826574045791255621874549534355184470415111275695231592965928733060187091269850763958160789955651948171077368865223313401472550182822878601283349950395448381258578851155401591276673493043948128848915461189207072465206992109032779385143741696763201076318456262881136665666477557133235583440651592661525609048461533352800848323711564868306472981383289781690359512851452478582755850039988011786747639897260184956430741373588977152261607568774266749524984333921443922580281329840485886943340146147641429491504161808748501680494364737361220836389455414139623823139186458154474215456038214177731134831151726648705163246569127513594497271783083243891195873169410683782399504844720891401126947588098705361594851519034107312321919505486010437884454944311290619836088300884086506855138703860139725957254647468433025625000603307500850924754459390434034412609633082136744648692318119992991596105860322155610489662349248118154014239041951521010789999067737464124347842255137792519344501911781985730615755978200913977909118140951687565008092169634895708121021243579845302146733272243841877411785440554500573739076014483193657347111268487513300485056769511334705771695600519691018859472370627731017526363340344028676585363922016922086804544908285379572817696565419169456829728691453573071979617503294075150551376515315956081135064585042300570052181106082773209702124819140629045153883031203919288844402340332069869146193302240693136120894889154180120283722624974129235696387012562500186789483795114110721382242267296918275259702648745155332394409805771704082449729008674570396639029756006810113833830819782852469645708892961974902786135153176341523362543368236305192473714857664612117673320271781331242172097593361158854211223556806257617452484211862125043428382779588563610694396344486537770627552205590039227965482361503799831681890866364775105957281717594183198514167887349214854689676632088803560293367651540958427316692146018205389642788566321216623802909710220448263604271866044631588276771084536120495588175531049058487596524612560706862065228773449336935901476235842706149125572941671786033803017066475646295366648977263881617028339470030269972683264300923530140109502679155525979666045242909106849975926163554213144239326443895635219616039771427156896798906770787393644285086789204220873278783503469297703194636308828792423796765981688109572917997177808891574015808218954809395104227149836181514690157075717668037425472742118674238059300880070001220844820901766938496129238623419632616284775278379517946349586848859083586484586687943499821405362974498269738836549257197889165507861487354743185536798805243946283994192515478265152015157286134789287305416211969078830626265022109511164694771568622229102823285477113006380469216393591114907345981868966113295224756767510227849991638572126826447537442535323657728329584138872500119690640766486650770131981118874609345946461042920209825349538113084517753125332602651188682987340194050962436330836303289146674061486167118445899457606543729369663865794821323191108188053682898165680801674235177232340722890014608995847934383404749666379049713245600995722707804999362070160674381526764015739409265287298134135304574869465243166816418749245751518101712817509424643920524820140711446592331373603685297487688127930840293727077219375813698689053705825899472242660892400385511241246224268433541304323603902902193231270701985881458480520088021162172690312772472350711701091139386471707752278569213740689874690956470108457049180263636336651697500876071819071596951768885974573056154480796703468624619770603889115852229230629224293138284435503350531860079835342744033418401364032644003786523905878409061281687249164036915131951008662167953273448156060470838979381500655429161584008505473506365738752225808497924887639044956569168005049494557338570569104179122709983142656579773802030676360416217554663715662914992828400124531565863979465256413396412166357862362731400908296766604401626272602581538619141051596565651482829562859381244988969809317511462301823923592173844747557822325052290945602984399780943690477559359293606767304274837603974573254869835169815402209524228976342667900160929235204743316660118186194094229634854739524876703222145305328376479583284072594656630972071730791216429216470083320625517828508384977961791277570218686354453486212188360903010284662362744280206861839027539048841884370414799887599842241118551258205200085292729434128017105828923812487783528599041378537192757017318527403703528445696035069737538412263316021612927638445406262375412120571009628355536984350183333814575683360823327094497606783220677345061625759829134602216510438462488733217344729796243498882449020695299682612676637780231911556207812290596070041463284768859857404018882003303152037951896528942237762522809994844277740390028330453258403704765767743896522730510877164587538300247860201924290514513936825233878149409452921994513774256416538643753698146968435913875766045001656693081046928977580303367829001367831805972006358161503419707735290992914896707611280500062077089986567933373547302561757125188067771404585168097739499983646082377546911318122794956529755966214161650770739037032824724025691233956333158102005356458847752065007472443629154485960508605889347601692106145510210701806797487647006697253837600840834794412197273432833928253228166800815388706674318004765489412792736378872494935800744410809797230967109929267712398303922756676352657915689132948158646059799464719802658774619765676176095898566153678510270814174746281776513770460750687665350382820156499201819585961357818831714554961118759308487373850339826842861488348894222437182512661885131944074285155925562081057001762206275074800670224975207751465731845454958120191999194079996915427585597068288403000263982882251831431369089416699919303489500234706232863736197244450540872649501749503002887848886169561077158428952417748101598602382911678854308291699954037638682272336237866334978246775519037119398152313229900503529793733880485689059240084625991793021517982958983998927450568847688667514649171720913196707376358600486669720397618511543370726667083977729116274930537947292140894914824953032144885209903610436364523927283661924130921291377805093107936030672683285496389407362822650146998029752895198295368566558936190841640263119290005874655507144070559531454991926199992640539405383525284858403110753438757524899977760303557283696902539796823150505662707808941232368521676985900532918502254591616231188704149371883345792864527131160636702730226192296865438382165325149562594514294518597237677414767757672921369850907793487514114302871271724905602526305001944877190020683266555894173192060527470013800740496591854111458470070582905968652680467181586651658052406134087421540724364007700024944442247880124403679573810224168018765155562719809473204198579632165707565384750152431346661819516866353194454497001354536088456688243956334689016921936674503369931896240277626386825357342871297920885525687616853357526244743797562745691842793346061991245485499045637620388814029683148251090186182540903107124106742364236342473234740526368802916090564867924470182017535213794287942508575907013759391284200880502441305017407575195776279085328852329495367643568768010885203818070549001038878938181526986789612626764621237285552853539980884235694767412511598931584646198716774191078383313092516286055666726977423795943923047143512054319393996571104915373572958902950132936741007532030515858288245548239385849083738759754606764674021156281620639663117038571758110309417112682090682270216045838823372881109169494315508679231744313890835826848561762708398005467703745663151497371447396497301814379638612785144696426601038270948292560864689250176217096943463141003132869869945254436409362061904448373311762706633871334494656175104921210244157478222270058366344184141725463310596144104739141007856782654251651362658358157107685509919995327987389413967352089404030805407798480809810513014588057326793278427257554349469054523072951755205672760261243899318170078087932945250048256051746330219989418114720666109760242966872863829368278328978021174259637420749174494613321330691765836551480109747850414439708295762263431780988747193870901673802481898853612118833729609822777595270910014120515981375471389618278976810721809369817766715876363276455557082556865446345982973428153870260778909951440024786089266266036037670195888914258400250187501957569033976410846344881410872168162879343554963833785117520314075479723480124510866969939610480714922929173625703963321713663840356805501987864373970242164732167800571150342229522887916695574860415181272913363992234277853315586800390442192452544744442977744793655372482978759463560519527646120663907012364882278889106594828681017456771244007449539225475628011979758034983123184451766306075012597623755441967210534962361592535878984550437386457258688725121688988666389749301275440675081138108700593159400750012274441859301117544415814914801334747985400822768714144708535739302988775249827467594757427695154764665881053967160685447557041100395996670073385160310508049530058071751201503191772491048140805007556373665137078004746071717327837793890086855653278032462640032445715670871792068221586833829399706989912669872957068563605764424797836444133473916856369859490717525280236137558318779522242927143580750201911251925421108534415597939980819655433968917641686408636273974739550061051821434024682226126675304851622508902978993174049860053856862243205699724845315434430367756377744563918546081045747799697415818623534342140393966074846981062906403536170173398164598017959744040929837780298472009788849914209311797666447306491023311869483804269478242186594220886229326392044234608651499288049213900577319831540009861850054099715719100606296273385691008475594334923524729808854399120321388904925827845110896536681870487213711592490031459726844229133855981296888147139233532427217542946209141643157958339520632172236488195644532387482789566850731610191793810649530072101245936267949305842620051951282485751881920993508301065051437289456604813123938639919259481032282373294228910868513252000400891504401048832046422544348117355812974111701857598451865118727112090933111832502153081508444711156247514134058676223884362701620688620322663085983909129279137659960019612958321364500246015157694071624195963067168197679381552858293508051526103725494111406382942986796241877507061833612138737532247266975956736105951646987452391661727879167289246325489806570965573639475232338541162487815919051406070608468055681388046785711661290570383080891667503325648549848870645461906859941360662628547054506104877719621682911374878155193139534493670715261661022150723201878268570266145501020051458682946198130877294980695357009762316159456893309247400294726691127150052887117082123582535841239481220772187704714540231393383957553960678875652559569107434235799060480527749371581099361219043227650346858078234758380100055692563800690150696055706313122533677122017662417095268291207941025148142588354228670031135382150535507321612430480865789746506252615765762186938729919503217475979246038084716376688888289173968859466898578360139521231660612735297522252614542481964170496722222701870305616271748857238081045812164092641349934980279545693046336234226229976120825073558593098390432173065509558341217783245863964882253234202583005926821891987286543682350678193644729945332503722416521637718209550343694038217518581527538547151336162245808451299561415773698974393201822307051138678921805964473540568508164844141917093234784221540579911195173407497066370159605997081384351154391712390931704926551120562832550458362029470757199204289207786223038789052918443079278514506747273599369893732477392111844165828372658359811965397635240093366187639726359645427176398864888651844737980568599618083053996898287818739451101794678728415605424298130352939126944293053092650111894468286094657553327829313752150492384164491937424295961310099880857995815410321493137754944464888061522876104012661438626544830408351413801929690797774920657216287284704102595141736082956223648237267125022182270476349522485322886369069879794120151552445155174502897225490219187445764618458698279140528284104560712537790135301121233322883644685279394974668685856094775977028918575007912424439395489952170557238217338796091648398169468227820071652546083736559810989816392791319651307017712397409745359435727313506078021404739296341837986163818198508280009008373776261942653607197077035694461001602950993210358428204345229264753955331171756235705572801622504271872726957133435647018840548065478639205906134862698822938115053181882385377962696946016615465510381149573802089312683216127463639574513179538993182261288824493247782642911873198512524495544190387513834024383946839473681651110303514598495618240492125480497976409489353280683439991443897762291524765404273636617076197117215120733927868691598963254716724055650853162359501953444594101627998776932838875789688192141316260355328174614583555106595016059653716869961940191513551816164958101402396987461402321164642598205931489287396942047058740677617389731338882594884485816210801825544175280774915326792057002392762736400448547391705193148945582732274238669339108168150726443409634056754251379132795241893440956889874395652644525360004922698543182182046854576059390741523856760558181169484882120273967205957181627221769437435083511242030518935174345111085838120451723894286338067457127458958367738905480229463394092344715550882303093841235812192776326428292538750187821936571252675857233622076166989129808468271953770679128462194677399714894282062260910810258933106282519371308094211878353908721904162464005362180894518974865539524440468805453679404013450239257306881431094988213858052047855816122624587891535731014967471912833395939786326704220108747505262340981387395449066121429877811562893956198484436000198284683675032273003244536485188872215975804188819689927138218422132982123753763556137798686027499845205848907009174775154459313483147187333649396545159836596161091524286647156477601336291176403465835420196355801167837472959780129431081556879255129921303383914826670286517759459514243598486885279356944643505018042858061069494246783070331756169736751071882268908352516510951317461422512071505430633273915452842183398541546331455129075411211226842409649873559012993343691043002140181197378509038363697204425976613315994372120462504351869979344190115473900906151993536292899681764709963377796388715825450778875435874794789008163190583769446633529783460404468633927639214414747254116920336776301323049962444873666607811051717609403183624440983667111909287261262143254228586681013252168514408940358604443688292579205789155505838320942336367146159476793126019175094613783135856076692620014728150063043649698135706160317498888639562184730903915755872345823328519581682596152296990445749468274260622195872993327722276035399354353834562754741459549223271628302686087482333206874049974337135512322041325766607859742439269452272789034404965713682453663892109762388236772391293588551910350978546336531576149876930282414310279509894595752479829053057942098631684856507146661910827781808271558381016736190808536463809478380878044674820086437502253112784805275223866549387727877348647935730738357068581424521066211127421858698338291893674596363714599761207190620106875868127848511950702707451172645551802006223932813425032965018350639480833126962500070868094869503342599257720349286309958715306946627132344541709071508144306108659263573299526478219952027583265988137095705540982004474900786142066471881191939690180325280400855501559503121478920190335692750502950245855252155804102297789629944646971707003579931026716616981163129312813430386766701638180190014624332534891291121277426640229700369118979435896763265984549922302805542288449211345841033236432389860434450626946937157508368414513396518874092500746078832067045866264317742814167859492079366104249573569270578885716407289035857200930936733856611424043609715045966901058888325426328096720965421984440072316689020469409673104193688452788546217594298459870322139236173368040155684532988497750946437982579351171964554030372871085537372356552657494621917039231125403503548042901934202617692615623994164281016334014322419892566082267939935369587766904597458412983710422257778649491148626737121682882101900959179270514722135224483475587084264026071507463229871208667413772027771524490707916756868892933811755954779234282998210928864339935016677756150580385401531731887247705136610280979020970773674490487252149345485162479746144024757385456003177751929404846337125535103889746410981292289692864962247253193300727942374816713936533197198017158708933037823808791344678821262620053126248284358181775114107157774325984255076323016667003761446044341430416470509673308371061259442581806045015728315685269428657079073873734243735148078309704189683360747789289895546952436795192108256443470506423746859393176759149105071406551067430395949138733607946155323038351045298278615609719917246009825118214809178266217208124666274136829432034798095889205250520371466993834095358506652040593483946084760016240177807085111043304445074036441171995353925507853002738058573227838019265731184019326800333829723738665937727414628084633927374939271958992863156048585592301943153199764320832131170820291724702363842148075677490872939488659028155874082371113840849077323251946576270711388601510706035361649334403218240818624465889192765010402498816104454561762624824429803341688923382697951876477187176339733671416521471488093688136049818255952429802460854237489434138957333829464548745909915281141796578854136319241594242220264480925708473396526058865036213307987252982989079910925459409916539813726325490406823276985207275946234574824586146660167087216303942229060688508157293761429283118834441563537922638569856457063231367129445689344206149107868433755324891917301361774917400523223662985946104313047636205473801499963822154021079410586064949056426550853765987292101849650166656975439922078096858901078762156046619135461091375118851923199000606527248347218178535721734223077085920232561846539636885797325031318248596391053340184969880126931903340084718979240716681087167289466941022504745549290784776183636954591679444932546680464970579347468752619979369027639495320031730295873040693361184185623396227658414504046158927926021458923775957890722956318824407390818140175283797065834824766699768691400879147961152385004894497973281527578939181208784629193405942088862661391047308384419304247110914540890910545589811883261076102890703139329535043553251174595038512116229850818897856566547714697269278200595723914714748806158377303759169695315465852554178727533720558800844851447191839596394421211542458124304411687598763880610095177967667272522438786994986406497562405388836434663902110690508369248713971055870599913623766865376075135647271138675725571628864199866470428994683562890504405562362621042983209506733509484414935503887889370642195225943530579109023929101344816632464118683796032531858256328904332600011707991099426516409087096629803163644237614536500101780156227272016417874758585335691792353161339961789657537738532067331668676368516394766533060431499064255779581875633196550901672241198453845639314957579376998253874496144395858864618417634613226510815530922465482747049283974841067928308109721676237785330805086042087103187393036842425101048983407157349217807994343356934272569916612779360250883842796941999820572932724058980504703665537221505248976392854314537992369627551318451772284077210024332486283655089466210593169953755224083684911104695847758879363654183068860053229153838614558880682193145837267913780585862442081683858846094409969715367518769621271633181376126972772737970030332508517275554865942029883694195860408392178375748906802466548610991689651535806373143366101671278435097613558199526090181708256258158060082951264180670345852779787889718484114729035006611474086587979919591203003905974496697862543111764694552284768402100281497268077601880923529256100547727943793340905414439785604541605083331187907213523908839261889480578035254539621343046831901478745985429231523917023269816786036706781139452402926263654128767311689054189586654196616569281707821046242359965215167643973448584269826260142209396482017177745736539072010276400065119803107356681728586345676299978333221273736434048785869586905499335529143653189574447988087568978763304371922613074617365002398491895406478828277342494324433851741900208829889644314462114481466396186810673786619541153965955425813631010889436136932922992695154301146169303016651850946050106718757120709754582265184093845670456288579363915695398338560766766928687570698243880148414402747685950429441230441826512813689164390707389877416293494776256426192206998765643802228876063121474484177322319981314595365134339584123151590847988267318682822384635993233476359541163258153797242015587030338394077281443010803911201794103774321471362399521279079066187192361321675148261522358487712209629403470151188835137601033551851291876310769302898539000286137631064061069623806104765663697697876493786904567552028807087307959243577334671678685805135318107553512278082407196147323370613461274111173211462768398595452113959603208044122657379490246469412350717503518222473761506352355185917794241313613928876589554268875759788610544910713456642815323237321191374109449995794735451054923094271713891256605011726084139563183058668098029377091373406537753824245320149537884842745646358793972224580893370729724780979522020130842143169207695604498831356328958391102063256963136052933283122744657831553795817431262945237030458702555819083120442393360503727169600498893393850242651959760913470813524273128453557336208242365898297133399028681290528988391578348720176534593009324604943885422203745370951144228079805550978716356431958730181690689225255996658642837995767923013901544555831180461489215252269676582532403486305015343564837585241307138801452449388663693573631848591782463690600204978043848662753927849120373586261646773100783179849024271511542367415711099147245041327856050266973836848146482997508894784169334679043664952277453340555629629256581471923143520861953988124850236261839001100743440089701036085393371716938143299218704384233188197036528767274062213928513759812905664931085031320847275968898875958606710282726238901386827150488982740076640562395053909210755522688657890871673561392384672305435513739410730302226041492389176194541769000128671098630687862774612427387030671148147971104515265151576382137059183657365111458487146107317543266376453291503211600285955835675477090242804790118701674948296241157173098328206182162862344359660525897816937237959513297531813799543139720726673386376314006470257006162757330590762194670590258910153539571234933707229429573015408880832232689649082243813399201822772300409289884587158348553713678373748920939617675191178190601894828815903114885640618979046247587163731057198291088293874184199897385689865591607540018072426571636376810947397581969392943504665801186369228708849652326866705788641738449040064826967047409885194005835813709943092149367606051063570521162743792008980240130311479263151245548876457227225479964702267144112721240858747428830544705112168025196267253540191869185885113910410971067634666844528282127168997505175168966689383142738516532992271426635642074733228585683877814469042647859974128389657319617243549143452257902854458839693791961703450754103820792825645988778427034810835334464747265080726760234758356862638768810516162017252373521018200991905282348577598057583167962673933056375064782112321994950027437633653570275580957874584211700279543583461009829578693146706268987140804637678662517138069455000048822742279757838621709135070349197144942306221511306295199491225936393743205431720454790703878445297123920964249373324857856556262354719308143446176594788567394759362196054167371956083984917063465637811149076992545809691391193705697457087954631311881677907678439414360060748347061023146215218240956786410005766099178352881527216145912033054381965963748694505246126894599292678724225537953594457119247348778880733622516099205170634728662565182089757465417970331176968477891877649321445177478130156578748420775170388417114833654595306409781322094178941094348031715076926733600446120528450054318175886544191818948256584606800013830464085286919860686535753416682795683954331800485454179709742374153287941218114820185366523764031847896744752554182103568574326160451214588132186954593622832302559653924215064163325138533367815850907972948515708725877836298160997274123843615063286464639101738291566690962333791768526029866183243892099393012619958650615403577313266085087853771192307970944565050497895201156246579841141984489851669443852077899197445276996513400990531382166787097633959370050991136673606279639737185640344418384116510059710990040680292931978361018698417384579104491131696624319513202902411301137352628326922685658183706625847588075971344943904556943316328524032038741134153805980295108596164718307283648191998819212810227343530560328415990292358602432360740562481833377686696067345659854900047477942273378709331589864617077272027167238263840273989676401918227818168234765835675173664432230089024103268514623473976105790986523858363180582027500055628666278629041641392670252455937709555524602609323294641519441950216660369739607845869302722813201456226550121705870026064897186794257257938074717944502430219272152773280574469898244691908662391260046964646349512646100131513274946879237367362173620285470287527947831281647458701661243192432072357744238886397641040077203665443111223592976710997361840287217610558207860963523453949013455350543136907083457144292567234558567433608750339583830396813681614052092695070754533364882947198725748842487827641323469498709013030877261848587596468628234416771567521141325974263658005759560095868258843009181154033612301626178225513560370107547658512244081667045599770800677184123496965255566548927922417869910137221900554676332118856135962426988434051554099870778125258825693995759664550126523538542703491493334239240054532076843058588556088753161773359662333483299271310299533293343445454024947979683378300384505189216189858995843086716677498976538851196996663783345827227102411522538369464071908954361829535036700817044484837431467582942429494763721443313036703185113250985220579521451059157467818560462188165052736864504205448282123323000998921600237258575584294355875352120216176029484112684393240984432162170814786295038311327508203649518739749130173982825514200280821281619738630990422519476866659688104497035022859390034124477848503950421327929953262842585912784250344691633374842969516406524623910300690745706612929630498958890516454010331968600778296545494088977343920394405524348496313249987376132957901241477478241074300649534028718523224132439580710181648775340370056508974252396701668133313735971254855355329113482312964309057451173760198248057587228666085736538392416323913653411980342885330205947179662423002580668677975568753447767780537661079128210519619103539047680418634946327921836626273878610971361856732832334665525537559413763600389057648017680399537034018922689490817955527112251749345022802946740699917318410143312134787451616697508402088873280796706702791316425219997594860532858710128031185762327783415768855565838306268860709720196502902465387023187604790170577900165426533942170506788765516798201934164266279522072543153292667887255703294965055315862047031750539369410876887032933375175728289000674292692807669399584000132079258077949057534354046922618988030265433337180916672567681113939065470765492294163477293298194056912825327767389683352934403895810069185194505604999720893320036345106076753704858992897599748106280941859646637933937101855380476719451240475577520986725509644904374172127763990815185385723580352907148086409215157204034231604030917748319644245670491186206975599714014157388215276697610777885909725099033294505710498970683178144595997449468482711632534649660276751240244480606255717295245178176848444122659213473946460741028925187420599576094314198367138234495354554790790739102101049620105095930619635267778400068641031087489037335235071553519983072795319022049426377190698331996684936654395618452410814483503795454135739885122493536758632988281354888865354379512573369547960143793022187095966826705647671774360830153898383458562462886563362552231610330732019378915985015279692373948638221648930676609118657340195412084489777545640730937905905387923278655298404951704798165058915193952728083818868751277436541281710981517524732346508794793406455220961848373401391843735180463879841520397015822746565438487062914458640806437962120608470430286706715916770279865032702550052167866879537201316998336155720127603926143449349732399769765222705661953105923566470484040668153217434393383772355187490149935849006754572325700058858512040854307048436478023051232536503789663347268937851800243245796107173435572044979551446218312830832954826337827511339153312221666622216372973459885020144784885838063975625911450080246831667782146012545559659503050096844690762640496611231672894691796087984701773283080311924692719336408716097341659223010588765375775415153484467720283418527878929532700736764462521225065324826045161796912192194923785934217808095667297444130392976243566320369436551556075497195652158565568782877022155004591805500239846649457109138413427957874645350263681575525669725345709038263653446466940350189461379762034147772361168930104652665985113916503181184754366427278655066221317930237477859959219946408430544999794683237091859548211332867021308501955596176022945386022172016826998326664019063994896961832694302533020392832556760622886271977311689182538606331120314565263230010551787583391006452367455186087004025792568434458762694956363105099671940786464054488515784949623023491218891890780718319370901365178767627393010984990879206689658672114202068886884567408398869278135152386168438104574623915233423343206060597642328171172930714968617263976092613822729879376662836739406196895220789750416096014482829960564759427829680023276709958651136828688651702376536787098483087552081441420927526591774295867999374872617231879206060439002597712826408695108837559102121029509489636605973921741719210353958041204346782149289494352110044168808305447608375176241016282982321936675698903268280221663726620761250667928406630673128470658486976329870426906696189744930105359365604640985527724790961024671869260714390786645385129283841208130751941956982343716969451694285383802216956402881693245554191136705013855929506289055374491775670850541995411920431421164244882834587322406497222170659949054295717534882839423527330113796949173034386512272610949752187683086617613941203518056130864604798788319216286021252442274736414418681494514758141321601885483985309842095321942837501250122099152088337826404932978168720370410820769187800336469982319666068538926857151664243240392073173762638099894360535914054825667736043800556613375366389457437122124609791423523650628910616923497732505874412726579339782623894891574935578986572297129210114213301772838370075810320216571425041364603598002555841718084548787044436278744175555177104241666457226876788711517291366555905290644635118006118295282838832054725866809946088503412021640348708777974598143247872540781010519459348735850473395170917891307621611784047281775647367718410040446957041958196164740766714936155575914934814926636620996267186517697865907028277603129775502726147610966732419827231109721812813882288465330233889856269574959439890497847287803639009829799469550859691714254670689216522593564365841682680204224788749484334271688266554510558675958694573840993457388227324984356432460475820704171242548805081302659790228089492550201375355206580430185554024863863530511409038742267340811360790765471561220086085033989288118031766758891714133348060679111150470962881301308995978296213191858346311833354081603666075308503714703383157290355431522765185454011737662479945377491058559009483811400213859792351951084774331996021520544124176207070107404917236097730733774971221526336885067017276339310492575751329282386391736874569116731754550052287187899354602956567266122846899088524843578786941966355402362898958294234793301652150163110002181470562043519373333181346618569345628985606772105101044771883202933424727840746155317123233436543265000093781788005980952218576827186991929667052792548485620516237308552923112313042597650404786561601813552730116490267101323322271562016261517046423966594126333333126780929673586553024854829465846055825306538751947238233120207451929960305040542219258841930232225063568193968980882919198596129411375706107556690639382506463152569481933735339062547557672427669044420507277795093308700997110439128307815846776882142646975685705645841425902439354543858582047777869448225325716788094301845205257284043469513340385206178143327266036472733836598011522097783898572116595184951249426800949124520105025679770247003743879907935187584428968855329104388654758188521708652708306471033818763292235246343403469222839953507625505789297610902384325897938640708851305151559895356333276279341614125602580690756414842132187315930007492255532422381989790036233321432162695469732722075998049015893648161661338335864652957155982022680964061022212584758024950622825769174130659122696144002349611214708443516133748733816032983647341743710363511941614014403214470579169179590008539074722184144835231278921797479312563755802162353893713656810478914156581990026209913837014662036025570501319070799932089334847751178522629595911669356944044421547760962839494605234873882953246030552182750361995177089277313890556083281493550714010449392534926551760413091362222328140503470011520641871040995746198207387781498316649684020563337984981111486835482689122544862524301186792609371571701667341776508349110991884940107656744783965193153338454430275512319159591736715712780732251394950561149064873962737086984447108843794057743079375122853396643482113143557453059919181944536347579007613060294794424822586671748814461860944969166632804373343867134939572579218258538875541650003199942034483150163558609388136782326434193228673838021770116684719939075721160201106863629693689156276539356430266213426123456911895997668494175906579949457738564597492606491341929360642326201211801508372375403699085336319591787578134008383992455540586622187078860728257351679779194745251746915573870924574052993747430715820940723766788022888596437745642173336979679804456879766105358863518945054859854479905581115227111292760144814099047459458799896758514135519647042998453998952372562800696640242406073934869202611026338502209842226141514760139127570313632625088738300389498505513670659451969860243657335179145480247689268438680459804553351418970683837039347862543595784031269668184789688145994386947627276597668974416593141246389882151093907158457789129251330771499620387375047756104661710081095749469328824358046973921548663325798257597057212406148931097681512384403833437055687729223815735140456355929250803501156769447407535681487888621118364149314773824086875617491841037142755302165440978332117065402239713338804601092501136232140276926928624482761902940912954903618393365094510388901805726678395577044964393453553331804844739729396650152829312200911865865629136591183450906423776604936897783081317602462368512457690986130532154016503674974663937949160168097274724600469503122832358623768429353630249373747977935566639899573314154934397985344365162577431091727715677756065199876511128763559369040191837023024099476822261723897535420843854110599149954169152310753492858730560032233888380829550032350114110168655873811183682171562627356447141580250103930254369291840859815657222644327422468536013599592558172854598016229991662881648337955384327018949066489905942718504101045931335891339368684666613735248956764578569858623814539748921233762689876898126060807657089151713372750372163612141863830255976755267848885760098624116961779425200698121941770606749963160819084340011521014782502158380557938126367373966726409911432464757434378524402383559414917499662006385512333943587921362538383258688523444648758708341741361577592742096179085636264673906832670173774268707815968480917452879184475659270970635070904883991964370260739675476839778858646851745403842221339438401995237115437468020337459883332391223477450926891100040730570528922321915718805744680406740163049785538080148967958984625076724152083338359237541756008743801073578656949973930795757616777965232884956505288358863442373218242669387275754406008918163337215750187611472341091341113579662625567554459732095604420975838189133694546826400985764489186904411462818316697732258348590071928521948149788741282400879484104313493328070170349614472375157822610184448365757995740031125618929622419461122097325274789319049990862931283870477243135307626604909167871088641743697319755119624732088700910572347054631969914426266618853159217385535397633167791059688389341407532663679022275895657836810083454294234609834469314261481470244073728214124397767832282885962994744694536520879168682604971661446914833850329888880300894829246033138550959610985956906400368660327667435517525704012791120956932726965969438592265016020125751711781264098995340560013815419010551283446252909791241185583102222685413486532944751769379998198366465945170927394893786696396911914985899370745217892667400927222784289871218865542558726524789554043458580605915024201478854012138086518524705163115857799216531610426117271026155282196511328331212008663789140498837406313832233963676785863922228302608842591260443944369579833638888051583956503998087340182014347838793321981262768980613735628215890799133103037320790676836291969236742178586115721336142195252079432819041515088207917654698315911465915681627875006428805501193575263100723118864617331645787183404445763685431828314172089415163410345664641029901339928519175960905074371197647929791527699326315936842889696108507497880680972989082341250888300326519746720604333489045782255771343070706508974784589046564272641171322003204973067777855440897117310561370546930099741207384944636716095174603048867046698541966199529706470852219047003933183123291047030734421791233997200961701626115690995104446270737868325088901681374393947847322480275475049221011020517819370307540153891277241698623846672851378632271275522038912597315805006884304791680218242213188742539428110927076392730950890872535157518389537369536608566250441175605983995896278843038546353629110653563992576661842455599419128486348471034520982195445712323489015843371116563776896837080489933363508366232399915075980507265252174718207818484606846711746642118216494391442690232329210876904320085903884953075120223782276955230000062619282901596906795254476834555127406519640308081128658411397943444022928542875960337876121222142683333097675847874341612087620028654864714895805122871688821703951553801995507256680782940712049918177705995741269053588862197918116294814424210998613615168627973405768086615066283158084954262930032866261468765507405261023511961763884568486056311212884791977612084347563336342870248144256709267831209214069882119336718008046452584124770973665877505005816362980649410618626370334731086297515652985269771631835694525475598467742196715314999699601016956213092392467990099417757717872528518108898758949807349545406830211035739546159275585239759259930933373996302134852966603974567183632908933388620213785261280864197934645381044064856818403103937772362774355934115148967589373281400410528467268621684479262893464593087283568892245256895630860322706145904396337269807682596619168349722201983547954160130752021826338246963668488303382133148808252052264964361033563993973926387795389427741137855035663605893259740502535783885547394029914114562147976020053911932545555977766594926967714387608235518171228732421062250854324562681620581445188182413242833565270692123397872796165190708540071788804707032110083091214956296673076076294526053141897102310678885643283209163295936761699355195075691315229492641603733742093462016909527469337020842060421108617144323474338492438229105452313884861009807661612042300613330911159581681889941289750324410023827620186704807409511997955075632933831469824719561376846667322109789763462627768423584442566038441690221581741084329856445619286001155421473685112171695164954425435156303113166623141587611297514218685219261840874996990612128374513957008560530947382486947059240190906466086896716432537340769582454357420957536442109644302121861741101185763685880070488372839075944052280938127742899663750293448407506022501411478035545448541183093223931793131017815875434421173928455726255160845105609188648160586820378180147023051512356270995110571502219645509777870364878915447100511470268562474060539937869416736951385739801621363971791016650855031212179436341077382998001037890259913125840757130282648449076850369705882226183871032313145299776472319410160949010022533528917563290684725249294091863578800640056221555362840135674119814810261998199477032088012120456521069413012919181201367796235386129722062622788058515099087543121997038468413538078932443919132800194916199675279784729806824819601250757945192579695766158582725520356102182508338834173727458935876635447547182940254283948389209560550125403931093346333674581933273941026625546815551154064331040512541059483804867164297551997504728893853816640933586917147334651266668317478843460318791681379210218430954896167874189861230895600104525771740373600889606503543038266790148098981235807759881844222121957244714792021283096683605711098311037580486525193126011294780256100962653213779085184268990968451243048338694559296867045731611397543918638591533898509265048827040024278891660284081833322844906371592679753463520527463968993966769769902786762033928731213528856466686063867377687202569085541584299893154709877953670326860556269465370699258116199207577765273868479929514002857825562607817642180281117556019017750885212314402827452865222134206039877965681922810857734205590027295901207435372863665703727928685942491870354475600861646139904395071215657817854766975268509506000898542783600738406389591616580507041021704892915794838648101135261188213159532116382252203580086175874770433837318252349396486642936379713440106192711126810325871439147100040692479751156727270140939759369405032732087427986666108790210199978457967268934213348039479864646268127030926448767028162567203303283689522912075975326120220827275229071252376368071239654922173389272971533035230974552442304081608528298780228555959729108497188208517259916963291115464167531242121126026318022475472905133933551030702318175319668763002002482048066781878612326241866218665359156177505547070444715827929833422879847068063093023650127431702815305838700560800018963121843053008431276222722815682469504517867203777529050562877007795042638964212823476991774119251433108840742387093994902718521141024958333849087293223249655398544330083621897164746664525333755010472275456245625251038389490260894518475892439150935614550071774903123689268243228461724705891823297536218090472172830245827780565194093301163046197191091073754299561727682170147222601071876543283369969553004176982737636488197145211328103292774277687986115756368777436602740663178877727697630246166035598434172272555770933062979471075026280959959062532956645048650213240542279240995968863882301064476568597451763092194537438590664501904631076125578260736249601395988162245839057933017897583643045565452664820675570667427091338802907431271828396669543816716159829092108744534430393973204480984995273694469564175592325104156299101423243428368375570711759325229296952500061561797840470889567832185809706958888721465015263126665015953829234250814672797134335873203033261206970060619765023529138529429755641363052780955815678598776037960821647487667314113261488010664420371433949517927326723216365764480040560265687673176074679108778742923472001334268672044830111102365842298758405616802382750047912166098016899276141129757124632063264396983332254692255187576111361619563942847986805097283447412486995491773161462762636467101660875144800786111802951433182916714291454852751511420572291997796394113029454476541855844663935580191392115925399696059918585297930456766142382163530476035565660568789746607166031415295433774755347033756797920480307423427134631499366738565605745673283372216254907560272560118218365949464762068381421445908178672398053726180915594960919846981092298912056698150994287585884625288226623885777472263570459306165830308697488139334257432239086552040705256623889839316125329552763807426508798813315095466696366751936353243609186679396564424401536270428923746756874398723858299410930644441138021257384982577848321650205301659468582338865404720585252104366890343125705537748250363658885834660574123992286584816114088648977122465477858080289356826277886256858240451927038055262382885603447537853793125466964677043246837865998350360610496283356922907026507107985858653070231254121980645837787736801239744503737319892522355543353238627949662860782952222775699040116369226003807470160485220538661481659521538927961742627376518259932338783370203516311550598152045531690464045232810428460607625492687912055066165663772654452750859207313743244198040549565288754937607059778296270171899914241056087775059102798306538944061288540722077101109439550134536029264658522995653275744973506711216917616958352606161367873525715461758840163898761494772712040863295557688098089297762312607775363471068959777898975681059903354293488285028826412458685485742019453597020355718063457520589210054808442402474958855874702939509840368214686949256618056947671300369121044029928185448485718594959975883688161983332622634116269150793105196545544910332291355441003157218502799185807203437174276533075960351945049828114122469603570752566596080289498986018583057622651888243611242037513396077326446086246180524340933063024741912387643689065074329432010807921401455974034543531409246742299246215216431270005911635411455489281969363382763144594290041852031586593737900625838526867147712378790698330994613086323984781622119377380855617356891831957696786294243888086188892926384677871482903301120913769733756154288330014121989465871423890281469426225294840491834325359190702140935675340371501167322820893406689310810840943465599899679347054927186273783549881578261244962139952598798753447688080734442668412665762530835720771049017442987507127942053946497365107511976076469488621937382233586606945808683920043770508657968272090632051496690693329838572298690767555650226730425470560234710474978314705389123305131879827282066343060570000904338519650496812245667703287636480554247733138589474929303988446966276798833295696658000025496056795289300046099622027909464245464588178966430498579651130164307577373012196754376664640877615826394345062197442323989205128779109099802518702694350795275955018749888504927085423294911021684074556999752870190893324430793012339982250048678029124496597321490732078167515464579211637410107919283711717536634539318601992783125393433418751180398983647611994240123870548659336734714708924544146508141863809122515695464508918254206551671195393648389973567664503336800668753360176281289633862204442821258319495872916040898839706673975516914023623713355272287660909460782236953987006742675628595764181986850004918615002790432705619546391981613384562742569816277126853829425064523827943473614126912350220412137354467582899142000389956801922982175620996576178511656853282161954301197106812880456509699821004808071375716713352836897892454162007343220883873235889237737111454036831145210228946742851889937234893884365436138794341074106889715962178569117209333690876973243919085351916122489147812517354108623367579736978723196729830215406180967102622836758923116625728001743426433785231985275779940871308599321014529341609087983338661223794394359516124128473622528058039433165750155019542000830200542622987533547426232868110744696449799190948545706125276924631228624018480296974194726505347012434421516404786853778220481339784169927949771038886215122769693057838145922451568765355460062084609842574220573495400772520184544803029621759635669062966425923820153946735896548178571719697946827614370851069695528794899279145529309682087114240771283535930676330631547511330285500598803671206263544204096060174885456571442829195167152618595181498864015087793508026013608603331531425241359676964571073186018625068607202389580268758460074846312505055348524267679061298723888852690790209456768722002309077326839121213553047988514125828395117653215473466677244678227104185933810367219905453936829113312604173634053026738461491374954456455226706228207310658667189600602082349919312631311928902831359531724586088920906927110858080812875477873173826833380389700966495787952044308809171185020476957194108942164201744845233696615081968813728443829033886297813337951880372531079142741743768817995760717039544582751817061991717597683374880100253613152421890185150435421203305439753510618059348307951328028088604203621126293332082106076440365862670598309673181068897307619980240489670876990708163953783836841374482701426212607195670688817601133954959155377535454440883471020650619035302906390331941048665593507296022206979778675972568387715607253990474674341954324782397444044533979964772791312035514735413943421268815679129715669600245415371148095644761394775109454773846191926070841601292886510182346536750547454283870406997287420056363532887221420662531700285239766741515360204750524333338964851700689683821711973407954048271231175689986618781357441985341655041152170743705676576385651428846271982021227666058169331236022185972247630303661496909074381378045063636570757377478841240702330263697633295050086814059731736584698805866973161266105706540809293860236643354485321946492050501278662245857859826097077324654557171341750435709718537566191852251764887456142630173642568777789355390972462192836488909133677893140168837818344665866511808350949212313826166876170855135978893773997845150400400669613852607972282863069311212044902328699732523530779796776825605096348552892026619081279124418964016670753411930727899703456599076983994061674975956558923960813497331387839795045534790465264029835503425080099780442197858796990374597445838052587204518644285534464876275293959163618212072067896983893979484414279332843984553275504358124690045638967542825860959789685866511282470705178185435436668163151078641473864499303311387327692881005138363731541434227590180019062889334161442541102280509344053717514561681852072146543535006058355825817855161947779679832270347688445201470028719908984730675328199064960198881122713717651904261963636162983179260827933324846698523682252063349314408046285239402508442574089313242870782104445858831690793935886317766885391981827014722160601289567433660983694969929093862653091032228914102739559551518090150563508414581409720261216707615919148396837062682262135305831684433273036982912050456647603663835141722086296512153440005748615292373256125397394671729621431001203454265390970200697241047973698465829301059657551655274276350709221632612467758141883947421234242070515637463113883664433747434398833264549521359423604435354067480441043802158832281156569496562996660337480502722155766573215247579768796102341229408313636890406862434399137367493094168521344772965727897541368564489530096595914044494707949924323094329492430762259172616263470401418170485277584058897241746941640793479869406875938468885086986608516858662619941776074293973697315928137416748728795411987049591528987295209582927603457114318007503996330865162734645526647112911006539826856054564573136562626827753855251943117040690546673611497612458508702661143057956738657004782731201440951210940350973827048036172824729562121238637753621649106758888060107912342222252140767154347367013274116091873969323736425058372375649856446371293652330464500079248142815296748578690597843183596330729980430032330937621444641990524818222568117706062518938754618816393379949803593793198710968887723173022213085681299280958962445641476156250718926777710946889596865922946106561853620769494823891872327334743618278668977543283991986632365269335177195429846983784930295514179506573380879746489190190887236150317905379678167507317158161437217991437029110311395898638606747316021347126392687829167511039575769251439773277879082259889444559941903451862626049067442638296549485058493600743404977375502659976296146121321376904938592177801760219052772570487568206077890753997939397370960056253085480217054936083379456730175889271600390871674018514866182909214477093970930008437887403448168519754398347891809885901281375268797097801881037501213183100201756946591102612431065178257650016988967365416945406956407832650482844655193370959707547701986287922176796329207764448280067200011100793138888164665151988281290634174163964595562442784372625500923775002498907388177858391222530120247804616200486890705184447335416236616408741331485494819030937831234175440629389557757942463897342784438170167270582963232013448338801197910570952720910918190238610085390503986578906483197156508472703429782210780849363673681703301594382326200168968174046952400870766965045831245960882816892845107435111375865277966142538490453033929077464521145466265955877428405262757989298045728578462212773802422339546012051002469637442130910335045354707094170423858016623812645677352338822137266832338407931480608483783752920209126562920840554683135092217850379086667155886490527209370665458238987280450614060989033648337125582180986080279298104554660086610631102772248209154430131438185721733944612896842451851509266749158419029277720259498948052455219652649612091352374292994005212539061315045953760636129574310646857830396509025850643737881163824619296515039725101887948913618785752327203051647891562258982534379243268950686677529041596348044963762227938016339846453804526654780024858289321896990726623861067697405541562916630774977496303293023906520199799092516155189986520946187236234919299692934997964756876208616588278082493251062898154555960334659251133545243154378940506754644287223734922092485715868247525367898211991319413053402702510375230619050242524962220950181552532612144975734211375660710878535145941509687942462886279539718140023758758536503341266445942599271578074723557112218152788808984941034156281150968769314976828394249934973700620154327468038455378747824420865561264671054149867844905256595143149997221582422032114522666442745445827811802237577750330752556624258741673947314640385483166029510113013535713441644443005771396402169354501085045305573766994435188035056723304128071485426213245578148933773671294116627483364215382593347256495782797439003422198776395063335392942213175989989862957181918454166071964983555202913738736552488477702862054853400468628492861679225951546289624684866416645459955362471021117949087357429175642869746133321018043001201815078619144873934448720195083648138420155085787709472431037045601214547524052314456960206739997460748923982426812481910798764002862720427324934616155369169415385756352826887852311603109364190586735110397859095630012303949474462468163976505956778703278263034470668865878553240295488235228716912274758625045602443149600222171111379489690834442927188857962477247076388546326935965135541998926463782483165434873398969674568883286690530478333615916997779612888699217914265520781252230007455219904795769641153546966418901911224876899118092249061651135403736663260313150183072365814211668197382726283863851843774896184853925654522304556196235620347567347955226747169319150784908529306907833802459656619034185868051136329755057860900057955920790648429157434635843930994792724839116099413273920962358600741095002977947423713219140373851958808675178952892592154866300341255699420126923995750819424674074282076918415325215823999736779955916701549710090774662536292812931610746188289077697424347332143914863039995505938538184574224997201882472952037225927818194719351184155071343365298379091846885633694414285520851577748700484695548157887929821104522126514799481533809017886140910615937587593019261946046521360487601420972577166939870146930214218114805345732374639426939487639588994175403201991570171078155306620556343500058214592987054226251377025393453092303823440565877281673481367673879239604275938913094360955102413557936882981570739497910609758314067773430095759114625384621565630076238731785185714501296754441876885642812845259462698182467445633198955533458852183258303722760443044113802196295036529333895829556774310687733614885586518643618435496097246713592838870379289113329483802156104075216699750586372823899326149864273772285945396779690123997239964515001294021340804374512823319718498551952405051514752918777082074488700662948963962524677618344339147968067946371735865936905953884850432678259921889543586677409124061166596215955997103987041336809548856895333568705259707139380801592247065861546092466861654162009133872989529406916062100450090811448149577595416804860615865359381552665309843354724470825917615393109059403358264382030112967567321110496211010050635218450943267817151489815358857050777347967792268080744098809343440248850844206528631867280140764670443503134977810955944453694478109715340217723416404378940141322883871557163209455341036265868613882423417834602924310894318846043013357907952800684752367573266006451283841404836385913036244370289433775840719614298736814462604989578813335362893206037534127514411912068173369463463711238075874531974957335518244741235676464214802029872845586153956323051205868946305673924255480751768220925271709570519746553353217932131703880279660475867085474115926693026986005782142331450051932675050823934502912125605646637604417054672510382843467705613097056097378764550508590999846180577022692579037454340699841365936022740043993644280100866038924589851544135769967652856838731040979969248895288443409676339297984111903016032361778291182345581946967056161744098439576706434198354511566196044728388334758031810938341803766314768817830406202547213540987133237652419554994253605378607088786609751258694467487077058710727815141529197917146501806641015645897645574936996149911964195207705786897450838476101497678612638910909252943016551382972637359977203316375013616438858062626491543252068404712051292980329720772326536063671015946234767662321102137434307249601196589942131770897618631219839679853366112485748602005549279926667514984744296570036941194017781458537347570039246617603427568131350586958886055702602943288031267561677445881962548947458493407276625057254984821298097126501327445408403396747118616799292438448106057631781425059995654612669798094885633263571393709712563645898217113028008974353039408032685384211672451798082948320078083187490451117981222197748879081163047811913397880913750660966074934462742613025197223566084579903739930542360533414131212328416861973584739832300678756607696084677315314464678342065647287743472495642037361837684042529625928822262211494418412173654603473804144045156295664488249954439818970285661711755459125322163319497599410444657608469561882219589848352368607969877611057833701051637631539893640769675237577228331224894399876683167028109044412230245449928448194867465967808746559028781982599617468757991910734157778869773218121764437660170025921842813124921559446799735834915152467291302829491757829137128150155216847586410913905179643445805853516378015127988214735959877511030975615938640505493783152964380869917991559489223783694265030987851715266403228227254949642576453368782662752753571200390747922802217476090516474483452198646387621565267240426107104111647612503560272659251302148183242521727720949794566752412137494904266432031578538836757749227010886508430093344314666243408452605651131935396301772085473353966530556255594128579099191443591964461595492081766562578569981351824403721374544640715675797762086647387957677375148420957998347981081716985276919467213551221769133451953291710096074230001960097407525691582951243796941340053837354455936374036827993072581969413978353895167197196182493559466216132755072674432223775553614234306833175252413223038742810973828051542027959330792696885136852068734499527541842052509948115393237659212073367952937420877465517864167431547515459845412391106445236462520400508386782386317048912790107892780210341046593068547572072869741698725267685713678227429405122707311021406319555953166388739347018297913182130266736575956272206297880273087150423279165018429750345104352382323797711836826634757069054677442388981866981504041320782707897536118578989949849088342995303810028423519675211322935569757121791308789842616924303009353848367991401002001047448984858427665061204062788296399530658814530244177505388716288348296205334413601289676541135589726963465863018951973478942408089092236944692260668571406123304183393222144877483490596403880341865830652240573455857944205590345221385732614112879384982095689940336437449080507436324982093209450735848848092530901351554178534019846078713557614034632942629673130517002673523753275126469492619254216894930706217490456068172535670364319789566253282447657250013749032891119836402386318608909259634065939295900499968558257293372678696018192179429170714809061574360141435259576983471387500999779668306589527676624547133208447606912179637927690258866468073862827301525695540118822159519249164902750873995084319729920166841071199100424870705622074051101113896253159402847701088533292844431697381021156974431896480051766535899814160639121858372876111352545288101261438749761867117196258027470396027856742783805957635326688944839335382392839252229478928988821173815959267101524477484986851894092366001028697928918180347831646393308420639644787174306422717847280477036355744168533413798573687541892806878823072647227671447365235130575472495539544551299169207507415665467200610146488995658098695823467735966062062972679191650660886003263759034512701510484483892483883614986401200585662181812990275657741871127130997478209664181564291520409393166187605281253146853680331503241527012968640906571431696287447597560272888324051846653144840376323098562479996809302839824824933579818029480469633196737842316192955422816772671889787871440950455915835036447607477343305230365353793487079878299940976922867802261651109315383663787085716195230684109459141255861894156361664550040692738802255081604870998884280326842591948872676499249710432054668506244130267628523794788622574336557998159401982252487507901520229387662977203329669841039577458018338661399833785111611324471280949771627171721601964029443228071134993925606042773767074766674581341818613156989812198179164316422310266309518186056133006785343727503672645024062780394811923083315742877693737398342741750622790347225085182565036804849847729519401957214524274507690923053996519611704947422693264579347892643227318177280125030480401335263446667508168408604272373897966505579302496656603649922329534958838386759051143062372585955053076610020262240450016162975957882958062667692448092179512446727547674577498700848341061000476159791566643114067572089287227500010885268666273715417603171835389518566825153450454497253034042811068590375306397795471527993838324567551473379723677193906233835866728263787736864173706077970663172967530924939804769551411375472435155409630586663837790176050573943771771677775945177265849155886900027381929530508468385589237519997974023744073134365074162848228344259462538006418598032585112274995379851927877993809072181234983819820122859949642124927810897183371446393091251349749112595596119632449883280006083762903988549024731821106081089547049505182223859615414735688076270927697176239940441509884128367353663777347224961271264078480143578597240538865999599227263601953866778714736407836614907153518963569245644678669365197879490364193368291621004616887467843061194271149216836181780372685766863031468902080550331479192215484425821562439994466740959554625385880934891270355516515093628508617858829515706684063419095306279501754551596948236367742745827415152767919836017121130211569526723936791169135679681220224352653420073490227954390912780614917108136729771434229561509562971663343489595398423272742878516707979050550650809857798563362959225178195662413485431814725062180162679550370680042782641128475124998887234170000724818654350984816289498919653219139117735653364724082897052888453239551482104132730697345723102258283985843288805040318844828937016233746724077408930486370150384101762335469911076461570742861291671659292665654695723570574812085522573216482303271351269609615448104250221571383948132573725927876995660293163483531441729387380211338060050489413609246299967231634926701247543759072142213956063371110900668819277234636414810550550468376282434248499730799644287938855351599600793688558375925442542773386998695657606878125935371586135142059235492923747897145605711878880133253762198080476635173806683832249633670145441768963023542941606288433635058717420934433172522851011986307466959890440226854491375989488215447466405614825332829501896096197755978732912615009696359653018334308902012076245127557477223515367260560118439142127237200934222697536818234370600766339314236278644030533348871640982850945730911048716295300374421562350436565437642750094798913804261410673119852343241984346962025885300031753467993766863321622441109545636882029911212947562012527338869999154924407525092983285363427004094108614648621935581417511187374914536753034657429730091370670180894693472673806032040130618998058450913917229502382594582353964593290157565376788797525289991872280718754035443069043307087414562191570991964741233213934645329634879299032776029540827600363154978139390933502578005786506052070595072163668662881828048608847129863254030949888901830294237781395989282722120682175774843289249893174675035488365634451814185363345658724583447609284458929004692653177128416190817480450499557720107391005272974551262771316664594705650265152601818949021567385522964051165727913751287920835194040317100659721816036532466102126088493210840831851652118187100114437534927856308416200925277608044416116783922360185413423216181321899217014355922533167649076068489225116585173993107325307762371272678412700344504510039016921292407923127864730321916433985114435276295113382179159997548697687719270844062700885278747668975781273983186807473692922748032864289806509203221342358186700191047829430943452412412462167391515902887984358975557968349833879321888794094947876146953947858911133097740416762673364722960558864100999208508312561552587869902896399695219768955174586673668216497052180866170941907320733712880739623621566323859007154742059090821895251041708259134748408767051280160077092560124236361884444042429007303746993704142819134644229063660102275205246463629462880631355821969704219652156885759406118235710735329202260656640744260989195738614815199516285676792514780901761565414336157124931207605801782078417046076881911536269328816369674421270735412245925265693085621716018748833450596008168294280834383430614772176128642159408065539750488391372203438153648692460666191622340366248652648043111993317587792628273202115610639381087873564038537190974747018515763296143215608516860127050103654766129962773239214537371914887501076701739367932620502350866663818901691844824897240292234748350815429197920595904358936089647059678892982012562825788185024809964970810141257625142871987318509426635464202995621325534521021413793354011220341433942609582489390562620132684984914647795061191365906867764296224569018545345240706508793876868610692080929689310110609716152333894709684143154502553097252747812654373659345616072630404027504413236960283742104290166058361760480735973267216047092710369995536969384029735171222184604197715999977885381726354946146188076646725403716934166289787452039648626313357431970147658462883051506338519079369586184869783174708315532758851475140268261630902714571287557542978806595320214932387135313293651608779520915993151555481214122280656637833931131150694761785424892784561904635963837225501374475464557293657736893685306661961898015269446420831343730084371733471540095515533054457948584825817198935880009808241990073967815134621947121427468146709416766734206951791260558611209578283765166780449453268931504989565683853278471617027530968779501962958489160914868113699589537381202351566068067426973589825449442682042279667240324843246357514267820956522527132731683163627246533474457210731884287350649458576146788943457972651641744429266029736645997779309841078552064948894133397340405985225058958030464165390565157614238444562794528608470238055952693899523891120945104605983610155845340892990484390843315724593142832499380270513636876389047639235259524424701161974130327441484023210028691904331173440478901439597557571235378102686957621742282002983005266310607272121140490422663130533207133143325290510437547305912844276688770013898398391380555203893185756793868417713361482328468687039595350192197266454987512845902881519867403704892905023320908026000034577049490998181100935605282262901068624974154177247398881525622599070749099112855809834834595128562102464293007913059652871309299159476443926053091097670791138238450720341782221452006103458948296418263407317485791889014007370554554591825335512316138609484828070423985806491995484981753587205069007743876928555604622109459969999667481026015686589547155896863519104068863182029413918815137093300172624291884995230436449225745367407542252163131304064557190252240228415577049922282755983816966277089357891303366053070159718536790100510886310663223105286228547644020751761056672721469431828674600890988914944110038247377668282591210709274113017984148723398227680065648874229249146791597363578474180141309351162137281470593645917328056672364572038620180507649075292795015508697084306196213139835037024688016938576121843770194480837981867936751851263556873320173216397159768175572351279993814731367688027463630142736974891904993607935988085263212579658262140648474864000873992066099996720663324824074847517445896805708202457688404994570208964450508170326251645273831444010896023064535455288514590809478179686817656062183052028139188957316536269179488135500581721919098365594208736601427362527518832227134233178959180308691974859930095637126729459738033666785762453129606496719885094156398521587344601652690088459557535461018953315380375527325357106816900652274926132585549655926861771288856283409943620361057313678859033785129793631544022303731032212417504285129682398486389898607534312063769515448386512119799857313724132272405073946029477024352620232182306982763626536959708479909154773056376746787815726054710715246408499086877158534855240742612345735187106918911776850479871280351803999484751346927266544084118386640612465582523293462595010321260616759246309031951697155902833977053492840938042619080667334591420652440004525056978030727106174786477293118130689207609202693346180596526602080589656824782938477600898674457292873468429610810800335614273027579185238176334880415343449773961568802648884228769398919298921653596579859536204131972725947548106339924129517414435659224979405145966275575385176069016679374923293228383715550309686957135964882004253137843557826562779819110128059820854543836743881170039941875215854210019751813122888338457055917947027505425493426588322630734037252737723650080734925514727680797577397775470636869128514347382344715856898840195793452081624210898799573887653454292482068586895785849494571664480532532916987083543727451175530929062354104624628877375423603695929941216431740729093595776482204014062020039750673230806438429785033148465053687062341300380670262619377627906838580625564205529476584786957562349811524920862282244683289961817151420317735845807194306924238786395633995280536666885077943771580294315291626954796882522693145720900072253689742162092434219526862442225316838676252089545023161044625259870657553274959120708862611914471848058202238820546527074312325999406419499007831312359158706807167207110218275288390905249901157178064769708334481830726996453795949899001335093069400793627722215340367204937497674654859122167859373085256548570618517080269940350737800894760384244979615754208242985061747355753587041353232424690892429247534315505278953890444702450867160385268834810305872873201694161584452580651675909396245220690018638221862285192079339854817031853234700300105129206856551603725597480816313865832359644201180727103933132189595569334619748286914356265897127586759643128167698092483794933287986797511980792930288507744997830110920007636738833631631448219409992808075628185694423504097770323665188646598819204600943446691814565861344861882511351631966889615259544997577787821759367123222967740850662393009602483826912147903350942780348181591349388529425916884548800507676383458860314776223228853886270677328065362466378853816575264633946378648233664416115149837057139855642360929423628872752566415537783722775591971770239921453664333935649779435019381223359016358958620596519109333760976143652273936102708778503348814760590683272890328376860044499911293353269931381416274453822686927558707937964332195156496867088223437872456311248250030811227292196677370216443992981424763009227108332296285120917062147864570554475282787193845558077446005756902483799649536676286204791473289552361780221629203673987116151561330642519900137230246317512465210789353888622281571663920235913940795914986025946419364042685401431758023874654416899237766314555474225606088372475972115474636005310518480062020359170813379381109217105904248330494187764582773316276600345689722972510960809430467562312317832608557778848364346805333001465688261180474876183856834807032714002629866523518454686510163657310872785117808767538438828272583779629893212384556752266264918157020458310197578518744736216884865793168777487872397599202734616863930701386680428155961302479852726771767975410780213231296690580310787424820642064349151127195407311760329956407914759563984658444682744670833781603830893028682251661932920277572273691388578714369576472614700233119861488347782752157356212520621639994248387937179889794293245816730675369874916923276346524020841031590978314711055084633400757817878900845698468762670867360961295755840907264596128963929634595484993762586253542206039817047794291162785071896788816721438615439176820002903751751547994832989552932815091871623188228033979630595245836546701692689285604823710277511098223643149292395375145115097955569096798712381333884267109964369985576088101134691935883311556043721884414248857336512745325024682655969157820243704274245405414211719387194754981685692867148826683880901196730231312088176341321074182034621750312642826374775817607781347935928744642676968558307393504581355081051370390181941731869742039195156276235002705950327033050157158544066568923698222359234816535902700716477752870225768364026370721465369652923586647991479657865236587735917717185069660680821772562938410855117995018135209255315334535627849923760348186720685108843140089779058308797787278607951575111011187268380385102203709740377712559926433938446473470744261849034036520124179298278545530366084992360558971694417384571896750377568147754287377268289402987336023004959381604156602621267141255257578936608022767817008995969123355941711532803065001737376802991542561854928214805237051439170382139524825078517719370224162319670611404168358612332054210920212164068790738005320373448480262409915185521631896428205409989631442415437665199240733073419951094965216903656274950917893829813463004043833177774412364948928492597405649142315342248407205383527207110049963784254518093792678695303652737923326043111078077104326588735503374176408039647482234844246130673718548482258106360492739664498227913164797970895304234966370007255609276939224089238608625435039804567214712056267543210595664244615979539860961694864651959412867451814046567985351800682500480868383316418291751639902730498840964152845413649264931310649174704733290227373954950896795553030510507487151328957645505772264488190049567496919585861599510604648118729401131117349019304057236480238102442788395027939003536563187018514852304273117133590068699989196222060961891614584189622403989882705959744462028227621822877211577197649556369220796877227074388051510493037486228838990972167011607554345235058807938818062283787055932764991893075163369080595848401451080637631262857646630665368304903093084345579005502428137743094025224131039057004088567690398918179925802000100808886609183727751029959767622969454449540137020248869718779339528782500151089846609455645428248110811379738041989208242794948775542932864654380508304309149649650880699649259907423155995199206312483124390372077030534805828422315804721890094338805383707409867277916417844320879147487714288619042009750026531383245778363662295035763719283040774472374102355560020110641366441387044220919482045417498441645372520352835066640868234596163971135098832096294937648263103372905828403385434576428775833324962945254866693537386879164848784278594772739319421805719968769969095611635318334075631895914997444526009929888012214931215029632292474302236708370280685821583864550103136653586003229572958277329760002239046920115421145312795919198506828420247339624106370210272025807652382063099452868302582334932108103184805586899791739272666249109567607264928121636340953567634877233663191632891506655439414063502503419457234568437257643792340210600769810739993454828380722759188712062631638072521719269925122514570384851661003455236786573241283097718788010618218920328870783781446523310434276304361137393116011230738396404458910021492787949889857904550889407765451057759591433557041754591295538510957235765312157010752931998240395642477368462483991423818988934694411501135965404158094670424216255974078270937427429225451840857498198038059960763025100529319629143290052791624841063664671036941785929776499156683589312187382711472084578753288120472151878435742332236986360525986650808316122758088997738006579932521573136578485096581189376815853159813860358853522302849641212534724931051823350319565898215612493924526561675794699513355205293981519568770078159242840422687202706870829547704592812177701700451385571029460916702177498267671762614324433887387387903520452704277968026650589539751713850499186349668503148480765332623662874414230303297654396467947579517030876126358326990601236317363647244803463760822288787900811555682514985029800355939482610514694995176470687889960089258737242081840194929598791742617334310536577526886884595899490349323362545340041504840852036278117605309072131818895423934209775063410178365436412360657943501826417854988181730747768999287986857832920907182895095145249805182116597554934646175300097654104833296242724232671503673968168696752802997355132259237503674358780467515241490962758234051086548228295219343641275285167323591653844189300999240478996181758455274419469468200636146077444531382088640545730261544622749832867799675319720595197783980127783237858768347191223554396935768399535435636556116488215341121262987572006425213205009129677198960589788127531951370179349506807350318971398394705651101205331761496636857761192800812329387127847885776749504419065900749361135939854395028283418517487258057626246079666713846064634943748160939747012079050800991419939019244109220732643862237465656379828437831011176541979360328009502467075066449664785254100932779873130287545931659876358980719458332845671933401025672185247841623962569993065900204879327052530582904091450982510310631556072645247250490063337412934395439209221312426957506916310151220445460835281084466173472867591000398154533846636568173131062069115579836929075557074743393835739841505957017380551394719713817667850108357051825210014802692491930560495614032563360547289416484407363044104614960628880335212245963768299375395047412122897458032637825174818157807667338128699789007274698419652575365547288362558568733534034284518371900748798534476610189253425862945451465685284932103387756253296022640162384062657826794596733845764095056712428537936799365254136809051882008946791482666221759662475420172916166253349002376456896620491062125468640889279445471990737003808057433090336913111630320157182343087414962796378237829607132006156837311942173485354114519926950281470250581691163187045825834723395061971421907758305832405211010372654063972467942408077859350163632126580823533760259854530312102150589404023989635356801827407350994915294372357360712564787816727106484927093859559498432106496180002508464863910312212633141588193875771596934613837219904981829629176488197232614770934088821657123301647446092717006626883150004406377881527202666365601478683847167781579550504195988365021034784507839882519594410038253534339627576707700637212971102065335478253735803818697933379705487384964702326026253076970983986585783977769193562039662539557362391965502356235581104509873923900649045057064249533009913648514734489215123583778022273638500175075456384077019227318629977097373859219114590544540608420826423838589460778167908721538612059523184765068241986415955045267930411019987441453719653031759814328035316947525342201358998818292672116985394157715911467728204805598485315535844854281497355830793780265489899883900447969206664927255288657647059986561433841590406788031445291859952386830320983704278993355594816846121903107850264419739714776031595568318596371072884746180416283710572635141416946409547601071925487956924951653948865104861647824571951817163614077409024093466774670240772578387118031008334548278290617391316908088938644899145160291999604540551206921789163437724559397150547954800185790977072901929748592657490323835437740564252865538735310918855229857285352647998872622632301684907338639155837968939230531691901843449915263945733695166765634181462003997496955103710436930852028302446477127472300103660250599440407695439561615886412852905144836801407061416981744659234679386223466717097539764444135392624480770961787274547446267566197877392493187572030339761436015301834689072130111852218503947668991660562537689708340277911085497327929922211505604875275187449836368140571366430826389409129008359335210249917979826172782186485537330344017077686402588710697352062749464779940087822427784103675801683732568173327436700703546008478320624321975431722060635993144683593623036431612723610181198990677310944922544370705809107310369581247278315144105156356835584247427679090305310250232847456317976517993079568571678390095681153260285932897186044392568901535237745208513900306204288960429392260398449422887026530922750973035839050227443115653680471953173891884667021669612135781147226295299580032089126207658611934288874706897490067199866299374200307902206136772606735517402085903556036057290418414361369338167951007317702155987224827187360002348008094154659444487764042055379749122918938968660658000847474113190145559933958094282772055569985304114449471734154191804133227993663092194046863079786696735317087826948660239669030667963562250083626290548160333321546307996596162541331823760326928505245890914172357512475445860117245731045601008879761775318495931032789853890374915034133091257720731064018440332798368819169409562590120142878805269462499927870005932134131146125210697955402348083348875780660084141542981570073807018999028378863532945258709191786516586210494371822497073180585026974287693585475783619867524848658207901047926387105087659870286763967065591703636531622385102569332020038352754500382725256988165121827580451509342752205990340944808005895146670716335600515396495595725500402205147048881853912774360811987644583822701555701562027110056594077826331223291795149750490756068720647435593744681900639382886799301224571844180361993138355327618267574766555656287227113856003255214464313564701522141412245103770040449192842506178489498649123172364918138771034006306391442494754406305915935138805867936914065961262166902110711805863945464563410397036969891673357332491150911074316578807414170256405871935354541475448169207074700322122060353159746756709030900923505896291223285484502514442130059201462580816542119920702723875074310200415399590180375137683363707514438021052786896933467731720070463192207109111036987133609176884596191011559291301144514087433527632760322236368230021577302593281189359861224719573971215679948795430069572418289994112682711391160022214710987563699700875619341548582975090417383599621093702195298298553477513664881370641072290148196176123085294127560871930293543846084899530062522715363651257907801107956639103591263418928918389400944178162639465776292789514043592083983398364667980466602013463340691906060031141602350520943329381757252281537615001095563680797487694571728511018265922401605406149789706047106533391563623944568665848634608922614520818462679160859490226425574081131988587773305651962204562436650427336585167511929000673606127736317754192014650406051331719206943939083791683064512195873504632661114958311574047947279160483318117065989264874451507120408334486812217098780052547875380650826877269841075844632445825568665008618109677483963251425686804949463537753148048926771188504527683056383407410156491962275105757273355122126754120599780835403294906208616224700790683944252148795862161185541188634110240982791291307734775848956499276263854147941119247227403410677538999714731454763563765229690291682103784823557252915586735798074007376036630217723385832071828496414446526279852946356678920078190002766654408770477903105862707813365665633324702267383372541685300654591975090180822625424850510581383805334699279522723657782266875775414989515616744373001698637619392899071952423248809445920837126730772532553396367413621155728749559505197080250564853099392933439029045271059926728511748681707428855580448183523957784222272527310121366822563055320736261155025693410038652386921631824449889795234731762290769912142956912114402652322964323388548918622581311579424211306940402196489828884429188514823584950598960542079582760626238833091843320321142575329018110235278123767288391219045421637933047139553613107468731008502473769103615601898146057730052973656499513254517601390498345514897140250889097744765242380335496932094320994551791479659839878030431747883290884346134923266450535253405197077359203476206047877919096211645789434908382183493078858600694088506945514740148935940224908650097904490616569810855153677864447671595175832289924592865494337341797952661428208852423714317953736045265826931191601589380044827780058463799443250104763705643569274703863801134190241514829010579684102076357038448177950602249808816384760119020466390675938778897409932358193013187567462881649789130890773765498897595573751626000611010273135532217159745973293011625461641786471250412494362441940989005743043334805903586254257065534719105221756965913998214042821653613528942507368078295856869716730507446806165360566783154145950330788849938324370153021297306330593386538744616220123920376420443835577984754855894328391250553009185728508641862671666241892831613517697425658995709520010602005365846318031718263666148528347644154980773345709806129030706173575061159469082923346137609979272042623588478307219022575531855541045428715868345823720842889577128775282615915155465303660604971111449596311711447920063827915980296549593068900900799796576084143715966720421897578238671085973092031634876785967722729633712051749344411405230525357382539496669162889871794231759853463304933591938729495418606719775906295540359241180179778754748826012042920637034841806679160801702889150971569017577701893634348412035852153262810714744987140400785856389325161649289524361170436613104116631228136101077466642481435830829544143575157150665429755555811533782568138456503000947775411226670573885710816943309144723409040730164110751945470875296568745080146703711581385273694381334584175099045045549789514099771220665083201248685377984115409303009316297302624929579161885383052544054966705707274382733973530756904958140685081298975159238750153249677106145991588734161516735435335718298416639562819612005210895765708276765517846813999659028692293044988770961760758223323065561781237659455317132535783295417454038688930114478021574445746405974719957808085451551227373374680119226528582806044261930162160998804218854648316261371038866340137418838173294392090954656333675422322327085364239675535997609138820313448531178304199239982664549995436232195743601438197569717816539367008633599756175705074232074570022105501555965478657609860223802213115885854808365487561611690354879911277497526367697562701895446512752222081848633343498485903443265105437121147390755368682782334940910741516209012572733597772598006071722779219486793092085571958074834671356090451224147331952590547169637016126111511665889436121926057015949049633353283509333700752028694383283091386361357119059161613432285763196621229393393551300550238342250363100169962903597574235686860843391272157849199165880706192905486303457246054620697369720015328919960949532076819268456816183052271212780622318628028482873508851521531034936096311866047133299504281558530346545366758368695784120211526155425289445897472438350622803916496546250664457302261677618392467027938212666515688993006188238343207459419288136107681061071171073978061376787110141906205865319383219484458793088734183713139586461123836889591864289406493446930247885366466310387238738534751610058697837571842562504018463957382567411318893032976547528489010999920098090057687503969417374644861731135877798874148822696301109787159316713432511737661525911384841128603479066277959612337794048751925452306630554629589866767945321915207981455761239446277027263611717049638416787822405816398398385751971844290977913432646949680274068635051750484838390873002787824130059609252107829033290808924071253213816809629906203494135056398858177887463795369577594358870233802734708129351578728356765980914561150405665274833256715005601777005106462650677289963242602121044703696297540137192852576064988854006163314727025951357611943216449474971094416454403740022166056356127350696398622525788041218319921570416406300654784117236821592139966990542576731534264008569367228369300149408512244412794975675714691953241840810718089428783676192646330426648952905886978730990926006674835251081405912123476046550032182724882625327285828202705722745689103689122858998898856959831952649762733502748924053047200230879780075761671114806368836434435983194169577911458930083456971419888774685061603403373877001033214364261001834747851960669749498376706255595302809821187869539445858717828300572294127253190192287072491483942385685279005860000973801352080985549720262831489574320089251722625804549875758896684609797043078098581258307743210005872368495126198042240370846204503600631163410832504752230576696653613068520479813856078156782012851533209772708049676292647566440169833415328100912223827174559584610327649371694403620866265524120241418833102697593381113495918220099358462503527273322937607994302258668859863221380452910092816549327878919275742048623567984408195449692774262319309343430653683396884506400871725850904878156635521115432139454593297664621524579815267831612230975332129977714249122588444633124858729414237612786351434745553286426916893555233989024768164335725350593034758438840430991727072092877687188250439371613719611088464903647153388063040598098370142941581817636152518884867052237971604887829217694826623426545441445940349924643014795086828917484425829233690661359189065676089114158327863373003844175678203706018114336085680496221256979420331806270293699704727260425671709975076032675667104370846683422208110070162643872923503568557843102347625470729807456073867424232356656259559275885743835521109008491316169842246272469097762950762489452753342874953364527529118249198297802362326357324971578148752190250455089868245290007028365983958724903783997079370161219228075339217815667092780792518697777641687611836723171410438542246588126504823088326280626074735369790141246139825715668994798388794772221820630046342530308467195124214268645523386654252291119973088268670489356468187339505135959426796911397952865381287041990150557691382168207132252321225942458343653030400684141592670533041406542127252970236844674183016846890777249418127801766446507368809109825853314522380079759808092083221009410330781467788344074176354090137969009971663288429460879572618982644286176226322000084755490651871197134474190701224126152316673244398395201893754318041747691934464848998526413635422432889247815796595665557524383367792587020083114698825673721486225619895722214929562611190680315508326369394045385468613264414285437520399954543026881819308811912725467219314233970117854394117317743767264653867853694218911902153405992025531952312745626039099907419272157161319907745497598147731294157714131554750580859467600017252356720315939896132763024094616866083503018587907910284983478880779496658240420161155805664551660445365237764133069911918117337027630464597807726629543072841184871524059699356979009473301881106223413195377633729723196701894442203585733290252971434294690851300265922139927390467302593965883573857804128584736465919743303127033107983317168638574615299636055760839420306265764718560451711173294559541997917543946653311001179042585715011492883596984878118775523966642503705461614955529915487063739070212793461609644287903569158155743517277013792931484382687942600412469002968907964598067193655323884099050713523010242806246752779589673383164530903757942009831795433972373770393740666419666460037116459136610923944971946991885433069755663598902988148034121540451161652500828504495705452048039170417484093948910046032453618793637657284258631965284496371813886184236099557693493345964141228801981546284573603473768044319915706774299565020270384977136413126792181024387444910385360392766214914108400050581903733891584552516609597611300644456895364585345750670611269562212682488325482207415404892860884365209491028212057418727221235236795816847988316105060365889226982405068328903115467393744696957892687730351792657400642847578470735517208800487468950206662766974749514600202972081865441681805780928336231834514885376948608197854193906046384346355835424331201682542825080861963132560135533745205919501997115032307145730915918070057317814791249149425611575152745112047275693637977445932103999040568113954607738116243329915107451301438130155878784187822287996998261967435932950682503277413200461131012870335065146791490213881731980871958964284026351517789939928962280596224740159395254849529074460254484675851165397395847063918818339932236286123566304971046152319363211580204679137702068682613392607011331127885140289993491220177268030097712618320954026143423872206192865129903247380263972845833408180417792378893618186952766916030518271397184996941917426582866147716885450405830151311145592936455230729155020998621456624469695734674449465457879438213328847105335666158302535519318694872901345798697385167756126707397776983908955373446941151006348199922910923438206490633895710709340609661800288758223680463916801317474082456056643795787677336731689072044190809994879775856995141934517400908699078967561148193347819509612458336977293374912732484368402332918682934072875785297731763287645009217741294902726124334054949102259728586412787031146678164150848764020800054478662743222435233397392285675940495841085898094023923242772505496043655039545625055038611689898697431038720167918448958588306438280433185347441108627113835404372005800244527053195068023123627043293460524944415900419454387162343798082743331175602624049763777058177435747070004291060859555672874552689584503319535299769104960018257680712415712664956457608419494750146615350019301576611541330958123750923902602494495859250573550980629512087736171785908515913914736162766694911231066090891683160916962997152110284538141885462865329413931303787432856230377332860758794332387272843936158534451751897376264267810526946645528182649112261451593403579718525101054528153124456278573768537195948808814360530685704633863650181859799568227886987461393794835440038762140991253545430324878270386601686452465383545131940275096870735617909291460053528011554686760187467772936624683950926997972968445126376274688588419499474568253792788729381439675418560658904864395662308295288882636923652013360179832799039615497974527422940831932785661430981734888683004344631702111593354552830097783556749443956368761866541333365146227596814551303248056039086174210344857588503577686057013234922556836022210075123259706448020611216763786378205000904215253035791226642635420938564229547473517828020697507300317141691987646078464057025632091127780858909997191615810101489166855770229381666953045143628175606694287000920484982115999260022889014370476989097077831875384175092203712936907506168135628663252453930115820816477796522722020413335283116618039007418992791331502627480175188506695148988197084064031853879881784667370155312176010483350901122347071028948883888923525076188016789908046627996792154112567480531576647453699523267107941184721780003657151703453639016576315356463501357778678531879314064361989307265324159688508462806778359116885189200241664898440694964539433320968647081827987976213954229129251726546767528908009947050519794707711613529963883896369134600067627809757821504225675573566450236726611827311258791821832727565056852278118296909365013647651097316590926812631746776131028566182215173017060710827654598294361970112865667071832906154733822453288163759281837073925399253448081745983787122756321384353915136565016451104006983046788723794755412255531359966174270805873844123957805583016940074349664660054873561603707175400285519552034268619119351717306068631730049099043580119220535447505882049041307305863279054928919727870444447083711270684536654719492054648245159399126115704474122007836758971635891884599498996071639842622547442864540433364792453958429393867917707027840357927672479406588965810735373977069163408371378284498777792179963575899242242516621789485962603153820015983030132802461794786181669392687752681733653943352409592063113425077077133793403086613488518947379456116556179830864343822653593703900678213906997258151526074155127272013982563180846502175378557891994487070257863952974809291027271072731646836433861228884276819881028972323284272251976120688695711938485048487533448092263530412558263762373597053757474840514800432110281284008792082348223022552176194381589424200260586618123609986877263078931763743876587771125761797835947332145081843072020290752300619869134827319013699602085738291690946425496832088565002459123994568087775675472689501087106998453025350342337791811676342858468922846599340469235072323382168601259276146322338899286780562321752889573459759055594851109621324741924387209199640254707716704046780992817949444364410781454565383909544008524337298726332560959206963907904194402182445756055808100723526724197498452490743318902363375218931298272509487179039582289274037824829020908750890502455735173836866427328841774179854776042130257989538335961394844150957260249221000721157415697045650447133111963400094015835818210142441910076158284707968647488805907124503176345732371479264708845522195679722978818418172570861276549527721563671948770028979144935768791571050263545091398100601629958365255025881355716834859096266424178360163795732479484248149462419343572327019570807006339821687918164439276959610628286265113994229500141595646627493592519204539660941942796838241889051141365253924600311845682854923090704275951393529705925250130659683015041620680405887396666899102569666146511828207262189675710325150014184505311312231975694105312828315003557969236349434230864418093610836277723877871058638328428978675503028256884931506773073748670764447477874731067985587391214525869542826274310770554641872241522547797480976499061822786982411855158533906705145138072568191428902683830022729818248225632621133491223173299232573026856264016161361977169017225365050361391130247869666260415244911044974490801236574625959876742270517118139187934233561497373330281121105254000725390106722068945262117844141252487509158591839474862898450424591407770785704180924004191327078111750865020641457295199664641230188303479333255755506638363072092035723502550086569056575539212082795956154992009008577931726979354844411897053764133753290969881677751077634201170483821143533661220712505444203016401730453439788403601307741892251229231036931294932095529664050095717837092575738028523578583540372929701749902352350339730861017110036519292285420428355228243212851142851143148369138688524629635852159059251903383158054410753407481275723575766187753212505949635890821248494420519276236471702611230014825220873212097030430607860221800453625813833413832949530855709346066290144965222597114022485256407267923704920943139466453267789581072749291843733849758631544530352909728782135968993310651647221911815271152789520650925417576247373815295140443134224432608717579979058318192275776821724941041765074187509663700117566599680007509707587063050985365334423771396698046535577298592605793642028215818927438236514500690166420456793997123188402595459521564500150625814569512116707621002140625549516390051384685878139919387531784838118204973183616781786559505643587392625387110456971568155005157468131376695949764185693566311246471576550272806379496712092202043720128104725181140556486840601106771581399755620511435492973469844169663021885683828324568400470741876117721847302679182093588806352103587451640000236702533845795187989408221589297452801080425982155026012399182182387610091149072396173022244957191198772168571831349935481639008875025518051012244166255526869316335291717282932565054735322554994137937250263622223080725249605676519442837514646809199978452019580208381058538953456677946605812165321197933134335042770933487767762821096641601557974436359587872153691489994922685494935795385547062708535560494342916879624897608105108080946795267563357646113771321737160117142617480740507652265525323045876466327409240250602196327972544005530788486459098474072110842871228761604605920112438505850282724863027619821362512082444816319022433924071378378930201737709441012655191385759734071744765962974444151087497040461755909445626600606126311796175222779878120989741636116616978215257724877011038820036209347589490929571619090833944855269283222556121466123036548370550792327086458329154338928375769920881947782917426291534542834314542799626577449067069284925416148138243744159283064227245929047392855958637845628910422503600611847934673501751652662699005231662151762376810742501839297873982250043387338070960741419565929327546366204695961752639806523310681134794985760253446957963653531271536500129061755633698376314765886400952648937388122270613394664485696556146169673122298487574746595656587279252072936230127293526748983521221081321622338179369291599558267134005378161497969053780318310437821970665807086134029293651538740116787460314854101326879733339295329949558693796303714831586180413531297254574174028715204038622338738267843097602265301871218409113513822237735825240799208525544736317921672877708236632415790872215869440165802279203060206112933486170982153817556519719992870006708572923383722047425231275008025250996605898653384161907305407283220528435759529163310745021904400299002590332914522923494920027317972621678789870398097148253630479335966694173550276897364413165986953298199221006982112828132799848580977429382420718117676015982767745690737499224274906161075949963416695088686817452704106705367307441755471547032909923454425785179657317299743982011237640958816228898187413315021422128251339354166015948004407630364981957859688534590639867827145648958500456196701154889960725515142290472560506530704107373390131062006747507266587788210088353750031222657518707377085222648701137510548840334805329451469776970879800001192296642886707818099321836713292652814038215326225763853831797598788701203023769344940713473708310632979791944082617209797972853676448506785132060790895523342970446766023133720096984136195462239455214014919924379218755887640695397221820949999554356037660064530042314405345662322240593118843815988980407967080952907447654420906133210203511914417842230344997279042812171707226948618457338877352765757914356690627406918469102999016477562029881905145859258335355992591022829033253262037444010632415030587827280252508027424027338766516269559149603305287905298040787423686656726662506419792084977870865355707320977281598328715267530826560165408900739044120864068284511983573349557814281885308157035579236603533823358506606259398508337203724601114311190058538387452962646849362564321397588282685129246891730719906928043002446088468605493101533739892040101102851362253699678558075802222387477877728746092868138830456627489036895155172909293139541693778562343192537167279740931473640943271813194900768138415862329049747788919030345387326910012102419804053001058635628892074044084196673094208683506090032422434655442722865656655579382362183959045683330869445933086437249210799643947279765802322569548044048152403287896542433685297466676997188512741387770255327650350975838931486065463044993131465181252432269321054892227092820898866671697850773214606382827375582803048084076843159394943688742719548205088018179937186309742036222164884086913841745961809595842620213422344608029074004821348126784584714349239947127156712491241435526967292243275383107942106268010497714379237480841411130110417314501556084760381838200224587199044384355519180111256064657872819000434562278949526069264610500252023563248762160169771167031879070404388143064372632709166326932778676062484915343246824982501939013461792122773878729713651438744606627359448063644892660139525883564040105685173683977490878802168632025799324972448484992372022948153491602797006195434484005199339110249257239530997594340757844823892659316340177921058621050113340539080187978785964757333821464442487240385764718069460537264392247935598042680995058737080782776444791656695854947471731107124762806431404653174715642877612947464810528413122448896149833228469832784211615640377717780071996482200250381912698243895153510413293833377140715727049534500297691333720187978407636684310146975121797942347943162353601437447765195055712926135574613417307139631065953734098545727337572982695154488568931616184191375698332540742015564950660796635117093778549617278003331564544980281811789593119332068711891464420008162134805340730117037486208484900232066814042682704036933689635569924722278779349776300389841784663851738715850428970552898257387579138289761026287541841030277537987198367532022656250175476042852053041666170877185000454594127472210144157782695611403191496752303726150770121024575210770130552082257544007546788051341447043098208019604899692804667394602178567028961231312271515086430687268157022182345847371449354482323411524433393518288565776291977250334434128249960146924185713517169025813905270604685883248727391093448807372559539106327290406143218659781571882033892340620259701819797411946729827593184437780731209630938802356909012046350071816784528895376675346823017861116818971036287837198600329009913643620327106665358214787858901151193882476909514442195546090757678010483878382335351202703369690804529873158909082009192179605146912021887609923427348013068537718268008330026899448712619903600376492441440130813579912945228954868434142890765898622677565511753316777424118517540919960504682094040924812905615770861175758019772603306156886514149456999347320592483302684959532425661998309282868322400713090867486895353793573541603420508580053580104243540027733545253162728589735318107557512634631903149272193212086659099432205110003717394095643444487953403617450401701379308894017953969766528101153744857760814382075918034420681485124565382723357687912611487598252630486305165224783166885738965783406148228241603474571810071448311306599570814178093059357611131346900184320907100810017019599671858162857165623846172501306971411047880662407998174863694643506572004226731848734676688632128239087192758002334931250618574443595618317064705484799488115321199130568879871276469556678665501996570527674332179932381172081772491022023528638329487509237247841852623429672750153889345729212696936055210839551226621288942666456491469388447672585418020865093345646430770248926261875764634370915757607362973851458328217521727161555426209340162395096831208629612549558781346465150917080889657440667667629262897309739308396368871657332936232977459278346599605026868761601513838844748765095686128618578378868271256174641712993376631276677253147996711773478759141813567154052989776257925040713821873631888732719804604086826001258112618792199181209802803069265474168568141027964947867771392609807828766707097866316796142410156972712141292127388403341900983797595858118751807877554147003777404202615055444359877072364330620155815937505911398276853813793869149832870897130688844932049335546210857608751287948385458464448469777769664744030359344181698607726497652435711320516630433886052804220192426847280827775954166498465299420198771253191052323659560721243887173321938579804584133216831376124960186377592506030993754872031889551018933901599565864064076549652889700479351904241676475896291502830518807079268469483190391955073501041957816095066435286588395824939892729590789242134845217685611225712549843840072052675008546523841739865224172358229630156368304877528519283030164363423549440513920259343823474378542929122237249984145174580820176926356669875827767041882697373412917427137616308393446324117945134892374882073613677917807032060438304196568991463304544252118328348508727876781060929085970666121103359485159680346065357005814405745740114839931537825570739160747823256593833795419004310226674742583404078603878968589583984007888063154589777986879608106109761505484444206406557331451663093578117848655684382163839382634344871831514576528257187816582257025488887306193335210958435039285719273844357743460421133945731995142263412151605133430726979693918738225548494360557053287387181834166713124300971741538838366440424625338521121952267306142349362457230527993839753737451950198598484225802420389562476266036715015282529449783070491571917776024603701858965637535468313209866876896085011221523124820982405440724495039424450776297948965145275914615667892621401570893021847660276703144759169896008388199099774557270241094657371296652642579108725513584317178527860326088668837408416104646669123886150406554261630021999575206889760340435753956950573339194166444585347789699455845567028242570128363140231772532407959652590417415030571891874049770614361497457589703509536776243776211453028413136561431455451574234459307457508341844011898179807063078406057702844548931406639901936786237115146498850976923718779822813115308949983002175554670858867907818002060024000350715894213016135560027382231633619485614323512171337288894289628364125394537157985900059594504344049476395830430389571051918583693642733368890682649294216594055027479602536184208113008683124928853751239364613661218105337658226286462982194511339227591732336287134288268031546753581799768918928393497810125746909709362470891886141205826865312199707066227336326085381917043542478526605637371052623306670183912574181785670908051724098887836503619632093152538688543109275982378215194236871600650058334579803203708859105835690465354841367439010830412946031176151425588699952228968699347772951838962470678729612164249715353205260748970650209354077203997970669071175813230956468291388752800317646064165759586417161111234696764944098044078399448517938561893334408245875218984156885348735138593656648880117955913045172885564509992215511233228793446893609154939098931729995667535063938538258497178463043699596963916144400010675661837723751470099701726600728694021968075628923954414627089053077220492238566341834811588799686401813732028086942548419776606934389114689243774488025317552035069604018433496457657992015002039198398993246114861620447225192436727493106011372659803784384876577333952640545880928423345204330695990243211889862510944990432886656097134794402954062235596095708420510987550744895837290788294456677962031377039552093613977890839016452884233355294152352448529739566905993107013848006365973656589035494822371102047443386799579480693635118476243339655076961724766874901022054746555213352045667743044839215970956011822007449608049870119957042371105542333332802423059651363162039863862169369928099381543939500592709093701765535772490743684377419341932479811813441238752091897785438114501064529265429801507633564328928960906116442382470375582386894048775786393956539858159683796753550020517673732401769232592573425485481061497490697936107949547481412886835507082504593570641514686743074426662635195452781735137426981433825801492989747017345856713614951370034326749740469102475998965440359111588667812227919981303362031117745313574274823852021858062268290629574168870394316475343500535567852307360984171067797686607907417971466913582789703946911277866644036938002270036200989599178843966149117596794040183904383006457854210715771999921463568263961020908186841944316799183418043155907602936129760406021013480393718010666586922061143308117688338633994183366412051468275555760571037568143184733674878420386116275663630463564169371213478452892030034113021933764925513326658513853002149819994302626519378488081846926494641288335626674335499485543121620763875784512577408899470503816458943856600665278119278943767477864012554034102369486632917753542307030966208495837743974900983523828240070205841697866398325976403887983513518945490340106413054518315129459764136432005626387619548740215543389420500286518351797677096545514986547725212414937529375098601105744201567181286737133608911127286848031264691659537380183987301730849925819464725451761471731598331261195072063276475809506841248677354269995988301578621130776186602978677992490084082900270339927868799458526066485128142083389569748684662228356219539299950698043109319254208625252234771137830614683961848058961307134512774494259696090915434526734246212780197322849038902947234850190987269755533008627332615905590239360198695650217126132658288657618789183920714560390862153868986886062183292861160166583149572483926725734948502498295683321913924086107875732106686805256228713428077681559152731757412201307062337415365167945848009743493841347984023065310859025781892046975468802915513893246063902571900799718820108766168445236586919603674224394634074075330139823860340248014512156046380303959955052820150141647467826056625770929330288866008877411313211550928810832175397374013203282316713576786058647373397345489094337679992716237619672639388397878058643921562913812549353285257944994108203930147157725314437109207380895126867859109793784006630065387180019428410893175734873852876563646455991065312272074231579155651609833925461991996026291323050506008386159434948713012390362353245935619012627223212707776235446393408085774703433227374628080760609717945236021749548180453821140659595451736876615935848403662056566761585296402386011828512210568582212221829994641290659141579963649602410590756244700286503084608593052484981950200035739593603331971077720983381709277637868264572784812390105609497684112055097722493329662008258538518921722960520285267406824943972861978399597213832411659906202550168835096925866841570779247447812239825308950088385651924255942054153626645333901297393354157698904610314868884164382167186061295717698182407075991007755792178428806461929077112184060214559805510834488478575542863472273353503765818219445717748147452255893277405813019340141993798670424259588602902655146971417251092531066866455041349093261398834787182617175772721936788847212744480086871887381088174309455757660417619021562409439567073984353804723901828260151312836994492582134651554412349474822407435739297844061204415385290035669821626652650827621477451218672284475341793962410085347908635412878467529753767369523904575925636396156306134533496666089772548346023714727065799353759678485737147241996110121208843278412245572792577359103914665756016174446484375770188429388009955968965959996684263653618828541842339307548663313315014619581304689717166556017336366979210153074959196831196207117524858618494412775652376356887578257333025945262435379156857381616301369894513351080078986408057161164386428884074411764866333318717205042251671066762830924579445516812283325165332904943292857365483513181395927922389321636094126468666910336062556110060334201218256252188585289463211380734125663956117505807284394571501461284470991636298485464766114507287554414319502801612363274072329505422250018938755151769752827198332871945272892453520805187794066992334508320610891454042680354839305867464778653407159732489046287658292395589465668110036446748111376791531888615606648230028369155384040312998317919466248959781390460367149826002622013834337630139779252693208964252380269623936412694413078451480853981961288911810886076290092002543043171229252762948433394783472224976738235015973073031642581025419779681067029832139604417862724298940128845786572056429251431010655578864694305440031351991125246463546432053926187908720787598753356429784697058694853868494784116913380072938410825809312272323254009351404629813866309444958096615107634519054085096071690902838932861389220582475474439496717666810836579059063362742996520068217698892854590510911497946484228136809936409642518406119512291326173976723403730014488711816644352043286919915065696670176276806863287465050247882188582729240812249688706115558795937804172634389455408851707138871594763096922079240306712592554023278923790557228809601053058601355050743885786289514526529303996930925217491753636396160675316930872026402972759494831354693813766282919434007126923175747844559762522609309566266510075001779878265954354564211091161769849010970579361443847453480329331547202140199394862734529949936566581902744917835691583591080521920269415711268651861747205690696959254863924823547920787953015906819172178609799907010897658800269020066179970508423474597160305742373368919442562522920859688912937055463125442466527707920172267307179122114768143007703688157157126899757580038389090762739837784859785029651276371813078708010685771231153244576166547540854616563900985721588801732424641361818309063180906834215284192122015425663870242697075918822717674906289749755193371743283778868833393697977940634990803495236349605657573043671018429075075515563626753880199860322698322370494338179165878379740006117802632622859132742521422333687905058079317026968752001993610623616097352913654242056924110072744321500683253438008892790238912123198728844598990913770844524625424616414369572473829913245803313150818920902952368886032486739927070059698833924598230273250236628727474787892350163452485277901813745513577721062340659223147245162002095411437105257900155847603161559777907789308281412087115377870933530581883799978643821714863070429280075827588477089359631423964372955917441253051474796858513102481074666457883108510389051964617062626048235944005172013300439466556017286523329190056231636746744626106521230753118136796742838932870102804753908317593502065058938365779656870460018844307595575666080287864035909907890816210102515484124412141134296297482265644528056510483949795088205650052089828936525510278809881673664741822268511535942188707957159950267078755090898329150513245235375226992868595958191012473413746573671181588614179037462450977725373174153252616294827100073330975197725834259591810213710288775934720345897671339889817920116197818857527150832971130580838333474134491016860842441508249825227623996185508120620506702083616939948318925720889008532549523247524667010174370309071757261352587152016554893207264352219980076263969629433134318472826387285622495709324068159965591997479239149812901998527808786203424139444191594274056664655688027650286357570868346530184914661189093248682384900916128157769262041738605445647132245544997034768383484692092471718743574524677473944934113315303867596200608860948934055373057358674238386857409694653047009535967478560709915652823937695531376043968988573788579478841013878072811565552517523810912770393263519354152069019216203121826020538473097526325178035966830319563424020576969189815754906541158485576963775644582026691105505624949136623038870921920515290602635834553174004342224780761484655262706941245788395188185829587570892959634565170880616851482048171773485377888615242405777303836108476015440640279685897265590358531259460047867646443574462281396643811321789786663212227905023223174760026859887144452035983433317976380282120099263417353158254742171312285767532247757284181849484461511158589537696693138956312344056105571322868502342450633801352295984387543952016275054709715306325073819391178527505558721530701496350726553884651504284585625025190573485050957827276944164455223123960672254284036056976151651019652970173518020311293351846406545054500348363616315296811168160625130460699079576290458144892825062892168367584138785318151149659269879440114195125746258507887558373786721935376709196322466316985442993003732159335681035621251120092481576239443483839858571844018004679047751884974300996007655408956485278611326498490404057138700499965052607989293348914280098359279832864415195572269830344843920426920555943143429431586264271707987165466828510325642719048214163837221290184532526336233129221924734292099792247170338994274910946243479015147680459934420461611761243751129577298528044937266618620476968227701048416600838871045697868431055820703379495071097883550554739711494600433332943109529744271721890119588313488479225185383940017804126716167308598491774964731958307716961650341282717465128337843596604295438677079472923098441602910432086221846820463703704292950788940326577870625444079445848671694463348265088207817130856277106178095793701466026759541792071811338135627380877951273110637062467612405936929642048930617913176703624016118949512515105005366322590678508203532528110123865083971292471598584679356506846413910089308459960784566962369215413007886853386036095658485669412716578933283415622816068608950675562201090898810269817020900938093395567755524607495681180983217098905528313600477507447396500830617027195661340656692179643316436035958623885826700676923237832636063097342772569164463180407405511343895514723364049766892279885047578585908800407874678347945849330378424044594514639071758950727407341570814719682373410905661023474508428214559580222218643358792997916489237145539741917291187437591910502421647931698119152417334506209437551805523451784674141294388145308877368491333003326866955378780812009603078488332574850738901337139052197174245205438442181252007806071345813260606662606652482449775819803405990927480220896879034431673695919115072035357524321716876286709375245140405592303004542088596815381873255841128114700898423794554994679916280116870291102977957136008237495889254778459286167089504314864641108634431993467742818052717652585837740598901628027221698397430897536074199664210656185487504635695770872502105564850776428314316042762754427472265245714126160876933878029663351256877870920099363460621903388690136774393964243039704998693307301412424084211950774492878444262324846848608424175765271111454521363809412304171220109266533115717868697616709767685013518310638522787761962079196413493486989266778410039187302822844430519351071788537606121777583869957403462187850037648848391153901817882898859663947840448775054976646949439871276318386211329661297593982971043265894464497679210735345811570066188215417671499375614135596006936417259058476950817896261538883363049917430322152105733101656590082760066508552766242357797650414208675240419760924513818760669532263968901860531417258065293397327359963167971085172730135376778381416590381480395876947216670629713606012971319849793665650951253517463881498876449752926548266985827932972627091981361637982764318924923963602429177777692652878665764594290143134758497217638395822461924068069212624075988348856962970483793859841286502518317861324584719577921270845166484350676509583915927017903345972708741194125406259069271509131546875185915959166113579506548632189772377199237206819593792181002891867955832839327279649200039364318155304910056131292189766333722079018784729575401409946400915922721077199441633797147030491228330764440895521497728019545443761830712664976683769175820210061458882629011489105443403900689074623452981233839055135065331960218068044985941905815086440054245337257228394230959137159713040704451954958837034066484511206222709068794954259650043238894228034216452656233155664331573336808368344881257246206083173089785354313597582293490042885101682032305851888679174662547110993555381623788707464452448071360746568866116792930318238019610404696690912510429840420742846968332816634662743123739202165970342408508861673580065701093607885058520025081269439836879155643375391467893785590229144676643554286699984475927053947494653287030459210414480321482756908347521840273712100328071821281419056871900381370961004948759093211080869066210304494775979723919607112731578055254664625116291406120883149806428370708107596659654104778059027001081866211266308047930798610731429566613978418731639298458011857012034602548665247781569052415061894319287264590058403694091865333398762768628167481138764108924433932350204052210365273327232626991722308253280166257856974754688560015239637999379670234827254853775504045300642229292966910008204875251841171548575723030419503702515637272665079400165807179494230008533367043849940931279598209344670128694950214188177653814307652929841837265448961002149345884236941415714002380390007443417891349971847662613855193917028819981526020837043028255719743389192509612758034998125543922010324730103496105928225548527988711963091173808335842028913543488043096862376488614555943988280093123750853378088635348051373309918960434025770201610850100812527022023848190198363194066582822943914259753450897252549457786503963228223060774040269175171479100040548370998000121563893857310109566553850740614146002025405140492684061916749095795800548723758132663132818796811703235058066808941957057659668594032133238638406285558031993130302498325566733382665240889837873323236635067919427739463046511234693412463397311195889627605551582728833191673094811470179420685005501062178308498825003878495220964104844909777206274553921551890750107512180613317524482984678694577675990401787312033033826076179975985632645843632252154578288807042466098030407738559829319234729094637512513011155602172693928154863676160588393387163682599633066487980474170989794777019947600141785581370818867208745108049859499378805661347107623872384087393030607085859466758030325544809784782517233348382946449843935532812440442002766780356056112880019172218025577521368478363717030398507824182080844922799076188993731231377404051428011587393137444983987665260311478011736384998946371549458583443149812807069415647234148176362327924410703831338449139826069846352479709519230256424522874092738440203404530771849505482790810273645442492065428278868969507451006036726884177707384699884758215726525689214038666738472582728322927493472834362912317345448987752618467690242296951534508432577870173780192652570931828525799634672579948195143482389424329483316394140194152593622988302458120812453198072627064431900727706037047252906175981321889303826276910111008835052767894587747718808644042993926225340154582145957949964268310267603119448546121915145392169460703509509145550425605799333213028880417067728955606415756811623342033140600728734068281341213152030337155933634086133797769706862025563431199554971383223419877661105158825322300053645816745480984773866805004620597008514011163426810709388669220102851128527203759055991626126411492630343173200509622287224126454200002948503029380947457005372014397959108329171492077448740395675136619067905377822295522658490397354758261813738716979065120409287797192686933006546894405429211973517130980110424722177879865787545981143868303976297315275235450734533819517005764571451718744120762912563715959929509671596642512927179721620835075049506232272571389144147744843931954789286970278288705383899388709762139853881698790641598359120997427786714198773144589414532213264198837561584490135079613459232997584877328788477684860154896061307035447836997190363054113336475457473204729239444580999940200323476540259445547530015868949649114743072985508193756005205069375325672453484520364480767270362005452710608883110289064917637522649881742314914381143498796588418588544160491993844272461171951701943996805951385121015008949849724179751572530174140904301843902548210548077116604600808355777221859719591123857105994436299622989656023991286957798478696073492357664418494596496640815256608395771731307478964035903321275051730814702542404474912149303192646038064769138002357500008959518374647949350651895469395636777585575685045507054737016869504068682632864477895733399267908369517025321089393992540538477559400212512843875157549932273719587131183993207816039501258958135955093896525392144339363271845914148445061188292546095523424542947784647321151268028374952433547243415903307358158605383868947973449055960865218570267685085086153139778127583151302976227919990460110262758224343533132354043809853053174606872566641205332037625824915324202168135323541252540055119386345457417237603254073320923440931678898242997307710435886522676459606803056748099973445031090419459935326871882273376774373627840179853285714686742044710703058692420978058615409946551837785437802008381248903584590703839067974904562393404114467666857279560943329887786239655300074693993070271095780383959879043331625348599902162068930113284409735627728200043981136283495606191526400568491873318101858632880078646778088514349024152608982159031228767036138303760367848102367883683469197862964303807539566879442328199298481359838842927622434701441461625598818386111158673504678419422830712963499192682016748668118953161002714120332005084881714543311342183812739088849601026386074665525936742163554670252969323217351417450001719271475895040458875529383340905790886121076274752442480693516056681751850179024563236113664185837287861179055462423355906835716540333035508549144846204287477535427239106472429207156215230295697139225846603489645295554490313235462552540376512041275586706687896111702280047053743825660310588001412653271423725810356625272550641307545471560072028025528163406262851231972396605972553072777851669556454036043427394449544728862673535535966030957511414451847455257425431615180186755334037845029791481641616396628984509016959722034823773445846475735352675401626152860250099451160974748418520957852909823588125880211082065225590456253379978836871545851681975308274555177615578215029262560446711068537203884693521399138941808306403741941400491321166188892852415641505194701466049866712860186114666573870325371052142902302349535254782767664396867669556748780401735697283415533231004714180036931228271636423088072822518223952161729068120113034601505922773021206077850398048676909789209071383863093998988487832118509795101878154058269287298248422942960814185052398503957689418522425464956953705858005276670747206214856810650368326891260747403444339754137824677930103083196462938391841978740259319169480364105615113259624405182438280724230959745796752494028567656277022525958641300256988443917583710294776239380985599104483592292285282198878755199964565652717017361375174381071860351653103340508573225947746942021395631852507115356980154824966041066790374505686139557968411074107254960831162044910730107654835670770715716050227641005246741904408996692779631197119860080903248731089693628263817031754388517889941062842029072430912859651161327059850361617123060106684408743126504983049368562375061647755393405063118983746747358807956207707652770983696528027208468782950008066479985425712953657526180633940214881111455600608111655985808503397237203940733894119925417624720250199810782427345947413555842976718800817641535607669621823699278491340219888852641124279635832775242073151228371059342434820142651860083301363700643449263294731667337715692153896429397424119309307896062326476368245150362670879336068362233918424851959225190318078231789418923638839192535657689596359899655632461840265405581289612005667881373950849276037450348434519553007516147908399040095089278272335346055764206356172463826257497075676970429964426639131342281428363064745554570365469974045573891797834207215231081126340688400785704763557621971063687960303257539542527990055289081238948540786804807440163406315601269151226900653757010177649246823028812744105981148389920534780021943179181672289557161661571850518662293247728103141719126705022858022042082758954612709189195905988902791700528549237141756520048958393442950445504192535600745420312568173536986385476689668076039523548164292438881281693772654954230208828868053341499650564692895134609584577927994878814997167245841648883230712982140671115762147559657220420746672017403793020595636208161157827984826641622161336150779515628224037821005428374252986987019585237592703664651348365979790585786329144992971158907510169309759350673133514514511656338461271882027417527151463784406278980293997473172093152721817917444412310817447425925049260028600944632649031760968883126755240091508940948093736621595738268941492764304384238018324470355508814886134700838970464321214461316810570923708272044857831443896542545986228600218049180531721197881304563447776050962938011384155870814833739761283228258353659353088788400070914765800672097211527299647884115583639477951207810844291765197993110683299444885491422009729173452072023757983146075340218318525332207644169241357501229523931498938868219630529494479278087296059454701476329512643961381820645776302608196017884783415005233822059004472375702419118788836719669196084968944524907519406808724748183540848082651592518871717027393207970430332999250551121506563964371104200154319376831380401131922759182038392063977433879269490979964408119398005074854221689272405893141479899391706359686924929370241783047981396930012309935967269311251590652673997979911662335839084428290285966097683572165093002141769429625441275163480534917007982184970524812268736979543752458428839170439542301986096212718108847371325057791828336472768758898484845287987365754911655738961866125009732464377993377587616247690783370028855525320334228562256065167720615030291573041413624167319795307280229008730165871929952420713081036707476700771031834459864890876274524073940289274420914278005403290456404683538156773986887148651509004591675878622776352143573563347345356075607388919982503948585828750261690725960060334250167631951893048316571232289570292398329211524394972680278097786497623764811762629864983461745026586482787001619614925124718065396411226820636886260711853303897005310982784236224950413175168102652932583399866174381991779310262636575598298109647445901242770768911435687491327068901475288215971230449604451042060850156857106163112322676558836426632166689924861679098759913404966374514428924582182342783509113269876242665095719467862223926338884868539387778726945433092486619489919423335086397233695384876561238935766968828149325923035560921027783468195986438072572297388762803016564606419868748607199591480804890313051030670461299764911816213074349198062422437869777888738572810074746925827603577944125738699937487110240799126543850118247218948652921879504841250930751785064162528571328832016946494974378042966627525934093474058400750242640201065775265116790768787688718926913425038306051908645887693282318065504534276641882005357891992467269649829446182947375748540990134171129671839968425667487835146336705004474461360544966552963469825729627540634462482769244229547769611564638685845321381872512395216382702221194727822174218351319699204891868326693032201509350799989361998009042803536191681510811565528385138409672004952803987180996891464932754111876709734164573993338006612632549907717683865160039015568867584467606546877555628864140031620161025958299882832296339968537495055275538601121351592132972858392986998893720303410129826013521060018125235495768154342193637478545787599599436978660933499332250816929515979807628114038851076241520022422804069220574604248396966838444598978080366357993152458381341208383337170336276946268476626209334936061073832012455101773353137542874893647275488544718193975502736564021580298942212021092604368645533517651847770486138259471018342864802144831434584193177449014224736364008931158034279636321006751099214927333581843462710654493819130902166349516557983493350597794702720416238451790142806026632245068015172531725010456848699323605786030286192052218587707177238744825410592264243347505929852575140335148282051962492793177940374048985394691050052451186116119824538606953421641679779300447831638660602425008989448405107941653112241540016706028478441833000878830233069242080322592194029519468119707063831238136137371090326333939478773278594225823838472976479583815816231252197323764099227355756068978744491795906208246975456857484994437919654798010106215847795888050729174123224767513591559469989352206011421403084598315777341742873484700556472118661779374487033197192874579639242423420946704994669813096537068623612478835884450975076127207495781289315338959244857544733794237633396359848896923401816030513615818626522936256060652979215150635052842879943811384867541346168438884421103262571411884194060853027800764740666170591591608653015930021461494903185706954993277362078994169430761343680213911385621750692310543333561047046565341621628195056980076422850374158551912131992957222050062489963712880910318961085764633905000555680070969460469021138180840133340577126949231159164383702470869192907750718562881373164625481824010549812049028744246163765593230993107483854165782350618647859166305680890187132731376409945257859972912775585911409692323669307139293487656738333043942984460103802566640329082836377100989576650390621071262802796823220980497667831035364580217300658347432332624927607114161281909846945328702687006675387923695235437340279100651848817416929231306760703909974952826416880353043178403891063389992976964982418164774188610846178369007591039944754532422549068705959232209860051641469270978492316690683814571757172988298840724921888258501000491122015141590261208118673293571193139994511496509857107823609843650433229211746206482438456593598716415149551929844746264022098683490128572757242462712631931351388259095267104047564025105925720134303889290387454270007037733317478605005626938096366975443496671839401594345991544829161805952073195953311364290586527409516585513359873829180982654929380018183118278154808031984130871078355061148458517850084853212891819890870527273775153126889958324157349885524089949481796139223957608825714080602476027670993021503384568769202764085962859916848160618997486541305967868751245414780315078084814232681222045702663162844490969841619153952704499156375621382483327998461316974008208807432949785321988395627929624154821785642705369586982391749676473359042452094403417274226420747842844094908640999748788917537765096113958010322410063422796470615889734613413309418690429430129461303109299405807715657753727763796160263271455404863824679555170216871748924508545606931675831728212843180066547111179577510030189750578978254712915879475124177605227917998528456876002307631885716314668192319438306292610551095433702874712401326069489146176200877871576980667687476430167019785485976873966705374187909896725984627809775305888608539165519105333275795684329969415203542621167861553598419037448845244020818113260689679129991226849612490923729811115810741842695557156110008816652307604241174112226122631017948948944948789906922353559731396287631231611511332886601056108292575581909802556955896661240145205256850908235092104670358421475050233755494456617218473319974342189672210079594527319333191250501003852921009065055957474183088304261934871421139598735782228103512055716428593275858004862800616331642597296453330862692887846655159084064302588764525261631706644436175759792507173580807476362502987795630117887353994550746927325894098715089500603468122230690893879708458904677736998916523278274614288778491224914435931220125663471191996858447362566986923290217699441292465993306306333084989193936112971776839684198057350205665540811823481640369678784232473315671357954762925950526342310593996253028515257840662365950904713889034318784351064636199774256621104468957209891269388824983718452892360796517526484277108351686734180576450934934854834625059229051314118779210814973860161938144415394650320218758516545802383033681774674663289728556833703815854638968896702226810013146456269843454294431674752858659303773994055142591095432885146691760309524658722081908189599157496391815447578057229561004808196052434603591787655454745087679507055677755582265312978792807139850012454935835377649221560116710983653972378671496031696112389173372428751909266569679389083607367950987704781657951339579441068908129976118363488536922935294516529489539746580921063756938297001171640703831789325094289740020691397971430088832364142435233758511567403999710921099605821161472924262583106788782348761787735480340623219413307545142350637927593029941882473621237356303694256148918862325959166992967904494528427602241048038776312480572090421182532115774249263099596259699586299345653872271871330372232007999136332446645046276384074883221496976791459890189883039858996955671668118049344018162770950519493119077358793570392046882789601712780650806603595146711583825504034201515871776148890867668275399572361570504975954287152932307264033493082844868047428967465115893945377746929002904597204289226469572373613438115591328304885680905465485302848355567298057765561135632887537692513617046540191008298716972934366348438630758577687220961972788354073058111689121571704349554957788521966784232860641899144788978916564628088565415977624824180372065786505855253226296931696673313690542963262360717580123823778388608493775387335596562130425097835141432734125806549590623432063047928142129782026154792147416835645536153380435053440637842675236431178996003571936439867069073641652675574095358662993794487340832206745237341694982219721787901821423797702553704941765512967723936284367189850164298982487922378602874327181443605736693839955963563934999789124637442854313028290043486937448306299605589129844001984427553435384627733219456405619443046981523833045423362124632802466117702574687391649042923756862343029771233961725742182147134698706541372034121140314917502091133131232591693894502135865925636206778618430530410633605873433674520345211226613944121747828038582069165951650376495211694844037180582904448070417449151986186181275007432389217460851204626963708942047991992414375580627605242026996492871964597680982572679359841278384460355125104617825735769618847343708197572488025050538237930861839210440203038686802326010098170614474716447397752981126448197027119977595444652125562295581126118310279432704166168164877766280551548037044637086675356978393961355323407627856590941800502011754669464673905933531814681631674249748132961713953579445755898329038385110507057359965276395422638779528927162816831177441206808045693973540050960440694995378720702208561346106924797515099900976114932966325470485943735218226087406436729646268258851672388116652917015281063215556930372886824575441723745347162446328780748556764319274018029685024533709560119150556929536795066016108214685205328962557503325668976966252805694609658819013663747654381996654931314677901743609991260762661152392307220411060104770070717540534079988844641009520230480607121976421230491381692570411204712635607285938742967614103788716541071833508298142403216371194154571620908800391900324226721989157138041913701629156510137512470559006526841180771635521360436465403968533617556503732487952860962289631684103561451009991773886204884951192790594920338356075454388885836393693729560507681356246933744480450661003412865216132908245833981252551806899601034553131012105700893610922010781538672874510858877384303469824602637669483540096828171630741846220957259079860841068928324826307687281526366500178720951296478385058460362710884670394154704993883691392414343991124825926954355871440215551135614313980774428283596439658753683730740798799524424513788920773825518061169331928013403527688566946414901495449221167876063231508469492128562140960591838635000553971603228044860758816898065557600487040998343692615971358334939240660561674035703897373966114473519850100887289121196857655993740328786916041782134213355079301233105369235205195750327742448860128078824161235572915410845480976554070604383251278775714465073247377364150585785585130114024637935451487539363208133244736903581509718293689269907906338196734510808129270857629609084287164845703789741519458733112474820741422405347683360332387504965411238644002931520559365458777338621523721194025107622971310167090769770736267276859032723827228808396834292250348631455037213535881861265078409927683953853174647656112983175285773094184376023597630106927156825208883039992714791767806101843697591526694826982503833319357246984026616266080526142968001709900513095701297319479060259466434141838719507086779120896254291004320903407956995931848679212468375132431813875885789397589885399802899002307983329950303145371358600235434714916983817209370547878712923785652065419255394142791627657717370760936029434130169571802671270142160732877267606394694544759652734065480115489872795083780206017467687426051998397698826769567336412953484237388897741713131598989451395243316391255484045171559697542488495129875053250625099571511506224406167190458180049272117929621636089094826710671680889405133316697586366192880246758354411989653660606891350494838556948148777044348866778239691425954586773270978437346633537099391070419439020391663594728497230113546515968948836442765976726124433502963638963493692037391297325533124853655866224843797501548813078594017456734735895509873263306436742058710110188904115393889111313147402036160760929727051778514454076404487784073251447267884395196638023855932598441710533386061616780642045256211073872092860331529141755912346134956200024454839577621922508335636443735016703322040473433318596476825769820930764844783717758360422366919746685280251297783340594244630178132015933682737389568483951687362221418097260811268928542827728649243721197307208219213588567499259184931247267651071584702012934368679550853704328460744443695706418474724114236495339738567384240204195397638057640603039662814118866056159331543741876291892969264764821241734663750244190393840643205892735145109305209325944843703106794663926319106405887230855976040955415236863592503921198356619309297981810321378484805079105623459978051485415858716190030635512894539664846622512130465790526235657144668353598588881755663108158125299501949989787954405928362208773186866521118943161943319026363419137062962802284313051965788597591810176815178270516969928590457946579276118288396514558796144504284231613131044423826445113049864916616440716374696129802627018534650622205993011100990752943430893233187471555360055884994077959228062959258597748475221114379251451953830073624131905675340172069382356404759362150090970987594629580440265804839216766098954230024966177803718987327990237098847441305631042720666440714717193155926734111249743343186263801647597639348371198739821695118905397257265844176219640623527004061124295053261671515169695136495507631167282468652815655176287998934389107009232045686561722113415512308608874624358601020650194306432044450029926943459628998559939966732562790619206596125133302203506142551861821604788585388986181077052340310719277070678417240642810099141239101218798928815852565448006597943088777256019865058393728957123018560749631344145416540196549242435263375771815916375418636038086734141906613057950285605614365369529667785385575340262919564876265745296172871161639946740259774993057635216469403859990026407411867335909791893897117004714668375128918881315078115599454036416010210872866806464925088175195593356674208220519750991629581307793344144431205284236875644694868453629423548550502506028388352660910844813543750727453407599022033908767025967615355229140801626797915425991095323890008113819278989967105336334659047740429671883102225364633889094688959340885057658427699295778739323083188349826293429667447285444897010317144910580310131922629040523365765670534357869293738393687054196953267081957780911510813880692535562692924110209722239595142334800779815921517231038044964427668281550376478626227470142684688057366552258873669139858124477107734109680277822320063938478437682197227859499060350039247693464591595872065779122757288678966433678342478024264651345918808866639251884969537446931919649493813752510421629006643892845399733431937514261147338065969296237103314996345054194359212723464570697185717264931696987152283606132845646700414333168645086844435709265096906530653254588812242275158780321718671140735596204726091848985496869582159387324182436614009073973622355312289899963351739128257198638731163472434958214848771200445884821252060332027784296083820335868259617063011463869447369693441718244690866073801134113108453587452876856781180329502698860903380330742013914667243511881819976215853770346668232460480726950295046138440321928513805276192260167401842530658584575603614751759903691046285054530007336930778668605786101117956922936697683666118312639682414336485341672383780001287873770751481239162684413872320155318746091142486094367028271622357845869460475204066139298917692312361898989185914200780792054750188331089260283157293827301735587203801853314921065589540386376572666122193862419118334330634812853127196668006994894378472841202096788789780085361046691364368104714894944328998552861199781484809012819121097577753970133800174280850778063324550220430038553737929856682726616333883819316527735597762326527671183743848280783344716512549620244864339425048883894382932609807056671937289725683336109881052073354484950911440175684087889607879493605178631834021839201901168894079642073970288448699771952888066973132410064284537697395139617144275691882661300141720007210289202511920286670894507099730382988507108961616677026386098158165036028120056466938437244355013785565718972769694766854941906524955662147639446858222569123231107992524917487899336387710853862131498368912215317230062837598662249133044911017859049021064101685360647174463420676745825673790663170862603365831901984828490118895624641898583663680396079255037293598558954983909780984113874616076824964730726774367201644672979219557320526462489961605173006403393131824246247655840613737007001304260952637508006333321904613951829311771563300422584944040605391852717814824467600346909562989351464602414136914014554005325869173470178879312176034508369781786571283017108083189580609771840845189570283935370876767490711659788723772348795098100277071120562561239265429330549453178748578709561789179687475587963108909323848315908345075176773078287672025115418639866766874343898878681751182888009152680682547665921528045876572718637205742966513156665269193095102444854163821169025834821418861987501570440594840512905330477522815707767591784109620793909846523148849141755691034462558446791880363504965688748058305830594585814871673698111548710498713937123206488430591934857775557307984428262410283698827406835729351707670889937590816884660840734636299024574362409719548688396304203301187839953845923381259687180371752031654536754209636627616571646227668655728311846789620035218296289879418297588261789709060640924432263544409116799436444203332956815487363774205496074340685238587466837268229452873575478081426132895519582951168107010363931797428561905782697182729492561899433046335633111998372332878170711088839960942169727301102178045962401142772703112568729401625418887040675234677049383885237475432684594552586004611387380674788406773434956273482781343048741762256604058740776242232029348768671524132058223022656723642191582518885245723914706091611989502514807287995083093306368671101709154255552153873991031228159985391224298218940264850897949688415029055127800530921543207568804975559917636703355414214946915294150868703842755741530230025043326352219362409851911305567747113785171837132483229301757886197255382758982069217102356121453582960114660780073421607532975120874745566019614211018549425023443003523288177929244442731737695884613109642170183455886258072849207771892882533820797086808188069312654777405139329290128667631410400859069316889406223321252677984295048530098718459066574697771988008098053326686244713776274572978686310628872528835377252075810524784175475636345263658325743115102274334099665561051929604526650257016977392913249979430715705424466275611587666821716828333213378266690708441462151646019943159231602091142783028803283126614675907902735783112960387721764277999365955251467764603238638178052848489378046416384365668289767268011548151990038926142846848312367440281713846365395030736101075715052055945646554542314825340788820487659625950395378572852174735163534738136576467399913584808516027086463458696519130229724334412315656018503300498335369646773038373535913660756121708443367503197094909912133192142311972550823791750418606016811026693521043485762056306675214653643381214915525291975322232969213621503897401909383616347258906081571814673882342303438481781645093362058123885915310468015830963739446226264996331979591433015188022853786752560480789537506031267802023399622878237727832113363254339016933640836924401910846432085545537496249117932106767337727288426574532885052896091240051494193301943162565918801816774123246052191039030002310061152832788147487131976834771306438238772718345797388357320660173132208267429483149715598764510312369050647703187252072976872088557124426806563399577753662815339190698781008367151602013658374869115008178142454493795711035685605060805670266467100154402980616554759428487792082408912267064423647445327456892168127699200792087076971733580232706190016448028170965143417882770007673955653867783570491092770736073952104233101233963267108703631100742738785066586144260850805069539536953118566118037328197230794147855924880648729672071224460412629696393726462322597992081869846665333732660363196760175034391629858441195399337525599431899554882163257871559612813780513596606850305480337059778829294842980423289983316874495949779425856450676452140648150188514875751802778642386786282699195766709977681569077863533848425435212262343633626646380313809659480397725687691453110244115982662284201482861247660989020387338283534162397740543441307932285239376628133548690573473874557862998742861376930586298753643216347580570007576728030659123045376687773131499921140220169776212888231654098544639414877554697868200109098511375758511257750270184729978255805232238199669913446395442765147592482281037113857094499788844045903809736641775410074755869066809146071797703456204386185308583375996467732506494117668808456944768635336561416838787607149350164357111076379388886288092291910239269021803143438302958453054291983164374382619331938657281444271317049153071750740299601531202518696419454937977101514944502921116344535051869903515934593883879302334252302519326238010644748265095720933689553909769586851157186689625543957051158130937074813939618059655166449881277329314824476308193929770162079673201405685242964087796133080918362184842702414137162567195200036523619353748475478790605596864645968680821714524374993047135021224366751390455048709414167484689300503543715122492136140075704781778315833358608219359013193416446040835454713302799726238405441606965722085444036544934490433777664586487799017515043428350252520643043496251605758940944822901528389155393893700434789197641793571323312516869847919661345587072482724502032279450406551790734271601001702116037486882603316994575652315132335456758261951112072617582090527552653449545416047022763026648521516634123333266771194306272817553216601223000334240664975836382269264032890912619207574642828129522046223035336627998207374356380726027288832738852016511739929693780822468988274139487626380028114201701752095050616861877332356283157550474414091856001497053035753385624087182541427383267562858571302207856706477225671610747445820545026748645261566801212942564062516480786968899890520407928493964259325751777883108924957669269858494338101826254918971751213446270060027329348617147006531265787351083752910353345220588865556405482411359001975250016482009772838137604362946201459502464290489511750507653656561009805415853525531054494564968542591038236044323904032787407058901196687075689591302541523309521519410546180861813560083714699949030731765151559605844741655185001870230066766222479913214154076957350560264710003942844067875161899579112379373569350384807906598934832964191382143041169852987464371590310086888316086081861100360451943264455735927717562298493517909535953637230007835654600789406244391931845001797434574043087590758444510589831743560323562686283682907080891256801001581148417014502167980400095102443147715217063036079885529090204426086278674706159250086864853822562160236291744158288265057825240077237564450828890985796777936713951664166376921324140109076240269681098997230044707987408776076171198922199258784327474078153044842893645610163518106104976984625135248228437346847273458187014758471704734649913137734014644570818146737456163682005927666118085399113891453818402307458439203865207120802094454901825783323765353595894093561704176616273131547544129568820625753508555797585971320229326422657670142997510719940313416120391844611874059275694457075354893744179417176487591758771901610718404874487893469163802262758085911443003214055477153841057652381475499252287464929816789480242801249737675708977106844000961118895876738529544419356651246059026563898638368564691741920566535204625758689666700947118756627618582575392066862667031237304796607950966287932194132551287427864821520964507480088285236114919024805607919302654580824542608301384060306058042607646264384634534237084808900701504331273058832856642149492423708065030164188354166518773149829642228347514988022132384151947591702317098362991676390550409532771717961457785809237921159911170698935382885322831660056160343202285689682552806718829314577467196641690891502736642468353711965112952128593182958105852299266543609913894455420965925107572884267329733156244188827193216823958744584770850257906760511776532806083834157978711972134615063162623003203809448083943674144913936181101617834417610450542038777016832113296777665510162766065484973594243285617442227892692985859818542214384806296217975251399400137479796511652801488590168136523469298231516277515286513616929432907712616803138746936803776966014673350350158306519046873775827104060153549124886269691834524423717444520567743762472527191428350533097486093441259912215263090573402776988832833854743858567382425749328546017470632831394250311218177771981751432183274941773593170581262094285889963240999417601874430242643934231464234941900576667368241418055306054173300915029834879112615764285092311190354304520175361686459684106463391004011696375663284131653027683968312444250756357978408108490223017405041884902423744489791296168049311214278746632858521229568679410676690625679356727612528507531306802612288566802273279290573115001872872585394596336132604528970794323949380834593365196765389600926102497706882555123373515049784729598717539551763965904429453845422137971663086724925659804073920425161882372359628171311054919366752682448456611804862530400049261270388107638914718594366549206183273360447423308377498520294822566216244056963590706933019677051636168406164446147350971586673445175907066009084123650629962330012861571648234811352255526960490666233777854336775666847774764079013237834468169874430481783299400791482096575551256607287164593291523171589340615481276069210601161242604262625829991189650471624343509366541316343023225275797888930572270812075975459690116646228352766477656560988679630325817027977355257553327838169701488872854076671935189112714616829003066235814452373038100061404940790706333934910700297421811560108350963704723831665185807407260673947272388707877681457106412449937218105354267529942074542180950704558422455243633436809317614414276516719276838156001177424380275753458089730300404753431829924899337468545785813342298189050063285202943815008056502102169483848726677002722723441793065892591952617972961432251163080598797082175993169381377355761576224009281155832236820185953898994072768985858135199535650034599009941463652415202494754360433278382121693139085961524951884526425242683796485942141689529758345571276191529075962897219156823850246949755176267249510374114178812668639181957209112684860057206336840661221665957286589782754480183900469612404985013657951244206617863744615541883460486721822646751550072636331450238655535444027421148570797361835475208686242534831492310021119323557038031483113742859469036927223869987540914783275211903285517383205705055503367795933280244075491632787714029378194686023776326981237728158711693350916395296036000272252079972848085058247677120909234386366237395065480939650107600011380011844155163249144852531724186644327116152339187397282646861048582564596193577395086442314939045189540504031926862880617506998358547556766755688219722603102944667108932316788631706938349465821691096070928049902480113124272671713558552748509613730174459394990632929349458722396594301838741082813597293206864591954940281448730893445757876274765674345237299261587332660995344207005207373309388078057385224084308535774363303048195298606096756831526446689434954936980786229980556187533855271749442146795176153796575015640367733018117184756622158014693219289254110810460095194786979467385816028592164951059421310860120225992295496218558159427362052131350309789320849872258337875825195258926946872092577250519355206300365317920719595705980436396221077519595937249009865786823119448913074590860779030694002435471514459311265119955906297360622707762413442125013795902175907283762953936359350290011496654466399332533930657399374311253482401717231972246508358947592789539646992664246601610691241451646095333610005029589363037810884584396712024230224985599474807835829076830101221347245812921138834463430597476766048668618071512596381337827700058094092639059871175026465822019400859025653286443451402067027321179046835827240810281345296132752943775619238489044339726715371131387161623069712516996867608816476227032959315513580845763973317962068968784648014577215534175372803338018344107723142125822812938723961787404327645272532725125991096446654919336900417567091941533352611571086068561046498859752266811469399190577059032571836749764214349019355994193916675640666465033930429305905262992042676164351109976221777360619120519677148893999300851808644338819926632445598275530841207799224992005022990902824929180009385427285456220748320551141313683508181511791336426605273983266554653066769557417232813822349671658345668871624133658595304664647819233122803764945627659133252109056620896542725328699119207240097302587231904816869865162780816605241305418187849473154337173594023032075297325183229512561054441309615713450881268515170576172574018652071411140504044351367761167841880179058555944795286483915839757049638750728793843086735930896406028208547078942697937208375379307097264069757863699812047769987075737984660654538313322483595859907139066448227775544332948400296171722027898777626316791498288829296293821417721388533313231065789199389972438915972587524348290872097589692072317172450746621721909619286238261004842353622130589846422594063979053146867483239983328462183365665694316820233757799054388100840934280558213745115405933583626633231086133209727551080720912502450210356587012787991819178901201080752494238316025433834233874619502085166127521902530762010140525461210868369589748523059486614634513734112469775246487755194271144261995017438230325812043185853078452186089211332306049761684491312454858415805487675860068407847599793100187246310302185189745768061147132287757626304925725950358793094166117971484826221215222012656710532379001723938483671242356763776713581970627718260663511757777703076285330574997984958889832931526438513499877199113393279597987877125704993714691604995118445454923049334364308386935085175134543360604862805732269929787557074023902822330200505269045042618542333513331234867960694113780118183132809430720423924996709784513658968874301438016121439337201208317253694362945287419528174150967464593108539361895817988941440199483774527900234001217081115273035738805715565955750449180651673213868003208739541684451176527746283073664088559155088071067428899421205007961509732059773482713773340836165521863369047610184201352003264987635118564909079534623149871222689039917554124422208613185948579934336109064185449262643534014417922788088729444526975400119633648362527500869537360454453646661989399669295750873883318867165734827617588961464079401562235397726373407128712166354793672468030258772965735962843978708814709662810977765618502007863240709850781225603597654351654458635372598502087786846491407472682980696815927994150887040548537147190331849576308098982475483003367737512244893995273788056972951526132617327454684497659092281359472153993580393039455894233255964042698784876665002199990743416444684372540193232975541892665101988756774410639628439955587548741034281449940571722290004297926730631973747812906407261504073591622419511065351273116126550125625671866164431627956457041699170279394187109082527411028984782358274767510848452125501712810564129975925927287166122647954364245276545240799939925215859335086845951347139005707497837135571373865045171021386449629796318988491520905694244323604324878004429037946590559835000350822989363563716025665390452465621739675598594970170252464620557787700631622228803908151043927349680549522877513846144502793817888259362198394386087194817024724950306961280228586689650610303588408379252899816528946675063885748916085506995014063133196641731881655654187172563943335694221289290890798860784447790030043464250817049977727837705692261123126057993423291772905800895002147510321203619903818054128727626086931604932330066579278401057020455554995272933715027826932156791544883953299120963113454775703649757587579823300469314028592643618332290092354955846300834500277551220220839987956472070731078401839267911816806536185710962888467093997913324733240371657427445215908605279824383414631159828308917651372069400321819203384859039386700832680882817194536285654880675656570649652916865248660931062470238726980376422946178425786974058230282555263642398507138003061609392165266849560130889982506454771320310698411988330359082200565345494294873321981319180771182195969511107915673276913068371381807719386222189819585794872196815176807479211903195685123124379773236722254860319483215618142356136055637286793787034591830647318729585869074416057053298225823406879652442463965875537544231572440768729910043195236110849087168836962225255885235894186676364879127330650214737073098124474783398370273073770690491764168339724782871153107786802966465375788681456121590180244961979289784634792583685931617716557183193024202676735888921684277844838463159292602129056088569687677731735624865197854124979746133109065837305201152186977587182567377979518936737723417533483624239634096092812172623847888082298561805699016709341625946197630927068319594908705802142081586264341578078873139492912401914616491295806598428219437180428294995250121547982633469675768776328867995191117158333393860885701138799028712782483787824215372999112419443995826812680834521646950082880684220347301177287345878407005117851141055069555250015360194109021358734867056494287063463115737568520371267974787486931143415415161198309350574417946650136628755491931427911708222982390607351056897572184671627266836358698052171987825855922831726048565218873041607390043352817562647261397948432424219480648266916477950646799925441358731652851151620650785391606874897332149889649360695184972040405472186169095948879905124229625383679637371528863445009367285794422362135680396563163171568728469766726385702459620810114732360958005910103683999993867505342654989334531184812234326353729258653156339953038901960573936138183385259485889810647421028135887438151441613432880200961317632880029431263822348859249708467406174281046812285520446021819247515173337238390160251625395759128429032361751184018387219711384460355487742358494626372945698005672158721451358946568229449655354543457032662386936755716751671290295144249761861484756461302474620387516598069093435909648253655864223716570479830158429939662721124837038123680254381815040390317954085218901132988367251336457159026276771393068412680141141750219019164371894990934189201034062199832062865021911699503776057497278879156703397679068837757512331008423784927852080589510705065945296447826240754020451015383898775370697536793474661861335020519513543212972538352936572522383875408627632045013796167490278054204986336775287139463104633397902020046276692236594272784000675895668853533956308530423836908038248945597152273458313372512153821916104846935339456539750461701890190836632421872651074404875474883925211839009034207835128909605745085105373577783998944857300501065265063992103669955117137750244930572437431175501304568158848023508196859674832417243955094441408858020605684949390078218977319768727639425743199935223220865516768953474713844862461187334693698125666993810796386642717576136954981007474378816386310139347217698680917139031886133750484737211412137369283060357209183796323559519259205879313172035587018417588888539790851522952025225308676868410911884327702589289052626990832663432505436599986788186434429461213874432819034829027468976938693058203086064277675205341502874446917596070980393765157295789055734408761299921715745817272652113765715539004238809405322637986641600083257063609309317126789354458831142141594626746040910004936204109830469284696577066633778240917396532743164752602608977693013521207042177821414255319915155660592891841633262467184308684893272776396665845283245022704354317974385871264412374300597580415532388233903722531624938910856100842584796582328807543315546271298102911015418151627612014054244163948556092968251152396132285746708263518153553198585036539584777515998284216811966586042341578539934525497915185432690817116449814231419751725415485447324783814283390538770625220820394840442479051447688055305767976229175691141767748880041786292490277104381693016393483626477885750389944384763505951488266523583209561625857735956415982117455007485806197249344707564520945206436516015809371166261914462426061324406505940011892862118745009390420644158581438540834978425012553172347318295654249455965902516701905360937545473459736480388840820209036497346690853399555391490769898040707345814091212748302125534004426257473954457303729202321332435629033456399954806840748169862897945086361714472655887898849185550078351506808432681149901609461110015797799097450052567311189364522467930631343994522996772859095073338898395702597641130833836041677982101862310031805309315996511589300565339667211175421599713818798247397926948863760686920127669998397835750752124827572788196238212599975148973390027845850626279365559665584172134331332636788010252653384426837477204207700332788005875219836520442907088587482561844476097396182229991287815028220888625814537120986513212708156236893980946364631552594915786085502205106075291483153439332157931181508355743625348541144165985922978994855907119199365718993406397228631468886933702245799489794806402339212548173457427159029552938643901034136930481959032200135277721024093367030208241838632946485111511259929444546506130926646890825856432034392012000033672555576135054022803369510960188937583471004789579290762028132282822131758895547571155271949757269982703424260914138310563324610479380901437816019459025526068514595847052982504965342584837287837916271206866802691180081612600867350669537817858896411423017384047752764728128512100222875682422976931949763183447852899536812019569071689178570169429605574601154338999261962203903816635697425938230460839945254977398645251394133840501777278951494016898970053087824570210819573666060512662406333866113610331093634414225485158815448897559269943231144407850009568771061225588689117589702660440431427223527671214273072308522448163130940341782190342037412077152239586628625065062278353305026808591324209906148423787189474248853587181247918897164513382430532093846892182505081929346707543195005898736157913038177413385069833024286816765253265659101495956106536958429120988720965759091453391576232637339074767258310599093162928093216033271804715533987854786678054860623873592947580398643124940035178170902635227737467016991000299923681989372949918233263574563810517033312327088686041836177795202982577045134627982123998433764705775953546347032359602270828391748464216967155169987871693262447136867926525752782461076264873884208797400009760372696795749064398848091336721451438204664943530047905119374462602839184725867042778396815595988918695216548966780476011232545628598129288717100408214751578519418759388776897451694476465190435343355082490167644317645209220472259293553164898475006562638879059688818758977430926757693641134734006118167611140144784644734721624743119251572193037857390325020766461373341912519187830513838909985017455877509344584740453232263480085222410003848899513343196420905514923499110608247588181781834200442459457107598468894865343263711482831625788887610267606822327469331232528841302890609107817803313084801422323419555422286847680860208358528755027159320540392730690894647236130762184878404334640856320036324974734872064173597007300860966198702176783576803046487696704542164429838473951384515578337053383649021046319946526135828646468099549040900127450352365720651327740068979487731778581346704988771208148822538465593017470826424392520084926079357063860449574814118609850333804921132805745529075655118083855615598217121165860916026892663364002140810230669346196780085031745246895959477432348465451249120396481218437399649305687107946129238175853782179089708640407914463526307320768677112566617924571163227055625985371596330488929836973484762468663505186159547074186975499596143161306477501520582079813768007770245562318319110308466370008958315016149536136342786579997499620001647123990012171485618632661891219430243925603444132557191796137654398010827621360416372563099926822461041746355995853568196961134777846520168997860219399961341176581152667191819420436812064168615867176345640580771344795132888324497673841794808758598504929772237660735795764497394224301189851689745785072799138043106987056165168623274797353900283518010767020457216285956657960475487927065876251633467962849589776214252297570154846136574990256754986672964547672660777715124366243006303340340499311681803193181432861864685083608525990785097997537658186615940163474393710782533389061464653520410354912532958673123578433193988113833464203042747243779794677863517513014994770909816095741013810003028021430652028018691626443279411815901394590358462088951598543587768249873812609230954592998126531444066066014131424464045611282454540277052147425616072882581974882003657137302707653895855541351768456114318588497868210505292222659336782408487280380539111864363763803511603768222725384359167158528836868019541004467300894201273698474412452407798390695631085484456801490378573537129519303606346932640221755327641876712179352011752513259525018838088943277679167074713474605513832315347380805052191325570707022234753559645253049122197971804276753520064982918007974448288015809656740893186550320020901947070509613185311743092854933698209162940495356265888271339589066903200201838437253021161630026627046484555374332705485548752928298764219590158953276850718824685968692889012137826430655032765015907978734301973599671813630123276272102665390704503400713532778578872646237480419449449735196318545448634859573962141186326116827038109774974131519612510748894200060276861417872849924837947100576756704416746822120747982649265703559171292006176215391153366344977734132736258288365807239518246998208202706550574126534164077595667248650078512118820700116786616752468094280432799959066226462042676736834644249617365155456645420081498739149845221259607904361057149452816170123268568282726120890002400851520559309120216405037902707710721447389389606030887754254810614604820776213868619956014234460411987904315577107534447593187106499892643991170947172100529266143800507352379550781532326210997575983660375186891640953179863657912387784516288988290765651112734253753649546352796084754480198535642095728848013134175283804299396468906112646542869715332991383997898672443762009181369090092791783711704782612168246325988740466532773742818878848925754199130366058090765028231559360120855753113108026194940916295256475541382715482054487500734616148951381933839469663777245578964331873285478542638935810035583754877685066599009723885431158642180126203792291808287019840097907330698387743931268037555509584686112975302917518207652765246739201198193403788259375988632762424195928091655759349606602070590105775989392150547587499674142158146649438371122007225155110911689610695029264985768781613183222977861340766935984741858377439782438102513051156664857459262160429909352584633324901910438469354926960425032164728939295779561398195610098341101473164003102080738027672069643510876794240818873438449435848839207414656493902914862608071126237830825164950954843000323974592459253532791722268465614842217737381601476378519966415860913032598940819787890352649047296301058648571964606701183840296907263913866330194908845478894337428333898152400200371889344389016631029626606161626451903246705090267316851772166038958916054817107782584896998284538353149756399731269026279534044742794050409145051145560179637205590599514354024359055580657097913937573828146240708874327114343674847337591213940195073567199046942569935523791700377438640925551357088988963817506723734933276763750732185038471750680899602294592904538088168979999691289312923490690932462802102567042711038072393231847684769688969937322250131095593798451231236268344089564552896732960731645148600434592046315573941848397844221711605818509980633186920875222244138904297588788962267392983652983542079534657886576448151132766228468579789282826668053995648623171743863742287578188882669681228143668422521330444830617335511328474486885838846831999336475515665098450810111325821352437812070713698617859141575583549810698951157928034568968513794702151853339854869162266252332643690247144877171623325757434090868074157478628745094393101796679223195936034582521128449221195681210146145267439964183254474953648155045855203193309059673086023756097900097537595142906200396584271808964249669507418307303637020227217203841154981354761635788070136591284942381404245613164863195925297145491823885307936956329913692429171958369861725187979005885531390025050959930500690853834533045713602533764316498903488648351723144152778742849848173739523311512451725330611634368608873364956567716956412068009948847314435825533953073364402876634882681391446720475441479784150662402515837934593317054108199962102307030909694801868065916298232234790225467649200228038933141929528294444229220956737885848557276491948854006818710186786207186827518339345289159765609628921066058522390421721277876434793767351669734331034314607551672602833257885768703669017666171253096489204877407519911528857869209227121699609425057411854761643819728697722139842915948739282699277726643505245638823983124169662467676113299062723749608250876140509424083446753972856886165070209583450282701869526251945230346649636115641369984559848846173917993328403125781933176453351172999136042762714401110483845783911432372830615499530341596552113324165884990333510864701020074613474898870397362962162390797432169793497506743702741002000787938861679576103643798758797735760654645849832263205333410991978790355386785320916874143203370742229633679180527779550270462617669367674810946424897833636975111887481790775120213012443555526104479040393220241013466692887068566894439801013726290930905585886440635362406689987441774099957123453146257605944308935982224824313091633487075847094386239069157426373271981858392301889225503100791085137143005145179935359178397209857947139314807769000446205503704333263331252277039155140131452852280886935022785754204266226868056225354245133740461978386712625412332419271477144006649736345557344129898687965733679573665692851092413612935764689719510696377495160049646881806419447679526876782872850872299587802941027002601693317477392844300436417234213678257088350118179714068556670149135928505147599417907938117506622411301719056225898827293317349080936690480475072125167099973128291222713576743394928956311815453188527364382935892519134957761507906820325186247533347289602583181109629250008712508851673751258124533844045421039530067619511020149422504047734046167454248546993937988771021546656225817273264387172496481893390474301263295898388589271897107576804759148088149297551519737841584827554876071355140330849900940592935025186563485083594719609381721616832053821531396456386137095432183688929936956148078170867017685738044224666761214810724149501770090005349248046248072289686071432512812661468708651034702476627015047431264855333836881558806191491342982720685439441104987134094687151579582803078802770052465223603852561437983448595118984697947020932320334182601051444710853878816949607491901357335571120140853045819229874188135969929064763957618431779949315791030793239379757575142346668051479262076330686184702041340437483250239174552897267416833949450293246131694895904015305285606304230978239408539639481042069727910154829244906331729040123593086144319574508057224857259900314547909579663529851163571889217447285971880197255459302719077027882437650818249297642603043607160003383530384588178294615016786913209400348080568854280514539778926772523639657021411395928496447549310192461305164665436554169993896372474869100087702576732723256990846845324665594131832059997075533123540633164924303427091979960664841435292422754352350200663451930238667740359402121913109705843475172794069222065036317822004542960716874404226427244461888622271972352965234703167346386464976803809664137905546334986257568881759364427909963268254863069385224759607064861144889900679845886845256468954040493659284592432048973322051130508946341108085180849126855658514635127193674296290809261449164561969051108159557578056966930690768577531015246017934748360541097165191072358262131912100952053846296279348962799912978340424974221460281097352261142732520144207600019271050546269933155032077400370476508960923021032395589720186521989814116271640241322718131818382885073610652232814128448435729433131847392069514912406112741926553775090836878861693992728597771890781247105985695036061502324522858408633089201312402494419468284799096971006886244873053715916333891716170151350366533709706778836448347677559542793205619288737650512212297400086789207901960167462577086272355953009048451622458752030671872917063139885470913826631523314691172038976202568294951419455740261846564096629542927646491833710488986348013686461394866252652655849497145366198553936466641578536020268702291226534950739098925702677796092136121820666742378209475230897050130330733082456630877831483769437483418687369200123199582962831205070676451183466060694604149792110712637240223217549613543278155931576071610130968045246472751456228090327743955397327888589072986421298980424405925142742301374560568864552326490934165156084225502187040141278153582673020964119846854043228727065881995291661197892873402812307770454646861007834254791782521684532511090437608143318943028196801885469718963443118689577305409748174281851861439101380053467432315657746992491070366589666008561948894279405094046510213310916991149726931814923524083025055904703366988012497707077917425158368289413001495475268841470895344912817700157018451090124073959035221908789238490796429806239892708567033485575797694408358292783520665699161444084991896209452341274861582093000200433744969821465033350297165292572246570027607790154394222937152323577584331603707471303120285246506997866350792077099533842919330968704459252027349235461727062998123794947966078683776624222328597075601533517780758923827791987330022706747206027935408390547129396266034118162847604232227034351585217164701439685860051196184327228236120368736746449902911483972842297570643107278367858045870468714906103327120810888061837099241388139292498751813157404847440476282375335503657030099377468819245962900431776319218183067643969727193204717235017443643068684050450949813107985953882332473148283911152221600878618141985545727198623921350116810145692380773775411961647774478770044687578374965664877087718673896812976627947050071373226028682367190115856843016700620765782142252979958682359071007148833575781675690484226238559560595598204318356946466466354875101131955607665276561340081294934004113119896223361392404672230226677779091121850680322540357794668300097125191733562804796588652973274263867039899389935448033352460631269091876353640448546722736613843496783279708782942120256302052249715891806396775786104319599899783126525194002172418479423377308504579397840779043875858804586009861656681596885471102799287069876744414425070886236068309358937782903235573215320743560959119106530057461806481420652746728371990344226177334870794230325581918948096111139631979640624603952717871721797113332670578023438006189900563516422543657789922812567658787561430185011886973915852823108126174792491162096205278411398456295985498829644300009981689373075618245258015792972209545414228602628175481432744601522803476758142076082024039808057158361585283759809861203244814867507136186792100282903942754015740891031997525946275155220767358663665599585348837948327526797158295333062575012589495736879152463994409957835884521740948738678575480166120412303195633718196295668195296185298054096218538265810611527412970296249772323844226440802865592980630801469049539912093148963850164495392407659075681758001278305593673220413448846328314664571090399521112628069998582561668646824909931407325655315176842784901012064453039968393118963640772206668853520037906801408898856499582389646853163389694014727719967746923249366783066462426490924538499527427095663532177550545160055615020983215831326424612806233238938372998158398395551258263188145894982444264658419736046090111018710825916658444615223626577255322402955724304332632303891353095428895087411097636720986256369719652780697323669029010933063872441630957137560494964229651578139095307752802197667634400938694046960332847290256702043331671147796817285277737801144004284484300880649372161901090050669231088146632457059184043107761072096544131285220652803710460196164448146832311888450530210861052271688099816447833202740588492757989278422934487562720286169203384983502458225714463513932485374703861832909913833691498676458892809203746905955995403414488621529170556360625274374368600924164124507822156165667592985414296428389090955539090952667782657730387764083395823604276580836942450995645679463919688515807468449830037165383905942810043543113858777893941051476752211722675073623965059180847232236463478688262149207034708337138632321171095540962730780540330850837740921699872718051144006704941044615887289335276328129717627992291650253695608853254854565322645097350276460241744185287765464720351305055794920722287196219361816333859679144509148651308717130207880940500676858543878612368585144192462713626301270355204232683410949172575330288813159942205731696225932317788294637108778483363355759314410451997945477740872932203265629973515174419140634424573424545080969063604029676400016774537859998037980634885445887858111776405595752530600974368326429091411941261241326539950684797325696023175189298216835482666918552953599746139760809501232091716597768584354391189697356707680974651334331763507458506519402961722030307924572554615799934427096199430605417672535906318369483635849258406010732293965436981845147215246948139868388600948168196892387777010354221681360840991860655446237642766491368871534177296507152724507149278145251839061889315373714506563495294339969348971400400241655112012895408636673974704094906239194877010183277839463669446647416605510791355496261207002377350419823119376848579844582484581512940863827177722714539769544771904565765478692671141626585815042321893948233294580020551687108312567868368335595848469741152212734663240517884000219558960368062770543992252449218036668678540456663171940820998150487379832377481267384737088338081762032593035125992138969944048893988722610645159135226806013134624412476267371334374628800560953121832642599780541500952296735496528737396975425915785030594359866619023199202417708327853733534830574770134542115363828306015052724618380442278658077001022335136392982724157195112413463902333040689378160334655742166310063101519871133532225092320322205742806533053048817354133921445327414962308668722728266673833959695955337860872525726752417791943078230191648774279091345290498262245848364649466072369190732418326271502665365241274116558048821170652016721149531290431765292487996892269121876752637845803161184196988158729019104877538968443206418289387406332733960956757346758718195487849816527095512515625758545194357164645413140273881314375948923854107127266996908813653785432189797352414649358670211084333671973713243191314202591751035290588070045643152260708137374559254447838793297045112318739397630629070909242790531258472760364481362315638941523342911190854127515154357215740796263414417818558045388581517787659956797336442642442022425062118210113672430836141294782774535982754063648780818634101370172591590505897751777637061430420641227079658376865620020964910232986689928749304281030629005378131293207321111723669686285650442589706933859344431149205826763619653035031264578400177587627644263169830084267010608833119422093716407989682905415155465651579064648452761184379201106088904895172901506277219164430276147583553747985179410554880579494350529621807117752425419819406870492365246870190260792023610187367872503035114754893470354620189564287018064138238995471064919864054885113447996544423568943936207991025121672044261661575680496884774800429002037932538554015956355365155724671767587945200586921532965526492141962022929282191783228904054326183535384486798450845040365886231903282851353051878697732662955404554281511738581470989399606964149682221313529779517717508772646396199377072027425756960396517617174319180532601686985319981114650449009656482138282614104584954901821795029984308813424285592826914754831474805932519710072989455397658451115637814182609186913079012768206807076560396026177414669955167906292269708707228877753438093718293781974134327358420723769129676963728430249272283052867218054174872545138897559770951496586627423342057772552746297737957897592338259242136723137753158900174217725154589801315960425171471781836771387477897557097290012389266000915739377981638521723472963819071611101828485457664360048140962260583165696744704888119386998671137993984013824448888069657114911214242524113169623238750601836202744377892750576117562468770754693545289638341706873664480793077623901244154407419538064269790052775412211927020328501614025772606708836879418583126112907716001769788622877678517349100051994047144080825188552345295465303112437289077533791361731791536966722794440340953205861962636078969049584696022320235165734129224584006806366866826883691466878568452928069086671253891636319961640244794138688162966297466025361623539792316974850612669915875071454406268939363566193186679980589147950711182179596622451933434119347261901632329979059659633383426086700665595359471878985139325981153710113149826719847544023352031119133459724980858959829791215638907650818660272788437513224383116805940933497463005345034390689828707258245857954340364035600786275437303852485617053796618403255073108788381114565413534149935317160311809482189454308681824203417333455745680093612871980752466896368570733838359982918423037247791836036418294596345619764710856455091047216812582762527065931218083574098767033678567045584890747630180195172061215904764283811981744860634371328196477477920484904899320361541822098463705757821309721357864189978974186755705738410020100442033709957247222406609290355357563765622302311332090058821778366173604374301968556819580907696386648896551623889988415157820894027285976272615475217785703816617468632509161729247847367289308721810173958650348437922446467716651145387379560705510061092611121449077502108408507539234351093843474222757110554095446948700067589879634758418367348963316427804200817283924056637788939087682174549080259279642755037601554555239649878398416439919063436222724777305836420834660818818404568044802626630957633807779013273447792440157195537720997075143431008089338726015142066327002098908389430160430823408154062562977296581188224998538891497711351651614516644628672879449340545362573153287378423951401478787511699880864523883661386980597663041540154674449692001868551665976182742745330030945478671984227703606577975973248353981837503297877332239319260775634684301476527015716454686542347903082190805029711567490296438401545054691455599972706585274925232651312816977414552407251952596741990220815210543415579222745285358071937963557297837320946995800887066263157387832833428107936656989607668828852289706602683884454885674888607207205787250905172561186798942686078350555440593304844392086083760424304256784183560438116453740355343685927388845183217893341852146598173563321467838467692138062741719409468595336035101192064342977723393504980446449027151189611778420915098594700004839731211103495164104497814558893430873369749872204550697735483889547800429638347096733691253238569110838955752680434702674125225483273842892869281196824409114693589798137923034009384390872651920164300798939735934668541698258740360279169996586198445932193100704798834452303307873401402292110793819039109585104939219036598022686119122681813370474193726195020325122319774575121434044765344362420775625344985989995528139690645703326825739438391500459324167446493737542070642594601733384735005901807977299566145683861864485196088230428750917535480592030058690699239630842996379644510130677803758455614051981827217635009890538332372558750503944788140957393958917455717266521628846981118318895890781396406113633257476983793236434475648913215346751079428650957479460589967367101965899281307656787225064958898623735339585899112033295513067637273320944530819954125440498402780360846150618890932919858931737822900141110094860586781300716749826054667874515259605095591232481936640972657426513030575432176183119192368649937195329984768189610546542118984703388137775252536183761396783384344722008317045610500322450399827206989181804805779176718296795915047567714680189099700296436766249127226537786359075187438209985511104516798380333231664300716976374923211392341367587043943983198556563811737787144888316882752157017196889451060642984059954847389275797350413078678985179642746669494848314685472260312665592419361084140559267514508995699350218046593930066676404715852124336844985549425047698792416506499528722785500769120423192236826905505536544978563682044654108844317256936712337610183456859612519309136342470499024460375780894317241493074305936370784083098518322157912523469977031303280916361444682496015654024814883748566263626085160477932688945835266148500003052408941568038271367684680282945183164846975859219703937706757106752313563187987113516804304496604407923763510554678158706687570872705720542353399145816475027687675346892866947834274628745565084603631976312971365416374991953454414924953340445292790413281529406861870773054326083718977866496686027745461772790269932530441823031510467741177776756240347032483004263308847401449159924399391107246554597146696212720613240930460521495999191933786270500748469647861105941477286778945193300679557972093207223053888393188300542391901687955050602690001620916019909307913198738961796801610112485220647112401648952933162568343048846329996056912665974255577602890340640554786137638869202083885903524809792812521685247409667907124273887319631034490351137244190785533666132224807070465022102841235963387436499404311818920187825407615702599883796654117848881197275664594593601481881208805659279979655912079727800891902573903383508749899520056806925730454922821005063651680470648585548749690337131976331928911023572745130921735275015054974194498010590387732107733250453620395119372538799267614135333288802273614102597299508145500764256616455623833744759534773027713228404015207151689326475695108688972451425719528002331995365905542487810384857556338537991912302399202212866154227456616610373491588877403798420541634548757238734778120900462140975620082755110422899583568890067567979713177804763299010039985407472143732148639575501151970457983242659582946904427279266906740071366865828048442503982945347730089050351362429035624189549300037127420581114561296288516586012410855058704068876561199459073733312006586613160393096047646206765212871200218937591994963126952050350589405059511306119524984426588480132089093840104741682827736189061364164689999736975083648146510703673107598809979362659499212735345759724875050711467589352376512208031737922219622892606262924263268053308533493995288342161075903217610433667199422758128552378403031521991216310290956972012687220184930952912983933846841885428084616853488799742079080311663172849020060849470725522539737597486326803382195387296999033018758189548895762059484918596599348353719352963854246642986284544483272041365127760345114783470083137735584064668651453822448497503137046444182235324074930747254861760474234489412674042593075841723436822311383817375383173126362145632822851375867026281886295926681788456461452087216949557440139707301206106476453487399770207254563159704609491841566954746384619231114663259261811931866367245876382919593209708553196153512262159123552244597208971092538570737726698622865925421554393119705583717802550446097134212145924709907578340471534099710088133229216188135375034358784368214186236712611147838488930408298018692264835741330620399933244288255714800486007003862528386815327372047229452175275944592037135524569926375922579596877566333271161499320339773607961415268894690859165979207699080416998872579917179451584377719012163672578038178770677555827349758591737931106819536789191591205397401072098222596006205390218619231332189037656712845974467018075810794111932833011277311076602453149279745841977218462361476421595069327405230538599420341490197661415789484120286081482344043030895560758850049948907881295429802621223687424826351506789789833873663385921650764622186470485525250029695757385616507100905462331445324336257391121657795999107330170219179466433488780773760352357184121412943185697129917035309623235508809907870002034196261537114589662348910877874182941806111861056250831794172130615635361222257225252551045687226854342981328919286548763757794420877101165959303598695318104260312438685664981308866034693913612958414734198109805560181014499716191918595686022368580808097511295153510167908757779508341528110583127935612972204246187664554347863998170516979107700306102652691198542961048945574206831398247141152448543500122301204099532209137335255497286767597304951682411583823419098519714452047148409043439551467045664169478420227230401092549539359036467350358168388498711269336034664753627780193980171402830641209886532933451424708732013447404319952946882569223913585222899073357681504600025283836130110210937045041255736679948720051524597805315577517771315183675234056065531807074212507206637044329303064689560507716849108848224852661108311656993858305074540517868683480839081837075010266306154168898906876771810145954241328057553358911942953205789490350769650323124386637331903620291361631499801675403513764630897392922527888348977749985261796754451816305657767885999423718125825261210877334957122053188815581506057792829756736150361036386429603282741379852520151520243505825784092568490567568115335055714478430082564632749885037192027539102135142030552349286457839843501311347873821737073580735627956820575825067985649846776998479845078733135539504147545044414477637381911408574818166694670152257955404690693775437554185573969389120876780993325966357935144893506196496910767616604494905168161858858821378242182842902252724437176512396269482220248958236742723737889221611122330845051915815514430810563620585808700126870366730062726495034827860434725641657607583771556238134663368983233229020899112368136546578673424557152937498960692805355615011239102787899108237853353357040646298532471428628112748690096975763948788548141167730900390431279233684614793390230517550968312321720405831740412057744499145224322303427918674762793297325221963407964746339296620096765296852909328454334484016867775889778522809640830877652125760909240850717439949064789076298903148563797691816252289311799500008171905448449812905497729120879698858987145801949468657154464116941695959413728833750936129944131902820225072363543078577260209723270029813050774260404264583171982754216667931031839013472943197686230896785670557326690646881197983610363124621533864603159590539538431446414231561378090152096944774291018731223273919618186912893597533388840768427109475909145592581878804376904962293255626001281165458005368396151544858586141472478291030199582050090954415201345715365737795543055373777063283441661598419318222653488773352026422962930097083086336741356695708961828950633013354037052943456569211367493899965967994273390483395794608389533198672320728215132451123759662600726907107138633212580693209193459190585131878991162813739015462871815664532784995655129164934059008475416995339775907588434853196239663024758738734565653947970926488029516538059785705846052046800058939472041235184563242204744218633445362476813786600565764371380274733200048019780737114991619254036555180349672736211520837055995009655931081594744378847924575612739324864884753455376863702077396551279180062756159733372506793090252959592850973992602240621249350164700396535984581134286466419467290823473971696091553585796264853292298441628232464414960992270279281321856946420123236955607768262057407076782388487634165633331452801817455967404279137226886704212964984273647757433473612987069789773714543148589791934819164504443212434934132902513385865936795961588983304608845282896686211099763098230287108554318340736845221878352337520620166783601734372422420261279189272272522304372905179100699158976082868019577698964263761490825452469951626592011604154325172915496308035294015807544015496460538453403854508236344832794900807754412689996462925613979798522812695886404139306387815939258492775045664845252144423961169225586223351800481842168993600039371625405636106845421154801843833880764729435844130689189795841189781463813921395419094918399547297349093923037384317924007922461617045899212493441389717416286218213602550029217756948073387451748915903118363759069969704142970598697615468533291872592587347486976939621771453089671802054754448798285935770315036258518609619776865868062040534339444344653086625566052888636200740607690072849901254882790030232119897802670221580319528659026067214562174113324208905786262879972094164433586987979496529478531966966979547412087182065092458793957179413176865999633187038343007013872483361208408814580037695735625404101248544428283089119013303983507515509325297171996769284950413001464796029837582027236348801418635340907156239848990165972604925962858705907077681575234742536257558189011159550747308985485316835150211811023185090768914879249956640443898951306779832008158627822550337954256841162244640087692442858879839588954435659501941778672312118227704937118492319178707295059581048947363058020109449236704887680015210172537951357687471777357056679780530089316890450855862914273371856471117484085539833809543090376820110404545943335268922737691322275382573774792719452954016728794299827064923170895248491883741561394399920072295863493894136808754947922089077916751623772714540345413684459324009227444726644214007552471539621650758516676719179630024866845012915485589099945181449742965381633074976938830971008221968190161748236140540815154554279150252890585699027641909008673833433666856354881060272299071978013468387817782506473962140540585442613913935943932897385635413221915160361508343227923772686658427431349029804476411818055782859640274566883272605380274533379477769090922941149197745876238369986016472540776647422515853423642932532963909996561171386463935320966248783209509995334085990138610644615022266281653514356973627049977979635280518034853633205575675167153521926232018838782864700973988582336905269851002580576182932493431711669920160962614645452197166505913994622195612411449116742388066904228599531484950224386866180815803400864235978594847614584777883278618713769419070114161032876247832874312603243494475455675744898353055373317060332942209191829938344077712620051254905125165447622056599654418592062188782611856054209051173259448317053445271140445016279507557249540918039373482440099657294161050082593224251400454528027635864052571438573333919617310230340497307728711642622602101996457530416062644889219661910987230927114151479082839765652136585444817887686611029080403190468742648103529338810632946841950147689822767818286146392014745037003458243697166648452134717137060183967620675863845900249183764389809178988415951076341902364540944458608164693658350393306880463029593109716883285665850738436752130926602474986505533190576407041243419424207491359812746287259872164439239761978576713694331453870383762323536856598414374718004567380593775759498062803811778565632203492759978367185480721449062992918136357762802403537929734911793973822238518546390694448883882400387917574862113709393193281714233208119307133814977477102910775544069393350956476023247584455221006466819859816133003849597831778550382968948854267176377916971725285559408039526413651543910501278681823269163112240750084841208627462043401322112278963617575523178445372395316834006933502981765677067830724017878831384064463413625140582002772790742067596605235152031909133618078295148304858810201158103816275844516310505099458594719045011783100561229745991009151989692584271807542758090385255679372136802824930545029550012279777383908539316023441151956528533772330656064485178481019700346438433155505415912676024539895669954871016405788804540760824852226355111334614984746696706457150008869409840921324675127542950205290344944524434760730726835842873730002944751373093551842373885498349629428460552789847138950553997509622071025943566906674206202711097238901964738844322788660692823077216767777054933405672736879950825950289709660605676652170184297297348174120145308304220876579358695808968929037438292139719105809306322462656297153960140254608101906122549723252190593828662280241158184043379277201925364221570044585428768713301385205420044690072645825973027921382578006790885498296686717430668454232013969556100687733437946302364773523288052286459494760521838804813985459908712271253312532963873432562776469846838251417109759542750738888450835866001773548624924664866902523121844349464746763947124283032134077037324368686052374955323156656421588613982501720145708415106773420488073682518245684493107762212605967635642557938486369201192490664885161860229537279292267146559768142291095980683784859754466966358008492950568532782962852359118725222397529246004292787618658733897544549510537622461302389391043979323819724091516283420555207014558136632483972669879696446938598683345578899673156688358528844410644766004489607949699672716736050255898789849417965528374881071494888476821655467139214530471042711833174409966935076838814889792170385470186805107465123373011063158145365066666888684720809931835722864625482147395686592467457748896866143410524862292024859967536231666611955752215545800135020873407970394375959824683243536710968369523675315271207051320999422163121859410468957402759761345487951772020536689054302959158370325003223937822570127498667650054869219530110872528832398251781614080880404572179695602109897586800315930899226196456850265845152637279604540386602789213366225147167675355175619551055764433753639664261710931969689339569898800643860714225941537519474102115895640837547550174850992596221410866519044700953341655694597066291745152263456424239102967164098493566293748966822455322488321319913776194502945698579230866438114763136848960471469598041376328857797269977381464077533606057688376739855507585160636622372630167462783870756473942031050606177934863656612096869469919973791696614452653014000948299304327617282068651339374157410141460885049732154219672302781971015627098718238956850878069062252876617811407019187662117257235236643373847257743669927325199090059030480511864935865378427666268181861975736954587013390268072313936752628579116762519779915638429598470252871189344325913677953005889402532824282545177031936760731690686277929463213521909029849933736417797555946665959891916755337768639430087721688184633380517405913060522714464255578997449515252324827833468385280533257624424080548730636662152928838973715780140289376899853113497889815895004609843563093776276995692512950945162704626625296295922617048531676932224366843886018289785947594765395899530565472324961816696276222521325756916367538890050099595016555208546014944092794386365677724170332866413208958613033325331858064986817285086794836003772677977543117422586284666110294409026860931850685925304857036895222067774502761516929065743932919558953737394162352926940523181936352810476494042694996606064789942154646545501176934994053078073083488775756366579487862698164560926761942533215121361306349841552486210867972962966654884722460153181442340432528397440520257181925676224431005860668315757968014781270483319677764340827984443016556148863671304470981369106966578603559054449466048634981687046235973312870240183075807491820995318376816761142188154225498803797575187742408546298930340823421257849069290056745123293683570083646596657996271868845474133821208344201873748954297213571579066056635730042045473858958258964186284285596261264938764156062482562493279027378169290247318055573584923931118165833065882049527445453103402790101727013430480416826541160363730049720470804400425708895376712728918360298258044250111391580463874212626455979542514608094282277148271467653445262628487338135489675178789743348063431125287018166800365838461535246880469950889704757979461817630721705222814612318760455805681657507285430457518443067585215532505057624807693440759767731148083018103256450983393306243272395715348969805680022800182641684035192280338137104921158998503224344374949646683250876268443098168109048322660419197651105362218911837067951126554212283294190475177603593404765431960716520666392697619599092213879890670349410344503479454753276410852380078331423458982132312412607993700779332878524457219190679947430971537090563569276342578001678220331540130389433719103121947016204564587425385804466331825014443984012240236404161895272785140871879511895924723518830826524533904887442441419146890391753957009382838311488156929814357115516107240351887341009923026006049289094776257548284511375797666270886498827185544296819680868930578405700099144306631500121002812014871045310854347952654256980647766747601597423253971532984005931341477182822586406014446333204600304541852573732402370329917252057765798223673236493542527475404228580933392038475068839483928005706319255437525134337280436587164463814677518608466041986619013997100347341770489751539935152531019986102640715774754690610665037444577420004220315222087254408062755223372156315876678882853594788935155425369372891827903018257719701038850626118148653766888041948936592896761082992026127384351117786718047598108533887181564743028220625008662031749795758719412307366050839715041156200690843467795270987539738899933915559946722242809052332773095211116489086925422970893259958029614798744368788966940341769846689054716967470175191046702646432844018454342701296314394662052357952977191017098711235877745418407500862832845284475852934419446415434313494879353655922331598854367166747915366004682719447404748427721427169642425538362252453496689266423505901007864771188592545566822437153215347769841454093615827325821771754169527179268975084318777543369619088180675339173171277389037826628495571470497150697975414235842646723459678362756904508693006161063833351936567718444061112780411541241955895148917265399768756250065630114245726877946189825680015148693447979848198111146106624740582309395843247223253551560777123340735665951654534726860920165381710880430835247684064769652312555010156616392432101409303296703762125019380361736493511952317712195071316300212936663610096311574046484030358029048319147295990098714576506323899401484851446552580951538055856865587094013607999215492626315302156295469092217155032479984041531142611425764407645732188612301707006948471593319764550119365212142927286141547861620471019649844494002704039709986383417282461417144335192359562813321304545707766396296961566338590727906524492822182807430054909660038144238737490425465994644405690903943995806299317409093795513052864128639840134726577543891349213637380602667107911755296114112310553061910247839938059664632480847749729412611388955974840871930807289488005710785098378464595101685402966088302155580958411383641136100729083106892109809198287973702154299156984254796502791795967959367040656872077985442677526137666415434337214049942718380732649470235212452519642456667331884724016558958999574261763726331019849858596522642961975245842755979410985149789294410348965159738701775572213026280656214159322693159610941076604472400836552293420423367836429871039175899205899469923809551997528783413674214212981103742233339137719397734137483346532795229314904789558616723064769034540667163574893946507757092190379829376392854049088125292545591600184231895230931271667248330957671500460357040944081531583704934043612571723146706565019445293615522262827649733663781603641395637757467838482070728764848996484004722229010320085225297383004713415639711903566067099206183433733405788320138445826210390289061779628062714070646033166812089239067082585159245578539432954854176956191133120379341840393456812686862607381384494294883885450010263562131001478022421625316502671882573914382449840074329690950459566965104405533110078536125163302312202822157141478059461440415390124300113995352269916608582906900302586585790530549568234448570787914092148149036353848499249551559278310407564854070570297081695761427700905275065019508777177236331683878039016536347100484622028346584159674662017274192972926382354041991526491683597431488624766377754456594969033610084006531179465416912942203708685333689578801691192046575901913712004938045694592917913259013935738217181608053740022798441981088943813080729240167031351873685778847575695419886844708369488449868712397891312627926185197483911886448498810178565070199036392182608868364291140581466912889913677965582199566069258172944761913821230320433685078834312295871104925646140091433284829582518328153229283705495211815912694324617934253654604177478863444344482118639919414136083513128731408605461463166146418744402319690223298363276283179848120864837857504892892516079698552626412940753199234809643013649033509691868737404859125862208424131943915441618655752509208551784822935735231515891810749554910040802007957729153887983752490743238887457186563703952351027759489119142688685304308489829013416583598161268963169805887250894321637480827812023238979906815058251534830239639103633972965375694098561383194902559310456275599385137386058185113906402055850206503445734283603572593720735364394506025845429310702530072091679289941554146369520039906240102350616105617016308794273309057049944868454388311091446051850937671253441661821443765227176148483368430105223689626111502630303043627224768473220288175544781017797695054617786042626711504475407018901539313108091405835462626441774145517464790524100948513993201408400087358940754622397019701448738163506033819251997301834095809655413799097248400991838950796267492814226837247100463628169728830871837656779221638458633962636981624815352167746633361623584565492503754658940610770948707922151231137681108001223905627887498716693653760588232753671946906483919110529038226449836073399023927873326120976428347590124129496991377103093496589355770324486215812462638872517852590479131503352685799967927882695816719366318830019144544174915221552330313674382484175061953414689005006523776700469428564915599215113131196390704472349402110942317623524597205606925394778260438813049323348970718176043494746397063642290333751287569552662927523448926807942830666841013306616808035680668639140156208180338310292276688144038737458126512287426396586938751509723449721130430392739848862547550857024317767617123992839398401439254521453630666039387677102191501924145838518564507491057339894425891055701656000923045784938277801508727460589495574204418101263188713679198583484237056931784632805134868940404482123620217951798342107239496182260247594075221229192119829248036127511055623905303371688495163542760779221022436585278635802227513818147653348442512045021486610353528542987737121543762928309155155056250745654526742254383662732669710194480968127051681744393486077012517584582898835459787547728724938250660678854251360509213907504996286590087940979191436661033900450477034188999799148132414099331111565980692061333514301344470160227918850259447386145765938558565005202441746749600278342287437530186994188149928855787202922983518677837324759541048860734547900854859173916738086265414490671358001864245265411016240418943950530846034233268040971038739848992765334510901306683610508633200283122675160177238197434915341677765836558986584700812134440337300115230436857914848570458479494260439159777851520637147920002677713928908058175359983205658127001129188518169418285985915803837360364586129153562643954687756611752504026402942170627162590344789404328511863587273582107134596024693640966972560043907195105878842124506603762561305845917013202674964317048769122908760175385726248681065158053113923048698494389933637085629932872241388304050863593659526571953370093525904571018452257297399220749009987587058114024101644004934273797367604015112242121815700410805079432595003658568424494644039571528282487899559336125421832837422708219743478408672522332507730095732625622015862938578322166135064512932965788350930468595737430340298188181328181677927240967149007132895924499778548221270232712260784856462508916994488907946035079254766854967604856706023775397489203247251119779914577878663745354965134705764043720446588315727799246594155655763517363511239838946303966102481711133340870009315771386043770820668603533588230865485206268243834010816176420967960039287713597227844554870691008159467710350195355326158234202919393760454759529306267179771757149965369446346638273200888095120908965692363542340939650771497173785250718388749109962757984652661160409374502021452628248732401679089224377209288542768451649419032096795791743743256359015637402848612247867513403345366918967004391461133703617071202391890056712435222296108007713341755176886189508154973786651061480635185482369740275443598842449869344873642588721231998683516971986414310790380848347614301662666249246689702315657548271769228144307616354655582575410410125050715326638312126343718109242857733955346707010652641300741840133967623043990496976866569489789322810292469798442195507737704754944140683094639354010281027943358077548620261513423577596489969435037224970408334590948800637167697608606820200747035408432650516467911707231405932769419661813927987122869075696180260834282984459940481703110244747419381345211427106684015409055381905155663569542785160783608594187547607402183340726501545677740638210673731840358493477407017863000207659134603749683135549476447039972935384532332247352888655732598210298650607581770446436784513121047667897261108074815900354729664960411013090381808333117629660758826413863403148372988069540996352893134383184648103716796085745048664706395941173018739286008054870048606162754480343707745784306103341526427966116868086508815623595644580017827022270038640754019444327866333696002334859034572590316288246079893461658015490782514415954665491501422655966305497256633110231266171023919013628551693882205969005197267625427282304825665120025538741809684705015845427567257071450575727690214928731642903716471298959708265029308040307603323345084435822969147349866023246789883054900248685832216659325545665615814536350621609194195780511125847078471661476775271736779949352546629573672609928091796723316084250207272153167159020931200336041082369484914840474851985977303844760332944252374378322388761114477248997336892336335615387397450954412252619575091468792054620714706423785723824931658732498462718525491519576515245602485782561390441152408921831914676264185751284915150132947223538654196574254195788649517545945186062829862295188937346450038955895533323045793837290833716110016418361768326124003164171084900177126984127616358577838614753300792546087589657233483055850966899575632367943020845897010954952810972346175781402305802856196321101342142932780801708595432260859991022062992929498607736257672596270231344515113361336098742974676550428116089440518954641495248772579734796137759097757283651294556578556240336385579029119640141141694059218028137345024137317920641041327555017655218846162486413777141313019026312122347286148373752885686984663695201765620567182972454327103510150448453360073055786492341478759781754937206411851023398451064177265830255450541231730101069215172240354217071726688160591923659380065692377706889116896310000738359948203523287694341371587450945569846917590470771288585479866431095178692504714345887465723524001705940994033303000165749036808853629929479549479830556374725952854717639314857097152154460740489884930960419596705619473400013482577293993916919078157194478401667521918147667516528110774244628388012516461414012399085270980738571541094588564301133409791552704551437214483828339956049374397021493464922667791944558461896426758557216703397681138792887344190848372912071782485749198708763572962804618038380283977753335156000570387322761698631377669944562457556692316492242915669920182743647415752350665071994884662258677628668135920851007166627059629242246097464812165864522892323189348833073871140978138577150766460878752162434742677327411471698608914773996949050421504556423344035990542834696142811863866163966298886456178218645322583644435391077065452426897778267333765606180204177156720346464731462230619985671004404827514258526550169410390230782764683811775790004011303162302892718804145398898180285596415036508917092477991139569473421435150922765134394456324100646937922454348597940684258201593872701735012508074351500558117096383147321543529636595553003154165901151910606901310594327351188461232514299615286371683179916754864278223926458764892811695347845922920582383402367628824142730733156969920095906846193231863131385333243879371389744422805106297394136928367442946963492162495531968474105924675711975805825734746483912095791550653129834996762365763836633643933403475299660077827934276764682035515523606131047612454776423618509011496634371260958988872643175677348857121826580052651141945507209393730811820953527499023971448314347826763954621686907910348543603816574312941184995656637802818059663622874193454710005639521518738354568743786957403545965499409368415029189972450801717414988805727641488937979020432378345002196388535210381797119020132901950323655044888831427459406810409835225682582970694904907940186183914741515922646838253976703061827761241095634010926596074768084405061497500527314809162573024263598566438205734619907916337242129537550191356247461824583740663790921292267060460805031477913416869769308263197187526748861770177356762626139708047377715447064025489472183652190435173909102287982867092131833622664812460231322358728657903840690395508746075506741075127572503818167779927850142757266532348084822857239745347650894973890554175501209724893057527638980487998736365115804833084733546524049277214553269110630522863860912286762841062866730836822897181897953239197616457707604091788443486584687641117347890257122180099650773614738871870650952873601552669229455764254198103491317295105134828882331481663793428624168724882621460690945713858257034845724653094067820282423082763759026311059562897334600707627277026922851744613892755201156702202009990767114209660305513634963094899050717738066047757109919795450134391589625541598633632157719053200229880146657605161649416031011410676606561541846540932483945269171029348780521953098626753446476179761793021189298704616478392702340975648927481517616046251049397680894129168882466078999790633306152866711744102010155601067989754487904717816219879618222978566725377468672505836949035094988820525254143077351803122570182901449013642331000374565256485353233857784561476226944918388241763299095938468061584354789850474619924583983093436362987412355851310632695869359120515458373897976274281967352562752445609697287195675811674360023737082581099132182798721805868004034631524595381577329264426226822637344597021477673910699106598789713027758879680537228770643264049529525046833128816703619862556492570512693190870333859643783970361121600145801027550915238911226122097799993154362570127866392544221904926153022745462499949580813746776818203176541734840886295577459324423415924455570813599935579224982845950375236063933848019793951491656535693609041025802924515328999996119450572691967177730698176023403798639806654620132648948641832338605336494070506850854808845122220665078734480560017818347858444653973739804903982998722937824721840640019193794935860271503522396332557301922287054528413409673335665706163764018556248173599962448789383967067462298577328061525049850870272185623927844404661432333974573997901424930382643439253485740539404800473275629765312327077557294464027893813912294072134932815330434035539756933321650507455853490725678170416725490665802677176232788510342116637291244812970944222533762860559460960447605538414505615143439585794724885232822479725189855098140575322768261156555398494620871516806912566766827347520336318872106946199498099706333727837461060070424713999815789092622080531114925718194899762278263742861424246679054555612478077121021788619515638193476536670629003763454873802743234053033489667957317622589200030125191987369881623192408125609338413921984779527256391581524312418930490604637068320034608903201687609897695687196690461611987831149867760983266111151999830197396140032665378737807767543615629956547188359637167121398958797002519906383211567694066382855455181330462696370128586500888168524273213897890743030766310478508250889590995848855724643303005362219924167503074041413300259086918508212352302013707220293946712401825012330211456919098747524276346229172663976421326873358786684560602021598452489470715457345877846268287192493207691620037829032881911793085635964742974968290632008235774543044291378665349532857389668207821202011859016203635555876251066900920834901447812904718203263577271835749596532057034791952460051520496889801873269231928198118258515925952113198406907962186489672726029021407266867573526739607384369937175631535293476838487031295080385415054897023588059396363950215364746425162230941927884780603334421351760111763563802133945768317037764112290952155237931832606436441758003065717103863719937061941892093529555872523666039836569290536988255662398003305040779650324782979215055248274510105108912387152041705221945458217186373532624551010732159767121504348018639097290476504141018427674045375583132145608188520431855668345137713005107518816388557765589223303058202082464564490653106097333039844972139949978449910830367326732984557549154708544562998708286686878502025132373688833348904718764466066314236804322597048037711936291486863792917120362564310613848849769700401275733022022623544146872457821277215804683892061335452496319703468109421285206765521421602787695576157097582956972487499586132361552736751202754475876903338948119543515149515901484599792537043291868302367004637475183863088486557703006721429106820398239037756154035857037910998568781117214790040483499915472016012851781313375992316970833250587033203406678943417191987851245986628016153477755087447687867556140625333155032817917237417239671913759109474262543255520903709268791699269969231066695813227206021393780628716975990388113308083610691782443143203119574159249945487130207473236982906573622510295425289076633206847767094238554534562805681048913473713276756888242794880244292205782161277599142354151759126274020984801786702504006061733846131256068994223767452344193184788184179385073081416991414496062758897973834668184826844164042690637384200945367143466228372933846030163608653358914335465922661036106025989479560389234214280665843873830150360909200865498757677819013912945502192131071382557181483233486881039765618348518087303995593181923103291239946249634214047606768192084184526062744296319195925195654281742132972759376657601980538186183581400925407881439644447212209089585451448031655376126869695419939477961951317207314985982133414534316564454377526920210568888727524584835056130747146712763051497487703994191017714683705617973675845072419673997271969226753289789958412715219706951127571440736039128907667178075691786293959982435240664324815835712528401956123409039008720430221265751834910935364375431936729171019739552662685565540477149926102111811773930261178415533026293290937122462041029046467684146221519135384155871693544926892645716569726383734868154239250027978297288911469485919331231750573503184713668577300986383725132438202009522541559756796137082597830254946701510389861801694965527464797461627389038918452819361279687597402079203255269471205095303361923167120983013446761292838226516781175178179274480813803411925090600112002512282772887370341545452901635799709604031591342137303359715876535828419173302111262953158895836453776840281848903411291867500341563755025247526167905313387572804839183422843619799585159421593467956720126930583477112640293339096733370167019006277177416438862923685548932635370628435372695056708643652931879751529878743634983427168904567473566432176184052501235194111845096041686556808499774987535337039997235809727578434595674427531666176769748896516573794419318195280329372976936302340050995443548863523576813056639272846232079813965503573328907735657992515940009902314864708345385566051343973306032678126250555232992045431569515645378020354904533285464639700698440980690195611506979961012491960468229135859376966114458443710715269271215790177781631530796541225451574356048441337670481202250053101551801164286206446984838640575783257084672148591304256336055492609842737599701894211152980260822852669654647210774425205448094023005645170624530899230404110725616323605017585712731324095780309093527532547640830974626364735280531997207741633681407547227029877469023459454309024919585527200119201266818099416841859274546144420255291947911990406633177959229213611351723412894376691258638785350746290564274573449775759174330239505418049077768652356687650994755548283232160593740940498371700320803805925334346050672058057456460072134453679133900823400067108877883152175261758647656409586866112688659914098009750191329155298218326322354185480340801311124942539457246067855496079076823974527472399613602743598996840394853716975564687011624653185592759942218135593345957904236935438714001948640220430424362009915103533998825294678932842786855535243857597835792935726210745916454413079255949983893240126795365275399087223272434705392129369498339980165987417163399899927898680329703098233067760980746585086893993742254773702167636549900456232634974462209450105222357979809425629150770234268588311359338858160348936491785759417037070202558928653713370307763840268405960153141005603171152186738798915304138009893156754569939509146648613559346867778143086767738264965325428683371437733116207246705067707803457648295448841825482027477449568709631840077669647078301071102660854191435760791653260620500237204288273797925770844309597571321879775220689719650218457067979715033493238801787008290363711639500254867477673424109693429014492538385914997046357323241081734427466417922478465265262341130700274453054998766761388641629220401572332620815314247067633594493293956839402721963010400049064930079121178428087514416574636742821405399544587290138325640613827030176203958092706078286112952830539804203947241877274552678044900082951234004581691359803716219639434303342612595239715341464125307622953985871055162000072574860761416195042748486128504247547688206005628966160491147472623458479900676743147902602967902649480107103314071714948347035059273149861655274238629595379096128244263642973878083853294051591556364911171309173809905759094886060122260683628893067110219223307834965850275717664750832931231376669140610168716053809060656412369354330802093957983199071564968791891185531695809803237980551572053631157410640660584800793267114756538115894780465657249833646891990569551815410968085160295578075666937358448088168717034811464932883847833265095524720235205731325293916911745712847362464642254990441973208711135892071670739786649341166768964125572381748197004707204518101718816310878829639890183780412124148503417735854107488548975763891169062757792954771062407559814884880236737073358797984139133195698428450028004133647487805210360099263574635908550559934477595344584266143034858784082267782201412726769637528725713136027712171842363744193659035615103347762846816537520864113623451860594377292439631790788541562371189848479208044529079106796471431678946774426635077381095303196156317660849480576746807936002456426638068963562722176925800997709695461359915243802288465548772254213209416214643515717238036318398946796405931387467791665128293237919295660441328160552054678051823272742959070360590128201068336640433328014437494935382007094773131755301453127357589881378097670837380041173920084495506202621482657139215218501465304706556858019596534383231840711519580047645030194557778032422065560394199987289876405494170142462247682996500360046616291600587380543096978104290712356133183789813156559701409044326833435095411118329249620772491145991541175956296017334013938549826772336555482563063286716733183028409508830094930537617846148636442316442916787460686401089840150606566889898330992969466473017182227088793011835360331085452583722140674634615585174010686304653220008839323185053353976294991737942905014123399590876641002368284533481336196182568520639318049386207404833270390082835012697698866747226168451892407847493282459462827890859983840402331508433526667146209739690261613878959464049304231889943390212183618172166871064799782701324563049618165492625805402936365283149064663345815792039353536063176021564973342966091501837593781538005694581937198736811404619379788483375487218642941514862047414298153717844605871941389034022280205350578089089420782058542140172081038597760916412847503756414487963959793573099971951937475405390254962558177929125832824662856376054946975093741023038363894386680345979102508407722016956887848902392435216820213627763475363951330833877801203773354367958485503058693074803043150023943409720059022915361321554675031143302033961469257855971202277049861935081640231341697395582356778820516816632682396498243828506723656811749802903384299169056500511871984400356613228664712919914090519456714492697197792241016814584688068379169337599956025625367742253354657281532517707911474292403091643336411388866808171254326813019303234000735659535968380417734256386673189284661134060612724103260765073722826810254981252961887231644552642574976994060637547550190361263550082193015550771222730574146104702274897257542466259385693368686935815037674687944085822078845438456435730081420866091482298121417244582459044556283257716928184370756573324747276186422210965063105143599196785983194957492568516507381096751612405933068931924474915243688901562349081845444654237709226287002942185618337220663109346490145140078458157490423131061759604173773477701969215265149523478523135417444476890289967266117420687750779502270474585940047838171345803802204769320037240732092484380857770354567124092282849162105418305886049161848995110317352310949180923872160616084697118352200466281299951950076971275167152718787139296000491241157064142394007506089673440962545041637131895959655543938027391853950408473677390335035088949057261179778312592375543968220264325421533201114395092009414126444059687057219523296471061439589403345979551087882642541840507228061873491145262579125020851175454711051090997581551346694952201400468362587721708626052629272941426497432610745547281638174542245049345339127259588225581996942354031614634233346239670042024925248039023324941998697835194352016788081986113979799743703190221320997546921750889644892448795596110307833398001565536448204356613812564949709967557851033381806332756950164155231392132236527446469778559798697065278753942612345112492219041003847465331540940454136903535120989428655741523230932474491876680606440187325952506007016743758075155926476776845284878792132007104782627757953716723891067456287006290273133645051723054578462078981923645245938118333604127775933429340790230633892814319589052726516091708726707320796469729648295907121546911064510036066503061905422079912050450731227959185681978819699454138185737212919257082130116335703798901438556900905977750702330866684048720515419527304116664275250891240624468813823584614354602908975118571625020886731170769338657564815697220990938875639397085768433134776852252432705188131693013545151605031140839457289417003943905829099989967185926833106888443418759972304701591618090208866030812430209515507819596603975952598587934806463433615060590210638087232002163010986720031145114876443108760373348780470881963944295930013057226043334332632606135270122009421059673367452359376332411343837283763923960970116254824472836822220348812545481361765839259580668061825592934052434356462629945409239638584686832514600057181690984167801535809837384870175866137799447014397096587772339153829603538131984267990488052518149900403742194953284311222205093655973301873121510218768384158407834882445860077689187791980102606196195296275314994215337493416616349531381394996379574272153159449794227860039462460449254816573286453697063871425477140778672690573069175255225514420529320606476606206190519515901378891867545637316762767332546734170551073613160974796900330417309564344268772960276861792768512674766963831397114720520542488145148645079588018096940110650677924551843169747771996110097654432926950645842670600068874685316513663732717596228222887754156784348012869475548438071261609553846972711191145905323095833499532564943913942981778927166395308395458706480900167327638623260698104712865489752014141899448178856861276857921874592919274909394253563252782441212890601907074986793660834167143361320706658141297326710578983442080925979247506663960453287241332825469514522087525552412250569576934939474116131937703797316657170965802353312429775329903677726802800552847086295290767013583479863673831594715706852667006803162820936213940691858059096224861422997525277368622464100887686763246853586502216626777799146261718130541756005028158450089573169024658265946076384700695490926997880295881044267188844236009199500339613934329102887330172497950252467943479141858388603808900042422318752673994820963402995460902845429543848545984943282984485376972292745021978221414910717567112308754700483675884072634159738278531455226863163099597223477680631154587958578186704276614801310788841796195855335587510304887104812767906524904301436273480433155936048310553146110894818568025917669651262696144238117398929693699694103198563785931456300270254700078018496930182121541606486910436451252739517264997978139914889856735725598389624459011054802416984021198618629307778329704889878776163114603389981743856254986513551755660778897157308061911515978287120892527455397882510188011546536535473337840357610725077399269056176273867596186833556726479863317490504296807835405324110954596359959377058294292222260969911690394251055308812757037050869093734005856333311658443681232692036394674866609951914664576356378248502150446844768153699143441700071868651462686932664108930232510555232957269989360197070574300324708182638760749465832192451148526883792578715972257003896391173069743904916838556123744481617422066596893163085837109787769637554785117774932834358071537299636758813578866993501561076568262014579786675905601211204611759017521475599956372465029459470153033082500161346104599666782389968726574366788216584388128788679612548081629714473421648530292960629432960183621561350340620004380911180278556184845820650262101287351951117850197111906819993786881033430667988398964374608461759866289307236881827236697053056277710478776269756896219891084891038306965022501228610400785409448396950606370416511029925359845484079476159159937612863397830058767365890399355682798128288813412013958713120714680301946902798422271958645160086393332383242168080780056812823193593975240868079626863654579498243339184796364865082363189750014928828190712151775438091513145971381022895876276574160002116008289036085394579664755561817297918191151558256244302818327666974885265491079321463153523802197774005204909949622759543440018598910897657747358701845161516184953833366539594024639148418354444111774487851463150720906261479018066177416350882608029375901310599495945823698044192249428119334738298185104278878184269871199681818084502954336095025777682016966762631223661691208704877943529619630664913703021008218925086734727474497677715273667269918351404663324473287414491445110762090786524392793482615840248972887563256315970989851495657389945918610414213642930877585649092128969014568344707145040786979979503843276215901794686596661858296419119901556434329892852557702498089152844726092125292403720669892504817787870259190266618701863108922259776754899779106548007731706008813889832438955278317398892602013856877930876937756406265307778807892754508894271927739900055682009021470393842697168676298723398347772352901443960284793684371180322369506803933301200288950359997190472159151032204635195410252808345195413837247740527240332763831454113493098537232947069679079945055610448225020797904261665619999901395675327211272060026139132467368154808551526772365884235544276648392263673729517224763947200970491892947227970708436912354006504004290844484665935471442189681662746997774207514872937834067504537645540398908542533562077674836580451765136663980029148761790028819003061879359892698594715373190791298930845044397387725520145274032769177690114119956341631424268326064208478686594117549095654504520204569487688163165747358281758771540381094496758966407228003972726663605082379968007181409901152437876285400435470768876002732117477573483803775305091105382104475423728866846445117181772087957948184825146912854326851063372785688052563821486076410487334047806020350413879757463032118054512176346880201246622761107334642039940492826904873438123932851772018615546955600677499837142214705181491134082827132221249252423496281055672989987925342674887326569174551063962275160298664039627802681404755059052943964366540378183647118725325867390529721636456080218489365239155483384466849090063662260997172259007203853721532428327803931980162380232817754109277676893297854528906479623239053918538552101304782974178491567145649715269412488051833421609089077692972123727953553817404850783128124042751254930185881312270401547186892681550326763623098646284917774854212608700443487282680991668951168419334495441417161091751403363465248251761427726885601309089897532635729919649821490081110226585396588500472977380569882772901695172896387299308154945186136781499031133461935183993550729459008638948358712131415433415545575179312541212756457701351592356433461332641927744754101291956160582296187223347312856864637298726090056610708502813483249116826442850032913522509827251818166355479397874923760656992405011601286213971520013356001472827539372076399898665107211154955392107674601696483746405981763973577801881642373862029038709768145997294631663775293961608771436658221450841612215166649955459747731700180215421058776170337218428680163205332632368622712385277597682447344681181432586280998971076800543745414987296849109601058563400168020146760434499245272693380960118457695220863069989065723307398911592145095067371555194740902021277701578318743431132942381996659367563052675104053207464107122312705157072938141949174609103955964877053244805114580528028857995208830731438642894178161622898848951558695038759302040751164160840182969323405390169096174505535305786452922512860708184359828955454457439073912749433283122290493662094590664479208568150129191835164080581762294099389848850050459414592813514150468267599146973263378673630490522153564841344372596023939927857422833263328226815528464633853417192153225979214994862406779780383519576334592681488913434141632118166183668835255055786641405413502595822160451274899811927985621428053387654873401087969782882711125919096602003032861472782938673023779528237932383063174260693131111975297655375767411758760696395318507792738439312779009024164191428396624979006626532579234308184867694416240620562134539475147677572132985454917711522523380937831939564143860583404304010719560027318198879703821410850853946263042702440945683971882279245422025326990556764141983427703217639597552124345985312740053524295719600320505005478631656215480378144136610997973609730991040496692074812474658429061685687397509852951054834381689379383331204972362698314369843695739787325685195381731188965611659280246695842321121586464389293915978672533301049165850610310966620691584218350880548898728445460634021680626408974297852238336200157944668462050156737714898623672714199537135286972802628783373889132638023374926145009956635729178484613819951263810336818612599891821257557499307679857011649523760212484357135325996352101684045693669527218751745637301406756540754496356505448753933789565363476468324077141425669397080793610907069513441855074356525637777415144272836109305254305032447301363336950235932941162644492217023702750285470090108047318226630487351815845407930407469831771030687789685104810657672927438529088458536031769594464900985075853386277826257504788717776840620058662600083799641965602963309245985966157414374450974490286960477189766571424993332278142610278889502634842329926484938490403699414861369463636798566889981281629530430618548537299215712210178101261124615766367051639847135550982201901065943317457617212659562520221722429947515047307078104575014790251704210540258539465300338464467797743421711864588072175280451003830641640343937083211146297407236148230577930270371503548018277465661906547535640973579149639369491148904060631954851822941204946713466420721239337393194754639423268579881988988403424810494121634677668761679183810842526449187587513220661291385927131082388799315632888456093445907784544990669611352297310838251314711992993936947216780049546263631662964085744371949349892924112595932101474825667633713534245768487491503333507451541069630039293217836311551167426016502660464800482289667115100832140760046428912333319556788037884395126152036712825767966364193062807962218219591795651936063660052452934099757353188384593728416969954057368096490794196085878638365044846022671703712919748040342981328514581236817611579591627042918310526195441993268393350870855039387156225134865051722053146259061721459672298702636991902710516628035494303665932450911025536549376461792398919286732999752946011725306481792305188839322812818142147494812626259603017545335277771290960742841671476717801062109713882141563570399505020140063982827668588409716497838961563941588930510245170761846517840081631451133328918082729114146780987515520662008175418227477447904962956616980251466199485820143488733173016761167477535829993155805110475468016081126534385405922828216884312181716005292293777552015059071454065040063705462295278543333436335767371263806226142049760132109011153733077381213231462673314416468285074944655886295482030402073000732116226563876575826905188277586539673999520291151847381691252541774468255635063759221634516818365244352263252607499551447034768584868910486394967769173676487027082953180790945467204240885433391453480982467019361273108978157493053693387296816503112892725067099906210260036984588108679614191740604509185695601136371531767990101478273907911216066865114717591465171677485198477491322618186871783149950660495745691975000010012073200477986038291201396791257548094987640682818744254087198170783400960521233616116587670789812574862737797387234502570140705299034256057917471014732894405425525854726171412273625517050377064894851741341997960958848820659309499984889572232326100959947945113332190510922927775678978073632576171658004243515626530439311843540032328217269400444535358873389931135293555385612398209729942876179614237689080286079022443993074575751796347469243911767339376355658920089440167027851207647929318800934041155481375649038736298533716340560143618529693102954248228271706720451477073810342549158182210063539958882690170684974899562490326637508659611895874485848350809656583004555764603212720059204501105627597062087929728372424244619565955205220557389306863254359572668293093515539989367555322182482831335589163497596782317153855614921515230047935020419959742785524910601124812559411763249143847039393308913727962998087261264847554601292964291731173713303351851450050480341399685661803174389869130498097291083710494597952066801361192339915988930962082657158285965661785616262702993117924351853048963997118450890773983040010235879871171361635610231463871182678435767302971624174247070781862052355471133863303202803975208116532560366425159576983095629117648410499104166678069213268154085937455392607134789200574585190876448959765113330812340096489993557512682003527011889409074476935945263263268845498233724910638938240454758788349967086431169314684365794809837972249025111517513549042581003841597424075154944608045358945410181774421703078028070625971176086881930619925837012383023882666880042027049993030004429136124582398754394273823620465949015839706530577107698433806980659096497409071329188529054942746709759315432272522954336948987980231568062103326165645346542767857121212135062869135537579074086116273510206899893264341387196301930903929589646968840509396832624126330275248646889325322991672546882369596089463995136967515511957789918112881944942584710753173066369062527578377673839860039687983853254330393139971062873149022329209770398598907829675341940311047896958126510040986529444384090590996822517784619818620110585770237683359781191077182791085146596975530153004572581765736947789907130353768897174997828224789495121902923198936792983841669143174091581461068260482897258550180981659504138456130533449889640541666036653887943395087942898041325137328156730895582438857468202566673540068771335771765792922575689779746885623163975059257524011097407068899622730600664445522469747768011302647884052255419680527368440432434772332343425543685442408097207147629097903796593336594471406436633407778318978430037477489208951324007363143640302330966688896714167768396225581373886912048597950709332821344380337764965220812148012878936602337705670313753761578939873007641245717158121538690869261585513783716324966551699927956886261809910375458713071747713512526905676662530936466095096756615796961839229210615894162651003519383593971444078937919207647918039288184810419712296628928053735354710246597009645929467207611079073672256749485475387576719068627062802847130106691602237586699161215030653281990413069856584584552027123844793172289316072540699640288446957028991599316626132720272279916134332100532073805224517138372448894944651827482411037438489365859505430919667013503963389152853888108659297412247355877388320543700503508755319258118849665183763033340860857041253751110429837138929619800967553845176947932039939893501439858866498405704228086506481131200751115582164476486406805323571415343155049963464512875260371537569288305363965974854513424528343457074147608217462223860634802468345134381671992180830048119719096442468252745490610853105299870181064763146361633786678767718779753722982892924858662207756373002209723940186651058321256927777855511576974235350554771573009511567464933567827209513798302033577770845746575663751534055786223667007595986776797280655617367653181015178792405215808119134713239255189989548998062306190689121362755490980067821767850804421832093614323062273479393611129266068718098472088704151614413348043235488965204444166219244294025382502911531008095867627468040127963896296686603568462289659767234453280393918321410161658499514227730936026863687226738025712115682122346141801989188221850597217459875095738188372473532021083655547644373728646263619064097615584975254395313725968334392729596692070994305913901294556314744872632456582906921160712123076147036385919838642642858421456077937591886324762139958766187102377653066675577871871054564660838339572034605423963194585153253838253862599598636656802594840515235923708713791302496197837339510905846778474138127678323661924582015095111774762994452273757816570244640903222438018688350229138833947049066364851331343185042124927709774845006930036551793971058790220097165251260659142372213540839421291845893714301315192111165422444324014324226544088916265039026942922858878617869885408538355195879546171166107625081506450600242212827147911119911498446169361702330541763950376582974975309312251932124885118768447423553370393511493383370223624848514159198329873476259297085191964619086171207414320202081251781983705169159145956110706526862614823578112460182383612341730041685965737994126233560555894813044530783555795620458518871480049952288167212370163894631985915376193898287292420665736247136750762902491286943533991485741698540108815287997136392316023165772705943875444712709087344030715484882041154704030342585718270822219281478509639013294198722931067158053437250409502722651432860790466320199192775694221955646690149526595182399946461306590899772433979010458860818716627328974127187222699442852630468520982353834162731977725299960182435174821945153425617325881011202334053379648365314345638751485118920350793237198262361116065798738000128059844996144111419910195751121881279660770216097099915478984952392688970263296953061913625685525441253181755572418940235069281030930427284590637380523648589943638775301610192917888613084401798660228526772787478085837026126708298369427036969706538922142691006692178013627755181721432458213786000635287971670028152142586932098820476018590358591827855627317535994495379260044259002502531791562689852937643394507165356040935852744091324086454125562828797845873019936283412312720173168763557318038866660374295163815655945603571601296150423973546627547507539121547391020470888997442221612314104732207484092424664041847175822488267530178306193375481307514255193678403117282254270036105388905300211270188549297323950758447168815852099697849694071824759176125857066356178119819910515909689931429125232857756079731528123932545657547055122463125262777374104792261452032319726309152016525147867526589900366093444973804324186737225333895157821595348453069557524440155064749156413010565135676095180722289520749407928930250089887902765595603687341510067619584238457694629629029633636200130161591265256799796407475108941739498781061889837420465912425541653253175129265963085187077463418559762069298212207104754158235788854574475217242926228829529554312379885224370918904408980368809088964764965083999938961302790364062405932953120552065931105534981283118300760699723588436014732664078394705451838951287098085511163992692141311828185802432153377201397570273876780710831222534936239206687343035790069382230208262530244939837139096972046099312149101678585064257383235795911118613154262306706101999915693375232286473332300574052118354393492354654864306496711445667902514605201754125790112259515599317336535807852261909442566687276743933144340356853079541624875350208442081625662244349265991931862302530740280772046570795695691901192419412170063944152664730533594569382238546320040015816700524956901912307652768711505281783122173859388078214437878962070011732381681063814604853022371748068438878139346546269128414040829335952293251244857511119245805173827139405603686312885875020882083050425436714014129786181314951437591952507619134075132459597231430300862856114999375768923393100076953440723038952160905322413778235920570427105992731399497756671167743120957341399163710953720830164808392658076288054380634195441999427991548647041253745316376647186746032686662413169060491593205769819871529709292458421449910291923980342451462338248523701257950496761414810073713495135335572446314720063376038699696007404758980943078891243125136553995661378708746226966103653022516790300421549447107755081920733185072646412825711857114040982953447421401976928809997458820745355473762804280517457409585521139346881480041342930127495074588751645284656080541885190449336134483807138665993520461228298503695129440367629237863312935928682564464471947338577669222088636865190463843964133091284296522032894674657421845171158916816599087449207283456563218354208558925450634166611683326087462118914641387640833764097937841170897421682594756089215050131859908026443848612722139297147708226320614021952428478509842559750457550447366884524153691588729940883375927512553741804170334543207703733155677550718216031315668487905370132608981935685077634977266282310010695711833806135582869450258086918038247485086751280181410146872137530426527106629952223864983471812351989148179878967013592061140377831096419805116772714797394428413770101709912359217771952325305153682832370356609608578332369409434136167974847745358773423211279982442236347981784335489070663060722639610821164780191767933584242527428369229424291100912412549816822816036326447412271248790886129549233605768801448469405687673592806375013851948623513758794462231458653387942543141964745685780875216231651102968665026785066719295134313470766176437425869967388550672833463767597965394125678476792718812571857189688516371780547112458092117249375032703565299729676098546050875618138596581104404606331170597050326282847555823530676613810483498198775678130614199570900308571482541915687186462481433908027906349313621453586469984462935124561814822506324895851794645608027990161775099667047242519135676466794285558808909855701679553675377750469059629563586075030048302627798214338441488838551457059134949088440094892708958086991637693719630588048603017226109921304219082265288606310019179474160333958415140784685594907698772037177663934002188008267269107963969479251107608691379502829180665329863664874932125630192428665586025890925891070534651104667026090484809485232981583160094167357284276581190959044675718231982140573153049844518275601553273565834573597887888408745747851228481141446799696889115998629231857853511635776398465034805706914185845597659728467592172469122484140765960911939170792447120502547978926091118535717739160107174591715969746047017887406334495527101376110845868735688873853320464178924270203976273958445331438655575799541444905510759227668314925161692236455813299394159893919951165651089356162820623992885729392884286114456108030201870329978736672382950369983386696426523141142928468104694210469380100832876721511986776798622342055949882022951887811589826821211855706432618708890780752818459343821927361226802175252409563816530530974685128916771595863269628580741913531843228595451522172621668534327679202971891480135428384607890751283560245872321160450578177153762269141431085965958941801504883617605154955341185713950396909357831710577588275867094960087245532052215573045051885110535346117184469021001795437147281575857061935077245504095992656068679931601474639201830864804185486632202504991797522956787875505938538292256070373501946175470924812665228474451376094843151674647920433378266609484652020631345482156541853883574436696776678442819392714300956162512969644774789150959508972059435776205994470880120265329237529136604274630042231762075650114153295573265920832732756962911998161268957101962850159725172175936838431025087996175800352853787224998919611382499230113704698893133740757846158147055877839933712784024708846952757366299421149695522247937839501890669141738547471402864119368586154168928333659875251251505855421729071198371985983863082006295550325603401565394691655356683888968548869362204892486151108703901423871766880183430775542450537074827893233676187462731985251363702135955030330602328593289011118330188517773013152945991768660901442013820467507475283080153089923010719379872567586954820737976690225140034500833010899098613540897964782786917791250331090098905811888187404120680806632411397121381890540808565934717087609481550778010588355593908557630425019470551932332933243550236980710226173885085905814084904246054519001554458235884258390006104710280008531654552361800509389124876449236433246389544113276255048238644905083304041348694817071169808684535623639264868827987978448987045445803460521982231278726903972245823674513632072633066154338923656598688453547390116036541549528057012318377325267280690233679809556451847231382641925734893747188670703256841965521595637866416418572990287823921915633191512210737251207012924832598535244714483198779442894349523701612216891616500555543671628043938599499104024668853422896724701502441200467686351973506428477313289722411172211026527770994095684159629337559727059760090549594041879785695891343164556447775690955956926116673696057720396498289175562906964425387796677650658893574096258061839663999847281113759787661971274849868058259312502553002192425153825586831251302653854802515452875816908857088837700288335624821552156790965050993293825133229025861320656861020372850119419432025733441589027922675806110137184455762876011775245285550145963147735132155959128854491530611798768665295003688871170074790309955036399648950330353476492002707139234606598777586905216985862108472622276453639226675797282287979165121671639652585304903131663143882664435833576203058861042215855449909495387439843188834388262289262030201853031419993216152277137352810214268320433829652753897981653735397820133774528112920769666633997847772099765775966116918059014865412395703898080992273523809362534111011819793247122911644160121632073106643326059688445263765833105977974652879370027805367194578806462336539366829237007973625400762853085808776086628603386561621291190757272458879036767046314797451426052037599714204216169998271633039888673303480270252169229575639856552903525433233916085745570920154301121385621875518752032901068269694269760392097082682828355480776498920296814930201602073595735532745927005842978590762165464394114906603779329789670539240510882712219997932326979218656049179763723035596056898626554476782974215501279187522788268244352781223819976046521403401225680729200872665748675615859734401761194014958746382602115475425274664223169396138680043190802531484203405287938950552409796895036223680880148982556487424157394907733756959208160738954667537222193235235877386903935565330537097666240804150786302412947800466045640741496641702251334022030793316309541732535962156671113196895077384013809115386674942467487723347742209243044215508575744576362737411973030738134455299630817606724799087194246535241450962860892161528803797598331917526765391073406617578671118299883433594901474788637759813073337752393969864019507198140404084821581341452587363867339713145024565855401754328386483109356963239555056889883856332535092081436553331927866109446655394052245483458517229983721235946453382476710358982062047651756115555530502675644124604722094088463909678478272006772002228905563988107140283844796973522818466319477241728131548066239187761895231797695189718795766091764106849981783894858763081862502971579768468611707482709199330355716215119149161275126330612790490418837923384374465093814874588601325118932708793733622850520888021755887748097423943818179055791620797781593079466672263020156866445967563442743693925025452381005808962264161907020864269792906428489954850242297646102250551017610175454705931053516771944418233735857257963466300694751476585478697670250651554629927206159178944713655234061260111175431435977189803930028331806380715376682600363420623755738639337283432859135057930590566976915099587720266084951654664087156342551085544611734439235391300918783633821219978824328146260431041151307535011102318059545894775921871589611447354172624280794983708058111123540139079291079490934508052450422706823779417920385869342744090579596839251110547442958974264424896992163351181818832649519068038837033886093421085962101682488500145625397796792381323202996779308287459610553419432224096416942187945363780177651530424979606299167401122914182354012652453667654647825863239014658737572310265428780009243506016758024103442491613205399740951191579474209171672917729411636928849976091209534357569853565896677767179183073690295593319832821659379655571000711104507561202352242030811557931501275536553512921893119185462040700937243728513699913086805870148426243831627170368135225367863412199625117036964823528439418686731321028404320381917899176462058727670681830524842411514565774485352512641329813672835913493365798224047277784272502805917415466892366187076136669072216862394810787988832970360146511045546275392634583104506520839723536776820924195466450983069099052585879373202163856322335763088565585558652785525783781877751247830467177497346079081170556440043089850854396235431086032087421917402464904121706403846996252375102233715809074966652275633581369114887993649954279553466737764774475349391398627246046585982186733778731963469458350978321047126401920763914555550977474237669432467097278257186949531091230163290655645709985171113555550852820202265243262183507182145255698209357413270251161132296063729772890279914364803809099102133799825778767633821918114496131454629609436295147168792910127654093248768876413358428335044345823398327807486891772599069393868846121429732058688270967278518616264564671972684425771358892845835351981713982634242383872744688295932511126199789528275702417076987081549075937812776590961225775384549672838626358319856792366471675507513394864079626762519128417931862713726120807777434086183014499176279304239717380603033569961089673955498272947972396407324191334027096290024814317586747760526821432313982732537118555398747620307863259012727462312590074234342139147670216026902991984013283560324413669079730190240693686559751290482853006691001210678632356344579175327369907533407966916282134961447619330778223662928544985908706526011622760418615261599427729767856399650286824140218892887360658961376308695496197523363720846905612530175605480123160540874283464043704277302471570954556670793722539978929219840564102073027734193991016711527219692561363232201434933549972157673531820713278300579442558727215169483853976570984666435010422099286944935221475140760308647950778615846353065011659465046622393286967238104068240030800133654173854391626455541085914597316872160769272051615567158924008544725694517689286540650214991649189772190369043879654490210502159554321038725490252723891344323665599032940290109447281731539730825256892707893279928517567297381684566317535540802604479928167290553071690847572401808157887968971690618300357788358910691332884900363469380431929491363936496288659703311703422646221615442245901186837766702695761630465327594646581244508194475214610940534633520522455720808236711217720049940345340474221026225231056244370791580506238941649137578498607922781322407086155232106674095370003087670127537511903564051278679204709054247863897866580430861196044608214259440686233347969288287358562591041346360174565968908862694279356223451885164842228105610341012748597959780031564118708786012583145363442428899282235308065411473305876613252858840051263895740410445095179252748152405892272966590844562627534858119773373625625330891280133388398691533751342667790404425758983491222290240447243580554551864722559003895064597202212369050492814927152694018672487041293956072616867087650806167589106266004228262401842059192949078368601298083783326552020399224517379703668275838506233905455243930943489933738223553072574733788205324198090444047836438086055350521303772023174226490759277782812129743213248932457084314592339319093904281790974016645584222015892713251013282673624960730021131757122164821744826661982621066280460249475388780237472448411909641105526125877150284049291985817072011380186802445995047971819196413613401397334533726515869282844760448398719357378564396348410507386597041703039427289781316902220360749279171782517582278666016951816531497535807656423167137913646666966013524323620795614708833554856788169339231576406680572116759186292863842538148467022760797733850154664685207777251755645167054237816807099175118520703641859183531638012181626115167245121682893604405407232290306778381400630449615795732857023753451288046409502833913657623549627419916589596683352336767014243384049993345265750755102974314247082944430457360659010284416637909926987928968864391026316549869783942656108529383912398543097328491332734762871718341289437559766580381549979914429388439774370421633004429424832014230839706073633001365411512283949539243285659633714751762087508610917093199410417539495305630811985381459749560003735065893958893821793619028460402352766657548805048683332753677270308919999570863176311373077242452913408741149628985858717639389261505544357982016044638189204826491405901345699230535772053064246146906638488106787433460985154983262760320508720196972305047171992616580042421023974522252745892134543209006727284147690701298141032599370774643351844954373027842946578058376611100487520435828706431316106260901370097508625686449672509043342147858974592384262643999355623895972069522370544783428586910751596965062381380431871467054202723805335738918449307131338124285346179112309218379476974718371379536730809404458228201568892908088068473504805168636526376625703277271794803490825805981037720314202763016279037505891750099075289315111371522704784555365830962797388550084910334081368472465362724162491292658119143277797747098402044213966821993469246009530538204560407959049107289244876447998968545341405007682501841143529319934697500721543340129110854428332415994472153417076156016361513547118406110160915208793838708464099820853144280236382753706673210091204311877732075874918673142565173367413406543776299038815154881566291371784045425557897036322800586423184526855067083063807779153985672097249453185127578768974868042385401502683080587280762344682346581526201725847881454684377081945589819301955649524484321271487552196497997506588188403997163508302660011282201869026476763543847864519477956253866391887403254777453120246053048635210097603237884699662507936433223058103298257946024345286641253299746570531717714403052781737560248460891109853374537931925397673258395028462340761198906505923409561841570476356365415466042038907788012460597466491461178727178841146205421444583045557090519165319865258332502771795007749482766155637287758761377959058924422638087273642077486553153875402427897370836417708140975549657665467489915056210937813254341904741707209028385975668989179064717066989137360671281333111123115707188973089748007765888678999962661702110123274128005286295195382626127960255492044843702688147042200319941226424105315596264218267186451146270417119661858346618994351221047325219422892847214103854008076322959056595998552319073317481055921709858729927400344937974228599247539098460272020566552305504918356586434073424296904574278449151896915760070285575909629109716330704557809938872254514798526283503212725263460828818097903320730258478530544309835390705211860704389825227512379321636115532852885226179014467045563917351849482180317795215894483906914735899936540146820037220417674921368595912532376435599377507497354187578559297904698956272977188900563443198267701083098543089174489139994923516670637708333510067174883518185177068729130399680607381474930659956636183753397942148579902172853106002233033914975038459794824879411987078486016715689792841810726726034045728205573329102227837821769353699088747579066585619916152151553384974144046884670536682039514847058969296335743314885717429269831700052043114978366353264428201878624565730295890760464627222725476020922405578337783267397021523951542282669533016382246975678673429647748836880664818196863412712081593167265850459304101826391997987681694674295757911513177148716199294139271193025807525171787904038000665462090696990886159638183430649567494489391062189051643617188754400614611342395008414156142219782119545888693150642577928888195649942222270386498649895007017034471213249190368816022486659932025472721854395712754178884493184375301784066590186642235761732037986426380547945396188104550836943357291996392225217734841236372926718367347860125488590325587948397960830155415710726754549776860845267090221996178932157769539730004536897795882636075591353450620079214335909976427761092673410640134280704081152357532251010493392921105055046411575937812177231908468217550189944957335211255722466358663384687219808532692932591507275240070705665073245238214055838165806850731190479705615114552499176786769272880433042360537739871208871664383411329053647554474770891920531528011508817599506534761966882560440779184958354964012929453922944179749293316972195147721853207131886731387284279194767267465361401155584846579890524742955090018363175493403530814615080404533342603692918172790200417724766359432772788919909065952379085399183603100035740902587556497017933544710489124379472872474461518246188511259989900968020814168937739347900500872320254434527739685042167112048423352846615943038123307796272782779961387502303746085932864465973681325235433423654204824220344161809354135282697912721345519724412751628943336926994590171936251041585211848520984980288772784264906066622523200263117658588512985451231931422792148215502054311235472310354171526805759697427976814167089062707085688796976182351246278465864210962619969760681478410366231808272762972381506295024942122136481172123918999741266203919525902245859247068540852747790330186309597025155123253424350448817105645654879768947075903058524331013432163194773492993746218142276792050907723881982031292681468383062548390524241880144657768636289522765875437769835338747551617997178804589344080922397475539808950082680459932092262692454796152611980217597635678610324101478911003806239488049968688412701579608479028062491887217083297210799431656716586390350540853816020798440823265005408194395237539881128255508378228812504065542199545426000995671795991758962665910132513413584979598001376586366538007250103406158278723204409667955156655199286733407186907703755922527768501049562015121307617873651773253126580445070603663247818637769360097236902930979069630988076043876259615595408688717851460900014914410002977652731743020667514684442600983791271117158122514724502444580975733012877669198889011424961670673281477055376712171932146569611398831198230727947049518932214155205324924416319515899454742887781035407197649341841960714299143953749964086749664944970216356702172138601231563123435305560483360569738874661344338731243002450137902226971198582886977053600642625349393287668425815812228688272558113956545008444954764387397739464823564724542847943842602227587429136967898033314560227827730598978469179838891675090497432479230270743268147266738713517196052984412745381142301961799885679635904722670885516423322182282124161029867284483782023409858313121173652654276928106806366269334890393470381209827731188632423255932945292659150872199774853351675438172297505784047999782831467036238422313324701364249758430702539401749292683088171671256095791644324196284342964179483550473802679532164399682864344846971009063088218264492486285479671853516508615003053612756406656438359459397888109762973566961329312528121850110709100468708163784014688992183639979407703101823561232106466569550671032699513825463016099809796022339006610184165088538600773999239863223983705391374453047321125985308603477356288828667173453397824827734412287925341432241983923409888372478003240802633615548639593575114433569971819200077272541084070248727762823334708379744215671553414007134352091814138158478809927313250230265268842382216051191193764012055513311835507481601786248730030469110508228506366705284394236018700733688059992174699162277186459261077377299471001979785307339909787602150074520428281163459508462121411595707852436181777117981167399890104374466145671991863646901070359469236291831319197780575739169884909305175218154980819147367197937473067264374868004788473875419596802017539742324727677598799858330676923480912922432317006054495370413438505593737013440981771448065860683732719798351946720260210201234823704698189867945868983174750394723155048910259895739925923328242726445984570196921621975403239779786152750793710507771001534336006332195013461606129816380521380842362529009348258797123888551985558755114017954770208726633119106357485055072891990155619340817545082235517850531844311543241496244497990324269228165497648299957215738016839101303037773678509847825238096204280966802798754110731195123296484185906544108765371440432518531188713283076569231188921642461936546289288945902534475627466140314713759853245334830716449074296750095026619481023497658842919705942371468062114432799516457239630439226803831492688127978196787313695341436136265324888685555949752970382450308783530315971062465368480349031441609853193739222341234279988264136079636197260394062799138177687305427820616785166012328689072836515824321987726950577090486291673660665697475528431160664259570464584919322537989772596966307178659095055822095477064811596322594451267401312141055015080969577783169939915720107625071292576048134300919886419953380261062944587980765168893090340635738014663357636414357914463811179660377580996151482513090980587411182655529578988583367546284717504752530741348822120707128666585415295647558060946414190764371258600629409422606394378992334871141991341022709454769203548390843598567286364693283727353723552966973077393563301691289063837421709884806129309974516603741888960651044625695955643176844536324748352630672580668938432757663072070789409313969809964214221579570764371821202359180824453853036018431580730902508150360943110722722601337066124651027359720833243289101773669247007468885554116601462103426163655531489227012210453194474644101208667847688051604250785916744933122222991084580658023499008277246194367521691372004050550033336332983481577735414521626740505681880070116681218068307383034913290459989534536654482651284087440133652646069029300455415424047990599162208379593239696810430555879707198107601325324094444661007427283329613364379031631248972148378523996769452728200895718972970150309123967252635434721418324601839906435286674451995182230252678735050503972149865554488520945375262646202737185439715194104532447236862246146653889414792506093480331910618110063669690336209493846003872482516639378671037474480990177828355423889091666640145180358212023227206855127804922174659569919722857101725009187016212013142201581979451299688583927539354023833840702659008366637053392706326371029705742888120440528926173274456847151561776049034496670651272755424869123974853960469486315774559514847495228602499779313735006913855462619956726777764271226363442787567595684232064580973879606916059281709021469115203012797665567285534008532071292766229881110933942062369167867629834884814552595671894953897849488155995560412678790746597501397397606482795604387920068530798620851160402486888085407298905873597075072246563408744017974045492114423633067193750851010064843327880122404396468761336545184629645359826696939557264303981842157200526726439061747955794128199150321813595252443012580486314648523232935692969692145726962320022962878631296788103615518954215531526066046811006503885587156632835369956046743553866203902177153669729187298541440554158948955400886161083707615872368247944348935310840159695942632916157883585467274946352375269683647535094268633775163396404504214723245679298960584751042908624341648317208944650508593244046330836233094974113917363379564093175814273025942111951113256242469910346055659799527069936930904729484353315788609343048213496519502893841510793748854972318071258429900786871888405508890579825059028608701616294264633449622247846405712337901808370376162642384485878593889210567133574798470420532598603779129825050137610565867807915990665908370386301010154008958502123407540295277123827579032440196283208506222686031992767347163731945773534267679948751746664448690136978647449855196967531238880734104796173782880229724860988311728954552008634619646136333415262150013053404092481500258947265455782259036673379909716486625506673093415924683612404686482215335432297225674426241809911441883385575731785937545341946743111801943369647941106722474642541930541145717510626395009115460241049843936314945505209326637805824969837958363006515399975978010510688660239261584169703230259780181390646814991479491482083481488839572684114615154956588499812911493022696027542157470553400088392701828393966573831197676750360716942183407475417647314373462975632903764825656428570241910159200176646082613000396426622188008587945069220266548234308628437138435612194422035615122836355190237628920584722676141264497794617821187656079635251155857137330915682204873135222941042563178351427067493827368654605232321850021219584654523989994983942860258687957519778363123624616130122598414490602049696478291987882120071606512779319236684800155983672709703751430108826157117971055278810147492895691864789719854506122285036722992236812341716756382440990464898920344190671778661917962216220338219179919367301839511127346781752491690164448686394839487420274558014706083925460571658527348111080128259440887430033212377815126452957814702633753120596325040563671637519921931041387380473431464162339807140089607852297173523723202953467807805176138238084984391891203313417514965787155337735456776385947260990325075455158111902469127692635784492799712618677599314569213677868965592749850469239683411610598633639355536406985672655530296701456798816627638050040927591444065952200343460504710803717932426221739747596098738243278512317679532673635539839765269976771982940228531889978270575012624495972041847101318712818938544826612041864877262494130158382322240381688341513982312880629953866701058947378193118957105922406752463784211528353200617711309117249547400365408633923480042428558392243319301297589308801594513364114071028169577115752203457971541137119887269290038549931793546521957921292808036877705886903981688744547862809145662769110648002574649375837231341079150150712823846585470014616291034111497993486935798893743504668765921250750907784637489388766098225881758850143922839617578022211834215860005175490486708551872218674128539771445476835110662066388317649024325791512553135108970908430816739724634579728835373929757857197085410198816354078736759261979278449347342244917012873843272254980701465089672445927707278328977647842167730503182033618558530893694061897364945526873462822326240855768364945862422819194582853968783096096105196441279706411058758952787471740515689157756209837030368953356243348832932324561659851675736654050305505649883436571534249940943397530327158677297611563189182454953992370060828426878496078639271698891114178178282300160137839120403971831983412301201644012819679296939304647849929383571358478565068931870437349048408706617221066541016289272584594867879527668280249761986782538429091655559824077561036089350902102544753719259542827069933243342090883496412794380374838639823513113987605696294675584805790130933451398877956165380139933865842789724301107786050110025604630576077562000822082955192092591348701976656017772105705035960878360175055595940031555354306601542903565370770568939915014798953916141131075745927483565351364645486961459232805533542097541272643801407993676582997068112814216990959071496377844018472368493857986433023092162885504694657883286422372656707202132861042397643334077312155263492787839775377869968556866139612198825653797191329238080048620854836902412527438181189556883162029186074450846440270054471324048789975271187552478634316879577510723656070066934976657344590915137642749299664190663519508083970996850073851779652516178362578513515283592743665476923479015048364800094155366504463934227251001960739547391190150842560439946576425817168379653178858675247325140490795119716307431456824520675022613483359806394134354629749489042532201799077620540146902237242727132448871790401341726747257832653831141819587068554921375244844457003658088768875497315635877504780676653757748254963915905807986693280021666152438422362052042555967323270354753157876660974183838976763363422293932031525531595130826807198553300892008762270137507670782938950779956247172520955424908782949442886123459409241412079228860680290050633673014073466754603500741246324853209079487487231786995355506907470725326124445942435280347324858857139947413880050824884955098897249325511081180310606686550427116227647918239174889465166856825739142014672812952489591846402580708982158184817542307045001796847400761125806285835104875329562197725338913815202989041484226107744043145775055922954074133008320400771043552365370960304070734576782879957445707217177527824148401965135883133067653156326481983883781347645319056965593070022986158796698984281199553176296768866285839812969992374272990600171432125086077577312965832576098540397099602002100285982428445756607227548464355787299933942225885263081350252426337870799512539366183404032271997092469341849574406942739275079204309312818694204488672974190877138604698031435536753626460337021490984920793033036866897035584595466748827820863810647920998578132109331627505266475670945295856980172419400243295893179594682533242499267062746155364751057053594831129039929353005156450962586189150932098062071242938573746426997475360175948932172379144828967059696011734414103030095851034586089611521133665294415210511074072730054251567455322253078000417857225189260380549948018608286697218055110680159695967223321687387597760974568813678118451290424888864552865239486238539905572642654693704259614275781474791511185215967263433582632835039317103213167795743413978596351305253785632227684229422994509635703223100061825678597915521604537370985179206608807471450480230761269819005670866394048739070882723995338075279213244738630689170399269325645997899394334013331228004561264522728043239069012434560541777042932943136508802226004683738437183148612489753863346381345079928156274381463362418812460139448966284533486128100790404389502401326863489499282450192916482250524897132790354991896136108993833322620163389437326401802050751529449716758574292969376051301148495412326479657753527270283966425315045070340716186317740720836202510697298519768079252347034099670571592358179999179120268392982138821045090279170467569150325644789095979104124567913688252955038255216744368477495558921297197299033285077019966912265261477338085814927980137999435198610927121771524191305027190809534375303972551816630978391868396726222956933398917615803888916610879285743011659859938534752757455991141589841876327585907195383235557870582094203059842401939825400954222769461350742699802990624298475997158637828712678590116270151045341056930750480245858205095519831559164684510312976388088046416261387717105251380059017307047485777714802588945900000478818865830807647100541305777022670578930651909800084662415017203907862436515330122602999979920496029367610171382972522686337454896748852830109988436300909802803465706430501821388027832293675287799183265747870875848935792779815665909981651618167949274335194956119109149339919190656989577655261364310674202697746563785343766383260799233770603169466088378521564782176153833779981595498009737254053881916475000215155313810638002740819522500865886292839820060992432078636162946181397148534723340202102880691355071599089295043743463739689660920570181311403694684907022785964317578511940828013721303216668006106775051192793815080180306774291910891996438587220667687944212603775924244199710957977004394099610379933803786614535016384926155898135407160641480082671667115956202813495574795812887469486070512452177536304339106389128591958043655814013000614861814456752199127377868655306865836540381222823809683315487070707871073999494703164385025563091069605939877666626715676143819453591343372174002003669405585171466213034997102459016404488436171127915356466209843508463699917031811673365309694628012714293850090217794543656820482400128487472978779679128482055483111450711220815315025599602618484802166902219145523662280529993958214964757804948809946357695257726188544366160889515601505814988680324620267075572435720932561232560813396063564500661960151365801112496129871972707789041995115015351987416593920573903565702049927540352960376265204197126061447469793382371610084251155701830317448588382145548216477517693985850280183824113897440858403485379972780073830467523222959917984944166068315017828208752414824363848024787523244836363639476033011331486926541157204494494483614923914132501472532645589081456493312522864903075147817463283080852954297398244542118975460657109557667338008715138435685105265319507294725611540869877404873593280801558894024674636802342503221867906389291678474418260128709575870245824825909326203282443857004358554978224372556859231533365006278435540943827761046215114051096210869412282042307553256933668585375873487370548218172656721931329302150652708018538516758324364596887222942500217001012785300725531731576913652667541468527450863255317274623860189462603659141756693551296505442809741836755041903322339378878420552321327357055541791065953760446166022085857636484118119479506311560582815615280566565622860890462558438015474499857788464509292479706934915180047740167435433721754371304728926339218095340113746988711084454692713893103499291349003275046897797207090010245979408306401741467097282862165372895333025356987493771458729993285249914356448647180277299583419309714188498385480784122038236342423109266530361472845426809892121255505901004853408756769720168077563927193049213325381015522122664726872030458673055533122838109583997703719191818585018118089141531844283480640233898806623914255654080418120958639299320573728976780784564178301163279210221762011998409630796503767379952032165808000463131752925554851495037747404476480424040479996352119074427030311473766439037145901882439763600981432612688870639501009452614812676292835276429431907574301976979757269140148099992094496977674299085581042746945178364864971165711101634186197264161118724604443372962317858130053698616442490561955568576532334571750710587268492866360966114216699367877549329364604557380913979881611662148967702684359595827233097972571031982538502816858440691532264607572965608934605039147827734256509955368350686894167674405679483425664899250863922701890281666108603282057324691609776123798156830470277673658367181667062810751508741359439127963597009171046429398012546116831057611830752122957152744571836170648874521275502744908288849664987059463499732757815459938486719656447952851428153450826321592586552602567923374321733369307845959604520396367266012194832739962512736461132905106767794523596506646361514398387340073735484834196437440348245011534640342963128137391711715519543767656148401696995740169661714742744564930043182913205605262649233384760279710611835833560054056100279078507514473980320934454026897448712306253057154034555857368571904534227838562135456779512914145114209101632240735190850687373698814254998502728075539437184930622436362747426457576869071122508769425106092073714538373408462392153356020346951942587770246038666208537841618535565063529300778110832215300514653598184313499373139457926328116727454297664548774657931960927010274194460425910646458560470784010409980145900896048552244300289994409928310847286357202763673600548398526770380984348120418637084321776290974730148260835145864715182215945391288850441007207383067992351969429030841100672488854437720050864009978040988206123572417229179479646503149240769251392214878695876439271669045604175734384414017546145411056126530771056301161400927345904698343701721542139710303006819051738219573284339642625928960502068942273978516147601144860768616898703531019800770713607690933141155629133747947460711603484434379478956671936698351195479596870409607849977534058196313554093748136275581666840388341199138510570355801935873596757608774539408394458295366211453304150480781218365445230296638740968099527762163184317754250368910369134173408821868321590044756071323607792815320483747492714211592468914224597262907822486753578979667350874628333398251028942256593605123780892273162535772061026364594366881013921268784758232777637190256348685910125121436897512010097552300431544853377908704806879052811408760653859672735393653327880022759826657790799572735593731690687654385184115076880054506040439670241346528911670681781955843479137103014274315139052492452772606669251678667646730035681596965279453868553422963609975858706821168614123731786825883954615288618626431772539803859157004312133123027131688802967545622914982120833275695254495093087065573520505598196365138766808243987286409841213642473733444316288093425577389717312048662016551972767240487367191153291870303795575720248708222041801764600400449504079140491799415394889680574278678034683236778434681650046060311785643343156914939983358215544361115149684223674183010327292788405556407618651496051372224229253969109220134482161199709066025683911627642437223341525741236893565551682997357786157837700571813639470493788811084048522923943468486103452313673401934841897960135904667003412371878289226785343691393546542952165245011263646800595249203219577033776911100988917249191116603516073263313286809369757683230334896515963067530523470089263605245055088840053473793332902864307172141495189803238006288886741170855528004971434096638534051024044645076246948586188728721641081702005030807651061491164779476868192236425201698488339154093481553113907112933168208190235203492300956625157088972045202718766428420078789742212156705826358024843155243855296365611117087787364688838529253100226990196380521069372163216105076290997336645915768295803585189349752373569235303216189323573485477324298114221896393144327955279947172801529933482941844317351154312721082034079074655579565368879151491270067089244888405172285149434745517891481170428197728585428198733185715400961302784023492226305820684607682494337264681920070406166446298391993801445545626999297641945729081973092499828723924975523386047714593555962792345118605631080405327656318832587384333293002747952480560976859429189176781914241032309779912983663983142510439406894450547772405071014222821937264788849503451529103504518474446282324907618700387977383690593165007203870264840999926408758854414649471306843952853619578615043576900275106958531537915834393162718991749965906949442642890890927684314085458861807354450900558807392568459857304234294882778036893996023896783165851811877098036391608021577269456483196101850103252107953076525846465556580479413801352652513705969057684149408275684511181968888038761476753715495184511104329612451834627591208120582400410487579446829741015483289032757285542098576592039191162341861323758844997115534472174489093186581888021947808671019572712936591864138702240149113545752830384043772141322999057204437815369897366593783431545804431215063606100383220424798473256902390446155415385443293409546361866112657195957741679053698755962411994723059483366966462995041420291851384751747521839414885343359621283074373035133254550489070676689883125900865397569709461478405908246091893948128321133073829126138370313789625743104181492727822150605753969966367661036740104660641938561046578652955738523499999732535811378695354903006086275461434543343381652070112205857837665226547699141732902514138601412993792370833789362493177352880398425085063976079340520076376372873948580566756119547282335762790704684906625596275463367374555734347507451700136973229838236349355698740172028290898552750399447391273731104161701711856219560091981085290348873827698782139553930560467081024343029368794772230495958500104168404790961817777227323618642938015523846674199101800689437804875368078490992022806406831891482830874661295825522305297398602065034007610945834928967593422927861725355421773037358747985676125821839730401536712408341449272220526677519490082296886440798262811086828514059338174883547912864191432369424463643018893891924758519762687801166084401335233660916822795106854143206131695421521783733187242226514719385897903892344304099549130669300539185121793032017720534339124903580432867002542717362758145222320438165273081430771313042811774473005566158944984266634070571290878313858762235002586252641430625383930046852563291342670947124961387178303478420167472404622737633279355496761227643400351539931107404852284375613078718385618994346888822922982727598895274762653470385515442580852712786242507610836388168481736244950332600713264120854261525980417644293152590035158898742582987681804774847559988331800667164045147511390977921804291459866823727127715108650448395131947232224858431086493870375952722882086838314732753378979669802397661460109131731960585557957983356562611452943613004495599851920764594350555526380707053363931540573070990328338594178547876166582398550250278136461930988995375469042795730204997262699253649139659362514013007482558036521038749183799866698531346135415179366598702311457000789261968239187500548923822548502383975341743561051998716639923051213009905724698264358296923720920076485700147670584696868514990702656380663542280600877394118671803849712149246538702520726671427122948105110780115155203553028601885841773086653045833161688646319555385528471098606141372939985192511700110041537507643460025098947021397025789266277050494045599472914865297803683440135189706661147745280369051770833810221471924383841341272433081036778507178341052636191329860021675298876129296226820707376605013451355984646007936896767361294419823793274007028990688745608359016338092699785489021399977574062195488903908782253712735127628004104578966725679300571409950745056494455834856278081954261094076200556560855025745841378449269201956589061771589178555286812618488926735149908207237353210453859048504205032771566334729314879395966962073729907028020096901073848725391181093002003426171202247470542299695701930619845734729167728282477881399015781600361129311417106570200754865735305330883280906068701609192773895079021477121449948908083605972681686684318294592129543812723330336836365569003064923717029047506146929765065717794054004692796506853145496156837807570194263309998278703585123360873155850531251989301502940898396856874507022126514923564524786260564552857682522386946762290080224665001181826620811522473198583581659615929063567346687986943902729744081526193470891556180559706495690401583136578731469346782940549293104527691878880392751664918131954613984820143704653971492420905697498621028757639426823469209275605023825494571568060294567918464853313618583091724381348645618639667043565852970892440770709116805220182032722618357590563948041266998588560736448013736894464633229730561567794342129095421329776435528980203675324120874894569509417125907486264532978787851294508037403801629421673460418134907904423850089762206727550176003682471104058957685965454348255660729792874699447985079312990667932982651487977749673866883331664796085631399215680306678260035413685964852383376391440844132640705356645025561259034049608047589310065081875073721606419947029358237859701196479090293372524724164268329664434992126623788286788252620210013540256822808979461879089734205709004924180345163275862570153532706696871653645450649105769598087537663829142984868216465063299382229963142406010621303459959489673222240352137059199669462120697548429040110328991857101414192313886585069930792243342144048651369698712034499445926123191030750443397463120379380604224036034217170508490880107124399861466768574024873309834950779449050248749489369702070614090892159509390324770181609643797642250757689208811802452697849702183306873400098150575625965033992762895918503358320576643903408485715331029340450231318054488112096799183084961963523810746186368254970240594933991636514255726506244158948136950966337730099571792572909941308767976567846571415949596296120486364048653408597957616880363751077010346457663649603621547569497232087111037648247059225790375527044370791484693215372287234080288047735796612012118618417081589464640164733536972909203118921435402676882233933000509113898157527265744714323092279842511195782636336677049660583576582922951783343032644148035633749755878734635975247777537057801768570507734420055806216378779085172238841806305579481880615979274776479367014638234144629265079569525564544389729923477373226489219379885480927458508945862687599675956989573197169170230634512753917885940599220177858339498516232596049080339906396626739169102229228363723229312711713264666055204719607607641873385123506313333633226006707867865257473987362904934239031244210027768667458058646210089639868431496131657363542190699878778168473853322067446449290984465328443220294662296595940601571533073761184319877295869677835409838641895506845213579473550611766918165851598080980344071969017288250696627916014176193391697484126905702218802403000497671110717420321317517798301089619040275640337169955770669254011415361150567541459375552817634539603751937507328832860570066904681805752956921146147611214835249772536170778715754332379354400104636429762541154835085334671816600455469422022714724812049733276854224124203327150310027562095046707071591066950634614589290008460209587851640214226770286006126141647908217804395495271550867414831145321041680271561084808305097824885834523437642108777347014201842565042391720685241062808894678215540847337849536754455572608814275743074831858034584457903362500476908395148778018469209849820934609738745193970207566021006073880644461999560587173689292491723491207740598633668197809454195459020032379139819896463990320772847611974330945144342428932738403685190324134040508988091054490258681627354426863638137653392355093054135737455458195718896015966111551516085625081127210970914503175006155865212187734964282214970942878928192744741566566468581118468031777378899258635333775449950427120812918152796199286298239206631185586523704689493964073927252445071996646249324668596294431567069856842272054071934911061024329904175463311415969398796706398168142040699124835584034354317537859800284603857251993241385395571379006319905744441831876024301127014276348012396796865135121607586522323127842726384392178371156762757458997210208754127215551435330680207775873488908846886246993730615346187944937753849798560150798280632028915297551499082631520745384578750642198291481611322143994372475197887049452246364823695831567103080816595477346090783511450153247041654859861544402258430414424348529209130720560353096198504508693900261934963062142642940792182286501873088613669618100732809649155448332740628144444198865856132695803944109250054385858402088089505097918814655856551506469555169202405122331782634683146543785704553076134149172150552593570002075248866767891514793488619919839730241038064652522655810203467468869236391552059174965422791456668453367906598604461242692610653619741340468190510858789812204790292502436867792573904261819494708714300725976458824743818687321261400491057515617663364139742360810262475627206690006680578591724163337563396315522549676861413235814793064410539738990951347395982173359887224950598613385899146136575827887553789770466585931096165043513457701694379856133347009671704420010574164396858359762314891545950371823994853240603663263425025099914338415580980298206386177681342790303296750921696911075982010129488156811436263216353031467737790453824164461247170648199290627341458825817482140516948087702019918108615724070019920242128202671512172680875059712828765886381667806147676637686520438187688716500523174761372464258995010189454023127959438604787451439052241164863782385788458110275279426640395662712853307487759747494669267062323346209910878637914082823738924439175822078586206300052114144190032417991021151700979551632743763359656110736397636347318907009347605824169680775386184098441165056782105584913911212288383810046790378688008083760113991692579421599018809182437116226552502763797813903363558096303889531737001199847481057157359585439066272751938506826997742102460029114378140668117752780628169670533282001447250592922798344449696619453131851515507382420519756031131268824810891078529965458998787584120745714335734577547585056799476288286189834075369205526199334620085604042926634985948037195009903809054952048729738713790603738809687840600890307011592561433285811357061170057495612355512077535234042491827662346694528273039694315646939885608954806503213016302587346200434375395414218639774891341339432485671099671469928041058799677869429670620352355346925975020539992907065375646092040013144101565912306561149975384910617320866276183189721345214162521880623458756702082216747220364277069173306504869704048976724782781881472563669571604529021966941812031955626484599905121898208823955051074427285454912421236517253882870846157256976300879763661713068079852754488960953980018326505735866218095917601815758278383739164344728089636668750931351283237273144707663842673957144547454677845877334800883764999478833450899738354033029350337741208708870986058272450891699392707618631639803621668374866817142375555803697924984372998574922134806046828201053117616321886118101336905845843078721356813221461700726728464077796818559188065507897661193181210463518093577815802516210620012945399526974954887686589138527693606936425363049658495626215755777524371881376430661052625805195422257727487443312014594234108128102036027212059279243247950735872329840071078308762733153198172882179213534204378030640979997548722412676896812557798226501820013831854396638245761282586288102161667724174586845968876353786508535907077998265386468788056871679127744289916635707337279986978063850210043090127268489229374277601672653986387867113304608117234443763132790656306785677105239947286012066821812957884385857442092443384313941115844591389889780293756863535821456786636916509531793057061709608735936473016003569192327224421290746849572419620698931196699026075222655676238913777901660998603267550449582109449324394301828403808258676136578433997286887760682785342559427980033665148458998927909455374736007876243379414592525166514064784711547646306003988053073629012533935752300980205097690604187226035874532526571379010584088420795767507312327553953398224769839962723430560681193010329653216352516139042999912845374779873432682213680952111800998119647994370655236215229996306894852671273998832914415077506428179633965895066831401020331195126972330134288223221733785354553135235304087636697165614512416590553621710771290277567859838824339783567882157629162102701386845399590478417335086372839528790738395414784623218293420537573936978942701786652627861507447182882756877265608614104167158535750904149796488749358976025827442888490062709656367674615658489631635512471708939802981919517938933087332651610027795926074661966880022617381438406337698882796600725386546896230315880714353207806844039364292102361687274322037423075784267640256998017400131132576710535423649657374858835289055891753004199310237808992387795269896018799407132207875533878439522339658248469010281570393853978234282891153429263666015916844541595967439018277296188088946614413104522421002803620107551809093548788941794086562209678135778629167405401743554623079294127881261626118613239133719297705957083590971547462506654179681757348207756164194576591739969200591943314824668403807232693979955673661924883947951628995883218172570019280308345151797568985344910184112984242091071109647271834059957714358229398037914278940658321087868767136261313058043961953048355773131573104962322879534616086988752696182546779480614681442635258187652564753407395680964072036874524513115350727193717161607404739844208744775643353774542727994160287865764093462717295422885123526481697748684039196871610515051882884325947477836094863026962889524848762355858951748301805073711557422882976204607343391827047883177567205083901271726480610727052577580152238398005580507749569425051916149671076567931967872343769454447458735730550700424503988263784490645524893216290380656255295946735007122249313616863997464809170349695178144560712197876813027259300981693983648159560199187748711607551815445367067731446913528174413980804850026481382862778118360748182582386088182218599296923338732405773833518542617615502626347524021126445794607463957707258906876701464070123076486802296106308875221048149783022468746856295676159334070312370771776187767389378715626616629668175388659697944863339710681302761151426124184394320322290051454356272774820607949953739296668239570356118853417313679995386370763721128794438384590904550344154129731969736875282890666708695552089340985965784129595230266839922735271558254043600608523646299942633043876226694839599080827454973873856131897882982844826280456906409687412951232398220090681256487467535669477469347370299204243937069665906243255931674025867881850542170781886970472969337647337226707851747451991579553248088735613966007930895883155098320794124217972527564029566961581263657165314148094278787293897484104564705241759563252667965724448541686746342258305891474236220817442157523686750574458696028884288421589884064088215046354475942308893112820539573320081194249919485679493450314578566007451835298276550583878735853726320827490964886065026242886129126650839544487875000243962090551179417183533367472194836072539404321732244846158548270204256353273707638388580803062225731216473193939647774587843038432317269217152287108894596278597958777393373947100364715959560276299504672055419489947236173010969637752790016058755467028934929632114855290732077890589043088412635253155836477080202544715109119428657008545943113357324723106531117621991124650214591307191036252187421718237171148517135802666835041944925047413573265555777617913446513911957845457327352352577904772821942078059955331538536891922288937683793920650421029437801605432111882833458335355825469367501836977254152627647172644893415720922950833569069448495067639344292707252252011377547733200019683389144743665118040791323731893863117756956852918462444142955381832062337086280828062867567980755116546511981401096057232937222117246763216224750565690429789260560153793832691266044289452351566972406980733940323624889073491575255489996479686424682100865939812253168496365999122371873517467651321558854541335483165378322728733327738760071465306633131374844012973456159270866205048970999781924869396649670314139437908369065448843167183167653202428582752289077974108116650612874049794135874586569604037022668859378019045760168285506693358756125094197809937775576185653893590439734846995214979225800991053881552656180252258823839544340178308251074097134397517968873469294828378810412243122815364681636618374825338039839526777769614073635825511371824728503583136625667468408446181050318433377468715025738296970329075577904239187726382389661738769272923051129884266126238683154573703430419322743108498497264365507324378378312466623425641384145844311096185108680591280373401339240685087758083092577739554676589356111101784418423546411517125032251817053287663543814419856440044536292969565297348335209869355689326816656466240675533718911601699312107301997497539716830948771179055452482837664104730340083578703568004958097467213124821856261062069395159039448950601971695022989049081094869888610874605414358935501329657022304181660198474222938235185906048068433308286907953902578443985988849479007468196592986174852060121467456334838591552858960046458385997435987315448043401733177160599173963409249410418758610052431234057241229585962822698628509579080915137149734181062773593219879784623158189458197707887479592410017468324963745014463337201022069987194968614113616175610079678903736421766456761535671501939530788938617774571461916160950980875309287671018642807829799032352153466738604231565664207502997234858701550537432926236449180842236778850291229532194322871256236296261861469922532017942466172102034435357462411713332478968981055305330367015151121435617930517335021475252012033336273633969589725340827978626753036436109376665778286877892036486843015970905389479214254476617788864512986420589942029669040971658388938652367743476008357453728560177932118063664403051431131977779338475501708386171818078021280613093408612493931215010375295373969291058691916592072753875751276183675001993803542961842453592566543397513339870565268856468431311155819711526603280723073965934697366838927110067337369018429309966558268661974539679354903217895637182528068409320076875277870941086646151676730725671985339133660464497230274793600249483885715121302301892465140126587129089698952407872792946385631646433157807161906736335830833524590947014879204180969862626622267669359180812202310135312308539611590615055937334568057861944686069042696573856232068863985263122673530554823956858284946936614046019148442863519338612979973211620156084346791325737666852445093551860005800758866852834961268849064838213553124624832115337582600330223204928308535048458263397157894567027201790258151482517367477422283888249260498566962880004103978672432925841853516652805272986303145410611243962462012501070076676869604540373722938616451294931357369600873660463831400532850468315221255904218090622794524430181217566286345708166844818135533298211999087824448453624223335665725288910786049418005327453800227419175222179246286463091978312147308316072695934651504415156748006475887157301136498148388062121605491177382978560576445659521357263295279673848440024656472805569159962622959649229362673453432400162668375188236550285535556812395572781154786973011077429908263029982039338190647116658712328438415264034820752602239851924151378421411528135867503057958116848811419596021505984003980438915595250657728617096845664976438160628398608302754798383548510802688198920259334783827460128157909645471403833762347479353992702416377146049375650302203567038891277495421081133779043337597012266297289280567964033033157693429856385639423744135897147306726355817777290200060289148208514538526269513900387879629148622731884082059015022758393391551931458315423804002059757823232533870598976117691349141766526155356579705751640560667346167531229918339530550885071066679858358259509039349127315717238967788292914999969696349028707353428126251222392541298036365419861334940557183982617451211407923441918777505477188379385877116176474071916324460126444353688800789669014622226662512950756598644590771457017465944561635977043541057169972013475511206238008280071085038482543887143821020948905092496408197534296464792416021435126735720352282215954595107677548096306721410924044842286596833885906235649055108642068217973663212570886389756208312925025824047739544128923251645814911366033466774884803220463763332751441861612382284148761463662518917655086241761907313361082646048614790249080425264291167509958340764995279858481012311323784981437823202130450123791585803621851548968002688544920164879884714345788359128425220312762402541447868294940151614584817083593726914078860424984574612086886305291352603406055083847948302543405820271416670480231971911107653037111675899292954326226564633935136241937978839275092463181279710135712725728874110397804642556820537328172506457096395447869273150682804637725008348203808768636933373890036824613939575293748551695058722733485342107295011046859609223914611996835406044626385107703117683550372913774673614704063909155489164032946459515017174307244041181852195662287141452109905875870276787504814872908613211287140814599815512979243044029283067574507459363228730667657980972164102326298373081315935865351919174473644586145306751345768063491656065428917436636155991860296524648870712476379037453758257460964838412195166143564948680198725601724146130833583218025066392381305859477108031464147638153583076791746539283180286231348855671723705024136850549569853636677051805580793570041960817123448038320672717110035787705616914898778056052857806515695192437206982049603130749618090330469671561644712355274873548464224748095482644109610357050537832120092500917733383532835039550690930789311874718543616852185323119575295390382300647197596309388497860252813026216935764082154347986738422623509603843910225982148331168451378882655333225791004650691767599759887049305106979423416328474488637975012591342563268482268288332177907670895494875644203394712837729547563277043558722426782633759701182282749455590316295321629554133685405521681960047775857248149425901179288826857397740714676120987922765633174993287376773668575965104762480759735501207575782393922931898742715731679211110576984177801213639911103927076068043750335277038422746132659062187209548954305135856734076545294826913159501396617047040428219369853372398079904803721159238550000539946168052315480570955143774456189822415204021393106500893466908376588430092268544198793517820606237352886848098626104551340630165530300368991330842089736934620328266273321760665618182330903912954830332408277432041374962338202800216445288160398358186333510760256704027342873561025430247652624033762553661120797237211851377243345038405505630616547556753938817410491426461332657844326296340465724118694809053398936650550508819289119719710972526117689074743077569782751959285718406248440419547884230285950328498874948117650154105140259249267630512258996213056848767287252763986558766217742975787186962151463764239058028230320289808737012402164321525871758737868870456411885653032651902911423118170274138519605983425290005223666122940555279021357469595962511232200426360305506650657720852575745600725318627317161197114675521788252585405738407741829643467469058465260096415691556353683344244817565759419774909499734835955427923233706722053681173722784664070671364208621472134012168593795272520619485191151757288268303206949045744243833627625442130192662550090291277006011991685915338173089238828402181092701887628057273994705258505117670803136044758250478248164906225608581223459038394823493747421051132645909805020890060926476983510287240276591275861391429124917035020813108743719604999761107729073965343224617124765327754024900809294426977846756054221323258328987359867850390908967791317940879891796610940402368038133783891187994160567045449898355582183103643709625370764853075882074780531438973134861413166096931397971005422337626914005866021014486128877590318252368393773784751254685687469712185521623435272090581075772966553583889126279216620628263018687750425147675422038434060796707166325291716102073215414332769260216839443148928883097496255310564551232049177326546577067379736165046524653550948205286615369181501345192021159191043256006344892672925533900906743193938937027815761517366464254271098523610573330237855380763349650585090730588122912537106362909259997774089418864905833148648854307811241365562294957109149725542943538241191560429377632599913113413047777799592941097167623402976568457013758711931703126781135335360490494067818795731474914276049183689168169660414767287922451982141260334895936159297761847794971313111539059999020968613321829612289255960866004469371891170523829149237395950477940945959414681573828455690073039969540720733656911608896413599008522474529356339870449514805412271852309773705017983662108507037031514862529653181865984989274864310727468083754634588173469294963990800832356378561467625392124853755071364428870913499762683058740570190985423133065414147979718071301925171479357238347936184161670642612930752693718973430067934296040162901944778340070497134598389240209977067148004409036412980497952213890270789049354304193036405664019820530602411627479233457783345746760209144542579895037547661932105728676228348703861938378150635881910566194915848595059336936837787112764508125772708702680540284768657348484069137911155535906921058841277843047578241275298328419788905947425613165224401604937958739727619660388372417305309540436302932272243571086539139046413379087568590687936961368701513713557763664654992823319592583015327631529443059030643345099563734878961893839599539229877203694771788752222892512051473692716495638346153412045105705272964804169669542668509566888536008221009613181655710351849372601559640299925083606773435444760083254026332967682036692889219784405252888023234912044591751474032850843379777144369478908438511762818533006432479993164528987157266824659694084181735774341027722074153202305660313794797301886001097086511468504480571730353582399747075221779765031241879409933619225207004817447340070448783644246687369269393342983980068227700422125421367690083668920931817614040364092071116720533979493698350015068032599377388139113401407273129298366215774388271773314563517481276770783635040499945206825026252321064896185095516422970170119735334102201024091205461047806194460068387308788446981121015616670665183039055438033023527371609822316012311601315732381087962377892568171117999286513575827410498874269767388826541125591002448622026419494616556037967569637691828865372280517078348824933716463040473491673933741069771450808647685263854843310170786035738497860400362070087293068870015759746718946231320310105383492432877648325444482734112561760194403549231640537172116544271040427797142837054228589518888264093527789502433234378370396020185922679777143827428501057760084279360205101055178540524509056644222521902471917654037077574402107615191455185913230304575186347241284422262761291008570885746357160098479566979596818067335191620336418043965961070992661505105056240942898410013476889100950255821940016810319981605518732240429337424281929111757125841314213201567757426663725194763693512516191097039872024567160798296122619205258785945541353174467642657687473951561192721551477121458675046511712663610685191260289110322031590628207063972272567924303882017974702111048856813844470961474656263855487232065463619365039354260377190230427213976307907001925148930890644041853231988912633578195207671276723370575296946132978019127503454476026185222399910551633271697739483206471019286153890496648552650993754680764621740745672474346962182026701027833174761993360846671062866339708920216514309772774539052582241964942869396054687112375114009869204495145213224276548415143033174167179673761272315503579067247856456062758531764727002334025219467328978545933428988234854680435281868422346972129351215148585452475238807581014652842024128351551006425579982570624641131007106707955307113826500298887917199799936620006713290621353657988264276193003644587107735817572021634050267656095797791485647661176725872003810010175673147965102145136638804137682723749320056057804914171201970056579228356411141779301675337460288157488687887554615574051153614347154490669096761901250096160618856135391764730045562687245317427344692621768327365552361405145404847324612541946257503707066916808418668525743613899783102586508719226738782171935770245608957951313468770833726943750160708579036070331118293605159919817448131251221458425829586929567050991682596818964670816412531236298352223590049774797647595551066928426220246314789852025654807422008167401120947504648467147731682950407092176709793191851494167632209219923798659966302217664305071123414454791190381995166624573392890435226662641828046318041990816172779204750773872127199365182942867848236394993940891955096947624589660250878367592249185383642109839540177058914394565844080708939752868687908880539821657900803059370793069728795398751057431858645125020266573126733816409883512683511028866570531377671247757020667425637324692842632761579962071110997052530674868256542595903760217731305581583996351345694446312085929374548877464752044750725757801385175923526983956346763629327858195591725401967972143762351033399986358238824094705478013552978013418884024671184669672021618483253172066406599523755784581160479517108684221877960766014378829580136755323098783618462874846048428929161845350009615920859507804627562859588617544119516497086483363581713493485236940245494523510845492972103148797928769312591183543784293746060194760212284063200580089493545131959029879630002801584434701113056261779704691271755482489943943895838616120932957165473064104384139170582855182481645671943882871825437576479247753092999307695028652181695450467609581772707036239601531713064011468338238396561568380623828868524626198828070743546203032195704736428688512872160481457839724301842867136069288272107254137350127935044748686178096061408999018010066335639430685974515531751438750702388576701543397190409209019539697521111253920142872180702251071283854252205303644201129425423535208052653229906597121384617711390221040886823345682260823422160940461287637215053056622605307295264896843021224193593475466792761766083901210634865997431694889672557400544424286740602870772192820374971523396018225683695005289081414382975813845453043794582651584366012035772081745835567178051649773127460206937472577081755742962824722247267385198986295108691165856797054668496546167016438107407321643786368967350460255043212623118588641655839935786991770145338169884378754827965418190869724030965180862500776727777075994343214831411498585704043711036419667169547741713911326093677735973205917353541908854510989163448518697906194403945986494402336718150222341357332111803642936318044304030683940596373690328624971291831605306891454718325754635257696239998046891108219452353045959346639321587587642839861314283973457587735614031755278408609423790758410550850659066635591432081421376888560441414398535106593204217175717071424415352005809492809255834138837450947301186206675639409209790377164959807334631841366646897166031081528779819212229137665702897992690458602543360716632408791936748212709275266126643362398478446681785359258732816551882562341985598497174689214103255191699465695982330609074308398588392424607655708919650193154753770849310714667848305483209937821719648451358733515557073805530203247053892392045879802539095776711475782679167472364757177914173997483705643488060525338386666244911919751067401152618757373168034665492316508594574668531680705134625776430643573309942874648138249896204985185282398182080645549394033912824274482632954201379088785893835160400182477615131865246617584998440446720811910537521715740343120263216212396638355294085980591703219664969200475120963688117848067820957879459525245709875066868516080681885133991238362304856808610842189986495017007314714705206202323708549103630752605097719208515319880029936921635249281370877265011158333883256462964687402677781568905973485410865072091583599384293768034134781336973977920003641577134869788125070001719234869948485671390989587391192625278415449145304740899046230698296697196964925927238123002120951475032868357252299737256658236781092865176158038473693595716662894055862684495778913620932946144446746287006311796517042321512925352763794059312030917135148582207777777777646923011432238747387298532976863352222833980845224107204767051311756042833810227986186202427016464173226268934838081663798883234486879781738485650726049370427700046346434043311825597318690138500612916670784240658687518185988391425931859479311002733083581524787190281243913807381685284514516012874242317089399523904266112885763482499534909093486115177775965196192490384662094789162800534558538456967017961016961243434515041474886805577461623516200116323649019237892283784502336565176008220346458343892930302924541169522323304396248564842896161786158114396280267298338085865857830642645867443276602300155269734877614453302386703660127058621050527332561205015370076261317960988188297829369509759220699970049069874850080559138818249862840137647707944124455845496695987012777548379906494756568703612001603544774635655313658887175641135183746133649363026174826404356320786541200632674072461139595184788373314841822349732885806836085947258861213369958618247622555142724733934165266588083249613059353668674033266254740400286235876883744642181182883740801161539965102496784845149029111760786048757255442043012482564428196709309838110940935312832289969324161794463710009009938614276692243618904571912895710895903711913330868414341210849963498200140436849062599707144564338199952509888196582539273263005119165549632204643270493716768566124766582029473632134380310053661833073103027358915939324074255531676336246461516315431730317992812928597596248340969831326092952983993130106161317205860917020357000867085167257122627732762204792575126346653903434930669931343033169202468513885402973258517853092529861322296466273002585575699021066847722998534679615441473662437733319592915829950197706183205011500104328091122300350890052324656240008228611732540499665931863131067490761979287528199010800532557588836697965869482823196863816786538221649245401571323057613544505176932598600428659788996384828480551236598250912204373055965037087550056304917711587829881299345246666009304398502325684719591273957697858819847329753704898775141445894761811847643491314380940979029666929719743867482823722549066406034086407904579871158518406426214997797337497741149798215875527238354118519801794329412000904840906711592399869816813582070400476376982568695578499561108074157527671102238472745428113295338732786444091762102954496319882119544234221772186460998153701078733164545993417717070208727586569752174946934567783050604538181552661300586475570377371788796439456783020624561914203342377880298064308259487253544445118175490679048807591832165020005715146615570652309879661464445238144904399539683465973782905958857792344661549340001975006139734553908339243048026055914620637604251917962783881212639990651882495235373979850206099624894616600138763950770265442017809138466749051067054380918274305114183026928533774771806400258647579668966855009380586177810213661070734278012919639799441640424386629544801131497104800625498834095801568436730956928273427475951071312650940063178273557659585386812037472323611293537278598558541514215156954385130308693531453436873790546553335476388062844223218449398845565441685680452600454256475872654870370718301949679937176823208919535651526394237968021822282559859541452878270994696477953992767365695763484351460629449706535855334270526207280359692219265840009904309546058512154217938723514093051348310436608933149367509293427839505579218032162798516252762499748503590380244498853867900716685345953977547003243240756541969909238977628927673964445557558218975149940510027251684630201600518223507979638924418921174085156553079675445472296876791683262615244004805539864028068783643899581526793257559731583258846520765090142398323221635118075937282277560430965208896657691240285122701617516507568333154501622888477688169701287853653790329187131968753620372165961489679974510058641559165192753938483481945545178016161995474008291442201736279819392094124479379872589716247758881709417064066345444728303239780543211890745859865048651067217261119824940480156269707374135059519808097971503113335236336492448555924731787438372586069574522105745528148252630708115657347320015109190965009260931676798444061898195251015059494846887702132306127368396324725847046173286398342968515913996419054544142216070587783929714212799755875029435892758318657512789998469997115159947479042890229657090799156362358791071468022415469686092727800752761660499276561680864608614675397673386148542308615109084425447269655922591355436737833004712309562852725969643830587527184333274974683061457897763227578903665082012218647001555704206148559470790177470845644542343998086526352062580084810356066132946046716818918741771714140306244732641660863424201236872877167664438942186021839099942812928153605144479253884792959500245455022877771869408904670292449972596040944641530447281522072073628155354013221063995832848667600049013207905544474442022432386161673680186324461054607472364336144456679121538932603836652176768298463237690799934434181913084803175709234944408345735680926495538523182166267715834110284522818827725886724628682267632508080109979707378150083005257169542982550300524667608443122880402596832692888795994600206379057519003582127359149268294922442635441639993067721647685468649423862055881443417864340147153348524637743589558029444223535257315579447640482839701780939691490670295907779728630300764267890018401002194926579053873181489940259406393630673257092779384311076748211641617668534980188527477875268488003295814845626826617833838871505411584078429893702263850593663024488360269015123018935573854396089208127288283966375211681888881255508641144698315745984872800113975666115083392319431050023738458760722096775429153085861856545818140438248492335905654928298925486394531751487882340729242710788122474556052046103274599901957486984636683700866332836087747601744824916743854756400145595820141791584252365199613026509040118052716527580090151881199670785798933277023333693387484153362910421130220332210784977143939823988889637223652580987803347759624632189495772832848083997896908008999091292584937922013593717017333071918975752498718293949532749966183414904051055574334159771375693024636593114172374603067445078788235831281609821903402686224578804236035745406688006274609663106139183540374954554675116141381626951728166013883661958038988980661100159872336194521828269323992280189683287116561487137713977129095105347940627433484894253295989075199478565623727517154214155846931581624021345547666920418033424165753908692849041254302963364868708927985019744963118124316364895168324323284877852444347751571068247731002093916250512979222630562046995896047008975009801367671154029204496612493022025779075204236467960789905918499627083534915095408247528624693642461800146090626969423842823637123274151752478663614170095156858498850986810205262700326795431918293487501874518283612095588800844194851185271008550917645580775061494501296806274294954961109729108274317785724944607006727792696851618592616809710504814114399075762833682145811920337814925436868018446231065197040010559736006457436441122030387579123393635332419669837947508322158815903680078525708503868604903873138063310656580201446163048070804530341634338865306360832735541252824821849193263727916776283017527242070493829326822849171204366628531423184496958411828607146093305467185981537056544172683535543591970608118550506067132998655101650306962638944875449708268135596044108621136507510762146921148577889386171343948626777843002496067707965858637667803177138725777220839482239339728117269847492125150352947389423834541462928822206985115829806953993899626311138617970336530254534580328356800822321128465858191538366165944221686563900250630325514267116954134932661314901542532044858997223843266607476919117885748674142551704015582649232672619572412044216272122240010921397307164635755921238196670697261024055070847982473731467258447189454039172635470009644967488200698026873766183729074214857415949351551885444578975911397568649665324701339208758020300994932865495068936746860725556687051868094783494967725054534128593390988545189468863319705818238118168714273742806592726419676793730042536268145106207025669951467194744127183217179648663562724693338103756500305072319003247856210776160430561850193720893320045502385512611034268326810594289956396715847640298123399199699424003501995842024393217201709935200215034958045899468462916452419101691088090754465432918976647114087418098158432101198786312886613128377644331431949540285347263144931688317711164495372636216466643175281732124172477522073551805251961379670142021287670936096483905566030228993620593215167263143873631229243677831523354852272470179191966267951385761503243567193209660912923418883154964679305139496802437270667518591827988224025345278215234452972677258390967063780441687411036022417146564513708559567452180480668068533012112370657106099730748012848583795686746205131528803075638579452689444497699807442610016484766485792412431405430385640771086036254625452894506896825518499618728695450511323654106640155303252712369930535063959442704503645327519341412051216049643583012254642043156102582720879735649209458318986617290318547393324703698663969451223852124124350574303400345285352844215909245021752432357635548953676248344210537961143428985009402762437885269291415751211687835894940101464256843241853710370247280205756785539948181688148475645018202396037605972980584277734881460031518453102071081408740265288076563456459131674894886223347211035805145518089717683409692484253203412135422211519437324891489457163594585728585297868568847293352482648599964395092783234926697669709341336024520524084748411433124233869241557406059313792038901854516751023634665807717308244073183346359574963411843016708900955960949070930310091697176838918827857498383652191333098121515143721393144306265326614207998657619411051573352300042364438130056443545991049897421458913878405789827566256270217250237164882027304427933388885517508484692350401422272217651325006905971682583486404247100928992581917937748455441305420078871622897042822778914998524300815187976334737595419778951713939954322720746002729693443661794589857004973696246413465454760277639609200935236731021874931871553834906913284039025852798761601684107100076310742497146880519501324362206909264796156964866643728133040578300911628926800059312307584815668094965948002063914362197350915380108932884912162390651616701938895460981491496357980302723292092580134664378837821031082068768704654880603956634064728585615740969294473539355670788615024814720044198455253073009388944216139611155591896113108998110575091193896902768494280307669100080728098538826023688184441663760392765369543754091165596627304978059255965095551014060495807013439470702803742803043862721019777446895452031011904413150754873643786371435768710105271740694185677962249858388458116276560683729205346007131145668994189724114261164187555979217913702461818470947999145101252483917148646997767867502550005938708087891631113836006115443754935804651639641441628932388702672123903017905564090310508272736821649286259949019382240608887054402975991545087045253308451625577170085413527345742093088003117707783635659628597949183557979956812400775459941656771643173353170580790429915957856183860630585164816757314589397530647366789504486309938652257043081282762116924318133568462154268730183565808429628105981243015388084605448696888234372449579490888575702828352373543223457408889390805081624507157439650802276699158771710401716111400929314290024735380268299446949908232804270211123121367868583945331067960937042805482102532431957730433349008606893194817400586304672107219875767539315008555203973655442079979565875243638336165786746309486212864620346435474704509356446726447435326828777573926368725475783330271560144391725439331534548217062438629426765514723822871642563357999282724722302984360373462719869757623121813294206200121647046795992820694180094772759603600457787252784617038570808224416676569955975415135541049473217535774961687736371049349311437981147336743940910736893908456543968121816281265210048320941034285898919845486742581190827540662314921441699550546279738749780960236075863437737984748636297703016062854211729607922502389037065942221461837684483291295703239315800945068675478828258604887487476487523278098724022802114018775562290471285339825057087292103366973430197486815953356980411376664947092519635640692675437700919014159070626041011048547600262958148992738189566568384965997671853828129429830854276408931657278768709958214754878493494697668827963001315529883903263859218592478530968974214098728491952086024116324508159630647395650894285986350306949649077589118957397691204557782872446597885123353931838906726779255009744363791674476944166012817472784134078207521323017456578438625750690313218229057923557652866993919795329056707970709509028682460078236023674152780262124529482857998754993564925278660816169548641032254329547921322271589175157472223382740783541767015561710367783987566126845554125903390910134740649209826443979633877947218521603475677036550927358600579411063698278584561173396709215825753819896022860714214462713979078284187313905332185522965370602343165948341296383783094037314960265597260803764226233188791160676442440357061506086888853792133417706112825728382905950007115060638582311390432453566453801439984769299788806388866681598361275314134414258387184149443169647849245311050392602105553144459405724892999294407138465747257477126451841849681239874791800952358917054961329023372572505523604717661831983028869670542292021280924191027100903389041550987130766208069403799469944273543659333337295616415539426596454229855984284099232378661152040080172258101206024972113383791664292862964300229940179989228469247820411747280490016365648613048020957129897968937196555234249672471900505817911426534987767019226699365159652531773967045079893899648828526043094160059325725064752758248006309887945006166219311061356253059749320014415801422871655222204291043042533113421256891295642078380935846833279476784106707273692255051637956234805683308960004390969937504119733636562809315117139663857483514514216891718668883317620652271398057203253740137921331948815355408123189548113270311473463407463396418941408046410473214719673352976779034629941294648182735419779739891867995236166685623747928863032315321816140477119556326003057421479340778892006571870739671043672202577698943604344628344655287791480452120187654323748624015579609135068380068289922098563597720104074131409790599749996139048223440767836988247360594489407936180210381088224035737233629186338313249993532910659606366698608150160995882790869335474512911537786357686529810814647453987723609113241003558926712516858883326835992434881416239241505165265500453299592684692935743392588749180370981164987425351867990241527260839452096462205332403388474355208925527682513625138858613823915240133569418645086514924232713852711373777608813573272913059932884651720097958549793347973043765940054596694656012956499455002975060150849124412177679116602721472556084564492738337159858679310601005158084000472651335316183305427334894740839812250650466402598048490642570432917519428166394495266579308284980329560814497971432314957434648087863910929211503324507139216167554161300834277266181720470137770070183910309143113685670641103842149515170925477798953513310614506265055057013602119574604798361957802001043387081975201706421213603377470517988031886955913327700062600968957128290805312274341700475755748628355264327375851678740531201540234171832725984723341488699591297877765632114041673084098215169745807384912544691933332495669980915073086417202446588231239201455706477861902839628037144480692440854481479274789145596192932340663519398930057886036195776695443188593139532536157166366819032354193532031225663564433936967926735916558547680462076769240820939639610908816911016107780948652615477815949459845391266356304277896189325037733804464997243906232672036687217277722577702934151450056147263889449628218991954695101574157641095464374185077641586721102210009765320604716515673991974389074955920210472119866266698471640283044853563556405035238357529059888316903403659673300427422200744152712976169538665937268794313940058844531135863958911388155660085660136447086049227957995621552423943478853412323069956091759732834434965126665814039806317702174674716589583854575893030048714042619260873075032774704350011179280187978431426032984159862774676928900364754732323562905131750904650792018306648691311579766434566060763285990240038397871146692017628505533621459393975867808474343513192630790493878359359539004959536996938767845421095626073354616667239777347232383277252524875850108837122338827876225493259969196680271304132612681821058620760060720501816450110634982920319168617856060752800578450306603043245458273610998009746730901530206181948997712373040036441369182898410230689165580873663784932928133649222915010164515529847051919739779575417699570544601404700612196702172348678665896510248815071938534416771506026070391752458203995233651078328234610364469286568914127724764060704375683030021448084933912587915507250528344947369031217346352486274292862603543460617201162480306177276308727725831415229802180358950393856039534846856143558717490872276873742544607238953991280874915418977784583291520531384306666834724386869325165689661899352372030756872282618956212632480148825410011140861233192590922652186270891269984646495886471066998179241540268549962563014951536809157863341192035131877388090202790585328225874125365023499421405372478152182257350370342007462485562980201313141002096826594013234668933807186965309178053093533715394837107012550616769972308765080073624388806931755455208775728186683094337019341104099837688009077567851655926948593870594857784826435395528047492806674908612952123670321144021117196662062708896582177135007436470718447434875156558532926750499309573075277105116717065772283772311659990079118132032176062838754657975035174514046705401480335324941529479780490513292444101546200926059326954557069553604109571797401646013591039158121638435411744092120868405797560386658595879841953154323480788629571570140789403866412709188213636992762324960127364341713773723785293261534303728903377639402953391661770838647769295517135715900630838193917807297137611605071415042333250328187144294957075099770944325194567408424661236672711581745020609833488155997097345518366233195390823871769385799596717020536225618814600207616160291814181551499891643429551861938057395725606773529621819615802634681108990232745177611462571533700850064654518125570894020310613670570285644532837975594385615985107539634295718826812751466105388180947127036527142448839551747175911444736963039589457262714308820974534290719041357207117134035757714957722378366079609258756200389127140415597468538373068664766084783476673281571662352078292511824700295327457359147093129107595426990300374169000264912514895939094623048398303745188475758021652892005940073575873113063707761585736278322832060511151846445002933158973221102048367249276303001315173020231131563241713129816372461329269353868147976316188204164998178999112935759849270508547351918301971588278099254565217647259343049993249412918473774745383216145965927285325131681957436585873891571759140777753943401917585472240185023272495912187364599555147031457587654996263822739333276270189391309393847044183484469700095607158712900666245626473736647510326503424975728655483903649734373138681228702002549584624126273007475207249071701275308583757361211614306652608420999983889443409001408508588948587517311109032276884142157314936853476304324909710135768193231475598890636545939611572766711365880695749699480705300635442852393425256398948858474411905801454572982759623649473785692249893848558979411655702984128417689504420596443981702262685491072839011538094964576722539291933800028332855516881880054222233690253879030620195383798311185733665553938595352649032183308331657438378356033529868474009845870111184213307806781537773185642806136495772944205851696434254065290114057036814292015731135911262346207971125820506468042891563681093044723916632667936500831690530773816534525124879238197843458576664913067045171560450485006803661978853884590787150114121121142592789856127848486403111793923191807524905388919872272471288127764388738633150021538047254183970674815958708797740828030439133893373988170063789537171764433736964934016014219896520657564722288805278565246001790482323330772787833070265492449589726829610720863532535561247196701651263760740322363821474656657705044580277047255770541037979531852372025830337700109126486913892216671811493585318661795867568545028139183445252257391653130074251175876052505210629395966835654176751160660777834676192335413369057689613583671477517049714691790793626059966582621403341788485365159230815080285206575526887619471257672075340413294320555334867045509851617968935970354561495285740644124475086818970611455736118121489077639467228412539960552356930907001811381855954809534834347460710614809511042979164019141015687899779620348292092138733449348314280577559698447170520442577440109887071132013029382063746180028716422148120004927999337194665180392883979101933386123894080276789333266569983317694486897459433446620626635726339313717427392205341412729465570601333585973142706405260337216383536472569581143443008166837347716097235024382309111882547997689729674769205377768724351419095254624278085662114511191126143596131803188847511699843938180056524585101260754292425261998931504530373425500297442689400958130538411223813627550108676342405136721423617583751297912537451574673745371859845696939809903234871987615487106291908926350789545931246167217631049722725059841280098766104782209098403142909017175458849127024710427580324940287270878456158563847053468926590656488915497580523931864424166232171452347905952586307851765773321308499498683193628320992508863548757668444347458597179245444549335367255012084846612908137184528660691811980486467135493613094899136210170139197466071282352942180586218492089402375961941918237815484897476104150198410618166349854808758523152194834956394215653777216339902847187409762723965731289272096767188401466453599613713473021585072804199417286611569331909187967532664534543021537180644027760875186200421974481707350720909821960741510928501778962105671619423967217000793859567030487362023937906122329822206875598010686169054488038914252327198770831716349265824464966629526917970824471323052732053269432413908250043694792399911050167476100072957434897671429419475332226749010634688209673530790208522460525972501556722282724806689408800590510593733770366107272124400729562131516297879266702549678327985652705992042474683272820148423837133000477296104279525296865258466793141087029335898817327081236685351134795422289037367082143672846057026694581908121521368816508023649400779789878238837384684425535876283368189368454739116444363292233827165859878827958223986663074067391202249990001493773897205256763403817413112185639821969569746898680607653691324043304792896286869746727203048369566491080308007969558767931050398564010979358171873552195264030222079182647458436539182693091895272090838156628803297116919257687665826599005967181604395183338681438200762476311977116140179638088999845777633057337022438447778069707564018075315238768521224582439470761315544115214910859461203961772690854900088470068599997716448841490384320216377945912291214754876925982939535752163446943240210491927681264102058692584925928258395438882444851115305772163199456774513186147498470355503336837641683206088549165135780992994267474324327995759897640211782669591389788324966132305191013354863156895605118496262193429846435821879573338325313242429756866284785069158611857637877731771432269323708956349690894301611649690675550243129919260729772815574251183356832936355009819592949518551536605514771690398684409385361830803456713413003163248239987184286263027883769110579406320211431839070118447444479681068394808475632643438223547840807646062349324257682315762647298251001036006528038050513796460927379959898488720832036767047937606371415451064776489409329119654647345496338204463202997156872950473997545956855503001825302769280248501677103478348274159355900262229904082293161157997124894705955374852980137021281579574752422094023145969317735703279735689371176551114464935402417585264568149916989147938765714642326448892243673475349663402657369962119737725661059113018200989214156168146183656191544391611233930045026146975067442177180594649005084176066394153635254568245386249338109690170942688594379488119135048306091053215668639101352576099653018971130047481433748533235886500983545704318619207491681812486926226001734707674285165922410847445380428438008487452846426441496718096409904657811759709204005850697297635833541088343546601845199097515032070001598290764202620453400625535238934649116340783662359193879701182110227056343787110393902551802889968160391614468384310075396456184574345539435170167834434095416532902915365510201375179853144616712540741201070365389116438719674995518506121644348829928299261603694461401277016537650146880438994618732399243722922637206899774801195229615279140427398243621271367792502251262958725811753857647554489946782475976856693566156360207232781243528067977421291673903153246804131253116403092178357188598306973076292295911305159078034441568439846228156464081755708715192148012526383864532734869903606394320931259709470116085790356390648585775164493588296822491914034183820730746875155317873346089505103939789969301126429899604553963768192989768521724394963816886618108532811102777509308033507293094914195086668997437530114594464086616991109821283135022289307431499447221564722982420553625374856886931579790527920807766754095767355167474910802645378342915688226622563543116064305151017533984377929538467214013221364668154386607731964902600310597311093504568946775905612783515692088963710755567537374358423448637556875118542717994022888490119328891112436774541789761867168856768715673034841270763862836016400790662541778414225136071539839137353719945764556970060266981317640244272740395193657824732170944418013032226553362166526100584921815359025818751656729372986191320699953717734457940535004876257981938373623973012955351022266226687441663999688167713924486901235891611706535588165882778683021292523503956987341768518666413785567253499996218555577730141457191282025493930323457773062596263684723989629930238061966580172831175290038357768664407675126646861493915965690416018728048120679553590158245908036103306140641760229234449949168036804615738989058715264901378760808250269053183064740538733598309258081023330531422259973851544331396146020238953241259435713408619587912750229621611904209054528598813101320299810496966955546708611153437497261243192283763160113750365521623883960291931499345172311879487693599255405408229173909696149932966135408783638004075868145874549763740200154569837610612075273340126684399943889562218290460132097200601300772943958506667434809543874696146966040451313504898040434934359618593182709046790298535962281650451487689935267436771701191350200219306361309164811278027573930419192865248566681819804641576760149191121410658129404824879933129561056060399670132308679195223473989079150478780360695987336593118892880142749009057290282407227057433026023690749739232601747303428139155180567711957086755547745940166314156539776047583584632131098928120229857490701311303441712862696347323054095395727631797190704975577945743203549197702285729336769391592106065790461536638019519641065471004966936737633250162363747191585017398027675044233656237447104211501077302384668699161468596370020942620959166377579474595031852118215097169068276176806092234618437479865990712103462509145953127764687783464558567222616142716245341604096855747115974268116310006218887250317931239107456899477105607169939330320429958155006306844587138967065731354377268391322152533630752510362251839688918174050953830730762813949014765931446890264354100119313072661644842660966956438125171904822023919809388235032627564553850564685060723932378447502895147770683925092892558893705523124006006390861411187128979154126461886770072138196844863365237031257864350061380448535788495024026020859196121656819524500873368285647952677755617428889413430801352596205372767147693775398917371651927554818191522177622680577136343428430594346918676196727943837838655386543292833107888988289790625559039706575407833688191407005094516537357549924010209654164803629302670752139437402466943469874798763935224425082616930289461078568655268958442677395814079509998787125457691824135173771939744988879682929535439299866781487599315255922001119903951297765608061238967857746348716654934840580346325848366771923302589635256574940672255879112922171417237065157081363229443753685381786510451862876132108032018155751196986545204395866450758192728379991773976580268649720498918561553844425616898510693445638138600357469006743366986407661692955222114847099271410177552723395200267894837305452980311113993406828573419335213380915241442752236997957321530088957134583189674785084624413691767385616109758414612785551203842627653458394666677621544395418855993224137694526345126097532814652183763623857672175060963336254397200249037616963888135621800025908612999288507080397513086484907865224190086349870921109754633020313504489741389446016308463333994984963527672302598790194254858636662643636301960604330879366187094121866336652380699418501953229029548650542252400324529907335993778291919818967491346254670417795848068103826441581539129775195177001689105272130899066098129895523604778945692969279747158683849545439706753215504399575256328517955370693299822267133886808580368778260285982535693865371226917541990138098022218649995732715884731889622574727173603620174848427140294579190104111430856371464970963392235262417334496152090968049930826763388228647360442563349009256782725674921908326042908383067736078366453758320521742895763984861299128036251187668243995146023605132971845470896376696962830259103985844472079806650745010113395574697611596556580982155975405198287742703968345848727691761704164534349810667061519410835861865509335715386610612799962387019944936746815934735840367908053792973996500058710667538750904318685385497083191354690347615349297000698319294587560325060855444789375124840120022226207205836328956068828188509518626111010262157545293160057272817341082971655734063679743637855372689820624097399342821893091350732344676356176905863902879124814033225932381753737365302408400638590988472385546225684041772332416547294027142352431796036178511423534789507805882248731507133028031714978946848903635453257670489240315726208166382047320336894941455155560834808695532768904155187740441847774280823597438983492268925830731068288859811442978524175679297332875891798925800678327316924127255498104629983097028349227957830712927033932925864008028027723889138562752099121894863843528985440919396599998716478894431263339604888303412632014781938197362292806809692436795284839225621952467205291712209507313191162407068095523572689175944994572016886989801337843291233079520504711545692544162035889746827175145888200229745858873708672933750940594442702908345544438209574499111516929419834900060929845531722401456811892478222042869408080065042779401714842155931421850744268435954530065878586269221135053659271580476131448426731213166560468032539578396866247556942002328626219445385619380953142576184855566535106513460946436026977288622090198381461490436143110484305979814082114677353947385917750727061260567484212856985300593104005759713792883660448908331189567594693702588507119803563256277005135587061556039796115154203194683503471344174139800577762067940596600685476958604014486779629593506986710303134734610468314287741100977144893068981453772892040980161558915541169773634929019549202380467470343789921219123086210045217228085130902315650100139685941069055862706927037580061452240907121411709815275035131317894690326650189382481373967154526812098769037545798087667710680929434375603877289885418689031955987043763441126482607534343604477714457408660124839872874906259966957520396137940480484022314650256746574177446096016157702028328236166387262764940184641545277760798389547658146122743225185616180366114555973439795211461237616612317443295026963582923131712024449091486315678647098076790181376337928717899144875169155518722864460508260015243718127861050245801554198617553356079396936477549183822901259190036069331445780402582433206125457030637176051420488119899209801652134785220520514690042952592062163846240763850612666747162226986736536478655761535066558417997902814812335568959553492498371992909630236571999039033145612489433506039948428344894476879059122636267624899360238134918885815569537731897982594910036445953870755982241017199992051997837532556442019524581760248892181638035368144563996601381433242381703404878172286388025744572225361672013554646211496698000653843900218505138322486273231979541041226877807798842883782897596134816987095744202427282830617956754370793532325139835098396559949211412420116545446846582622143094086624232138802318167537196094191660646982219850272848896310402804324616551243592062462140090828911487979066198459335975779519790476493856937301608073896738776093163950988865219778816098981979048384372526246688556105211600895208290828412368632057624452119147004055235839491435493255843152228687416582450646251354541750576445009675718888174476180598775466892351148237839549552735052761528761470879094851285441559465746756055286216570791879267057661391797057317288065855538416644346441750815152723761629089416633859174877333053643577389872495613819361210077297098094282345354225336170232600396219327030288017252680456716109798471693596197976839746818621955405187614735614905320280972321869585447895638208759336288850887391946498732561252148400544309586871163806812282649938964156589975025212553094875689882378105081431295872080465187014937142874243679045033429195423151005066638075043449205496104237951590067820090509361985710291312887000761036335948095773066232386978731191696420267454367312268525474008577855033915960862394291005457960879384679661896349366379100094360513031945507253309804261022894454652511591420720299259559668876560536933416018720749135211452154202541236880341632125627885297324982011833913738026090917934942541761340323286274987746211920086569775111867346188694739176747484709751956599764294845844239074589862756414883234086034412333715772025608954277692238564876795110808793867203091091226102182030533937831306367910096188908858038744117789734259531215566310064938543470471909975437427502327197708955155214820689654810483211491486793023722341270696584033924223717035968614519961160591244821834123069480406024650169903597471885215098689918660044600727599858592838716915488127553935395077955494167703308239105100976069858498673830947276865201347022760430013102070599234643632154664344387627063047607043234261004641401524774695586133831433100615045720708106684816342344670308135278912117018739859156129515990604791477118798066392014102288164839773757305227744414112570425335670672172550484226581289565831633360275815353658942736380723247621670732730156034519654758454607664854538734621522264877162612839723417522720422674667204614396905422064372706932544542623532181657287560718927504500030572515392433947558225262396160890701860275503770971512909141171968947392659974108240583948879331841234986779931064441676828606445069050438739061911642516761185279636867297881328285216376424365688380181021488046509026009499742784988530435266102272374833484974157853026676275650489019037424441122280289153365465422522662263595412592230506015739216408850504682512054749825944004458844001554169908157037668963747583110064147232126871370886500189258107993595986107223717267482911207586326653695177757448409887406069316633185756559537764316071611117758957881613261058234136632061488824572006553424960165998729935633108878750331638109745204876275910210285025118226258302299181542169840287139788168333464359465314718798738227196032348803024317669754761578730420765525696945959144150650135081615287333093416256891401333704170844961765704875143264435221674327771467482434387977572275000653146937311868608753662790493226240115898849766326237360466721993806873299710179581658674694813166863829350615982667721174723042713875169669456414663498720314244668415003843819311881848787168161950334787725349577891028443118048041073525054749188662645588261225649770496577787420624186110488291806432967409172542957998540731340825418498539986959008131516255065972478283958114790045261647912710054315867683978190178029494429237756392178523358447596158616200125364924684187657227528552563502707630853633169005539047037803632805383122661394175669071421475834870039374644377127725486855740989562517883161329760659508279181571171074696511216256482687203936086435572338665754653670912503031485708380442631597100075144871472048950385617931084251254295786167175831107360008930361201888891844638812807916352079937717120417052266165788199712272993519816026307232601928040220505714910371320083789160402537202112463990869450558619287932299488121024463736785375334044531790133302768464028908296823318488672198538133538120998443268290408636291167338244255668408805102102106701363272639828894836816820782947275191580551536711716231254829177719318350678670026092477131750364514647559576826252797863454477344569847474245426294796332912644176059818562020166859469376643421406122150128889256100140203320027592093532480233063865979492910986950611550137109039508720813151502884786186234947921789001555882022702388359049316954860644644007455877023135559322407020453823738848310539631587523050886799634988853430507593652167240795724434267888892149817691812611576955158361278046759695122668033383611396651270029965048481243895911136140612903806028026155092036499545449708489967856182036110740495578445839508886509784291707030837142931138764669687170660830235160789817088699993331207650681702808165291446924081458221893167781433824470630042015041982136615053453295742727125595988590160999943464104858343009246388621843070092688518960276741703258344393602787515633630369477355057404993740974250670494894898195431245929529191275071945476278146317564213572959648540578775590235942492034350345524865569445979642941608451242034281051043078539412078882864983241754615433464721616379503502747670869489222016380460774002822590810783931910034484219856052249397377694369550719894506008828273130997008040180816312320160977364386124578363506256841126810001433867937328948026466162045706411154769064583016060040020639363756469260810689432376656655252812816641899724539980209408392978916544060348405471231099892455418331924084793628823871051207657243114049793526859244284647691099237907292069800592455937620060021299113045118764795561965076444992092284373945380813258732635270558911364759584179064307176168424327018582167344066363571284453867075190586288689154676359325989189653449738593572811477906201735802514746092904114338611124587638800158416370123129604305499552378567520523789970036665440688284134870002271196846863043025319982756586735292318932433348665848034076142638203550100687475098459713539332308064357287022993433064141169952123465816960133157018089453651229092239586984714712289215438370843558514516966692971600475823336615346314781818825993785221006461946705813697011973361848713471639929267320398306208895328445659046927217101889930087989325604749519628113810354630123000805531830308343165665178948122750789365889972746420592030687117548452886146936028751658595099557148728563615467153740612731826140204517259307699721624857901358898225088122681087263239351778938620739210397244040427809956756858367314544415912644892181003911568660002747512570724408238151797224733419347333138356059734813650313422144082532376640652106416586459402114330864232026284851134541807402173232636128084617868400734483027978523501525053808022022936471092463839590796683680463954597204153849640897180257108284963306774437652240456444469004760330337053638099914020308379541276798220141700307299197795451544529264064527368166548641692179490880188031063694259829236033738455005553030029730885452479433030298145656471994236952370172567571249755516776013658746407513871804238068709201940937573988927148569378251656297016216210488166706566727977686275723006786780407369278762711605894546984771994441095028858177657600634587789850365430905215945343333228421436419119881963211166016566820052068608994992070108764462793662883109110509851832428032429903534710497620287157348009613210631754813320061931493930672536178461509336838777508950256657242006881600493302178521664402163309518036317214637879464183719906106559709188091363677739285004689113798540877303748139742489358177865315750777057110443311744777458037018963159523494379004033787930939109968100524938626514620753913598891267589200389772733095584115827233613295472805137844612359728908549672477049453564413415892088352981431886933728800040457860027320120694558425768413264596469802134888758567088973539293142561881030847831363270114327737478684257852844457609630592971966824560019796251604255328099842447779042471389723417039470006191971889584565470099347370595338276646713198782860247619116346524838913982103222892640226493260453979507100847175953334118826402100495735981271434123209642834362157307219988191968784334151170237957119309244418012515311248245013796471277073416518758166570034924497846262476151239110615332820445431143486333233598791769853846602850316726730754842602464208050815890108522813592371538596361915444369383325742114897667673864767676113716397470293662684705398778000120791343439411693002711875554886866616843999156585855445326105645617603530308580611094440134846508472412205380395474808062577794612458287302091267739966260326650533594246084872373696939163849447185254262936400799004711160817336935174289865986128643027983606580884602410155392698294407362704976011814074196003725871596682460778031630067421660460919217830846898160134948664464510486120271855366329229225274533337039341265060609932159015066484949101439820985097168165856846270192839415295093197636861966163161937093760116251660737899644771231805268856133181957797895380213918057195255895310368981791389680105072274879671524331694228028338025669419417201888147869069138963689540439913292878470479585138992644476553196872669962342538262684088675776832611717108012167586369050675662677463398665029483685078658874454155937231073739384782070679475482053557102285522709249520847212013234720904186880782632536198223355043970723473002062397231209471743612549471503266163665728809141207293860428905901284735899369999355226169021495787953193715178609556420819013675099225967727829215298841257408529335819819037660396509065425539689038712190276918765041215583239235640754707506470441399587258062182307932715447363544208364701524958223921286017758463175559887484308962747655413902662275953380605343749949865716309027787595652952678604258151353206837391511894926543856817222070267381343229347892664962414937259303074062810143769056265494650140495705489688274738980673047472074727615287652930050292630625137545783213314306423464117080568300891428713798677653611588767663473967255069324508081464182890811477454461203935886173501362595317573744990240470224697881264416196503270013648096052228748895699634117463867934403547320721748418081070018971679043611671386230130970531565175788154426243604107055298614877224679753127713679004041036410174246264259409508863322871454491161686479334578759558301907112695855774366427969357903525712255843772627219832429443500455972340433062153275189056622049515292226439745515350797849616063610899854872539124760906276870669566790415996256705303279949428975547515694807325265863125668493071502981626603042155076645842227240108274905741769595842429389576504430316523833658075378092514959195728986094463780514734148301541893687742610046656369870935290076887599346567869341756832055333197540268418639935186658742067072178036362385816187743512919682843777208715725045490612378333752372243055841515415207817016172026950523861634094221911570430793215293319225218031630927213176255942006587972668266061254142969990551549932316037919870498073765851197585662956714137311894893201816107009486168411508002157606311270907275605982289604891796644868987549418024159918184516774776630474285113318355168019206137688104965795328495594357893465778066699781980855310637694536592482709943521902790257405506068414473762903470053253266188165919704275562720962513360108122557316398761099342382071497415044057072123287591812596707861684130265936886415974898845985544003554501116486604901565651137825842643358235845674382211602872293761605282980751109609389613888805720150919245317078179288443309517518896897463541515386265174960020540517366757721938317912436244894969102221507401183159391011670844407751532632493896122922312136759760999823903158380604726868510149314232282097652292740153824846630615405043242570937038645059858182209426167214259604945336009761327592988014513830441091410617066236855349265192981712201995812725802724746305379284856748023534443378515569635573880397821479762718900438364870127949977853580874260198639668027849794177504366377847379642889259500950726266018909796405228070965734975833428688094026081624271403304536683190308140979939412336246699026569922000138557565204198383174796307926007771790863594738816630568829858012337980949300770362568694508210428097000141753639230717481642516226972775585496458669222030833180785526640447731502779830411576705963383067550168956907894136849311936071084658176870246383136116064631434261269904042312111573139296225173029209940121563357284078479753023885290447068101048534422954882216668754839693279483184791703554087404999779203597167685790725439434282077644783241009685332630841083802015553230639457185610793534500798574431064898141247808979727412543169386716726202232540418664382630800248181558013638124050700561644410636931368598261086205559426076189054025888409710190387954708977027834052915553359496440108530090518822919621648955650342481942384580062107315743196757413375091274226718281250540672346157335614203139489184373030961250141305138180951502438756233433397732964547962412019551681252577169715785055586543774765336835377295665758500462201254160865175630871710912520213307446658246680882289029526548640587130333382332579863691657049884909944806808915595344034578070359919975253953144403004483434700399778197536865127749259109961813625324105770359224415915270866779151015697306034033790122067124255154387160459157990475120416991641759733285086310770517443011675650042456774356892692425154690601209046274363909663157551334923518255037423138736297181898657001516771901722801896609433138563964237540392098141609531467409975314428720758092852729165293683593014736083634123942410583698230226396919290010285195026028879135179325017555870671089591614058098744387904883684658570093329872371032793870222377823754972852901423176268123191238123037623646658673677239773598892367777783131085416002120456539282763964991115894081008002785811111960602465430053446683813946577038006147833216519374292677286514593541509163670795204633929938176469887665818793836380383263611939112474771660690754138938337813595961564203098415952497784011318355582110206442929987639213064135043521206873313047038600801642269705681082662491839806518444369239767215999285833457771356805009896017456862093674390364010764373725661372975025053711040535090505903073406015929471931082524229499741765968066901727555404075769490867727652121924085376193693064938875999195823649196880030565878239568351551839908935085674292706785039394773067047632387148302196398735245709630522033718972747351775626267023670841526711019294960591809304665248652110830298126161698648390338272613254510760970439711560884416181339246349157913891987017612346079263849185212903225709049424403441108100790455518208860873175237922558275353870381457093395494361657328646090550544907776347625839146032884609809375446179866060449294371492656397743803983753352643118941908577873143508128434318411719109016959181066625242823461678521468824377672008884552117495644156427110712948209874184876793837503511019822282010257314190073045328924252402431751922783863366984218878115874250309780121033736165530836200829874533007528380059091188337159639852739618603620089360596330958865465515278284356745322636754139108776103590376339574211667607212344082074013407950941859616344924786212822989840354086836280522550392896501495327657308203588129896713017657423091001495378322603557620599067574393138124645480824013995570779457734962206553433937320621384339532492345343124210965909464412010985390022843140922034094362040464510806788988961412714405564179621798680456839322542233973847127331041384775059362505462721781805667708638711340943308790150368632841134337353740227680167641743656906345462177118273631417816610456576226527651289313836623968041712427996196306423824821736381113037877231208702151692783449879316953732296985552748261537717582461879329144017746451205980773269395227149890766683669685061047041061632166774346191509036854235042500392150182928776103495852259958276941431860396296898831042615369152781868410262535713543574744036138411489403382677592468425579544611073317866622528536841375934545586276582173235838678247900702673770915272802974466190157518885045398824827410869210499812592973167826372143297687955808034416738709836020295706243926038269087265509858979655511727263101520022627918195851240114178817740922562206095950167961555311113771625283130674348042051618021715438607344735514802857672960945781648787827162926247181977163016637672557329924163476016162068250318976439510395614420340876663407335473065950588788069978974024813653359635373547345511329687571578706691523400294074346822139238924190718097333673858373521097383453517433051952482849909392923176925655175411012432305946991482052239792698542025311626178798658500633749177128683587969656240870908320842641234744337222947093429987517235041718844011680935057807539616745830424088876742611060420159483641688699711702171930974276062241827131254859177508669839480490757415062329907186464801146598285484800190003114836512078940645832963046292733436611125180548216881740797664852472963325149443117173724008231907393376665988903638832538920765812501465691309162030982291088817414466152200989562073433238689911689985333887341855218439818666188464306615777236628085137588821267362601270679729815488264562212367882065827316407873296998098731460693790335503015419705962579759805122575292746670118691344123584317848009536867142720562393427805966212073674859160139799949608614552055422331166179813249708107385368788096242363975589173151552102478618610666711109977772356942197583323283712280127025662622085397035153980147344047847514245362453330376520295550081106541214321003289141001017157883921602828324837529531117889923110360913334380085153192275485615588143111082421416097374720622610665522945598738294786281268402040432525428072721072320701732407740443939550655642912730314877052079969289705870669838418271545446207790841335694174690117795698889446114390470623867715278079722087238026795588882122468366006258370031140077104889411827487676774410349088784037708166486735655237464772695173103919165179076118222598936350704752418282132754570476315675107831957173855872953676018554119893084650737989285112853658004958165163977562293613001472611522738292693638236774408275260244930464620390670022934069975173981124196062077860404826979994558162326769032998317821048580360827090779902595341258684488490391845499750294250428616263718381380428875653594834430425145548466932232112143318483793427926988111262038377203131757950945307775517370091564302608316027660828285892799139499963395087380665766854909149730199120234998787358590123325771368215670637722896197284108277801536577251061824790214156683613324516650356164484557255964725353864203319332997818284686138772103615170032971618341011692278418302401629911306077361661986113273063091945916366028982576628469413564145379094240765401675415483065744533621174142411404816241441841333462136659083234003676441421162977324397023371607168849764688872357382171068890137762153034702260309405106650861559327386317392981695773594843270594027308752948533200987712523695917640332354822570280756474974159393356009694853855353321250824742455846324474709978407234484422398487426167607110500395074108727870117500944405083214047837435786692842452889675842015308549482289022365430613993479465434596920958856722676692651196516348571874788559288870708459660438093594957472918359456858275661995473871538437721639487594406991412617117454994316192604875505272921990464755196437702234676698790402069688023563302235299983954674418330536427748650236996187999778267978530796304173950238656564257890381166762697591882386863097021500186612224888067836244476697106949909660125216572029664073404624598097502220805515698188547344230847878316986429996215803385241146231365876602372924153648702314994414794559089362365518870026470909598944029605576920330122152515130955719138862866134580249185063861386256613568691964779930013075787494158963250660779107697357516211995553919278238830792004147025926165648681925375283071263246966974879954706056644009476021338068944633241271499293341622147902095816799721710408039820308951925701019366167848149847439426875943795619523723249400915274057802998173244193161618995758441586478250577621413830093175366719472773237542055421904847831045890609055233759264934498621396546383542860773876701525448477084524194273442870884734823383775965096810001063128586582044324385414223304845480985370105215338877934342388011673919450947518442135254576034884721809847750102835165467760992801624161214465931525763254744347680716385826598267595351617193584721418330374054136537022584916979221525918120750647616149937026391131379608390042674297809686841079817104513042185256802687577912385009596261751553964691971812514762295310133116807263852926080377863266989110784709876093369898933940339209630376268048434739279786160479825889350072149141912802228683099255234063672608364122879703360901199689082430752413704247467589625805149068869918541395550253342749635479869163148248186298097899877295033386029891809950288266441743866390336462687098136038920450927098978565137815568564181966222690884433803197402032525308513176165520838773738985897671211785997092932657060369175778822182561952023539656757603900104370397875895597223356347913850397704176942625347330194465090873658477862453810502874636342623666500015304843912086435470649216369946739763210038623597612129330910635014437236057710689096304353837736914030292900373737615005944592923659909020249747129799997040776113007940158733222387873364398826633255474940517590504824919382217342649885387300492142449761720575441079482837911163884441302960507408988865319651505009236412934435439767542822101202500893423212847231048057809918930875409874527968565343635343293053434554036216788580498834627239916928244976355917865363685573165336181918951637373621600276640880884186117003692013123915764044216127088809813168823001505272219294085454815821989674570392705819462346937859705201551779769850055662972371534159623277238173258322613517758927394887659011686885397756240061442046299732071202506151053532734685493940122939522373907792555928319302042474764026961567770673685124440110270371949892732894728008731176644347322095570178992840800639636873098288601287017864523939656480116723833146774561244554879955924733079649896505498442689425184417541940116550219274960643002029828900122200365393070527300899139976576790934522470356660515363844424189758309026351268471680671173871523348254647499011228569862471208169743768081753828208698879267138063802402380225511505073917925041155667600020070074523967990382359389176391517336303808720282091819087670013856380394665330538739767487161292327898248959039596450305306702051592349777289724518884545165054031455228448033269942830291485174421346019387812059105556476587179487854513157065670665257060204818842235208862826052481263155558520220022172212607713392757708875287642425284449175508265237200843589425508722666907756493583331292470214084637917330823889620654021635224243103294492823982678762680370600418849010657491537201753785651042799062038621214724389370424147368902521658843426039083011066615822392754747186293360529483767427894287681589656215763500365498564042593912735358885067059845557386792851643118576944495100803209432639709313536656967954685399562883321616310355624070380164723515777877946290800865703198936251524438953588562600326297362627906186151771516732913724848280879168992347509004870255682108375812427063065481656324665154573197133730000382055772968932530007949202469699977155053996256648886669953487541990166544216479199290034877889116899197850458184211526117502328649964162077836945685393221203158417216807996614969021155166662821889268859813424494781503316716630462139241862782947670731966700144892693445149031326757311489199233295148449071475006654585413550421453832246051547975061459598733061464350986863484212707426914881905541735681268994042955899691896009627644110661623409169925956226635049402259591089752634135878547752848322165490317341665448547140564998100694252648769050247279312418966428005847849872789296250593601839464760158386597231723982987956509302678267394021604194389597414114880629580948991837326086805560034424512671465930420494773367400098343675909350705440895262825493903152396645424598241407076671549945944297643980130799547102479108919241347284343336720102046677151026917320549926715316104534165370006550634891935863584760187033007176109613581737532366590614146913889587720986497359175260714713047869691081421015044815718678320450683028299446551211618566787243065366025305412411663314168320896915808659096512291206862473009110498400364096292573386371324840791674420191358427959868480169420472893113166018836888000873472466234312475680441918599071778454572048464088160563600263824019075944264373651720645422757982682599062587970240315208228054737895188203369345444615248830885772536699422471491625160692920424349475868845827504469758835203149914359875413377759802312813011167289284944648320421678286966980936615096291238675264020256798703679250019488548848881012940900210425867320035715485613866333082831551790252561482942449641986542370484874922369644518370164603824219299213653828703139327433921959500595143474980728581927908141421423779277600929973046000885751692309991347087670398811125076298702154012365244958177029660911663778332347266084978018571919922845085406880154205091071185149798655991634198587100229876355319166543972184339305682510671637149459143871835118119847443533972414365323742245440999208903899992240809588423145315819180432977815416189829646739116204446402911013508376513194029569283818216255451510855456366376171282542153102315680243765335500690495453462000080377163845399519980788274070293597433425693370062920261145217971946268672429191773446303902677574043145095211411972270035180052701351470757299565966655421352417132729804849240920884528654413977636746275156877150125654505182415575496669208868290028478700608593503100510729431411360305414904116755921608612885872260190438703818215474320572691978170439124560489873263224605819514177929628542526375607729754228456502321304315785872678221760145506607232769189237170035632606722363343783929126363188124164269754256681372086205006023269348298899156959649589941298148831157505289546224059074152144866167729988783330726054525525341071953840465757029448869459734564615088221653856434388059619139742067523346341587660466494478360567896083315740466881662653172382303217367607330022824991906651336253166557939317227562875422458159885244882999091683639156197698848212092915230872497768998422070237371130003456857056901935868692336385531503548502524118183291171991042873896527397389304680371778882934925429910406782897850083534326674449413689267903468900671381135596535087091095893793288989453176088524641409462167879189304386592092501835286496576561078534877991470321245891745825043148445676244100717708677540245329442253384470083057817609857015179791771812142717210191994485657282656312348284045354288256268260307330015400045868631054869578787981533126024892718234322469511790650103956143784341307967631815316819164394030605059747617501659587563429416162490158407623443270540220022101511603177948907579064731243542800998044870175058148655529271261973149823218372968331039385752283548867454572179474071061878259021948691914216770100671321808712585052712684438126245668448779216302272499682263065585831313382839820989566842545476829325998823913036055354200853967826027585959737726995695989258378250585567170796838551497259881732147899751845796963754456215314799205847152830555658823077096722898468067291012476746712527718666532496327089091347418142413611234449400350230928879019469523582461397469257295018815660516749411528245781202192280628727519551599970977557148937536701309728352701114270495147839199159469238492827902089366873239225689161726462410571979536115440683697996258939503384516370195233697390607793329809099189411996505447276342777050191194679010953226351045917563304604567706808663411947234128568081431399428546192067711204562550422723420578529877668734252323925861907622420625220231449461329014683549510476339624075737079251925102318812775098420402232772737479918442652492081203257948846130605148499598564243456993278696313932342479000950977339101629985902872041247329994805530328047293313118800678783204345074815580623351211612644292190430433625628158950457157844490580114494853721993125398717450497235318267730247413134154644266221074922483702663530337796229641298797544882419614087961600469998800108714591625409421966126155064025573255418943529581633623708835453247919625796584461996396163206218003026326544342298624895810352575856397806859813715894658062532364070526549819463504068267980949533026180762694343255559491598427285520690469538569300936417551695997022190402513314305946248297334623686840070711433414578763580824410813394571061437608960496533625330017184127020618221034728089301586854796596237550762865078877541964119858188851559145905276016677426960063516899617094700281659687418928039794261394665521572318800424470237459211489376802105987781548879630524858999827106642800051196598027892750014336455284196881229747880748823067115834623381825446957271424895219169379006911614166868263611710849354193931640700006849282606653560637610565216731705287487563377231533428077249357926383030701542223003494081506305974573657177036366514511771854297584222259227543435228518234613143679812356363252080950244239440133271720413529601967635555073563854078983458350687853554005158663925101377762106932540572106456054671995911665893707397627308350195263299761121226921720180882980305589676591157650627038545835225715000362167720051626848076838158640200647210444716711364264801205696529960761718171174397554124902648649122594739601528181015824090160021809847083060308646480055870766291634651081222942261546447939726480568606167655344638249964116470414730978785411644124173910351304453829864954922025508405190977454582020167124951977214633353711225927867018584510971823919129176774318862358648047706629167144392850921433444185019898706086189411172891851459536910878867966695077200333976030809780016591538927064929461756989322720194274566890855340348925010973281841332649986575038810025085833007450259557566791018834520982917812154385979742148760023760482104486783336056068403122136377998784578141524157415538231545828255356574608310111434082929092662943515449170173803203365442560104618476644270499710757095682684327322950360037327165380702913293064889301936335434389134732682688820515126305378338096106667860840684852459783210210175945398314550987212767338031195631794037935318044670182208666838740556636724265698763649673788266696901777107172767171887321674371506260955598029087904227342624105194139804890431069162438001224824526181641217052981831172071024123295792665768702956814963746612323972081047491443961206975709027832315948983917806597707893723968987912303710830234864449855775566818843724654467747435266501308045419635922839808023070598156888854371701425552464152957273006169132696485190415842842996288197328101281396594595260585300384471948998113361964644699789949127372392252685474180947892597590001448924349159720204107587977248096469596673706090333549982953818555713062976338692861526786303280790083356099533226440717868847354759150741339459913831527061743534592714568241079445398607191393316355816609147046403074984095199341981319863268663509682974418288717902519066563221888824347116822771640016864102321505573231476347910481086411285806654716785576575146832288153451907529932173873007418064629310193503564217122226788098666801723942064895966213239576709529530106168671820036778279392015385612845019477831860801720797991024552923522634337506386057845143405568293150237518335820025651098048140771724288056545377213136742024364154494102488066529540030553819083381910452548228483336769332586360297784217366410627002527067608372108163591388113115773346610301824264744690586662805484012239718616133543836305403217313896398293561430463501051893153979568500636605941753171928465708845724038869304352085015954120349000639689746558049369465418880596803673279934851852716388079890072172357906037897442318997339427997184437352722063071001721827173457975339814647638274605589564688188203888074937764718870005566847081207803337606970917071764936373934282262154472840304392905913456600586961440751941436508332384672528642493460947942392896107048522893128523352911889572096747638590380025498926839713054986061581517446308120796829919114635582509723283468505062764999520829327147992716555152908341564167555655350880483429474314646435238376166641717398422366125799170123781984036617943287179598862077636926213021000024087037696250555176798212081100053479456690979245071007687125407605528458517844730935888054029296443099765908640767887962004233426205798738020899562257978595164489723497354858275380174509007176139858640353918922539685474956291115945022892321478814868241727446660917298777794906096267512900697329211574308309074922346171286764966272781117017635675213711355862109419496747435114418710174870042965010794810278687128580093125515707195350321323265006056630590703914936638302630435069955335622074986172439494367506394900035247765734753819081141844857180828488509464932708425995687690002103820096477802964138824877295034574134926213659939341826997769551955271000006611250172364110871217541612835092956487241987810423761954949764700849541350164021060376476519199066452083894225461806499071805894889002885702672424093354367780790914557734557460407742078410399785020506254161309388491172761708966890125112843241855036471305827001656469443022843806908454992268142407733144296449898931725291767483503992580714754892095793971463264898157483502782583409057083078789663937810851934605530399567059578406274385462542353059801860503401975068246443056569021560500360334435165166777978765638918154816938178259366034873100450843950536285452224069935908448878649514154228229969363811043950374412084292356234880884906917892676597368198241767879774289219581824513278089558675753968817901315910014031423325927056948173772849851545902977326933876174917166960672466044648392179560634662666776452583180843345076511411473997760634862911934421688192224958098032356887094898211045694090684957022110675657064531571337552742176147555488141538888628749847511867965939842605477555612802133030740838330852550524724935257043269812144286108254845675729315666942361108347474754165584045990501827449490220120063926021687409374889796589684582574086898993816183016712184054367925988437891126192448476297905360256995960309991200140856228631476670426699559433955022833291787332354318453533111085297181977303276177424251178719064382739751167682756070664272671931430333500020665102768819706405585406446504272258449859547753171335139539828818473565174257956680536772390299289324175331763259320649640757712844190573432950868264749712122710911377029174505676903032386112129392161850922949283533161053921348917784951712527121359097250742369928685624139923622435932096588795056544981640717285450045077996219653488681290591952857047929006508346353613838281020609150451414025259711849218214999909357859148601380690116058149338511373472179672289767653565269984373762262190795378488028086849438159929197899853556664894322310288980278706185185060914227974756285841774336302079903787382488950601583128206018283493413077352985716000743142936379837788035275438344101970967118343854007206611048558509852339647001106308161358106423658513498294843372822572492115898176071222016908924216103796298170962960694902677428655927522182769377267348231831419380262432982853720442573510558274379183270918356555296436022442999234522589773982584892516365571324384249403393908339347253453211545989273536992782677927359710915463273836622019972761538114351207113665098873783852056413226903208156561323409850863725678337248483901363560494940398665486456640893504867652203069729502456771852389774426722285043081649710693995038878807781701728650931213559112493353080509829507296589427176183733954783242636719758337344697055890924264619297977783076297010454050231715032422275223093817502834739503068783045073656096232830454728030872326417560430568233406618912449868563172414422888776379117109235351110220673082491277834884572794636921726647797847169355494049141201255355146310504514689904279060476244053950561514333460955634017229536229797812842658080822831800799652052839810446806131788907616271244905152547041747556310320962793884506742378051126197085677666548445046067165622156552662950625575424374818160424485446695959151582336188797821894829070289595302666020366176283317474895724596165793163493943158850909047824223914382325776506558383907904026050175940145707542046506006069022372847875267078159309795392884423323394061779202770743246332947570310621715401457880984521561385450460216991950474870342157278423552583190851518970293846167490728752088164837967259412555030239221386543912202907975805046090896719889895615409284102077022990123332780246619754306695189539844080123877999266226070375388714303149306749183120532771612706239111184870839594272013346789315826825667339049717839283124810428785914499547011014641860402419499154788863602850271902620816429934263122694085419226247866922670223692892423630769165652414205490306486871799561238478507214394393964631138596493728888626813829730044671039132882942600432861084261142707312008861423334055764629484933594237791596994703997421215801181492412084854535438241689429918771729698469360760889810607999550983104149267123645181879342134013747461293412658501811811950813327171308308242190953624928393830138107367899174541757118207234096566315657796339892461323868762086198062093425961170364654041506420471919826041223158047021632096304435526039416676164215408164340025828248884747855032182409263957925811475195249654670824546968964192443306765079152506792614441578461945092967749179924848204940055473148700899357345832033570913776824462707457551896447509296695571913147430309524217726093649511360418745575955834035966002406140425716826687360354976643749006163103963772400841476914590344897292200938999925166885855468208415627042243009189511884549433882141473176127620484222356906866780575608344211340772946815752333200490390243532651855722659214472526259106212099656410061702440377118418563952538301683835258215116371571612132591920378594983507969434099046414193565937725808004234654596156702313925834484112847045741449188441493196238426505913438211167830341320167591656592505788101758617401781892548820064025221662112861727142630046144564984031684711457577594512505491218748678044563198575682835796281947879033836261809976644504001168299659031276480837211283006444220635553960801944941546142338861082393719085945263262113189718529359621750347197821112364282369175964487393965038572185288677321512491122745143951821899665186460433604798392259106467358018556193814174878756175467443542735297097622641347264398216101645610421791280516561360090164689613794709875981392713063544393840579622594806817135888019505539356516744173284616332532770594883856180307613978402640575322333750537305063610840284583955144832391681759142409330841787322662803574742013385280096226720734879029881561343302377493162557285844845694173390670151998430033638078489481352323223196903170520027910232497211311603246501296547753624045770896462164561049644693972963746406983385846228066627993843693807716979645364285641135028437302094087787677154493819084826113359856653808411046513259721008144012646480823328003586435986427172671500674131414535851289620431747931083692733640232795458016858489700911030526449373636035440627063152880992727194045262934119609684338127204890796571209385216820616091454983474464699052294233339578986184102206275116428247894290753766748070837021648070912804144024711479428447091479244619183593414970485894951624906730086775057224709468932655830488656517111665470980247612489585819176322304538378648111332211237986279298386663485428394305113751069589313106458079537849542373761361718405807788293545427810072684737138327968207121184253413234202638715287088103352991650390463137840303747980733164517731705077682239263127227715439587725727185292341747477654632623621249920466239609514605808898320720311424572150903132817598924667611868266437667592862899510281429451477207658468762478702370731785977277539132612517673456427183638718264228572424804679037284618040552885897497483044009091417715727696874347599677388666961557332816685312428094545994013559800375909395713688459420053777723018373568394086801649203262533138989520738458444104630752040969315128798537034224206292041158222439950579797121374115540249515607188557239364673347545340641741847177480840470506864677082753868220624755508224406629672427992864551178137938511717422269119888740602116111593770504075392076265404809660506368686245307229323057413231542078042704987277940058484380140043075120880755814111692084420930779070061760059375059926112022996576539708619021469282748595690700563774118001168533260019540605408066546524060225507375834584369903521438415131234591317076171002749442790251078355117460322158580069171046545741348924981941056757456306108244118267623422078713336221678825159390666402899291116407082402172724278707781081235981778135939068530994096876359484107880144734836903441069916666627297672517348476776064453865287724629398997088118651604032893652410924263661175959516177469021432438051970867822157448335806384099852831316996085482388590358393459232407847234868298797380579020626214444907257934829395081488498561112667696457344490583058097183912390703468644211914056966545118843733942513690737710738418784569885518149225557983653308140995269022100269244231281842120380432512921909174115983274794243548723931090841439920063194802793892389253177122473153563446156204905084763931266007924096016586536488555477489805805268723820184221860157560804651664369882353555397466909131514221728114839361567168305092151121983403283171669734374598696604641683017636356922146379051703277489815867310581594929189667649316194183925470640224354829627125447616238240030050267697074004593994782254419783494829547987268152127272545466814059037482563809169785314514618198054369193098041167440585906040843199688743241751863792368214508429375566688592477119158774616836952706434809368141017957252708174500124799015035310487273918357734426516650397718661700915001676114118172110705865846371496904850707536836163991861659736435715824307185892573339699301395034874710498264448558167401108548958386480606163297495620880061682040499072170377394664692820846467883156259913709242890442572431380580375143830853927205922880068273954466753737039152258543783331574518884268623062260993514395488168200333748214459227486277779092701949671036346026560225886910126549244121792202552086550186641811932200340723584650331366092992143716908273413561228462369359977030883060068325280195425071635265796201803438200443857817777468653134162775700430914381583541833127915473023244588344474065103377938023758182766378402490594198481763362532671618567815414947818410082879280462734654588802691975074392180468302948301873072467949685654832149150369842927400482742017457523084681977192983932121645832013907374347317151086824981991532773036140339520691313223683720676188699972132654115455347874863005759136398274487458208267402667012049928283572554627072050046144325739007866502961206911349587789273410555211153286022569248435536616650551100380436724712274629646064962615487512792381137582731250718662776265447014518661412665208777460184727892535716024853590229128477564124537817465672221551055317413858338815876791291665458797175722079718752013845129539542154446109155384956720162959300510777937997646375001755807436968847409927842825169503605395320981976157281371571139492163334768160176601801772245707808015635912261685179624121417710801447379635493534702308507632939051824512317660026102894236698435486497904253205864050589993521578073044313217517144433863492260076437627528231134080161592250423433172315682185759074406995976339624173622499108688979101632962397481700500684274930623978418964594726155221811033009470403810813817740571175285100713368293934478103966599648274369134204091522753201304222697618925753468951433857901290714412545685682483213949783058905483941891035255389722104567130184576600721987404638209896088373630833075464030870929938119716165398792279764666368912361839970423604886803979498517345605553475648239729201527510233639902175543710987475237284111796642754731215886709400460028828062689787074818244555438448052938435594101241034262578065672969022016886868634778342568726038752882586055536445167577885037420943725403272861272118779226381109414748292683750759489901735878238777364159858442151878189412363473167000217591278733220279384712564668854835921049979343146178574226963947650043825637439766753427815308743840173260831021853461995331013438582326490302429980489391295968667681122390372684748233974782485554520116653190149395452193076508380601546330696572442921901815268819967945026213177022271210574835478598569903096462514631748603265290040640084504884230349303213907467064257017226681432961411963924887595275246932867137148513806401422340326107963867240825069269250978730852460748653919338018676448184946194703570206098529415822984928857846304425521708485686022797241103753054898688615834737404820140835439725286602902540551979796109461663603178290379700929740345927488632153088416537027843065937399590572207910537322785874798162192173485251020462118738587940412139588079526209444889465533665828927095123991533482535205206887270005263383679690147511316303362468656464031556937818407964983934550302822843914575780136385107504063553170910354891868088794802119090735532005465552827096015498791776076889701354377158883674885778925481114815410379610034477619703729427835707628149550121351663341952864875262454492388673467686119997087170163042618871083298466275043080121294170866773453595107635270758731438726693762961608487140827319623710185526302935461338035411849030544712011502730363902421911243060451488503274797150735233193239144380229935151410460055127993899675529837551465848693478558169148641542197851112812788141489545695682529863960898560579684849423566421176646446983432555609191204826346258876312065955409895291599750824973187639711728588405422651524884187386642536189597625839451199260784346770940597297925749917460084769648076111472981813950374578620679925230391926512659803901221427096041887926552808816885167055425206438661327193469336091294871577205668097266369451087684899689491552530660026287352356631996686216646570248610620427735592516262529286533597097163391225668896261945169869479622619550186914144347097685939996802809958527621090569571887706328149016244587354835784222798145651699284461034462919417166174936255262979591498966771889688020211675791549703053223382697448294307351972281578645514226241881150710128907697208153807128402440324602652951780032301200767372125507285787843225192775988169553345324818659958441754490818663836783304303603373131023487781175465880266239287073215478220333584662741590582971840767955636798573715846299874151679729245150033613042427461056004763510994866669157155295806142874131596029709056906577532489447600535259225986990060811798448407437342434932988136912271797429755810096664583810526850502600401789275773002590018610898869911236274555796145504046517702927073324368218437031162778351825240846157019984982806209563105446307769418106936338142909202481949752151073943655483517171523193877629283412382038545451837894511984045508628334076780962911145620751278578245058306408301365064857885572709414823447120447037966855557615458648270922907018912939144553901912193512793535897122420453740462525050454423204519128653885711158188109715334476399034171115011417847790595891967964097552676396333792241333777479612294160281808952408115344089442024362558923157092003130409588288974827734830482510638682654593200348521441323132295333559026653063027935523301078137970714358646236393605222073934019897956249625169461114490070394287571461674770557415230014700568788722249477483218911379660433212535481116625421453108212938411447628100327890829440613060522693857178705428848769787105132968222774483685621697621510634560013799720605622013124579428649575119903737464922998459194874434372300000705279337859139364636046236744695877865400437323454753196206164438952773035758929062389559142303569400547989690269536121752436920751959102178086569349774914963851562311632890320865340378246485457478509190982629406368281183568581819638465731628218277795524236004011493699198977891645624764222928040515764248075928148710173447677274528523391258218402616363593636388081087838843520576091344926442776602071988595163359198063485037733100306690430899045599657534588678484292494904062863817743517624349729688121768953856260517355554162347006779556347697833444295131629237817343707193740856851227814122109215377418211903645922200986049551667346620137826573416204526185083310528930758509183749072273928384221973763660720745246921157574184373137099482147463704542058463627504712456830751466733209630539264263501356024141288959103568218653650110782092152756913660696304151583776325671440815313926622845031715106551172000948175232009708589486500520035792142576344269542557860212534565969227400568578466462550316610992373171574939005270671595989116733885226282550330587058269759363663525284800821255138886696784939842377829346023505600929603563769935719419178313549238100139608428006920755320937596372964930542764473060802069049441911497745085875103113321238523794197330160312164809195081464575740612439304551204874823741766368530600977270869592818051131876447228252896102672470028381829429028068936064493175511750192396239279299668908648539474106948679305156102192988463098092946663959838266257911894371043766781645830625153813307434957921754827400537613375880745959514195385149170906086487987004820217276774793243764627239672265677854766234938011656978591462665000229655169485850223789254078684872278205089051000907383782387948516001217223063547843563512242295305604805173810512875354992687299523404820523860989203297976301116617948036023548919632931071981345260663380287554756057219402177629198383284141774645710690297853322923705720020196809595800879568512221180919262210745196981097631792842263050392972311550076929261414309279232322537074004617172766733378269388847248713099405790410868626265287844374099852192752180339979309837161868239157671025883143450348708994984498063449930614237397194730757621749751152468858010278903375479847500752134435651357603265949093709739225835108419695065403117718328440431413514188956820156412040722598077307545227189161030888795828768212024672917240449498170712099271419663826726231491190842406361832936677274601513945350834417753961824116472579875423764300221180517583884282798840900507499738704094452786456471641086088646110535165164651545927329494558619127877825911004560304934876465217141063251349638022174376466082473104950663163198409957382212432852043178330781001735077210638499805848276533796544355089816223132766039877198530290086099961102380484763931663740285728406951184391198981213902221266428119258480972472472105488814636565807454345200168410202112884335470252536744570446304771419685394654767692855059488222375458239134709823585686275911152859379887104676129063926217277389110152671538788792595026543700509796809729286279315018924245393922877478331691150826429658982960993125822405237365267270984958097059003675114018463067776374354798385501075323370908081101515273128988259266426264305837507446536800741402493454161565972279966670131818397143884703542354620362651937202675187624909499020716250860926161850524881345247319887323094986657355157276156366918799407302940791771484117020255748825149674926697218127405390845190436213787713917237214899738747586812729815239590757574106373321255878585761724526810082673925041275644000060864764634427503717729834606599655569439183183462437568684141008234973799404343202720134344827082680903053284479344405544046420179913856989103258328762365504434599063951451824632658751720342033983396444320374454702468097281725233602883129458035553857933383756140090376953968177022941655656756276125447939620676730496251135769680028441406902561275173854991165763290084866685405184753066349967572263066662832048255982658401403812993774789469879563257089272074435299773575015300630521931642961623878220823374968947349026609153373163846294903168937099125557322881800665713725648634744452763462769872710294612340551790509175377131672171184976478843541253117625379928258136035735787328296508834829021707755030303130113856612347093005548718144236103912968916546216216189381157700904875252635012583122769374977055468853554986221521342231087281669790677142776101202986510408748669531491141334094431002434497025678028097866343161512346661705910704939182858083865492574695046117613769249027009464319199958128848618244287560966116166273382762263840276318953317205667855272601228326197250403360669765480537432068261755319913205741513834800906527511737923526962505311789233516692395212582227816835695014673908109977077947005736836925927739325883339815526469173932881797716590667322774627941863692247616019236628046797484812548841042105287238985885509699321487483847887252516226572974265814305650974664005047891002077044870596838670281017026474779025807899608399191432018673227000810330216486046971960262426574537811524615259106040913559092768571687191001750204303720696916784271542219954129320482809615047237459152699324115188697825070499609753694485728912130575175439469591818093048025976853971788723065178210995233114966764916779550085036223767067857249303115519285097022084233148041010421252428360916331365701615910162596612137183902392334860453512651029469259212490338827009286580455597964573769393633820648218048287081825857985893867246932411000063207490208353083809306753885059231812184563514424061173131057489794770658447350854499611145915116491060864496504158647218408797029199651588660173199644953784080568017888475062244851279496946974656453705016396767781103929500355760595036630934263842990638077184168549297528529636386383687512034924635426304468907351475574004057008873590123701884481338274502759677113353512441652958853754785284551937046834075005661909812403453006218583024879994604198823070115725362879856339648096504328907188979426338612644398137505586028260143948628716359308132011178912956650061198728357777763084174840193908938590971203584389342118254501621198850432328769410372786828368717561909736963056996819785021146628407434616653253521656089927595192871108909253943356192068249558617448583907697876883702335506350210603751138101845058762803399218037193625324211485810548574769932779771464280170301884394619376433697641817405845821169796856466907500902883746786385997245550689889648401872077589351439437550486206988516347142964937904771940750496199044743744135634482024010716326106544001546557943471936344598864705329271510994200739380766056968951752324985031369536865387578838256639183796770233277490559268393484647295470361904879626579407957651185660455456371178547657383861067074810753776326158446756081076406156367203389079732087239141738614867389117007029624010217877042521334448601304646989124186048158818338468166659371621165895320919762937966455750734149616709680548451140170114600165653849576546571563530469384742324209436890120664499605022755241707917059618349450320557116359096765830768750705243398547274478138412702767035668850907464029824745829047621229362152482357536448838070370348968349360124097867266348810236236347558101738223638476023214949177841940349766021406168311762121730785143719089203427425324819667447325029457888848167802971940061807694415763233881482051157986121996588314369828740729194787982142630338489022382891420244979341957377990338534887153165003853262980335050344078119230760127083945215781505147317287599012120147117919124672244747143264655687272428729051525717221745328372635099912790781608350834591855037887516571884321058923442883221284242881131770680469484097090756755372209542621459075508677079131019867101053387742209302439617381364572655844531939579344448379177032333037108125650617020707269706478932307827941508034786909385114382100818314795786708848102538513251821679250348406025402284432774317663247607260187890994552013625371675230165762440293167351580479427250608963506492518369121485021131889805397402213613165001899985785780903968880380021978028310046349987631192881467032167166213352777228745130772329855799994165240971311159553408027181667936381979370935536100446421430560244144937812919846267579447135159796926188603451004182344900896645615735350539761033838285714159005307429780982281793150889085940891181912930002323025760443680070538803183793831539782819317762134026329776635700174442955075594646031069607119911591447491605261572572227323654325160306367484648462150486540899379169329080574473231597739921144988887883544745012354712957786418850096489568232178416212461869880575423224916382502991591945688875822131102703868081616210549183819208874706056113876634185350104132678157757959995079012098468883653847652913228293074860406258452523613255514221116532335338536541223351642750881580962371846249974511075265371937487069520134334398658839365331324551780632350488000422596605425752653024685801443978187316727145476205286612078096266635497918275744543745110752689325740141158700256070830431756533747270698026212841045239652482129485130841684427060593153502869900081866969393770759585082555561088909117712792230233009671696886916143395302356918180395330882124651079706096965670644159138339989442474896028792303394805119465072577806035231038497361300187482321967250285427386762028209578220806073067924031288426885882706999514098944443044397492504620290634405686612881146326105567285144078315294648186810809290817453062545136989145476529165862875481065452874490525241505396181906855914565714939987936242955578248161723920308423421331027789728876247311367155026896710570065412629387853954185034835821804015303385639863837560865367573296229752673967781915900649479988846038549445592156695163385339506332393179899244684466703986120523228895260870803022110938996775964222833993084630152437286525991808844637202131275577359277801889366577880067459655583348094631913275111890352755741826908948147622788591463387981783314647248130829458388506168516976114751789985744599419586269861926634967817779005825587028143940977246325430263960241507877709728758148228921214386133313216572218774612210391371992593268931495063837176108303632902390375740476193971691542942175555117131543804374722883206169255434074063518375427608934257788980419291086799461292726359348202457565616316773897477545435491158448796914453493028713263459632767349304926803132296958716740417178849344681522657546938435280742300538781178339836824525308058741193772861363467582563646432515130302568929710466184376940651875655397603689649490714674432111934949200459479492336983169777266906313114201527951647094313253378539042958945734978874967317570823430260197757961750706485674069415991157806354335954947645386442774600937470400726716948077063383560200706206094121371128057793896121540024689785761602622341894517990596821566013039251438417273441792302005201824043787300720072203028192571761784832711147754613368608203432869600374798060953773398324653816955792594551971377374251135064478834295484178646958491762900622976431897072646398512998258842845273811383937236791971331690095521966731520499643697305422706501337937273640463148003533716791352908327017424618373212301170171194238759131187938340799841992438924038426011544241030662157310310609207898250746061504874506945147430878860370033228277293460195183018199596394189852861160733802940106370368506562262968082848292943839141306739598743892625846277256434262353166138832293759819787150014722348468289199989783263949447161884052575072920806927811689081988846266325731339509879046253915787114232032467165131569722492666431619931988976151678184540173546136056075624625847981859599198783610964769650299332215344797713032568602093207530279558538334746361651155130536734953278685324706143064552656622880103206756534367187729084616126277051158612031581058794483187629897081713757045613375572529991021842199501526599653969120177909543182498791046665348562447005252287147057917663229824295154296585535471895646586879849498108412650410588474876426887096302846042861333680472789211966045190633121814148986961969919255161608297359363403226218951094800882815718015305691863970394046027143534091991068583619657316698825369950704632105716578344561482250983750834982253037517942397079848005145655173148529152931979163800603857979046081247008014318071464957714895615350947212435781726321076460621789524120870771050748663425435960706299164120082621280117397198238671156938601289717360557916879849132545482979929210198758309092516918322995018058418957900326470352033427926858114287363607816761992683674925863695693483597381202869413427587069403224288032205096653158501243948113991487718507358864225477281725699130669631559785291591725700512444275085824954878541609322475655682786188367477201944666214723217322442845472110292673270204600279490750483087328807091094581253055525092405551099593952157656543083115061625435714410678865408555626392781953044035006949962251834416293312398074818079734231857627319251058959995841286569819949406927331602794203432363672811896605182960045895992993686319068565271184291181233310307169508826660856288967872752225061965017470710424217480596838868836123753180927604719663277665469001144815219779249038763636497246296035909125957424874954328937172580483450298211187528446429469794588291876751022072696816273735621131706482514838570240149440318036313826052059241645946786461755631679939519792592945278789654513153576434917545185097607212213701214774158017394154874617939482691877362537187425673517218026050054670947291893042839234290923475702141789643988853065063479827655011653576350838735594492528823782282073641657098132358393922485698832423103807172597197124588130969675665557364566203866941737541858136572331987663450705059576716324044119264705122379885303091705425843966035541646644716588969495646812786247290739588891650428065405888099719356254753792720213111571973419092158803998669366524112378521999496854798220371625237220096651706009907413029301897420591393526897788150094887466291533565634190675783405851595539052490437482063816343132583500011401479104885253889541426505486718538716448894839964855242386588006522975415381291736300596509999163496119269624411421023428854602892759595340630623745812228239821956153718500605115673950062260577076424697418688493768499198544837425725747562269706725527180590081440402029662886255272469832163046307501516713862601081513023635938022610771139912864389188232030224808987185725141585600663774775243197047891008581920480796847029960728993380325332128870005189571702313763133062619869454731691955232895206492805142295268741839401623018006059769155087410836975017563248124515253830494115390058506182852081036512567632185407531817124083210150731873307606668935077431734696996390858454017801635972085149328934491561385039923811682337448940694774940189757920484293618361215466094942201864986676393236751190550190886125142733078455543182766476392066236233350464436086996961341656316941527345562543925384961739649909251655857420638224290815732054489639491590471904601164626393402476639493798061749101734563540667926002198796470383824294373205705369520786340949052054793215481261489025803299326060857550140580241088771968715264671066279965841036522019171875235131357428268005545187841926629485575584798349503749012161037802243185473082851865094723007049416223416204330068110854146657539704124289983474181875051820800022914432434460784609980811439328049676281986919863096286523344695287226635860089342798702059419123801411581991304546033225993901958693605931716237627382162003223910145840855752635821905540402551070645760695668761757939076943783636270682335217617983267876688062867917414224478050712024288443539174860179096599947249940280327748282662834779968430301857741735562241252508576111350986054808449744659275308150383997118482041162002762257261763264152346364526841873366560438344543597411101441420745459536820547518091600201549586067454486911300289593225073486423012062857921623611453827300614708458912539008174641992243804111142534260077101486924958610752013100011237328691294049191777176337902274845171870810626366899242618258955080052244360787715285570891754756848167569510070672032303553702923758741838393174876187367387107905255212220607718338351588169994144772084087078836764480184760753073052311323838683431384451375069141723686787565704595970281153085800457998115183081537651446166096465746814410997628884507279631438066355582549676937660170031331994454811803746280649461201032315507231587793912570900343374340279439811433679753826039935574694654603430295440263162062488731528352543300893220070016702823061887230596068649710275438637654627223362997205406651660497673298689375910446308209111843339991693777520677239515580887707520499851841910612941496003437177379970532387409798629999599861946000650109475461192889282366300565668896419532777302542922369205994914148343788200636057213982626055976882044302750040759643962190675101817081839134194782273465142052642949715921952895408066694973463355337339826507774289449662338325037006981676352966300889015832148074554277348563461711344978811594826329098316268811429922832053435893271482538549866925052047139075718919334101205736757100308425730846165238319111986113790249526476113062577951816201506714838551052902181287413272557518870711381065057535115405849215690464055712998929247482936368152344790118622827747877899654240125335864410066749003700631685871999996493136385145108616866807153142787375854299126774123428008473522948621093349331564964296419243726687056628901391117870077290532720880429586491278384128012779875191134277954046728694285879643157754467179676084590850544101168143802754031705174624768544746014964521495745084463430579092703036023006887885086024832175933791242162541715508663190895788285345882815627564801917144124028173689095929512715952589374740943431589492728462480499156655125801347074507987757790241096785165376217721354282400227142236020651387083753763244189448160500841555782625235163845767219940177272842246172298802199758842401015773631817180521588506562375718166729342943389582510388471478519736238122385357130775575776226242241345422796052255519679105550495484996995590859772991470978219561407878191083933494872854751918816400934950672771587464898606433470713354131021786575173898216016138294705835848007666027610346826690897390466205221411518747556879463221828424839543880351692187453036388331213982419116904579561941543011956356804272741003199515504105692203478695951704508542288240576064523030748530287429688389239947462164681700453348038967675908771956343942786753331132137089965735861438224090593015140770589998723726804868572613870496059389894680514031808561408614721244828419108673895051923390169856165378227393705487986394581182206797168677381649971902573149306304800596776738547368010647073265194407192157093272036055576011528960536360576322837778172499182892017465431266534826674823256531761888650494610680876517916934953573060149422962447516048517550775002210149244860271804088473067769733152343142178714355318405978229332846247132500005079594838687332934346881739278110772562779808699488645186254788042846093665931429251606087941346683311646132530275215836016244321327075143943038429163846601754374196263289839017671907403320366803465780819516716826448606391913219365863584258692158943261038120949314239585201777326118833382476620306869014345907207158572982772742370711345849768637897796268054619386119794193215152910419079723980215464011565450454647403702849922134485218554643951947912833920907277259040213659562847436054815124857609532597012937066710292446223686430314114363351661392888274033576127027807993659815448943025459444030805969591043458490496553070521582330701428216544515678730857366375952210904043711148507800730849830588072290512096620215556538789837333578989821525511915467285310392505684986513042577359309698246113232823152869655787046754830605047482874900504437624301800239806577379061233881328921050507493280323524047629191613885359831399717452698596167169213153633329692727588449023859608041883372426561700927404071810791317107555317832168369269677320012563608383481000048434978701021935589370245204027778422672223209953403515144123647220871541642569739483285749960452834734804455432126670076196551990278346187052353624870710138970623327896882885230351524861490675006243479771657207692123839664830740527524406366369104554412843249007325349529318030918765796656409259261210227885321972292442608346644757208123117465266329242250006146361427360670070428599277748270397481801588705929676541755296928451087499657661050159975957597785182657948980687656689842849910205930034812016898359019996381882928385467951838179623947171840757684577909581211129348873721084416961461387874412234589535128273168005821715441315685778959748255769701416713563035277326530005322775468318749128489672700610182058092799137731445679254708155518111838750152815329447972349884414146003467556212452916472048754428647162008333716410330642722803953049840465353153656047022014601254160792953424717219001696683139146601156718781068898830612945241216411444696877087580725427990251103967948877608711914787088222138417869752519245175162823692639628032383186613283843410246788897668268684509433740954058686513996616265541061552830181342236560851014162165826178248820786542968132579776838707351445846659387160802212534472970657428468628429124327059694310023255724159549319110172858332201700910806300706143167584718401509022602998013035684238848201493339734726082742192119156727819244574626196717318421018643772052918705166768541501388915025041758931779478287007047592032843769148023826918159638838163676794007658679758826357762449483864018805444717301780375612093230416055848338895040803434549947401815834570670085785215122101179514620240867449502924328488847139487000613012836963917209114250228309473378958036116567150092075657274475148145580706019696644845729698541768565032829533566983886253565408688701918793840240364761344502968268068975009775731925692040272714504104539950652588544962478805626109835675990242421856089022304968813094305575131589677329095649439331512920645876005539376348943555960542341056672372240999809313050735614519782464934886241751120780612716085497512611920481947650305806254237232565957721466287044552363296376076578333317778540761971117110892411534705669287171902475692940271302223849569674324020325979822298963478297844786882771984542395475069536545399991197870672062050525488846056517611665187566618475772634946183976607850334874008782500288951133631357718298725047857301917082882111966155327946206477294578561129227449952006430815143545020626805709808197269368144798045661504305862946132489216574791233471696607821810978390486976795502369697815210093278189727310551759342568070239240367679088768803885945155456497501800980300448718279297390184637584784579146760009385501326864251390274446329463421763688460395967973125927616731062834160617548689428685298510351935238204276262415826080597239552452014000479916374826292316254512430589645325038646134171748262940225990608043026597184923215340159279486333833072896790381163991008201588442542030420249061170048636770943020888333003975823555206486589649476899852039258882434446000629261023381659037951987878568323463474271737764433509344337728355158660681944066147423715557861158334406180749888497582760079401263176131592258262147480938058179141654352820984330054842704386547853598368301886687390012536147472421399973504733772840818022171059275799261745626849123178107915362886953616707083467091710451657324766699369339774823319366886336793699793811275895492684921861676301070673007251038386472478023015286549506770314417892703348687001181865375486464741177262543960300982695664322550575648001664120944668322531582924085553445255168019126923059435389084956918549922174149525245238988526254845345935216147738214957116363600414093230378846086284355523365119210768645589592716649971526985174178136090380743058411236876519935384404762120359240385656503563099139176190339667814993332648544605679490041194179353437979872934407142167228013420184868709651436194229915762767879697911074009844028927172736157499111839100692093813369202292813688136904075626416451331618959581428320306245078138834531711208661006425557870881187756928180582374791792485501195487030580518232852826366415582109452532484408815428406108012782655192685080168237942995674965037544179717941427769816077962216448205419305946983404795110680945642583404385262995954115147771247802962870108951770258212516782422849480145707600100360250349753051727846452848576570145390066638831288448984000084704370243366314235419738444509334533784352694615015658048135302894423773526144444152008501208944274617629453915767149587003037590956136642712499672291513424819526197758248175658459565697278395197496256285361922199250625857101279046712008279809533753405273805527699097735248003725059537587699625196873471670510388884888239272480437795895683280435173790291113613783563653517846264160933242996448256618130367589968849942473029767915360232114084344043540251462297230329380902441871297315113166162637602608415482389522342476578415173367400027964050568907538304581985059688408349011357347543009940380655574084744394159418578524672667401151029754934951135599392997362986940506169102291904585251614872052953301248384517555545109289198521048468790608081924116604938133896040790489880240298369725238258497315756958391884290501521261114487216658573922514470302119433128905801655560654280303173543053718182136825375626877970681085237355572297838587949113304321249792261862580669050448629855036061988555953557450983461060352253592134256052036756941608079570140063116323075423954843434244734430722432663066395758244994352470704323689490211974615489640498237475877226501299416604254915836656276959872070083018885022945265124560332793901817959614419580249506378357465038328387119342261193937407463307520909930915617772092127116989901911338365688151579370470068342283755355790069745285863039496640210938252198197759534935227018879268389936147768881435728015437524768312498262422654300068246725367507389568025326654703939382831694286004810265738413700898779129492163110006953338273593904588279030743131956527068252710830415792615117331407758794356669910858100819986445417703093462791520022510634122878837529648134674464178885720100607988223380165524600677141475249464177141755560533700156938277339149471773273927421582260723141350606310935846619752703314936718565376691119476933902724972320285397421850228710921090473333070457830963022632311936735689015845419414382233757331222712520900180651165718237468729625609679678663771404035932755108222542986935315854715475789280323472549321177082774369930541071260598485613350692046628289107704927902427925233401965810337656584761358302603742443562223529265988531658023418621545811091704859904858146509054728050901311527067635541109101612892510112288502728527505525142717938867028328885457956698581133311521322525323013983502988166796033510628968594575989140822620986593488811101941602156004950269251428423988881236158575224093326320600669520068723847720409310025236946767073324492282024356478804127394778237689125858114394205492722100474938812670242427717278522506157961322430979939772304636762307848108048143844645191656280941285769049687642844654306180854031335058109133650374864430816666718818523392822854397142070692267330512140241459343164154673529182104895552074934614260732250508947697770954423337923371927398426333815820699941643070245642397749501972331481324763322698745043814907353360587007982610734261233756947141104717983827741790837044970826687031555464690114370004397244153303217509943554789481396027011486943187839208834427648599787190679003653364603259703612510570185872604765500090345062716894645106531123835801059794905963104867918296665986095741980849102552828226497724303659661415541425973666619700932430747319906819490124202262806311521839038473637287019267239282566414138712393568513667784080450126806206611977861450119185185933012003217503432018668201579492543764994108297801858151251814646175803645000500878086750404495256500627048434014613335019671318164916785850995510818400034662106811909798891326151093769557275800382028832380338795415885087635698955174130489760319325072375773686467210139806694709116979700796960074023159800406984335803617573280226756000953538415805174514664431682727117145829527051163188888053973737680667092883941698002576993305202439866988149310498411033091971640655100617691895889937723981745885895458915175208978651965566182772966562370570959583081582734872214674988952671560545991349704714603619009015802051817727244606476787303110936838674965052010601922123880888325013533929680378844255530611897012177071622468690963751454616519897225480079128701845874701365539719059767253005315569455906136798024392106345821975202200650129181255322166914816539325925554228350149495423087539360775957135591018267171263980987928845362290800338235754704637699562941426832881443146658301552560140587398244359969185999276558229995004908937252275810547451416161369819292368229673425255980796102705023171703267273907338240093966705243142745330934800350003425165834275446397633830072580398524009929525844645395222595456439467503105527857277388484530947307887113101823221978552146864381674000896083065397795072497261623543502319919353623850640979810648848914012701948224762898624624053628462285399782305476177765912033367752634996008062061535919412171690397643951293157074803072433934718402846474109563861651357039484516230001661001262468215641079832870194502668143826960259925103925075038772951221993422406655618919174492985982614946917144424029298832687699315774754218725619064238822815503892725130282088696437601300737609194408366489365004415809531819082276514088269580761057478081870059001704926637613084825364375466754442574374593212465193982671495746694844734288974440213779741739253739716551483790634538332546186145297018534444298595538089403176909281298748850786674371439898572183226817639742571951398531367793372588617308386743838877206108523145022160364465142439717679145250182273288046050542107715331596633898228252442386466855987050053194444625872305961281270107447616380337556442612410447643439308900684218078274838582680182777260753680532944259200961730621530545964055321085655336318218487506882367260256223687124733417062757732865894442901780203893990961127984319054216037434292698935795493002456353830180041258102492844022463834678547116144010346378698340399271770799114246806469398385141709454218930169962412604103795109128739225826072711823778574210607088571177523329901341229330131611600016972948612932173798600963400094339186219399642143827289093268115199500443754624678908336523363653265070265462787933613892567657906827023919293000043794186335021047147652652095174133308620859332691673266346684176530725719762786521647253599191824201021958144509638545713882004025373650209780316961264384105152495871542745976129193322374192918828608281398259279152568081439386308549573847510156154122600353107806966563627911117665611365806732039157824904968610716796832126276465958108087992851613260105736819199952730609895185380325389307287838626198685136902112823563996832209028531732664448743581934879392251700584863182535565903318452436870282458799259859111475077294029737686910524677421280410297897428795215231836554849884786768045393343652591275413709429777815154950247083330710582105920717160900756533430281585591509383654270517929230295118516547720491756057807306684601376404696840425574045777947703402999670845760029894578618223021353252988610326241885661492518876152472112103498192897267579777042938106944297951114890105739192903806265932497040815781374785844776062994877155657957319176022410709243885208137061551687017638432294545052393374882320114801881636319529270890067258922448582870521188745554386982125987424512747886730894065752580355849597089214038783986435128932906826793447503315583106632723120458132710600669141403898871134232437883530168356424819754874642172862093464978269526116391572331996855072651008736926229870749836745939766083877812810409977194652038697924677972621845743797194703983906679524925973572063477969624732246203400709667687678292192767882814914586041758697152814374381510075487087269355875609617926458979628862486467434203998848091134750955330257745038278846568409511985472537645915712615696765150179605290449441139257421967444868812174972405871529596931284790118276197838832707110734553917067887168426248507486707097789424299962586194129971490122896757538174918667441272986559165236386319177184339821639386512165882854313278763734017313971044542074049513642081417013526312707740243281575216619278638263943562054162800980811605643964845551100066901559205595149591912246283653675683243583080537855721331164816937474929728236624525461699493326063082684270401840024517930909818072312651770745713630179347096240282056408326423039154029074029534288735172524802563475583357413522467398460802707601960238520093923377389631893256561053134330181256833166058066513301285113079739438874183677955055620488859411065906408380422581498641672061964512543971282652546590814921076176008423532028582252696259667296365167604477119471590267424763887452323346784771651532912928644125482731626458653831016596971678506297420130602040189310992215210114944626635879269291599713662203448841130135335846896012000105002520644531399935849721917406714218564199352637614813421418340389701520723948090303531509180584145535754134675561344506000701692798220063023247911135811588429934867142265161357287145429147167564206824540795148051584139717004977953547781136850126433324902368406359784507923052991321538618783791714144122107040417813820044757353190285075770853443894573009587702028635447638215652235675666974612479818700170064390527979347161308849353083472608038757761281379426590234206531028345199680253139920603597247800796088639792056897665402806189817018738990297190168923428540094315480811075415630122513273890405065884873904294324946872682233043338286577300953577359445299409429197933006136011817478388256398964920567864506021920196045878849296603190327105696471468697996789965886952310884291035182394022761210262273843307596430183949003889039400009300900050239323966455254222049961592054317017882296174416906797867062269638391341613820288899596209691845179313334061179049770502841081835015447410998395827886847491492464609986313570534282182798399287413275559849809100958200858143878265588105659382535955682844777633710248451365095132319365516478335255485938035981659413119762344897272478701823667102744927529129249260286609633831913609737195526971173022694754757211968791708003011954947923150590545560901494235871843800373269028319219894344797666936321949006758327572529678907581129088599289931867310723762991341598522911814302754157345509264215713698522508810066784975555672114286116002990908295637282337698054692247586673694464511499132268517902067468072547823016814590030321648548278200306840421272575687917732553187986496081679996126669273871754586026612270449792469346011911576894216031912439152408075945818158624850084349041506893798383109197529589598451370335834793532033172367300520866329453465938204283173607577451226308842776940242113121918577759877920058284030352786776594923523491118958833134787597474353108343912845059433850728411798448697136721216417157209438492778830321207010399666551903873954154531150219621525825855800963671547039081768053932372757993005078236062980100316639308445549827311491955504625537605074196018807394428498442600536656730956588022144750074705963142116660851141993777897441766108833101656075206458387515224532198586214056673349859655544988612372879618715983736068321811820203993941965634267771059965203334166809394703371632603215994152814873205541175690667410880898089884438820433774154534886807228398039232995851755421096797602909447018625281527178990683234371513525450422788500509952788721504834674847252324846994811041726572244277679021529125248360323261909565624694381805871356375369526958478930263372227355515679686456644753397723187901614013549245387737376594884249484486191811969082734185754568714273505257059431637074113613580045289861086057018487531445707774588130357088014880079407023519305474548256365284159221818815102924215506165639716511761048639826805479210179872446041447949835327101039506776612383888917467076143818238016823710083454508489152961693097290014290179036461138147820150675494055672547972875581426714122242971797873095520932582218172141814443950355049821833225433616009623174198391792560299890726202015449653463052062158158228388993137678998793783216039181089401625920378558926097388365635988823161461581023616160139779283120914913683010462421731936185273383325917081610337941205373259325268748785591804760431539579867728197787585592740283379938482411224057810238626732272175786861925991973093363594786108350995482182223671809328603879445233626378103142599467021409490740036107292216711666592582011943349702354217054746203247336863208413114204593576565872171434208267587611725818004557484426331750104738262292077310398698810468370057452195076602944801553875132384051980840016377455456724463553250283062169743808293103156686457885123534895781004716910010087319295332799412066895846585417586018014301934180466550117277082631172583068984394174014178201685035783279250329136246076051995831123175413681526528483278609901945001728885235152858069707598594979903163660504688785562492287063724726688654306937997836605820792867162958967347185768239364987851347556531588757654941581895054920296042034932243546074691239758304369340896131888932625772323058844424160974372631239088250083533438776519070130600826761468732759173638069930491798215313648716278290133846383142388587869136472525734513448094971087920498689306399412262714132054404468295795279573816469380085242789156882905117478779377640372031890818765813317197234194725236095726206061318509028356700434119006267013807314939124573086241931346379501448021726997412042454069259745531916542175783675960225182579467857791807248791077834013046901810956879579489533553412827773016786348669484959909181763179352459373638121998639893138641144972872705016716558288073813728611858476807472606961234354736310384433950825912158061108280943470324510145997506054241895419854792591268732236713373220302015482687487422647871096181310160982442099063111705315581820566233551432609937320038354558525863823875165862057179618511090083835502595470941103862795603586800412784558961765235991711256418727320360432227984461468344546954054916356701422905525035223026946701828772591744822528102288817080650838816705156367791950645103783605070012831125403023345367984873929057750337257002757782504968804195952368117946205118719746743329798746195057449528211163921788845259001728872384456142444969795524746258005410630622847168618793783809824122376894772660804739952510059363793687181929001756936803502803407017544317976753010676912141381302515475613235701034012578169262029296969598342083801165118131977871285312128074541692885770131270235876534453992407018592774957486073981327092818757453994535911903095908425262078057859677621882639374472128931619951231866309660037467102429721294779231591372612971760003681947554805882295413568529279345117765355060955194774773870738354395986180754837957562480775641748409974500438692338337495214176172217567716041896524161012986751041286514507842725208256756469214960188617547561524306271566796876478133715263685807732526060215984208298967810712786318271350482636614486011957943282554264949067943752462068913024032623368712994473109027862400555154019258498756199194216093241087940832813885324766273409601795720560013307318494947482363665139817785103981107423378768786952608025789703708271884097631384436770589062657972389008875714049977953843832848728369846015123490336000336333088032982556250764826068172422981936008643036517737288763690014822022345136746973499202249783281396051500654394241088930677629901547629583241935846564398876640137381573087178538108944753412836547008254707446551459872604311570803062402407242237933745171611667523799161555403891001967665016199975730790640662498904961145764314149664296340418057016705771493198415597957627153882177189093877994415548414100297377272113181462043427634185873259081174197296586168477801423956257217500079650593761479582152256673548985030385320725337941791257176047941135599927275215562862555660152629587780634628506326270867099764290971606337671810961036035730858984916059688898866047944452184508912806704773065723181620381784133688505721796509311695914191968357733819941152098223245511244581588349220869299546178858246736376068464433365410242588833969538577449347027620244216610879734732520609263098543639628730217809807956497637199468655422484975608617340350428784965621069335508292430290888590633437589020322176411574214579830025799382503721104294152895063844474197214881384793996670190890507896843326575635342225526405317062478464271842171457312373327249359964443151909213126773482851836102145329490795016249879501603799884384392015987708899079345974969409275716745866127695876107022230968868869582854014933461431985039578846123310183082861443348519008992670336031955968554497693867408526719685495946120662844257468877406532570179633878006690451923234900648688593162126477801734753934228857900948108303897703712500535727963857684968264586180637795801271688342411772720231755535046413078155055406629650760667419364244738651713760892760581256256627465743773514295038719049060161931938551585692333383615284383823583716570741251717102001592541513212162143237898096458397948085791734894206795986961840685559707445771539353116674982572656421939552505064488449237992722687317418084929999730537176567969047550629192939432917958870306270673410655495359832872506145068078639147421171867548219277138061355309010361608219535720719680515744307904322106447802197620833099531394625603304889817488338135975491208980987781120672240348669020724568010061594683412482048185322466820280727664646934164875105919465823146091199852244313364864437935905937336894803876389006898184930786862428869710002640522169526516353638930478718458968526959703463225552555112192743380155550639356629094846660041154542280079496369720051828029390809828685245202668130518760586311309818630388533002646734499691242680023572019829214145899593742326145977060182132793584509544632683333036169069350645548633073117489625223982326885841324614795556766450813203985693257070647721722242112855108977857180423190719361169767279558567655122154134513450324888094860359372061319107112943591874374667972820898538994635474932673748464700774518207857681765396561770998665490955796885862232134351580809119745933573338917856184826452547023997418921872078626955005915425307975565831424795361758827499291273013251485441690849596240324104411556013409447449228355270030245217210831479004508518632079905485621565025172696179804715659823717642488969552647224533706420106671308200353307328535510676732845610049482555385778472321611999041342741948671160652727001225890507387517956169971673339722385187659249159276457043910981044556913066035049658222634189690973845229333327698333492476080926982095857566574604386640545226315860302849206374949914655320571125693980035581828642468698483748569360784749823657702340903155053185614992839865206695944956941587601129543141681503603401785263097656314396286395289001509807302796676256195196377040967994134816328507122586235811729079155897517901899843734383344662818565764706533508000866632862958541583176452012116233834888327371119072344439816300553702234978594659446139444665180368795052126318232444717019704498161972207577909164189383127475670992303246124039653320359535589295699909925487196571687137090074276803450984652632281246141294400021632511199849981437249244720498167540250294263877264886382365924761102746714002647147637239274400889188960223687232170206791309396283400127736348932822432270710010280632318280863201221707662043425656142531758757763405681842774151572012769551085758122364238159311866023190732746241425739305829830472828338278443047764525510648099355107899891305540830828991917838191983285097956764052771527967468448721577240277977832085638654315315372077251667724239849351681642616404231189200832280572678972985367891085761418469590509451605952436074600578981924538814337205323843173308569067192067068854300068421475000186195300675603793167068639152460857131196566589654862445747064796219931162884495250307116650328361638930871654595025785427301168805923658473007138758090760903460224139971915380454484840712988988082675120063105918771425976736844163392758056668041402010267679851819549822482577489038980589556341485128471582862783023230777978817541257699242828521390973775624823107246689866011169027714319741491332939884312495247158914469999689455743991733166571467726556333764678367716685698192393897293261600676435730682625588419609600858556872734585966319478881866554139242341770912443285476395884205433340087200294753240177656131047580455513570919262728081035228599650751754288071074782239329175603860252160042634429558238474855321822013794170940712509315300342440483784972247674873958502936302088555283414700296809173826704222084988778557419015865466915834949803210412251589956077724380874103445167893037161085884208119289995312666535990554790960367747899527820671957981533496998373795221915122824004743842822419127805350611883268703154575489318796604324346299366918081633709969948958522753475362269820407500105020404071711235725975353489287856082616617311911460227504054451730265688107657829925464444992002524418858475700218886571605387280309011135037843555536318228708251027458487208457202093179988451810449741778031345975410571530431054675940668228473727093397380455130529064862761387579558534317213575184812126437283260289585684330670634376219078147502724284308275347460687095169569530462065116388152226430399424328756631263374760016337573763900922940759292945811068438340781450843195133404641640383517227236990154841973146611896225449343034796132679228081295738308427531550078959275547490839745954895143551932032120943204349602400923699597433285115677770316152076441345743370403962109659602138516707036687266902118156657326643013534633099483811981640744864069321913537358879411780652414806198922832630820904715847250147865909351596584488737054755749537220084106055041947559159522807120392434896798765644813414732819603811828245236056061353207345544182782599128875751651937873920983709269633848316258102854366309682197400610987408670678462031456154333829161275466620275647829577456553182234895479274978279246179243509640037434785677772376584230043188775535681652620166105833335955856169441923759120914783117996226660887893845107168107035842997806886779698132463232219080727554735220129344650815417112015259934038748516621843577993125848154088549509749443103375565850011743482015646489591940952817724781193854119149149421807646939476498728094054097853655636049341239658905954406729604368628674820239707724119607937129892536959481931087376982908589261579418553966479779115441475286228635890512577196473483170685511970837417302451918147684693697992939181312281871928615220741535048611716272914549739636830314648765000923849637897655145928089551670793970108072499708936780582430720188506084549425189610607664768037766432903932974265396513641888368828291619193373556323207996737057284312112412924630826832028579986809888270646669360590735407188750108409023774235862175023567661126061491255996305753432976329346664433820534439680548865335560651513784413590116398615236969116853772147537139409573506222760061045648248616391362342392270443886577845360167058239417071847027923330923457972291565358930112930134855171088407074679278859257284696203294689349808543170374759154991158473596295351044401011112964571989067403120161149387985470949000490133305403470417938260276562659049004690668695062936546265894966328073463794051052148157264421458966152282920486605710134734813891004197582519427112887152549604368893885947896400772142696567282834127011372732171234244827001328526497720763454269476094311984342807846806853459137463402652175405046103546590104043559559952346892869092343213977395962973578548976210291201190363077183768614443879570226230640330158933590473133435029544607050826402093410945054910400081367784955426910415529579728088369055536782124375583378940552684423666320348674374030832037105036632398865664441581808095647811195317843775716819141851604281538119299129178669986268001792168392011287554731010018180423204254181821339008356042214655805147193291659237902388115531393793358936377077050601600647790939076938505509794561652457266729728189752950411433018413644027071909378052337780731398760275936079942384801787743399453593564689645775067690618617325352609154366355494075338762371583219142967265272878901919006204084333440344223774417447372228383352005806337538022042939911195756512348100740207917025149915993787726876565599063949860887948533756857308444912707215366000426739383527268339567172128824778040210655667235808813250704506190174185359588830126440707324344318019378877832801934162894603571546764740499474910102916801011773447992463412702275695761228269526241388636246988477743878007987160175566444654840574463075048620286755920732324505109588273091766983488785583368785708787408150733781625845768086308183977778486619099732044392376611020091715598691320870948903434013976471511458441031705597504670572201648885374777289483273045719094107526475223981346638768756716183640583828685251960912506753786997275260115215673340125969658683141320751855974064223323692734211492355590421879199395364037474825756739359345473638591025989984489252083738980476370883994319764773699055393333051825522511691532058692398495690863954520587394921642843189709194263605171830509154834784059869751848179488707986383354258323983713444665302176333086248988013330901895276069111978027394284003657613906873632659260251684510074286786730820234793274025414872820090953131089024525329415066073929850063194660436116033779526091378678512400015755004564840496408312444548154044927955722021638754334258377137838066756837976694966985009487298478106152610498509456686382147526176683347975454696930877834668580248177263994289427330851581187440094345566029507963144171689990663357724164397767448108325039866991437525533513914936336681360185389074511063182326113124683520997193469220619130535980144195589426904168929588158667657643010286473135742197064676278014324561223098965877239796511479690810902348979575327577933900379782808948155607687427203862442750099077985581561557056859849963715647431081844778121391739646129985068955473330904790499496772496180678470711152369791330760562776557926109193947579997583779486243456243997144858619636725716218710542012953387446723975514922064966496163562040561513910814067121083142025900117364717675178547667895058458813040360190245538446085632726723672401212334951541203471503655401315579044705066318690596017558142687450249170166273956279859332239553908670680928399398183778862023331292010355100318122065307429396963504657688439830022903527178973737058488941908104461933044325333496888573950769803788474034119406989755212489387192323521571436704105802662984195128065375880764929331065157392436378539512637081659173626617301885255423261510174684692488284337402956809104921647059340824474718561562987181368496435541871231335573102815998752228211259849659214871513409820903914380069680540685725384789742021319253166691550262778031348982047143356014875630995935929843316932354155722809688559026305405184757767312083749969590697152238155529772109748563346860075708108916450875319056723493147493301931999523042568889236436656639376516202749401459915452117491898351403435664492706809147745303006484072109251461796787903312017748931445017462714729528439151273705443013881007101342926210866462955330002118081984422434057071846255662740610551558672338033933249298586009578497202531417986459560889102842191285022717811465491312729494487910132430922172866840473869789827845371378680248761416093961463363359957087660872979741904342173690810203156857394842927952362184826886103008030552276052532573422069796084727626994679567420283749517827044645557912513481952717614834781521178679271939171555305088892312611638255196842000480163031010114700659800919805865440433535837353059893405495716552822268285809927482725412729838987629947966146562737646103609948168122885221252852903539460772551070559269274777872027264378276933075218738688553979687728939466203451936571245010364616835050114900510286754195671980053729058231858866932426729683327352159830892252732270404385486183032283330450906340619428258647973910895745239719760843186385858482371814170231207594794145558173790208692956094646987089021978314243180053213519527060953118141787343530917780805701054188449591425673976823369856226056164024099271830250017781322902092912742842840277199894713862475471356558300151483025405949302878693810961402597601205687283243742638684678784163029149673626608330990520980557770591802717191635455723032993309037947879162438790035088338356760688075421520071888385299575502456783224618933073849993973247996667053514446257504402535441292085596224995565582037858705787803366004621922882841362146651252652549098324588642672888082760544742373370260496830110866570006953671352374872798558442029667644760609375485731776228920657713839729265319241988398255133236381649546097300550622498664713192836478084521862369149552599088730700934370037147161395596714392564804331449513544606352706442599376548872439002724327150502705695519039853614724789445028250128669440868386085007264868704643835974535283023441022694444164481082559246380978309920705470806299842617380573544656448782747091684133661188225098378637985354068230480312177793835476611661762435629631432388896712159967314250011578804791179898002753149167605565160182588753510067348174151687093123804667853623622918199488878113254110343040968791000362887069300913880307154707235666982989889664470964330258118452929946146104894414712703424894318639553706006567763159666620509834334515667121213361444836017520013312740320668695719655806788148550535328522391616390011773654366755124053194569988174091966809514989416005045995297446690312910823000855457050359574622567682143065602994210506769127591314361742870889353036050447718260538617447339639531751147477791002408080097209519764685603263519968666009342020407540645147941385630302901065226085793880168056854903731603233585932976532385123934336560322851638753538283998718730609968635581205843568550748815887209769223036693656277655287647411158129201287639480561020356154437545545203264827886889202046903116725337506177688725483991885175790756705718232704761608370938192979391309917821228076602196890220411933134355318085204941089504232430872665410766412214403067542168392037679336623133534323721885464214411019124877722444583356949704409864922064104680606988508988604488918252398583722814131317463185623756518523701699122994909179815470964273775882477866792603740835331373307687141915816760854903637208174536457294051750281493407707057622430192212860703286138734153062487220754611555804088323329972172530585720790954469166199448120642792854768919403891225289719350316259914141219063815876601458295632091178271507969648266655031347032083625325374816893436379847337454278902978672698607974308992009862027024196975788230190813863554303532857286723611952494673772805227072335454939408667607555214235494030435021286576150025594492766295616306051726446942827381356325741621994376768346050749677230795809836414443687861645948200722204507746650748581512724832811508769014082667259318954099580233226870610510816415018298258387360209808880436177922825355759203574470900817942901573526158005732326674056336582096393601988541268133942760805379453758495692414870444630761828200397335693480322321488514860871515477569690683944188791372337847990860747285427189838550122950989070292395500288281582822416674915200343220661083063317271867222905700653385738231669120401409133385136527577387472006651838437528292997201328418689293413458328160636757191626347958605827417142964415947913493459239133267356010370442568646482049024991664210269760611955265940091053207349555747183776605097944529592566934489028168609582618402954925526762202041865708302279473139053640699250458922523486490064319750207393226817949426138947677435302371086665152048199976713558387627131604278870630258919869206529868913198544866319252751169975731725842376273685822274430215158609946608039502596843972225170896170716368423270626861339005825723083629285666123479696651022005727104765444344321952217071379364160803696999531197133492542117392459933877238801794011783958492859797396019944932130040690735724732512214976550844931598351862897229545362961985601590939626041801871624088355903747558830024601140224704378503415248266484099716635435200084739258172103174421552876073024056681681604510881906405272105305804153784806775395532808224382912949716087167951338726886042260583477440614922875887795410933793457604984791110760229193410832342636909629558689307532577160439427890923710486551307528846581747371461137811933462458400101945857723373465685541683009266143342191010859742979551907092467040230422628164953472968681230573890027667570762016113886728219767727165862717504618650378491023252698286941409245403605490459246340400159972867230674067059794455172875283354008569722045187596651996274846692169993378634821638458787481465470696345871297718128237614025531590755939990680969312513414284424685303643320511118595837871778575957582982220370569624321919152120133253641355471230220059949783128644768988726556455285782473393629397140719374025030854895759021443040738187742725111484371582130175086933618388356682787127511842331623716370702281217049759446343916314400237996016757747608219873931028857221347143858241792582442466625712477971961598571525907685853349900707809483541524216561891192239914138405572328338503902360694341698232392301630640453743801589509977963777325662935642578554610916885788522403586272461898531380836395757010054604882443390503605470619400159539276616668186348193226075551224040173606444323550363152923355587921338821320240797875881405342798435245720569647069327409776340121811347901047863213162473228996825301955199183561114776554259661395062164823957046932843736182584880935636382305393238009871181455125187977080744622351742544274828154356802715200738907987597068754545563796009300176065263264011200268600679269972671783764212657830578465197898724530968030807796663852983170383749586369380870752260229039634223696330670947352908451113118046507142673097078462615155787464121278292231366269188480035134133552207791604265759434139005205037029715158911889745007494628634537025106162082222707893986561792298096340997466968023398758507790262008833542822720425740361656002080056607436302268082583471848951763331481482034564048870228980030255463880399387797383256622432155955917026631700096761163693470691788618177433528054806614656821920917655940330281215238134478345201581429133952542007983345256769545009766203569157206172430589527877634185798491364837605722519335426567627735665346517101854421324269364900513908900440856666003836469835822911201373836626574961821261261069770364741113610911500088431582620896079481285136037059250852710004403285453308601163753789899311147163931765568054132204898382976334338693490018987452682941470140866505651571494252483458497551082841928186867688316215069634040997892692494935032055915547344284291498689512093440887835587829877750761352230326947216930382595900062682116582426659757004855936537588357817989315515087638811995162249195524978854091929284343440402416761185401459590424193958221933854629888373700474421511540071582926543141277564003451815418635465300089114166362070408581016066174638103182169763880522817518110236183308612921858594986025691810187938237484995837390593628775982068010297263958121270813393924771966885301099407895265777072604800785251283835040380291116740935258535212762176389538539197614680781609803191966417791879419208290032534704387250528314758423614825286286346211578749628171125461146307346261825092118823453108332570727540240398936603566887107239714730982351180428214695965578956021517706853141998666603565719796833978638368711515630181667337657669784595028770877603839273496273536554407409217237237185077650016122398969997249546171452475122400388436695164429445858866804938645032115275707475995209621867496298954463757850397809314785153794312085594357533134763732067601006484326285200194170175549477196985944008372600595611742614058021254179130390526539800313745579890715303992261872138649079170073867833393410823159793652694308059421185533337135093835438061040589986198288253415605727340108011810355112299619779410791070383539366093377820462464956582593615574476843141027430658409552682749306249003376139254494873565627091775150616112798853120109205472338392254683857125799138671273687233812937180825140895787696015616764333455982350265622046582388067201356605991461305446243820837081630702048656358664245932107981116953979947400049559516853176818405899738945700507172670682507598761565736807830831845668933581367673775424511206833660375746018643507400072942602295578125686194076481555095940858244610896534658049468107410179839359850690298640292427562950635387841310448468615743729684735073831144461883733407802832112157626907123415209060021276681165159364103288486591040203132786884616165661497832851668736854309029822901125525203020293883806938736257524694508386582331393574047770846126517391194303484303768434004559670314755963232183826452242448969238179463055397049309664239468778657084988438951784022908755828180645995694896990702174189923027352007896477137120874160407995383449482841509842582067423580247882277381067382691176224642080019419549002724361872524208242398952045120424358850352121598401982017799192376444912543328286363322632699324837885346369083798934837105374581948254281330903119278827598100911280907998939830661997653984685949290265021630249409258315840488833690830706304312335210465080100526783735879576165805709542483885996515367648887204537560724841043707097778708486878707194677003532000949544520669756333745228439454191573787935391379055687568986599033487066699432369652395455266061274729914047565855268898045034970175168910222519685028106936377562905168244157113864056758827874146947849203775930213590400875994200725404448637104324407942214451305328409687488093589037734297813257971187402331080689999172397127696046837089044479979772245877720516949326365170883312141548394954307221905118625437880404811996853914648641412785368990394892384406946556977465692796375453823032350318950908934463022530763968011832272252748689800460532254783161280839191665725770485244106551414888578433382238508437736957113635432741108447849406140605324485747389877857758569448332021219581468592331720564472773982167126931420497200063820552784852472208784489853222246931404741848058309992524401887488036065065193301195103374309877324000332995385877010338136289630501719171035367875923753701958429543278066735251776777519233117037160330168062173351319107533562801259332491311736943879268441272376237706510164926976451993362905763921350194804877036782437131150181431198474273399398585820099222235635821707774195642657115961205444619184380384362476680810142375464679614373580299976519280282219582578150682898750897289841944419878781228882550295260728648507612210318294458755225846532742577341885741603233319853225108682397917178430159946771531092509489784912108615179663208554206240707365775626942990696230351710558558381102741405024745157402649988714272616109423458063655452344415262551824334093550926252818813355489129709441142062483685117465423872103194340834384438584551515019173511938128567853256197935437104300153794981160214957818804508464822025695112910106976148158191727870821671661541201564554686102056336053883102509818069520468193509203571685236095720521400343218817241713289243997343621942654030286745530325866797368115610298519120901410656804983690009248905286047423527284549464698458323518796296049830468631564990464142788279366266905047069265395597997092156684884811219558092678430157081445590074775308056471088873261995508268065656068166263829192962173260080761895989446642520760063896576325253675956533963656402078896107750770927508518281230394152899478239342764413087752986951699704943927606681572512441012059337958910143774547270828010849456911527037003930434365428966581809260202869263047682679510574457756699224861929024319657343466196061266551008703659947078058265133790542998492858535124872526902840892641324317032850877929981578136620926850896721681950083362119298025088790737843938341559984312214134234808506967291253074663777188528830579956605536208252062639114523803499178260525482627262722772128187238500058432293660030440223386658842814951331104581383338943100051771688617388511914026832456109220649315220124964828310712319910618219081000485529282470741575430649615591056952134514324061408000567496574987433887892036071070952775907694028049936381039976836041660234313498858434271199107955220933357368722747523036178716633152901419648157455253525511568362640018336027760967208849412900188547165270203777505903147843918563463590340124156714784409742388469714377960079146447074833027097283287615613427020850222899652117204895851004811485029704162165161403687984567182829226284371966480363302427109785110086747788955665647069786414698662845068393020287648728067396910107390444525495383328667390541258187009014327490597530600548847043823489362066017818242044615189507422637423572660292661179905043693422365279155882708974391228866334338898329098197562515706321166003072371978828722618032969441317232445796314391011284551569165303331764675308765559134887329794131535719487327936622063181097904581434683291103836026226750328519339779621823655515889946068606452717618250068137948769011596984901605763518547400233115253396560961421754208218448320577093053303809442217522072128276106073789305590424034510680623597302921622248544651156855151348015002315771850269491245031241008506941303086091242781203205511740213534870784746266125283336451256166540329406305157043478839730677538019601461876126365762658673721402873668834367488547259084433155564438143188457286171401125877986623616195320158253375479460473324925033983901205742145415126499921763813123985742370507010498120617452810854773409557326503314225716537919724105466727822353767746428742880135333586999109149338737781731104356169559084296749639396908170596891368491195342327427614668776634599323764100689317882607058410491665459675880434391516012002185328400428024889177703839407859845132499732780476449942313356378947358474716399550204708575653981344885956886581540557318460428457962222665126681378387837190517884769592841630694590829852237930643678145887104579179749824183112334690371982304046423187935948236563174653934960105109796392481478451239288613381095409651883242056533909353031067157150185750492307621781852529779742616440619948511447462256891113510090208272839554238882352924396150741249451045475702818769768542230881541886613172066876557898436552283256127136457012637389506971791706679696355725322704987970203786975577017701057253830605474281351542675056510449692487533853876910574013816515605054200492123777631747106064918320312564700653774392062459413768122260797557136662868188918327980410457759738625071117995051102609820352615097613116901181419580200818388433192069056686471494701390576515217792530428514592659437536525814055553111301826653117122036535191273417915196884454727207457598918386804777528453300084527358205635458815418393271224853724845576268953878965207542029525007807323554083639252539592193869851932628809553843710532465859811257013804425506013833912373725586114399869013902259135633521818461357986972099954414813808988534598240242959269623952716029634053857500381295881504670130257471196689569889634414864414611885092912414242648719696175456964361213901160440638962378570209870270239821875895123954288485111404583187514299592152377642663134338377907276414996498185720275465152394714038340068156662906197110788049029711106632696870754359725113546245725245729714123404506532078366832096113174881269777845341939478484630719534692323680932778085033921395193740950036468296172976196230985692942741810156100411853956624223505777727737273876238247249222149501286740608262949567567045459028101108840732426582196389040198774729553764926922462003835116452059943348507950313765306385834794435761967888456114180651353591627116079875133411592576433194513275141480797943329572931248767891605266599275170564200840116065165778020736850694116502862350873206095693240715416235072499690845960630569508991062717676093567032575791757283658028880501647599296758882665271280695841680974872134802327090084542305701573549988038290746025752757996168887663429565135110051777734992595478548717136527546406413289391053900640526574394782772902573397098112968670389647124384911732045740213380579344648865362844791763731564483560411087402075821171313353012181109076391869796532096046200023788915386177912138805133912237810223985531421630484901953366734027400794073257358815433196262456135992010914623830514528371260277184300837474508455297989554123445557418018414267857072865262908118833720791901142199867794559094927238404216931866412165402903377476322448907571573248292996638282350119998158148144931857995712716330265730789001630623641008053260459981057900039038904619429112720251082726594089353024892890454947280094060846762799604917416511283250526966466206216651690481464718959276218985285267837095891381523003382613258772133034084128151021777888874630751417424716956917054597795484812932226184017669660790545728637027500496505044901526543890680547066661096448914539201105171770625398795853515730001187283016843011012984702181233684268387968245470352276990129425909973309900095916185171800247298400983347370898999793722095728604420261876350736874507398631799075371973430334245896598674994458924046252859301560816674804139001047583769102058572687776628153859050083677355615434988971256807685562906332454078727923567085923305941362981895465092757329255689593205143329809500013920540449070774389357379447900035585176494807728461543054495247459610805400543462807467782436670509270562459554825393737509129372007183470587304902234172322424152913518031536068756386696261859373877041567047091969800686868047366626140777858783482988018653130316285001051244057620966460079528877134550606777239230310786245880818376989522868535811847236042744933499244385226707436575648986334176318040377085505257558346231102069658523369755651483428255592415368708265114836424941631271565209936259537082751256097454252838366526153818072911452267501490608920663754221949988657204310225234221845144189280739059550750913481334577333541550147139572223278780123863685957238927578744707631341357607339793491408910999683354690635992477920029315378289973328448632048141720107047738009718436514660952731257467150012352030044540547363277766916314973546218217246593546833190826575284447921065225339578508147500662835889471862056036439762044147477163215940934965426691847060170021145768912881160312934248099328950710470294233580061618951412437948171691654993088646378382592616996587646842711055523352597251378223012183579267079055619106584048585980528569592832831279714329431838616760042066736791726248186592526874760504477915637697206860058634068141007220289596990736011331572721178327475262903913671395817755497477509455408781720289102410615927704296721897394530879132878295898857429717894394404326821540479025609378886855816701493723014996618106042342338421255910115012409279729200147285983750945480183445854735136884278567791136707556097409018036613338843384215264425098796091420288326116343520584015484088095022652795358604978561507330375347508060335941784054867216859532053713648866203626665251038833985509019372291325370944870225052054941075437269354881000879743990103575861553898633042233762317372070081889537955521655158201582874214810928954437532875281256716960378671151884402524332621055308388328659884944711484699257853021626308334744142611046850884874416224848710238145421545939356538665283289800428433380395266784546489924792187237978179910622843462308061020103138220047653173946170877099987448295516784738961785866622634746305101584685877595903508874351228803635080111051762309286245485451401846024057853828408133128829263315667517641000289402480479472506062419501861050686240254908163444287079237899160050966474713605395081504534405071246449432375842272774274512033130791438159607026607067140242177202539006855486306504533639147016950608139086200135465948909955007649077720256078070323208475434198869599121954685356985537911567753822119647844255842855653552917972367768268276156680773002811830494335837011229344657060601045205899409855722531915021914422244633089678438562190023668301214194073729426094590507703461073638375570693696742872967196659399715497631005656207265949334681864044028932952602730052946882518676205763390294134542916356323912914929616900966836636668050191534463987402707875093323100577415697859799835077987459025725638423753962640971499727791498074961673436943727232882902884359703301997897949034803154698088809779638129048060394420441730444858618532005140503280523226607204311440000717712020957393062603395124335429392080040927487891105421701167076705581606134026711457805073799202929381383877684016307695554536337629979118329568458809073700616640644775413717040081078397669896143298293989572272153381337557658078910533260671521722794732182001975349114754369888046853269999672701367914672102401065028582136359540704359692183539090058433545929493598446004820864077098475668865717058089725328070665874538476722642457968412925194424965023080045682116500507840358107297925963767897990773801542954193833612341792677390810714635817985720991447682604366987511841467140395455810852687684643652861239155559802658607623959097498121648786921999960132479223141579154736760478199763592033479052700905438410646034621847093546213502406602572339900385761947748899032977014634384117311913902478828460393281168710063729904220724976256433219712126194502824729127596509108949014396784111872799471440292157032252055188891241971906980359196730823668693293386608557750792101082521329677413914420491144549363909133326448753623206117613377433546345723532103027448699442438163702849437794106767779767613296209859707902972522006239071099328071253731028818340443596027071068395317742222809779437606899974532873981288045869805719279882574840671263249258362000704972038480915078066139140797256586264688551461286795316225630883642100522234678580637899067840991266823251330236369744094338056110953490055371180191664955885899295719438187950937967380881529881327514397445378854129188229851621971646564991608614485311791410546494293279239433088182459443791991005953874893933038535959999078440459880713704202879544873434309221841129338222123331469501645172069750955805726244574761594993915466523126780378391048781816010698866945954674837016197745555286411064320748853892219512164153129517497919417493289293518257725761088378142679028878922493611759940746731611383109677259251554059102751867063854497066095662951638220080446881334132900011427005752633746150300961645529595084781254875465421075509645196050303223430910011281142907829324303876350247701430145256104938189686693844724756665309596707507168409351127807365997917257231565129023647982458051644934427588942902383236613461285495615995525140764278149911470978243120371795657226841836772928676551866698595861613700149478058065419748127156053928751913320606408148905132439066017077825787260953362071514522094267741191553097845382236023062990609530056186430317569478937381096986327292895517935830612682337917857866387471221251970765078664735395018572592395521339344363200770536194017745935252706058041123112494701061538497932631624395049802652099486260710885677469630910471091702287200277186110950512372378121024963332702893362059062883317641360998207119159770460166287873050309831820807649506586607199370056456248934326388529658851899853637410908268164334794654638521739724970657529510561497126153572208197326846803274992818456057714742088828763926754872046234524298879127279455095244483399602033063695939781371314739803561159086414178971714631148768778516314573989395715756366563339873398977980388716707375060030794369273184566040367758107352106496633653235021633044485596155339920041364094654451312708930406658209807542233747765047543947728528248737681959485674416694348980559891409156460702542367666515180832407374690893276760569711541814733637022494735049074645478440846468998883837478528290538250744337394499044313712711155172118992867321556377516340288785514187445330558575134237776152382809466322374892239253648200739163561138756012130351050109655042921613699519263442906541681763797560522583434471649636313791942609045551195271004015434155187274687371400661713835128729528763552838354647965646417189573542626343558329457892932364799608685267979906008210810250523361183166173709941328341097761687083494075767532806439464828111087022215187557847863141780710501584505928442106449637334220841884153104877113280595287211226049961398240892171011257998348510347111729709793718815447997690988829404830247200621860345571011484201090983260308932243586204489095053396959827161167303421419793658041425779430183954963433685352896764423593978491971259017151327335055294340093394887333520603175438257939821522408370712205558246039753533065504512628688498472332497804107719041254959327803718846042199615405276650109817228813717694135909443667650223735281790364298190542671719770348375688997735949696416817697556860482884511720000529797821528698873737313548306043582645865597708745915988662836679805749894809829512316132945621072204328610252761988743549823223039938105326209495262900827319302887877478089985615984123721024737145092217286791952502092553316331120194731424604403897873530495646037299989906554363544327023511168342574021440838607815988565932252462496684100663053383163482768990925030634924206904127371192835972352503320523179260352562315084012946146685400141398836888849329445565262862652799020731683975250443933671564189060616009116413758328288044901486399025172249839726356062225118592079724990857144725110853908906037652811634528535678553568055231149684807850680312946005088477491253467484370152501673609664296465324646312491314153175738044102438240442977151551220765331469403289766855573706920896815706212325593266246444681097383139437550983197439740004934061425542733466706916852070639746355302989899491094769950073552600258798946843155548528219791168110133059016029416003023016565413672170983799936745924637038424527688157545848018096043700334426815088178384063639902412345208515535007275627234542324627464489943461888697662205117410227643860197500827052080249397646596140322050828023022598225168692560707557571235268601940693988406777526927753987112989387039512168359173957998696476838012255399911876421996121203531927359382624970133457168123733330186819102268015203988432663895979938099985882824461538997122175964895075518038730441604006767738992052122886958582785208539158476799847611505601021427127507792789749897228673126972578860249188701653585867686818156002681579836254051589088853486281499862699064091484382639750199505798273066714750426097200560149788591718761672902303888791429519785543733383064173782398935470535155047714342711712834702642793800706721590035446721890229887154557525534696620111115954632408972138757734810699865964048184411688629130151712635414629103717760885816808461683338958161716473891250355601995706253076420917282640625916356145971340502034582341437821604914521852877218666225412671404988933110931766834550666946233499020599298264975815215758180223531701291221512858016053794212689556720234031475774441415890338104624398054620072603679030792557011309285021080104275110909619398314660988416469671047736288666006311840544519593903540893186485748370609283663829629316593847822649877173042690954261040243918261684980864635858262004582349084448674883540023627987383015910598400331414237152722963859589243147380958449601478053932675081424010259032970771576788964296768829379057690962112852928666344952824930631733815977916410162307928477793559381906595947454566028483440264932951183636694699050383870485932008227193294459185174693690596002703257858719902133892924298148113894116507427254894779993319671509029833372300119936083706047759326740329773988557794347076917248038111041881947815973697406319477409313879579561663045771718448794069015227590395260352041628832493007015183954797094751583919470783790628379517213387326374936912301276179034051374674046031129883600419648319923304389253804676890486556145385981798567563129745761939493042462530315493436134269741541305003104351740373292539132717167695493690964411964216181607911450165493060767602454333582088450567065200856406391797169385719693232815509552667645256203733041644239088193925207138916684071251901085808218351414091671180597831586602884419179076210558266564960589844837502121914638897760858055569315184483077470194996601714663705349311048904235254216056166005541859942273719683404959526500790380213662382179706329989689148993950135123072429910854559863904323418247612660731353589276822291526992405574140820787649621543145012918704346555000300065590470566692648286268593830785713793944038513924351023070147990135955678038928769267993926517883417739695493165129464902332459764467592682043733232226063174442215532662893734271463126254299269755903430283512425682970948018936917329590690001469117829966470091642110892213582847611526641332680452919340760314774888500781318813771853829183455030622526727913443979188471511616075908433786235080034058014264627514597480097565292011005417803513200526867341358759061611711209839069720813431296957895351105606565803636246699900855474467280107994231944635987544809746755968809033721631956315666585756356105820537662785707918949158727924865799638522979110634364477847178471192769540702334987539323392971709312596997112689603846415293245290825715494211498043669880724920775972793228867725140532181136857599504541907250247142940193360302081096151916838978424405525918654582907292473593224744175508831043816599755793262097797190939045297851915208020461098948805043982273959151040947565298898223367035664759114848883169086226538453329608138199447600898674581530235192287158973550140853531502869180262881722810733556803783456662189205239259330082288113388308701690628036394002757408463249981799912827773891445519464756862047982740216360925749910578118698476605184228432278060833035206344104009851415313002210034129707036164390525045964919370841562122531772673604533310035480114089498257662703685782153091749430428742622718901452756980335145768305434717542048701056701605083369121070800385956629261810737691718171208807536225034667100277495145782352614274204783594405478229336936949734192282369298442986647171918082635914333479894176681891148888064155806094232845742258368023312452436860860442619997261596778423508933183104119935631403839157509946732197515792399788164995090786305826140745660632281624076525807608721884221894327177313263140273958299520362582797778776126532930664649861073001611417757602918860473003697242114999260703158531111821022232265088482117892886300811671997746146258711150139900505123458835662678573221558482260723573131371235326121764005588227167750093086922172213091613626996333195701876869554349240110009779723403345463698051570130157296161073961878343556411007584752135703116372268136883769654963576046637073282861251777636686495693724864750766017038995097820309909991126809390551738533735539338666589350998988951258736103363739848582722830341372519323216210002685050176546913241790605872363262064658836013246289591280686163898506366374568446286968214532158483343203737055412855316220155054158762143486027442367130270432018056637349075646331983211023053734426640566100175895762039595212501709059922871794048715850495974557618944542325644333872324759209594147063052830516088098080625291097464045649399742423714410506568025822440760996367824316918266010051864335351988116072053855725565851889545856412189897756741754268856039440995675907444402967553289127228698414649260884391955020503142225905934389379305716095069056090866561048884113330191431129943064170089285951275349537568312374622520990325536713438265636756704832243788787818690738289075741917497701243173195583784514224652317531718733042712343641007562920222731106907358772414629326852190458917737309028877966336479029141674165856033059227918457062524998368587831443626182734290080778733045553377036452108621120796243543920702183864874383675334936758672190570775558209779456366455064237241485683726246007962783127915347889936481211956814167107080874226470587790154789402643125246396636731023983809147119680031383802180970930843385865680869301591217453368949138215659090676555838874418679533237907440074410206518683224524114281253735832671407377698877108301784805453677901928700128900034488393142311509305764952973198131826737111480396608606915163678606093414728489346556384599457735772288444874920347687656657829966272251087301322116297896947563746927053342840367243177437637536247367091812464250777416106929465629196008863852073441781074515817834229005581034156332161937418376982240215005142800438060598862814697140806775209323874765150857116791634387359682191872064788048269727178014463657007902127642383068195761612732451057896737735996009645286115935461514954856084647739669273399170975843639549206373124600325874680756368992424482040035730564164825632947702485431450613623049927264131445182475185556099037095565244858103334564884318664820193376066062967711216779254769193171345866677864288843415257796897842866585030586669600464286975189583275664840680568976002965824396154989759186778054621745012470189352002823329920628318772769263290599673912391464636873136345850574136729843218070966868675277916448924503491041714249752417465316511673367474796442165261995037875658568460407441071595461278932779911661518182851930080088710684758679501170098266068508943068630061883517486407070694347729508674851903275871484395194257352197155975377924803390506441985940181755879744386781416972517408222806406715499902019799454010626856961502699058315243956943408291489007508460874205191412559832997772995412480789880093477867995479490776737588856497869560025895702225410293370311618397819067894600085320575467084724995426631658170604819168683388099950756280389064999845503593103662226193664605516093337548847746094042587639203309913603886826570822093207827136047160093166952526021830866099494903681371379140189041831113400191363694267980552400470237220306903644979144717070563498541129360971745959940789538917650401707309881417933597925582173401318314088649429491629205858168965931789305778667599140218028932959892726393764637414610635708732325322239965836281049186565505665380196283152085388436788532997246714656440621527759293237053621882304528368436970330229699142026035798235014480723421229595315825319413365792784703432235848333543466678984474131965202482589706082853500947597697891372696298579102318026970002232098016848975114107054405988125502903154591064541440501462172859734355571398589042443045596782506726842855205941882192843121422614933204335147665231613156592322104080867820989771045198163267695289668556727768413848145555483912407255154006319013416838046065436174272993146923010543742698621877612224818116071648312482360636125648305120218045574267676235609489704800065454887927320639977417764825580158045069244218934232695623943466598143252710839826961988368050961313344972094076345971316725572666178720165179293893959033588613510662174066800418865472599326725690182595904187101190798886790579310980338778788052627266666644162258720279323970514312060173145957679477927670816031295481229874576434723948327601788283374194397222078862361800973546663934588458707754502860074265358906035516453902651310242859411870102279325432724136040705398050424048131710559328590924937426162224338369641104291640345063537481977252159205007581001833474431700226471971602586552029710730498901078468238587498250337151792265122543454564683250890592230070817109126455795358585317372004941892411377441245476093781241049944630058709252761755126766481422009682401950662703028716008776830946247649639026879913415906799700258040675732667700562384059543178562958903707236530481956612387010151217620659131211646417767379407916027931799147650548179605350412643112446418007866841911272878986254010064337937590647054339984298505044644745617719200905649328406647287687001926697616021663659244891728314224432237766913785436431008198325323309020785210480816056277214684425585389449210300887831489758401140282251472281582278863824875340436814225915020479473081306723459394542153033958853217453896618001250792932852932840867452915702985994251055737244514358313115109191797266199640204473414068866057848055786993123747475187089689975738242121480884004200694982342902221040811775232654621192126285590623019496247254074594165758320779123753595931414000598007774583510746967754356799613931897722724196691258054558360384492423042470704150375539978597485481908028079375834119751977266156417248792039340969339231524996594933958887137324140443173062053598717399265134225866117077588786721608344226523718857382608005296468886449190122659631811827727714547849738410988150836723028797821547454132663969204170340729016102431137870365082378466788999732924163661829766009513049925010325385842391634801965334343806416122929090065429883345722951891697981293404305975379923075687955707657381015669683803695429029152136033419717989863646908894892991305034362884368297274322722314163955803843733448351579358693213744270577840760326347703990197947301860027565741394805945670188775470759687865548535951202267581898671726928173537696629613862515905149398089684751420064108195294779662587560841118772286827665612628806973405017890227386321609658762732774445818345611151802321005859438859565431995489807314384974174482096982128273601520349950716412479010876129357363167082659284882440582656479442078523939641182777852259262223542414756026604692353899235406182018654664740849755530814814030191043199349542768826099581609473770743516738002166584516725599106157038545866158956203312520938385591905626059858625698104941860014180868333391158672559664949863963818599988659122419057389201673784960481482831457441747391909003094656422265433072950358696672343137292119088559991897149465384719299843219623872935017278263648288341222655750608156591978060085454614849847792025862506599727777374127703637179896770774883808820264029691717722783832175181355327337461232202585199951732346077369938232644215031250621158679686355603681313029059307341912433997444993753525916188576129355459067563183166631598919811682379435676683941140719837028440745750558185215274163410733426250280254617224803258643136674632703881833031254282356700831815953319618581209942401174499045902068655202428786915211420158578489996325597544087394471777810136373321530438266287539473084080469397016205042479969450744580770134367198356115186304355503874891683514244556585103338947101420883398720288636570162779169311494920429479417003163165855213800275935689918482206012823220848315929399966054222909583974636903156016325520195289652493649262867562630486488187578838248699989722128005722387537657156576316577821039632858178279999811281820272259853510801381831423917772174077963514590158576161789404136846639630363203527670294140461816093881054187833975565769046727683600295837793813877785966240195442606846434023890476859413177428068793751807609960895136067224654873574397770473341129977460906767401071290466563183757780723201310253314163172699020855974008293105983069616493894398419163036943718249969094198439286787091093044025254546035622035467653722035393612668108923663111918231861119542610639202444099527495495901558039887579360232960650394478657631281319083291972184078769884610704754401111996723873350619280394747997592894574791940146094218774274560574597760952506677382303754120673304219706991334270902942433762183582322152288157474005375973182148387982737034788783865765226169824252958908410347065677258748084094510164699808331678070734443783407833974413473819606342109751905912605916678919129040417302600297537317195797225107454011244891166838024953494563281823451413183911794150352674146475253183013956831599696277961252767206739112401998510375760469518711096647834429407932142985936616200930829352089555520768508458473754722451751600355807769604096657955902592596391342588293894791460667473677846157431146888313892282962025775782190014385767445418807874589330524464403326512629571871878956885458445809079373219442087031794118397079850454934526466161210273676729187694165405633267843944930274119085404894684550736329658394823390936888271525094971375785150097771066423441379754801093455778459681649208771321907051963666514496608450306031356197192928795672191408312500356575881739396147658625671805325711168653105100238029143934270117802330835377117256113709827646451528530036908157940349645973586762414912969286939201483181072217522358175865049749541830086523008627130427128534575262939504286480616697632342160926640244879822390103279820180898626055243616638654942422266285868071720301233613745503513631677337757604530915900168986937535447941911263271121417191499814148815050309645558158852909832382678293512812339668119967776243975632421824805286960565390843455067808614535616721818610952460617360999002839782920261743030029015449066477332448378554676971067237606678668206163258605978966432845388307521636922231253487754488151585136411470767556656751720735234924228336763167845299365577579062789770122744383194433258083941037287758714743482877467817635162738988363606727847374007423070879834916832845606824350927576244828278366565661148875873548369361384026999670047695946451078519234555020039206729055727596327690460525991963667096675419222047784166510998000807844684823086513593986307637483265837356976814418902332549095395348767567470710170869612901895917935284276585434691378756451610778988584485011881020914463293205152567510280657237016188117947351101279291285816474534196993316072131000652726933546247922733794809562256004793269373387631525966173506840330363681043522067739230275447615577305606456489561472001384985563275958625340891955346171893228459167631545316291349473415062022695357978608413555124308200849493692921525585477560568811366669119336869524164673911263594303187889849211233181301797145562731842456537405752905236825611193724017017761434589579238246077843055442754419968745308838472324814632265000506715944079952678802984664744809446368355973724310354619188049161911882853681971241750393189869178620412233897440463360764765711761564976196175894983620564638752665478988081772379005733529548289863884432029286311546003899118463196137981107173117371156491650523329033215449392342130284947144764778347102032739810780086597422198354762115147261888756946393680386373299158291509191517002177542957644787063206910959830330689493644789633496550582977910557036426345476212187366186308004521661045499952938032364947800627020549441437164633134231843708019940841141619644434345799176850526613339153424055191619780141711605401264041772607928376923656778773679907890456819328611386448992133653081720461437806853591826580504283916113803559871574475916211553798249807428451506106609461318087052349511824175729382815609373334851617045649408367687028785639846175515412336369061393214048578857551145026940230140832248790815371175847635743590530942864615957512318394735841280785314290702485681730842877731929637904015560080971028557867459832000815817679601083118782239129165764917546378487222314769538027428094587684715080312545847841154643864737631644417210323376559240739510865986383092634386600528470783190277381787530010485297447963997135600025545863360732504624217545232572440024463117761686709456529900276312038312242241493341043972135035245428095814147967185231273324280180237851085147888462530079175843501076183306922854727955432198103399756349030083696233593768160831892418696137546715568665631787885927798171805451529941884572560915349656407090484707197190389702163765489545831889063765020889928962310734672816713779572983409650403939868444436349162157021375514016641572975232656320227139552485969204846449440671619254454378342391994020007913122827817727100208531983294110284371262900036446230784365092240954058319373424466224914002214050828834441383250998841953952623984734155821942767746153359127877837358857876923136378030051494045356191803490037495099830466034749354596502293316984210964805877471335330595758846559664149622560644320330017561574481193321773928967287959374229154267704959933500029073966790002260959880467252016520514151438977660206568351132921954560739059089119970117377381118561240067798546569030547900755965468007116996676628802681232066847132351836806565066937727746371538376248679087853904727541878083110041289123919251547003281899077826332755511220697449502666391686714892646199434125210488244028683142184014773679683507833870707877611971951396231215171890164841224944415183257895519667470678866388175862099406951281454750962228909902182549578219882807692238142730908188636238349501291360174916313687089139952630791567442382178300401362809873671974710778572887561815746432105015079680687284939055138500723100932636827867962742161819684554178291833150306419355876360373467036499743080540652146526427222944685531796156397458675713237168370723384889484321809403748818939920420075570957927032515936372312874285737406218565575513367240171295006725292975246523921064139847086282874125665155436177640462700679363753451238363649955955350272115354173534359793767753693106599887630776174054330133056487891721429035402052302922725696097671963717371581976960204894726217866891238466565541205815113953213877637545039112955533238774309800039900415732152852042438133190148025753545678021686234815980855964244100004406648969663026488369614817715082394376393407821192102239855778435098036857765565478747639935256547828440325179766648209710102873998216395006948898766175913785483736286358018522512821370783542774549428965026163175946020243351334799070877770459259671547394170273436235819439177373561336713912944050893345670518673368007021543623479501805352446210045237764442110909942318736973206638601588810931463196425098406696691363571686988032021420545014834391737557857733913600034257854415936648789389689967296066589548511482890400497539516966022080718560423529645763244874965729056430384484157816309991161893026807101098763360465672061661429568350576254622882691068290236008175757755203954218340095522104837841464394984755336570899488523228586588764559765984241543169306759385822703479094330513888945508786612161308672803797923667917538530092668704372560620927726912552737098441357318432351338898894547142463208846538144804726256098787604268179212637308041767423826279025352339091000717036920868909583171502080686845470409877884833160685218471400531902500095540782793986522575486430635997506501384346471713569951954553337083323841227598513250267176905506093732508562536688718053713516072416909273890784483768630009877490376636636753640919141576973725136417416531528645969937807220516497581639100190661936468625043511205166621801947986366082909219685735605449892334190687000152527171691782127134995284042701680891167234096387473239364972573839255230945984182037340359927638761658938792500978184049895114661659149046492421230901950111580444995696000873532041765676692645425324243836236037944959448516674811791703632331474146174121420301159002244786509386114569274070018623075807248885242112365110142065330803065925273571162549595965033876403621391826224462364943840371736569638582939073654184713564123646265879330310436116073147050097199691892674760100728325433337890600210270911899312955435388797758660795174621217453938461895964553588884306537440422889961148466915334958173012147118704210620834768343628479575970525893167066941962542558295014225255230975803389115743353004187017429221561656052215739666856679571333675837350389068213965003780893725109126720681526784485650576014768206362007176937610332387630564920816567668504958430640536470011526599046573716265129665789942560387861601517783847245948559547795366399372971052016438274430528317160515607376108827795106065056590507896130126777444894752516274082248976431781204392869672394767284973409583361917077312696962113919489675345743267181262703262770142147534210377251510533275918416613185558994854832052789573189948526393266301145214981298208407373655594391533480060400398463122168289105940319245408784466499970521563333584312937322901430536844632348644728267304622992301593814662467291567137640453456830732426847695054306969711730241558947279329670886837093664215386127126917307887901230456546016023538598448889757152387106837186561744168253680593766129123293658267869544212255831443207979487476226234926874321740772927702350977511228088477592607136778228712680724050423912268659151553768234478327134491900157935369004096629902407941722302722631705009158071180696664908395081736625934255409317125660593955472667432734679155047174458778924573316116455298405224028390255372204034364012844150524648176696636362070691157854579663001876311845503744416712273556246489058155258824501018015084285765132256066090270092394775706857002636982395822526707475054117123455173094384224502747301589014099210316469962010246310488109269478122137790094395682785048188944522312620224137069644045997243914300897331572830204881342073091855386804101906560937859715476700375408569372495188709431219667146715388874144468021983212575089411588138548292578435724084121141151270121443930920655523252716559512738287107562146260286872172925774104202793536476834477757904375804417259417113316858394882583970168036615424529742065829652295341919456677976034383232244670927350348839148515070714493229653283166292992352854795423967473885149383587063873678534710154508694998808154398358814539382163928752837562733645217478951433844953885964330981133749869311320216942677340057468951652187916923282105538506021110171796647658940719662600770193610906954611327618936890646413124280949943162803474847281419756595916017564079049477703918764073886940533455517504421659733103586194092110969055409199477154050437587205262610841873525387153435025444587925650934395729435686448728693022311120154789680697463571760978767048510687806325514647049234833132553099246706275728889608390140176961986663854025676404721231984549815235420427065738235447702198150610384906457832193757203471287799077445497776478131202128051354946565647568692973499430111926963977224290860922525202462312559553212155229396691626766191380447993711942830147902646261155545601493321592468263917642064683335945524541944666346802366774211522646819063692401743262777806067156081099657983693500881811034854240218227617823053502840647945432254412824328121099191603871092459056357875075883675831316442734945591609471356792599740910629612698871382388974515267588020403734452974289586870578031301464313284885291352077620102766436072010704737625338362632840582195404200538173688065161521859464143431038210648222841568001597693093615899259637447625841031609368942792421769481118672800010834509513248653083552252644493168090600405081311891663087841649027880155091899370463396485791385049179605012282858741618894001328220308608060914857315426514425283457282909635805059898429064447120069558046293692281226305169766852972357366025144455652143795533098397866728129081350167666903796485710079005187022051253859059692986964011333869711491592117710348725297170143525040963073855484810023246618226671642062083746280191800549213937964892578911813666718865040079810531490764856550430298697569861901085435688461314792379205020584499007674612422705177957069816263482993345083462450994200550548446983761820247725457348087619950109390562534122151329638831143288083241583316836193420259874808330653694812039923682772777225312955180536137043889338474489375812468615621963106144225011378909345593866094610319110775926947011949450530834045495456576562860532338804456411681040774474136400039122358865702822734235456612522005027640731402501579668209959151422236199819044671344905706188169220123701112329391804752718147403575832712881862344143202877395395943973336799485583046318580691681114913478872076958852980617085459997398502419331709348745488770622302320181035063317704161522499467004966321869974384402183010537329350606091739990592132079825587674530036344350760846279885380349321838408755261443856360398044015890755021727171494801469671360434482179104940115549662542992837195228893859226817268893553828654808194178173618039445725345538212028758769856269542056503026190631667230349847433874022243088604079346654192860112392559966272713321548529270775917644237196507759981440823542843456244187642988645049614344670948768912011595170838344534482722148780081540020843950792848916201161734143391281192128422434558989051174290442968832296369166758929089616399583909432124566160566573807991792151013321143001618264927361261719271306210727230031208937249332571619317272870132485908952535373705222634234798776508944457692267380937806369485865529645455924029274107067392403674048336302675315723134658820261923903933275787202255586608737956662196119142629281241604464284507623131603896080729841091928331818072670037128918940648356819981523772410875567382629642584693332204261063257145536745056995810235335652387430780554532110398935991716531513398266285170543094515791141597602006354322503737805057172335365612687333235371490340083721634111057805933476264521590418058177764600958438814946480764736115671436112399300717030201993868657265774278393046697116351824956337145051801388195188058820988400056159537270091921547416579613877057982378382126770729064172172730082117360352895462552643322898164030520829433184784064905206689518820135884351965129015124812106164038534370077968069387631599216411622777861923277304354569127196743710768928204531044103614792392208572260254569451114460677540055327665377725237180199740035057416543656200508706325576555667358414138727046480667239763582191126873596362193669666611638532700060025214115842867405416636997595526365220558884651004722886397857034625319994902187256675913969765342551377253010286381599275212631985257480992485666929590791085206296533383457229404156910613367790742675140082355348162043430014956416073247129596765814648238025238185671648897300195296557826740697299985281786295713396409700765921548553015873364993613358803590086806685261671620894309472348332222555317235415424745918327587197559429714525968584009533110991812053337594373848067568351714940841220860969298848710464637559915017377039594678967715828119843490939093248765567378966894330695248676149079626141294194645655045825615972125205925614877988904853697652598191758733455893696075033434782693640266930658173652450211890360558130955517451768071894866702593980332188749081359434639680617553986947264414275679059630417042155214325495238468599616775796504008580635644105591520441944361332652771046873326363697702486336820023530072677971535669458326484164651637840234834271703217665485889445904179094407707256209023273296401113394354217258733660330369924123944711711833365855548491650111509589245803530258923148034411206989585130709347200094957482990257118752126730494388640181666999146008437332957172063709242998430748118124397876357095595088334697496603782426326409543401193347539435502678891110607459365490587602120066805165298956535724301568059527720248497992728479689815487812670416321554312225938192414525709406569763498671224880596682852897414809951199270499495469172390383652513163474702265935466388238114100890910538333199556991895745364098245984080435352373594360574884963642351790159740692035259031782822321162391131824940825443249655079551283765398899950984426446381976913192887017629851300356066630945323709954514764400132329138565739896222675746234010539270479594300950656213139485159610171644746818200185506293634146314246441478389259637153591982400463026370655181319424343976593773912607662498331106897423147499024013508583696000453847830286962957829311229627195708714756068876213126577483423061784741597853236894505597815852470814975120172884336717916428800671694723583507386697923077789450306769393088624261474877508828835241690130638295571499217821306930143334566882928953499009107563006795756248061129881828837812069177114717216958251158019305131374307188917173570854870000072460213596775210592318064541252347573421431841923937676991758316212610473391139655410873874654003065479114706788141795863049308385370920285020702601235638181824939720726607801588593825069825865911510411072773340079739170255589825345809502513749657893671693827612104992347436096927908170283991324098637546683065327692686208875713841265354404788126487410578035148087169313185300137018200714839096142775694791244358444081225879428941291764878470069138687853216548193238737009483684467031068633731887606220297149717371325418024394478594012887912711789284160200028876548428524264211088583949557239928784564790894961208948556898457821215224149152479964783354767834016272882838853876556480674622483964739473218730687298506507517721704582089796272370091126695364305162246124498352967700503380938905992090114191160808520027172450581233506249347284304904326234368635292406126581218603353090347374462133059015026537311354381063965631014260821571552673807609341554933581518877352077752437560132491256096422604619461109766153602940062174955447326687679374139532082424260598489016912867475150473294040858929723700671253033970581475664620055700632443470902628479210231249638701951815250353704071287820895396488163565083644257463350282160467185806549798823639390655856213374309651008203027233438710064819722964285771939663492202299141905995513854239125776459108277988751814992690493766453943932851274495139619654656554675773911468031828566702921119614607957291876745044384705469079796056085558975256214689476984026863650031127969457920084989902308851013924613652358069707731887966065779841675872862578015807881793764017660511263018683333856417296503958277140466047213786936302637922997964556994438398527673762523305047469580211909151811195608695038046022142559235070775195342496767890555490052437361809338490442711048032168200688181702345382826488782844867824493189074193042091237938450599560109387078405112731911079596400355051877869688878683943073955212706644265843541851596813492885456788417521592458215197317665984035875770410939591090856469737253728384240498817999378313455494129881256977679738425461280270905609505654404387672163123412090656804525918940850616611637068632538472599176660049807021522147502598533412291271864735921841139271542085002550324071792942377514365249983142242701136741919158696600416806424361927804245439081365102000007175472864582036995134475974943335669745529049272271970744762559563716648718198533523126280331401099713302113404956184608407112467080278739725360302030150444633588439489969347765353609184058347130561188001532188161666391493144885250263404006068666144362269859756344326697119423146469895627200456422750156999755623274270536041256805578079375244066414631240868360972851216956237379158961694243197739765847158897034482430140795228770226369693797698035654806672129393246299333374799383433627593005934858696799525592378944390158833373870170040618302392897207395675378873550423104423484802112163261568117150133066709528369485020624305147495515267293810657571441102277697700936082319402073990285243778481442966351545009303828979455429802940572675255723404015365809319140033977555070245000221168105294756787486434811437106542968391422901548995966300083629454529786262189542392769917318835795634954324191848451672820216823426085616011327825537531211839698012980668670321579447867101532673146178825133443807986369361561849010148055352021015267554788617817034470205569292300629185682674078125660967027998376538719400679820488442766015014211759164991180301026703822531258255932531790600419610454482700298151308428657835288667882701242005409178790958579524086764716776760086618007103536018331697690523007689827709176327206229524574622073271347434682938786257219028246884355431469161256346476864725813784527761050937897788248683205313747559728740828471429754672991843852243033280083310568605152467002755130671205416445193384739729222031388763151197298557931700933469711209009158264201766681487143200448679892314898204910981006897791736587772192508674085975323768230070076554512773578210394536805515239774776243142562713857283863015211823486049382915407918166814142653246005710283236226461368962282068026342691949494637502685249430046636680634136726429630671103447701211380829499999143727063290792063160221960517556456269977974251531392048018098266972142984734386828425399649870355292667992829353119584157796678985693242760686962490722358060802841863881333542629478099869831588560033395156967794041412835880257970721562112577524543993501445396062686481716906554714888538428683855640280745022081477040912149553439858540944490166197092729848277101283665774947267035001622973634020270247611245214743637232487622163955408487036413230926628629127942468724042387975794622299619788292951634602761683257102316064423466812438418095454525498049338780066104643877780410691542017128896842052396619651635750949820513289056988097270437035292694750923088481088821128816739313795869535012445493967199972457660439281361717430951816123454498220559630907240896360217183392401019244617461220016055114504918344775348734096621100213053286456623094505761588153211355796935167104789964071795241566371700926616865658050228336131969239373621758545494648939799880894796709632318902401992964904284461524397668537696177631021987595127313135717292144801513846357787307937272381524548454315989113252674720220572795357575428570997207273523241187598177192757653950982747281130820204070348803667027300030137744064190942740068864477985939577500049481649468476303767616720514680157910512834732251472003867318545800204755617481531395860107729305437577756772548014161571180346429061305012699553754723063326369458520380301308001198155846392544854362080307412515408009141754809869086072338100991349060383524667008606973814678838942863151470511136860296135736410477278921409357845020456275057595355296047654644121352216110720045180200232515583778430656371987150792572540930727986567204924718495421715948850372138007840277627959610263056482206446719292856129824284122170941685322831716016086942378519509650144806274970675068529091484133393145837139212288404024032314631550483885992283680176043082719428880208911369535760290890967687688884319417626273528156651777451043497720647496132506760910726588574065155132833592078329038033624154491179197461287111872265889420937821740230022341987968094099371146675009316456388248252713763156204067883454592753067029985248815978703311716741987209890006810483566730913188306849107712140418377560383502871488682236189520089901899348969540323765363301236463210645416146577211892625169698815495087176777559336019912143057447533844121918721637698739898056972639430879534799889983865493152008499400929987958670449274035821497597545897663156115386133504375337627136507394558549426500987570055980971470371269995500846243766587924676957991439318625724128908303737796283224924439682892393969111557232779480998447629297203059633873612823323157848121868578872855025762558698691055364550748733488989465372952698670592746139683131080922978476963191519959092715232645858657207438791962297697504936714366637825183474588738158031221859031504327964543152412913992391673821718687425872986891966537206635849713686616678848503111226708167466668065630470162093823356124279462362922417645862326453139653451292720532780763330072156758140317698094565721171049273579573516924574931104220471260800632992067559895533279082313565519467615558851347325361919766251744399319682357609547845992056129271744398411370083485812527526191638890875367513586335490043856629252022468449909975680466844345369188307564911500039498480220744027682928775532354271923541799381066200317065467952285368512248638479051208725575374928454107358151508930373015123625436418156875606323671785488161837485231508070588203930667791594180853005734992479158933461571067542692544042539129060519348956945242343989597530671933489868258307193206410967723293094757969859064065727664348989541507197857198257237375678293320407093223941258228290804516526938775889440848204494469534034723945511781419783531646647582465463663115662614087767277972401995040952911441228134940088143933295164363231377992379504106887783237002105229018407562707378923993497056871634291740335411060773807809582552989928177199393728208302040081842539833507974498541920709451950802061253469597215371380205188124210321357461940511556911830242462035901434128077368593018704677757232367775781915213639241775011353975778199196067304700897530771704653552107902043645713214115646080050620187161507017814272940937903292924000660778808189796564488928437955827956289962105524719704518355263405491527630458744724581768375826678441380673091417091078000206821508007190354973969701740371284918665519367883258433984016785417667194796335828833033158984843286927806253275560924220464349846761154061280749334376763127114212000824174404782238613368802674813110496231891661918468545328107038280571456137135091749915908466823428166702173772718192662367721415061035448201147442526500086931128687450359944924339636619980337421737163844065541357922465270080334707672556508455763507430284201867943279184927968415802739226926612735197965075722277215659638831190604774761769167758438206133031717662204563326994033934289944948575424691880549677651004155175321384426243193581468414323933098576141612434546456287324286434790596758065917115401906125636546254634234317701137547100270669824735946209659397579275992579139660294858335523896838770719605912538389042509186712960925443879636876932460506589722747286711285707518527872197748152294140703596283093274012914477308206802740718616711935061197585682482211992775504653507477602228279465806473201740900894587809806655053250458831373796402617835414946507331855474396366625329893430260203643962136939888527698863204946834345216274498020479453308712044492137199480145698611036988403243020431364572630789118535863249394609962010257130925419965005810463444388901766784950469216785743444367968209230952326685946732830409179102437477955682809311632611641612684516344277611584652557574177183131549742530037779458698736857174174125351930406977618385454609580492977587126025203916638529797853669246025279004749743746797655630185429295453857273486204951811163767573161795529173921112078322847930526051809882334196171682547084544299120704397437162194983253597477202675373002445754291686241113802374118584299940549284715470324893048791592443726593906044070853504505001152847631269443627412168315478955864065417880282898876945932086133203868565819996284791938573498716696973370895438570822504739657214025891092549311026688021250814943314949904286827872211286437736765519637843889769545109612080168475198135121394166507796262224926579750270682575467908470510471101774976575649362957312415062650801875949730529041977869395421934823496478988384534349513990366108677891933830314253656422923089122811988017806767489929539708437890474312544027118174512148795901756700880514494931410949079508091850163003628242292930102410707491780983373993798147916892005779165143573952183588270808061466181220101324709890960034536983739528337164477667599746815563216109795878764956645004784514878920994318275222628060249137933659946651613474514162116340872679594206334067013504667542427878394777106349099521499948201129351343918779291846901170347670837157196721127102077512300372492053088086189515275463437028512602761699636710442371888935190155813191678996466711962574545619994571889249783043047321638298733813625658111541939356220035254606929310350632847064923530186375650544675767783051022888516121776522755886901541280372744266507502254639830112254568173811339625402462274767778452997563948153856952113942930533829798825538966722017216139111956878245355207401804445546921542249854674402104919422453287578035768479931676899252855806017966328217632946959314696752439998704306445889277020258851629219038886647604975425887437238298660919376143925231723841354608013819319065044166686008639370984314743373391424376120160155472638669367811077878547569985287118605283010342350050898301272192364211365841053409690089404068836385913840067390373350700447504046648583666937058830645035310108494188845859222137667245616634098624157169934201618030973307837185432561994040212470192017617871880492597954641787074426491664713544715305637333471283886767305294378949899733107906255182682098791605290696988508753897945628813268985505461809537947227354462664794104202372925200659226857225478662968366990386409713587975819841017080365590388510312486725168003990991186944431929257908872975128742878470048264410226093971883602508363906717136186758156724121514060181815036199943951659205295635863546961476484254825303690363619719422087452615323736379646247765226589812744777373301345141794418487480111452658628218997712137200317256017287994120302056026460589652220505203309321320344590029237255641173691900596123542215176651984977060168810268710289159909845933051709384796745044366533194971759051656581236697368612744809472306836069583042217492341164977951192607013066798783618700968764302917363329305572229328342032057124240149538874520227290679400663857393628429957708196260724077709268206225768088097323173822768057004216540667853462746468235796896067916329365380319809607172014851561047135092849473044798399834093365676387765411266767846840348273346849720629611442841790639761992401130542763540827927792952235445343994142153146285377931981013811356568518736166001608918829286075516787027541389829782259136302207890770075532609593086170248356651635286978852825032617699767502136513670700707088530559607392590785040819459546646062389100554725079504158930489385970931069017345519868859779248883800518110840278772305820513907612332523161775015541086331383036521374944470948225396095704590740441846795464234366608395177117574254904479047183098817965997640908632895126518653906931966887115790581706857335662691318952115396365980775494919972870941036038401553833393627453100525655957006923257063014471060100575955914166905110917751093871370658537180154907141844768310111232382155529069583580041302077990399446030738740939224189385986327643907955004071712498527354592801357474548510390351906496782202275759615693988016697473325300984491259566577041745391800143278050293421676624453915347819666210778540267479983529541106017230267054324447821622086272214998582822689764532515736184621531950473494482799462017296766633737564030141528782827062186091175196473399363411223604534596136974198865986384662648782914026195916454175156095128311844942784028834522133463536133696320736352850858298615982754322470122743923740789141355382704151616721749135441152099516632403213195438193761692540340724314099997825190354626077879710070143256480463915103597184370585730557585252429663454729002084479259003107999764414975983828477575105087380020468042408203359388598075438542907413644538220172517547607917222588899500199122480232981647492138450345291935200743131004888067146379959241567830955496818433984743316604052951077486391982821328005323033805617706645387051262974059773274758360991364335085134823893435007542060377914358057851861721146121382661170405869805775443988672916227471371321884808445021998793960881218901119723136275933720227051024437138962576791798147232290798453935787064886516621807939249383574298147390408786081304714362187606463897563533428930712338360812282409152623616617395718575940774521083367327126864483751780060304937405612517243902359257173612080199162107671640902660775328545429135826681829848531040565407315676787341851540428844300241735840410284628492195741747954180031340094028295739989470242260611288325983905272681197025340067089156960808915499997663561101782407584306273429416803976411911045632418329848951230128010083915278487328541474617214556295308366342686453708802157785601946843029858260959278212935539415868736977925192629531773656923031854421145203103377457900475976868268982599797958000299479245792420469037313211017591302267072433377970535405787082240746992801831850923807347543241204024551568047202622327121500996501766219749737251583459652749032918860886712892575405231323123580787163541554847564379835374901001484547919769650246960892475778794561627181360129581065500633409480774497051805644816551892395372928389165745028730457848009550365701442823101030855357853984807098840249596575534640827930945364559154920264211042289290333280490424546375046132141096796558555046467535609846522515148669270517343279448039420793038940210832540987262640960507322050593519501907971962649706172302816287360802685061189135285635439518196496150437919863292232681079552300952038974186115426576041603380198881200565827125275985838755816351187265328199924568951124483676521520412679399435220242439405779393512849108198164020264526985606192995246482770339172540724085232074708085716017366699601163592664081255149330435022454013561583246225169643507229891403515070922386696308277603133889895903370360534608228876582146921261121993711759547210439563164758742567229184776948959877964980192800447663374960648389091134887916514353912641178975791540914936538432830705569849397813199963014187360037889807694680320581539705571421302611380662547615072440389609186744355197643264458755338550014678408065602160940209940298728747762168710972543617352941489403958733272774178201489694176217698241115964970544450242818106217902581079340909719451802801501852636762199013806462868855244721240268355208817595593457499854296297117548344981098797093289952085619166787495915396931583170139387517253737989498752853193782466009822431058881983148306318526027121542634363996852841319280389345066657408263050892553330101072392872438779334269324719564209148949171387610021940285586821469962173354604768656962856426184388734971666539249480273641177046179267476477973794801770303681547555085963050826120245354831295474576948347175199273965672092096355345350760371704998572471007141527939224014492718895952939854634768949146804196835522151022206728757526096412565703286164577910172652726742777247375921218078707118517149650074145672239995629649453682446028545038834932847423330319229540158948111244480354189810509764258848638114882892439991594429298124563855327805344284204761940384585139958482970226445905436490621495996879477565985460554602358014642693534116562483697251717043137332456674761275144154707897900721869268321033997311722346321046739432939738478377104274665988864595426787015756161279228378748095278455921489764043304575381727438938469983092688190235088216339982560755911338677251173040371398491037039437777167868330857548111042872068555916272084308373667199372419097586366868407093348718270448546012696028906502309034089471794728092541046466457186108579385014899789329212617818035574213170967837057513563140793243015094684596288009261592086868898151660154420246908554367189392020368561486225662833022890290679738175262695987213268846278173364698344109828395797863916884857440574196610212072805005612903364054652888281494370245946896732788950721050609895574459787986592495984433108420658368212217414700987938701142223581485710988827889281857221880378578016246053064494644211401880538906832088747616730970841510652516430191458335300844961185820032829670120108565366056594583746170983698256354148961746511157341366622856460810123318672432514075663695848188093814685550690123746086624277826459514007555090214539346702055908967114161593747284929377382480672581812272917672573091132899859381759363705964621872483097993985465454997190903906762794564207893179102417484315034119549283536025978346924111928392208945839867911010562919301535396071872951159468158095292047848576202223841456691666136263652147966088280758770273217123089221142480413492138617425315990141355689478315215270355755577515165022054043603745250824478395135529910290609660613496555473627715146905756437246526570561793243782971841543765980300710815374125364246646477858294873536699580848327871959952725810909413103250269275764267049984297976107550650103694707594846589454109739684666591001760917614187537041334959548614871950032328933535607001316882388991653635120339504743886023303380035421630390923943981239850964188617594066877426332894117979438151799053487109258749850929397244113018625759700283497042801790796586853856289591801422091259779543311613882651577143418683612458915499634384442657167476460599689930379282518755821448019935335331671314292723733541378551382949699833695605161492872021425121277696082632404311695230065056750381706068282283186682381036673340691124536112248436114229967327654267918824216496628923583575506713497346847486676745993242747751044564510659089332433620257255423643085562091929641948170880736860545734087090255306732953432088209669452684774509429016524686077111277125818031710962261059566575875185320863122970694960276189297910895596808898406293389733528347451919459015662186677417785672361267672608123432846248184234402068551844635959342728273481008789963198207002069723738021464271812687495105980874934376452723995661252254183410057522196230749924246489901215395930181748626304782104886635723135922952828369266886403438247802828709172745533368310120957873967847681404234382950137187610966734866555894265302333898270482056556454953665837832098252651782763442777384329640217034625855597565697784417622286736112333893265669454454188696833030501024013291477740717512266135628642022651788857736927669405907260255732698530934670012688351455090789697789529774093127517250249341617188013579600192122514598789998750315809026108602914350526086427954007970889592778123028334211644745147084111166961394873031727336645648138398659026155271663780012888017298329232139684555700512360972712545733006380124444259808175812094499003810348860620959724205163374684161411214935047933803112968007898193234000472686015715903897896675151041778780100520585463979668366166946825038873413493792987053185497831687962045155157813072992449401151902301275714050179775720332307807246371241710234296923900595482722920731647860110159831812459007888036647609309737501505584611811684011759306571570388996079920124846553882516523726403875053994516765423964902663525606767499942525869570913636976992394459824846714314544159632542342698573236895452242389613903253500431032734442991690036625355657395640865684383740935127133161888099111129835855871582993454328919465673577867054159401082958367391353960611586272183071023230136369000312706389967717634132414882079770844527453387625591138283611848633783610843715347465238555997602154993127663546552119067271949314068007261766516684004056060174612854069490672950487637675051083021587889389888911946328780600843025982065574462969101939587973669509778959599091666340795981140091082615213441171986702688207412486539431399898398928868744524466035444951965791928782544762137699197219302069247164585917050161993628735845613907039601133592107629731715477476058627902004368452547376693133356727673152933630850471709808818804482763683119692461686841741452346034070379621942749980950280597045845897903391738413550207599933072559770853046881410658885848162488588224367205630188167974904825980624509957987035789074805000274062323902639763368719187136251994934358280576596381417569587003681614817661909768314883426673627317596035214136964947235373798375445531142166475829791709357540307352287448252369596201946993636046736361339989122874999993118636212111133463362954700880265480222596971415184400612365371365061826249942402708583488117903006352695104119831354947803694745806581615292835126539158065742472920928406489218364701488438538648325036815171055269690692737659381981565811011689599221936667128184435072191607808691329999892889016051753762512936584560539021097220218965957455549842145784083866493069699997996857093666578161574025614866728262404384866994825221622299302197776067633196705408014223012644888250554614344424444831113374148569421717229235584421922268016721827155298781220073732675860051464843145758177466024639876299754362120617660882263684704453158595747803350333066731763021731118314399389610557248966543459281365803602999860112615683248269984835030899843478284193971436331052602636489929859667800202513025144868083800298333075361495123205985599687058390026040675406114050093531347305303790717592028251729720327769598676473618633521349282848497527898105192751996766854422515595437435666508257754632116061694285214924851292690761870902326794059212203271992572300115002120754700337650992438876796388722117661648222657782512429040477568414718790660462790715448175841077435622473988274947365581753028613549491668773909563435855973678219009903162893500731704423181067780129336903103658628117462179619295619917532400356650923053077483748819791503028592381637648898588073655367790059511723476485460578582347533282266335024580028873500297062710879814927339360893264446979301078966000751514483253877016780158748050830689339083186794208607940816025700919147718138650549777457029296566775058022240707862150949438541401782829113987846972353225644796619181942428073669730877193805812289382747297934928009317387248254012473174042367166624676280660496432131454756839363639046730229207467692962756700649679528875343598220809491523352993826031282850651036488753865123181015882486664926737270688719060480172944389967497501775910026023573245096950553199517695498822785254897280020991713450201928710252123392066253546768643449922208880139497208325876990891814317629727998501883860755336368692194299817226559435694336605226646957005730729619495551872002992844593678872611502563789390106354255877151350230085478402524903022659299239528110046616079930575569341081470592626350519888114672997509350609187341895827789253063628721443075875836964041673655248256416257380869745908181997962886114726283286955284912871118467260597421374274146440963727130377448503972356748038642838479405163033612692274072680407211481501657983755586406781905850666916263994646890072517519584199332057805006053111352381492331572227075535561018309421658974571245171971313211038698161180698529098360735262506575944452611233579365114064619245773992485789405641156183001069668195302980626591009154276705731477144507932608346164821165167938099928637547535164962506491673789045954252593533951778457795732146650970031950001295587039332113722193927739983710327130055445751858581569476091540627709071639464729666040313597308444941330672416736342458449373884501836765922413074694051374521352894152398560245607736638320657449064602146530259306622292850969990778764027872446797282445140050954386473590817048062558108100805435978809937345214064382304184774649053808486273591492672132493399220188978221428289482054345330465875635704183316540965806098440665945150922388697120528037021973381168600532738608870122527739590412744046196146454510055638055155265116625093268386413833987326012992235672661062516318879089071426837083397847832964194299089249327674483242125849640992330949051438134240818860063358567853669249514945760283329246095404003428243015919167018554101578025502832276872343113528346364593599391448250113659964287016343728381826722146907754974506234937230003152645880374966908259110760532718289180030691498990371554615311388895303686176345391100993672148749197242609737830974467430524592582329530750408748768845006230151359837906863919408533532579186202116251341842629667465257207706323286034560985217986719482611728549546256626388174782278001014909882929114503828094808974837550456357421868681825913605123500168939496667468684002229917772171642099181158994820887546665328331777903176971638571678149847592324735641115983588036346120212503363554621197594709101806768100146948007838306667218955539659113277260685548244428855226995719145061965047114428969701948861663503710676794312250848665598297666773322251472386690870617340493546885998861682648898798745186147953385080217228361819878732741894351016200426581335778515881878704132593477943584038728752987100357650055189645369123525341548466915606354422923900764161063147317305434037282538108529940423487236801406801065474746392197289483914388812807940975514769078995304905180617927778669307452639115550109562603964069000304997076854845643653797661202749894296273906763584106635457075351522672251116929826302784256165561268116603001432386185133859784198128787062848834400690701433234533386821389580465917950183193184881462892108407017295406746498529953698541864373026304317272732094748907956586065913867399973072908374859857756713494504639058758918991868994166852703688261614224833601092792488495209151480485694082777658411222164882669890820610861796932832483251840076027426809038853549188424660760410950769880003545858193792005488095145209759444015701818237542071882946046508874548956092290576835517605244195552834774760564106978442060750230078717552824466220426589829450025054556274156919712784613119460639485778079278634863873790718865791312681408158013161724063426067039672350470982987109342424907260230944952058678132818002318258820050766915537657667440541950462145550288275760671265779169243708253640752159166500009767260285051910840188207058352537532979128093865974869838234196518856429554591637657439933733689518058066701746904206024322222409070498664158728629538735067301947008224853905896504019119886222458882566865269299924633539734845925903978625952383212949061903841374568753214170379012568181672635776375472989823747819286270441371771228235333522867464908415413206616118228304858754829166029256389855319287882014171600433811400152134481824328414123217081570063192611716079632903977644378723624027166551544011867524560797036218363398086345991418221438258866090505332410201635396907825049038547404024118956538390597085015672652596471663930575030183512047859932257411621581142666591082489860639928815673627910891211359211159621188793553738797143272172166053153049642547502636503699016482861469535862915337319036513628959672045735646341104959220349214863834459601854687881227479834460503034919704006656993642126518632177933358912536848964368046387704568957071499013477224508888313802994272556190488687703921844743261339088325105291370913635932589937308277366121365922490831455926415248560125605659087517976257175942781045108125232232589994945271182103866353964724259705971668095419464322618219581706370724891413620108240553083976281774740304853636627164777214646506198205218218165837952662498670809682562950639226374395835275546922439999498724580863050520930742932731667474665365263355463761223709789334020017888763136722214612959197821305257824064399183720498308463373961984938631054502848037913415378009960499553797720619117204092042968613140056199628946680716134836942510284225445421562963417971169088699866024274208713662967785943127762983364788865041610167507339299244963213609304245292864068097498300323817095785512187253202161784651711380653791763284363220848015839989768768181930897388455678111728145192106390093021668694188685014292701316349954188244481694640279811586785629608612240767845199958343929388755814482947193948160570199277828688212159319034667470921416947834998960302963385495078292353862640038733860873892705622819229565699469868949737544219588861866066809699117717974271972766011367876489676709254469740846806057415345870017849384061233819757576239840032546335934545772284814150359291870081603775259161632606778966168273619969828397391890184360644610367006960884512171597302494948329410715509346971067660481700100426008804778601730305604592584067071675628168469653627161049966281747671785256851379900378265077427189820563570876687702809028039164621562156362317855446920998906659212442927990762852562850321761285676208629168198938992054101805635243811492914656457880112756965881535289076994966619420335402552604819095675956874231009607877436751206970838709862746447304731526602719738803022128659388718793016441832765628419406362976229041470196064741454009586719582129317728172042313734364787526105236781810330325551002263914724797100334253641692773647268394355426715597352704010136222068482590366023766624379950825126519145091143690482302828601881197223054115248280159923164185706078994048066873728818999673050995873107654120933834141415365938186266140699838501691134601667095526666148255142456234314413827364486479031353873101773115749757807784926200951225295423339168987504231630194039730375142026084160930914702164040588625706001083941986922338650142174676483977012797641753921755605723293439144559218322839862783986984555500924080313006807824018249701851892662618301152799628927170929039250591434436214375360455150769021393204287288893148168888762677048190234246336288931070874652293321028389712862356810110659520568495989623453987430856203146205001824561253329505366263942076444192949157573834837748775048474110643010622149126743063253088196925889188714238339321453630302546361779646887328721957581834241957305415644073878654687414139875858037381423454611110324653889083583216237655750036188102688322813473218997851155244645568419284824600243544810769935115041332652459047309817153776825626848179800536120707652566615363672037539815266307630213195789627497982578683031897178902725813042753707582820882658587208335373439002564207602621246649839555340366656257027768407243586801005372682199093222356703016732097512263280144102581236034614004583890318880425723652010485683352524332536988505415122682991827978048296546931630045297185962349680797649430965299738438702822727138912549576785624701849337047976598752619254641625608120874402895462818532169893985136746359298710060719358075034213347688498384484085049115741657088423091595769761227109028840113335383217721366125229375964864086616158593152690692259362021200423684199984275646295613982998767093294086619951241906943822072216605766069494248705022779136737433483158112767516917605220266599384461763795949462281275637811979275310195761432361857733222668884436815867063818910284035780924922217299942943212596772019334840723874354824090874289194526692790454856939554326034512851648486031812220961220758391721915176053831587020736033078785648725134816900866488619642260706002122665827862471370521753175064356402436980418187411255398006234478935589732465369848282740893195009516125429535210827628588977845485323402341259420355307508596755517484474858914429358385463031023413893377377851641746130975708174578948053979876107884858826443343857097702603637248039329051974547954479953679931660873074845417669843490380669723467569808368531412656144642931397547374013066415751890851101310764985202963991671407559303066948383227831180545650379322666747894310256221001119993277639023388461943167668432649680314938487399706620514966648623074269933644900503829691215847361189400608829309271277447360588124466485777931661503509104012723533041499052658324514083218913718264072466548459625947013274017652899798104723224382830024118639598110803376121019840569587629728337551710691630483405649342954246343439238715316520704876019335107246071744267299741874318523501151435122762877359254212022977948755962095649258196010586078371313032718283911666725907474500319531313290851075609853325450435571247819861445707961170937412665024448994719770386828543875128041073061735138010878393236036798974491711497834639518795391746276582120779245439700515139060008734455270404349197226253852826244921703964878844261554342515417429535938599669016453424500883397319992675519179470053773004225240690175034688686835407895484614699871167844996015077320601859669231473643098172763568557849266090967881712982326965673232121186281642282408801245475125728554374501348560987144708733378623888590387825067828396915002680500264306024795530562836848415113698060056690383510996054985574058165248089814267680153547844788628153907038525532694381838692535338892984821150219868669043971607895861812255064931519102585075015479819718679847946734416770171484069483308736887461401440747510126068174844622927620748798624401645361366229781013785076621029528174312294354603622243820491483414106069134326623102613945303423893682918731501473243965136167746003020962294124670834381050909126142771401150308026655179355897334105955849087496609292916812742625701520779135943888037463780138317659389027548180680661088165545252786666261550743032054451985137896689051738652553448571498456334001321181349657331104210781601777056435603698643936954844503019229002099121400484353678146738142414122629922453500895988674097869132449080368764207655777273235748784076718708853821072917505295428838655054232514650363567009963867412024281215979834177271996897877357834845108096151291174814868616816362929183664659973236675013239539932281879406004748434572119691066163920479834393544549198421735773573309680765836591222540686091766163846589537883086788193769880650123187706088266746324811066675414235114670370237099323959759228452781041973137644934913217141273686105406140844763028350547859495833734482574899240081179361308566000414079644313375036929332075314287598326691517744348831612201228822580210603180032621586159168327426615562082768743707937663068389512974568214001112086878609110640400506161558357412574938065569710872798046878008686084546859034686709592733226398713065554763769377550719208808596453016919341187046626321333424950174998567352098996868715914780319280464842939175776224750992839034429115033056214853217434888876068934959363262081194619181800777645552694652980772782357736540276266521676033204864020325918078661847405572259647231407553704737161474269422859756552170798724590263792757206554268287465357386305844494809663095100871664044371976474193963228782775813073507893979509163410752862274238542108779255154431062896628199121477633255773409530793536040300890457017006001402410124014355965483622147452050778717859718821217935080458037649538628824527794349526660862939150608097108327899754405653781527922900170999454129808979401921800268983040881948037499354213853385214525766931244613128509511466676701811897115521753564313740786945242063737673415298098672862348913493516949639886647267091542654189490588872281879174801889077517159123991837321439645713768642953110335059408680078635416554990197517484425396741331342854421281942660958886113924913894418548679394554720019155804497100231990480167853974424760713906856267866166624238060478297396463999281303942504766488970172552019054565725358371222648246253691059382723236914276899335281977980349629978897096695169294112986802052593068522840359005917434047489781094535468400671802605351741835308799022743920806967425367962115062982106480790824300758077042265110009142445606132419298121869438600119378104386631252550721365718974455248060418108495029813334244837949000993225771059042768983243277195468614810261914616907483811320549039380664884857641192047691784989303895794627743470810229524747769629897791134511401454022793400469827536845056347511387815786733070275166992141698411852720095314188741651920862859401622257030181286890799993505689353979565319676374924305897523684114594417975388220345766889719272360879545409178752248285093316357217237068790658402504581895453577366115037899123022595166766810104871025224852130137150587841846749608476211258740978907952296098383926005626157902277536795888168319108719207348865052057067547161807536702579400156405320019827964474124810089797883562215040308826925227894222315104003598316471900512277691735430907255506982235137236047119071585457212345521983080611269310491258786576594757145956745453294103068745571023168358576977763981260597061250198652904284964653728830728035417182214450550261699940179076774807096767012906488978080372391060472659097869349741720038306376357256281674741686419385038037682317651671994186141690188656620638506280800251275320203135515220868311621067138145315676401686595965243980627623042162049892919906340823200519863906959289568192947349429309579598940445333870776384200124586842501910674102614414920747982684300361180143096268779521358591534212393004241117129335474472903569276740179970213383696211319807053678048551135583865673243577868561846933008105463122973866531256924920756905142524318960419912477299642063668990310566319491542081124737866790833072132534373491740096915872223023188148115993245515918396750364711848940223719170286044651462618677988986558212863768344196622637968866039491964050175444614915720552618507321091346796351864306018037058963846734312949226332222686612125142761444946333817509785276446749327001361172734740192429719246837709768764900696844814843145615004012279879453174333147042394427509790972921055937486575808217304680409832052553809496587285111170973874555794647220145839002903998841688650763963157933271025832494760098001117401984766209909507701727646317252195699430633994241453653517506798984743954383982256441350619954596680825281797668659436253454407902534037926882635012385051341957386380375649357757682133102688087123440583421170300971834836392394259379669041573804646593372647755653881957490265011242586341695786004407334342456357002495530413627741194430853690833449037491394084029107086371849690036506945372795590680646179900738887642321967955809603850445645960506030167280489380759113892817852847833074729286510693577712556086172258021613260275954890495239198318271815367668595746219909349636514457690915613666136404377279720008750165130877351868222992950810991909347313988893596939814265538663025948801143861001029222869050792608499524262245372404732780346607284623785903210779749130180868167578251857926770676051261570197619077560201966267813194821352818676372010061093484607238803477053452883025466779260271287951182473752480293682696233741630144654144334111602099037056545669439054718832763433555664965263968879999423260239666848282218414780313302552459654770433571523349820502467174798237351156228540939559583732215842473443470243671455449808440485638915580211637745767375753451139051460046045194286725343147779774896263894468372798208129767331431743960570053947310381626444971515393731017945395920944884298306088079963509228333987000238590382143234101541388558817887231007389980121366717794516072449582748770248544111679810845573850062040951363467053677288740742237788989858863709897440170231985301326003125133148298251570367541720718755453227454848274418587565970269765211860338768028023573109093268237559404135803853378598280823736749669489335447615571340283920056851291022274203805211402611992875728882356721813839980883088286002787045855685854877214712151474580143704532761251682605886644048715751795954064771295364884436069006399118804732163152796396884588417186505443435811194080269088426670250116212834759744169285619024766598917280503788984559924408758842434892814296275314397843164790997331645599383893855356714092877036201417440390993889674728999772356071847860351082188241260890465766109797170384282344689165390574215237193386288684477557264954190207695893727842632653082310043101903597213276723456166727353010559781281756274076360068921434132069718261550769576404038818186842019487649973115782250564045807667379906834812921465306130826110289825884968090468753306720925336525090847683071944149812260258799411579242716238119119019285337762832741857866602440369030364497093370287079256802729213860324869634933373170347054287417685036933137962804454942331195063334645174209988443098522103519084105950045487174783764740255182098377948618603442664526852866789637266569317099119310960364738628580042358102595240197435739181933656287079474805608726887507193265309272406193037589549895630893003926186308717806068651482450365113540057469135733737829698480851534543155447320710714422297659233097094123593844279781838569914991087553344371658030290640200244031754102430297592527051786474993045004556590266531603389098286725243938908756975509176752069715107384665393545097440532421309237793079865870617546667043073515179083087251617243981771950096250167341957005366581126776769349432596466824595564251914370375888433273282004275829767147296015973212659734809633141391334585830902493112377037356769625215566055010569246502130321141115977941197486946444174666924638983828349655320160699463048323061718467754604511132489161307002405864034675537364087293512318200412546529253993483737284134493030632400341611920828733351192464816189119011920370796656439763023824056478247234753141116767848795688296040478074199201772999577419745314275111409472844458976541258573658175080686990511289537804892863667731372313679876528082446431132343678991734287877450449275978651944223469568738968491523139256956200051522449792281626850683724454491439421716411084062183422460555073266617184355049627120982639106634252407701615565825201250916671865530685857135615213062134647899159581365605453585234367265844377287967874718201878147033042664401135933541186100253684435159730638858155465516085937867891311285947852067823631834358076460964243386661571532268071987353087299875562991938962929022247690976833274312901629888158843717991144401964408263613887709650895016800620465480111935164068838826062991707166064520840694735680281110803237289845560902971859422835726045342516839089058327172676819046231456421373746029476691987998292238380728465872313199308361727697733347149782342213477346524023720551801371546466709567344716081127266449522438204856614741637292346380662147923633162214771473484270754492683161516691724824401313900135182341001440832538844571724927283380459136140880510030798863533798202092830377001658226088104570819407710962201226844904028506837886892384504163639076384559236919881420058955428198042598759989123285219553238386176615915978196190925158569694392705105329338824778311401671168865767164175799860494653897334447807284373940079455336801475789873854560307610472517559488476043943626613988874789203630231499516731665226651156959498760628209809076514574760236029539214308460148399983563128355456694133041508266709236382906900812736396879538289939046684307206708942507396822038520482989404288245330145593832507752840167922666844067964754041472932254401749402205664959580047443452545647979304556936295788733119347363288154514438096087511369172110913807493616909710324405471753918441280540216375823676117571394359469214929948910143567339404275583011652105384000812493440497624411681280988061010409949097517783137262913315169948079065642647339692204687675995651402319857013448461189684403760694418666935993051255849495540737559129425509130754947001719189380403432615590450729057584412393890119623058941518475475509868742508990725452235435635432219144023521088950489737097427546969565761664917056110686219834395942656488153199033518493360071254204789902523031713277158481232664651431809860329370627215943576126955142809116979839783428904226039418685788068847998088194223557564599925601928463883799775981444412226096917945876421135171302719816272520312947772271856520504564966904191323161942982345414880308483809784307897743660245291062299256955091514586231458703033270541033254893153595771282898097238059263732206640854367281865476642400595090377782750020048484083767195540225749180179913709474505547526912469509097869584066307928342038164062423600050559315914955771600144195551257701582749065011670258847708177682657266701381627888241290318993319150497982827454920024487998210555929915085340260377677032315326808765122015655902710912807344149247785630187153960335223975415016293225773636244470261481845717562971688890249148328505731040753422175929248866394045998289753066565222280737669636659802676048065472254248504668412956995564743213784995322217655500475089685583515357408295867982234487883576615746541170569435376688400874842014473522447305477462785308780527106728224704610993775552416622639095032511450348484542501778821425941950852582000864883388893869012165058376793637640283382208295489830114806683625101545552703356327827341940620608289389031182945864836755136699691008522598159067517904505519125643071217770037522325298605882136612361133293456412674620138612899764792293115436451416003823879698810391896312273563615583774682775462492126896405388329481438860636085924886239482006259645772909623180653527498961007192525824030730881831569929272573453278931476881988355326215184830110493662832364693931908005342196808914817333689077626409636218480046288093098017734521337572731971994888343413681380021841752119292849262987770169116416219322503666499863744166884002557954988403506361596872556526094729804785413512076241146688881025498238119383560078372674116348655077047412062272522698176030471043775117169580520367554816800163554785814504277661770532932758039578191209641485857833975297150793117281693625566847326296506190395747141539610020891951643625949454608522813603006659752817385469676385930196128286759618177833407627123428908873690635957611845575698546979713195914377366060660713934712854427584492633067626972946940924126826202883473237227795415127362023077111996451603346870167710357685712745953836271448748008854415492776252716412462694242482774377630909234231971725223737354717772757765672762645377343883929649715018141122465372152814189944798405384032131708315148165790871044493100748336363407623155828280685211485516983765306456690012382475431052706949250580548350695588904451279426177831342739977796074807367438107039327250877790673654894496749005245475575460685201176438393125269094374568916129905032173848497476404617752211788076027401825005461662383544412706934338806634154679765761813729970377173419508256222195098767830248525799894345396654088249545477953358691808730986757871513892173791423165453620553450797231733058212581588295482295111632891422917836243629540475029407568872328120764393186363787375471243796110209660609248738659482127343724149950019158453550922714951229670102822999550772480204843061291819430764853048067756934977784231427182286515446513626988820489173866858084180713984955742965851502032287978657202547689766204308391856287752741983364946351794708343194674236141656308142586155948408301238593407408558332838121388812021508033597449069631155817553419844736142503829061008898772754968258065597283269468705248825291949528081779857015285305411264679576106054722563757842173153646793737475030859747065481629138253555063033878771326888606372506209619023279877144510974397738826013733651968616886555700499382671638752382235134690931158045370253121070010627745620189364727349526096730691211748971885478684867562459578670690982641933033370653680997728794734729359148944334444436974132667244780268825425683179012550383273377329553122962393189166709203868033884480551141306664263383274435736064357388950474024010613741807718136409155953942457155150317831125923464947594129905195692222750209558642339347871910256047527600640190062915855386274927593354078147252800480082511455433009527597821288978887865084911525195482845012442071608028533247040812908957124076283483189483101831929189790504839361532222705577046013153234828357023077552273940359936068033618448174352717181545074826755185537044299676703798903013930439483256074895179659286615502247549578732965615152185553279107874937655746317490722139123051235444224856864086250275010944202090979964154759140052922547152701828234373740173709684443090358293715241501992304556572985768563438397197672725573479553271872196745047923208286886212969005062363753135016958593865087765603215852392277963021749000673905042624023241776964404335711365236759455242413552833532218715340306642779637226338274129395631818392307114771152055919196579534348738216058666802524219484568865176075397780970804519809026485093288843468150290910040390389138986803793538321543720779921633274814440549024057494233405323002921667033645498347950763608985850489541875235929482914275217441322341229765718451419316117401539135604247361681955478787584492668777910006767445579461346508438947540045423188787483633885370718876567375095213019185088217884123529320994548752013740452566126068300689619807651111692491353565006890739018737650361269245081380674580986926046952788008118090884519886683087382026079693471354985880172847430834651884401769160562682773388009744898484353417974861992081761635491391493218520969844710000711052566668654135231827260636451498852349484544876755490533144222922316064137048668802923314631964496028229936783829085837727827470073609720015823392361599304666720472400894295836927201966796719110438146854930033001019480596984613585664372771444536330901713801571323419436191953092089454401493649681704616422440077024687011885410964112390519807628053064963718905411348629304485475818609673996965650340787357845919340570028962309698810988268298286351023384754483492079378620351602165081657753715919206702237697726454934833418985610578127395427962669396465847066961688320152252917519857473128621054133270781199053441244399874327516615254092913627097148572835106168646528069127155616633105888163558446466956742337306426766295265332614037665424984759613051270956381404812622060611593451715598872231451852700367087788069907776688055436832231531954606307861343672727418838790311091783574977841532009790449414083786810430198873430473681583925976431668714012323606140960160043653625003157780929804648561558777809532160456590988102734081369958271539020392971395400496161292982062654791467845414373579781169366416877789481033336095810898440251377253235707210889462079723934861347744203098334337899235949914200737995943032720547920116633089100888770155519661668834508818887894721462375814109293247549121187060586945562379658997088358453054805273825167337691676744277009395860979005700686135549589976334104898702354978872508053980096430764753164518680750729592413932220742875350685760206365461148827896195265227749392998966912012905023891229917324787649295489408780813737165044300420734215967983252931443874193464862522388523207321634394764404460016371573405827325919014984428638820805934518638864688724151907849836509363408521505817972035058478994007868260477103253055109825473149464078214417134869639646778088956864825470314985026544529563247360460438572724300636226643894711495320361412149409056174728293966814925171027056922019430527459388947688294365941879980782692983347638442458983649600777225926283183103045644941285319906098502378108242836641615012277793928403416655534587605994119857931475248664404541456563925256136571056590416859368088140935460342809772824930466522815266991039532129898841152918048109358602628465675213379582560139015269553734458713115370664002091770621639779452957344831873633337908518292220890115562939363289229494426915562500908160685870417234072748508616343096356497954758894060558446799091840377548087384053849108475948438483258696239677869692104842496606579501639857713682711941929008254869536002497524833440834753361266962535178138497165186585753637780393561620035398647149749350142721780412928306975954052834701529862829310574019770716749354705067446862672639830581112417978720410825619441968567730789658260207885215618950870416078080388991242509649027526033658235000728434714241372992285578208249644197932858829343967205851392133566480137018568467173113717806224442801362833795277142278823830926200202610773927071381042138030436293249793976328039354880992356322438312525489650664949502761578710358057446878689886267717274786445855040757321504756098290001087075386772406527262708897605969497853765386685326872469273585334307889307806413522341188883839067676867203733442812627322010208537773163623241285386524818569201861303374754765999955555373044292649506342795086416646455166955113002139447278867879191630467197225610030126548707540909741732398320304081965760416905891546755735868178745142361161104102416153510707122853990001613690293042866537876092704003542156763586644657563184630472873342748889430798268065076848241640133770708232310805659808466216281472378531168637904637889688506574520218636903510620268695532280183620595995650597956791285708471033013601389335286722601818833042602024128840557663999123895162833462642452920167626784927671273039487195478278515664589952951377551091164733015476221074146058418337298206045825165910006414501166192341797268624075656891942588838142971719792725325722512047931103443215938963486210801977221167869787543329841513620981357645102015773775483670943217107318893103308515344022688853534068372890569870419765892015526728299239686186179731254183976938777441258366713993758806434185920858248296402096051148590976949598149438681438419686718374505452321960786960490422359491956591027023767887312995518157492341760674377772416134852226549652388943245203092540623214888900266170731321804928398382897924434840121396905479513197052194299769908135841626688895915997005438014470970974465832858570260794156176685971923174956799553872627893822040043652902439318389296478029623287644318228118399283675785429161751289790107554885402960693686863848225183096111458812394672776067876999085893284600046124714564411965317854650125723937312956992466838594091233298301890844078891431811436709278005800072621257341040012399597084499934225367736110849754186599219197223353227296859399628872053766343669784574369944512606935822012615320129697521535005861195571387342770682289329831078696691228668934096082771151918346223773609172300655283378365371984074265143208617838332075155483608692886123631191885051649100272660278644293875717676733187530939376677767378668489524400045703293479934823276510199918610472257283874830381197721883406500375817953586553781756745648419300683161241008392726545958974141340379878180042760301720821655056012386737285505886853631675537797439259218141849905716320351150217781965852508499211138827407995117237590533731720375655439518874693391835716164524782144127250217565761681279405809920562169335222133547394654033149067678504196505722012201607926712255505432546502033228213159021792361110374310037304385726687957717005315979667158179520679641367709849651986910525309456187568211694800119206461200041403986056398439741684272359639261666822160104097003818582326987212790204644709261856187426786386257625865727670739927597166836931807137558310320218698438408480758323277562900499166781912685701304577119602601800993263835373168379416331761761473812725842395224979778050663775943011809655917341661542772635707163904301990747970126570884437538180905953583960347490758957936902309026150387010195768132061820343788489475442569141258825996359260699450851597278438502695532693539482900867607260078843314235317127633542013795442315582109216578847599334594088530023868609419400837053805611324262889565929152038573685425677037651988255348354436112917291394584997929485594146088966407145149648595036601633165761201719966762212449528592094720702191488210794411345374501824092086743240653575912582122573504939949540606141174445665159955094350202963845266292776821597190112623376786320533760186612584259850552955078762418960473139633465869066709335101848687863067124232370897281310629662788871018454882074142881806937188745015891509756198422044043883929190114702893445503202044538056289778344880605834128980095852680737307750201354994519795904634503264351740212711814907466335174917687624139026992038915985754250707645171873591825282180548007176687145324502323191973077754558651481617725182300238391429332837473679301699474288776329815596832984659696149797216213862871528632323203774203217251238462024024760097444372731260549151958167083944169326559471798309657385729491040426697433783241819174735540658967169322691763723911059087536154755745238311098169111614163518616658380662950478841023253471774208338515111157704334363116138539627412187746000616467599228775328770007608646273658356499131036796805135949768891051711282862922568544756203612345670475592715006477417046335404364478080096000773639771566411828485550302749874789759380767553607042639647220008096425530984925365317251379651572999898682114728315049495138328254309284498339016277329925526848908401609202075655146748021120573126657410079798055573386539727991121909383169124998644293478393581084478591435821252515770058773369369653912264864665203501508617598536236168498673619243088332857086891895241448579306613209361641281483332684110646733048692729673320927106533598306462076691799686573623253232159033607000529472599040697557097572749279427793467141780341425870935887252437112133382514847974189148592205204711962339976818722469447856061011225863653592171538933113919543242420863388913184938798213904188918809091353518513819543396454002612345343468527703952669119026675052627464687045627714568591349567366299093066937707206490380201427225938770575301591774478422490839765516189315868004443841915826281339103052194957877145803725749639437598206562836641485487335036832946985042280412381434718367507999522899081129831263216129834998173727275753146274181783028053987119742055667967712989363133768077418944060063905310008258226649584196467620832170479787936508557716563477152799420847574457341998542155788667729826846603593194527465539635488905428244586872220968963661491797581955112415665886686272678420387905602176311008293683518624270242315293682683900337954922029711921755734646058549338075141174815249507934647406525666368205837771503804016103365687266124580283085475737130718139929620480118695296871721816937336643032830879267116668737270765749825204159656284340126215757911339092656532811867932244078186538782760767659571468691275689109805204058468039164422740285274715604647560427581802048971615408161476704979429102338233132030949551562213720440583199706004821479379323713064978810192953359236056333396151080780258816033425747918542459244103963834023182271899666210503283869093374339646237193492707034836292209730400564216639472483339046151246964495032005871416379926727141199066194500820059490431807896090297909726587109555547683551987593561163919310156315914071185455700300101792952697139740809654623245808071996552796821843849768136448394651043458627444587121301238482440882698450153637790794880073810445457586807139243804780957190740052320988776824952126664294607157598732203593700056643871314399014566722293211372600136457366468821149838539855827290138195668214221569845056229269616989988519895702978123068540585318279214576737816604909476676113520228535801239721127759389275146651130227753272527168311701556188252761327533246193511777387967858020003744699938206010168124951082447428349311718338740669634994493971537765923672069580898299294934679293665058764868732354192183638964404848955682434948587401507914495542160118013648667470655228363601439484938585426166396535646708865880381269074488583818554221068526357489751887566989056235726966945029691164698458118139334610503340982606112804291369905386628773011837301573698723309973411221377298946780455722307976564167498579866790763550217779305285900572237487751865125059563785736020905265906167230346151274047683312483303548074314619711543661905851492168552390796306296919949945380927356860466168470507758294042269267334763451196615829955574046296626989568270547181955611673410473588826449255810637274481964195905741221474276558311248492414674436489941219440359412241120670107823794288536441470861413518346145454894574074896424769602517140015174074457586517213342590685181673274777691642311621161287212618696990991567389510994806351117078594014537336938788412624617539452972117901848461410617328225780305535743690252054017250151008722653573945351343275768761121886063261616225919779458691135721450676280028521990709546547876204263611041914701944431616349243912535863208354701727152879952554933604869016116648708664087715080465017961482839572194397611642421890912643261629650932009515508335173675738252151743450468619411871202173099696983063243158295077602207621839843549840915583246978176600058117861139821325894819253403757653382297367712074864539585526913152970469381459970563475501127353268120051701359054794201700716667378285883625324634295151222462878563468786021648087433156350424726087635236846231233590026698374218790994058807633796851529435646218001851509272647313056487798734557351619842827281431935173481256467571620917245060258065383363220286878500440442950282577658660313005669122350378152689867555270240489438124164273748181848769818056788441921484866586761080881548456224463116267214343904492456729155548460051731683088495421470827856426116447408647196660767753040629165895492400965947603243217749731757945060127903770240363654081261227855870707910516485348665776885405040602170501492598053412931619396556600967349558787021101727434810404555141005034305090342443081178866194850642949057560314864174479779122253054023866409114126651551478954525959096298865220633200418769330724995506025677522229551751017119239288846567389781120835320473701571652657676429702611723071306244937058371278141402557576025219726700358227686897795081571370546202490020146734067973593730691473482497146458468609553175889106261618446234057957045523033543852388185557494760091570005867288531139232587502721911390019241136367810977600554776207051488211921381463068683021385900191048420817669267287094941175248127177165906627500586610318271499915838706536882288255957016064346453789258136245004758140913853902914601950586799030206699754085597104275076655369429992526613512578972211330469817597590149041455764094220715151917323847276566037222642902632005500234852720882037581880376468130086478207417995370348658766165364734022546064631485883204604183443856495670453923581528868263639467995322221793969133338397425222842835716697054049046236788299275078578914481182394296360169220783532798394237914358279394145009459595353048699332975015934473103950811126990915703527290303019790600126337802510720372728973427327277077401374886581169077610336335564077595593494935718925809401144522718870746030258170235910871299473021533912428386253963519192819946143196484172138356003395487400809408698397335689053378663600756345302632042371637309317458760074326202160611974395582607758291137186819744968426196959119365804014977145820876539840218548529864303056504709585055116845505799966251819173269838919251479209392386616393341098340013222370133807732671499357574390838805698282597854324606689964995116261059410277715883313162776083848593460617911224844662500463195869704067268505375748707044518347302463050835939618793696090377085759050936281549826151773616699327715310317038341876400419217113618860785904748041046244587379834412204629897189465700858625741977260016037336151332048649740584083242937586131202196501736184315827332178571267338275648227547741386847084267409168638308449004196206636846148167466917126089254941641163932252366102164172254946990887647573845263763015037029011273664157044785870746046866792048234093776119229209770395580474506282792792369092509490922084985904332584653660757862910457192802018000657548268289217180192398597484053431570769765834736869912699480125340126236736205479288258575530346774380938548941625594107308848651507762715311371195782020997403583730745535329325996227487275496516990331688086546689447811784089391949149027570726899778252622236818974761480812551741831206676269154965168016278889987418216402130187896747325847806262475649935609046858321510315660671336750756069592971656509353998136563425558642808425614195519651969796939745303369978723395215126495350143402680948226244763928873015786170379184922925004312023958648878740129550936429635382317155230460910227499205537919593241684203776746549129177059741442459978791087117867248799445924164150404731025379226044636779195114722910906216398386224622138724844984398577029331386730917815747831393129883640468088679538180753083272640120796458458256738125380731493231880916220772357310019204592121388753853451602077412132224153001034424573270556965053736619077677623626413096288503823125704734370338148690153256705063782693323176312566570754579371818376774912293846439041482033758792808640362260067538931389878659828364875510471865333185349559961504646808659272703233783948091595567621702221596437921601139862590090115015426077085551071058028966142234981036721096478800568017794277982309348169060060938489373050788589938619409141480255846269082636384158000527497850814785139681550810587288476794814026782067912593424588166435132545698860375490059233949526169687691894457954075590511916101514117790426649449436560889707322945410614297072397330711758044782250770970642284652932697577753800790269137311295384011837747246022365568481340386797812290602790028362140865529204034340428306741842010765895620410453929481726420022193898998497143584557827772555100729969691496944741971561821165676907378496845189264408583073182226971145078478640079440051538542426812777197757292025845446966799309755626365066342331575618899020408891804726025574127297600451459333329976298196837519145923605536062480794536236359870582464713870449472665886063964915327870127602118672509833404058332832177575329219921471647623038827559281082905217411014012014878102468745695837666258582749321349900921149327197276058539872008239160444127325338109362485708578495801408324748736511375283978973208839303718529126011829059632421681177127857030425241737727081885830142425064755986796795260441555503550022454807729988352865018296313100202738150630893396486495479300797953692952539360524595561114141360077665569711032390493307373808637696436192555611360508788913877068636954575806064717342657983428761007576645706947517542518150067321568556047211145760084117810867836501650579703846436563115508802885781900451386675603900779616414963631565120373821338004719009651093863762658442000175428207040072180684182806767720335190728110532342204259572822797368073421036610894115354114954573804034726311050795101687664155590222009222405620883880360811825278207908897575899278047742065788625696916311628292357594356676039235243867862739084557664440006642973314080009592539338026111426459558982265926702394367950495198547326290680886466968593878828536182316604727498416582560209686191882639622015964527592768066532168018508482351438899523160646573458703699408288390306953444202892453171353067217985081268979022928273784099959031697920156401021609042447311375396251017706515026030715755030442809984598955974620829221808092078919913336860347739374459040057316684809848124099608021950320427993897353311684439921379020058236341335510156046917751441403315898478248859236149329359428950976628257448988534356392933704891078402165976678424905614479594786923808570314800134294605428458570082042467856813990620349113137253902907694932493918018646058189349367015206605862554094291718472964581761359780908172271534592054250521149172134495102197983083718597824271587558467529990343421556883955674853953965675895049159090914103313007424481724991983589947538278506785294116861085180066086172421200453001113984166819017095718729554707593445903135524313484142184872392682527338862319364393594460832884985346838144334313375114579668346462898715295196653240443456484969995111199479768629644974986322357277818426197660219880518536042059913995690936586059883047725442529029548711261812583947778710507067612816790009569372286354678123055463703779745518064660787146686584021147491428243119175033969308339249357515584459137415281764638402274410159472997064093452804455198200985514945074721225949138588877824645577203591039091620340780135186051113487463864342059517690894225270234163150897103578754272884560889696211339086870676161639141706022745815634361032157524885231347557426322889084764555231943856742697309339268403774139820533399603735716298855614668809543824242077674994675629951831581910109777253618870553127268280254290115208359463198144240410838109091642953979910904379183234133855765810462031347659042137087541696066491636912603140294151059384747171301624427202089797663853308794299451398681896668951961720608647293082648826102325146932571654594580743009691125298975356434496463263414693893364605818772448149886612868698765305358458264651784721280250908444678404751656974747603186371282578614658452209246932274774232774387711776444348530035080260434263934891735547837932959827916207550197666228819978605794367233713007801737447520009130102315568678815155289811489235751269331968901388910882714482349038806791937105969959710230834942075593229973019222970503610926199870895561303031060573264913006038138669092298639827537991874208061790089163168268295944046556708246308926786243011310385011455107982132204785990178676722019838392538442649611738724786086198609600945929033036568000991663053879231541463898731886668043632135236108514256934394282152570655636287716921958194158515747725101240597347995116994155953485449541091114464274319026146151953085189097217171079663125904702501534229506605027194149545181868564215005682799891005661846524306959533823341650213670629643744370881342216753920238574121065548051706358469230093475899732504614590164319811892553184543445263657660840198329284927074072428432848103176621971632587268352831344768580395015317748215505369337985868647414133971499199922595291359676663045847149046551508859969024703853292450472272149062559087160377212244947876348954703517539388320845477215290519057919749388147448121580281812920680860565734414772142371525674838096245522020980061292508918258814373413754739342981905903736427596414791518445639505572561025376195710281842617310947168897936731096281063787030915771937923719582505199262680819525103772701668933140283710246780451613976006684832769129535521555321273252215434411063963060917470459454513289769600130933799923504143048710325022432267080052516718771240717654607428487627724251036147932884360985294350712482920586388216688479371180739746244600662757912980916636893495161762704098793900819712942803784362379738810031541489995921174320448135108207446996738367080249091279112707635778921565200967875438861206300108805344226029416086811599754803007300636022527914920910180353775625782340684324024317247238567233261325804418825931364458208424290844707806258373441881123454009433507321303605453473576986033843412878176899645793887950405932782421530384077950576431569244440792507525726365874615854204858970405629860692062802905794203715723508678731659302448164132850876595836745162359622384072026683464119655487830144393400439626976083144076523922255646614263761339353777323021994149793029816725491746936742897526752560246823094195656635867659146400717591022290592680895650980385410447640748164704507060030749633320014382166176490835406429525962537324249861490118593959602236306790630629416823047740197736859518081503451557350882843549709660679345937084635082342738908347679684724586651085653000308243973849388193316257561961745095119400211006950724770971228369031480965811432702120063449909229962222378525848325840290274735755577227577830153944732485738775334519377648321057021758342546316862247728587414618498536609726266035501313542256750385302465448061384279517765698743512872267620065023717694725660077218381183284696716430424453266872541969631485209125401170306410463405140803081698391845681790312072618495843510423257084156457978335639141817653422082652824383093649846402105250335794931479804742393578502965556978752462537995216032295912266394179765461837109943749818398628374673376723743101289883879238804116957356151759680652992832698028917728201030561268600219291576769309319954266293640604860854399503723943439066992704103199634138616741886381332400526642155212442783864953745859783920991177774467088314169366736925337922312278933601027581589609028056120957707045091435794041382756980330434677716985334174488350502965404879386688860898377257486041898225868167486174112053666388896086447448561215677637883230753485061680123840866141674929834924917341261755952173869775289392731693860204556544276478519297110374732979497255865227091519807772215696617373694965221532315829811355959949281282720686063143214790248980924041067780952670149208259228525859558380877840477358371025446347076835208769013530611688810397589949610480709437857210842920242739830755345680359525244442474532013514668401959495070892765637211564758681449481901273611043153632262412216199471489122716476907894069673103005044004143221929286921921778433382751198347975907624364813300769001706986148845219060432081367092996618743214315930399203763618505040394677003320184499160182521165039758848859601246065491482724303195766521620029721345888572394437118696005026793214964971245762455147805295696494563982515551048030083623954948224764282377123906772486311657501962588975986034724415601366624127720426454494834918685369875032664111420755793180114912883969834134181159586128447445541076398855059683544506408998970902881524006335999371842799047609599108559969112348679595771082504922470304259082743224097456044061385299919368993797037686282382664745280643676714674153821176157818154190681366509082636617459934809082029981534227387758117292545137984901025336350346526358053675609270366215851135819649289590531784006355959626522138799412144223260318062717115357530510386712962003272999799078359468464926989975992647617683732781145219513379636266166012678883303762301716250891632812374566267818057718493049453050379812481690070478551818281432761220889193054499697531432932570880690097710509531298367448259366977715014013238012161998411659226221608924087971538521045259136107454731958573354846394399160148970870905084070013863458097506773899066435603669420944847645306955861285813838398280418942248764426798453354442373785370034449855677076239832530959821226010089832485970774460466854051279785538254304242803417897142371403077423822616840386674040998034420412718525477654308498913859658125653472345090490798022463420310338062469077054288125287330424441478503534444478857319784874382732272045145855697846981916822077958786844391907157108481196096086064047640101265369752744531033838507032085017321778844307265175071651065314877048726763257774150015599506714202124829392234614819719253425051479760765991318717099164295995881566961948341552652575107220638158518627436740147773776472729286948770727194963959402488321294017671967976328948222954093846301696158789997411130909334326475388762094741259818382334544647329228230848504910195690994441506357013824127833475722085104324875523439989907046922758423548260508580801958862378939103577780347539354827167460355315651919924215650642717098208085146024504049642312415952042658635938190923394714057384014332753975939853934359488485172269004312946373120482734985297144449523911960649036142408967097498880454158834837823881441056956545545566774432008260599412234819511046672245470511832895119135297348853700431399960049531802741377205373644277880099476818174619813541422957927307047138255938299019636295199037959741098238456067254793897830174812853678192783377521716684603100085974688625011400627559532376855471764486988322406127946685845711009707722949488076102735598035282214557994607415295990813681536130688502504410208895584318354237396022005966549908786739742833041067611894896896288286933947500706562643603700343997107528782845990752806105793529027707557352011525242441730367331493174301775403857622173274851419117996004834809729662197011554451880831987222975083753554475728891417044045860448524089583744485722059575867951543472372277266933302289770827898045758924599501382731809150906801209689187334019767954439836410376165457205256405644537104667194397913189323471779330108441253070592371244284133002571495839939139499766753320925257316753852144474262455705817157963465864113341132454164971757001259350651738117142468810776165282759796060003614520856762218287226713395355987295318609671874419304311700259805048708405848387337601292036518900439945331244558978352755353610292261157678043415012721490894695104754362227802733385713742166635605285578291206269114364920995274787088195442077613359636792045283812360925362587472012895880147709787367868971863491534902798880766348419489560001124022198699364400653717005717093853575652316118419775751013189968883615628705079923285846028737378880605382781623165091270778973261366872719562884400363840862337364622650882859598002417703159477882082550689414250131542297230202959493125094673157480012864831730144610208880846681581057443248205244881971041285581666160695495358886050301003919292930214731943921733408014160201705835296836539187961944917763541940844687247423319367571779924663709280956850424053886945404171396981367862931376531323222758314052220732562034042890442977620359857247171581425233639895769153298879932464949005564227252810487179873608193209040356892927488449697310814253164531671500008112755271894952253556682982498227165719702964700823315140550403309965973136399371327697285513809309095094136797670976434338407843899867822086759911884684496064849626359723708024882401323814026817784515278809492367732624998362475357982471605517703170967353578768951178221586648030803239468164565104279052525746567090649943802672941918498839855355100441632980753198668928635277021364973494295987664194971261257472348283445359284092373783426329934651049255457382254984257018490859202033271386795711831225657699520671859937172836774025882021401806325954560039024379343880003615581540175529897404125631351258501775706405680679340496955599161286576013192728493428218001670478210863761731380435044947416984910858223040685338176788580629419502253168537816852492819431352594353802957056819761865030158921140020677637499274000728080911699218289769694367647110025032684173914331795074328210885285368157364082375143447859696919850622440959414930713257361047046126903293878568576418655910045357694600727333033027641559320449905287541022414593679532082575232570407712020954462249149617240652354270657428627399441318621634983364329094336331282945576550322915881759352531032837466194128556247858658360521897136853325022684976572205079063083826988442585121503784179919089543115987097502061218487295946191160955902624276265732362590903428538968828913634699025385313588355213970932150844057649330485668395372000328981800541548221868085829243706053175230358636708514269841002450441489792555671769216771843949118183818168457229504374692522933432733584263761900878725577166314120294902312010695921329405219925216887108313318846059657352675755317730929695283359043110145132604079650092766599972186766529037619769302587577466906208072355431313839778545315139929493818003542651937637643031460052905327922052149457447357989404938595701586857812193615926102956320127219210335530003876626054049802513354917417036228797005175028685193835817350979859799771973638502190627988931593145088708189050106903350228283401995085431255797593261647248380238634847506821355340615142235446997690772546539650586798716688509929534536002528577252141633511023557518779779483236921681711432925255383273338357658870984435854736493322580560540912878019398867510241010677606570078959712651879995069624790076894714531808685718062619428342831480224511691184257770112174054001179271428006395501385261196568508279250485279039506619651204376930807479594775911622137976329758079952413907030032596620894629022828107850087454632808440844558987885433650296045092454173060308094793879920293539631917712174401946801685190070786282420841692675385036496057522658863137731975224112455577230594228899908289229779665656255828359388292250891714965185150780100318643445380618933817935049779073093506454267134759673774167751161958884938513991769895265555928252526303102091235478467013658813153759697011147960787801020022326066490427150380744342293776061125309082229687322348865441867162486232275614927855478739463470479919943017898168965802533728635688458306704221788910295409080642923970702009828945041963562854525488867568732084564772166600587680559915652324982361909539877576135662891062156129319513818941788195453345844663545118046197159264674318025001025589342039960257539100882558326591957987264492943710753365309086812879592682869365041618845492341830370126958019191021150415072416900628555650689526498737352908228414581478481981764837738770065248161364598786685406913198684688132339396374206499749934580162099736015789595575435161956856942837293058340171460763127519329575023517469424304051794756797428110176562463877593717534622980330641212452942792376825443192961939970500533038325804381661746783900254079567533625062042824127735671623192673481370719900465012492985921273937244119067745544442493122596464350011078301634936125700222951154552171013516297035771270766562253011340465906383136569116295193229924152826568549733667244763503264681966475604994112350848129751958714878789790633724962155221444201214107806091618348769482853382276635059349980961560507610130407219926583727127615416818127041379925412817479323245390431299079410588809862033314806875891552013728644964592529622093460053727695910050714946528327196795450165002975145212924565602992253222996593171274065215642635755477453726170105611461637120654020678301710745382508709480947273411713936945179121406928659427322372619312056398293516721891127316448595286989306004846977939189440454912341949054334483245206873169377616449258330898290524278874227011119361560638501957599014864903356578052084121449153344020617042080508866390699579548711435862027395588584274119121151613067698493873692291976002175785969297555119103470800011240675334738274963025076585996107716654340213870715701768010248979557483529797851568030117910562953459910503963454654663361168947817919540936592297480109602023831330248680085268733832809068866982231033508035432575486774397828187291731183341811184687067417483861651702219315980463614022570990423738611078552001831642715866299408234918012353295630198643925390596046229100777821003170927926166540969997785343207949675772948296713901193180172136820230291046610655713611977960508835185807169591503257373114361219218372302983600777538126657442847774081906413058407869441536810485342216522462428974017568925287613798943475811488556644774256467841950002386913055709372046730904328860698202814535097325653113718770209780345422009924356495331829566649510979332450089360876503384052987862168398715518212096141484297223811742545163307561390465950780468528274300571345266488071067449047806779813495416398261475444162203356931530129130253154546911930176028182304741149964215289922050895289330133061874458999808241504427121293561259550666364557749705777266102197858253364394488100189533494576677576412001936900519002420402294885512607468819602979393951386879201513803628075048247301699768501729134943019708109886251121582715483154592538247010971856034834248837545087226366394764709859178007829849294056129341104793258489634014010278120443002032734483309079443135588887786492588038764968574756746075752408123247172681616156610612470647593349443943048927152057439640027192404035540093914608878907583988197257296199055962411911704402947116824740333724128979085883922316687666724250181252004124866587470216581018615218333187183659036449428995188630837370076087903682027708602015693498733451777578579077795749071460196395916001711531620032298992622126740530189362672725189650797539163331541728539860037404633801834336079520450499541110730511134819898772625025683895938052972014212401681825163618016700446892294613459655926343460104825845084404940792995345819523037511164027214543376249285516019182511503905786431276856584020367814704054294163331093195923866963490729013145146617459480444326952049820911699835911511782060736821528230447608492120673688238740142481472027590195225861526011991641839422982499069471745442238132365557065444625144434205863785199335931317120249339076788269406620413218367829357685317001004967378856522844529219533025669357541484766317507380623213500993641889360981286693187467168292255098542545971766465970934496661840334979010526800519567418107594101653914092631745750164408397747274042246801734353492106326870020070008446673427704546780977724561333901600164872889004098399236912050155646057472808152839877414151831135924386366726891693151634674507547014525864125643718242079853140095661664952564431010054658978070281169719761510616880189441186466494490244098993108867309883700925122712413865280447215802364621188642850828653130657185159309900945450516557870002347592749494417336701567125140192475840571126147854171892588142787608900601578794999118834873808495485989181291541866676371322883905032117558324038334858906296445560787920321990588054106283303755554914362459876195980619767008524122909098365939563533236471238952868268859369950794729203552150273168647141083813862392282680474633022738664160103685398640952958648699140227868168772736227152915395487613690507931594175991583063272886491559962195174513799355273726273250841624554137475068686266209004343208808468131491913754409444763583065264230750593064945351372901579171247190010156804210894864086457865875056467388931847229829582286541642930497589446909934043128383916954142243764815623262558555333126986026501160186680513854484443722689102647511082969642133924103951248599730517722264569630348978369501542430371938956281606646626448338318922777841911159022399883192030619808803300281680694486811795930108526269744707145574094807093502069756714768680661049746765371075248800889513396746989113378617390836022838246401923107940376684331681712588628031830263675789101955497850802681296224891845417245052602407142261295138773059604500136189907870771195267432083414883480466024375240880930135560003380055666500436824435438314840277495811494911381909317273451329105894589283509343847370201561301411720550372488245444484086114181667116609478395993061757645217585909308495402360630378945959771340316846062046411403387408848047232557122454089554220936185892025489992740428489205975974704956490876547105712119775091314581586574710136218769340987841399300040276651791499170297715484867617295186271362427820697727243402649202226397135274707073204527417925550837190630963975830233926457756362679691556125883620449919165687939204312870584292391997292395344288703483081881125401286125703010529272752738129773902816890915408662408384882243184049242468106994546061502377752587155187150123252012293784541232554905478341855928318996616708186896476908032509901767887770930267902248136452697389452894343859082401732213603832267690794649796634345296440939273854020994674114431379870196766992986083570897822527935056497511269996691494894538148675861059561600759627293961786217725795986847253789857897604117763236067660095334609435183128803888210057714912431119686318606758130349256693397209056484863961227548293175380169052075507989113252127589706874628984368068283240440143299812758984919264838539574550135450427395323482409627317962898862168207185215852821428146886013196190356049830801600399047892809708286002070743491650695431872611383884377316050426605358744827798199430614750483304630068915918487098363957641668121241756592888402335900994158402032994520297612853341857964854078343742021762712898245504665514122496533848195693871418491636344392635578300112355994517879625809370769142064681630753321144668816687312092042565434693677250696254695355316571000452113397626082147682541324304641537593278545406844287535206475852450235242142577444870697397900505842810931642259183081662552744949139955059752856768282192017347208457345186240671709592569135828731317222125963407447048928120199645032927126451500843248419358619779622440744847776959966331312228329803752435978738166826245596569412669988891074246816894133258613107212882727040938899957004228610356373398563965273486339057293245586779717016529458494336193745116077387304277292558870679791978239371943479197741303871638885635443100272726655709196590788504367439497972213850636706973338638830647928038398526498487042334127659819565797755397128847878305282804489040570324048121186895749068117575284463998548032782303698737829264414621939235893881152832363679320380150847465125038761813001953804518217049065543480962104214744010781217858711730683676167288416238386960431851348458990530063539524007983711552673147692934284703395008848869598410814178708563575033644619902159574865769480149660307165556712846944365648631192987715961979991786052968896295734230977505822112684125792950567432970217481407990410840220950935552543453706070608620622153859016271286788006162043447001223158080341957762164778702878751404647622921382502398261813759523261708560051041345678755376515088164663619333460399654732028804742850101925876355928676952938887137753312070570631942521165882826547431682254311859442982169515921935716884394929658675261505562572384574756574627090482090830849043932362475136837138956963163159427281331635842909459014453056276705912517814211623971640669639486010529076724553933765234787239137603844886672840494098557368823477610100901486005232723468427379096029705475915280549830702728552798115188563404967926460576046568129228105797882762235204515113744518483259631306669144689626293743184579382074471613823620751050721361419216063245876856990337395044700003894716156041609804399788507109256896441455908539845942727314045395672605697951632264193412555618840587516631882100237624980303368764853408708806223670713454170206561670523068721641023446217579945059256817475785935644234869679140111666329411328966737319495432717097274017223791723821727338282584616987832419337108124259412524151907588453072746963632944662689403888920183345964977406438805003137069402557381963485888834768363580687884327785272466937363599425655164148298346988312827570669857133572261642900588233028883697289188891186291621047681708016207676204428139190911519730280576570765189656726643382470535666614241086615585878642139395123379046171226500707875592694239593117618386077909239278164002363061963823402736263512374553925916688090336125199545828146383606405145297604299182588241765071833936231347882409129609681176484703716387683815489633708471350338086490547820777250798988459800464494572445657741697452814805874466435843696400066129961596524074948801127891938110534891807171788342715964029334443942038603622522516317710985833552413365442240762931883682470373848878424536701052883641170780114496756214848750790824974774226591627427716089090662059991266438992162888971494840877619436899116682616331575874970139650717512644824442895063500788571253203934700225697137934960371538554378351713331487975927929999685065862032509602336381256622191538074688070255916036761368534764992013526540365851793116946754208454275652295569549482558754174360653742874426299143278078628735807689592699553947845424825534332403205438353424191518094025273208646553436506152912887109658182882116107978729203808206348886875602026561056130610356516543699942928180528639258781953063619413655129656530839109025930899858969597267324005290340989814396415534357945750218648541820413959156097972835733859288716747764963391874315213183807200814657961862756625670248392657259291087678664099551445151332344325064464520633495091240798860384443348768903543031307070059662384239216346599490952815119865880444709268389537450552752111639722403501842391042214612453391216860667110487674433378693521714977329112811274132366149446060164084853355081224740680735680542798698787076731874607176151574880215581123200025015593485958694427251498937809641137718385879881492270484249002662526940097867574812110696637402945952935421321450665161104757030353548133714121978595344076390303039218360779921880168650927150426665201518450569436566670885809188944265644595798791753749063209488264760216552169385141443052951921721814362225390372626383966301233510326417341612366170808965154194960025245197709855251047493492154227360217146216018663746699052639093429369016623674239259331637693033203172608122008308951763691430665682930869150645801504953061390593074904596741067753615262724621164157141446686135898476975246310616492315823239059884139018308301531303119386269805434103639276626537019293809804786793426175609676178654169976506133842706224849037677239643310384646127726982358833696685621541130729551547847078744778266842628024474189679243185824255543867003648706490229193774146133351257121389570886081265565089899293153647590976018281699959466300511387564296783856511838906000287304824403814721760230133977950516622950363710264315960800312141505741988758469930384240755320773362064403126196205715610251300961619771480217120101941112970498032683456388134652922324467950632676052701810134436574858105365170678593744357597302879491642264615902233167384284596170789581264415183792521499698725959159595789829728592056656306608921155312582983869957179497855235009485400993536058550982007888416835119033867045666783697297389210622790567801727749085162730061374121594985232243408069493100221325574006879222354492088648255826380123796594596244467009463191516472913201923103082305670697429713456522760338708096054907295044820063491178116108079761741243499887500874585789845096626668073266338925839897732500508645759424353581461609391242383118919796494107135560450662454365444940808345925693957568385143799581982372757274873812509579741033935139287166722945651021463837619734250426567748861691239093317020353997059694041991861906925624119937288273942079321720472598398014845424942580095267498290366922609249770889715725393902675919785374860324526416644259506945910708257676039838267172914928345072669846028975996443055253071814960709117298914249129634788096346432740137274244686661457439812092126782075495955827756291389927921316185409261300898237218080355399059609719767617944934000887949338242775263332994725448319324768555571365877435252328684493814635618654119832599311333444316836712211319015293794244477459773621508973480085557654463000965392124310013506577315347684227591323405600056096321746654229279114909395947577624837259909121557824844414244590151115097451093689333026014358029426616649330105355517221422546385922515483256072769663845410041665263734707481036440553299392422822442609693342716170956104420087584376858268494634843268964104650218019137261959591641003659947947614176547393187744627449730484090750725453502819078270719857539312681833297048207582979986364220792034146515194012260686613042736895639163214380764437682339063183627021854706460331875126287569644750906263981800694352990530829419036661948790388843857926155446761149015835827001814651990636258437657117096401622154411085946107811994897192960717480167317566176843301170698131766559483390621210062894086046611900435913781202302744993704148990512906256942788640766165446978271075719159944989829624180313535215686787729399903854320599275129139786576767707709524949441389999062802417343245458626272913562585740657896784195077547892349415449617429530061023479661456080730988630348763242727628879080231669091366785367388829803562493156110800316359902577683329869581752627832070593871329166248094048428685700972331920089278091077234383756316360670764155947024013160848491153727421537342098534844005182535256302441601836327014774705815608010264981173116138170538312311284501980265263100790442464170354779010692037816079358229801718436082513058730399957937861378666420543478984691687941237092910611071672744524268987299280562321231233338518138604769282648765345074374675818156311028923161717726096952801630544871111773115785643763092769474086286553748376983044853028162137625638093690558911528560518781406498484603099211790221691543195053229154284721520228783651642078730842240700545113833643114480317027184983534206962005239338280103956833994272103979466829604937003549449000848479690767724819017988796589069899466346497355556768232322806725331395357576372572568296954991543834710155141203523897714007529759909914489662272520303849355827845353912800534239061561460774700126838236049599645409266972448368694202775262639825808281401607766588132693860627516109369069660938873317603839193125598111851205131492787557993841019065518306378069795786628143092308307052882820004878412051722145953522177241052377858737610828658398529591300309506460269852666308361197902462284808292094604551857312480725184346076666792405804366069901930204224495964817111933248425139414660092499333968404880106934960460042582486550994612362641148369535413685271730667107759637855638371948915788699112756651691323138755563221990274958640572364483991331086799016804989727575927651469161842049592807427670705595624283108196915071280752781954909832509532291073829618239965665521394936711337867862228187019012211565785708357885305535116747898994188092759694666999025888282497243642166821408012160522138595891122914050358550410433320685004795692213166052713723914975605805159410038402487646013513424208637793501801266217059663596901664692340832835279468093154014359077589301110529431595544935207788450154946803474105892932701204466880497602533056828132620910368837314886973652430560193142991090617833122739033886434843423505770799988944703139948618220511788003538239478043199808900098836339481936760464605639900446162373446403146141092880469597779954744256045662247664542301076160033119113628161460428741833906265307722309771747233303989255645657178893443218397814398153762214639035526802750055195780081331454624550694116198354054614266718287480954314596460812087723899155180656010613938901375296960102167095768369323055501916338136841144416982792355998126584151163379331950603447388771600574579116510245459695456030751454936997569585020024621118377547577816158402080749933300995303129806020203580280378371580821275520854599229514220359293850245844121526975518903539233726941975645562380628754125026513590195418777328432925659105967539205386901575054658297961228328578882261296869942332687835920204121809814635687334838511938246589513811679201931596209086514200429930503763559251171398243195523990820061995632033211928288707547138773514586759546138937376296487163121401672612449957336646577202605890301275895572337764833343387909982760690972133717146740576766071237472815822968114454933898172597424208360924677267849790612412962918472532504864109554351300003899215433425264488151256068657718968109417281561275944805377184741589019034227397375421589816600406682877963681709473932363848736550977098915610776519334523888680588280418225553313659427045944698868049632581566271552392266361950394383126100525304314961431955383981269340533750838812084404899718301880302174587542104068401791601075610751419265631412315068881221229142427549407926713649598135619713292168309737422695677760516080536175085777400475234681746211496967745003587804909667519549206201451588914545450522150940696161773088968904503972890147262189040987718016681921695289583106111645186361966308990818574293744801514755788215236336258346168476427729052566976544729020605542932884451481191999784975669736425030325363879931412251166607042470321859789542404487002232985093529700177179769686215730702546002602492431376151340336058579927996624815475020889714181185705190505362284050613766920940300953178581827805858782121758350280591771174294046667535449932221450965982376307159973000246683953103151283808849381816307041574656973863043193327112073850271381250465578004576762893154537942038095658243050064668724551295081919206896720441889666936076093320690667386965982231396031403129241297254060684095434763693572238516072289538725585869211131465501595050235270424158743412011658883207925374015863095791998717785992720372111866687478664364535947025777701329655520099914113656984099527276539747803106414251712123012668245727416387243194915964561400637112213883765401149095725209570770253455872754890169702893437009604253147094055860859357130705810190392678229005143663336295416001340694789759734653624402519737442173904709709648906872238918256860517174592101803253689708359573771026080770532493903971921346800437008997118787930738717584477538841775147725705577847548198243256298250915339038071551011194817918156064164773117180910238728247977207372765609770181968700419977477581918371277575166390853405787225190466368952885030830869280006392381878873977261446749695153946717342614569157151572176307677476429536561392001408924395898300010890106008464695300944369462129110688383489322768662031233716813551978370131397557087922597656663943349323905167350274286684762671875461573350373488737433479159437734048611634783817866132590440144116817305901903563439528626590077963367253652072586975844608850481989709114609221276533522525319758485940152485553593737967841967078061346300303083045864258845821119105790773013401742513618056590155146708760255802526334544273056976139025018501478366148200206853489666100527235215268346002751433331835302086465017315891309446271526919350382858310204544611434322818544738004283902603204584184368918078948962696678081685573622218219968603038776193556768790997735574025195872054358687691917228441716044129722315457787273388921408773496194482687704775956093920012866852907804795611406454671477312294256889350875933541691029181600134569501163322748140983543390264046470938766262571232989677014053228537488436586703197492289022753917016204490652353278267543114027582568752668553825522931820753936768183404805994419832909494288511903510403934954545527847071216486211633555198212271100386301601472052916640552239778565169263545427656915930482902237246871479590884702791709037392401618600081917351807225869499049100863428686294571557780382114889072652244944514987675030360278982735685344822623491876445806738161822988295510801002166495216032943254672327614840557104148849773431934043053184637199214848001446513731001320245802085935355749926750357426381283588749716173115500213442263220544064019705041035464603085088746707738068411186198798323228131071662963107301063810833172566387697555224854419858776596066689485421369579707104828409424261279636438694826658123485737554253420674443016381109411677055434556265638698370903220921229599595616945047711164798273214762743231225211827659180777710686765005083926103457220239135786074238540976133125541374703995159293275181165307314728609336850562686486660211001181400091017371568705329906472004984266389790441187544709684597765540329648981805085215423553485772902304596655366632609062307127033248524479710173776078258876611088563707560034427058432889704951683691014929128377944560128026287827487142858649511103103295835588046449134880235396080353208184980775376133924345281867115537467590247325269647473982905866155089276021898583703167028470453100418009491366371592134812871098423873868783813738958521847758059488472414150020047087579477972183103865789804327624705772062540374210817932058849993586903058434304715311732990599985614261504715658832584654294045512032762459807379649916271097389874679073055619893105285919704536821174169410000789418942447282789060341580714340331543616260138150939610673114072458265615545041469945952407957845362806920760152591982685855894535572236187046561006485304144671113472442757776484455678412353330531309541520766099036577546153206168523282376943596027284958474734608266820064355241384410877950019957247361541562604495991629188709226518913484313841146714282783225242801214324383127433292126925180047728507582623704589006706432181658569084774883073896325442985172986963943059149534648582127594498654403624138123769691169339450438672297512064084815501340899790184436400021078277148797166208175452508529474924951448930447366595082291267334785738558662271796650717715651859466681157788871196545693824441670284910335743647426477470600203762328422777039637496882594343406191106097948341948381582549098876894046718739975725881688552761474197665753355574606954693589483552210272691844646231214852528440866707811907634030113354843441210801398673986986588046436295004653598301169807526799860746529173509081521368530983450525770674231525077599569431268467364749833299276608127562608022319904226780525557772695774393061847142348720990176299581922596366465102910437020232131945174140065800251430852908704544139660031316423450780772040918135693206925493678191488826408255928012403647126753467360644936232056866866209178437782640972399563230534763763740190605749506784561313880816942752261718165092851871174599230900655697708803068599863543813927937076802774416604937302093478394641768093120992691059588612551637313276007361809853159449137204760481151773638137157206321754657140077674776993446313332752858898382048461323792741483025509984161569819109020764962852420413893196832086782508125110626443265350607613762526911481680569594332885833886734912903447110924723003129975811469465333188447305652906569519381705199048652139164903491378871988753003023920812044873829122760107594614312751180643097952454187504783679854704243619942556673910492975414190526280410093343830112728813487485447372880188854060919872332910374841705898000611329016270254680533776422437366577065397629375523412504977984987953812623145243425313650296944556037644830563866175997064984068409581446758427109055849065349510359454924578389440215802816690515762544391029035249803196822498904562059903097465480676229511529733299256393487685433892025379650949151278996621340945923147947823923981043642981401572756705868919684902675937029469543117198180848106505084449319937206760553394544826381381636755517972553765309916609598947872385399479015975499507033750461925427635489323255376576239172517049073821328036454169581675948413405974340248171830288095961307330230854186094880151981186360654177794561701040333613681824800372672297237396148502660620291141086611530824713721134591593268587796898665423147474355897480686057531722875281289046404883010531488142422834220026005117818972436190842955299404662706629576247627055352025585184003806324035183917347877449526394292317479561869832855600228852304029240721444836131929453111634608175054798365687224029342961003461375108764330915942646928513352868549306013687375810382275217606552329337475745059542549647265585447824550508291591669239931321777588429407335730673210721508112062593342106977642252824392027861903812891663302652970142489105961674035256926154536961985755879236589243099704308616798721702596889159079154303764171159107733207566633820447693825905186632893518960850006301136145357502973395708661049134676420544845151947535628881867625454754323887248445878263784947683791376810723248231253781997250174620046220557178545063509421421839436888586168634514553213823014731464839272851935975652605699042712975283314240492089132249888004583685163561487369698743395609832088009875172255316887619376249335693222547199684622048705285258021745437734534908197868160976016252606071183245285342499754981466213125221403314174449619635465973641457353585754850232773720985390765101401257319129035866111557423337640613177000298582786793943956517980052528090949763052123850999910141766780749282386985124854755978766249420895190447010885088023923277543229963516700696467463095674302498977811931367388688849609787013107437924160689039732231832961957044726266486058504744329069762351683682607207454765636287603500211656233356447630144273767250143756416672060870380232462748016947342116015138290200925624951478296284485060645925823954887577382949080051391484350115255541371386341238485662479276935650284702084910461002938373062918428312966269034214916088773953484962516566602400421220786873342693193094704878565769096712785595389613428221871441058177092300848888449328566955821029812100925137706947334667506421965409655399235774902955557163455615809757762256876029987905616228820871192387123936839117487240502264731309949538456099353119776733268611798737071456295642369749836131495528646707541917902533942099022855406473428560631237241914617347014932676380919971272793700030811992012130326880026898614603372805938529592280106291660530278241531083527570835197372263169301411162104057101536243859255442386852298300324935904013618706297487060476371385324626727611125871336189102588912062077143641243186200487936077559690149524076951986851250784454222186144606969791980020186364921615604938748516780475679821138875747848892678308643875860488013298034697020779576042132525090980606283813555041569484300324753760049634484966678661931670477574634004814819445094130927786076832788705635757863139875879623168736267340540477008750702257440940706578895124505218041982972377747890287898765262508395367306230339579443105743199369837967136749937325251288648223175661183677400125223605999755561975299581364043316177806419058167743251861762946401452201966126081359438630706728699450113716946889380087801052339139589130579533371410849268291221904616568275601319214719785935873742773439487218066966288621330677816639760586234635250921718213949677009625707237579964332757954659917154691435440689195449300433912383925773549178834961137431302102343677625116940028203754216879161038893266026179372721688544279468816154200261910524929399324483838029952355611782732234977905605345515471168369709320306911759672549739030627368975571212507568270390081194944341425110352260626313001936956962241988926812877118409295316071359442001563146754769640059535006220291124070436526623389480417411510307447589322849272773012637141453289862216510097361294540469367152165371068349798877194924928179508751378264858189489846295116202132354793657897620739580077619919789762531389695472112992379185374182831191225549051136234337347118264158070124689740338103935339165101707203521865444726321918483738092506224899707822145553272529347047271161889632070642560891621266177940254450820498043109539856825840284965553379063680805396457698085108381450485056831508150328223181183911378530964202271470278031758264293354170071218164775468024501555399894139764223743131047391638708011953448333319785042257484146082610034887985207673907243002969380274142672397768832193359478501236674810007912583190376276787100024056438810671167393042351978965244873484581753473751162663449386686280163789956571030536591374318724467830483925520086009898193412587726704033619062663921989551190078370278262979810874519557503261505810167008949938282301619977415022941687977562378280826188587517336524701949207344621430267172399955616473979624481610301460450494940239314055068411363789663386238473458648746612988677212729777064915304950670516770865176604540233528149312441817816449823908938931273981860760435508806128573543588232935783149917183419902701657578580976476975358194352706349373724289926136281050601339773109792513949149466103967298812387266855729959276465917441596485851734287227658429692376330854022512115125434174293477412195489649864830632362890306216176270316508475767877285854408238133591514078505233948114074975780338189905288274635742997277052035058770426033947054883672936362552525975301682564439677526735156112436660041305294221745823499588544638062346366446042126906645584149757792858039883055926571715077850379911077746250256324565930211977329136404852519728492898136366700449395335874800096129497588395510403712574320341454809361319858049089220809832716156864103325941483166074163532971929901625219817403277669187192844835408480231190236502986866850539062450286923452413719835574867121075532907789240397039678566662227473453344548584154029168274683637462521084255154809227707445500409275061878222625929891324993762881013001062107720693589781357087260159564726076517610498920494027451199570312840399290275088571719899446587227009318350241174982522182541485558499120156147687893378559017250900419225156733295120053635994699322408728278224687843313963825138143091413695916493500697735648523723956995570938788112898625921956690116517677654532612410299400446785722639426949954028980416935907343529247794851582045131029534533014648944189303259535424196307641175256622328501672898496855323908122574590658270029294648028978800152467750283406592615556129469241406197426439919142525035748253109343487168319764598856206320983594564386472293431567632772431422100077631513811134789357059760902616249182681322763498355383466811277990447461627155536109861702650322709409216302649027136524862390712209043335344085150035491731539745381404413563654121524149976357426321206836310767462891358284355704842673829775985591561714825096495757363360540002046849039455078789871280231522667525643305983316386363544446460511225308013391098142951415165217861246303474242590693084451234408026189176941371560984507932871627557813696390782621432470335681364799390502194131616026412948140694628590502793651060478105959690960032505594979811938332042645096789283026920822100264128826105766543005630103086468853807358977388304151346437784318998975780656849346935499056947480557474607435212232133602036742567627707720623860865563059257057901488270089433877542104150728570661399410143455251436311404760021006147600250952409605128396899002767820374554121517371078899107749656986068735518205711686609071915294804984733970006379162526713398655200807285840090849426474100056510213221304245837072897302429802778042100253335489183126172281242995241667322627421658221186342199336654116184163923039023990385905523618494708835241854629808661703361045272313983063976569557942542371469124977261351771045701978040443087049553547074484502535821624402731256510203097624573851272411733718844830360173383640976517737552999923028511465304954066146629828767386830234668076990825156115581176025653416223212544092003216709556404664098466166930901697153062591446787108752531959645793765661887332355249112802101444270608690145283628383167247495761358424816519832683116914733305500563510302053285183051372145198423911780497882470456416666325098108615020568046295753315588942576545985021558030869892649249669575453740826273228996641305965434515300256778320393214494396506211721930509381140529786708535577565646426664766795653819631102877526992834131028608434028363458012990064778051233826502716229520676440561029641716490214458817401893043588203392390616771760492323361886768011666410780090112099112545926572695115274525898936607512700134060233404314403141184666419364490901850023454222439144171547550969933357976860110619887483367482902783147478863958621414010717537433103724704805201786097165537044773519752777944265173335209466083200008791847104298984957730106182099635974408836906012609672583890385983220012324394810046468517998520207985827802398204633585180984409448086689329344566595761429497687421813825040780897243096464456662451518721551587252484727677549224679265785253040453305627057263835396067619570108270973621016946672177390418987785303247422418390461769133528768926642793957842969663622892304572997118482990853593750888822719582910563042822091462746094013324539772501326990852822193567615231202120717869175349916173711889746064868040455610092015665945157276754875416117282042773741303005815513846537942725619002325263244556021767763608390545725611538594376323599739091196237247256282695169555192139787382988957228994322749889977068982690580707640395086558890480634690200723792398268652707905794631719429473347830105929924022335008540736299327136345275751590345322711769386524535255199430001617574507413255362972241214937207636229367372716310393701998590110308486667478747870872802480440219263045909940605935488655780005333128617442039741308204781236177969058506581873337977937002958612033401614681223457456891997190909970532179028038040503386899923895941985932624722638977576786570673010402119716925335903005707944364982853597214966707065971505856536979574157415937678310716002757478476035613680636143824025046251982370815797759294725655491588225315598258431728353142880558702080895350998649110815095080191765889828403919550215065055831352041401856893808480302421470151545004951039483846856581095929193148973862773184607686079285590408817210856467249257316788458956365986727551798443418919956830324859198887058413861467246249334941542532722605379789366843308739107549332879440949119474516201723337405733215899259423542048759679203197043075333363132609704014832385010342695179143843857319773544240641618071778545120926485797347948665715923124390740668944873544112319295731952984289360926027565929962006007334530827929758304179994235613168343491933993982319329799435656640976611218525917934775526140935525849796826936884678362496782417700097002188024137141241336604768733683519163694487963287229514416771105900124077812421378429359125713667848652615806906816315454089818877944458810944389969470324282535469255995730895642134421723535430984272284947436449195542879297648227890700949696237602578257447361711957147606889172886273019814389791897807628415958544003511511122462008723093733253571659024106710669974903277948170705026496141604726424418496279199779023517954406636345500506932866045167121435466450800532403189600449600896488252466480238219045474386015712013309675464164902892423512242216811484801258739465026698391959832761525112460588035749667521070226333194438865994489946173901573380467105373018940753178372053800185060047667548930927629124741173886178725100735660476975632968985206031394015458332371156781330789890941083030593119422352267643157509413541526578207639603394792287167643231719157226074100654244949181512647101191231082878686547340177980824552741067843659056305849368320488394481082889028331138507429366647624320771307006096418923536216240030638036838994469036187565735086797129387407313492350027414725200155596863276962545055710015816187687104619647217447223751799820618445883261660343861696759442918672608230935350139112348648425366963819195184704365388179189205134220732413767898180938863093704870804998840447515611989545218588748315801071697660506508830735787599030368011394749647721929449273916444015347100894114288289510297180136559587690399378299207585367535245872302783010785826195471755464322544128652742621379898066841075544653928839897883974761462164119319134085884469763736829269536650992555763068157002607209155668697831623282150893227881346646613027836066414729598162726544820123996899511388212643762491489907454982187947600620049230253219273063472013686712865745955040299868927465649812776090630514147580358710711707720917578604256221918750081509464072127834423416995620391469302868467184159855909015215912713167301617385646585065780698334588355325647837563699696903295929647406665356435322383983957126915722013974304512400404612360658025267963961184299284046629069753620112736083531280637357812905690883656494347241403005926260839821207103811237526237083422033510366388368657644584530528662295356755895062582938776384456353213584142048594610569840135563785162729408838307036389387153700951572664067572389164694654822441281207440672356995699696291907857260801683126556097628631224778679179932577992818645032942623027041993027380728264844698697967912344364157182284058040060010348607071786283584865334672395897673848751514131567076918501688976725079501421666795208207745527509173516546483429767207149711496419766702198447355028937889536321404311449230368181166637423024008594269844209344100604385817817512395235757490724083199608050524077508695583457634295248482111717943600455429410299879311922643332929308236848627897473108775472850480336793606474533691658886147505106603259727799578244629698573621741493810448023471716799574005395431931900030520201551905765525619877035714550165424930241197077644825556778480763360737654192846000547686751934201453618592094779842964690584353806209441808547805043446258538667821757469193466868999627070228232808639151886036285804354738673115502957692268170550340883084171991151802078580740045967705473555792447736500300253327197984204794931430925668613930836345920763257023676846139856291429929159298698508775761741292752059301255490819332719745305331063533576926559748034857801541443304287037646254081581140312001062047425163926169074282748711927059651484686175968891190362458982850430983980777909306109630910550294199808992647592196613113787085805011921488545065578612370236080517449063002614947747200185448736163995188759083632922463961175992787660610977128126756765760185323517805784045939680085131871828037396623741081509627613219482373705142377911398154479887199767271059071862670282143169744485378982334316522259286385066635400623990755442484913800394486288095610251125426167481095999759389601391276770183183975612611902543184695816105561732999452855128997978524880401347423522181922933989364144922710741084358549480916584937500889930171869397991551214137304655709374411694490231483638291930489139607838407785809404784662784425884193523914035613452850635949535789273407436327214493685667082416683419872489105932533163397789262829941278905695467089712554712612496556211797110086970764601901356797491954097590881829069135438593963132642450978117314043308053301851966039841878110853390253116723493738992947933858697421615672334323004252537804971542983093416520385728757521387294914954736326854963635481887724157598046439400223281596841192762495454525967645259838953246014028768137378575497807048032578173121629428088847498689223172348368610980914832568779231150939539686034508008638909185500853999649247436720660027916237779958816698166683550535378666666438299889841872692646440313042114029616795894296181383468174503544377761081507991961356763098510805598107971546077454488842039699600547980212302060509796319915295045559956896605328952734650540940105867336189634769355050585025067139364819706782285149690779913676327407820763336024109908466355783840254450808331690400224451944859084028105185635177461988957756379737144214281742013144578934331225649288909235157135291642276256067487800232956789825434075146409049323650680245188635374585140499446144114416492867618903085192381061027550323653425056271612703316128033966003354516518258247199811178508302282217856660891202018281736700047221345215838067444789562150093570092512004154117063194198609541925610935239337907395723651676906756569065620868186835837464677860602130530512606200760002898570971951888527410980931301421228017647380078919689830332936818753303253544593186293666541928258278586887889826781269667471588470969623129915268227949537900837341705023208437963843331066132340479122062009511113367592093451212505173294180061197939225768898884865295706603913358782875271619062132129020793603961110392766191780570566295312995503616148556837855268676169066112966099180693026490761683580601780636750453743485607477089157689981346317444730847829832784418284631668538305899216951520158010435968990340125864673523496815814738389777744111228866652492377716285678959839696642797005381165681497251500957775190352294782802638263416595582970635748917208251539081680789721915776448422433487225423539388102746122520876902728840236262048994935338425687981619268132576813467548372704270447597644356273990772092341103579182060470349709868359139165133400954763703770201488320047637792593100914931799860391417127777601431545947900831796898341880895806876498051643366308849140664675495867656045518567664548205208397449520291824546807977009829452853804861879137818585140962440995887412291533154802293410434584727873213744400847008233250186262489853469581457237061220474895832374575994788662136205618267596415905733704461487618884599523693289939986135313159194687102908358215747609110176585949341132830826410701742862641170264253867037369551644281578016677528871359285929944768155693385197037425260664163806004211632326383219158508908297976686916363152972501940104270527811385551543175643690077511268144088505965751181152415637845441444316455706392443199665945166248615502584554455933527871205019705727818656523580367889514842328430530525140877675509610571232210933679446753147374977560692382896273572479161292482993305836196490984175500935175068449886560947111005810552460203079726671118297557382321717466810116578797453496615953707579848145944191910221115142061020345419039173494807724831445508757189868308705858653289966901961741147361863408024316361754710170062473583785941968034737684463879984969148959596306913360157482757296243480133288568634971757046867565556836756408690879458779147020371616996164505924527933584955828015814680532941119067246439739608367868895849224201291127402458087750871934836500188125167873003199373647425109408718007599282706188795743214399933028016468165239997504999193091581289236691589526136454259705983485663605860968279642709180618532682716974888802139979085894644811373605545923128552708058845466578788323523769046857409236689183611090970357639799167618542150383629498835369637665922858689184835215771030614794433662363237324090711516268658962121944139040479992085008941417552818902410272518875444353150459056019312690099386321576627416746386231799309757262318863202941099045011383189276389463193084787374753554594404857250836699060926545854031502446881025552953454702186071706947661793678099912418678973920704241674197558025655630425640555897731926416651076924795732261183428140596658990475460679124016580969145077193598385162696577250157193687685117464937778681324126617597530377244006478140039716212734543184368262578565857383113913313520458718015205952648250290383449537157460491475250475943173682330791932743815162642970496834759350675794063707386851069816321234657733060631069045602091951965863856286923425523171113693449725463543201928751368102911645484611353569849023002505582294606754689537245581284205648057173984384011496070013169097983796009708441418359219153974348613132568717678902329570580030819885147886420321572465533416586172317214699299798214918516856415724273058644206457116920641142145246235432935508447039081089432699498293102751172888845127226063547408149355110948907301441866349490730183432120648125420254886491928351524519229259349692724640961484249086792551191233465418189445019191530006045663001516287418896482385991733860814626848620207651145246148237896348654807826628804188278510430491057799789550903299090458696822153793113303654157862183185675684639685618822929288569617296375425957031776146385370680387311615376227530265115908807078183286462876334599820162214206056979861974964260866998805320285621398654302061775067512311062929288632548535794814656637659711043315480162391640153366380969608775131573010086063113858137733531220596868924421925389147427791051072251994652210920454169929809479891450266669808964679026233414342566358338913438031518971248211203709581415326461852778340720673630372972017560281267386356423665355654641245349995305765419592513404552120698999141401306309001382365926026004553645931323224275357137921418360777469041442597911707496380142865232414308168726294139580863106710563603648983553884145794213210622373389206511647819967711238745133123144925570868669524918679198644673469661755780946127089003597442126478445133492873787847142511695920756408543155613948123100014756895387459980529079221403314033176095652095758391528337578791062234863648031545930570326848872093491899441462728303738950670394028724007506544821976148776835849760458775950817195767720215976036879251127159872066134326578383176589798075252837735542060600358106793676078450724627266416602412300150007135635961789464140274936676630363529908798065379859984547865146222070932132530610689930674290075080874923435651815484465308297267956779766027864426511474888436191732387728746315103078677453879457484617834259256541607412281402084887191235391991910682877832983801716110504969813938140281719182801584767679086057372500244904079685879449130743989812670852876539611311951002894772256919175178390425126161165948280968882631280700619940627319624547577165511286605711527937463556192331509700642352123909906110091735103848244011693821675072329492741327938451385146020437852200653334876151774977334685455637389455951340876226262254315853172264827815949712454784994678658821820677613108044372329290291090162590312710106831913692039913332368070098044009043725621658867038939813809481530741004692364823711588086513659409431018464794178301205069875522999340661534527986235286400807290658214628696210415705215582066214230410927052600136862081108943385474701140782448759171650247145587820004612870284971990192111799437621319553023348905380768570849417100163120882971795661212279955590459429468865625136750237390135283467381961172831367700652467160250287577843967040557455646989540762163590804956793256467556144252405051427765339302694627867337046910318700407916916120783056674160850243886088861438121551513546438302733351112297387431997123149600550049976038306704345724468142505160538086180395439125622250185156536459967084097987713278431616334959067892153302108864774570684663718017182154378759448668530324244958697135997772916872242964856730463171620639409152404071624962558232553860099562214417084444679620312295338901050477009057915160939809227605871985707904326234591397471731439663151041280165905347761078600039586761408093781888980732768977031742250715884259780102800949099042409205602134752516974419119448793050351528573232425324855321773074922476352961757608426730896143559514601495079170514328487522495603808017538544265193426803383249241135012400744496629545091687997510725155634330045220348589691554757625465788644152931763308453348700548332010273054324255083698569345895975916047741238288145428780322354426368161123586619217938193906961419694976482506398425370992512969895461513047009407943054501173699658386015223030211662002920239565929936843751072271913232984103935864589243132999421043856420666444703201804374995147119480151495756126967977135775506209311000183866606720796494595605970774381069488323079307664290386936395742912729860710453923181110343781966352666774614362905708890331629033042788394645381087328157240173969016852358338211997040580026637620058680254425820824094987686333813252963941349358922054493803171912936755527709324883030323516044191118511403427441766796251140452897670039759340539295122899458480314550802387172998807075746457123325349029828954634851311783849521250617799661444236163320468294381328917150600811575820869241385752638218295892173905607484198256963875634511598026680457116970605780006001702766162479473127627002437353512668177863443752721140877229124397695919796269167277682154836374555804341113750159793134425423039464679637588891322198957232237203207049103143556134281956631529018328800603869623841568547210959487568286976244100392828092411841044763071462043417515291277577255107828313987715749706106243440235342152805862814176102684409563103625501586308177276127147005645531280583031338819669664883292200939737816433861473009310739503126359607913323236671409267879126598024021003256495716215763695059220939244541750359401064527130555083403784043558685191165609670782653992408110876485011007450478659617904736982249511524425338637183763849102396267865959625382680637824840453940390874108693475471932170541684078931028148779233374554285628258294523320155407791211328622008200911727404845479336246110245210647683935529552917270197578946197684363592330331286475117452707422252399384925439028240844770373800782527398964010383842387353543182811325068875299890442890273862195490826236963678673190354977731890924682258012244887514760037184448102067456514524825374495991512494651097877305357286136852753611785781819659074029566606573804724578316649532673246943189993041074482665194754023525513795168468645607932664579706361668113537370698176733169192157491183657829835798303072581083897858849438090340640791554186278231608087806978622612743184748419602850242932429561603588984585794270666207282873392093545334333100340633096223699060938264975906187157139089959371548728208042468755696699442101565492460335365808698437362524908899642503568298100021914020214736515881674452741351430895929089328160067543059551590705004632757004432363563077458733264721174912924250782244217529522838233079376930673446876739539219023197711317257723653879179895781554979881857328825092259634652205890414283118056421473378504754171433883585510814486145046524318038866951325273548798036151645593673299725904654872347849762142060531769501670498808817627842129287315967822643260316623037800379449634984507310356143562254382409979835460112146820886530969201884354596803670105008026603813916181456401684785265156156468597359965052177784069530517706608817636560455623326459920868315436200793449323154119012620634538508020157130762290161809302545563606744619801749337794706788867723444390693524932878562918963251670602781760101552603541241778445298528605608331849998902610593763212274115533775544328872507934824024846404599476139240561190980514135129911005679047239826404936022578393467839458714663987284331374880828817079406206115103358304371478038617254204548748330252511099896359075914520727053271847232398342411835040083560136254002959667404703430076441447015513145198099748359654910524425331241457424448105700275063493118989126510272219233103041585557738045276148156839951964291473896709071739585196986968144823772676405879853011012212634648509061163649588583633740416600194917433468089636771808144450644944176687102932170059336529577154480565589780322043940201847393869725148998434407859574452212327501870416417269931990890152918311937163836154703671633861316356873097289398636586822270853521833318843093980471892056660854955313669393709972697924785594656516782543579069468877819846124375329239432209848666696831545793027906537527837076775725724995015786238001751479899302954198043095817063804520603115142699612140152172947340205414943641453231598686617920631498613297269696065731122809389944121428748277048709744805710551773979651240000481508473728623576369345432434948397502547323097321915841255469388681842780599280626021447729899769742071242203728959813283029846931549765286460767484835197849627590034452761127213032199611211622603111777001580687572636373071719257446490896696682235239486463548190985199289585785818336317610225434679718013258397298645659909210829731036110751037407675378757756820537895504571644139274031480615292515258402071141244930275473285313977301640227823396196163061297320094898560452121762059526482720896922629958589980520069387781258383251234374895497474981262957409633983902901946540126925456697487781655478584395170534160777706527936673633024046652291829879054060887856132161683734980002201413296681882327961858466887419406253259468492235022604246089824015458289750262306818093444059186807856281283260896894544955456664649037795846744415819429804207375491808257842753214553543434003224384866965515922654761503012437000774551644049705430525843993108331571667160276000088834639315481262940781170603673262041039845480486535152696116108374364718298809980018354607555867844182116293435710044967907706167922922789048406909275323635875571396575680444465259989843555517966550595192433367405397370368961717157669373119573403745066888550253074429952950684076965396279019606547689219488009016908642853100338440657173681114853807241754760790475944704529563134081117297003777408866718231739620884040108717649210135738201467629633653925139118114471263598876063954310625715871483136107219888392725736639633234875235348174768298105640481835868451339091232457106172971589064237484618954163998609432513939738061783774585076506871888037072277947133543601458064320785004783465632499864428177583255093328812606683898624154388712606409854705718114049428589660018692846891671697137154386056185873828858934595357444370995110215307505822824133950081575872778413174494953630966394563535802060885583283494840227996628219864879960942075710008814465663029398614492490704668560733814043756898962196268510638004177311673125758313537937392999512859694207668743569568159882555857832002010825863459039680761509859983394031372442291565692303693224463689232043628788848211136076217009213838878956258303234287545882191751978173273740241730483596427611218118858947422910043539355166694589308462641338848711315864355193281571861748822097886007838885983640729426206068690586612745212002547402661805682165520535164816878069079267060373206433738080574311024737523102906120479030254942343753711901845085570042604697378378156208702318225371086358822904890753539282372096487894403695715730518895006113982679546907316964149859447619080453117074615289794458318810243166159743521469789743057080822114094350607229288778623256426535367077970934944229409731475246366255842831502230504637769022791145910555610340282828531151655068804578845749599475380190929206792681560255229217202187531192034829584199885134147365412673091763350933122588736441545014236048498894670801450633691352913811683988059933269982393004267755201834138278540583465107198972657282943167179304114347795730995768311767961772458802352648619640941063299493976528776117347284841873268596055908799654990090303241530832619720938981687134405355929751924337045808633959252906541654874247774066238324209936329188009636335440528335264492266771160741392292752743541941331418740441156713808306337779816388938443031953401668077841127306780936949867529072816452004480198229794739021648801670983234997882600335840041564273716375986196510807353649212539454171767336772315805616303702179660348571215761916995265604738395158683519120147164808810606876503495711810797859945922104250715545667633392200036182200541547084902029615521160495704122891000137384881462794800262119351968689360078377339472492964824671173628232028013221548621766905882598364754359207337234530461353041062602963290323968521684502523740814687127258878148875582761838324757582119642966346596744788465059297145375476692834001991963203845073972184111090807062395313247667069391236576429463487542299927112097466995764050479176914358170533668255817188986350517159993602416290929403751397248968409353712957039323798780983349741675990187627936409375646557708892602607769300151276322505237518815189308342399740113740633675822244748194505691140759263772046992818074774572938599438344271941313717118792637909601897620457370110536033600694395833645300678767329070173290755639553815630062988229909622177232667401474361921403762803782237230119056130207667682210765033464448547531578797514835613903928768693640967692767480085679093755383973680639296465521602850348210242542474753472145409068150765760685492635465741296341602633165426018364533625718549632135004143407344281899202160457031555210144160151916410912507492723434963984189861063586039093326916148724480731444745524041348550080841457286352562421313444395064506978870022945585478773476505336154463253749112844446821208958484779074351969112698461977182506063889341395126490825886469886887012926665381445858449225977950052769233718432987336041039082646801838829747628446542137080413751316780677048414892868950805856179234319445120400314199786229280109644320024887877605937879366277950034999531148498987841661009058999707704452224703144838683833992214676472764992162171870731236076602555948027795244226620128451629237198732863684867028178501459809733783822776042223845247667335190753831255359234404270056380788207632836146136045332836552031372282723286702937209883804584050712751257168465962718806802087050416153316835680010591987162560205307652615143117963439982033101885267133885433258012487723900297263934801895325299324573493141760724017848206693856513362192831661670942941534331971823465410288172671432061654710495475480261452518138431978688522310468620666403095150141280794431133908309915225825388590826003556400839034018037721542670655742003296713373789840381035110987917863132722001480155106709843901602885294895871343590205835554731540480837829134620168591139602844754064672290600399256583699639325502695921909462421248813180492910239844770546551780659084369095774574652329383379830959799385414330086969717617408887068287688750951597091034767138478282106396752377918145490589959394478448837179424671909393194035042182437908134968179212157797084238825024305622294464397763826536729750733885625663918884838991295911644530283607868404797892487947247465705431621461031365359740215534804543604659519317088995296232813535124626150923497684469168659183830199156323265827410415199949156483250916183026874499782193560049223705891680060865679719634142944528906657838623199950514998813136764926260649945334544636834950761168705833678861616403587563848524669419485381348181222820453888337761059799361549156790226520079493778507480846014445643380512224089124569016534417587568631850080381967567905058737495541326496068454116931159215229542675437543250084363169403199845866986689344968899877333953585783993951775720183390169769992574128528393383352040393183814165364123302205074629011354417763932707763845288070723089554720144923962404032580528069176183711597280043943041426212355209740716729140517458831103655984972738594654568415205068037424128288085411733626872077644789810063431751462073260670400368469075546063744371509648671508565782636735658198087302405638063394838055000515732835296946889754198228729368921786057589336388226327268304725994961493130996064039640293020198720141949313054894084210302402235468491138881604833622952680163556195601180280181162091267395797848304854016361175166496548518846173129711069858403537011490882171365771956331235489114004543885659619291362802250709022512982457381619539478680131907609455888584728070737903828200311405178468847709954169824814049676642808423284953791687496312887577795826741406171861054070448446711905290164994354898071938738560583234918612172654214788395736655344736913322915902982760284663728856916532547702357524060278286616718692124671966800766012268259950645005593695332871362206464249951483342494663329804566463455477884447248778954921724231006747139039477653370394078969555006474318500510877569341471106677956660093613260356308083214428371100842868020168052997616436086238899539546456017694994535737689539117948479222774193107630605797010304949660546494908314785409415931903173854697005353962651472127891416763472354772009302772855402047862989187555178727799674926996202492720083080641092813490152441687608476806147685791399985382934966074067596092917228939195125675601986054301918354626895615492092196494421394082197362093318246936512195279779592488496295830154803389281981307973539499371767342122774934975303809631420365253011224608005361160452910670328413331731948212657723809419126201627833461400566652979512821190798125366471237085700543514354342785709112187573414260847581767363433786860081703184559413019846588109605814115799400802815114726618495663963957801310972385663858244961516522961512263587227704980260337034338246902187826185836917043806520182273302675669734953738433823652289574740290973829870054011983339717106252516329612042925120457927478599468370941393626781724962579889274097946977168158880899181417621696008814151909067576963471403859367131437105139899858671182193294801803721267095959337272952118479777189473372843556648305757848480515059215955606426748281294480166008982840600855643123738391117128015181994203373949896833050055545258979683666804923985081315802290453446461606658409732955548320667156927012028529949586939219331427117992614505658206815103470747560818850291043170523796495326816072867611244666614089655640364160377555392109269920085486792578687049471842335014840133672415354696840042018433924958693611594778437325987197780039222501994924428352984455894714661968203762293411455826163807968265832033821604639717456732425426142755037186842688750780050559908838946607211032842741372592487065676895761973316699880060599155864509951821236466963489779189357518113383703102945908300741238775450372943792184160771167034848154907364081031897291818423943259401349021050961814271513290273135006762402597583124802790284298872231754492155057864415844670152671764065553579386721675479316882261342134382114715624356708996593762282393552059308713277272482808991770673467222377308116061670921894934926813659618742096467096998213180994750588783427602529011445347550680981787469063922475779968420835885201522543578372913346649554476566727995461471612744445283459905222341604183100392966911584957539855388931257504645249638756371454375767501676376940788412703790269960912457557660070250808943220745004657233563009518733165063096120640701617099473424773945810498204362546122340179824238424587418318018990345879558927692473082280986830258824231312037713718089168149948797302829304508565401578009861763118822313868444033288178967477757998387252103134851677958802489404782395411549006013032299243423185440268187686939096836591369705104899013379888967644512778299797085093046061484287238698829701442278243555335119287912650882978305295781134648880006168589740939857182159672826174546324798701341800357539199338831054525252967924151113560573429304334208441867439674779994908221435085050192379067098068870777477627457476142268567365814290629929369248550722296667349988107175706006581615860316779242460619121666292357319597003603005191934750213985309690404667997972439068941222677292116019985706379686382316426708630733980082601908833664089811354447310892776447288360269523742377445754696457708166843825735524645578625406987099107772562336323866612071167134588727407461109158733013621029187218354184078652681892921809989493864771808208362097231586100969259091865587982761874970039514667373225771924709572491520650394886532366116979389207197269841304130867941813648162903767285647294092822566884308364102177095552611266087526921353846557614047598432195034526268915000526876191194310234834259008699027842293733356801327077735691749811039734137640790177190452359507550573440649241825921086475992817057043233877830384116224285968850246997150677562902369727022100862542269936219231997745042824829350405135924560785756552271870926193958387695262809867886704206160430703799174986801025277198658188534601169530484650113977140134835068764739916877161877745630142782028395580982479945773534248791317202167122112810785931475322459551900668093106881719355604856536928414621634786293241579637681879449317854007006219486603444952270621106509976598646408146209266903734557066806620868743125726660614225305976734893214487093759379620711598174424481038772483130808245143112539928248376357762097178378855048586920278609397175378640003030653398073343080732459634430150807820557528482176492424475402901278639394124226413236796371390907947623951547933645556471974204077409706596480219960050974176845488485368547821352854247467912398762297624806363503489763526033748063125795012301337322707402669010624078810280930252213911158124430379525006740362243415584939898418334313437280144700219365902203500261754566875864239239662455304114413504694294893372239001088673381713095612526528853746522014682521991068459129804500115330513173626934253175117431395716641629018866598803342122173976835314646817716942458152355224061063065092982351375221834931854504462174734214296305505277640299607055660514510133153155814402592584742007229354149642194482941027090656670667345730946056720435620088006443580321867926493955557801558433322759281782792191965986029121800677969307102106190326954633677936360049570309143461954481175591468675045797141054032745178249932052644448108067625632257902283585049433825137610502387925228882480977288240301486024966938073172233372372861521909236773811148850450643121134559755187870283526278308345484192631341619826303971904982725939232471807298021456993952369770112966758669502316799241487032015808980280998424981446232077907758100830700985960073912414574351816698809968597594328636666977973604808777254752476167769689259877033687360562941355982495763642016540527701546480721615381775165756109808144316324604652913785070811779489663224572997679289744161979979543805543455075484379647752659044194144923440697977837562827496210318707183190269981495997310116473366210010911254312076380854780029989167706854907665471336336422109311835515997118798691389275788296910769411579113950752540399240376157574500001499700260052048422179533180423473186922936575527317905137232565832933690445208597121490921295667806611486221617645162739334042341340834499889019830677687049546820259931484392662380544819671470707973850286371481306621866062078118244469705654379144000593217948111066334380622309538463117768755748926861200494817207663166599119400776963185689446541734370351072196634528375888233626243021731470428660914305456372082645044492891263856433779754836219243621084897977985036937284822672673812663003279199317336679999256704658511006212816534767779016938711209974302094427700523400750285790286924105789775339395214370767873326526359962769835964792049730082496332284101423893915941538911671137355249038494738312937920581513345950354280446237980429247247044319956024994761309805592389247880354875635352962774992622121628426413487758186029886171317423626200543364548554247605493471394289686197626730730736870856698701024525562349800099955167719321668437386406198326279309692777245600764498174709032797080825016082035283981762131463392982679237740351686422184743678666629986910619543473774580750641577179646500150486795890958781532330930318270343644476970931822013614141206159951289308976324543571409438616584360124608846900084193331644948381712612146996848799639448908185659129628091455612712551744304618989037065719782448312177190367662279047199091244050445154386890460159243588379412504917585122921708214301012384106630137540076431183365470135357786302549101062077704377231609323047577542898845794587715384140126298566039557094252090666196876376593909984662902623478082010723678344748154440672623255050384705529606556401276586429606468522111933149972053016024049700505978223084921278766028471554631352240651835280034465314860515459534183498191404291909986653245880206725334576126629412482919830233192636600614942398464415792788559434849639585657682901883106199399874449306452763341145697530838033358687280481369618024563238743041573929162947607609565047480546153244816731999329351639166741715780094928164432354381716306056340424542392379718092352861194885200203879760588808022292585344714343428449176146783660361748904826633774382144617056929498445265115741188465602365327941219831039471822004498930506087577853691183298830753089703067062653009568257441709916084377519376290669111143167186808379150398089644958892957674722560217049314016563841248450714503065716351529066537992779024277303447365593939400345302067500168828337192064098517997964853239039089816835955680794519483235154116759543080810274513321268420369551891178491898805463153794077318920539396415556386431795496850999442426384955215641463876441728592368301234388207645795033118184155502321001782322574744840278768277631556704639125918554798431542924300889248461259077290150701558341084047289288001646753090111615940506663105072999945999965465772953642390083774182884044792928818466144083487877695276399059933789761350161170372503436670666717144617894849779970450100537030632828377850009607272975321197195538575823567931464123522019440615453303069616691748793196135538510515188760709010597196984260829948437624884137040206503125178658209384536445926436751008724368069383143551828044031406303700222095263773392773952316477635232641620243434262497546970246139706019352560453749100564427040515627572002705008877942090702071949735059056385163617054669392915293624276600742220190777716827677826293014031290558160691491368239704405489102103617430713900770062849376824748002155896453354895992027997495812384010106191204298554537272016635846994602227565186683358786597091560368684536162019354350782976740967301830610447444273174694873887894334476012339387327687263752781277588959859828830423511340993392136294703526422777745287120460164742199618300589525979967619590104664543273205864810956211245288505773998305677677535571432976831415666579720488533810761472273508527552837671519629901871298705847411430577591349029310136739901018968947021769233232368894543713591374078073978478486078383975312897856609933655924401228244820534916783464288303364668133559226685818484997149732021245173038067016072354658396901122868589947669205977048343074144181144595290335098981710156870250995145410243606939937260512054202526726287997701143497938644157914757164051935483911359871684381896959006979205350675084000974415588695328420074950236597835476216758453195217966984741239941612702789610945724644555821961598032275186820727187042452157668999044751389279684350906966669146750127783535865418535134210589732105746824880600211745754695316517757566284159638373930933866890609767909276549004702669399579577124021461610291017924122274879497762640519422558884721177230265107792396217670140136441138227664249169029109077404480310510025911722016495009875589854891516856385492679013966929364748430848927889125450938556612207041783174911931381771342662417428475810093479268530838821041078930355939715589797859048771250122805296207978999312749650581213799734286634596881117435645434035216733316359078119386530727255525382113674237596240142219095356644293885272857329238259349975135630030217023719452652122066725273589568268094051757063014408584226843930911076309904343124950909633629384532718669868049589414717768313844372003293273661042460111701477473389873071409704511408958993942934922491688450709767998784547964104575700891324918935404142619910311483553502272601578884815393180883587665621342130863812473886676047163579095379746335692243672795003798703201674652625231297936312455094666479283834679417176179414570573050051220517054720583110770535813025981470260981078680810565758626891352643077422926615651904192830798050741332009078899462666865673089237138861380135531013710706623348319387273680420968481418844061337552368505529934199606771624597681962998191761042164885916990017893437194989253958699746186999136341123681698804228769785396364004929781633735305223623096383264821037108872206816002507553061240742319958546425366247458610429457554044655778003773588651618522851291016378755197587509522978397562057769425447719514885025752544125979264098017178780922518900592311439139879940957706361849621742185841454090415598420759212825625079718187462280521089900671546563598864269424359880989007534974355042524843814629449249742029603470157539934547397779571941323209580882894272115231566592385816451851294495149177160171736700682219056766899526049873541018984090652474049908188912085037629475505937792437853925996337259799065371892017282261838114198193612210676437399060574232635789957437398003634216731648284334154018602345067479908169279507842439199659977686980192404188160075716820448270579716501685069385816976003952658416319832857340852908919150148721614314479775754458311273400877103213492655564958066151211299779488749616485431539814231365785882875306955801806150875125793717122724865644272333108458066411268841828147044687150177598806769048223276586881558994409829345946905194086737273672476969678160489773305413840334707664609095615341353399770133851812477582125664965179985915773261166941709256468832665146880092726776910935066369587091759987385577350823970147147905206099772642426528977443844107477893599447241718127967960024084444222363070702010107573593548231488693488299113236926501669157993070392353579812393486122291806567003283392810938350218673670333318869205914082047323454232826327308574478018220296828124414834708791619562454326739978885034357373899423932678046940304849509770452374783705731121069702751858843901291659642653759926900644836660914058277874313723232801779370719837276556357715806379744693656597614022393292720143124631608448984023580529401942225544984543553697179258453628809668026868096523780570909946413996024529978825697190141015262829428671540016350223950869209835547171680547653539366207052618819753801114759363775980453164686858795448891820435140789501861730959183508448748326678177686865439335836088037167646057835905768220169032473326382590751582750171808599091843749459884124461459088035598856032556451592477067748982932588574648993214394698271786343827397645439594716267601171714028375689930451751425646659889003904807780320543847980786922871629215716596764761469878249073900403243929017253008817694841111793385510730289536318977836235682415378699416707635086412559996831619008223139748330451862263775837977296834643885058747653998868186629707084937673281779066991637604558959915470705466036862212892501580153556603949649702930750240599079691576037548343131309181321568408154839113447881578628933603179777707819752566466079455320391770205576746907491796073968503286054260584782711352650274926095562419193274768716924218178348249101396680651153892972267211660265486107897121866964776496771147387846721962543038726855168921333150851473505908244079388069306616241802419412927049726211665681479433942966723734791789673308631559505750166882065258115959099609001159344617950166509104841800191918906947875488306074114848125499431803547739571007601271545520707546625486879652974856384075302613933187537576208233230150212703917660486276242177065963619639355375806726849104292215207066400945946933360768987614619860197031922930618306832785479331487899369885638698281750596090724092951223203158261902225284826814194745067294472130628669945441023279000679852157326893997264590769775105510391317851785702686726238809892568873651347544252648631355145655735794591694988055836800974806941310625061005225541135806868318765394941015257044485653195411627761629439607246353425846771122874489745730479860375969217744359144369908537447124320758206068119020669677076499642830512637104540779451523019605148323968975698450685183245839683680215985231789753790605894483015819702633143348503909693110216301711412744599404332393107049950205600116775100403098974319297172002467283948534340996227578689136097569412161679700103624043623932754253862632210330943250328961276062912754454718683075423504904933005129705958937004444725713800427740658938045680987539514632284696662534231707746629716409721985993250105610772219035197920171779070248839542677436017180715655758567838656885178464398627730145602064692974933747129466000308756394003222126420507712629635722537452157238875468114334803210732679850376633038818539937229025475144427101454845030454892275388797903089599213069946434541899254545430340407825181634318051982700037377898784992111032678835322162676031602529559859238969889089716231957825798901959421955178374163018183852811111035766458254700336255134556360336604265516808215087141264869650384497115765091070349828140241531612818185993972254681376625112107768893242571707242838768061070356638949247746356532998542817499496144671448614036619358118442669396679873664263644831650278664370045741740027935897734354665976823999595288120854505629079263003162846988399369726020420515955540531596412714055696433455460771887272835866802783512787546450477554317733275493315250384177050069718166228977247488401991152573953255450086087310743966482647395806447677669565056059383543492637041400338988601581700134766362867431470738425557768798801774998832552933058893734734673052877971560770740728325499932668523850800560455480624118398930068468378030825867386385823331695731772152969055972748206504233376234456987088441842907828639942599558490010121396618659570294995663503249493695158284887729066393922057824114355839887317222178302719099905462248868500167048113017647079165403830636068863933135533595731094018862199513862249329265039368098250980072821214522916045942109647168390074899533719271372687641875553469290501615227498678447884438106091989709037981236856797482913850652861807928813828392815747626949741129830703150939526311209121543984665418515420243721045121909347141414334600953297389132054483060100809404027064094932195498694035117173193545034180395916626450365104743738790809261700461631164165280441765404258055176521705678825627962680747143808268086430687993762945755807549159235907057507792179575665512529052846229163357505509236113806353677784796910674802008178765421686664370148061322193771694833791868120325580361944144776044637792632052486896898692817401766119225226014404606258488036711764844320851947602769062481385545729866021751691675073649934185396520631229094920767312404032904866884659642532929731562019385924813703397210627664183367543097143170389268944209203100929643247895720285686972560658588604584426903558270739342743741489162860744703055858257657568520286399224915309071789486200057541447086299749928353248925830004160783318078302436227872408611572043844047711413850241869148304784831604477378944325488851029468106563561314087904950595151418005113943217648861851945100278816141933018658440295885489298672510435612289115371476594941574458653556414791142486997749047560838283895868996929455816911170918118335747498849583573265602778845259267848903960868031914874720710742187147824042877930838014404476730294972723060964349945962182940272485451348529258708486798220806429003128397737110756883503578214554800189151022099086212277403959226234715939238259520710183981514739853028795539793019723926138646055615751812939299177596198059982121881769247080082307989105670955407186348094023088092508782748945748109562017706581848483640279162819423635078794465068441679631958758006480787583705386265666956065487261827371914797066467533383034102804147620950213392053768950360962260226593333738591632770964112439859257908192365844406925635694596140984965719627909624763650223778229254505124577367494322521898865664902451643113494618967350639254786106928023714279677952068474845606510549796797736335471296512956715987278627150176233028062108649166947271265223587605078467491550372492645718203103191490780295837346396789170862817376744014754962349257987248915909765144757742991750330454797316101619626146239858258237856973780946803431703745186164715220898760507425629162211805904069702990065081220953389565002267748002782764091438906702531587666366556698771476111875942076735392079979362325960039791056413711142271193432899972808261882696565142083293170754345925169570110636823041624986181255233325123149426246375996876988375953284848807534700230707654370496309636967865005703128298048669813577751399101982044263840555381495018925672985797573262220273313344454577016141770691908673498210036658333735456582722590734350287321563223717775280707013509123810112629159306467937194966547251377981648826621073791100580671986511526902643503191913779782359571687767973225608337478395153188826727900605766236779395141452610604525735015480901137364978028518653632913867530079248417132990999676457480359325748621021278192810213879064087463745059210247230942523899857298895031716072392242493603969284307644416438266804499993208011247345530120132710997428929527357311414608076523175336734928181696761532419236660621335468322086343290970661064670411412054115518853961196906887671387286110371988072827946295322981038535023350506614776472332289108164055859741275042476461181618890929821864669071164889936438527267097093332945793593682535618604268365647899579874318502755110858715927935712166746827428886948550951508562658113612448767836942324273590719845156876163544836766335694425277365866059098844442580214421001304558989711929326609530557226772855891678589956308393261977248539302261585695569014136595312363156711150167149993069925352778628084815732178125844553231615393108419095216357633416036172540965766921142656900050380142398159103324507033250405976661239918727100626118359307715991452342637303349144340858631114539629898697787453064833793197883078674857595042302953009081716782077957729762218940536434261425775542254220991776659930105686251805405112073903613224142919550013850930575863275177805809909479807653176347068719305661200705055492833344166779417358849841016667238030020492526392682637123922211176416052350002159840689987589370663108830198348364735681591939791453432783052269627196590241245428716241292949674027516314346526210731886356745609685381334145606431458348695710611606379533568509598806417613094119484044233317139608517248529759329461005657591484617212463601023671513847484408457247347307185571550040587280096099770552008534090984108267271352318796460648485157545466963734043673612732779245195386980055584426770841591718209947970938798189736039737592820581043271584769366477209341630503764304552143798983797151358916228266512536337023799878386212119611605939675142875249751348205954089291910893252377133582599864244778139761267652060080176623080524048895158613515053572431650469726123710744390429260707972895347205896759084420356757934351080342494133974696666706367219251939821105035467962104741217224612384009988085187314855816910888140144866516516250698591550743444854819518504147149014261427246229918901080372332735373749414439002014460885978337386617290834764024848335431671787845456511584490148655563703861903417379561793235742979105241066347180924823609636883568287336891024298638921582000271445579907683015441062882717502744594961794960823865549561354952220736799264774326087864209528532100732123878501929418581777061090817425616423108645365453779757026270699008117494158823738948532944347666434246788412209585212501175522977342520537766039728605867968731837737462276434558340297283974949032063822100612225559157552147873704742707725532959037702209999538707396855542602705111980455358629539803260828719561584563983193377363822118762125481175751431294880470647499954557490278317221786951888046440768365538328884915803601717874979632942443528545238847410500535246876355692472790052356166268422674934879239773309558150183504135848333220113600432993404383173302397818368719456772984400035934584219084201895719690159336662048890974609953768606823739108658009018971754234883871509501269143040558925548188237177394327188473990973303166407166729877087285590833556785571795665718436333745944656022615512310394756802190127431653097940347167637484998592374241177896442857443805345012300722736103110264871874154978608327730311654590015874552125244428489280347497031309646028055351114984139280376108154073635846554044864315794172999307482456758716533429416237984795748930552976555051601463566971879501611080859687145329906797147395493348378470035641425796003207696389178396163690238863427522404311874557575657627482643157741345123353856021578948310580319179674677097188408157671132087450362867553566847594962469423461908447505132037735258220817858078213349907951913940441633513127758518262824956562340625458158075501144245540962998758264927755394816111818099117421372579461855702678415217434079602539784899286101661544481717067338553842939266384283359659057904031126877743992275998338106817675175835442783731923617482088026117146882510395223851986016817461725987298928529015100023574866275473278733878056058214525125881755878637694936282571079495304748359118401559659254007323907347324833133599460951026740681514378093868522152284994913335460153909619928343675768620684245204804803007710031160865243174775917576234590535703581224566645255028998694876212224983629329686816936511120737289579876447301175400604081788108888337758453617265416858656404465720916061130676227684017457542640133056584328438373591861061464950859589635494155565684143742180123796475492777405549092808335748581257156685127242050138853058305831226421150168881592286661673496372186475805699265551473881467059232380677738805821227402868297060682035269506026763313802040980819432861349102207673909205015614216302713237842209624260815339995978337979031976380654384386713354271278759954581943658788389342107612390526882313029292972718254558999557199427040454850654910504100096277750094672599957769043552058446532193281694923969986777415994436536453295847026950009921585255485178072748237086011711539191759463837001381902912265323359198178398379165130104794271342543859736721567155417427226994921674309430345092656740288172136165687085890860014789839295720976451999154013028043926454343490350318450275953153067470707834991422600522229051207448220883000204861641124724466032348548868129349849970701157300521146243705930268948726182515701523977101677500301387649638469903323689876752083832391131153687534438285425775857982679397074869228644071523184299924882543044237297470441313466667803328541252326206979102497807060654939045333766760852696164325244562624468298675324559783965352213075551277790361954787487880015111336334517513599772898125863102932050541932036186299305464601690391327887244502316375461972984022551639423046161238721835392385247835103424979499978722823208988639438870449014502571652838364672208725925789310526592079852068677799129459945542467141901888552091420165777308520268924028884714685614427758532324280431087221094773890872542100777237591266033947837095000063903107950273912416510852347336607041733808142469670653312913862403806329188850311348507126409290109353896940587534966259211250281645700709330277103252755920981355670486567417286612605943519711364525344826962621361824785559993936888815071635030576804289531742362750174406305889109473432235572686966864930459843375240493336196362150517321843796264558841101408704323148741956489118695651847974278531893895303222330865358005595558056965846100726040866927141888937098652883480616813971551336507616468666679902720684357311446088269317779511207166771565808192705356807082070817824879649070771293914355775703589299275419485379957961055969847944465882883102732489825575205279625455226101283800927311558171424692971228008173755966497610376655040476125321833522027646865471275485684103741374306924530282422260819983939255672939715871277229805910545894355805476956676231153069835122486585557534321440783481987762904105216710324615200221054612052634108635826707216834818743537578023507379554495277564583493708941511773974233033414553408906206341503984586754045533702510153542803733740358484634379722519233917539400264517010965524982677303539426563244311906223422927416863885762325539212536579797915722966776407056213259074849969364321509795837658318979376056620244668702723875277670184485932918924972104044334877466731127505073247503093721285664660427638044685938126060029727359904827301780750571675123504878405375371438124825957650368850311683095162570445165734796539957434186711064318678737467104915974994626715681798693289514426820608938786658392449928651037216455240641440116504194859073807442913752428412724232631067974083610349250599736400605403268672605601821218822330796788767821669548398035654514600948675100026072646840159423105162458598130059443583322728939743447427622283218508450855737830731920006571401492529065568379107256468212056560989332708783274112079234096182940037671346684339144304047857219023908969038841604544635657700989002450367323237492048568569303337159019928541382929826650226480142408886984317083500838088841137156110934503099688414204544610784572028508596777505072513112308628945737039945336802678686700042102181183611890315126435908486229590515218738500651670201267362729671644266851430317656970880275031110821550426771530813280790268545616896409892196500903092509795297428611329451058528344879130418064853731795902403115261906428397593701074133357088780261659208540249458002006808867107407265649496760812315067856144319268951061396597526072304564072091981891844643517804667519094948686175871736091458988792460405537931014665949184756080205335573718684032704428637079920313012393069256839055907984995413544591471140737685322303856071333850641104637052492706654633618519685180234112379970787178362956780659892496353093272031971013346656283239922326682908974347746110454287073175051574206431674378431166852889035063746279012423943148052719065417591970721130583911054672100821946722801977150961259357064814372529379006182409508546737061415220946302408656244845931323996289234922497262518941865778953001530939373123081593473369998293250942827014228701059206288316455920915962276926806919898080546702924048053657068006593858655261027140728253336340682704074282870837212384864699142812484432911190243819844277670352160481113762830999566109651934709162924667193608541534971737845959363975479500887705514484508056767059483794009530828280049515264443273571750560735352761576494417388911805435196515317649581818646056792888317348041373149854596557329492252971872535746723082587947803467499194975544349792103627032644955393065287504648526778704669940031988892656544488764077739903802898031198332322508560874865173226624868995999075350027239682316793372290905160772521233105702017838601091869112930568706215239082593538412348386337557638530303092784319267502672825380046304835428368161566064249184914126457583081926354595932014082397835010414070469030592332923940645134396407899930006967113591368780889667301088545541265825379228010916673054847426814850368393662644177187027502675686084744993846569851236996014934453040789679035783837097385090393658341182534710810728646166180171976291955228444523639396035570951387924570055285115553306952316853031999667824048388511788765677255345653196298687078546323330457937609515292201670057361872540556823809662869578721681479634856689072938331181854271620919825764756482514062986140210131609232984459405889493725184720895870397789879215870023523516021847826446022326958788262026893023009890777127428684906792789033445434738328723558181014925609900974115151682717799738658568145237308693191557843811762251066389174058427986114456441871562818747180225963087001857548650745657938066330547746529360909588135719237765567620754177027901258831166661843340076220798856446942651414289414936310767176746556315021135186713347376465630295198097681488327243084897235441478183766722736762112205992210488809317819100398150508144855894039814412309224068664673180797532498863514200885024634076859465265465309594205472473559185875972313525997047181774418463675823501774537555874016334563219779260921950735227604695115642623806653611968420005155711911222196772091371484077443586987604724247044345269441602386356851844669042254394470359974117738433612192192622937508593146185434188483444786034137791756729488443006641278015683426860527642853171166006924393150688904942049990207482379459235903666347730433529992779069744897202452609226236286114787287546062202395078324903165626736763011117975213483250777453553301378957262591195594732341964305578977614688078507177430766057840977948578510825794943380353973326217765240819654198232693764374925117665942719910565126996409415014951451464014953513247376250668941396097174766963163331729838047252123038136781570882965932831153287163245200414106482723552818638890773575075913757220733726269537593824185911926995820820910836126038427311630740172495834225794255840016201263486970860236128864037223440620484388018820682749299196613817700019053486601497779935809520497392404695272905940422830116602784230625317259192697678351336464827219590507147178219236694804969411137378675215218356797637573299808041389584562802008723366700986035889740042638524284615738854107769806578878953619680865563839027085728715218844271086336939420251676896273291696215740777992877056533124972602361400394417488995431497220254262754050928610135105421581358424378900632565457783650146953532601528115676259866898050672143877444029542595802873236798840582376952794236530427916828869445050300086243710289176184667176812001746567062178462306811213456358254480464447598116726129587411260872303013389801273099068946078899135135288456176069449609691969520492110513404036068261729457415858074382989350604732500799006631679946069736478602580825197780925726899853740438987777882746726227932774913905058962734037984487687907015296495866040738465379584690415616472031169393884398298684470250758851661688827621781736553371121358991875551544622687287494953974927943314667236980851649500545584603577303877707407055532569043704922068391550465975622952689885431097193982193147304643103125252151754631301438599259523447768078811704596760920412469100704497417120186819491335563598275649214393201635494792232195073260030063567610325758147286584693504932495936919181943281316710547620773921734086567695919291787530729838436870428491074524982332222347448085809921166720963803008560261248691255384043738045276259658892734588471358373345822470377800347119415673872791559861453238722281639892556693726301908685690657214397957077461104170633008936944258511563901503900550632421321080760833834903108209144207089884816944867762160926394653706501511580947689949797448280807012650839279086778675683056623068659541220906392005453309236631504570037646310044154492483404867823513597194645003980299472863551068896707568529709070542666057352879501248577384472505113294627253497168626456360871974089009586895403391706149507954475006837236442112155333043176721775518604399093848381796549436026413889149458749402018324899459291486054588774888845377313333886277472736219589107637225372900658069039642683713169808202564519859149501696698829211675011382310125529309393923026463101573113545068733779782035645150515788532489319180478425496827383275381950251159204574625128948848384144612663890837690079491340004323530412289762993005186918991401736588192425055433172312823145143269383751315673823008120098518381940982613548707070961351518103835429885902115382462203400792768996916910140156751258535018284520570352792181741097361729591571553803069490810817136065699951081265781555701138824923345941300653410516779845074865686328114031258730741960936789456538155987975858725620367856687024013765736917098521389769221983815870140855159415636003469668146801050458778704368563274745643777329063301661115292261318173353508792856243736642078734858686608406879576870040040252181239383606012778779342009360866422674232697288605346812875432089242355217149487001205554500821726759688658202651033544997426404501297929084726860752438588310840702633614141924265984071395809281908821887099751837819267294221068229685964261089115392055963841686936045107497257741009912235901507211312835010924337083251158570265220993419688008890497643417938829173761857551664442118868931624918119254564036594481435886550331528312322468983948066662422737413130574277608521520901008320442061068756086062877338300264336148512027944630775582475213182970854147400349729863267202089117639417098277778031275036969037344714305613495601769614388245609878904630684587893136360774478529602551387039038479929228529013724438708638938726815879384597136595763713555505797171042132545249942415125396644817920846367282177656696102449324868323589557473168780019942817930831002978029940618110569082451240398564247719654658892850434218789193739841330276913762773553566827822676909727312680212109123805286383497655138281373789262945351494196198513421087305054132894109716613552023620977429578690643701789838909195898836473700676517056437907261302886729304851832946137770469998773704009512625520938881331404764663808243128351138506910238793985201384957262950418840931069751157608900370149893350435538863833240512910195035885614294324540008123293366385221130290743843051609046763558413870186956563872014612721443025576589641109619271256789756702600565210875681596017575844534470134254768535866411263257005388908308072871223485416021100102491812624315994320539804809008388280050182699441177613630371134724451500173858987849651993754735538748820231171302871557834703127422667384312671180403209837750074148638548825497184948555885919904878449519739050559306297533134924544385803103116629088722580453104654608736956461860960844696611826854420810521440364485561874449696939425952690439375198393123291877063372622908206348428899356309708726448434520017551263778092225988186149216625074412395226978435122253995315715164217372307216790185626614130467332346732639321067636646296951269603911062073464501304014666531999997468429531576337379317344388214318319240001802854360151893372029496613174964589214450879604850869335527277678220709589538414214344014639762186924487162468186985672375854588623882633970872043232158027421845529335313691251852390558306842472268051500795043278980813613716260012649252401129925182196809158249212790166958782382854377318598093978911479904592377004685864764169743906986004453660741574059540924497595876450235749173507591749334961101756437441360999159637558806285847638626808117519163100059746008073381672210607171628017335788147117635566249333084634750840432473794458021078474041849781453127414187460657790859554779368005298210018605794643832123730353875181771958675492231637831177078505533878279649295166406069182155487900340195300353935684043269325143748092320429951010121153481095300935464194908599167927540902679174107260242006486453831294861204307677238429242778723877320803131239463895125527191924644849253399531772738152052791131837135265376439822582837770805263056642435396329178482845379317702920980448367680712551250490160578648137652260933243860555586880262135752037829789990278342816456513563351312306940497357671652893243635637745156810667783812200252285447643357294720793334701386071294495580366131113088368301699709813963479545510206577765162192489719222340827918332864211102425447369354674494451065972834335269304948208459720942717084770781384583949194325547878147775470315446064999085932762953220628183555913578164646533593130595844031271641835308542078565021257316521389494634678330951359614114077244430817024620010786194821644914188356535064348300003629737881198528184033692567996410369583723946800867681854251932748135437245196181633862939622921779254783246297962489352514158780660777675837300455427476986725515222203272648357061703149520434755420678283656046935167290921357471131982653353233112092072895557591074372895438531685702161462787962598292183183993248359477358632108460066281934661307051639449860290233633844070962434342172771614309416574409702862791099928578112727481515411424560631953986795680702099384629522923796228351039719114797922510832843113782492692960419862157535362021034092997268540488454197113736886983280765044121789652928182280085288952971238470933689118208517770017543448716581247869002942568645983571110165763974530179716643662317914971052465607502517440471612672542130077414075066432538773759569466475611649257806204067248873560407063427163772382671686317074231019024317697185715474789489901072443843285781029554731351902849888754167114439949915618751473606058055470440301493343591267324917743467656059074884510031106967105240716991359960423832704965891388668765286484912861710403554544554329689927503109097735766116875763591417850266014875482295958086674845937172095445276748516324153396036896135811187958757759018549745295289322209624461904520871076849497672490112707865753979071043129060968214840281092976026484539435042108931168843588344525544878845817464073137730696623455529976069770857579284216997746733885627169151050255237010891127082791965155035057832368036168387379699821045415632661817918525733742868239799479203504243198047474659003644206847923774077737588919743868162177522747667930083085356826815125327307227551139082020012790446428668479103292296532465390002332979907236069792280543900840401943754257307332972090544770043740781940785753259123341374271713280672490863171410745709222728884980724713033501398439171587785571112190785060339699678508384296804332462015439815692827472372173751959861542069135956490729511592705711533818150843912138249376717008579913640405205564639682528946257746805903127975112034779195345815151291092382323915689249383481941948561647126524472088823334108410603880007387321992748677950485550320234914967309169486403241533343735089571557578194201017572210791969437780889152312595874873991774753022119630981977946276544838044839615363218384109140976689226132962918187776059451225449632318490681137193008306843141036899636833749924782501008767665276486586491162626405094213161230449499063018266973995042637090872693488407401071725129438724555397116468503485800372661940794704308422243131331520458592591782099321176799326656738508053610670522991866627622046286270409974663644321108047813234419552340253629562919375379300866496964490107562207007991680807617390876201078600295475009825344181990972981771196527157606996038651260707645200458780061665146400321483923765095425726177708745088241336694403425490813195847296430773658477967821806461002962918013932397608203507755466482845263174610456799571617057782858836878259747673292467369824464870223476449262699573301640333737162443807332829191524754424475156544391884269697013593581326761397214110211784544723312958865423182680930192813785816292075192266120466711919910271108000463617901101360850117802172497944144420767773518923438816727129748806568968099102417588485919648501737229835189147985037998303682501395409603145237602869568110652872774764977250764619117123432986789666262044167778454857345799289801862793923975756922108430268679084891411506155286498351352282487569569677204996218608810878868103878060630501461045347837012477751321944174482112456584418838133867926863616112956025506846852566583521606400706668587821866038646446778989760113624347286190734117407855807992214767927640172290257419389208055383483923467167865772185922679557867946306472212249902784334818846182570027251550640658854647438964900993592596364175891277572819814566455317844881899532116683306597413481575009204830105602422405272522036060153772523558114550342584106061813469546101497578095995940105589935178774843044358731905884679942471881544191564571091676745543236399102187258005442593989706856239097493851536508309654561929259746392238617473653948955500165256106029540416128450242481780457770243924548885539473102531642777444889660476249893047402760007543624539632422106487169678661841112880411991894451648844501464322848586525285092616607347742942280371859330101215781739130868535632110739437959062509358619057019529533826480496567531827292851008166932770888378018179166562617758246532459049348819542353621516821025404663653921866844083043813646070456777546631045285305702094196449278713978506459398613452394063244946405702057917126296373989582824574294411380601987389460332844417088386811473578173346660381529520931795075856778897372910855641661834426358974376436653282107982310863048743015044591473797657190963149261725713259039862632551757475451832674204723519694053956372520951515605178728614231338910658767053525722965473274733403780386651731125402352647199343161243417698805825761167727422011711805666481281548999484724707994844708931810050842220821592926837870927291024963003362785183428777568948134358779326777447610968878308437439164985782256246828304776273846814357752138989654237942205541528823149075736260221311892070652881542322262606434015118790408330814942830655536051354913052462021962387012118002192388174244916378534207471308234333510452287255459157160227639845983749460023984147503382603432117593874117429372374668525161741413911281703684042117953124180559511615283359626131151545407134666484929543380036173129984836693998064990964112115440116031341419503135535125095166253435805218672022164079078811405277876446733343790396632322357296708940513004662908958719748036611912112528185106595104510172811369613074683766587091302264982769039314383405710169649920914639487699222884449061925151377153553782386785656077915496303422840651534603458139269768608646107439834815735195590422395358076077697062039485191766324224231587253561366457514234155034164616906309831720215194020935286032033821198648971428535192905793968948829362239560990587585394117531780215820816819084712092236189801889536730460306541154399944852753052340793163635718665574839668897056656801121862189607173087304694928495353806601364954573063560032083097260518217120114864083796494399951866248481452095484709914142217937021077463785593527388073906247463065153316985681097044564190583230766344602145436270307675721486853177521776659093300238500137424892908500371273665556327896489084664924734970187755555109657733409220482029698202982155714454534255052651152394585881237217894758637120422057754796759214796933650342487937488532889144150706720481540859317702204732387426561178372384823550680570420465162098573585817580384252879946566655483884314276583294070114592178384512850802226856768183833173690409592455197737706906167561002686954471841572605855360164309588054710145696013223807955669864720785548193497591324973677193764587691605179539761088628144570011387819154299597987646828247267631526642238970723021912820667285360228994547871723783740288531611590574025500598649310808175862766711242417184325731491519711073508184808416728925448097382984944015756063669768638102173702880567619133722301313455577075451295016688803477135652167543661547117617547130495760548484810265411054160866654752740376532209674160230582146476502825409764100577985655952368128204609218334712344320755570737550816049536421060479213926628503367375327289414584595171213742425393063958120402734925384266215409757308092238016309348104702188289529673085028220389834635096867157614703348430885902175477630239850567233910231448862135807054267234303039284168006937266782303925963751725171917987463025881982265269894743379099118510205804414604696355310320832663928010610251029444160546695712574594185917660258812067764925771485607280242238985631742612695945790687627186217104145494841940705104892989074814346298282492021056454984139116735608432324020440471674022974286444102509368974647147132641085377890358542636059495068372752395024976406339816411881896928678193042882793800987207518472858408913648178612957720727260311766471552986322372785327152217569905143974791697461382577555107399677999604920797476715687311343859632034914062680295268105911552145948357742810435992744963775536281547035422833196865999842409791058303589391164532893094481944860372509513412446538634011546370208037694067933018950710025284660211711812861999649630783570213466473836209125350503663233322284577915996413063480139275950346645346581932294802576286173810330298571826365594108515961911038523541554928409103177144741462665628204907798694485911298221471917175747373436821690210573216556244425213226725119805801145618722419147059892930505029257215270794925959952783632389098680680922583707758198801100396061981723459829310331478021576384771145218512658757562006611665756587810949648676161442748927427411304554609582653880228442360192028759279459175409545845266270537302726161454065001344823968323940989123144658000474992723330819853443528184656831247369823490661981899341806997646513095784698232754568236612412289386540233993132909760801769256294005353009530926876904943809687217014053042049540492302669039382439961296089117163367131668020736965399132501821100689903800517208309415352344858955496942135953350009981835429671370855693843432878206725375470594545927901476801174558902724181195449665030939989855795111643325799680079627876016398473074975085318150528942251266739681088370505414009520500235916884175892441964591609687048612627837977291073555891848290731511762157164328292405843475809051660833638978547966627161753255809066474039472953723608436215353868928375859975979926193860387461740023199825787550651705525234022021554879151384603354643636775274929824514939727983222654476430730457654914135014226381911273131039291777588541171633332727195125144787201813787401973817379588425303703410420535502913106213539639878487513746717247998891872187756817688859238805797052107160095298775901584835301111876434168099726865476935506687872273975125290663030343251778725872795721315656976589281521567902590899458565470190084531482279702568180940768620877371704273298842605611507990623235005208286481449933264187386129577497321809404263191370282033457533404699530554697259737726430231498049481852009556190731008023384959484347173198826904029853009879024327437777112681760655568386768711092125096582392839491615287938056771468893198553779312052170283786651682206545531737991035964337315355875877458188222091653981472862225577663545308362184585011061284260180789473241303377574752305175692859814830132320666251456915498607200638172928090138216030783919884740884507296502449321192418664413827251008988981278570867655818714567154302916983949678742797880442156753924171073362197095147174703481567267636065478819370357587783729127308417802714584142203625689740221714059170282443721455819511303390045943453868330162060354838898227511369667047169322061299995509248199228220662437108847923821431702806346740130745675128699688389835470155495711855927686884417361222313453585971267736647797884623699425934381313520611351377366911443940976886612518221210900747663488018293432573721933806343869651547845329508830029833791084068371944587112514154823770925456170571051492435476096785421892104148453850264771807032598366030521209016572972411260217875370470398289217544789276385185104334022502927815893609705835405408623600202260832186527518230638887140579641604343721591307902573702124271128650314821486044630061884869446393024314574317647676065624701902967697088690029253109661148051048848963994460049197224748987330752491256377758953462284683044086306335315032637913920943539477776750266832574251564569299444783061300990665552788813465578234141008860113940906126372366112184677907394541578606286945038746055104170116277641834010860219229150467013146356275797596357480903306289041285905051342396076337817438986269185206147073096019257758734958770910166971342296633288339990160448802550303606263197368938959515422428201298693546249083332967140171470903354978977693916002337356985769426617247878687682914313259149425276312691530402780403501124401491326726417083471601715583367586941299099803086560967383217288557259601332425593084285460280187702996262324687469437464828474635029603601322383675838422693649821611520267449157893880916752987280218003235017733053003875929733715323785273719973150277934935818259505593127391666325789976341527344812867433422186701411359263563649330429428936938530326535208358507581704108738272451086886189294804521704801617177404026931224575117492882465669343588331746550725625673510081397554910592616748244989970964780639038768794476734444654217817747031922847747241955041839123728478125246051055455283325935750959700435848330934390322727920320818543849223216889758529088973033036698724042079731435202411311313475532139871451617797501116207999800721886656229136304778021023027354549060931431100875540550332936279940172138229964839781481324336746094462659653837113386863021423079253086816881917593385133608746307068019700541267283487873707399092783530692632561927097466379621303529822158972368706427751177628665864178497960390755079296630068284084762423391016085010363527411309634379001181974027156051946284144929216411260803929020916340614671266356583273052241760486766399958484804560257735356898391925653385997073231477732987979062665659211516338105707645824456732232090371812572283737426261325987951703930886489765459663775758405612838132472255509044918431395962061008489877637854384306305024248668688716129845789996365546750654086309988351425549818515094811584055090585277751469528390577097891560704132101339798398181605649234752542405073992066688466204123680559274543881880874153250947454091772723659806925200175413039759035159634346934553312995056849250865918940047786107426086110935451130652647290849815642643500175108485345851194841943407989722926374763098880854663105635275162181957966043264519751300148830237104250139083241574981924119932044504018370635542641540822643279302156667781001699122440240878918004961321269450985122741214553572425271564331473678815669793498412921755213679191826761183211507223455199789992013780961691438201684780943520154849747188966360415751936960277322321701741082196541168575039321016385681970325417158979642642442020572859128023405431853072093108585639477738409831665302021242305835865034902231214100933391060401882416005309622253161873499586669016472418513206810292902029198247743709887870154743052035470906138147624592181909434800274665581696442132485513378427061562250476652456659261204546363851714176716094985616305881810829083742633215541497934830823007669039405352971600836847668790324272358786856955505647647073956986425314110865559116308523211868156378504334978005367428142255163244027601323641439651856253119186912559019610718524038893398917861745722167326806835525076091039050362943142026590615861729242237766826890547325620781669720974623317190914946413277473380830783133852685508083013499734008496917105420987385377326664616497399932175547344804718043356712569290908673346716008084759295846405938939512912672599589007877462029343265588952172743250114584319382006411070208694817491806771297877052583267249226387194002724371655552681276213429695182869790465282014416128782927554314824927431277870687712862412324577344520997117483403070579318682864705628708866056103873804523859891949641501280880091909418081985915929446994942517116602028324901663949194269859601293878858632905045534194761838534611724948764588918014089028087002748610345773872343657082004492444408070804892162613789888461373116832855146393309438743814852008630262244729633818901849591402351457576194722950545554586371081552938986093098499626876601586702819961440244011506676245957339142685175310110745978212224303105526800592720412882950389548413546351442233678135810787252815073774272556554418015917735835911727448549308265051897092526008370736633015709019396111888707432609163018579335798781394749051981943630593955488935526815071317119691640895767931224759421985872705708933196826241348085035014843398234659773418779628372530116275084196548558600090608886508400423663899222508905793061869964908481098163724460969245971874143168657894606098174455659794895515082693932763581365259590203601466426891195270355287589429901125177679864434868888181433312878135091971018712986444220422404923201570396977180125750873249198415700489305317170774311650366097366173296445245526696969695453384595286535811051865257128323901448371860856040990407401643376871445444815455350280288604771902187118222614656084056708340052709039181578891654787279570656511703423204963748636708189836039492467731705605016290535643317933066922691925783145344390145943868650902301289373394958893145692476800101800824017746724490455455621959176167796452100575826435284241489898649446345845999878239883512857340432745973705070659313251207721951887023727167460792294008835916950244008114708585779989371192119405800631627528334289612688767177054227623278224906392666123604935989989788305388780568048000147503849496183781026443728334325443118052283436305823079786186004073659792640674479628438832170189244612657234654572872125701296482905905068114299087238976341884890388290285690703034251230155201787943259191191418725648175053189044758432819333372312563471727490204227316920388634253130888530691321594086470668930312747657943500425506035224244989418479492669239756618325200293491916842419845664894973070365057249964856339913566941077556441386166095646955277913049335357939267660481589591571271448186859844457064533789713658119845100428537957472035433427512292292329888323000402649112320133605774031320008427713318392501451466583836592406220380488327995206236131717771538215198499028577805227789212571601794868960503417841911227704717829503038271042165618683204261924563321617121294585228132771949466915605674591238145882150583473853148258126801800100204594524846784866432563043602712735973158511413714689993243778629610535977628202643430312746834041701283872369506128704578949882019962542215922850740240449820789147661072897822356337288925742629281962173073907625667699145616323541550262195298235661014890180926925425821339701813689325154923243831357320649340456523108002145184194001788837838118821629789110257649756557081083455338512642756023002968964831669953835585424468099598616813768627165079602628750649085827496262101573561661682564274457471917111611315246255909786202627441406630995698667583533396908065832311276183421700951152424688150954338640413783796165936666964018083925705271606434392893616346859868347915504274782169789222917394244280599618138089176417502469038433480411640768524544387129327761782409836594412784524799592800807783969936036292526743435989928777139450106239697376547978893679116449839151957252880249038863939956478769109294348738198253832783598466921368959708414132715111997821289779223680715617018954584397405175188718497441189281667385356351306198518404261666258557726601873702841973770774329014792203395300483367278121540437522015786096220762344062965282011858921682818419289971805996809732863365291548013424332159428034418366295504442823898647147699237586847895378832789620992825983336120959500921906039190676892772541100536213947463185585523936149635151629630635660093327851127294219923834071004788814250326430274036544502467853526958744667028112278124098837840644620546778066576473717953209555838661947929782868237904951400544281124709491437927245660311893669835508016426674774924119398728010581593981404720645311047584568779227185816303172338888657876675681586646212457988375288631363503444340942931148040132677337581301728022476804449161608592184495130228460297743311484897880214846527297141117353649166138774389158342749689859423616526869297062014197443250838926878400693746173152833256534400610715164981519937573514331283601918766266862784390166010541857056416033934912398721883290504772553689122156096058044086808366678264133644884937023692420328737294395943370032739683843200468569718485897551151249367157968656628023040082068128548770537010296572290568306061574077288181979410847304822093208356601807659316891578508414523312965410141053840240458923480618121817673891398694973001002008724806385747594463631881331554921902644294389971147749942104254111565128792629989287031487255904317721709367085708319439110584263063826586267546058925052834679005541139323450815160796362390142873573060162592922973396536461366961048628809347302251458909505380528799807062559334286267555705784813669238357847301502965203845570797006668481127399848890476737441150410145303179303851929535343060603427509099588083578676217214631665440156094748859477068733012225137086055885972026348526372926956451803012044860215336529682389571156152187775476485902282701300875135129938986235982590690553698785032525224379648872094069085255186513340396960175449706037689431460172312097801993483558284478619056763681155798532663975324574842433563961570031384803571479117672782568470486212532269140580231479999857018924688261919449678323213699207117582199143619167449097810138130353450745687974530918153791962407166287003045475360690706568554242657500305811278323913177692081940071329449928009310418793726543993937237306279505214502049647419257705305720404823615444483747841928884194770971376195012727446290870416713484753615698261316085502760632310957115295715217750321157428695440204298790868455791497304037250611551244323661396157488687715683011711694938450568818102735954899210868844175493504898244711528607918648316907489922047496248109555772911505986685425062478716389373344023523120725366811037356994567432627748301040824927935793463195413067109663692379099441826002863352561987193892384157241008260907899267671230921302047502284218392565167639582498113464412506535917547694498996351009721149864350299936048688303821253015258715223886035071555306480559139122884843791927336064305195653977454232430397956808094313444640654877897983311970202013731243355962534239540719984839090483678993956640924134622942087541823497532209018720278144862141218445963707172145687746210854587329746767714042034830683433082004652467815551843920278747030938066284527629794539144060356199768093598554226000135384594287371559046459112440835350656905707827891394435513753403704534011998235923765760383610384204332669906089856295252324981034492722794796911514197298688700146476466414907894988197461465945651436870409462852244435352943170279091829963832576117705146217847141682337632702520449415570297056711371398619923069146178624365170835779314978161673665311967929905189781661093738922002363858618687123596154481460395803424666910648938792693116562434944923837105406858869158452035801715781986007153745345440307273020974050696832367579874106595891634060156797256286628464193453642836942018851621378003650808585150688817836549942150095070900371131136342293335335902273416586870838603375084321789739679370586289895498550513472219625924227375630708608112463633182653152614401045610016702252374706410062830741678706391013766164045000488790642307843194804062025826820897489690451671162561628785305417822608677679708791925608352244405463283817278568239455442332558787834602803578509791779681698520858637275213493588503344900258445236727101727589470155345522389156347990153243393199727177548987398399150491060147880965395509343788049833175383088103328321617129577587718727614430371594737106404407413836343385425723439014521198594657626710617791874150806485331632882574084625075452411222098257606629627845462222848868511732612747360894904926930997120201858384732868243530997503829907689301731412388267592182824857002400558293627132811111744401023076426954459865508932701267181599859442776413155486629890891177500557802019783436202144045133054746768605934662568020779909886699028977872133817014608973726175867131534495397858064407560951109242450252478370416243681808887833563320312234592158068137165113757467581886535059430132038182773294566374716221873973782764209740427739599575108645003241715634019488868254022298824340486606122408520478215576458372186937695017083131962549856691564653279736542183654960460849058461986286907242982641810857739790376297412944495130196554697749519815787518165815900203140946819806628282975590778917413851840148749581690007534594712457233462847028310718585750154274835864192132535155415978449940782818139834854070399615936309041234717832238803203719890956783402135049955411606840216180699286717127572768377681435518835805552070511623324820436732505175615191488150528741843591426333125760855976294648280187479359903690095023891044936088249792060275798415712213441944100608719368753703873470985857912558887151543936886442656679620399499594130932674472550311898391555501534692919789275097220971980877577210413756375770416911008906924766553386054554241744041535832037662853841629493029639071676193595299925849965828323750644730244661702938340933367066182767458630321343431774441899865044582355577897527713738415917838563111139242957873765309622485671096607936232405311494838539143862548430292054082715633493977788639051507228982132120799339386352864871135938529872098212713801873119489247074786684992571781639894393989207947925650102512407899186309717489230113527240091133436857407786488011226848782726586456777930351475248574250932810823110140431722598580367342723247219780024084270587084885330357596292447598754549223646816887227739892001134313599990210716689053320177674667014950623039154454827726811726689190630834332865868306072373636193804754629969348356482212473845327912112019826751466607010727847220939567511389053687126871443879932167457036778179279148605296211170137525460171139604917226398707350767575393813378447424899029998465015384103179415205254564534437444586520313074218451923996078175116688868481033769396105090381720447148078982319541275895772025297922031135300808696345661030203736196623926640576375050168588152820890398571679302447363851407239151817874730685028060079108108747372450721482646886968785026444307562741554866803215049813524129238561540289454668992322810854831164062111655500142313024800929790265872418180085047368358835614723447879006823551768713240939955420027642438547447156961795605749034991729186672365742409944800640088463072624776712471938261904774715199177439255726453240599309892987666869548100181024136186845055743007474186678686104740655227041370030622095543950999251732327707441896977471407681942000845247648130578751125369303576277261871354391311722342118555665089136801174682565543688803605122414658745071349502028188604000470327166265539960727896748202392091574038772713184771782100599834043418107349677890969568614899110441879961177907647500039048233318502412836774966901997902891381433486272076895903476750163950755192118148894527656072454617578025366640213582770125405388818582556627486856200577550695761152105957536146811577576153713927808191736941274379751870344095029590952434722435015223556348425320281066827048350888414528973478783959507753922397575788303729359680977406912559867730644862421304946557492785737911921132647200375812005580001675927985988250342339902126132525238834067382530633074989896366036931912895747005760480394986082511785224823411355898719864415142652619137501968180868981945618999486178619062174540048730395170212621573374260067714479009665713817744041631496892342773223440253385864659641058727174202786174609430840163692950928118965756339174334089852388329251132579557334649838815991369259486877931579675046727649178748004353914611964300905519222888401300050752238077854785929202037359477897820809812720109648968608666797383920904976258163796130744929630315261732684444909388586728790522640468903375500190388403038841583819933815652841809100205175252518213111101706655528342215519644799670467956402744356310527118004939274421845229787461182971403950436497643201629608188498742498729695778544226018264408931771295564534481661197298237527129708210840392472151960946899936956638362268921206526450456612011575874958838888424030477049440794482950848766465761246271408662264242119511675406180094332308740539889241299387135843069156492126040137936531424666260383295255210871429087140799375544026232679612930699265163533514426472671713148746638009066585310582939723465785965911934586988898092919748874571857325895231174142535624574375208240704966158723050036518517940061538794603485335245049677852090434255280908755472365072964967050110471550116642055590423469284321246310666788111469155355107834238599557830577092805257445546958906218649703531237160947384035170170818783841298249526349961582787436033541012236773043517570818669406720506996770878702099022075986992639864875280372928711405215807191902511567092386455583584892719285158079178013878013855420165851535522783713113674464926718677063865659147914784764895438431229529182130859456334380222300752421290924965529112658078801603259507389842977559929086454388007133893823151950973097594039468889205943038310481595846056011985539087750067396852339273266955838174021820233807839614120323405935088557195380149062442308760947296522726052579216560329337191739559680461839361748031959388903647151470026204310513348686076402544803045675621102153694798312786272848882991084771722211770447805374673303271090818667254848210425440968574039946565024476619613332995573091176946678060409330317319603823406562446063406630740810039718243974887776132798193138886951481742988202745007648704967514135067527531701658231963029355561591581974135475923668403549831976336114232300900949114843021754759757664729930964119455981677643244492036572133655217099673895744828702848801324679755093234882008432645884187829366297805154929901741821301909559462637307688068653513699829949054865176968204950518944794136526221899755370818730068649095246233539334943416620000246503405616752954129149752274581516931640458299961435486365281800247941788403635633412856303158088920159724116552048834803126298971789863158426025697794818775266050811064074341708403262532252436340936751252116603943751055847476809973814020162491901456112177076663481689037699492141274289639698370753006710519142499479356410329425950842983264233734649775243723170335891805680061216048699502137831611342162298929125561145453744573559268844510328574286786038830076948473632382505817028885971561737842182963841611941143009970042575991355584225924295922544943180158731757422969306814685816993677683720570261960339009673939918116816494784266097827283261027175644549879062035761337223643675392692308482135256140088298757553193846434982082370858886610391104995935339082881280566951013569868969478892453321676073581106427062146720825449169838802947440845398564483987401481354757372439971163388264689011335755992911058928955651022936301332211574531686403570274041104568678346017438227130856890051193700389622094824589496393670044054262056600244337258281214124962126419942761249525889565255321408824465057002282456470789012845354115842550244730849978106072631832290792775293562804482347477697059042982846319367377207051599740908936421041205280651203688164492165134828636495459674557297851364769547436285385554837431470524906491051787901257056189469610712838381059770796060876545141215197381735520963808828059853890234441227591555449689246147474805220140666538982498034798479733746137638249712488092501106488136999444450350470993795234034300418744556963205375253404307201643795068030244895108971110839888984335158717971737754622430396237202810844414373992124608341320958662434720067475011928388304937690959833839061283182563023985690365395043857423708525581900404076609448365904779187304287918836535695564359523623804643522050288290061569860020653639101494672765089113328805121906921347662434384145484532201966992154045653509092020361471218713278539930048960461187756030723493049060094794234396586291370052594000233544896466580225971069099982186181844047354780097398458284025916811507794249713426821761345776822037871064604154057484781541902468857851145662803051468159169251799261100411020810832520219110013173069781272966087498003664873812825693007566474306052530262349549167946025724954981557274319991206821184511476629863603563352728978853994535677759530585853744968046113802892526119578536765805798850432406247914281592886249015684907207114836299086432351195879971843696513980267546342817648081536564790751186684105746487166112380206015652864035170173924140354255404581943981358238788151649474676838110254632218810562829706773324334323670630756361564866987721922023740195039821577948316878569415749821735655393676262657418742236463612379152648067330915580012671609558646732982498454928462100066263667805876331973491191122616557610708263817336651724908297126111155899403328327073037922626209015678019062819149197495812385848161758508250496808042824925636290488242812873506276262871713367994000280347658950622733096898876697435545568716416329050047109799849820784316223861044635625267027361065469045739875002322843913652735351515169423945592742550401291134011954395160486810508974022611147670271528884993460949951358950299408190809824040501071997114409724364301165367248959432505461009069597618154598630712123969602772074721618582079844339736067585090058035085492575915092068059409073448213503266392844006651833394080043619462614241858399781328878845898315912425406563731962363991381617170174355981541960883141832745939740598978873116484390476290760463083868502715407196488494826211803121444856606053612413414644292481557876636498928999642919566101464240383310572478150182239616634784154005598092708255597275078262760600137037999045972209682361636416899214978805595416475714460237426516527592450264977072516700299483541639318726696672118151946457807270614877799003022500482793347500566929860115005555117174469569848252398429118430362852213408973637331662804768459592202863685292226639918467592327715343435203899376711418396360215752035773926910003791383834519578491457712283249680236245579156369089476423892828503839240677624533938073830250668342092108848063546421251595838024690255035482806989759146948445656579088979504662214404480105767687953262329222558849754127972118019666320379741902377525029246483818427626530373327717710852738751331370457426872126394937093526547312475660924554870567097380380647752871190424700222688723636366827202217521650802692202051069389103624930040404991627535778153187027035581434316303305085950303049623566798067129919858597067407598278140571827301221088936497665119323334912178785773362085546229027664312951552054949496200259982143675545764974169543563014833099968928446408763725933575508588962615404303578112670744286796559465722265342879494953356769204817928650898745105995643201864434732910339655170890200039293046494934978103187574074430411138867302165931038236923288671923081073337804160531338321046380373435618006253450587249214517006963026613589827098486895794497627580230250297483520035070164364902238258699795154563717146094130135339142378085935156754272101687600683820077885440008835739886334907875340866563675971219264746915535242677890045718471543809806853118486566087120820052807548926084213636343208668004903267359819928362293146383209246492783149203556550371675496337321676944356974709963826193193639606225200122055472307534256467644712225890448220296494396392704773988815377308938349907793450792251732979555820890951076798891672239737931905607343371259636461787510709470399936246333323777913460417234069577067048084278038576811172377481266563616545430383777425856914403703356497512972012056690076206876851402347607319984783377583836068532991336787672855877869386071556802738797137011096915150378873887018094863195250082017382275024446450745072679551908335080238737240795059348329641190617700635612053309796117896953293762516589243198606639920848736629115163884706676173379679855619199912439223530386896872764773113150888011953790167325236783930344397128296719849252655973606436660331493096696261487687615676737302442656091847765900580764217376560635746896867604684737138907405334929445702526238360145354114738041346200259928685877936824639886956473303321598675500730445618610922495739650406671460178361389673161980497987258296597863626266373003059152681313449086137474425361263658346475548632119092061766426920185351947508461874143696865953911272764427968598835090825943139910102339063646335134229474113840545863615845949479902050699606695289962775222782819523859352498938895609213791603409931231395799362119920432446395222035518788670447836700746699453733666694042161790842997364159383885512293788477066420579712390477039002170486168787478637103264613101382281081406713473458942426803250449112354458907042204557213325824902132649738310281449531049506953383086392688416899653960391678341139344872155258394851552971593611678903091723261634275061937106254340899275440538777932617009517415514748827531521172345449054084009709954277030858111923476551591156476782090523286748337615210550985739807338213518899263769120544039805665425509220948746161460027198837733330553422441613215158169892560230592221680717657365017123338865779314557166427641363978224517932804671367721613894642785083712897080206985438220341560711940731935505321355865133826540275884465971623701016329733069292378620334280435406473139531356647665415640418740194467733052659255587841471184559461326267255768430236064728269720711219451318765127925192340262558180599630507209281718471440404354462233594111585510909395606796196394485059327290663917104193190149497951416341071432145177883911329336340872501238260283647507888804833049371085065022490029363502075014476323747534146312946188707546170726444144342158430907924341725948786645208879416651819667950571706330208066182665430831688206964252855537463518852116511439946743517527249832382936446107809508025444848837236965128015212689428506120606244129026814538312091635777283600424878165667576425063808724035836801760039877666830865323325583574289519364950449905689877801206360220236168266023575558341102878273494934810742597038180429914664795110177059020308445657591991182624423153720497033530525568326171006129349357976337368380846764449045636902178583549215970727850592027937320189659157749574565041271292034955040397221726101828883172944255766383568921687837957507238155909741241838629805336651142608959943150891201090136519397330811015754292491202034145265368863492492138614644894946355537914470337493140987624018947181902760160143242330953432316628652445077852387392890003457578469324903939778794347527872675506202996624854711162717663143495404672284638311737332538115612100185102150037412547286205262340886583295679031354213392037466649340190984879159863106663672951198854382171136200413733647419870079841697204004185607983591541506706642684572912739548732191480734428633040763738605097061982657867897429215166375251263002303550098624963215900058153226260979337480429874870960904129148076886229027195019032616295136148625054003556630665667185607599500220250438869035842224943459437685243309096141927097847609630165718700552929191729504192920896815716972590025269388327865937798359549505303191441526693275892761937000827411282112867208678864663127992146288743125854300054275850691329095342224447738499262601901797309143406204723645434931042586845385008135268990143958874794575086102702479484888010903421224959120580743937433965339550570872172399038926852588381568450720064148410955722667306233210594558185366334695179889622814824676126437497307543888686613285416052868909513474906907548675275536335985751261239656961349186627490764272462218471217850940226544990921733182562868763516128469898178295854571069188697374123161890594364667019428090812268696867096229923851468071865946355621851207598474258238859779556807375304315475735275982675560756047380604430995399081101896345231965676178702430556476987759674331337692401591726429368683064791811085899519941909623934080528676400938926535480148086199441642373759373137112200573714132983075654486503921005023734510602038890151960025502554418045153093642105381527862417722527480193864704793806099414133523101311932619604396183069234361149074183060538808265980141306785726976986863130674189458851953444668997210634509171791018551823752620674058574482828141242536005961248830957743916339405091525808305791849012516874762121124336014787900795066655316331191933743968820589649057897694658505195250852045962956619138854255947069754299087109479204066739369284492357912301279277522920575133552317054633545659300014707558821545382960545056023581533499362491847165624091275542418334124435993540447167430758923017097804987108572546194126670965446241969170279694045010943472735821242389700378119577357476685649862617674726066270903163520719002169188851773687143437639628411485876186592914838504848193023221719063305542204900787979102275419423395951776109925734868805716932822835460619902306959168500325124981619861010186864401174340681585161996606172021527473212306397527534526513732197180684595530538735574940294009289472881558688127796674700555732695333588426216028359851047840114950889460653064003337317980002366269799828726081694672147495568148092507355473379239262656955557788905099139570776751687842804905107671721618631537924734235777604044499553366489882088584286539491438389242756413864995728003867564314821765750430953397464227414550705990622178029076521582067965505367798487324229067921493176199081818239651776953628296467436246430738640506630246134906110519416022791458680455896078865634014220788229374839504561077405978396094458895876578264805565835593194826851032360322549369300176886121641324966448867996007911488213634012661400428624259490979913442433981554733967476396968881179649719938226208253211611913849215392828285114278372255328858882477149110442800861648237844095151588860600686922125665477133523223672848778862062681596965300740141052871636027482242087752090020262981972070064805200313696145254106806354340778461586152637562023440698090827542582507080409064474541705885708143390686876950187096968749574067741651772133740933833915512025643451558210206087438002016993928653518786918661795101014842523913054012031597094279276828876386099669467268939538712628615234629196016817318824638020866836183825135901509937218210344243164945600579729914304469583009743082891367785613403571375180762093338747397843118740366269859994573427852828360571259465585078306476415513093741280780666839290822417335860429333653715665071299661577335463798408308454361351615614237495192122309949048063353949381176550296814321482133160768772307204783012036523862847841889917867778542495146048199702983020879067529886267353538954820281186250677879927439329501582190589218512431387566879456008276860064449608436410982370506666537602006466461771840639958989034107226076877683812412884595208167695790984037155083027782172697958275207195549156086803296896205502243416755588752791757404979823751611062623464507027046922577998521506372117365535443130635857408106626323754404061709511306110134344742907172343596315008029521726438780691441642760450513918307719374830644306587424983362953499327636276891447229294677064162242127072300192851843989279035536331354100904774309102792258469824016900948562284048974556573748047118556795984916669106913280090250897729600806579848532815197657475385370705207534313500646512193055696232000832391557871994881939432008253006984640607080419395781950972691751347518938862034202608168836601960999308294897961286961642914198587967293386803486698420531275030151521279164394897401751941147215353409826293606866918453282911660181500300949045274420602062359566699206276683153586905186945912418980597099788534242596215564126971903890305096171965977515599305773708173759853988700267990870671752143395806283808626946133647114447855375666173894679788402588092829786999643703962431637797516876267789989214179742248760442985480047819300816896022853892507045452833275035835713916396965976476326428857480419843886297206307339973117966407314043692582964795530638099898482967135218159259009191867375395139955031774466146806182086759902709837928372446703938076145280399054731257548860274363465580671689988660990997190916003782126093042970547713164604287622134682598853616261770785079282046468286278787171130634617282193960907262488349455863073155508401400546150915996459689072358486277528638754480380322522147919185344173572206717957354782563168344583921746884764744135904854955663716608239763913479408236255308920007527213730003987625612854145454665123692950543129088582139211804624213830113051921587953332575330180363191018941818536502715089909038562229614072916213697807522657901290911913805749832613034179551761873830043510486494399582896332701766339401489679029496276459346813712066113750183669046594818308247328922963969150796409600270304155795848644231899949315075273235715610798125525697331959167077117001766123548968778087821263798169568026244160843291652740936713721272632041481721837199465835751901341625354845198548311050907161894542763689489543567952060150391315511819074514829303825851180728860394932428124940585552607744062216768047921110789025852961932289353891093756880261333607823080656611573819079184744945928481769455042309396186259505114570432880789405576428424045716364519311500634897943156989337569758742083786135230985622107046136114648032533505594654982073975671112122778973485967833394215354447579204557610798664963987228325102086846101838323963930715055562529447856656041772020875897184419415178038090792943248384291381373950621426040298490032787485339190573836236535556237425883302588777236090175991378646211087276463514172655513277272254956059577848480086201260544242666500821177330545939031915228859857503643949003870626508353939039051928293320514794267915417014242854661041118767442550325448326716579955823030580248083192388069009943249636431888244680967658345452137723921924075910668124982985620493198619779065586858635050064381068517966078618962308507358996071831728433982935152395190974959317416237703791947761555904090018319538887689437513503646123072858963042051572669825764600642555676870263781446273339435195052089615294914115285749678809727044545174670372205114700476215233485996775188078846212489293982814380624888379137672388362408758417102274814393976137684767775527029068359478158520438170078298109024448085083743039023332785393428693113062693879144727215738470876069855589860436996029454836279547557159662903809651249044547699087044671251071757400157628022285501093745541270196918229505593356022513379808688074862347023046268882880821947643017174414847914047691499115737710769219273725375736763199867173139258356635942465328866837211494612018622276839235111905616279610265835106672865583299873080241769611631731376358716291519599570087460046294985020474906857936897145540693443357991942412999134796922624387263220812815717368538179209215709927506630885865477623454941243940908277400339835655000676805735494300470326637764537736286917850172164347507579009388653160239455649095435514511386067151047857804342432103466300915202282624824362161379705656502444469935561193843309389759219687131029463240466047507952293753367001603310366748765263233189481661903030828883781943693164590233584040796719877726940944361034391482881013524574443428047310446669726696273056710344461238162298574323428074162926790212093002468900551564285854756940818588244052699631082703463383619114749569373009458096871881884935621797939344165952024911956976090627877302520229435497856895110015466165112393145917862132435392097015583102756494491732812653694067219541343690926522310989964276552209474056817093813987625444181544788983268342933769885158583385521278766467515061010927355015647867907106637088812905946434808941748939895245898292163151599228616718559576166728098315394714540275196517302815713112056813565990808091858002623555206581002568758234431491834178116138356686220759969110800210595732558966217747649997815867045753260781440447472033581843164355843547551598918225879875281799334968821922485926072894867454856312912641280267479386632227649894872750755089519621625384298402893161933247389247203434251346833941189072007368225822104572715638246939677343094854452777634655233843772437137760418370094472896349829263976076429699333517615754265754443892342570387099295541363876647037561807894585094224975937152632915450903249853841372693422474281873086670163194876172603470542647567655567445023313077584728953411731809673191514917827823918928196015288655882825386403345796169905288151177708783635467599051370921851986663040526567595045489158001890023749733986878213332393274530898697203586870030731081817328337661878661428634645370776376353100464194416545250959846989641430231393542595112205292082666277365311524690451222751959033053205370003245270730197957525717569743081425915408579279147076904982184340655173304003353615542820756933467118581734780758475348084099563027757513062594245317755303076750519715223108930836960568265476966024820191563401684800276949058413711905580431258446357554169252854212605314018826261505389445747211485639280664686741253548616910095938413748024341366244695940630213842569914538959856173351946163823084775133095391441429776262259919526476352182961172076486331437032157181545879752952953352400998513355320578004126682131753163056485017390204985967628704022042163978137485444001493036929507465439393833613679194820220057559428611136712752729437113140812660386872469920695786999111094821477958757395604248842085588383534203257294868183008771460904347157156350109740301524851191160332171997423357785165796710187227935725067726285803728144066058469038834140051106086953260439973109592787685912960224357278099561344721590103061985985626935209089069853430272989937425025290733964856601794501296142679230813618561488888848614492177374175384831155687600273887644632940445682008902890617876360613538741242883864588594659083592966504794808943599619352828877204016140769310096441246783248830282928635956756261235789606855900732972596047041065603095082749505257541683021456151571288908725171728146185949853576838915179441985614176847806548758733536337345124551532571097452281702640145628672112686638304931176812814394491967552459297313811204814264540312346504029981940745136315205070089680739249639092766348858415940333897833725078060258384518042197371019262916094061905302078931351421839897023382800720048581426135895445706571717143390464647805164642278303985072099666025945565797932468204545088418546298870819026185003594904721522184332416657643752366261228384671939804719281213948973087987243313885210330910753043718083001188727949069630277837158563345651578518506733031868099102862842106436146774018041744414033821292541657005288212786125021225575690920803893042867779779396019528988216360065938091600087928403284138638419923664376296529152906535058772737980733322953138490950590740245096466954311535837448878893161724691677803318533818032577238143392845762088862940607978356586212699157839053018140575754260160734886697222088103487620838496958590465734365205821287564666377754602047175133459278759984508756295729384666586746946812043593335565837324166144038180321397907026255788575511467396658732883989162352265542998592641157868142381789115937434425715998060127625590893680031878057066209701708483293364983420906886885604471766947808078335029982374792066111665791373196843842233649295706687975941315850385321239769406173118566160032488676494807320593466173733977944079419421890778226052002632902517346135631089119625697258581915051992975733533984516165238619888396783014414662114697225076989244179455602628986769196341502444833147278494115903703766449189346374342154831637045986873375910138928071710310743619451826523016676072505010066265009263822992836731850938723954954711459918394149255441036338895455524768596638730539923525524927743706690561075556634962005790918677092736726367280902062203852469325642876351261785289090474324603749569159472210840642480624522593021941874601802311434213445596846686900681343220379988522934762063390971186881077243343595152313019049444280322767149537227807847670336055695816225921587284945328298055641287107048398332219894701580989412862495090022508392769247276293786687136581946460866322616729517718055505165203639889571307990476605956160307565071188125091279870501317270443565475153641838061448602180399272829229071064508319289908121115488814665310478286221490096381438256279740046060150363187524576671021567930345733617617956985653731268062026408898210827307467936464576315916766062684146360421946695250987857720001009949018091517900665047143745360264741821986604573012362731360276004551187527743826637629638430475754543679915247029577890606748298362753263299714858254298470834328220493589472218096323934305844675887363988775663547780945527922417271387610543367214994536770836577914310999413622534871618052974575859878861876276059307037415985910127631867039344739670238584372130933005500738671748980811847926354357003715011475040488262211962841261842025670503419860104725988263290545885429811081447526715257805282393459177226315840742651544766239640630367195495954436604020331723570775184185097086359700522792311663358307210590935335510489076445494433677357634373370231752020506213732983282609564840565711146870742814589557057577372897534266759106434778175039966380724598171187524921751778036029125021747356338332777574048242121907243672178986177107589202077365843233819245434715057069405311785825965641962438806188492548498578870223474038252390827351592031347935108588484508617311122212314911397810181598240832788997090035742614430897418191840048612110416887187903558902301361572820170693174835568495384186368639906336806777120975067999766678420304734998595921179309213313335482167836351910895139776038698951214451424088462486976720003093232308236937352711490098716213591400231615593451399069720683239183077359941365272646998884066384456806108296568728528483233853939317216044398500850018835374487051606173983458986083823454254828914967118733987578999753796469941086240612816838978487960231565093458952308436673416178961643090632468972025185822381540767893444376864771363956215489415549429707751864748922240688814763236040505065979005737686774366274746807533319851725805652337248665097369728808123718383345945116662985675616112751831755729604997607377916039240203706804833450045479081696344410457822172725806197714168823339947744648296962791435701182526206613043032264328191110029534688067651535909256423232491382738025984918469161267501248776274737698502261870204777984746102026612214812290262975954677520778337677277529263351811693112797620661066976362613020994987693552246662741940673191897486110479369116461105041309983727718098085949413304697625953698954211183418004547010323229232488258926221339975237016449286680835298785697046774885563893139625448325638525934885384599998621386229563135218895477632867230417162945041683728501435416073978222205992909060374819994903466684540902715070378559455961492276550053558363687164236426917823236745923948253050400973650915846179266628230515994300836203035648787907744213803253682064256675252856622453493150225010186235802126103547243026933010592398278136965670980895631341967690104195528523426661104600663220420423345002831048875404168547089921769071297355805484480531493482336583160332198743779690405216661750292231958525917234322774625198601025776712037634864932008946872077976699321933480505824939040451977037472157262487726237015971997787268634343045785368090672462884998485188054086636226177407211455940770125140324468538750882844722203755551460484262504401779551564960328913204061612856163610077643202921713477059300424292009585422105130912676939751983576258253704006908571221840038832770000703035855213355107266249810472385290175701662967557719642739855317412949356999406808880934364832832587804183974317744162768855421146086391593818791055711612655358148267623758398109865720731269399331166877791351538822855587225225783025811282997087094688716571946338388211490710245859851549409176698837418732558914366858379705615883360708021344917895797583300076987859614580378677498031538818854181110412714524494854602363132408198694345829610036149597079247184546459743023385113987815686879128422984727264761256736606028947548893068532748890509417466637118105637712458797877786733117434098903457586200137223798960918786103314290931416871477560997184352867470098759841599462170512909672496403485029369100597277178115174391490528446197007544918993331934126128403861861268861804600158569923748394510378286799154055722604644642872841758884822312467980122929332331785236370924957139004046278852038920477421370752096594718427550621452215438816063854148223611629004402075715271864439100489377059081469470639615272634463655847306046444942118855672412161126399453393404814750167461822668177579042829963549886379170880367737412098964036217000635883388503930838760232246999867125754297621240019988849579533793701087270929169401777916121365150550589381915000099357867236624139031224440488896845545010587302398083800441447442439565264534256224042418062574300390895614799727114365491065928108655248948464323379876726359272903479637950286979519426286637147358337285650276776367605188634494447758713100559584012765482656369113398659080768589326160262806208295526583631828389957430371538800389782739492050871698565655129646078140903374799510341877806911980324763868253149002821977358874985041198515917370061827011048535002320643993909983604401737909212189784976395698732258067109403262982967782343403568753730017198107673193797689898691058497203654578168247728865049848528374088035235447426002195650393225168623989736940956253442098385134868580389294369205193728427727444027204644470625143111541267753795256856944198035537859102740210109933429084826649637974467082085143879652970118277168815978576753703501125018626209791164237609115474006207129828741525032324468330337866103329602347336847862260770159408030820518723891993392639493598813953759585502720114222343602430338566747351938538125463156151827254398318713378008132272535578378973791444915044859647036032593858601584355073661079625987388577571134951826198472197350955583149888159550178273084304416627329349614022991305357099872298555554392749140009994721199079168924399483683999855530290424321825520276238132173204698816677141456807853127035341913051434872974540065372484041813265316714905146358426045836541302499113809302187632653179947752401408800485411482952487516051843941942615468813286131891207422026163535795105165299089778493622201442616923664902495881625531590305090051223506181813730171757982011120505505869044939301428092028152568118200106212103214789101158228809851278720754216391138106472409577788560112646668933630844990601570734998558606194321335779219353932773946638419532245395844535739014943417068216058239097542333262684262438294956898383305204377102749822197647701349212415712186084155804838359606989035771988002276736743672837151550728088574975386289439970604354747907471675130079526948745364972205976362088680280204938799655378674899058824220210991578858399139119439485540179451656597527168065097275424711724045690882868129565944757178667505853942311033007762439474088372655949494670086081716392570468178215570880333772508706272056129258947641855278782294424727775071231255010146012166313435024136879017208286874585517832462036826722774927874090095383627326308356691561811745782102186788551028242559572877609758546557301663622535008162821786298252671713261468080032922109273991847091698891812373649677182704449950503850584490513436508301552667296288762969263502011085195819846612463776223016713066146483955761010704968687576963814944659050844670646387799068870037022155822220713773262215450264647106189754368663240932082751231365255938488043892294960698446098492721244317642796736303483332241935626260641054917654683925100122216918210824164652443893562651611552807082375674895229308065073475895994626466754248841797707650515796217048511831323194819717765527635346954095746321856915667970821669995105433666831830021862200747333553650624063518704040842980275613600053025930342186169169021133255542424008553973676929731548740288809493896707354942008474547390974009353744005269497339051043485373065702716521353975561826154918125707869749282014393436283342760739624007831430904084253201194311716186122675325081064369936348195555928760752214131830664704247119107575363263186666404241264631841446563505045063500201874336550282534957354223917616358941247398888259073081873204703360184597580275438859975011872953409109187500162547541093188075356851197810192246494257846721175834369943342823696071090872156436363183921517695584325405709116813890282156859969011203755929143878707941536650789066826699799124341249270466121454043144474142159189421658199324258180338995883003965996802521680669443194430522523055265108737272346563392126369172579952640139627048663049120388342326942324490021224227738579597509460513098051006908998277382376459908765120840372993452035086511741628835878721906662747629278566877757857570594555519552572759777660548066156907053252619492886699785798603980855464875634162020140164965680873706454178006374480438534025581435888225699784405893912927611561521734943562521618586585264199417120574743898478273757163383826521992275755186226485397186119833305574744819471596744650347268792372422439768526449778365146487049644651590142896476507160599490182186363508410027595735724686738504775618355664847226917512733556692080245110562167570063936056318397050659758284827468552595688150408607911317029321581924965758987777909151317634377989687900806203811954244819481222950016760698477035300757844927541625593383572070326681485111857157691980964445746238692392072325288029316619791836174719056545684685886712207885192188855903882466277129379986227929580843042091942838324017191388160667800996148934379349438451611723028593886125545916640979325278721301181221709450162717455626095265540533865967106223251705493058743126776130716349403955104600627603556263210222677289084083538240685215366217896984810479947998749843839634819558775437047101085917001290231889340573563400135847538706036037830756288335238280971819260954247509798423504796683789538643608303854593981633007000736788311068930965017689713715181148128017314246424277787374325315588334215717272230718352522265585737714170616970719153393958140623989119380242549886793950183629855567184583919905394200369642562698142645805691866068059378037299043407646387777673668842741656805437843997421058142849389535707962862260321610449202409214725610466883081038589868710536770959283926962347817613855448546631959788591898379544454617245252723220288288138270176417660672444988793626910532979730057810157336634556982357289853683538185677784416981008263612579315573463294798027337101092008614003687783874110356469478430082560223173642182929529704916198040144366087467181503536042841807412758123500045213317397108964850327754694255138153173594295803313158963651973829367646600445969673887113459544624420252789367577213002699687250639016772645775123280219450418980920031361145598783609532628998643432863641004664229817870015074865679720596239028185360727771369959869589394956052530767031183799448868734831683282021881075584622661515150860023440575005153973416406786029514824866322935663623299341434593328231967654455824866512679576634162701566254675296231271764926584732119622381799409295182310686340397414888300711260388184632067027073226082255702708643969022305564049979005212559794297066750254616237901435137369967472328234772553023522922015569871824291146305878972408462759596158509199498610759972470928327759928818356696764778485606167230344390501708894096766664644699815101454757062862289577634661373736617507123258477821800549980211793890964241699316868602657496848612247162244585035732422411255776200797661235212812186507092485372407964823875549620423743049210046872433508598827205979906496761218678917641558404306581633161686191214016184323383141469362568393465822012937252284969993087419606227355748213977957732525475439906923212085934394195255758103954791542776480300957339708042958890266442264633239553536412568780109266791935872835101602883802731689219441794130275440271697762363100258121807726661978820562700262549612332886776185042109558529877795263356941135050090717632818996160241695022544675217244537153336214128107129164309384242312131604925379034228697614896601537637510570056857931816016148643559512890679202685541524347763627306730432497320036105346501250667199374425341998680298693375232537101953465813721703966760254973815225300813510278735936472841982816759396463786180490822924955467279979357392639267236961038235208678184149058783879479661741272506099994171928203167840029697181677338140591430763192107897633966770531235329632518832375325270985092596617348012670077298718147764473039778611912121947380197890472733055881028629917254884875884772062680428471610627511047940626221655548786337293507802844314926337872440929299608348459795847778235768181639863188592564699509241333663839835568794973130013827556467080285778018512263624286168596393035451727242794731103165192918603394563013015347471151664665791566029408546128011309137568825294733110612725655592340293040479830711323021095747469405343993052086762277982372040783786462119142754747508135139649703540047388762996310675743403718933450619398011074491981215544878145996794314024897071066829736414140117514664242054505917079015311520807073552339483842650152633119080482270109199353601004229165086082926510607818295553452275441192544989196028787436116776622128241274470772311816216211899862623192489331133250961170244828922378638136537837528725790985140748982810323859387731190026320373267809271338581355845464198196176802757673862641449021463980139189156799792464302006140603538040061390140632010352529785335183760927917682971135907966690410071469074034268006111966219452997208575972824621282127676647193303927853868890444458471594087047712994836623143624038722417000052826120769882976477050904258964625038102266518488222896060057175259522056186867332637244509114271714129822259385436425589849917399172538331352604253963330954399388997660895904067627086346859346536525042514030839600322837083380731081644217257314239634726600140658579021246506818197111004584473652071661137819440034349141709189233482775666861982149659583146517478037671395277545293045543772773603633307063328313952186881632289994926356588400066826855767874072600030371505674672189490107161367443409617785548640452307041944066724085905145200069315538333139744317524554295049292287997816132124976787060769948008575352025908915429884897457079608293110599066353802973313072145640466014502508326109558082293392026955546246134638514879074316687871026984813595460316671764928163008942553920980221652466497171846261441359006098840088465946842462393726750525069896532976719376776777958616317567639290539836572643162909373191326907428793583599845494374149499104558319529511218040502452312795804560245223180584506913625113990632268479690818679180109596790208410732263297061178093814585277713907249142599298906542650571870266675011396411425259815131622495650792080115136978982152193274991939185326841282899690932992528409319109438721066040756787596570722118199655447490659430570672738046519644742123941481717769241370712042314439393039105009961489168725501464474344599932019728717665807846649707501886541410449287176929505869124176779548594957923867976620430803732329342463401300002882775297377732947491194922438923499561731706482733140926120227401843882049115756286847915252133732494732041182532088351584183740211476626503857150180850285900838358561366885271894387854257518067512311674255382472921897994950980691424719411999790453113067353116794663742712921258790592651520645017991964769512156641246145443445518080575240008631617255509248255429861326151218992805145667005382714842580393075421305804938518855730285625994122805169725414054453440722809575243853107214199268787762607383168270988377579926461370687724917806821858450156049828444136033123667348997670888015253519700907955247178257923349479103262788288677793069487224668673980278414988923477632829356138081383757553521826923069693299209160037901216458588624604235682218948513212403575556637197027635133323505166747110161951873262535490727912651455055129961125132046904467112704861958030397050436322866097114232358259636090465573217575608735847126038035096861754929796030609036715175835266582113306357164543617033925174340369791219853073872598184877563717959417237962908716736130274517529352644137163174579519193197879964270395619805240333181947930935131754368052865976088766479292011070268624818320454189482848559268621834034647922711064343134864009423365155178539461551816763914026145098253198032990916030553659214323124745336821204551761620412694545656522514117948999663623910075086755267901175066564069471476030454029046667861133928891567161648931892849801527420185615030038151088434670679617865503689611352782348806431133931528926504840866595818729710602177885371984984498241471348322059763422744977527700449203964827840408135420703647709027988548369260593377539383058792997379664092641390308705886397500144454077503567282224867077289584556230782758776081979050886676520876669449323695588892075509080681031967806340766388558501977171282872239178142621969297582866947461496424770009792450313971044146553211832669465988290446715867443297729947376323149219323800021201538807926277466415849739540046116155057761386353641775793295444473723129149383076945160164419606574575035330354033264015634730670058783377604180323981523035672762844054901054146377750769455489769186806484890625589736930162658096659205585534869896091969004708090316134964503202484118496594525042858324167698707630187240200551661303356434482141810284321307414336988976180538889505077696762251253247153866826066141011317458325048142093300369131372928401361657313462375773511859618183287798037489642637791640406153420615415472498022430629969488782633556882632402366277178327306651177241698606200459250460585252490862700292233684686932455105783295915444349794303422768028979388391317310892307613768876147006669564501579866033970591674841227696970900371953605734934321352889809526062498113719292520213187782162666942884991586261124170700928779612132981050423660071094642578769827936842472822698999290067709287210549263273919662140997986658562583216452531233923448251321705903185868338272199312859493949491109606501189419830066017737492487150562508591449192033100415730355828283221951746356676979791648474850368748287919251986768751112332010834143205320481834475342609828509299746152557437917409166018434877136661391218016649611446051948367198439829301312628129650359175288925622117445743097506798856558901856175997688926970228423787595058265205167927205830508233511225379090298079558096069223452741603938782812131383094859082698006382607525371651996550586744678311440205813327135094241496698747141620399511075657050228576734821179041435929469585186478333100789921026462918400824679335595409173586226393479498873289545174882091633462894632696585869412925988729861543553710127739526503729666431013420632952028928421414849170599442042157711855730590921914259878175431617367084725855382167923175129283622059608896227818955397008713774890074589926508430945454441906343662834674260049038127100937638245272591448025786890353331113893315164367100579894786954012621136511889595858364187058496428790501638853111610620289458291365320320358593868516667174437606126023488582823954003254597146615490404300196386300404734512175141084369274289718788269940398774769536571116401810143511196852080977296782188123385677708990047917028816262347500680038674496099400682138972237736309770792084208482058399076807906049614622325281598700890722047723903276987995871132511489960723976421223211917766720230182005879399348992217139873540374620651532531742604079080487940531119145133130146479047052974353901325298501065678733693256078495847113630703711860862230513517112482025986611790548787480538752134656793216134365044731010020587015594514912293414554663606757922384509268957391556975160288344149519234100584141346940380864924443763915068076768543788157353781164697042699873810004030249937317630524791174343372112558451276829499534553496861240564681036968258314927462968472929774643513050352829202722846830118072652875946258024480658060040741816437161320100528446814317877408302013397725776759547344297235102083793325688549315877198062189144062803305992299176073335988795720971385646882516163539371323538389042998452566078779767507364079180229653366981250230943169366884350783629471576853348601891625245151709655871879447109877303740800638370846232850502677962386817740315651148311841502939791204064277694930309411580710690196992085856742286340344894605669382782146502219565320485576854964750451727785430483388466474556422114810216615803238741924351060716836275723325743115072107765401344728513678379708696020745592999075517999582951271743619936515515846407676601455927237482461964078282160500857877404449425963043838521965799436934533589290112659075386795066733084629790931737720864624541170075672652714539870375681652387080031636459972534800898941673679914313629034245770270486017136546243750179156933731498092253369542579447496388223224798847621702267893903814118953174447540694612999583578603426905210786242868533169964981866783275040602154492373346116037291184958321191595943200366560885885257838985878727357505206219205041071967472492151753750670101100969711448725501581289996880018305002308130513269402900661654297573537863123191120071032643400049604295890603613905514900237885435304113351146138155828585743403678020252786851662789305600667317783123086078977814218431462980309136319575215948144555307603981388294489947918704261922355986724676833698564756594531466631425938738705817198297180136047936689067190439829146987991510983738164442190709865412705075617088332602029751941977052846088097796985583487564175572522371415758503311430541043179996884176094910313297863602824389909892875430785995349920374595423352881029329710843345533731263085541092947995189699137426597187434491238483601916811839597390932101177441614336509484608941977998724772179041113284688521047306685347061171089924288097990004630722853315220539188447668334880723756350196188175761886628224958688322159094497101934544597230258478234021786485124685837543564277868287660728475369260955698022001312516825360361198000768515432441970948129297419936611246235711168182048553034344626056278504264528777479530393836804878989405787513878891861076452971743535386821429747162644240233882643919785595019483799369400927311386616710610384902454557526557732864847439153870687242800204676446602503685394719486588679226856855070290699168191605249042290095677660761085728191103392397770674784841860587341814514095145692156615384621663413968764558093150591515417280374143612796039393257165900107068491519905843488610202170322596108425288390173812729938883413990047164414631018072354537282879253822331154324004136248906224117503959335188419551188657273461677404843326668610050562289796610424495702672836320535431176008337866721439440644050519848053921753854829822614009551338817563374841441422896369906262265148012324207397772883245258604015381933837574679811042551813504317355287289855381028583800101871800159649246939563847497755449237616672435013370267711993338708161850052460231274833453371527149510839847624740841168414420737004379453356530813212463057575266427422927767619402263061034781065311896228349480109761230273015615254291243225268614533929995591776411924405086704470832720040331977521050862562877614431606347319291760195300990008431949659199051655433860751497229276306646843788541586970395815930760199651730063664993916061921221693146893720612493266993960598811535545576177268055598723209228967095222287150391233954423349008711225987565868887668905821873795694300309514213136287537112569502600630013399562533505503528386039348935351223374849408229654752314105966239744786617329579559406122683750182242335187495113649816485025167389889010110666473929798924195967524506093740639853174488579965754539193682980313112611951117781319552746642839927182441645950574990020510482184840292051401511114110217132769133604673443574097990546790972269826421509139238843851760244673905881452725716937858070028879353042741680988219512143013467539570762629065850061529807056163628692407214507419954831345246152404445722501918772157806166417323592762456046508236805321629187514934857361157441908298624635013297341657293314738086670345991652761472699265835151986186382640137663336286206540132474271674338568394031076696463255532407755345190284894248407400160329985568861293378402433702721745603686973297102635007957726638308913585694877686203176683654376850440087350387033383043384945771797882181036988837993232477906522986803372327277899138811640355234428953065283326655997247930524244144858084520937216451811854098117064391402545583436854422447836146654030334248556701701794808000968939136887887392135159597266333680245093418429409491532774138141007763053960320793791890804470819815246946809267054968391200823665951102451311850509283212760551721002263012917738642996121037387899160328946850169950077980339447281096816740655150410201100198714521048186296460641564214477100390965628936806199721563923502356773176658410724673237057125999757778284442549902170118154437096869894597421528534670805353202783030515978659629768634455172298301694707274359893391640803384542154875935574797813526138554494675978503177912427660122168056657101416109426034320578167355064425797569787020815659412056987441547780693366769453623709176604582176122255925357123093421553766420276268620970155666365434665198460486558615859750892399658577947175493131814506005280813821132303434333990381164605280474609359870240165847797088657099882306613341088112433848093305344090579749953557862706237297237539800311252525394835216787551030858645398519862367383918654048411384121864014196261928633109822107293208965716147280926912626572605325152883286921365294561245331012898540971021152365144818751577000176679444130102703348863485360433399609012307924261487092636513276218345046554092224853631220114984783063016777456160162537578939796770110694246370725434825599500592138562318326158265037570193570133247044670600212957793613312793529661607698389330616723709295699945198844617045171486268482990434270735453419594442598342980694500794147107451911279082353356327724002730975747223632845931634423641196289190166948730389967929343341613516089954134033611718523750557783882565470745628163985851969697006848042933539324037667521537148139262168059259633179670313172404362088389183386325117525298781539610440753124751188364390057271307157220583557771022010449482744950659957349039082824166991727236149288688085109590064141494142809012592827918873747143152686771008084673966894723408669062271452947656531919587254696723376362565691686322898594041158054212193941428111191477869209943586427872564741678286273674556255547010165399850976354379241920200064936468035780678458051635932228730410063501104664448492846100785958516894580794772883655494594533817835103173560590678345778988119825722743238922931477681728552825662203343154116589818789643474967967856384809799267129452955579783208650658288207227754737366105870049594102172337209312915973240400317833995005278509635938396520407240286042297653522299012715921062984782682592799256051117210782212247784523249208032932979802634395563048229765785187928743510667638748055684506414469616847049568038004087671098362818951187041928635211138643712796768738176900904790714722982747432718872365995783521609379179510550419748872915006985986499942623989628733698877473384086938591881461400671321781575269076854344287193004048768522284672323469646759303128772884364261727199874790150497803647939197140829395681288869944057574157904538679050832233877513291024455625483762083767174348106516288501932547519912913298308342376986563883760712347347046545444608308598265669436393350867409256475376550596464346258765052243948582341133755805719900778571491767496313904009802572440750029024343353723280049344347566779362550565381993548096462151990109401324343720840494962419502122207545200411354695885171558316845735019449402224018397904744310255002702261507535252634275605521203601324350561775451881331815591603149292887933385448422863741906398724975788598946293124319718379703116228926526083541855391446760943093758370966018662708288919287541605537545945320611448301542978787659720065028964306084564069698510323832981312461453942436648281912866194707864815710869607285027069860608517965876120169583781205657815994314672015151023961169391662935646594984359864363667134798901727683046352298574841287389106812153891133790051457177871785287430799029461137886138623209740021698152768911897685107689605710214306356445472334131540769235194411418678147034476651903883042488715463219326193987678047067754736182995366711403695707731161441022450082799468053298253305571448043003568546518291943280385880886225957690273282830045426790865912635077615309693164043059002035991429347396995380598140854545134344335696092661280346860232230017397797204275942400248035123943026679273205306025981995624239915780091027667781720592187514822823260646674095456195192999455966857981539347358798926099103236184770030588813530598317572899781964524569375696590830780334943037105190513855731365453060911813348554980305900290255954451235942745957144805852380320614045672264708859656193514531663137223295491706423618043286092672054638510537503682217072713176556185715913924021874146589537724678346421980915677942850529898188996140909466672462535455837953912932127906766974647646314077844583897491828474205154434964131204331537386736406893962791200016860430239493355725472247042539886343189921522959586478370552239230899514389418195538021951257180539490362469994847281039712187577539533464358854708953112166747590527353145145297135670012257956312521054195959750471902854855381327200648835811797185039522906858953215743254756575516619111808012330094766021622412988390561407501400186409164889762595860136543346713090520690490806852315821616200191768396148435052546716238829858486489567634482582525132753295919958868139530830083486537696954120451162786659377303780890060251505725658627767900746132366654594646809011273459550057787691757883333114187012948143560147819314198665299079925838566672656396514816123678450150906126298200038592056444335477753370448398684966975234929295597074060186549769458839806225005367566276805371213807895427753110591974488433144613217567192552568349016708938907038919492586571839277465680901407691254534196136439574582386161373758710902773771334179541805401965869102095370264479101894007448290603547222544633658988004047162550524109564290648930657476230837445577992884168630315112476174616913692424468560576420920302341487146485372930600973544750090065731493348500690874672166101052769482930251118599900186618165077100822794451484170413357165810524918140013844299523332620889237330019442855973515443644718874903808620602747425517914531707957802931318310488022180119725390390509512114524294721018316025865138433514447033619606364180944488842044207334148151900021223573073449520501405075404608422423705787845090302951996313316147957566318042679935804383777423716559382533472129157186221097563072179102324447939944152575141608247125830898902959899609501118184996377539822075835548429198713790322193028603199479923684130848155575472229206862916867746560392499129725218161195226629365770358049003099274613419619444227410415712345971224836708157351060702652108106368066019569917461105261152764226017837330498774055474849573265519409381022967135065039170355812704698223794718553564859695220866137187861540046828972683912802259678532621641970451305694887176101658909301190403245936356122863253155542110957084036797414659136497003242898010646951792349035573393868580378365885781686214107217608931765521047958980955117295029658369112586790774663425369275601705428891393585517037962378353103715677506378620553081523991738859753088718630342514914115602271926271128576466006547430451246192741122513121749525823754896600579419785782619202869287910960880977421386842406365199687314411116828552922447003401295192597544330189813627012038484136767485015570406888980063514892724822707509041487754459091885020764623370061737090451498299293172566848555888701945588938363046733254117571819201348003892977648134247951748090848450793113404326310036001803112942804806596360641342157748723296779785652821422437852770308335372452475071840495243097686167183935480637689523961913313024132995540468555887039494872193385578485734982915299538969401308250294137134614023288876417180756623555842619976089504147637543530608614992203784332057762392534487640456388393512161402789287611237662105246834348668634692185616758078085497524901608935316473761815965219950488572851468090718618257694666570157147549786287705132937585782063996268978972417088942456552414997994266729130586659930703062969592773816291688565062727783427648704922287963375315455516795456772673533626750864462756777729067653290846744553346026183121575804918848452651640381860293419908864396740259684472411778091701847104200491489225754595687078964229383863183567741982068834683004735923340677606866243698708067499527254013048272125579928586771867745803616024142751993703686532654916941506164811118734419256474880323868528878838499123692944387408792223632263313118884286712194529421796632397631414896274277450006674194858384395312504921949551517940362792278343103944884887733979351073159050369297916188708661821436950679999521139819872364611377989065510422153638205416240899668258571936744479595209008405715512343287322944899354767238097894525856765759146029866771679666543926091405805040633766865476121617365210126993794373447219979936475861923250691396174048301275953265854372306262794139980656134462790713792051277087330063702669742904679889987976919458069356275766415769559266366425827722560723214998161923254071765880804681252357377325668946079714946892060053405257637927491576572691147202221140246970672276786728220559287848245366894549672681092473370490221345495742145653148155434138961662897827998318801482227356079761097651646849182554450642059294754955103165719147549284717437843366126784120989206533787199661091665281891881438984169830289008178156275143269851684958066698474714827737804938691032798900934344133218690311323259130719055641952906015789787291797100067512081654017675057425014258233079367709284377543390736655235022337953936568097347910088931147770386194288740383852392199734705406656705769744184974595031002679036741511753048797006253703083512959996083669520150675119546879443413852847027282822246007241142028956612345035661705061476762302797252291997126734162765426928416457581006904652806152385934146769102585762636589014925228800788931475969109831686307529115011503243062044069647776250286275633424085554988301590892270155190930601844343113533940500558033789337273963139810448431136505476801716428476944348279951936323182169874374565304841947571586569539874606919930785075638724896769331466229824244226699420912344334701053775829525536810545458046984244021725970506363112786269667518345220454425548948559637248807327998446478679750003316413591002854037202244201617335083130950426664302808845915533092336129360861122222985996762024871605282468108347256433392073441060870738646663519799427928796581766590583477136780306692658513141246252271650995575695050605633087771589851922247191812669489453258115786981568168030808110840224040484750023864329011362188480672761635302934989880934009031413104942816561348411752453797395637834304998274804505620199172935068608628017673800543293486814092233682860328180638979684037991286330475779654741380296536400560907553111158646512555729983883091680295331295628953848925588417508286941994978129151576698573667734236524150348810437741598579773654361806048826581004059738856695008532337824392535706120066275876027337659949016511752293474311919322247704904010186148347013881646992945773614216932922350068972454647499619497337146032628231697120739497060936425806880934003821982115622312675064893635182716581040931229652160310799263260561349452315346286921742619936735466284733684898816395607796565380346083957591128680578605296273673678334601769669661948479988056848202279833440197974346371324387654585380332960576789614270577523869392164540754580345525828791613072751631110458973572166927406695426076101692731118169850473670481770305191337835348542697332644005715338394979723300315367479738011284354581014847584444482859601467163047777050066476621571404777899151274868370417567178975035415957091783912802380107563618958091671595194041331597551672599191171948441564506486287699831010527297137863863037202566954575582183152898817189709620697807746312973476795123354266388771306045179546785131781329379288455800097417372041051441340459099267038701259903585931555051875660038697297700099337756218331084275277275878721222806149453678601897690661542522217432728534794764261196425724847219378853118533336957683668067229670784687170035362327830151274186676828304048010094450512287438467085060880886568034174376945787887405038631410406704675530860232761073847829515627319630604882130237849115620071386956934571471080374857535655876832487525154205240506352076951694999216789823448455164044965009249407897752564638712350004675986035008059090988523534143227619471398987409139288579214552249280448446325120776309522849812865037348959925550350017034926165236278071099951773647733144054580054469986804340869107057345961652149148307760643084130925506140780396268352985817058042149310701958079550961833939051363307953727100926233914216420851807388141389261237328152926436283924538992482462178619281235315347166453277804964968234561222113933061554367085253115447050586563116984608155658718700874494107579427513504725578933495797882560827998470600840734867104920349886545694099522382941939997352720909178829229984463795142698662342425178418131829658732913234057843930405158740735498442430045116376070355281879173668623284261426005481439811667517348047516386341693916142223690350348764152861423173803600115449224737333349955185992699082483221480368242774449727821747774517396411012603216752836803932181150245768928521438312684015205075648091331658887299129501153880012764269212774113186025659967678685696306471177254333731481834477893138479581199229140547569755789151970864980521582422531603755878108512021633108298761580888980991353281387763841993834108258842139341370658203487676540980731852183340522034412139425710709895468864624711287927157846269117061358297747744954614922777359536941329395222079983059182505267529404138456935899696090144939311224400666209052075094933744185237873997732544800663895238059277946624145085588260454962079519985655182802905604815234630238539951516524691869249772093509593128706776800065449392835911919923049358456842211811960046342998953149863675432896910662587876444866989279508460874037500164028146164304325436826404153489559084948268164048170532643392339280985060617460372515155277935088942068340225113234635130848476392425783021984438181309600959918738925624055553857495261309724892999265730563356772436001515064173951020682301958416672650674879313986592628193601350902118097248294007060350033750689452416629756588721816837172862340839946732888960999134668796300133512030598770785161757530667779135666227378377036413911483278873861974985625503796374133770894261499632283893630659092284136639426091991054883099607596749767397908462248564488146913310859181768651051670224024887892958973035136216817049692817716344531555743629631591100646161316090960027602321514791388968029815568604025339132773437887163156778528794552846367326529452341321250173523170658394770946886680039447403086224199767030067163828989173454319842370880748006632115874232052838289492272827907998554240717933522871405173500674056287585650610239588635190896412194558431047939623488967986804418301877926318499338798468463934854464403740789864228282846270022344001025412048138932463558576716601495846901855103536156302795759535922544563727818533865303278384058560334404741075527078232010401739715035396388755315117604053088665638305967504420262551282559222763093147790775727440134378447444869060164964810653820090910707204266047455316536295593646738776199877685006961560306714422573709658232181615761597026901880630015763717962670886125828286548578687862931539434698532935779658738300363596485658450866693218852282804338437292779971795937565723665988249243998158056644335852700036372596685183074830320317590848609380599751654891698045290099810991652320019161951648874638142831740825433832276444328003970445434671052417163359701947242514022348220950688868117175337137832378505169967868939598882422190720028327962926414343175194668276450109451824292361733343718891305481426772873005547276196201908335235302148317584717248441205803711318271026009338096879247172814454893351592848690167198313558780429714025106623115362003013474402788824995108480186093630310299168740717438173082365334579621540271847124409206312511015408256721905130278447966951791013039523569662345109153643553110680543865151634838158100633835426500027904193910938666000856455579965802996569082121620255691947656697320146302007461785949975516420755308309427889029190413369835890464132906730767199079655658615129881248216097577309517375173974669819178999110092200981115145364873886571911050626510427730281525067152463268294321608012688127406890319268519459226576314095230577258652651388856088650834463565754113392291002594525449588363542538789405642059764863693717285526194148956407712176233702147992496531608499202548146103063361695474178920736752916565469343222056322134791568431267132485177035274290733107782694941337551493857607004248945831211928979218630990078559260564856109186181311166951905575635961834216427637018002928129739226127747597990473443174590998867766950295578971350756907992034739402654812461257078723383860954583727379922040304735312272716515520202392978458591297189784381452286469147150656130833434377745299064774412019818930588612564597919603953435986165065326726562763331615809233714986392155688469963518651408990810576080484792231226847521256205370507297060519278038652986958950800175923111178866213562338025503949653116827736670361263393598945052365032345912672640590975970770413674781652304444899819549942323247834977226031933387203285992370864485044223866518230115614313802256129837547449993832185713232924849402469846077981216334278528684921221079683233923849359104423710612749956550154972615439491586532079888350881125762058899162786726575960593268857760210510089560419442467241328332398760962676248520249057615057656521137384863914589816591178719671781015952551764829971300093891562160875515995067088258114814961965807525546567742177601512593138329042791146345113312462261449304148398248572781629806061907837109432329105077354500176725935859229326585146035622029034037420758443880357813811467538366766666932326865831751112484115899046396643235843299782152347821060193093419184470365728272310038602725013545001510911793281981899123083918570814815041794300694336212299547535487228481623165153566097895567912112926004959780178572627991004975081464452246735013605544833516107453365867821378051455617595892379072907064711766667999852413150438413761359954997037741503262747915638933194785601226909964965380317053249092809670380682277363937963828899060053130714486901434351795489688966705022966369253030612383259775228083371957987693025134652091555755643529036502075713548865930955893301076137845216934660396348840962293294257614757417043213288218956081790275503037684669878256320493297382499657737268745768661249951360464252071781598106352755904244119356803630012916546221731900551081459986195106774916532574687680747447297410125015313706807011094730329548854870282465346612440188040680204636734991873796254996755155311040910745360239177994650434356349996152259550520578113993753805113474928895177567226341328656213061977914993308619756462119222197373814122468059776511752464331374473955993236228645606032312116265015889442516329191546805710112443348691441795550017063713312271403624646942276883096164982758519233914982556552929488383115313645720970022860691176831701158668174760160694282156630715188936984321645615119837782343861328135921599930506631482635893678041889631126685079143779328545986616967534621383677297954851165574858170161938488639279615121405986290917319714606402294381879669566869737785780718192224008696368140146846221150413452110147589155406083501466395375121908551858194601917244893812753808149462264692311930563865103575064317475390213897067426485911219860918759533781080814061781276652220238347902575169827189903299654637186090971322561956546766850508002407047051744582653079210908149384728298184196201842979961410335521250451652321353338361601103821215756564251424598451039545557448396585300046109116858239547807225671003534475210425994586430151938658106374620499185751254905560630942737070141648351689576200454679649918170620887795931686900580239012254497663915653423617318299947756588795343373669267426114176182306731608535529102579271734992153444323382359355980952084449498909060679887155592915980009082120949326026176702853385275424032595626393124506348874768510981177735133235773315680470607027286786495843470508279954669123094780660692271841354762392805695546357810343263636516604349303280810181942311053496034976376921806762306505387652352292611055675698922636335353148413996684616125473743069899363006303494963046803496247242254280768597425452230990985125195568795228549256441506055154706879851051699447316539126020387491544317534696423500780313069370967205903609466010159591434955619925103075155794941651389342652275672537088958454495380605807415883611004218458721502075866066015720407372242851035547934254141413321348975081143904782011349611792318697643627089488088788252721709084384872830684973062318208014273975544395615320749587894753989340443543962110817067288485271331241058218899621391185302988784752792163061301479034661325955426743020447267731240136003994220005955607274689537979911941012141251524842135077059960452931663316202690097117368723609288372169622497444593370690671298944386417692535720995649829213679280486584824128408191527730407923157874149220586577826384375376410444282243942019425924444387628720278093068929994545917071671651758498730878793215852383667428186694524073019415800946319028025227775969679613315902690481652812471928151439043879668385525491620551764733639411527423842821377762068453673149422239056412249894915174995107626791932665305715915613814548161693011429656598829089078947473674712569549987606597815309808957452881603904174264785838402194587067306779068261969392850753517200331289737269506266252036314256336979572517467452300152586049010828137036166059335120840520183953735365221292038281910378448168646439993850051316981881543835015213912653308485669709986774715210394031015863428000085126560238359332342586440854973402834046215366275540608872669663730407482999994896500726054149952776230673571864391253744189626266233594167089661880098975270847811397917931851627534272416470839438711833718236400045892463919901360918121709543702782804316767467665160761299042099540848995164296728223379585525219729317901987481050168782346887104994853750277199229692814084961362844775751311115681372710217980712159414414637481404237221945661814358560163836429966652391139164846800108721355245324782483495168568729567270573620386447525034676935707731699427363984662962990951856135734449993223206752662448090801508191921271591434515322480591629102919721571647477516035187145432905045370830637538894258040134701921821778047606210082974775410389162407811530833861186997573907945490390815439728071960623783172792692334845352132934427543795242376828162277151278860309823702224963574954883543185712681803784628774444316602113242118503767887929054907811440683405021203879028928112216925816036918612799041232954044545398836268437369350221371511776617741863819858195097307370992922201088208514294848012240185840612562160604420372052016502646395952275272888620454887833485342455810069712705537456011839344159715338247907494169701962753658351252856094383558758870295813840147938099539708686002847052419575205986105548368166450156160004366018254201294522042976040162845355441835720989606973740194972365148634443767608456045672265035448045912031475760255397905732961195337461626840204063190078008360403604797700396393158611402434057711147438477210898617083753907651529142342241196804988323365202725336881425681351063097495395370573181175957529788429934258211151387019005684102372553670012594541047640508401619000501502499389436452606997471402148442544151367455222098240876352332735031856866672596176601141432196601755300645207653112381926874343750285049612503493761221470886312856116720078242817520701215441583246995237057019305809134783343479572900457215183441438420947092009798993629354432074842554309746311840807697845239383973024967908922479287507879945814922827091379569055916718165938953578133007948137479214312019195669762371498401073052157848380939187052659844137875606942056611397934251866161866563140685281782752767848855777088293661516982897258592894163175877153043022256282111817663022832941080376605705416563991258106307837902190953248415850684472666680740284665630538808265820801646788650073463645839324835887830566652160127093211542893648284348436734032534258629814465572966632898742992722257165390982170973984324639694106023485464274587433817863746181014345277967745792381418780372845706242370530640286415860495820980356116970557823392189889338615266142669130273366256186137461965269732878200873968902700942608491174211600751816214982319792270256081573997835420185404666194592357433828783560864330600373945427954520699062215080945847998775314293680890579548226124922657184912668261452861229108458069243896435044421161898835329737386094051962608641779426116184075816923943402853787168940003492863891282512114576991143144422312469594212507025228632096248102574583095945497644814920842306858198923826853838404458125192604932249698175107846837432971022334086149422084468586468204978228416403778398642864636594518308751021085649649733336897317565864586190778686417437898789103575088688415797572260237770727312307315689785052304384499961915071418973411067919349618628895404984548763661679191624283379410484587069118857856452170809314903299859736648477337949326836720580759008877767842556098759439894211738017930349935499015536049743661428613830468319994161949090427601268262185661334568056285532298149327184088973710228491035142351061442533186971037755273952247942711900200947332588600977506649519162316265408470847342276637970390027723792102812037018659242840816884290905379813847908191568175329151563585226706383794826369580184486494211801403921848917011367634394726240375089073131160747923354627833462927971336232785092651854200093238007256154317632307970197788664047984715789181421916892759252399777665507982353563209258749305015711956031723668766217767781781896923059768792030765188803255385726146093228644072809306679837815597315984360296933592230797894715301700956804109848136860858673232813902234049244705695009460350482981643696642196564442516670967946729884538730342530479535309963074444313234959801175303788526322109533343563340543164312528356364647977679149134008483120574369099620053964622239442067800477608293936618297972977703214320386419602157158943155436532265751739108006698683772079386503785825676164862722018824849429243053882352218617499339400999450531424357251415225609540300378778558482164787687855608821000686867390179889101441270187415253585091220716929631988268686099665894355717220476886648205365379851568939923264011098023938961211579881959624520233485484185776560452926683672757043751958500441079910693919849352525531569294691437147849816764333777641075885852008745185918234292990217252053919056445151663791049207182164774825633590837037721102327742899699758549585184275100027163535982292979624189623995562220583581186715274603543804899180339844397359290746879512863022411331491434404937478804876244588215027881623187191972615547686182695331484158085126805479539065434718192137055782979852047467261207897293678198695310764764645338456134217910442949412422059255718398469891635234143235973583474869394730175117449020761522730266286972341887278789310946165633338526241472990146715323250902567398843584497163489797125195233184771789264936864342233486765115850986585745303056830046728464632229586419387099106263303494704681426027060083580372154624136235171823819079200925697830954528360906776130018557569944701477693472301763842516621775861380614029268318288707962679834541911800471865899284423442133803654898373928041548717584152054598677713326349895817369992647507404253301037159396578074331980421832810684524902946344485826756477572203519569332094342177663895270926521070135088032714256887788898231918544518022123803470968028702528836566237898901077293842748174155160069359326284450389434353453394866410188584343786301125404100225183448207946066547278603708604653829131222086248512319415434224404971022507176352194280567514025805736438336636867231647746991092718820934591980284140468709052935399582640694099879493867484846886856892831762277374335497386282855790719823313952659885826758625300076300795692986659671639836193593350684136766619578043102910642206442566786163196923919603319536717888496561003356527485374524156606673479656630952943303492541800388472903625652577779977261220228658939679470408495953381016547361378475762206220953984941241098697515690934233557691602507981689032093857972041731446124053172070897839240336926367933381693495433886546602808626261997023355645742391802039029577153832743630349828826239300616193659110482971820600895379011642310055556253293428522610825530651256421255924656522573035729237432630687860785351039622599403798718591265485023262143709180251708194683254280264200637011700060367279441992189145529411576738356314644884053867867674838890686092905959648352702651503680874993453768860353175804603621957192332160184321420743570353339857546029100875516761637713520806272116077369001792124066816120739337532529500867406079799161543525896351965124259309144278149001670582554904087972741325489084157352071307428872714478665289264392507917202555821144552050278836442858074551875866069485642798252074861508636405945033706594624693392145718427642281166438642547077041110367556229880541459830129520414223275227719339903630270007562050283682162826903686987142672769621514522270821044768803822894303859856062727993794985604016077545596012315947460641573310965079738373477563398023310774808002695144259656960615225877522746445365843640330205751347446583320901743309842302662801498370714719336982911037398046436030883162375337741113779974668529062613480280995101215358011890310745887495941280888207404805809602826561410579110457530262465215108954943334625493058088565870130299730308248077859669940279625446876400485875226579097188983775985846075703294625695727151419595622862742456644160634440887973417713776555126019172192968110482171084048179236029481554813088023060577844237045055296694553282007559573280802622312202951023755345974443742430827818311174127457311701597071564075844203237392521965958774745857615825639578935760773423203556854669542684322164843472325770568823160155262920114012268584280715584352392965199452879055071368478569386041527028117474659323140346518587128408805735666662904034901765655288751535821808756220803441074662241516473177336988078869696138897709431050094799023663980999922158566035761446508227849553699806914675894217831676474565435649168604390145206974662410120201080371465119011942413924024130420971174842083826404597566357912897814920049461489108503567420448308614083770827565749116574242854893154043374912397479702797625759818934093077642111526141620188159866725347944069689452448022058184928932353896516187324967685886143593857751159129428381370925500291772343102160320366607469878427179351173177983390610171945172525972570975078359499043200088803152845658271276060602663677852568674021663068807844446218446581874192901164931938878508072006960383460196456350275080809337645132751753255803861394628900568633586115671593806804848022865629057315220579020429916957051993722630530039062707093311160949471709798417849804741995041882033582743534416099103529978954192182859322610682335340477324071692444674477702355479775423551593636438307049853400864621434333959128236162984322296872972439917117407924517188584912266974438585819966928419414531568626883146882010688774594472231742463615904275852273710736448028260199858117416714038786885188806718218590329186912435528672453840093397911061028979716675487117001562636459124661132433173662844284016066423837442291429534143171062581653381941028846736717813909971017471826161548541155859530179047310657052836873662197282955635990176281306947714479871841874076252910115367789581888455791378602537072191997005269397708569950995892607128851244979881866063467336044983095622131046252960954946845267228926419035401370668950890536439726792970329543032630828439554255690074501426365163867699086383155979943368188135512950912669515111651678720938472128041211318234450370806621787524435635964755400177438074155339949576004406355868806760001551981541701322822179830371478874029825182730785926921546901169131502426406345455623472303001176544723299367904492739229226725035503333491197785067738281733669979291480963565583654417204059738887425716835194679684394337360897488457415009496966035570863884193577825168835977463836177598580233019062487679938571518723197821774051619060291444162956300818784229338297112365951159379788022713419251758042503631607214266252484565480248556590717059759440135203522533263703604105598758376045849501340844058533962984079227316084786316769965304548349946776405844630032652301080947822123328232992297678781608068210875001867701476568287712324167418190974046695229679788075736844039664526545689528419340147482505301894543131003379506142683631792180194681078916696101963540186323890104640779129404003027964006839714496183118408883100192164606903241793773485045475657931495007716758097726459962775558458358111182811556864349325219296349658346313901528743025654435261501005171925142969631350554099658961130355438750579283150843069442676678549206245857745865593025197858723418015122942271387001296317843506124917503048248101881092068794235533449495889353924594497091851619918754835530413598578464932491363892917923677379827407943299595674372973494489746620906279933799382641808868018171850026490360650118469288676130577530874596606450733529932495640637077531948155463892351088807425659394779297034674173279742296747782325294348235083179560091863452785160760321444852760924670623782190713379883222915192541792198472302167695951768603033454855786037610257848649809478003085967073268506162966494478812025089158789914795840901453466352174683827190313019569263205578826986327856896065205748505083340188374102989037313142550938683240485834832878716004124319572601941548783565681915025500621776194468352676817938870943130028297028030651837892660606332275711249750863610761693055542732318202931957614102238777747102701929548437088514774174655227131804099001719549624075557424065897089381059686618032394474837106576811161797093555263636761315651473822723365051284690907971020591251822141084981237805077753992799298383491665285539408548969367801055290904373122197661912434110451973845899834232913000927440522757659730144961329097768699213275417871995814805694733191402290330748196195896317071497089489700417939871534930956467456745873604046656462874302315984619049539747438024824664370646885887728936597629032379509109402817254868397156472335601572024448244111847468172259133808623390213027739432565516440849923721628966958983532878058599954137417933893894630835066214966414222523610906105889287889026425117527686217708249843198404802881177048693449419126075108627914564550565693335144333196294957825973206179271259993240316363422216478797565668878883714382789876268575137565070266956725361964694046307803499922479703617823890111168588252960483919053469663177007156722399186378868784145383749754153791512999479796606169643319460170341446293287599709475756009648773050902386756648090492980087891132459436793462190346376996134005121043964981906636580950654919609526177646340715230196115002284193728206494768231673742074693183187362074330952299202837867219339914045128354388850171495690554325707196275041757779403380143637800851968703985383143292326657233292956404161595653674696096637662197603551626470371465964306792840196179376982992884247534970245575499463381266595536205939569577371854539356293206744503810508016263827941263534773619355923327959123382788582735464419737982379002433650647401905301131651351373732595240147083652831425632226761719763134476495576148567019965995900920855900424252345238367691431824601839279349457374234792488478056621966080022810068906973369515812885057685810736504049382901933482256342346416113418555253710146061469030878129105464792817265784471395614638183276016634236423584308606704658183559890941175022902279013523824496921289602318826832201919765893057836674834058985709286094836059131756841703515682417060039336617373404310740586378364370937073115627634976710858412476980408702601005080229980049453053683583517394048578177510436193843757487697713563011974800048813224401439361360510314413469561497261555638262828468864817650043145500250177732488224651380369373537555130983384629296373540464093998565163268367967809575389117737903226971681233002513615904424472536652795762714016101046444402846594980974824444224568799382229430008390689815316752482425284815838153923077417763502307408554820607648723876091414824500452698338105930518865231280834206206354238977107563470952985096888177776637682103253811975606155656805904429949353233699968475262574110971458858320822883169230063504365403100954469304511441133750396159461000917260461607059860220572163317382232018107395666124030313418831749197137808805253322393424549080968575503599908139941916769402312377496130183272616850069182209687881438382357665909410000671123140671543023492291461728318202490256408765665610695188256848598987948777196506493853690137254305755892999856039519012828312617454994440632498360289343888675593201265538963498002551542782644770778723461271722641589795351190898557300307488835277899426018642712744778362246642418943989607839303808578039633813413505671547529086184241610793201925215379735060962149978046235616339122224656752682373250293268103670349360100591545879441853611569335611191055032073158736720186954633328084669704794062789825304663785202008343411090838977978099391340458042883559397289098529667546833794771074077493437037305406416146163392963515991795347196870178621997228102911552949108597286479993689782650493937893737054771115249760194188632678275665036817752847697872971777818585449318618571826376319902866636334194642571291328407632824890913128941601010060829582000890123870077025189350607991134060962470432228364294455793923057451436310262467926150086970439413122126944902607497203690468870490866573868958343191460769788614885690386351012963567868983982496644312076338260215916276182446733635716403899064483530212544076399297902328432422662636487310531991255876452859352934284272647977940212911491501649251251293974485768445453273268544354555164086708398477179439948426155389992443064559200881475851080097208348313924821366534873976906725733435521675419218045826866211522518139277647126785865919604475937544709528054699896555421452568436270242244998466841829775937423199624490400741074121069115581412379563836529876944207128821422884062599606168238387827043051268570676271345234233731595358053031127171170283596656379551252425361720383551630522065624797914263070109671465668532995025489943444991984351446382848771646932073357723196708822959979364069560588892926809335295351954596637097423728458067076114948034152480915890273121992774570008290976388859757720789811180287211361184615654107981970914067465289471943624354440647559876503403619542259290807990980293986866598337738555898442061303165288243653986083330625105993499464133580411059177530761236910818143143497351880647679137911659129205491029198742265020424273091197485478938514987733641357390887355040585186869044059299037824364508224371187278560020827074607261201615071121031681917182276285948034913471573817904286114863061327703176470341462299193439916533615890272191116260342042160225544924518066171189749138581823754071247007409877926783476238993239131248626600882013592612086347087791509915247878435270234133566523106743433698850734374129374858113316409542015872753862799324908497139084494193832241736285836500463397880699915780777054529393652667786361168323606982539332657041120617127121145040947629286184868475694088812513128107746910693007944321373947096036763282900851366026809435069008714157231641988575193105748299606543885353582238137459273676880500875609567798450329843595255331148577008817703556389752973002007565692491896690011726299890345751842311229241762526852231692340973914427774831312044466336149659309854884627978419678524345030885826468883603058589305733987751995376278645207984923471132685371138070708670730000248526522675843338895314783012627535265986136541618252951501213830752540485245024125510667371388160706617110042922513185093477983267606912411854950557467057717005264282914754615972964227784587806858186304690430981673122750792626071860348962693017981809195857149505794164566994937510325452011405996389652483639796853177696102323006210167374010688717671977719345061579592899579021363670892948206713290948286066279496292401956173977881861384235201075524004499883889483720491216608261319684357694973348059036520017295712244567489957931957483243331974258747854103852684494651220165828430273230917361609142352098199623350452441462435392352402797048806547848401470132194406696416244278155758234306153813544403469885009814800026106102535776389644160147317902443282926880588674587424082863843847917746833988096283486466295935187135918546110659681462454084218483238405707203437777115767219748378125053802416060221298071855491172577876282233634389033488547293051606314702508314225647867303941410535116197630230078168963405243643512137366860062960069940870267574633331581901634667683855128626221035657226687752258793695267193505569337367990508087424343278192368394941937654294570226139798725443333489986850043879601906719944770182554770889549385997136420415892572962401922821819521711010181333766498853484596530571588030344510078128100500471094095881904125695739770325755465549963191117782364024080210726939432429627417898009204040963710564918015870521623731461510479013853210167607191190694829726075492285645172910982297531719101573754253273136729893108952661865272755782737196517575526914842260288918829464765872882166736379144266572187333771558035490897699477942356735723374396598003204305060997707424173647816455707189326766468991615114004719719796687566059097585432668530675632269719343535305987008520251012034219649990322284607516030052308514700128498507737388865031453099627018796440923740285602416687926588633390746918413404498107123126333911226176211836374359134533339541562248014470172129379156776221834077722027846880750474716933996380871716827537019402916161927426344356143617433153365366099433427878043715979573272731913426101359490079074035633899379498638335436049083108553214291900770581678163392691844130408070428623175266691459735137181795914622245020305925173923150783787507510907002615868952735458900639373296947789906112770515722317561485632828952991299516914523789267113751361074841708795250706197736782217744131782660785964899544103386766512670515879477968562285974729197321392320283546978589367842721604936874582341279985267346589401439862440402182762596467574535288235437060674330189903486019814449530977998041719204552177224157731302117356609636275242525895622034467542839604370863170369439099038533469666068082214615810481570605007076429992029705227249504820721594339666944856927692815328353020340282392127866639537791688257582676349421859801569399060017439789145766429036765422541835358690117349251522755475873423707096819402670823510814348486074888648650010930560980676198330850607022178464469890755645470031642968492898713144609777589483971792622369928769018358514069744267777591742937255476251591833159396601405906922638624454321817140142344621091147800235674675590670313987480022081720825099356052864739575354502285278577804882564468016076399911698417723926791852239605160694402003304930342237353837878618842226556852609951575960118443547217431807147450494024494895994229226999650142305416794019693423036626237223669891101415189649530076554005853960739222728961473550933728207440569209133229359072872300108171839307305832072518221082656772764346934949319815889677172427885655964534711814804888323684080646699172836908902839426969098713409960091791191752049422389250049070538976575053705530184673771369611617198657993663139080846249880626615365152921426869274037648683033952796565620144054146287053427998984095064864872636534640176369572014060604947478691242212741075537168447640333182577921467562030367334681340388748683030513087515499911071108419822346599795690762786468683430489832258245650558849665068165646881817420083838391499278453617535664330469550193865028448505615870410421899472095132215814527889725627249887596937268995712222462220791533248299034751553449336637980688974724817075256483322888900994901903014408573006388218943223829092252972326292033040926864995137732145727815427218746545326983101925600641665140457169372005353133924743527946647882964276114955723829372540997927935258316127488478086464312824372517630582730063108099491143047729446842299900061189631313814986731268716192375285261217215520606379474312988787750161956077791251039655428908002446067141641860715151261550574166720873947437507266826611743900351913441746372067767247159169289234132872849530687854482838210135053849175314376203385466983408609934058946469928088985576679369217529399530955278629436215954980032114385075382980845794716168056432613291787948798835558940292312963959770671117063977559566190562590776795120412296575322542104230584078448152976319958057146781435256361286677896601371922106229123408709489972974081252940839429204999668212283629287044809795367418768839511770236332238037655425042917004615862963974323926722725152952561591182139574024343052501826431547910425550951067993506334042826900603312674442749449915859154739808815776518212530890608541152253916441928512674820312369196313809717423486946109148324059832780003737385807848955554203901471043525457890947994575051982284221862894170333533367239381519217369867039888217769179630722581969091258450195497742492365079055200974162160262049650293525734613498735749216856078520989718227274980859708222798484064762672541592579444982073190458563094177773473350692687151985717544110249198685748147624281053653698793722823983346409776638100869415537723798013142780848052246569903322402633813652792235168904042437024113996994781912222188463413051474071034962871925640467610558722241229383024404169679557679060209965164286560372138597556938416863958901157111654771594672085407356984229709922297143239474696156636245604013543480109873065772525544366213512015744677711035572583219102808528604962933015096521893511884401950934714161783340271364086643126274021617613825210907744965330288386030817055346163733672624039203219677852775994555908676859024667060298709966478857169575747264873032096437453962346957142298214144154534395690510354718717646486419953334428531442908098587687407649622965191151765174086495336375608515032594709002347540092707097646257076684357769517250369636138551049058318376865732502191993164570487029667571830899705345205713179193001757104081373660967927709998918927140611774498103277540691394694411462785083569984170867013457530636295375576597546674261078330817174440207531044084077016054625873315175610234253483923719781182535941327737680075347661385402862604849536377772602096303684182646712570192874225336112774960898129376064731966594923405836422301069067231930022888572228236893084861476822401432941362226539109952933336073291293758441197078868826920859859067208118544958958581836457667497396627710779274493735043110167200922549872450730413838903383190339775206603982362188065698379318121441470738187879315244366521277769275554710826063530871132810024255233061302362317967704499661185573903825362923177671824923689687760192390142519159926531217335836059922186374360612949782169089099975516011344142249364069908465100264305500715983107250434654227940768968493555271309677139411731261107219907067169072098801077264924426020917022107925676382582036548030170536802389674461547874516142489567538798214116711418845591495662468756567667685888177786145743284824568295962292864701743684552610060576481586432299509174205185640711659354662705128026911288358784193057168256072265853179592741580355671203052698447672271515570176983870527460497438963184940114273904874939761754026473989958778536026904321817438297764038477925755210177470495439918963088724684075541083179988737401210548577649100453971636094225060666266339876494907540267276100476834914990430278558608318720693312164641100438586904486020974283961889237290279449979242371133420152120914912385532439986456289944041117787413726066912258632407707715729672396051056967070448292146652428442089109514699784440402162486233432098529841538212415786730119169344818117765047893145754761718471022785145234569939631178802753445491577054929984879486654487040349994856513126427983958931338330953058080610807527144857532893053143242972289150766347363114493722207305781695153647589900857610838665804036554331241498062634727330812183676115872044703722208768927119412367132685095502110120542320409751106751239638282935319016077058910684514209146024164544415124518295701258425508295111673254351415381167570947832058953627786197287658231292910300658091497502040288626325204071505289488642929360240871174076039610002137797079622923681337984779551281868094877534520256730823112770473826927819758587154832288376661575832802615760184683810957349744406973620561641553490020039895453177146404098653408128188034960344631436263478397483878563823067071181187195168042605409613843696332029660129131460563062578304471153935741169335353366853137621051379811826576857622662470024103148883532266019683067625981234808463867733133418680246325506976854536608409363288079478745366175970478906218514121787783994463262000097178446875246150603708310800195361536085837784253870183895363669970330610809266971155517924168938925775727892121919411582782874321246636468627694584981020407928998570708628960901660660010298391692507923988297904719499914206069614461020063774145439971322603882970040005991298532557326767151113585474591833351718969438722874104846719477079666335489408120298353920965091654974918756024699874900999181406088296895466663596877548165774329605899989833721959605240230254841066069168122480965378879818730230191917007178623828523861602880686094958671711031067519189487846311457929616030060983505408534370542177477408928665127161800260988139655955409689532681442522592101829677773592118049007165686590210128927271236073744985804635633083696654883706649660550820843716644406377071063951785503700581227911057172562526679501084388689243133997768961042339742389899927446338914078330115134310232837549207683362914089401664680209911360839044641806140407488210996758433919760886867781929612132941161076052212845486027506356528746059314989866752845571120510548941682509105147437911016724301117330938302636454953882015320824919829383127876623861230365959516828248216223421721512538277500966454164455753807788759968972712292674088727639602470615633968275839671738080224226966286784235464212411604593295046876810828099852771948260882414388836274357335480502138656317234205497484968293617655389639197739050041583263762162025415636489894116207872848562081636405446431010623468224731127692105239453290950887726477177289691589070417203686688012250140296556476254094997921889157934691346068755048222628069361832174104406603889686947714758387247340879915096791418997755859762516135868592743774223219579059384369220052495332026254804223499001639057421129761581976084914820452576342646180371281941276624129781327930509360875743195700901259344697621239613335794199226630195426878704973156074758032629298349236773601773536339875318407196044082567241145215511700606439606008923647224248589170725928220563903777990433900918693687711996639026242661847100446133832687790589654475555591038152162990745356514747944691636265419866802608188974675085952613149274876816074937927392140893579500272745709789590081872150842056414523524858616847162711528535447135357934308508371011793820299445621380024477965719156668018866882728517018656812497002162944422753347724862665809163449528748564011580450734455132143815784185407223989356339508304536571351833274125050876640234507110431667633188368758254165101271961224899030954168235031085082055943453317163953634716510722967274820592500788171239661007685075916876600789056023346333159088170490131250760177059792414164630062735381077798774723995460769561970901894605115386784626683210650200237629528951953839666649915473960460325440670025871907671215545856053411078466990799388633286119119783786477616254541832548254900776800600536932108194429035002196286419262010968990430862569872961040943180164343569504145070737861341566631651969811619047162895333674245160830027656213233352521539182138603045666966123994118129909165824385050607467592745967500928308552431075151689077862813543763885749607029123816848184222624210364550545553845590075276886428345369045596263878402243300706943816020237782497215240351340704575642714053074389154358206562369320858461442594785355666739003613284940371628566553692091947778351900883497674032440403199176549873827396261854533373384465347090204173995571805414152260803430923899337737991122067362487024912074553325347330247203118966062683048944703871107761678295384135897101962134408275207327991115092263699839701965881046087084743277478243990586305058143831965872790213493878200016012490456652756580124940414693428057192207349127462123021416040917539054558434155558125893620353252585581774768385392305301609418583641510218681351838844921763132305189298889406041778475863170549312904087126907458578465225561469715757855031776804870579868923752585264376685188079682740056337313867281612350693645503002183923011463940419032215193141126484198518065549466541075316299976990667850736711008904281384001006932132100178961849785392644773892006108702781234772882663859165670481546277997848664025995238878015693672317918354452631062974653275146910789676723567328797460446614441023592482379113032954193338588709034272214516342472529270339625056488451266372976232999667715374162996980586720821746433011820961716113375318984861749032348416037512594729733148692395467440156598941443646347430743489494972194650491883271849466041409648609978412406838899169420472345324496736972653380531282886877121978918102918853812139048521482620080526742052915587658014103626682557402979881734123479233509583431564118505067652404036786611718472043203415226939992714047961621762862330558109823427062062577856139217278003835433921294434938626739000779004291476760818041272599127786298429077350719121386951031433280234987900293898156419940519551461136576617677012683318901785715744660666819675469858644590521127375165869499305451778418707419663154727685619158607233793972610141411327731340181884525231612041712568622946430901571916980180961680504842077559983127161193737445084648352653692843534178768194151585020195611788071421410680450358688571230513680790495122749807662839547028955264377620862962747056080596812372752368203143005705657187640437958919762434300583684527670741055337730084899921045080393527838842871632129760567571714914558657999446132155544311358970833949257282705273368586371394502818142814700449212028066939110323077914048908635109730207854671885781760994244666751876205717504017482159192316010695243546491561394243807406951765519817720520477471648732753142489612367780490219431241410670651810828600985244523115616672136198560762592891501309142214277187345473132409216853096536346277431265566591827443756494036500544557829320567128006486599763790597522285786895108219633823145965422773150708157395201126855377821056250592866615826003478075528326298707111488915858497338080892511233619636759847746505803786246907989942293687254583658941203446971498691929719870616271545755876443498024715741353994598331155015391992476739114464809900963501751647678247364535396706426336395385279743114007172527125730989125080239458324353098012560718665019044738706074381682230741573408893196121607404772784660467326175045586866912792075849538785905498861286625694578959571679072732745259067692602375402657779908251022887084372979616275437058522495016197496790403777142535249008009704667467184247628024561565683772856960656534492357504922367486121380232409837822046213167110436706946894476817248098360471817775384213373516699335135440883693593251865544273319638383436877237451817888759789248489245279291100670159405239391996709938866883452035628297263525708783962010131866870707660670290328771147942602693524684893033223365004270898461624198017486628299587014367477431913127511832496133545675099782717575973716047151986694365959395349021988826870082394421273883645896989084083970020156455682376046534141516312106125945047162014866131811944048009873628584693671673394638334041200344011131962310517546688957623787378663995392188258222498789823488378418382996105095257553122063728665856905649593524168305271411723769517857095643271677114044705840896566165692153586755717089792413267323896354334632637343351382070584107835581900484594735965745804778449711357980672734775982720673871527367415163434433587933612464066030193791350289393664622928341890802792618313458152599939347449470053908800405770015199322894264960257591428069890932338424070197107604301745272468642737557805408912344771968788613980136757626157772317498439526999208647380213263918314621077699658327996377621690524697896481336986707337158816342411187688116544374950200624709957322426256980061915315862555481852805720575966648572332565255174664400342207341011061278257862790332728334063610914631849432928127231644550300860896693565410276150575560189596505253373178903270178236038845594634087415732201819415383994749885138036984984134477082096248574708791381047683328819060568082468785681313362754480205441272016554976960936342847608651397378034426566935649559971571946190027221626898958242986473298964197482335742046321739892618535203068985235378154564320799569102222557974841552658355505710190465165375072139874722593026037556753626608997919016157232582016972626077462115186327042158689292661633331541661014669237883196613417972254847007066767607482999985962888871700076779427227864876322633109886721736114205606221538595705055271596960489277890566067687805150219588851862120080477572453020206164789527990505401018425299823572789197345503412622590044910188363893879728538332404547692772730711087480880545939927266451341214093726357196835873743539397324776129667656590850512964570164278134843543865979219927601630568226758470640268055768714600494303955279321446686689169327547174578115022323201191668893019697096723143353809674524745607411862824453719057240256094442094456660165368674337245311318448173910665146132782272294246090041085999673022864613880838288666307727921985046174922302399654161528505507575789545525780352304068217729730950329604189865868827634790425825765279318059938936938891469945311400260630028801079446918716705876493807637849267218991252348430965142001868803022622177817707179566655735040862495828932634423033431391463264940371243034421503977998695934701925394027020390843834950306669235264809641960555547794379253693879443515202933901786057297750065836782424925680758133479792080876925412771630054746770163229608372805600935535810623249591472185802942012233632432705279414637655179867841462217146796342357795905962032209195371198954862997556880825832973420857226652757363875148065257902823241948148850866717863596785269053713709253159004679617499459628429405523267671674206086040203270329601263895795405372712333661824098904444853804594899328200383324892533961845727432416660958728847857091771485739648454506847955922188081953516406434350862086192993651710877550523055967797783334510341647520694438699972124762841017549975781481159517322185811437716025338316407478814516039644790669682494427941683960734965442369787297803179478006804763909374866396516433791078025580176772313544495402739210951912313223980105597180129512125420635205362358000041070514958833962432715744520485564931980926003585994372622398086555934515887422315227170107936447772937966590413180942182147988748467605330826606365160333864587924640351972366535407567497992999942208196075223261371681764184827096155438041780133834627792053249957947382963090076548675211241647579338274083794066019114290344385484830503781388448803169383591381815534010612707416669634740222853268376553134532257113342156454468031858237481222284363361638631033429986736275259459076673119747684283679480737472647963745267575972374355954237761383634092698911737807884495303639184139534420808584030763850625561284746709043646659314746079025909336230143744143758588530858560426771795712659360481127422968111492855210323968014898247355521307226607624191304797734213103618365585157069984924964146717775541325322956000464997638867290036679990351173007579030180978257268999353948805749404008002284916274758842284692431154454997048652741515559267980005431541835628882165967248392866765529214736540986922073906088847946277519483966890647353503009611869507438730425460166334636267890490530390233342887989008940373231233255107570246074851460753222958294204059143413394588088778746707912262282343294278689583861918653942840767795640570361087234733493462514809169818263484148521367087253999979055193513672017473834698590650765687250342834641167592044162573737727656083188310398883436640805748107228601372404630469452660532695433757969190935750317097032091186142999694137274391415133955465959592232350762043331963511993966008906426253881129482508910302257412473032188155798342539529081320712681562362977878844533403539968652199459078060831648729266432417687349601577578876111051030063073843788258336462275986019029362598523842178134330451059606266990440080601318608672446346229763496988594262120545493996093549986118817483067669919532324903410721976869698522502435219761719534255163485503224603350785169134324697197210030662828687626295026257614005066138219274925602071615854402462320222344636259560979826352779547573599637292967090711345063072273622181526088224961357122184665958575707706584442206522077695104607317349156331779067613079223856070843277907992769817601363988198016407865617048730009409421106775002793599367846550002169624435236839141697176367879605046333159231465369579278486602331004674313684765681810648660364894397606191412993118305902927267987320618404080532402850826008527813621586704958723222442249023248822434839915253450378620763608863075957998871620315715065491130878126835825804673902836409471855033497088419063155012672514226006924604635743787204759360307253816181725965696163604147491370167207646222777065337580105505465810615364765045221063082953067901543963855797539356657052831388475842521065021656081753338896516821587738609291537117813561086237760076154001247888887344408429331496410114756047707300489191351027265335532598525104658015103989569845618898140104789638525613748438104984792816321363907863348354490258260217248878178616915111554415073238277696243608190628113582562381401557431772711009459684849762935993226565012665962270903807792998031467454285207914353774243506585778869089771370341070468117932914944927585002333893745280683931841622069683625911427103186970700332383671173448395539184602476878516950316711676871850686270169128782371105903253246073226368425884574992950395865395832382288864568648684493454247358951584168736848222769490809942467128114643062690869056484331741626223384509961821509886898898771281947607385695314514723724924401221163659192312832082195525595684232800106853356167374488147055516510353120698070725613890334950492819926031743860935793410714150730371122843838792837920510158428636956834145400514719939581347943895331906311818775765154894264202296170539751348416864986179533080336541067606011823316068257409310175196393621034050517746901532577271679187593782089359855026940159058378240878739121955329733642008542988511156316222857412041548874641350831125269995119068065469700780292861065837731417180497229154670318568845269070776341926711554170006899775286094243440646067276455028474515093055432829177082541790766185903566057788802240352596981314506855864095784700266391290888883474732610491836336723145741012468848193311920103162747726941585577128526211395338442209074288409227601417817917772257152862739245620720724943922547591917197525725328171086969470571695011648810407997783150412941708706214538031939426239979160015001088885677323072726307073382839173553656013969422030117768896135086335413524351123767643910768186392228213342667249101540350925572452248657455847323333636329802961642897290478436436756607860637973869498224286395755423974115624720062487022587473202349549887708565092365305968291243073815045158542935809209356184635824336739931887616415794072383156007239972445797778021864365066213696585493835360519852278693176720941734429077185488264042375468396989975647615408177689668368661370066152733714460645733985039288368892474042055090672481419331750806716576296017422820871237711525838164059105812115128950530706663359844998569428019711018745411057861376941315737278731726582621524408022709207090876083921757331244759876023265254479617023321435529822408019333304441881640112879113384285770906221792646729153169391018806343259526460281021390359087006091859374989191668831962954298295303739818434083658779442384694911137415800717343364650573689380002087583695788949413416937655570857740873266181761827147794825077867499021290490259472463995202275638297305763689839353617681723848490041227584920858307671052343047117769917750327130144033155861667354328496271653748822208961378441682792634686788980769486131382058909201503458276651696018918163872525018567530468425885367686354548470024992085869323173852153009272242453578981530149713898449603496767918229667791935524470876312357168922146494276757165737738756957734847937310721177837383807383627953866917205669414175669881982980575558361507473261270559719799212721012290536257499725498095128749784248904716545495021173913120797316992402693483903036863747465771292569201789863345617173066089756805159592432380476807395541673915439051184082716867486575341454436261647404371068706245092246442819919740932275120631446022366530389902831017767088272692142936734598065485782035319768317101362765216208994977299281588974319467773312386479927142157336041607386690996623246782980704246142393497580403274037668791156642228730529830716020762444225944004876523686005436531838467101715976819185480222059232559462083528915627416189225697717152373006466545401708265540187667489040468832149057419967394017279531662467654076280375568375401056124920252751535827031705556677016810192558245252464256686717381287092687336504817420978222889340749740690788732024178597979436083441437324007884686311146096961661265162957174648193332966675303680421221533568800257419832429600104193396700711052639477354510663779460276945954869975379053072877746977574842953500900836646803406020578763352209110175088803659198168671218179816687729053731093279941246403006418800499647677783854040296913076963344087000076894788925830758252438585499796192240555829101022381793117467324894657335365438457417373524320118916945034874816372586929486184675535391682206767934342696058759691574245002143252807747926565340564362973201882348159262130655277274700374587526927521937918591824685978170193519182577222430781699198499459041756352349647491364264232881348716813476162399256071580650078678984839027097142574240596327179615738727720695855448276122451204476955968393767071849491986426369254560708257754262799051702426904445304472286530140512110343915302753598837333620799571917626305601070944580652630491654662567276248164943185327292722345154206281395071534595470890355262125814099256855968961486814301031717770507459175271474538979202857196870466847792376894246443965676717620412448617699547960702984160732494537499431753146852053087159421177955530887098004460004880851807283741664899619609360387748848532977842309712027176592923378051692897133022193455853163579274103914296844077902641214601332811243353559555298939554999203756744398856247047800545185050611625086754679005123737298045656059413329850744273340013878781853601073629328082299611750251422593886003315322372093798399772563782103020421195511855793226185183491762269990976316304964173495519687574945033758595580719334008864612232211230531974541458206685135722652259742204251353859925716701820165259455942197548949618092847506141237985062015471773696128095664968262771245413762283663829613235013119199902943713393069262684905219400760821445150581218407314839966170053443544459342729470326425838952165810581029725921265044550718258548461750891053521435868199432159361475241679173045958358226230775172239233135743193199594046139552212174549744883839867271801842061094121305825003926379274333051070207344769772354392397602661020246962355678324917344076581497794500684390014387296283767442771372881738209937957557351004615141382268210936339045145138338807415271334393488454616948178036206279718979810446394606407624363119419997551707416936019826334456394281064334288273002418398442897225005591811817661856377513806849777538449066036191748712617126905843236128413870121461275584612191784469725675156830674020079280803113150091556330450339652005979098878526992626406252357357669433092163007199866679375947450039248433476394931111153873190380464703841516480546721243800586131170263185087695825119481852083619153371562693276816794113564879939820925225840281149479140930256988770501638265073856943825431813361684921047313850690298729203400633650674882336108216364275605222907639404572998509518874859913600798765489253296192058837677825114008822694016197697672090995725017277196019591881191284295080649780062155714080086378107679755948264500857535212000659512106452364649726954278274583561001602947055842974795979606433594973531822041139687193737630487638984862039641408435572453959080938501967076282031209469866283696716152037379889715472828044157451186269519382860098696489900886307716809130920886594977226683442317994347016922226441858916495272692178870061756214513660591018156067765809908472757176804645633396825679445781625282383326021472951570539853488201706283039471255052880286196965835510810020919009485588926329146572297197672670465430729443002817410343545920453978502761404186693051788119318904233133470555692587380024654089804174124934311224736434178472381040143282690485802065211460627837925668285136412777448487961255166918217692762106084493365368648701562872535971293317758029489493893131404704032072623870477997666988636354568517463413504568823876440939857086230831012959981928859352563872723354432680195489187561772724054801543512935008499576615958487713263462725481829591077705361178203066667283329572629782755323021265668480292588673285469143527897325378277151186602401580732195943456673746652208053523177354598826820452399835584129115234580860148517027708870568357828967540470283383387890454242544138100497897149857134506336145634104687431111072143307344646271860547433702555132109206864286671645898636550187713733060184336011716892693450128289153565347557571691427508809597113298879411718116995946127552699312579727047112284469148251172118079933263375603258184495831188948697259781142761594939095666263928924781213325484818805325105726814795292005399947050376027359320862380222248456906074509903657064752001897877190541175381313861217141659933582105063652954049788362115733582317529778765719005377641869961515247801626938418644108116064549785186400924756313123491364102372134728836997352363568744928623132649569731364924510316839480516053500872983553403332364865884032424684731145462871096897161134558933938926939824234870955517039994213561962813127851180195530674578450307419009819585049855340779655191506644922486142363264880903052237038915691284899364217999063944200400771383354563323261508455730506827349698157249883484560495781531745711781150773627352390321162516020380145901839494611294758475599017218928419471401520136739462892050127369116823131869120665761813800044485275178279774257488128345945243673807534082253845008170111632382411183633676328994680477885793691166081156105133593649647549571458599345879938338077985374235008096180946121988905075768081865026810227066981221730782782221232076907551917368828927977624106519504846337392759117853444202351909933356990957445033102275547759742230945504431477537631860421616062505002102453664660236382107141308764482081278357984809594622671367721198311932396462783042326935825565845222377036663145351730526755239922140735473911253317922965791402193475169685935527646336838322695096458655191656806169844927427970643512264895976147666922258520726383151720239386203629849447279715817753261376239147235752973927325552699615674781308981666730658821187657362083756422482291847312580295059500178315238647322829021549420186675703372843905156190246607225065606612981708515834005894233981041154391117349527993243570430378209658528554349372848943798376086482575768248437347919233334184098128939630875762883197138917935381816234714530367903646368988470002704321129988556020118465721578956538325627442661759044843651401342073571330844859961300167939170838370556113668317082135941554606152455004092205359198462159324573331474283935537530417760631520893585984982387955238918333190768034888312841017806035365377434317266788908784450289742464181037853039990228510002405275416309454569161390900692287418175230179866342352497631050136853481847629836685603728855196493882280378242960305649804236248156348517526072349926201300182482031079725835706423569617297504948325556033407648166561563597071211536015519638663479492256558804065822092024776691738894150361370844395456248085556569951729293247564956071310148292713744451011851181541869099939233910839718493786161541466318840778613349560661115108539818923198047519798281361790781938059183609546084208942329551097909983629608810873276727900288363198505189592661384457264777506730510977961715745914504086895563617992641480823728131383319549991174590405658105841971656762514834411764706690746879954746399905181311173885582722846837499395420556710931296469369933340293302965637991256445880764355189966475574726522817084816234027893684434483254282869718953868409170008710435671806689870455657228341957401388191874781516340705469255720352456990252745362260967601691017669338203787836960328737928577477409983803550914709239021356244738134929819817379328198171459398023774156701018952824154798298035044610967968144948270467528331171499702730313086008459851239841247563066483795767169404068481192186110622817067132681793525813051126846227424635690892761636054858412528653337554901496597170900591327466926048421706064454574234498880261664950859616216476912653437839742538304938056685793349317269068506830327357002665634741859356727238164083493727669791024130302557582236968744270904884829034771720459822921189311598462887870019106815211627723090772372023767201669555065569766880806629588007656142443926742812504970894873980495198502742189971859592576995555360837861278871445346476917596416574594948469161721487696122639205212787273650348948291070008493225204663628032858894518454363632887580385266584481709491981644406538177493973686689400199273056609028609288160808591317225278696619954671055700894219219586493438993086926830417204351989710765363990600329638332043032541267665358766865563150946796092816422896359785049918669310981361316690362229772521244129567978221742101217189647506236880471989306223717668117384573542702852642373552822936165464345275832340467416227627097065703876122513367503082107977361142387185947405803462699595408986584675902203371758278978733861624118562129126393348779900609388088032478420848328191941061721579176992121106332113790062145672176512150731707609486246729705858920662306465249885027887102433839303681232901209398903314972552035662014338910346078267323169785090951863208608479890568004302199596756665161490928590281133624355943828049801916657188655255165374888772461334234350170746159173242464950141581843764407345089964966276468489688969688128640812428305516566109249882212479533293937945036244528111266701618883985916218053333890833770269598557901393943969970578274135590478846063380284111019638651003982105760313885623530293177952950688632299895767892099967685998072550233480206786735439048641251182307966204056227896633311097187641375785574682142115558831125488751332987390536267977980658216556214203582012525065237748347038250146165039980943958558658411947176295801410755321591361827682379521370859020687401155426811645126342025337052733598542108599174451067493504951675690953400240024566286291627045653709257116987298087818231732200209796639453606009416999881278023948487974565759051449817455220232987428309325843162349760458731997269078393828662789651011910625619264583578169801191639200128696469540031869561614405949008718926077253998010390754137752126622424052439621740683883486403588827737590484479237065007595683034278960254061370935029680309524717385193605891196908987504217793276497246285344163831085119218705526971234137115032081450982536982329876496430472686230636310900208926557777225732740466763628264889253358446007528455170597217270920957165774423763917819124313475451370017684503319861929814909081931691679297335071406611636547441484299753183881040714033804400979582000282781095788678362533229893554613076667136689516240749614620262318355788595094107200980365928684241389268426860230391650010819687622313309403013661970363638793465642532806411203463798434937681805008822811294828183591072990008138312780056190905805841789811400721015426121611593297249502475983832223444272425789347641557295433253602306690173246802953353798598162679607345254117853710113847982495151657717146013683785059219405249565769568178749719161983411481039842064904963905199717127183702631958979041805475736447181119747733837316286278785022480174370929413273472598434652246667665133050850320877911466859882940074629818603813832751180269844060459430308376352358374128895129756943448733305481182162588123550394600565825168217084784212588645336880872755249132275053172242638182471521884906203583439296799305127065745742971127312081599889469772927341731715160960826449115394812911671105226328002766046128328242345193433915809132182769080652151783228172095578839827804828865177261476317900248777017623463553858565316372355295253838291043500615992930558997281254645229028634949031152344526067359259500895655991471031834921008438263167389572410470543384034828642045521327098376594420710300317973937701314686903132375505527824737058358227025815266250690155728725861584856849132592469644461019269187057262245888263897234571808495661263470572771946021814623441491255398963338032269436747850039919520764826396655075482210130681623078652725025051335892886401182018828648361754347453190848668752880326050987116421247217783557696194021111542949169368254598123291084700381169546654658004397784527231358165651871275797543291656364932385893035262632645556227697326794660402595015750752788415315246461161704918152886259352588369512203064915119712970259850035562755454549330974864066550498304318216772392089802573342531217043943200573936407619944452518640613307116177502024702135821770066779111659387420439015162616274099085237406758713196938155275363789032368759822316421551229641299479595313456710951588754463148024412178545510367624782858037356778781587604667436005479328826374657867152854783514884297761180715986581718672088112614626574891501680227337609153342799305877059719734978844169566354208369278213622685711007737772631561056494351041693033455893811196253592008916499344005074858369041699069252073486816575131630903907606099228655933151271498873676949811180784172027364443319055116791111651216306835293218301074375224469664225858700617341111759222557289344294894475177911621275142159631041781143944835470701856969687901664568207539239042097015347656068390879286527531720500644124567577362854567154637979439961401369606074169469562496038447717872224466051037019498859340461443957720121467250380520047408343774236275437018641258980976472143641876698615075025966435800993836172275541911104897745731838328215956232740021771014850320656533125128325226291853786884718449836838109590010869109028743902716281737260270445342176257779370102251148923662531224085958834865306763026376101152963406800268516607002786638354262227737479752302603194030254827708079452683532075435720047699440242047810745459856138513556579257305164840246021287304595083944864081041042334127491324997281342331200556556977406617233070267817148534330749732851266358158393925111706465866166943711240944797821595595128103923323452825425095950196745598914148994999197591917754097210956477058472217658127240263839919463576505534636230797566841484733300728017778231106623464394070628991292723595243304837640387735389740840482796978184077210159145495505540793629663849591249279676188087218513190547663705684138836605007440597875888016463873284040566514415564679219359573253013740708043054276422327882950147085241126320848692707781115926982061781734387294138707358711778564123351444815797768767882573593847499690938984912573962386131189331625465209812962419911548044988814093494947756883347628501050464913964616247852422071283600721933039458820901195251356065242433500203128268041727400284937672129769950790276957185339452141659679185538468476338212936595807144746696551172905060570798234736218765524849140192997318071537792333960678060875891797849820035129690631522552719009975266494056610037706809160159445252119210459724728232934540678893509524278152092299334067000588117525717912085923924886871154236873948451812027124042971357504204556269056594180682310839481498549769361011382719998358148329563997419638438188874684756739207933759415452262706866832394805422620455294581313858854560442060148147200019575679139166831970481362433238407658865000503366939310013326520151438434791177182685093831743890295685306849051855610668877270092473423904169125111552852921170141043895829651141726297903570126882989486782873440288171504998124544070234725890427911982898958967495006251493381116078960829467828025484213781789922290627084691538357310254888279190398053466523178001310065290618997758213830526769968233502744285591672110095652230966161409478124281888915328034988365545156020953508637315091351938685713594248346867557520547184328925272660140852516187564082422510566491620112932620377883347252133689788120702314468940339941766310674182870278062078120560750114011708972395892030259446884534956137544878376865664560195940183887478947563906145587166215396197248719564815562263629442720284640283190834524697458276776858120008741864897893723770418927931056338564638709060791577178155240905709674155360780742600240384511476178454190666882601187470506250461730155418829221112329739236128521414148666899769682572289101814929191546030109691982733387447213818097122222710119949744270928647406593438550018131075012827884383472301357606836451758184898232446346768909092850685695201579168752596618478191503586377309237205561856178908982534385147915791276934102934558400675473184489176951488916278734771854881952604106366227108011048446952313313687908730982465305902870995407886586188689753323587532488322338592841608448196095566876513899163812607455005238002486286792197229900032558567149907176932954777522563388338862017675902323370797505000804944804900584839353620852713291580266425765829042788302091915613315153642593607165535118111435746646952855985812991116750520381071846629730729258260936614792850502650845081384478994816125890663775428457975312584924792160545565197296322714342919560691595689111354687673805725353212036190111157934358939106712233320293134559302852745194290333224247969936676666050884076817878441533711622514155027057557462228063086928305934826680457997978824486338263952961555609406415688712146629994343592497190717813737406603130131085841576373268053077745853123085919919461972155470034210228803351270745508306223755735936733291048324702779056049715250659950953533868081792057160622682976942483958428233813686554054737265415486148070776057045173729136544922103740621204310956349037191303463439263514134104798112301663494765366340196037501727491987620338050070945527322748689045167674310785353028870676173646303826190775888416978040383646207737799503071057643738354285937826138104285526422261181259435266340880413499191109436433785220697645176436131146984512961755621625010901308517257005283772428327060774559635720000420249274274703359255508802634659424217361655945690087421678275254462122861347724448721915316534389478171798155414618842666925814348137958870141114424405636218222638585446581712973095384590495779818418894255791795508382775021762261458161064764761179029438077229765234498676897745018327810826641687035453275752279664785661097099585784297881766460675183562538505920537284734019470725825621003565418347602849611640678346086276633860598274085135194447799720626119403155690454734337404436102830549286393960662279570520608403077203093170567229930344631898968937688269685239863029001546497508638516544691518919877014712820110281743558059677015541234462907654162388575526874402020155093330913192870834086188993765973007957197323503555204242322928287712417048990121634366538163246850163607104301916175073238609287679826319102664512688484304970366909639957008625688211166269306024512610932169556178162966942251906430435156713281974491871570108616340169561526770502764045866140934392627389635099534362212924107767609264749297666081922897378816845758156514200811194826376219423181327292218564674771627164997951318751528229809881461923815552346675675774905323660865066734232283113190005387241522435108988794584512088721957814097661082634930189665106253457147096446509785508999748379418186251502156474658897832502185285911565538683492823399487723775597682331556004086470630634349691497357040822097716990440767102214350680705584607649031805208372347437430587066062648388573507955566644130113987897813555872488827110250671040631507464369701908088241014138173185445987807643575027578706909697823546533213793679380196819223714870003502418153580161699549462740040507787085389793173017248493177784725572551591757721042948673778655016608211474160848935294981664819955985013375992602539367381446065898569872569792052527297371084483536449162689523372922342167714906384534905922813386841168011437126484381811703324278265938359824985284730469675285589707241048486350076349812985241608630053811081952073059223831865010707968623915401008195794988047296405274224054411670045349239774313531788932307784049684082445572319298727280131882160721089271951381919997994628962131459542755364057920587227693938419907977722691879655283075410017976964172795328392907047427255142921090501736284724314923036261984105720035246408718201593774535973305429078868886023490482175432296445886408493819560805396159441031058027204899341339788753488456674594180513059355538023236569206742267362473609730930841419638043426981968839897366035272544403617739313782225184414484059199539765583322360191091431712848783259734901033789031349065200703485043362559981152296083286256011563306163343053963239731080011432425294654949438940339633292931692718108131729210086856771546361951280478931583404062782844597430805097210043746608116778792819623849093743909528937581771636308138403049527758945916325457220029374062500435132851964777408381829149745591422620749573431029143889959047424033765527327739915319449718749948136178749902581045055728157797465634440226954482733662819270905023642992511388510422807801052561296904059849648415419705820275937770545280523999546346793093377344953831825224704007656775229627014937669445167526618300280639043840866682400843949031880326132269442633876850856456877346835195506441819435519613525725107023624374085093752145388040685996708001120644406666279507733142475624042831386658687466851136235461945548889585599535839311592560249485052853789907593006621916960049751613360219667660861283764528892357293054692554427072907125521888216098412650692720658925428923092266429852649119501601877049675675633493072574158565741041625968947193379060157512790553803020313742076055681782086519830420468939812640140978138829659974158714917852472979841268105615271711172168413129506195099848392665462908715265949530135386020021877902518029840763611152560021298544309666929909957925340929979277867452980615874891583648119754509297397468988511255782569817127106782113366909198349373050064715003685800774259988225109275140075834078805357522681302449672862306670577086075334580779663223396237632686762162334889102270565391166040312020952363621117939819276592222432168034236337724352529566592690913309279264833273646191034127339001564365010034770349887244111515498967790606853403194390683196991506517987982954357195343338391087419202934203050715260647200457509340911203229937855406415707263459571504472273066375417932593240602709348774743339989112991650456490893845364709203420919351472212165415638203755335416161497393834692935104620140903099619222156140444943347235788090944482474508636730830748217124968074865120473163330025424565071203763937896463066241727852457020705500410721113348841600337041714242678781715075935255922952850929491659721200766116967320012169313386866642224218210697913274473675387858621896996023046752168332034535855531887798077244343780092190391083223942002004011050235300421948432501160470897511134529697112935754955727919798087027270783211110632635993931135916097703448550515931414822785163530596639123925783031820261308113624488449146870514560733614967618721586447193116810474819515769623550127275707771036993444521050284977426884232153078727331846794153995118847918787971788947497227479924620829462184050837796472217497109007798515065925177336950569877842715541086167542214187140855445660675706592806208990706960506355056047353601601294166996734870153305866558268830679237067704713782970142519690635438720283408574537804321532863472160010198567980301666841777018072318862965586243115689500300405531250705545175813969367403432358573773356019649201815631725839283758075183410485709022309982047939308476352937059926418830034940455286737517111238331770272195677510335833996442183858571823867699488566614152429617194699604437736055822778706309736742844804273311395495385380883619002127545392443546113104818999544043650733349005948930395539759850308156239924715336910067796447492783756445678090493841572031924635113798934788873696583501004183016281980266286018534616081576568515233701988934423352227282672916117273211834352528483043849218563573504406469232563262199622418468982798314693159082563308306510463909968984285280207604637679275368406581498417316237222225377045223173035792137645678205364795749385491014716265955627148774259320321524214439193518876228813514493251164895892331535883964979463878291722593206972227872969191215003858607811167286598037484903352379565229133751533093604228270046953547839162901338250886435281680332923746999999831658103429314398288238171016270924825022506201652502660055929655544768666266610540266435719027288836157199543017388882447160504311896759846494016990441630617212228372255068350318251109088964184315000962051139117891509015667279692911593302363667499849522893010899606283281008273974262972146890575447250501706395056195219564336441069330805227654024214562869704206154669350622471370142403420897655585933151897259459326590754574876835922517257211944901431762491538613124643664763390839638571083730886939482393279166909764173260088479361643546675938578169494211061213868365294566879487660060019177971064052435336020972710941335208604607209985111007097936845873108007525058818696403021009020805244212861048545611142862862314257721580316806272007526074914908095038068414115195658245673737513770335844042711887251784923876480917662090645477585145290991303232107369526242689111387841874906185111271442345600002353008802525529037485975811496468972661758065034080039467870691907227701706499475728719672862123716684796532701032677881380964566142591513904713585069681432213825531325968886985243224902265034242377036065035063717803774352291960057607561648373257104607651613430443114214936759254935488084511727079592134489804710758844056483357496336321118991064729887161005544894431820501837547220171058781401037187325718559761369801854714572690671642261511132784339436086738635459967542029166843064903847795623168321458251806129862562890177693289765394153924482838517354570460975836005573323855164671470817330428624107569244217777647531780838426188706754923967199425584648288021301934438051280067526875944809741461396821002628709420312474748706453610688869080007888888785786299719265471099285797340148167729252886080547247415426325160295927117036321677456943154836689907375783840443234195897701272511662596062242977946961053505712834201928527731938285844287536009524697654213282032756822094901576805219691103788281895302701503060155337450676863561242555489447150300369159933712941552497033495939028293870052968793728965122449089807002499262855275553568566372867371539854725290283186364523710582335636396606290255925742043983463703529962411860181360693389360822484555942298694897103738765123300646254204072503966792557848432070006753449856039189791717079435124136516552008355598780677004808418198013884299407653449613454522156183485570268285473077011868908463706270016750588240886894837008214473329834634607612179542768961671286604340606574763059998042015986902896966370255213301803680451556763640806253567033855269955058270748786609226476248919967325228637840609881384978840922965853761328442188970729678854981045419187877005767431089715856529384518531864524730940358324946517236953962318780537767573436108578061199627651374631748764690715747607227746413006368403007544237163976934252757685752676541787730972688477374128256377113431840122275104546304946581286576985693616905952735426871570509418983535418088545979653967369520581739893787695535454262696000128210482384708697749822098727979473134919840144481294523243825809183561053539531820150000822586090592266635827163888085994781426159168910430641362956127436153632044950548847874835038602564960257472452106588321091790237166727091692293057272752807562980888690387695220350496889689161984972389420456275819743137141616886514702897166382260993040892734807407518787433231409556355337693283913077364594386255088804037603831017374642184546712978726229246401391631993746365986370270117363691507329127462397181372744838782419673526563611122165351647981671697028400939500165688554806959890966030365598822465225358631366669166740120129461457990006456515674934398817487387620876200075878092928613676994468406516554430438996093306349036929081808317819748395537647399988729030745585036608389906767243780488533538228558174146253260255365769499898520253690810760360041759888904190746523113772309776207450101867980915529542897835728065077814389335038957032324418838290737407874602905664179659916131197512603848094747217361203017262057942913088071368353948552714798086052923319051162073055127831075005886280807267973509088549393199931745880378967520234475439721372865829930591984754753349027773248319917022948247800475685361158557626759405148667854817144956383058114118955936631620168702639532710185878447749837912125225073316773337074732171159776513569398579345941435986803648728763750608727627916532706602889247938894617736903133233662633960591156349405761164543487224961339021097587679133094839009844711608469760197276918224581680329846204051513946117969420818892120175018273330156629562885746145026436710405813530939130983154376843813339839389607600879920657707853269479662015608586963301318308249351272137173339511570123125918484559727247383558077098379301275927732214181015378532968671152258855811788863451642690638839288652249531210173479291421115039609601309394590710917225468207205855080395100643604994184075841612724818361677911694274370679566547395736903238289710300959723122477254097578224273531158308206830465889122393609194983901356051400379168918488299054011385297472705268443755537392577475117278916862093815440050161263884765560294400710298065218260499599099922836819410361558888885483203788215631337978959407341424299800960453325579100697807244527426826412510478444642012839685105794687021266220932666404414320159066673384175373799396021681806778962303424128273043226154071346362827579948366682888639381294572539041487293492596498881448579917413717669417263262389920185361842978334320839492794004832431012633112674050194405814454983359396116080549731792536169304903276669136682857600229774885559400961032179339843481855421647656875849872111127909295355521730761342494946319809300848830632500960427158766397027546076018130884010235412738035585667841215155940382320693885048275978366533272662419245265272764833000266344932121775836139145935556596658274986255371167220626570401557932526329593542657012803242264570916819953996998277682222026905757009908373040098646965315308477875107934891019546728799275217344336521103494842972041358678555673310696375109208944338892003502199281448838166099198809347291762067277460411209603465536246323741308555247278919888979616252829661173319375654960491775854568670505682324072262574612613716701571101125799414823068480938098739613704420256751744971847707441194931980963404402491603709363193895963348086987453643079094374491106295530160077097737717052437040510405828990970467727134562467298730970734080395959233082209180637811717823454689309103719000573298825669101317964207083618950661871778390336631977111718867846773231864937901662556540189531967310201562904166471245748631472990243888291251099528531057005028828097872066437165798458514825601292105834086690307873516928288619996725125900593838169985486660080245680158220762195144566155052748157119346394850921514477748590811960794308003470410536458506561065179757425748921208075041152728322324154135258977454556131632323827351204161332233391956428774247396346534675006488345033702171478876805426321797002643575866246804565644592040080674722718564844607780001418941802989862129503329420077019415666945344174060498129626821680635675763049049882543542881543581939910410358040838036549174168570504967743967165338456704841437114046867874387333611589803457251142618082535414207149568747522666633023962790620827754801352706420930522058755309979262365287556536881143148507607159131443162211576346555977574523046075120693594914862260040053045908072608097924265427002501655843889414431054999208833570367202290893420130802333594493378258865376916917480811823479157805564238299456703814176920024586457220452101536143975777178880790777797575531228306424197287024909664890735390206274951662000496030194271984995772153298415152704433225020636501710389956172264581651284863213242891500402150452588240492440473896751047374805267885311746243499550872600940530385564530192384165015484476053945771257863014857800534028529171276962328294749788697586317103241117459182901143425505102632567809997178537303182786493507793749403054392691159922470958214160623323161186622069853522229469892990710927798020898929047979688988493247568632655153441183338872939342839916806050998499102159574636562150460239029171289253524637319490175500746454773378372453131512658481004774254833788828544826383268581235119973864616052263350781194964160052102973457054892948109766655180393135867499314581021938480172406325290732485748853917821441968741987157099467875100243423760085390416449994997034488301029174103050923582669880949067422662366046922320454239415163817698734077779769885562382587480176694114210381329552365460046314827285590862016253356221482987424029264237095820651529650961267978204183489214111815079735041393666333121958851549565687758517570569997041183605984688864352373846970754624553899575761348337119909491525693628492240271018065187238841400455075472841489249744552676929987520875344325385744732024163632250715710489480698646654738033620348299900151468018725950981360177648302768564609983589951029705698720240463412230671033809783545181279268089511182656878010756620961122348616921074746084291793833339440534395643076709742399477895188191746425393045245094647234386469322225404232864349937918259568135777939454554886144613907912780767744156758404797987030919130667487556359876094167568840638746036190840029355965749705529332087020459940403219665781122548980986985578201858315368092547391107407121411007132010442822154641661708360362433954022873921061214467852358280973809135032473353327435068106120105159908186555700040459344898420818301062034729673045558815670133630388486466043269677689167707193981054772991214920293398517016371037977978856504811111701847871289928326949133992473078075196986095554379725484195207031571217681254987382183629133247271510580318822891675982468675898047924490367055664697074935409706127477803418866313719641703467547978223565609925340210457636091298873374200504108201624270053802586676266275830528729358438785465624202869903855183098617100627009551877945467078448681776359763469623718535192942986303883918248767261472832289024186816774544389117886583621366480716764061757062405853415789750292515885416370585820568247331130313488387859522593341561995495721481002232850193691144550953528004713176412019716643584545668689323613184151019608925350146681981851423058228176708205887241066897542235237700764945275607982984015923674258708982421313524004691428810157489197950962915249798898704798622537712069179789241395818009062679506820499187510119242947818932229104734428320457514965717908609588893130361905726570414036424420746503259149375378782843919625786863040700291694815398153556173142031301192539039286603758559550802240211278790912203923947915254887406746367823895493469204594266613707464263615138034220970583555211241284280648602304723935112804809047481346568488958160076715018750696130984160640844185280742504156358365252359752213413394349053911417483527679923120810840115215329727178801479799898786802234826567708871466693170154607340929679377450814985657088912081983138027958448290410644581687065876089535213034140741658071718748402675224504931660091030812094898329978534208665759363929172733966976581017040303825590544575202721989345369466912552388389947763799681994897513603828431322805615033563724370165440782542745069097924808857811867747679593140715850913508421729745416457484010624282191282151985450533846694154228822949013998863493410558601496107295078911148552187246105582958452676924745699025029402421660273172879901388788839172174627457140880990011690310688749917982519002722667204634554814706622774749039270999277324901647980040440583233985669567805899308417881789667200950388642971609515891375477891008533087051225784200678396939396062631810732932809408702098223407017639409664766323857339243762576152646941825709413162621949294402557530647538308826309872439610541368369208736008036205806648863912924241866843590550166982708897212080231455303563758565096561362541798470408741005424371453753677616513527238092689403529226417364375490521017312647790556774040560031646920164166094476553227655455463567893365008334377099083468956362904561050363772261291563798484780792728097042268147418289931649185904371998904445995748955665582590248635436900772553239657199949207641788427841812481666763623486897205222007488323484964844386013198263250023610686205740853999122031734668743526718290975206892477626143446193261394601366374268195161287065993797796657557284458316201391641666442290824024144481883795856289459100785808118421884485423759647006228875948934262699486353940508689096047186381263072301153823385136263403074049320928094050203625024636037739071020975309924115336245355452866936834283964660906809813189202297015331391378949416283398829795656166363818687648583856412091986656496242086870897713665277367088017908178408581595964453042215421044098542786649795446336301768554827773865338482207308521558966364724055316518353245412869822541910888387100704916812832076974541485104769580242863152093405617105884982275425876577363932961135767183651673746345826328491464592550990400641861345689459665243815676243299271247592201256363072103336049856391911646729096685585373424729977130925828216261799569850916769514079152739866959737252404651422878344779046313251871366568436370631490860750458331064104016454101556116547731832410148553964184255871194342155215580773834135949747143948808382246742769784930748727729953119613894579768845618618135130041986471442116731479004512820383987605573628854430512581103900860767814643744329860958050602015251517788841241359361953049409948682776820134623426472464539703821246972191614062309755858634253018846237609211849146362895211434402440209414017420595159802951322715896825457926474366002982954796359897767149110364738094530951565858067245647453830726532213049392867478155222607728516923856693288881313273180404586524701730868079348396759810344474082890270466134292651352872387511454263412480523620840075602692723903180581207412826266902998077160970819348261006492810492777790484244037603454634948457157263368460019496564160725840611609317829450033500672712636976905849310944265523854656189622398019908317206574316588750740764721233906565588166814276635904765452702831106788598199673652688131107267687918269049120935358590690233453351652605626333049285042807708996787987926569333124757283756710981877455678468946646720854201202111447365922363380165849065037246732400493412076880320105639641478688121474406665531890192225792806432305672473434571851189763395176614240348296936053114382291836208935235440119394942905007797500177859890368179421720708066357231737039189588180579939755615408146181131235507099883257276413019344028007361930862898716088161257659360688674244743945304296209411647215671381990906359093982014466491209319223139597153818371838815783808884759238472116486516109222784646515454232610691644900784868063709168417106114265247941121890121222833678213683431797856727410252169229002460630485594238709757599148147779369899203265278536259962259490575578032210085488655548860555567537465800592562655370483132180081673390090659766797051191688432235574664999853138733914584084992542184350841884855967998263325279571336983163352048245123757593512248112262952674705965875884446692395253786956283694658493385131712308840906398179660248091705949542461040786455488309542662011885045646623122350235460230344016914062018211821185353814451236122983892656620280961702029497605286454912332169284748495066600519083044028799914177907937815242457007113694913657957299581386313574073423262731406563512659737052658456651011265948732053575527199929567870511317397331584312028700497054483892973876043775646368210194084270232466170605931564511533318711477792169020387651732100705401640005239322226317722644967059366333218111544872783741602057039840962285123915877394260532948346290638551095084483967450824689613146902528911988603350197311308960330517101250220917974930735050387947251711389890973870101778057920608426957241973642773041851321377789763995268406638647151734104903452618921607156575540052818398711546754266337336529959016597011994135350543577172285349275423180152777538948982742689608174559475964773045832119794462015059443959112116609693949958232166366253586504803860849842708723746026233645087520138147900647938987449030497469117619189012381515671581128011587837804765343181848286938151684416370412900711006032561377622792322384414493901861048268146642953957713198477692657256700234966310199107505855795181964453831382073596022790494267520714911909325291425410467356750883433717287468124602040872002802789233364914107834102728053428646570702652527630038118115707240504537574303726754762034203214965225571168826610249722563757720678251915013623622713601142503565184157574569859271260414705706049569273299487984983686195862203396767182802608200216086729588326010132511042037597704869024692046485299137247060362456561918948030512179331427165320812451679428770635355566137137382618719498619181542012505155592539765985203110266529057660781859993280337610576907917986700588548085552300470560145950915759003113887814292814478727249381915125649605999925951280326271036408441587422257965337559344470506372556233229466586275336477073808756152158619225720468793642537424247060052166360746510596834069983814756387686316297173045390825358644344628834621806300429895569078454336149629621803602737549349552844036319534343643307716606390626021473613474064299486834625498798140177971150700995939081285677739548677684973533738046582031794811556308076100811638574180395454611640949323262042949329536226011145105216166881558589650500156788922773628187686465016149626636067333969078401257730625749452788729567793448805735642948152775804680022287635960775867312295721633855918340517274677116491393333594881840357632477611722441394552841765759453236133533079616208642589529683951360690208407228287111294900231017303228798413669783109165599657641889289514481827317244970512501586447762127928742007937651868945014742442437577333021535738458132437004780766404893008724232654692093971743203522006929924314877255930798490188374447201554303855729299347874266164788693333109319505132061738463917624128671069899494403645934609374417944947097788935474785700679374642869374810899856818645272823908020350165943847875803541415618408717929098899045610936869400168609783883530930478097180603025349728965301928919902191210502774971641292975839256049301872893909701544142408644453903150202228414201148920157808338138657000277211263092029003819598651663873424684405755407444681044457502795438170087172801123418329474303905140589158070798349150519894218312693242421506716513576243909227099067914602201957591397946730492332510525286581538318137395266357082603412558601547564832736348245989262606636248462466262478325148492291886357331152500766294788347724377371776679076614180365144053523716853679088902077520720127826046843734589785950177386372804299856685250767786887543111229787193638966576977893715927650741182040203006908153179939546880249709925191866266078962763646982429224465581894304605529998227424317585518435399594286220257921731891281253507296058110471365563845096178503722411078799527723650738928220665545538043379068665419245047812289047372467495672621791678716809411794586195494761357282099204356606215848928454893980589502591676535331721741875688431831284014339592640033533977310593929529493203950108717708045944325577993909124047061020118352185160568903930755671952115293190253850984077373303244462538454548857082961547702870243624776867310715904669316629131288577957198820084623543387752227287395069710434619222917116504795613697677163089117984848322026277603509134859009199417410880780763818346760291671318114847180577052608760186371715632729931538079379812288581840006437589773714169413640344269446852110745021219581023546885090768813471536509036292107630325246169935734491536950028755020546827882860917437089398394378819404733010194380209959456775846455160895088250955313865890441303376403704324555456404483352170358692838861330993679311651010260972724765712455641533272940243611177875525699327202911587652409984362113500222458166881563041849325213421665479522601760842497434039944155883774292833202808095448351168012069546659436553377064468382775341748439663185866264994049509476876690416686881308383907435046289679247579250048696507665972780516085525785596377441505203373279442419032953519431525453330687932600971037029451651088693866785099272477518707562232928668183908361008754511682757461838799779489955100830861026142137949317533157856148904399789427031410069714115207306478054163941975446517652100837024744345185727933383254745430587399131321312165869538027079014281529773070373900715944090377005648192946790970838391250967316296809159449852024399918153528440407496115076666475893355848709895410945114814285775052267606053428613651581280825107800619678359034905434832176531329711592197784983588218605554069990336562176450034231574654364743838163144641509007901491145778677374384555090240353226684287869696039266896774716116869626132645834562730362146502744583022425800242357575472706773191597331530449711122154360577203121226996939944726290245458822816812344238046927157494658259589027682744104106276803822272099101266884528793552734257522508638294478418188589554027294932440125321651116396265411755147744294434763058530620625858759646155219045867036718534239724123652071031179703837100879775241318497174841712004625254270166172730515431483586493951534005409336979605678872565304167291736978320001514722956989498376763775077768318267806254566520333484446130745245272520836303796157529659567517728673273673808702282569331421094636857980188529988584416244679542280809788639130133231071753840877647792185943916649673412508740419874015391805462431787149213298860656506440008103825595736918844220858159446942488804779214002782162336321949356166821104080440979936100570538064810633922460450593072984039970696850539533469691844922845209198452446479693110766297474359761609783666347338686068398300730314332101592598476753520726900687993081111759003334428692659356503279723103231375908180546686964123962702961189124637538107328412713944689567096743467003353367022548182889100332122015395300530761552902859343014068424714879198366146142538141050032318762300276237791960590686104501567262589940672567283194232473153059421709412591256570253820176289094172875093854878337144900856619587602840232498895208314844472538031579508945601402700302601139894043319910163921353823250627464103779845295372760864199746691748849850751195546275108867192423288835729674880468448962841087061108620617999410229680389824698584234328702251356059950019305194539647801481267590910290688099083288178558702931155998954907497152130689672323131997024321584328329943120698640577013663724289096184859846812008708178174757762979562676045541439110911596770572753259043314679979482299508030260713951979002683195324553034627016008700327680134870701090812684110690393822713809896198515122770442647689745297573151600623316505777985961726895166780364346733029200287211187187681796979486792496040009686622887766321022778253665844853975383710849351187952567699131676846390477668913247014615628718520883111714858129886415155897768798765686144627134940809566801156048726302385854251211429981120197410146075323931518724750886579101652499276957548697720796168469781309995141487989493392008521012907495000742381324254208231806863394011275591789594724956348653799929484067076444844429604099533989249763052552978609746319875828077044260099015935937974431734225684484231412288165775403061949981447743498701122850595180680846717720969340077312314441130895611959365365487998708518221228643559280022834197184434123438353857422020219820593932488547861210211075369351690378547125601485003115510373174347780011344478544361973693177424717397506746956375702961487440500236789802826950763330820253072389282658886490884266281532934143366247609158302366044252080305592614793187337993751760646472223914487252817038201612961709596443007023229839229156752437334199950000902675268718363644278237079685184152404010765303141704749783814705207104274323685000066518776567739788271236087043678155314937534063546162147728696445860386162156324953554987734936446507288027339780790330962490297436219830702326843477953128864062355120306968156232479624476910035001325497752242227542707390174423871487064584437243574459366510645824895737178870318588869148772821126734852660283484120428363645303445703283573825793352915255300616836501988740500716472594765944314520315493367537885810378549695894828616385098345604329551108297813139607545294882809103118082107847118625226661107645278545612209519555939917648255967097474318523041034379389545719483095369679384958174801537351884562050634973394509961188378914941731262301602902330176866143195900540919007316523329427388542020221817074171686288822824994184240798328831644088116500654083106741243922828848581485495737843742324258261162451584249963505371125138096255916613590906177422601952011424204053068714766059422813225265902156134215229076324118068682879269093657503072081287206065597889698113603619118124857863226757669123029534055806338212591803116234999238087020975272359366256422851484981986527427056344672814639814622490372658436125215350019835279543958233789270329913194574556551987123857675714824482109740519004336476516919308305621971003527050711105920063666611565830022113597525641447283083911641833897698091003904302136716718569390737307633722484986091327414984582622853518449718704387839530193467809292276551345309046796739761149607920257237872940831084743903709163335605307312021753612732788552467927923042486761179611556699266909719477626294912946397582545205212216178727752548291712666912170175262805684138535757583989416817620751665573036068839048160549493985261517276745142687724971282040901311351221010681722217769434560697995975643934324279762999844771714664157180903792906210443689182232891666048924527716141871334185828004948700427114012067366408738256733966669512888709364127215962715241834269138397760412526373143329406669625895469939058157337016212603497571513500048277022801803474273866022795845587681044080559760657010335256790106607343928952751297230425319288138411038919911093277239118353178673786594680087723922721916934446812825176375709004787875759343340608335514646906373181787422422969602116813435831291058350762672967964788391994458151211303424861194274048036470291688105469415988438810636203285197335838913718308113600189055016076498651559272786311905712721928743671532503375077335977671969512383066986199659374646460023642668979188914503224979317686025573425822483444080607985761400470199254027165175927302425592683527018033020663204697894355634887598299037891827254663340100164916064293110707160524704378955991473275070616673167694679782633978326913473977772215841400170425964337333590420210079677313450723443479067627363231942729702986515535533050175065410933806705532620561078267925327486030725568845496933196845421968301386668732583803103705574975802477206697458301287224307794680499944675071743701731858564428860175142278861543032596853445448993093122540798230931865854307507886198820864875360903494957577121532908948786221370976147102181069863619389701535716159218913277580302534770553630739876622470872924677191306073394679920592501641631703888157363886367340546167986915669921237509993363011692475757873786328954625833861626889135304579602325777284876532203418433484938459506595775000515417126299188617421182744638820946799681104011156900851072936700609570765062027092122275473079237741776613793541070414017342809202214124440353502949510246854315908604110363023890813682120717413745548352639407777531715714505480634687670123522446096561508054627839624651107147001092488879426744826917597435582799185453777189072730649004923195402331178189304340940396265514943392240682108303807020379663692868510544285363264825625990777570532208173183189321335550578543074101554127257464420472028489860801662684879888666982496198628575796825555551187802203421816433721851129079590916212333021692670866656586751212627090049604370835092737899863487321421463437299212944632594067722561691134652305244316591899914133472773521954884044533560159890495020204765586021180085285980930988388607321298158736333181473303395603053283575555003438598042711612841569203506290213504041452017705489251781678221153355886948951526482609131431757798921148001354062926547660287765319247825397916476253562178064634570727998157466307556261248509723514135902135856286460046617771699655471062879229895470714093526878947104323288529375874273663895069568092114726585166618515676853834321715776275578782139655829511788798958710877536929875514702605827294609276979534133065899634984149825315539753509347040391577726746356682456150555361418779643317469319962011769697360856026360430772597587045236026254175302660645775363028489394002969873509256008011227112465115301566941167167091333110640798841173523680131140394474113685562462279718368760812653149132808434312084425270171588605675470647742069031707771008685863463530771935525377168735087052268269110180683040146564053757160421425451664275252113110331829724152762581453706613821020056622056596889361814118320495384934921177770921300674635504694368623881456014529100521666687346536311526601716668501790266484651048425595745880077983223918167136006019624139745616853744238954961674159270857454688529556771422176992878064073643938308600180421752919781386422270179934575979888497496519131654987632942486622146641720213727455141460318575876212691786456837394136742791421444847938856058064508361403287836920591422985235973672917227743944494355263364400811093111398054932143274046832869444665609107471438984283630033825338110935330229512606430673800895710407564737539051810118094107710952112058106958807441196025567618342366593044084727177073685299722973689775338042946569056600864552575143181506709267385372646831654672778687096298465790324501800137865291482872735942574426021506966539288225289717304377854946052772520906150526741725411011458660368895472157943866616357016370585057254229649342390551501721048163763639150024405390777484135995997443011315283650922970813570814096955041704936528261062338768501499396855492658944047009329415693380794107170353491277925471897637579829808332554507481281005880490012690919700036959509294051636995757844702961646273194974581918030606261157459585573787889191980551611349441720476079107373902045057786656277809667733626762881644940127061895692398292670753440316900834748213929942105652240165119104157130026676160056776741164763142988544224298686023137239892226461943437612425253382028519629420350795822923238754193236984084380265978221139603076905229887283218681480671729200400422479687123235933445274722235695270721333053744978656108332201082564496751907468442590444317850843823107047081285110420322742439065674996599177940378231990320971305700644726088953861724794970398320849213260612773877229182398084694407601978688387536677486897909385656322024065369021205559699362362000740237026320582871525253879588962373716305804701563822831149288563803233554958507293946848368770970032026716956043911974186970634355386793015522028999393008561370102587574270262997936616917789007930656671776288101341662706896404726132870920900696278325891828430582104268579113355273922985159837810274837051776169800154814304476778614152537629926481091339228906489376293222344499832918040369313414008571159949681595984674737239123789795946704277257269346433105054955094206601831990382380431633914431033138576806820073499634331146727268867820703324414308638770722798747178445562672713835863356460249101015497333985693161703755992124908670743962875158355297502403268299807731634262862417389416535071371530065415982696957341831377576247666481890846420303412766847139628001590310295152499005349761351659280245802488712717000396418222873177122270925858450597759527139699899330965470089849945655143976160080676071973299575449735891821346946263051555587229188385505000029586335248192103938907151264072032499883578181566903086720010267917755700437842264918720393983730453211834166604926251065848380381137284967706861910601150335237485879114680848894948989423791393444311840476447009010941236547378540208352158051894152053254057175189792517011998312248411276839915889746516522311463539167882955831525372256208944253938853341858394760697700825258791173961107228743580759069207527422333671232192674336340578353453871475213639850372263861111983442781802555837140794432593665332830155684043061777153625054501751689026379671349132737437324392166297602682648075592663211501882879045224193146162522974019816624345294724891117915846125219004103059851500690046698891414235909916053707181804787359839749404632733626951574520514940193953542868938825761268915726177108288033342129272090031619339264432745548057167404187463146830367587659529426553841104154464473185138798975246841595732004869173791091695240196957412023399828133120601252334091296604834849354803971164031931958245668901742370350063260329079173997638244898508660445283182373461091935643348476575049347674188122987828602364678361565592378761409782872578525444103117518927338596194929888015985157015554777791223089960732672737581378279420099886278108673375249332334249623836233297599253520557411555717346419211403831074091757218764894805198012502762824987286652184670820363873969109690598784465553303059870591986316806085155282378043819626134683632180732383763302863926388076960873879955189949414609991877435018964186367823146015329225360930630152298341204120918569830419584377191837002494560658654965622173490577993824215630804986722205136116639093806705592959184931555316428656285356352597128291474855696295827763109912699855125913312496194242478594127254221658565732404567083431036730618334463800756644534769764226911142257333138592070329577553724122799488309645745935936748604480623518485786983758207391843146480271604611927872786800185082901851801621577939404326090468929301310564517015414422530389314673835272416214357879259689136308689496145650777015818762424388424231043437269798548313631824029232331687259927910105625670642093039949454230308254154700967431205333918258249211922778855340075899518459833186466790080746135688965266637565090510670026106372466296274327630855433702204014623970302202295246262563712610332963291902231480851311400062852839790241407758712668340817019744918128808002016149976339268059387903238809314410303769912861538751385601410756381779692667935154606107664008211315935544879250373203294364818327799352718052050660485973718233669298998779977189142632146645719159935226100396650237139785476000121623492494084094870860629958159835408575694302705778552107833233903631857252543571007080725555828808474405279197585369941765010249598389674414412676209770645908215786865749595546162925773808067635245057891440815074703375040356381041930399647871406298634592572027142389294098121499918283535795043093538119760639511171252724059110455072707190312118137846277564199117298565290693931519973387888125222547378068851443624181817295260482016587261439565811250550821744351350826733839155037374850683528333174796123246614689462652583304775269061524682910162199235383652572096311867206218696033706447723365915771673522755982533273857551062293281140780117899659389535637957950277695175897089782472186212312144898704105067418535336141422811022887174393522961678223162473920660066349070539691348771808890198861145627744464931811509538181746655742181814154651494813585975331240090125074148599264043745372156514031624771203167955727961307920765167561947071389555546436821464699836819620894714359114836594091313493028549547804937903821092003964334805632432731270122822777237893487317975791935261286405554893221097664389266923555903638777603925649632287541679358348594102293884338723551262629261055459842135599698631971653588903111454845117233798405206228138336478718697433680717601068126097352640344293086199798694179006855642467998234452278984639499506206819576394272892804952120907697022986618098389620743949379808974176045690767714383856075931339470328290657678249722651214384998377900915100642902823713808800538734009241075732096726244113060484222953521751013167266261339748895965946151037642438486481378390008038775875025240152535138477077319454130099271872142572903618333552859438636022261183370889744748886294508043106449718542382315607878147789371222162687324204528807012830229907265257218121979979330703882185193054423887543073833797739358946035019218114067974835659570133276903034373570780220802034246145109446033372262406660005559079318777144401799538464148684836459966032160726632688465320683846605376645368404216694408486356449651411528019141710730216670206005313895343660450359880463876776865665729863845877408591307393653295342224923270808320061522658689297891835149784407913068746068909248711471996997408178289634781557288627808227135077140077554216803829252551261783657051540885246433765514346500790398040442759620251515571205387050379781578499027142746779696515744896132398103732204785182340411959786850349719555000785145164691320124465040516338516269698443495093650386300166436262155098207433293731559578932878742533070464769221749725923028316240655882673291707667054790992155705083826261108654634408276916555804012148464122060806401914853852204614887646417974995672903008479444547399810561304981345540802620686913890919579924101430499935359438937762324902792896027301795229784349660662129206092544098244120341013086392973018889563700380540576212555013321332287802396252887515712334919570751813580051083428521237664687140016061085770173376929248872955289274493403441184021746706196585355585279029549911214593482682799055029739669566476203623691706495068300052217328338768462301999048670608503725986117917055567471909370219589163448258010207526704424303273030442609186677142141437052256153698255172883024794181854623952728931181399481048770393250604023794744314678117345889990242011042990236972124390510155828486757342244499062289379129042822956140924797256814457186776770874894157202053531186596946109679824130491284197520068397880788599809403106345439187273377901437306423289700718020869816860459815848007689745042152530125689088725873325275464634943508174048058637432004728649166237877324457480131908223419469538141336508857752636807875373069991896709125346359546573981434751190753602636274296552613614168246190162825251646706587959762195193059545680116117730681477658959687770061536857954737841309708754899468479443832277877529535768549338846391322061921308297857418367659475597990313645201271834675239166333300035844655747294321287250841727489099845755039702247677429774988691306038304499327725119665669839936009303690072720515008489631803427824730367102112601780775411992676402909244984286783257355572361163223513528944419178706255575796759212737979662955309855373649812073213148887360680314599759582678085039008374052587937248394384984318231275500562051794735888632125810870876652417589152271513466281825976750596020492228801844513980422337439161578483862698221279646990915096881071579861941738144985785755945853596353287945710314288571275885472917810570898240253787607377118797452943948942874443893702694463298539575098623675838138941635662175659642990789477033583461065738525270539778775828558811940323388821289793932045013343080135684916176769546889542372715398612903822835774484714785708518599537897781695213929254652355750083954294838983818049121221763349162428407175044471059803063388701633121535935020992429037082933926977375970669398006624359818677849827987923766816408120103979012714835318034507431610185585638564660818579054422158828547654705588351557212409567395780074900805347139982421870719800478250377956208720325736621732073260358782338143911440457656750338056845418324811739383326216597104048966968308381146500831686912287469878470656538931414963148716000441987509327208219946797542265300337105713554179415160921868009025937618452465737878179072113659179224515518334752261112095043051851373136956535623268954677133975997735520074057299995760613024182701619766277697074439377804028220551673773385736682712750730733213380026393119063191444902365702132915128246112061894017340929641983051208651613065191910971748801994965056425792889515298210051929158734904329788775652572339569330897857197062210836681709452878165478916829700642350255740123244798994150122177459804833984080736953853197877393352053474845618116824521755201554728724285971069552337781090278151720363525835485307033834954217288751933252730268027039211336323428795384462173445175201382502060737403720842976571304229692684351161812936218456572754069470722032357601345947621360783587793370882179024737414997354046300447413574728314599687403517374757276756656793023783883690321397763255414069389993321333700639432992755092042541904596170743806774444367385697695388873620066836025090008261062759280609182053941726990063594379418004383665224977653687681393304578193881925516111029644520560361895634028341084058931664239629329252171835640653260665922064464051333381684753732988012404053592830168510995304865982295408788682541345368927604038777371469874797227906016668477747138599282428665359089717817844023826891943128326426727974856663328395927759033779602967079377330582795579090385984658558418397628531982827019107903248234920863366748893245789786995867919854060008600489286612539356854000278262245112815596914821213863285200368766023718044552552860824640290692505075249981353997339292261591537138603951485000550203097917592618523797180094240692024535352056075976370921761933966332756857698122091220078832564440287177090669244507636624211543729448832935947730331347808284718410315144106545783922245704183676592992447832177902079324787675963085566502720802733805786660614942669241633054349900966177021071935486668889994484663916330214433797807055759928733858270119176164144907818850867814509027714726581870684575125162874044648210179130438446048855328978413933523416337916383256160606460019674358608559178357893654611227423126837139454584495608130243603945889298132787990587149479516313764236054623902959935783476692207695619661472120099051010883842777387918473980497826417007379643771418924760390068452052646601250793112312821395678866101945149243789765668554599337009231961404694045749954204850882390258162264820441604305826859690145447302204588701494187628160278031257393674122543374205100814629032606152710712856898986159460448369089363846554168199881813475313425493879787312580837939347025171449205085492162695235670870477407251285178539721497191913336593412400408603923672596600838237770755352620831680531577139464750363699657848663990726282674042012145217477166584599627202430804986845713987758940642587375169811108008726560595744082909219241631136691133542750980652541932934717243596156913204803453052303393577311368868574994274821843497903853416150285312646604443000987163106444611742705995545439945774435852342072008988077734408670471969834909792250501453558814903137371464922509925527410185062785653336600147026942153372607725292094826994112194467443642407841276223269032870762153001506419080759386132877139387890288057791116706047244976556507623229422279142997894706836332509566891950378852081354436479391849912963343869195323585674089413207576451544199192886793185030663260525501784650910141227648526307564279609251539978915597687339264552524451516608781216418684323707978952167684129468566846813754798536770625531929086669422053573610013963636928291833356778630386911804271516583345219500867720771578850277565058869619916459766544031254800882075364068272330007418911271883744959097263405735313100563261905569392695110349029471715925158998871839771919811689056936758085736377706203098187160321466752551999644081625164572463641591080935307317592842493500483640673668763800705963671275678333824071927770188657582617856993983028156275126114106330328122277562269102398968982063777718633592423429853786782454028460611580968949878723160785695006288769919941597450044293965641844995180414653898868550853142336968805336704684105747035119456031453575725866306659480473335040759708122755622762082568098588472102809285911949454642993671885183411180170281484020730290093824686629036211083423746888505205842232177927915520634891258557396859137235394514470494668606168552270996394961127479036652953248288227079440169766497126970355701734767748690658267364101551749367381913949390981707512057041415862987714726618115213795627162487010929331786041671290095693503636697966069512433962421590665207958541710000434504042083347379651579136248203838712171377043519977526968552360863781363560772776199079294544577597367715946685276135126735030352118420688879943864213140210750381181569069290469259360012795038019152279989509889713962459294764207065059850140242086207136491741837023484093841215850370199249328989381475983705055707776100758212020879587587495801283009717648322342418127676891446732718440350392171144592695932793814842059458375128197646671481904357524659894089303818483144897333246913406376593481279201799355546116983406543250906714101975959193409362944080822543033528768037244905867352025831624105443436737847252107226499189626994114061376878164603656884062913104364888688960020632142083877089986651155238460812321130658111961216320592135205316730867054524157429439654639156114923568430408294937896909476058098053849276676729671629053169986386427864923900491179709950504272959669456116919167921664599211235388071551525504113063551929337106384119369152796725116087133212451311770910672579419986535189209589949150736033372554532735335142960149603226804568480451919722223471782299597811952455014069475996625526823313537572811645051302170753338236035145627101480555231275712222662315351116137633150460944518997209916714012308596387946278090512354502544938428209883383109129514139430060690598452117441100636728830905268666518035823813954101308754084415174255550034075613806419275034501294512404589762359501970291523062093474485213278667041847770811621977199725421378161283599146847324790667854565062910525224531221224909131164323756600549124300247835842460474591205378845722850168883159363714903337841609423738006047458751611078430809455103627170140314460372654503567725428247921130160087131419075495266578280249193495722590335993073397829368101904258643751052353377685708816822193865211002466364080490076821820197792394646303853971256836941624566484631319498791374703001656976095545694531200940972634615975294147214317822384091404603222375762078478648664799330547856587318406084287774357929896454910584661066694678612563009860361041371612749915257846604703787147128341690456456132924219396053790761625124858098879023037654030429006140410058785638127424557594432684190815552758623746518411068083030170205832651741642448321785146050622847378478866345417888350133163354034426249897133881672458884735727849856315927558428365006236891975893756084413931886533638653107821223719806486134654592732278709541477771759201381760130865236446297440653676617913821750255933648155324850893069610386609862638007759270054536461704699861492050369459670470200913326166143173073585029147593401243486795286670818323131143257931166721068990480639430896735740659073923661644819554557661611302451743501689349929561093646440809639070241862849765398631968876429517838133136389284828977958865475063085874828033603873122350284864033069706478614579632143884194475750925600135664281241417545392102319415410168504712401886055216992048046294140546437953457828444269397704779711931390083883817580069010787676595465872900103749129424554844441142156420218588629720770144425243272018806857321387892601321026055033091208480267619973803996183908033216919363678391088585856218704026363206028317717731494987216521501973785165816788076380276022191576735006342130682840093594597945251656710733218009858844214033581384442480475742854199711901986421275623178907729090856747389788036319469577925205871078514117679443829187519786132707002257391404079562153406016556738035845862397289915655687983326983911645812469096449209281644782891594899294172329750749840843061332693631240475407945958429137231820958838442598875880336245744210675110537513551141268697492093192454248589335961781572084529241238363688310507832803460368939464224094436499965716947367682130372764408029181651744620574862181953493242332159793238586007810334938018428177586364540502308108271402439008377976093319712462367234209241132872951041096531307752633893028125988400351634754093106543707345478482184077499647052206020405850821210397718477277933465991422847948949745666235336945083397595140942860626005978016337158366743034151545281244832681065176739412391454468616524342597704503439934516439707128666339203867263013474576461817968424956139567919596893697482833716756475494416660427431646405977149993490683305388626717402990670704704106505904261295671334084665393837094347097439074477552603996547330537680082022739791901761124407174381853980359384345917679351001271156628780809865132095473062687057889609297471090455043450804488721186760312281661920655672705012196896317770838407544177251856432366153576985963847151875757018135511041476210248065564021475023769714661545413107410812284435919176356868579157069566510995842463011731040998989042876659615270516486067658014546034785588579334578481742525192166557599719762857961042468522132405436857727690244642975466877684690929990993775021183140023027011937271720287265427140580288249152132563797043793491318840110338850964108306035689240034624536735463343585246106422101467374232545976701680476574961216193415702319568282163275214618266794806730204162432595786255240813978647757464857792126885366476577976486792736942872915175965762150567465260270050061471107991416248499380141560117745850293972440105148080112773786141428996431825861875892172361459228169835458854798246188950089045993701614410519641702565516406215560929115597728426534746203956818295619879695840855274227262157133930804565870822022059725778678980934271808836989115397215108150827068129974789212451255734820825825194166260302983135010877046337270509265701008025580697300438069038909446109049680814986668052473566553409679942050628480462201270048203927385609271901401390126317663372397472410561532341139716080050015832184793605061422412789192560416280954983096763543476639473155878515473296572816686198956182489727501052644155349767981464540152392396258878126292749820625893073127865264032156516058990410471843108341022749650278956809037116255945138205020399773050203796872974352295196653831755722576704770521198882872815835757804872883737174553716909057620435423123162709922074012148201963004807782126519268830409928850028360445987853932572459760414700725822687948188803407063950137919597596806600140811330079518471541549862068255966442500417045933027018691725107987210433449334013657290192923499345929448744393552422353011072078703999279565299221045844186358593210363997497680823993078416982659219137882144203160475631618842600616984678121492093729884199508210026861589582965381169776189401151849866749960951118000579086660266458294287253613821803490431472835325472625489628647742178019030805274073187094795944769816658199996401856323246376207530593075688961840504110814251987111262340325367961123177030743148099265610871981713804807274484059935070800966006989062708699003246426763925220673259307809419612544240927148166600598562082255197369149808258349199869127038218376924288451168600653619931102412282470557327949016894576387681302879513713214237140393845342873438788184622126482573825838836494973815702719568014303014130460355205634721191469790080218605517921032347335259863572545291850217529621148319533416507565994467842347883848880651564153194455112022027630481003454948684528706139222362960303492159119147721694202977106277326964935695048944522168489908235736971581226202097379437009947353418641546025834558225420460854888000534047434473393875743105982270763721343281193686918641324400823376505433068050180406440010543888239179128236156696279567669981967530490273080682574783095766412359384230777653571420455323811042420737277825807476378650761516673244125922252377627231492237545690356609267972632943310902073222083432460355356159241280457963599278987648844213256136114590631148905760681577131639346581596122001341291679460292234099311405636254198241474760331551256100165847177679745841911970960340984488833135736086904398175030706156626343764746938953178506547416610823691467259904526548239513976502336134511005220354561660657559413107630231633193585477494261909797217481859384678967441426208187261936768063934129086652361707823677832113803491245174247287589712920072105606231274804108512873971323760335017735389758240411911924280307510179910626317825459799243063161941016068408015675641715335124305802633940733808569772221068889492507137646383264277150411023123621902961178325006135892378341298156750456441651919376285271468709309200081639694529772106092690343114230014518631279392466733448830270059737124752212146107438130267686359120920726779540763517507244731202172429386027565859596226368642248588731840354611979527837782861420156808097382755674308392274402216760491708338475310038193974717047014551522482131003619782180477660603726317490278287669545489364289533352815048952462466215701936802541736719766638700776813573430886144481182713163302364516975964140016065105069871555221423367847556009807158271757581163932542860118233300382534860395914368496941940451500960807458500286257473832404172728839178316160999667140442507260186809341403664592041812797571670990982382857442946886855105078698846947365114694220776628646898789260814226833953618394961340568981579701067748070641858548211147246781433300342033816066389874245633632001877827264564397390951399445872358775132533696000594096126089751645594096382933758904273459000401203632537008750161917919581341430437053324071643669952662596129198907671698317591979576857871135724633731197165161722914172659923785347846862587035163965267846842495405832147295049185005501402842646254523693265332657624979575607114684474372957685549190922732059597944482280976236440066351485223615323248606899901427858539816468056872037479433494806431281618857301875565156480217449919378866842811900435273293028146654439740922149860467961364306711773786580751628916943257980217645664937655216047717600575867767290181767307193578739233121039239275036644983053799969518644551264053745271698076309556284365112990429581943396139022728987313082043293782572229793430348981608501040963436287715961902182632273824248364785572757395902635158912389489987217766510485026476450672063211992961382059106836412567029440427451521369699186993758165907653594681481379566505058444337337406461011311777045401644661675852837279637727558226426202996666131332399819049428740609790410075094222077006447602473690307805117349783244521325229694193215953115406642228731785060261981721193057603856799928418204463857193695872513568070499625952575772496179527595099651978006338286577852169687449953006649526898182342356445289368001330428290835348508759265208639751978936177597301885837950527403158436130632622464123803565519766599858389145309046025010700736433433442309373313457623857838925120008644874336950451317833389687207612706102577090581381845600780253524052006074316470185769440858110106896341662930022494128797949787984666128296218939978819583603120843077199261178798700451255908232766316823250592724471095819566178169815528347596150519438355620966923360950682306675650734341927174858414865811105623549321552964799167112104846283782792892493060615159947540174245084948839872241337402614491344696834009358037001941537329215318399560331052145339777983723323230559044270552193691369410617996066958242965622574403872777415532315074892360262602176397276922671083822961100588383504375450440763816996895742590529131326881693929909256416940839330699845838917398511390181180202381545268672042739499965212410276491040962553202142703888115551019490714385514200548239632067271976580370230557431311639707130085768083466650236251119532538137411484350507066293109258904109960933879030035717109513913620921138900928787429196159230151660408580439660605073619462667148309270699326137251341645371583252633156408183798111615837999327532368209400425398433485863513220830249620703181921614669468821688834207546494652434069255682001888798393116022097125452871304783230045752857692322185565149543384910795429391754312719984164976470484072222936848654806027560739019326437126241329122979204801647088745029051791084610031376191751261510952429934492116451493406400361796634786168236188031083239676244409134954438908229908600289065364173740248982861085092183330160430636527776387215294136810237573108395697420030819641729551433543953625306691915989127150854435110535277792898615357954863096617781672781146341993216098777022569574163865051277634069377662376514195156823116457908839795762158643326411343993425989522682787319562724063458305085517606619990788447121150210272240331654497255842609324369590063912552018359728912475045632367068219120586586485693382657514940551976116265786058900674967720319797702933701778770027294731767269823234638873744437252696045853962962453571820262450079543094522150250839378555996021593931561768532994843546848983591768051929953899353205451360707478156761049252648450766082404599657701356379900023436344166835390953911800090534011810778166368463976157687902286161601164476267582196297750406186063481780374504689364651203638737061176979242673388882476315350689299980535416781921979606232208243730409231866844418031080534333941542216301729150976829194971816737974453038074897091444260955807236386485876792652789305713031295895719285239675971785138236014571167841164508061671157213221994777119139358605731116407383335455923450215980654454892209000122917625095905274628317271551848252486545870061313895390230829374115659927824147676116444950213189913487382873441560642880950252018421556951350624983078898606788988103725509763009474338177017796947076105373763106321865794613233053816716671766702598602841768626148578540212080706529946418086505066315243837654993493458553483678261622673435492536544097183759590822963709792402899250236302245086489706620685336889518533217247731993011421272845822740009364489787109327650043136068306596156147324648245391949730323054232713916418318725526418436123918628084544627233578666636644228513481044476414809703300264376592611428908580026496242649131597432329640585846410672766136736660226629357766906823785484229689553893395657220905696774517756185910217694647407695012989889697659821174472176984818434413306259947249070925891528179569233837484380694685233019837654443024292252645412721626742057301237651205019215355027230203830866368395860241768161027924757346205100815474712724417623930595088206692171426689932984699013015058836525139802257979933590585200241288505074123915349042001035438850512612265475194771049224798673151010794117498711402015693213543273340978708112952955002401573301714239948405343323175268020672136628017051403260737186346747177242905765100752424718619298755786375834400490439941337876731112123841051214407011765951167325547445477955951674083965675841885978273610303791156257527343329095557769780498485330047781755283181539994188771163831080891783261728814697391039062000168434744360770266155624738080366592271268797451599792751927031070151256399955116156677852412426933278141619177865431917234072074959223025581102296571285302694071817961295304891329933847367663391462910994325095470619940594413336754148183967214886338647613798787400989192066746501965220550095929579292993357203451218115794294987711247940228353668131662088501792708784078059277673022822490429861201573131882548108195817842068307568985358776570162279397285469394126938937920099598202961820733668946010302628856727229616228645870783891656081844821726447064261175518524137203669679738270675291507252896187228384158214580097380204386406479330269468319787910320188273573491479808869868871292383910302134143931668044432741588507380248010911318239392954577907362606409324907838825677271243502415836990272107346824036510546106551479925144565566683501844065191665205350079906316407894640641127972362700469570747215225928828599587104134326268910334458406461924579615049621066879093500984941061622156740254352971480478226297876206546290283320843851111213581971312849566227267508658329193091130738548404418506422278317533749432514196537829037303067581713877483601814261834452505567628964746442112159094271293519545032564935326966887015304267533727635222088074921326708152524741377710962979656957020182189853737711026320249298099910913150286633318978409281155697230600564105734892391883789317538597780506198973707896804279319576178675223240701105631028231939083119377970688397860455106696769635189592085915563343754138059083681026944230771412786816957102751088274455875807261743953573578218197450037007978987558263818077481371848521537169255318578626850958097551624822791881486844852315159385188502879474595544874250403846837678521920277352074451294798510495485923713382562522079560819445617585972346157831180916729548927057101840291091772381214702096870023875597686362276584691768407601286036049426166513752767198982848589168321256072674841053812173820501327269371517031366083799834213450757911322122472086864415226671760529557094484800849649320079853074681139321370564171958529004614651816827293221812795337224432682750045672877538635565077396583582035035578741447395908035751645083190448216478985261995751346213497575223904437808489078925132041114413275093647077589270363242976129206615423648512221088381440071946846848575588090762965462132160278228718448166850879938222865981674372977997728346616822231127661248329033577066728818716972108168263481583095322632610997409721493467399142307695602677340346228819752891351576346376680854973056511513800071059576524440742500174980020016107166659231927475326054561527820662800796483060050784433966570990766568382159503735122543871487295044724863567438513043833950177258616319005037466724038740071665876503379222333310884621716684174036259964473741316715255822560371143298018956033043509652814847982922379483210718113546021221850573927321807253830125496023103900653583736971201993225834277265424543120149866113037219482392491834419901889671009629249110916667236954509989536311776400976625719364681400747337784549277912685562008183912539559793829605834492335999250825796083716175777908382286365970767928166824654648370309527796066692384960058495014159229613092534002411413078723686665906793755382218448147957468907676563534213252948976739354420565158471261734184327088116367393214687755340636144802864509916984429043917045854391222229661886219288054444770001171417424234376821657782869309986349416796732033968441374614942268595786626184251871894751750814312892929306309974831052333778195221010759972525230040946321163461024230062873496990154614926159798376251973798039880072039679016997113317980224727462657828054998634968064917567271498741354158993416056496404499795551613981897607367454458313778111908911325350131953246010543032724740563397049048953748181861060549723304504626881441078163969948039682862199864707820737699380627616804352359060498954121478920285510409029912111245882336787398662235325177760215125367007445946275401240074478752494205563673968390192074603049728126112203793550244480622915965220031347947400887654842156240281500460432961588827158557943900133517159497390550667931046742591227395770051539953607739422476220114619775230499156593208552066027295467937506989848882194608472856251198978234471705268733845067716549038848253258876252673656248109356563550959826123002565287796364585973194869125871761180231446070694397111717029438525436841623336901917123691901401772493512100273700132618467530005198498626186942918148618367817046113488116217748481519988819267670490955774564530490712820757360803087047983235947015691718312284190061213971074228774042154816196232886311333668634825699123218353585308196878812417719111060323026315480031026887777429762612008719466544701216290206504777280132871357826800551697562670145190073664545580133581537996335635619794064074323601973385881168738032216456002056654241370022954553783026993948087600177743392082367648643930599664555592299340783904327244375090272710012026699735957698160391373627353441157487923203732278571829851462469307268118207107894829560511783108366922710301653803822922314088250382522334256676475024239643509720698560404734057905911746943972946966363244967662124579579778596864793849516953697912865698710700206118681011091376228253259270564739261979090733765174452034896048411748734309978372589987877792734294223494930191388727467928748258844744957311929111989066026429296020046325554375008949460831494179811381886825078767623496612095591763095590431081203903848745640799494721568475064357252979972960940725100885615221119871729343329507438113336479130154995035171212073638598410629591488034948406946037292050019837551130790696234673439790202526101853171675083537750743133466654027712148298110925595809434640785995406402463476319188868623336678604692034749325419953189893292344869405964073371788158984746620621492872795506936206908095152155715631157715332034314088201711959354173606786929674040448964479327742755493802854954688866667972119962549192723297067910081231251700556130191238381019557790519348422081578934112403788446689393333185988030021826975599001864795838618772428458431108362989930874316145113946516575298452376077216987254365064396736453894708675973375602460222790763722720543323017429540043083190743578226772478153654712145514627407054148655119762861560417995474427279289471249294232130024637522817427562120345624675474331036910399165343879366806973481103564540818462458706043339299550429867859043854509184436269916885871696275569664314742762959033774712183773318423461835589893606152528060033380810473785412907281787434204909965511226301420557868041142182334350156326356740180920343525162491093571887684468365788305666425839369970342486631321235240729717526872906829332555549529405647320207354280777030542635734694964868372437034908592655624988613740742369101086297675387362374762517593253269622995229793037829491677679588546462879585347558374533098469699394641865278045619746220620971692324270858304836120778716615952166594526151128799035368944830472806034907089790521784729202265406801877146845712119820150556253105385427362936655327703838845968334262321152737084613975952273477325363386519815190109558967298306200464260369003425310294060320898439102212066576555182031568238907313523610132185870357650679878811868923994839432050356158760565876185438906564361065620556720601714979041110585912471296191868922693301004925186543148074727382436105602861561388737455113459900221294851477921763728599380828929223656098268377914843954710588516032962956597185969567992508019358995140404190697613708579215870087765782808716800341350546568774735920800793087221878605060025881512655320624159288578398959923948174769381848965408626063128770238746678227932488188455024765508865051038585871865007185808760812268101736571876902300399523255704459625580535154497797656455434011380103312772615615509105762893142302192104573982073174726446756859547230760310256451658242677652899063702075967980595073569061318136460319494970874758023234089095662270157865626821545366260798572040398456755334911023146695313556025807647158545725294958010513919822095091994194334177282788291226298786735956422794987980894625805294537933768844584251219463697050111431427923405107324094488504081824410098503410405532914179397667015234707924956043007541843248460324822052218706731607190077022371074643714186198700324102310496817916254880397513737258272947589878267125986420688461113785995190506140012052047517516008155846888469603392571138194035729929373193255361490736254504069711879290773194037217945043324447606343750608243370512959437077996288294806189390707539839684926349652695414925709948308817602565360238697942118174768985472817018234150353414667306171348736836606159288679599691525203347533906101781274494194315382162851865748968730398698180665817906888957245349193917086974071823650837335630772847008323974674448741973989340476153889774735845099087818519974608518216482339964706035407624237229771649567033976668238757793881790806467460607248717680325064694875731636342649352284910191039317078260971873087946031403325475955445090214676582081948590694026296555616728027093607958762087915200297310071687364295625964822077957700735506820208292844660615654918241805112534676078293536596792371641813384246922665531301916252844767516495117571754530595524369478898208905267062460169501390942445998471792594609429740222664000277653716942009143652261718770049874955921079271928123926575614069304236091620181796391971360987280575472956648973532889014021765816691627735042479237655712442852821284546817824285405123179200292480502612494897470248759459092569689303297029131737447756063172572511538417204168258595670509593215343347386249517165431735131121215683352661163315063969803372268509303740961733684855428776014219702488325381194621115065132622215354358623447440565393246941137105584422320494401671339930023909004325960873038866180921011253834381857119620814716499120932792757826054958906317345383248472527323089670269660101421236245795486928848186176389202251448601971783875410946692215991306708237284429757124295487744129492633262239565825041507656384285618253827913551881274653557548688352035853368619889455542538836451798181122698453551990641723387931503443710733430928894734584248018988505698803813367288323953759995313208422800592509674756034535106754785737870194732360840133970484271161549591692302919655131909016919600853119029170644706886905514217465496450565468624683339329784742181492968924061545047954510108978829438956524107733400065398741644240051304274962975663770886112360303557390721091755796456940061092869041096731342308257094593350691673308443611328779631471764345003910971955705265781727666571935033227702278507847356203543560759282560438677956649880428594502645470666423050810239245403301758114195643283367343859014265502534134350252937845067295161842203330977647152353587526461161140937219840495768693170755635718856646469075938611332034342815702349801890659961508643246056577395877025750901478005979102206323661734030313110300943654088684279898514299641155214046736353195011812479539651966661313827450657297912057904179708436573658724990712591278426969705076309097346726430206647547122775489921436799854649209205053337383462356227276232028394373275947919581941815207759648173815227240683557961241694504481189633661224637044867350780205197751937419448569580402937141582352210238383074821963315131508169335014449763190800871689018672348525727013749866626312658298819486714274256933409479349604346754775471532298980258233947677473580837824768356955946406607594554743830225847135771755517000394093807684239039849394871258344545104134115198126089379810333844716997918186505546709008499162568735067191012470533963903466506796002085726775281728608336125362347032144581539506478909858472425283590030994131884447687852358394636670594898444379296561150836222381593931630296063066199975459543848913228560582914466140027938092764774904674174007629409293569028792220138321319510284721540636960494618123074308536385162909853157131512126925225657502913782073202940281088336568115843770202450262099266137564956970689951737740649700679235712546022139002050809877661131918826297343382648693146190173701573262035634254035615934506217789720263992967298573351627314481582112140047460023440808623773819408481221463128928896780278836132376454532369367702375669593090448190110272802932586529927416721104404154109286855866794131911478662605055232621121430978113802712168454874163624895968918879427097385050181893282198255580502376536420688977433513163339762991241875480429366404308981668963593365205304149928013908752453945516346131954271163927761143829758558163857182051600139691400583533178775023879607490780254058782248950413681256681486943503286444444392802432576087128392713472521427063156987518072829816843934572502698098381882848426860330449827669951270238609589242315328312698792889714176541036465134157486345701408329214956261703761921072448087245406271812091935725019162506639524577965763950869090275982256559455715766629988621601528185848629119060376656062946467563660669800167253393412429711509543798369439458063466004861987543921365242990858553547136393732180808729178394827743082265569255554051621882753340748405243066123147220237874653877003769282075503279449156225308916970128447754554618675248455694000947258348221427266406080918600072771337944294941259609290784283168650163644137500511376022268676899773653190005180817232819636753336046629411515141136678807145425633121039948852757724890676805047655021043747386309578911157903430120047216105505429982969578255921373763262113731057399169070097266009635504709290687941413955778348518666700127487614216440148567284022680018727527720626864673473463665763471713812619483977284062649197241737659310117664027055174694727788199453971204323986708910960916109829735024738886750745287562786134414784362844066019719466649399096422244123784617300362445181171090848438562570016902595079584907591540901560847276687966995753268817905520828514177274213700758009960923756781622522142752978300790482318871491810055269483711786105144647775769650549203042388029348123327181463752779573183628873567574776256907116899874609388371767364198391702778954866104524963098761876472803193722646115027350261476060691739496185499119205055320683643544113934047458062486535942562422227946408757167306723435804463383277529404161676734740907314208587601737148122577003507547372029866721456999320500352334839724172780998584721626274988122579050580266575930551607052673447485754446528748370054400570162924755046769883746364058129275540604060794604934495400586051818432087380765923634566469451417761316984282278646635505331909267895581021495509413446275281169386715579213428796487185150756670458404189196461924482302820587413739009274323413138090579701800493795222770657150226810455195586925136829576881951804920033187898335459415783296313607652408005900587899922790299372515226118313583067745185485610111112149491685956650056216693432370688552658185347450354271060074330582341167059854958899780132223890033379539441440266078312793366612953595494487655693531499347127480552610790279258481541726242432508711497478381129385116300051386069182918992987299217776958919511734392991784563428345644863595213152519643632722562179941665865940233161524325941987684115428009770003274956210067800932372614182881350962864231327522621324888692237693972178254100402376383708341573621784862472398745909253239476797811567163254200495872996423692328730407501520955758456297499532621533218221496349247202403485199929940602564688411280262680281642690355713045988723891393247653696093361725260787531195187970003103647282105915775322440448845970383076612372877273194600107667532073727864425812146439367914924616544822586984045615937509360520909823496999229444996931060098506693440981066677525740867806252517010605880895802991492086256167539711883610243064716239352216886733096077381880523375168063724556081023220122432497536088018546687892342807425077736872844225451008968582208486472141019777408068747364203211657106465919626815153546811061347226215124081125951042962702451712645639757722497833554467859309962931649693484503651543874126406123347085000255452604113200971801636814329795757869174674629150633659945280202160227830468989539334835853238155332127954436922828186208144547333291464939140635317101788784769263788751613518380812864352189424599492426446656440030456057553289835646214619372425011028300162963666299224961443819106888099937021544540508224157663409997229753500768255953427130714248350846318152719415848326375435516107847341053223092152982075172935338413020079649911304939752385580110081281532931931561031518612629557151419707912880751018419244703366205450262766908536479342277591878308331078417581716532719484775386191509808737987655617510173917317775951566486314890384873974709915724785915888080363447999206681989744798853439719086820847769802891075512784220190200156790971650079552835761821924367920728698627685302526623097703944708063653532531183209986613285092959936788474372633574455058029952000687792933371010815203869662167423862535879110555011913929946812769158035962919233852201063977547662362305774276615280487389843824510701825309946608352793569893254613751093571554956908585297593883398211106743240452328856016843710096944385255559365468415809647701774756653689185587773655607710031321337533712034696377020157477020632094758619251225468541799509893257447976985595961624611361470623328262007497823882951376368388819186747241524077900202934192362322302481570214308757566100193577010881265145251661812148966298754593427650655212035456379923705282907593266010143725688428087975664036133683997546297702008434228245867596590375007127364063730870301429056492755363705734868491073202504981282647896175121675386347942720077164433850361176366461848480097989468849055356054549110352158508130645160645159298677910648165579710180914832950539926241892397176838254221903988927698923801260152117317283725271725092447420901129269248900581729047519917118372333021355278856952416736398143069405931088197131282465889258907517764440518648858889321373075581993041941091050532635374700167560983127122470597072507687972137250501405861822996090183867478992418634242705869854079963351030663022041102868312278664799999927558306206972916213025332054551670945612030986897547930735572173498737756063793200305132816161575037540554144757601976207748717180103294713971436168008405725796830204560109309563830896699495018940225413505345636685980124942966932490726199485921131790907728533366405818348823202769863944432869740532774618917845916748618963491013670645850565017773495047006444682738777503029262371197192021229604597428781461292723214994031010883701271365312654866741944801424047490927135145520244141674615706162848994568532289407774730257026845442102083710272890499539990623781740977728579299360432761649536841737569689187244977659701150039595409439326712660461249257890554743049473046010257308849369042645868821180908099382835444163566549723398562546283726014600040700850050894594658469714720372092766606093516204901165224961476896291530805820000691650896284169826330247318830564017009910254349607119802930752092157870307222740589760774066167451388240243717335137358089145374210138921664480487701015722915791033253959984428577984923345539784501711569113602615607966968230721941639702843842844063214131681289784633419286043724653012934386095829842910625280232927224878828757834605119744809641968654324725300953191693727757956906019864185917285757798765104059069664816013437756576348095810907603762588379091130426554699522801363209502965153230091276739854997333158114862749086083497594038131961815551465899107053485950010486803443829083065228891250879183628791349465367658448388215133944997509421368233458204588326656354439215961775441883665963892417492472872660151729793420614419165195821421995073377832812371905576136890038374572959247031271942227554467937729700058250552069676010040449593071176456076442657255794762588564230140643381211283164216418255851653669153602248084560302020862639688308838751420847816262582659104226008952157804671156331235858047759631625992738742910763108052324669588344037748712037472965235392444111156223443864679832595140769246529783197159441060985801304504718074242369196895912783841776036081634107896231503770675230322705403264814128766033604025039176734012103376981519600233426913801751961960673497654875166952557403984371157176983043044066526373325866256115888986715477724865651370506298864581667629424738748974461680007337653063109040643426240975617855486795357701887826315746807111077202362806633264720995588634059164572850290966766765875946926822748501224917646695548506928679173028663346541955663227824809593915262685957262151354231871858696394141677909006937407590134873638704033382133676452471985291939860958467154475344700790973606938063905203959338660543616973771743349001192789676906311542588108305609547806724434397259632519001449063857692343732099186931884006042757561505322504987069255353563087913299341927814591059492410094948070465429368164623563641732709975212679027458930282185517968445181612576974346626909945137247093319311954647710161161228280025376988586726327871537337612584039662348137178271690602505719268983362800010463162585592282795389083649609715066376078830520558608208022971857491191614541803361282560826294309306734726150322229870997427473398762064116902815603182677644591512709840631349225451942787321676396093435116258506686530139586400160200375084765612028115056648298854169458369814014892371180690298971208708994844267454119439323191016084528511616616426914974162661183242284828059185537168222741871912255713999991533355458731590479531806014245460434787871949204983449122481693447274936151748145263618991512135380463938385182299594670003630080283968544570563173884762368689507906796549790352719306058670847990487898009241212039077317252138865240324747998215719438535837072186836646810666684833166313120815638422806417762926441896121136044733297616243488945496475914673463766201315003556594782923124084682247659721476206220707342556426275200275359418342530697046942152592113531544115673723976956020666468439136752175971141828788303756776297244024163273264366611138834521691625140388366055633728966325466726455779432563130842277580486010113723638358538796321211808840889720669820151591575749750269919849174707673875345186852001085190517275076000646802977713114464078424499539466755012802203551617959773942480717100555146771107481461183041212088510038175531580723110893186141550338664041855603209289618280357021903820594310301802927588462077683452693378378281270286472667514349997100266440308998140393824301499782423960636615695641909752976049273099598563638184581036062484532651246437732124356664599993160623495251129378709513708577537416172844403819191538191440829552608175009144539247546472296242796460564072047670734161939581510335226817344777003194749746534324081916990742759971384288762297154252913470589006932770618285393413772892547063075636007296571913697819834669964283691686313036368189459629450416361832277678570350637862208977427915508054242353249222391924744079837144968402570202553695688007639842085864071440315223240946351446039079491747475239333168405818739869295058740806107227116236060134815279185442474402795194204812688651860045864656321319986214742875462180751116313610610698194656965442443521736099667712954239626657636056628535377431287932222124634605089695017358412150272465204652352197707877489801947959853617605288520719474854685105604046454426486616767785043668703799834416402504874719018640216912068474644840235543256999896545015878319967853170121162192504250615081857290751162607637157215846942852885658627892724649930442461374077836464393390788650935094764526341264867759435465887452533312461680453498227158450625679805129221834403832438769669291710786217880144899117071925837356436016800139886539564932494114385377113009885830901932465328008155529549871630013776361288042001308010201634102503728743737686116867509604076094688622034439864731444648813454210326380120011790976551076275277124943565686569158919136725967473950368235700532643409492629197945317725926984349574579345804170671571462185367207489566146613622424551257439115287081065821859097395227593147682865694854692090093013109268664459823481105855009596549598436757223243655245454776243855534328982816149692337060055016688693092444455238716083452285925018057932740685001896305564813653006732142513096086476392886614922357204770540568684566033992961699704985450825744725858543829675347260876699399050059469601553285602192293189029651385034362837427982842101909281957651458841784169662504822455949112819864272303686631378164910749932338733884350128232463560474606697552343039684668325881243707866577700353387046468878268076556555310560439751767977752451374805227935973288099376014618837129465598815148376391450713878331184424563175464204585132257527969237437842812420639405823651669318991987083276756911133465104112853162160712545570366742665787035044187481845392550098055161451619898908099420514441669139757379801666683534590359656919072244126066280368575255061750136693723891917199642439607399986810462284407949027477014433849027744056910200339630591761245554002819781000986005634820117673072373877519245305865765044776800877266787161235663964675668068092512280010294515754992707924717036627614952522114815782498064669437418074464613435712625954470689219390850716357077546759530108370026605347054593361065777416477345542317055553955685771104049107847755744847328580791687528407847783321517226563687741062105837041209179778350751334512375141112710567664574876661770346797592625553537103313360334837351616795663842788955125125574676530689205960288559687084353092121825349541916433283430380054988704032368052776511416173307401651548877754892093853269785755321515835684392443342573167960289810999428026103106194697876523190040891251956062832348128383772149171417725832684473947485067877132796335053805383380125810595328792405503916001102239742408416198079112648797133903506338913380630581234057696534369022706821750976508330233266379891638183374879156816917729784801966836242479334931773897824925835185227201787494221425744418062413218825945723172374317140468640884414686693670992994879760760597553247926769139259369458180626874176379899474218545471015327625565550213239425359770381137946525346174993355625909956304060174440307896077384966367298349356923179787025792890349527785008659880154755518485736772762030877572153750082370783131383138577966767020588478746329615749650113229750125613584645654558050723965068109152370798444940774846407669717094762102694480621936301517745402258377578253277715941648334559245425180430714855153503294534886101714372333928021812851188059982186474437753958924231982737595028971122551967574723467020799787866019376330510476107142061867968904730638186397149040506630126703454935007403052928775381919039549520108569787599542616029182833443972773660476800409365222985658037726868716234330262365195283596473896672127678036163913977454476281027383744858077561618836706201625612726371104527237104155205769162524819829454063862775155963173192859891772359332424352678635817431828845813685138693736469982754099340525357571281751471544434232820021462439108780968911045076752546416218563204589064153317991530227137389818234997090253512488577659411127785643625741521323495336716683768562607370168128946179713996776262793616520638193789078161900758296710667041655499766238160606142750278123339925792499861799841321229115404355918966434668266377262165938329843370462259968757205031451805435615342300509259956874176286469856809967106460554662204790062998831476525725878293429049649336615276716698945697679643614362286688615822347246875189819466079125645577416775422432711242522716526337330024686110777480547531923854694672561770202913657968332323756939215012628069122363077579453895916246602339441702391218083725401059990418667397295913317385019236662963011064455848245451057860603603088535940669014561052675143497804023970494031267629275605414494912705732709301158533971522987635571298461813643588525428913337566057339121790018202708204797725016842756862546420696916352149491727029116448846147830728946996521503056136246743580959152396211102142478562200384309523007731509675162053200924517385309422265840014958726728733863880306341274883372763334476436422415469484982651385485489152048132279760031324811610802276925399389116748121551894797089702285438495573938457070448512346257873454502473049917513866394068619322952607323389711660808958195529363556561618341708891353935887879366398827616412708496668249290180900465629420621769125818757587890622787060516828657692942339039440655614941907606623381808730419695975389689795779314469141065007948356025775889904235001115464518160369942620638944270244237145133932098746777366015413879896565693562147295988370400510820761971762216171430394812677117733145211517401663481999411986307215713853489598301557428464122729270360841283166449004836819040191927273483327872577399210780873482155015658113949159533873676307987662383441314418910727632414343294369517048510037936284313755430431816579970442657898617774077229882258142388372190865946341231138544864973593519672837012412506348592732223355877610012061026650226598510792174596912675140287398458758763447308001113260740435683510675219974584014242803388444887195464445387125704242187532622934084501018719938340945047801540033344604260050081714414815586304150563813630679110990645768792122220159014166381077246777298595951418347641788679191435136696219012988525821150706659929441777480852652464063839709055047449825278093973637104215020101252017719941653102325700833009701664054108523177204825240159654586671248048280936831025206561020540109113893044666184579989314528542195007494519693528007673360660793606712755447185914154160954660554551416700360202128940077732315451266278694268063228484575311838038901160974176420406443983622927478074897269847119717158928452628581016850708109781729551488007130970197276945639332982393680215104470019687640280985622072059649913028388564955435830357380381527163902044528391968033878273502622949367380418911191959721978451805632548543783544400001842898767514211857177912148093027868081641742607745936145335143037859368216721607893158698363061090086982049264055324123113204221358836966591293555089079338552638612022460209969673257469918775854426815671732802405838472187054667665335158893255550733564574071668108170244592923379737258572029477390662280150571907855650590098727716592981380813800182407534075214730760432433552174797931423065975314545474288113769793217603652755180376998511497403126153821594391974085788727076582860714560436624811508456995291493373072801474339070233441128517970634173182322072277540696156855047647718965963351717500507088473842605953131978652028086922817527440292148004537713062646740626244414753103718738059720674061180865336933415675504938681443788905772563594216292960345860316019689690476411175582233777128811550764196694034799198448535475225602767061373401183937077307753499912557731008199522176824804459506503739110564803927380771320159604609854365441226834471071675248712308930783938920640556507393540812775115741571997823011276654895103070380258576670983336880731966064360229895587692583423474267055097261562591679461666059449582394720079911281211600386683548137020979014699940055944726595235168876382268236313777221718837671354215778957532542787559349638709181922728364941686525809502180225658203609303545780034337453231993241708499008499516588885465860752370014182125022613303227210916410092542929301585936794517687649786917479265271366777776420137439350856090312377857995876605263140920312638800059710106515925575704639628249780067087710228727921369057873381678053403348172670512856954246380747061652187859576857746661917910767243421560985098826980129781343428157881884232447053886087761428398566736142212834863498186454157187165133048535821326255549086693937323684769049748524391469035158259780528820927663385444384637042264353312446537152742459807233708057530340233098920739890160631715099062120564357938526298165050456646634267493393412125438456459015742391853362593829560392321448195850181943436082196671669764160762381650687195912690947155830496562044898406246104900030567137492383546124366978206131470888329058045793415130896065750219569058000629244919532095212239903121204279969857931738945067042768929646900483676173677727836560156484459226227327599381835188525638424727950615268722148209412457878661428925958915962495906394558700656772250430500437872988313343838332151611687818814091581284506920254801636688144968425716764566885725454638948496999781420829617657410565364231457041900136357769051287019696093204061685614761304299712917437214764175246883096903909654560578790058578539987203966968504160914138160762156760621564421214374055643823859287885832125103125308864353211970882317209448795673719913904550859629681715035576477047410456250682404735776975955176023340164273691141891947239505836345405578215890458350474363120060814604770346265043615569140602913313806948307447625408648580465949135810725148792597857207233497656657787551566973751825335580277809537858205661506653227199278533045951330975218636395349229323191912485064857381999579014185156833066413843410501011542111230091933343518894455260771873331602502970158101147506214477646829674529597214271777045047273342632185983703463154057475092611155389563763114036484187686414587975448507134725122254257083548359624082416265437944716600764185014770629085425780849828145715185158444702080184166963215780389498731926682758755818452419302636454522416628058790728746041673207817818334589357467994937723009107082859081976696405883746765802181550897020104984453584287371359877224789590502031227682789977506141195846340356594935502803648001787278529179037630838332635685064458998413819300942364979149756279933849196937484632042214602755721556972465191736935093334779993410276821948836675973114869076535981693298325201572181533239141088813642582889417444488579070293637309738782566713363117227451144684727410288550112782154658808209315156390591490773882735828151389530174514581171886131786217198851664321125179834666574238605393390529709113315885949137669101258477964492376739062937200706057026989611017714006376943415928776428457026762598308767406759985218722565122008893952386176807452147840165079425317374348252723021499156403592065368770878491887220621562215003361118068696955186029773403636847728434860936581793907081827775435653682685650600240010402517357475227828568570897883082070043237988798471276969177229708626519426440593945615295702930306994522500592984045909748012061043467447610501416639196223289162389325624610946320063110729677406069873106133803744371238803458808078683497646462238227631548041244951093318321107633729667824012701917336667406198904042678247683329039633286586574628777328210526838778062898068799753178097227914875658873505280634784440750373607223820130442007022811880615033729815439047618019308025237099081443345732791056347278678805936907010956140158576044349033242933508459214057984111526419915489786149232670316471780256455046355749625950069616007316433592126712597959856779732478940279311999512651188257231291562182417359328073048259357600713056686096920085428994538293257663662685985679006983190537793243969111338048855469490389165071228482821610576169462699690945493352949851700368556470038403196816058033459213498510779199142360691797158950523813955498247205191243253154950299475457093851593005904677400551914050799998358102882988872103667388864058456370122960053148175755753313200180539833543262953231900798864325720726104708855775596154430558604006128905170657551142684983460696455743642080058948818803485444269593402280772198573431427948168384612833247802669738072580022933654057165811140317866336648425160329394779435543492226577536300014187626084218464355334635118536166300035918550757268654095479664295538012922476921734802643453693349503950642149273898868497969549358534419673072390900036476792156000240603244994075233519577119724781845043935730211866745428114262116887102592490029707640801479881823551185796896701463666975238767768997425004472766961386669148744996017862591913303484199807177064995159212213777738058416328993555484692341684659764342691396600991314427745655021975758650807215537551618732178779782566054430840223001286733186245163745754430009282633861031389530899842111655852216297162837013009356939735663411741989675512887321206649541594132354652708710357961769488311673283902366390500240100524321713041066088309527358832338669059577160788013783962575140998892550122848559493289897986712133822897216758711629463885749816557323047366401190023842764394881541829351739928565801646491793346520948355485905453576420820333609274421818492475010182461124254430901124218062743105776777889955727604069879006061483484022286959029214634382885381273864193908346432834367697977563379250826767115371185680610713972629126842516428091978478711568168930079537826801435290709054567802967934739227139733857666818589614389882462360639610605512166934182010404036565176347663816803972011686304425773962678089355024797798394831809531363405403419081482105376003854428267198745957121077477964605040031894644752222386104087725338585376925003164539355545627635239174082240944937820231386770114406323776792665980942686284814765861595295816056971436368005154423969037918462366871785313216741035471190641702344500261958429137699083242980392447659011845112706570370130121254713460292277453150325388914218092060201909941632968128290563960761275420285495877811496493915361775609307654429220578500199650084782634454179736267618661960748338456921364645117728411662299890221580297376148414896401698019086563652730792581301668505136105542742493453220327217358890867083802982084820584847523969960160656240759437353539467179929745561997951019589371661419561436951960512861342039049314515102289108785111251209184967895404596231901038732226095810382864741318110032499617678679999765411739457804142741138149742229337873575681797640508499105934841859692442589396798728900642907408049812505851175712333115930885932671208646402284410350886937253514551284212193193016444786640091287723607636221863362225394522392546056950770794895356906448243625831047608201918051555345635423698639681008083506407071612259416142034023780681389102484837808192062922142344858120862464554104367161673529134608854846031685587815028916902193659396959184094936641865797527097685152859013908868383214038875506586364343100163437001569362777096573801402367060087530446774097821173300483174506679810547413530425962413515908409285776159569189976166618483244894537483492519123418791567092411638824353859488084752191211846890429532190666375961156111329512679858423581953440757063770941314538802833000432265140039379492615413602134563088129794008521318589452938531330955112435867913891760494429096241108969335271895173727449828182556371383102105534905432816696197692553322540595168741026254802914648284499563252703081373474286105040216451537000341647719210672465722253623945830225441450878988454440619387903665360260751506093625946564671142648980394288568479746588564724855801575807554450816323863880614193757473342863026755918010817559010002744665584179495602912118846264863150401780424973226055735025966410503863614804629721404238326019700466174148333721770986408293325622301707497677840046169842510199675509130055093258139460875627864167016020163883634260835463529289295312627855255103322941826002582127585986673402331079490940445953391294766347802692878844089803126572457260985629533725872985651649612045171100802875988632339969840406741743514854945297381254680269656842006986273799825813657124284338424369261931991723859877093436277093747414671405201220861683563636783856165537192413928270823965448736233799298090061662378237043748153217766238938400863920262877414694869615688480971224912929654822519380492403578283663397212110111939273960276925180724067139296789090248967698141559676167127021920440288766081890812253891242052354448451480732138017092457304891498878703895317294896933815293822048551030765233625336570388518709030186522674218884709657689163807639108232364239705943702858385579529526053620677823808877670731870950924718918564780998085270183128267420987451148341264154899632056661644448538903752150500249657992191376237475940302216801173909063680475083879744508231801149603638723601031652546598260030163948303993313954583592411549189054059293559831937090046130470839543733922480165124893885727382513385665492100151585483677974571390602566864110597456783692711173093375016393544318753127547432259817316892966787609148469496048164083133015721825583863749573048945913555516867892254202639189668263999816687891334905663666563715491461386529187209312502385301352992183219154320382239129281786725853261313996403520705534429529231891862035677092767233221742931492069703911667900585044517784455394628975389936489579380304403760615032963283353722142595571712075511540622493158517114673191969289441371017394785442875929012506697237375322849406920337024554593585382869426410492250131646615405124332816038295451717472632824537887047781358475471507919161904002130539583882402380338422646900021361504864590397577767165533950132461729525001010951114142740085113234109699342601244482217969272353493419585436411194458623018315185207640978858660410122985494769075140291939534206359057314983577493681556134851318546237387670514822056949346496337182489936018962136663065679130819379826672386073145496730617350714178010396079360874345988811977065390174137516837325699469755483751967084223318108417753183076470217455179387432355787226036767735587519236057086808649326281577879856832572426292132228912149476757306777945263483247732045371916430490525361776368160283557048751179864587587009444249969534426320583482462488587259458259260245662381606689905214601260961397830017002218202197583543222010786430533167670896629681864573103893669904471503840900865076981158917157689125558394516355453549666912536716218591531005552609039523811243213103124143805340896581304535383510319699226737219911942057377172584580686295609395338642334276388111568758337287857183175001145701533046248443893331546899673750766057734120874163124456982110110543107889976432030440624562475000232594513100077483282050263445903520995191105484636181050737039592020301284147534894791774149791417859288623915647087886531365677755305265921509697929038623296854816487285725414795772468673325668816764604110632912463427691356501484903293510867129877363093816031041522905461774704502602911880287798054379294699041306406938791367214941843108883698284641135114719960178215237442265925407305310517309807223389694813666170782188828041454157367665986884236771331851504381270852145985020686407780293095812941730726355235866691290312583946492188350303496584256436076206236873875251634382086191074329419115091269421265571661182635277708956086067467790073838838154099625318300892900831879639125150058310494018973733174911188631423305675149072248686340053944740826711131137060505094345008285701471588876026021817158101910229855160882249005687171117964704177514693668034787783789170046555011722993439267416757583381116227375110981713963016099975172977321900966874996192619684623197580184375689087221533011452904578652923075082439313897003078684146935122042567450004734374629742715295896428933151346519610659924630506859557163889549932200154447830492075583029452986154125859273491287447277898923946677060471294419506099017026820617392979455809999172344428218651215989984847692361228222658915208668095445747914304845894412809767768839075314868150931946221865068620095313239623609317553902200940121495404289239516795239531899173647596963962078799955316522938028858257152021692029652504987325375762266906550626459456670237675328594384464357336947967618511881756160428128215443827370353979528786657846852075849853680407366523590844455072150369559665788195608258607937612270185515527016983454027196361138686581810237279246466746569959350279182932554429781094578805203433856381656682799575751025377033583944457696112455869278945160348173400020245913424521324462399870847285666919517580715014131148551378735348005890713584310358231538941041612495165959456619947159280086599074338373577851647559069558846518402546660283641977721927340139923855857534902025149093224464395904728738610802874012356386463793184032888141407391274036661023768612470417581891482357171206316919301418697287399621067590820198947482181580406837481925296248323729180134370055425243690297261596609903402000877668143254099937538233233849149788864987107269298501684788911482225559780343012854522739672009704382494761330061777411537103148679476225943633105808239391688122351075645017923267496262532407714224427733497333230961398732932682090418907357113584291929293331232311835428699628350997417789222028931840820724681600643190957035979812310122180887883337971251509460579503707743627468389875119293024284983340868258807294320344765855537677316957808272454820654982201336391102781407162346217372791747876389861976422765161136529873765975663039435361199327893509979173191966019392927852100913461739682217742911312485584090436101973171467703937582224518874749592394690451442486296127023113862983801298466326646073058418871633917388203605614354309639484917046715724078205373746640805135495874748533885013645187852645558969436480757161791612884351586537490644747924934857309181270564735009271182721422706153223341579883826847343614011891688554437470609622357423245707444896451676753722967618881055048710513125312675142699117067155039264436347629621931455406225285498042231534599315361002158077062194134827077975823168098127480131051431155950040801376311989853174593119308694238049483091094206942618720940098323307979591933542165784065536660410117308673718906426984093164468684690685982814749423699780966225227295195289467662870972718329855333537908066085451671444986947371722282976521440132059393893021157045999615174057269604595409660351589661438583893818508057231255902027479495319289886142186664305770564497847317411103858063918808566212063131338438986836937689986738239669168681349212288761566598798297419065990110054145915716810667526166060633041333188529800226346892362227471657319102018528250959497415563912661157255377275664142462073956465557404137440312152857119633085928380480239233526747635393205154650906163876007746993450738301119831761081636287534253728290485907155193019436758789188126698202352320155488525399401560061618922672095691017245416707045419412118885725344904324520381725112176425621585843608957460856537637750696920125580053562592690464655704113213430555544075758499872172955632630504380221166891539458996762199431330391842313302582734679946676259551591202644400143123058412469478753083766362407543852621011126336402377379729512761193412181279386077295440881596374852735880250100569989055871270611477234096124289628019300267278010202680271496235227377262878609916089690843354041230760948522592397960667782723879994474546710781717288669961999375477041475079378933873026813378557888377183130095604783961719768316786088461546472342968436074818374636956046558962408033311868017732161920468192773926153196569333821554278984539511713618843232802203253396627276886977314465516292481113092355369105257470739633091811953875745786023143088641068512253251158189257139739865988969632306195779520722270471853998433133503666503602281555290571154692147664190085667396711931154941447226024573461025325487511376372398276230490013327288050448212620152475631894267194351484405132841351725066283187477109961858220244480491473278403126118677340983035942076661363265813679231149871000410672675361032377522152139764195121051554347703853750154891470267128559907492218813342486322223880152691432183792032283508438332559847148227096062740802745488180241477117277170512465091403479611808112667901765709626561710348064361249689296610925165473398606054202447033380968255769461347975602770639991199854977419994314582380812057185587540491508537752297869516390969583294107898335368894849985884462476891397985305023143544122947390326452740744174284563441786232956463868359396511066499780164058254341132943592207885456745400523502838085302597793023903851969760369588539561335019411398964979016186123530959572872322889281893145347575619129258426534772141247772062499118838622844795426378511872914031868656520611877063163507075717440985644309161024284139039897980973166902983636806767457400556217735070907026372104578079174327815118560017004209209476622051061846183628136067908091489808372006104286983728402322625104683301183671347318368350990189040171678512971242483750008516280273042049362066708137455929158123961241420208860547891574259949631051453659652355205939156527275638503005233202994740173191691609599507487566056511935538531952716584040847728613591027823854756218724325115044542463497724051904312350559332870900704644509272029934490374126682321021405816956424780910102928460119727053247474981049037970309731983929860623593782755327120209291138272111538902102742339164719328428528551085465636642442768655842933998636899001564998483633474124117232501859299426542004100582486328699215880399819819546402222372598298139536774276528650848747472131557391238171328294272119839376637227407073752271129618878447677242770816644380595315142515733732220644948143739466690994341679992488554100751836766176204045401588022850684208883745691721164133790908950608346363440035380531043993838802141531815681776670126533390022761361590083399248841975045755431454536076785594854696087447117879715590382137141245527926058690332009930177347763101396873556096941821004768038101966684790110299123438654340051128804257338911741401393109547325742073564945440777636674401632407501566812588073621903242723420364215036739523624907720749827537776889256860278093905249118006395794957370123149201968975358778053307419410073658944521860727405224807717795263216630961056694743667353373405459636681500588795961751409044480664257940063524264844175008089614283135962068655004983195136596313922038827313745934163748845417514915010594475242465501563315139739669123109717772919876793392979968351800180089397663889479053014057495225751524292016592730576353747024746846947789510321037971188998275892825600963027991478679467348986757955165013603371213467655577626630407793835271475496636968884082245311599448400962393393080635547519381869015481620858591073739441915343777350278786499627328374016252690520208681717886397965352394231093652305361625457861784539298582542578681241692970057258907768309052548560533689509652094555833775209981034909863663852920207392103977595706189253781631783433898895977080620290604039251170574151953900540182529316101353911206343744220578747616781739091249578329723362337859188624863889048857795098053798112373814181205069373120422042692443694246674476483861016231261553845570418471776765866998037369380046640743237469823595148883546008989455600595410109621220083653152829760448999426414046506622427448045363485333962570505025856871429635631865015095181733053955316782715202391802947253640957648550325979815881825004222367026466095275481554329874415881455531556964007403700103894525133558539268006442554515861492926416486466105858720758370997035921313290260202861670282220126787014241078339763453719288187376036986101017276159977417188611455678585284456369268048620340065222215280756519579985267332877927661777792601650038566864601572405345726310276000298400272462701111540669921004535247580043944722363737036650045596535831406567101716735377269126290786532172441974521239012765709412756972152996353395077136174603574248106602611359830423253652236181502529020296189139922578272657602159132696640688228766583048112964208640750198955860870463296976830202893390923887820748410092066450451820423330751568430136679259850956016062185058990118748013923343319892285303323279506364139438389339356262589086273496895936076294224395177620658677849898605870731801968630279466560652785365611998343348468278835466035001272756181185828533722032515580243110021431798252974319643427102360280827728746354661581463745505236833134350103412393321889050222524825129411279738168310515065448449002665567014252231980756284750551929551245476322922361032905174850690124118765653383530256259593989671307585129145224628079009896296836739292508967741610528201213445745501655694835884954526531951405348261026464369392463759566670987977136301048415703008726662235127785733613960855962721641832786095927053797539445920849525385719194677494177292197743403904207829001169504854573025126494452301008345700214764085448929359648525059366886541040752100507424495611881101268193684366701577081302810390715421672707734844717531285889114025564288092025241125121781983109689498437841262404882461598652311518171513796484155763031452699816145051951987246063650301497523963896663061474420206404045119093243065410580556997477384740165956998231536916659992859806472383718822936094607991555331137173058769425947189460995425429481888513385869347554323578648886010995744182699760588267790365878470736103638549154010758479132360217294681991388898249972614971143159608334012923669181800266725767572584724470466518875187472655399666741899740485322659859033419917415354402827024568296301700831664616371616366353357028913520652139795192198876284652466439237320128216380860002091369209760168426560405757155099143368939485711181314561762993719072420506291343411951577909809278406924209824153118184283572775296724187135208257431812508802169107523126725751331475076550341912957250013980966879024116069565943189898523313310631493012422439960677599607892014777565653431860381722039486703695699767528473566404934456427064617600266679064084499034488144201022024303750842954946456072882527708714392906252748984708999874984182439490314356706474257565239520147378713513530408282276623958376863553464966335840338746835304019771353163078146440357986915343918686037630960393678740769801882668033993801100557848963206763909094837214805797175986931621711091391802624457490355094541880444281659189351716604358242176684696462147995231130492974533936272215850223480023168382822013432692905694704526337400301562980737667452567919966265835751528099758582994195065508973245026713549655438709883075263738426354825140693279630137188389123569386964042812510447622422272919964557522383832463301886709259513331209128953945852763039044251591078790722872260679831483154187303702709237081266991867637587491606422804254894833157493290786454619696413031077662348337957691680364116945020119648605421250127038184677835728265838194115478930176759237299243882070326087464121644433573468496177312155553153994345939488063343364759135639088630984598520769819011632649123700887697141007563538835026794988809581610439922447171975353235487527265999060387212690951680948489794014527895775541883816666674969265763383582257111972246804866589080617278021917276872738515452298811771040354732079251419601587587725165220559199712938487812276201984122991673887701104279747651432088934885984428941251965492525214713493363601306457328578982264470348136775465313086908633419365490583569047616160776095584248571365151177265171908138846790541478800019512551165578710209304415517519930406944709635564579787382771524140580299701783530389238090898253165606822792723224665677499684513088940517918767323814053348293904587274355479371426348830482732066520315799513219774557875397810071168994496239226495176301627304510384353772222554839371884656408696877678556712622249896328526821625564188492821051465388602726315997543208800107918823332474629508836062310903269677051323291348631385748712326853850290765487500955067901444344187938853319614705533084381790915848951448494382959122673161321552507998977311204999028784273035312399896369058713277866393602547076928877740726903225462885690644968766387167483457688424093401900437308817738837622135838790014934037958028427214395601005776063319080936004635298198699895885013008049273915758687841347736034052642623699572739455844441606546219356187558064911638203636033911915720094013086827239553121841418461474172601854718731184434416355101489129226861762921280879218904933350773985012983344525250379949085671854766763218552825874006354042209600495094785768263164384064788158941419996388128192218602610250352017964939107277133369804191697771068368003619427159230033901635403587042714898111917534350202802361867749097373767556884032013492015858964603783164126794023260382088035611385565914964291279865143570501235957231461874306961782198697163047778746844124688620952031942444254108585315377358789751794292266764361237640565818925424221423712843795623774876209293727621973956195700422412744667528484917993177769407430548287049885131351184785057551814129683220282787804276964047804676358114204834987338900428640826568820891039384647836779579664215640581993943796678927396431862779630876084145918157298681334022759318570915204000881842596424770457446961148960533890708303336801986335192319526652510698961961498729210237418180642476740940769020416381351944261610292154705824513102771200629462083535469403688749697936309092236870242156162109309876461350287451637503268739082763467046442955386282261680396572430919596151441128505896387517126618821256996868399432530963321099124911594649093879656354160948131685228038594908450026052960914640041570685802501804749909449497714792522756388083360271486457087563629056847065336500213691770913474673023267309514322579095054506156587960982273452942868249249806212717574858547141119119832262262686271054384115646909250033889963558065868399577385131923969029215206698328652411994145423112759075730620647867476173253036054459439096891038790076815420642262143417448444885038939492987162203756754669616295985088501978437511988041102811172510492104876652455129650982102883157706205443200628093680443218629857997641700172528900485057465233499436988679250072621503404359022738472679139899807287229912125879591796626825808984955053358578602745490677328961107926882330061146660562691189908453672970305785033224217748211321055286860123338218535046163216559119789927075422582642074841007150009865411369705057493257089519403857011023317317436678293429494126306218998489946879699644201552317198728548453467884495911099956930729679203090444213714542850142897759540495148331796197555247613283581031286595469785952462087862419431492080894307327562588885697832695780917312689538523555586297252570140993479773152240265599986583048985572614856607781928584155455812942584301755195341055419841896515588566303281449458215852116075346021620603162927743325609675434850932893782475272358229056903123426874866026309850591408266081613648279111312560760058112121934455403793052157955345870024599366947946406894031005097206997037378922559063433412788555515158162499288369276200939360925175110177213653545512130201954412597460566701395118500068070404011058350284297513896968262089464265455802008965886309060456331013244173965606517727421520563358487835264318495603090045972719459181120824807611225952987512045645270884596862821868655937487402450584781128674680495780308444588039719037519807078513746537003142153213701408495594598308339293566398441480432401702802438879651256178240420536765045195996462809999022781780101106523447267037308444646631516302268514726907041504284008991457419189821620248577688167551114973726795316592574703630992501507661831883333142585982403481182767710935177861368919041355587792739361009904490001210231517917576274332733093814298905977541456868680516779578343796103623524631795230194546142367322441889248130942899478610823377283400991385284983818079945985011849193273470404793516528255327929653275148466754425391123233890453941833301334411781473325701393496906968569851825086909396863613579272667427466230333979382425453290746543927052651410555175659326952959355627357399664447330961734652783870081922262031242373245340258738400915975386700554730197706420276321572286842217679058385451281523095822324915001210175438278927291278537835177308128860912782842826333093356991488982675280743340910395457656796926719571248343508333828049329165033307482984891095007634306283149703753442260023449294753228805140832012934443227582787182921005601270471023475667188951668971307662831995379614862364143289279794447721258519356725580339115833212550727417614334263056242273772107082786892794383170753340948911208036631512707162624739397865180847202077909923964334973657144992376882745862115073995022683249213437322217416423884772160014925637311710846105309339718201991576444015399962928899132670637063393232698723443586294896027563296814625168296205076270522024662412110621103003549422131922325097734655600742144950657951898387912813071015714982640843914965740411876665004534016155279710418647964480845724739910687600396878730282881098038360941921355871939086796130058624121081066455550893438288013081882753774463796471641708784392115718294647135830697450011904458568833534197335103957811758005774523416375534970078958544958825013452720638803556662789004051091526803956415434662269548405681484044484367715524431613323716448606621659823577017341884009719515436434172320754320957663866545386895763819585247685344574032495853202442955897408205607510976378498962681860421275741795875361142768328250003463067091841535255871757500260457161116381338653646572544770864842473895674508329379656845172617655722272296444742864297584486461407828187965910093916011631882273462631318696234714958843284589577087509553790920526039231088999090185669981716697111259499094073477306096146000713081701058344761789184719754036138515429301409519575724566327136001577651219526765753143268748541266420052369164174690389580256972733300189071467080100906743930729437187966729283189464379798014048172102390355917858048671084673831642151998031867850267753698994235031658833918769695668240765727930305942887841834092396887445170895436733876873382097680290478925351194259633257939527850973338245214171299405046990504599250999369876945553139953742544503835556415462283733022847852788442771148752675214157763068286599360494466939219434077837120208284644676449499366220917647585061677489500343446424181976718879829913757548827280969494743062300565817499647550288498728655413868919017507633759123649699630636337466620879955243671009982348108103800713826248377229597539839609888769825791794424330827808326230483374006083418256388709023852986880447708597465899921085486244586024067003014053185699070435555427994058219032448678771316015298452794056454389244988680575464227014039621715140016082797227498153533212684272984037306658487116565226792330298477030069521797049252092793028322272364460826505957582727698727977478216227491506417335319586203876563211121791279091692561888312147705493092653825930780112101810210362222330657570834270960389053137564794369256065109775855622961737178687227653521666320307690685511066720520302343598212124922970612221744911546014009754394758959264593994986709535060105032441163279487812108125711525215102664851624979987861991948519783093049693624634876124757930171060808754487851163635284058745171927864506817133436286134599617400758256758529227793046008788633982808985123300935696001439118324089910413255866233612417746234485225632322260891443507348897443321815663082064526709748336873179526413834899027211830741248407550312109592331614653928507141308411671555494482953189312206123446603287145478980422842577417269604053499761494354040693279969991344674262470645536762007073073633133164898974645204572799195788143972508146445462947471821824581560042278109942099826222033795016630431346877889404800726776070352903789697682683930223045690374986591029663567155774372160050032493714294660385453033677359612630665768896156952586141819235214965344475747607797002431145348325442595592043873848550249582147543332644696286660066565764629894373613975106857574012742997701616169669380338388126106031892240986163954850917742968142137239352999998669104624340075670095676077100718283367569729604888006035645107821845230165421670173992523279986811489007334162291705134440610198318874825845213284368022583617360963974594875879594441697785873926428134673200989499342144591073316061478405116872839781163860287153302137100910103356749701654632704403913327813598652649143248790866094272607572348975565234186653024349187499142252871695168278547784584548361303187285061629717022382714463565938215509066956232909702278284487800319622460991242666355412828557655377299940502347923976825972394808007065634369180921379854481716682333141746981643443792125443667112303038902207966655727464925866395307480982748694555034458699638073031235093628913304850249000323026754961894644762253328407332918131373613015823942811811768157872996220281973900629361828142396377713369875057104003089246617353800431808554410337223151947012815188246970595228411312236614252407533428607963738617008214907104106371766433387955965913956431053663279559499440601842607923777775533111665976810018651390606601529651709347259985473883771925492019281618385888319804610012051673207058620376000192483025297325858444313620147027108028432943303883604781086901341547500747946454895793953816067329557143795763485584516911560880083529175193454451907509037710868527734201749586521084948849412802080772870794931195381612379354379906488312114422942046780720537870192713922275326270003436545064447212547598882296822139564037361388456638424491637081613584207247523932503940427655930916212566826403621531698443072288020781492915850756044410515016481476743030386680636244506447596340766143592460567794881932038762160598862539189268818487439431028243057774106777822183425661334865353094682795104210851908814069739865594176137947326522598019581456139553830249958933696624354477454474555405969739313584351608885230631706254324610856485085341623689686927356552568329438211344762188788942800300517733995069475649088991629837182994937615601733428803022898075541748807044739340990709197695817297890559315734950669035778298320265683062094701676563657700572042606938423204591305787111975145920123431406530874080855181750769286913351419590910643113858419327775452613357282264700709379488769810146615509057541686315454028577493794171927134705803252151977217759931436506964398517434070543292666091189536811161695453166714754046657439652317202058753248601327382669853860679214616454069532244174170180060187555287494029899042146637194525270833848007958853527336245764075199479421755760001025613948055838070047836100458609911463018893264135214429906735406272585409039590194956899967040745125578138695044169595052664783762865985009819633798910072324234446685344585449134522924662126275080220284969123756981515477508968828622912567718428594132356306887817783593138659589023344681456833318069349682647380806692280590919726950789170383430906697085264486662968308392244574672939974931156685265629245414168089256705662188793656521494966498212188601591353113114960409590990199298394578953368167255947313341432368780288115894254835962284627701713069392241023452068404058262652895822938246360205679021019728067791663892863578299623622556829055568218652973238158103151432755891319648958639845020774182059361168488434200549819723113766870728073106833900482211692919807270073899365916729860410679007406494962436999713096479971067402817415296685376879188191564271525453797413437840981234459231270841324619098916066233193522643709516849376017024942872713460644257006925992858133500827730488320127783281666267321812147281533745171161316725628474063080805180810546153704063153528150574720719869963683556454273939372334907237403845793903995297849290439446115459454782444471647812612670075447429943047688082143489719302049259459121066955987094516268559691467282174368932815507995891074646224391033893054464034308288501290618416604741130830365639758558038063944656748808476764776658797569492622008239224899021014772166313258013357959034380634509665044883866536257883025669857948493663701181894207314519985098019823828520386303278236915269551080316974837171092038973151128710420869458628544672433715628417219955623366639798073795738916965369423494566714915978954083683597733128719538447033733243067126439094375382406536204475094244500911507962416947742242036808166868228008582897482394063824345189992307504921726305908666779771948285544927485200717973894037336683135728799815848057120546838565568481175359926552523940717632726291581079102365551479742772115684163781987786953329189472970848955270039541437030031543219888630249706536768470945839945452748373391889960254559527696851885496365416946872640949255063704701933061123351726383317757671332737214272985773378595419759104280009581385913687904596102195489893434580179422843301580411383082523631681714967091326025610602301281673742020635690866713504314995229689628196028734119986493627414539047601820663888149080013523797177168805025016169588781887791937653432671365035443282642419798974992267243667688600520250985648222202503694860538528108415014129255818271451299475082296923601004997853573852421061934661408715563223628416175205406491489791396071767110261592403459840380552000027705225815706568739108628550598079148693248541790597384080895966141972360139766567618876396772929205527698428898804918385600940512345530065386876491444431065101576688899301029917902415404528446099633178740234794064080744869257006076075820274285253763057612688796943953443609653768052117148616768269527140260654002126557362377528312081638444504094156035677112228136645947683876666305868939909232866720126531051593990949260479149192421965102259077966903883297505622351261564945691060574447388168029530882674559266533870147643757643277448245842405279369009799329348867874004263448530935755644995035423034883779670622757790409113416526974287791517195242237249876719361976201898987533967015175371125748051499297215140909672391850918497170426109561114836280344559993957456911249821168750256765374896076658853317970534061488861528646967967468790782594902306724182743251570251913132996481326862370817209977962043038076012588059579874840261429726152660349337144506379664336223230733956519376155134842979956954392921324727243651482418542804906564169257456842150898208865295087966751436171391867396434568144097232915739498945477759237548551946995343458142491013181092628904887887681979401514170125465763353920211805401119492914816428296204120796896519550036594526842919519217876594345626228752563627538032408048162213747390275006241180070284021423303210451908798424145298612941737455554007319898975413703581160611946212716363159154425675212595481298739912639118921251623762352800995045843416663959516510814975671090146514213158769162029182123192717580642305465735671402605010251764885434613892998231282164715655558062952280933339560136765253250370169402799423770698855161705246720456760927532639026705623958443318283748980003062544748627340458261283926800767613815823595514066999680767696395830114603675192910191002625635214475747480860542356208207000900755600933695947488860287678066991230884898287684751591156447508957952359330231610894061561984799309134153536482168753386311785974024087747091675229209940455051732691145395007391953809082631201242940179884726118052237363090330913740937363073090183387925995824203696213129924189040205210710247868894361889523180251371247239162622424776720457932605302861921166306919363923848539936535919292058132664527532131094474174615234168656201485187273325832189355083068357064581283248296781880307789806503009269842137530948388166067309381489692258123445764883799710092354965070218028177240931072908998202443586524852324630819808697262133700728024806469045461624346993216885785440680416035766999009863801760002751981663753707800736021152335783597530636757179136302900128167022692779838829441382675069011829576130804391677033032188012847749772341891110412557358011961489297111231475877002341709904564878065866014836475894204030446961940068736824775239627901506442941588190768304104913173817387170808307941929336068645974030851793103111738589693642965824089787393984632398376057715876701801545801512682083875692389244447518749821382381882266847530540075725850861758837137316871708181996835496836371947703690540986413936124919733193558944098836758133444923115791654557352878025554564903993547380279620319773273027542994110465129932163614943265563614170137488509763030344377295736637064189153050786902445270577566112177125062028897342068596740756647923355322341362677885172292007803266384579622915392182240863396653852181530284847368985125198871817490963670532246675217330943491732375821069648038519742424481718989962576434942298920992864408264392001943074455905586278757899341858509513845143908238634772996491608214702650833626409810912306202691191378730464960896563783007962585000917052313246464656489739955373047336675927053629406860283403628096934357685639493654246636273847137181834381422685285956445109920507676341811900572524729584141955212838231961299287841075515559334284078124903610366886393454060384137717972826130632403211464786650209700582688980813030822661886955352825576240106576788684097279752533190987737309101529571798838644385984246557082412510885012669225858071551964446124949006489513555224863224767125119971872375839208534453545765915119220662417825516186821706177481972239682154775153012254940595226333631678403508692757655551071251300993586950326368025232347402447294116244643992155490688800939622877722772712575110439075828766210709185161586940351447271973995502948485177418817839149472757129669586724477525982501139272159038648829615942835527612056002301866306597296156263302108802570253059597097386176909187186099177478867529953296656866157119686836583848219991881352313996547194322476500748251609005481992427766497496322450239655443135031944839271176077183238106807959811050106975528612490929295628948384015583786345004773513319370927646063988091185617590860392413063883480071107089529304512341909360132547345279819566929686435466667956142023340890322276631973777067266054426169746194442147433168246700142311452813406371953798008886023461252960649323425636953443328075802856157838150191376837274731582189934803831992280629641843566821099535048861500284129338938433239249799901755322261754272367750889902380537098187303516365803311928923334218595364509416155787607346606547125757267709625529384164939036458597805789182979779344299383018133429235008763808472846327975271629768865682188621663318612413946942168907281769456415278730564784621717300928420779425272816121226339516245957580097110558309274167114250808393834265850124292956186927894568500819277796559987452389696384571360868084814537157454940038136086016124198432079009181664214490217773932331394270919338875166034206223468235826270699006485283167538422328628432878531242418863543531208728021195172600208226762029289264542989838232370606205570236060307957954321559587822654868067529188721009784473243600461815897271080620321349667829297948481506639344344832986644475532821515357142744063191041406099924105912943024691097998751912558741492130659950585472326190993290850320944217999574907605478155423458709848884853541295446572429622435252104113603723732624205141125442805294151305483625530172164203559600481355437286931780325805146384031968505591916935401852113311667037019723893553219322173870934521737922427708711150513579243146673019134827583610605631902263650035558688070505441869909370482426636284252886213035253131180736530522075633389754744588460705682214008966835893311087362002895328736142278680081613748183448754517208091859417215951939864174838720008697021488846971250961812355865321235709732238212775612421459646390798018534867193988237881651266738123635045228441493009337794297567868763257339913932707183255588221809078011031563126951944255793484634863287385056741583092602985327805943248552045442611366720152138504926987223368773127290352293297398051771672238988513240338944355651035156172995003536720547763256584310529559929878155052012099460591149499788756958829319699790753326077535463820537879327517874628065130732143242684467863226841430714936181715156628507626288028272151098840830524729234842821369446523025811638356343849532190493059010380719723128964055819797525846755711005866987762705629799883581679649052525329364615199661833336213283513321379172629695450990441984493438288908370225259896921174961834945249493772023766280807114649943874458218840048963119018854837355816591540435570553774130359725700997350619634391430932413350081293542280437309617085650879081450366364935879826882857011860827345284872044591043361170243123520056492281410201229567994744010110323696754391425421892160311523503324398610115356795514535034290228466499297095217162377908797486993898487760415514019225412755340966930019504816534175346811686554752795103570559361944286882427161314312957980523806713278741878501424323536091325050476056276193676134918321434739208531659118178233360985134430697401257106289804200698858564735127560538732491947986730475275709671745214451911872567824590326405153232869429103905674042236958238831338608753039999891028568470724844010222309848025432960499607945136243364128644717329204273927106389949902741542480093753190023262971114351524283383842106037690380203682340049611936352391355067446129343443492337674944955060918497490089353703062715899117164262418105490734762773602466664010104046511394253612595527722876824449410358801561577710984737840456038646249704485005374839648602094725116257735103011079035919874631121663202507046982131333111845618551878338373649208138537886197246922625843326242907393020258306555769581020958888447534512263584789592131668355317632782301607287068622694156607994713607282642587333501395855283592528039089303049837845998872958635413632099141142091183531845278587268293889934500530937806050514880533615765126717970272275713020271854106745163516777312672807352372652082072392176088250033758319852569714948395182085254182408222358545713173472477857774983500255263839399277735060298047710708619240251434358130716363364300525396766945731249350417581516787052814919875989075560003179922788862479792064550699037264394988710979580724584029753218619434947812415447491076173844044221299178155029484371191768884617700926814471121830153258107530522650018145579590285609232434840528995663450865570890379333570534386011694500576437408304164117308247665473187958928460258884241702708028808593591097480495181003498791883017138500426424876303095544125243988994346706841289185185638407657691657678256669592867570074351913673741701326741157423073186453547629451588265463705627998105424562967341779061143520546319822477560121088239734910280929764512594267354345467307393315412695729077537674991660666453114980389090300442243706005772667169271428216485228417699734881803079195296030319258564571901139657349296368848656811623790628903390887932448116605263799681938787098605949587232699417943782866184016006874541831709218555025322455664063776195073704728773511095335093820363942448097676406125980529168729800207209191704282777549584608703015321315436895398118264374733527190548057755853838586868386680385853644817106458026689687934619225374511541486908756558133978662605051991207173736987485873488117125427818298727004599164419609442981054135167378051065797034276700957289860780264463114685773253066126713915245140595159967424158940137489380227722045262773672280268988594544837567168629110282706252892624590507787064293679907584698569437620541834411528436850942818244073091549534847082315491750749098066318392988951484340551682386961032099683397681517487628796148361643549729832979063932763975445456326821833934106888155653645642948711119844106870844485574941812032458128309051848750250336144329228390916384556739627012970514647975194213051164882565069549662898837503526305447118224723209003470085653445877070929436004623878811463241650379914175306681051753990778993089829655095396635483819341766360822104642364176145723150509866536587605436821611608283627193617369938041616055323400961164692538526147852400348941089415983339720846551729171260146738696560180818877470402736279492886888763950900864503462724845287450596712937123029032670979440456489469278237426089773770373843598431775269250178848285188360621875834262604123077191187399979862449520454287589871454640262845782861129502688881401134804637863658544828342327736519869066181356882273291781274229048402801910029020452404270893774692765003955122874634401410746855326540751683477576250077282974589317043593079678429605962535486224810681148492790797961843933656000676124680294342282096836356462365128659963773600115679037465405814505402096565119127226635246021756461408216769818901940767788500905478018650874659543002334611003135828569737934168581638289687891341204924691672053515273170792685519765686018217125174779665495037405872354014494756975967701832629801344872900225637008110004341082800234418385529474702230577271260271439529151990998711957050395819627452967104967674401175619439776098384543577716096248066594578063371331359645846205538473171732755584874710067503297822146616127950042073345005928084886376437050908444522205611959959585213708125360200560795141034081421216491419129562870539331137471581489022467451112159546947256072001565053021924209693540839445228538872969161380398674925859787333890017618416501239665929924825191652822474399469568962590595420542089075757907098833366828120764057128711935501573115781494369865970011679041329714547369173513788928268583950454482766670186140937909066442637973296821283826523814710022595017798351573259052186581593949292998123704909071188236647819304291177275596011167461024632563557763680623900383794389830419177513870487169402524590735402693231983189234001037232314935949793523743109818464153841987947532799480763107837080152260354315692094676876913496224454881285509132576739942704283458424012085746307614418452362248000767153444760011962612037763370840316612840406834529766457741308171908651060896638176829972392647947811880773500402956877978474713478344300375282628703496357845431602031029088047784460447370768206232888304489313179820610534350645774807553192544788465939301743280525951130166896562122417234200832428318161218658594706466973955523226830499633287435209828003381969320223226419468461183230107478483155265854751497185845939943008773487764941279879982039566938308844558743088131093428945009617188942506577245615500656416562830514070244483736661570040802372514467783149021646934107097578370595517623379254788612240859647805718568191518284820630054587885985324466664787618088168323836047129429047522626378476530341399380971148942667048427279658108561622495081722865622718916628338414692341907386181050425581116957317486452669124162890383310440788084055871436205150840379832205512894468287196519151217875152130292107738306088153824484578312540729148087932327241758592029939531674718297175320506428782447009854812767909845158308309413729294322297079352045153919557241520837762516169275223431216934120140479537579908288931932118613334288762667696673515267030672770839933339439271619525577042385393460637070617479042443386626985869153605224289742462278987135635199112527149849038956540170005160793995954645947554615382014403979581958575929888941828417143755903845831441152542150115718938401739211725135638917703132133309079011179945607261433227650106408960353332959046596164890317877146509937611368284539529307864904826373184764722424671816784282615720904696334771461811332427183379627694704702715845563583943807545137082534869429440183439359472567678581373889576582505178516271044236982386517645328633446243677199791464740643474888023847305297381084058986512608801068522089397021541441427070343174175069547335744416467153499020780887320488719535636608750874144190442279042796664219207907687084103669573698355932799814157015879812793363460385564610630555327653546024000591992564549475975491283928555609990847570886439682319482305100130274643697965166806219676860454740421111827712246075588802718863948657486808352154088152967365309263549474180657056028697017661781305759869362604185671731488209134573725085832153851124683710190463196195843144173696744741434415052756266575213720136866897577047911909826168689797569637502261098978420349647440451497055563176712291104485505401618084732440337712982240468173888151641162861434831949435044031772379404134221260053618207778663207551092525851784324864939299461540126205843007392223315709122843519901152717775548957200766909028663580565203667513290120371300464347585426837321039976843191680320794413817852930953824445245186477264258316100592187514578410771637336883068285034678131013761259484259419071644530329047931042827179861637408402250087908459046237651568313297755663855037633663719627056033072900683575124544727805841010576876499428209247365118554536588856899291932603881394848993235589945339691414999367621706218468016065149329316888207241956897895433037096204746942960013425750960872555597326407903117286033272976880102590998295722468403634975765148355772466873161271947653771158192806576023081004630573248859443431417820570015502035240528636929635196454542067351568505915028594940156937852598875252996062888676541872281272288983178032382887889855978182788760621851724206476956428141453996530539625718462720428224742943937521289586912463954920733618282001392456758861079845763440924977575617559413054159034335139583651364400222871346553522166317196394545382910894223719179872315856449703736836356913428091672404179167643859399203688483604790483986682979371563091712081472520758191702143110824895144552264313717776181404502190347367589146880346233632419257566202866983891705418392589073969771788107075561324420557514877479302708227453702653822173615886804062555616046953728594679552686141241316000414247963845298528176786197031374794497583789168431662154586920722178167021105591712884109956973078786022293019196941804035984897519904757125293356826064271411069878093796964241200277196510204980381463945670024471344269375316530334441754685846065532293521825744763509565994389002094908843379606982589511816952605222654683069731741535420616119946694459203333130824171701877824612847449701167594989875861625379324076653203727846484682157923847090054893679046109214631345800925151498829886223110174185206530992372894987802560863889900890143321515218344644255712633348849505107017653027483720844985736914512687135171148864134739661277413033145313611138323038544982295605479005779824262888679625892815837989898381432552670256480313334314574563247719058250642864116384481047818993138342918560180252167247011959929029405651185077736636911140931326750767878366700196783451806316060962984404509397085533465232168935302009515305519813193656873359407050447577522048170567930758652982260772630143959937336387670729338649481099020345056022011228869156777717159194818521399656559873141460563901867565715615786694743690733490818261110446814001707232963562992023182272655664984443063173615993047552182581509876726700679026429004180227820103186271877834015975344566394963811893045887895116153841488231238599300020628232660341504618710683029012354699358895023798842411537410515261665780910752090171311521465849704077017994908334670524179605420962981898439760473446752479470247207204920286458922643554157120618634078836309126734089637412418712999051649718764029801110492784991895028356728257148960514295145711696609596874973323060287822233657175710747008495223204376144195820035184712365211456578298923620289413668263655161422449038225106132606741585069618917828092306679230426255972454768231055185316441763114375046355263501531458895140624641399117741089446748634010943679653906838173326741505728801808055434755594151843076225851414987020061650197825399228440098076765157964306620252328481189482718357895451340770935105115961950784071466999420596858374451719451347210371489756776756606040234526184904528099697172047548185662795696688903845593422738436835460818766923303921528588064119086372270927046656551249151843525955220802055745080913473326846904104179878946404571977421024926514797721244018892530425219575935771696833759594783644658205400995547724752382966415849795430963650685864969800673629729125087435228523779500073813068911223026624253066560390839402631823316142402671153226212831327335896355063593178436868816737871763657003245875620361407221361509161864186360943198354491230410358615474245201097531247574335073956576799663913035459433023753310702601853249591164988417250469448483159890378052968102244525738526519983289294619755310714130909639489557618330561021889648137354990623218838582006620952792002671571316243295238435456146083989703084305357542241837213433757494499973200335125625099198233582115211013805332323752006079385891803344743697231416711304263729818665892656311554390201735332202235710784474264504564039431435924791895515096184467014641739728783897982363376406823642754389205407542778026445027165219417054780412511534148546149752120412043465654587281266796677534734788239362251461005442163103065823344535889765427822246674971186176857464789575478112192714359752973118234648574071889441630400834020132858537450110990958256472808616992326954348414018389510597282683774051730879355765566716638001765910934635961799332125515755028966255981382676848801375013989041632084008356336011512447117957354886851743197526599813080322705146845801124858311324534626923652737427950895252530699714046968845641357594544052091246214780793244618384154207956058265571641332528254078699184599388849411271036275731408179439097341274854945489184688764863706057772096208982594168913748168510769075971107927733389361476402075161694155494462260073758434108812847024753909427495338215713079433541950963275771267381322413144371594144456563522671171714452129496292711614299792507488612952981918376871970255973248306198522795440958534114953698691605947204879548911478805122490390674233215120730878841434280465762571107488802807588672564265584640267634112399376755340852175195064846214696205115670940113376620893662481290295217228559704252324614280501113141426822850744638309561910325970540991822550986123478400481310730425864971182838309610301784479413085789482718979173591179848251049309963298083922803428724320754601513509320202687336766975614303027724107709485084652983447227212506161023191580964023977433936307860284506465075064567045921018516574979541222297677996340569014640602573366890482163610794415073821439182189074386573673913984876835723878518194924233155769319936633366686616990235139789610384902386011445853555412521660577012495462872562973049265190125097474261764525860672490917408189068053908044976398962966213104144366865718475989609332786586811633859370111152284504964757894401688536579802641230560119530078677756303804510012397143323538779174645539874451650852988292480781888697244249998235693009034120611204132480641453512353535773343685935141467261240869624378837240605933431849772945213088815588198221227704584698786654823583123959519331293433428869657089614766157620082806726480764870008122461565546238610851681008080575399815863500001568118889353684075050386752160233990215240202948698137571450967582156616341061859119849307414468611393227595937668711882722475047940024354884121120684858976875121085358854955222582677835614486263656400749686347522089004323831497488830429603184523776023416712450105361513353904855318598016216714174553177595400602142556003237128871627836363352912541177132967350824214024008041551433285074740997717897589163293072892507834574195220169457645835810174863287223385252652756933694911686598713639030114540466924285035300160108055602613365505091687158925784962051433884347526409582587817134675459029821929776516033754823636636905895815797446944355373495273811269960079219910870338689412649601401254825705145322627173392710094065980213521240594055373281240634501688191344314087145729517728421228984080897783797868848228764171638669484939890413807802509501222194450837958652841951304099231936585069315523398179475862318544611534587761866396218458590203373072347684646019602982788052813734828790631342676501476649155010187770832848188558685943191153196760107578904483595355010078169246065531372642787123329945103523248676189722660818833394536982530771417733094451329474141626833136788620935722544771808496468904369057909718504022700571467182895690863354102842463410157082309894870419443604218055231672037291978950226662114546668245399525429533121903500227654019346492707774361569110415484799153845961814637914232120737930896348774206238833878206459610232445027768906155648079909281552578082745059298736100203866002811850413240621692550294400408555972865548948853997356228892432830783725825855214876675154388966637163331369525627519661454895923506915433601369030758908206552573244759340109785701001816936182804669653973354002488131312935150831790559753028668658538203655177165114317248465367007693003967406305415804366518899753169416812307937085032596943506070387334105392068562689585889097918150300781385581599162647657747453649735061476779418881837263572650907338982707283554036738510927377633375941064212878848243126663805240091268802502309927705806456275725830487589186682349962144639502554502564732980958765131208025094236679739462375895770244179200356141596086589410288013070303054987894375321988204266987148662078306322938465051484351878911446882919140013458779691767985091160326591694366608910131173423651054132867032499043906193854728368951078636080286889006043990336383391089308165259939205597868797712181202188060577240053757537108434104281358493857426548326489210463583937277667280248474432431856059170662613472955729433880976583553926527053424840997234654522361690081205728588161878594072203455997500321287263137285575684924230884893836357156505294390984597310809522533294310449132226826792726282848545749332389395301117467830844568576513205892850179558171999336083598702229581501554823472955488865765021556713052493863021222415546326580382772835254283321680456446148896774035888959046878640727926983461522821364230530254793444307726046982748081370697144298817996046799964922577867916063141971112220407368693774644617185791504793409612688210171642410490199167008248569534118826443944106594855128885910851201760024407640209968213435445583558389392207571902820058717560068399540382382157782016709619389279022511240179429217619039911836517349501477590596947409823142691523764722347404446626184496166125976442848393328923444355969406818302015683971652291558557625809048170847796360913919991764714884033676751976888747063905940763666669953017971317771833751738411354428688308611131490506046726843569060030252649818564567899133962596131410659231832209228047667845594885629336969746293066574699170509221260818116038236744311013302605618509625262935933854354469512523843022357056740372544729685545191991246778812663245258566856145417816808896492362748949242601110698810338296749361953533252157406047613673637403535290520487146728886602296153485014860784883561206629188612805217941401895499755115688320433534491894108662981134410333950752625705728821225839599276996912707062760293271529088846946373886970260158332179195922876790952013917115335251919668506285073695849755270394398746385926593964871018263643351428035250600300397302586145503023472495248574013110299061670215858965578137451310121713401629210703677263777355790248110950901810494475714275437817463610751337617832783493187479180233265497213275982122269543672266971788097259318001811894211320880392895844618644159359551707716753098777908037759297691404087642045189490399128042098805296168968941767435056417091419721590714175041178124874009866380426811991194901560028083749475587038742657531920168283569005059917257271246873608269026838358898569037334596525772635248508805714949259135901656462797710500651878284588868455666984759970289606903698926626632764085281369153405184756842240728431269533622202403890100734692493582462163412928762081612248411368549800975549020528497076670025808753330663798081702106969190873112457742758622207521629652731866104329432049736533727250249811894766041093366321642417116139097104478567463278772136735366898222409574397260616004715677542462979116649588961561083192039397430888429454154916422295039602867353921830899458822439167563226978995111079493987098161514416191860938012462596481519936754659908576163229260813935536439660259862471534473369477878002753098503299898282662586743469026055442263407051742711373273196849334861529781371229428349906074068288098564323663364847640644680347300504841007890022421827674536844594128608132984787528456353453332226448650693863742813968186710842584418116080749365852204921718512143568476170663951131496105248658101776247896053443294222306400002726850780368573247429546370004986766780957286184974026917742161555285700828480641883709815414090059053238962511088473249757580486225815287794607603893094588175185576562422947942778445711658577931011249587210423289530427865441610931748979381292316190422561875642434101758410371987579540715125122612220593962538632949550159732832248357840274588450102158155084939722380242440098190076245808875677818730166770198785209622099752693279444729101646524764405043791112725959843279230465840336154164848713549792271949278849130833882954095022333304260892367815955241369392160781144647773542885564300391455008307415609739803590875442693827707427601628210825596099425106893477712447120982783040847801628383749323019993188363798562341411088264572380297704174592617604759252125421175099944148833783357605487748455445319194300305858659564150611834557831049870106072728245894310789736270995704395928601430053770339372293601757712044491747851320349356791544672582269904654544695200839346205087941792041849187260731640124174440253987155903410534358824989344930042593343849345348723164113866459554457229902264778801949591328070924443486967406136492526290481562811782450118511205286600197166012372909017895013875472210438444372012077218349256670542509325026532980087273768038531870428095324622879091982051908971906714584899449826597533652741490335859357104121116562326577501207098789692768517924028012699157735313939735262760576016870744860292942973072458814546169678927476148437127345400846609484486291908127059502455420172082998434564803454745994945096094592234118472127853548294523960279376872592636592482282500456887002042629376574770605844306585296564315541849840032185085566126864425171076007259287368162105868758555864765909848443438375726738956890576623636568294739064108526003278578975649782804289975853289942235895265913530539088304125412556227393856896894504253742810074630991271667679198262979702094098924908620868743884097630958717216114406377225139057784017114643315645594989688008496581991254208403143839416820736387792077408743790738452967719905264694968834557078892796143689174076376470110551573462985729984311533523500782824744646425376373058575632373075594247284222442888172121815564960788160272405608619709298832493472378447229522156696733065420381664132033030814179527794726406089056222101292757921479485108463893255204876314964831682113086127508041262581560403352001151488959847895309198513508840633057063721079318335289844564613843995276431615331096507919052725117108220746408839584705676986143994574285918367685996693148134196951172016322676239300576435005502725404976891806341226770236476180068288372681360704517620817354984995501037962925182730841711406020088276886422064757168170677737182650494849525116386325731382800559578325278559579397934782750852241993419808136821353787438413354916153645428112583900946660686751135142798075354360775885325094797576922307307092018567674494468897419080332786145823039853471280323004615092126334112033139661693503974321734882236880398331431993208010492971273806657043700509602614840660741529411481168711624550970082712887092025227741070462826502090326636072105704513402544573821017118113722363108473963356058728000639064307981561270852209906301740346492539140496101937083637112980401922667769579317413808725731318546852815488984987368231656859364088454240232076135160362276612917224095040825941858599470624092948357011055808480767270755901224790130559272591497165105329329160518835110327609298604488334471546669691037631744369202808301341514376835401326689750437404868639473264212305627117639614348409499076992912631565729538251905244784519740077550797254715089410541404924256362493557038131133353757654763222962625971834694293189346777314583052404185811633277191523678085197283146016069534060535731716621383275718096216494522850683697948366600067950175840840287049439908466459506705785254663471581440318839433896084536342658141960104379088748112687735593486575269904353722039574036582438051146688357606999277898255664326373928255201602375091403673465902313331707534624639959158009810450239711583091622492651618841664147835099746161161198295872339761803768041641715448476230471757827144559841966251450476872510310027108943560671497384496019010290819327309566557759733791223426498028410506547190328325994356797682913811393763035264803975249255929562871252305545689172742539863866741897056049902843401562701106551434019656882768103744612884751991429740376520124139252667344190846499329036160507394088453468543995068290003218525863680808163014576308310872750634123837279676110933864690996027207358006229861739936797346700379918765053845588905094938400737837475306459199561265829627718212912795894456513129994158767746740035087868013773385900560397368144698100080061868188714890406017885892538019591885412079830284560677854011361517796074663407441249486234053271019223085615447281284263648404765660300840549259024029440957106165628181160752244753154528148916729006011269724772924474618035825687791257816961518091377270875575115198534590411469566868322716424670285731443763752777581302533285668089418717079573389192593848072437680004864652079981248086493216149251176404822055172125282833240657202385176179750989870950412619027796153416001927993707895901890774218473516332092460976273757609773200614633215114280202145209751852540272445270747636948230803900702255693290094090611556233834159722021270015708588351578346067045018264909293846046780346152251786519764470387450702878116926157515664554978574334763830122253631397951856599971876320794165473052396747702686752105826950518850438757105539313140768969537803150209736399171173122082698415211537440234090697337352528886343529827758389827024196511477116809542558647282935532549909927166794286753000578309501396395188221800339674723240984950272828758605569322713943600637134053769655675809720179227069051158605704025430009907750168957749399312182737668212646567444338535516957310323159194923699817278916596045607909304046151784235569854179559528040916264948451844335780722427236572651529911034873094122551057619080026267208383199479341713103171709045092087322337899118061091879063838534398416093372409820631349854618983443546072415237102566738371050040206881861757842966649695932989288945814501337435667721521853852608662390023253642562939552537872478064555615597568289377356515991976155742361966582504801813257474731754909991687219099773305126714326477874305300736540856644588121460076573473355593945923718780253976316391929598085888938084648803275725970965098784377996924302101106799100537965896752886895077441268853898393014152482072791822748185108531797328095593483390121023074950562394106654396473652487381328840404355109261421778879577589624529920522242190889899635799004651771030341851771875629549260131481557953017710645049216645136986831949894375559188818060736347509586745197089278294995398879803593426727521795624404681978429000375263087426850995993312476666546236621738564622234440455812505395412334395941174976707888837065767427762682637775058158715125511101226397566375240720198061554723050470252920603573177254172113132597689442527588672319698783075646895667254796132318836131222096553113208979379931672500210721275355473191165076409515141633643001397608021413429681148100027575979316639459676406190513004208808849905346647415102757037810634263485795060962214372372825577614349225066687374459754719893939425644153940715304014909245812905569787037090229001199801269404757072301434215218045020358465916468114733744012435694396697849202677384642561002865252946356613074892906119574721524098356979844577692697583022800776449942285416950339620108012074366434984617231147887613066713994625151601662044103155694158129529445663104204132900340095397050580216181217457244032033236311448270243113849664716983429151598151325594995619600349507875112342443386802952861594086140286085646793732227264958662925065990529830204136945294724418288822714234832238101144747309525254394726219092930090457387721854796175666661662832521191874727358029864038042361510999386714482864015216239788690047010465772670528820195984413604247832810082626718773687449751974672580910706856203283249662831350697358058879189884070666016812455959565137950065029794231809498267319319345003955661102406279500301808801922802264465567178908282548524476874338431564881911940273339209667681673526217291852984985058459808580467733067479378730745514687472552840951539470789621147263787955834666538605552217233456302369938325011602908036735276398909698788732349191855187656592659402978508272030964927052343868786219887268721832789420484700047349481518266889710661269422727450355330147773573502436033735802702373208714361004301003935265391224933817138995607931847349598834077133793045139455694675120058228581396682344189718846636022271066895427189662104536807557171041950866791519892885525228900681177435437393640876967029028788337391289022289818377819868869541499191890771881455340009215920165778568486571382420563472264863972027807283521597528265733737467073620757505305381447267605632558401402599910182299817700709958609210033369549839143473469177513311583844710500079517448825422766642311384880911750278188566498899237777916798527482427234105949197720514403326939886835644295351187888177783676919788974686697160396066351377149566581860708408317598869533593034252817353256829966810864560779439392232718772049179792205274247935664883380648822023323382484596499647897974224238347064342815292622504728925956710490466149776436456719793543348541920528564755046733431904219480303987562481810601047974516572559572736270014933243665180804598976865652983061131712062218181005516667229873463147560873559951222401517380566856116430807731829414418441466769138424362574329512146117579914741797865588974521439714355048026095746655961073083369702275309427593782557704329574080821273578443791094850117991981911279762516351347275823836778977118070999554160075076448208026327720869668637687604674948881126481780144404566228330203992623080155790947033844586437974546853102822142643005437451610519260853417375356844587055077440288418697380247697290502210386041102260857926938943292781866523608930719016087269159474222511657912132400783980421093053413258515438784539014970855324809102061531069886758538257078347138281723038807496858830456731792545586506094331556496240657428361206975349832266768434037869056098631240128173615414409715293080516488804409572655904727781256796553273544520874440758943405829158242036033299729633352392763284792875526457594308474063719996123354793734359433123282600556717765290996430870145372927922264058457827528438617405058629586023180590228881452332438509076685150810207734185915347143389108996644301068417037312945055422122014677270577215911032717259928153680680251003003925607482816953677225938609954084355458731503156127040841197500957398629474805271617406463606001867992964119994747303536846902286730954983007302692995862128520033033126676565878220842423496308801632758789158899024207842375621237248843440755920663636709170726618521478382554558099517254133113933918859992704163080166718902946606825752030405795893496646870529182145597980623495191870694664878996742509231128674299558095455634864588082329849355667985581161933981600187605773651319595318769255201663456436691964391232311121349711877745707634452595451734266904987569682063421969244108846294648446323315331823504035431277694144511488348532331521919003549266344914518748387773757578479808423530601913038949252670655493277200292098713577675739494576334659312422513965650949213932677954389190998864872718312534737532481491910295841222412921003090426706929053996528232088112942552788333696045482741289661470516968351712473895729625540272307088751459156980679388706257022410754780608868959120656924724788350460498995711208245070483102100375201275697172525132717778713494713127883245269938048267764219813956535830195382879738035845528671964813714843944518105727154772164803739430924937367608440999880943610394555685592604705819046676679127578781466841866635543575854452101880624115855197111248203506284907965565148290124247460146826992026562550354499930269784791122339360125181446049575294557289798183307738675821886173248929737521107057496882921555870559594959974334320743385267967125866427677523179443839039325307585812749793620876595448024792075526772559911078199052064217647133833580032459848838199763122765926395694623503827857874852112654991453202361019811460636731596099190542389375807659392834185193285436669173495263337648656847542082449237378538669197425325569512458018167942543492144855809154504884589606173383318795799588409310111577527311577219641863506207110851945796179147682590825594052509566835205592672732549869745766315554364795946437947761212704574854048852576299018951220506679271041577831248501930644209695363785089837389904884839138636397745984868145711194402594762320266512674692503441728452402800793929557475471978947871449763159419175232059915803061677786344109636352551839650082958381659577232165306075652135715726518145289630724557920825230512473068816582932908805202956264058489578226118288237380745415382849438758804946338777256258442386839892058190651887939748208983555809300180551953021661172853907567276261057537171126346276092834181896227906882099117045255300516787678147976479192438130574362814227001072238036554203188050798130497533425763359142456261629177601241219885490327893013520714444577190665677796733293558091906408913744089001851645306223138140284092592291746289584898318157071041062055295464788363318915955293946064964273724606279379039608189347026923793920962753954995711724439230025852478859146031604565361496398301046244044194917285527520929125442966986480399320425751616997799637099926192368387974547509433409881480443342926017217277505645406396233072534903976451688132983079966921044457626228329627982105932563495579488056825360873758031357832224359975564915781160817398927969902656863814193255779834949381274081955026012414848291704032883847620995950545324887481487745342483730586502221799947677536754707616765265341565425787478704707388418327515584296140781499576478133758167274929332487399787935093836409921711168080896394086074886118899431332048059169557934603932667990658616153849425457304370084095835339485517097297431315732526370433787649032916821781124188705289365161884439523505975139449649802286066956200375958815266525484604425611511418584589543239921129249543869052467695868372884470374254711336136491564841315729199362507955694264671925122690084007151919478540443638786581489799374302875336296010472625822261315288648503946768855045887704614883173492660532322215194293419299873045002581565038945335131284386438588087036356731804081633956433510564518030406872380108727656915639416036762234024895065128917758776094741739757932693697695728946607386863339729719189932760013489864088272681137246907368318723559252573247420275631101193944588134156989900975790358997020150216391493883349798929054172867555936460976659115344780110244241849988853650394899462294390513466489402546687337919391408052396067230788348230911662890772127067524582581973472030673275217904764197112824332982114145811765643347977112165291424988242866411732565002688795777979224847527140738758991097948390568995325604932178148689363213618253004556572130580460253804924804314521529218962329838157707517331844142738562447671105338297008045302825873817134320605691043690851570994673952628704922317428531375232655843131491833656404997708651930165108916366399840479558604712920520435705717692546217849523373031294924500284463786452679844184515614965191422863180983661892295467134280465892028359078566850062055428468821298608694272141094556527506708546489585879941832090101711806470614685878557750214922334988291226606225054859238400540095679985168702350459479218362882428286606626572812147483520898007458807355677718657771747145907798565913506396905641630958290351934909794966017270321850615623358496730239203390675555659666557246894757250344877768700467424346812093470274740195424890902085324003088824203721312687583917366115895991977080856630844757646788427553836493312621445797283546591870567426607995238282155453082944200142852434656826568279140270762233225759764638388106728416800198968088607689242214148827446355483512073995562328277721126783407309067715906742017590532741195494391788209672009066984590477262435423569242457467697098828383664059595815129429760046989505560733912683505222523644915995041190531566353917887086581234617461985693781054200879347638666578171584397344312030934045092934806642984355169688514899677769709181049901525745511415268165972273227431001749548944640549555009868781888438586827981024265995078830595990739816774776420747168792919075769092046857938877662674700385003882131521724219235559777310688988874848664910407688764695870968988479009820982233748605652894462502986697922529377226361677472552333291358616204105203528779854268155216740353065348273298023506548358696872821476676435471426379619151467725204480459532456323067956409255646920170875548343817850412492521901730732408040152578245629846422542021901806386026542754518329033624862096924931474835056060656848766764733411288231770724928038916787702784998511596592579811858142602005534533315178858089715087157574428435973653956995712146974156575218298245147863175773211346369319227640948299697037635864745781970020029327613612737227279908058180803368111460820793329033522700435645099693900408939092399096189377595447023666479506424034439768009290664667933873446363805765563387550546554424878840670530800044520899275053139598309640281129071604063940338180067659126195685648799848572084677725476257572227617826830567501675976611271872929607981791009507218749201119665517933621860082062369416239623276931242438496036770435185968003784205823221804909865236722494361378299938777392223101121195368141922895623040622176164851405572417166567329440385955446969360344174781283538489054238115255082750968278180694054164792214611635557633878838747582918012872152020276896565103146932427095830537696957423075216472407419366415841752883089128244436644271568295568364444326441645736842768704779406305600135073074738241187758186787721497112053271157943774294692504386938124225148024329153968745509715773160882388161603994817264460431940249252257745144906320844964315152418723252189838443851962892630346918798958126843896826380526463390508489111688405166878678608361687107093261815710145603368096677471824721908421483564077734053099986081543806396030899090609928798519086622147278582656470253752649100020418269886501778352568110159484156542771878637879472526810680038307792153669681274740885762627984481738864060582829798063603573724771185136782008241980397632058557600900482842191739783029454123240389739240082015284727867892297992424459252378300762314264791218514550834392058973946323876693313556706487352644975727924719710226444230793720579054650337387268827947697228059716094758079471554561490146282749468853037981039264446162811917064125942131070453882035618570440269698036158959339417766886275574287141510259734670249028559551424293283833657664501999058861823209277900785917466754832594987386679224612088851767358266186901191006998620858791717731682230067327687994183957586620180410659346566269625863211344384913679881523275395052625281369545797913941969296781866026239331808121015603904209359949579271995877749121124472505298478180295859500809468624058993888098202437358537543056686452222924918010310146404751499242350795019062633646195866133689442587501685460036041893726498196274549110154564078609713778867472506384529101179362826862368976878500499221451228161432779740498390691369611138933432985612881993057317483279875942574866910666338916842200336242952858037125959392999580154219836265497667441146202033913925092718113793332189963316370676200595860762870677230003405938295156778367152963004640079100230468356142891938886921586424707036235901085902297316294554349824980390537252075718690295328297391775552531742805883638565770144920024961834306204617718440046699350734412899192674660802176462705954416860780631082351855129623633447888093504624985110708663283766193049504294268355371431343684552824612718969899916109268578940349331013143174759438401439446442503773828556932757631841837620124572708245542820158939446499652413415628716657972939069324183286536266777969320984503537997034852180657698123156397485976745060809219938721524482923729370515480932674574891862741728100258983947690969558198475606009572906399704054870873529626700827229649339533335491676568444695118854765510909727338963815439630004616502826525863980528161074389377848776628137657863398602980469069735223436304947098268900019451221463085977325403387505812478633623523293485313281906864780243401713102900061948986450088444258071683256730830516875993741766476697324805769161533473246356198084889861356701287046812658562738639034307030196465028354398309615245169959580841918932127316420520517417511388975913173785609672558581356136290861306723297104365250772062596758143169695224731680571862052056535413836846615948577549063336692498528078251352581682282536293534752712761478622915534089573804949732137241760249099403502686417386957973422864615442238027079302263398209031743461475612164289316665952755000681018710929482535711972287537305680030095830649445264831064573410056098800217469881882121302868051671343655466025442359900457164992803402728513307242380590480735752633901087940656176607687097061957797893983716227514594402773740072561072482420289517306168385521105953077047873810840841131900731729924438026145165735128230894460083018711092929550271485011706036623799867544879817035696691686822198068300134209437615329858057627558055716899040514643513062352677853162147978233824064045424895490959368051394755306067560993380659513120621632034332058484024976949336783953030825336059073149662570248986185091881131977528734043425777887373990467863005209218368845943469030716453235430004409582605449624838589758124070457003491937429507069489434777444272445604750445171113368913461703673780682853808603743734131839367400130557412754768785591767664270873369565665557008333581964428732255771832272095330642069365600576100204994364542192476183871819847142647033316949177133715744206262795586491927275102085778967628832547433549644114100613095375726387939202768754079407689073251584496786296165319071151397478861987824420233094968286169240182952836165125767115943237242424580141774732287764728331430584577387180768102832652881847000334428791253300247460808782633241725224254761404876313502158349490709168142612531892548951180609197878321606125975596069803678280511079040946676731572244988615124585734062106543735368125328962968088153891744817381674973615556485494756477864363782382327946451275001418133143553134016281742885827853648504676915447979993779281263967290810052232559427544821166607818070976509422601325255095223775800071069350757118758281332995339545231051575367178591405449922848799773622463733252260741792137675957320344649341928962983991466485163226501004882431134386567652241111026810988364288526873122532067160132189559745575555333187179295403220432683113208171215720113396509040802266842515488695297340931678930977122536513656205908785580737420928590801229830500856482985940713137454643527905054087284236456575775493293839801197376856143396563003600545515733199506679541832442464326173187482625400794214432626792485863592367133521981205636338637694739350135342494640159453546255601199714279789007311891150486694146507171638558095834329194691421568251002886492268682288765439058892751710966876779892751371257852091792377466592923147582301691198510833185728145690410159606392798452077538495482379223104700197351866684721778548829236682082164371820469039845387050841222547778528072299228988689523666604781380935613042579624509797634601627634090346900659525640595300314154979738453014561265551972682353607929732711696598900190507051028329901470305367488954838393326426980376006081482636957724338493664093027938109240603467607262625268951688792746225531057314218138177675241953548271918690721961912107374107672015712563610664409423594866309510333228109590648130244486836046576382035272813186228131066944236946899386604487349153541368816758531002309113844558746615283888689535498788907314619714240090774980411497398267843608629457956841086531753845200975556586568001988696059768475954368939387954913110687679772168037321650454358298588088778864983096984518539520933153291369246327992958569163094657691456431510507432491450276976568945562811768685030239788647737866420723450095908947394529548643712321313053724924142550617579812325477948450072975987563957235785165027262236312888467250480711893795616962619604179299389288543010762494588203730024576987696893609556862778829488602863525576935921645804238546793911811740481505814436317878599943515624674132340699978723621006532222393605388087079469944587169147899984651008496854082215561364242242582373788889195844591777659941731021502898561791894021982478191982560879593185817742868158624751305888458497043943857338653490870283950630331548215610575770664139062260631490107906802710980350260816013881988897515728450887239300702901042057136042242652670700442842481749973876857287942284015509792467164962520852733083947849309445308626784198232025190740019246081595825103756629389040976920528499925283695753020102223288251656117999456730536585395538862806524680933295342257175270350704445069912794271170178752599086371273306895040541143321155315962446355246440905182387355116860768850641434819448699805456059660204252584477512252593041415179039911588822139799458483607199808721375032483704883878941450620902770382919570780381472713609689237378686893898292445609907550624217204543924929745153741063390881643952688455644341986172390511164067001701053896516848613522324928549225453232795313393700462530220706750068612347162113855839012587321534982750597295161037788087451134262649623556106608344002731987360291805510877957126006084119363344480878678295415682566337320029729874275679001153553309639814270213193949629977209452263076539589880041829210157649155495946224044695692505154163890634674938564791515570532427620168315703808038420521871591104031336787829940479766825477113372859607250932292882627235512659558124845837827492824927140531317914002002594856581252103619326451614428443258973899524722406793517720624742128298856251973125941561390736474321725881079192562599157287961160665286629524851518660867308135251046350531653919212583060739297943718658736067195777008922346591275532443929665246724598082430778261002877142948459206509202033457683092875492750307959875027102196771459212830359249186349215866710736898118778423576423489450062502020793227664607115330696626686134181269677154901430875766460870542093293788208503815772381873321830812898685113476479404907883592095692241079560091668424102658001541878035468348647259973683629249035410007653520714207170928120446069852290289318865405834909291694444047820734453679261552899246685513642357412068170205292800831825420347658274601790072108048859621796749605225647294272314668864453988937289277023550638663529035330925901905343869571400474334848353326663845217600056235613681570811661203153813568100664767700977938789380161560590386647776336233844305394625407116474040462062584116307589173648876162734462009113972847599295751204399628882433609710973761827161146202672864268285653711611469348134450134620313573479116691350729172298512942047295069737757990534317362461364254454382017008695037957120493823127992901646322922141541730595745927015007178771040399408136597169153468691445721908027845995101918131939310592503089721680733573168524978018892956566967800747973111722115376411786261348312800425904778248079193184363347470265347306119026294435326691994888647288991246355266794585310436348676696934043575864404774578077158408035876985399083598530294174299219879588693964733274433549825669687307727360284870349084265542721474873114340800512959929503739541512602224586167645651056532964055459716144574585459246120160037654455921330973120397555436307234791391613068700680016706181045515753842257318715684542341948254878411056270864596841049841689614701117332907121616961895036089986384640110072734636853318132180464406380007791103208188373282008250534055650850178967218761641607899567816822890290444134877886173382502182044925482349211519792510239240947572214769443930850077453214518527367258862226697516965314588359150976637362821571086299157200178964801379671186477034363673132959996896343888359628599570011404556584294678407102754626030207673316216667882278075526758345000686331661359729259189135682337530023414456737568251269997002648922263435214100587799793783931315148414330805095987465145724201145304114835879901993013979741727521529637019956469770663818350043137962914022740372894687817741452847998632048492426974432338973126974815525204447872098509984948997298298796808092460208345129887320841553510696955316030460220151955377764578657167262911292893928597977604559768548585346743582239567833132389392987160766807878112888603695529622171408647255451186729843691130622643791204809735951688718840287660998376621121887503154648838698636787551082130878619711963585304360418824916110636915379086785212854372215637634617399743330171581056240062195989080012635524249702712720446118649734943776787354111411235690337010738765492881330115491868682032417704906152065109393766196776922390654316076488074620688226113568542011033512720057687569255392064689373292956204540408709669755770634310642026023996828512455994803828776158001282976209647792461172075993277183997686919736675899842317991973727343526731273864671604970215901904431678222462876441692178453651730504785361083969359263521672303896634683925923032209669400496733859115285344963281949022513039014413154785542540367734405989076025760055490000122755981969357437204838244768072010519061542102268362668588826213426061232861215627829272623708988145997487766343728192890833078367548283531309614301894069671326327347096708592688175882711355554497776053843459954841467105009826386879844385020444566384763391295735705088109757263008934228713700486317642109718558848779535066412132991380880688174593624486794057344402648842762860031585260992864813293599699364984330047480101796000411620400108756081431059618207343098437233216723128451620589443411028980780791167665492828120351588758114284799663759494963410600685967655163569743059838493845049681071854048284595016150478249611947450735939694037695871426751265206045401638403625185847982852578221252265841096912983995418612204213403024514933963019433133457235028576548951658396483011485509682365661129613826044957859479891049960765624985384637370517831774857868779119371604621843072513350675791773412763671662296704671035980582070694048199866928817975224692612997704496744751130861649097138370262171828467962709526892237275402812843373922210951434000986641078817368403355814681091346180157707158824158041861823020018202013713711304210387810451922904148929778173139892865583208251326931646861933173649411727517081075891856994783338278922149066413122880530090580441382192421020389876119056014732577130207848354726664174702938945089247740845354933271576482886691999472921581970916506362233403916689933021269659158078964579258068918171453288827083787998761982920020558761984369422117558119029653625025753251734101141083939213788237271435668598406280571014867454164558796998297640858760045975564882099475540395365189170811365162491108902463348425474777068891000443850687068140120388943255768487492189865205822637935754538012660986158282626568189293532107124998479474104096926103306594215966671777379353068136957571602399347135426720411714211328160071311382394399788922029032898329133228416689328381668320182592666576234620761624809781434548511370721881346922498289481614706340221729062985976043078479374303532366371368926683626241554791098977049897841383958259908147430442149791530353844221600094380982159605768058313718203483462592044753064158839187023950103909096392420230406723379134865638395267077645783020797845739753289050741435070723284807664196247892192534733589399943546559447563298946473661463160868103442177555561124698723024082195225871200771805385416535891032415895486983383270097827712432062933557450901705410674384333847040824040084517078686957990094453932111114018574302200446421744410370419515852683394364906678629327219354259985141125602277565325669149973702712582856001511957502389584512695041389211974752023548593452115572927124074944049644218069195907337986556325234829961285100839616553139075185437220603021017754852603040453796189248056550074377546675385276731972475372404869276804453895477962787819668917048759226885600410717717852654009317431252477434018482101229742597643187646395923531309482383895861701268691530034020075562495196222192408188576087967590557180604430181703742819455381369771593567159186807817505707807654294181158287201497509405035282401387475696207370701153956243302543810054768980972640239812289997988294881339253084272732149950786809451445898620286823949016178354602440436493611955121016657021750441237714886758733799809955186190352477027353279064673763920411226008701762648378212663571867712342231934613329509789807816071399257073270103760334191349178723811139879414838247130619870349665079591677247099889711844158788306467833133235827906831695354283357628430526709208342263571401744877939086620854928291471130766934299552253993816607285887343463668368994754155478838637951164095824110966430707194081395681850970985757571637517365024095991578690252165559612788675254116336107108670840918452373366019642937892134014653282551307876014839717246242121069407116088997644204888272248509678230482615679867969096014097506327174572437244103288817802889491600603156337363085135872396342424055895592881010335388501406082753789375880302138195595834282213267614474747458856879430624917743936389292342393750324655247205967037089766880456136214692103290730557784634697813790468494796583878632005226407102583505343416547492508393089333272540421446192809601623825020964596182677464386562886254574060240309310313916152951709376033716517694491889960505735740343217889252200836648842552632844346491028780247475576356928541187990204286745609334882387476650371381411140763226119587676050976807069415118276673928023163217190231027663907710294828267850785131774406672855891515109895945304712556217027276891421653654357720685993971810448069660521785733307240514029660503968471866387824653501213594305520335304106839397048852203651886136866685028689017025821351186146815575716865963304250285727364500834085186714134655919874300272007683042791775534063780478798437555137359228365342645597459391213256198649848754095472038172031083258165769391948049458389603483740615637914550817842855020380328940312499963016965086737193240146873499878467405203706873346721526156094394311575968342791768756655580571567982921098804932255072449812662950348187511758187030284461159134450193945542452359520395591975136540892303428514466396988222557930596606534191333991967754304384711892544569266906822020855249236172634756645043934959129011466747264646548436838894240566206760095814261499194735920461454878221887689778231324903696731815865370114255992028258474583715455601906620127313013928997325401795039905648384043915162558920246700423611393026780243323758114840141372060281721031994512105679437677488085223903928986398415708570603897673564629176624750596995137254452136584444589837603836410131392455446708413407743872333498869291302301228492133843253559215097808233824821349579221305532014796572202885328502470619048526604687263153805360521490118194961833174931696451144626494859451617109970733265945541954468661222818946374950261837141164330285596721215397281719472464617966422806081721299824536548466243043339530942244110537520007360314914584511732777573856895901040340135545948182729804828051646772611934072738032263725585479235657115025715869111391106421286649275276028229939772690395481041924061176050405401070771115851844531785063677881417442814544876914230313818472551378328285583054679734838419225315067994246126531257047917683396922030905885407206729735789733719909694011035136163518962870995611604095126590443850344056616626843593421083762227404292299293983513235488731712346243342871246472411458310871171772314460976788935822569623289982969351668976819656352326657979260805574428669562058998215300077464363707929336366021746099987232028115357500577917920098560943158525655107012747362578202714415660313147459618978092680062795968107570322003009107319102380672858219802097078763805829514747427884258262667571522477741743017778863582244235132608849331267485629782926510505781032326133548751349034610899333122108864307425222517037104198520026357284753050837962021078230598460206159301164166359129677112148768412018989922453355127865784579866475958065057352248324048857629478060865020629978533984721845763600085630082223254074283844802633392741882564412026540086804818802094387590524752797326441098076495451108578551062220532416320140979905891478168676753139222962616745879883522461488652618555001077367799639209652716347928373978788695479196375398141239059064540792087461885331120914338280717174025367975994522734155017363157264034961796584355346994417974355117781538452510807618365749962325418700605856640378270134424188338483227404603796964391586870935995558893193270268439123568894648141955604811805399387781057307985479142185167711285264591318261938172058782016305164726404910329123501790231790624716475200255863756484779859011897559133588770215641180944921661353786127679654909230254330593169966861947147335885254250577552527118029651871083097573109412467495095422728355476706724988670921228760490492867542177931261899556662217222443745365918055162307902506457113015522042100376316960030269972027701803150194176479195572463774063133465046009386502957250735750631247230844426304682792478746321376903859294866219812574934991734258238325163427493351630271773146009264616080730128067156677179331013763439195753120723352913535960151307771919260148078748533616294202976295914264499572777407172074339466177882024751619390343569486282661683498275275835082314139257029943469522306706486325826231642394459258910880298786798240912755461273450210545029681994060086536146998569474293312148853161939720188703761443329918238710199395823340277248126292827131625785354929773399011886398029320567955580780390782628705107386100031012833851763923354246869944888243076869866362618488096707763287687665807070832203724778680838138329834573892211704465793771536576810878645866262328239991469136192827829548422388376212169452196010186289668642931912025500896690374579287104162884300579407282835510725037284025214852463945962029741645189879199961689781585160916320819727280043441127814268188981371692310031770326502108257506954852864715330200687323892121954327106175623789160009652704075303221124046777840914818574201829551225605305033040318537123439598986767019310430911255585995466569823706092433237496343589691822142723143452547719365928686666126730748525791932302442441110963367590493685813680195344596476409177071363934580235058187800675214756561114450531679491299690890890566728650681751247633344323385754401754812243920711802973333308511683017321880285639750622400333911687916970535117731811592406099558435410951362854501253355312342462885007385916885413389399233989957294090175989632703861303502771232150729596778310875442329068480652241515755268556670381801044694235951598229382027042910271559170740105985890105831332872446483856970171272157754623463823319098117483264655038213247835840806046422324463862970908407166078878713795399704446684369692808908506552662852449267691235838095923846200874133641843996862738098172992503638870158069324054766859849850788450363299431998322291956065775774242444596382746664614979293007330773874325454768575197721225685830695624912446429283773152551718841460360786328114383342675608682092323672641404038483800885091425858279125335920753372003925762169928040512419281584892358692635418567031419411602294056292753102383111190548896626409612998240467118371161310001938300892564228063852912597094145385027444143620335553990688696604409194124037616537537242606247547410214705425404355865465059407500884399246449879728659836030389309436731609061430097547558863397951406206662831114050775064211966230873944174662428507338551788487466767179306104746003456573451242438046023113069469696353442827622269509729221453019704108291428496421296370781269765433025914404065386825716537072783786287513051249891422039747129757493516718233322793093665792123607303383921665302065449382859248466956150858292308301464839492885517421487470502327101115072475159825341211547006543302196037657818145596477606280538682395855799989069916633280422669560541464802914794954387005478168939428949210924006208010608294017373224739746603241350953457207415922054114335472924106216943473531225222488978163353123126023464642889797674765550373867386927979312090909380866112485948230601677306036440533337075917723446645903126377453206018383356951550389525219483912625399634010655061639711123643399708361999253384011648774565260431212268742339973154734212877057948514721894864322836282670655504316039040604724673168234526516710021688305093758621242734274342423064848138062668704159244256302981541773302107830344151362111742595483962778597371693138235842482813884796957075895876828446337944946791208977839730312023372231897388710608633971959790669798616023553778371383387229442625152251286609791119767808354638895251327048475848232311921071321429078320580539342981485671715570788908961819473792056437039029699345227389028187899384429321536179469717462889093306020905965025369041937933136686817886603442828213262705964195654589045739954961460161150670070060031610854484941357135520218266507660204552439859068822902182673499587142160490991567222942775346246310301906915714380301428405285770377164131150388756036927917871192781272731099238334261229295837290153662285710937764168356834720206261312951517578975479919070625456874932508000095707809490170379048883215868488870628509454810134250032789027071948199624615571853985717792835051804520662250947444770376862020257319765484693014324741030376241616264199320889824296783624773961043659364291281502593440757985951160996910548444794196535278057029818891726000427508427397569727822394787673463965234615983188251146140883309760166171136374407638460908017498244904856891706661998196437132049196743615918796234293565307591753531329571476807454070925887750131200347112972107454852083706267997527448896870834988532894746748563680907429357188937089891197020630002754110946131380168561413618786386076809892623984032778870272044944025332333844125484188473531879650523858232024602009682065841424563517717039706388524971512783720367786195469761821315786823287754510555941505209018568140033031477379864011123844253929724769717499462142668708751579800930038728945453492367502459568975126239590280433305551500768094778596699670600952015742092516838176054105496148591295636580903863701524468447013000443772144618949631173680815954815494890821848940950841679511156036003457606066846747557521513407391042402269778284727469141937483312912205539149904036465616364450387438135103290228263564781613385713169067884783183059161130108285523097343007690601330537797818114439552699298754292319072904476469639741853827487377237402753465756492929861739982880211850286373463885727477628759264584933209510447431306776710421543705032852142293168472796275827441175325685486495295615095979816309606015526733967408468352739104099924293305544932976003323095367332655246613556729777395605447257945865333137059109044343509057757835889704008913267758759084763335947080461414171860124540415015338738314228728705115390241467714385628557118798662086094852978729517472898489506092272844762903371860465533918781562932868589717468672189695246168269968377651883388027628367561190544377302062281369233065514331245618458737866066480903501346708908001795315311960342027631208977485825663354547911839389158746593181350827504883496261133026512498695254982640660562224817781179687044470097264780554329636218750182680549059197700191657369408658460510441504439796036077823811814788825877897248606475845349873082553055540142771226148462279147798383906064509213983232804412486841428512078645598425268396777348958001739672624764397852746157976171731034550246469039964601145637721056857605981872370873794557745996760479128484913570149211666740495147705190406925655403421017533134333794951623959451473360593471737192710375274969314238565824800477771160809263262127909371593525412344500535229075096643737376873272312493930454083400405695539528409766463547658831069845834426292011440312696146384204193925518250713028117072068050245589617198122771360779171116346802542826022795245575118314266348632928171404614021393614716559932733558811499694849600496846044447969982480198176562417227914004120726463998011467748160716312349034997419537831730576680919198090111309918556552119022961633874428727368987975083413813649648887865133383436992896860561839729652054100133740866683536146195270461591549893487249747556981997357549892794066464357096108771448391506632067832817885873524417946838674085548800773932275576954512640635979019532465588346819715521001667960913642490487687417090045813256120533970493314751339789199654944707193779553521291534440423260759358184033297846147088084510042542158065373018133903185396111487728928629869111836735056797019443541702847275818685114675949095208610856553415911157800465172190934381732123509747176375136276500867817698495393694938191772536307391451144315968136024825752729012277038866022352499476555645973691646137495974446126245501307290121676609263486247606653141977172349923752270393716557201691511464650673488485963800703404151177352735942323404027284938181826013483487245872423354401819511758959794426633435401157268094453094145102465260381962414661642077891333184877683491016932692317179778552626559212786822375659765512398209952415566693827423845787301113083310964864852208820671645030575604146683171770450976940368124287552890624678231299877383450009063525573169853879260129777113618231605557727623704791794326677516928069624336135805019431650886448603893664984999849597413759648132344600030284139678007844549566687647930089851199035040089251914898788097186787977001981987458125259057508987207676312383050423190768553761696031130650674822224021271893790389769450815192628669375552044465535692195575093793646583807204714188807742572408393727426038223812957964157913134344518416267034141526839191647933482142837634844761394196738876902897719425081353813718379645697619418017525300436675273542199390724243336675839813184498045285189142203900891628250284131845387886741921449783754827971356900048207878599893345702305769920646527600524132843844314235062429456703712278828274633587933924388342841954945401236582849003349329988574867471054636040044980504854254239313572482577400276086568866474036021816155712932969015893614148835302487515649140167806176404824153423984880022430782222874270218867198307788252790761912697618374968138842606949463866105828938744352685117973140041169116710997439652809508634845897483637739882784180861179571824586285369416591678571587979878623176120266320097313391158769088974927841319618830180012184530108887626952421162547659633851060442241397415943895805054245318114186840766404461383187996465583710241690099472111824172530233149573918042597483360082358683196412565270011535925332088689722796403951129945585298203109795562962189111729183067112559614565449449857500024029501364834020617928283071059817939260859217280231493094213503868066657473745896329498841870992001509463879168714362604835871137608895897577876872445459307934801997526202489339851213749236554378553154380780535812087372028330059926013027396802055344476462523384600035718761130049387558245477529125657668184878015985527148122246929439297585723837884773407232257102927877265408139524643341615331666551640076416138827682103091221043487033063853661252126568836628249221669815795944874059157924271834578476585515019178221137689840906577086707249494872460614491783542445180106336259790456128490193447347644022380451205462903709989795578946630227305232288941082015120499256606353771223792579541708728511280533103760546903397951288757149386019074333521948777762710553856345530044262540579604558850102519003335101923998624674150566222004908646133966191863650688403139187304431606441940804385581840864927337799188328593591482044747228950115629335276662718160384554728016082014628916941934203920994853233080003417137826417631930083398799387405400061669332380215379266703368994597453657625366359227532317564164998646979672373142882008014864517159825550688155398761889026043761189191092231006827191265788341598668240344381200064147419686376235932321407291868084177548423755920328143904789997849957120680950796975015867968047920265700575360538271454499764568656259925368625623043818226091994530086850136486080651845229524305530050057050304877549594525652083169954198969999223505546377064071520714588873138484087422395202449278703329446039287792403444389900433251121993534571018887429389669982815611092379658823143565343227334711012701742162022976204988292858501769512813683875294573669454064161364850936933218651356232145924356347425304540274578445756404977369484761344252512890503481984180710866213275463151234126058248798757331668243138155139033280811886167298761084151338135918339892651132442205448843638828394744701351428440264228829535948768620131496717331239281785733622172312853963793791576666831426683068180346396732412244061970418579045321137985583114397963225869434505424877595400118220431511833853746182860517240572115969112920653597457857112320771150134342690792645785371824857397696638276944110305207559692072474745761680551502832948930647905480046857163259159056750571462852440605804207713495184512012968249909559686331980996139669085101989334764483984070895819158038306310223520504572657739419735054249048397450906481526976031742335522157843723840970729165372563196476870946048395746512386979191845570631277378888856675450356459057688887448768410861498968733257425761472976453910031467412811862213967080439098014871686313319723155469976657859563447316294668189386445885501016727931725380985335656335208888803613554756780567870390659370537530700358683423877420498127698047311368713224298237147010573496140236174934038243230665128604302878672356105909944985826674741772769605142217896702389276536532218390521024088531008417195984943678214692865508754854845221087409129223767175122159552200007347524897740842606803609783339058333795672186534478106934465955846528786536239777678483989109620775026223523891155411085432592040784638514822357784777253139393860569010997526592028494028676560194491893432368422516668691347780045079898510998318905775956809471436780531776895494778939451589313750060005620326286329209728107572720065903531854857610278409719467992745532557964144108355945180650669462481239986718800679399743596354048109625420059318263688875961056225440721053689556433489506955495747574993650545469177872135758546182040090851235010682274956011927049816246969476769830801676785273841924335848488282269076834870012610504079648071575585543181091434107068658174417717926187387268405046107696614679747575005985985494521366918979198289408279498494234903586377308110942167022305784790696135516446524070772675311780728185112680496754364393700000455814582260447853373275109050721214838382158741606457391612068685986693583863553444325834154912032640725452567141745661105198860653569852044401517738629120159950503729926918836956936376762236961990356200280793931502421217344736532608433433411189391551133971099715930293840455514354787062732811460071884512601766410949558045760981666834755839388018919245461343228047632790167880936680556974484990462721000143007851548389578372674580277868903682523146663984743986565300477546134313315119851387908285888963794627128400945151777502043094867134471084491200237979618518362062625486895708907985044616052611601923694645117041032845390432792071534891991580051201414973884329389311544839095884748395491558229147543919599273899498394551898367122694618495176259216337538283351700561548754728494099946273111631276462664490865893619155326025048905043442822206491818924918386607256692972848596498363953159542515926303279380762626771160879681869861931369862392186125835691382858724768446567958384662980865258261203708700290886851545409283658296204482418865184993626288032353238364387901748420332338874738343189063755704371267177393316660388923225406485319864485518382814496507452160450907946828557395664377204981499614325918386268388698142290810282063871173856238413800945529552143524506586386832694802158229482259253984441968780299308652054637054982398910146192266626088474633230354762541340862816394561563886191209436393824454655750638793827234891768624681598324390821949236841934254777737148371469063555911388870219572920369073074333690753030617572580075975696479564011254339808532087871182441958708184150427573508716581105596741965357176279075939291793556490864949420948184494279423505774419282748899724859032045232072801865659771762998783184084122868241024599588557509682412942871966516867193854966000751009981061534431608564568740543194876963595780978309379199295113369442093131696869326027421929500702194532755340971445217986473639147645918328774505390441260986669422219143328305061825084458982140237675621466977838513051272091967635265071480929881854346477773439453805066972935461947851785532923040879028820171180091908363726738341580760618950343473391928391054472796136524093969740468893077467264755497881839501004220569311143733047732377404632183749178594324836769752699787047776244251283113025002898135003485608467295335055909356625764767336490963272493383913472575210136606867947160269183764792923403313573030773312493243195894787467778755969914494988132152291927772175583413146898592450582642323967192432514268081022216394849009099454384739115212024819768069643551108315511898102411984408335838593095889936703828409866613307220361438766887327660452716523206253494270586994499774388074604597684532270909027669079168204408254566807477706448827861213902291805702211301428756078122290179122508647464758022500047547913695803486527289678742972909184880931584888606492855758574937184789877479847077211527368202468560914993662249612870251037430601900857349207141632464741733763406422906053954475584865551678203815855911050727994445673350054987580372255470660700228749636447938039028777547104886334546027730465260310957167387236557113363641776061178547812783507805861827718665292678718855629099721830789493392330181651348044013590721185477642769886483631137674048202310541481076715421775713014848490996314119744608863001176203915595199697487583046537400615847380590001989913867769170552982587086736963906524242748862337417409389295839159651249508024510544594375555770223742902573799685973528956652656137185334881821823201968539944382936200182559279314404359158570647610732581261872853452595433086768297376769154308578125001379292064662879220203986730758014649167515698509525009245865461397988752029815178922811613282626993660874194190926948816317498140997009462587806816424789773236154630137630944582689660133260064258883316868558852348182080227535735730043027481158697625089699653721874906840635697610447798446908976119546204070274905818867303909592642110545449281948945501542801833867342517516195094615368361786371959577776630504229762591939652474598445476525477628156709417037761784211306402709324346405273164010916725539609155165744732831461089489339081892403937811792367536662633814191554493355870354676709866399352031873867793312835079985580547825442757859177602629904620683023438323416438297661493563469123314765737811652399360321893452366830962761927989483360450113810842497931226227225949326485985710753583214658281823233576507106764521902150806350600761019304495992793411733336603553103390820101627691613401716032498076983730200060669802923492665592769948590700508748072378992605142478520538584304946834923976598519560719959367083563602834372362656805100043322292602034083942692210988249738010487954401063685274733660858637207281402478663781223388673068453739587167232527632391608995706997240498388549968247763775628198989643871821868728589594713897744853726486787838198281925945134886966322350975145694385692226528387037788489743369889382085539008109036354341860609849568753415418838690910730834357217284259218653267229613913742803086036780558585134895451847087069082157882772484527599069409048556838967824850557393415097058724134232013492047402553525067845259037549858186696537886114764744762984965767349061608237702720291056710735637155901907944120861126081557102769695306372349443520444803976236941486516677107518592190969463748766149373271361479441717738655775261531957135778425418888181026777203536507194494202528622513776575588825026854647110693906362673473790003702278934846794963661167443772279575275596849362289025596109906742748606295436257897911982783322416847435830320372862701475499900323483874273467942904368241045451424738551682679362745538406933714055600155321067087897618203958208335992679791284813529528016250395053400112234825499873684231900548237427243135625885350434035818827479448016282985851433070989918360119374392121091199990491978054753917951846368060208345712887820013376560061855645526846202628276747262745288598213646518581513116781124037834240944023582637509928155291727096176384223405786899912973622252598129363591596085615594356409885568859272808342707017919563140523173092752891097821551192748379304692411498508427581176794514141699140486388142024851929872895820993382731509889435197508409468117782032115200583996918231733355051466302159379194201798040297145781708380443602362590930151888568418918899841925624420859412900883901876457120352613469064927123451205453842750768538978215504754263194837303345313911776111453015190229177145742753333009906450826385666232255445706976523578613574210307925846523788692946098873935037718210480690481032891795116474722150596186233490461900315063300907523111648578985129107883330042356480087756061369323973511923409851714082468891500915569617351584426931137676963495131047157327113663705147060724275637170096395554430297758920642472488008083574132208830936048315288025682847867872081089002942525667874889286561310700078767989491129638214895539189684834625132662841947167126865180740193165523128168861765353452478807976221748670284191537490456762597120603599266112765963104439479738503674767488574578024567648829810875674076658205609411502348501284850736332155381543865981989448508037734588339661856185868116212741510887167828460356019353540957470833848445314060174856102339343716220187118358956590855186316110248582256838824908118691415992808808234846913505837521118106763142070584383223351297983215108861507162463997279417015990408086419642107907232588034050260084585674215714979348619490509475506918410875521025206012749263743931966106539547427293586606269256562070854071371446054162620381105246350852728575545990121791171125296251950124654110332817893058085452031992726872163800231793588821792689437674494914339655886792381605933429396924949773937534861226180634005712731954598434611169009890420492837945965078344022325437687708801518788214703518946812109367198638364145761340659174532023960039989535127108177609825522688738802382857729286112562786434420909038972981378732765701012341553876469065281531060430726112022393136651364067023360749831279454166066176546762909791843309950593472144462680454697662538003184533842816911111754692590017293827903120035415302106336201121924846072645280489990776626401862113795539267883285869760287885872302556668162146481285310857643324360458786204085891454972856300793811689855500972811196998467875618584448655569511830849041630476771569862162923573958126482573955562952530594093897798360589692967024051129972466891402087688875969804884653317345120371385869225335352282803041261723764840012348672963086622429417904211497912720986809873032264678837371109091997267647762456017907708133666361941864776680686583483396540856720781984673806692515325617699478731205721212524073613564402759124013761670893668426694956400743678833216421418959996084219279882503178142744049911297115939092795508819965049488673606058321080119855971246581153907976040270577664888909210415098754999295518309029495151575537545166412011056783015961811222736101552167338012356305213015224765165650183897945974487461292039849038925184261701335996142104555558720369431825024728858802728369636169190401174403450778667047569107159556046686931513026256561158476354105805601475430663790960176942444151723248634713361835018788160048143868637581790045265883907904113255359646383507213614407377320190605622870509218302677865961053899416828948019597927589984330236588836460244031439446732059707386065271884171214480820924440013961779327138769819042618399637905175345390934567364006097468411969602151536005447242459562049937833104651954694604088909428181983910227514290066271891203317978569161645506001538266834011450843023513760672512089431623415790761139545564533750777661278740884986104301764504902264254183836234116135005036707404209377587606428287768735008212482865603808175330551004921225041121582151174109587040575917625612570575122450724071514999046689960236907023599833105421413516650542817486683398784951308722416220404034392651385413013312162928557876465855266757655193889393158280725872312674944800568272082346732480605861568367147023058823918591728560105184356645284256312125864808196355067694435761219439965633346810730602708788034301627023471214072130374290788153785957302424597046906862276074305970207423700679432589553014190172328829063873948874726814365895096535950943152094316890155092275392920808851674177523951542220492161405707878450110274466387070059184346629607205409671420092921596484714353102356036043627134443299847334880635127851808024773265011953623059793025867797978752043416295379164888529686421222857096427801777296355676775493107538297917260762641254597291678445519685798404451279953831390414773969629454495115027030769946074195365401331142837758586676098291278584881580784120117423735445800963132463759314647983556089307638782436026698855196840253877964818565639538027386505224227262375409528887022526849031731390690821935764885616935961125464555364600755644235246773482754739042402415895491019353501272932069448243235857439337633561738376354129481303995147727640247376639636909589086772366058687097487659912533768475631889678561549479271780727969893714260143958251556956926241566672634061681601428723469345375548562921595271970330859017850409783800269745405276848387916039144660119706483324052737384857820543142806282965267520262913104691087315830035676470320915974265197049401302010749037630198501944273249667688989990044094860231402880529528821943487928170903559238849742636325816231631550566695767921794578348316258782292933370186605441789554005453835631066069178618536137943786660731967376469607358951960867212656427384231848908363235537517931304207603728113044393771659337580713279810074429545780937822093127785342453869879191865285292991478529129346720318540242024995143832902280289758917263510763139700572546768939497693944424493232114432784975589819239195506803768509497330623473208622856653288961298578809077083784566087220289365848792254333067507558067924889969389043689731019119336035924001309217607017658433397436463027966457451649783215625310846292164934484254900397325211138617770629846648808820572264352396294999628403328613963680557016335913084128338007602457489932240095400355118096619318290257202929019602862031714396468815599507522650258321596066098070726856606284028399169185210322737921400197288158892298756692577513543329584347068906717373403930523024500911781943458814571460624311999589399316234656908643895330636965189640331346862394177793091443090064404724866374818961819389507062857296076470587795060514876940241129227318915016958160934802300028521548406319305971154495950880202930302714325698775940496772085072761588863009783330929015048737418715538128195453267366500106531669215964206189322975539950347012037498556490881992222509726017264282024321937438067476706952040129445056146106129346711739042343955768777236816849604920890451915649448656191680097594027320237160201710635719134417897055840151516956541378113302408056597039284590056815090843290014588833851896280754900564158066218608007671317161040808521918328969287913984420406164141107957114116366303600929435041189518808625475954490585138679034492078281841932754740752034159691980350055651302172189154806612679255593200979425227057174178962098824149759158751905340214780076707432861905918114116119491181822337020267739962259698119574310985647463673958010168258205611894221712937798437007996116438711620167535144195811512328964165703237439955345602080403378034669781260307950118695725105930302667563498195784218582046061561008344131293358322683694867095133866641947311220487771834106085555926549480400895008921423101095718882303238572635345481480327549601248142634162904965660369224646249736534320110136335254204380948233624456555640679762161234219369437773725998660568014229100348448659634464010474931768830893815307138202707291275836906975692151822125273730752597146766868578597627742496833620283845005672385635646987155335327038172971955526867377028008641611220056117881138917605831511243725071707161501156466303471254869414210996615443380075518984344480160958611408995097962075519085978608749338677308948530030996179886154030777647601342037309698730755682807928284733364425873802706024029760259429195766704297009682206048585486057685841469613039089828575285359263551941157908746270743517390775228181945056065055276287789948967962136406536815723257294651445876092524091149697085749166710290964386117499248480636640292532526784219799912560456328760886040270509277020651651920160524433646082327724754600173533799124416928331259749141393384582327251066119863832599905315335920785311770447232972417405036074454300664408012866598005082627535543993791958982853374061731900976650623173192731122556717641371245817938478040672392329500363051416946996184396524864338230778388280608113845870898190234995096304367084423329898331290489918616945301477011769975502865748396917019107685874608837571895639242469929510055172715893619115700956262039875589722821590863281543795855854535456989266405692373064426477214215763587220575924654397339470753514521366445753103880469920790384935059117534645720120769227939548814841583315366859676385226139782733615837907893377944404304960233418860832710115344061066190686155734364276241993369556020761896778713630826660398135719845988407238777147847815693345194713959591016704943776566604790145169235809619188874027679345710531959605816421599252823372418004704019989040634797248675194072575611996568296865254927109961028412229756287799941479215851532357913912090204064030924981508549702678759763132815489971900270397010932985953204829447221955917334850347127390935924828428156053932721473841527477010131687515178825692334056691276578950733938942346605447931171979134556743309798254422535177584003363133264489318294198836555675942779891587430145912455146541072766265629031674476274816468451465481576423761706196639195537771079165771604719516994487610640955940020710278728048384946506163090924638205892270814700317970959201841681540042409696469881996596506379366655876898974692948173497485712473571793091764976803802909563537736193053118868040789266751097064479448921325958225677340107244866403416158585660366709133172636385280254122102729988696749564070599798850785639483721066009597930708758018232008851193660414347430278844250754279697359423181400261028129578202522334560618192179176951739093797212433209214655098772448681622102981591769316427315863487222774674121824484012282094669340493135830593484833058271902917903142792449890308534997234418373674733579897558170386431001288782204230909832810618591097966287547099172276655087370817345670762807118206524957949675544335856079065695109691281396120252620210108908450623383288832381879431898955826863181869646225004980008668165906875825277537115060553607131742445494270549521258167164536443230020064655881291105477779264794415082671663561469412329508055891469390896102834644478277257963146142548349832904481511869424295080056059346102975234518237089541067667440426157294257633465661403509308075388403994589555164553255746806932308307713245558209492679364584821490906030840616985097575256590654052831668278932290910842713771200049667430005505819214506065713579338569039375864189791829155840939814494375897933760170469458523339031375555534843577703709786652261511134072417861858489576765856229855877470687675168161108303537987899247191033253967564566856558818775990075868354145818918105339578694826318985495383396348789477229668715561855789789575043630189023357703522756052072651026118471457959194451477718220723631648376655386903563241032094830683930684549211068567873674773687723208896868281596263167327246607364121849010554809715548140822029668634957273119124579212040021063795138692949638073608732672920766084157964561932377540306971073142596136401899564017710392428332623789945547795513935033923732423385776591161546356392217136234852758205400500248227441797485223237177186537089214893023370859682815109124093943895583079926112686571696342097679807585181085231494470043001431317841968637324035977997330317930120637822892727980136491768417289013120092301584273582716619329355602946074657224115068987450497852851061714691949808362621226429602686291681713406809418486132394736514649559434997657567330430809182813640569350791303445956316315585494643729320798928101269195959258378663952348171465208643070385165284844630010388718723269247730285948522934203709004557226207257841527471954014886089643433587783011395228635527967631763379401477493243982266392215063662346403959785650919467974332275275900502316677196456246764347349035357927883258670206110751282808180559760278690778233824063048842950831270008325273889717432229831953770838870876806487351492196772758578093486315344672167727979870324206005444450816625850569479650837568967392659481396698388029721251359854068341917599054649979372809245108459218057253018638475167077820059022307252399752338192667415004268397413223878984591504314799779397309254068879039160711674967495095636825466962262236274687541771267847124802311763772517702477287741018924843313874122014277683422729011335553045181658587959641197940630108083145313766604506050681634465702945163464611947775416790349409220969388895197656541490688064869973925070322087336628971517084226920545151956122533300791048612695315679604794649978128027051866040775174419595470371591058620597938963556352448852757420482989356996731107460454735708202025618151203425110112974990213914985218659620545123323350553840195717171174210847014866598518454290355331963303833502045127665622080875811953142527159057699864719826464534089003156055465170548079747685510052741150578728148756221048797829347072247329356504919225917023263721309511153252467581805530504928055917992135895266522367369618530046153248933530503451399911691952678280489877173670157280226325115272325201967991978365852955236854074437902233725668454924547427775119312406000691045635989883602390891843364191360853097239764164177276352868534413573051873111989164387475858797683536308315744120297132340126345456033210247555154215827335094824036390452835901838870009894508730323547552104283073537738308275196003207316270289183948793832425804160857484173007887093575059947318200550944656490648161645445372879223714225968534341612352009589135931972275877686230876985499359287550536777116741520370090232917504153173395929225238823459737202104739132521607747791235982131625799915116551197504479618520696660785771614029795696072417637014765490186840280624587336062636226826738167482963183732005494842213615539521842025598838665292135932631089186646370872869322251574382240852444304588819697487914332977106172575812313722758272430199627456444249039167376306884622002345108110440126381805789744662508434626366971504113107247297517896189113810212293844016906480607909409724840498727939180145345343404074974891974671636542437238005559129111879620007104816526664702418203643829168802549913620971952505677538001663749292636521549045364836456398977535733870911764631846872823340653144599783483426041917411226023983453980712296936663138077053155594970821112508032101502468615425410358255168921520876764177024967275537509486335434960368843471282513849801322027477349892177506999529356230642091765676443017595621602906057947306277455428847971467395955926825775971282828725501155051384158929181680194062609328185670297217711483194527629391244881366637312228467223271750322867265639421335418472614477691218585777170527239621427344454863541599519245459849301633144574819561753629862976605605701527990259365333875459073433555862045219139785825979487346201372380249613992140568416055181987333087752983931514283306537374604825149824982965977388135380507365854777137009661748237058326359378709203879985906265279700551889618740004961974896064800479809431634674757267752567399043507178739490743301065359625775057535343291962478650493033110830735092814380528031122099827591565394567203844879238846254525057664352742370902353516760603246406536290680518291093016052343987323358549716107506768241317266809046093410608345670243393189532714173172076541358070454314652485529132497409329165663678360137839181609464281871359232928540704065753317597380322297273243911442937814510453859355205352493639238051056937988389123897548745677217094066754309902481307910958512187820399537510900701010148331456037618551455106147781472107918323505576809657803336396264737099926019162155456491543462663355261237158700316579509354656341785754992281771001774176050236710379072953369079241682228720764937921418456066650968712028397103617989242566485704018569736638068382568549768757816383670667287151462343471428131685648827633895108756473817661097651910673993625429152669391765226081521969338068374446712439688055742609324268561718020954949862236715226344683330840815065396088857865470895923319815885923119242307946101106924723800313078274646669913104671930276978208258895629526398149809004040106000597265376313816410671965959008708711181684905362236268540878052120228416031035258909016033689168813787728111968896946047670771956982176749636805436368001086623700961352738458095586462331885251943039527008175414318931718724293098071350615454363248766920273284066800269804973429363819212435925865126342311633884924999155577818679456172575413916699543612032070136893952643428462986569862590137637471348076101149229741174832135656443217148711426892311952343737925202932539921710104796856552038280581302734555759374700165469665333886382071816636855577776354761965806133459123421026510439039810624414055356644130451769342760369573678488944051185774758762232964576558405557313842750461081226516297260967525712647537043871772875730485637056989302974925034122383612822986074351091050902412064752234313197023096705685551209013040669706659492437572034216728996075645096178312287282663509893596832209177166076995392621519478476030361688478053613638788721582470168374524972937667317006519599207003321791497488114292962145182440285111762597562077522870220505306521520497201453818215690376521050354510195479447302927269751301395663451738820214636057975569558391446034175039920934717423552462431979886654170408764308643118322009995646583213667716756511973463838588420945901455134258738798721884312330158816634340365931677011423750557878551792209504333454270491130655609045326033820932684335867190478173245524036571536419635614060570679506740000180172991363597854609228619159399479493848503526504403591874588186212381303962033705754021617321084628210140003772982466989701844505543097852211926293702384467937962503170699120778694122747030692076502174275646761374946971328504484794608241133313451008140826349934136877039697977685041290123436771534354762604966539549311469812488299623827140567652796573332972020377367985551067545207477056469570370359964674558789802704101638790075144356521931987761332005216112056079278741023063928462412920710462575701171236915449478227018232834348304164238294645618743943542753357920707330663526594959714787559349027712174526697187787568445752798578361561160400573488971773590675271910480381022938303858991630472755152413099085326854848264696245193935609728497023661298528381854547995799435968953152609243211932988110872357147262874635976908471728843973031411166821869401337352930003238428466741538710189207493551343412506847058361974089828030447361952719193689255899897100198243912189892465411667099686610934473208746853734173078268406808968335324734521135574865144200337478557983087342205533284598103770802140825721700847419492612151202988086250001920132411152077774322387207248004465023458346994138395787695255775035973283254458023193596083762567713834256664123940491736286947501012863556362943980350681712807756476156676135164942398327145813206248257746423728230232893994910147662743655796551918774369670189435585942901558738592564265597669507404376767615760336796573596197070792185210640036465016020386109867041289302674503288643553045473315729691876342529815867721386025203008211538086768088967194873424531761249266202198070257552143669012401537134479041488272178694286751705975053121079928135034704363612441797129563065157109263481399407922587168657700979293545936995610843571518371338745999002286416978043367452761624739582697047111890095558670874343679534973501540388889371557479180442239197007486028887201089981179093794382314511854146935299370157971826882995335984813512839304116818141752080242307729546911424709683837479304005612178872925363526395044038878855439154406022484635082481350221066822212075882038540891000573377891136997000856784792521412067206273370596289302527138400949555099284231192519110362899732651359575625512825281405550791297136947057904054145525139861109309454897670887078528167662748873671514563980428149656362269862258584246567657709393484889857061869044976045945122756454262867778025103746105850188904477082480254276068753010143611737942985857249932549746522060646592138283427536287602844548450912193056612015965138704494880668840259448288662810419602123441939823366538773276864056919163999544410630158690471038957293175901472003797513016549408041844567828684331023543688171764920570456690479424019241571170791398964864840927954112084645599426078543661571208542964921274501286367300734331271846137179045664490648291479620916533897841197193877013262837396363298182524865073308845642471104199768690586837516801797215723909867846259852476462461777164133370198679441375145468011435574394492248491829656264719095760040151769804008547120203311336931868962786740425975316841493610799818244210942429048466003726726930541628611167540755093303710753158210713082761325387194288589622275912883998506299849082713249817611332377206794669510329014892050561403852309903531894397427515504164013547283860845935875195398465133176562930098753042561503019324550216146839110173027298643983752229685017628400697922494682710523135018290449145788983972150045078173114815357341830555729247742034731066133469307839705531704559526185455013329642332024100513589501642973549527018277358166910343312144738531165061003277884242580258097325461903870615246336977600991426862582549743471488020280101546985750755864308791055047446396284992779981485110016947189761612430951744900993198473224307637138060631252993193802951315241149078681253750004549999554171448811159514336135133452757932989664812121593629078811249579794667100800275157031232076026569071782100771494651084808262315697922641792091141380607446506262206371663044851115221134889166459290371789054556311254583418404401760552934758941426916745622565351872414506178767500046477722591625725481893398603307896039155398113989537009752694868920416117527023403539545192466536796391683408302549714821197646265682570403515752716752255401383079091290868446021050542171676530956169394143409615170759160994831552721110158981498298731546024707122394185298896196293609673855534818815258438817119267757586900310637962399230554287189678218411438548512846945226397409559302931726460116078091183233417527872863491951615646070932446890580624157858206374389018932518583037790734460977123821054687414911703359779775924508840567435068961229080451284688575196398038300473458152181695568795644136862266818965988651792474342564355857054994689399417237701644297492495042166066621300894307756710670210951461423031942946717604963960432956124754250325602271164594965814858746357207569155154848010915222965780029093963793110449694035059042080062846661530441678987278089437458039580948201404485793008426405687969242711101892363555743675619462860223863822880577438455636088005203890053042975022402817197497812505622898798515182276657058904185368021060142183267472800326184969619776250438746481586128252717085845105561819452934677687183290651242358604785111585478809359541638101980118755588288044128905136317843985876786505361816551187197617634260967489153132234310109539702845163641433965403861593556735748282943242664090027101700004079525499368367081885595655292592648206680160699394111841391934086757918528957672793960721208229200421647292925767851690367037639852570107827951000593729948758884597145323428636191924785741104740886949736765052909967882419081925761215400221782041722553744236914188530897174661767145754346869205090842575583086968177357307563674028591125239634355215452333967952756302679807465381305480750483783018482324002178496199378289962788781518371025218694864186240376017510917328086993921078850857059772887612524915417604707691695043345014246763343413654487297401372401331563621446473105043802546662070135022718550558055341315399801998197868581109731304816405777427983929247157887659513310640171362900284285793681683817910322395091898535973408249016091428306123506630927376841583933682499817447965948498295150046344948040217943686635248388013951048073768060666052947011502690066992175386764625120677137021175334565020038373429080837874902748004696295840794586195381461690952421997765727188281560728744096615415595658528266969350975214309716096686224260384460419140119398899542819042092722926196179821087664191514453810588936679042838926733285127349174306471529718727835249915405756147175127705251326031144423007013115807438314197952908060817395437925150808973888404652916736408211254306517317729272487029366265423534867045166623743721972015485188500075180623777367363192586465536692069883218561749288323181222084232440468956842773947842855046864732799871685268617869213186590406657441109777577583328990166276949478416911303433457734367886020649045896823458250409507640115158983461031089750645475533504921377797780659991773045366873233865324080546889978929994744274826688913625688654981929973891172480718433441793596271347145391663848949030109067830604521992718233743111364504120397338777498152872981601402386174783604895463029312701863436957755411262088375751378519018785883218752403611057601039613121532688800775455080988317948631157498147623975459597230864165435772011006989328598926685117446953044737061914456040519357490288100384016443137203763323588813688420062259997799739662085275467291238780608693141993981190968173616993657645195456128807863471801961321567371459706469864179590245455852184085954793614496042076687792539581533804467016711397381040868655737351025695169831021323857019473318583355093075369639211403010207244349520668191512316895184822612964529603307883750673641908299337089512320147467129427278852883072305575891884654685506935523234848586174718570011329495939317676713538115701497136200005917373506507735419687839940031782658361268231267133439779331064862236701336185338237893201323713156524179536785289098632419365417969290689992325285570110664981675851208439322192994284546705660207914162153484740463491840322496892144995499852212180509335510183815463601443512333571881732619744036500230526213494341907898721002980533104631038584482332167769752875521295761544190165088217715776398828864232176333488410632865514782951325076556602150765661848228266692086433658597628740015533453900722786253382445405756790148897065493186027217795343913344820442275616225904801068232284658379399830163327810237007173548647119204135637239025087422902144178624477391250735701958959794183680140689859976071843383178242667642701987458939638252761683266629402828704930107518547537183919653043114157003466713540385188527029153406677449383289086183397327716900015770377322223609944311445084783230792680450999900649298323104437559466106810150821086143074138008334567815339426882056521696178101751656716371161460215399920208922506912660147671189521187204084220330878842494704491031177752731359249802934831112235367988438943835698325637005764256435445219544855166986492747414264773062016941466591883729455799438368292292810221460437957181306715289256394467554213864982478576809357460214150554980457133970877173771653207307219943347438929615759268748848884744193469111989558682309665437680495663252994200628475089586020354946308228797202730650830185675606008775980045490604021738978131046678548924938389223579643996021018254452979921641063175353436456423249444308116449827637985607579293734129554512743815332280470395912722155185296263504492609734910986596843491794786208974120045642438107324612489098288927366058909941375476913224701425932645396059237981692155684247160092225011040434409413310639732570234957985448296932830331399391586241880534405066846495545458801165252109120706824994727029329783820435980400886996836304502998280363483428202227178192262153207640184927756437235312399927793151451268307302469079332632948817237114829235930702109443905347041080577647000829278203278111368287738775932241441452105289242907491263705827570624695512082292198627818531308577838116201899210061267519526413664463916082377291521450314868538746672327992252299469228026805021474140370528512352606014888458000745237829103470050553460299325919449384765804550338786256595581886956630781469163448648646364263936526275383124499099627022462970213958733643999184201434966502974605831533999810912127463850750352804048638863307614095025781591693237010319128503662991341585110511498384913765583842799164058857290398230620271995773486600319620384840858858718004407965580194168851251592782897877477375028319747077999537018740868068439170786953030859706740496480355126416263886340114926175435285582810218519538437463663523494420130840047866199550144716748264594761727017875499436190831709925465945962438137365256140407247928569765315396090484369774039935012783581768385905528836383882201973817904287041115873641040933370933995453658680310791070973983087497892632486721531659782647762381927843092923078074383686958151991035195981637766852757914200496108631869394185969049039807549207153333917596096237481901636018012367101924497704674182086131974301876250588349285733950313454557094195764583648287903537394231902036705335779419708538351659304270557391317954948353276958856129725615221386259186366210650202650930999733718570810057897949443325676102159785026241916814681026171727796800964465847299808611747012586704560103605321117577995553045278789937405507147989647155723198212961508462708193012332858442797973275187527929125248002617695533412848311746886832163928006281769315037658130890407363831985204221692343433642533808212834489735841894101492136607373101459651825162983930654782237668774223946062838327678125062645743500689215679627487473211362578414184125238396393466572592922817332441697431059348810898461228641646726013644347561376449538265982774408757905170211418455272367701082317755081122504726726392043111619903218463719516700160934640803855022140184354293267150789661653559454684929571425221753922731907462157137129101965189350714783181097995075491791445635317875799914446363261877633755297323270947189527833782758499754712859835737269366851655048280460430938331877951182801551158274338077568952994126612050858489604951804762309458908844667763008889029658283823731264539811944735196991645944997263482262849470999537452548144025593023814258792803358523417261934530580586048625383461686208207660618522042278864977883582773997313402095318684414005668824017488719988558540977322408601659413182887327927318614117262751034919372608920499080148764231002634420271163861682822661615311129084099907216519709451984699593655882706028477437021990425370232414591099009633493649360852841030020492086669746958476493415633388303228017341930431167934742199847053327605250354499902058417765003704521135553549990868118053865547532695605081342781313271796397527817908555333604982966235482152008389691576730525536014787629544274393932656997667514869142723978977924570626667181929831386447447958676264848161155946372614788097461426056609535203575971529165947821913929707888048625262008387250288743376584992019971894514127975601269963122071740453233854865315132730158681081572189689545800700932709029456612493592556985458247620440685801212926094922901796999519580544787683560654690345686344920941476430153235685408391794883721642096459533464554472829258706178582567115526520337093769475751569655220542396891059233241268435779223225739621251257541653729476188291568915903919098222177379004811414656834251819149515180521668621908078385488198394795775320788389352427732311980144626131485487303898612984308091027074328279598908993890597985323184362888943828309127619866487260668831920751444991352543625610467063021833702749825325437892542055343950260426070399280715674506356910357054896692878598395375073140244830438189078545132369531001203230150728851280843874789341697375960434247046132336061325904627298589903357708975068369287776587336695072001159125191350720944116614100070121531516139724873758401892767613518810508101512223949199595694293983448896494751524336665294058926445485357813349956437916195581759540218219414788438302787932953385758251915340558279022628491184390261824821690053804467533291534497086027663574123019992267623271206945131920540094966283504055491530727354510767906220723731954896570330918583946700699464281998784950671095574114540949857957216688720156553202386809649884834076732999875604688617553975647599129989864384938252391814352725307867293549799349801770623297888065646572201185372314257293025106485021489389460101332933375021262169975572275958462017763762691691546478754708797129232789245071380880591697587267609139260583147071191059415334663844800520338096447444555266995411548799207222662714021531295994446763212719614868269479595194250553254770376671106898892261297007179185611998224000179763932143992523205873161994578435859328103636795476334600036061717038236753984348712629172111893618392638235336482102064552733378963283683027877023627915036562547667711007564568384275079272392938012426605449053624609749078006626011450408735185415948037065575778446039659628500469046196355636549611758344576832651797034086490763626417665318708826178706523057849974015791595014098706769231637600411232189235913586796397802864929005795017740118498705640287794342464645452064583642310638311032968156766883743585420332276464806511714479701242013799147141361531383867161382331707685557909621260411776541266096397569368726560730459092897293546932731587161847612145856308131808115820658969873887801190636168159494824116199694406920185916777208312075367459346670466909279785801878722766535012822432567215613680023319996595876936172427829893216941613654759657956956496611940209291120578777494537629800199392390587389932964919937664604401786578124403172899775256256420370275025165863305680366716935398979451493708997051371852094332867514245454263416235142767600993251174299678963539384654845714589938027641262558660289241690429928184317211111359490844107095353842416833398726697488998725887086275105695334857399735527013531093972137355805845676021428710647931476750562895253600435636237318876716345131343248899712204413829531292892453931138349030491396919090627178917228800071254440721026537184364646333472649833614454021409565516540695000957247838637717093344094535630501757028868933529644533895245208761708160542904095144357715976419153229080356156278356762054232175829680574913367794960533762863794816863851810832916669932397431082880450419653974945772364751559714368479131617869355165674631014307254312250660356926622911133256741565458391636769412724882313281838290709614848432328044813524130177448625307220717624801338815619295257861692468105826832366755319396157576518229626549108135212760208718412890825628676050759270831208051238908602409793130822529563189795063862480654956198050717354936142171395477116568428253892004101619757073322314167490695233917856410063596090334908948760572884784095623669808356141546576766452103977244799274528704652298238440860521703945235416199311852207289860921744380138783332830343729795416569844258867987120078153219735826776316014279648741648815803320287782305097484547214686465340884683506380381007896945093703625187633942222104046695525622319723616279111065685050424037425829962796371682257487729243701395671989639283393268757772663064830294843516283039014821258562137037225790792316839994137792895686688262656599009328724966780001054568719870575418502312254027024023364339942310257895763327674877817945964848865186684837039794902541394957454047504894306736847175352655305712899793334849299082916213291634341269459000261905200725293227986334344601116571638463793055422282912998325011418260477718670434863184062692095633653401259157494287992804101238449024576378346138406677612173655997346952745021180970029234760483373768608974967272384891873316030300100534852321380898449387691737564295170201784452240361606956318212940392402695698514855873015156331433152077012242382292478914370331391883715723262623412420254067348020373219513266542479006508838668813575452091730631862538946695784965583257620915025218611184145897767456137119524835502687935252549809723907389374575622961144734767654805102102195403754728609907314950340491175233395308890218435798272304114220737245508137819858903160100769413700512520326960883872149920569153303242864148992540655895813506363022750207827827156814472358354958723500386810065872113747420731545434769204803195385989552325212736978785334335503771448460605390337976006269773810452767224863938909079516596497257015334832354339584018803473096272314097181884127260870246075952485322313457619300234144741133797578125630624048362610721115133301378630214562210271849583338518131629699200041258747330596994821205282072415477227282915221462684648341350287297565125419617555701572411340098698099345838512021532810738253702999449914879066320744194918718058200008065150905308015347320632671873192175093130024658038735135751286946424840151805757677322773714272399426790205731490105851971601699869868933865531883170792888707556110677771329466385564244540989992488268704526987405446308055774997656229421418808328056763313105951701747310677406774457712318185529118031748554631149460857201113296515204432639023950737111009659261706413271494939985052103673551588699542378236476285054758032794090590267669060456621564331351288482153363014925210346264795549012928623864558810850282382946741511836575748136745566078470905530435955873043636604506518059001808344136428543784551865755005163590765143849399787052480792528869409158036706291348954001251708108353706011639115980698588612100833734573217257260632338160513922642224378919912023899816744478561578741705266592914495079097906115524168452135131864207951981422209672305347754277586041673653960588832836768350920768804980527151959566243272720550022341820974082370047014474403858088714069571727512488401359718828997655947645261802775988247875943444125348242774738542557294345236064713947564102588143229204874975338202376889681599816688192103321558385194546772518794672906047024462610982112326659707728726358743891433646414641330809782439501298915290172101277362916381935296688843765478072892064890095417400661660678952040614198875635188582639991232848419618823191912634481498823984110197679103064507435445302723549522769017152853247223589039813406463042089886223378657011204780485882998308747804340424621322116493695688904442789766279414487687373740070633942061054500332404535627153474151100765380455547561652016772142339196510423611444237370964169568557311029147917829987003067311629402310331198329475588907492878460742498363152591911933600306510638163766557242141155967104688755570097433951976190928454087780561050792549190181128266236817110048200510540051370141766674826138629724653491712300996110678266856046217448447874788520569207076489206241740150732066814017453616176608741950898085990572083735624649284536672456546986548863287360116370715427417935693892028935993240808309118113815903804068556312566456749299685136961995903209363662727568234490173839913974421020477972387842454257898154810088510973200280087098440539512002755126955557067085927963355513458904714566252629445549203522132698067975456926707749282663744760414122839762827830230310429565666950269080162842995784206794999881363168090952660974036777364737211347640816604633324085582327635510980207964838466405421749266975676801123175906957196220520317471255249875899856008219286504790516813977085303462042578502122755180444467318604439278319730749844477862713595389617590204972672551211717543353827571760453609756093531646284133844881341901218266171343793244392408388678547189015637917816714215260787583302474526893061378790952704973561291093091154424167183619911263814202983482494773721674301588193380224989632286324179855768633726343654361534215754075305528931903114716568594610883395246003584555253740860270140656374758378673214853585122315753795081693400265640541137317804143684067654114696318146502222526976795498481247077049460704546293650302972426842727279164621163541359873052028654994604260570339829086350756496056069519643616723559803964590945446552212179115540715463720109858420818409426504821613550297034587077188427703468291940184994075802847100652106406816764976494131895935925971361704357369059023551822282628868131172831581895237761482454466675624017689191897014134353540221127645007672889780618211808194448136266422237480293373102700551881169173001660739951767086016203457220939711694148463431640653568762558201196454086225018908683072083577050397230291538370032827204187302294421685299571232723649479181284790275030531110345322789251093727051978286216137994471599327213925867005449834176894929395987215844305853592605433029036144422856217485008052263607435277092280143946726935980529199689584894148558192587206711759867486050627292662599436214302217691879205374461033708325894961266846320354207750633109789904666411392172283609716442804580856266433803823114863372430715353324615677101641754900140360276026327590114983862200455809320022449552061970048727855479230491002548827171110021529825504206572564768575001977630042004493056035639097202275247387105359937873164646031443957221642108331965513500361451898535153853531962466658221935404307504155135657005272421601018523443176605991548773282018487983584182800789889108697926327043270136480368946539710505890888455154030583607926669726946017688384205479297911192571497725241645988429021993301847025495869779223554013074410275791829766678501756577477989222616506608441008960713498277541265686699856735984362977859822184002114649114437477174805378425188819520456470136280380976169649987751756032798314247286966305255436351463381631823145648869264560727407320310999135635296848183152886441448751150718241040645968245881201420715830437975518393849304386140169186157890026179422107748474794680086664123126524303890906078186170500235994100852842603186924088222008791386423029233251019128091463992862617013112804906767886430098215544632186255407442534416295366188708936372379541406521421706186099534400099242638326726226996513219836203466791941901299965022978316104003759676220937356024821914351602018091753919169715862851481325192159873935014210086247010350830840936118701160408810972361525999749172521365770477649517625196707166553844067685641087249320461981003740299872426806336304934052910911170924412141286008108831208118686200857029169433398217610406139893235653803101026842870069178737217740351318275072192806070367198195716562723250939043861236229065621134635495625746610296901363760628401360111862544527979152476066189829171549888815357814281299853714114804606508805870126693644692078758221940701030238059130000720915445123744814105936268553590689631320944576001638521107435161369746875582258449161752584861868339234213258997706979253083212070432713756318502157781981262871751801537541210432344695466797644613519794923869210644109948626910720912459280048110001750831058844941831465695917733529793858971520797116926298455293224434465942611042697600436254141109460600232970270370055002414937233559963928971978991183659641904519059387509935323474784547123793309521773495110947497920474352522459393999698544876521223362978309793925352859674722625345478362932964620542191535686339244826561446266387075817259758149014253339140176417156879076375859301904121327821509849134110848256139671800793065361217241092856600407299718826785261013148753414821682190145112176206888443600803986960362807106214433021813253883194035060677692461416709387803725033731532278912770954988358865420326591826893073679617363407164098655473617186114913370474234979999658948964293597667787420562170820741290718767813250594321025359776024194676460329876825118701574206886814072841823237404965152713358438622252585430539385903245874083182011917344808568296347302454259431097736038491060402059597010995713192122368961538322226451805206273989913858130877347358758347470945498997511974089399754000724383422515645685097700145312101884595834977889012519601290023356794082005522910603473483671476738790220108766062154844822968174481977596986676013846822651406579393664177780309608416011733094314992531202764778224335607958276113097621019843490952388168115050613597080598759605341271595926778102182631679573957293310725276926317829004429522187577323228997311393598111685376339083167783743592550598659843999502651183205878313276768688541903753443142150401274625541283553680046782871197255352687253262242758487871810667252974145124146791306772710827989349672482839439238602355428627657641870196279960256443838139392153825684686247159892978884732581786530899001777500950283496042691745743482563403683893622282310052840627025331337850019856370574802527223667184664368847955856445396507731440863493056642360482603390602729859824921935446214533075087277995667158005526448523423356910371048382536922363515030330420270625175154933913669388961449090598470085547470963949421777688400575138543946806089082145421347575875677667501340448169924360985684730954988293516952249921710813095545293367736122888186004142178381868958036370510276097562882310516376971105338959762878075759392911251119716672502967822172010589370715969509744596116895658452184313525716445412188387636549173895360575434136071427306869839784822149714230284994107764642580189647972638638021752058859149473857705324275565341150506826681952054587828555470534515942503071889938516367131333811499211306297963831600789577878189646699563221515036555994440856224731605502197969211049342613823464210317156932482322886905918379464509692720573901203224022572648431120302289605989133014504378518919388473582621646369896788544075862506582663193060727775507934041262188895922685880334729282422017373159468700792547949317151712006271514223868065751060388557546665524911732520306940053551280663879128969292510380051196585680116366056298392774552332788267304623087943330493530490706292368101270804632877617100193944182997540263550216854154932595884425191775075774815968462827175004846172583901351508084258905418883395514713157739950911920087483121870371359928410548209476914310302663590855372573155908933484262908774792215148999825466479450689273726781342924154035370683673789602785201649438856289644858318562737665135469510119084154795480499484668776513125171624036998944928989031036064398200458235908863281218877127150380066727231459193051046391301381391614534753639184509892597486149715693217677889767399765640594641405840644302911898005404975240387633395534288921646245628977038849023485834959326829738191924972112483346320787722435575439827624778729360664736488055575665813539353919354310942704754229534539482111352335884001096453589769959642577760951337419519312017289330816825304652451143659768829240886185590205713816027182374425280372989250108483384460640338310893730041293148685473301109147762589114597221207502354288583543605968606912676903874016146720027837480915298480891855390956896046435323532134082487385942503399842614532615081758186479520615036115218159572157858044360865794049994494982704716732715494801732217488794689033427997259589388900550762404824570785529477385244698336940591239547202235988661223962038749695278039049885578385559410057394708587850702852960105435319599040975808323967392576540150041658801885820103519777561033614948194204815649081491773549276774389917100631669360786227447168454949384914477820492382924270659562055914209866586563150323026492107409885126677470630654359934038081080133082048702174347476793008011514337435871571897592945633828269951959624404569571828981625268164560685838085488852755514714743511592288767450977803659428731182502417398145517560164372197293829753701033861556326047825642711797998319578855393168019003846529088200993519792377117440358704749970670711846347996301927562644961749348442658117221423472405783889637039018406080322301184015399416518447746623649255264170498480769871001165466675871314827460561439394175667535243554230655203356140355782583528549234179009701773599882586631564154315249721761185069224050426125379851498218270277618433605056438569788014359856625839071714713832204117657226486617845940052882018987499151159142320825492872553296341803296041356948043723122514186072742834574791729734412692533653178718559619671611331533599841450403082786373988624534646523101273593577228020553565920530824065019240662533912781737299051841508980240710257581801218003807771714341194747121176548400772996387373390929226908369014131555066971957667001277206938097779741763190955636570794610522301803668342264177454196134444518068901175761761543817184086853387962523138130754462893863181848518898974366786299606605856884241935351607393671907705664943291380320835903664872914143710762640476533689349266849820834155377542380612644345243385995008118112606690413456905469196276443500303206417734872587108934023391167693891003289031820311737924893824594815416927086604387671427997049123588758937243242934424908937237430975241878982061901024857109704616314506687125925918246821652137709593449418225168170659682172709565849170271604801379115945179842948120671067138965837505307104077351150789575992882453864433337458185957189857048220568926855103522656482947228121999845847963222793470382951580826730825547907775315818316043398372022894177363844962774599188126429232880146153156362177996695325196933408194049891155066469903709571021856811544434250233144685950848756274885561862146573809165558071746546145266677991860061206133763810932619212361537158697580337369952802640621646321771655699286322625416076961418941121117635111226619059333564722961239431159127333304188904268998817331058543944694184638624510341468325529165216096378684752985711873146422478432379142180680900365635487331773865139891524145397280135045048302496690268622086865088147025163710482159281849894005302824362857964495600105766120830386025211812764734459785412161502660883402762212534032694382537916488110039549667993132099671824474296023363472288128681316173241364888483098015180059123014881901834811512233238297697071767807664762655083701417336276252302293986260326569661445763122026467313691165148946538136463847974824339348731538099856338121062663394944157035485505733428683583324433622427608466758355582278758573279909559433115574724639949814766672143170810174384970780527372624676385813011384412362651722702659524301833926550242983387336741757079104218160804830570448920809020359781612256674107506158995525982104453592073967597919263991317998205895013174640703838184575096460501299953462800678901420745564393020553539042256351039471921241557338888849214092340279231395736238908553540154679094960468197823808895950661309279759913276239484320750805766789980123931453027575603660913785516639060987074589512537563818776521171489235178859384980092175662995938265880943099593339287123794259233610753150708102623771191202378250579333741222156730957555853052887369411638484522513941004246457849446095130483890137303402533730877954324846539763624795185230657057337779921849495639473973350761196167272844762810744276046373428885008630594943536753143444316101005037988831434914537476055166064964301599539901119728604194570952729104055829758161383729300319705813594520597035659992383213565418146916705716980575491048288470527220060295262012912054326106138969988285996718484344884276838326374393105463278875038761572924948612933919550511392463376336566248557644646582719573530174510393496236912040833829253049699330352495816386753921444067467615611769226567366784085200995561670819056062409895151380365782582398011774829433477625975554818018000362223517830023506575981209544179165861383921271304460686965006107294542382382507503024788694603893749157243212756024678363306157712466428879127767529666096067053735343270380552153918091120380441313964827344916351463311734869668293378537116409857075295659716904868444225407494453188595329592785973364804356552814717752797651208073653577577397130558871578866815928745324567693827180665473080439685925116027554252278604040511048711590672556664566731690985267332806185029895276081366783463090448850875300138285687337962953471176646203659335115429048840557431641341604035233498912453614493284120874718284336025679193367398865796587537020335970241874608593182389334830165510262552629402443677884665219001132989570947893740663841813353378525556300239473260748960005592219760827539169044751879538385620097206361812720479723656481803371018070606720253604774433143788525728630443068539133614080362391349990422823957873786023457393458384596560673566800441125878536924051248829670283591008044263319526655749049050850756317711986497827764091915484961785427295960520704099407462130610736024596626569003815022484768644247412156524444343038877591311828847560350112904529952577889307853220562125371481271465928810436091962684192827922147610879282980371951420249832722831841356106880263626730727597317580702278846222110775112917373473544526388975688433579735528092313562995314889250660201884192577850006406944416934143577279220951125490275740823517947834132066577132156841786766286829359835726098891326928827627479816269764812339515385616367578618085213076746644190541468138232416035280681860190196056390996539710901094712904729913518697053448933333629963841869185358791339301529608861350903893731042090950362354794000145147235303046576236260652463922044644423690129552576082824984513433004871876354805764839238211980026575160253921137292737736873247898782439119884495389593563156384543074478313836143016298941079989937645564016866870683957678605780867473823433718665552702935858174036285002080639866306801102843577585595562705383470473094275061072714867884350019501597043821200029447971108929776686086162585640693891893994498333750520504238394301542964674512771036695045031316732174690398799030629082718580330725331014226694718017559640854214705172176313463604060912638643097734836059588773509915921689483603487422522328644405712094119451796502045855115967539744714483709081411682032823289242273273709388000357620384674691713383223778145635165604512737382658944862120700829307253702518631703263035949703973682172141017438006058674000876049133639143894773725125312434494883213153702485453187895677349957573310572294370569784063972419875110816828491282969807184461703840486871869033547754309386870020784556721637181093305417849167977775540470012040382508233866255946059259918857615528811545358188814917685394112928020302383130032401188829819458393433571148939756458038176148661639171418758885025962389836926091698051535222350900631219414558064591416597034920206092172652168517625960736910654696163580488908648158666833518080704082891731872185406551491982724216153778259700041364330350471380761788202914563172658891867127092084704465014925359274186512000960701756095352928244876283675548345283848597897565850342515321826769726621376941746314322507804335589064131477078837677301865631527982726863875826676735466690501449461301829995784080356168538363333899872077574024839097434126645877319160384237070665231088604034101673712784783070209197831362885538825277064249282085427961117057163399241289155266899588158302650361754452729050203235652888938530494865809375989428190893563546689210673812874638208028987165061330713932522936106497560861666632857406660317420154129962266367965915178555347798348926641668012167180799577581630944819516328307047945771849231636540498075710178589673107062104349810619413114674219711661166163215737817828912534743578098131887031111501388258838378723104547559030411348683812362530217033484231620342438853702798870260556554688939121831368572307912774823521984082404938778487482360622397302628654225124609002287414666533304858441177053225892866264718548242026594934725871389109840427844449198666633605515512150734314646212048283282484577014930551589855103203797217790297483542910870005469491272740768929932339008051338798519861476658585858529245666104921955205189618810950965010042494766672934134417436899952885166127624092080058420741529318270017144328561916316963454134214135425550507594658643781996584733960324545507314797424299204624292704843403170939423061562521266032159299197187114502451673234718197647208922822614497197451109528535890028656270865411361979496485336161879927325282233530200098587762339189021901884456805794614575135803241709146514160337754075927316109322754531563656044110735523253400425753131565618221023016659773337368629531681904287153026588073574337191372918168135183380372675517969986187293283417300117345387255436908319629951487374569463662724697468134415767059375616149236234526587626085387326339803141728045520572396817007488667649665296337366073228767826419269028329688163795890953922199886825113469137798415529123557150759927325912364007219059090656772454725126621203972292805369036138838214600183250733749407200814768394614129736902575385411673748268023731669034930635146412126772717352686555902015100230785829365325358914377977020985876338097115500506808373043854024098053511395498442653067704299702686190166560991190365621368067808683082632203187787563524542976122546264437165718095376742011821383561095908317778680387482005310651945041322488221800110762072022922892159336759714929848644773770212646773750639167710839072688631324505795178216743710769804800189572854996418822635602325691277026159852017595495275434351258271207786750381542559907010689815829726995825475524826614329193615292750182590942581013967212452677528262423574428098097039835642824509633188842630199110525417208518101617880022276512354950737244936394363606439577057622504845711236916622465713248775380764606322081582578802345917411072054930091205155901371715889989449053875316236173720711261752557970180819211226262293655171821368641445151906020768547273232783676954380932024351081698185381255065887523569605408449484820402833441943325371076313120161322469111846957493599521521123290347087746580893044513731640449480323558339890382238733907478132504667414482401096424158567389020493764193866073479008592479043511597301021012827494698198283873848623814153616466713478010037132776516340387393332950443167013826394439760464805519506863411434226498893793848022413534481150061893255285197497454453867474829535689795522797917686750247109372995048125311042229522818516027740966692694691931723085158735498872760244628189186468571493774446643881712449659621453522068427291548127815349921555128266568920177745198047409887935715047327521408651285993981254418565239045820157479599583737298108404134391832807394526268110820849915703231240800699870368703679398834342284023966552688006496775554079516108533271768477865315455470890934526294475068777726038026131909679511521604989641581136924718070986265313928630788291277019037632499527958474723557813505140972951775326307146604697495847228051245730138247660240059716433615304908943831766071309114300002715821022156603800477660708723228972602976618805161474897309553836192024747836013332050976842412359365594186538335541305546014033519445294941645906609066952386950880061316634436760630435038619806039455327885556041375927364874637635765265898341200666339946737444144437779674843847376916082139890978150106383859732594187093106270757330506641818980748465110277273393526480635398584103962482429865061527622989800401927176701407926257751742694232229512155146449440274386857569032275105732690929634410173246166968233765547464392690735283442041290422740586751606593476169041986937768900932500592116462134750521550520619479916807671851228132607241758453204606732342534641039528928720995717749063232082515874222967136994011018452765637222560695809424255182477526451898155268418112526270763307976086262385961284775837397297373189226095339496962477179879786384029443080796785998495689363145474913370208730102947722406699601211421055924550549325995143237720687264206319771693945883570172694559838663346729191869317581734016474302632851694430622289247600054069381722712517160035281328058618468481875274602781853537358284658434752311850725880307007864587428954080816727765475078545549626272681814218283419872875513806927329621906396131718819554514763739944097052204979587562430915423023854361551604579500169228804706312081356180687819758188578884504578683218099465046029764686565232199853753884068875859740614898468030247227495411980819909372714013807634154808318103921080813170168179635121602123721200336298812419931062788915550693246014511831553270630375370438555699515886623181469064582948987550499359526261244023621569090727929704412728384945268615925922302640858998843144903167010991266014731662992769290427276580435088166358992160300850603060113274426460410146606305925791886925691116093973972496707289740841929196423060740303795526755950422325586214415511446596629807986027945998693018873921800499474565953696631371588625170058715078535846918587098068545842989762588672938774746445257232182723401868553345120994752898441522293872398475938022563697084339813296324732785723157037022673767716476280243243891995699621676054607848546256965541549230992233403122473005773526445419513167760729282247230011887626199126749116245031864628608664290758541789719220836894675140778121920248916541008646057080667855333427501536875809268619324576717968028762878234760702497987153011819172731545288663086684731829260950514819337451932839865523497084921780342813733928430038479651016958735610048050268137406118977127701853583846900345936698711493663033708650773618599553574347568315729365094927123318693109270854025656120481965584959194639284168941856534181990641034923544436866040065232451377399305713641716514514595854600287056720002620539143830899524434391165632667435734692748565287795957713533902649079902772771259245855637502747305723197924903243740733428830885111409917037974968118320619445262266888391057191811217031260525035102272049579882173658941656929908742812419613332587005352190848343207782017279420652622950307088202625841889305545952521897477884023913609039875284105993066846133455746356815328963915521206898105470217528429266953423946521084992782628124778409361907428859261733660795783788750434689997974068370272305281367303333912847303974567319145613966336768830644885201531576775596808891097405717983941690277541060208348408235211470631062181980811971504481699003202022148503283336311444889604072174944585070285925186585424585622762888249434781615161197764817873624580378723164305637012718064878072989243302285236814898671631155259637292575049623834882590681101698781214333525655612965398160506626642965095874970242551355739552229377864352265451061469002915618675598885062832226922462388935208291702530509805332134309892637542055711702190831811851334665153664715959449212040547807789512623432696148342575029670184636540272812075070538709764828080103906120817517936057099154170705991821077507313191307399973211235575669534881377726197691207104191941842763928453598616843092968105107499382008414642675151302451892205451285738622537607875187605284879879592937148426319258340687620789144184171027231052725093760597027516577235548292261733401609750237043569120875130258789153239977049365044184735847469194145717070742341626759133091416966413159385614598607136466270612767979128249018069233431541012365222038588529364300717853977356457949264707662613360835708288815877457386187788625337356893471617750590702423256614178459612320959180742633601027753423558967663338313554967868213251806197278258145983272797854200685534537951389934010610166816753746004653148559810283201087958625140676878428911079273387088389608869818360716601956711155268613677723670104532651861090055737178809526060241313390903215466349196940125556598137776944303762471921202771712430600490932170953132530458077192467363817514100571449502257984958823109971547682637804747144685471536800877146842654336527488997617087753097016230506291828191591906466397630343817879065214143406172947252452851479626998282209141303917661926775830377861571231281533282742817756325912507887455636600240800726329595732207627844009621362200015496755396012161514051945499841035692180267256253658420755890157355132899193756476130689760018823012586360311247661852960650185134724684116514524996682314115077837943475450863339027519273693935206511007046668206631382702806320206597303238551153591504387610306313791555161252460216116751044719701565847000823414320844751177945435464940237774032393828160265906467988545878537072809839331687218760367499288157840423623170632086333006918401322905862298348585344663148466613248011837265672839397186011746385905612044429222271918747057438327858305405120705841209798572302378269388982774165783411674605938344882756697746854196963888667838985849284502232560360987394785465061023346197988502153177928840527843183161882558694682695235012566058894005341807910276505770566619451545291799832525349867450996655927434468305408794053629905457899775295057026208160732199411392005749956537138474085815748487614321808440911843629714067605307083258604948660534049712432749208355695321516342516233072433468933218432317786413147774665450229325492497597220351570721727796385315317807565985912825944357558361461069057207752808824207151523979522364072080357128836877887382125243956597857122100858643348546548176702873400345548498813400274139481409477178782490507977769123923896860247363412137676347526161120221012708497990058564698698772597922057806892713913056128853111095287244759261027840419315308431693750784057715131303670681429242427329963716591717634127180313072104488633538357356357230561426934719122602201490669252263353360175944277496812541814646982019412992054072250682179000088704374858859040979105982412190686637976119156765522412205499654442720460002824253696040300938723567538034028380758960103593937088987606948095513893172486468676761611100111061417136930111805524335129989138699014582541068871423562085478024763185526572557197275530310440483503839101769177051953354348246310687211765465166597951879703900079467075497652217138293743642295092624222545347034645152912241789826548751234427820737462836336997431565222783206965396286405547291337225579016914783706938322313015633644971267353083727496226273104228697517601415467698741501011125748180952234532699366129852885985130627097023821164009610631034891926215315161374552326963710134440814827443255416555032825700284678238827513910830938310446297955502589778840928504193011717063512126433538346201551824387441823954965587510332333024565729943430865962448062845488051727439894231100848036155453812353457629900752212628691623376827646820519693675900418889095838186317845257167810014262170371272215205660033380172364111617368529991543337190335787897006872333592725946689946410018549102955775839669195676003260575832937446711272722177874707424940637311643826587494743776044436597849505981269591606708292970135362881763079312614834299011036939053475009765805583723329822355074329310996534173388120897907941733600811962322153794616499821034534987191763806585603821647060847778914024924102904331734026559467784735689707678519969946195749728817020958734799694847141507309138443847017047815204306382116851357403750299286216181138418668711098396124061006840644407454202964151870339962076364542679430916095563566234336993111695802305706242547618022345125399471521120365264334759741434025161119547487738445461219248353874970355708413179297860038843933134942823775823802058136785793545840001951972680532169036853900468733187163235202512566062187084941405017788890395614742142137239009218584409532563075298586792851005215861432903118146436113384926248965666973460446200700598523708387189524681378594659862604324062951442643409810976630022186176682709197985459901726670449575000758963437844087462587949463468929319136919413044406177833199989855722446380573445245651867807429234127099145428415982844964820070603459743195136328472697043207092850033294869431955002589031241505102399731002198561685995466897296714893269674962379195813941903214180998250808187189998738748204319806783782340099857582957318659244705808721185658076535802890421892682772622213158687571084037898779559439453845482681293423286484023504178612820285083507647951710821056287104052966861120495479079945348815680467902460395155620359135409912795633163800592991194865497405754673608598378665104839409521786093398710099360154776739805206762009911065313392282545229876906104851511538666904279420791456189446328055377720346507567625168100135277952509338173806985462158111421081630248414903763077665166923723790196714315442197927070458953514458824477584098008980768540075169665909443109014720597055762799691243263944054114555235304304245463200272675297870923656685218901340864422596153228600765911550894638438287446364781913364876237951529345301954194296928351338926512660443080382649097098820128335176672953734308593491972411312861576787868853285413201221961318079094579691626400957486285702529437428236809614295413200376004410219645292316444072073629422520623095603538120856768021074575642910841659388020537083781721999055457124936954175986255466851308007593002932839346585578985270863794796053621856246576236707953556628145775290803605583266172136535546416332612698226341329150630505454539757892923237639720631216431853196780661636969855271903817983183663546937873852399972814379052994346755049071030198515598378837172606885275187824802989210024155762699447295931217296814717631745482423210262927117789161505731666819329272871472232282586083038760819631868315577259765101908870356043212749388774676196863022123606627103816867185892815706104917081945005655204138410808207322546717399840366043737924471751818916099232515382222417814559996372948057764363973183510118146954567875120356523891400460287371656425809440621558817600470855066732666769095449488793809650619344890214236456724727109888067524005964402594878893615640858227613761246703644755678309552164727091354762853151692919551145487271183276822698710610483255747273063285107825837610409803378016531564272034820181947101439971361953220605122317029664861997054502672049105211687084291226225963152480473087296403086195446534378597323240972380802618393502235096168422068797818068448947639802696638925553273189836696141527250691403011933062660881901618278753692883931449784133821257163131526750401199833042206654666200447569940790241769124353066087752149263208325732447810946650587684090233230322350992466272141907220719300160970047797203509578345614791721355508489222813571636827545437814068458303433201302735624572408132848281749725164111333064610897319099759903428911117976038507463703201350251309415086861039798481003706304737424414708472046460047190160805547165955264453249418923420803208309410753037872551406681154364228131271123593696774554621210289173046222978471014003534103514454259426037781805781808737753672579636781828134188194918094042997711253780261889612589789065873581734622677527414962860687718744774630644235747661944644135905551100907038714693128988893917330841219197537804981136098763083129707557936166559871351042885385801200709145383811355946086040190985551075124368802528863072248312120858864683506280109604969414787818897046248350663372277654737356468148722997808441093034350351335570465141067315373470476683783844259463452353363190034036139160126591866878812666636655018266256137774494377606289635563213238473423472826506595261874156160582169184575336886881837265976299684816939799494032186821366088213844447134447569228854462259252423449397179454204394644790017570377783354235290785960860269803825798261888814791603879000053217204104503768790883531622505170435538572478457930898442285985426673956705370272756935979379446260926314759728970374513710194280791479978504897995262147569648803399897208311921981782434617132656651001757793196804683632729112631742260255750461532359775197678792548844620043662674760452045287547903529328178720271800336617120328489802606661750535346626311068789274022738944522328221048381626361904961895215925194321374909807036926096306802995023308703173334250671960270595514665088898842335964726299716375050570979995612849521290100323014706953455364857948949673262746291487860400854187707846895283685032212499191708079616945821653370186422332106158226313059714901046751301793260466730818328452333091758738066476254735603683247805087368615610017212419281013279942691253312049703175891995480102677694943471495600475068068657344094579539062112241004941920641516684369178677888330454527861360607124632546308976463876101044581720712796048146424458615667650705347931885679823467646461298224099560398426340127816814876205611750971657827002781859032846106142433775321448870079094166035303625465977344225326751180071590361120281203775265376503248315699340028937902071428399971128847789485101255529166244740298312178853090386336107061309024239939598865854069692499635140155641706128865141672605738781989599822396692506828143332792743760528116664323193780205265714095354833346938319007330799812951527110491052681021560676924949768143187612988169582959303329106714199899744819323047377278118776457412978829423226051086766425768963922480478770870660621168635857468761375187724460496864886670689900336110638279668421466168144962885533572532376828295702959262032097238677885069166034026323342559875792368928267724158146596229747763177323177225767045806131165082544300939259381042689563985863676374400978850824315685992151092102682956510960184957459936668046013947069005391043212533029788628369599871056609063333274772507811500547349174103410076510602898716322775369816663537414578626704592230675093506720061932784180732045149014852903234675868681071644850779711569282369600554421249199864713485560393473514608884105650470851526339959901667248928942958307303249122719924874558184526908564159353567771043784551866406410700270767594196047903911084547022665885173970454463435354387527066401743278314246798366873654230754275953190875713800846745203329531432909555185141517641862143736154533424436974684109420300844175952739738886268748062795158094599675742287501715190938272579319980905404604773584024322261071982419721288927885282541811887998315623269236715691235546100376626389026771834380785555390561555523734461301233374632885695116040581250836437112045895554663177502026766950834080131498529040938750848483781329493134005418517335515646254646089355549558032309085402678145546714773447128861976938301032774380259504837600821361746762047958897457148051439623813829644516166563263715372990352989797256870574073168220004204231634475037315651020229869516953972392585535681265664965175367451321244435937805826131988217098358290744492269857651667228502564513887969591461420557211429804030388650778659039444722828099267293583501241240886936996166311468689551793888499724180103303371984846717152735859945510330846935496016513273863890095269501935599407137866938452335915549555576557259398413316715814016942600418837646666910432298357260252793877972859768880076772204413585565376445842330690617643527357077378838706134456754334411001415569287210668815725958163747276663726850510507178362797888528230406813342708039189229692095692916322446123124626490296075685196909645344007615117896128754026447982821220911289222847047204842512410831394718780831980278842019255820131934251400178593253973282835053391429508015959565471529009485423366298056219185623854084279015527565897335948649910851076203150790568705230319429898372133399120776457172407447487858067615737128403387626598142874634794581148889426575867924294740426666524979540486152777543867073199410909851443774969732850098456570783302226377538030506215744772318260823435040345659814187969723029994924572975321843137485465084769310267004940204006575781781152983497739803292344433291993669982296213585568943938457308164338908035861386477552660168016476960298818459906912897537041565352535109238037476301909240327548828338958824121831397508603652099770184952566436170280336537393841876335633028216880017839005706162754781798755046057048290877591894640239797790674027145720106620532123128610350110103529865591230492933107963425576591840591391612513854509111112871898319119255478293158858923293582689736485406680424403552392734290336371874640073595188058259044837793108891492741241962222044846150391918276912663472212492802700848192183172594967999934059511309545151082951116234927003257553448265626838907433046250529097004790086575908371521922722847180160738420657045839348324243920594772707402063882050086981192563076168459904694852223751913350255018573350003795385366243180206156471166440111745725136736236220128855898786159772529656254490664525556427078629875009631348318841805325376169052867309177021003761933372784939880365311968255793479533747147254633042684657012937991090949333455252256718700230013026323843553656472636681213614855229220984132606907086098090473444490026568491291957029748857169643015804876917454568327635032296199035846284083614088727510815068204545799940137428998797845554801962296244541031056709186586897840530350514854346827299124568572712141357819303865305208548982232018336265412624959250160424410472848025834406529915931195684684248959952743853391196255249451277083222830496373280255043963351477228738940803627748108639546573125733227768559683285249716608744411489245838191813953163427488195756746524758855518642364239509776837122951857128152236523856847795195997632431352160674287292149803524063327694557041524648745000006201923751663880067761678724965109738561167487008393534448266654373974410406312697340258776197389767464677387649205311648720598171063861391069915693268075029342548438253872708414395057482267785942689239129893509432426934331115336875107951466421639489576870776442344139090937592044598837209868813829264298491715088462074332095453091228924925805679856808556435483159073743414755663813199102339242124565006758393908325982381573262029597513673171403540956638517140215485337626248753015715226369149534983085687936960789471775960586998823950554134919631811364664509494349016013961294400412886245593377642595376537119521169709738852909458352446716386625231251281914135526331692287970048057811635721583099231828411815931030376773213157879555586196138227438060627645815370462086457405214537566611084716675088915729779497442449757607590650782342481035305466626888701490664173162788165246375569625439485719460065953323479595992263793648817545836025313433937912623991886480053471602758331093907215706873952382153219741370839155617413020740512407670443303551685863359118287474381970385154301861736513135033793834596301422884199385476275897115646960612841339291267134637936599266749804555627309567828890496196988001291805087320283913881431449255271699256796313916742770254264054994531050815717006991796363801348765057861655226189241698210231853954304494167743096677116972869201525729790327976495948976584731561625340192890061154931946854002687291981849493542377062744494559759100708337239296407849330838164111035972519587845162464340276742209199469689011657308092293701309015849638484924343547967628931085012926234828145677668596359502888523807030910982705387165126707024975671219951905556621948778070105043059551149507539535189318816854030718962421507391612762450208836138095912956772003613197982690952022570549515416622726749331060404086024819093649348673602120281691892682595183209041512816259746370344947717105594555398244007966579560047423843345614864788721718782528988665116792772660986017615056836874928640677355277995745264235602127730423807066640931055603575083736809501507264673385684808870156804978271336834561673060870362927174301399329734095070107032282232091036663912286978766444253555031907712982984123630158070292910677525105991959076276799427941442439147845448245814491088067515346574878307411480407256888952992331055322229388273011844102387860963736033627706423117087830554031235436096232835264129545604608388396099994891873363461924651932408791218060363694604897110922100706292038609821001047581416260007183688900617922014447375552593358240855252806331067118268456526542742179859671737225713208426270347489363161579860794604547000845123363849660094443486434698752486179418086636465979964852375128077261367531508142452226656319575044941031209096739993261653166533064776386513428448178792351092690062841548572869052276159056148288962947693528500528871005630942039913012683572482580258784188038630058555160929791390327320712266158056817188136538226263252795741443392186113854283274871606078993094377998865333361572788776307636904011763850906678699686896339572709462205859302593454943375572706880699283709352958341019960549743176564162644682875495868194002264797673697253504612033221256598917761764054390003359221327479890550864826697698815148565236350908824533485008698619505302844787820351492666460715899323374786142393714912929170212649495334884536099608284574467544491824298579649964804504275259389647516799212728811598371223344431689626463856183056090626103534926615484762072999548880085092856193107256456048964976143015815241872602420223371458405704110955036840005542925770330449774577884334431202915693075435628359474946692423148080017266672955412710752074087979826481402660695693742484924351119879949059331386250923710695405906165470755005902074507241868296088937573506177260121769717399077295118931326634190788868681420247892696449070960737475267357517809517282829424259385097266838257419161563107228313441022501245731350821043838847227513899416004001607308724773715505944107814177081753273589975819136732632013174504616303624614344229030057113545481145082067733957282809481254353303750504884136298006239183037173752446980950256195676639149750567812482220053387449422222152246866950404030425605243919213380047601013594033122131903612387047210474837773305102593962027325219264078265518554154812184024687932899646072347713978127063016680954170357991034102223235938544590994319708724954407998199970228279637763971190971503061125632668033478033240393861535869634620844166366582842695094860642810563520262661070101878053087732228418036626957125351001473069312339355043118079622664683945110982607431362232615258163185556249456702702722272743270848306871384789020704135457456506478601693867721053299118156795866451691158426055812447939790024375036898815079147769634315269666837429739453388233048962026294167505056048668091211738119205476035253351459034104843696326672220354205619984958864802001637136033888743161551353878486895801386241566641377375893386276428307160149703927589540980833812156648402838198992247859567816263071211305951001990939058652835775414944528180361657670192122128320471300629368195285359012319084759409496118160718700054807853085139695727051645499828807739332827305396491857936891523324963765229990705660071849185439286693376161611412044008629540703772206535041540502806570908268505947204317955773653066059891126977190059009789077273800962318372744478348079303664671578169812425935273340244613870910538256302841427529057421502496155405031304933517596879733103905858079622866106859787134757894856494870634032144512656713080802882079542843311322655934045913308489461981168647799386959631665168084958922322415432193352524098620860952997702285452064691276999182971480152487860069405799820126356269301836217591148064324715653618475908469704141499732773192495751309663210962627394320680167589718973047637008874638812091306782136381760963756556310530118865697222969615858106931787876261290413679259459209863558427573495165861214601647042640064550145466936944952352646548501049172928349509592716071261811191052575082526433671125934872922027730300381058304008483297459885547300740146640361068555021690166214692275575627575975835369382323774462559473458808516683741844279467486244571032281413076808262198810437931130613163362054578785521848272264686795435736515348412868579087498325850241478762826435015270091603586706049529116387583182301485156590500475288687002755673961213440223325776454526551665339106900194158684858989324030766044631604838176931815230736992122062316903683317747105477463283752986124345657123902397174835810421865756378672053466903135658716250152257429519721068538317181496802894178637161273693018226968628893762395908750382870284672191426349689842017426481655508524124797201306594208205267941022653115312898325626673588780143454425995047150485178643786035346017578871626680691054950651059908191715970550688888629374225001579273935911558292184560956064581115591513264238925478535767376122649263037817034438843647693814392121375904706762975091154742570745767764103472188333754851297307730873338926706798750626363101391414480183746840158433828534703992663268814691572687923430273984153507658455037506843417038695347205937768619022539459374598030274019329113567093468071400115064470480967659744228680434894039919806117974162219406772964002343905719746527322913658931903940089907981170733162083936451433013504178558346776813949737727103203883707771172500483650400169901482217885739918483114381399491569484458338071172033715948649240739505669663951940469591003795918871097641206141506234946455250581500735277519340628201681038341307484195676271772162254969748259806683262520149184255619313261542585743904577624183306582188379088780242910749549849187882434502475556261062866781007143954233050718513978609093512299630943096304091102793990735273484708298815179362694312819889469544761608652261931759403333740832990507906321043559173310429647544997843708254271465931389095270418839135515709231646830710761485689831339373535987633584229723954845420161305319022511082523591919015955061073072320498559973932541017705473270856211865423959890001601851740209794965441498675447503228947353343536280280594826807981035107779916957960146562198491439283660378994205781979975008475298693098538608512258326042905873914242263274841445874355423251115341922464528346536866440371676105497475374698236515309902338274849541825414439854374731173253785483393033141127749085192742905261997122308793633102453617817814903230503218384686223686664881731897070968053987443073663466033317962313581492153464573707955653022904923132779543299877481074788896772469756543525117135025353410914835366787796265786058843067515886614158376944159429216124358738585519912858008722201436959253008169644478694289402881854874887134130651683541771300744189410400009679167131664043529756363817233442493949400047842454923388431650387508244549647045688894404501268235672155472950789387878572626950150256937258054895568078078280754075697506435740725979357628059587992673781356471731007732735214735236350173361493348007964338172294858795921015886444470868730240934998900805241831066220864861981087965593885247834574138340347958447582223785784834084900842911954301485933319807986531961213801818759583113958405015247194381113994258253801905864432427176639902820847043898843836273911802654286836029445411003959065224404806955955617722302236622953647492857835748514351234255991905950890736248438222657208012369539440358798251020077379964319294489308680410011083684067423150978667772625177461131407127154572349287777251694930479320694506382558159928948374066259834978779350161662305439788117156873667771478223354933988031157418251546685415000166721249196057719577699928815055490354601081633196854760788695384423089891320065982578154389780327244664289680921720275209394116805042803260830746894727982293569700139304937546868388988801460917707760445524890444208708352848818019832193341755215214369625325285814800852339068886996778121369159509147988890586328329304556517684382134122959427205897980165356314828694942546272915436769086120134000659611489508877593460167337361350419895058971183237875496038377609413973695166550883496765011573965105786466450686089111819904172165180688995475174887384152012964757076293755695053518928796911219207036651752962167196863947337263798529350217426343961250579632304833430201623810980095506556901396875000255275156546087501447614034163048174936043281495881601047457585639913339005786140294975194091204292859497290666451057657414174211218196549593672549326759146226854399178296790854450247143504320016466569834993061766918379212706767113135315942530191659663986977493068887105699285882608556880587262477367395604780045242695584089724757084570702053268407254210253071361782303584036782295670052846975242709893665970875297698466434359378186492544939054832623560308423728530684087831816976542935432395129217168362249741505313221588455163831199567694486715951821436672911446307458845367891481036402820287657986380076947028055131879472227839993292533908262464945822257211713476691505212580111714102185032320560664103876799642831927734482870041130225087721541426239447997528667164195993486894094800919594779834348451703372693861946222391560940333796731764165662937574806724240878922544555297580781960161628558387639252533225919663561039374615985633300031098256758668600262196059489009259104695648125881795618311811294354632891313374750105163778738608711220990606627335090381148375020563324997196803709920641332339696382370172927084726905622399160114357002391255324260678438281318302512377525406230839784105012892615868092774180929042494397012719982665803735027370899630281941687371990501700063665069797465376338004656860270350893629544773570613603591280107550431959060966261537381386971179353945962665085567533567493296318817488306293650439106679087939913749063023629062699972641081313462649178924947542436539932333446234114186159490975724416564777776899801840456457863070937278684373736622637698049692603578174617879606278337970504427454735408478596443987918252200681527489812912063103709627766571839938145166934986176844253017479869552546792370153834851514979067579353458222396411115252603685271761255832694544022449050622053218895905244414397635577613003621540476648078109651958119027409043847698731445120715809246885869127033579681190689361070819978252302686699407309434850393765988614310962375734443971914152788503001525651161142181745809311845793026420840291489646517806686929992718249358895099869387732729105479074697905626766244633762609816638153201657462262011351197883338204429425954544825626183091129960327888547042802929237819123701320290394913623684852738294745136450028528387699124551578266225306457574857102461013442447114561551372946024972733843411025567443027509671557230376807541197727750404484571317273861207251188242215722823121659182342047228690455822417876090611004682568060344990932125482429786511888091537355930355913445389363132106360352196871832267129861765876635853378121972669043362541315907659967912755423884318459809369662067668808326067776074551884900949073083160992974117678912163688757789676482520129754283871334066567370586595717786602264714417530066350951409629295530386024495039374553956821772526814607148265642343298973100276224610636008614214851769897178013336701612594504530613219563525339760228992555969850715144993118804289395006282991470778905855409514808802700500084178992165778442500991477473489843018543441700051764426315522403139657167496994547093639118802645916926369598737582723169264634900498828245700761808942453803482670916560574294433130814206537220032715854459197630780640469139723365273679059919706844874506350243722699871410770006839692899466140683696120210248687521689646602404047866145665735199325496673512626418526161383982288005536598606604074636066883809228696093126244412883401928036965878109959012665342138414542688483385423874534554792469182894105525151168888358156905873009975045718323526240371740522768623209509907297394586756795512080737572673325615111124112727279608524078368392001599045917755364652886408985764611944342264713278415708371962722258916617439583501974797364572223075582219899344081470157303916563995108556350634128056868804244402625731811536484626168645515961353040276434796445572253286194213103990236602946082018402775460443404521787566643237511229816803412262892835516251772672886924276041803017401086914962523541699241206102459163372807184523511179423519085150349596406597512796097090773879024132931857593457045235120317014602308371906651340868317576600956615268307408145302748777472178823757856155368634677760520920355240861366268351915929000392204223370142214012062222296090042344920682412245625714435689117105461626690347834685154549447167431073733190873847390464567689576097617692778516439838879798647063233224399118008836821944138829795737183037606004190157485437901361146649937264181959910841674811631270797967745063393045387606481731681319246964037233518063129498670490196116851067153300358678103387262554988289167265350292115805510250106806434222806936896984597142164787340212011587483699714238143852016390081195903880299507497936183377025679376349655405533778549953178289861326846085612889699252565437377238522687298227342276394175526423912830568484104012402664886926741154831679064421290123033468343186702522463348786799845706745012346075022191262511274100437034419809397679051105729551654410923740539428664719733841618955107447207936283120481879936703149112441684589538323762582580095839652991208766348636699421065402868976379163765701747698173964672287658449758819886676766076426576163740143882446285509691979289974208385814348297716606215054014911901372458249781904475367678543823781175357940368809959131849461289494658011336022887921810225287589920221308957252257815704288147718072773385095976822545659868120218403868086594984570583811783525142046054060033175703498677204421796475095837969862662609526071553300023600057317001299570910855484854141208081076298214660826579116450733109386950138485152902001676348713508782500272135425073452649993583690685597959926814208861103272686172856016675785616036471410448666077018058154709208701747388541749516655630554135615856682552176787253118690582613106816199740506984896291309674843325776892390702809816758678026292457160526070080333428236367332509123501882901747475962363156589456436676421154126008384766460096544100388454651311171621449732389761431743338331948485190155239494176555877483939639879717417467295449641131345510042242822462899801491502765973718997170688158235483285066848899134568663232003317540644831868332276988875426461825368494381575650187606087777006587550508392240520781315580093933335369560425748465309132558751672461180281280971389626448880171379821426615137897616069682433684942636464408113996574523569111166994511909760977641059799763498793019071293996354051655464463580598107182394605910279355883806642769948859577543501791923051828049089593314420480757132103962940081814601159579699976404471460373837669361603509847798172514481467681876728746694219626713847246722570014536118091443557340592650421448519446110528312208414263208718392127940611807546525284548554154262644679017003910283442671380765953649960655843532758970610290464970020576521587412915688283593850648412237696423286266650002563754366193578785957893793750870874125504466068910759086576964927255765454628805391889646870110320363644894480665970344404785925320263788314737266724662048913327786584359801760102649413618471581833796269131329851098403282027101260264838594684736681692527813748585989315744786233169712123431584775236372196217534640585525872582297387699886003951876727639019046272878352988943230369086443691193192451173258187431151897435318831458361970860940662509125443276161503481369433563784694025499454680748554893780427636300889585987573113043312926445235593073148913601036290034438288823944083535333288857990201777424167066768751653644202792511035961225138882340143207092295223079304894274518560576696452035503621262241724286236156660301082769170224567835484065539779659029019162018223630834254720740680966434584654297206226771868020382630493839713105579672066405907442079138885152778113336749217108562846711371104107928051829404259271407332135479921583283784053351409039244789768850242586281106948521290063401334408634944291708130111721125087938548566183177623048096889325071348735188351807446026667271598022235535103461188952210692158483142504322223230878239031578946085794638371337385362240598205952483007999540832752311118065856913662848010936630410644586472420858694822915298518281074709119107484075874218427000089632706179197026880663092745085987498965368871038376284246846144220455166181757871904366755078774030650707808540764138300238724830253395764494805955927974627775188553697254105515495972289900002918876341457870574888503523693758884813883256037865627053966177497273081458482002768953770689802112073095766795373115658121499011753856807151185912742274365469231976761603394220355388150297100750299443998848344845790661794835972533733274526667771057951527217232951102888355054647677812968077148403592278933323586140822479624005965269401343576947273325940351087266448032478445017921771124344649918442146927316089561210342365639159880237821620850510998215504978355985749555223540093739878659636027937051874591954428291890613224322910186582228221554927835229546499504175203452960235346450066433115285253459351614072400704384055514808942960279843098905401111766107876408923334924865481841791676439326448741876719999391426127237491185347086542755609195833566717944081355330843098902991858477213015219764120845282415699003944696895259843160525743494684408364087103875090949032912896744098827902099069869180545770797112615860761840164562336728039501294052695673271509540523822803384080730756717273609451966435660238453549239206909463769726184925906620932295531718115937327450076544526202543051918363959140185585755163660696496622766700926975343842008376569970670146413555030807892406152745935426497159002177994428131247740797541802065347973257687787321563380434223881638497940565280358573965262130989851530118700491892261540526576058456059162551278341403237673077800689861603993658812158274895426105727078927846860894533604713159131852806136624503448666920518747002808504871076984933864388718445029479220711036405976449553213993294839574598319740048886179331146743228258393472916447138929850748287103093309123299132276919628178003120197218227167979642382115046240185050025074514423948618906241717947531891960376308723842509152688324828382286301411791190618334709857891298600225305528497853107008184814432737151834791960892630120562285112009664913764671521344693118271641501947279624038995213312453712210281131565477454285777661289888788463999107940751136723356199392844922621890699179732873445992325560494764732163770946397370040312842928077550774519048844072450013096521189233482068103746678093158518198127151668965635887549886040300565093478660986254180468454611810293108127489116941382625620849578412248498140588503480626303475565469588671202310708060725144825785415605273418133286371667728119290650206013018160103060183366412992498097243506379651503227038067702292641742417631335100688432457030065156354277745682792622835930448553799329334431092573208457546335132444078638166449282486247229137151659420863037843640862560737337901344459728178251372509220662132073037815726652943891732173259329646259779624299155617045932105456464772800703349957337911565065282282309370019600941254673873842386258928331122325663003534226490196781040200025402856608202748868938314883372697697311852685246329228212073424969568386611017423725663319449597320634998245521733296964388083016568473585065017297102528422325217204391455964529587966399435750811910090445653540204406798707822249509734563289553995441424746922639886426232688101456935151680698502533471826968026767505543504771684738596539877581294338398784185357010003376750356658526952528419738639138730342109274027798948678648231975369846158772918043896355463329278706655526675811077915140256920122653665683494179439654084929194126579100288172316350253624784832878658806600144239628604573229818143120586976711632615224957889971153680614400127699907257924267452262879431629136968299612003319125921859179759930638230754433869815350773540026036827385443122656898376718282415141916282881683823872345587017814280002557671018669708268404748738950221974010342249474391976917352400124438597254045567969640010573476215690180364296958207738177244978314703696428452550242246872959747918592918063835429057745173029893966968181452404340646084505430496982662363050351002247248845889365423262312861219765500408894163851356583769731379865730511242917595720955580477639132544710807769332323502450449763026756559812556138769829416263256585232803496048883989969687233686654817278931745876960654230351309139220247178879157329527714674483175765358410964161556248714672034480497005725283549062719258938391160806006649852434121558874796617948348489546482532978825317333322859867674616188698945520181211448543399840562266508461769625191197371910737332863571013689190707011857393440991610413579854759878885523092085066537860207237916801292649572950221489845279257963230941543740318648285783251527001707451738909935159737863737231707117724522827165620396542696617950715731115096450131324460795871106351048162259045156828749551913470097760489282009076796753350198809342130813993163775523462389758081786293084536784681220771556196841811878681893019592843433926084699401763671708767464686910936992702949532971801805304834886342333812270065656506232943019312679824399975175966453407066984323336092688631327914451508634577104065295089502977665217223038764159399157732938299345697762024496020326103870526359219779030656695740388682108400212297762142272905518155731913444102022208891000786312026274242284630781609175328664384484162144591242637132896135805604339835498355060558090571875140599799561906084219113419495509035198415060915278008856641167467417158766814070422320500407646876507977365807043505287000571345223044300393798060900832851038023337331074530624713210839191086718914159718818249264218772416237721790849002456640938098447066317414407754533936689426067332555689886520194168803555631234816366407375570855915285620654681923093432659107891075632766530437240940305811343976312473540147779620426320680435460262810155902593329309541210797377434872872845021254169916068147475838051361193127983708237272546667107737431912943165599441063253389641778760305659752721313280431415783408907300550579100728308571761797039090147846493620409692101835135110960422267002204564419102860982074766578161800386312650530697613652516424664239061081328482569445437873219497878133753710819585203151621697953851396693285156721466180810770571156834491872689183639394859907605033424880935502460441982902154616325637338616233154143713781304206915166802266775490582348769855829002290175717525082908477059680522757655152278303751401520055003483794745039639905538878450476435022765996036821122523698673536082941381480185299152486699323011391667548010202653780671411898618305474879995761235719248541028197971465813745349030583535620272156437268038038835985899982856897844224346897377872499342925513493236397444572668020980814244398451932183343526520694615637411909721430878941082901999090162408027032305849040261937494841279811440958152691486568867261011615467605382787076651552582227837270859131887473573648440567864423935624238787745563515459842842029773286907103255804602999586297563499592357044589445987228888372265299262914715539609080382868452563278862942632279762698378160029458289838297855951083342724096030389851740739344700729052487201987627491199496766627967896686928004302844928450086289986910096302015292210769914031812203629641987032466279692151918213046103501114521887961138918612624747820327833950280916883325550555455378678190589759431055751085870449116769115532371243765079819437344583407246087838350408156688280870713035379893672480981693484953299155657118871137203218330992521272300851156906827140108081586404265650197721027533753538220963733722690456084280605402810730477248948723036750077287999371638643626883035502018596225081226306977117508596268318784237866726887473305145819697721131846080019319964812244702134658776693920061130030197563997940744587918356250142025569959774113776121564435681721480253638654160563880529325836587753351113614935826130184535040233176717694572189830720747235849422043814561313930678664655351708238090689029096548461816911789509155230892881207697491088381492573456960840424196357789045862069791563561146596362895640842800165346436940225094359181135174991935443460012945337191072175236196638437149797928408150978264696579788729183679488492183183264720073450545400566755721661399745757522306237889357040503921120624844655839388594820023438083432013596196175621009099351199226099404478290648826862823413939364064444740174988390891211202370340353052589757745092104980691388723162897339347804793823678100547929467747580331325989915301728312897898254247992879260239539549147111964146541143115635612910847215119933947681110850009706636876236104616314524255119945310078733285536031407341311354495450802539341390351410477583021036832035999770858496514001689631766127260474378666947653303088159517389654599546566211747759148403611879814111063142101775095689594150018234946792462560775062886560967105618100042029985262213661440177972008021384515802969889786042456739243792443735975737036331439157909571467309307929317214814760229427207165207959429272250859592859310647263216912800345638083803514035848039936569951726601578340339745860141268109252458334786604629314559568882404197221006077127759969541802084950760088912940863745207682952515288843146181685426824779315472755598925401826014049454022678272856447259056504003751452298573998652990739875934744706589629436984758503884333403825678593740609499892082681255823139331579064785396229652641079547917107234240882703414520254475142491131975327156091247138537688475276362578292316818825727542311934550293750675978547098915768141820872237221411293388412136336219890892977776763302255289785129252378325577137403973426821629871101138816331192347032742895695943679583661763953149693629891331592436645599039301025773086133778925205786796810357028547170735422929621651714607961738554516296149677811944642302706139459521928599730467761840191013620180687881767939006447115804649661353475025132441976893899569974880252629194320665187583084868041783849880668629185647933860000938083971179407180860187573593493651390825272265157680289218630530927792390871937802812215324924464741850580522769172674731858530956466205793076150591184348719128898843968347731119573891886613007205104991583888713694367012613350790670880655820933754025363837509742062725208873144687719760498335446020173777700057905834904298342940018683596520860793125446279608687295935801413652773762701377231937421556367858526172419683231339768866519644897229091863757954742201135360371959908996422862860169411636171205931447695619050796274684845293619190862165844513704636287819360788428382414163365344240237657990081387713262049447567004396813598227695585798392690080437591939982757081862569259315826987014986288326583130185836271709932507094517803937485945891447959538066880967649954952664193846098413002675821675973724323072614899031475011958284396862932355929844192713098190305521239405664353069115955274488825391252630222725257421015123269913365509687310774198547912239493612763661148355866548113482869945573445895315779294077663024819541593349108014971462276350514313673371413606525468613092146697427689809025471886629380696929882427291766486450742191430399181891842761749542468315828724865906980629526650858560814296589163146072736410144796206830601246757855597589153476209944262037449315805021482072354621636914286604765321762458917586199853413079102489596727945032258222670263799178802145791800494011834907371609302471872431253379446393051990452419329188909173382802265878828959857664726148711618562820189817042328011422858278829717242154907837488632918240572805235612579150766100378357546468580445500717601716305353877158997199622618005477201595628623022496120603473588307047536529018161539076165336026780842526920271148776346984537836383346094888927319702902510967519684917374670662231572929033154766721152136612125587425272107426394312186805122701188282198381406804511431350238845369085849743205111729568999700512842647924701146616190030817261564722155515935117892149138719066083576391039197583209112526413086114463010695287888610814378092042780713007809305708787960849045117470723984009104211642406429837935075671983410724666086408157536353913649754332609019639832642798235116869024048822648567548198918494809594290639409461741707457102341804084283725856537740767426766825565053177278598769508267920471341340487808871292464115859808737138881015650222502065103505202267994682090731107801920842326452512570863842360441190063068709659476554769071111477241892027987089305148798621808952093865099758644363789969287570729430539343139262622727398109617677191990270927061431249770160580416562245343334564042514875056163864294508202582079030347764757879769904844739531835697838617232734521326432068402345147804490256557078861338031560870828884753522378828495784701375078957898307467883755196694073359159034280077384794528574682062855414729536028098875320449012968791202965131813437810129965365182019747960032066190331322019798716234948695986753805053478734824905874442211819824392896285615390873963308845279525622540168367346975375225818828850096164650343184305111623944129894234574772731931017965962668778032429045819767522553694529204564139106609738708922231058149606697833763590200194035433921086170662420033918537430020576619023079516350209121870978586943944961306512350834505060000574080064196583644505149418775599149821148432383333542972074080494249938308788591845023463739777032545669104070623921578530358757219296886191680146081347613427442573364225277487453735870820150595053868667071768408890562430622171706970463209457996126254185487870320942406161629459370556290902375865878229691569446637922513683143855211199498952249885779428617906945143104706651693142777200354508413372368627941426951482665523823539990039058061309659709522406905078409270981157136939217662098038777950060715634191024877979783369396383566803445509444870802358026005218051157018131462182700493529344110220442439468556339935932418713418108394184770086717903931776033046848692998360256026798088315124905044872382317604255660664491759807917078892091191496943521347607789765993742705551777796610874780896690615912084003875842443412279249449526303529177518498258381049518438018073119895772499700390838389340915815724072121760378177912458522153727114193442735369359598046660141042615828840645534717867271222198286874458215530636853904274133989076756901169942580050228714802623547058647277237994365631431295236542062295488000384944841755122178357761467287568047728326648036721627453519580847704547313265725244515717289736406755541665503654786981903686872314021506961219198784369905986956771459027012029105926671567438018787168041022570980005541093623475921727420130311433431477489931321243320328011921084828361117460904116788183331060630704424557666185750001152580096890734560850009028316434798586509785120952030536276151652600949322266937778976891915011926751208019028379494020926165858456175342528348495219207623964348009524534141148658821687123610446688615540962657304497854668411578814652883533849387585438959681693622048572269434034503127388519305180634051566647451503375617919949184720330681949269248492374073148209534176039137406509999140458945998630193778263141114124427213813636600339983852268168504527094798350769084748765627858222576443936058406118048411223287933320497826153061072846954101942124934731818658444821434774247338144899377536122621081209291718945567252938862283832110725027531715670629369972888225864299795073910138774973836533861560131728069659218795705097986102724214240116080436943908103915886949253791920829889691762932403496149921496464777177454660344755222588631264951673466084249473682485784854612334532877051497271461457997803589288061274472729224147445455972003962314220874656334976771433448657854607792672985096388122280700477893591646567361358008396594769222967109227500963669086196754633072212454017705559556190950438519189419528130061656810598921183029758795708677824854411010140497949026635683320410334739888139823470677844840040470064810364544605211360857503958506650104294325703227686899342072733150399972828015071031126940080177937944495667988932197151433082746464742253255149106322728423734243958236435131191511703927233248846695356840389803817363181923736856254826738402264134404211122463295403668507303515915098283314227350683977424586974172620917172242198077319481467465784467979002941033100837964272846055184648488675017431602518349995659760473309514420846214435522161521282778069684904701270205290501394236079190774407711448227568804515172529074940696165723585027751629265325543761202832135051649591647221169240123220893545180517425698119838096647199545959859024851816165904835256574899807502010851934930397817898730289931397738526412369035169416042451702391015738563592168187763648502669367550955142721257126773525592494490232960286777764022393013476025015421978554819938081484997511811994151708124144645107737197950311259126902548861743239423376978532255726748311199015698194490108476012043098729776236434103994657784552757967175385701883522869787275022904215861847591190625858558765014564310807421751768811915547553565502539691912779867476609624028510082703243948471273619018020657569637114439225076668045563105551781000737045109296549190658300096788707639681468726512040910121198528670369872705398896088968570903854978547604174958748716019467149419156580161170434331766726070451451691905516639567110415505279057647919690420445951403294416608457561567304736610501170329477349226987596747642042060981677589393315979830879838211798259398849469901502132048472151153907869203534579867468397850482360375394756913363251838406251718509453231728943563828159525036537951655554916647857838805350354625751774795875069976587815807668316806167897542735652728544373011219845186409552725079868364453155339966542523452390243635692895801327901592025379092397667567223255174920290616862667547903472542956761086200204678320262726151546058753252603858023733377404274829215373543771918878278640328006986299858920343644780915106624414638519330918724384787246471507256197319937083314083548229236684741531121642311290448779386229743569821189087666164576638155147636176053952875341580074919672964479630343758091457716404239038809162393714999276107810795952307514858874309000215574922879486395213364572086162562654178208772277516784870669060209792511078470134016167779572624637790826905121403304325597764751611778343535657070455120471499868813229903235143313622315360989379299833045927630962196005204873778988113343424195300183223303708049779591580660959836542659312861886555950654548187638153140763353543913817023129595612038656969093534857411463440987357517964044492129434113887546258216198180742375992328560262455518043014136760742647230079666652576861371516169617658751322665096200072628465214261534919660135106235625468969208769924546757526370989721858132967525719236095509826353738649595679963034328439635875580443977008537567483963640806849349967946045496307110491095521449131705414027584533064043848613897704906961036715336397395976455045894192005352471523179597566512531120020402442075880779411854901466111099530307164402286934581796660346108296404491564939830227651054424807113379665316012325364019007290994411909180833359261851692623397263717259478245197251960301299610918141352980677324924463125848464353331555694182708420622244143175609047026713188281730673939192239963834877867854745801995360414678762667128407293172951436771836494651965530139452930388696988880316110721700300050716421344298651155432157329924880554477465344511008465312209545622695381406871422578236276150527870261170693106337507481876643084082774477937202083853492797632636971422457520118326621082966760612860931839401794213970177921360863753038593084691012565128679822012473095304865505634717629971573612984947800762460302285211892176259600081283361677208132584793388526661969190767680031678892243182912647371368683745546201928858514099173907350737509342980916293699194907597780792303908153998056268464008230226647780347658044023844570430523878268733274244564241505249120844152884515906934371670273065161830311240342239183682893308553458813098511590549168830022573117712853367224560828533715995050492971505267543393836066796820270799434296688448175690255247729818973148858306777050407469293904708146904194589769897964518366588633455890020173695231973425299679750475582884752417238940649234921917331728180249153170475180060302809161301113048821232724179543826974197315956563992807386706256706302225042596228219205445897787211896078400476568528816092530808690261854669469367363144820653272194547487921725947554474336684599628971901433372317194271834565206676089426302712016552783678097182935684055522437382173730099188091319895486073798544148407184358987878863180182395558378358292945794482563091965039484225449360403236851048739881139121783283470592739652060225877328070176699446619006833025933687249686721933336477790850639966403762630129519217090208750753639143440845764440919356734336620781108283945290680687418009622372933176850662361495153122244571242119908181824452051835794734793361122674547093780227148202645662137100098016748021428330655125589061553805451203982581430799373269768521717212634253544134621215832666965651330180464624818795823888963568386515253489493209086691782937576453248783968879195276408782717906315051516430993379448145489849763568798219329486402516472668821616286360682001564063585743981488558116652678492315730241354870264365894135268167471130654971067181454302339966839146160152860985779354116840733158860011123911042503759944872630681584537226737547869964193524536134030402288535190485945398665585770984402280585510036013542405594536521241879932066172776696049829954159347519526759444727634155542847428866909529945332764974031149614485115040361388191308068613966538102812338581003516959935591641771131453135924468079457173685423169012622717030053085307292347105143322312638956558064336218292010854639255498069797288069350796317617191061083552685188521705716683733670673644699339516374583473984837936248876237423516834641680828495819552277804982989488650006201456522820575548200684098534190311720648500916509090660676175329093836787948671006220446699481977366715227422351260781836557069154966049688051408463417603510601942150418182830267011019613584924502426636098698602668851496092744637148992585399073889350116765310069939953573242276772067352687825527874377951540913198462915921459894363464875681633691554798671428989041552545989527752654161056819999898152016074836346720442523381333677375066642517051572907756364165084323639455238448091064680747206830093628865199961466240121077358093933978544305039746764215055266862065540554054585214147850959806905521229569538060176845824186721516014868458271836659103780880167644566041971598524740580761123387516516575530910866921220738615734239418186103799900180101959305862065465415334190265415326256514724319416347123933885185442130911990101823806172104099486664096003506753737929029900490478055510148752200597199158703546230007084591342285941080488867789571658012608771634781394855036781439083389189354194722761942222461233573150151600403341230220041505804240181827408031462477025497551783062581525728532925243459934587528720510759050943055988023652058737655630122460747813076063764981919823967391590187333730336643209297049119602516574964461484639338384153074497973554740946461287468024856767547546144701744466211967803546817261893582105325988864349281560435500689818434142856772558111387043599424615565070045414720797574989424156095077477164217685254537317086210684217814659699635263115961233503990521438466884300447737741292752541148205693523762276811581136396218326122483729511066372428040015039838617017690403474266344802137568141744974874917076845370501366492438642732697184276179984499232009905363408324878108430330754772605736537839966009642935554178360340707248850637598005083640050228796953567689336900307797029037966294889296305514122345324400263030802150603817961989086807237502274921925783201202817338949573089465204475866315285079551401109648849970534325514280825765253294323039200209829073474853621645694078051281434029130359784490802281757532052309982637527619133554231094149002639752149844936973283889191744595264526497878598229649110451084521208581365255435636952263516719968395636491471430959190920271523248126122580471684497247426316703065883187741175007698383546252933721353402967640341949105893992032336475271749829417377792231483696086738733523486362236461168082422775799958413703395636869487260064815971697623278645489497032443983179026874240395327343697843883779115724817096801141508931293405728599164073304832495656210798495570368366047323419906092634884942175605245524994897644092426323034813736326197909838108197980618503835275459442580232162397039454132671530201119949740630732703782640181705351108846590552281723488029880914392106070229357183239404247424688194297139422080510112762963131404069045593390240008142179803104200324981718520465091456171020046090545126841802041546688632972037054960925136630834406657652021662786126193536811371751276447990891086202767497169184385489998495776707822852914410050118672909572830473991112323836070761003808205151429952279053437234650981118570783917774156482611747047095634490097914387317192220914279510032859488041809835928122825256256718249927580976488444906829174965883151858103303941359455940621145671114936338587773405618579764877512549586131663258234364379530750488345259141093888012718977736849273013972882679278577922885457909260249711707164732323217358306034355424758785781359124940737760279875770597296942225391106694975642973688457336070080053173875717935214153104574184702944167528467241067111841221486299965374399477010401416326343464015687915713735200487111998575661130481336400530232188601134058039129171032234871549882572230890024759150447820395900614003308191325711180006034836604982887269119906450262265687443927902641672464717849298406226996821476260806243738735031584234437402541244727722216448282118106540825320551817441121251944626976735066203977262675186602215280341633911118458255487021605896117059383107985942782390072890461839488786699827310288880287286220558094843436171907118772966070049323048851110921803595917031931965936189132614710520195007810958118011192432136780748488154182713132723502020001505273051012777110598864408022005811825168647999844955293751191811686522852733298312916840249487294219310064070099152725600259155252028808740359023398131828399847415073614518919003440920521168555138899638742414788861191107314535046167291513139071319724763497518746491099595700215852218807520121654809273877728723393536569191507212658793417809904509453902284491748882452853636519562538386842560775491494181634128309290097408770306513157203535709496983936994653430284065459945032176452568030500555196211560972721984141187592080729614393204349811496358277868775749575427577133299069682823840086197839715186214316755395193024005170127046077179846866613417827703543569650389755868872555673567519612493738348549972300242473338802807686893395765590026214241796469731980544414959966619958392167471757704443504256747104283584213714219725012467362333658944107641051874853268142980203182920802200101268394187486097307223452229584234490728551302400728529835035200063588881146519920023723553545575566532946782008217479228861553662788967633409335904700778235913597988609478270308306097031065710652289403314326987080698634835397357551998296476948852946716182319730899208474807598382015128734022731264346435566875892806394864881906944583334869148662482107129173924662520003493238287179050331612680088059597350852874197877967954619350377736213431173465704892069002534454849427341628632141286960237448273107657243729277811075022663128139520626545712690041823262003829102016180470711029837921094421767652811964056500034558376401734278938173004056399006950556328044434610055501090779415041798363449512772345082422111042590148931138983466382887198046253563054378279610576193877792247892133400059833996697023375096540791252687322389848149880238353955862334711471017301022023565129543152391388987008898595527284470570313945987319602777532975209938748507757559700390551103423189512668530492886565203211846355947964835123083857022824852374953683114882153210776923344117909788766854739435286996023711130644844626705223960939088520088457471750708138348969718882756722856078927533063585603175364214208934428835803645877642067649274241856879098846671051821763457458512001125564452320958828206278315902304269385469862556297871069622153353951587532119226971276787254480733014775633109162216442065625916651032247456750790538499802156607264132165954595271065014339302126294844035485016126659429671232848477497537668074875053908564018296305405990397236427126699706535028465634527187603698888348388082280323806021630730731330863619487439915509709364859137268246353372723773983143602351657224485044060283182519314468821759238780378913324727992815015177580752026912719285968587930205749967145986358440675867393969762101782368859177835085879490386679614110786177640404236957865374814230402622515433242489817115554056172949954277835960567300576664922900714251259938073200591814131314816864199227442362556934600452263408677999619246120441074780823476123436944022945505384648414098928828528052939056499795913843487449091068739915017580919154100987473668251548445035560855934950257488023792810419658505294766077368437973127050783209327646374832537090017308173108280394942341168466093659849865385443223607641203814221109719733113010182770888359173032916927917783719349835851999384654228473784656455514112815439802963486898935943639103655681630924159888976568688720481322602434866113145640837846768159111030534225938192416731721083791052856564436944899072954338054223993066155521162936037819922018865470795913831657968499602043116230287801475202689834907743513757336771945161273406722974922929409262442848966467230814260847933232215626835621299657604621084647092212878164224093326547635746890254834120127191026170585726227704250439895775137492985121020705155590802189388971456138634259257429836367485769511011470402681700319633386328978527517302554006076847541491992266864699535397747601603605669968825469867733415654945682766143964148211607150532138040334139440340304653944944394443764055790189498191433108694956384187514300651771926591490770299936688266991101956965317193492874042164930064299408522236796465687442284647489658595430483504184373421444257767994861607842303784319984137392575666858855491852521688171521316200074888510510527730747986606008630053581435666210097035059470486621587990779886791045119733128057723743350246726225722493028243709964042124211818603705871898502697931514042549469772541959967911928028290834313465256543653431738086853490263113061564852749831990548179679010933543954010823635864560050455156273024604353834516868233157433510610120214611915513966685103340344764626935010055950372530214732438739328501510973834940046236594181645379026933495937274183934716573050884082710168937951328251401097337838856942744955855014054684292955799202722578035414867517557897871815437830335236931573384298468781922737516883095244388896716515215288917695348863275209419433887692239491583513225394054329842838016949069829619855336281845010681513942376275998734513230638580651776945667112366728436753190932229475180986955693861552968293654009140428724005981748185690257769956517479312408531530470722154214987152807464771462802238691698439411557347019243144521437445635536942534099021653100404475269073120055722199826273271140805816522541877361190767685971738211183707947579352135826305406674908822067584211107826686307664925030388923924308292221717945702937417569579889558203932306082065512737893113740977947540070020711016332800592881257297041794190206380749982826295291980774305417633227185322299511607302335828584891983811241573516217776281211117893845455912735626646189453193738121784046670452148244272123034334331834861022348232951827985139633050079624405180913557387117155069662228608516641302772615145128816337548015803173279930979222431105418480162920363811076356186622734437271836315029047428553414147990439640134724992797583279790055140583439300112372969065433504422399687375608785462687739222838872839528245144288938924925863329908254695279250694649362907702578145074126945011514687369721989379275894047771137164540185806101204455656626600715612517207078691766643466990070958991258824803060850405473634681947239785320327304339580564030553666733010272628816095001066115708290691468243256491635892543124126136067104131869238916020798714057229387301571529483989922085540294911788457979656494591053796630523797713705314395460016633712317109217154872897129057724153002744823418006770726713625476776433442796533182660882072759206141069506868086326619131090231059628221152289417313771504148617148168238383470002096773838261309369468559958306229810309728785590417315125517150935633892464590687355235234408491211433789341443817206796004098655772776554507368958583174327688667868727541235748441140776157450195457883671066129008104389424138440325268580745866789337556550826410569446176701167565689582992841695190645320680834706066877398363686750990270738147336410898157541164905376837955083237251193548064052960805074732468791879533320816531156881107747297008952568153937741035473528779092854628767339471835909372895336069328048060728141486939748787271689221779249512937417765162116858609167307659009289784470934308477521820280790047415755560812732756178232783722746608013953771057552548159124557180556643050760506732813765271604048895836511371088703609391898216699716580920761067353974410016673504551177741380470802977231819977634482939084597095395058226374486311667968403140528887092018731980480481538913040696612560798498778119438530407609533714622841297475269944201436383483534731556404351042159853656974966613832834532916244167058860595902245340584734328856596575454942123086364571859019986984443502332558097156953400927933754785834802286909170517788271584018255348293406138536480412671975434099431130794380719820605849439232160258173946532223279729511402989505998351581855589745468210129263376620729376923049983692110015976010951141644183237257611562249666074639549893451195533825888324772842886523475442256277463230767996395780095915924231249371531182791730366858139781082186443154013541713512990541819393454382139039222267765288063091270988770501118976698594626968336950953858029085933181386119044147931993676421864412286421951757495309280425328551868062924499012297852100713486992068160341870664980810954116199962620969240906636798120460199272958412040109868823028280883046720991724808431624609760746614062824587148210774888545725419262976830983198273791799266945629224375243325822902045703985389866927970752918165439969398640840632113241871598462943036489600784878848864123444068637986075411898847220625812081841853874241995525728969689856926299930399460783544446532579991337929230637754063396194504634189291621122109092347026833901513961820393962300788786297656768971526049696899148178021814824676064348116075605129324889098385278579247532951084463613304013083744243416040912047201914154209562364488012142943506737107110322404625516877445269322086772203626851115572860402366564064889591832286296442496842476152021799224867671643337990359867657382733608802954442544545371054339485543566914138037242484983610616162260743169693783854821461429006001255919466181454824012888141605073274624615185907672820610604671903896894763759927138279174522295920024592257576624788759993682662829581167543885554105881966220987977971139343124575964399670853813003398608054857829585881640125425220771966133578309274557571183458740786122606054899288604841097842180910457479420782918776819223136206736125268968704645856700020769028889998714532673825146361456675606899891496670595971795435111649107834729994153440622249066560120668411852103908918000657197748468793800539740719018447796920748590935662855103627524006766160177742335328177890943315127210713611498655021983684026968011915223714208058472973633370529624539585235988618905374056126832587552197288150284566673771603262826787117507303760026514644807986826102197383333861581317066712750112352510132959258051203800885178119988886228807794795950181711048834918565378629590438385437253864767413639601684192584795031827927257901224184523471932638109667079932208798368578398652009030295351471822652984595860007331450606125338593444841129341928398126173541757163812493648556088480514173055534421205210365927251155510476798002278171631060731621299643585475246612721749189050698924578215547643343705858950260785684072704481196935796760723921250999190767504251896510279393002621027925402729118864173380310588662143227882550290646787866303612035280997085603672979241157816868754742251806558661555806503686363248496849892032319685369066775133073096239409599769093073610334622437664098944398054874974906024189258279227915832390202223228106636070934922203627837564855092528373050668410155312841653145532457082823878004542386823169417493621114808375218457172333639507347020316190740621780392966600936282147022214062997953750900265126894743101489788068352763843023219262373710183950283786755223468468943547990928245643513018543804502630365093484114215675908218491265206512677558539116867270084205178845131867172969520647509957319350975606008414278969070201193540120293607407189965273280197100013192931973725376973630544145121825256145622750359986732348429675308555486008151357130264821026371956638200991788145703473704348840269051647116297418400497702575679899907661708859482730629342556742263230794516375376933833268871051948472647300266264659587566717966218447839396857969240217316235071104572222637332155657144285417952062678609474131231574781867330337834297658207131186224459358059789286258771041198535272746763554302461963424346223111093399090465089684344319067840884047981249709165579995221997886246006058337693305761725302158483739884770661916007055226852886196910326586765497139117053504240765364905229306205540245014185537169276169355229594418680611145052176447189275127863249355558780802789216013935762674034593939477169692852842667914793130161724699769664622568282302976966988709441321513913958362967555966729046311917620956463177436357991062448677386886759943933482517014623345745896678528569275502978575957208751921199162986831127444512647081053277426239654377162681843065548563345231402055604679385347706632211293038181331792148079171488452810931745886137380757081736500045552979266171810740381899146090230015419311457878866466472571701956981887698548811661031166515418027291684016402704857716987480375452884655321140020443923562486773708533746707552076103931960217603080330044884567935682695639029724630612381276557299408229692188735169344530903646383250712623705324321966320622498574811107135086546958494437963074959934301497234474566157024195976513191943398793392227058959454440499764112609548887001530222200379681048731047758244575995149600514064093525443773817068007569860255947947143788984765722846443252382461260408429491388621245853606564885702775704913145235896295981718352292909442426685557935844046352365793976834526385326162962093470143958094608009171664833380810223407397437989646179500897596411900704051225290104963142207340193828967876835981736154067735205557829206521935868394236420475154223248446816944553089416538771815210238733545922323677490109125928444266544810780150582648318437241602541706363280857792115327306001862739347971377749819366795678159541399271907137925097367140737738958260983266546108029933941992485974157158971215548666676525727160167211084500495678018689036115766891248218553435439945649010774414551193937867767124083142636489578775466329923465880518692080968987228823060931660889549121186547688007672169831923961658649020730600877256422917667266665827442417747205686058504685706092571523078382209362620028543969354033492586134562218844612776214727587832524678719066162765711831110202499582227880837367757625468335183650542741643739351765767984075064172793493061511098975882833726946110984804691011484072320434053901499205276169210039565413819833405211213043938018477708923688250175128575686179305334726042927148410425002923775410397276070833536063945989148103825750051691300779535936390682030064761203547565623186901567661906059280653303126572179891690183317346685280659107408246348369469916176267272266977082108614963706379478916852472304615699233190313844410025504409044886855303899116859212523683975535733201016449630613570180229003221512511159314031711639403208602651825471033615601940017389747091418762567600137701064320189548362600951944371859350657474309302992911207110024333218427778518298892883673984783899428588202516882258349999922815252826933389228156140758368034315454128614566358260319342197528489730283202539927006997276075005085134729089274886081527580058925749333332015363051850124734687107966303692675992031834932101494475264117830009782499573404851755613707240512562975684789374116512193261007887905091251244537100231752989529352116162271391968371041521114670097062261405864885162694563865640878731284079862105539614256454376200580385838372026016191002398861895933143026092504720317690237885326083251550866260051759644272418940592050793344319884656139415958445385125852421399591915352504646964026441893077679514834776180978118648719026318739336975452286819897716252934537274404577698919961856924205224172479746043424027717621374700153614226545289184391590488189342491189497707291914252201086625838733774892664072560934432636856086909067317004150293151142786174452390885178123522402665321358874906300066213675926151178905530156633159385423115834466212167540910337343104072936432815440973724752999148942635488322416083880145972797488881050948786925511801971198683314067118934754526182266631576800676089716427012921793442603621005634001781017951630255654628469455575654054159731254039297329245771413365731195765667793599733552033955381601012503380436780701366680240628313912462825386712875751561752133082014837228142533442048612941575606572359654376155693990533007847543594277361457864497577050764304935469858591520585872930887169850773692930013132549816657869586510166640013712213847917498212260863617811614040866505382138153439922262152773479231540009988398529744913783330319782287906975134887889597881340409840261099170203378012954291660689399247969569416874933534802635977086278572502176553531368124921105995061933693308557606408997954559848978656392973215895094642087702085096975674880308302251279679799275905068222343169382894420943137237908647778869625161615064738857857571136178002755403672479089642036124193281755728046559581062369867584058729420268121561175758265171478472214411636563524773277942555385394715215237343907369554836065579351290711404317412047053461294505541561984790468958751684303980274666561915220546825551275390758305796062732973557656207093234931852669088203376098538185177046219708354165312705533526881032218173724488115209286138065964606425448748863096106701089196745671619768603603028049063687651260314674856562269876760735455312558742183452138513715547415787510530690214855947857650907787243636032950472974450140002025817236737325345881480136878042824963078874864073518285889785017562882602636028971409437053188473745368253188029370259626331643080866339225205926709701433270211801861758228211003805565359483080009165471428713444109974741887539568474035159747755728727440292375362776246029522349263893020518942605152126103647682736315617187604415898105900778002235632423109808280456949454056845676013367826678120124937505994107083175635201273862490388658610971618194094653182612931634224137282116994643156561972097452671808262071748519663282895931256837150667808580406571166752381109578953527606653027547640076426070406873542206030183580437715101210505070132405424688144533345808376618661260643422021152725839529646829816429581420572809942309250424686799633722039754769555927552536900277012706318992162163588175591186137804446197193059524737417250435024564401462652711534882105634466380448658454159375361164979684339660874144195638442556831010973306991740922239136095465023771343029527682864068692814775445768860296262455341189035971434768614183137145728927876455556015165595785208320255677351210195188830862362669884319242981444541422894221401409656066698508553481939431586597274747692023461350161996833166218715336564839659560933304300061268807407930195266473542671936577926590105879780335240604045387994543453906750223651387945935441154302252639748204514394369356989031450654830329365895214111097128112662114127623236984827422581889922749341999136075104471404120219991975045878581108942460194819841891922387292621382209224880695171451858511133172990430474899046339458389524867398501113367862261461510232554335442016649749975616504498829067208242081870879744030132026642528456999739036057413561338038607581411187295557550401517312707904782980204328248361997844944180202633889574195211528453633048817373196298624876503851886787772208451196200194335946808058936822747046044961510584771354641773455331360512700960706677340286657141059563169753066792111223259366871771915546869730305938336929984868090607230765829362611368884506462806370477266439150815820319446466289569235197241177538818245395123446379576101720183286078194508969143644619537303714317118886602394568266438932673054242925914861505801063468067498901925476905478641694559590075520890999800839468960811042744756831189881044750190342227260988979284837920583714387194034627327470256913837035196866928328410481837335393104603982023018631083647946760031213302058645789835612156545667682717757513674336673468605917117133229209728211296325787623337095572929378774574749372727097215008987079215815098279100714990032444565526239784606427306204358300002077927432719603118083012397703704392095847944080820536663904391953401650501647141346267033812101760190094237362319116336829888960317582263302068495669372517791255710065186120969698226708285428866242052253873355313879148181016081320579487141428183391451558083952996466385240967331414844362862867378487598783869021615348774556401019730561115280870808776709716924039677098003817363761325810198000663841268239188675383210579466389157428919930970458822913399840792289490090558613298086895850770235007470680477694868955662705391176867061345088237365493281282903343277392544290708514872308408504187736122538292888167186021279399816082302296354248148692268936278447497177458062190884103687147252913939074611217282879980724083153932182020812009689721530032413445049211906561182422078573159585972359132038796773456450643158921734040514371368548289686907056725707124715179314665336836044476546666433706136935350891444174515733174425131110974561316479248244500298229717179327464090081412136323575014618452663394796382297828996881588937308788106362646182652830178772516161516391526859779278352051546072157817820703605466925507623518791625408941056393226078894806261884165056231115901069020313127442458624394923874450230790953138157962295268502466386371376684524099214000929695027906901144584893248703357739009033529480273491562031739651089740203531531018701792106745385349651344949360883442490969575397010847227983760705598484437348639935331489413898216388036637848070346338810873575659510182782397287687583838748560195812015510504324495483488372802148707352965271637530947780402081374475595902602537295479121108148093436432171846342258759393286674803439588584969208303119346426950499700471993579639356084086627763257093003225225705531470680148644016940540649754906028682847557708654253795927501933654820994635754351661371114759219945320096370523953535713504109108141874278801732322949016079651224973348572817906045460796605648494813611035797665285383102746188215259481986074603509204379681038087059309406492053955454625149377338755601868899276223123718698506745286939898839821891076033875516451267911529702081448685172573789489650520262774767279881505488745912261854368291366576128785444226304519195873802494561523902216844920420816644103564894101724650497298338073178710986037011732463341542923433147653856482551968661255713224896014501471202696870586953998573496569587351965044160665245635238175075840513208960921605761938688818067257316948524082685896418661771679269180135191066284910089148706977326737939998498123405538628760630513631573718216380569051272770086582072668485310844631268587648728109055165024811004164014144445050573580522658456879291543066637368388844405852519846778090643848346481950033294805245141062145502647840239428013038461622130763844925272241716882970316485446006610868391924275929451544265017301657910309380217468431396702511993701003153194722869150863377555539673931732801489939567007917104644842578037533346995401499583059991748499475845975513876543038658271432982055701462360465482999121052950652150789072061253939497385943577539477356965435059328089666046520727563250205515076445800803449971419339558373288614216044573798862630380129921557022506353682777573511106420159882721286872199705511477646391862165037404364841584008128995375931820146007600761680819375865406345729781360465985393471290158496508621410130525429146442155987288573032074839066659722963405014151607784085444798200222441280990726270104217624074416133842740249725592562841114505787395648387988979253549594942974487213633162182625732363428379959220604738943778292675702998357599959782737006754544042292781795821391699297058763355422099715021783432832219436808827092757843914031121517224111115587398993879221545806256254488854068676138431727344756661323669316424371217473433171651690421736514395681079414988175476508698006360125306753148307955897955471999782499238607797863486480718109206768766408584082165127665595267679154697446163921240783267173491423646363864005404251479310608128335252376198363285791083666091106447599436991109740806166442191082096625976176297878377907354039970573844802992561393315638360475488003791400731554028492562992402864240366558990278322217446675260669228229284844662038797729452153823681163306589443486364880387157813697519878264487888372459794550451282499321382691399094831515583713323234655859063739876255870031579074946200718050613043338558509679176601024252419029023503770509805552855057672586922983071451601784396997969183989840454741329236631699902114311513142458420409436663073581012387316840944470289918324058953512075444014644170246950459009474712595520516706029171406705238993917643873679587755363096257915252305636899764386162349366437268422949312983517411745316765377927199693961857728375756316661943105950329604281075492511036138845037668766488247496428300594246907448159663061017829233096823424706064248421924280752116289395653852916371930308128601338909399130497473815693253708865579835163394165825976803075929739910887811593736586333965481034786782565107417984388206678053618898393003234521018158962516434722786059741791229833962731092617363947553244437816065852726909724772357189864140683347495711241447465960405913061595677519451882924770316180040355681898870119036226159786960562516917126297878395151846587672773507108994569234300247326532537579744690502710531682140422241602848583905817940477921603808459716789023176292331897820276918556473146004597956858976391019911118826546841603717787729318449110073076181889217035801277783480886835850912316980618801412964924554916216595940296566453042115238606664367856713661022834181523634972331362427356186525953263591847477286257035435548652776727359201990702341248228387119218140631054397972313062857788703515231461933845472543339016402225141349498997114179249977724481473156070391256899304642723684189031629999859722719368223310674847977662831468679058972503745341906797422209991282813605194631713184347755856091055799683562884309279423767578501925022570885717694486961909608059439577275977938271737493561108803394585600782300207478801621038157813523349308718853505062212635548611726093626933701996317405177116211737648194290692602942299362242542977632335877447229775818469063406541448717132220622154236152980276568887441643515677088709114527354416154197811931317716217886177458235392010259781337073058977045841438217568184929545124955225990651300996766546031119050682279480136641874297787890197669228726096177894667506752659362278950538650513095667390467557090004560761493312192762168831603073333813856069148939366581310231237995481239016657776666235446831106836865175331970403684171952807210781404158480996852001007481428311804035518104295136000180835273512075450714061611514123647015967424810406529900979379830114809837053139563656262383660373985159919868461128365912750350477797703141443174742261804588394298303485584392382710405020185108254700822506034061227152093847541521578236984441226224393128902778879755617583334800502786883024692161034006816121018963192486842526016394733506693574505708543410538637534771047552502610321409867174008163697056754538203356165313439715453226386037511328838107216871090289905963027136359412080380395293307537014247639350378143110126624953526655109740639679318922949429151408452807464213504637192437856274618408415696924515104472848390978481827319724283096028043955503657433496612851970083214401271472662104094144254686614980408167875951972279434190512437180611232827254852275917193756784768508654309783340443977062606924950438255678875609495185569541591429193827647546505582685516352629413547198634174662195795379169940120817955420799974240518937854444432299897433797433816199715955566072934775276112207074938680829059147972505518434769510075637849823716861183786804225261655662010706262324834113157419268070406193282413409344842972337916065706717303164150874959880636467340597087748554838557338867655874033360953049081608236965405189729331772063580536635411394262919594997130189721835064447724921461577871865336120365964499802916046836870664075484716753829858368868114803911154120582854672966645877796683559136057741625855219784597767993208960785848284659422247646228394766926687678930847229405673043094382846660539740575588106724168692995541105186612893558958202106885608278120395147061746773353314398909627885541390327181866733819397772430688234387118362475382895928882306754285477422389013480850625863205968920097737757029224933427597211993175766339041507110259012562722394680010307236749692841751077109724406776969117270552888503234996467554327355627405265097327339706094514536378262707997331344214152091051801520515473820410879568317140900051617132057979534434590892435717668537057529147515051284036818993446679779213109444539963754375380105534537162382185588744816355576728982161475475138020883319127932438459227418304240918814748321668774382298642390286701732222838351871128874579877960369433133106398128901343707065174268698649280868298819838490400364064229489898690355623464674510083931752703626547216822684793550397870261394217780086257514344976832838929828233640977769303074825049594830010353452377743147046799147378930951057524033718367881475089536366097981322108362463888213663776773383637243176444369868929191405370078345004123351549797995282203240377209334498022930463059443027887839132889077434754382034649560603571617657530204426772190410693165229134019791404918417582952695519660988010481530337608076459873462888582871420194007089557867371305411467533380201328957792911263431048987590512980439285204155778422028177606369625704872317646267674018458940133464316267456878565703579499192539769589569820417937384358891019076389403436287387214519254034643332140084203823934828801431747453791049524190145070089386263694325809823751721589179240493811324149234696203402674878615195669381448605266606574219148736710446682970604715917221469364872407677205146469284270595371531120395886776965077990741580634618989003863040363732843009939015948537527314669286907277557338413096899191828545969186927560443081822386582318980582074047969035804028351677736539161976234535469899515561897519417351636980698912827819927131734630960398056846948495695443405910234872466222625067687350136901432947367495396574783093459814061982937246174030813474016270758049908743082675556219946953502928923578132632158458874747188290042262479288002996329244741322292497752897481809532677428959758988732868001816173456799849835545906225580345065312948692670133154530251722194003272991748150275315186484610923106461457263828572787365093813111071237802094114788789828293015532145066972948710531276039799501071426228286282067069996412088346015451035444117576801960425443786034355361664200201345653267642784790648011450572956829974757952021053452421460573752021539789853273947367317557869495375572794984301311625576848265501343119010853225866425093958523755224217418928879849810342288818779765412477593608093376551482313511014529979103229774275734800106768395865421372802438395588456337608426978166495091118472256428423880437739953451311567908392198068017047756284492337166727669277338735419570440149457294142100107294000700185268811097940312256089370724033997163437004642932484799547065754119386181375905609167085130504538314880276897460198620310387665664293377171730015922874614068281576474877879219743115495258793945098673972580115510869047826482169715714467282395185205807037620669436621378493111507187776971906801935759878824745144053665415423836661639748179513364051042083927328851094082765161928477593287717981032290593938476146964200925139138878422322375422988780316953298148213556049634912726128741908752705265217708825551202865824443007843674595896767423778924443791187484170121244913607029902433616979550827517872341820945259188677744955967451047049152305829315162830379911819063776876998939874896352196109018072121967999544101757027854638134702106491978458558787912134282517035234488161860170089422731665669700230189946040713667071271833581811167169283947359097546632642903588174699657102856425817726658756485236369575667470184146522722940217138107321165720159242493386096072399434799550692772169310093516009039439859353311079990771387140154602028670962946766570737421164199937823716880723725241875069042054883508839987544074965864943381269838807297913110625046002223213105602224579065716947196789034838603424713647821795885662344093774361464553441878628135153560323660681608913486773060788038602644678591010469544517964947009106398602314629420190237445358321819312262463997450268704697603899456188895971849254464095006478466104982540646353369860179274211337011745506728174220761349217282397933195249632347698624152702406153709431026827212315416197382956135319092153976991741634448138051827547339874169195175441009125533062333690534179151442518153533790563560489007177215959166740864249974791139411764081319672182255884845730617651515301435894425183262786444047749820001349847855599819460471869337510404195759296105391777378635467421889223956827469926324059430577471780179880257976471928362774682646419812698225660881234364693878664981802103993760944715389478110189113932009222162483700370420623283497772043948101544568672271198801122664532463900291253246999328116400134690031194279599676235572348688493644490469224983961474134812123763055902282275438749865573137834642149420157334788744969662380623513658054450347140536994129105029156129821912509894101619741599194901223150804314088315692425796274005818952566315478758463538045674818022485209641913772699090223731618302715024838315366135287181095629498804089735453325469327976223105236124057157867504164446501758358609525521983907780367345519989938241281470650550738173792838615828153285727508180082451587901321513012596527338074304961949639593964399030314229659905155742563784984686378822024689285444290506560796456490482827606734537615646128525003840384934145107383214223874204419103566752988114513187069907315334353353696619590499650947453881604411272824001601657968753603996817510286571132049294493729475060343521199159729406136766259753739085706964750647580788697006061852255675973627040911496567291689728775253480565435666171737621921775375383661322005358178220842887467143920073158850196923197867474878633141577019032602969076674416983389309476728723124121194456512397080143876536862789140338167399036311680344674941480013714957141493577116645069246826618099693026815447716367621239176067903828769810075547885135470570406392873337761198417921490787086435147284841967175516246941870321186245000597486288412094663102155021703569937343941809272730571991569835064847584841476721752602663186426270764442319819521714683804742408010635546200097550188598188115962218566955798315059400778701280450614844996496170895307003491205524263578347925758833472368407782436775416761322308988298014775857735352423254446521135956144287713106046351223512279368108186355946297356861481305387210501543593920829395012862159917044232592740155291928473036273937912944204992503561820184799140301277105613725426279108481847261535981287676012794717171772382160899519329738129856813798716873412539114419182479696499360892483852416286312930217032335546760801515745339354654186012087117967327281905058952230676187759917862876032708798626421976348054484137399158033591194507573868987226414086069309670135772842862295904346485038115082682899209341378661368037441376150147006713793932082819321303863200360061893717274076744757437173670180298009698082917331211708749499686219301406679253662226488515005036938755120298318696075823084496174365367605774659468716009386184394727643070865473298148966891928880683908165830314942277974261192609643680717507215091258218877722323662283574634186148778461406470844838143688587253395880507247317990017156393476159790235185403746866053741249778063565631330665222020680486678822499441442771665242245032547075142078312043723864511685701545682408399393280615559419660458202514439641647961928555706607292460308151442034033855878382953891938001561619705417629504190562942286670401748544937174625448727553765644536479619799424983960178931959971654963374164257147290128960729818644074441555341410080734108800528173180779076350701955446938987377182545072388557576084186280507624288871575396280342875018383982954436521470295170360578809699345609458155173693168489573534188522497086637777868973703283605460540739139404501535602470855211615512160473241635400346692808843182844441766069650568900888655432867113979176820829088054895876529000245366622419839002631099311735962664748768142480214912929375759139869473421748689339390487667422295311320438019486674752314907812406601196993419215053866902007741696062679559439867062052067938208885779203481447056402637781265799009487484730549756122518755947692914661852650392472221380895456974656772201879447200873300070300519167912159969279477459169375635359589814307055687359539486350065234782735146164213816389838109839831364447489180639521933193504111829819888240583311558142151596785686414408154401020808455386594908885850068550527731818980873448678972555850287120870366706866070817759940955200185364363761806849372339746995470582332673985162491633234451871577302540354476499865542635505820513668256660825021599072746465453793885302647110875069237096728925675341704490105745980445400005196078239944560907269381118211091708161137911034623319019420249741469560664260210697678798852440278625900915222713776798751102200957169995014182786933162535551190789563362209049258142708094247749267782421412314723079610275901425498488808458155875770894821276522698950361083730029753181197505239735269394049921949625205045218264428504769355256259157146131934913195758924168202654377661238401396923249045113209134930744904637052082848607295141821852992801885089658602636792191928999307597411848972139033714132304895955578466695794458642456407267273067357703108879855237268832739084018062809528478070608503393383989733979700595253674334481231255474487945437215983235114568060340252022537328345178762342471111414847232473893083972389524389781530389800689762161122692011171827882807341975406960322584706609350911340678778481069983123195134094922400574358752873189566926430916746662234921803973810418379079792476299486383547568975004168379081734854603949596244070441293546348289928927578041139155551180461177552339633327631045728641446861746033078352802314221098851470702230652135866254147517526153452606224482806046478282157369504457890224446455175285458984233919188703385986319239160506163539632643972190832928639214429438186058210774785999898698132366150904149527076781980922420073268263999325262080452436073304299697935434698101867259991029960823960518447978366204926642974069700468878897219956160156457436718042396882854867374969016989885446397964798308101991087514535006129016128331885020008891744586103528767947755457326162664150046165231661575457182636889515528304348687590573346840848001191004618270966925236299962541127038953147103435552578187421299458182308683822933958722555699189570631429766106216993037156615356444834681091580402899251726142380859763903106221429399908517770379162499377288388940780614229671412269877843545248930368244684678390748080984759709148377316542543342336645360086111750919574111218191222215540723964957677692552465903571208009690445901315702198319788701439023997628267019115630393534769011259875516567756547495751664686260017623624661494808635517928146440280682182368666662817023904910598632149708513659242169113442280231345626440447250102445866800892794341049259932216388915651719796648489143193767537488345395612564840089285803451965756175643708822757055049215381414269872948981759891969419239984708326371879157340686594116133074204096523008320132004960657518585251480557548839497553231219947284959903030141482263570751995750097106963343381988187893027313867863724214970393315275998314015076467438412772663267252384607371258683295365243248708938397168874963023249125802823441058826304182681602080941960404285992481031439922769263036127194261322126559083850026977546521145676533304427324503007453820489242431667621371397176736784260018474879275085623090559170561509101425494325106187637791154622015781892557387756232974570600104695769170342859947268384526255839796452621834635412003463991148757691370165542119195129796286796130621032461176666934208814628828325244191627775143712595771077024033828995061828212073262040035104005015111681799658999544638251994268425793925670570973229065675880181309877752268144892311957085774442702929112920689648848110845929444850482112490377025843779970353527702764833448375322542856193792461645232668691894083414194398698189677420803343454287123842971824578256080980136626796221088796167673453459125388858801189636671064165623960938094921859646807708102772727227550958806318782468013484271873551784517943227382396982405624287225846533098082224448551419939254371804903502561458619383913900559037394929606032207954327478588314179182250228705572540969457624143312126272697672446650106878522479854842669655973543346818498825289888661756829486076058599870386607169235998563129209443226508694752698958828759805142460071631238474598542996609258628978012231518900577127643216039461792662829439813654530501961396910139160885526404442333212394408811566756885972566907800200572773071650511157000602256926256443848701219402451603635627118746633725570835141954307796965601571973197954951919013335384626925045222506021529266796005238228798411004669779043274773620232198183491618915098253176077602344123599515140005784854656691279209249421034901513034697886572635778314401292490169973046224716193908505698113635325376901309703893913903917883700116134362260866395792269171764578287471743586530193742470728187948089731210354196556786878324039999213263218534531866138155950406731713151489895964600104251142284227931231117046568969482528396782502156412092986811680274981817465963730388108594555308273506201477436440817666850486856989381716848101371759123084333098657259515766900429358795241781440310237869288978547490532798070882985837092240260762131380792453630191807483705343942348984503850093027054413960006366890920122322795317630147670370054115191297214024125619838333009785796075250785566017774134487552127528000371846307730530307762072331575659809651040195251490539343916520798616243599785137154521452124168264662214962484348876704735118335008344299237889031437620004548311761926502970655324392921177131448783165880761088249950392746371096808346141673308893465716634671889333735871802812758084739231310539948094155631061889116136777510785304317623945695417338157342541023948270518391213696393768487861437684645327255308456272348832469122757243022132033362706088410659906756898543201104995277558244993964289058882307934729169865071270460349719413901504403847753544186603035230977587664932174642478653701635527916399663949258733370833460148130961478269971268855966862239286573647343583598389656582721425712641725215855813238712443449941565413048476201442305363168225153641997817192898242861477420570031199981618845819449953269237212497572616347826738759646066252621987107561047389626473437090067165910517765513924631528684868888152110455716420642791506774826341829808731962301095305061879248435680917036811087456960846342775585882324891923997302222829817295803758148372494917429805238850491153992361550312416732485790316620278902253528931345666273274465055905955015499322695015251239739542887218785884637109894516716137035450156118141944697050641164581050319951545291456059781747484961849482315002175865450769395503886919899674463143239490418422164017088581306685948959865771591617298658170931634862889769795838734268176216930074765540077824933222053869010098735553418114240629645691366559739967121975086859654463649583486651272616442361629422145142994824577001986603402027052379774078352541972139323618965585881318870654590615409309061406431825649110559019591090049443847755938409691185951245272104516685703714237677934415286303973116898393030216494351572892793307068696867099792868719170198053053612866838773825246574526757348211472056834392323063540897257675653665805747110438712801216200264340705057290946945787265597330298778666400498372101035268779408216484994425396340134391667556987266573293476218693866181865620582734829434063901460531273661706699724094750362289254921006367359411412123459531984925280814617185374706240835134872195706899324171310089521425044847284418238570705464296722205269450592898896675928472834996750096501527624604335399126149081669014919762919667398237784703510347055904489328285701514478004858215117452856859037906060768405324877936843137633065798284329764284527800050478710690827770397858147520960669955483570100719416844890646251596931180163883142585199184211639449113976464201804955088846138781520256363653059712432663310097511256054088110449953162529783450686360916384321810101167415390173618754994456855044644681294762966965898038888849100775896335333729951558089575348732801129170233658410450183138726272085254649784546419628758605488711327640815503743158867009614956128927281879706839939679239222856461403193786720969721622927150810823534446168921948598353125065558104771192203218730726666291390947662971962755731001902316440933121484124045996034635444603295688157138559414843509371135048279314164101617387545730425560097381973601326856544318274260878794842725234423295682910430777696450792988793015158439500316006781612148679919636036010094955761397413993849867846451370064236603561132175850099224777823626605484503173484454268743430100527588068608366146531708003909208171343631021200887588949089296449843792004534154976263177785773526271310845826986455161953687220406442956692746667396234478407898320918921976236317154430974936128142784834549882571893668074876054974810656122275768109562452534347663397681868159801234666106845755345957782785888974718616266051796074098243454284339090006213146231080347444636276039448599047802906743397552486354772012025278657962165296746922165017253067492949771248208726508779291825920754098208276592671020914085585175397729967268212527126791048910055060340807521277555994180663515969058407349454552592296140697343978411945523323301475838156801102294518248157440066511304913523117861509892651230061925849572195915394496127914531835964757213682638450860990803910775314806523065295475177827860951463494232306962544679028213019390207126153829760698306057420870430867466496586597356503095166023999033832838274375981533717456510617349899748327332526879412299453170656048803200551657208792796358866783598032913549460556497054550116128175629276517780134416441301097673578872424406931148073677287365101898164101393970839692220174363274013812404256914411467686095419232795788157596147444769682651620368797335389701052688537044917330994660264372130273600289719099835809850647752538105501019078020597768154920390175510033255999998795863694383816691437399309619254934332254523547646386345862563277600721871387509719639768308554691571929281626967663711136167353242452559347636660525935953083262310141750549647992035196886285028836486786445537212057818105110431135811691254676532003899167047719957676967968579287310963183881506399339555606458719286134768101126134470639390226021752537593647325017116294106042912850186242850817418874706316445957069923073454069522513624309877304749639407771397061128608806352098684492397034726685705309749307025538026693772953556192382091151521972285468270817158753240522556725397004742875587597954517054506649177221816483057317358775233248444266922874146434267123789161616195727993917730122489308090526386217157417460154297288429423946005374721747046317378216452606327783275283772355658226943584030159372941338963060690464270161115660887887784965200950096227140314690300683066219260770065377999308082837212375361096669930810613254866090925387493049779291614613458599079191573372885291850039258590590833895838592942138827309027257838325379258641353867639805773651039479294570225952232984130326587403762847015067826924919102092095626157744266289666176725662393397126660142087440348064437005562087714044614343149981622120365646621102965341585631073241905139729850763315806517725656429464878200642634918677606406017565812391736192144016799763168289434935770217220813406322529747821205726183645332320427385536856177166176868556521934322698895265380771756335106171205905546688128526823233310970378570281138968237317372991777441731384517830819753097442480719663077229641842392945829752557150056408218085797205517738756251070576692130018075570788503105703632973948679332384390837019342715782138953998234603624831031891349088263931611609458795183482316839635897314682504062739547091882945105068858791985935441925952631675177416416154997932470234080059334552346785855726505846878063443505149521833803222054510315053827560258155505231516029645176126273666833359310239082611940420963737943918470664867116410431796602755941684895220458326603872597542282391385104995256812387877944365665969559772911348987423844562316767989547878108042248996571659814805979432988219787259759769352163837007077827801629722249238702663893677575390939903318584004077644522490682486021779533274764190761223159670721292495809335676048098619144936209484209286794162303473018720627581923280467873216942618571932393888104607025576355741444720867993746947767837574584736550639730750478691665409320070138705830121278410144822937248521588131624094792744853145168259436480724998353703568309451111573038947582723698867438335990451253618596203698308574611329943982665443892126167400401796225735599196905689116905783840339324198260974266935118261935232931809594080222421447983504604542133830391573763375404897770067806751084882499856599146153550037772067715644991963223742988166417726470263961811520083114391953730306395501750009226473007296102775413274380028420750698326978588627610298432346083172184998955822969190818155404249230181158309706771138723606915547586768604252711640470188604100307748742346227815382356997148451817949859008345698653455146462632303808073193764535406296898379411747695695301577833442318942528465767999596610498854970506006761464152798836262735108421676097109975847146387208012508820700141764483737409024094028462583091187204984312027010922008125318125672312798896448728610668176195090660625442208688703376705422102946052981285243844002161505500669429820984813659558902852778101257159528185149090622389410654450219074916730366721859816776862289277300912786770562136792092275755997762845011550713060061968088403466816091981530254342240580361024969158974622909445576323594140403616808131962023967994987228791432532089844340580567311036922988616555357831795655456205842363457883690113412895990632221988119333769419790199627556220240640427794658977683973142055656459684123916294461095171654672050545232588853583042279756115338285832699974852242150384358635148886326449125833878809279967481525687552782617015598199142721723859875966295855666502017469834436593139599483077687755875548701202474937678580290362031449776724837695238707964863421273057112645787443713209203840349975431634367054182449871865078370436442335102651701578376984420267318256357461918725796086805806767890190626195126430637531787554900318422400639340464205003475660607451209819818609829108375132826043244305254177927477112371653619984072761603005219199849220675918155483806590510433018135173746354784693477814593201329688813770141446089538610665638898627227824060428214918807855682908648875461356552155943005647021770093425004295571327395492087362049436793038856532676300197372781190753342256353927095049974868587916897090164157258309566681401389428175819519304362018127808680685272391521890493361033492416905555335983434836880777206662552704559004388698796508732053471989686303627647229111691116517747306591320465836164485783798777606713069601435974261764694037180659383429398302624393216111185853253160966590994376772730120581091704068815286946438630683757321126965900543673579014861818903152216786151848097318573017589321807007351778168818020514604648063882932583758463484527142429381306881719024794309043979317387373330581801096568235917121352404740554231381729602500150448728700972345914238300062905379669784763790400621438370902979175238754331126695344876973557056479594734724122169664204700937585656490446495873306841876054108282604295180670598752640313196409468100708125937960746109093768860948503927706507835244288333372678034257223422442709932375105847936760787614258253753333591327706144405130037224573320448999987973857477577078509019662948220282693229065362332264508145496528626298919409499848933476105120023496529031198008088043684199574140993516909833718420533325608329213694080518796252531528239726269083814037079630740087629476896205670447939335960686616786365868209204266776948533979271914072097784962001689428071774137903894579947573167073672992049549526835147070940930113785088323654066964540789570495819927996531473770274522528288373871776049498433982959890605070466391280014231076007381139673716094608445670498006793277668656845395565474218994430524536897041790451136063374117235979846425073313684446373806840146393468011846118203898655564527531206856073364634685919703712790149056398641723541013014715334774058126874223591182989576003890758007579469278551374211190148552491356038000331341180544090142234583614486336761974053400464761357215918100102707203505518748105841889019700573058082762630059905744573297041287521409573051545058245939899333060254111875262451843612072230443414250495751982375589742889361550040545504821996533233124533703884695131469075373285052512483703864250145257641885788847007670795788481240527259579446864295551567709221296807655243252684849836194925387251597273187926153817200477578593757054804368014657926543547682164612678919721294247536262324725564129810351363863628273231257946583718177528088206652737974368574858450709941668557188910166670769121765126318416153899637073463316490133790309744660354277113374724140754430438656581367451069195656711689943383109690221598994790328601470761900776965566230453764455942729193462932202270092918034241931188387687057773340355259487083613633444853397040470529989779662125549587832741209400614100670164053954483006952474187411417880014528998959729223719976691564823584728102217817552996211972045540354451349178389471738745745632427949932168426877979825612867986273313156035488868477350949382807142085130815295864943662596479738343043302127030881540165665194225955404193703510194780534684482862377732018766751167376337774629687774152800814734370614118597528376331368807262401059459518022962417710640573654282030024911725317778885512626235048172347323090858293701744832359662892106946947258714848513026196876594117665299234510960909849453836634595246530566423624207133405416603888440023334018322268556580994219309218550751391582147451949760420527703252468768766678294735655002655171240430559263187260989771483829031935990028073643539160718867158359430920161288814610348708888240483566601017307771578026598612887819077945087806398475153876673654013194467709891838288162267674559875680993203578201875121793844898631209158177356322351622764405307852341907819783158827618854670240449687999393145481682457214657783059390408480388792603005860491891164761747529356251187496330522425332674386489993614268053265170511134190971560781957715299154968465961995508878607965867405545571429984350080811306401056663234513103722616551532814914405045893179212911277466744077862402090257910498361254799026328061874441037869163855057041229329805994077771205536194846187833493048397890784671717499786422879181466198366765688155605949451079290207428650366225126176106408392786954052490787064469027542303290815750741289282816282312620733739661132130337253600859566961007229248980201139873675074608896103985155119254303452917207319993844649350851173721795049133969871059830452796560739486543233784832527155094022001747813186937429848314448074844365479140710626283679931803761005003621483240294998284471263343886021739270425105940974276610560722284444700444323959737393188220544048315524475523571763386084223673382100300787450977266273164173864147778564958595106398403364495827909992680943586798925566838344015659546316870112899260361718542673471448668995315347704695183367917259834146906574355600282632084618666624527600638919889577230610078913421067400383052637502513926612550556681973913224898293404714897622976220484686761628442589763474393644036494868964130565548837321134088659466403009953569538968197308040543457804461597083140850393763647380841132837980479785559492945669758338803848466292585977541507107806872553654791494707733342092813419588469903792723018575844812719022854056903424070637677073263729244818473434741282790599383481771002476253584364414172586518784895277618502315381954500174304844758005490837449721522657756164565984062981496532337557021316638477704854077535574208377237412778264601315436621480976034736727987672583646436691665316472304176111154638522749644880033173827098865315996005346638439978599589941643295539160496395205634938480370194714568529321051047245112915727084063307992466319725612858013273002876996429668071010282900917814493674494507001511851644489555948848698183799248082297525899335301950263054384939904678593996921419903178453806139477816550755550972003638875225533312029368382953054461774017091984436071081113795112570043165460928302211103040796673302303323369755291338487329494026471866396451745713488802121511160377098474195077358828283041352438005576041684401829037033359916639202476067016980371316289875830838859141530578658426484146373198029056933762612760776350048275538849546776357902939279775493375431262754520046093883873781113869179057070048262795031875915951657247180622519972304956230705878052764379774050584513760674911822915352565555297723194230278688030927940310992544981528647167668878757549434744026373060312206508289377900239463394464896987218703963933050818023855598208626719623001990544010386348829214936318909458905299650153707514477418686070043162291826434898883145049196751176465844857681219104224188943138104659319606909076181717377254985303982649692360990348885321323073389791525385492224238309647596180003975305523788981662433783981154842036214048818821541593901483798780286772321122838286018133795111562997798533471503133219889664189512629192630087256298777440888894299355344604787013217514092639683302273318747510108109712619390182254650382696617889402306682103532678692280610190062400711652121943054977383901596182487060989647597382021401487105576872112556654690007147208140054338222900828335072793272099789964829428916631630088786096342567506881341587955653262434647793568319031966047547262308537638782544781598297664627279713611813408550145182311736591789942596521042797450563677034617965720760060933034595176204810743819908444163455369015738024760796354906466720904889609839107093229071456532901624962672750103774194248430841784502632047751683484263292183956493544462464556586476587696234315551450591588238832090254158201564456137441001546356088795564528298563812389488015351099915542569699717846318746617710372103332620622264826584551671357079627495229026725359490778166493117821156257608607340801828040221759544045952888945360579634625053220184472358254597621317896743713306235137862611453471248486956697482350496700902631836921809472362643076951119471655555255598005500295541606491306060037179246194605660152201733342096240207302150614907071621494955809369541028036844950468839253713051717003356351762786179888698948992115903061732054021270980120764960145994362710624626328773835853177253156180380795532677559011690126220396523831194066680537793122635354687305135818642561654968875276207027982551009577901553912119955598910013010861181534702318449022414827189810282809501485672354074778189507419117286474867542674514657668206005978356259657359314610547645155232737586975305828148382247771302327140223686879544570551947631222402276409654131568735107032336913569533518675370650409876481578644696780902942603971905900631995743479344889418851769159253098055563527757405066231922763805778140491332081767034353364327954629966631753855884553446632316693224647099832743300975651485949938621079392783088186910240409765222036180308869462912607326099155648751176967975322946056167865069285748408289952951362535037741066819485515771813542463609642001765767169163940550948423525130364388313637463945307756873729773394872989872975290567900166060662707971223177715419671150537740235410521009849274277768521394780595719832656026142347658364619620356513172033775552454705235865908635873209075427941926140398758338984697288930737095381744438109752551327045410152093680102965869604049621298476933390324479718128710988545157923947137986265324365398306901088652999491607107285281803270303356381396233912137748297088962483206958608425557319310817758806689231885411925529459628326408328129547358330358569579575365354099788400194271734510501506045993197277828504781576001773796848312550297655762809283100690741186014646420823546900710527473858290081271465061592644378612319882578851614284565360439020572926806914250672787095953958576959768010547363209964676617539673042367462209111873351454907495552551678594501990242215207706243623233971767473315994040168725709962093109109833975824055756183957157589443329299759279873163370584107639055307027792604068878655264173890739640533055121637184033107727048616191612269821812113792636026589527750013954018285711300441725573716012823347632359225383171324068388570123158265527828639910550434453487781730605728971903419677596818835246156258791641011556616520015464671339350601836644379855444363112848568723381968537092930880834907672313674856302943565853841015613276330357372262180154989025178048266512377834763252990414411051752234193517716985641042066494643385495748265381977110686655365367403426418206322837462763285375447649946379146623626526446984362760793107657876449110599726344286679981813439555285381339993879758026811597521314520639342027449871148797143094803229975410189132392089331061767786539707877973567516001826813448513249300201806181416711361903622623559783994115181454656055262458051173718037192282113980994421357324196946564302219061296527519945533874147109722161800070769635515646663051726782362952370714018751789109945661010769510979129926832269840627611883983943249469082093564328902146193263361116645260064123136582390350354796683801188963669473637194631909337421498052527125656806814913417182485905604592132323465509534544065301768747844223795420757660715600340429675472913281519123262399895382630937342749071370921567810278994002031591238986947505591423256896462192987322443589580929411819153598984122392380209758775818455746792923417493091602892466872994888597974395325260644351351481863782690108889497995570170103590918426487509060918407808781897687303841026185948727284712561417752565582143374694697568251143733511170984911730265768518226261959805619873195178647136531483114311723674509184990723840472712483957144948241697770656526713512644350917759228556476093223153994055341627494898644455410286722594369835835147009109199794641847949984696381861277506474413344983686477812236946010121188280754018373143675351242427260335295109495987929391560143044763597731214260953662139248472552630461399713625463990799408647195699831481116636250466531605555108030917325821121442477144861103299498714046666127672584306887517133656130904065126425783335994426096728856542266516749962127914302278229762082028513821891158702871458517811200796941803794182224204230291862629960247143897288830917573625458424235843614874354839400529954649329979678264951225994664113233414963301260557693566410197582742861602751368456022878380702822723213815626569510295787847922393383940397392843013276022565202747267705557009161138855827451149726019511724554975963054357280524182201547028497564904434743203497088412448883404888666843209686996271234427460212312522816184947823698874450580051889298240996404427494187771690701427834822225946008806163993665261899556419138195724898988657939786199227498178558003190228837987259316405211652327187338738145534810297071323574599523514560350678737167607234360451923519496639781613553030410363151880952374583934817750362646747263083764403389533223466281317520599213176132472868172976773410983773848617913641565985617751951343135515853168375277630957746033516224471587369910064036442091803055968556219225015366216616840125279180770574656754557188170391866858158034571683811139219792197517641209700142896584635222714181808314810342348514424342179247764141951483337015157080410417481009259393380990121885550602399346108579993189557113381617377022119214279854220263777134856863100866012825905642372457335946621087993696616037976622858344024526951187601263942130273561111927287470362690100422388101836948143894966924828729459063586373835702402202093215623258403073034642462803292829322377773699370936655992696186089124967725668203356275221590329299299562322846165831327684385613870594577727072876796612318851649368399895669042377973947122881404440559073438268119416711630207937488162526715518199166599426510504463011234669487651615839930947650047392782066425846372966011469470987380631432389336726952198484601934158802863261462375531519292102474349315621426819424916675528301352183505432570441025601756141037583481224846300776681949278395932192279180532663763628461797321360750308692821938417129082599268041592697779222881002635857824568011064450464995537606907587235286531035962395629492967274142196351268183825661952805358772385933058077650787518253086335862633446776073634081618712932217345364426214619399664820078173562932166981988928102257031868521883540734205007700106697689912110433075538724610869741931916406961223853327962432816842415623760537617198568702101584445395019579664751649650224015456300818520580255270429185600365349810475098876124609957743179555396781712328185277764204977030948046227440235769466821216746079896679913639804892926079942411003632783916649109415166288045402211245183406379518996314391680911989694325760826319036666372039009160077403781103302905322604148365773510983994207948488130482766353463218937832745650820368642796153742849284237466091922779865427428845732363787147585121678519015497215707579655963697028438485956298690429843867625246507321126234922567150688953096778669664459485824380216199152550217907811915859196874215346541692688198641519549593369852189957800279237486970490088582742226463639309356077518278414368927584287908047069632082545251686783328376379687141046830161313303094930652732800919589190953623944010451382588768583581347099744768156110479047105332302624622701033759487101709353608611538797960179796543302713063615915279080341563253192342955072855886659110944914004292586055786781744377127436580848819656156211884202789742484345446042125368218876603024983588482241153813155461955630288935592857278298102966806388176028526943775743056382807546786211465857278751009077158066968142993010495665761232764517314446828816238147801873076784945876660566036509351653581127083453772645280616277515579528709132013685427843000974790409630713538205364456449492596957447008006487451233539896583527562560437750893070957064315971219708381756076103341365404335805063999917853438159589780504820666757500196639111726814286794649635168284922388919304556739245176720368277056938548986821482106052548471481735508986328136628455365640647929625702368744394620664152937210304184117673551813343680287836730150947521934806953392281892649961365185858244842847680735261200529496792318476292333221102890729786380684455699094480095575889931319637380247676553730619315159905686602965557519466304500579527178675189268427674419122503483131168174191788653062803331965109063443518435164202737495133046931944015443730368804339825568122938383112720011496595369771634043645110651814081591931924803198765976975728428545080380120123786526027820692782398873069039341302626923733207684654882230393051279081408847646078241860567532195786046599632423149598357860480752108276082560943312912598417861623596055740846137584772813350700820423801812453060897166743457635516152740224354883772682938377238573427563233588535956674131707695802797599729118404739734379871030658884397270073332759143546037891647081795362687903322346152397455053677768015343974649685463559901688147126683211101199536127607455431984399698164718422355763341640531957212024076381947087473912740739866866984423492259728077454226979934694328889132905074064734723493388041271381041699016480835102168405564243890271277949155626393201823165264754261842209270504062588703014786046324444297417409982192956380963962940560222898323309138750609379406452129725593254061400914775979384633037207368346900490717958522784916695058787937684943839332180682770762854517444369521516462685166700521564934802478005835997578248867048942877999676308104329384994940316494791064057354887490345942220487142760123382047419601778460061628101202359275185853959881469739642810395599211930957814561415192190194587420896803496081174357654185144225242196400266407396484681129574659983217064388577124249356320228730269465260261474120868123964540209305807090945698319373176792073399870691648622451063609555396309450541397871572628324963787984541914156334395007490622862134175735392388914439848586091024824485090354507688758389691888259229510382479995283004014236112267644691755005041602764190143588284509132814960204111152695218138291521663046640869042560304721208089723275371089408554038898647604069333429656537595104679855346601274707657031982305815951915834360675355482564717754824209773160869356745647149321430423159005274640648922268119532361644374528247237704329352965806249546664110418471541969816215777137706330249783803449965333781146260830416912424571921214347616624967911452966113863685058576329730552825122563705760216621185700457696221961030811042380703914309868379833601846885673846372815535872443980392201293804359844198609509968766117305604804563867873986623597554066539373465623595930186073070592237477058966027480813588405027808626083800701724176325616583040784234881879536151627647888372835745961077903514384751501671450251398081549703505891211985207070900021070915997180322496546650019659487734303440907759320168913963260880015052864530836154321876987856221654757707498292081975054970121582138562241897398888937049479057688009183637752863986570868729088500413599008731168271164083045514295384099182110134662269626779183610624341950569269246511028368781142924294974968102992167155856399559014600491376749139260918708530282350501643743669920822856687666187130642426961085175148378454062044034328744488260585624832521952749175917701313984827220224849842477447068823117749184094749087356067538588839247658092203716327987514911421634015820904506713991852266160770708926164330429494740115130869824837397064204562174961858054354599058502434667513791794866036397783405654216253809734416732061994864299849970697021067145496172788204024037332165837570946467873561011850611474954348460836283841641562925356281536664038555366604694858586942393050585144573998076457867112137904164881928698567816077384833171233714294691949739562479320011547222877078441372052642918158073706095356044203212594136315525208951259982370593357843254473861981738278772322974613438641620065083168534055225721414580435287872794088758385889667933714770491298196908768853530683933107016648829517425596552499085081311047657751249694904603338478082549878997314495630534112113646738525097172297231786846885841077972015443512576717502735163912164779468916832414688339511915665416453027323886624736381144587562208593362251985390847369758856397332171447460075449935340027579588843227147258129162913790281174159794200955007861376332870996104227125581142658855907966043605066862583243618470179391849190827024500085380985462666377192508591163842038038464646487529508710899026434497168574801724338003940749122185070208111941493217463171235495381436911342121863303019579873760544784855203767994935916275471560333950758723281910275592292126213631322105905267862008176432231703576496033289604960779881003543106068639836832263513434880085976774971855792460549897116700261271650280111728018999093787405068641837396201696492910778439766416541417291614604399313797444025393752093517484329775326311761906352486844105676232957666963796120692151914493542712733977387318029928713481915245203098949206153218997351582385128217108168443429550730946772200524755461087463931870106828345876749527067407616449234851646110630760934767726290314967403697391070744435010547809138246533152062410618665112478222115344158065399029919910049974039846514241587874918513570885049209358057224231674678856537799293836655901460851731750864601647888115775372930758603384725174583345512945518138342146109095138790844080666221540838565647040351854175555487759980388182459987963206944881653487791657649053666926907038832762755907103396650853614729059338906844612514931597227893621049658233809289674463345960553131414360327859855877802802658559923545449315301184490472619156997562992828922346956381403855638955245932345160427255389703535873886399054314250612515089395130086328201107118536106862973181267343726761378205875520991542123189135896237787671612307943382851899073264935285545681366575069568066269389476393781394188625030346942210590843700191099325549885388954241383534502721178748823814637306240120205548860778397638379924761211594522610098146108944770605831156861036290865894201481024017589446325113752383396853094872005057732916805537038698337220427879887277918126160139307650005220613860805715949151426287320979159865050950669056055963296607742674678506512635225993437679631989819338146931975362360156530774071133629805612838436642545271644749323319740846099652597348901552866413101513116416082351402556098193091079968336536240171132970833828054405933849381774904139833421022417870053335951909333583218408128839555158908630390575024651335355186841231095665832110367641692609747486089927978691090460984525095125403539806924280727669125061151253172282031227220572949183788512798749112970811998508800814910135773231299721194748148928254488868088151558410873522521927655400494452962272684382737959105460928871072009835529907504441661273781426043685008171614111196984369417993655841396950433047888168659222959784532138311870512057688841887217162000760306524978988149850026696812005538654788010255158549037721139716741371597891116763874624442411672572925394601678258548376727842505374937749050980922363745041207221702834114166598055376599733426642310808262281307965692510093720066024631587814558047831468456762945010541779785005009507126079242968896224033735675648573407388659321922689153804779851877450777780352538518658290985721774280532474997948131168380589496586273973915640532669154055488761110144890752514211948858576901300764545922153932220165682018815538711992848703274240945777557644366214117754490764960863945804908860129113585180433719063467502557766259210717677183148158107767565581284288886399056908952626702560908722432934288617693055839077809677228732204763126160647004632833495200297234653286543243390064308191474067940881593408239190342293786642346112168525901717797980684875383869091893771624304630266153079687365431666771853727158995902595927182449681673047186584593937095731566229943435891669134175250209721119989026331707677974482973361649741877689011403725617036721047363827640367130520077315136452017780164989929825573140954829468719428161071152771540698466435521256711707782356970275182620405946032587175256260395857725171976638043495126820625044712260240597046464716472572331760853851611381643900797664260195950171408684871914789426075650262050907619179446617830691876494191833923065021670989332907011964600629644001634201895376855640725459510290420499701884434433991156754958706608088691934518005529677952215828799909686875659566202317161048423752005054353114932078033455750340703759138962954608170869931442617966522510177222315905443303651291076106149776751896241206220330423181085235831635459257042494037389280035116655237504540144353411070476827715488059959386448855637806561006552521598434591573066580925749445357879945355518059771715647096708004252218504133779194420691123382021881348767818463420267745974610962548347163043631372952177521466870723148351852726587059761356792949644396583814598029625146228677750710585335860719430758325305440865480899930817756162432302687883405676166683671672950209737952742958725980271461948994069282876077130366442398927195590825107293338265907077554366968060770392569186877876198282206738523102156739272317328528606854353901154274705635313445883454060334390023557820385058346232260499575678458159123831355961997938187288401629808392693673209535854274535367710504100806406350721858402086715148016751627759396924068570902019171789495218528279423751153766179917411344262286038190755911111734444980465346589415075505309104179528785497056560695750291933399216475483544657221645553371711230643851606565851772802686969403357749264098130893698707654835013241837526603421577730748451689656106174480720405950136268677626677582766864361379881896400688905685945525800915730722645169625713503426984391861441300472027143768107073214086138031428771886431607303186345732541272969598593771588906031440386790401875950143856403208513454252704690295994705219042099007738872653729829979406443262290891150464346440269980442097563762111375734031704291644240424848727281623249784208090783620982020957110987489647229282050756527956306863696899688928445727755115176471951617082955211564014001018097063417748518815644014547567715077401978565870641788088261058030453410699828976354261448730363595025878891049247164867946079621231940284219351273551728627598344984251262742681967889934219865191884788088108680720645041580108381754853242885039035450208176952582833601917704534342587486633418904426317918644692669904873774388917072219441370838922771007420271225782068380285611386105413547309064685665137015314070803996260865333432408503857299740189573033491267024385843202952240885758391281506734624539752379762334652258703401562429675150359887520813256457582016261022494744650713409234859349975411157732899742274239650847355355637914553013656789121159235657670778485216053042494228273397160108837346207886253317764620602813035737205622863284782193054381445800255482935088754627352886175408192522597064588456002075710198108567722986914182682332378094141980307436945492119154757015140977921598322585508269543070985378669885619040835340619815736809171252189480715462384507843983546042735951289013171578361561676380959356639079834601889998741961868576107496424512063017089967275884028174091035005017517430840046560572220436892020281303196711079527731039302217308758906960858596985131596525173119059046119564426762131869906884994078681339604585447591149478310501153590683017619454663774835729700384159530394065837762715344057241318179371802923305555246252825827720395530277681774435556511614456765923446523264166490013849574086696829175428599176721392992698091117622332393936934048456331479961334527859631473141482161737560472633691707158221929268636604972553561896699325004508037866954888570792885115688134197799268323501440518406743304778677691171606834380784878403669564522041901584043282037059098538505109950230760277666800118691683964097993883166780445979948472903621870608803122130784217281802784710320015221577321583749782164339267026927240984180950765188227585471385732476852693338300452595497408236731415617570796098039481361036512422697953064410783290785117080858002763206272859472754443563749630301117762305752588172487626894213986573536247416756143328596170132944457772416571696428906479800596484303046644259891137670611052508151941809595155954695937496835624555279661679478651503790250932641717708232695038109034638328708773405604523218107985865459818103991309162948587417640271568584881080663510417265707276961428515512139923931499885178827272599169882288750669779505328200889634558569063426761867184605658012116947226663897177737456331497058257680501428528171409869213458825723896983789384205018774725740187220707677515998450487484103489663365581201293395175922437796618577486446864126460680030378208512054752295802937334914044311145048436279353849896292954955733095616374034380237575045918408073189397224475608011681074840817173992251512864562201547625884419584724707025818249027814575123984795100220780282691903605775527897378386096977287507507724628835987814338815039945215703654169586364976924076715561124763311395603953326796932143265621477098357263515209075525320039297760774102993193289821821860881719177418506890000819513200047051803699890474329902755450142481014754172540422621908363131286709832933423502580268742848801758749828039280582048297197468307406746265784315368508313180687569407157452806586650340368959842393885415669514219673869167755135864245884671841321602435365932370204412464371871298751693247768459085783242628881529439336481263760985960351594664555589953556440663664432413130022987735521668365713609414331061005892026115025852828722633386525538203102731478188839009940007679919308170483615539535534309199765408366544662141789420436929222699155615989276520107656900331026585923062051310968832289915551579257905545795478520625715430610396494363572077848849492284358524606909806227670907390826918076171287424515142611763532958877876677438720795080634762123773883819858450795997966664262867382520879851454766824169715297929485333003568589853377415936963021474685944436980273518787955123298847580531756543427936467568167223105649542240316469181732662582459868483634139182419227382184980275466251241997470940341572542776867059410974824158385533193020530299174315497187955609937622283744888801426713204233887526263783743584556203046411141374814650857278248229056295474402890477700847208702369121711991162554461075244741306040041688673207026980668307485194039497152379569529219164297262405451089131341117342330420825158232661390192376631337570784327081686252458389877051860393582138940158072858277983287735154115954644319434827535953007789459153113485533067648259662086520903907587543026398287284235259185434162274725022741039527890015161008452623794747760279736198836948665322751942203996107552635086509218031795109936360994548388392677864199647247569591964867131216934125626493261342626530978779280625325499578972875557567032577413985110866123953553193878940337514932350140746579721175350079141754594065057036091788745076276687217672081776275330371708832618513240029254874096248683624359196412001293301896777593015508652274117050749285119757597381331752943389589066078885844734186184223570263968567778196210714070772219462579353863420458991737084651003728467186861796528964703635898951566463356826005761853515273284753322576057498057667210167539882029026652694266514962669351301337378364262503520428861645914332742371549519687789611264542974712011788743176956926417525087982368022914920668144130845317659360419058250306189090239300555057722442806606533730634218260979564430975711222636122062661723056451182042831591153266125467649201785414746526159786262085749625930470350584297841891024982452337782120664557033870150770114367481704217754439460428895441894203970674064186923029036213442450395745557142067446563733797633562773066707773879219067586870363935536604543905330346032559027509051233950070164586920081414087435383804628299271405817887518321309434281327533294690319842926279122767229510815908922463929698708394267578130063005541374121285796979116664711253206517831892375279775500766398052690267674529822869351025968387038462883747164460166042716739128192930146861146480511005165561861150767551946874607659406651896796393830025337255285808061126278844099175802285831289512157792947775495821310013566733455223492325015305270277873531414913178180429360711261215265073750137513612480088275051771806002820885870682762195247158951973332322786951667588663791052642675029008502528979155150376038824572215190916642702012839292719132546165361574500038167255852354648032859190941743413686078834124965543976164302938213871182930748821810734324928159268859116198829523606594624235158629220656116520077185904042602523658561765533158683261270625440581160188010751079707477283208930446390234763827468033289388417812686747338050417507652339359841475177882471822598611095108033994497250483554233919240926001881553551659319315537298968321981606306737504752177737818573400157473963021600712881098954219500162292973111900065510257740013817805070884478007152757682672668874499254919735797895010985014114097355765236911487091831419853142119468177508101614890578112538813777128830887473081039976707053556119179708834198089730715005004755922054360262519887535163301052355286250171429977350409376858424670543752506412463453924331435078889559288910132871969805154896132479200071010074153611402825832829968281100744486222838676785847422640427412010769271779809872814227725910573801825663075580454632480081696277985614187119389238429006242516841805946431678837734707949405497127369925488149105626001268316149874797918374377292885338644284309491011962541366324780894934315169879237543547475238503121462219197233079586483692823269046829021094533431355317635715194334444564382076664996652904195073162945217684643750238870412466865909442372584731314346283882916684677750670501299696324229413856969878685530355794744091795607895741509405916667542818101983860376825242409362635706820318485108485862006346994353149190470213323257641943577112317549229549059536019882254394640471556698566253124566854370237458400366788790178811744818100218422527371278815637452915145743233424523402214311670249937202853422649941267919663272944256910985199613231415513516209970029102560862295209884743563991020863821475084253447536628834004863948586214731021013346087292777548275861767859227641465079763611918349155056376071233906490426387943302813491611422777066982652295534076463851527756800504688384246731627541565490397246772812556385451831085227490231633681297973057296851112305503578462040488339037249820756376950999254299241202093886470596068900487076118812080488312971582359676453700259312770883749116709646443929718004249889076418804792579759146822039834591513984503083279114000389312284428857517586952466335045653458552354655330097708878265282014309359353055528483424331506244661971939952669075854428111881692504663934479303492430334828445731429178338922862036522215459072373865279914514311128491859593099537476184812729330899363396436810106359477593965763651403945499161377576188466924446791129690824992838239813584056213547488262101567647883059420725203977662193780539965787307016692117993420541897620584935876796003056286779749388673929049350330532162488535848457770657778928455898414552996383952490663936299679610313219587218896274442726117965832389355955132556338879571803607325003063371172157789000729892089622805403132655562048993043681692483701236635809809493587962049912840824384172961569704021833255079344650721929720195275159135159324922669078205232782873712140301755713077199852019415618327104425365052789913360110775119221237417971980313193260360269302353690451304206027176383096464963356103432643892996251249480026799130969074046867757306698349193748575205677823491099795227548604112589602300220898695898342778909050979624408846887198440658512851758971806633121921031148906355308431320503303627437822764745096699131987182910932826590338492126117423629646020074584261520807124277581565510067054892251067339670813483054559571407278299619894480507891880913576207827059089501311649742538513351866260182969980323403821622110609171136519838930443075538669290576731520220071444485944335692462557411596027253483515836657431067797755704161206822825166941989991941638111588384224852057184617401473204158487650321350247174132993202392490425658713556529079116066547480249459929522138801285767697199256882782156327590250585319579903404346043876557159311728033460925339651879771714836463244916526456829724850833404030178149072185969874727465987141364068280224950082000049560569422598258092430386883472060753839273005757695996477492447630761552044474877662615929944424151972498013311562160118891204659940055869389819578555869148142292166270636609628963598102125291815779355691278450594483816069387109322910605728370863969175159276001267948967596179543163648153123369108786903422813560228248626133829555599044974606188526042148177889524407021719961405472042219925757785148918450513776841564142826319402207977512706158921318108278060028255612994912572018277828865920922207028446918057097978384319377939285326209492484197848088439957221120987363404933681235898727217630476169628721468817904477583750516411867853382163320939891572230142939995045195918140032490414315095234528052634469062127898602611457367374673143315085917498877222007256090948189701085140712838955966813147307102786726142209972440357006495905922715916641455899872214878447475564907143807445220256574699945578139049087892766037671666490857483778398135770454271467286230165556210570846005470256527505172200715493870188710252966611682329973428687238794805114473319435960887316867127227491514441360128620867877376829785920283059612397929631258494897609517367632253140272459258798426942661520632122595523493949513437533455297902942443924211186739425541449324375329559908230328496150157730241405007839209497257605625585907079165669231172151306122927520029265583145340691555462609943017160430860125764822744136324021181305512849509229833207810729549083558081883695590380601762943892625481859884045239054069238390221005614282184928864626042391762778038408228129450295134759485266362756181205379889436144171396781784675386524666711710038096104862064148430032684482529864610170275805564461792925113055869987106981917486129405091687694130318763669518665836685126322144223039077944021170906563404959901921067853635345561174312849261655663449257736756594506120426358956043605545682785171831172888306390863580770443530188962978236942121894942435144014752775479364192898846605303041245314190300396658107271962848248026053399458058907048917256047198939557364303453162062389510962648860765955769684382111699492833545422482426288277965556481898554019217281248843885921194670062755969294661795845109795566066960308546185212063109986307052242073845762154126621165427945958973380808882470682190627876451008337314660589030652159175932112901397973823824414672717119433091242673082110540022493536960605010114127846426864977145995897998471486733038416701237144822882374009105486878167690202771305486860183149075036528823342906393140091704535456663713396038157594774580344986383658859689843116719212091403174901399490586570004224623685125001472053962958415499377758209611424014877228629840469506704047664173422985284374341852425872034794537253181561349282479951119855612349563509466726830012322968510214513886216240997278551458415166774846559203848476695206177845009881252810392782741811441538777863432711778717249297113955018350837344905245187821051002913615261691562750207324364192804243274006586731840448119883480471893081745604703325025716461616532963237723294763890478247091300363592646733338283501553321232139732799778626868288653333162590848478356078493956033113912412000463614493608679032514996888500054620102057167125277056285184102265182224926257527115720752627885186163994359369512261441796612469409505016911230028481610117787721484113343726948917940191350254408764193704274138348478887292643608382100771563092592178776165747132787954647129145782597308813815306903044156366244886227738192899675521535438750226184016969065887002691490239386459637767030258976150803272399372654903482612384518549821378550403765502417230932524122319195334736516920781094113843879249788798199799583765079657453391904771267119691220784597630946590309383799236085276225839813544286786732059138761121099573877875636073784540598454579840720926528633293527348418364568656653652913840414839059977711762155134168325164898420772735534774935879529993079147648477549781731464776286937126227476056987221459829602493321935848579436583426076565120848954232634524472551001971575159926086948588184158780947778617631628816848985389066358583072155645686786752957294512993202789657574162168560242396541116468220470185607385206902992555629752683132210762933559499265108039047171481366394045269503418726425626260181966338384880213143298749828569298194578388450930820600109996853285424709428855321740585885356460375985328044814214946563985075434811103526492704932125398401595006953197624159960153787359127563853682905502418497618422940936714756686595222224159107318409030741298761912151084513339124082947326626384219000193780020339123994392442414985145333111915882286594887349028591634174439766094221430475015280654693126859178506202570885308365481500543415777453902669966570254962870342581246823179839117576471539835840946824487820854090088855598590746286614683695160807530074007250646055724659858440903092273304715021559502178992790913548892858633868262684589493035998639054653415850756538938793195344084272360335098193014887638210386112668010828697049428622563204928607844146427458106853106642518587422039354143684665853666860036201055618177993162009388926511450160859576137984355019493231464691512399620130268172308196279922673664407324972811451557099114751351450583050157795903572111926957288247409183859338116417355785417740030329199032390575763298072893035578966481386368504161614973286806461498110085399096479915475944765821180390555169808572896465451981278518519778312884921757688145053243383702725980174116857756840976269073130700731671238221692449307164806456220044675143144581119755867759081480007867086871749879782259873395582296222473514216398066448326617181907965031886087654808977429990180134862797969776095789967159075796665472845581808382912963381614683325050534039667205614462338356076199330642872038029190801023338042289867847188406858501717245013531160444245925267929938951185304791079638061428350475583944382868495709633564289767922079662870016835668453947179618094569311187203595980777911074660137302988336015508967284826863610676483952740588096891449888499220392259597468207850656061904065022603403343211787598245861328614008321803639949890216174646800047598839172264175811817667494418698770922790508847602328465051288858791276852260103487981855451160450812033810193605107945927958879246075644876496320681982541481705907710159695048427147174241149150149995852575164133054920202683260439706920061667981413312876603258855670359967825107110417636736872482981578231869836591986629510819428079200901738945149516797257706643881947415535222999446569658930608316156099400680616324713451561991976736295645787350971784323237082912020181976263575395206414437561228845014564350929367396431111206711549001234411374718086631125902660287094819551878009888460975436891376655149513328387880907750297348303046498460932505862329605204037682274978191815989467843988682586613632218987178341807778827439654159216916474904195239653762462884993890593523583682894571170101396370939847574413875281233944160036214358250847774207153124772816475183930322387149096005584849588756887031828921171947356107087972476991222111665409172663695162158250773068284122549110520550838915835329466459793637425632559920801347851664432556027385232169509444675137834754147058185778592499551535426132114094462852154417960510659452446364843259779778070943446771348191814380397146812011186313561970211580264941404505025498370847860314195653151036127565692397594548470730657047771210641752430275889887734330666070997553271677365045834962182124639200886899824866376938374349370704823612223412384902435558560336577015051522117762982182218968098525205566896036697323683261361567373444732901095774948269166982485999634283119960876165164301234530725583191533717545328945355732803915810890681608875106744062305765953979825836146213327364805523426322072561192184805185514256005902549756378438795666548544802394548155657997779766488427253463721416462820145701937619487962730828009864685655551864435600808357678428729485189725177469015510617597505276110030131738082022511028523014783274022105486169218459599298662950983303720708320532662139565190625322402223993365655055137607774130107211924519130795012363972085066915506844704293175341092679365768105508234179680200682728230985955091766105372596388627448535975796170352586684777092388422921977410661566851496343181492004765311638741326443245758548494515036650008881353276206867226545310457367510694155729821081570868913194934902624039357846806145595578316749994388749052366809531240902737036691284579956184527179261184545329007112960314347006872006220622831959998950517384492975829973467238692742866324051311318858039456230115133713658956722065871462027674686446024013749053121679377747994614142880316534893808566885888524719763447781098515288112484257516492334436314349061319545850977851912925557163221231881638314322568045166577211413520179699380362498289432565174206801634717913091332709786389811656202563842109216841186413987954290288481512331026430434992895381303714033859935900623291261287216446851800169839948462662700532387810049896025799202478848216538356039800479380083453428960194352361152510996343180407181848667372480727795733622588041347244369618207688244779642926789512765807534473542293728243139305277326020288530657173037674446079058240773732089781243376261489697497552544085163882444671105171331267506679119704764943157079971043290574087113501433030279721408235289508302207260259477775622042845907405753373264384957880658802584223469258989322913095392284404152113800597805627180005456712094637849304108826903370103874050406062093831993161794127575745795265040628738967762274436536489148359994968099935687002759813087304084667747480623836153132187149525300129772917954015145115010265618004960695973520146998607315326310219377897149356985628568767966476805556323577677015351873120111507477765408186577627589138567713571599039413228729516002063484872734793635456830043031650425894328958526483903392279151763595710120564737685633440528372169711558049208852573169185395456071391817074269095081078769939107379481233754684568851142786871257105937528892026269418507524057854350787469071176623651135783917647303217602242341507076220704245828800423602539697878227863679305329937928482827287836732694310056313593846325267669863628180498328415223656118454727312416027672807150233958643162176123980635271259903730142586585479455366839512990869298793136474133735944543394833244678924969980816020325372793225686406189614620466094943744980741798610087033157859041112595352593466249804736619527505143818715543790165880666716216685054059356496726984354638417671001646993471060518173783234205445484780042996760697548706026640001606040048796847806871204736655318999914834748236066586900587051242477245696103171074075453007109331257546671183484668140281549662103965311114211102509952037098183436629795172633145014858236749475761363930998061595758009250074628935256531136843447293060046325142247944445980026903452742931823264430431647624255621926090616266268650187729301124480626647002884522468016436503744714866377799489055985755716624604065591255302382045447959716291890471949972960045980426400887518426435731424916646942215849591071216001380200332644215836902195308463737265910651674663497959666141715822000261452719332094482450152424511336029919397703847006636066141944128104499267040408618009267078852808303636532862816735480389889438116043268810606366508531954524106530128576387757112681590353798424853676863560407072800202413552168334554019309829320726523604085107034838997051870373170500876375336550964507167634649693464055802248769204468565349876492809687179703443336444691462287174508516840656009866253407690166895815322226040270878718854207231794265647723214758022604923950854975661602349580251830256113300988110228360273226776280444508560727196963989775924299800413871837756453817896116718073385960150553787667400261482994384047357408973272407448513544111813471683111695442417157165895947673565061285113251607796661632080360136182861831279252360262339186608470440646075376520182522383371752591629301985829852983238036861742477910137798127015899475240817350602419620637133800541033402068437100356491892158045946061393161648108991155186783329112815650116297925464983369771840300057886446324995329756860284092213932643724712787331991582920181207169285814556062111402281128036594941414511222127920107153620618116966662399676417029030553076251929751399256780706348344518999256579520697884666402910952681532006365563957965743253578936484362817296474931272379342285270182534361160436202050532193412105770717454801301766794981192899556470550887827605777230271286623824837358663244730100895269972730499254071082247862295737173739461805868537992573742060789008123903859034612623029837114065193678225309281659748075021263191551039127675893991124354500961213304783673897047138144798322045199596452228414614578618711388033421042309245678174280865018757428985515413355564250859909917374742333382427966615562723746332886465219147875156697861895941078315939399230584331011165300897026708575145669175615968105244024502282980704977406103730464835780246818083396412718485172218600187449821929042127143981050012453332434275324373993169345646797235554696163067030956298305086826404082711112519760703770419918291023708594474961253581715814923939108028807793365793972300835388770703047542144870907412709411709996937713196107198522347862230866555062005267652884486604137512876907313311494106953819825035492197612507159698192551905488044703849729099339816380792584876674417455649897443806978090238305888885270621885213322335782377237565116467969652607274673712313917298645785610739208072413001648183708182574504577161359048673562417328497881242279781837017122936622940718451504517702156876314175613980689041780937330154412668041217984078003937366231663708426432413486319192788591842160697410445092579676822212457982971284043388311404315217214902221663354817664230432561709943266031508065036487568306437955269771799861212963711315844192484328207383047216886214645089641056227208576124537800779674593397940842739128699078182675276165749493745238853086178365518929620467753948398620458753432870217769634341916910681331389940931436398687661809869716691856814114709671830135262350616571870200512212708486488816484065858995823993495894722792599851796409536525717155202745051054026782568312611645677128673282060198155837915098452931609868988427148518435934229387712557950622492754539834580402466704024165629600626440652019835764371485823873405126505889009321548477018613397879812956684093714038552588679672600005100024205238218163676209167563690172994640823992404742163033814034841354965152954191160275318321343604982851919181211861806813597474143492490998319009368827944013503544538000021489467923721255935881512931059834162726198327470339432499227897235514369225193300758283994121590960712105544997533643686578227153083713729510886779661130133561520114038628603530253216937415085470500177880050229601238206537356530491852682076169893066096838917615341777537679118823195147503100584012596972610544878071505975904004738033702956611580534221241074795855442132928829983544576533405077070774618367245442865432809815426952944560232563469943659089420034784014114766831745301152264407057527241452494974774133227394850610306989336066814492971613930239173120755314092790120288160705423830307726008142466182824733772653816785077533082277914782846481462096615157327685213316645754368668469570800744299981334096350709634973015408513642212661784949784827990215329561716203220694980427837255518896576482319350240320970787844398813214788298946443128498531896501332558614070392018658627669713039188715288441418617142924117055952753375220152086605447080896732641896506658990289527814170346890355901028460565774900193018533083681981218814499317692782699901729212676824373231756164830366161077813680366216290191974927199868322959076152805749474593844122749528036102036986332012373239886976769007068434826193679671070490809291193969506932775215404260419624301568132167493573900301080936237059675759796424466500197448274788609872233329549804396991498020769429520590695320911814868097237546722036355097973956963915942261403437887101170450848396203646600773422838210561767167649308575718998549532546627207675071873337370920751773090200889129323617744744075947103930570604441712633660444778399331218970651466610896502753258045788856118352031837628762616837985785420049480092612102714384277411034529007377428793317401194479094717282686248493713658708322703558807331742974033188138755052221077122587448271429546209071096030255449806851150375577343231424536757606690956215340056679210711171357237995329445664383059374683911303111598607814844726435713057247116915952061599136854873556851182450169822508791229123057521360394603560918030190841266783584778631358941519864699209993815366848452909141048084908051245352679693138431185189955162617259922745348619885338081332477038655974532963906818829923477192945948354424412950710888388313284277001574384041923494020152209975453841320321847174442928230536217429614462165400060089966769924270187335329393748267827084879097653028532802328753035420671878440035229555039492537933659884024798437536027603405915359099716486793662426435993882694595947036866482391230977964219630334637718952294734878560239534978804295522055557807504214477382369263489401375390675922075619078017953256012194164615523355185602628399229079592879626940557023123789570509061139501512004400187742228874423355851828274565740402830505983006665677502301307904207536503243667800570002416658721874477829775500747255051904467788656797894466492871567499639738548052890626423192986904944868323145040810831064278715144656422483537456411673491536903571299980768942283437494213708442297525228095075595220716536700054485877856198292964459893623228788529786136055833909117268012688111881237356559954422441546026675670843775689803228654545631578321837312502449040541747188825927063788585920627775356424229701971604791781817907600867898512869968324598085757646676795772790006249113555520214500495611997669106037646627738638563053152501142735647450620886649496747113872308886399322186140347208889529911595117050092999834899676121032974167663679698790618205062669038926543202964764444314841427443113635062314073017417383567998832477721236875853828558000945044038534976803382295807452096986744102821000549833525649870227208698818558441934680603943243264142377651733789593203679989491195800437590082456997209627014098461243615199858918780809241059243295869587488603579115242623458087178548106140626759900857087581230917715668449131184789358759401333264129040690603603852826785185874822016763174793048092653624687318146999356522189594335455513493880689553501020489223566007355802625311188654312861724588209415901093355803921464359978016558314313716503300386365172929323101964922279918534514275929920938575967204318327556909759686622890747670309391489729939547567685961159952726627249315044555064300989446710209070966514236901558085950932645293150193937272363034189728062801585327449830193576631287963118599400433312016972782008360218006105469325713994569161766099030758548262210324811158640514651955601386814572139663349273856017379218452819208484085236860940464085985265238659755187338394455015234025578535406667044611052524020791977644271319951929163165813699869066710568179426365527684736123613143314638132800359457710610911477852963218863785706700380310089283678099268878588535642859296608677495500867777722047215332332751839061691851259908498273589712801400465060501403233484667308419640135200139523492313484742818035950741183325094292833974765741345099559192376341166154278276084434418771923652671656729493106465302131496016749762061961623639362888243082195805800522209784899944241041927994009259327514415500172838897908575846907323352069139481937083166002861688750960058584736048960366269432448044774339368638287120633363976835132413401075639732488527295091004750617903568018525731100429108709948218702087824924122092573520478014663041756910918817177481394007891230529156162523790597812643414286048751001659351401141154972477436530477300359228822132735530649351207963907518463920711251776103613078948678822951757579897104841807051429912926589910914959591023464650651515207176427139835133629364505493922660459480360569610818671113484207659855607827812904652881443413853609781197355631345465508039347988953173322561831982095568834675699283534948430495122794822179569265814833188821181471241430249742376533663621801812972706326298779055007025526716300431548676951011034753623567218381752512267757335631315301594521177701881129776036869569585441842234392765557875546274963569674969553160901744008739059062556099142313541254217363675102781711419747797581479621042506023124387074475949687504429026556708206329739297759474902981959740877102788329852787989575120140162081568661960593777923352170198233340863040144221063969317984810754731637267520029036068582803973504374130462233969916063710740034293752163613532144920305648973697353112871284737144701981954452240342226913142526534396638811542170386323846461485983006166459634297458667269514118828897161173160518723351473520396715722648457326311857065915123725197765304253080150732066952029650103796091291100142521585777224469649901482823216077744828611887877689825495996043222937849272308697741275648957252822092543321141154920431055382155198408737598990080193532767438126172782203670955568287850266084545264194034281472404524334937489852711157736640369408687619071767626855887684582909876940938504974116718393991079646014609153667254195742417844021563758979784122010299191292938375184886345494819212322742186477975484183546392160316195749823615417398266337002221965816198545595124471716888302790862318404041890263913044634623594479660353909560616894203318896786107520421996738421662304642619794764905896209663814021085730322250658616060672816718583072238870589416057649144664339722231534845072531453415258094647977864084069671631250809936816289580811152942326933758023569522203056918208234398117402528280111179967461219439185416270345888296615004407250996331975388016397135831568634887142392188312555185733927439482224150542986436531074532989729300839801272939162818774937223171655301694947223587830825981632107858683324375357607974942545937139248375803467691601339622821319548824335774935068641133061980238733820046178234989720515943537538814962445289105976701909571624827712794903657033145572195651855572593896293583000214977976989451415623561194737936651325152143134738246512207241548201946151939093984082302204505101781683985685201085947068424593351901662782058994428697971017475468331298425738809567745475807062774435375782447397587833778090487384851832745358666343752460963497964324002533377821921598433245821662967252363139753247186968454023014312920679475178128288890633176336498300875463879736121189715939477247660924791471639670065094671933908122268660665210570881421105617855369409662567790011225770476022727779487484651492108050152739335916061020978851720511896320788322690331326765195764517992647393225493243976373639654962209083123805480590529741111329919476961589330179016764470494177608350530779455263337491669818168377635055511958128182733239927944172954903943477548489991121422265988003651742253047010902803746898528610066474221420331496443054994806124525657724050270562628146527330811578335114952073657265384368672824849897664611621744961169601743468075611936952124692141531686303332510464221220483022741718968607280353946972922216768786857074633612605794318572235678068771680067706401860550778624315626096711976335847247493181955080406982140444264239401224232185956202565229274064843706081679877969698335785266820234159716226783406356545774205256187911814456452346097617760897612167636093143123914935085048480754309082957272391596350825988516750110317196012837034978082534319839384711915539683513778571611742547144696909768094370775729015462373379481445511347104635104812716869799146065457429778481066780893785511714842421797232823803247076961724001807500391423359372349504229337325463190738578676101028143666035526276862230707304650442717516717137498516161548439083950146559486497315598158069387025781705448362645812498737867425825550579120611447260688511084493559834910188408016698962768021649549011206577917508491332651410747648844400464526153352337866134124064838154195719018666521272041926611339014068157223132320562722875628967018903063586745024475543451344014466405091082087641935598538340285707190883213363317909735426291598291793404437567934861039448714947036739492792798965679251096329511160843297438573710923151002471205526930315587444457695647889409563526590373244508306873816253762387336977269547480421717750093730168239750397042451219238374423549540103971894861021300468042741098654274197401252748719518923854402107242497607853158870253498980884256808624982837510039587614712235916136015087584129145724709743240093237013145859242559045601221750459565741549699299808286896318890493700690806548658655215080733158062238188569944263100019813736444556681596871477036952388572543255311956047700087550108055462302353040033115172229633992709997929226565106619718717202208381210045708566431225379292305674990136201640774957919935190534290055583801554611489674455986075239488917413708281566851249449469333027331288153199615604168444493564219945309202550816860210596743336345094995790821977213720171020547964441545726226390108079492321433582789054320257503148333760042262385774057679878131078421154016075539161580999244089058601362068422553407491600621633226523564281703986509793075090963674189222184283511675190753338025446412115574880945502435586047748605091663618151667426820989298703805591694523485506824917164904192127995922923604900944991878190343793987440921961163960862269131321274300801154115526892319374609265304419243419218550192591920331437387617752892006510256099611950431749299702741976292062875898475642611227891469341654199983159143993316288574507215946795442699911405251194179213582683002630142354763856388100801446067051648361106994579959304906733879945306253962163738088648964511682091310745309877355482150807664381346821479548207950291916491179191386784562202032628546596102197292940176678350023909855495959472370656594623502384525154508621711676103485497216366506223762081428098419349578417987144830510368455273648891034077369595338437890356042685119879914061971544351137715914217638053344996518668426525081322240320189313872344976022991176053038994915424253745140745223175441769685469154579420329040375499840187435551943824130346980589922179737722741427409249268007380007845333606316909743475227063763656576276160631369271428644154918927307028316351319474550282974611340895708681498147368900749400355803467922714878299650651697951318699079849511691527246274479455751886539671983008645186001775329450776105642933676440076079733234462209261315778810363199980076335350412346304195770947362468934826276095189745311787087779653304064161440776554115692081997335956441471982978883076554922004429551079810000854688303823316267833795499200403074033660536550061576763942999995172801683606173848438543710927837923458238062698238165395231162206844491005913049628719268681624634602371759090929354584202657879201815195666649128882678914163903868030302994474587343001496923673061205495389860614739977293099519683561832351082992569071252801246485460369808282655890982596261458876860669500731624668149024944202474707547798887709190824354906618111541196238202217304244175479783796011394293574988995350453448536691291009967285271550399243135881490681980681805681601428984950082236332996200013864124371295614995874970173613470108647888169220043024518508409592074016118399455525562794368749275001840292924352552297607211213507657745433877276745387100039035381765777988589809417384137610839483463505899077866536698076850589362284966178310433993688998311660559048151156729044664641739185849854774436983320819892937292945091191731717824188643288655705657920137296986952055303819099915128026020502782926883563436048507370695676951469376845314611470590227367886791565512045588591496522764405354655105882247707861278822217739218610768835095413472560182054037825977941398050587703526109231191304532610683970684133325694505370595516317417997220084967557412403117533064041313704794529935462240300847828167916535914969428555427480991086729110807473104367276289238849157344616752347629224623319020479588941352771146115179965678269350993083681364564172225346928310292517227525984407366563790836329526038974757098844467519806496294399636785963062257067864797789223296911099115575766664304371969462458233327680986456744644968110443539143696487907989806042027143289171130002329587670909495147345002128874806596460972878663321323567853127897447079472595383205534129240990440346139673570449397451393149215684424393486146144546635463219795249249084454999796622026802508147550296901175475883275027827615890784522559470727720777008124181972394600223887010580468306333272924340581709893078490695274997522162824161256160038818810324714225411723803899177531047900821474262935569910815078002967017779895292791448609045088927969030973772249362978666285140718892248927132994358219698317473054926985015670363037194258250447926815539544216938502523262511359876947235069170158789240863085862255475044866495201764582292108277176800799481576054995684821195810582100216603620921222039624165818999871522558335249330817940233744512550694210443979064350658213690920613672492885406872303160735783275002673533400782709774549006792629991225219883738063548787010183196451418624703421072351241417653758552301675538786656120723903010016916689971807744986205848737836847764335456598532580050282879188021346110409266315988333247523219073655456859837303546981578092403376989951702148514810404323602062808546252031739161032545023543658234606825762256951277870896491569757604889138194102875182787928468418380652274441398271450154420114788473512631731383790558900434874480253055380486593594894458068317809148462421268262509262990130087490407920434969926419187225922600900555387754168839354888066899739592320647024053491169853742052270449811425432300892356026912266862179576088621867556829551403356197250423248204240936262504068260781929547914619268482299364729230289484079981128030973251687405685529047366257672278586259366878252577878630119860766298841047267777136930628136124911812307635856333902497279195428727657301902693157318641845776097595262017640895004332625142244748029623010268899390587041081155991942446646611220266491132646281498632485595692110898789987386528607395728040491814676267815276650020081304235048502467533005734898643706596867740878730574974632886207428981292374152058184104049707288898450248413089528104041171164005819830644530104708078915365879487262451004382578013278799722881674288646949972392766205371995295382856630278924317091280946897630500480144092471481961351591824311266937456518934472082157296548066244115491523249073620639322952517635372811111014937226768914256247440406565024425839742289323066101762446598807149961275101804634325417118310045285698619960374120965999361244760185987176241533243425216163022240872738264613042332484879575904202729983289548544541720992782995706150741122210769752445102050085124365960171916528299076058793384540427755100850985550613400626849197161525456128054741302160511056318840264110013781657573988728913156748341385540700417178916650246122856401196459350644146813389301590888847107256983083532990620389816167927718112897252128828969839720231404767941138895125559077248548369042376239277957254062839493429250485895929148092993679313825834572369457325291017164658317187292806966248819486048631443692930235348565728329206810160947123019406711413708884075134977910723728058916058545049092647544203801655870283119100808946487136676721193805061632024164346357318869789823486677307245255774958064502656000936188913017724781535779546640677067348293507205894555224382619102079338954559703056776846798900138358866206790221833163298914026547079647264688530994135545418026239338469219545110047958164559160255572946608724334037104612328897057735631297399505306509264814840081524387601145908321813533320752492930103400314865975903437807292555097443126932747060256311577409751085383490619436369151750861179848358711067038571495540052592406200844391317645275823264683820875818959252964002220740321545352774376184866138958647611947285597598933710127695165674462421429340757985953974462682273705165912740483723481036200899899526467509529172215305464172989379594746084922828698362164303619331939832799084976592097894675146557738172137291605922600996021108671646807671192332202234900343144212738934230217040195357689232284817050531482320973367401689677558837862054195817848121076114820119974858791067051663445355594107010430499335126610399491047734074389949683248707650587184920934619160663307450755606023403218825878551592984618939634694283320606589338054632977770403928307455922750794022336569026584327136152383784746926316793908398186694500579219900487657921322656747972410547070002472033642973464396967270483580222604068287704289266160140577094288652152253568243400911871829583758486284356568694623808775662154692846866339817167960718460122987093717190512731817125861578767446496660662596965688382691501900313012834033551345308300924976069758099849738168549991969572593723236525967150024522839313076866327128231656642475434768792775160873690870834989735597236261656557024447302731424026227837091218184112461697755695351802972756120896210868849880600641624253810525661621896347019101360651212393200266285482929164336779564483334256277109515347183062384811068587609491604136051180752263414948027507615218700246505153138126076174778598666214541414768272235304433238580457564167811374333515553915705020112511624078712483655574624674453412439675313105012034886250298583845681370370551219990023740211099977188304393347005561930481945301337041568819597588206864405707928003039096334163672974296091245124307787572168484978765241106107221559366061437118047614575001586985456784690654679459626043285183802807337731387576062332868840924392390058489480205458648139165880473561208934768463748398733854242424651333406112897626866450728614990917492009099533834784745034320293708737166161993647421107280115494714786697357439645133488772763838212027231501722998737289369991893560584431491153414630691886092732187542012389849768050698524340403904554452212412124202893991274984267385664992316619975562028027168268084049580791638391402544992291160352006828422169246098528229333559529757896727404593017272551766832980781191206641323989688496929716102653237640247374639901386555460848578393957845042179003033902464994447382539867320455182133496986423500321932546915190928381324872400582232594271410037403878367791913352249593035406427250575759040750981348727092379842794955636978852444646863346948281351476355476370768453723858880359315003160676883590334098392401985821871371767725284240213520699318585064349348069138668830230357991192719956469161761288765827721981116113592089977392298996796940524357334500055663540111273911169067395982798675666078506673940526088071961773760905465288438188055350826892201681364432771589432279005542423714680717240437228840123788645332846387359074482600249262333326170047191577227465774621150706391857311996510402166024982648195626241963587332694078717172515337172556892238782081056485884509413936421903444424573355203038103550896274456449906270554812934784535233971620119275443900133110762739759621317229165128022327496432388908959179105986455610400065871753219406350311887361235247091554540998680817023320272392557297076746172964375477614687332109484936652822664634073092408352557580446051811197652585365944126988054010116423159799158756408903708099077416223595738489099829777395915426426627744782265385300769316227757901964235583927959430678644924822083552862894651113608957085825818791649808322774878344842786786363831707287686782429032028391664343032389486678494819262370295162431772525254035821184316290015263807070252074866120446453286310792204540402686875554494730201042598386512065725068258131179016031482825433234257229041194122386176594893210988365295176427645610421117652155519255857007157248630537429472230880029818923529330492104965262929922743514366476048019396590148386417023301001213712086413108265804143361546373300727655979712584236970774428962165981840490343031368843552386094495190059949661375702994992385172256457842910707887524862332534527921731157088194696059275448225768773753569855171490809206602494552343572166439774909496682156817254811786872264969396248312737304805056095105478364091601911323286438809147087510599957348937326233661319733636625396023121844746781641129455861593643020990972181523354691190304087438419563696170482720018539252321160893211458343253392443107236250155596299442335730477362698435187170574488036258481014510221585593171624557547885555640903406066510250966751223982847926833001917136485983944576937133111078316074745279177166677109481964226833224476032405793409779670437384023563186635684189968908244902818399007038003704070336340206894150098762114544524693792391719865168168156120178194349733688204747879404663146781818285517252505981112792061084067845409951691714525138080360415262169295024031805079339929762308720403453044459263458872305295930670439212142528961253933504681255840086423670280745919856359464105126830751891529330651426464959692178372091139337151652190569850250234801457369932985974846983137446017338344604232280061849463402470025198120227487850331805601088199547201940923306329210345980419216235716389505128155996639043129190464650259655237915701911381855519836989027820513910088298916226205635476841908145509179247775274196419468610368278107538250590111930517110213195530335509620846448350049591523977755005702244937978999315784420597240567803905501514555567514634712033052828118790247096925166898543004458473444146393808977853385811809130342945464638067783870062751568854203352203283996702324540409830369771308871580087090442890666201402832626613455995820964123751886714036732849802145167046037775240071359135274627903618890532928917981064420976823591894592582177285867407292530833611821982906716657564005268419964949582924865010199202924734850028450358774967526537775848431130846755550500418473298308232049386538546652541753230472693843177906069138135398071227828779765293368180880373746676742497452007180813804353106336520904808581319698112443600786152351628533487917212850959242673783976164376488199878917409759922381777933396113552465333307865887587500887784464553802329081407784816052998033844923947484052454823174845756620468576229035859288168837171622870420782105975480429607357348164858142779345521784246841508251402796611724666948383057039603498187709505628756560732047988849937439822023398996132752259435237607569379008458811331740546334244652430519688130462424370293923196379985194080802442086141062234377122939806684501337765593053356498994573477547484580816870817421756393422666540165344046192110231316688452670305754069029400731021001037363288125809696330564711004736164207109579302647000514644617550100478059056308251988854615041541178800689435154957057649608421983476721491140947503896863859593227334167217266041016585086557224442527148113084273865713061832743762773949209399515288501585395653370098528134736885090631001004425937651765960238289185675335930095882409424986776570360596935168718757944772224692008122856602748082739140360813103769813012410234320885778262375219021260037214914706728663581100317969076485772794012190484040910649001169086386969969910362103629818080971170426253743157141890230907733804314302247262779315536849921973442001939399178880315706134756206286143046081809734617411804300976326584132504567072984362564351421847489502595782953461757957775770431812338163107262662624020278406187314175180485519421565305598001214769164228756555389520167254530997176440573641985710323462519955178234082699649170247988023577775171465939502432211274175514006580936113125286124253870624589753799635599131142799947588393660261819126541743601794966520586441964252122727354891024296542261740568964488104846863837133699313459373694319140903975411502634861215467529187501068098419657652234346989808769613835662352388946160307291156098341962288207235994948198359791637373852537212469017678192562582920267374075912212442513978549912025372389241357094103375616001643240455574279403228486029989846893116821391519213583240001126161365037144947621415524867051755229835059101563511232626316666154477878000312733672524529780206823772271628522206840516994768584460947582924223433198640183465318081961213529248254133392979784128287155147429963120511422627174446553734020614771225097854104104336824478733566238033137322544809818152595169655478278737371970615926422913228578079506482622521141044029934462554552304134019475293236942076653451069178054787330611353960811513068161021240942466209325252978004051576732339629076252047667865504707863011971059925696399796576616669923771947077454023395117024246502742820348453190898193365303142256218124205456701298176909270484394241508428323238348180109570186885525981050662683114563085760146119529944656569006358286845540676825455605174265083309135849957034658064729886009391928126242178514115694534208807266245550862003367296507588048386546139916094711762407015972419170406215689847465331829858585294021982010303330031832068409000505059199247760102780293085172963858514764933264880468139542703358769159822343021640691608492747367297855959340664409258523824927107843945258156053062904665885867657441094701336655777265481083414310047614626609053507001553802814339659999648874027430188819580240215289848691992003057427267159380701294324566403217556773946268001599276655523788128848076193501759895588965183234930161220289987117526668451913632865934301225303438292593729167402801262226855554474382934912948708163948542113276732651876849258276677910675982347441832254675383375361603666481754413370529517472269490581242948247427860208551882625872775478283825858725337811042947536293966448032880902624585341755409902299173405457920895505655577685874004261873068672552364327677339381151266506967690930485319321440376471781807739816991577494370409956445941737116992360608381339133463171869269454910658733042353850240546772952517105358727990570519868271444532209622528461232161935752057972954946071827862570873390049805089408552094992042195063133109085380945904681950217548736774923265752182568940356047905648033919541726891303336632349273156005458078626197521883042329532208413962828753596140136966269437332987488684530970028362049653613264897409022411931831566524702510711479718475630966848430766933141535737708650887338189235166823400924781917526053971163701611213918599972634867997243092278179749909906421564503561150658109891594717210661908526110798904165883407376623187278621055772956152077861254562991747613396897607194669779198245421757163413500861611708934476025760899668224777120277629301068346446538364346052719117111414542922363168997135719574027216922107914003528427449032104103150298019582730070203968906620732945858283465389114477640324688484518372655051383002064503371305015737806871280689331581241736994347966941350249545871780235000674934857285646784301888907689626568736134644114236746988467681971432436323286579155109956169953073225920989046193328368327180585868741851273500006952229411047011298020606914148293605809682048447892319951171208786258589977523644711130407488178469884169212001069654454559505169478531825816211166920905505520467375119770500569391413235931225031410120215074091063266162564092365685910970387786354913203951202553280619781173574492897167522888319584931638730704453209880546242962106159636404058371755398216727110538620756928398188881447518974593629978415821055269878811092849433320582420910048024889552053964221167382749464654902893326663653202525339369379511703905350385458727398721345134205258372466547715099845226416118757228686887194046612546821892904113693656962748684116465087180280719458633522021044663595695111485132848009650011359204929003614779879230080884219602839145653042506922651681352452109175037080821044335851420519947036994233610040716028502301788500899711467078495039592719947902822248428914593326921407135748537458125810312240419245809897591843587905744956621087152978128846520773561732952773729502050653170264849558144664553773330439798311221646021387518291094125728599508142931549351507810377038104328271524953835057703331200603938637297071728997199808313241374962621671861698121243299645092739401415671044454242023379853897133146729823010217063357591334200581255818365032313685142515797663398291558426143540595634162559560674284119522159417241547383560617942879227601170787019297052885149772625627114866499207066664490586436795730303838833629281262168134922244448358125158439151981215611626796589325051421299747264572443813059531025593863952721038841688303653911304971569633475044298276445597027672346463702540414013156036270068918293220402320646446646401429999053603753658656790915429728024801713955512700588271263444172387967935948655833288543546624553363304105723526627313257918113549225480028420837781681954278417376177087823481371546093297896597424834227852593054316972791073835593500310287232596786363309805114258002929076111956610931766468980032981948283201823107256815187273278454595869962461351833962541943527429205787578543332547371758663311602555881401868747214432894415996959107298845591615373725005962577150650810811996366863707267641960385230674837627955949645636214897105174682679886617917397034228336851132018708256058062773352948356265311635721908980610863106948620029654145881062375147310602673826987707079716147151867800798361861624854731889257561735984768747136780066675959701137140063597913049186768839556007675345300285624593267695240376953133793455781234372402498926904845127184319480033474685086594291876590403023707160562145016454173330227132436103352648400756274766774474843810209160317758161139047851762755237175450813791946376923227339115605996987231774951730596544323951691494151949991036809976381465746811726337450012017884894743888538959510316420152530060100368033195423497948946229256189314171316724349951760366609587978516778619006820583875790339250187725662265986746213578902036174047154929879999713160713595206003377324534711667694715976727018895115106934596337621380580046640659499857244374899556236176749269652172632219549356084811325987043461111406515998372152434448702203907032034545544106494853059757543254142470327782488221023380011325658284291452707868538286748960211694932617295584228914289751303022449312485677063715365490336188560882211570006953241743642714535832880008621296724168487260418286316795416022594208050863158397924995259820957049683402006135765178217182667126227271733338137368221610888900595995708469966650262339989245219044205864880552614013234247201036426732127981369174287715407181521781760314363941544947769778702726495604438929250317658443538584608262023622615725496480797017026235220797349426949906140008140370449921358937858619131391188776168266259099662895921380492544098782438101523990749363079147208298813481813674256165852722574519533256393320291623051171518928398351051818342239579872010852551537875570816889893693615326210428286148061975843423291262931918051629192824207766806267420676273782663399278888075728635543506988793139682866613393372523784945415469551946120758851066050244494777012557509135374330806988788370464251031543970665065460319800183842623139152885917025059166813964792525896742923120239221158915076998845742799075385612532435616095143871449368410895637859492787877387251031470521464178557700462643060732458700467308296844500303872731004041811852625792461596750194095861221454694740415559148810265832615080186883476900314987883053303382557364521459027917639992568843552207172303092174527654956344488287062698597180019274568391754178321620401921550039524277872639375676827338894644536727479840129935918562423802091124554468879890720899431395546377959689911935356715178427440323853983405759185604799999685495804682909452535701042141198764988881753587712411758716363521841261403223712206817961021443676951527667452015436450378081563913388075548271289391270481925172114986657225552568897295032889676606151574090309663432849510483637381447594931761525479926241356963487027772965497968029402709183759522281624043358517392031737041622981696774990348719619056316069078818583070885341512883646177532844723324014370096449291444498857351287176688421616346524729824993362503973733245272940720334606999676748542210254807874152517167004073767483299225221912245798966934839611941045089853378187410357320805099580966751742196578474761062439561785926458125961605912945419198919162011639430871521671894919062594013675029039093268079390451998912571259828687637838650035790063402659092997397216384807404174667859109914891261424016235173292469133323478546864936703023137575499874507598946512007313797015945150655414166846136804108506676265600608782259642922151261493752617671520861032309152833510780088532461508349231420498445843709514738727916293980526773463065617276972065027281072430370714559519325208811772456709330702962878876805263694200866456284033628672529121624749570391915781774935627451440340412848068166705776530698592942744782667249718316530759041744032908564231258843935959438535887695760793421952230436368045200979217483710222251731763323005449752626543603071620053930859969938209785468558637591821882834941448072570799763674758222269282670467488799859828556338282302006834926800065452940895552070570364748215529180163458373673414521975481165569039270156135437724162589984436331750349461868334156648310045899548217216646278509061205710364804265677779523445836702228967586114870008846460830213000980218534818588012368718184222536039937197256573881343863211682434697828722903535114013699077764805100750172196265814200824691187056775199623604707134401187986749184832224664011948253018280894406943858941100489837436190802590758617110556614791686881154904841853979024023423456152219346484093274654553674684359197654614298040786271163504625669738917560697156454232202575699810920313930788741612103433530330317137888722246469568420698104699951918711347784578939320578362318382428953103931230602743956484227972689675324122989655601535541007951492584157979765191530676212304842155866317896990264892935736808160749777300437795143395953922498418448274005503509868053421296093990089575684227540234419022536885849195315673933824898504554943614702618538237613448004236897908209716012756948220683444008141927711567979935046010473177137961629327923285428261661614787996656924781634178524139129804800946128906593424998978932214285626648742454960032401436286507325993015223039161306391126925815448836747733287118972187481635648335919596223660263779056767809348526708905242182926252484009606970648037258558246798612818487282509702140686072142259008258904040031365372389763668868778474256696918563584777868285848461248213160130770098194521969915221862097868274075128239281236567634606683366720678389059637555999420940494219099450815268698415021149743469021779018342790761934097855376487108035106237029069509842204313251718082063121493175797291616124377181530987008744986908308942592847512049009242410523537353928811802806286672398076383034208052440629384374390761940589732782520591191165080838036093131865778367153743937505837514057674980510154126894357400340295115543407242594518242847286320120827300174587494022848887252024085290482822656238658824769455970766592145675242040715226879032669819013202854104062069242150440417421650573804642831644509716225544021074749263903698662908431229726672210021614901200670291277211462730768383066627456357376234688892028078330418609585701148239990069583896316096096662064961204386825789585530692010781086414136899283347459530157588890817963259101468129522051412436319665713860055447719243917011111330832108776290595157928367188004454240611735576929216020263369734573165887485128947119229126146262278489361044103280410471201440884316679753769688255671374058904804026187537233280759272401000398605036880852560653826140934566539527506486219659971094060950004435352467780940172888136175757572673094394340221060165477077000706705710331332432437481772268055149574185530414531043010423787393513719260055078328810120678851680058470373254784642137391275816679340888759508326684899844432565004561858809365276776275301284186704654241526318892366047195401222249970505916834922467594002847674247026150682615898183430446034279161933570964413645661979674461397512883219509727384664410710654964717678912189235908035349637106320203952960928379516601762887605325445625860611853225102520786059287442179597212303977988294313767646287109681889460313978284623565929674764361279652420286732592222278467866302850547887625826202377868504145616361398120980505918708083279246457942775355475707179799118359318183059390480745751942233847180708163063045463899584993593446088708200651963931440438859743809285750421561904757315675368652312336352880852721058483188915121047399363387571847529111402807536974003862019891825973036177129787465765583246066658633920879760626430989936616428446943245681726266955338450138542277312754145042909019797486748158726388874478877441724476123638351628385382842076334349865195799158849382479080078253694709513855498110533839196440208130849189902725168874253084284375574872883690543444184997288664630336682863198016014881146514978893699513320800601232083415307998634108706736560515756184655443039864663861637998008936829892695295396609232634918763997201879095749412711730493376525097673364478638176185879721524925884565401606282341501549907975950085498184132891033505743208379072228888691672089541865021361987664378816275050302933902713905122784020100639586639406848796532182611890355366872479232120089652001028819079061667462453851371320162561154607427784029856932542882015015725701400546846975500111041740092976591926837101129200683508543125576540722887961865452100982563031068835834596617378617686901858009770450384871453848532316160698953160956930732295667215778803649169826021499325662944421925355081680631580831350025668002741456311193264908009321358416507566254692837179338521872588977239973024043178696249878765848371782997098754206708520328998285398722732478658258883339240309508669546307609992332111936093574035606666607785041900046881231526301383584292954836231501073380762631391237422334557758003605161561419230507086542770110024036508823324024334655602410474699650110830376418145664220039368639290753236827545056454363369551277837581703182509495825721822937269480853454237801650155829796249478413268605165038993441828928583080390089738711093972547129578307503068561949097867831286029346587652443108722745599823831014492198687824114708815924316045625130738611473885025883203448673367224565985857840101753620690320233992911735873468342813487508726798959213405139936702436773757018389012188097801566163959877677267892542710461197802859222396487140365868673771389322783451450333408448121960959067424187084878479174283384540659477074499944845997321435948582903351421917096265635931252955485832159937889724611605733592686978839772891992386860745857205047756256939899302135567855360367077370398057643275401111010317779937026710149701805597562777968688716623154789930515315292891508448756283014186081823998269368131003391287053652198989007574842253717178530519953364890209318566113952110425097885801664876302028472963152682609107862546020489531049863857311658529035110573486515448009697219846722070901295127162491020466673782012904985179367495586291969971070704606810603055139735029001106750589593725499054662296722156020142892064358654746479916200523236955187146046529121533869454849604975007771948535185474922631782685023734026714557993535784025609388966059791578021556932826600392800877686020618281442663243905449776409119405181990579958834309140061326500209974109184596071960013652501157548705201105972095214922365083181136251985056882283312501298761469107448041493351568270200126822833519493841801357956729989164359327534041493509228510518832715326076706990771826757289617461232152248085771013586145919631255029281154622297732509547327861182167425982122750315884575820222060926068201780080265927549178719498081504626660394973854594389307570901132807755312004959365307499249525026621096083244125944992471566968446835042384715348542287773275095623795667432913075819977353278308123875635271841362040724177418083840783428517396469779465345087801007998861640081554354583741946490675717178536606286295761089824062339060459888025664643144647276715861460487045133146131300050251273608096377069187958557570170926079495487308543301228289936178150521174932605270093660565218667692445528270277051625796690991511154047696033489634976911331625457219812254142222808104410473456843093811261114541583720572620789529159759666222403276548678734321694131549178042580246033835567377199659608839634836910887436970053909636961513193425199260105256784198602465409128935191216601184287093385915608822720760662406011451090457147686750279945036348253871232030486190357439494361937117696298387917390874132948236965276270755399008249337361878485426231834811784390936255826268924957567355617958157891875269277502958131481823901369510211788632241071558576519378417770468327964325920166094931933230533363441253933078773736386328405165424812864854275629987691374216261725479411526398400898698588713436150997834946854715174467286148048571062764560808767112299176762971756433745305644116908965959117012476709704560888756326149046917073753028834063021270291062379179807310698862798055207187693705057548925348346600489974747006814904359789836891664441508067212158185700143169129844191688110880199694308099653754093907747491779149633406877599559660143365548541546754954672484955733063490444444169244515935981005953559308121619513102537269505700409701604155221992917859676445622235628638259542931578495281141575140498983196979842428503982788404571346297365841169315930684658847402950751461810330874068070147926769438273925131267898164871850367573890828973019206147124713666506263442589857197401817861748119097603145191081187421673152179421745692954449087530078361990571407376028142971285702743418900697057711445584711172504834347190452470171508242022899872656932665275876393173347863425289760145413393551162998726187235637244494972075164853213149820522966886293184030438791488019730017034759894168962535066197806035349689629448940783547580823450930363907104081046208652990421303573374655967022246336791554572955177881477494070309397047422013993008106471744457753479395744633887517312141675786367445585953485377543054658161875110294615350758715109558610002040205331659886492477517017773108000023514552903003495195920632573197922471247870608840467389840697018554479301884666904626238897924744124745773818745522693429716964500164084015241644676678255539578845137890302847085833784175803913111083375688013576536959441234765390178589933844357692704093058279167583695762031541738125413502823415658764756939563542668043943993715175689125897843366045171342976420243803566503995530112578786896815050494668704225336022062507337259358249883222141515037951153126959346717462993913286785404857730760369167393409141237051465220204063636103876398316687034988861293875052924924966205565826547936626980800706410185963520458290944532043963378346757973289691764561598365980248469718605848857779537334704016213544058421451010980974723092330625327001379447226442151526994166065701968349325852078778880422202612785446757702458583741477824809542749835052586734044036577592720792353114063027679917779920930621103578502628856899095886524826932110829089922124050265088974804140586168086175489873873954507586602583898579155110535804974927850140830042167943906346984455412622451170618127455920887531683899741418127889698791754004422114837721876731624154446733611312656203293262175994057610169397559563068910169485231463737623588013560229852880441058042413962555754091669561562954870822831893700883511259205472226826760965810036679956116212853874853782700163335212646409287620070255658751034954319062497467979617873490480854519652559313367576338636031583580396819776218855823842764038323388339850865021134152203992487974387793100919809067985290815615123189459227688139458154447248261526017475394600822956538057372553773495273587406045195610751280774606572203519169765962962998871690237899277172874211405770840791491494733432621609814204842509008818560858148150423611585434399388939514990946670759992810308880847723792528882676402501158517263868295065875463839532653888906697432478610746662703616464140211154946491282455943782393008545270570454422802779416306989814368166781830033161123978892708977786101218027243385441261177335351511710518164061886791222791591129636830617282411876332822966704359843809563665982542224414476100828264231754436984037327496202360460618266871120162558072971299577109591971640781623406005344578261841835993510947883874115873988500766634783608420384794560683793368989681332764949769446712800723759991301208176731020665398456000181695547334991112126864517368183740981473925685125068613977266816011058417332014580201215256215014229082025496766144831663230074011866190456333771908801411025267114304849267853236544797084731751125443833197703083531476684463842026387722660616118520277018252190876021136591065332065252438309914136527309516226631480886752759298680803560892218550250311304386188778491439416372988166574949403316095667837852435423630393681541339279979075509963097825140702026014576907522950929063864606505478632241683156033611571457143723138655243967167586358519470335395009908458101883625969648596128076172550449151683859501556151182533169294246809096904833348335133214690098762462398535840464820874138760800751977437632782866289221441220360421173488110723851128824571203694878279168998667347576738379556209792977386453860013774982907935380496997734519181869774159318490458887013542815884091568300302342961885568666023060223396199687277080115830109485966446989359129468295661546724566333463650502616265171148063793898069603113102409102024703743134770465837819603093162583616970964186910662731633833688273805571513117114154133456431444915041864177109257115210550902363547606455430890687670449240478094385690730103878777317828191360946755454058724581284323711842609303349779272389898092744742981102140954456763542009191268968405966374200654802322163502537441205078796068206642517381184204751101520189080057792628358554232506492612508880245273856219907643164393134843360883288836627387327846675696022310839576090036204384486682981153351825072559736021866605043018226175952029029752469933326714941299432451410645145147646769126490451167838686769561045092917645981389053719318183020837514641597865366378437482831627861862689391043695231487935982098565261398360893818581123131327636112636428122269093541340694156317262149628111705646373670165950017342371900378451507842392178459916232637765295336033286260544519927861504343811511079229852059776135526951067124861019905989589358287573632696893987290063761024399820217516990311657816244371716859959582342953152688222753304592033877410512618906787879103937288654331702218356590925595503091207287323641296402420215133101784724802641133529715675053681966608815136021564858640567347986148865585377913382603689264204616363996763601160762508300618427611743109960213721706043338364180866671817816050411554090507245572027507435840176944872297038038434381048764504761499080224027508300071730299593265655005570650100371242549317740878769246655601058661268216965355185295184884708039618620577648562434836205271493553650078292952257513449711951185252233493371780749191283435924995645988984629576523747909308431387336635076103767479087224976575679487256013617004907839785286266981817318772728329436729167560694085036701287652531810407793854071021000202113633451593057536294728923619787875136779897188090533233187446875836242039726154765303289149215156167627602410227581376798061755720409333423269872443775604149947060221043663349878765420481088080638322278791670386273669735617907956906101950209526250624136779826970106043338210557113489157682271212798460213109766862255383159728255362843032561659559894095191719763570558088038703058167959373254991777980320432290399236832849587014876606898104447349448007125990589304368436337398170238058584061165978216214842467672218585800006952635026380429976612787257340619664260602868441195260889643245668458951682298519924141699474762176802087678919042097284687196335166789304295807014809747556017367964517017031522448616887783305496931002935670120816636942678245354402998703903373937349851246181451069389101237545791772726890732029795007038065953111297132650817187890347404133325698820107236737641726633812672106595997347118960335908295352407001897477732101190477269808371255106678652000497740221981372338889224218710774996999142245067481158158061257125787500683530911355168900456933975093752871212131371844947799453039331847408233709750937477513802939151469578931552693454113732664145092153201787505641213472367753796979686929644141374607079069958024765727863826960993851520488299737169007841604961730281707405952505103420524171831878690595016187010646928686729798751886838999422096158244915877365345318854535950433125959580222358048262218562617089868330365043814086926665292331610204860267945066306855932507346943565357780022697609690998197315074861513656981600684538987183728780119253634949403129992691573997575834039632686931862947169091025420993883108103222723461911647777056022648055170504226376284293449657227433109264584282309951091092609118140741687621929031671586170778058912648744011968191450241500560369175635614327480455713409442290241577046071911539759196610950794951375700948808996478861506174477478439518847798515780937952101710604393222818680823298237799496886552785767688431734035256757615411192791046937098643013922537623296915353515729689046326714669514395060063537428517025967203428577084417726184740841237840281733556987329725097398730260549216818002455815651976430532543554967267357329402566771538351945435002620830382061056993640234604432813636027834119205279820809464620769441260388186406810420574327766362139841872763207000109530588685197680518395784277109165138729787247266951375672567539153697216720728687591437680144547056170424579464002728399369650777035612803013679497610538373289302186706181240346273937237548063620273457500388613828743176350547756226848195198059967126717885841898510629855826592727483726848726471701574304018023436439108205812419345862973403445159432647266441500715098050089687721783214440830407981393608434520372363041963632515640084526793883209169968706228542373086593505915896803966759114214258060689886829970682896810444372017865396044092209025170651019525564697135548568128557856864514563018240034174776309562918497331220113055746121929144738111463280841274305400908306085054121214660715180855117166488636805921058252115797812645741099732088948873225934491461883483217867159907842415349032241196850717241982120403406265942522150634277197589839874688743510067545085714385474671479697923228900443403779731874239862366159903820610002492433729239621285328482682064759589191319851157849885045331595256141997734353309597092715087645363452030766529880414729556776231119322788336450266394788307623147248677025587147412084519957917797960800292025335686150130699778104093890337057952142806253758776700993370127731022174555439264847809121387313865160985466325600120474757649544237887825574008164276492306239335214986620758865529916458852067444359776742127936984378187954734980632633213718660674578511845640238030019613616887025227876689442834164995976351568773961322565036593996722602143023630163027866476809312516452495066528260581370851500337305684258075402532200426876750653523350579176271191092162833383259067687320349230355218448661535558635894174641522794238369887622827215936756281769337432625879890064225405957810698619270026390056649051225072216629953115978366053459403301464533173632587055963414209639662444617563995390989766127038783272155004867591763446271433867189448381478676723641697088714533749763314335782732404835284283930241208048612955985828617245403589883715146529271533958300027184316465219703560288976680102829975692001615777977632855934386392290532445857217793824708709570874486103056475681937974296114630039690394259277707578478164024708547890582416712047448289787431480263179147851788716419560055800866978318039454085117767217813319320573434097962946253959444160005307451954738022999606632453147046622394738242959538959344314926381213631103264388973856148315136840230477821209253364496105367863263567115363774592408444299764386342483093824009868805982089627662603107917557981754971595768502555808235325036184228263795429001803836310276600324010580811461162546628837284340355141941110864375811554593109636355340753360544434353805254282855651108380603388982106852555310427915352757173153282779686419373187202865026972126269511472979060532118582593005275174384324231757614153718996295030286440339264371077386093186980100462518528642727855018923808124600491647223677425348326824022194033758712790631306663245969136277033356222131074247331475333089996603831781211440032552374483304459727354895061868017818089309422176458961703448339374062799961695355223331696346824549199147242876741987665918385220107703805304947734468297569752410562806702167457119397568610809107425938521958562461559057228184625739069708685338560614690591314864738949702896568497853675539045295352693661874280160602514505012496991489722108327723729751810834580748061277076069113443439277890544393709663864710120359464930658168069112953683677079845938730673431831411486927705291209972642168415005620654821692979159323069740934173490477918406163718351593600548800313742510342388774725828762546206265984192120085033774668518935516739275507129301893223981950153836109448090323666885193771689283181148905320686480931184688645293939622653183443082575610967573362438237457856135049817088892030899254633709092306891430089457211895984561310838403978899166970666410874778317486188228903519306835329496857812833842284804236218877324088484129594125601892315693132229098198644389819464028547312096811391356860832244053764605135566108259963940831926041461395212429273869006876999097982469557957003493255857333887444160056776827012186025965768899876171232291969685339970182460837866368569886903846506411235700479853230689370980952334810866500224443335247993556765730249228512858646925681122149951975566401119792065628938974316868557788089210731314177426703726948561546502391467157418953013314491911827312718424669414845273853137756893599848734133104667133716813793542434550227247979048103013575109340971555863110552945461487780441069115168686959250123480847608149168375149229120536423073045874747982793380400474471894135885302607677698544498164136064982080599699235528546176749498772700692461432620629545870481502809062287332812406051427703653335271042869542500074249554555169974513837013367604859835988232820004149476066886863783898929209209422814722331491245187154744738082057861492145014722582771963412251377067802525341713030611111837517119790287678598324032810641897326527048268818503562711601667485571952766163200338521878772711427665901748175925919941973455316626567787511251026852698540283165130812827640446511446491091546838340030432064309578792293126941594399274879388103073403416217682862972120445475219375740169159298525807750372951261789969802126804728829496330376552712036586779193940518835820222865996027585808216453092059867600781645978403077117177294716553243199113102938838791960086433455753364776432884340931524614846827770309908652845729525764477037252185879862959945242563099815990928510977130513630909416351640988574720379288307837447064559515438822262167626792033589507930142840946683813882752147060073560541782557464814310702609801975310144240418095513756736043303850325094834236871328439309390114172970370304791673091369596008559915837108599218327494344906670198265476290856806128068857516662946205956093720720497245405188346121268519393160292156640113238913100135273373064779380468919256856707918504479673338953834321165604572424851974654373022720265975537425794884996764888011919507353719911338883991713102335559794313840900089979416471323058734386543683049905648992235628544424277044830854156861452677694284118804170818996078062222255461356299622630513069404692639902327393064451986693788060412584918218220113378510849049558812619856959043637259535251080302650045521396430711581360715124918516197412666387522815346860375960664323729891787876530118699090980899757026227809429644500475851198190656108132425286590364496705889292215744696576298450533999185648126615055978863042685324331402103863176986333724693860176281387363197974184965091783029918413445986920038601938408281652630116394783746505162265929027770847783778573830892330586535506411788412556383112679400194083220050832175932419274036979985326748186339552478213718627823164242253164709044193363750019563771705999318231572264647805950948089933026594839808855914078470684743805142365270307927143140022175024991574533672321688220104834967097378592067043048073281281032664920452338404288898585176213859170396256661298719933406742870693676952223196298799487841146247540082120684693786687362462383393214093277981730588573312416023917169624999175315550687863090372033868824678961902333908160147330463811229673036488935256859377252597816198667900800620021360252237492287850858677227097884153446910378765005178450703718759665205443769224896433300470903559461148687955794503561534276808599718164744867941300313200241702599362151619833025004979455605114907579833457964005844935819562400152984258595947515159535316394248108231784010372302060144008329688616353039122665530318339413654936265282908791042449818508527172590186488965338243638976463977040946090875553248928084570766743436453964257165434694853776990746973670962916068201774370950674939807223665287059155501065427035227945332390305362076068452337799485194561066432530066428535963426534303472916856729296522641539124403566265697325057858784146817419417204110962088209269572159048558224282938529606453016047856902525947182392730004605373061656063941713889153580083397372279459254816985688764343742564842131162062001076344530316574811517098123628913169617584298725410868406297844683889039221503299622534742400180109434432784649624528302280089215244511719785244856607880007107641466164786004614254473029982197286165011488709689624061858531623537724515752254929331364519422697262997243834418663931029316540536221538658197850995267968523188786090179411246442624860936411366150847457515678174136256989856386681355165858095875062927456202584857728568856122300138124063791105105160769116207339643061186387158377611165868986991908512195081060660792755507649723707970169726045522125087095982299715616317688220981346165545823918783641859020645461480293392747641205926670243018280210299312686693308268595221825772699376409342604789998978274662543930993580603805601561188234956098021282409270433742905228033140662899999580821335283903925872749203115876655792462484567567147554737840132076746858696425621678972824226877827428188882007775522144436824842949027789602036855637518601056997318357029476580611896341082424711706416868078547643871369170539632506303948950249409795685432133636356884672341885917157392587357264638232302955492974776657896981344939183856931987775023045246210247204404865867533384925116080443198092004840335815972610569760563935780232997551315031441472468200620197783669896912163339346751087717190133968229855427685586203306382604326504835244812496813431920229122995742572349550183330985606605994086430430750101252671978454452884811580104492347790766174236328005002899321465377117968948705785587375903098640693964953089641990732695987343091594961461804504819900667296464411777811514459251066720091212089400560635762541725472480921243792435953214448090652581211596115873930575643095562156737237800675717579805461468536272856812960072516502832322158392209693002575253853109787278440246288759402422624808344349106307225096114735033961408745650507286401758363598759028942523772593934963435054233743867949600130156857181502567012384754949242675614338183394230789293562329923999386897298683336873813311171697536042400833083908986127564155094126622791025506986074980864433685267272028859120522484148488792305176648576517184443694714989634719893935491908963151761916401011919757440927137319790884455651273171549095563327113766336380888216105428257939779316289163827786852196128319578953210893613969234469746977741812325494520186497696905488485627539209137769325337911642923071517712021460722727451199629269268723345545267775894965428962139428429628449228591707474096451449889474658042869615025947167535391125257307115993438675331767047010472060614180410902929426814618039712323627632088504364361196573715287196482662954499964937065390442036544391288327963482262488464387325647557473990062827030790973865172861667601284945874383813389947847589582912012626890431666246513852492341473786369749378488369901161708529200138964820614427495778536539946925553915506362444078671189082906351378136658122200098852775927596709430846425575238581337478197974187011083754144898264541667625881691867848120052419233478984005644679254872061615892873409063505946634015459905446257952948687522416919888319209179524720704970800310350655745439960156891044921375839057315838820319794558436748876086083790805396200630045822694480174450156320110432986019435812266917391865740929096775834490884292277958781813529452306716518695467619731535559635199600805513924648255309309986810725571107560782878205032574244070856252081427771272035787719578113173775401575234138771479692923553364689161784267759432770227381251645558407077245294746199110762701280256411484049166474578773235739469537690868109018207417567212485598359687182728585517871298692772664112320185364687517456958529498773488358078393965038433872487173527385853694490183910187772359176866295522592702039912580050669007663142241543700748310802928923098040437564599958301008475637547685402348899710891149629960377728314051539139039190223293833412678854616724534294036434647313855300055623144163531119069962246902205013101787677863081947395723621966735829592314661361503561240045717203350315211129159801631144760813292113078713117720089932235124804923611593265648275766741366866927771863017533302385679513621687550027498632379734294029446220488771940671976112148654004282895158689941673016022656804028492645203570211652432632878204192397593066891993062775759169964008217300729012264113538506895472910465657432676340445188368123966193341242101956306473014244665621971904653303648470844753026876093902847225552519085997115914280066708748229930962189238784500680569444014976711223221958167652149721145078708604912826781603441119536219028887993491461515746237770285352813021269150799888103232783201034460925156878179186744712120873312263396710856449961265137056272764044164946254914105698140405281004609498347910636048033316970393283829463299110295641241609460522155130670716777971782995548387693334830310044640108261487719597541661958575852724940504924851364277879739249810282920836067034853588691555483358206108853155596811502885637350397149086350910086380169069536821566136721010143844651714416176787356828716908417082942231515927274424199643538170310505458435894408223422969489049818478143854171349892049019119583011850497959318492209703490926530459150988968606707001458803418914704963526212346032117755812917948940280476540636361072684702587380725555762507004129367241189616387504587992342539014953144397169590926874764151373178380102179453344893664771521123899163526504684152292749373307613163696136576047161229077269598744017275441203175549360270800601676713227142561700939389286963289273150422369451758817395912826198432121444433224450216300886465653391692195117985846884636090143900720647286332395077600435569730770129741598454033189703764033856732903287220375186312557618056376463481760375996894413553615683527257481952847224585987870576235509991731467721139827833642452218833011495934139067761698136658472407304598036644087636873631630652380057014224403080398100769392788241164084546726452732586555264755341526249002888888624546451858378798009559142873398258946587312603801336660146398587040118956755215674445829381298791806351131115364462601204098244659783970724418281846649646520805848462701492917499844886464736693135653432329088465561281922084308416592592916950922436669289176360140049373383354985305190916081360276038143867215064202037638435173657267737326956053024484966160007575513233636414344773217663870474920756464679224869446149824777404300897896003373295837422080272654413577152021561811856194511566387797218433612587244250088795467462646800846199179615463161261113998984091215019441064778740752049733290089753480360954708091741161361720414852225443012626691155115994728807884757534083432205759307192294005250686836955006499291372759332672172248969216597409287015612117366675780492734903722158570605465165775950398470847178374099271279135977981645937797266494489604485256621662803565780622963496593966272879649485909029424122327170598633740314242949575877688530786969685515580275039607638681032789292422480923729812747980608712612573127425856061974965930876229749733520792953088694741222062726536510145882063017351648618265891165662107356466118208486163971646640730936842665172831610170511924826682909871284188705709156329070310369216866198844303703727880914536060334399570563608768329573859379986207100542819238806178276936893641739405779693441624660355768885172678974284156730818930893787393162015798434299890170746197144488654041349668672435268965432033042680699641460531992525426849567805945315579715829702705692718157110343401552723990091061987237266584941254248783452977276645168956548829756837912746565903119286819768915865084848868864261249176711769395862836617924653002707010501816953653943883859582852300283580348543388088150702514743095852962330983865452562515255172556989385871632287020658581076877782045682793926488797909236307851258427466981601765412924075266708024005860756488681305035519780272856672194944919252768515089902030508886065376457131941210557368098016529763718933617779482913395275233796258561136803085712595994163817291082550368151799033415313992810867936839139015102512203735433462677764689164108432807766003147303726813956185059345676165987670390843917410149869962933670949787086292222828384100638777066662807814738613906249346004093332791356738256092179952407781326723414093478910380330656968365328871343491660773727627691949028215327539322878621309669125986536163575716867464437647255942260761870989989620375091485449749372687821950163873180229854216307122944058502840136648340049299059263544212586917712383985774636870757325050990224939919533510403158501711375726163183305213885653439252113878849107207653597429187850117175250600596778749540112167100960318031378150687744274651521402776254863325629756226279373829656699369068890032893965660548811326664428558819281961693327589464447661180528510597053854408883528134554608303236890178576580953268218587781405147357296178929217197234961986565606407814619352825761961566662751197978700644572646587183460323417238634008613493204382045777970047252247053468704753644508606765644972529412189451179101759751512540954980252941976587350771981300377564857549774066844531171053880732132736850753921328680955302540358116072092654170269798646741273834578579177912929293046685918506932276060689310000617328468048064964027668590883962861284014755625895669925036917771150375550875587098876040041311413850838053119058087303469471281719992014384944422246490828693676547688585817646753692606797019482816860845601011425371543439340776493580404454293033159768102189893722711046115472789667123626502672244971972177113846026182605749649013251950935892563802080038028315304274978536558069637003786338607364606745552601391142422548358490064864080607704348847764563078164673759370633029838813486056671582190237709050230945110475037839094206184409217536973111107741720348615956009937491132244426106949562774025252620304507821196097860765109229610745852970495912279523309029538183905614084460605528601942830767762921704740850827966770644079198799392315162995899691850117938916783677514390688890922945191409553320127180344666692344266523587021710387072474667718022023808775005103240585292528879784192091443666912217350646137562480928247247792969993614714506270110548911097986698028901398987722147802849787109217289317947396365794697424131321746033836579388323562564489195241573726862772785341640414980880041218429631260512786657931292136839217366987018082600270802003651781798544626579596205604499293549422204078465108027386422490688029740132852376366385338593715091548844856200386958770064632406613428414637910251192752885359060350605238942862233131117689621548771883734730311678901420856441282089229187004075836462487676902512437873397828233310600585227016222367854384951705706542418279037562379271185896778016640492478960131328856178989986594763877532050546483188090870038981568522107053403499697485213831901204184653062017612420220430470271081882145616897194346598423588352289606777851650059868128148277156816674116700332913631861081721139728695365206092246414602495234062996830210826265134665358587896302829984309655289002686949292354265028411343235555728052455801720124119744161602561130380821301990623675581879489047092663929362261075278399649192546431737118784027231141465838478156119576833868762919582549974332527986619012748660662022776298182842477700767599277785586565343641546865160683179432256826043944417511924086701623692563130806023150949079258354037808410531879475465669812997060849352873727190912997026700355234122330287394708566162636468893108315144634643147077340548208799630508156498763012704882042116211026572473009811179775059590474322467460174174751759862850242397380283867515186153525093161920344722394086004749430966792161231827131629491460247941146644161722952687322255687844829071491520081309617492040674463072229614564150379555126711630990395162849560337710220047211607460057409297080878868278312897713470233872034539879123945650166464733316392059616899606428156552568233027243070845050025306421865697401766982512576612210070628790200440131703124985543020443050824892004422954707122373009164581337997550380371275139131193987130833740372182913067881286597751160129022730135493542352858674799503012880510897839448570443393951268711937982053336599852107944578642465013571973337955771798476761709033194351615230477915977337214142946421004523688926520367057853633188765943599691758642403819981803367028383859131295099785219946252901013759096603030131926034622118737350162873069801879970591678761944539085647212696038277041103926507635865657946949450523995657677480789752269178631348341245360250762342322064006417906480213298066403673981067250178566981565625554546856260168423138531260938418493535401140894794527948197376915732387504559509691358029304815304188018056245306509298792314027258972908168888564526922085089548902203921455252310270150881169387670433472097170685002987089258843034860224130485766388250014716552846631678407691665884116145837630829208178956215774349126745443782380806921095610580546714091487938005687822202219637863917158532632724089841386259899045096158067654791246427131750020445776933877888340456814809188399600750648308903587503411891381225155765513279656615037608410592330080166047838067279559521392969216914449969767621473471397187160795307129883000318328505115403446379086151104353375482420021183873881222658634296366771779031330907704006268044762993605388756461946209737701253892634217148021301266006349383319623957575938451405323700163767554741328798282687257430492609785677972703587683422532950842308852128139338488664424462422646285300736659865742852092464657951783358389058169941136783109503835321186565526849558171320291655275987877803518492718759091502327467286295897960779654158493676904457162273153532362998348949462554762507795511026914662510521537203846352915280408944392411901299705518446795420816468280577771032387109125923424262919957897912074466336189098185513018035345643936981955159586638320463160306164546570373419279717573630916768576444871209486005311602111106541639610145021379720756814583960051223088009413944809501023474515864311148426304933685644381130824903640741715472147376453548222278046401672066407671150141988079411543247755404776641545291271617850749087132027697840625164171898060387523705833316994269523670514978385646279381555749797651488171355091991956001560120619701489130886294479613151956896305573359672136456200510750758029211383820442325649990688247691015683250505351439069251896313187005633871224119437611117625734609232900655911875294971708829749216670172430831141060675468033094026859210812214026390628524214966809880949260098378082915483649408783839724253424439977515177982977835218503235646906823309596187973320513815990559369102657108242869278477296823791872904537320043961753627649638683927900000233600403750202538971797078585245694197552267347281209137796946392316209356863388360589573800653599844102426643864511465881206998427006440328501391051407532343129305655130148873885438784588608477941708153464299370332544809965055086291242915489691068960433801632435161707557300565101038115275555340679425780622361716411856096671600279814489801648648672738616719569182496167545498755428930447037334274628582498257975092932852970873992469782007639268347034769937794455143452319296629246344101460431922731517310360795670338193539680468725886653327169224833967057873726408109832840155455239388028069888309377978786262864902521050715970895252825715297006736812904361926035413918151844659208353852763182743640137829210574485167015837342133867929726661359896341717879008950771484976856321517662956027666384259884460728691635373271092231252684572166452230381871885189707691366703091029752527119281007477663663927073081560272297333802050059808853371153439439539777344483256688667765647809993490978729190440433790385703537289543769896777208400779522091775754791705708280013753546272216489271300341498920687816056834427046028985486622636974087119810300811520172842409141720297879511050740856357568829569620878291834174743942598931741399523833596700673032179240267001595699515976374235042257429316260505482933526956563029726219629443812620975491712058937669343161375895667180507306113138487278467552498462823534548868583838900029937308125726515164797638370106762304475568208469797053606215922396285669546511600539310926658812995078826373744223383110751924905741083144658657221848517787709597654129040312243629673375783866649703393624961388935259184071392177369565711967824125574604864400202487594650344555350296848138293103833527523656858690032623747541750965821673174255090934588572901208719027703158833541422732386523904747154245274617759811243546894281666713316973905016977386110707767145885976026612254416610600711526414033518070475945156719990089268149762857460925651407957899012992643149736922238061176096044856606615187633267119145455813272236262048520375520607809721589129398681783608379922450113676596123752808666671903622751233680772083926660642734049128650713089555941183945333353577877708052276619201797310211342651913154247417616531214821097002494937677570264913936883357974943490884710113272391581349445748110416132462817420805434380328354673266125879488008207448632276064687273135944601873749238244214855512969586589223952933976454594691034479114432265657557766517907478149965762040474222517658652082611712642720829731118840570972530276877329210086830707711531234335487571765476949848292276166893451064208241218246739301017807412420674308538601943728311297331025843625940168838185757775148893110761441992206388900538711205646123950381062522088092637837918152551358748054351884877290323119081441809519121332643419294756122509625236885706764066218506829755399927084062652002396663037734231605928226046519068786946701577584773361586091361311160176880830822971380476594319457577650444897630902853727536900740195345369705458888390223196262387312411766125939005145091199116242589354963514360972189013618290664582546687989452569947115218220725566402107785836675142050295050402421185262286696258577186468846938619093509748826314393391030609622296462000872961976208765811856861870283983709060762130100996188606278674509784610391065785674515909977613128567470367068935015845398112938507054414926753312226014353701711035951931916329525096803799205367815173233317604927144807283074868320761941385671985804887341267937577378259420729743984956153547157895648010444732891791239288651652402111068833942565374758787004715388356610796364894772821813339951615509139524821883853161733609817442549274741138546198985277806774669835978592215739189800187759742252543219527128395117780083873192878213731625468097162006066416539595699924883240787017427794266311187402825359051342251028521370586664851812349042823595217325467785209881848182371269768063921861846801193737864842460855640841027607059271209692547755703537974817978163388666880696304080109763889768864955652072857271488202923358635650030198718949719671420691480198178371769532836188441102649215627726764613405572451963542863857857451401992810260175712334609383017235920261159161158082336786439534209104004768356212960213056786235878119815703832701270654486377135422466160333815037885919363141984997150409817392416397064072079161571667461172462261916060120416407434153722977663880641850579885821793109235219923900686956613458235546563442241001557188550832392251731440101090091286586521265651849797116707077281182583831381461861003429757216421469538260408305275305106291508884851463188871681297964948048222382147833029674956348757983740149015984859170753655875086972103684797068411287214981409737711891902015227184381615406081430459039718095116259445305190915272392597233593178528042541607338282361060913738223884847921519463751424590933823298946089916981072078821206551644204818936572940053519366461684420592344281620130390459965986662453585348726400761972021220573123741437767035877630696116606980344259113724227173980254630514710875058953974272821919147674265793308882654542869599893531278343421628081002412068862204118361472462829400053893161108841454620419569713993529316448181072235723398434076779973513068172821840509969607570255180484475182771291724368636089556984424466128235693180570783256268876523366701093732589652585853473659669965465562185622772294759830879676768984331218210916394851006444738084288961054273531416726912934159346659941991888255658592608019046145132876544123114915958962190516151882460594182103267127444223098033229163840074782910013365360099206378738599113399239598092059212987169024559980802008753290236380734329249438454627127980018919034310887533483737809768967746400707013590773858484818419296356954392517414345393319513737488872675301633893012384727567710039480891118586402725941275037471925390137194075299353469741969311026017169242783296642076558116057523617546374042977528190037087420637454202869690394841725786365948222638407073086514847989733427116743082391563153793044816606135083516961662207500833021136239157871358077813566993019440760745637424675940249802468696497623561611080033777031764450565929636573505225826803763582085432015889615248553304160124032577729447745764198584374992547363094672628140579954443256827173149033322710072240400554474320688231554906617094427681890395366025206317486993247640850444142844648726727973317979497825468401053785319820644866875215186894077923317877524786407894112764141686727640343224240125264788041403604116388052141153118647854218662675642462792776655007520597834694238428922324469751494112881470091352313673134237603440085161867582699427154864541297686792030616180442000028982238044391007226102674026031485342347056449724365645255793815395859319049879609688926643466276628014813997742123505611918697571440221649431203251802897459733587464104028689716880960259809693335004575359855364032038366513503134229878628015451275461645733292989643878019721018068715062028848409562461274887791654378632697369602000584746601462103922331230997796336042463032317037054779351304456289276311162981273727879021762771864614181593360297699607767669275046956974533729761196945677510166535970688411174055268320258989254781198685511751363045513169757844358233614144096360001881975505929100069602973802347842479043516397470925843609430534376179054373104610503151892254924320996092630060660854537224773035957179676707675875001364676451568709977389776048360070079148586360959050764030122574840223557173631016269733265471606240744881430214779099517487649083031695082810129460394721621077471539455491337100023846071506846270760460692011294407039404012650806005714967055004858077538858485936386638982233686480165358908431558672071165676907841150941130359913515133464384067458904049016845683329718045543325794252374392332131465968833873784450928724421644451574790009151400356884803530869760389520133430070279413595360861264680543693965514324938123026150248260762463083064619625831789189050755386256097353004337866413693212116646021791978902963560876551494988827606773778552878181432627490774218860403744204740033873798238687372508151511549658567113317202641823555311196252805169906179735283379424442471614417493323734528404351427281386909228889046909543092299543798296302866430616463046942335773483344848511519648230622726361589470208195154480027251821660069571800004933152998404281024100196006513897079569851746105756833695934252896677617766831059349213422713488299026509407597665285677788032398110999012067457861533062113098479001798284173540487357669025214287228442482421975335590985021109860228405655166017647900868497836497503235497384029893764415488464191752301139755298884920017428650069493442444946583224842155619913126130131306428159079575709674072100137244730332070503085679398856389927368842805660083614807073971312713924404201540224159122028210390945454828966126626509274770153773998534720518322520007040385512493350543965223503879127482004483312398572404249441364958920245979753822599745823677668041492237192108648495886985462591850175097829943585950057025304444469358932455958069903118199932438090966522773635522273693044942204630338681589918493910569010443511997243620936639298362668121283590484028491795203047633539603475190733361960810716764030942478569555755881791557704418124210358978090464916769362207563693428478338684430645699999532574279546638807079625989123601636772106347396837704527506383130964590619930045682685673708735880821503428605971058338290290759092034498766629796821393484697600274748589358444759800498555279902053145125539520351459001638981605053159405460228892901743234074240869548640918974678941202422008885016858054638662382328391337388009628591463357297755986235024945028206007292770255959455870741940503821224533191328783559496338760637878421679349656308063892279022085658341629544292283797775745173710173753127290521605111023028980598681346682999855800661782694552757359622041997101573852710743170280221860345081146123911479034119370794040485494661028156828227850630231976646251244124957109457743474705100430848911941983048389376439767265490074694244689070358669127861783484101034231693455894736398247116669113236434337268315927385701474282660090663152936328530743435041248441561978328793545199438511422959019918756825018489535032812101793465774916213802101227806099650401442707658688822576543561649227708199252550273656219665599912265489253491195067311405092102845502050145749604753951480395508743622312377073311866126883146534724711192902356771150779315282744163182730078830691767908547602972406067704778055573830922709433588519135099259183620687670094295163307329467076181823001813479678815104662132560427369898794554483466390591456030308911939222433185619884331318152772572440711664818533571721435183618580241106017956415422738247080612454183973597546489841864475731938033288530037282152649070403255214041791244659368290684561743852634598137889533826584480087697907408869825211021390328701443212974093275805124279194950186756511014812660342093942032660428452236965833408463597798016702318799788161637597169948512786057153918444366011701066529271867725662475263416573407954757620665501010332121242823331993662721111545067170225114097633207770029284810507426584030439750968181008433176574054106798275656864813881513486189601782767173243149024875947409325049268262569861361936718847560231134612460021739357603231815290969807983904362916814232447024711683158962131026170678775439590200884621138293567871917394211080152270379427841142439783239402738267784428120810698512021392275688719086398736933908773132971965294451927421201797904540676312539300420362296637417013954418578796538666944923447816681525935450441593504951204043323377259351660270331285210554470098125569296469347301703328049580919415313809617510307112378303979886706153516206896642176500744358107506486646249690514117856485408635203758510035683355978042125953481846696790900726231960708878185691238828767505077283441209672864813618437853648354144189969902317326186304166670543221433977011967896787127501204786166760305893812038811115986365066047928111363567190001839546141055215518951408058568336018156630787906385941452256366352374098660811334590199283114881973901000840011850898835690397099664730133103592096669080063917616880086250119451247405266704816018008901161170214789115544692968532216127656515005280077497439405082349219057958338045311892587515890535960207448250869054043691261095394251410338923019842682568324107208662904170062946114254229988917091635362340741725632380018928769186748011972205088409228523208286117320625509115999811028960799957977257692134998169377630051154443509809347250729182700211610835523845122553338467075690516836018654038398534438665748487871304089350897184721489349498637396018142931223916262671173774859977252879770606060765266791331421935775067617379235337282484375285499163889769250886824818035272273730975375442796567799769059771140003354497585694168616902363453135083233282235248303347297145231129730128031349650198599389848245823739212692734970742742820225473584306801711320093521548404047199436317102138373890585664936250989351976690216283946041923849335154466576633638211369941056038962110375141769725651975785815128207890685749808934457125978591389723830691475449867830142609864059772039093047788251948193528296796790799406892854290914938168825722747388894784743481000693352605613204109336564288257382355231875863073164951914271399093452344260559442593264170184672816518249129565532520896517236377520418517245012359012736512394204954251739284579477122598941182461627034745877713467819354333058079513723601114245759679121787061111454257195933260334624486560309986043084674459993285441491531233129568207172505756460338594370804773718921002117698238489630488594027008516074341861981899391500842262733959152494855660894176659419922620494498613666528562588667305892311719614318227022374219065579369340171707987702435047599848170055321521633423543250985429218408939581724183352922360872610601104141524117278254013229174909901289716351218049085849053989560327235861513152915742567351240258073720124570859227380291809830847886477499921544757231733958968619818871500251672182463761133437049038593958305399378896539175840176664950072960650470026739837368800648129088930451978077711341541369974328589675796888546122394689918997926805967185084376314962360210979046888635165355438692905977105796015515062559307296141278912353587994228233255998939656297233332152466792501019990455499768104518952806875480923502128365912679731186590309923406081768695818909935552873748032977186889958766484575601707130518535391528067422957546068045523320023244126172657640898756725282020423967653533217597123458645334965646169351129929261756903054933560442763199320947431342054942973442737019056606553478804630757960939273268779315690613446478073112245868108250879447546208128121768693998930178301792425922051354691119107391850460968191062793741256967568451306940944341316229395414965591226618561577984671692261924997336666663107812036011721714957914045729705170875816335857371327176242056938106114158285454652779447976770238201226652420262539808045316218452029631137925870996206575985588029673432633636740540794750346131956568791353093915321632084249551235584340562151427524274456033071276020743558687742657341491387094335603347749135948331718706080092145833776438316564422260968627838509563242485492971997719401141038877495910674416389243513388892616095541133720565658471959384116577377621615558893776029396442871481618758328261100358593506409205455823265242170317645548931774471326953275714966567004537523388123621271567942662295819673194555496988297379029951742014124181021343695496312766703163034004349261650182931052567224869512873310605839529992901844724288688983390463681203007553298547099413477194093317007845312379748059618886386166886442922017888540913579148601295223425260641457236246307965972400387419129924292582672236920204642750553189816491977382589500571379056210035342955650140550485519641209770898424223760979364121043156457933597246548435707420000400499457366247655265030941762672444127313850057085985126489994584989599301507405895550438853758718399495609895052903207118384354233190136513077072699634472932844348052896174241703200997789456139031880140837932188803425394517263626791115693306043962387044658810863076041003911948385621761142050415810287240287185471547011387352973289053557997094113314769198676822711844255995146265935326035509506887792372819669399977932948531095241931372701057033502353154118923843940598752797847954829245467867004164889529873791248674143199872361698404972363196047381189758033567902308990694427072342229302719691625837411301140718382355524284129718103593198833317781197239422381093949060006125377360315787984371458204568375138011182868767784838247052498209890066545805329582040541499424020513679647216473805721752954798998346159694495985285331597496159603270995356200238639945699242226864321061332173016055364554200660470721485713395942560690070499319421043347445666165882198829406770026603485335370056178132287639015656379927497816630429035964643056156305318617656511567669111881702906873850058912774519150938362276812455924359100613844286177240808611403162147572178094955177428173748018713508384531755452256184936862929399787757792482955262701037776982268159241193135006066789342386086150673288232803285480590515991871070120286019550952261716321622217059173507229192380763058022100949872292463779302025979347180755654316565895769979744641233583614447776974398916033073925378339331804079984050815129526443870623536005216266490096691481787739043677052110494171340485557751034743093332928175309552157228736254462025639367936536187496553268740936873327027187131957849290207256942429261697199625100037221843660744270702152075405616254532275679485235575832763900420120364908782392313661340324132347347035762080008936465548282437580513435212161026603626019130586061769601126821966482618830246168299677625099300218068054834843627624336619537151373583907653056632330095195566267208838522699441414663233260500400773922413757988631736202496745587368816640708917344337813159813423715024623050060792702715707344079724961045605628130060748401224831101500095434356570665528310281441795709732422237383471992439110970267961370674930531501875157292197907119567862905580330845283065476088806475932206434452032426800267094558585920840936277341696862719955603375615723045296220447479889526104456981529619645326303997838855381557805528916844510587127440210081255529694861488179484621834842536187832799293926094682774593067026500454856707010075550368254576783217130724233399583362755495740480735103974410362891361755385213893007708320793402259405499147764819665652417413886419469553066582857785233461615384636647032836787458343515166955708134397615337045587919550761455846718611889427496125458655458584712830774975290376728483451526588707413123527977426039404889721314999422427925415674264237134654937222716156801318689704370779388570599303082727812561731324924774184369339771532187261982256693519100027142257966815569441980494569667867849555781793086711027452552206757794387743877578473306786290726792917547771871063314022858260491325010851829975730105306349755167590927494212944240411056399516824967975279106689054230728421474162240501962810755593173606291782259607755061349841492488691261142362036802321634521361793565321777598556759466623103913915416443584386900463111683055322286838433034676590832445616916202357257829692008411359248971816893954813262250806209827476755809852576150902149179850766679255527410869401675913004157898063113678968002775523431408253020309915160103222082912017310480199304408046876396990436160258189757322599308564322034411842735202856004848082302108272743071267222710468464921744249553567927806405967364819078754859768108380928199089455681693076707351118894743782709999337607868098695112494260584241855240811579549575556248793032729616477346998154482439469329089513288246163380172463791662465413124933273565580528330122951652214985276071835658830610252543441407503259823982368781044811714417960664177576233646684621646014975241669893225010135579428799004415019438213689884861897411176524810398655213293222035820162440501797779468567062952560119347100786928131532090460260558513660361853615483427670669078981631078570692855809239310475590395616037454149881585039333342123172480848743138966224482855313707352463000014227774211894671866212850645950564237554287060430117431824422066868927808880620323597533306856560188060055370853949919956268833013630568312422933450039963922022362641204212490973306421637493444941994740354521534423320053698278913372875435213520589283604394036897330319094342241364184110573140756717384131804808078311811849895074276076018265741916019328612468628289465804434864883140078201191161426404608685601882612796935791096672272271489273693533701802873417710300213215288569531187174380500241663970143662437910390731264617208546507328324008310404173961547550186312759555618351634064837021082502602166915730820919980203116618314150131313392432954007509375906975730617549523030340373514099467659608366554667683969626971970470456053432102548643611733640568377024356436786581422240012514262839802549387395821604242029444083136235302032407057946038934250986351944886073658325914861813007020584778031623223453965706102589302576709386264980405289000944241222202494186182230967696903819751153066149719894583881421541451535707625059655380940349188433564320422117970449525807327625651690668632306718981854142508484178785209894012845246926664889857993861964129329020907262612119788281323903732528934078236872154974112583833113423024544284514273685852556433512589579480069251515559124324869171383220985254313258915177492389502796733558144341585881758986287275777495449465757900126902008173832811064413500654227216199764450203896846698868815137457008298305950408804023561965996815532803548736528042918185547338507460616139486366416122317535817557479014066103662161348792231010817595130276572745457849545846566205020649632418069432483424699237580586321208512748972781231835308052312223498522424848566318978900482015127901009539432960734432681534039771939709364700452971758715659242372975235471243484498448906689946289591915192321168194061816854003491800320516567259846810265024519031304384441413530185620772015979743231460796763010910277646028684682501172589623212083468976897877442437964702890701420502364996019262477886965382201212294407052323179015515391861167728025662798317917922026285901059841427347569857256126662194837715834818111536943067692404367422148498354746326123203274638629996346002469870449288370208371064215140571873054888534186420209686985794987193040039594807575856684548093533718852485087456416160194461512065034379695018953385800610680275064945580231936642925304576567937076652695276420075600277021141887492224868365992858127599305338564802120355086528340982378216195203484401049115261608236196422186949467809770925574176083840350545788829433382193068323054682657196353941305840739304035938384602381010093198146636941640343678872547944916872181444278682039793484204974061806817768166487271112551614627793066129432511507393837861215120563870652969235481560169419191744287128219922028569422324706796211615325394077928176180713499154099504260849523235863009761653268694639914268437956166341978456649508660865631429772128487056515706109832438161787683214430960876953505617889768097746114413558356608089339078940630944882082510122508450640269542952530082867327055415851731452344895214325871380139814477848066920530778444410415594422047128562944955858894676648440604784463801170241093745508007775402001651622048259781004325386794561553260546880114784704590269367326464301163648114702039943727925147318706465738949238996656996332732886061651994219221173106409100363587290067004174549943245152511369058521145342638892479712028020485776012679284169218514360613828379316104595154557927349404284907761264077388071452136617737450152153307155179891231030623240408757127073525542932823728951253322705639645724054930888739554006055958960322737065271391096601611265985374837632995995608780591565113904893250992531095687426701169431390343451151918546895660375296889876346061345316906960747326154625842402887124383105341129445193126051080149083253220078862947411601710121627081753469755497369403530369354236895687824577238085256167053436549584206843624143126879757276704273108959551066989886986316102214710626728278690569006866548695365279311449495412478319422811529221031924641616155566065360814511263581243914621262454594597164096127064590264077072281759745812231715629099607493186832103765019483790949940146674101189531304649119293502846199108874094337598765324430965565823099920114756007616302574812594238219041987259591448384843140138943631305504056507572727477779664904402261558891059344645118172191940206542213114549091285219360155852285859267771764145619888121240576903272633249974553613486163939924977241352045797325716529824442254093210973827441951926310103582480416030633493264611189778680709643019032479511359739976038474477161911974782596222336367100662113967848461493691074481733283813139826708463574488547333488941026632699195559098654579386708573032195286140922661408688223557704922001799533694543221579290832359453335991805362394110985507939298842340098052245268395990067830025996413221073883358652869560858111286020155438861620652518094630461137046923463843124723946237239930138262864179510551741567506592432869704032939981606790766610699064560610363046088371521711338593994619009982625360671922938986921830489481042504270362769308611012760796277288589040327887545254129709519540023414802829770228464004890363829767552147497440972676347407741885331743590801718969737081627227120462706513632683274912221990684151275381687770614862498768612494004073176433293906952646998184656230454941613010311669807559049635573062295862457539177027142955282092766711943372224956126830181695427770469887921677835224524421429137656751910580064978851735473791642819961781662116022321233188296230985652294559675479477582130046622516609558871756937121825294460818731179771291401068835768173134714303238005136351932027136021360917419075260005766719982500544686690659254870807588627406113772898057861415994318625575390200935146941987474710694066504262292440463109643518523806019041107666939582354114113803361264310599686325202224335234999995353868994531613761710896102229580070100994435428444049074299314221265431655730745369429672291702672266380863687432243691656551831228089802325825497981459236464054935245069074408922012704584370191132716249558018049954929222196568325191860878826837325637402850047513653968102573218829914626273843115814974151057355198163062175407414933085319361204696809035146179849462560998616312495000526452511352758718428202467546424081942736332861340936623697191343440310398179797518727183919735355611185932134330267407473249335800335569200181041956765134150714752139321445305655643245811558724364747093779505227755415624612939329494976702055869404639453703543349049929046286069271928320135124023541520878609514048294038653653759632109033109368745099559072585643156596104873756671988481297625226066647639327584031901010495163098620619619636080757087728918201963384334537043663320246858684062931318905993340034828148356367645931936598494766162118187007268018136854439651035800325100800478167549509141683633507657727675287953695811788013715441812550764652469900865631526449355010543059714546020359053738307184996296405167384655395843551006450349684863079846266045167171093464591675277834022643852659822846225041568525129005219040230634193335742873432436883516717715743251541222784203029471177738762798931952774357081279223138853734841581996271261201313383660701678734467290676584757261286157295292803662842721761047855444032241006310968368422695298086357353745134995695890029784462662426235755600014374703519341484603277433500063997623506781214428641131078577836120028761655760936813639713264866799941293647841526254779333715671813640493982362770086499681662103641111956903325671796249449982003617954129674037899113135373692288239466100636189451701067769543616490570422010222222138001964151020807401773185117385529193358906364312598505159267443621666299132709391024516126345033645710144590093713741666455893962883120172662057640126542415649045865956824389309136173481031216947616126020819343927072377088396283285996285146401142607355931457098970200802860530171410876162931800898726563431392754608975236482256301073550228246959790141596025608036766989095173440415052408641073870758569804270663941256795887084019890307497626441116848720207488667076753579209008953547954857461035119453589158412703626123273824155926462980493351576890854333904479792786529603156771299209333148109338360948157176240616299403161021274998803765703228605181546323926996152324115412759113372165334543109492093791382348159463873939667694206411364912521512184537752630151876638519323649001508742367777293087129823994811597411490829006047927627441273100813373942039508184634488322249553428938823828780966647765941185237560023670384408730678616602144626082443532474149219999387537862930789204289949739737401581775221893438281065832600189071060266442643088769822363140561850307935882529700505843309723120829721941302936485909225562628149492870871872811993449415211741906043773888377208317790379293520311905893437739767509429137672626311322465859282398303533008349909098704246929987396818394845394043056045469406513673931090755112321554433050389215407799256134676125039307561140319253304473260859439769844282312917649229390360742736774436359605785263816498314033788150768872208776845966218202102064347309473194189422678631921598774113329477609221247462595582481303398860979058518105604621311679027699390132929372980658003569642516638714321348453185885676849141484463486041101998338140876548433717018439058396058630514674192189057791654282475153532662939422561073779945641288278907639925282649951695990122592397178240238189600937334147448454333854535113536933648911065146485267229507540848471417942392794702912546501370143663561108954469871217113086832481119312221245818182968689878242985905096035837831634410731732290002599988901003874944047241185284793986173375659457278659706443641318573377906366625466096032636358360421319069874884805254483648168217564719508042198239093039499084893866966728138626883962663686159152620170704116146918135233166707756133336809329900053141952188155458290093137248169747842570833956146912756521286535103145890208396403781540537564242462002350584393520462605431780112157738471920868855535438817588422205683487879677432300217613131816473130674826146739718834793273704213161082737005624132081126299023954769229735216890450446200211178599729652094568617600760195766190066385006192168582010888383804599571209994108982358257187001825100048800569299970387850918515112466581517052991117518114134923864543484612755032319844619548749460179092358257882278151432639993443642926071535322069421905608951791105185598332176497718379516996803945550827000084873779208434002934047524706503276634274132348731262640345427114697548347934057091727766817827858834822050528587805502009178500776795908848050782268075628594751048692357469674974938594872503241441235375570813095379249642849340375190566928513116960195230945412968213618818383880272419455810603066085841052210779595994398694558212358170720205268440674968414852155462894181943261408581027666378118432702347146970168300758824597344302120910735145468358549531192045261022746699773415840258047428518886549134875129450396749510646591128799959706104766858508211618261218901253318662509643339360361524865316394628835896157167669280143831690508151479491324523366638188922680464915246809311537790340440181095274316329600004810882854014725193353996573244883712739823628086671142521512584488295795599095185590415563723265921233686503080440548194465159425700177157878378453555788778337034878022873022503293725775133155351733527207371983110658520300874006232673989295187597766649551734887574370355621609919672999051982158417049301489898558132557058578911404111603543857138106115549210930897439404750876373170202285484106428267069416657330059816848191560185353442732753014330941301580038657464541528769039014841507593596730199537752516860975654124948027431977679954428021953873792878928525468472735887561584063580525358933676052942643738606190547977442476700166715768144459213920954361010379976697059432382000424918734144254786623616119590072353281795709289331448816262873249915642352193358573318139826702463326231896177033212294468881814836674924903271007672944344015710625220182606963276864527416947749367989681017983120461619552391366147789065950614342228672590917966540531684895511716511137338959462153997275212295655220929193981601349568597375879804827040835322522723968141090126185246864477819968634655202168910485291712344868475012504065824894645602376858784333039704447740040989628013735574978240288365390037748651296782429543849048387865398945404711304272294848153895152389675192549447488216661476601573763306456574179127092154476218718847530344109197858244629370964197044090137624679966971878019050191116048806129885488822310662953029179756162335297819244788032207577911613785666184698457173025444702400673526452732459036193258535511156068440706060704655882431292204873933532681432739380605705921174062615868249252745546648366112432425103762104963314183961588085663832002630344001196200067769608979521136528523808580842642070893511941491898440247562115463080345620328288537364816534413272312999150596272241212408777237750872812633040385562392540718118431203994561462753636622430668529953338341649884646368696218002222858869746710093508466571895429371303081511183686047661833811111070723636580212841675562407761570829075646252241405202788737127814653344205808952261138542371787359766070031002512058285134260797782465434583276839853521579849122152763425721560207836318730184664999621156491375208714518178524793163407204506466374141436163894401590579837603641232816525140078376809328718417152235254832503006115990761733331863061277630297531420880819951879877542694032926295823415790958695660792566653230562190671752104344198397371769562666276783524575616769259963504634576728363994626737493533143087311593406459231373885392438151618707228582576728534236827953301510608630230884326989779410924748839738723597576192696561246334320905942468460986867822450459582758341261017224085060547492932751669919564958453799437983834035163206363432280939406724644920362531575849198202632671031508651297325861698777172161679002883255647679946029445435163864818728909934757859397728793658155182162872109562348274373885126063112737341832621952435726756241725898166008029058755171139084208469005236671310630564325819766377194022971246679976987910300146714207200711755547761710934027237858213970451054811202276804525219489853925076150920645982500316177974214411304430249639839824380719952201963713131890728507468243612178438357319670829275733903454342161287067751913480966322965284612653665512109735782876282771009520716890089203418218022742608209281673955187502707252451491702915582775828109181116856449408701115171861916847508306990845322844523195749425853192067150465611428988716002076170998271277925850777971446046916275152820852486512532811146241171491088093030415136583720597858648238206453241968168076975351452202542089192055992822970443737116035000125756268737293755946986257444732690650784825807008309567938607602851873113956829854041732801818066576837276420130708831563858689747189587318690120122911251472127996914554523300612259056490491592054131476909616616984487849651558897779867928090078220206510060607499896140476787521309961435517743599672160151967206746047979582348704147960667555419330641848040357237977915044309002490748927608834370303267812661783364328354125603575493600381004623492905647713093703915322571813929513855147841403939348330652634025462157386685276040630642731801605214332104185874776015114718127121287267179880856882517323052172836288193875785045017604449234570487305315603014524753239788971291580183486574709295394554710743491248783337517826328375799079367668136293237509742779854364250489155371648513847879853432774153991038833880260007669325164076636761516752124183005471062494999217629102634694117502832907773203206142792789516840024503873120220457996747167156652321215698904323004592682257406032841452665211509303329282324204083651339401361339951128582436603252367530501060559722712766239224709142951320765697157703961723465979209875392771197555271431223133437671576254832352659014981326246804865927805159472920843730500323829018622611807101907823920733443488427876368934562597637527363660843179927741873479072112091507632026163238515390630299275303429067451223720086319397334367089036744664687993633236965721323920927339679211072237357519883932114734449034346347645215117243630453431954283445812435293425122373097608983905257970523365323855722599790015211024701197164822105058626726304597113986444671553716731551046282409068082442717466267768539165130903640873415338521374737095981400248449467028427520177258967204299069942841199525704094550256503061904265531330864470088540625295277859536296530126198674636031430768948149367397730668505253339890292012559808435029241386756240372752038290895168922331157164342973612778193912764871387076707854627983809397065947181968611356504803095301747727953828511842894904495985725498379459683914438134163688980243506665909369585479331352172886723091668628584670322195292686860248350822589889052318806212296367816812476550644550022548200318855077869146635980061098144860938797798785956282935847289552474713912930695289715169883920169605347458004467886693115900753126620686624848075090678993500327692852169962531697366437635304467724232238317460992290243067071107508167369092000658823554236245552248939710324119412873395994198467300986758557823022765463143827909403546423878348288744083761472933949257663932589577460951530083588635394502721466297318594812352597596645580163035519748000607175718580774370492697799087487639015616504491290804151090439331809518872674209746799812983666116006967050218582508680530896976993284804367139845682915670467703696635824769265747828602301896402449471354478028174707624098697425280859773635164598257716181578770600496394725813773104838266997010824048440979171244114412576874059751734150655649626258945909399027088708487914375121451263692819447159157328613716378388440595604114492611387813054125724019854125999043304852852286998097305135930503680060444591137474538594692123455333788707949566114379261039623827207553110964418329001210243257417699532693548129537740388441638899042755389528575897680734952305579924260055768249816085554456443724763551357925292069691520450698769833379331709800095006315667090952594668542156000007605143501406489714579529866499493807505130594871607288027077203940916112341381439816952675195664559887221328243171376079652348395870267887601136504497200157741962848559641308260725732766785577211892930695817520395179988409644180494920531808804594408091335817278895348909544686381894262231264141318225038464212418483481622570651622205509510114525855763400018042759928224922505936092701725417850356252858853579273318077398908169729455914335259866880594111915289357742625468134066818748227038980600846150459892927659582094457830526411890087323068204236811705507118020272772037665886742270501063206071358222174128963271928893973209516537931953823452058437510149965753943303782120651174104218477261419246196792704566103598388985742018141687391845750754993347497156671300208923824446324543370452888395250674319247286939018028287535304434876801732291742919940584657144008830518949355916599710937917598150162051865670923961540081518633506978867004861721621096743263423206907202669812099975843555632246917822146291667954457708334681450108215402977520841111565272711568781386295289413445739116667586944590607328137762118283690353499588750971339829617331583004116880396264855630688588932817103178832619290319291926996298148620066637404101200355683183964362658374092957408679442199074349115317318594280558355249484240308070841402370475252562531524034012452279277815772896619776361563955211663894002127767372825721879456635186309746969876697782183568826442070488831038337885757171253779766480012650596531899918623274590162933025508602006349725634734118205949625182455863387590114330069774912760903759167125754496592926892090594522449293552328505354748800074843454758591792033937657625914539738624600778680314668662200488888595117969862843328272982252862329958569886857220351412544255087684082600082818288822203912799737669325250203796632025313488065818434164768672672217082949534583792180805097019026535737669301134682551141090713755345291107443717258420068915609933891784571410675804484008296666254673508845702384046156334012469978735691652185662632250814453903998624852844577273557103262481609405220667577590939852233461189206981210138924013870365346236964100581287661584694121803666778859898902187180949926120196379789372090494414858574874137505126098127734400947007184913394965294613187360799975756710359216523411516957836635904676040290076972048211946791432150251676382933099040676866820025089753470803050947799027841633602149429394720484799945464598179723397949282387527340192996352543749625774206185144797393183911781138368786301121059925275089181215856336104836671499889238981863805951764388331960728687151786432849710304312454103742859982199182555944133707137614548757096973756763271112732605881901040783359984513909604362641510181964295476488608708797706100151726086729869536988266427338268064096368590346300251752218433315232781288538212983234303472058028364960017542589000652190006460699060962893348371565514316011571588930395111130825800478553575308174631956686582213518174286298880907861832138672370700962179095184386251647742105604244742469129906183554628384031299613232154313230337612315059278560919079012668535923805211298483066433031854486227523692236425434011579327975816205738859876161064035119686744136715200936647897171190324369701763031838620105377192137941449036588905411582960866074417190002761043304978618693612339761552516286328255344479692568137456524150781058974005761744588799487774549811663109412347335601969827915104451936077672839687313863530292901189447802668674753371726900906563355811359611965885303858638695910731787179185817574829258779713524487009979496646431512885536303180604244194288084621460590194169604886922347134949787552577969540402763332526458246673618376118453347079796177697020486953969013417777757304797157922683439015399790018618882376587308564791057301643673134714331459519174015348599433286256084362702565218687728945032981549494326136149267248058409184796356883800746888270514464800596026376215939490443594270251971198266887091541770350197446514226395556895771917947466661738512520515318067690807179993077249821834881977702039110453752471955135805770121444551294337902379395959394530224465788637775631161432537802029271449262395209914970231883009444708524954177563878874001843462236092709354503887997859857897465320868388086689283511476605321426459766820404884159267628495143388615490605938805580230616092178018820373316885732011961018377633369720606576903012914343802645304812174600741376054561113554019370674766969141473198469821704361228985652808800295459318475439846022869242118071002591255809801445628285229334429849159688149635387189760897635116723049582147975671913822619859443784802093313215982094222407458028748610972884575437533612722481990903069184808704814491390992978477294014028656476589906382357116085808005546112699733695586792647132671106429516577861168703685954454103007054974184386901331080300656099564860578146569293505694059890754106948040555222534134691024421825952270369354368985159562546056317929021438062321344702339328375151898188850768901485344891170661600042969121817790096532488909248520430119178621997286806708151187434977527079560365804323250290190973399497910666396933590989673928193883776597606747949910352063071912689598740002796968487762700034363147140441919484448048978644128171951276868175160904178938819559935870115669149120053668738657290915827909960405621268106255666744692773130099597157789640171606439517743122423495598989621211639436620950549815152323175629173717781582726080522236879157658502299547489888914160846337259858492454405580766792057083084168212874365811754638055560552370089778880439675874381648209698800943297516195344198602744127259038653553718120456815451557127511363891058354986474385838886368986876928581137216338000183113194623884323501577680269877011542178654604262338408845347859114645643853168523380535677749457766296716541577106275373623726026905458232676172690069148723221276321847176259019272973373579205274216402034875449640491717072082368506134020048282475822472371641328498204884626378045042553114131852227669297712367664300188726249413053474865974177222487203128310511407281463235259584928584476407055937474719923599733813061089103867765957281467743931848895051766552513826210423116206941146511066986340306810062893435185351332055947841458268144272642012372410605292807066865066123493213957207942232534209620188242472614338567414270113039847938361591501263857167037786319465866976590441375876761291478913463703875223213775091563238369595403429217337991339702090909536188549856615430015402595146080571082858284272228044219328635577170185555063491294910728013257485955973264635558885009420611006040228641271832508872153288515854064419603869800083423837998277671358765550392217351568407705813280898279366130321975317538816587092545220432781357231164397922933880572178374450555001293097112139871677018285745857654688640561850102314171012597337210035591214417993831396613449147308592980618330283347216066369588790258391434036097388275419665155444373740131300249310654574025195551688852292991893004426847505385434951569748953893529699744367275367822465701947755947332953645746175039001799145299231532376753426432396308241052126534455762662251481208999729138073564419377567016603574087234865689047338007161920151708226212998859654058897561975128417469156211860325540119894692509501242606203681801019564329817387058765908373140467336195867879723447833466140466820253857988068533667789354554195553145133730428313199925028438081510644776768516585367654311401604178544182235581684108416941092380285569033453490305637760193578736408732185975873189103005897723840473207798054390992060104129487588006075702144237240098391432377783976736450301817228847706134067723950950176053736744205977931816040566607867841940710454947987603393629064862574310541621855406815078553766349869188638534249206070770493215139071966478297987504084163776383197606969425888095481802096264732682555661091781561192014639412238563373978462433897894171395508275949274269636732660495787452496649823023424497438735750324161089896588617439164513665810655528724350634891173212749390048261544432912250751066768422766847625111732398244740394429433960393137298469233329217352580555499979536228662183522247803710059071639232601822630342664864044107812320323105418934065996576859394201468337490990772277116467818606644149125609114498522872682535724038069013505924320364181220143920512004247802717377853428479170459497119038655798953626882117459937609057983066178633885035013976358269851326769413600817224827203580302012711344290911242914812066235693361415180109865423877983465298064009267101427865821079810797829766594889182900784529804897136516976973489703284702081041832496605102882355011733231170308107908922066513511093253625175185667677626637777978902498835599492701365741086384151717910137535927045692865727356495091568029808980289914342150359297907896307531212490800740506559046175038500004240362651437017653574894413419494354757115702230016317356378386114342224107783983561778644556283280130051294499998398669434490549122064070577383745820577232891751813050633136669981766851257426972331418306549112261083299413091306450411342230519633086417086303672657870647986906588901104525802605223897713194697315100956045328156082687382362207341829525453157388272377124882463945844902546811589417097068795188759962744722593141566065530459077905588290370939482313126125321219891633347538874898601125930988726722564644023088262412802020445870802198545758970624898439274910234422441651698615998257984652309622007427789909286105943852041521873453889260655218158463372344287207863482870391555253494082739967498855334028993342358037351914923714186333770647947373760103148478437308537737337390407230945885199274949009480339997065359292270736073549526380526746829312554299463965083346747834844997781685963349701400272856570509990233868960799696310584980780874246896228599384874532805692284087462320894780610795054684108125185002212072733092647443298698078490475878355401575439641147989339259799238228083602934691586927020504223447532379527312402982087798498880327515291805131351693431368147869189265355004570731289745810028134823728810621657573691240486082981514720371849198937810233157622983220982508439159902237953427410785422049930936054328091538056031225896708542008650240828202875803736145697210184924784562367966868731208394276105335434972634287212681846552023155740239484339578351627904359166799545861916328933639276581266601476005672986055067265620313166372849089802218995513542481312391935266132597960307740765758597238813504995628881548967027985442500003110016429205901362653007790744568559744876931773617510899454551645360721752549950594841935533297316408614284501113249102480350426498959203584277209101308037833226799609170739237505883334354461923701558692077689663532788642988978237628697426018293421066062179374747712931699400686759071161691520173883876931471384466514570425894031382266686700181870870064693580307753322100569952165985453482458051936953963650617584048135329036760200006830759256212607353059160394967684435408428408622890745557328358101591583583436907638552079886828792977155439714546728640908571521475538676103124109300990564395585209085582450701112023591588379531052794252604606109901510949016550711415483767428197657159478284431751235796076302436941977051501207950513890524636791985415126035460591375873587857587697267300027059858812895402061319938928229769332070601266957325295537896423632313406835099645473703513158971118887483637469530099405630210637601514604886187689605629130831152469235507127743178387800882004384013394469912608190824134561310607535760252109494284771619218420264079037547837343106012527669015365390760310777805986110753827424546098986586276796184645850555578868041738204490126452767695723600807246012395074523816698052140042088787655376895352791532234019150697786997208777282247892325073346645434485720848774479399730032917213547476623926735844453592629307232778558409681600369308524614803030892646496339577170684528972277789277429886323335006722331063841477494594955688434750406230665714168522320936001651962143392008616526779234615607282468191825910208037617579177217980302604613406289858966623696015992804171814790177698445619968939372701082581273230248488821924992049117408941964777564010357154228206869519227544381622453460036393695179243629172680302211338033278603893073404827282418036939280674767112441913591436827656740015302122640788412277760683897310334043244943550435728556357314299806551029868349521463455811664312900153174134626034478542360501079592744380258621595476576896277724670305613616996799649179769174427645666654067789087526527411234692293737710500944092558704464858783410230584189242759053375715246521444459811012934199611491806176079399952067975944326053955136207653862668803493427535103909603026924919389394494725906780296577454022940079725432934859468825070624101430971414164479880575583808972842038265422585363273493859734574344154051654409451000278358234815094669585439752882891276649831790383785762662658615432824852557198189708719277341639018080474374414325800680485091200426406775661921089813350423760192551180083594093409957584952240994425854979678887490452917659718648006878238991011601748410822228605880873503440348889448479884634173739592248073256016050081948712663490720655286874669175373569317801026208343746580415101307564610666880126970579753797570277396557942095447357150141909664029323505469418656353180757782059231086459681089754816191875270625452165581596173008169635799110881956594864006995591582674100464084526262669984970740999840386118432105459587679935243914012820949014787962491684631361006987044533810400263681184378080183986910067273494985050900884563809149357652176161886312327673393623283022042121760919453112270346168596888483725176271577605403213617144328977314700287391094667820798481249597052813384721534713315297187873796534323471781355841383860381303188676583219444286829510273181327278616230004087326407620025445689843756888786130709387455162304615690577390020432523557848380813136660568067830653172858366633224649667963996767023878275775088226472577767934534342163770233229633385624022454150850300925384244925349338659174962201874637188732374537559154465589560822093380309874219393941853252552312199332723754961799330056945091175090240628480892598861988511103604969247128977178316138891346164035244936330551305112800217077137376982319430260037844530316977167383666734991901105091593560625173241091675573096938165000481025526226633178626607316744976107434881146606668644562695218903762428763362704327365210795006470566357483868534212144520460967024726813190279948153544439746824531929357562047495225422975335786243167681926680790533580422549259099626337958663743256253989942151019271106861017447981127983253816700382512861401292441229525250914079122843142559908023245883974616474370144613721372948931151144553542765480947423306149889872795593911904201129642752026716181133994015116657241696223208618150081701143251549505494064005757189464180767302922311175976511794978619982550944962073912034661889907900523925351890590335210188039758035318143000690251583109737345265399382633662865882616231533742847802594138104635339971471185310458896752821551073555195445192379559464360465616652240645216544184942268083450106486944308282893987385397127759955761815079038762280690566328857273302180440272758519408777275450883819407818305020803817175620345093400584231575269090268757081094222156902055754826139476930692989524325851463067223949677501680631744029804025706949479050902975524759109604069732893741342601441936965363005772744574726466137054639968873638652165866220881730831370146170364925761051452097864223556518784684786446024549951098823550656213148477378637064325349337546860196506619216123367984653698468944420430833472523374789936870978237221773874860977463774945142990463015957189900817766614873581079316071659230433913984440302250813634560891707541457170766128151930046671719569254001716130665588050601196078325026037209140383827103354094867021052242528482957177101110289621339630463443243738100111438448600644574240518973787177624195869634299043888729457106089930872636671465043021023571631287573004459294164029777518851057598294600652522775380748680471953927326694206781894051474988639765507191388982014858039168554870034276767551620559148466170466428536805982954582008494651315363299113839694341021651156170062942960556099174545492509063305182431993496629790533154905186440576212762944234504224984340309212803211131336779121984274687993903161656050218198488292022994478208454845215655428819081551033280059391692021383702116504363087841348943742687961440558377308734992573363656499649909540690643327093686874066600804752519325639810956685576225776658384536255103218950748632873770939545285150777516387003637451609799148832669224062325845460524490127530655930967581540849146351106044094673062943681320011455795599478069484490860163957016333549845969926243874135397072297062919275256458500686619737020278669993425119488701360169975053636884125832431559227744155481118925715622211330836427813595361304221050665807356974382014176441291616664340347766311333963573832540316025976869612681047795334186878519908458174667709667014645466017079433194967092946916204416692476746734347521705443498719268755399037560934967383144412751796738912806526497606389111781091125764531361614001199950444207865481170936507945068053568143212299642076623748519892676438666720800796016454995450972912827665508107647208250120802591288798663140858342142331404889754743854803628951094176614691957213674837418263660461833548641069260466922140276764125800557476993090796085611218843167688695113025393622966872120465514392696150990817938118304859775887702889320952646493868751205548777774607881937762868297739716441737821655502729732359892508099815398654430007297402326238934259795964184275075289798293685878734718971540575402261823347630999589028353080885924675212577791387192806787065544291966270879998886490194473714995585917250210138684112078249139795155280644380823530345567595205862385934273035871030750634408183708874855025778730305511586597103891389761200342459940114812748983688059642022228944057798176345942897822739142350284150111603597371822693543535570850102682706347420683115832836466666621199561240054921646542707666683578647971908511740908249739504760004423558504118928582392336914281534747839116506052326933532497451198888389666885907354522453830030012542866140700346764769302234758616620926604029843813155076338943072989543657294349637353273917626059882173025947882304992025588169237072535928018041988179931813531426512213069158891139507602906526192561119992189239080191317296693998365797410379264280698622632520108927613780975653040458648029094285727543981045842476066638451307376640062255016638754149927425183383893407556251830313139552510911119806327974785086602068024562095659729812269662973118888620935407654579303191398050719583047415252695575159777199987626990196157401579451523940936614401826065681266780466845005288421414650543911245815872238604640227499432991256219556552480720014854275053442163763707891416334362587210110940599051152956166820459418721916944308190463568736757642547245024967513545380176905066452488886281278365546800037570358074959563871906379527809941528026708412143287523917075462189548418693698299830724302548176381482828262370529027160385804377916878238001951222145986225660105674604639251661209527726992747349168896049184182548805951780327326587367165101797698137797862369856850664311551847109228336805532968296630096474917692994040050561893375556358165168314296055281705832792314552039016418091588092230302891838044555228230032136278451490268315261546513678396003235747122219175505484093550495909092732259332118001006855278342945548638044587325989777632407821899782841534346349001221215857784131125910974755545680820162173469997074303171160721319615085094398719314180288937480910066933708515122478542808914999949169387187290754542445694729770918457025696710229032939773930095026044458225445941229614522327025097551756925966357381717309557255470061781935879801489122851535238661476198648756984708643346357291260859697907596427904072375950020033798929922278516052452321784067352310981230847256996529166177291586316109858350750046812492848612092808681618974480944674936078871885057717036165778190069832561540646658863951435450858958861170665489463430070766415939061375450158848970626931325198899384629404930757643278028362178788945520648398931628214848998214399963137269700446888156509360424714098420834510198969457699104013780751384549159036074392295248084542201968949171174409782309880811437918339010560184839862753087503505757122177265565234352697332207867080042310958702595782612152199171956504088180155802936134960722092094019695861593991727071942585199341017066628509485446526125565438124054890738235877766429101046730739337922522477391901578394576249585388697801686267809606694828185355988092393439756916444559943066753288958411300757335125459836255854079131993244238738347329121250656169385176071658647013450834452985319892203649829275793084619147939509936636433620298384009198619860159468658334714203068360412561300280101877114181256523880266065554155821005391218556904716362522263125079523476759111935967948312794730430656406690238857944488345552390803425351692862587486091833090232883193033502582708770281762384833666263502398933603486014137698183107354450569391997484658546732566770270190144303432150868040712879243634378558746898913875196882906164544653559612977713266618719509119610141439021259193053588225457143017638938529256250572272447904573704126085935646563346123669271170426553383645391908054098922526548889449359816863746595534779185481348884788815875030344648672135760254271885522667445135789609355720440066459645783024160439476976598679734548305167360397342191391498982790215767708555667530294170773571006676932459570731086246059759643641100233243433287839393781660883298318150873929673796131806369438074709211972580496958932768174453523971543816095630034900601061563325227916960166090683340228688629252860018807965456224104412492648219899656124560700266757686260919326995167677895242872820571884948077769926259019687101974919529976416623266525312593349171496891075354031496475419547216570843045059664963278159394605411609630704635339088882001646698221612089514759429398009514340444423945019324379617428935831212839233645315418435734699676112828860546008486200248501833017946929320591099815889477142624689010478146181830672420222587623798898204387092580161446143078307001428691996950979980551731156281664650961289093789629926277220211016818837142637150838869704782144685102684385773619742853930513933649322596704103665865204389112542024387668452696270728628769878224374831431484867432871666189098743260798825692760011740648567726982422132733874412476435922816006355359483619969613208816453346829782389186974223860050369182798308246101608716685053394815804096274690562403222227167610302087669911729904180869660409976656413025069476123164650753836160383714252897603763091403360039961960142978344325583464295773360537291851059785187620979953860892462537943232716746574493112329214316378093155949348335184632936858259424773887080796236659712328100259328009064784650871813395316266749985580490357669956617052846347801675600101161256103354995611826725965847851953479464119053519816178395880513352873376773456378239072460471675837872057880317736812745995842492258882905336583070405188278905767889449815257108902560080640833887142963698960505745114267470762627581173311561959254925679818961104224818871135747172118173210473560347800544396138013902614678421144613862989982482850762353411809127438738506423036274407591134045672170847152877864824654746100863527746239087643225930849435758957039994332451375379931193413877869639303162119977780863672179058688316074323012630007141867340985990976970463016003870146300555637793700623295919493440334375198953671059504818496739802223194548331247514291076484084308993946974930991210721650332133763405640159245661717602661721701615656571819468440499382982267841452281658503094953435685818543147452645113356789620785863052567506773625458085266434344825200428215576119964857807530815654456116147222284503925894236621878921672539844929186168785333258820915416337145204107388146665354347267840889482254619690242477281392815366740381541772989444178081618759913902533715147016553759391214300960378796733348451221225100204488114031439276764080615553769905809805226941411193235029616412232266338125160098442748021430787361267376064274864941163734503825266611933687507697313782625491496363882401369311590631103257490542317772105190956705812223148495785371685336931364343390611570193603406409317091492719603087686921565427287791319110707845302200423404386864124420390711003633486489352045361108894643282117322480363573789338382298352395928157313759216206315451750889367462996406852666615420830564509826056143282773460014921798666201195690925137246383962693488171441809493208366102621576018708137752758085128464828785343614270076250366540635761198614255115010092710321175005918390170896850267878600803623846376939424881301570946626510472682171493590143478315710925005264636400659730060274016018557108103169359510854249264800029764696232390089037877227314626823621708214693595823110806769439769621530499468927577494504837260219828891738118965296327722802842213161720129157395566762564755616258425701668932121452768986571401420698436638236741968854999414760891088836382580637861041873534475090219645704685958615457064351389442736455180998530436042030081038539664683924195615217648610311953855188720888769479746620352332087714729078951559122594048849473789783483188102840810762292542625808120770446039133603661405084349027516963393391721998955672242094900955691347974885399984826795839515668857023329424095813177612342529317513093853328045404340964608906533403998926060864020006675593755173716736897249935518506151291927197928373971748697682001636469291742873085953952444804259433003706176387112308261491023797516553377711305865762259936222339459617364689928766229294615398446852510406996991926440771319984482283050795733720767559341943340371311247340373887778328145358315251573027512600500204864122271501944946925434165940399649589858422836348045555187451885665987146275373353615087034857904288382792508610481286441679277755401144630653750114423499879762403242134547757795970917481410257929427666389376548053313871174764587423162809628870281891948041104324262504813535971973975537534583306698709332392819368068845790821110436075976454452728115374031510506517504036010399634170671925594604584908399786175649215572757562720484691904970204496365188941743633335989713401256908233284509143320231759913166732995533708415890906379672426992487962659893706454556783016426269782719918694895686594203576770867405658720241875053110473021310574913064328497892061901147048553216544655474168462093524014056264475495237173024864478589844457561540054181629356875157482700426315971654813656996473853439857585932819625338170302808328465173112844632737840268145190209021842232771916255372254389098418073089548942252522052551505184141623294954209138579702814085463772352696920932237993573832193560669667164609197576777079345516573014336798815976753326485308946962213794578666391068834003260296497120338543625219049846943380970934862423242276187235352398721459583542335053404667410826509750031359818939736639385329854422933827181478582380391200077334453546924755896840080602998304410730317073219104895165884055267764441469982814063415261518463047115407806339680354586972658771343150506199290774264743332212066463409533186270280378428622499734822963974235879231310346384243675821996320306084540354343772178367731225928130373942985657115634537187296847325313064541168121366875706104265611536333028640980378895444425955993439094211677781979532124080358211874967305799834992157857898784721274849041143285879573667515436048064595184172926151949902508549163199957560665729737926778693979497528346434383936478925892796374046504250923839930158482105203177008796750944280816333492393442899522029139917053086842260371564023134379236850587595250877878722359305690706200225049244243348491528908328265804751672183204109535437163461902082484566884321473221569581008323044465912115788809789972051033858481578609903424684104010365290314092768870904803253599962025414232753458115661672385789674724954810566413188966874251157582508838356807795990855137942189267133943413701080660155162580384123950739302280783224493165887451702635454241698059775704291545219918204421012477836731583608639079768609215949664335164753080911866517327270870914291468023449996432079312186886747509198538602519166624725771334062472664974967344376873473057407615825588840252543075208260163933448244952289679073199376270219371427960025317435538266831142449203305269992822465441485894192555515851068770558146764781127937579413458578412526697695710251398775451679218581834708806646857404417181093049817257736766895203341015328615253946405431514054130545633336260453313904610746842102079634933099001150276831585527191076446253677888500101463596895549388534670442580730484432196831694758122740528379082132067224601600856450972018605840247854131432561706188208904369517324080168908307946059480080018614382967967133818477991342870526558508048239276946213720815483900020433054527051785903180711666313293821297225138238456415197230132063421064465652379275845841531355031820002075725939573389307960237488014386158963370826919648233547103617718671734637999348563314095672018736010601628580261760570047963447208398117303057639664853820863808909606547130054320499310769426918985502955264107207326575606884786116742506758685234159990505293521034667640958173059797377202920477908462240219412082638875082241284640064079173306873699054043764545010350814216504690114793455065144917450635015034607169868516742218470344556064456426541435717844100103637102374892488023844459699260895592583538574608452385951024418423980235123463092244283518971476150122622247028653111068890113818080490845950225753234968796736339033858306724538957939213780726616851510419217958139368254035713860775076466980888961724220396671716410581925668545309815163218244369699628361244130893593941386349507046656391602441384102355388159663483280746353696823914372817642684832248634310495553586726189480911764951298456727425226453546061250521248009382407387674659472791972712699076390103721453276496884833952212928753941500289345835033701024740432358747502733183389165989469663210116615727073349260618110251550073718235727156885119004744719895160007327235989553182936042268486972734134921894928431734115785517983128166049786182748073530268519377670839732650778219302875886333402425173692924665178082666165985669024997528029557587879370807161924836211771927348431913100524282745689722421917133425202102602088219692999706939603229788159930602475672537899892622821863262765713708051376838941188713589323920875034269647423280812439829348106566355818173523829288440767278582301913869318121852409671005169374667883543274421744238657539605944453415764099966653041229315918413291375804409179216885681896231915560635586908048864402543680703368488668613234432269881458316572267979621241692982162424534709230426919871243076542563326269777608037022980532469965715782531966952977898334182295695322028550673564046123086569751960498803020319592963741052725549265660796516864119753038805766905640465329549687426826256504044114645674515262871649498749841203734973231583604265921024329374595770772881009331941553959078384872122641010260044373239059806188817626930674788733755642306197287178016057608566827779290271890690994480188797450152485512749518009228062488046120523766316683543135664088163541963149137357431966786205661544479154156128678886521563509907251123610723305622096650748189507840175602644710542750163759464513650339749578197020965551223418944139043989347260877382272579197944153581529059048945151727911716423464457749920858455249083224805723071255617520814263999489910332052385839677764756388597109181440589929854868800940687691900827876056464114822916069499104746049024500195322197907115999540753355885312998919109266845576126755594530194235070439163678529000391152638213533593004524122053308083880399424000886154702664480785100251938313594131039393695540168830267368278629340578532262698314173051398280767346987771034938676604054197570182907958088345644450527185841177526562299756640908880578366285355970078171896104002019256991038087107994795018640006241858538068741592276544473885038378392956266609677294081916929868564285438756533599514754577275709495838193832884119045896441269817654577783329130243647269095497733926527463409498722027699816222862554710331032273768824701172291179442528638824674021262692802178896955446739016624046020969271558612794686653075875505449408414288152380034490165585295148706437105254771860751996526396056521958906001544306007091957162644236130002457011461693093679039445780838523883061787125745927491533985459710304867978186452001852058938424813306168958070383963030186474254959553403545950862175885132261898721168041414332895873335439925205907834367665777694726800213659483282871058185958667076761935012536652897712402634172278025791665854667918916604954554073168110655451047283261166931988843608769986609330901063263665364837719182978904236072149848781217613599275014829246604979932186132602805059687834673213202788312637495658528617990370965375578418108316644482226827074784159020538365814723600007925083466752296936383371557377811885245736078805854673892748843921637855943784471535451879877880941667007420854818877335202126354024580321156453803741995001835762656313765429800466970892229172643172365699449219139387957637907302587965454718262681415083579545522480578921713285428849394180467605398190054939932455686852961370089717377144881938363046212878478781172829326806053668609871996363320001850597302057032869661351128300411609662589865669391829150829933878001691305213487508308326229549343793922798471643931939963892204977550133796841264094748402134591677211038601506975390403010344041695036531392964802299597487100770489685077870218576162674831900443392664927328381009326118170212746813925531422543425036928872269414870650619187391864835255655141058753696872340168313025931326070725008649202642858050667533236153716140596752642195870882982156319694374537204937465510898855173121360770019524639391316711120890242546321573735723922822080760224057397028969670904160249322895669662049562499724064499649593123391736898281596776969476621643068078302728045944483743665610265439656557297436910277411443403615274385412367395545679709160573544114685223711471805122990884378610849278655041730306878910098374933057903887990671516087057885924535554914768101151061091421948054873778902997158746402408081669437192948114541430739082003055342756032014596264293062932085293060216463703746976055397777688092187038001867483811430067168377502125043360004978482665959247107186104768493126534912732848717825305293062619416192384208603883970152957636903130220467380266218352868676332025325269797544257816355263896080622890135208489973896797754657014143560346459588547707766185347597124435797457124995164319952469764075347317971016382816956063603320865383075010677174257424142675855667258811550686104540065293635151262125737062433844224634095903812782088689417661974006865787044702479470268070251318631880272108152124535977448977597821732607101955621219565205656542956268115220314090284589511267388140095033032781595417201569364672541738509355622352259761716916425752629285251034985297337476125767615636479722407555100849208066332856615199001414216709817358035912011596360679481684206162839211463893888043744137091354112031466423218698847731489198162878736318050397745636483798573118871962610035434425097795709093340529257161827951104138698457290183334605871440337197794511252537676892999662451170841294021638830341565852950597673178764915528171343883219171605143091786805292746307087628906175100385134206103295284821044358605106337668373261562994368777822973099291437076002737974277469147188534712462215512412780456339651599403937388629890560512281829391051025661608283977471496407912693715859178279441739503681913468958475939652499811464217915438839791346671577956814687930030493634106791061708892739129288773847310710614556462627867382955977227329011507491380906100416934785605210373954643888140177217663380226347454688381661417099168496950382773407941698042242151383873178781668002248512516465332889531276580172261219347037237186146218468184171494483960161724600879034563721393075545382172319918998524015400846176858586854216475416110055025118547379619491832598270279808107613377795657921862149002640604324384479039226856291512799195144556616427050017686011853014731413114995195645620916893937051137137946233826083466251872840850239117426622831945538256563111916196914979541320613015785292461455905282749168748467691646775822056153839738531376351338095937453588703701232854807247760442349884052088813236797721160071417608097244051341750524963116278822243683106090852443895197075901078571600132691422046977313854225936221601747181498548678666933150312882820098918711950673246262739985773199593113924230550198198594806857595692616746381043477874820088707145048745791663776922320613005850757656147249733946089679794641245049504869994350239999859673566460010135161380256359846841043883720451698158965749583843072083566067422834942345178632331950548491802017032958441892948501907183150488900546444102083189377818647306245501651552618840288782921869842643414962318233988797573365273742082677629299561878420845711204990139199930917192897212515674903951724090409086878207752393582965035185777086428229347336182599274416988997871998952691832840139207276379732999771582744636929164107419800015393471266175875884913684326250497524610628301357633921176785103064678379691979542339886877348691593734391566202644593482341036474266979616156615269115259948265579942809212132231981500453021432546691993580724495070755950001011350650416622882370284226988366459269755843891899487090984385217835131310205177726932779246296261377490612826892242013634087803745774853742436667187751864318032426490258835903582058524031339357271039006932370006829789780125183604517367335383258603247904153697739174875310884621593115310710598792950836808409767513084116614259405570303071290858607603932067339746835677963768788786252904522035395781840021314891448919436177687050537104087548052478516265457326794443268995068278980349219745178373505899080810650407634310263322216693111499935132112522031144695775381578675297757112972179390121803201977583831011701155223098836236875500396767014746742539024641027550761733229554273658993672010990831615342839705545406741737228017844924462883255776196749605550182003730219803802148984882288285687187624414129239965831640102088904616255054880126018191820067438461315800221132538965505013913485268624760351553829974234085905249144906839016735025511444463554577562916520219731770705231454495933437432083176137862751829269957796604775744873327110321859704900729125511748817435385971264270703534893282109645272270548897910312649078364010744982189104289833917666316783728388759803735437862275793745707115106245597109711191645342305470781274266088563352516848496472808283765375510612084855005746420257636267321565860332717441641148805881799891129281754602930822723413861522218040126451875288385346374605667509260627089201130796776916496614568242853390795886262737884570376186043063380039562341562001138443397587364476084277066136416636288216809774546247019360115541456406125004056669139383906464924623423160635138401135061367567824502480848889178826487695128403827626721865463532818491374862082902101214159285913573709049043662705832337746072548298962214777385601877146423593374387426463407496470471194241518310377400288892399295931738475425294141122765460854162761416055153346783657677553244023130140144077990339328869321978871051825884701860423250563566057272290029635735294728380519684804474450397736950054040827632101040989377762054229015345113624881868491109700160303227745236162430900117058171196531964374816298920860315065321837185647710890463774375683851147536027530540238900476552089258950817017775636836382610826618854271359208108664264003522009483514323500087989294267508395671350262507989510832349115710278982100532472223982690651777683094180384179471590558109721076321475854091887147723686386762170168772291761210280693292621243366203143173235585978132413004762927299167604981646435853305107711242642105674437950066925726287401457057096042532003623271721625375769370455722983359484003142189135743618578153006453006387846720921624312739395722921432242578389870989927295131368613403548083953999216654992409401302867411065407402905353844804047777982872575727770130846405934803748249435115024096160974930927916688671279421525133293117975062857948727765893723603861423430175771840904054715619381120248921458333364969099187592278309500895400090576710170591735184813243820550043931792543309083428398276335054015945325123921366002279642387584862446873563368004253858027513081930199042611231682842559346153530355028869645542604092240858626605019660901549387341769027528742712840357666672015220429597307933759511480731938461642925309871039393286577917705692207482265936925886960820353288496521470692664927737546558164396091399173276080651581197020847823738768057622555819257592460972327895492904468076041093504591460556865715727583622145579052831678459842898049567990850092387203797581102441367399044201171049314556792307676398344094650811277955486747418362478489073434817076741595024801446836475488832970705947627991514359858310085670149101827743981212183748027586639620764537046359185526913501882986687875099202372307452267110133933713990706082326505941184456419849783862732331837543089189490908124266637981176268406100707436854574168162406736816982959845108441280544831715498935390573030459093450842435566566792445625054743091792709129762613588869309306894254890293402984951626291621105625901761147942267530198732860183935126543890013235777302999439225633012508106742911983607041998299510909466613149390226338417933404719118748227707661328996680625714777947019980657694592101257657481973556792300662044003514252820428287579244978721490049063352645335307976877523647339683807429167786261532643316282921260198827679583259383318897772112256214764093081628325394177342489706412070147071851938862958964094486081199299012368978299566123457580091816788605595711722452441871245197546627832846152848392590837597139587106388685913701325363899126659404291122475348076991686176550486094489456633530292343149345778727628847531093640731960796374449411058388139178957302345161546327599736008797923259326294531292805152417569923172759370034567509169874471625013382035236635989016468178417216529944303567447268766444771290880777079238835099331769930695871801279547546716961641693010856525557871862645077382139738240253879778442012583572326454525813556268287498102484844065284351014990568581965469432187190352361914540697679425463392545798653271816032162939174193312843621123301425697205864566311813459544500010208382994385355981844205407107611378280692944849527821671272307171762619633159324702378076191960536673416868288747314276295761113403112581294429854446808552113754649882236931644606719221095506115156221809079323779387222062908471715238485801513974044892359706103481884869405289837983874002623506023537843256601589588073972534739593161627721298993305337720159605510766666024057954302705915822010982802820134707266299986938169845718776583111147541253336082661552871511331370322395495014494415106775275040282822149939378200960636004512872435682670970245064696111902934419838479871895675470745302088763376479482255273131274882900828001493920663980826738150282241770129422984178672535393298202792533110241098103810843878083587576116589580010165923677422185116934457050156869735075876355548598791490959886785722744809245077392542397632505059810542636933440766521054986395341042652702496811715445677297622913401126174577673178136025944912736800755095377227111602764188027949756111751419170480725887125634415630052276279012483589624577364782784645092025910325991635939798643859697856924336912728893993559762065628526266431990702283127127154381791620405337537028699344103824185835158052002129331816237589880141110014608632741262216969088261427550644739829364887917713825461592899085021683467273090585546435074680674661434352713125048811135363094973012821637997421170782474281660638708154332881817801195938092698038746793881325792196240094386698616224802131292776403493464006323783400505062982614725344402053735217683623565106452556721470484557616780378715781119269984665144738472812014489486321305804836035218376234280714575013488046488526270012316992983388167457881776759255880533156397538829847227736957622299855493072356217012940669165833072924786001857678648672816042119415883729367913707593109286919678999276508106268932587796739488819861104323285235662958674802549182448413233916651724137071451006652235496306334055539516427896205981160697047283691697218504795064037107196296228647444537581243834389021034889180676657319135235799267792758047534780363956471530897323742024792047184339119521765223074507127546724134865811440802270386229054560215176351700524510644204775184041983865685774151238055400963555529420800599852747146166103164245060175555879666306275675632008623957535623339644832235918762717839465692123447825312577196111064358377988720262954813291949384561615514982780804477094841272546629494173941345864693197796887161198927720413274173704562707200002415335367156469832106453745291207620606571020453424012567085253000600799800828205742304991452621508131263198226485462747243858311714127280704524400469936792638242519665743089770777320639232722389078714549639831258655833225965525434169928726591209900295024763763679107533098791981911513262331584242704283911291710289134508872871100135504809800862759141491849170170969514862440292692064069736186890915606091626830419714457489334096470629371827676790383458915753225681189422297206848670706208764515271043586759334402797890146014481301280801737716331457091943732930968303784666171752834631049568977219883241610314112901247087375137946748323146149658106974873633091616591003231966544761113444877380645215942052651929978157151421502572228780481886243197257881827491792672549161951048139206921085564853135206294572885949223606992695483327063015872794728623899152237388733450098113586622855870574617505137097397973491831432646435818551676926244089062672714383610732947836976315078082630367089076158571720192879324871573197565859159042362746725796097657006939145671184745130221377061307307415376540513150774751209309857704360868025421808752428108101701391893571590318620216188455160895190575757277195837814802730598394798641466899665002797699844055684745599464493657554877643560505872566120003224685746041767362380470225886861706076878385960217545812707160636221716032019151219445386003508179804209131156385617387074960938403899189218037434507612394572769347409676814811978480948269283593911993756714168652336937846067811288019608984411306140820297809832049230309716946562454281141425201203900988696796387349626811219023599079300855346124068585465099351951464027577534822865045305176474409748573050078567507407270420545632087566172547493483985502647495539789666771434355704182774504737894484022202841658584758335656420070073904714500934276472429918056692944690038678910528465879659058338829075335201964349040627636270265872799190959000442968934731570021720894530393550774913426502853352599471683424177164830004316466047752106227761239903354019400441347522063604897813912326588814724712311075889017035721638771608994658713620295137389952563443474513459063235730796678394524831647840750678950309585657342464470729800329377467475989606790570817165000656490132024254304438017246817687111348247621437376900102304038125243540188306423449659938259572759379931652546804079323532282759040354166162935904143921561162022106498807129793704312736832524280426724204370696444068177297994962671379482387838117823081587233239014936615020648147049630157644386068505559805466735696945003384808270489537259454209733617004192652477421087693700670796169756920511868829576035904998583652452699304780863237081986207132639783926585445294960282993087451778617626488920929739110067383313508425414890991722843172800406950772912006268246899597047963947508046036324074299295963788110210495490764708536572576742519005386183577991708600647604242315536734273008393427699651547677256109486348352263625739996394449983107326778463583118066736497312004998973041858740793478969793655484015631358051839219525754193811410783703735567825855560798957667104671072820059507721051193586752113220284494658719493436139692893469623599826641283108833164774667856868668577303297773934582714210961244901695391833970668574755721854212762162254715147644739974099609997661778760956414927496242377041275706263664354135290821332508065615224267835542379565680010592770581574265517747164059282175108418410967780751971237854872690048101935344443049273719383086181791759861818124346934323924007441032402063241436985766987435585372866812761897440834152367399675324391599302115580102203644625927913603875077892798700231851277523248964422598745118230425076741771312857409456613238646149643449393544305424903843845225715727066755226119029336791147039015562562782018316294369358548258121613230829216560050775716364748316869516825325327919232978045976515792447703131716738627478571439264624305511824697910962387879241330017842728510527370791389622648481626695104525053648868467371015318432008145399482650555965803265967034027513511495547823214763399023407103965634900100836325867092011517531977103262264092934869197178623038065435032217982102871653113467618023928983237257932782820147272964175727601800229216718735859383138418374171819542269147090830944373517349068446531945398144718131505436741323520036169209558514410305007464917771131987952057860139133949540953015224274757783750556246501726208196764349585360815939516371238697971425351235110714689094389052236017167942311224918388331754959717710763591091130628178609223383543023954329844884181309576539739280478594005060491729020683948195150512821000111966395134481514909358063740521623070510804154926103212046203733078561966370555728262369928635491576336526246322691305138661591530006067858178219799022521856977347128996379075981675347218359527311622607153357023700125705991705431037815133547250866708374462687697959409664429647334280492182334876489342527450663849801621761788638479054846400034537410104581350204753247418742323795717433078812225228575298629119246266894783073787507122440185546150586475677930841059853643656529972285945631079993666157598690471900674352284985437427003099237917908852273473856893935335726785024518813415736609787914077157528855641847946104093448430499662718446742907793470787087854415815894469014669345070788816126497517781878976129975229584750078912123689364877567810289267793819488051719513460466128758411982918437354506249866716505988908402489225646299573238056402682212586964423695221013537524745668151840807999517445295698446019951227158540033235552118673928905593994241182944041636365621985134072188358706544972216325008065118352473441127643087567446719394927971915377834883294412504796835765052995604571977051292964350284338948174092422303505457042599987533998752635279539265818241366143860783047476107729428270026117555442774361495203967737803358775220317544729173852773225045531618859379404224070815549761970357719560170795574626728216334163676802339494884337338890852632654392056550477126651339933287740669035005299037068789156693589668098382197999401074027476781072734858071727682221622486745057164744439055476501408279381737431413418795716680201827750452542045598458088291253537775253952636161089000031123072085081269177715280222742646210255028701782558072159477385649323115450083680125171697926683603297009977941018042327355026119186799504034311899124699151798930389557004243087874002856507626634999555393240316218967229284597662564459689267302304229913674837196647584645386870550237893850384366786686626327657919939666109771461753465031669391241578332602163407332757320625761694467144098100093496902351604584769775036027264601443553976367921801122422276525126389637441805355723107729490988542259745369085555934244916444220002357398513035469411561388661938235362090699677714555345063513288364038000849128766304271874104890407393499896293770238113145143525575999252686438662293141135454616006621659765043171294878141302432942813842124366158502691424946129273540340837351797219356174765224130011344555558513630570053245593500976060268584420874781044933880421138980818394745006262538258695454266678487409274992991972518104811283486721199389569527246115154336259835989866637750891316972210980100493873549885181813824882376223045491720301517015801666174248501769855833311760909101948144830477817032934293488943495487202525885588782865503956755953525850988367480908915196452009467861451412417890400432213909364165701918379756587822024398018766329295525366532306567504884145889923969474604860100626658397044149694381640410439339861220598488135015010073202418528076462781797870730602866199610945074841603169198687928555647966630532023200562712459677408766143260557825788012655008063168390935056689798750439395170790733521108716991042527045125287789582203618191957753391352692524551150028381574983799525813727178651784166507282884294505618208149595106498057412224486076927176793409949145670307670397374491487876971241101143964043400688255592830834387450192906256342829431254644690510023994714577703885284741272764162036761639172026923124293616454127364125468793903830349707401149634629570714517549065802100741331035677600085692211245422978436317908604824980229364975295044717961982204993975568341719433416893742996861372443691609319119498785759231414974427537321297522595104766703335526629829165993949004075366353546083911469759162532237416242587304968865419478566237839522447143761513588632736333676898513601508444599952518418979446509750556105683862263364064352440988600283502407850027930369534782312415715361292521914090973852763487026879800006977232698984022233283678741996349566697604321563911443573222742722292829067177439219360584844860958000147672763130398876528773301205142874291392533823850982843299287685524528243033447161280783545931657261766817694721982090404456068164754675510493213742660455306635262171481196048128322128680726522383429881171701707311355221252128141726010126096680150932754340355063782789974073075688472329361028191061007691221439911818444333423334820486080778374133245707261097818015057696345870475693924637570572704848992974926988116407461365615509019217198473657283345287798501656208654481350467389435582643860215336790592192132934100444312094197984239303966116177330494876382127794275648053000037620109833482912267844865470244192688719321023230462211567065849285807609531129416310860182571610845655830590018140419951313724450839783319096879071419143741421375798686156963273251680472838847997184656113223037106926181426350890764951295600702775596641861725947526591463140756287493963944986637122633260551046311506328072505839727906920065109350564750159201562971905822754632302484530962907948111141220773580859721920992547947852706204020394143250219810708281131354314104387264065322464939784955455254469647733180845990230896227753628981315772461486687670358348169781253946755128886849338443066068568695260096862393340126047667273004994237387552970082317846993604593162959917297345264477467006145233861205925033180316946813523386922712438904242831625917664619422140402419165589124198502284002881464050769487158429647458488189691380945572782959126946377671262833259977658868071795797465021342828676049496420091729763302665434392527256948328898315562830499295540759845359214623531584534497527313744109121061183486744088234868807155607455354817675153445273882402329489802597592783548548349716689817170349688190700099686520004578619170222824019050482964077252279171134371598915205852240294297338542374110923531923329677268748467745733895346135933150743714546025377517617656368770944716389545688601971323916061171330287884782298301995999371530405109164603672934340423203716479435155921163828325995202339752804791452324847069069740731450995603496335167747940144041671249235855978808463121232253958787386986877691535219831000714520627247768980352688301686421643804506233769834423639365959679069641158049529763533072809901365969471525674315765547308021193253585080474558442590725980733709392282069107445387626427865868510862776001170916219877491675930794585927252425055133276509722658477195192950729560842529936966096621835325242837218294585078082395829790502324619648515198473247948677591908638841986255627360911253603416589582887069549447252837542381531685173836761801097310541601352578478986281008607641484498926956092252204221302272725319000522030787458817947218483470499556019146966662953282422906427565124149430248236903066107193503063771556042234006130870638441381050111352529761338726715681905882227579020230947072204063213600321541190942168332924241660205954318817218706196075413478740606527244702715840863403767786403152468117821801114388110881677836622357215818123198325293754444662472944438249531490122045673138778189225189254424400748684265529896217860436728204332060944385167611286182413176932503922242417238988904227888556920533018113532392484221487885623288036660060661719487328700095216719646597149111384909293552660314584296636720851898499970489838253005629982892002536684676132311724186050252778563244134835402676910654208867315170874786679273580378810179533183733854498103127445628571330514904939963760158062377733159234951121058120080518220904278323005627027266547940796175802163325050475119929869783069933652634135716675290914434989483088276297108761946951552817655621326090832253303451729016264546668661650225943624915195955400024930426506016975357107622241691224368108112179144249016933749586987799385245839999415917525795924496488867608249945736387594993869814135507400966451394715127943694770806780735478445805222206277082945000045605746522418707463476451068555303683473384005710209828936386202715658136471335959116290116191446029347718561308248447091767319641331402123766631064822287055314560901710369834412912104301319118853650793960515450539975139642256636033250397584076359681589239384605259906801056792653260871828779409095445633792105311163687078490667054238676134332832805843300785748132331759875575592463482878302064717211231041423138382498881530967454721549291793423984167059173569146715651471631239019905272624264552783816546475332044310649656623667974109507634429793366196986899571312308864529528618841392693416227538219172511358276303033340295665187452134523757173447901515641081901374981836275871939861842003594885343819013704705071190466206350606791928845192130228511743643420636847506497458951379146750939459635510034414638673674238718589636397033254278867655325742854453018511419119111505619005045790042993905008129267787170850295627004470088645821869233402262443006130508023245952211175404202297797671935683804896173133096799937703063464093364105950710396568769556641275152838879570365735428565762913554520650446405312253972770057119984224052645344095957392293233011742562303162502268610140940605076539881597409086267893392450905114027053485722123859734720824830724601374254371958915448339510521128872666401149178345586547814313407466731794883906361848548350976446781069248841196044568762616755281284529696989019401910662031748023507859411772020156513510344037438978894584963353222131348143556982539621806144499145584383341296833171511418393445824766365875072882192897881843292279316023190947448275897207345096597438493391352701188667599677169457353231916268070745321889206713585570741457193011736985041573816948856900847354312999372263651017492675916435374758583513510773049709530658547735349749702384517988990870957778676220748507959142101113475537010689428562051347741437493912337304808084473380253695813484188843670704092527893969392141997663193162393186548059606142712328493170686884631833774767685453607039098670430849310783988857023087013103987489325935796328844915926173656052532458381969341199954924065622953879234552962131893330884479167800800558732453255112620093562788496077666955778895830643070803137239232027327111327341288769925855157423827153079305517846030945383338077330088418248402795449164487154418938936113785375999401456249151367368577921103538884885591191071781027324271036729760816361972054931016775866562488700408232182782360777694736692607455136815367471843238268911088935542520232678857956506904907447340793567530891053581492522372569892594075654431874891858870711455492748734928250119349962874045069400874190910912891617170936987990455779550742176262669721537612039212206372626781431780627757292357145868816780197444977522823904898385230755328556556035622127297336429600370857218720130865912414458575710245493274658540471827179413259183359937226255100659506136746585038344717411397655677508890626318601207086826378200035083676044014164690965102414096667480244234287204693045659243004962178987956165040136980231556118285445005210213287867147490720669723279455493234802017177782811066044052989072435312913380701361437832148111149112773076348921458455384450720209928461670784380909137934379965101884097977320413528969247619635964928440091099020878232494395162716584737520471379073694871607922922623269497703521265583906812907405177227315031933095892445722143711352600876317623081575647382875205827283644560300066783530117947507061216887825635313102004180388698264579148472617172187078922737913009376291213309333193986545461664578917183650912037230855933711631482226104616410396715775303473675107620677069802081729732194962837993541690736210201840437686055889002331422441785672226629206531411426110881836405933264896744214804651420762860845176013510016700415878941264374248922023588034479642041428495349737682637966100844084366768045879262940451815208338436646541110329591151371086566127735534296851068462445255420984230106405366072483131156689968423656984085493805899459648088831717270641662877334324503647261293912368570669395210663716687538864623314937114376823183473375187465893671683392963225837459228666080599751957045608333880735252569623348496341038024230687218763836616310808690485902467587037083801036304306423183596969279449075862534038359286909199237173078825579113710540331079043905143887967520268154924783478883698146599598802235196847755363282999771806091041715110433650029018251166209754523043637377440586909728252825910559725816868274217630869389204549622869537283116597867836420070884045982912330736897747858302558591489286169880646011104150341896111767867110236472709768779910366389053679953985846243432809798844815349639005354049063176932028362806990349964690661112862413984866327414393600745779072799210324475416268630652164770854528594773110214983753521279355420397459605450421028667361777146215891378327020372209494233790939799553426872770623659179808974153984512464134895178781972304822501459553861080692763414940417905748770693062432279695332872287487613391916953834717753251184731278077660322022150356246534715123943786957630670503505602939629865829597065612866093676112567999207153648753424127987493500669924742783940519234898039907748688000584234710751670621656162845269885099139958001846447514547121381578333050827979117819842308000567028221269933265753446857829060786506382745826255733942935953724164709325718814407191830226267213667728234244465314448441277125375649934885143007754518012456707550806484683003207828733419140787591893906148480207056256699378797323600534456867501602203396600085368685579795385298904207391798073604126116273477747155947517028100094473083672038473606132010026538090566246801603035419073375871572618892447394682749905179705472751400287179853510051103034659934234541011074437431054375799321664043076591270047490798346049278315238075396897345036928804735129886840559620195474817862574855460923850016753311546849772717594787079359101379208538330056739960870622129108228907292139814608647143450676824227353585818750691023722882463350300396325719723101201936503184009655649817086665966602043505884870097104670336228713875608993454332683156648151776302400345279699031563704473153042876674301790064172172013286173519225279844879398476254921842240540858527931616649111608978722918697997125966381934172412769135224824627623122240305774426527813637204093130051160696499742612222186771010885594977279100418129474581031410806245764682462180511080324242823799147605887329585003195078670746704047723044688382521678696098208676242161879982903117327508930071650979745630089432398235662173931946380686815523416890024390523828315602755803140415573347937031576375148347168147912831256280025029588280694502491758632513888142844508958910356938112008399050035958491134006208939968867239346450009646240730172605717324654577833077887738792168577936344333916143568842142083066346109638229665567757417135786386584863600780137772937415208185809762320703903642271309394014725927077768969963349535003315188001003553799208355578910150990794888542463810112042219219682514019350687478375039047913469342510851880341917456041431341464413587333987070942257956140950494284505626672205440662469191135220005533057973545470422018529916997577817326103506845572801307689439331910192803416440422394469821849131489807363666485725823906820913497515230172931009340565562435407260358351950959600949349682207277191520812300166000681017195034338111077901533429711676149329835377729389408524849992934142868294864634171115556330512277529465456471097149064410753029270680760639701386210740113259828800502530986598645712659445835199289023629972761052598165268808294624192480426864802346741958649184895087285126646478993797200158817557868750414907433759811107730386206975247583640874113113420727673109939052372208933040402576913209094585964114001393265839538079362750675545799026850335701611909414021829259431538897243030356489160714704197754853581911864287035500017863578565302052846687914101679892610821025185700403061669318783706056269008330635803069250749940523220506213076269182422046920290598043369490352097985053317333644387066157794903894129666101234911586972135335096710590802040377193532444464488294340897569449365461135351713867304445221896220332351727351062182749716031931387855444927509958867686166562683535040730162917311871350929573094017318433221277354845642763407130766048652323651730671173131610449899477873568404771679543941321984569737825681677419688780079434491744151551145916847092359909042489273968993788901439159780535149782771877120439401516501569478890141746094502409744899344711665984000901993830300619755686720022035107466144024660530393480492770558316977464313995715509675744205348791392842171196905376807700918831630824883632887866557179507966627932375535443921579790761232741436746925777832452165494476519946139503941558254759679180276473517400959139042102094345969784190357584463106327622124256864055108944947725334670040688388779330817297881603873237396191840211029711177598113996814184488829396948212074793344677923983211034942532187522367787972516506083343729798177879573026779981082923881807746371223807160884475629832036830821321090830182593594349698257776044560441620247190167539432680234931269640440908666264247864307255073263800948663032216297613546385501750444817158042070935440787681913817478822500037719230446809040474025795303224607223017226742977213108125449658854439726513231197287225970653938651140825910392856325747884349633533719411226723598850236636547281099706583929334369256342389664117969367804101741658054022506465317744893009454023469406892396109368690910544185627151349103911966640140576518347992041831648319443321889172713582015314345230135844653192348734315413353353955101191526581301503936406384045295263795048548727172865587485028642763463100144251546383335305382950419778374185144693690015209101807493669957648480278201843790970330268271735000785516557245917577870937713137284104858468484168220165840791938335023263493502653621203312318723396654082591862752466911579891263418829818434053240288684833666176894744271977714921542880505099435588706419454155312000312446784875500173752511657384150335014638793368399757249751742217401752034416704538506283733552532772956864457095804986399495629985958327120409975293589533694171976187792767674802303621149201557254923811997862105674957443594690968081078348852405958206120230323868218586327731253692047720803733909263533837515466963316338320984940004257155422206051883385890612749615750829335215275215185840596834516697685063956540524680289984122759860566023926701914825043447566169646789352439819581623546968602153106419024482765949045642004284693113184928393704244422382326995033429474223982755273030545903109977595003728088986672720291817537562604015314978823519440560012618522326975775167766392608962256616219682812542511124090911845416601649057246881704996386569671600041367213249995054288888994013562167726076338575823725915002423394157523014332756779129598397596026989594093021467548411286474190729192674849743088951970216219620522334710529146446080463274108257717419315401349154300899169663916267727406254021079373331854181687698582372286678232543908454689229000166896611566075395571944642926336243042944721380373991454649010785514785590950550895244743738521412738815103611347912740244951750825567754943991180407533554819547887127092247466816756453739090392654954857473772632925849694435337009176351983513956188868531991636200576473118791756010579131917066250148978503033500466616787533989194195388384467326307030382145017599366753786397926258932356523875278181122590212197825877336400046191968310185415991098622768507977988050233899834977643049984981144962705859373159003892621843565947745463152566586926818370159767044488075389557942691898208296878508075677470100691959967955696486403378219468188621003521554321595840210857860486696482371354058743001728642837889788606962310495958729543476662927057256117088319280968371172039186689864419861297159896689291084486037059122118875419722466004058100150196945126780852583749058747225158063807717109811287444382430718476624116289200157550767172949824042923605565272852626320494551043197819377528313521487695411228820659135561685723222541154750686924815439576369507777210917801493738744947127724631832837701925529177243982373878372884715353974580732506972880628528612771164971584717015872319413962039874239185019856658398020937765729561484334223981997105246785239182362640194133079125768816431550927862375953393467416918493239730621154859693385965612376579694178085814511830796291929261886778264842226636328887205950003712396639862741113982287120165711652445012238499450556376318881370487114820667043943224386799998268307702670236154772126476414635064447031019688971996144890341813435851188452678758718621587693034746078688446158397936364673963624213097849859949795516813104093081309798308686402721692239164809411063339638935382696197795996475226731672081167847188854855582910315045674597942442300063715449428326483035025382907808621772919414798233193529132841832518002382840146200849691974863693932124157385829047325715183109688740462470772846215833032024167909983999835773160107061521715224729679777055977310167113649727516664889331602957212251635772297585917608638886812073104890189942500640661130543817424712926214133728584532153046010640564098954937900196049192210613955119969925610564195704785653115860181481010887072634569695009780164943498057408460981707503582981821200467944535793977542274624677928183606692433599376751801607367174715054447530313323657925979942669096506809628358866036306966550158942527673460549925629021631836068315736157624119779104326018530358241254125051829575574212841623634393021370344314994413546762081695011961979817716993845998640370860111557589221310905832686167728037570518192752812144879233585705396338165581852315299303277441497127994659032021741407598407549273581592230954069551376420984444743798146260866793214171773817919553999358880427778499445992445824245723329475817942544913847903611865018612516320907209995785568213076633097068890989105583928824203484491956872206865101518466567063333134381955325336343504666587048072379258297714626818341694965830149730331907459581143892411928806229809755381024535203808499159247832446406161474450782434076011817947194304712971509608939370318521170125862986961334354434733526323867704125189971471970623640694063326832166741310204467716000507033728654192103426235651685523226426594641576278965880019405900366754904937166071222220457303656742058347470277172504177201765406758938578474175290639484166759908893029927393114354608431976212572010234254348750606438005893047522074976011716808425790078635097081546810904075818990585785647825333466689955390866206442968755162253881391862206310219788546504952275132939410796232553937818081667280315401193324912334575889795293774869488189402796502206685641775854881095853206572735688132359835915496409087182198160339135461090552036707940315075326515999358674767302941472502948233650560918647157060897147750816486093031577406126233764690974467790998055218498814298210403066103622173180269814706998580233337802280919162652957330597496093436285357018524410942864744789351808002194558391731773332037828090514881673693946546494337339209336023991012300909710077931931985117604662646581762973748349073301376372476332778665429615953738911330988898899818558415135645395507467663387849789147718936567791919151817024226131090737717748352829245075882672720750311626978978957598974050925583664055627679048626064628075722998007386056105192625125954938854195011100849519766828038695504418400356574883702989702251971452411215403317968007864814091952560685565808854044675640870692064249853878158610314354133135579340178355459356253508199743134626265095885786353914430404775385658796323924456253572385739332668871229473435751969608723480281127663955269777062767836902345931831823453708856016390674235133614094788912022898500680254583400220294008150820310565273699187475142063363802580513053956106024829395050348138521973735076307913881331485184905947222697291488698473761026820630030453197542431741917658729253627665919088182120566884328466424947373801483380358595383838400729087473570316131747688516658896755346498104288354879894926225532113399048076936910651611692645387048250899686050383405487209740485547870380763029901647921986912625543728262249400966427856910879170596043068029414467258739782634364388667945974596301559685436821103710228309572717580243456564202773099201569165167833818738555228057144996357688684747298761215225733477335644398085887845737293276092382469606298086939154338060148228616602716712022058665789976430488446645644977281331481472267504103108581096523187495157070064825166290710317943505277320739084021281756033692454400622412283291403989438076595460507112272905960804181634564596061817743965505063669727664289362537981292819471396633283204273521828615080106133255936258371186329171034522447685498588090731410522124757845924439741709206808674019520186082866976455700793248926895142754930569882064998776265799312748531557594022951758428001397757110251656861735844781913247357655857238016540437099973569793234145025549517277165057513316940223307045014870333172662375516179981491681426168247361542450628729285789859136285973833933684374001695232834923659254274406697876492313835372384992632034353584331454755610626328220923721951838986611660245549383751280583442885883276918229129199270356513708185312987906471057631739062624893965310796040431081861980560746680419069318773012919214205861872924435660548233258591852608884830869019233257391711816584397234160289000450170334160137511454617996473869191697809588488472518739163571083859672022030652811303663331967059699520031070629391783000646151037639257098055265933927421124782209752162149123510474089176738671728550310864524904465885622522991482755482464162074715843674490676838578267886342421367882753568940828745959916946553972933332661752214521334769152053469139909951624346698434822475868658499514593605568342196748653834190539771459387117651573056505803398244545383702353326265346550238856795138504845080183460549763082470664125978864995110456136383669424975804460814374314307778229766299228982760416807193619076411545952458164459517053070748940438292506737871485089976749736199902175650575633340114132508528624020571539968716514140337074777937426734829071100499435818315358149851879375740310800068703134740471314277904823334502076814692731412175582390353050713580948510731660209568593742319466856052809333300044522258036177625190190778155457426083349913125320966099817928124942526527654259987517449836055455410913538234689284241362918622506642026059004253455098444792705384096706781169047637519011854328734126040633485719949382188194958288178854752600243890231162469232096782843647591717263374345795249494027382078669896899849403898943416159694445280692736627784100063668077600586258819047194607885425379010792587909594675669280531962858280341196239723544140832564564754744961854691726125449629613920253789142572706156759922874181844989132595101073440895042604419949437763963113702569923253429973712282874247077619717003240524027443203000345728722921659725346478208434021996342463130343114398485415444382933392929788775915824976409766585881413936072237458482912192989331169967528353285850222515560405848741319161557982977190942599533866173708210430703469350694221899418748454051460489777180415363064631366541750120875051859108709868634678165181694526379975260001804949281268450757992235467738313306795228300968847178017555099694884465595254251668055063835490821292417132001151025534259977945402286932154508077722955741958436232150580589439881643694574907435345784000231934444618045662435479450561451621318651077351122773943266682002848719687501289829181745016978039915197025466286887552337714835150136124435952223518634868328812005418690224358499120994352823657818662017813126559181366114364188950198190811851865730238598977908830943036517209498448467893766188756775292783688557382137132401983713806370867182494473126601741723615627571643376429011035870041391349745699364139872575489931457363703491747331379596420212454657489622874695314058594068387958941789893902786614224786459687514844997868073457724815832614362648734912002736272549976763586328484803583577147514213547382047518431933318287352469208503635370988507724469288560725272344225525419601542436544707164224631984769376380640821207114720253330476892324037979363244453495614255860108623163225918045713716858676460159495787462016158478368402302612089481205585767609894803495676199864197032604320727029982926226472144166595900187012068462419085951611830095427036406901826062127162621654770002725645320913164325743436094587506866566517932733180610674053699386823512248598134912643432975115166727302497643729450914538221329265908636536813387986077108650598571330760204330370882514964341699959368779322002265057105910439951467486318034604500029266944305909079179408582405732827765553209307920912568882833505194744168297921044108818463028817962628141655047286694031850492794364465108595834669502699911429406744527406623880885563834770459829437558253110933438633602089674289565609939071854801196254993989078388895488364707523376436968821365691849038851091568024971833424255763918217392917509689112291933974755087116428660139725531459592638752018429687918422184287761839709066789461320173159209042441444966436065405123914821983343043203384316499651891855472865521051441597320575309831753439031446932454605677450597217428910238148381938089842586541515203023842345497234190658454998848891839843646581770270394883758262006356302367845445340849001653258752594623954149096882673558818125143048737636315977546866619229417393392735464370511832641289154558144289461075872600769817412024914372734992211786314073574864332391520879137608236143476457944052006484545917712118903987005091272883066641249909267550247519905179294615119253322800601047548142705370064966143462037482168194642391382908096496405861535922619649466829336092357196091232198283617773183805776377092990269140825425189386854010638134471433749639581731094873810735187344688451845625904869086727503156210174010294479786100459989360401131808347393431154426887740285550027853850099959192475678413524233078478151144308984713529861239973938210218983116207078918970032826837188558403403951994786629304149782972402888546655855887279034342532195356160858142969132764963554398572428529826268860659274356328668659391264508602425208178354899983530205816722986430352197105286616037938036157506346034377872962599736809338151345006571152781930288686189342750983624068527276515818223248949529662853462914483875365479608014459184562305925452516410942421172980497924371052613765723866514373997750855793769114801807591416423139036597386929506416427403566806451906483153150954760950490364909970638859880179002629571374219828794615092041841972831408829095555454210151557669446517308637381104241920628650149662769184627573225145757300874806565252509803372942208245629874331577059202815522232568793900823209362878591411415241968287026482966279658543611961805207006180986056851156370922019239146924935750216870940383445267376404899494989184158042470129909510482226590898720028330759219266914956353206040073803510184413122452528871954287357800201615886154116372017253751265506482041194617726687421124613770820644408298160898423488220983006480002069498561844339080110847020689731158118627882250965211122594803659417016282086913756970339616118555113282909788696943685443697330613749214483247682352083967620253770264241642583837515020153022998565297864111272046973921955888926299283486766282880368553208504431937692348809325111942389821146702314774613224115957055515666759991308732516012961164687842656039449656645183729142902843540313535584169727954951649799545435302032649684590426582366506673622403354079072765363524378536372098928007096342937019618263876433042915323454764872394996349318473297787818500104726928773856344795916023990173502730750321264854418760155498206671974101533738601389008563712970306450321679730480607210285705898469059931496626166732590565590237872682469783820921886951833429445133430488349110836237579478761024146917985590196252589873156389099044035750166800956327434342644283216965617354215384680680457180614301449062963028225724658909996615655643988278122518518723404864060963549604322473200798122482066254338044997357270114239491360992356896193214514771244074745619728068327775843313923411912386285157587429676788356497021338317468819500334155091842420607175130779127391694720457915586590039097683636610531887369716722500568243981357913277557960952574393937139528871211990894970323362651461138239428534569280442030157320743579077836459302756030068667568176535215309425467653647052840491740197263628923583532859121731046639358795271639722617111494850521644344453359425393657754128568794320237769525050785530598544790582165136878835129518452626958242398211964124683311620686947756472361336327128362265328238774760559006085811866299843832673405015235391080933650872152506782803473071958990909305824424400938558432075417020339943575503330245274790423478862328986013422798113764117863268718508675960066894387259651712250030909550976766757348127692649318485932086594323500870827271628904518406312152664752407605935205881589971366007680585092698444334875605333525553003883222319217784888146017861272786050678900719359620749838327062807893907157198519738904236460346421028595902592317360867353951907899502532696536949584149584134568153369633254304479836513227027828631724686138563983029406076149633310027041078032803798799088553076754171552950776445932964517504671407563447346036951085902073532849588534008106877081251386565216064224671490205686985343412218418742674744311863700177436930838140697066708641499966076320979507206302438116638673392204602060060819106309664558870649200849047122644959280112364075151186483594818895266006358367200910464814102651376122877584753204982087922203377562021211636753997301581137060143696180852804840902655862622356409733427989317186743657221117631054114207973907066510543640828932235563045495012065464178429525482836483004408055031515536253669613829637364475714318788857855018217933402600846581937349608292732387539288299801485046110780743665548923200689034152051939423654287062000370659638858151806758565114735992417116928816923551195802223209427004761353063662228543896811796131703710919087852722481922567797683376229042513846871266145983180324027051713435567581469683025693114763426005981475987744416337778269791250358265071577606725551009312403368238921596015331811971520903265481910482528325835541189834049403339828472034447601558669063782949573340237426904041722024457229255918749662482717801282698808996419708970635531255943858494582921027147963163105549597423664313448952932373895430053472146877346537027562558141088484204811519191588639656186082435323077585908607437176236185726270809310448868767048070219663145775191036650950999341920081372447041081720420407867196518850709149967905190676282640884085557481437078714178261352315076655336753452889889739787730412796867091423586847486995990786344233210275782904445785619236890202909576733183025227000276200139803444564897365466216628584630143262220247982226391339800642727805098812709984355923001188004113025058570010893609077012138004108639568572212087961231192287883949381767362984619482043701520879432474834532726278988119199286905337087069013787428374137597496380182642769074566427952300301483202538298359330692165558963653313704110049325317309784735017265797012267717331227225222693331808398200430014506548747357883546669787832965173636473655081569367194770421973180707880362822229938247013213100125331253954213157569168262578535643293588446499888875493942236859568203616453208511322277706515965803099062155731140143933730078527538550099389462750113126086282940697580804856734381301267394797969524070824250917946663865153783982618667048583509875635553651803437519312928455340888727753842213131034454995227907606036822837927945914892663617325965519458376007006700425410968517971950479711901848219517894770817566752844978716399178219745643469658782238376397285979766112391200260903691548235940375434232032957891248067284748527673376194872774268809991297953141653541975512376513220973933179684715521056977790028091230643708014424076748420142521056363295123868629182297006277219778029052341801418037038905589352294626829057890867705763556555681145368256697912093394865028843843845315487516210544089178110591273274173231545392898253295803644446302135298197544656923791616973780744057606789893897318034309544216596910596905017281415186023032261637404986350542255157106330650277375024468941364954619451470992923838624778538585204244049441048169737049379073819512717135301333475762820308923078434851858242051068493010371241683255023714091363219599183167964989384180151162657018001074738999739982522399235124784332665438106484759080372504562032612315435933133001306707171008977593869180311687677089062452814767376658878609513417104049293813656159954101686812696049101770286898767009011083115269060594222870269406661472262008435717769447411644854562875631813976183123169386301263755668545292454937036439888283852412769111250016156047009542112324248638235755425461793732226426109967545470602841568118461015197922614159256700952361374707901715414115242787208005883875939260499621520508981564174706354876086932203953204559365856889993063634724087666996725294597949126434397540824519756912183541436514412514293467219422893709735962434535650620264673310892684146488509183208854563443594092051038806472332981904972676804112340875715637364372728584698494731802356390723067127871568186574122774230780319512381987119514923408481865166869500759662521977762371978271023693698386216181813660832770668415756922713872987825120708333864994405146843211886946546781609990040825931611548422145611924704544110442809008273722546661008136655781473991842767376473620361695495660892649227070353375486173932086779291066157722650136892614584944584883842991252420878381544932397801864993930387735158419199443828241506626065203234682996585617562930545675923242112777581007522754770171205632539898043784830694660415821694160921996550190560906254156440777453079182393775079899901587010506247025005127761964519513409079579731323509883264030584068920554953930958859684931711907251149883174237788166504372859645864216067240504177079295346339117193236580330428689280533639702407649796738945239049522129583671113381172786233078164555088392460143722829771420139592666321379663971800865838034094384756271769268841070440737182026619478304550262036431313297416096576609819497524335602217807704005327163614947063841427666320618361514622508473688672158813842534511816175908623400321425664536156902334797275175856382054804345243973505071896751699766119607545983211582041433796644224770553758350827308271365120907855007962109537164450684336922173299990302532646800612854835840009901441989648499656283505463707355007710289689294458096925179977104143063410733598931699117349968170071135376032518376953033004450240869388648733954224844563787893331206127470197930109165829868227711347049457753702824212733746977367419726978762400141957026123517116864435001088094586311347723345960562808358763879551448959454954360973556261420979260171496212401393683766493180568789902505795143377261784367214715724381440049776276878986079450099072750843239739228525661240001494410000137602893091470693956856467374303980481138257369252590076761698275508107499554754390346426805341728622678848894053789821898261204820363327089985654440852580807118643237732632155523875451233845496708256212249070496704656181733028734597430536910030625376706696638552232418762521121584823689364613948064656561422339796011600970261958519760694848828093465648427034608699443610046232705539670484085824283391925197201126223582088582275868295602686462598549106236214798946847230908152319984952098232101616362608995947642278579892636828388895299084483546610419884006216915370667905237780579873125614661653447367635975560465879883771930159216601177983154270098383888930957742598542230855075198418677202704452068341934179744533018834057861662075241707192631527348613459061687683982321798084583652427517316707010659806002056313218240055628805681137389711069531210670418353338345369342749397873659438640860656813836927330878657674662428237393933278044117679919837106507642022184339005461483211835376616189214788028194711682866821991605667331907522822077961848844743654133378529934341767123089426814502405790460930597120542190649819824827039857718137448492112438613473347284976526662804029389346014000201589243847543391467031970667973282307877533932139303666601274458045841890915879209392546963911222965697929044120667507110998339130672816723312146679681869693686532328731646569294929026676690942506577649160129411015462559732098268649731256169469429821461032808057214451306151611072072970582907095579348188769520591145111622314112799298404684130134100350555532845534698690205465297939046611400729657683284491005732155901425156020796319012037348536225370181238763133676110882594212700560469443461320686219247410375476013818934830473940997877274596775458231087405719048008765550165488191267239751795421687974302445221404773426260371331822740244464629159546647244217364279843916641472692803023307789016891069193383748606190069046025079796647762504717047926494125526221684543997240471966630039051391180355448282904367661695402809508603536246300444235364735335962674249360420823012567276590844171900719327910816092651822026463418287650405054856132398567578845350765996872911618756942744164328635610318148614730661526829002315638063339456784398450021379446858343962316206781529104319542572844233441104451315352487803681362639320097075849813838579361159103798790613579628179610936459239419447053848332729294900310245073883061291464495148863327031226882747086264273715358682386187469852363657002529351984484349854186152760435315008711274422681583644321156781942216975548523886835902179590343689585548843160608972665353134957199961938132287086483957319242599749328614078385264054766591611878769339169805065914556662126194639925910969562813707883972605566033345889125157006698550563578072874456819367820801241012175217669251655001724045042781226560256547602542236423326647370377402041284674912946118427043689189718211785640718154254031414816934502754256618683934811291042330739422736982444562702487619736228431578221619964380381372712495155900048052434006443189150961322501045369111333931685880037689955171165229749822822681911215317280778249627656598911433252599426668724216341827861928755162132602823888977904222947790295144940095348985345006555062635273585625903000061277352853906886601609706079286970676149796097566379341107939615639279753396785706185879699903072932505126269403123627874157619782122627046355935701585906512021306011107315250323165748593855822595771701903768823148321537086110991314536988972664305434058245677425858544445227296855295001336392546343234242226510379376210226068783153965716145938138672660427135348415138519061397298218255179550609730781357447502425546720847516168730507236883731059258403932494645547524246157030048398609122623175520304383645005542170470433445876334104858550013542826686316554995719966926623841508800728307593950178890788787258936939684928110245825377476832397654483578993966701251310824617491809776799845574172825211421752958549395319631220215242684715467995955079498341876957008949481997555409688927837230067592012916718191560343981438924520100767143648573248790591830192491577735378096170743477481627297838442910528387415212135143781899730091300610793026348018680268298373562402437480269906440026672788795899318471477775362344615793467780310367616763503563273811485601031169414065763591985204657403781956215637949344509100192312078480296390401585322689237672024936288335783164252858087164555839253962627184988147894724446153679109327448506687940693159516550715398317732597307790248577469834985442116742771126255388399306073356963811968713072412609103722135856521310220663446811766711825945765373204111263600915752059034002490731235365572564260484994292538357030765086790430878592886205968915075862756313189554095035711224010074209136151813266351125507384806124312478476950702159324888305509864377102080531191211074664210795746040094141240857089372665141142566905377430808402512818498900703872105702188106652962640944916242129855205793248713122843268557384202906439287584211009940854740246942551413537527427229836104621367815090140850734460977815014961002907105094796919566189786208050426530787327595111498802405833641017031666006798764998914857873945655273104007145233941928914772797531408460663131381501373700287489180385873876965462318455589765982531531732373262540726604409505725473760457152928069558734881633561536054348218332298162288839910140689576878283395105709020217181068043184304042639896387331948938717066273269889131883553073057345518458474569316234031248139283891101810741956027393589756458931539056898670138949514527744777150627704076153810501717592422152002974432898820885302221385319601622289724024008793268837990715440493857163167115951642406469653413115927345427550956947156742512126326537630718293119938704844177237921355820838506072889392494894443788433514182762199434176053118132585496101203046355737967170522797665989060220077370592751009592638426858100974511051322954540273143654315134864303935301133148503619875732239997606427277014506998018845215252691915147696801609139870983424381924744160608494293038839492931517975015537661038009193534333185803606799675383093740646384649424709989721876027268457209676769212881181191243676500302828316335780895836758303353326822022723038905452554169503555801368531688112699849069007263418884808267238697947322634475839232409220148067619949606793023828324980184600081037220478571918738550530628555920276736031201436908517933597883226068376781120938950805291968174576801401286074662295075777978811985941284814446685116952274816296345205500206813186569519118029191514652756585178594755329102771161108654749290943377912005213825897152030212873258685929854947633753115957013339613176828431757888893824220400180823773130405852624931062777762623630970434339618863760686280794466205957284441218520648173112678992752522219275852325101346158935981869294150350413988987574502188430203572580491614868006677582640913736393145115424285249432973444476080998696017915415805333271421995592511653966990269520139051547258305635928222893595712313651607386230964569957341962781000181601124469754128466025066471299490233973235645271200742874641164907786371337214965275046577439795539886370906390471745394080799809308884894811809791664850514896205227144289853525797629255779444107614748734030411141865870078188073006945227809061544950262433801150830213005374348190326434797048677570394931115757793841947600054953607590482438515715625985709588954214958573961307195026189184209627361741100296739271570049490982519943481108602256969524419626328568256489331979014704176871255925852026345483928838952895849256154694419242671089121859029391148267515102563463148983904387638353746007520759716091003115419582522522890950891501088137894719266242621868377037228742131093519624940771373910065515026991400305950829530024997754648733415494502372630684434971403429333713502069937694364212235047503232933298865226813785000013842658268305011161500579155510094881726268120947104351358098513758813897887544829771462185957551246672818919900464804959044893468789946819800336292960270324571005092779813733876295009154101452804200798368029891159843239392901027160018777900037931648895775155065252179158392119990103264282925136101972077878567062166243050471490582784845126251111154044137770568593881524136173579167871416668477263241684324836695817082452497010172992110893694619279533418499117784450172878999984301993715483764233768882603404873628513092888025503089668015129901996509528494183117944186474003594439917282497910966632917321268903383085764047652172445782011813461450214736325797499828096322557278042763407514097992436664901887796904675966710864618214884985261153672530481959083350119871993158325936375596934085232146206177652723625851299646309401775194249816720561317975122768015341389802581195052562596538179344037019320774715546445350515283984191483590002077023158472794455300677018925405438831962322190560773544361797249098384695558052962869720107058759885293561726718962110641369005024443131073781739093429744593051383931684358296960327381009465368255924351292473786482889069522436336434997601106793895810772819699527784469211391961292691145254510571507890425485682505621550062639046943388330903168053545302905948950095855507801985886132459259937563543592495327842132033185314164724641967349510182077273437954068923778250382869198134751785415192438207942495371276318127393682257890485585795290410174696290239351398695926020191204650649050032023479003570980790360810876635521393972084964783688980749867444951643679700728982700552618857821142313417620138637077155858754311604483945476324215030394508727619810128252214864101892948301794189910487810537192745689808323829600836473227962069094572805840008540796797164604994433368141952166540697471621425673170861433808028050237992765547496651778426191376850096846790006265113674745512984251941898114647811942497530471695315230396141867399918757664353415364501693548235594988155321617565435752664697471243956339540832236745553295470920003905743560147552353387118399450983773801824092806553488186038492843850381663925552431112251206789397236060826075646867073306537552194628828942588065371988781210915990769644339483164250274485429837264585951557902412742046598783514683140878114783303963100336930765552235978127341001768303862138260705669436814949744636416509468588823784384765548212108781526399943092331532582520969916044041597070401071727173973054813665024437233617396755719682274282582231923029623965988305434407784596845747636639330584469712179209003190711206444896139222722895500378540602231056088161145020136733752265733111968139732783143274432479457526383020734162835353119089077725422066623733402833947188065629678257163524455351415901025325029207691512226808912340647626118530017391019410369426703314544871502258532962921544305496269075843426373233725904714578244238521681385706158882180633269660504942648263985260979055144903824192074621810566776951440689390242157292390481491548075797356791380227839541478934635746338656615977741570981190581127427932147808528508180272575168814248136644357746175861072765680676221468405457529044591609768406013819211472771490423199394061111404304837756199337353392010086735991038406577925982149448079747849366973738066144268387630533699907969390173774294681645240362646629121105921612723609399771312252563881351119390546683773359507201640055828629804921735207183910332632002589318340372456210964167563378378397335002793133111493935477555979108120899105684099300433736003942523019592581862916650050520680535858166955679328151727456970603542183684696250216750733506284386917558061277456158438839186003855174166239438334351927588854313689513282665861932874638987849033488160007757678586027219880359515812058225336412996678543621404100671782801804730526960988382014676927556643464900552085256089729860891680591077058025698988217690983932791034552998470523670455919841390835565652458573853529762632581129211045380263529791937017919519367273067675073644242236739195145069701205279571236622085291747637428464937090951523554151461488106260941283271709525589805840205631239192615420050076654785927168099807341727889490401919462336734313419626261332045422255286361603681386777411259050964254253934403377995002328627882715571437391730198435328069665308639452014855908170232845386347679670750419807344452686388887618586194224066174592061533723404907413344090756276833312629618892887050986414200370577001271598125499511985354926004826214333238868756035335575241769137593119819113903129319664742054192040724631082002904758333046295483397047528476704034366940424457762026385468514592848531714746858693190466563541372266970574256888025509670715507612384085286138765883974230111514935941139553954736709648977109035997249339521428308658109201290791693531784380796728321538118013953619748342316276941409336280863256043500261914973717823084669488073985154449392771295153953466694279957864674172247253728945375834102098768553254464448929260210071027041628658588727669503484227952288827649588306618594354822366566154843718325583410025837655673664740202204366739275576877128696312094301427600337593340083793091572989267580607969876126819582194978957526420878488757717658877766480278075604612333972842158144639571197725004651127915947116470741713160033127948184109473517920036140311130499830586801916319283950778798915835227097447780497925552740766328868143421020613647149561298298146193453002024518919619600045823411348770722286790942163115410817099202442682763691598101499012930563271248278014060051388808500370602924710629471238462541976233973238990069740749095648739896470080812969123874271252594465607136118648029997463001054608282168644493996721171438791523061255651284877562484392817521018230194865067822115171533982352609025598758138255026986383578434352716008169527939086756308670483669664968298345782377580880447377187965209847685203853100055337189264960462348353290800264759605518976091032648055568920059480124565698853806156306950134718431790866299143577594175924635993580824633125016016036884597787368845920835896755411502968864932547129269430480252628586059325378621886441563097928084633669329866693540080541538652376863437134441353718749913443039243031439504091946682261843548560498590920924599462580701280735004947384283111375308393847681737529049651237288240800834902527771628633012865636680318440465982900159686246713760460985721587993431046036744658550473807613733560556269011965319495794792111849640605236168709534121621164676913645128279499789492752076593071057452655312462400220675305534495978190469881800739887509401572838708806902006023869967053880457287302225215201661225109684872351102169554747664810409224562301337596805056782837751766195259413081618475018253926294041979017120470043167383841551435021376032535329334626348019251120422827240647481871448864532889907684119459153151347986757968554471473807711897692384035134469644203658117532160324393902031699357714444430053548448583370707928649877437206218970370069057896951508177092694917094985506111462787582616684895052552010879193490481807233108441912174352989876529714550817082145978767999892129987995963368024441639294962993392930678771390299481140588639953749186428708878244862319956205679692291396081736331191958819647380302317412082316540041405013914569430818546359992151926582049933484626194624007596185264695923762985348052085073728024529911981683345919097704172447694203247833011778252147367266034462509701384535423955194915528040739807293036938036418581036963548082318475145328692485769535000743037608538815120694154441084156435654944851053242136784277476399007930116379098747311731123432454976788530850455239926863697419460147743363677045725894210397738329076034022702642215859108471903094474018774037361373226906672744281647346523240215835495656396720048150563136103337993308247550635163766640924381396176699544341537570448346976907317924153465558275265523981536640666331689113784543603115610313140017943147919100887903913980914867464371281623322946112519638533891439966491005004602881322231684771385354188196774693924820124297612716822734125440136949797214224764776952357464164589869805713535437811833068353393122994811911405703443449733533290733654783885016929443016572596649358106119559867953432418700163489746008766802174016105933228070840178811322320636981950326110518723240709369338954340119726994725132813802659437600884957103999964182925572201417096671647381324316689623057938424727934550698190514516930830539059147751539568167035149930382354558001537890886788973174017823663563589621186278054223229967848332403826320956757666601032951966523141387195595338782220628555465312484284234208628658189690458473624148667569248047422990356423144797902552213600540427664544185797814723970300300589931170531760482633373860394460854626719594584056404319767886671229782464820363212287789536765291089786959151828339128401984134422498465836205112700686774152842769470313673490862836771724943140930424217074632204802774428501097635785303609208213230764773158601827370537859184053091548348096025020726233498805707592067429595241170035477275772069521711208762093923871681616299122850128538844795308505213078499068694722317932467457545697012489522662273623950512327088623546000912145279738335898170069341479533463516212955590704096553804041470585447648638735616407975731195211607641026922792548280849476890685717318707742425982239161392322427016650441903424750350366041026705313707724228097881145334153447242234276360514763670349273982853906622507015265522278469044688041172208347090079583733449157180199797587765871562540845549965449668315264404250407323438565499998912191625580453871283709782278963706363000702257914417117044878349725883724625891770575905140603716005446898156848996346606290090532665766527267266120597522964178317359232036354207593286728200626612038744916442717208473390039043194164921637248280304807828694133992624037289723341491005790249639438025134775333179262886129596528783505127598986953148057931342867622365551914383324354940048576018880234701258847408336807820499352297119822280555879237638342399374214094095049424176308758480435663355274924870643428764874078068310477502256936051649231255467917132916908020056969954461426599700994985866330325920597348418721615813808481797608715540461845638361743821907576611035779388265760029520388030270470130913937092731696588173154401909004284968184536500121662078731151178499814037714171124346108371863023713438792719536382092738065537448561704497768750540325445160430040611613367713043254733498109862160527514851264766006754310663484899541949923715312151555243545076399943650834794936565603148635979701519772124255400915606042536632097827343805660964053762914975204692585367814170012137731242135274005799402811988480945508027108965671433448602139833117109839611472585833512102980946030735789928837327693962584099682319055079747709462090803321209416985195001775913091329406877164439682473295599968789877969631729273758092096715300065896349254362176256824178889652534387935485704273834225439840403849337216337310328685481949865406986312562985452577687660167528197177661971951155036019030425059226013176424626257681693128965706013823735372065657374738527819676766022921539711080788966899165816051182693809881420201860252940665031202934997914053985379738939378654101790797455570028666751626592210401070724722119365831490205598858823792076955677187574090436544637174567318708626044483098194517795265220490121593097916122741900422542790437891291432963709697529354901534164421195779838489843254893870477771809798158017748331025444903289829281852009753408165071438823226047651971519078010732801890971255670938470650498506654870953788462793569158830473232128155538466997097671095379028241200418040903746243267083717370660851035730819599269431605121097125037294957035403294584357772804031709195451526353949045502860612365241748829105138200873907882094794746727478388063329943253365649663369455454113585524833509796565222417715183187695159275225474423458560538545040613703309145138249849368854413592591109488320341055562783024478784816302465349908688443966376002283398347678156266928030554866126155586675377234130673298730599069064029354594806668714276223208791867737574495575430879995423034571309469031549965893145542071991990076261552723176343159655002788984259125231707912975852506729765385034879532342625775466365884265414846950415104010109267551140987798089396574577877196550476558028213003851755564438506216914127122563941101421430839706670444003063226988834978104798423345669728995290620843028729212240047056445087310495078373151565492481646605164419441995610246832929729070125060281471538188389755078532446901150190299682925241970108738778875443004993786109712137959938365722786204282522718356672189384611059964735060042903013011343559964029561620780071435275600431616858933138772146530647636447793510232170924313084484142752350804306338288981309681119378742632897231942509750913172991946879710254260292063367312022402739381105573368355277099410822566020295840696299384028572458266217413371006083847011413509045352968481763768828963352757443483361027026686475699781720384178659744435987643290802943731721451203276948440091464222384224125597653001304775320895062940310734863579582800706762872777342559845369194678042100471417448374579952244914030004364194281833424256008698567731912392141870108561606226734993970185351841637167163022844103240878303884564650876503867597993561853243476874415907048523143534152976455770991812173872374776427453270708023358617046312121234703801258695644536559333529538381174776243144285434693769930678993496048086498972544655190075942885864580044964148883808345941257980183347425712394953245875517231921884144492933602443249904697065807980467767903430826438939137774745440755375592831410703240317507226268462093224172273450060810262622417178796514011779815988728044737772410663221514393850168813832336291319694525480050994622716599995619325203633260008421738785221998708635673826116780514076363867946231617799808832053461020840282754136584678855134738376960720718863003639871858818237865804096026440448548376160905427240029051950786671811663086433244786011647262585978801182888656697339012825067292097659882835028549829401045252311209878760537723782497432804499347228247530037215019844135127765407113253196795698670129488199596718866453080095784126044093991182801157339401195852049468226748139376063854655524273458235427258033622587139173850718425526152069490628786789780452698201240248720537169765713099821649292677241470561645706701654828709724372836884393563358239476842119053933360528132902119205398951167080939236746858314366106711111726599806287764292177493485011767872607705643097359571310531875798485009864036863974556084241857398305855747194824841357666452304059815627786264603332665957824686210982503213852646290667033036400385820896835009863322710442331018610498874670678887533792402070865908178347964718438950897659387412005433434896926240536458328976602413768520284345142749148168975020292737599908824722658706654248760467707610094726543681432437697130165921975899608204058220001597066751323827464802740581484480966279030765894583731249410630874852990697313212564538971448184144740471015923989230502535306133325108355843405008956429819392319247185401734358134951808010044515213852372150335376052079723421723310866943011611100366572051710318449157505792432132827569665950238487771839355804591047076508220574768477286892342746047331767879972929449027516600810837628533137087450992501463170951893202997060123416099000556572473856237176009523457268843198209812989033264215444327197400877627194968909090253991334029976048235220006355730523370558463108535638532145161209355313778695647689622157566975353896891192390576783642822361053841326260858943894540098136230522009773241912248484321090281767946979339373105333217143226742662027743856725914565938022191953532799419089581836995580929422447864017509625624840851938433958299845151374433573121499559381661672448450699816521378342224702030905394825338403101822771639330527155903398404321487156949225115715279450509980695815213561014130688062587664176744213010552987390070438926637266601189239398162088780226299313611263635840072613177700402168552851367571856770106471720085255848512223766712919618967272306845897032346927913746195529590601384669142864154725428416392284563899824634517536203692456257600158954059545012602460637801087503628836899993962596215147650148728592217685914645013213961027763070775045349912034215811270604788551817743014535044983092552893914948903680153341368493719685488932139749467572170765912891306126093288486046467774786433578227176915260063041845731544850333630657642841128707742207528958241726832515362593263652960057155359413571497147266853413342539212467182335236864895762694820201434238496053195136562964869026908331038478449353191781211699914000268338185710677674813241711233849074379821258716231998246135186426090161287539125898398110270004617487711345020047839133605712988079522640050246165679744480535723935085680109782896880247049200385108890492481408075790332334719067415077788574283476349247573357554772629990562610567317316288610131393171981720873351467549924066584572841545276528740434151652165265782612171578944100632321673001225266180514550129443316626265357138976024219319079712900279902632408146421765292852314380158299590349031484796230097888170883101870411179197835342411297484096710556989980077937759659605988207438666240962501934129773575431404458690504080806881063533446542860977013169867051194875114274176708616887430004682133746740241544667174759437567777719730001261702521273602307631172473043863640086676234641724811683498913528437558361251824951538233786722884630230254743940005289624052078069839129865996528288617327477291725111864444852059624058231373210722904625904890932707582772188521753654108450624708018140555423452778316809996281845924818287461183103035539662534949350092584217171081727896634784155691844155279542697058044985269042119363101177651484010284645285126734089667377685484189455096467077917996456353063313455797045742674589658338980139281067962327261133658142578404769932060933278093786497171352083115008707553996221833353461695446866218313080564163412941692421891200688205104369871479923380713961969953565792889060260691600674425906534932378040253488853918421434063258709393452210389066501084460415525912385330195488900556034087988991974649246031568283007841510574588814020983163528699666500297012790499724215338450380359041161165270731129787277928680350884965170369653367721814857402499627234361414355972474697331187285545151916720737366157554823023757963076271722828172785178235074623018182062105969285543740991719681195764243245475484499925750017532434939840989654334646738637795060026210922264279119392632634696498598455643093690288028871460936734535577637475202044414540918380437982683656621647055559718026071882599914575645743774929194997933317905514089073422131571593628815342666923995953890932108513107974785884444496043755823499570241043594180737591728988689954190823401903670697015025392701494923332282307457767871302047795426576499049549343240488345204859428542187487870080507636061306871121582793251553524997841128515191868594446999857784078852465035980186766933526861445886277261914822144462298365769532444956530994536543580865963231962521926043831175237910141665225245213195327106746447776187635754328842527823438839934671406005541567053860960120253477156849625763224548817428963429996507800743230608407673321956188034845133478259411360485195256588896151598618419941131658704347557497974278862133525428406643216233165998979781718529770655769507286455333587263112977020726808052263019790023363844516896825167115370110145816402662951471552892191316049250313360846637149454451579281530926509421804610635781801871717195511335169432152299900808956541869430685623806991830586721742812749804197526079005096617630273038651596021353564667440204814248002196186284820159624506615071844763236479446153284507255368644729950830509641411345523280791888287319876326790053872658800117074491537036328517953011327157793864831195473728433105789572381005484446585779433917306876661368390535171001562207258691366566320250935222776223123930898755458389192988528877157809725287990563151478523048946767328116489568431891294583679058508202383759243638302572503542952687985907900848209650801586582986965458088073126023828852982786538070749544602933226550312857020626146995749443029311212315482668229484040085329609770078045891834871131653115401735129388220088976484757856580393566499781134040830146157672000433792060506262608946017419757894407115075960702495942666994245796820134300102681973354422182863933481312230782454133251769629815506675874785880856457333972818853631960859363726347961728289267727064700812777916503051773013805479678368864768516868214373546133678528027050020647324025967097897179975154700311224387814924457963149745215115040118962116389901850318398318507091052182897011306351648083638056686317195497494129170596765204936461331081072471756605337041265259655819571200583907024893576359679181803741666596529934917904779091645442580080571992734055139316462584082886125652116674206997381111429120521592469692731119167477720113825612978518017141923042129265844117021774048415887269695792467047455211802203293310424344698507166812802063167087114776383152214039779762641952714962122761862043184342928174678974928568011227246187831654293926227308377446771500413127075164966111942950946855375014827316796467362642769602993676702704006848381683681802479167564077354118768020028391476097910693224261209810741944613071065406778478148516864245311617957966102628970825707640279236254350356556611279980560788801760265239256700802442947987127643241030584502095273246803900122594861741556287454331260240149314148841110275645895450310955319515936403190984918706846755033922131014923488100346812557409384241265407461768378330758901357500240774825752587548401206987886726191140855149403444715606392403152085208996893687029343770723182432930409119966455192627730450732224243861963315635957307227788134146627233845458591283681532295819114584938005194107112397723539513234419833079307684296354160654097397110704877947239340556993140987096204237671985876778109340396759964327242778383874406598223389994866340982289283604582206277567520222016544044366517356410173418149947824690560269388476174334921280209242104192250848635959589619706097888672172686790436152231891902363106925014428950989637184732106819894699516398617681385570934820537508425347931256358465350416227878809241809485511507558678494076800669108210850944312087736611126804814856798274387398671170377547672520622395638953955620862935052069609516237290087053382407411969609672486065500799040376600596007174328098200789408229959886688768845695962985025089041274303134529096642141317612415025048373795342636666189061916962111163115542706452200244854475611620491597904728657434280175270386283244135571746929191585712044286064545019007114423573240533217383176394773782927573893929525739636942449326579341601473566978259840879776295937246710767327770490172604800700998317112496582073331533500588607028827265726530043988845493335032473315754948798205653628300376815079873817918571273963765489921010531603155843142025987408620238464774342437649571777785156994021435616234726779925587941995377248754989890660051305544874107378056771169103373581179553225100612110001177124044969673693643574696542164124341288549046797365492106546085054482025859161302848478780751779238783751772119981220792796269728901254810701568585282133123712685884195546054515484150705559392341646318250921070429203990091943438829476848479050239872723296777727266234651267451040786318905919863840886845916400153470213628907995359082104872744636541460192152883853151250229097803595333181830946655193800808059759184383410915618118586132090396236297933402487900994316508349219578403295176771612751110691999888087398248749036506723316514194745758258322220942014728008196100807777505087820615902632929079223627898507984666155743831169891305138229697036320117494868964663348084683393550771662750876023017496903900745683771526166287681197557079125626002845765025713953166102556003807320240138172481358593473572428974804662433530358625334629841780451790968987899544874414393341952116780565624249457573922076510847606737490523939655465912207696481330617566372746611850192426782440522304476225998320340851735271102972244739000397694783540325098935568152687532649682024334855643560061566866211689777734828841122952496827644038468067083086060272656794358348060826591925323239545203362191471800425989265599812608928338273056049826989202979816479176454979483189814267753620960952534609085256600560458326421898161315820933867478560032297860131048861055232681888027450526670475424851629680151819087803429174855990162217716027504566585339257741749479352643977200455665816887566325971681542150637815337616034280403450987751117141095803331121945913218197815655791262641386018242409951738411435143760464060752247169637807605808887961439471833247615524011571379298493053885810531805313438857420708025307551355803267339497524886960668223914152685037221720095000687967924847194615718194476658963220575483960953093990865707238347585411637854538000190472309747803951284593197391434263145346100458513381625844696700082338965086162861936610033816395214059757758121732047939167532768609379545718534132574326274650172700984066385584889977688787714887786172976201570319486552594067372983411723603051794963907460616641209880021326528025291930074753179185193912297584165268730327463168302183249883545132755030235628635502402879016421371551772419313612058017262363880076763816722677310000954081250711000300381549643030775827894776423045263934662659387782260291682875962026562349962094044993516735433279439979361275581640153696565522694532845630579953856842594772777137591262849497713589475521693598895871923483766651654451494299743686480595276411525516626768384727497696776273854225310513936938939177295754016807558402711444581300933578160519705431733266089022165124301696311786604634178991303517386661220786547707848636441554353445589002461530088296219061582435833083163663526051364245547992121722869986540134080590644388476564812876647535679367445882475427770154242803976247023710782379627962685802109358253383060375512844786270798062056478634495511851268428754409249982906923923346360496640407340356179718658126163083477912196573013249717063606578182237979121442562527981234825897997404782607746992350125228968682825951396944090978448847132228037608577071928265375851520915450771644831294148514187067959488700304420541646690097858340556534414774501639415229876104485460380939683746230041551700685533876391951940942257151644465940761104677469998069658353841526616150434455929922135920748037598246357780923077974421923036158710893294229522879911694527964467702354723492130703347359588133735309514570688488060879079168717825795783758449655032381612169481321943723203150899412302997796956430246112586992989656724105509527101350197739877544415283266785209200562308164426207007089236419901724686710516070199453443877430611881804043246242373703623082561382345387174105689896301724985586916366268072847403423699641883507784865475609876826702620542164543106505752931264622797525730171471675960988066968871714106521854830555125515947853727360179996639440270073051381526112990490466284385317281650453408066150988462057676067038526146108496176807371760716021757197479128106935724488781911022704090936853096545868979410339885743903218252595596057567290993530915607110565418064047533958867289381266601038300958984460836255603375680603928227558982593677985534406785102726577254331335126087533794428760177294208186045058490902492481101681280513471827235160990513742601325484778831418819154225883286453062033241627819845542768800961410215727265070682708746153712707790235760630999369947948043985406745185615790082062786893391870858991453193601722722406709286843386359279701286877140805812652280448390769925234237391868634079890204151038906622852516337204997615257736220817702320195666835378124864808193628821306207169120385656258851454382716624786113149237293888202757754022893376871637861578633345500846820918618458099154473578197082016776669839328072987074947488763059759110662966208613809235928250348192250304040812744057333911037341542385938511300829867087519303428137388361637015499526676535626212537985372708700813390283006233035391864462037743321588245359289900769032773876331807414836273797991758471657441756312957939980916029982530204009324373567840191074050580020099228692449802663997560406697235907642369376071091026507111893379132443247072756523564998771788219431289907235394045137272380036441545561203775793574012414183404090316510257400253103139617076905641785590233860775409890776221227646385963658446349357347359532024656653234472521752734020429589083228280599638776070418742021309934650442578904685833833179374053484845538960493544261030127750686317618952384071623371327046853930748709288232254306576164570866117006900569358950711101225903188574523810913669412716621196033871872532302801026155959008480018834135191577861048685977206104489256478457108419840440548289587868040331644799336437017165858472840699530128134148303414095755350785487652323747573072917956321015669755959129439067785142130581010260258053782879877305364197687831713516908098159338558346573202976441565154323292492753504414011434818725985711340870312878191425141386441608517909416092024068879031488843470624677302977357573406351717230955646313784718890547938569773038310886193392200175313123150112274755565209650999272719023964150857767495035833548495313609643616798303367182112118454921698048025437158428756031237327348722156082727696784644317065527261727777644578214745420609983635090170498375937913047804928156427820538870740324893732491920575266149082459577666989725492942209152704401776549036709681696334265394300127880899016637991427087073203578163513551549643108744607090906311881850426486138125409306962942280783174947077325642945243771408645767959502096410770260033090893800029489272439563338369096769391835992339664126174553784594755499053621238081212274918524918696462925552265017640954922928702440714246897096440905853896385471090608736336262479177828879520226867639370022836499724572573518250425590318596508891622473386955672252240902070940870958543248300096530587742300497051030225188505686393601950227357775760429205569921917711099617591126245573831371333483945653038872538578157679046921469472718652274142579426699049309086609501087374691702577430499228049833292565963034037314066044942226884880349751351876531295598971885199416004080052695766908978884278263399674352341034875116722267834735765990208268369857974203890560127919724006248461370032639602946760851330669611689596108535612798619643751600084596600649806998071590418098656932477087492831974592353876386282521919311716377208877484383228453916955445474536651301898679621595968350180307547309629901587114293221751463095016567329626343518678528606996110033603328708622879449464724031677247050669379525775197319011292118001898824136946088782890208205486624359669716210847291043481187797497392202838731618337144121363105070462526844053864321876448968462582101373367594692519216707366126051526094634884242109157134872836252886287473107965758322592934031979818853836706815583781572995722754788264140730601967502190154442984222433966860308891771480718451005924068837608140898065880259331936645582313606200135346681363923403882378774971934420232862485238790413159406178801004185904216636570929615446865319036149102388548969675641509932728818473086145830018718201976094316006294663331077977305358191225442598674801424710862136854925953092041584107002867751931030267106372873103196268673271128927300159172049654561152948393025258492085595919079715775961739144685567370429562990580567257903281962853144612294553262870901701715791795590756190430902940070686052198364835264562745665312573485460920889375716953539447886256706459056145366211736384130800495475143562611533220282499467604743758701204863467982974740932794757338197020242606244236581224771228735756364057104807176818417338459449816735101209706610797049226325474286624390699448737911478498024986033990318619316556069338553953199080457020207737166281924829420125386974834573620005312600014795314817999675362977899103182581845191006311597495422805858280407436219395732429206991543161064104128533284176551902865377280036942793908638675573165232814175013691687519931525646907757040049324871171691818887601050401924192707109304847291389491088998541479221424801068852310166078035883337882404386300748449039296158831500712129854025409293774416419117270322663281730897332924166724981445828848776867884559997656939588871873240172337413319347758107053580676628727809235981571698706099679475230557021418214911239310550273714121895129524165739490532000641805590329848114212012189160294158945209108811478922947864074463781692627222643838443480210798944987547704712556685593311683696518718894226083721800535025051941953626547649835568678029552044287859788492270662328937938888261427012741516645472028642018853520364244091466682339439951805314060603637536494889643457291450537346657642862693654083323615927858436948205672945732074356221103970743743089539358770319973818565186577280726679048133117367622846530135389718028385722410491211487707656457440296232028915898266659215540614490757260279164754007337222042062993004636022002132247989534026497820735009919803392297000295891567474694623834607891752319324537582847770362468691111246097329070835491546051493378113782945190570228371975305787169428393895377054118529089004622162065591712202351688042636142010546763488092041870079849927518801666051499060243528821116843935697229600644152726394680594816381538510702904745921882981836793729346775090879441239337153234198465200128912094690745395852151095145981867353858805404536011341665704376113209959152762996626554132676845207880522879025781762175259487797394006116603205538376515203601413712974989521112035124675701611561432487796877081453475857083990516896735196791818324664239496012919439951699931491769192978245269559753189053154091755843130937984934039449364632535543287528956888630055429346552117341599614678782684190411887488106504150341720874009086593059835087970306677079446474417533724596287843031165478794472245307584938624469869583797878895534633504618097698278076171176317646474286401231312087116491866728517155738396090279544397448869273479649437794998280350000304687880980773395374354485182018104143907013798561808539702875729880495705341025691047930644419240161107968950535908048631734817764699047919637799126427612582504352755106330954223579197202664369535379777884191643862671830844670296076933925373657539459418465463972339932787711977197962151537858892340351579745051805316240112300574892726803889778320964858465608423926425195810077060715162971560346566459665608302384359049752298761999198904546079547116161297944671997573742886106568865950680142081560072138274971787797742867793983367387962572452455882911457218071269804142552613147034117186780612313759121811958841009458265934977296270837425663114588086716006030186856019791740599744442401648282886051149582912036488259449898731152047361729406331016898737936977035877886483453324666008550002608256652510902348870820136676229421215944503817887926970662566701382696449212477515839476600148555751469763613219435400362105958156773418979706002587339114679104536155640087890198437518647401027213957524862482046462792732269102984582325873624602336806195539241025736230419485681975472387349284226633993324644742404510942241937062547428689530405214911458859969595537843902100959690795085355837458665321269027958591517495659387334188451562855933731965516549658674710829059565711112951096065495515416784452379418102684031206314644906523566643241201851019068090727742590139191144698132242106845772543115916365945620585465425464031523263556382460447604481190812883784949248321217102277879883081532536556532855888086539433140102126064095840104189450721186021866947011248381400287782487780233189399133120151609086776090112150040426168559114134070357016759700014696834263876836747404587070503094617849486350394475999662321442439163803948036207549922649124411424894424457495293098184590293356062316288377779259509252163572754288458678502424822391381071540786492678925597013523954455129324559515647394637036115994785606201953550805614444373224625038460224677434361271772711763594295794113849320103826197621381119250902695210690898464150976211828476495397458419173565365071711597912315941780597131837321043985336631092765980424974936362808102965600992800608764151782417264933397017370095399201912540349481132557487675144863472933886272211562755716319458400838640841596635958299179340513251067260258485155072840408840734367877613468129987895009955532416269775906526456092077224252895128138838159283269356957492648836908738084966839794291756069376644396236901885194572555470206071364812948560590137413254977827476855877357298301106750839314266793107746688103362612514640734211748144187674394571159278287322757424453344417716499254570428492769386390951902216991780075058100868896452273324797663829257066705983412474645994748417737055705729371904294937225620912206441437893386041940981311028224533934025005345525741729391635046412004249335338983957680217783520757316539827274788236671964687967420427033782946504052592026549112988094318671969184613827540258254214754739518160396222689858439869039182484963981314553403687755830138847233052419726037833128125522596290464239214660120367147501858118331334418436825036453101362120063287553252273069863978789234545097285490981237914412360542313944460349792841368466515161771095779783809998867041656466471288193985501790735690564638020932431615499254079237652644492586743629533081325205317025567479172677956870521049039089750885595924710733465389430977090094448681507520998304620901163335483032444576021886542132483564359184241233603925775789055401276623083847620277549918468630297701713566274004248581968311530808553549422400290533828379909605495573767902831248349520571045252344009409840953479021361285157885796466855766221793968456215147072556967138400455812748901446038586516494747698041890495242511916070809402995860635184070782207707561221424100454353269748448157236937786038484485575918340360595375033398423693885108118159770262379039902154194457335410784250786604891028012641830729619222084811152193007901345487315188061084511805880232714281104964375259307573166303863663742348413371996011097130762844870760107480697658591979816732324553246506446877568941824571388139032349890759826870210593011505726844725159409889556122094766613494833194838928472462524430219069322174809812810683333696024770017672892156791289518998275710300827346976785184492345923420303335772684985628763003990531309859095385302100836627227123281739821301786390689422764238184007895392932892568615945065418932729909512966313976971539368537134969369081641595542456739288471555123471888979782558438477940653968579771729400779006114663034703837567673548183225624667070568843051186646030609884215208499857298697657395788446082850929655577763649471638452686433426117592045422088507661892013294081398667984973281620699496109198075678893205933136865393271960548715313101627888432208561561448751345307584111296995660210186719415672267396310991861819456255523583514568995311548977930789130633067912696610682166127123517080842073179815698778864999530738071714767749892990751451189164721723271284188344180354387720896822984950275793802308194605536192644142191668135999021949966115721440762475592286664996353324981327835793829563933894677126865078230057397066264900931390792422933709889745307424895432856658194961532925274370914407449655294699123002438548991804050578134750964832327858332600160732889282915021922318558562036420243860965249019289163412940167494360236940589670799684939227836566581515349969068619554722760050061050368633513020435314708559345768242259234691051148230304422921848293055884611550606353532572952822335911612841020279708255808482362873695694566095768579332881075892435933577241032856394787549545445393857687575138716521996796958932214842546612286361447092079346113130472400860398952828905294951754634196405930587616186388053225037119763717030719698672920273316135124538034874277828543745117823378070661793181823312100187809774430454201481504619163579404729326075467007115035897771483654418343668685222008680578862074537244919675407817683694554124215657858084170786784246928572851384507713443051452858159208441782923761689507265532260560792087743448291131114629695265928578537740479676473244452948114666725903793930614094593408456771408845456318489389142742045217834361557678900976708793107883173935580814232481450657313673382270973737131005166381512747051856108700684333268035661292264833673776533516485039951220328816508922143138625395620055349298242010812275218670334623433337727330681819467453284752593934999676041007238169632335775250131249240636479465093822765186597709683213792320147768309672584321126021649014112820123756878013286897318362298144068036753215806007569016547902631229835300446638596073451245164056393553534241428935640252478130014983914746682324241731640173148647646805646464846189642020274858882139396362090637957523027590601820443685116922767055984016563095201717507359875125053191526144707789260049042476707070296815705759324144488068815565812672145196969608029832316303892702109345876574094633807173823628407583656420935208369577897941691375275315303808724617375213389706676016209638765556710076047241969171841827207883979570505213417838143484098765722436783172821791127557497510523531465275421494074353373329140910651970556930769101936345314016712312968579675953526188033141020387320315944937182663834407461123945103327028461666413679423690468452359474596328829731079172450374893378827898311876939262896600465104796314018752926518147158252219675714625884649514655111017493881787568497892855984940168187810203682292676779312034267650753567203350728055131468305050800146675448757712745985724031900568686876914928027974919195177963062649306321168136595502572792532497408650252794531267865671627294137659362957094832135609804567068515904154655433582428569260765379288618042142327556043249044426615158336925776366444624179653964265869636281798093181814163931360652418530989965397956407177133852849809649530883081533447909194606025168947746301648702811736675954833105133723233234619493020622286352275466285723380426497855267947556901072061237854306552300107647047448903005344409564827903669915122499997042135509837243464344734641057987485482549212640955424182119518756061746577361393813675671566947735656254436912576615803759404389344958641562666863883917744075386742386189008453831181581252127866143027368144188487033959232303182002723003110125052970790594974734142431715399422637351889440055683313420219652005454811658370234380259874418535116544047656215137325556157234029217160613917841101118310020182033558462533698113326078608889976418414475522138382536368144436326528891897542519716674461510297252592481458142433342249455830014452517351128334604026416494391100634149780834504293303520195289358256586749196817336968043190947534358342455997117181443085765554198523082896187165077292722522456611379245598017257983174376938838863048537234555802092444567889111027713817041777095687010984029067329962949217075813455302996008934546133861237458698339635576976988141124783035486882353276010091708714507348759930586387311843352352536002845808095479819709942243817491531365705222406600687449286976370361252325722806472539237317885077229404570181444863880927811472007269783392653726417955911761237668005059815967883655327805415020765534181481384981082901883806802549988333983227716841976715478267688303763146296346182286734415240566678063593557915764407470265331753102368062408215626740409285176141169576255323200420951361395951566510251578397970539781457226096485914859646113404354129127974782209244626124027404125389794332515934094274588100352001415920112670219238211882018173245558678185646843244292202859474246220898733761000919351340175703157837615522484888603732092232102223740095340425264116516412073639663142366293069480697337686654445965161258187290451541082387803467945375662925888643467113165840531359311494242332924044547529712141078021148750888210335044094642098855131217600702829855253094270062494695614748813253569509656843880607136764182352535041130316593269039313334943486850507971392023818899050295700716502181893394751949941862783049815615900263090084515558591073476948357486070204009275754957685349419315956834059587434432500293531062604592871540129083965780948123399386796467239880008043460983724889652928834364959011119140376641084843956938996991741299605824386102910841053072819210130484953581591666410902042731868714249399130182018632313831873321706532005686097617965989354136093608796625118861506874798912922876025944327568429458525641564714423814938859055750391516970515985093827639065712234313980968110683487601710739710569627071701580842848813993433064994199569327198607476132725683194585491559983326802120884963454831731646273853254781597544819106989459690343788381517999416051838793404161536961814272870325742749167596351142735454739906460581519119081909521588618073670210070648920290842951892577172664848534246246889911256062476288264675340270154605782246836642899195471661007045736782216794659440868369974528366812180539627086507616950533047742809230938162892326504173968717746442277792114393274925912017217392646064450072797683322314989585590944857778747933005445990305404656176775033744781516298438989297668486229765419866809236205667806533544881124074063528286319181115430459822847242557769499122997272488077343642029577792948732202843188283460982618986736567770908665295568860426533020276129469111880419793258165801654046382531084885103895718624213876614139648217180330137523727559876349375850782214681004586670635353328001949140369467152164233764268275659984462729761679883373632267323453944453974463514490607236382887579848995231958904253556625691536524542416310053586315306433571299350945853353862916439992389164152852801885779165871174317444186482074371507764735648217780009345743529133928809603321415725985055686144624946827492566188070826756123808448627731502765577833416210340423287962932334778058852365450835365282031556401838308225903136262399040982103656141716224611848765033520068904481223970689421262957732216414215190606734812295558233335702941389006567550745812777700822751115909851035378837854718014129383146109012132463949471400734790791945669665059507076210829734041929750491084197231263429555118310225828479650260522255743425769757853672749384250828815361538215337640952735115566221265708414229585498095362310279205691423630105653331073736877310361168160456915349149843118257123957731982715469274833329970053839042800536854765613405356112586451610138122345287524149405686810053489223104011154340863517887708787425811953366342780602710942473982196673484256582477849743965009837891826935711191672672750765763498071059401265742874609662120645988673383557308835122741608123927606399405015543565679074545931050727562828008930199538306342941850504393952598689225310354260339862776750771864575475207849564340153776502400210988372433852791079180458408318065960191066510348856289128958455989801817829935988489043933609467315890169527985058876132314605160300916492254209080035945786873080690013949301263863272719067506995797179571831956238276601915960707311198783048403322950462899178911868952211101987078078624865767370587373400054497591850438924036394532219800871737452540383478881570703553911731448498731911129565598529507770340091045265766167519178839793032790548068100428854368864668327717135354316444712066818675097875128017163620748580276249039332067621558850840974410165210936670782963962057924054150887056378837070120337432514981499888474671338009435341597294649158969280180277446121469963198300522099312904280498657428844882490748538701799426431532126996367280245006674936031756464032294340557829690275194245890134951498021276478650784004629003298909420946377941436637944162717869299111933891954019291031926125818855207078810679408927469479011122800882931006384961227152515633050862279429464148439836966560099149199124377409103796097136105984700483784528172538134904203817985791325954200710811029099300088634849134829474895306989108192748018528871121380926047307019621989383647602785505892320514706621543753387212721803997094211367184461176896226380008862528271753994623667059475171000137643440727598194965382485544113864688220123121315278325916644138984898181380082191604851180081822815354515867671065241530887538465552400838288804711307032202680474668622196090103035349140967146103330458679320919579369127446059825787306834166684509994846044159724056174002825381189748072424750523773561496322741827218946496015202831452407239807298900182891073348456391157275397654868598339598218078690489320867101492394234273900567580020988387080818668986652946140509081907157405958299855409570340373852969281531813866985034756181749826977401926871225130152356931241523546813470553749254622330850559351607534787853799560634121068323378334821544393062428935638949709909612582920235908960526638829918526889716008302374569674758450690185672697703817584753400032941732628003441915430773955890402471285771009932742983543448432547872998650038496338047105385720142406151653535096708087995914892376501777962687434440522213291261731276392105002747891230197121480752226251297629877933718762972387980446590443283320509717255690915568120028279157765535051237175203289635656668986054163812816230327111248361367074301435532988879771885796554249076845606747126411614692902466457622022420219112078171255730194875274895578129765889293009173187630045645940348130444306855961737590736689934160696121009241299294968219565103738668806473852061574940684896929517918731410685471301345015846226669408992776411468833656810171365641205080531910266687429671639290159918945285847351767308849328209924574778499567113097054845019165385698066865331426125017206226679893498926912750421751101765384679082283247843659202403953937143375037934441973488789175252705542323302988876541753782985520614251220584266283958012315944575189088352406998920227852396680111465394372488337447926729722767961769153468689860056858394938583318886774322356806143465883266541692160080932536274264431967264073861838378651562361213443936962314185267818916655367582031149777658571109040473864821345551195797341593766039612779770651898690855026591432993658713709728185362787856847387617832833591842808348092691951286212017622871867782646975773758403988201147894293650060526639363224475820921536815372911461664085621282732598967806994621254505518562230557221264008976126716020068063302545567958917082531172617327537016554545701246233853664263497429224445343057672597330599680669452905489856151478946613820163039967842909843001903693613856663766550646400536340365202046525147718967617856893366356675151918444661522371124289175570539540961838095325405992694232651008303316242823342262558678333243552119559910875818676760704762241449155717388432624097329780972575542465149355190594660979020755145418244572337464800831814065106105976843008662619396893468555231297913573942238909061481087222650104862782178570653278852863378830145652161753835474359496955448291200237474293392096549533252396516273695418711361010128947022603579157382972799675102047602627584638892586136202180802664807964990876151146322325692339168267509083952755736431857177519894678335659121305378220218021445485217307284392989038622700476490358797352995765178345909494565821303020988239407004578862177403017212987273696976380065665697106851946991342284200437084456594841192079525377425661394023862122849500880735584227455070729408508474017428464827761083646218231716597325942813730432848460027136169231170760030227753677011153567626344162533921283930406599382752350791294614489648377220679426842185045773005870199445651415200385729177716159944503128771585932897150779703412363173995696691803250172975691260839593114353869466181114044625229084795893102094497867954133225294186771715961407154669389907623591337353355453486369359772446218494840465165326070235353301950156802161801382195809302240042818534133332541893199346076410756009077402436521211647545277864037857445047864196698283791273420961256460022511541465381194832540816149770240213472208624685346478670506503446311967088815101152403989314017821462947957204803873030746010907319224559354825872713519448303133760395061996091489563383046002954696851315508116332364638346089535438730981772603902444330928632590173751974278039557821108842737155139234785612320990660208512676520776053990591506965840049366045466351033655931002080845324155023193069284215964622770437096716129313084355497681058859962028982399417629720517065660911330808218305582297209291050188736083294165615443806085944441624398757633932274432988193572748897284064730652059987817483313298285363128408948403648374735172855011774883329540812086948122993496769248184636033469230688201243952469480512595001613869155775522216453946230503791801902117771829146758563632300671710812753930534344089757543074822359596092316602874174375649940788765453949637642133373074039005441156436745911363283163936312940305783005075805468333013577536174925072096523051110367615682508820770141539269167427576844295330926968469636944774237112077043025624497019266610490219838177824178530203252732505347091475674103915524014760244873878690532193342978581186860375390260354398850060990234821242881828351604389439609235265299568003633105907138583899977206764299794463820601819575843980481638513799502575234857373023982581901187145283699473527210003110639382888506502763967992667111570295857784964954230276005238670640731823213238159548251334994129918669849482038011226530843182711377629769370337208227240914923445445455699567281168792047438298938109460334661804210587315266317570603568556822882217242603408421948405863461364884507341043737848998017600098386972941245178232894952086710263210679541662294772776746346597867760174337634868580203060995037326740823335837713180731114353972145921812183237297041830326101166022625676298228774360103386757119082282936560705417702413906026211776325760865667705000896559157541228990712115555891684543919702385891881470935075036881281205880020447891222254992861168093638043147496793932047353573797995103541264393319411878545481236787579423949652643551487102266382557199491864076433873114445252481932968212925009930937251401763574442262280356849457461220373917684429307792251697525075859065345133952802062102321329540789220005517394405286572665495724574573657454881504075550879865111953334709691206783808217537299938054605526745886511237981779815027957329379098508504783178667202718893493785877163735938572388811678489886419201398776846182025247225522181412760979818922310646893275325527679699541509530017645394630303746434548182305902877559288368246561462594363357821072195970029952403279744688150165552617311284597378440468045331838801246726683832529576262313656683829479563961979469457837886036417969151420489193717756802572389975003098603189316140854880110263569980752870079513486440954569565598382190931245672047756577959541877417750952549694060651954903640038511751183107091772591415733466910470426613098119038629672647406224831855585623199480577041545201961606093063643079377306481003110818031561241430621977442655599760398815353042236055604123951783406056926327574060973825001219164662713519575081740105110614135183828644505506760969602243155315834977197271535893434502840118277133096819508550468648228364914694740292341456787933235696677078702036330664593235846331100845946158910446925838859429997134549567260406293630260793846668195941638264210977844726650668088070622524819744669336290967885469707208577582073562200157541601586264343882705358682128499957848253426356719564252862373333915342595214285560927602353580537412187502093347972879490389526245775695187669304737520761182359727486234970850814719121889559535954274847262281273612098754757985130801500692154902727187564487996044770796388844906885215080844397942780650606479904429080220489188022373811393278117390315807430352873420870504569215368989482469874532258410852242030802369618823860020868021592318106009163580197943963150973701582187936284452338773892170773932414905113325239598983231175259264892209605180031967498689874192575365013685674160839850690443515227151822357090989515498349599641228630832644068009238616509469615321443605097487023886545312302605675973256919959172351942440830423476866751935203903927983967854733024206679425929465895412153141826755667115768346460070224070430850345278143459341748132051778343548245964529388917924691899935961927211065147324589698719199432546691429348168784932847585722582208990773306222993303203129802924070406835116436288066482962234961543085226262214644003809604606986570013561636002603407733325067304889941395275885435670345929774324898301799896437635744943593881037224153465278878020637071962534863763694069571625379605057835831168266779636802371595884544153332935146647737417062858693821047068974490616148951177954152191014528296025240520301276775072424138374416776215355689462629095663193960579727887053440733833235416009648646959034967220672072203903348156422929290256156522985731681535294623198922604398289041077422314362558130333018895230749941714051684428847703292847108259749989837935179850258849133563971464615111164193524196350979462327762082175478670889111276484744863017771176832587218649332877435834803486359643092357780117978863885886634657396260790209645818976292064373471570220979217294026210976418254538526619772627551979039076649585731892871942937234476383358662152245747915179216710850012684472565581698554312607762288922557760348243205655120645539363351167327533543605498587382636971523131744375875967503346604740601918954932498770243712906385957500695113994712113311737298898400061312478236049248888233043597426322434794926741366673271633291296977841619050387788250863024169058796428891726796940896572492389645482781263201430599405196097897741065405326258160859816400526109860011835689797810363304360329832781855306862256719549953354554507588639323529320826185993434496758923470344824206239028973410501570518381207625964502192205304084931762963628168389584239828491768957031055989090769273051242216518592686713993281762401140392481838701392666508241955885196060894722673816195273581878984504162029036878699318592908287076917265871699521926592270653613923743001244037358937677502383227122016234331590181286932586330494759866501551666333422387282382443157588395625892490882407041256968599506646009360749933595578731152123822136117308555710440967446278732080656429350099158762913871100347869176798470164942616010043058119502191035960886278218070731590014046569419312301121739848293354133518770657267438921399636466660558645392123463710830304765244205433355638653108097502176615564029490418287087932043982043996143964989966508245873096208810980254245318062891373564043933028494094212230001126380047993754261399314567967839251121585175667263030562434643564594538957483805190352464234485523553108125720578963775652407590365251306518172962622014446746889971010703570183498422880536133878170048586988944159279002746719378812860617355763983327467442633071987069137502978400809951570448768665952518395676820864807314050966437302790971992620402101746291626573522244623498106654064892484429186777746250911687329464503150367795286878860211648202153797590407644600922934330012786931674717658986754356542822502056232123515144234499074196841602802174623819639437379392516170617705952751948640588436110716148736186714294719531789369233578687719411299684467725830643401578894572650859487263175946346384091294979301056858368474512170377093488722704543579066522322364027333664892923318486121714256710776656053229263380294536783935034083527567769433167200201552030093089996961978327303909981221215677101378207543933627412946017820039001694874887957814961950271804148518731891284458973512142395244168819395308310584740317948073541865762151281548262512055656523597306729280615153459372758360494074612179507934434757253082003892816790920183693983624812746975740169613651315380769284728245487602014733891655025932950661958115736823982382949148397878512659080100832658129823387134392837594438295689344276974831432913579187996112517259207026830093440868234411576786613089947107629472561886796093005970840323129757937224287407229232274556832732193985292970560514243706929063257641214689360237160937736820894945094276707472988511476892955603128832244868215320502545398463706215389033914442407105098998175322948531227606950472111477044618050550844733773375620313999709887003942879784110937064940481277330464042495938471586737869512320748040999086196528947810555930815247048876071768831145412803024511577830912574533043401634519463215444201823559482556673534392424072887492281645020719202730674320790839564299983618776460320072248381460859271763854898992021621320798317555088043093740446307764559465041639581879990184538735569638959175776239809496086502303435290285675311697198190921218584401732286419223357348811660598615477217616944378113318128527197246390128665428639334921418796393867470489265087852743771705628566918925102005292283894589456014034980318921341948208762073153273198101914638654216904069808587997179364898213776012536404926160790047498454937969422223399497062516029800154875791440311924932760736999221586367306502261826683084301491731618729192896902731218912767955731167920560697862135568199293652277268341447152957535710471126027027563252859204811173119799259986879029400341547542777746144059586257905204846029950634508859373487412530237536673752445106600580011195792748914762827467031944336890838622318961294803010641572852557769943646996563335871645390627082342729903694659023269899332236234808989605888846436663295652837331611166766616056613100433724428927276740261837946229859974112623349629155857409350403025408219626702022123582107482111190503616349538085771945182762593501244399568434918377404963351201441116140658434239063455733286454175072399529764932588892257903042504160589983282297317600114544198206209198886359830126045078221815950004689161903478110824151670966824595399947557100743761969507080293766305868354884219008078104947369775549010641847217709627306287760668947260348230073227575782794997437565771392371398225691590031417650688984477225430084385536759358245814506871093878795741992709708137183971151659036599519614940790526386883965982591603903107756876456739949961915349622417433619582231274907083695677666288177320083056095080551520483078566915002822786494782980068767237245367929073297645129822933371884040298431768433562646463286108036541134004062419692732719885641900793341761676374869842429153533757724894555219161629650610241487047754994277345998162068447624634859595988774444647555062707204094388038977930165469419836414858965168224887003263489604982080204490178156425543946893344084709788378254932139879881626793751259546372636215665420797040541181857271815915304157431952902708711102015641863332978186246544251075177111960300969157082823435649859500391988492009535201364854131288336540195542891986158413555031043064902704594547722723303422420790263726241466747629092016497547979213490476350148199937837835419584919948658778377949360696027424252578326721103983326483881493697340319734536242812405610734515184850324193154464703645653663108906998602023219991128817485458281048509973135327352264397316266635145007562665181286931144146257476600314784331010970996705629028792854335332166201322844518433912792942392539683642572700014026870449168308301185063618434416653764333210976436403486482669873262196109718900305581587113226768551174027509635327914414000549348902734377216891881271561956817807954969824447430315707040751588798742744081677175812673523691731375558976506858185119260830176053655079255733633304126371878693670669457709828568787776868509955908849973013464707596916239436042297315750341320395479505425809617636283493167430748359120300179755738963303666819329424679214710651946734990069953572114421387349730308978239254201173249763957251077397241181621609583062749601653650654007593757245897538245319831947184218278100462866097824796870912669857827703188097972329025077050983717221497587669741732253258515612670090194031054652113612621522240682108467022626757387162802944852907258011957318714158317902024892104976080580635291549599783922634938434543004100588557711689569315751307852928726246861489921187676118896983667521770768766140258568569796697397665344478779896206167226602420337398549101879608998660753603027071009457908320438030989051295780541454363934515791638745020142405167258362727215690206687605170499277808356899671039021158864655620633914142391027088927842132896964263506971410433725448950000289594371913463041566063095613896565357141947024229664918893543803585187125871011526430199166026218044876409656705450887260802407608856371030346910969605939385102308189771782526652484270842901492335727758491451774895763542073240290512285359531815254140598871439413027774731475061830160577590670426524229695041667833937749032993399852848861095991144652963489221014538929420315555628751340701329041781600239128815561173588985819715134899760258736614367528845839051800593026085665026536010835870584076520262107427207891390444325852966295416144449118036416317091061420500975565349986241523093843510460090784847693200456995861926100114339806021707359538461220389288341568933100577547086692752546096057135259771782273236220449646129018293647149884453493816703083217831503431013857704198553122695188854160559635128543877800019036324682182475711692881789372290074488092421593222177419220210590300518484477342255319142383546752863536675195184907443841381270296411414607741471323669011424987930618477491988038748793783060825642544315654148309577604725454245850307893326598679040164109970574134895035880206199026423141610807948842823599815193622640282360258661854812411406497750047637544249178211633292772088547384846663606228461303301218487585303044703185456093925391497951021049608018930298951977090994064849766684357264980819456277117964572327619356675374538478862180433078958138708867778787420159693561703043816517601508463565159314922804423717180128047295272598517977487036762410081719985332777148324686242416677107802533370479320525224429201517686365874348165777748928906461539609545934087293797856484575691495690442420184815087752571903864367576781146445129211913332184617504143285929409878676519363265378166352152162139362580634947079443172340830940177000486290931304079598718759748160567447510957385851315920421950318986357171320934941354260861410104732658834763802530689757442932015586632607605515691792345365445499382648551851453614224618271517959108196005950600204178837954778478735555010262459583093503658486106802086851951514882870601514023102687864144186494964872298338369036339110166353885509456689093225351403775535998058799955514452091181557524289148819391456182913506602933367524865569139068999267369300686339023991105293822631061768154883451219734764731719069481558754182371084743212319683459311482268906102308731833266228607619395556813792094078563903852661342901507427435773168754327159539412964702984474448977448000162370058585159344085506179448331863619316494255068863256578170886838975066417847986503691817174309731424348868293419485128081818901386792571632339640591498663736661700997245816280021982248419509144116470095014806255503003403946531632799715672668601014156292640327111003096056175158389301952028489527459681605821386307470580891074968023149078877908426357595542257603242638476404979732263604379499443532524124227416386533590043343962865501040896752000175344636358970796188145470657857620897797640017151336566471169436049836334494184545995006340872577834000064397724145632918759306520440399257816305430485669581177928993384878561340370421662868103937388832550753371812424055168068247331586905188920342011496693632712497695986822913666952192544414537904720036876195105404861914839307338590567283371338419648875146963284926650343643941326817259622897247133188886973765385359096160247944122714485209316724289395930938686453968759734305101968990800848868811826260777488900150295918001407697452341181016983646390746230465670482187037404909894633835921159734971492489378182383944448730230819664690564771145112400741229426834947447026202699932092221817950834277881029717169901772375586693225182665172224219225278569484200521137745039428819458519779169167378789349410891179639172878616090123623835582597725533809678502901692489987399939514519843600356809618036929811867001730700520840206984168761139867093777459220534745480452003409851140192293119646738748003427984737556067006990953352431847262080435929492598603220984887781462315458355576621953316912194052910005391871495345244930954982477036638611982809527809675672287822148691250285005247920210653862550005834058657254546026601923409842196821992154911791975282488129570816143643222316524622324870050519600219063442113094900050079186435564557945086343111846973413232628255005224905586387661895677438011009387453525239950555441637464072179260911343724912406236579357048705381284769306892113729967761219418961580848008995158939425943481624014012896905104834451000171911165886075424116906529448219292858100656804022422174895266914759564635643184322419005111482264145182052155375265412666480348715356932433935261399748568819657894019600677734400758804997156088028151075047325624599654364816251582660546964299935729875328661798654942598923195643921605779764662727451223684388835703278774623519623997373653012833940013187271903553235079915056278372480567919277588926398866533242810803714273553006518873739310551142304593376160108283251709055613227523568470501588349352672234986497391534047615091188718800142685595919300514357870468456418275605137205039754919489295444959869368108650683207147720756940792758847930984198186499244655892976899560847364942036755781227829977779190118487494054822535863459165655158530266837757066219190838742387867366052616802821880832903666509950683313015668746733787728463963412794769270966981466856963733567166785859291126313656825723907491119916684716728881054424069995003500341840030405569705533599101207302770315960426733624221652860794571374248720494328115228252922118962307718150582505672707423195369104189713537252670475664244257439765889475227281606634848286871308139798524926093649008613231194295028599194896105339809612837166426809684943248505507643008921199801173917617597464145327414652844250906710795070933681588991544092587384214486449102602580530949466124590754560039835076115641024103081029404330801542788788907493168581613646873244569797024223820613755370079711115994436925864076414520434628450334205996830402912549461603039398969694117737698815970101361186839301752301154112949705242924046242372085622760832896574360649920235568883054699595478004300973756615664899495969164838420821470688013830886120162800474014784504732167278419032573974104744736581706832841284106995992307720869536905864649295676960675893042046523027560920086956839308241610095254984321940017708300551873267796594489197140292942338927944639865999893797242043774449915097592433149726992534627161242069846705861133766434969148878456408774211774121094342650304403573706780684666669155093650519295262393940936184795369808305401884926681554305125790644310041677702529145642628666822485611249643860348221812725913534689786627977844673032277896336640765686007484794652243729780111333919672596402153280316555637626983847532796787978024362289006629470013208921470965445789473315122002436305270130632930317381223977333851697610068479033048356849481264389570141036979084406337653981985529943828996473843630813885724131019711871250144202082463495364532654763893118806695772498146844018849604674604862705232581439397598533760121632446433387658404988011464572286265997691386572155935037098526119614599570289901690472174487039925311409856192622826322429559037241058497195528042916048643321328017515747918445064573788082454478962712280897845084684107278795557035160372783809376122857754762490061365279322176422808272342447442384775979827548998083160287509139836295601156465995617958676465954986647375323025260498518367657340352869504070810326484439287159549792691661972477102399964461777440060912632262017265650701495816162129515642315875989027736018986860331904423181129625475868872880828731711887145126765234617161435860811641503003247351150376668102869771638879691538828561749847872280390832157838199439420945769025583649195232868025774106407151789540162048701999631728244185341609740590353124961901940434005036327430677889322718892973555784897353640748600731923182663199449724469213559771334816425874228071022267972991425982338341426685594484194565783059623425991141918912871380177455356267641122607107771738694478603748399884912483444277948180732452637481612401935536795488404301478687439590982919331824458102438656443560227148223853707317198853352883786453534981056915348214476721545768801112523989148698201578635168144353752116653382901638637991682528034551330508940301720847688973837174583003463985746341333399124201726049638277852346758489857020745484512337790330231486334605718240112787846940439453943538971689026250993775848173093402667548167719772612508254363246953309504270913706722283752090986293592485048196415397509064509875184469660869419240372885327969503182782871895337799902498856365836231556123205397283378803991057933002759357392925730339519586919481339300126503217746004387639086738272863310148056375162487306997151934312083921303218353852947829930868781372807387486315335573338684299761716257720863527956396985819194787464857788902402194508367907335710140975311969807735148502347029179502720117327771137642615643947292296307907688658797904531489123090742728934732967089160098771906610356119716502997817019259529022070887217961268263538300618067338785908023701035136948104530079079930260472679402013071117421359302125743585023842697571215683747830524523803584261973771128023587409294404689125609793864637570306501788873428886213817537537623459551199472812161590183787222368664881116054211418012387276711397343852769827849223043361010371529403536252125029580955161435255684616087397245544306601537514252585788677752645692540022715038437309093040834769078509636189828401755404967810831867655506791586010339897491237976019390954009278443150000533617086857359118853519719715858408056144727425617174799204093551171415410195714356541159435094465269847996094361347882333523946213377979585304169979090355625651770325614027507682657997006079693383998065856488482805408082644094660640716479368569367205881596643389956990259398937885373211905096360810578160954735162289229303217679866272592129958421060976770177789131356407181726905103450083127439989945647381904728465991409593826778477068159287585425742721994463941802029422102494809943475662587207667023238702731212891567417646050934499643018163369736040909063902296499998151585365671091765231905321275640704198103081645187190668430733963609417228852410864464442172754753488783518333498755112875639086396614453506797361267854215468827100058180445064112556016301824601284178995757827199702120415179212472376914855719083949140350119952509322404123217607241784346076712669803588687445840638188856406160749348607872708381466186648246183311374796601127430316197537543502663965259638248107471680616877400983219761428268623968240558161023445687896557057813601684748141398506260329193274248230563021228887398546649729345503781782569222846083549727596416725841640330679736750134793089306016006913637343458765896712193247060550832995560480370725570822658461928290815262762241012540787288566508025248129304946391238405965084860393499609024263410572424770622794270986754138551456862282676315977471624988837721758225331516761361210792310003933949817270394424637373406041984716958461857833268252732354725694753063184337179524163554108404677481478654596233894878136449118477929823988505066514356480589045925548680100798750097209131252022411735673687313378930010333219099829133269164163404770665579361692968546014901331633326213246671825267664088017056692077838146801290171748182977385783957040240222053506830996192777234822866036997656113766404087559580844750127204882032401926602576002735036527425182626695901265320365007808250453270710071831734287321285161786145801416617757853467025594158958921263354104732088022667999016186916761394760603478306296007424593127485059467552119766773071680338586681979035722469242663594947119487907401433463014828311660988102451870623223434743507816114744466933406915645444644146515648899987774862606120551507524882278382491984018823561118172263561728605457222450147862045460626995299233147063795096632113160072057608446663591385044280807167314982171825446959038601655607893851483449871930790889770114139283056683815325378241027484534789317067668867075814990808921188051812785213481130893693764093683214817753823491331116206081700722463328542627760530313091022125841072477847019302464462595222789983609475687023989314994904926185899171964202115995576413761353655834434242258156880535498326042926244236284288878947989004656862582184748222421155228941880172002837129179700310341485120872408083093571534312250800409567651353039574916055500063064730584780878191673804855607612424174281105336162517399318939034258313180140258569165996325936181080408664281169118504319754941632943302898460384450647099416105825250452981253672216363929659538808375713824111225791056422040494174948039658016418764617643709193536236168609894461985373198726122095127427986215567418190955107368857201378151795568305605581300653383957970026445586816387691866604877383010087808230198386381413490576942081076254227932510196495190070715305788447091912669211306941260980758808133312446976113199392138660626731562196760504338227774286930580991890704402339341162770271755016036950228723781830735553127949468287394768214401141030783585471095423934363549734114971780458880201616884358208873062688666008702474244396902531354746142814840351329884063962727004352491298598685567206192808659898115029135011162563552777824201992993506077745325346824521135699392951545658791471649121662116680091872606878154839618663962064687737757428877501777651930590109818806174790829076197035727758188944967364727190158913599933754496807884543942790866609382167108722243771219938954858084679262727055870216930709495696578612799451468833052317039963627195515447820773007240817234297390758919689332163604997431191872769361676855119580106102994459254545664691540903826640444055841139952503170946725731930020502601290043044850402237294618585819097684897427555258960708378541515518932139571802886887688418028543645155674370252792016224861560854247787544425783354205767597373084989960351606506432958700111893362551146560593645062254072376837184293392135941714869271648927356583229258390778169090011640144979816748508349979270314302672362923530930445225021103400388868118114749330979530003029196999819650442311243810122198476312338950021226813506771571669913645108726662393912444072911299921783217883730483301012319951249402514478378739334105207582191459970301141239430481698178157123989823408169411848805392268842948226888367923535001846062545092788316390932587283983311095374910692349160290972896570918984941850344154152148820250160548296941962314564151115393688172843677481477525543641701967316191309293145898630362711430743715655054637863562640198947884027256512472386548914940042028414162471377470202574351269359474388413291407952769583296581360965884691412690514472153975112029522827971218081463277383411419361129687852106679285116371674802910497235761608363281385719294485916268942676573468528087357287745460709961495735716309902696490777054073542569140505851614649895748221617879163411831882561502165740896162317531817306265023587885460118422440774309478987114196296645905495758331037550957355876239731595582060534767313618129511152666421948605097963242775278180371778491401643602004572966571868408285251375597606317891462252122307336520013145343207454830109664025451033072691307640523387404794842375611397501868668564042625344528570024945131210367062270377553746413119195882309566591422302087305938775472923392342037069147043262207898093783050237848499830395335570808719230423407333716086492617881865802859629565121727848102245249364793308854316705372501616721949534403885535077441960968868723778937368743000223001621675475012451441991560038519365961871797992396956408747315930831710994905225908472205973416439992568197444286496988861281879914998772595368831277407590940075589106355636294345352301485127446250394528042968238105229122175946397513316284405959173814749368236336708571362414154294555616475955905568744938961710011191597961449326705841191630632217138950997955688085577212696457727527587607238556345010309733076327668601364743240153176973740516377069514968546520928102263798050774138380102567022836832446716814688280413450464261997750730921170281783815994641602503817947418260382439973478816311943206188828098847413093141298228476898630060435180303012732723059073179738576715466158680180492081325776568592069963495408387655968207591892083094922842965664550500015943009773753886441956518890112168463781011771646605522851598537358264985910591584025672181339090006672930985477199765321278027807957930585075802153914898656658250422324038362255532260221695781138025971884619679408395509753536353744260179342394196848424501162560221100593612160483433986402640426200949088489501536089083746498935551254699363670224176570212746291755573540831320741280607574776763038887277012316312565565155924829228864258087831938517253695513902511648345900412741105016105088639590279122623585425835636001811249518619427456041532476804745254792435845904586949777728196456728055632982216040709993727486848260481494058937193526074786058983782492713484355461956813446507660369117276878142172588826643787291564188481288436617269399671411558167919453041850286096614186762995234743580242494353304487535988757584899941326792144031588695710131579557776752047497371880627330873554151099986322275779584826937092847087807381413564127018298720430828055836237777992122829518562729573631245219751011058643431919106577888045607842451796072472845395922448788942133249670897244074679034688982374767806475271995852429861649712265509122737929733564627745802683889776235427858299869507924875971048375482078687498231744092806639852947005633732456812540322820609921021048491483590511325974409968164243697017264756606638503172441515530897164291651166177372946785338885312827224885582282649430760166384622508732633210627752839112417348011288837425417337173550934713051191204118212846139730985741793221082734603255424232137152987887547137105974801246082279079953580495733731947041833219565806165278550162783035609917290750492533457538861828554485198014826933955632975046614428930926888485077868291677567863750213763243284124935326671302090319978173829435857384181838516074631218106537629544939565746144153885676967326573911465524494865655130427208217190113056213232707213967968083179391862541913411771146988295400417087226729310693694058120868921555731540990536533426922935150319409409397996326662214831535143729419543075489312072389966612516812157137356403349445217819737616074272239562266227459071442209831519895469160727966011938084673858378889089856424790648602061460299704804613775164336196370540342943586086854832539714734901613693120423200393507886830767519565878526020778192369943549706092410434779875552448866688896422888654061791983554814155979912866707818554275339886122660511186977920664524411120247002640805975870039735069281287314095189191440942785415522169664955657405782492993012153338533595599318025045847489863264733370926145468263089211694033940899224595594913154375517872653880419942494370265008332234480225437415214120665292646959380755571900885807819231775402597804852686090350963471412450639615685942056221838231184576002597916467202022927851521012039430304292977964748588427933932234931845821101117650930099184917451068022589692106514148896463179808183302721730564041061819292514466515377489237780974555859009697597658612861628496220108411446600787700770433431001227670703941618977929338609621521406174198945239694400631834970908120390062555327707247257891753988333206016570846131332743725067804223174959736074124293618920878251529392090094140139771266634511874548102645754558142230744003749829726211735441917074809042010680820563119963224345984862500200771452982923216096155352879205696747023109324583550997887927708261483158597365588297519540481415809170423071816458289965921554167574786659388990820772825981399485637004297248827162067532119642735618027515173783629013152635471090657725892482148816827793878185658241005491405302187333774311034072576371719594569779654548757618228098291648395231087890166928416931826910869390380203394534175387906890956945444985390844185440821838335450935233115937553875694668025239709962260060201708464244146332160599677786249527595095844647280984232859196082389996803791232262653221362565554535730734461409936033994343056562836333418147912692197417059099803194889543864300104383022797818657706219625710921284534765602888488340118691608879166758555751686838959101654933716107340388918021329981979698992105963720522940861764361236283091544280896797900956609712421983353417565201358834016017841079063193817728428923606956010367029681289549388361837173374053370529518178163950866773474620936531992276155404548823235729057112235073421481752577221832619521444905531367667560293478923189839604278641030413422783571585958586516127766014477461934691849014677957776149072871782680909297398435268504223477187746489045361687562296283586757562240186374556233837467822435124591352383460488048444861542323245024808725931230758004541578403923545644743567950600917924123570514176972034192644054720208751482545559432310111191914848730187972354943835821429170090044342321350976630463514403818992624066569076535735922483264900837236248788352482757694456670927276547374063878056484862360011111396616196131326505313009730275660557641559884197689699374842400446144048659614737609818615135548466038957109640233960128038997531162299143445137588363239601402736546418691866398375875125056124225583627900642096092994350426478779352387442696098384539663632870759288021697333706655543406691577661370301048381828273340514169286986432906822521328932109618902250977267131788026160658816858202605297333884668886671380469304614700739420797936568485091802844387497074593589451946984364252106608770208768986572855627803857527985022744678630040110408567281641831145262724951693133646832429986905854287192585106981322360471854893089659902975639691489054119651864698969555988657843779328167453161342599872564496226984766563324366903307160602660072130256558164184761617175202864662299041381203612999540873911583798453152607221439739213803064135618674481157767700415513343989237766341601243721024286770474986339368528543259758178910503062569637558808199298320933637502799670602578100350173792393412925946046763405436222151341723169793223398233001370729147810368390284234236200012694909498384074236963935424087637975722194539106267699367994771403282289769351068645358247483172407555441902381690401619993330316598290744092410893736171538593855371519157781889137289015329940444698773941473926500072185497730113656871089559747375728753711954366555630697894796976376694712064122112181392910196447891375545696375835726565687144125810096830125343358143318407848951443692710522484041029980317355773448536732712571999361201867812562846340446578194418672002491606659238873644202209560130050222553974899055406779860517669508204869896391615310612665128228429294258319487323020644357495590177260348646572366881214661709123776675676341882524352516927051831215668536157134217851202849073991443034855465222371479092027474451049676973581197000992848785016008826961297009339987677061826514629205839506367117614143819361130116441800949202602417122290449083632915581492317316350788575102123190860251095545500912719102738346883115947917722613150977807321072084316468962504434488948204452787931215486106193332537841920477467192509870805993015939494197748758371171640331380330993364571131526429664918933727232368939648754236718420198377963171284741191292093930462496143329582770590596034359998401614967284017439887286615309988579230286869521765614308754363397033013419160846123159534515324966326135469919677116846225970081660751271050003779319316359430936775759534415927135866377387764612750870029038267090815633951894914175309129920000898780019768859490233012377905372862833150139893995598642791791916291901916535522845652623688813966411833271984617516956221265513869891872612495942360873068639160310419871697763296508771928212227544463650390740298503744497270154677547664642860509101992965934732720034518374556339071894686367669138386818510426706529337160988368177174640782734735976473962079071319593486714296836313025219989070931752869279977543863198025133842427215621371372380420487049425248575199194951900333817040413356072138792146651723165146320673862747484475233126810625690839337096733676757476668300450778825144066600014070999716884871038814556569030835686745808874203361454785680446073742507398331050262565422985194299598131648491350831053645283757285950738892075302803666456081828368703705182624830592994265322885027643340671688229290223963793701650757909918272487050670605793644698670595531078798990613769706176075680945291139324007555779354914540179830007638246033201612853912845005564451453527206034075662000418269454649328094382468015034478393842292627381911451492273718671866468698154634017333625824736753247066212146745319209570978313183904729703229211442391145750115903947454379589356609056489991121999826800847787205230415891599231926563294645083985338398372876652721291911106970644924139257784650807595222529721957867524270088352324025671027958377772704248248983392938230036883641555934293253760029480595319841921495038231691068593182508028990279869133013143910697647704295507039997175344924066360359741525596798576901073348940362167155351648300378646424695871940516079298360036822184999313700479307083994369530515682154014092375602054851736084787590884446515956467460774451438484849534731011464711905382883956323237135980864487512555196178045012874532060487114676351816811431410546387310323718442179736367323397374483841589124224888699291267682085341907117338831307621736402112250002592842527049305171961985851626632598198690685801225104273159506856544799819840362317380742029538490858776914887005163582594985961570546533027882812672372967372453835353840459979173219081488871436923601031341353583056223620556470011477683854008332948537615399555269475136467356404846519877000058365621381311858224518556360342473513936406453710668659583385340231596638501631994216508720521202362332752934969336774591685307695998642539124115234984564002768122491155677369906969643416557724011669993182414332515075583670394869546292643580997337049303186095304592096116235922644362902719399058842684145385209078259159437680996585289363946451801717166312436144394605714034938295948708506567569516886097418595298894357301033913534837704481403070173683872286374378536593523625228970874499303504976727482792115060588329240675854559645778743463264423489949718694135609976541942500015341468441675840188508241011173372093257559500930236039618483015390700537118575789087575816038027088707260047899273129790326133585165485891271593172068876182089901889114874994826806273314592263407615475031997951797712029706590495898409164169720854567267548805411317607391061057067892610284427963914767437109562960300264835213345878779597764212340068183463488920805263055530153406067800642380339184895520325280440363843156012950919252801708573259002957055514121928391971699627551372627424352795097071447639092390057212319107164073477676730718504777870753403080933708108017558850150990020811855094858001865243243642379529169387901343938959345149257385070153833440590137862906466674537348607255955158629666403686702331779422642879821016432349701420481167659945609106544234346608667473478662955060883178792087179925894922358982840576308928514991802019820556535067485348166186771289880206472580150600753035327461878347300281210312044906354126380313911847591813321671160089700262271445703815979776815048076359220487303244098855213921748056487842799697132074674281471628647007953716231568276310376059084126586734176469026364304763286273190695075219649993463930316014096387752897028205910194411765255659087828590745486099048658063748576214237337409945119747412234382137093146669269858180680488877925320266876902105608406892650458886111086681740428720129594130676082495574444786848705352825328556075044175628694177732798073005757408315326670776440474384393339840780155810035638343978799481604402290167398710196957221029519703147191484967834852873113612798795719801863464497403045806404590895278512057958318386347359297859768215005351366308458203029542835235626905760401817943085105590521647696377603625701187412535843253643324426174088375581621252264356274221158864308986360562050437487728640542147055707233185776451928120785638300829568036061208566475037051331300967253444905520578576041738686876229222356601913665696625565144878984679055833021226348575906275467983611469931748859451482247419430303735263127066304786185604896136261225714932629541112014348543927406718077759402059418951427603388352229433294485924207069086004812607815701463233629553134929779980427111999678548905230242661978496411872514381603609352758361600022981847488523665708843819662092206936605369562461587073510156764218253651418382559177964475601572362310644399904083586257216182464667593782174744981473492403493109499528965280649944511087463115990762927051336322703154123396714018663647488415868923836317680847579168316784397952761917019633001460753043735029436893686192965703500701565146527987583385397439118805500059408209425862252239285528618220097918324175768172742514039329186585537647979029832754784812448376128892935148564037924412583318264329746113026129860536803037667683378739226966903002625691238193183940578845479450641202439389411983258158055065284693964611238634882546210667465150806232263431956502506115157561242537303115989113033601502527747557462566922309566225357913581930379410650300123014335309843120845608346746786428721886211919833581734147213022081083677586908653843106670102291352731422879284147356698365842038020759755092676613437203248192329222041380714476467228864060548716462022281076501011051752765530146115383341665199026484340627625070336403142289502799905110680317146811288683874410655696822728081541605236268593622913869089945063274597588690852261072448124927804234119963817071136518861212904592363403120193905098207758138235020672914348532032164863649216827201377472992754523573466655649534822229458124993201959010834052084878092573330713807315901439145360561353298967100278655470583494822492992758728715634664714232884792338253365904814551615083198182171012360929065831180977187071500211877381904166242873208741459658233916412821439477696036185357556260083996505012153110244316194004544556665576206959351000151704642369027177606391893939801970463310470115204816221571517978182952747028373491196892432952239821306428871815251788497236309021036633793707369272523522721477197509255145328884193232717543247842200162522684913266988310791453758610004901949857122192532950233576524607157769194557045510173607623808333943885454688176989810757304595490214167342834605776462940795678011759530798382985645430498755315725294035082944713366000919093213476218906865486691980308517542957418667329426710274469671104899812116203764825663468092931920257311303682444408959311170618644252462629767548661100437215349912125573492967949287856064746550246966601057835581294546342883375659301358591282600724126543186712766252807605919762651896306531730200605990791959000933349300073769558471530461439108160758253710981518640161787607816891552807121359508262439566996346425791814260880272409291878754223558788852081422788263912036342958836813770281003321973705748924852232014649823067175741581231756287904853633332078723281841251435182630791514935501654266296140129983829092015451259464057607540803590545645141049139737970164449752722939628439284631722075416261391656691158862542280268661013498493581931506194759948189712410822019251404069969347232667849465747538926069170261207963223696799095996866336236861949918560527890840792003905757171221204548907028342669683161855769867904759783700265574453738171160372712905618834650568838649662076742574657218044824278150654604715529969846926400975028474295036419129705044115084336538143877236420850604421855799319747030616440184735007706426114650132405186378874275209647417795923635434208024570052536908378790431212978192224812503543168268131179177457562956008978144059139188721856820031377075640706197303229209852670526163195786399978143720272011469834021815965042882429288673361151320823768039915126733639472763359684410785678113067800720396288273434677528816624126345134892435299085962524284609322412269444928069797535965789603943317004678556145422174144700625377756666213375045697492526926956985243484788124783056661758462494754734152119467356343618316245425236506233992347394899746943896306311431715020093012870971533541815066637521885129238586320213498064596618911883316283118832756260723565478662859302052878289499051529109882200981971720891090599862833031997107370054273975780533256430488912385760338779892483225772197347435873220742699477079135273777919444945696563167134471558792549401829737806259568344195116554820528789839206880581560951663257302251554485979870869190401923737311836244949392056377948587663617199660252945456773009300318020040346761460720497524183141990026833197436534749982023210589503755634461549241434155320928956866916296385586922039653271156179339545802920973560116436004375722079291772045728494813678330381221927236049767605407533063080771402195756472351728460868490203531448122115813056076616502288472040865423805068436091396637153181349023224977134065363127381023007545244295485541367014493048199306332145345023193816688657577859636703882539769958461763921880525734868187994363900557938508456852635212121211519710880776670053192567667811745785010900029095652880971797138740841797437094239889657203014220757561661166198303632033028273202287122789604597499580028124195340696111962412339975486411763061641346926460678849441390682029941230215663838795974645287910761318913529837034225531625631969381304917956247192177659102346012728705330581515564013102594952805824083999065929907058789930807850096376494226704580776767146766524774471778167686423648370281130590623362849973791242732519184362816434633994833822494537088647931259400842380505971943169923709269554808323746952926730008358604794102309360813229404553396767661837329625673248868050754782119067218186816960662659262559017860202215846524093613669916458815624844619171880922934447553183194904739702135797060281775872021289016002046942997324292129236310020841394865982846735189087274643571619360318612405734560185570004422342910165696181264544978216167356149156387245007491929110902908311072807442946292423014768546680513304051335140716746513095460087584329766450898095072442143149507202949432776733489954047881038554946298033698336703231450056507098255356816931397670076648463892466068120237196528577070411450231784445993255763272981363754492651761474394975258112231549444543863502647525553037907355265987172174985446070549456814944101342064749191640185742581835629231657589988002577839971875505675096178617348129981456631517347182673633872926855622683132785257052118894071970701661591173367995397046702078276704168513717513238672336544877625573092490851288410421766384902692755730655797388285853044842156877304070105176591291842493626676079679973484842389529536218577240125626073084764853712667994582722908938085935210230278539777097347373114594700689798905330582482061202586475750015262459050825747134227985691751912957065326060702216543951259874608646133319925150119360654176459631111368121266343154455797769855082777207539133249247091582698459485246700094677655088774968675519856849786336610848479535421672017414385207499600642013438875079783620082272695710578822139038365669884060836397713439259492862694590252591474028569656817649608402723511814317907805767918205980561748091932926368353431243655930495373078891063813533716851957947987585123477038083710199757216132802801401000917267997420967798210068065200393805927136518949812528700810234919380114130837920192954831427026244798325429611250079893250872193754949116030717092060104717072974116734202946552236911316176825939900838190416261156994482565459471600464931530662439581745666556034265162786051717778578707740129814890669684329134112029686425157614741859328867256658182647737751575462702587599415150740609490144235661296527671449584220935111757056945836808866755490454901472548681061854666496633339105965270139610986427584352859325579710244542257188230212870726094403173337777168644903931262494118801456686977905430303172583218217878290804730583258547327718943308468276951708249144373344849531359359414647301914948924338774058721919009510541397696141314246996561312500779010414233348402092748846219133839722594712912269956077888142429435427455852876536494221372636623139765444269377451326865243301342560042576472208651078341202767923333065548653577458683044760416293416772055808289598494577067743300660667720301449847796917659250161602906056414092097350196838632398601186179190548131843017322163959579095024760689233022295025869462702743739235331067769612793475243791218640229260039742049673333073244897538903082026650347415353656601025125987192137555866652049910383397413781748514828130760764414474018167063338136676613659969835012232381420116963884188834571377848248275541845233056161744534115790300996413909052822796879330330812287851018928494526931265972293401993530673784247080036628244137887498413488052742669267945074583986597966553443886587135411383773090843322748685409674897882381290064788225985059872625887478832863233643839429212852784962743559955595944793838157704000300028729696575933820294501529162466377605445777614408517087964669551367706267634724211398405342651156688896845033190647420325131004871416429469308878709532968599640086104168327816912612750219814888191449246428341016705328137019872176383567939280506620226443599243826318196822662582719163480225304417973594174675620291391946186334147510450186661298227844818184463601272555071041031903996069446895513323347967796798322933804805120404250784670053821573677807685569765503477917365055930546857200516248335802394930393634202101272662430134330815269559568947465370055805565564988106806408005914438075030717960051121381416282707871249906826042398289112459443892179055887182113086933562240380442713599062405904377584118169236094621334782500521653876994079494959239325657971618990481919553684002355995239324266498658164876674862184167830419094018353079354066273860714900671974836107602176198455240012926369827801186344207983400447101283475223917746957580199162939891047558134626714989975263360353392106163840201953029274423712948482299186468183855277978519718409426693431163900328633406793924732422075041703401813265847582619911300855722183805724762028201486219517556925648695189720563280646504302661488875933353048870191449321310918574478786506652134918890310255663804332207498141702574187921891603620948458450506566237230864331524683304756638101381626491508518037320663029330759201270007789749246624021227723848772439788593043991390867228975466040512226538061162251126450994185990258889893845046723893205512922706099198344576651147006330125277654041146513055183090168664564230347171722953649212181417432074144401105783390493591548056060185305958695333475807511267531346846947739462724495773423407708441896120324845116728113071805743345082654031673005353033411794129476354976898088607312273972899353168865865833456569480050274024960192070292066013460773585834802519992054157822841621365424847944492533228665585059257439370481026447511357694603919878194986288725376836816024616851031874199929668157814950950171967208369171137455412304273989876031357183582560899998230984595770752556008194131622987243929104069120170004356801408860319583786059381389428009825607577295700423168610753445707785301241816044048079593073303826573520774028402349433124311310502661161238104130204063876533448580008903917610799498801175852257370670801742255534956410372944547400166320637668143470578292665934030702807697645483228577499687467401772727684793371306010774823387077378834337764521899401724694699240159462525818042696678733619176585868177487791136415057597408745450392552523003349844544530711902412712934057800330438607519410565980440168248693465769336098925473527346120438522579478219176181055588347059138982367991430700342338093307577533309286270665813495272704087619975694267108008516071426800868120749257952383205577010902401336302135339438219984258365459263633407196464229610626675702536360838485053970407117963068740784910979188743473793580160923396263909432851612521740159471637999819116567833512259666464374236998435924678687478123394963199505086960444429881694665597553507030962172264378509708202968048502259695504003837352569380450591132636161716281295570123708809653620054609764391743535128312772695989929853863638397095521484852782305873862525853358186683934019826191483770971167875147927725659369462019597562076547402620094440454172472427629083302182485856766343616661689360321038666480200082478134238569222445942557186950181853160016066877693489527209091903263082167338386522345699918511800805544871182899922337939479200947764429148880734647313835607583658810577473345051793699333218797136302714040053383197054474773213721963607110139970053118153316218521167202148768526874002395310574847799162793378343736935704654583660107923006824650272779364156630137230281211674840037038197035775517230007761915299849593590689591482325436850354080844603798137527740938957524887634989100536668491227148001218579881676237687770874663048561794773375307579397825571502316357442008367977225119561450866783290918313078081533198467100939425998145847378510760390766700605699676552547255586501310778577424954651557996492155220447751893264012122407933066174015839251051527864626591971400958361071631730244459458890182113923089662469162855697002236001443668345200719575691587917590310776706591349835703040629422858348877291343393846444165271903282224086025412538539542320697848806399791019191106409938240778315701031768001413253273343956652129962886973389525749835576862031907192747642525600512849583864983763859359984015016413441448917885955203678329488551513134343231753253105359535443518456612769226060097690902021644786389730104347105427790329164354789906730556247406553152329595989112001462115692548980464175396107906918101021605121995105491606733483724096058382996531420790593878209543278146072825828167920772863629269600099820646653056410293082431044129368031392438065667640456799801488688225921775019713846775012738403826205814030250361111582487811839288021525331358696889193912360057117577821131895766462240298298817963320630627935317730261581361472423355050567436873706584827789137023274352329103511926519962885344857422708850505245480618045022464782237664364620733632091195015942488984310712251198473213344698552439953889452069623246891737268294677590256233308577488211345384251874505900000161133199631789885559329723970553919425321719335468479888731830058686898164433245405979022555143753088757117312927303976435249050391873090045506630246147963962668033836355069840443915047682141220146806206856278055972016627303477853233750375764163526821722508101487619093437734813155465233749383828635057011488545580132870091621066337057649786828344196459322450572238564527457737568495379994788604279519055028783802000636531653320062563728140177264757130946332308102695576260127794015293376732054995271897072187231738660472776505067713293464342329764649679505121354631817069325290967990662991439010922728152772120094758273099462541814997314416274865494880927331196466197540109975704996684096382613724234427168998276776434889280648994086634334786025566254679520792929388373758198759519183997377766079424567863070260475100404959940183209644155769170228399340188146330595827604736758638152398292142746315645259967347796596516774006009065165744924952559264857318029279517017469463899042829032064241053988573160324675910451253878929127600469504630842019880648893085284250844962222221062009719196480711777987354872598974027534723190580509803297414312750594621928124293609236758761269715490619015140256235550537715982169256307300811985995480441877966670053309306881673913023344822510053630363756738682990145798940733190127243354690462453346189561878403735506501336849847198536951953699215733983972553106172900726340874700669996605716243904974716122995132599555553540735987335316267158931447143563476443644203406549988515038503850407183176074664929874685973551261827515468960761444444042734299864996038447224167215303772576406358549283103975704031487521147872636613108682673826435705848251463517474675203085064164842996458313373412198252857173180798852689813189221685124020756203141199793581602263565509848916290108163716093476277678801603667531681077233220590091048379935211047232136617891604367460319442537598038107571911957140757712143361862938291417142688113948643921973729100215954949430700692948072147279087070987577523526891727865578790936248094459138149145562248410988438777794032469318761025354742947136191526139829788987075156768149762614617463987712193622289961347527897803170334958297549888439722760007470016179544178217399316504418820758996233638039669682299923299358037896423452417462895092848231656316996578497365470084686950952326599168886263903949272797496245095574744219904853781900594623053716272454409852240111791955294510254633033270872163567050793580126191380122004376908828824966693196241306749419590699586376404347799936745643371962303953962497030350014285415043274764843738778324762701195118597419886339968413287806910676445987981008479432485915446229472738789157701167301432966626737272030220770575031038924492559548714395580101216555251448691917903166350207162058656622568136818731275037206519433801623751266779494575868057059933909300002282116226076191450355434254952711860617546469380983637509299029556245795400043026719683992402226127136685176549061860195465199977235306244073077269882097261122030130004704429246923668135501961615693221341955585668916808340116582157669072591857758541025112219613587043356158198740822949077896711913086622123456418949565879823168878159255158953662976376624006348930464028690688798660235977646244219485096208239013362225834443331651397691323281055669166824274819603786036612415125055103454817084430964216522004907447329277773003678137258841998226473673026625383409931447888293720924132279877895073462362148179367943116834914663218328288167206035131489367401559072877280200729878730520333595800609187746043510295873701392196184353936915195618089217261461153072993648071376435853515127946982818405775209766776793111088333735109105755061140454184381062581821549057258710618022103684493878269997653496272772588717322745383752848830057565449243156458528630255966092594136134530166534660936509273788305321897564664038619252841992889992530609660957556768984613333821614911622440175507303868916401929622192156953107158159445878115462233088435792744443429365559734142036358685822571791553545185021150341668702765327355384756001170269559837564021748636227957442014655886667879599123523228103784280172590180832293023309256898031517547231334101107570370797375753085403155896013174495544781866386803009380527825128583100521555065242073841087392775884825562006324241259937413141538273439600253127975365648197084349287537599528123313316057395984094288250013646509151050813652952894152305447089426257835440758288071547132598463589788163900628944068669421538287486272172840690097330797500569319529176344205545274023155594973180279900256005257904601109660239484252696075601241927396408059581047190218187916482958532795486234935194308309513909816985675433509218809217511185643303573551267685969823175110936435774175425469005326668258545563215664038726729296630462564420709251336727096822688535590307070893397202002175364124140769390230233123213394422497037122898882226551252611236894909297773708305112989911803583748159666670210160914098316903280746444662960761002769380973679864343797510127584797448742887236831975830604425060924872344721940042182248010392592373925901268620085268514724553515734712071313171569304676548419085732142270155378481341152188900240367170952891729989712196137654971499773237280170577563792732875720281650466163482462581553184919229141699716577142491160257699897468803298619773209578959537869141070198454433728604251161929596344248390226939065999246927304909619483037942633011203676752170585557590789263572797688110344450057653453237423250446183505526338124728376330390030322999880256288344839044491507768970388015861169517859171252468975681111776407560716330771003121516238585393625266638396710570259765855109623982091260579848694913635277890950347550920474530323805054113462425018995293766606752954896668438636451205621614751163403364520616249574911526657543590831907725898055466837402950343755688942890755207341811123929603741977514886760152741472526769360185330945919778983002352643563714103154479266921222044640304323504311747320474637242664118930269009540894210496492711720433066439100734329175124756710504171954551866899931329747923175246980414782741446937983732229776098664346116074494771004340391326961090088048850250324729584922199879340924101124165072361382020583405101894028862466424004697006327144567497339616623280354201504587742807682217557416032277589213186923660896736113376651983401479516919054090745891329920469420317223892744296966448666181206002448390056054832384166636242821818222764205335426461725762201115775123215422183503654129174205849901693577808859101811273053523837995616186096126796853593179290810306953151877932768223155483661842215387562918654736021372436231478849419522701355363840513973490709841305103453546495314115884683755836317091056007446717677465378890822339927712198791364295727553644761161830235825110234375083861766685354744925165370326943300946237575881987127890789797881410808947132022924584923489739428210436490595049276937224322281176981749971996182768135354027842209917563325148337406741613258757559508560045384967896160995803334658770238707338849510791850258906805572014878377142855061051372784167808919382168256269608976414817436518987627273358242553837382218017948403828234285734308570119196536266099310863089445110957306212952650690961957533752139068648348482572652156319843209529804038346496268883749523833930489978941219245924452867059917262302302048822068327594878512430732658861851065589036551256632310599970116575904632309837456224119919457239649225321132003853923659159380650302550603792092981532413133263501431795786622898072927985389560637622675541025367788207943594899247305372134413184118885032820855391940181730107383732386487364934351843158327651477190291900185380515059400330458064171430063044014146111953385115083054189054927181654477231992891398685129643668596959472784710172706678678375080111347940384642735574227775789363516921575826381120355343232232624805873077328343182906570929228560964200806984461106881580259177185458915033635387746887718684104151787141990585420283543620928152644710474613015800943314000913208769203507754805526258919361313719388611684336828203213648947517872363891361469804415938077583202589312273390185836805559256429466561160017121626186386320423034758162492980805174526872244203138153256997984252517202896942643449384944183068851074473518967062362171375493768929363509446465117956994970339725308969698200436799291036692600106144608118720456796625390434605023755536870094524478887689253663883594738790657440117103157132724828295549379129934181820268861727508848381893141823133388979276034014926084300930667674586644283345516785883964744099851830698705422462232333483147533110274133977465924562933713575951794132171865316165840769905317991687007398104580200052617686003204384809409197344696907956136200847153055259126703614895353635776842121753252873294999880832757534920095297160509796371956514419431928838020541147920053402249106396124916517555476428429430460928497667332971076202297347503848201954916988535171400079149945655644667070496472298985938761673422724682253849578696443951922231268790193203814802782188791561833968241520985669420946128616726490047991744598614147169241346281853554515575334577176260592818456765707497113515801700665705507093779290109347726175320816933134149955031464437386012886018486359926566401151492804527493857953211283974598523246345456799416720792534143563539234784649604644317529299292735606979079245679947740572581904332430110816744295369589551479216855838593460807677483446199914294746464515966343360655489983404294010391867010993663685837895019407701273372974501287651986876703241576034599958929768052876610966500722796766535610348908075383691203704473819634074664743896100848265040864619510757679842490838506631266641331416467135172038153424268845689359262033908832198680983053600815906583510734991885883636963335796940606166047681176379570333658474850671827799295948073623946534953803567162016087389708425206289247078492509232329430994159369345137015612042579499204980749729851176255363732987365923306955976145314129317301868241453619273351682278162704719687097857202923846434793881418444759213982501668155516388164994535560916784647263035758724362467273491713253528347057546069203711674802913690177075585231163902469261561474972534777634745434966959884574389971099473762978025702312080954216149989776458731850206523117829134249065121566991728522689021194588503144466075310151650919549367482596361994922838470778204325877275284248574898523496056228782412118379045588650785426668425764496831324560903224869024573246886731719105645568767703529853091716293627319123922179466062158364338983997801589473022617719002221419572211460320449768477559681597513520546242528544395353286349087600773987774419082200726545614042188424204637116930145152001394556010839008471587453310348310257307816355411964850907375559505115090293382337790862608145941323511778023289855475108217204253052570260844337544178864636648974989493195689948198663139213793087999571421357569536085238977048279235558945344496403517539959728353095689364767744474037046639698851294373291743194351668519512747436582724258897238640785042806132710982446538150458059474466564840280907167592267486051913894832065885316713959612431114936567765240572516968392436770879425333967261503200820050425257482848692719295063849255097287213071844874902186450271741884918330019050092462947978108153930327127897997258917837263687121753289139794969272282080307902472014673702972262301375912223272015672087437753905007982747029467525169854105165394873209614590520672107228901151818268401414879750002660243187755540327806334068804667888323098943407962280561422211219846140011663989393141569286378270259465538484718796877424977990275579469348483891500613470695284640031136842421220906875600378481795506673078782795037243257208010759296177562846509954573180716528345669496627691629935698399194781176605222966447318520063716870095178484791688733640502452555692423716653480245407899727388056680098341447215419377634811369097988613816637475953685563352392163773677098963126286130698521587413511645834844856692030440757927514228012850692470507863802866503445956766373213525957859404481230197460952762287143032603804888193000958134557103184055226738247501714302493831912347870791381649932183230979825534819258630583995807297957594372046413169611688102332734353391906915751841619351699110632419656850057869142244036419315531372415833554781526361922789365612860006387003396163580753893914659176450125109104208487971325423812377946225170675338502746862251489348797821036415162341091213450142846859442843360856428367863852463700630966951724645041461216895978298676696382159832469809433061061773556541041626168846370646880294327254319041346222511518572265183572221464926570882631726063505714114421182899751103144906215298824830844455555355913766394652887471822293012314142898106392248465311364466902309374657814645101395578274391270196518252325051891851664711160406136032593912014443255737103600438048835773464744009661081637815078430283197286557461503735903036863199752150438572693371016063616096631618124596882849850671847801960774278885245918733699359579036167039152344092749830535157542598416048199269605530300985069618409416536036913590061909439737205273293470679435224291233015481822936465393459276482305689385578480680830937747303611334847039690972666492193843611699826088155305603437898029394416226740721200421333673167479388213968885324922117432072614065391380067822452947164226540037453973038592344543409978548995216945249553259088859990550555561289539612547956563065008038261979289327181507406538409352198600373337337205862927005373935591670631424512101413879004615857499931703598286190265201695775851408254568202990514058371278946877227085595925108883317319346344819268887285993060846675688624629581251705543993016053964085843732114363513487557306535419563362603374435499678954209837939646644002596263137103992922185625123525492987950744886188461560036046962120549086585817301056056701320652314026788410585950156546551364030836860424209965916617655518830537901406786323271188662341627046330746809836143852810572019785711972158870559069698643585144997875258955220897528298931366884952112802476053921782753965828556848503446284381007330205435258622019825842944832260972656749208194269356246141939336377327121795128823425534017916758269212494549086857134954846502465429406940068360087046170489358532286612366878948067969570123351452005460619958881532268317437300426165656061060813480017625673685835869838459921809324831417041302141861569707987313505881346042882087320126117027271625989001922915821525708468062908464768663549183248931578360332420940323105034124162306220651025375690150542252111341068635886422640795027130672173729279946710845217057805950339596346596887321293688455463938697662906014005494904690860536530582805174595340467574350190764875983695634810623405217457478476451513522294299541642300730366919614593795679078170651602728539518029463499387788696396367790984479619170356748302737162209931147668533385017130135359912044900328661884347889375219446013746257912922916414803303328933023855891751136682119100487644968659528477633966052540485973291767624401021461553729564169675525887919290011371070380798126933544181254980324350878405502806629611625384474202842054274029344409366960614070685855944600152148572230471742878853044509457119024835505810930586879155356120920661842255497446696417412033289403298066181321182005408234867632835677952817153891570531023792662096455392640839084639415119470775727354108099167473458381087358438353588071875969643293499452523209493812630400142395118230088366472637939974092984592937438401918983246521577203271123446580023452363642667101647225465946721249508187782066023178272279194731193252267124372116248325173395272253548191735103860804320843221961355074959728821611809029400612744254350118007599498523596695061017273368029181378599362534687902829886307265695487457435841629684628256335769034479761053160474205585602775193194093154312535628148721751674378931976759216585672418489050669770035635151927789507112776242049451667332413587274290619690012009512195991556513183274543534350582757902648431117072315729782667047714408499185825177124818100519918192578924016043247760999096092925176170009906982919189935644346277593509022872623656133484545134416128025550175643113980791765663766751170594951029257129495931089315593281485037040590586522008020406936969747539023279139352368722524830972541576486396371617716031729480376097845771631880902098725829883856510139065746222174865059626961776836437880465496472833236898586262173103692081698335605660362765514768969179813835802794841222786234975939361939877828360542634709781456839551082682289193352159338934355147955124937599652384465742619840038889578860322766574859152527569957064917143762352439454065609749698620511458595123540578524450445091193883035246872584591986794472970952272991467380627240839538905394018821357480344822424631670183146921120190343937622348844840461809010109051104255061921502210999628262069388693118403595115689655656241089345439598358118853091066143102025599692464948726768438639767414530823323624898635135191432496297207074041275443227034415240297135659719529083456316854357810472577028040626989817010802937371341341294753498020587413262167716863984585124669725721033205294836634517157876823164593222805451350084029790029447153869975714644013172597564129868455437559617434092490025989308886882662691817040151271721392970718126877241325344309834225177378208966807690816298682009264810234811545084634732050108375823468543542113223862588967081749362149514375164960865911833509579372797130891929328806847993201627722945384638431516203271186032891250029286928114422972470717786462579892907171595724079376949966059810219846392559344984457686356513861365047024774783275636217809872778396000505724144756771969431681061712328911161017552331041326329233135341876620517753329434576122663045609287673633549037132066863304723442921990734388694199308975863062856291184753382765659999962397467469065697879561238161018954603462449447833650794538017655101057332196579486796274715042132783341772544688210650242945952705905890723767470362498855615232119157130688219070197115946339575665014340922240319303267450816055743098978642115506468085434582943660989684964687867176560163758106224280599120302952551185945926978194947898211735174609537237755304325888174824617340725135396360791003457847141757402626956991518452591788005851060211806187667060630685959536948551991430937290400350623901079046199717658308917987029704553318608635024140657828010026243296913729562333366991753513503801285261847522341039079927268512483620518264336571364554141481574135381515601382057219061850566631113515531899610127230800888265921280483776908946966755170473537835932008736957681157276393065015053246149113853104528722353266193344610816977616936607316115766444353423954366031193051786397354296477800452655905654770848934850105755813178973121367401528856131623255590466932420719047971525445953172383232467239870362653815079161074248000826083904303132025862114791765441442239781698211847112481975160494349405622906539662379803420575289432217844537844190176988641966806314040923609279276930935647741089746391340248354221408035897434698820320250584741722396686940532936413882362305842280845262084820910852200753845221548582308609497961226790277000350006585074006183715083776961709107102144249220260693363399975833489606867783090852773269758079459802963678326592514392481269018577714252826519836576221261956850962891185231401674909932769528260685779013056760813777052276398932988509917685754679353431144135464696929379287943543874790718632796715960381537835568264691604224066776658474428155461014160979619334602892807314547987195590966317682444029342102274388066306645904523839729494936994991625031158168936401964835001020365087467728284036981153505842032463177786944865459838855666567650982362378478055801936361220517733294360767898033340946172477471467796846858244193078113300708177821552759673214995479874335193989961299647284326977678470826328306354676018682443181521688312258909755051996405644559231352570278830004004911521740712908547100092968529909708217145926323904503286815104043958353234336731699618197989840859757887433945896620115391360161737064749629463085545765853597032219493073619512956146654907084489307288911592286165712979386774718527831366329374364031077276634209588578498921592120770939139085031861238799423966279594793217134545185673616856286223380066201709880175609686021060911450992668875004577922213866457263534544770783650975372407263089281609216594565874362279380124034585334039996240423798919146780574197976505607930191374224518260967085039483728326840464323497003565495553821410809175245326453565056823324954990676956141434280889231020169765152042841340416961280016286332069188515882401618432112755268213750643618370321338736425531334598512896138439614406577283887466732018421624474906372475379358990537489481991917919912858859102491636547752473261180602336331946478852644170829288445002693021553771427551037862100116736885701805172671465080249522793476848313250908615905733026425236829785589555413699169994167135931322666384775181751507087052290163339443726465461873283811059359311440501258228597747858289774904110074575887548254041308387449965907972442475434646615972591380798275224625452485956468258677902556673815995889129554866784487811425814051321265392880685466164871051355773409083496490902874633615331743568642998673289612773240390969318833565934460882836062055958715675285564310981773848218656662118040463448770899779793410743989756291178093674972175641708684212294248720718339658092571563049780676276149446656274246887861157461672223702746322182283560610457308239934472877763579502092846938497793220189454088625856598097801513628743970620780017631577574180133866225755513994987030472668917840689686551042677008003206047191731150438747919350786402631404818732956417292486296041154344503252061402889190973014101734958092010686458508061632078446019782376655822936061704927488839898716530945756039607412531416314446762240650457396490507066542502253492690415709075793667810373371567224304072662181217156678524825382293878984757414119886784943687980558353943490414090457593247454859780922522253381800214702523791851660882745311497231229840792929279510782051341970865531191021876320736684785872739305282556301866658320499738366846776712881852604756576815321696893852482018195683715561882503593876148747941216660754823477364999165423407832966632315810204513196775196538250302910560300912283571160722768672904591290879091379721646047250975736339136309721815456845707741810304900580003280191544940767254056597244427446002754309860343851826273817442706067979379027311791898156666282266327219637449136838822051884854115458662832167358819516110558163003459623378094107331933954597579191222059819782280757402096828095387721905655592051991475318577774275572081127315787310376026677105062671538694198157521866575918476239826724815585873396334246757496425040037303168053880293009540540486726567043324910694397079093793268156390848645712199283626180013552537114849268584854341545431691025344083797675839175738361087458304984524825062490375182335089762438715591933215503301052704749029116102224390648609345881046180522995273854326273302339353172885970321911264084110200253946933666348356457158471007329941925668855217331592919201580716527814380625195310706180712364236114493591684557416886110016478503987074942846810211362753259565215440574929763162309490519173681491005288987059564785973303609979722540344476933705386921189007092203414776111974072135298977959580969144163436197709666498527437133140734884069572589530493160096190137890576284457416639325307920648739654172676895662917524828957152507960370969057228558917496351401843746579096380593374683266124197538680178292151115857609775451039373041836497850282863938295936065598341268844602523992749192346587984842467898674696464714558205733996717569623378217275362401163829918313813364796457497646233428051571063373199955091512451623133771575715557428801780122064066919474203913681036076696188968830037157838669666733751597519396790545622053877656995891155224732960292812612971148136662527116860956414561036562181119138281832346697026452029735985649868286242146736233035781422300328492865252292648400689677162725694176253488387870845183643414617991390942113888213703073508790851063120663042667608997847954639698228196049183358046903061646949852901150058897132930503294133071901911339278362529495152071247386834454109083406604574805731614727558846773394634872599245473271420790338741678064419482031806776260878717939418377676527537801953000859339913666837610539457363205443310475658844324212031207251997080643016296113119918827153568593052876087557708756576992927117143782819894168251469609576240766528494615425758977078174756716410307705856291365599778180580235286491654186202156882604056965943916286433075789257708704939391259852470621669053344459716714129291947768733525389036100271743191163490378019857442210885115066824923469536086136456319771178108778415694344886707069118166496229855464406984454382738355239789781941336384028292678196637381735752798299652337191365136082315921686809175020221245324908786077655773699350216073551494796709664286503318033369914949462394104768903881790870782904144843111664887844980392203062605452171917370004489144552296261914297753464461019669578813114010694454897698176878538530735911301241118996125700450747052563992115886437850670371860443948038765541415714137315059189440460593238484687582119623889460014678197502560142423326643878143880531708221425055773953079194993862362218190223155719112369343774264167093297982326008407094709329077593114132514350077928797356199415687007066663710816460639413246811919031083472134226872149952711163993910622825380536318973281501172571280605219102556787758292433620249589094142037186434062162782914894191402046717134874699841880682383604356337171735738130399630545973828246242581506005890250043282644517398029992396634980576972598618968488455861594636821875058997542192580920925395903869419705927586240614932009705702146770941823550305039369260689059869923617507725865749059474245719526305074654913251394825948947361632043045581269082209808800737466179297369850543742264264670764065331291164405698856703508290861829259795315795579559790735982454138750930593134412013605656097513277433974897943834108138339525362249040273766792671344838503156846807920580461234234575042864183897946597415870864513324146042955632703483439950899880693911586316166520609238198456301375463585421758076985204814358851964459172402368485318522833318688761917521050760253496679847023181667398515139395045856987597020913016135114551388643556822565189519218306007861247446530827389548145750674954028054417358905959062600695178699136433233345548781054528559679058426412831319910643976819310373403862676081688015445554716185097380093464211810840761745792820875174430888496233453645374862243361799666539187664427437429754901566018723058369707900540262372564143672741075769069406369857795385063627707003619787387450660632821177328555643806008859948541992253317637634924495443801105610149061125740881872452840850679249941671043113999545854536219923496951035331073171107804736396349231825544630380221811396677811006494906217450340368442783785078578210521673980600405528030111461239165244154471265532369139570429788578985801453946977473357120040460688847370288306817291770281024995964388216484458148703990952106210344727166983594385519566351157057747428824690827769468477525275330939031584583237473872628955052505792223437565072028242186363039783075972537700391708343006480995534108212970379342241472734111804151877896231055993021940460632796630793220512311246784902928190850442232514773651117425664536003103580150179714125486517910315957990742848145852677305949020469380997993137716092581404206088896996023590537344155223509708169939035601790841401540211685317152684304405279086669377075795790872806280742519061250049591076814190121616881606679607741718467774102936735558892176827639731630513728759870215853849607565558593118708944891234762527812608886022820200041679127410163816974276206161732953273559550842109021957679106204135576855704362343564168953501058529666558102001931958642924999946447570272087732608935159198134759731268502878164943585745433440907508107618229957450275449315907803455708719530375320834116833226979978492758041508006519022999809836492416874212896989922425455339181240813975679620022104965752540541109912913116631806300955465286952356178123006771080469220778296490430117696224956090549319852220509610590463417382710701627721240245912765243825714744419114371225286569454535261251031562163454689196687284110173761613645867723933216864311647146588870196603994449595565969166871930820033192331946042098718535746419425600118387740103447348903524412102770602157791084622766224711284085341125731189840762595889577098415307008176031325020346455726826100237181453997537565009016935650023767296037235402356496358878622802364448153522844754135966289629942711478460509669338378715004290641323855926714978610238125334942605793992754536975823511923192296379961948613656898754900321136241045420217291421244781394495120737533261702787813413653378510286725758303971704875373147713198125278104882556535091557960957358356106091836839490657932436467632392624900572500902219278917466760857467179789065975475185758423575523552477523673846012133657133890618805795634179803650931292087231237114101262976584346582786695543063350326299196773055832006246966944238465544295059136398736783970485098675542859102823743284385633721986389051346819092763126365721341086642533592323307657725158628050402700687598704157545634140090201960624809651152680002244265812435897159379877528306595137406649424656676643980863978341900889601029119036482169823589283629370788535831421729439720241921765917704787751559836786044650607113714911567038764306728547470340350033543168726297231382170468248953647508889089319524983758012495783532646776930569276762436809271579482609063306894996765942964752058230520918374341896266978380833308319208421457405147265822326345010016435940384052736017386788003961380020310966477908202877534978143339736933697666961939624303397689470254596546512650919291429292805125726700785147416604738993710446159067344285908900396268418028827813150776550965804691623501124246382905826645105778165338837299703339228220433196783297204325729208153250663480410273467422548620332088208568951822338272544533123454918481326350087247788293763509173395899760120076470471988920958923244482367153407968265024665225173125928486767825336130907825587367469144638582105065963424421572218538367521390059163624219053464741110964533669749407204518529904455025102114414920583831351984881952006172568789890324089389974323092160005165797771675305721836310943265212544543743757185854957102871982380884216461393328859424664100037671978927970547911370431642990263424494581791705901593829502574833848984149159972820566125203155711702568962577304583547744722112543052556093429540401556930309479435274251844346962584499410278797756051160109691495331742188331971670226910250164716270942773796601633801538571010827303979936483484774450618641133044040880892222210100647071931793430210936011652399461868119495526707365358453235047135274593914315925139707383266084187285566406136799400630280251757607872019397185922115022619318699516025860386152308865212973229671686925368323585452288650599683256203410187923480042387134737852761441676065389921867257046015048663502923457356225288287382794375015562473556364610112480945840973664395372192890189430252625154822798257406253459669965450116138670412618655889952535283567022146375345649121995250194963378256064338734164475248322991767831332601292808648793197045861054626036721184563723123128608517780154178101919946924737598476086473912911098315012175675118851090434860940064901106412003208890683062241549737300002500211362580503321274037013171106039436943824111031398394149478706168519431940103317451213040620378430411330135657062909198308741096690924320461685506139354317888293306928834924042060850062888662301500397984462096671156996189729409997170692863119868646117618379012914640818191906062051560812286185479489710908930948279409874444516148289228673939161868364731009703030820559703514068891132196859039282838980649687654048154907836339541327177724195373960355100004507875255126680477845923556160337750185826532193241234544797495620122134674984701754526191048147302908621691146120967317187358818528534160296170956926418776742648007569029619060172134524532628878624570776728777965061481222353181628487530120069292942608412449205050253468249271934455835178695559358261537907057399908638143864129009350867733472494590372688809338495307525332537872427713060890623924428579641536612725016461458265855668315623143728792615444673720870986120035530486832275300189112878808104804340017991929102573723040541458074218016222914621047057757504299191414314844785049856387042205284730557097512716134068265733067530804144254956197431253990099757609276644770425651528260195908741975130193727639457347163881184201968433075058244856216712194836721495292436412908054151295165736505304670903701714812955201363752113242520557937245773165584876594076885740821162124141795635552745397449200934387566248607663457821699993847548135544665101186261478954738811846864876294317092653743405970517392449525435654025589325458153953226708850796565674098642305055328941185238490686950944612070900333202950175945857219054105776329459436178912704529238724097512088287829999469138734492418333314588377108174255574299452307753312556136610227525904485185016815456047729402249085240976706061885642782064051599963461980982159343927057926100467504087692173258092703255883698878651367440659100320499204880888407971710151550795265920641183086960373382875028305057109541500009250026949947188648574043544301187786338791298700811126903261703099787512940738179652727835745151279295352013319211879721606392818934576700648719688948376388680397274770558472401178665451866313998406494528106977295964473031434572027697061050212393563654961233145129065377586242070451829432586365922291789359935845217868046143505887101116202231032320658741533593485155899079531367271430762974113576333485073862838205399538320563037540870079790847775295441220544255354621636058928656978511486724790792847883044648319084277981289552607439326236962597751752918766411461814041378236974577450219105432220264007624226405525132627532370821790572508641221372696663306224873144480830386104923655406304973857558197882482451145471556263018489797040792315276670898399849709899758784786721576916416511971453678084950999080225009425125682464424998262470034002805508817798759495418564512906704679560973115496049536397762107004302823801991312831502701562211896624195511990546667123312174643951768103652055876426681559472137801694335351162777781397775322148713588828613047004053210787080426155173734085802027123894827245044571109345627911791824114866474037582163047715925853121834214389967719454790959448111208260024011446664804001400568757731009406996756718461990012626658726569879847443914227120303827091984694374329061538495901563375378785510716751730496536963879351261567065584310916311064797220319473578853192092142632150690340512308246247779827903047226842555095584355013235765142968608428457262398303519220676224112103931381049463598062060898062262377975747109274638548106855287568951824401392941737411609396193608813287278791285457102253401156016394513124990528127608913477332799162537530669285317874921665178735997993931620355126492498076622687094646744379262344597835038889790650573707625199216029907743761145788325967614574111318763261646851245792322139995457790556325459920764508937261133651319148636400954113491814879852762572682256195312998564207398489257243024728410725217849151767365979029103985250405135017521843544681212349056655084013996204883290595445404348230492330786035936893388879183068423038381072377317060507021070633887129075713184766487012141320178386323617093080915398521376455808440382433345524654099258773292744251744598573505928202687339301068320407105088135154730013272681272243278623949230730566228616236749269111457573909287829005396783261501081196599826266341140152256963549275349519097749654740353327701558562973080122379554714530376608233140670981351399836861532145649108894212034180170265280651530526080425716450102238891072336228765027601218283277517270648715076354420478472890806668812377431678626099352692018337969446693908498791246614389120423463734769391132981875908173331550220252201835959650850584247210755067211934043590236390815250181931743315629732132570595881106031200575672117200924081996746211581966014328553075431806999616726258267002418676276251356899023611451694005204006887665913109560037707832186770421660263856365267512578175228409197558284070558213330108028270937215888382025778735139136030003733704313949359058997119575299294691929406447948782372302075389297840279491152197830089229754628014748053750248961645018181827610533952518309085161189164138409422717143142847724277008083766681664395376086570201472055941646189208213383587347999418133887523807309572105819341002725509031021352927318258916554163548622100568562581690955265675586255103284366008628145390961463479430370795118621582297971297711878106393465648504393390891865682471758945272607298331854276547669273753139688888605654260832343791130969779999428414814284251020385912513536778362731667458944259650456395541532172065240578859508718102479188523804432134903487235107440227684553807960913166724680098376725324639488260018173426574854990448710925693208436030440685798910696367431347505081771234622744841372714871996746616024108604920896952027532694014303326442614470123676911886068804492722646793326475038363159259730552851383169776936634738106995408983495624646924276621021641006257245828445493092954000167255494109350610782191895793763515749993990544560709685616872471509120825849860369266313777917745441561865790750948787908465320298979386307247980414106143622987765144451639058292961527068333170871905298696047486451264827104386451649534991397794945637851104831013030788067894504653311328473878134738534030440862013780199608131234924422120713937786781639430324891930900858716463294876849240426445926683529463386874878550391950783639239831090219202089725218571037468343038608100070499332643089348405842977319761215499532450603210266775947957874032046928715178665420076469358425208751908095203705516311470701243538241284758988890798265212353999839294210332883797554620080283161053550458357476366445337960059586995445369604520492008098585335121867211659375552771626925973393163732305003436153036693966852407310437581830609441537120200392026174688827639143052421598297563305123770942988114452407923054200506411582952077527027086288736604476193822243913082726072782386827179850319803975600038405528532622299472179358118764284772943718982716768703976493667405527657560263387191509747899060034994332708535605951277279140366587175633707651385617167996220480886531871369654803294570295851676978994853930735573558998128087543702229717355945414746914962680271654930929777667082209018477473640253616879538036712708832329729149870124952530325753248218809049400919882961132272608872521278274758700624641265028339105168199113028629539613153486032463834251307354439383455806601515048380637212258866136976482592619711495150794444934129202909742749737937040795337911330987616253304791290655651444098473842484181047971882887469022633085208057617065463488679247022346195382979069818802412263938510395073662941921541586767721885765632399927413399974561595994237112046357966764526801163615814989074824397281112194772288541388777126910487156736925911426631220496194036596353162498994399163836292134151914202263951413350864426107820870634051874013925179839928238690601363540608226819572554316709026124334268344884670351981980177233100939634655520821478087397423788798508567356929553245197488776977436202905221978534760511257114107948881094531827639576903198457004327023333659407366108601484763690618371430550387844703965566575159789401604639452805583440108994128984284635450025728902851917674783956069854123696684480939293014773594969038736830057216489908598484678504806894042327365975120771231889225958001618826192376491597504887322459957308816943797163977174683698799894852374373686709089982682200445920529997050024067539840452352894395888024427111699742930943350212667124486569224300386616320517017781044947034535815896873486942267339812981031448533356417315667220953780878435191918130000639083800011441139204525380366931131554560055967018140131497416448472032613444325541665805825621317846167389421083250018103016595103550242147509940243779451060825755672565856248731176921431218249602946797804451502566920416122692745141356241966713585864846173015288785255661466051818276657348854278183943636595047913916087881491070790379588640232652035544866253342107202285074202872912622631025552802048355902798099431711215699400734203280967039604916409965423908117365081030709806619575966067932928706097086296738131342371496085348840367550918649614305528795647753435637832169198486163762097470353847365440976371038919512001548918126257094661005648041256290947498751444910669506268186297856904777665823901280091076006482685299426692595922588187954156486964275078931152044018997900082221154260727294393455740436268951125072222686614360465304762142117662613792234700720547480314447552032422153230138309248983731509348705923210180502582177889212670012061901904400225912334372228094956725155496358993282614417730929838692561919002650401183243185424211230294429779567065237710137082538802397286503660035902067157452032798814395819190448228116284335968632036542219167522900177456392499380849342031050930702901182700078507999237503206559976356637805242078617714888728394572580052580395513004251425774795825826224134351092261048267737805620163168099429668053462803523496163301768584949473468230462508270778360874065933420950096397143344660095256607972459590790001672809696329173997853631167396669452804995146006192479809558553528127494989667916715230861654140940140253791089789644501079805390499784784771134970253589279578728684522566726586785585879650156900728290531032020520370778603687751257548584424127656186974189609190542273424201627751908029577131766547839289114633388913041897968385999777838794147053784357032283692912339987846522943227038966768202338005896195541874054597766987105129984744306479826820325542338492888587340949488027188044221004466406800096155441401206469115755401635401425047991041590685634283004057291498897279580038060803357283573796475312170260373995417132602044486941461556975281190437780368629411553513540477279103389319697313452184284165725310695303525405752468211470369707909130666668966365742817495538269665634702423488468314688965474354946233536464905582041269215123121910875216045576611979326472055838967710189151751947844850888122230157027451015052419134321734931217604416774758727205535559148449847091744623214385936405366095590316524719286836691607391018491722202695060238881281085148327207722000112140728548582062753385634362993666202879943678626156956935646989425919854623100601779116952067692213095114209742644902593441981358732700928073887477530980218202300292267248103963710883329691267592970870445932437526796055795711739125386217215297217178529332625532732376906688950583448446305629265813067988180489569074259836135399919638358673313729897379607433379763106526901932952842497724268023817890476484160380936937782118192148412922980084771288177425427427771059147582139659329421746404671450718291242553414337595512023360203369640800493477845279480538057913669396008408421794046628456318734520487592173496972023767155931292738057310290100124795149518489672920711327124388511536766975570633779538392090291885105210871650188491941358976816977645998636457367679269538411471788337305712127427684906614926208394403262858720590833009899946846067382469942761701572110200739191062263700296986333561600061439208154155752785290024439711299142535717219279224356366760150866368657786581164234690651275662327753480818784230402799117248167120650084004534091565413801569150997428003926541629248310820283508828084890794811335544354893944838891437688788704732935167142681995304907916849107528507844387697406393928913266101655171992351591493177107495563907689578659949999106270001564477492558358655931616782724055685091962216591775591828713226710233790677189150458475783016273882514146805060058727763251193016074777625022299341497499452251392398316463714011079232688257071314738638776173363097792442205549115064587037290026632444613636998741430642787537079279609185024117485788119051826280946586052361965355620932019679813102189984211031375006622585261484377867400047506640824831193266842149804568993082808557645081878541500995786709155536253926221728078830734336214404828096150374040121444462106937846584712443583980514654530091265385741029484596362939463562248277117923680068063940986233067647462075359580870909159026254342366524957653980708555508455129969684880387989176527960872408322052332218094701149118797086678626434785650277404618690630894627876655066217473443807852262904343031921857767878346022171524422271441359490276621121498071235306044904908809476463845499450730139295178299583539815558987297799906744508282084341211766497402700902469987211904246285047417886994367573559843728952685475611809502730430433054376263777738744676723812215400114575261796466730155767647284932170125561675886954174402891848570241265953827504888783916982020365342574217520120336096729445008783584114664135543907106336246687029722200370865732078495585365891476643391421487556109059051791115649306025571464811212111429190577320658897595185334733345279727615900441133944693716815439147836077549994090403932172851723073138172942863279644884375959563386958497792982640159339627000188534349511852414852722617689246087883700771971570022707764373471013361234086093766625378906365743264979901950442724935948391314765268061824916992645741817544224002201635485792831649948781654101305659402636293302805342328247717170863754552202287082514846986302538725198796278357901126791201968896994131348345143118200800652312046563857292065357927496224233333531331975581015180539488112583125812507737744416924021642986086639494464148891052197845703273709542852603996364991124893712389492849177331841111457564359443323386233955104049681862412793146434784329892639097806472687901576935355949824793584057452180358175937136916394999674052319558181101132670768345176024670589432624435385507216193065803359499202951084896621281824113040654510647231696374976090005408441359809862642169279209500129887229693719541304621245433342797955180265559270531594059822034495999091646457505036548141232123938849141252386297038111454932773751892814570832598977053040801803148171925906520770075221232734575341500542773615208907375693398911769269730430735748135592584172178023563658826554375220476578888278352368582640715594859992285241156952484157290866224096076785750064637825769931519720646269540565584219884996344589293407922132740162740427119889146571083701827913362444163544776882279582941776452431153674470299951563419872416276076936084338138027944075349753115644086004377709283714227731508868007169888555339974912938265734558574199544349246175789170039267683003160163580771248429860787650355384632357284193797668914577979547974531609947473550190432813241039811082113524095091180564069433918533331962210942330868404660266070023225096473296478521765051106743596787122636901339325083762315939226271213333499971201799415263667795290854096861159887313571822573898010510295370317705719650779305285256007914809587297408144953223634800071694946950335101720410434487949223993135374130355442794941873704466165989439665412106225611996691031124681026072729651195285184688649689610189673934724519424578962166798114715020655880863908148881611662462628570644153227707110567372498727450012324484614416361346199590185239474846912321225768024293262032062931096084004807494598795100550366770009723247165127058915761065024951693669256582182361384566106082811861194333089778854001046031193736843697728948166188403930369329377136525015854008008818009993075503395651776257022412281401814264022815012027519815615851401612641842973769956303344397163541991564140592528412801662933814798634200463458392120648722166082986642702999086315921701304225789948991251725182389044720045979500833485467041026055998645286095695074576271876131390678552119452420011000195256837345516793002611968711338712292284359074219751216515353117823196625607444178225537659678953010925121951266251201323501683857788470493119783799255281307648035820527883397494474152614402471217111100594879019830418198541932805649680360580278343144157083831067171700722269011045131456384657873328766205623130631249383430795219953093214190153681491115023886709485408052562609140920918720971573285539306635016402941830996474813061654841233669359244155921070546870004786861279434915781991893731054447556260854362039253929595051017141272927880036062479671856870518941953058469250833060098796250312924035793807558112409341299783734490389273363820898100371719350931185025262487596385383541156462603750812359296025111165756440098423816182914767853164789900163884104218324610824314489735271383855920317890151558720773426721275681405124334159994343888884103410736179831510072785641052185972914604308200914366601153826556472969218918644563800414360170061349557379720615640935287973234766168520652236481222259296558303181778361230964668717697737174578779080990711736116153433167621889909306266239075231449030115567829097987911666230894764689499098903063756624993492698794178178944442571719417778350859356627359579767840592316860091712701197424957575534438631415346665039263464989921613427741545444101926841952259573930254460703234360641481691444583101641710406428978365279480756360370820055437474876373376045214628430554698662128772583077656316169143758494224669963161495972658115165658492099681868380878910289391918457416095513714127815774945411917315699003643050179507439262431047749427407653645579758647954126920032942159088515723475655264298949669807701600289188705590558050540287420651970310344645138798934149978564177666769260800987544671230627529476895260598248695534879319331797295023672577593065346645390207300795766595556850529591228688144702055685776574626729663044526216963996001389436668629050683691894320057398992916104319180082040627058862113881278858026270883319691885244655990771848398882039608377199348232238806739299404266869881789536387904693640766096168102901799652868816392687459396777924403932964363266117730029186290447002218143140848443989832082077533215949483457256995774214124261673828703141562145863015774461207459556886198011435826228544735616713510683807211258232913382966149796647032965810686521435495589858216373342583677134459966871104254067842896203622719777219738971252147011463881618270610030730640179817779409378723190931808664390855576428218778542262186638230998249633873797895019618376445310259897071365771911148950294767973593094680337703816711807755002678004730518984526917742134756006800994110340893479350291539695992037414526702089957317581599115324681868194302556609976021347227849192362583912246190520710409235629117244559892229034386432781603853125362257799551303318568449743112195295577155676491673072006093067707935686698930532876025721766664460774531452151332193220599870104053030876383563781862173561175373266139066738162096916174543534481773036080449676270972746753631324091814715878286406399207974513123650009028000743386666375720813707681090310406620209001973110254313830845358186731606329134375927443405104591331904225554480994074305849432892401048505242294244648681460787772642610734588167808276046811282838797262067370596840973107884528166154568698400754678576375022397053990106353119671619893091231879841864064284374498137018092776145469753109254697262272588041988089818268410445606878221160976566477807239940529123529686374310078464028208433379392075160630537224081320770103342906716421536735584938471228286393052704108139238867276475417377702647551508843063648603201471238466223868585549341732418391856019144265125586195654897118543991760150760150960661491892984213338047723089879874169265374784518023135230208490917861431754797417033500183871769253677018827030218468957525089498405417705697506773932895700400300403570132787156770645106652499490979385062341592056754882780270744032497915215546153572930519000595201114401127783151463677173709112309564584516555287530577483316545148573904274359706511420221175190531310632348947624000770138515141913973835298380558695918874725310594625100456088108220244243864117873815813581932989951283297398069985053894380548582865518762550508634773451510765325730137931827570230236120607813948159354601328386951774909596447877011676107487756880376806749036434173835100629361677938511768053393208045573324113010676986316391910947383695400619679348918058552772053095012676040875708846592401233583428553553179518850286135961663116442728957012806685119850321430396528025496973314597499959559204242441063977274406884077418418070108570766930566735222759843685163104829554593898982598948171559998940874409739260918802075426909815467787118775079638000904819294643757419066148119022242114361922226276175462547597135280552740377599971616357862755881766570946900282897573305703161462130370473178066128113071999547320852909678111631828601621705288247834554405376434158587349101797595471870332624607759477402201278454094208139936060447998866458946315399055933812540707383519032951828386180749687489322057215301148521208142993216874654702743978377753370502233694752981408952072577047316790530339372450269724254453849362365930946590778557978817061444169158670978917150907079579980574568625601626043230727822227845498879736600813055984146449291083288140135806704924011637999561232803467940436915529845226850510450925293054390100390427669600412085710232501589696817216215291765766817235348539993033991031251669362139820319600790643538966893133236156981455526685438493470500237264376142368926177346768192387365079356666065372314147248547530017178935541482412115798945625961238165162111516100059896074677279100309819906038211789315758932113344279665612976635268790884544137451791402535551339182128677836790796595202049470310729877513875221533066206707785046590692259967063782184504432625427767920005875173604910534676014988238581541734404825780726920861755030565750382666350515426620679496578540351664806537071964581605238580928133437922044725019954163461872773733260614518005379412251108832524030112697786839918356780934696637372858291864993652073535873393728585897505952269175979322278961949603476175950655983490931049952574084371729430080746333654069246917241374603109657773723556634395112210697859859421119307747757849572618970413834690260356917448464861795464579000163863882741718536556697446003900907503679894853949733824399367051405920356583886536068954051022453296433379160048051192593634120120610376134203545609885687658157035996129078555154105850022112400795169525541034428726354080856486926376427612638770264053186440453841950997818249337767831730587567180677912970805967869923177892089092521257344684806104771720246483253835934451314054099628643177158011156505922603812060989109419601977733850752666051198010756284178084871539670127831520555349639690464211535921498990321204880039561025723358521515031320579957470504649930331994549537824560120802155447098233819664653284738269310514779561752645362336327642740452559807197608407034053646454734778816466589672195703702140354372593999307985008807725040815713304840394162726961786921522673159474371975266071652195914387606020066414474851875710867916162983982733968728545699300612360147595919028174557909842877356249789649555208435011593774667813672162815072855218957399192431365833686521098415324099695963967826379927491136433143764234482412206185177466181362065257006538819343728231199821538181334483234193879408323399741682214830680124423176634574199575516800446745214711768422656330807180479967620135107126435002874813885988460879735687205395682924449740566719003028268875374735005122249022564874668059715015855678572755028247581435556823041991813130341740415595336894067911914168399251768612402335755559454023680956155689858649394978621742198574165458692369150158699093790699302044157536210886900732568843306721347233095322738530969753029357490049473882844456811183756789994224268389430147681753921054252290638080671198921743997513905514365397446848537335392850151384974677487634121057047142105107451578133731057835497784825629564259446723408328205482291131458996953306689010400976058669012510976912879390768144939765097578004387041744226554989483852454554494239915609504008696547183042072055272505402245571664273274042035730766162138966141196603480725250159098414504279346505449130548841611926883176346715119465371109458677876939106294567240160959732460808407171945772046735699173620866689898325240715736698684794725463261500795361673137375695703290367996105236231612134149678729362760913957092596287019641157148256837182989271658094650675568488675808664726357995454899957862730990002712820236431489061219842294106347105835079214567105869245119438330930417098073431783470372158857820639908152103109684257234380829837960160689229180954296376428849590498030228623037960836684927193742404177064487436510573969924511595845875519140369790622899447406637173876506989960505741590620541770861891532678248415496764379805906274033832576987103086124376581020008181465387267110084459443515813039496815921494367601921693038637083094889516216035446917840623339095073370048929517622773073281616254634656294764124863004262392132209120459424251755852644060638608333811009275211453586100823049509914303776563939949596942958476097673182929176902321551395956730694589111259063157997452231238033424218657179836730234501450248928477224858547245310679491271673279825514752635250047300483387949945272068060502958628500575639285981492828272758208443287200908387278297218040939896779044465973860000191201182982348123520885026214977592454775376778655464905437657487854450693941377223092244820169594540517530886327957295379368256781980822043694812514796275487194774892803128588748379331838890929208047084122401112775415594433863347939492523334447882579491014268032571369823313798814444515188880419329455987727798502803602551428968490059802431998759658693842334990490394166903873818920367048147880838283132217515448306175334440814658038968281634905836509716851145120282546533114179388036494670504236806683542783261847345679428026697257559270065977364515461791648882928613971384844591829648328082618029173520865299359586704795459652631197947903341902732415940871919844726691853717207969982580607321832573515506059786751628478839968690746240519492693884839646706560186897070530473177116148754514298985349708388458669836474894843609828742380726478481903303404682952663265661277030213344416397940808675929274183390580608485932491092602422344030955809683072171115611667314129298987654845323532159855124268847283599592621127751138449159275024156231922898355752484902982089878792952013780688278389224676881439151345282014477597528892271901004507870884790633379084761158495185297102893303448809331776481703855675213872168984257121699285880950694252435147891918712805381156701918609266367254078953861026219044679129907946483442971109373742050985335813407660877891666501664613532503758638954895737116428658932345719943954353996394029457990263740039072101007154344161844214699205737315655579388272796979044771883897866079189148827505295333612356281070370583155612523115290320166588624615034319378170991988145950341320826641707683149174103216237382076311106291386838260340005923805612876627305509147483433218509153546478694142150652842569364713167522571825681875730759022126165003112839191722477098727124796809398434423561093012895315641114715327589687509523541887714043222769452121032650649920934498939937391121570751227392187194274201893592753411002515743357153103618139059137946321182073476129116210062855546095917148662205383460590347140677222464384156755660807663392227485093869328335402241456042365916075799125539781692300917330988201138811661516724186903484540491860008473548761452161507559605927840363190214977014001910448729648795668061693142200742589542430722051046551172306098879858804067839379651110464222391355052790269843668604204148386706609037127114943007979073102682660221822433889313393907537581451215145545421344622787752789362167655556654364325687093256268099447933117129832079216116688239008421837661939128937768098911888426513900700206203445142809305179104139838060530919047106052593450198623911391140885788194781044732740427440233516887266648740872630718181572736786134714576312517928063564175804706190779510953791889651021719920925200735538050452313419404988635621104392254804958981340313051586922228311024047219712639951058263992084777316244286130518518325146454216998179260836629329635580048926368220518002426333184774907472681732346475732553251157918167472987293984154950889687916345853404270639097491619730408839273649639258101187405794401047092553994752197626517559191497560466637368280415513253885475014485965410692675767567162227062649255876544188151926049235538356777839943331476464233477089324722256072474172196347001594011983313688207946205930238585430273485099594059734120901799365068614915074907936984673824356284711565286292330662120121752897463082676666949304497914262895926401984759455256713716661347684887271188003884079013212324599615205405153705526151175086160292942141405127144894677535150828328483053733255904910688528334694010044888009042636650669115011456831350822533155593730138874575236464535767963192919431499943593355799679370812418196760545192410414334383576015966124876195825276715071715889423658637786688100280291632592668890676658591649177605704320064280414431566839305721201142386155287666616457433113199200654419040133553194013335694398265625948988541761490827853253524321823377867016411648983117839459260394944706204556076417408583467293417429208895981477316162335739170443933171723337441190671177294504002328834671637500186548934617601403764546117476506499151161186817193184931905372367837222320453386589371931207188653685062937793794170409245523651051701608857157163075485026809996522592084856113902837566981580693859943143668532189866355106299610398704069400310159423149344289037620022844062585301653146001762054135941832111617061601290669836217676748193009687330349605791271814460400367238749310732881329101720752411544022951347837270538783003890768234339956609545771726766057786963822642835572222412977653806245004023738032712107193152796570322281412966578589280502997739737252605953034410840343641566432046314682140862411616658287305680344188381281642593525865117305453141583156204620568129200688508018435397400564036686619013284253489869412636966463451768926633798781923334496576744742547930688104009045386853939135653600454757482852960766351709937326650701740537905124814507238622458489768647788624835911745138029330262996353865993133549340014843268295650476387771426334540915787298057911824227196768252487704137871931651664345573675640766605364358384592192409308358661165380123403461135974981798436797468716053916761955079582763551011307161357282339826153058624985493128383993874936858321211670888297086048790875009973781826297170996092454949806535880886922161862126112899790249681269900419471664181591508076621548148220398184430723847587768792109680901112901479944043810159117521811749015459289140510098771276482108891535518462144365372427547222207870336076067858855612975173527371377112531654831618530663914486829732458452697308067515870421057452432955284557907179931108046978650977049826541666109857289922794672968866163674503550241472426346034926382071238337604926331018499649025513183067952239514956407552916250204625427988463348370399702620825310657951049679932075497329487070901948072609385380914502538447221003882076226162125446171909414476329497972880304078174036816956475686294224035423917282160494660766010369324317241081010624486211595244988346106304136545987499904479145008862025871179812289880689671319066540817608079912683189332100424530858410261878163734961525443589608581590953850664082041100818925802978290087893178990785505329179414768777272972538831083066613360304017476339722804162315419840101846862905031837506980221254148880709661277868917708076077553271457436776895551583377119297913554767712513176091158501244515833955701675111744302604671229654092435098436362384501068164607187436076780940788447165373432924202209626642599538166126188439877117191951937812424631810888185996815544556146446738417807754473211897182813003816553648846925891359619721038956549982182994228929085282060574081368906106661900403455334461781209819868870104202623717821592463328215324353426223530268677301489583108812988258511744359716363054283572301333646080900023978548867627483209870586084350722119665257146474269446263200367657047916467755731000477729918273336456894106883543310413595065127536131631162568389062310694126966118797666687418387729178871541197706833397296130301412384748434711217580015583889706245276387801550020522909636396847310462117098888357384902932586801909380009271449186359574385582657070586143776714221964290703417655262057039838584450480689005456488973002605931972970266948289257756910610873487478290341579661926283012434654629634213540311916796952866180720809655967524373491237471233639026011824403245063655734440306480567588317736753704258429030330789354327656964234147657826039376905744431061503898658624786010301794123201336206769401216556772450138129124383250239091470036651168320073524754956973727950380189825148583861744937152564422263129534165579101677215761292345949620554474098178263143737197342187492136148946831016528736169226970994855301097418303649849781809060873231752694104232364601118847927864301547728751283592793254896955573017625895061391565995504682810181844916574256548679497957190265715736142840232783369419549837221183884455720143863583350599793507358541635104231874467196369284382500216226361141408949889186470195432893002359000736506782844604584316820792114046204337097254922399134877533041432885513039806260466151282945664246023477284550179103997534123641502827508064323266230962341608626988074763728448887829997611580544736212060995062342058524793182273924513706970277626938033507597923641241190650633605560038803803827809367323320086539905140678498451745607974887884514862886833579963718270555844715120440669501712369231604625497387966824768484966192354336757019299662873015615585845657753035905199526953466450765948184469891851714800433738567192094774024680009379857774664005716834536711762498816101145115672691502857877436911630459844398578122940821208299406734243581552185312780844690793079126760568944939263406119044543476339581779856712740339901981657950737686495921886613336250235470642093147683339192586658776030158461504721547492936081882096703585737108444812335376091345014127024333161228187398512672847649750856448799165693686744485415117742747175760737117750138152811594370554084413460640750143781647004334325171417687289066227636821646281549925812384852565102715386540377898976579290641366139202067503945224234734702275031774084775686253604117085822280131303108821611291411070422471776196434055089804803618397480187225082750103712484291768161057630799519291565335659439889817224847017032234834653530828593692011638620828934966300884912157421998921122617113780885971032315992743504583845753953201265506099859062773156866380946548924765170992459977256046247921605789493390576892076286853113884961490932391240343911279704716715326551778163962128352136512927009982944861895737588886630565042652145728623463650136818536319614786469277011168354161912854149754956530266746100241494733555048168480517566016781603616730794547497978658262075936522605999962912490872459645735138336128743821902150186486426495909763445285785894262514437070439217221671412690697076465763684358939110189373353802386170807604334007883648126912560887543228197345450943658506690197246456823830137597515761742745380664385495745489933796569486701753611107381373077615033517270612229431612808674672113977271971953093915940030505221645736838132904759423201397022797945531603868587322202440096908292840014951065292831582006128255382068934507471301821179001848469888403141624555071503166053015087679458395777378500612917985753648888355645181974839925678791757871619931057944382753452926848443892125211020996760144498129744386465904608274284007929460915379497718156727630035296768127862273595800853729544452816698478359300647113147844935997775944568199831064701795597855189851824398720920741287999625493725631166501886803805219561843528164919092374844625723239225701893336381297517140992098931672655637941919908288774796501268564834747000754552262347962772179542446994501769660426998051389322605269755918899338185689776974552720681662232526826584378267467742324312659541044173803638734379464778930912469965235411513476690884773758844976892477294685634297032221012785425067738643749005141732429746786591629861161479641360526086775917656522861778183926664541233177726173866869410672757409946981541325012477244942352979873384779265454062421719675731933276157475116641398959772058899480584691538429480097302207841146319761757107753422941002842940136967325611849399955253258107890776776809372138861077674936049498567791457582473574594371876596394539488248890391000314667168829225487387132222566044097623121170726750896000753276402108464464526371364018076311717461786456805488024287115058755670651942054575084180781231584333613730059427762040925530315409585766339064215887679616843820713509377082665214905187220989102904940646425318603854008133629897402923145310836108103996383148349645772317363756793614121514922342142475972648649085776324472337625037457987602296672126622590079736940371548862203643447778004861080023733498827562006204022932555100203587332442399835533878993927254186174903256822062074313095287921098051494373495088752986570576495440367188366848094545330270062305167972899686667395539937240923744128644877274868373873872553184940504614949331104919458952544818238730717798988710891262514775335270501816200314109403711064538154525538658950983210495289839423042735902139576948108333744495656174759847738151197676701617567546424598425511818613000610898471371155859777963873575032497000971441177666249246699892571131158643683463655534677610305672965267509828024454224148255276039680464100014153695775148083500228177722496932305407200898633221382675975869667650222856841187217370372876529677540640475553083466515844723603106010366054270328943314794628978408853276224697243607383544315989262263682041834330653509711920715281683039488716448044299292270729783694306190300297334511181840508373765902626806549115392195026115335477449522906074911418339162748069968877173142126283872575777268498801769939665340797321171011691658010441876858261165512284466525803634870077206215324689773730198587884771700928106979238532358226319114903084134488753201091340441355469060933292859712391032432086559492360046527744875496917340169555832151139641775015750454077201743068738141144986187010294136830341747391675250542566955185750253007010769268289335549782511901838768831004447376214964595318976764516023495951276692822174631776644078680378309013351283406504666229263274097829049370700619057485486233430009818991645598214919819661128250575398117930658280180224591190162272598831675548829158624682153618103611887565608330926135834050499762970791788438460669538659640474325559189866430265267284439231704299407390467945093366032922954486299037152357242413118400694720899648242628752633008400766746296454016439211915415747212197272847152121068772239242321924502401665180956279463524188247956478043394343635205068273366230815484192669859172955479571772830382430161221067388667888365346235465587777733469184205521612307932160252509788701018652961734932695149221258225181377506084941637239369558225675941831910438177195972886023578195352270454828179643299990685101228697923549263923943357281824566947383098014944455628860098474790914797159638647562172967810945576055994733796340362937611914757449770636453008350990475979193484974094576151590452934768334377085834746712126646796088968090199192328669523621285180308334153383507030915030806866410961244815582981645954862722596573619001023197592297033153761109491455404842556449636993875366092697361469335337874680868823395241605138787476937011731326470244419744251392826278956599194672920285606755473719234919797626582375648324049518214880167887108559172680367800693395507107627160544723803761343903811105026294387382322757572531741316135635862254135240057098293275442869005962650942089890470187753364897633613231130380092317033862819362460126095525513518082922588377697523769431517272698461284436626213701107110197141381037413733108722141899894064825443322949225931114693632559355176456074965361203491129646017550061486693928450009578908909160257229494120634893038238055234270401016555127595233477681654113745541161705905818928658409631345097594045606280681898894808777797871475408714580023754117731793682047632250579062610919413266600620758952002270674682502846375208926791310344840123051734246332340778696055745866820528054512399925618853037721852793388338053641330704581076294306489092568760740718692519194757113599998933988266298760152229147639813090271966665702783859109916594832328924469197143949701449375412291668252538240335650008511638921145955986028801123577423261282114739670238781656195124573757337872510715778206395446421656127216227431742459318888978022171907063789317632292104805412214471176013527538618653129987554609201018247956472606731454987726002012523945226695865344990154408624430404057684228544341934678140562034735228033895318658057804573023778071515849253524864935450379350122534349520274987829094259787699090874076176351895763253553432389795958504385767498806949921212270606643285818162360633527853745544632727529514111830385536681279034334177629729624008151095491733966598853287085949021865450410118341166667318121416979591845534968494034296733546618973533849703462967762348890302050827796553679480617775778867470407095667764205006831388304141780456458463244356453961128443078434912700180324051086393026118632121462077986525521762231703997363030284986137732784428137562758388053444741344716946376800954792747500980115488627959390706847596935911468383485213866597688102864127404545413136246649309717205345613499529670593236994507825441319735917602678110963877122227578205262843010519936671963687660777700659571366459553929795728090165454571607571273832295885930640606388279002356669367868663681659510786585623827850370903004242389582553468847392055686034540455030320777895867158762752659169908982363557406707166834638742973726180156621131030329185308110177746801124905586012143153851215184469066862964770554778722329911593114932871264651070411511422772525243969806832288258527861572350010438934151293706670327815012083300838388098186435244824194462882791059391400905144456844618507613873183347764635748755247799239046862989372409263933490666651252658886864039332505267998456207470570901094072549761395343161151059135886268249370830341021778080761712427499968248342149815495052281509722399974304628743570728319407298066617832181100925835636744987218193070222449802793868802029865946794520138010976123839786759076390576569791735919651901424659824202764187745410283250975299833610116577082338592373475572711231684142675445360011375074962837013881436056521764234561989321386581652703508941827237138402247767710220349000833011453255985784646151259099675989105562657365826016782849795652907664596450492324008046005533842291632795246937363223977758351824921435097758322119135921807226397401893502373798342030781546115184962374675734335506534733368456204169335552404230073631072539807139504621595233382161405610271412660873893760464287980082898559424999820533850680975015124886870568972808281427546165009971827585532726501723143202300004815169287331365198103069065237119597291185619432743269185458805498540865761370954793161335967445175441849699879719989339264052068380467542451533689371729007996754156174728704425822964935575111541929184268192292181326097097108778741893056623769875139684821493478706907544136571313989657393000252469978129591765941538295974482134663511101670332959713775631823258046043910507079079473901515670487486914079664780264843824181053210343531820663187051519904318577548872875109049588575036644326163745806630310334179638041658857275295204336443663966767786841208546701401484245883227079825486290573194657645490183280590620812728473944892722006440068292557871017091968045242854475433923215549626033073594996669987845893550504908143323252962089617549467935128086753287710689752581375713441405516012104526214612893812102518751216371006419584783660850311581030760206252524932829893900441434965584575180240900164784224384667537524043156030695959318253363521049734446629128318020687854113971626551145397366693528454621057769052018674747769789735783208918572528819980132692482766230056040627755830202184252527303519789806799354341319856021531609411955027650832102086891526828475587761117991713267797986803175300685166588061221183234245663895769638373844711271589993573425464372364693985339086888111999412836426572348705579115094683020799317723630790407785562895399791407925097862794848378213489870056808708182978423959500829549711442226677051499175704943728536803494352660732913291682862688991782189610168416210856395500372931058203998628858420714611143534503104561912648539093406545278217701951716564197452962389024202500947227968430631595096827064385493481364754546107329395590002016301255583077040783197030086388898364991254016347070939477733660554062847073137321754091758436857653953588575060433065484738132439804925408504348030526835064641836645848214683003833768269509892908866065660012279889788698626798149871364130340404227044141997650774179845680292699893705718897532851892217022666467693678969090588645986544818757562517829906039795429730287352772671170161619178958946788934814274650629698142424123598250413102470200704919006110634992672946917445324646046061526497479340807108645259324317110830431790513521210901207861398921201419020382585629099812002615650522879351225531929090523377246445537342032936288835529735833611276406604381258931186857965598045866773198943876988795669577118507414202500932863689534798595971429670272716940188779194900823859200859954647584522265813754753785143685942096347925503864405992355952225686883677730005649783733994656757581840156175933642271055505826786503922111867666599960850214359418028335542155878357610835190968616888425264996110315719668865689717562524574773383427403011392376987563694724472497939143944057025908726935143255352876750583947306845747098182386521502266203999039265181960091873022316107175359967073679585551780793844927703592446251136699897021035525156457738510632323860637679876754975878745509848316045303342209782564462890404144873578555376337863172775919010598696899857601491230279766321719347833448402121054625417248792205594785802731241624799561000706358688384421496030446628659863206250284948712058989054961584387307774324054761647145902170346848156929078926726102561739484619145503372249346386490992869025040632386627587727859813777560622022741118014486981365312433650070827991654033362277542138467580005547893895883892510971710364156209002227104064819523001036288646367165486105476845502483431330878119114521187362568199143308201799121673280349216396473037514814718520963284515916652405321022961899333268285438893316432951971191660050444339571253596502447861691079104474706024819527832172988515423474636631801776756344356634318858739824204558469691562673598041908831976937175361297010276524076653381525403871217043029683338089929131487089018462436269795397161773983494484439369741474002882133110517727092392315271264351962238174682161032063025979129036668807353967556244178808308710270330024230897708023875281208097759199660565122128024856082191353399756444237030938762308129927035403827300649373090495683507782638830611172671499173437422069192732495104635508377448897989107038462335355067452751899359334233198096891502490324061626945850123119087996837639745756464083533616192327203690538670915717337139097965098874106272664288768961999892111022019137061883950187470165049207781688500107819811371850549815941510683116979093637244653029230813310541757076843399019594672269594518264537844876274118010550113365919585783753413108939952955877366473733239930293776949028263237129409816751809455919787922380033666218681470326546207611696979900971538566314690231503504557955222469899065301627274897612714917588678323060743357992530108928528889236492573854434336036261642028038621824475560787631106365852727067256315672465682126104131802149296950843830398283614505937911950161804542117941407044133232054722684773135652110600406269487595827276760448420361675312063576394559620098468664474143758217500286266473351151308782070639366042773030497022536885183463897310790866306011345994590287467093974814010192555112262073460902364312006495399159232380824312464278867622435846547071932665035567297831096278992522992282504629152737550054307497171980244882696587367892292628725341418091294329765341814382534274803447014955285871806129002499500780260169978455855939702539432032889802715540148720895477055968793098990191735802220742933459862156729104202734124942562938766129738108587592312446214263138957692964654793185280326303407234554234314483136579438451846882289550994453354675168020810658666989175026380602574058456861683075887435647920627011723311085203143484536789679705684637863404412271702481289969450966024994547531662895017447286544949812137682862903540092599019957953617906848064574060479601708016256428299997085113808716904734224929903087214995300640538042631119724725926040174153471641350620648783921502443702230500334704554357552978389679236339229048193478898816515714395472759483413880529288205973473733008738815536817935508176165155596463139217674829880955178425814029105241680359509418381092267629565103131242081576433317559770296573305268921835651546757896136828533897022508847389524692583098094315351794674898657128762928121315499972980225785184802761718735861992920258014536815275789303072242758040098922502682285513738488699299221878048556534301382839821945303303667204038091962488912191459979874467789033168295950231915751652286534470824385689600916453701703817918212704594353241575073445332149039493803390778916030564644234440093260070091379641822317560527873223470682265037516155270352616709705508142409513262381835600793049151727191052516769159813863251380999964531968269593045030928400424476133235592527184119258217433029786680711382442451161112751700669544444176132844490058349756160967701615024550682576393090801817630296347760089464469521364906864692231823914203496691504808685088974897027841425515753617059488850283457796653275621699484789514849787697085881520932196579599953323450101783105332217827921634672116850076103443030040588458130389779379519745962758040334290572739128717016445476201621277287535726076882732453380146114920620423888237109920277497692250912536051216296213350364452458095936731038973543349009013286231864786924162997828156934414309810350133711779078038318729894269770687404107058794246543470682471327029665536118965834789803121959815548591243169875656197982630543275839382612199855778601006559086981400006605628796085096913032639412400834889392866718101980612078006372051124326520193323590308049557769850901317706528990350064245810252136288390314058500079813819616419300450028781433541263552508832292786757250601218201807571419813578081285370530960752898320383363019794110395225047178301986266595289942404203558598014821617032492975851888162025796885198311912442488283513371998456933336835503775336774686265625705906805449077941600793770543711274970840917027913452955710852075544481959477453739220779499656332530868397328445362764517994494104785084325699631039675021597256507513415415029348615291962170079923722243436219294439818845290675423667154826808224786229434941706086945418040168017833239107474912176092105147307689933739386245457301912271931016721805858634806298248283355682107273968464239279303013612637406820695244743559402577843672129921487540770935559613936058543384743063048541210853941643780092056097567867040121582686566678718427862408084508684772064456533626526538368007613397100718170109274000905270859300591292860741024144301485780473016047468024178249614610256549123285839082321517868150226883451955460167447662318367362872432196340494984183106076139458523502863426253432056157733055921173831096600644965337741676117839097089797574288853271140839435273437342298263622841491974853141962260065199920269828802300589332933853181094145966698794883866214722119199266259231255792026947301051975321608659941523958154298790482977495247379721607013500468248773466500997083076995316613156834249605126368312036193203458626314647978856443738393798226082760946146990988099349926587156827982296821020518428422695674497002167153054657086434387564587316533271485904167701536709850131953285000373354852360592498297641219739585837717296806212440363322846537318472179239626530892351112636475712827226573986503925561368574383943891457562509361378099239945995420451499133985485741723914615927549213878828302037585131494331292055781155539442019953254654096982487072182182591771198685222271820452337098321513538278002722323155655689594534485498557713977923957312176666143693022780981585478942998552247359772680225872923220422985352495096117093934150523172357533098447659401751955990161148591992806618093969907391092267536574204020363543807796990945947160891236097421188221684632531799052962298766629583358059718372533156331879714054742463088514940249682089249032954120365032363090093927321691032025835502945113624735773928467238314310568355055970747288702699017169745576048225325139197809247786700788974779751754452192912247279967290210411777271689846276281865718544759169558228489538206574839402982344792420604166621979487169380566472387347366074770395625980582245929163815754068382065367813085687010880140746061872887543302605928322343870255358386081769587241560309862673539701029609515422458724085234573944086608129603344540973629273132716916231296191003721095079840989554909459899756899523241298176577270253848615779489334134548109195281833013968953222182969752002430541356975649128567243203573564887523436843042833476517142564594814944134902209701114232079645491234829488295674757229531409421082348705218944247402812161667440320978083453239320525224742613205066494827336240989142737914237392935389326584456881225455625844855422130315920182528922616753176982411694073630108564432929928231910407242060624954803301180794486663785358187930331793676233981463683048299096153399993767434764500336825604802693892275910880238533552536819607097737970389357389380997463805243256337754374266912135247777282278993644540507288428997876490414832483667887303984172184287301494374986071699232068707672326968221137322048360612081427952985311874889816299865033512231655788446783712285356643301281599958062667297250048201109867375842759288892381438448705360942952729257406514921473988145795888431923980922556209709989569399596881925129370435965650405081457786935625913884632713512117221928928177521429720688388727834311728335512852193909085903438713354252378514040821696083354871977282183192885179930885394086808566587873119639041564801268839422948977279304898771131618368235124148080116078602150149825590358902808903184668734697926532078944690039200615788840777991489260164359390367396997615498894002602297259306961675812335181600687000442605279687976909001844353299831547596471618182001069193919580142673220442253627989745885414511653435559920582686492914798387566523221572903725321142279489504038014433306377807903190886092372955611799810133044121108640045405187583576676252120310924735127770704887718790205509936555589293118684674028545989738320747975399046363120779148454145444224042052356230669505832756664038055493133650471012718037036267961263221104177273611291379527053999141802959742955659001856282046640555269567998759046120189277238235881134965630733024742154696542891318495602734395390065928004709309683263956742395689199817197746676093558688626468006945338506389853138644252404467711653844624090639639954038312493710795675059675407159449358907335314947106421975307716834252566693893737583123586538762182239878192742824398274456273083211806803523145968623978443811995419300688276032062157641921629513709767486093181751010277842643922235918835407845296145885826176480393088763993848094228095661314156881613623897666847820101164432610430957445430150597947754131977081729275150362414823452152227777439676145247313236184759453050151310941170987828559749765885336385406594740444663347391204658866888025584209140975935851464486510721667515281803737624798361166672599762496132469955623493473075256502445224050205333885438356605534677900153519647842831736247890671529025559673414633194639612989069501550416771924383375615002067246605823804569324687865843051911528953898320619052143379118299344097957157202172303274805892817790351068086697838496394040359622485120118763944973513410724676199362998148419329008463300594684987379641571614582596171360027995673926273720853956441714456132564908417787930483796305568874242061851023275884776513678140094778204894934670724174549343296463032678356349941541400055122957425012029404958778612109768160404815162280484488442818718783854683616643231739564446083241672212747648344874136878641937623630850298772447507670256898536417442457713137395247335878304517263575731475209524201351683831309897353375329829386199161028983962875714675648448254046681383005648953810073875905875589194117965269068157906618663692631428867677346268959956145397028005222354511509692433182517508232798989323370699912132205812915466135383917184072373112232487741132876137039319303218490040197014471161704634969423496261821896630197079779479429370455568138200523554940031249760927780778328249003466648581778391883599414888392208577389795665608695655482565898974163577451815760424797756015751914470783389684659436770846562206178191378108766244667553304891057545558291593221809405584974059545131422978346523527634531472944316077168433545792637472002942885755921783615125525452515467312877277745779313744497998738617472303519935807719696179896046909412174135108848194715515923944886051565427781972666488447334233613218499513921118086331570926740093510924484635366725587578281632251338827550978616592486649096931429977147362712847317792760879083744566235334406008643602916736810461282033240121490087165590010805183844241575245602195538590074251343205310778707113521730679399643143601126130171493320714234596097952362472624345368877141808502124818299617105600087462462732402565554125876635208762886222677948362736756745426692065144321947006946504806055627354922767466887932168105086258689541178350418189934090909241351701288335966420007154575852566025433362385361398483477134231621456862656521724910843592358617860284622060780661060416864596605547033613413410640666520138278056600279600941221630417142115254757711762944005606508375292174554601819016629649686709859982209356489249546023873397539095125828312524278145409798966489437861199408869090328516086509624924446779739398833261570999317899682935239349380145008876570984852750692427838214220918485519440034535543972748889390226943034507873444785289708885800466977376675565484538188684585069283695764799111501190137925847813260596662692131850246418290449250147747255879255452404983398361365785234329927013138887263643127649996926002449804897349425700029617369200673402788579126962980566521049547058941822694606837470632352134506086396894147614819862128682311724409038817442555465110394459407846821855516198380266966146545177761290733813342453539090266217707506391121764386774924193071767822764811328337645517844411288136407166541184188233562396169738057481620155844503949707781701900146219431941095782553657142946593887717288397603713700695957878813411153760984149231885830751849668842904081937706706888447145852502520872106943196530662948316388489246040399096314910283362137625362724655435526336911154842916794447109564459202418830945229747891167015448924357387580021484880836329218262661062816945312164300986071100164389822010365331793938440865010343662519797623325967945806156706951558676909471274977277378970081411961723194211549286991245501642787534443902576480185392719123149198618841292210353123147032052606894114559937330219659257139236975962836590160287337087781257404151199710315289937115750374911558481495060513133554318761038534120277798558727503349431906868210848856348491397760071476170286284692786950505860233446675593859288130373753002133256165193429397171667738238230941399967879352270920642646800245044946041980944425782252834776589927370278222051794111629413987021038367460203055846049639333619642188199435037730326313984912504286734290518694730727376247935131825007574653812218906937828350465276303968935113810508531136304351654907085873524670601848512838296329199885183796309009395666385967225573695681078302148603331739929068724974399729132660741930411811435198095189960310390792768642254550713373858769817520312329521169553433538525925975207214298426595769780120471111759484737225686277483278163648274026137472794812139608605341051560799230287127064707369875243091615451046492340574190830800048638622732340888678071645165963065302717178019228442986818956229102505335882520348378166325390220422998147819754206338531202578943721322745079704072591721633081613654845584235478460421421349539213666702577950152769858169444022289453514622602550313911839667009921173513785776123829245088499029181908370456522011989150893698320836868968981238123375138974166337696690788693815022394975914984871992187354457379747529457626520075632692123630646472739070198706997869204129645407652522274437415573166135940020918472678622322069965802515232038926339715517707980718556396367226174857332901527363704828503412756889510367664568872650655764412401692105446879033618476070161031740821187040172483149648588178154063232343486499333546197247368825094359113896051450981697091728811499881365327957856423983837899784135195640311455970236686324016957462709669711026615183330207666106837074800093222247623633690825699958774519023036680474080393290780734254838230076387672648051034787979663765723078070957563499897710871118511103368276834940257646243325380551927066967979443666440063684244496866347001999138276389992833652232215858686451224962143993383348339506446185015489719301401861700069572636634824884024897957277871953034130673169121553839219921721465992021421209240960775440201276743193764196651314347325467869855552886013973295015632065800732241812843382108163381308239864543557670951433491543855739793489189401083430163117102636196724270860523977685102715997162521953101646231877250139935200525538992717267980535765076710167621820661705921671447817263323105622456905704753317696081102116096080730800594378516532379198867751815711782320330653328995202752091406588923710215428572419667738421699417733681214486067871216968628237881643238120354605549820700464596500447035994573976570502212527316571247821502379241563888178799706908270233979738227943535511249378374764945447681208206062661325837169968873814885001725060587944185248693183583781633121486878181106095619933989483361064031115590387088819455624976958145711322641090294563706983724536651097306354407316314384742907033725002853386095710422899495970794204005690386784987428268366669210035599394190635503644668624329999644625298706914935835748252084709875426012407819865506597832697254886827041480666384130204072785072462182425530602951337991568996417115695234984868182891919199430149357304080599289421537137524546983467665683411804574070981645892821700604906262364775408747167310829246611204933326072374399230238731851571426691891605806191189252074188590189434791148728981770158456528815478569888205534500410897922154853986378774145148505139959391642606406303515706888152678658957574191373124786768642020962086636953635851949177976503330405356964183954860207552156659365605670250630844510283091705698076916127477215060492635909736094821135623921890612290933236821950906295326076640247468841226214618400218156170466351954177074092590285498383745918247889773568578776606636759414233683547507853833387516683876376484067088405419384214260482873473081980087399872893977465576987443437104135974959425782025028814608525585040578742496145665441110933075150384509935215579350459387345133984882247269042695935266633625016827528982452049827037672269077098147147021288581135526762601786291979757864349109579746653390418036641712840286218948090661675152405132003054014608281498823360708661887699546201728725628179280947239033188708238166972732847743535475368351501204748616082483136888277891294259305229786038497585039046626264781733391154102969783623559321950794964627294798130526912743807899633579123385575865517175475773052531525708389094901774649889911522372033275094186734960528655661417233600093880553431378511241364419484629279047537671102923135550076731676024223966446014429343032829906730449408681866955251845253075370347535872807842812066606147695034817762018020104230937717950081953101254076908652757745576014085355959476690944201582740388968142584897196728130479825292093834723303375924822607769946506383189360257633435449412625439819068062332381656380290491719940017257009587106158730093794077021319394704137434518843052541020527159541970940317751591423296587437298245150978741207992781395017655149194967878116235391043298731899113979476228438021833562443660589357842776391437872683158304529128288304102661072391156716631387937292204877179970942158125680676090384596677949775612353827874319438813528932408782838482885328282968570516680171032508359166290128781343621322176355820876016667697250766715593779185862583273648607117406382013508059988966413265303152810412184308817048780820247291266485690567968630488776626547395336780941532410124723952761825290685415279332470236103034115830539642480588967599835598481242487582100437098672450351448891345172357630292518645231999781775886533433079643038320203831823826769116189371430945879100921170752384484024063598688422499973580591596516536157667611790366883645838163804193436136557989056630147630677924463850589292889204942133507800195182166690272145754967550249726104759727268834095689223627385798060024554723124340194547514082036433800633774620114359378108629407220982611672718565661760006054230766880036538829679115800790058907793070610129383158404898926953276704791312170514181852590431751913940310027201115396523832817897268896938765515501440684603198833443941521403210790665006099086007747294573732603605908929900166421381495793408776376818885008901051097558449513307653332206830602101589154187245066781295054168746576459790026321453613241738059772532162015733138658159784756021249086557018133983842530124849823441675230536267469974296929402237884323393801736267468809530273477002205700253457033966944797249490890279469448850293477447599861241400599417800307045892334608293800093502740119804200332310225921639749190908565539012671372480525008395910872644965920324972518174289534556205570792220206387082159816017056344758212558482561305607035088612596304984343048848974482457856067963761400275346419799181170441758024138745781726210139789949734365530619937736366771512232956797008870895770843432172792173209484387110760040389846387613003503767086425354319361628364438104621591048109039659659911835987792614454037042590197843322584941333734094019149104190316261064484275913566171347588108919535442890142972248464792109097439819414977558116875850715093507056440691693202231163192305070790788506005977056654883979684522127478578992001217717863819419460785756058032796374910564411609667842333033312004251742010636410350235017070945997132562431131952593866620507907364891017336791344723973421777000009656707326174922435967421776727344097118220889659925562428685374565153284025111034171333247322615389655575507086692739313742342863495944475195662161232218150765739097432127345252164655410890572626337852625285468706721914469655198967347679486599738522169266514549784529429379489272557141119067599141377714317156468935244138804556026729496772640408727216084669825342694504242344336506190555027126984642454306067276954307847662265640946482507210079866135502135743718405649019058601683386177855419508281222305315246022972462726049481225937174006076500990361682283549975512486139583881378155189883486197285192847002953690887782788968755028841923242065768586103596110372782032542981221956296412740846084616179558344951424538192352627890538951075210738121580201797202019021729741061035580887232989434691239122802948130666929936767712590283011865002300748846607799809683187718112045855204749607839121531279574804528893230988737489253088922649188044405961962438611892757479661728986614568678571114290355801487017675601818212948897652737174875194927055629198408617976612974602377612964337196070071404076117662630831830289442029417102613773930524546966519744228203554636035662588146142407442932154212964453182301372700943751441339873466547592299866163217093492113030661800113733748305176267051678095174727965019147123223569601283115873475348249998818689761231825824853808132365734642325735856540970229190376097679031934599128241868484034838735609608658982322197964125692900555846007038836403237346887140715751113753498794375114484324262814877618141380750067450027203769405502015472057576606470591433320375230299682568213386838401087499682197936521081318203849918396600373681445324260490075895923701065907203832210547595245440288755301402804152755834312606701254162455085052366550206883101994060351366750023848871251874420342875577394043067836127647418292669062043429303576009135468986485595259776270211577683270625551043185071089511290590621690983929780207937002023382585181515977475231571693581186369625861692950447974314121822245092938263812401265786467082967179145791749143879679517397077865829241115008095446564772516984272843026149560825369783066853408070358177604767728231121699359744127898508925138577804164590879965817832571044705453897151051003869969148734260862506028115765534795040114347607648412174684755781844511263261043029429227559996329283506845457073769668149048845004732460953934918494079657883922157305547715846723172687599827491739800117122268714353699059919416999495874188074863902968130798527965073435523785333943549175126883792722480930376731133235165563705212153046940809846694357548062307366028281421139059107679800839201685552722761606365123674979957858633831397693029592826854164927543345754712607264591731447116365684584086426679995356218699289643964734491881962992684818829400366629224590938264130516108434727324488140259704136372186189695353514776181073079128172016974330800812912063047130440590341468800796217186767662591556801134894717310817487077318118032904126332732137285628805344350833782908507007913043406975414509047309012499946718305808289865310475415897572351088394323958457262503028134450598649699606157249962324147690726643590596118561993249431358141392432661298960092056476410074454492985098460599777216888981377265891011358667003305235945125594943308347371367566016713588571478785588251914423224852684691958058031320625355528647912085276499366446827020312903539972422224524208761765173313686349913362218642337094328545579870024915429959990714194063405453830743303264331123976029437069810717749509507934893529725630761254015065416033735262677146831221367407297551985660705634502855857769732408706943049770925408240422251738141107510892650589448519058847555316205958419240435153058199328307461449738889601580508166521599572823042459303013399221530248875916601247907486252793349310458664685293178989211681521216584000946239603099616043578287948218154726198220549401576661609455517658785750148335097817733404079075926175123071154127132363005935309029015507622905839973540198270438716390067347384018384219854052212319176970191231565739804325763597474698797634368030126005658432874861591303482906745644188244509246195603260744620629339020999443732089421588135794195850965488510297968546579479321344915069050973623700489204564669308879698108394985858756546545294405454577705145795434564936180289821752392771900960573892526228816530070921373414294736755035134353849355506353030832133662238083782402700548378106674335551714996761348099782201823032896410579633610973141400934289222423876700557981109681232910397665804981688658988656519169575522048959892013639600475997748470595582565850206755651331603498453843661177352932913656982900801968638251417494230680713206595011318291540333521869805297872505495098415628612762534417612902846133242436144208360471356482904464578984852555617666019807853792556996308818402079796948066346397818566475589787647793442140076716390500071186708952361968701401048282487391980440062390240729624418220322254266776176431386463278959915517093930514797341801561699630063794535908558131136059893295762606627520042035887077869787040152460120948071469608453666186711019285460949119191343321947927223557563071944787273688435312155987042587327507633357955210240527252842163273864209255766204107126842895898558742081436748495049800227249665671707550478903823060187340332006424085503973235804540131364213383165755637030594324227470984372680730375612106657928540718854210620897769597964937915901675985783725811521337057357041985860912191747316355538939805569970527721482770650279424603450776914231695695997331651314108234509637133283071283995793227446494652529182203208537555223345190909382459188054243556792314709160445622629306840736524155256697904976404762330115801227298595250029703773221431141643256307389898995785830536195304343030578714331759558488011349178420635128301230252515437150177655146971036353602419464519868980097213869705901882440050996369338665672242642796397837351396036010762672662732406877591043067620797481940838108574219180127689843560810853266593878182952074158945442141979227131720602452230298148549869279034446770663041282664449898343514683634682099441518526365839058214453848030331692865390464079788076569256302670800835763874173920345563904556653883241907410676714768273965842748195882002987284076551453556250663616101484068766133881122024843514060497394085755909023517975886417525104721447117673754717668238030116009816012993021471676887972554701482586718268677233158693359932738230065442319106646477086690202773108792484902480759332465800764242032591506840352532372547989944704626179247867417315343618699900679838012556509838571706603397861749647734767052320019736383171967519994428933716397343721131851799940681492127118040114538193898293340609235392416887921232937028424143991740088859144044168744765145616647388814622776160359526501212188875115058744262191209062246586672226076312890569851441127137239028016231889392024475496931838673660196669916645621365503746858500256637525145612205130762005175349233238571606249241280428303414735410615622624236883627610789731245822132067097573724133074642014480965419859366625460370955405010363109264798725006924896921831122769844236010945748561897422514614102336426033106559617847287687995088061523856285348718083585158848552020726607600378554939296248394256244008790300527368175117982032414258460400385342791206228152726102333577290398460187781458487331655266559006835782754222236602261099574536828151566090027277633165169964047333786687683029226690295907805447489316121863648701898025270903889782484467082208156891346711789141891176290695911687171808109507792392705075290261819145901626194151222891182836858347956268440963957018145076654362128450946551272031591630723319749907050807678446032675200251990810845540094979664436040257053538316410502352891233166280719144668889330913550675745501372640256689113111641008551603206174595547303981595240885497470554041457145901817894858267347601665035277677411534484744161143377980909874161773263563282574222576475447728563742102793742016886390201327862724144053535261732158322427573487888505077138233572561285600005412189450763115508357559615707499685718802136940692253303661194428297956591282438667493265513914801947184910523120793764306659599455278908027331819908501121789051236233068541206900886116581940952018477670012924271145844815347294730162611523338558942375945694290260562243320287098314031582120138958881867521289843867034358163088263063158682162960791413720415113801961927686888974389342480147894521521105475985750408964642530607003044199274232355181418724828303579922983104172863601970199294846860642568940494121932393222902847059878430526544137382907883508044913433561925600327757902015144793596642539550764149446223202865032740620576821802650044910766343104017529703603312380928719956650606737782470144265698659513341672208178920228682506765963647117132194497212509596321656241994385725594530868317856758596783678159240308477008961329398450345260234221095753835492284745669499321484131020133626945041793766053511143933936161678757286044807337109436800297336847460446637500836994109292814045520723553920002281400901149006773704222193628098875400987445178230815959741064175507701694374883890428066339883563392415850436042044115738060771766387250041149963690081013403628695085741331714015333297830464464015622547530368654223586214288437151527238873951262866176106524871563677915868445596889261303337676551020222194049146810909335837656376563084902232136084738166393640976120745948347188657520969067236001829224092470888247461682250055304702809544734316237021345866994894184419433485976172823446839762894856484559550605491760820384521031320759347730117773681376811197481598253089464712135214393879230219576130613854009649225605103777149763245314047429586132285566511978753634222437488842695953262039116141805319686352027968387899883728754266125802192230698582865882233811931490451868169482898753319748969420080204221061076131777287830895277123618616870225666450779343751373273139623714287491098108849539376528474221820954819822770729139769359886906590974511650360311937250981506068574985192552242891525701938734034254162517213567791810683129008033407769901292397524912535474696550795869723733970223709111327500430866992797191445672593587666713542228925807237623583048957106733228490618651440804977323883688863841344168325503978925115286594087476819357599680087478726654183416344797102022999872631568112655672223967502171681625171450658968430201060271022124191404964700327151214264683626833372762202485819233556873873487033398649832950285268573163507620252150408322276582392449659767918351540477285473324627432086138561538141917747611036111059088464416927139411395720675272547201164899439672242449552418273899498877621748591840048727115726113334598202197247262820337326017091113184106871578666717881790684194183456636560743167178304719909987695135994945011574686037223983679236209862718132650440678932192265016616893706928643874476211925674301941164774125132080118072743521093522137581791143801808637945000152194307171094926314395845532215716157809360680844169353669644896740499766225071188563869640769546349701117711649112910515298696045248528179912028071197924637402973343215128951789805342959093957530342198717720448432343772722975841611656716391251021697117344527504990743646429028363184111412212925660551961375599450637595946010600556833887367603138828926623213171832348921698384658630671955768499462402622363096106755420939629950367766574885220460040239906091043355648533436584888154184590124538866186123875949082943301811079639974972884076296031646776596064982973255996125458561945012387634352273075943937074228667510380109278267928215085804506450805981511547349475979250837121903427857194892609749848207298875571365602894970084968356981617487616477166119902457993477686075682053489897820923244739582400050380183335376169973932561503621767335927702527204103833858230638070298235155531172812895075824249569275608485157826603718539799430583899982727565505295133246727555744966676114244704788076639824646897923334128246948157962902724503894815897398788804013660785112621191888942158271908008093686839498209585186767473835683446662149841576470993048551415546892079016342694387764851386687105876648242670667389861707992836095005955072624408508081974540560326232840897233815859729315475731481132076322733602801707433866592656238743449042716513791310879585681443674480991421666380267333850163287734787608431271294041995928914904860725554377064251478507617877409414258072941909552679227187697202215871722878839062976974484164292578341783264895452880981422690676360022393745645773600654616372619553611202638342661323966808438532130055264122205583584976094121937009143527823455774140484691058057423928636581244775849628382725422113661693403962011657056493531751833005623101725150906504582523496211594760566313866237704037283218904752131428427113036132254399345508482811884428913372130825892021218690924772878809164175162870348367298424456966131341925887759425495955689794944788727003134839640498573448841811264407844086330230469585564331371345811910472508551456375323240382615360085759796009171790252390169368765590089099763460301864929724442554742430343735058747909929739353881311387628352036814300629189875570498784618381133355075455034137704668432717344516432738484908833351221538383793837617743672427103297871757034830098249070838884156290229861499480558494514283521437536317720065940907211041095493112298338823518606659780554080935956768022859862604527458851494745988312860420508811569399176797049994013471098044674172119068808139417054634289797706435116719828755102359249337349994190644344662993656156136866873898907337641402099438877339765012421096267030446486263514876123246884199679637862769806286129081266927624811565382372047623137137755275364420720734517759163153538313626824192075774743223529610206346026448902447765014958322526578461448083621060921340900909886554030437573082498827443112360061176213471698006150952759341593964399107635663076658895290123229159159608349909961811498346221191227585619685648626918151058506893616797903381309973756562369458466153180523726868509414777433037070583661057540095800521434717518502249034386992231419690532822713548453242850182690036016078041054751247870175420403637819052976078686167180335305938345759961524066659269725872203318176468179904847404483018910961678798689325597199523159935302709030817023784804652983140681748141839749833609988880554523563857163164974729797355397139037942536239368441196608546332056487428460130996707339507842988608842666695817601857563494988259938039635134805849585969403394760758407380200471791694706702671142877077011230443430181132949137230447164380400311667765196198404573205471202265114153171408616271079478891816332203436301979311258656021352010102521752680097474836504865623906183381458029602108618322358449672400299928953015205460846124297894836884660265628920590549195333290573577936930132051512310987201612445384915100180023283852394628610961234980276675697283896742775466950784426987304103830408449648771732953943790699244088517601535334625465759090363366271127337708774108899745004481305858919502156695344867717702914970016008307682369878513123844008893120478541929816474965096712583757317152434876327750744257728991858024661739217194386680456087766849311157678773130081055865265884503413111184651378559376790442728096280489813166548603202752381628268758201564728242840194593763170544843942654667467160368919254527113249917758413045576358175461459914706437980639741992700022940945707382289677520481099725028492052438205680861997538435865929197457465656044555300234243829943254509808194863411239723806560513848392325647732807950824808156864071335478108106878472861072190991753590875991536754564425083086762419945146975906937520997238272387567479237078259992807306939074684727195169947486094942229306476801528969028770105692861793475855329618886553717299695204972042829530093869721184629519894264157868483902885849124257438439053618325808348478409969898256615616771299212938416214998032595720311586389395846857802249264748064566757771374206661627860228981097298204764290521602772434051206538683605159206723437807510353063435365848157305564266082401015618269620249308964538390072772319696361965910423930388367702578021260084175095201870384850146280158982230769764030415150000590358051145007936443906257255247751282519789945523554306252474280407738810175968254191197736144307221659372744590909666554019631540500681438473790177168578336428278729200677288091464561760392587229824026634180403554943734602302621710238394004767443744013669326268106357166992809318894756751952000134967465638847963706716224096485639352217847651823962683300862745171068335683775105208679451036949868445338539114331638721311453801394857169897919023975454265622531089305722575082702752793812678724602718010480287066036869195391625136946907319639931405557560862407450773097331686590785500723603290764388377257998676893867135851278559768515368503128921019688625863944300656947487273555110069492682856127220057782080749816299052657403456710214942816949833008241091432536587820689672476249953222507143014122432356079623946918620348384954175523125263194632180198243089676887046921515576311583206638458809041466027982603129828613375740500050843337080174276118353603768248830307212568256912346230725490553059476625945099956653502795833118722655838306012565900133715888429501707610960795532054326606265630498658940248981549568852215623034439146733110169752915732185064690960181341512655058270177254185984020030929021898374424391828291543130187487318223841083866396580718592342395557469602701495481737047660043767129401931826342368911686665797780235552664879588225318554799027963894232286092136177904556468501825498700485790140361857092769060392902575629593557070223131608574958649681947322525526523557983446887696796922541286579044509200801786698460352985673304248004262196208953809541913505267171459754736293656605315060480800578870480573604908927700237883907408921202553597158275840234311881073094682448314605030165387312588523308876419403832956273641842517528715619377593794512375387585690029107325067322417127654311191144356885800098685771330184357535619142374237433198693530774970473810197498379304929309443563122478365639942532798268279589394693174919744512136122205219676127731507105468931819887483669795760803467337362919272254320447127388307204835661043694548874945702606530645451631420672188127097233895472182072965996938471645152009268768127308762601986415813350096369178417847351280509160387241962524197908681485602704932676866399530472598821263537954118866882390667179289325140987602282168142024903215407978644212280586581813275987021927645859209419121400258281859638786533099339157815564698772536980946047028705089789760902344990330644844752875577956340539565636223244651531743940459991875778966476417903368571778939689968082047248737426340638712382637672828573853817599547267827165882547871659365389413093062684871128523405290533743597178646408511864290108598001073201338517630296294334984924000496195725807180767179403928957889885162303920117107094083311899557566894300998957382882735899210929206218915440261072151579091873384792782543894897456481126119910427294040709380122451575073289580446413160896880800040139132432684928262396415326286186199549877581620412567024419112550261535323624599815331642965349200175709958167096349304774307013578338591493691069085607179925833986757143510262048769487604545561351328894035177657002558167794095410446331787652436775505383972340098871992097926364634950081843337412417701627592795534308439935324890642220055531423387853326066878676460743815166090779401879809831808825194908373830571380979817938370022428243759927668117653305425409759597132379788288663674265333363377106125882851689355365414056772877973233948901690294058614897606652705158058568639755193962977599631822438541586857252378504024309297523394747176529314091720742231070200409199904440286224698813655999143833983563299600035092225048036749669560394716817341956736736180788566589661484202951321653018076027108271590718241066268940440541950374665854602564091966324309198356351964640004995029537654677106698460511293813093777891312310157298487745241617404002691196742012008506385325845241511659415186817213296358134631662588798198227469604224777277188226772466963246511769037686311396870413553274715082388715220056789512306623004154763284453157682843121582290499042710457744392551245823542727577587246609082286123818397184948828401894510676941046237436519893129790494649006781289744431307400663888908757966581775546183155285570731556752194328341159499734000738937080322254621779280350522430665984626181899103940775490905847799351034245017124850224038498542976381874733152773586099921526983685579488368351796606102825581374940970494887230613550833662472358941790796167049038934328650959371868550958871761215292440727310602115501966265035459421538201335973166349533394440441435683112388615284244747867631237501707524293226478434901760440432099359490092981176063115371864120004414780112321956356108468072933061949180742474786090427047299519606010740348362470557976427428966848776555424601795170270955310970039138179584909549515884682333071736283752543331276511941778580408735648314473969068061048058042577445784894177325929886914822493639460102130473304533680685484139013989110829189549969452843078430200846437061074028571258259760183668232498527011909284416494798821767167771604694320066439607166661024354207119505687146213200721762016745471734076906110757727399827149751113082752236813209122504093346970929100682960452324630378389705416574089133184338320711720961084611385240974177077454071798303965187558821045417274154060474645695808052768903151504664681244356567693545790055606334077446746295040292372608235734722398773628779501743416407590518551792474324301976566286599904151827060518496712884600027215857173230138076436866182972977546421327145094748903269061552833398576524530985409608227635047549401578258586676097332279756371622172744661872909821864313569593856679991890635461483562244646371906877209366814255555884616638064923656533943063070274198504267578412609077297572751013522855489874010580512517284898982313861578003245131939374554665001495261476674208953190829115028687622799851521914027667283190623898678314211787939357823381093110945520634973339399008527283790547386206087029342366131120416025630528176722746256672917917772586690101173966955001010078792330908136356423085113707766829935398225828148901699135381972095979282615464918352314364191306058208373931707551351493885530225776022192746729966161788874038600334537958804487222388029415147581160690597035020923160437929685135248082174496582112314848632622944924908596785223268718510532231643393647446405942912031576267968784625643657489188638209011494070101521163759782613907534431309285013967293405291704988599888978030439408192988358308657949911695595534502967563984731388588862893131105622320355284431577941562532638178244741027425816641138901550188989673774834673455313967930168630836970573411906125698465627038790715534371341033712830968832772151089484617204855756938733740990164132787873761625559684866151763347856989819143600839561044454122355237274484617070051440750429293426420997558643202092906574329928735426625930300379570341179470798166310856230468824639243056774205893540178553200327893060295867858492617235610714290400795060735823132464381102304698041283762595087599854482476064206738819947503998407724238863439174843846837050205352862874296645122044795030041293137028205070933202805331338454851136701246786318976615130843891001792103459560497826733482351626234589604010150335853572335264928911882436276233327996312654487941054777551098823957579251077920970824896003402438447070914131263537001791813628587633253172892501501517831619379577723884944009498688576071868062289817798565636157742699439214095440353120301242029183845783154581624308801215561071795753760031634384588739715918696645608057780126148449960109937669535445381039791250188169745949491714295873149399889055904461564702644867626947630620743845786826931246666007605604388860085574498802982056077382145007733400511341720111994594155998098332298013433870617702593992003062004814699711131303936625102995598856339764105137637048389238348358721075877153186846330406453158805430959286413269584750247753301327835496794307417560447071380858800255269954225921940548288187060498045801332819137380778666902840697125641059403353977259737191871636765585662464604156933996941611369482450688501704439024376911838054466284957285075613796506299402921923167913109312292131228408374649573779270552634445375513357719659669759798182926405096414644199968313365456628462927583220557774377432389815733996502914579318250524799453131502782213349457441832469159138874769078784051220499863944680345865355857868537207624501052283022170908039634935586080476941160090076399889359511632036570843070342946709006969952347828256659717372666783226367812174937391224840876842786541840730390154092829692741397988137532878583589537570569501014954463586062207761806527230860930720649575308963734637937418455508106983391181785271146269374169546921467704063946015641119118358727682363651899776492040461326356229287190272505850635434834112403590355314766779045823632694608819233193002416367202468608696454936201636342315871811414752282343742260276648894336519235088950742154694941330318258106654852551490010980762661900103676662553400785950031796425265169480562147748285073153022386194643449828964641941154945684494656236834362392174730643595349285094402634139539167811169438757769462284043345448414322705711425713940804704318384350319644152674138383753990776936384715229667512426291368487425748528334316059722700752156315884136041601101085679406219410104251158543751032079033409011484228066249754167319141104173543404659522786125178348286128116833364794909158431573214618529532247929550550150522857290613694955456444115433853216769964539263937283807776556853089215466330759107384221575939336723122189862187861546407677768647090888651509056744720692975475577207052746904682329615900539208436224006080710907700887375258441443916194141343842606987363421012258348269819742116590551083492168204076881301642682890924893041446282459480487294438141540364260020226347804045471085237317008961511351168644388972250914686333140207081986601120743473634959150504638320880602430673505450472142129088222233573822291401403340419173814631997846858685397076448468962847612158031051335028953521959150963960846497898109100598558325216596178879943600724198219676698427495048897496419118147971901611009977841860393990958705118775249882195516360507448377873132975414274708171243125666297580002126517214654833179464949396625332022229513505592221133857360517393971080619640706886126208435189052482968219319759604931436750504945690202453622036549981391155778611030648173647524799043760398641836731945755524249851396834661427672683087281183057564913938712776141997480126863768868901451042142417553615707998313219069673701900289100888444964349662419773460007273159671478344092082952221071866469303556403177270232001882037192038147008958881241848256590743941508825586028082137222573010665964153826908236343722622427460838378152814400566275043684617613595004319755768745057721911721023035871090282524473139229378073457570459776408043279285812071062940331501649776564445905354117418711796220734632421681672439045598266504438742218532209227880370552802363383699418325865508991170337128281151414637335074284616460947476650956903693567124685948720670766614265373189261139029888777520240864429770520932535818690260115811656648454146783011820557432200179935391345153207553324719707709464464081414614050411855817333725142496703259895849113209779962478086877261537039991169639433655901066288994506016896322091120238733532283935493573419416272828507900125912700329338489077651745700910015897767359525013266336534569978461574598033222966697732851111795226024366231991999699395316375165001223432171056999226954789113813506671827192302154902036185126207246025109079054927959253639413507708632516993740428231085066072429785273465394174205045829063446416258119667820714186921812947600336572778232090956168474790109151703976361714152279402980256570911697051277323841457623347026817093641147977846013436909898873021629516495599651378711542848391078550850316104438115544328623827443023601657614589099521875906236345982770039764134534866766919177103304893866794268099164303398141997812629854445514652331912116081512755268090472606013785531934172038977693773215736707701721308221613163219387419295610656396808925488349296579772620050607961747381086769866613315735194856539244777306855189029407753952518835641310569595206689014524054919892204113936471593731467489786860056506731608920896965038839475538068703951259791715131961726943304753072241854782169572231806930071140166879921312847559984357018929506325165550834765731781578305277213500027414600743355569876044978882445808556353722582130738175459975573957763612725664839256158298749117235434404855064862445712571012098155386672448816150985454739615332350207764510223915437294104216238473475208075457107597636126314369335053737612521745547907587352991924894140325533688224518861745073020707621479973597252437608456912705304543492462197498542103223117372589023100989419915372357508382169051188083191333611977597834803054783846774818074459239732693153550485807349694114890599247552755609505399033680419028669809714969101907548450125462008223020718895625944535581886030103559439403489405374260384848448410151314336641604974663515738810912560198270093526669134213440293527401003322296905927785308103854830237219289635628071837112899479962879936002296365122518915442442244940393324774434090957505561363232567975563378566087094727116925903352493936724409721080479386693820196674418920825712753428926870055677355894739628492013385594509171879624070928154791585380353679655028005505048259012050976697242633598697998802327677592109357131753820285380836267660043941376874679187487616302243011463048884467672690687017621732419570875727897864342229657662109475962007573485590469940545953388776695588972681609115386051990981959099948372108933396424469329682185329761104532743715709829895307611949717012693231433191164186641144925527292114619009388504615103194364281147723090156739407115726628658577564141437622298702856834344043259709019670825818280759609732946105606466381869145869465015703670781269839483605659131015301922654137408627799587399570428806205379160464909783799315313284856682376919063711954409253641722561750443761498900373917343623916848761378189993628345337467254386281487373452483511719171579753109634937114321761801346905979284542597233243518178875380653000741116788337276138709873572993148091180605860167033921216059167444502975746097487411567263973062890830409302194356109694036611418854596772134609438244194487527176107427759122449253107181079594733253637704215965752318815678011057765246206600510638026539218381121412546935280294374963220490614654375322475283678767468536886683765812543920142469010243196265560548935395184739966605384443661628233603348029042011841689419535781321189064850455213343378843183854252850710191935411059461950937707500581238086785467164961339590944318229763480704895531666983621211346783008613462045635476677725600449004453243123915376400896415991849444056705807773378086390355630738169600291057100237269552199290341033804214408549284178309631819319949082775507323366791684629337418717309371227494679560124595739850260158593515573782532901520771831405747262392000734433458517232956866577227684278856070361127508097280656163996580655400542465662608458623566084768718446440607144478633113803394496336128207553276171421836036583938883038897421623715479579675464169307361418820481899785259469049810554213916093340265238870196546172805553185446122904210662039395032150373874589134646784481823646278323031082657146039715125234592299885258830250051254955195762249282479313596077196861622237004782914747964536186813702405905065863145762559203847535370225522220248950928708848767244278060506281113564462744506902143657722105366612562633662326951878907563829260567085249397238243699430066657153096768077881111285688475105698357552664432127448576712996627969666619703721288473836329323845615208708717931326272003453652682485218218249519957654158246224420489567785725448681051028684256385266991519520019517394086214184934203504161214042612225742913922014430973389481649947290701312072261133409511607410426203371885295942985143931000403633164448017620496985565309693921156758404463716313175163107588403519954171057887408595098534991062662649560285114660945880414402777399461155335742109740722025694091738429713230755015950004445782511034298387953080600692279846004892548875612821766524373720819919204862454295020546522774850139463156407666310431493008329556333277702444050213236021194941720464571550634681574710033030513424972853555383773293338768506666997898102254710824459749354154516195475308806890206112371011481121629220802358426041991447139381076566501266983954760001045450916097205344970810073966393341708257266543367838638796350197114175864094250097990952904246937647863638826335002673620640459315290606923644506267445661887206377112003986969621340559376090160977034024029107850134790250821324812249943636009287404202186437755570912471126876269226436763200442923013298378832252625029242825439630468555866609035460785331121174191845020593914329472522563178471251810076540807502713777692627594488458083748748222147795966188729202624282228993156670735798705979608402552302935671865191959257591314433661425728718246356570631079416529626220681369700022991585531076635321552730399947242273065705512949902635836347322625920513959884575237871468238064963774903160534263104535674389156476214288346764180359079865555629609195973089501445192598128070756467054433693257541400831254285118461270325249074837716392933424366335198276157290465958142035498891547109133020755097033248833168038732910846716533543073163244155177764072766959784031054838986590413272909800686462968455364984401811250281163718376072269425373120343948274172098590812203528745191888009862435761267425251853534497107035084677455773298390240776576268592583195636942741182442569186999482184406997745039174715989402761388452284673138176439216025406195427377791210123735238824844135415885962377435803002595891067192406542751867467495286439681213220285482188843761105978157212077381512322317767016061432102668967154688355621453853376781547644566064189088313819010091135914723766379230381318210513036632757752567779092191589875750933652159115903803589793523321040900517052232425391425479832632010828528911194497314725969049683290436868316357644233143808407908604147549918128387181095130990408278437801024076189407793918889337298721735600651372970371904090922100877200095174079088731778826151145315956216197224514626536829422385006249377087263013561005586359075778447859918784919714289568111360963884117073681872802583237350010004640959137200087885222506853291208068958641518675229205846376733065270495703213676026496982320471757468240856470469797909546277069810427488530628590255379298046012342850903722787610029153826159777989889502673442039617530817288900515005343659910308900935445559626761886207613041660038335259431691103270572244532410914086138093080053735356300022598076963360029520863236109996911775062162009761526808238794772511607199845177059481313244853317004422852760412589212451381756430050682598285481153689780388272836030072830501952722252065817208484794290673785689598626613982881133931312836464889200295135832073487676862403733670752146170058498035464878407366840686310074281223503081170125551016995149744792842783021666460339921113872578406173643504571507863945622323344431639497083856431797860917719982156373916438416843481754608953453737468862430340487131873174503264085163451457825295669587347212584810185169475003925060853454677648017507317291536184725879617359421504551081761863997879125267559173421171493885563245345265076964643316256156607377286822102919332829722526574341462417379490983152050056637098386311157686605071952154626752741072321541168814140596276274656010340269579615224700221411104005991341639877094397601546508997458258180742920762290530097173229391148768639369261568520313553133956337597183837284476688480755422024784462095739891625033378771381318295650401316656536255015222919646876618892917797727802671909194784484787692180570169938964980505766244849788757430661432904613450643248547562652669077638833685244518893216193895429027227392035784713377521348190231266892065635431581406285738813966958474647274444535368182253013984901823361388944808060190416813019096318420505742607651994408703805568943439154345123538210680258094589875506540823849097906361078529482374281710248549819689842251246038560758245104804658989123229441442514143163426838953084891198649217997346804974315068294220985834433853940732475734739692617931332457873880300405949555899503529840974307953826429867369591450497728722915889215814148983073189517299032327092728369853804651861417307758131602397734609851274106981038666056711095791529990924514201770629899373228112616650951015496844956173021991775574849260896849880414814682128221741645243320866544927638831072836612513201171283934824481775730191130374700323111057539683369861995797318005554087498252647445936901800304082749999296376378670258134408342825922563245753652836315332895973064001752925309632251832678821304045075446660783898211732758250665674109856436124338011469650320315469311082912772355233210858747075322464763921604823132645705847564301759276771656963772937327123770500196851751603256555955223871971110563447492943881467717988482590608158749530590642653516542427130954223795595594966528112018097249964485265659792620089593100976905975856536240506790362364328938191646979220006901280358643045548057101455441096684625610212753141228994266020697485309949081910639622687336906719044100731641434659955986961913587801272673285576168247784760809428969647089558456844160911212266886323638733522778424518892942224582567833716823194760778456371187776907998533872365192858070479783567748229331828613627842017655065836529086770601510421422894020192933450223369188539328067310283500050876691231036121201268795098765281657800835156711891658817838793068608780342984870186282677832913086417652376137240642345181082983912980252459471483339634009130230184069009640053450744952490866225736969079951240151125928673209806832352432754627479338532777669052255686605068989230965544254255137657593262142497313598473453509691916656529380976888528936409739277402463579719634409787291875672589873201764685623210214267069462893272855009353758936331453471618440109154983404116758204124160199718945359841094081156949294476420908580181969920118706419811899285312621636495662022032035100089601541262516362643688055689217011138922671113614341527170345049941853778574023989667411845637295836409243606754669569712722254811615571777011912177174101099774377461134355429379052042533938619256289377834764918106847426244761807496329057326571156334086662732713626658826617805698855172863432132751663302140183229597368431255729544388629020917916769070084485033951731572738372824886044725691040434087613629327481619262981817445485171358817861072873712870701267360605379318295540987636179061450894796658542439969413432954858961505334548625667570226273439965426415213649709985518012715424177335713596359028787598656525002551342963033515927278567914712474754379148590423601999414350688484611193441107608191966967747757598460449014027428889215105334298476635196675604264397591934731079306919915621766824697040223902703999505734030055709886781816517963412199986810716770344181892797232415610689336497053699264689039725931828139210778994470649768201115246691640747232914522532779694536438719091482100699177651263596633855050569839891732167877023874753649934076095655743464733234106575186133741800568735276219515939339174710287632539448706798039517922927217330726349999187544211950802732321326314045550481704551336460360348463711848123021543895367794432400143944164456055947611626567543102312309691703287698708450886608448494697729128792352923491649437369629862151620831303100793061813995494301567949571951439695960837211938584606189419978476119145750296477192524160241779339221995292213283478915793681812009434238475887313011314300573354590397300274642326752533675655692979272579035269676897034606191874618738635522479498141483286695424630783749422867975824527548574471493219701141002268496952620277019634994840386966861029396508714216922929110976001043015773241523612402742943426000284414093612732181574503803587152917198848565446575694727117220965223542093924873321079511345922456982884544023821640379769252427746407472318409740822089828322683258125217234908665608184883925966322035300069577412050574003108711119187645537522607149046562778732910984671734994413098535834934385333065308642174791296158984353306193603161523569346571017448718643366953094694314160244287805820992665432597129032205095965589504529629643818681566573147696865639607104554383674664515694790743117267776833775021455351121103616403688188347826657420808889038355300491257585407560737685330645069761705036945802831733419723021498416279534335744176481348531753321738403847648353930617715649890608241402877551706134774888024223480539757127950002849066036476905233804724526676067928497790614240006361176045917684834571325117429308287570695077910034552472892382093861448546472926653583206811391865702898741134108626131681708350637177710978373988834180432919950965784332036719704842059401534888954029560572100613849234004311026120590523850984104078484586878543719023154590721890389254732649562735356302056505023099873418566073905103256945290221817048233033641744627546627018214950143898432515684061343501268725651201451710914247695936322474280393062295644870614452281227816730475309467769401165325249586765016676344809068060194677900620471400549465565302739718789629784195885476317241803793157620016758672073325965061475615621409820750474427158876585148601604036115000149861152373353110633219677820231343711739667421769369588175649133127092901756379554400220472089194428293739861291438025324775991324554664356429326815491840868392281071010285110383321719497432432467604935093258844641331274733157089800160356573010319356704252014423673815184505027607164394852955853469603598664117917515463685999863503897514354424528602687464987877345986052571928412105685173979022040891422492388325552745477620065764516087002102046119033334513225310580811685751866576338759568283469824723196961744834509688380560012456823137740925061628981856673151750454184082204623724825277703315618687728346959955119126721459696174768784266612880371307288916846354711460837591651886365494219664603194261765004178785915761700703964006930050716105059220574327026260835334960052697023163010215612188395181046767304478675672487493454734699933608473551714848205389642244524191074860383821963779954272744715580906311667869452075430839823379621749472591925707061416357603442592084115199578970286341547721055779127576281986508917753501183508692016998937771370594527482587778658175720388852761878966409086907788968135539568078547876501189454184032307837917305621701507214814992000003439854536490706782110193831232742718906775033538549071217904271660908932148080573821222338147137686352094111888177850177483828501721702162358816488036260575673685214683127691964454496678298610877793475426582019881841452905238089793341292323154969198583031839662963919002663632446580720600771025310660238354403424503193556707983246041051483690492350471275980472620908048850097161109812403065587467435933084910743479366326809502049525751675417867601388339693672092316403911533325931584323156646977564779517423879298704225145844760496228090486749893756584888756287065842522953305642514929082135234707246919693325757445221530857838782470235229667884227930120750597401230666559958274891533575381901204993236356321450480102385102687566913506624032243189217368569547744612797168700596814776763271500412006576894290051333448126150221983849285982791592017525926164770685682315020855434673545134109872882963553147941778962381960311439441916349389430512661060287376437044526818823090383248642264149246320114083492505303158207981268666154073511742645365335722841246410861566577577430127621345130987050549719133221928763643315842705486147954468867839190084447802566284558045737071333901773789411643054467010649610727326083867143197697213069239128922988543540609570205982672607954919468908877126639562258753839468657460570388080034459089303854192351376579263104041552221527720380252366032383616683224850231234460038861543526713473324063626965524200423230710418504069591049375311905887849391720999824371350268620226247808868237134522792522663299565310154978770707740469399465691450330186761085771049710958761983651039421449257567130585604621794074439046884089696851771612331789425709941078166617471762149688470546584315003056360224125157027871163864546896732529946137453466412725382961713703244059650250120212732085793520077023671691499251207731644576954203888432389984192272814331762993530158630199914926018204633278749914187283755396562555649462620853514294195236389039891672330542304309955441210748127113301698950624468253083051014350105395694880545004240433154942658170927796743539428067159091268182066488134185684699246551071217890735489544910968911635365316923432894827100668177761856212808687795388189255288114000966510638482569495321529884475365706780164551236073077686535885928654752960483057581472020085631893390602872865767467071035765066137602186953701084263588228930920057065002828738853035751030260271405945772102094399076874575133903850763731744783106792312350459563195289126608846394141023159204620240170611019383833402070569305481785784858751775362736242720175188309627454284891407240464455274474467062526342931772012104203891973906928656962346799550248899337718562154983479521865466649433986256294946384656112423384067060955973551123588508734974136776237924378423401269260196913040275933226245654097248482791625992698167981736545566535278411488274602532751336007569881866777023083044164177513244135723478765714366216720299468472087251509848699021440343710756616142026270039724797275368178604188465090642220397990898088966069812777649851176156342405696857789949081330390767379733437778181138951899754047503496394379940594025749438143809492393459817672819290239762254890560325914941232362861734445940020367643071960060213767963661524729448943275179448455000779209775517928930295808894179005422241752749249744426014927212925243756447101792238928474572036407861088423206284671116805528310137679527450627939850141744826825208718031487010997783255608957895319031340808316859840216709322368729267097329064875454909270666175247697889348638850264746070837350786931167062336435630036002730222694232649811304305813051170649385987482237393604878078716085936006027769903629293787854009023607970758596971110774395332148277266520941717971565710246290646800867567548218892485838279353159323486066177554784281057908834031236563690040552378362791833746536983190063638545259047224971398574492757429102104094768869789127340473702030871957951856950355257323705748086979749858791723319166502169572378167709314115494774152548263278875542106090298097669989774657445222978367476026472851924111974999648363524646146423975299983055814793788437955355788235928095354423693523419973014236730166203855952679136331617648631579227623584225441715398988059502663690706123097893482842838381970769452470703166155833568324039333297021555318180893317809820295345646976490233467103778390993419313562624494049495535083719961321452083869214369365089521059654563144298622246543098464309674669967152234414314921154965393968667371157640622091888279605466406941446261053432761643604682604918921692950198693644325888608131042522943327730444258442085300038687666221620345830237885776565150027206510293997726509614238889562749371292034772882470700448693130863987689080309884657366789362766192777154572153720697126743230795020135306563964231023560174020756076605174788972820798118032873264985045918606062874107738814068909528171626422291193405451556161403222518091144855961472773584986697959384417814255304042042622599078092947667910252957118720104001411150063158602441128556045544470865930790975358479774580275704856878900312970425378515722087292848315135197146071878079521238813605159598348438142997232658537515174778750443127000807177866804286210243441481635737900951756124758402868366343721286344971199293035530161636144567090294817355435387855502066780663996688380471418053391972512317776351720477408385369161548493444268110237999155147730747008110840507072444644690794184706554283381527627329323601762095825168422286216049141574263996339845933068819870301862482650104584125810191096510130230719011560469853949835744046535737766194283045724016966119666974428538282126991677879779196386480940328280252727942966015472783815994438231105541218374037676884345773833373324719557326670627751381520434905935605354747731103162893711045720308142269215694429939237837300681566586188818214437138768231767721212999309896943784590043282148368292274605987913374626602076367461092865699607513430699665994531501858891980213691543345831283868788301756144899204295217818363652013127942178776216627288599470034401153396216740623530190156841396816173814321657436542665687608106770992555178863857709963846840172855158381832696711199350890045953890450548880163846762064072730855491033569561172558211302347273724010223273866208196747888920277023904516562482982096184406519997045220468820855896843121376048948858955746045516880381312376164308037614952541575298507596294355190145488041723285950159974973269937913828567171481401306542695920559668680736114432730892524335467212206261684976467763764123515239907169930341500463723072390380364717406188498182409727903463158204257765996393530528319770081666597814731142924779958197817462115278350474484504400476126108804813655792882546351664919980434444488719562373291319078790775607313818481554955303663271602104316680192407240046374697671790811285332456620096143595807206433414161007940904166397840413485906975811524434643306475772405522857576550684760144948942808914577295293607479458430080713119866652210938494697775860408234842156408050764796168918172477628257156522160950167019192907962877861294915075361928800356872823296635293158061990305397386838750807847256636480615250229021614265825797106458382032353550583248596285617344648242291599826500172514463795939602502972848138495153628893225355029377972424967348053038474995677919957072449585669826707628098558033526855421899574689894913637087044628386344821910601133798084118862131080228903580984138303281990553302479170894759685584434382700512706083768272509335542280583699678520843927726826021086710663087724732619412085248431175139196869539127391451985343068078536874716126880269294816317497946671951525288635287273812151850897893475519619912283330613124730047789563284673926129984809525302477435832291665168546765269159724797530354893100863215699189951799611186646802384730745705191639149385079002410216958963229464815955585333929373791441084072759131140077982621377656507987713380270165129233333443020133056861644073645708364370286998793214447796081461818433621119857223376575411433777727081404110166794747789901760372609447660285627247543074896535665245546421096443259906928099571765598656613418280323357322950467870580590030402785200081080439656572192565783897468516150513760510812028725299758285042606561071869979480774246659193097624322540158728251424024644822469653639235572623441695755410843569907164009642473431538252512635990843133257546191834436927926375084773495996023275755582487600741138574360921493708448395710125537618854442012005968841805933756455023792990771007883842655025351663159655195209236373309891460035350420918646302181592604929102881620633290423564646319658970652060463422093024303475246321685297887364871153055283439591727769198399954095917371286225411611775618052624106497559966237314371116919716350523555119579806188358020234661163461299863995951761300515253227372455948126315083059254376943189501375392621213476778651998040919910254233089968146530594206738671297464490854980313893086228193872006410145524237170696048647057149298623326280078562943569206867509916002602912833938249000548356596778070524927714231271200037109623911158394589160596884322995385384390201871020317006572957677997277115135196809071780824927101439980608686071585519133144039703229676771714951695420530065508998051767249507737933672565229988523786491053279397666363535886853448244883787595509917759196332901736439381129844090730114731526748598112530745153769670087101481369682299510770287899294580051518918253670967683465779176634093243945937123002698527044300375950500638753707050596983168841417669313976832946055879787382121018733131062420790857191319820388031023979363738262863081673163064781870601835813042033296406002757839587880418692816744075892153668929398193300517003847957904514100502186738186498812099570023218771546477092441575953564795118156938266825281523834479230053266740807091214851944183964981197291341338453340122986467418395917295317063328207326811465946981244242504528987260111873360075220085158330796314891395741914676844304518524486222053844498280260425644855793166979431376963836018109247077650634836564715717366779608166061492990579505504395880669364221477229982257730887904470054735403591643500272465057814127381970029554967764463753864905832731494801141576061013179533270410021938209153097507510517598531132219213730511783858390980725638403381165666338062027710796515452967568105089631943819564818824056485445342155814511733983193316559489835530713828166384588112252536108094305077129865303251296428542976777012607326904437600177274923733083036362802963270383364383173745712952728009145927513482954326168816872329109401607399075907471441883756172234385512312984609641506510695807561708587885241501656769655838962729075385730426214130287106282584615227900848891134539578225110410261348050893433424530125092700505518520620772383079482538972308535017391376533279888682763161624928297525588862215966516845622625272421926850775917068860500263560142956862461280392493552095102576236366611426273546658976052540615533128715206089850866839722838983229059905879501299521559558822339594581072446300426149825607421083439595097045861377187599749053105372941346317927364756205410439100141480349900976901323703915953426216869541245522717071795327518143182253635933629018925460309752238291338423441918254027162017009796759146818034139180613917373655364037243083453123882424542625606270222074430540949997633923489833251948557387977689172699584800571732118797546769294697561035488800255186602757889844610208554789059847217409577940788213377349424873635272658542381544760256148702432286404123938101452019677960552671283920680633026988856838840175263329854629232895184908483429273803477780354656360702509769526319148733297096888874957293451497078350145895388510726049580824687589422414197437779927846577165254401878188311400300541539079086003881402352074393136190560245547167992777369912175443360311356338852140441695603169369964786265325400685292965414027968919331834661558202420486628435137533054700275546365495879860204272639681917466347253742796458363161816310463832155429891913310628494298441292101524084659713534451531440438635628955591119697607428851511864763052022145355278152509921578832975403516538663626907996915790925085361324236728853537772162772196450014451898471734455049834099793565736030647438301084975524550590766144921603499525041052961481043755940825271627634145863873490732702614885814038367036164538931175061762964327899465116301950694857989548019622145235552500470328514784916432836200484852443321074871470983314330846251663279017673027652996570808964323066000736247647084432643766101211352332372434601934736506571806820099088049587892343532023513990858801680688939595395990795394431746794391190220205494145770675374739005431978868748719418998884497289987699486368408096229770078928489452891561018067096329641259706240096613130897449815246148470765035708218468540965188889317533278772738581772663350853898529876769254963353929528387646060709886065621694351105735905550072792834367763687530173846354088106030271373526167715255022995788872574165424548563792562286719731958235802993869540867922583749253652614158875035018226231564608304000019523150415803984762420683730292405115520631596043626605487776854377167697938509378295852418490844518269824435356928756938034362375265750760727347825987420475085935476169681612966664191122983846290065189350548432531118657047959634079576901557369791891440752237294398264017325196423647097531013240750702629076003729628187674939601300796187325824038349379785335217446427700176853954586526894626710485490199523686528666334738867544154053729990378923797180904884188329777088843781594674492199169605043452177852656095711223832615181778453629995022335448333900777590169943816248599931536698043802596461734650092829874040400429215699996238183999432985458351877998410291621632442745173644839603905013355462299762171443597396996826063319350704833119266895442654184513410781417103662837276509994399253039555881858444326387098017209073941176734492025990731764342024974224004595342947349297801190368374300944218190635822933779951348435751357048377270156608832658224165404538355921227574926867923727257014672545396849587750917769277626303939464121384229679019202957628330864337787835105368883741893612500922513052815866056572204402235658960967494973240382609348913032519428058361657802535325933473144867181236020148174326726232889304134367335641922738130858338959288204111085163316543194025075183131266301427793124448004615160775675535603345978246995467193592711518944299826125122711160151547728477354348984455708681314631866133322364837766421087699085884410206159119707726160448131580331573030315813865744290177140668903580912413587068067589268562924097708423455464302684925497712978819639033719889268820092928247152082272851328572687589738808155372545202498002647384797816730519630259780301174731489864437486713768884199392083603620544418090988174024572948399507061181243316743342264982930364575771152123707590190574044571755745404286972566885624145393948090218160284292150959428931242536085742493078127181826802323903278386918320755760910343689310600738265209738866609226532991680926141961726329092126553383723832889619621635358523986746149225404989992815762285309585863900082548880612548556688302716899798685489993119967921970280553983592318496012113008809469058719483616578623333861978891391090553566813530162255431967245449076340605468941472943877942361147485372701278027885502843334963398768430237198197536487238039104629399337471549345313420853402712392841346556678100097266686623575580348469382726490071546198015780706938086757377484979726690861213943073722660934132447591119489039572826860346767833441557423745710712943522860046090517651853620399531936027200253231053834317568125549507761523171182334049048236039713749632109890518176726209653049665858712993998533996515130157501406231749024926775179960753279344376260761045143495401732058281501583065031106692386532966115215651983127414735594032142485135012315500478849513473917207500596612900077587204532352052633039224726773553548208346672394326252214388281697120427105223503778642727238116845190204932577351279831243141008192204776198364222613193066297312307015441311909192259669520276232199040327507067390871320557213797901543521353387359095340296924174301406612137456051515686125659083555109671413115056339827935688726422970013359040088072932871467909841111286425258466353438344466196303762382629629196640567759010092690712371395420167459727667043350461034988823746416241673302325474603259536887675099253174257040572155504174485459448408740176288678940094309863009786245228121765316772261712990442852981535087897694543174970736215478739799228516362064176047649051109487837247670014727353998864504274056253626229030222376196231406349149187619796009595775515616122872370921041670969822356139021282086045728851147495983597878464023948395665221785982672225578240871937706923956409782645927496730574633628836593976165401590460772459253606857375274823542915475225128318587789854921255147149378452881842656127645812655650025292296391480956101021337564424529786174258799197243469822941279813457727180053456086574549897328026996733372420791496034355309969367901629668449648959421851289202275723539341365442306986215045674858992282303233833778907640649694097120623524638908556908040927874167760676250390543302209139460207330571188394133180653493941623676581552176434022848666508201772141363107394225373230139237546184165810468548983858096371498498750139129825538886213903809784965138297896820032672960276805676887307944315251457727337088144886135588015814242225101175086356373580567272809947582185306285050466673230162145223054510847563046059544076187457274617026141223337480571987632663631141226697291553471200140725579865144983327800684954936591827346186031065757845211296269862320514930554331786989479870065199253019629247712226251489723252264739212315772547086631663892603259291088907658245652256493729681278438370584484614297890403992912932547615410297295179995700881613564835182219718687976846783872275754130154242672788272102198768782266537406780131745593755795292159235623594619100322790849951374493406151120762721634080499765370900989923393716459169861066717077095958329345815914952176810592421808846822832239753716062339992576882369267309147110832450045615729535671252176796617310223739606320391845045417275866414401174163275146434422850390868783205668744962825548956593620774843560117254881918044891401348346403256407627624528990325826490478155291303946886648236473158171881055480945153453876029909047238004535742518832216486889097411636590817928156498474260975940632604052198231034669382484823643260800029596792943547908506028923975135148808554617192498586024237068688291033041032370516498668489365307191273068546100950626596369814226317141444594391353141812440447811663138804709508766576134923358693999623210745903664159503988199815194677242316419965134931976614323149590951891574757184543477420322696347461157727911351818508795309758105043312714757454231696023322040351319775693009285275440357583433171448895949291936799012897085339518057788176150465863530016527594188417990704231414235115938831660278143570168959048003251893821227110571499675856076143383524254969640650979121063612269524107234362154084257176684160526292865615457299469370674412630090250628500607837272089584362613490136850917515310840041318235272758201801592039649770476827912701044496587869847036284327418201012189739184678994789155330885020182990256189239409549244775831826321049870985858997391686715976175465955016405379797470127838400304519242034613007214651767853819057664685936201510929006563942143017877936030589626519001099822699169529487574299292666020954572837024971108299627358253248316618312190857579724877273075200239236450926966219446398439124795818053128258859747500720073818571643231356369325280314536023692451638887985757036567174397524404794349628039962823384689744277943397088555223331260999327995261917638822915019859427179422713652906089559494208190958603547598957297132716961462444253780559465702285392495999131705883003095785730371772275306008264591858466326995718917666970644503613995746818087981896286985836147928205469835761235689938348843463479048727086797194060092017104089629902237680723345523327727209063820192953704889366316195051715802048073747288898299398751130915664554013689418494011621828870410826842352287695467041326767639033363041554661587866554254954284607137761107817765844821828627610792565194603336043007497070439353456033513568111765892601463021665477085644539509981333725255242020846787415860401964957857571708072561511042596870703318690582346195970950298683153363564856914427536933064507639133409555634367413159008172785972029681544971595251798163014440049175057114583536958299251962990811709190079582153282452937959783191027223784586431168742263985973016489112702269209584600626518019609897302921396650895238402811111786399424770152177423928221542951886639963602988570190594134904031833959468596309364254761179842833635440129274174859737154764467073923361921187356031277363663381449621363377349963486917469369709143090966336292591505676148990323865043308604615436576474848061780454383748501556704630407209310026706383917895233580103203277642507286372494857395311790078404750105044538664428896875350420219539667314300302573806944060478474061731514263278412052051315357292561934636715056047177191612818822697498301604483591641187161615329993826376854906738170072227275220637729267057265895719021489277944297461702923006174485405336531208154181303637522204639122169390898384256620802363963441196901957493692066192986925863942229753730694778796249048741577723397774440107682719582561338820796723511449071986665273055894319000156288716446015307921212312999735851926852927430719824440995755831808166300945235627932616420543436834951126663160842048279742780485112473683830881020645893002975045240586628958038192840250737152748328996850127799225209837030746587966621060944316399324368888284467074391715460731671280611086525150898172159260950757600399373217716244525205806622608289712002311390381697275883072221548117157448635759953437560112276569976531358398680265953435759541998484108980782597299292653114574417758345813900932180533731864795029860089236445260057632334737659735832515920484401557020060458444157817729072889415703281673784677937793506615323356302705106138998375985180553119960079776155918413643674643173427994546699489832843596791530471088609204356649643800940710237213964718115176789198695269602382983034228586153209270202666595171702792730486708294265619294293451944050837475919514289861004546972044898238062340456170331122158183537720460402441220728119793951064809698845958795064821982814980258413696829113754824753394256078184405405362194222666236713936978514325521254422689014613590486232559881510466271107123840074752741371204222405078203510245188292009466104469666832144203907788843095659595822834631462008329910479568817328191949079839006764106841822843916719754381516888967268057442799778324391967247696167716737389950297097531625001277135812374565025471514756405536710372783250027654237884396936712897610436995519809054493298528462862905989982340880127032292821346585663789841598543229392011752380157887310712255339274574346681275389370956393850175779988468210634907321430097759971243360349859788351778218832262030843358589361322642391289112618572964919459577629160363532608291335744920413838181945385834755723876437062411190659604671177399348015637609938954681378796197855250664085223005834315676818478094008919403518258550842170575628358611742844847011337962257688537946805417191178959725516153743184096740601928075092969753820854438859815884707039496363292126202787349946572841398652546256264352962311168971131305193872913693726800259521453940863911026196598670358614475424316268513663248370798637376945784305342522245157997890637068521570181609665829127378760940640359806243836660032122245664276714336082133888837025484903589943606351671923638895196405058145492692128127192910080069536164046072918181539561303716529696672452855679481392954781342911332479671220367515830074280085907443254918438500266629688115011545350953898269171849981959006095923512451357445289575786310739151519330228101889477515476263708146469900913513761105117705522305831166073569003934725442873829929048415570525867193140904876162371955012106875554566324272674491897951698884730766061578387818788339113544607914811366427212374774039157729127214166353033955409259359500475777233090114311740027197787179133032812807340720652511262615583802318291709319600278261941225468723584379060032893371446538811903004525014968111969259238791106246253004063413150948382709122722921766740534699793322258016986568826219879836862004307800513241095572056693074901394188091431363972440490671627113475948121485417344904847978934456738933473054368631928907849728773994563307308088647801320866011802889709182564056622239066237536104736168690223521873342680914724960037185153594946178284576546304952311580698577404156916674120796236055317329469471138007982482442139316418478167791978694250560551906465539048457345747363303144063268898281009419814208863324950109315353154850989883806309465323716334638155444070570337455443434140535860545860374734754225752679164977001272391773076114043711639509418528254882865013480657646749044118951877700957147572806514493924496139725089816329422363039287799534017301549165769153028092446652222098658867366453124078986542640691504017202044869700499165423768314243208198857606723172736674473020234904458226284283346764214135019258528854635515951405116606845521679853121248376347665232910239137692185140410332253230575064159129378864640462317393165302490799235437213172631370494241065383206209186531301007821878304482496610025287702580394882375606111182831475195461315822903103471385399784423345750192664505801978348634319596377416790131837566807449408167454890358172203411614202883428631114799358547710073054557944103086357707105028771239746773072009674486225163843439898119455233478562809181345031670854029211219793554737202844681578870350518790953849669492584050348202018574330707574173118844604165581015141267482238613332735027903829473662493075946934306189410689414308812658084500761801889599985572520352809392908676773112661287780108525556363061303911344054055432425554372919542749260057280580569677114971990587802764948045070887408115188698859830393590480461619431129377260607339112341613869519177229606282503071271617036070727192059801950359023572739244141322566889788861423361613182281774137968866122250770956268492122839615102008043780863805242698272976959939765898415935634526701896566733397365269105715729932376213017028114834551751782517007878443364882958479536800735716374936470682995108377525406541631430610340724118755757943726085135221642374986992785529588758159390162817767086244929760341774154670366666990072438998191021040998855156308060663512126971852643607934145474842802775392242901366999457915049602237806081618422826352493802858054109591093042479577776344883864844248418268993376907907891235773024472829955467081895309431240121345235441945166226574427501190371724886446494736128010706601038585707184082007743971526601038370643246525006433632385186090969801313530576361649792890124283987807863562097807678089705583942925184170915559334575353747595972462787641002444881037703897673609720330778323634575563598789524530220949202366616714509983354451736619265638314555541104135553856850016800821633358806880566083710555231635420962997359376629304967207238076673174884758043197122827281881508610846369817393093016217544380348404651594737794129244084410482175776055875795393753053524462736481103203318734702026011776345212866811755105135704009990716027576620125354890371518114239376369157407555446303807239178924355501222761861412674177263961047222228954932012644145687933541501481426468535138966371434305883670853661352448191711529111844938709435782251458904102099061696761481621912619881643024996781539861417405518036854475532554705058779920786384128768888557520207787576624419297817355123449214622564532286808558002861024701256720277425978963897525933351752032072327578872906367271209396127444522647507988022868005622235360134502793836331172518533846526540609591486209873046532007983340010375366842780537790773868857195085070393898718846188020794241644482107973748980516657552631038737269563260898459134303178652415221687179503391049449981754749199659848586077050683141763785327589666057841260067439896836545949632876344904985465606398701984068321890165445516834938071220472211322083639003965491236951700257533140330877991557962434719373480204015467791187535382447497922251557740173244473611711894822243902850571726216697686407018540836616584833795683829127967954332343293897737782973804806413117964606668252247226041752637437367570325943825687223574912895476496386727838610410218868311047819081602424962122145441897764323995710388431981541246938353294713728873106017643163904326077726601995598612701381121535262092352506480151085645568619725888889680346508036663314851261868901034474978494925181047873989315762849020652334599908685936948630883315159544170219483483195472328055247215371566942950083709735212356104814449511491170607531786951025722485808222064314960117341439566830524498940396256010760217561893540400466013959887796947798447112012265207806923951340542178459594875574562387696107810614185946011199933261814678814732168992041981332906721146583944057394579524088345310901082158544346204227757729032339740028152048920911556560672228225129806066109340861783487119873180982681459997527775149478160317722198498086805476965042304761001571796701785643212436014255727655925431255933384714449312945296405353504324890992184117538252003386086561620243261671426768191920406610648830698748800198524617003315749542394686301924188247463367292029673096625626837152589572862151881517955860606894684157819971127779892446684362393694211049532021925456713998540399256571801250502356672703312877342747851546135460978329450579612599572649512060262504251023203266902295925888866691628204311589641123744046746052393134607147957082370823820678001096248629288479103452129442593191802760452985741749844781773867261597350264300864125069066598479552749760981892423712164640816710479060191761722257467382874869735807745029237293940886690993857795579851481643676312858287322633518196835906244952528056240750454209869670825953583279943986585262410012703066109935440124981369224587076242235040765596004430694789451627129130516641024818747606644961636672851111596608140487883935398247567652569145875231389713721429317030761892431573957491038607919598898924881252467821240535425761446859119520573938431208486850710665282189126458893608817585032477416554108149516660919894723756226529321161461076290646840808810999840172395064131176894357758407820386818638444685165878803578648544712100320564810387443072642923417887903168653904282102097124932410990732190687088706354920874622663227284459897719127982213254813820126941581706498934081073604873375208806355207626213351215568496738020267340307723148079036562611148794603844843129821871450650662755555184353015384136925257561644286922357775070887279824604950513102064934463546348553719758748206425287434694550919121356241697379540811662404648380274212193083596467388200974282588699443499179830649308667902747543210201111327017946692586275294548668155724459461161675325475927584230814113424715800434268143826493527617867525916335735680043116606963016914822988209154006015797504135453548039540093916238816249094581420440454682010880966454809462426576140209288977155012769215519309881871695344685244789176264336007819200354054415331233720920612109522140917721222944999384800533127495660390018035509445354187155418760156506220864613732738147522673225562689994974958506220350402405349345989996277757405984233885591297461412810633846274206364721667278591477741312033727308842673438815637184621431621743236641031149265442481682152382456682856295965531908229827501786502667164403643540752916604655334415514248863775274718240189494135029485168291258724939482249741237974237292186809832082762281914842064268735682399893647361525942543289719350387943822226456843802996319562161384144336457135453614265372919881858408141482952527178376157267553191344127015272560158440312238128112367058392282181305683706158903030823471846220937593889754666843017638541281625250307683920213685752924125539084865651122310997260475002029670836637503324477865246149200113673928253510472107870693263387758728597008976104941650495079638365980235752293200445356009449397265747829549562354918599650036634136376243142298659450917131036553509041295473573375788832409688718971609801609453779964674446958402936249756292913277821611118474293478667932975094726994735949015937735810757651372151402532485606677056422915787411830801758033463437513500773452935646143856486685512583062690714088690825485560839152263338549839196299711523171012267249794703581962552944842493152116499817184261440111754788483949050188136249158207413693085427232576985677396270467977052009919411847301784119408166792258577841974012662519378373818267167042429084308317033168209245866994609181790103679265433455748458795877261554968384548755947484659511938297161952073913234021881005339174799312468131980283213865567219438114719754285087136766531253081553674707137713329658026115688793278250670424563448652913789109345547885789929288447099905131819071412203028885647341536871068846757950097193484879982136567267655834463319714005683704577554350150692525215585944318322032487912619608233357651255075884864334456230612588825620071945192026585643133952181804416832688407595100792653762766568507486537199354093859269861265909929609396167156584309459083267514855275672158658994392792315221267624228176765278227856992608498492644871549684892483096432332678145562935039801442236156831856597886641334419590449920102442598754991294607278803801596940796577797462963668903949495361890734307771679964139446737569064592309640777323996156412190556625137132344166333344266371419084737102849733045135007687576204686301253959687700964294466943031575757238301021149654339217668902071600075897505950009899034194354769777557291387273665422589821174762076682882029087700137433043908260215895338212161341874360120530833502259703727751813374045490295823870027906777101352966212727050591722359455324701630930118176734668228571163857357432480170986038391700332303516837873632946047616924003181052898636764832750372565659292109418061042788740998676879240596894082596391883379015238419461094913173557421068416156527258396749417558113576671803274936795185624124796365748835633107736723967472423752324112946500663702638619285781874785510602131963959249341649368226300857812015508416196537076163283226412898768780724412926579707693071020878612036461938085913670200515135271197547818157821421217767425614881416634085187329914190117097555310684474315688935123484173003097335544052310832675983784419397593911848369634347629334524075037599264915810126097319655678266354161771037371198311286171339876615422884277951290697572439680102635391500610869377089259117532898481990837606162661474232703159238181894224647981126522943093259636997301906164511829142214088998401625392660943895997101858838220561180261319033705680055670106159128745969874501176346622192870239523344574322111998656612176311535031526804219652517750124755845707020559559446747907850065378525540262049067107536780209747833043618277833688087011538012008963759712251908103519737408140045173688998976807552621883505687721980151342942802831345948670327745280238674559589812969639714397664398101073684355148387356501006866543309625137626102091259711222241338484603042192724431909236027834558947016437097600071467965419195537859763710476559825997950074269223502240154426804178541871551302957069784885807373060359202032385737103396988565493592579815379826620263750372486516657342081011077328667141231529525584856501228010991815706388188739640331407525990667338841772928630595180590758057805274923090926960631758821104099293784527394229121307218481971843476389249721189827218416814863165044410519969900232403718321551971387820593366661812379531160818280706728182542075880651599078413863339010265116081905033055999775484056773695927394257584761609689592659286955078564612456440243331735133525197789082510164577233422157096994944060950287419341907533664946614976608337229601907559177725317530095946882235336614751425361356543617375090254804213655372497523282246506929847122655404079499806029794461143724227670733260984133606746073848528061966929817808346028768535085449082031187861542297080128686106824505767093402839462260464727848342504297751809216680185564231826054457163334540706864007938824941983889358912455235708596808741298648680630113807946804797849601734024661816612810924058023924835450191626924684376124981080021760201682355941037679808389932081871030503235150779827129413217653389467284129279972072569830224152641631475889047081542018542914733288124990552079153011986790877973878611910507923507402128695644573830503451930544009595721634430185897507147961314548176655279746060104632999828918325726798912977429153223351069682011984270914918421956699900223980722825087173038229018034256135908484607515062719249397037665869179716152696221357459375898755615357740501268889166405008342383201136730570171940816622120250765808837249181949018940440830535295842160740629245610179119373413223059778057355839236636913510110508580790322098000076010296633343739884057906087724616247720691884586692508678214125786863831464109066120895939723818013410561338400075757754172844965280670760113579629606781548189997662977797912909780903581740568225768027070360781997693321730314040723798948139359243534013071641347899968111322708000431612225589541730493008045307736091348968776961532107591715355779260263125997630530120636323583270361132382599062897655528622231877705827351804933624996008587225855389272215008400128673424793471053469153472357426445170895775223399800005442130323271898011708666670112833526741830593834373938068920576412009520844474777607276881300724153397219299267409728001014935545963979766939306311136891732445423008722128762270629096037157244198638538801475448965845198904350307865324471982227261227130641158258806363603255018964931874003631417706024848054861698649732191776890975941890603045671316892335282271506363402417035270332294433323060491131885642387520121398066395545656354986602676452777781921489919849261815496049130553716807897317486691077471747870388688731091793684095586096574033194682974687343070435874597014366760785343359525987193745022758817936183064588265326800189138685643367821114498113689426473594722178608640326228474437234242056283803835806227444972605510128863572265279979163829718811105826088954313053951530480661602254991823527118966780344922621052517821725736649623256458423248884779436739410089082896455567848806152398609222712262677727198517963223769111149455976076860624065246971843982350832999114569529857607946936164785065257721577998178827951259133629207889943805532051550508995717014303389605004953671802946717319538001206291727740322868024002117404512840343469951967581944494699659548560057763403273717962178356926366945444277834679157004869862947022456866212292138555177103388404992665245427255962330253292940612015614040381346288506440149159036840644072237214532391495915439019444164259241210177896163920123170347219021201733975246812048369743946194042447632152041541312786500850442867913048034065826438152200959249836772988756579267458709864398175117651312247720367908568955518983570171504485386275147542950194170256865992417991186519724494470385864694773823427743238175580672602594400796178108591201409599209450911798989515342680039782030499135965688056683026793831937839955945376889109542731457103522276259281254143950843279565179373296477866478072297938011681308432995367932360229955065148079880505090699990135381376466878024714711732672333022878656177534972831186308068298741496898636867055368577407814105404691876852036844097471748546782661589610813302764750333813386124065498173737196057706083321281731840605016544276042883706398734070932448665475120493908360662394208628383710258785655392173364408735094791140479827534399642604777382653605262750235529170927732717488952914508336670673985992461649550910072722786211849519616728111993063376743299085244828482303370005302757960435041487564626099715930075933593653147236047265502715220615054536555451349488999747664811494158954744933688603298311646431460461674268535817099811864795912107465005074381169482527341431003260966949901420452302034216943122322884601626506917581685182139375244822673208547646955929082986557994310276496585727046256527551775497176634983640923252666504179030108847515276737758929234145954030708896810733681266298427812946910622933558407814172965570125025984467895625039408841552126199588619626224887926322282724453667668383097017102109190906940124134960728047297529277279889819861968948872863207365008976141279023434056033762074960336061826536159050638876392431583916537646074436605263605542552949909226550226155968993191914628619647645018477213374418061916329361707324724710624837551423931879688440606263454699114755703458631257343942439703727357567457853947220146399077720293927685337333648254197228524679830008980758287228099213573596662606411002812042015928328764526420635753899587379207397040741507805648221879168413268471699770586917008129101505263635207509515033140010361835318277179444179692353984060485360002694736544040415075565689531790098641790627791756021372482607686839811828109349313464934302374142772763516646500418322396289717168448300137288627081731406504882469504308142296446031321256996273785909005711108273368970888938049324985948049869448051862275239880616106387306095024134816281771593334817930525552903189153493596972821929683078935036659863450713468996827048045310264788818870323728744960453496751455692460663355817258469701110078054931612593873564994134994354337782771209767704831706887508155702798248204924274203644118141206427384231071777150790407666151631262972854571850836031918403925103917592343661705813611671934202600504112199577387996471749453647148244727549412724369132001529370682795227607836409847113098970198594054659740299403888470391076287316060337540711306802333345281547194785948593528255969937292742154214797853908735010509639662102140143567987517076498135077463026533351468467129383480443048610070243357604981823262931987193589074940257263244751386971099587219270802912794868783836770436271675142304648709482752840457429681947427736061349084483818845288272248343017156427939109739307417139092150166692430908025810736454719554091177562505044889902368450496727199514962052772432217284598628670306920800950630003440786683404512306941267659061221492680676348251770161061762317198541600397199576058133158101956375464870593035606525276681919082995159416160132987820680520954194318225351514389207771426943496589585305412362109668261881075288686800286740420049803883291294655035339032631229795534808764649862155240917770853194999935256984674654085110930555888961628258891368892356452843663507305720795339261394108059440800746502402075106331348420865727861563706928083846325239082100435874655411895268013033874935131432332029329415946986668760158006153086689759590795849690853309566738190540367542774692480916105422030343378506348115415056157262406788082747829914087579804048622226118639867023817225311129559369185370756647450172076354366854778175812036144136657014012941526267518450607097929814068498694957181246628907272227350137799234532690308489558893791620015507604740169100914861338642627230877182928731893443851962407234582270789912569632737851079999095562901414068760157343687960309159403030780175132856448745155260346473510470603438183580810870085759317083553503256071161007501218662907087351391718995437342874800052825447269493018141470520256347756901382616970330248127618366539429256636121104856987005870943420258813276156607383184312586393705640903267966396987045915032736726815901012213927026024600946612401259683800018003424546752015704674074137811587217223111853382947554558951806019197966118354792868911625088225955076730882773546220004873616079699626133399960521874625497977153000846888971555746421683530434568703182113466999981763428281805723290816359498228321016949191023274860178677719550899842195925203361927010445246643627841312991217903290754272307980458065668769366612670335139413182948197377217342129749878002707047380496497478908081088932397096957044594765722579155094035238956679085680429834322182049843825208484774999918999470536293543684060088458792880368119414538772644769761645343465058591878457757298647565488560497627982181807847992476699825852996339964851080325637203561177072887705279011048631036353480672619141517054345015646297828532300271099510907243603228118224703331315199399253995699860683140393093337145171145323232575574457783088753145302696067816179551091144586309332061871813838052277510391856161793317426624798872077352487400118185948615693698901550737989064688661267377263885388453205419834174484852403251169840107960949436820403653115518609406730532931347562942499620223939059900102785425594244202352910186373512146337614523178657229811734367260098317268358371777575873034291658441021950173536401076913767875318736209098013151494212831270341311040887895622439882489655040772659551499625607992077634466708493786877083801511266265898192218398497579418328723084733510168080777019686400195400108152079017342185895556184258673495561132720387793917142292292174886047429622997738375770188389729903337921526959970998786191687000914201768098092033446076093693239669171747455758911921506783715102489969415003839379696090777901908693788736075678494149900128497566246868933501382012866305956470944748256033817177262134554952750071267859915436842691933238799752558841713063055045402112694866035282714245803223612338277018250036598176488012332385231315087099896828194961333960339244861258734318317772547302140144933885726699399514069674080137480613881515771126918431808200349556527051791555847027295472390291428375603951316850966902126619100756591373705497927901258459483425332849239847865567997171628983987698164544827603974720974742804929919389261877260912736345271380087789572043308374184264944526077896137941001113344523937997689123335762695091809714847045674360741938747553501960408433684485826943736122840004075647220433689201183942137325968554533240693285453084013639265413801746357664056756688465758589830961019416707488604803876605590520061298429009820403230183559511075331487923301326115859329377239457727481653999629188703557839171384414193732885991708117862272969167003213410240644042895540265801880411586011452593552035932378619124481760834737677026525426124286134587401811468654130241632252536643191474937744978896776205599496595845498335729736113294059371793909707028124527664751126624322418671645972752085650975559016488750130953816610770701356329793251119109285206283682984195920753418257009541898511748164955881825986345651566784811826543760021305348616480993455760367407909703541820348874970559060982182644873224042005741961530158711136397895575316137160790842721498329398408539414936670123383838988517593909852143826262277276888290533207463924160753005702661150669032109748558912330838330460530705534634455742362114527927937851699721592817806860755150767140748412234100546539970989230158159136838108843860483331334585919343553301910305225917515786638919488881765022845152006208839076633642901372628971655638191391450351857204682739763625281695134143538348259945230898496310358930332410216979702170022061373354269466503999857089201757712976369338470542082741719721598019618781782762826988022413223507049390645172820866536417351627830782599112801667870306742695553186540845543680823268295257543887399171066884672535505541351167673213649760044646906931046059202498644439865382208359039058178284477702262421782084115113275412919932580519435951594430340799274916673674242673556140663208493750935962091803890338554053467784183916768016320306150863955919697123960241625900602546727247261256515012990792120292534911665902532035213655753876712387893676811541255774992222605870239996683998575002731239319594654961203502530041113006270719096272055969212665782575941546502358999080316922941489013509081441281981297589397909010771469350769189712021612399277255075497340890332648622403500259783429462858064973833041394738015580758632484781673824143324907635022534903180626327074760325637658031917671935456266346419731772450962362569723797872913603905291938923655015084648900047916242299394351381396384723757922944409474925838247680015424869572011514078183277324147668503787823077104260291686821872683413150131723702819811533775207809981828731940797051645507502336754088817484292403480628112840101710372831417344861593016072194377787145799215871283953469044633911209204866522252747566267819235306856123748337974657698431149429461424506101525651355230737378975005355813952086287328700937433498975786552819275280571325250376110245235044441323881671759653721556649456279617240475362769900409402214768532042170720892132669280653974523670439051064700526919796801335796582192994448810103619369158953055163356159737535482176211522011989465486582974125350544235158494632426971522683171860955571621279393876362006542747603605265444212437704556797058240408200083646394613448136386380783437458068774220207129865052318770200160304563480344014118567048753327144256609509320809019468785954054931402393704397366365936012615220093577937142436225441723103210426784711393054929177957803629417353910292487404029397961226989480352892631744108132059645590861361951384018145292865527087009330486662892684319999992778948341470672353834681704340157760891252577296834918341622702412149932623727386807433847919947103200778493496029674943936240517374919436734670868796285009236284641776817041255450858569178862668162096732033115447961211132361630832055281383813930816847066821925448176564111271125302350704775545037297509653960252646471244531297853729493467056921233568313218915916739453840178350425729301946492901562645235504830480643845667468758376712200413599343560239707640095834914714332029307002055208801858535640125739192533506982435654836953325064501285220617034410645565640093815479588962166300728221954525834392676585170108280166483099598779167523654467506268594480485473530060201343725666450945162566492885892841035183982481530288712627781408554809179586841522355742901632423284283230836519750793021763670830464127033765568396985126601314027170614090990236391689745369088091880449919734702874445368999980657740665318690277320622402617333697075369769565172956266803630515184798164663471410960985299710076528867447734794325473831879135602120780405974782987493822305539005018406521158541582890096827827197595129612987319769361911348480038475881811227435632178677354058191671381379892029946742486924579404842038845679125460153390103812417456141975201781742910314710988372773153800246203780652138106754254176402816918060501515024826546131553307863838587870609986599969184656806935268577849633656721973692168459410533257926531931042069601243811278152845125105895006670187083862635598482160363926406075185758821192332248113449729293488372187631661889718606416202956824018248302655233869094056407543208544704097671984150561461970629515803992451041574146748251828152997168024445399415585359648733813410280949425089481867757451953061639577067388134194989278432256106541468615295929783096829691063764352220167480900520718314016095869972889981905247844756522315985059865319548308655114806592058431326378238564973544907759327424756038083356144635751009318400581504987520621370060379813467866418632105289582229219956752865632314742892687220924125494292274236527969162028921537632733073115217535576115825164959012109919014407812975552400146339560810062775302713231855498769543928550752017429159662149736516564598743296632649542421508777100367526114091731571572323170819134934802104970774545608149944084812699994440879756101825816207834602222500539791005931658633154804325663930799743313723335828667699465590804346078415622628546703564354399696219929199044375105285943065516107780102660554935235593588662397926063616118225470351735275895335487256248840448950093243606556506773272494587196126086920777793943799964362880980245650800276028477888047769652732304344771436914192049605907875776849088688919384189686121890883279532323465455945978004043487397504397082385789931846402540432377994775276778971978867387688081504925152370551062791190254806161632368187683641656279410172212960288602561117378542532628574861344608594163193080814327980417239989205222024733544697823202275360366912520749154414277310143051678021112800553034827832180383916869555322466725635972174653086678263902944250927934345179368952788424895986278522185874098543113908294379769604816484739418386938756785656296726359450907405198203976308042425376795488869767202101164104865179672338330082456019897358828255282605009302662507652080963799572398459624061607015236107827749604306308323772531068513408391112800783696596800391277477731380098106876494471403254071777974338492902940147552918278443530960877467013550715998454478103508265524788530047386823558811872666707110390182529926381272807508351132226645066425676337144948368984864524169621731120128271391089984287590538485734054012928442387430574957313739526349479284661596951621637104410611272359958832177375294897825214000264384830972406130661152625030493481869019173464595904021325096404719093833855019743972211350407726087597277854088159487058867552774875507935480708471956008955964849257175128185659724090791066160263987754728833656881297728237851017678673758298645412505968822463933899172203831952985476514779591003291538535276471117444810799455781030999558287299639546988733526900448993399071939666827649358760180486449275612940529900366963188077359150124718594056885338788746091182626599457662067940923537889292937354877779023939234719025108402129015579995587257129187008898950398388049086608818749693211220411293003427311721735662726940624636875229106235444396176278922654390279620949281415311348817781977908082380429746684019915161894234304916513290914196778322901484778388574867077449205244593393964912316313450761776408108157495479767856280698365039393815078450528463994833187773679031087961761662249983078033656570371567151835409014678575128784824996422383521341916899932886797292252432636652031998332631075234699025125306846120165842000594360112973258022780690022361693406604259910116843115769749366554254880094963809710965788846808351476913098042752290161673528883223403002382625070426161573822933282236296363026178825562366572286877468788091428259535799088021309716492382929827944208270309018044286829904428460538491516340141892454905551058917482475442620935832336607152701315270831903530742866037022093895016599952358755513897172280155694590524615812067436025269368321147590215733941560840188354795445409439667989182993106734913673904425149200082665754839063693220446707818464642024318378948027587301175200551733751417153741213411234630156108397746702771229906981506396407325410000737435332877454594761544676271626479716418030459748431612199081323082866097405586444672655209066722313804830535956111193433165541022977809586130142237825880454199448546873989199878182722888219918244207046747814702157541953680989959957247096957333953220063821239180603770569419800660802328643198888647916866406465704696562559286774353483358408505991721532274659450074519091648058413985712800788626703151340823000202241994841691933524578475511313432194860897513042097496525980289478790160973131962692529518827061415498615277861230929284844275771878099688031655565498522519622437897666113543784909807500627512593931992925346441435363136870796811376807643681871108478789067139835222338701874049803479341853293982052400481633592592377303734272673435508760705827035127309705612858269650081992625997063056061390666205478466702464029703044114964972633386893571278819388738018806069524254290210253600986987788057937850844891028061646330618728313879887229141965796526146371244013795947792058631771123708442750738031778830611955527942356891080717416773762704704742789731523126902293397505959072336971464227115134806611490181773337723633668457238298754080060788368431446486961028960176385722982553456331744105592917072209184205217796785141420724393278148061467096823888773348541677238635326518212729683773728370187469637043207535094216392966243836155165808373258166124501797602963377996582504666230056942351148151625948916429547620856436564941243729022699174614717460587687702923958203782919880522225779547919092266608210863134879351774641035074104830803247599925679110225450690561807798481801828746926134293470646071511398038184249740661999295971742613481336200438997035304433765975379823493518003771776915743805717645860565172081925458519312609194391896375994845374908514789259387017984618059562681496537860832558439495788888133354394840294479123754129266058047881398945952076535064150865889270928495711463830256815167954203874482605892572787452596015681360438687274627097930076030137647823731839466800731738460414104185984681410072553277642825125843645040991888826051648768005693800112030387138448005921076343503909802753163823436564298730412578783197287839812354365935838525926784653766083512151338023013392067036830714616745184566400686350047252023315406109759046572132088638746188063526759537268051428154225187553515732637222283746035225766046562833690610543196799034375533967998466113778223039447804721456788862692741715094196509826771900987123096564691655798001011823713086984064125512896323404076895676342516744401413705692362371415588055896654780080400215580232665354151262870582930330827634338524011230985369566137636155219297099119006979687941891954825666006539662038534687312578361119355966377751308774825060186525431989067060553129179404757912157598428613998896431739735503278497450410464597599773249304913402365628210316593149970861097898528757806357049895802930521970076932322376227419288464435785319119632162214925232536924305938093210987732066131982817192317507029078624709338408109288999926639439841989186963228919912755293679919514858603856380663530836768325614082916298141097582644376964382983585281879018054211960824561881647620832247759421360812728949293035489621324054464679092136739847144044312846478263719758069549958423513361905804022745459473040289688549308716962773968685014341990983708819238010129002028840231369510391161751837363786476449103927556121018663792378457509126247709644182889762696347160094449822714581686352253412330563161942850827070598926123889528764035691406288121846918886677119875510569124950514073405664856893010304363315718144724873332581733323058271095633162873171905617784555954483634558099030971133803367778858433960289775345012253803815042215737257628242570489373614654234436665636085078275242138761136484289019772603958412062446549302191632233399700823305528039529611989482855025085377968466033163829696772550025539199099848270128233527457959263409965819777291455027649482851603507117718214202616509403857948779082216383595043400786186458755069181820335422071708377696478504329290767796001416682175383030426473743895239412779238292769380761108470382068733552270765296474267926846506248580734269248123352847539119340346176245856739897354244081661149606567980044013599757520610497147332629931509811028421861190585385834899462384873628740969214018172087932125813572171806043027968065371868934861586736171508159884572895512872442391832174731487044168424924187265128219136104947698611822826440577028453845304867215411888525818703492768151089266158731997530478785957866865717533138196958024904112469048554527706605044706172177917246624495086586378469950734152313502123725798664998007435770109436838694545203173513686910618471753751288377778649725731999787620018460554068842957911920821234142304726361781839017036867447138023829264594666309853722792418876207248918768790177151105911613403892734574947662622688703822214236868939700467208172891302396609321737442137778982409111844545099388524363511122566180732889650428520991694841593656408432854347213246385153585780876984505382862404985744928273662151518263442440821550272103819652695274521866761018064125106299319601055966075596613449677019466138182333044753533162344039465256478576119653162109646108594531583553878507943283697287587548822735076758136961978462784983416929638715241239204039087213495477043715507502651765461321575976800658550776580637677514411690180855910633655090800547105092722857008690021810140775027294383994749284589247001644857184225934598704056669064037934080574736191281534542826684982803424284674459386754461049338870836998462684055803277477564322213008075216353372379834543456755580449763645125851864320151433505374079513591504839357863410922968763566495482232327022116979402458145877860132888054893612537493885221903832787360369854340888999178370407532963066376059070485272770115350127670853139379799701369894480203740601680640917397162976624685776748003265931995275831937832502909724649887499610511173974048393436231744660259387578796713881317004389451502211869562825357519292994386674596774348567530753177996809961698706225056755983376626070872208233102375706153134157835350188432407968673129696185577706153115393838880789210901331334302481170698244442661040379218219879425874763544768357812129490430904669376374062849768971153568304540708441146766198877692213682502930138808894515545624573428802141565793434891310337296905853066963342459863757948758816593696947382238894005891978705495764915157217398217721711856598728345222903328862955230108138713877856914075091311225081070397018816627990681683685054537057620556935813667634092726213678500824701034851967347233654166848087132116510643795871862644164504958265491593028516751829326741428024178589180590130462782886550197397635847462224971398471882075220505342857982827420398106274492837222907980922999527756919354762327512924138329887706229243541457651692764287964720797478145216936338932381016843221325072227699613184747553051322899919460521314604577953548668730925636169778602930397982831230632075806204326560613779772122004989811987574531732225261798116545985544755561609118852396843737613530198602478512820419875902670771970639257259525303469360226825955724122548267531563565729630542675660443457105280399663901492107789070785641544799825630072416953371132984098674999347499602430186212728436918493057661799926020673016487581369657751784254218013815975976970206940991636092854340401990725060503854458574547612773802762282946996957925329816344424780566260108137673054769740865038001835015418370938811792497883849664652012099152457250879071077520183631238479998531880485428209206365683511010184251370888826723840551226630301291143958018571666394270143378864497792384400815740817023402651542866557289949878403227926885102922681645893673643503266930055023558451143165519904986784275931804655658847418234262992171635944844820994838205506135672875654691149181891343827868191112792556336766807207946469328189753910924098523029210671983254112010824631842455392110694959840251774305051763822897631588838160260620232422136221318298189980899558830184915909821547079133215291864054994939809039142785390163824066972163186026938451620086835616029591313167940673147770256315289124813733749427674098804740676012245327472847086394417842603639651676561440720659550740942050102330386306330618567668237044757835785735307231842223274207885378857843329438759123770090449024629064640040105700599899730369067632391014415303415404327449858392997819800619345352451311999163206833884117189346452043799825285980926632218106572441260443567983499179331978952443699674122917965379310313005893844037451542111217312611548733491763943613455655050019846898972609623330068921905354559361676649495670321122882653879515269207248339363784933529664528320285570084231970701206739097577891330117675782267156327277976555592396026390361621822628254126747047568930039161060718474413992435171292302818061852093071374971421628306827165083487958342067076365337171271610418428070898490930331935973914318926432764989671362785518026972453571525125459191890216272322927247191616300523997873786239727998205172745695243616387203688969119841528128042772595349956999052559629926223887454983596008082309531201321740486893900344445693778117758835551149541811979962064683632914967438988006360946882728826965238483205960389016323076545050166740646739072292281819598982505200624144161057128136648990916810530513786130395414586857935569669863971514679520478788232669463071770925784737789986164730522472773910795529074850435565454079701323215719642093009809231001847389971499602167068140750004827161830001464621633435902441671811938493527059856407930865586301418293360374293078509102503801491652972499084620510779487883796232166563467484439344514614523400261492711593235069651222658450765988062886597240183687590899516841050560318535109909684174112140393080210037846147486687003430084815290384560789125868781146204647858689195968273658331945460341947031916018251525009734052901682879990807640725899007147041581868784792058864366864277080248259554347750657581381673164654019542473187560215051652433156879363362297900770434620270149629269107920469817784735026622174225834204602198029781490189290958103576462546750613974168780234073271561971042889528363477451474693615611247985582511075062310491901113408105213869996616229158284863549337102477334719539293053442248896087004217576288376575784069364509723528709716123333385155429306887122403683383021530404704318246831278699938674401282026185275072351857018523076744296403317390196291060105524580276616789794104334715463577484946460810265620577423101326687456675696178802003047103561605692808664480337107102101236062690102456469048729184922084123522037848222128327454585123690216034865633691534969927735287426945198315667538763450810611329980920300755792371754195714721973079902169573495872033975793761107191393147519577645357644714897291042285860174957579682435669194923209764886859808400249262697451505122163762689941385007592526822917879456790522106598581594942186361809452970237258216200213420789906655710807290750518216755340687491950322993303824353050870304614167891865717105894550023645377170465560015093005512301744905057415338168009511328636006646159910112057402994998346176941916823484965299650180315103003495677414201116713595059562999468265620486828917806579965922364633499508537927811465919204081055718834201690995971795462672548064786659612975679243305798818602543752091363518747291690518221419320978399264366209695256967428220335296963211753155147487747473704057341734556724013145837929601496199400826774262285651951843125558446615719627529611683109199852087308319714756461773691398083501116055141418832884468741620525782934974898069971983784837304927145319696311625508984610120880216753039690341941335888543590984070227868624195897306146654115439135801995220440988254939234376092204788202313571645778141745833907623500213543109999751859747109318737489887321008370041531371563672604461656594345648753054177728917603249319469860063348912982269363428219615864496209850616931289104543528145565339205819372592448798298511560023541810379987969230897074994660083816302247012795209225700808292668301446763254245951798033925175783639984713188307212153376457236223978717064283771680576241961426545306224544804556187736802773109743409015310105651136588317856383562752927939216903155253625496592742033660113592926066167115425594692799815801664548900398457656307520024164975726564040364082389053088017663238744131218706229299950367818005819685322768861257719797272184622123070931066093083429099067287581969202945015813237300369451816699807632961682218894628253803668810729344473887718761688366740054440655032619580004630051948977415264513156871780877300181221255634708233797020506313512021404307271961888426550692982102071118052320110130957399882514716166119488258958790868150003943856681882058307871019687317553762848868021485045407116068622519935340771790401237182359107517335507754143777424613441049655167080753582017998020459799033355582609192599390581914406107858053935838144348709534084182513905021678269412983876745582338244409821645101421916612163684241012659072621762027705736958542312814035905155540141939133835676132206826002151846393606317927933403796984798611239116789566749812786309610898810299572215876862091796915906235779870535557364604982004251361374023884793083743820208937053441580032183084727859874803586303394825520245352382068520174178443928313582815350696665233819259916063009199845239670452125408449840302433809467914251832123534549926938776719714822345631431511103416632063175523730439261999409522749687518835203559242369747742267000323882107192558791602540788317321855968379892413041572242994612160692905346887531426376149221678414419396088129419642239900474569436320708049842893737837541805549654819191667483001485599828868296003226529756080017085366058394244624410519131019270521287817365504294009878023148318433256781565114701961022271896474148777654431956456733449888956000812307256184419459482434389575509515957186064211843128014321411685742967674733479449778134734579691131620308364701977881614436519778170753182953337807604619940437281991343339426434040571414980313915867882940719687708724891310485375581384683331244744041142060789658100768339152986163385167263587025770157613378049171862061733501256641940552339099777410653631257697632685249392158065586778093814708943940657626807428778830566550739940138816427857773621540670962327793811877136995673581604799123086879925160316034927786946895302632754710161509732231208748618691333166076945741408357123125239914566693173742350253865997460357890671475619817009708495933430627286661615948410980681734064279333457592205967686977110991060117836850519509781986173247044583203007853510224591241235422499485701721595514240584880784918983662352471814883183118622454079638213213790572281588423616051363497169441812703158823655316954891422701649222630417580057018778485963496582322709270694233602300244878743902589189111246155778466969196173300730093302462500504160659793478143753147577075262803661947239599397659803593977678611939291455852830684385634540014391349862484317517508969150192808378990907616243526574687161437501109183029361686886254069217063190207386597937287760355466745140403317448696457612261486831487580534820147647211073000763560162454846847035865204912634195427422805994564941839933273656837084673847800938070035663815294036284208055472614196656844690274664524840650724260328274649660612771885802100173883280520953063694396692945369612359557194689753158085136124631873296816714999426885147995174873546783368575379849582245147654942840617855131730637520037036111413281019844914262320492882364334460376396724039181199175425001234408943975841179896414952086393175931465686768785523079005174696407323960720138940954101739816742729149386729058283836029057876357793657231104210729914038149970405202846362038291591968703621772337198027385807279808658856283678248736744535461390455111728448517316786614016561947251364234039900795161981324159191755002635647446271004688351505000523610534141979901847609204752518548127805604211668806457674258347336147122301702244317076713929206108718693586789070013809873022963993047024039378055175170276939046246473741730148863004201391953966276028385747272723503737282025884900675593609491282730824873622797644492120505715436498645687292623780257622525068772323172124269146051557698855651633034894092443726268000321982327437999015510430308732467654747795888647592115757549074656023230153652773303103517309354948354681501741756617760138874696360993338673096113241915742533184071774750297349001279620286252667334789014392979379834085235175227933790889056036086753368627722442825208454524347479852825065942843984085575557677439874748367132217716642048274353148231207022254526294162219252185761703143517621049993038167842583922358100198537474913236940830463729210226913751508427479286754303426560162701591744076261907824064158584144915552559150056083158872338846130895393179286802474290537977632638337356249292626300521767859796063545327660488283544412969331612854244115340158103312380612960838334961170005815755562942323537864366876049198476006140709141475467152338299442038322307558632473116136884101956716505162387320440532108275885318256533770075341055612903503381451346957940920766030872716673032411605607159587585357930306061757275191036554457237218409736257939275372721589304330672199329343754113962124184018814966064008731969446294535584626984807850182116296242864620015307466374723024650144092490104591267533422188442649939789603969310975046786471530259005480598113758217034192568703017328247084482189706037695010722548603732047128567410004466709018054159020545414868316390200809359980135749695083318325182257119196755393427417449642956304762570516844435340413079683699988296513606365092630696780984684832044442233794669534680704551000215445673429645049638994743785207500283195277596677657753180752107084971139587435469950160333429110192716139657456350481823385508887623570279381545385995441805671203586501610386640136753287063235068207273338015199380290888543851078899228115123401933785670917580516788279366773320498319984696713944150041271174597710936248226824922658229233390062555592104829786924447601891963632611390501738476489304256488095893848957684827905843916084864969937759133703972382147142509601801733819380358939374563648197254640067065418308322903884893607820422967480919131748537407698261217246255082035918142465827147282524177912194453161252954130966977342969387189974926491024430000646589497373197026337974789997058814311393849388577338162577759770565862676255363166468418715355078229583650797997547867103185458128783319936148748277300045833777896082403529442544118002577798548442187870542476283009571082299979103335704585612153258578558496418965150729275817415621320971444834386441175246954242928827826484363377104756793462769494483934750937954826950176798328555024436062106669029691488347355077395283401737231449395708302864295064926278604885104875734281195890841178728795259211701390303647713978769879812568705083834946189904636009067014926379059381098488091519693621899005543169539759798956451088697434923182074010588975906503285912630387581829353280613816639868217256548424287901082707956846378555429125801522299587197770694570963405607572236479069801284441767485743277950138897324884709202539575457977503639042938004093330147913785063505811321520030091502322898692944624840844914185468130848290778506348149008040391428437809170875545215552746276244647999523491008913893781313118519736601964564735813318345974179620689955072653383529258614580072904505555021939728922173560518588535406933220332967009953927923085261195694150910128037728383712040909649475614610382697333566434702742847212130563422606897180996846410642730212667730042841359425676697618303618270999757896912926877725526828612202855267259420127421827305403705075365364222428110650403996677965117043896999315262276452868905416265459676619487474416047037978471268589175281809024339761178633877430631035080998928845467692349590990554361854309369985478536392058079008037506145432488137118806734407025102836586852387656333541823498459779967663346142060687540074605312958286910891878794992606880611188153620013745845367642592477071419568315589394120841846042652112332158746018351176875023470966053593981552400792765591197895877742527781429390005866482021160838066648780753762976035611012329354210666111406088041825908077028561345179006640786867981269268488242094322939328164719801615692630677661657080839229530823404418960362901259377405230356988521741619397788607019133947296472700900711720909669048055400729065940722627675387723945824841665872414750154076423122988885803828601745713268925805229207106194670563470992007710628046920853413958505160818162292297745749266311843530948196832116173925740762936213669186222508247599977318413519941970497562917787029123871653613388541834271089039524322214290384033186424593911881113882745033960161582742308666226750462094099610929298337223305136183826240590568876182143502059766900288788861938258291888101871074679480659401027352961545938327175843812680348953433502825221597751171007199790877647906080165942386531855003924736909173501830466239018401539280137154335483099435516149502551235734203400906927819987097738038724281008531679734170334960333929706477976403259033841808395545400327751707434072422287104177325276798133425338624283508996083702487347257744195591811150596892811905196101536906860440369946763449679942961635830090476272526367250791208424462521719631001952619867999919591747328118836400793450760350780195301277091800577092919861727929167991173979960281639516456635548488113833232612786554228542997622115473356643778672776111808844779712859283720623492064845728294741022246850032649511553052652099436751587275742850912455629732905815426097932457074448204449969754392630301048437507976035704841289483214906008995370488007382891002087484497455714296039053050922769495214091347604105535073098249169615229221207008953450694549310671151574154395620067122382512303138297083232188357924772321687754411579672555439081658412964186469275156344712544519364714346755510265683014994339868761497686369386802086569547959639523307132202975933922621158022997265352753751201517911301145650806411438625073620260860657060777826205738422963779960352655813402056250024851254605593213778354951673031981670657815776389367842883907317036535896857394164394556238453279929590476066867276706496266242722421664498386816990908931132346336430128150399812604219721358121314667882003666109733223850123189637116269557618823045881389470844778646901703229626956250918512623612930911637493179597524969269784371534394744554987993502436657871065404599556560450567370578131065624344329759501043286591625995235215697508509975541060016378328679991166371726812910616700080918814011040035708091731125655904353558546537195491238260030983368681644574945245533413295322921311336284608552031975006020416899398138207935206412168886803551443520452779612339921407400877192340191123103268132924759383460257087155197358883250160126769322310467435246313585002253116879985349473571288705913888549144641830190957149120850597502720990129955547833295174388799884556700392933454613457542170267358752048136631776410799184496615073260047275765747272401066025974661884296483687575744554578288525969006453492726637495540294115341536437159213331064369699377285502819722423938158170585372031460504642542273426233934117843457212452766899967511390034390632616704572754039166489060309624448973206062144867409189424240104113348117057800493260927508875597506314471874313129443521584155893016793192730883061338640891719717880459072339612208208853874275559510911641307517446012177286147977463948272909176010510674388946631482638883632850139828666896296739102300336949499706573899355276434945021426255462152782995505790951119104898589008579441407572716532590852191209941709612264842787531115276072131001603676658981467320513170409410296989785051065852769485058054936259327328641153942617764868172892738560778670025156060307586655710172839671981976264888706544262839310430245003596674932496040172602330977366247777861319101346002204653785473327281902927727870594902167433938273329153761633917780615083578181931314338283784610261678004108986109555030303028874896539115133273794163230800835937022879202914057662224968289817997185913874015656190253861153206838253031901831712502906711540165998377265672130741108286566355031831891934289450240337069254308734700605271753491162878241205171698601786733010775683814276215473390594929307840821742621185751424518189931950915844522383878676384365382764721352913498857564744381056977791839287185574118329951246122866962995331737576019470166347819288701514355355022668302000321521751575541672628253540652221377054733729688039038203397969368867584349894663304930858027768237895899552335261517370860365376508561559123447203158186379235001757028947960448480917677422429019958430037098709342037210495499524964780697112567707874287669510548124312528857949454721772019218257272184725414717106288615654698907786576338683748117240702130226864708268151611647337762824718826120857565900561593345943562912703273845795184074737338049463045608990714595324519157759988539472308299486936896836947555910047570599438617610687886496432324248486772210277107658680895977499266101382821788499753066816335214609718000634638575861811361548857435722404777642486199305574695379757553322952302286928186612776235618593585213491083942481379407275635904226209788197456600689251977402060078496275944478303115684635031169758074743214876305425020532674570581975489324430530949400009930501477169365739710812167360884826627628056252127551528953711090890465719511071677111415721169767910391408983466762434796169108593363023575053298794553937367615581455289011052209716104033051434250781989546348625289962052193350257688157327075218831070999178468041373923942201485227219393614032448319737190490154706061252025216559591402759683465109014082298475689214221526253618785873155678860453452544732163968867852880892128338205357793549355847238853447884929211694412370671015225726991608890710873775679851401195188902274246301065382426443642550324029404170046520773739016531838155330126724981298974265600682955528687330778199175391306704395271341869786302439209554083056360211753688581644578107859976486299387615305500997320707179417756526258404025824510912844149998087482628758886608429022546835554118388458896972621569388871673867504631279312131754994451765125982161246940474417207439107962369244149536396167005867583818198438765605536845072636083897905254234648099985482888119545763531281347899184312871376096554240386275873284671675871065860490740655177332019335235017612538870665929305356507265963486466411148376626458052214987196473625160576979283588251194162428740934854743273629192209753384786871156231354541420807585036270133069174189855405363114647155577775927882967128329816563660067005595413501067102274222699304888395750581348264107655748682027015517915691930994529247459012814665530553994510286657076411833142764758656954422805347882075358126927327622889144227251872719642013175917860618012116131834986891328773343063872653579611916184342210142428904639950308294321359501902194067974216690688362845384727565222296019833085947938597695339723464184349783802824270764531954360149968402976436316062541859828462104527187924899893691521550323898305154506476814048573821384849838670526978870741090975135277941563063481344988658639812221713102903217877124180064812878758475636154435976249450923318415245932904926169703979628815483396423285788755311096065122062826023013570794255265500646985533609819292205575185538170464748306672161073410661635869193215429774665841516162277682569340146003542730840575226392596224834579554681800504991901073920465786264421420777301000163668671293934961319742606725747521888903863111458318114149522613366768559915604012835500192100051553904872518687128330774587726485146567191285867714314169542015295867570111255099028888348729253826828888856962897904736967427450352613417772475084291485323683831435762297174035943371143060959149907759039088858924824017763859957527808776272752961983252465147512493824156728668051625434187137061558001167086118122553487132733481106755879902742209245939458882772022691565435327201294083295126923448333915574199776896814531939594287318161819188989621595285556230867435951975795351668152105107130476131744514095658913657988801887069279489571019916377805283568317463771797146701448600205585136344115403885307867168710018608503719655378342543665932759475194473165967078212148723491653094179026310708345107598823186166385144919250030726417171107372804836812490405729418275409041699193477071713013580775816854272252967765535678820269670713639894469947483183416720521126380770015767745701993053234636585333754523150662632764801182126125237074388155408351857502223390671507171636945842225383403889967751775063751129145698025202874770027173247386813435099222539450935722036976085230922874924461374981435123475571289536356604260435317824777137447139571235585855037560303674756613702361516972446484737143951979274684095857301105699242946948407546356656384684094452881325669024199583354359176397185771139943982953986753766060961405052833144833178430587024298265560224278721870387864044014685850989194895840300515570135370419616170590606838759050925668130869453377107229431138524682795948127842727427729271832905467116956109855855678286823658755416655209851570059833839822475579895207924781267188817661224844480843183527251409694399741383400920003611168692214210248353255896900411440903701953872386689243550330684020100079030841127087475900049692486803544667963056399492284649817829459496598276564267896420853777059889242325862135457313651231753074654536181857279379653066396462893524807630843034651607598130976721382482475066580318359027106756994458274429976794722735409559858625047923211386846312305129552363871600843670041215319876774176715873991643375981695140761525719716164979984421599610026459653682378152724483994500357098189631833887921759715080171534009580473546632049004955630336192737912911091791656955864233835830783373535069403009939896295882707260204271334926538567329283866823903202807922262339984176279062854115008667265484290110712405678198584261515777024583838331776201037470572308904328352471814891942538149936896891360954285059881082123911678471650370576538335835340012423700813356080104512316514154858394743318968491784516311912609697780924592035667664596008210762862937808951940972753290549849917335971975700520921728534749452361056139516584932890103750936810936449837719270998866496267379488903603373369976574299546422923993256893870770294927296785712529010588557098510771800344053840905831697629704432770593371396986340703472057791910894328630399102082119249610352463273904736357111178099601927364793486781844303647517924050248434320497500615976667327154086549153671198727259070073084041973637285930793777277825414904257838909436252809458329305248639463498860368653561332857964452735405097662733111648037830344581202030168349358266241976360168523997539170879193192169349183410909197570112584712887950140776538254551334186206817145138969042360704441268690651502277693830139044798566754486623169416625378415244528913604889448986783769167943025519193290752069540988972781888281815362605428716729343968338404335577377450269096597503434280052254377333210189715619838582813294638484978476961263771332960324765739143003687085442042760461358543934357466957071958675074623140233881047228181318965972408863341718445442334834458594851059812621887277069894398068682887751136471464943141838464254452239729687999891425292464305879891326561987091555747415745304646725817626771482901123440453359519450379943473255048363187107428942919439863264121739228426313434490376760855088075321762558924770787863054677534303982430067621533602851512611700819975553692942562366879685920701330117392985162902800302437068760335151549317263653300111784412973505024713159852359961282214179403184394678299890937957039361347452807929985649609531571993699489889322767990330157737745103128260863806306592177502507636723818926983052762520568697213449064569765522540126141299049301018499499456733249471077994796417086619155158160183478370482413299487494538945444186358360013335861009898700271778948153292133196778079678050098284230201860921179522110766663787194402920826369476069954843164168576428928706653077467920795747380136165150806966790687143567021195690672487573532009246866235727492029030341750958387742373105295246765589955950400950479810320019656258998477461428310251802709341695406690756668327126611968936509759867050387389915303619516779465692049340615898458065215872753609308717985116321480929094149595200575151657317395406650477479624567143046591350930410356319577959246548580895819320236220876602010479981229054515579912801629233256766317669700141567039575597737267016618532943941048324067492335886674007722785530524801508906472856587938194408836520876891176137786013981261690257291280610527407675715405274690357746843797694561729676152524960531210407411503637553173368756461683940110845329391851599867225191463103489681457932193534298000059269640620341989841800853579265417320431197755603702259349116211773564438871243036465439800915809817117461018005793221489686256494655522355737361121531743760997614725382245750456795293530876918991288715728174580805107664505964484056548229868481180051975672859056543350571279581047509959356271731454519981228283498275647870368933812485429884198719572887150998291516534365847791776169990131444602284858327118972574896671977644808305994182232265139993822970026494238006458342824652424934864973450909499073904301705769351865944610527589397387646485897180277779063447597152959404141656051916558967613818238166398646726190929464102996098712529650889735949335313712904364333724889209590384474321513891118491456135353413487432384942150771201160126021604657321799290549184053670717035249331666186882151180456268934446840502934577221865544013160722408814981178088499551089150309327137930416289684474453163647751389556541570076430748497099575332757501817024726910370918040660476566242745485841548646838277000441970346720230321678420766631510086718091374312512634738958574342780552396716088635761367766147288773910145274276796198343796319422735108546139743254434322868455241257228132914454760581759759258046006756708164853826251591593454173778892244099526672149956177827797470107878460209383594815526562952075874030269502407566854226567159549939005360041379699192201890088438210273043802689755259603761446648614260874626422143545395834925241709845428012493123867885356377579428410018080139462829253651883753228015178927138197216937629252897609362203931345613113040882557161543353390301957367513762472585434650096853124082632322588356180950394029151923893050096847349803016485147798840814357695301681720960120603486997587248404162161079985783238144167700713863998753855575244778462957903389908444861582532939305064272631851421260253708496244159665071235932775777028086463425811633606813181734990091331219110235692021496408746997002487102640756880090778290567120927583015724013538260597334789015566538071134132551756771161696363220042312163953859769295695886695851396247226526329986643408957900639831810974270424877171670003804795839263243388883371696623870993706026914352771175368446178619352520099943273128395766252633997190234067895073732518806633160335982298782153240925279044435066065082740317719014472034146135910025512326548224452454091479583431066176535517494744947305610670722998338338505998432966786379423204252231313603411309907443066154329190365319040488502317362698569877159126132360778414835963453886632844223364796961545778811879621613031575376938852956391863760429189084494829102456436135138380279433700588822864438316656178704934235658345161472060355205718697470948366928656397452685656088536555782873905539084068151031038104062250825060358125973831592865646673087503079314641546127769715108656477327541547309929412504865352943175499755994970696164145709162304581862532161680010284550062197465489726885043958916264983702631892297923160253796783813758583348925647749760628305259146783605127061639535563268802289010289756965726669467722846938013053399248152317413691080932618862916235358702056908256247446097724789562154617317783739657321912076418828728728230475022017940467091416476371409527577278754555033696387532275970553140943224442691496251171751067942778838875893005486742248527480533097674247096481743591794721747270124569708754287584110418174814872876875335199725893665726291363483878294389643916570696901374316927641954748761693346239333316078929054381949172761594637659170231737735642112651022755035765401553968265153380039965821424342274730649162692305068907655641017192357916120904787932300282642980465243637446920964158328278125734241625322593811204550495544443970999439951728888868529590195911889849835465533069874763530871328228390303041007839134371635870143890815027629493650970664633113899210620411052222947764741975525191757100672163923488494946754212745434378429088874062300641544932607585263584069131930862453485733324050126000257424425342021378497695458769167574185529995320579630121644227246407276257972714861014450746373685974464370086885718640214325126067530528038150354816314679026413452108006186446721363350987215286142438080718517763985580853944688522537482872808645132558018457562895167662923489241073141234223133353970035648535242916663629239711425380520737842265209273589054799036586901035898166128315271382777991818985635855551370580825269213898584246103975357991346844483415979397542952070193989530639798836228403131178289130508543709554721356864001714830758826875747372287660701043268402877148862035158271476672845885918736332683820609434809184922306275736021236451089808772918550527024247055087475629712516745216081024495767933603386501696859442838597104273182480817755808061451206674773751767662850286509026225562686709058387258189829898421818071346135935496831748126888724375007348844248546952222821158927072419781312443777934106179561979177933612092840990120163069093264363163046266026972329078757610963588932347712904793213255991501097861555336427544321440104950695556227959377539114766744922974248900934718374906463737323629602634441205620106607399175523914151640021485810982757041850974216937052064564543954862562571477167812902657136088355951196516456787621063053073044735727745382054771167062284620495413448632199499960526241246804169515302699561696760352010052375925402718947065548744336543685756302327871177840649073237778069717405875916301030497981327326268408220523543687908572508120319334568728681867320185559441652063490704583253775896734112059757210893159102732990397947501739935598954202219096817149823201594046384181096053561428129126819363723258590827755627272854287892345127391916034165911249026988139450534586805954881782965302858009759621774188343892128638644220281726913007059991844388271760838455095798012583709607125738370297847826724544790682854289616059443826665530078101217148019951926993602552494058552637636186920955732645190360496817453197163531475833542013015377157895078252644102575869527352050425178134589507960525559150034960234859063500984197951124509532864181801838934701379215257764181716666708379919330500244263895485435379497147364738874471418239553158816597641675381536675610285424265746384672140731260606678335175659005981247223701564219758177567432825337099334341113165769946578335827357552690449753518578528529765036287904164043209645917952915224627019456486875182112158744694938857707949360111769160478290338958071071851391727133409502047078404496939884896845766537692828246132086306088171256253572884292334097665003910655172582811502108059053749273753059858223551762452544872028849048004757339950900590067319943770260745383221992652124599879599369250137589485358210062858964185262196742373348182535971539261648952575533674444302595484645445216624327276612870834714516013749868216673592608351146041088039154724303041573908874999501860664656859344462995384270137583653738212797402954269832240440443102241375956969543499041209386834959966529867315244900092438400444672286770576822992135352472344432512866563442605626570292625928443530952916555436881018206259641847515164852602902180665530264461272139885534291956853128708232199344329739665741583277116025154981509828310190734815767181779051537330720324769218392842308034943768709881198771953358513236705575070587541994654492332528650632762281410695791202231575721267664534896837150843494475115576434848700275516880463550881173966087906833897178467659736723897638580282287192393552392323835374233916328562249018758017804144501046339195562961501000127008729331657930636289233616354374473927069212584992436284993833475629632615248004823689320950372755486250875093303960239703693775651747075048678197714302361990924338512882760432428733282424335736737178282014748904164162063199650844419239170584881226484258462542786601321198630044070743950843738153519937481974583037671996945269909688942232248808414951486415412140726535077950313397391971582416123086222423617517427571636937380215881218467377499799787137953160962982335403603812965182020926476247195691907000024682957505590648902498820649081880610141060235211902181636543689850691576399361384665222706729561749579983441864258032343988353784633899598987537834032251599326932873216825409618818664880754552153835891964559741092524128899305380767434687769252794715188955373885550911241495215000469233188728141067490048958209185694331214544196034529748938926325571827075387778768082032903046855217968656971661511980825881342074600425195700100928543737187976936128849286025966098919461720412529831917904903773143509559041539750074340690402472148602219037177123123114082462560978445744113171392845673371259267257235099009656857760595041554826906310914537988369184443010637046753378423245131537575097347534235107898368965975293051235828962683797444143548923921976907699724014190537999708792640926825853176882317109826583681319921335687437154671696889904213195925811232327106452510224981254710139739103861305886445837601028581871667827863118302499493967215924620290066477843528180727810596749571501959416043284916479156224164669946556276371020757269190600117259835972370783974011338275239932027628606951962597515358380681618700717030464474114426848085923459334262529523848574784425201016550120542044880955269082355597013346228261671958103876419099639334260090688135049719515745560287631058646015209442947003146703240663784781468908166589006254609770757195029618925082945383580430364303044278971301811229661439033777917933341550915576313333555330200345919174847268202199008753809735605063418815950184131735544991993910296170492256824922382818269684700847709654252449529978001583357177264264509876284521427138074581557768043905207919506380818476560619934012400659492710205394675575254349883799353785788298485357752297360047707263787234803404636204979828708718344688107497209203543603278748793114926635891018155943567505154618818208358301060618086737440735895703168635607331812469268492367715583910901570307145101192879130992189052645715457895608144392265274432753819129815907124749156197015912617180778466051919936799462205308410674992371688128482754913123051413067364781356528832975661400500435657363869891959847554655847369954778657101040899782774911570390566008623022527606427103446838981215562915981151120145505604335156319060764893998622703273409032861307686866645396504046827294582955705066860317611632275720344386860240725468172730111557892890201260254417541386128720043744492605035832949287147455734631052570559560007491003986561526162785713352517025784500725188243788397347044259418605950121422635158475708022323954188170719700042930893679588376693033997651629163248665690237882647520417060066880745433219065274034106486328236800334834242846734305514983626534251964037511539097036537530232749092333704139560174702737263726014834911850208863891721368255116302405740608880821461815183056921671988802135967544445739226579590995218962136482084093034289384276976855260718680125918773170974545505882960753255433615958298641535945029304796186338721906523546230729633364261867559676384191132848840019263955306241106147508470197848938556993380735396613824392658419215118545822184631853693677236018270600965605229454565442936510878759188223304668923242335841426862381515300878093146896353529039155015321145105086845136029115466850010726892607122398368875255635108073269118336500924787140910180731558106029519317603104649686472280669656611520485990380653100112954287730590150686092553183558223335711358647535267079154576890509894675385250164102690797414737443392232137600765788751514954181303965818426739554068070320970903565940696874667420274070353880741396821196333263415246303738554186669477208591709525073079106551152584096341629024186074805485150057934947918143417233148787572316503270988543242029227713972874910374501288275029708274805207835910145442744225613211358519377344804284618057275918074754235250958571052925321825718177412346171793575248433738169447629076898757149631606968617495482001146267381987600603136550328294590314110604881234167080529458971476070407067115626299950585172608655477725873205315823781882080734693416941480524637589678777685046240372404647635088557628892333450949532081197696017446488891405116794440804037899109829726065730574030346720592502606492525828713867912201852382905154046451595539656938806626459697613721025469754316452469987324627115430308157318724530899205444167774511914981860809204557412597616424262409751778098120537397914989591585958999153590498451839210596393840504214886300449960698079695060819193712980390047872475195642506408785851686141375981201347350767048098153155985993354897497038650346870055787950496012397013305649701357818875107491485358893708400405241515429442357095295335499091105388584180963624930659907171274954705065949180177082345479583586443149453659727835384162080849095910970097050329597943945802936386856504183360520258904300034518584741075847735340909497133203630553290423210412298501247918239619540677652088474943365827779289766020374323548643431700425634334866915616722119341423549297243256212562176967273339300234715109703831772654616710605673612394358046612691617064627812874315505937628506390324237844020185026044852910422345375146672918185234366354692448088727873134863573284887283980229993754864420918384508770918925995188254859373361301536428141666710344211361880801731787364703022204809611651878572770792521825804183888216300873303313143565734419791330914032404754968522408959297744157035746121921248398242382512429296760858972707526821963329454774555460245803067303394806814668659883037371962003439047232383412158844916049683135569999320244639711394093720648541783693949637182864791291307957828204197353095212341195757546495105395901181843244257943657005279097790929879105449970616719968057911138249755636113290968450721751709482432808377649909863905762369355471755670157823961271536382288030435996716794480884732702835527197866222866036105060581856449016963577547893070144106274982067207683283878552264803732989685402178449537999291516626128528567320444886109043595388257301506824849204827545779861808011257930236938094661234546323848220574087639169238846157825412452005073897704292006446320486380569463063811910004435427192455285071902878846701631625104422692128321943568088183970448834645260152823592062860456095639356832048741156510371706762453261044181964850598890753101466598743738786137077247311257061487715850083875893787652386933387049292538745670596592490742475484708438027910940498774858386676265227915070046592434620154130042485790120840746079843917039488953058909616568301039207513624008586532853866844364344790134643895034612413316256810809944947319001448822932393448418392066069351338943438718741982689452866571171162447572961312751533670553365045701625999619685425400469819808488564574425373163002999341918165127627353603998501647134632696913983194160620190199838435797380718784342310113548407882992934838463200267756742750737428543076189711316224892739879384627382758822041750683774717126047989064421380363341748238637190872782315103762111353922385157035765139329810439363262680102206780018998546468757111334425243482305142606693020251209021898907803258624530812933250494423298535820965594769612678611921317284858274479204721579380532489634828018721461493870419556756723902901384972659028094351823813699015777801395553825927750170421597725741587131620480458047932917033887961466370629995896401123548838796163581760859275808826981467760460361748756231734485981688115608703537791189065337018215220736106722668067531275814376062199218288385347093095394176208329166035590590874700695947347613723171383629726517532962742755574446353749065142426984128466528792171878776218780869101804704142716041152686176507503507059128012217241915383907342731352944600237787907989978299036703880014262647445806981041729269072969594473728804251543239547708802366056807443998713176094367966648078808663677277468848753457229194998148132494953303526687315908366231371619513207761227804311962236765724058248832354979236131634328676173762175436082034660361207038473252450205508502094673520722732745777350825871000849435882793114634595346205568714045039906006977357604552679331781288729519488378831875765590536699635222030276354172713491434266738556387826606751225361849036652603859487784176281219982692465393641074341992398013199167858796537255375516951496872172180866680559651718426836026801572142903180424834639549336365323349128641052375860348545836861646768029712362478684758284646942604593865187644304567713800410793233920666198536334416596611731096015935642608388518362884565226196048400656510184322620852492881456479348176872606596557520764141804454520667823535760302701604312902802114021700431166065049759492794771124378330553196232325212967841387161490364004557806185915403937210896337042007936521420504587725841949092378220770441904474068201658421450309238783809157556762801945222800279296482938822723770573780114216774495976425907664975260407079841452523934895110410766487065086178224007596058077418983884984949327482146249901973532504304865101142444718341470376789398476070545015858154410508013645791723264119886610633219091256196036871798409790684461846602917160911207928216098335035724296563557330909351327934649270473373673116001770782359890575814567509691306219841916706758887753794288691946812862904626785850952616479764479597535608241182482958338484320212644861340424348357940207289144996462086791939714557825835242668240717838795841479176902712874558881493945418902291100908225867210749310548014411355296046744705196021864538429013294569544029823857046523547469980526864869745757863838319768836652322537194722234998091770524332331000342622723369145412261965462142702350499038228635528291192903905346624870917693579175806267836728821002889388228210309183995024407708199516656618659080620630708168553673395492865999232856711418001291645613074479899521675692085173991040248166619608501690952172841525104599970722710515591348245530281485483281412684230046557122534023569429544203048107573298421662699764723827888953525893360599167801080175584830033951722083884691506006411805347504420327257118235307378446187425860637370693928086025191091235909193271819843803751779919997772603924444161014660327691650921294903813045850926968583265816816076923152522734164839740036301360367703261165780356207205956063482570223556395403026276045840796220429363443610637584752098378779485553953645109816171097243456509207414756992819979863302043750078574140867006482241258731412971803811926037650361037622803046153973161440366726903221561017182795712849535389584999699199745671133310945193693518772629537934290563811698782791450937865398280275125320602519306316817740968209412817267760742491778887539153347623821350447930473379567445699191670186282789941314300805855790332632858908088336056364375838419513002770946568251306982581431578682571245972749049021633597138815282580904297810205499973194254285418558912738154740763362272609247819694888269593104532552016707712930407644642345952743927808231999715995857646528317424493332872934418631678476866543693005207324211289982381712265895078828074090192557863806906191881123709130131876037581330438522472936813884743708024016479483130309826700570792251223277536640834920347787114194143150442316460133288450972413355194219455405175703086074655777637612494449490169849565107810708512433813195211137813365998448887946692220140711926517518473486036303772123672891743496966779316315860106121681814714748339213030123091365507919925917253412670671762189656722308958696169835362952430693872202554750810928573076568245793613457427895202010771092929644606084455747514728911895906497029043891686989001406952946670186060540541214700488910957224205163078968220349712317082671153254161597933279447420925488979114482484495334423417983873055040183717575784138208114722011360070775824346506169677681649318395337408505652329702675391312587200805722496350967750035367575413959063255571794214483743414019844673955990321203662955846383112172980855176535003744877641564363546165640337126808399253969088278194492438378815817806825844088482278291353703851784722372701349768645223951348190679307430123694716599757799462432837620657587873802404747723368017747491994451509876211777888868330158831479961684461237501075846841130520274893779832322142106946629384062095173268708911169118376159454104740026351958187450515587626479504216369444844525596513616386485686194120488514460999890322805191532453730789678271807564786420290022606535099787901540767093295872495559720315646156130954951041969745104716173122272685820532923783402918106044491528524278800622410329896447833704714075488053271488004757370694134728225968616696399657168709505148536971451683615710873642720123821129128344263917506562008411558847508096629025621312006684044634756606829481050955047158370945153332539832447138409166988269991547306472340925449068310027818145154983476877914046620152624442133560287360496314411587467290046188540515975667889936930105219753928465562093287212101914788048923061531296713856728443662039999945023674278995887292460814527920877149659329471582974853236206318322147560881868065036199469712777360657728086782989366108488563893487982315756778838130377744930759336366383615664158223783225479018765819559274854906776615552342240432306681080877851867036131897263077661288923256811789332487029872745357295767928255493612666196955578826542428583425666096212545441437736923434537816319527624148461183623281741849373164343831091543711734919292073132570419428449458673159903217767888982166120164961845004895373461512885744856783314817959542657879699529127766443178983122758633173629454433085050531004762305570217334508710355333316684845463011455240797062937200495936926009827537087016578380258653316168195739844032185575966065339084205779140261107567336564087140904813326058588470340605440434380859638108803478790389263527461650594209639071675746061853596766719513308663722576134401345528502464203220135337560571638173446424548931346391766394565757724999933143608278355741315572704294668248202461217036204013157470502927348455661860725773530201094628417513365514587043471500163141537891704065761680503086585313318844152921749230576432063192990591435807571717307937367067818856865847307311150779653106659992246858334333851871434408421098088144764205160177322384678664910442497569928532322023603436650475108141197261998358891265446618518603228895907120050665969823327172596714839584287017687818770878164845138897999457115761094391188557773877991061197069427500478580083601715702511032739766750995767202365614090819381730895349323613352868459917996549945421031713559251910106190911381434047424701928496359871391887703140972593653813875360073454400686706953001505417270395710669356425649184733136075593971959368041469466592400138855232686920332359985365901322411156467523567958621218217636499423745366313550123935623074060549262613521368053892512940830394641131976085921722419860213026118712869719604183823402997911368098435959825107205778066977090588380338147275243416144731156967570309942625212511915709500781385522724769832651152033241466890340612316183285542246471755538118635741786878829588799772907770067260143426877752618787337874567044958843275040678682609756113912730580307229260367690681073678356718492859675928868939617336320007606735294250616697230644370206921712818854959460983101568524634006009201830182663466168140517921732596646602875021534394076570579885237898256064619065648487386318913678083488420902152925451288889159334846220907306585125329779253306460531524032145225819581882044081598493887384009276490096884667402806272801804659619166431265782895114092124291382621842235428784515559241310246853070894678836921802240945063650252677926561718867660515831248845022211913596682020215309769976232038840714921067267129230215482557670238968596186833167933598919643111805296421980650136783471404387789188545095460547433370688028285416245226716859210079849929822853039083423498480846027074318870097863597000465268362492037266094223107151833229015353827745343853701366201023157090807125481077137110733018710445105131425210406548982430954274760645941092961511343024266279710035935983271966943436922817507396969966193975395520260481813175067540456869912257572380365822112365448600922794389825877446211956539281213629514362880285822211575945008823079081131988989385794252152422173217810911174311971372243325216261866769512307643076877126954367080512781332911477537639200636868236124541213442700425676927060918718818533667908251147432344397741096055755060312693123517471096572815128181681886156970168062330491673700244495841664139404750350850330790723753697651813282684130853350074935790789801680981860095509942689288863846634026967101844381728288758607528881669115039504403573033382948717777009245257971085619037823709787353511296634243481201298160594582043642962632259736917204553572508521137771849739586739799473653084320717096266871253615027353003141511121527457315835513068629717895416991022325546140230511139888534571582444343754284862812257908806974258277627327007320050077538284653566361565078961637124651301734329901942344558412911335583310258376074121130591966241663879712885997700566575335932795652821022857834651441789867986802453885461431311232039074146169703306329345198708939597215260324817193166697179005938721040493642959852496667917158767505559158283738431538999615390520190931915879782116497326233505651915230992029287451445534500291829096318807349840261885417936841040328434634054329788094234009759516550988883409740231685724492940021320629653610258263245539691445090042860798457456456583348317850995347685674697585600568262728918255960321636384269104622092263751487631904342586519359223658145526302257147225711885978486522271406438714106621234858452734215504500504588437306780877140948387097378633676169650796072882423810348950869793148651528651873925485162858490031423936643972238823752855877451462168637389538524197292992713078832737830823220922600906342969904007449297375284425333592957088651111763934712101721445777174719543459863912752576350764230956110536087082099706863120162445996461597322544959164234268577826744732626443559713239502525318866065073479556033361745658088145658555094172331958011988687025532277534057525740172986032677396499743915622431963570439599734498052256487605167924104706515739730631712613263486468401393797334389239591139551319107498273222710761735349494382044113547066746228054731907254511328032356280669719186933525068274842768460379520732977464792882544548884550401842039854068986650074501838950136939317673503658563670791141982461213191405813338907804866223813724792166681252523509112291469355746400165705743877526325998598129974505427755756354393808993010251517678061317671308686966738268608877795621755772047732753254089743800939899880657241507186136531061202999785857036807451750542291040988675717545512373384176208438474893376600937706374663166111085339153167838648480864146453652630253285005475457093843540327969762107690113232893547084284664294339434866261574451702741548987041948260199416937027211814221575065790755425631564166490260382836307403337590682755663369853949864984333534306428095722043271433479982542992459489268495848076100474613029903176864300611669319668209034839905925895017045201176091126143730056914676975842326299317864274770090219415878816559520476379981504724369232628952765966404530089428343585640135944969480443838930869042954336442925720347140188714447765302437410008635739945850777437847498489049525439761253405967036917331855696779387816950166872800688245604858973397845845195725943169583728430339999911337825635961182657659212450401849635938405845710527595832081782378422467342632881060731398625839188863781584645486217972627991396200138508024504317556429750011464137600282891551833619093414051304446825483781175682555513984182859242387293197600296333790108681208239328160999952465301280380142903891711868470656450557465693760550601383685442529873865220174668723492129408670952494043028182224159221985653187288099354938324563148546963947666845109590481424465924897358056010325081747423209025624869128158307248100146185944123637879089774936414738705497071705882237327772849443459095713484685500757175358394297872831870785633829398373148526236279795791813580518414170969524118205463778371221828587279025904765465079759483695052044377845818548130535040125481438169272782893374053663674684220554452439971439806581540225640005271741463162476670897590497901523253176892294210579409661557934989330160969833179478559892862776137286410704174372801866788079980339374887609398365874304698694912211309126093222891381766748688754518033395932538305372812295656872699835980258115960299323640675217117247989935901979458604961983692960750641267577311165567954009496980159107685267970775767797965102833851503415794484127957032765621706516790242566463377025828621808225503271638439646354530444308788494002495229953629697022962530850604156684646339876975305501628987796851609361670047376961910530290967748160896698100599446678784351794359496340069780457072822858611979664479872559490242573812212664728326545730899715803175488856494005141909068670763198518645905081687118409308770454158499260539629156067574390227603957777049579578144684251534798908736536747712136672042071842854103076095003318061257431013974154572803301601439203470150404698976730319447287317650058119837562866182554237363077271129489701635042483876505057721321220214598915020912949451075794093205993932367331272188855520974344022974249866410791853632769882016698703001935823701426485829705317341533696611249619783618486907318893336105098713495867664629702114232640961467727675810979796283582209331416503119211923045108060056827270946797850936035943021400776573153849045443685432788293116615395185120356650794472971633076348085561857622238847168020682285728893566070015098453047702969319662695012528561497461030271887509219403003355904951876405691673280334705780896370861930790773404034289938534075979176721075056930171645090971545526238414934647743092079450421148811662069793120895423292124642702662180960144789990662084976051748995072978304067068134935428292481283113436191858284719894548661513900490735779437312758844016290390624815297480093971023458128670146796094184910778773684561460106114539890803520219154645381128300885499771195382398608088570318397354088792275161756238966398177553419857370258471502254515158865388659206078570371232318333805702179863716302783369522397681813696843005836334563918229310179436006627010498831627093707013944834868935869802256454800985421108552721342306512757558683965203669051123812122890775102939817955970949292278380689539672113659250219294627877942218339121377575826327511156637896186959966204774840540510617220273713742964731361312158100146708419531792014285117470279297577582114671621034985359401335426073913769622924726766864833813015606627763961525419559707428350297974308731758456250721064314195400401370680846938125049093651150745783396241951392439256796190697857336149194913999706944216963321044535676587076055115343211529656265779035939365216259099634026337204250245496416609034175378814248490461632804141539306665262410026832947633937882353040115021636637265214049215050849492683840383714128380585924417489113164490847335891402794156755820328924883830135165293457584292303371079246815565309857667081013873472813660098077072360417953401963753879795661380592894839811596817677290821926703572976321189180895659239024056146206679038751395200157211842866700046267345973810099767302718785536216349102844023652328850706311110564840398895930397850989997035165103833400199930887147355817826025799190772026779943688322112054727840297425633808882240337004303558728869108129618604962336705932070751647062741019423463290347532538697522504819673035816288378889366375245409774080888181771233463009745312246780056831148695033920167456704726514736227352496825684561625626074792451579674279988214337703022198755824033460730864347245906833704875498721394482998989800703928298947575751876922443724481124157513695683984289670830813492608441000235770200177071437541243156816140909322829258793273366083948859137655377996068400925193983462109830899145226349403257216325842946833966431852814784604176267151681364317561368069219257684783744731484069268069828643606217225679312681594609397825508338838914098355809758548740061079727134810053262305352787363443291607848518410274417207356194025276318454018475376611266353444742442182344626861556870711949691748646420672907485153770931729463757506176518438993109905881422842502390763867547533487684447467645639659577902372189812218958741746350745308539478609951684063375754404515895321555877933726483247564606476779303875173248186235531055476943630603757197788923345679435703294232933741962672585827120116511969596912801554404284622712328949632551521277374082095774249788271656400255987396719261432227568891017076299841965482323523672226437752285450854936352280588799852064480331408651253909571413672954909174628583517579324649347022355559078705060269866053087446975267270683670604827615016313443331334128521742076478036546148162772320285123691654315017287096332351363989675018780484878211610928843260740164718434423524479928577479547070438675576047154121517159528372580147420967524941753727034346858844433347177385865509581496786473390902125611713401422908656191446291972192769998589796692833515578619240887723659581130719351482742536137797830143821995937291392946571912779901718105415685232701350950643987970138633483305508871941192636142538553165549238175473002068093287777505366572988459694704244626406500064416800705322470255734532119020389042482336791239965659934126622473673141483203728818366907093714226661387110257285130493103222077211955862041273550473112129313542447150871970641910438497321220268246143012420396994990905761386166605527956572136815774333634407017577849866017141159239272247256733038391166788937922762886640936899506227166359663760794017090490896491579754844969406210449305148497531616501458761314224667907819579723437187270566852040857423344621380723736442171138657277886269761261031297943642573786145811092262991043802202164125078764801634837433234090379482356353321977801082152236732518920707753629505446183932943438105842168930782783181198280700857443420914782726835297027961565629425031861951997151937762663820737618172850728738088492165423725461693517834535660583452656071622599885149654909484869843129134869942907024777396506130775818491107655201809799943285445914645209760332966268501070569731276343398061552069399735417368729082895682507558210990409854718910363438062097424339680398605016786084833396295642848618976294636227952594327573957419393033996243132608593619225974901618313832636181627144152077301830402275926216262342675794461960575510174296560199566961632138003190119131278340530638904316401342534585378809674685289598432986502515462553294778229867304885524389966692294516455459874524267057708835315977592120209690624225053549580519728950536454947202082390827034502557551858199781693564997256450408250434077267862821234072175044940349613937676834201025620694412836735446664139358134912904605467194243787116134334932469428601852703064018609878924633850006652246816096081425090664465152623194771994108031334422319999058727661734738708591337133271951287499438729105973319022875456432412030305965315947117531921918575924933451523756130125024857624027991089160467289074519668008767271540530881672154936624668534846878014688035699416578329329791358960696175191934007162140754440597265204804882143073091596616108985940049500049684715743474845930489252811632463056350395995845402516733702503317350329130650976741072792381124418042768192268383836358416732045387960545768881036839757500736202267374483922910554294460431557322950294376299284851268519164145953338483161081087756445935847201179736004074365838776203499132863159734488423591597149774254068397851136953761082656452682511571760734747939561409572308559886717314044918739272832128858817547692848642901605912290986380198798281852549591133063909749517576029535378041051825723813607700053992216353652695626957781777410427470417148413450812499987947669166853427332527120704924403996677270310538876927811683151802016457227255166898611821562363619520344801318201116235562833848401358222963995654954304314612488829226867597879820991355024019760687792761110846212545584407436113862040470141477908033672950475925674181011351504104192457005090310480093213877481491758772237731811845311787754817491954587323455677876907593472910950335215179546312581710803838721019026176505265476925328919739804320292384904297602547234402545483747553346341289425029207674837936185339210711826504966851206460647753207524602375980188720618977951050443615185978007259749073663017729265112598295885087789286778605465573913855747095797963318474332297622139854363347722903059459740117198038180273442135090421686418846433049648297662324198730169262688182049319536306078834807870157162408983438687009124283218352726939598827243216325529616392042062076206229521044168047011451131024923202710572323897218025642783923436675150494484159523631266669337348042174378634169758048942482070152866739680925229246859441818723018997217269077840007878174381215920277410970778048876466349959402303259090513330417100307287485270800585918338254052299219106400898635540434310699465452113617962079449128029637070172625033547632245995006875349037440704210488275940704269813749555525681361808153361139176303387417912484601064490271152625088398022258398201152396695240891075423044875222583961557652712693640636261914433158095937489674177523057953484429837008472562792147162845149849282605823990957403912198907765284069488060035984543353241791283394322554539472954258286215064945810590000983179210154697147915762496723961381034836593595709367111013045621382470340734389487781440626104788696757541187842733229515499485313963012190151080043492160018570456283103894805446539041093340312035922945103108499117877935147972836836209499282913282667798788573074890284640159857944253110410007990383811876984028861599659959126544397914839931526609664274800542477929364453523539863063537232928162674200959319141473281958768331448042761825084390227089968687316451256142838842661591173637022273411584404150215488602260725648770544631266058285819365278338246438654558813477618550895666033622419669130352226533402729194046614456910883229462178661444426479474936165501377207610456664248386028631790729106005641457924027792057509869654845212919337323747252943963667533155231416681783841171911121769806573053703299621920564199959300900167891697899047909040502323550229582447208082213761665636858363630713993070959424835634987356463209390375942761987128854222205179302664508594312099626299148065946423000446602403064820289658924654626583440665630686992489039854620995542621994629795741413468472500218003712292423463337429744155154348651644354858085906921211744491691656114547106114824943494330554038364598860279927079246489999360255334461732400691792217625565119613430833152204975255669346886072387153208296402317507718077893892172114284720333602517078558115076788756966967299155067287705202439465615161861643200719563753558965172413048651312532251502814954472276533633837016698782585125517116259186876062675799305027937585890302973531019223084946923569995558866315624253122112570869208175727922159158174407378394081542155207455810398683008784944139252637221837218792476532598294648332140961411293344308470347206860118752605872509507733209650894352900376272738907656051074396630846285940409071160278307738953210756261297479311526401319142257752180867633229510335463256593514214880986789958001967987652131425538447260905684414697987358072027844045468493986581127232494928139242917409372286746498716174054118655157945482256824809195645545161433289556543147791932511420934347262960782662177407866490817837326819808915960505620742417050842220418816242947318053833126496212579601150664083347879996452620679652826710327579224633773015417163777027612609105998766720556409542529484261072530478135463024752488415626923582446757272150574080306712724773062082583890674253111174722775585575430118842444792545438987744400046675122136266745029465804905160146980213235442779303237411325675995454973025344042158760894275336494283402964280995284206126674318496213708186482196313621672007491833335081693955461565841299959395096598669848879776324325838275619001536181757592493675835862750078532575333676248856703784218991850026004065911169327163751239490614824976092064392610212211344899096053109670917525967879477333708648470581210293801486662685266307499693222525825810541098811427023171926819192211338487883937700425912791453083021060419441322994163853448417791446697302639785581010441540813973200270366239767368778156622939994878597900953368223838089858387901522821372683005030344064438882219293178529294492911555047112658778985176611728513683476506222860046301699295898296431223190066989047215072684565994269661107923792408321708715186838089732471966712228422795759035778124473770492331466995606870041045142737518039765493339068774668661892285273409740080091138340092237468945458080737219195471200631845048381068193373130043895811283841615407333458534886117046337454026264688301153727856805160910782057162514968890348377896162037282997894496976656202313897947634853551291907843014027435557324696713077792834675833088007412387990813160254866786997037229656491870001246759571659247492346144180937061825855999511274380560327919053773460907350495230752150984856155663473195610328101184574016881741656842654199128989849152791780170811369484515433492898633074827892417346315788329655144451783710009188206991013006341929249573029451334020748137351296691062647749138738994247845251930033868940991904227523111816399206461588995317413049904881307028567783960340637047990517869703053854941161037321486103546437323509132583841488143008671795858183521242663297712135303893446482827039547587720409529429244984456566519562737280678204561712773734077977112612905242837048583010213309599624150582891545668418711899947495061717677664651387677323790199459084038726994490606329982513701419300480843811629762376335363944899156353984793431800786078328397150633826259593722456977546813534997558040548927247902457445707055452774766394243972482365271890253938963977421137243670488862094323223528922749264831776889320058583225232138447910763798660082367329356747359600816205516122957782670924749070901928897221311605453037461671865582124431497941197273652621801525719809218939832355690724587590055961278962519965821889467846847103163538947880603326010328750874431163117050760500048391667653705984065667043701318879619386004898000643685030038613397543629694915052692367176561051241212181487902263895541647633993644833548216774119961892229362263439999424491456567667004146058913636784294238356048853713968303448492369190674911922593542486193482575217647915706116053556788453202749498764806541719014795196078397894351398580538438993122388314684989922648045469643789583283702084063427368863985577574418687078588683689564142792649679464403686547360432825504105084966681523090226120050670693130884979828439407349693538814002349741588342202459171850511305914687201019035408199626232329173458120687513942137031167728475780982555256815800798433910967863709472475253514586384450024437523034414199405589017019956934626228225173129310114239100795484868965895553194282675359028318250528753471959181037464747983732359753100811477808627808622089876579507844149940444678419314761647752595915056955452289880987632066812059830150240707522168651069042333466026105310270654464678700054045601040178599104691628914879332228255952575811593761157334658510982774445119805850376901112021186769599641952628562899976236104651471432808732854261100479545386150989673091128039206284487596482050540730934112598509709336285778200685408178349128541810250842042295628908210917528839807518409439321242190457721471033483589162888592570071157720459204657944400572028645067998878122332775283895918728292090709537500689425911060993596869722810472302585600333972155103826881104500737065755451539638283534156246918059261911844448498473939400903592471025895627877209363257681265931722222030093373064518121366428102061254861362946123923081036301858647153050206102362643388968606228767752555267402986859471961475215987627024188953456770260999219379759977879685724157324865800781479444158290014138024657161160662058985327329012616480254604054485836988779578153639030470081758478076976605481781185667802957255169009338429897045563848109444721530699089853790831325639012459239208017584769734493120962853115598428364120894659870304276972568799304120909546480750311303535873030368209700897982240856147157294820685090126509665438589556967945479527257228581519967176134564202643201716478421907761595299018139149106346045306421657486627198348778988498834125839294686295440535827011680040277549681672210905983594998540093089152581621599740205563681292000356819339714411535260617863210064098919060526718965446000461841249792522457332790887032113616521506795071984575653512744280048325273428531386285214091520657988185523356202870514654272692633490569042699327234461591848172910260170223226981758961982229457240872252914084981841321941604448911827403272807074383917174625313551485529171021904602978642602638869527411719019359767885026397059369534335952105955381870194269480874201685363824816108727405061493089689923619054549919961311160352952519122204434874656254780350673645158158984431734733636569315648838734446059282066326392400965333474657352364056205874659331754267010797451125943083174802542215123553370853861492988492520877380106981021513505189702176929727379337152577723003926334250045479045494587260791751645765553185432858854494142543212711785383280947263305344887748037837526971948865142682192458202672986873748869515298081316255227032032354139412809701476259611948984864730593757418467740827569985740633002098468236044646289485331191224220602125959152386084958398640067776157092375545461993315208380343371207087001931002841375055674088412464387903508995776522817743592675704938471504484210617279628528792594337791345091800606077574431478423274265400952789159045475960635225490335310847607808088674989604864087966814064661874799745446664450496223227642042276008848829474474857573927292170103297495032657788961544368231904450716049278733871076234051256486901037993565290661256365143244165995912544648088125882737927273019693531968840698320134550781552226291363621326947382511523596849192347183864782823770940719693882754903717387851040821963501040774499713223722117438564173114375903217250208509451051236186569659669143226500007851156537801547061835172375163707046436038408523811467436495940948290654028984081942911009340673581577046966146039902998161104763996546836917061596715688504989673708372491703676856765514174024754779471525469216242356690580941995174064843278858258662598200751991695040385177461697354645121749394776411537942980535610426876191428553494273703378661871264476143762095929933145420144619356624923346735020647907224544454171658152933173484628553575582688741089753569737537518408785280551125116572596595986535282592810178233181226290976586616992059167873996921542889823470398399502655038232164154654236753182228400232526773107097959053072774918426162194387980691472016712268908809282980182375922569317390838142951483376278806706796290497010525219385476638356984258165270533365553828780542091430018430489314415810664245768360266548277982263474010202099606662570667903595356567599177349704088207118215650514310600562861351294207141279034747022714569419559786608430947955328011193421813563877999380614320412497188892345860671853431671921504119913027858202987761577310000009488909192181112900984153128515624147061594687316787601104632402912085888604910689888714778487765405860364985722466578676466780331295716285536749496385107940365983057470833925885055567033441082553786176876601551907566894993379252201271151470674455530065166856752075774877808834680296439442149400604752896110243834069375543974860088684626939925986505130017771929122649686926356658945923100657459170721681885394208930393076924211043512325969433616932537628066852716731049564047734422202045626473008299077330441888755946873709653705304601979355415615403388612870631973671134711380034973624108710403933193787098879628345955805056926871651862487244020547038723308032843155393973813314879611391182246229196406025785182068303108399962464385751752539788461137461746680443235478886142208228992917229385229176236715593477990871579143968748325445429707532725696144024169561191328589169977654743375979746605037480957910373795586267650451573686973454512230431342222332162925279953078141238804406152168414441545466078852546659648275608921156166361711151407791355455366011566708884738857877356230291718939211237159074572142016437739299831825995241393947834380839226566751540952727640120926386547301187602959221340299660340410274566620407802069851086190171787488631071663871013508405255622736893092372315045665877995087072745519814313640493066768706892806719696258481953476722016353864084347602418295603498767444239487637342588014542469863068703323304646913932071190004226041247647891715904328462021359141486394728773375977315186035248872658296202417656499163922678701358674741148890860640232254697403771803328611330359751791304265106547546716900351601337435885307522756247731442251457919285518745592182697323722124495612891668491998948940110929336260306260048381920073762841056942130947957981920981536225242945270297358996673700131168109619002797301512179777478411169595361877894722101598697569407826880660334909035676401193354500059882669344372525618164832311048517288851091548031029531633310773240245607737385371839644786900287600212346132572329390086934347433248758989967080173266159924486137811932481881767656972782976668650614314601888275531493947572503452719823778053524753630643039854584685107945317511956056332471586937384901673821070751566133699860107901086680310721510092848971745055394540759481701199242141308830158550348749879248163458908777835963516694414643809240806996400906106174532577392887412704551287714504674234001988181064247885451411274660742974742603456915338796851117680709501171257381472286710158019748266151056220532106037340130265395937747827918547951498011897665989979444197843041095160016216695272490134739209618761060051545611764252971216108711028464513651555611273947222078354750386496070492321257871470851519275993858351087744500515136581343183078488212922558693525435541573148756264987614671064389285458476098145608355842884188939213849463947374089934446447269477214278831074670784672386505808524768789265763292014327861021037300476633899646333440939183557435291921852286980905017823255642126616420273728038011537120689341756610679778792134151811091028020570910659541157419128826960286115332728158118095218401268901454055004532739033531414254884617709556478397840538111911496861726691834715481980414050709990053254362988771894821480471462682244513320724654725440198340690794349192930986966449927579543300294267385586102068631666558948747905520060102169826914110302889619435696292220013174395479693214859972458755204611448527236204386768830753598290421698344957491356479974457806004705230008348036820822067640655259375251355216180135058131322402926178240547750681637739542584575439312659055761785329963084180155888427661110311445142505566077913605870789368464979579000015403601879357902767739567115118013548432960425180432349994156652246302074584808842464240885089424957986251209959297747242421880756992189978342278754087350309524033651485050703101700647465136392750329367538055984645783426561339898362290981541439763353018536610336215580755914716235616882904722614375371542604466873193644373109355353547788733228414300585174721841928965960141932839501602049034783835352856690078128912756932455049330346003691611536392994617609765203853755606929110293406048867591573103637181401772975911198979101920042888982008016239245746264924467078737075139215669095024901300638418882599026480635737275054419449637451556078376885872646324154671347681550036922701310753074770488279496205257042237773791435762000451352581364529179258682441401591716654773617137881937620625141111823884152359630485172235343317393730652642203820867681086821215114790949135835063289952727430132487480221362895762032356148767526242948895808183269213931775028111852147525624770512751777716166202836243561814565078472762311884980765937460058505445091171235794744218034755129315406413948588742434512379670871380541853999911472073255176343577479486222934378680810040836482667950773612304721858532182949897573631722935383963123879651047929797599163222365284220767428310941274472254570290198837994411127338121089895271828990977492265527155528867654927653762221840141044164150171277288788919187965896770268732672610382419659127094612595543270784505149326025927147082929922757434545889740494491351066978863756513203084270220062863940040928172792722647589150251599857836518336230914327183377987333298411591905853170202632255739048744656712992578571757661611657449068269381891970254389216235068894723298972393728666936444801021957918653100978733993723263698671306468480947472168458460426802918732514121151232917173496930136483260479790549406147921856264480323362193010139209225256426637687677763085955113188961136797409092311455719741627014318520600922754017610458088842805758589015063121651350560435145434803098645540753781449488924665946716429093332029412647928627153436373388955314993980708105861337200442759938645289838517406443096788059453346079036287935559107301726802337667993535529811032112594201334574384177692273286272289120825390582900783284874269576232831818208228991677557481778012633990716154146134829095674897753738773933715076384037650827643033417267396551447509728481222418667329662475243062595239778665528697607119332479243092036709614959300158154260470942668297962340583833644089021024061609770103958158762241664297603104713752513329378290662439896764030732056675951322919638335664489074604742012413819288720485928108603974780343591208263371943635364182000072197344913996248330084343932015019842958765458340536915383987606439770459487941681073195493063635374276185833899779897425662012936244639590615097277406614776574112474214763997223647450001570492455002057173886313271428870826396594110710015041682040560040270871099786108524954121016975136725700576666186124427641485126102752369889875190297223100575184262430111463819647632775936676735990600764525651519613015209915739299496827319876522283744101210545897139407726313690304255190345999079996014975752433969191904821973832874539968189375667416252403254921405519385644123441634344591636255077577310406942855290092916613596795173259678979084705204091351224370838877894074551967563334996024539609501784846514567980902897096675917712590417156924393486734433834736072888780047951977667639086705894520307312782403296465634987598196908463937520372202278837539030367587260257602080428385159408542528876535472435249707785584699570318248039634828486210200956718788483186380989887930513177396300950994611114252830868123934716476041841291701843381239940796285954615020498819457302050232516920370405767778913902716128585737593050129805510693712446349442350726635628880521598999853577427831626585608986573906586473000225083558718806556012689809606140845742594543627592172244384110651863923537617040494385139800797246808371330316901187406818769050880252597320581302306387625932463719247005203076600916152321672615269363306640566754906486217839899385128943443772329975248251591967445186076455156384125957386295853818581680656790423881004417686302405658303291725123597277968433224128761156108866386721233694477567805103033462053454593091793324093963423935982986932895027216648702425939543956611276271417449786485381503819393667285744939199066285825194996967945392830836998004543687450547454467097644579064560235302502917077931855921161184845113557733185350232150845052209473425430755797852070548209938476420218495152701131251413724187476046349193985884909257654809726397600520601963111709921836837207804257684639275397414514658982193016079882705480556276711890322792862892020087187944593423310034095250216212158301680402780886564344159647094603578333306666622128492374353697767168305027583527580363049070131337130689887401312298770978710999030492357127632009099112987692143300231895311781983912939730394790541067430084837128919581678777564485417158661415301617498056962032212811529353198512980681187028516299609368211816131326865773727507157902476552052644075444513727033551993861368341459568653706387997659025705585749991224591070525219597855056963992863168037865478399504332201640393778523821266612096257424041629063075141188861741811322846620331849645389485529484729658447993270038535518986694964657248076805156405452551464982899471297190088667265275788628545399924852874939167600640899696849092970669319408660521643949109697084764510213375283126489576531947995634113300971511356360844248720907087089755778271564371244779462063004450871041768384519850928828268089336907662228093735887139122144271238586742449767944095858234363206529577205597202171839318902857975384786079743500161685722810488425168229215671126311710933122845277580654597805648352797985381181332144863459591015161938212675396326081851178160896141532467673054022527826405110998285087605642226088072805300617070383692321954259096058906209949093880427969674771756643777258137829516801501230810772151646987987482583798351573256423859602893555145955648557290908918317144599814289311752261233976919167299385391542788907393335238872433864571081199317729652340563000615302756779412221018551058975163098709475430437632666255575733102518822448013141243670896392515527893138437919754301342429214062805732453340519752443132146265960998416098203127391933725861704682907423425088149912598091555609308699294329554903355613295336109925264162472515936157969453672868427670941558488349326141813724390489366752704275721068283753599342395558612781345794150537515381514773668231452170484850726516247181780759267910999768218069482523525886518304666130204096982949160512713617195223764219906848696631685913022267125093581786749468360987576780933500321569329153823480950546425643712567430538806227021168976206302871593237141514368860358573505971513708818051718814531834612533690690425117981416629688695187300914332981939481497489775042828399787422941842925915627960831517397015995605213584138631416186696430083116590477120020281070402436612902738677187951270537306048644512305904261993991632343815896349795430043321886431926974494726622137684604582073590560364047645631614793487798972909479152686054091446105930399530241916115560399450701264491341319902795753896317890039769645240289964131343185915038998230587174057610143498984070686309581908509366321176266898271807239746089017908239960448205170846414065355259835599765899239847989772014196742995540659791944654156181708046771305610591276239588329117354694597097758187090739648753439889519905208187840271378980494737593971560197609881280829646855225624081406025807455334255218393571207918394569230557944333796641120371944973844087486427690544814974214774867072885766262180309437596315935237056601762780739512604110990752086490181696627466001327505532985036319970628794770965862210349294791784502258064438096052843171506299207085524557287352867173349454210630980281503570785826009170661801980086739212663228439948507082269642273052060249995160264727262546930161157311337161082563038960293543792992192816435171824357200748924998999415855910850940015875964102203037629203606908903314245996068722427237905066195784974468674589921851478419827734340391890991274907476815286737316005689001983316888504965293496022475916358942123731959136596755506350094929568811412004562601940574817064389991469004544576073477086665578229418975009038504734408891127624678573690322985319222960985792167051087564740494751026002391569607818532422585757834295359335820227470557715262838119384035100227201378700089366019701924356712888774534293848988048285694902362893756334880068263238814913573891686233514035100112844115927094547435631506074413298817179178874030710510807323929547361851085051541193917350963127070356519462086409604554211704437275705227136165872951824497970016424567591668813303870288779325857976391957621666703905040286027484481553859635472997242409187828709132653738031353241922590019443184246752418533233363059519240337240251461821611817809704946060974846807550129493449873792606268966201201368185994449170299656505140328481583099948593949068770679392557997570629305490208744096282204666658109133840050553011335608813539154662242386257832638965578666042306438841109843376170915631010295184531042954648400999363355836991279647048693235684912840657282348763785986748333732789222435531282356320860279395091962168782773312313691161633254613574137565696333905686374279292435269023572111332213681403699050737094195781850850890058684116901719112640074837421548659115787708956797460634388642063048450185871906745701089316938224354581654085224803018380085909098828456638218438984279145853780047295953994812983787305555511723601499894941461720146074950970360239067406266676918941837533040745256605952426810202060214075195272930347814497269098975750824386718106627596763031183869581954615175466557906622173880735051602683125964658721053391959588801723593127827969793908273579195856187496359856352676858351255831647448360398712026610759718618442162904859032930807844222811924367219497907335395502370409003701825221290522529234233528540672904061288822189975074800402033619810198696286693862119613702537081101074678005209715285009693181070928775927969287860492038714137678510590389544969315768354963716206682069920518858894723808487726462195352340059771912683070578406178531033615036507329298074238899506324500332294899041410504928805794964451077596794810412786021282873651196652927381443754635149811524763501437449002547805837620259395463875449917865992742378602630306821384647022377353376411656801055490128736112212219861345558987901256793698633091053414310630424385639223318647360317878374516880214781414777938509709540985092251683447100384952526375184258006627262422070029013704922368878318482290797291561475054224177005749905694064961295370647349450542242738211572238077106176951460664305193057143428074496177329388158588740363603303415604429842753924934085142045181696683163496871055556540930428662315903273454627484050438593355827173007815036768744631816941483518658300032185544021209893903739663499190974422419950590098322829038943501727539060262805030536434003328068042474909757460374477490840878010421169629887404018540707526275838734303840461596750891865609106732400836681808244986946672473698299233980220366063718940382810388802791038079668778393120449209471740650750771175751002660546171876015883118422323003548861115428161174520562665520454151419668263264860681372551577939785016746825020304432890426674342239618814971338553333300548631272278284099383309409300766272878794804717359485288266150400597939989084557964541124046703406418935797952755298102091666140484313552819888006797279077865144648291715159745143433486563885296819342415693646537433913928718258428319847004792662825182206707364866542048697250458158374073098124585370854461967941652348854691018646236893787188021177988966451893790089512985843884123131519863876911515292463434237117672094888390897594650551227884484660509615283018978577703418752744450085235322355833236305692422684701308125788958904081966220280641766196001419805144527677421214114309796551945502258634940305873181616454126215234386928232197482723099672024572177912793757727364899435929671143937224369223019024837012347978440276787604428559980134093231349830586464604301081781771693086836928758344326338466896868263987260478370265323587224682178053818052801885777765443789654026237469905646769363274527458660482336943180801760458228468953525382259851296757744428537065134541196671319164143235392777208658203126033475524810624075789124092229704533111556755539569761512822907727180765228442478441054879946814689499321125828227480888920185894567625894778217436397675230279257118404825155468959952075147324979616178049425089515173700159153641921156270180576914359011884010895706831512835316511472579191379227155814811200134845369876838833196586477455050880781125212788710977998597553823437190828082672299557117155143934134750520594442751022424591778874017990364515267604063761823874124718407608577377563817372316847365612471935980882978606056049381700612002257028405297471601339596339639533601168399120250726024546475922993815458317037225959923807053690260326721550813516884018968662834860658254023788914910153186560121829918788424900379833436030963133668484176430260882259155144506043791405652329988414055974241147735321878180878616593419145929252426337915843322639939430251557283943745050147569222784700288569349507002389337978555453702082353530841006668891535334020222885763774347936026801584967721579751141136798693045088771812972116225889057529031657947053161481254879031152265515736855587564281895383622783230009165288250237622112769089247371856685090736939051826843374316756845479444299624420448480082987463976031883523839252500354447222444150765625457204925738866870275744288034251022643930644656530223424580478553195025269647171438793779910104355657862870155754195920243563497933740391002970389711501790519785558977330598977258167973230642856703209345502618297584468906681290790862934108362501683362251672599473569858000489690577692766846171791363613785383168253227737318420268536753514418097720359597503643326267470767656389866165542720192378298903982493302421930965893791434290383011169293820661986536921336271878159065078070808978008460499143753726160215186024276882794598053484433907494125871081957708993403365487871457395399483499359978328113731220274465103213006439275435854828970431617811270138398575263864410853895822690614489392260839580278170074974284308724304294348070214864783667303587260210791071351290016370382311914907778212291114831378009565954843323418708563549323349641821434525844021916542786663369573001751724029446840289874871188087702270599167675363925491690297862672837914638340919967217302829913567516931739541246751441444964016424138814882713270423234702784387083783311121576755453675364932018382311551657648214781640560889551776813726064708717026784976797583555895332011322268751742607466022275344035209700631889593320884172290251138742106966842159466320202242250229330220698451149920255603090674818401576231860025651815423149122632961320141856170537024845042388457612927442491166442589029177748998961924135873583790986652290756626391763775808434848720214222573951463205084037129518961184591134065872757758536743631471539700540762396558790651041831488114844378193081900815279628339103962212146868270410329656311387086201017669680644573033486897418545389850879019509725815031370993180007843090232104116434421249941838099617374224439054890607693971304513470501606343961051110740464284424541517117115254399686914049893308523535185815834183566231996863188840916424347528280649124382884437972326124934642717038006230790175771494997473486202495003023166130837375383851858986550617951331151790440816440580398054166995358357142446392874579720712917357748136320765016270556869511484387462790677635334694751861863306456464967645062331754704831904080689627580334993629796823187770767908411795850520399536192479080656341484244092448535325934126251074874401531412915183918613682365856987246352442402592185073481206720962246706892769160281667996212644789257838978052589143984762061401728448090502243170583164824072874259031086489687020078353126672619897671169622526534827312446217265860961142656897976480377002150936718185308347904007599872702192198221779492787811558977994855340139357753579652926379228551498963267524524063220087029878408900905140082535286418636419872917769267537030027578259870709075060113503429133026832464071466586583179514442228921232386999437538057688247655814737694359765726155037942612994139870570105642543348679861065212138420474802886408584513747575656206265760027408456563698433959730776085767916196178411849970110912935633979580318818626365641546795665009668327609907906131582416946893864239075041667472377655302283054503111718144121828085634542834085681633538358162908155833765485851774142890235951469922573332557917227903203747632009342796447692525568006386987087956374787581891324440032449339651378270630436215859039504689762547010152940176966539459807016749328919704294016775282839237084660481694089625960448709569657965421258376817505972585050732702841485317161745867748741619870969902444228922209102200900947178672301057462036691726556295717625276515239383613832682949915472854750882287933677299489993710699159776221518392773387292746374577325688181344862219067483648843632402370491034767926447301274275304328552411782369400112768158895900266633918584217318607878342341670077669698060654767021970735817651381181854548675404157448281470508844022017337132439213039305663382175535850060530510421459573997460270197163091728609346332974006048718151481680022587334020543315140520428908214932495068005411580385682338633761515304727880139584609879042345942568101968513561167951199998459648781189589027500455703200200292330226360013289109149306805496284810973931147728996572513631839956213789357419682832972820573455100999283305752393215849846181584536320857771434029981319993873875734571296623981139961773465856322018757241995946124364809883361522663921050657238835551238235968433579469365730630711935759772357280710677128528608460908973033693531013745100387193547306084074022388274105912263240440784311361264492295854313004655463675768445961342285801871373967328283089441886338652391721129123740891804089612549569611112941300465548007996622740342163861363642225434922223410091813615672871946081851176024049966786572716706146291239325514885480929361870847753398482853636536382159295362081620308124966943334091320926436121413475876346987335693939964276512691549830426768254057745138304170128703985042473852776435205833600234341398494283408861751987874068788547370814464916288736449440838691864779411462789540680200904814781270190359072702384997874605445649729815494762335678463166161531308078435452272780764499553941721075981914895963762272417025852427860647839791649928824071035153780902450420087075242465789956762724143763891809553884847749779996289089764936216471233268859980351856143235967766114508355075871981848951480433674256774083155910593369633508751475110057837123319411318272619525763919674539547846166319204058603883990866693146067157351092946606993863373028169250356012789889429982753459383002170053835761971511909533112659347861588759708508582633170015294637837799694858449239633659990171064410172763737969049872542476138534655787551652130041741706175956954803170774055701874659859013854253170795024300140782866954208194809001308815631641162770803927967664211203123644041639572960866776118474176206902188233854338760230052750884346972721556881967415905435383687562850697356760728252133621279700426487276220156633730803774296695917532726082702595060945999410389561506861656966753147906409906895657089383218467181682287489700877289771190221791254988957782075248125367460019403992590080143783702805474134274872632534635826233288365034272402726395792055703335587834010084299099742216012199778275631258468894320082674367683415663325178514989318762897293541461422512999946823762806073018161817135704529677927443752721316601867138385907458905294404920659749769080802445363135414259999223708010137103450612143470362772631705123948120658407000534865567233319655988700731582776299928765687859415988179723964650875018475255585091927311982751712496989108838710188067464767514975923063261288000271165090019772240333497944225763750545870791007780062256779900499268675423465903343178081557782475026250313636274858743033541021047811315290838345122302198219440434600399713357542287447763562530557622946197149843749915434943669984038303711882721280235073989249374669171066051430027492718760826699499273898053056650720631778982102563493194035805833143145155052460414445876936505126752769216255475891710874523019909242872306822680266036632452561523182036249721029045493413957763936200852235748574716196747940156426432072872581384445313990599896550621631106461671053639371374253824913362549264861158037404047182558483291895389575020456194873231047859391488922913813342299741600888114935817722340354389303373110003933906635026319328547636414065733863530081969924120037004265840860758153769058773356507703411070838656533919693898068733240774816626264521812588792784296788449094309252428450993975699076243183512606742363574262643602240258477053851311244968347155787871460367968747393542168083721635967699064578335861457431411619224994121454010154000244539462223947651559644465365257244751667917148612577926853700831844258274176614341545401794305877617627713617210425334001642542069283066690856004404467117965737791924414297190895726198535323514130269982577963587247654773098746377749246602525376760460780493909731885964790985586537548094154762205695725869034090708879570541440994344609563282015625291645961332889494437963002737039001407884766300477975341815043176225490404848024810986410386164205233634321871620642360445279209505825818379781882244697282516420863922492835107188010800627238338951220309617218510497328397847250821025183364409366933048312979593475437707513427133486607320484371786853413848533504556158364214371595370197184340488925171791743413990641544867080650131940400717856049638060491364560753883945931347788273692681925951837510799591966391993917232408969140022979289560275452271410066510657705462505277811579496968745134410851802119735336694159399437414489224470690314511818652179402279407894892918360691425858936866259467979479614839770156788105641791623818457157171209131131429223577180818740932004500977278682159896035717980568686689567932879200736517488869267597836639655182270275790929616902958572559512676618699116232493308939254728580935565474754484856619384175642051405531629839851966491481549720054648501242258278795475663839523177356830112536300046602367103356857304877594188455391032546205588200743456512990915834959134375047945574015981442392883719428798594509278440911781555241750796258277067532287779714053431472727399059590441325205462674362033977853383769610447655458776956655704382157340544970055437350934767326538592069377189956410518864631599117718810442115436748860478861811530322212182981345154608839407649487702549890742424578353732875938578047905280693250089454572832695321699517218990615129179302513905672481909453365609848214107198570983987631199966332030701709556254943630199279437165816026164668853926137650698287434752004757297564725492695506515302171448671562097204586492746460217817711159043183680152875960597316771285114284341179225909870080532410107734003036849643686869702152447643755349588575403228772181754035414234039391892010241861349615798430478959080641766788352642980986095972579157804246352129779232424254559627125115277961859387560688192711378326254193077659702351636800763264562255767604399481136294645413191187452571370081557211365451358295765975799775544478534661579228137748042211192173858831224012988221791105260939453358145988383421557820312214231573988653316318890959027849045879530546314392705401085862132454436383821848525404177246046151349688948889331646805378477903526981801488159681584788670054968753508593942415039903808157307057487954152134518704838283883820873086946451616828927619816550707846044195436940997369669891043759579553285681705122479238893951156361711899632815384521191887721867655239886904483920403693544700451554947517787419583181693087077460793785613546893682974301060680142288701068268779216457405197828679773907337569109587332599531494140966826716244125135500165058370180171118547300866460203859566489782886050150712858979640743695182955624694063836784762444542463908294202752687171742118469546450595736858110339599586879561846083755056169207403823702052423909948807084291026886970476866666768863915714439721809756512216307638205340380040972065084193634693834383766741151136625331518980341772320254579874364102084973357970863804348197101062719421654277543628201527969764504771978834566853567632914941858587573862736190120286895561787451355971030810710593127437239614845504158551534218781930925119187329194260458993018454146760717941700155018111757652360725231661781254313975702095410041732902118950456641800141967626989721986158057133993796516039503590622175203354169047582916035849248745993786201228889214618356486077880137761480381368695781652431214486074173822571052222275178764417115668906652794500163928109314106490890302040614810721810383745543489735562157887522105645856739409961345591311066072759203171815733926170815195576980636010590901194127652593310390538230901895293887433915941065846917399177752904683336593586291382536145583259076464614404550406981109705525210359676309266771167195209668601532147023557505512001819518897883113979909639615904191420102636786010086773282198111081882509286372542091430657033131708461366149697521302468254214134851735116032755893605106969315704513283122431576223500115680482939222875610295166934414556638701199012584812228001418029646344283992535922143942637945163560957428585659080997230393995424999752100305547307404627033713559803713292943968255206975962462127846654669848994773253050102721878649959648065574748320969128414731464993681082951899108568692566933409668553472010957839502305974324242025852747524010055887473017861630926778410967862248374915899998929618829787239232604655613736535904671904706183748274348511221469705956411856179219287935901890254498934865871523340086241314380134634452434374486548859356335229390951826973565830594677919693354130120350200299587711763994688638262847845043955304431727345194464942017486918271345272219726909542640528310250090127532664632427835736025678286024564582700827652638506991620663769096602145445864632934157726829040902615563202291290158128877397135169906123251128070411468928698472787752626787440576027991997470852531299750158118110262526236838364261360738140112053556987010041922831832207610615812631883189200348992926609776998850243838799866515616823065121832088444200009105310392786389807007543540009772059136618996052005025264320355763078113602164957692301410185043776671719782343766550024727411444208474540015833228100894693221870964362275917393095506568743727495359870924386373623157791998802773099884611221869597307896691134326327441211963334286710963252528667251068407861931627076771335365726583619314690610294251163132527521031818796102693216451199955402920797012625916682657555497597053218848756954454282464276129244231225430115513610448147225633477476424234355761381436632229326966384236617757967092460520076576498259365095101125649755474907525008822529462786844403589684045332863180087779281118134090564424411891192869138125363277530163470398845162852305499692483954843362546300479810674818201122274280938368173952563323814589460127817034637480562454911113627442090797303323707490122647275253647239603656915538573137442474561027486387064847607251182200420891610122091723291721821091789262660201525973168390869601435224461134146912849857328544090889807932494293988632360194653606416981068053890012597705863710448890451514363774463275547713103907484126480081894841061014444992378731356894776826086080500102866479939477136217946987866145018963698803222000456257563415710990039009283935146711687842963692035827054130923914971837277271667423967130818822028989850756967843200229175988789999937888763390118593729010588930454399286776001958697283315511456647442544503030825831251337302725567573899014965684056385130871976739866427432211672761381303223583307836390599797886345074683314108648020341236856054582911109925467109089750481686239776281471854201778166579407621821280391354665792401681362677318855618392296764820382349715778799157791602451111919267840074077053006905075383348856478043720615222477610740328902886215748762614937553953115286009280226780395466035880061241913429408156958454480763582558586216966091639265425108672581439782775333936745256210420180455057009852106987221060185901487589990540782042803666795924097769055553048504089239066016492358189790108271920751325483444771372994844096233582543156183045068788189142693185503400028321662332174922674628445751054236888655637807545683636623997945408775554831425383365826926058240622213307454187859412594594850504026437129073073015442441930150956051350685316486628550125427784591874722562814388453585014149325651794847910728640163320054619409978245747527435678349205256466714927240025222793373325637257904614209036340039901949803491105172953025260344221480134884570163472898110132911763164685829356064140905701717271766798142766742127509462607657774520258460868157479912778418688487666540098428202793385428691264672672196258393160543867785809286368223494328475487036265660569860192377250008137795626597241386392174949813978016014791225290996417599621794716529354726199181518002923535399731835687888352337518107256038317313227005738610149515532723328777541193128853878982016150958159897835295508332490993198607144305065595589992760607739246386854684596963924968707426914484897933364096447377772295154255570010577695972985019344445022004960102476101189434437869688092862894107154262261572624406429079614348856793298008569331777471996589731609949244280097333426716422343962568635709203006828804541361550727894745889910972088807163669418125719857562994904186552050909816287993129439926202598565079187133526175064463605996898781908911961968609017370958347909104606183786547631742363377596649018720106275986712371683874509345100466944059013949695621077045607321724350927391195996816275125791245114161886046969134238215723161531775727661830906154633750596998709337270585976583550472974609164923890506146026846060781042553731850371950654243683039603620808854667273588649941669423959284587311102174169908730990431438936679701546763736944933511878227659081455096179977862586650116658624307198869761024199434242603985885198201164259115050102274819188999459930350379819044065398701302896379118545591836311869699004531654334221920770425973816822500897402516209776769436863288032674888695035948845496896722248817717989553395990401982296342750971961526950577552632424690912146486015157218954767329217258301382629681219857125397276383292829971636051576943907205350891603396152293534406734846234747849305159761326202546166327146036820173571678544733057928029466690442452172316828572428863086947738718166723015413298703825972471355820637862602017806397430706094919807256614246517537388004979815542005660869059239837502852456042620218256927441336574216655161999750363821801794023432586468616330088474194384424797119907270611662348373123359580408322065572945376048931890390687699238411117948119852443854310147896756315962958876507166186352175737485601232047605068888558168618442233617491450821223712550458605723316085781050456017298871437790810154294393798188052118851643480482520238132556707867220143166093750641913243885917047236833307387304958152359894337541754841424306476125400082827291590635518275766495696082443151876989144428912034920048302468191866872941511674984045960036173529502261781692219217202564427330344700397720971499204232581083803914158653313483353591668740453118687839580718456046839005471852358817237351757729682978795259982020177145965041755391599295379692396035495580264629819994225633775325407113874968341531556043016025363219797710557548069526572688279340313558593117800994817394731590639651464823080013709197044628181534155903332385841624472741308864809097095278208211274542297299502490791448104523573159859907169258688076474844412506414067375101697205199573007854941341562616596056496900204751499459056726823142360035809177399636285472083554415566335614758603536199683716707901007671417983619116356986485020329767160886094288590004107129239963684961215405964905683446114612086667318390187532500181382913700880472755587094982804565317938262786584527802354629792409970463453834988159653351335608890898180152990498797565965486427844011047102118860767955416019845060696932451012533427959493607851261290080046085155449990761801381996818789388745968169250794417615700244023624422272858772783675491495903047561843966023284127390865504428549420577021047931354741328804576541331158886208683227291449120536900683989616085886674383378290291955088872703010294583028388378290243979458382223931705569094132698933232334430846179164178855867387831075077599153621561295157292215244203663271947651015976291555587327875558969440224788995146706895989202107845330846465038302885906372373373919708752890580713963759484209119670619805242038537196776672842861269668553992957618971224007237775381016601876646578078088041305633969270880634238682489232224308718589837276054569352251092088466945833610046713751770358903118121033336618020388931781694252302210130873352829688638211805508277955830046668941929537688645808159682972164489213034034025522166167697347501177270752118247625139252589841908984215809082505960318793931568025421562323707298690076755026396529287490814554106933682956838348156413126038903355003278830884180616935529612887920132362480076787800531548422014898126871579289858440238345318866358436284916651295787691419244142055941789869433487670600821760281919703758236540873565495553002073612961098167744354948511190462839508540007301696157529244394942237116264206767510577483333496762768626983887412145502219141891664193318460167618441207649640567576789521678738824686592848595341113237467849973418162872896634190834561539075623847412764245964848362728448984335518262445956205644040085895927693433897226524851874632348582583979724673258515447119593280097502042178348947375956780509371783412401285201696434234232016203074724244829696584702173937000789009446143159711897046726385793170685561971267931047028096415095554606206978076353191168881305764273946168962693280157640356737021656422684763103752003954839105072204902100120749310176699369101566329668934227746508982177951492185343777031235046046020836969163963946870108937598926989529876538393624795865768094169157053355724451987316447708155509260191555128010240012100581654074313881329911058653752007749956054057667750988190250653372437742367563085676320281877073675269506797961017982754107057417405935384751949638108413830479353580360110278448441983548383494492334148304353414585143658488910565662078055658323170539557035197273474749763228672999148940516332259400494320857407312767026337478090811664579954681900133161787908225652009275653596596596586099632069950947447365815564072753326968542077467691343019577852140238728558214333173144033429924228271287569984642861396605689881732181691366995869937359739791377520752592733356998492019197422834663643359301277138401373353524058324348451838228626733065435426574611372561559283235553123007196281746698939917032193201016576909588790360868314692141953873790440421568269056782600590912488056035789579038135543803794300184477390512620173495155822723045431332874465544629174228806592913934649293301411847477693868740096908706149862422607846765342446809149817189921753853315997235253091785747735487113776682746976825061121848133051681257396551124725701263343020216964435796533314321519411118088537662161283242902631737653762198952221225872733692289599887827324215634855773744825559220519090128644132019924233127974139309379984609015399679123491028146308270427028652053713635909825260636322977729929073624564187751061144162492738258834177903347340736842016771915329757105804578213264882830725666057450533681628457771140328476606958683716765862702011966861009243934620900430130819354386045980808316859000160237728706369734638330258393774664836841048684084337825903640137792280404155056488671545632892677123310589392079251914937592123047605414082072234165745968229633534592076442301310737859991555743297291711734882244027589325071861351710808325384593450195988886952545880307466675523830586181895218309999206636559646174917564134825587373535280307832399128534857675235713210461946802147766768764059568603098674049371874055590646090057516044902436802106756533652867708731257082143081729950160564724511397593783195696939381750675414205809972683074525003913751647210338633382314050981322136936157893442391156044977485295576490266662995750424129822549829246951715799875228185039362778647588902351593851544527479953134465887908575816884618000379713138027341216064959395637224196554409743924358410535789365353668353129033804262808930607519202664545175803329235811833038468633858323128434165411279256650830478465707041864719566458319060066187059195754517202974193425429230643660831928253348528936107549666305287041922022914842665813367250624246776349896942209469776292978169251084167297137325391094475916254143814302498935887738396612615543469722795142362942633237358292806282222928420959101443374706952791483613578465707457553290158074457083858076003763734078007816853601086439974137181044047929018604527936534050006464799179497542135487551786222705841569303927085218782813274464995990587716442756089794813971869091787508779316530793453968375870240575322027415460993027641662183637911060098470805439468370101415750483356748521545024125378451619720415311336260420743805425658415790238819080984941596769814687949021709499110731564952358026721565839158885439923790827016835997209439751981295635176114541217514731839014321076458252172972451213168097425221056720731555506488980377241241691857602135332188871677070312654049687631199438852601896944713244023910733903102133319260043118053147271308598996364337282553013982508310160295787386414603219460889986728369009075520730638793290732130222504155102836055876887401514378032990426722852360390222512612438755859545863342939509196808563321620021482637838668071857494207927976868435007234627209993164036449316245992884562872685385906981537773334753303725729095058173376254656910221473170604405809480471324406544582281862143566656612526735849517016264761656917207740765076266011666306334526963460129733686929209717330696271945040197136329251287692823695967168288128707616639658812244291374267159770785178330728600742117055326392360344417036487810634417112315583082441548315066001635051653400579929936667612282550821245461076354127079008551872792927425909392127772519618651187311200507388402199302342030525176471906797347577328773369429165745709114605907877673176877816553040253651195094767990776657438619499610136320643347936883163206682880549708772331303258765629715743106468716827724532189405037384326938632554384189783598559602037942896224614476251620326151961494843538396712660897157198174974427405081355923705651384573173496108132494600031502177025472074991509277221052847208416643085780482329446991439194266547799925150461614057922742955112937835893192199434609223738215009262812105321831410558984865381118553534537704010454786756956765156117135187476153065704443775659031325966831582962242000875672710296668882462622740402591661131596139255727700335239467471373460984868310762880716277606255229282826543316304319664378835165413923626155825153173576281361283957438372802475163019562122855516172355320141938747838312645142048345597251713786777981876381135015465375448903501668365657289286883770306709531561516423807920917278752721557603319420868701726944577025894479618325122287705769543251511531260495425462064279120761704407961573344228556777975863599144172746970807736138709755658866469854183691078359714133167070577916587549622625264392196581817130520742385238732592145725946256470143836739245769631032560662748247018396988719301438258589856232147441458170315583479184578708413240941102131344394852136701366294606084566092510124530628863832974448539771706764868819466254716237966207564119159803653121142068357315080988293293144394633510313825775647733890340240383031948775126653270610449029288713795823644890468057388175176151401968472034894826488625052432603524575731907930543998148736524933853175154036484353705168664041943679411916246196971977606400605366332576574478549691113617064199204008080127337352798359269070224462801106638725886054285271468903450683557797526873249752130014339011643367706342458573142412445437429450508994888972472974761056478426302404911762583764472967078107104421420320954646101194284071304614336482689210314050831575720492167881723021144508749343973378720886612327378980449309542229869418343533365058677830008755030617200651248004493282783012924035156289311383448920176660633510507325501011259867121575933567436011755442247176320818255258654914979505442063738556465542745236613177985545120971527861395803197086733974219961435672760794562038213575461322363114729096964530361011273222789002392083006324944601939576395163213366897302139312350656642604575207118510332007279466114072756338882418748407969163721003341864203242726653369789919382577337001836584075417529919203550931148022314706123963159495972849657871529461544546000626491498612604973528182312920880799200931763210825826920771671404977440617866759521187736192180976340502498121135878503510712685773972802959197085849748134364815728508890941061715015904847891560897852949581830162134478858115151218883146902487683324891953150941675607855957519769227577642186073078365095566279838614998440740849777828909898195854056358784335096343439470572871621013258986493284282578007230366807958776395164947230838860986972710182038678691332467087483444810172933145199895369995450375727126669693501794477131186909560787748766020173315651748008295061473363265010207934019566425555723639931599804936398437748634064319552022265472764623742344002609680179933044098237389319172644739670971371194028072188196288651238800080554376366247779365333525966154131134855080150988640641018147970469082935119031954012379990143082198111659946406456612060057799522843638588491694187507164213276568386980734406469333587185593654334512548407804885346609574549802966532270805844755807325365053549501992600082643142338357892218128028269742762157027889741152889988637263004223847519294591590548223055592475779200820059153918303934379568527150724335120288054052887633969298402024022670931261855587237683139451066359458529022419718142547707879112427201364716504897900725725707119587412658897667098194227441563116212359389806402166763982847783936518383339489751562008725239588952559430723981983242075088336750654417968132918319435092943175008368263693739515391363600216987497159181083874296387580533901938149313660523494845008743065109587745084244877248655269861527398830894839799406612779332612160416508077128079233019982523039406901974528287671735410969496497073293144169421327152538314970681722185980817711513785785527923021776994863214745643445304563902905338287334871074023880820047707975729721440287684790062281356026635916459669393097320297350242699540848668010421051547123951801517748969293770945072331246852613494029513386111928108562809491778620666356265837722226014727310880005028301427034722894606099392469684425894336784714544731941040278076860130377730546432823007332385223484088144451051863525327406166888095795601975877415256590368248262021409106218410158533256138806121430145661963595238374535029377623304620609512561691123606803879342925876302773212205077340997019554831870005288162526359396848931603158965803954067229845312742050239160688930851321010032552394963630799378328463452866279497503960979742748039161854236637606800980454051441361351486168215548965277065800229660717828922441218451033080298253528682315806150953323820359240179744069761060241779800947948861648530570068508090783633403647087944220786991237284145471184755956238899122653662764439800626589206680101669324382621955629338465058160401431307579219574882740593452262230086756225590148654372647248357109795749327754535317297756826111657721778536371198324826143165364919198640484989406953919915649454612363824311288004782595083738728791205438135565595267466198893133866077798858169952505406132115762890507595179701038838926492681397569185311714529268897660993988004981407659289983017172873681879173061325311383050509281757680792023474140021694725863250915483851890632109760506767415769867414521492824036299492403085221922691801656843676404006921260042855236870254961973450424140659656363707202772826143864114636998511543648185663321616751782808489790433189265664005284427726379240566337219470868959183988304966084541735164394608683216597766187622668822413490543981431173680863403195314515310952975500202819631365642643219897671619640900081924565684204443460325921367828766274244801792689462737695511892705551481215834924374224488303434941671070941456307059788040613620606879214474484636631011627650401894491404966127120526780133799803172263409176031987865781555497230491122905308186422785998055935297252972745544367779794429540232344873019809000048281374346347319911528358543266517466165789855815336621035496348248608953330749936234214295146674643427743191064297522762487486799142218420580587586711680487267354849016891410374008387218515124735759967789661146958901301230032836327669577602237592705619738833209546397540812589260883285970845788356041535432011384076347631403173692408008903915603966466065298686302797400033369392142480306693250278801273545371335666515307452836747244390944229248682382358654361864916320482243269285946442094436480688177080385901825138666024117721860205956558587092065832772125713859385917601220368806660674546355218097497575308549616582545984221639389741515257156901089898116140757585738261359727893135261261015619892086866542473885442832484210230405912294611844416065752842660139182855377542106240586202820219367315515518894079183220155847779153007339758304773907275095210950424509450299582644399205581132669830317428605346295494339078652113765273626152835927762024830540015936433886881459622002022007997023642776852670993646464330892767512457170269943157057540135551628933387918794846118592121687025732441426434048687499387290317529496185553288825324403487810120867608493636138821472495958651651728797397548492061509314229039482845026416017833682676575901288644760710177179012558414164782767437269182346539272281426377785740666292432637358927974813598543478463545816380944048599043643036199193359359183773844279778761315238250909759856240841437457731479016476051342471616635474094881915444951750595206167851214691123879505665393757511354365820261514093206455018195240884968190471846976549907653828525068268240062478057753718403426042251367737930268658781661109579224779121442397351986165069270132910932882820344089680554987460689860660597863135803485349527070716088025842982101798649485682103821996442410817024555886710285785636355731539527644723242159048906342683954329584652850741773533623702222379314576255759686695912423877841920127986416409612444168890434160162139540340794891207449729202956270505863586788283365586189812711600626593792689441556115377323797617998094742599901446390979996991698683589135702536379213940857528492228192601348027075992126803228853777496473017700074974841082291532645918411114741041021007482738480188419674568201474952934992853229874698727421830548785517083860283130293172332985519305670327747863055124980674269336005806337531216830405286634916485910654011541102171336177004516945621230164640614168142001843130588710703688139834945010319223213037035441698812488907428456272301316469335335053705509259976159022424281728072063885841479856054217304582839594049530852995404461677778957877085017508565353538019223291640835079726421491685205854392388954026172396407839492518018338691195957271167086048665944722522725378938276678068469360929025079262579853045110867131506760865787554224419086167553572103372924756409426887350128852935343709833068054793429304058694937629055514595175688333309022094728291883725181154697105828186644926356580825709007467359171641108713272239882383687681158115692865184352845731324077757102001605630379431346749334941926262333446590911465882204691068499737839787577992338997257664999205551251122805079515626762427167001758764769318431829353475510096009383930786360041220532209058437146943335507589556770375625689635002401055600498016308573421321572212986693515078995498970782814128684208598039465927425871506819191683196852347832164502369988948615639007809234510467018894786881617559340809583728838333411080289141653047766055184363633303433448764432304789999331464176943466589915625120855132992547780618146855983851537095223043833407151970418918847528954284403982248700960994150994973983424710626476329789015125935672771384104948251127740925958985092720858121513167274084459646620017339013235571170231580548729610548290023952604420598221562450331872380381987827605296224142231594792300289274272688435292717594744805275204850476602331734227832408420708645309284553059261032335539505169617684727828930797131541367730111863131201932105961903436154787287671955392576680136878270440771190358000585228289702255973195372488233441749087050600594063977744423562985389171014679515394329555920554626166601253195788801204472764554925133190142490993784028901183001462094045595711865043286777479295348428702578614915321269813188359865049163833026448297259066781816924501221497918033627778588424888141937305096137937514720641698106339667583392742635262445481469928818167685463928437172793214816997714380401893120683412253747729564733039950934234332450447711607540478557925673826629623376880940150029609418172838175303300685475400602964452536711911482074157475655208981208270900145060676064350064613055247048713962998838699561600033536452744492586278430801123374169723319780367744758081020689306078676631678166061811697432753928718425261844833333451414082866226923040123828380051666163754703029085130119417329139844602393629777805246465417564973923073604455262471247369328688828724760544819457583414879214167631369427431533718149691513412079610483700722609404829884637159662882107794895707134281179048854580447936464152162540516756626851765862536397423598227796255166935159706292426624221057028519448263343387884769642631679831892730544199727039702754834795451406331996260857263368993089197007406391837003499752257350042335933821111509198852162448778789265938036720851976267258691464299325224929940097163224987973252593757460244434895735682777374314119921693863778354109301074258107927963102137175169754481193340915465058446606925149289253577397171330123103310653865433459142205345442334688194256541965168133559576986713604648696411186395667960340126112626211975319910004249259861721197407011241508603647393128973646820917401812677838810665014043970422562863722846761879266871577574071431721559056914414544490483342823078297837894839304137101787862544498887773273452019906367428598186666298040187766386310038247290974941028235099809671928991429080375229342742497539117428010269549810597201685878700596229670372273226735601163410134643242143987060083682382864924583040197109619900714526065099459806038954927447978002332130778206197371073157823190699794721625318136523104901371553841393691831883620398433086343474515953256328770228316680208856005089923510225639009727863065094302183836344305103662639477671721529144080652967574436409733187016488264693939632002123930086723868084323993755940776973562369253098585643109595398053787194775799727884354014615551039104863799151999620012979329613527463124455482244758744442504469684087492580634868152740908204776586092668739071218657105176417345338900170114211993228321365588257331473821881174195262119181967771350315582361802182744669419863074099151808001307820491445285152466745361258121371711459382685012114279670194628090017919096514033649958719575393831797477500183034979423919609751707788860651723159828773564720827085033845861162641214766525109672997344567676446389500394443318971506765735173877019242542568271597504009346329183941220116257219273345119840116384303099366861373161128196685866132219780329123802041647574674778795141046850536350771703982510734116605999653650086194747047765423369352419228453882766985655784530323013019032189970274032209881766872965671798761625492263744667159220979514931209152665411605900429921364382868420859068490424334364973080332168639718044881779819139887990962744361418192495414777914661868603051132529604490516801163734161216344383616652679723328423812756144882225030504124924492467267271255522157309340273033670603321622774888941299145972350160728278292769533848550056689907037686317486658164867639455847296358628482762163094300492366699060783217978321351381616780179033618654609330782645512345190228945888035096015744911566025952345455941995376998088592745302461710240567280394010166345674168336344388507605607087854819957380072099741924896862950373633618109308225334467390480077558407993012722277478122301310730228718002193160603131244176351710957716592468230823028535776823688251078270888413289896154331034425357572381549580772514483878659469592044518170204591820104677035011054209425628265580265758954503418822543778752608212945939066843938915758561870544271691659647147077711757449554895653749136045193260675824729055892929546964278930498489933513318221824665813349509850107262199068102591184908102948208528081420118418238914994851256128727596530805994830004903127180747937359747497825705678624711375682213010613846194837688423155575871081915679477225090376812581549899353786908073052028068051817196962413833389988864350513158222263305230411397397079772214588666441138022918592841189606187089940884136272039723109723080937348376648268852479573464964503965759106412163392629221447248936589528759934437347668449586480545271519037406976482596392760943202799683967329473391248769704823657074004648645049472824797627476828036413631240871646341227270283942120757189036803996393817335570461015526600013805905185158366941576305313204122118150273559674957369143423274026544587535388130804657681803522893603036559793465178682278188786384289986607688865444475353467334954397109522203289657755399486808249079045105417262425029043525881583463052866736630816716957076358835068181130388361262602190204595753198076411091219419917438552975779867326559709187912717260759015944083322324170351172486793579229508727854079128857605136453625614555413449344506558261911249349888107045547606631286932236561518585631043808388032618855807500359288483566288929525163413196447628199002885368142714185599032275792993228730149768770128106956152192756195584314442320220652970282392246174493814118111262527005387964589796085276594615212314435094721032378402452589992218044138884909092873912626708289171285996525194094156721407149223785123679293045563739215762632914566261764613652267931330010229286885972607231179984981316700550815191469465418083443565004368449269202891239386936885162941940864006730689291499879951516623789538277881256177231200399595642509850046862064373198584802569366321494401077482379661477891865117645075613825595759639785167874176945835142417172199089626116627480178667076696763049824801008763690422593718795157371249802354633234449537812761370913523318938316847108334725371896431110165816583519393876678772098931291979320999991072146946739947920216162998534262541387636090824494850066417976230232490443380668688361429517176215037175554227756914698760452138522416130202789141533613618061801769787437884719269281563575988770159694241121987947048856299793284889603941128462054475525163454634498865424631511923566914979870442666620968058869192312922966981097449739627248752762527219594912003798909036170844966531945578419962245518266176526973604700910815172434316125176924107389911173017617316395006714197059909332667332023895377573358577873003480742253981591374026517873355862207071638265858181654029323617884316204110846551287344712412082206715483894933777302387145737777312372549692639975851607579392388282321458547733242056246493722911406608411510303607849820851770775200605927220986883812268698924410693265226095170293460394405013425029058057339843851867520042153857412339231490022426129339458080981694524613358737016257781712960233145180818707543861971162666662134631215666319171444083372659925892734785220049050062572680858533534620208772013050954376031695835053340203500674837003778507491266709067018567410079133459795763065719246030642541923355993068993688083227646867861700577344397011381663593171616505808663771026914992351085205345535111214867574339859591654990855154888788705093565597145486560757789845376825181494350095288858833681151271026142359001797765392497540608081991565849698767949085573893161649266444045630354829963295305919223363405163976011936839641456997741386563488033787545495803176244274249888710747525528502129159707980566995032923281654150242371272336242060468299442938138888383857741699997931030510913867403911227010382051884466085372140581495976440527629903919426874807740294239414182232429435971210242083954177972368741221806618623196239190796779963942864771482830304913014605304707063829601889130721943085834211815470635002214853265828031623059524533566108475840168964480563780397418556559627127807400765245733891124076278398315015073702757693359412126834066403671342066037809051075386999946390991182505656361282012800443189140218277131711497655127245509212567831825986776381760830112417330818644761362545581477836296432343089457267447060022742772590349138205194086652476417828633958482397481966617628154190313799065494554925811459640066840433228527446597819788849918246075389974532565445689117388515854495992359520793561869050668956397238880251934991639419528410047041997064019989594396547120060256437589001036451921287938541317860031689432187323105701749688880132718789550063482210198511650970160385055680549660056928417765402337495064389575667590571694117641645216920159689913420798275987010842600051920707099920621454445361448148650849560849681875099869840437862332398823513484917468806785308504703739856099486525917936878360967189983981519537143464932468777633945407112941927463120432450997068874495712415245655637820609382295391472368283076387745494559606232167632305160286891821146553090801207067296276580261105029173116923780343446048672565759485806707359742386747211322633293942232046531401309441183190296939843648109132843739302210284018604614666385142279488137205199589999298334777446071262463706125247032801851026746953361023223051415112084161298569880803890609648906738617931318490156130861832849908432175602008273284010469491993451798034574588171652159296785480623009126619060671472323893324938927264895840704612792016650190595973150626821055243761417511755525823846522558150433872079366243891921409271745779417446046757481600800847890403545298684948879449953868797610118953124157783150139569191975475848449880929776068162777929866029112815324304957202506042531698592914918654889839285257360097501601954546841844181849169252917190852809998683965198278584989546603646491020972845444616177618722255188923606432981017549415091679939576931603126715688108486693551999361745377710154155706006600906104947553867105347566940606238887065440135859128350633625278555986256322983123871114362280323388178096794268299309710853775161358046672160085461396160097763158512170546157251470092390261832329369331819412051773743957228490616128168536787968487598916717151117369844567443251165283631905167895185135713696952916616779390060136933860308857458665281633435947976610669183204165286695171813594847704968826694627450628594546352409934747759332494073360417431621012287286369527206816687028410014556916607362094403046668553267635840757889758531503333764464788108375973950531189072038114719529126026457110449909541845729911792356322117974676749276752058141973988201143377503444992999078623700605684592353925275561448481253889594590719687503872754712495484915978542032562278504344339461377322638364336332341017785417190840042701910482531804214326317028792589341606889140028355047773793281791411788033260620068538957105555346920752143110631945262838924179061944464117446864709808330233840857558775346863708880823014862689021838421653383933361880568237382292350526016957136744643224038428855480245652289351126928803922639933710873530728188072408480044418294031942039766195933399913348298936585392945693189594514353037060847675775852306417716828599582832765923165116304887439329256395184716816531935458503454274604984542446187561185584552447116502878119559210480278415268803429846068826421982391639133852190543869306580731243208778252735658299839963449107050252287407737957918035093295661244773342964581581898128659632168195810875541391630156580720541655186040630143225803510715159104542529537300121387663370442450659440606056946685464320776021572996682881504856650488260559265771873774652851798978028080718054629025188521804190136720835436897201054380781175696372519784607586929486676931749640922158072728942427602967996682248408035326681789523556232986103666525271792997503553332984707540599416547753531419001458981531258128347507415486983317960094800980280474041164864230797376312423949386601396952132538361757094901291686955018205146420444465087375297082201608351835461249396603497466974547027727089805878050742970276421016893318971784035463722286070700538503225477010508201691337098055423529007328768886105158121217688704604368638186371443945922910322348137063726654991565941448727210551201575306332371285948400411600347911368072291279765972688578679820142967880417450613525401955456662311553184157939219220742274928010576829775038633145960900907481572380774648743983142112288968119944902071399655979474580364989161640766760016426321998935865593222890237984065288427473176947378044660297493290776714414425865123732862224035403910488630668691522554717265415966145762524245420225213050871134889725716017103049385699106435012252176554311004580533962214749059120640199972140534575659025595600432700518688678230391359590583841125834533666020693821610762524537724712890867307753580538646707113451365525096213155809603641896807461807368061408925514581141080100283915714813645112038453020875797599571931986738611767207969537083564559224034623701414741218575829284970688918680314598263843628459085081608948638046465337053499930709051857065365679672935854582222893356798150871934742402880163299185674423569359719272421269709780744432829032878536412527378218791558063567003499266159543310701284943199063468511289258656652939481475670939091047901061423257066652158286036212478225719634398202343303807869907358272791467272995342930946830849027933763767778652899921020061260901798852958617686738992087098831519981536940054563193786689864471384529204229839685263189734039099712525978043567675060613370712046430156052009893742432326538522537909982664663662333707561344262169552700763368119103866522498136617326710327435852470087082246939454887303097028583448943377746734790142560809319634359130356579705040423631363060472068073034989704506148506625873271521344835860541524285412367105491004998208866535644994811286097533377015112730596885171842290864169873187738711271788537561399769714665252415948576788604192731067074873636392198835850267126066918701984911170306207705964556686275062688988331116735697113045578500775358179336510702880642967655131652122692007618282710885587021055930784609590726442744275994907177537686467941345208943166898263055455701191001072944462711364937499924458330907982456310700888579853828193865584888864408954975293511730786963014947746057517396462237495791394271788745782107086171037817286132553927521046322494067222532415549943028923662557284907721726221352442705961335154999791209839715642737979974158064341725410965398191460528596048838535478923256162274586544567057962445106283281425122643629054696169804361295823153874917388769190806339899136155673466036106683236313105897581431149627828225530690682506129137504977113145687040973577204099473216393855193636130831909257991175708185489355994611426806963809959034714211824101119230587121129409906971733404350982575051171764515782208156274390713805307705134947829933877610363277792955506152037345055976701110625915498058000750419626271956244235415109722954056393712131053046986257810786253290317059136256575350631293721639063564178636897349587434954433476461349595049970964364797510480828105039550650250297750474100941180936613660975453413460557972414422449160897200841722664684403918452960081836385935356558677976947477572415577392085718564466840796293243859633721445441270681869400440324875891480820292567736997130592653451676444346750072212205275387577303371136533870497203720582328562060926852664669354874029012231862693827558113879480586583041707648000282416548577139785927879427929797166380622015737287884060027235684473186148347765093282487890876353246362346059494682583095917780767079758199549653133648583767476239717695292133082647567263451575141268243417481447843693210853818622658304092289273904471631312825032013648884571394937519612026819448902553155468715633308717424309899494354464528307465547868240741435207775927217228797481042637418972920319144081080851976119163446690942620562185832310428527691999712629834177893050398700334892342985781486976198012495329375544852794684281509564459976143103755744842260206275704526949203629718977423512268880115442273500152421399909982668993795029000095961468158303548056748982150322500940973756595082991992344032640592462841299952363507068536183468501153955945105784194352640292768451782494727730570830236181249577330538617376044972432883390073996371464701571898363816151782790478948194749126767910488854883869604185637342979016736980239098549782770773777242846070908998673550372685845044904266738035550566518206867038467296930614964309241464165195221782404121371856507598455930316328626938411232542974043457725037181975292527210324722982584201198539154077154923096879480691287571081163885392705541461178345989371056056349829508769685879615643971827103818858189649312229047038628249835255982629478968629847202502435514433683337354397271113020440923710189306196256217969896554598881019686365894268795853946890068969441014616713325857396852989767029046573973935363895584495169313763620879364490339585270127458104721787852905048880880434602195416368281443707805741411223881661394518989825936059832369182770624159125074722889612044349302028039511978451785017956521215297419331706090727205958183706477836699896711861665674616118568549179941795097881359580175370891447275106888056303388929473634175758629491709687150159489791397070461688020380120971442121881842508693645085166319526150073109400801668483987991063545655694208177385809168221195120069378950071513825030010304602638828479959688046240077198968109894566879411072951839520013013209775059500596458940546298306946751365808594309039985002941483593439394490583706200724257345662021020651640269323559047574075855714221028053328317321866469301752962779081311962907613409022688230567121242828575474698957019584569024355100231082955955296667238785698018195614241457145304309402219292662029529706528069929056460652223191824361964123947898751868601015210249752485074363625970832765684111710656280972221611104303211870135718113918476819650989237128124918011977680657653056349942823118188836460421333245254814405047256733311059915390296584377646140631460984764296379981492787059447354163454214926655491226831063257262040951646425404441141265796415725781420572747704156507136258262314117931978124356416227827112124433846534464942692582136570608282616425257189652114832768930353284348996458712127705853267217095739309094821331298358462623883296787131189795869670070257152171090478348585781626575876343677316156527468290051144359402605800393905899470897533314197928656574562315214893848504794276270567964511471723367742963946354905129591276034013777284291317625248586321856353941366420757703320623407497536556898715381979499398200537452348091242539636073433242332943339689990472951720070048229079492628771772417755946227826057306475846891846438291065305747962185494983809808902559544873627710778708554450593273487435898907939400328650696369649090061070581245288600014915427702371557190911835395358964645871676551131015281812335845221899190417355868838319226422905222374037708529539064686788044582020023580057638026796098407532890210467124970306680838570980639448500495589999393080970693513468845707555683755533308237813825584654718909546427360366428202726317898569749062595856729744078248738020173941122643935635199765207194673199629372597334626247071335504255367605010542547565251630351974983712253256142337976215360654055481495891064070139201571879011703557338519247199007032778743022933831748802729512816622867282215648610021530288056070320343075246369181222825044034451392386849915801102794319825987820355111858213272510295115198603523766967848897348566854896901578075092269115046176739810864613838540536796439130269660846507166074451168062242862066409328348808411255358933519081337966570578197461242094173880464756779121105762301831582847890628514895236616694422519510028882759268719078216426489013506558955853094137910773652077806256856882589054223590205107223974862036199933578011672580896697419472385604993887315611043482157062573148468191314051881972340474452220188203748524289576379659473980438519710646359512351643037238768341313306622230546522866940673699651606194382864213368381880053504384092107980251676540953202390571443507017356285186648281377138087066486833852235615817335429309954883463912385915850650551813725650685631657905534847205630853132346815356535911862930823487149066464318136311495513503775351874623462219207044602731538488480115744793562113933424367724015590835371568617129723598814272745152289781433369296993112364238480417973844031674245150068779010300500204036800418886594602165320934314717938364063286456547679382894568820208362817411356215679233256290316540338326661221821358709436636859698751436434284614597558796954464543115822219902370277046372796842344236970410760654226827836174913174552712604876130380371624681692454715906572025810760000407389255427875322368505668244117260234324270038739565231303908612426334427461286774142404162007453209216025214004304151901147044742822107092532586619020559914275115878998258443118052437388500800591259918083767864932753347114419926938017809831980579656227516014993570659119797649202848225597191010052300509898719421933458628353462284103882471739249792104481239240790296049094803398779495737260589982545031014988143593692091406490048597280262950490861447241528622586911085612880586715504999010107281131346692726902414746750041855786492201656052700306823150706938595956100171475214036005342385988450847830774674095119038509742338103605829365543310516245662678047743901270196388636439219617281363572597956228232267041493491779953423772684832004637120302049142420456164634795838855416546467863026180511003377654475766273689722143327372470810085625156667969829234998833158942654388322764146689661884153267896143205372100638884252034242601424858598416439005604293716526827542702969850095676776374450201437655173324971678857590347500956118803184775254574732352668028361406140488923780709001487623597797751828880434744533829889202757663979921309640195797643224927680886589806321126739892275023454492547047101700779846837891945019115991309606836883844796968881350282529552175091709928240596233020853426547117144307594253846433199133073567714153098446070774360965195612498855982825037305088965409863886106657027208284575064340395497586861643539598436929159809787285076012324437020572890615269726513379545973593389926577228107717193413684488355939035797977433061783343239303600170382205169401551921675314013013742733111694384546651828146782305958844514222933445597993676222827224856515095518560019339257890814476440610706640340705095877011927354059980208951455188061601528358300235349195854610061010328244518899305016217661378089397543493647216066122784575693148488355448848958097499386223900098286411727375312578095110986002098938627075990191758910915735733224354709073885765254936533769423647914844974081258636679794628852542300755516301960756274866170794803306036764165247027673235832598034756732452823437235871571639828999953090526437573097731076805839810963136265632621537379362671181930570385259834768156484264584584740214948285629536959070058708395831293385169927774605623357720720822985438074570569826042374832938554704397601418443517544893903110742309245144447761503998603459111294025315031079638269820684095207156840147565242993478916088232517803570301468287853665773303686769856219889618658186203393924850878524102502067721104893076148516401205962264747986869809427472458219022635022986134623665424620845878621473999721783476133799178772626201574142929623654940777718831337151435567151030949274988490375261076504422058940886477055137047808099359026640358021174340988318159231566342465490568078104563994038773730829796300994755228624530117415588155632087893962398870267896036477734596960841486687416771024336234459587702173256420590366787485637148413652670296478048702600644249159099175237903541419577869491138423053027739060590820481798521543084861348751507175464862956690593897146634790291958389517879508593953259384303124659718903292967557405548976871558273343220243423103931423655991085314226464140256710298257084176252449291575219352237296870813042597117503506623098325980727992119005982635589171536309847808123112012154336790751400570550311560297495775343060519151971774519093385813571621128834413824094284821081262325027524748277469709720387983205668239517983530824142981433591425412343019364665604941391970114887602339794715055614243626187052721080391738584222188006615419781799062198264743829607512219424332628229631217016824007149305366286792947838298586452361523553791503640492395298607755681768498210691304355552412557018588417954394741239505972307958817937466232354117122167477478891839526716511809961515363240085951392712104400654779755416845465860392191361873954706967136287196465318981994305629852192404330052214852618902460534327072676881960452402279327803153102163984594170365507113521705301988642299239686287047080929047708913765435793880653717155488148393960414184153291320869957496283007054508031791513734379349294441577468692987290837861049760583405537701548488688584277548976000835440872063900380831431064336675451538798907819562917826472815547716671802217717114202076954004184342568982376260502394854242286902908495419571295490156104901943787888334079773046439429059009318928568456826211110603402911536069598477853405945824223384830175826937813172719562127512625147995777121560421534809158527400064521693622251141914953088065796062190548690683549340039464920044500768761251921181174729901180582242174925059276699065862387469056898252385564514927150535293894587516412970340636873957809621959391569962511347574889616365994307564700676618087390948886223936422567582786304800730077450499595997565950946257914187155117630710891109990790688085104345446180198346111645960753204560943859887737695660472220665065143497520419342558720635230975629541431580782150615385698385276014315578645093522179701599620185247151928563143557800913560049482903715391309655962304688442976699084317580304474466049220956994730873220703056440837603415610882296783776984047468463660006551243220623509527010277798712958773067912528018678125000448340209061635529157164258803974227228572799791055630585522551434278715219901924668178496845697502339985162294135803584519296588079833757722152269578413784214827026192597004149144053966201149182805215265166175199902855885328238731920191500890937349803139080726269663051056057143177531572343183665770567896389722302581708348608045778606830694562418365226248601545915045620220328786907742292429269618284739103281259971637701692327190788403353953460088905554829927711370319204688263590049675444748302667865275230117224107682970091483021634443954159533414872475677745199024849215233639049578013944649885066758032692521068036858323411406633017498268473926245306343269859499364579814638773403878542328583460042971183592913497423430843986690744343878161943073623818233916217240466408804803209205374689758076729086681958930924830302918926459258997730668275541948862195134747766985476447561795878830514213729557066058052491271701732822676927398688364807226454395216827900963765537161665017679264068248360101057581192360005700524283243415631858152571631709616027180831316891782234241934530027441752878495862032481469948643383048259818895676194181115099609700073876741593622955936256032726479217113495545812913973798116220786369624753683458184187249801126970703227833321790884830050230377821273409252923354891081350347851534340408065540135638360951589924067157243236808823223304344646704802987162031461881870549279379562776724763650769336378077836978239511080538311744764541552152354440238297517803759437927209508016298334152612294234500073382247303018177972840437322330244444862700526134497714381390640755535539522905462417883775567160859166541692497228587165412067345816158226538468682473851247314017585876422287032654007022710978210547854740664080534442243250684803870676344588274206545428532752555202589970330444138304280502713687502572885579320464622236113151782878989787341010986864536213644613320334477601527046655478593787015324856907454808724532874014984899791593464123978918110382733222839822407149220171111914258734360906689685090360580674814308665779480615441608569278108569303534657487356371598695702990978517427490023195134955947120051953179545625560713487664241679399756853559913771014395623390081273148794625361748538751930905161870056747899401592637832465389422761863241000945713892424276772648280992743225910758862771815361611096401563433849390404062894987885299844848700784795480716922462230053245014576246847620654538148108612431208460249884674285920710762605626510461252580244251706730437915745117723491159393350093665843225473918863552003761870589631479973078861920131374790840093505688679571880012131492575242927480519676864985340403138537571242826605777421718705620537291114730328559399749400982797418179932256210335871227448264335492863782704117728559361677952640783789494645577775474529928219471006113712723366978495249878315916447300353501816775990761236846951034785521984318169052908175639734694225125176713812965653018824793884871027875410895596287054425427955123195668603450002510614294061200708374840908864492369160157545068118215247911385986983340009825889701740826116640228406092827032431391151749023981811456355803649176565970041970998217161574636588341920485272746400945861056127037534759429703666113625579443621183724571316011185564134348370454778421534912850516419977106747832627860382734530706035403739605830910805529687691486521178457644356200325185684728268633352346404718009222715205300109236460749610886112341220242580732240615885321053127839492996669388750499744492309293437846497299944036904217085686448823109358194500152934377956083957051258945022430002939855979274450823553253966996603588005382174033050985522393988895274491075671040040387764263934702818634959693739169067964581212389883893360535489404365075120014864871642659391972880117179875605421981492351507766520221861493810805968656134956073107942254679313477070507550541031464591640001111917712633304956480404331798605485937528077526689352066630392939442701740632038762638286278445703203902557604315983523482718538768864467850388893012135034826329132728640670535262248620704120441267299990836151475460012368022362054557895011939534759583747821393894172884325230836482193726820561638399404934991218446270527120694142571953193655326055526971843442957976135496806811429403002428016034458011378259786104416583282199771822379492186832119653104051722082917029075632751668182886663500502510784369328994506184051829303656251970241259073038192905954554627593086173268569499051072611387139499786085607464329562703289457763154776286515276360753575386269056717810703645173362027799287543003991504247484739805783251860812219201973605327322826404644215142345414198294928511888395735176756082610988926292061633045768639551503038963045477527012257538538841068839218612321727232986697718796286297433205824400378996538350629674658031420971967371524888994236085494718933871401386621259883725803533821812104115280087607760347287975191530616659424252112647064556139291594897131786226027210161907760997337379092429750598485653311629585084995402541046825440936610525938477042187506290993323697833523774325108502913152969879718300100039476629098283269531497452374653965696626985594972856235366666097495482187848748748516332734359480712966003542931969248523213097378146753842839600305589171535472197328486253063400799823548641901313453007523491753234720364462916159567614915603781838676130616747617491555379566757933483103754887089044139909741803800229845414929328977298304408016053833427701243092140010219336246422711556107004617081611751744574073075990007065602368972028651102095894251778111629072573070864821284654104579605478791957754361119918749647800142280603512422536037412598434475466035150477859888755055174090500879766210459816049666495436156096714391866138594121509100912202478907715214906655028185207312732448457580318625270951549014128759434988426474969034150324682499224511153179775552007643348069788735358400558827288257533373631731065993494660883795616559120023121954188813930919190937603953292461518135790896386881827321290670457344435775418797656161720050990857763988430452461589071995383025381032007721467455131514507843691723091705541624464578884654235677331057920739033907825728659616958570237506764980116490978660751698010412938415357981289167139999606175737448726758217178197853742999091109448350003096119847936993585982379523952065445805405086810294742514464221206346462081356000518191192870857126857310167409917383192536580634108150478645842152681066975335391649089826566262732211014262704346273563276327029834635034633683986924789233949823257321354729950162278605056807545708763686928252199813867112099918243865995287533067663957300117251513699301605613796699804678475283521177926375334821209506548069124463290058180656062761756176651138244273696739404965145539778578038649040524293993453417894793702422316765410117543482061062168415266560981106564374000174466227673415415798067394810699444638233777269132884711322402997263769234962551627913971837910006974832433420077219017299665496127576357197277599555777444746943310510926632681423406111142784733841253692524161937545028949490201083791218591424048928781142891782308673313482662567026220131979543188965054072023672342108687583558920124819090508191767326652168162556067359280433113049247660901448483124340623504451149783854445860715302082942798549409979631132931342068812893270461106329862591559240693788224310923386538373812751953748104477862111869045271790314062385808896338378090103805135756076653843927322568830708916928114839555182087037298833805887639718130572011625824734882601620299010510545955833180609902384024463995242477735492732352142292635028286197458848273232532450518867284872654320898594007720297336780683675945362664391852861393635870497220509787556489281004328803894904583602034787416021779420699873212860202243907879501598049186479759259208256519998770358559594287910008476385841828403504228136428059717814668127107407319819837894774337447189412481597374200379169610732899906699639380748801986882631808459410933392559395148628272859481591158815834096554879478789574077857735025437252380528800337615679188235003553682670063427315645235517077128449455278575643979084510212758151029186290673983351452187028206962916748144390211754084133942076992275805855387816810532595530351675619462481601589404861017921878973624925009803016489419879287034365533943823879242349662795877723331097816626318764477694614842669336579695047285963041573358529637141406955175900010447766863411027166011422577094689902775491090922638140679690772459275908353393978703727357880859499403143701539532148999088214029918572450244359086169067819368284615069688485785829985178086328632472007582842255218847340906536423276576991699928780576210127632854334847815395819795818749147495339427110536725315540664571342998803968534009898067775446097954855235742649268703977311729015246340734051636792378585895117455436845264584107560668981576761771442156933140748033289586864064805002635670500083848476635168598580502334191981685806201343191078587425114915822115428816688216991741803673505629575481062900327775072711575831908589959576191583139113884081110700776933240080114043051253409035370104521340820512236238371306247327961834376982208587783899229591587782713066751595238636922755002430819050939754857144576578426259370365029274538892975017597665698897182017676855435714871735354289121380985560798230996108253875138317356220768375624105820791735292865441673942480949610674875315492208443298934034882062661903205290619719975702854084700974116849299334112960439663302506813457203822477058520106782982956320441375696259589484239846015405632490849354379805208486962645133946337975170935106396980050278090474120213487575734400120989916569872752501048362429982937059858519552521446331468247887549848008893062236778637522746777586806518697330596368819965035372820039593303153450272273839259178109866460802339610464532198231585263710425873624134680976388142783993705327529935074851121935151032097800815970130606257438725823748568232722621266891295793222914622128325292401203440931636357275828470715910467839914802745322676409673717990069367956171509782036566049163829710928281092379561041256388572994168769048044519081337692846052588674004374347568605421682830761056348327969884185729444978769490767024685487876677400700634706639564105126576105282070344839625333724137937274768361632943182510775103885767781904451458421199267026901784107343469603418422737502307309268117352770645627157408085927107250281681387055442235948046405097476273744603043674440496440031508136276366944819534814493081550089333980662327726544249558876865466601293637739655019491761090491630699369235073763895712686700170902653624125985408772589928052052888181751404403879119180780187678933133479895210867661342421477874331880498563887383842270296734465633856041550890355386747758031619760545961517679356070739057199666098714313969312531516055083658191722668131650983686158918658740259797098627224487455794320088340030704406742007467521503349378044981001972927122835752355716493087822864975604290450001201264238715686575409678668340569355498047885418126655981291574965827350470519036258353888057313057192751298956597904071525802081343843105190069074216810782015571677115320229987156581724273539722636779231181818518341450099431507815762919905567447289767603547139930081376286735780051415222956515611565829802546056741374625728092269548748752877528712999611903956803452506816850165296829676489644886417724524326093516510285647608593096619579037601656331973217802693856181599290943020467912198104832730210394300086737964269744621449749654510831156515207223042451856344433340386546977521628179589203054174479939547746147958482685545691890113358687693818329355582758542015133747329429403990655157233448520235802633217200792461972131932130683677844701554020216643727955132526216942628310578096611867593985849213898213167016912512960870029721237451986407439155297880225584636558669127202264537828232653675278059397376790791062725566432208672926168646011234122212944695547129321143444881700327679211981674687506998739544457396912255705607356757363827470078259943304052112102905918698456869728522541686148206580248749172585491351910306440788558238857299702411889223549683514751958248267904452242786055960863875028724883148776513132754550917601667539453839601739564219926929554791601178522316307419777655638645063878667132454678326291029381002176947316427160981951701018101796997470765212071568903414425327332498176509203242070626721716902087033060932396646025898321059118919027946431125386529998299434418805431840823047028522511161523247618984540420051097477185471159681601124341795411568456898391092174857821334386331719986357433178361154870768773899027026064700607908478401493637330171084891075346472072154431336759014090456087042466530767499870294191613667084408705841180974205188140359552240323245656086869653053474755649048328657426876430678123735147288611480895695003126853744163267189553789523023395730236193339128615874480410713860507629886353382857374594402452912270294890209788512459369308577342617054651226771136672449981018435779549355853105592031510048886077190723569348037434126410848822861624853534922240278621457467651295921235037117717455878812047857931184732944538803366425242747547934297859216948027213465556095247998224431847192764530075078526651347283246919972649751290743812763021419252758543684419847558808982549330863769991932620408194283139100374363576288416817134574973430528844695793327363282472486870284867770175484703827462540811572964357402195324590613896142906523333369447237596160973704441353836904994472763145566832112582383277515088068512792240523820025794903877710425818358735551030378420823075539647755293876847863541393313797238355533475997882294992552496375550217370068991367165061049151370400416392453220115869830487605889776088469309145832693128221371791713035845897704638696020480264848961034466025551521250049123636619230510708276308248771887129873743687676129175237565556245697581088060516946600829121401888707092445444083294626565279826004126210908205544219198601267173609299230369116426845374393728082561735523086325240526596475684975550249276565433355404491868268646146745519787806705846564811579891489548001002900730138520348583240620579034305126933615815721325174723173191335958108244893927861038380097195377564612674824701709661988595158891089297420036151536250274739631651865879925882682055251535842230372904095478952632627079368599306737289277174875428595269569629024841363965376825881101752039127168453790069187266497026037015005564518217065108359605748471516685173284113790812644850055974194295319040842320956834225186769257124096941399731662757056862346502262490549901148046812847171499222604289552225646303404751293213297131383759827353501937628343457452271727106757899701801828461495893541669666025673562737272944484911976026508589329860206039237978424252472957105449979545497533824209007717858806408980277101937998234558769264355373942280917874215372156602052881082129444075893478648500139595039485947077869988272511330218877510248988288663811368270541765611141934674386751045832874362001061851852797078690614091480151340062584392139516674671496896779268777510925642185916170052389967311923918482712723044216912859852527481644166896067182373243810565961633367133819214159063055786179590580085119236964370632538065074695827853922885387245772225230652469977735390554394851302318867212882332402429240678174665692791985812708802687145736970905209509028533656881477219775159980832159327693053179207115480903209230044503191842330103995104532296614062063476381129288389459397061161442741794484538805141127381348025114589980665211622858129090894235956660764933056575093520703524814091974807659005987205825334089378479682505584709462605230787343467308691084754977251531541061290687695805729282039318893415416041266427425252781759893228681947621534772990855032830382962955754216470389557219789730510580601821370800542389463918667360516468896506109732005960305567379196204573067066018729875551641073244208708608347604491253204288012089424259007872465051435428296393607730620640033813817600343334667804911466215961542116466315923350613155419635589652450783528406107447242048312776256092607082625333695015158155805375421510215919550255223363770590914909789489638109596384800690697201652438138047568796049595178021535413587496153141082279123043849951930409058912766755027238403211017997807207386239551321958443430397250583799530059370721404736223365591168099593615461435306280977733780479388656420679610919343893590566454751630611997154441932540869170174365790109407414089118223599268375697201434928802584520917186149125671819520665753386979313231847250520030403749941159363479595268660995172733863351170263851498253143680018988442095685407228493861077580418584123679616248833977592133448628925865103834046157371404570408792487106930630913835229556427368617686958954944485268967383015200343621898528887115254013809508300373827940206503828261733181633439547905144083845291847176926955851226985865821143714848139624342004136927934581846965499068416722638860496700668753665300202077741982170876419648447473728224603929384720288416604349000104746597009773761113391522344065267442405210194486189636953418355109017139387477558564458192545579761231444250722194869784872868403298973038851863656853766834350206390257597919900191660059371981099576502155591369181899694890183851706336381573761095884878788147294377695560246914776501769595058584088462919877835857352307717914239666522641342541013940258835066097746680192028823210121577848704948508642558643978877132562273950288127447929680666478218017692678519857577424480471697669813763899213745557010284778480665897296010729942066767960506362892653270113507627556459690075265159799291356626222043730489141307056873705278740274689910655063077812308576648532677635865762723029750674258679944545289625793499627546461691693608662408575272494180048717923505183136712473049984955278114716180896614058402426180073889750307770983469225124589105202962574847856645296380890735376292540434065619856642880640894270519370494356348793433260496645275393731887150226214332817899136539622846578990261051429662391674596352797062494343637244632468679103512448424439430012423478943047670208292943003079944644450587869885567755249773317814757120367570511540478901309820126726570530981829824927943853166294128195365853541079652730978911589576743252494291701980992200948716537244165420231708629770656031312022234326905372787062765179086379338577162906386976771008769552947324774596289971048072026127974693072037137900940016779312119868413094672347776107804054249956448129748010092491733960295486449794548294307147683659351562696719297579329049773485941939485687997113149073732851022805282544542558811559846941764349508865172040207305727684471461886351559464263544463746091106644053687392767100382521851084219739899486550591263554889931377892450883269510792624859576456822495751706565048842891785136455774408693763126857050162641982845617222578242660245867934936477762616631559808970826126445113307804834737038535116858541138630880850805067440909471519012482830060912167996138848431111867383278417631068570003921387371999284798366613894809879089219421554606822725983187527375419827442272721206842011079899556349345348465762511221287662083962700395242665879114496249957212551115766265908297168530720018965980981451044011648444457955504650404989400983214559374102124729642961723826645196129307797486241430102151564009777102321228133586182306545317837028893529564423269174738550560450906047515820309455537606092543048232784560857835879697552284898083177108166543020793289761631463999842286472676171849501429963142796743897273601540314486822904674411751378548606210667135054572445497243390367037834948255290814919492379932607406628807264044554254663672470814838786415858725507213064290632637232810672702135070979958966429355887174989472813065498923421473694942182663188253607974527254470965279395519105328025968065633977635522464471335276497988865833503901150858899404715220037148411321912757545724334915515146191162436612690478120180826083877340851907602765124613293056220771920855915793605567358449273208581840755666320125738586603514454431135083494566024725082449755252275021916013686645618260969076595737427297393843335874756033274283515385306580430925328849935450620556502612605207761055713416088795797828749439109602388519937635665374585551919651366754609412179003975278961200924823762842649549428237949096274395998641846143169616233628271581579326666812681952617496314019824175078496757347540338887044985575900758613822733201508324727487630891340532456327599768643900069087673963925599315366728179487758876592918805310889447522062119117576024924621281637797581424532599545767298386522741547273796104332082666040241332884288140740241426847071189373889995238512107390696824918291219398791821339177252061901807605302411213749092737366304393488005668595386973930603348040340149732089782439078444514749310485137925647473802082558924104233146830265458608035805227144249977495857573759304378497180360173839427041410256714033064916731746968173200588596387890410213998751031343414279581476765184456881058909793471258839174066481381537628003344432590597088317164195060880378329869354473798943051119706349346444241229732357685654277574299321174510587647043530644906328118169467544083103564020433693261477889856838588017314335954375653296786655653361227502048000534160942508441482699441218223985449015390483051449221921110824579585203990790095464037763418390620774823269140170204116061002996745054278845165498646428326592981747255232234465113098966805842802124740475273728569972318538942786282025565288865475710237527845725487975182432739788631513575069297532809952013841761675357279472807550025985882314358840129460254971566837121700998043933021002559068155744938123086782912283385167513813276136596629765407724112728407064817678822145991927665542373286902265653981062267959140918980030447947907417914484393720791141301691317300697078793128518813569849263014570673552878199994866346580242762411404461234392923839204121610063243449647168265114682143063568659126076258508859409721464481348103339362441648388574918061565189105036626165480520870607290347572085103806123999019112695322622014845824926959129671626248052592449231045571891085934042711520927834751214970969682689325990862276908921373274611200237370750940794336206825264278545858668896762750112312625019756966933105493413904562958370592710988412466247816891091186663792279954135000414753718270919579381166202699991212845582918769978463711755468181382773669182839321942237936162548294203940426604936207831458711715207879989099228264777946682135990768126309092673809836818032430056345308200472034561590371965986012031657769992160787674314473461312477929957896007544100296086158759326977341621546162092134109095143779666060163153388179018071064647018654747066013917004750144008744322389355253183961363593639160985212024727636393346141469082672310707807720594230251066243288191529309980175392389008772769059608705055766765443078785349511013296646169585839137755522371465633226034776019098275670744254224480353704968511748978143802942534435356733459792603034454254260826495616422605030940420357453685991259637698033707579270426830808993794740463123422977365993845394642950833762527127013715603973155537614820595988861868567739811966349981759520011579011725297664099679919555265873027514615091714506423801869457799553161714450114570833889158523478196264046870130187159309959309645869657254515518793820278852290937310923162258386720131798342347374061755215728639056333778627517136320842723378993323559413343129389359458881437971282870725353546187932277755317028646399859624212337981760854674326522473648657315491405766365260224483917057973144537686334584983676278457148030995773526067077991683994913390358371985744241763594141124281457012821820124893404426347974435079448438213294881782897579170190568553275480706475153001474807828371941661398407590804666138236393819209592844014315460006926006967955145299745816027570051540206539656155036556928693332555799307146694232601988242971743179015882200518654157261238873345215429623966193963475973727402924375197498681885485827148224006448621263376482360300015787361344285826717254505537741718355191751491378621086540401489284654953779045899123851476683854514088720513691075233234006804399728151895888325240966249996443618473305031819898373980331478239444060385982679660990715670125525361612252915989959509714837389690225118132444762871236053201414424051353127613243175292307642904287784223840544811280350684949697433650260603180880584721349435739191408259557359692987765973950309512179605870151852055568732643342105508011771823634954702768877997973260289870393639960441239868546993529948916655329225330690331826107429612110468403399140722260556574823119433699907638485072860686024818248660753499045352913135680991956700333878202947476958909932624392816436661406185004773715813542326515469963436925545854361088502934062719025293517873418298560616043170447236065494647840368942834380021203454552560027892278037116249818538649485065000804387531924545968069467014575238522419875519027676533181148558676455434900744104512632253738660889580448437143392213427802956384072878105380423254419562731629465503748166695292926396746528525438989670408883796767887895759697620285025047199401238212230150112226533321546941923054843986113369131305884526636224417350126427702783944291895222295054421417149613695952322985116511062506388640668409994316402494668605055702741170525248755512925832979897340075314486304486950257360077537521854551117151906680062894380461638872746176984941824040226602404510976351142522458023219172701969639098507614175462742448788968822300685300712229171200197768455737032247264205158259466420425747695018913062144356152871948745218502534173692861015866271142228856448306790962915707398783129995353236430315479320888073539755455065784691094707140407217973499206045869535379118537313674143851701677361997869980447817916500900163023099159207587523586127554787762005028048114814476573157544430136908286889200034936881559553356549921089731250382220294990387567811308178711824761159149699061860509507583345977814243186543897310073707749624096673516719096599766963757969989864382927852914015842718196883299880732134679280647213464406047582603161305465745010964932176344556252239695791921216784045113886119980094200997853469304802326733177368038692502455668007210683821213176133024184044242866497396076217067151345408347789436017317002804131938225625446226406607014929524246386415379141106311621570821057444094430551301050935651619597223383195390141507232227451758795823005295313716156436091979687794631507806641338016420468521156244366554340702958703832502154975484183567623353173506280004523141454251460683830073780431087823904533666184528177301364041967997393970313772281421516157753455596340570652951619926017549722004231429724906231538004881353056575743542862293256156543814660111695770019768798646143964804918379817754748297390850365062680159155078250897238899159955372336295645483498960670802254918314531346215362764246333303477688641801206595241903463816788117253706435326512909121883802929961955330981545419149294000915039495256317168987222078340528270349316781262923470225514440926515333201806271229671560776200882887013110179228815854438234593994573425947867679309000081681711808670010419819512420200164242476098732918710544043953050755779931534374757900310848327461997746026932499713318980140963866878896553726257031503989943237747255917400593084532365681275076105024373868148055702624264332354193109153783865443823773355377951778030731372941039152353599130297822561550158727774366991352628107465376300715289897873819386822466882812700830097926466897194250192179722046086389510949425142598691461496718270324419634949392536973106016421392918464331971056477701862266521445142670281379128088824606473744311688630323288621457671808815618869875735337777698415345500177817849726026407971823420827481579846748320438054421212537051100473917849725267062471836549397561752711357384559111800496575909977602858443546033252920233174240085246339362280448158101130642349586317386007651777978134584972538540698256878962663390660754785291244550581242550861228196221767407592043615079096493581478064416433245079228735676341906345052061104138789777045238295863709685881298760909120708131930133414292027925652409220985104450075459438230847857937084434128025454464210005473339518690345582758634435251333410531019979359955307027444427718628888942874123954834070524071235393195922372723803034310247380896166451777658278354141945588050185211167176626341654068773342229773416420270111319742921851004692307136866537690451183725293829784139495724604432943915935199438466876079058434033719680856309025512410107095894225368628516779984830491895970726212081221249945676379100446044803091459788489876078852440103340094307743374588236768857829751149039502843433701840671882564957783430887758384331574411864599721274033050664275318087439868466248271720999692750880432431459553363458427280975975486175013864992511739013684576066442103439137394695240126938315564802765829504010512554201930790614306614527999893125548571309089746355671390556186248401903982041039454008552006064307023786418742016385037060742130696976202855795712236531855350072502638097964179185792347681030457236020691852197104293236091948532748102835834993220097583435658022188364021229868403247140342202559961055526625446227114818950390171312025386258918923565154185316382956797664200868646758609011078093447829423476987669182225546301653633432303758869084467498083833371398055577388012063853367116861973488201952375374742910105617868040149053294945621535576121967603765135493732626132982647148958256826954027347726555127237647044372433963074133130850985409819722663044473146171412808607026934849543092474206518008592541353916304931865039230209066277350146316015184768257117665788168481626615118004295590608247848897304707519336899944499631057764178106093169195019526517313121517514033074829643648000548668523350165852157020631288950005092737493493818235169540761497876448449755720519634839360571494828661157191961484521350862670288107314547028114160037575593328052118775496094494787392808883064025637662401309463073158728519992889603292284746931966726635052996864282350313316766304524704995345105106961513475407728412189018930170256825700545101652250650891402042425054571684171376989058423954133728916825871037631659076025435345963062763017979165187814151057015862280147884211645559694346396878355961041960922819300601138743499915021126976396158012261800071652046818430659849960839085522486003523535973529177043635482631907308616159936321918261308814705970283798720874824798738324669102024004257958916020587170504205751070280444773870882616515330913394526577970710836232851929283899063956272290816302016183631181208847250541096738290959179905821927693496428347693551630351954950475280477755500945043721246749338351994529135846927975591362199551318573689157025627057641235272561983327742018763793261754263484465042253543274069407105025477586639918105832307890388322155073991130123070489066921457121128726490522105071279223211010415897986996930184295170593007291455969669639871735886603825299688099540495946255782641446640594324104982117959250164153005099805961327772342558327822681935394211714371539755289585596661694821951625699500621303697654817918131290353016522430578603507079710772981297019974817796025663907613466793979527734643567477479710122891380317039753990213026026453146904239734567827289726973840729909335804378575562623418326343182557586770089474422800243060876077555236612209166825835168527610742361535617621341800353227671307861283651985128227916212944433727813524389426058707066721244599772934111630525445367442085969583373413617549442469276413672487158269926002835487419254068850347334084169081989196108308746119269212761592500440444320491830342809065875306075890114545511122881439214878862797312764655225255096327514234572515465620818623558170557833446818823564815869316724683833670081842512627335050141214169091737926623414267445334043567076014796691430606569846468751548414044280327440242391356923384088567409419661037673340388481630528787360503665072351493411599852583616982157260062342998939702293342703518908871391568429385841908389292359601303940155884753409874445490421053398138162988668398896553366902190076297038615226307229423417050979440294593959814544912952088677790607814671541904367730480386421802027109886718825895864613886255209994908868645147296511509143522424355778790497646966094433071778747553139800618387175519242538945404108901134195040816458230822406608725202258619272566247576203923793686045488509557115067733670650639423784367870951178171050218317551803552487123140561048727443390758716669354331962848165703708555039093288293246695952664454607630552096738609066888167161226191018984347322439643965251819625615430386124329301586605389246627259642798212616728667474753920690359408419848349309109335789010626753919949274950419490875188497418133613567809755105525962712657620882482317576923190620120746284556352503056611240509785875802966893012978468818080310373779017831439833601365844945516167833876038403735196552375724387134518870340484231783441955348374483004008080992784213156577977223056335240279400665506162828059569210303524043106286820950316977654799298719797866717393899456032637785843619266807069996040291510368424267364343069757110873343342906001864660445745520621174638823549630662356648147234784123545121677233444841471831581578932929079342741754122896219687732112619859833264601356092329491146639147943585482827911526809584259931326964265723887058605068857319798216148186630893670291470560493605302950328444171033420855948418850505598983473121250267966455071177664455905872613774501392578746918028663598205816549870826773633519887320045684912389478130800176972001891577086535714989484148871102133615319707123983891568213075451919868220851620384201601828420932629853760681131495263023998754679770319343656293391202600063229679104849349178505531093563148267460682161579698455472260351362299459746941273579062974767645618477635806949874511056913632485376444697693455932546825606273585116166623028648051258586762770864542858637200732660551832060256527758005074007235217894674720056707140370331876630802381316765082962558460311432616548936074981125461386905297742452929352909693864711350137088705391729006164077290987005550149917190270617163638896819892389855119994806579821914423774356128005411452494329170453025354335404718255425018003796595681387508220043927115892815090216780960808756967366278440445282912770536762207876884591916275188591803979022665908985229615182535375168832020053689071655450643379671775506275015531425612206374190696243128362873157733552905831338314114566867915762108286495857574628908360058995982101755473053073182877720660676845130904825754913203731194116636116894508265182857563634282055180251726551859066434546491383613780213359422751388185089905923410364833661894086475413067393065712899283544645644037272240266210089307008898664413289216530125539692985991841179079821607979400173328981711616014453904174513063976857275469628770292942044129523992455307544959921727812639445688620623610374029678837806395160483364213186506977460643692276478615200831027535246008882347015866059389401948164427961135311899562494201571325275444908397614800337796024790157438848228313197331296293451725278704694572330111296830713131836622124512079084382821414955472457759611799992787457603009318291551476747867754163042006603979687806833573958542604022512527672814700976716764257658444495827659279189150622325636105970223545284032838472476312310773500904012153383175506685950075993761511328932532516271122111805698489302369599837120007850392294568902059696815355910325031553072381666562015905951054647858647005859642575524880086643038567948422172583837225494462636512681623758784224523687202564897776445934037926011807963212165714551782772491010595273789501974388548993367818417992219910666549415853839677259384438852893934742047547274289162724103703499791769442674969602926602197689349182104683437627047549290397365999019680634027921452618895394139487926032698886795109569939601002466689070536827325031699351226821350177489037196391319452276838231594793764086823471045470745627344658585103344923333120798489412835646323735570671851580305729421267394803303892974926955876267256465005766310447357783378382836967563057076020819391976922022265885537044067622819546336789456718377464738526846364354157116964891036341215377788528713017932011631480732566792378830373715547857032771793669100975245491666273125208671567176808191791345378688628529051881455765959068052379073954771627586687743424782667255654235145104163137990173296502070876043256652894574290500267191312152768222243261361834319651883722706047710802784663302922432447658816519881094187643916934320432028329683130697245544231717982247574535184503801874928141456934717988360710464513341671145831856025922537494054700985313974410794377324183804255456927983783400296825212771666213983723774478672536381768919078944924986301705654220520747213731293874231533235321017358334855769527559625025202499090110427477446637131421798768567100767225629884083977247764775497330349477139223512187598649169662860190887367787014898349526877718445686222641665802593715069190975758026388622983808069264841095302395653828945504707200385653969183305709925564248901846477686686365235992082058813066520554703757699066739152227350456333383893314659353364253555054010570882270036328150949690187965712611265923127312677996558306069714769537358674991195826727599223310262200544312332856192149124639113473453657730832743820183302028059498458008483181339636035417905656259677798042975158220058616598454700213183464087920375833250086311834205464340115283833962312514150717161408465384908908692710700598949959779487559050099850860487619093874346358706563138218012541406511284834667843761908534914562253557118136369637740452889838696277393545473846727114223828859446236260850154536282364109669262896889944198187591081001318748501714487308101543578838725203169847570763461716678679506805804859410194853942574018775041078260926039244218271181345752029475173850509967510048940767032496319541896192950993470057029638189837273090084673617140096454818626524447469056234547600161122226424356444895211163166916909271812082017514607563969505111360096338951825007930086118099362750373640562594507192888542650156899944842290695527304261302449293332698525701152327820171725593998252301377503706042341815270658064271093535668583183391964887582347690258847114978409813272272733717511441322628222411903592520744947351274665729738370823495772186283486859810277842268644563173676421268919425588853093734356290317958225969261275666104021777252469774496153911381351084750797701833837715414300700239046868985398585403714579719988670162760544792518381682153728508684928199221419196909211496748416900773872539071458458104116683942360197656849255361081072562956910341308248776253413222295039704497282547476309191164960436120750928084177676464140051411482897985843061552626458370265876060550784396955436301781526387741786685648247550082728103050951816986919175224327707663192941560871222399616574555473591577503330993090018515086946253067944496828378910685021720523417340666754725496369522073107112361095302461612305338876244859791357638858130710642837594305699589820230673045484218550788736179405512613897108628883838428123365734653124388635033542887452793373271539111142170414068448540894516381176849061869488337268332332408973566817824795813731694896839238760730024099654890364469590014473158664774368342101022090598983621323971371395233062540500037460341573827277131465349616943236355205327349600439782395476413748821662381273244830184431982422938753861824865493254259194564994789396649719110868738604694811336006870216633444589024351097481434111547223456272137403435634391719847104766262373022145692281103523884716821189745393618323414230896118979532708171849568475702109990676979083409099764096515232216602449631251196555291445926550265030306737397715145064072119562403315608553009221784209018642954513089267215717238453611487101840982603121154934965025494370708700667030032126256175063972579464358087732427184468288482833747889926642164887392647664175576108928094538745564957024282094570416118816001787661370379293814759032663185053341240731836860826382065959877845012910574656498860869013862133968798617539862693531063878346168398225382912146154611705252745272440630749269581273086635504256486915854293949886073256663936114478091219493534194217388958166235857415204112010317196555699815573293258059855024251114742831595790924112983108440892334057090025143141579531359368582572181446408952944924677991521721269569974299712022180754366738168346883901983858057495049849282936895439699518582218631045107230699053093262042226975647328377948860413695597389930925114069907124362426145120178998087745189838313140182936574284056624931431450675938859985608375192562533266514832711317959318144913865381700037023725818859096203894051555967254906459808969456158792650627226384639161497738310823591333520519756518291692896917678590963052217476618617138170457963026778816269727839153547975248784481384759212641963473208658159305809250518828990009083562575124670548294353262764609639210964316624927170027662961330236312550518568597565250830313386091800214984034440710210757023479796003380832558912521025445017640077342183026325488667786856052515545913748558813076538317603405271715632327115899662808450351082512965910292008383357574882754450761895811728915445074447444421888399997349384011586787625779031284253387609105726875582075785975616177394560170073034360329760305647933374488236328489950848211021030423738814206234895797136287279970140831357703920780050448551806294056337932563650375614272555362200488271323107391852353119740814172887995687211526433951262159959459066679155539041120546966221377078066237664398713073849775000519402989858342442841630458176164682541785620883990490090371089408331450829637151649023846650870735404634190612705408671449627665939524346275912407934156037144060950502971049270522645208692720253981880346240189054163568233062826165695537675010958959113655042515324576044151965075239823726181131555277044895230417226751034038127749223885046082443110478982574316690446690987136255853003012881305933863414235903147974123192684412009534491984629779343142240222220710121025781169567253104499595179837842534778691787628699019507682047920737401289606046493850629015917199380358143585476956670627421735254129525406353566509409938476527092738438351351601537244513453198304285860861250330011603653838677238487212432728771029596493932979619516365469112644524251032029453679028785062881347306526636392552383222426963028221726376994656778112630230725079194898888987127774173749668174586825323201484736948727334374662307464829516980851536358736582090353050028927407652640394263314452050357123578445009123279867941704748280959904251469316941609212512924570257462904191210353837525152532673934344157183834418586358863575472348444405029065574208025124880899924893202771423411525107187242901199044038075434473768270186779363156349591893490203824377970024252379465549784974173194256216837984874806905629958028120912709484803924247774210210613497955727723533212755624830303320600706613258601179957844950268543642908389715374983658388530963797647578886014327945675518713879791505611602957995873437663094166131915883812813357083883771539538728376879896453605567062292464002518980013244713371191607211270918042175887853857228528331614878013550497884112408671241428296582083513616068972360334969884331092583081962172283699666578156247749098763018398920034505410814374109541231801449002306035121563622849505259111962526321009917157183650574295754619201514510970931886897086071332600722011542897961946890210030761097429675472940779069208181548508910754435482915509944871894108573642511944629088371207258960576625812455757988669437763016406547908822895252377082427414557949646352095190904093933085642403138681792029807417342398191917920417375852394496156751713302159244834721073648196718156961951825308733518996081598775895513536405139359845504257021463089573862145891627886797910286751511408959414159147678366449080812936868946554637073132514611792498158199474103525265301508910887805158007848329508982523985944281095415145213688428401495909413841790698433163454893759857924588452456728899233610372796410427571013184521942186975468745300003079401575057227401423721835994708280918945560799627858289562716612231298794200095081859097803863043459529519086050047961408770174516655861819092617749199399236172189399094696241671095687800314588351733321992497743582817196770149093451766529786598839520680850982432229631535677739243264102699219762324390934731551760264884486825556352640107438779977642982678977475798603906462250576474944955715413057181580370321045400183276423916074386948864598931469102198323314951705679888928780279746967694286917424473700961332954362685862270294994098586836685899917910827849849217653865426814527666487441345898938270835104507739380019936286493597011473395673699671822449850798229167259785961760594524995713792959040826524728467572766443699678987733798515953388367215923441610357847956788065662188151064318493905581896378758662046461666221749690489549152895935363183020104491382549699830343115874224775305539590246665108237413047812868468543911267078570420580731518222147504366043060714652240594907719670114476825879863472695483616143811980610854733636472050221258279342267065768586146442625418392226474374015334526934954694788229774936181654288533799731617656379644338901778144789810251985120293600704341959337783093101220712402438739553273056949231234509674441668175122697712078450425806396346935903394615653562568177900607470672240339187070914260280896961821462660219730456102756820954977616977085621659540268543108941489747922014163003141167011945837312852677408097515424696139061098591376642726274029156468290279253473805730204090366114885300533654424143648190297633643631746779426080439230543219391833576750179890232545749038915213760331085423838077014117781711692718764210187536060387164035259737677380638708121616066713561083177018345600784219027986404938756324007771544505827650784981429853304046702582084684766653521950067926306449366441950511357775907123805083171666620090889377620072757375779401626747440679994576358667309427437019397830004317330817936050383475732655014276723495585786701816758137470409657873903055329129528220085400961110721012470280714745166287583894335181606771933210676870073383228206018335274773789915017672431798846406273194430723554356529171639350706486805078563673098140228277093073247087664307296795804227734572804219416843866889413368621471984824517643418571519860353568988715337357995071323847551926045341873103623927025010942855060490897232711679012694470315716743741550977849029190847316788159226626681187451466608161735365787311655734598332128549452394793897519977330861219357811603011246549433834275842554400336831141987239153610627711078848815214213883526789445467896767180208605736414008103080416432314442840006840889157988851843632556963582743435122855928506376492541682873870525203860172495394192275640261763788559298924962990903959440894580052112719626511174972600835979391943457397229081242075542057600223190908555243919917282314468199261789410975092690465540306670975347466001863857077873758086211412842509351038670836516947955942058309073064438738733289387580973898304700416581732041025839171080144183710872715781701802885127797362829232233420286628972719256037537245650732018603854530684618508305058114368181610389550362279214597338063430971090945316828323651793186033580464732451438431975268080386829929953789734374287142809340184373915856556014187715454179298193635422751775692953580340783168690729427068618711826515973073512382391888338288096415718428957026670675857480853894012461155622346293521062441538317276808496218813305087564854357158806047928727587588737990068375962720286038825769190689085969939818133452397256687350436830548236226002354751841189286482987576571169370699933457782553132641243345836059918092062028605452135644467498712967937952967098216481744720158731499630300376991658296727163941809056045173632065614844010957275619837668400327105177443673701848843843055529874355790868613740328802211539486231246360372226785127931834714704356849999489490470900449128469853749404617674783254007636116451808365739381712378530055129741081825572808568566673495934005043224365758077200122661102183144803518637042581950933548122490019639163667209821763290935942248394728836168691132613491210271939146888807058974934714033481027838574939681666084234663859618612102258091366473035717627723508972010168830242962287062608707484963155434448243530828647446534468868141448614359629202729243050938474686315141616992417598674144052323404606812351938108078790055473397413869270250769841738137267186187452328084531865979561588681527850604609304842897474756484793168376059897291950820295980653998209923495266763054585485884817362355446520446419163194475539882144564709586043563983102676817523394606197677867854459125773395107677656599875335663456127923518869199451945250876296793159810250287381610997492206753485995094343799549244964667532985335383629948847843160015824204754681978633037497399094810852193117167744098280419104410038186150973363623263035553578380119628762117542803821011540350835736749182746503918878952346655858062600609389371415592269887418030594981264003774037403063155079378048646078568939681246562673020069537776991101929085197343849483432762643256972106988484354726806402676961641939852353167127775533751263055306717936782169455125738031297821475516597371775721245020956154412556024714971561505906100042767161189947109758807977019102255598283811451233323853991134393004851721913148526687544315437001055777598383760858100563739848800315125098504212740456804223854877604362321140516975645223813482844627375929162872027986661140943603643454183854932419242394599771039668685886280806698822089177849141771733365305818774353373979774810813717480254502736246133936488309778045678099386285600088953230746670701773373683756167244953152624238636042638059721088688314382290195168081947252829586973694310927911090526637048852053019180940285640433430917289779615316819565770880752595343810649912442342137879149771856503867000613930836183780262980473698291973251621276732708315256198993322185142822357025066014810264725275934294210367405642960295945409111522844958759615422573726145056520454669634681421740410068553402010930984574521544478302792163720610926498154345009949190226769845251370425426727557725808317380831360122171067303667056680673190348850818104657306514057136661596984730223746691243386997018678925190275927487260527206669891072643039063776745222707277761542561809706226362491941282512107145850466607340257822271107594861675313967524804741252039125658572416168152128223561737123135460167694172949641769541927358214092323001559264544914420248605595950413976335353950250507615165652226735323436534322028905730844156059617427912956491736172458763794811287113231943387992418148703923624494678875615178715251025262992916791331923570205300716820173355301568080892059602676548115361823865957844191078405630344828756104618435650577581855069036668229637627039979682173829919357146998578331906253934764169155752891045843402517230134719233799322741080088216221066194862183129512056966313314691581344391126174360546966916542427200593589253523190510662504467340855121910271105055798121338961869361663029802202252468927997840924629108674608070913138513486450487438733148591138347903780619293958792761918766317659601729551699916427643742411579270768205121055189242717397005260682857020436007711760333416485365239461462547248114192755895612315689508389996693147971124113566953636014847459280824459844482404120213619020714036357937782981071079637427543370450484812916076236362170038916018356687379358895780587033930556275384262010962418010375713006834905427975682668236816871463478927600376260461525649733513857323088841415559359848329776708032343080580533167062045687320979394832269771433824379777302698343404963964274990462213691538239397407502291706714510056894845626375211430669035436873230908810661166849087104072642204811465008229118598023287200331583221969189862521881025823837390453351783590686495786162329132736354388414542915682105808956780628507377864903529412704400186746623539111930035720801444356024010150332908724882428809311349935881134490626812894544818234296387264426145713770945252214531339660719752601024745805129400994101333261912130344217769298936406935094200360850932969641410685667219743148525360864616391867250067649753227432555274047987066048380767233093885386816751428740653475007279512069431986526454045751245274618057322745834728201320989260277317823031089241458507539863938670874362995111614486690280570853549346954443350251184678933869079917314108617041620292086934622238666957836260963966581156670817380284082436616567419288640355230660556398458714994735795127811651096679399746226874562544548976058756534173472500631773599181483072305012212673435851234708947233790515190785540053878973800399072757827671010459775743391670454994250400833386226337615981653769540490630398912104737453007355838778817685309023606126661624032687111943797947026764763481833459328975082830230126465345171588446629877550602110390163232933885113464872133505600419610406297777128215520550125948527196648082304963753599321881483174843606712994869858691749055547519400817180279323868915572574105501002374901888900575000908495470330391369775706528823155582185576907987941188230003129981249232901327764459057621237463243804517932033560664957997405459770420848379279484162572118793997197272402474666040684331163705808679109699116055043777824286411407216090046517433923151897447016802935237828634165228077027480568299878655365658620829138908973211943369628116552783123116229837596368073537801456474525889391889180043525716758530420757417836708566420993354533850805074769388950765483527333591815397665236444412677286927368141564505773668194344501139061681676399041290065695247328822112509753172222895926629874905927928902546265250356351225861879430690110617816107546206747460906332518927804729254061738888045831762060086940811613308730667196359469896985042999718054036044858522111111586802266917479740617807198451128880262362488227361302024749011299213144092307507373542863619720697215875663008724535571153788951077530291024327515771432914109920904014240801818246643918553016795254622818770662644012131168188403909027513160749036254989286989060537265662446279133824682853272920689013049651825962205079989410606854175921602722109848392848028351621110285008303798006041704439445593088681198157073280834379385430620569194447407594089131713425511377942748745033074671320769044964390111566818254298128752217490645692386171854715424790166820397493498286186579825347866963891088213295511263540032876063517363855527162917087119462436254778671778822305099985902100256552814556583946044576494440097140439487211584487152140547981427197254903481053112673877435839744617579946766401916966199140156713722319938565197996258220201303296986616775327837874920894393057034339172526290873038487512380803535290544071595311598023286444014269064914632513165875602393917450760426158508269501482938219899991830274891006507812615439639566839126111474668828868691251301445515645149103929279797669540195833716489543431781365457115607222268891157633065850268409767473985675583333253785825965012302723992105354794860300585011671992603772839600544482714291731063885330762499950480431221270663788468758586687077917950279199357849008096367549165911262921097949665696930866308848901294926748939390803220220107148903632812264649616260111850122120237672956549669045364652398874052758064426128039832195701763160483577501984300730286587424656979202352751016145802237155750210575788791647196080457798238667792785179097932967636828000690708178497850755762353869809475658535121612928322816698895465553040976420920842351963745972069721532608446455662140083066922858293707230003713318030050232418514404583966397835511299242220053017806916764169069730906952312292495208476951138244471405968051391603109089196085535960945777580468496253082932033496028808417922883639183969730006559574853369399156812334773009739773539222604054742427319374064768552806264504325149815869928286733768869136880211462627890245134894356229829285279439607107563382399382807249323331093603126974795557699986119546901238370023303347325154977253189748492726182654373477019917584290920937324097165730550333275308182621173594771795136213004808916792900892453182658536248411520256972208889456419247413735649372739759751345933044333375810631452424398090747673927149759972280573524553282431595778643611971553829051668554181823412978104154821106832000107135590742176117450986051479187201789378277981829956568959446793133139085232467986093044115825126711624816675484855957304550511349524330363623628863414481149575053532348824018828978278068331764630129964884650340416679611682683057968725216340523587102811115454237778440700335563528288752506939136458604678785768437415904530624277885004349976636695189097958971611486041350494877727488427996578791115052046931816092627373876381877261933698892223892693105987013055204488895235722713075907559506969908091837188780748166988916935978487524006214994519812521749614308951306411334456041842222701047905450935318922379251147452266285043015818267937219572780716838287858260869295777486498510601380582929286266399903872284013907929279514201818577498126400845532491222730478459790274363187586791786844827824122609693228176653304630386094151191228054180345135889792827910952734699444724369563303497826167028161783468129592951128652692871886833809269813178448460299443502622724897812769971678169471662685430582384164945610613604966719898827347610906424910300222440367571916227527720699300571688348477745170107062548270178965268617190812921533349921088729914103705766129536371892394472075786831554529240236968032952357673141400401133686013827947974602762485356092885251134689772483633227520703263562348994596746415535920664242480680911900900443410448282663341056254734571370029177834823763122316429502762642885881064623397879983835524435023851405518026462728632484213987209552286450969429785873810238572513396002975092223934178709888506810554660715741039681708675858803174808894100780779442184171907159191593368266611071907489152165477928192089483171462937877854866778195620325299008450188512362305957646789212813297707484242827516106765549021593480373199448730078147921296301763190247135901015375912164533363819531496072312165295637351461548696552586013447375811663492922538216465977800198807197353030069534933869767766017390113331784732971818506084887382084492782360063804519225890645828603853846226855356972267625142205129092212387510860766221909062839627853538568008469582196104608511242923570552509171449302206989087301601113585484652784528677744524378141560928733556215969183321130085874786553845007290000264671960917871535366629690483620060256740714909736144975285450587223570181461576117639301032651458594918755127949304919387624696970135526228070718301767457598639624247402269083318047296861145098789740685162115679230722216849555688078144080202316960978889704907199021746152879575823706255123372743894709180968474347446515423527488972004088826738448390832942312062621000324720297539379837110897144238917406241794207724090810465073851604127581368378539669024247349813178799345544661467285110402955673360490740821830194343053557302080658866318717679583317716750922242518394405654841376642442400486692091653807117337958400071202167300893209790093067794974053828662253263125556146836148695498539745860820484802189266727412549476306341790357119142384210756706043364679161733957540333910915105700401851265739474095216451405740219865172638438007005158844774541908785452327899662191029332346534051126430567027129033170796257091745414463991220621873485518082712117959765580665332360183049129142491797677878801667966009332678421312013437960734413715299840918378754861126602040743976314933266780779261646960749882591482760041841063777527257640483724756090900927885450335879063069213692824302326865848171670859784067267591804010681656719313115214705603200274344785208919680871259531947344976379712826506975981552987614014560990208652799417040885646191593933080854302820856407163396798097715388532097636817375140963700182219115660646104075703817616673145871930293644453972934969411443546227733079437860014763623957985234483137708270728628104103443508606979753506667464330811985632011699454558578243538980855464293275554707360082764577946287779300769985790049393803976551741723791610481437779602295387556636396173065966930532690031377020807459011395476211440907454288457472912971624909102675334205013546000796666828185576331218243453929600384591615768540658058653034892576117881155410049871868508054270567843733131744466256448697282649211252240815399025953417754839460332344002091483372625266503561835124268982543558572173456958618503372865999789037814612624095324466447971430606162648861159854748799180476149466745775661785791449455564525509696050063663188973583936584490467379191244607170723558772282655169726771869973995449387973581135136029880604674112079758471581407340369428187898736035126956808028471944560698333483748565291063496863554216013918808119324927395797253910945138944349720025573211754151617541229851665549715504424314820237625034967970431069193807200754433950089725336174343259996951400885482229715011846001423388702963584593440211318635343898927248147240851634809219584967181892485552862512914648570365217621200529412200061563457714985137638590203467032606806187690620151454427270353502628690540867769163323118607385471412684654687961933620403571867503201245728504022050106280004832354156105796208928747038855199505669939900017955886145233909231085771441663083452911330711861314035667902859941881575854320420094575758287312339786342212122751940803773668025422515488748086011426862620092951661299516515531582995289662381558205379424679026357618097006762945261650379966952260223357167173865494230055307311229855030293403945128766127001257769689680995731733768383356638587491316772850236235838888998980889448214262954376271071807199583432832917861803385247361113556992368699045522279151742459603167692776349561344175709829081297750790286540509939892585528409057054172880896076063558444807232112854492711398632428457581195759875810325630222101656500371334626237549136273481335297737111729206823368652535042687684882456614062807090024337926830195073387833121763938613792867757359622499407874019343755331754134465172569606609591042334878228017094920025180082080744659570774771122130572570448641001398539815814146418351071824506123511424437045402070533175830886228338278982548406379014081135471052627881338904260658699082583063978192959186798106474137454634671018180043410101990245074858211458146922671299930345684312900610905000825037374513971048608544701209746368902148144690060078755307453369063883868890831697162681565005309259220956229783565497518759408321601572759655900524333857216851334214908046959842005197680062221314651190374124210909614116964832396814795645297054764461500384559318033958786036311144969022952189041609495966136395526496293172014508098840871536195486936520691179252227949309131443438297650398188626259081824799891484540278749206422184252697953551400412338460308126755715906308695198939128439172593331734582860553179754039593563478402466504599606641763224975431473848348936973338602973567324790822714989912450663239743786003322920408095021114742190512842744130451092837799709684196188576018525995984897014399726101731681447816726463888192834805038814982577528776683251037077405862791427800348591610624574558241198073678047488779605600297252344092950656187208071274434269570541607334788141367607525126252276581620048088881813704874988922792793535650840138714402730344547905997548308629937048478566024261695094279161366851927606201771786864356249055975115999924610369745228568539772205264759057507280498651984647908436819081534009740473160207343640494463906670950797336170735438446417902085462793179269952498071579219725800936915946393423413783818569643611358465683779140513315187820859498004696738845085072197570868153547792225768390070296647384199233041880203382373782850370266494296158603484370934126890698382618089151588275299638071557220134029478200317318783004946522036550219433414452136179628389452237103709517896622802642133800683869399477976138418303561445796059688489136221533625686825572783924002781607655188783455927278883051285327994199441453492731081936254104789329686954792109827827952451582863735127055227810580120800856248802589068278177773258309925932692106249399716283080233888057230888932427520084598804600756618823838124965617830429333421856598092334923675927209898799706714506045124918522293866638236791845344653608307721827771594163478835872390552008662640728119756678866526357279733291772767880486534525560537778796196443934851004263456350713537701683328270978923976940594699096524665124474356397133451988647106551556372282614622185428371532378721311388692551937393304176623515292625212443380482530174180419763596489531444584714637861528492139705835678573816290756184904246948385208213624133852665434159434397972954740859649002932402856997290817022301218055465439453742175299653399775635632822645341781731100848430964537252054198609359408547611501058633277665008489288604729900981097583712013086671728101103565630197557629510507245237800353507356147449434664085490858803151330435924479440212486477579075933929020383780116424401738279811434031706234964537647874652192132217843902954873512549567051849846424016124691235387937332794068986341933686884112123665384143978086611664202791520816059368519114356842847517242223212457727816038618159934099592886949177995976879832551671099279288145507698391191554658639794505516314094972232955456044971453450001519906311506824932802160497210080927772187503464357530766832267776378805346979765676552088111868878612046841090410453911201143259010789317352053700371538272694740622386324755668982676260178044374789151452763892385635951757918747926846800669106373735953157631380395976798364644260426414899767685326577546084771940085064631761373229459320621894784091658664873743785154785475365585613947069383665769445786128377484150478015144828579938743494334088646268747821976293058860371808585711918262268766672384372790429915428376153562938913876668267689909056690328798173767972284396759521600718682979230989331000686440273385687839537900965158548857318148425583112311823702483522469847316198418927040247199898088370597376364465063114481071720962524563410586378823432972956788019484354870423291373045621473263890058043650107560683755909195296235270023696743583638332052065311728251722012034712673483907005442400549935236799264587133663219645803385876524682255564872234378143908082755248877872648137208977610171841130847188006745343418452304826175045262140717502949360433175038694267967596656643434682443123674637950008296075204334311836218739951674309372028706405291739155989382940070617116161287822087999616009836760244390092189310455980004812533324718119507820816156445684736560890391045521669394014709227793774088401979617783382287345845119239466871293594811926720433405555898630205144153175465205385165963988077435599161628761281731041166387243089995042960722945975837220672093662677080424577474314736578374543551344608235023738099045812163230934676648815610228171994041332340800827865295812261676282142757938376022858051831390633381808146714202533334572188683609885606610900256600518400283781211663760945413023283543498455112393353310270237003513174218327818353477411312362367647424413483663229667609547651040196216735993961666301716467341877289082175954229514577047405774574503046501122630645281542487417972046962648825484396799435700326600058886445664475230469207442450507533417623390563595199237429009188731941291458239495416329551009734953506860720004146991851549941822420509866167029106848880132796421989706359125310405898063530117174950842007897802579700839642503927165149132696097831131977008263795078447438121344249394285030064401027020655599365181042802548198643623649928219521443451933777129090937372167354187160837099452961026602856978772847854528998889020515550972695417348831622841258587106101043389108250661426398131827514290176460952616388091424182697312618670789911471925087545871637661422509862302007464939508813057618220405952151108427414319717911291005952223098865930240092002986042016979307554605196089774665447255603117730168264938144558690431164571903485658742027966506716305513031533913848402607081521463057371980722052900601964826188564430048291348142403891797690225750949469998521702725516807273376681041320130559624978249975259779879500147774947206114410245116303466010146130181136315237936255662357920130969717388277588854033190429946983716122647827406369092037308135231640585420503111359678776131847133961356619431941410371161005561360930481922721805173590305493894666921459030790642156366425124780902137543262784179178406588924263852255830591985281724414888177909032554001496145328929525335256181200000286294319311216778106507281884178652115660569948815157917552867515704156146322616010119434889379328313356138934380347056038843988261048773670619562246211803748769144060518599579212291681438773984006575563359986142965560405096965108068744414451526200786585269188279816474140009417806140153845875149628839454923005985176378320169447293231456001284000886068909862197816885344640129867284775619733079390421730458050536074915795562585925269248324959994537887945720384580789863741454199891730202457292742235779518105817726527216406510550709795056953648990989685813648893156506488219867163640748115820429339361002673490477697581339487926675112697977804965095933606685330457284965160650593869045181363579184074015887346865482357557881684976997123710476140131946247802198435761673095344966004479221175861332972853054852189522960504553853695925993898251874451724027450838663962577675901825322926470179462147194292814514199894069804973138404941242090359141559929945461432099748352441963688340208058406277388994168807412390251095232182332269019298921678769481914385908981727437257843181390997151731082083808980646100848460962482356019774581145580454208012317802594512099540195238671688521794044705569979764561559745244047145462384097464299199984190396351953539683997812007656941564084800454743722165350185230807301690326315360571415488283249267527376609541050014926701154497988303029312885500443383529586106253721052164430347249825950107656584837816320212835282044952312740076174580070188309382101698953146842732754815922870474183709243497812355289701016528777901099615106977661761850697795601430044508143767002628364441106628831742850611323479789020909096438654331976717988173368817049829044669432888941848595562985083423132600818724532920625140330196743121770852685642342432171427282838750253294069693052682253580184676564002565984837626574807900479408308231473016287700840887663401371934067168092140059362629343304251829096128443981961909709658085472677565097145391829755476141466906004388880444602184745041428925726121227807070111306391970432483630018896889547209402571632358939182433296122715794163475164505445751257967062568144121144946667625710376548186174838331319026335126907595837270039146765753063800316043876910079499552226334941795426274701473434195472558128785560115332011892670444892095405764063803008782602516402794816723816222724682904419252694471403992595741284213222722041582905409252755877318949248242048383948732658661162522849656909282301295465962319594675870530906765995365314227232438527114406790716451195787245656359516077440639674547657079192131467976177251228033291990564628619202559283980935818761246125483041191400493754308902890246120095484508280445054536331364317334156292581177046021881762914906466744141575565010629205564805216491774365265508583919487823298357891914666815164647261241782631906939368122065373232063272648005785866433245748123451712572984016757723774497231313701726788594371894902551326688690792775814852174692510079603228320954218868853673750033153842666867044471409540153750229547056849647559873698550593433082613354921501131632709134207462676065730609443256659608531446873271795873378594700893898441006506851728088440117250876421377726353123316982592055659277099229512599562300258079040394826463328888694194199101462513655678435272379075516507265923188752971254598612183785226273920892993135639874788671733571144948706717820292746889286850314677498286980092235839478129812706945747568735386308596767356788508982372102016302833814923434774904249065422214508144459003049919328533729400782411009933496377808275126596598910607239499738605776492044423067344268604780727516032239387074217230533880868556530747360926973296754839153360215283084717200242391545926876432529290700364334994723954209207924343561457816892860303069212725762668435511377618249905918034356214208030923559688611691749461433085956335313747067499841957027942726361044918893522480205443313021508963496851654990797414835129237925031805102568570124527790032825683062726852049975706109429257830811632155867138873460260155791902165043546591622570207050166108706052725552163870986558071502161449984131982067875687637937022838997375242041025701883515351180216733271362078685728551930526376203557169601101883119082343062398707899915165960007939636387957013598016834121189205466685807894915564938334999754785239567586475937285753151288918661839863700333886573696370650168728243977638005425625968684771623407455459184844717657381964762368130781748584362622632858173095614332095143856564205640563527758274421657354844178148172781468237143465187579894495701473356749191878169057199987978547434741903773029831938100271238715396254976974765497773260169221013975071468481364683425603422189968066294359516973774552515977978166272956781720813348889578111280075481880740101477976342139824993526970283363340596479686442757647989832326205344153490258521699218736131742603238985303450818929932458852099799621320734733514007354358285953046919149796833641540190787115846517271971059082056149650566927295213127470613002058848854412333640045676594325525334287354183067839714174153987063482052694426799442054715245137047223463937384075709187535923500028912873949996184542413522450163442210665861757660482647263152395361640680667666675418487043282706774284982456166739312627435670185443715693815843127138509168497835397607612450969286423415740205415895696132613663295672970064846804035615321041548466928693889046562974529205076512244857986734567591879666080123977142770559545974322236410589754175057411446200692565919215012457462450301002909467949847158555087439418267993953193574410572034630730155220921646526811179234941204188810926466290968262809509146783154740521495996214692205901788326804454013229388725247261544517556786833154137554655662543911814697250709424388317672473502581122803062669263636481436369476129099659150410361237127030837449813728651814126196149326655272939550847918488940093271414068074824735066226140005071110514275062593956595844770848178773448841977563914419629813158409109139644470553993358937854180194292770134067348983329926564409891425745330603523654571873119467348968544321154668714180977380009614052318383753148821158429298678804841733953968307820006893034246903760347141532140077902680091824893546828241536411193525476993926193152491231628803958977075491303402718674394338917377353133943236496004094411883752254829183188412629332720136785904075909355337933647172094297527443506114865597034415645894259123506331522751716990870844157744521233692605995828311758406364321872721793908329910248392414287275162649923907729858254847288663811445496842223026931900558179231698393314532120605120536470539205318156641593275735025213019642971759134451325874501972197910011862790757671587477668491245460120071273119998495141445389622823009908261719206066356200102696931012846521014619456518362874484362420918382966046760849774506281106149133597854709656014285413938958465727922983442660862517152550784775309335807898203164226778667895389413677850611087290978519056545378600089847182594138532717816851273677489178234117354191895413916281361932680011874323044848679910775826535771239764618421809285833569893267829174047203234095887009503099881780968881337727589053664935284132542569300089243268378064589189925665843575339132793774988580630998941170952077056536747138147705056781909739158010850582156636260123689055383543886874716574329660912673213429553097271659795783500467886567053411371697001927290502863942667863155578874462880169288314702906960627457768873697903260788091296882412960722826679472139243567092740498950699855488719711394974442610286814364539609754991001553479683589815264553416054687594718238419611252346117350857537064689205379076972203832957952283663411507762499721758223864121094266708961527535658146313457364033081527482601349702406902127001239854469860159826010939949199750333465886463997267254926122448784796804541446546446201583228549180779715332470481042569337893146770072972161777434649535004121979970359034480377375267826901751628923684093567753853828135662965693751482570088778195395117623049251934024563424316621596542572236481082185644609629804406010471718719021198521246474162265400100687106710945493795230166952242142284994146781706359530999147512397139081445765995488373076251844033560031590473466296079981124277045922169595882418589971962044555459851897598769999586811049194911158024871164408673004849059619226020138463051577503192914637838533605848242162269560251222292499382053004180335072833956588808534812523757096598663965358549719271470729533485209092266357168924279752851015377185194910346493190995832986886211131513766691877251666580409549494896202356886236593022464849437366974623013165674246604366163336540297454516104738639257171835428678984266201764589917536864252602745173953806521710942557202153150376765592619758673597702925680268088488316378395523802863594190019523935289927254024534614047626991214149246649615966006714851161093578645128967876608912134984804977516183451504751278192585662305119437141797737688251425660109640573378071981228463756858992311285569353891091320357399458185431620838872851120103394969475976532646189680568654318732957218071211463772790030695872885531091698099187591418783901257201650957942586691181091354525483539315920826503110389550974746946154503863114167483717472824132566260950919796610208947137324762778381958334415227848027213916585040220950529981787560313313708390125033423738942090847497871840403410900095154854402972364733918295196097772940565361244775340392439683151193784495836807660195368849516852484066879585425941637645098953881205961520441004084219914577811606760920516767457810148592133048073562466634832658947686670916780374967740198645802262583619251541227678095209747355082321794088772027061729349152957414640511409643998722623801485180342175224091749131890924933684912985044278599305545582111697565927353258530170969366191177435303736456224019709485427007577815885657025598775074557003406000727404427195598868481489578675570257872852990951186769066637148501846980476242420134699489167564849914400383377154816589435134477422205900158302374653782784669815650612919223038374803110284094838561354160520924851820611207318670604501055170855239238539896830962104965279049046772873007634055103300373323412166761142723199380491812313439171733036380651081960995886583267750918484001343172254950248621082137873629468708561743353190350450936389460332046721789284335276474893087975823522979546331698923698820215918532744255251419606083479411920162435918019256187025655093197023590416311076047480665628688478437281755083069542950476944393341867592896180364128198022086328472794054582815100146582073178490028266174135710150681212971699041995028212448232285578289171229909949729503783300960443329701620921813795105079019906269848502955105125484112841707478447448879918070118036668926688992981830861808408315282175210161777854145109673860495461973726564136242578594907574552858566615924430353591099902248032274080011509605558923991219991272889636116006132920417603350904577414944072720990911641581318149232825306466354823367043736353154755053231462002147035842304019724445599693215044879867658107584396963436939791548845608448373310803919034101342803113309157213807870874049064084365170850818506147381062105955875860770472233696416344336037126558438844031800218622361534755309219595943447192060170067934798863308160876621476721792879307599336325354764386033190137222104826653015831618936916845923828801097468833812422198849432473941628461333616580346506831852743067274759462865309622508870213624731448068950079432725611295884181511987432275361920078765298274640639514614164605079539216347099439193306206755759886816387523027054630267111049564360570534564377742703362357967186838223160186455768170836140258263079281076602623707067888063859856753068481194217934741196061815489020512166417059332901002794590038900412196322797641927353992110153507201448339375567985241678165454889820694627991550246105437896082070479781018505234868357097272192898034352680314705476035751952809142725759003524965074559336992802019554166409546924865850330305045417373047526739886055177927858076392237989836482494837189981407156837903291572551253348515628814719679796691338532727703799282485951041976901673338964382915252119191555246757007768837240306555409591242657773066305766779905238559289006413308672313241368310938650210663283198368328295189261309301813128263699141932008563801508984853847755930632753457357626681390366812062722667865451292939812356901933725558585943071862988484341008714384856719598818731918231317031228645791773781168017538518990138724869809069802775378470805217825219408099271348628221878783129347627457221325513549369629281072551904918944908893699720182576305375943594089252089222645121677352621487699797170561053940035682499705760953188606360302729615454907422835649168366356552283313286276075127064742710495724944296963775030567068507934684564451852700717434237923407330286835207030117785245565008963208578929777337470813125415737184271528478827624898099928504668104057221328612135116155608532507653528230406015486240631956386797848179819022342461250632075064632679856680017419052630966161094362775883539116540075222173430132532925585180808404781668642651708688682471645582566488422726762579165446052818055013170449146069124035898844436936810509371406280517947418968195183669409799314698452110858575530064016906196802078366647961340821123292975943481247911049915966819243143963900527236983344740153102870797735188611323364119924932618720798900027596206897689668233044504770319847093361183014553915215687921795506197895213210423837812209383426256823313987047472462055919610094615863978034256470741064840372831323312203323574952736793735291276623432838632420992618117370852583165317333653182721441401010101644162038782105930454908843295023341291536081671673088746864032129906897080010117328316480680829106493963947252330367918311180307186721678248943349306307844552546223360209229427008152133171130256338214348815419503766484363464558436798488702060032800469432699616634526344388433605249909205823696495725534419007981833458635598659363692347338673641068636723330911310384789376119693610199532757392260471069829515511241434339371866031909386706362224354258581756847238567472593839237533369733426300310505456086223045262730315006912431499810113532888920834272507564986714147778304889385873298285528643616316669397763845432165331181566722273791280732590330428608670514191222346758166844910019674174983987925457852022764299050355092458217721544671665988759677063628056775900516533937760847308899979882453407749069856736916681231881171114556613748409708710750375894577009469769403736276858144614577941904378995145296405469804107301765883281474190603207394589709222568738224925220258567635450965455523529735206110332827037995288178069470119782733777103910879006675470600762330120818547107721321240582130922810402701925654294508043428421669100088037770052135289218724690063971114802264006245922373639232899737556517996172206428713260169240360104458209895251762655049730392699465693271313075564728610275155717123277659500447934843294402909450922999657805607690622433085506212085255793678618800873665289556696441157992758164038532873390598588587484697127119131387858133511935736729141467050179013654093008502603407641033444055949977669718866915370024412901559089626840722259647103294558938164832273160614933227111134053269578487222969150011102092970787642562702075611359722304265271886464562756491809922511595068776208487024483560109188942261714941968282423814691861239595537332998776668880224642022417168838991432587682332266496587182713080379259922923964383208035892786961207219397753959379035530976516390346826853354151153397675617763724204794784407106325396713580785985309704169662298399838854271457241544940462736095041364413120373219736873206639910519655770500516414488055926061653936069417864695531338251645639722153944192405214507252458611310243662297306028418750020668727983087086713411759623124592928157431664277516089433191541428246412466831005353273744239003237194213937078105676766008499995000224995612569970637697921788831070791240468809374245008700538593233515753897001359472675861116092530181009834094498393920276756226227915127289291848727538344263020520828021015551823696464446241001873276801593635142362798220832579444540406632627200020861321609184865918658051098448065938665271941619324035927369874994962477398511992099068320897381043938415804558414809651353714074361704577260817980713227912804918397697244877122872773492549748828482209988923066748072326259657965275056311871643287566279524258321215913537018359559939919369400665347065552206055195199032137699335615811307276010821153148731953935505652067002015998271040172326433959636976519318030120888456455178400751829464870641155498810462779131619074280757926106357813426237959292692748582670924267446324490452679809596781998634580054231315962993083825007257196208753471845804525681522327945190359517979047773969345976925336203966234333613828499437171208681024156277552278281519742955471146860893746904050870906326601929807222902670575220794194483615011030929078803388078194139211077505759901632042478186800674051731616579425151269106233113089781979444724330682169964976867232756620093697194790345618279109161239811698823163692937894126938134806368997561336841015517784235667150039807929824774117889138279507164581157458283983722138228053575460294796501148680226170860066309110342204346014580064418097793005380262778228384101809664064279196502581093372200884395862786244117552715392705304855135684395985433509572419428486514022505653074970131608711305205079860638384610382809433916075651101918338869939729641462113331877778637139189126087437245229935851904217872629293850389493964769081496374180546047170201302503861854462737573806680391059647040571581724319457396454410972840404672762570127558583965170589441660434654748122850736049127467270972294395454401053084374631827907004063751676154413143776822571870356432940231737139373563496083169306641463991187341212825129582203024459372954365916132518858702935119488727049523481535184977376600613947534181524668914031590572887588547759980138577097369922502774876493890816443825469942509152525754415910580552967767716440619692631421711003247773797085416882544895520777470540466455070130548374196348398140385948875670919450965357338318416899884953812385001666201865060331685806056663031948376530312989223133838564944529964052646683372766451586351804269361464612305538536657131219753067345945963664449871616372331032362616655669289359158088474512624808654223111827897315612376037318077728416756857015441072331411229326046379948484203341951057586423987231049773500238455087573819875436304277331474374474554203825330439450963352696881191135074378965180521775418147431217228230937296598911641114248011684612986371501545797517454544211210651468218807496924535263586636404388907952767998102349396563901122649250685779879387905481151669923819144408865563606003825476905165514496106585402601840891146878670121516123985708504028288042761121172582251389369385939650359523509373330567100453858557198509268519962184622596223829671248967618872855835612065749573471993412736509932777075568500879924658508902314687146329484326233089554029327970839209266146791535869047676396361572497350706617654133645668899298850625576483566431744894871255878801564665434403169187821111979407366409813634868890227403920237370884681854583016663720827262478079932832512871139018808622853521986138856957117516828728686712033951056477597786026534654574349677406167020364781289801191985004388983324655370168811522261322148668843506826899501674492244916554753757323111467982153303311355983890975687559939329918720889865387831870331946119800540305618629975025271819279927780969574322502556156067412339751551361876675426593627894475693841591322870306768074886704925229387938896770988966882571219270901900231308473059323724118008425898035927513367382966225556886736659155613812443866595372849799184781409013747134165118883445218204009682206489152994560084835708297428945991800464309303169236925308159610096182803519206849615698841916648457326890260488056477816354568164886572043491590089086609428828131234330668876984935529773701452534938113159881760715508332641540458387132225575883681202814367072346295742624147767365073706644152580946957261777136462247441681740362985488529284347038526816655788201409964654081819350034498683728693701646038337597157752409152887498755136554987699095593862570238941999736328328643220019050804858589964234111279247841705647959840318677840408134823701767440930129817727318131068059124963286932949170709521750259753848653000503049430345432418205786793063234065537334672692932924006776895614273909034799813061707843040198673014424703103924283525182011016956562075248919550122855083142205150113120845712484876783730093007909010317617692906743252056120907642640299093248792013574049967015419631880669535880438741701625518261755823279761079159824347451025982897077446027413430846876900323419975465710377038678379215502987554654979164430162351350297156916433958602639385481446172113641540679108949834886303365611296858592058110625669256215851549638638138432359901084530356412895604220977175939952798536935265581098426726220786235656224360114471769558361968340194742012571259985735102653080619999785726825436594899593584213575506084516334373569562409807143017500553273372028794619506274523066981841057462197434779758833906895185656097889902055736329304325029807033154233281027011716451925542334723321472735277211873219160732753384245471812861592044733225040399321008288193137630217928241242839599849206059916120199043591551403678443201093457084575669937170139121187599575484058256536710125526194914574990122361654925830090840365711213688469160010122341489794267263718053905517128585989341465740264227034375720623477236109378804145265140424887413746391473574836803694274821008688140183059831023898027624852835665970837519585123984665128359236595195898158143007088981413405719614057179170745950482057019663477042826619060094658720003912253456637350584057296129336280107084124712695336611972020778192248105212835972026826851241784372141112311852296792530574456813799335271337291373277086300534707932086404418142795652291942939866927100180377956450182797965266398835077870836074693839721344700050301596620045900513916239451549532284744304523917153280120082208202344027259937276464126815813333705408955310371504680130446774083852807795428686879607203992129858428717627199863721745041659024181708104041364882262786123008360104778737416757822172633623576207468240006679431362789148529039344137665111630580293658109770419654890202673880927000815673386589392116062524312245184538371774287773447934541588516451740643841731965539807318423729333041543741009943942037539407882732470150961787427991418725115951743381655053390190237525739705132240718724652927890830877493946291162302353516483275512467447508642682688064781623046875896518640120325628804220669252808992799216331204374103150703748679589512576285031092057232152305704614349975417595762106235320988253714383149526584193875346284104181469915570275136096800308856450205804464729730150772075794923049730060740799428708875397332412415082465628718889424086990718810482102833375629278095293447599259642380034061603657164059666198504901709135851816634374106463972820514357501201405249654032505444322911683880632699873438640537366078455478578557269152918625509004898167199368206214210962217125644833569872553094079726931461947759121720143735007464164034946009640566704862999066298075729502915413867564621708593367482815787400254378556067405253499599690651755398358384888315193512535178035785041590861708765187782076396980972995396273828594940946029665708458969121698493824605392634309340965541635143942421177251868857939471655318070822148454724173589923935358627086491209668013305913078931530417688521088305057010756106575050603829774161239630944627398703577746366633385453880298826323211631607077031357428842505461619703112066013487864336224518921748576794638390284176729811227271225375722022784472165761749458172126883515513238351927230111251589365895925598388878541932063358787918890731777182428347975461832517202914461027458215373534952920651725615051087199602461383442982319116819612152269436861176138808051151588922907813657888086313228774754723316893156566362529088571583238423482802025048609778133855987419046845359632803504842052065326593098479628877246245341506880390019128725282195253171407523527345105128334963219160885295273012955150223511953402558237955356132635553040664546293872448074375079085064105014585137364245904162895733356337531048855188113405997196148073913765923264122274662299727339759416322740592027479384842149625707546315056242644627043274580383725493208074893425608203058078231304117824105518416442409851950720083584418392956999351465030122757297970059548654310632228853008962872658563182611435576354111784033465357422112372155678816835577203085045495849679715301215608207571705442463953594407427881759667420036980766205841296851929213463753524107928194240993445891998482091885957211947291672516248242067603063863651560595930992279869672382217492492986926032732142797749014381322959337189457101847904165305222868067154809958648923305252505566437136083835853856065038726284185207351626389560333916997552192966852108023136543206331000596048933781522196120525093522412756264798455184719637810733669204773958110690522993189434958151517184754397607613939105413506819399566724105675776286284155053568899487879598095017584319990587610189392818626300776370776934959327201388420756019998916701848316033066993313647968272614315772850950769001022404260672018003311833875730151798478416725735568484974300134839899269141964490245492275826440766713341557736855112156680235778005283837110154645631898152004672135230649453615802132778912515457480737227752062666970366758968000838972612644233100884818047566187629062928964645535929675949680392058954945013480660612849914960397976091806745780799923337544320636655113616729809529758301852634362330175707450788866886127721453238443155735025451319014723618250821854282313423611775883307299432318469370686256215251639592425512593042580604660092509335613909475010099288473401107971092995190551521975735183549874685838631446976311951262654510662969676567019292676654628580452424444231355405461134783912584326221322995231574974404323196233499194217483268043123933325584282988002072533643984883823209447799410851428328396273897935177179330058973707457987464983892485703585992832216118826940636211604672223639896874977092033110282471221753742952811170962061874794748160726436898481335924059998482199356813940636867499830983417939399686763844794255967905011658122794023756271485142857985642682672797763670887050330469055661327013735915954384919212133034766697909277172638628563509272297797877865908422308645382663977737637131251652282959713537642583901334844210640521823291497472512610161960751506543369091580690180574323994616484237716669393679498353615849952802979109896248809298528882342056452893253121175142829433239870146288293742041393696665335085430600741274133590844723871507535535817390686963552236761319268492405934233042888746267061521791520326481684546678438818809513551576888283499170897773700855084844542181094763594327496785646320218501993797764288597791839593469941401156664791086252897496116407570222913509805163126005916575500604022380140305712540519175463669817226536880187343713788121712262257638623657368192923066343803997810485739058435453685033490092659615802531043158453603348678580801322705599964388258874553580933475043393834856668149096767120349173988005967912220061743002421802234522417521948354018990229767389873930143820582883536354094472896310722453326702833065746453899617092632712194126085349706085825044017822088581232648444242496331241753154959437586637632317580587565607077635334677017661027052408998085711729712693007014980068455232323530648465745641368997388033955682731869504944035696747765837657264979797469169639671782858712202161520912745819373266330121785702161813072120315089414577638893543710333683900645926952464596180149680371407407650056488641102803346554615957372793869133207260577609487832920043071029780632648105991727727233529147132141487284783422475399319982325824339056959282130285999874662767929097040317002234628524161982735775542867520912134488830848068372776586106337590807652693247882668252003524096777823913082586545783589048826533855746643995177878935783788289465735020168568393713120598707131354933988114834364507660446008597258301329139660554787616470124819273032330551183685358219690996600076814349457818640217002748912096121500224532671168587431797561330907516377545121676492957568325360655695671234902474153825372252621618723208040761561876524562412337419708944535158368429354382375721694266842205646433865827002488671454090342087798287159973035545718139699619590637826698892784102051272359441072829156358343529996665456810307728653841235795461327682344864729419419929033925572856713670926654145952052659734836766550126300851250554044690342904613223833536755810257851595693177626939938828305583837508679365420834312725970348016726911081048138360115586666828734091564380118951452095600792231350039524965484036129688187595167474660946046318685151203391925380620620490906267065666346832085743147899193504507323829148105494618412688906431002324791424577395084267638216234602913431887285161051822767461288755866782325355490732505065413956379816615694335593616283028371640007949007932793961301649364034490647385710189483052629570957605069402242317763634940038631030429554149238814812986208529228723123911266411089366571645240649562131950434525472329171531738021432623242561551766906456906790010460199968176979025670645286729676963104448136859124242079861184636064224430050273482374826856622662390092462556883789463276260169297577868577926734187342354986915393375870149466739607877410513230929983002519941268150056515272077551779146897669321454340344442958149526302894673389336354317666605108833243482385133654290297298978066626539482165649628715293610488538204418970038258050954776710925780928057076171157067615851057329942033954069984500429845959896412940606706114301688595992589260069967076624480117736054922349185908238779420792491249084493387714850363343160293283106563528418273735453815547219960439736988347667288756982978625728474452659401873615898125593792274728318556583352952928623663235599387609105832361121110340293620897869661365409934332835320619422644718758999329500004884775190290271952957630758447874989781421856069733190031566437784629164657242838090714679491474221696158724681115217372374127130112239732214436373739672433148684533583360387767184834258347949919112704647338703341991365254696085350773868503212009230976631004779993157000082234829270523247000014403361815167973228652437621193705109831986224594422549141096488428929414567810002721910107232093730435478952141004486630633821868519728841415745259552506917513249146443966812697806421099998420063642485952100870773961076413448865349537378703466524100731452328851150194955000294149846540682530708473873645879641937616969613960502333749268314797600872201946032149080527908712212495427768039954138472663306966389808650935489110125203786609657257801839733563216240258328691155227400140479710505873003773337385505671168049825739089807804497127854405959574542250191114709043922390062132358339027473058091004008200861370562017976726575074891753422634393351676031867507313732076475883768678259433118071241226926779354753588582083187861083847453882116301596411023720049066361707442950588837671038341220887268869663544991364653510467268189462429935945467783364702894220151210990012317217677224893415615165619428857123458374352638524071683889452526624284985459439627110192532941579033391983454814060549070031530025541218084626067649977090411641045228445864570972430799256608182651083368247121340923920766672651387714038998032833304667832794554315243151370390282638597729902807705808889709758450585798947201862971739676478779849934132691890570650909862830238723069737387448499186572570447226814596436730356274880171276684924440476362365600800501729045398518570161435271788947072047079674727732848303119294764693632206297112037245456533914796176010529462886479950595075536885936612229734508836788881028009698570192500849264150137880924721840397415615982222418416798430337242502645727978842704481480898081971481221391942882142064006082735337117557512495732277344425226511813667637116637568060389002081630233551083269502771880533442337093140861776274109621850954381540035304593518639400084808420146645061058317450468938118708152672519757859357627462067194198170954418528192791168171828049849444141747235238298956140040156240523168851535747564305841900222318620884769611910138872001042294223464188796401069775694277652540878347288750562216162781882615774026129567247093502938273466381884467385531207340380788275737703531690996087836214844219185156484678188760314350927675129619897328463070784628723411267375396440064420995346796443612876009463374668351045058195499713933589077133644933337273483280050253708807100190705454135136815633987192853936908102200666843587980250037192729417323974878225074530743878712743110111165127151912863827229110759072557364763628688218518127996205879848549308216199917210706051796869241235797042156046345075705960980065060211109904647742470145306070615870336165351097051006669973479700518229059243527559632335798007083140362400926622359190212621080486865963587256608540520786638779629814764628986449575317385656493476110958049459687620096376528142035958263902835351402209294430645857685662034507487823157836108967885870662399075299336367338705223968691303996837842863095900462963865273972378007883870262041815808572568981643548164702252205577066040197808040606980245748706833104841748978862437187723263088997952515620477866585241369423700792970831924495836911393093844598793385741831431494979886078266527563818363536585369627448754120848727327290233679245505260746386248492019999772729573719987594861732200894856941025145640569979155124059603855556947580979772121867537221385978941533410340249921167309951291722553724950800802606394861556158439893529382244658461481931441452219883732116795421907861621864638548517074162764890330327566533498567790780054728877654523928212339821986496319339094975897072831183468995844394755848419039425750215575923607661696083151026739085839534273874415050949066485189241536412470604262120834882619502193503298847325430184174593017545584511953787293305181485858289251660792953227276652212178022530363794202242393482326459823650157325117782685816580644183677821152302446192869086443605001110034199711297773576342210216397567037073112770216811089574674165277294191974772641407484970293030974232417800465255921714906346649983862841361414448522419372283525808351444999484306498384602077014736830183210881883019801516923549571211521930473319328960048096447007610100958724786401117167864777196452043296010130575825910347768624135655085368456813004087018099102009189322876562931403402389298734558386957766282724854132673998151277560558170135647095595644007093394656141171675192177699021020377127176094773357285436123731921155817061148311950964888578647429174790472880272523967382231793112940142239631395841167758524612240243127163067627334032736182799127715158900903590204754947498134576700895626678584186806288646383229492502732064260964282706316007983720511499293229511656843741611838501406880672115191131460415630687275208170933348794101582533325153961301279866107642205019883583943010684110164520134162630822874303794219317823011700349653799751892858794940572881940258542977213813540370919129284437931195545755852801154223777444190929271079072237869889488118443749882056388870335796571004024103797371536361260591885432699550593450266643070364140584481705054981254787746834727205603108338265757936940329793930453051940086128147295372689785818314226105080196434007674949071591385847611689035020433686217233490766755201970343585058895255511333014141421140353573013897951365123314797681202490954476882197849590059100393757290439053169998594986418430940916918887604039551866682812022077024086733317837622564181950493457475676349111580949186990601887234092324634274023844717442070891375925049016689360366756084438380348302841522341330613467231669423342849170538887516511279804666662147854508100732400390841822698787654562167457366392842525807989810230360978386743511990445713256480506605974783296830211862545928831369510948726985705954516337835255876721936687868195541970101979774391327950871938449088871219198405415893025534130146693401044812285456379163275183813579156150543685543159481285196957191972884932327700294340725331397138359706189188270942652034534064895873708575624869956148912840305292024466513221609417649266774975334496972008525632671094918623898470829049194986892013782369655229189999207386646107989618634458932638961045809116944027565806669922922447445789699149047084053886804289372151232665771054403705097026589996279848611473557188733886557222089872174440256590997406183102501623213455176393665962901509638446069148871592589903801875581349154236160243949158938347286625538042724226846172652904333818096456531301269678728037589373781011604522142359473871275949017679075654406572144098287376202252099884788858876331808733048657559465863989155958125077559361072087894390035043916589279222596124423136681774562490348943701039564005339863684481813910826127629341951374204176556607817848086538832414072785857610195793555322946802738368012806514205445672822251254732083009714444270327722572416162145351436461471070380809987163757386642164075624944466828687516007951250065670268845077235964276187755034060567819994658752426402624637386082897434139422631225606803902346539333184094546342642597283874617123641677620348196489767221831006404958717334329961280844941601325403036263230938905655496384693827086451836686086886887434097277626919541157712385029438550044113964836747381641016824067639539405105036265154503579362151299510958961514578103635617557791275071850076553397148212974981807967030964977696847536284827668615265373672141043292649111621669994658177863602166748754879256873232617305864388079566185150577021155675503768379448458430320707498896352969361497898582171647701381997805513935314511840501134973646203938299889200940136287451346960466485008715212208463143160886270162498204862564015154269988264166689615378372747482066248776626467026604832270195120873786462525922729569614251918281496750640962060840586611132424320826217954290110009342347304025109709504634684496179710661871085735780967766666288163079199556564550481007448814340196128207029964671403183196634429202552954696311608440808329770682834205397320249998782779125544005715981023918812069118646769312264369415524697801072964890754676150030553309567212658106696008076923183686504075312032888394128418042268175534705868574446558327088543520620448753381281447271152971577634087537488121055911512392533883836876102029341989023977066568668836316669989923106991617000924953756385977331224244326633285489877612806593209343948883577413403305255506005445372505664912815409187046426087659599033624628660983646175886913058004777566076962621139560331291842950523671294906677370339317049201065764784534857810635087897460056690858282419452309269490221673175739824623167625311267878176555681261434588157270770354065385325602510133503631985257046796252400328568661331891493232093952850278759178387927951893381120075470738647842434550093433662889533786531192469514547012231116789427723342622630075084202394977434671318256764286499236080778600989439799131043902553706913950975244572584458635956727810551216594476175291156422623088420502293177871329810463556658956522124276157123147435949813855159545781255613927295686180802489797087535723583679210047425824736674417707895946139746704209968260316987598283206542494334889985444416830100180879418193986158430048487096707232940054057168240366021261615527944769396070022331333218257573369136220868709588211573195541008969322975428774665043331560673077774110266246248786511869001648289502913925399655671015935160955279490116165140896214755583602608483684441302740961291594866620211301175101911308903378710672092122752270273319090819249291252246018881351519947051453154685618932178848307908491141539955685730973348090600999065190241795005559652493587313930935886491998579440131055949104264959301619590106728107662427852055355905338684699827486583281092291326778819513679403084366828391183954562343708816378828328827334282857206706616324285739404369211463576954279250934512935081658906431736160238568720713585720988958730957637619450458793652175678284171046391376352454938351280002467034385396951403927502726655481280275085061912567197966441075639706131609671330170733873588184391706824708990667523449178275320768464206497462280704096908672845930781825195854239851580656934406968394880155598826283182714509755169648295886946978883384621013943918774360027570233945844550366985275894914258046175477535121909623109169899421209995889867362835866140653074983933812002091538420482179356448293693211810767897023602671332412067123762661568050753923627667160593561532488628597854226154602833627471908286926629102671007600656054471102925192881541787772116395926941076475206467921916157693264388404503713957144501825879855622661321459112616141567521184391264449132232833769219347655776312421060168066631496038161063043044940004126975670358713068670459712764446478027025269111022273552866157838428078101741249896476551795787235412130885537044629123641857262901251243202759707248648239309330969255996705239632802949150690020913580693634190847131506371573464130280776066855057308930514880756148758904255650999374602429197459228100976187005280321727212223454291336910660442608067515341008803980396771250156304801987214924069701017903193829092880228172441059664526058228814960740573799991831601986846740536637150620150249399179118076670894371177535387172452557950424968325191589496044850403685930431216362117285756475938648342712647152463422071971667445653059204269407001161172240166096481344860183668841730947910777281682741915373334850494247646746015507204054848794640702056740565652950042392906453707174745921143994148409001866246025215672611599309172626995183781583295193555426865640138591367385918778493968044431496912653330670594823546462966716451959978578116968941886314804037770781654314141448587380008148155122401993359543879785323295675937089170272828972202005046149762621260124680142089207602412480564841405622242786975300362817095458919694856588772906352964424994707436765140096783699681620746093321533094285095642309769204563438476449528928258941916787350182616663574360470432217541252939024694856398057255306160486848196294123875473621246912382220989681446290511552605077092225888327556335139861129316542559302943055036075847634210689066559868530810441902071174261858688547667940155723166675552371594831021694362202572840505767094759571333540422783943977050894424835854974812400006581663706247952959283005770154117795158663842919703196871089301108216912664984292665598211550118365116070706695766956578404681986358451103737368346635207817143719394213236834277592575592295223206449458531509974537273757636102516857393073274722255355286003516585742882343635943178920674761391335410088923027563293775620406720574216229776470979574533167405175000856369384924101925614833678967286029196825008622771486668973701652923069846771717034468230483811019788211065471434720036722125640564046103856540055497379268843389058619154412359780949678560032954762007438480454155800314986932534528396864553380973435611859907636314915532265688602245869643142500233803620684529490572776675100945537328932243333166918803718523043702620186297855506360697571199922122339518430404958196686655156867571989218657554272713854518065375669187372771158850620209834604934751808273996975702075491710431101053864094757488617392140087144095558872335680188535905225545738273085551330628803072852818879765456886668744827165664545295992474843698864594035896836770379906400693366097539941087660433161375235913149283737331010590884876177953365687729420764596360714656566086382041932650901511319414453303683599650638905892203910548545358883072300587801847249978173660239834197641615619920078277174714377206542552003318287893132353912197943792146549083584393374288615585848593512189603499430340149215518005954869569206488539964176585942489627192439235541715239039593495906987120663014598969208827884776049811594497579497635098654431280305999277431311927913058138595759079692313175014227304940599987591958319524130154230749538737857758089128584754772243297955320656165157753687354356444901232174840582731596413256851208204448617400714417192843131097817922161972595799323147942247012009711322983777681373872937860324921732144203730713846429658604424341572864991188811828791391035175986139946903483790856075166370189134258293689158403251359466111632571661549753797319532147045478182559988629295657523082115677160274824042277826363512358529523249711679339879004885274256826435706771796176965217515621064503779833791722813778494259856714983159906107270608960057480272905150673331994367224672305734114056546457607425250419744171075295114519237783958065757860524821183339226809072755120445071543056718140226341766924958176117515723344691045443178512407656408556819604202829923353644039114739365243973620191765388321988424092527686316147566726466555320642569627354647913868282599545321444559135912214782292441092318526986635890916753897147821189150900249730549388962680935229056060428660557737611656806760290220049279405084792911202799766686712608021110678932047744519908192026077187964112928344987597149929807087706948900141698290012269052902984382903221484086973069158436286021189524568735114971445703839405799474192205721405948081723991231832933285723240730968987071181826319691078342549364852946624061252834638824579229885025014563133306011231766702628576784373894443904331351341590909594521258952123182516835569518172277207467866753923921942386284106652967803731687868680071151386761320407356488642025928145528158255421074714313218038968411991081623480492385066905760523091375342128736875584547015985332965309568514647124106446309928655685926921314944542038058978167492566009306085311291258282671191709295178425476552368973593235665400205182055726580142509296472280333305273913408113294555340992117723012709911055933445182102777705599220792159783783356294583702854784604879087913311690318847126300344592818279022961362665354368097063898217315715906773888152418464104133456363132026413404199169109346639022160346666769240268438333324234976063223653327971304433451050555838175362909763322327341654814172429666473466689940807354035364028080660117861351789353613771401044863165266775175274252296214276101599120527675563099744351858221339574362738024832512224345602326350250939462867368057417192597584241842986289321046054108771404696490724264501429468165561254159882816222555678615712928570013162240517441531303897312563037377716577789107996901787889030438729273544835485304703558837340350976038987710129891734046949504179692112379330152090991516705908048435494944755989595551424578110740439995369681969920782135009991273391414206809391389719678779325749393314812854997134109965413984704050885922253061777995199216705242148258615902745913906755111555424629998347403283843597237142382149931481812883140278014837795125653783092572042730356456948908530472651298795780328690301382151089628422866234555499777097345514961657238745867001574750899229171796648795440451219498027334486205435872790598775984497027884385272508543740917214203744892169095456697152827939071749582079141296370350216968657158176092733386273177410288082258986603836441852164233971682287118697099992185386984499097613831312619449441912175790588341092809915336821584525636426787265151122965433935673954285416819986942849414194453849229654345638814394663847851309052445676793074168159220413893383984718894541027601622570502408840879568867082014912532635944548788725044263231283036304687179816277707349615287331316365830722932277848248688951349496625876316218437746879141840717503118758818861277633084256976331439530620245926408045347608988881345141957230079045263640517382617894482142821426606616299870726365115500323962347052709871167154460993616950910521739219943833590269648129876993108630835836499153573348219567314682813329976851656111564151564724981088021029490613378631150424813984279951536066436794938857647191486745139247155569384941317949158098352426432412416587762926874005428343017564170640103833975829300750870689257955606585855058394112440877334349591773196954506911086813432646583488781614664637540543941095046733050121630092920182321374009249620770185118649743153440676246473116615576466033800364131969149459281441457869220594553841687497488452789636703697719742360151189976255944993426246304998813040503487727763242376342983715639066309540779257661029379515341232062624612284243804502045643943335016278022977515513296455553231443138250684971638718200355738249999944679746455934095810739375365078925201302156390876861195480994824860350690835654690110019450180717887906730838684762651203735903539592419372042977902387551382085584520431537418645970066682244194546184061910136245575979300676382034147101541740828084983165771519220665960430424580011224161255513100512414856002364947299687042415642650787018164772888195251993421270511850636689649174512407142836104893378196374214778816137438285105279691058026640246920959540705388505592728094632377447945364504285472756492258330922989117369487175238802323468504381694609146231751027168386700284448861070243422400848134257853736394612917891116407905523710426856443909098618719078909449697128289898136697244908051529308016569639246528222456158127071327323116086316747149725394950616281733006481471734894080114915988257081853246528033085245096430028828649934780975677016222670832741561433671670239117719758751908801907787730554316631409422967453165772761983560634242792722858732320248114307565815176986420589892697562723443904292327099069275512170281929556880983241234174371786918563935809630590247208879720406362779328335863774807460678787093080580489823708306003265164018824731027742901441049704761058535465160254394672616406076713868423222393611330301773459036131411282094515978571380174347102941345090750197350716858211537863574134875176358300787848535939499464606788433659485419117439346100242246615915028330062399507779919835690617604495120467919841166274665230201208381090823602689959106256888882111976956184656815365855847116710105502941374411325105175511945554089826658736840746153944228188515059429385825399642399785547783999997986263738761482431620114904421211890760226985332642792176204325691617657206661445894365462049224705881099654712289140032430672223354810921812755819668296721512380607022135665786754115743258245780975364967942991676137075814152135259070841666010986780745604801490659351052792653294273472335889560729706016379314430545884379057824506205009227266869702465844994645567396698908272968206454370705235105148078543288347370336053166639182404046268510236580600526602463847901685344023061563994365609046022961430430621037310559134519048729061201452835203809918211216798330181995605815621636433165154137652016300606060924700839162565580647872629615122396180051230232951191004069593318563631690147326652644235097106435703819252817110941080847839051397750322930978382316771239819666775340714767735526482500374333044059040053217615671491312507748408458329107113369260463950449683134370896522296712533786507864808703525087739152031381553741964745684000837215713442944413706092026068486078291799989181586301306001755331765756653825078159846067588061772731178902883840895170809254869440555593050621890956978733678064781136499762641969605167185225579239918500397112444207849429464787552205401753532600767780050448150419492726574618809892186090065166783459983753202951295440387493461764918089684521955857437178332520527247382235727328026038084522701483638581063599060223093233493083969671965951035688517265570605259482771831274419315313209759116383316729117170316019498053832044981336796836482044661110458766040108613900305254450944931619279217101801379134202914022818692666658034929403175245425264543277960947325809364573371898435031624676820504040284297816146776458235831653276940008969679793262589613592015901436939857062705656803520416287332363214773597090692882227039648680729561324084273681129764639827559606123165834448402194449661792097371518129848640135993291995879371973618725582431582541259843893877115261879247197837886071619103201886034369259507320929994798190894925072901913719145586478765995364079500038134499288472948366245857852605903539095546430491740447325494315775685144860174806208861136286696886415659443533584191621752056670835432798878245031794433957816187708563592007028421159713317639185031554164067147969212318243568891268182443690536849884252460188327072031114941247541348643077423192445481530685225891637980404366024960569742232727167844418223418518872973117673498955046852582549678543794463914981415562316059575945224506780685877789048630131122973075363680120123440943440813330339812530996842250511970148657854172731959844685925212035552079492917127164703440752504611758542111759112391307348942884434499314911223247385248353606831466638781097917678054332261828560298094197892868472210573346671186325311538284440059537423534493531280914608031231246858490221346400984734118323189409616321058898688077605292160259931537738401941662211006903820258832511853536496534677667321927571791980798356536217868187470861554297363329037123528309524069284196906171346821330801260438022807050259124988756274298449566751733504171409499316763803384925269819298506176225165359046895257710275841987676284377287989683140545744562195845193483683123905041718074599338206688211497613580382124237259938596694764964754857914073075385448227488199534692924847981731224412983994944595182146568598981668477801694386761652624714435753295099342214567372712781519097571494321843999983604207815199816113475358964927888430693608352399755995921023845302521575202808851182374419280356974384227623331059410664144052257816764405027726202184846810339397682448100567962095218767087968117924803306622106640175172646337765614087215268364721819050028012554363726196280753392328125642668169366311441916973628280980522582115669777822229642836514056926861328037060497211683586712912601408842617195383338801365098215569988910418959407845370545792914290353115129418491318268039350563535377080276023363660524839465744543528721053470982671127199981020296382885747331532193288944016370642631804334199803546260949033670552220337320869407198957243950772016249154931832394301393741941440132553255252666855486705691915505157173399306422086294112320084218539342322400749046758365844060765812441042491265265505413695395193348380086094854648652253573695524697034271908390204098467401503186134258039627788728822034600261407258948168737540968601070527963673982196650549695863729760028016250779449815605452029009542927949189897494594208536993271413984357467608640067278002379687040325580653221800118709885677715963446892457733630257905329775031612304235320283636976342423753218303532266996780469481550265134897227178190012886939865107640556674799725191490286221987533264285710778409548210435676803736777237096465389335882574714279928058730455714509103875839167281222890121614559989494390542037692315209191195580896139306831573541607378192227942840920759182802335291459594514020600531334818769172868050847315191137025601613122924621459868844903997151973634870888055012735741108641264384217098168124430100604237869554504486871059562948852559498170757769691235377957282448269274903042494978163640956371786838042240206256984097412613374223573354123014264370486654185326086616107544578112506792868866982025619788772128790729278670413546701200137827626060259537030359030215002173319734808045171947492610854902543847760198015491335609707483811942640631764395421910188716226132494453264904279620751180815960578819285558608819085924092849705780303129130949533996591979976910206720669906705332921102168402406645458174826974074720929565172192805142248269944141924702547376473564764676909995531451752693431520377601985739285654596305759602152742996917793693740163612412092884004568466613615530587519310008886503412279906930309781234649658187848262439952466235303710370644041449594317810390340619270192847175324351758807449112828752951696366356149492024797554365358852867396075891290498638818263857952713302291177524766232894455563531112731775398720178240655323293682339679737933252803988902182475648206761429717063906962627761686553785280822341611171705580332549196271637856857818719535518853778608431424356069950741424404889009181516810739407550956701961110942703783342484360059430542335980912456470063199931427072318060672972243116430582570411896422169175092801852217215653094373532794842150889218115608578362462917816785971786576277873122394829831053553694379851529530650571255602437308656909032257636821634494023514807960564686586567444418409790116582600879083648248590022364156102854361977775704236427945826221448383387696556896097113659440753919019592576340808510154792430445452929512297740607286348904268976639796823955301605859034624996296934091990583664610940730523281208635623003002229579231343598744790726031864233637538694624374779490025092688746671242130033417330890612286739131295230945422140216054033439683933673752604248765421244701538874303975010080904612723703350382251268763670014002192998101321297185983515497101604448034635057537391496104947904468930619326799457818003135133727123370439801269756712650361733498194210763037294991670878365527703042628053848051838699123807540557411231646896605721262557626437094423875737910510764316635231547657033765830978314917684067845541120227989999580487984073228274055734190816505787065779240144353823490917333731876828784058088066235568237176498323379133739193971320384538029204086979382313517829974852351901296133597907352765734571540409225782896790169718652875324558138841491839132406231581947613799459736783443767034981692191641118495026658896853757287703543418609797146048070656291143984299206860361521493988761206077881672525711603928902283003694485942501639947966358603819735162020966699573239551962694832205437011287965560662417559921242189425049150209736828259656545260243179355178641925130344407994943312134017167665074942095747785126903683809395823417498270821073621063222210447771748803518198537452930626057782954399983986570638033521481694243298312139691514844443980778827780922531732196804106204001081831499042584780170597946684200059345674469028745249303207955968940632207844924131032861491139429733167830130999271144758933901084454934325521601777089503535105342887232587317184927595975181424584042987761459371240280737571288564659825647572437923323334125928446175218138731869186944470433657476829761636072646038887999937840433708014160598215865515504931772269067306827838527563070271638925986996465092218627787130872961625645079338517556355366439959930331740888331243717639139865851381394772611845519964556058619774365237378009603275989989284381551911636918112305292390921904975025415737615749938032407642519564158328727151735651342149408368203037267554383461997472598124545659704635086156478215387083314622768798374107230332621497200027147581873049111599046579617973477952132073635563743589341651007604470736237148767736435264582119920234729176252749931701260483025987209639393052170912115921565803095488299229892800005580049557533090570111763511391769384445762012797578233520595535806187535219193377133858683447978699992226558767984221518131564432075968102834277745326660730196371281744696509954510906323276349512522041009651099405756730010363863899361435922577283342419978582611226694433161758366652977936823015278986125641910809419673154027133835717713308623013587771042440495608999066477149568981996109899075164051329008830016064120479040484457750842217058675638353660870704307784311091359107963107107994035887269098795220138650737904027757475017700570278473428215393417221134458125835679230315044486978598017627978669311861488980024588592947778875554548683049992686140160219200839434515756699345359123658614651248300236871029020098489745741000615839302797218080105894920314532058615545944497562041665347516345165918254278087161764449280236030907316254784819737297678736517313777055544426865864134850385097898631540016662002749093180196939408259087383230928830198740155133963589582021301929150106613291802134486305415072167100633613932352851144854775285431669488472956126519941972791696971162321013337578173271472753787211473343123672084312822333951672602464253132304704032729366488811481101787610333446422955567320308783479661757598035830323350633215741136701475054802869663729680715113942107970873547235506205832682121133656386136422010518785198866089748861487980774824741338088465944736343698223932740215904026916324216047272542348445041020579523986871210471509319582086666278495957581003429355119163390925271315391386880395221504162905478984945477972152411811474354253224649251162479050288641354252827373954734515346897261924059920296813011027981624107404476185655715525614428284491559642281680039544059968591679014416234829632838170823700109032302833502071277855138581376245663322050923814479076272915764735686168489239731694454289649461513353630941607933549890066536926502377674873831984278389844352798837703816646843110767670990345154562140870403942592195383379037137843384966334736753700401617749005717885088143014028477494719419625394884037066399814953034060835217449107067343634520355131499642892951148981396459385716499442028722609167273451336129495440162430063754384808975353067675181301956171508091898406138678308577620817515247446942776306553142467473195270972135926827077977356332329259791895813504997410338475394859794921248254044608997324250468452801610151803558886094590707656082962813754838835860108465369556971589481743605023405621496265510910735113688531663252342700186548498364440841314537182045906389987557269159838443180588915891357122364926297162763720250435283642126566664188322567100450770987699729024628096734467839650305830647141740183873153675520801280413650363241242986871328711315354174041079401815263478352628614897699819497838238865235814834456548858006943553976233081346148913681330987581281026158144040798637986996601900076748094305132062053712671876187855935010249113878563740197928037806423169810249216248506524180644519744511135019431685249671919481561062833465520927157318809917593093891437837929627039677660145401415461384622128934689057383115392089067630386085905255286183685937004798747051558022411669238193246580048355133799540313282786126187191742442702028097825442867306636466239359042113899347910022961470459746875365748153526987773749931391578971846433384734975981709835449802573815280196261403771181593934730666298826736300383246147151300871930429822237609442705694322420378011962977589956805798573125209074375222016745279674372919437665626553670823818061556024887502986845501739600188291071091172144759942613517899351401236941484058495000523449883466087430604754978037693847152668605042613569847958353948280797630004598269996770507731086393210547374876952461101991694119653363379712184637621511962673766560638916491293281964251061705796640871736719374937292743629517647238222301249055960940709255934050775605681489137723574887127537113371399235947566311082394211975757287279621231783917885572980291025822468892846931696436763201876450993838043176606592212792028198987293150969298128627418432055415811265440656181831744324390940494305900141568157642569782063809121190349608692735132250805639329308334730077378142378925375644487763000191406772256437366304066571620964627297299719330780928654337046681691118976189141587130990503063235724832596911031754899457661789088484114984825493452059937125819522470008287627568001581426021562769777510294579876552001850692418818008213592822470759434281812300817805893360895116633037630142034165779060060340778036423598155288956952231099123901804764516525063628208766925250621367629811397613336660529257718220882171073415267626474597482485040320245133722265366831960680417509148450660911266080094851781204489192012772455475462681393750245030639722040292724767215463032651995058088199299402751949870717159703793860903747650964614291722642606017762314871033230526091406289510353706238868884668064446597098275372144398065516097480733277101889198571928757196544834545677241903024975320002292161166892119065856216554048627891793496411151836062696360257470264742149298265957631407338674145829283670679216709758891939812446485883674420136881880622284022254380940819108544832784791446632573655208989360942658803513370664104490423483872925382523611402436074505844870709648260325233548551701533646765816486751445899348880953901183177289230537089803267852808185768250174226505208909333010028346495925089546988982783241862101019964290363709981742930261878203260492544207061178423225565339851942605118784419816368139558946375364523722044872000343011233561927172855235922822715494232720734796870911142953625087541020660262987299482151736211749160894541301816926781197218880046755458259292001759590763958846652637006201690289425387475546766286716198993550307154177069912547821844356355777412996579720106894731436525473194400723798156437773823054566477782255118431395243625216173881610603299641763642509616585451545559409014536440386122944690832884687341909460527476476977336811232550604136594754992738545846090289184066017593751815605640501403736161108625034148878749010807272840485433362049231654850356445945830916028681499459227905807536680812773642438020863433819987900599002498140093016137070633158809848869599870390511927087251134290133836775256367674123443834903765372799782736573643158236317666571629842610311414056091056288658530123133817150980546219281199172855470112946042181217469100337740660670431860708359836681714391080018279446732330796917260015669806403149960230008557195330013157726169638366127309892064098909102160017738065420805182521773834051137361313759476076024334741577199620158881227205263271580035394148091403325096915556303720589268714769252814027594389095458277921113728724660151398495632581506286168550800197793888130779206428465066564822271793278980293864676540007456761150737504486416163537508800972080328646819661670229450551485920382302246940831724940709196776158902379611649254851163479566215847120310659421742833438255535147542695213940256370202009742075248611655243208291995349313171159945598077526585349825364828485090856133966614163853797487884229360402395795992688257673897782305188493428855825216634249357450144193894518605205388709875053859375809199540498897517505162882451237727232749068263824197471762670446799207839961106355599682553746268890176276521917310532990424022850546068033536472429038515689457982068673008907852779415307415370209034911174203280732549750242750846934598722566243924591722599366970503458114885398423846744578728534408970098328599854511432504710233349120995633207828752747301383676804473838002038346574240652047004778998309686309472534332560010373710144429586888005670697831120400446068434373835371083859378885079749475131608142440107487939245731023894309936698715319281202826494022195503881852487834377819287042385254924911189463290445127671048759718148818924585768890399346703888778847103064496460399257570551835040834248646229732020933567073052268449837886370881896227556582515374349387359986198450205819815246561908320194082066771564191347524890359932621658574000790634404775860878891113611110249079668876669911431164583910127496691561382843000137156874796123902744053546423214261047497350337478634616248882370597645156054519778182805191563497560175680616422339521932912732767908551778293241321626524521761928404788153849355713548786645696123343361849292999992725340865139536447912299743432814061526264410440659666669110755700738875440231310813360733824504131394496302079095672095903265598644900387198947656316075287465728865522845434257619188176390928482170406888872383086502190621792852668379853776586455260780709367767308015684844777250892288272371678317746330783128516708195515473139251143986519203697934728145732812043442974524411888843562028027511711082624321026147681175946618529248207856529675731917427125213195391983967503415406689094505525761756715726844128219049356905072900351350381689735590485689645787227179553639352224701082300562743213293793859380262471977575540634988132224600066094460936250050170571802579359774812221149014132401874236954843548381584915665478342439823112239486127515876059470162464986577308771589921713440787407079007757250052350179922578439209247999334561051984225158706297813546318143037371084181735285553701392221315723379947719576656689260227280819959426318132635698070715602317029234263609809285973239851809039946336909596258263284300546992661168563000876523989286555095454730095836787312573650434779535150579974589100176744264652132760298977879264546528594373946851447226889961550113804488208670540350634503883989515834017664858393059870349069495301563632242698612533229904993800123510063943993176665781479826432716137646231080910224230370237214360782511478944118252988713351410339510827881630574062856639080440429518247292553748617526323422181315827989779602342673169769157306507024176097385129349850591692006082214277131792888290848984583121073000303144648454166523531001195616279745208202030677982921519673084938616230988689571743256128574369382853868945833138692498603874804632227054561231085885331503317685525537140042445989773308841787834366836523514779280124483576067478795272290070364689911796887109191520582371451583008763758004185129462246376873105651153785210938036272869537493640780780696692120804620095786833958094205093978806169518925690633805939717069110936881366278063762607703219232560648746447530309491832503566317289762918276276279316098119696557927996568167334589380222571089958542123106416456546307583411807544501298440659782573762239490093541692550494302150748635712823917127811440933685164476904900726164540207707632694044094904580588202250722515343923534838861393897267749802253448230182946653425366229181470284659299853991069144462108403896929470634992245817899677877692584593485989101978390685910765886422568100829181216797146256529656924263972564189321022307721841017747820653171677754799777861303663291595820133559569995856617136525967016953312540036011582921898151143630293834063539655193480066810967292360596261819534979500299748727888144801070013509136171874347192500680156444031807385400543090793801797997238017745413504044481152224597192591099932773325027904264289228319548590430576558035441911717439983190876153017363694992610333633598622286702809827214326553519312523977413580005822106602707628500075981272762460469895960567326599532919926782974022686919288533724559756398293663645542516809028932063488498177082410684700686771112868650241612031368267217568751485404839789011952781704405231083281987909183015170569465204235613366512036008730094185598783907795153188958354799709187704688562804980179929288628707452925677158161247492913203313239218382175969853557331138642036521856670992300779913178185498290212513580954018276006977211211827775816625519268677090969806447236337393380119807529149850340514809778805185717119949850085640781170562242220130770527910597354298902447233011406751833696635193639012599873972594090169847040568143617809286249148889254825777534550917859907086231684546587284836630425805242455563090147405895067529373332480282640432446415067784629513806599103914465894168338454607340533352392162228239504581208052344499211617136436126714155136898487091567334808044904663818745581971977622456011170368290833622622263317639751232170522992364283410597181532318336872076764416662241417615855186079187291319332600171526379157107536099268599126934585518183743028035309447408408818301216921107727708827002563715294707851196545440795739942211851974083498144946390325888577216112954468837814201963737838022900642535393619703490754745475875607969771704881753800786512069411904392555924070245830397797432025954039254021802080483813608351159184153728861991889158292426706258137033896194204910088131767959599373172874351222643112327543038767811313690370246195332008289172692616097293180584662176759595805181569522439607305655455412509683953997730625421604389257609574159317547834315510183167811444368617047894727921542640830971869139733052499626663826956656557900775246495813553685038523557428079876448704821319760744744773986151413435196331033157121303870956264478517139854477810348508364062577493734136112428263503691391040770980178614544079944651380160409703127529048555565893176423780780885789840480671119100325226342864739029969691581454792370167854106933650552274420030150088863998205854952178818111871790913676619819310119264435051252237186696735957273186746508470177848315814074112670609498746286172606107110367183943087677678250904514347878552440473299609936181937776746331624858746603908248705580170812274458157629552744033503104346112650115120835493363422679924162991056017306386593528747007951040760799548048444699575098515639432333899751848509486423412029382794838193348371352763889520814815078434261676056609450293130198264839571203885239577676091149184520513415851955078666512812979753543502709193076569240927335242684022388309413577648680084059936577318050050367558932268380182477520520430430476254420151574311493943628572247261841051754681270120706271354749087032354088532181536377551879572234063333522744852267032925777361069472591116483184900245460921337855104555184347421498575431008017328629196959518687752584588647105690528960946865675691680995098398025115251826523381007677417305431632417920356942416472636557049192773313801805282235832308597417496289702609510892656437029313255342082461346608374695706054758371823836164054644756189456107974204484724947345716750667008894516627051358314255792690944230429022675993825393134259152986264159913552043948604011569110032916110201969133280878139176529792948972796496504045553122832377447195926058785013967567247027761930456464940861038147518096595056930144611228939419194507289811817506332456296889397348474299170606512559341122762574472346320406656282209104976952377430465505705959836649104242437470651134216843675748729236447140595045930860423469105843115142255494690448522265678039160698389303351021091103453726424418000577570046922125355837798259042014816017859675637188108782476473158737909861228423126454074625219462129691599423736035729938954164864763024448983222563353663375836090086206650473038030680504582697030054669567027455035413787315175435901476529168825181885033846983815645582791896547027911334025029970784833779476727501016793656604919258491254554751583669783113664958849575210826965173332609212209032727011134430296439523839367919445175692939308413093124728690585060959243482370500303765433021394029087898285532419569309703723073352241241194314988646979566160264499955145800008539667261729865289795302763038313573269572114112589675546909798016330711557744208864680583055499876152778772677197585484533218835979828333572515940120767549754072456517197588901715575724580389833590060747606457013467849045310737896563366805216220302514329816396367804560344479774086497428065734711754180623021502410023584547467127659664803397324442866614692466437225440220983991494335276183067493956764783854684470530651859387490436074863607562425692697383813408076030186777782910543798664014946635786681008691550996334188919835501221092614655454723783230410957539673705939474969874667899589102821169082942824460418581441948722102369116704631053652591075429525776517237163247807311525644812666119335416807791720330187618285115150695189708058600447768654845870932068682938700398811549484679763208864476459842220175626901322930546699493531551906060262076136159400574818312409786879825137183173927849324915087829907822387197522963688222057200173989424843604852308039476946142103070340487499404185074512947633472560565098599248560802731631554904843666874411400732861924240769469422859450212775280832821257279375065557464300565140105138173518904652500657777369853744225430708565420772067755225266160665571488132765199680874618122861501937338991597383788929039366655640851869444464969577116900371196867057381341085229722147409611110870773369356128117480945747381224096396814460791472440151294660014349913565471136594661388035738286279610428965698544814389374636356910021737041600757867730216967476640455208384699914527880052169478245311268915418604020976151309759422945452225722941447548433190298524748341320445948857280047034819651926275995672550578968127694724156479851410099524077984834728271834068844021430348397364699436576289718405076162616018127947145830750593915460716905055028675476719417002189361630558945714272804009354395869480706827451430574839187524013492927721740331008860487257268777607570524662036624446310389143550948318329281469192114548906505382764187914684123048770392310325084597855839094473534318649820297730513583718342869211981002562877738296110752208631800584003247061268432744498735266186943582432517713556846166281084494485063679876355801197682506772345585075945232390349328191019396649830699687016064259096412957505063409492461386748798990744434806691165960831689808078260990252728490530662323164582769422847850083414226604531596345482134401305255168222609022409287405014759556839129439367595311035127150202136020760969075056092136528628958805483081082043427455669416239158226212799495853406167018082760164014822108825845037892205330520312988405551256582387635915383177764308434408983943007470922093037070030211073951480942266069732807565934511317815893479267195028206520345158862560837218519094927225511135507299134987053411721122595632826299157497862288787327337299850411916882058922739555946006933997538094395365477478181033698161613282548839524980079511908786990681070037790325007902227948401075717231274979021426973120977252828827684014029855529372921926095278459462987154985250770999165066066262128218943267473975812599617450758064804026434321777083838647276675392396326154037203497019413444560325556604747797421045268681230940160549606778043994250056169990143225154811067830301795728683326911783981825815398567609696295165658351200801872085059706499431611842264695407472030845315341308570569747751410643179459091336258821085877114366617917030484283922326498195772510606724355163466140083171898146967433410295487514966892597517389032665256363056164060892587650352737052030773189891278916517297019086330294284607104164630765345635871349030890199424647569983730278544580145337264602815394670741818818559255377995588556370327802224232364977359881474573893386199789405467468188943806837750449959602316018776274788604025444196782180721800412070459142836013160770787873518987357148411614964696800775788381907224679369698898953586400340723005286781147696281166772308056954914508437997997218608471552617925495969285459529021559604371581352300333399053191500234621090632372363725596255811355508947767022675158117831382288245610726761458381870606724354649904270800198671149175081611651950586472848938704447619862680822817530193098219944413682165302748449147124422058971841142417623410294934357302780710201011466973278750029022868825479214878398132702803248022002387697936557440856223978184147208705687995274827837271674841149875503542765520736260524107132992529498198157112588523805217529884967324551778831679502720042353016633107665956882296303733041759338828364513718355014742139416366654213465498672503568232006804352607302857253149198562469148465633037944308857938506964382754344669527320922814005453474413473179885857264814210074994963561463027135624391997958955282293505773764172516656407401708203180545391131694560688541526059775312913562131207349770130224286745568070298292150272322200861103011102506203680567887850169780233004337550591959300044827738267653468946253257076963872150340736896821400956772911638842417590819296782744242733622263704814396124137042997764235296414006270710913780866214235667616078433212139347250387011434475349714061245783089597959654544657055663738663594294201496676440584324140144553796207967419522750953851387590782342934187003420069197362772509590686870373874247405008202663736932387457344163961306935407435777852222519958106080572540603934605822015304332509017896697799737458596959108010271046620167973732582067152399112270557822612738643189420530866944606756628200203457725275343152817796655440839369734436373308921782740614107000218677403343062186452012825160471765974953625156099456034050206023010021291177932056222212484745348351069450112488077954124382331473766747819758676738372280114874441345566849070976597284414629470788122041830929358796279096535877246861666216493628131123879493261358105881067473642406194099372632103499724928349321406947515559413310247205915874353032581253620064331624039057629536579828778514255659140591315570871806816304335911411382435253116710915144867634697325813702539005724808264876979916608144858798433232156792082467604200133215636696005104595375041290575392113221586724145951862698629209776927210951841745452692839121059508655758661923482537373937957601818736009657570657767879849972799183257524794184123543024069019532899066570125961662619054779810514902496438264058675749950876436671953358730440460216510326205694525623374089260676091602366746274683657717274249293250444661082524305068169941459141561058013202914246387505269014403518919501135444686670968131265801903410756057054946940167743749630109553249491111650715133644623845587169846094762613674206280352348228892286590548007647677161951137175833911918649824819284728173889533298318825828148553720766276122523566440484603270185461369718245001389761628852948138078808109361388411621023996381266196752589056002507152751499511029258132203527296051703732087208175286217027260979254827092445364331734269858240457789472347028121932594572506856278229554852198113139908231738708173240925826515386104232854234678716827218647452183831943347310044707910032296733399577617938932314534140256293085117935304534883729381420955803126929718108924420966643437360908924847821384411245811694324378604418213001666659318766156913425247588826118352856252434677940377596942605832527825340485452695797851188364279983760938163010943150249980634502227937544984638909711511120695567900414275265633451694145561321905972643436563962345547056655875011176338909861947708614782365025925736081177958535539718608243452779193593269009167849728458790937258459977561104411103106309800309525604310994975076046384052848167304392630874004016360826547099920279392371558798328704088404125830035920424986672759209780762593917297306822579001855908693416412135976080517351284977368049433282884814232252368522603261416183742118906254583951219230559510029379654872629012799054789471967505717037452002022430952028457857661814941068813438079721638088395680498977467326892197608094136547059997083280961766955400000157335659985725980617575749167722287075918408408670108899234961155077499874729774642051690888479554879527344335958487528374611345795057022346802798006495621030876689542847657266488043496072261801995934304441211057893740946262649451004194358419827772112116873075161932596155095295238249143204335038408976931120741973942909231386464736147717261973383418921520226611950805748937628335281974887788766917282520515819658625866858256300702640485390613273349195036152210109090633806947511344989601607823195329393629825237168365554020594395954549442534367191701010586418868451485576547177019906489738166867331392962083186400608032274018769847420195031369217574669878685252795947130687641733788038103411072363644887690791210109061993875040186524889330144288922478572855788016680450595922450865915998807734803930205116390912204917533755082096660543258216097906810841135336496144300430207905006313089626241961824856106388747264795336798169233748425504379323919750299055628554619473556448242004072411796010297277264357000673968835922600078745429431146383503019359354954170485810624781315157358918285876198042681219935666940061765629417278225710209998845200910197558374010382255906250361515237789233790648491057271556525520932544684369782714688701196047260391140758913900436340986464728861904224761781637624203955075108000889370141854526316502332465024045136491776590991200062355786327492899872883735651894601926205803080872837444664473726958286703813325621601488996037668809015512264118337313877468364057522476758205730504459283042317684862484207618348381633854668632603035872274451258904666567708951856606756195854117211403453443556086641076233211104537114001014682137876561648736447576148949472009818647149707168698414140858884000285823731523399925343330965063092219905838919380545856710168194919572268534107229272999400778199753151949984700433681154854293755101746026908290893942971959369604776134660048472927122649723406324739562104759092097480224306811760502309867629991706623157660443071162332731111441429121478076598944780268225692710721523964848314640965854528728892653858009363086383213011195501698423708651693879895138320542509650283001054471053442880697685257786862906934067023303492393142399674063695480659938967470300756003809414248176937310536902015308008443653716332028948394693824576722825981286225405939925673381548339557770153969858434453931194595631594035135989582563709793779691150871220897935252415886875888565254867198293311065047553811357179875102045208286157175731370750851912705948666869954925842450677638104581591566028115630637844089001917986612475501473109444160885725307750436733180669499327689832721151053199241049262909455603719589860825715370665939994913074640814297892989729544821319320058626877061058786035299671343854295280685463148863485091161621188739152922798282510972020184917524167125193096778364986129183486535996662332881146018115865567544121623598869619711432096347137255965665552062515073489588603843627179170674214519390214259859212422689234239602476108060210708438243938060843526681812822367498840188806590401721782836221980576279217078769604170132821142677741284434013873248164393176558030017047919944453354947237655691599286377218410441245892842914505655174350320425991651759895070569215361858344110258486025173496425471288572195830917412072783330810549577692759767610093540715539643103102238851762909686589560994317425380389052151787798984261052214095917739023951857065344066392292898983278271221786036184030836433076778977723345284722242894745182654433398985941374159966248847907669872833149584123193684579353989650528418758053201590662978878321432062399960632103604064016878975230972593480358099232531575672141629512796868183804133914159127500926040116946795902508121894410465817749729432086004233161254891641179002171888389188556230445090786435647348340181872798606291430130037718393958742868461934656777803371128533719240982339627666977078285628033606690582689324453542747923045056924817789787716479102578105138308065845695143400268852158110179853600952851301717957886714142261972263247529975256338601928589967598187664725067801742025302816323849712245284123180264058777320635389218286200226496912894553431748157020482011536580315518847505777932341148762612833562350613408875277635990817405819818463118579754109266878681085094661704861408669427064128909569375086787350815434985370122704534220913751365540307237669708355164377562703085930859123803659946056375175640558741944568887250588148537420486575519766780699315007257552820394096411296130896015932290277717066091173730236061926659767655887388193125165526831940328346782460717743653824934794045208733991052078727571278860243455410466998044695840604175569737133570674912478078084927958770805424511489205479853643064100874760417476197315136541085823042794700536595360801456606843446647424995831673908063966621796911091351978947377296376999046851752479696897059047270446987127831193191044321424202406609502445242039307832434571578069350844645083889686726635472710199422551084596745023719723377076683469079728761882838470639827793172410982458111193218853929631628626495618359881747359019016013076720120203846541047839244664746858969154129157976981595832863901824289865403886577852392017422386643923588145664061382326258751280533935438498525007955767692873925332270127708276636853477084833611098423249034256871334835560276824590632871221612675335593331954600033459780519554019069271815186479812987631189137037574061833642410421358574362244887081240537453085307696158771905731272283652736916192971107623037385357728602313736547760010756433569315381740263724306013179822675386512078800961524819335654052394073918800020838685069630762624626012636788877303614287782205671465851998862465419791568007307282762773575431086429995527000443000782958580776158783505012579848989367962059857626729383735315801886017467535799055385588777181189965340349058003427360075324701294776979574012605449776818565934265675618675604355167953675256949618943723812605706342841715259914418816433096014867400248220039716887425168729521227029136710121407863474009594495380750858576695128956171025521154136163315256862179311279176341401647056176202378418812496250098165989383359884060194355832131028747637975175546048292046134272030191146632388453815380901125218270160525058679612951621668118783793962874692194292295540415132445802927143438835303859219222922515410728726870776311133735677235285259199588808651669565916618322275799058752120425718737351855463438992723718661502480433305889774006690705275878646235587694011583927453558878527226925350431540371810499822093122776326393071927952456206705835293408818706067114351759964311578934688096805687009637985986025135522845377635278481308990873337104473318724228903638446053735386283213728058067852148928209025934969662818404174825896000530678193600977949180360952014193392743093459485878221284750350306410493023859026261161372342496634717818886090782959362849919316168457229020265898957592664326486116491188358083302612326802114719931875218168686176465232063958096043239538601116359772723592335779634305186557295192761749406011185310790095183997016612402318268293577823418328472431222837442099788814278513982903732470890213039109420922109495063465387227502218469459466036527574435402219267143363030712784113395299873116486110616964664180884369925725128351033963936645532774416085874804254526988653734411750113133562124214404725393875032389713578181610348201660242740673472202370664829442374826486555551150209657469058095225212240953531293156116061961065101335770459878699946133453195408276188377781678365404786572085472799676910609604398792779128272189317776146867940961071561256325967269824085271640101151969770707076907208649119448073624368137392770603121594145807728446003302664965393454371328667212068621145868455321723306508254860538440744690156836095669801658891429804490085040762740568920660555435080542668931196675545018999370944800900699340550403906020991434210977735618041171980995574504295328232419406756561703164691364223029284375977140121879302297041735416418432431364876816522718830068114733425112095739436801367079266682032717194462597369797022219137059120837914848115309776533111948520462069061210134207059682590168621403669450455564976325970093350286988561894486683709025812004872630200450611088864529876930233378476747950837062161976508835102182563776263286429050333425905098536296757281745728206213643124577685708084601137708087157713030868142592403364804689138966758675879693797406717352971989977701305646290828306397986879633500006768317589042014841646577997112663613318365751688611896149340942355824451593899330723809584148770780178888574981252185409203232043327170224452398094884984002715855707092759441693714398044496421616350820907348505718206161005982952341580276746822797095049256457841340887091516265491794010534831639828705068241734955710163829335381216399974342563923580153405826936771170904424874311355876304697589497535728274375573413286007571157773247210579009465425411010567584563109403869278756019462095566201511639662969827493972080845948100473477931603704119201627365709967698334457728589198362844403291912382133450798327578966976134178883507389409744321602500449882048191167922943430052721855905216583115094567606468059114940560877086326102001587663300604415392707528201268848990208192475310240163106726340648947551256268751581863672042391708566112072641185006805096357976008552188461762762576102273743066939193287984870295163997228132788370151739436972839175318502205156599441869385618579753177604186305474256471307923062975208823117677125491424525549473372807328648043054787650956356362732586431028309135049969195962431349261676478502703830738891882620882128013139470299112206132680096160177631428939394492070825173197331837066816187263338780404899280492559197175845713395191372701302179025131207639908908170967252263641802678786453429902850175278465067870365711242836846075584336215521598627222516367291083021917932352216438286835589783955753029335920983907175501103931211840231119582366652879610719909723758024727518928054594497527278683386859135702379914144190132346597095426705131909725061781611936095849559501359310721757397430088315756842695587499800396183532569313097413569592100430556337742767474827452900899675541199776817856016265759337635587560855229964919645787103064959680013590299037987941687179134830441605419368233330522333194709693133951206500752536256167636134989791628514464075894931893401648182234767313244327477395160443740322661802370242871070583063363126579481204685915456467729917384069380165095657100675278560682107989212371100198488635305341876147464757652768207641356557625857988594306872997804020860744380197152215561589934624696662138388553255065436465225861944934594643103016766001630587100082196903386365219427466434728581875369296644631840736182505169189488939249182158011746777041124069572228943866579634123963259364474111475438946611772390890875554728372573456335456483204906642740568985096030523477272323534238590560458373879830477620402951301541785982217778936883826037602531390353331062626918886826967259947676027729247794820369371537987397172050273323021117160311266124646147152043351630615320390199460960210757588890835614890936024011513788387727249934064007381632788602032424178229734844388546185404249216235522673965404508809129627033662673725521940517412745689149007981372803726263802421425738158508473670518290878145015639535742536087103316667661966538877080705915515405849481905094747867829889180065109220020581602505986159674780790999905919386227645555254248170982113375370212612892595172674061013278025861717132102252304292689053594781733278286691781850184839230953550016905401621013849111549286420851569156302402836194840370037787438332755974530532937533004381813810865108427274730980403574700900778511756933829477153892583929234771987472297827551278847091970962348722212802434361788264077893771543961446370708100661467667100949911976569474485245113344105780202069663894569895964832898726483319183668246307982413976262792917627466671421873411300225941464132569415947034366815317248165311906504631619503679499781602688536636672055183492603337766002346765002295232099741367153624795209221686187321380939768867133376776539886253300635044726909632886571723022189906827639346720393635869742935840377175385487383646370385366439565309968155888631622122453425984582361046530528977403022379628294387495821943761681940632899375949489333295226018652921161468495636845843453480147799191847569925857090775715757357270856098479834087783695715996746721568064026106282609389351967853437555299132038978554251826935804798098170533728193298146002260862862316474561975407070963917034891028696886206368469593788133278834161763301518963966721693872549333739071393494830018861033149801308537049228969737849848773337015211450753736732675028984852411521216440640324075783575116196002695134548197753387457877897287806796701881548615609356314468454628014968385006828212462273365510144417857792396363248151857352283765941391541729550906970495041542962208397300518052686487594796445183991398907110941874125581609317621927246902484655941958824843562542384316710046333046170319607058969698033884473728481473265436731103697950282501259221811851183370545958565406962256991341805390579582134572744277659488562139035947267183991630496691291059223491840954873880304500671651857862452045901909086215052044101731945695254557972526143343217672627142500723028923517997712403125448855660474837359750826574317418059644845515572819854724293825638728808774012002130898404487751780660483568985135625307379443247052999073162131534086758685084505650369345724352524861480187822914616309665772754490883638764008049588814870149568774442274097582612762746943762825211205018021813152796188828977526922757489041416551945358657499115049224625997358793566705350023266789724835064096685775363854114973566396283010915757316234856188731265158027134291935575921369675881270311352804387692370606575558640992636206452450669922196442684856568772527415978240458634470719578886542731282489768208477741816253472555537811487620767534022721748394421797062086759821757770660881806455542995023643120868602503085244858529240136244066181644221065850278250799669060636856992718869557576542585045604903194056751834794300225640682722382797280363379475499805808526465473625723817758349327607898150997380924633344914036841285118852566860163020695427612466005416850325511234546752303350736792936960170541509052034994637003898138396714571586480711832652642852476052124042519621108299186357935378278276480170369717032842911539232622898025220565782372791151392158589858465399168283127803144284192409631673929687015794528689172503933415324537857344682364814230008924955236964386565069161576963939416784160791704854101030165360938942567507246706879056360047410433143532648488412844184528189295355649043845189372200539095367856928906969806045557046955996874058340301430502201415378211266272063833870144251191808195899367056724627518087993279470445649053328959218658601472848835157936062338648599461483151059403264918295999414257653651135898214616520205450662400550511689160239693548559805094093771707403913935870596225940631950565688833970885274912183934824825040995005705835557859440385591547658065793667369573459604801436312038403301151177491278567736942811691635810851238959337980446842200377971914060161475887577867121230446553318024805506157422416549823032810172794530205297669874484605656367963323379287618218313805795263398827768881822848066183885542270061587251180280509984667143135690461484639513606101723448887679460050709579415691355376040459223785411293844794232090418205715035853546162766462305596122865887424203041132594893208039582601420905688209485545663976441385203015990933462124034670196089739129879028502861943974272149025826247957149475051384773563967711841008273843580886199014856382914606508060959585064844127971018527663236790334748661047377030646538663569127248637670738248222297134891229140409404991437968648420305840023441809177698364044616863438338515136701860529632579261723199697365601402738219076079132870465329539035569187418541523467705754167050411664702728735430942203684579122359122559062841476034418602381117718733177096693513715850735662085664741581217864317019215204615137676249375082139335009650916375226335756273461176004126135195141739209549210900825227273144531890338277668527538920790014486832670967393931487335158016629003437489455231583045071346531885235380508545837540365560035663769582857751328924305538239046392288407292279229802152259092634737740185885296770630431143236176471392943730805039195493198790043803312993411929075931757292577061238888282165458238474171903972602603747691693784030227196000577279711481894067643996492271722455651545943351829858710888380241793803656995009233821153009303574207622110207048703497295628841020669506164769177615351234436672761151487228453627545879954084767029552886520009831296362099450732890969103924671796393716446862694607207798802896423842362473040019411562868431801897214733719396835697746219952319711091065718957186378424128798207800145132005064822417892805669894261180008672802801828737200122032581048678064112537975400335444455846511537783004980375608528930704314844952558229870215726052970268290840254106077901034031387508658656829442191494434103724468526179678249437230030040672577097251652626986758147259536995503880875681163718358730320510820371011220933314129313937785186678167441077825583285265133843852742297838750843744061636198360986103148926411146659196903240529705128287429240594765251814039512201695733599193203727050505088579180439260712547215007415051070132838867744984687683472470549969123018970566289348027485001045918935390401625953097381914689944061895897326735892543800972415770731626656905637342370520168964018294224647548380420810315411544701479807315915683017388045844740971546406434294937337644612861973488201436559220976925903945426476976202715132847699552209872645305176724361553748832856636223150213483314646082485598882643062364857739355719118926221592105122659729030262087473972962788094076645446605372549579019337349383450288687845413729947587111426434670174580174023679908825163885372708975542636892781408218703866779529077446987638116791325830921514479730802899861983312772969870376609432483873579225882728844647398953810277448576502616651820253786694118781347805239752260043770719745790096633423586328121487318111025359599581831081030125513502505949356266790287243855694551598667337855948428750471216462538209267098544076358461370382079150155236638529780991275752525545515415390745759184761677027483597849563730143426026437636002674272749848385537167164936059817734456436892902772883398310988324238091198403345809263711357253882352043839645429378976378874233007432638393897385585124302351331884543708625986552773510682284275339671805820619796006017686077743815446451919785610673224498331079934170928069249231368130809162513303728328117890681803717638980559694974723071201212521421719850577096471297875781635956786590061163410604537251233412769680093802430177740028632743570211125895028125904433078436531617393157950995550561810651085247362282626111249634176977398769334663353083196921459035216464883858488987990501689704506512412323612401776320058309114288238789621204095709722621627844141310923681376025832145894789898111320219772359513813391731387384452818279567804148023416294522586003442786697308911392031852929999508344559385883646864237464756949901748972359103784569071583137232635530082348896209223278496884211426773472340875182151846687742800863719332112049972509684894838070128541171842896424784779519852645281936939796316235619719819712878281603960403437742080966430870528311577275474516019793276467235121954849906189818235165384769453571494832508187879124680849942786286943791447695483203691699911288201295684162060760306233529680018124086722317927749951790752711466444807345135851926739072330787098755412674814397195139978686325976631293182614849271032304784090336610404553246507711275451342664621585538072141885433684298072006051051621956166021798979858309004767158927395040830895558874625637425457368962424093107097673434577486938612686957782390631101589967721009703171121549893966741735555402934724662992085046185850995373708495796156415398777550565838824373081527354162176259815163792635342324721685586358116244298651724117710645440442507421959646475833755339846631643646494765377024616802233360821580664012819179808114758066721663927258928789580937287273494905887714410021643520863437502709488782157888607797462372183665920782572631339983168166438492945385439151784817747464637732903219935531000617045716717444003096786702419865296696244692182373631186983568612950876134839835043442080773373160178887435984388792662418416461935220377718760588938008362735339418948802688774748533454211776690368276398762726405214333249607935590145095592796164654452085342018745787365020196991935129688395867913549607216689553946221959980698992254860658052095086589053119091645621493284889097957884075015972907016396435091887659060571433442594367701728679895810245892951226327360049308689283034999035135234891827870403238277750944615122534759898340564614056792803052421330231169733813334172689044904676417147187726739750484060395460406303486934484727994881966080289057235363262777997949966010239332509462190035412728454801921606430217228355589385386890617207936520310311684157228057442402500567605067530458995803062641774301385159451656643997191454868340758024509892217961960039245716485240541522050749860755840762135521752205007783530760594975295491712353793169740993445089648694929270347344951332552171777997451921487788026234872356420190314053326381520673409371368503632824060444121542766138780730641482228401304849670851625568998892250623937439453405991130141589870292897161933178055407789883750766503096529693363510685753529871784057092576053839711103706003445510506868963196242309317694282288774554254658435428539687840075644936295499513475268867841086528860959530651491758440136465394588052730978164570851872583450410409208424957811770861496728284320049315023921517665814179755131487675466830014074510007411133071981522205525689523584576768650939938501032389568123341315277139651412883047265427228507714866367180099376787967578059074016418434396287577019472321096349632529022683757079333462836157378991682465195685865387265895104146491765259701831417756460963663009585686993488333320212664828654263201216834322972212587792947011276018303681164870507594808761735954746364674602670412728555042503547709652198260044686857319316577539005771827323535928716872189467653427126690389860686026990070243099766501076621585519127870312931239203631826371383243297563950662015124287383193943226808916307055486404262956828347140293803214494401210414338667714496399916987080543733320386878211287557187178960071935079613142843935517955079735772119809432901379664598938061923184090255362602594239676945808955380081314536904916283710453453602367094560492820804145627979558841136280768184739747289427398066562888739111246862611131648980943736957593388132330294509539351365154047850497223408364477948748727095322759693737140153013590510215328953403080138974735824622551165094714794513746819836842018063608773245207404189348121050899878105458274032893457665596501688240709161585451035209443247133628286805779515523799751346865842773427961325090295103178353636517112610862893262169059294226531201524783707378222104360942587032468923176243814707448291828474692925459198353112391882294056452524312462421108275433100840371603321292898235388990337192026069071623196485720094324820638335571540684145371786897727394408470335092944052594370332079866752775650766780590874025354408885136476342770339883977688716654842575871478930683097764252476400848485580799918751239539621640467161438826054042077586440506711606495528195255176194281050517410334052128984706541055584329640485415335417437048717761269970201516590685220353821911601028664441677711486862906379673745581270328147457413100448215316844567599389128188812095587058505635787950910609984153287969853400399387754301778600287216762959969787498417281245037768836475918339363414276689324463196930606675946721647451861829268709190162663931857073130192728232635977203022929668571308423021480706941281122192769163449421594631001576655650469990923465963185263667262330326813909069882242630093817272610943661415159544560084028220221503488928764641543742149677547054545003992397719907317286262093022810352784322576215995688925390763643809510429629514165670378682532813457606606426640326848817455607816218557558659887340291192156538489955579824158911487677731225090564262350741060125912441752799108669753443548072476864879972026729959268719261840257391453954220414006923984457368703143100173129341745406312993035616024995132960883056841137434872204561355612629294447557871611497018161809779455768014405809287544307493785350663995191608483380429627983659113443414253516605667466458887122128782919011414803247887373864605345382388057089316834576053235192009166428093173577401729898023221709358151167457614571161451052928530618307500263904802228431808460339349641775900372191341308040415190058026804492260699374548058608368979373840455084632787313227283245748330051813949185205153920402857274977938092858321981352131606173837785921692511880021702394729529839777431690662921880201790893742323428251069114439907467918778695246779658602784831907773805738091789061991397308361618080403995914000865027019291464461421723819586898981047905786766580686739512109809886512036171226650424681996636572489319767856210546689173915977482690802698531276437227531241838582827187231032306731423502250592685079846680431812328454710442320613900979914656483986095521230307767901703815644536307611992807145574149033787676143082598190831261100766774164518951142611022045822140023466414230859933589497317985786274494532713433822623015655368450201260652178868162258137196185653355511804401321333746168789103840165378808500482918077231085794125673784688580871816630606616916488817411210553353269407546187847242525245048482105830877116843015511852152254868079432696903619791879556014989178753366432783015685942765794842527877036077267290798457131524772738028648484225101964300026714782831165412362777845978410929157856055305174602633510004674449472834038252007457861461756489506435423017000583484942019434704344620108628474229678088324889501503453640459721868331328209329208854769988373292384345533725186009277204758461992339750062288164073304863074865287874711946560838624386185078084741251605763665452293394458816605347084552221964586790926125202656025603681958176679125349067910007910122636492886046081950692150460424184688433503497536466233651684742078444835650705546434391634429561216366025673102682434559064052555196167427936339988140186670183025351709073753543416717220486812449748068991368046907756911153652450046085276110347706439536294327218803990511953789807115684196114875595359423082898049458835669075504268658741284577872443937478475309928701452959177901601771043086727845966862646077849191842446325774290416557174298390819057156240715589385266051995863369168351956728873847900092453595621517887658037801334442187555972249551851891460844240586499398158142741696746247487170596655529872453101428865377992073447859387449654103088311212318688134673883774810010362639434139636223356174551059786860197886912919049545476003893465161290510091731179776190030363525788629208840287127987909683931176038391390788910258060820764574050938172464983763701251466580685129055447565598849175848933314588686177130879476802469467955153193824239115756496830423077212529821861072295839610329456912082597591540231304114483470879879971036789656955862237608238049513199539187366935097807367274122565336900612605494343692026921230254682963106798606162349424277811422990069891880226003873914810861924902631660714283643195218391252099785111039162539233788586567036252678267684482880020265906077019157633355284015254730044897511233812145633107233290378290062060398908975971030824106116002030820492323406761092623328303490532763972774099296523389997677901195178937220985071758656983987393300642567115651904485380928440632499283300514452600299811390679766917559737809593458171303699982739510354159377478437910830849978361615759470158262993347098629085579467884022168630859242114456582196912546899859481926112819816277103798603637376656606941712070496364350939755278458301872168661874458639400311958796857791280071851977184856726054510480997221803818139893800764654687257939273177215239538728778988396919436337343823552352781053409495024982480357576726036050415160578877236080924116744102295099828414201032465682094636310069994789711306072117131147335490174193051102971749757404659039210039707660321195517992210307409557916864650451068619519844331772778026711816176856955678980609129672862325019583134964563501998851819967698916253597401935265550296993908654170852356624588945220282408337547345226811724293495805917405034830670271896717610349108501764416818593598619034581737113987011116322064805184068539271270654669269166252380041576672762500009675514808881037237303479566681071297149716798829253639731931440304729911508643382191758714215154140012513932126217186571888432061473457021171235822576049698930157513395469736507451820199842879795416801655967597435135182952055178799523825835326671915534729509440190947055455961504648247726468496256165376262731280535835240411741147685920166467784833435871537611624073994963934519936940656417890281727710750647835920385982235867812419554121749563366587260898896633377730235624208796244568752711612479194860114639188983163764231814105224195294610290424139764125456708479227461017518940854443310707423633693608491939072255888783897923326712509580563563296853979166915250657521862477376830335843643195127092015348871650034696199792364485933780609454029836255980701410654452299394475746264128300356053834600931001326421512425202905096431392086991632338115030359081373304883474593467664162404083657613102144299827209169380877710098469510490780043642347482932163032565104643694658803812952711928147240684911830096785778605824944752753060967474330121521931587205522561501644912992232674648582025712201853063650991617279256723381755163639379898039846501909183034901643600032930744196663801188406984779088424856565646924615778279516471921579023578503783051359648368060727638543887752367942212454963417210763618634917629986676995676936041367759311145560183898248486321735697230878884802159193546768572333161548480802406817673961975970026720580693583236016680118194603579507989531760778756995342985265761079888747755289697664191234402343310511951196901176365150315543759168998431374302082192581174306798200417921773818624924471949206700910662613483521178998825069449293037729180014917924518517329568072944341333660378238811409328262294758368861698926561825416840033411115473255337368681325993039817213128327852668649847552732179374095697724849129691851072343472496939211154498863571284346990242514887262718608796052404533126966979900314216965985714281172505131068780990671674053026880820166659961027921578300604351107222332122500976432944886111905591158440939302471426158023291266125458036926511082597116713282084654215979779480424881199595087068681207029116685717509067007400100453684520601767599848278161816075860947367713409472999485495257984898477991896648225538901610012617314247301600697473518837364168355872557500130451284667504055021930028723872078934667673061334772892240761036651418942503499274031965820334571746553370267995790368686490853473152445195079088166082937707913687897502233242181940605025493128216967267256137348587777737381934096618313866149931425345809224448979079128902180796989288904570173713086313755569321485295917126033804510885533138510524460180881156558076348438871394686380736345545127584610231519451650200849576096817003295534782613825028260967649618375569013525217344740579411252234040388802759703137587009900813469229855521363578592189558978409234403483306327157033588481913267679255859542956079391448749419946436291351898995962155123664161266227108756406946920393421369990998637840679732419145304663715976051303097010716521045723298184773995238579288257747431668780600182592760084983962556059616220482374375800422691615438762409880315410210426954969281425477848040184141578826662880003236894478398299349502003406402560922583280294533660650868228898098209209773029863403903108073515025401104633638093203399896252768287358021575077481532452700680889190061245937270986525331834011256424996008565030732367119190327605126346726584101961535267902466305838917173351340307199392769417297418215098624030831001529050325116866651281498351182545028971342918738590339057158040985043053004887244100012145898865530656100171293945334769758699557332249943330185814267308208070612459313205459120565860888015977743173250732026465509381359337767045849361946967585173534281700699360694251762325479701638743235321434821126014427229702945644650392053762530843627689292948812571362363513675595928527070843538190373622930308112251086303416796681078112531029595529791171506627546857635131917296266580699241636783409612957557084539597787453312134970683025989912231323380971078383610666704676980451427302405750128177430248339389603829229830501322156365543780070414788664681619819400540765680551167567381326253716449949123939300822023087950304604373184077302993368880019536857736886497353445611775589123342137346371827972381791164956603720848586988403815273167605592941093111562291406031527366473610406384048777371024035071027811196955730556371184440006745349407793217612577085426780524119561836500023888205105292601128439885656825691290772719824897502623272750853577094870074582357694800733075045816967657378765346531281246727906937177639536592388606563255498127139258729898169859509244535455129448696873508637298406138271898421516439343809008911090607194939700009351370364558211548824897635685387776293118805076834427317214258851196784906821051531955874747511644188173725579239880060188747925916233919333565966950281928569054654564857627973820620019803946779887491096969672157662926123498077032415813284614604714566624277010246558835631712339765374740949474921802864977222443596931448511762649985937940740997802273664380965339257275297861187246644017420557389096770936695329541800744586786836745413788711786662609880556460522963393322541025001165066933622511071935454775584550523189805077112614811131413205572273256568761420702789480683410669625320878074720961322400662343982615529188050063792227320183925296263454149419622054046037338038188698520138161179240427211504015202501276104664483006739816746082738856846920164108799582761609090630194784132703422175871383831993881844127415703917660209946051368725338047890402944921384073745532680805706879116771409166211051204768767900986983521926944016855196596679691511479405335812390946812843732024102879840162723053756777905863778465332065737228139288817690525834838448268056817969836682914639893618320441510571090773979172246867429273595739818147278126088175483341435758777004831742351219776601628883153365369868131388578379838856624835371750664253823542966571771856545330159129630093588560613971229020910948230683378636926993553649487029877881174556592980868724800252468359308610128999823762081911248890064024086983414928916379220729613496792489427498669047775811630332478939449724682710217937192271072223644577742570404616882753820507364289472956343821267592206987328785012826979008477806999834329616932096563861869549125113370326428761716291111925830755446926659601669543289598696521746994406443181439768343422039103239403722808473425639040109118964655463983418859220267162136549713875183948725008461182940984213117443305608993584803647579052927720744164190440383261905128145153155760747511424276195520856981676899766435397419521230877957232664084769779985566591812012799863679092157794537633549856540856413227754604257476677013849261309232531682954142372304857009213999950706719913168510848393439366496196254008768578052516400399632736346592659354467521794347478385923076203161173226706835994566688814477203530911309441163100160998621773170752151528778475944243573564476148179005581645275819112575281129481102696084387359393690190934509269851807042886156289454873105801888985014044776519024218630451557226785916024194996962421903649722971681936445042002771977922990543114175186704121662629169642004071352024433438481236410403124398307087106581530626320105731678368307390662157217833882587607005366443305528271466080635828602653145223149389187855261156875324976898733135169806921934947925966500672143192880614100048219681075104805493258377562857258201274542539458348743324612089548099747012510329264223048481143808115478171188267108568026991135032434438209701213493045957146676014086733236765095654956450459796782907200335224648063675658496910677887448284118858935142217031903763843076297709293968175841700994715073427083930815745360897738006487147517439586544966877117459381013552526542084718166838066749970777353034933696010352123382492813882090478607586733798068576035940346834162586211945756426797444066973576071619254843943992789889212183808220426924985062785569084729705263117526920943811253901814712064308346747297722522441688278313527804613218028662788206333868452278252366756846738261476060452013025157671297688387474168322666402507120640592003841321212487562400022763761097100313756224728378574958098508022585760923571844612303916736701952484364443081765269948572832679706063509439618650611686670145448764584546524227915212552337637841939623555743174417502847994042446229919639703453271099088924436069309402352850869748178818011376079275066394951187886474913456026804958020785233985498195354032559355933014097901338916332667695551550207213760087595509904767421339313320578386494071639644695044326761234119865538376740156352597410438756790080816907204403893763371404283164731000616576355295137800017460089337663437165187735178861007135974306258722793267886147942385668768749026038869439921381037693775835795920587278748332569449585989228908167562947685314797229480998236804725576613921522786494442448776461271324636495636583545466338863091247276252528759043514471621937756283131550724841949241362093382035717483450733949080082600787714326299429902868353137920880153255969275325890620525374980118260875638541362658530310440019262630097835681070369994862201424332632688137561967823720154403690211688604235148037337959819059544436702970166608933151947069628221036084785809088246294291658858419227764622604937813583750026588886167503488011000725092110428814191270058298540215773503270853661373995095212389958468436966349922263741672651140049935060047486040317493937460651432588771498219748887213974544510446414442325479064187131411393508721467675969896180087032079718774336163416433749221747649941603582301609577535568148202357915014544072286085355572971849948104083249679401655155450737477666159329616049988868731888928585148108658104434636415706986469124375223510279857390780326899422656246313580771228205185832426270596161424987918152684521238221705911931296916804460619188558407283978877091680156852765978919947928275404364182560164601541938373690214700102110781415582380840748625253549935003724715470149387023888344482902496914418701527476132754130230988446403940662355601131372659694785259993854665248322969599473299409536483075171995829093466618843160032824596325874620798627443541184338197672219204469825052736447052615552880109126129913656516189521080026058366079813357253617887004556964263125896529192502803869268516188320250431154478408773487377062438305555070118238631264410042496612079378432446975608661889852507307292660643648984491757006513248304335596964470837461777749475052731450083597502149000887518390383180176572194622335134885735276137088000050325549005209334537410666940446780786543445044368144660692738081537764508127727781594855644769554553639320980968191480091430473863983510390879388833263770016281387673785642199701749810853998741314617769986741327363335697885792451379778812576725647371267300656254533027505943986138043727943341958328919781771454271584255757601798484610032656912684042824085299213557559177833491051687690518310338035905200713232057935371005280817983828221782025821309475611398415968860296376588823924083582079029186577952537614881244844785006945422923697498429230435451960149811462509998309448885981338856300824301055898994472831596477856618013725607280520376485309253397584010108314615611167857515302477510359228776017773216516798304636613400651263934583596526841623081904188941599553978264401494456191343219276840016113405081373546143300665031959308451977814437782679092505094160685153284792877835223280944714764179885916188738449515633356763909353998596500448309678900922587333323628436266747797765802695345436159815221583892363071276558796628692157293194995204832615803497286279704712965471766723131576451104170258037704678458004191710000502865760797262802096609073068761879520050195187469782150479105929140528099429020106791563197338593466923597640751067873363696868222915623991407683862329844381712857459277460413788771298850667429701951852302934787464993409342493397199118318154540744957423347500074744958742893573253960685561986331354157421829720876102306293396631815056921732475994303892606846382169817668745352758015925466147273960866293290274294387927941249978684402803663861850739973501576351247951747201288579069217506016552562198626813704312402918022665669014895698429493438341376045334601077455098798070074317770496643153813228668324960871426658749695647106881890676825065272780967256608936768205969884027657096203839941223273722012919316860893633727996561622067193828520468228429568852969575116278839190204248735032740834561652916204305117910903182794678471005986310045505001514559558436283575745602922435026315384798637043947671696661080577919024647907214920210094941398958023219405118629299823934348727830791507687751185076121717684980530277292214101059015963735371050763957001994905031489955255617389375379705677872484782227911380080565704206323869392276321661081558578706254928133891073588462676709234111185864214694610007817277849497334905453406666773231426134047225783292057067762594619622034032994180904550808644399798634409693262775074377353227263513765124332701164665169391286460562853700098416831006252678860614644310995211008790462803934082917165256990469715224996385304196331389726699548335994019159191973585466253633752676047666199838058558273496851231316822623293634902826861633906134843288786376633855212078309164444260565530532087579523546688863280197647896359234847415077404383891430727278834093990924241645492405194544787416792310293309779532529836321267619399278511523161998397547770408064583472796235474978211306164322690781887149659625432066492016653451377384618990280717275022439755638957251511098717195535874377468442265705363395175331599154344222776334000145276600618784721584629745217472887106967998545539384797821869976406497570489062174192784097854130232001357317819957256415972985922175396571046858887028583889164484427337770820959891260592376858727997317355564815340929350178369057002511807642550387480423849863598824349631849223244388049315889250187656191047278135612891835214381313232811861202355516917824435338098805106042472074889047610204316102797165873149141504831606063709716234016393935264341865744663064858403389094915154336699864381617559769579323521614195006167532588591981767552570672140084989320878690620254320891102659793284553995736470836260939237663292510429531490801253608765987426603469098658619109671271362550137167527893440799619562436641890601574708405214072337115148574339441752824905910796237664768641327891004031762728277075960805340184152725600857377630045825183228890817484822945831810452057186901456370804604919049573557228561538890730466802265316291117304463890505915849273168547237819245404765080160805756326084470129152740946810922830667602238474869187825404990031534109696970889087695474698965337881036395904728369533313048421869724763443980895356277135493615858416187499787508839443805062011306958922644347640302578755433137456923456971445804709823202865604021132351661611278525277630614365991736764158862351764345251043189464160036848709014777032486865026604149832864966549679557863255787408914071679490732080776181597458441198992535537457272230175252993204150936068138835112092672736260695012952308183808366523124741970632315872530502811220581788370686900739671636732659559587937195449254674375771934381365049553796148889636864963280912503776034612403882307835054585849558503644015043056031769955456663223221930393449001926231309131144527396546104558508156481924289723500642066158264174828674249790378922480733076325825004975188059387999903084498724286308740958795615593362016935138376564904840169119541075935534388917157767525156936611263129991021899111293033925446461116379126480138158114065469391239998460759944861749941194654077655434819478450568173671396575892636632004043533350648488688966963665916728483102093013041502554166125081550416975004687979346287375132689242159424282538741526274733745318220974302992158614880001724089661722710683792412658281872410942406015657800077102502298561556748999328441780670912868951232602304517265407727681787665618601844124826684317481689928237007902854687179831063866872944876690796856787412354908688541479710763746058244697985014019995628227180459378555621401850944743303597469748965551537425464088136099113338283831538332859166616025417845865505152408433906879844806588812588685598150574259351745648981876280575272167125781326016228953183158432288435206415884223541134938527380180634775542070043887497302863142797099917800007233369189979927557310493225940362697170182252189545427384892212306015522767256532681223855995485932767536094374103910765324979829322591718188613841498814537436835509557089571028397762871338931846507891840992653654346770812889381498663482048992401529418455566073936721266763228317914888927017364011221934305650992090346593061456129841084497884086733978929241366364044699030269353305716932566992849179503865779118084502212322067949261709559194415880365667720894256132430167008213252113159210483910792377865861229318368394110351256202050197474953373293122376870308650658788136542516683343678842023693811455796848833180896576520699745263029863205499484265213310438882299537479111119740772378987935097665320937839694359317946886575010219449006245794462895216790733368326291653231728330363056410273177111185756445889701019366340079449693673963314122009172743983248642862092525478772144095991028457134009012757081582646479608881537455464323306038372873752754609053535182847772644999724047953568909022975209698907430208585529480369968650100153134589268538912816196804548058152231977749759571303610025159745133395490773057284062361684774854628669730654137947784365343511971432479338961854128411082580768070320575152371360293558031097035558016758669110724887716802453887078172510331299328177744828822008468192474730659212827362469468663233985429393979420956608627020603117550171288976319320185307867448186068478301561703038945058697190213638990761838695322757710034844931618176500337372270535681239527948766854127264316657889624443124413964038555683194535305177288815331724104185291771670928063454341934490880026336154393723879719886669029465131934905436910573422136419723132305963953963837937586358199026395035154414677913407378468681506328242554800459011219808018009236637377231135827065901810569272966444848302870904409876535543032798873899385093128894948479793013716452252934818607893108889409093146794661722033488389009036587953911713858997419651915915898083813236428093275111507912111785153587557772875740015949687747162813179643597045823390179953205107536254702174548423017204710228587002776268561215130067979729575698160672836093243705295150385787012784634799157526332298202414693063960093353129164368594629993264869739092478441610601999252752093460161620464582200681940288797194198886982227472530951147950862265076134513084735229498711182725092585422503308529939591679935261093057984294659889609157853406542708172895359039375997290015241749842792732458208256027578821285904309183885736576855947022773098581293007900870231871197738418245831895200053228508848664821780767896437055255241964023797221580990244551299997105224956797806728138140897743370109235128557319836174122276376275208867931506346801179625783113598790651197525899500645375958826846577581056253416996621704529909533030199186234678246652714932433034635768152330390639430103461629752721492982765422326377151030117709466106668491466465228968620131179541142543631417221295350495506217225358499375531843406366542458434044534896355020193753698290133311840352876401471512794210856989138755461890755479394810346694524537336505273894984043749297669988411622398900552143823638761634105883119966051091431412188425505391837698139000164094468781469130834388649802823159942959859374899109433125321557013839580799996025143296260205570814616651423508550798317162303172275680980896721931631620397807710655059722552388416705059868267110709220687653692679909743859051447232224967112813235240008810316758093166663888036138515343440406534016140403474620644462451104358985925093584853788952891682897992068921935509115817607402258225108925763582868793259967016358409543971148859346342183645541002185943867561545187819967704243750590508374996141685355875788951012348095847662636552329025379382681444759354358504975295704681708679265768893175162309550623880196667891253450836161299546141967163203248066943933074123095186414592639152440399223388835192775610738127861923114743540845586595254503518230068503846857905031184045232057335333557276841845398286866148096577949723290254185916437216014964400995699069004973894160378587275399346577625146107224468590357742702329382811579682286021249585339016812103233214394249414724733736739835304847922270438343521438012038739241645781111762191019323061447293855171765355867128599543750330752077809024472965899313812606262252473918030410697202179553052833705161727915829931959848404922221181846225466686685515258002025768902778134383863822835417832736856385544554973990247530142127487395407052271874500134603053245314347637468608732185250029698748903776632367223932872528153603525202168877491798456805298168565206384097602297129068669840947184180801293166703244189389579325212855911947073472397300696680791011797963103354691427868280477015644332234370325566700018548275693532217511808664409161736793653483610648621001732063631528946264302481428560459823426435684063063063677486048828263022328056202818268758295982673526053085991848671357957960828138290217932120224703642572408448428155249710830339124386664213413079044970027944763885059454605921373620896371899984403360454872476161039702835383229446589995642024781613223245476652189408919035085538948900250825767474872450848606486584545362846012659192054554373253158578112316243725398411067834552331442398527119753681023868954904456045765211387773180823352805471040820505537518329322696986787080116645018962889399703964393525837192536570455441442083806728367144434998358676479852091886241158502090238204862979440191870464821869948862164662183303953890814163386737470844695624829612151021488226233997531387744324286528649234380758540921200537104658012797359829976336574082126246584268713976184210687304855388357062498842204397253337865404966975523181181200373764202545252164147255018167308321560299393347410104802581873948897978067963204579575747059831126357588855855827553007556947295048330069929390541986616994081929774758906810113209352726092275496914610404557331820927518104997511188093228225198347032777730724697639497451511335648844877897079130219103768486442751891792400497638985911717958389739982680117650030103723865815564873883305171677777187179830624910035475167497250541179096544315781299034301435667702589676180067948040870172289646527061072671513083544395498907967975491379261513621946081397733280241748496372887178161495074769713491979466238383134004788848467859890032454356969855693685594231970336479009552397569881200290224583746246142877884380033000982135824949064442119389573343818311996115456439835214984739938117084135509807322038841403851927687198167262749641040907253420820942949274492715683149814680141181886406442991250419091114458261897839923223814332149582721050040456419180834159959743621083261910611796980884591511004458600542900094565760147339358590444335805149344420221890824876281916864048725763709284678587590969882111416604036168669890062166348018576884028827327519191973362890277210194552675809959814745972769465924169150620501384772722754786840935691343806481631463739789147331350845033347338535036167076455145613673904944843240998825006041377711072219367593897440443303679571327436438845537820402906194058489094639191866085205509455598549832097514593192869191615393998618735323115233328922115018663328626360295295130918144212824220341523521358776602386306290785853743295372202540963124125716976762129572686094631348485615409703733274251276999081021427161426617355644490334529739306498379516450811440731185400068780462650234092277224185030330167586184490523127824989002122501396842098114783152670788637896297449912249352573077336218763336075287856242089201349466687148851155686765947348318108484589257997811778789680784229419047836595803133700050319298352119771553842055694618894374098688930133963712241910633411630336801433239990633459161579143899858775646288458533985684887710583209595713053155331541962893470324477552343910641305547434064832988929433565704813465878625580665988102066522400539674648789078055108458973559187545853750058628525128802660784160748180475529679931323894894536054596488523090954219295155215966927376788905024600625578881662457537047619475495548407058130868321871315579424507175032840434966912499223894047421654658471980250717154390802737687948315986851046613385887705327473867614431610941127745246342300419858379257306280673748313107737583910287033608760488202233693515857656333461889735196973662902394564462115038517189322209849819499485273835237792633332549167317374991696999627300117629462544271881611109371993763343970849091078453939612525270567117868486611385994228696529406607503685797247618083670413265227925553002291139836294735534817382792949563912906948976328625882684988497057979525184373111622582343704514407957272349947537357045261495295129358459982799702685821503098770813636899029592774045792776525634972111421890400224050855827263056440637277334269847224632014276468954149798023229116342271479810602258138954963681628627346371099468372800133887918554508574159048042392426359222498255229510613184110635985907908983524975769300755019033188217299692599464604220799317606938986875534058219145916893009240058753715804148114767700920992059426615069836375114645120037839908681740225430492446354067784076780974264748399725962976368663846853098851488059071165782303765730731268622600795267351991509442280503883567365645572007451058212530070566852163773411199322807133220455397302305121344776886537256032218319827805933194404527848292116285334555515056164656952991276659111677482465706854342318120634039420058088549728941151131441166551912539983977013310095185547171824205483195357087042481408189256819604569462261540195584380409344258146499909439688751023758616314256673175906568494400266910755874459810639311302454114152382234740082614076192604643407296986126822697771054320067721984302602631758607565743532219838455222826982681661433742039436796642667067140292643978571504060433484201791154928161705230679028886754064098337503714980788691129600221843288433233499441395075351947877830096948664389549804451365478851668526517569025806721586218788187626993084423341777585531225823236799657121235279860838032903033847164410061349006612365457481672105347783932461615435712139612265878183984912802911168545887752117019436488271010811583103199859939673277875782006354510123283346123185119701283898748926800817857824508677509781544016463840761907257280855994157369297011226123928797413195105105082511468151570022961341078079057361035039317968381886956098833807896185688640245173603996005644354639891513904142753862268511047508455520738205246788383772109821099703513187094099377738241770357205049946225713228084866099403188218321753489143039729503439800295383008244713610672381320088061843674724335984437789819156387927398600324773559229503587314055966015312410100312931925039484014122432017157967556105623898946302004693982268726698221843184730413658580253589893196034524996240583490208688016257385510183041343743436350547798753383655052192980754514917899016176261682074874696742748419900230808940620423656861051685409966058983969459655573985820577105673621808200269423486568493185845156538144911907419642314328528879974667678088221966787702321654805070334247224681794298354878895561646607671834131042061277849819644995675578414517101769188473274141285563140693158865230577367853601535406238072393555132931405138834395007821889034621340540354583254766260201014462105091950760791156510419912236326916999695529187345536652799350212065138498986263515735742939212303238881961970914364642953596003327491443608808263501714753150305166406790924325553367240770693441061521332756661013395150571012519458683810221229960831779189916685906426672243737095407944608408204428712752766836675438159619168816780730393006527542187382070433780859170583722651608200442548513257600558189529285648946348640835827946217038565480186963890628020296378305470342245294509948706606365219081865338505969806153714939449318610811286639608666980116967908632050016298148192230776714937803342544127720618245507306206545353016419248582485854549064237787207108656959287650189040937753416492774816333539455868331368580983406919090286429689463103125474290531974957383081681269368095960805804650242321253905051023455213182917388880918980647862607157989782728549596619926533731570777798402484246978283040728202163166136936364900371682316463028967467445903816606946952817350001928217754172415689109139673751907716059654373209234872634651283021141140393288114111253794277819949808278698088204047334035280306968656440354005247090832152535928963039060092911000129067866878725318166324540575255339874847166934374150247752537813414052092576901093718296434047699341709987499431198017445954409454951930307749122246855732488689213111392167715040099135128725950854921293832419118318420080735211668825315315602836361611284169619651338951996538533040005753082810262789531597821726164694302287811845871102969471925722944409063235921704032871276202028526388676121041948609790888089134811223197448505918803610001004389299793346079186352124343286149526221024086998663358843576321993122500272857458531101726674140813883083464266689309738026968374951997419919330236631600755479250076177645467090327726311243644192006386349973045053673432471872998241980767838858249519933830545571748679377669130673794678939517575596345814535766583980187855083027020469612853340990535647400854713059896354276980378656477542009143837675097661752465607970193154642131542258802933823606692317254690752863732246547965926082386565946711140164409901043005155013418770936594087593243380331415664174520174216500807611659898252011359874072121035767968516495793777405301610840843900364857801148456746636910798349279819195907815728423493512688732739294462155212087044953947865526635214956806304458122024225673734519958349706031427457339889227578580148842426863605423360521663140023942456589857288788615037275329729073601097489144195462994592419469106635961694047013275042500567160395508818705091597434916509551323171989624325192587115656463638071187732884027764915303865955007003389418480058064567292613229626979575389554894803205943055129804598404804536129115126572553005156785587673085500129778127109720755311010010707636439497983838050916518577993543350524914403573270105728585273132433487019426277735311483588678790463566955806218364270064673815669444828372137821336271629202345313148755255619003116567839425244589386717366556749207925900145206881149648826822065868742968499726660041985001028005026594872598702939019976433467952864876209709206135883267893656670137591282266120578565216689472636567507312675693592705115687154271183448208850212003052528850181697107853216085743781854247083309511343770230002982519300948732737076190739294788967431510885569383721298933498402442450280377015732862819300554194757597913435612035081271874788887298350161745723431618954747110473573013807830764788497019519216768598707899470850065736454740087773573688576293532728918899084846030371697018338692087316478551484926384338444958434763292575776945754438917483505674849907612561211597488677227965869878082505459151436226901581352700787081353739171389080480103246659629868839104600401648998262200898434254670321440471191209799534638019913823072527306575320512719574762505889609978117103451658532621838338243875015682804355194618821972419558523494164376219716635206703514556308060027962985836076067739466078350223523225494978123285054430146945893951625432970299210634084307263149824214284898877957896487105373567749116899055178687530375501248412578430018253377789607766591928334038671912337060470793959523894552777900250300848023525386380592322326550488581845730674859683951935287296516164084972768561641161010746009933731719279698400261961553952941709334592555049001778614986256453076813460605962922403492625655006707819461433207804327694488585001286655980750503519997704165872552448034379819949164753565344823091416049319017469433976422578048863184835617845680871156322710819229323717447122803348906120898499796115911149000341619900009756333372629636058380692151159146487687228607032625678396622122881525769965009174569457560344978309223481018111392551748638168544153123540876706640164443906454154171334463995706221615140467358000664893676852650013072243020954534567196137505445693985879317146955744233115996147914358749680709396778372890190399707518747812815498566155128180020775219369849882711498455920920939465597278722828747836943800313175263733445033511454264037829518753837930249780811973563634407320626783576151285683031091793105951560304453215343801969350241849211609706568331293200208769972032575539161233340344034895479454003676625955990282326439191945604566508485698498850469047397129912792957955661671325792963625009747138640905907534246745236404239495418414153039938948652380770565205023973967513097010012446878036142837727836165001201277569948438892945279004120126558847602141109390925951498218923907691838190234657315594687236615290067132275498344801307907934667928172467417404835700924000003614731917314819539720764377780995199925397601300995949226210394303347295304059698058952580636034981902934671313923007693521265763275764343889631317505255634659531942728168060690287718834931835228586240976461220097626775281118940522299222769746067260339643994778281610474223124029469332144511506544511304173312177062145550664728823725313634577281468763750690983432914154032289096897117279646528854079209873488164453812087041181862945608469135129195752562612458239286964142089272345787470088099439136451615081947191235359167447619720375289439888264357832820589411633271605741262557241364793399374333017920890222926891353236263938916627061297270865415452172240810905733772030902638451412289600359822254361475310587142345186658235090863367275020403942955987865095981541460778025633888017086014402795785419688514150945436100056060666915947882286651618436094252068398484654028690021407316380852759840839718388946692858771268205573341842309012282208553120668324055677024227055318927284041027875729428889972353068804977517007464739239199039442390892321094888282134688383958209546638143955550116956236232309166972562573676680232240654382747529534370805631452388901023392142369059702517518098496257589876749313321481892462155922259884500488338994679432376138098335511416538095553468777084623815673841047999685587478351838654489975725209575134533569100205015889678125738988520963124136868049064940817791140091621630929867739558442035912734135608366844784606349518561116257795973794192539355875800111889117867304943580689205758104008854615282328561381058738493847036588798858645152745358228351793594154579927570749629389249379680998992439752970986886726865486671798447111911278790378767997617789043606338277220924640661526317307248735893356292166400832789401309883256570702487115170259219610427876267439904904897145944123961812398764436322614185737665307139113967991789794448244279744902482885699893144339373452823079349693205443280625616639895134909467387945440967375198974792280654040746829782622955361365824942803766053223121967780368163666706658708818353984532012656131450428455489594070562356200951809018192468303459475366171232562966303875725899388520213142540409987189636401797267372899133393109334902546472435311616724991160015199502135459284979418582740790612244337557390896420245723835351666646669845585682490084167388788301674719202848277577585815231746951004503504259605323932220677436771779766929103579144847759553685179994490074178958581451819451678952225316026837916015819411511140548721521769950708820438527781328914658841288035000932250619913629372581924385733077319790714469479705918319657957144802567149063489068417024688771467669732180542977475795620761092557449091368993698476851377352685330947892302376745645033342192340552839650707042443101634386273642124090189041833979150330919531086000695591921347962770490808786854989187391944110171567197146533565521194848446595679642110346900220998721700569472698950303263236238554117323694660802563405595251271876489119173244755480803569422924210916910906452307580147607959565183571152136071098437212280149228786083224626748714839547829225311887985152497918600304966838576179182375156830372237674962760815049670376668632359600531785640619699173555861673602508661440170495936497202673518045028691649078949593538497080914562848410150111375879718862287092826719165210299684292974103759886445506618006007614581402976147640185653068349086987243408046665827599184707888955777104340629912798977332817443030687294910642101808125181510206354088647149963954856080453579106560581520206123036922073824267612645444741772736955829547173501391782387414701560501983082539869028600191683953417429081589529491727586852989364502622226696066823278400568883165981737499195194275769247135717091415886894202308236121210902127634175585353514647913331480229819984827848066525868023469619357569795676549926541256781772653011363515097986945482715839044506480259608691088150850578697957209385264349119577970214601510911374540312777496728409738718063503581335034527470868837654985022026723139805373427567891859907380699906589477863579030640033826267276263359606190047747717569155735799749981866827597554206782244597248223680285839551443623624699666751657012186098656059903438085719714977374896577144285019714656638947899264911701995290916248218918302626946679126300397898328630015425558096492926416049535078480164502802331276691178753166704485704049608326350693075715545745172972160200501354769150056425702450774106176723801011045797637391155166393975232172200035788274144846103065539836214504384025661382011231531093190989739656378164351791158226121415546434742541704879550917123658486788060083312954226534242179426591970438200769247918857220450393651016703167245570691257790959250160806862276642762957013247119419909493508807176123088431029497657329040460626057631782535300576453443379359978453145303136512034956370072834544543858232661482118727982259744624326471190482477620641603675751726647745496041506578051385236399813270487314028498251598491208998058145995129902813431708332408633783079863280079390084890284760209686051653855382560078620933721351286744956961758987089035570873288704150129393078496673914160903149628831741042154616859602941587685152140637385707295518812171517090596013833254753364878236677174224232001709458495492628851155897524343034295999135958298140856224017362711395527463278388521011022467531223277923214666168090790541661047567281027563281178143873486358653256984591688414629030649200545609300678309776590158592988474998389994923399820316235992289941407095947201945618109261426602013779879539077917545109601423166096370476502623276890028562960723282881823315723328106824796128628261345053969418773853975230002647916689428774713165429951490409097414159711570240033896285218739277630502372950084666598276784378124781342481840764449019093033772990844851880502608834230880676125699462595281187980183560878981841441198612045335727042192149120892652874927922858239827091866525423507184350479288259754276071502148927310000120997777483733526895624896123116947892482077682207454935923185492682994799872251017504850977210580370751632430159863112933701003011621547970507164176961983466729163982611479303212943573495850013147909810643851474358621713837189998379977936615503894524813563431839565661791933515450702072492799230634496667257821788991907098009443822223483100175843908888359165474174465016217338896737467604364213034081217645965787490146168307096245727394467608799549619128343974279463496592624895357611215161178661820977510225712063596993341353168772072419116249573561904483899045679697564104764416389331816186664653569651464287151667060439613701742741381745565643078259431377984657679109134585373776913812426940283555524403208931782728006210852428706742064814758131822210960000593222663408681678831219393929287481675545336677506713192065885206151615018373625371597953163413720408475155468761466211188790426507246756282809645817767026716338539255154419869398417355771164710454330893995542327221487658894706411057708205324239300675833058143926821956883151835797740182665658120381196158603906628782104796241604874663756970893666916255806380353855005700597976333494163424165242312666411047917677875770860215887677904104679591910484555465212862497581028018949293502122148220032404648569448606443862892539586735010252637470992711375716602167474984525358446174316045845711510460520675877280793370646599635188211036718665550334867851735094317217234225095736260755421312699343340198841661112686609983280798934743494326617107649372340480080672682182965225671817660896091544077972267492450482208708104075415304901814237010402013241142938166706996020511063139448122687086464080428177777100432153112913477148529736706944165143405804415540182648141936669939116313977952421400005872536414070588618233992529741496598524033776402024227119310684304167503344729497871854022748647840155222541536703821183182528433386946181096471460516538519859620378724277465584714865429483566525666006249250038663346696418983463176201185306848915645360282769538234573811986845984055921878418175543634953231806291724164131960592791818441486094118934674493905106290554453322698056237742605791261460470544056848581400914964400077777830563218443834292838137990671478795849401234311710842182439139002207053208289176547037362594348594703754440904896407236192490025298301453124395441982330254489817860893911575193696990006563571850692971992262237056992938718960160178907037341034444748860541129419141152552587626918296927429544175519967593608790126873183269101589353654475173492891306141276245055595422860683043653352779876262155172491669626805603733988236420397525044484698682657897983389063027624470409404922129241776078735207016714743047342387870716034610607332617048627095029361949627674299232380788998742334797763231702604856013384013767192625499893910184009431027774355291315993375728620374060416583220642179064975869748754609902925223571678661137837236912669869336544532205699832043001414508950929107986476729605771253279061371443729103955644576670557673943107426237951721144691695995323753851957178802681915357262542246221555353333601112717162146753262059138995235173968873962598654665309133898131542275127889494994780255038223710222640975543027308808776958522447943332385256091751743564180687266523127367944456107817525229932561947078284787153292556653226917933740402602527882048568101572700473953164513699125032063258341785600338173327731092433821813484051784287971093146309325152398179926094595152555073816592834210425116984811668434637167909698405347348718164838628347968615232503276756878911733056259821472192443577065214748056960678458889513717244597819074230660662670265268333225020906278366970181407186323046246920334693490683054441179629973347049409424905605726218880895171921599213002850133814068551392781509450496698371039579917211845038550598766149914532833442148374372121237500260122777943187052381896527374251502960858301210871315772423169268543378008782839087255214261152334936681016172838248041706425729888203994302767331431749922865363180499908108713235281381736004878786053226221116805142695266805916805625904404195534470803504450687918215089231440570193772029123568474338142400102283592893455397427365379203711675797991669448222027771870678308810263592292604177117668579994102478652444459529179065433667839411147548947091861202436053275754560727928564940448546173846249145107449235232447647466464672552187157855908823083617908318697425446290280806851075985165385710042929597535191442198666566244986595445068561936672346312817334950330097965870855189193543832679242378262351059846742228176093788829922614889936349857071825637996820784715302935531082083455372214020424709219805417312331577331525838586511242758138516358375889629224990035471337960153135757553359699840228299107509875203394273406771751190078963837345404024289804978390221625759843539132236255094807518958813699111708142029173665629299637399282700725957772728835425319556903874136895194842443683449977600668557528012748164366013478287630955806674718231384616368671837496575141899820591264194421175176251001997612448586926667694284073902536608627834579902378102189872994096956441312663411513101073155059648336124246461011462622904875549052979669850027450619010745243000737324583184007079176275044979525026422004580154121209348375183550146271309047232753962724168942811683295752008637910766505642517424931384347366078997436570576440754845119961470735380598057736103505352996508476133063004646169964351036767032281982958517804502595427427070942688033760416052909232265218789427778388295036144812555635281353611106652240933997443149528219532832619366075243161225002217242548240123724720626016279162250294163823003564370073137308033307048119193528814772934554227499313972221458728585138657166826121361623952900387555310932733426890245726332238526977595673505475846375779954344781329750650372763168097308207941850974054545067962994656569492056693700136887981589213455342816939510618403387828168703717238067558445327902776649181294614514534674976706906361706262992266699453574864539846880252549448440405010622064807764993370670103156345113870449700702203983718573066478233949186082801816752857035248291079083804493620036851510610146859852621497529875530789527430549717160186438782174608419112850847522834831040635575372182278286616200206547173935832454342855153386908121430528405232994876154118568726195406434950465233308953620215799838541448401414827694406121191148894996451344881318790999109018045035351464169919229153094239185737240051759708639272480019509307153897045299239741275283923341297494139103119552096421803027714717220294968565836608329569220981480551460576663681229905958184649737148066217836449650491258993671460928213181935805441897115607743174396047439488168097892647359336491122512528509048960156299948507031753077162524825643034894568161681290461867663681155327573365440452014606413487314791071711226095882934254322831266521342122379807740413692705298998969452818590699809556317465017060990600244516151222646971532825869323886125637775327553086707053049908397129367678074971985446699004719106402167863819104087143529163604520777573260673574043841520489031547319915261773294392786655997009874868366879454547122644203599763326849855282934268538379618468310804578358050310014869475958563284623627501210836558700347415530515481267605888513069096521934562612200859793883139482523003875623664730809338905513387322462225105534181516575305601291906830806803947329437573363373951427213916918906606493542370126363190018051434454873809869983360501191942135028755598140613419595117136448131918569209759485788567337987690166673147291603456104934276898621129514676185101750736974589699598695104068449379143048069840256126413710457605525553943447537163104524948395695554183116133883517689732527880169347132220439731177646585201543530032778227868410527888297286154079873061109981814658612387958149562510818549669693788025842364483069804641561506129921011283477176268238564488388155501936461966746304264682104725189252368556615005443826588214318603980914596115913864307917879877670150322777223168445587107242512554558122273820557880617805714226912291057449156515359782046138246837007751500756889398861558063388601318564549940874392303364602700217925875007840399231938687613521865436666840314166198544856896956335787238092626448847464149805593038063598613740319642851806000939809618090322984946999954079180517039950434185887613969514202076123223398288272971546189367337464999445951244255789982485508236607256101744262478075104762415681567070759371232989212877133545293129631655883957890173687285645214888620676660344947753746409912927651301507658584734415185408126357505662833871969553171848728777621231150885135190904445137594915333793074069589211910739505057066088624353184329358870860226291008541463800009914274092855244117398201875836896123077539703072565109621669965443585163318861415159423715016577658173569483311162512673121942565232381065943566859843897398629775359139157688315398484766376770986948547115289459311650483262509055995481611422669358793389532164075004647268563805325267379148583257931031059010948161955213499741719843537789722987444157740513006142359236307646800875499369946959169404781059671863587568715875714683914065412373735062954911335520057014328781602960836890150980784768504399724874748074214306162311071644802575263348493879793177988446057758935548662539120295951358486191173931739325299637825204669236730034761352454120995499319419423467322059228141501192368965608313924804373768346808398677846243420890374338327549336737862658579549089482628044611434416257466061721210616468849099972116951571649768312038415400910662255240290149113787442911720251045348731399747653691472361673154282146457157888350757465359762557792579655298745498103158250918930912629325489335854845681367543430026903185234635052052096279985251050677955988078238265136542730088804746002256664279439266921528942350531033873576770546412323020441329986354979163525311158226086400205014822607498532803743029228405702632884692465848954570206158659925084089833822540157454519270024768701948522576128573286049759891615630067152291138235991352492186683181127641130157137520812874023834404782051197645171292554310866689077359633247657392416447223292684826695017213583985436702004853640913399574602279986570437514519391444278302861392539985125458382268746422730236656557495162086051889235757952330076359686967483865974398387408000570172236868425098738195807402404416131754866634697187627988358603852213614848371120830904462519023465790971360170573031093397120145991200940268823354299334380961695519827134829921732908077069502588965555317508888786603318876410666767194182059677036016300596528726294368172791794033639180875595408660005590140582704192462208425477511988749733238839256682452478580232853137923399131728261244302987960827268705265225634437932384112315831812105214552177070185441352751696228778163917261967707345360719778219065129720221537040598016320174645865700920671557345661144685340384745629174035770935749190150185275896978310463318906169164781802666791157897927843434171754811194778798130540415522645122541743682770298227499496988506255124785597473640127668194569763475751863465826488047080562927487726691457126389392894511773875232413085830480616483159543802506834069321082839629526452516200882492064013627244448963979272866724678395944204497331686329454267112857402869055343416205821051047498961020650633677252751829551687641040057730490789485731681586589453609888606981544723365843819353316716392772896529935536192873606602114266483808921302977218033013402036532418656543662416834010060978922708406790197745935512194828586365565023032998883982692434210987429820751898259904589276007910745565276104071782853175275358874978735590260398777410282204670676366323001658112809252675957357453677665929569874291363754934184879876485007706939276198887758096686448151317395895832301461685422672203188149409157753972756313401854555340560940747493452262920985998958556854083173504559701256563925578382185047232105232434591696213268623940043413165933851752874040428985675634296059057455304723358928242211266067320102713332999978810860307624222866190863140149915328136273089098160529991493161906075204433963030061936941724664383223938974478234630639717475920381052952204358391075962563899452074207995841271292506933228808311779494847994322922569491586214531616040807819409460672440229565121819632044717519580809198206560269121072648479966115576697577092743299613260492934828931988009186529474444688529171470547229652389935716644864351373355505326985521470046178668833694243526191111422163584297727380919981427551409832166066994731932532573340261699650885996346361892094358963629015355980992124525589076248094832666403908529839407036981731649320174305413017403354201765285598859412562827027169457466106375970386019173370876773132790934088713254439852572492200894807298842489789290173651106387694568627825971186388464618986233157067692126698801790507647100293248333377817480961844988208378087160249890229260186542593329015557078653743695204345735682487683599358728524322199646190230518149015171212882814841563441231628387497731413016015823815494321078219348729172110864807344104604729247096926635065165481116533223460178780182745095308532205921002067414258240345838239360242114029723828954970369109460753486749876879006826308209343053295978279313072842908532266977322829461120474299589643909683737879606262155504008194128824303329762607937216378409367120783303998238901600453374196479946367033488952671484859538705488218975698831955002544858601312970473264363481351391692163921203765074974277411803287903383735114145331277588528754878500443093968617993897934037756810332591911457181993503334436915321424552980886191532039805159607532952618626447245728066512885315139455448533517088320340428781398194920055722190859987325232180964259152628573001837816636721026391928304516969298723881268216462662251036356757440359285399590030385517871802935615008960337371652195773522486469704872738237034703379222913735727566384283012641016756710554994092281253273589896560127830983870631806482682002651757079538393728793098290143712265895151410091320271110457768396764411929504202903022678312140131463893751653269009499349271749715533456097523752538612167229651343972656783177302623020624100088871312048923244543099359024701893456221010936507889791790610308093821646648029824597853648399400243359493478193091479567556739242328967078604158533022393971700758245584719105693598736216798258135895395988552376774130389476598375837384575942610599264783077882174158544564905480968479748554974150701338428875048277965887147626844152748830205541102222073980897824963360784352425875827576739487709129326352828296837570365414839494694563146246379208879509631257210731575587642918267731713051752773823514721520346369756607722305818183538610550682115723408594562450794304650236603095301413607288133861470588165125970167041994504702945761676974331584377931764791098369172014577020657010782651499346767240564876423117421158246764335238568983175892205681060812584999072431194785600666664800699605365385508760950847027067179054592937426192598784460529640741729201343266470917088299474517493099241469256678990412255868495983341130572695892851960767103497317344680764313629697858459782500942454678824460809987751131891926096487498256275371526189455725064885668737267692094997304095242260244687517144388079183653817186423704565497056670164264847395299350410557616882530055077810124587699209214435910286207907571271382139695387259625416906652835636885778060909656864626270526265091375726341633393223592547885335577928710968372683450847797959959787598948838875674506573024857615674312962027691349118319502307411723360026093312169754900247062440269952199983306799470722778546464210289062436239265886086797441401196142235844360662201901665799654464889801273374055689827342260558423227960450108424571474146371936128065576677866920806426512535991322651213231256704893406856918388812017433307962991606446703388402740035158373771023413731954754911085213833620323708879703519589479419180698483048489868884057701698949964712893646329169017638495975098904566727934585063970500976483997115652747230445537086265616682365669807829141978652728332267519736922993261599805722077374763885477285494096375405471235757738238202175130864533066281213071805193123840843875496126586117095615689946223708362049321934374546430126902871579180972816509427677754159856920878484616680129435707310366173493186851386931762954369261614837255743110851839072598539957410549656747188870203217131469800272455706934112316918489791294874862484983232974636323534156633083630113283826492120542855142809375028608581681156497689984072313992111870501006654903402459074319977396805447451511256992105911733313638983766390981927185566357905258015711573267026925269806250312776478764779041950739875389573111533484209399512523814838224110449700284571169230526717857028493494170367265671516256672409069279262073684308477236156421580797640527725974983349899889741746527857132370065441289941635279224005826503726465676789899187687427507229417822483152992960220276740105692089910258014103386770187860488274013295810864871451978154453659007503307049045674389646212340720800487372079914614784784675913707893118709106620175333262367844512284193838573536035102250904846436962230517496148164147784641801294215845280948448352999233830881127389710862859230844201171223275779951903432410528716921177770362836142225075362302301533415686660245367366469585249041471834481834521763677648879863344964951778804815589948794920678068218917606148208244618626343642670522516925647424742375304197424298106411838107071412161197703903651709345637262023609265702816377823353881890179930370764742170713582935143686449030879105761877527499494092455484115943250571992363159276322774617427122148106099808143951897238496902187905870511428195227850094543460013922741168276933323237539209066332491887279846176458911834367177656640493263438595148666604483243892075250722129081537326324833952791434844966153212699000583527809890516044270274048301365759107993701769441175195310331747007131633853510975106224732881265200909748935863297426701813777938846657486130910942210641154833710317989886621357200057343074990081358386663874796570740592681458456545612393141544419635204756812255655742362773234555325318271602692405691212336144015185686667361252872152200252875601592623375336298397404887971447769872270764991518835543673921427469340892806442029868183544405396744353377093283001623673745672478222858503519998853946877522074312848362495689501062041875914259265485083591412030204932992263345172916328542822112870975142889944481766482594023130284740582256666878130124649606508877322232814729989509215732030242491215825780642136297089025976707182820814659656847669146942675783813045670776782725156609044670479920454496300906423818620400935683284431632336775663127515327426638770796317343180383147507300386172033760534354465936601120968258132235519414525932551912099762135173248270573259154377508562466878629053258481977991495256716968312545925293065998642052281805733967337047011113957119742641559688339747880168641965242217928687875991264249930011099206872620970928744210769616531707158565022512424276708086396873871250021780494513581007090557213654063356087267028842173358755594905183359313642880837107907157749562527550179737880953464498778394706658374213570242930298031703430238348925677896385290624373106889653572060249829444722309387364840791973351576287304201893393243213770405436601139950585699206436157392850004762058570493653867999087476975420557393240731120932822941971336277937490405553470878689766154124657168824942439431329858413661762910510914488042138300132220017353596396204522887000296757610462761656347683158558690504971235745289362710343776321736124207402211042620193095972076281220087785730565365519628473734019234231377192056847858738528467200636332545785532866309282097665067395464878541156181236393738251009783035964660732736278807449651157298949306438359008910701503667379338363139335435831282679736025374845341827799274650764271369795470327065755862479191936175544252298587659689783376457798945858598096589840527970129195946916865551949871678526894600126778980617031120778590150538494158480393115126129865575197911140924200763561122353911082507493891662830796543433348512875361963885579122313022633730259474188029380110122717948339304318767775097339208629666517465388345858666570604451886500458213916194751666576851325591873058363091229269088576741735828771249641336535003801602115639642676353096777303342780145768107883960145198071374305494273569671280316964630366134067373709301386595268885846894368848033677886449864678081045691208753363740686693870742924532793518137058483767349819828767620561502805853210601856241351271374170421318661762198917044295517757902441647781414928850128946712253333595025351863601105168409935961656159863716536766395790482084882293029929306274844714147598656919394669862448798860876814395652761047718253614222851386495530700636906010525210725402789627666056386641638994075159778775865209694472845580372362283538537738259438511946370174462596803477722905765408054980157943844088386523800778165651552880470017214219255701231328372452050310695688673071447866800818170091383485462665661048316310747690852320368992644633699490776348539113832096282274353901624170760188435538936791803752503011294110779947767083009283551974795592925386360886324435890562580938530014304816841943398020025368570631047929519491789993250625061724599799381007935799099430874447680815912908778931804213943933985533615237089277917499318154184364085469678909655655857182876010813588428461495982734089820263889255631663701228970864754841050578947806350959003590811622183145643849611051730243450644370548588755086478725976862443435190132153374366499015783482273531543322118623732293237856747875575816426667466630883367509928979115469992855936983217006125120067376675671103892989898261701469501319566937059148584463622365169759063640573521213183455229652217899908145872266696671566377700786332382252262219266443280996628316418473421609492902308455511611760884708598459561152973733806100421440300932571591459705839935063700228820324257112269251054193060953076073187613521296681392227151836499717170379191379461369466772176553312716999467129024692111229390790060241080920859930656574991634533988037307959583226670604599632952905245093478958422615583850500690037171034183368737678736575855605026688620457483653311054092304215614616392255805374062491246142108398822098274749702119088004629235574282798008771312774718589588259540778440580717595842379273205828739946586317086027402209300565628597433980522957077179689033536599369787850052312188552223012500368498499971293833521921525833533089767288633811047860560534314297512371270187943294816787801693952642723759029929018623987636118479246470619337547539386906818620761604997050056455166212864172746203179623538513473638912867088265393897766974665346276381418854813261513363630442416944025257521983240271926779991216703676312877533418076189494129509341973572071209286167091400018176357282077413864915089855798636721983186170911655270931146899981434103050926305344906970240907847391161125611559700665693115242636143153338962420154942067169912723752280029662989337551314689813012243474149165734775768446901416972787305354148013716692409913258142548104690171104906083310240041465279295228666290859759012819385011168558416951397351101726653380037798649453657055544512452523004511565886005845138181946434786359635999515479626755626944537595589866926614765634044104064565952382037393260809232027469867825143835424583739739465431103002905449116853669735683276944907941651894945197043815186564827668329910794100099053005686962610541717215816981841914085964395713728942427574426330409578116137214342476607385950197877539428311716836823545905915772931171385358961357988585391788668249910392387428347921115104548413376884512197275687549258604022634554357094511977644783564549852192149867539115287092875941995316571870514410698885845926504054267300906856284224590675881895708756854532259825184633622570909358679182534137006297643035070609560002030937633727509043739702310613268064520234646125274610058384911812303321653722338661876482346407394080344836553853872695717195962431105964073006714993154426712148022726022900069851265500582753797321306355130119848810452416781353738433460532246111044074133250520319561030149227147063305499592820152537366681166072425321796204987135822931239059495955511955255755223881020342553669759278865849843335590249067740677373445103313576499934448255423856095242543866760220610661305003346434613528038457822883692290980469404028236234089487877195344459699796854580534455070899073930548348181869550343651362081045735395470389615308587871521174350451678273848465014853189422941630172078313963040452227175989724667574984431302993032281399586525035469396777305739562155942082299711987902418997483443634641054892538108977145872803350770819881011729104490584663261855154792113611962608898783502381938630212480777627492640157792403237055772315483048132549157790056177013399389359652869118779657546410282310412437549386231742773577899613465971705346292483218165607658184977561886941238677186721181116782960237309484104833654996860227715599078978167727607148492525635146516945357687328328620639207321369235697290756370410850853348916637658563017218140212043071358660959901361449230455528663797300128782007819804420209110154574424668537217962795371733128672879637122482147021174653418152814947829306416112937375998225094179349246375011547786366500920728992988005460142391799911036780153171195909839086778183449206692701034891657061077643706127099639840563370533827502990796699367934180839302303680458766660895032067450277891746556963371118632917717886284849918816655142992718801161387429564407397769462776114662028586869956276708544604934142271266054764071385471223225711032197600260885958126067235288125502669526557928158539224025495329561704294019636895699645339513681974570633106964454224452744195713826260936015091075061824291436709355141936041701739971789766760652031561721815173835836329441869324708909697915872471010558184312612776354835397153274559512321030978517248688904331806324657766686901973077745217096413948967326660023404651220905332374497768700257951320155803171617108455058896696507298703862330981355903445846714791517227907218635333688251647832300980535405116576576157836937494473485762967965607876239231591439130724180428984170401567016086398412295584867440080487234365154290060571707840860414715327635419901182507365491295995785590184664881573378331244548772906553768600784123180587477862580579766418746328786751100492050791486220085047633620703563442561491441238838135623279600591179645825156902353231889845867254392416736560695263539520870073496994324285301664401566387493098638888949181877224149722907959232872393277946525145170089191170719392435460445926906725879139403374700128347348127240561464649410500088663996925834148704480265934637464652506494623062084842291748355265774815622049014136732018353076996555131685693911772233389696968672655520164714616066005282141298752803069445793368239912333535984932462020774784912292967499580429607792102671776183317602403476932140449300402155445785165530951504920458678908720858924118506297613561825783454541666388748833214190281331612991072690906108532773454106846882072259501415723101054271718534831614250761176502489630325700369727653792047327929006890688876890795825269966464582952362131238649947591695041223436967696111617952721334956662234104392781365997242761242218345456879653194760848034304070619844218195822098456179243761562049604013463571895700978703299387430379630900055537804686106023124670660627181557718107269939403517585232283123436851716855882967242103350619297923646925417372099485998201424957502827764551367245993674105651553886826341288700842224253523883669350777086916653760712729384829067253204034750051214683029129668658145613781427290307429873784936613743681885756614090935104768025474321733694198330735107318662112826301587719594491717209236833956398727427909137965614849231423656380514210753378564734150945762576535628801095677239073981714725094185747348159495276103234215216242928511495979013647549828218393776642847719372395591155031013345429199201424679696946303333235460548483522094116455528176233325932365990807059507646221476363877649777374772941184047872371953089200314936702699352405786314428328721203907063180566918654342161579802880154905357362813365514723384786211491300776007869265483673930395369713676472042915289409690292931913209262732265233612910468305052104911097024247893689132876019674880415921940915334580914377737704441730041310840304251252816682916603483370846085872702777319742337584798417889807985332965607255331239358079370965043117311825866921200844140250005248116761726648458639741578931708240363479352608854166781903399660845594003892690861387592979194378744047188253784146488581804016215497732506836502113665676751636460745720453024335417743785420015002073616986442227738151879874305802115741616450880008590842345115112037698550180876122023967128039146985779272679154192833903317636457766282527401947774049800684053834996228111035193941367453808619422757931023233365266412196733505652601933928232226399237666255389788548606058741998073445104939269006884288882777498832600333132740906178970927850141021150929240907798701288002504466281310737136298204037366539927904646545377861034330904400085731300597805337608701144367954108893080946785818837033625177922065964502329867347420478940370783136310936990472826750714354273395620631140321828168352302237503813521889320917876189304463560193499356564052777057952707434883219205103551240023080237745879769341424100759259567954018219843042840861742745714839816830336824938955785012405430290827802834145556788108072221878193976745302927167921096891054860272300026200625151151925730017415412474158856079357058680859976395574503666692271542821818862101156222045404444448750492993141155222738948747330756321999055690727509163358588318846143484624799701288305282662461864983802565044616545935825061444930980231562033277756986134962996146816750579564989611001413408223697056853817332204485590910169785974267971536173264325118201918946107107179363460032114861061046733859831841291771620487071226365241783511300296827690469533072288683939506762430520701894720802132387107274230747128978306163394804723923796197045063026557567711803268942855753310444654853521144181254491458117100115729745148791847419095235992338147918872103652969842388601495850296950061443036276767719085119396845566664003889861294637644071756577058908158929605224537837108372095821014549919875881092107333750720444820528344822103744147564758645058435488577641484516933972432369632784572262744749483785210038509603103324696745556480180470122199159901927747700564813041482520488291286392529465924704781124222901636218010736265194056560608748615969023675437739566505445989665362956265564422674479545130351689568985477245983747989506865919896287231050606559875386897962461965574725295907129829467433336727231138496385820198050212299922195725234205185653333695123377928333876573265725034526201682416998367945947228666267629485720414486842043021388202376171143301898013556985997433795771097060883951779418134709160160634774731439641956697493671773380884475605323125738457203066560532877637310273993043158821154283739928296117585767263738951686300184023443940974642195061914020181742393719981740043630413865957011896953617828442587294508843538436374536811248393906676978394955375935419224445439800747086056203903547028016866726816266497093086947558698111502699047484060478511654135770797719208350599065887433153018633241308899610994675937654520663036611030753248833010530914163221526834419115557477939595779911976954695542342313028850362556982144384533823488441003709024240562223306681517237547140775427873952175224512807738182162163080742406964037085277150822411817084477210298315634071153611975083040710333561943818590892421702525832166508057655799359975901058765701332736920336095663191314275704432190555285909149851388872865653094859170504501842744962293741010817973302004313875483306478707760127589204155349505368784234850234784219156364697553274234519852748565398537115720082499456221300558609821216824546368024778035642424992291199828073216963944199347385261795720795206258435515452466930651881393310650599851738009374553867302053945192464215780127297503265111909839057877173461645271032346172919814642471929787410954566135237777317732587187349428568955378942921202618448211211241203144159631643263538522537265820499265336448168371052623041070971686402471707454893819719960670290545282377630226635889287983441193168385705124996272146914120115262775677402614434469365486606670016094160036298179993878568051017404072780891758017381009082063524350560086521675643380923905541226263569593163014534197714913810049379876205616160744507634725987793577969124355351223768326300312719264932110232855959724060684055988217028850828729541737082526230527264940444449691104639577653731457441149776492723838303243851463764597019670830148770362469116029287406476564477876065328315226268580809634507813197276000927740719251347949193159652928277439171802769340769481663989195237282859614080826946229515978223400458935588782952601104985125921835641078111234307238326543171882097626050179854659857527650102859434946613529488868359704165451016175314631016929175127628185240950934987730274835155888666216628557784515288483988823481349686775996298515478608989985373767146620209068195638612730088781774808636746924419486915655380680003067694631582645598300027598818219449192953569264299710054479008452249393400238866004284107673761977415994131933759223445237079796194221984498670450152271849909611174936424684662891967095078052232315770464417578364268027447707199948765271413692620329332268838607537200599738016257895933562950814662506561076972151791163577997623777032655889989272236518826965821001159212474537970805966768599511637546887703856739996515885673687078940768981557667920430784049499921411868054249433129491886837256295283817628917534943682075684318420033113606670332930437627732549600909553198596380209588139999647348890305355089416056691945523824533627614177979805091596482083079976151358193429661862571287420331350558515909745376755493006303742928403524775698581448735949798965213418677172939972701349352486438382214120514001363856954910267649093256791791903583183204741159654396354599629716380363676341656710053869552732834247533492447575655469098444501257324964610155861094262551095447723909350412703534025028767202007256567211435083971364728563364472247596969631468336510978657567564417649345109401651507623125878882630467915504337011399751927548987258922459408091344723779588347348506525547956000447509149571690171874433679216488566230433051043830614789173601136733287127881245487350992544383798524588627828388324843474097320487929661310181472138369064901969796664593700638286393746449564748482404762524973172518798013082761901507815587331996484702958377747243698265005813141072926035191636535375937742645947817610034289434062518999959920007850110873431920351162918246396187450075699908987710580716159526088781152572489933076337808222568440447364407968937912123654655398412555041148970770586225436753777543987748371644554554686932281792103551837193965834934333312180312364891862219160705641549407115715175564087553053844681083376547783393225848188355816341367030576687207443818600786162825233478807212436351772224812530410122437278299300106106483419323711087542596449909857628841590254150102268969455768034960627155535087350486289658418109621613557103071808509941153112322084744796579418367114654738598046473370280629575728595335790438892071493979251643024960451610899691681124259059423259796975328806978679539833960415519338104304630776260835292880265742631531736958552616301226406386881475749006725571787444750591530688000032513857900758012493529739023382891389607761754236662114115159374765039214620525102790298386308449050730179305728067972192391381874773778097162554610866208917484156483089185156343572018063509079297239657999344787686930166398459367874473987216648746961400913037333286711442660643735751612422422083435919360419156186060502454150657402497506080743329169805600333859866305790433069674014948045095623449963477480317508161986422795753900221381523657507181963248835129639793754417763099331589888465170165579837818709277654600178934700800453542736212020996736762386804885961170088370612381375937018654908537238087598398739028226042332287242240605933893354788674640315284921336758275687610119820929111421757341883917344894317379434001785262308448711865135976067860436003730598965346429141757979022901524147463030234862399993316760279412016620016095817738561751345574422785406454069540076402048986521187933323607592527865157890627261933753703742395480290098587279187380422538364389212362751329936075589997706169829101943646781032152326680902496674391094665583944256284851559275217587117306929774892661173573164914371443348540185793565038882251017762846042037650385854946961525375622434746460229851334708805635709508265713272179224271682276658420113700147882687562032986198911669635583597887680740251465693555063986424384066828356155330760002075327309401792825311739421916795033995338707054480674423039153556993344240447581583447501082852799618698181292654878598055951749023067062952826586068415654475067837376768650255270605094241728426073866267951327170116192438422847972551963013527259711790589158965785464207539695886338828983265231184357506074947351707174091699868159658265732468091317084572017323428913976434191520439999900109137167009280108562724083002623280385293868868453617128601467710050029939054672881485688510095144849817051591387764446306006484558577820323500126758392619965526102918438697981910428798410179249717131553948215419339480960231830662898186877062081460946180607007164533277475193709243325240142024660914230317795680997968427423197359092617047321016634296801533315310767607880705206366034694194884630587574625781958506628611023839225011743531847956778212058420710030976077454141396735030854004783172564119134076733547358577155973900680363676495716990092447617144304728418270368595852594515589034671454272276650938424418378561177959588280033592261749576525725050079825535364904654682738027590079034378048591204548173019706461480089018244088908693768384566344128471537746834091521010041986106447334020042585295789998709416378417825849922580378329163121095493341512958191225711793164152957755969580329549530247582398463256401484463311879173587307749520393039908470143974655826525372926902031826438834820149255249751583540055054293581210589490821097025837879150170372744881569137131699756062207789249423993733832009889665608784936859538118831541466598906317604853430719780974539669348002684317047222896257597007950615338456145526149204607106011134139170649257193358992390228617484876197902157389737451664303740741125332265278650622057793799765028839191869979887066357921867986658642455454526008335971336741659340235452664761678514731258409551222712555567984601113268003496297317753693466314691264819741059113593062822859943962637624539569226171596935285329543038698147658743804729147886664811247893255585877629635079939586852651173148995985481831767595871624133112327614293640541068922253898640962739510826083968180911850741785316551320743031686459891513582230841932433900243522467249376899210180217563227137338212024406476178641007221414043088898434475447994363812920319670577899611117508322862364808408690774205569867041490759299496287795824076314413005108812516207664874721653468583066099757047665911246165340039350347050059849986201309286603048264128285835511143968338540501857961039624114818919130570913455597736123825531898097447905878614500031096885433930378255508975588476503689154877021187356076870115631932042050600107726808006929505023514748641386379934395708110281168585133821803849834691097247510714829168810758672811525024493733681371928001672603074967566642665167038939998412874321378205344448769746711144785297982153275835015318273365735096658240262815148397609690684304499022072162296221387226596354362429179672488447816117251791690253298552652125233129694309864322455547368504156957785478703217038038323199148771204215319934619099239697896467948474679162954366849409077918891918577526171942024544595251052955039663730980389826282844419588412833170953899149161507778649854545779160848525369997195425065197385834359685751296670670964711231815258633117551118991524777330161111097541970979978078483818787246762169010593420611647096602164217253436988462430829493884218865480490209889065598858999694595035447097024354857440621607042620768565782203781210861454312258884669972359742712768592273386113180161454715009265285080290994013279175052314539627477904345661008513004384152868189528865461520399191114711779768417304770435019468482596297982091199206488375343147768551361155446428526826893917967985777100834852474151770948898866103701152130938530109251758823250184815168647747670072080722408976072668515062801254499098312502937992238658842129176371927862378097178038287767924428257116976563494038732716988728898042182037805098918678753536647262844615712318504976506994210884349588121625896382847349009614669056650598652922909093049193938059280436286781474716829324684229760418667711781453459560710437663931317198143341744733288972606700514871363891554582016028057109449905326243481046255011503953008530275898111042464068332918483359214567470979293795227090985624281421187758736640195727756980029688849120615890493560833841110544223659486978562555892519584645498918191678908916399131440380317554228670276977264813384340300212477513358866187018731108863908451484892911630962677373244547192274243886819832966393874066612415458070758032404516593460174624906766208782254696726071690430624536945443494072058365951603916151656779383215653131638301259011507734298341466654861123952768583686492011363358491942894107670456536815955697827351129103005465326817511141645205843262413350030017492257108406922400089175692957791722722595130988314875212004267720666209418603742409988492344776700359718512157173068914015647199716553724600181401069784084947302175627006499350707285351852999506846712142735881336209578030173231297781971975142995627037330304673463191411854625541101014503531906414643813821831098795572745824468556860118291780951143183736060327669409975337862232050175010967773693564368687616098996208662120586571978306794105977587817346726668174733001182459221966694405024072895653390040580859764213021835226727104910862657143172474629556851240090995787241859179680784104823226534523641656156506416508104730901831677895027831728326002509118379128093421035168710367161023628394917111622984852062933262790954623752112365721818908326310316387712595200512237375208441069837352276662882201497738270159594482685360510915456305092971437519598557859686228640810255919904784772977297004859196722302115690571536564812186637139461151699852957741208743529176753753181868209953181222961368826335704250411766174125383435743105448349914156452435495811336670410437131908424638295469456777072773461257371806782913025182151074253055471712912908345731345420165958746488375768650716182011658328466886323916891391837879925579163133894826669745921650120210430482339145999118331103948170461393165293920730854179405259715129818871780642786410666833418439794175771345998135596624224931626515056244122616019702992572541875338729887206663022107514891663350450643419539030041825640741370612938892869668954723086394127988177477246642676416838538013789694896317671393929051035401972806568908803791993983688532997719941776437666706461205981869289229243432805744398761493907449833707889652349778680514796548025746311796204629909546318122072579653846615340175641364326026980551890919183051700539278296866841217944273106805057331073743230047153751099037170647308696583516922620640976986873778996482750295887231104912355453349221460998696971738294638036077868109042882559092944619288150880391281561369829759478585999578197808390039226374274839279320356939695668198045694911599933137148516431283820416302156152598913569957773230923748429838439950472944520069023786279181173020608328873352579761468216251713712408227601392887666350558720479384060376932721326628537588414805667646386218715098286151983221973724230885045688199796115593717970755331580142106178027060108775024240557985785073241466561265314617482161114323051654506453330268212253053135188755204527184186284717388250123940816888884980330723188698860641009419174911401555962978515474419037104033815523310008199953755295770729024985850478273092176814684683966647211530691188569279945251356710709591948223723934548361776674446600764916150927496022964479242170230015291334142288492832234968503024071969612091654528862042832596237905379024190749566700961857687106251715770924553165616168153438127974042063930176107950996736153929900893573848183209469903830865277911588924855396228264213201273867125219123204940325145238814392815449609090044737505843830961112686652386389768115526419353394291610476206803411731125173655856935738485106376013817948404840901375128935616556528616091621567961404519369908282687852501962468558881109540138253602844716646388464060321662166548364229245660713608540905268871553214058828986799968930239938895031089041119901866122137987281914102383995714593457529161839252596533921504081057364940396894331595229577523464286340616341658826876407972548416857648240066630485965480165119469706615615897352540028611816480275381102450740052982614555895923255458023255288726972642965573282562817305516816562206373316124660019619955116888383888130373891796436045419204463444432902642884852848784848379103292973355248820112226123778010916643447543247904149081999157545945923473755755840071216220367655841935973851134829797638206161410663928400621818062630372229698585154824074203401276984196984211791549423220827224629874157548307512374344021521677393037289051975000199446061969866724262101632455657128429960288318507179198723656476998989078402151161433411868656805887889860231455617179708532951744004198286510806535526396746921754072800223691729282098379006810377408100924446397047258045072037136571208633802360604608459465697915118648338841719761671656552502852322804815450561517992363397361907344432769535064048473588296641966870499319566483366607193126731586600722862343511786910166585355008990132366373771467457891864400826689934565388778507766305611399022718361073810326482036329972488705752283143796781264677047947923429440935521750462966915853777265212197102720720777484729385984214828023549138569287974850358375474336470300185559382010787238145601580514749252009293074514645592143063950159349650396776294960289162654323764745338166907446072435406099604313475160002789130061034677770210955224842890672368235329555531136569171716721083148586568313808378620691490412635304625875944457701303784564329328296728058107364309344547579036260635662591240079255671618424923876937382235073783688163998035937796297372827729454069626019900769538210002771597171778637379624169335366368939081766655234492217315429740183227520475601155278713500786922954131392151324319848807731873354527128282824120539723393615383555757208657192301111617313351798839954316082328616161582232149642761483275822695299121516549787546964668707930464003731990058884191356016829608569588086945552351898788208180051110819280963038822146419536945354341112950224283955011031667154810927978529197035320689797325131200151775243819016346503440396631385910685952084381643181162829883437453341557169572752139485487810089385678964232876243014491848003606660786865801430011262765157985250850505409030046449746853001119833742182489271844292632200308984755767847635297774624425319300437653107107501745520003158123193522057862424735907225450883813550345785101665536988409370255991343509631724060800012270287907273440912245194347008665701066045544254789628771491008952970906170676236199889702240648578573347631330107281602560700802368878466584303177238062297009773567856016857885201734940062382827471593968396151537041319188275657428159362932203502983019445898012530371184343387220753843856201802841640049696923586093912241571047998049804523101972644454484981439717424760677117051812699188373305336657430372888715004159966528877148349918873947273721391695617250166712041188305882390676596499891102612099350516185637710875419100959229278158806301892597955316715375794691277350945693366051665174147184838132779397559838855080292921572141018319731988220771124484475068387575416560501441493267689335916278353875962231019326257412199644966119997132908742123807468064752405657597121800283533526041905860858401841623895173042087130315947779849183940446707309339751312773278137482054195171126923984922486402356619734641969748189020703913118345639357532457412089852653047568490582430412808392757862336923717056697092357933258086874663263536265375598599893116861773239301880849837114661405548551105830983358990157403626294897703818293840084480185413939057543778415554986364250053427788245840888373293390068250514838208333798129491243078959618420495321522683824644786857585053011019845006988415119920971942379709409086348054982195068325610658210628102108601130594025585303445976890546014680172095822051198529814864278787860405774074248106403535754407227666497697163118873316449609429630319743361200304548367600315018568187334009661271927974924262822312024884331383129454420887882385633475271865843261094690187462431920564099899652963374044074533862670788706229271379471660317465133182141990945955132244131099744809415051396870883877512931157666483408534312717977291576801161381443429891414947427660841194118542302817747948419586035502577897213216828686171511700218032724635523727073942673756530686228150005993175932925347240887784913862848037348398246580433960356725993039987713833886513040450677118809351258180265527546437530336524671203422240478763928681213494198816692438388042181921811308414317533524427597911882661140717214885991833910037571433447254023071682602930462217999905599067119238825695843202096598143261926220225676851073921892115230871641406394771996179777792793535997459913782752105951077404315886640198496918469402389345350488967609092732168950474786028297138807298283993737763482039385585185783140926160279573018364216291260485427133507711262180504850547564964161409448093369809547128051122139620342259398183810434716891557846192696875243777889394750619640819278472290612493459029655424640476826179601858931481353640232643270230835691913779749156472034710402087191676727550560329882649675988719665760640037830324155351902872516932819544911333387958601346630518329828705197296196505391804070025629380568255021928304658855399516634036176301318093228997180717256096700116523595940061671073600597597704847030753507432611050431788513620261492976436487761536218152206337104814362161643394461787485157326733107941660421857275228610557166455823239372354200320437729825566883455922120887187947999535654250909229381371392571842020432036685291818177943884073725962237066524430717506379502758276186765024452123925777966800539030620715776575773178157130208774614897221664302205733900515599849252295951073327672450757955204753252736075162905672364479131894538512421879963431085281785456168737949259044965336976038545842878084174648393801146729621162979330694849937582839908217540525730654235826060343450051029867898409499135833629834671948104996043586273554955688230725651447017086168400184067673348101201644768961485807632731972115054864360693753041116445577134138674546920336385487915787780891789842060599641369668931484524813226419664822226220684840870803729644668652077760541960038012435300029084334500441186897142628385822968328672386037293128718348511514483083469367366889228021739917614643307506876103108097954381033848700072592603082319894818142007193648418072870203118707313759482058123089135289313819787544486202089936181930762133553306580000996396661390242777814839456037126537796969894789317282222949655156378793970882468298003799246791198194339213211495425204816966988243678021234355508587994661830220760569682719255190152753623926216648581690213092462451916531522337277616051252644304850429291973188159167185506656436314952948003133024529306385837746795088772542854329591765212951225324476896483337212501675756639407610280873207179816822766534537077627777603982508856646938388261733943849114054901945251754384540253656409562262361745741314451428984314674228534285222468764449453129204949299963086032099701841742491750314030978020748285587736290632187230238975264424261766766302652986534324922395029508449836145412988890568833545875144729574846933961731018192362407113626615221731776828296450495765782775675497533623590897500952901556035363228878145559679660046172863291823542570424009810068524486804793083819104531924807691759425033814209314340883961562452041242760701264751932201072241173228169025045794433567763096874884931485281111082855049995650442089151546043973217722571409051274891561279171815287672681155921208998411657846027430094641239785508414261765867560477060965935525905989563839378506019110559391295383645844113881961617966940924331239614304357547706456873184171102869899618348347669988879324345447998032801717607998184897330900039326083016804215850281960949472792834464447940985273201883917333749858835779392463829547491063823576265893281912247619476962150647818319441048081851644489845562513521947539198644265579657411787851179380575207702151360581740795050309292474160222556497039835953422085832739401600090183746459787726268518856517781826701342366058734652740743665217157934268585577393557913706858187287172380261140934804799084748348453496863994979967812571748445769966984324408020633188347564023324613550046457752478702824804679114938286660028962763501810378051778256654628954991711605848289279069165627857201249320169664383923902878228970181145701744557019269414554961108774583354218313410286971572650728924235348613118833197254285172843331226038647228899821200011320754462040337672638574658170006173736649526576177734003052635228126626760963756066537287804899026682356040404039512696267221294442070811303855521723672650189729783210264982384103477858266200104320101263972251555502006251544563788417620452156420655844992066161735619803392267096224767639155467602280654633891838167413603422758976238676875915805456076224988416584928709220602235527493581536999388039976066048919487778607740082557748946194764582418054429733689058496705769832547614382084236363684161674215115431923215406811172520329663029864398363810091765705506448397700087241146820324203005683501278367262285397575307514068062893359592427857777873806289155033539581424262173531999177000945084517253958708064237714853981498845081949986108325336041763931007265356660726457554406842195484461988144439400781050230000084103154606198012515075587098081912182966801871945539601798694105469657362209964182515676235417714973223624664195513832025904368987704609714208563409881092113751928219588086187499036186964928716448479314246580265324302991559000465516635887412736258381902513624585987332701420826616863104767565190428841808518071949603153679759244016837644882177201511115375565334115027376251042017446480438841715159679126562581976420503485137929504501969013776190999650539252466756636598113415426739075286012626826708460406949514021544628324866853331249240204351687741208621837329856692661318536688358301384425045229618729967500841484739260281752467902803906803996245411178606293468156980345080410219391699487812818585406814411904097222658747940932462625615543909855921722521871601190136431379118436493980966323891735406848877213866342947812189934557208836615213084716590944186307741063855830892110621250701401623228528345937868065480723921759708228078371304502323987740001022582729064280519792898927842148502450681960968500987424501646520775129070040222059077580943724366549032162093662027920853617469483469053183053901950749591268568231605857092960793797278983196248625684682024409619170364162852988361936244222775943655610988348109911348213024461552501247783591894540083575908276869911950895617077889626301369761457281138332085990561229570528682629656530767268470582853370434295264287584817881482279041325670206172839661380007909178119169164517280349188766594142989772053906996772779349053899007345351682981461251200843030267151103182361673579732931555231421644429193169336217314042097079783997445432196898664013508571099982390588158501181739262088906375971569973224677534898844241232403287099170485366592072974064201654241480670666935785307481514816254273803530876721661065367626243021224472533907583469534988312255052534896393793700810620266570718470010926445862019895684502422037944716570122490875293961154208771043713727089379122474797682632421028089528033403452895207895908357377356802306307251031673961754348249905526042975310708965904078959618863737519729168565376487748900489578556718834493141160682092610108795302949914617457021611414331276429554915147399664834255542648120368290653485079350228506862207378450823929051761415010615509800330627662806683468478306687310702605019746308089812881111229681633671033943051200400110362795822116345677506758875152900675420662573470607349316716197340025254727079272202623402806439757225332278936826245783437664923897492169458010354687678896040008934081138894585539885525513562023846917733836214603104676739304286845881909478413723324520927798455577902279840599557903259900172172315209546777227559377100058817362135625066578542518007243516576692698724983002893946295717160698505025109585840982145638867455183928096903553338688644257868951639730512816855740382814907742413714999522419203951220218618366142676165100999750763133216684306689615780572225009265549198636813479022436472141712862146430731496816434950740098860621720901514679152864125579869863202155897917159468771387066586538475453450591117586386957971180193894047607563278411146448104161952742509646964102468476152292846919121693479749001034896743767628447388398814353282399454703722863241310759750950542360011937844813311743519429575763524872940084807570099920377221389509314936897166774264757818196151297396692689225938357054677713408190634184489712145794039012372471769410977607456722336003019960301825685593734968789334983379109561409986758845399767820939026540325517829676525406239407462390252728806788106132928376494247473817304773331154310478600756225940138053648093882273699144009310385767403428399724737668880933599223397063354930114380335466374285447502229200760948489698896855540863117041873019539773530833020053109726816195045937119960267935474921369485816963934543248344387868026740372504927891370678775821608866761970500948392461770233177748932818368388368665808285129991529939356179246456879320798880952590129059173354338497283771689599023227770395018523729773099861039881312850117266515810447056702821237718087467788662693922734812306939831029009981656033429228232690577204679315612949916864529476145061772431073821837870075839638545964270905715512839494464505346827817387433465189561264208517036713402962523182495504674211254741808640262709904925072122148897527862264951630816009005482285807397719089697658471298995117686624769104272457448978796346044837338177104766168800283292816276933783345329653665419088743906385755995659539267893814370235986056477049265680889740871770949453200133490532622367029160680365616591289464084897073063790119915379302839004119057043579727661619693702448117599729944365061672586318117735364473187312935339764668494118402968391359581000980762186302908076696977258684169187562926569067730431031921857826476567460655915666355416257326653152088087634412241435726477823236366285237770801654677096690049546112460771016257853107218951106305315993819845672362314517703279670437621417300993303285459757256166107804619598637248565710834235377056504350047738334901401557584500781628707937752922070549471582053976766101388214502065021789706980136256983432272337002963944474605515925919509507128551450274476803025167361816890127812777930579514992516007455248346257042209262908587392592965284997627038693928120887963851191284119616222615389448205439557475907246812226687705495767991885128190739511500664448472953475481931208077955218299508650241811995479597188590595780228248509071462764792184639231187069874703585643582239102243428246867898007252898288869243767148250098545303088941216374989384760800382975791832855661857751025431673735755681587125172149188595605267532830120741142823274866976613686949111771691941132182796228026251629681950030941680803117085403028177133126459616529990688102706175738003072386082341476689073984800356941177162409229518282035375269635871719499300335486152918365685873951554408994935431484652249585819544601395955549726937711128458553631115991795421041263559499145790389192140229999893723426231132893862910283335521929282433243085116776466850455354831798873319302423010274823898556892292353548893265238563979359575155621047885154371481126923924961632851730628894590225665036763139842994354936374708052056865096374316266893112738794459808930401729774696911251906012672112014574417386003461628926401093753044729830366145413601210902911460817520680251569187030239605817023458593059895116088881535410536739236588821280402382873327333397368409383792790749251874675728161424898845594792408909580413438612869395138507318239724600861471518335860376812202937081344342890245570707803079727701549825065024773092053427203969361001287490328395327406235170262984534130765324772300675732980607678338443746042940826519512908430479000414913917797749945099567940749893880318726084615018626783813956836440124944577041440021204064204324415080719983229706585759171254683283549048391412844103580617048956183183474482895351995353936490824112845157557023452186647641584185336522182377120233007887856460302590528523734448692764817931603732265175666536514958773209477480300765334249005868533150704202029083468466721506537172681906615702096507034024108537958327729351382881228233936565203231991469828683526824562104162847888858997030630490599561868026276966281778655459014542977906489112011098342573232465348625268861335031507709752654251891881754341041629330756348795772993871800796522029687181678920250477256014214131296777200596337544187909329432048900721609511435286031446276264999849828599579438965809490735062649400726119875731985859057225838099985250413050615727763352259692227365685754500447254700022533599371883644628011988635913858384829133812887819239218829286968546323847713383431448705955532814733434792586384137624173540833525764541293860981829927724377357365599443588761492523444177749025997581018280417991804359622472454386229660765069178357416752382999335751126928592250831673266094232772022356731598216385221959770850027018675914058648901668976782678810628387109295279339550428997714106317306866580264548704142267707859495245840755112124597840956799684418623929421829685918215555513812624711512721584755953152362601845238955391897556128096428871243687971181839423769943876671035642633000605238860664190744832138852614292121096028380526191970373065075335541349208447553356455044206128272891858716680456560928911777798612155853943753446473190861688875931144715290845750119986720551192138761218857329956530497909499019314027104181293810020940665659142229264180406790828289460974271821057613196379114530310411256568393742525513885009136729585137298518428739305108067895540674073477496851591525094868949529850461237513298938305242337223230650341182020086749204245763843876497977347747726078428561510931356900703935866370343056717775800104627550515498404773257197403607960371092083161014644473487995094422728860529567361433798666281124702999670007849323866968379263021291183615575833825252618306796207842999876389960432370591821680826924934417756675523671059398475292617381615239837406742799661368577534786741882806602581241492201800737865266907838791972672269563371734917591236607219595972104184402641075079240693271862797447281247515624205368236794178516639438605042598894341061399825914824805195086040137782579812468627809385974707252536452863446346125318378803667731601266317244300430352041237855107919507737737320856611918424379673040828708343030624226241472035139211017182872685321249142341628126821441001880198048423207818655632658130363878166398750651572212356123514072612815861404425714629971275665041388647217725886495626994246066435777999173274640461099974069496427854423407443146789774617094394794178728977760140260303070432361119056122511357200049477700758431645312548428306190961529650009266217281794859072413932557271821801445853295414122212038011014462209169881551512516981198467688714842913171481749063145973971672041307694212121154521807547536973180834563678335620229205499882292754770933307680167628978308704270215379399884276123904593583939945169786382953462714547986396768064428137945719781304863436848955338635701588198646440848296884038371496257733770987238883613455518320414520487327459811509514730309257097212829155718714211347381986346434384613614079582248308066992273497643749484180090029069962052894414673546010668138222880096350697377422446550404320753336949432342365235836545159442440710964727614436573033903064878430857548261184788949473931035629578221390008323370812403986727702642265991349032835258911600414429521963409244404983713272724100936286364530322394792096482846166752887620100434102612030474576636474443213885333779704219847434447530215800639944731024559952457460988995500870316944590853654980809096809543662247019973500871496934513026879372514539549124280486207981869942568207866824676032374372836982583476019238575447532300647506058502912707671377491130440844639607361860890965145194631627628817634513258992867883163652381357437420382786124043618159248657717624531618976133338929483508897167478234736174324990501866571111452995112778724330654736930462045367891065260389409798138378453131668701366479257638607111837600261047546559551655481870032028395220816987748598936873294429800827444353709839659452297187233880717779689340579306575603148577819630387086514890328159006380071779958550160460167566528039775927194895496606547894931641572794874712703207359857257821212194641919892257126084524776526406867050137976262915624589376479901296798805139398846078184451555904682044562239463356132291442371058500542513274141808414622911772297891934899996109453467616088383841791353738973696877834309317532413543903887442932593800135340802272820009547351510147078737310744413012051823470893565826498026139233648741744524735219446609598850043152311971810701904873961551959998489372014852484971700315465743972223975328104118388730797774102258522500959129249131226393607954518286560188430507902774586563920493626469551116010101877844988030529275243943744021964588598431302055042615049682298892536993182516317879657948644435954787455509324179065229586640565708013508449758766681584906193805216771683680298268259607735378708342782774664523612921198953844060807990516213368910807352046791533538818885757227034607408682200652460126620745805226014890712596667095789929750340838176180362251184000191647883694931985351440281544200488763623220288037169398352172216667954203883573643744448090018697534355186974401916841673943646095380447764409505652234680776188917131803795105332378976656628912936602594748967339805331194869178305205972402387008607229426191005027738047670654820865835262095593918741189406511363839115932655856725599450324890408490864022076253562039464572370882960509808284005604371175600295033312382122656852580182757666656959919544747814956514719054240973348105972491399480802880287306689679727028161816700422893859767487925919771035098180886492512966781872974238991933529547414800815846097139597110470689314001245816136291394208801541641762244239537316445101237707402701902424868681412608704019435131567428996696759618976408675118262973616348392776227843903390391391838540978261378865303943990989952850120563590612297065694403184733639241244768197876896924313774515804899735708154817190656597142899313449245664290965607530266931913471592107610802227930059802864082175837649844269019184707120079206684391068144868100753247504372288379243979188478326017441065845489164617138358895055582463294658723857665216500392631103982329941562365571118460851886067886134717963654286690745213537830900700748927563694445717004245676256467207587039054882737263831348815403518806489476832308681734638461614281968055233531319446611102715328424823678868539742737955133634874616556979034860982868479550122910731334374383874714386162090692600301443296277390380823470613423289929198959159474012038570268145385696092860353587647166319901623581766572538684447942960120785621647374310859589131420933765907620845942927597285619511671784653891442834052847620297474960681317414495996082461417562054255870548330765519408475646802431028792315994433283134924219949627768822366557399560757217420287880338009238792236645485387847894678244599299251106245579546451997914419809947713145214727235864761372615511037371000487097849877257227906944222346656846459247345860065495296685569677589071925274308003278652402969641205137226523994857509663833355759661368937741652948422659634149265959779413742601617156560199481764696904890090252589054242148746967009257549708754398880001638558261378523412647881026002915658785760045969738229395180284604575667553053686504786949964222182746631118125944282678202549007626376579990640568936083953326416537716986353860329904630343281288566337612921371989753126013797081044540842575969764654258163257850490926137031231135932558977565992629334741394961277620863874656003807004671005522077694540802617104227091799351725959834218994404848295173569892370265142099365597374034349218089493728758514527257308939739935724973410103954076582144723477117452904855409191787820497954829255043396753340041950442685650499112037428675993913773744221741518901088674965552421218177217586634341769468235723340096128374900751897625400223578562272748928280430368457707742190642116417683580050108966610947140653884990750783550198427769056931170287237573463850091014872301641980507488801564507403775566669067958130218597452701433136946331501167891660212147732351558196860464110132500745785890025907504393403648685809503157998354614844365014616277742415987678547265503673932625409385357878827161460890631738830327060047038874792103556460845950190982264780824711511425501976502775683824066955924545544214424540619117868997385104610691740044170405080260834806866930287647551101402690058564374556247476504998100940527672945663134949320744999373727545903658441303767265228732849885800752259711596103266658192856844016683556140623552159143655014661091736562042519753440508054113945589372665858501401925842073588342301544830438797941066905257516807207599644265283912067329703614835894844081630130200879351115783570000736317866043150222381908117699916317345345412236275153478598698518363825297922402874316625832276734848269245980285338039504981468411392233085202592050818736354970405455280235443915746221966497030368427632993609053525363064493944768526671255745368175785640851009110152940410670782689436842369924846021923229066218153630397295256551472723623138924229015489999529535458759749000206888573600254896468831884999854647385606503730849570599230997807844306022456757784651070728451148619097292969064285098539294837131775318161479537480327506282527992023012289734467248347560141316466843057476641102672086761448406693661514985283145592744131544771212305495798042640032642928349663597777242056816758524993226964860136606722267057164384468704109285542126445631075460256434836008206931350839790376272482327783537389529629327522026985690357175105816509741247998524977246380946022019477727997798957243208251445658612912436813151975773059993609496749312060060100878683529638933962258102855851561945278558650643620363771475055841827548895127868944448472846884450325185375088163215708361414207243987011557508526300474417438185017158533679082192182421510241857096857489638433189717475459866151816198015119241333317118174558902096070274182142533594578683625998332982491647736039111359429035214779819308837204212101721896199965570163439439882383753934270227103048633469092221929260348213346544002083885502119561066325957402233056466317499304717007535807459730075290797878842560151015183037976854634576343664867806199037465038282498224585363854587981619474224445496802074699447710162095867956289554370387258733473583243209726799650808868355984662199346324484516195757465714705427143430322390150543724033369571106939146235557994110730948365883922730177614518556411324931174897709219873492331190161750483242078971257202311593122647452546918094242793961265518533820640228279951947600062055190983909808301555295150502517887422671367959052899524986345008501453006044533959961233605222527156930249423229354737666057051023811475734723419404648172266769964136864816596825689558715564227206756396710611370752652537627761842793409830355335306283623218891662424175340312631564617918463911869699050547254917536749823742090476213582488691033041558022152767236506130298366299214039542421237116880071264937903981129350889465541352157773302469976915453597028127781140263624776829857784489105843271766789137782530129546312641470877997176561125248845920241625084411968720969339229421052455080318356544691321461611387934563692452797894333452701347843848326171907786533058467685903568283902916850378190696335798934434145484955904063203952151969272412982333966290591201277315488970276479495338623709201061314193892578618794002047237288164660309436669455503482905669621102784682599154236803978477539286978150793906801667572267905621041366757208209164137296450379555229595760724495682167013821586630326039023952828170028463877724336313193639569089074301798454627807175206893096393183268808381477287352471101789347982566787599551753570334422015631200029908858382641301822799462860476600281054715111466917272442726267490059167101812717051683613838519990444079500519917513241550114307786215422006108804501271964325203745180796676674724544342459489821700887870862721634856521600542203793044054046297747224323584036893615908553490342432918687149153769086848747495967710845441808738697309739306810871785937586762114208008615891802135690434932206191773657797154719515741530766792695166992968949523475249087968085066558620830621390225677501606250870588529613569636364840195372721935506351324273822402993281316908665453807515007636754494506580567456484774173433295020697884250189401822719733355698092892436772596182197665217133683964024279541284255408081897320872164682730518484220799434598436980007691731049891497062286143171598985968701426239684359994293788071922908552173257709305885149819957711780013828436377313378806122522695026558802570568640354917106378095033854784988058518200850346344927692178734494883609252402443302128438378002653837555508501765483093913119213646884633734543464213092969227755828597660822962298937069209257233593219966011942758139765430210076933976378646797947369897283998184903732177319344234520599823708806096185718003210041365615939387820868425632187088347596334446733168002836314666994377192078805323827453181031602952243087803775561080088968114027586441707933182678680265071506491429941657580420583675965329819414520106612817247024146414947436501053127432017171955885282666511845245926681177078076288318801774956053345325144778349399925844249165974853664212206560220488735062664943657503075350584707633480037429527895785108959047480655484322526740737505485076837527059116136504438993676406546166634651297864777348825060189015311911097370216765407755145116219201243041545607547611762511514789720488203506278041771174325432376306978733029781987282090744013707945030274344443565572768979843045263182019198113385540627339476705921696444842603422393944055549843480965456306447527657744895594445155915836734276493778484321079623508538133043840822275958637242019909797964578501299517165622457269286573818308935430666386345172263418940504393724777143773929923412158117065236198222404124304919601321942042268231426042046643571959872112883865769745307836388870792586541271763848193849975594327025939682297246441910399529039271222093383994246909786853699084661207647872261697071298967516036807163882296815574776946014716447802333455657875956117261505738571435049354737537909567715707410112989057643494360067942275784329656816086498899511819004819805399492203909217083486515657503790476281007764161416198243741581001627734158047744062167371262451945525001949389289538336474835505220976884393400536214185710196202279351839510828971411667545833776232466459465084288476459540964983608382369892695567992190845459223315051232781237794855571748357477906638001022989430059348312336740802035589425816495349704432711976560645791323714925423533450861371921201380040951414435965981024089698445278657620932648722939199290362413869317210437564657057048085521566577358420050341640211731775058022050324568454604852858966726414836575539848714520874991840390287063610509123915228262351898634315920295861660376957086510749890313906043499376734090599685888643853894695170361612621284283701861695431220555923994853274563166442628656563770704668445637589760271582371298297407789361293184903258718832678159218268117914753523078341588714018333728724758886600457719153793495106883993846971081374311092226272207149974185857821532435709318638705480450094922217830466639394724807008126756887718940380238037928157017043051298136745308588271219630806485760140440706181061450647344143237612200002888464529032476139019488469439956985100182977204309754642144784727753255987047066860838893156794164520881027379275216159716153068375802920579681842765545275931883207548884800559582929679403379709584885046878579511964768977513634249910296704406915631225818891031186001927744412844222767942697548435596065743621096600790041919250925173766797680287051225354314328454067290260567489797391418175526001868558924394614295858258016476446721466589921905299821530515999430590603963897876895469091563182697031816692020354398142663822967691143473078330717865137660426578675713874226403759879730829600483218054448681077042400708669136978056150049624483733544629909915567095180825126495402322783550950929557345175575189068524920576471813323931379074443943518852008349737383736569607353589787833680059984554225493641246068226073297914147724300763594331461013155143501798178345234007575612568683166302361314934221931479191816495533687090415915005472196154751405868782051542299317128932382742642604803767832918986995432516830879532436887926408601600937921406128676272007795104073856691568980620517037133018821363251349979069746206801185907295728742526423852539418349200418753946078358587530620200073238520813212188434927348502408859347564668824188932283171807977644747348760786868870481414076677239253970756379382387180258704474626114861841945458353338849701480669871681689753096937102152375841378022901843872183784517928869814635736593249565362988872988314865208034134657024506288256351244621465002848609826334585878366751933584570251988600487914394024816932979048253067768859569283874290693394513560620908956983252730014736789963517343896042105184902819876759239838429317236465529777433362629098550926884375538903934740099429782749391594595216294005097620169793695705488871756270686827096994050780407527540101974013445324744995160800386241070898889557678506543640643766956991472046006312902234050939249803701883746042153391716522511204134645376446040805189135826395650409798270289581303600286848164151606430994273976306418658313414645808673144572138588758886184841352650729885635290453552126619281213325013234646343581337097248254136274384409548559811455614668199638700270471362547795514969816035179250679529467045156251008771880899278412528678991450584248022490103611588172782667091759945733486131044690195751037517814077445788466169889841477183748058473745411566462202945344408028117925415263680490916830167980477192992549488563450740987756198048543897041853508612183666805881516927624565048814718697140534857996737676625219410301562457292415714538090077136721923548138774892457930149420909756995218436517409876815132557631750975429210295145250073803251768035460022799468851393311792614438639712132112202788691245937401557852534652427250326348131303492144732000564013521254555510075223622597534260149483630598562946457012919140228827029303101033373290809671266670136743067492610675663652581903056870005856359249674739206085728245915153986820177033356079199159732596462961218463416264394246114270266313479360259360067862899149350700498703295915760930677623533991199797563837279949443357393450440421942317432512954749420782938895404540180103701293192654224065065460632352300436299824904977150861522584793847178004251255713004317964963258727956574784391152885859515770074106219900986529779480021161802380233262772161751987523295062139424847586754962336286011645565062664934886615826621981069879387800229303661346851459528873809390205721796603405063173123530451933745584071068065799014154112532240590094417657318744944745514742613726844030067202108478374206817302833672423979815745447962418914883678702418265764205412152619590795975615293534460589158187719690323389287899956508519486399812361273329211539523455100225994085726762514315915236755006836549180176586632474742670532131014272112414662904807958516528019969751734593686988364376054526215748362152643335066712766526423969806027938546870691938492784054381855002927503340889956474197491967483258490479959208447584358707269602195696214154818618182185039368478360041353511821979209718423489251315878396550467295329991770376703224354233116579384974078974843428617207394266631288040419642621190962686918373178810944300378127654703262988456250308468733138258927529964764709421155127443265754794356170975497748730952168020108113031899703286102724062940967119098185038605961481217939848584624148745425738922956077088839901184462508519364169891479990562327873680347904748535342366141176955076730686009775502187311086942007520502548584445466137015748481484088072781865464123612687862349709470669176588325194281489234439117377146477064645419735110501231136914414218427008662859507227232973871543154279891399359172740479428388402332247222362875625103945375688478028405722626583496231182173789481786803402201584466205174059770720212459114814517717402838532618012331078620770674078428007937408127829448502476848491237238658581889682683615725370115256742097987368145931926332591483626202425202643928233538033082789335340420918367560309751026921025210837752290211901989143137988966753948878919360334597298301775741617031165672702388128434750749306722280110722336377186761490785326525598022263535456485340604945015941147324716883607535619847764100024858702001325167181264761227450966840282530535826730818915544071960434524252312910026908923943647068028654297349707035888717239390302669718862000821130055570449704216649583009851520052389433222938034096076822643556279893725794152007328807051854589751788791303164999789337377093511417412255831166111154230945337584371440245801883398528448150057112271762842895588878061077634913387594351021460457551151990942942662800289007859834316581257671002525248170498007279164360457506365504997234568317131678586654687193554957048429455757255445276800357369617309266420785196705711844576349930030122927285382386305719385313936413988500120434795999072320736883931574310028268641602361215313164353518872805680807244728920364820507331887892390843397104160175021835192273507905080944491962798661640284018567992402100517138003617290241737384021885893018624918478880456091619036851165415638954185912090199552179278849733852607278951587636027116518495969701299295433329186846021581276840019447726737987888600622199505037809778090020774201231517307082865510231892853770761441676977967493600749923500908401669471787224445099004827165266153433573872767472708081362496412622522230799476940697300915726846610065880486771149654490544150022407145346752980602722085138949588816856672178703454950954910226550046412974870598251232683211201809663527343028803763958071974504502819363127658938262662435976512325308929761575552308113060815924885679609860508660941368913089539409716472964692460539977453586237282139940708474902760343747084690877619154888146330587609474282403604662300492066323875607508117059844298579632303884557394339327775406991918824903791528081399238860614592098869152775567032445995673939671457483050195298834088994779548202827635403682380260987971593151738068411040728229138608943373017472957034625199751785039407085112436335728437994963906291501843600712435637747813175324040189402897257855861829485666620716792654251755760005410346465130475316896710381740213142829234065879737622939281987175811904333991258381178094306813084039892965062634057530165636536673244973006935781642908232615101017464206351680884523601091006896980065615246991095228624859571463523720502424413203980355351626133273760091025118340366753449542090041045372913959046399889089243204466977900314791075389943627923556619230474729868408198340920199067928792924350820080303133972827174900774389738943078574837206720151792209568417851075055420803415599053257130396413417101431886131329210062517304533388989583195204384286713033178754992744923937167167688747833833859432957175361689493079478350377288205437208499971990622645067596255553371883199871671551955327225994480236675548193803782731589927981976000874212810228216698105785301831904394785462763513154076007767922366787406211033824707239104516477348514760122536873902453732676395074496400566956989256637826852203569209129416137561942576876608141973831045599953027970511032368114832082840747513247043821290140935301831260810346728817559741165438807347959444429851612795651829639936226556514607023552603726175874074605210468519533246765113397460901286506707578234293934697735295153881279164790851669485997610228090316121022828105201917432825691625394029791959547885639246024938363797590526468246456814405229468722355529119605835284995748955544901630576598449436837490045551439415662039953298989852549759339063151062428799854061210703394918271541252460444777869179644172332234525300569418783063708305379522827462352683250600575663773393433858065446851323073539402702451534236602370795418891394960353545097774463722034703224129952773065912297668492960909081329835466273445457025865443218517422707362111396021991390493119454405311317026906740588661025137579653147584643550039212843097553584110954818715155765330481522777369149428092764293709067996782617567064135697793161117598321737454587259554158270350204592590218001111640161375047927033272426994584723814182807990940397952172795853728845755187845030098032671845167146937607660684663147212461994300397940488398730241760871122869537623218564478859279284040268439363214661111990082902956329575833183203572133524125589855136122566099639128819369792487879424551843602229156175350286381067372019301674416271497219289355332779039409900873644890327946797376015765401551311122251797790141872120564731387335713047891291129629179545211459955471974029039835700423299373639971041448598145348755920164115072396773788289278264164187671943600498035109355619021028712563419101257416623590663660431111298616577174964840218988972548863514903826617057707990061858771992200970632983365258045980264624014743785775898865430969789632173166536734714477899712911663846552022066042601352141621002284271151895460182601219989028163043540618824158945174374338048439954496850463431281560151440591281293306096716733759632572256103684581008658981367547554282276529097255469182131745208419766724209393934703763105718507078629494629569080309421674499660892212324634648996537050098829712428039589302773219622317430083439324927221971561831149990567395965515687302209167627383538669732792049233320611579816428723480902209108945437204203985377487240521748990953214826994427802846540535484201382995341977900195983283223936010794273413000362099764824009828505749031966821440673192019795479589980259724848446533025685763654916686260377309059096084551155515804392971398988444833495193257601532536753367666843248874129752679737402921292328939322498007266405572457113149497985816226758900431081435573447337313666979707541165810922729305896150274932470286858303870322914852785366031435689163981160623478327780747413597996614365640013852861079542397696272508726481269955622855942907921167792227019902235955314070216690755942886930438444989710042869887453103401774440244339040153909836205068196020589779929341259217789866490166820964083840761729709837175220056035781887157656921880286438277159745629061513796762513997440720280542597828350973690555114274267214899469572523154075416168427734344073681357755772686505907611240957476968143519403701452757427739017667605106905947382404457991981129490432809629965178379475417868341593730545716641187300103941959622686374901094841499214592213990616034200140083432668881181479474644715838293005973560818641108863068785979036572927232702537091671937089161701350817607713104723583551264817985492008625311889127073020890570756884482557716110638063835429078004653882922904669492902062475595101072805841099451755077545883254328119850705524731837003804822958288231004296213214788360198558962369319056658548403041761620694174398335732643779881957095385415195499206415244709094482741407925008593121365038711548762345505658667822122362861593596182551403374764193303058368026522467506267644568269602134787613865171911743894829292448956389507993328850056625550533112101341616104395293442675415076752160689149236675595306436222637881498312698738098888748179152159562706951795647282050037217772467808595657844170395505685538676013738009937035777652822853204535147588824881091723496272007413009314834719981629960656338758946338376461166891181825084062970491992220752244798149717530992786609627295943344950200644796864772356247338600451208825763286144632176777870391719715293165049300798283002681547525243033279793495960263877541693637088182904763448062225762354969539926148121839637499210719894984188720190466389429191733726606722752653826541747105674818560864250783352163697240423583467717601839004146068045868952216897453025881610484662778534359410040155074453744739860236901281902361159291750723616247295118100485917601188844423933627266681472590970629286130012562202928653635116986542477615044954079028882588817817677833467499799927426779337551390482608701231679856914269702922196102203971790597863143262241094514667095863116931453079119855942669346700378245725254480717374364139604485211445120225503140746011893568723456623488463400960367225314163189494978430040353645786454092934115528817286208455853028062833843495992021830357136433048338774109801793789117694465889540585028997130770478387454043729815487226450511915248548141012534394773236923263029564250206605213860972219062031816466136585541613573256762552493248975702412523735946883528855604609366122510463190077589878313590245589822752179330012417761394352256383257690309526980082519132418811416041390643659262478098253338841504469860571564497813822764379760623675868478122553898205509628936020588026735791320476567245689363684131557748855825137821598181522964084923132942791813951905575819608995536174077594070976483844623963447947892642264060132616081295673513851713623510504713220137711716752057208908967572871072152618931378340082505770333168342734967035737857053445567458698470086646945696933712987453039001587289674985859287232516457508766364630507781751525709690766139764650237028180143798144320220529703328978524684507318039932115901345082077470364784144211230939157821638715440632344193747746816778018277038678494170412587274895770308391263259371781155167139097974788200805197255940022411642892753699486698930374636591531312437895599579144021279071005522673826363841643221395815844212126997839558230924902925599763575931758350696289222041867363367650057424209604288426517190478271253068708428145038329252318635744949527906810510072998871452130396330507242339776013271876408186201570036630126755475372619665444719196282500423732426957069276856053282422399795564520340186828531956068606073707070305626025045897950526279041673375485829450321798673278169502957591866445399007718960385318650364340969628093930335795728244496310370307847400833940659024372987826677793023850467102218819399185769492909050834325780906276350387809438855416539898303608174326009493919522379869663604594822482480159012546756778031392143431602778306036357753079573711088378138833515024872388650173663411521556121881752112535966244264123851491251758728228012853785395840369377831496847086737570328133286605384455872458209514068155459498034375137127940361748110981160686914404770376278876827374220483803297549205046055150485530033897322668307658279533690689025210535998497754411776846760206057476315375705389330675679275791889000919977119024827686368863548896534147565307979476748943390546776694314918567198392257548641712226288376945402793144377353369567799729279652388565973819266525953430637086328252365697520452274407405065703414001124288538077642415028005417222328366406153454654377727830584753154775897133470332690111548095627521553230416522905284354111454178527482554339050492465058619413558174327497891668654260724057295217951240017855730719724033450357933458517576650014002481581266650117940440619973777546335136823934664423164244082868334476562899699418297228834232311590862998841225225758797586864429539838927584453198682683063097426035465707989933719090647610198106363381317775737312916488809575315478805085485200306745377808282932547091543185759205512472425474878522370643466839192139067623902421237515327938800914601652175824122791808782484078653751005022930006385061604733520136424324993519825651911881479661585462032344830804994276283155572181763061959472857021296083235646007400409193132648475248150247232167774219549840230318911097859209415085702628955271856525759609025083967898212451061583803734449134928064593006451301976424286901036997085287626714308457524504989806119331384296098192019544412246413050744256504240775388093259760119816347492137220804831837891579085074554148153370370531763825285566355782727277640771139647008095072810237061198181641860449634445909944781509383970286365366911504695939850080013732293229294902590159570683253790525972806390386268534786392593807563278614130650335830290176290618935517537900505511355423638747738455513614194908886189185579586439708233999275656870077758632400006844055578840383917910732667335225084784272309791436897921339454992224944310409776992770240213064053875853716623189782829764247034947415708306038479229887552278472992518292499670006154354648690634507460727841581769579162326006275371028887416483564294543888668729954940517499343538628118617798668589353507659579395190589471302679327617656042642677739081047006705483229336186047420059594114882162259225352423300967141353689546237478290961998301687030887554002843281578797445328325064791478160207686131567664707836595209072571874237137853119315321130680989990366898957157306117110750163064895202113415966980220520763994865243292267454858241357663588138493460927126443579533160718370158707360318047445153014182159917276605980267195477714080427030418347427760264589085970721922268847100758321392693931042544473526702625763748941410942367140938921118518632556004143924797509652787061574400786733824588833878564211321481158267209053694023429483307075088827278105048090679791856195187805595556603319293757472384925099984331115486714968988804954700503527529790789745691227622719965442611485079621274967007610207329081087086738459285757194074166454157378899785947679315060533499527364587859949486842526374441287394856739088948721607186566730970902402548820805362223763269375174164219502162375478809387442266797129053189197964994235816489021629849410908218980490587979397583496915348302272406293202109653960990399620447920560870785225417236939877290777388637218117375674863034749611450515208468129919992414086112097473843059730063480618386721905976573239881476374944682302091687097611679136389747127353768630243488276451786435020217767122570495423381782500242584975631468615413781157527108935721130128964295298572004766369410918877386333573813682440350498878620126052853052562436115798031622264865710826572734221597253844772261258309167305546050688936488946687637124150336244059534769129376325749453143085714605602531386899120912064424262732526412854776740047880118740598149366422471624576876153075145413666185253409304384510317372898225509908410014448757395591801959101977326351871852530179153902342508344695183618723217918037476809855092619235085950865938395175586473626128366086458164589270280978206268319781566437021448649977988407428893904782303656395116745009996669285664217319106434638578750885050562069474411506438022406862335842757404107829963546186565916541553822220337529577216363830633352398678020250820423447900532286262934581383283561503741175889727805884409919816429137676543259611569893679901004336692688908754945245591668989220643682140206457944368090408424906002319338792976156518842580816817420904039118562482858344839482617734786845420128635807918967971270173524728263815767929693351841138456085496215956620643282941878317919239606931638017438455758129518269142466282392623916608322518441170295768610262048899771057183100610430751041017006667060730981210603506427304962306535424672078049975976222513284369099005256233613568875900209965301548240421469176005155510426921740070449435988564638219878418689513212023239220101285600850264272382776871781428151505887906477959907520633910134421729620100457645618586606974456652286275270211573485192177395596641122321053970181262144066681300345610190382486813988355374462498751423606801774136012480196852638855303408414468409386251141223284086392974224292115513895406416269925517018578260500263272957016733247652485532061933755863023960036730376273349734115041764870972656793515942793652541662254010163123722748118823978915612517951181353817667343945592187998975871511056361443571962920818145629690286908510335844127782075961432787195879842268614825882250218489508671813892338556760753431982949496370744715030761890876308745042672850479747499797249348474412088610838305095203079684529803825008061481975109292186803447318524251256548442417509977303567694989832569696475136117873094265933621449117305195272399855638655927105774554698058592836273480019343256835195663055547586436205030947500414436589953209507820666496794570583234800414126851333031151002925653243298357042130849536904804459177377671238285566914711043392067980078419963517870749541941388548553398254427548962683932237762297686665524790600180659021054666646779710384243420382507322719706717589430480243462302929569544747542063982950380204934101913134187744477058197859227786529140660446489797756301858632947877530990701367524400148723031947164007459151833783364048435526660724272018409825425381220924655562425979914853023730039255009126576074189899137654674364037602018037245380874137150042710483736040353097281224747351013563894443675421973247955081608655029252993087782603697640164723695266997044979227944768201006981396791686685065898741210874580472029754460840236256364759960690783855215883075274783221887845620074053546168320953159730397268244462792205911131992152910591322181401634259467875144247829235440797263139837117948039625416402615492042827524338740135060030758758972549093329994041829211674187981828332666431318582279619248802385666464254919184623965481227958280644120694016430720897868537496113698067678033412782296771855215804043162925471345806686572687473844525658861167487952630054767632239702903783429113550646725239058755888320879090733165645218570905302561569511642694397361639843767188916436991737120603178656095211262746866345073640774605121478690594233483829584342073430193149754969638587293852629635701428142485827809954434814859136203515585263013115924111911152312805508752036172222036043397526342913226345209796118676835822588620613861210309263662800651298795395929734398831880498222821000269393422878902214165688291334102113788809130964780470571667575013665326155107222123406810223971262851110205891756794500297572245299618041665660434566563020166195984155178251084247948386074436885753117624496703744494359545034085621509272729680508386965658131666969191497186823948613465749971794560145604289496365050637055841522741514335794760057718738758192862072162856972011761620664371163858357874238167798732088773919435623774876862233484588740852279187373320486269374558690133929441827717878806355333501879567920248671537555689928897661149447213836842161314266335498938448000414856660671276244533501041192354955735738445592929342451607242990936822116940528936574591484270333653651702674018346003239904896032419478479657030676663069251449861327673662840225687966851082843053066081571474920738368757409301009176241933137528892889231405209486757809704054902575872972503961756479579041121583907691835976992095844043406075353713323277644630000020797606379789890275789816430791707044021376982074407308997091662562026018441051039062030580677578917937010884853075347181549068445818056486362829608261078204915252923840948444745271403719349971119564365463533471912262104937748136024831344152305858269405764144167918022629775173350836445907215886492222781113666795490701590453462038869906158136615590572097744420641389239422759176961146790866774094318909829750131801730492864997667134007598474868255448695579714229788501859550918548662944213479380881048527810563655716712665452925540074730427846506082763178964648479126175830940837416663669456038207210516837048855276223793015692121759126429416058913422990173418063006331684273518986404989478529804237760252098995242187246497069716515306220318101492328144976206159175211406317603098982439148621615873324352092682428803790613619251381576457349943226999884250476833219795861009771693428313993226437814408330852753858323496251221439236051219728888730191629733123942142356417699528035012045922956235935195498310382469559168705630075612812452181436664203463462616220430823025462852639251895414176286126816809994700205757318338524326494646618099888095741518046381243369880383545231293972036194019135651311145126882237759996670502213660982355993541564123201983920721146323265600565684127423791574165535431847168665435895464859016736660201727054971872271874540309598476773288404723875496351444543459252922379023547075014171741621253560936237979133515512079647265248711486506345217882413671991018074711291829275260122721783330784835279539495263683412286277801408496650160364209720682129493561991330340619839737473754299648127583535664066044682550611634257895569523614398411430562738107366912609863980873483417429404881870556601697052633544683265964090191645694162631847035844952933448656934935703148366516640874029014224733501965950163707152994342099644157563962680152379554175805997878739307789461906008364335946658408757773999459656812897586368623431315163501487330726642329020009033034914346869583485109460109435981495124014201536119022100930953068396851355357885132435353255559354202362110530057350818870454517893716958802400292240536377949109394811558592082479577468450696148468090855949378848284654929372157352500796507985359427574944408712034581030653158870222529077105252908486900255456309618580614901239311492735275075642361910805762637120353331327794071886538426553427422655578461404315706049524788405949442054626311562885753140719393414404701299320020612957134646814909489555481919020896079594221814000953058589515434536807114926828578099158816649242767592052486368977494213271838652233970145893056591790680400365083979143328072465385738123243381874157515042378458412057385538705908196472439337257974661940035663669002998539303867844085615768554044978887035718883784132623689407668875678767829721947797784415729486130756628673258991543484118939743034214925812417633923997218369068047420387241502341747730541526497609089203696535274976673577676567577054821572129240568241895974866354910623767654016228036029833636438008058190251376402595976164517802500545725272886040893513798537296912684941189648286799429397904642972387653474399050364991169994632411211183252720642202345821265102300029060758876715373822936685958309481237826217271378588191820465967786041864756816320698788613876620125550858957334014429622482146333718398145688176652034307209667622745126710852883803486077412131209181861728598898014155960470483641424042963665732058079548094756355680634518099301514744366200467315564757380040603579233759589029218715580522447382223302163768998680358480922460445530319634440327270761525438332056711847811130152116183604709483622845600711986952928940230823348797914980021086754727961677057126104356626944212906668086256371924091415113462728007669999974017825018152489592412631519346368235181211514821863786639996900364864623776947821965821576947332955342054799387549755638614180448156122353789351579476030997104878544901411120822927233739049096390169772550631377979679296729579229370919329729124917373225204904720888373710671953019133663119502441109639087258851452061630790449649838765447907740252921657199653737539482374001065171576349381303390003542607890947452183455785107374909059907247589989642314284039015785261406007060247885267277216181144242248113590969945623713844825225980587326286390892869200172933890547116314218741022859286997623853238139276262198446693210190217659911358948250340763412785510698453831843192221762609056602334488150768464935964375439713394940234036903441515228232652715673824697385432207051878490428271824586927142295965516070791670761182431816721331887366973324338642426711550292404732288369389544930253582857910705911139435500566651788632946090747953780640666346475034454543797467986573543630801470313164477919454208977924229848317242258012203916062862306727911500668011693245591896014338534341240768488766714541988514893458505082797337576168923957945737215417836075576876512300171674212655693281191489486992923079000894794345319769953693743743975279394534037054955380387438890573753929545841386290686773388260670017715859423357627569576226901684698449389553079437608214430022345177698470809515598773460458639095467540351718775329079461730175419460385551292377021616074593909619234252130317864624006073481468057459328083582010571403591750728339653971929135574901715984539147889610864658116837873076825030835320838961318466362756988403789847451329447027059748043335964565795405422802090561901449232770411502586840718488295424347617414313070531730761431218603918340936426358484973278553071818989484803734932492446565363849285200779527753523239893208182380454885886151512847824421448946748733907506148263154870496358396885184717636839501359604730574905928049595364747939098981171794604999583694297682677717179655813597631308882212691446088157741127053782739758102999003050613235070565651203615908986849408761028974412795690436298112068057066774289918275690171449470302308051851389360633624058161707402534554083224645402582532190045764888907943968554989810362062711712800749157083645309034792995671814435400774950848845578670417634761152671488123809061592715761040746784867702221546651773177213069333825013908957919504941875803205453616366541004066755434017944440181613503136338260667827611612086278955142322910676803693588390795384197363130512334784544993936264698134126755079665859616880696462802603061322987751888027763683967755150206367961976686228784805174425691825028778227755297028958061852067309993293222693020983225846569763541081515169151283812241654499512278123439456730747083021608452946942620325502387168002497879536459369771054474312195299274853811768417099172232346659465388093304045518149813644679377717961498521975611786250413451587702775287686271279826810276198506964351817804594314969485496189464928087696370935893898521057779633795533440355398466606764469200124071666452289451161266949770871520509453762972511220324627873856358455409613158583182897461048799287685118988966010535196940676717958395329898223078986306236453244000557035902403551784941864631520426810174171405737940925930728827895650930066646817390632684040957825230540865468992352881643448915402320759222194091150875393112193172806372682549889004967253222769697801202847979119994184329330655753406701649770584440691414835968599862790468317123845042273996329488948716990481297200982852863486448916740663992137535761355805100755726844187739161775099573052026929633058940520677311217048843269303927887687375153564962647924400799632389924444776521319629157310281601880998643461719431799260980501581192321013169499801533155501555400181392286527753388193715597103880240890911026950633119841103245254237250370494611270654702812317214634971353290525589526724674588381634462815305773254921968501728989652196308238070916384195847765140392007702915700538323496982999582450714524051572443119176746620016755069128289772055113829496720725950670005248073765645840489854948840189127658078872797413862942913043294394988409492622205018546564599302719421985510994603942751090519736834346883824251015337413165449545207734043407784159592660905525832894229038032147715295909453399437746961035729482897098495363027986593317934691527155309274722045386268051782601686812340217102308863604150209720976103342204848241786060919202132841104848632253313788135039209657247640868110093663692346494533960226535984735784870704400711982908868489432782513397762568790112641722882752177837024654623762530689419010308548202090403489439996324761710218295222664885903718879718804070934491880445675535203111741759400314414381047356026145162504907014547625854719934766790558646725545179269785028164432010223751821215822011177965892872144026708744051889761323661438982862323891824854647689412599563514071063142072814369795208322472275601011976797329418680886142175599570060269652357281569742322776070332317859049998136289960346341437249054211943444397142357846937268012088026453876971166278808707662487114317760177441168618206712392770742722575775347381406522938208018238461167064227547743506035538523913951067003318204241000000700134772131391369510873411494006206139161445497822592009467876417383588530421882861123395668983462921149320107308410534577644442479615434888176930875960454357260874888808461015834929615582316742566120841477746831757187561143388710003970912725505877515411449063350072308674431747024974594875757877718486092886957107182715652168921791617656086395694560789553902566983816034587988705778944394541394169984952501719347424591234904368551981207197796479864588496083069184966853692668218869951285841216800780460036522736398274285096720048254327543187902122352138206698791402149392788801371643360886556027152321954054200271768056188530231612480684922725541916584615051561269672994933578110409392465248190581217258220163939704466898918579544479656712203501737348531667097397020303168868661067316291817756954247872720821037986297556521223275939624112047053990932664143478725924835298523835458343837295764296339061926773880141050910458378391335275135247543122400353196534151989781287086781937982084048779656507542951469122183861628078926794633804937898856802964917956149024005801168897532794991501621760489666388839260172453480411152151546602226550855357779553992156776090029596002326456752800856458034414051119864026393660694815597288467452870104363277001867697556828763848134422389550662324308422663288311625064244883154910847542876071275386848844953385951682974763954226020414089091288259168423055924057970174697324974062149999306702228254915298721386281190893883324634242241431307986868943480502108199982507712039856868975116177597464908874467686690210223594459643985824922580747699978794771904063359798696489048539057594131314375775548989223047040483217104336254692659802480595391426636889322524016998251210411598932872087366398275250622383932975343432264592087913477358833234660213034349057042256756846181216156119382653443838061205989788767315190635555802856016832493130082170273982396578355610215836112621732471936291767988824215166128644496937112850691800556432749184453354730317631068438981005364174511174048984327091908430134553881601714344000178772287389183519281422372100963704942193035851081339617315475453247150634580236551662386143524464306815703713789975847902569035175330825172500663606712408456975111881410879236008983411218582637314204042848211399668459973922008636846691855706635575856363876840548966695695122900063928776417789307594664326852290949678617114840932429090614435106660065080041567987549124283910936844316376585554089929218808701331494442963419956011848872919921197780398996753236973741493196582938375494552788721145554836314368195790236575649464013031225296860395109350334937938997262710978403304630381037411800111020448585004463716374389236331677622818831876433006817027791956429649938340091519304690043386233718522060550111454832813213445413056295912540543105311651931144756452930451757395497708257019617474568030814270355156070266828260556990326409550878338478029884319862184844580933031444445726077452183943290139853512257250332840333276398787213856168798499899118028103105226762522369622718550790641523487199105012979527414726155846607863742412251028210977354992410537590282497999464416729771078845239109329822725376416653262438720419650084847462010419253478813934013900102045231794645220251778214661110100450609615009991246695749051742523957122322288149822243928808860786296543855482410749425302096073348141581383777983145112899600878380043677727959351898738786342335436965199770012531937961111655768343999271435297647658611932898622960223276034714965255477489463328239377873932643218844548445636423499752994240187495280015996708737337031587854755119370735688039318775705469552488231199836142726799473977052693450329053687926106930296978835089017774885399871094901582084543091384537431432796557201481324496259249709579568557481375505622591499469088894260739306225163556993615721359381856034052769636335005891016014381596424370042240492305952586737788119432077384431023700719461580015261721175235545732226322250332046649916086230338946616436958518730204759398428380427536580806501492195685192964632709614551585150150617931590044739580371110150519591364313424510710065184625823411906592327999307951800360683894799787736008274766026246352344695634670223304371678303953251718366790542519020749481732780334801227082769551055242876516132274164704939070398056493655744478805142662635486854407662905132393074343411255263587746229762245783174556011462389779224979147028923260795279045200627886322523333701510799893508255578035852802171184942871132445748862929483934109359122986334173809940349718341891256622487358962811435732984388386192346608136502662820395572902321284334706607255597843133415405210034883015709156875948629108528999274608998863336716065124181864355738925193875661346398730624307939135737425680260076097034422235141836077484929638912488492781660517877676073148368711774284869102306385060243074267071622467431338861258222815462251584563414061851767576318092459970537537393444117346315420298672487132794545666591591823694218590386201024077434498049824682948973528331409656437857787738632825918447029951159364638528667315329458101589153395065176414772276886123174817188708426812296134848864398786910848950799726475599939277326106443043768071889392633633820237565503176085573615342052330920824773227535445261145941975099378111238051670963243228391798373653325241603383077785055198636011428326521250079717641834272743863736403163410644584933424072081874431055543145130666142743468725221772540022832145005619990990867094452965918821217466679464695271215903041143411231894602486265528756420888246440983859818125231909554527069947856709034765933228087231489193111943040765007749411693989242963943676751183367836450512279987450145962733695714169462638601128559921841276999245676166357020862102130146069033995215761202770058670337385603843027055414354509272139995386093405376314441155147551969955911372745979973341803753681445732488593857511321452402732961248102141026341907041907941293921254597986052426546870473600514474275957594800391608978181899631321812751115089646210809885188835852204336768050399316225297528771651062749930602287978826077447944752260629998953852974373522888636549747682883711521076376733262619756546279798734125533751261639364979827804359947867215834209107424641927281926136590931858374356718714829477255250531516377894803190006255693686937529180924524740151713886395998546049008314399487973121603984697396035195134383232851653538425566422116882621218857641229683787677525474685411559697126324044762061075070672253441871857305773951378330070847444832276083262661590994885309462382568007429538054109315436376083331819350429505094140703046790802751540124946674288993776896992643767413266795341965570306980394645584329394547260120735126979558912689500422469634806798871408447379735872032315769367199669864917977812819599176219027631978895448116300808728048098327250152088260647060222884741959515161157854473907592005513040766437380408458445116179824951401366348839597513416552441484058925778342036450945658173577399795961328290400159792194121261870513028196313086105129522616918529929164195652039854574161708290330548089448075819786532126471351854128900983013415314999886516791447095862085404557845161977027074425217786903144656525180063265288605708784157263631824144349765296600038188668824112185118086276790112299935753324877013847858069810536810036854283547219867657381871568554182728364531704241589850044820495309646705900811165481155773467399124431744156874742508913136051854784557010113977087041638916534284154430252222254574508890322872011854668593026561561477831058996340512824973859033836668966701605061430556725954338158804836739685412649689032274629370326703033367111845450966207040419533221534678248679742821859626468907935296379470756340848716632281409466522362503840686188821038425781101159317161622107430223117744558469837726320287766631678757711148544624372888742116596000708410583868284890483381851960715357910294270130300786794045266229048046209399648878911690480369759260423675826818357116852981795605434398991678022011106516571271516056184147141351040954051565824938991570533689265492139846639871009691547318945271322926070031757404225750130515206024593991219641793281409464362985793110430349912347747166526994459253960395365766724020839446587683410569216977457769707784103028731421958024355639047037142789929028428613727682558499674998704261219230576535284296472821544498150523670409585823539266392073013062536835055657609790990854572986303008714455367930523493085753403274873015326316718912903045758741548208417267973968710518580777114081182765294886862441254385290058459084186085962592869511472701188139742549803853243630489176956828368695152220149220021989950830899951961360549446468924943119047545992364105917128465733233475373838870864750340685696575193770006260847500002904082277876101648069871630686753774881255156284134935330404154744487910892947563752801257237491279540399689213686640436197334681487461589059270504353887451190576758247024815543861530420227447782139241465806052594060603386141912777760128547961804528432726250573393791060624192081088307939844495260673698573456365819637231024837335928123516476885813744119216859342781220051558374823593921256370836020889499654241107726122815531527765442438824860977294386696468612657025327724756076577089887631835150147797146999733371146355794543843609181562498441949361824925403537209759358459897687047140664180605380980401966058323685611703507835635974753567582900605578443916307320266703211579506154287267307666417521102339707823869183125820283897145616791549574828219207632599757001745708152276953870348831262293755802694484574526404394793204664766323580947212420363527713526448395640126129222737124420501545731625591480079437933227266512536028084006533063387361329901087281766047774540114145478564434298291885547661042111073350464007973794002348532454290850368546042359658140677600741862247549166649178775179205512329860881253984924812953532796604462559725141502432987555262128150470288577383375348785742970188191463201177830983272244715576072258802698617254178009392130378579443259669561549983269985305353561890231393773043471280697446093389809604695366003033177743650129449084281732995479538897488394369466809914100133011564071984519031585771933557233978220087555584056437913191170543933337437685098192095510649546027021596573437136849538381750996196761982115087334610870559463387745630333388983816743258175158715073618813718016773631569095377125072159858637610750698956308029416250906766894848299538000168623831144975478557459146201002819124653461831835520746083357106742798224458133156168044629472913185776889105181729282907831237411642910578293912184366983914357216955613062178010368554524711696130316448007544698933619935175983657357296930620447581440170642930830529407207752424579164206797388016275225799349069458816938837047680533917858327008177520886446689194779328741877775403478677393427757832181629797536613268940099697641518948240785311790086389736509501691650243842605674210825015586569150731442258297525562893733446720782111089462724343345276268920364644769785437674959021502918673229425926345827653986662677937807395755461727459397824599443436609902821850425790281170629496992751384152789480776973251199887544051707038153585402833105098838457371403854825998675660542074154509622517123175618844503277160018623289014547477286620831395451479248614677023330469461969562453078548402945483891845860354611237332628734221774982242683141907672926315195372522873034082049403155338452036005668592638315519112997354812532663845797483175656442499933964294167749789591679475174873245668081461738345450354211451102839815615513738583948025589858598079119078325103678855664437798991672209609401994000492489648009257994983058954254573855310434121353825919168209795593352114326273831382040283321837224756851533301119434578102631099690556483887534144054647511146220705795868209653600551476799178494613077628792584605452865372649927517927473583279049942460333524899663334246939220599635903796038122345765223458648768292435357110809937811584025122886101520650792117004871376215133081238121282815195507198690058191392274813048574012702579156328459612128395485495087495648735895209905128142774163631570632503125507081448092173936429175886416883746501541969206109645360279162309013738674126617518112310955299857654959602683322937256647443368618881409416991767304541736223332889247023390014442157395946572010150200442640128224259488558800880109438403439036932170469149174071670854328955218656534231880476736321662750168934622422197050603042744893977593879034735915894251176498174252157015990169720433437654466805150942369302294110157026533885542808403051498341509505332873987228546043477555983597014548638229893337227397707392402509011971479916108911248352850454182000854853295959441720610646906049044751481889027678323398412167487448252829235195208048534951688373754715292919365860197036755130297017803161742644159512520991677186629679521641742079267475787796408431007205122840074179357355159901291525555983508182196082079193644018220613651910498148923624979921801067137283734432796422053435169659053369737219547346955608552105697172557317877012406349112688777375406176304008201429173767762583859721263999132251366887745861386104805304645031219365606215937031562124123459325476681181929340934834405871674898014274813713682772381782564001541243369652168555288729133027475300442978984455881948523976191499305272243611999115222237693126866928016226146846857441909303211881353411283862532288452046032290119013178754974128953116162892832529723881931673499409393204250853089724151805399499397389787591867105582365158161633261927272488537179921480035025580024699207432760141253940964331710363221771704573981194877215435595712715125848914912704439313045627309334292576476003033454375218758827796865901491364418844509285119649158240528454916632649446949098323420438786275936908796441335905373254483260080900655250880239378024458997819633050200542978669474795654347594526477168572078779910138734132328276634901746470756395487166636659358456969655767374405747588041739525857600706974303371034311067599598815275695695082481694502765240887762968166724656579835977392784053296083158909830657741332898745267646569705944263697240462522281665907120668000245184479535064620041192243409608520262836483829003667273938436035671866019139127910955260790974037193600590661612336640787478404830309916692394492926596635270309263245948006995349153616552427198150735540273330059466440745946699487610844168461211560305452592614944714257220527422078685827313560565412760224945147142778598248136235092413131511143053818501455521579156272031978186783525371090876293433563505469769152470052708624091695082491004941232816218207759471560579381091282423157420855461610283507335885850683085959842179317808443625696583083213215529336403499666843641675609260303311538831996372620673695247726525278827469953739709619452831456510991468595156704850281092285993861640099667673320635599019266154022660735956208552974400489499554406719972897339750671933530640363258073156451721215372973217507595710141381078372852187685026750455484407618372829168856977196087107778180030796870676118106560976161913455255655513304637688200856037922071488210710373611110464230395575308898410450969654927521824887603191160980721739252229673372473182260970366816067101622181464047290049268645347969320087465963134821750116664526540748044686997415425486166180356744387079632859840428461813525401541428935105978676225390841202421544431420905093484462815796638500509233121080880721663115468851166567409857222132546736387206882772882825805565058179146859477052800163389527920380377109436610826461649996219857134455188337053483891702295631217887436103952939237211383681169661674297251384031372799562407507090411796843193015395141300401492696450507610305064994954968003992709319829244537600552762022144750218259725524527052042753237912648604579421125542840541708257457956460606727971888198338258421800546801985352174871429550848104281426049335720822127373494929427019740072165822059560376723703013166947714950650464624677641871571754596621883221785969163085821687798679738907909884097301145085749280417163671494286689997508170511747559322482370561734231906977611047172961841999791392099269817189393836938683368149925570091721929110331180828468916910398124795431571494353514106106024624610758382027524054976142355872495915430264936522092251851954975650705002076365403796753965047641727199366198563658421141417066386591752695195514920013149005554983884821907819980672320095191039898997556595328071664442360164625251634064741662718463267176391234197104589527548090586632530710433462080897202567757857389826227193966970336010857591734930701030107821188757964875478585710939921679605878190596314480527102841312402667963878651543162878718439330087832724403348334840838984785751533267313744266200548723255440445713487589441617663364682291569152474796891571916041706649859539624506604239920073276778014118649576551224625977180536224031282316148848399069773631976947246153779010457663557695288734776532325530828161258102682213739000497371927959480083445838100746677558890694826013360906013509489466445705852421604432746486328220319175596166397557558009355427272063560734178886044365374428740806696437638327646887454206927783238121299383065954761519699250067247203138465278355906364476614664540811588826611900169399448336521344756157731104001479078737392243656697648586422530643733232697779327919497284887839243427780493653550708407852251010621997042960375124858090400582590910274984251902707636512380826224720285178443509784399585145946177487225503693809508626395097968412812182542129812547948732862265326023909409881592000633227764544001541795619733439782990706645270834379992292728134135613860511164714317402976807293552413390450455995552336660033162449500061336737922808829183738581507396562359308663008163562019536491528464723348442037533577319772936106105683128160205858069486536691635812683859306960705551765419748501512035148683992667568960140579121506064671138228359745631807489658710036228342379945716163094430262503177688908653031559357244876185863818334301598545007555647200581031586906617370168324592733234155969377896325290876484248731799951307601516465459468337636138914734416032226971101408537691263652350608315176212805087584026357605213631542485486174354074620109514866751377411556435446619363865500379238814596763240023856398172203682845573435708256596478385310614569364066436124535681693134242761150550544270072608332638295033052743103613098395227354366653329653270487635584003823639255427168434404538692759293615024746386096838408433586395794094258073826165941676939271870854340071771989781429797499910049018064103028210418779589730409315978853383787895352382415001811175781846220588087222017457132935574952306074412621872327285125998888653846547986148150176122995061265168223713936814426982653082337265621864203914638987059808619135650991456604273616581192525091108926840165245602036513489151306654633360415188998540841230460289248243480920652254971926508238240904294396114435296655060757403581509381848255992739459675724966044970626707760126964408638726252921588641448581512080226939073042482800802036682682159792949421782375268128935558583651130115843019561308889832154213993014059239045229418493965197888321348864901389756557534355672858542461861706248787949103868321526301112456225808019909933725837031075387443905054627828327919466187897509288639375450036278341215558898429575854630751278762515893154946074511490053676002352032674861098688328916923228459464681914815387143539544144840860424842762887801696331131987564849419395963302344382801699085888972219763066849578291369752968597311186050220447309452530570723100715794349927788356425075707232526176825050538966634119422102272701176529032686173269994187138095734260744946210433536124131357219830914071385998357844118622936412779049231189082365124276941397948502752954520212366663507255565041588881799410782536095907554313744517390381964119085136867889242039773834960941953083580122436774036971220958741525810945275969273178526454086816766694556139481562195109481127028006741864988680321204658649505467510079669142229590317119188857362262931256623890883801966372874845481407096190117905050496098729479672309073060414907579143352050659272772968014078513056425866476774397657795653597423777501483281639044396957967425991496390753319287595535856128623663214155793659089392092692169658033956836653767665339114520695398523038138125687685596027382859339878614983683983625418256857603574245476871208211071729397714542762799615852596895534407586254092356033220426203670258262408410027524038791897336997959623006264755642665437009594733707985307344956164588194408149495621687215015058934793287754597391021343936900196026528026835429167081823711870162311067713231579991329515122905948014723438035039127432778746799047840811265798988345525276456390012197086526263692997120042245553989814925708962863563085946965306252367885215134391995369766999369306042748522869616833600582551633524226251101474207216696580517070554820731827795129929523495949259216116321078203064881383666981556880840354508869572400017387661136480402783420334304639782703956086379524770795526201670531126084457372946768783883054667484379548630952650631986974529091227481216850072983235364611895196700277545226078042805219959503155941420156476961142117472722772400084930334098095953821482789842433182867553396610663798829805858874757718670401335010627814211891667995470413284140459587529513550224390643147057140638288888151791949359776002264482463551501277632351161036232106582355894752909226495737830629485063444647772161994075252965526020565101114077515454701918062768677618792337391589654769356799128661871850027658296018058319370711171379125818360052663370067760246718710041827657780642029957245771447526482932792117992957527366364001975458205861815142261697488790900999341166145749057706552489287699335469529203715078629646629373289380899058821673010462873482254465912769423485114498225863628002972250407126345793097408051858048454040414424503485755521850036498868793280007148132781743299533598684390675585899723473501333744748460181396391042866410984328452052194773263142902179933415235619681258152848648684352218650415632820296721218237316745656601264386353432735953886880763478726697394114865561705082341252814924714994155348496501404714684306173975379471423681698794982095632802483949808423699231681490399819882379184471691133820628036442096852754314718098758755186449781036924651189799277730904488512173707079700140636105408761203716020430229664609807736423077913488634215976084576114988449825130823790375711733843355505560400316535365159118464652503136366950671645203085949633324119265384273609732628973652209102723558503523584748783020397691243232110533620935473536511145330138384188107534873817689614151563698978601936447595796603621625483967148363111255568961203341493335187590887646034473248431331136333605997015949670594649386625962883633579965860118635685330503429659364303726678085779969625727785795509133390943616576307725172049887114823365611283850861877507820919428947967744533394452283557737482831117215628617783593915359483438000364393887154341813675810337960383472825203077851733973422608452510062044828398119842362974634585624447680242893888579820044906114862003440251121575348698240672808591220196539618116166571955577376270744749176278424265121144116804072662163262318995199094460319345774604629135156382491800724475894280052664667593660359554453045810455973938949710830911134135008560235617355768645848362864026276371214908990289779765199671622095702667246861919053842416468315080104980322573921300441496748738105412662961734923219493991348352421255600343373120501359328259616545515939533057239740883157130193974609895170260590791314080983593993307402221807384596245467720306620713803213553769444694336121274565478184132377604324536408890164750094909659381840070620844769286109934843746122477448781657958711393804642239060663631449096168409659554767070936213748146431772808691728382994477493281025070387813463423107885416683212256640985581637909360525521562407940421010601145262913517401102816569382572097996579459081917262394312039363092247220180029846598033860528913644048557171125055751764650133908475741318885804763568001564847143813248606322168435897738940015414587742678955535053812592844990336281603113102018295540875961207972675380704719457987716098023403760720119696142928176981990571851316631950336568675189235780480311389807647828629562539099247952519376167602416832274756160063728036483995146741612111639031617020054767656655069086648540441667376665783924505644314361218186585956603683579396250271052956171589407543782847708750972262412886458905736198717207951382390244116564531060004302533930796262185254770823970080311110406409356211452963744226610997042988141841240260966377277997916907773976096122661650763537456295688092952922110681030347702797261394372662702152594183290311986627712617766420157373099212288682640126605518145490635574542708290701979251042923417845245934477502401751490400273839243008624831663098976116953319508740052378171979206013716503679406290375546726371767315493702121978625703753518896872642353692223392052647236401343625041425134910340904621392387691022642979741679193207020778352735726209248335253318961558931121933814040768832245184346572614990986902138860037008208412851384685191587533881554848256833376125465295772595586589458403916973418425584742773102384285110583694997766743770118136631899362252161188928847343444207756902345280055113667530040377104486778883666390455192866474793862449446880743099378070812092216280747922044562763121788076999809767422395195410888051512791858651634781964433115247078074109659402006010433966749992297171417919794866327525783940343237367235358785255673914868137364092272293116949063145948948539393373538769163190805154390198539031940925753373719453636721263203482670032327645035220328519613181742240132134275916892223063900381940281864061264839925640614440652559428248380422823444866511836156048703092902941651009563353981749192226892521092723312883320319368948712090560062149157929549654022723135978631582664808973642307876098516006190320722459905676584096511667772121295513893244360746679406824581208403742871090404411819500416853733768612665084087946865129011749894021471261036125955614350729065282980849718752378506779487337840460396466188138560875539182052366572597540815057912085413920805382891671142102013928780362470999419125104320745488621903471013194912565091769700472694338636053876059507532769823469034697169853886619266940867791729031638945352034771135301926770683161220803268910555940512191306060133284748524022393533847157272860333237746335642086856253991899477209296279559702592676206666057877474369095337220825799451559140541466075115764840103748901434676640870505870266873834073588809443184149660453522674212635432771667578547262408091530697873937188229930321309884658476604663439071340065631876843631162322439714967841042904864998209344279209850456225891141590628474398973035641469381037146388816584490301039766476007379711166302202902394775958379503159970347763600729904107811785971560377590881757030405473311821818574218608819478820203436828848551933800157669206553162095359906929134690092039827173040210369318284402704792359517426521397687758393698635329247054094941027016836433030595467622003961491505349502733570107196075905151535695708462642520667845967935168604629567435770548019270052654639657860595722926108414689921747291669133534213069632501942704465199850512672301549873535692871589163362461907989667561791021942451876943311801709060352488439063518941611108899675305875028978934117034272801256042283263484825180862695260776921129710725831682429661976133193432002004141345430395614490233388199664892086666321455075341762029747531816621888618080514146296229544783086579512016036163658948075473236687277482479931540254926603841044695501289808986900451482122665204809829901246432950416834341344797822825905242383851750737163280484153499158465403848039124079911946029430553869139322540181557457466701376274842224271254440045820202948836347586155733846957671446503318637449475681721135721129005477058477795563752837042149131675086807974168005840544906350461580335220602066093085871626707985927132876665246766932378709218975336631243400937095684740563703816150057257527513504723962416060460684748565551015569606224899308618586878758067726404329216812760442614271899784780745944840587262214096728667112606179093506752372281525625125128450389828313876622290956903642915866400648433643183542056208416714688621776678279359453763760782957565587501367678849763307826815876930659986368481012049430687563525575596921437581167529907994026678323556699473557551264589547596457985275910318675225617172941704292546959590889623041632439652229229890373906593988666786879945520299477456583963833712898590228996549923267786781219691979610305492764138259665811978443629229068101414530473850866417569489728122691293631171368385298132337934717390171237414654742484115020069088535028523043097322820526539557727837462378473268714397525875147068116182028653838692294318811731205217514525397659496542368453726580345731454103975435943181661301636582961432816972604472109757636752827399219856735101772593068741027202047737457830959351881099912270137705302433307176153387555837972371707170145399116669125597635547940009016535788004039681727047990941742353685029417033345855100043873702090069731788627749063331709486150862083534421795081009996187951978817278288632549849280501455386718216002539045328639516929521864678741005102415963396976420097603144686231428311910575457485630445488025196517832948643618773108692230437296940168566567985417770591664210249466387763061833950092133454336063844497013871820187501652292177657868085184566728393524777867776997431479413478345471204098825936346480603235881581660046782602606735284316257913227706409678337809808143902162131301488612643949775087428207377458093473479805359890278847247297515398531345644493138077204583987189430391189537719047660653553409045537598420547109786191289183946542986315063738253867588833860153230995511891097464495442788220948361414425929463158596516724693299484255426974463758336059825049892488773042681177848615520282231534625937392366655425239410954445149376553047295318558579896643277574546209127411728511045040188990713657373692305147741782027503231850772682655846678799006897535436551112379451214133051076199542367584125229234597390816534572035645765768163812197336142878657237288866683289497867420677404429994431899922082040308458411391806895512910642716042009199370661919559549806285227481871693676624133066714004096241949877529326987652937672832023452803636600737366456494911361258423095039797516925628155167491286418240694435584011823317230029294831363462579324389556241725901026784461611199737923793047196383173916075551064336068078210152147518849215690586261180413492098873664234739805335831292538893935393044265892495206750312895974412672599665989315937432595271994563982691132299752991386172855214483109060862504906338022530904555926806555494914168610629401779350807666881741218030335165178729482006724646826289567638439780611569615516974393232844915607136152131066071448825347120014088492404019889827387185539059192767797480951413152089996270071505489235917435865158507881812849166001758564759829853720401192770782702759686670844230026438248603364633351123850574105796309103077255900929312425266091237814428134806953369459643514984006838566400213013744029647729980663089172311668884746297525246381704945158407752187877039619167986042793623824070565412628038621319251507521705552376936777968771928537895534117636299642487273062220644307375398269062848286033067440002619222179426756982364109543914188197344655170285481203271832886941118009664809480124818181498986216526953916690936451824912387434736042532733992934657814558658714121311997521192843945567502304054721936115245740757286182710605606502761360551313812986069556426772280362472128123690110242868234642890581240323997946506683140565109402298720803361171998156194370866812721917835534292951854396737479726231742270560050731573653976646008838182100507348703052870326540419131883647526882364939514964687763306493348023033397349432554559939898535950766900761985385247900743137684717661795242024951150203311537345612971114410801280331647475460421067524847877748415899838883376650552284547620565839976546012640002283606200020322575431630789002272169588291833867358315903240843646897792359725163515461174022901630475107558004745428888648266415597169699413703918182595019474525353385526849447460566910519292541680828363019181351063691386171059884271373811474382551295873504838942307093949776131014273353734520530353055284795853939581918454522731470814258679629367394614422126323339686245397526385669479180563038336988358902520454917095850223081285166232056720225619845291484926062126768671030771470616763795818668898490838748685543354031216756385752072113544280333980805681457348818372020581280246521839424352285821181919975186328487933422174770846294279404647383725493741321161447222263785917363224717169040553753605344091134356222119579608753633513225597721597912551693583559895952879318008046827660302437696226500704685266585800406984848848270239478166899955030984239347311324457887525256955262989700932319309317855522409224377795576648951020352343950500685694151750781444073280912569905388853010266715145532399459856709550250689063200107066031252294391073712069134503865856386628644132449744865251647893490174418245213527465331380806087443574819556711367488887274424539023101898715406236400461000687504796484751545605287190979405301723143557111087811965506015037720991668189546732645919551091135259116925872150352348716588370387666364443219697978138209889304155741114289258918248781880237770368693581983486630532148552241130761695159657184217662508777643339815718440103307735253419171564403397820957295972420788396041041712227330510408867835398340388041324292482069257320893602506159984247774954348500731388326255448801472929852413544305842525767703626876987324035077869237095352947093915692490518231381808448877562660867873922969136393098324929802473292660151780562342951930296634752465711018935588449674770289054515276821754179320397389062271325673996885953073914617644167780555169017157336282005810009926409377973416358693771703596921946161513417125183328481421816552327516442556640381326156572343269151289614055116858827502117099318902745739875444641168558062083638136410768020728854126744952238596174417413465422509189144944541178211774181261122723069116152658440848963234539518883456366209043452182157913745978374582488328563985386816964069035186635162250827455852226757979980991932187563584833639249988496342236762979550122348748957481227003149490970218671458525812690696320034129373509494331100910093363269512197923890938557468020501260673296555116304989121552649608910560652900621238000606952572907862239410528891940658699664685167415740969677844902916486824394753683135506042668748441229108791164884026608743324037345388662850843780498486310771703790163309264576921985330651397589369251237447341894544099354120342800300619078051053980528760175800820657057782235138602333802824319822761081968570449370388115670064843887014097642691758110512646484682104104340496940895976779434317851041068537113380905782909250502819216774011936369495937725945156584849137347195813275794215467961763553506268554332022551463357649019359131352779013987582973433740273648475294208106602911334906019921117146968790001385893762511416259004232359343165025429345264168769473463438711415645475462398033268034820604191208922481063051928298097020223217404660305474284250964446358475373176541867947853130983979270316480664042662425971536824513705238332564588174084881703492155089212625745182517433962787515907920134934057179655467425310881955468157754674409101394658659154668374204781569928504354209524740749417694518226970721704966439451876575420051998605741127626374196419645928097123506364299652741342773807760593151104678104107290365343673066137642393129464059771375698869810365679523609016449997615786020951580679215101972053976157341926758557150894663752588550021993609521212102028449537493646924433256310333282041719502435114474758275714942679609113837294156979482733506711436295561997255521891089876344274755710227837547655415292050720489466410593402605971100480084668222333601654146875686621317631778144861757607515694132364167344185957980047216316643753368648438962250021060817246505096174271707042797579132751183896374312723293635857038446221937613073053024308668457180136387023260493262047696755073778403610583908108232300840919014870851194203395643385330174254148764132500742553856895587605116178587165823915807597726424132992377950194640522027326648449894018265719024746389440442914741975748370564573789092512384367994009193500393713093925011571160480618701328236745080943654764256723498100915151277639493954069251314308456039186706011957698988286622673517719928437718828761286041375374499462131424501291802350902645324951332246655372266938388953997396527998923669747186044695717950866262616854798070866046033268992712121687966423252081566967264281747156193750116591774217574928331582837671568356238777917642164173113713501154826239228015281050535378685315832835398931814231221176126263185174324745732625300512606143473867466068390895918402982053430383750199688721715247958150723429514174182441590440690554620116442765377423415353522024447922384539924955371520527101345786354264329641434843805031731655585380866720940966446108405151777240319347669949098495097836624201966435623946605048832734694927727283430920902410170483112397720478861012869049674503967042145721188879371977148928739545902734107471813627629147777767784420063405197073570856195644174329524808389071242837935874913475054696009550641758230547547138209584388608241172033781657257173959834407440256267464744551585246340274860926668750533721648102573396000553810487723943993711546067715742351517508497040177191792946897284564680753900360326250907611742821220451219318340639795579338302851035683348908199517306350521537239291429391532537957917055216538351604865373323959135229082954450228948768393857649942496555030892767732239524385951015963949592904634321286137328321467047979581531317340949712070041630612893069292767504753412284208181270084215478881047136420440591373795267950728009881246023867078565988044115920450909930141823016004601296275626405661394836966091418851676045516063571720607681835673284474284889275917992053112449138837692618079558202813045420053454626984450185280990784958540396379051177741638432351504306826959580780405036692854517166608942501538117934804621368820273091277125521085532124584468494311060865514364622404714366839805812098841703560171036594454499680554480421337385072765282441340710931698388231110312217016961889647252080789478384800219703753658777891783446354012383719577672272469873815203765558849556436417508657246461282198795349750250384411408454886937118123793729446426459830706210375955441059390934899266332190010034238194303424101837538689664934628149887302398668346639841393759568262188701332680677092282040696978423275941240031261086512182692647674102365011955771580985812283640824790639565185553156750691516369219512785296513464038318879600091432470201710718809288576051235709884012555244617761691212525320112960096820392837870201731529052284368451174006294514250399985594256461692610528221538177525475116439509259331405974149674411425797436062494085970481671465811225520991630323600526739534096601314916632569781122611467707089236544170284234096506082982530062830307585412335715597471132128697990333900525923088641529108179268325824533933793963175373164335782977445338887185231509381315059817067066413988656529906887090546176503009595237299814751181034809452411384763496468719493716007605481751020414729163177994469339176866928607724747348353479713318745593905949901899761202399248092921679790916832016941186065483291516855206544586016674382396397861952806429220332777846959824561154872807906649425089331138024989636656688396406467777204888699363902377183175173284013045094554705461775694515599300060803585806326886320500949805439086457720042710765728115480163507321410124909069696970695186408738315387819331985640656212856752810716191507248134446462700038476733609711497554749744356823068201232009547629270920189527264591157478180837233322643073725810819957212565601396435681805423614787398594314877018191938303576472285004993689888099084230052397834831940204864364013826966758517798718333372679538196996806166404770961012814041771578311958273581277047768298855065530746435302387281401162702229017055271645276371175934097781206897254253465980314725135493139951193482933619856236254346470283933807535428132006312028240105223535873025690696992405638791193213563210499292684712082920784113343887901159379621935985372062364150649942930690789424817477386088804539181762283490944991717243083874040429401488786382717068751465263222286539390724089693625970686537157193982894696574193935343046922679769063520813174608947713162857290041322772846808509089826393024862282812195437659023885263278648777098901471036377513714597228001807278345994423511593042449576303415437898609659355067827729636412888934096402691207446869830053307171772701276449146006058885019817235626318063507902244023915992963543116487429064059173486147943441359275107810464684716954981292108527308790229866999998859530004713349957274883067561865123741409692563659657770210043453368757371609792829603866651662642643543459482712629910087864296772372845724365233329897066281076786704469697338595552566707679305279729611103909959139135751971904307618853984693142970732546212737084192325359304416441219763761853354368737803244688732039570829651141112252605112162753782463139563572254734074524632336567775943401173370623169172006715947186662676625695051758317651639457741384058554157394397104070714869036655911633819920943882741667139366472355462213656633290193823711164091235835482695016271495466412482584872441284341319325551252063987232113180265117870953169469665593298866765418802957942552909919937469321432194907632994964090964293338345762347784040266431421821116797920259841630093937604513558325584827003931491220003919802387325483411440842417444427525481812042274012795212042211938838278071237542260465268987958900872181833859724981510275265469787270091962977081781931365315651305956916384110761995580580272856609914952350445261612344518598314993170461182963473369402373238698193874866788120965630972426856331460892182743522155930919074995039433241361826815520246571950170982469666326443501712734260458696905015467980734816245910662700332710904048875822653554257139350637113878223722710402014246410838186445797815833612683897106687049448608634875856647092200933894121952373074180675220072203064163939924288328503318233827212417904163032264440694397343140015167066854700084929325785865039214243911183239628661276424128825707192256466618315021792701407103684907450638971336691051876932315318363668003484375933035004798679136756205577906180851875032478684264634501761389177395347218206058628431708200138116463474954221103242340677998682038358024460749103635251809311334228806800064670453721450030869788248559189821859672721871766021058611268109330219608314620925698138963463058363621821355826155533941658959632384655606954967899289537840803046290366144856372621778213174669501271317557810626904138332298968220785702859356895616549524603634662382500581558108258816591504631340241699634748850922944653585474602868454711200104483414868168366219915159978098655365446472280439597812783561926855830050096050506112029437052231877991007079088882790608501291008624805761714143092973509318887456447333865431586220791912289596465373037542848697532687596580737020531265203024566796592148984447743409489346576050762548647644032932375499428604839520091656651869077272392657478086663783572798186649770596181177288836789689492683648001307728049108880448945970625826665877644168064733714960546398862027322978647367913935080797183159330270106207569444285091391104492568611328197802414649156355998417330494658062457390280978561015499417393589248766784621318358906998379342206164114483879275403898441938879828594827675922891505830406243266177142613688134405809951626783131547163860782285000746024014068738553287348327613700231544176093547717723009625363076548206548454630556091215783936630103013187289197726924169710582035076163950534228315432353687132232750820790660207935116503050146717898053383883150202567671028347494428510842745534959468917623493394652661587919123934364677762299252487485706785484392608922134357976840159619096905246872836425443493822025634794638489598039969224197758835418497183719848125763421983351065137649073910620779996744787444547566685844702243872980365833335867280701278902424587484361120370035111561285168354910573906489830546205106230116745299047283089864279019693258412516893297300821106046916631911560750788343454324576325697011642109874462120313447456579878836846833805206864227695041813733586775912813339832328706925214418742922888435416401351535860525141174385763055360619726945242168106065029096697480141868262597971511213313496605363403259054166295216561596380516682365582172960946795583900971854215107677978375581642487222937774391518689374750319224490035939692567819597814120255914809471677032654823701902701196245520316806895836716667682573208299911029591259652920152058006289655380083762931479232911260411898405625535485243116554794623493539835442751595456829259949218054024883894367950279561468483901063402513246818112718867550751206671356421107143914503365763652634277047490038403633904233504669897260633127618538199530784128295164204378695045974664163243473544404673282405456818885806600600674476538103651887799241180334320606781379578865090157262181681178085268459024263488741307868209924827552703950494588285283357939948844500869804880512151393905314556969067443474138349801374589357967748505518688059090872107094697858240725740766322781503158104725471454913004191303657318981724150485813334012987900861840474786896302590458798931786113755856085641667089127355024660801351713591549412685862506839576522078421155267574491220305846056400023047840668007247468037913910446968762966303066807617771713654846152339223735905886431234216103956572233183185855955862229389083778922022160823092018169205332294133691556754017814302867118589689299803884475082494355827117719830444913641017541657637528746418048376391841153589611817545196327109778185157651896395344234550229114269754182472895134255335425810340198313322361307753908266156519323324551683360258358155870135979650223843050427369649834453701167253180945963290222146515161941427980720383832078606603463655744758519947654799617393957932634424569169283007130214528488353099223805645728127593344243747359461119810476218241638039360877223282216524058584118178646107096126011151966370103037751218785827036693732648813506344992642033841365805325018414115446425417970266655354394199536713474666237391003642328001304281666123115942846638953582888457813866537181451563852258264645050185331009195219071075646043926751897057560725650497676161611990430705252797168422964879085590928317154785625513056508416317076205314829165779162329826446036885584455028806855873894319293211093277252543075396446462881301939130756281525178288140770668029079125365649070326119856714358141816158007663188157130064687006008896552838764266253517207148777886020170433537986351742284723180461766980046005055696823386825146819178238154783742979581395855860593334218414557799442180708789500593655653137986193182741455944994208883210830779163730502506083815131915288488187390592948389478405501267846925236651079321181171016425747923184185594309250596785422229543522047571164399382723238228016445585469555608877491980643363457078395050617060052886498704733842743439888477660000005709362929494428616026659096299745699714449757931519870256419232978877524156057457793706130216410642765468877187290794749566007582296930536894018063260191159332641760656020198710686177268244410442403497513055759015915256773463901997120168549807587929286156279103503560774839345004308362954208278065020516125847539945140255879444491263964090863820641103103694049386195979536050670218546553573112318518229796234348292469527650943146785791172883372698468628169866305390743720744342495551336338243866085587683546076523374593898006766712952417593705107244937417180813714392196437022687032813310403390168018685967253059949900145380569330465950634029707987200480636871835880262949673662569317898127996293868868393211175097949042671934715856587508681943072958861523242220751547272972470885255839206102833671551958953991733305589512273854496533932526288197234799449986113535080223312209473165618035559990124414376257254921952748744209652267973281765124496369047708926613182838893721625267066297695266992008512782586306387279700658743077047310475885773758958673862425669164750700516214052158856790286562824291533276556316986580033050866488855058832333397522565277647433861424936924533319742388550343949665276655538495308164962094763421344734964249436725269410405514019591379513922963515241097801496533445364863218908389925073704273828021315144588335315904921950846508627669164665966882013690236761639384704671120531595978109575366162142962584878628340914676765044446096248712334420684012670038148595648709173948508626287691963528920970850217005137353809093718699062768353617391543849008084104189629010124072441325833528841418164349630364758696874650620104674290188782957763246472173065251767414503004024346934928731826221762481705986862210128007165219638650916061183828034497482433450348000119132995490299596161686071995364000940832906112008870911126423853016729096151871911574708084408582712857625593314373627018422958496085031188935900177764210455086642136128039011063005952674917289378270698979494402235810009597783192352449129898454219849891774070974052430022320990205133498937377016929929828718338920584158064201132434627708686696524742934791589109482213947694895796916924998838277470533098934163076079105618959036924408228406855165313522053749570521594372816089703497488371686474469608620571886239841443525915109598913449700508096262897580415749150434118970481102667170253277307766861511223742784657866614544639034343711844379532365511224253697487402378499234294282993961334348376574981874625071209358243913936414520142186862024501005386715658946300124881772285983243306108432490072932122400286026321633575992342983190279848897249966488608019981342224223262336603223557943396553539102969127813845386303931101281934404976539104225241596587066542332586422535199056354928158967141838914701111289596158690431772161106804205255653962694508563312557784427031126614724089183014061981278651648217471459743871145391623938375576892186585774059531049206906169609207940833738117689606722679096122488024780981379302253405747308843686663514903603634677796648064605031944609440513584342387578791873970566087268513706161893532432063927319769770680517944302081877331773306287105924041718417023137414771041639786330821931677033253628206638022180772179761019108444948216539779839579886839322976307326731475323387865650415831493872954628543874477769539302323628814228651647318660376334504050208873690603456486364362485880877926274114240108492327834253728562221961847936116559820675664751908987067755411370488516870860384746391313011939037064341833777948383975180560131751261310699704220194266324196736582490819375003305749112730826053627677027335911136855416481031291806107655866739554805029594680603774325886927444516679597366484304694223542735663630923775346481737803314886263253912220118194507764222581712287960327129041776795900884976070302764321335959729240525153022759513896425186919175946642747379134632443430997747051056829902378448367783154112468015633975797061140656902757717578942686535827984423590025520104616223150993086411293958677502327270878673686429319570408110779218247157676841669232147795556667500371902727102923475590343878945508019476857451084544261073037975374389418910208639171510835350146621284562076107712009103426936800537628764888519336951005742234235402214020795267730368010043310057242694042624033445277977664201935680097945431846209621475896344229640086597655728141615370447038368465217218887876768582977073165436183432987333840136847250265977692494309011129723522983580284353423426118243777069227432988657699860969569451880380824182853960111730673742802695608236673580804429021533912927969548095864095422097330848602042087933854357430374289910546458290729711669687934254425739058929808664096072695512999331892771798318744375130921015204607276856358727164704534434014390309898589813312856825392838476741400565724366965773758631377186442632191536593181203175172627405646522523395729561550227077605329573967059750494724568777715900223228650001611089191757160241193323666289768574740655807598916721502848681846887957180965406356757925956201160324955873272753674545413090347963045841926228987359264786455402693383136007860941812019982422739820694258213908356465879956383122739986050450730628420153657598402387686177681627858864631090034933609990312715293981714453215294517900592446497720012506626806797753702239766222423637549984389653150984621415850677498063006383456059476575493741548292894011786922291001419202601229304518770430240497731396351174883871740981317989027702650725357399769190334407144202822671822527810247238811532128894576856184749662448084595209283870441895538036411707914328834685933616037380423089229971264926927249083938703024417812383547081625125554094233022669628638158364027601829110669953574913173459210274537855397553368337334797630488187678453713536660299713277347489874554625544988504565450603725399293360459204414592432986529276344569161098025888467193384991412621090155417594743296064890384427313619426839609391047735605587481357140605179871621986375229822038061618999290843049849679236924206533958083064418009424981275412585957395165295866945950465518036014775808212951185759233650899991321244644350829813781218393350710765116243942864125184107386593162420790554041518165405293644215597773365600435825314520391703118102916139762189864627113090269772548399304788119636829941435355032308811597101677710019066795530627407681717807212363872550892797550340487898078164493084568205971787687440216723327230458920505596915690358060771144519443860291993780324837141731973022809330383262038077864506840253518146924898265285858174133564984308376886144746942280493757647333479978285761917687204140166699143640936509709725858278591068304141649131188182337479554069242120963552154630175239449664034824144633710541404664512759457463628323874039165825693540190612324827545714387792090183023191850661737891316844087639640797157305167073735904974198978014368542949393108112147360213952931626185157010590425140911157206439729690100472812978807411817693686903218928612306654800706579812602569914862316193966135944896513779307202183730886377739162805215484054701127561758338435450161398634947250667484630088304468690709622815641131246888540380846708027248139000476734815843417722130884558508102946069598166137831658700677552491714434621388041962997577627871939551740799988190245272958661018739988228757440081321527467140401184509328668626234018909423261361078314581813454604438480108077234445192257133643432303678330941558137057208722364714865588150793340324717155775700686766838752798677245232727071840341685712740709254829841831822527472420174996517440656440698663050913727918174169713056726567161847671378768947988665134527139257437560030497493215174339779569301126827836371288163334674284890600588681102476514254869619251717083543425821046669904133439335833622377221498395292634475008365661375012033767697488227748084981705195494365954593384529678115411340743815591035197250312209708946868912049435991068620087548693283683710751512326355944413540486166580328516239017876191290180074124418143626858168794626855473317710559804251797347373097712273197700794783732914124823285579759588162241825498998132306557490140284886000490091690507147842357423918671795941352404155981747599946836959780307398870750682688725173133373483884593146833097758916171478236875805217730004785481610233704091810365787955443758453514121446818168276168570775462906102172560259625200330451117010485185773212563680427694772436348177695453890656142702923657066484160387760447502784453905444578096972786446176072340004076669007430690195421822699913758846599145121686761366574545568335717123051833924749528825373094549500080127789091157461120404678477132160189958830563413667009260847451120143780369331983727559616540435014944279312738650025528166533157267418231210375378963164903001425236575681583982617473304440939357251772168217644147179644433020651466960444475440242564833625638303445739923480574582296101218835221835825804617461701684798585510267875887432801217165302178039285947416039495090592743121052224519800247185267311267801789986421948115711826029180756347494801289930719432084903440998488758911090933775113159131428880953489353921990459529350938259803861525877253346744346941247214147487591051311185234746351511239433938030761151950202476471202989497189070991263213121094597927673385579089790085353634929148401945776661771181671147769477868289354965690834469768344326958752492022700754489371264780621792674512003302022264842283662587024219967140075928878040582643989422005977248118779997809322336347528137168463838545695188686431547373069479487995871438109167322649305549796860014184716731206872118994449185368744946694264849179448519915833828091171057709516000862647241936389537769374213657607805630149402524954863393872438358169184044652589144421798992745137596380891433550091039602250811845937334202485759863818029602655616745407713725826415150765229421739963508010083292954513859932537913844107828543299002213215778620947414193672563543543732668129024046707486461825507192328538731597088103837279225522429876413828654208260004767841551824784262740892673000097116990146379043909623535180211865770172005988649787139661257112318505734102195642209171012484464804717740790879977662212481301441046494006730811854699574165861064565642565650655626037165990867736098662919513113861895476691598651293919729041005795142825962686339577151863433345251069805359747469197254040672791495792591870751656540739245205045041116103299950486354162543105650689614808001954466022466844184440396724618519501106150244061798036083800222505447119886740485943405679130321292259056322448378386752895872445069974139337853304204482310926140640181108481901399177931817846297689655639270521770694183029172050235676475314832112264583549036586974338174667856876863139240199318036855867543950581779320504559016015528746960507325929718893997859076196284322993856077686001578217743362252403654373669551649582024059357354081548665732698728295355082214455049033186834905515291567134612991139399049258820604337183978456398601462986777026327503152898530518589146788597924758617229969177384456053823103831835057473933943295599156366407732786688097418924910422080755786818149300288000808391201737302610133741020094851177575100531457559036838875730542994807234902228283656798895923222438761206748691852539325320011521360787964866868480644658087149358733753415749335189727584037887590731516200251279272084734595663448308634633315647648383582460741828282159619741615416674633074006762929716564918697481301880332732056108552830338867190449043616986188685383588855630334793542114373709806105883049372250777695188414296774395169127650888445405888707090088986242151632833338621742744506274145104116023796896323399451464415972786452114056968886690066231950219178790773886644836612203905570857776472591468056371231480109363410420363950202159894154919268975979824388393773192581641638819796549441276424923980227809192036138239534018756301184318778509323196026787679320769992305965341519061164332253118418631031641292904839061909057696335861807879139466675658557053438212629095508744934661863439251627772090792940516888365351458591709208325727606166369519483774531437200597088028875993536364852911938395077531261940909012391941758226153961002308596214932429739141712810238367980891593355083073148729024322927118429804055122020293710378845078994441249086731438168571251788294399378825858312632475622437841926002195045302664257488560762020237196216024706662339760974833435533775310309925626936725148781095746967730638287020088635869621875329077353303861253514202222858271958892606902586095223682826512496499202647790234389057339650309591244134981532630174202958171096349837250909487751235028129360519275918059762734204007823210353521224925588831270365099526702578473709095665999616623597877556529446831378163953554152704024523979697886511214649121039767637995139465078781732068965227367444813488989775170100088615613543697813159819355566651762618009847733682184225585057770696240365129260417546319786613821376982913339309382020647495482015720531527529409711247675754529630015056043226566005712123516926501603141515203669790196004177247295007922884563655208456046846311079837216011082949749614870848908628448654976602961533607055025402922151156277159478495305156049527030575914980616816216612865154975840784613301838572141270549073064045757336026775981472885685605023602336259666444229443237359950031698372157560767144427684145453746472980127293789402858718483165907338292374346169956501399189216147444103070077630390630603281578399709528280883169940385744620072588368989477143132292235296281677816851455937021049939933720453308759027259417631640029500608923070812349593236760700701243229427909458523079096067209911254567652790960355770067172417209851973723574602758120674363087238874076357699751642941359359251540529342244105261051150201576031347680402276908954218437094847331174236956781980707044034735082507282796359430802413967084615592421424100397252099287703354452663060179017106536171101137937382770877531958637215250117771064885802845461844844964426925387039990446907893875238594260420636944262543440393827917988965791999941245677866994714647537460582442811101509483534293665714176313213670823989561853173026741954412969996633467552421490116881733454866137413047259065462861588439672050146159506898793706395070031578091506208776496487862348085332576751007998902888272408198335481299712942796200021755071230086316976136129087847884561437696962839734211749930223116250358699800840419452104438509449848422111206676116439314466595721805586192148247204988001050954485070293931647800609236026868143127305117166580315350679448575932092470670459313407861290073985819518251294406626294639383146178499925494021470450615515330885840980380597309318041590837672960412915284298186284921096217343967574898059191427205959771476813361560144619038774300268694103597437858152576076639577331530881463048961608616517932161828147300685935543485868239624831883958094350747948079392212949768843630933591987220790108762416698550529034203512834843873888005634662138509920983070382123375499228858132026004988885188972488891914695502797534463251964160981252032195543106376551954230563033234204155308772971893715430923701110032684787643964223584903470910227813360298287498571780031918481562120225632222655508129484626239703729499327620728056643461456481520526241781676999893732176077419959294626083410044181913824825771512619148238164570489917406358148193217446960090425957992038589331401215081407819071136955725909195711691528074179036308683631199480804656276523649985146225714477838002714363770688536477289815941253172294878275357276643991778740018281658795648197365417305702781364445346973391156332691246871775259195590686168851766021178569307539179341969976848134193951552066753858052782921265594166018801144211069070666535288382367123185402982776654979677513527999119113828530175316417091167577271060163033231417855274547944568266954618542394571347643592472739935533140794795960128198989998615424937592291468313177377438982554292062190756600255440552090768629820744348012640026014338760563984942663693754030933330707207594602713261917395400951246065849735085919054761984296887200955538049388552297572322315067257319738854341951267295609431731137048283908196493301985694926876947610939184366922080657719054145458684433268238413840198411814040580074527079657737874285082900752655750973947555751573662094587727775356607511778924577795056499329293634131988449342624326191092258923864112350513283456719184991399136710893931315412848920539376323362479171424655731909671384579152046552447156600679096181605509423751161504861891283356834691250765841702659611266943369353601183191727466182260526999701203314265657033318228165715015166664374418764055380977823077192478404370769789085345088788013103147434174201588489984250930804161104416244659387866005835436069321952590320268581058281985993684891288930896422531934508904217462753773005603687800496914864197544813449431749227307270425405214771563586791560858715725449515352251413463708522519231623449900220081403690608830410797744548166522781583441661997884397872913473865550382872633195983897059411672359684441315142777870771427280479943624403686155622035555685013147305731150043515408976674314568902057422015979238115934032514828296763798224284191323038886648077794380422205734288591786848468682648515782475576989793663464442230846868210921797350225414060359162760890417995917743211455334973995313884276971059203739071712636091321472784188413578647103362576524718662879033111333688596325112223126470028804961380180368425122747742540981549406050899294310406380334125351248045016201677063710112314959066080994061648971198733456448361370599338727810636767205268324243631006742353155915305085289034891233674623954929493768897139373859822001705457925183301098105271837079269221762858415761193666758414250689102452383156352792637728007860203992371955186710556785891257759293481733100976657636506026599095025731038855801908389791257397753013779799299549695299959897089302620523255478645633145992640109124096487077344111593742361556105529559542954808375671847441702710837939748910842934930846119660683369081970422909468847690259322357085178525542302708206165173147337962568546197390742567443661029414746520714326925511461396012957337462653692557402219825733078018702692350912937112773608338712228554824990390361591737600277067653144679037781113771815714408419690229954742635725658686306024139313368691924250903314004520239176196950273201766158824945575123625724551997723270843549674344740941344758491163888156162624829811275012179834149565744797761763221295505682693118440016070226986484673605276798688758326353094038839800667398828580567845880903295998540103424136086386283355929790175698010247251409563169632735939535580354441177643588087288860264497798788060348649729273314816684988586386020880954572643722412770112579769252833698963948830333114880721038550141783689276906735417105304819575117030541419758804471771983634760718565279853001870699356642676978273253564884603274198558711014025496716279864480890700708952530249405352695531932645845144932584953855509727387817013111204758958799236835340522009422921560813386832611507174230487565629333206313956180676499671099083393295550967657358655330338399933359933822208356773696448137542910834540308544619676010149083492660087612193708993576262249082877406080644213207956111277170111447238249180021061274200824349269380762872668577207991810847195244739815334756689691269156965419555549007256072325224868553393412327627419333050165398176358506457362084457295115029553810256964086486052970063333367461978074156702341069035558546317516908551681067978636391313098121322064093568117204042542059545432121338731372397052003747490344522194499100893875281610319248531781455469809885046202813367304067515121465307439913852586732353941971257878377633689484127385346199012419094131608153842075933310299038438078737975476274770346029521991347741495030353793282191783259964902599205907692631722465863098614251186685119147335374949228321607219248168710762111433144016059476688020831490113695369504031129631186656698851648072756342428758849643669964455262289603790049520007585271567226805798254084289680817597136841002349988497788512190552768961952347295954306832886580665660001522562485220536710435811607079705847289751874717900085462852700017037349967016684634232535835390779070739323324849185591519122949997488904329362615887776860884054950420029625446159541227758637816381832019332813656147376557674073051215180907352749920549217963209946056422222034039006455467272944004630942884613931334872920413614296050989753947935309210671313032701719922750357901022905740486000708765814899615296072113199360755435465801034520877498167966415966982120519391745184776586633863012752339298179955167530645866120273359264114520504062452927034865127042160177700517759486598059114912560284020225735573089871600475218446971959059879456553461740210738928627655723008768490652652128513002602932637955718474562388482830350877974767263796693026361464998667143690352788826838052657011219322531902349132643382223550312095014456455935871725538433747372294901651423783246165872599443187894911769242187454519459739817313771154794178530580417100215789497158305561226362185461594605381462713749571344478549171146985833187095224310795328315496961370678949224523010806603858007441513290869637351406311173731117522479354753279028966011026605448146139141778485260840210427544987944837666140579959077795561036284912625360188768910271252454886175890851976826141767679019365831310859580603375608158774068833266684023279943792028671066196486867677983727394363872273050056179743028412386882361048713312054545694195449757004982363374220886870887930587764540899658842671474281512547993929544511315029359784259534286764002609266371081981701460003479518088437220994473495651355167568287971612790474627239499951356467405992801732713622082370213631646141840701161551683337966864446081834432687933488058695666757680264122528010268688944937992844051682886583050691246025386765316660586325975016793609331240529957870495755210631671063279220693692285808378438910585816478011265345029993687333702067996568800167612079033819171176319439874799990891478665943604113677374486334451663985464702175090437419569620605280625826434741907228245561128283284762595490567025073166647989013879946928829180685775231978691772627438050950081595659788248811996080750760972647924357478074263240722033400564657268331687383725202856750975916691363769546752518284564706275020133552961928844867005032798879602608104214005017657540019944549741012508887015215815900385004411432187564703414974846522967404942651004168586736152773788181124736202287270998825240813686784000954114106641188238744150112353352924557114103726752871034471025698905781505164362709726058155136282753280867171181761046550856713563318958912213704050405060022424944119430167954931505510034745089574656941653262017108946327219070227492065661676093125071102423817646788334525361292752656770115494592172336999149840770215190649509491548434108491279882305796197803858609278903739196463912169890488520667542842528479728146456282266361277013958280878153973742216640708752451565637159694158564454379029814908620727999285622998555232158899166698876576756382266447258768327577928342538128910039715575979971862158276899765549843949237592870462900111165938359620881171962782844706954346779984519714175765301262071346342355280089970209360288529991584274667117163048242117165664621893774710833307842841910962445930763313102508870219175233634151170650490582986706827481171304873503936112404223016751645605124084632834274556945050091682403735999430701105804127247833835670161436577342977226400814918810498434993445201166446522067814820688881253064203034613924429884806728022576786085934545410012327691202193296568725242133660258778955991740235678841211165220803980668406293097755380759147476863416909076006762017867724231625462404842266299428799927584834303931390686256524538589511664312927902823076074112253551704462320584356519696266114197563564391018421277675321619536703724906597968227009750421645036880851429678936590273874479989328083479270053578106720023823669135876831145402442997049315561051353610331278241958915114294542452246182137878043203694984153736026536293558844852767089740272266619482614341876329955740187388889379726168952305721427584950868394852902995317427659407375096289378407680370400823089860483631708714206546284705955393398016578454310015087755949927718617958024719385043658570224501476994252841874913882985921064906793473321752876079565722619118671971677255063863586672013601693458745774519768802671869774159016271490134350179139776158054408692801266445497153554343625954096492888722722765956800599615041745068867711563979674762289699568586774033858996443554992310786184147056241169740476639390790065493796675088333160612882590066217837195944966402276815783139103641797828515707063005754866633853391899388294047523436360371807756618997190889225550846041594374425354420224887571490770507122940360065602637315359368418295765209812846769392719457263683681488441865926665380115575106251070181673882769212089299050596139277832981138197270925665033094121692013867166467057801231714757520757848573521524856325161441811409815011694640975483112815374763151017612944894871510875105174639541634714799944289855209165192229150880914283480642987230905679016406336066780060428853281740231376352198376964925769213382135561028470844550367081425336719657765316085369942638251196807687462881796078365437549233492623213881025366156665651555790805997576996394004701162393795919646711507531772302693118919177090864314611511730117960390370350163804522005234821343411635723431187916164108948923984056551028554348235026503809412429002445877185468833339720504051821227797905459376116895718728388963293204544363007223516901230869861121601160537571666120065882632794704417064871260998853838128088739881214594893296318934086689195680220890954893197578943069749051945022762903974957007110365089140921520245770925015697104117406723598828120620036388532605669294202382898229719911435976159801479313236945445924670692098503307677428190372800698849458615335388523634719544316824711111273269403570265709364484482530807961775144831002918756042595982972467123770334758691612096174571561686533943052858743520933842392104257823465497614250618341427029666479886746914327991477029503271787812952733006517761360209814541757319861807188216776783900367320092991181419734026360596312125230938938193510843310974472986058661623741080036184186158827327897428282196290721956605633773458213028040013558888346241485351936812960173055714495500561805872243398196563430167179785861962032711350015109361361258022487852250915881479478821088429303690776643818050728312105026947943135344414286622519623709138992102461177566793244973779938341504689387525863827814519166226824968119170269538427738381408867249720426669426555893549013748711564646120435862200966887102818833360701865049203698395621178356644019035904987449842175759813316741666474064711181723127065399234402589498438949338221314315509445368192131823445955379514238186998250041302737598875605396433965132981096746985112515939267326743427669867796646104011535440370225087515578156749516131702344923420879446426885726397442648681241968239254779468883820479492634493657793605543385215509975973818100682430466043280868598224094337974530757644989062527957146526643182319682046071102753951794633731366143117293212277159420992407066304787053184171143764629162347890868110188322759366983661430246674593980297673759599079688205756263694821384820959379676314877756526531277964123819740319482049463273051638139448766024777004179895498098191631207171646396964688146042641663436424641513401661157961239969914299873694667070499405717910990062190532099249108384599423582861290095502661423144362734529472357815933684227218688757155512647946363212084408829901268788693085027872836649194725340840052173184406967705569897188766262168030072614562407600913674080068207403916216336253128473977710257620232290837537062221553097178863588197542821345174435041443391490763637525055469153879337110856677212351439421551005883713652507242071525213120037807077442993460214620871437207193015663737358514281734238103356308971536082447593074550586767751927952022854423683621469092666690121006131759848477636651489951602196567289362729048656484736188233737361403326972576972140617831366376407686194595974025886168854978503457501398094706760383065053517072157387025512958330962319266717083060725129828985670472332075470042540564593721383461740569640919521404118034279884601699215976474122098488689213787163574428847626164754852693865354319711448068068356989222981710691606790225275734803485642087085523299409271287910492589591875874544222458007829859026968113393907411750502630838205448031889382089557510010732710386379046283466501891494033213218001854268934291485519961806638704280271748141700539492396139238183740101877603475240562538372777686684369563787622164226946147218521190758621491108204470398346185260620276455671894564349254252182583454600996825402750292198023773819909983714516552881267042422754072258605885349859508077318600239324686414679587549129738657569045157200762770767176659982707928620012209531398022496741094739947186099513252632572806141836052050514534704201876191124067175681023900084670305478054986865171692108205590601428298976018884769016618609755957554991438639244940008322047220980687958189016096462307502655352746461115458917673830587972594764586974232878554275905777005549679623692478341450769127315684381538195243231532964465880629644822949231338272457316884619492330719266434635150358962412391294981382995006784677043065283742267466210031143685750823747174483246493831252484784265641827967935423964551712092426033868880657404987226537816148222569936577849904041365696925054028438358132782094306862685038564590502171379804357397288905705413414684800166972623856308138752966488781778372485519871500825657030296656241136085713188935144863861030260326504322819136078412134173396145879158108441043558334157955792478301564659932859279553957801819426237047668015929125296511893619039928422004159233291537852478301400805285748644261377945781619704598550933266232275786358151979463024328900854759415079327073914476501681764359257144377861797967353724405224635205963020100393923485682069233967176731701417556331468107612661745669368356285016288322362658081697543526282961564062094015287320526868780268674325106309808859800348211199143028792428830891781439871030925906038124051515499589674207701308930744184735484629991676358871146410256827461439545690484906674924947170532466730029208909852627965672187915744937534965617116306918971395635822543169333411769231606637524033282841499037956207204496003053060983959504009435523575281207299084014811489399025446792935694222023632483053466408576002025754420634035907759393920765638090183980576102284827791517238855552489387063218782668090173760461522837309390886305764097621868190675340615568947740653598649965421479935927830386128188905263137793026736084795665969389592345352365986077018341837315061274919318529889266190310358669310039285458593187305499119348543434019821003743707961276943908873544597066074189209007563122655120894669518028501300938254283851149390141888954334379567660589492795631050329584250815680073268142903097605302900445887045338181250057621896357370502787114536354440120604240134480140454661454074381914647955918663257877630449112500275649844180435607463087846813534316296455817593565237764337765807504969985167361213297717713710431670298733961733763082135486523744137238451819949897527167155483306857018417641104895768466997820813325691968540734184698014390954918170683393916696028388804033386493404666891004952480183216481473482894265063245815252317410657286874758012654885239444549748514455628214141197124666701113482892666957317434445799847223910439997023583051957699231148277531250316643348152332875393693810932350024762701006698191507777535986814000451751715425890058295906630837132132435430848610965556822580439027101003853115669387118121861120308806391297334253876141683029287857536523342633965987053919536871104318847789582819296109161779747848432759497322121915253849282080061294649569449281589697220510028385723450585221503500236642450283883414439576544758551050408337864987500025514176437516527774804321860746818425950002906381750350216674010881573299602116756751200552847311449806880817494314754778771217105135983398105849298916208226483672419057109812746372625153228309312885319418861645312195424830294618788727205874138748410132279147531194323280124709077377319799850374714935217617882070824320935876356898575900167231778832594140516855688352485088518217734912051341457679371269863232288266190503764966010377885186751906880146093702260221492365436658592891418089244889398788844828356142096034358817041238728187724015515158002544942729338179768411119310677998856567713454988632030197838613456104833140745366394319046789496115059949110470059015470868674445086330101417667575414674590811613341968532298378561632474866836969263849051748520831529655635389106472553585777177861250827583754127965852132994883600339354205286493128250817254560019244675198337912275182149456702216191405585332572242894826240892668135260785105944034887586174629823016352426484522081312542694559140137901567634194063774694182320921542519765799122186021653634104800053314192873365031278795730431820434932515518699854200885890096624965589243291054997631828172222285998942377402786425318147133943079642535706534230621768390667228252752526809112849637043505447910431773816896785499936491047431253931599230495331535452647248435484161941407454860477646592856301995301884524706810674763731508569411015527624116508532411990072971728188426161149382704695431942046971491038884236209513320576389251452644745299241466491393968903581474292537167897615521506931118683909409441277271051710092171580660604341828872367687079403018223721592583859729159183709920107382358469319381425248390430853653284299775966356187375298985534817402950088061104895182153612706343297339401884882774092570909783890558569095698315157454400750611111459656295296409599674733937395492458713180494834822697135747210311815835368868020280136628482590041158481658239868308559596742476865814975139388286420482870217234639797139347160841126313160207433673240577889354461044082458759178459340629184175896204702128193086552162439246148273597048541982505995103527866148049280071933753015273814229177342519429320503328181881289503139853003068126427120776786333208034505823970496092354450100007852620784566239689370280006019788417437129966258802964672247647636221858881640924035231139990152605725754284923485107760575944348396034102381494361867786644107898167566769364699612751151711143707015386909041249923247666295907858382831842298725865734915074733321874600254188824025953827622329278065560063103294663944619619152427917987561204541038542968287470173562133038230125259446515769106744173768009725470280492721589971361596102612935630929035094800241047370030308006339756287837585958971529030776846026690997087761394509306925141001213746988306184355840347305920334661015134489164347703234456980263812981854495470922307019295483449733026885233770565521734605520539752506778764165744598481768830052502957684470076614761326592613935895683983400838698951730640960474486120384357272328422828449893637996067414484890330908061983119264821503628978551626701089027299998858415258195152098130351278178490379112418799391563623530024845591063490704945016192379757367328581393597660764223915740646753000470007063979333900186443846696652044324094299947149497727242722750488948111708032932676273996714731083206867834699738595157554427102427229425180786371994009478462225022687858152682340260137026291558112528670446822872869641453516989251989759979920470349788085161904525769440901577827674755907378001130502853805380047031010647872255625476318018848143498303930827665293873524619182475349221961199828820988358594124233873685001235324302686449692626168913807922106413749993349372723236831176391780358049477554545943853230883717211597717568993713500324865181580171522754343635372645216251332943875026486093155030528906297783100986014237419131982707322580549630536851686017507915862868423280111589733099740403299787942469117146234036048972038074433763334977455838931104548101416995121429991535542847316905820719446524328076224175948199431052566142993268369252925837236960151814953670711321655560473717753563360837261278973030330375941127313642073446301609977988566994437095186122807814428269718873104573521804693043578708151008543129790191268479996472774286563223956895848502481897720455472595018425323868198893055040332983402674349312112650736063898266783988219837463331068567628578820234731766456739604186094159548178899395029077800252258411912429192348632698383032882321193322338018429471835002227712314738970931054812898905206653228103697314868670490552513889934199840565313673545384817780969241092125015523144198493570355485610351281810134776973936646656886482360541254884232337679241567429759214687151388418157393699869084060100772039678671065359893677439626454472210177447644138681258915969846708370268245538782073852134614558472514779651702753501366494258314230970385351370497108173889012257035832070189771855870980572588434994927481083178446763790226283287107617016333697321526428014222033114703498415570559792851788476283976539917573054307620574439069097937396196037269549980800993871606199102768456029025155372017772033941838721908596147089778503308391719687728938922898620527428989708374458261774484754634149202795246546566619928045333157061740515837345933817533710349338545400378419445927826802107231228494755610702289891823651799290456438845321719701702884747733843704001119760623522733504608508289452808562072115439549489750900912333483052738317426504173140424321549767341124879622455440424266538798048808522604344263397314127760306739592655704822201143572818726922766990329383097700005921327699615549470695748979316334745708546172937208161071240390974512286256234593619178394538764318443604793122183805626350686323523071425604467126958361324287035900957708389772993693196361178669164785201946586644890526137451223278715000869921043277935490420150329605627527439264338279167707318571632086281488484748585991421506718471522921709472077377591280113669210545561335034668194616286540610180280746649529472204844564303073996581596131671799163058162461290303801630671951343714483637510634585948529877621871290018816827372378714740937232249959621164165292714595848456015679231910442736559847856436290261218965605269130438982498403691516262527595756189510371632300802617778989395090260925413625447527107086070559408459159843652098289715399231941397114113626431940446724193578092540219254376862550199333039554817340238300925831428043832885871498333389103384325623710155681866017152552874466671313064142992336265005116743621594768953370273962007005217171971864474424554101226436265516529006591618447797065299619677972932203535936502949483658301749431567813212765130144247312124232291739315455181180637891491299696087716011000735701106105050355719788222668669291817616247497609847249493306961075767535366418838066056364656132297334188520211749805933758970403630160756644323077362584774094904182180094099631094446741686710475940116427393375144065896427563935472634674719000951397671314952996506181439484774891712220313945851570087413404668477043079305406699301376068447793515924370586471111475078263001475291192015458349660760299015891944271829044201259039578303431425160541203662656333214141985063501616757106239525387894759152462526347262990852699403504263833955631270923473851547795490177532455300058233159396452177443387089168941451824389010234030436981205469931771265841357034127770272580614498534611341922511686892834589450587943692442058527631892086069806486829051585763371420125269322210653487637300128539820596562228284241067278284239655258527510530944086278543456281674217335886121057432869869111855318671907433733653432121112674780173870257764865830756293263218396175686129605705935247321060853467887191328045749226474281770535131479486061207681445165563305095899039858972306480488645594926722604119888835383766333574998930088535755026630679016928117687074467546176834112196642868551565228928206678097108859421767822645914192787745518378916599565663058254670224659382258384703526358153132227184982533100850696652159829134786308985004623617882655167678866474883021071915468274801532660955470908398922512468912658114503081230613566979240134693970774716418583786118531704013524745110114749667123198824675822258186049899519466998426898260517635181819306880312194545344791823623536073831418901719937570020387843338704038503973057832794208364052656392722623370442486424904966129201957011467959382402478789690964530958386465316249079957074594126161631636278270503674353188568907786651145211439408990138301061126910239753304635591867731640265105357691768497266622990545306985797097820060152959281347485294094928346768817111668541216350537264900383733685891865143010620367715678928781684530942229829974154965363054998445284441822454163842922535656650670288287832102505334996400137866387914159725163783248311185801063689150951100279277094487165879185399237772194662002434738954786561420023245302102137674398059126830378294229075782888688962149108108196816362255693317426731267652014248423084310611221613259094043303192885786085450716839935107030817773089421129149384745088045268839709056824228125488287390190911054971702191145020690758202191478792507852076849621774120990818640745719685352685203312305251027869210848259707638700210680437642795303213945583898491258072421087529543555099209163617525922908919351285820926900587978984238877065561068216709591472719011089753901290154110881669296393870423635055138973508602690675380834183603200511143420764176763618199096989749745180928982591168119640842563796877034060455173441727390376501086781419935439440272685958840845021565652210048446254401759602413750159691656512719299158173551669015436479441802575828696819496874728019734166321524853645726497306405474469272592354390188756771163661061464175707869422772816215620604371368845752177449965535943488464376571470412593568107018150608351838063176086257527172584774383568295980584374993804558070075721586596687258179695046086448409840796454376699702631705878086226954153317341870728596467718475205302726561383298253565086377081682311741074814765354606611258542182761182753130646835879093003951718147479673717596111439776021297309348325188780480083200890085036130131019461898749482681209233579435649481306141135070590176794644564992137531957172200014222257342458810134949218304009407629570424014016762667681652642079886427244892424585602681187553940207590590187958881094372165360888846505804820860573272805027799924115039686688658289678150327946372890714847966658897456840462746174589011960802929013193279521204576727505192196213932209484082830263506564532408007568958998262866391949448877383864680967681540317382918632803666862759250619281336221748664571415658990727530972170367285128825645194587649075899710927015567229916608151429121617423608745273030202595652583399858635561920667039087427985310246865420232216048235492258216838488681205756387083923671654902387820204408890478632326447525992519542221132993923657467395618132701247167438117716018880635715442566148443785595964491467149482980683639021468207371306257282226493758689412827832799057751495959802886042604134604638544403852993399845624328723549986786045113219629054387919376230405092690651624093782070637246428366222237612817825586002729956818819992970070910401623447012115207556010773799604238145202203257610780673056134719395114092992949909649393358614792057447872076892471607572855104691938628527735622254776721800825497955432087988170340833080791726915068949712861367956667440191603382161840154779325997314366446985952372760413872127857857398478095726933032531559250520972056860069140698652132676647952230988770250358821427467629859971499854409074547070256979616433006852470915724736761102820738326984959421247779743004293995169373038606171118493728368623845204369324662910537337740753946981296325885575032359321894175365386117209185889777095125545115708840556460743379620372328455816928318509852637622088794407790209154538294139599539491192281221839298131764259186680063429401992561076997999575755967240274295994253534137756762464988336672319455613430052054916549420318085432896863003129189852108783769032168531716345579336420713816509088344712357242734825660203926899014287465275142251268579758533010258666415727459234597485417865602589537357327254127587609240324972414450918447152850693960423918132365694104366819363393346712021254917333081173050407912653743483085146554842202801006858324883903175896271042355648556662977217964806549333780641553455771899380037828616720969254983084560826221893994239150690969307410935126446300430237135370099503919911695316904469904042280469588234602664857188835453566704189627082955049405124884638795494869377011874320542464895274352917831021328534968894691793324386509995410083959941459562443626278770381895459670208255535135194981193171277807653456441653440939767948020653260703138177071843708391370300773094484750683815544341408117409486557493079550076893195617692862116175968563735950460190910935245079011244228986141020475191585325998916147241491229004682865207289336351899292154345226678290341975242700820581629367663862918246154997983318970783894672074873278902435996006162678648917016633876472027543881804860056207360597539259360252717524734968014778917038935941651643833672587737790203810002591642098622155923343790882538454411029309311437171890376297609584133444474154879548189240645866379990045963130498449974150470732482103072872179224931018430162880422126257167068299623243068321726353932661275417385439459159426644136051483855467863213858492467385462488454618084318266775510602232785402847060054573222797113188948431061678752885770072290878299554998292667190133406451187513955027259022625530021610715562915478677913408522996950331223288973938410024347230603539350483878303308281952357991649415795602040982927422694259854309208067267054097444985978932003935876392825705445508905238693248161715145758353812367387930938156667049458138507532231936817835631823786317878581800678452845764221477795803367250948559591701970009215337795734080053839913498115304138530440418357141728803222967227370915675793263093439219647241831098718516738477806917902722028983866886108017123294947581866989222213743900706933590252139118603778528874947797576997563206405017744005047557792390308927907143546775784327527644873117779436489963842400743350314721746808755480397944589127304492347872222656312715196685104902537053681594723502350940443413543986015301695969777482863663769155928736716583403568779730432279581888967775602512776097105238849935844611309602207197232686898458971925653732552900442148629648449680678618056027984051404092100832478350904178460979677918905339373177555352977370381978335629701719947336093396414507783715625494244936888846303293478947545881049063612006428947468520758367137158722249618008087844573280115525617219411708704066117643373709344629864141596794117420046377881510903339266947194909111747480463220954874014729709231213206300444539749044388141898636865027452545527870008308753399108755579985874720954595673146646894823978892992218159635352057883475000101722984811046722062583490885273682343907119033221009325868292349450272085452719796755182277145159443509824868430947993154101389445234091407831251526262910468362570432926593934793318517774764381922630454947702405078749100103527721219716882027670278953060992975743534373365421851300147020297212409690019820483148724929500381076981472027277225496818615625402959855568911885589012520233628563132129400693593080343347289465983956722119834563046709414822379900775951697335368032848626989054181542738933840710704004696011811457270624974895752769781624191115252205620899698180194326991123620716663560542789107146764136177244685993562540780430499371366544124827243524283142660116668890909587294971849950430928546980322529945500665277537398720258762469566930247273390790817564377976594726061319661444407198487755838866582187568820460633589391742397272377176693402877044302162066755729853551452748745311756272312607665301691684550303550896094728918913310458762846793194400176075454698427785983366889998854723827040571169489111208727452765647833122162450503907371403585490435705703119461936130294515273703492905223380534863337123443928388664383816111062819736500495027828224666331568359242372772062043197059054005039886985158875372122836685360991530044476282479449434531905145171815136119135443528907035172767765401599754951334224824076444884742750970612192382641143980572397181345365721306232001557223502694525442884652840243963169051840546597574837267189519614987117372413014889183697834606103435344757435237702475063826697486374331409242778643730685244514727800077672726645666234071182102536633688183686925878748267689072362399799968879980655003707142663366120352271535158170635862181960694074406006198450980791720963518451640483377263532329874130716039915731225985666134483124673504494878235148610449360950305737941230843784490450869912668005177333487796687314197907702121875285336688752975646902805798952795106394026871113837212523533159233003327562914056642384170948109499938523988173103166336058330825610524055070542327422978121585715494595138563634925178518276557384068601050598180603184933834889849260661510285544075472999399248654265670556181479065101257223903386928101148353639098935257684249562550954943628805401094953342049455764716030148676429313215446039919283108607060616814718797382059414207614219855245911320923364593520267183668225407126813002838974165423120438113171244573324350555891079677852927000290652727922320660714548766760672561861608965517714176169043859077327220183665775163892750572372157052207926367974066717221225530905709761767326749986506831793624879471171018567030372932023610398315592293054813302571023067980490532409567898403484950982434864105665609037722130641344095166151460874144269358047790934421818415086012100385535777701059622338733326131483462715318887859257223994958093076808513460369732218468175632466031635499551528132472092238919212062502391035433593139391944382896594694763903008129958457564317769395672107530894161203930389983371740096345520515792870657318795451541232821992959820582640236223938486815736743240008042112954001158096440811544503178815737018234799265105736059339167796770688600705356068015156752811457556393984318576107607412846467371427106274087484845858049095727290648899437288389619531437667278206265085481675340192764579758246784649955378630708988344936320243158136958286476789182455146179189379026968815750539454387429718939004540284691026241844154286522067492212304035649722287729649463462849942851779856004226001785072295707243904276489277993606286353514193211597040902863439562259676026269291885640202495768475575222628990704678405803565237612936561385310563037597932256105679903644279850631896272300763105230416778755694735329055315157724759424810626792977400845712563030635098025061063680946888329815319028987949955175782720573325547287766628119286574134748676736546706509530804768852686559982337762092144576793995081516084253929684763525411308936495728645380710813915475738903589037936431054307589684881895922656282158787862646685859833965263319786228863441596443586875380092096831865668253997633839541833952648988705604330460005059448279849810384460741760220349450331402168861147173053520181595180913309056406448108200132506510069344775461715534934979390571662281456807431605249466244878953866682057177179839210112784440824640072215245469726171531152464585986930729812282725270732731237672380150396791523189601439862816330318342951379187542692641903230427355705199698022156140522447865317159669808336572543779896418903740366536927468176917422958298778783102638107487643561352955309311567935453184214790042015222639548498754037921545496838403030993846345857984695535838642897780329671147147916355928584161247027431890347754422660987351457416834744801909145899068198076722085905546108055489237866927156851032579638225117617734864664815690017725384884141746580930776364777184251390181148450024679184996385824519333791214523592674181605042392548356208799297321441712941493401867147546053502549554571151923755290773596973603436769102828966722966223364202702217332871495977561884304771489363822189505709597728646723713015684186006330986881590122374726871479316200485247820568702017539770807294469446744643727583784938365971772758270014347314158277475363828825530812140100563603239604093125045776828766958596200848872175453838009812508866594293921223657905242177039721349769829331075420412686211903935384797423962555447566153524101017099001582946695370161607649886435761444066560819636531899480806918839677383052372672734315104251304494150125815621086039534830041899948499308439405668760883462926957329819151802828408473086402029525816985147081992184463041749602015917313867872166135992423609848079359185021228049039110356320891155683322631286666579627108303461352374743925120782996266275206895884517364879755176518808823280064141328537118976388831833215703386944195299727086405835821713964764033257645269482433174687227396894665380099088123868798167952393226299990202875791892583851137863733893624632074977192004991662295301462279338539362902388810808144640532042519579856097496264239517117997545525480603605752379587840604202718857796297227772338521983638016939395743257485014810978701873741049851149524886726511361477210986200176553602800016898369936230024334803831111660434356812421909016251945483217548889904576834405427823481205263521947937577585444182402196679604975284918578801873442326137135767334452815641753179016995211079924009497502231112386298197817266546669552716628901463819410029496729831127607983503512580680533530850761537742525408080036882220536531351966145550868973009957773683458260527027239160416853882681826044299463707951932994842435637949082564886465964123534318456113849369533308260744431418477623760332729167714291851800836724352764199416455737888468472071529140705913018634660121671556711296869016083675932654520699812564628545449732735244247316750123451614638519124794261535629014481115663545668825130373934183018839687535861164172773768983876370407379471875009725631582067840492939664046736393530693328656284379514371637231353133332613325923703427846094176280517882960792833967701573937520629262985709535857548617245488760940833582827221103957764702206075603600404394545490267851299702809782492746914425008564838748146084105302401360323899767440108705359404405703612142329627636050355690645818827834312073011450462000909587691178802047969289189819396938533580216563161303555243873779451919822963916967393679871938077740309648746872975120666413380755369685020602759780023285440341449431092796868218617689028400054021622372962057871710632124518137696419991128057432395364979050315119092723950017856381846092363186687118628698348979736376990301923778855296942560802324038682775540378097437491554260041915762126900713355897371267356201587153638586719589009082310393871014731481884158475250480119834450422016041153130119699598687497258274604774081569996397017152127948635838827219331582865756353059506087580672955419011594910540470767096383539542259544736505230475628876656567628682083451526526856195570121865682652189692348015171053608945069499359660720078839790285740280142568706638171214870302341971705668458555557367366489207472611647230569868346812530877123343717414355773727064823523370219354720722124847548461651876651761586143912716880089643842576158994561451351089060208799339494383798474116150000459153290458935756899263015366417901740163336769300776877726643013499646488173258303091250098058362270589064115845270569781577696403648215157094773022668255966528902295109282067652375986846947937003389358673524591146083803105877437089464724435284245961797445245337620971536086977930249984873725102549778063016516502449520900099346978980770878008894809938764291396425393188486467634336043206417343111412590934245916632317485513722715183157749864544945285320032494908216919937931904991552260431473196114923412051759384696733463992559460456482282658228643097912369419460091134610304959978133310660608810511726120360850065394047022856346697128641678053403815968404405936318095988277719644528637240859065470123387720413194713724147916366156269271265180598596539175869490826751916608378345942173275396238223574229183974534034687780343280950963216151967146810797353959019954267828042105102170854467538982981201920020912279151626032826661861230609030315604450478609070537784090177173767829038218279939523840890873763505401430135521246109432962830681221900128502001379372827416990720456683372043711618768799161787396420282891037263423081555906412294601163055199822903312765533637501921327731187881908516617406995605686793913224160284120009245579430666719675846766009300912132383251104374959485676088624170269728789363735959061877525906426673954660192279423270196569367400525956656196190206295502611911373696098723649079127116150051797508016179662051236646811859342238315678586541680089163729225302552307819691102059762232211440674820059796952125953106478482407611528687938036369123441223463538373798986115896984748809518690839768941352660775169377297915961582463652266230320618583182681777599241360415172286454349771944676334869076306657947268931321257844382905997395304566157711226582655011581304213428174169625768430690249912019489009386919022503587037553869714896393458697895959763062143263123044022299729591543971644429720425095623399602584812815441940081860738157312309187765648820360272765392139607592634209161389618832740788805246540539273583416463213857644677308090942695146043454407341742802704294505878945396773660831804949947590955002407984552270846888948476045743956005500186247777400221430263814741801958363795052890485240324520362236986658422444984683265943124410518471961307966996694657360613888202414534825364295963228493996914788773847459383792433805153122143235335861412338908445187685482130771471669293925888063417880403643155426188956653153863643073212789029674622024198894464096782473052516662498207509791784727912970108685869694898778058220773288278970265995569892271717268120772904645536888309526091999561187182964339695535256905830442288674412541611079281817067975773396777840163518526178412935406433288598866940988489959063594565287930873947439572425035197799339770546233768430933808454720370159098554034618309410299045321899611820021695561133180488889025522735350343665749344119555612837846173968906128472054028252191402785339406608449196833811830068595483253297721259189898647790385600513256237972793401264843924684120937711370942523016838705846824731456912621784435396026664652717351850225806161736853587562971206763683196790301717230632709135390592938415565456599160509427360169900259654597912113035471012629499839894433327735768441645630696279081931546636575671446423928179878478860148717824789181242510672105297400733428682790164144823025306360611340622101090027219036728334027159191205036434775778789208861763680388971487659748416416353250582081732153615843965266257223074184808330507714158261406336032043213281088292398615014229548888571844774025163226946391576262711552051951049572431545197065258149901904223843034012360755250644078260768244705148744633015453877701810107264091328426952671247211733099787783230925421469696253499768383555667493831305465822753549508010409729447298429338904784659990765369501873233959477527249000476515904120629634895933958010577963186445347355216212741809299146412152146742843382993873675417781647409341648064316886620692683485704629099348415555385141540461832697352186807501639460246985955105863705810832752249593370299987098655712322396747915599262115319624196589438104831219206982300252960230676019586533507698102643342665801226505652242425574789732923901850388055841290552734731541573894629088026856678360271219870100485604614490426005924821277007513985268810027272393224936312651142935449138757367222224435317665281168556086772175283618032940800622412802884668602667377920826235531920104934924223750117358150421416574520150843182044838483136034139704986223940864695853859261410742705368016317107926825494921563788757120616540509226536041888408363130263080940329025807432851788226204786578102487832814858989980923801263745799945510861720643013281561792608147860496359680942405989617614058717878699710137232649487655242193350155251787436272881284126582194222434410887535165391731739338046349442675487957663409962232832365917277029139130169315923093432216559315813542690642289656726163384388397797857786136559863365222098438852754102476473484719437790723957394710401150067464281061089328593815171819269944660190176161655125940587857673285151480229782435502042792051766272192428065270802829824999072970264831965085130891334284670497999723815843859769847250431405346554303143152687002145321414658653825220653576915849282783101143514580003934133493099067548913411554713722694545066318294700460914994995523597307355151431574921882951428064692293314671711709163231262577748914773135554501401644804300840389650205770336141007289821864292144236038419105804818350090612381437292160564636926876878064098234834030406468287886661108670628691789603756271146767594727305588650469647072166494824878039418199798057395499287741278384075653753439400655374402202858868347219811637796320944027796983254125902217175510504953297220358370600475887149422821273751733030586030253214621740871919774413450747826465735134824938365089751457048971842487316892124600021489063137415886251579877887332626531005898794045331842876178082896469153907076864984782400018689153430449070109323764808252011211647727612181001722553576712582039834556758850732740372048955876064861213465880667916728285908875393756792401751970253091697445118416194997170283337476094768670730476598625262789750072010852908312343443098965705763714222376883667119677217469247791353290136856431168344015786222675829828088591644542828283406041953200284853285751231889891832665210895512144098932144793000237610308021443300136705034137341303081389715046232850921086695261045558889907101538788609804629403049343548490789237473019445530891033411571591928290834328045247811187742071441777949010565205385108305196940343570454333165664370479793733752325075964176387885920235005522109481695771399607125058527992845806828212970303600170745634014430316407507263289760969864921637225946109349516207122464017233617298471910668371587615836574034323134704589505901188762354526324395675327651885114255102061975447089494269345420661941585326652156580025023624516243438140001642340155495732542996830290564780348537384107827015671594738618120434582445668368627241624476383868155077237585235347301927267268050241806234963091513861065863136269245301657932422464442105881870610845795163083612660551336625417391154442732260043947245229154918931985077861578684963405757841628176466633177190621204059187919451592361885080769866423364429700210906005322466810261030648362818048164394729706961343873309532184882958016433292086029720391383089927745212036402236370372625298482657159780640365349253962013233309081219590109986619369251332954145688607861519561416922076599456776004317041010802382185763309131964044489712377209524300201378673074769783851871291387689629036760928471264617407547363998124339155511806221355500514733011185239793639189233224997807922390778817817525469540858105209411685315172367700695106846415569663683366790436627156931277003943905044202951275989156370294665230916675276275455195148615895460205759583696238471388512813486729292860704048525922435044673554198796854556964635541229138928178746177765833506849642145284729311108225574746940694235218899087295596381987326654929229086749294702168204608486167946529037463534993383293499456567345508750371833759011681371551611118724314395377869843615965847272923460602677811744314453305039704554188463748881002541884292958672209885278231119888531108005440513900988593090759780375093101960362211983936968455658999821491354266773456934698111382455123292357557568979377265326357270211366224545266396090729866917835113499146758635467462067890952703930437763143898017985011726577597491306906941673357242835836724437156779080876271976454026276541474742560514596153085600525009607746031868383673807404274426840246698279122147030653352312311884002230767177000892383660658167893131816030419640369267176196868104591992405805566174125169466274236643400430201744620086870598323160649511927122380752726553325531763450330234246137999129285316547392970944940491560206988098631000384684884709188865347914351529621245518935932056690865310051516179744963062446278940083054832233447799228746827733629055612285074353650474521878656206856418633244305348655252958302666728077287228951471165539488748367676898362847625716659730200711873995852613079287819406600645054003888011944268145013715327242852954816524009464641010419910846415203767280579245043944767084278557991944296890601139267120853874844034991188059190101118775171432284306101242157128088505381600213582558521496947625096248957903489244137732791573567286315885815451305227786830114901045818529723870053806942822076165363424854393131839898637772294379042815119445643094504797260211553776059721398553393057880255223061472552292960542889160756813228717458304801938147388883674989824374403882116890173946790063551333581665219922887244106620775678813645306211011423934401746511978266794505911234715146566939293226152425176881691994696155897969886393767626203024792881609620961972386813903164024504086222651198664933828331775823736874327852508051435708272256777835949078063908153282760372810550089400463428250808955492098804863052176585529847392863010081083180488516744772116290066869284639432464648146121399959442287948579543227056274148739138502675056902234963202023673628707714465706628381523743369391728165979076319931904794764238385975471797608035466692952456426241569185811992117904440267906552838376646067081085376353287061385202767427803695387658063034280594052881045864428891133121613913592161686078356879344198199761902111470300695159798552132585710742792580220045922740112976472309773497644283184073943625749918240710644948443511759032784435350115470682693340145639573264164266143230351912268090030133397172738195278072317861698285523807768246081448685561381492825434159032888605172490350642578372815370070763027493489903259829063088942083519424723146332500861639564334201589906020163307080330605459547271404752544376449897544557146690252988870973642315829841617992100087381725683548628439178187351488159513948742992710666448630508035453867360272919089180238100372179825423296989549855295067874331059209045048346443492899751584674941155583197729759684068206051180647028336674583931452693453315674072643113202459390583878316404716991145284059115865376066628112516242149844649026462495294324288960758227072233653971878086785113966668770707352802279621286743247997721426492763290429990029333793372668056263348285847495792777825850870145365531284653262544714960842648806810385212749753186042861902201538377356246387790619570127569366048649759185407224036506565560953863528433865430690778407010685078064802916352509873709126763919691362222791436828894448055737331191693550969416330138777283748338884852329910663459602992775320212809112462900560985171831161092816849909707760126590920051955317628212837080335569266044707670141644036295100164636459767481967366807042719749495817922192021103265718473890832583276492647349293395164301732504047892354729746042227765624267297159049883049308650718770294616285523264082412822343252159413984973168707786376560209944903975915019438078491149492095018103889959152895808375761512375093217048925211144912795276198453549128365161371973392285327719774100208823471470099208638646636655176670836602619626828505094070751580722047744741390147362545138557063387604590990427325036915190465651222741045770860282471004109151852492925420454928678703056057660989843042731534574963934431302464420604331250112119253039159077829547986814504135785893471508509920172126074595137922858255180029960173572446295368778632666965185083523672322088026350025201564065209850744497975418920379132645297622287677842451526337065524459018227816098193927040755220571951176617372710205701059674378020123042193820375377264204702239557533360226949450463956554714349555920329892236574696998180169978115869235134903562698406321384358763673250799889523136084906737507897547856531140707953814294641312125516002391713824681785637968660802375706393939821844657332268052304183204781668662040181695828619283578121650363880536715196810081966443514767874400546905840469242830756626750757546588801897087672630436944010502705126894163657981117862428244572471168760257886388537998138367905091438854755225997472636298012276700562630308711098125042156322837605722081060462763479070731347540091611804817425833821082849266540898763731091263579945119054316477816448611668310558856921088012675117196444647034755929739440735228084413040439099158739200210208834307774866595941693257922507701984429950854479510373262792840883469149604232697381105683063958777904251600724871953494434912014282714720032488482936505002349001559384307748852913205373430433090819329092321668960335361635215873213843613943811424040372479658414802923037748671198617150423393062586925862117656221621174556795857017215239871511229989924092687516377365661909416798013168609442156876926597590560569437423709812349558442334376507213946189667834537337915049602004243994510985881065062013162231351333954815723572243348194397015598064174555217991956931880935632082832884411939557665447516488499892518632058245969593094189852736989526674556861270627401757737401339117761420727591467006148179223279647243682230301416564636296104460031658529373852761991671890451938007126458219006309150395001807860968609263055474110325746118470214467309595355703766617098032831374551511419720353210618400837983427048657136845030630194210700549341644764943187284122065321242903578709582907155450848319337660062360198203156453426146086877462175589346556518849927097814954196556481379202449400307074231504111513009051394473641571550345639648072089983009116867269139534722185648700538707441544765943154107115553351411894313256293857550945949810486097294313008976063100525645092794736226493065686219632090257399337029529880300619053276747812013937570006433024116186310562868663679404331642353098677035746664886324037537741751889991666134982953085725393985212111799340869262596592308619829148787689655383287522691730381298430393172179994734310080257764733182503891985630271441854829886376017307991497882548853321738591800864290492473730142350821372375279991336210121427145466234961052775947020526817289808517253828273608395571729447638738765178661256615365172160798757525829932609048388738566175590451354198249553101627225013452514044355017015329767933712265592872507819273546329939999739682220747144657421465323116882096444866474792920143595335114194363674418788984913083712107099632851225427338390090294645981427996860084894227343758320177285025662177874677244945854892641985606193157274679918856455863344137300591791286145056395356840379311506951782183217573349045200773832753937169459704845147623608786875545965083222390384626389272572932188871800887860582525914944965174893945536703515876398840977377757738332799535567493573533081808781181584224294753617182431670302304597306910100411947690273426974441606825124702811923834309666054723003964887885474916805108719318413216803226467952396667695089960391388071103703770459657452675354358348487944337683534967177414238933181958062118980441311575665751885503020644481258673225327199147143220666018883093481737275289008579454009036052818817436410352046520273956126098652656309407584105415855454284409436237881708342918902230359800803112454364147975314982819686432531225708271141958236022637055901684725557342995814885647774656975858385315802055086857111555467260261857741073585626653405816852910222823942309721069905857750939977528562014048742650662189900297328226877283063572402960995164229707410465864542443849477504883601492464391713576843785137372998962301091624324154464080104208345202066513747229584009897302119167943307524003708432585660963414719095065584326912211200291847047207567334986576044034385007315861604908520900273694421493193682734843728999571431046347550560863489727652598060275459595364241044415267577854233774189601770949634191811820888172595904445632740643913009744662790730077461712941726232023206499845651078808304726973359299059386606088444128176598075865578262904866755865159122799385895127542836818639190572490049648592132993888367210595018479623788120042351661373746817127968900410092730844716488200839038216977078592220496192461095772087304307682029242258503601682265188037497597949410771952918953825682100015804302500249465404073212956487793198924809355759530546574864610461210052084607630698152431253125386057918238052561950673008419969536425618738789761478152611743282395588560764413384967654056081623661258134890626853987057747977910857953838321188432860338684343216513960883154681644586302682005162736070669671209703102853807736876247511079990806562100741798389776713108362715726414825357703724407457020014503741191996452652292125193821370821038037201073024059673930974145375818537321177257152880111902386134021227043777175973453356589153612170421813536279945621871711403162166233839722842685675047564955636617773107416646553490333496557272214391945880828080398035365717314874874834959647934713496682698260646260562596730253989374294309064485278696714511042569273661630033333355280098835964165845197631869634709805406696005522455978661071789752142778154159267432591698754857292256553635869330798789605466236381576249690328031607380272614072928709845385937476681130507169365090503980981351588432102671712073586317596889352099971541265202799309483727415549683681490693412432191974908271872976406821925882327542485025224348745891847750802855504879181751688767361518026226199246639850255079799397918825210663196852888438714843295458145517641363293483395498159190428422150095214216594645260190118229407673870363461629458080990896387153056837310719740452849527477373032951620420317816707630813236595502871479572839136048897664047401155670430654307632753880047209915521459689208214651319642432344353687541934866071873189133456730163622218787222010985478805249902326431790954361631739509965751474434234579698192183407106111725072465724059875462244498574299490786594450898330946086256862395607153583328207535449699736276016299428377597059322812809476059164710402340995968042270448717915728560815861567143542649517286224976384169144314550175617100632232604577198170161831352745641439849343957590632069417306345371698727965942379044571740011251698109519938010162697849543241593041974150817775467722680102633628635600481219025664289541664600948081907045541728298687118489904971271530785177976150048254498387274309282730445850651831760883983793398675865655663960349350925551030599993416169191055839249749089239957854182176257993642899796005720365787817794124427793225439217629586291752041509255994302948861341112830749373799369379005490848439426508562241194928118078302892564250406115001651049537290512709448136683802650669944299350211536889579890761836080407678971546846142936697666084724299117039092309143740143362298451503343148988032890105175895972317982831042350717329964255134365785391162585458380424622943508145138188344412028625310669525433855761751213853700115764698871978831654884569483435943775637588777906288909474451112176912795277153916712049861250960037697425695890228516356087390706435200787458429977221330930421525425407499626778813021911056249409408422056584965850045075400759859392645526068342748661713747548659393871973183323954816264640497095047072875950322933786206496489319143007833096862499721897755832378682919673736836859112776987767725360194655304942037130987976632942550051986485283175775131119251792979774202193584089125121084180995779015050603995021585845906423584135874360768666641042244301266184825306803939176602682995369069762367679249273878760588459240138314858291188096194859291266786568675056905644331723302332161910012382395798666269631871189283683249937240373082736326942409608821814022645243395311735036689315830162516821862888842823406511885857359230489101281875623715804404444846288692859044760652731850690218979918765449007627981803448648197498770438910279478028227241578073780475462684356044893799884222699031304160265661721475876169346648556048643949384649071877316549324962563378797095871270886257513549250062848210082616122901454986622569890251982409053998631098273062566835733572966683521577038413878306996795529944268916230327803222258198450161446404214965605466778732137250235318872662107263641459691665185027469012870050182064474132798196638712990003034758372618182371140844919966423311101340379766138634574594923928039034131484349552474890283704669606136941727484200276119119593333752902112556483915286164369756662872726579791971844777978181063155175945830236617909591896193168689061677310077236498491104540973328501334845527031097606338270533512220749876222486930649675882434341499499144349851359654441193165942357355543190795113930929440326851155606234923455878238753774505318788009833274217708229427994711606744205602026679343692040822512758045154204181731409439821283901445661536384309856360233919413048328320748636000623890775280087283140893746512471893763200491632246409063987260950749319431209943969408197434131690663074497400154776619882985678783189317335822785532671089848319006419472608447664199275375627392674629309842643335052695442008986022389102377890176344274506149824958952018426526303705684238474655932100113565764091010736230169101617784656503018978498467462336104137557865266541417529275499066779746454396598993740323037443136346734795146568839592056656343611538168832340713343095305860214691624459400393428724576015069909435557675999033984338323697016723801416978596333778886593876934953224868597242194133159705047537709808883664607626813830995550869961188704890195551001289719884849510852853733079927810999654734467019187444907614994771998214597997014511830990312978843690272751393054686665745095248502655465983091253199703624675215608720625321698019149173522951238930256962444131434566118959856835357603130591348813166690027007565895224315488942093950436683056008149560805886187842607721452376203263164585017498570188537330263103141312683319670573907386456483817195717271832254674963452750898504499631870360247509467750763519231006369640728540375051321043165988363702324516051189172615702300326576081888183771969108081719746278449505530816085983087595906953370463529056362160906961969946367445559518695910453071591366334698912550199870137895513170849223325821994921961056629059904606915211542132753268942971091071429607927641668984835181712969771135769453103556810643242323681822042992607164184948924833623739188287736141834024850140254729119415858497443344297756417500782886937298394602651937310920004899476818489415687461801536789886383511220064573905703520987128162038672011394688643035915925250559503974054418829863540956119315086629722398001678652183083771359802661441916225245198779653425362516948485818669656816411576832430027806418907219147646145624995351036446965714231460651976089013650451989254026032686765517966029591296646640307294006069446773027589898620896456763187498146162903869029164733423223851067048909575633669543375948240906366852889058740882622774820531692281307944015046882830638235321705485247444856371223355171503136687861179791798884703294524806196017850749365462273867059825231379807460775813294864071180256351925038872089044666266314086668275663121731638997004524464534417570556383615207749251063663283441404976094186702616279745910916807354735778505986239105166664307926196705294701913613904499962885885684721985425045487330971234125261447990937771882478895983116998649942574512980036563626256697672081337252784337033125584616261472065894174323805030739935070769663574872420988791188816049608641177672012239817970358801752209508977880528142504160217788606974059602270724679627477174337604462426681358139343609736384249365748923603126588658328690799690204699638565618459246570560824551234736652379896252540849013187963121355704389546467189385973221121788991707155509864143255730310144238051119578159305866220032279270619238139439279184334853223017901916357438676380410976135562833426779849175130610614369597656403060294264146715496504962976771923367357203365106206165829973041031440768221370557608311428796054946767884225634530559633419816548514849373430985409354536938296782310206777642890480947505974942503481433968514173283567894759948334024192535903508625692331169138752296008060335500341035035887990135575246920449367216365161999566324858301017271281977134400106497662821431617297409674093825757254154589965952956482992731097922960416878770159394795310706041454445645454493749343630717196887059810016662169637739360713003565192513310227932934577255655774837873107695827907608799447516357942557961680700184768484759715075019100537705540028603515661731784617749493107584290059503924657793385629245329786175416311502531149365522079226287533733841943292011715155214372347995901844804588218571859410145846126711600864710429946397836144389228136648077596035208553608023037469339083422494389758418795657101908574852458767159896726425109504825201396544741030494627119934239166510895002603057216975002902753809330493618340385013196702017275685403384995801007120905643097078013465153435986438298220273261564087760656838283551333944573956319863684766817692323109542010428460761573265649804007622433370659847174125272845446570836465512768590182138413969509827845749493054559021959408241909881077518472607726315923569788963757835592538817147116193726791165995892930247895110274265628371998604176248842174827730430439338839498785811490454670904038324886011024355827587693084201236588725092631812920834994544191715067224868444659224698505954978653710191132019776255980199835353086738808869728832716577072193991924468490717611146411465609132085680253347663846630897754425265183310156716350093361586966618609252210306297489723758312552723586074685324351393787503336400171472219506060660308967612281536030056204362888325735031488435557856746884874376659976706769289159138941570829441068488596740284632331861341460002781557648844315741968704073654711055384549716874890793334117602849863422237740208415097351324713553786231895106220167819214951321185814422378794477150582360940805377843627231096637273751304184434392724695521989300843960791212676844255156625526220465412654556582275518029187353729823112512203717161441464237137247463261777834229921366047874821806351876964559835492786478888150054362613238994880730961743414459075477763830860124688462634817439601224838668054522484134673153926963939151664485119604510226105183656121387934936681064687365730684403723255228776344514921251413843741627507455231067426885742690081102622147208935017628497198606737930191326243483003140349536586962806111849223733633545240438240019462911274401753986090075582032615878124289932404242965305927461689711401464716354638574220395387879854733798929201269986121670886910269578017351553079602505373865739593240955428630058901356110204640568444276408565717182032571939243062480994402669284939292552141356275537649404668820726649227964280369005372896698807281021177311926211449493461135164860551006821924791939753300223204620466015256956271513717290783863584203077856858277266471833896567832812354676338584245371242518574586005711023230821386549615517766081929695866000985836766971366975171102383102714689145009156454414889103723522946355929516887287070093197432282833955078723365524412291033065603575415205088960066096332885800419288503866561737514911364888876402196100259207562331715977809827265228107687789493236810525291405950576453551977960577238260817390125754027039680374216394443985468996789845124217629287983668331829067370930482116081079598634912363613088544458991883487922877531236095821425161413261329067336081061900487849182837988892469413500701804465260040310264682328782942225447249342988694013370523914184961649723872538327825870564136877272006798662407034435223983394287149908236478954381208985312526893788894708190713433466802263765838457022279971212582692353456920493917256185382310910571473764098351200565856525610793234443845022087542255392970057667718971818796747445417338944488435035900560726787594127146218741070816747707353472544668046173933644086813185425644389875432762419225896621607647057681515291453628119032130538062587040915399616175807130872298347456613827646494936055031080596178533538427905188580062073948330470128823721190598115252499578024532241311331889452419232455223328999611169355163625173179803998557429808818294313491925306741095471027309802931242620892578206221028250423473199980296619817421742277930217045668242709473973220378180269544919062071841728788286581361699509501904122509955452957461805806166256385854048907550345451426489048486870279074518639519149872973631466409515289412508249947267752882883917811644131828470495969976046975747869902127324992104911402219629541042251563536502719606159149427823356798389195646313185713420575710574035783390551793663308485769626148215369023705871060876508047562673301897743215524871428528757349852262034442643152833188315317498174129690140962015334839361158218392304346183922389167084766974436951145186585697782617241501644742023056022679946798470945347088694560346104118060260169506372969083422638062031998727375003899102222795553667923618773553995699339244758460651048424787127382032084281241860301674041131079463529913658608213845697892637538702433139459601357283413104798360368588028753334486709424029189657054409911141573715494589330695029018601821885162470362222918993580284592153772136524939098235547713399027946303407657866578562587300663770277270967421936320071921923603952665127723286610993167786284306493305777865736062772682379651836576764288414449962121069390757559799198784554060506673883830235543589307074491941534125858420071840797494712741913308509052716817878760817688833030387243887144919849732105027757046805312308529537653492575264702363071356399715323064251048764833093158201650409083408829705924033066830748636955099054733120205263627031979889563610233613476722472740234911152761020443907029228192858247787949482442621418428079176994072298655210369144262696980953956979260900692600714187394337531426471578151489212905099053133537726784135534943855015516991654654517755903763793789830846450177504043607874490804612426425360925663627872588108062618117655696343260341522372368240693763254498471738743679518444067871054209667205394395345424295964880542421998895190669340642236878492664152819765898970468174365341941414566576121851751269421109243703601522870087676855744390684863935597678222851925820448144427206586450015259842323669263644329069489545665227036245162568777103009505066023623118960683693880774926329668168553414911131127573493382200204003469657804029074616364052266446210635551348203982126632553409020893531237277730438767713674515950926296291001988565701431579789410944057807369376043266630773647003900317533347892556731944550384701853364390091286062119583665556995270692566949605043223768228958464208414252735649286156832790110948039846749986799783010812022282578197261047607379701386227147677203073025864876376279766292901895588447370004128126146105522948909728461316626193538442894632079437649477420093503245968269308399079232200346870794090078261631287074904701186912726656596321282087342894368494317215020838225649055294176281190040011110317450182729590534155579955938308502020370747263548527092829684343432838928045251318457497987319904557614681653854945741907173614876846502670594332610430477322450505640040265292299046966854099245521108349170882801385721142837206893140963345466344936530406122125675799347279276455169318544673156813016165372449725694076279639704929125074373925969673296371400057672173444211473784522450014569338382585250330306205227201544672386569721256661995739746284026242362206519324365808623545983062338475947272829338156221349553889633684316724089429822970922864161695146199967056343863722043080339416908928841857276848972463400609795853657937019424900845662963154574856520142308657543242255042184185220492736804313072025214483912344515899671940479048255826587609066026004289736475157207391779536506108896194855479722649329538690848137906158167491819037605380509191402700546850467057090751387760285224518654876069421940350561311825009746670643018805803707707278566950217915053722245497287658380540660610834903923836158972464552576204683993611889080560385414413902316512033990792272044682844397748377251315006935803199457057037782050827230538576465769812688307295954336291669234947283166424471387555634880012041377890654784277789531989191318136406949554966545331457304923560081458292619438945031540976911236948875520615408981175199775870820956706567456653505506353070752059922430930390109224530652819350994745412070091171082258672568345312305914417310975788607791505132269999256779697721787413947189382972961849929471895861929329362784028660233294455065500144404323965192509731359353991807398691585223315718944022974527746849131028042541592348379812486277282703587173732972579344573831730531906275596103160601423180785636510336386724732693480641258696848161818285504960976971173320188026520344259175234716994918330648656546769541560225816991987603424477953017508658486752247200311085037093665861134806036476778745262972733401284696541034902615518129284341166556816445589791953593798730633494332271469726061113104282125052151311626976970711672218231040149546295326014366960142578453589301948120363096869635712877843816184395369456398279229426297686382038015479112741668285674987408997165808918740702109416992859238763808643364982217329516102903585070371234771476189145688713974478347480776342938745741860837870286174603470756924057781626048907960556017944609948150965735135095665403175731464205004340776808769691172383524014004534298349688336605158172838300120701331062737411404223097778506604142292649042131734970419478158094434790835022660746010725440177190501078352984396603740493021925572787033183040141237198616702690060028990028052711287834845293919655624523059345471166215124286507588573319573138643551589042004191391629953499706644130201245517112955411432821454227361536724462825448165398756595437629288943713873723713218791664956877936537065917898328216651793436041458764680245603754809649823466607416372098845026067772484731295680221641816796304690080471458739836127372005290173667609715821583304521780995287849378996129564989978225392033186976646004562907346072787511967302351057442343763203821019807252427656648478822700852907358485839029550882288789794951804879215414756430994308666228941449491714334108292217884339263904824638801069420388892144221575891699182455758836528067200546032171779646537357659306936102356700089436135917091648316992309774610198762627492635989648376846851153037137961260899772415957118108808410658523267060965977003465727994326395149318439188418839974469256854132753874581023322414627352377759194180517360045225847566478080085520531008418378583914118563805066582041249549057959164508602324570156525686234652307310195046956371037398601982664448170072943368007988787349345259886580751894081001564341687956246329651164915029924791311243330188437452610981834657841331690611593537493743525507746407430619116741713360670221195772099115431503676701901973816724138623486348799003161935015543336186913044597206397855915645496564824418851617535479520804919751089227904972258166838486152727547593763401486823539938002996434330757828490893571179286849732593172234840414458827607559971265914209368311583918327929221368120650874884842470936612546400074142777607605225611718988335409340009619367427467383437890726887605970202340979432743015931377293817174296938783806143485010964487701002936538013584357367629611936641177948744911394861613903752816158203022987828164292729297843763654636081090558985109574896065923515005798599756190664177119871795438356768333052749506085671941784642202911296059918252159137253947923987678092971394640753762508962965161699384813763499881593962247454273186039878777392369610942439786701905937177658781110784732058733095919904951713339127022817615549750951705670795824184511718600032699425431611270975122279855712683637005816381127943096844610895921027747472823353948498873097797374165662381130858000142891778539719204611470332882007296762781115773608746385439124793871321691056255422781476197062122656050334095851477469705126885770798656932491766262706331200298552521312299128583518987742653942960702925615585455632472237714405066273638865398211344492121449478803719735880883924911073196644207477427821428894328542602331305508083471134066483913344155559784456170434952574251255140847653195993645405857115432039946310284741291063752541058877900657261795028671660515106107717294208466061044280931618419699133477305088649139681354777521423650304508490019390548292216526123044768089764795959123489204520566236749290338457623280367191629871402900848222381806465389746233594049839443070677381742898998883389240592395543328202548999644737182020185950204510555637781959606545799829984094749851101928719376932115297551643701516590902036298791501152274871926647158023445072279101920132983297151582313153173748504694611452759375903906679530643856902635476486795889693097053465884551941968624717954949035223833436558087826931270062630258950510401454921274413508594268320819599617406970020329879637168364693500214300032223860680641030092313931869374348033082743904092371961811897283856154288500898556663607069392077712127611584410733018213671759677902181160076824390078776351584803424027876957259626738920998656012659142373729455227301302934969144676616790462984164114709008109449622861460927947952132688757540419032245426128718754964097011192037436013148132573686306765212567144163154297912465608481239005338348470896356857836581861919229018771698671312640077312391289735744220056808431723437494183018008012007804285456373921197225459956134380225795201520263849905635510772434388660958273486491165636578541676165573281750994439477326292326040608136885621236910668189430488133389998998779552013766754597281708799982331331540008634925996856246322083479718965181305214982985368651351677877658032219333293651058986869766380959932115224943384439762484977834101600656129890394783548550054255993743205619144630318897261641779191788043439307645717406553207258564230391819941076551536680890342572417076208150334042544656691269315536826719530866341922655174922803253271018960427278296783794914475170101311951117990330670538203859198798027654230136513625003316820408651033904263500269607002529895323778914028415304867489047461090274706494946534204077346262836865376004007375797852686976326095170761920912531559501551699512182079815257193593638763496073821272579333111598247043532704847103323024442255962017663277317430043671409327396855378831972565958411631700696096410792708325560285863776103298279690298436663703152973136703127439962782462817106941250088259049389102762678789679108642653351545856695738545578034891337555917799781002979980881583555433970846513463427160508871154306432658712945256901621366527965968302941834426590226877793199998772741694266287954227821218398374248659463764271602292372124011446867766049005711410628644486258656077319163387640002681019583235817694290339286250813676695943832143931092335054159342278754958544366251306457236567334823231170694791443945717148669742566935821809066184889748962259481270597021982952250002340710087985973911706994538560602091942398227283198840319061180185827576783388174985376889751789932926406916537645817420201688562664794805019492986143788887673167901768313075171149723650542838188932140629852507458868980216182066543500504719012411894270980076891404851709102250835610205763498726328905502583935179381533271619639858049349695817713317820467781465858030424809648995311972426193553626409401716218565620894582372289538425533646079184856346698848586658292668736921346060238912777904827885198846607016562968464349951644451765583529260575613961302328567552620268593639445633829610630928789177433960336921754721763934286548015706765078732023639395796323646661146204179008434445585946126990076590524266554479710772141821429774543615038668300069362055471321384565295946780779474534273332868684198778336099017766673593186686835109720080358435674724912675343359409388492076927639954697706725220475459097638429592355880580593522977605209389187938603596279816686235826866163176681092465122396029949923505258402081016236323834060297038446573108506143768418047275718005207361884875997494474570386603757492150528369453341892582743301909622533827052338437123586444352830192383369591680545801121709191985204162680904405929863543427232446960398128990343814891884081678512207182773654472817068586743923913620754950953896630061181176498095388476768760216821807516688379299994216957834019217336664725942276969697448621880369349699324255843089852481906164236608216099722548384149083769397943034397636625459542926516400539440238334890003237894746694938675993901955904136661630067951614793716156800124430222149985010175272355958931697736141072384602335245671887192112055238356696621745183536168349025541259822372458560754140803020062034562504573844485539101860163612387645162723082061556077899609192364623798312344737594673794963172222230100670277107981155934521222277929836936985087609056683159179478316824801924945444361246863259510200464824138311008087263001162651780255298146865141199457143476536708097431052154041310333879053135281644040202555788755463070406375133830182301739457983734920324737220493438738853028803282908061095631666194387103536853102472317056364378057804547197000062339827065095694910472692592185781562838454247916315563018750796157340320747166743193256793332322946915498544793274190787974335802948557144466957854958311109627817994145562955572775430960742275846010587023179392829979361022857205330625337546449285385327109991656488781425687945946487753819563773617848100396607745289977930391217742539359211848713445606379186268211243310093269879643135847779990945460600729536785990692921920519286463532847100890555635101200606007813315543798531513818430345317044140601376534667168526856491627533800788649081696907430071241623377662518001677448401674921209700731410438068957090970070747358268315780612144675488461604890713282065800876122281477006922535673154445799801745952607565067660551541143920446885874665221669746224514367201738642268310005163974002030103118264394772639838273250996939617728627993015038111485027471772316665575541957138734962651801286181097806177578108113359492875853475640661777654233858833481994344640672908112872499799407323411990680072901303836393222169752605887256089003370666891018409765362391064209915934829246135245596179392787683604419128658094874806477089008248779938488620127535844586811038279590985126941521460879911172251602471037673090958543753167903601098754597560195044471122135242566510039348315962186536129313672623031295797365596347867256049983724306511860814803688178765114242378503604118328063655579121766326310557668995929775521849743376751085776746021683733371381934330790868360651518369052776497710621337549198316926970139908745663078023848959387793690145650501684379792910880471640815531820704250389134310819924586678585037092862476662735915876232206092527383156173214344045268264768018462568999787288710885323863665483463087058222579629904627943359185962176683333002085001142281746444293609821718662493522299781902615415264790355312416978668806375568195341433597010640540119443999385581527963052705249091579826909131360156516329044790929743197749247030562061087906166008570982472774088758651273587588550027581864356595830529392409814414819015408441236990517218420169553684473546040221965966811951499570463593400470952928672034850067543443451255605576996837616887196516915741168566216511257932673300577669425014325139444801740936057623953457564398500229854186474319530184074248939239429010885943481716273181731393602449469221268805550382905497829726356317519304347651217058804158187420374288675113293678070120946976882028767021991618255350837429959493141976157158775653928674825451737791799381707167130842310398895484275840933249615341142125389812839169453379272655147819911900257278151049659320542727614495050272846981278762839381448858468613877853593210373302003235235026492526800907158919460200413176132949169230010538301797435828845155720978687914669874448199899801711209972792937684282055299428917910066460620644910870159644766578130428858125082194701939502498790468635913634203645168745563669598606369179494232050765506293268796256568956578201695893778343220007740136033080953461391842853639098976993818476936923185004444074241434744572937274705628692937160760501378142701328067357681311018530844693018414595666873472480849874403403323062187653784355685924556245804463801695664832757432682215278148918226101579739874956890944439881953332756403127835461287047111490165039076399799113347186792993647861401879895043915902726752702045391767464324121176891092763673822135299210552284550750472570013261814141561878187791473954668912033521486277559821077793848909966695848187183206376157128194321442335568843701602684452100573213610447986426249166477784805959884191324368347119138406147610487053158362765129152273442751590339916634689599730797163153723606219088581469730297610703128221813837712385444187372226147911559067788124188401592555599051819974370427058120811257261217513601449668625035010459308709707208251129964287304353748050246344971495568726703457504239833897833171536370147341125976190730189911263701796906388134181326213691447677398494471394760398396329753797361875914869553478474209158450060343820086148471023392549172835744453964472290349324077130602566288286152905466421631488264647951459428069941327661009461991934784629184102861135450918233804428842499954756460871362199488979768527441430370377618561959853932974705083669167233790130913085177414909376950195864857666629165659105537513205678799250565992005851950912379711989346493742899548215937804219267658633382293231689226762685659190254391418994053110898415100507526362682811896026343314206477231126320990440795764763727034988522281620651852061986281726191779425304437520347546673629945372444408398172633233586370297517166130808179655531039447815790719512447258780844576417998681822310010080387437998233731160326008526492344539843787385616706984335713663319671697125911494321066308525280304635702135909155015579902699762922804639043075790336905479408711760489586480591341610856277194127469102610981115087052687775684938503723029978266691351582809104694679478612649974849577586655164393994474534931507715483157819752473946423714620758820878546531613819224439445097450762374576599293107523065170229915219478399324850711740980624162709451783904556117650455782899602603232668556552113966687163868906859863544901613577329878837020397469022925488619530690000434510352178051925026998969289955832887358799474416450422215694992658062931370306703112164296993099176118636480317351926723215521407774431468423891442810221181762223861193320701580985349478530686662338791563421782890132671748685684113107798962023923918433225402367858209393356766546552941260048777417670581561534635245891751482265274434924875531450613761922335239738286987282020283089020503491854454316690362812499586759602695708705961707382011449802568830542340253443811714532555212905858731733642686978475814316357633169846745036703087831636406765659080844812502594577548140579486315957849735010678323075047417184078672632660722457900438833500489700932447405894395252570669453519767585089200693935008240229522138329065449549938521942884643139618512166935314407607963623518751502877492000445206382333772086179930189172794223403681367937060329204449524868019190532488137260085473649778896673510424064836956374958173180370495983987361934928358584612485723208549881821599481394207664408304204905078752997075865238303460073848898260372641718050935711047784444214742749304151601277705749384947152806804621347709360347860009276030414100707552372837641945694574827041710577084543334770869181688578787918943061573144297080490791116811922578654108680370554697744166133863177512625851531496287088692461203986560268673136785249498690142003383904830832301825439051906189809286376586632945060878712896705031759444995525465892271493783452719490454754876057766667522352099199727126166508634019757215448966424892606932087014720168801699024850300069713807764850564084902070683657709394775679056950359100670430788140549400008907022238752928483220720175401381978105936391810446503325200041931228309697523311938013896876832967468229399346579247988031385588824264067081958958115412564721789596500796451918069355702195348976692711118295600503144535367912356625389974235369919051093328381076370074113085704115989476382676242160784778075414427874899007625516131904789322839543341912048281056479828081767545279381610084645027714087782657973490734729109611817310698764338260398444890847643288520971263253298391934572756194625308589264260707312577200267375691840101338822853229250443463827832938182569261664857501407117208236719816850181449531117922459413310290498936406028808934650858745434926782526102074873827604443885651623708795470946051584935315961658403330543669414573167204252145002192808158101269909553195192137365991855261249274429414436017331924291386396087353156236402525806011350812087669568595797626744372278673752478561315384316755772054471343284239958924166539765323565789695805071244955071900503183387177883298104407973447215228683420327883844140584775564687306553492868043768164230621379815599354208623120068343419751397497353381189260766504880954176563792058286818094343767031058587488498310156663162246679937703500725877141965795356342948429369172776011670558162944726547216817484204490300294170984252287715778875150491424669179919445256880182319488450673297843393699964897938396687626323127594030466345698806787609215545494038236255768654548797530889940663696325434350263801465810039502057392764966358299316197509162601773262006659249771133973578286360361821920472199473778514605152974577027836404281387081748370280452798806667468047384090585528901204707573313164959414884869012780880421838324961175412706687066578889694110174633927124762846346406558051174047272821030734808531501821529206503867913050592719232042785658796767794255196147161513921894065687593020666939632982985301054476022502392706444885774572580845334463700929012580763068598359466168914535136069742371484386283437401472986421080293134076142598660359595132354756190652702663485201091030552141517090338792416504110116023585870417655295594376204729817477431484623458737734632544336450251507002117986419077110426077222014414363914671323721724303010087826528969668883517968737793383726860269211028583592757911200141719354010737602784171612611210978925527418923836407986520623455698594955365098254851696585758016512336343486327895323758636064703068346318709746438066025727991659758213627500204641384491659397791882853809354021395249268805713902692365105662001540619340123918216320118961144672307763972048459315155856480852407353461327991769961373292871859481039448580968098973410866713217397215250445210154818150214194690451224548787872682748875764730689564337043728803156592284361976512082720797290120118716518613250590684690485879899230637475966480868737627969429383242408692551630616948699176833544836661605422284697356488089877200523179071496145082600419424662897817887432199732998633066988698007314631688263546668060594187983366984397721643055748649449161498287741755958896480546658446162392444770808595807075682667987763037164320575841325297585213481697385223302801713767961329829191455577137460327182929335407476667613817118815429433989962629459863593859469816458939533928807881051386362525647346623133459745236274820815706957521657912339033230389090133870923379830963486958636483216988155989921524810114431712175696334973755783750023224031323962103763510899551199393258789590762646552659088143277361633541359576849307999425203041293784399907446224869841118219028606268179823101847107867083898636248044106077243791682615518873064694301060119863426012567451596495826707911232930733976735331760626412264892273674288779078232853718451526746793570062961537585554469912481730838085909740575768616464884428379311640093842288554436106509898617865740981640314465277457913605454519875854787677347064177732070258376119152862506348623295104697654054613459849337651720923078108874563909145772736578410857059829105323725115840086304648409183189980181379390969514136828498092887143217640187345769775210594507047623188193471652915256527566040379681003334143963094536383427524131023705171950188473569181674003159004536760340620008421158548104404043442389783514777020576255022201477998778430633919174978977722640550170232529333201805114156692838001481429007163111676639334555669102864367031466446408485887025010973214757860766820004137592057665244720026828517234724569855925854563495182633995394209194662353546690419400385845183929452936682958375930177782673033623246186386341664955205297186515511884160018754473893992073324730862567647327846659300192357558053202069879833123068767530777813012126002771999052773493317689803392577890622551936592972804934420049642260012659771444243976508607282850119352807117739234118098789693595169378731396475738522682771544540428309700398282331889976899963307553280958666582539606931365860105923310751441357727598986983276716705984841882349217608015167902597326401163496601951040005795430384209331678930746454915847446988719095142149632833612311152453124571577530671826438244500099205750651297529368674755019568826394504761948180090110018669659340358281128580841711445955822311304815819044942721608570809469238158770144858467384160952703847853430421401739375822275221266348070210134507365386276276201285350854385818885664015221276152044409065470065069889620336109320768370782903861076697854238257182851001872572842181138033248802849796425510190800894479124325924908376843395923226717610859620118821451272815245720866089822082323769817580372866969644621774853895876731834769809637836487477655978864545447885881114868355588856374825044449241236908483217866029877263470594102235238994205652964970493015694267250276705336913912573759531726432372293506445116637509829437782500047731533984658877359131872787671383193204210228178521273733551480260545225492761563400087094140710488633844743677965924970388951462549058627144657395688440909290140144171026103675548619944909453925461526331304499884412404442050644329593437297154075735325824829699763629896446349047158267801087092950551287182451862395767204749662249031755100510479403487805121021605719339100308627511082377553630976232441303005350415426333700810494150701715809626807057664895777595334550701500046343401118250898521461115287697394057638728531748028950607071706718584631253452051029545032092320813745663765595717526729731232433351230484863819705831729955359375728699242032664754767081631482427496749059760517158182074356589262125231000483981537822210767266712424837385459167460537535452419303250264594860762354429211563470509158760578269330667793650588522730785908732271605987061462424482819525035260895522747844615448082974037631655049758819990493419918556612822065497460182640093405511060249400581828063590483426878037360237526472701456707453202673923018468749564764520992592019420231197041263689057505893223336572240746037225332009754121783807594892917673348425637253664546449445894128511042407544490759832261753010533934129424534929300620447903926008580889015341863165870251238609873368706505230389740463260844996193753263562940472993645245419677441233353669582254408119589245481281674366729237377180343348075756563716708239119202027641206614294550390961099659776286720508033481352482791028182533975136189084122521397374004271989351055872676376580433121948569528620314475261819552958434853660258548567598963496929588343244723146602113251451489382055697945006677777267649198795973652824270850953943952656466338047453707613679632680529278115171358076659599708933335457194943602369088109696856490626896935140409142075410441063239286297461459918672905896696803859558338943104903052091462885886484353988257873304915253566566286290300776508376680269603111204897113906145984670245393183723825349705637233298968779268870796059223637434750544144628670701984533589593696972478312378305398567056408686538771355747931502767985282756567863679009269699688368788473910991702113699224778261178346199895077323120250704092104944196355818531780234719234122663419783679896235896267127499230678641235328259678750040408199626381551909481527379290947557261193193295416665340070144692009213266370645889671786689189694352903812646526304504714224103758626884160492165067941810819297721801833845168258941174187920540438819612547666138303067464983717258720960476260704754225994945434828283362890939340171634552985492317008609808507596130901130974229661135892676601464140017904383772459309592834987897259140841505137825548968115515456982126797824283814972252655425213361092262982226187817768641094672226491739513735173902184755620608476439247203005446293532657694918078207556881752914995181625339232083388346883760808684928334201531646372394695511620956355680303251939432830196635902561355853864259667338729688959327769747412224648636016871879169941000120990782695350822661890145028348464095045387809251598894331742364649028408651433251020406078486048794751687803697705426351623396628081641041718869683643074017066179871700929812960652797402078024033544541381106710346966564360449595227131891932075197793974555915923620401801238647939030085975836536927814263844653204437533149925675511552292224588518947205004430131738219903373611004982663111445855396004971707441291727121506111451346163315809991384125337600350886264017995865422506778522516280434249908230306142647630908508775268283607378033669336763972375371980298095797014451305552954219762023663661185563263016440368263938327811631600468481527725854003965991154138079569422560273637236865132062217955886418159096492896324273013010314147980227938048052133289080265546743139572141176664641935926640313205317066852494828627458027776644068540205162684717326941701694997214331495725070965230971595531009745933835085890197903576074041894306471396443415929219753321637018333677076002481302135520808847223835893834399437925964947987971764190596931614702966885115704987391627474460978198393238164761858635962648081256679610652203492703752345427915277742054754774096697235899070166057583447809045003855652129737151685170080415309825657280227856576198316416339918837448973630539253349569966624475877593283044622574412155680291468315350453332109854650238296969677008892312277073988842359356471762181910560000255350893318707677634237926734458219063066745599321506677386856639707778528744765263467868504183721828267977404665165289513566084904535274348687002633668765334449279551332154898221413731961204656451558916977273097515371858447769997127601957762334905093945160179432558422723451858460618292146609700363022867299531698298609645422268111497824449113348757332236653829880286970709838283093119903189600693150380854375360788373522540347626228535329071923036903794915284373471958461237700733249354696901685800629689902777604356071918275092309417738946607814418861127771364087396439650392023848360570704824562243892722591079948252664410457968076233961909160118455191594415249127144147194130588825116579868291413197620531311609849251320436673371798916522730944760637380245485376684218206947523504652364253717687719470774201790340771852893287064407195371722031253286068776992581491437638059604562597951284115886027172970086503440498408534949805029611972326322373276574260076248360974196601855173109495555451815318666983776175046203820320445182878911714057895129216818264188322745020265537662615856008452375474787551588951460881046107400542662640268860545268650086798421507065572512218573132188489552988430021713494573724248503650145822286069209131468362459582693796544831833810499282336998393724820848330059475144730011420011035614237238710551797158978957913576021071266533676225868591104268858455187596188630276718760830515895691105860101292411495127814113282052739415094720068010982416825563552971679081153042678949846135523289881833185423748137385596494021792403956812062071993611728761231345930032056990676365851121459238435137316380740362153127821018175792783919744153356945291086086651861437481734454329651263304758965368939820503157652370788194349214186659799547105054493026878157062391218125935604845847647842552799070754008647592958988582764810217624897030569523148695057808901360858468186697864582080520954589261421636200857032682807382281552118991418707592958358058694387846384100568944232659916888308318412516071049772400105916973387565723693240006672678429168734217095432845574400130317236555395759148645118521174483423409794279616668841309810575068226636071626933783564129400525334092023185028917237166633008414849991666898398453089729591299544051205508251583671324172531524515151006184642791396281906727933439024119766302084874962771262289337013064088251374462311351368480918212273267253227080272992734488251334088824904046840426700366190863244769491957315954572104999046468604303750044810833310293633482915225354765285582527353997732069225623279882013237857795546929963065229953206118310691276639408082358707830942604272530080072846415503205031868645462662217299070765897888328571693308703137797905943619496782607399679286137013234014894091000912223144917538545588456479673835341799195310936030125557610458809709440663370294111900596549011794514420776430784534825943128138738931611253812543623908871898977064577294739007229772952960301743046999799875594848685510412881925293142920568530864124971601122687331611889916563448245469553916141141156427036141550401327150399903788764853048893202562671904855677312909719785982444983936296626309130012224388940176238115978843218012658998310435672411359401545680931835443899439118697467000692138011016996001071763536420979628461279691099492155230761205636616710638552292823587397036145228769762323680235579059926584362691136167968672415300226131186062974110672842075829588539609355002065651760366674262324388180805067992736106026893360081067753291961763099019139570342328569282975026825872338968786086968011635840079577185582539889996274411168941108044038133760068208339052122350643824872505483944154273199045271242221463187958995573574409097071404027926186827292282398615375836498737887626838392682050163090243161517115655593485800235285507789430077360207131985063599781259625041429552344456204785174420874479654070369298301586842415094266221123098633134867942034128467088591170840621039944166212076409114851298298682258763785629322710556898647802831479368927247208478542092813611451008964970532338187674920345900588205330855868217235289604407183537650802216512552367191073145516752020227858325375201740865002938094758423475402494612168088879203953252333566879305930199712497087053271167909215350416971989342645673323086305557340778018918649869777078497303718489499990109708515039591309906885920454145059459921433318762796993083015981901245978893033518314473662485910687712022367283380658626674433153710683513220405762992135765499827408352863365250544588935474346213487145820421751021064556427824819947781864804601274074978136294129153784337862303725424198022852409041792726098223164305683917222707318894033263631042466933970431525080305866497720315715059986689031475999731631237114874004434392454215903977558041010876294101374401030768783608251323071981005997126442991849594180887921647627766542111735635450298878942236616943499178283381039722418695746510711926006730899326886525169043279224934869961580696354925641883009445740225739679023865098077413541419210443472886076271522915437561615150541046966632799931307488249467434258823240275209120257660905387118599719118383657918454101800679222643931767338708697789745281593534766382882510872642383784810179611257544832980133417010707174175698913210473479654073947547738561368810391786133301337555411830031517827443403584058911366290396321386176153919156253656603073256635310334973056716718256849269682034485390522583457247747272175970294730498146683834118767467913379647553546343678220774606691053900752747410881960615924986864388379451799681480930276539459209021169065039332489514771701774476300551966054179178399774354935546431361085468112357129292704221930954239509793416339193357580004641004419181494629446944537379467162337202528307553558969362452146689172876384751329010129850064008808722640484092933813272603008411942351639114342958328071501948073190601828980916940841381562602269359045007556098610635311835336600654960320758399225771263895436210139682797430417313899696397548214374349483668298978080954137767539195838320749807767929833051186309167675602237614682610476712996201597534237198369641550309447613369537007066040490971354696076387236453732111026780339044698492529313262944514062518965670704469977488340306158141505134964059359295952513320484373976570318748278847738582867699900081436599776022360685331236415386141780322456221942382170822754724245620299145832458524241107395637114942997816605738783046251475380835872352082202493024434240806878102403554038219357783742611717910030377428949220119279489116394113485007880899429738941669988454402825658558504922786484853791659013469720639330240653150440219038516088195334050747371496864214177668592271679789903467205123861344458871283582198277603902713590417455948201561439467313987023792024508004492588342779467183326957850530449282348068599344924265255927934770778033478362938060954148935606338734004898991525149034805271556065059094038748955654979605307094610392893058478487204159869297962959349913630049230144161658085713521614504122198512953975052167557998432937361307756831425935702799271797428674582834870536001945805146030742917773122004819362861741903874648777883338930050968169280011483201028638064203656824229390228013199653534651648969270484856826305992069196399683950387784676136564159538584952290115266140282037767465297424380691361297689012736106352013128323975787259482319129034017911233494431441048419841759394981642424061257949113857283777484357825119803798245139830546209196328978358827214631049573366710889328125069310426038378521122305356849966326211465012113315812104282195528702630304013226519013679626942677365149813531954859529384689367921878202028150088313075644051766277319148251270530624546004430363103869665837440266507988092586876156247264456421406287497227990949871621159549628535282260429176828457318891179540887802727359334345969350083320579275228252171452076795306116490669873261811471272304165355886348875490076340020984656862602221630863403533371386955814360328162296471843231111507796350689637662865106157807033919424228134245196196044688479031547359712613946674008075502583059888782176093474626556190442713414447364187868949923339301288623381582257199907899986390656078822631081608235524330048690916977912404216556693354696092503609923576807152996502255967474475968871004682299100047122148012575379339546297287262021945380605324371587566978129130813231206983817246430919545658562439972663184613558366834276130938705240454333861255289588038494359602504556274379644181824368099651903530738840109878347493044373600832060876331622057382199389266257222779078396302751179275173208032029134032045177974813867752338331600487695483590637722796308272297535029177799881537225853865240749491045952319595464015762423605210598401416017140786343016772799692661714635231546711200940699125715341196268632641550675968017886076304419086720885726043448973240514106315045973118655776968169568503579356479752645854380991934302443046026472799375443312893316225396738188566757292397440000342982610749776805299122082995643933837349754541033400734240083483604292148579575398240962885446266389569482222461828318389909841852638466523528969535683322965040746879731952524595720227434590707045304381940919884916524086490100518645669171881604115265501998864641525836418675788981940683280824198979177247249678342703082007483995998170067101826005545333010220351186883695374867472472603329447537181042565984184090704018401542812043466178990438293141297875639730145781793872180512097988531641796962179067631776480092741552837581199867812484130768715982763650290964033733860040474913313074560077369490156231307104624496316157205648840414889343691503676934725941770208717006758637020884467309469494247117420732897791419165036077250011932483241722008916580582004261867119827410591703033055535726708245100053123224975672931826164520528321557722897269957068641606707893758945681282979026936502781122323412371847327723319488520151664772840811793200924868485798053677734729798981731959567256787399290434574616558700148985023353377710418593372574267565167031738968777695720098033231425596854246737703381999733598691605309176471768167445298146371256142422957888395392500320322140234214839661965156828784606791027106505670342553804668535838598335160749195227635233995025071708206415951436672115599869862436479783680027121003083007764952579622742060109212049603442668711489520402668714432908935338942536865812349137225268355673536207302769796401839933545324011792832323621103180527108933985576310387171609471398906274986067509033691534482592570610935323274132191423810134838277458052674916212792336784990162469754468658075432350543535476062539726338413243692535848758057267962604317822720577250171448252769187840702422621704117065172937186784338230377503933767304072181861953523866949883236423935039427064934749676888028508294409328852860798691103209408205353582852674614084140985040513768505849770203157897982587566587755279146778774465535225167582256297302379780744069596958790813367222977516807297561066569227445503145403773153050187997109666724506077571522333450088563827370053537874756271282520450492947774857035908103163707211168755511565159793516855287988364820558036852573028406608027934245118016472652993915123757834256692580745257481825872667388546141121491407448889740422771058468726724528362937228430372351958315830906541637224986678742432870637405727585656904925984292413145654429280520298244711276188191054134498817359173743896527810216715112398040066413452834172985786278948752548653560656028865765253555312493629888767104479311922233950004030013886824044152481946311236705231822557770549229222781613791287763690398616975645181589163292783950908238809145728317582312174442422349240034455310181209456760045574137773644923556525874164085492618495747252735593460567100125722289454179948217070109742167563739112192234686251516249249011948515499173955045949389411245938961380867854029040660419019476841276207582607848399486433744338522444521114956455263969920550184067578364422408914500140672385470382720687578245444633468597156002801112749675017212416109140290183871159082340971644707993247471058835484429073279223247583158468697579859391834115824224329304171725233064637673445738712574625411506153162854434223964038994651840351068212749481077981325385133056719936344071530635049029207320327844463946032083076901839773945033822756737769405361411092703829659251448850754898375287183076182701047556205189187896915476309094201319734602106964656619640259058977730340368574145188353317856052640428985294259569922385241437243413192713042686914965023742686502936940857493112633604793037116089073624705793308551954386459935170439603797140093152575476040816987212963339467535030488452408565415845824481421030758688999513333088353247692675764960062877200328945576670591539573425515492595494417702056022778886201436390530704419292736057376993242063564569574490014617249090163523563773839532353101011647302121296583851576516338320147342106169917819900476426141564622714734803807941475341060293522518703148782450142140733395502944035510713721532920760156244412401207404071467515683619554640140398670560333943410841858862606983085934543238250184743268532852638329445163624321037596424521317383440315900457100662958270046870783384908261446363229663291385442320432395265171009361282728517335382977186156285275458923773218820413152564421254711898543502544219622780951930085033355690011519720608109632371918254589347171355206705206420730369720774746244915816021788959912250673168482780613626740961748383807992542241940167384892788938757349493541312403842180580127115094874530216499258599735450862332440693041193394203100206011861924594148896597068059310485697044165696321492931291694988369585506534522280957272411717104417128527481149782588156746615328429548318868370043966057181257656145843318642288190427795636152504504470025643702078825311171016264867145702464461578229624395749465694988579760063826842476376310480735795634659077366663240145464907590888814790928264333422008683048006090619868648045947440273452638037940252693184813862975546263825957213905027744078642411372568155252232403803116647494365265074104662742804071674024677791413998371216286967541990920995282083036613128831307766414209370497433049090659851243217636777139116622909362467785129364882117490233471264295998287857248513955171717647924381725218803565966794629407724448623187026187960930976980114181511016787601493606357966758319950061839232281320972599389929608730271760511035736217321260560488515544573007485120414821679199986133147493223641566416775902605763744081323044377162801910912577199062006424618065795807093460638425789698942755105218887864253624423402364983809435804205370534202594140415301775135184907627014457093693661546422623439427446718199715796165106738383596475830524059241556996313622345373963623520530516336954899885189914587158956657030824600706540002700924472419434621742004727230505222519133502139875728809673385686985350344287755899115886650946660430055001755311973685911788546595410803245184884355250688368617007959768247502498765587301681121791292459847510641523672318118506719853649424381637800600058568982456149690004912881076780559823812816129138692625824030925823426956435886171284503583616479392297692843036932870807501558991169665243739732895654214967676225131480357799767587083624745013695522175389315677718711393566945008871963521450381594909868571374508372749955534300904579498568151222294290010223986164647365464087721245812281292935139458582890667263737355122634760749282425817268465897991528105680717332683150144487234346801640073025923394168210272316720812806351881879270797874579138137191263082993255516805658559418479902735423322598177058351297307674693099845179856609862221258802744361812932575013365588626705946752980256702910251040996285802142597085332074434420866437821746108919525681494575379465434172686446168065600860655114442431602055969796025351596728693474534290540264833232221470955929866718886214499410635480879561788534923886096635624021528045810179575612071646095320888102740791027698287305181314160030525195513605759774440585193026687752795491433942249400214230734695391153362474413204104053512329170875957156987407072884878960083427178945501096653411354760722090217285293338802730923948112911672214421444055350357999280853308667978480110771140955800689314376398268682621956013105428661796519477908105058314826039104253357147218076677577532100141418871526133563151972156922968621238281879735512428812166406041316524264542938732908725389768685805962184642463474831129207021383960892905735312311141539545527561420542135012027583546977310671510964081344964778980306850257331037845536370859111783507251802112859092747662934136559619673760208328878735562213586528298543071957809529638129161198720286764162884912102197716836450216301700271733534529267475661538536948193746856958827498124913958930714078690385177718511173463780318393395393612956787947665055458868056457581270873567203988034135910599714302137373887273862725860262003456219939958705560335800864102418262850745952744795531696982880933014813883830511270984802308644545245838168385737924925973973633908052258683826973498979030229908770665612803292481701477586790147560298993014635599865986023419565715712857162281072651509407920363059204585382622177630664888269083115704620062717510092852770677620240410464260708979824501066732898939736692493294791487751942406216440111852544400581266908705775482791136313496099075567355768407585689319061783515232726761106067957303744533897420236935514133002563349322260863549416610592687601841637591219315847374859162049897523694801740159282351040291904353273694959608301255022370058848688919576686085967229011164890009809149288148889000341226351154194237984898098479288107528015790928198496321386925280773825530421197553625061826722232929682770171440046149432811036808165444848855081414372218026131828864707306832751881982639512854316215278285978883231415058077632524436800823100490879460649345746296162389525770230102419970496151772770929953694680937700551130167038096708704793072224900330763643252751443466145573310155549589651736299264475613116904702169494371754814773895676736891192835973590676192977442093598061766485034197134824703673780685605419323774493905393502226721071639523375847329222701713373051663028435433220226897856527849287545517577902203365892529140457701691968407490252974561367346085747237220518407110494251897813407402410479972660424551338067923779674618139549188906034427078175419275050077339920256096751478546057399249841324835861245587104302280151075435045276669694063828678037282026559504907268858898461863023103543594637980629216963123711090358844758126165814487031428919748127943810061102560658635848665918583494059217564261290541192621918404859885951822605814258352782694120816072331762582186361456102351928213317386755795327976582161009465441934488822065802555016880546967729399833646971857262970790032094361720108156797726484291754656306002906768671114287752361274557768626528397437861600622909336566971919596235960314399318481911515341323446198895483768777575597829826622562350531440388104377232264177101571344638076046225917064552945764501748075280393193855295979147100999469574703602290430080809147534270582122933269047118410053402672748705902442433969649782226999287472357583761854342983197341990182908068554588328980727348088825329639728530208629967509435117602022902780747385802754570265541403705534267743961076136185225272183599245775296347749260352156221143512587552968004594925329841428559955665533051043753864522222424342427963802591074455392677733054884103213306574840335017825976206519520309069968254171285050899350933267769872205091450548038868533024409992455307619522741247521456794939800069604312123624335626410234814397631985846006763987881850420113584452920881438988448141439346879569064884759892082348618496306977092673252721073632718570986888457715883103422975578697011559818973143821946151228792786757531354168697221842848401844744338312450246702133394292699994453310167228506841472473052569307376202560968298335128136889949130653726992834831369690804836765968490970524765776824151555573442025317488105969783688997878909660774888858005820305050651411631878405787178367364037960186085595930393150426117238544814408821840488259699715128320984306243994453198655571218018881576855315578189748366842511298587053856327869490191026128562557530399034316777703079404497057903529306087688374372911563249331490958038897170619468918196504395164571238033077351739761748493459691757376627776809177642544217511114416329364592116355120924044053406430204682817049915291537974807536059101593625435317933237276385350297383938151705797369335113548916522276556899819378639650717171504034883420219005370668837742280102540465950376383294162143226889546971672487770890503631797742619576844374622367692625049133830840347861241248462788652941566703133883425888861932474153931821671383153851241518920887237772814981192814566810309015400615567338589573332383851347903943076801096249204232447849674631478341251736903998924096116667566608272946265434984570363676859596606743992759773133001563019165360243942709545217645907882458584706580024787076266832506903118545230767645266904302908394075052591925283343490507657474937530236988642706751949890729839026068272148294554818653773452341675668881172389308184344591239551906804837013063709450578837659657291869116384042045035463286838516498470004357816842374214570946935875635656357380873269450448161994602000363706729603534996303159760385809889973539350942158153284127814878994461401599916265550091039993161856016684113906503653259117788045682432911588280188488088697177761244389279039872388260420986186895081156441708348592694309295956695946208874874489623516135495344008535156902840662675065751411778557966617250427076081409254772760901678003242798469694735327259978987493747954196316038573099518105342828239327445707211541160560214658460938539890489796685664048453066154640700093677592136579957911589299752073578659418688382013224891538547799229534695993757957276883431430924364125515285539214414225134820627577804473978484380192238861460659814400444843630085687704911779325671161389984062199376701169988478075770602315157328870339827315863565447746700426067608824825727887040176774069782498924695113506071076922136091430042713911547181357523768815757548160319650567928849151273987573862423612651460721977994257703117132802873553162253166946717150938925659970255327818889637904779429899789360292196666627248360098067275655026067504114665283452772916140864601766414046498183814585839587696776892664045139826981771977850345997432138578146743837249998035055993810747424347697602509470759218590747135869366519840635527543188649107290192630175235511631670037412274030650847177714486133689997840295300829649323991358898663086349346426140198136436016971106688976737885624379351126472902851607247193719127373281433482822731412055744299008227708490587906934980313481056613966776813916543354979572036521564308790627368218872125575381243460797621864462426586863705850477566322311033541768746079691888002116181405929353300261746700979835837640260817157347453908385092363238327835406182526067601070624351325268124473857725722685021284409213677288409812978069358475818002063284159159211344204441089008613295951108756779981885966062284674238740210103406067746793557515441039173438547703253192142569370552711931246957545750320003767868309757250938773723646553683792207257833566324099533162012998461649422886862791076153377320243683464748692261734464243997552394183107296067904638347349373770312125715803520901202439039375553279497578671941761516807492723571211370164571958615919408542012742847635970278227050359201649024940091568681499932638983490900041895343486695511457501922212280057939837889227387859394057408912565847547251771374437826428702750057393534833683389976220683119924881751063658321901539746404749875196356117191724415865967067879911465793222545059902048325922119748060620370436983653441990549440159845689953500039043238420945301922201844608294628850462899760714608601288055688284861387024306430859288289439186461469641136421016968853651225082526174312784631711552821351631779477490450451805238933167307483597571122900818904100483565507381366163628566284973486216968242852330206280797109282816928520876454949105306732911456715777033880193843919272985596405607331646030836690789584460328488637506982847993434013632385676229201061863976398752011467456342528481200586755164135627766814789147275928848944373806144914708305022800547454428262775050350315901525610521475671341065295446732185624555641322094649209264068957735295953370087817366063684199666076557116163000657222810896114190898040935999786921666312612539721924239036624824683502801977773553114259384790661190682072582712972862745870196435296611210547377214494724366294571599869813027562793495386101640266320840236986729257478709438283750346184780757390500960924295637603042743784529435451404682413334842421773088543316023833006456601532295678768527238761488817770629369039031897201404778712514789992942433526082895954479127669761646625121262021230529579861112627296720944715256447033064775197306028047171891881363920982001774633128899044069718815139418529172969908170498290148544494626004860795772635865870354760191240820687554923470734634746769491669294603325012839559012615374062295725282958159588496669496575694769714806487866282278136339432681216291399033853094277258335991254446757746412719110561213453941735600978422011409539546655911361373870297002929289726909308331357337867654482413356430973039078999664681415841963260288816885428645072077296618866291326945339208555547538730838278526402497139662718667724493100540016719639077785951362476041828567321794638862567959737196600283624207792172107848930995357574308231416836596500079003649255488236898686015179645033281135167840046241283172141033249589732758028792386817282686201652093022981775760245914528332755300371126135447727007965584806933046040263138922057072070536198906944170749103929485515365089963028263853658202102752296268303213050166218552178672336772097960256028679726647786314780976434917792154523530198491656114713459301183170144093346584352311135616067324444639417926877984905008741972251414263666537125192011860820672924387685505684967345588939734202479942426433585475223605946474874024280259177442361220857494282416644409893559216297022701684406847387320264571123690206429206072281220319851666678691990709167577958817553381999543662211348167129604311762998699534172601418914681906906765852769350313651149254669594109469041306581284622596338788821115100934135832995865095451716074918370282461840006124678122976989620322903283344877334942998279111135017500661380643084687532711495155236073743598663599087925460501828818317373410124098157372402869957267022384332983134962803817588418802252542124698281605047929849274342252883175288360452106941228322277749403023844284099218350668880705657255534728631104931838119836717317769055377225847551337851995295933367760204375124178051844484506205822060451025400308378757283230359323089709023352023347315294094688390425639324707609863569478347441962521044181335465782637321344278179467261663261836641183170369707720725936331755773905654505546370256821223599736046971263206342922818419774096205008442935167792342763342659396709661030033447573432195579092680798804893507566975714664139087415254280256321892422023830088122365323013780589547443012942208657702360710403224074389210543667614832527984202593825997274189728426693148631480027544913550449300733782078558085657786777478781227336158357535544643755550481265140288306929059387632311797164552616420756532319985790969454245385803264879693203721856082261037673177762708504559781199156223781654913759709562500730082056457329610559947462996484652911974069121880647052556526662322308356245721700417725348972357823559340562342988066677637178502891821309685427704565804370500254344146205582329850911573687716377952102671134479686149496197981524614614644502177407937315333663991840162047096215993225790713640293487879578630963276715576264720691741260582130977872131415852134641081455565516981228543972737574957824408251117980702859852118482035684449965255064861208148172868403808423751349575667672237472000020382428604625068116767119468724349265677127913825914485411398168326698381154403615576114613384058393921426694931592376984706848403316380745780363743040175768977220943824910562488470424817441836908159939603067265648478484534952446995309010423074572083855589432538712045280203805882460675173982132863286538629992822673998560623578050966068219115528784411006603564361108683774001109731959391048652944789633011278935138505518494932232239341534725100746630136192594502028967371777590177643564662307487771127987443155460974688968000148804990619813554634287349783670312510503842662504070222148614538152210166706453127010417519681628969382988789713396580558457642235361100858308987007242658621658132965763683782043828108723465273162794064722037180059552446762460678854501658938307238222708187577690985422624442512292736638665644137855236363993284466776536186816912921999418335401829575693306330241176094093688739012681710021363017692516103508666677294373423059289745104779498786043608333544431651013222809991294214855233649979887369562369069562570000580546398869847790112083943115077268250741736237529838988239043990531803073151509672819264357858191377669749019179478859778236347317561337173730961292886117211122228601094352751060070595825899707565733855120203729553614634140253067662969445002138121516133526583284503800216130557426949950751889397657627489889492761696377307411995971661530051178104782422352972518143575281182463865844110153887155470360641425455484206042390802495155416747407743749114379190303123616508522080819909358982735612771051710365040490646381010935208801774754141279280881107978736245681748517555822165265021053090158268680673355124179001081336025203472974111721855031802673505547402373873649286662175314576079280286502294284998115665072982887361015766528556072954631294721072808211656995085559423327204600927768025660769948814431278700933146705765756798407865809355208815238782062811586975577126957336814610862266666391768350130989404569450938981924994671964490429637792091575416396070514868045562445204324137863631370291667529027652419580128295532011262228005696653018935143297003549518726294831120908206659186049878487920803119608606286385674155969064220170326851688508330352843335945486587974579528960534489322885480901516961599344860902833981200083433692228228142798224341074046660897833407209523595059288785177298320892380858080825809569714195224457527288361419757635981596356550530487775129405634107274641552753043050563297628776096484145399353581768304916030531394164039587598969187427751016322545366262467813138491844428725920688688428246829426706287947302121811684646585646197213133989004867581208327028502423915872702168889652583145756965838901625594997328835408017276377136525343182958128165972376286754875942953203592710094337337113164029193908398537432740613526278746088627719725570541206847400985092185036320602901375600355104120612907264754338206264168407148272811288616224823675060512996841296696876737471569355490742284533412375210607089159468969335352019126540229815342789398475938904951271018752628668750134143548684248181170588457719304075974609877650148829388551911485724616121328642864821427453888248583368932654995279350699793696687063037365246323349289257427969493913158592341584717640288802153152110989330954990005616725263502276544859354419130667824664315025712570694107472134848450236019861922507979787499389378367783237854625623146374421301510203725839255140389299204529156003037014580955896076586286545723300942680189759543313747231768104139126229485955249847136800227763846102967418796538433613703539230730770479912203863858075788728510869754502053914849438210871915561030580517519144870491614757587886498235582002966913486266165784988201102275152594403306746865034215353912999952178795502370715994237757779049106114958481729968865905208733087553106418781570848925606374342586844088365525834267115560878193474806049192351683609050285916829374370238220659760478926940640316034723321443451140883362677675474276908799942980469547509964520819557200235724913497049594745444074945097340771611585997109165849597525689932664676697994311128135179674233408489687227339989012725235592847761802556484742516622993022124055920984306170930071027797607280723819248519037937258729721025488149392674826290374446904716954439377950382216824757939781185603327395122893918473717484667145841227915950068675538225149719917867849206967107079947976379061467780078802450648309533381598262798488610408834389879540906994776065054409967175726155600700665426065492807857918004840356548925718914060617005787297729513116436041647146591174612772732777241827756371537875612406944348707303856547022990690345862530489488296988533642202953378326765205221567769991110230710969011957198980619368599925366202435468723676436585869369231130478988745100384434106356714056446924174879546748735728717286568258980302312149050130470403169095907468483635568819023205335109938686134074914905966285248275380901543520872667908152155165641664167966588041034478464029440574911091090591764201136710991775306578914995914675960074327927656424509852628567619409593972501161111774668466247441929002466931785246660206890651010194571763025117359546058709922747566466373169609239623357404870365363710682185208233672985791308543917611546376532918112120806603321512121507748885217179815936768940366920240743746806379762251816300031150809908452407372044914475553695014404920941601196960676124156317011440965322692327219077181897881302191530615807604098589464973790290199512484057494219355819155353416431257582757960266392608507179885630933619889790982367893028595849410066246584120034460118387012179791481932931558567527841450662370184337102093421698800547647564291635359053465458531649708423668402032256387519377867757045026349130292154282832498365894322828794944755700332556298357910963817536162816963792979444231634383257503798557559641141420735821859924625399982766568867079807211261352212624708592935115560102136391711268959367333973297781333631410927813764586483955484610353830542327426645396851679678769346427077728242953580283183178802055013289546151460896414301860857303929755197376173662357386760322326152938087835707167352561033733164316417051529786022913990770849318598163553256528227746960460298314372825928509176808118416629427690818845697248038566573236172138680474380702340422016028055575632858352214789376053102419484485701527157973445187533225525010078497187424163047889966012874916050545615240383586038496367406517991512235226350670652619655430676068539375892753350697080606126955821191633253387236697409782984482910142178144343723475812262417113320408030712470296913927014359283925214265463013434982546742750392453174356056144635833490187361713822985330872652032382456401323509970523494986942659422270157007755543202030131428433777328992245657741103260737963531578484732183660244261884406198311165203509412783419226065011794834855751507115311083749388612194624222955918551245717823976068433834575523539986370950851902308653219838491718217338187660535692965032832008567702899964875958759382123339703601085184743018775402637847198537528862109216664578947062228311025162547246641753698228249251756668357618921977831032345078274009943733661360316094328051616878963448448216369873656480460005539654365568021881373857502904257744196859631800038222735005089493552523336230474180719079778194433136921109101768052959291856579398407242618551592775927025369912874074173604148013444445760993947514007328280916985395157761862739347646438120498046923845544640408261339285417643174856245952076529506750660498023936134227612627392475051536664311170477037404363044468508144427213596057494326796592083167521962428960635591379115812738505162092169453272100472938266601860597082213294062360404279343213680832787085233078172376744947318710117949293919077106023340021975934822357763967435758978797033507882895464040087919554802252222576211439223066771444927301658978443723722192672441363165753660979624175670133641642907267455943915207495454001636704148970733087224140760837130660533569598456418967445209496419589963742000307636240272049226544445136323705948780298698184869440833994191690973431580002516475161000342571753364675393132680705749124630584164360566344590019600534510041721132270914935293544387264748342246456445325065360386525098879688877671123434894634950101253645834387225606704344025173468288544739648469620777938378957921842922583076314952168559292136548898581363986259275466926976220332625063964107351595855517612859728161508914196726939524361782268138801088814190786787982398678484042143843930410234363289473456507324850488689030154474470856185478324064208822152524077927048618737627429428247416396954444423860055163478174781066953790969822051890737324207451095322457869049063513487285751397090835419301258403169381305901921613958119345207825059952294498476148433402592498385006957512637156238930816630936064017025782079139319656080259226300858707948231915016028663338835028832100274669211708790127431689008118927993098272621721234705675775763656336237194265257255278035887651932132027806283477806652320975074801997155419935971138760550508288299297564843862146930407136110693907979893620718622892663501410489242459559171381695447162200792044332017578215217554684104312750346039173672625334510667252206090165086774323379479720123131125542561112802404223837032225003091062559571181600052499098851054976128311995310473235760783186151327061897976588377791142706672329203408842788086696617897308217576286545189780483842612343378884080188513649688477799611368506027546369135514331778289244655927169592983245885677533802533395712374241524507536795982116925265440384984796604011315772162632632344447417971917157099236187977252256242956535191164026590853272145509328483022223798781955749191796277768783252858772464112795567446923200818736072797237453259052259876664637201290010339613675960448206647804458274602650340689040521079062493521085662619372995871789164323642967261463949646717736942555900810672974235311719894720462320503766900583386176917109668950363888712455308041175850002814531016553623970759101486397301585491926752188593369601786668724542913459786799982183504933544061871268955440969186082898694637672322265428082176747143782823175014056622387653143165519774272035461091448642931847549425689997303495423003192961995200171286269036237255270181863785667910679709695555557186748992142394820111515642588699721212350144150616624534599344278331119543559509979042167985574880228723229484220191875050643146049609693906453289927737264732314598996559550557766847787402581783404225853734386947902763881528948617624410900270185622050644078809472976357932485629903898358059775973477882063529852922124324405294396038262756061375493421331497712460522114373966877114424052745818463274208160274123910383294864299682183320448710232172177189292303902778829706215157715907400232101798337278491305172829040634262636699311692358371797489792646620495428364908667351282249488648990403204343410124583487625278256018611770403046255708173494275168599202124860086197416073929193115705713882231224344661714821203140671020438264706332894015206816816938445309152145174799912261824666707403572203038537851366631148794438635758213363029046679614071821686895998313971452963680916053627124309399849026872925004436288361297695497236416918543440820582884080502691854553828368332068633586926519725863472278756193056186836389054430615297449831872999963664739505190487329608445351074888209761818631253704674678970965861150478846132777031702953811710638587555562890983915192783939468727581140606430713265846146765694406847556589428898450173440090728802848323463503627929702109786661495117121705223540501241700541585098729340532859018010984969865134254773542859593313614075159757610336041014170861213655705686147421258182598997379713354896619854408007888968851275777610282452430818420825252290696671720976900630992852475185107153328004487365785113226814610280888811419296928761028418023243467756001235868474235299660190279343108654777212513198539999321449229813946353717713913388684084420250662593273174798471509941329466767756794790064178682683396987329900005646501449812269500529836959032879928536537573792568862507271024467833384589606433973140123718564873824930570272236860081712074943940357022925192710947712254923231926758536982334355126716872167195358504335946889121134331522748621252919872545225161373938711177188325903832089137014115537256493597962008662693628331702343816188883813160981207729585829172598143992758277807660206670682626332875641317460741686065747797772068606380608645899608092960293172495671759501444510460877138985082368334738437667165211442081299974183445661247185251548225316320238667950667134849943607605109321205962277627993641920523656030649607070460830575111535042127830932518774187145284314817052967471361161579218600455036098427859728721520048127745061300584989388705244014160095779471375241112480301581448202056678629291731009868856379703583529198488487039936766889173061322385816494866553401101464084391199151770603395191835804320689476996382594363939444277364650861603283385766814724004347134225700558271403767688623216780719956408414864879784842863359415655658090590799811815692936700901877524753529219631034901205228696463581811883379567317805814642313513877225954978632030247694235144010033701526450091768881449895073906747683527469226870861000379391016669405893708012682678890930277651135810469754117341378863479227081561971771761421373174128835935405158524770171199681255204700547736123470374145877040659093824776032519930865377675045030667233361251874633654470356979236046420462904412847782469441146190074926694105992915002417422997262275966440133710689404566555733691083074389529929064591418529224740177035734454137224400639363563972874772897735700527598540128679337372652698392344936229139534870286365201149988588199305761709425801956752411991025297461888640226824155129056140240736652120098845439883724889661029292517466178351818407196772906360799075609139369167383480660423964519657644890778559976272316498856792212938081127463394562732670394687544624284317508890094396720815772866367769700866080069552587349636949163870003259621625026274481319277688979132146109996053779495621827458562208572673395058943580803762714419295112030393352012987540110167900852120617305653146627868248348738971526103512545430222353081627076611072450594178998239696216795088194113817113712443176598006594565308997836661509898369800472744515899868077559913166968141906896596895062021089188327766697901623652224723406099167913560463232810801203944768398012315230945804059646904242795975326022596437089763556212887777937087320672545718393837261976135473452847304749225447897919460833327736849839895686600854703023989162030484989584304640128781985345862318703394670684548875232310599628939373376848431715389928918055604040389879255040540756103961860458468444997113839509359900768558956677743458925052224136281347614559409982803353534899920683327943993291592997761486480750864217312365311185575220380295021737141262322759440457948239783428689871110571387626320555183661758618406409274932973087366980109232232803791714924802325456736111786667300602445798026279691766644078615611334762586929309196820632734758642040663996302407288722813588202855185691769646188284546049639167170032470113175728014542976525567003964049292283940043690587927579281146682209497435509885978939085090141925273182459215497405043042144929206524246341238250541030638479330120230308506872538759160999596249620701078701165444952525937607703929861664948028908873139244395373276442579208020014036540361966092383589043805145224271602039255633532818579730607493980220225607366789249329104959733648777755219693869225298257422968419976865554279722408717422751389692147531695675236127940121402292571701990474404898026029830131490154206129381578670270282285021239923824364989322346034724146696562790324718370058331086011223834673991689071043354171819591677510425574637837167770068795954933024101049732235223137549376508602708869337922451608910773019841181286225356122275116251933153498201646415594205369166681814551400637119927871417492975314685178559283010386694998121068083302887832104741307290223580307821732398447529469431119680160634194422174273504450064671514651390627236736368730294121285335506322520830024398372909005622608348845833512395403903191594727949022196358798153583717715738410885664809532662358897070180591263555436221935057582118449420839640836721529706579118564564502135272252893210373893806977727975914779167127711400303147315852972679452083611522495177595874184026372160551649571494433421544999174244651846675152277510368281820519874787277344278627008755039381512355353415318147563870779047888327739113169145551651786817066646226222801088249270664045742168489496533616802178809926467127971119773542920498180223961644715887471482806206947411635893653587407778536466072467561342140540086265577606109420167791155928638069768046073515356104207749645899092010297238270033061819603077917827511158860691589897800300667298721759598443629833722001711130554804076867597898416163947933637747974465232113459100816322971074602281805508147976416110513851673682189271325933474446172842353778678541649178412813417759006690090552827345900136419337992534812549871244379086842344074652222847539703295259015515610675483609977340674862683644130232844525046704250494837187964165259350902218753107471852570447251320084361315220278343801899334959620710155732711879600414750762088905138717315300088515359645544369630132994198168392484058681120619334352785805243670447118095736777353324914313969629292098721959396132560665094487644579345032221248296200457188660572424303030664302726829859645386926471928255318330993617579201687411012663761576684832437388306369875011156808399787952738999894018509707176566008804308737335659010121727030622261884954582371916268537794568812312275956635863995358430027942047146513188887392209358599352139948773722399921195503428047342090348614790234763611795208262961289681630462216212028684403698450655255252576820390566883993919174204498616396035102806544407654681552938863321783323870567097701792499035292093131014600617455731982380399317410689481477252217057644325504310284509958457182738816795121031650891430119878378099855646958662390839974873438777899057380541862413555087952026392865145124167984399986988052474053227495409305078879716987942170947136664567235743184519512809619896760940604233927085394018352210504983779267601517111818064178814778065992034248748619496576480423569827404657930555481566346188610214087611987133164946170418532896137733605288627524181572166947933460915229824467820381158661748807854892627516191955768410341175433414654526043010925099285383496658685204771066934848232115110032788410325781815801065758769761148838685342144922386316161023127690320702284647249338587428970841869895944309444387103581537127009845738006242349560735824436841202380482146005106310102962812149441064050728863228477204234347627324949862841939127034992374072420788032988709296500543946070674331489040154643293792535437233692002630970791529495495202532865998052250341664491003299362167937802113903284261748926141328257625813217694163763278628590585554258936935723164019639960884003285322341665763435911032325914878971443000391753897695717655335857595596075171314948039096392967425694795875975469622835105784157023270537668183751556484292957615939028831150976477994973464009605883829621197229205996008234024255433765248193726670437822486399541793836808328607399336094643186749425900562801967132387476274838291680797152296411660344939428063874308647572394430624398151794571760064529520436753104745610145165912757528752834153998295005570682163262995642087317485225846945500812608268526491262054645373770573372686598377135850058837981722933271573279776793785265637163888924914576692864095414471890877337294372071498538401981980101552706244937892345431541334888177402335601298447536521602961619021154128599534049056458558868276982220970152689274088910699555425146997090195407013946538493638087292330236095544975412415407757302591734188195292549098557647305301423504086124762440352125885303607378111794318345166157402937985499790210202488197320753506150662945015990172171459129719343662780170845987920472135719859773397954515462406122681407525961812851063599820457739248164519322264420684443114797975765630309525216852342888387759182535099244108671612379139020875537970312558799904405531522490812906451816612153251647490141820182348464336720353084490147022988126106841146117029701093261745141348613373102184469234977269884002020283876126335623916211824960731980271431088383884695056614238377015843759128042822640519449836432942884314142654394671701967837404299391885378009808679508199804633541386661677780569191329738876707747169653030613840584317505264274822522829326507242404973944399901053968177985374265239610081780399881365804179932745207734219691218128951366845071084687031199283732696937295789822931733913607075897376065436731368660767701621328130305284838768862052323594382133689343120826128514392707298930544531666985970952566510943124552614857184151102056024902336107326425764385445001406000953032383943461781002178917390098219998035806579489136132366650652332731856839502608771854397737404485920483007386134658928271426367268901671531436658358613457996032588286335294700146503091886101296878786614685997711186026432533490795364552955196540540207478865506446471090634738273981131572678635711015991010692330346962549570749728660681353177075457797898595165176862011871131249727304536793733749541958036821449983566389247466503211686834612407375130847721812014084170053140770505798727887947938098767263956816993228325459120503601077539640680955113301294062047712185678541033527684368151809507132664446373547110166084511186118517248098962415373993579683411839653849992613260239806347647834708298826217844515111998803536608195522721980845797444194564487671563460719659386035106530293303147453663977376842877077726617824749289685098416055779124993453856718932381438101273616688083709510527129046113219519453118844311139614649338258502616871146557202774694350666148996458030089798119829748523227851486935200100950386304642769093829067541885946735996535650946596761623168295673531606666694082476768852553543734119715656081376159282623709902097150204850885543220411997373710742577263977242381414299241781737578368108785092147966907982529951756136120222837142023266619192216201724634769248716656528131942472210371881279910194832452756837522519556833584288059220871873863421245042922294052756505824379538038342267630730835197256610084954499400088012718701794494184092735529187969530355826529160698398250728609433936622516599727542426576469052810998367027994273810115329825959600428217100008703779214556590020481572594930734181806936407285297462465694656897941594993616691371427193744021860813509948259579277171535914518787648462445151925175150564603304206452863160809976744477135257991703319590317846420677051455401284392659676472299118799016213553793479046482073381994282973352582255745545155215728985655753968403982729205318401814381347200723685494128214972309622225455300253277839922024204652313984999071836829997793568860777036927244448369406451098982864882015008817091961595144049261059636034023984676325878961466485851592301466987896210162202197722588477643656987485276990515201705632431694615800441705797376998860739308966070340161752488097586025688948988664847922187440766391902621183428720151156775317862097481898972469761558760465106334666428407627983154497689694848159792304199819007077197784249663553540379732235117874667471382755018396059823794012639198735721332722006684317024475188311457186051653131495719287375907424015953661037033533793559407526695088269700393769954632582638350993788075426008081704742672376187071681606391264466307941156017028830508418858717141719426472647342128728542177046332817301168278248146126689458569290054735199549933563861354066154893436236234214274495603142666525582850529839317982745378182645810578341300291290098483646652183783394880518020715987424106903075755773577618900939413726661984682732212413610514413162530032730961951665533458687255132472989141023753010878107924220742427426311949957014015821043337715411109095669206285349810571955202892982648996311979047086807980489110418796484417625439493350360745015066138738794695707421221009471714190703894677563661284446135907577321892368104535478233097153105235584782805674573458128993050461256743848260500384810585973149654471602558540652628598693581708476846761614939392157494676155688425481945056525603008957048341132776149052972595991231556609605494152880246791628186222513464746032384089209910449571979947702637754137261096714000391072381186633865939450932932447330160143611678140866177048482138883863912519818288387532398256093892469159808165832529991732337825836044483284522377070069415872623378237168091271000462443237264363467860463677582701870371845663895228885675681060972366806206110490264349393056173994999363086597079540600565054528624691182633852306440729830411369428905761815807467260024992185080969394088007989615318426334063693817013650221200412510067387344619491490655262245986880844003243014210508863351966264243921336529420470801108242951895340037881797368428247064653853733716183501868229363645708293631641519204740656847417462943589736978746934376933926864620254941900742450639146515908010131663024281737798254553633556157155281862881697888557198168506674823502526959379494742368818385706912973020991690648356560523055770771815388237202571423766917880080238999144891684967114326581666764067641714114381619244677157725835544697083499614374366280364961354711833854356169948563523928955299214893123777625959537414975935439931290420100790088078731471099942270283222126351503662684136313237590196423546814501358014414893696768740498229224918884080721859845828275654907359272104310685972392308435595053584889673686929671772953342131425136985169664197121509404278542089771007841838796519252717506814257239618242261569068767611814056741853210227009611080550186948060202315166050350465891951972327266694454233428966440119534080757636452230577633241961404838578879589214878330807304792725828967479280280305029775216063446411952568533634981491787505795798403911589253812940505991797194152047795787024561408833462382245375418580696675337144101261777849927822312725327303901371600669027878350917711239670077554271977482560019382460564678671982092142416921030153041241091820591339380936698763811180317622151776051257449050224641179596168125214893004225531596854125463158884454864220928528132899415797906113061917201968995284994048607679787012563259805040310879577120674302871466449802992404539816814488208368981034875176536884823600601099875910051024947781572266980741026441461001541234538823701269427552549990482545036314415507553787988195346238691210664659560654859786493755074160567446339027105044423871577297662773033969750263438157830033585470298854819425918387962791934327067783271914019669265037726932998344371472541023148631336741266608436034502457664055844706702589265289080107975776906847331444738811228511439725399607771103061497118167859884422854772491315596975660906423168843736321360458878795630065729107782780034653034895688459182988696676546780813452686165375087139933134334055853108326303613120288326568385951604203909266425383194427445502962006796332550361106636013177721936282382549399792409402107200971387259670562659934741460977879509591321031291451343168727090246619649503653896041501589126828739649630836144660834521062759370085996616402438846381484187629998318101427685528674240679767775912149397580477243868672575484882993970996980609063051023640513957175844452158973992305810882234893175857515457107831818337157271989299089833396351973133248982712639552048585635718516370093971515320634127943467807855669970936380586981845723212094642858997180535187851543671678105369180301421808050941090629031745584910980665321497900885610524964218954351850823643476746095584697851830064502673197596852194913364413595460908492933581598394721856199323863916715644022935107677911143461243319915359863831090901504538578969844531296227479303657411765530547223902555843083276898068727061696149445458969783768400422049592025442927295383899433736225923695885103150796034796659507255127137263482979619714592520243350183118617313882857906943036881543494671267767326555063187567823568860845509153798104486062042128152879718520564554793787436925506098817053554537739766465064290226378331869969214762290074733051722669282557085176958147571246188999766444303218640337619611192024771943639803413734769035215015528373025449196072839996365727453780606978264233233408023027649672077863725249652045288032574570178004588944048462096709160733650111332481419732099317295677574003483231841587395134524425567924824797722352047631070415757053213833818119417653165562310546987369495679372121806144903038236057081565740079566580342792633350769686951533200465804143218838983514165966372548529513151915147006715402458731214873435903689107548711586026239486382783866459420455375561824413051317700255602148791668491695781292906853902450616541116572064827856598827544398249948291788766773030564857570946987721833169720518247453083142616800391277504640000211613073485392248679869686003236424061759706121597389200093264107901601489400531906623104842045066304809973248837692291627009637274739070160034486737747762042200809514774081031050185412256541538206959421398177215527474135318131457272665508243027019936384724549059991147780247264576599401425828260361601196055799517351518317342149483640976816666563088567848860394627240848387553955906875514235081936709214315118341342678694625006279056644462047240840602693680885564542250192197421274548483180207770563618831788519837968378980038978379613369688428718287006211521521642450115637317875645815405742095174682082783774920627481704220073828097097428063734479028344441821190060647703940896193205976615860808474850203879339215971414299676221301556086190976235776917293118084717939905440883026678203531609687696871517173181010464366461194992287447341420640886438838020702495706179990733115345317125822126985266829739621321265521169833522730565525414964220163189853497554281244317314312009178267935321345729822780686901017188289736888400268272615860961287839801151002574953595348696756481356543219872138208437729139905440271710249050692780474659245350889610099604870730623864070252548989261821660822413034175544962303168645508274637481541887622004081103404012698018969671315170224506895334170477184188337744338524635263782334467088784575160732606892710777154683161769653291391545640200498920505444214876178288613170304318573331665093962687744023266729194239568450844020661251643906647159478617517917379457010765921509805055417237554508466715514034019704422463840235265251039046208148569660264449785842398288063130091015074102905367845621796142657496703558502979603386825385747417230781271927801330435072601634736808055907942788811075176241454705030919625573559730212151797873783540667813489946846941101599598027060567194990141095499947390970093888739753744819185655848779183952706509845001909001995370037860089526248906669300877337305194568881378941643385791325256415834768375200267838077268863509664881788591976851851385662545504260858496665233867740574938158708156079331560555600265704093210850241922174097605406522416077357287192132490053960838224226088659157315708439806074180250384064292087384658455426856197764915370158325969634959151606889926807349956619380609419319540375323904612464006499913682118570448952417701780140292836786990027140294002024322202445649355284382875535393592874222317286297714794569127701071697535186996910410032049304714542894485257625270631823614036670414359826771755175453135316071630144529905553534429592928409697446100962731791131601505020431153964033142913673740136304484316321693835467312405371426974467751109118554609452125187480573231095647323393012746501894428036773935806622772651491018889423825112050622707073650666794587672574351864054612441154114297430441734210206287554972815352403380147650437094498271346744321890136085161766878150298607073986575270985261843502813352853311416004977730365373063839118757497736940624837639322577225301563051248738305903238208935240123648869138386175125571084920898397991481522889888107224058370471289043075643738977606105584635307147344472567996751876139312454246128708903776026816774104347741597571385476846413468425531529326071691696892849285671975158960966645968832081294864243729919535460606028343711277660835873089946975214153883664621819205802298330011920845492174034465913736630194698006638583013084932994024383457274302523276294915176772360335008990494330716194474382323136986722965056699821980665236452718560279483820257148551987150367386204326303657741894665447178831153664789140519881958048997266191260976881656688407599764254997228220833330101757257996859477369175294788752554540729021524437837113541774841038977200627889347751196389205296445721313799951315374206797157197459598387089427476945228405872551865274293947058598579522671928166060176583633167231803338449730368005527484733150096602176780932681900634130451508450157644126613833084104379427056091659100168694852774469949011066081257516541975589610285118491251459345689579194548293969202055751769775788968147655212453550028797406094285315969008350853631923097729765639771542054546080369333468164847240765336423748910601842295003268928603308480053150154741625515559360776816017514708059892563238177448629225583644165719094359084869718696237338780726940106987774582597714074569574051369463974477903157544533865723813634445076367894960463903155280603238841065742567542826514643271095981129202417927673599996394045458736898560562548081957505289234840123808842022758138028317408259590557242960938924793531766880663039039289329140556754444182815304676260373081426099337412580002165699504490834395825187431251012461604861525002213379637202604039681187355839182739387244686917623514013521328180108654954080298104279579005518371043056116460478908236053770641826934322889340935534264428169307976336101333954951122031812692303361026259517685319510818734773951258342050174693771670755198000212658421675453492445792969474668563991179492952361635170799012802252185120828645044162040966731833552910733088346746510885388320657239209327061273208310405247008948441718176445239709579975112713655208065782641902494953865867597670780712327461493690689697788159798827779557253311609499836532808722853642341335278248838461402246860427216904184234014255749218431130855698771311457010557308147075201749107420837005852497505327432973990166881060954046341539401567121836831719746606514528035479387866346485348788033190099859653163676752605678118280855189072248553559142689773554368058656165856957691856319263501255410857557094225389662957039554684711888619814301791012059111823215962051401648553166307733860947912434658288625957992997587106280982009457960940297112658532629288469747902480451392179295151910627768012373668452432673183303682527174702848582872779002206950649066547306717835859570171172414887314012081838310145097358513921566896856007954244818317692702091434489122775156848663636996104193709459840625273553094311974182409029443892134067359143735185298452571029989334516279552648547656389840073219727142365352372340931991926410987498352265312873634537969187660634478435734101287894482122323536778130231143675065247611640329371675872638278177645537454542166682728270108872616908244555604613514642310063461743024038247964678215455872762629304775047651516264327328504880004530305843182765641594865631893722406589382161644964149391573477802266266837290506218961273437018998848869075356460775208978593709713943620381965696845204052487769935856859364724505646701043365517380655893088350653321266648830914637763736405311373712034248235462750990373919954912821049630948137541795283398770370292333421109694702826315999823446102921280023420525463937774827955885105637768201813426011788004581959691738836061068283508450522650375836020017374413066936201724547389349432000544608217833693759157356970861455884439452900765620648179450592016655301803195756278965314046984303322161942434930060273815397216315750838502054381941276229432089368656129555668826823043484774749176075262578559222110026049539408426386738715256967716274146557528752130846054136772060885303052912504960701584237686503075690560309828235133142580242167014498917989134692960164691055484479260485092149304769423750065266559368447428408934701219788625588633765803183472838848977672799555112549121428681926207622604027306042759410187659626258802971310913855726661411887259176257879093324396492642742126066140311036923655093943260987197885777682577865334931499199988654319850967482426395331276874938087252756991874403254014898093926271630260094756228500293514318742928665815118128944970875944894161695448323171160575305668124199006516282871839689641567336729655760622761358459433665979489745656065318936205908696973275100573889481043105998965368986939260608271357701543296450092346626084740164497569016154054525560107015972818088991280783950843377978046253947921028922505223869193231756901214691474212114466881943626180212281962005768188467450358965693677335196062907974957294620548682737560677753167720845745496789128557696170136658916930109340254951161142957127563103699391372189417259847209354823616098170335772097843158368692081392423197054198161778129419335122950785709513839822333456457530387938899373285635883835337903972617376512225379494369963941176525509732258018072815365554201422613037874028238259127478530035729040962819804176288042469058147469021633307178453616286661435666965983482264968049274077380047753896906913634412957331014682030521270694577439562485131267676298655792357369195737706250513288261239700954018649564946141491952746500250425614466476583909147010519862123343036042362864598401871139396909493899723388740591060623296708323533426674284590783755263040468164376390762439461924380963314218516891643526865867242421803489841371344300580244607129147917457469774406995798361236778771300272391076555020476437694176621647522474611999430315595284981428940084563362934197898265902183774038284680167830344039739494538738247254728055851716694715150854369472289621869630960002755327584914848897811093293736663608202772590910655611942299415322480588130048752743815813490360582509554306464673182861544956672666892873290295720733692345655410351294755434726914913241080586192748788484508434765981548838895786291068396020318861912214799726224907727261547663452678903533788480972517804577680936064680101781365915192760828539699066529045415860004556886401759707450505108182433258597036436845492944186207834852509871892590810939510474655971715482953077209466664320522387178363508079596312019623025288755115463626868207065667336678668695927607326407845791068846030995331580131065934358853586618978984063498769061914750770327477180113882139134414856986335423162290932802388752848920903136231316618394839187403991686955380816626038271313478333928465785977861775671383089930372896776495094332172186898319320872001699597898802173981359927685774340650725921072915027130863399887876318070698735739340752546856587921390232761492204445248877436158263869977444496755098067450084920943497935173111530428057347746465876910955698241455576817806417090960962958171747178921346202933107779892514241086802778381783101189454031907215871423458477862906010638455753901357209335456133999564549168980857792750466499626661474656282217648352263676273567917935122344351062779479523936417290914953731062598472510583605251011511933007996020739584171160135006820442905655114597163853657000959921938682304392038795032320924178455198757372905835405951833031758129976264030140794366337546570370089518806957618889652440342058067408153339972860727310432571948368713361126996650419085127939136449097090661750589549688287822856487763326592573768803979836685416502584840140012945067856393837950738950824605850641836201074279711956342210821075511027100945712195216809244813898712857743856790922101108288277038006394084334109020787854836614355642256471715690037506978508150124516890363044641744973250691201565630943300611720974694965552431787406049876905152109418917858931413046016572162938987817900646427213826363299082292967296748853841137179528042055854005918438238429514873293630953531891254538756562177468753587405571457300032352141892142679537781527844501218624808587222447925096918401297206483132666766648502598292763799162953145135661864556922212613660058004973227578561103198962636784483946907898024581485780944150491561336642447527620697600703400295170711539774802077113776973617256994153468685697432823255429987888192105263457517072981709295990944280998350270008629507979743997237388543001675868138268926809940649838534401063951557244126306133966615203936485110551377762302707242500392454082748884356152804768281259640666658392851584335761948643129816296447117114275215888382894035613004975653749431431364080713635577770822831758924682276893348336854345114910884510007095496677932734176860339858329314425187866712569315699405091739750277695647184720599865458936093788291943553216460448531501954881633035933447039843753405156862319585058586524444116392046081209647957497614995076704356822914567571560147051381626538914152559241260461171272593801510862734460304016621262216724192185463570942853334724051751104572132698597177043548525203494395107043724287201138766658089412924212432113983458939077104925022354523378023570433201413313286561985194881289561275694368981697729695210075978713420458917992477041329896429325009198186103497185897248014903894888392465126443712779411516597452290270327251717674275347544269772007895794868762356367764281975933002138538500981875472454753081379112099804007654075857766245495075321834743241974185061385834344662333330063763220706241610434394522681350213312220545028011953047995288446555400841960088359003613632714228355910496770934303734702981621223054993863801008336017526951764600984331638291587225743341915720368601001884383472423526954711190614962715706860365440540605510163591635302648588670672559838102352505893143257103590477697651292136886261320290939837573936729786432194972033912702846661216231578978422109386368181804101434128433524636751789680131878602304857782250766430048665436263820909369931531973902216930770999161324393014252018372475143803542383083816512128355996426531070843347971960677321282351695881726699621837044587760724301857048161231490136351800022680259603767042715791791528110609689922233960138217711796233075284898809436334186247951993304267102064069383843524485457950058326271917002766049002109053253543148712783181695655962681650018742248596710393605125777524874298249188221388743907412920678614157158331869102038537661495413852352080497931980831656926116991371712672268629215916791547065444883145256187778639244091974663845117621282794484087614819857059625075200691252615770070231063618016563719065083947325676049615337919963596466631170084193955694017629949506211080654428744245484132450543672162190586404822880838131875702811874018499787176937335334706776138155158083387858315853254324539636074936504915924623531592474788989471219638395524957431945011526493941837560663277090716734710868855028711857920217903677981018400420543543753020518254071823298298311611005050806049337541087084821937804045331228025494868854947866680824529799611374805205097079885289787189294180735055884435177700324871132244975506950224798354434588360867517411650164135956455406733788052650069351401977407941318274347952302266606556427726648009980423111851722837170439800041635007503088666272215500613872242950877633412416851396630783908188952098257537923922531452312614765288550666915841682589509127270515672442559809321115898216653963029497765658617223416430392603427247066760823392702333631697037860054024877380189466952719245578301664208955124646240543954155800990336551919017010950157823008425077653833267014140653446539113967593117674479419574803903355786140575004274871498270334653029709028938723729227508352855338491354546303170562067494367590729237807444175211624386206691816983775782496119216743163248321954522992122487349711336122392041885342362425644945298498662286388862044715472048251761449460269363236778717652392658830714992537997973430425482534094957427625385848989054412865171791366775382964611211890297941687914377990103005290267091313343727775030875035389444577318097096478396049711732656793196678661132276231230149076496677248298357196816781577976297758216893247972869844009958038391831741754532833046124394910350224381342302801228108470167127471204542734273849010977161619205188091854800422967221549367234870654518355158895745520560670383701561912312771918649803852945783338176873264840971729548944098121834039930945127491444643759198715370347915278968366348073076745944596003641472387228921205426787820331846656438594913072702657193983901878079682443120402136356004050288270017115030602986563690464528670940719328695383809666709744129025359987019830275240643074680649827992536933805621086068620961871503373196949751272163776266835492244876223191194682585297519971806774353822443614566026473082229575433574647180866629956818236501009947712433213921370283742181123036371903181454653665731772713018110364940649488278762394321597410658548284054420885991715461496849469192585615487123777719372740836999942509793763864287979410260878033138409481980214913582514032374624612802937042785019547439353752772981186207014215483357171283887150311710234295787714462331840766872991983958306506977280691087073532343916535513048103054202059617379935649496704832135625249044014730447003070260074271463476921801653446702706181333901662472423850908727025089951694244911492313140390318112984518927149594961446458947683620862509092150241698602949265614906334156265020105815195349468505525520493112225433808466583560973631526995639743107358496094141961916445610038257985400619143864459303951159713251194154978547448568353061830444109855419990351414361149729026490967263032601241977737385071162822173934694749215470169649177000709879244381940557025117963227019005072026310601837588873631554838422714132612578227820788034673271574982145925428882481895057918999268812606557672107412019314632334200699428714715909058393987493183329385363710546666753702835181449120245969682279810073242661366144454677975614986437958164222036313587498219165038416911597906386227533958105870108247503021828369573392927194939896939504847850450679525426930916786224373626686668279655608703583600188000425328869058080442448448018151108782540716868517854752049164626791242955006248306227570553530424299132649290358204921805109543322078977108342980927934459009613453863234400038784345375506655899157870450382293724396234649137467907583643131748680288414991756547436412672149239025018437758151989488046703955694291352093954034422321803957231518879736151406176124112000743255538495622423383320482190628269214546115962028751875494187358546796985932616158005794850698798425992711319122266781181072078279502598005321701152401287316155082651301715051822389987229448412258619113967593422481763100197221661351001541774536461509967536399901530561877128590900932257560541554678605632394426402789770042624556606737917827068695396838663336352982966702515690190784165351752448908515361595674513287528381019755222132510226830776329595339700259843552875197006567098825600584759952400383500603057791171539054505765326102304711030693127474834687443559151106788050542481246819529764912548787661055265612836305414671998601746696806914547014280087587958784874822380123939287225887888189750456483658897477707656279096240836548288798777640934592382995944356996893852793616913297525146664669896624778419841009959925866175205180133751791468423848261559559135137981532566359836247650370513318253829007348818502598092482984713972415159863358493348019624288995002099260485713836986680355355921070357972587490060139674319538264773708770145168175451584316504331891963474681949751968229064852577771229065435866128331014013022247668296175232953934203072717922957159081701396610563695772611385569645124116797037016117874058162121574776320644419416514463550841189620049770049575579573679862503796635946739134186016394937456961445204865497113822999753782621035780785143404419115631111651132794230432473651675530091316623109029514485538350469933641936657501012943078876159035890634530151822174783591901813553159467078374377264090210218397628525163327631469029076174475621167169684142986247925660246851174737106352182015603187536537048928438903742036286548535444176542111908822698178278707154961900650468880531946137308133616775585508962158057587226224137001609375604698195562872208642624273502662847317182023885567132990508364325059419643920011824789115751471886737818897623803552393249739481255154157595987565409093279826763582629119702181028786296969071488529740362355136993810265591268978069005566657098547611060814239899354407703457655982503204136792278181921073858800026209711312655708274914838625749873472045311977407886451705449744630734881804183836918516350032528391240767291815122458119714167456763631554472995297830935975473792051222724132792556767815172725355765063607726683173875261859793672205354972139681321136489527506647473392186206623815173412080072665295167124541717515827760627381025709816344362773931268047903540946055735938000938040974667781955569802893434665053151879675301558486178575521790668871871529475873988434964479243763986153381393958490794791667163353532477226106984922336537943985996693147394397964195708891330549003298640874116940101967907175722311036206614467872012125150443091256283155019312975260313222031253536662481123786923386024187002225896837891173860280401482333358245492070682744534907836215070718018444943654414648256134021817017923381938064342933640539440359344057672962636724989545452782945906413022503319497482886671115851558977603183651268227688799379488778402046883610355622618594150512990384797269011348055589558953142971533371597840178606515588678083801767954064629627346798148735579876421952749449807054785870506330843611854122510861203724714896126399343214731154623718506039061943990426606394610930345348315114091270315891134313908516442421971274180368980917414561641356710081607397577952046391964412103929862412373512377848755820238325631876666495181765271677834949993095451258376555461998908229640112330347618633305114561086918691133109266900148249113973626549634897460702955512391559646273950770114859980297575493320491463011193453947344561080835698893935122804443843794541014963349913306423123491539138512229704606216598489451800299241545610994896278464066223310909550733054487878564100584398243515098855218583749005452818421257847304156014895493868860387944058227530699552890869708276035033172176562162645944009378710390076835053377387787394168450614857216933969215346294137267437021625293870794115735256083637566136377792002247063899365068624273227944667717260750699600438255225090072162928637793993983463299390574637254093794527803867134025609788255811395690015189847817607904634505657692056713552838856910596704734272871564125703040340533456461507980877407014367501435320583505232194043545196098529308696622835549058167555156914889261628693501099701910177058800796608252816879651372699660696802110708933030869871951909763027359914095052222758139030732557071597303027900550605892585796150991891204760945023974919403159292334482675062516626530962626489153343422076402013847177929472179013391327263168588810308594710644115532935326382564396434018824562199639936100409156408480651312907934842844915362366293979726077056247739066880131200706642670499913800970432038803136408559525377328503318383418249024710882046110818923214821605378888325383301267935031468315597979520717019525297849385093404824635148442315239876510980463694934814460876238687304027812691781882900126093099645405063169245394956077912217496158136464157288530342650075012418992479765031687615255501888155510523234600472214983387798616386849888594120495757125283061836265649965814541656528067198848346651318764847426275255800166214371907497234579703367027731180655176210975266410535424787850816332916566151703411273140622404588800210323590395139760994182118732988810397133063897709458382094545020340222524192221679755888006775623839375279585032189714427487236894723808359828210416405311098296353933005030625770873588549580549456948282485881920499867203167101354925518200874675815730175989659696755988587096853526768586957753667119874894858811559929190876544232920911573777217574718352579543893493006461061445395915862925894246738087332018998410721058620952281094736607160296066084793501617097578085602830877316858775924795837379364329332324512550108313293866703395070576631107050001506374753039865889979306847658031422890578408508506899043357061269932802476295966744555308774144885432560869376549599532790401284023070721812510475397168605738895490684786061832042884146073224596452849037224364944682894658298770353684278227080464767657682994896973054510767563869037035025093951155946671808491423188553026473782357607321924111292712257679642980712870347265342428462919797778677985197958463365044629413001920781103364853488015166656633367282048177073681211681567884829893411898285707860222463396172341762057998018167677685593288385502393690253088897362560645684125348095745952785129510098285745798257191515040485717037855350372801030866833460531615730910976051562489784324475412452367669707232593772474015449173917669999828016123389540923200116862341131292545522787148313506270713499396814072837999517839340620048641930477099939178007258361034700764700858923637945639479065554158239174723401647286696633992222465392198473469231089519803970929291301842950779217922911904296641178534200837847967994704758800535516769190645581207302299423870536366893235272311615029461471104759659412068832946779485513773155534122630369607638315590747144738072271227604606520851266393864123790905523816645619845169073834579659235531394928540468208686643621106224108635203035794950171298803231407681696916794942775359856236412844620341682264655839909415018798582860059894381614160716069367781139090004310535307293833458735163982821956136931995367520427828428266292446131307915976655345605494349518873960243143618640616344960538120322224173160521571356691220255099744141504350142683425354727013696720704665555686407751698986518909399087450793426167344275135643604653145069335463500560974172792398251977315789477472636401639676508460136287816464611085192052762516880551734703819103087877158266752525143947225629144431049459329693598886025983550238317441392941284979767645884242054156756419863870590624980425039792087028001228430021612138018480096589871764358523360600541110952385680296720080042562803520840176199635306338056189276161426062989990791084080548647690973432229668891559174868549490174807486438319890212015363482310078968108502090095798356355672763976305489448153456857669125869648866679066779688597335020176915780393164332001263334830832250588736949436571268655727791895181225398189199214091111952678798332395604675118353856661982675900200276733145555497009096670706482805601295847699147101597591263302076624026519089564980647861240647612698511229562944976210392973059204627179730721827404265241275442480789400925106239590887444473958983673801525434942688822634861370178177136788828821589864540933027980268085718962943438747877998838144120827265027408800454067900065761437820959878548209247263993550215893860077357071297774951453658636825810498084420849446968484652869782487919901067564393529548554016451635323171903811493496441851269348081497464508031561271142548152032652737825985650940569197458536544551499277792471268850130635136481547231411027056902900130690593422884154276265639773119489320835448939392945539691214350056253732453034737268871986848289082208871397181864403518640565409893701840260549118975905822559293670064552416073270444161003210555595386586905409993708393585127108427197502367176919334385381929771513173129266879378860906023568688968213406492656806459098955518411113218653079935071024660772540235431792263413507569231475287706930907617507735929875450728620861445454274946332139957333621402941642700094689962698078348925348892298347002204131620941746216882945903782279833693150585420401852687519818527051772750640088261159176790379371618863294363445889599464702450012659741328877598136213771882437454723628477246128967273505512406166001387352873765048553000875747249902663740072600669049889828816079123934066685569029729865277368379329585766911719123449101671717969990603280673115816885801728953491363034724695291972830206638092308447071102729891213035653153672816792057248083327080760729521350110855299234670573198189286930053384592838664275285750410804998675061122497710375071343571233008871869763539851818729677512260190849192373105377986534064752259774557940577634902421559706491553054744005718752610052364555002757422599021837258592768747088564885143166058434913254475175327223560873553213501953636752222836504430243779818064588464004238156021918636914339835257428723998202529125585694435229189771855992274961202259858488827544398112097455323936649241028572624322782124409732977650477068559913427459354922038648384726306670044615204582910813137137820600237667105765602914121880617709350936114355684114542766009180937086846901370437116311211022957661681929094334484368275388049023759864973241166863848451287544042862906721442365539128803820622245605658843642781359154351482428667023285178564282504964555388005613202113453173557962986794116749114663033528525855705079168733367025915139218485434069541015013485084160322733069560449894778805147154743274294554991061158156673605489333725915506611368043085976411653193000024379923830462601799932861700418906550524386358739456881350126747298305552291469264165083709923451366168085918931354626916558250069791861249072466958731084582397123513511799997854185748471291133661717638688229007626027186300876303763607931688300477134880904333019516634761663128905696923689991802679733913289949742202819909245685462006672224014915049594504520312557284789695707777743790219127572936139705099328329090288299472506251733302289827725651433427208312855497399057276101441595697233756648178503995255560634803255223316345888678825139909077521929909372579150973925944615069583936057985079914965590622723894415668903640417835502377422950221379365723581660909573612396749328445343787832185172701562953958330934774052760602826962585316305375916827440297121895298580444896268416415960386920534674745090852298577681582357759790066099502594846111976759174165756636021619521391953216828095789135126838798588275083154821295946647858803078089238135892263939253723486873966610182897921967231760210320567890140791082640378280107469013197458700172394579972929277521069877213753082273006086869069548248090370977205607969795457909502848133264489292514800369461722167579836467161087906390916388715396064661441849426045995508350053056733373967148409756683728214884438113509108456239967317567787600756609144761564595967185984972003924690900959950214104009538728341927586724746702316673710934721746544885663993661825630870636456379365883383861919106863406285222217029460794661371597005251426330627571354796582796895683238610320809466066760378909998181556845006910246382636717888685408234976976741775967361018323796053143804536981425840315629126262838339258176044357547269379152791690373935121045941558828224253495989000391674620523908362759133707219857146498357648764641378043857441867651097688297070995391121191830602534972355207721537106399916515636706293655863487930114738854400462033506940817602306612641721935199421668226247149580909491912117004419399032604227361379906149189814312473780463606668078256112885571457903889307263509100771153546800197249876517759670647959064678277974099754835424520786833447419266900672935534440805723943134102526754760635566775841658171369407332887228578881786787422755552498278852740876279999459123092403414668619435597773183673476650246402560784458373215377774475098470062655344202974304086504830620912903429930495631894801806598696213916184916065006379193528972528045025815988204692046992281849530048614068722443641056517527549172718573529125358058315673455775604003437122805282145594490269526602644268980814995668740826151922202870172416041318356640769083763575886548336946800199990972438392445946881769144699097154774474430199037739549399632332862971136631945944025226854639753052270366367801265607507464204303058157178883846773113511815693430435559826233809467226039870102043413160779897956740045066086614532365327068364090768377958146305763326676651444333371368687561380261936501749594221895731983937564804862090465331722463514915350915753254119676031194309761557668997899916278073637867774613689603245062863135970607051306393597470882843181752058237145589244659440453858824968537091231496109365940036043711956471393421289337423853184969374758471293594265284114735519058514611134870128494753936669436403189474902201663271570428147407814899592946364307227399603678601431742896017883774492827574398690474465929957202448288868418918703883207136913800324930496931952589100746603143775935114716369655745153329824354949175502028661614023171769315278682875741512719526695442208998196861848973364146736499981939599345850712942231756215717209998008215408375202976766434604183427618777008915760617188032955897533163339693209732395647614809743234491643863611627239672011492669545293045991998222025144569306182675859509168434957068924503876684787472649592009226098724706888465843059726457614425913982542608414295796329839530959415866426472146774864330368181879466787910807731608075838271512857163058038159702522729690185391298596176803672686655923098879126384264172082118906403604220452205146825430689248068200418116877169745861990131494436262911516486623579130858289287154287478985772365659766203448571975114164827342356604992588225721407480819449793705316215971556598398184380202899932232217331759930104886328338669713334278167043276780783120767165823897215093070938859590839159221226867527094235177411252891370468657158793668735592761993887547087809827152410406945926213471895774184741474398428639785779983235553024164638139231917097985059730583819975304992040886988320231041217801276558965778182572985317067256677846417248750649620937403775799251188900227839917353193859745834110770063424775916156323842226405687181365699016509709945737156771461634247106363609822852288174649455312005201621628548308556725416622892007469971403793979711856853746695671282143614508950086769318621200395120135111852904940712946453996157184494876337756257961749567450205967439339056301668022359781837654734982298014650608485473112589372354027497636752593181315263038549651099871935820017769441434782516406348741117317988932248081089214530952256328553945711335767080125689128690533478874809508368751302566165518727864296430779312334405211921452018906610095738549972961472715003313110931328277433676951857401182372045047575233879751878764327333880951206425543113245116116790428332455042801824139281363067102300358585186235352401356699171228232846853107428341315281450708860297175663920070485040423546918919412205205011358633008098230462115063802160990945670739930395983573348693287159476534976041727876438450414217485812458965164731831171652386860288263814782433456910995062482982232988080254985388609139138590969325219246373434238052740051245848484171985369060067439534893117556584155577693267120134895966678073365187671713996654261370727969909147393061724922709348800883381380222799070509673446982418674264035612107230065139812660939268924566728656907734009499777119647734837237879345679216326619259727534190108810715844809513863948392655395851423052880824469153723208793878119884587135227831213016818790693931346109231303089466773797515442550196445473011270374066733847368324999457203260236527582788081951746866161009676345093341823951740495910143924848121244426545483957302147439293165938733072556213418188891993468058453939618750398056287005753665776164662538942518995806683293283373468211921633054858739535973865447032066718456892710379237735168056292332327968266658317399433599868836605966730486722428428665295369643340322001537137160573454517901308848207517419321685775883043560323274231903851498888736501230802758961814340327246258172960389689155008404399378346574216483842056121569655074606299866489494618799204157962958183895039138105885422598556819582403127241013012544478716987477319421323476403527938466758252377461689205388307672393218639837713942848928490064929954593523336244215074366356709935437272238988052604865544998477542169465148762130631263922436026321763173428859876947554899871186036190068964516519156702772316674311162197406611286704765952386137829519896713187675248739989499971767185966226158794859576217429307437909520817571403999269343657592634603114840434662600435322007022672362391472404756879169471766229900963840768271282851343570766748808540317396026125045814256368505542111714700679937601731543546033561641733650537416449932339530757177578773035453478483641893330320439557592262736878954357450541919914279241635750832287166423735744354666322175761966083531031671181009621203480499381691931876795071113509337887615498402541252925085397383205781540132332607830992599396273780362567871269594395328371538329146311781605410271093059335672497115007634339127307166906552148043467565401686926570873079152057549337743640007039346408362733350676290598032503561679846800892783524934617730087064566484963980545854215504473719432834153767297596440586564258166054264107830882572304681312305849355708855333416387037502001774141807362605723071531302211521193954928222134143030983664817004001006226405967887555443475306091951974874281087413278188573451869283956104679618612738298026325209525452746616314936564297199825001311191309830480973300296194364712717316628987668783464486985221539582384825275022387339132345350854393324302609020609919982929774809339711175800751037886409802256064146299142705054744580653751668285339177682543259392288328878553158632075538990026013723471439142820123986933564329740622205713473866654086735997148066569992686797999476086008578933186774591272339619026957149611643951870125055917212412843974971395702784677507660758764380765013063188424914400983295676292094812331409116511328735642444768030043326092272429502391376740357771637127130165747774215190049520953631852429397690703106289050086582706999673095490037038065500754878313118250119782885770747716720141016174137115025601012328658948217481751804721114975627526119639103054101609390109067947408645308946407658301085300106622628752462857147437704560763235871246339445957723889640470403186206081464226870318720816475340160110296567132630323174639534262914618018830351454530134020713570721503516127255701825846743279242648548571040641044560004887642609867432160650497000830397414069888901175334040723832108407478739403243755573411476962613730629183955213075934506061801631413319766538068943638250883266929472814437231016126175331175462691251960630291445834230066485555511081653874322757021680896925430545625073341497281330651967253875751387466503152725799843378435100783501854816352116911611785805379703012051122011591167090828947189892566782487921288287647051301973146724731798973309737492423631882536393852221852770132094881794713003214160862412076336683623237494939994129150855553599480836714989076513396535588733565608478581095775036276884374477903755352955963301833561155817885541771501589863900948605486421769168727276599469952035518692003464531077142386061563397008580429840896553575256582931645068279486870711098627982975432183605706486073366591587027305287207512291408321381739792716166406897546604027979506264895917614124589274786068849698382592772807180049865508864943262083435735343664648213234639786001600104732263145205234060157833867875297924005567633383293341949346070284953464574896158631505117541578184063347064944723174595897756295650752706347066171307524541826641275893383351075289554707620787402400092649902087069351502519526136065976957901138005153706964285312105406981603945686693760493357804619091390591743822672100123502434652165321465562511297574406567796622519294875913509196681189657603654316992229773093962614250296729371290231882602068627291608068419841292215099991729937811782053449464651308606716736653664004146173941836610192611726840482484788189138046131897512749053491660153822102004186813816544844728110641032280073284760128891593663414490839642254837164983260436049680356932467984242048837618141099218895106715280132318846701991249877160807870587284525866237379983529001156833944009156300640392460295657206260173183355586187389424616590890053046092453810915584124517394756724274733742552442662609328971421599554207376636306131320068832666582275926936347653498497376702656394229879941481763048680736404198619810557208220918876829943614315047587600573386510873004767314460260758361672030940698180313134496091321263148841869579523272350256317970681746436374675481897486384615029794467473686665545263749169628763212670000842486471471571506515851579396719181636555106521292025590625834061257323493890882158152042414062048396989974459184557564383615217539771979298209339279943639091809468517496873210317651031351499758754843912667521596631529559237623490833809264629604505432795486966932451025490976379246267248884137194479857516152355474503574389999980069498673760182044144282461448875376921269336011369450174071818254231435157647260710970118486088644761938869391125522937109613855299928713224526526049531670789020055985154536207008984446028020994094681221088224645297465826531956778211288187805105623270196670389130529448206055562698547004509728741209130713430264871596166682699621230834488447799754719686084994001287812561800628377229568050919398457035652491162745102419350498825901179149992851325994965548588611940987468646859691796235241130588105182306283497947922101500676923555816172095339936798998569928962618143378180216472768812369364684102716832935855043508063612569800459377028441889687687891416014321459577813000712891549703363777438275899439482986496497393727383012625805816257962272961803849582569261373832504871693349593859109923349898049074708494001311530193387253166733994334316080567592723629636858877840020885177901465932587918432674797236307493632458573845635599128811976776545459466631620088894707652309491948075184315511850020846272875791822370900849214625061052464075171692761211163659462740099766705423942263132225900139187451409982324703816935408532557473275633955469528239513975016059527109421465249374765832276583740469607617003959803030885921134852993390532828187782349121733643216393660357834991717976518318231944490972055455392296325258029900865658052718467902254432583519292813307214555148001278287200107790537546696337711075150106048409432739249759149625895998157357263186863279726525179668311089589336391118903539841539447556112814197588838198611385896016224542407455906007288287555268214901084458748583924189331317095525470122694065218090789172341881319918540492302423308864552711820047090550954076454549069657006882344515005109616263589869507309684692610708386123272569721669954258501600529406251892309980104902249649411028440028912791746601508963195919276856842339267493118033705585279266786351445074864392949623728548043802859121477343371699521054941300855749201815365312895475790555028823798640139096243493163804353441315939861649496666853470192172746670870738467478763058572120607112501596924244981627479136100583162677334571758959390529703315620259425047932782669938423034083024637481334286430680120830690806398758289896335735260982706868166884547562221221770764250489639113954883030126785964671705263239437290432680217648654308731083206619806372267429675596763982053444852905621884594988510053166563033729159480782122011809153707208111383464225428924471953351819752584241628277893606520178463575858558983377851361905533693859489779446567980361770749441547451576911733772943705640941972971965290620378103388379738767897892044117986510510466281710269575531656716386790040357037093760133431439805137780210793644808671100734955867452607792358547258292525924745994300025253487987105329439050780103215378029556030695672634151255606006513344322246418679071662784630219952563237145095272602538979277343969197951583242900811921604148482110113045286435534467989061284522571936227932153431019544775346245246925572379242725958762810739247763411760705250552202903733388095479540213247715722261349690250759805476735328352078278793406809290827550737977982515701439176651005100926260547252003590830959942991429202174623218523307709229383850975321422336753206039801027835107826254045578472183255858438909368786955630368411073869930876120831819758755697849893618989219721689189801697027042669047926990717830000034155469480101343337867081249807741925170572437892313654653606280989347420203296629894760004785460883580933532206400847343871241402994780398613769262525006028706794562898996782115671553155165618902161937711667132497812495930994969290571256703764465619582738987944180430842329011303992367805663812461484287466719335398012411160015425460565075764224986450394451546739944998500926407994976935387210545579824618804799846446396755951139813642821750910155869067055861314681141674177532921523827811724247298457861792647234501302258674061201743676419573339315868553633512826573225859982032648435438714527534105870667186249395923924757364219054679363682118403109177423234057718889053270205345942182630667898812674244090783470582234261082061634486800341400475777818556999970538143762424328162884225658173294674761808498166472972688366585697087299651784212538327492129617471431510697790694184984231519569708304768179394371678862564831608148547386649377311282109569507221463512711448040228820143013123978686104883933160033334298142870556764692819107753707207091475480723696130657190850291893771690689556194487570233865995757416472654065868178545475864142534191477467810905269861274015082793842456391259643184167486917425748907021096043998321908444616608044438635435373982048387985495904677369138075231916854759585991313318970288915473656683092045655060241736928682413630611498320521382822089426357253205835166775507189981849515952386527598801547554873003429094276111432227077528980343287528905478456676093419611687536942721548995563376116380116111682487736508803194100465345049358793368327725788454880177015411683563285663176968231637744155350380806154759195914865531677236327249110904812962419866469425361291668245121582301937891315893295277516078116843436068360143164850067223324174533964778929777106573654704148776114119228730253578155731804861798221362455907042936969329124055894648947727669804802381720825801959412389423085841567819044847304758762860815966379098848337416353518144823791254228397383900390464239666278348478824885557127090491771202539867474729871014073880231752225715315821984365351740039565116831109858841484544410407840958956046724112832235588371326374486655592195005333838666247136446511267318887531509375708021034473758641128547945793043473949279725631499173299223374732634670920744737130022479132052025371540043241616524978280923866095170861743481740052191188858767876370277774857633247911750322742211784141848265029998508078097160979453333336938839967944200401703730494122242942193494511176381192485135163341365578268792992690155850537036528566383610117208530918412126445937898409545353329824459994795605410366267707431043418901752633019797902842286592798299981814709189960585510240627774333656022819591273697712598454295925706348526151337326897613675789825660738546448199757820374274069557009856587472465257669311804746770175456336159631520022383349438949924624922608174365008779665621023131956015221116622878118469425058136566116895894085336512128449467907086769408123185746994103257546998463313095919303509142710323309133807887955592499325124749496999230492580897379740974242017567553557591264416740112601542492505255915096923355908091892460588170460394900963721643759257754637399599999405342731663544177069804959553665477108996921759934397178383871798272580553305442901089874399048411805196481674875950136246277057995402201366125084458141106310387238637245059058463312614075539714083113762503862168477938080015190463425442100525814351381289595203320883597865156501206336544145240002940958035252959975983449846806739122272134432633331523502491412636539159360913246060688494719183441772940061148272854570207975608313671676504316673164272015573006161261061451220961964185431203292740473256529640846542373304234732568208925651490519159358300170146047967355264989849464632252060954127050065677238805591396312322490256698376315732701958266943336139378742111241080043198095515433681972982589367190090252120442225171598705532970496657271561747941522331519411407214692114892255594739702339427259332994384058383520718707596508116275861692586156300982369433081158056645335081355347670897326942701513201594673625657839043622160997438545141214577915925151417326295491171160754094025991868142667311962957841547072532415699121199550630815319012234033929384419512937915847205463039623551735449570901814556307060312125167043918340773869507401248454699420709100240480340864010370781058255166983891484314425913205225586836996309465183296113427226082090551291666297039267405641196447250500461618288477834243276002902903389926171786444114675721232065020514734078228747096861791550719547580751282420118018919034921773463699046075081013786205629876685138642233572090648456091363854077423208988394586286077237659944403016392602491588500126383993353568799121708941001351482955877762167405615543637686116927413435026151777274716513745478132987803401674186828082690500964315833932088749329390119007702460387292571318121941216905285058330205181793550489908103411704051536450917351898325381735166271471207650743893859385687754154875094005990272535651174125442706946641869349654833619144826123382126369732191410678769191277843307488978376918085979563540251822935536032666390681435083516671493540766049778021985123367284370566282683569466525622889294651822352017371038998445206576428655775387153239654051690742436264919712237144851468730524114886045222392341772830841758654620031762791729465850477262780498456918942184478147500109852199819565667013220570844719803928624433179127175710912505815478332578013674198016840737604689415957695385318663618560229119500015533088249420279050398247692428547732464078143452505439729392108369471562502607606125123018705226659655747079024786431360180071690938089519069490583083948364842924134243325785428228125217630827911498649246698359411902332706749821257631067931822361098123271357785289442230564478574147152192978537739953465492348293821289285418674589806084806789644678307418286610386846049133278265340130203929589188150580072726448221307560352431094757995826745594555094612422677001927062357437014405642866216928498954257662166924434229393109959218365745606532392958911968042000777131783054752093130820799498179293762899123728193563460079019039773988078972238161994246038118751480686532824063475010685625665275961291991410464916844685800248742714285479842093959259718782431391973992809278032814809852282561555994464165529728199580936519244829538205273241836402436346506562944550688574833028017961448875703632697567477357182618515413775842896341487172805753677459395861095704407897291318507129182284964935443326761547058083106027463191279125926835876751026388109763734881925562565555846992947522687849043913118087243599185389290380724959023909186232388340377725719166342754794860336349982955784632499831574924126804984341968443220906766544553119622283892445817606900005614096243945264191619833667530718280817717804607474828838478267133314283273532981737244062242899444216420857301437762967299275469005448739389481820421128661921214358630580183240570915547603077725966515232155377877368703711092932262574278774771825293531742534071178592634529147042086840845020343863221583422570085779661865705179957247242729384769663824595160467707931854198362361879128834230980068143591074223069493381829176806853220534369981170819989890212292824293918526810832613105918481072871820365888557390931435764311361783301110883302308271963229935192516202324769730204859229244818824698976048684484144362482267591951809320789503424887257857552985570456605985144848643427714297501294069972160914015454902772073402417753003534596667123396852116251359158232363224758523899863023100844469769597030857370437292846779763524682917753829107975780106716332632798176108424960488099533574958538286908942766380354659885405961958839064413324534464736652556724814764298315131484373487894292735236289489063190306141746069257793388859617308875474914941503221131577413658316247279523593494314032263334633580625771292657144473929037972873201945532250943074773505075620754921644842498346262293120798611140276623718376891388750666304625077090222706325114619604737715669855505622805466209855674258409897695927449840192318849499967661475051164685498135734920057795153116708259214489836457198994905380236223002400092089210681550742207410670316198047947509361002338028191428402913625853783533102345159017542933499726285503960998313904317271172843316979942738032363668401686465175203605684174170745754022785043149706242094944469987041018825987980265600682256905688854607471060431823589766729915882012265322528966263355226361506543924049809075717311596645145017403784175852346128295145604438762051181151466244389724161288578237773460839445003919207223261182547901655859371274874214437888615604679354301214321548293839359782933036171627745270164471108393759949870843530199070328059131402950433999065895253945795161613153188712406012235344480820980271250221127907562533017527972199983626318669007896418596605956572135772855722996700527975560007511027596180902376498457812168355478607944618630770170487508646075967916995814361236301941001887103241173565296805329182320180916341725449583532441594898883008388812791465206754878091021329240325161066808994835465270680992237539697702571625237164678123002300294026314435088071367637259974416970246975812364868289890536154102148309323165836398706403123801305776120522705104602265581151650477430363097468642491327446398151678491079058742728150275738553530156921938952298990881394193015735585176929449452141742465323294321157702957268630074744208052591332164603619901291963295888798115215007946414186817640429799758934351902033754674350079624247517711623910152775439476953058243217322682325153056792853153420928725592607984110776048283687832111483154724737719305569518223157488229609841858873767402946610540280014351374300026221039318523805817046993119375822513811063480863870638233714989752932581816013036395494237981721609770579807421539175711276201662341780875412751706803537788056760691259942091094234095325110055828381338598203908153204827863947306522969172116200125348331900731238100460090335200985371830580728085853723328100686212941194014513728158325319548195605892123483513379212569526264554456738229387688156911994824267743801806058358095792103692580906710736469040170192144716734145963270033783852347295523965436621679485780100613928026733703639442089822053936292870575507858821929165751082470621532428655748942257342424321209641400664841283311871256178083474629579996114418617782233881430078823433207972239600014302189224201745162994222222309312567627579400361984075913261435854036860311560045063067032998553879041965498646831891657204882470998857854239908131417729730762125634738575792878515889583422286337328652558181505346499089226893745500711056916344431130551794901978266159886598130987922277490620204412312573294343505800588270005222443216413292607665338714664061891994163016126327915014206600525260990278471138760775934371199526270065636307976998162243380135105692026108935727016213169909214827235572236235275620634408395737415995196687540581175566787183873829527009442036624793623869452269412529594538620712510023511816394391451149608024428663551246004607990257755121992492132481734638712907146992556132252302640926511314813247147777616485365802018957024573916737153361364559146282792244148513850535108982258244419727563644347012017567028096333860175956633720783443605288018523557280139962822138199834035553200182970116169226451171190614581116765069509949261372227054708688199145442344670296937908383757378969376023471303979069639676047311460591520893336742608736162352286005903218467772271625085026899120727804567469961090837339657178110513651968405180323613910018256486425776934017088725800535024624485470984786947504399196984849598793701823100688452010150318326374582823842293295258075310964317268600215768804093263175889599040683763185375441624794834713739471309668150853214980211071939663913035519876512080533658797276601624674926885165107894638828287500854903824209907747994923265314572664179389370162021384617152457431118016611409367826983014149552330304119422334468264670230131013523677121293176319276333984382944890940340495440653137085115944448408984748326315580763986778685713659032080623667399081576601221046463161629606117478633620878743886141162341046514732798680740994528927827469456241568151401827447729400100600459392583681036708683403485085092339484137402102399641750982149096967283158247886636585687573161638520199783462738753505083097065492600974299798995155007501991720384665477270275471252362103108703134669392016475474554390302437057827160500984247944271053257399086474406436727397214260705305459050694911673530062923770701445246197375427806878930088575714692628092597617776677278802065174763122804179932535544859110950994224626042019639893439864611957793373788367555467172279717504767623728241906848316929357697780597485998662415165906270461220453754827934547710919656019305336773942653623953126506460012476473330385389474292811837527553184193627094163758695335021573849533669240544780288031904476656877793198496898055422321821379563860795311869442483383970846968957025919658835650816451837391088768163699676372140379243290112283848668137607478201518042179244304052366133494886119729593044352324862690005523612797686178349719811866944225110173870938969214191484805670136896620344894175828189509480489526248401327747666396054492014983281811343045321166236821182479960126633830492991136695384014545281910928424272678500404768012123309345569769295207659619380661661927028569858208092676456042500407293579146623549747794989016968003599282727964213068143221430924646112637244012147308488883370460712542000052548218635884187051844012729379617886608560594056559396399698712757197061828003962683477837148844405178443780305056302784985088383019734902291670817923274217214248641267910708370815345927630486412487642928251443349060971391509120360616405122607056539144586757760080125587891234638271776907257908106558382016921338740750609413650130255167422102419991171217213668988153232089243224635348834040954640921606662677918596079871473187387294916399766751180299030557209812418730608366561784561972022973657072588335500767787101035098130775793696396635984084580806103260421397477822784617466706455119656809927703123467959465898683674185306538628141977375331673108968625463683475407338257301445319506666408464195765962015426582287551322139978857397441597862017824258817496553609111703769867530114650267783846480859990014636106508426030053271095209917968087430205065858607212252358616723486028331134601896521411976105223727715641538558950705253885835539533989938271815018177887288927627234586669224849080157653347782617230632778852775340887755531519095417541490676690122129350746270628711612532809840844474310890851702516808038964123547451291300052105323133204633404883206659151904341267563844622143054414286879617096928280899740738758032178189162681332833288955169339126789913754243694417126608360778827859202375677615530401504506768215430219620430259777809919405489724780811357554917524133587577475202220271071237627824261568724861420836751816335527152656212144755996163030374900922809606950798048342964635471973889482410905397044452439538831435307865928190321010108782920926871297878431801576742133035560458584112254220577167453141838456837046722260500870857920913856770210892225929773737314533238977680538079088780593126423222385701210249063398859901046490478936624305840517904995336341128121444982314331435820147841317452584321891417750576322940250353447947238736051307755873962291903814240557971282029479956083452034505465440405179240684206879950343664397171725317172862398154634709481877653686703095416936606243254011299655414042281616308423271049136843285536428974442886975456613935436188978266456382012490430484624243342992416153639014319359791205097101380819636438828129937486855659663404988355135851443065763772739900756176785632597940183684292014907402304561698060941514217601933011912291260910575552631545782314669612039174282854984949737919621821450246204827509176234901987881556103500557003353401767794811265854066630558944769585120483036922562275189274940829167179685395703198650993807188402746427808231269849090218576392071068302123772746913435596482838556709321651626874568183055199112825714242317769866730557740257896021448179934599074723800822519224633999869917560676742927765129692205428461357997057591471697389829823990894770544978972431802458045864263170848404444236558750688185116500693761161728208851639212703386912083074550465113485896493376597677868190564700492100241672849377207638405666029893041099303695303515298998384608606625101041337151185325132119470763686131720739187406293056990446326626998668258993030854729520648790292613007728116097321482298463234013094056663734892947338575649041145079919378208639815591413391232086086338657719669227536816671688634046259366977173063861426429561908893906544021555524628412924369272470582727377312557145056003675598017369440402235004563166424919422128814581384508980488610782576769866861148320319041397026948671972006928774204959032173549191328861011215424785153794951019006105174976501787720160269425064813833616406364350531150174004334042237750561767946753092154676251068535194887147121143514133059786145721826065881006982270615394794342009574306298870610787135924835227353671800271741247888392785909551743968452670436568121111373659023965099469221882049369557277724607685584459448875529037308363946547316060239693612505214519450597620957079264765106706421719324499100816390307875985315763699240830659847299595572484769183651022945239517145575961938933140413557293730413687973759990601158354417945733446790705986466252949572097370321692427990150697220403062041178954910477425916210771414019232420867004076557160486561024866646828278705671451894975343358578279413532447583078128172654392965128965152749294256445566633904386727627654844504405309465770401558282030123788131164251903959113194281004505220894667887488165202172333952776778901789853188787906854009905078631978466280933288650707595046299939524521074028206848926784473150728336619308640783200851416793525589530494213506230217460938096431197843500201064613770728284260061095261938661148807486991933368503079343160066076055385792917016225143474470532717993550889398624312740331909567180771016482759224973543715940356781831849889779417828661180707517387666391716299742744345710018635295261827247963934198552570508309610321282513117481161145387238376642326308649566397082219554081997142728516372610985840786721290183000298082803356859689875834070497998784088927051865473595889743731689919992623014283502893684516021453030484739667664805208782021374890265284416822904710724981669157033467510434438646474828428118755913062254942776400340565191647396857118422661520520209752969041290378440235620054397791410788584554663418089127682551610690735277483098520352698702636529057143158722260036731416744938175337261427759504917107627946629481631564960046999514389590722420457649830464830735975678517459789435692981456502365727878259218248138045809793645615111853922152588604557237113082174769913046504056902399256486292857320727318761392353600113177086015469079637198801830540526585979057999004164263189736231262879816934663166431423342610341520778701958945023944736024833103812051383585402001473420650963029006803193964198097650794293299227100618086510646579250803855651554503292400174842639348762227490216784530888250493196238707174471091759909900396532556596005072238754154814627290900768363997186144981112699237363694102748776869154815312783345811938400346725701515220349776544927206839464610960031301122417388490014461931971529362354817787217763418738579821110213438692888303613433487341742238011710388285336824465363529565238536166830121652332213205787552321728745798689854730272188345952771643081448411451664666194207329441492751207383002648937668811570302362727970728331415694796047674074884521085086055975078464866444535004813604768514889605260942207146661408130452736703588456085714799016470997354593365987713102692732913125680800668568763175181970004605258171813585947924177833721942857702828943700634076880904029555435464081464037593424425238488829709888190693667275606341020953634370757752838323280704962672269083066556306149031651175768002246511328585829513493033796286874260019710523477022389389796019444763909916805865323788986098453097155350581547973686086705829135465019173111612824245425344946086239371342261098515264795296860167549426055897656383995339950661444624795052532050688166968657174288491809417983480313522472081859885656633466113192124622926319596927529834298947927590754708662001345076225135984556736582581218038069107341051869564041153422601857554865941022691611379669369864050399201858065826036655115597152699773477785343733023612385842596474176034699091784129945386532218468281075001525629842904500784998797261024084388408669251411605378889880499109179258606259155423716252825929689446568931843983165446763108691451871552725975861381758096379138037312676310683503762717856681159649008847005288440339354507123508750619451772094840263256944794076679945590483628735476807487774271908247642631257885464870641721181954747431621652343027321940456541850707741738640555348715984574429986556413755416691902467671831062665230132685435999848582375998393280006989538304604820570164431178130612694604519850030893580929852938136746357423694452322996602843908799232017711774739596874367104002305158092877552363626447820079919068612722694448571918027538390619874846220473508220453652236926118216890197337462237168415376717071264153220908133754551126001136580240426324045804897837175026795777990661469277258398549134353829768521260117728313949652723795467546151891715503086627395985691233120561731876307953214847341505655143341493137754418230552249328079657821874266360561792291338917533053655962348550548150523288646569845734674176849665329218155922714831115350553843769079659036593175392727967254332212833306649954101641851839253643204642759248316408635744255641003930721772612204215311322236555270403063855360301497654304053116561322469021611457682736073796785451458776744751901879650394994414551024957261222246242256183480089843753936450895645954778947574558002184957128951054051025923725232357640021349066595805582358335794858501269978022603632165337090723945279013138155993760410659824779448826407956824781566239517063992805188061225878082070759989794955409183911775001845274312271248146233152930873476090318973534982482105259484798732129547902791027354945047353087094687967503789071402730436211258955577966709081577271396598369565363242416270090550134464123292203503753974849423168421461840282906881209077893445220988648043362770347010502030932419604668820145232992174448116389404738239993078985404289043259419666231794946722265769115456516619074925200922991222644019878236730135863632999248054204059782301396669319643650430704002163070934377740504673597034003595585250072064740821131863516455948528297857728570641218889477347854393334997347901128432011374465348136794328738216372085399138298481713622822760330356394260477636120629999393720847599074605404847603690254291859910206334942687976969552995470043644363305881027997910825161994375640846940350425984088737181826956030136748100856692184176275119687164369862184828871599749277801724319051893749933059421497859120288206217525922395698066509354933521063571310645878011745676161954144747066821539112012253800514742430751292117232405441849468365380311759067369014923216751483901640265749707764379397527235982546260081795783370305333847080036044237222177950901852115425372881555926362906953818099837328822320239497230148055446053789929421203564437495427698494709252063294663679972701424312312026238654611480586058229052451941802225912856803934188340186789344957877586687249902854609488787540655254678762929677262694674810357314811790366394574781051963213706684353387181608185726337373628386177651760023030195653275735675086755110806788855609522928663324569876094042905613791232190692060216968627348686358808811006529716489838319009582451857087052794590334701995104490275916177360352417912214593825546685559556376371409625855886308394115653600955841721362911420688758127817291998854107095143398910837583323296794400828230263367600043544971348965285849442134007717998288889688740264951095819393580040583717740242419754749550666498637110499701414830684357247007144446160643943857019654715276584396555113109003364953478555141432630489443548296726044398867931732565133267515529531206151191700573535561342981613070908242517931333842849400056444492151030818173304804842421449077704938499319508334019814406476832869786693769233436701611045879941804920525938100377887597146136780467820828506460041586819098064360555819409558090107891474088275188348617784828322789148209122846510872779628032972071783302617846773099934491137996452774745454831402908574818962875991612219025792067080598840325265946774163858987183935947302555582673284153101999999970601202452733533410322823904975586589641506705042010299120554950882907678816379259388582151242605900332512513569299942798407912633841345814760309049087219364306200612734376848634845335335736845193040192618601319866111454234000816599840118175656086278532441007901546379376477669786399331371310740634633099759047051473847331886647560584543046153684785101708529205074808059323353270071324148645000191152308024031944898508453514480196300249778266528516555470603325143932514831097255786839503786450811868620901625674215805135406444011307722640279587342744100248533302317342339356702807044852991923477460766002537808611067533192768162971017814619645431260440765642627366916368144314080855451708208039191750577674547067575126860178806418530232959203659547151597608698543987583656027110897706890544385033374624091711309486082799100273296013578132839112857131166892719305644716810566583760312408864457053604684654769227370878521169366619267247470087595035702664357843802262861178709291636681294861834213612152049099629431195985269501278387801039627718034136818695018175876196087994307133560860076013326683055258764634055332922023008722912343325802889146328927352686470092623796913024816925558973728883820060835552729127643326988242815722210016639392184724941835482571649331790717914203650131282743599152575759220901930636962565414452351283542437319527997078302903391563568185555008931842210161808387958918290185921866378917860714293329913691589389242536474395825636410189170648506501925320655548962488526589159539943202824269147132829955742161710273869887035265979384655370419550031968684205707516557941022134391557804566111002277695692197454497849239556446365935929555760127531673530500115315977250322309186334390920720120203071306558381770004534333843260787299584161929211292321310140065718049416143079536028018283207735093995213795160512874636263345345503134185231703766759377761734272120711180365324148997839051826507268814921818935382791053923169601611320699992777311888355757202804603774942131441726977989994212651779749825706518592346871179421935895669212098601511963846445625924930868942179260530306141298915284319622637945330590450391914715805696240343719990416899160399881332573231759274817209379050924003338377663321625239305059872341255061885554594478971034270069356376828522900350059389863187392949692267664596406960115005063312241007128977929497318006726266088280794715071386179567110119893803543946880792123442037664984072908937680506211562230874603071232766345244172427245398834298312383649499561107371502755556298293199929457900444702567681115359830816118663246854316874710264236415391593090020812157534677054866880778520793553663421467650604857600864520236134126955910709147897259595588558571477986784399558214744199833986451124001845025950760013457881859330212913161863931062679002233796373260635319373229842451019421092807507795725470973107198231627246362637224777196037151951848481938500196410004274851391861626985353621579199306986041226366239916395394326455036805905966754086032382080100552606255814491558671300717289054699941829424401435279752395693898531413103081073795049613299127354561890375227945175536956914611577859368646889974112329783573927641377628154035675427304645124712330383529483504077450763715287272551352779604023078132967472716584222221680861489140924694321798618140923347989569928139158322947526876189765259970878463869389406996958247693698428888939181973917956367198991639362509323054115919620306809180379299233441727213797227863167610663347305402349977618541693877858716749423858927965066080670178451073092802043026665441864201126235736708518543433156555406443303464995963602009007124602391146659153204326091159220054957724015721654844344484058438355285287198899809713361681150075598501457121629460523107009136460170462211800855273335751797549312115529252572574378139243521855899040920761774488394831795087748093672129445550920461346466963869350782391611850454368153809286706276304091976896467740783709347884091860203439359910448870363779706486393305198986172924292494700115987278369686002891514181057689008022123356082443196283151652916277984605600144432679469041933117196441461329336622215693900474253265545156233445602338571127629986826377216575450711813231756537944609917126260428288544941606445597697835503479592999820349457080141161421057925316656621781428667216650937932289136523774875810995213139637160631243763722418326450442544648768298733809342512282008233068317878372475569810836333573171044124092024938606606208306368068753652664530197317850642230230124364841271596526053616058120877882300571334721926173976555945554524725796579057063877881066552952372392082653909360652773717369123429144997218877252420717403054080141981394155614557403794663126748979067681718944143338482128814077707400760260073713307971972963263497632811020463424672050849258720646648330816131908958854180522369248677018099958012990784543195519282829694939643822714819131621046662390983612115386206427534867604740667174493658516495772822773378319248871344558880647427485357646081655073890429163055352387035356890579139135775958568708537207063492175475236412110206438679057269680284939056921871567561161683660174689237878432922398659377594707550177826417259898368467158639688101816656936520254956312539649545765529926349420641204536202192151683664882249364473815894403997767148670982726705389369647219779857347826745731637907133544206733374261180515410787031115449912445621077806219752345473232509881648945186848775015672502440336868503265041241624979056428815929621851116081287077983016015278083782197240553165291633570681150502924689356403349743238727992677292710854260311334680005599819427229529709791074415452679290812575249122254537328898586903000073803903520857657797210175007071429919607356715181020050066043621476732809092105570825007418912889694345595685458143829151175818877045892031760871104563438642599576828363690846728578322135732257218402261419512331573989157259958779589215829500147479690978382107548230424062950793038968320742419339352737503734646173297667586333301242121995019401863956337597037832288454732151673124277477520669006046526777942745564992519439001352355298696717583301584141531223138703758028761043702375669216118290148120901805667541904742462843556572889845488025799968152515813060362444368638073283139304711122673160698729919637709930692920340831512685418332779206165208370103652516810269712991057755812487803698196350879572480773888002783227211306382351884144709707395279332027704523092574569487179774773684787496674264237706056472008012717004820776240721350458455773965949904173156709044211105106008370498774107287150250938941601616936992147978635355854636234816621837574690445136121602982122930816549411617593460779040570744390307152299241005018392175865949265161734332231655733570227753727611441204401028623845057548713665444043999625347047942694970070844781021865132268140173904285816141593378301257992745333231272847625632205608545733673390906947945665760487635002898171694045190854976130769423642144374285586918724997748449020544837254246770827743856534363912999643767384896326076526924834020342700535968001045871058969812544006335135006687453108439839670287877871728508673032601494909138035066077879687845050474507266062684992077923108981568421322495639219345501525153762519650745694633992987852941709650615367615198574499914603173890681792318322663924400216524979073997166211008509841971524698154969610908165685475876179075024303623937721993350520612047404964892159743341218203179645484628464897943480022877793566752310090367752776853906247134050451461033712522572433044448315784028005055899943884497482949934509300707095247508439726697561355131225495003030371791187119377530139603423448698656301427379623963529168896420550994522187028260187391014144426905332387479498413588327000995655511750073200116406484029877299740369349084587708262735622682808197691385727985429923157669319766623580317152792305741653786745981860831121036670782736519573125492843860493673550189696697618839935499082266577858318392945152582247995813527690235736922317672253492736727167889010341270960966324702444180044882278662777190691196898135394772785004609455813327147396474242998505627261858197357352482260958576096553628068231850860174575770878824661684147186652681413372373770626128424958078895047705793350915158180710644141656639331700246934029810013181656801066514210933549149380781809453534341786492730170573238832896120265665258369214829537975076127581571195053783374968769580548424715563435673025628100379833207310773693647719964977516567692242800304714878822444256292689548629493047022927892471879370721446162891385088039483049294424089295273915329645732089456643706657784333857490344585145842432110413605896794923040866545336757446899560908638264318647159912665792503555428407216978654659459235703866808759028041402361128611387978016595235417835019795160430167429738513923348593895243340314153649732781125437155839031626612282607477424763104888245182246327873085823083993712828679783259508801899909229546946540895094383805436391184159815603247437767724311296596228282468127466473849208119453301784403268632788229223058284668489387031866824112569590506884860096073436591321450475948143579197445122120302180218132555505578569131480379328344803587326552179402594578755520480833209118417095454127744836660208155314145269722469325441860834547178424210294168093131146758308875720390412736196781704951334599035039906993107369404893054646192894801991539207557891204618209108377302392553167519097796256948612876217171112142070100679781322446782370813031089336073461508929264712949280532313042479998306151528235324779267205346419017843627634167864143951846564641940122654188876688613926247382386082056782701628648850680569187709779130097691560597615748363451337392673362192757198333625789258853459057834114867649068131162126574031682790465021108360049894667698699219009659409950618214979400986296509795985355005584901952754679587959445096479431794791828901188284865107443571585391728387434648076541318231415244252374070771274007914882144244334262684005303512948629463095680518356280615517789268207107971376418902722717590566739860037710899199981359997744182702677064164227636247359335153204872079440070159780209231729571726902779329510680639377110743289630059140940930757552435218584646397370976714816892853885086055902666014648872527659800104321907231350902603022523162313782399894676425569121242243255431132334299740684120038295092445088761483593477519444831875630272756701601035768268564582025059985426975851299987839541988362858786097771034295977856097186013864671671605460170349636475099426753841887849403842008395964314250485861843610464604295527225723602941923064555526208864232544468055887725084287355996274540690244737301167633929701411900409548464515457481600419181552638332786002738403702803745323952154705686996778920493975215825575938551489026240088725875647724625540945823443517045923150986764111345773282576693554649875554596840560495195498802929876929992609261969026710210813600010802343090839395287194838128438006473881798963038742637091618671663841516589341546749764496826827954946000086156166287232566855917971587050435261131597951151731137501179307460952522537653414261874794950718275952771263996636830750957416299095440873363560100453924810512777129006600201696245955356275200147401961290479345574960362301309757228028385795606876786493110860792968293932489038068918350178811972412176668271250593875936325569570008500567655092641215196863699347038413520437855854770136031431691309499409489884120317354607964912238733039190761571635853900931098704999965214905735675025183751190027398898983949197730433631648836765697481117371906871635896803265252727088779410777116293424359674229742968262020833958026903443211011034619054129197736628572938542039267326628392584297083361340528382314520292196439057398482558056949215023111479677684176591740604306162516228988344161421506288056183019671360285984596245438265554816367411907366388401389442581506644316326384149600754355179239168306854175810789582375582753369446681321343827747119892934960934903555376110740666599129074824822379961755509325203898989512179219771467816643642344383647732400670525683040638215896214109020246643208349321390005622192383160957017233352618495686010525769732450448056213631159515733549667725236597769143890207527873160201698858604633225567299346973731532354973118558613457269404968999796547337618831757958137921300125821013569310167214807478985180395422245429877239694559160366782248256656344915262309169315742738000859246585083344210628184957797072468082197495507094183410625110817896465386739096483819455248011210754890109389677332640713859509434155158374331012587879847246377859697948104485561628718877271257005140821382968090864443661211185491553866825320825831541794553383575720977704530812898393759664650992689895001382314761059950370011591568374425171905889753523435461267297263406149896865240610986365955339211643259507634694063191318068837087122837011296237452986164038430538704746357720619869950537550661930793250963728198553085577882911161241340420631867578156969380695158347288515051923783450327893413152356729526513919361359692476180743703654051646413554073811473009824600661460470935687097190126056365908538284741894671961008227912400278755805259119640976165920252298981246860032208462976121711864878139549079094685152221930987061089253526180107392303897457314860077125787621512589314918596235298830337851832207814486633513167086584449167998340835920577970687183883940413355549948070155000837316745899570474520710144276398269017200632272047079052115617342765464392690177152512369977232913048983328054785834611869588640903792800771489460808212000109513154717771558283493564561326528182425676303046984423033074107046257743573262861366919498093447718705762636616912636409867075889422126009052552841038645806858623917674580028471377494971492168370004026955487401219571248704159995360482108156922716577814628994080171780048459268794470662333375632196680930552795960341714977017953462237262055474684396325391665903752398563965712879207893919220211341204922554906293730943780260234679960083141584284046957335694118909029118213629880364522389738905652379718607101326714209190105259989656631987194409298906162463384337539082098433163025056322479883067595599836547021236127110922985761218548923089967016109884901087359598882015066513306837078270324498959351595791975146857892849552050142568386918191809660536235523306066863487013838340310746735567987835261982255609819691275134525146767749080121828522575788494259297533213729015340203139717521553252760392786011844994245803261257148653651809073370953563868165959424796152745940367255789135173652705979377730210035729943373318575167345074652275036029323488453529672766562274529168997642949294912931140173997920543266234635886790278155432736913188452545424778316543043176743499522516793762465650974370360615915939807597470413292269966965262272200099779177896499626457340066918503100696030117302060681596280330726738230389948262081653764282203550428180336810940168671169059223469804896466195079823898735718066711704793629464998046538616618341512934437732735132986888390956612321917088012739691296737054854573843794214329033259080816980141399539451721328896627682823264385699708392509820567563867205160798332045104757361451822321721253175642014100938082178552953056423865467828293851194384520769352123948463740312537162757927701689636446141879690407316630806547028098252599553975062518744576798820078666856330310833675826769709336709222118027950728775658178837588077895944079038169843447391809074404064859866920507788155440015140405261578092122367028783518202827972717497674144212083520256236178762501520900273980735204584469374731568110529571703053843832472196210729655355677489275400851133148654730846135369362714109830632714597523316176185975039477160433095947191409289455225216490042149252918605841385608380609460421585608053171610934306226573025440453838884549441102019913377929174381798257958317040571559031816019309853027207276473271495532154510934363432013997915463685003259399545022117455087653046008428241017873296993667751242334781594058322742687535895178905621678200661660951135809411317728340669269483388686601679954469094104155283531902330826093892865111023194376190206731482563022536723365572509521847785468471716334201366997812078777440567388845956124959608030863736979020040035194849096433164627396264761966724438677073042813463770521895072837718881828558230622231134341124761607546348453824121662003926582987491315881193795849066778926180923910284564506251741178567609642333807141656865017811007123924555020815048475008835512150426923374154510690146043915124011250826019118630546552450907308371396464946100739256043311588550903900993499276667194186130404010815439214565094882487560383022098682741061399800325455688434470642131805454259561223833514375301140310208442872717521399785209014789391510117467916288906198765205398827546922537499723294586261144247430899676157876054243161255729044368564042126749091330124506937256245233335409533622452922820313421841002915900804510823451197643364589738005012280451127301011520606747561586374269208680997285654635797948616472022692127671466391851786641909081477606098468463275822066792499578512491400849406347916934124592158733638843245518307405689534581916445833398091378569545074621659393545095507944134751016692275024328175097299290397185318115534166679162934401782757067316295177205374615134360517218772603448494356375961635455577207253647320692940424906847419200408238742511379265797330485031894065687677027625877531774024369537356163547309310199945907558886302128822182248193164170982049899769148345455335919924936696246965084883687231387125722887564831141081714011819187909518890312803085994995365584467379737926416115429579152829937290097716623664595995766097000295223482375507937879489805612058843779783094820802612587022059981753892423793049357118667979776008734035569507201362321148560070498570391205187720838382686277392423634311586341686855810320750795616534430844877470195205267001438328594107706828501655124487457050587225596147313539583285570835170255464387371426297798761809868687674744942622340639593179792412736236444289661356997020950127072086528223216211890667542970703519055377749448116506081824844861019350332474465593920050070775596688017416451726224070851025901976447881755802493956336804219912751186076910061722399665058902747269262499016552284189885909778375763622498731897488023608100712519415243272093836354318443200940589187348339368501468502374223322385450206926898056238565151934827895699326102276393800306758294753121193385233526103890734612080808682456157126828848584048627030444206412775914238719223406282110307373935352675399233936652524144135961102852397241560410940600668693710536025993929723451760287928024220968464336545617058150357668822783350363421161971636973902469864454125947291982256803790543098667019476553526874070066969900283605534631790646396856138762391593518308703922116731150295464201171897183490381611918273756260588675456892113500414227431456020932741839011612502318931931762686589236252566116114700373180203851362429574781616237391175303346138718821151510791227089248217908178639386335443508999571843800165099667755994043060675264088192789245886588536402358156591989617113512368400902944608402983420485607147410589076215465104817639263629132475310670809947051689816592443856028376193110520313006026421181728225348703611977472465363746536168179927380697675925866430944567370355391129529065366754023631576171667367341125367824353420380343564836464525569352644925667489014291236294733618674682002570896590587636951994308482870630790897745479717685693465479271427035843678950565958528176847766023083863314217780741181792105106568849661808809396244924627423581930495947470852346052916678669450949066748974293445638303060453180810370284350764145303016134197886290155273415244458701780070357621242452643045203489079113591162078126441870159866510387884238196100410866209775152698269601092313012814086421630148231599363160522123754070407843735965222282719777021633174398737200277979382059519670535602697408444146646257091126101047372674980483193997812338166184961746082701121368498287809053803876416292757150769825283627869717921206459328149110156473767514002894715315213688254548600324210988850507224563398587035680020015705581995807936320865698229937573220547731367855768772373513947576072111039437198470834367134452591550526857880356755502319999803202531258385442612245147637208992545035170266316596486423487724204032540582807729388453698585363994572048592369675431400923986990383391477938121383049022167003271675779284325256740965643227241669736330081041302335434503030295129921587316211004740149352819433497455076960829872704350075642996527409505718568427256401552405889751462391138118604366349799132867938694366989328049106338635131600684720079286695205579789159191372548774490770612822358579050394017187516538657785981004046670046894211570133928125525896023649648997883605782025217836764583940165760582711880854332559138218397833735449350520405653737565377499155921058886332187186646107415781995382077835526179912883751961337463512773530901622293478457680621156185025715370229166321201582052914925829853864954015342891708608222181525283019513378417458380469336594132030804798886721174868538745782259206058081589655673151138369423276209025711141374261327109244658989099115117829996087341014271296329531149561898368854368169875109202153350111967884630534807839117161867632039682427469020033204432687302051921169786193063010700309477053625192533774977701891339564724086432459487682237362178941995320633009213336265235083490077289987556611554949493756760251835666191095693038074504048478674984174097298949225589883538483112722576477054694930110425471793744726082587861257771724411106131308462226744621303035452462966616339140051600518992260962623214994098486172466060195510111772470836728132409259643761951992765090702226362775781889815747294899814659666352824190851980740709612521072465482562945130091574421655133977299958701251027387819631722788703032305776360127443736507686686480902075863248957976228640465201098051253672425749488898651198309150768251274077616637945884579832839933000251462954998266532954908838486878028625803593440840777039406479326506615162783520173671867495691895457729981734279462891889650775159697303977293416399412041814035848865349934705486366791847515857898462910417400139640129517653977110515947603734206614691690708226145628329016438833035044057806550184770127556902795707911827281299149413520851531039019772705120931104921085171363075064989791107927332950190366411515238753853293318679706457065935541817004051197272973151951079966228107846499717269367118079211768537350492266395601795378824952037330712459802694329849447201764425784777024988023556124470430105656911247917251354358058900225792988930789145638195268997337420544757019697366071094063752038147904933989095832274907860697193588738322741518745178442725248980081625648657211396999742150199531643718104413187315977179539672374421236804399337241146198051414834018223660480840982527409631852604123010319123714562794592919363490464385807479651901104389764711214818416547510969173018221762564666841710870007917015419776402108814687742054843550771871514998650813480658795372808003785485572827354967722930440995209814882779871163723579621908208987123851175402923966950921923212789419912468367329001453957850732942051578338386419771910876518872781453454490534966924763689396299413558385886493101418289024834644567938046968726400814876558921341222987132745789159669654340876962096516937211437394539432365045114056021094564496326031620658795923729773443240431509461985132558832718518270489437873427665489712358694075105048788691889081862559725122694968162616117655786137647315071289227505149742617153653416728483236931348066943730160143750975252137066970687886705052802832947550898938571073035622763661654921094060659790585884872573934907250251977977074762308694285453406119648471420960379648066964832756420403717005460419053099140501050839936197630757832912518699257586924978688752436377698294350850974663169609536525902812178893342072611144611611112485218239571788474309427731073744633578508091966066932162663379573378810108780394051564828722413074602821126122582758831302319489663676775657196272492201787103561141561854224864854138759543819390266906873829615320346593936961832479684484325853418494519252599727513674942029816997569552396142962019747700489767515095366248086633331382770237333024554490406598592908002395307165477225634589466800957869744344260325855734876935875156910760404670574604018686353563962216914605684686985971662872970437251355694712045494611069149343984807807092573287978927145968253336451599459388995641370479345860183796365767396603613564529540373225170568406920136702836942167457161695716081141024584498532112078082157049182273949213496868286935986465898037410697310415150796528003897667230510896370957507858712438439765099190755750455503859213409107758091543775950162166748547088633396746764784391858897437961248685045976710562592382571604884745806559903353158959340948766824450816358392200561441586020256506625902397089883861303655250410683828239837321419115293673141609815624429772091069732554660646276906310369794563578417980769838547305249470806034851899466270219612599958126886097278512881555970600710951684912452545600480860344772488613495032556502542243154486450370039414601808653605135078032446897580273004348667753233141816366899907727188801187372775229144356372049843915172959359241789269832388697561051224005868375805479941472673798829518953230996923948421091564747529236177428039630875833108336522902535871835251354468383858380115859677653473585789072058425068613976485021475807763452979572498442772094178424826710697578022097120770442087813919184953469597040714687762567343310349470309920761764993089989225734884970347514508599276858199674252268213875566564483158830968068048589515219038653308890114654634550444967530666483217383127467596610050410031994529091796439405029576479759985401005324933124371741616019955538466141625722511499394826634783690707591093980933008929647145161802190323064354472348656828959271218496962021247215907628560696648343972815110522297194546617361112647230836941936318372490401676453030004771872978808829920394720939058297374370274141122791122400191950546597799107935090375261888695134598462138036460512651579738804470885393586923419637657210213420077243025144435871431415707671336538270668876699199286856511879385546683051015024891444343101524459303562659302891376965150755941792951730993666762172711292772535734131155866389537420505025066585735951425388065925052624671616773651045419159733452968285512486736135932169553358607566159891319293465616814365065090353876749482714746155399288480017261856199878897019899356080795728118233975634185085560939048569411748272443279217034514054045004502330559200106299068512233870913059867728607933257328151006023257884675495685963773458392751842754537471131038464745953537576531949883126036515409607235938904189789227416344084598948892926522673692859951107780587243947984465306501172794230430005954513069930950256219978245756527007246588201683049858019659181334590767604886225614317934215377888605559366449332667982344113049924732697920618692263992949576713030943827975335524003678826133357461264781864390454359577304681979385007633592387439716012111696302789162465201174335504596371440137467849362747677352931863472838662295798427148878835767284395778710980667499819620925680509700445709006848449991837211410014624830519222160922329665893532568657440546095648154037856518241933690896546823137158410550191749799386885736872525637412512011876448810050925072871047305293124158587698550162236908124471167200127100280332992235548839526911925014176929480271704541282532306104265268911288618556225363023580697802296705204610007422618566030709764459121714820623749314741909647002650478605800198184741125404424203204911694845350042732346143015078485784545633261690715659197293801981307006845821425502137523860387733474668918021206726931998555543517867499474044088751369537755594049663411629338727676018354575764577629762402235173757411823161255008326605710657428924006790441626188159647285652627816233592072295686977820242734564142946534652864612476381975429875329870397601333904987315842323901933828224086029738954287621062996804509252937944657704500573440477217024547198262393780600054295808292661338028122039011464416412638216967236570220491293219474274979959840790364880733224702876310391284355027177576085388696286601471583997133181735730365513374763406662870542815388569763787251788633929733185721067379489424072538599089340771229664502255494795060725866270753045255017342487974953428862230903635473019423480782844845868684297511049845404748310172175931042115143654186345628604025415194429864605221819448800477440397828285016638063699155298684279667047764877759216789488966187633576029039111982398148725503334818215154162652801927743151057579289845911106829056059227703185293529645915422197599233509084576677193766534440142786780522113472212418378625415706813296135769478491932843742979624117135502650954337866430768304362304915602604110380757296738789554802241688697953286522729855233896594859436166493865888479298824677469419716222613043939489205936829655417141192013426596110554154863949676791617955116137686637099814921460962071700492620081698444491917054544497290828161890585008179192328087931002542781973147550653698787033082442184199287871092915041532739381160249130848577974852003823412628368400143926605072261916399507170809304742839185966470740228001900629953429435811978406618311225724340236395972910961811925862512410517147755535907948199371297713354202604605764951755369325646136227333390865890216671426640566796794614516668538682698463921348163102681741929185344398544469708308760464972715782808332023590291609995580047367668435355810486017955968234689410814712798319207140102962837014997071047990457275354977766613389587578489118097080451934842414373162168899565206060933867083777632959225085014672145408704254856147320374004459405828154352231232593207885160542686832864548180981937842798580657077073112845448065243163180616475191777053490648780990611966602148576495018626537522936122620546839955563063753041123716319073194441830099721088481525694361585690526152109889815962339606365838499610650491580805283603451361075206621553053197145445936199571996500963234641624139705912344635399951178292682454673555227679248964714113584835723922011075787111638273242793673563975449479171299927809007808929280239693069480497527581387141857982452246080127284633698269715479265370698246464790407523799474322841889580211351483191850530033572771396588346958232377887735762988653602174766186666384660686833859708604562891835294746257797936910183966465176106534274214948962147045283720588806295634493070024400623565176691142683304190321777118051087603117879791748777213847856782363253868034898703069588384123129881338052928005682269658454955498829194846019933350174026868232280248699579438886078022062514098859890145849166125354501982376866200013566726094846608819487261511206326091885742030429025770415587074258509768469775598225585406292590079351791402825895706988969077034490002276674756444104734528425355080460118341578131948234859713847845114250592540787208192923970953442351732019987372900950930184814125591447507944923383643234406331196683460158711697816576324070345806000032331187232947076180121910760830149401558652204093369804745953324247749075050955257849544217570382265363268362066442238941848167900221049289549607447794569037749240214222619777982457242343852106173634234618880583831890507909298129572178971497575972848332859516072050533392572569766144644167871640693183636259321080788464765161496162447694790063340069559888974055338582757133235425191971940839670142742967866710038692420108396099919888245868457151728739209897943255737202538204274576410520349324344635391539752418128192152711008527945585398374121089339324878570661613348812619975065290693901447958635611186576147686037793187397831649400126276127265073204762032293670956773417396603913594049639057689016466224807619339102703346775705881062757475581220637641009986585256878249565656211655825865402979187537467949144909913308345800678067436394059959705998755849826368773194582288550379197517202331492239115109941605588337527223100949373407057652042137553578894786939582461925148249001094371176399502527909161857242811621728992862086684580210556343381750329951337088376466606547190516759795237572130315745103399911157291610197310010453186730680779975980657474493164068796699178913901641009857821478664981577149128728944994251683869655455703021698225329006238193769363070978169536707239497551421075308673134789881088372724926601274469142127361627067355736730901844078209919560972577953426308061339321084706610516669204726071795592063049677928174254649681184876998141132992511328945275725383248490273776327025807607008672248344559522292162401237630727342377680855839173016518334166124521930004052658982434201772153728789489331879887369927958559548584954689126734035662069991412919013537238888157888051489428853055552320948996844507277235685209476318011234306187468423375986277772457884084375690988778572104499713376543407107101756666309932689031400826892313263827421252781761217663794864111685721870026439296548440047235607840985410761895460689214544045970663189515872657274238950556353188973256046003869002647137737458436165897156526174571239943767208791824178144179711265276628623356688396832089208488626411528872424138133416186136510718486022680287560436022551606167823651023453989422266223148206593857942391307991112313204170815392811367556978979354779136263224823238808432291763619895380779594025139223009025041475037593252421699443634964116229651911152467702870215667383354869451349737494036303068949511921914078308075665109703209768344565199456174288716393699090281255148826759476120109104533237587510093993484674124709099403490725424325149891517129446985952351118363932732318638729401842837989694393444496270442435145296456265459171369828668096858613419468162449021791331474964463047217213790276905744734241099978883821665815147394114565509240705636340261561107059518513197816403098847978777512446090061124739273832348939319477816757254999993167965174884761996649624560253384436570929537059968252049280164146251639983826461910989453384741253270241494000032380520540896803121342835155652943094982848462729915906592666080679198896839300836025574056593683255529193291496329568992705629783025682519842319970268950628844788912292719827147646325894084835309979065229966914479748365035870188181179120431550712121658936696184312408666027169033564822278419210876342112515445180029727557172908083582972140261648620192659737855809537144362181897441213393978605219640406107384681506217386721563917714582442674388444606400381969575818876461147630172918958727325872576551293650467714721447842802113726277145010368882708550549447702019297924654523752752866040577038990019070727987936968888543768677057093019439569460649004021625024883075039370350604296702452388169347224940240810088054755890270897868481946501868063637686648154888291561752585089770798832316703227666539343125537551253750372266880537616965245288759954453028677052099016887968941518081345942252913210537961680246432188742240554377236590024159163035175113963556220591956882231528054232485373721425334059718923952463055837640528311031896378364832920861854724082425414274032095310386219497736661812494273520700241419728001385720469236893346523576685075750336635919202209521588680056969146674035855288413918256804685360886445251478055529525612820716615480324701283124100439216784973934335237580701417868983147940218458571320695941199729400541846378777280886328291618511313817049463675573917383558304221608411415079565823203655142339448300813336485072444736899784092339569341071535726776649870804899280972374418926552227504932399819698491573407982815135352210311841445560549137172706733603757891256651406162656976085081784821033097825215358237693183541579467478407417900468373775609829987518179796054368872697719547063819852827069987258678525667428655676103829480719361545789220929503624154370409893722337880869855147745487649069277977992975572643255015189099225768957614629228715366973109162513539774894097980519082112178777805197399801026152575860251685087535708903823607576727558923462299364165693410829443790070624593944269193106710267925943688395523791875796034404066485152316972288359380648766861621661917272641824478247152391742541453799944598880926648981301500810633274580343857719367457483899195743072840216570132587823196319986086712191804952111477192492907767610488219247269080320279772812535351502604958166215569601158053045047674433293265474095323970869863816971567454050937774369767676876908328412823097760280498292566841837275703223261414382759924261451506688610055291320699002331955787055934118362934841381319513742716390531424489379887394663693757945272053944467694014436251819410031629520489677153309173320987320836528663228751554877746129210858021346972739707820306155778200051124862081601049132968196902363456757359663878204186749778768220170442713480501548575225673813786265524624722009969244518205049224101147979586591951341017284684976209827884451327182257824239189028175870651114444175840371185659783920812938465000774124448566149087751906145980177255308121918087860829426662196974375741585329708802759606997332109590067135430727489645140355888112621716542514633200009524781588094675450953495510168791420689700095554609937220731795943776236692054653999016070469579163101515475838647228986293189307776762735959286842146039959852543314928108332494995540678422042690936585249941311275451856195008853002197115801142505577793714204146759774426623898634176198498471535694123543031093793068422741730817491429889589596710677235368727866289167204702334928783535021935316159691328586781076902372301505519178719373171706978916839773622239360202856368179300893913025083428896997347081862014590085099535341760895132103757923993732850035107520451333286093903071835963226584594110940803266342662368104733721249356581617491520751498395801061206404775762655275220773414400722607080700537277901656820788628172050812702806776772997758739620292311032900103574745012520850831055240337813090286722849483584262292247277189678201034052094962808572356810343375670890532620819950718472380585874431542097530176496492911922203436514815690490569681026921557549761692458687042200646556299447922068785516030357726469566524380481315856610635785772820000045574413842656668172522664209021620678240910337441757884724248256723921341694496516311200624687053629104024368313052258496870313083350940377654269236462920227381627344652736928074748879709269456417607013540549293653734245840608171986943317211072756472273506239477732603423484552616911514428549692785509212674051232935672033610647003871060168343076227491821445060001783618529599527561200639891996083501561468171610721617603003899332062088358255790979119891783328710280840717904581745285593766835079576396497530905776765229263289546497467665528247366972922303569289776578526179018808386185898076032301558263309957437666832701839232020442113200422462214663140072394358025795518483491178618959219969118334317094464649660933227696138273168974378194067907871375688881210626250642339752175545798532402159534663245886972982324705992794800305255021486451924626161570617932728158171883863271859025812054755792663759040544772640994587405872829444233446824938309800121753832262466476391411258468089068821729793945169578889298512437855052136292312629710157731585937201813262413508229089049359253395704119443154097117032312257543978854425177519103698853433110899939858875923718934187791882281736693891154680565022904514406621194793727044863801057850332811979412523193533868283850035683646733759932807157819096966536647231602208746604985091611616705322753299007499723194862538559492411937666610690599260997270525941194206410324106748678991604184317938126052088417691177702237791758226579129386765420767130581962170791673826384995267589527866035720088042188323796927481095224379422977455958071815338456794975879914381216993254757147164383139432072803681625238292919947028052004614364813172889854646891340533183200752194714496451302578014828688088203138911336732456599064006335484953945282372523448213702076667478333092099057955992000202130382016120805485348505336008955255100956211990846710246426957964824712092968081404698154702776721452614634526925971126185586631893129613062121611671228804193156165591507761319846239018398725686673510991849634948683343373117405443050009413816984996070175222616511199558635606335314361525406691129480550389682257606174090804510359708608451734552988310844056904491573767005178173226162462421842998216765644782804927557650605116940664446064718575102523040970710642724467908381472348889093447613121919400759610888528081136195561079060126543922394085766713219550359198871190534857146800062474709948633799873744027186394564527692830081799608349763678981098412943892802069509839168651558992950747030223244053044884817999188097287506276448643214342027958841531729048877706538593868502795855469211726842881529578345096090102303335371688115089168663032084076274836241682643620068149579831898697387186058812745641215953121611863426713627521576691672489450021712390242902480751189369800181305479450743480290042588476613167008282930203378280986214220505763707068754069175391997027609614236668267890872843986432582992710989358808361012166068139610644885691796294049673867639496987611689084100292220548994541455881872267657108609541578237078809307666587783572590846920438895529901687721680492227583751414738360988752117534882414182723688328446809040872466742486389369907726461519902472243638565009588797500702319108150552821790953202400283751507290535566248054553346577592938455631391886936842974107341616030075651063989522351445936697236306800120863546752361554940121651345664788094666102627607449315150545720574737286797082006844472602175603635957180151135054773699432936311220573093495858172435047029700311005998142333337287909506145481529983742018930517114956922551537815148301041017028441039256319659257018901003182866589090996184535974143822232718120239263021173718373006058871595076457526620264719606345103294411896867659528721443845491835019615252517194883322393110858507418182508369256871954888330542634241631463658365898861714212525111966590536427440394493574012094209580930316288882469752961001495025817501954917020662602549921897094798398301964174438909245175706586638997364085849068420723940443412484374715204810706419600656899005218944956026855272316957270522976023541541518787834801997808269411309227131973179485455125386375833246617777623978504183006745160972335460054354690478702812993546922839708674157140015439683306391300763257868592828828280695238876377746604014420364764006557930148593037115089075372441744077438528341510247662792893007098221834185874419748818752458212477393674586384110696316332541320163329365931451702018736104151361518475039368930444137735720499634286772478277788606121844122519430307168288616009494067464282526236829389917600888109515492176627695477511067722955985782626680534355373377011673921904299303809887282282572594250403387352506898028237619332893860604850408807325951345322407127347985522092210726226846781295083159496088677646656100363688694572672181127957213877492922889570315175235147237645147156099534387999603880684587498343640559687253831666915670745312642323581827213738211557539183007218629037288607868701415183385276422684437565254705327165123544109223115168175459713466856428710569870501475439376620825413057694425160276395728737411209555421619714129175381587981532705399625757517714536232454473954967029379816250816213327248933556986750750255878764062657109684535933590140640473469173702472528807639267152494548155275873655843878390105951406910544346315109649729459749984332611067238800008511375908054476710877663647307609571505367934300533750664609044135308292841928113560734870139055573229113646399558921697958461735144106772294372448057817913926070309740108041494072060419468693339213580442605470624149446310290057829787823374134139367333579876278707386731599957981855755631325348346234493929246878859003857939818986939628462170156413492872216191585934102404300481225798463595523962154657801071155029761654398282347608760688483149188013413122727772475557530723182809816151589081933535246178293612878746942266305281562155639016050725208109733090827105500418606062356831014828862990781181842802331754014770589351552273810269332488190415626340707581982541843899830510932210629597359014063302002680367486666295252211467770217342934320794126577467534255885698851472320264539816983403572154701635176632822466562518431348643913245106088698031640172055744950704759175385588226022048179398260754343032395656027984006732046602617669429302049949555313698339038139291935982136297628854281385944064313801703567650447872900022612679351990761059467863473098940823793621052155973596034448970940361546577008679886637381198337472769099741982487441025641849172846016447490849238317433222864984525363580266698915405269427699836536361633642941041601921511771942775614545369274474378962026514308599803678515311470830012169899452665934888124888924605668852064868571613244674218066528479104411272726776680685307576971346416257933186924796637265905619581369824916823720272808824926275306508433616599933388055782746439771840116895168954849648553505055388510135077308906590796604169518408334241885186618213815975253127674949817342470791326823467950690690628276833937232506871425387486672176278432524280514978425229138709958238392502831434757103740698278546721981701386699871864260289455149867637768922047585352624446389742987212836523149301423345238897683479386496250616846073436455544204378311974990599527776369975408233103529583315179241275267905236859234369790070161385083171247780875055899404644117564307823674291657318968594680699783794528249214731623212852410846011616790868390323046840376922003876915940250727477496931989660786796332721973227327745874209128537609995956865063071613950360669312110153896456001831433198403516178519462330606519797931955479032628663152161168301185884032241521217229731931579890841414796271257726626046448865117948833632354950178514113497381388572994237513777782095284201604614578407825493189725211019262735260472822972509894262783351597134856427337460688757644612480898379793517817387540574294715109034458572267409879378256667214885208267524353067137409917141496027787605819370841090056563767900645215340294675472881310734386649991348147634532689980352014235282154625202182676780466797023496913126790347560713031473965102586606009753780435872489485760811375381508138043681107602647944395346832547198642350523907531193807557096078160717667586939271526562639116740776548409345026864244296318782919590586478977532188943781127100620129412823081328324426174208379599409041648817915519214177078891144196530693035041885173510013502142131319845922070624706779701757432366606396009888384347280630562520501947447439550152850915706212295522289644679231780346705456776382231029123290593915922104821292458440616341157915469313174997700693827393604164465094531865297328279184469450665253842289076287468394770652313184533481761528922365658442849957558276484256487247333570799367104005466733162958177673746618738769418484152793357258530903438964667841170158834713142275077257039189358352887701941833866426321726208501796646870945897114063537552958524819507085444012173527353141208999247248460420995003369087687277897580169215367072536370649427520101176152613842290425648900436633683969521287753220574179582992612763613374051657414096677837360462373461312952288163182636836703856916287065198751229667550749093828599908379124691014901298227504745476690471511631078211120980342448932625861596694772179864118657781897175720432582468982636561811130002675049116520604591087367407786479884493510127065375454099501613963742778688556702525504229896245206891434969824135682908212154236151822787995364959305568843550871697843171728414212150952336876438073471073164556746795553946336824821023403905296097545337164630336458314010088165429545957780742789266355864873073987779931080792721042778420979707317267408677314841333707179226357161751590991946979897217257046414955719929600111475171813584429735746081521114109053122800321491192299638499880544719257580150119169503219734670599053606979913654772411658023121734867608511612399314626818176107280714688187140253114878187262700339134792901198204452829517906952245718933731445978162476231579912934200295466538341110953617476503374216961576266423237682932925412874382473390423264659808360595299801776271180102133036797172257830744326107797583448424689086351884397472751033204134752937703873759611772390456232991641831876285350759382356414524132482599236555296670518299075074096152807107181487622354607961002908286373447993707363128734069283197070302380433391238054332806268661530006485619956251698356970977184193856461728314099146571606444189118036458241574011485598560646122892671826381755180506414240977823507467906457020843610346089453492434453049664576709856350410598842161643708668536090493161007454328324270433552563036247069156880410428795889665773478321359358681814713303002905244389188897559953297946713498379634057955959960893079094054235943367418259847538782286284565854931816748531563729055537227566761340527742002652306286190978375783963685732110642210310584375496987986262554809045110797497717944853885660697252321624937337334427200287092825569590544738584808242050080974754083039685080153136973012687319333763250908631267902350597115509036082965779264065971618868868495420540430834738992952492283755426821193852088138925358740107012690140913777572393668587182776731946399669101596813005556679258032844234843684392231606763170973522303551077380274207412377793546775582514684173841961601444855328746226266183698748314228079779396723970790945380740551620852421784892694832182892403337624890833589907611817564512727980678275693180562520948795096994686698019139781755175828732011297121155750378007247263215306902902134714277157695326901197581229029763663658151190686095343559397650231281004619301658586295744060050725432250041232952117094924110985559696454399190878544474091683110476095718759429755736641742407195096658237270698598404698609138603824150441258682891867994160793913018182008147272112728480171718150822405074403299541341034061067927018339145680258310546294584814529344403108851148038715914087090640470526110879548041223663010695874438793183665420053267921973243738520780588643213147148304849107253750825694605681708087243726820241576752974877858595296061941596728773703190551446170718942445374404475903794659793437182181880415371681460780611261614484399566645301481292607351903284492424334933022754048046726538449903285016799512260236428736067299614677745487194164296481665972426045881413013824194227548412575361427837532727432448230357564549750668294282135779713621909810810192026246901905219014515365421437996361550807793133613882666563686429485818920919124428299960787786440249858713228776828817963235631288556982446267297456359955069772982775953293941084536148879258555544725216662903979127938963502515447245983887127029248088628113080565435383350589658917299327690929047784190045131792201407582450750387379578938723297105387400607296304228975081286856194913131202946047762224028757007850023158255513484238308859207790472307545713402052052011213394725767546194939970604206008291859702244679369760195360128003331586088074020512295245971895136825237494707345138912522389379843691395423790617888861661631862420830421654019201006964181781935580362641039111533104790232159262971267592276330531125538066572423695415441314338047723910008065688142157478332015253243181015868426800922103929963734597260242886708875722152937053774712685722080251544212231977031112821075330985712316646609746028716697280904400106528593292060721374290823722271220038206404123694949756992704606083413588315316610347380079365984733106146539485267868888445762028569758173128296529664130510538865095348381139024362617627669266586103460202851499170525395614450237695795954633818469469943630252917100064591236210400916713655435666022691627652120375769447901550138063616877612503139954709346115759232338074999041381110628797942489505905041639957503273126571883206368574585189867949834060298437329589436893923987842127455132854544332220805191591708218548882075647902617930863990577921396104959090684435702068906789369119953292423520789699976342774743421489319850299640708219831544932312242803113728573916949619878173887520836233732495810474008979096961799367130055825750117135960839931807257399066950190518071459309526802137627343391362364851328868961971018056339924559895622180572878431074695893417137609993789315416817313486939307292041003353014396194605603154596039822983413838005123932167089522401498234381698079239847120627084517783928231748835173230877396853966418010829346543093518588028084616832474401107225536475963736043051373368959964807505643544538297726825069386357625816211385264071103532946156763135484141823897676976616599433926254728472610883112878507968630041606576722742734181946763899600998810691012697027696507940966153364728915842478627688343549151277169597870525357824264699571909325240739375399850524341215458847932669817134217921019657100008102875948770395683262046500783290783298437591078947998346654201044639309198346538153802424811055324372076848835678780919405014564650578624823227634892123991867587251904389388732803218520745192777543613018101619882950066636786349053661788329095504024891168018087079774260774572579845174142190960995966628808388926344083583761792895462958941711142269103532791837655026529747969312593311270762040904005146762873959319566616035375173604780680190184660898297745079182768913968427750795326205497657411938190017632258645376604809524072096029362437820787688468764513248659222742489779419391236617048208910435142739714565668961605146369109674196054630979561582212332480657811824468352072417123814199113004458467079973430235448570934927403333184920449356656569850383724747049682357018361418972313113788589880023024060338916105369788264347095223391034312691756256182604154675072382746043725215928971859790693811814972455175801723843788847317953043271459994968699153599466626523290899156444135065549603989955766573436824895512784940389831167041887796945521313248515455575974786544298516489418730931775871358927519634950936345104538111712561874042200152121170834073325704727580354790368394359718359133245053105377820708959446827139513878664632160314328661396812109499263808808795015094002840717268266511022033881578405209255496762223836391305851104958440025530885139380659482105726584429142579513756686318191494246062547020554772349792044046982341947277665036094651820308909574897088240428815781105963881411323805711999521234609994489709018132793560858051372290812081636110389065370010972383080443421261103819530357703869397402522196607988869254014964001352597498246583705341412026059313889655803670884956431787337073450784384106486957571724747479048975639036959775797125231592018111984030499000179711544984288985306826036791864918548586036332734645431759166575636840846798904313873785384387796608251804635539069018949933968483333913118853463842020844056551071719222133557403640355877485447616065179272636259888700663146377911857709994042915853317957916000278621532359676532080874653563655088302347883673043650048874545791425930773869594441144319777213115892113351555222730063067779191553003136834597986225311163508116941134591535312353667135572594824965579501434585842874517525734858075493827205027340282442070404164114119348314692027522515486871016421693397702611692307028159056308608876813582677097420355970477964620005559118410918915116055256665909258312108317605564817891866990622974338890467642490567515453585926843072568228914965400824645565115152194594608107633547112276214611740274895149846592283327477679062412446588352840921499693770395236728515924622040784523687754436610808567634431203868517483983561115366042776685208217606984226558527858721325489525042145776369872332675762518258525325489017314812863857594730583050954781525873582919693834760044144702202932687040349028739958034170387192171190568847517651173731718732203853371184027173680790706397395626430438138146183032586013047540771382653101706608340886210745646422727236214456387082083180911204754638045586965764596262454224094139291937907856516789077657571495444623877179292460271450352140834935174551744684312992614629472863446872789010858126969493123072397509531898146108775777980697453999266258700803007120473944645338576808450384310808624347814719027416730519462191059401851873818941284511029801079108300834243999756430199254777272121685644769953417180747905415817158079036538997916515764693164534668106543633091542415627760035681704730753486223508234419735785329224032179565485810163925996317063562546429591167285042934163194684323072268974677197588782235293290022426601657761055844155099856539978954990690509318875546256093362793946632789716483281340219462796223137468862716242208154384398654765170281372189596445745320794815848449510858327160736784753308496153275352802252175211156855163567937334355100830745029982705536531400908031454257608039932074403965761508911242452167341864219068844357193322879726230945306258795908420103701383317180756446057286179034665133996752505721301866262722451530615709775437088662624346174522395477529069930765245678428769246597218425889463470127952921383882123721317556703656177482889700174460109178470621274353136019524014333981900677190835297134010807505021062514713466287438648122745235172055086295873852827655086263943916956859529369608975266343075179029477974449691269033235852084195281360079039046674102395825920097909068945447324974438725914606364017053527478624452519945689532749777490939530022220582444003163509604407513020956350541491500869413887079722136681354534802817677398850467617613099348243957216367592966968979904679107392002671649588119200926155500755565064829920813876513826319628665062485423282285426156922627666181952823197748641254346327288732499058971840722803068687261731927419237337136798051483746363606669403715179718800350756286140066275840838895747221562171319732702634505304913070657896514856632343207776332801451756124030917159307605058377336757409549748824214786570147595700602959190762807921824324425003141869388215596837549355924499393306283827656790490223428805503609624179666742696892793607446556596920200330803341243047874693216134795547494152047381627380028281056217067832441908760103112826564727666418209516081950139424016290278333186020982907312182574711814977325052697214122935880511303785055556897581371894082284934887250351833878031040435333000392005193814558811527806705730188101007905359751600454030105393760484651180635441533206533429760476208199621465277453220183253736080864074209406501502597887156959041699160316215722626337061214937704881570527865778160813710766394396402946756779723754224610269368658676070297161813470868556657050059262328760001380741596121731308567089896523104678268316370578969556458868985035883610798321047346104485903331942395761745986559308641665529911645628900404338497727277765360243085248563202430535521353037954179984162984682250361843934687933395950329770893517883797829600191708727161569767439155346093830441068161422221281202271677398072819958959594102627519203214636571420480784115364299975737690391377489883177232502069421716656294508770372291292701509444407662170245325995983191699600944901425789586324699594986354180668001533578523420834958417167884625119306730801210577568432044465877739004496868545197338683920626750730523982190508637364508887111165004363500635605006274650114694462753177363190661133971858835896907132971945766119857456597042264061958803488250795685033871289969084868684173665411899644403657032406218433880515987135729249952584887345445894586157955326970851834996841710869139276385043428246881294704912469143251868997939958469596640536901535718296039911906556112455861910442912570622807368279008037663147902631885006807981872907016032740005496612939096466473562868262316715791036652294890821732415491282751803701679747388927494976764483182690367016996562986511972334953531789110969341956508242660921320596866364116746460308905905750628431668159405958228268552740947250053156006097787454675182328323777440023962117332151792260598873435299262953213914917804411382735383231624059901029475322784786096941101039109469470231776597377362286645189465473473683353184162348588732900211427105226677379063052986827306819964249027807585503157512359398268950176525359245155302809265318248110916761526383318982376093602041906106695649123634874332795477374067574869184769103308448992540696045481172661618971722113258788602103892918301458494418219853510324352818023214431303735028918982629524855050025878283889600099442527236826226627101557806314187698511919239103814606920582654694653628837746213756607610387122153680141809015010665457323971803630179754765355522398038858568708605609227493567146213231699454911286898456151347119454683820687919132774568075442656121633120705773673670834720524308380532167380696399899035411412336825508082586247040359096621114059281015248307698452977610749815806377462038382468734415769057889211810231005888737600633110741370947333904287754751467249052302776440000278419907526298059083895800629669281152514995939291128652513231222577275545260033246545014518716827593911482259884791073381316068635254915767656450632708534299550551464231088815550292515967149168644534328717143616924640192917530916839401907253876091665518721347385279028295699840806445088577061501564941703266322323165331770810322892691059545543899206395536306814004491476738674665549449424458825019387644583018044416241554378373341071668152662276937666986354892815512926388675973159677446329142285565979801538424177902935582039775289637116015543255040600610853687482244832506242147273440590107814478263869497361354229284090452627062592979044597148401035099275464255624068597024977186651067481708469586600230947958565710659492032174339192867505140541655747403681774969717535327808654978875479445900273505244502149170033211637500570911260234431871341772638804850878292073274675638011940045511300716841977874581972953043401264264644166431144477916875995781253903414472665095154222590347671734636357204695831575485041437420724585194578403772871011712250034398692279761110524307511394208221677537702546087868107131474387394170404114761345065326370857672808683718252242050838171579843409852896172335993900692164027912210501218470337478979991140345647077445858236373377990972793251655343665296467912210572305550071894116688349143343256580901015409576498940236648604143055463685368694497494753610029715649636750174701516843731397869137230300574605697658212137589016926943201548540226084386306693874880337920632761641736116455049668819198172458254158399835003852098981685726193449691475134212426821130157870450170723418647853268195733274374982171484969452918829188276009703697264831485745329610273964762466799225448152163133049668535729044912773079623850982017112944367663858683090582423899776912424338578106041983283146773002693592819520164696834006016117096021927962784420701374148480128111542950874040058872694828288204333418719912853323875075309627907088843903410256662061870529556490304817130724261758995920288021829258420781389934284183173863717673490075717561654033266967840834145984097985261699674174598329581618819745039447226430278222108711495547566210490054906481833158546433961062026391652815994471590019064217863692288537706867293971952656804062042187664282645413325544751352100654324029466203277297057119407630075078145993982977065721523237859052562248591353208511045753455995739634444162297327534261460269670081992489660664768571856516455764363388428133491943242603648697811155176817843956775010089816896717921074771272913664371948640118687146114700219580469552508815021355179621735212657669803202829148107081318344436634538723343548105268562163930457592180180848099327202677087519437638043386104020519202049141166136483178826165301090442176070555014983289757038001451007468711946869477666711603346217839014918846660253061514098210647109326186067803348393634731692609788766086976181779411173406163951111461833024788518797360795597082503777939808058842333895199331213669756732373206440368321119499839139576320517834298966592914925370777791046301454895039417717866886943486983286283666159918313919375214973933136029822652142193425959220418359199856194624018936390341014047478677531945964931788382136073985595264234458993502869958611684659130364906067873529136700043619912863866150945164637508849787053234705463889187618950283614155259511988968167408320498124684230774202088189071921492787356962959865781416166557797270164533080063983511739091656907411069157670442147983333875853494582264867110825517122075940000875692236609089505581821988390639720567408850284217345711764354514135052955800598795724128908476615808942224718058935228908869163056654874634705544876810935673555211349228563326862085801644025794131181964453251692383943444399262932441743853727977876399704755197384587199771210949199548636696327162512298738001011696435541220926654634004883670817501808188855840225232553275522933934896814475647868412823915811649343454952725154103002152373601252830007268234568342768867311337371656449823619218155161842369838408943536330902306588967950783551391878302057898923863133662272408584325232390559638651892613870844589303164803958998599691826754672274656762761974275615442452358157076798086570766774894865265788481372445824877873858927199325398970294870464627336198455561541775980648773684515151552991840779627434066758244359322908741873234372670604898256121952127163139402472771721127626622322786326900306963953523160697164224250898704925963651926016213193111719958018649982111580725877389285348441056737035523876730469392174795112624885993845770794816089590018044544127873433344222864975119416305872445365584983325284137220856165659673541004453709778164599552814030623714043694645316976180411187885164094868908929012889189631171093805853064767561566268566278342342753928316840113931797690123229092030036606165885530550430304015559497175087252824422771627374299395361996990409933704644296436206171829060973022320755224192999701190939537375477409444219441214247651858312614652473340393929686148846991909869738209117500827680314699419442142043878492005072357135802100129919085849745822493090939471792959030182032321956109776036000224990489486928318379435460522402020976640664995067327200998323524771301275855174569947967277357503126340598772916912493841293913664939790184531883081487794012210511205437140513322041135034258330445353183933010015537803415289449444624215460428872548187803082934175681254362610648450583001596019304391559333934519666554549848149355767160020815725206892481696627188826146789075900425566355247858404114228608018164674213171756457821836114577768281920907058447139325742621714612356427733551488661442057485498798385017230012479519334927610066661001951406246852638106424702655070905175548067729564271209558633297468230910795839893220057421280357813618471277125680643358234248752929203325924199142230717990417068179851384258523234345824139799351952098653659361496984891187322313993918006130113517171920361342158952659105143076820165170580232826959254197104804817854244358757858182547979848188025667501003042308921854789365796285619780709021295487704236298794545004718129878047183932250088491486661736058800490610770584143763268272973319487442438168838902243770607268643593813306700177967013300580455067190191209129721814825252665339297490275600499470359567127886692034207105837528384935122009988262735253500355420367465678668021862729572925537143132772438543223207452702036512489006717227681901404181747530334240505592827251457621999376023702678984799045137047247349505314733057778891458180459104918614106034397063979041455221355861900201456528180838453406310964524407596842792264498790564529097034891500646329370142962853729298312279955681655376339811238927468155856948184768876542838689204500660508344667436091101659859709855868004638531575725324897912211223400736856583890851127425542657794025646352915660964004130293459434407170292308062907277744549914933913644006964144394872866056644225818405090986838350257162906416394648607916998465863281713289689612014313847502496541750701517145471349309091996101953829137683409146938329821088923154462384355908909569596544002370748003485172926929383607195025075318830975268585285512190419038194277057791010494379412800869210685208931479030147519024381062489122697224339691411106640650153661234756927318095397340020148274414821848644996835951383496716995430906945400598281041014367111275545233343386661275778035862780724122319483185427112515158827183269906019570581037962161274893118507845085444861121011925272194669260650841200793078360042817297936735207033333741471869548590237351098548471686332132515287838498707182111370831952205511857997949122706132725872609570103001848412768179745232838771844573376017752443573862811663127769184131023941414442553224776703970128658351068802004891742506406231378141888854065528900673788274227885774049513327810502434458257566075006393642145294849555950360276654100305467536467520644072541122962521457483185637751288481636333195724385855279237592796486713006571194406115533147787269429572633534275201132832075734664130437772559422607243918877744212378856108570290081305554285992523813234424750915480390651199108683636131647611000714262326578239994095474512266354642950329462550336156175911719654322424022263526387421965917298162000880733780150294406953853368940781706997177652821608868818167627936411480840871771544225685953786563854100640299546352576173254545854217210989010829294297032709812041528845657923943298323716845627951318486340362619186300208454157606979743274801489072100660704334159193386088898778513777180722352456074535663850586987440366369144316231450116368306405766481781429460621095679980489793861057743674087488273987578699264824114470722825619163091228612017082645947215195273778278974131945237041474998726391279004480561194179418953970327771395825928627240433844452215872248169989065888062879208893680137432994308064636053153081680917964372298090563547256133769647839915552459879831732918899323576485720212754527466337440398989969699242812306747260743944288787664590750704668072802294154992470619311044079033579190824912265382357079494974559613224534902230866870329470090569949021624886657134850875580429097186467980254435974216786734983845254038439625402388195798565394286884198602397785273116541562320483016828413287501155037004967267530371647621241195853614429637975846022654538955242520858519903029235309084920203672645707257975632556499265136074605047364859493386022150490223418270630068228553191544706136512245533868661691852202689696997819153119993137084837516672998230038643084559354571853539778448370989302694058912335324487785602077951965091136663209845306587932708915143362175535389809881152672601792672910522687863988244337629354403072531685299901416806665113422933629286923793502962878666180072766422991043141513557305455670246469543033435674845238415329259243345976377126490040384905580110551064440048858638731019322703773462186898691051750549948646522307325253977566121860743634842271974871295354989048324525748051914190741959790024796406550369506874331092918279491368558054873661903604765576724619001557643029056986562056649395595118860354780089538572223212001619339699975696943260135571180842267593929340017642122163609592774743803409609430364072958201770720731282101689938251537409083981686119289635510567504749828556003073177940380671190833791032655127113428836403865014701972856105159689280488408399938223638060210193149413361190327760297188601495298313023338809968939762977832816173927205967161724692452684395046575103594574580400796151418967536664483749069561731309685082359161278968227779335085458034303190832236062351092008349086013124868129738158133497774176342778781757175556848120905761521541114297015381378244753584962295863246351448501872967798920980487834401788107611476386198035346225003275769527657627602385912462200996109436421527555703904773428757203622590472189338638759296976463290254619302491453124355619915101647660008629827280812776012747903936969112069415703743413051915154173775643708377614626194901153585227017869672261867324588224075356650947767542738011256053416134448377252046323194291391208627795691984958436725616492150141439889763428457604015064458109455672996467525324760655163084708182549122534008624851718946209761085221322188328898381161001896546894198534626238710175292299557067904728673829481263429489976799593268084865874553976461414954625627163481002232811068370698879832741446190782871677023264515241086333420850884008614400901060178611533071831868777840775620215660169436584571134275120313411696045521395150507180833320434244717740628410572670658049244785363543616734845189097668635774496270075808057555190335011329396522228581432221586803628072195006903288086571097855733747262396506978202209032607778231464023922881329273100054955101477478892700585725535582174814718493313112555066895389634588561488618774177790796123489793535283081663475241413958461238090193555734882540808744522286544264783245853009683095860314030861019603188018054654962195226440131220467863535822117338253928555517970715189191686584850919461024367357907302300444581830644231925966565959843978774439941477930879686012220607411393945121805273681865082628966525634922867599604438143116830734674237695541517668124648850849859739012133998436255808010880720173402660908261897952009950708124870822787691637616430498240757922671596746096168951292143213775253971591505428435713355798975535406220612595738651816878536244093203899656618375703586860865107012352698870569899888300053955697668918948631440159186391991176603735538224600477722350002584977240758152063282174635810968755362348215649719462929354326839660136669270921045735920929400224034237289975315541210078494040241747568723788615359036700949423126129857820808677815557170048351011297142323477905528069584046224405627363233193962163397695344242168565824106808941108059711772563316039011026028088960228087194119139173385735227575407764208395987021936821387668932571898560431220518234859989132708281791164092723320658651557777708589363384774703243525905379360757813440271593895608255356412879044271106514823134164234627499484760454842279307461150226761920921993951059087016002993792541407389901244655913420553914496556252993446881073139121971115787623383930164552387424294520684671379165055505846743883806539058603489457306030086527474496512470317924634098955786091697228735976666056367850409939331481211284629224807671429153709561459827289322311346848061856149777814326842105853483697881808465435346615613663252856751107024395971155683860331849132062949134895038522166879922653553074311228095086033169434854885796127274953719439532718014390414322910261338045852674247308766672315548575592303807651951016889478445811191812493239687925154102648770422094671837690536391305450244843018552842258941344654083208124155569392321174890968323363815329285504937399372072581310753901342733263061511645545040243100364583689079176835074270321270390858480050606219229605473459215355877041083219790791716315548714031884932148575241657825639713519355409725932020196011757447043835799279880370965704912745962079976058670190966701431287673458538820758520943430666786316316039631938837924130522480718657191535513043492161556311129617501709681049912122572662386884395793201932165303598602709509885729109598203153387920720491460623704311997129201019294696751284803786654015346824403557227789183212537799437309112146063969530592410645932291765516082311902825529592026267304123226433186841621161258989438538642020241255601727786322256013088219168219595622330979717910967900008086186470305926470444240147078374370779993791149645149045645496528715720238994216848970050616809743303784418601384867889599588048946222102935135542236901080517122778256350461772108606634110451424352707559488408659049819930021518270718017210904758245890416646748233957892839704350814191858608361867215487887948060957877200584237839226355286868648917252666164833644236934683667128519371556586542268907249837684838545448202392802682189853717632166311927018880590702410532266359862991205625146840624988610810632844569556862700649532141627665025974959490500663391134463230352796793916700893898174030533575987481222725819819945981131335770783481875122705189570781782035608678804369580952741652464432433473441963716152247002946271403217988449370651181710029165602146428936715434485235678146409401189257893054964464597093575029090627033338309845623581464380474960210919912927850540809535764058042141115353407147276184459602340839492851435002232439956302408659786330366936726403777400230520265728834847114296693011656991950979935503528214715363838424701278864469711144537946581749198796177618817566197563647712546450282864044105168445742370960307918316988998692070931629061372152703807221859227543421555896251165935479444080138355674805642495071972375742987943387948900387035993793474974464652501372212271171170808069851737916127665382203516400808477969875798602847153664051016196629789421495176418015902786989787315731165549205966299463898832534943117368398955842711589647363246053058395180432365067890728042005583334915317624472809948879527395157585479425023215291134292335152951604205382311196679117535210155689555161373159726877280972202565225218983331608521934490417430573284788947261324841185519658694052158674856234139836954005355913040037200512653418322058699936457777598123578783890941918224748173918952145445383579306542667836130829899046842079105430911999332786913010790309348827646623111595217337353748167725517775779383152715280833903205348544586134757063126140902542236791392300511158822370974211292861660545561596294569384659261446915816165997705534092876843927548722541596708879582652761861817199065195611550851029573385072640941798944758718368670016717645336263725256654577159701189077255613539613744167387917567894743492612606048575742592119754458414684038064699176131864862100390529094693609359675535137100122193377493872616745267113286488246023046580437290691999772322351715512983056613988966329303645634421866554256876829080700777930071917489761906521555276251375082042868337196425867989353313756440937530700084228791671658399471543335348429839159931625125187686030166240729972280486601679643111758838224991899374819317967051095971340330890733603117173756368355326229528761154448012223218282329398521343041177764313844967812581909818463374906613522770422492608045594665793001823287554030204214211891741411492270553196441000168799833091365172499050976735429402953817331562972259685487086043890937472167615301463986950654920596933998770517908801866270107832212187188049051035391275434763000779408424903588683150005793519632671991990428717815056719336646014061394295301527685010380783852621403687499920065512248870269767563924522133559494197877057424421561224881306979295540733230285790968132039056103778153548365595667666343117625905048026790410588728475193531566230646991369248333179355191026134517791479874990463125480183070765139150529007739746015491967672125122732778713895132783790352292687530308868942933297871913626381180913587042562192790859668376965372481521968676653981037376450450051378822424279011358118901090122352261447931898425335953965635277908741143881686432906368596435959404095352154669039956220056669158574229403277753717262130986360241220989399700657444546836064701331284583582700373309995158508526249870647281219177594769384602947156472343069877408187360163436785958290929332870534836876830122922135600969689059463394955126161172423863370639139024612169964997413491082362636222757466331121061178153295580672722611521201188545951490075359358668795957005717748850979724473166750135730084241516256578449339039256805447575590713302688497756655968511262735812801686485727030192809040293554781872303559224956159767726996604442656112374332973995303522151529337368312084498909301281977935926748324420139518294195570411059779323160194899612665528507703092013504055575476514139901909734472662027751998645062395764286144015163975986873804316115463182111359540964433725631294470851420252869154537565654803718932718945224801394465310568209538822282898876774279250312957208629553541917165812385609743770896505145909810784546385861622543378732716880629462756673897825249675982481000199336120054388959309830379608170427298168375553833864368574428681510040277481198781863567902473732289838468220028466574333967430730429166273271891477207095728499682462346039320524366353922361294990569165540177852574774420906080102115187579277462848260366246160881672540368266729938835829128610381994027773588819732179531125873536104849412156563405177387027790635212953635384397414208658934010774396853633135253982140098457617302389239110230554372430420117213126801726847682603867942304517178566266533581513055557583161247271033234550794170655954038693549809690141724314140717741399684762147804840941243936419953464267576826944263541445215654187135195049387437588173624859839750081601226434980856619948059347940431529688654834080494746941853545494496590852182856349371770701577481680826699045242473469253706564617792960782306997180306832998568451341516333906317072499244410832716713839899109236477785583616829809408597967895062765705422146513133538174632965224147807441459667436620210021995855664311866035050833794893532638418401077520354014508823556033324960315555231327945395303755714660871968078249125637381578923309695660883614367019099407207113684282516892371716789181096900674735484291888603378115085660316222498391120114594126689095679477861499688080332113240241677583567705595564353543915863283284158838848766571592984865973918241111455972672069407753494997582576790810895452016761296843696709732652695310792781272358793793923356068210822607864295211770044176412614007138389175547857702460452953183837184616232068656773567555215010764898019007649835080923560332868536018881182542792919580875697326632992822858357284056045140918867327927120683262173834389068628115076684321788950669176629204719926150429208844472081386220113631571365213503761897057949601693228305925497210435169840615140463118898087033788512458744840477734370630779633832648662283296963958250425645822974392983399126072602584822265761214328310181142759780209390682724856792479866832691135675435782290458704912658979746224730309159541114216865445233267989802026287442348521964613281613349531600572252752270222687102790476808477528948341061000479035240086119269493979627805476228479478646553145982192226758909039848538611587648357391824469732816979641678210565560871202422371071227159156921836958646321128916738991232441443176883889092121686103102628297663303285025329012897226261991334049011888659108827821289775693436253863944956878898954289321872600619840052150377026549352924836251176158024882763251711218693664201565919616794124811847535208675344928217228095779548106976233380119503214377333694760821680337241990926791996401854771128598145139231631089488545227619574675976214923305178698628991320274447388226424104424778103583392421415940708385007624614452385162574285210201536876944561424343369452295627808486951269750763953907365358325676678412887052228602210791912259359222755534139111018493692432638610231496413445742301350755392828821612192106644091146579470463216674833117445422476727076938868632628790648253977017099195858322363780963861802397389544551186628940774274212386353541901786723223810914750357675850421160710261440015935394043530971689894870450025716007062569320385941995136789323382556261601302249401711797324878795764856781949592630031837940326414239979584231467037550502952700282460873986524278080889336500156503965336756910210367510336120885763648921551124384214177603499072956239278331181130160310078091320843279988018453907438784306370233307130359286884723426542012612061577443834350578963669173853373771763757157707492104388148182638090858406203019590772866560955339181326990588476506807527944215489652371858093871661027358269781748837776773849679672794471268795552422446340852632764047041962744387708097812008663922389602543657196578191132276835070260126446924924141842451026602840158803601190186769607739275663232994173536862580652309535661448727137215254974495552432593375153355593572761537886948938261841361336966660988247355187337079900131020215296411799987008817537625936783438061020318932856447332641323662618741938832975660914128237551184572053943399462075767212481915880776656695268887755437139236114109769542965894921826864259300663570706674926366495243651455507355426472810996144258909575940479636277043289253965757475077511513865182233993001641724966319109819178374413179101981757199665947720153280758233912409790987014127502533400662767883518995297186551945975055824925602413227636448928315817969959636723164500253375885845211307161471080404153550913287580356017185449073515247439873950462435072144183731391365610608635460077961395897150300321146575818182317068280558547381082586868268683622117036312793940748447671555448220551830555235171512229213650079424794680207405154720767045808609787445454532271334182893936094072320587845330136918759188285241228218487587117651164132007901924378896587135498677847841708116254842041878185919445176140292766064429546135331337704037415325611570429819376941849746639361780313887831390326438719592749065304212836612588858219268411129971111787844841691931499856383616493705860883571244910611113821050193277326762752453356318836620904352241595475125073814816841036099349820804856433312209701264620651845640585784643194080604096228512555435893995890776164744877984412924063374013351177283731210489488307153983215397315700281612695287743385108160272489921552578093635368405152443844777773593981289578216345794293035418741621398224291770199245973505606052842322249540782715040327178134659262227237724826194367864028417781474093450617828458841597395994933256923071588797794983488380892731176237705334990878763134710915736577672627708814848635534594252830850405214884674058312121030759654958474658782618617675531092991226973937636847033227690540181663514990792568482225771414737521594344236296282800091077139982106976724284106260517916798447062548477156527114381270315227469098609402442758174932876967500710795986245989121425218711264349531144494305188146307480601993859491545948732660750595971261519309192530342939484348453749811684221763891297520379847210285199086265227265481638348470496744843513199471403896162284055102408854808815422420879500888837827230683973558010564192853021861078068540071310010138843770154589505168777537569262801586792392409795576182838741602830541366217820213026919865788137209231501109668574898964331342960727285606240730580241473574119264778961195084048992552705582187184321548698573041191090286764379889004897635921655090937922979900333024211131203246371130296750730550963121734205833480402566276336895001918397793304210520337442654918031217572300685048424723629748947874207271182595199039571414866747177909730425510688454995678561154128675957118969616940803502584418529799149921655061815734668418327666774653881991769234786198660357683110898440919931433192155767403011415362169627592131234194212886411905874337371673035914131357750901543715600379053961281098995289536706092779521251472142209581059171551838974326368594539125918939790661292713414377772975677391338012226271101454092145235890637233487943493148244308300071263265129202130123286087883095230195820529904461546344663928033503453664650990340719007632086695514454589332780817147440481267327587105085602478169500158171175205975659477427061977722554598594575424320856338731714494649140566047462849199326452670911746627457609305898565604041873625465771787109616874113844900493148801880736360423620708588675771651109662802847271396244556088655505156356469490466719817836190206309656361998850863942341693587543566534815128248109954761569811463159412415237548260831133746314651054882572739817941908432465969795097050244032438478979452534336702702707863988059012431870325955129117382839266326809298658756067988669318400813229872917762665184024510546951593570927343378063426877326239306084882532761585999765352822702546126641308085250281047725802956265142754497416141464466080954234118926135222630106784650034946984368381484804019457996422147748347542158905078620538311447662536917300332282269299614786969730916044750353437776930808169095544663854458557302637863971955055495169414736553379999937659407661835961133579722436528208692276541688961744422279557418417243424463316863218552912081969869229755911694426315244282203020397140894178548581909333491244795510380322810638316668139240674486354138638267170479107237024629966787490337134696832487035677801178020433820288556473885873415120204790421278424929513485778730987537283841518290348968448939196167364773909907223417043212672974979003513196711346256760358102507072090027224267489896888785215967549242900111859738121144395848626124448154480312356845133079098177252194220500433923454314565277410386091279156538789300131416545591164128475009112136027220686387976343911490251091717497913370662239484521425326395801956080870357819885421372701803482475572468734940201215807133529849123684556243337366531785504622062719409781919685247268989264074787885755397785511918955267580592923534458252294589311791194254362888549016118257433126542357605834519320900289121825809152395410790122596563019873595101126449821301777641539643459137363410062065475033801890517583412767315517199237696913345918523494704673108348885296486532860949125365689068663727580568681872288669226000884299381307269743357303099122096655735475246683105537388889529576267517298363642072938940876986388574317471577499848905178760742083244251605138709924382751240797370459633031492909662982350320590024819846674692199221463687194547586581720034752979961392832837856275126320137403516518887410654515916576520420122125181266760270422105714324074836868929985001057908489745113137750592219497971054353878134972046937980746511197780730965159674693610850691648008830689205013093205547806426774254634273538394639411368268532923901184817014261472518915794471317732123923011520700655536667137841908273995040842483711817547057859783483071882381717055158260269731469600298482849985001395699570348452237773828734911821821367011114856567664204989443976090637436579145055092799686600267204168033106526281459776507554903102194551659756253757090582377748462522804330223983665290313622983783958899262856499876256138993436759709884699226028119944400931787408649155441152778684670801351873179990839124017942723255642174377307242016021631219238958655000680382506977735622037634040420470244920499265231617803037309728172100678709662533818970732262059898832271754359595555010396999549401029224388835409547064676228609044520723176917393110890408853704857654945484542816700492979214016082400772787848843994954963094711634362609139034791662385409653144063012630466239039116055146658368770251007507769530497584971769279928074597964775034507279900792658181685802085588632249257122781045865674736266709678974621657119154593400051519604571104874088427164412984471708639668652353731745778725921913609609306151768272820090358655557994665197226891741997371753018051595634239368842985042782913379429053359529217797014452162956420018403439192385447895433469409069563986992538801754628165919530617717430079902141771702716510800553077950713769079035689437779797665750982051346006785765425077176631319469407759963411441167946009671308618646033672682646050108158827350551215603099128050530864830741825068149803266333066615930999106397677346721713926807717893888473886939451960242493084500620611983629485677111619620996525752903448764272661297026956191918512191970369703320540729744563067240468485409672390075505018214457350884640147233428352973657226433898531809996336961474005758371496598500241447849821341378497513530129725087418137741492765873410002917173714165493628330481406406272028204470066895042052559299245860547262266323156927611381308324961671333246060188159368040230338613682417807096212477084417725499430647661746358408382328728586268806095748640904522137261325101423096450430628060212565779595680698937627364366379249452509602484018647977801888215287609165607643237984998041320834788123266418932834420522843833815516470018452835145687985494530487853310036364033767595151137219959927540063188420015503217804888400483899471492173487192539417673739334472924795922695219988748921800524530806607607537935656948735383304553871978068292517038149282841040237323448015120324356892142116625898892011375300223702283536344387690264324405201700764288553891367973469601390445543857894132981862568029669566407949443830826911634739155372562166721751509581889453634064505272002791071670095564096232886299261741304596517194229636332070607009191649725822128178481297131022422250687593342330811019262949796196705627845627347475314950418931674238315242704839374481892976345841151509466646576217960036804329161528954954495528136933449241253686010512170644694428086683875473880122853412467713509558634125410630537854241160767988975788327073031679344350771209588172043953828283506281893537466878781826500195208907615181175007092087336919460477466757016034245980826251825380392829275297228418202306031354732472717111180237786655622657724977705617996926493039088983327300175768872504400300236755347996432972967129400877027534983293224451161975398668669639867123418021338375708917713630625042693555889893493335607936195061856421918846496078189412517282863373919093788344705453005683633274063026639461779856454240905047949270281373690476922139934707908641285586795089245154407665741833882345152592659529173049236526137114947642588297382826835507686470875491602267010024665618819490254610277248450224219549065349056106766455572407447876218532685529927429929264354202956585820992374987770764346853410866047142230083422670445850116931660441027600578390605798796967111569145668657123999454639467237707923056339537733575799520095851210428117461647214132200734819475640649490282287653234095745490980507514979757576138383290168508066152459246593127685100549212169540025053961983409581237533707494572245843604593439886233972423495795691988680540367187579442504505878342182980663040550575397880390268684827055198618840898371150444882794498555633573502314438529264768508509986917581931165726433465916895127441950298738643935465639579556161554792177147436131336975631898543443475573483251954416321457027595400925139969540621979118734531078501449821207503603948677127020418107816702923958949695353044516486314869815538116144579922230467783258788774749899991390125370617810195020602979173219532260063996543251202597795465741736226372314569144272161673322501659987916905110865379420458069454392837720854117588376137891512043177840179043579455243392280272007497190062649788688284591750512185477082994012188658358265037945924222869265226355264948945344318990587560663236831463348092761460017539110621341433415755037847883413751174017116092649477512100796969091934057624079480570822861785391390663315726862791700322198652590309196594855171116350683100982427080239672951748799218337000892967747278456459473468563165962925747843303457257412965339644984729180468385059632287271945578794154914665072639068421083816319856672420024138861339609718054869739702637441358904944518601032239979554002624806557497497549991986810563377489378970881657290424788645403869080970517964476814929926689273867357379916536141326789205877929572998535174362013701234344923854160382770797556974759267161244797735815282228239144217134348197825302941176937736248823016362717424672379174570566194587477894045428003025050777874105192628960419303172092257880859048824790693504253970778506147574958392089540550983363972325825504354627322992726033368714076333083084840981922609752219559984887031650735504353130315814199347398082300560489494684674022783021827798419128714389413379541534033733674924237922113473898537534087612390446623328555986166081386388155253024547591396623724601379832040624656705155019695529736430241924997644198848306781089425283997768770563566949771421471983413309646110485410144828602124699106584020432613419623972954986234024289567145561054277648161132456740673293018412714581598488434881130059585509366010966213211025405910515669003218363281924324775740780431988315554237481619493697924816889881380732815015499495678172447955732103561205296635266777836266168383741528819142113163514586028187479859172247545243549271640536227030583455683496209303280275837481752612508274695447473098380726858344811969951173197487512755843289568346764945142594167576008119146910058531913156173049843484411239097482661313896740205924332407797718014904279128769681743387703730390587844593135364244492152877807029404922422403167253565214149039878401942314896594666031555267535809328333994352411081894150927268903239858822931108056013624903533391211806929877543109017677538827693516021255828081221791684960860909182279376489687477313706534301364790975809359588778695152179012624998285544239654001231439275350928153106307650760803646354567678788522823681718657783754122761403800324993861650384572664301115232483881910477533255816860071742761012843258361831863239300498037827598745964469454669187635075904576601922291521608066005317564717437536797616487119786432551118054563720275427688861183116358025347495980501387070228604365408569705265176525300441462756966547414000219335203772926570234354588816691185461446288455894663050461318075056184644139191861088421865710751483220180671094650001984248038489109209507367900654971563277266421942716271917222521173096147835519751834055669135998164407310023972938669851612208327324848574011064837237699167304725461528004438137730290763305963763931361075926354720752847387423291332575512043313157435161795367949690320486535156713785335606173621902205445425959457526100687863060203965956247267340967371068622964141651040932817071225649011164896248410906665424459788743619367433185768148625676665195125490794515138250463086721647179141349152039035764320024529760898473185011979896372599267547556286983711165058081855104352263471978819001406149599867277441469437745067031959652356055871735433863098815212568769108436880578654202348697909609536554492163210492280585348472043298563440700149313062655094730748008284404481578860591509859772394495657698959054220194325488148709382710130474279026874557590058705983880534563299189146355531818187410587291627134342772243993404729925277534172672850418937557777313779039536580378972046278080007713597409531346667350935724336460265775105579631164167957335338079791648833313253175557420656555036826076972279283110090876761953940267474137849441030180317176855346765719465013260274637278081941507299667515303212001972118167447085605092001958947553268828966691667494183107409785474249391420701857907919182083736002829116511078498175361267650965120251341679309924843230772191331076018832966983677613941114729396362817841265483851412942647949514401544451674363865756743968211587574458099483014092552513785798054180385112746951339595803283725173872292233912574664060703207515373813786424744124583185335946693960273613457797708655792975478823134629991729481117831057867850527747890535599147242434121501713298037685007070622898581187223177564933632920322376069523143721967073163731464418599672893821320244676921303426935060588387658645272629731132524999964258894080649247889323585208551833717903030777516089212266434653361877174814102148976000299525910941194061638069785918802860731001183856154242639991722947896103980279518900542282367633281614249572924010561246221801146566866221493685482023369609646985623021487316368364700354636940421160864092034538157756473136725200384682521515041674482490038087879266577054064867839974002756319850909615281146319517266144522462489276247252870797044650444150133833410607611447145848350392111918230508648415802674165507914103376452697233013446235717460895870890132156991041377384708088775533625796057175257835003919984542161305270600997301433315640087859110839645079109562707790367711168016838213591597242983994006836855395364777885279214088080973437936180610312995673692300452390136279397477173397615954453112061416873166882995618820438069261393105474695470078466685250850338338680531676353347529462039530416344940621420329639693762983266329943394122768762881739930488423989096860873082485285167554938845563289001012271919451009905236865587082930865115723845952688407707875734760540785945871231475289541485322751564586879575759563071787463347308053122009315424624725710865558708681103930264984749476279649067572036187214945493307271851883117858696584029782338220041864365284810537292450917886370480170718636256536873399877444461344950443550460858220701324015667890477028895355912767441517203642640364596584167195986676738465581347125632129300168628127374528061387732527022812913454065993875256610831825948917985135914883973897358381101939835156817664776548847728500488591923867599236161809921997943255458837291867862688009161428081024584586030386011889565114924857628249204710271576060336106095148087401953636129799481172841763819401656598334491427772933182766322353135517787713782668039551215660323755334829957904748902122881793615265994332459069323455764112459225382562799999129018525568740579090301568006548936315486194063303708796748997182173475989620509873212086201919317621448720778304611403134076808149236757691636476048190769644343846536933643757045871025416036648834440313958254186266443875196845840283010656591190355879991573771592459565128110719643807623221710440016343827989063788463281245187836626599451526032153096028296087308369803643406202882820592335198267296588434195471736839926840148180528894026506409068383906332399085189698734102585792277617084667399565252559145066258672292878242983043072021177563332125710021783665555876052269140412771505621200318768920708667143646815022963455352581653083463858679230420783136286412684329532818014986554217261399874722413512556776671666507622762701403514301281727346628017028300449142415713887583251648056206930026341310331567241582055927600744120022521727004247145202822705351608222535712063890211717188023766581009931201149914823964813771991069335053511411247534359230769554841851555405140122515589016979728385094602068355177283493006038060141799536494193777460899611464314431693388811762661142230697585045025015637239747554013064455729472732605888769948849443507969182363081980488846267555705409137170460168541663970001729847539366741348612587918618701334912301987194147434148660448851062712488506608353980318695766782982611943264841290919398063465013193256897674125668493793156659673972632597778205192753008442693908906091343019250948156594517805535530353957848994898602888536273368960009685299335761202659405522098455552605142228864633612366382861794066851644837582387298148148374113141808493119967253416464255535115121148462276704071018596838984265024879572560296760287615809093120686683212347806311964764383075845539709482554327036645604510330544614333767526076215930659882933412325465118915580873565906873009007158911973662985271660715043626979961335305295316645274622793121381092801838435662432736550633227809965225620346053270853206980458027499655762947523207427359131524523923957876331852342725607670984029617912560493874278456320301458389187284882425850303436919754962286114696405945481656836254970799383694949194480579787749845355633472787916545321451484329691949172888723406683953597907657432563794742327793907493043642139387141449190417343093458140891139261491635469083473049893232631529859996945234315325037864935561642345949829282801667636039521515143018357641364530188412504287687090025371429060829627381931596611640127345676294102955144389385512730691958368748744429744641620204761251964226283770859651223448740445591599260971840073561684126048926368589747251385366930445010013084121737658594982102753417842752306449571219390277376170411981250955653442071762412575083541446902077784784770863153118201091571619237684093484724808845475678455788141292565342609448813827647634207191058606378742790524116893587440400773433678003900739654597402858182899902058683921521516647666010311814647315846127578948677511026033566758239731899396708363242507965177728081430577390977051472000062234551144747570326819617368045941682649462618756198350884083431751163601840272290308703974190633271813785745959706585623956662940759972878889582932546521610179091705877254663427612271439517531147580476178575261870510931850517837663782281459996092049053063823938615594814034963675383976592440090537346960459674122496745758883932788753604115205534420025739972044466526831313869445065149392745631310984955803550241421170063281076389929046222882203601532091518600214041846285175055856068002273338316369912442306019978395473655024288589087412742309909602707196185830868321616161434544018914571802370830684071672998347833605967119086654787943474440181489542357600266922242396952292008526478827961426496753946437096904170023347587149305574140583056334556941731991907332991511130190554517383653949838589744086169341508212867593391558911881214348859350831506873691696054117335024023220099780194446701901797301522191388868892983694674316963560114986931183697528734745298570848971594846623566761704872662710607537401695260570012039409638133782244606531807072132228912860685053805465292487645537312030363877506336232181505986910927902171050346634919709126330772408117388552187962591524687258078205420473570122102975199130111135468407525073246277199626227517175900639238250420852077989597126077038863007382929881414600429302570099531286717665286197024713561501312678089280458938329905047584582684549729237117845380884216491472581731105818370571302218048851508448114468944342101045229860499379631022605391676543344210647122468131158707468966454610972073306473519377343550648860580578527594795424828373772029690192207942157182649543593783748306915656386205728136583120711761804247592109722154801747540956990207314772834196648390125047924505659715384983429315880570966359589502255675473256229492923831610620086190786975694812331721826943677980654236325104451233653707581999752398344604028693767230498737058720721351527430909373422674997162334960522949185895460331451600234469165926312842474822512481754111761089212051093256315582956594257098052909281419805321181555843469437880149716052741133129602614838548379447826926652189235712725091830438818671731217708648734549999154924710931307654837102674271776669030184082050380904789171277492847998951737284824644688507009360231806000341510688698811014837101378807060667159536275002277673998457631340393168647594024169766676033662615104604398120248216179552135703799785027174617178836339509777416778949461974492861766803923320807094311183503315737587493094987525513201702713686313137389415755181729024108794839150183177169453853552241515281519420804289732776751575759411740292498060970196274822682200804585300155708616379138908031886606699513506978442849668023485758593855528546136706588746344360183652151110708562948747938172110512951381863223510821975141639107262723546715378790169100254008930597993600152342591815957024361373189773336640157905806508375251827221891307807294239321013848800305766880963887432900199370132412177512129814055210599221186298768425614252508051934649748931800785225016396518873436970112493054319064021390470001409555167749370109077991871332786909893573540034574004997003772871557511706503083024129997807275782082097541123053623734874361687765925660218691775746602661220342187797340901536574720254533001441017651562608471148182143328403469257120598914463919667676645465568421161992040197158116197824817348241523147081814748591923505968198927144564507939836308256018455189005504505537525374044491756472622169402333475401799119463917292604149997105618630022663689888967699131989679369005083539011288004772039788200365978701228314182950741650954522159306607056640839963436012827045653681531310635706976324932903872390625345510767583702196487716611989209512416746877230183509113297300324737038879477471449342770120197096957223287015913923583010113212609656612741166461504443434390918286609805424335716489128966785861544243989528041716151395445585499289848116030428075211720600356931082836842439524090267459362946248602478498138990676668226232925794266931347703455197746208187389739823042049392813701894437818146687829170194312024850889387870283567222983601676814317529615319079752946185488989334564799511402530323879337326069982919525460608803428239214053715203396234547080118010934937625333242020368774491926212521720744209336817971862504310007752571063219860830747109665850985845940275972776202572141205457691735835478980691844178421200885021862347542060526943904468851102631530084891553288869295606403931782403543397062303187435014845765084046066665367936237658889862281838086901828351121648160782053108207293902684141985828230246158984475862317898049742029007921286565867312267414804139254507976451846264605926031105416908010288099553351949967072532398564359512619823457802535162227867075712813170791201261083615511968132228319275800510203177523902819038945076123158454325493380135010518050029294436437403589719152096363846071473718334564720846427106698533445664598027844255333517953820302060970164922522504841645146318487710661817888089701091293799004128793834185390424024342005016409596939888310354597995489897536255378499932938152311295447675367284606138921795547235411113936814505188522982147111686584266799434647582858238749197874923538994090033918753646281874468860855422363898819483688044468173107882794516236492040031308632681980909072200924966166081223860538549532712400043049929775683202711055247294747138024342131600200593847404391043055078657725532881425477530589374891609199135965761555787273679339176748430979592144911168698864406494571755029697701417104713871103504292947718384740732431277409939879931346990328250022643501221903834423098160168464745058589173806826652266749204028452811508601360038967389941631591519089594836240139305527602577873157957668126276787249134248406048347017173689438226461547756086132135705536706720627797582931891254001448529621128428814973538916041235885988851573046381231377889020833440513751569286244438531606565794259320922337286060410168623586083401497636743406993696696402777493128532376062857594922245807381848958897383156733365869128230129093426048157493029579376306616957778712490897989651594173907437050869448253702421829211547192600856183512032033858464062933169847804782251293628927146575763498754442445287937595124908938582114281518856347840679341809975000168129060881715083840927996101132717420054609329283685452998613336158707409014353455520556542835288548410098741134775930243615940500947651173236163023991767971869147251055696059468727272481640946699235754421769695945693209453905316347306165327393502406951135016955372520060369935363800987229243084284836476224436811434039783579841022364373841616697399986016427650899094919513695423383831906473425860132999814324919323386555808380783080871586582273057407949769023942353455241663069738580186921844825350371065875953653244336401724203313093658302986562499579767358452339261147895174273267893158329848090628740274383070376146009487803202443268368866713667746373832653125447806567939207137296390108457718387311613152186799904784441895652163523207446179569531505459894370680504530817405181786358649616145008241981376849070930355172826657705073715988556245996751158630332027066765927159054696268875200224621310204376044617748155387801860970413392744749587887074483511188120482536046508322233015677053512708323013192301314139806561213387823486989563681554049858654949584944720909704213348360537029790006179607411417292572718535624518540269804852351465217271710960103590389795761734462372744408517772271280064795836703817996531728003190607595347537803848806424944847101616719189201446490004625877762788100519657317585925914078911768511596273345028170887464500211690862615977302962398191081802035828148309515478898324309529885944981185852577631808534597311793382264050766783596771198187488983187693210869334173860660617873910012529712261636910952385192987421206144476848232198021147203158524750729035399476051563874900836049160081000766997062398037375539660293301216590095308738202376740396264715694225017271542598409059721639863655475458089999636411449018115690101453078533824036709207327271438006215588788504519910768025865086503422824462067226284236456987855535834487838315977842231662416912229407236251148999247258937914856784278272282143378239292710117564393560825734249006971930300305063073740980355158677856304819378618549973352358052954954572709176027621561329688211710110022188001414839449775059939022741060025388753408185943301522139201042699806016480384829672401379049142150171701149190240697612812890424073875595370552486857350993404239314819099766838085783331101097325456101471268730369656055758173846458121951140344215845501962667107530318950301935110047498853248603702527711983088241219124278409816129249918653749843421230744478131966519339770187095994725675405139089220713860002350753366427737279088317898793825059035209012726303653051073290552152460357194619484038082069075025084521455375265209429594461844826621201311491241031671976798043903267613201200062169960333398030600579415051308631428013311591281093171503461825257592955685940561607132805901310516316742272004699046710220749301752181633285955890499184599421543126523032928991758373162527242616278902298261579961476995168832822018320585825254307545064472326856107787684526120059418291447098311241143967834138096346681575249716166620620749535154244097989105710604674038942757121893987347016779847156382878680995767478259202188263765088013651650662888911640489389921241693223471904519752458603774174051518387412091048738902876680543255169410788962571430924812475418592354343926047472535526180272334900377515877727890048969934846315512627083331356230197945576661032298269249261221360548145345880408465166452069068115992598853087810478679694722072736819914682353725557421118660613489950517149348072355816084689706899809913199663798099617933912516392148202025378880437168785457946335542970861310926950952799984672314552643330669507866304096565228697229547288799341447446389418795567118256146315330065500318399481689169387273220111329001126315866734384505782344592958632465057731970498792394268037737001641441615648731660786612883154738581846200590839336766122264645113978230891221271456981936164487825825757982957915210803913364859628351601083855507872619937972683267537860569688287810638114677311561180514551077321511851773437395546421995365501316950596402871398822209791629028817110668897464873857460771556002073366317175708380714801695598258771347837202670709290141118859372230857919964760265436459861189704009396473715815357181716625561503208853708340268985122664327736511890385471288917004324363045974582583390626475677966797174676551499755843539621668613621499041487455663758734895377521781477162683416762782213747678242261825106045548222176595852344415572042620769339516771998776167807549593617415599475097388750623141863720199536349132765417245695506399750363516984674779383585502637104755659226360427666697757775729139773199491044347203308703052448237704723799753074168789686035740020530122545890745055502235673605764141626886993683340927340304193880704338677401065428582144828971508028004365169759923113778368895780347992016798484035241099286203488946264442311633877853082606791773471081559401380886303279825191136937656938830886559312387823171479496466842526244782037874276035584577627765972406628569376420812526942573592429243270069356448474004586095752696697331053790634093078517612635641214839911741931654677276530008317398051014572499011110757273288390592094264876789435051080522564752032062178196812514292941709140265494443992173954157144092913939787214381246160240704524152874113260238362955753935553475340721549860077554649480671888566198422177924422730213141021456658616010669607054984865244283786057300383503806458771169655539918585567679315913618305423378848886408087789707626706148902154946159357128371761095651621104256937696444614860284735146644919336609473845545861019003049850828024999370318669184450156310279114998608089626427233130204066349591269027157129619856524588226883279157765528999563071613091058935081537743419994269653603506684146024038426021007312483502336966712115417140333942812651185768081038207107990779094794659529747235394478498476274491087481677647190466283420206883110160337977691883180692681122508920232622892147487662926101481677312960419332692481127674620236683533101484307021300774229068682269920352160446483993276590264895834231981906300203028632861031351279278164490366466048665658892242055060115130352806338842190415064152143349967795872915579547737763382234462626799711915412481045476776184492319899250084790648454454837129917790244569465914726475910743052930370914767970205666491344113089258640906508473659727675634243395859879710621931119300911848210389288457844975547824666884609482778587571991427091543018584095640267364277153739425855342484612663621193302661952996937318000013455200088336086076696201117487374122130587332197435380270426343929161294928032238626893037577571389421610675942990229631406138498877028865051097212747595207509915708625493006193369914451488335442681308645863361617491014646932875817578039006180279815532197950614096819046843602788444062172793229295132736849176958480664458855257369522788472777818497867793268198877064338593077050097970407125705019339958662269921210116073004812193895213707855626479885990844812882597949284768791720081590016890178570729096914100084406073478639800624426469042954858584194786700930876815037499697382136147883274953995173133886430707215603710588912151660453534713743838280495295772817038531078893797923890703778644546007372296330694622903172707384120664090691381788331618406279620864130831421365323567371890552402889584477873782388836785203380253950628146258922581712077754393313292421556221561762692014035382433906051417258380188512073162867471810818717576596196120383139189996832602631010128643439469616395321212025788876997884882944969016480025208039956699614286329378707677433195207609701808526197165740726271468211491841047533691023490632261745198901531085485232891092796639512629972464117706317529979652580921490327627511773027535221491851273121363745496500409624121616508305196252646983650813661094893937956789891158937389380857379940330523826834038033023143839499220154581983935039135041783189352733901075157624754176933708200106307714385989212168377038479029626395792350870836963889680773606565077105792470088553502794119235730761413998277898022267868810912516860802314774316181345776764526585621470306962685392073328457252242229159420210296994091042795972582286110796026939502914903078049490722696485150223277858686155028774388889411737350431649583551026728939815878167881308349560053531008862603285832640483729622799278420959051577303450582302666011810674480412716228949302956844451686715371127478878821505658736295933475860944017864649116717829008665811715791042176006546469264397516859481793167491806274532437684297089033708264926474141258926167755679710252134750581565787661890676815091117116156880078559652354335832601169441646164732713657003223583686354527914361708057103122690594144122601411002960954695005921063274267630784758467265164826728399460115428314577353203580093590508430198086807691797886915802600578202897334838336032809845234654633230632013819241113681332459735240210013500689284168192840113800292296761037508208458718086399446371747748243038570249879571227437065993794651463845429582542147697176873956226741074726246596597745741837313778109041798431908393692179342523043934606003884643790883545553272629215467669248444796722448162125368456122027817639258058506945197925513774119919492200566251772319276781983761872839755628903577243320624375645848383762367290729381196503334562703714375946550221039804810079086542408979108894848780622209661085610470908527140296145363896172352555133318503954463847293325880621620539247965524113221958350772627173148575132143068851387332096970225415980344982859577663172035410410033263503365153973656301481814529847870997703221821200284964121176267073499267043584297328227703538998415132758770604470425249892317326615528522236282747585703930056047718379004041727679233901344290392366188023931575903654004584831100406803072172164835252501059624227998093496379202537155786843592942392769963930751982506617592660783186073324733835831847809067149375854556950238218120660500155797008306334298428512317529336232285245802690083252214871384830018338304695750327923937607982502714989043598422807052510861280653560991838850447260918230082454259064010423554151978184916617113647514614762555959341720988974691018210862183682914885480189921733842949334675457402772179834024363522794956614264574895068320427983924974435131080715520538057470609861740806050698952583896386370388918592540520430835847310915964151184313292920950342045407489759762846764717483833647530885306735954240368765955827627075036720775278035230781642060178750914903222929617599202706388457169839076516869224035428232855524866492766624109518845359699894233231359087728063742120794070633625630372629501572922642360228406730910500572701263064650630455510632391299669665458814480717815628740923972427018676670140257118508039555900188792404757994428224449531228128129354493296624062074442506976396331008132326936153149401993698653079232019552282103836996332170083284419261524881740301078722244434179823997933159458982420113001122700287569500210332700489795634111107763165435425352027197283229389366611080921274511446225610042304752218940538264931736518770353721511224916240350930909251088502876648973612249427475658633000455843328480429914556322546522206634864356426009285159002698790099480919080258180323728879883692614766878274468334680310366696134620473584678347908121615979817149931939863438788647366861445056027463664715342124223080244367989261548109921679797931434436819181234599921199197492721681905153663495731024447668406943117708345001647215416502360003605487057448843595391310386031672096048468623893470847608236923170362983607015763559536995794834671110132771755353488522115171225081765565631974490052164984403481487399550075971248926309121982593254769099202487625420677861371285900072611686155201351026594526611059990483467335466901249897116165350058546767704787836263148628152855232842733012983023450320985866960028399315171345039130017952624381834506980386564275812476615530884577205536219466676527100062535530612188596819204087941829338572508106483613128298311196128709915302727789322988739538746211698736452146266504840177242750970247760557476769080390523074977497149094202028740548839489341433455033880058195973293694954402339612048900905805863688588680406829074224958083791171688848731824184215960341947304407446918507729681977639000188935410387550128428989801866225171102319401904739468387995671465896331795272823861820169273699323152268117069191781269078572017659364536835740754815029341704508877863270829930088519646592261155605747123228647699712640548464248643035040413291484954693861454186025585698119283213916338399976896431849938224819212971746788026345061401378489010195580907981469708340887684268138930130172714714017692264244859331806983555134328049742475658728877021649590492657813961686028417811228696649681937415705797033972061374207907660292610086184308415647128660428842711538355775847946186277420075601477659892626822426338470044098222738255250065548784802640486451831299229492623498243378907781470498784546192264533524913753730134235854178982070225234053636392344907557709459878263857102862558093663600712787578574030824491627976074266657371407318996529084098597945073189301426028487667674114500744041457006778023711984901336232402012139386652554827591667441031346623548900710996984456939005604315498688716284620015874889523413852871687322360891928480692040515386664003468829634301442609954181983354237377276573414524447121120059760689006212839667310781670526108858500152348424079084415916071452821532666167694526011652247555012926097616698406584220988861027841844557462254709271519021894330935289247930604666331801808546123495224691253872595079322105953473902844167531795942144561077916386380122663464466215259932530806156764681433365977868571285928091550893119422318707827209011476382492600165043361338888083822059414408934292652356455677541504193434613066260651804939094450620813475367729710773182670757648627957072794155532638434589481107661531549630883583485464653118975968294624935054268358992959601255646100822156294167248460709215081385154068444845159632116554280009861143043730104117137501042865752145141134139272933312528121009284049360137704324130338738758579984568924297443058204709081940277344771862361970918151101607539137728265101739650209951755763264515000133945882542590956006355744082332567489097582825288844565108572521163835907285347047332154839215249721476763942757254425292254489435389971600222488436990453064195079390190127961647208324292068924252636816170774558224131311348555491182946873772562201518203367005068026814292186828044577918363504398948604769772480211208765517155384705240347080579774214377451118501969064653401515452800143394880506014068041820751442474620708203980558277648414259054804428291182431283246822089000285532692176321315873649500653989584003817986015853092284661863639138801971621994664728990133293429706291642730951370138382821993202218024876132933880541374368730637085338728758022891166749606339064193554406144326037268633919797953891318576186145950478790022912615310124278707710943681212421819618123510158534249737669946842913635156100272062682342969151460939485695815082708882564887731139560646353158754656970342037427505082093982552255198622226255479689969372957688123059972134045904706831016355158576665357455086089558963244570282993445736908841680691041593054103519614782843663341680603134750340753445467348569352881222213965650603939974988266801386540718038967600772624557648321830268247307779928954923853170722203052111685096974233645619432133888373709700665995326946275679162245852980434842212024756543812375927049363082982810681993879237157253396864889076735812685255820663126437884349789458183298787097044902825811535474962836062007114506422002523358158118577326447425977935370366595152837836159229147013563638062177854521547912695706155882661717717691122371024006206582316227565878180325403030188486614676096777143103113030887825931041937561271892737784876713130010289372735277188293500967033630301883698423613166744421890205439150821560191712732542957877860870555650618858729105057308852268503430545848902740776811321082478632190787223617240534851669174243617487166830461806842498095133805130428081625399006320952012139293150818697839055199824724646263555032943811343859643433206360168412257690424141880313390379033916419108806438674227664677332564874322716382063372527835275833641302506609819889687831737327616647650920725695754217445263450801562203080389023790033543876789281584751890653760302956187268039932715746396772840738498705617570208052237812449642506992821527673084389982915064609698805674301030796644706566959908931525695771389430064949962990541387201688951086628694120106028105437966035254589711862469624320571612143300104584875163784881603037524386489255518131846642898783639714037495695599062877764396356114783941406997723942990223796684316862193287191780721434851170088053382586719838634513664627002601305969809640565572297054363451728955576577524759818651007544072012210018477885881812513909333055589333961518020820344944925742964357820336692681597881129233053248319115089983411065865960370893119498300811504540516631443627903701829814870002161930189187383366649421247414375145040481995964065260055735438894900922081179547044636041009118271837452069473869425632214356934151727434096422731308165375076302692336134579202646379803342549166695763258107014927836152985030643287118553351919843486905565879599476172083539518557221463344523161072471882197889356630747559518190959206681964372435234120941518888490951468195789681391105119134639040141434113970438867860622076832461492862471542635272855781120499106726818082422844119609305734199732442320189355332431938141997039180264624740307774089880625105559379744607658583960346465892424444006584037163484815458984671299393867708456308936462982502338427925590382143318077757421001443715776924362184215467202248606215016537899731249928944128938002980778716217025616683454923987818513921985019332832881846686497718384004585425449876698618215763455728697948730982432832341963352932009181799403356123761414380980318280828305235133676324760238810274928391202437983739842828921502128335859093213960815443677853020045277117339229313903580051525361036839168110500909275603515890098209088828753049210840652377179311220232965578052887058161460479417321701094257661914661557702245172235459065289730838073575528228225799667121421999406824975809576136359855956406764791219562792154150166669191219534272666409482723359767526617490768008085958894126505238146602012233225125847936287063953068374048300554934389509070434213096435328893412689034137435254884840110612989053484907007228424307794227843650676873670232453939597183672734567255676692734886793596128527759965704352309044655393698253171828411383741438683215363695768311691297908779728742851849462045007529035869270781469000249028283037101576052531596924219974330512274628338778958548024913441242819599495298611798192128231998833927528531975291956755388880522511405830572079036403879486558470546452236784135736761877548650881597945529301231128475040217046672317619455343902016880960301871862832236920000514982360510648208584108557177228301034411599217378226673217693553774211094863829635456316472533837328052569838764010993609582590505161664350163584882929622809158772118124181907527630391419533983311155130357235885746487975074597208958716795363630044587940398969631850751466396448680907578953140939418518933465907781260922168554606734280504127156552594000118329788780304872280581440105156779212252683999578043091531721496784027392703354357460292401490730743479430814556489497612879827357866858744121946265641873735736560501205596086347384373451524432118391926320480415825282081895442075449652627051870824679749937646918126431860888700671148990811428063008217180295193769292259777647891704627460573261049053291391421144341812134041860551523134326812906152564538211334649657108250024107808436874058566702250878318640981688763170518125120871175368047891895640562597755280781282261813771777165636588853894287767050292830194686945865489014573789667046983659876717280886656937222859704243860017528247036606753745891125327221935060613218532558654572876137841727430176828178124886294233999465295969510758372147542318955180622553820695209528373254058522821795170239361318580760573304627243269373960007169825094907405173660906059575737107551424979829060583374343511230536140331373213397130033346197200857055217149390661733147159856018337550900606866320204334839587384377771512183507621787083337324991443219399294012986004926997722952917757981686704222260005132920726343044351077200005047713866943139693848966963008317838179294520012360582548510442841659210445074076466235248105875484335061135858475738749812686402401605094873159091373373807157650573444808732648230752294355385357915118720412973687530954808413462187305066309059424471880189312753154975128178675148369072441473263915400964543450489347402319390589080290197901501067639789721808635183284902274196646701211593013105026504772735069799192872707848368204129357116789970876710192415032594680867516741201581401618501470112361800134616975670102470206564194854554577056483096523127955007142380915204356144041413520560220076140766925500333818557916353828710215864410573399543229257430503180921004215792637051589795685802611018872497301774151039793752007461379527869262410610088579380934627159352447013191000579210935688795549406174372789041113444444268471710982813234552813479528442325656923938525123845909847509111164470583033659024912407795949702409086944280094741446887788546216247586686495991769905209852102810869013610483477055959047802236636778945091671159660857586347774661018169153962005436960367223322709628526302657553887244657056566276134533671633503852920854740981876293570774548848540142366481917265920806570859424876207630062654855784414435993194841804075446715201372098276139879968213842477850181841577160176832964837880443974848795710644405279332968614731692534567754966458663055508567225668918517222678398983837766928367141016365752313766063953747851973794121139974968082960574797454810445667468933885120268920238854992959942082914066859644792364558440026939175088418713847224968819499146103111778328488567517290335611042687758980742597456669346484473152669033163478679796696815688709993487671917183006177642867744338362153839253974560066894468716753706325454178570094187040034362567475409946870738298229844795586176090703151785881516500597306496287752527103969989214791727834144757825070154774960059393762708095399009534916297894515246260059789270780884499072655854965577756598662835831896542000577811246079576496732755981742357478407474647813812328728594360235713287405082450084373117939911773065357869270348869462693628914527658305177140902505454900893738317534157066550680726631756487450905154429776519731665800647856602680676503473375960273864503549739598850033182299479872451390915132779973128724880674762035289777927536370796259293425529000335564164236017389385014448564460764305655124127800376418222728052510729853325686075737557413799057681020492490184588942660209520456075211270972723624413104436962105063315092956373178156659542268157407573191700242145012484451487964173515177551879024808288829608795176025174231265113024031148094545676601327161277788573612589953531513610847058753574945016343660335036993012814327470136600166812282213460415983350538865530974175048211119214334272303098591674150205937992233712376224248467965137586646748571714046532311804782625609136380755649070124274941424461002320451357206590666509366679533459370616619625063361801494631165574426535401992017646654361958867971714134911115425018302931017207064093232594816115975341074422349759295506965531092125901017641760585282051520931592776598134007620218311979869893332558343522368416666167280847436960579739268839759036954733259738758513323343465668476895267552600654884681968140115577170334092340247763177900247221681190840198975725841548247955425991065648903731398477645065852614891137897002595014433006350134433652713628567914866576144603366642081972349130072639936852076825673173665920910467187222009188160288660912613755212851760631365926327732078074241318398558884480495088472498957262567028502809409760625728835703887963497482092995797441980710611974688930422838742063452065537402742079005730318363175231012864789718483063036691544899483126878600308250326188105060741706088453714733970903524746508448023105035656612327219091070700959440088238750985547985787671340688646225847540408474903692007465956209751055609489251808985658245925514424528258838370856277353259506659995936029897271789088361512916533604946489325223674539996754523251994671890136065066374985650876806381686937652904238234448672812691727173378683369876224525363204609745875463753314029994070498196391326645924034753400944488286214130509711341561709290753982787826194931508541819743253628552057883980775278860050329365858758130630786326490961811601504285910830943262400167549821580700688204218100775681017334284680835864752935357933756659210435069222255049965117147319257050932419654827356262080750402161590629540695118416125761343138722073449909463569246224286605408478993613389744705458967927729457774234164116084006010825337359585125543759234586841439471749925955848752543609530180752211520702905257042632963792955377494188261969272513127647074680408471068581489568019508760472819893478776563326220641911573391979759039840468488698297551392281811603137200184616271010633159167043875167062752643258882785708938622699768230672651212645166338698157574980098910623675810192726551753841829445701596465034835290860423254081174841803642050508489946834494897155559532084684967416133477997051998927435403942979891288648802284113249921754691703221595278455765602122508172721586768897358943341012496583283454674845922404377057804177442183764151981289744434187750462505907895155064876950035167056756764304502387898736704416390709240755802924205964961501079426749198041155831664683174948230377633908657630582109716130356270246965892543039407088195579559185604777112893158030368997282378797260394697775806391748542508306160806350859825755430342120828920775275513815356673202249201826693345196560753823598888637179340486424623427423704899594132889561439412641159286121601618602713260551587311527733092582743060344387578702757883741976923650715476128219936605798142532918164545905229839564385133588804893254971685528446192352101229867622922340959574005511232464523207910267085999851116564550085783595956377852397785110890329005157227358093508918114227661776457982073441764528810655337979241114810742997972347857014849287331746435410925557222484641052265512076934471236774197004187925104027292216867304101227198347818872515470666094019850563061569049502509827966575878414375902952994987315770704623533361958953600630392164056869887453810785877057664593831430460733251588698256569638833641886560295439890469714973569142632648222746384450611199967866718658576168675639559802734006148219459038773003287907215831316748263926878921830348631982614946414090495878363533089740889172987608458318487751364025460362552832709358458645286903060020612359903455566231397837988436471002959096587100534164064848958569599215929940559718204430639539502863941406122951572006623929907504836323623096436379124515247951656774384486343566118916379792381133984809672276569268214548296057002827417053472547275929937684521185221961474627830417597728632952607831699627642904082415424181612626126820425167492493312762307660528567804393554641269898098797177662416651228949358434180193414191911675496731531849199408303861537568518445286854152928664566677936174318213525996268322124591757935184871646134820255170694851303416438725393812463797144653697767954485494429897149708572124082851368657094812709123357826378758943292167965453039218363155321746268644304746549326101222310566654030229682803947001489527003580115842609339209233795239986871200622474509181852033651674919092479259434894481314763481369608661234658818736762690938897242220760950567183354730814997518119487370064794296478921991207279087708580058833583728970360672507668105443329273266737393382004050399075418280026557537488284252083280178444953126074263759424394755332732994925026624988113435106757979963826838653889758269780223669275414403977214628103824964217897735688974270218984104882131829884982282524894205259772499354150396443771444032009790711708045653330698350654088134149563627801042293962158318223666947161645779989681806154015707622684676339156680969015650072309451472785262689603493667285079246579253228320408095033561144789801266815892493737898245308091540817239037092753910723737744588260571686145375165747244986290855834912190549922896581324664381703240130991573419453423095249188331484459885719792485609830486598927775747663304191091384414786599532847600751979732976890298765205077900380413551852871354974010990033405539646980185688688929395345256367622730473722973586254968408206044352680696139589979978756333971849444968066134123318687818271174585767441860185327925805620077972841987437290397818541282661283623276175843027275334975399124301993645752946983476139656665801159419323056934411556292425594671654874232613416402270741547768887023159898576750444317908535880048570331766234665712258449068564453000194858957226280035622069146710982699504655813917458785715037033395592929210208978440403646475955027048410199184987586638649750644431162942588833548183837626629014422784035810483832182152555544278472071780994576803630216467788302302243676565965047364592577082687073927935407615201721144489612812104541052962717406770163226274317873353654585497680601984565096698401077882636999248960151989524964012683491363764491617280980178124775131531082645175384101655218459104993634569543591095089927331134426051463867478056095136212789140607981912375870364154334172827996912671115448932753356504118416240167303411768166193030209345984494908273857783744458762472414792187373879347564108605491129029581103000686920746246347022233941930870765065862071168091671905846795635928767480329010813604080780340171243284497917816242800087912950218486523811301391903955012742809947498270431812108675510554023719388298017031873232946514151656422297228995986769824443805142715895884491165452996145350822424698091407692340499119908099110221748518847654349411753687742455874911063294961926329584189345651745511814793758068673476898038876530972806814428709390886092485056730582185498406486988952887127531613992060831292892090039530329180498111076785178343852065765055450055815116535124255648408299369115316079189752159952879431316433440107646479688708780870987649711288201301372867948160201193694056359086251079040979098357941354194049194210061913545015844132940871495757352779244263272544452233504894152098609621773530971519040728825437341330027592736508170313903215562047589172004391928949014163386039745402799293974537660017934385240623457619856118615141029569391497022851151963897106344512268237093298091013174350335426428165158816133603832085485957694327540991133762747965456937970826403816696660699094554636817041384324145596753293392869848101737551926380872775596614528164375343265967465090587371757808266737706677450241796213632413994877860423297659823743579190121661878709081971171533172561409640049864821539178136598222912841450029200341666598099460731586293350844284730776332775040574200585078047244141737142978218143466164678623777321924927552809571055128974111575160559663297746737745578335932837838858660272861662409083657349854973242729692252961297423374556153421923365596819341307786718874800073990129630013997710259986757526854371667887494992364745186285162895646079711283806259054969958508743865424738733432273672152637781214091638498190923561229407039840697146446648616485500251899585660485906956799035906479417262644737544552143306144142079084890709449280498877728004251795355830485688012408260605530653487412390343265118456692930257519850113166738751917463006562861993649363356820347507054847714060539744529491850951703430846650177655959030094896049287836471521894287685557495618802415605737665411832076665135069434196491666544593665517152707399572349160026616519086502686327735090249349553341368789148430942256385671087284560678904527691804336112779172318571201656805454175124726514723958189773943853863058223412606596409130157033255491151796658588975024205557334584981904354758780030811957956541940322293956182786307827667943614660336758224175298102310234665776672757506663060435244479640760815786729396016290879126372854360890167561615316379936348657653561364604980437149200980178533370479249132277645386062381908153959726577755804409230715462589419780100524353160711069250422192040090374525066719603505383209345729682532384124223407338301577701265407140077957637454955766524622087021401334016568869827157909219356450273472321780547611273763811873606578941931039877807336920320200099341854322575337698769506552646854268177667987863198796021169202849890150666164862597923292118304424485700072934048936083285213324209506909323955972051803886033163263015116737305647139811305029532148319837526606237380814795854765911610632505173057466191881306489005292656856901830724937035710788834300741297650243490030599884214283753595549079103036943621699857647658014927868136356546066181828997159099221442322676815947267050831167799158093232333378835938326392937199367363381942069697035342378242655155548248961546181075996599035898514459006157939157903002992425490005937340799833933551461136165737550041420220995720448799286341437845776940568501733342433911855654673806315860762527481922701014344223281515276053952943780724018625650056269586691473379899058465912264953254279846899597894928797828050646786745193834614201611958695978769723991233280590053997437322978400440763221898867470378597475426279942674788454106250008456725784223469504402850421731114750362910861984362191926496629411862594131456740791150578226071022784787943829427860833552849029607446883355281342308680611419135089476122136190529292008090576913359688048510066660028706089679239747777615756389249373068218106653164579337295271015446262150758877824725230063557097603641468794352451939967691742568646093396855775751321957797176039241078246830730375142578295267068760960238602322354642703570500894459906737913733421627607864211675678901928921682407779698232161908256104537998489516060355740968313221472914161145520263755407128356846924161505848908961808086778275086840752413104780984694998464382056314878462099852631805764486689262102482835246108994715748745924772310733778114515831002842860273596912694340168174316878271836626684753284420364825758486673978444559806761971883844082315062800057901807985621043917476306923914325082101288768084620069754603200310078653188133481662583283323293266481357288034633560787795876161818263282933719364759991318351411425614985508651612321857518435381115686265459826973128093118359041512807655610375802105550806444736617314576461836186707320665921176817824599462831958612424641381768675170001600183283239838938925486478728092848365401844323760578490234448168756956777865821011874205979991785195758548806253530068735099699606605821110907586697644238711972491016975708294127534112833384627835313323108983565121720566216769549624869986553191124886866787083535868998450697519219557855074890564090201420418567669964294968921119710306983374437474510147855950797059038713565110610635425828303145029207120394709071014853148727753944656162018142467420487589343643861095748742458651044808253241298560293843715147749247719768701222862626994315758758709606441090240295239062949206668214595660332722512038383179606505543443298939258873252163058187184299625762527755592888074558221468601715484399550232380179741598903896947716179317320910335820218896224747195638351392802728498117187739726229823859414230358743449971092103869798191081192897304897565332900457497727109545880661886727267035758694185616643640470923551503424035846707166630386539196426432914216760317243132294583603857151633672807167251766916665946635152053201503062039111027182577341395898283780537178340184472659852657009635623323888586727198629927336712728681042624457738630160503800803641586238094402358016517503512909083969878920522543554162317723006370022741683445536921888337370124873062545068125628727922928134420479815842819883630722119229527745064762911892397346902784169224460361522534574195562720747010749314280456971299634964731765473211373252986535039730422391852181038141087805759200087692672126704519882560417020110548483479608063310178696436355478020902149937621420306914425115279049959760359550328414895352334358719949034419775570355951311419672442120555312375943473275176128261013551038008829084471295262811273049514108253171432019292055771661342043814871642974162492282563001047075865304246546601513046078381753801819334581968545903412824675680742273950392962152467149294158187446906308368188394855341415820655704571493084721446149283202568261367099498300234176200516271255727013676971647350727245870275014367574876406606500244263871119252663038340250114426097864041912930312795745674939645015868843659886593835845800761542210733521368421907985553726336944455269669294899549078521311428087773582150462813191860455550865824388553704207161189809622773297085345195049861539712408308453777214301409389239696650852202684129238381703126630098871969264544676784562895849606979278110652917597066486483027342987319255360170860054599833585258519110673644484151690020329415140305485113292606424325456018419239689913917164669617935819049196683674429220529395607808864157315033044246381788934703941102690958474048975518536293856287187886807348151740671611067773775848778225167255458257263862698853941446636585221208653631760623669622890302458238987941048772972012968135669291076836877973496454441362499260102290772671736066581557180129305022976870864108142967526039925712230909405282170287376979637427905006089403722179675094183824552897973341151861767403498842469854848117005986459022465414153434779228002172732552002523339120220237900111936156752249078876739136099785056199909995939380619094193549823693941146353190095556079281532346248065191622199368269147042978885003711342550920480500007198785253402094575048919433204095632401885709816952985032325398860999566145701175947791499136603041191277561383362112250535958188716948959298677813458844996386201912159625245263588070643992526524903810312457195195996098145900092887266995304460374594655514400208864527398754122401884043942768549225079722096475553190215303373536712733766072468447607366114201738945902345984086644617625104435729458693404689365094653700668527362353800083815821484777255576205817102136875787853248479797550768453916617762717788777334886185946678241105463160033103644069644496046662879953328406766401997432151385546185914233700613275818193851508750139301939610555597605201152165454376023642377452913585440423187638700991649497016310678002099952192976811322521454134538453793264095100747674375958698623507352191477870119435450982398795312427858077918043615324935913587379879489344062827557089155473008446415186016499250895051242073651588846474354850740207840134702535332321738890022483910082065338549596287521842583082809442191151445179161845534812272062117729249270089729805793392466145467540271987791935813975374474757491499761385420642199744304543854533040402778439371334042937301218808119604848139815433578777789340420358409453765204646036795312959264271035222363590282979761692836661401338093646796939644463335553527120149482405234074978000654950722635605536076289215553348353650442220759120153908365104523837503790272640572939808460089869737748989456235114005977817436164411567210262779120193612488054649213467736764082430573073574596784763838256502583956801436764100970553902206264561826451299421419815554289287901865145543359109651388054742403004689517958718164680687198574866418364710015180837084417386004254439102408120673214532312584531262365046068043474817228954954966537188521789068165304413980031938663379497035397806880116354928355949759741706305334054618511760566961103049351839517421028624654768357236906972920612440953389123125888043481114363522062373496858513833573214497696843708993301995332213041031831223745490805024775792269002646353614223217949173241376841620014302409672666962018733841417866897325773452091471952001025341112156286005539319102736114442137611511587577925972930993969571092497725212835505945444431951160711252814277794256230647443636954303290816527260531713500040321869666498287496446832582758482261070543158282110888204195021867083073151491216278891772304311977665221585362453325157144839898481010272766919859444678216559944288854084176863244804994062453997858551175374918531205057689387261259419340341947706403852141295486896259972400714398970939143957834855058122974798500633507862331561488460030412479180951596035115722037646632896587118222740826871594306581464150272656914720113375199843284230890324447463993272927624041545310467019002947954672198468517213716729684437461930924406959849578707866873964633603036174167899711112664280612615088405719104206336031720086962332505649606029313902563639577236784061386278485828818772080825407529583904843821573401280197685647022427351282076912961881966044998186899290391500973762957690883971380057754286136572087234523054991840521211934337671874127823555394159284608863430268297475798744957627760531962456891321754412257223884833085362028909369557082188263173117899105577789824187113272068574670863025231211122342881614371353758490105785350677307341616048073979231444982920338038274981140903517589178199139067629033795318194266384585407227602014615194212131922292071152072190866740218068642030406238133176583218009806095199408204872690938020617276554899757818106843840050875986734599720901352010427790507050557999228053695202390672672752855614179741051769993153871603956972169894670928777685351991261196309710828712881815476809976030570370850134567527428589630603130804812161407590670452402291611645553194633459751599372784685431373300784411265791075497162487641290467626745913770473489145571650441829959020813515567248942220985123424056307248016423687829759432534431722973926957125685796898508488092058868193128200377355399508029881576127833543177013663156613222751945635518445289471061920591559890762146086292377755264837367179962796295194565362051988838552804481920314492128998690606081452519645965638361732876910968757162046149489198170405412221425732219456023425813227635122485882997222645898627047297447152912833806707320066434985772850872434373205989714374827496316357791565859765038337121567744569849558845080265307283707443540870985550739262415701797137075474499980703085529334996736890119466341236473905626810808897798584219293381798026478733342762234455691000752653434560902450825289426330897960520662821829409222855214686253291960465912145073206895745759517694839810875374927098547993057152915755885947300342041004681789853972808253165426783375637635728183834680500257652326522043085413746302394812487299258502193140058607861923418500340769928589792286818969338674415385532684408737551133244338237753829087589561634737840331316598631274545004698178258986370550478900487574076247815628171318639737192761195869824208731854603045095165268979087350068980213244932741361701801651245317996191444022700777979157052603073561738163739712559040552328879320618161131988437662775794502033024398524576954706051550257240691038085766700000509141087544156517562499016004210032847055284985984290115528130796167307345434184744040436844500729706431522059232594738120659541010484007235063111925786788936676197168389996746480406049313187567092023867273096715731689191879828502447244598795152121272711597043582177242101848318486486331513516135041551442614146378890795798208298254148385772845989417184907727804141347217261856117397007109356062498650555614868669598508122495264860440248647898735100958207083800492998756591829860617430686223952585008383162482193370837192992445357415021547487401310755554569618358483999188137807935577487081681900292793364621077419957262516659501933123007446968133188743281193893440519755157471011709720398581856540837945649489120887592965620643662260410905463318948648811953614419345223460546051235462530868021385299858718473898518930758340901905181204193696103538843142737701507856372824919085361058047069933681962359361744775920422979436111744876094384451519701759220377503559646289566112653218622913176271726000455646322018162439456916720669462126999984464314052027625385322475345035027909369644865995747537638111416645919546566513904731178108746259360492775240333779145237040495142900331768516178025901647397745170658611332734264293993105762419020425620816112033143551980893924729212297512488835253973352514235566789630533311370462875366072068049957145022587202168145133604867036166063192785621600529591848020578868515609311364202417902451289131251084647861223542847280391839320636052895790957218766847399240621941470537945276855234392637961522491448810422073984441310187027653356908769643485673545562733283892219053679185450684722777402856324556599183731157780873575565311388722752292381871164214013731689628052102952743372533446455247437284930684550246876976184228962571637594680311159181547908886698680477340037180222586149609687945962427591079951680852719393451504709968385313500110267627944091640874270521769011638016041283400313152291173866324874222415928534616798997548332644825444626106687603946301436522319804781231389255686093015583037550013031919075422577265592186281547087397141533253808685701476117359218552373539051428792945765908869817081331976094951495516030147870363042396031629193171106955802681978200061970805472159251399452990547471529863795761572890060063378585431152759113351616595129324371304965256984724137345832775647385785785005842949024886151716164186497534159485417183301199575345680669186428730210524266796526403167785334148615263172659878332017525997292998527643337126001267509747581047733735518513119166168299500186926744808251647261577489788097079825031863166801552517143117113041289687526804002164732217526129234823832182591424145259147844844585546065761654171522678316099363968343575548609763650697219650219952781759546219493545204894938257395455303097185422017410721822433346172698504706675586052183791196813756197546997260467799373109438129055590253019896356222138297194629988672797504196419410589869253427719766816898483551367766282684345226289711678392798393868384899406405634500504124764165666619664602392742101187005863399462348958620400869621658700569257116495881674068975969481203655014799206323029789962825808466074664682975572613694062195188371710505429739874955108379988197477501135840377395982470811617135022185398780464870737670325510316712100880560778808872554022004570388614383887356341243212626462430021119194040182583785044698404597981726113100011065861795396003836173602746502156329799435798580958451741831287666108753139681106222364658676358921967547680588441127436554446706334242783042766801341720270734311533568368673328807902939815709275494011774361825571126986638749262120464460472308325191136030441830036066734961452878801562552696873072444946002878728104693142199113383945729605600073116630712842198355631851946510943993575815327069989154976264814829244806603510394570345455166147965399265242194179121489870608999786846735994079017577562379678890917191711696040613287902914460668538566047158351426963318540068718782170719664723251706191648660913186250317284853626097199088982168065283391941666762946340018811678436441155192298042516169450913353557776345997125097746230031465522049907108221446343971022894479473266514175414523021551369062301511644830959457732338779107837281338821968604726052776760502380509648662675745164691662413632743699364712860788682955164891532032352794264464570787667245767927818785572495020588960801673243764101590112154166539936496051372725119288256365586809807284975791603948016499201038436050028718300629184929252578968107652338956596191140321702889357382563581901507243913959089848229506150847309751660113070207686444723248042769909615216769164384204016624974085768194291558521185873655909843571901339188389597990641301535292666447127033934606214171588025894701654862893835015458523988283794441858806576809598797514471286235225259438961752010390318990848556158816153774054737203061531618965204812963541500980906637753005848620644461142658946950533199847198986907050863388485446750469189043747324604070909905628671802554442894661854397314329242170278666718638859984431111003030057254285257823512815918460393647410865182184313341764840171261914560611698564274667897876371667328424998360333011527546981071187731131040542778563045259376698990727935337727289076169439523810130487194938522333404543666176416151851076891410941548864299140171749912739974120293861631829533578951182301637753490066866877256726162933692742046755608648693015811730924309882685791812688845486828771072375594598325104748703605083217049700427930426691474781618877468763414276926661930741419657780737801558104048400482851045294980541684872604029923115081419571800702099780640320736977718096470320594145329458593538335519856558662192283876271720672224565499251791918201868626921804285968311634440936580937321663885033838815529818142673224117015135539397488445580387315667330508359924332462790327876002258316421622975019551799558757995131946876694172407345313082451801810128980490236130495874494312970472352491691957407443050392711028611203978070689603146569820254604101970153102741296187088688392445123464718430325515120895447256624307517687283224883597120932064970445974753613904860641402573005521746013876800825983820575007219912907840077908415002931416795852195277125468420241850192930317035268855366297298676627713816403143162685772484324669695543290149932335741649443095759593769799362222777469886454534505609782858607823335069121134591729851183848596151880955722460340406557882907859288721902143922167455822901133822748186613292728161809018579847851134599524695977425732560556473688198281139170442889228311417570535748760979181172615811837533333571037438533360747739691671356131548126504333140401524999154880020979115035167300025576970581408034807099403847667925605029706048722095309084100021116584188079716893436656225680058728617039786623474288810059318519634905552604114740146064515133694493634584622119146938351448053714457765000710803320334552822456928759444730382775056754756700271008896165343890344595789576875705106380076555688386308854753151813734800346399189064494726968427368640472278351607641014090872154642785205528650905541008799243489244314862033708072788617106778912672315809917288512078768496655854975051795262195455094516102487410582970866438325881797782641968257286555973948196539146412481466315309885969208450964896938564285822034815863744377379721542767403861148076510761309503622525901309112214579740025132551939745790313884834495736244565399087627514398233054112845754813290069313352143693260108263747947224190157563432139227262017586834870457183760132543898192513077959321855203225376417111108724462430573386184219787355099715079491503237036978748903453396542052756642757868244744792738778188804240445270337110155436512720577171766263812620405191172706205918039763663492958721723804989348780862663587601354234392711378670235264850924247824345569903040473983124417379957527742504245458973330012165388870385170389840023619543843823025105198691865113757117802325569864507360363800725914019643582603421030793356616691271909447067983906490449999090361084205083587852168059402018419021038860762386023146594881925595214318058844551503974811910370607107922344798547782673261711623084814384486974963320228624786931341039571355687527631111396233177171164129216682842614328028209054748460477219734352459971820987527033384149231795160560262503154710794580111973805868444683761183966793388157154163406179682689186746689919799036489814100326889190913801872233205324549203802879517135623089081338296996501761396353623498967222482551302756152581976937554385811257785188010835823117196717595116901380476490550790008496936511900899403857218868611624197098588182140214720848759566897167258113302290480882395834558640239609364439915311982666149140570340766246776552590770249947493838823524365715023680317115896983385023610488883635928185761457863122635336447167959001293306542835169673800503951670984305900875923642732492132115568957315647811765828988356982875099361815642290339630398061955216333255435710268273766385917662667909253038559451025407203032867452477255912913008486000031085784928999464516566596514435990086143691702836316169500972364853102247422488088027226441247192070175673668720422960492012215983278305959882520019196100523079819344308206689962973351215661066053450870595182175473393633738564582422604404305242950413071825538774053045019394574337476096496245708088753464539871408381866194781090654541841292450543763358559503648507567362448713784697105826590050595253105279854857422328964139431095896747198260386673832121676551724563889923273916449930495572258962606316644471964475603596007976677905373735895243313109447808598902621808873172886662415955634245561939157078972567934402140712376942912813640589346373199049727259354007187549504519652312854139756205169463088915453364574475876552815066597114253780153773787105330236376957898664958741429606092063956046133861491129929973341561658220638713804103278662430876056304029336445648170058156566894315053620192939369803568096082152924936641383093803126426290130198078683649344242123548061749816144653625501622878683615296545946539388169012607741000834808649735180588944607522861285346660871552987522478020178532555471847406482231656787630112312727193120048776435789939328135639145600225658271303610879055721178069819930628827326943643932803077005384183056786594971164427176370848865251140216897336077653243221028495805555590279641013645056547413161191160120580972602727556457671003760115572835475984692821892311942743629186562491067043877493748164031166618251413784794321272407487019914388212743327426037560426032467112930812644713587160587703562253232607487140937458594596973028400691401068430205429875588181941268678217419468260143604961082488457407630732456372599666605561703965469633187934062974871731516689738698125372094390439781413163982669477130342136443299238277964212906954716865821459938481196529385572732947736043613811125686529651362693225741290554215647038098904827135764805345073856228149502521665477696926881170755501985697199679171616318494772720016466733399259660072847212361261412673765666721585534280205100118677548132358833307668659055763579164411713968273108875417266259270011437620884199616398041861330916067347278518789284261881373119203775997826274537635752655542558946425232345017986410237938620180002607793055614621520957759016231559625900181858284742538218999141616932250314081794608277850936982057652304642993874289502110112100965801697878856957511694434376521208735756264273412852232366555585205837434877403546007308364741544405092200846880488474218588568118903593760661121854552038087421945207850004545604311767357845218479954951462042708464905220487310184962223371372859716206573366758450436584906117360069240428644238491346026065539406572218636225664329376114030074906857766677126205848660243398467434139169109116232352471837665306563961995817712445186958003024700249359830102700442143841251778372869403226585533732555857446735500407953429671271433690687520137648547460489604283463171251406082531711738415230640178214222677319009579437977130412419946334781977487558290086741498876605927911369345121343856318544423256930960238406917629907184309657185805992010764464218997592742563239156031402143194918889458798271957426693113429610497117864739901188928683405431922373235941451067108265476614766287560035365091504911428324458353987331375363779775243560517745195001309945733524724999000095051531848323800629286121937632092989882028507053775853457351807410172219546864888864099192343555310466424030424251662994728380116050133680417661090581784216675784512688326606903724158749674693422503681995884065277068881411246880471876149729803146033097520254087777883417909112396086501059129825076894424555133033761582245842945502712422756453682955122485556308123068288198218115323749986498095774482754419977007636549665886295709742778904301789123201647347207852591474559342928724113431149474858518898967076950543240354543882619282086574874701918170910585292939351024460040023566869351675176200426785211571970318274866498524098032339308623962659933618824392357659021451573565396528772013089052237207590539437304628521349767174994028567418217722774883845235079777223080821197363473707695800062899968651130985848886007131142292648537270654335270585827947960285549777151966598379456646092621631010161235245233113873144302919124455043370025315680158338330979351033526293237837804605826101764187400787543140305205977662731114259953970692768740480608430871265729033438633624757806686077477524966366765733907112678333047122195619511055164984956343391820348678189034299516227289839960883017012494778569066379422133918667172018840804155954549554465815967080128459865913468166105168590097686038662955240839530596816655463835146804390190820101766571557889430074369951572084822305273284970887428684115576622841819729413055834579563188997803214285122999226174922353877490268769714065341027698824981229974309977988178618600812129696548991505026509313316359549356611621580196577356857131023864622560287124669727369726344502559079171113962650298419121118767126169045506422708952649388728253598926348055370135486321317831489136490316855882534864266599280064724676623501422456070917944565748170216493020413140418960106470658790141872195176604186171770890864668745779754034959663960273368789328010469091370215704682472219499555333380247422646860756579841574832585304832179172109716290890192338917169660126086752249741436601979653802009664667006213842836901404357195023095423701054310538734900474948645684869300887239830834056215987268447058374651562689818823058659215356660973279466695356313871139865386251478124453281069970915318801535461473706467613127732401253577561529073884237090874573245721473980817543027865035295711563071485004659093814037940304244309201105714952163035831442268095708741908397263706739489462939217103463899047346157731001455885534498766067363677613774031499095528674756536805346405486794196856365841738698910422227205603837030196256864637045148909804067919245100920572629461809766407592309487985887423789173035898876184679965300110956297082058148082988118158278537126953937217594776266770239194884721519119510620777565226165384539273405903690344460270764852787995465490497273469898034487566064698166707159628407349297256937386674670963553939104719159591579736398204535060925144580107398399102976316622276109763432098373580213165236689941384689958743882197281289072721457324962718241707928629483769173057132076428816088292987426573948184620232603344279473825034211336159126297858918869705578291831408714585954708797777352108294477932276603925063969647560308029999312221527039734279750251923977093741829326861288885290862891099918969676415144787087274759472995128663033918251989629709590824718583945109834035557517850276678807829112378189205373402073517001764263960890079975024425346878983334756016627374064793985221447544107204210262748360276094953277403243481984648354692614419200676959060444484880265481326178311671139140064074182561140299410642554650115702683761259371464399753983900654910495775328789456584056145108539700530140410888236567327987933649883600386450420664088044046249145439182115312324322499969962138047941419667152570961038636591161419758304987794439049122429832581866779175642252897783019938875743500974960827942739675982030359205731109619002101091519152246488406808746762329287951114262676707555039606931953695800728942696778593795593882949442484986433689035302579230809386368931994413454891388274860265114867817808244329527870174749657428679781165839959794455216961705357963046429436778913113231895858112983951979405544606249230597044445669294329602686067578954851970595959916856201425621125935513555301105502149616755898700343559352394287963598448341039812552156979136959841957381961822177158916739811045036376317137776936408743233755368598812486239446951935014559023381972070396516248706470379664571132420303129681964627596253848314025479025539557448861707410265235524491721693684679799858196961516158778243309123637612313292944075571534471776740768549529453871542319430686837915867520985466919185246920070423856430179019888097972323115559035065322285156403936765828347817059883930887941937351290559933399375799432322915639249856793806235506369091077878425697628882637562553489774685822050628248661602610299280947486363237116754937972988676411752849576947464128829780464401374134687955735828962070929995898336618404791209178035340218802326504909039553778491625975360375879698549010117234721411063373510960667058246540654628990409353645861369769048008438296080818660677429959606885056922644096793640183640177613759327440903326517770232170292616695755851084298968830197088840238017296540941994069971691992439413144029962206907491714190198641448245475418615857566504211493639589167876182919852734244732694330432383109394951980552874912169244779916676024172940069567027212122109385645378631886890819026383467432795864554008822071283771517654455219871213396988016042755700821638649278881258652978950861677765914762703237217415582136054256138238022641900676778125875678936552288749606675905951321657892456382069524251788748916605607062450032548797069041863439253543225237715938528228690126734205776920730035780195308420532722870147115774346865159828758886550228421892225224144229023325616542900994004823265674999579230547761421095698698815128541140519905323980359616444132354048337630596954537751442688006940890094982101960966542518184705225554880001099302797301048249665634897438495171107277058114298352093966903184621858871362302233594113877097908381775765128828496523569479340180199207712637065092426958393115990157729709144687154552699931381235895340060100839634245311411059100329693289786230630109280042637417343276015010573823803553043961141398967676684487381582757191312920109396042519470267663038012529110679207547999682512865277822000374487440008034894100153369413814648281534605554052508272310878732289482914483320759633196210075777575538674160058057094351546863058756343126705481859927277615313885683396361751239309512133728450123045148014880399097151604242211756229825369195869117314100188622880519709264449758666605031740037199369565287477872048103752482560953410151993097579006368602500736481819362509975377597371336128121766167504116696384515237510126282812153457202611601444354717446383540220237630426883186725236559415075704400068268416864165968333322113721163304016635209527433967229455981652107972962617373161100281306708600359309228070208693176861315486733348623960455423589096453480445582405348504535100103315213209708187056900889966964687274409087548204727686534010818911952457096100649333629231701996722767860330046911550799969422002531164812924431860884791733487641419050370068713234085789721826124756495803224017115084874119194790295735522040118747953731841941001534571081050315973617574707375910335236614876416913590073343019221325146175787956688368517455397546678026418457217115421320622748428164785506106457051371152454708850867285091022982297009328578995474812288853275784488586149014877056604133248725041062816786101294950918823262039449215584979958792099567149211121035482198070998107778488518912758989907334029954782222712840805750086271429407642248075591204973429964753278855278345321040094298957975226153765306514975954191414100915700824642458923221076668006321461722546199534309471348392767997744150210478474689316460844936624877429200409989956259908089751943239512782297963512927957386320332047763966347575858973797999103943039900732976511424199786137782118237076524016941436025697639191516912485036146341222753952200148689104321025047055888406514739209523380475628536027341357895098971986525799419503500173251563480959787745497327870318765523328178653026136761740861839828477876069891689470201660872788313759461044846028883466030286155730353857860223669763561568104981834989850701180794372982984914004218972867336638230641704929793679481718796223436197993944512461909778719161847719308895399482485681229647034968530163080224566179690612817945442369924940762785548550289434081473171822546005894138102480808532015359336912637266348979417551503151336426742322860012355596198561349900720992555219767421122036309175396164480167201059013342786415196400356266821705161846045351463474231344628506299839419221626878036075024540807993237751819729161749958119422615246432051767703808098655208947650672824419401040110826036997029582365953655409473215922056276403161365981667473791027715386024678773342262490219354468773801734212149633403908655454604829865705292882997544876861247666730057413708121947299335838198762152902232762948369678409183396551843256357985960488104261719631626026015661808336126740623642604880893343505888742186567839189064030113042003731989659502290630508530729720255512865668002391991143450730399291050255180814835513084737279304613621343167863059501324193909991145904430873454057635916843369876771727172048769116507617809866387317830299089501773692244107986841268156638971788286417339375908899421924466114267105086514992249058860213047988558871083714346601088132360091381200225115888396159814688292392739202748462419117788921458264929876101477560909578695903021946357837392154493445600575276769970920837810384295757699429739194833563355873588815816274930159098823601561603170016131948547706732674601821677328326786829168136729505673030611821434306849493011464079971883960952977412793032466589929273642584819031988288999516028625164033393145309154225882647898984629175087138690265929403436936218428384735428357677374585237326151783226544322284031474734182392301832387360545516808127395159413066744484218154124366994124749785141224683432590711053535248713558517204817381301821781068651022745956184091275519048758082501978727457790572457721824075620693238133413213303200442996286844961898894646735943168008349323025711533220707656034622605244506861236491517908461129383516727024145226102544615789527163495569563293194201300124101368067205244180981977204265180188268315494768004051658685201656065305815204070495981756047102151720589212880178184274148181667134904659518947602854425003788416074493066156294978983372863805798451694673411693699196919197953909107200735169533510211983428744549814792301150109875257568472846965559818858305444309010380888885263098717621274089025560320760649641758092860514403176333781035720872447716878297210745643120748947161627578571369212153807514086495107743438883737070419761607972292158606988638390711309916002484469826215717110272377864311673049304632647368370309905865514486158730245501110873552953414879279237503696222756991399520255917680851983471880133079298460790225604411761610107819081596415638415177604463999897259497185093614956203740556135817572687912100489947337728364968656320409202172120787122974475621002758542426341665134923913487805810661933503468336453886953471361684871566631118743278678006559153142526444509970836434453004093844851477644542561842446092115440263672998254734404004879027830572446084642606730572384600442983611876148467795198755359160509348645612585884928958009133197979721230879804903156333476872215006010190198336986143062267971868964967642044208487933780444719956085662016326574609802423656813742054420362046346754523079129864552258951741048314155926694285960113667337844042198653047309365424747322622360903654427630803167597780862118815099985321698644612352164723326575565005363808861655796401700365943456795950485239603021097604846659973196723417264819998184187252138870392201590683875618621263895858898729308770073137070333233449775579590124332207213522904920295836426127983167789350374287343673041974500205680149766983882841988037354716072588319503265494429314693590044880921200930897685438907826329678893940237212408970264687862344453615671641893196549544271467345468122440821461664337965441498150166391669459827370034617504557280496343485422799541033856476885139844617977178024159211414538892478332057807941962543200609859866050881291572150222286168714299433942904455803795081828874211146621849968160881969329989342688887552747620723994561570163353392505769425645636664633948049613221266820373573548879789450346226442304648978202409781939543839635274157712381445300766147080600726766597776099717428930349227474031595425193850548620309826108844088616708931831899562868884760465439181892465745447896761648954853449872149844896247553639656697918328614081709329022477725411697172331403561935286727945704821237746340804246454675298871764574235423968550596950130444691100365136447535462856100716713391650620376574921179197511685643704467464815887863527985798378699147831118480946310192186927597857762799113633548173997708855501757769831631579563128606107230785598174240447820288434435711005835238608369838158216784619457412236569348311117081046620554741155399564596588290980441704896260644586017153218687515886495983388717387542087612827418160919195323820581923889716654353290434262679062647061708532853866017713893217847519083253679116414568063034795040926407531591371479948190653839421580259775632964303909882734829803885176861764163245967330549193963722672759181640193660940894271666897588631417255612166613655185063772315692276482367535069936118328168217466305039027560097155500438256446447592348946009605852975190416064524372576383501437885230269328264252456005544607554255722226293331677756253689843120240621658041489199010666855788949732550053460023192853595227047480405051141251505685307189336274998987827607822556275588409458415441469081238148134051672572844168342458907070598193035557691796688383565219550681976640758953280141832517246217474187057755567657868526276017989373422259371725444587757749793937967402863363347504799591200480730676319258859831629374222004662842141998798160624895776884633371242184483544409527957079471070015412567366824360459063934649246458809615802532372903399898533291807626459898471378993872388408379912188358539195474274847440990276090041142003451412364184312227744040339318994045870542996231500950043082928384837055775732175355547741858992503018548216575375114174985318518973952248851296459874865465557211314257508729439071189285219947758684745723205015866214258513622477136807383577477735849007882227837415566388719753280756736649631668444296290335103775494322940371239745275188567536504600290823609754697808158792316064897517793581253125444299661725298931879603521748737321607534565073570764319715554984260453071005682894021262124416631384131288286781061961476606420868668221750995998097494025688782688369115609539397919120017778460390129513018681106729146069282486803826378625389151720811979544739386711830497850927916471925618771904135669336755401719913476308025198590843356835045537481447131321539815944002465971970024691512471625092697315934796719725492570838124628865914620852743382769296853625802174068762667096415139257866708635603296155743985660995312796526450529752391502402388545552958207177517646795901613437190734274404461409858071910302641279501067584884047734965925089364523017652671832362163059233548465851367436159555461953552713114605627010430173765876693706016700742130227433703149332004083183700800833966738837544136393926667983421428841235085161394405929298791695385837450981993194527076703468262045743858145407374671185440771997931784888315656761473475611404280021860110466978685376204348762494664253047469787423077409073808247193176176556534528048643388500933524354642495765314512712057187527329099444430202618602024040932112277327913152795300389441270756879930227565064138720954711199952835141477073178492817505698342711619875198623058414440261965515883325950588241653067609858627134100984983162086981930999683281815126803352411685869878828583860410173686470233986725710810036022248503835933720025663729533728999669338795679839646505872360776917756781162898211220319550621799297914125392619005258667171304632746877578510752322061283257174696332744586229172112287671196644376902762393971950606789922186488331754617675278678740630181683489283159543652183107424094891479413038460203880891660006306911171340225708086756276244441596027257187901754551198110495954042795535248067053722040109380414627647580819051579998997039029746171275109951753813534128909987739834934967365059683371878387597170051296749796204574283225727987604305307564558090151117078792285675883981509828806751159859799450898449792958199270375489191927574523828097037301181564802336304850287925343210079261607991120683004573713607306867424083715240003097894132509537069704502973137607799296549629983060416879409239262985563324077039749595324918488771289038503769531522450840814486396134014797924780907173045895221042274403867766903189434747009536284863795147567984548476367089228558630264638937765785198934526619389730823826628907245063475554409263232621100037627042893834536294509282905412736942806693786753141815709343751431650622277020558942732966134491394260100822867418106242305322996131648247670215025185832831515012585332609547369898418878260251995126842940143700634937358040396384850673671937194863397741897345609329603650234160689789105485742560081152515824818250779979383925121004046119119158154235130025648843974770014960802018765293087753429845089685640450194184879665302278868025596265831088483192568548452657817147844131598729069436808163047597353006319645759464748404891582003273047260603997472619546386020480216261884193448310348685949578981395101038745469798724475377375927785433534739856694638365036095157205019246396762427024710234945530965722993704549067267026124483539358983133020436542954247280845036268474318636740116606525666977555933945160806433860754133183026033615033265002721068562270221324251928435765085818578061135036917394400570725098828063490560652016922600188011164935466093298300461319691395907599961922817459077084291453883749588265342555203050304995645300592568018645316119351984127441727553489321167159356482378550254403290043679692292500002898871027748748431711017097180481472377855609656341352072332450776405529118496145795412346079569139781902353799491814447038142228803437518854725881094349999580001961367585317960599649596629450829154995171324220651484967029841411351072689114903571040877524926451583421012551649384874997349515597181013217435661452941698445066913132080438538595832130193497662557101841232091314434768864994847935176761951423920424716444201853693501094432541756265609772145487489500525911046034207926789463985173883897954113775841414115201855320453666954526743915734823277168202688186624750958549507822718535504392906917599806269570033275337225881207441828033131785264238842878739357607084553870355345786472944706483719358509513273420091864985636013260421377120448069186112164977418162090107811758427078478767647160838416743930852893281433996366390386258752387764454642197507319969564329712518253803162515593708896872794930226965952804770366654164978543367118393845402866563939641583513987281225463363645854737746840114629181971761888238783935984498219613252866279861195837311822700291400277315792462222220431845757876186663071633846440459760132912253499346446155394207644109807152276460101654164488566210894143235172446640965362529331245159795651911602117647971653889008427003524168021426614246762393018678839671314486602479803876986378885880014272795486083791788489309715889570768699405429498431383219942681379095968911067704353662435937261760690425250581624421022916417758879393616506697588559091340183168452215613654494239582541531280876306239028869808035273936601348494019760816677755120689326967737966592718037446694901501206148639955952785924904932652315334109562001524876543953247140336262949296543093121068736631818735146907123737621445059817582687372670046540285604395006096225515008027753498730796876674474529942284663505584870290178414470562109149838464780678912178745890500816503085730547169140062395582850739017175950917821816720266911208620461124867176065683129403815185344631104805986264381168796129729441521197196802904524060803179338620645719190467139394145461480830898118780396923578630600409236125514767679536248805612278148099651741999497201508453716654451699621808640110370369475742975983161648189624309075314733538652730156931861096229233772231882379161268015987451239188691991037717460151574757208691331012225225677247234944397352740944527070842933689869380965562973623021587270873003849586811236687517884042241051303143342806205562667978448906828478625932336938043069963983085636334677597311841004250835521729915112310268002613647933700407105149347111417201102943476708280085996583301643468139141029987708025686490621142162595136932791669412684687470116702286417098073060523108276682130040795857113250062364241241332515665611350718183846741568001188615685402236900342042695730489149571966458330289467286451571454218810428610121601055206186912244968422716941425091227210376030115459098262649269701293664469037224675597006579200359015881299961550535121553363114854633194339057777191215842921482147395280333964792003236400347026067230989589505706056530662236656945945102534705431549572932997298624848782247076447190014804192920379907905824774271027880551586609705646063921654525889848018925172491863877576212352721062086540574776105630104298756612968750338895745157728876266077577540338636873797580012316812646133527006982896543005251747278338573637116156124975419026206509445067588238580272575090036248059274217335432109798088749517335574472565092678787266158579993136023544275764219765046390976464030823936600210832723075060790872625222504785022544891450966255448494087557875828437542586469973791059426271733190643570405316528021596732896239717186180163053392928190821408503714647782203193420106139922965297921243160746882175665692634117425505216100577110780246938100798962860158313150419262803552919237068470616450046834125933607730543792185146639309732066187134628189884693523260518948488025394313080862815732745058902433061766432117521080640535620056811913139612023566545323749779842050365964465289071622191242604445756989519509242355135342156536434860368904331018833710906172922476402820933286637710011433650116467031528532009214085281485392388908312848914116904287580252151258619409869856137327794240242523926248690981906232534703575943253487708790937679456008223621315413535357434538906715370905589791241163341376281702024673831598661930594928695588446281094122050668674509039233747683995482089790250038304096834514189276602366277436424028872170773309974595348461639881625778576068017148039298162390528080371093396509151654684549251736883676005498518555943197133414792795445546436226594743923090458007021130159699159164993856986156383887020124506275177032865077890786428154720558223715453182425983395768361573573857832852552254850810860232090111862791038272142051614503144273650149870190031544199314546917982851939774238476953950910112235689863009681042335622486903375487107718003581673999959649891012162501794706186455926079457212093617619888904273981372160836797406829237060427462982731410444931173318748792040505726715685129553580026288848759083474189895105687187134619769495272315714851343474254989276204508995200363873581092552222335038881625494101714601004653904342729966452652771416611323133195725223482696738258583258802120976628267936040366882449719856727644840559792357311006237642654363500700223398180857470842730098412955467704551242826353421760491248366611084716269137820103905607648596997991992883559834826960510343995549330453132067112065088963351471035935659893600911653714421157166420506324199882150898709513497483014610726219715952648424235206695826079285767449188514563594336426800792693338699043875047071407978288302985945840525956783616171884471793919983237464482056263786485876076298547514648490148878453832536341063553881753570852944422719123560602301209501575224576359002680045596995005645516667529770776840306665051926924457709829411306773077779832947394456923499808428236142428452539592014393757339517075551242584750406609760389765426903813083408592940283303822745755091692683098020020412752155166139374775481804504489222843564300733428718859306277562652742204488610193038970388393196144084795554854326927145015718007348580110453078931195802229784648309601386943152952046189036672773447200547304227661720702821634328858670691382933282225300988527317868182944371537674557229731203036598124130389628093676876692351691667466837942019659706662381425701512632819309904739245141262712870455142269312947671842663436247966903814113762659496789215725851255242026470012341295315448362073773677911559619200402943970032536588348022242675955194384148264358741845298056336827112837146839452859464448033019684679147034491603140307634656174018318625257630583078957364717309551467412027259954079796590356491469023021090645181584132070049121325989891872442320143448540313747601173157875524409793126649501850661844284785098353195725678459761463842341095305025002985128616382106624195245095669371912237351140983097299419989524995330887336326793779562561172758923373498198277170509801149137465940070217289873662578035642472054768712759673435274403880758492833154063330435947814483298242193796507017861517231673107585348406942025839329693821855321285414281605689746956180315432098537571863770011814741953060841204415122397818383620499744371661912570562023601975703813963718871755208418845173149408570216066047807169116746135927981966114486689482146446232887018138178964997135476118943026389493669431555303597980562432871234377091045148140692650222434248331277973789516194309291833369155071549509529763218840779973455972006533508434786566940201056744546318025136721045737406517901816010492444383282730818298134868790108233982220963513876678651460514917191140367908719131832398268191226698144785613915662193388461857366769930399828315908953485657822971109757462365517170802305070930612149678407534909360571438494558018180630561766062115699495073718556140964858570761285878551172363990471904973160944896376432230425863408529717375577108363374921715707070356178756430796103340459512633807579935750670055886743748777145081586031577179997896470517223330737519613378131582251801504014483152800267636051490137434389372887727267113593614916614042965759890368552101700005266518568043554349406689444470260771743794969247840641621272669057348141334419515674781427987496876926082319887204606485473542980988396800192424410849789954310276558457052176884723479366388796242917982977804726765541640667250811119807356641477783980907527010541379604057628365366682911163495479860749747932580451236111996017932878039878611543520681470342109544133534369156295059819667508708981531604279561665956603449525313412008977598645768839589088942827633978531498853031519832610424814359742226831342150742155035303628883015998057893781268234818695421434898553563054032267197645925069986548049380070216743421675581327779656771564781566266214093398997750437313961461032544116994388080846505723408912852020343822462807198205736459164294812873427944547597626882436709061905278006326024854052914892851572263751847740941846653590963206609600076898764733236994203995238377437530022528548299634473136201770635007135142899796436058278924609068312290429428865055469670271068587136608756988323702777015515957504908045160588323106281475120382390447832387525377011272151810044350352930839450422751362088785120515452464842720633452792010217766031954440403414807304087692474807093577173125821650002576232672962261536291665244045615480742016525061624961498955424930004751709097765319312162278949773320833565471879553476008685200226896771810724782078349664330096333348688794216797584596134111007669096740709024848739555579039920831597374726868514514152540356909897012624232113047125657369783211353868487305584779088919130919194782632324639277781136288930450343826996822402355239681763537711462843015114018178909817372437602212443051641511723354943046774315954193450005660344961771313958074141597480390086828589488908875312251252223806623034371647879614577929197787260430087899416516852899905443884276762256871077807491323331805332582235677758600528795145284644076398374701602988162091999099804121305273554484825094553072367315664626938104884595800042431461504924089046016086395807886692654132332660318766892751966893019132005527861270586846560583080061008507988865750945695740648542978257599314331695492023516377297329967603831071745343018789037064501624803337820776969290073792865573793387046094230266434824283526303204873315749570198242145778735760468929513841675753761785282650768046565285280635049165527201490534603803800335537260956626664278369920803712777338352713710333588522097282015012499882640739969386750882406311120350355686592716704843897862180252984698194999362486435411001409684029411842308572850611241893318808945977687529896397970187597659105020300398941540826750868506635864800683640146859455264375130849804140462219213491013046332828980787572974672697545890637080667526378462553211178014938972518234677236159039292016216415226443649012294650811626603804551796260857455762043153691907112071763828470209294713649228434543463990591025849115562519659231299412964484178454052339746668374359599692526628382709942656097947958302152974320376358344988118948440985228160717944881710485627944931986920114425111730999217108591964287111506032185859683404813176987954096939999364743047572364338468870328753567490562121473796239484643925265934525179290423019270843782842841718987153450804410491341446741188956778015587379948952522308326141794539656241111999145234287277825972884197737788770056490513941087225295348745852765094891231001819975411981195377893041290839509656271491433848068004415554069630567106274136840978208014030616361413785883795779971119140919573582490726933569744586138053540796938325547532852722244889332156016605190045446602571647353420586123624774263307427149524516558345002258930412893449232853873229000864708106139405943414630405159953737449294236476906048037429916680687143001388542760545505913766622122814484955138459880009021548419426992680602195771860191502615048836275709844426788385498132090493917188378609399316368717140757382054079054576251357274716279442266964525905799408560339039664510133405396442117444469351984990838246930791140826011888789153290797035664856329896918653700498356175249211557280799704425760465561734549463754219030143429126055312516561797663982050004047235604087217007813996083829817562955599164896812381685780090450622878519310238220070039640908043116208646052839277888806448173955116337537439021444003230249389230948090837260256106035576566508542773333149439635831557117551359133790929887497798791066888823591267351003859482443963498152931167658610803118192715935997384759068842014702204747345779055546416905348698419870725732494720035818427239933217322423000379165891312883896981375874578799254729711970992834711638868048176667880288259902453734102492747000859059075013417622032238668986274257500300310175909169803880906915690762767322215749373947279506426691045163126709759255182222265295338931644945241310001014392000151700348811232146924728646241220281590213643150072834949891035725849828373175199522152363259044458966301758491428532808532857090770833459095048565401476557804260472901752883283614596293354152663826377359749118526829271085139790635088471204085831095061017259150444638149830754500166769989979722232555231050801929209749629020027811277707301583364950344799518060671668503226191713067236852837959712725200964444010668921691098957600737334360951314083256856747117505862927274822086665229715226128707093352690392529935565679487589420744079583778381943713209574005044491198869612761017371180568327433477113684097575535490225915910602747295852541334421751531292238253562214313749980569969588887288497109676373392695404283175590656803668501815796737322127573938041242319530414038404057994279579312794285882928961246952460618922720459905952102026515203152416052001428549984094352666236834046491239157421995628916624358086692672599513834354881182210911411684337509326456265778370460841889101508216858691356328488809996969621859669872864707050468651165925222113243428031553976641688356393832284866754594088604061559083188554643500272554769506741299277332155112714143719435793499718980341016221639214567183762035885279851970205824705641757262595331142874660266705085060430772906815081043231405198935242801187414606863523888487621533256383194903065570212636281622813506088804063919375000260408150665441217300374713423494453414868021951477926803091365743070143349347982459675727998546945909377284824950785755331876504575943989705769074995644788369038676917198691828178853661222745453275054035785566292212337395375800368675235261664211945554722375003464494261364181013943914868724057382367494265952729476000459126611628835054242136579058984990642721449395085940829857151501108877346213923913304631264381045076322644208417707234940926140089047232605769042962152918625724253789331140497326691384675760696171728719450680120101764507562447865797144451468422162616174349258849050141971802079694639783945597849767574813228016697067064316127690695748418843304106920714348411990803175006740568333671372313441490065105411527337716506157608613636225957165643625052537607851689532975198945064454890397379730445532159414221168657217674765824146542897551542818000389689136974194668935295766661755209358038109172127196623425119929978340906914526203252913063631473755528373936610326868455322908467767419226518935545642769351040882814069585942150161571904424450196769544295198578069151223150693598072121466297814845186775831088692296039168717631515097003669777719969264325893132538763331803567276737716592441716064322211120380987384083084238659012542641913401893922523116875069567149278398447658186561636646527401765130318136364775103040470359639886368132050096711370629943422634439803254180113963844775059918187250638097323496551669745273118484648592895664755536961138267350429989807369348213975911731034151593129178193013846094694822854206152099382393487438510542645536454230479638303247665518089986167697397438352155730400795591889454746507347298979927957810528065190066807546628735471994815551784063697819403778155542811686070462245503296212663237476424132770387074199221091021371612304829610503594544523407969776913533716672466776953356886180989046174676290088026576692796464954744959258380071670322152364243150518151601543828907095416216941422963154894792037236082622195877517187156739655563072944566832156095140344424937243379754627177246308861519147244243238073136730622483601166633684160928631481468763070143040050871648266052088393991191577071902876920530847020129947525574384482501157524888003788304859117881930843516764871201122839943320673269953747642226950246215663681771897893341056003463577585344166971033910146370287927146085054864960376924722974883846472868265517072256342448133570754453100803810833814303036419748321407760610205870092482535922466495852075007924959008579457888856777851094467514422376747931758696705624446008140413326732535801827344476041430714619562060136976551522167394031382664860684820934205016091167628121104256612022898264553061663347348729666235276600156754135312324679771216151729082083773402820151897367764855916280172110319299652094096790904133059393997266534317390125081718187467356899161327470030320024169865767346921468234238743186733108742657372522606507238685937780127549717161536577423586292378252145623654016281063207333977532474323611527050074297469402760562093520306581296327829998645924869767447722830139458459389928419241353257925182718349387573851269435714744164982315760166354370525485791982005962407736001282468917134744271088334507381334583364760340210781121025569225851807464910895628221495464142748315194892996791587324969493745632671764825021913475380241315318270886370110957154294380882229613991788102840385107086875326298009574456333043520570912223911858638864078254260409347718859194396316495484013908228138147717977496414128451900384092307133834390410408617160329063684567404983821561770524386301510541677051413200950183432384128212509191865509548305987404168742499217285447098257938719931537779799134030660786516353383547064064208820065350497072127330417319617742237093637950589410477257851072309509174064099718038178767960471229461035681230338722717087128425409749955408017900026246312526778222043717077324389665086534310375263573873120360747420937810306664288165605629091922244593251654654078935205003442124011549533244859308847741074133691834433857537561048846935577060482480244718105522397668203385635451557583183740232636874093570639019254473977796568951746461413796904097026231000683325715204964121302830870448104479251108211027722992983406516755934600764458463991661050604070130252939696532018966699784836895328181984608733318567891286960304672250750224405989876569149186269748690743524026861516301415274583627729988791553705033863680491660228050002875499125091467179683287306909171092559743905378752580361594972734851322990333091324394613540114327900087447625480493183611436278328974449567710167976852312186391082586839777150622118716362739154051469941183466827586870493331698313052119508437867896175332046789951072007681040285132512814630763415311903493742336112698241235564676977868467099990390094010488031404341767335246779458586083336894872633947368981322812680448032514275292915586305745393074658459627765899680631716354100355900905755393145335400906230773141795965133195210289088052591522623043438065499115080182447413765391457292108217601653704036994905872522178045225993906408953073310613477749739787296992947717211737551543611642084648921822027638243814689819499477481325644905986851848595056485797311399395167746398529988989493621898345192940755261867574669844099080431227001325077517526935519074224706856226983952726217776877316042622619387973038195613557158108589087325698172161851101974971958322805123718324423422979769555426748474398190009468482171327222801885423070953865510701609853786071978283301248475054349266223772851316097583303958788093365698438232553573450557034889366135257577107780435457155580271065205558325729341135806898808581355672169123169998566672329558031930722107785805907383800616944019610046876684879310056887956654753991105620364820685424251929420849106294202724060494048011747492869248337483812984443831715343916878192975384118287469144020389892282044161261482709979085396061230944735009998317906760508656333358956351682048588546321821607715621527577022916652405738586489762531458624067748740229529269676605979104964595636092713403854505443457319635173668762780223801919915752875183641143843070260280376155671734913983144689825517127023650968931175410030997354576171674523707069295287128972524736279734060866793276785462300762125167199552889009627000812286797931991361773616463048568414584129870633642203505524215696757287857708062062936491465637442358451769766985986090303180815281284347867286479057141598101983390951755243104958464757270184594017690217126352776120614541622050410527805204244672748782821586468278043128407700204606215965475497821245059951589452427238084988118599537283109410304056990090955142355957672669724160237851219089174063380147886116480244986456529914821281297150259300840956811081910568989645461829825075138642288738139809880278758499874685968612852042766276785965811414465003022828292842792984429950368828336854077487881837419398231282300281061313505945506812772522665027390297077739175703647882056974997513801973684473583553342915132790720443500843722136329314821873564186019830338823105761560190148588585835462478545071789914581573708853705241673709142565850912423472161610418444828470670327186101093388537074013483945886771806739305578365878596853766049424702569150754778467553729296090886585722631786121909334882600148402794212501178921044820718062057464201062391394466011156991558705262229952368045057665728791259328827782996481011049207746312528990513040560657526912155159491185116046767693706320751870654709243662809649670530534907306671890910046001094543980501109562389942540127796803719864360327387127826068021411302249594351039981296423907951683557179577686468765150821957596188529420442658992610919681665844929521022628114060001956699894342637592812813326439931916469400753273773440534123705974963874192041236524102489056488093593961811194646854296326888318132230403720117450004466978501487694487611324127431675803664181135558758930459780857759296487689443269544571946880426159568213813693662469765747784975512672100366338144586315625211788706638674367561264083922658606480927697722333872138516574332213940119340745955488743776796944817673066210731790675160210522009349912013314553913108245912869491728416407446585915924769439670025987287082568211099572696173244811053901388744458454384835659971651559549933352944048321100163867890340602227931587702818452781561738015644230660240463465183040212157283236683156675553497512212581296331475016216519603909333557019704064041910126816378467455853038970716274534258856883552116386817206925850835312149364632038178606029405219624553122629152827711154005989299928058527490609060013590102772312124944755500244600894999041754004363472068453742292158690822828521385355468330345256326953778028147178579635715829713599661618334650750520737788301638102218758183885727310744241322689511944729609272079043689121653848653983006437979030801524089848225637856099332445444341703740543949726284638143901580987873609337844654907938839597012821973689922502820572214315689428902568647443851460385414090852558681242056688311958333554757284644053070009432118106843526551046374280489967695858265907798498325469401146557115817365558608718458921119029086221885548046857021040383699516034906565033422359152883166873105536995700613192910001612277112874134043267481669895514998493561050255230260930175733974361646877526252104046198931169045724068594592071234467005832716321967974858708442255921338963647967577560882432012587719545782983125554978738760054959342345341074187210196946189085233944022152417779877825168658126487192616367317617256413745624389252722634341683370990282837382654230413993823897320524688174689590775100186740531577567850001124716376017435961448695296046788652747257248692822596643081813688842898298608196512903738292438492100110243967167835689313207025452139750242771078090850877494945495048257987996935005488976133214417395594816116120876290669104449843293684874087141509225572926253218135564880169207591948220476615102534622916314882117680405727057385808978286627364015105878059353534800439363598336320074056748529257808922916974577573274636392895385687052236972593372737529829659342867387682209322010734622142096739829280901464993581650457634537663508997499116599305694383941793876295401701802908646377329510273577368624084384940059804864876777715149585774447071638281983173116313127434046044546561884962845914419586638606405180978811928791257109161347288673511162567945484183275986519632334592121343357323488447339253693914538200878041286878865684324350284580717272876742364489456508552827524211985291630537560145652816473519068910922136313926867332601983934077812057080274602972392141128873522040836861036256275520138332230952419036809183784269800040219081182614529671980188927207350322500049954847885619543974251379443517945238320640865837387571132554675368871276123160583475848559117418052567068324799687819333220030549786103870166983944296763420107459952321109844068122421669713714210496876913039746064984436558290256639139952482217310106600600022838206972939726288413237175065552469817422477980952539118271113791909237162994553757206753979329643142613523898615812771358412023208114947711125953240995356208457982659016706513892102232170850182495900415192920630823127263582647103157275557578925618636539794777117497491014710155069013049177281640540723043700187642233994646694080200265643177816354722152402620105619455036960521343742736229849674579595609471498756226487000428979509476262274959835584409520408027486979225745761936836742153108721563996261877068618423157828272661117595403220967825392601513501533867533374950672294184762350027588412772867954141828675076946642415099322122397671730032956708974561021652949367989404930269889177397234464760277903392817801356830155323720994733404212664608335424141223938436721638369950243549962567542267174239140258551260274935169344493461873221216571729273610348592621225313117467309205881891235838998532814736184486716968983550053666399366208599532812971044486014291458639270308925930420866410148184666927297848849925809139159936413873218569362379451457056821376866321990282929859569400130740917646346122972891216714734286915410260255125682731080935028665494604226685973104011529101478156174648580820476751592223339077658310142104882820283230358666001960801102532366315653681595193339307514570995723089003210434119032895020568760232611399284015765817893041699396082461298051875818358280271407670079077645117786629027590002962041322945916880628633764215724748058737470190366475259287293160900503685717953209611427509453522347855916133279587515378896017002688431438676216859177063668455077369599991663426391933324805333867319163773778686760872049195324952956473344218592280593419622858606158540801286390923784356358704288783264534372914450365061652295368221281216112094220074844353112461031831642073999541789631918359127928407598094391538416257870566335313728622773874949008844215466250708419106956127780191327894017485045774791194100877762744981537622990446215395254140454177777118802801004590364576110122922554208499891205184130179304277708074662466808266220687781822943014989838229603987521007186795244806428428759727212976126408836222097316398437612115500579937151012155220369959721609699593423843858727376063576474949651047491907169686735656285153955672763038001114814095356068182696131194315257589838888793989101639331526873634554968675610850225948619490247324078486820324501213689819299659097107418080323428393870724670709990007606079729986094665327666898451937569084847002793945365838018120853344296343186908384295553395047738063879222951340986694910969520668012424916826029460418290215704812309001647669173187383857559035208099434033336229085796014031965834182973300319894256910926372101586980146438435549842407847986777456209927645459961199265911979614190361800413490825942008427533613648348287520844955205124691371038429928748656920920171135553882134342320713077680989814506420672058580552733204092150723961592806979638534895386087897678759332637247264240327827399969826594478019135610523697833442013088175559894362537678494029263396910654852477771680242777622620112941521748624979518942733322874886288545644870066412062092671874408293315599779936286878251550631363689544737392272852576504287665437698235305145768698789216910676462917575655581051959738911738266567853879961409536313168399320440938448209376870184725525674107521093716733343539791357006162001295335992056483765378001398942944849681772595870771985706181744644107702278236765333834146434120461184110216956676790014559098066629406509315739238261228236123744394975296109821067286705748899393356007363329115559505143356741388929872539302921359219004394436341928292863426934482283993791052627688962176511375687081784435049037777427039426883219440837133927982160998821279132582813755548185771311408251949024251681040334707532400311571343503334356087348836630283929223054409975735825550244503642783112243118735432886543479457412083317665428163271824353979819062664319626106724791540341049354648577268940325677339248995400195291610370052490552092258899467958150278504436302932631388383831174544940131276011249137834326794555274472142865725645531160517033579308722059447174911174641367755621250976417582519882134907365716395403733987090497970323776741656630993051573337118891554799470680057695002337712919834398070688822732860442955772527347986856917933833578562591209954570565291453786568595850600347880833256643621865531433353381374796906998114729483990132928069907612598950435170897550487397949692952449173516468491967794687297746282444935177524422455382054489834329329192854221317728696222657251720762244635447196062833045880906097888223171567470870741664779532426705279433340105852038929151905360674973839676560194049017910911739667420294408366919845837556140535029010331735355245669334687104353802864875543951428277004502561844827473742546567653846545998399692934110028656113536483100012539922483050470282532641716195083891331055900470281649361624704428524235367364739642909835869374201563962498518093376906993975367907456830755883507544438233878266621275905505222732612056889082223757427077723439537626165727834491399305128788606757323886901114174796058516829061844486374856862912524736099893353275591623502787166469363352278285057217293443159758500284509321908219870908621822949859208662388012840581167517778923565534745865307701032680772713830764085195792999115730450064297076403972933531589047009708012502536119402473863232275415679240589550977267990466080282888659448285737484836704176796306299148398897075497343223719145193667792035206049307079004986953556462575549232293522086569801917429174890753538195278401720174174157897000663468402525591958579464545797853903857351052852463782825775500951478567907010683588105973115699807558910793243724394646604125028257247039315756175443558444341603585041517452683263137336707041837599744096393163104992163861113923357177462359638381244886430424014584161873385995960557414766403868711424151419171078454882211483296506124393237908562778751012913463284223134942967287467326526067794119526861015153940638882011779897031387919225744273300435934676583063311095579959561720351302329352006837286542455923177927607707647547314648082431939651598001707967575053488744667190154562171885143040310118161483362643553617248846761773914427258674901487803976289163424809289586553197857134755892903860718752603134352671696327000356549207891196802682678805242841404501927246379920992486484490443716529305328106850766003045089584760680544859977656558011008991196077076754059449208434758531925063754907575522088690191154557846392313319199566258861317807202438301610562916850126971952842483970668456148495699125432045020997421501357122220095494007043401173911390464258436619795683248576727169272558375738574473884031027202609679111324744274975138771399335567912769307764860421298065930704099057526364001536884674242070609255173127917586110862813889635268017928949876430784037810489238127061847374138514668981627510144754332150399593655169126562980106632899871240409650100914322057694968752966351997266397446350896808613154232731543458209090277266886171939473219199230655032973860889647886091235946410492232990347726445760673562355447814370781172443775773794680493017772408910616654433409966206513548821152180447650808103247334451475091480561961999801715243358210839634068504417313453421045990290367346528834644117034367194815409284087121078774604456950916244804820411425337375136943978980391190649985467163652015790664107377222813037586547346282790082714738686571329379973250653692758202287162633089080715651853911264158306527280502672198674307711620056457734658140705124993971291463499623193083219736834702289284350838048503964993793507331304427761379475956481783223355075439762965847942694021527293240616774866077066906159152965785007458301391150823160170082068054480305991706127329616755139847031432659224664251448240182256899815353151939218762861789822074102465214423853205132831555227332242874278028501187514327554469262318000622281310021854867773724555121179804000414226537068618974454090048595957821056870077871747733058201804591524359445423186976644134029204173400380191896563701137142600262596719759417065502612257990453261502960325471669424819576064214728745458403919133102842019549679045480196154466390357640654956052357453365430492891097526996799328662009510389411272725713692850827393545564064531686531245868882048487499191013469533185758290898425496252257439506814657308059170059515341277628005296205642065526280957632591475921184200184442275804947592004726108596753422363193731164257772649991671911929867413795639666307773251948519188814056833478744010861086351711403540600723507631962670509471582982646752971258240862929264960060381808188591347867275986407899353156810024248866616686668114661913143460343733922778336393040092010891668844210798890109323376643218995307441118011449622014450263913429927704869421651040283149155022382413240366639407248603976628065893680642928422853120393634825590083041559880536265866143820789100458322150617521521528721317543895036603477395179084825638611697662480795989987336109615283490410928576707862857205561310408176927644021256191614628083705206397778765538047842637744914596299241383776127087848576378538994384245843297450611749989535051021537008670032460779017884391851682031573691428888844563012455612846782691215191464675835016992281075038212009287854433536738981960067815908703563723997997656505196197506884918346469602594999471576068071541396335817990306172121675093823393346534590895197911442039980309150779539658031715986660819691120700875705385813596879606707007882985235597569340938444757845855376269943195394016068215647753724862195129728895890964728039762705175116095882599473345024469455374490585578992843841235824014196119292485417341618519268577471235771762887210600629952972352286694754335000730273263751452135229363548083511238279444762750296774268630150064208590857458482709510851503905177198322607220908177590561888117135221879932098657552032481972387026154608754962708735038068862584162709726641646928522092560563280639784168615558517324264663099826940142298368624602981483606534828747386893669067739772743086017204546487323660208403248568906091811100710365663861192256134802162400097386100505861700442521122176646011987637018522352152274223830621854501326860893026286348802463896289691631498592924164782099489810234956695817320472506365449357876132688411488432877474235909313864399638043027810608822864951102943459090598044911908003390567789887615259795315645950033413225034095070943039268527041224481306017277667708727439872237423499892882523976395729700607938438283691623302470647553232721514210295801924917633273078428437263961891084161264183278427257659957265346780228460177435193951842688806840603673724791501384258723304032306102387642058762218464072739270536651904876449772457956996265290003067950437718016744733677432394067506796086274693808684552177693976681106400445477478705352204774250790606613443123189280974587766531451333782102440707043979210296226757543800140859481799949481042082635253075245713100196331087968548366277281855223972337590918821745372923617409599708625631626291450314394705832946180787418130933924487107214207844334256226493034218843489709361679822368894886239963331423598854036632285664707924772454539882384480105939674461353125771676851779074027807840881579401350233612280790277033724627334448877643447576649038393046665371477601166370569142382201530863746821313740913775845484385561940656507159014176947141280415074896526813958877481060924987367220108064674259048110000737118493972722627177925071576048273516779282302483870241926994162428355556565103026351931700902601606158390403369755413022241922033644329665988382185396102844861924609981969794291739025829657939382274120764772822009980130051885324725166028299371170242962519896422173431568136563412850051410434795640610796803425872339705291773749980348498323771475228333306146564030138907776193455278865524472729685966553814141021133605962528729950827154676142928454480858116790203098137751422480903837725050954966171012453520422306785836842686629607413138068720722924361325283318270410460148004096576178627638601930296777490208597295299781848611501114696912337551248113015326524748357221959183326363805630650824055432139549103256271228506957435182388789617955521053055889412040372388746642450544560824290098464885245751773778540062710723795332234503084589613924317438430770703522993424282340483269271599423416908148548618699936981458149639547027838437875418931209481499929196806133056865537074486912029004517970999781619923394272305431206518410278409267440520372131961173454457548033025691204491183036068443713459349274495971067601992946633352641920740201060055485525331361386483386703922209101782074773758718641857608117751147858906590486581261046179532989926926591165185460901514561093321200156986226828623340771513580892316068287389832316016270987741320565365882302328257548077265385218937439299731789966160881836337047925943885493201344584477709160345377498158624916924712461472654313998412237586685113926966349912487993647858909792235723491494207334618462862962216301329457463831951549807024355670095317996152654040077486053318817470868976528267305190143933007343802891832296362137222025900905889124222797407792883222443698886458849541058794872844600549570832551541570899211611034686074681812251247087737527439363997280416361147983410199943402129672137022689844637743053018368955584610443676067904297381133237729282625562600369894930643419425069432124817983965417294171436818769695976158194672894755472945159596007714050650720781036506559935816165549136886529226886097446526062011512578814841678472690954916954805360560726177764961435500160306413371105804309771242308080002788715781452690295185471743007077450766528695875210720371312795902848115691693095287609130665901670648491060678779116768196778038255696454905132700124635397235732945570203122670083895916171832114531258425276224204964318450594165674326875739492611220671352267458579553550496393308989283727392404023255428840587344412271890426765627660105752559656827918008587215997635409915459485971094531791457206014737237747224211296656902572560653461286233181347451430032334867435402508985708237425437231383397322629550527608163807130373669852191246533763199523360255173017900734259126615376495216361546904230318895345550917588258325338489522819997269620194692675919954528938804295603093453933762337576293797296587843587423243278990381797553004920870031405491560068346556902749482156977669236548322942783588093381226779921514329968135079260688769895507672846202112078838008810238437818064950213640940389511275303739520768413853437446478548629538022371743674268015999253072753845251413975390557043831927088261121596042518091170849302532552867438656131554319745889052371883568246727085686618059864832616306760282472059323581262529366584949620965843485889496490083175645420901113851722529794723846050134847923007346653892639511600850018763728440119197286771589106494982554845863072032287510006402890414719031583828657063227787687170872648613439919978186218095209883125662520479058499994627267349283303854274703450728768378931487528097028920947513691023236390614464625064037825299673154839376464779037080990910503663278169362357904592946503291197673344996169724858643585242273157365734155793142329086102380480816216053190611290786235090749876665867166438554338631554477585015664324171736278367539381556482646762931460891890825921259903142431953517798352418862148214973817759920339195155582424234260492578036275251906987361419067480125949494337892520044171883906259211544112344938939314256241061851382548675784788751397757218571286070981734975297974048372721454552864359738650880474610450439609916814121962536850338888858365027293241890318626329950158988950126282896109682891182555909800623011809930740750211846440475752603051543623213021488265688794779038735414087757846548833142179745520530588712319193814342864539449406218815935346666020351628730573016721710609821151469142717680681958455363106188701235212508821455342513374173471150856331944254481563149841243541893884650690335610377933968316096467715130272996937756632146801975920020318106568920826917601127138141776495742177852658568789023171929354355030518861375999354134734490970950230259468328551743932497589491417605904364801987318227501251722010756693145918294121285138229584025089508461688505686582121156190694071079586844002261804149453202923316810701854898428134163895564054533185042857058269718868556178512838085593705493227681465151737378972761462292558018855388013314253834937088485408167729308472975711844715514983255791019868903110883236158497478707689988789510818448261608426345852687019830231762351730577023757825059363246166884301913030403265810803581467932437480652145748743372513472419630988507198299545674580684424433286460828138007405692460121049067751695683907388191064101881628746838045830459216386147734250506657779390582805668255118190146335404890730243438197507825924257965350114118715763462915835753690505981651291412564424477517838790559649406598220216528152687186475174809865544318338123656545415183170195643871715517443757877999469796240143443597985012739036669233247825676755007571533289172438503432305999795527389323744225402056187156185188044372903451867207267429464761629215982932322572152035924789257192342780872217485457325635769544406623226293787775408520596377636570487109143470817477006610697981277449237923775431292030646979689927734804906663199276336722283432252832315413026283794413725616121753751308442352404104125835187760076115234005981022545102115422324308895197535911431097305270922281782662544303053395484620310961144033687847170763162334727431721783112663700947658960562903104787830878676243017136404783033609162641760127941620851385607150730507208677314910870177647790574592878315029529011388989550115635517902152984522811112631278163914577613104310979407192038932877514554661137214284491475406894050563652225501408836976799028746269541525011755857667932470304585811550711307158685260671843554995154540427794511785829549453968621628212034155271396557646747595349339619338085346686676181239097612407266429781958093450239037205462915796700662348840638801710237243881122465902622446432746216793230290832944985614319069667926587439343228047666828333257592505710682828967982208875244078291360183095144855205615084309957345860973208581859315381466422719042316074474086436454021514764937883912630436188563980065061121547215286246437055929393906812867586668466050725081185153447314347458381679506231799890682967996306604873259673939563318120578120023584035012304348131840100845987913199678733147133239305111971291789045836697974048719227223461800136285494191894154989234731365876144105415118329756586101477019787286923523127952050845599737228360293340685621937344691193591325361939773749187008500295418260200725160867063087279355982362243259498231304612706399176964101868473571240993931916584195647560182487360391268819067257701931164126706325411961000093293969673941923960762128234518969231492655662432218705256186677273029254693218880474147137717382008487954302035515824798863416005026618989774250080179325396905451781777818102053871923096152193839884366727036952297076068463889556925050973986189188862188076969668552021954910609494364702353720486482697430790417595280672420876625130400010461054503040534179152505496017039224338605662436976195542319010111171113523038623791867197537493153868457863253393671132429779562938590469636198676449271815822160150783997497639081763218666454098757620518871896154900155270138005611155339434508610329487590985661552213166114285957759620895213595777577031204303116135534058033493414995890359783967837024645145994443829055592183550056857435240937401612751674990801467653651172461150605135993456583997124764976876736672465943063302443158740287253334949774980157569508848517916288303845870689859043687566699609335030862413444098314440045742134562956811443305251501998208865194473256734414562229702960356509379072902477827767880780052346284827068076659034927342862057479257701777393117592656149740570116457632808783110058031170428009030596826361455519750273034234271784824591273532553379694882186220977202795919200465454110632903951179708524878448395314170569411800888386818958119798881415564113418642546372255399189534482486257183223385760984421909107338425753520901219980926588724591488052103262293696842031390961475578631668694787555267295249512400031587502616673127777903850295642296141378077000669533230770009244126686421806504880046610763169464173034923269520140423492978336526366458824706197270083657027468119369575121324871582951275867100045086252046637494115454274767674719133048241274347944365366170363421987312256137547625271498977717127500576874628407824769060723401947390069513247747615822196389868125095282032555209597296581262656126500024321722872042594669897178076941543455247785595696748030718240692922761865185785984910983992254543371932752628043377172137982233488665271359285548241068645092553303430147102661105650198477289031197397375739165294210272820864798512043575767252080297024152093814607215130895509947364543687067742134768399369208328487221103710638171872016498266165083869232812383437874562209661291988071960097407022410200925538605096634589004250991652014114678785717498852398623295158861216398333260989513678642235152305443475678528473128892941833301653866148818677442011857577501341439532959912168149527759816677389332954744250783479150387159193713592118362684583408343882708040957209310331609063795379658664524032648883656393155070193066404297165942724641822413195594612055626152228635193028215112926365621955320552892554704881103654564577834882006289936299717509539470753073502454819198283371201447102777666295552245963287702914628662549212198362421905525007670334464044723315057829058565875016673777513718570737662435227128908089291568687736121224446261221806129540642038191012448290680268284497155175311939456415495410144244096808503690862062294634888407580065289067682333548253490175640305936911627049098062082372428833494483988791067276972447545896328142543669700871727501009040026183033979028765412738430991375464822835910858466264367767813105823689205984258824022604096176967678190701886203616349822301720837876690369795802984245352894139531511872387719511874603181119875898551993518434154720586888706319035288258479914062126199921497850225706054161177297193531224691389493148516275996105447359579243187069247410901479432747404374712452552659175123183153902233949500940243598907955432155865175237434351595996897918522550885643606333849348821335464534816887452700141560881423804960224710799430515791428070871480473382037639943787300235891985283993472735392537131891419853407910198461083826842568131450025586110594385290067307876863737133241532573468136934482265163807379377302663536652394970109313446112393371613932878856405687003483397797855036133976815125181188646164372125526963624786349394760246749254433664355652423702997217307377247069929204141880122351909758888782950271443521715169844925000067965964088168308147849202915598311451871627990818357059589796203139348618610038169769075684435755568415850697131290095416984067681364558363920627535813918562866871479932356798288576411106817272611808120152811610551703170877598892787476306642712492374780947050831956327874576356339872639486295711341498665305651154781824188640393265549191364950080334756896965194156801161043306682662844392374563423884809514460369984115531158187537848587711813407500865632661749083495838274497674123088496632699491293834797784913522635837104130182100817686695584604605691599873790254529098445701109172794653831583932443565920515712687827927230825466579688323637651558934391174832788469299131329528593530370771662642195277219347709882333020372609108220901962610522657202165795118365938585821738438282285990851650907448229208300478735407341402997908062765272913982480150251966899929193778761696436275837367024196739007910128343243614708195771673025481649100284806930606008661134340248428929183021431768715907670208682991740003004808939622769875334728899902505777032116088514548888130286739845961563237950705532526788244132005489236985806903770416247968554263032992826690439206488576825261334292582941121294234182839537717716393994740874331591866353010351585114637203113714219279344915979671769082419753196454239223018376610298488756441736212042692416622261830418614768345193024899671283150810060486168199853750148384656518287805309960360340393063022905880453710451280834397919849216559367235223973535497065190355787409363288165884085511994652542536397802231512063490114622811884034601498639006791368170704311734957217440218000411989425235612520765009259659036952859378272616246692975304666636112784010041603295095715945454054031760355517960392682734720904923218579228048761319448856390855310128240125010747565657443020211009533440480304610566518087679247274473111417441821779410755945163611328988329018562882478675265473686002540553764807352203362778308178416198523080859383394488018015800734019960334423830970866143792140607247878949518037117327824162201049203217898379832108335003050113756172636687943533445636079114484683525500979131194816218547296934976587636072077144698609101571032622477747042802258641338084996635951965379864708228394983448116509196790188239202307480940260201524380000601814153597710102590827623120130080452254701763528403737158760728707657768411348656626755086731627584054181872921552139064422248543668450985150173509077030683484914775369222341478319060885578807145464110740885965565994947767444657719631166664771571559789341095991675610094042989257277265923029434182328651149298350797679925292472991319625690079931715114821084084166352458517777413165011829489557572371533765970684846298041369664156582162452103165176314609310630228943024703432464557721258211254126330127511955711379540991752043344246054855331281282332271615883907779526658106506478400574392027155994356608772786166355470159206771830198080018223875964167928751979678669708735458986387978714667241932131978995310139257975795830952138801320108299865421184611039974777884356885622225963692312273961772711514460083744653401066066847172532367658424682495884930260553195369694629316400021504624615646574748463986608096186584119105734901640719194374338838515430011800254174484608365159382282515508408357597121822702294224048440353944152701292019044401866082648336446723541200078692352674298457864341954655828087542477043703717723366454328274021321896216234370915332882251800852561740709101972534583810212802410974347681030208644265655044990213394971390952394168508344941082700419721749672058208891593703900702079214818147611058880494316790747675865293579095734391606804535526167182399584273713549502470592341644974169673066320900070445756483642454295900420818053887509931006221545018293269621954762023049278168356965365450418886741148926818675251729090024762559880563809365762634520836118207909341014410153850866413422332358485958716367678752146302061853197049204330185509596062308055374420028520880463990769692894005486845314027921699182788746984467419895957949192004263660271706743071751399596947999033710271825076297759291528741383657962721248722778331075539952206348052000239522323229969368723137058374288092714169115600361095640656761816177511985908537206051851398152752971789013112855118236984028032010509863911530175152608079452707813422020709799492249597352110297063248061917617312148642294191605858926279762008500689483980611680941049088236693943155673937815440277155256710552080370275684056967520387648012025252849351642406183315052486997334135602997528400855556748227084124892052636605833153061479459063973544127594734589461788662954913134795201342403327203362775681814701189537383635898241112028707787730492563230395245928143782062351841047527216941478705375752395906715428808419494736791928945218434573892370015324086047536482204656783905448507726446872540885491657220480474432109706291079473201893383953174196082911558743173754165395753070945215713022956980494667802338201303991226111729605668247950866893332000354459950882438520457465557140731934566562015053226524478638853462851696826583689260853464339681056744531997557248480263324812439827801029779759716168345591486051760013132144822751431005330223247274103924048146576718201523299862333882151051537310961425797031566553039970491552159505868284802454281245703618311939951770874710964461991068180639193840732138399554864417010541224583306311330197925702420532676420050398001364138394483071472435927514970552998374648754674075521543104800120254083432196890844663351878298226547986153304179083197221894161552218973256698446439163811977435153795958985845160834841821224218330991246693116222086302513004522639732912431590951393270107758825161970808747307192555191586299740694829301644291680017968492009257076530156047153929852171776480500238180593673826691428137624858705330496369132038833699015260063721984814487447149872405169060944517171496366599787203285236712446755998214142890163296572528343604889864878899402621396501950303636250167467065299079209000791201632387463963319122792601295456274536133793440981288726754766813483504900228909237310207763814388107792345177949524569969823099497241264009118241941990253647976763516803430500983100495124228692146689304336246066219615701893996623690538479802257368301842436494282891745349854269646301452485237158230390974157827984143294603367223174448336492488723174179846066372645266812477633074813505044440818725197653416638952249734815488400049955500215076156720218830625816404777830150518791580852164256160360595795166465218805771051485722216025537470085315924393930813125124068440498730268787954133021676642080131585469858165218114662487456370036857882214170207515848481867861534809837835199699903585143902845679938454301558851920059889313176724864346188343444258423496698352216705285066055352669742278027192654550207745895481435020101487446438950914190505018258342031608203075521619781618170912654748892520766916578682837523022777561875852012657756399729810909483413453328262276301632762507423185075791525878482732315854508436552984183209484566103641102583060004930584111945682622859802387124125001386957946003265701016132980103556965448574532551152234301513941064240542063151634808005517090235877158513493728901905470744607111961516320304030602806347157242334152385009548817433159933992555583840298487494912923192487085904022466582033093827363780314330742498148419853302157127169772686792067397773037609723761000295247886251066107436156712497925359267360110890168965488479329767686115352140556434320084495055091505350565327134582015663530928808482454473686155214733231294426875054543331934982334430901990112172062691651407324722311308616074425036549722192767766484955818881010698578080029671512271522429020269398893810969730589153274587804120540932253642360550503674065358881015640399263556268563848851600831087437178291066828059879117973305674223952259069120180575979436753601687633309805576701598637762078516961781336331032389944473008296958820165003427554293205486810783189691477681460692970887750645455607057251976624273415601152609500177537370069907896703045589037007684891210765715044904879439719356274189736456466763513290901521053078998601399422672371317775988018802567325511531762259138379529520195370535443173410386116191281668002624183052322474124501871877982587026285244043485376934741586132501637236757716054024945786583523113818945458172424089026868269526304312256720728182347363941637822862454828866929001548376496610965802731866518477378559177330106005989510049552223166548725678089568812795279423986803139175007050082139983614902734502947099634904033362111677537285259183933132335526246039989730698738682287251758132272632641551627696083410428330000647099420642457737364655085216241381795211201663983856259712772129277481908412171095093970579023814837853710631708687448161053924702524607617367039809931904670298821775624146111686261146901359074673263782860115410568638561844463689957220492279179534346574939898287140239008464404651450339279921193951420653812286133553206955306659838560080678223605240782505604355520484205801735436987002535692126155677316463161897176333344891120935556560475417036942864089863034283247121951175086349029426326724844945074717927003567111607261735314109445634986024251561786301699665367151678039408513578554118256647733734873045772478995899276862760159936121040839139353394925182372856120829116408513225915714004980346255383621057049113386077332153571400227274307688948480223301004725976765050724752478640844151541703760038411998994655422526958516051495576600639296002742045297409382860855027405819010979492957233636517055721214295087087371368562071295346907699464458079921128394775352432859194002122347681021442682698078971895323212312679216714127045858346098010831570642976290803211072315535083955737607292344722482840085815316398501210170558460002800537060627238721167396073538262496080618911594400565924360313062245797881331821898822193532307275367617024084504174611778511863308638271278047185344022439022061489902109267601867798775509556388138191135589989737900773343362393028892548802969971091686586057451019793354974913423857555180806996756591573979635604582634283602293958975505372387383713446241003023708014150102955918802046938815521110522386302436692650736029407712736598959046881888960172512618359523262731179520152263231518740951812214118019790948399882659747502189259164075974279261425113500204851773176445428466791760885481714735527888646883145616087575969668701827923570687712270830372273014044574001237473644448461583440796326903223307570395128740641618247722330210937586599157133899314048387105405201627042300494915366814321201193577870210110523443753051772099335995620850602076699516861092560133856488901605854277008982465608423810168005212493248801203669263881427534509260352450105341099567695615797867535446104220499945733269007740280715308580681334877407855138117199487304928923536855865076993628619650904672249290438899100215333788381304138155457952998995591623644673808016671095991640572706461325842673983399980005299519779116734763210600151513415951459635584851485751604252090079327628061843845816415677182864673308294377148926095704318838967375262289797370376234834928107070616937216701616258267621496127817029642658280163455841243047157044185187322431870076233330346990534546484476140527276623051440250470413560590039470970524854490277326857574603249002475887559552570197111370340351990739279348435649171530561040983664622518984557633976983891564041183805621800335253318181452255595011036815942333320565137236707369808905778953668771630718679944921440720437169444206276803189154812086237583168017382383904315721277451666714812138736743629469374881879531349392326342568958036671873452351247051629243873511131452773120180759249639576540999110095570471614180631372424457159912178193737869045828616726305712846956586070754145484474056446113561274771001814974667247944352275744998914613583606761327347982315034365251399700952069105908495408568683761987033017111627103558997578255209828697894570603411519573936722473967716043940427023279921905164490452208523644852285926559994906485190800646530451299028639497499178630537470457796563659817579206237526462091949291403996396888562917774532484393016998908976541885938734913541004345562911525699077949757225191463772095461612660222922956265743488837965348157192170871981062481747708823740169844536225307367450938463122888484344629272491794830004688570796602234009617952706567395705079841115251671232609161304190779135652838471531801683394142221055520417631841152040389641809035223775904402378403437410479376016618666094321731387625023635145923809324145436959925390175754147919247245303093551057768402244346953150156487295054723009099209279990087749675448528254707206580851566957591931592839523254019655453865599785474839995151056733734708184846464366111186939995686401376810606973390812942376330730391640700474559098698795398138839911463090580999861103451877187132393240927489395885051347107043009535074043126373056949713526342242978529096586314211141960403639894263734795075916466545912666551205802590762873959229141763323351829623016915936930439982656219594340251496724368280405447895373776036478050184142656643213714891157779346612466308055148656965838387470550329145188393978183820190944255160763317527840023151413659068086693750149450962573245603646441852295452299681659076656404607053262640278034865710984128407425754513715291055904076982090487069504732460903810472107841478439448061962158587384870707668266047206746483093157301191997404640060448202461738278461276079900000454425689109848559290599717776832975291765588773181258312618513843140523290608705126184557466015238946882158657860553288825682987691061329053058145595375445629523438530123629518995180808566703339712199337565529017894098678038702961714398834746147436957450942733990507154894061717225002779976213907451923896299619238354881024844567304003338275729583091730706236562421601659206378320953829663368727067969696876055498674308741579119246470005087671992131301078025263862940804440066939421475916581410603578354814645716608357666076839305268605226633841331401281727000637288582674107997165751893927389658891221878327090361429510624927703545069405956119730171753298135051413721267579692606225500024863783983878803000760362315208544653511949445318938668370059260993495720934550586323386657274979008276988684731501534521613366392193123948369967147794239596921441062333774464332718099444484741189004659503929320036260324172255299102102509827966697956819371290844467541121724812187651390019842373646269195505883056410457806644651186378441563156668966899398916277014388397754593237851133812506235816430438558825513228102779493500760610081925197605965493129627034368091314616198032270116860529533983956088881350295169958389053090968002239668424463449553373742809257304947175527480578987621858430501511279425804319730007420465004184168049331335943906619151991357969163842933937134865618587768571561255151826035959840502175388298559011015022382716876650652965594223725541501604002969520107788479755255618345345410456241412943405355727027238199666961786058850178879174894883154500070721003002316847078637140764393478361680808389267060130646906336797970533871309657593364505063336845637576304894414140228125604461146214518926986173440955335995489235097397468019856096962868311246486839092949727787944880757333820891718250587993200782909258699390567865991818334635510381789899236330451227767444096313947920124998288825817344290822976176524225011019428239823751562618300502342936108606546716502688831756865885383617204178795911578781576423299631570615934382268978544454695644672378521054142270861866776007770217557254558071579923639684647513745417222210575899487258430699424196556238872144275786559546367458814932144720111392269528038102677280822052462239445010291019559951852355921828531045041231930696095371533390444060853862479678617937337491122474541380119044750750591601836606743727162755611383132650454446945686309146582083534295134631871534959549700910932543874495185082745278753293295022211298314329849277023588908447744184489233759519030004104912753850043917170585796648952631106901556044841217045574332862618901547202192144029471917607664501267134943132322386167049293194617977963768993759665770158788283817897767519769664392500482610986103759584239086918585240793388681237831750231209371701693605215568775824066519480297321746826851908812698725190603369464436759663746832659539017205312680967844860248528898455361381801439896539298675615989431293375200953700031764710152268587164038054854881579969087826419800645234604313538039240000448360202305452683108558910019362582575756494678592384805272765905328861477657659498406843159258231113683764767423052965927887747545005619473148076555781808274373462934687667878766239670162856116031588689734911396581203056623891604974387760407898586483638852668099940842421258582162738751831618361976628039595520142389779493180640490386730253482331534494928833352996535380970334831598899469071498923867021508005355020955531813572678847676081329274974514311302459896331121597844979252935706477333815849355780239362912386827518403701234298452425756771069275315039724072703514688784162901415565431616834418224920770571359631578875286986373080790720011293846965297232291787467378560100207045913954838950116996149566525312783625450892722721454903471018264072442593686599760513333235401434589419593228215855074844784063327724309308770936806225960430342653077161304448367097486127047299924839339148813453257693600432603595783982651181897406610939578908576379633009986254536084968891813387973355403745770256704469966101734677132270195587830782385095973413146384963733841198980703425162323715838609656137098558911506903822171704424023505872550008300045874689253987282893253802527859966725670065597549600226980167144142578240295274106538555988369227107727748787825811784167131768732484182203318622805027678187984201807705662827350927146840677081882885954639705187694124135635982893420786472338118925308214025871978303713383868068173652955816860278610246607520172448019896391173774767542960446948271212286718429851676970724143654379348310605245720601646077112376066716707532532999100480501170731457503520593100656245062871503166162001611174595142520702971920001373235953869983402535431698157035359704015084269180796159245267214637128358961779193169730295258564966394942457600802158860841139955098219255223369208016161224801452772881994510021953814169943958074090526037404737596047963898537086168410838078120945452070867412821205674978992516431770317776800774686678739624246808828475837575327279087392327053673941473146967548436892153788427615513570013684312146965217416758998540247958724037355894846920749719284967844150746131644648314289304870695504879836811535198057467547637632083088953266014833474155490510015631539721921343260455397167243763320609868457273269845220125170804134247255848458010749888663084579468874048061508382731232044084624660233714860997713227153932646035320102989916255557275432874493506446084210087491523580944411216573396514930476829284936448731733662997919805731744264699200304057364742393495969433913232553274321908906804873207731291669261663833049210291841033594997201577658766156646536049940479312052911187209730125035414464725780093977547779241736389784082370279456055631556225932909650462573804550188177988298642559745146699858118333419157350509657610990900245305638145755541529878534712861825331690974355013828947337576609436279775662890584153696280448878065710645367903885258573490258121410953704288086333571593088026127211879843501934179977099534073267860648911251304659796741706789081653159854879822557418350674994613898875443387591236590150943681275644523150576309969925401101492054876150055366091169291519521821225325533887338131248970936677832557185218342681376556790840500955725187194996887452007735844653996832347305133733756953086829654264901480530588295440139032784863796515997992533611539363100100577200254286198771161840915455984979137610898135771871029205382512943006848705240993272724922748097732420197505518285664371496939213017494222882282657936974100563840440856531539475993387755499951943395624962028535307754563110403717563349519796135461775139530057795178430716489168688362039677222375268339879345562573699196403901172484229793909724135980558142004838362143427866279558859734128764886311491394649558855569040287537926941934863211182075125701212033123248656189173777820854007063033227830644351269602725928585150731085432418776985350072039911411631424622579266826647723530207144521501358493723205577303402872549892607340232206536855594989058507896300420759634027144757667945404082361339603914257949119545898784817117598289994465450523173587793452900394509001736601767175260303369924091666230036989622689811910995019326734764522419965553366863874548723984824810001347439802301901114852604576964290715010411334511012856180836553604215595853012056205539044931069640823317255694828692052879523246768210175175003025241574864470318658338733066672806044756270805291259150239125908438378684872143361104888483464527335717461079853947880981366264503291647069736266745300801996304774941960542706698088406525488594579952554291210918398825780769585829590449373211241718200601159028731689704793377884816208634863838850470684465276112036760246340814139689731336137234365694895662634896129039493242924641793768776151771064339399158551615437139560306796123841751373597971913116913686722983215817614430169372863464794652068521137434596126932304922434081134752779125823631960904321690455255401949404720391267700803421630733608142833313038142459938543932499097652824911184711261425223356618399670187753743415176003803399302786968775507279360492124800969663251088337076496415845069443587951727999243469801764620618317468661877796027407483554764499380934514323483755787487185818497669721638541000401768376768497497867898982950873194242066682552133701868646277139190122714227125046522122070489900685460320868180864772269302303258694889482122400909365087275046264811237981221731486109282076126115804607066172497555925600691051701289080835784950558110283237195211597975828175429280482598149015472424467657371361588818197577753199421584954855260115043328570047561103734660846159186085651951206774633985487740883199626958159471441939253324590046910132842359593388138867995680813711687970619349678651556318490684656744583858877117140425986030925168948301487236735145695501191749363065209267930156462694127787683716630071631317471333413313617945961075493089048909464888516551831953254319566719627383067675537382760859510536362335781936044861589820144475203458279069482015242071573642048209446738965431552148288835342124325815953897553383191653940157876431904369329556648724211316816295178179950757996489591674668283380165999088268264865823058961449753816611488665275274950503882831238713884625493324356280165762857918576872534301512090431712540117183306972637901053708433738705873464216326825176282542252597285005967769162653577079129301135710471418347989850830142589290387294213688041707068808475410413867919255575671239739114796082277382792625550694374195005453872631268620691785991211567492722747576314758291160848862138680998528704569254774064285802543033199371980651632098050049329832171838013057171183327906479268338548647803275438055120825035253960664385647262108757330975372639709973715779976876050267806972069978573001368435423849278014610754230632970766868093648207984176053464723105155591748023050451324415038212190043610259661644701099605185674076154839027610390216382159631511902359851990757411783809997332887635644703371655395625840475352484602938281736316797712302459024013027118094303198013141030747568656299502138149478959043664902162026971029576882246704648847032231716531344425812282870822546048588811224018573515416685638180795537598324835263966353492434494412576811549156452048107695529605456669989347447437495647817132126850832285603405627791722243536966650752798818172276513465090924957306021603746886866300000020762852874970394882375997144197240767841517728597082276219379727963002491575591554516208951781058885137884875092511387932428133839116423823261395665888441863428180682120504688394439888731563800567002331477026662819850815120878937864507432173374764455592338666973368352308256466117560033536511362664131345064322489443495715176053405204972010233527397669708434659097343643969258921523520965039797437568135531898152245651161235082729538423986470892628960078485220499144024309821164042242135563179892118598429291548741764475060351829071968998761553826451084972769682292110582557646310876240686936459826727195879806297162576962157201236460528589522361409287188160469105755836432429887290635679818599818231233448695540379418713185720469585456002401099902038092698477986344196048064959973540570317066259161552542538930796235917623736840934714895081083033022171871173897375476052903924280977338546067908055247042066998049370304869231882346129794991401198429787462756642341335002532323212256366090351020492893015861095519441543241006636497454955581230235421548801050823827904425842493938559464445163855251418602169229068396584750026151673529526369144219442610608072456153691809025128334080821216525626924129350249743722090239412199284818378282910742974832182157134654536166665816560824019548386663451788331557305406814060047819362543433203759026066878264091621770235845369953872468573792769241836560480340499300156266780244598025278546074230815143955998339458175582083764066290737259172708416418618233945160492745601200252637229637563402761062082327835237020166239352285056665901979736345168522673559177846835428517683116311163006565395346202171011227642433526638908656668147393503886520671814509042745456980829245384684343535917733748720220998697378354204900332662658488684372874876497399329710857550198944657479987590615677273781394486249987772403887722902555766380869934863153812938533293246747981145757046310660532250886638121074231744076990525321435537703354229741929845895740260447885947383674024932171378540809865981983880764662268913590441030753153202418013374397951348423865580017671283703166298112072436416173424959736800158000771746062299365832111908065889052509342169505769051917019613027791144871435981732506799817196635876491940237684996266836367684043688390809895456656696276006969317208569773473846471294759659342678245208094149087608861702288697355038894037877715923451155595921577139911370453117138019653278649854684700866977980179547727064781637356160435287220837779677775523544585477284941849348741054150515083374661531597349126016146694792149415594816931333504897954823533204959985561075842346082516613197929310944243174936634128240772082153316460881844727793761902741930521340047083069801296090844785325661781284834948685015550836806604460862329760605146544612206248311290346436087361724748051655583271450915843551559705241357028564813177639181221030746807697996114956068618978084630185466465198552237621736126831263803209730488885679848995593011412318402451104602641958611275349823920571349847429525260606175671066435552907177595364532077516524891492390684758713014658125647974886774487556773863827414159920877147477133481975996108916133775577997030719522436673190027680179599323093228420644401706813211447061103312793913773507421439373534774761095187519970502096221311801694599163685292183047032160438734138868386293158589127746904473484227191529905305292331475356641933857447737824693630255091916541596962982465220607495143638232584557030576239977338447834598242940005914142223576829395220897208941173068476066930528491769912990648273970631027913447389577075209228171291604735647991819433391682341629670333194654331511946304470560848049692158881422575323775397655807392619872025711418153108380410415067444432145934702591943586151407969138171551829806511113266891829853752753633378685299225102388142672064963488306026303274909418520319261600042436152794516242857955021771530834835078843841173909577494731748630944332130699066711475716012085864690709255204096493445474720029814435545907829747379949100565973843388782455044675044529607308848233536618122966828708331737124884194332878058343086785553716891018852273751291193666624881825590123814670541422245957449398007722706012839113800792205685965731682188742321640971904937612272803186699353278383867455184613596244805716392672598900545718599853124164009150912939690661912045598228757712731069034323280346541556720766808256654156222067044305293914923608260169902307526735965182597605971121252072877813717564530544374305150766822576475295642177943202662518269735110918836323685713083400114023352779377402683814608401503193094662908128100860989528740363520872889768448516849037664690241501438754646633823745998177955341023242412483198991293583964510979606522939579395528492511429955716790542151950778746709882727452716511513706212920407636115379737670610286236658556001111980403515166593449902050020977042522517553300828265571127641445344117511219614459810664043912675814392967702418335478378784098077575957911742168448196007450333641364115904394733870617292252992619307657197851269822495124597423187306819715452171650573426448720722393809916601941340030799927401760814221068434738960479481045031893677543608496305895887638925751807127428231220151341412330862899559531000701095694848208939410502355562470419451194385932899279597188071144532382032727022100944837098685899397419853412317228940918607255723378188160274281090085542863199805500467036632541100863079259795463787549505159891443760031277633865412452797586223827634357944195036472073635375293685532430517066044958829932732801358555458898217006526139806298606562095717121601728825511437771635089613638259455980399339827244258506127220891718520884012330054950469289783905555495599956163416901436447551045361790262022648884938386261151428787787116433956079880372718128670176546082998792709417036525916388985662090475486240920883007064350779823585053825031772452155226000073931880952778982023012710358141347465352910338565236901328263796876135931140913281201729700575782953492648796423569313296525915209354476018573523124957617013145236779163195797789187087213343055838677938735893225892798168017807974735439101546603568475420703788542575724384109106060617991427630856403805734924415283729101130779913425268645884861328429102901620322458982616402119410261294922091233820664097576681618691910221092205691890545846009914100610237688123885358315545628582052364208372497164519533536480447243552375298693249449732788053049541010202260062142647309153514270131864701391580237727646919640322333070665173160125913391734120102724959072028343186296497674181015754792204813234613113472952585389364300921397202925181352261811701317893930211493459476892097471055594035944729836588999304751880501624321038163939453400198521400975519810745001899036524354860603428548451757759799850690522611364522474375660635770391979460938224578523570341663317360930884221686161838488623302845768193354059732285842872576303781259909299490389360629876299733529353178036907039827174042710536301224782153783981068246213446712573485205961915237697884238034081784131229967933534029546011772022801145887302246756785179584816074487962821421358132417717303227752457133848933937936031583362354194248653009596922239789371113072562180576289984101189487834216003582884180036706071069680354214485511522349765566442953387556222305267515717140645720845355685028086008613099957646164828101877580857684142098115821979654796034868115759999117365254214430828367280145316513405005748628505381883984223087345937244635355656212515273935531741857672620926485571696347828608074495130782474500000298353148504895687660258748723961225216345719413401135560571531229404164944805135451649005523388671340956597219330310276032025338515459744988879959598694446896961544995173126512581635288725468976877339216855748847487599972899423460896026760000127964318981773309015025379996624794140277919886450676453254129502015008727724366467842336828370752569035084676483724621267912748017039599746099109396316044826792410868118303903479082856044432849277297735196229474500259736756893962277941666461976665167077098194746355021707186274275084622546704730343385236081415569273828516088426826869347138005428339288587775484690959158717170926914078191122289209871438139727734580985586051820110651378549070347923944101766307396649819745442297470536359728874990613576828078808080291148432872190178901509499394281670158032294634144818632943454378802342422529093661113942263700672889232161392274988004141973006020176667949444673717263199889348846157416636037429322563248648630423275799347012691174300385415678293195869966218834221454305862127701952725181328768681039607248459754576401771527274972974136597181343306430032858542096661178517811446207091855961742274549424512497931679372788760848172376914192505914612063975759564816319081734427967076242356605875896286169336653685505810294219336698153275861373949255773209279070617977607846013236082626118135959748094374527990604093958221006344502104639985733244259953050355130060472362294044926452662657900640526411171867197309825423775926107090306402881412266487805585249372513474295971513903003276027871379766797526248314881737919521779491617262036943042747244162290228238198926975031268833867956200794731668562843806433713259971715809977824171009254666891273844952673289835497107650394468213250023727230250642342634559777509806420404388394593428990171187310179060691100017049060682655117787720910996983469796832883801485245386629004277992189238843946884791282731840659970325846972835572210788274922939456348774330541152903979919692154666738528408171032444005788221406394404476085352778047100624402304356211384496852744075058029349438217063822913225310183858306922792156889680948070669808266332881730426090039152884446361663058683760294204766363823004411126020681304554301706015421158538323853745213031902826490910785931741467925829843464458804321066237224243416214382167316903344018154444411046934188243737431318246494807363894576096103603111662567269171124441162312189462598104207734530424349876126778654960403307111611342167206927937627316807140484372600939704900308222193485833956240410243424253965802300426915728219834553034979148435700141766705413430045827368774972917747031297109228387931306999688725147527316990191929637359199045334691788449157616036852927273326456777570032970373549812608242033242401939783365858444617503881043961321552846106040814408932718254940466122887636222684661627175668641407624848755632951835886047128380625210507215880191827663499613405755666156173333774411718147196086531260760464970521538027892227750451660908814887771469944781476125566694426737981365356591092764730362562930593559537223794433730896917727050232071989081196771021149590062858109516761645178621907181849913478807927019328625257706083037552154454787701542916260514938200992564852718413242645505009840532305174686803950923476530666828560985962083971419694759681186530190502827204038388270384536788020704208035783899376807887892750628048331506281619617978499754459112155035472850025486310899753270148819647559174938804612121616117876975250905787022372067471422634896673138951683320663528106664978252897262619683376003693114421927666775620081851416588376455019304441710501217965346902102925557635041808315009106613996327025695498302394782833524245924724779213634924871829989503870353010618374005501649007001258119687247121212658295410548347583535805862749423419225764122842457532817882077397677866353808466249414635000301404002896974805021354422271166154591891263814985976481921534752417447260745878320244305283257898591023641009595363401495712796808233223822827752679973019630703108098316301018501734321772231653473094195389457229168700982090188304729473494133179740728638063735539933354803150101146664917361872604142110017224746601148277972707985791909419181261214076644991605183766514411630960070898744606953012235443419271267170878445875228538945123570308770172273031662946304663112032264710064423702500165543189290560883440949375696914019029186302484675833259753688468592719431887825841040780235182453708268695928059835106028483654043399205222721011972428807547275181719835888952446194678852204019487272242947762951214209196618033755352497104305719439782791563579465807658780541781490028208062069629801651216844005918518996810998227369782527820849140793323568603871288312679944832213140290462465259124843185349200405284999853199992920149577167313319110783920462341368994864532752814027732713503222345325004348577741173205762517677408967638486179529801676634412549123217008533721260472836975502022546141925690750058667966782327462306141355317887119326528378801781992988083852105278783389013265997789575665921539053816339963389481043252540545877918839876428476746984200804078291479527884701680174959863731706262538997655827992978418423572768845972185285327702669309367005163286945337369861191152167648341836064379015515196972070369285909135448037801135866683279078124132146677468039503807092523952517061185798133579102216513370977295237666077781558963368140041325729904013478920533528245045269024550071809054100986859324143980470321000526157476503684072728520246861893638174610324298284091045278333328133785627499141893844345176916535635806369010877943430203689895036536841808232843825042206286930699165383845441571346245450325352023456624376381121351938065986486110410388440523698830447723696708597352334327060186402682552314898807924690978922121814667340317941566674264624595370409511714491760533110758352911026848511299209910953917558087549202627160440496851354675286654542566624687896361348630427752756145890126506707098875388156956009305065922979170254519636515105094371117227995785773965540424902768600196634566684206145084382654041829578002093383811557952471274528341388301558277340982987514093398281722728111355468507464560929528225033397335352530222306796569677372088824661085891239202179752131165125281929863949992187168990111013277612897385864021227392550720771001151512530905339544556013758211017522693777869764699595556870116132730343624701633483775389276206381717330739300122255750347391557076578365838892790081040421708662668263408950314538381635696203116621555135706019289710305129725173809712271784928432217406187882574902318846711004819581711394464428448935090840568224245444356162415538942282708518384179551164470124703891447018069053361193291304405983275055999768980783988351112328890668343355217175407348692541559598202718227194984629646462536191654438647538448195321360801828346203975192803895359969053805677187704267693702902187433542672418937853710054394581245012710147772210720503123587726180278363546190002023477828930762072920145980098081793527632686499483944870758123658757893673811290263570867841094377929903566447880170823619809905116250497916338261452655848564080381117552777101011439004900881129776264110743322697872272826311032422819548945938515825449392992691265421045992772819214794506127260560004290544722038585177703487612931343983920805772816413075642370077108862638635551703519654789331660218469278562775370306678702299352302410088992006966986109630821157108678169673318693736198916407249992083681801133975289098857978604112937085871877413274410388271649522029133645307493117090781350843496966857955356960959740671440389556243066641949774889481185600771700105666596274040676196423943403409433731403408335135407036962198389491737555837915984126702221327566692412864701102840806364040837310428471426184128323230826053768653037136301547291378210624864231911567799241317860899243612501494021739247906029322197617891109548378532298249338503306437636759941979282783433862583468738671422989149420590542100612672154056623467584059635340851709160776543703343434114484699433712493086369906011124161240321022739908710331762340847633865297560531715590582910428327458159231527695263476910385137136765788773746575797059072911276335145269415002983710209096071328706279689652348369383779128400088824750797507862957215857643074471982139056161532716495468715687269093444571697681009858381016461923371534244368077133012137779489646988489501409593722852014511527543562452241876058586839281057777156996560522539167235921480376004629746926580766926626149799951586502938346115675252700835250115690401442227254525659617192694475944218420604616833136330453409987536796942448024755499876563528649785231959809295322547615112974015636687761996293774923594325497013495142751253010329915179270537426509838346374559278502724351914394968900349520375724344254496326618760846406203077463730534159570451579850879259786862174544121300823669794701207564405564172091801104774547187009942526413139010925416935175094420720285626801970163328775509889461598116612239159714478295007469975211768088773523272816653036604722436564002244695330608825469508026003450937199734527606699807674987126034054223486856618639777035960857254147595165371709085177898973771906259093379562991598997736657006509574362182610415599235346361787959748116033169244548234262479909776932460468818899248318113293562228251475782103166533295792833833605569441528872095462091777695562200271677526349989970211473549379646409869778454298677556926837745108564938026533139537791514701196980927051129283497024713946934361881386951019473063644415721878292579982117737540729027015890423529531179035685370579323728055880663194997063635427550129921785510371086749051728203206167993209840584524648927200841405454293131404090407756267087866155810774138810893909756687576233511644986369090276739297549403650012063030697405056104988841807793094899099634478516883884565498005208899279433092458295244013314115011754283064179127348675694687926920192713294479444727268239635452957738195234888944528490972451082935135077852720556142437055057455080090792666225451389701303890779098968309065322072329375587457660348594907156436093489546408356268927270004357218104180192771408782077237218000636713562805954408184224085297023897966336590386628468181691036814214744861127480025524296199905961590368225972401244029588584610666358711707032913281175760659322142490227265810814448177409458330157854061700177205699174177689090157337154284173928735988042937654720869338996601557166816775083917105035694261298961083975057675307980480315683933802899411519606728188946557049949431761958911394877686737607780186739095001137848804602148942157261074381294705326699041907635881294860854844113167427937676207424578236022231936168802522841187179942492693190307733256544672022994512959818734232027131369778982650660799518724855290456024916879383998345537844789024434061431224087406576094648802939043656640998288885315850547254644770434569201775864416841293140033464244929194865796670987824641383365038709297196551291977681116374752148220202957795179093131307888573942500376569020484756496821694636562165439361212703163023654628551023694557038865203319425187764996789265451292800624848266782529104563574550301729582770744161222832028431330076510525680480065276040081242146116154754392728660106698182046301598478999222328456462097255277040734596451461333931825099598393738213659671261180132336846854038079847099455036924877498557835017551332515399149114161825018330794068603970340090926860023688937370785253460510659256918271452937813971644484895402047819135596514067466715390911245508805141676813861312630110849266913531514667648857416052793889773558917918245914683917108912264220755872173178296964458686830505032799026316376777770176481605079532916115885933102228910806456695328540513357339083794069419124799951886899516641603674511145925268649312475566978515062681333199047366439943984940689802791435449762478123957414038280472951695860854360859370423027324003035744253856098379380656963926245922924429573421693813484115087110120857937319836420045746410712121018446185353431075370906267338494986993887615536348842338271866830175425052833315823323054568013013579401922363832887464730605274671841540379201130527194751701713182836444812227537099240080548197381066588060557086455352300227950929004993577840964935888764717460953461710480412928342418222670404402062824469258773884305148506461526350470432058591938191636605155334732331908637817372687331299132643159004917322847308523957536029979385428721225487404649832739553829597563338787969422084346928744909385733733937958646197643894827970362308742938157408697153207098241251696659263953599863870843314429966564836551967423706160724919134374983172964674987894388213447671462685584000431931186326429835576294341792081993559421998762108710855119509450157509969192032384680575597265195311194837914682455848810864155726042081844230079271319385135128291766798818830368054261088649306283423109831566524834590611427138097152270025583991922332977670186288698488377690144194749798383856637026075867244723879912090286155948181384245853593758757396783848763633505477536377023589544704359928933364386098986780129632496661944246250497159361951909103959762311246913440566972699494047149875076768334237578513205278163369520084452645233146867270754270880465673798752982297568901637560668644696214003459212973282231014780379588306246948021506841739863442110244970956838863800580654081573571537424463962986961106075898084337477613407290695028788712803506971915949672993009629605866120715877454463218034243787529267261017057995888156720574932378085955209687236164919341962030303152001686330086824105839954456231947951939915020249614082600500177971082413328260446921132697935252445000881096940030620167783551705006170944426334124479613756369785983137758520855001711076837801977901867072437085073160712174372557078128388133743860813961167329567583613892690591676874047774697116986311531163528155241638062555887612866411277178103993193756825441931626720564753949058609156452062295887789143130320726378064153578035511160451861222002847663267641739852178260860504836883247601471909743595873497710406163197611345834673911179942644597420801933784785366653920078517499158174187651370690486781988435406142618244067554234224609419476310595591839510810731973535741888774003275405747050496202337563464106342324450145973226545327121707353575103525765511738627437236670012999302025109228452821434793605922651593185393791056290857250612449423683424454657615615406941397349741436599894356667055099945669202453621679698002475095370748888219583898875726454889962467403074244361874110987057410878553982332598391590958120527976198446234358224366940213009080523404308626841636067545287774600118415497825104812727604721450892023654503942676558285608452677329928740635327650370037138970259954125655966672742454151067842310623546751475247961560047728330521341351441948914239902229168634436859431396873169177868100012081127364176614199584604894951889362209667151291689247124503019940467477140129054761572579653541343770242666649813387116732888008358907888818716468249884760151501733411733093033052596434256850606952990599265771640082339120961461537495154819890399693332097068761381691987929542739869083938939693337902314085971931437787184302417713688164541049290675218657461416824421546292828191757529310538423824277321240301399687929805578835568865238708256466889241361040105103999413294201660254971293540953202001749938890398361331660255108794706287432221997955611072603373554794850359304524219741422465493157259160202178623086358343932260739426741421050459344475230646882501508680239228025161831163493429059237362890075995823538918372727300681225538917613982458124974298887244232432213959924118911875046444290123409841355119403992243282301835520634989175357041125121730403235539588088501581516774076102109240793765344443880379281262912148190722551932280109625865886879151641590760334872014333396395630061094734808957431965034650116048576072780423596475423054809548495855443607545789232660986113603305811052297476491423005827641607605408779845172036637123685366331107180766654902697278120288161668052701329709600784150638567622488112637570308344550305541278100484550370268863716565177816845716742883003523827561852315704370845298252707108285508289657408441826970970749499250990681336163487221629464546948983060343537978997378788336467836141690221550418461795169760265974040635158757469725013292472490712538735806106372180835794670575693986441312721563476103269931345163039226362993375700151684930199262289673966583661889276645152333709531907670453626734635539501554203704506897305048545527018185676154426742837007335360290238449166851717597795576400272446057894260149663664136627364889814938072419728407613891930197901016503259686719715619072830490294800894514102868780238658997040439437477684032847718493661052604709508960786617689289010383139211618805386108581532022260447179824184272203437113789916282335677935045104666721989995677983267852237688571421102991349535559546241733455006467380622653590504634045774582703165474386570221913525183111917187855591730890199930026161960209614826199938081656210546679782468514631319326428099037928968474465393962461032872635958884552715653915775132299324190379431543043073820353634849596901131161545518954030183727277728124554732685305208017514929200844192046278848435827347533444417597898859408923402662819638692922360600621889147997142047982529630566148293495454965320873355017759817746406858892320747007776140281660342202204332148368788988788062041162202367786021346679771426956659953103256663306278119116650427873541119713683162581623219911474435243329731550224814270744797901316062898031621257460464000718422408273004413595681337720461775395007375130688025747385005269120312905601856744954311038379280026779748612325830918292120999354730796008724400629247656161688625496816111834307229716806967683135724113400819104741140497185440219088664572104343149968553941657687046660491665548751426942800810221678607676469017643687853704641159069413331177980923439572759970604882848891801738366481941433703883351551158529227517257976109617204459534844644272799913258858488666138650160359537158631159094544065803782459142718797311635492672929048645817833139445113393335458874574999915224742580751793509791668916176949437637783693112163207356814135146425825044255991440287565856253109793105677573268549665437730782323871325686799695607242637362714029033191462415573519224275792940789295531668254056491672840749759163467097980226182602936278622476865487744917019912676222875977251181411508894827755343200408840845722326297320798982087511373417103988005510313215731247064884980589777375363601203380472303310841289922668119086411766990944630090757565771990393905023247860480859546093546290586294886360524130475626671018307760501315598463079865245331874862385016443450923569011206637422950873816052769909022020830402599919677955707404309636371603202365929525011738893172463201645476855823976238750573410118326707126886447574652477830966344515136381918445901140683436930890699528772592089362058818395867664217540473048601171762618376127762259152537584742158162474421294784345885547992130305173104730866788221139708191967617107912321239554102268333520750195995581551936795181927834815377116347187180818625308206930618674291481939034816568236376961777684855958832109296361668776447723543234523983336697193052490202856591502108976160623613833165883429347745022091714972698408353824906435905385806027446494773979355547905119420234854495574192446112108269096096328432632427497112523289469021856045579943263668005875763142356988104909914401448519537027808626856622830046847257589242249132629485328783337169809421019819706276017828375362802692185500736337004583753314864302791658071584687961104118775213815545714202190765319474408758749912496061563878710242416672750031657547623862418113226175326388114206468656466925475327471277462984310375053386486966852799930922139504399675718110976835063669530695577647559738089202557472821300732906791370718680049842628873387428877866288082025248681995904946129942640112949499953762189868732491798315397686901294568274572561802595306877481432249662919096174344595496491841263913114527209327497021797251614874886269226256449087774806960332986716220114257442916225597256773054724775060101956882440785965415690241918887723648496375061165236588462979528549143562615983996984789637608381181015877864071535409453903257852007033820301914335083631586397331679008991462147500800784129764518298748223483710503339892561429426527577064039449817501883184043697406052284971352827954564275348878449154692117290620174418564423337672447885469348500599423391637659421395341323750944962754107388276977116568329728319259511078706236039147054475035421059438889377427593565788448598158058609010222374201660631258946880888672743066046088350820911127359539141368136574048053623253487847510350216001558106663785620763811380662294251561967630105516875650032951952259987006005306074391195737146353950102891931229480945193467589377501475878250813712474613885487346339281562381363435850363917026853987440122238920820886463847592421955780115645659111440232815105641428054170982951440355634264941822413109298225258427420869042371852509977712242619776914193728132457050228244691071753372082090114678869811999751814894636106970738781272965018737753660728837540859204418996654529724933676675491900710738252431428000473168767346271112137811919450153289766628739265201235899195797537089641271804124090877551945261437028015722330052406424679486713603329133411440911229233800339898875050716303603754713817186366573018407628570988394039104439009152454684098096415110607060519431084164808885501401978954367070157284984320336876103534521485636534635736227614056455925020618725406497934311851386854173690287506210290258717014178276267376479267305137212461847489899975415832238045735524873008183987490990777367057044343840127716123818444561794698271172659948199150086638652853354831572429148927456973997988702772547722636811448442029085762350699993896981828449615184796112244936798425207258355905688667040940421120618545818402354731242107637931860426582100326586948657562488696781224184578292031478277982496131882789049454306140488254023965533254947420648273578758595504358496517246082881645419306194415480155828141835433404145607100956906506316740167745970920177459781424566636858391550993552840155630217623754756430248454872585367789773573152627385746780547744766765584650705070591745712076251909948966600219043779999918400814718472037395078140962561798355230122132310361970494012357252199466341904698312088247225869645869115546519375785142352438519470714241051255496513727271957249403195882421784916205483355021879675806032422117350619261050924706738816237433686133959870563493702835920930446086724417554835066003968295020345821939988808007254489408209800279251170777405778285625610814881457358643595205161356539942853012620896779296249949871547021599562042572511825880350159404347026090507738527397359139956293832879617689216716194297722172350779327250723136378760001549982189191803519156860513132258861086951924270821164483393615929027705283202666882612391305517832137081891264474570848550790987227399806067639411763001291895779277575938938543377477915663907320256186335856721389179030285068057904048005148576645809916037666727150816911298026708088092469611708965794417402581512710132583185622453202845529324669165569616190233675381047736622989008721823691552811874701364028064622322561645374535325750502624787810355837236033308777859217268082121059657811793543405276479153734948356712362401049734651161858046306161778452374937854255569321107946440670088021455159850818495070111390099745812514559774651534559058580024507611634662642356022783895370912072952818935375086230697227897828967520663455185103870737431998497798035677771426005265381789495269357928571612932175247370896159721320176587138083565501164695301457236438252752180982443802367336456572907671852859119352106915742359878440276516098699995034381275874736030858616934716621023228787650411986689797318722169739371436984495380294217873897498978123444293565565947954269785300755495672377756597728960649349489537529533110561529079423495776590338278582669262481567287549016397801024629185006640760159290787260481488379993890197188987227102166460816721710059365126344516167208279291983720510899871483237332774548464401235865293013058771980773055633254987846561593673845590369059519198554530004392299832944195768003271306024361418187419277713497637104135382734502436538405381628103090909564915225400582617426955271109724811734246674594277977140692862952253400181114491826582674882195770460419254488359435012671341430269711408151985583279766697931052543118648247273300372822109945201740227744779725327305085183023121440165094447834188205902717184307580273290233299090965572420042888204363389915559398263823485790606952043349439292745073739365512239333618946393433343293039534636745931851393327007030681798794697928726327704134055489871384676299568081373849541875727679376272938506650218905732528919621945255245608282927830568057002261768978414703442348806095402743103204797499493523199235563384706978595714523032959073109367970530462608094735514734666645139767531389218594874935984497263531492896646801174833879012290850093779442044874144930326169721469623427027309584800915129676404152050396585249592278664175237957146527856513292333582266744840526917080989848308984210974108508439966742507216916535945924215827541847790618809065662969488407061936824346521959826000285601919339478810622967949271115574406676421403880226426122658955699632067128937216586481711472896081846235258538064267946125899582186417195555233585477181662115201217802425279047316738344221323703976612317310736144502278769980619168443280357101156592517305306196578767327457778475102571324001973090818940899891637994089018419783268957677031675097653446554878836442026748906140423022052440890961116818332458770154013777179816857463707222946646880141912998448107808816241843246996039436953545730713803752700093665570163253578348408165386068123097051813680479212626640762003769555878728427466887552669737044182344272974459436210980754790926380329231998308887003157507628922341036738076854764719586978620213740821308043417699905868405993858570878398647789700045513530969856382147957910861841062628779713964193960092833029813475000809263860155038291949046358144717936598648100601187026156650537024757108858602738547851369200143639505298629739841170817098669591167670984756487511881700799084086192859988416378218340261003036810587624166109060454520998691668672116509987371357651900010129637499673681773913342598359670174796330268265099736214489440102517262375586187166872465140013032462097856759361453147682240618225227060556630938631709485452169442082682687739825799985397104021650867027566865206066767488354566155217740203418791128427032061015537599137103527691240776486612034061659737280571736755920659677199507202771262373331460893326189216598812561533706813152473720058264497929888255060834052047678174099161019165602701616456072730240874735860168972418303724093068760125649458150941629394889668103929943045508372454041964850607840364691355459971982643646773483379952127626468476188866651996734350500850195756163092288220155995187446540106821661783287562508781032542487480081285247736330333011489836642716900051676251555473350624245619915723871715524859891346534230213543516943431993563075837917080125112226119044074045827899186419330135852717591624774063628110878465016625380423759551317086027585778910738101721405412233990510868465537472262704669696455000932620783934149426447340045815190323540936259059519462875727710526260124989764060423564715416512920517571048162921196184377511434652668862274337620830958412624356107857213990352914567237181060465916101120201845279451248136202575615440667776513665431353038677311841400435730579524978020163309486416129385624519718291466142336478387814193055428703753599328754783955595363017959376043148269396849328630213453056847073454720674156042149385740853478136183118794153195329837884338003864519905173381770675511764477206912778507729753662660525966235599919615785518616011318981449499028853213640622107462475728547598379547831743934736804484420296274904373664778350754423427607210214283924298401330223958118913817394097052743534454441051282772445231225378524231664737894462862539993835182208407852489612080792904872071408259423880591737164476418541307614476602328052265369820423238911911974934211671985284869509614675426841724374133726215727504882042494377031667793112252764702877595837521879868342990261305713578355167746387074834186039156137105731938853683849158162404304160595253101114587269131140664354257713047004583473552190764487920354828097127957244923631881865142813841481516409399042152938819136072718836785767884672863353184627142787815166055642781178189543979098579571500453657820022328825604985466385061173982513188446268956671215293331305463835803742770006611137562734805752841586649954987439655956449908285903589699981273514607206818115653185961620472842421722708492101128845032435788114825143763717319060837108431288265798227832571215293643515542776399559644322503643539655648547444011944566689647431640304737313327342949017630524139604503568795523324156154141180171364982897010526086053150243074024301568367318631834794115144683057044384507035447598010371419594324045637693139873671966671526113645311462113634957002001737781328527523605831318444126606396957762587486766144556145554577524699761100807364192461766992089505064356772938974331572877525423252231244280080685301073457747718065708963067091722485376395102509313313800412330904910665611463491761471686147728247161358733063649814726353577147357672120721476444036216355341979663888252051468135736478604490561779013385968693767817428731875754041534738980038676755600946373896927070769811057078140616648359851137116675192318799707461625696447617599411865447988500008497711496861552253355914475421484904376452179301403945611773718202491960513215525429293134809162375010161023089446627602127682700452096258347527323537513948925983781430814309505939888549152507258766327682470002167672014904250904321432301431109653102354521758525434743455618377806622467777841502576028007566175984113181395808939657818042059978165870808254438216110796301551742142582506926486932007747533174705834988502467213595937387081817829654646540690006888468137366343768497064429144707160399536320718482450617079623366291314588466575370854221901189406567387394254931624978546234285210968794416058642332016579418234992316091355143383429280579156469433922883577307290154568064067102906601092198518818591714222085420488733773516340609608865491258526848196400147098706713027801131104830708877593379900928032484060607460185027022852902784057568532249949028515280712167508305946557843998136951466463336992982719777602469468333231410148625968996468178976200925788141023130076145518798484654096743833467789985127469087417396261392241798959913847514463926217796737256852381619394405987973242040157154680338545659618915445918238594230091292022597378108557688652085863257779918396968183270348196686852875926705943521874865800730156810803892529089214081473068240388585486058404786042434354678311454061733372794579803217764887190732550599261576624499080725893106674659979803326828386500362887025622798283099972785441984076498169007612898354221259022921355777427693034232635006197479127530095893238098993099488300035279359273975053460908678918279394649910257389242025722820428850872178104088625707842768647469397220496037008997940492098832484209209573302341665106772012458682792051431042483197681577458845955915909908678465176186150957120374186609550043818440456554763184444081417084266915148115719343622942004959207096795694098719917730082589504489605151929478241140882112765799629883702016237616708058573667125289875441843136614494665716004131797235696449574880105935418670189329985982999572620409384046529083913425307870963536379689252386221445366095232088743467699955146120726998548550104470709529888162749542443501545173423977045712315291056218625778704937723727169633042433535175548167578346138567107727804579720399318082247878596229133996760625860587868896991010933167086710435042821355551178154422466202195528557029429793690528425509266099988004885362489508410616984579273156768105768276319796198439215931432003145549728736157445653816308881876906165685272991347132992292019839017689943070616373997294539799530491342265826403850574085453189932463174511560688964249650105752688631300588385223141987769115149454691411579140551993068080791311752272847750153743834149453600892262605237651982492706197386134087585047114074722981416709357707596269104639531743377133015343732176267342766744327325281155577810857359224424456193331086684275858771995544968180709153941588799897812271172469360238932105429989685989654617902391316591086245283290206274697290259562480064333910955191438526127658278419943686499155284434486272900603050711971236808065658164592198788496036815529427708890330315979673809412731759885785551658163758930724569386417342287772960633387575545336289792706886970588609249721460661513626789628287972089074284994701530016001198841444907018276453324410556207965072880848142963204841641282864040915157097584443756669641837364652031325082261636654033681167019425998518042698834919320962315986646990465520497570817383864271827884215368601863768183171634516071919994149728803943076514757720754836084609034014671424318217185930386450206301152549701398201136788541488398444483253005700051926204053195287304076461541426489548516668363476569655081094753053372561022373391365443839831161118955419936068081134283243556782673103390449106378100713834126486839746468103686476029955086428033171991244751692732650286930763410940800622661596149040991430321638076496822082076130362496578122056693413697470210083083869464737646979522631558956440752405866029951665625363859556839454038126523545328942130769040115024246712502258170275777068827833580074222457614814222967621038714284150404727127904477650965418680168951961480733760175326781041670564299421300202743411354417424341178295864093040082334500821041515616698179348997992696468897268381228685351936884665158802726242298879519721125251500153642096386448017748268312900703154167154332806814503355165968297686565695399034262113772863613991781958152957257784295948726228971864149876104858050129392277172440614135303839957460428307281491898514358595701160345202266130593988448645788985566469630537844275545155344810929958144892987491689741800292741086449980228323626724269421040570509507547537064352660164335752088809231738286479927814228464460988602515369450406981257470330957536213928642026479536656202192415829132424776361060156549410181460509702337113658342681812342753727501662447632862855078602310025630141281504844208267670497581911094797121970871684564191810137033564747907974458354192031172585392063629694596304587527406908622355865556477078922068718246198148834690767891160345409549416896076011842505777069582665339639501153012460819826280169630690652534562995362299580820697293207970087292457680732898770327922652391620233064902629546893723587134144754319269976349214726513787831762394789507668109350726929461646197733848561662530466174584648156012785590309800664778498069889269705885795116185353188374368488123149239631598465393956315921301503499469511192641295899627830076475837310988621352047257542453260476159812953819971195148920769942724163572813058226648011144790231062231490297106375128047981575005204626499080656279954040812875510119357230777050400174666127109591982967973312670115708271208690206533360904062112431590233108276643619227509064431650637549231869327609589923944610692008975998282930886314156085524288631467051738785630154768434798007951194439269794707954829545377125088811421798999615777393636277784442512973488726996922119296926438347830994718317213027192107989753831323031975514179554524520959043792152466156562319062239252821766654344255662068878736296335385683318632104465512199453811958041762657851809929630782955819491815657401911349906905306121760713295577528069976320290515681773508941427778810413242967932221933783008423332478685807174791361954289908014327039708125066479698806547626088930762765143115670178078891884004995426279327942223790051160518584806932145360207935918351365404808916834515725247608850744303342839730119786410273973146779674337067208428941392816983195265975680100268490699977016140571850875317260930967308322573469526556635614926307136777974129515569056004079569524562239346621063563434937894683229665929120074909845123615313797427475104424439027768059289502110437135590146443743685350553125601318598685941202547996821134746781915343059849573890849640916140136451218558137215316654803733924884061237839062434950630999478009389190279967434771605590484362406471253291218788054649329956023615947164887021146063008640074122053929014625442294705077454018512073367991999587749959781088603006099696493879161400847852749042302027622784122027873814790058745667579715271022329539473072894141036471231662121276335584800020967250000204552200681843224761777235485615103949028351007207473869307298500456029630467455674262155942302984697912617890526291463377009841045244908645140017805582384089585174919053298296813875606734486991863506511033666031340920925268850116107467965906157544708417710906043414389377654707812549434673001147900374469424455507131860897452807442347723128030496476672007626400542602213454464734918793545921954689817966062025852316010014670869769326553769280562743839582876062148238204407608077418909318524055218991610928844019213563238963126302906082578438831851616673676913745034014747744414972572027557799180585893647011268234791326235528452110878392803418948928164795750794365353396235726582078120701347913926539446090175106891114898486622049305447774146829200048941420058642044227604926086909940695878482627590081320776650886620432740511137096956174387654397866467515100156401842308059438815999023246944916000357671273744698626935065904037574900695123792009535914591993259472348532544340567331101507614580978188697321593913953126173875152883783932148308704380207130966973119241041589759254448749468542139289395525023207663896454177540521429610276591798580317490227108574522416863153990518204393345233883632224706863938899320650747408538603476245499828894022052792889849082368220123009770681073609026708370720114034420694457909233269581144002244562195985844726420809984527726383522020051346874956507613885505785000225216492092308426277155273247061409076537246991300553976257494983471598806038108370516747983435731066969923898558345139989550222506678333598016183211586444084925357653763520319177475869328632288741604456103502324523100675649391996038607185229056354565279699634923034945349787464407401494402833102154291211079262873585461880890722800936214659439300823949142166866284508009347928875089916460394771747878949138104018682307191166973196366779253203136991785063546566742476224130005362169450030591065919504575916392103324399814824018545346482859853773186639849152195176715746891000819564611355171736736506504073850790198451786497808764342835179383204913335475983624658156827019598101925674527505834954414604466954641878848902622888942585839919034555022331043928657684641728489771199853332760848700610653086118332196196281130689807457360786510107275359570738265244352969336860667472609864016520887198430751485504755170040309071677164530642570151465935052065935424999397176540884092703206328198136906827495104021301084370657880253969240899862709660847314393158778419216082975856074542440165232436198894475941996624473540675655615073318847699989714030492718337203452034492410484678632613325608682655400561357249665533534953576861389701269431731814972896973075765240104564492014762053877355828029881036981624296144135793149951104163763924041780118214494762015721351613651186465912970346673936570982838083282271412471971571277205568376243421423978154014389083906571941279605662349700257637319541290205988433293722261525719870227969305057509960925729989607102226902217214026363915833523300248206322042528887237111234567705339223922830886500728130584105371664725434289054973426990896810535306529005952438550733211852586085453299512473762939871224030575708190752794890749249541848484164603510958797070783194019824535615649672734523826285968007342829267811358481236207764439738492552120546279171432861266779758376099762437084974805387674424428627322127818734731173324573106647814539198953278958933637545458076253746628953300581829413943828022609653786233110412324523942985290255703932283522758929344072466448777813424869800943637164933930331871283932347329547057265947547486693644940766293964293357386029995543316350136508461079304585682111541442155828771948075605334677390576675275960764230720423106028424146818732870806814217881848711315727602859624498783989711010218019635718227075813763721150257157942698969969543030315673501192160087008048362118186011392821704741731144741536840126426460130182196189533014257634285854432706947612324037021599714288158989733623060142988924511988280377235623654247385868318153720469211882114449639357209576384931514407376364945975257284766793219643518997777190685450299190094585545422528108056546088470402001336738312542041726523015987948528202422521510123318918627216786103604432842886289347935849706752370592799105316707022264489334842192007547850785148799690597413070826609651718296344145083670075622774715648366862116909535792733810932309037801523178209730248945485071258527206436491918275864642319782484616049196834936087253434715273526434536567473605364916960551831070630757733053972660825452883623798649439581753448985335012728026941959696395438539218523175969659739551407023163243124979171855710005529218736979885800902708684157818056088654102341764398539905598599601829108280750328994366365584699627779844538655875883123412612739121367574156445116279829595922382264265673673637572328865080113331766830855759427607672754917534793593598701585391416319132443122756548608805402545700291739395630192154002339681763845346312137446527722240370711681978545588020250166665271034407881908911644232514313896865217900313973259358146300065681063017863464457046864293496481125991672967013896042456226366603073542863593291097186607506364105484516935295012294178701398149999078643352025736116147967754451038531266178803062504721206382974721509926266361687264679898383816311857465405955089428989072366683599194149326541733108746090085858581633958404324229958221921013047151476583635182552951578026306035346091784534673579938212052611875057432211016306613273539235103574931641129892904203959703409734745987959235482924205982295115962996843868848399535478751076587567275371982931357830912180634085865019771653623193566754084996557765363971095766913770473583558941563374939776618567067365353157065427944606248457589038371021094560644244106574304573994223259263673439475453156902110059098715304146310329823812031435714945770475467188301875325858132472293015315034749225023425223951825646052352321504249284068976814344365313778440227764483165186671165060298525661271594673694631264439277562108875070037849247230048296683612499042830447264183929593706319482527187070212027956844607349169176831915047678841118137735023085437753263862547920119684966168104596656027172118258698266113297585235659673741954438698630362831953693882278883913863629890400463020041022333773347519565058310767361928643570142570686656756413445904521297166008402072462932481543747843477868239002015496997451125453971159788651718083206937346666636490545127362017109662531405942274783591887249330873341730830253027013683289412960957848702271556199666196784351659966104404975602774606823857222351795777656637022910823767354688706663331189136598666471847916954090517164870775113140081295377752218646904896666490357989485692521657295808474218291872623571793588845977436084010394932044665460291722794518636452287473983619617146952315598322525771374938140351990061469027446808063478915854867712545527716033726250323970362779838962668508491981085187591268681741490014034135604737625737245822605633807520560500622262094726303665180873019688600025078227148595420889303445285031074941935396873412659346578529911657830707512780408295672359491089364000806125297532878230568897979375474288721150259290308987263317294657354923659949472521785237904434763542091102088090007798022748467036393523180506211859539820401292235626729561179155150426485172575276839520864810794668263038872870172519677491369623273886624419928070616319540890134192942816017178088072726981532783969086642867880773683750379852181262546284001675861688129048781273172360103574372202212421514838909527753031635618147383215027813318813050309862639399923589082123927483505351636153229735623522376398688589810925710425379046934928352060932440991272587910325480805733413569723093078992686425099578143187897334689287970419757960438255659064922486308077286894422760753101764690565445711410878195347186846089621481362140786384125088303271686719363920750288775460194207257879152724354163668716701774281996340980358700934544628805450996212322123836988096668875196230963716429536244109842099963365577497498529488821051002287227850132436192065284433879200941074590588046763906651139471056020477124190261277889917425676340766304487852202629311978079660324195068316119454971218787413859772393387126868370214927860756676608020556468941252010350862247550703941914885347111842554124166949360921548761602045297383892601055979219464023741460870221900147304358909362601921228552021834691199911321706301651178158604813935348412107612798349883649715715737743601839561888184684622166981643749645566323264943893104804901399125890134927802821781905480972180881424838697844758570809677981702433279754343963819231655098518836452504587838594788319144204074618290131920860271979054528952958288180479201539355881870035195348032738917339117031525345686555449222479040235922315401802905520419048925404023331215851531467850634179262536043782172048833262455003032406749602460464855584604740119983879424637518864903112473741895571025976835516830004218588782272477723840013990055577893807813546869134412489580530659078811516033167427924344557689418195336157347211888459662832295406744173264018411474763261986644991746138543586491375968012869648554800782699424425679524337385504804175901774076426488641517038183875955445275121057335540169178981584407995656563994635720274637977575136349975245099853088599011930786212280335814109510893096367046971419469900793098627224657421567592146804436286228608426548108824022663237477606357185860113646412087644833962175067482906254194179850296593318132969388478667704297797094301729967765346118095922556578914331682149705447814656353253817200471296890708074833723206714106099196205492409674874926118860948430025001963906482457666448310753278371068494810750422182556525213357706999672198806155206162101038707717006919634508824847285617161696557995171526462618921471105630119804868968528440365288903170518021895949718227654178939068401807990657269006236352712666392513625089369546551134514761589338182572246174449236324857250956370503728914022694727468588601677404169711772139375845197387157561552486395456019836837833304095432040848893268290032225562660431840342765151447960943351307719697365987010533310380281399270879829226575645870931997671815077621289659343377177694041202787135564253693305821395689136104634110728910644532920016708669705358663983897260676489984934472818577252223090249379996234876684132313350163238932231346715527912293308614135673283715562422610386556566383939499201876985973471817164890302171280303662783672234920538210757049153820393083466528638868429527133802929794571133301486419097454102650328026518668946216966661874760917284400454176978253822597272071054095573068619674023923615178943234982401938203092391089791050210913021813707600098622786280210544699777888994287421478219710360440612905999132333569097417387217462259514662570747345325369937800999240782286279215314521260315526258824043455100596376898197579784770682668045528069484983171672062656446480601667249996553175679740902218529788041051319348335198484216773742683327112604702406994077928661107610960596072742458128783999746914834014621306060966877385952938818121448406656356883150878958524734943572119227706642242331145941161987746185879882237071658638747741841524692553501053444408830909323959610101511930446453283672953248180420454145347058856938941391352769390454577177228045289310239914875808543716516907329686341148595655275303259574934193378974784672831045788382117672234155958957822408202356722724250009857620483159320341377394316344989090042382513722874374128390843234628640684262341323590829566754138398758242842403106239196170487023486998055466229685627524872036147945298395705123853863995067738976435459684417580592500981904349217108791307011872322160065140554068597138308156373743564360546656515158599374224115907762902353944212129752434776778700055263054714375920125657900135696208961980167070755638159400740850108119360940856014924699270467966098899351831552658173509870771659383190324873885785759743899713220544567012692198271137210009457527440740302365925458535036160936020923786783022358125163243248537059225145898417723422277595009903657196743718590168992480939869608781261614390463122846663188105541858792332829138781613815358031979541748394766613525423827978812634674441250900812466739836236532723887400719544747254961787188155934892932647596550903548827548216627890809105704772438900628464256209771209407431834542433127160381815359161616400828236847350804123841021695242922683295601008321903863411348114194945940317470765617230864931956212001771036868582828898567829799901216856349748255077926413005152077141905762744715983312275938281535790088745775188931314015350252610769697549222069374354235609456411218843401386862880342600092312418495175621626016709941555586914350284134143705871413830030617450985512867187150518070052661873660385095324400183487984580332135531829092473034288789311179014670595018055600556196784825406363694894778702277783414875015950991894090263050711311297185370016243891214808054467497553411466398869366702297968751984652036574783788544502661073502432156015855225610317874664148402422112982798782093853904127623721531017771991383026019808392388806708421685239179854979036046081720830463930469761317142541049408937794930380561569956552665283402288068883316169776604189019053577940153744722006250532865506616526814335425918510708006859129503599264529589475209247881058905728159229410235319946841415404279173826657825395741072817843582391639526003649973398831082857504425844545590891553660977281068628609612785417544145070396368012078263476277119037989777535359456647960521497898792315377962364751938760066039993611147123496405096266019733741951550761630877700865897830922003889728459382234589291983567387438846344417883747748599984428106801540295226133769681620050412969715226560194453026854842488328980214617285597770335323472193724749749942447018496365134115156942627819242000755114682675279798009285684264452007406091250151230548308254522265642028607033911271055249941841174708553981401378046952854048079183535864146157449452549118481655855881187539902460181245210534282809393826725570028647331412474278679147272413896155104850062011469028121496923911450783753273707505176524783537580360692221578350723176746022287519425497775594979190383403455462714987219636656675794681702466872454781400498887735398720013131771818774826502584564693164122869378378707045617618162657284633883112821744611480602878638125688841701492026388997168032207057092943256808389394348243016868305068539532624654309093261954512308050173939254533576881156070882102794557341822696515491759016060911396727984224483034741794028874502664961950235808140660966726098716695545233767099867705379701599076144967513842265537423917658901434426690991264057911909309045558511601529746071817879892043829529891742814639772182208103286004569399186813191864682158452061284558424042971509766390056170539750355844832398270580899540620811613588443842760823952430614325547142184440441314765644271757657918528408824712707659800005273702085665588477108998003036379041931514891608092041880359441717646081515586907153627289207180762594434168653653772584556121244807756603376917365525739077776041783639658765796867898085117272793778404204924266191096217037173271851590132909408435564915446832957199505136777418415130726307387723456002585648711199499672583602093972573960048843063408194550593911612383441552556997374960785383454810928974485432383495964118459938456758830433815987821942285795088668017810034648591422811427716857248382285180912705677229617661137790805973597762981874009872488889866541224042857412902468604928690156911689795667678452232727139066902747887022355360357621187409938411696771013302139777149104431401531486924619280841671953753051399188503994980899842641946805340222928495098280056091632044012519730457480351230509487956867201645002672024159061673709252424777006398554425526937260275452234785031121561292431904717381166358196851369004916633266380786308717600791668733415135715200171414084014472864138284713226008494633156052791195077982243872661707573323359647237240839663651314011448182180096028072821757902063611166131087373217987316566619105868163370644391187581014910042713971137584399892569304209844021003103881482672956088960774852272042563873884099703923191771045550043300369813939335693908503236992160439682023678694718526736839623954529454629125503874785323886643802159155915057315549055505284724597569845346230068712585340563519984432948884862294020645822367366804675979834829010899133287095877540685641954830302125953189162107421953739934942027129479304164073665088642916841145931851112400211690243784290408584238711253414604863751425914568048303722216159989274559735917508732098304068632513775852230376141291087897183414939892132214477332626705083756770900662031018120156721666760080215856177045086038798187271942966258040704803202145717091755450005543738770891315681859966855340356517325211259623822194177836208208519245539591862272663897260414858261281652671838705374596440630926766045406672770022877900034638776042344216414681105351688891268873744030961299937015543396194482863356747068943651842305431718361808627282078178081894222499789887179424144156857534390226160819060766288265578274037031105090987012567124917693048717643909823037978240481545944132387607981801112015092449042002059796345214624767005231384890643877314766208018777580427557372886953370846883210918711358308780743401664035558037778070613149314644084744866920447560650133261073151970842163276558005242518492948888396028805293349745428279635524572168969048898495433166622113183734717081884695386346130500039600650998806634415526779884938311337559216258217523134102539606903909794447437125136561771960468374771419713279677940748656758792255620444420460649584183623366502214842540004744801456950025793707290975532099674631712425913621697107965645977911889438264506946047666003689472212514930397652962425697566156131818352094940337262436772769981974959842507566503641809312203961903028793332656181266627824196310298652707127656163818589166826282028774618388986346077738321309387415490377736345625713697683354064944558732886533100854045089256798684437182352588282901849991753408354024218132838112157316550706810672305950625060946348481244724087710009423138739858206106187462621519903022127999965360802457334769412018063567873153147807223793511432195594573178391442228440288858435993222609236673784372543196395973427041199971867544279361221492211990209201787170508543441865819597503322339055356825974765720766266337822149034521697515204188084159711312661395846983502338669400391053686833076880564672167438787177252820018188450853244965438388055636686981377978591825295442865393994464237221225501112955995072161806075259146421149319166240295113203626851174569061891075792182682791860780521927202886734803427640614678034569990267599901663562908218641327549920642434891986110311523841573564741408619093673779339676340272081221189570212078703654563873323513317627722968985104494146322706963103836741189753972126219951175871693943702667726497920269172516793234757311483139276170202194903845966278522350490285482213154734683393752894955123719904047194294161033833915618593298455813646258922209537910359210918340999224889757324427374198504343202028789002301393688781851184751381128862061811128504331497576148659513873358641186429357371318812921975878545400152203167220334000937614210820633984897024307405871883041125373580039396243793688160970152746199116859901592442695863230390959463688294076804886751293197769652665952065240088976728573630498863998497242447942065442665273393950598217192127523039758551388561509210517682820897054695107173328865211729365954878022016398866101563440029438706083734856708764050474029819628912542748687211614410391518176288494902990767066789776371919035922888391647545165392938946352389786200650744517691307165855120484937501648626233320440673060299838280732512873990520853163412548951310330432058055506610535245131175511358317071212017327379977234550841113666231299061582523830110057949690287148694453481686384558256236937373902454078212854491996390690957230453643283733329103056448140957563197773541850919720187348133806763929983623035652088304720255260963242069820772227973717491239091283744485947254196587535301946344226681572069768936576445103293336777541403076390614296223276716160116245994807823314667428338008118529069980315401222044840532698827870526161385424829182592049911037887260412244127402478748578410651974389404415149684937910131965157687425644119466009367778070029153387629400393555361724655196824762079121027163775561544260743468937607057167718179861004965463107866875318449256124247095739958424467016498165155891315648522838419196604297413437637218961971842175769798287115800634856974980252818591524974922281014018021063140736549534399051986393487179481853551580479580015354169953805806001782094218897969707295901823346631606959632723163602721172754597147646484559073435277989082266824815958605748641739622650353008579827272658164624858673958904932996202779504261410519259210121557588729063669990468953438695083245864737160167611705977773869853731870841659330489353122203129486062266566214346029416061623467376104010910838014509798768246520897945828844920470753241873498918920216695850604889542125777000326214913406376919794273700728552976963400244469928336802885889521211581676640752822006538225031366729334609013313777447482281151812276988663916295327292033936747229984266407187817109497208678860405524004644586576310622510071589191503949481825917906578395098213003015122107865414246557947524999924159439943356493799478270114053652233961421852984998603304697634194402050045503467677080312306079089997866590535102084674725789489165163911701128823347687353795411992850101133483407224282393976855645615450179421233017636523902079499555691634904324560210650985810544354378446451445934386010059568860193645620806409050459426595711225232387738290423924206909269414832263196077683233467294121504861361294166269825199282792368698897811760985290629108807237854530004065324633583598820097075281118850539316977976308789216842141356565998521340513956273991960773303689971265662552810711969526567432044650172108120585090834688615273012683580869017057454828631129783905214889317358850546532540194579673970190634146439086802350991417938190980155961203270599369575440551174410038006589884809544020707144771839113204174917955965100235324707742472279627998185494047747699224436341389525989502814056894354325521685428419234452028405078803595396354287703307270250123142628745892835789570679809793748206972855339332659876597904743925834441296765475988700610067762462939586097733890785522048377971769919000898067074656102580808271397343155109675920808206190169285352152551992977756122541894524235414255153525298692401721947013119443009305384666260850987262281250129180220230118430276152391986362378558858854974739715377309376169869718835498123296776690579049938438343428463001189773505903339250967510182530961157910456909597624673621310436260831355146740923553659471465351718494021604474688890170234193705404169370037749367162143716726947598797766863032739858396326279920073434758713843665766697096187802893268442763175106703044612208486097557179789687303296756071171663341354798167264548394352418036438886768585104528664440099803620559255215594404672586589169155039557034365312976219252217515140581227348301257039874021343353144454504221969859451353530740318033735710794382993713415239798269778682348985877108480248367359945227984433899638295179010429891342653617684636174227054704408738982531987247079113034728670362963180889264479541555249159194914999120494869648029079137194984014774550392575507301012833227125046850011436515328733167653713075491766449511902487237483168053098412527831427254184865318582924450741023756131227373240276120645375300800553658081265264030158659657782724386544001556430971194531345443476655970161750516508339456162441069671009003508483537405942808709789410656903575165175262293907731248193391269811092280150980085614041986695640762605441217015270235910553634804929872069525091833687904672024467014680395434115271290440806745715958938838263250315152589236568627383598580494393279162589811834671715583227032828086814986502537271368251903294492736522201355129214147869565389659523818515837359148871871823576459953418162035166136248685724610879875656654213985588297089222270646283919814430291363912450234343980844085256965132486165811843703214959421513319990334675729020047857558886743882296303311579865599356913155052421336355440712901221888595322004302972975337419161656058998322963400817081710528180742245735409860427638113020852832738501040782050318841655141541735481947089827080338463919403147765545321871850979878110460678173282168375282703872248211199516644881551410677861343020949223397007795871002877060538035251907159434250099803407944231420242434643813626126336036815892206594589871815042896056698266181396622973065781906498078801324150457669188825840060798048877512257748769035224645891721950492652715796972533019969531250785624470114557410099784508800829709207503440002985634510921640824506617872537234521873277066129676919260154025653850837933140397795410013246658133095797085581608750851377181501613058253767692114384172456737223791301449147930291512332843332388405654148109403522130099229616346837172330956427490004896690335119231050236595446177479568611766764930024294651406338807688696654573449765594527389152614994602062898378993362547599194598999349147292169455494976731062698438207472363267722643045127641488309235600212450559869637554443038882199190039126306658025739797533917242015387419200498853921855203746216513686445001717740097784366692378174247544178631726206357963240996412879056799237621067390503065447939442853499973741876412648772359540496638300336625786624163414814470149527083992913232485854944775402491531556035242614267375283245227029950731920159584281342303072606195784242499655332919912136875598146494833535286992255918408046711256586352800591315624573100990807244137401645308953325460731577650985735274321218911843319195215697793106770013630886439059473168884799315467755382365727497554017979462505736046389111537092168556717423700484300431406020537622374490531535920941632057148106111424968487617720466982347194207017109943100416452696729976394605393844127065683660820092054587906355372782595571113230156879756230863214141434906554646928847634223114736491055320348204088652492987818622243044511288270023717562793120189019168449352322335474543747712121645256322848970317175400353772421622599182363185175354302393325067443828423099802830005487497990749016312669942111611471319284993877662398730971051082027387364021052969241550517004689461753667634712610190567664407291304345184800884355532298505312180569296729041918840529640777985173612559923514296566901264464036167208459441426414001439397250504892077956926522614814800563001984501984152032019172502473306892942517520361610966531968714479705939145261096811057510686564535431991944175742799908589816355625822731862470363331921823289989833008446591183600961673357865906761595613590137580159999481782576732970846329788962473124770751779334346967329641029344846713201091086242759580196980841916728424646341800726272925506539183824050673492055318131139541462778070247922724068909896966814611717207564251555604287486488987126024774545848944549406293206680200554832180578927289074224641158847473094746913468658740445982197362769126791612631662105456061748521537628276164488167442952056867676276454596400774783628817820011964276734727021226181061046384853272772307924833660067585391094048920865696205669271177898247697854262791271611190683988908493987322616914637329093166305533496708529585508044809350650029521843891645748956660884302914390141802671833684196966268139113945517309313083973716060416488399630721051146380162855197808374469085665865916582237781448810425116157001771501836783803661058547365140180539715958175892243712477319275694644600001329462817647264495686949937398694372974166369884853606101184254292439047858386627299739918414923562090562232083173500308233201445206970374423519123933550328973658565009309944358149220858399263610596943243228284287415423137768146380928378200276719678731572423913651081322704609679191551510756170296589451947874250053615450362506347745394577553781452810475755678038538437813398368944247043140348524133773830402504783465770751476281335006703191481026169833176712608308014119323852290236676239423335271365028944682314370321297248537480134818358058583720955770896807018422703313395111651941944191888789645749618253415283595085592373228469552066371737578573642524543572051995060153036795079540639392483349722273910989459865492342148148307500191475336810762370325789831934875596285321033528836439186351164682402035440614980698422789650259566695525271545275673054065710482168561672364140456672441752613431385952513170746047620754781714015291420382471134732899257216209019106577125116995294315884938213301099726269969057150253556676216924847869214647494109232496510311687061776715639374292424600508449571551801391190106759400680707547705385128818540442064382682700652914366190539924987532984393751113091749534592935921671096785451456863428815928699223866384091050747761126516257072153012222650706836872107822614854003297317254811398922554833913024286195916892033437103443362750412505489411356530838115122210383418231551765364708694731575582950774078088856086301060427682919114579566881269604000286335739429090985406941122857876468304187597092740171696301329696251348249566310435168666467361899146313154080417011652315449916916195957867902428059892973606670312975171080163783071860370773166081073765226285627905147582883502673676538456673488537790805566728980985639516146883541649959355363556529682127630513394593658662002880908377694759502652856048567512532628023653779361147892224861036437455917510427191061592669946369987501027274572889736080606639439591089029892607419454565549006029323232647844686910277841097415755316128546465696112608677477781812073800814256581177959258701893124218124479796053680647868162538046928463742802326329698435867050817758922374600818905089125706182671219975586497609187413303616665554064992904128556946909423181154326330355471443632669627520158937507437830453553434377902574680079638142380476225039969711157532056719138878078559348607712409348185282180587616441106053335122563895315125169036427312602816088872378495361155058517889789026819802689584105118745685380812191351714527804878079558799816488357392177551331056939677612511575282406982962267783177756646326117780977112681805934550284645939884760065519322113473394810996959025931207136580392749467027970015487875463754746655020836272898185952335357668328211559187197369199108119269993568281174796321745801310902549050488641242624451333971522520161369389684553466747078682840958007514437718682807373087613577833354010202311711060947395877572621615527506778792888121364729020612046421639251505428031013989562683159418104102492212756839495469085471728218281651688385149137915156949903953591329136218300664788277722446175234065637707489696414820209802728956936453937278947309768708438709929597834814534646987045611217583779213637089158867999847848062737172357151918676381229310447906825598754191662488322626608396419855377569298571432024724725663493088226067733288457553868564076622278924501813650860598389626163829655789014247658750001031361282334334283571549296688915227059270783389762608068581373152625012294712268132646105621879207026681406648239839022017798066074754988763719489272361302981297927734816712755011477028195305101964698681084591797520052128624194403132939660310938854675162309420326719221405167537437776718152410648068075305682814360605012268739909875884543788291597913925925900504115526683125037033390936843146663606175309757306674387005048821328799165182526131101041558319524605803758157801312374087837579711734499363205673493924803384146614220160685920972630739323966292090930908777609037528684114520408858785105962291296194673300298421349441899927511536019674637713258746871032455092312626979170602109621526448042583080892971519975827133692601072261255517148675271782150507935488434008858248357365570759558164488745857498355382446205201037024303652282417409361738847608652002880407227984768661265477497369748646793626092837011343535313711155973370695421876900151212780543208786693741905485208715854405560633691865440063381241194293490699206762352169762170032138014211702016400366648110952787219938856516234467154672548103329347936445873066557342491245139135165308064319930107172032435634831372464149637008123363585674923896946475929765705414440431711487448653668429356027058204554474138693673516801112979554113601254099022074218772660986025194768609860520822028876274057857392527297780424545272658797748977951472738749733534722640990660433377544855588515053489694742358148534109138235322151653038469774979091202495397630926721571234862479857586738688130609251129294374156280618171196441150600428329378289154408993304255572512600217304195621763053065517925538596361598627101425445485905292849396053601104896222038220956002792965484083188216333847492645438462982538884081917829903496746893702026914126552621803384676933023197445459871178189309357906041303155087680190962867635353160096143039033675966029749326215111627058562020787457727081427788346049410638217806836134139821783790930541341335326279909899878858099758710130556500151362043665010171498983635872308991856340417173784202410179026675902002469416555691664833548494324717656443592874337603704800103365903182566898840995341773334422862193017051916950380817307161536406312588386276409695033660603577466645289717846385897411249087036705380049573352689410902386460352221561433812432390313102265996312904487121507173131500731206018972140024467103968710264910018411086442807671700339713343302051408309166133155948848002681288770920939840348028324257146965470250494632050918624564981368227414872063026423665293050501633719462266548248900017242042794062101223179435785006638723526489187206768755290097207020610982718687738480083287232649533653875916010176237161897393669344154204902006220802385317029722382425996252298245576700759815035865802353926374201502472366588871767312389797846404477168911078724320981664772328897036089318606099206590019604365984855559252116554459874531078667948813204361618125244727785922504141804816029992463450833479062790040520029272405486420149343898761696961410557255451675783082450302655753239419066796865591276888208816296808641557476415245663099398887792345239032001655847724649814167350467525972016255669438824653247724025421545674918189920132623765136694944540073316529292984332606253055529887548517160231302815856308026116879769705284602408751794060276419034244081197231487407381300388253819826772926676307354880096758756898560366660018966438477918228003428079761619648486842006626885672297842973135629771175486116240035065056973598917380113882359908445463080884097523280023107852267463626796073419669264420908610447831130208169204305840412211717084141274080409664151810280734423708254570270241906134665322802617516864534964385619085816333392814450748145097115310565606467880844642845714808884042144770762415781904221165255943700920763760871805447404144498479908469857393349995635444991322173884408564008568707498910693244404798492182724355901202511132236905635685083010872011800593168869313308302454217848255689479675254925887102823928118904010075158088413114688872142414272845174325548091456472534212963728358212739966502649195650268759076313893125776954319081427939890263315694376845025577534779461687807852769921648501503596771089280548009503722064577211316283476779811861140126040014883405122821051529552931392352419485545826348866259294319795195892473269896573228071024140787170283849717438789059048322381869847160417133384976917167791615419864630394125293558008620305351655548504746159571477399290579789027183915322564153983553750946779350396708210927150383064062019288509042875171621414362382361848643703642358718266372298512729941699397761737438221768784251235971762647423618298098765392001376932269825083641053416529464814952838467335805190978881827605416341890077690820978130172113671560503625585588906783011182491421788518589754472906451919566128468096042625314984861950690064237704127813715339625806411020747723713738281099580960416458460609052471240754739235358519887290357789589172629036821485346717750758560669267345687958726406268774422638683557176974961956289527929939791377143971962388586006533378799375679086777175841469368107929929308694466764719387866781395467633796027176027004686093831437247461439544739541740335022436414935394394580504261432992800271492657187645406851865583854797030090166519539621273575570739745709306624503989404738092061998138012985005691134613200397795847827717336205029960945165232614180870968117380802243243351279383577888537852478465758900345314348400641110240934747997038146097703978983470110944168247267591206899525401120041208288938738466978225381262325877808386004951732370319193648076396366103431054161970339850116421165416401973524243566748052293273595770033875649908828689012115875437756268992847739787765848493890339399841189363290472307251972425027913758291408950723923409660104505771408366412877227775351451714895881203748142218971742846742624106347510134852928830066347605484860090832823275677900399114236975839386442530500522382619002369581989311100598974692926758105735244824960041149493184992774194917156491538076161100735246210579902100866152719493609726920753781324883584075059871938521737904354381909081022790855344854636588090360142816386742983701838754911269386937226678701693574505986950908348560049739859256505412704981524308047582488035413426018038821584333859028050985395320587120182985213550155241962160629812594540912119461789074045140068380475640155245130013461993232332674865245160000231994084464119526971037161374533645345097154615291481580936877482961399255929128539466055386944731297037556330776168302705768336459736034168148563619996423215476634478259030862603474233848659291337614544327391139881548568096944272203323146868291309722557981123877721773824010940383161471574007197078386722318964056561443808525319095114241875469062900835279570891598336356919314874997163721694088994296399051115912819754808178546847611673460961617817073969925782831164359025368498308779935842563979439701143431096168767098182362827176517342840424796123209668733813400218956908173252767397338220197401545966013253330341154634648657378170119982611442189792671641709780830576074620859171153403461308310483916558336181490798066573835058374969166665399488913976873911833195454927671584712560971248181064495988422885614729792781044430189451009246396221311023741315579188704957475925267966208065198367775494261951089921929452372349757137396775846184701392626826094415696083857327423251206511214891914054660247783610869973863943404058228898988333026957834559315433950339334558257860091916301450100180372111828437401733479060995976997639362188985956915534216487699352425050952332916494879212205875274813623613724151912241564615203949083047007930552022406541166783163989686254797572278181738801820232892396671653149664471033533731647536473390480174357125818650800081630146185650223513073069250428612581988673361950926740145364645570486172363376551969848278296037228705328203797677605452890925960847020381833841887920425784336793494791982134468480940967383867396423608486627209806727430083698304360780587425130671749584515870923710054105564078911474586624187977213846087041872986382043459689129397263279986461199678158539823732765547102763045649502944826710766918324346279293853233093803049018653095197078344477414644483349207444720694105752366430427608236903591680996000567797461973186473045948002170363570846099859768100236866090055615750016089933452742937764775170248890083941115984415218646224711896529308711843314012792676690585928418353309699688359876635328385544381680948496164235542086596332879557112552589060290435703691470728856347854614295116193039246467408561947919072811251747080642681505070810492841557723231929044558813887111197013769920254025035522371276865305462905034766325568493233712362128715508456613325618283886187990427380553767685482496292671230823930910853818262040302034023259898331609423745925152152017976245440739227993301372936315056375083651329629462409428071305148896940006375624454811353748741013212113051879582685375014129064184840701313809054041728055580972587362408083329014013614314617370674998639800358719236285240965432965377432892092213765278766626527451234157671252731201414758594691632014926608242222538175045496621235716145873224687310970402222491127918024591762564537418549627555098418595479851496863252589070409782486684774599061210676853204299969869837531427158471319265923416737143352955359704247213567555119684006641172843601243117965282281268992044087027658529805656285008737304074048179242398510299113802790380945303411243732242279410295005982450073538087339883326831891156786147846998707108942364784249817453621075048822389036736299367411669090817902754244437267661646562105789604802372053846716039455161504100946020007668152334735870815860435607495289371171891408235967455346317372603835836768871211342128561948915141192729973132139169792898103596329974923411056930508899301585204767519111562902133105186566582198233629701777279755316544632768335593931376253238265058370698913146562528880369986892805323961166947925709794483537065936490156397674348003422899263268989309332908962574336784724720169439987010419258410977116342915565321209418603061702756975734006595350742166167331783099522491494083944128474181614296286770255998724923472903265261562113225072741997348381460388674357104203034281056554731430891681235839709764611567915875472747629001928319774494382300105815161923076916098604261411727883426611182225548369994797803744733648940861725373046341846043711381242346514141932314696511218270532826785093559506019815631726361528797290397484652788929007217580978994956937650831128498677616301531934050282286469979516888638189594434802782852694694275895608526477207179524609354320525192486019452050636818991792478540682448994471393851612256361120842349023716118137852438489730533119093015350606986431171719732646966147319783515053699303341848930184213710592979267626785172293864752144476052904058523333878263716908579224106984397568102208776769192648013004211699842659192462325341166517043547062942382977125989347858208105831613695849798398416506999078257235686721547669400652925431357196148868828803621935978328410963278578091383513829360387763321403864975627370382484670453295339721220155518149545631402491691865627996401589226906161130233668977323844245460031005388177492920012363160350336720640410067404516704014623347976139982873685723978041193083017022461161447566076639571524556043995621101336354510075448221081367413059158392549064554481983281938841735629047191874566708611414377606174598828492614349162451760891732486650082574583256762841030412617883264573000991473226489733501413530090132550642770873068764830243603707254281895611618358028541829408161312470793206346048259550277036962264502176184247282838569565399862388824894856110280255014675073639279565664316811787210539756088907772536815586199983898344506855586205760552713390994656674219907504669859055460125972017265281121170792672575669808493939130927659618961849687263411138563765213935651810714699877746277325531237155744986176747362073269362452954547466225397958382324658138327892545210065805682437509017123286858757216492131041470789104443953532577903310636583185200393687341733201349487450650551578546214960700202176516901082397961648768221844079926209790256107667680325462546460887976952118536790041748422522458074711852985029661322845056062434310297980786551626897820425910349439127023502279716339736190322946740188937382943530822338251970268135368573833296948459760669612208751125153118627713189924351952507237359184776335221754584998933711626121830231330666815419496081367619853574490134252515754498846562161642795356262290577894098730524977852076101010104133025104214609673368639750613720846102781829139977839684819924171636789535621466950799521866925440310659601169522284131607775458839212074506597735397910997644481307975195324845565316477850356560485061572910832322168490285537410090785525200601699254888221916326842219290388705645820683772309766060932307273885996219366392000049208694505855012082926052020781511695519373067396356616764716068622290302752172447000407381188108512717535624476352076392122208947481407639073289949077935961561647111593261122707085252327476667912247322252384824932882594863723758404017478271002275416940049284969064802169601939403387220923065140586056119639765171243347912703019518252842299160305538440843842808313416767980724881625618991820112805787103343325228911425321631156198056374360350490369327964233609979606566423388960756107644889773571431321527824894148108755782918190173709710654701182761366738015492592007014054358449820454110857268830049429241625467788475010374304563023585086304316034052514135346274143054512189577221822704733005592990457755460550990649706862631224284265140616975613736512708703301160242970331767527330758578571254414013022603869073421734239686545863497455659682545026435462905340111447833529339566567549752022794605946272595164653481881938341013219750195658726325081334742701135799106383386076922191123137562252733660003886009219127422153722444734952027661539290425670516771318126645523016258037992102818176178141908932117617613606814716989678808519565508184461316040402017728658274952223185795989164807262238127921688112699800209778324804505543193657488899161216223113843607256344563431133873158446935143090629736283712727271368178460228599616113528656406991895465517047842941164067141119545441595534230159843642349794762491018726758148714783627540938914176446201843367196691331374967693047834897141435407234139137890838382758872227157525872586397404161528696085419665813196626646183675266183001152159685313781747898559519403887866888830786765987559831722509240150843790962845489088750877763865912473420443093960416111425675153511339919691592622892009721751309904671717788922931444159139219135449865118302486835728101610203150099839619461898132580127163291652453137778855714090461522818747376302240430966915503167566770108755100841357546955812382483384066695467273232592785491588966624891219693384894993571607865603319539918068338400053869208169167429384240957115021068269905153910224134420176952296998008773773966271913106510528065862400161061800137539026395970208213402184021941605886909261854430722252024766206529999637048108566872487470375562867158919634574040011026627487582163188263600117143132222470252902288937969825853940956208179133085008153909073102531839078129832623607102195891985453471304945300006452538598382525883616266883644577936262220692835623446355220720741666843611646781830805019064217499032720046614605971548131415848285375978912080554803981967377117031767706281672399083581545084982362397250058038791176633695735014204313742982284894362092700102858940522092000416308790159124363588209209649106872960121044631031248399457359100767479686448484470127785068059977099510581567916674487272319061772945926489934644981612878051132281390920594467002601496295500855753338091383513961477306402838744595959490735423834698253546701576930905078969139162097713281147910245673559892888441037964727442758891692120524830611399320116924309503173016828796451338500742772283560223158902604676859514374514707667608984291207486889936444479834651935140950427694659956834155556916559117646187751062511382721867242246416914823953227060415526708087448212567743234770429151660605529656925694622766048981911976821794549799732433396679822580933793294393039668819782287731176069836082850243818404253252526969242007907819701828621215913282049098244842560180292417269611657245129172713047751743834575638840428667272394296051368153810412666148165913518209086476812648156113310696678374861046338659862941013305363305825247303382772523983360113174393344070491117659661682565964409588920907864675557244220557806079006300778671205710528546341696862143428594508462292181787862587916514250142810508771884477079815695429267788785608257734649853876309624841021896112299411643415523215209250006596893202403574955628370729240243852728979830330686031981336411040535939032744562144556617798420214030914290295333703757208879627885649780440770635834038776726435092090438485076032465621317836372192195912652233121407394839373103519605634473790054465833128451041195513020154585055654451797074651890078602987094468375747526145165446787115431140017263523876531186341616140069796068986444634919301773514588735607642738481306348093673090476477846726429026620553038202508813910983823590368887857163449830135457687354635118924669315741039220921459321987509017004223435983023297087229068343366040515571627385883906144467665319608495804649249241114494670663742822800357250233909432431046702016130448965179275766903012834073695603440008791539084761335187089628165848324361506323210687177951524032904025023517502165705000465721872410223633367925040315070739715770228450957522927786901907579762960925969087569475973388723337114547379020488700302960289455275655219784321098968966514663189319621913335554351762370940894114740868097478224326048011517020815480428949202860664662644693775988866164404283530521728116405746825918110909395595658346781288522767271213884620863314973290796636954206435952368123608711168226780653216479371475157360495969452052598793921434606851320964399377927684957462194723701186957525054823480738396258178118328399030955948431093335721863943211876962501401122079996608899045097015918864037013285743385309262948632351922264364173847276151358055544297794235730006923989953228143964719243272189493037106807345165460330473608565735928088641295743611876072137657931768047987096575369240114132965660656359862028889336795082142469155696632383698474939422911420062405712156019656886279038413182702668277337153259331084494096752451634679142474076847647391515904804321752133912894915292951915822099578415515053316736710566369298110767474761168567457472790962120241596690655210161124033132323835759109639288876554241899039990045963826827004040940744101931061674575326576490162506093153882962097557854761261229368052140830526353613018522724881655356423690299268523367470633805509003844947114101440926070969116741288184789118290456400369818602915963047326524214808750752728722486801477021074068466866004711501776260943929614109602913725177255460955655767868798711166783594374102223133029132082444052897771495238135651932554245626818409729595419072565173579927743412370748202930081954513020258650067388377211133256852799686372281499512971653850193980438908794767244743676706392304976852246825801312764798456189885040543984384115270008538228965517590442253560228293448960204155606433937695993368993055304781201906851556545053634785094152703985033804266887743278676423990974134136976143737688922377126470139558530495389106036367258440838861221935849729446911012537031300460026659284316493985555204367124774042884953275576877539219340515042024162563739495983898140228636603762520781949166565641724466400743930222624082496853342580391914520395513852596853389039567118942244963492112845416888963844060613377610716421482544385356203140510532629041567432278768271668324283812849830061884695519213384554363930114919377243268050532663769782414988920543217872686089670580146567201506496683907502240230070739256287656825242405492223512036575358964152315467263663634511905424773360123698059286979206565893460572395351227645782092992354756480568316982176817690559024515659129535025402296844778186907165968598320746022835696209271256065143230359517360419721441171643785303418355729325164211052477069461431608610299031318504659861733752430394021266441998728281413807497107130377431009480463177294671465660821116042954783438532079546463307190674174379271819373166692997272833264141158308821934932878502941922952424657111168476051100516838346870697327616827707859462489546793485794741283431940567165438738579849192865183572572331151542515845228511256695618173096427996967470904988743511880830056641428182002987258930671257792952949176175367675554131996225210579909480689178802026550879248526396185905742531612919656546000337978296799276392561153726573364973476435983742239927081052536640453772080915682514546579313009150477997994332554357223325229681296821266397078494968538944552763244809940492837720754235360272564867754478243903193785356264196446794220674367535593846125905815441167928341420406528326433399950512525358344864822533524277622786054751483747231208428406511286641163601173167398623592015314472174705313045953517524044467751517888497247344018897823680109009349936089400726332550063499730038739605006343871343256615004339105543084458106630801339756703717576180048142806388827876858550143397412300421488062642961943357643604179673819905890613272678851721209868662553268650713303311107795179301860371157902902981729127377374006834949109471079095163579637358475628415320891971931912420911984360168756003561332624207824071557673906336561758142465128731745978028579837798141247964819071871702888049578776396269345747198934340163265807122661032935131624100811138493298943421719725139197508562509199979295640725496591857600561975987422757164212910459102638998493460534377402280577428965056551907207020658936888468332789243707555187466645008671408631463992285831911345865017839653048036686840976678809028052886611777188426905280722595011057730902119745901607735451736855336248110839820720205233356466486784566097971798797771241006774210820230649485471996122611714786109842701524204295218012597357497226162001635823275764678511908997345415112212226058605355073272987308038446444671114699913006700131319829231369747649047510926596798456144886586995132675584773289673873271196210010329941984456288795844146801419580742206233467580170258354144817279259910258215858598420428187518513610290128283070120004337625074257146474696438452193014212110158247211368603963006875882026959678957772837946700348699432819171313983688009723876238225059826091562947878697298746694141411231310884725030020609645727082229194428520254783595224601643248232967806482681818738656809666672502580693629207920573324227400313218234113885222716192337042345730569175109490768919584638205444045745264213234452431826473348681364522097971839968074586302637102410412872660279045905845348776149912446153656904459389268888052573801315471756289950631137025162480246482138810763885230324367454078249075120765354015448103754054758654825418602368182890371621617394049838210552275967540349148850105644271469263357769863182083353326551389782791297363823663492215556387009885788187241774297197790975856956095993817401302247195245931462131399565717803816443407819936998262545755629883851925016098361955827963548590156003645556474794800214517604613400095145422362187947165262707957244759557979492439332996230463326421979380006301563863203011674133576356719888225601520132406594760549080207986115360322985330002742643472659044646755800754198811751434979755702781864102570441731282048058424830906273183431944757885879786879883610702175458586362122064676181508232120803368609358664298779994164957800156985647897655737847678471337058177522134231982476892532268152353203614327217742556360017764861743621298738383865817908136354515066580750759660075805002312342149991229023035469554595747455167524216400374719194364121590875281911127580264744115856221634205363142234827704244861991642325276471055406030708272897427308627404544422805643878659105067430261196521819807452904249101022653944185690831029378429835348033336385213333969494491364539343099171061367177487577984412025703755846286872899973452084545173775622024259043456875616000236104278455126738170931260775097743429543320683762438063224256970866610031463100882764689516056930515781605893392636968639052060113880989008104419939139691778552467367380481732029600062284038663682489846056454825363393332427541794631775865723357781740679758358486908990104676000510365788526653023325040028097202754607642549292336639134080512812430328201554488973785947366438287505548647558692554500370940104680287030734482720584611667660392177157334256755353344487220861191156798956181664310086153389043114059971262304284809277815792632248832434583194870338128522925539675962875837023607963985704731733897321964121190130198222144603825054086036871898907376160427140453338614664410540619444575556825835091993732871223307433420562220974561896956497516229075513716120333240219716644780951821957813793718648722917306911434849324323742105678872607797990922769632433379010571963355203050309955416701424082469229075427784526518701623961878844571324673068358210389243059219832100171997791559279259495070691964783000310232813370211789139466376041052065933438579352416507428729416169682045567867408093200059041802795144680670045328084278248230027408292895585208522818015208079577372292652809578531004102457760595097531804532067967652161112582392184703183984818736530339899388763497753174219894804056269295760359656679753987977908549919881977020947208918276954947006003347718952323148940157564224800780863151703192096933191376945551185402229540666976709748771203610987338278651687664049182771240505264558987172503733536760854693458486312585804792299567689288122631009678418239091854291124352077338697305579175763393688584655769318249039346880977155907889287435881739165179286828001514153274944208352625027101914457889366832165936030296293187450328263512472503278446639095581458870620384529706702273473165347496506620949181788687090675876639128839955106530401053932800601172282918508069811160502350345530723579943030999445157474149741014928637479851233167847048530099233130445403753201084370058444862867134715504777824502976947648830175070529543182245757411605175295243936172961772882257749025954285416783333920243849685477470612760470096010516567776379214244798846015986162559565322655295872760656295577072143391144587557886484984598240297753231206149374315502330619157306183989195341314181146639531397157261149142388718112840132739081978339374681414120177337192542991913200504188053005830428324259822678383119678261222288639361933918657681982577070577908871042699110338026610197738856315117597426842640124639583264246188161441912072298690441442297926753382759548483471108813541101938773806831967830898494566668820479094076925169986490125613640440082159637731478771465736097698431942633079458103062758744674729758861012455503769109825879866883458929754549032411138447573480796683683552361315647950448081594118299510909960049476962233477612124855069040493954718917220776236536247233783830732209674735969673086952379721637347709417285600746686419421784082360019290645716099180059046708827133947691821402450801213153202761493228250767324154349430382669687685489697110449522089788894987668565344039684939503746510700428970381751124424673583705573421965182152027530324909606824664826172020983079267440211771948402207566903675582979692552569930179005322148956930377612612191894442800004766327165893895643639066835819357193920686918235971964609575376013577908554741268157084742235772706523187418809746576145919150222252310257593623684208441268924762923384657588612927597823220946640099849916125377409629056947885988585536297158496315029909018119242963331722628364440662873595914707310290640483848375842631528488571720135493540816761684877112003186543647064154076300117860087841602296272599048986756568960191678860868691076196191055523554662464449133090941148859908638706306327057449268077276301776995183256594700770024353398497831248355127193951770894696570653080158322623602893899484982878840326926411992363132748526070572547934170236519628579826090402832863540090596704067929225890492013915718064125421178264789157790996425168581377010421406301014246123559803927817429784553177892613530977910939433040922005625562471134713763559023029342633836208646218959574069307996368374614151137675516769048567182629825765824407740286439007116615485565763867556616230654354079935870520630413478286825205177681967968210502298492266837408327187222987969547337013239146313496840086619537437087269821631449490059564966592861631119625303965057018023173092964598133148532114509135054000705099948791673089693351114754016422320823753502851894271565692404252788210648082012525779175946100247651467892764867827191952671890707615513287907011253330988619969935686137424845772693932700135239226925931189175386702168256804327197558614928529482254205121668047182751083574775821612093410712666355579888235064702402086000175908704540872672495265108570112438170177793736372315498747664686274878200342875189359416296801468333981037368610041654944364585907803393552890911863496496272649386638984647634557674225876196792165886969060907123420002999228570404814520281162186784335616754031950793762077615305017870062720105050927836632889730030283243170453822859628203631852992082050531458337582059070324735677791361749591804600266661980848188467202206313779513548469145659151902994187837817380390652537135927058281434972495100067153149653912988857157770704005117737460350300575865664324828735890075418667776962206610729910746527538933500708254581999735986491761590499791417068387702099245099033358941655745837707917975899101971173889788876445694557734084511997638615395054867254061627255498976035893087656868523761667820149157296802889186274628411439284120714122325446807987100007925330998680350374416330178840214436106333579137277857134382643444209293394467511802994807085927742845726561569342513630217934354404171917934363858339489769352583669418686742444749944784874167736810994696235953302517473917537336362680571976480894060260381400801383047331112135457200179152698416730913420924779835202161347799247763315772979100926290628034831967853844427704972492520933957951205462147097211005632384227123645221160979993334461246626186464027041723336903044087137710985136729932857094889759223129835185739194541705286486644589850489021947132724970455045704932886379298164659602734794201897117252379652796410682580352532796465485355980200679835347771053002520976304378263241062004617349212302302064989038633014665597480472574529733509757794504861370855520946405130473492951292728573832733126380929166453398502789874295275055719828834580045944639336398723939573990139209450189628075596864110189444590236040679579716661276631648692480352073949539717823121599988039912905026263880910703682127021399995445231886311137010811875726533664118065206699218738869356498237338516349926835496383017489989405163371200839605778778291116064876672227567673744931948720165629256169532784713299971828539061832570651019115937914555691384156783713362679236542327440051421750510766541144002526678137559226102898151901873791955662287356259988428840268418139854217204787845348843295571685191371860991391616691855194193628669134296430862560385364941333123119412090614551280431120081999882700822440790193922436732552304753872589484468514246030256974198556681053402311254097323974622119787440831243710829757167184550956635810523462670264180614361995469415063934015579400224571985941829668132092198430797256486600206427401765268625596471734155599231023987636727954257906415718985310655514935047413882724580717863430954230091763028231348189402545415042678932908581396914975128810976075933030453686249799905227085662627425425572590616890191689448628470471556686381160044161295962948343914585074255546383042248058797924962254099159159812280739702369422660120579938540286746801671610757098888995617449752724676353940488465076892946429348807991376174017970804391750741858009621108068534608585436739191691683120780205350184439106918243160105449792490324042776326390473218059170221755813428130391526333043047024919487338059952051315572720178577748707937979693408986894520170683268797668334120634350118169064903453957615898249984305201990609666357914001185906594187907162498703000219196736838020311790027444513723642744699802053383175355440018390161434265809594587032026350520803613701496003332410091694449182202964277469074558819394564072399233158927026366189976254829952694319001402754262371790819318526794417380538066208161850889802423731716663457839163072618267419951049291198788944973811452664776643390188404684302405153704227193187366726198831703145356246336461665236126491196676965225366498158999283324710497209096973134601094542423545429509957399760976171228546734878714729705388637178221557890568488606567509257532977412387272446240577719944802555039125490472651152718072147257628972820412417755720384804669695067825370793354173741141048204788437031053466597452018583811286605171915588107120541285554540714571130234593283269913089281871037925050187584492539426951031856149588633173624021251898142463889146220021691204219789624600449980302261412518674138542674317948892366743694574256830750696816663741486458822322690044965410669222143548253658674588512978442175075569433645130717081751502424865423563731537845908820184077395097522616464070768965495474649937403271644459033468563986417301333051493856236162946176455117358180870681503984355469145089977254856411584800725114624508573852354359985289481929346139416766938872542636110440142448920964756029050225603286864754273857001769833102137256328234683183019710050007588557777132552344520011214014900910810096031940416483226486700845987490715299994359129561126794088339004001277391061318198478443815994906697673967247455670920132334950890966125179583566236680936868283688365185864754753148459411154339305289571400911485541084584810178438991308078740671450398789524598214887067483229540492630652220640994893207223108914887489958928036120587264935681288514963178200333069551986022048788270206822437760044240007737183798016213448515683803732945114926989802615202471045159313579446143117690995191826790944257924902167435217556850328396629539142385911723999069021842142432645460672605738650683272471562391182816459347128286644690054299664023134334796007287972499939751687453157813196555743184928917837921537558990181688054352122589989344086930888170456073775802999689948244354614809152737050248262222597217224405855878765114940453689786171154503280797039364538721528095640706051973523309334432119926914838782126257426472996107493474830773967729141792091631382039654025215185423888510528217179754880806167772473113872847200668026843586044583689352358301135829281909465727287651124735094623804503500603366842670925303259460288146363964825763726749372470398202362142538640879382318758101340678393022528993290968741329415971469285449441425586658947941313310796955553485661159476351840359700583946285749619762207221999869871333242781000485530017455886452309319110896906325043930830667254396024993037261814047666267052257679372893768031018781126295965196989108035844746477354523599607735366536974567194340252621244966008123408028605880196064147739259017353874566885807737849071987761122804235925388686490681309896509177945233662741640292594053081564498151685066016308415670675836198591449482324894589134099504169492794080470694544901715860903446149551507054527107690840016940605922118607853065602891726376776402155602734093092916797940395457118936312911604730599952973704485402717125003406025477078273771038157445866437159633550999593568094669420013483114924344646814495424881120953447920286619638646871837252845492880499910700633419689180042084542610767951133065915376910898452289197732930231207683016220084774551526423638343647534851875531979436657630520581443522824125395212853857282421063293119115384116248007950623612597026954697347891512908742339980898274889324280262910622137824021654853958854652282944745980436201856531755934177876517331588006440404749490445816734629274771647654608302436465239703213451236663982288851454070762043775924094556331503887382683855420771548378347311169901132096296077366255438448003989111062812462034880270401276379520666780112722357117676256503104342698629890551927539609414626439393535238076748305325506355545049543812338544732810665547251677690371344434294629853453191226736497398839059779407779740608044388084072109554257325367150119935724768883029903735337281601857423204176673234773890662019625757672268832000257102660660029833951245248003025246772645020574936093187562153505927020907182867271490123002420963782882612936994454626330407285385077056114120856693566014661422380013314268085798163400023798220082462095646217480010374941360388563383742219577621154595026724213536780106054345872756196989202241775291196368450931963283024602639117685392342335669907144622886319470329385189091497523560183540061604371225333927147697235625925876133727084633962219366305291869724824537619721023819027634931377503165777335287319334842688891188954428297462447307834898677085838969904986682011208350123970104562240188526881464247587952356811107368335506651247418947627745064779995871147027687612653206446674202881497013916751905458055043749573364450468088925358546036257220180266410214721244552701789031333290947960581688510921224236285677218034577526221830325967623605378289594215663989733057857527422723268532409859627740551804400346391954573698534539336733404733800584576518852302355571535158889208745166453180752977645285849878962398628327330378034558661273282009900688243291013315343592661917582821270573507738870994624586593039874646297119045052550314323902094119896698291203413799528371793453907532370932029806508787966340376178198729322346111657919212557316438127674581992165600375485492208171260514343204643421261465246495973017900462966531258450147433376627970751376845116827688728836896451130969855954189745557185137598594751563945171319050211618116659398379677820916393914785548711401245131279658925552198230137998549996667416980984722803530726668144937556355030956158063933505034044287075353320141254323204694715199452180193338327414671830735947003587064863678724801694536602587117739636294552394821344332081443833964640692256381611833827101396562913126383013354538360514718336372233229432027119302510600037919570330311519147872744733530184601242528961721084667613317640277375185241564309956859130281180469800720547292711888936652752961660641876610546231549694975053150976255969087860043378838989576031885251286346821597911683598417510321005960050325926226112414943625549105712320216372385114866264928076107984263759998740442661101972463649720224247948066791505716205171138300755878651833851896448734277307064142690883512273673262546253185521215856893704278208291482795152158956851398473239131617221435195593671202363462378203589391845770514489148741149008391282152948803702966069334961554346391641967300734925761290150714951624385803928118495197935260831230539809883891523178949291367584444398099012731967909551379760780489549352130272464418710255933404657072378351593316324235136251969190169378691695517515729037089235641837557963559757750899554979022247770802594527673229965722108309482030618133251064687946706920726739389657047752410863432403646360721670954148706491237872923462982247751229883759717388979791488991039603100674253862276799780509951728884862716057280328295467642183461099234457476946961120992431810290151457737505864417396087638213555867386070610869014119243448808618891698506462174715708262120870715272046810343395015990349090312623489023126430256033999250327002332627495649226558551004379180446399385619908101141030828945004586658690757274625202786688731348615009194954848956921906896940302091464768710743369125986868853399753332637303407922306264140356970553685189478663043246289979968429021554720392554561984583544409173954554149565813696107016625200664406980424843859170078909130702826079261174095407758202706712333952444998425031706466830768284387389971358661725589320160091312605660785734369958081654367469883647188198153531157817306433636989809557926461848511219832715188228734551211740508581810167114194625451652066043920189378153319900183618443061956454356192750350994479350988141885574638631293415975325476177208029559016826127055624242041111953200929255750673644001100304358713127060386288744990334291759561221395078444904511092854074995108873720815376977833989673095016610338571567881764550369731493619939716082550186205968951184200642839229181907631606720248186474446681655371062757988130947629501071194421253861135626795413970530235413756710606341304180565125025095554685753003042079560875347260898723423179817969246921231940822301108400924489278217036801151814583256455033232883382588986566458791583979307605830001152511108757430992866538470535801065760080543989416580960134214343987967993708817259475480212786976419623292487803046844591765521092976703363942387722047823388358938305762079756138823154484306861424515686154250400696407887465455137616062674815146805121861762609877918761639842167000240086684090907326438888078136498421301208800381083940097067483338521390461048510459064600440271892856818853018761454000462491245330223057764269202323753902254685954466682994630401066163792179960217836161522991024025074702973023025503871555503362954236034836064016372998397303803017943423217305836400297622702737381278567874897693173485010675421419751240542628569336080404129683657858499011661932707526764329694361161181259582978341087910697174260534076802602761446436347621062343450050866101183469813031668069146651008445376569085257322295079392538121207486230228050852496217763412374955966389904340371362934046524718693694674388176788691111737654910891043727233164152242027562448051108648811232337138618716228290404963760711625650757874454053917239015147074863410747106063178736242271462108140904508464385439326901452452412335398677948436178667440023865533509789991523996121560268328201734276649962747155937578846516559756870838727109995392208040429431783909154366968254863530950212497639452187321963189927462145795709762221213112751507032264465090479957385177306698627188533766206492731693647491476979156648885648372574278176285259000623041780439574272624954949476483058815630592870769176047744027787812893995182679849853605838798943161894737342391624533935914851541262592241319801695387762216227908327868448694078390896907792529244413926650082617014563862632769367479802466757401151435496061698483592969741948892789437351650652206460958266754076200604002209664025992664435533550199024995490315473212735759528452366996589075677781704721581969810187926556766159439564033586296267421949293839206496231204134985373767194744535761006550715427063712621588524989781530929461748823505410850606302397701897667354240435843345409386666666002720599321896590409296861094007243178683726582598976843553648435347028124352449740430976720361403654794680095638337595454037646638871703167434998632615705639944885369361069863463369558361142383428442278152883044280689621542768829168596289006127112515953679592309945610089415593416043547070425904700404569721017615246515001011154209405329064351170473202040568920227449429563667033535076438362609737569558706945679361109565785930820413221191960131466944488933274481440833771665965471784899401346073407039149135026135304462753130399164592449400035702623938830786793167128274147718077344820164974393124027514849064795292193870285704469678230765415666002628771755546776502166723145553131148097782115801547901636430974465633915875046801608927849641910044935993991820939771529208375528354659138911427538290168462150625786773801429090316997997610200746058075374084582952723950540615403223061097348452311737848054818971181986772825064612758552021951350859144624619288468457790830001970841888258746054338656600200858883559708934728300752222546603247487240032078715502442434347336335996244146787728474506649212705831379405352194292444079591680168310469495924654904783812142036232275835049983229927894988071066935017920460749366178644169077577431584379224292957958020562562607939703958101715332711480639215923294123979975665480182355400798407460136601206800473432776195172216971807361156583651345565489783267324450722818493060362437091559289108837881978160224221317734519670755110160265307395662071052527993176892293689089070879535808709327696531492671494207290250036906018375423459383351629956001735130076118057138365822217774125281523987105811082807768629356700317561429311164197663397497034045558351153870867005973669780570698439844450365497596205053219741016815282647344751990726437538479555620144787883732169074683024243143303970324386362826876784311877249296606560394495863661449536745452463963424888461342521366955409797416048864548038338991386935365889257777512580879338524060138881946505423624446256102359936244732273910437938699475416800029888849800418301615073209512258287320616582429004745820285494876280651572703757688964445995247012531810358828233782230474817972775159857505505929019960415732902114388115543906552370451801133973780683163577230985809547098170134263038320689605325610374430748055186633238909849153246392696552158572946075323609935413314923875715298506959889260557627158143501655321498368895157230542566847318800938613872974611828929638311108103627777913112935572086790477509171071032205708935043142522254433203865695648318248906068758416602621262067546099228985629643761984568068109452038672085592172866532831802460165012456472806536052443510373916996836216821697666537360644402945782452530746852922544441153484422799719128491463939175751331886171105641069378335952847807135116294419283890071201467001450600331486795711789242440517523970333226315949511263928818677876062263001451275958792971401541127392319512976619071230289650968219992949190034481568050661592640141961789756814614879054658129147091739208788759771993919457306961847960488741935682511794172511260304744011533510403268833833017954796281968602065179699131807378269065001400280974201166382337377586053501586665817618229479639736081573574123244682199592482445683421262266249293218419996364063112319444746976364531252149436802036925223297810431476885882323395360438157834384887268129335987582755278779544083171095040190513773429626220515185509928031101196342172714814645997956669287250590683254106056999545960465106999728501138176248707268093969573645821583990733594687568152492644444169464256594643696956204919571412942170428278296317566762136380400981764581388134991995440136194847740488098495843636985127052786346357739479353144211508004766815407312118772352804156045291270082658330270996515674419451788771582600650271191929910074052136909109191351047922255735419489872779320473666361043467644163607757717771616064355062045375729900206204262218173352421862853384821129112289888589343881880245238870086976020393860414010938946531481127192493543774647920816095466747573815736632891048355071642982113172002643376902550138841540990891729951272377157468550571005736650228002268060524986427508031896759399651955553669645886365065957141682708210579727912055528287281661481821947439005144775561335708030553473437562534297194787876108640423429827674205061577270293971659502537811092037055736890708260524292745895805048467067389541305643073671656869104539927046792097986823822576525701156231454022927238507618891571222783842590323051351130966393747096723940299680630089901433999634611346881018792755041254229513023027739969338803275025602736878028760474010270611898360606788087019434017765352107419979200955078342838067446808022969717275302730549368823348367791382483438898004859916747305971605760462913428348728174785448105242803447046600453492483738300094013560781499478405284180257009303354132982816410494683957251599478529508799165803697975808327687952321174200884728549097401743366667049757515072931437657923726103452314699375085687150101949308509117678693479533394978699503152473074619902012488934651726356816265683628270283526712114498078515974624249572803456000694665961105920096465624778240866790536329142649153063026928795642595947666153971836793395463959345202212273383978483584322926773730840128057680307199126991360498560851876797266808526328520203211220227571602505826191832271137642227000536067369767368180400006648460309505358667951099990714174484884963209300754569393834044315100858036974308415486976837779855492300611394714150799813889301585943765860203711291885707502837718161372684031530139310205205584090597624962930893805003314165885113045092984523596383976875112334246464877454904159435100274814523408552986854582921273521306876783848888745000655175606514541395185485170411631239720502124987069915981080059122966880015356859950361274713598210650587048299738858149931169045954338182048270702117079915219333024040394462317697597996463156264466630979467342117701242856979782138711035133377824926550646206024223601620439666372583962810492270323230774159783943880640618696092821794886566517359750342326042610547972664103271468848062068204919942630438617143020424578188577186359617168545347385376210824557193314610110523431387115423222942531228903067466879880195201463134318171947516924651173526048021856851604231878807039059250775697720536757520364320820300871946493455452404701699799197657473197313700391470115814707227837208614519928357795966344222921391670059079612661931298817151824077540494234032806646551395661236524613324274671401327151830771850801738075679641529556580104264992666210439116032789932933671966480700671177339814528991709968876065239587632917615790526141629338259662171774250728953961289882648780782738768409352399131879780505734231734786580525073613856793532266687830755066821310911607292325373375135461714220208707357219655358637507166830561545625194278233512750246807285214751498235385620005887031409038965885781715608230675709223415135541041127099419933968322341592754537913541345147830902769719587183928644775275552405126865260756427114191511549987272031916407211739516656371565447820404704937371363547527838376292767630689424194475623045718120580645476239666119195361586983097435518939044072125065981835269114214117086952851668116100206541222440611422549140694594126397228766942251224791720222961050496210218720883294524131364127953429877587179027065445749739452486745457285169440174065980426374749927095710937110566291504103263312974909846908320547098944643128480304680634948272695063251721214158065069326525477080677116399312473010059642865981410073971334323865956471106277742718062397905080249748377013200443552812862534787433943318641541011483793178617594161592774384513959602626960520977236366911575139994569557435042947078079024492183512991170601646934291713024007714636769932028352971388509754597828893100010891123722128046772215912603363246002624187990613574911411831223097858409446428879399854738277040729726079041441968989831287046387351171929351142245575822460205119408405251607030016703660587251070887569913653593289565893224296838415192917126762965119600291748565932691691108092768651559717714355704501825942579451429969166363553257262013821614617227171431743375814963979477864964461841178354905257756461684870998356195317111423003994188391811796195897632481419752482262791074532197216442152176368845923627038575771200205867677073199632689261102593165489919300986627693900405220891310268834987383714930776705445188597406631349936257378196885398076853260637882950051906360844155172912400137970141606797364417812301797533386671115517265763146578153782033633778165575617273672693757460837300258260212754606658714401396059499239732061975564946905151403688329924109335056714673881025163548595639920781653869435514048226505386540968081444122359422030819400089058790767692788800296768480396415838772068052653134437592031604791335762898645720250340724384251710548844135937252825903386131919127485980635142097722111851680850497020604114949940467639555962041047021044509444045875130012979756046855369292411272750338165015136186911020025334398820380569833956162869586017975783796772527768602444497845335849070030446560632810838283098644354858430424183676596770545181098279080236758198710222393583220372431134222655765078337411838754773960107239413094792142659615644107131637430724467333452350064452703650555886023637164896404537781958649775757193696313414396000988774720394348072143300736657383653905977901686050234611772064330546216697285411823510225977359982259092357075768737194360432001923681068953220927239969600425850996726760195718595948323925313549739307874545364446050944225957506446650703471322279034239142296904164862023945541458582461144447460345126329382120934510682440776059933599451213000868383650583266369759040505258517426427305162065145560057078079193653470202535718798084278021507965614697742308215995284735659303198976217604162411460988852251475727002498598028051995214443610818758971534634637700013511446185318193721028337801870212095515451172153730604923850441951085791060995352808417283249793861160258096475860532863350799357549415717527681731743656198405029498598227169177156651215334171633556651694363234257693158679110004103131737070971568561495040991498835218359381650951101798499218284115075087107024013218163682811532025967886378072071334490385044362635850854950566036098416365185424320880834535589479362764083443547392250418343407807217031089440169537697059770838874696467688256067051603248437484025499077405781725549856413057433570387373814294903219611389316900160709130931725374797082797859348023320439881082520809242774531124323436813917956623344763097038592519699327949408745493422812634299099225825350698140653723518027534054711451890594292242387393462302603281499689906422896628158783006123408721533673725032901033776204546475853167480474162882989145526526500966730158025201586974678334237413587620700085484413865623204659555948900437612577516180999690237391911504566674955714606415628635725737521009385114851572736258270969353953043894024874639268915933393683882346407407643004309822139850314651571620491970046865830002790028975212415866213974307153332028633109724967219880119966586447577662875394375029321431114059907646765280221190689415435834898567199978525234722094100669151014074711387740697344629751494545592624880157586358928960920411626505417704433893091606203179991248346808804711826839808988672973008720394537038874642604034267320506747336675251338607640151061372747851613200349609644829820663319154975188293086480616488370287261997087365774895913079788401442175766909448342636436493286132794661306297950950110490390159577068733775160823969066304621128574760233258546115556073687590570524214116750283690376273072559425227707904098398418273148284425293230711444464660371989796974267696526800131695730988335940209920150867063149119477014553428103196222933429095214021741248752869303817405844871982517259380797173615417322128911282900973024672368821229292157532791270245704626811230769129577710476680065773589889335583858490039782199766668032149106863871557031792532848828834313813295447822687428635657044800162825134685595641781492043198181704753621787497067908959722518544396710282501601391829475613399609926328420064053299609752050288103432070607096276942915621409965390747760271148795741776550943808099431830738817229551181558759568948075276382530551521921941548660244963091828250712800048000251218165173738920581945393342836624951243192487233814133621353625271278423737234296780452217354637456614589619867222782534285486832089055601268038637579682866013008123901701418513271840154847166026800817160712830401316984186055621184544252388510036294018864291325860437198086849492847691998566001747276373366156305841958738403262345731633016065345997363833763915852207108875386437735158414938264355964008507978823434822780742027725688490298569255610401809728892135591897676357519866820130669344179948192412604357636633555776365840587693129004356973022213083237156303848884002167238432158195340143654856818060532879687563124399585852047768033263431455355605706050248825164961852345170891568782270905103083090629260163193345383029734265494321949430418835294443747399301490162032931239508563992103925120743073464582726104929201123720370320637698802175137592791134069590497862712117256067578343320132639502021741869087302018118827541168575254583050526038417674537485618932894409087799920444606819361899728564460639456259991863881039657496647689287018731807865914380917674417195555066590156967296743919841486526733883624001073533427894703693254164153122139622494324113741337460462925172550838242778027436932490307891808403266299707437472467503552659913008647747112413745639527339094215217139610376608151222328675534528005025613860997350692360008601171861764379104011737074545592771267082512050216965385243821833013572549320719318968883562197563083319644435806064315130184718157117964818853366475690575713869922699546042995073396714086066568998107721878013388047910543323447947875461538067613306378497635664401839420672645330119355697969572677164185639805939647737559657031228015935019378467414980347747118615559604947757441451343004223186307916210105560731027752051670209723684922753447365744718425083585893018563662558393878527588776057214596358980992929647961380255009071329202543715759897146407395982995728082071276974616374708472783944325341380192376243482099035396414550214342881590648058950943926045030379687960316693312247180255751048130302597337155326653722578032702530379155097806099811675146110387751722867338270593635038231706343222959790176641895328665532203799695523488992049028194598439366063659074177932497101707931908675402402437217701129256719990020779675368474287706057709913612130349161148518986364893289162571752688987961249891787164441381929368585064742894640807507681247138147049690197587253368901462368871807621131646206898739033388232295612158016502966992686378658261010126373870426138136023623150465300989885901140410633596933881795706544292729348535799269445876788823437311067500050005362360347680366187791206390246978116279698575276283396717370524237857463981507565034241419270309192058102257159579500389467258278872881188272350263539384474480209941909352751228268148954265745580159926349328070429576946652205312597476949375415613820239742813909009504519413071010228493720357597095674326627726475502174718083342502717104276626063539992875880075171693691109093126281134499521562288708321499381193582297062649236344491400742759389713071912481714210357078465280008408843709369811385819301996295132626069110804964535980073111596206410991896614957668188175317873680328180434834898277002308011918553088201759185448052280627458866179431261633530564139003553737002694012521027987114597471177994804842616416319328775047432642079651335354063945024648066677419470857833829978948855266284883461397847090727629023088805718297134646274472525784415964524652710245338740321225594489977758423701254533264830042837957905609856768136022160490604904363732884448561959762098349255126391320507197417660196051303920224605820964606772957185487373655842264383543549850299530795653709810534883268113541142404961134323075941673201048687116785846565667159626168609552390926841359778617573149866768051444686312665796612024916849181842260565343244420227012750632360895564796792023578169037623173403948015869795953587229401199823097376682596362501338922036913372648039855923894057599411934927865633878094412301756421151312941033698803621306208654388560762646064892941076514409726281567936877672057249490608826064370513095496218270109745978602802919963610259206617568777588479826005454765572468816091395514573013310081209231573926510196692498544261841326499204643635088915608117605981299916777174053166514361063787986249384538335971922038982665810545356508156739468356882455633051369983111418519524648817843165021522076444021239993271336874052469954236002713332861985760301763070169345755999445652013483300640980522196820976669153547885862548614389400358566807884474378852917191203193389468433801770116997235378528493541470239362671634343802127081016579030409864609412994522472956703249407958869865576133372892395974339724550067732908527967769733805159579549689800866049640332287376050975672389640486765021959491640315240223105212659824712570975332013499283762239096286797200750404212121642379673322977636343983025343333291825289646110332666241980120723586060332596650654678539935965740844465206350271429282784310306671696739058213160495381894561060458830457928921334001540849473538050195355707399379957716051004059193895889248834164174609246153225486191413711119256017345278721414847574439658737971471205419215140834335937476325600029110498764313742945788475102033864392462946671599966145684019995069813298685664693015979760998906852366681963588410925308234086889302804313013198882897329808543963860126782805833322589458454737220712801302984218404843416306068541669025285450490351283742815827890147248916131454726645703824595799121514590148601258353942633902390461400983784563852734687057402344799624578580208684894251235011830753149973459006004086316941997754862354851013856747487393102009967307298103767444929508460916654587006495394908066728328334696244430364045821351281145860157073607712876376832844224647688052688844315335960851855453929598630823855181124282275771404078753887721394772602050241184365968318662935579736893745626802101855945663837425838915019517810040020041866140643324883322859319499131753278606092685284714966087889432771214934805936839347703064552199957856197345036211504315918711076105601856195477243382497469566208982221370064082722667750344509926639459392703598083167774752204859982478195356098417978598567558165354180090688632815635959079685008663099919612411214723549103513010046298448003706123487120009712237945275885002690586884313548020850321383820382358553747864462787062247225438377265503412711624766143290449874828765252624169162640924377011999485636027861894530995088704931445740969043857903690150402562136722642762424505823926334357598322532317342017738310401734740775966521349676208165794769631379442637978399281285232879195893913476250998003527392165104571435977166673041399146967938459664623590179409207518273509137705150929120262398007910537551607225266557255130844205347249755572325327810044521674845813662368671651110831419450429381294464427711147306845279432608457847029629161751897498739757749847441220675666620102829367847935941557350549955684177123734936734193431361491574195051866839298407156311178546433986607003768307326143935886865341914776396228900268140022887335043180372648526231397821268883594321287847542129460262123895516568778803470945796029634919884006641374670409252175921242468074194996901801473857732739065644326697964991776851122302345002542644075312378975300137532413595031902949173187438103143924922309225690258445779641606081650880694843334142618980479857747396266827030529287496965508346698868325782025466074622122787072670242477060167408846492571019519230113438591142524031844409173555610161244185579278336132449640199736837615691733399125993700503213767703397017222538762113963186978604142326268709780083692278477019954652564487000948194348268306637513886382772394894965882033592471102805738446038361454815591980598149759442687913530811708531336988510659399163291011297354965681701092708843617574954240091828318320275367902829398528243823694136595111932045467676004369906474160476872266793878468229308376431039410138638471636596882984338588390972532348995677887994030103313292602016079896121075297270412610224014101928347038245559108172285973312329774590873471835122385309595256134745510352513982720844306275363648231438783933981517426617188723172120999163886263862506908246455483512601417576303366712277462662898848572224346315605566744161914406423720734352538889946485863675937228530719944580939402298149906716642155013247159276885990247620365428886504713382584341783044879913819993698053650522308814527025621943898858845042574275042964918977726189794749334315759419108089110325838821843067220982761875205749357136348702765950261786888590593323906293338394982453556504882970585265515478916948028330492147307585779458603757806137865441960420684363128530663710158371749080400459833165907901734490285017957737530505117940445545786290916041649431242128014279912094048193068985714677531197373833802786749624912592575709340237278984577613680147230709638460418093931781739143482500343784307434815943467915534600285010003710594938269646635516839696355442315315671316122601347031690934993147473297403633689717237607583417119707446043680801400328429519464853593344259535221561346658192183793085680955235443107101626181683930312389859553595140514948311744510967839378809012731936221326882000354191323800109602081722508196103888721289602232402349114437567930347921459044285220756008930125027365325983774837726109110483056914917169811718419740910823309224216925880382886424985657776237444423571643752520112215840068510750081962782712558953726391254517114536660021368769180460495167995446448862699101616970952507226239639076179145183409380232959473740689501451929019588947946831924372936760111723842972777810809458726803555416263957888480808432579905012767926496145889725224314408361450146830755279847702604510873910676462482974967887555068051238332221485543616029161878964687343622960431776598638937652591011880718566151372670658619245855962808657458296159138432351867249900134750213005501410766609194033870329904314349587537316457690550819199580071114241639076311645598013830384582404777845683389212659124417952460480754993504321354721124182664684621132093519905738469754785880436842247077556403201528874275500723992606778471351711002931726177274130536036985723757853486199326427732063971856336970459912749310232032168959517520151272031651300939259838821315014716133105930417841307602455049233955135901464194199274997599195443668282043275601421640394145137809685927094507667923947927263599509392916983475497501844994069152122935739026705716395790025094874778127701856969330297673923677515109973896153790061714027358922957376835240004251702580498810740610907959487089567286896953667178821344117825413017574972165603553116981477442352047300106931341807528081237526825126498258223612421508604245460233222638667167449418286811788732947964801960053806073684719023047165632957890481755387121379891534138460092704191257390993104990164387534038492738108723263043879950191327354076090017881776280522723346676523718554110799117525710613821919212071101371318960964166386295038940807564482136100215924492066595101243873114827664641482839433842086128214792390851239327793280021421248967977324306689882808987517649291123195462683147942988007196334661212838866951378876864376894243015156276982601643022968603012743573638192543291209587433554288257265515456020298800133285531260272098769822315237644330716329496159249976737840189965487983251378954019518097646682623241348751112977516222200782644844649182684016066158956715828623622834447031426882474636847738256014305800868935508596901200445786690778496422019601200933491706358867927328941562599237422179542121331742268382322771739751953789871095903757407792577075828476251872104190287275800224344630396449028706629953761271197244393672091189299361100119137897239465907923601795037440123354250456588724301346602571409039325469765213906620715237710180667619962148626902219041563307374695103190547022072049112283011249568823794876460348670382655214634309920940366555187447712007779433007199436476872507217062132318582240149379473449314178382962186910852740784316225695430647639511422376492800723756645999795115985350004207050678225533933869846857978705750603359237054555046998723670620623928785204671637238181557466839146827801088340566888039530098293660177330855893521308918297494331175355316099185845229842359810423106495836410805584227630946721734261607929115344425493200222710437543547035480954802140534743418395000438229147375921920921074862354438528434837256925913463807692385959825893460154139083985383952335392112413325284342276044452430327543689712184075516392513342318829891388047721591885938702416067199850648507973474633353301120442646935227853493883704314901201711805354960223353024771281103794660436650451442315604545548961328904667395777026424928087588852232681326689993089012488682563929873051835285607492993533734684115906150406965973446975933572604448937831555179929614585771247892997627619428859131106198264725811741259290565545804711920914847031889912858122462559905983985023813429699334694363241499013984299753670513247007651870940165990135207921428503686272845162869333160843629200754702303785019694750179339391375610363509437334433372011848482371378284032862710367161084460880016114102978478626050445445103577680552537161809573450615095432148262722771376558265713996255778253347472895259225998123338999272356875949019039107568966287653069261697029937448061417338543120712218379093218984629420507078240354875671003825055334413898018645044825635239306789273006388342032669275574862884696319704374960000387084447619464757515314424875808935179774894126806197718722354040998564413594340791011753182372598041294436621713282691454765514361924640020835191463759736533797618920851310694687239079543266489709209825900972601936721103616800981340554310660278377633701160726378065795381348951014391664486268727066199352094641220529281402638025820950284555355149367069375983748971551751983180432459707365606243871756909678443524631440911747464635683707358715695071927306180633133437857602609639825799246803223670184450468170192205917294147957116015858436067168575751660303735148018064032485943205803259630526527433169262893292874505935295521271870546486652947864162669884060226229526325058084536625922797452939166413703113748175153191725999187265925640039083513167215977398835390513667680743087572262431592405685807210103431474410850443141784918654351588493531116948529003901833378073716545451504698620445029919881111895625261416613868856804808588126936672056382829218957845241871475735034625003204630012128270889568744481346611008760984113183836981559989466638172526886701457708613142318764372541842693644000307332514318291322361989879548611107809325387880674065624182330586720402530136969171125343127488928597953826738163251915559024893839806563121706800199450746048992193338466860042893843374055867221092816227727198663724004536847138136532448274413114673698924719622868446089109781882895976625895350719538014479246496131838926844256201453565306112185663308707002335154810231793396805903621800127625479721863549250911781137416149100792346474909112517719136976666616705988112056959616357035425721365910323458881299579629928643118872338292169126576406188463567760210093529063342828996683382261485851265213781504062099326517445047670148253969076151932996922183236013128685198421368737293340791963211759543470259098342716955281602675253253925089318384989915619633848490558567976634228844270516257690682894656786353260654517649549339501140405883445314357192945971977195133962084326517260957840430411176280886751629281326169232802896541665806502195407757406369622155219311550031747018387592010748036310576286039385478593386341728276317944439943582801382405757775861473096901559081945010591601585461614574679607658213590142117009940870517160945512735792333826400271653969907946046248814817579240495237837600566796123068741092145040085562843204001481006413239355279589720958157412485036936772833271274453320679260764589130867243865179370166452783206535390471951726016018849148719440799954540712301050152044341604389651240582400610008643994611890006241076623796995612866769976098121070676441547303169001465962769506223023060797217174044484293346156641547145850140887495620234873796566470350761099590171256341530511718202403209235298804553793641234534774620508487591124061091060810278176007675621039866754792651226423246456359938932778348869275034367981133901945935883509043753450336266250294861570032102386805378322858259884566636224581802049914480121341027430553442812244884448719856338277190388450604144198314821941818483718974072251311950347024079815858731326625797161359687953178880012936253822719031053028383821979892742964837024791740645070710177736630174356966754825619820478882923898755005673098615784210222886080678950624238758158029147825455011619044766510211999803107915717691405338356004321162097237076762121920535091047131535959202878763849788332707440564778251352125571787086850899531335090662679941789680412788012537747494121832935719509347004246078847131294342891221668646774266610144954575629355525030838701497715499185669157388735116435211230841618959382723271548406146980860387753460055641567922175771330207262223095128489899344711436975236974874967158017129470204019062643090472695924116341141440076477427265862912914521333947305471468187184993611411900193055694664329284031041668345353258136012941653891564956313363758766091900083314013324712328817304329790469588371796690490170953447777906757004362777450810316378230691848121980240061435978596422529354553835532710845304512046243934439939352168363061113010718638509498559161295311190553412290301534113089687846437008324933468999584555830438001945232947700518172000275494939064974509020277145406253286114843006524217563955561619217475099579579611375415050642380123373851630201354825958316483984873107008680899470204627701175381967626674623417709925815052907966945304208137205937734298853538696348050622149706932474453711644976046241489054213160636806129611261169716331703365335537097162621185673951464029282797560132290671365938508000018060054109924936310608259644140590196408812837336850948806037652903151807023536076813102947924735423701626537872157755166396941280111799782197392819141891590420332023712134596408403062218173111901976614567700751622637928709293108512420397060937970214756411237268322649264090197365529762971357058809871607645676772728265863745477964711382399536628422372367041310271581949597414033566586901579454651398959754910332498525972012611281733720273225205526001687748272912589228451266073026983711849177811508802967896979461211948775003985848939559620903711809930356648105798707025177044681310232852697487110244331673978129856349915829232506408698363882038233801999210925932407137834995777462390377918667102817437253880106591704845794343540446692158277522781402915211789801189431406584124610145199584983246177523812501723345942909008258461578051818283171361694362428184590815107317600598626178706582883555775114339971959262662209038304452986245804302864648184433724162829536174062667923881778676274414603397848514590596772728577949554622600099248450143557040076213234216850583573636342950327343131601206056756138246878630762699531624657467905073541731344432744883791408322229453112429132147457239796358017046874262641701697812521644727218808954241257907832326776159816818890821981583836321984195833197153969030692974361252736319625680045374464418530532647317414836798732782529172914642312340040798600513136299741795436625379427265023694195505173159490998139698653656005751126662150480430408092927457038560269170765436109299158911964268407032909019963566126256777185947493211322237495545928147018251105724952661734569245617951251554215334771605271518115084543760713638555369461118650316655844793020846879315516455458048223133154605885422852197316359104275502491169822609382070596434689236752414572996565251732973452586475430372729457296172394107213683989007473442413724478434928221818259941928272200062496081870807425741298091225420811860867157250925696169942538092648851840236635877154488851176331484057601188156676768095168976991860985421938295232304795798730312123056089333477763437130794927624111497123410403306975504692510005052530549157218684951657495285368472437202759250230310061417972317659215921496692280813612979373075696962277600713126814248952079377924962179664713253162983234257148213558990553949706670962811314015363957000269810823249693620596451836555582173657915338751731202447029094224609458591401722822698333271294793072740717520910608090615940032430143234639877012829799476724766212955428548999093880830581677747778383717319711452760242635650467619119059839090260095923863155930722507030605513835109056442833843187617167217756712402341072079846778302164962191637834284943514851007783437706664800802161036037016524729761746861512572360232352486330839840772744867993764097743746667562649624061603202330367285137004517263686583529557850210615833704888059285438521083014832598997182801294811456165709042558948841061117709648985764545038688506629140922869989181071666655747502868012753140301800359408925122198397542582050844786641522676997889056793892378947917342704506126078383945401267437209153285536870074694786233425205994377762633656197635337287660740565508174382072137031184763820274641391520249474795473181345530479062641236637534846856585396622856963346895503770550931398757575290844901163454903268473289255457268921093601638403268265213296172721369871721613446046110974169771771630100144352652175741477196186105535520104402953695826901590655480807071492996607702137558551307076119991875013935002235588810111508698461061313343880688266682592311247215936083241228674443479885836661760011777692739950369887414766100901449841302741644817984170246862498141790985787467460900484708016597813368714844054943546217600842077129587897330711902414938648535767852483908625407015367765345660662201542032234317631758555971988228475087975818721626785044889279262906829495640011136091691965177449504712006477664408061241225450296314350721575583390029895946789472703793579662365541675927316207412474293504863636416519215119889102463871896746626066438248974595087508891071001302078236446332226743548340642076563565789455343220867731745954984619879175373052146317554572700773219265548467116262993399027756140917279651690996185912780413987444365679446345044256146904441651627013469299988884040471990039602879401167532815617776792411793956732893911162740769929015404862842640650402953028406094958675182081725731063146653160512555307466306020097540962989320025940914366799470401353938931900857545355445688048885690114669235407512347350635027591584343747524351593088636866482370776286306449717560269137535424767235821883514956206295811901320601645029074151957131678830326878300226157511840971433548673616934920312163911333728069053888407531091578007645702881861917382334377160535715528093794916704477949298687316456090628277436628289449616484555084210954512303124925487439364808323190488562538473232650382293962351885999419919162653590631301679148070626578113714567392391291238171838424806675817463630591618704188309136451339479057581150266454943295112360064756050550677000598510176422377007601568553718390072594861355756847365535598715386061188098685888824798596378907828913934470684298330347721985096169622103309005950466547655781200054404817468291345248885201675275556953974002038725138022775542449499459241527633232257435861927022465553057191278774446168086216334536804216690873616789464478798857594223819175617676162771498961117178023475145962788960414387801566748370864404614630265511063918200265234722280343065299927400777735725294014284149302891901485240333653913981099752069450230299058036551665842141178665838012523076685664999203264143430863809183678222771060887633625529601048459729458649236545614563238722239290552007972581603636800182776056694062183738347017814502811729621273829751727270748415645257574818606918073979896430392440900444652437441318948186426816374344904551539865249195281638378302378100611374587315067174583002974471934789794113887290822055883764565019372506888040020214589515131941132611965219090742511760284701672408497806440152421899854009267101278390280648396392687532132215213377269437251606275052439936863547648748801785045708924536994968275844751150332941118776907147519908017005847324011583949807027423371311128299771591099937658864051697257162719887262619228911383825814597777985755862494227858214741001604229693463490794441287233971095223577625912776649626469696456907837992683412278440748882939016740472339792587148467304615045147555905603220628304580177184741603619374076158158477881894818305696663436906596491967561099664246773431888654215620707773732687200251251998475354013952913778018696842745365133512538959432195466734222714903457503654988357468552691752605137627434069059907159872705792572853213275912474128020111064852650698060786853283685103056532341175521632546836224376290149163757207803946282115084816346905940207635630952330967806402857527956162868958608487320569942247220076867774799202932495972274453480381029649921340869225981079791089533965696682168013334548882221817254874291384138293349196829668969061793903341049091106731699293835995783407486083387033887168103995491848508093321445734071743926069151107097889081496040717962123260986960874692871052269887280692287172818178861609057647800221733087222310194511106958223648464742678874715830927902855465613844063886010072377251710296153840625859851457507261477549042870446954871472727442547019879921404629689387456890112616230526459183422019382177635395311798879673083658784649421679095972698424488810330565640014419665726628193048831909714767132618936505379486073495531817669551720394512702446915947878398772510846288270987490919069044908086663093792731354694894886805155965496078998462080350019062431589573949400288473262238633544817724056643427640083650890246715269729748368179949013981955250742558638155192154559372053418801204781900623827114903314345559111361296456238472974168193917333888706277064847054097182554264754366281429479497560337258504126006674633326659053557905503907062497486035811805680527082419871646392337229392903229433099649556552981581296197615995450812135213777392290637614747051359050570262748508279729209597198899231023356125295495425109920911750712680678883038425578881967327810629653937393423039229645474486175773624691545868802432010400018283717462093682254796295682572223594478705335035001725215724463585060037650787278768657387910250503762387581142441650905416969374793341175751418776420008615559341534435050289330079238122554490056644581919649930710816361314832543264573091726446744740992159108802879323157050641419470184422508667608982465223343274557257768941114659194374706238423213325454099925559137791554367730697955691587593771686436046637449875772365630890398029875805079569839561174339546692176181964088775279686193284319106165113412944794160031429133979546159197810074847797486149009616277784715229071231751094127636325406475713257027231305136593023806005164254848763204293197883014625335497184170034145786071811903728788746792342823269667750737362033030278862466108506124652007456396719908159815301594168152730581814558785728607568504786932762158022754755681994989741310674133815089989254129631442507469993855678198577727221423659088502028404793325561659320881416694369416782004466788979927039823524002775766514296467759664210218754465150647611688236522707204889448207492638353907585172927948208597924051898314365038209570228810834557767775944942669831658014337352347912954520808837114509835418980481380688278661172473983716094684518075971294167551407353107588932299731015062294329093415979963576825637744061000716930945234631828051265890413331055636686698868613856719184682576185023126758332494281202026245116242521972983470010772442258204236414497613910215729101004145440829036404691725874684182851225504372078924661012511676310644331488333588365497538846749511578323154510768280003644609962145051939084651495701660947029626426158339256531937667572824059222816859776080953942010811869692969268880595163509178191132021796691332627693080097750206696995311999721800952199384934877478879131759993966541894710953454875422598554574416488103865452996092655539834406805794939014499321531031436545047903327821257721320495818771475059075060199296944076171750777686725532278141025669376793439938571674095131779420911521038026447908712818420820919133040317715955740698967354870945251039830033685368993664321286771699918590606021432880078801154274134466368732369432569002745761271166196454876640298177579989540540343442652756086726365037834555002387756268423303102545109649252469652231345037621672205894072650894798546822470682267496545979378907917896293778387587408887738746927091069647646439944189754181253599361235088311461412189131751646838870634302040929253368369349711701824876465574556799892042647327003000755378924170798634343804909239653649789908507542117120694800646387863638749758087578280398530970277361302260276659691156286825890507779461124032204963879601574434884895659379191669762211689549930774995771502122080225720858841416195575630050304524407603719707696305239405687964855074020890184030508483957202480522904751457831695067166262669706975460103449898927293395622166101164831831753907318173498665243502561484673074099326661191929778952657296898736465937180941665044011354157825045996620018448084470612293912284479941652882208351587057264572144685043898621147472079720062452331730695657038465036701037588069371832942499823995894682650956962248533213859978633054148423741057608190821985018893990178633689123323022603538020703952103014852569682623539619128869611585035501056761625772931076592884495220225348713751326297086928686571336860195246622846278296320066174183108174706998314343136199762805579421177536430698596765235132259170029205323442343481591395002221816102813675147301818409920448266352508683131806842955600868963156696390398334057623692144390412759958320409378412521796929394602932596733402683614526543656875833201763230492932030740673558771318426206459634533606658133109616283208167626002152795933129459213150159519282567530338892971100644214724739234688604081712332460458413628733604296527944165289983751705757944205489788985190156655949510966317907113761132561038252256573494902033967888427438509486798399746221974977809172731603877253549796171829138381788315408885477248922103663946825900556038374346900734465012741272597096041474357399981746495857499189123687922388879037084704973166910240736904923802935985899030394671761053861083628132009408488295744648598092228197591904089518988829294085540217346900263806487725659927259896263545825111294448880481280976920244848915240705579247094991922764032109797658317281892939078362145021606127687440407982219020104723174343593587653123948575059830112323974605261572646707013823560304776671544483539469641563493277577176684619169021202118833546459850477661916461263445250644943701676379494216250277565348883081944506482132507150604576012456439103928071420917966126039161687541268512607839015852698422416074948049473191161930081573569249696509468822323071653634045995700699302842030279884621095333623735975636886129955565786242583065775413595172830828974552989072260513797288776652447480757252528833972207394159286948384998934535990319030098491510019233543148300636156019642218900738988775914275284501058504859540690752724199643633158949330188473973283126670101968773438554454109411487590102840850488861991032371416322979244509347185886431599905128219225064484851825465895628204499595789475292653583533361029754548970262121411485750514337748070416868160970929798553953859455214499995677764565237252486702848340659942232481688320400631772219350222524348395466119210590924687967093644443054262659219420974089259996412034321038220940243998040024450139830383524589755278461118587902417336429049638072429125152422584569436147601291059306250215454568993887143546925190815960103284313506762286733967919684309400812831870509043925358890806787878097732152563611859773288100447347081653407016113079374618213584255743444619934997979089715611266803655501866467657153155186359407653605258971720856589136758723441531336226579895597888402841603795902621385865645407373223355438741713802036241207946168052634302599150453800883444249022352824484538826907330539020641643857368469229520430335325078142956565682941318328364758780129619612374229198614204236670370780891111184123324612597948707693465164754514841310056776775004342779314428072406721060624705672989390699550931759040052906376766368928737925388699914667932515353339075794397438972705474016149722237803975684079238818002698084984425191766978515181691743397684350832894080183042313924546497175293430650983380210582608826231962888938640435128500612647031837739523884626108007941019599565225293173575877194718491574976503430588110947690157680873597214732970670216878339265447892793905202784695332914366952027693235556757186400489503330311222892076440732232555150000896322506057103772350911291224655828448318066326309083587149581766258602917414940977700818118473129504835400671072088895656735096723206433288843505036051939465813736656636908089397968430145514277976021032090730892127734373623597676499972395230272840845374747242583998873539505523336657003494481599282159711949400399446899567377043450154439171367123935561314656178718253349316704180056009236218521546579401099282222332031375852366103961915877016757885835437211832166878539380348635152999947261080156639235766926499844170700275756141357322259322190027639818586242969824335989143868179227030640864699214843092228602869487694645612454421477361684772068101688759446439540753233341748912733853103384266534962705424646550450196961659066794503067396982726906397251408459553011201876693399145694862125957878899860983619753535863120135824765949558850103491044441957306400329775723310193247817589027073735415021214843513448092200265676087841577680247283186146077812221233350551549497706829041339387828297876529097793308134017178319942929021029698518698724019363220435182589827764361095399587087365556402172619125264407047014779369555754853329570798921716259913114244055883078522818086660571042165258081385318430342274838070194105776943919115480474266652497406944558627802040262466104762413887307682584907794081468326076131287424246030756572812304731927523585281788561581900971755463153382928214218283518204304310816311979211176365852492145217362692288656320137466806140696557823254493098446257950711425696688317384946563146797007078123772112475710060520765538687195012122755923077419666603283542572241506302497995710636895972880981621481828005523579381903124348120820814788993426686347381702106421024004835630338791700699105255541965760369606044965227136726042933734460230250096458472379220148970433656522636323186223517964616888567851240182720620213761997471029546409052218285814010222346747345578186820194969697628535990062349432050613918310204418173530532161748392771823948145141225147305450661682553303864423566630225170199694356174840312011587263009960223877990046758170378504144554158623359349147959658629904644056805408633078909186805968586749707303412963735369245221890108977696326663272138708507675529116587508089158069311974552829024912818658139282797284300186488077386609922106672357885816075907657502593313839032598180431314830125270734200513696200096184640335313422300720756266330023710455872919203269584305749091835775986490065897775072520084298839290261878608426422896658957738322725211600976776640923427523914416520255118386827933591699638740135734576366725612267406726464566994710343122143368318951862247989302177619881142754757906363600841035841950195717713112549162832198491950038831485428062427378824811048202071519328623347728232071005032271822343754623273845482383876425023091151237845607159825588014415152796297205291738237251332204885491871052238369926110970739311432295973204079152126420350136127115493531925099812578205084546714035400449561715514026679681758355817652308691405834139368155835908220346838570626003498077753632273364270498714504652848750496961920821389995117509978163770606081766924377934650891154586962848279213275905055775410480101490866007360971438133596826647322541513486527189312424265681307551020250789299528364012291948426519817357479102451032032718895824721277885002858950206705141320494308943948922270678065765783075788241243609529706575736662262751187574437376511915474498990969351917197785053159899283330934358246271282377993426917306141522714495148588805218905850697469604426997225181324004724943701851413463270678452170854488248702970603787729502085060051245991894988604168606272507477259313164294562864326794528044758543498049959048605810140309275249194290725341818399483895112138243461842240249563714401407453081298782688764912071915043529330109379682258320493445024750120293472121350576447611315918367970932938511120845395982756017544799395019476962898475780285717810718370592905371089045305629606436846703461886837728220144201798658559440936095038375842725472065214619372946492061043135725102260370324669720839187455784706883593034876133031212251844059973858719038446942719314687591158601512156438684949355387742282224551262613613555827271399540377641159633002828769406354912271093322580098751526749004285901145388912589580072182233435794434608594038009400134232612214487784120377767879776228227277605107364227772916800694433662221367507095324968202606134630919755566012394755800518329357715898448612483557571414878820672502662641818996746900256421246527896637906179049638284386469246485550643209429711322482385601700416338044538152501681136301913436659095295711258236359661639635406928302300699691895883227268105113489116515322160611770515724598326478142068015490013557422557463095986262614896364900075283699545161920209690967365409733224471357356831065949396367280202067129453405593508503045933496108352677891405497130899720123939683650454166567205195504524087303596258089193494859502571469189376008774330247797254980773808454690251083871525285643033233895804316229447784287974050690125545947119536686110288815666685173591227910245152154975059202362965917529540193031623898046739542504707336743365694805392611701365107327860757243929317281747769354394665032094656781255593883886521222146595484719263950085275789558636263467887615273890779382567742025442229311650325190486360410355122823886387226274688275715939430328520546364094412254982668276835767712971496996769258685864574319749035853417544311542603997296009002174784109075431808892695231365045560179527702992963805780236723172811697544714479882977933028848852706342868851072601491152141517126513912928197472040242188455443089422163389913760453996273201521920205359795405399894887809075961623179674054685779809505980860236980917567564149265640946526606120367512336958699685182482786987308274683517435544840340924536542442227823060990213614253967814458472651469653576864444700823788996918024552683697176968089246087951156657316169093778450628381823053782983558149820412872260527741463686519807235366182892785677663280115907478426911524313982419187908501858858750860715854214832898672755180049527262129916285499980144265067821457425184580532581871588048911384022066413860710093323975379620073831230849964894615879010548842604017522427620163586878852959528818248072672519906400575883323049131028792515369559926155733243042331838093898479697655889110021734256745941288292627245445923157568501201422627852443332302145864667697628836372069091357796594519832042310205733833039982028564820885954131979572072682751150291871111139493181850908679550936451681952857557987825110413766999998089390827173551274585420083628650318255309802836096083525474860890023139917590829996412112179436028762296231963300777454101340962700651583336966465597388531701368195437635699042665203283663575046532467814319210054557374079336708929195401520447822576427871336725584192705840149000858922952072644738714463705667142511666532587375105838668529799457249881293023938442375352281617238578780420708548686812756110699072965359893401048531621177336249215367633459298107352033028445160513922772529666233791175689832783216060951068885826187121313719650500680844494932956989353989778475207264015036247086084246213883340996686001905254664912130662591623247638564118375023285461830582743552085484550367074895028431503881249613352243122602450607061108283928663862352728884361703232871458093972561552288661519322275747200822453117487036338532021725026485629213003480578893401321324758242537321943167636605933660076259014744568429375707739598393688186272515894045143415325320725061571233869959556498511713107919897401483396793420294247736791215645841593948990943426674018048212001816428179692096001495149714641069403420904374439932050223866322221244468378456684972674216738836492972225812055727406342042543413902485071403687711318720833699327030591892456567202103590709738439587030230126212968892015356266550134772390498346156097786510986185646210821212851207284483003170379664200020259196476424974376003462570640989348198402319566877939660537142864270932394045135761384224659958992903151316301391764617998110120088708400554664764266032748912889574133119704506644978518214156947766901032683043995928579014174450662192576445193548372239155371355699388697273965398520185970651656675592606502829711860826725315593572305954753694310118697470593033713586897657302426642856401680195846480245534878365704879145153804342974734632987994714225378956898211384607738273879610050173136071500620195703725266563880478522911275861903281943777789392464613077212675562689364186626748995535697316361150590977151050915483989017231087394534122532991822547537973331393454383657720206791091632318245586803445388677787177870571681888930818179988157055575176875040938808647962234233292578902231235892937342931837406760367092528302104516225903194034263530702893320708706024824489087145631578518498253449641505003197436540577547617773798205784152622575829881575041368698873586863124445849868970397162649644016299421047834290749491480279817954605585255186718927539426701566271513815304575434841912454226320000958660843339961970216578432568660307413168965468918152884970106910029043876261574251520641136474547802497670003039702297820607644050243489317334423753029480203374650791858517282270336645082355182194101134337568373265994340079600596199996043486030368232749911969520245250180096856432537618820109690827018744079967552354562144158450250108289764445190302188756247194878540356226797795624393382014692667143205295114508335232954742611942173778853320486983142995308294192229924549234658503865704818736917936979703199634990239369572996626126839646939935865534021081700338027770822599275135404647448726117839074980978956779943409143608641915375110377104308462594389497860289986169596760120818082311439339722956796435513246780633877263086204095509494266750437795817429799927227970535731402634962774512075804084219694492019223895153538646625234905360992598717045961052660572732265447131935403483053651924372241610483382740820354354001424239082856999019454397034931991247427011847121462690544182119561325402347306812469036650692301933563717459037570217994953277181514243115880564976887745018958300662944843573277805903117811906940353225171777137494929654769397380799836755983302054978881167251309617591256466264117716652365031684630812315451914148338168071472186287518178122938829250771414542837411576756797036687727298466222897316964896111899444846411468964555911219435447775178230162268507925789208729053226372979867234638761559750286272569076386606560783551299383030226323883141622814004186380168724995242896520102905020050163570289332441178600588091368795508671769712171610476249264187352454882477149181819995100241543600981841721157879806000090079510688949286308491299463994308684327734273336472103168971320107469590557228661781572606754426958459794857154540961706238849346278244212747241229642921009217589952254662184560029956765135555606250418002926629382021907231966388771141102823501959739600735365284573983686476348999193067696834934404608444774575418731565318336701416639730038448197745045786266751743867110105795975861579172079946676687953959330944032980210425276443600676986292285652792369517110091430368282136070022502576147435798543158944159320016438445205404668083406739459583082134331174962198593072209537129973856217310977407904319181299584276292185090886904507660695865837481485803451938854499306744755964943276535718368807695762509239618030489355798488639808458439368412599211383442482391570091416856934337997362959458620522810265672321224377314512910100049331684313283923205871837401729242775171683891168579241094183639820042791407520167011135411162836571649974553290606052406354483878223105469431559815880643459548868975398168650092996840744339327800870425304080687437873358886279987099617638875437666814377017105147265528992819685890311353250086605019860688147453773531994814212334776238993293218997781719026662258956975048678255700915009589790334892438044796836578753294347512638819723626717036568253960759919210180124766249519611960243552197100622034126603854714020880564274801104807961544686481828733539772814528229030955820591158912321784011667811357358426940546993315800966357638581360546972510574593958303130258662175785200468837743265267473134540992425606280888544027701403899559623215368112190870315423855493410380345243939986726340677219948064772325445949644852634006571596113430992196537860704249249130495274022148483005239186771766797605626276132399147417656087005875740051506071281076698671257230096016464046822657205358753756256240574408664044249353682318289632292793002281151139999310401724474213188320286304688795422028829836130554727782515830635446526485065089794649602876001458875066883807503752252788376851645861402620903161734779294061154752503396462106856637167532060335455174637973926388634570774249251561847934636269852726378500271376698388609715136058060944768859775281936978677078582109214949910556044440676396336737531937049161961003442814345708457236592414846491109787719561198123427421302796976123713967016882328846939185250360670100159636096793079520581288660215848589703555401015349612954470924655441093215855852300965933985550632447950542855990943927959115249075313917519651334504734782428687588059208504852777466526919388812150929821661151735835749173184362518688444462677729512252572304280103065601931314739361805595261223475432341466527813621495748968046132484507243420393522710787525931059500656991153968802074347325215179412698915962475200643815296574422889634881037050984712189967565181554077940857975932469039733617932240149291910587525472631781872013093208492396660323602841908388826069000373041171496274043987212822518617434185575951936488813440427450399687704173708788919939689972620292772957778423317969138022973385128119150328579155154257043734958182294287149945725312476707887016981126441484979017754301091079147548276387058932513927229700466361636852255938920601302813105120131220254111884568157425115826556795840770258713161695241301932347131791248443005846024119001317773359440703759412913871579160977353334258717150888986262290066329262776171973371925429857999582304957530477131247367113409808880514142147382754075547782383070944491466052058866582564667643608545100200061964743334705427128110580717941457462784140445592765050769386859411891547227567248655502879370805920455134090050678212175406571150881406192075293855794584085052317721595458548113500394843824437471847779501701216651526016343461914952847777977725179612415682638943877034720962042136045638225249398395904428523883539260181148374993486937804946120233124252808859812757294844391294118099395201100012976279282351663051650876078413425651987352138135880568418995145565666947938172972448278582320738845192649686139198227323713719357492669478536352159558531859830773207976257242617033961765925556001782250425035548640180650087291900206305751597001547911803430591739403863336945534929656707460451347054286066942707902486534607789861773200236389243638950251047617985847953342572164733349032005943528860003315008667586455707088857731001571043875502639321046594486820801173837246499822856592721994652168805090769098132494433438969435943586690977801148004127101010598579779981829545808301581999276726390556719083566848770446883618722558633463826719594960010758285010415310052088731892312172166381242235773223963673446109424472817794767909075131680630715301626643080328489408111215262850553124149535976028975621029124869892426924793993473612011796099086996153207693224070339710301233923715894677843201831448513850308018584185930018493955615179990430342585723752685247361062806693136809849088360779513911735690947274125626455066110462177327580255346689252762511157866668113208551948079554457035681374343438323083993053730137283802703800148335583581256805551235457132633104025864461516997113511055676126614651325041665932362060928545806665000477301986017457736304062058779493839715471472129085669326213067267596306117815583318209702290449885979354024999342754544135687938636154736258256843860141117631185329534299404670068021143898586861211210368558666285662343504494814555479080152567071275326329393114286302425329687815195948345878444071440531656329807798727237251916457815787767073006036891983881341557365617676224298839310330635863268218171306265570498283816493070727443761649855300648726635219835885891681357392327529661680505416704471221334671700110870799864536140933091831039627086678019400202942530660151460630416227822215798984080480968989652103822549365087996263105536432480951693202260068652989789620016013316892329112535613551208111543170106424326023192683290509637399908704352122506755190938053561550180351298096282611108416276197532186867481372094957087042858024020458859376409210056963749457485004988791575910592358402943610268764107173767378754429304537015046586653097253895987014927869243779163048781030347934842351672654464393047937162024832018844356711131421673779571241310291511054505827385203665736241895275111890750020201647374681428557816114834617653465222567883105351689487387726716482610911775277208660693097693488800073436035658673001808308787628654309189057392947438180653349770258837908969632060276872552418089739940505329244552952979500279224932739287672577547643976414957626507394957296788550084800936293528003568317821266491125897143898428804896586886631792457648573300026666628850202653728270333706743611535326721388082220447818354055689652072264946049296955582448761567698792212981397607599585768707949368807612297338716565417822570255791184506851314522305521857122162988547659999540540061232737965565883436458891601197553868091916873120071862981394255421844515705260196209094664955629989858053180166146173673179132839113829746469447981229417235985472607707706747628596862580351737242492720885282689321446180143522061013402555699478706434388480155281142798255435900815215683896825198965015313966865941123466041407816211255499479004905501209473595107405850734105883529749564878860296744851759804176177512603534530596666306918610000249476334627880371238971051479848791642557001332902465622053584145508161253298037434383516722132372525398772307602130672894256646792458021979217343718141503498697738080442084990201016067832829252151552296755222535299431523802616592188801842660729747007131135879529067654369927741149772300943916315429438518474858169321908921529381957432566145377595450583551589578862235619099893095947081925992380569148566274857718430365771669790649264373814336583378985903045443101244249004892989975102366660715974199953355234357320297706295756670361391564196387403799082555092568391480698124410336857621218074010160236979270695875428680558904654413398307443788185219597322991738911554317644196885844891559946977648960946074846315158162482937777246100202566438133455986208999230748514929065231813716220999770845387721870386109845502140636564466986643866883215259780969940520648979361883108409679177445491451831728818345787139556821837053122742033316863691955859823954609336740963454431532244557364319644238724185452497554300829557483163054282882303737022730939379583407877316038175626517904336794431860124320582031743277571836483475521861199706240960089275114378206072609257791490815313961273564570042297223107232972971524089930324862726460108899433195490123282488075233858338677092385512141521741372394152858488579489726424883862861525832549719221274692913179323806400784650067635236761778952505902182249993758062548244479688332812645931288415361565041502180360156673132147029336850396769917260262250237796900710183873381533581333608069359841926268151353398859723553640859430387990477945086328879457517877353670067000248072378095592296816801623218381019308834556216445297381927316745265714551598567146598946025431737927581148119865855075715991853008264580697788033278841538045666295646183501952338384289916957908369148177788294865267341303548219624929286100356676962789543841439620625760848834485144691383486209828244827001474351264565556825659524831497399321685320671363184043232753659577440711780377312545544257916598276514831291737008976796301749496440498169993553250862481474016809729438109114982869213614272398499932505245609557309142599405281362707393049333099423234110949278874861416657814822577075793039532499275123816848152967422829939193042193619966823826602566848047084783213553411621345398051481391197338570262328400765239976559883433514260393433256788846797970171264248341974580938988894416639923819651909608823404969811190446167666816503113820436196955375739584254964584564547456875474728546377153849130802643092054106586012744061816821506990475080188628522179697856842158938842857287406509357142801118858231357671483902030827138740958252373129235775061175990378087834812862167754056995417492648297771830502478367386487605723686439340543038271838180773756297370332556116649962633231397278387661414822014968972447853363621794831646602559852970466828861460398341919208255903666050402791743643018478364198736652821655946901624356808507595132628785500946682762386422537693190040704022570198788693167234569706186529518105268777697506571144935704114347152048155500843511918928930688760713686912168925356991221932778556245759463026784792946757362461315839274279573532385100042450407148342565133064313237259715053402917811821457325275523044893873115706993013818170074956057421973480757368009600276366886771668862477658167163544757589175647830143782847113828137963304992742276711979987250831642042828867488639015858556913776519290923795743260156284294761110117801182320540513355325502973835276967515618838882798312376098116853155616026525363536060920429969627988468053671650321654768738204623802765476798772641012704341568503621573679603984792606822599938113997523157347783427777697340806972270760825549054986948139795887635273527546823274492693805855488712424160988224788117685292180487917095765854736431485627615321362323456099294549710746847822649176043491834181076552404601508289475705818131897702694204198869796107438839241562366469739152152190909021903087600371526553320933733376671933768030781411464715719283319377476559062339215836343606193717725649988099006246299920412516935666288183557004336240774537969739772038395916986627197007724278531509263385620430568302938326283496556362956722592877965076758362608075313746747352708382264227550003563047003645977668198364361911140917719736979613518064757005781576963136229045864333516101056887012213334199824088169556301475871944810173880002942735814275138156175992866704414919219500522617071082240756377827676309084027201298227421178826187062622830563287676349752110273366147451234472426496614247265335080682127351487754792346240668912345819610083726573991866095908184422743636974975342987315157042267267607312691419988316219617547784549240398493103619141919968536631698160337990918181242708915032247406938671957759919923816720033147705139609292163902160082609785305778614676602248273992096886605062823647103467918745276120281235804349372644611012647998558322442685827855633169013571623644888510606859534352350178324990297389607065570866974387463045084684035162314140960207036100840813998376455328840838788967879166707569890962705617915773196786758117295086070264906559156410531550293511886971340302515131884191233484467033208557556340202856646242446393831990691317405479991606062131985638264286655073998762509658057032279077595487985081553238845551210410186230994634478761801028499622593057651873259126958390675558413680515540569516885458094427600567882119256346350311253893240895694535422732585011789052964000806055593276614194427295727561667962142294030323065367740941333029992693799591842151720205370697873714367596925031313675137315276251821282064103510162652510975526006597252122250569043044067742099703786411991780473712961396697386399354997779072583147112348354928501404233168934861625249619710986226480919261233645809480131485063101731911985656565416828101004386297782509517491691253164830834785080197062845511382235169200428638217059650458197275259219266198060240998519280918925541910289626785102886658619560077319863686417633702037775874100738969517083356444670179537546112057288512520415560463772077719671115887966435155821607634054731491101519189686066413954104920346217994776694798075370565749328535886318359836677346752785771339950387545698071348563085059650966941948539913254862848697473596714825931639267541603820258127093552555418375737915638506147131127277892033159585388922325177043955526581507307561859953350422545105107667301530047002472870832124036523588830375287783635806763846604416727842327832343292647373640039136576068166854861795894817618684161492430118070791101180614934404096465962198015779874301405355704324594626864673225856103202891465297065276120389423630628566830467293664275187574023520723403499374779921250143733424660013554529632665939766436113584215474589553366318939177942693015570503319002218171228964837923820233608212827325752133541724228237855620413129794951666346523322296440986316833350652865528584526302202340678628164161218246869277458143497682999622036305947014197070969108641836089692195891576454496475236217368508609151919456617513582065681161500488214821274100927398677977076457241324722522360792102156951550798620734432572585881141510661528193569080510561912111089634604531398049747517219287304424794367788989484108063669573387337626571843727741497542836018577073326040594174265037391125474926357633572442048762353531187114494971323114786401153858099747043339313738191674811156650991059946466987713490864421941963612214102725738108626378922330093356274551414359100931945617712065922343385041235261429165231012924179807952160950133823060501326200474738445669097277205026749605183504649507538585771876867530567540122681833182602723546218361147076111911174470513737322759534520743216778450867200551438713573855068308550126697808146983207912649570162658373816545201731968426453990026113633396166003265314807638675047245193893616490473202438204092841358051261219681144235969097018776881008558127081530529293669481843138388965705519553247304879137721707814138530466202981779556438015745524243278424133763149664293959914809406277975392450399885947392016395455940737365478053327974695092623161901650073433133724763349534243059279590654678013520599240620539595081227693240178849105488677129026168913633070887533399922315026043303067657406682716322888401983423904115546815621830820377300213431066404082726839281068276165727514158724127451802940210650445782697272950258929673142875719258591878544483060461173527107983798547712181661667235608399266407400810414080352050791616426075892516598973064650638654353320138022891583122439922374020264699973769259088621519539227039951391878236607089444187264965823831308493307132950799357300968443313778961122810981751757094331437081836721947572408407196470369725863498846587380441835699833211663724953791300744989930648587475596531873603027847758687218083865030524200450202878606291398162211642733548995471772633505473308724573814436707610093956042727045856904783809870282676223591978505108611990970987056035619468431171327436042518734626176481578559141612456941159770622515421459049687684631561586549718389240664818965405221732229954508898219032709093691892678712439355949622675444013951546512664254893589620632278288898309907851941441926814530248482494163904580860951491577326227674555600394651352933676697024208824029163178873532605254300139004695669103226125786741814336478176153952449232090015778969583086755935409217986456229935398128815690878841325629387070950296389174391637317571274003478559144610378080242108370050334965530571296487316508639743567703838006048925304488556444868522790421434260790323512334068053757767529331788378685243589382180710113906696103810917913967486887029828293973390281399280290075472021884289831162882663532940926335688403932605044601213347820195061829213442225060055740340481585461935322881086469390973360718639274605782163249875361211907391851257082612338786303552118241179740810644675470527947452256720671263461022799837530131226040019592021918429757932820396769154375618532743418813503437235167924437219893231147979670870235385234917453676954998285697058837501906644544183097224554732879927166219481499757194169299802371637827045370526041816521857090149012256787940524377325415221729141762608620263670481329714905221664318105266306263645451798704981195830000141542749916543173399336639152998131384897767873427657396530035269551389079038980864996392569756081211837641812858378540253348592143237056192813173832197599023742431886810609012840074135603061435075758063123994939879775174376954949218995478133671540462986831586884703184156711050870406140698349974582447914704400165184453363387798355914965810829134949891163092902441912402428017691451376464408989618522159919808600788049150581576316671410303018766755929325563782370078154096219729980471623459649541274067906651012404983983746859704042024763979500169452535102297392413789772631521007264450741916406320663854812527713288161125716343743094346935711310049748267738332164323494750118174204243125636772715696358073245818933474306559595627315230187171537324672794517408416210085498036971701715603358419890012415858553576203849190305437917647973625353510691648904356535064516824059232058753832803758017460074272206917012192963086820275954031951712536669968483605902473941824947071690082005293993008203333580254912672184423823941782773730820485572409332572599115645525247368906932607748941327760583074283583506916733251745899605758956706334338090457471116168708796935792387126211436915985813790569761148779833387853678314983341497579445065059361346798123219338857822282046875791772955370357315711253257290720219216870828755363626699220171213276647837743476236938866271919233217638428477730982511779517433357644116449939523530216610298443300930400181997382733795443457885227470925938439318150979647498156696904855859671381114924139294790788840624846317631542510637377887977479615523737236837462726828336233539594494856260247246021627093390718653655022587499437824461108650615139642032231512054393908066040247649362662946727619334372508600143695026198619149436574922191010628441268598548063760441541228662483854936256080906749538739620285202120911075919844392960110371940133407018020947013612821879974977935409886312619831657378295812640490897766795393089850986202689018550384838423993922729206174900704024025977320593244481709200429480863911596437321656241929919664968722287833894598668165167141807604435515699775957729888079795558571514685632445280947571028395007382656999757758627489513595713039282493086093941142527605033430700102968912931941037171912071400961850102838756481278769760827752766874853907806457819823635181255993523653503636847605273438894923101235773528450103040351766494632173600240343953100496783916722447102647647654972098253553544469126801942268518683953788085306069614778731909251988800984316738255802498347430416329789679287149151496001555247786625125800955937862952039483991779216002262776588740455412836959033076412781759952012238815408161778872895751876117411624243331571128630720456387837965771474151490293633983050039697316935083165870272311005463240313346959520459256262288016503856355806876402610547163787451323434028435006834076775796870802629016965155025206677789189232765136280624331440037212651915475099802140034421020936507894647896733705425995881141989564445314977154657172331247540688970690389089406760856787242544026089515051972440183674199602074121808157875095755064083156978608049387060356554230678867211260519328161783724158686335918737453086091183899434612983929251967840882514107236009288901056883838431581185146955027911768835205096926985508348682904698093123255903876858812095452005384828073223582176618719667324168775610410464091330596393524313356558287090644083234931734722734738433979471898874401295832350339183013058512384660935586319282696224136698996505305215052467510183339458646286399754603085759386765954479275653734129729372787339445829888165443740209822015202582083476884235542774961933370193375868501587436177179676758741780616581153882919587763539138232797573215610126696895815320308051610907326189243214913011143668188508672025204097308250182894514732111778183373346550781457135898324204287251505965383684721543434579327636766660165388826943670450575138058313661003784543728898321958235609439949822687808728542108268792595127375866218008067043198291612122280083048540808371176803720520531666726675333647238808753166255528460227572769048812182970907049834205108094819995829915719853838196810627840464800079730446596602715212941848063213406896362938056178700808738779222871373821174550115836857941618025015463799254319976612980880605246936842350398825780016391665468114838225820583106515922433187183416338075317073135205745070886101192166442971747678870507459195712539922728419184095577955559906407060293798494187613366213155648589919650947155219559058851865343860927279709980630883481431667024167806356826647862016180602765017623744265456930855299753181818953764488227997298844375123510176074287629331746604697581331669397404726001152567367095025312286506868959672592790646112723570036996652200356119910805431870183065190383216414911753150707017082951929090101872425554410041766970669480495473095384411130126676284196261745164636443230171140688540278276636158979552489860072577615221325144278699063585728550907524192822930999185675031102152372536878747877813213767929804782814437915380831340724682894702686247321365360926114052745930590174976241059834494823514742955182801704669264567057233257019240984426633927559815213634172580233707701889601027183222946395178418124495071350192350835880699990891299947289063296269251694916784890566657833614785758755705565679680105634375766882485961023564674857241078857257337540187285177321848920085763314674102635458372879514711590550896396527130711983665197226534081931310352661683571624897306005542501466131491857133359290735820790712067645101839386739197930587592082429686321046518587239497054553942844476629931794101415960007292627090091421844207769134685234591938500825583202459175962992861699772487456508436627648094950203039285865426043281355911453916569860613862172854367737522919933318605484969997862192206777388196523669422413520027149630240797798491679371921276420540636005602578556882473671614997214084658383773355144635974839468192833290898809820455641556020295910523857852467650742894801929062252345992072000801264529405530254725655020100880554524939795725064191417391398244575696165642523106929265029233551487350719296582529607165434398531750334222363683489844244844595422718271189754091396025042061235381723494351242497135307208858461208633227955867307726061334734549375472832319767793224935565364003666463877756479199251886726551959126776215442937627171790054134159748784448569690589039237442516876807660283625250674964671316747433120539623617123443633469637342279246223884916314306986505801548468170921161164801501089663166878915818683728143402800836567608402150252623182679736178718530711582743195623971625168725164185269283466134758912917637614726665622582501960219040328534052994810718816690236169778899300415057622169492316025830424253026675807937803669528135248092148754995212144749456394886828016226351094230535944773913962573158396908243888488305099891301517328785982796122507849665014708482045545370586785636895670242761742521205515033916383370935537693806535522964268384240491829406490309784755863842138352836914023617493765360852646126403050052480944246792702351160041137520750448666692683057005863156741306289483558493579084809648792363003777655707378005585336383268430679604220975805502812327511904472706268701937432226527829076899640618353591206137005513889764371322631879942904037423297817313595905035147911346334144574768998897632329491781106206808081172317814628529102432972007448677825237474718647654464826122917144920049589136535228900932514717164905305990464681321189393887715871523457936090361101806709547916789323942937856755242114102556825379200506542141535224595915455667672164144862733651352622970935092761043989692362695951677860586503805954824736113878943591791699073028793375631675093911328207142401157610118431273962112832567395378989006026256078672680801676512514014454053897224467928067064304507800190316207544396024115595609367187724720386929688512129422478865667911421846169337827587224640406567784019044205784823776810615504938204706708497452187021420131351871121243068055998936686619031055869255780727410303711738256221739670076360364525818588755286405052515083571781286433185122554082919611177636150093321497659312845996826266834070543257294280926559508222831886550581119996160387701292395395910563553516708644202809488712870500252842303000192810261013174441674212614797644790670999437231722313947364936910467424593591503307050921348681093801687154272959809802633240303227544255047055832821744113965018277344485462572293038574545426945315089965924907621896446945321435449367842875013010603557488764314464111909834641361132492695239241684439688929892218892418402772305125433817897977400114452498507755904267191128449334272800313020548686144414231529092746168877912362614319000852528741392575911862553126592485918571803004103192371901213248377422515260480889569000199071660754409855768761892716599749296572070755386724531946504296522748166669395317915084694043961992028767386096172111665325582412398360454961282611695888882354733423879998736744690649842167553721496806764431373119583890404487123246984053281952844647299884861801200934469953771468346359085000331735964113876713188290687529630871872056829476773357515705507938974139155802617543193910768069347305061675998871313201570353073758903858051141946687861542407253649158280455692952868710133600390573475782617787051246397665765328189911625892411701105689298363151530754279263115138057594164884251491531328982516979609492057911295744636718752928317035559388806896810260150419126184324553847242748920759324807037259433847153252617488848926678252854374656531892283341599722655165095033315274269643505672038616615489990550357091781733296183712595618527004005493511468330122858864719487664199323758817117261161013312419445249115616481875266820590427764884519903021689810519693735561568871604138143942695965202178003233517915280932373576213615231209474378715047084584763291483398723048898723278364266327523922090146008274186136793525597995415503525897014351361810658007330140432375866421437610019769224835664327333101638688108393768368817201849707214180499069591259414746553679561473907452099462916747958042064846478644697755561875030959814013579173002427866320727076814072906531259136073207830900784032862123650636685133849540227063037317232976646113311765256435419648642804419470092026103280977676229506381426205018657152142658240835230883030033388719022253294242205953564353450795554524574673394433632863691503767140580398069527505786006099447842951879746989055183095915250532127113409070091400887718074081926098525369840758654903140379340713715917906810904951261639798500674851070570108541378677706223014870065102657508358954252111722404066529117942420600557657663125562893176856906704877287164551355833665789026014000090878098685947886953723709261761613586694625345095306311702181593282054513374049209477813724414113741285566257204344025143061104576275912756536520552272980174204978663123921291565519645078487955843917000813043747114215100045100187461488016736942864285586499819872757966483854055044429841467536807543778201366674435048748899796480521301482275888384093281759494758184329905851909347884159140705059908604655725130951361114644694187690243419581672575930473605705223152460876135110824339330500276076274115793330512691125130020497322169967342818599187404628498498768047159514268655864351289393214768518030227867287655586514940286135071285357719034633402155788896260484317775930011900846639644522760618732209799958562890610806818259456226546892939974487278907999698841461608336938005758399789471803737755746452108456420870021219738962828953548250713338190288087513637004413820711745644806380382045357918947982057838604368291060171874740167608392193977344761703967342537918058486479161056043132873805772945336552128486219993264524839511032991646340765817823896903566619660252910305391791285316754872443530311779054651910803326482542998814500190761265045041094705793167888892993548021368677113028122878385445921292003682935521961631329029935784678560569755750312750891041010058308021272666802389179959021211574365712317578077458238656676573673417748220763203917886865284348580615669227860041907448050039515490497673974342112579263735760282381796426832860992673746232255679825701705900068997941439502928395945626624022020095981781533907355740583806440655999323369602734518072257019415491639290595460867495840400539463071547229978921019359461140031413770455594195220214172339112232952669478750331406792085607406568052230289037322497080209893874103505820759262593114456637239911682117927502917254451667141137401147508930671162615136551033063529855998426022797739904207980211041776427438817204731474991195387456556135898367135595331161743616677532722686732687601517732743890242503446725184185854440539494303724659111794812031382755179912646192672795535006646585303831069600694668060786859057894498653904185828568062133909455842741658896438574657559247950532432291421183515599533842727925076423387468561955497708693250754322784565577351228436388254833150821841567189535848432744735919657851778674978382891169830314308894802977684544188385811765867058898091236081415807139970613970812116950498220970248539027567313690245561493117393085567581997292830548105950100441240432344614945074768016401828863222899153898627387558603597542559298648613293493934528698671960647401039459354728713379858494915016261752531444532614019480923168110470679413277715894398426128588812414755636918788185136438175454706066692792583699207453765808328559063729625243674190931253050903979172829560471621354254066517679851770454106449567885438293999238993533520352322299079411802946911677439347142794039518149028377264141419085899997547421844049199339678983718722971297526878144032305549530561117249883301021185899817166786073305318931731700684018000194259272908217915547360297986205713321305285453105891328691090481342344141591037776008680954513866863875813234495594254731577183789183747718070762337691874315052007671060345963522089195270933993086771656731469307761657483745914380972325387410087644796744900899751634896706868018304278379288435763177887870205290566010123554678351446049238466224880410493885130801125008457351918607078668484591376883147619847631271325310873110057758673355637979585380450030862511505421095361966476867163707002562333049624183312542936698191899995508866950659356818070496709385815335915937466804311469625760087514220190627990722759976019084953452562883608747358567691917751098954563683384686088160987706073285323859159776436801645508578602260865579689039517530154373271609316942194677122979125759344203496271617587314234679348173524681462278683011916783603414130221514182251310593654990949768328103660737713601211081242119514485808663206973753787469313358947878284617725914586982879467603933556520583337640571095245411133429773058908093476940423341945286688174474929198499981007701960571726248650269660701894286277991961098580973915000207265759839922434340156012844037724510168714095415857284218361210780913933450809437469652985074996109477581136054048369488074582671587875507265968291947584384255887485745002396338678273822931510105900433150448764170970764106463982020669703668107313737706765085428808664479716740434061413283220790997508482791167096143155925172336943989189349169588571436509200895648182101451738334598968730835055408801084103960525251189180015647554552961509496881511184282275108590027717968637656960567867970750502330487645454030890554252866035036580088429308163036782937879750664390244769890003676293737013087275462861271762929248993025571220443015275947264188150704123440557322118134879887679847211913859200904599953064835141103047162163599859442194659354974848726707923392719241014220948934302567407912909963779524030297138605167061569275701201033243310188949936408790161907313876587813945706674239594819846864125493615135121579591441608570983904767980058468177866439024666123927457508598478138213072669078077835529241743758396877822030716392650747608694523539411079116993959254836279760456809804585965155091413568953896172934997099085106902109410580241776930253889223501526402602644888340001283195942398119734031814234869622374454407831133068684613014288464238732231595825838018935062822320068417518390541118792171663020169603526118094995041380931883365557088534928127944025802990258760632488578378013234811282819918310654962027253813317338022699904687659551827788804995189805455403114308274243692905120589519512682452886373329712948904019368161507269929132445276606544938743663293722070510436985421277800471481917313602459611347235836698827047383738414885814576175175022381738629747843491971162648435609893860466538215332821363514277653326386859419220992185636730899051668084310168834246652826353358160599359322370236121026626551894870789818326791410827994049533194947028243742963550809296233323903657261105490551076997517366437517680217755961904753470395499042813754510421690975016388631360624282376101426583509113561203789094476624505344048613622136651680071092223227134472158448653661119825009029321202259084349569637099791298514235939289089667749851815229893885688508413294193964085156976129369466898056139785709802939570219131446437715757116412986666935370416021466579166485988838111546178987010881571271693670746047605146795156094937558073857015638672603375290336964298031686262956764965747545123849561483692666126594542828178324376510674199987381205930702917986117911075709551956437255572935841865459345632160052821393702590976501624765803275605429972118813980275839786815913956602186872312189539754501002814475216697842104068031261246059958703843376963443844205106724041893898004796867568973582217751210211700743195653562260610926343550055528376313248192921873702052054600565619712811193022935906295405166598999387556525747526396905181072349813387381184446938382366410935690665871545986074299428624964492941526359228808590719408498461011687540798204063453700172038185494695886108505942101071799905492238812824522972622768990749694794667848369443329138764314353732317747433358344680379606527387607349732867069890203049809387023692185368493358602358677849996008833893192404963575721780200431656676306011165648127805050525043280229121686213220542962379320518513060067809828260901404370437019469961580790050158072398307455697517323271928949838628634954483320577645693108878816493705003674982854847600031182529564533582357981231809879167809064230697440300224675797488496078144418378926632318232421096214995995131655925633772535695094564935357791609133632095892200641573728883832546558940004859786183888897476827460405696899978560879614185021136497199810190691945764191479131774659602351212050899594464492398449404961022599823635077653871214056135591900208009724498718410367456831352899212108597098390527815716425736190405050389773387247660266930586143652804948661144192563319801830441735327749081822037554729986617056044012734590889008077525840516752287087864735379537413395451718341825897387566226404849042980157503686749266660211658728962105592089821139823953184217307504058305962777047903810996824166542197145924918979033855946959308944897586336010861518436601308047967354969265753852735917617995677417473596752723791100182486351638825488798279890098905232094555575517781476464403032691629884218893765195893833848715779355672950798773138410522389792562690628724151860674619441371814279922266134711840170740231644692220958964517100520942944442337071120201216077898809809576484928266241774811893745129998951664351723240055122530056306340624646054375282708000343224346011341374234766941038477871127591850272425557275599777681242409416963271214206143109702128086518193773393211942594558107313290870357441400076285525241688209307908298570940198019355191225896505128313632738572034013000864680019414984902108266719423264185293108283356578375375242169019060856642655088752183630606093317956998745023767259211855255362416122822897874809241283802739732120896245946966013909206195974661042893750304759170791858494566106120223035403850269395835596220820610089225491900657308854447559833004785305891800587721471393680081321539618259641549556407765179182407440320302711417999959691893536833885500855741652212867216170441226274687454407228296525379832694967722524051757602239391213457307444802775400032139135226899718790580684145741036805204733979545810032453298099698683371946167998756836976070748162075383802309946789036151043903120295403757744154406211448220710119551225897401876289509220273065396448676729527030036278752891241855005821592211728568248850613452479675987675049590558189959852696486082903270671256827087589140096566317942624670883466202880904727635530438775683563864751299936433651016877205486206988591740170399389724720407557489434580051127424780033483370929686315274814053008678902636100640497992091753403124567271004810164947725399295407481603173226282543660221984182362411672515568843283076073318719314543661258881775497808644663890362010077068606742820317965289831788666865024697283356113611381931030986135889140284346294387104428713281225937348561795749659542171835720283321284672324137278388061871284015124456556452237420327662228051085540567153020871463865215655192809526172600468018610829192224214424345584146842220469770142957880903199872355786913501216108459254554819266973935330684708172893515165513265343530789927985574848107860562844577709625109571693340696546821802584891755337146411806131805624407893163544401546859604736712642224821134883091891775373429680055471471482585443979403912540986544181348071660608519576994980307626232841399295071343053191976634953347261535828111141557738862819992357483018188906859505017779459511310313341625565810297182058012321092314765073484982883234502679045180872121590722360426187117432139353118754426586456583321530295993350770489097158207218063945171821172468140710020865927756879324136733816954387013285915421648823677421023336767787488410002782859295773325453336940924692977367024409005252478565630825258120761858938941344851393042121236969533959617453025189140376281129268429106198473812587443860409124064022670813860232500401065816180966104667194465172038110675346879265909937329724598647085456772495583937137659227596375179873824287130902216396040546799723739839347798756077494442110912025401210575680051224317285094400746721324077802309595457358384679012552658920828295349643852036037912688940664302066755429072165993452606988715086303930419658261450693595970074476950188322272358483695001046282564969508649709494234589725818106152795423319429137232820418417070004681984361002109875377303181465227480795803797909443044741181610304303720810513405943608366308524128083561042512146694517544520556911664539038844985645691698573507953560464367676558800348764001119964448798258420836712680551081430441416688896333439067906663219736654950685086304306072084668668779360186101652170191073519342006522581237301138269167540186174618456302049282693568857210614875683485383969051625203343808517349585189119117427965499010203866985155319420617966836573596355116833601861492104219723132846655781304069212995623902597083675980583427977781470237329156886862206427526061217821085261373493098798201033241846740722141881654107810700367759885519592947390686335783400584742862888331589218613542988749926510371324048635751008445790623995978167337321765242450918090048457921308160064511004007349501800410249613667851417767400719216298328876045244203116063245872640778349660043092135583542554097884253795946199414209472181350224097717461184585622265285310362714343858027107182534840585564824707397471867930873327462379431001567833187101246715325047512481518767025696316592914436463266721525208333876268166167377307920424084640577854837613200738172717669891207185745557193423922931637031101088041617555934477240573885858038512084181651848220028262534124979581146613307434202152683389282195679880955702879150945332858553794853550886813300929353955863376822581646074421542843550741357102320268045901508045289577619982547820487221688623798357548147891953373498278907989237884263081522401721039524429991206560960313300642010488309248348819391895175135410827979847023657942456584461691194271535639072241909543000632636064374742618698044125462576632129944464883594482146838774349417429057011431403942130375468200599075753699243060710264955272950035987192715297650104711237095879603481780930136404265961851194091640046590390397383965797660690679887649490363320253733021015748974753414960526686708469177037946358738553525563660604590015505703078795145225839987991474809945049754175073502466149953075897768220061412227315049206798983640340875843614986149150542461077413829767134235271097089857303569204312752027466908030533487043449604589437269902663256973491339308948394436268147434355565192343603866089107786163655928807552395199228999728313809953005588555036499482111413420157379364018913124533825272773412122624417009883977637752849527977230726572650587841968154182908988826196470835308155991871314901615205149165585625938239709334052019046774125009352011344367122191953057259451772488477494562394192162571622406434972954072506295471166982066629392290473982534274726329656715822347196194925609098692355556548409286101214336996825119075435679823610585337437080900910662382976170552153836611096603521355169369755464324733136393930350024495808270051798870281685958408232297761949581220197272155086761905311608528514756069674924740199303580415255731698487480267908427362388585249035860636715867978736042097250872160000058847892983580356884026597018903588967026434766827909083141540134087534441444917352441619843814649437320543870559809464337615228646953243384253464590590907523325973294195891083411425206854635839063449202978176391508367908044684277757918082264474186319293116094901675672757338303421234815527173419878345132059729280705146548001508254832407112552125296576574469300313058032581735129655054884270723927923606487949022502820610582107234153297216619736036844853044402211565875513684651915635331074942570255133826866803477052542471269229229241376733654669863796580963851092570767072047409308856707624011145816097671974210592645806747349633834639999266069822195356705339443247241261637847192629826244249308363860969251691606801773655887927851384983219989026371832367726201891911075394511279585308996433577059395503924314196768232868645320717450239591021425724433548345369168242490481690752001581780891915608224255368148145598780814860754528673358592882253960688497291318799731566841842579172721718981074197332744762675301322699183328905955193013478375889183853528615073417530681001144274322041039029677872801801922284938046491014770336287651216973670957596383006526245276403639002075147041230454053059837589671154424192460046986388714589551702754286692838509329516834796445192116872801996273124650615662386690766135887770552224985044970488131678201729020805119152044198989963409720019633017379743879038135176907976948866492578883260653606472168972133814385366988401531485451946680750935548991690576386288380361953293191946254275855014784985955411477532173971435191245993917038396409525350831024822374941043119855878140005887408601348344074322841007383652918639588233670777889765931190010515974534535581450113874975261951395082087001686063666794392730522947674378735527536386653546057340613386225811735666744065028108548555844706062901155755889707351608154023908309264047501939661317460181279582319958989192075137593497114002039423412802171370439977896408193398331069620990498805428418137910278283665149775409747305704727468450774253636575459415657693161682569610017720348350467135271992764120371496620794157780919274143365261843174544988161671597229632228878256408868423941808926129492624222419425343456365265895140567705697919001766000921823247570694931730989903027283241386072287423082487619101050219931160443392734587649308846883367622646792173119124762584598587128205305636491394444936231283296287777959188529534834078365736769691244251498468201240957126662940788041809274851732269659752040066258036490970729582737080646299314922595536979679119216531005362791483229065925258273411473431769413830622983931339274819560160910650460460011936108657073859657307970345855172569785318104284069869146815177469191408645582576632936273672036474850539896438113789494915376897738069154005974314720248100172070917538854968960247492443285779791199560432008391639470494688133378636611537917549343019670906859545403701953619985629583319136618472030216518362954779870102882753372899641306134964305446616587808114928468737529718426641174590992693196226641381291417198768263474017234321429191556126311404668754597249510814127676275051350876426993055363677590908522908514697153035083361334200740349989514544721687592420037193509812242774776417818289574620401576687279074706258659125372491593938154099618145605455832265756338123629111291082142256523488492223698950011405922353144134982814007925453792932382283043532571950533062692244081667885600810472574583174271877722236668636878195558655054601189983969240373356792532681580274443460059546563069475558675076779339856506961279006209020621764055912124955339362653347474488026786127351206646051473899547454439183754804488593239897089888603765968708875273783684943289601825256320147889963983435338510318750276087554295514921296906582993307225616973095626814266659359820199882341850362683477170885764881683866973501739456686891068198069778284827585307420901791834572842595308119777019958851254524077663433319927924001822869941245704236190232163076862207447806510769456153728692822864394440509190531529698717120545192123730843012135479297378628646164097294749939135495900957851858728392789925177488269610017606601519392066503067401712326266093245418524861913438768175496894305301304681869748974454707349155336800299187688625818175356101050113052792734019742349300827138621480535792195863406677064796006925223653156744098212929473670268055358781683171009955174153830159488595182425504366178538099977304741844296060386635151753563761563150735670590418601330137449891861075582760340674334392767044145968575526266016025392730910418723469816797321558227310754767608364210078700594488096299174175759365927285543270835587029085430792527862510862467245095881979974519964522022319373777340410719363298450797793096762270487530625248102711224001310652186319823618774197907754058561440642554048130954023717339195189667939696357740666169672908896729738608826606606541284278763182100054838638139379938330417177030697796789372226336441273641781702305277167329936385735618899070426530323799086572426235549988508654314624428202566971237172690799339625635877836446248499459590534441891538975712340475707636240662758315808159305209066492922115521784533636328148138221759168272195878513660409011239600406138566841009255751193263960668277598412580010268601861655835526400946185896936578357344244735916690846523607647347097032355795910835221741712727205971560336996257559159891845763490449431361029158687419811102191842284377716987167959717074172129538872534777886807396374296341565262866712262517719072135410721226498443388726322196747972528208673640578084259289619491010941408402647629905220991606987663281749845443937012829472651519633360433020097176248026782706967683893663610639287547625297799381346701025063682165355907207620875989835910081466641303064382918656994701370190120197874745829233324183167231141121472743825423969348482605905850994144708663700923287589932875517547545315155065526218554184819437667992572313616050559644299382903626550330367242895320887914465693921450365248817629022627007205246807038865403682078640903904347930871560010238291402408671998441031573852335079901655517350698548146914467044599075067862804839778596892926216611479818796535890303048450485879526954866827221385186703533618225730681810178856240503630174240020814562409438852310081006414809690748152759964065623218806881228501791389546641337319416032271391256727780845034304158979107031681077424632190565380389468541206407978609656646676345160938246291492612188188413963620416680289397492454130004396142224511072542473970374592152155196042336365963758718309814960217931874992490182617873671689284875491032392282207001212311412355671895111102776776116453761627648684998121857578070135373956789766837208680021522006396530122853235184002993223594195724628957644524262702715607188791241398535564218043458859960225970022516208436116208424111172358181289890157335119809333465893135482932937588190942568234616977348434913102162085272314577279577898583376696127465086110426322646447367617888418700214272048977256701297595270071067253811432094876691410032658586564926971741212283279154973552073187513382660420940415804887102603017650261830812018713258494382954597282292909490478818469593566027911503008014775552061310478608990036807520804971440735876046471694676733992903111281701256451996933850585021217253365987198542532891727832566745701160747731586057312275240020599533097613249460731284175168230662580906096093331876906363399138765049067381631888273366259306759803767222713066477820965225967857686431933173339016142213233555023603062574742820784090680302499181761779331675139987007669275859979049932235938742149602911032875145016461922453408252062953656041495415858808279858584061328589848698784544702961638554861029837936124688928524093455112497833926660502325910548689616128761374443542423551071698791904105582653993279790277838996160125068377683520609905963097695221099793458191280207708210900120849139194414886611486395340776584231174476214284185376672520899059466538500870748728542058927939765828263826660118503973451371985854318499737323951167409857709436146673890610815741807612788822192050712966158747888232349078735503776822177359179167453752853874094356630190784935189248275125809652433127208579184967793381529540457086928060732448169801066477077069049181063713176064348354852613779190872988263402439048706412728045048829271421762653399692928017602377828031602665413501105976804371017784800504850935533429043846412713216677226360372602825678282628109227003094648907323568364905022090077414558589813798985207628096884087374634047571157858755302583856058506161196161959773483648979125751046695773588519837913724360091521354079379211787255735864239792635518995539238155985698375620544994961181487956672493626613953748261725974797202094589404764336340202945808666398544198689959928578099048759619234584929625094529563484297035736606212033242340822089389017606329594134055328950609270444155651840658245643313450201256194420202363981505990959026477959091450271326105692117713775112819425024753128604806616157490313596721223834357175974217993956691460546665426339076182622957474852718272441138931752291771302485271016096892316420737164761798565535884287483104581201242826144064828660501611718702468100027153265388254432639428494572025504742810760888912706695631125384176240124000655736327731359386576469067310330380575377356732285711424055276589100049674141713923573079532908005900619387924100925258842382724023912823934081963843682320979975404075397518926079330338284995246852774366486975496829892068295681878563258764077000347292709417170192702503125813741117214031941705139067524756040037387411877143751650745147894826839740802017791728140838717245041966812902149214016747365456260198450796464568027038983035575712838945355279415089281469311425776223346836737492273206399142686033688377983872831519770363791318533616649234590704405526783874958617083671046147586876075807409774346208125441826605285112609528615717840250433045025989298223205273021208767239802481180548486142033348529171686482996304908039391074914368899994713957832805384039242504288919100533318235577461986790528702343251832897288291315278979031272729044897653903232176030119134444580020559303695930887708508916232671841511283258192701859539264982679713363780373520559658396798265351796545652044568266190070952063704808238441010269957528829117440857321653251511361264943483261299897725267958225399231947328631769068314744831979539269750814826021608685003530530580951498013862519575313823319459217108556329121478956509722899200179108784342369306735221801950171980821441368858763263839816685527337857932091887965025029068920989940456024227246907112627890074995687311605588462837650602123007777916160272961310648705812816779637445205661873765853182157610811679058904098024558341627509170726546612855684007940098519583872245104791922237682629147524438861725043024453938680526905059727546408171634115827863708323149605912952459496471963889531485208109373130090114244379170392477462173679788929063417112390643035530211501456924937522361125826044606496431697385538240848615903321735877807624415186896133927984329164154961905921375185016663519471515635219714574530580236551767135147164558467910804375424886697194582542809132347823104030910703784117796027006371945807509145797265545467038129180831841959392824685319409373742390754387103533983878772583594785682898457133437357214911528263323535633083958203933264649942256852003962328271996200315410725717686963409713756413986597445213432009833484629107337011809179541135723335805746929686569343468236069202047594822906246407243365273995780377670584693230887757393675101041371454443746756597346330190353681809779518022142937838860713128359251688232745741728457982019104321796141230932371075691649584107563965120626569563566572296913131613453319739332355147406298703996613123142711848005158934711585623546749285545305742005301933512454541709731592402977913530038396274251612954271280483537256483476436882707789170524013896109287351564907094830085248462451007951719032855656045759349728782559821601252110977758044177553091744297835021181137503599059981106279417894639578465267860356928603788122366015587355614690516441667398763836894827895094542220777460046575688189660448825378730212589219534254845366354239525609339228434929902446074217018302580360044334980724460366572486338492017884934199255600661049924356723569945408085034182907547652959865531261750968465834283161275620970737354734107076425661272749357324895104394990390551002828862823531808469199939556341451030112907496051135817518443967259661167643193564727355399450706994958444183064527468427433887679241285296308434090414917167476824525346777272710313771225520502493932871656599174100181127875607167469017187240025333974257137885772714989962175050726320081719911801982854817315585082137998491863397709026651017603312782274187195741301506472230591311003703208608324492526378413214464224669847601325545161307645075463582460752689463056569704160062199328958999297825417853300985822185681863809588277509289265047544685732570145464982837077382844051069656040308059896847779155224293594350034042775525202459613626673731028757471226919429167400073470474237004144101151025995082149507747108218712281640768063183497199429918295825552847220858898498164717404292327850925762632196300518812324307597982167429373650476662965184304728049676363532401617648175510736180519925713574114426000234523373261947521544048455855343567267456723762624227613220378774544031704463605522082019544639042278504770969206202436245837456954342862255913607987729258665540407170580653060469033634633446999620175830893110889066321877405582171280651147766267143905585593591075568732666791089713090388074445943787978046134677137807518039208054858773807516180995586240100106793069236809642134921803862495655579361048177391516057384023090927338567973159921378089015980847119684724662043440159388639933784099498165950511477258159911720964358587200427364376364623869209413833250184814632914625566519188009376058068389906830970820897655641129147319434182009394091802413129232271122119053465545012273412619540740185557513109578884212660037122303976075953451403455462239336416809112734039507412053878575954331253438889465879109394062663459656189589115694756629683656636135918643890362216781410247169340697253509495744794488580691271408058071403924672869411240809245853233426761155314182654588554801333545016549954072843494796038780082792125657567086991620517820474786891317672903699707994601024604394544390535062802325640615627027892624981047039790450387871461129890887422135885975432442113934521502570232186229947869705160152310147436699604307435479744743062181394207128551371999354617491944876055475798612486030903557418002291768552062804934281950762913595532662757359167774377865068972490290721149066644802619297711118859711520139583301680048699699541915638528640843965335956289348990781853751992129268491341173313890988930968887210969679313812241419232184028422997084590696159605468441367309513818630668502397345000523960177813321263954908172832335930633232525916378526717394076674037285733449011902470352595878294713662502449923563323347671034100421132279021583808743945909782400361543786355742660723563429909666657877249438822787004129945934693138257830901780879662876676860880867199986892918018340164957903059512277031224784021992048900421481345799717598606054616372276006991882023873570412528310531416665392386905927227952043313786181599005759287566155640273835993178772482059791906277495911199126671429630617862405468186655037315281826897896747775978608714596979273199085022713856361212184925163996996287567153842126905517165858833183394327828624378333308651216048302977390473123639189218191363877839479352447317517782008549831599139558618693147538365466533628997672585000980237434811997621113002349510362723926346686305306971921931403392419325034808333645189357847831819302391767201481736077395671928255144133010148470570859749343937984107104318966103382910620706931930390245590674453595846890950258376038277705030615620758905631530225006806610344284003926174110209704019887365146524420690295105220956635401570332215128623124239398479737277662761075833296633937994479686344601971711827069249143531895796108744881496073657045754325506629822177147663014655298603546747891986360910441013021949004695960808918219909706511147082371866709771688819033128159796440136481494661805267365380941959522125232366975860275059834735868435358120358082110208071162590603618014129997055217875836623444914725867884080891015718625942384627636408804684270192166169108240338165251302899424602809154552222693882587506834542513082788733901694469163924568688941410711834568194207178946388954088428315381704072649755342637516342063474789787529840066986585528640415062264270451764328830597478863573997726113012969618308036215077945784686667979081164939198547604884993261043443930692182695315277919576418822318542041562473278577667826367423275110927792586372003253986948984918041750449489140136375811559102013486227779921424796188046043282364078447737411582513200958243330756392426192098571008436209880407509594384243981313309878186571075063664283090526039590908021672099963329353589444133576401433055061224275762742523987121683994382777735470014805091817594600460936020949979156707140157348282154606894256114760864084222359683787724635534385412040783657379979609491510476235597182236362829415108422714651451622561188804088425139285886823606036429843642391606828765166174603562280266508176487615272844278725516696417911321574036315612307975290512758525621448728840765291135485606338795206337967951257853140651866732403702540621576693650920555364184805260573636165900892067086998258349160580470860140898123189393838207382066696020269387392539284252610340939603038048801658826469908505825193663627096427295840968664763263669064033193093103836502183779252692489042922058290463549471848817537022387698702547506416206362338400922965422766528346233804478469415972191379550996829043314040695619571314318769370001892401039483132259237961492163490827456129161346654701724376474768460529577321005683252134571237435276487025669822849874909184670595658756604536744058544068232522636836597365204253234651028046685960087032979474457876449196981709952575832406064075763094773201188120728260546981278369055440038144473813374808831088853408490052824043715351694235470553511964491309551790058605058669124729840259733996312371945606853532010409007751991629982790943270445099967511445771317396397199581417998869833509265183415552331962435125226314444827703077120119369060465286058029194653446714350562790401442426273861122865244353341546730302714342088061000940105372774812605958602854141579669301640055273617001684530240424455543727948033072108835015819043618509410053186821279868562534712744878739268586466170393230839304898111754399883054089518736115710268924829038213271746423496542162611873124385610694249140972207161506447718477444068859909086486218165774897495201976236642588697214700417381766899736766492988717562394285439264035407202566274357728953453305342815037021555247419482481952423965820756604032172081914083105259359848444696474233598696005064669857817466065225920729267773205530230447408371619648903539680149877043678987553317083718982459667780461293194434513926651246110820725865113408204054657856088879960072577464636256620017716817371502246583157431335725284141133928836669454188620603570112533513918737263501436546512379987601837923194947279058040625372599922253610019485781711450849808143009672035537967125256901140538446020232609859968214914738497204435414270396016150413593530376934496853691891534616350740125173053908152598561124108922782037168626106018221944066048996630104082554383702880912569606595611243919325689842666319301508313481265978482854995832069572540292043301783133223413407805306118725245739143952920354936446844199400637471783429839455151352587381142128833652817013534318555210408486182840817941020185182634463194141007689016442570952187005477119462715070346458803969561182570559523645781120025096206272954930882067215472179085247373545962109176420949702311739109660713060001270085905771211449303149394342270237521151006000120231635957342768751758752550371434784312292618809862854400260553475678455952388428659446030950585390103761176824221112031006964962736642457152008026746817609103507438997242398469965395859398316313828144175410345226497155824556011501699648130994174528564714451386618576255658059065192902241258252890653288686274197483814968927146388682994824951754947377343095606516989747685903911425927988301427999252342701263116566955615163698373404218870210283938518965586210944004389824919135480445151682216468069589341051298725392004455600351238900842085768060690018067647444016861691997658919860875580609677742823153921270192293030452912125984221343783684451738960424938563788414227306143886717526681666165628805666218670045425426713221159361717183974634698555034153596824437910076701451895900007069338915046222990506482874518064654256909756889698619083148345119007399660701581863346017988320579779910912420860482522765376688104866621575588323352145663119038310863215257117966642982115407573355640064174533798877351054476177404418856199724111724184848837637887970613523080743483002697813584861953432361957154414442935606629412995945458117771350604145221214444356316423545307433185373662930110194880251222460005008854794588644226568425103077904687248494949101675949792254007873193297315288289774957153267260120770899538198551407499592956858672877113120144610363645820261885070276104268444830725577521887245771992054280122801882948678734814360457219188789301702269680622938803457122980069492027624044200595265148044828397729786869175418280546312903763878962466164095109836226278387960581732244197603014595457328693080657500765953047535898224875828033954808431145113211069926155469432886716077148152183039288008665976337151423808783367581780352069393822978739473871217773241589032310595255380520229991610822564929612409023478907704483871432792996675097023571848289158221079234144555529085469414109988052115806939028177413882374721914090942549818566899661084788507416937354498880578087124664937763143159667717841288685137739351829667411362131426988044925192265469701259322644746921125155834055156730628715091353029638620061138263625504790970654098357302810261926109955859672263271313241186322266319684738651583558041010322372321751165816309552604879315077961882252875130560158219457307597087964407488471447176162490014741401082364456121152559950873587676407961231152525770961333865717839283758568149203572698973103240104522661563838104159687920364857340857931701138578333459753830132368649378182167406259583305021923728387083195465973446275332261181339677029347770466601690623077382661971127002224297262018788740699425054145110334162352251109142040742250409616454525095313276088026638099174637595598192708567355786056170675017647289726710697709053637644449504409662094263085943090163769704595968081923807151917780783117579300955331593219724942889200520576454863535933709328506043302883850387842401253163201620675004539584909346222267955031723458466087838431776420568927981092789912089419980051668707320235521756888690513411039530624220320396201439369518183264500930300936758073316126281074262145435212653364937293940252974408662290070264252846687647009189596012931838498500184739456570445061963323303423438810904338232320237514648645004026953642216703571439418151167142591748198082625823880675085457997130114902588566881892401298134835398437454003566844304184313003330741189961552123343848585806226162061619966140101508322337861589083564874790625168847106973689682882859145328786520227341908896857580813794476987699340393016414122821922135379829164228361715300792245973115415257225139618441070362208616719564554734747294359333148874667684380149807313060311260604188678488644351499378204713061343737708932955011064080057260619714485982188472943277918408421034286539179207727324559175339308310644731617404057023546519010651788341197347394992975444988887670425740697812561311327936731238914837571696391276036967091272374099712528917323962513188443909909204740651138482115790015596779919966535628527470808512271468193261678214934266601822312774817634131579325785849010059115877496518873297428937354634306354489123256331214748128391702810602437325270686435179583401670117308511275806373792962491533115966384864404455736122721340011351250907391018067158997180233444551717881364771034217278328644056740124429454568254433399683150194920989603636623540684121645105055676503710574903939413383471606481512635853413319885502551780661873091592569232166681771187420181544122490852000504489040986758484408418457656947713389669968343098485307179426403254642499658962400234675784835858241401995440157748640818828780467823115329281006938956096319201943399832985540686482192286657911810060101892805011371165786437358829081799477412064496458515283156119820787336550307025976303776702628328491267287001969557401824395739464408278382210430391111967711543917940202214021128834880089005095967544522534531724796007065464662954740217884042262593970696180454086938056370949608739251085383916215495382121793863750513699010517492318045568010106573811085484526584335488443139681292187423926862421941178392650700074594601825445856388146564008877739959469751340208660439812253900974202551247369223658085235601181161263290446387352785465488992294520627115553030472091056445102367554796882324451455693289379939542445245048156572264752602025572265539304026773613496597328605352325100614996539191959498472708437266030859957757408747167931740864608053363161782115005436780023818747019285444755740557402543055408757693232344597731061746942652966827920835443673602554735581629799470365981888200047236144714348053603468974370160785828595448443593731818903055985415937418640629541324710074686184003834769484963132236376526075215484237358999899302115941680170528607207143772799381581245981741744979436145569976708180995872712560717538266971769323002888496966648325920012797044593897988286766908787479935408090846217171724237776095794391639783853239174379909028560392193856536696789396421851122821170622298596187832851974440599902120145123702858125417775328396801331956552299829198694762133490168630938657671057109167103475604377788740974927387676542069977744959181749234930746091708934133060052148911948623394886571444718131476753031639454058834858816701399352996269825378460717757629805979232532930263607941144256355915904039842410936974937527837913265447814349379780912547265229104833385916523242835876257581222515828577747771183252223604096662720234503254462112416615200763060874111533853870190200840942525068453404364692139454158100091891514746982505591924154674413724300006942794653533268328118060267480317008902063495542000001530710245228398120370478759682264483862440049554144280823410989399587451770941589233421893813369460148845192419768813310407364784472810087579981615191240998482716001376078138710876063179508913096958433227271403824486400322254195317921131061488759782688456681055942717972647837272833408944693113546853583768359006349933323825955572278828843783314176042603036359866542964941528520014818198219597560835692245300109178012440423670196713040871439098113366870562943981391796727996344819374077378534254372684085467250980877822495082015504037118215949383532710491387649981425076305625108801043954022391894185469729821666081241849673790976471488218167344728295636994820071673011932493113408256409577774992962393170245590274143100449517530896747074718751938365999479622070318647796586725760332106946126173601624490160455322697965211724070118690232696454643417895512799928979088289810818284687372288745787306905811868463675059224352553266542143316045587632915015822061929091055358108267371879224382915590167325166541891837337895630343309964900001432032874369121076451396945312849557201071122788416156549956683094266131454596990175036390771011680581600187093224411499383472195169768621744699956699042038186612337407957090874160487451800658155349497545291336327019362030393600625013614177823102364393247304839235190841295668368591919857011996584397721169476635376858093621390355236129387547206105849836819985188037868453875997788213087308216050144061961701145646603895909376282195245629990592044676835056162872085480885518485689751544336341273067901636015949934550311302439729283347021057257621812697514662805130958827290688871197415983579962205068937232239212051698642681791977096241008043423133896949193880407751337186910975350515274995587911433858671122237596812358273428820228110808640870128695868312824611453093356947364206979762133930876139860377810753433734718864670867890309768882554850673591331031086624171904770681131030685209282565136657273751757784112844427264828496656658120269968329438097263403900357429438035217691225750004751775054499971580782318063447183350582838190077167682900078597106471785433785321178090075728445781535850606851251451209401402036825487592720205664267328981877849635425078876676458793087590214471824661833628885361134643348571832931581425922925359941835701264467654166979895500773275109935620150537580502055928402498144837203762816648625291560696889810869315365035002251360410333842956063063817641137829694367314573849429485590532708561008745449430971859158056905895341651953392070086780181802298966483307666985696131796121074136146887867780342093461993182994073007663217296958048115825539260241143219813330538053773931346528868556325184318387955827172120058874037188506652730589061478181204650746934645354429649966625355494808272981556692054099172222171423451415267353394518750337835664556515557926946096827688168240271825829972208587721902865715093561472157621967723240324041956925669263988380272852266138696091540141189713002622747710853627231855538801638830462375529332577588411558945207356201644932138367178095153225816352185577659192839054747993190585626712682291677330754716969388343084319941856196476779234952340795477499936373465360903358767030913661159539309572173869671846707897620282434896923038010144604561363518504388483875233218485291986732477752756260966743353398797594202852672923040208987778524068459333672165844920542608369961054533473725827840487384310930647420512517205518027731706899473850719319858683825758686164155923561572802423816466584235254204833945685223770263194587351118476823577726502738745283725571151539448242987353565736143679045203451716013535979969821023883745781703937961941705554232345122632630565573340123080163853047602577975848236648549940648622097967636893916637005228491506812542154299440760460439810415028566854611548573960391501987754115202739312312379553893933945561112382359846546480754104186254764246316275418712180277049381684199635850901492020884775142629858527176492675635088180759213942230739278784148319153643044714267372430910796813802871667088769089876040299318629415370446969207343717742961838050062190934355867583899674115154442709261333486563470530071466689786753463838920224892481586018307964862531690572537449136391237737840212742608610210657241649399599537845153591538604645156879488513981624245967659058378189130443210322184837312533478363040606159405733113171225219565159854134736675519254156850109073669655248103650006494659719846521036086939908982319617915899038555310616606899786815687544251017628798223059492772507523440431177517407373282941706118072266854178522779234562736548929137518693162616827376012328744400972768080862765907625753176566164906074069499701806066430798750635346091586748212661553594789866190859898134266581857056538243697719657203679530775737267028387371396367988256062627174769812681036624791279482059997014717673125231173800659831299732062342919210818487512298245941189746769541727938533216224362596028535693959887714271247745405469557271366078826925139429485929398683206058171273331409750472045034789961417756910685050063269208752090474271931582018375790963199400609564458628610426630010720144640108474279388985611194604183542791714157662182761188745526020121543917807763539604942463231320242111523519381035077212314517329254782664368359245183046071709301120089628344353487898526350650722645867351461699190689851862147527326019674013770344014301846827006371378634145131088245622093678890560354519322868801846495562629146868184645685279074611754127419223925129461108073834012538808333318663529772436952594473019441737620804473280843144692981746067819899209390732093787511771484264323899279164596225344867724139103301416476098280108990331306735428553077794769895427840893911547488320892368263184951704862309326825467627920174280944088823528130772067398989638480234489952476611888373918990880263964728443913427837882445719988354278831324069503902620594215138210730254414800861103288267929774605051341617839290523521299539610781032150121045184697176059594613294501011734322492307375534608852578619435680755509053276171435320405593966428194648115130247221181293041199858057139995652799250474231720101272701662162659693532148899993094615276804464684795357185978637276678839410791809214031835274031175008756480731491791658164755544673149444079605724331245916051861129073877336485997021344678864243570297378472484934785196175420336742157809139210589041117474973834067386541916237795299799150533921410032114168261082038937937799242357920536829870398934776826707869862996377261208845687477157133739001586204601364478768740271677456893021575262208616699286699692133154634977905723791889160894213669812129590885802719963542558182034602192203818282532152104748689180828822141560142256421707422172613040352582373097528020540950922076024330467839215727874066756153063894708580878194916808386210712436424212723761668713927212476490834123132382811387040742168772228738048545409980826594780952671083575229691117244298464341539158173581386594139915968837836382432808154054861555876723558009081578299564016209819224372429498702394298969766592619878601457302967471853847981411365510114803827387092607982210011489589298792649880614226894345462257662614809990279610866869534397955054740068030539679125673984006576823613706176105984236324213347743257569569043495852267149779051381008273227773369633705912791309457032817704623780851588516430855883609318191377038306886651022223178010427876638459899698771473178405431506297051867436562297515669931662377743077197719931065907858539865053325492249118906893013462859127467310999357589462055122702110628327168733150663026590682855574938877683040608943875112830003279381892870690583699056816379322603949923432625093941557723725747998670933697633005562538915929139011973747268738098687133885962821972878168529762114619570040933778295604290406731445695087885155262475184079020470064876849843521186136472678257801971411141265861876908907238096554113268529765716423257672603712108413199134198742788406615384033215471917704785875771374922769646289943328168626664652370314507121834030520599140253290917287609601587394664702460831745674521698493412436749315747231161380005343343633077649188427892891490484237948206205983140758947863826580385709539998463773317932822043135460666954278599470560349594876399287963021762744709262193850775872787954902481210211054293948368864314926416613783643653569233410176240656865869430994504169603530371949127837400301279042978982167782634091043589923921334253646378981209133259871629271604779881963156293855066408241866003972509197386005116094476828630102790078466220972375747566744758964442413724643196260765494245820435258370125851478376518099603462265167439188408280686347480043437041183336911199152424566772247014587133988387757925093015018436795608046419972857998479053831471448342410749795784294071623492129217805076550815279050785953262055428584897737213431830851472169123837328838488870258445965867148907149394884674023613717143986216789902447733273220449969653376207903003689265007486766777626265912238322020809251395444317010978759026581680434519437505970386753433134153356769205595453925626425858625160821944244939011287478512110134443977352069893129628195741375061642204286102434747300236427969612517219088321457413395733810000596969812619226384513133394760018931338758288164367201318472231844860065107505321938157325596932489117190266914177344728854122469228923793419914508277356107237810514240397920962001806948709772105612408919033081695426624882219636384365203751529422107156493380914333556936064808262364919818653660360174907818893967046175638581656643208120724823523627369326873748398020123007460691216784072937566242770319553439372204129928343039694698865834319975406635953385545006175890173873943239919150592848883306098107515565762306678474964818226161409243828763800774095075521658739020907606510376944320135540090549190855532079113834741648124675247404605872154864475777679021845013896150432628088530424056555747398001946666253812943999651455902614625907954938496305168713076233309362994508933588780735226563392215702018694766514624824813414194713785097307151008941947657966805848856786019580659783853474378189721257009614125765765905377830135947765006463070080180689194258873312951939745436995123276932027049537676002209263991615142279761778759834046929355370411050675520629295663378291056970177374718383177285203717412309230283130435631918429583483691633372624680420314826139027961786135852338454815735993903343030941755913065295238609730334812793955948552147205950199733825046929371793353832977010166685455493425719750696254059740196001888724961377755869305876633497771875797964733747052198433975179042837588514554799926799931877118212970663006715405908910154636877411414402654844989845803418550335201816530753254838814255438509598510933845403903709603821021948399147903340165428265226947169472023046377249722697374112463646907392870399636854974006178643533043528970698264465432185669092869034239259840273416074785190228479661472348652290874268962326659758122085352547367055256557350795000218642289626900303811491526378807789569953644754127543086772392725678510938450561375480738317564479819905118826191119754451789057870445561657124903096467814314481381936232242885043332109984815621276451524214149081259591438447910749560908732874183906561445059544841711788151385985652980365249826981008471420688765951501425277160233009227951834628773804299573321826100144376420850927418540738468043397802022775228793933031469361592899909285462824872901861740333597393606069466555310637678712176801231199266404055239380071540257261688423873678715376341676223344290555546618092866835186683418099996675334539878767393091892222960670216226356786847090434777747590951720579132225681493685364567241833816150477481363481413092819135645410785651491095139029839019478917728220023196568156503821505166219877472886769875272892096185699606001304475052757047063049060592102307677981946976979300939152241279567983928668995193904897610009840648639791161989627764452485750878960641138704733035804951615171790264903139932255768121694036948276424756104627198238047488214679825444314161747245184156495492502941657379703464843315035463235080705469326140578980087138363027522124917133762952843454940298859020217145904387533595971433482944441694322145447477919047684784712458790733903772658019340377886006754103288184437187685220562788711481580887582191727916349165297744081326478403396110118014698474168189473134428646816838882392621577486317624584765721773719356189367651277362998954753743662065038061853108610439603932614413189502749386046702537611952171073223061333225031391540670817267639268482342317187132512795401183420771737746674731167978063960236616451120448518438622669871800903270391888825680777244144445227269213675144558772155769731079733538619407678944207922966256212138852744464516646113792660929413997526495061076311313614345111747007166236007765047935248843725946564845921802450983504341529890190099834203561289856745346644300742610634246504247112435724452360940662077552255762061191274022957555316186158016164644857077823300914956019960905995471230476335213442363725442763526655459008003378168420506752080185784310584671550948140055850319800898630829944560142478431785562875948017992760305049516344595272643021159188504595066385544284186440653256663960029734504725285887673707742334877443581283549083650753760197274290936999587047921015505980677772726058631457705823413486584624754602740857423638995078045973716434582125547535496752233293859167367523006602848961085668221081626277717780800726894900721324305677678601315199982888514599673280327286978408176406356705309527955270386988491573605446895585334754454788232589987888054418046131599939237214394005365777988012234717576136068557817277545879701485013165264564436608114920862956137185158887571114323935694775261067908227353878793824914204436474335492037213323382995021217614837424832108896745763069442819908964438664517895746311495325195918481846863100405903486702337188132560884717584943740098483277605930900499314197015391428149070316773596564536132535588220679935253385917432205895069221014226117893551799086670742207614525960676075097796195065388079143837384927108297759447002234931486253896336577080779360762971342830151208798903504917349688341336964080755077026390195312823763523984056194810354786148598387400019538013210588614921074992604476554501877350837867355116610652217823880973374477136003667102549576022714898270559092562527498996165632343904443339087798307624776432440119559743517925065352310240640997570109104699125631748863166389383680080529544302689260762734934767004326672730143385794062221068345129356599751356383361345991701710451863060850907034730928478475387181337102304581137235273075917153581753312028101112317352271965444022752917937004782591101059804518314703713340968219613765053737858894406706564476731890487350824521349677382604933206406956043251623696319050572980803160640693872448104798593528534856891272236616536065245791578342654005492561753462264390006801547205053494473472574174996234671320742322854506384476906209498406715285928282942421991950982801629843855776845578634138200165347561481472945658112951038893186794382542501470928123721381652350159296319564776838541898627409739500023911698905535551491325840496963503848725425679549863052095498367009115348218441203802297692230772834698840462273289986916270370913033771146903111148308038139143442490110875099785495763480011938435375852516519421434825771928146173381383026145046761181778456834578220767023379949543171749675349273486589158899374273503090050059647389840080826201676702439370536478745834563602561187893439594555654262909369694018817964931838512771576382187173270102417043665406535962756482026486102132656923247705520342896412767386200041758062787238946458080414999804433129254068912083090846568804122208748493726877478921887376734192025772334101091691313152007248754503846916471145702963599435063664636293706448965408535344235761187101300834728547159512921791923540273569687549447728516108257424202713497170001810821071323759480834629481457294054549790063830503809708393753539329320344922869705852652130478475406816248216507954674754753563326593625476130595695798960023211561215720432822080597781813398091038266382334702935684497268721480672889131513556536539407829387111810548261952837821431608864191772837233146609061312094620134184111084588934938462319951043429479045616822949106869069497204504002725455745668996212355731715081585082438712243455865574903919603783369201991215841170482376643067953313644502160387791713102308317668931751586871750974014855910585557806432795219399971423337459657163119937588712649025990977323777345948108071232986818583089926860485230835274739875030481068531861886958617586525841004052211970603527064660323798769379971661810695108880609173492710293006633228266329956382716724865025322050963210391316412361553115862957604445277987419609892214610691267103163060396347783080028331425640418864585066519228791604961102171485673204887210518937388702934647545991610706983578712513544925930974500101775932449052706785190662661562962738618142012821244702571790709569504794970515293281017847653327483475458893751280941760803252795575118717355613120877255983275559760857944239180874924612357473558127386124487128674119980278088604652181374253800066383599197899879371345426735318408041657458171480723538435005687191479913059162514564566196854829380050515525991930562058296770264361393494015165350524755975479909570460573400301731287643599086274733180533844037692358356454541357253856241722975822074668416982276612211985688952105569045117855357742312655968075082694988116121431444257734482614074053519508640006309434213904679753178428380197044991060570969339228142049095830525918368547448288602749957732214919735788500687493171631875436298623965439735773777820367757531939064193688678224488340802057439950483145609968758567978170957229491816773066639380370481576263631415943317420476149040388114901843185762795807127031240195698570389812843915081275165960923445464270433840842725408275305898389640110733325027817696107203173426740105592586496679149442101804185163278564043652717838367335940811406715109979644818359611427977614885454893371057985646578015272513161254020388984297470318550114695055014567583640091237171598254672983027990426478315787661642008514311970166018945581245341990352302143170896997406294722773924508009235618557818877610764004337682825476155771412530952889983210974122377218096587898588220278204772830075192567575692120986283491394736540822175230217119547546384380865297224927132729444191678727654608035912416750285362340045774467910480369751746740196895787192563333868494899717557078808785006466456304663176398049479945702054366868502842869783185110522660066191828189848549740613461700201812361084617721048085150852683782337966488340162119216574077934397788638334750620455760740612931579773554754369339928237644401787233575395035298726831424100806263341282056735309465435539899717762088464676572386389890529295521276716596329909262340025235370191906459031532869360021032298655725387850072154713000844371627716551953974199494345627199970127697289918585622663218550203936915176850660808601864061169096861113445451107511811952360904358136965881047006215651454570230937375029316516224980074643392300112130774305704334419504968903808934879000318729499046053409268118846597005752464157353456279434433688107618961650341513773552634357989260221933651315895641028072696593643878172431475850404951033287389367506556885589969802307324930298798429833006628187019702324027454382284301648805436171158378543954348621886685916482066922529239631418162595333532744973611953294273153880745121777339736868594089904492243452577155658319195523244223892386085944453739773059384438492108120655876322145291240031904759694724199945432588373280782421298755030684431323068593251317358538716680197973171830480205381471394094212542709165351437819084470270596481225459072317470536641850067765038798297684038713649558041711380823517839798300043695721339097271057868873737442862988930960158915219125654786495124855916333739358430758359783328607646410841422516087646134977861067538334731614033930285006917449448830740796746665977777726553434920664513599178156328111373572405165769217588897248816025772060676683699411770366996273234330507678928018688331357933933663673016059330164592435227779579305747731502901449831175521567535444977457255085025483919668475623600021698380196272417951268190837443799181509235328584321489265160646872733539325325483127992602237335529360451378235574606141531794571925960055766066403309614835706551221283223080909254290389142920873591024409747796760292512817078290936639384021784151731923782724706757875289938483409302803061188735948208689404247531313663942029039464890983781389878802624632095986005856336079831825722570594770633994350832554864158701291073355074244120622827387677491749551960480423447843744193725973860686588589248537400452265455348732879449582493185827059289184072991320654090540906017996765148842819673109639691965437711142784092554445934210577526204815859917205409917008381762346858881455949782023696254189327465789639739014834212243470177359231698365630992170604901800400981104887780743836859536715651617476120926032685103799826564259737532484396728682688932592813238766301473237721871185097915504580572268028092959198047265858532952803018201155239201085015730681202839435114260780269085310701341259649521477638992735616772884945248680634031253523045530886062947133899813859139723290439867405176080687784664463353173019988277943252880617637231969485069353377358418408918740947013940732649913082590467861608581322235301097408495785441104319287092946093013817866807369066058516248394441710839221949105114111907435495577865392156750131192088499467046273168120732407859799052941130672575926495218649949113851250247936256085120997786630966185785018847000288938600182306064377032037602428813025347605802700219189279991089450072159103635015594031291498676427978971594671369289631889154285356958983259682780665889338826437972882919802380276519191986817821392310585011503001269365141581635235382702721909666873169517033356561998672811409343629731063279757345800538583032088237091164022315739284327630907285972521225611345947463140748811607137869267740328966776754051085990733302867461949864358465095796443504575036502037891952196406583959890232375964527288361944047204256519188292148039202698816210982599768443948711446400305094368564102912759744098140220119170260831085307969138002208663590719689017371703745430421480301165478859782524185585202910236792445602659426164923846921552665212110074511883388344283181616326321434041770277995652349686993469547781612076508071969319956932893846449764435346683246159422216542886081089493474822636725343785620291902190613654016183606366174208877921832218537834377079451349897790421768848288898573375683682647911704231752869893282013457393947088650372774718430777337825328572170542275512696355104516239492818395338894859850109520907222304378844253411048274523457054436346922444485150038844814186205145187602971336270747259604643096726113430486196021826294861802394589495302102997361575276567919714911983627337183360867713660813136256527661828004325071224675477166628167426761551976505953105428025454649633349153222934758598693360853791607567756283582905645005649689209859394945132981015119472932976000249002849449304016636730154817307645363867404238657020614425660329732142371734940573696779397681010197235312610903197802272185001742422247969220759061060293228793492744096868573282242324754734149581941097356064120848994978129764399254133706920031898695877534314138730807633888468200697832494362240007081996395521140386069634926660811492885181966121017872602865015468291709504789793160138171330485482263146820686203334762024050329449791453853315542465705894430172481683095669340043640424354752628294284801475536289113497022618232089801870011163081330816642943465781898585439733318644411774301672370889819504864814632772710039379437527933032481736749388807324894039088297901536482868552752001922586814522121683595163497899804565688939795460295585989070966658909287698195878845423614056658938470041992944655694770376691487855660716494338536045129289482015331996693421561936243489748338931615155465924929615066394679115712689417817486953534429312037681909109182937148968973960796649720298693767178945331012966289985420354967206956145617576464514685267531581800415752124022073268090708138665915794003366303327091199781202281370663602137089046189773857913959368380375530666123611710378891552646493947465885654426075817921961807432372421235179947174590066057267584540444386025893299496889186720952724314860308806558775775966225781632537687172859495378508013027662643837735121498799348721713369530285951811831429198359501446665045121961514700159562517082287052527521808089636601423871554381391644686415859996926405623601773401835329442091455345909255548002763032480474374049709190856155571545839220241518465453815469864698553792253281838912562472891293024895012137922556397302660950382308726750427516655649148650021801542349841720597356099775520770118953895752179950809377317603612285746636542761674850107177493187230977489451707380408976662546290881889930379239378625747128512851049390755389668349950542752060906385907705784020251171458723625767182653690145808774735471182153635661985732344253657801091957790031298172963001665887995800447794357593170866719766593627170099630648014222055495949854572046353567406755642877955238721522525953577859561389075835584680408760282347774760124195193811482838568755264976896893196728783105996106867805073045788272599538181566906462113486434675778580969609915302113849844360422319313992965310980867443362048083575771565760490283630163855311436298334741275791055187010923293456978431636296699836913909756625197730847377211034108429986546242295005496134575167379154905264631367257759727706036973621108746318219922383549491194009093468779881115069046832095505741321389797556854881452467689382604009199662612930627678498740877631296681998856064237195274428156465760566152136824069539519873984558277469556810659620820358591960094671091616500232199406130768453067361181797391243403418796448989392699718729817413167112018578053345551827655080868156018886512894568703831660133215849521974093944586367153085434444304120922326795067947119830794660163886596859000133878250269049158103926457723032357290212682617826660631808288216680144300368815540412076487213258590770225094581109723970494225408517316647731636779979894282454785448624777949346652919477020549054618575132831082074554830381895982530076789056418234953879153683812635472094232219695658290410548988139591511669068843581019438347945746113203031374898242567610730257467000767696663998872077784092133364823118099983747678729071203460457806138117308453727702241236744500139091116838647296221245250002744698835403632669229885102944338186163395871310261833916845416559643698849244741063560645650912982405610787425744876401131103382768991998423447701734939768574719201194590576201473466621336098242498715712057204218508544005610707446911925613578993884870072879605766040522383272321488564901636274609170614561128092612700999343960440718492519598930482616408850313207011399381678701779493239635770946775415363000571363121564384173630507911555664775475482138442175246859978208633479312263816184101240657793360194237255610445369231764920695427228860445501622541965980233330059628395241748661257294256550672503153145436694521332961166302932614612450495608985900140266746926441869743978186867994680026914872880070125672239837567468708023684148737219391971037869921498934229237200214484098661237951301291194411820160922660108445116025309184260118684333145441855273340122881973802721965737116153197801535489939344034552470994198416645097630001219420357300449777522864186667489471706911391317251449175857594897989615315347385612321580094449962253632853558856245201606708556182039086040627775561156325501232062441943612635413325407395818386290851715124171945035637483823995071620515628887668186707157052012144519347966129117139436646310707400819022846733617500771143176474069490251396390943773230938647391294855297223549466984230945469350513603266201492670356832961546692169544058029712711860788843815396085704276771518434885640221871451665526284040840340042780804189128674934303973610403226783090917771254616665656289017053724066468388108164434804905663549010957787448214861906245307656268130893792244420029231748671648134984968368385318406224509138651664020853507829729591648037658789834487360716877216981893619276374523110975441052582703018879745375704221578782143172252390720539033522585393411900764776669589285870819018567943324554422898185330820669358494132633775670123306155478368488396011663688649047346994448855217340144986395789955030179372611226847401528901696925250502323866229732648673864338330516810633911968173709281921587544495035201955872560736943385389623946825915883878740938468346004417970514540880744811825287541716887140751957709085225373398763589953209899689559471816151550222541929138445097478912168883748012928912693150468775451565518046068349196901945071916069674505516416010533145387107468591277098903821458102298923822987981372759365343801689091013870811850127026692436582413937392908443462327057289374474265153682336148676363562210714203198090390232519986361703065742000768660271023450027761481621073938451861293152461770263615991622739399250762139456258085629360361789615931732625769510317309390016771839025690931488674730893365554888015032955547155452241110071180887711510573507264742722841693177880410077158629679222077033844648284719195905855514775770505112470697410893698259026415809235583744003032400665341585999404573373516781031032707324839786857978878760441458710624894132411781366249179519432616785139275989914452974095457018866951656562975257666435239511053933722477842258844698649778028223551449605296877397619483027873082283746930608810476263173948667599574472541428058393873843976807722215353326122341761039991144727236355380137159939021751252441537004137750704848800128946753395796041100288169222562570288230018858819979352428558289151127653776516630422620960577985333927863622691443353422605204260512666745621416508508761169512759818310113104779892792193675564313942148897390210006626763454541683488155485005475152157089316724639511357697890213263489991778857180854773177618580704526748537985520271991404834449742749840700824642584863683866625725518398781834542945029416941029210551743818785851438702791497178117777158535475187701062766086273312301961676659903220476778663260036777802899788627549057075458038259928097058404146927053658035597613579264927487627395136580039914699863308693709359176245319634551761225794585904638100342955916391188370193300599683082450464001539102445994356823696033633430469073454069430125623524998095225503773995874924992481425214865205386615605770590905548379282316122505569552145748990597692271275493224924413673913268912919121985022689009867616039316235531778395584138390837000465705969604351715803371958872756645218443450774320456085457658441933719600293154249929529568806090893186007384505207162779619976177938010077168855353289831917155098764360919385524241338954951497887071346343657688576023547674739409131978078205859341824347558125778355928353911931720801681401571109502288042943936962870685701266906380669352940623670677310005782058694643666432957016766477207722708663917662458841783419812658335221872101406263031048629294057865796046347196051522468688848226012366440887133439901602954771882196158333170819760161086055733921710037554366770033717810189261138089369610964349373227396742177236467303898606396075492393390174233772538519237041674101638929988733224933700445956875442202690986077326272934803217749344612781019550289948525144458051455452032717818459033563344798182143817061756985985972626711419071933031067995029446355710698993023611706996004688812689556111732282751517867858536779259168979983645024263951823927271449591099164149807615571673548446468313871346722515702473269421352550967995148146512170471990570264338011232053838166571452525256467681897081285478134706564902389205972455264955688836217913287154202535056526406682512676861404714764062463148427540114046060229565219268452814485322823106016430532840994386269378656156996656463275226688774229507161119668608510853431582034189463822001379241928259800920985822482117253161763929536921264425401816312545859363745155891234722235110248999703100625995530676279259743392106064358481691141835238812399645073836924141162786791233815629750068511023624659133320480148623812917895999311434864602915093441265428791798215287510927965578097924502259933450045813492880329602624565592253161401583149113526396449663444310632987289673915910745609751997187531914919860442453979720918475130321371014682027924187172097164477987327745803913758514666937048235702497917773871476934857851896801468084396013351350909734909705046290005833503230027999738580443522370520081122509006544412162742813602640028470345088106398349653574549309270794632479528716976582640018304327029000998835319072448231766858115497746609145838175428967981498790728708296896109561916485413801194914035962367031641860031401827753066708895037244303938600633057736779968856943143658072344905794402932313472488817205742081467092966811521729547286457863353781990314653284380543843170763955184176776478285155309429389791124491942781868057349319072825462498329748964098852292467547667594619172107519029147873537498177714340021946060465702840782079056823428457512129800998219859852197584141289021497575564759000556057900009739000595597083986453330526003220891465500370995668556873786421735408086238633998294333748725015002234948875369720849706764806137178134349801165647404488863196698066029929308492275331509785345851145576260950575130726969224046951645554412293813213602836770730031022371260423649673865540815914047863058455346269462325060462056133914801719841512858829534712186519403034685246726354383682009898801472485232628200182462512881640617802085622835422586035514388559249123045309516764507020591844758730359852123176471248695843592747581765588926843923191019486648673389064789474649631939055809209941937283425710963324787155660779136254539863767335946058072345456230019377348491355207776230136461837352706990101119142416358636309168717409955563588333009636266618223120924006129569681626746249292500547689896142255028317317701673404491764222293163060202278158476892002361255594352616918876252514273188349696639686050579480851481077882507574210074778888842451769130616527203540208205233026999711830837107249775936001935852326207235892382299079836363848390686152209302017753256602138528471458057600534591849915539880098931843287196405198234020478124432916083615337599951451499098771095319573150241301727934947989218916526843355607190406843920895226534264452445570139559038716001271438221685561677231301182248098716097593541382672576499076181158852233789922768515590804997838847917018356371532611822710196605927441441490635250979946222415367880960011396699489402765076499609751762727139077371563638438570880500650488237264737258102121511466315158820196401047747293445621014818443936703377382733950615786475500976104415053629279195167927937962616565983203630678357710297522060529453205204505980113811507637133250448631061111345492808297691655595178221009650026952093967035538483226574409534276817541661923504362582152572205954848472205193136218778391223821570491415679230460336730724760878598702848920811864562140690993445805996762183990260893575306031918903653823277334710272034890529999049871827636616224892899573480473443219674945346165653663201540265533752693834968291534400805645578416045291870431945349067066554528648637593213741853316843930825807716355039533037199522988334300381661421266472991595565883323169180686411880909179998583825344401797235409607097317048765239040070178213382332865468407633115601170472812668316809648069919961372496594429668793657004136660031753366567544767014100800458247155033729741223138360611513589308852942668637891825727814285636866779052356777862715007123802966091304792636885547698449866147771675328878928053479048175013276270237693985094714000943490742280323798875928204148234458477243854655797362496450730887777849447335833167376990180700977524719677191138916738518632083795080738034953936872099697133664112753513337472266792347649145986119269587557104275726064770784697796384590237118246039173508661671266726943105687235829979357194320472084510700966133411959295814030203497476454191269811529780300103339993567693961354746211902010175490961283375147355943883060961996247544955865779077923577467247412392214157133113153830784254274461630376382283753516087460329944454483664037805967467104231271087232959337595587612956233595635657266611044239267773733035698769275801952245656340961954878813390362621059380347375609190823092293914310591744831529506424582937073024568650156987082779507374357225722949780713631740314981290278952898552674184568906862802021349462068581147925910360589159845656620110188128066183671941913242848581161727059242038844248558100026214499494695677164582111749896095481041732957335990741451583441071273506028205310966094086196414106669878657639175381421742315623956621952639527977691528388173750412761765504670650876406182640321942181456096586662335363899166312868916780689773258331848546244691615841355005392252150547990024151142077398366588543640015647656790812386907192642709973626340600650390813349449393786475326878038096666505641005918262341681242335366621448534599040909069714668242710201057634214832413102023272066538267988726910406869574560770086271506657738435324495867436124052777716373699219824372808290135408207560703817719464588640329886883661066221950806515524293786494796323192167714718150259892403769412173227576879191438461051889576793892395960176784726421867716064498971109323013610807244635121181039331815904206698181015111867107712061363418297585707093176028420840537843824292990188628190179849681988244469707505526412350421407555001331588754513688981127574579887661164120918412994833521114663658650781507533284947476745262792925170125487714413366781462248144255893852019207104227270733204112536878368728607254461367772906193879761236755311948883517251309887449530652939124248368493173471901492710355664826915253329968810267649635940773268538176220738017250477653125034387661859038031343726448219639034474458620946010585441780007661234086537667902758761621296824205507356883386366983226778735777322457665976137774220649192864788224902533867985812921773261650436331449173311677908838530382239099620582372328696533372429359021740046262528552390993112979662104604822038785597798110257900764931869940002656374030469887106752843682122018020565360259514618968954943731230829515392437045392906804580494590485091720717045914451170153907931605818182541162926167625157969302334164266352139273698695311302854273698130029650789507908886354581428633320037501521010638633399768620746465172822707485889033466761365331906120193435499927618999125875430342885886551137015015285937597672656328070504297334188290584505990907184699948853030810520524744650179054411721334276257788780855867239825969113922058242398831969879414760547037511822470945003773855017010133398794301786798053805228341697692237031983176074330813024350317069485492271412866401284373525070739000025765322303614000134177406096118291852540042065329470627881574182715674683004413640999918107339452845773513056007199036024570966607136936666241970493290814856079724983090184127723863501576969734578223841274258353301115842169185514512464176115013171793212708831064354816836825143686656927644357172345129910173687174957986989016271261184905657290670847109209376343936365846234302506707898351255601456743577968277949297663176496436144612244673370783004206899437668311957810082247219710984294014407195276186740106694895480363114397686212781490391331551595993157965096555528800678125929286756690402087511351019608849939246571381004240436549169909607942947588292256735483105055304404797159254834253082481748434164193161322356259475109251458144486581161341855566435249128481576762407346134536894119686292333059856638077072565362485766620272324309652493634436120906306899555639617038557305874219766247886454218435216407400760834233179150772158393859042258839704340553554624156420379608219071973699814442602138437922381060098178159176573334320188705578436171561734686145455565818931380562664283909072694287175634112272976198816467851723979081259006452244121871298998311934775365214329848547985579923487184885922825219154392670208972377767024136219881387411018330787891492007631350650820897801418893505463658927682904996907723927482011194884402824265906450424749122600095053866017420190331914855971971545645034354444380651950803418745428813034427392651910848649841437607072130960019862294144711163023583874036884443064151396807609041516565890410369818475792420265009676355990895718481140016985161798155963548067245292403202364164607499324780465730424920466421623165338786691750591703359192802052970574303406965061148919436271114009634478781048670118507849678836041855833576150811313906519346550831178473233018086238609500665070868802659640127113804430672949451611894850441920146957342394483851340982980855804622206630253000990609670698752701665318966638007604713647294144648740097401658523324339193055770461768564897343470038158919515881228781604839567987615483427564075904794880325854374263766657503108700318942082156374092611775657291143886896915915826593199402990999767771494274956706455441630059269325277028852831188700185364477791188687907855512803896290019878703958608706917607751935943488323040163878500985319480711550908598193737912961299390886245804818014097693786773039848285254590120466654118300112111161789697740422548181674817707791981923099075052627392641580891203995255703278658234250831467671509062931163854730736923654332766705043300823316459011235338579171851628148880392421559367813766435796909645099994308860141312862642829170558186174663150939039437429023995869792985069972044858282270297667699030434121434095555111107315192943814974859347090736712301143613649800064910007889468746746119983762713320991113338981719819014091377925903068245488075493263662980174937784818741084868048496722531641073783929204204396809498891233732635535795606599435441790422605936655515452392551102079286932155545650998993499904605093804164109357223480183259781886588613702084944413512186012380353965331111873392886638394033620098717552904517385943617341828832734227038262466777304675855277874837274477494331238243461523554674526355622572279315867431197561494333445216938257603848494656864497662716808997906476367686835011661320503074598365045946342688291411587300626440947986019555123537405018179594348709292618630811679748129879035261686891115870297384717880709287490022105506619543341462531314956117348929156213470207951402696106415721586450514561924830037115742170379380481042747308216121519272714036761678106869934971999067488394756579309861577601033420572188149901555612546590627832064498006382661642327073222890393252382795558130451140532276043802533977336509935277979944910967195957541400247163781145047570456992766436464668858185338865611748012626076591893470567918186120079056156091197930504823353986247899289761137572052295470523853925827689190746630562765102682420599940977823604871607979457455109063896174698812158279137483308744248618580154791643794158298808027493842156957922397318691543304035561861076942830216431979838547241058627623772816848679503767587140208643485444795444277434214219234496422130693517519786428092321239880551164343104494461759283643557890448096095440794391267006773589293627382072335715804006037612512014925781857715670542154369675878771553151785954974106083888262998261079152919370735296616750419708112390589144450444620033054164301176337716490945774441989025795512879587911323095168335264194966132110238540879965476873573313107533088035623151225334528637490408062827796648001828453301740417149889214765929521758932946033586683826096934491657898344874977094027584354286695421200591866192360702657857559464270003149112091796940885775066414845428256633697255807451803129578045745531258083559602702994387869725448463526231002120774562095004173320040688306003733952456996825495398145582211407153917354867419953530537939409771576641590217756572784169616554270472364674204497065364732927208899119938986067686901487440471543910483793210205397549620093402226280999117269587734074540924980896565400714030643236585104468377535642706195108215717875765134018771446680812127474962680771883558378650813871423248466901755365576260383367504513030012257738706895960612587083344452774284779801624135239059604246814152813510618143333337505707823399315066134034164818882946766464908825114525211464544078792594806827440243072053833320282665459383228898691914943504260721345498648258957310425349934975027707705987693265161036786762275434748978644755688970897008902658064078795395561521736022394909633968137725797713886053048977422483335925046341250899563956017840374000624075067757579230254813538817356820082131903189243937161984021512529018401628960486121081192768937735951399950190980800685902620662964982930512409179507361098607616742621968988920643190271029256929692490515792662874796739480653784706754733367268302617730824137888617565609746042571191173916028395025854650618024904728204142176852088163037704110375015335955545509664149389874386547106021890352969855041746822760579235223670222008665275504086658641660735526012165742515551010687944155219329540380801048620457083862968525230518924886645949096186869897870845469999969667507842338395649669336566929182459745124125176437116770397309668467416810456297080731403512996802609551355009557321935590434239315659702442993071257359155692784810336935659203795413966501343163587077526544663803320807500883833796656813012521541188219190591004578600464899363424492723458792806989682590853486446136358119812401092433430001714525740601872038766045596100952410751975554585140923820064220039787756916103015551357905348444239946162114169318059452818201561832027221382969225274056580340757711120889641514360221604843525561121513457101405360916998429143524820538537073499613042881030400130457407735569281714989785232560512865265610513611067406805889870535807507073090236312885519073263761953781261476592954743774261481348544340957016078108368592581882502999280706931528857156295744087375059263215405191147414693786152840652872395724221802222826780352935265213763883327590272913572749709005978053302552934082855128451893427460634071622095965917265750087975258873451910908155846428875284158684968759907548571527239626489076012018690397021961736577011858412712531632533402365783384440789577577099450682437933354609416777302730486776995055874858870072969376099234135911679124584262287267690073633455609073321116160439706079722962565641026748278559532517477812150986736125609381350251947400280589538467023623620748657109307197333685087532419938574355890299388745268935686662551458048371438849070053163381297980580359447443587207116789783044138801623448915306304742940823122492881226531115961035046725934174892633587569547494220024269188935951475276851512496604320062706314141775665161123031497608347528992206415326690655828388273681811659731443968104248420472084278554690481971172589248436454930266761616988181483053246645130450778788237455640540656603626566019787835937239256497589600290281473162115188759717309666187085130377108318625843849959111144334925711758233798341194856663754622450840971091611770851829919009339746457478886364314235145525855762893193534487642693306474910657749019574370078902284161169743367916653644269560882593848866934015375060300847574885499216812023298166382118179585735182552659358350757552911412628844144756041318636254544700170650654660338372292761601687825630045265178497176469318845103288853215174450453018902797213678203775498837198087908419722410902306316083342115400067532435858459953322586451387038761668534727972198238073679431274445711114685301015259904375819354253642556237345686620876918117291537506568191368640776060638045566164790515696774398861834834219539663558493434792001825442531962548477451232322045101535048407134550771324045664431473238919448801459587392407334433417755996332108167089687658144596587013056199698622531792311843917169796803818355740439502237065693023083050049765942004074992673263512292142049189479738883023282102783182751981054400459714809538567500872177554145306856114333811313564752525205252316555162864792192774035531832680220088787868796985566604698254174222874988064013812382980413753650992604821216589924156899874703199099740558254997292007398539380599500611942890930472260217332885655654578362711088307198504285864522450542477491722104477040096673846685055425363640395603993617753435107408701560531104936331727009403242049316633700740594470594878573576108499912654868993237478768243381237574614325153243743047122517820447014391905675777303533839703392945976024538615858636723179230888571985897342346449497903602188732303439321301469800654801858941624886473124810900231503356170952334278106065818505594981276520895277371647057074559746259235995864894740132413206559843426171346326807215387601911774089897813439880483795043852743324320244559239828057229278235751106024480357331527566509930446575444438398239709571454104433945090703637954785196470402227542114054859736802467253563709788760282456949921841010653399302602370669375491963507618705592675879178236084011828969369672316729469422272438594694906778950252914355320609094730162576010546821209356131202037542533694667937322968893833017650492714351197512108185112271235602846827763002617056964890379529433642232975421972837497993686300955441086988912582092849189047086921859577957527822796647568104188598859556035979219261724912519587719159156773336737835321698211987805758817557665845231671664713612642001252335188136550338332289180444953740871789176206269153739445611500456727634428100410024636590687121338390094548039039801692801406776799162205137508542748066185082981409291545204404596914250890123381693618624736089866420928251707324126054752001387320952028757494889413820532148371991955193029460722612086434294665446330202922401661172788343406616340758212823513018799731080036982709633031051626042689937619094969566224588344773423844008255980830041008113832815248714566016425949502117223591236718252105116241330132372654890264196110928434163762845109801104413408584968408180613162472902767840510501948338661479303260817408054737373957642292392178491241116950011423620232287779475140172164637966176843674560658916397592845670466777809931796503239238229568243467979594461568935029272935585928552695759883130511041096671255693904703236657089053783869730890714432801439739847113542746155803566581916014549961125767649085072335760417412424252661169444289974383031752966797228690087505253224764815811610624563703946915428185762042409007452064220289218419825019317521238391853431560149792954874819199085670509503172491755526470324919797272612177504171612135319087315829097678620764434370921254932726147454569529833159850389027028447928474659540362290421992570473669894710578430953366737759581187193885368914894750565574717985526636743168468811962989979312619926442967453037231856147273017759098232717129369264022066327488358504034417357260514397800569349156826702568609768011331876940185965673091915657283336453728694098116561476468209855379423419544366295252483006483728593917338667826532668348398271647457365534481887474718867915816031804340931744597205593502103753551410289261930242869250540361187761235749693772103681369521474420221992270664119505551533657982701429650227969017673876520131446072168508553903424700362033534281752183618223529385052850482055732011314059135951727546314598720514724420275878908760530026971799268131377950929863845518085451743916088607858384791969963613484123918301212182746758576857642127345077154026727000766779781699309358579780660711039058034635935645463585467897075956817846865045269361405334590790967975300376036182318318873918049995811522235084730547385714620561185814049450462054195699155579433472478620666655099182905985628315612170107577728314197467227020104932061121359274240999968444392562782309164566922033098494521869060750221980955278509265282835936830356649508009821328258310451572866670588378598633947253206907664316797060954145745927676437517143826438170850626724800537887571844814040165764585858357270459968375124226649445650348177877927141406014676297582187358418010853969261691611264512707015389638654290696447504836721963181214313511840902190607659559798962304872907056922331239012287426493577320790878642482833653976655458174296204292905369752072972805943372257024580113824468213330152496568340658668451653362851256885132761378647602741520464302313408626540762546118328013349110801069034688595941023392014563416482754477466177657703705080931005816715135558894588676133697712273960761298677216700086070818789222659077870947643095287818933149910949729923744186652130734581503464827359702972227296076320175458309430926815724241050615783536956793784581175976686352657514161233979780042453620087833342386915160588580813460898651828564058028602227532653955774315781538620060604092258426748915136000378915603337153601696304105657542464410236683400347918152767734925508522664527212402672404929328165495169780503026810001391260534785339003618361550211409666448321803814963480343522029130671232638646690349028286349194115730328147179094712694010550109612762575298004585755411770052942699442743121091955222474629527839213797570010706071635284961963746535749299486689511498269017525096387000487761041021756511380287555130198293270746645897895294254849345581399594866796882854490540474539420071284572859832651843453188310123452951180151280394210536142509491114180554119443932006496156336648853232115658622633337648764295241692460315892432137526497382910228802340284679304375310290975267637949035717984448014027992277407230516698151951054468035220484307748983605762992437510256503331253974460345228289544726117094167307535103167106003715292848592970390854085076055997774569639026643285148525328412764935283895705593168504399851571073391521399120410583786267934029715207075128454359295611473497840388825749518185669628086408002046445144255497961573835902341972381770180607207427611831829763753255947260463104249921884118683758175954129999689126013256415819527293953778769430348004734773869957015823393912579857055138191099307002006652579984706987028435245656928963250256804863224622103715831913823325048542339194077415507649823548435489983300289950053224640025727337592540354426688611016866726895101718294586203130316670928163090035676579656774422874377006596288454756488065953646768962474203941578843316476262992376487588262564685198942299179430397450713715777903530305299470343271455712250541561680778812998135222195583880943484359598037989982666063025081062532013522405449537171995337259462844503134419333633266284105410432012960103547361827886562147859823394570566076098110411972321128768491012080583815883622991591297414350658452393858963449440701303611315277927206890195169583826191233638775925392034701291739238386966642437844540358287099247407592026433798426309003007468862700560115153014000670023540589931448451766170736562932290907119425658883800837446404755710983003188882946283812627215894799453878174103176871453774952778488718196384691442424533626713670602690222276064332642617859313806921427652310443348171414154340622178547345817570810090812260830879287115399098728822054378340825078938282687163399809859109658984995384481609528600997578917273094295465811088183024025398277976422418924143623622459613021179833232622278061479190294499214185020236172735877805718622962046119331243721071487958187540647338483191453069357970727456365075272988869903534960078705980559030029178855977169960149172069536870453063246429575348656766784142325580783563041189704096207989228819412328820381590131010125364127538925508553383419607123159613562561138589106782410192069972501890409259721569591454029315490039015552527630491886870149945896869538372020767093465254745333433571697891319117596835804912867583763436931198623778751119950876742043218712531266474840902020802436768200699714225396330554976298404939014063996273693903516021737482500769241681829398775379510086542989264085118127738969362407710579482801061296838679959334822871779589047398443816965409330932667293778971804879040704882785929897056008764390943096794087190860742548795981052264530946167974940917476697294576557125587410705927356480656318597673140043136021184907101057264258751545010619217093618644967905377781101215113425643901883021309904578726754476959388060307128870456058292372906924231632195484766707528147179082293313767833785062995574111183280375953917871397673810132110981475654530076281219196053486830866593687649867169710703532418455235811767808553189969979267369271308983130845119097892987563533848883979363921848198724094222565390097304450299981335986967366855778882470008068254521054200837582945521185023942505144997640375621957916956651587288866038735427111212335908967025460086745571042044079786379136880654097403560783385515832615094767833886823651941100130429693054381793545630047492511483848843668478578685014959187620192303668127173224012598002153010922103418473421545408037971534481438436340447840381764005548152105972287474702848675831234610148144265904752743212979699973382670996931542697197840197801913594557138184403917212975776308984014065963523755185816811349029154090352146642536954203862094011180645825171723977124234807127000728541913252232626526469515873280879498260324833679070784769773087443650301721213564245155868961185315750689217213379732857138706701250262744549235740198478100276897999723716265308066398797524273903768722411513831939325771226861721616669326849854360406386680010769824724803756974666195506053010193514727876869078240168761546264779459369691977313085953628539381561926083502084921089490581568441361924467336907427135603792981865959825069986177697544894663421616887731505806244027482249597827982762715728579900620054652429486006478840647763695106485571230588364538060788692019093245029215059315730407270004359489844866141141913773935982858288812621170489605170883547035951537211615786951714112758177731020153016314678456416503121317654536388902849520662146775830497325235088627375825231063997864232341217045670567404239701699035015631231832765725247818288080247146929911766030298527879508901614855146782375361668256642939573769095190310626720645453202526850162805062808505813719514983099929397855074436109465241540872233199769944209220789425225808787084691601110218358730100029696322205246454748541341864066234484344876668107422525460404799807040989749165469875641837394860743304420632506181808489208924276874661158256017142659576553883480004691775307816074670004292057571770388893481137127758062388145639409949648196707857481809386770647396593198950953419298568064006576487384416288819237752464037988589327590065736326426149038740264024328787980355146532044081851471932243796569650924388547978446034429369035519974434526537964338108148323287474975699097584001123089802033839737363192386169532511417340450661143991308984360521137656418622582353940154343307553029237243930866649499249001235419483285183965424187289695984972249394104331503839593546321069218419801028796065739705259521641589757214905517679217072808241380058945549849919030316326562343562446632339210449330055915586212011799700510356144237693276223649315625908004283423617154324224503698983058816710630404615571901134875489905023872049548723283159547991021128969513439962793994929936021948015973406170573414139622685065039893713456544559620701258122264948801450800861111866660587671709726325242853040108566734760333836483445252737257582652603374209260670518383992927029876518568765689545909293864167641830200273488411244474802352146843300606757488193408435468890784146794856466910186769871355616414077837628063474860864704201003802285631352715992966884296811733380117316285603614129438203124864421922098146860814992138176149616852046707613342678318722447747530546999711815036368518792445959644381634800883050027699979316505395604189018383984499464669864947896412233769496890278514800343684653178748884826227240959170016669361105328966127192819239738210240581137034306400617987360934036845433648659675579681530457388135225299150117583138803949604130102596011722991748337490357101843012632087827345011868997376450063930943722721833279183854634198992179112476553566002073070714843983700461348669448363305588624207973208257010247337956391866424022384932565062193507516091765822891400087886102258061965136557664330984205346513013336518865690765846163367951651491912031602779654489900989974803111799767072720068031726413695880045999001337225307831395617344641980836425349736790747860369339212064508849465239987355920688954431429301731185435587967328634856413787534240980567426445828365987540623121467595088267976650574240211913902836718667414616931806760315709095795029714346364459785910589238335999130729477309812844059729037958713230701128048083623007582818866385699249208706712227475892455859077549408463145831705781925888568799149849904066961562682051401308668446759785672273975966719713610135891311647974585437877613751721409786281128110821096945714653022641735329824279203680028329009061366261210542388949268882979557260084131328050002732510330462525938799652795655469712231486676065385346023020967059523460471804738195769206838038091880612553983179095198356251902940562502383684955827791402804979672178547500030859240734937585229931909560999361279370755327737458685227021173539786105274056760144953809014440368423834076927048648782776888104491839489452586855467484334220460996637769414478262358855285955837676176679653335533127694205798138557407160174149745740179040486818955362382710890675732472965937724859559338327620160702243608221400355139424986811287539058227408280931363515990197337177450428088626820662132238748235965572158426958387332765768116027756230755714989952691072617177002083098356110059933321546415775435617038539896074873670180560150672091305910636155614913245784738665838794715221976189171764804374643839815510622615321414989542378555995403325736107536990363716063224057417962885230272203395263621642970036900951506109682377296400674962818194577732018730378402382091737168033466392497925041124568144898832217059438204917604630339394432867796138952530013695402483336388525654158721902900131504169328664182710633664990895203595247738428649642814823945506471769993901944841735775182833780718986345974669410995473108926876316099648736742193582078835248575405005469857200415733678772890041834157771996669822566494301373728669858836079809493459731237347169569538402233229546223147797193330227407778675880940649595003555236418896472026390669980301338555620771761330853594289623115909425196796790183851331835485154717173334913839965024088207529090390441460789844797732564728798251579453315392320913965243923050135803430966900005577930830641177738526817565472630939256507088005733427724895953577767944381054461961988910527114532637642809831607534885572548283658918305022236114382639910839084606335682402966346296717844143390772520081234486907048576250220623310513578509241348110847647111875841150334997307352399885732895453609085540135494833921417794219512187757802806066548258106830421159915148229243017511238868407970741604687472892241426401490762873910243719036247998674629895483076010060350960310038417883472410313210875055185702965766026773578765665547907508559161172697784482728901414649950444992525461904082448348196536415606497869327708783794693116412938585428716921959958516584991399399723897266712952074870125254380656106954980639697659004988806971009731364625374160770808262061911249362735227217425781753695189042127358914854270988958274417131178036298858502039006869917647945964825334372748174025805764095065300847311034157813155621909087269448441171172170103288663567039638121859175450316371909194657745778159597284991870305932076701485224020295643551646865678832781936196720104848699784749355277091121226137133378778169730400659339561192900763048387820366223190170015862565535394243373813030741557744369878711458358210860036489158850166547959523834006788885323033819822180538250369811356123716116964091028217773785728214633921664685230471167758954759395877561466991708841071273985731268593226041195965668182497601275812304604954284815569709153237698082864394504522106747141937094929276935398118419984636811912751346812254624653270322506747021787523393715798372940978140061965079847173324158086009729450587576681199098916318702807279654939682043968568622265618041296401070041957157256613379716738439683142405786007918134997343874191218278592870541621838742650455859525403382813319411516399174944147115007719331098525784277023352968755951258856455185487966574952461373907711130514000070999567512781728814199528239774192113813445496410347932626234646209190894766308777373691371394486059619480880404476347705597851593419043456932883806001972098606720292098589251924935994418571887926166996573751210047738378735869752336576405602156065347812991238353265237304877992315502629948252557376077019161407416330271425040416816342594320701059358651799548701794372683169020659524753446661071607909443500039238707157517557547591842281314832349812902253239730445637612579614095252437698445275212738536854246987647714391134435719017189394060821511665347548566775824074929428451148035783750424097414637959694192034913694215478568058080584161847178223678839985778873692725218781178809787291764258576222270992873875017288327002923280635110623242082411922980524023892587454398831665819481156371704630958767456003984097176786594823933164546560463649615836241490582721529047710166661173412728852263853370996401735451528683368949490507762242189648870214966514870681269036859265545204900979016697479881092425225159389402100963229718341344861698859203496762826959764848894144714691320893801847417525854657688630585736338905120698791746078344300926940728155039732718625770543228296854958696755857823719197980301030616329760531584639084629973459609151223873330287032049983863926627499565600629913334665211059534535682955897990351044806582035049287093986520763525125996946276257533199990610705006832882904876379553229092438260594968131363737875477264824936476670440814229913184944548613332316564329351892790080553258772580819175534413196440512968981291554478377150115222287457520764790690663503468345344330991663186000494377944945315844608937596959060576154125023572204513107887761452182375242525583062602764137143221352809750018202353018856855706851910590497506944160718157924039774952200420353061282861238233412510561152623080322629282186078697043029458233808815663490826775422880030456939908634252796986952524224356764292201350727630684715484952676743356160825699426054438906040875922104908670416688120366490035678096545834164825380348294063692531151265064213955655098435878552995082361811371613559287592644726574482638471477463685632659253558872478091648944181302555719727948728550689651789523826027044123747029901524839240454296793094076960017037055180914596659868431701001331893537211334220051444158342282944426552439519947768692574808009622443935922338286601329533195390626661549849489199439653111491112649438121181076053439633272561495401004875946385016940746252275133315848244381371668381831669389941997322050209826167159727895879179191559549997524473883579039268482359089131120158045237521418635344691772718565634499798796442685157579820087432127733530945962067172872370660801733593451767815984462259444183252582307961559871113383833793289678146713795144044304281158083135423715116373421078863713057068113233711492146107186313591834963737489406847668330009546089332583760360122417674375528613037333622865259555306044307426235039162147195810623417909292867511208335065316072876768703234657672514567495992014076934532150919500419943961712743645491199758138342395486866574399457768009999155515580485759537398002519415838466331111258658023671545356464906009227009596361571591552842334036987276557519372054667353941727877529023809194802320959868888818823883455991794565149060020311459327338976364251640015621611147078183553641219371769236945802775225559419068120533112480845244184012279481368938738519401556598084213252107998034041606785466934828389109332596883708114289973249156763698695023255451742180967985379791454310093747735714376323753154141565758390950073676806383639053424040297716350905870002469840793134230818240971402826634545452440139085159199997727937415600027975190330317506177590602583775734967475797016187978709317660038678378368112797819877965661545720221854555799756120743339281687938878721128397213928633183289793400691330538684660969513892455180890778925104371582072238304440938712439760143375483308444322378411421867316101226626657568482092951807270667781082253189269478640062598593976710520583408231098266063611988391825079651823681630593073740597184155953345707651006611583696973612012177585394016512904619674594617679696566760985720576215324240148251596558907033800341073120801088219339817339255695865099553607808989522557337344415610787122612446223560384453570285318156787641184819797257163888037974683167211785542599779836385698190480138054598641634774365191164716643446270194483032378167016689641113568047487974260250298866210782266890816160966067680259620692526617973968761085279608207465724291240217937792209843136309109869237009173059410787484147357751748306182740399906001719835249225011655019269543379983289153673282939075729642594774087290071753496521623137629792597995412803387689183735530998030761075503339536371793223773778112651275958359769381406718435620268752899564744618787732546567400208028212763769512625392461466091922315975747426961351136314462499157489881360624893179049786860001837371143838061538608893861127821823446660949777067557799067016726742298719941266872364205091331783257092088519374072058060414994107262370625486878400571576492331436269226213124825947123441104804403575298686590285085565022018108414605898406910752245969212012318911217465270844630105577181270212075360108158900407768965540982301604608819205719883222077939067479519830761710481883158874095485335197391964599288287001992531176576296011016005207371671076596794606326686761244044121628809696924471410317322679289445981549768227348296692224432606166370872879622766148656476371788285652424850228878375079814316569656884833930468364720788857216766798950008425310428471271423043478412644732806204457709780800237906718861371562414656383965064443272534310425779810209891906221565981983007765813804648043070536027341513198512263438733796574654458835441424533234183607862907251122265510405980034342611292823040375948408053161733068925796095212935310130074120714123254637573959267545278719819855869281323414193113762123114576849673621994011908583004331446910266977502537997477299213755663762237012902819756605062681444372774285058764547316867497623278042704086271743279790484072473970868875842427114650011523160016648530620314075157649251868174481967880900574832924814552839942419818353212698951046466900779000305929066137484022356121213121371516907392996247797844796467253816215255726766500878129845110602237322553832009976415715848127137196915514436373139662670167143205360664518774536901880415493703769464344683567429296659789281595622685285308615370801810607178945699497577613447280749435334414287435474841330209656338534311960514057938505327048841540616525707600796640833608338126293022916656153036236512342625124301814948428614643757793225161143772298124952707834816749347030416438205312945148386486138555818221364199958781382089733690551327456944384695414381200151604542198385651204855187823102497493317394535008675602465608845899642387438868962951894611820742525082295148349896649290247081790155525904031406703815890226345859013383614412448962945679407120981209584874878257387659616332006350709622103327920068450499206974879801531182582220490498064775603365428387194774274093409929555981639099453430760335361203750250893749300655951872295314324446724081977614361056186066423166345537846395981029969627891457967997704586705080454302922636528752815347791157806080574849492217338767745923166803609984544032939161800645496590595150874551606983433211510030977609438961849394387666564110930404030748521600598469057190323213266576600828278423787640626401821511966708453280640589015402596770147530778066611539122814021415356863730801569110767516785983388627778850086657572465539173317131436615753934635669278901780759008623577428100620880045213775070042752546317143341138704119431700733887641817044292418576948418373484554833352838477567514203700765167892596688215075927371442849927069644092849812575495298070445965923084330588418152704195474447749332623139519575972347752346037492775025811132406122322239716875747133475681085302283031386410059652516428322382355574680688368848635450226115908475218987706606767256429462242177784600466088133927999408011900617964670923055647134240560027568125001569443957283942852460765863277818911663514273109384461876296694655797360120850850683188764642063701279650932700746891250565593366593315349268195756289279964277916149541377141655762764929215246624869546883188702525218897276354986555767789319598558275053234210453013679190684770532807273689006221545862225900559802443143885605621635937658982463511355111026234650312969329119822186245123989095065753091263161885617958989806383601912527423818084829928048296388888973477316745970233249025258284207539770286618429076286951319336351046610456979366182976038782939984713492663252675160855483009563036067155918850954000789481885288265691689274465313928268031632174008039068895080102159424367620859529907153788976610364255188661209525541160518134875558829001615229455855939417024823658837126517034492178526298160653839875813728943704969834881273809675596368962043089903469186634950042042344445962413643105109562029799703397076262845244816066258344562691449516461800198629046108663992710350572326478315520150792915905620036391082515375327509648246314533942100297732348687699526630821663690404300198104456687114211557459635037543243779536767215117070960591325826570718524347798236053556879316693175181227440359143939618825975102054918425719543834388134348197224929834568520694097657568924239357562345657668903220770947051197361821203886755938987190407021239435531507644817013958045541443429213576576845775892565438684293629145207102749745762846934206878709699660945872694828101487658923086575193604992735885863791785432274672006361644499024493346949224619472222354814534375471989032315325322498149292896373209191713409827772111298565085612272238425811516092165650404420173148975327662113984375369963273448661954617545724497866630026778645311080289805310976228788385716248641041935098486464054442168152768464779466223563699584390936076688298505986836180395871795558387759930672881950048201536476771048059205882995829773798568161874228199989094291052884271245292666156520148809233287244767753575983485285154561666292689677271442966380171535320625022437446610474440901741984840097303621822546422098366965912017627832482777398664459865717784028361408557732348539512928702931333335295607109202211564572267400932303627764210729900285388343508827109790582274408314967669703991068744599356475385657770954498314902380018346475922701851270549723189666145657114558579056026610390294149234816256843493749169302121374465419783023687919693638805602320688027093086076330958105290040305527417231082707258681909075940012348803499811033197019539642870258764282765555864831404527014084230065894025283899621181996168520199430433537909043597630606205987696398752568692884478559836518207679585854422839250733678209504082718993752430404948421456473578294017832148931334434757522592579152352355291728862351753871099104893526928051591157496252587096324131417385777232455835509496755385614208594424064587880201218575984236767820420566080255441806738166094030547958254140611816025411576005950232987182089369087401794926492383039731744731034100867960101961755268575355473371897746316466752526431951155859840793984461032043743209861623722871705290979860470610086608709323907351225094922938426991366842836839109531408354282026857805247449643729603616018588793089307597813924517264976962601571262098023966330469101478729781161524059759133282696702408112697063871832006129451414027411763881058371665810042732600245223830307141418962850343859648047819466413303968147390700401215538145225730593785106927474793039412732823408239948976943008105557303125130165974932112336027310883620545391791471500682604469628244308113343252446354079498098664317733479419562075802337803272182275072071460703432754276407730924977436909969838357507760676682412852067297538865018569669872857730936390277434992072630981584633799999709598368592775962870246031676583702519395128210644863222981689007282121756697910258747170465901936598277080700706904635379564729368728937057257347141350344009276323631087985652730162986371695159987265182096020210404832404182440241145641204387502160147183790082016587470775708380350784421131455474573761193883088701512222021480214806031609494286393899707270028123960664317179152114368273109807961966198861647325272029464068753106036960306161498889436680648305343223469952878090487981139105878183245499718216004080261752197593368217791849054739852961205597775448400170095889751998215512971334755109749053962244087431512939711397154076533994210188616851241657805053929735485836567882673464135048354747572452830917757039771841331671824226103728101544092495852449619325280702313203316437895565495657655937396909034672222129210653785969626068262064901689104102207111672227478611069937639612556386455781394063247306156535048470885320893263121127274535248188878482907969496009367376476377223020456505628458216576562442253330292299706885779012627005206067507053850725690253555174512439972209512028438138255756492068875966915370362942002932953866888547842494324290746029109242035930191080518703109524674241811692646318611159559356318065867873518194970203591994961905915289046342280433721801308690557648252653170406263630272913918593467396644370348429966394550466460234517041083840337379228215618380996343843577069920299526752225728737015241274106279137336632345753589441514463487785809507454861963683309529193486404658241841512896056498455262152061316091659524785035684889631944981089009898369823403444430382919214282744723324490945441371263356307001231755329899108227216309104282457134580712426561345079801228759559869707757335234780611508763423124010613844153547795714104445435233581462475111614450217464862262940921713258314344090353299538203020990493686101249212801788176968707637540423965887100747368956773450752155658632320068003677850852246466688224711304786585423972443312119112103276638213231434156609871414077981044442429471575247605889047934458969415015228764811665027981586255107182364623337863507357593821072483366058261002705018751705311932036873583316626859087004109169994688383069489744764683264299743599908877672780011831366043038695797156320473168028279178604610183046331343836030436696566983222222101093060856778163261359884895757272894069546301643515006355260172496466525058624602692911049078521171523381123177079949491278537665698423699416324127163006144434191497554708158083876892505737258454000740518680268756165336135532784033917798383309353452876937275966931220640645145755968809106979740119085062363923500456910911697995437853435483234049470451301042074723766290662977478003952550707677581118338721211714250115981447848570596917411155426760445071077039867775345586823170161512200514784638147327250299146417957199987573040295688603802040420726364908380134432084198304637356951966574230579042454667393076019479189713381177016422632925075241495507809358986122741457691330493925628103654791567686452685792626833018396770438559170194215846750932395995482596642130689772445367635283950896037203206582497476246061963904150678365299201015294128004313406599912929942419985120972435451712201455310066450152849755090535797628857144668363760950686009498207522974437726566072126856932226158411176829101031722698712375734792947905838935879429552896443409909583747166198112907873147387925837936450742267758995373975333260361555579812431547783446572967310287139887104187777451199010270144931219821328359503166089853826267201199499571700366205293626776548545935316910978801775223301681482653587196944558087470255069878029930044139946542766577212964061816494364480018255884965900691369904000537575051692842550683275025252598414125670077694638546919311961871136545011446609571338239441234302771090500030249430793660775340630861448507268151220219903178808855185361614627254487724305009619822329969369146666698880402621333348851144066864074571794954446396722947196964239727085861130328538858691799771148725994222573954396445049328630879321434230605240992821884870334638650740917723609917289609702137091257992095769916069817320590283862915641132049191257804939792227321900261343232404984788383084407786406816612818342481830749834971489013618271580090569647296382258234413672019075093004955802786541996444701004041630806477920238657344548255588320576843620607961542803780713012232675850859081515449270484157587061414678499669139814146184300152285305633425060049616571525000951877451176873905880519707366968229720818785800418971175974575217774789481049473306948445691199225214789527825429158914425222287833228488311747335442316004691017415514776869108448011227204874822338945636386424441752958616554915796245160982099769037038961006621080066853489876438205550716177844215419987540592745427267782354708929666952585322039625174205917139476915020807127030292807307719658735854054842445475126153351106072686808143542179370165307124657314055550501701918625179561033758474603376934489358240232726987345386130834589639951841199660387567438858501094380031457164964759676256393448958251061646891270712048691309175272938873923636944325763358445915659656239431293156761348112507104163158530163747629387366607844517881564989466193278580403897443515046619846033919927524158166904556381755711708810095696602996821833665066162102134904560613551494185722447766503863502163987282422060741611484124453227303806539341614434814153016717992290430152058481851235180983800799264918257522468413667960748853000896284378823163275099841444621177295706726853642446571211890899641311593157381946390802270922837417843001795314392980224910403429121052389231476618093377096068770080196956474223986110635988409394966890980786930449422701014489442679631585092330362701625338778193680103596660633566422597398418310955523076597240624266208667293657201619417507536041796251130576031029806472217139767559161398582206884318578186983380262428947025617994573296887512092891606504872765358779854509212958775560458857700568961041207422359441698497876561529326007994454957516078720901968408002488075138270150411286857413365862665748290336132734332996616092823995817797095626472595631488988520572446284258464421699176624944160651923270317158579192336552755898796074840467494649724928980803654146818476161237360573380400116794907320933400943788574056357511978931313000348967039853696311782702927034230875702400015627238298296796656929129904222450720193914128743301023613525311654892291261421629385560109948615335704114644920429194361170601293929374374706521645813644447761942169858389091621733108485353212682086555059502992758920660793311112507303815438983472454208097260683074910145134572206868185765988015263305156261681307821268863991091375839944099579346728883004276762333473033431324820032274991254820650518381167166611444042142605901235244115373121843255756032349884568345215509048606026211822774079957984893729910552138532188680319982228594115334925300940543482706142147079688562774717851286192870913049566424635305592206066608043810526301993672123751144954909851643349816359046706957467480268520648400075512945969759989156086509419412958254180731604779781639121631499689320316291286866084764689874118548743747837831412288984765509545409437285754582938552868301005286178466374429507309434248171816856333924865483889012967288599492196515137721321944761901994843459578146632209533838072712405692646685021194587108224870978960280181205689513526781187177365714879782001814144008120730570546778493208834595801413337439228146635957052827148791706335660804243030546647142685211967361883636439450113778802752365131634210177337320788414251240056210448452462867603553263736632244864189410462681174500426667227874244569986369471799922970174477270535894815501177621249678142895969709487405676530249146908010299614921985288211046268503522779488078220213373468691321238485852540952512713201235147955603060733115739793441474393356973597502465021066670555936112806390943173394106150365743001090274303547063386222355742342466349352557417930914956794686760384241306622315929770465764558680823969213779635924879178710718665204840250176445539192418832416246096101890693014355346527489868989105141822172376673354150379840110342059847622436937195912231782365984558594167977441199324228544707166311388689553723834578401398040316950339062150239160083565259761296888185130264337219567862071258133895096256356142583279647214049106021711317712079557381095174960742687402510761036092515247970066600890152153695507150306377484866359211902487260011319336307223822986648946448990790263909147767872313344333393933301458468813839685614244442943459763095738634743534913293488464475820825046448374758294218819324860978898281185066440546544664511549584804483440153159883752663686133233437577428618390644392256827799299321232589786148925590260421488629675693149491559245319787015794368080080207659366051128439652252206065410527909286734356020374389852961025587914198803823384225619695760623237430943383704317220510467055845025954897273591278356457293961711680856071969815255017680667793188741602641076848514141671909729904019213666686464586924492344185562315952933229989562332034207250057584838673760280677905944962864212256288458995754219058435607092204109682414005175087747213202607876284934146783908823435114637500930948389325534248497100970097342271403821746651383579371969770960085365924234747277202829749406159582703776405896401587098859132770982356779637258195785572017187559151741616975204441682178724206226956267344912985615545911854040601058141771501853645752423416166221647987285894143986629816485936929478138173574582682024932424559894457140518195888573113726623603930243259458456320184393835242327359255604134476737000461295873297288268449851292115649775622762580567464331332146772922294163101970085030863417502700681012842361506220399360126768552662177986481229846353621235925716065362043572760521965641115183654117022602433823682299421178864829452981147414688764653549374913746450690198856578982708402961790738652252426741474269959176932810333243398157209376543504730479328722482070955267801017132387364599755553514184199284585015597604290727843993099936789002117473099783933412791412773359053129990987579568012654641840650825774960397868773274420082151070389027228653057172110424873610813659828369608396645596765917846094242865454013661806656800770007233958775698681616965434224918617188932502088214191534182909785735889860482391293898895015637554117926920661001744680527179187671089508804314525707683775781775461175172974745724152571129409446384007469939990646227260121489154215417517280787640842978436355530970864860232187198530613659948523732371103857443765820746804841829168858014325759808333232562603899336866147847215499133016038978328279709163761353146517581328873944651941964373704603160973105133151146355251014697148692784188267205478615246437245007413556738148010723815567588724570129517786156317724148418577786090661932694881412713854975403074328207873000454848484704006560694912824804579153830528656146866169094108740492274895390530943776788589085947011709716862443384399197531704955995384518455806146184361636533059399303072009001315932645315886582823104670524624632652480472732795723144527415653543852364548208886935412326219622374858886772132601920003435393129795753254769996367178320686891151699228209513165879053011310036645144069476459972070327673373100182642872224472543804792579691178441092416311958212362349839114582861075884140586572364660403777345540161235403974801219739100663862005091988024050625784660963442486121150405353012208709417155445333003215031452772313065101557309582078307665476093672328008029835703870096739292474330945728311425079375576001252279765734284250529667021643348475020453065835298399821436556493914733362510877104340214971358845022792474447553178225352407637102404597736950540129913098446187121375456576752638573861379946299717892776007387642033025931008800713650525456544400222478695954691845216917794230257365750606146146678214962101669597166417744754097517887458169936970905433233604658366331465000507499757536472090142282018801014942190676138831220778468125087126537891832947998752825836870921966722960200324522384579438608224618007126911953244994484175371916306562285691774932400011806417230008685236904678196467063005035134072468912978958046283849777870050864201070776599232924700443371206809063567760499098250053728954834125682799088036011528316826008925316240586676123830023043933527584758056836142949702392744387612206303810961817463333466768055253631667177368232901994867810252479069877547820879935819673024605912890586530789620283990949650635756151780815168028178676616362547954262344013282188518472688346764737881196607457102756338865514844875324561050187441799677233777847135098551557068493179854505247522905971881006649074868816434480457795402284677981622845936693742984897573503049406147931404011252932790541270747869328242468083881604369775479886356805946686257758891683849030478719916926189022730263125959381931928760814940689689032783665564629093796471809826319721703517269426142818355648720672510228900196477251834331783728522660299399999496831028095091333953160068767913209769907961811135644070678676547841527227592801397337177921443432531708356054006598199817425300080294172587602470467126008369336973268167919949077482335476125708938994981136145648954258027593504097494301941253286925712529743954617020556223567510102847138007393361266102281315897143101623659896745862347115950688780240307897787514605592846174907971346177442609455171203156228234909619778334003422210409557437915109535385009815386307829402000171461900100299742818353311413995303189253229162964744573662343420837739903963076173807715002408534098694176600636034164617157144621299087192998517997225290984833154796853546962515740624459724539165106887549631024275546583636600894605948788613535977154213903952540072896652689964555037502498895217345290119297663600147256119617351164004206736824067797866909918432397149473992182614507652446126189846670097698872456201141685680330190152522266388265462405395785555144412223695689948642174710071257684686465831065030232234704320382379702224842911697655095967562338246189097678223643165391259744888889931568740679849408625043701667063093228958779788701486783785298235952666526832178980070594660299258929271503348734449204994803642751026066571195229880647054728862358212646881284133545722149129393353991090121936302138268428760839265398062515273097639453845543454848134318244641777808126313441853814989627356774600350132821481920285453087897873589780706475293070512824957011377652680906018230907021681510234243440358679312631943310958435807059738291246143450927256426172000950870619973525830089402770014688612644715739048046881406931805010917296892377486108430986351002139002645200914748324299207573712638108170947148309768235754292598476871420994066330684995742737584711783204426487625251258577053246054015077752638035225045742475526478914004000622410847171280351520073859633618571355873084027880525591347386414251783100240929737595598693237103448598711492683191255928092025683585407974848175905070177934742341732223991162658698646310905581482873046812385507349197695485694953635903637597796240911075264776599111306984646730532940842733363352087797341222209212289300277978955047148528175676619780681450604049682610234299607053440570348431358730928841411705745809543750078245664590512549058884244549597662397390011565397236631897371158297944592274469869858523980044834140002746033351667253844196748522150699340932133878287489765570504874965116321031370128047251900267006646961122810229720062257012132481371030125056638389893496183008987704827307226829263498181043983865386293433521786589035997643167510128998742450925027854523241979027590407627903557200533894360771816185115869441943639123866965518579029093796890039156865483941986841959902578669448470198822555053379416775233488840439515205795134521654460363645141678669871389250941159597252570757341137902240584789353767551809816790703359167153662263789022559983039571599444482484363503887601401553629456890910147485304950594009757956814934947962141501991173050610459150788505641204567127727682307870184684154189353270187016195190027621412937522581047793972904019924943953941866614252482433474523223447838442106794534316544994318228125225951167808770256214784957531596951464562673361011778686694276263404591414985578737049595707809775898231247707188562692338736607750843858929312192100980484488495421530959781707663783376998306016597527144759738851959338898477993080689064219720007082838933271000222736400652931734395084512223183284178989766249732932032859429531218970867667049079439149469301995429946043415726933105473305967832240733328398056071251222996461448219393873086136600937173965445136955422614725214533243003109973087699365611784428739006938153248966342328487998408662651785663008878130588265359155108405215574275233494444791543176800374514831514381273262266594902800864992226744133232446701263283170610617783288028947570770146559588963230167982679267698680300008256115402536059539622411236010834684731987633633503108945486606230984831462679957591896418732594213493890541769252678865812813859703585582640475070555744420687191416707173639046216665852777089165135242762560675910307147650169003176379145887312873183819790937824046002178872708665863851262099739781048537723025243505082524758757098225270064500857061588665604995087797162901627808854828755115305414275630781104583358057065347012826465156692922393642978046288287627873222390990380519361968099208337402402252571401445445472861353673462134050763640244118940188739615205889402035203835979068161484381589892809130338227544641916862372446079372103977818502446889824654814625262227821059568906229524928624754620702431828358856818064171959933792617019395995885306668970655290544914238688981787832393526844787792882527140788386005058540263696512456401651545768593952642066459885728138740294025001192580161707617117072174082767505088625118883878811368928190158376140024757820474191849338273763979994615732524374035068913605183204148852049341470326492316045108613337711690474228302471192084665108126721930761308094499138836729580422226102244110647111123474935704976542253628113501592055582814369819221868319327488509450944539027939766018151102069071715783679359040126913930105674927030337457569293549359527627042354029546742709353152979335432179559799225311872372359286931508998944640154332935336692943856607015588716493632898125667528005223546062823609105431075672197801735422881236612741807165748042956816939909778811227787215900416104248734664315758528942764828725403217098157730488062908689329271550020431681031134082847214157085256596534389796972484657118742599710269229440705564545998284538073501744015733305382228439599768674837984125035208081651190176417328839726963839769473339626355805292793730557707164970967892889674565936347433495476023767853757826336050299548495329743252213725606019383518161796792600114900464068187235465807904988963241072902938753520440435630793418987232317004002522591707788310234025342972580734060098303501150916953052426097146997224525117800690068651876082684642408895555878520999853207553527747519917856213514207529891658509053043015256051512069267386280175755830531146341001835272178853111658850202917880905257923777394470308440742718285190338875625585234865424115889999012927347473737290847208388600396021080144793173620846821292290641448178581770464511624397534413945132980500971151091815547655623162483644780500116381795778315378918344377014772677685819563514338697067621656142099727051872990212086579592429515643713228308921170832432432824023892620067181826555326399625900931657888013819219549291762251587584088123994107003576750643268441887728397927325317656367949058696842123517552096846607525679890644766380565676835550501854724386349860722999600757909440834524873984484963908628910103502910954869439721225647077600007772817745031102491026567422854309073507816906921765294813036570985300088622502702389460572997988737632432581440536165503442356751326079183069558620862566610322934216327303760037909193058254534788856877051994088530659329800857620375492723496709066572083703190653803528036506979541743742836625289876227947610205126543118258463030265609413764231993249308979284042755508837544728553063625334177694500541399301678048853146071056663741307215366255580874706694327716449795985311769517067346716441249376569870807465854917974248706714212203726044580461616194247792705144836166215076035316258505036051819318650344999438463996993992675219758594068120052259333494553386775806846469011391237597729047636476363458116203229175865713791313763507317725999916609649186178680679303968954424236268791353404096446212039768845378579477651162548278355775157574378658068397249086511949312797753029117455443955818535860371170048832212312360539006311429755731652759483094363467941234473371826970543748639146637309570766243642317973777249859073359402011773539222155633955046399479897329787917653906118759156215206350906585333647226192560255851103121552716641712198634248633454179733800853415686438199983477459931016760341461974045385332319132334692745478160629882653104747559020654497470417670010788869882374005482673947272958833391689893275665964108536702497217931535802058677923928483957494460359102662836618331959523572468105782729887433712111417833939218365969117447573783154812620375590034311545895795927813486017915747048724377640192070540141294665030210145681739491787996713795441749424938923759727189532604359167802102743321761209028790347115973665592299080352248348442542485254664119777320048654228163820247524199116523139255342444553960397075285504105069862917037314504732087854731454031311189003994590810148667146962775404812898475346977284031291775174131378115460428022109548821817764325898702142896638301830161639450261467972734081730467741994023865501714381811930162860013161751353232197192805035591581833138437965233555630890383400689667832747846357520980549505540894668631216020344364480373291885539863200092953021355918768673370713167772768576073793465764112133542651372844137317610055193549478553921341473175844710819188546398468902050234067357704694893928530359515458773225809401191744548624630966046844125691967073674030475085622591565945021909685664988589240695698427110971487232954381649317110518632906400393584832782529371544344234593976900255318511912292454682273533331908672993553149336085507243856739192103506320478689983235039166814263798671623989672103402876656977489179677851161431676584555911476499747434632959244174655725513118580648169976615130976933762336630139795228195263269724527545894345375760428727909049174141971810935247200357074719784950649695881880145302247126171033274497815643439953093901521094152523410387686372581598979818595804522542581469926572166806239509719090020036065438362447217994024131850165463795983879355922766417630565150124334724644231849895095115822088724650968444373445550989439982309155605787635580669619169201970910821556488930498985334145864192622895296044322874360242082076546150615523781991415258281397601873625079620914235667748822513465631199889631649000024166708867655385316853660409524187178278590923313921212671569177679166324548872546009770552510933992179041737988562430765796302592914993699647846886723477895875325784009967210357702664678971370414146563682819541265381322096427974133925737625579261371929341841299143660396776620194413921058790838535984928790332575838880276542467854845633605777150342844233911519544578321491231104469341371097758782291735834250809118536140152749117888853704635539356339799543183146862097559194666662220440809225824546469558206385783799306980641804054778221078570972923172607019622507492501969551564492856553809215158919298307173917447165575817842827833427387787527954881717462548313437341102555707056417479372564303746421822968282039172233404658974325238155650651279196758522375762412065373442903079744920364312682633558360046330308024219630546277238654286093571722021804388667542904393460461207168307047974020484091773502724133445624335708457061556304698795261919734765679757004147724152270109911194455913048543980891446450306948280066031859467917463192147066165677320851419714039031194085257176348512318834550270183696615901738299893006284149574161353166328003737325220547772694512483331622077773999125326681162441199612290193211946558238118255547992038364139436576583895226811168610243658437658279462977162678662372310924193643264612419346205215716753521519665970919947148503853606915318914042418892546421959939166632724917022076976372704891527726938348306579703778041789416161856864792524831160924130578100514277610908822580051199790788799261060069083068211357173895422402736346937851040352785565865751500186005038936766778634829923308943946787270903028077661571645225225646424116440727577221624206551503116506037455973152480415103448782155611210825260248414143423021056916530374595835491275824581641807474177672489228658025623747250077463042310422049299747426856182913096764429171173967859885637993440026370337613020107323347760416975663307472209173208049264055763714139349874135097542856278373080017726073323723974104121331825868275345372015813788320816897585986114697637685960683849660732686513791307053972493248057388508618805344727725938510928202482789662012356721339660920556707800168673383982019571407174455228734027835231587697790378441744424921965559170078545361445279276152619151027942699694375493282482769961513833078356565469513344545735812180593608605224804146063474639651966254556224267436835446470168081559795272564763004142257670102139938532078610918619404327620939671991165434927827558515976181293190106965686695972534046526851100594190319665942124520918731001732000983374976662612299987580752662571860354952660036786773335419636572700267690045084354592198321686515843127305164344110304896069666291074505789127176177803422972247710818422273007880974871330208280350767801989572802330031463012432624143234126306400398687232126587449160613889535821881109634129353438563902802764163991003465127482046687141082238188277140136548864419118338856184642594570660526757401957518049496295569564836889952919875156275780593935204605104963473789240248965091766615281336800454154573542524160304131460707750943199689759318854422423308715949461600012838590218258801001581862737145092059166750973479655999242206964801941667646076072735336894072353059885097513754298812415458807679313873400736107669646166866813747350243027082234454475151123654717739035361593858358684342103824236500844074186523143709553012349883409486187269148204740807594600682391668274259100260374228372748559468186874448527854268957264823087901934393505297305849889330678649935279606400333751572648417147844202420064200779858710780449640950848497333651568331777632056554013869687390929754380793001160480319274652692960688749365778307795175136274659435543004331607747278654798499025181615362096515390309016801601009480920349192025228553818593640491990776304928987312439168855764115133649346194064297146845648277805797517595297623958310633011721400625752321336662954778107830880802623916916860269431517580247757889231075239551550419906122696174955191486062359103617524223695245160721615847512730324030350496552125285875209923218856212096928641949884931367986768310583365572029949244575695826868019601681591049402220737016580885112993910448131731168422588211983046261647649406919790640222147942163660081191397488905108853333888667689582922579353397068890479304679187805987431953803118156893211537592714459851954041407756008002673118804688880558546688320644229595976126746776523139878528760608006505833843421568197413821932021509951698465486644583143256271471419223609186747004305273762608125848619583945005752746489150250204225328797833288597265807056228397652617495556939393157205415667760985546443698634284958234417166252771171374393432509800528764189655992839988291020543402135376594569774723205058573121002951987427300482808218979415161570314278563750900216552636982104147366464344618173038302391680562458370029653637112936164620129761756735353231950851944720823337621060579254782352276954495365959980603798554404901142937566569830189025487689892572451348730708387840912649479279841771932849886248206349886733169166996998273788398991016866086583134750605187678993804921191474048655155152468001821139326600985592755296256584232510745876699591948957176046416531425503319484402060905361455964762465098500868197132013735470067246988933982902160220790444877063781818376976389950434753249040566206885138063265947724314232957412718192512604702725314030270822035008255017447095611392693218378783164184122496168180558102648490741588392721895678917545113796889589488932632843304073692008282324533987678835107433667514165819901499252723719645394683224748967387583897335483933617145616896642364435796948255340099068006013651690090868966409504669380516326540049247186540077717338208328083399609057135567249190314025491578869679901796503435787111113162557175586103665592937699135546177039707098577544853924741385647552018777192805344708249657248994916676673365431387905348534228612621555241590379325757980167023223538280550398258882322029800075244689966105991568596603469285766254836370496498499751780162919200172056763579258864871350628221730930572157078536282896258667306736866956701630347994582135334341343270016720649312969735339969723616512356101920506162967862939239938369951461987169196393605399678963212548163133186565255975962916151520628847537054914829743628473329276646260988601140011895010036459085578493774178659004515285476528297503969628433782025451198195349105692855341054786064097466693745990433099208820573023977559338778643459817828764059412452630701712905834679418582359077042918108496740545759450086521332612407274205789140652789855109906573501783713909459702734302363635024539191037414356433124121504430828384119445796820899997006535851193390758552534337919220816903956324318030511981935871543119828420057946636168666603178575490134043245260862191491205347609769830818814988002118446277472684099232859908153653384510349882798966173172175217833810186538597621185246603107400997435287942231126023892686146602892723337587077422971084564504683251590480786671947828029109079138173977862024470861701398127270995725655263285598852521963467049694706426037640932377264121538826772876090171208167928977309181954297116339729051397176683786654023198312118303866815965835994357122179060341060517534250541028584356577589467451713550639592890161561470302180401842021134732008432432817956503393210450264315944927973192099702845487726274375794327908032702838397726261687656713639611182674050614596910880551213204849747543884375224771057809382762915744975039770426444540826318482475054988596275351407941258879046452809255275518153095148986548963765255725904585810771297639536511739766890537620392932376766711151822986409187150905096149130223670251137223137299951955571390992677798973653892037568083648532495026557665148812272716262749208686333464349957972522497305222464425738358901774991069132330564447410635717300825764104123421724607083541741031349003218255820118606190324457498130146995582904684732271938106110525281936576381333399357411211935471250411572385196752982400444826515939737138916791261587870137265676094047892872599697051288594118342477217660672465227436939245885366717246995419248599945741851964763272060845241120695370106436783637433034203970159335072601304200650640444699854512559620874374229754301871601421075687660896547334130597447127612871797998311057136126372776081845057433063552189051508653371323953113405468968181625906493285240846634382884097057389147717923609186575228959251987058636467764360822357307128255257225369339562493030069652504781842098355863476418203862781736321055445810296908180921087515022296863911739503881606696346165231948006561311614771694951320529080692586037622631994851200497876422192630992040309564788399397377122675733513349100259916420787211147341614541021984221640847058939262054513839388276402678669084572003483386180968285484532334372558883098251448619944544241408488736168549691992753377955803787885953650694135701529362251620582999266614422510796675849349822527279525000870358704963487647410901571737912209462171075210567805404791297503086389491289263198458113083567865331271936281856599775915726511469497117201050102454962409609293649853702371695167362184606116965540232581572918664745615633378844323313755697411248907958199548005441265555700770550043601099792341258656809513390845156023975825592648225846707051373099317962774117308448743269605765981812991819595666773682483603345901315613102309073229971618202865302484906968257668707128268812227259868004613949291942787808983621221516888053521579235533801593205616568851660994476495538770333839362629842506876841459107469908251197562078518302487293097007162971847466805082253473057660918526726018610830349223200877278599752160184705380526572859944066163713643193321618793858964692155083752054499515253843050821905394404817436448372263211195006562618825509562602752671767738364499845825187025610675799167963453526830837357000623583418971516884297506875789768074588206679968427042512248570100134030912078726388627891016090607823326030244894592402588781011124269366531475823498715271190650551757588106532775270634307735516835651121094209138523322916526851857744484187917492847656622074486157128205798007491623719274890489492174568024787673792956009680930281217048193408963530258292330903199530790740440083864057935514447005671220004215935600637391090093756818711277543067980688661645527787809286342959250513207717169312703649367894172883911743306044160654456979631576420140207995848103738942566436784050951684307006081435534190323174890245290405224720015695325823471188351542333335493486787056763672667576344728661804522874587383517761429630919179135707093757630542143182299506654377380051599996881025454596644151992541223594549283434467993584447105890032647967696001309011590996610522486820854502994448470124128482015928319550662089956296935031483089520550879559133540747061819003131165317977462564607922166423769094996870302385118290949043347203569730112347276772781357649509758578143102031936343494042237508132424323256295859853200720690910854984615664226920001525750593465197702373295960295744743337868692241959571051416376229821126712492414495017323112300665028075440159705265032435610732394867645345055936151352505159324560547168555078418338772423560994917419923440898416766406553851197628686732915507270844866167338706806182296382239281905826187551238453455966062713090805108271726407639518119301907367062426994098208850601180742832960520464434522830687401803633384331079765219257491179486397428000797080882755776733685411164087284979867285632704154637523625739509830158297395429851056285770103047467844689496933804853261462816579675720119018262338473772358264444739968142280689164853096366756627810391616481364670214056827326847514723188246873860761596812222986968619176472786349506517960399924678262930239963439361508547639870426916730198102978722608789743463659387324193621415963105795003831175852697476413373120791444884985419896998523082385871673844310289875787528574055547688553137106743495634783046954017911826602445977188349450599241988979822604161449844067921527173082403377007485560249526869267864234442993779147047026979940465229391680426331434158723711761641066972363452546419541486675954743899609937500116104230660480722238190610230505471168356287818869403573736281364538374957366219369970093837257345280079238671006855886612622183625030771314267678381573815656839137379662931737962822509799731311188976652689693296766275624230858919604100040217300355637478925567069063980436700675192227268765128443802519874403650027122344780116444796954353835744439083799284993307997846911056191261377065666717875954081604375888914311930819413679139699336485761401454234546647636660507511557150276034242095677434581987443517335530852217648320751243916569637298781904379267559697250611340012309995302943171860235231071054296294092898604814709346798353302478300960810343025813666330827664146785777173531756882036691650743830575991682363433714248156003580795848551673056318367720330377879255641681160874136403665459967665822409674904933375208227928658702723160270619313456294161757364323079308112998832801749533541494188162920820961433425859382871870911078836440679765869056301051568401887471194387940626084878333783341117056877492998851612553240478535675310798261320811389699102922949599926364220300105187360840246021266738074958493359930107337867135548818661155502350359113178313768926753051580415830555114689372799749620136959731793208079137281842099733344689183977148450688373157788066799298495083405723376972683766207116010470672528101494105395091605660523374314481448146886370029912952432453741123246005880195910611349697304634772773664641673626096167823866709701072665593113232546193046624706507096927889651419663445019935865268367554981930043849413284219995765135981822340545750531996630629178774949497193824375481929993255776886933917965868338265163183285911200703515218801605699583602305335362224670031819400313838654321367726090685984904044040133080370427908517058564247249433709133552084202176752988667975354862132004300104200551362922485110642240898123461273263931801691869131831765765319598485432735856302957577669097426919535196208905507650938298670497128987128263086670474203433992106024146899109311599742866098326271149691502539356856030856367512627432024503617148505249902482439948011825284470729417422655904852140167269097547165887570132938156845049043672952591485700151973472187841369943082605465937561289316186953919155999446333361892440669646839077630923537556326221990749113680835985159422390982869728758958203954159134707803310215151813590919208377734949401991163816441506771272002410229207613357843947562738211336762948941556210452061229074622562680387155314109559354163640386812045702620390356453634563900350264684102092761996973214233122951142986416865446355204002979959636804282568153206405633112073078818812436345401194143865902608703746450256755984005114349056040119855089906374724475564036536558092217146565275053758099337946008849935794638732526241321720061805071053711023584196850694686813107747900266779882673997849836975252332912701970036798614948047749393577649772625858649924563822882699585502797960473962499418628376866682200759869589646223717447471797971543017459509315727281636952003467836869686424126556906102879851144577555393948977623464379109779115805066504951963432087753420680845323656069761291324037298547551151873311446183494197466256374608870202380212012035967041816240291306591029239117904055619331396297344065469501846856223061631522950214073724495874184675260309074294179783243196113592637446564509548021088807794174051303001482478199445250584414568879638437594207949904632844300205617139558325505044288828305422568306456974742279687124680081370348779958999692488779667392105933624846959825681705973984722467715017258963033419962019054939911074003789508544534544008196013603166177025473366399689222877142722175074196964145828387208824215290771654887154872871553249940000118787310777684768777257970650124299235960633703742898977033806460398470978229613486929952986003478228176058558680618062324193482585250784820386783431236203943682780403670147938947381879703898074607027640973366195615040934639981683535569710351915726765659045976357319358428132444198234841894382041323760819892590748693663137913141332882143635528536972147191455110304851921945682804178526248859014988967375543769824575993800252905797414515938388146762953124922445875224331971081649981200012319176609616569040040589722181029947480286956485597512645472893027583369502459404588593946144265302828074909363180986750796702475142799579142891388766758791564968374970967243110255794049048366071777192073810096350248532567304479730166540260358671241516608687622347895447054363079737908687760515598004031623773687892547772674832347968619984302032212742253970149317949092880182130771655428707663151285734463649478248459875988248659187425540114690598782269605198562491289426295823464932981339920400768206895448320721192764477824324961658264142066369931271411050034297410306218102430008966684541656138627618284090621379932514270090353334435063901362217467925679612385942755057710118323787783846095876003921235240956998645980148286749196125168588089237194788833396744481968083877938498180162399485078035037048126266554988341346727691350163156686647014959726554587892358675753603602968614140762037922046465723803849505950865813074694913443596038962321653453230730803501911545868390583600909741753248750062012079206612973424711693015563468894857020699211098746026374639651369908675051673034051105966066314164796071779013732061480719507101904405871283919270165155107771720156071111507047309373210028401674295691555277696660367315369875306724219338846214541581508774281506559013004255483824982281852789683062527746739742723296380710855492044470775269474851182274735682087329383538415543330329913268512273490396771183733354939618041323002163430543945496005281872863354575560347575426744435802056248580505166481308825352868455044975311908131389367679273317379933932286095100466504439026829136181816059467393139225955864392015155265981334964896634589782530515320396435363869116202783224854676260222756639096821151063434913912443058557102377028529580496234807333351632771676786387974643420460463393766868471791800881377830835394608164026978753703401913398522860485839724017491762163564237306891552021531347251619761337723495092984422127773059444843043879185248624201186978214355112897375178231029602925544881990017006870640088948287265596995626121562302785693952217157263955684869119913092065565519200162033524864888007008866303505501351366361532057761472483105406614433347019339536766102215124716879924159779719281007918838992301668965860967142235026114315946270441208643083026831816300006211008208391876362420376365004689028821287113545491319802997680528503879234850808454624932366006393602034081368246801269789303374187280443752361216796383818462856351271959737346741966392435903432081103395730736397381942916430740491106354172570943204960162633201216720477141005491198012420938346338231108917685302258070040364199068097796979285348047052233754251594231917642461194360957144098667130594178199424546360378320911375805074537141154918240876067885480598934062625155550046673760069455248660473013506571932883266610577614825016003995446736788356413944769779299077723711740051807483922452252763707340842887623750302688495116664768329411795453423148798032070431406583939634833890003215976858631989982002813157158233164560860680920648013281517016043959527648925302579847118205770674883417670553570553770916522869312403306003295748259868553661752222595870419961654393796947199211689100732536972042303410474078034946698361305897261192911266952243081448110153605622294618890554909166133873945531220453747886153486489912270178375655192581467642175236337657511879672861898412017419427861959853552758598991706094521660692823190749096065502281723760668204657110988544171437538805754783616528951009152547076007460929228491126635522956892381338776808574301980963478438592221831414938345683065762977911375330461318342940960134542140139854859058720457810560014174688261519872541060900866204274063855334473316567211103025848988284444169109412400308279040649276336132197498339096717733758831855724253971933480523216957617472744256734144996062770650153821790600722517247446707769574617793643905461470263113380671124282484553399793122575008665447868787069106997924120092565220653177765548272455519226593911935624644855850297666498489551929957132458779873547189925257172469615770488389550577888409420830972567374834861365485797043152615876718183868587610092388340418787733014477915009354265393725992054304199685774565965578282317827433267388237340375197548629916112571551816834543811047883138268682209091598144533566175009569915164485015614003317500918127795426231633805276935500462159516260697819557721251558262190155634886117546061981925851807110173842362931690777168824627009823589980103866482752695270851951099485456331677755081756749054825750271044289229237924514476111609319392990064675018544402843013568300534745920688624952234116339600623748888713049078745267969323239926329842980479496784463427214630151201453007983319583557259356276088642745296406384413103986201988354443216756836916804998592478194546979672000333385913885978359931150782460028169234864344417488947297253647686850438603396777146772130289942172471408194505838666949699770252357349610591035527463567406013443564684711041081898157105880463384472101266610271516903900677235936643837458498899148340042064506707086643389121381802973447562626844030657974361208801595536271289759691173008443672429822544246428042501112838116859525630715132592527179247840515959904073101913025007407044751940178895372602365217863273979255511394251926504734607287222059709059833604366919172536647918834202821807969816876302412773209477072222128869121731300609691510450323811081519007120526696117181273836336389282853242259214413953682398072590816634581630371013122234248491675980196863594261360008231875707628305864897294741353540383509589448192442471041018459404386222376765247165340976378282177016394024542776012280389912014349077918704515673760701230895643619476443176693975663120104867669018307651274441020793001591836173806009002811253083025520466152172051432573779755985858003825090511475202026709809090364842201541761279357570775171824349249427699096205210947602321191121117363093247199784885458664366821388420859120894860965551638844789206020470533753744011316277859439135372041115417701903136273099211622953494258618126553672234380055557291123362227433901316666451777802303176515922454631659940993118012471425099321664170320919633897059779812439961849297877098847725986705690419140280418978957868290099672361647885682715187286909302285018365150774716214729547272402519953115293846177690171362945092323019222215847285559943254066842318975907515161380999122197687428796614176814951358845827698792988973185997252361035965726816860256182350130558648402908454692338510685658813475919164344780865715517842776766394560702273467127785088848619290151355186373267518929896132002816622573623504163636218368290951337130922331260816108142569458656745212774482417797476921876443085702403408715186793600214778660767128902332058449932384032898859710259905963898121509038660543184314888726602384628255264874320018329257399090010919347523367261740537145036387276220941301540044482683870977985318100086472648251363853888508414160837265912194336907532226373573416670903170667585528998261226310749642179690626569428666988566232384564545857379875204574126380242838743176651108302939265733132066294059636615981238952937142872293872792383434356647717891275728156459624930485851294266463309758037244176514685338905549242923329451381687627670867703891014601443331712047662301339399163193449169337764797873841945892498246375883945191500894649953323882939714565818752791526234483637202828284967550582952622400254060510316015884384780690967059755918172361505944731180879180349480192396804373500951823577239277669402340957708309896322910825556014804954201257496573543985673473965705521280970887583498808330834841978129047208565021841558676018392750966579556710485205638917105325654480003392222788869839141957294979830684602066314904278903726984614977746067614098434353727616571746706512206308180366425779708309972866612756348533925167571961274052928014900678865772528687943950508775934116632157619577044384099529247281121389626226590984526799850132897524973829729149761809217753194958044240804600521891453309383294831103832768367082769938689545457514162253163576373143887456047827419434139826109584300966239393883157291286801253093230163192577799074339781679430808197889639761800362738466408814755954193481581099729635033351317431287948699715495439286668686820587943144876330158280867657935033020214667559267321859901486376766539517229674160394056778553370487668852870135535354575419162757771029304705249649032838347022970495069922292533612519949726171810577283755331486986844867633613489327166551768570724514521167587351558448651497574099341622673265113114161931997310593945990805119502885888404069912534004195995490616567745234659007634454090986474738984661140501837882193810701308084930459861754882260167016835723574977929715116146204826679508883476141386616587286428381999528206656900602828690093121075405575183851972162084214263262577373366571330948296592876638840915633607105090008324679798404546269739913082073813544736628983863700719804257041602343346243462374191121125394576009112766933213408819910010821292631448758396114177622173478355427455917612854684149314369540695836682813296598840510763871324327878377177550964592198653000596393599819240522642326162228562330726684734394274325716001576269479202009639288371770327422050840799594992180283303708608407476880349667055908719550318278077113955654655326996969382732945886824827675735410986982595672080931047589453022514377106771664010605431572236238707483857013693342458925401812781078111999624288493631732637944373202602602991855142760175343157629816698248850357462036971500711774148300751785511201224248195253171100377516198407526160520545180923499487388624883404400356382401219717405344231460781762885928862973439437881191966999058634285941100023834114140091723434611565789258172629481187097017793132407072230350740403409557924566615380435554836679268763493060026929767025732926851964521372478567774571265054613306556766947014971106796291232139469570696521276169235395151371010174380372346559725150545100712726558922153120234845218372526575735292727977384768752451800915611478198152848416783008619259898855533310506196516543040737999926136010273274854624457629536391051018175446572176239626312265989442309690460541017003677549995683387478778378122918926846286152939721019736919872724222043185436474466325173172815738572724310241865032269493121267031715133107489908247950071804742728238571537314353338208925895614905047674484538302570003161243251112581804009434872428512081967719365061743146478955831242828645716586743644286024010395245408402574050935435334763672452630541024786351694077678000605836819346282116317033444294254797976287040007866224195613920422042893891939311859776609167192670679715822066845949203831691959518909153838705689880245905522209170379242862880251116102716770962878708469464432740075263057643789137884923557219396041006857985138943692561517256441452224073642784392938349764100062599138112895223486047618658598729784649084819151520587618232304863854679175143090087790310933580177686968794360228166608818203057082038587263153408544351118843106010942567170372011540084407361702684918757766423196388223709315146130129608796576190124619180044785584282692863660183516244068846241488553436361739832364939866377776244222669467900252474130440910009645606111775221406199147764868650220235207923197424101518278587801732212540158653690612837880509078190696031784435201540739846819411105584335800012313535061617336825930189129073301147497473227372192090472525507084711441555964790598145927949152967748290179989536236142471690485468338492935069397140446903929389660203905563774989350661625040655913273819583196629904647261610801409372294749270189110906132276481373177733725376514954264538532440097408133872042486103578064605116625019639872355197583289674850731131854270623359925666489241204603717069824818879454475610166653021366406820955496822204120066097204630327207887592892749623059398870012097317293599885340962707386379328709764752390101938268040742186491599683528955013743309455530529173343965945306273334603546524472995720992711686683956705764180278017451005269199067904556951944611224394128465858663130470910319144122341236773628945761107380861886270129824218420355541878778530314469829015196213880284149245801009742851015811428250462264222444070546525705667858992442995262616444264704077698240661366731161577408075550826946118396923756945086283549272970834973728647528359364044627987586572781699939097066442574635272615584428719131830320520368978202219973869230203287182242576045728951697649329300475024250277358632993912308610898237293964207627685403568806465626954404463671041061179922565939821879789443278870468411904026564125228794851012846105979697584377175132422850761217041051606906279830712390166665085915549956472422044159339284308556048272295159855656581529662699652371280625602447277054457894018243137758632034644672907585781742957687906035352557366325352393039173333426528786015842237500451829450581664026720663783144136032957856104984783590963672941505575133698032112247005973597385156094025176184021263000830136422960615860384100826892486885648398239722695132416940735968528337436535965003872590834297775150240233236238404981941638269708979049111554562812918276602386157040111052693261381617837248828333528489105089121613624307885607730940797626347299698645085872354658604490960765417020818480589510593484732755791377557194240640413400075596980329831456838680632006106894153769727850247862600134521434733660235841234376805082044421338098820782754851778269100536141214627724042626950999000924689715864979044325207130865728578414223867520813229358172785678606849984812752222732176224503749506240231236743794586242602721030977075034873602117897586510383962396443915921038227310866850436664819090392176507644503945706728718465649774671485213441778045815691595894309563611009037743702328567796540659704020853579852981683850169880793056663964349260564959966046907577558472704138926907408126189657407232520166650390579769413943000861191253459650812936234641981029894734285303325560250515517497703472193181621213128274482881594313252902689296834282627441237078984394853976014966419706081653579406440411091065877859208829659233670471733623800021845783258269603558852537228841901591085382062512115007429373323504040835290313127920299483241062131128031928165307906829840344659817978836973029314655768317020417191441059996733238062813276646403162873482216323655717760018119921191252362422244937668308191828730588985202501418389528960889965157757361499545025549951311214023458544936585071952421472496702187302250301693293018322439634854157744441509973994363001376464137854238661298753747881412991288588450982704151180055533358919552432798062441732537145041840116294857302907489930599230720636632761158153938040365419176761073151810015169682922399348038697335917489696300970839823323769664975548596874274859895830916641394179984515620531861578788610907866763091036999625831510528808702056346853025922291796274365945877552709984909017133290070952083028830278586783778238983572654546535509752732016596648855702248062866432736401929773436423743756685398750187789776580668437667680335228566002057206572952113578809188067217725211110360178789016141799134919456213695560097156687794306679744459843869641060510355243919191575842036023186729692024277700737500728061090363387805743050393212071405908459615790670010729983243925216632590841757577359036850396408116297966134643092221476155809246375598896890817946534575015830170357971376833164712767207309769579387665289102064314925025764992278115051651022679395406078252808297725859345984019017885063736312110841535042977433283712033779460081458677057052460462136151128944485133677777308256068536133489438363035934395550669423982636280517114768086495362563044423340275503852018245702786678599752670566526199800136856526339879482508944818782474904705254189385093851665748079391348706374700116025879746367792397208030147808294970828953346531457691259997158179987283287058389258367173008223287277120092827697267334178858970291714350916263513412154738701491203279262394123514849832518112310989446800136214983486279062104790106278812457779746396982473025849887581837615750652027920524784798204769980591363209669028141064015401568634497357396973316521457127457751345106287090849822525484120686838474152197954164286553655960336324731375248762435576427807682164967314801862710504621235426801237737424928770026087157873652651193160253522873200900026782008605000858123898110932656376570610417364949114784238374789184776977247766237368313625901269527376391720447171406566827218612572448042490522491435524091385823212486741409882029045396403369996701178482639157471831071618749189649137620542473290694659101366086319062901247484746413241387129446911562327969228576297809586060751632270232234007618991080536491947148774082446719933278300985232381762445994549452776546862655529641902045759898076107036884611374599548991877146422057594571534978849870070179913937426699386759740302745849961479759426270700169605287516868852558251997075056757591607810011083623000132664567973531347194304220700426595971057115409817280677748308894596004993032644407090731175222719835451586161666157382975091349428707612012528852309699353947134217808203371061071772864078753759555398640431436088674329439605932434941033881273232234779971752113262409189170087337605882092015484366107852378552330560758216609327492579932504949458514393176885243801047932101978855775298385820709408200896961953530542782255245327470993651076517462698425773029972443962122077362568793003426626651117709009673723725231176642135645808366914727095437945569168581212828185936694055976456222064628397099435348843967260822841381395368541547667432200257036827305233766922036721283724905872966925157207208335381415281739353322343725254827828954732037026763535067489714182525517125092211939629189551840786687333049051010304752209627752837873202012739069902238314363498878420240625301108565797613285515683147325324497674510066018009447341685064640186837157477638120403253974816010328882415172125851401981741193887001547577237663971677451697979455714933987452306116821242260135470198690347788576966422204732295666563922146037704563371946519419920133929630222630516240664103095764248926448138417397555749854933832232384994357054041893723584069952299717012385814000747097491603839316761987489406039674555304788195747990247300941804573857439475797001835006571859693021916584814377537497217548618436266219539046682444741707505494470677771972891463727457971318213257711128728317760637153439290484682085490579151686922372271298727290276819109232110520647118065307235907972160118171319992929746243762689051080859341000068567077684519548928886628877439824654900904236106751352136209606907468634360239783343966161086017512566381484004710037795492549695090005693921938661449296788002271874535782972886843436022979690777054151271771077968238977766195460849954148712567613674568757461864910545397973304429777764627961279967870420737643560148752283872398564616325922439876022040928893524048894227601347865972303148209808897911756971795360512062157077188293805739386900820414138667398900028548154473213513737950877871114234024849110024337431799881444409469417878329652840512627133268111801358184079976917909469958984265109915977325959391004153498522272594746353148664794494135804760314909533929440583935275721982619152329953232925721138618251697095661572909236680178671461317018301070483301550750851376443171482065680785231205742118994474670119084276505627409383553561412699082404435123225921467904103568783553282731680379411174391811642033735360260967284082800971907096294898003619145624927594165281227732829260783011649497139813137704400104586638867694116993525400950335047170593540243564774320449191285336274812895526323087249204624238154297968366059147400748920440643907139903962559230190663801103782592727827016853919192265377134075917414275759341623350966987819288008329045467503159378475067319606223912196536252587134685601530754874932346030730483389436622865288560401258263304404889538329578689698421032335383876191098872478044346651970807854827395875567320846292243163220000517710576851709700661122435868731024872950304634978580206283974275918878176974161912344117129043039549167534392127304202543848578229806426314526675248809881707773090637549836971044074686921424895739250805652789138708092373536346738515287751386445170671019600876452505119402426050003811578557242549819743833135183863171501527351165910147633485123009210944477244502955885175526824509497357392132951803950228267045045787106451391837149505387574067554833151639010158516975949854731654919155288555235114032298242710441645302233441166437710638861088312842635744818817284497154880925602814094813052675333236172271473907243578671732965553390531252802036058828652709487177863246456983575307031725018922745643562894792956481119089913416107673895192692400594138054446580570791590416611761293031325354713666634658987831146788562535747944955967151982855989335702274049329630700112616167756454798826029829271588024802742038883573675914222497423789921293586925316644659478446661490449531280709676959560664813291841603813487946747153375029708802366287853485665303334777032811363641566788614906375479860333242857782273471151448222515850976806250720531672239697734789606321052225816797544092681849592136218952460959910137817851392608056301530424212237308704230715680125289498694631417282399691417565239203071535156318193319053368133183183116792479418173259200041404763530619494522011187993944005068597812213207225019512366155794567665277694270289086627188549283856543280940975825317782714073990672820377090897357874061020850811248101398730446480779740373647147372595645195457093640413709730868206363720962804973500277172085760580665321976462087223232133186221370722100039816120468250094008772256023070645818333612871918054481703190150090801827221019980550130416542774172785966354637296559285568401843674860876533849749750240031299605307845317300018761336533027212948086963052063702209093486690876044122530278361699043040900472525041265958671621000644667040936075099572499738524465019705821753920693634731823247266506676187036941065514171891563532107162684417449401058206889329568154642812380970969492377453801603294274035720466568497705220621387877590444779189179825091951891381760694661162634444665258516050557687816742525389458229587944553914960222745300916746123439621992147456741594957872680119413036447065481089062928267513034687850923558004518497195369829352860099575543002033807553971014625877085195612906094503470827884470281904322566640268680959850524398293499931642001867405815158835791432764098676420423679116019429661797237933641477372497345430074706351617615141405860366582468599347218732750862506055135539817513591041589505597783916872240183270564272295608402515851409579338076670853246319576410671861518484357263244010685567859329471315590311448861296801081912688457933084091340472904164146688931721446491258726489836282619720325853105155308869924080976918299503919127378103304095187862417657880479269015515392741371440612017708151427232332733905399645898810122637450768391077404520114000502605217746439758515355950287139501929737246170161935931257771025745595483159338174682198481862373932995095882827340289845572618562357608831726613721459230986488659589233858969675357505138934684789778204676572258926492635107611647673541788804960683846912835865105946161068742475753022175300648142825662094728024800408514033037516502047797758884698796824907745926623729529210748045934329998027729714977150620621149549298108522641654955974661649616126468604976297616507802850027434187262125847709199847713785328076750671710957639290042200436116649920796047180021369314138854018678306314583184910802062952576857275350307686205653745300429484147652774230099969364066193782386399225695347768998078337632281919767267402624608083817959732397473003573709442275782473269779986211285912124081713343890304145964976178228601097564993162918068474253670716594178732562224563177469001652157320792244719976708656818541563804377697724474707483751990706560802346686440910084522106336164731278490552328317185669404418693591325778161967656437649373641111574624357095670754316451205893124161832604993253363256674876784493570822425202876717746973191741606819148884458272081459677713182917841295146527352233966531372094785121446022108503054595378198209305129739238855209897902834842055520258068275449889200020815426617802944072292151758375524710022296532915602317055728941530830891904743659432365124112165528892285134358081696960699699856735114056348030424158733127312572448397706688073424750008903652801537186617949357040374570009911134155626453013324625443918033549640567129968366896367381795846154845972659377171333898196650539108059527628948414712243295397354581389502358221343841660615787944924270075695539652911323003155729150688401990502971719493305893090741423586001157143306162444789352690116087990888130718847220012888480806380600699711134731003074546225357094373345806719699162379846851277401573578638520733079307221101801194961783261293317447806012526059506408768784724701605266876092495653537918770515692043614600534572307134636799744116136228314916694796020413231600996201273866798664229890136756623728619292260831146756693112603711416581919783752423599031737019694458832279541727002759957184791972402121001705330238180257463560620989871638692420306368794880980697332416668034620647322589812553484913462943941760308566716239318577703513451401929169288904481847091574337336559355776878682953283011569939054427928745560517015772904853778257166443975016212792526852894896133851772816383951725176665994038580916340505762044268836815173187341351941708307849506604518287016962854404308089468844803360519495189929202671117832866346897296228143526818510096083856229154959472947476503267642107107165106826015498237208191888043916421005036111951864363786097040587960265408860497834501592423826260827491630069068655869662035625292476080271057457524208944179107220436978156745544698994632382017239347380745025255016083859530265532515305826694034622105669088215186564116187046728950026742330981448439535706935462565503010311307490128427699199127006909972278585878534906525012816684586186596888810419177339735059059195775908129913409752360250718662276799480514764112013810341915823723389302038752587639700024876643347593240098968324221175879208724486455163490597953056739952051568919066865813081950972794286273073879934257376004624605381518025109543085297264514667703418941665390409179252731020014264236112159054255230842739917085738293871201969865082420376809044141939480494895324001909142489753213565567402113315270325522130344985515904963490885914111818013975342963940495255936384322763015775681500622288295021359718944610235587365582677694612102487249016120383683163728801594122855835399004718909399866689241435866647113276778907880154152417820077520842347076041984923190166448315630138282459162534720121687348338314575128524859759050509693484518418814422016930648845260464694834258485364200918416283502900147103781060814465016356347054207530263483221553022815173445501553732948992774219459768606911038932838263802117069890623670692225473572161244756326548593450985675168232891687280671331243530632738466678096886367218320555434037385046804100295736123845638808800114719623985106291144570950070979294411444950637972065070990422329941615106281737094921641776191067587377676170055941070865512569573034777707146208213654521561607608015218215839537259095589823799200973954074298440816604510640471570357063301264565899875056186851962469927770247666875968653411693435466073944358248700633181612995074404718382954475032771625317811472286087834307867018811271462140152861424297622424672234737420047856376888703630998201185218333909857624935536193373040745416756841216035044819528107822623501612555351390946814032497679537271307098277791544453261616215240345926577194508465323456473337799622422173612750669898807038719618070867130663148382998577342251363127184023535373194048172254305699980957739835342471289443327982785895768869364126996032736171032503824493888553591031504546183904808569332153364693305256713061492192901957504689652255854343379014307657792964228796025103580582152042851559157823961158035914383846271981516586545615725007823387515488051491579265483282300886835519763247254191306237894169227711976458910288431099299361714209381100642772212805442649929099128318893549577465284831050849053139519175944112857227821414814422516738200148186097304086159982397141644092644541862502692595126411670756315458909809561338322732295523095513980969346238789159536009049918537215066743740999827582794936599704645801656777847426790236060026483664521220549853398408424524922411122785627870893447930684798313773631148249862230736551002465877570440904762146954028356156552475716984178789830156485436679884130984346488801879595193307111176691411323345977171955218141913121365652121235083350886622114339354392653831990641539860887458371326588099753806439932364199011539360750039783767834753781887758159713895131605937484174575825651998444588946191147169324001875781347044723264534063668428073843417575439541981592791785904382629002189038007819363587131865831635593612996653800699655358916241483804083928215997333405479831812981604991666866482860667292549976960619838405565994166232203756290699123238680883256367113947196810684188099729566383762716907618963582506750612845451663287769388565119359023330027119314019612820073135941170362514837831885314996334622890934505554777043101122931721731689721996894910647555075564972028344701596422171210547491139674853632593349488690613188666804746596576175176753897918338830511602574384340055524094858068241047545808860054973252458978455491199173691644967328974742888760031585292229709474083385601301368655653755870451949448794629440624629298169448994865076486992449538074384715174650417171743140250114440074122358581636152648089473650460077258520633409131782926092842056575237271032461922506838581009812933234402300633093591523622249745719179977315807111729279024062137318109654195182463531990312305068158378226250053523790200139836386692171415332557414460456684898448994361391147039643941040604709166978732194367825558070137449793464147502875514260472644152966028642998047730924836869187238408275696269425613285164891068649668191887836018829727115231966004247636016703662537818505501990619167535673035061801036795555731611091342335356606403715806243404762806528917269804095620186781032529314062709950519538985103560114826503476738630779951650679347210461788817639713966649173701450463298076520445529905889349379408214553896697521069344353731771861655277482777403414881065607477555534221009693082323042665149750976174449162870627853332071024565480836278831817668677984657389711554427964757232761482644194433309644862562258417574099749953204429296669632071198154496827952110422236556917025788370638406017633951001065647023808693884717343109011012750397176936584683305150034986585122398749337895480657835890104156737973158600727951946061401101008132288268380681780333366486156087874631306483081977640514755529202132958166557271011118724251769492520349651245076293511370955680330909294782593932851919788219643572426183795872421153895513773639131730290451869138881589012642722256823744261722589723196727600527667377343706813891237523361502964227381133700625781222121081779770185108515167284727492256232184460886386846669015851450154183507606618121047745597655953335829318601581503306706611423128993556556232259730186919055188610965280714524193025878440592686082295842178084760506257404696469329412605884880523832395138088072210979476964077514262564425838345447076332539391176603405133822598569212782896825924330943967207677575305416708991128664043402633303241695610849336750007805471923800886012588121921056921679851062461665452828457478026713658526578948992590887043183033394000251275867082964372002835482920301207887948399803083877516203302791163917150366552569047401881698429607754419821331639407942322450745062968158528585947859229293531935451054278185919819154875602183898255946134965093322624485022849244838628344141749626492757429609978189261421547581777384770821943463293819026901169380752069302415806124244442921144624414909302924922348299701625381253203380044169574487036688573728109892963689265684655340664187722825240052529837560385278928164383354964244304364364406178591282181966313596986869994278991780518505681779190872328531301287148368060644389950190669293776713697296891246890316258526320039586464010036264200504104477690931518545564249856120306648230949490567822092604538933962040212549758828029272901081859468861008691846292285758585204652145953456043311639601028183299134890381323699946767757392313960373509607271586134991193217708909796983424786112030733174993537778871987085403599557226501553339113747284140463320370615611955625583322537464143819428899941718700875578001395884908442727395822900741628696988752208705524994754923789318991097380324712697034350005264611686262492090816544032091325942266388934384321835537511808541570194860381848415128795922340639350772883091947139783263338946611763265223083155220132100467078726713511643678976698198551101284634065616213273760407781216393321620720140353811264696260024267529482974927738823825318547773197512523928359278127030247011548469260554705605203965737013817838995106775238701333369347597843806863394477830773272421178549394964006168930434952970118494541686938482250098247476344782327594046233319003229678680766441581847455876015978068787825567224906095680473589242353637167627740029514625618501331979176868853371529745225055238889245510504794617755305470956283447013360156543627608944503310386620759837452445432344327497573801868730378208033114711078245053229678909851477860669147241334026823500633473521397554722849736842654794500036396705948143515349387084933737759198337212890109538146685930054062055128743415579718251061964858519576449942828265433021821189804682321202182692155965394438421876331654498312163563784327958287491416344122469346224582396460716440995808999163006220392888507576934700075231609717665325926116861217966036901110058877216600649961020572336359463510643607298271483666545159387671160463055546173554994501053451231609709311771256244932802459761906012188879070574978176040919043209071773153262121195721700091332699605811475396611340630089689234091128948533204096458174897828949463188838866259745991292326866020083540269622788143402427212803170817094026773434292147443145412573283852361140313930941417130704406559387858349647611807837580057736333452297206687506257535724529437354432681123449290641447117716627123006223467631338592040199892884144670978401511818247173403741817183140992764694500972866729742500009136025697682136040360992038808277749567288124220592538977329101853971365625094858757530271944921524839808165880213849938398998179220001302831169515882722201524004523841549375618653198213921813672993555469098619143545166399730850453321195426616640658917503043284251167212816300266248091311033097108605454918671941326004190323050297468238695408296865817682521601841609178260173658943320200668962221244904520953856855516924331720889786113244916596761583592189486147277811393660044332134145184550713339747092352889403030526175473904258385173106120667691777389243698601290180331551883142951736432126694997411736212688512084647962215595593731297691151266681322001832203677828590633626539312804688545385410283305902389289128231777652862275789785252586485983012708636860295886437729526900342656730510273897323383509928490598244327325816572580657309095444984863064941806196906637123041522370932327848250776125087574301851405277849474661832148031438702514030234270350679133582618344538271331521515221800301899221798853961112110803308132490820093856567372280348733576683513158835967461293229848358708717319670944557784977550795561456177499877711551030876205212763478486043860667688343043058566480111218250636345082777599781460089357055563479500588047572748357245702378441216702808196807906967985558617932672330374130263687927124447638457018225075431895035578892949234567785214810358659659379229588524848604584320320619048889507221475059500086875202128431694490323849121365069240885621087619083186678852739903400889108472929315594837697971231854536302192471211201364979152136844489200795453497455147832368822647114687824179438088656439359356141580606635113182415525593078027501582796385069213117068384607797281291163590411944235833873916140420079272159476458782746363905648871067054164118250308992121904262823009770656663900244930643283280662592561654330791938567546796244362358832520895791233451765845777448848700659403837551037327642012769985953648221167901690613764061792352993617709568491053150814063716553680562000486817031288549873262485808464915964693054116986513840927722791863428067953600289123786943121156802674496276322390629520580238881112345381868578110739605932750436895853690323762664131334026649798653038573715022939953377914429153929094037864437805347628622527326938522816291599034653587092237914315674310666835357413295894537739026463231833380105693577630283519627561552077284608110650536317479440323943493068610212472098702576730335471455379885757412588615497488400194141442562999027886023299750701898426344178416707963593222627320992461502532337595008953915765668575588852702806475947274488077352281543551805032482931761261657620368873460544710901702471723241155025032326344019438009913482806231312942307976754905898911128119545110694815035539555048815771091647238128816203693882210647902482415015282589935438179261545784143269230628098935135342409526565370555450856154153442839828144456704109118969436003953124994638991334964139025824961126373272346991938261261164950293920518770592395106085065144412972533198217804744350748720805750224216931805274110439141407837423762713787634417119126533896036735706638833097373866047690843171155929792836797645818698478350671303146033181881524491876642144506961856909430425812288535392078732543796328666848342480237353050180844455989794935132880009262664102606502575381863872304794978020819818715840545240109272901779257310862665683330394186028505751765819457643617816561775156963380509553422366070975982327836204903876113096968341385916849830102483063800096042308051789675108330804207532795005234618036953662620412767976930101069534959103440310830889128913003677074097477725854729852897710157114949783636340447479848569151844552856067886604827449057247673741095843146300546589909980001776872304997786133559083172066654063382870577609438014333414416228236357173924372759168916606206726238221417525309572186029475470930512810368112017501092737783588404146931722970422541586451763824756102808076435644639978077651485421832032738751251422227444321146846443496132430174929751558031004642722855787216035938695858424231358815644793200320878172411540151091810233390484299785297639194728726065583811868351049586963725907263776972559392888453312323308551002576984430543517521153555648805798828118233024720432230031000147086694724386905487917996245653342276353945068150584176022668355419239260706377112048561162590569603310753791835824339592980362383664521553987573862513361795228258378699213282447002894592709126156511930351980364399108835567437861662271041708843219676326514929000137127276901713512479571709291859560749291892520659864392537497397049891828460764322340899767093871446091614981662235894048762226916456261811671123816153818160674215144061308633354699450823331858053963913014734241776932705131516142204878725228205934842350042158180510585759930653902445121435513714141767597255833053149152684107470391434935286842163214437649184272047031323703975148244442028025148285498105235221220332152982129527157394465594665811554737529700276129713840920616879786672139255388824078941032970590005680296397438902135180467540545950628295028686933966431817794782428028552394635864594470320911314388235731544281557519028319763132232295208544472522165618076457128879470080985436061604772907290812256049948160214149447334507762807397425142750648151360364899574344354373460851371328445225351025105630066654972863223685381930502555005816625207223674005180226981702744223663206400556904777913023736263665012106268133826799392965334856378505404552852664191373244958222073070247189016346479527066368311663390045534395106696852995791608946437925202105106469508993141475659156855958818821802201833146551396667969496593758608672681398819383992068727155552130240835793483101660055408631238345656840985897167044569954096933216615269248856317741182815686982549535430685427409889478155367470312457191118762705439821116738346035304519084620584922681513436892551178462713056796627925288825632204442482906494447590640461564299599937521495643620988842750718150663707036546712707680728466904260675718515116965076816250616408628042231939902250969334683428528941718379728725798023725888368730852175237190679341929726292427321644948966199777079688842436261266656041824180186233719468140443030513560834259167509871206689910593453582895374725783933258982460433618195617677430460200326337133726602616715805325788098042170938643395307057621807388987132118665950794284979231588397126757257744333229887308797030556298197163884401374495750687609044589885400618141777360764576126702146203498529781915126936200771686325028689822877278466663341139722318878231976585032101568996239826709205571894410024622686524387804195466777750676717214601552021908900779844691215048848758410460577867567642201419411934474549195987526816074449164598670302366744634007145562829312262056790770339093074157037860647488588717717748146552164176492680187554595569830774165345499754056676299979132806624975562568629030406628269266942789091583043239145933797188837380108182320942442369557939184256547488294004459960800563346815400092628808291218605437817413506970065047250522152105154844598637328726972657471315174751956001854849824792129269103746125459259734261929647283745129066040776461497016844343439870734967457185901483998550394498108893733384189432829940721531952875426457334270836248770241865237713574155855342927247199719370972685312899759548907364442077120550288404850026674677483168540149189886575849960040908133352170884181045952409601253179657387059459005330921102365527814673144102146021998079117833700372392636203751470375812462537880340506076307360163778814260342553449734185268326173558987180247463704606428233766673150496892810526670481679513514860039697319918979555282705679098849436354771701527289713925546428141343995124946120616440323238904528191225068377072710543950460733104556832060772525707023100721028847726747286061986358083001336893230766597645613067718963311046872444236816135687712428125930044502420571760627429402993042946417929645438890911622869252329978766992716549759975458630289498166177383861947902169779653689626050356420737971024673970103494083791208618845812918125909428432863561662968709650017178595456422810294450714575038206228215632642493565548157773195290552459920680836614306250108716549492750818671981903631618064656913906093268629648143544128497330482961615682513289677870092142582796440023114802082586998834100524746364729706666303066132720104914245459581787085682346165252483282686535169246461569167985336073518672141677092279286699968154204903935257152003945843850537731428605771577652632110107389340777093636724586810905204435820752531019674722827131270395886658897702471711102950699762587886652960540947640662922024787324451861923197906265914545023730887666295532058858781024583607418534695947530688590944233320830304267064524235875257519956333001196697491523178573218868514504129695915776995511070812088134065487012195184554865468583440670456067734235579592960424569838686329440775655595982581481573113050720621171323091220285717544960408550158851238267471639200200080261418040813958712915120385030734724293884937238150903239368938021992096652507039803077510080858116271809238687946866242788560818828422043049992300415926037976743124395370110531161974079691487063321880700673135890201729208814187524848397129839222341899682085828646752700843539221210960065973025811944425798832190278588612648549855593881111988181696324708654983200641263036927460289937220666477203751971537091612957757043377498948468806363517969975485123336817020228843625654111050296564359355098391456379314800255405651343436168533624607522242427184883681019831160933557924038937918753306251844997301082105895624616377287215427482903262431131294186318356474837269670296955448804682392053755135230766296856574631390697982901369129364177232702136346006918722732761478464529132512386829452905617212092610332885388155271957896695093111527378504989386586075692790574804156878410218773343257553249578751299769225005166594010779080994650753023071601660380251691887854433185967930826599391476252121118223614652025064879410015522436431973619135945154739385857509427314061022952386723090293023024209298887133968269550474289104890206228131839476676731630572979856781870806877329508070682103015678531533880259749037734328829988046477502177664085653128707914560607646308339436415783010960915223489521285980230499940149149260516462928667513971690270626200066382347185819346546205059481846903096581603950041409838913113772256651730769871772039471373805981305378050460408593800012187713977067950644965551790163957157543155162228976158241564553161708299668387286996766532396391931221137995698828951912182344251571743377081868573779580268118471904011554351918576341635798240969722547234713044026317922535218713205518806222822664765892301172328821916026258632269269527277559977773272231867021835345164711480512165934267347665124615178103509794200509232853573258972847624924297874547533683269510816778258122100197485085998345669040576986571393949947391063329503617649328051746538443287194110661926834220055033769991145096492563294478038783772582503367251308805087022702672757255426364112448773029636012845281490167385916617251146240919112713505775343204264718029942841355393170349849018465968999843776173689951843586335988937673753726519198565628350654668217185783685953504559777444614696596438135630066130621929081521035053187888879525074680405586537285887468226720595749482854349774467517427229621378775732798538957564303507907601879446273740656893485152916691911133578487048461414832460820335307482962458239116479811361314834076602915431793978457228910023839170403812384345097984435293017893256999406009450890718737945354645777749591822769667120325374426136222745708868153597604028634710740567811521320525717195015520026873045069617155772886725509130925038006650260271086630175188779199507566268066299811598326856429154635407554090696028777318062914258047123699581416992141085204998471949022183302422245418975239390388559496720319417606257039555584163339176524980931796455987922010231097776072750272459094783668035173527493643143546031278668707016613230195168711913180711848027241116855445767810687956858187812172236270243669289504838448786659712362934044120662672421792285980604056978178459971253757910042273663876109035765876533807681728823026569919509281026922981411679665809172355107722633757759967554002398449120115297170665195402240365108780133131784080129929473996878696868804196788251950839940684082123110979484751894633057381583666286106902429108923891803704580494349082499707760908196052230825742185866581304490882602089330584529549869756053063624674362671583786956403205467666744323699633378654022920086917594804013873119392955676728884782379434063712567289895801006751751258946678545216065882174576888959742961557576431465675389762377580602931320664623180443744476345194955149569438190186224461879248878624744941551641080985874508149103269964071540678091031276308555033206624105881600553272715525975100299856306135586137732346601813368210784366018303590903366268193197492930690020023590239314209610060755021353055921223265632356537101429891704052327446188603674603100437962152175808260965729430053840874686599524646178228764473448541422588729359181383553444592985750740925001473143249022588629835101602802858930445931664660267908911349446721113923979266052633493377363457701593317864817437117212227001821539978816493312126557121708919723707104467679899048679924187346550402620781986875922082599733709918961214437147265359246652260973540585305727339699246922443665642790600368659211848090005477964148629407463398647965281258189182580872236780574244468312822467454855588236046014832580480057999587416796473120667325421933887479187434034111032821610707520069304378311584271102480222675791381879023535454745085559242880851251558083119217396244229466324584322132245384240236208588115046613995268691207478619215779987041108674404126183747300286100093061987026127580656739403154316697312580436092956561652924859757946398727832370335383636154928593223333706279103981064413041121901821397167772565812960329600567616150343548657038704254581094902563293977749416482410220641631579374223972458557764536273976866555071323174319026052931785799622767944570217956179309600549450482267859477884495011279092895279935933911654989860110019034444428979897260110242386034512622240373380058807796236525666883433730679661237957118754638754084513532117636387687444731026105607802618009341950742371031323213189715932037893294908686710261844672669711171706013164840623085198238873541395584871422044107455333055607516894543753843477469342234825078073221805037909358364662575490325796874375927578906867187334442587247929727736447055090676081643905579562186467097525313771644154418806551797804320199899439969581680771322381878393692649062283192097971464299447019970786448343278942780698950436824166244955810189180819243089415339497159824465315591438795414019050830636118964184928768130426621229262525600044600504141284750941406716321224860756660022537375348883616950057239860902737395983802924957751896361536006229012883678583858320614065482988153704521948619987187610900011426427923763318582930397280961194637193611401765823137859569976429192174758769603802772299798284169224273375435137830306784494601305082193946646953040159114342233482827073143245934905777855491715340131762316172459481926257969710837410429838475921093113082364389473353263620761115909482402136902487372061122366958274198915618176377281932672999416797648731123802928861983787910122348747209601787114539864491812408918857339411087699270709391849944076030805617170736082055249154535319124775811669601573678155058949682763943817013786849143017571781107782774321785727032408079066327925739196472650184005101744138510473818783482940035133650245039589119628970649150614274207372176823080887314799285765539572155866691059416273330594665090860196760404429679926705363639106842476649753518799703391149652274361497988437760262892562126173036802403235383574910497657102132999793281600543999234725035264918669854664898895351084665570266911180330961911272265153806555098798850375461992708742812592228487670326524479679306213884466409078398993296254860304380793288681527361781509814637645402131815101242564086218531153753019530224535555788957755715935843372382190313228442293397250111672603426921267749140564837064750817072183222339677998734435639421759846278785444069586946876870535915932121864268761716674556389410493210729645705175122652906819396703425283217693132449342417366663290371948378120040706620226481417654271344851960017925925472283552106269732609564524427759493315559286643491920887596836831824318320732394919944750410890937717386190038718234998560089898867223866781474424402014396315914812635056067414327740956383592654095641777362956410493372495072900282672869510878069249624319657346189241366430717757794458754735301277302106438826165011456663052210047900572471722818460819713054055662645041197181483006819579745035951039646029362892529492553930986203967988160863557970511248438825585729344618803575703517762887562949269620035467307595565038390383768694801860629434301450290875808727622113624701708790249273366100038994013162228337249366465056829967206392351774972872024668899930255269868043114295483502133436017559820584074046363001907708613416321851118519001729541082430096552971812594704230456811314237194171806649138068949339670438754453377017068129084366484309124276372049546662121048226889357121350171453606748131148570492173279453334154884671937966759945225322579816508053890639602481311389648892195988600600017803666024840900334731675998863733519965529747609869529550203920194400589355516769877470545632339639687860372409770638551764201855456337274758175833436330878543513840234910936501537195408801428763735054904074959811756843811880409534797127260938893814754201381631793818038305444960433785187610843928337431150405669098709298827003749972081814138036423610560137348880861334343817923557046121844644867496677490155536010778883325736662804603037851894455636267542169673158835069569950215485058246782985716559661196663856698629874811017193792956430773150063040097538219881784706269510091579007522100643448997841784914292504442210208424669467594014560156279065632716541506148790510728785925274328631998795660849145055070913945531644215725396599366573465127119925974432191588194577424952310125470467844794800127281843289071929882362064965777879493234284329332270790924542458969231842327577106568980034475462420157916849033116763131327871136167711282580516611878396545668482147495191278036594374568718167087057349545478254125037066044369852920199506876934012163384211602641340233316427957366590752121728732847471558988107241226562550397722170832275061550032371895593672066499877603738633891018613383275006581270659356964190810650444744888878039924347579837749035012369375642374286001688647924791871421670223102248170761541714808965915000649038990092738048995513952996262317235462347516557351886863070684766717586023456067561930196878707795673634398488272576823851667384825108187052367833098652705738939709683750279546570062325173577280039747173878474969131231707950125877495674035501481434306742454294116474649983746901408078366533335594689616228505154279842560328043147944375695717796094995270933096875661428325492767935507186098847652120798577150326892616545493014099444373077872880840162753082112578159957288026842468526609016161001872589979252486454446258417619247515439155750650161761869008313468715336953162146120842529357692622317796006404252970505695293366867374309905688544112778611645699774176227916812382086728778412616574238818706647348839401665880193564124500362030862176374160180179682697783284478825919880673119120869057727490959533806761499278803681790468134477629892635161124928735989037278156992080451723047589365292909899492256747531933356302764784119575910119580912686331487538175665659069542498469246903049224770005995257140606896693910161933358293081547531048961634944275604251996794794265688657188833854409615142563070866525048342253446182502205810249431102309792286014050986344384864780074473492277630870732423330222614413981597368916429996121817020288803415738318801921885924469450322283079313367430930667739600348660677534204928306417918487315483761374771705321983009517448688774470381122630132739558590795189658402795349104597020122984454022928514716446354366875679758247799305531345073443675386742574029342163514175832592501818374251769765513356866928869901424714100268517852862894665129297885106219437966568056295414974070236186684921538660916425786025390360168480597737713343058052769976194808299191935469832846953459046420682981407390613698709076198070328347298051282891188807228004978974120936274723499890282307960454503106891635547204689149858457945821210671623465356919911598173365050681059748902092339681822698159405554772201674094105371880840846922636240414564146060163869450148923059123141627457591238283037414684611325873554798232458928916371282354682304484997715191401616024153898847380666210392882293462095560265616080574501802496237915438450518590918849466135921065476888626894787299401629271451786604065387785963028809508276925817648816533125141243495960577384128349158188298431919491986834044448093757464202818722045189119124400865136625041219885966947038683615757060763897447199996863602278750796862943605790221223027281721577263260032342393390483330894723971087177707145197432946339932474457377127123262160315654682130040295481331612363047015046741440811712752232445300332469112256665439552726403607700140336618859309125287161976848557602285662552333657673614663143491796739579123838314808959326546949259246453826532686308870906266134655752868527052549470606614135498722298573308815294287892293716395867107830633031928523855208623710090140283435153414190788972226366792954249808914642513613190076789207050357336104591605756390532098239100610563151161182526853175938418467739622082612871572499860694056502247065311947623733591392847815871502455977817936421114833590531075552025021666760570719773509915668702211716436441001460628113713323230233504763285956742817149769722219618000170524831441324814798331354713997101196989825106521856341484574084256684632457302792646471534851779480978025316367643833078374776972282766617018630800568324121841064582008319395902604706637996397932361509821751751383262722873761707566905666969219815255073318514738576867204017619066395073495612870553406138444648758575118237793806829295710466790216053110173693263997752818567528382124193800560665918824034468558289064679350078757804039874726000605977419679015506076388865970843136641056246394236603169566422587174715734600749060762182035345360204181466745848777196768478239394405679059314012915864551769574013815630386457029740246888146056996515350676397012975962265193709379266069329973814050864880905256158991864294733757225904993171462909262327206377134509933457869454846099690327572052399574667175235373878612321501617660238126767488021292528988754048880708808052772117994173839174182241946958595420071591403383549242899980415564676553180985109747189928130038547943269346680539170370321586257278086020994893781124573966558826934572202975348611454774903207364361320611328856251108911219062113277579926382074428348117467779404550510632152939413053722774988901696867585016350046424589263808086188527779856159137820674448568302268280772061303319904202517401492844415169146263245991514888349608297127892641206325591942386151080260532978726060481331517439804401935735509535713391545120810588508957036210486267299486309560718103090078809506214551038585422102292582909854362396991699959298520261094969525378389068095942623423117702960333817766013064853182726650425175738789836729461539380710982777277507100850798692090477671518750372511738162945165286418884383949894544765961447116453645714741751996476203644379339222289781020003311511540265442992742139931426072621395885237483637527745061173620152745062633068289193303964233807421982836318551605344740136371373698035168415386156125309918933526108409930125946169885359196472966573338841573857671237223515107339680717607018892360610565317421120876597610683603686377152123474490733051790191412494358969162080305840585830764429857299354534024996234575665360966453008218423660098680329009842810124081513907278454278414876283525275262431703661170082176771410350418416482557694561302110525447253828275370808745672937938010625763553319109005161969139391454150706624381848553358830490686063483250699839307322870611135369733404650288281457360554305306225772116480633538418303960912480593953515666376648912216217568162736418560847313506151772009251784540798737855526004139384993796454815202869407108563676007632076232753357851253191387630507959859084413394313873794958625718741434946649354266294900250457536029852420351603261934782337771753646501068976147447176404349034333939714668429470977330278218745025116280819103082644415607465158956782827108018541347538965444109287814906677846461597068377358236650791113835343965687156309922214615053416836243302194380397647170680561809977163005804869626820325429636122654073608662184504948910174293013977184962945896491649354654897688406464972828163977163682083433869678428701431367947166562013724213760933918005274736970187828234586507378616062920537441316642584826690951978890550797626434008094890339489943565199388830903581472154850399746891845943037051965981709909479714705751300432323761216997465570793931222570515660608221728561459130608232087954104313763406832391343159302192765215016163468308937300187796349052977129027017208269237557943298425602733344409405921411475723400612180065546791834004723651180612801081511267914398131619151366617648084005930926392277490039529488031366354260482078327381590572173892469180428091940060334421587457250306909589600954292725427054133582095994394094428666917174520491808081300910062201234371998788765614610451742293872181836093566160312013972760401734270536973184664146136031339725243498926712469310342152359185560833887848590616329682259731779209883228396423021326979482236682888592667551870640310503168835042075853951953305312391927467621137887061283299009064092775244303061203786672935385103078208695569101424648867344207409022376984223952944732806242734408404999618351011981245916457537431363851062340005866210705335965045559529311593809558329894095272346038242811933324000305001990626066929098570248974955194808386715495012632075275349540317088390998438328737116940668656986042982618839987727808778211098990013515451713820273238173914903669151279738737137298479926485858108477453874352230833456508997864922431214363434977744616020715618306065761136604233485554943437823484339887454328870497214312868346844297040746478103306461365044356471335663893584010260531552078773904188419242712047796340079855917867782823769264301962048451494777586687508586437721997580022536024619791175705912561702225532884540039710513313880017841454686996376846991902072644437833062645610379412627918364744328689803051175626849366409797537083010402894421109249876637874034763358528194903975070917486440240554505774824243268190250711803807518417895959267579584826986949071021197580804707041196771945068900446358540158222873349698148796291233162344913384213520498675804967752864088326376283876244099672630564874118735557589730110448383232283218722345516043724336119621053574853049863124180560192800835360036140351427127569438302251354617548262385790078805084395685542063411522274890200147363901655252642906451740888541370020117131561992580452439621984816018435597105660294990637596591295122472764530572475639925552857619886375296016951991202835671580946005020090303068815513383583212961855379546083231932861581901585870121414256783553292539887168683309025137819364145288325487766988406092228450680801661699172960381350657599862408232310087354883936093520864205876695795165458726235411343717294048471200626857587259317619784513850644534131979787805634482502478530243261345773732108430123789954965295529830849129478717290040957093139841185854105635003300771653547437133750191580385621627859331460494649565166951186580494305416274696795602554967960777129045488985451820049710227712786148976855860170350772552799125878470908075433091697308055496038575117272677441682787287218868011414229678999364062141299209657372684197025030447844758020783972494011232253011226746995047548239643253682829755210842409256224182479422505368450065459301807372119250567826830044462352199727887648222769049155714674591945833417118067816332850923206648426652739721449466229995816661718678829180795160916123757876887775975923287585684458518148963158114638975068120499220468718571481782315826110141700296896275876257805285882552195656448107781255982237207076331254844485389503071834186700703896322057290318582260217413085669067108149723256728413008542678653595344295134564057709661636968940414178869295488788170760951466223968552519703324171124325499409162339358365843721975869913708609041988917784384481682061469183559146619187236693188695726713736693959332163001284281814944892211292727920849615874663731390454592798458867209611850058485875596656778881778897778635193387657897439177673628489356616056554316664873727866678885209144665362452727951105212372934703270814779644735810919384577419605627564670914485436895338406314329207599943972007160911338040898341808977149413566133641937472079726602678342182679700992568707363752466770622202165251491359253264282475455453068213478736598822174944514814953172584104830292076921848021855569887844723390580967049191942118826647856098627910865918492404203455214947527802974704793559967585103890740571248535635741045264625043151728901409125900211860657011197128034998791332496422513815576788434696414373350421286265048358865854933511139150315601614346452959225700266582166696731237433811726514401678051297242272144783145081415721248131565817025449553003073960275128107592531020512739339070665323302242403391045314886105821761067611989811263684155220026578542500987189902864843426774033231245074176117517187411382336202127094287154307883998888088612703178063063053933887137239001383280941507180039097987558909677625430040757213726483281742270312221154726486008826698133705782825093244524912289120925058206013926660741766636438914999132833194759723700696507393796062928832133079757334000040945212751528559616063961618376339633731468230327421116362084942823768774313282020446418746970632284554974345227258190145640577331569120352059046861003813704110020875623193315543551051463520372494932439449834030236940174314607937534352721767217301395977757746755700356317282986347447811747792492100195090124645729982154757561485645685979968463208539630231897220725232022400348258339716824763568285219908577331128837854137862782287365677416477757352517827154178867345972126438442485268096833204964145177334512502195861178300061618533045558241187436025016586454493778226133747370239168968813708120606338304912319155597408542153923755224572312670960061107385283974610201938299941419790442568081339362270710035798477028690700866937088930309714630228813748352385158099849822159030328826413049053687075594298195938930360438534790651169652299337356363467485356162585826818206281832287748240042870047287146896023552454262317427955782803882367244359078408289217895170785499624846989098553347459366854543309647020887772100106500260287994623393452296575513220244672836754544111425896790006164140597944731947744750364265906323536566290381585882579850084108071550113387622025445832050918477615508197784941130868304397490441887673349043433648224687358427868611159361867706341369686951062357931670643504817415026977413980401084427262773240729459661503283373973760739956568173269662914190753376235079230890971878009774079468812895572203742754684651649375888266693257773815556841312304502166100307217729179605128728445357496410607096171775068946728362497527939718683806545959844810537922599564907300427878420632790302802147205443679017076893625896733704788276509284789078089845637252368268515227085125288961599016649270975043752343273939070573075880116842329940530338549817295827871060878277785307836632590933714777151828586989805575829717684957649417712617054057799344853826187258899811569133966050252454797700407738264046965150551311326224660374901215606630067792228384591614550618324432116200020276197573717090521077674947959332697500543803679988785654636719689252868900467365761314482083600281044288541863516310327989676773029281551044396264962016488915878494935034614308081385828100261941467032193340449898515633139713366689984781325783698981634759152873854495275917394067873005278754343901024503241058935161247878774353773438093846926342802936328154374551550496841159410995006704830211023860945241826979543610337076932786972035699672255592441273287104863543863696943535001409548992490661808157899896222901425538956350327181679664706440666809162955398292900854870442021654116861826807018695033434533915647505893465287387546865825241580926530179844740085924349220899162916029760880531121638235010999403580086832640544358550774106306130959593672493901474656409087772270482833962203523612091706992898504565928348380605750924734781329250314313054143313047287443346352504495341409943917015957709165837331490127383005312083605243581522714471770700499078323844902060665566039074757249049384999622496854497741029884171297444586855170557033391141269186452494620803811037614470032647424592468201433608560505213048871480931355953547554617452401741410582984313920935244852066167373027759097897327217430739477396872824573941455637884816554738133282354603897068256371816229071694493029312228097295469059511751497774267620453079375021585783323443961190550144941048990207680657069628264164302208887067121265514297643409727693374153168859546395313122181217400755517090783580525426654643314308592587675011325970765867847798816882936461795230708258934303998520720750447238754195194559829672028175480794106441045817876868743505343318144648012428879171085465384043372809186313004269677057806151450900626384915011707370307703749792205722472118143088227390598758130675430272110741501141720493385319291867943856312387994617152775742585316204344312426382538844151786539235486844454268934176688613667635703756551546236644161145404749628261586174015837949032831272934316643282139697569912660255299522874915021280976674261498085850299066374051512801713082177731461047969718198026788802255488368497505898144244514713708582600840950517415732054979123339592651990139467499644187757211153913800020122064770396363797648880789054664519982459884590807680076911309791051170172153504811060481281583828179171237913553915131229488615409808431313674892200292863322978470677879672189446144240053760416812361485258869141385891849039571352517408583045758378966938915117454320799566255629688814261474808017402976073350554767357488553397739741245411769660743342355894718107334805908431955811594737959558225124816257076504350830128008305091005050065648835468376904400830817698947591159481209333669976710737885040379376372952081337326300589375153011179220463397902605723561462188283379747650035341802666097021668690461083488980630969216442798814834290024067398688696348493284165632962119392632422546898389047674904492925673670734378509830508772070738732717987341646297236791733206722898857254234292633789877022511699868745410184788972447678940865458446708796063339135017596178298273739554712718978676442236997363786135745389619373337008564471608694326333196165300523562013517431354122414077607014094972241745347718513700802023690486106614786322685500597404837182312467377102066327118444201974570561988371079519032390287838227426342430390264182459686290163191846552790036137188481382128208276812227309232772372572732183517634672140462653046001618594306012634030018655292326552530306180955065378691894081397262253214245962159719281504175499923853032092047511052209369879881737311927885001434922090670960009046466419825243870309924613323514213643064057578254459121020594840860053821770165835163737407895187830537460795424854275565735959318006365187129248013914168409060358040814190035132855330426544391615776272801546369841626112736729645196874870527711427303846160308058681776355125007074368272161373029542321695400051323702084908952770904529243659610533765901941808347210558959161647453952216071848103095731625313851865841926638483365476070918441791734222198606833934781641553388712809202705378968093071926740091445041289690855330544038808267331897519683370943906540146267793744336932173629995342620520518512693878602569978726937173038743909798647101270707170219158712967122723051186189235259122935518730648252185034505121090362500226639708548699007203662455981287144048468136982448206834643999543957933647790645417509541824412373806695680386611164186747687517372564269286142713767103458962596115600295418444773044109661495364995778275379332833692785797721157920844619601208316964675482337547453903692856391228888613019784140188086419904629301422810299040428078159709808002591960850835105817825199440960575842324535434032488257750993875344686444668908765089710689691117663647995705927383371445567506842854232037000425781370105888292877951617276394632175366530386124627143169581402142877194410551891054169848769820026122676144721260145157943517165663635337688805850391428151537109274751029205644153786477620663104583748988840488213907689918744972856773990792771067111043160174934976342760200971871663245919046429706866439759234523927975115536829520741963356159911446904382955729172393020357983002505371756133619764657384257673875342264786021033083567025829591893888810693105948871225572969017618587338883583029134741193081731874282825907754829644407206906630535355861702112719018711976481025952299612213771862360560366982942732820004443675167245124571956561273382594485778415649687133949898623081362843742428436577205083680892283680828847340198105852880074244717158310827140860620704976327975168343367203589271658730719909381976066213168183905934571783066495374940055116211730192724972132313608382364781540406804391212222819084745005600251861524831460374600130954245145371479285881043168081181581638487231987519699106638792917633850783524937413114314147381505601826805231817067182940962616392018177155975744288818528427307179422212132112300575683817464427607214878947653684946746654164579590373497557738469290483908543776917610790009550048494951397833524514541398375185471427284355858262058469256693591909691767190273067118459888765910541728642232321606172243847503815226953028426939819570126494190943375226420158915352429339231213393946481217364490588279687718655028009339497141458585814285342927804935854733492648380968007908597093100543609696571616831230516253866953870768226082240775901073430458289875121852293573491746645039139460463018716527279873675312766950082547643215014068095846604584225011485909019106591248947877088562525161845767745668782667101041302626076701949728448191226353598491399040247218856255305946194878416155948610160033010035684493176810137300024824859395304784539106373223189423523715767306531398612562501546288000495201630780911658659529130493434601459906872054141071901145607383649791893835775375707559764847608306934463543588498113455101450964684313440589144969013705061310699131672582957902644737988086317324251317779389560231459674320816763445071748910125965154667994683026114029344217773381502465299930385340406303973407580406176589795864895636761616239059223962721628055981142014564266655603303861158733211445788569688587146245863914392902854812494510141640415351314304052161441245319234567911208281751742613613310774229367150309045533950709050028951725813065019320879071185525398412866910026676544862899205840881930728482609508862506544251003497039901852007596579849263269507987296821084988637277636020741443618554115336444352767996033791913728952360023124406864230950504242264580996791956019797988363581270749422839196211185820641705278270783200741037028538974703506016741328984750430147001349607494356105504307339443094233495453650386466593200464605714618682353781517084493886940847005333227589644557092548324439953873215311621639923039421655443516134461362816659144763949735456275233019778095330933676505576926145902599699345718325811578311466487670253216053959601322241994910230491020161141278124237221845426285103376810219101760721497555712568626817447718027098995080344610173390185661187585846747703699972631019721833593816731658846892737163334207205658485930026723147881519157488613358963056411217022603978056353439780662253928736190870639287253075468706467509848913906017620891780077234638493801203154202689346482899055381478995174564684941378627680385960279262581099704795475073217620018532490085637359443088901312429626562432039928328635578220682022658324260081643551093713891213644349007344941713232408262630100306706531063899232866358090656825595181721209575770595405219230543947335234854960651258231303338887090399743873985501583785943414786501649943818260152628728323199141039404628748494568723662240715961580921461792131603401313639857805677684542044730552788088986484256647971417596583410650816171407964451482301828122367131943875938393411607685464483750018909495587226071780834756100325415562306208803743638681076806312972452262190947098091937057375952637553816911105254927851101104747761721077690068055534855334214089240477530080923813606212884117532579763888482310357779480136673678717385736057166076729480436390533466639273165554110326380729326896961163089902922439591610061879368519660509126235967031904285955456937471798521726323306048149051386195682048135136064420327735199320797527112804270754094479227783319637346862436797224210575666788161364348952066241284016716139073507093575801308454994637200493923140382875997087115466755247957675172617637456916998123000314148543200157665047420226455060211737442816491325142400486015217614384485235824524764446044788589131898986022735195984181544223555156969112447389152577831327000386717671254966214135844955392173383274437328962709092823734589601624625254500653154004789560253795382104434437542185597818231912210013340352906758269681580951244922184748804079106798949839206693620993784853846033852511537925144516011519806323159553743742528484625178217061963699075463912550667364089942889928772061371837664522253502350840258790722579065892368396714277460594596155019156406720847635151649742214855147381039022912538335989110047947073167220418896250880173483675329835488942854456016768695939725206483420727935675315666719548164846369265783908731283835625617613542367778546663233381504969562230671641712929718178999898768090592680264898842449309587741681487155398554942200112217800692338754474346552636470180555579871373299666103967979702081312095104600744294454375841120359228170220813518239846672826826401145024933040081540943340704951107624334236112228748656417470949304498060781539410163616736937833109759925143609123994520055699375314582265896349628259681655426526843941913961241682054990250336510241137755912346598822084216008580174562120540317284575687712290693646570153425648525530597061039509017185854908824733923692866566865976671008568053084645573877220268141660528470238101026061567069291074539044036775343065415968971050097248290562508407183962084354480749432282392064576687659141725347674692235359383390631598589924966707292754403219242022977545507074010888988711201905176194791454258326590926218524701719559925644148838627248690481018159414756249666299399454332738242204340058177778786435683080934009582693823374299566505634300700016357549409117496649030034655797909743936229073415632613128771005253974859249049064606321362133370084866787166893522964342002631584986701264392330055404573120103570101758332730870984412822032402378510883780811664418599846067060926939748010317999274694986740955668148529705169412854449339184345131531186355588314309716896659099017462705667182843477110715506976861476623496185318757626416108005282570290564235372497269544526684130709051662037320688563245208186476902049699819824089832323155734972817886353680892839815314079214056367386852034012785424323648974224216376192201381059340795522837546676322112342622081833667305459749331494023778939387908260178197899969014736604940322410541644847973111515273339883238096870397229257578437648774603047012693474031479165059980479598748995426119890046360914926020455832108306472243736851069906224640609099099372205263926081233226447026708420718090915545879733998418498799126148986373913482993364052371425225526291067236750708261040241329856523623643310116863251398277371439794620739500052267851811668016414106146288034271072265846060218842421134831914016725326165425392979548146645104890357418687854963962080873189044052356405508357517515640641893164276914654558538033597155135239155738298424854122952289628160339987430682785027285830176299682655884432378827171133154125689401546948203664376236399733441842960867974700800510654332462890519687949213345614457835839354890386683167830069843096493029012314353116803971213305105698765703889840787308359072770018263142890985606965447926748385165814683164833024779978713922902484486060858311407762605759351183885394513867252334069754997642189067328659890128887377764160567729735917847180005715147665625533436531717538819954580614284846312046915886786469800358777932242688895892180232181774239762179010589046488962375201767728653291287586882320013777958793019840544895171804308267732166612512809102350796519756009965882666245301619239999851340149998062336412718333983977389819504374952659058010884042162657625049350497492492984396865730995765733788132327075667421474538888804670931003623525902824942025963984006490046443451792468842819611310120236016721931661150814332185205186773898894407438320979680618888236832436472823448753428333083935321873725906418064412901688111415297541128492901557694147006805220278329241426059157039408090198573682410685240825350888951208413908723828429329718156114592762352548154318973766702958946581207942529683613808499719861207082515077448134705187110395523831034804428365169966433617188346659353018381403430349338391553709200501920331441207007774951206482627115124346838947934574510886641208584833413529281318259312664818050213025003546528089811650582146609266442382580953756658950764915427576601497973338979643006012844579570842349042937285976410360238441903872754806333410462967216676358701860293219881219186464503924425219776684335233570858967175430536118759593852236176643666741649241367636310342145331084198026358576185536858540226604532264040839015058996642073929478155112078293969505267044611920726922490589451348887465784450270794748402888816502490316435291489504133069764563588512378638926029596947492812730889726035169525656772928867257906019447525821757856802402732712573582761953361059602429631740485100990424329937471018846571578104531229932514006353674571721112280970563134402739617492947560158624230875417834853237742926233649604017345838297037882786764686798397927601696180335048726125499263186624908180928978088606969876536883620592059629233675339386077944716747071892546612243992202115837875873887212926871044197154695973726738973630420388672741163229418926266413591531373986063143161025385637125055296193840115809053929272109595739855625373036365380058286828971016330094135272364788398368221854644272988897845711174217982177381606771922610307387395390848439257120475793275958322143892786138236297473004548044703872106876220530798173264032461056864643949218231074872956829038018854063848850352443869661634833618995439621791400481569490315281474365649969128835940811124665400589273914476318965911289517710428154838808673535543897010694541157884374807476623189771669591537655599459257225694709019758739946706682949446238047314995974349831392524916387461334785466049394688971441098376079955231009564607114236550478750583209969685458320612692642010206308760908762695145894579032282363630481393464450594340124822730760933122262617025927157173783857639023690068480274523882998168424065497856280912681664699406045594627317978971150000119994347494109180484211775725825199574582159266739693145475626301869942908974035230868191202376235059297994890072954895277341208861607148534781192518807469308721516619462293336327835861081752764151051882825570255285839791086932345671428705421492053535089084285303729898037606896155612773085225861696429897922350196376558705095712335918991113272186590992664318343353098383798700107018493589461787077238758142378695738149762746899757891980469704795808268502694165325653637584555864146412530056423053319776789093004094712792950972251028122442278699950635905586278189875021366046203637710831757484227954442723199432889916071688547415830579899188261468438230276683374277228029348146556442002039962852271797053449944585529638922943723958333199701794095072712452686292448968430479487342709211666394773739103070197051890542320718444942228586494367851026613680368434538238675834422076817809624736157335076273538015614184468995847267070383554558226535892723125032334635085406983639352522401090390474733668928079258241527733232246006170920592020835794920785292708396333568100279270162369145495167651920592441506535725494904664707851116657836318834408030514950476968304811448445407100396252886956736863677211605836427941667282419136598184953277275653402494034170815013475342273881918345842963492625438440091382810960899753546134183804584446023085211104411806259305116668525428353235747798291733167856733773916184285027729452677904993810112699185278459270907954584889186759218056656223129895299043234002278762713164063970801563789712551171691642721997947312837875136877217819505645909062734565932643718919987945950650711968058923342344235925641302219397451205691315800039510977177293891193708617017253629083427852666233935553725364119631433833744975970633301680406788046093800573368958205465166732779732050713744064255906799634275110981673847253862775916526686493888703470975188371426746014469039569850962384617378384933079615987574102402995240636521536319907634465206311311281537181885408226786871726221829091831953705201676543516923915986883855009756410050305901002950598102332380795044240158964130705008858103794684301441995696730464606616331693236969281285782184362729900186323665055182830610164451972507192285655149687919224280690043741526966022835204451026628896490077079634762687895118175337999184775148553256222178682636093193308704086330913781628367860097374198024695227381814306884833532882447535385079543787466073235649191015764143163032223234695124102215220659203211186203841059007099001107656307385457784239285357104373438310050626278816455555376623583944375858895786880862149768817416532275173869218609628812730879422117301606564330151353045683323064860878817578030080131780671691285212335561876578754595144873770965486465099648619435709678963745808201769085938132796930912151133965220714697649622528256030990290570579383914106685152235183839760514593929961588812987507260624595758848554436491049797455196564356869769152821659144744834264275618689131456021071223596341017492582310858710627548500260647881738751291036133468761425674426333786928871300259868720382915047200833079969522358544026402982542406590333316215257901983848475445997125963935875291344927195361188098107361766920380695307640521090162200605273709260931686925271929686553875894298792684227109080326515070751127980630964366569467956160214304606807009664667422917201598260933944322500510226388367966193079532663510294857072829196068330425279138935132409035845555477394097254274356363689780588006387304143761311939323989768764579095797400605044713651555418654945698104060100789419614297851320705532337296230212067349942587827589947831829372439513918724406158818146314701950320112575498598885927915893804305178701083610687658725641909879069298067224298208378642860518544731170129021373116180226985131758668771028677977964167475241039436008031220584147584626329633523110445700348597093478004167031619035239751625493450127591698899519233991765079536764176260139631617666327578002649500716790376212938225589664014906590973686093375941324536957199217728717059290475726253142534304058787642609112732747627848610210986739058507016751252913188725683809174006449292574439654902634643464395122233783250400526960154251744065909882449433508424267970616670723691496689197954847827794702068967245426119304631778309647679409374717169354492140873282974952391667754072850296059802681914724161488999289253608295094834421854501060997363696391286170088349565363321558180162796551363294571107684679205275531971980181210772005239426516104968924622065563787075528939013991079619751679117095964850020482443454292575322546548735881648370036101232750470704047102215637742304215866127601083963540147473667677994906167995472172866267864322796652357248047850040912755591361611581928555041665622156972212008845763319554777075628409629200792084154876265420749390500696426637391891840238032362694668499605799295510651355089379640121395165722929806132579673213720879519412202996106598783339139444350836260351288317496503527421932367256069780290056971125693541278505379940093981840158031803092340223648861933529223378901907450294487591014041861921431400933748205243422813052862718204880455992973230313609477772088183828616925802380955032967832950475889474013803457534739874637330564645210796600408409319035302089602616519771722889914939400306451956388587140163923465496859444669698551643248958627768923999310364451604185315195383388388801392846187093781589801952847053241747685658777736432478615950961945773627358430465540400847884677461376309056678621584183513145488697419514189249511581677324246810559341706006888028044251737522916726515621278228271321747445346242521291510915017155321094672104846280997010678197886799400030939923086412679848323902195204376341359392314292607976216143599980109223982180524338247271968572132790678449039858866983599052715984152844903011013039395515288450650268951663581050601170423470085238752907609174810428761668390291274224854769562731419662157156592742140421403946596114082880127126601052002816236636807452931629936348206053829286674954994576160072884777150390248392791450403430256678208295888078337942799405865163896891459028930865417230898740996134507864618910931873970114659249613917812415419839660747959138255362921963227371225161177195672907771388711612136081767763573860055912248503076404200457267170674361506809989731371216162564263508236214599856390498156810060199097719427904304387001119232754476004503633808095372205513365529560552867876992801085314881574805293683839934858321602902363499642625766795744124128833912581072109116741507208181343695022172126145992561956928704159748501025931287320596438009578212977810600852619115840261584527301342311645248947943274979350012655563849214441528781664231363254813250224639358193313125572040449412271664537089149655172623013042724551859353128857589816815940963649262905397715443350573873237345971089602272396368656854332326196841635009942834697358307094145751792920709960661037020345518123557792023551480294359928053785080347488303708576429819736167444244660270006649312687748930121074350264652343974201240706160780537535976260438104836825694143941193277782120944462085689447694519289863789921066355335751943828021933359235405542123405853935590204167634722597435207637605068249001622736433569630257325453336665567209192001944266993211054772178519429636068413525515011538995563297315693881029797008155165616046585459079397084758053211382091875193533512569410251016486527861311409961430465608945222459712295600613114025258372664845623907758470547735338507337336971864751688188487358178872208933121708500743633282934656756226719686959621364636005593534122806620823478861347813332022568392542843771366585467035023298245452165088155858406429078041538904590275359203354629204835301678977194167764309830762557793261013497445551384820787891605286246788993702632586967965359004956394666100977129807952728967700885997348287251291575422277154666153469803751467785567100234215351947932397923375829827337865931094115372525849067100887669867769076376385248557060234003187291306891701378962672434171626116362435694160616715102482503391484358177436871783874051265270513392930250499876451906215356193526075422692026810443715938514566435752381587988726252188602907910650218883477500319144272176040643900864877280668053773728017294468801905757113388502272143231836937017146552385027995792848007153784572350331956765050017270094602010591032108545697980380464538261764293736076504401348160649700895215310236618399663836478027380527518546734647118769189277538216524127692270430290055649034721118619740722235952300294910205857716534948061675780679596908166123205104855723748537520339753710657538355101092436947503368132568023069357316627546898109477379133322835695657190650302508498598747668109692889641689975740307452327690478078542747473334182686800563680992876346330304958693826043367940077607482059833270514668384460757292554157041631975692036464169562130613791088188234423777902313025921216247844595278583244486396768198449815051498466748722101723412746205798319464920248592404493589328180220721594482921328516268915568860277968981035644431238127068633935940628706869591476050288938242855786440822239248053443557048635525263856633492799071969241738410539066320132735678482928645263546941097639567055184298545134991757482583696066612980186277193123139473691074479877121901567053816833568175037108076788820465536278460299156076702879588963454685680680640900992662501758994174251473303901642998466157560980999822691890370131601959750374511210892855609084289880465693138135597004034274656627699664777537168530153350751053723126873574790908530442522016178239282452437709839618756414121256460971821021332552630280196524358546323179931200565625486296473445448423536486023296778363350099134702530383547799914239818923261036219385309670227581964616567323955097268443790042000922112281455969505725053295448117896014432292579697400532812364814365243226637248601020673494197362156672641363394312546812962431191507792176814316918857279756418954355011733007686686696326653672442715466247424736077436414766762338180953757361391486196972617227598565848974507482409041773030937681697918452308953633051456418941570744504897289752809581606650170066036834227217753794028701276763990833968543013898737666384427590981913139860908164606791370700163364882299004516796499526419725703844240115447338255627975365269295086378222242463639814107127184700510246788808134107210458278248078290300534854882639626079135244271265524719345026199149407359691248259194500590547432788863238266574481820583568780257813349051206297909792875444657533912389392763558282591198628397458939125435444984357977151989195818986326359264287527212351465253242988031094845714879851493718745411345421836035073222813968192713609711711555017406289476942620813704714319674854750630271867324633481415334635662220469444879931165346862041006505783395210317303145149794119555998409821829193966921412065489999782534470741618003326538705400975078102789252745898702284221551043696819531036851795569764171717254365840235949550328024412648744391402740078665609364294574666333701644549478909450763160166574333311737698200973178049274965684421736400405759544023879413596502838707823541471219274144189264985658633339884429450180713009585856677378496262331268716961480683512820689136609170481064518465837741785431833204083603723750103314311618316631078884523446817478594433139005120421081698464527634267583842620583977798539051127091162185880052113285064964175577738935785881708608096014405785132561145802096355764006817271871865885591928576519927247799329822847096525152217559961614905228222503853553097863847565370144442157184301318536227301883948056184301379676761114340435308047537602580128297544494570748609784673102985527526522805013974024450184763369671976502456241763278480980149157563772236384718689743564021360932574097181256183062116594133884266306167381634503182846759368158866318698627202940932158311717286781269769256932498747910462187654043255566684481347537987978236839537764012885981597806130570670373035782464657061674708532660022107340611937482782098293916982438576153565935981684874790672181269058685750052834749486880513039009632917431957958936101279274682614886261218221548798640402292921398804257679654488718857122064574399274873744525174494174448598278416652984674223224924665247791671361547029422328167235470310499270190724009444710131284533664639647322105312959977873888168315611464868958219322764496552617405806363311928754829299415322810386439593787597791227995575374879710140680830711955358901184461611229859432671980966435929103302366530635431079357530257933586575305018654346938132352557278650731671240220263921271081896962541271717018562887750087973068022749269206694433110831819535978154768487754446840568118236192764160169404350393875810703070135283089004560654064014365374452091315485959270611772117378112633917634608669079585446838381227569819334677619505408556794860504138417855368820138578659407134162020501092361583578038395765475634694461297201340947541935937773195249252027424165063734962688491437846458153671079947190504227577223713745817936612480685921852534220029899472305942214861913363549547405663637645451196367446453781347111380791230812405473244020524773961254134219908546077676203290968982136905655393598728037740850463117526791089708658078674471162386592593648708723958593936374523959262099995131722743841524377468589321278523737129862579518701092795715563874863657627130422850177374321887006847406038558813212850140476825920545127218382693542612538741562605001165065579112610153588051989177647657108955712411614082766317696055739876038602628786690596248205746766583626278736802271212839395066532023020838000447443765463242254753508217294297317436925103935098004146246239759569467425358434542053215133039591772261493093274519754524208593620503453322117012833306092910251486458015403406188714384079137851864475174526735011445100193363751421484477010071764753683222602436760539411462771977139221739425103846966681335834301683442274987504196015915552803503630453402546909090188951770730539188653171576807729436564043675870590201996993653294188999713162945503653155799266236634294022050162511014586176991858155468706009640655843577816937616743363886789967702749165302297917327791584137147116045995950532619671945856045864969011880349961961144172790061330013838662187532844254046209415731976740202505105237940678129776344666555095222476038212828348959522760782911819605060646873546185827664843300310788354814194076757179359414945591468942935767727262467596918616609494294659097021621807665606266513768475483504584811853919285835772567622848606001473968681716930688787009911915548928840637423869558279631274225627607461973396437193434901615571271838622023499247672758963506037334749523222183688735175443658569246593726077675333916778874509264413411132447348069777022446813688548679182189540727397110202672126880688651617034720761601698760764755633530609171610947078262820745855723152926500027938539444052566233586280415850768436746394896659234138263169454250128914718999573752775932484056620621606328177706946634420471787273505733855715008200659587551676481991416104007551630695719928013595933725383561907956956106102428536030428238277386757959685108481830678842986416261243996275421918671413076226943044771491142800194856342274051646893662576996205912107006770173121344873709966018881221041441220267670303809188391125982375906178266201690595973873319735539001495218331605056885218597576066346382183100848495457078878763660182191343419515400717044979425334980753657214927993702613276308616161070296939997427213125504168409617732946254226293827221714194328313490496477096453741635383552035676458625066366737143639653242631676917787493621370418537245251783501741200632484116533946912901357748411789535367775311273022596220900807667567061003633772886700485815666105398836260760624529437028067041611724129849932652442903570653957279611284837002397141602768937517252529991310926275254785326043709249584465336909332931469825012229184147603933779072134945779552646838223344295516499374335577978509748911002973670437423221677007513886977868244623567108786324490220386202943221870226935482248159754058641203355409894541844407338246718091665965453281848282185050604902926350040400428148844842065986122839957915524955300907572495176283568026028900064413500963846069448855894444041199675578302329198194817924080115458855341387428673840962982220097365663486680016040017081033488515681465240890252218138927527255829522929805801563529199884324172752535122705760998497414318827896299416060621178190954262721414825256326871253405286991600306672231861317678219071856973569986782715494354131096108325275484184441956371134749868488798231890899922256664410364940657096862440698308901537384764123553306922439971542362648465159622560140149004007477265605389244875500401957775443079988090071241214697827939833346871148808390562708439502647884477047084777043395610261919155457780393654229903178974707332280591853355239709822931911681097097311343665802797636051002137462189704200720591067519075309269359253667017881329717102414401384234571869053967519068689175170278045522116747283033791675909292935047571565899145370282549009562526939063513041418317157895425818182099328194291531854952794585215045460580565255638007708664621858544260383450475286398255462055080580349621130679071124537200385538045515405387868282524711296983099773172459539259266929759432054207352329712341197880920073649013606024031470810597837944628726909591522744177524767158109503884677206966689799589412772238264184973263166802693048252999875982102409133246239065298404695018460835646486874717080304140605735375399673513944819535936852263443188756765205465658597312465626115515942350196202630662143583580220523063244997998332285705197714211178327153156535628213764580218732595777842270856090791631960588640244226926836928418846458021051900234610140210894600896879661203140096032459219532525332407328364380591422095540975126078871814143184974225454934623882226902809782963006549348327235157814877868301987474441775435119632793647576746935957200994802196613157480518595984818157808850483212819818212077722400942115093000346042791444602450448067094501013428883777374319711457996409616489069010699285954231452947022243837440758987373702814637152506961085733599221115528643011924346131045511392547818205309994861505320726483838119640431112561126168719082838074829018304746597519621027488911240961716265411387058425058624085593471981543359390905255563518834101614583063267172108953087635491834081952278190942676736637456075447328533972174573750006608925062664102997905357086837874950572375108436762479907884901775733983703273631287246802855620507998947835115135761781031283185559368292980813983898293791412917847256790964522439947810041943720918171962350485815656310785471156283208946117431338828190873741268075873905531241171387222090532184753193614956630758542125722853805004986157154505674254048515705907869917623136332008052742323181393061272024661425000250804459270962369373605887323439626545812560304298622504267614736167442484706420592905302427745045935472104193725696057607928590037630570611159750065899267510610800841793937036151736243894210382159104424062226244873709505802836122013634586428726559920830209448204689475476319377280211743258833016106325137456995649847615119517001717297596038570639440921886227764815798289198549389406312055647606389614291265712781472692660329319311589548112073448753644668499490040221845936880707236431498536127219509849338077607117652891831296682928006019302770709860337972267694892187187751021490585245508916739024362223480680680905198023211298537145923297876356002217838251328756034166171756232367524346993322646114192672732668364396629443944829566907319370010659743652250601827392909724406063503736695473558233903966466509114955759332721935915186016813482054870827813934248992858885461719407847105854103347301507328253718261954732573830531881611732117671553617302667435920419646078337164568420428651343485754344756465542378328078010568749933938834617822170391259978124656638050592119067748948676086260292444001960690161562719341364652231087383643226692541309048111559594306949381768115817666141139265615601406884575057469869281666090340611951921381598142931832821714566039094128776579408566351996601140352263571319417306437459956138525158193105448203196341814859999847225016243037032603286563935413249913305864632297689177569707165532716042984269483358883547836681289589042443061129345013776201840083021299950075038232605964603819532643289597434677785968744960184840781431727124641006052825160880895868324213747659037930111894895097634745721287756348275306535687793028231347991060866570241286800863155894511390462972026293980718942693350536989428745140748335704930438743504646699995578632555080187916556503978261535382338566628967026209740923687945989137018443860744088301193888297428308476677158252316126104197609901854838501669631363508722579887522431880671311890047813289242010196878070963224962629965084407498347081362091170450314126368349036967704107212660852128533025560542024873665365463522411224762141615413796598636988948393347403231342662100280235869854960354298927950204845680961575788115585445106675176557152949176336496651847144034625728383891482334799139789972737586675008213250983466106146274131138944142709421264271891584926807748206553449494159280278263435315614105514882431683027610444813922239963675432139709373052749329590357623092366581399824600357866675350605503154670996932511826021153137264657219789553158282500010609867417091673732253209924625051541284375737674072594600283886333105813750725050835615403444246902189050686245193987958654467419856200997248175962906186620206823836050436277272048831017055412850465883094884421623098032743177060791191471890786624234244155498198003356677786214650324898344757532319641601894267259327168344452100340266041966827246739746472586229492140603253381748791769463614961500473807402901987780132145102742612941384915160097804425540571953452846931462491621646319546804251548350085232541553575705330402547635936169424188248721064912397043538764989280518034604354124540508123236314786384417350857859243548781702913412616702230920273650270460707005964616752372747863848963286090504577843514191035324816014263028289469737515109342869043742087949379529093921437381188976229649194958326397153252390822069956010356771346799526890229018819449794707362592892666788642569864084832607553935418624981199395613713033977810075480007629448651971957840690275890002445194115842173180653058165904897892534538796723672534838033839437656306332686211097413344142854693083753509753542365608446556208940560923868673707671300224445359727357834742183297963416810044892058349998769611469152757784438327136985669485014338151072901012497405911662331886796709842830408274679281627301644947583228366370227014666169218125021027884120230099198951586732454752559553603976541479206130898394692672520141654337245857041058881798427537063342168769506637796937029894457525513196513695381838323290052595021389914871498615665784545087679071206677418875481935139471363682882138364639166005252401507560766882521026004196519494757382981649660378134622370831246953145847050242114000212549668900909028108174476155679545814145637009046420599980112500583341551464958100463043965326707112423464535439063187197592922456820392858744797683332744577027563691306047065837118848484921300897218755695824270128223061856070663747199244397190046571920075024936891409749784187551155037964443998814236274453476024082874078512539395261492587341145398817984621628613703212807671685640976764136363596136546681437944288799546418141812950344206016911834831013308591168210001381571218704559354518405889808456959445286262887780358929992227523943349228353695451771401698990099263523760437594184426142662052785789946968651154804997033856116830896944181498769328542797829676450899838629679846100757693942968180998284152473527267073986951557474757080732662772161483546388960843641683332442088027026067375033059902358456647887078674889325809504738478906154296574000424683596336428360673585037767189051896364143109789809587457587444458826397839260035267037935252436290158976602226588506118048402226051906754015625021212358809961969997936716652751336217384115522512441968058360562621578976164581891889022952026901459984650916541122561194744254153618825785477329749517973249626182185593987041692919406963546508467952975039459090807798000914394688885420517111462716949073277595221741104294605902940098209866367956142423637448519141103829015937639026558568955943818888005467630319384857800060424419599122079060617221789566970196168256016392443108572067741172035134592875877515537317968015976461933588991051745194929362973722532825579775756741016870739881706186407662422121290588858789305183085267267482439821544690930649199174973445800627622183173152186468674580935399582419151275122953620725763003908898163705749284704143736674017624490384830569768170840212737057741224669096889514944758101931962252038748646922751555171890829817408164780110435565284572228603221972572151977707669994763867043151317202166436726811913547708026348641214379666638979490223289144811967021394693761569839485970926240321135007013762276253835091060815697805282300411114993264370623130380223859261445071670663531120945956798566990847977042523120721109003208991018800481119995234381932776386806807047855851079685444479340091437836552942024835630100870073043040679267888400424572686813735631926940333211587855475662089382188780007228950326205608458581221067716023095910266677256935775666300997964016761896859928292361738027796366040095626151220710367535137265545453180454357530983572460280123123388611434241364444864338957819236222825019794644369405700722943740110255696225724474237530528976775482166057702254355491261332974288927276571373320190397657686810567559778658309023366160207501399115167016914235149833238837389481579992195262696437165602062438921413299369711646345495751012160105633341323802856081345423628582889800352760237850689324922620015509649087182033551250254623941511548076280967735898314064749119089799000698848249680671250431636845129085812456715291806582484989920013322279764145109550574541811952697481351998573866354239601918856182342578176928928642870952369042123469190028666204235797665408596888309437879146951041233080642525085349823700879409488984770463971943259268185233496442846291191614650065693297491721772637517944414766741370097742698188029218346980881986910386641042560733707032702838824344488996412068772229409190808150794528015040831210852640426391649129373013940782499969674568181674866378775372016262565344061527993650810085369215993349331753427681403549527340217928336073738733887509909234296067816312546130840942124693728151466261247334362023347381386636678099442903808401055353890378865699252651975982699646674552376367848263392408920069382775914956786537836247883602972138210022666859740517970838491884082859766990764834966354467835207929135601811568830343397576517744681183705656923807652482247788806242952782761934784301958362129884146581069666997824988809600420163595240333982259040677272822707720973956461028835013114598270076161415440828318167292792078408335887674304904679739469286305725247214888694711492261202059148205755339709934566811859583257551878157456029348498445343551067142975206079972631830746823210258106171096220710250933433434267657504357727200072796667268552486432574125946876580637193606744702450264104564868568127929651097585987912056467202145267019333459585980550811538143252812781249659279701957993948282663528469624592204602195164953525189808316834871900977469831103572012499824756224520298619912316111891320583698960128320819416063294031351351875973114616408177091169531779923679313890964012630543807986775489679480405425750943491587077479413232767273356920952166049600520073439418309753940725017374408823786932029966294700915934926262268062322079339279457781479413111956735345842168371190336467454968617849738611770090023255792588516823828734434847325331161536558803921390741913971438448609730932164614982252215202307860070266726685075056515380988444548909740827821071326322137188465784692633899316627424885566866828095443824742628708884077364808746887866682808757460118025404151569198456512897009624622514002764062128430029113141468647988174920468517362085243683966472178128496887748909450762362586002121948522806785321006553732754727984295883697477117626995816740373986742190911766450403613554505110558068535480336858062136327835493999580355459002238210464004336801029278659195726346818528465543328767622460987678417841246133993415939924619004288334541812931728180210707354329367282722737807573035584000287100569172985479761588812266115342497821366361724659160998086456191737068736290831429786863337754867095984162835690692993195825697902509622638186752080142086038179117171934174239854430797877030184555001578657197324224069778789743685447996690837691897635654219718426274456514111277948887065319022860041512655443978696029956891979090685354646058624816251227922884839685738306732831479026056692497753175899652801515285802817744098542963339411768575873191684303604560379724374626811178835506646264974249612959262097330256941328088748823407131531648238096097753857546888664746123744233993192850354227277933875882818337984617429099084695549305668443486332052200995305752128720406001093277179758249433123703933114251899967376252052331485449159090640149475840043163394283937667305728587668081945944452358852891410296426814049957787522481423168279333582010474064941161168790947086574468550551389380463302000632663013503474893128682295798734237333698421377435263764413251892679243109366108096244318307077395838710249128517420919660319013144569593283452339916510531447109107628065793175018162136390711341612312194770680884273931451735938959566939307048139987860468746192803539325625487273055691266716635108367629376905172739424673953938363191306213850604257350352338281406344205733386428332804384409498832397296154088985109231251820903764468701492223182699929404636289151856705581675901102799776773465400791597403385449061760462022663777942266282090700476657473950613304613035087352204757032182197136009168724460992073697850033889772372619054105623222815185299460181259524820617571122154261165305377780643676213375249544976791817692831337841497408338250645280992266521412382557645796347973789004570724353245367468812870181427308058975754079522069736981117378763119962750205483697365397998210926015014679082632152601975696502639514056596261978062450588968289580204764413538874009751836019580843919627352721542113334034717474768225339651193959594306655995212054898129101595852779240672295117742775010922535775477615385213065023518390076162876966194774294540922222545761213326526738693365415212245269089561104512639818648416721830107580938056111768711012141200479884971146249687009855849839149419116348995897879379428064588362101748988735437683148875617229357367449932116664021147734634733242245158562329263624886419556181735837059442239668479775018356180987537293453306669410797932422668293791205797244804971482662128864191818927740933288925243217625058975150503872512554101831373219562230543247383623583971802507046765214888151429003179004123649997490459652018668626043456207831884416878867910010285697017400071230259022085720145741863155512022377312756386310353937119836163397905564618831199962247168570091362506389186790460448844722658178158165848360812799448516031450979231729569319967326744831492444046617878353370462814241928606909947443080342413921447432254268761880624462543527204635855483399174569624288361484761792862526834518729994156984453924523833696923930169755347048520617381645320783580924043708560960044029798823257598406481036832631746488552227590129963684926582704836674623838449008447143882970137782689187994947980185054569173639640342620416009408370417336927198885172701812936198567569623924940135447778843188792223532167725239831507498486424494999812732931345874249086296678525610344098447723774625627072143799847435880757866847820932645923075411514298409406573673632037031125383494908028503473341966909375279520069492214321775682169355811194437415722667082048607833514893109201624637028939303079622570714098796339311456538243530558120524668062365492460093188901368559041725945401994051883896149673948847002001842980253379589962181161789597474405696935918493641672539673083070458309532609781653280374615640065668672637691838686282318487126819809065063647415295033599116694718941739721465105507256141204303142415041031569580746002463299821601421722199628494710580747753894262814281687408334233757772101414211358165333457312428606730534918183303384664889798032518108655623762837752714201706181021692198748429545474187796635325246501841729725481715779968052554522847026618600306661126885661688780497397392836038854396142752824654396826510409573555313736667461349500802573597340100889817171219928309769857706932003255287644461027490711862246183293673404681652994840458156832021160488640494245522077696653307607153627500588879146387942626959220952230245417531142527437062879520465038915237488458320881067449479059807481829668713905445359189652578418968036590123188606651878913831624419963518857819120761142639236853103346959184993560055853381311545937822078548953330582227110064170024362461659029024225875569611141904376677956170003570370643539777502617862112828033637451283265847803082019301327014922198497654395874806728124355184012320590197639105901469941028986734152094981928739232065542743259873610999335288693190447088925389456008687247481712019838271827505066782639423088053518140454893600974409442762986277306740335301417971775782451997350915396435492943712631546477057991687490003651000025601335691903682281890345548297806735128508921283859907264968371448012229919341858087010712427501962001310830851667997265586155453851483933640080038946057242791844364376314657191642815982627763900247738152215424062098277132307624712804358730570531786665150727633135734420672455952535814424385673628036511749736667926819586282295587023502220197900933222746444961732884161272814931177296987784696265600071054124102747758934295562849441294665815374649639923777138318460132665325776490578906420177325936160122945427713365167599576238459730616016042204653930953146387977314268052530365125357969648075723963727891962236142377565614976342042700295502667044838178552736170963995375448501874064031738061463486503307824447940707560389427652339561003377566867333258495241765686471342383938421955826434475333312296947405405564883853223484456066527528847875980408781372737263509227159348106349159581244695925020916530168797876500526520716003992684953365572005217257243917963102592602492360073794710848795949998389703300156655322175341387385574704165128272945406476885451184678165159926500277395584923020468945267893509826440508511766510661597486495131696145219385242209042368578143881735383784709378306023104766415621650249300210820127268029545462312328556840318985885368096064022293113633473266302698135175220284059794131143412218367747917050239975358314483263524666512939333793647421416240841803588478014136363307015063511913927404721845112357283182774214885210146581634867548940406949963626954384753812224912822516908468082159994146252317758808501446352256274009707564789162567816879862450064089884465947294418543461802670342410843854228530365530993613718142888280763333235860448517108492863876616157289730472930510431971834227307917520599181371411972255951636905220061076109849390706034282353411083910428265178738152416189796963047583683387909819291812553353475887647319587862529700011026213555049260292972615171365783935435506482556427639077039473044753128552516548119978592855082421417660096756183434919706713479528487695746600569985868734130429299050557092758773644028975703798334992397798196135683164527946065841318153275266362815547300122575168518046001838225815495847158823936230509167547605085938913045860485130574741857065407772846803548506922109856121279272289717640414853170248548760979005708488160585200344535693669445808218013854252858752984323004425153007878761489151318875559569574439705180732941209746440182378652174320628471089893664000972347808640695590145245070599080518104764948674392030009835308632906586954306416680840709059011633048804161398297730274757382342755382714887522768431836139079311214760436782339691398871626396283595288682785567826017658609439559354475243622722938719924792257901755429363983795399088432221913312843999884798980753167857468995862507423100814405756708205707293587883838440014957438752257310608808053182715774088852950175014795121880827125113449760001571307299632147266458749065117523693744920606888963808999357586596981556405428322818221466427820066190098846177228194798378130567752822574189888583485260531827833937005625095669351313427497982423321288080280766888731205048331014371897508263107426260240402423712952358118887764974161202265990312108309768419152896605534381636677814680303911559280142108877946870495665745796011491073135036887147591583843091787949361270724993158194799200594852071069337367901507445226416527467318607757075449028987413718689241101358063540573219634851226337688185648885839853756876514895467402561988363227683876063048081805584464316195941609861044878700331806163471232985663803444300059204256799842714058818085017696885478509920150778857392384127888692809622683282039271207171820038777083730306280379367756564841027338424170607325583217936688476111158043800234123182781237610379142000412269678215272143611715384007258584810000595355733849066938659822194198220796567860051366256469511461318180608199077937719335764582812339363057745342296921341259575539528634471119475883103702681495651725294344116536675296919407508876509913847859585595579012333975617202384751756455624550241701163472705200345855684750245971674386656738049633369374922847140144969385988000190950316984322649398715836119645203762898114961003044791021861995539319241619645195047864805835145136955103095822844731539213796777650310458609468767429099479134529217342469310821816039755523229422879823525848422396357065637845160579319518555955157172831147796012890952175622641332875675442516840410937913829822775145014336176022917584810822268588318342774750609652506366159331767649960175316519050353792342021499901335646293876552724875904311275399767532818149345253322933071146081851751843993052647576270900342838647925812848116345487180621359451531912733462237646696235311665571382314634779994558857512944631362339551239717782577901297317726757956785798982133781927141585687098072675315339630975800095523770551152283867912976329120393148942447216203900579813514013180466956834904192745655175103158077543360425300253148863161915327453111068502941681134134373410086254938637365901989927923682672008703505721059377922424907494630184420853282078164306153962778998340771476107125864223612003466420083793482725332196008189021863990104243660105635526689326657553984387200162863730289865859866696846256137236046257449629960087242678191337041063458496455653469989823609124046833759586415869603967930677361146064148932404999785918894240739423383504082500490574369243717430718485564598461683942437842712595889944009204127777797172428191927801344762534938420772011792035037979580099500622613847885991931324115810977576786683059392650652053463602293477927358401142294380368676947066717105501541292734920475051245701291659317997640075737427339747808292092701877582627278369796146052984576340130570062273343013019687928147068794375820326743496783373459233848673595284622856060076446609012441272135265673794625086032412738400651138624081333895180555024754359878612885797879718526391278329635717408230855663347715033873512852680835643254875392121589071844499700999003934441198004141664062430816671849145057864762081103550882343556056464147520769976328111695336044705450211995993293776154686233108188190310152892461248619434434165975821884287079623455604444253575797054775246429087534680460343729201532700319943912830754373169092708865357728747180071083820663377412974768630303729385629617741195817160452689296966971687943397881808437486977148279348694124222131276008106906840288063571872946931240032806160274443462964048493308776366084851018969221464217512632638358571418156338352736859550575395028122119631544977330549732915881256060227659383366858766133923449111035321962969360152769641557397863067725676826612337238609772601814742380964098764097184098242433443420320923092591857238212720843015977369270331213287477712036635725277237385015096570544292771780398558301226626281466472022735508505088005538851691043088941698265721907758336514761005649018805791543608378313689372654605275075424737364854495726097512221373463355948645316833429908000663959043635892684311090629460525918142177057330898135728375963807473499368821137766029476581393128501170989702402760335148051369567112034316467005824081752076487072661195777705712634150924773064682966701357052529243820283838575427884821129420960642941125921321958779829834425163134625961634364290812474099768656687791868519557579450162452905388445917169944871039739109736903034781967518249166961479792759106079950638706108130420173573996269665375924811920806534210064260277686271249534993453017900937598998340010469361998962354998549778694967030509617011134664244101073936407706082903154024774228721017985433315368870220883437502304679897091991197246054618051148160603922088760904046141528197757239410449225388426361235845067839779679905678842904363696798100825773720719620795060485749613029621538687936899072008228469837569781593102053967694207112060267646505518321580654738779917125993798902660419570281004493026368069165422730446825988508458517840969036877340394764295228732307416044544449869160570532610240568055420436223414351198026648080176297009577767144992417898314330715381604575110616186614553740826862316572188309428189171125628941940432240529808317597817563939203050815646150036717046051531078700574451262826900691646725761628786453841928375403988517729820666335062218032880415490420439964534638390214302213154012415510685650550878557401957985035237256996325762558244225150908852403855043126929765995085348392078462439644402586091570989834706919857169543236464695528706508858540306522871167373859174398775044386348046612922201518345230943929619428405710267623737061269179892401436222808151835554528040464148059586882411119737365592451352160817824677014070109728712613677244228974813868174096921699725466413577853339696389537079097657299130874083005882296649200620012452320747106067390407844613833745146892615411678782865252585876189383687685731494512351865031410773473346943258427612797280354552235580635509173690283852327573994293580147782263450480104349941974781758522736744671496494786389427726615044212577271217977062932319657806332073837797674064273082335586614677328869121887845548015080604348024123652203068575820602431138564430193285544404571619821375806232741582992769696984878959433641153532033031617615040948713381513586609702433826720370047007133194413671953352725132763761526727624976239290446361709746935985708933182173576781103678210283580262274554850102745404575334619285973964341178976360829655016150058797576534146291668043476535750656310782577654060960092673925054992230909578324939978131245757313318324044004665976492766574598696474900787343873385632166264666261152538311598831348206410081833110259878811859819004955242300846281500597971854805539614824914591386607335866100649327214567233238955913519805710408106684303768293914097411237317064256804283119887456225321613359268753299592248875784558757839300813421773054370932081094932753342055460035592908014559067051726135595135159627877776029038489708020414701743072193660352386034171048649590936412873073468386744460440054382140685648511208201138961725238648215622665687710217368178872009520555088162349161496174950024013175522745589209363901197582851924774668740759509322549458008502052194927170181101794755897597673485614455835051515649082569066995045111915709814066727363117569695167094791998201126259197207438670892617217716829174555815786922222985274491033910191146223248760668675253736877063717157273727238340124195050534257392925627229664439081974489927279445009004734340699190270249344830495374399966895389318222029427726534455195328672950660698432895531700909896009945739039627081856487386256266462881293070756806386569581956621953788808919098644016097952144380330087394927650786089346214185655783454633658868791210308662355693308712322286588774050661418988939114978874659526278660209304150191667523532098794152921212743956450824443258442426093923294634563390836887716201775942154563369560192245368303284819016757468296616106866575638013266438796304023833515363332561203053988803573057614981794443472707945598420178435310375744037507772884822124825851493777693688701724443770914300671167071561696946501541899320554211011433761951327018224879514348953119859865877338252584758274407600055642840434118400300701297837653341389897698545782302785153232066678851349377793565955155470742933925074873247170705605676248097449073023795723561684967052866938158299528811377215665304911006737215220814975195382527982179059807769311406039681969455242534505506478300780371163994751650450111311728711786603254908601262890165840099109521453671340443988972052212643360723572533115531247300088358913793665430498407928864374450479482605313758478391423835684527652272887177574560392719384565016998667926233802181752461807791594515472463107256904777887516193884611737296330895392107077337833728861642746113825688970461781138193924567496578668631523374482267708678378893871705944981479744746033570463548141533059083140966715754346764441035976027900323735920041565975335809755100913372432161555353139594740790547327993783935028197066664628143996247150381276948684964136562181238784094191784989556701258126304923946142577019294742327872498016744856952226796439212323345006687854499631175206944112885867417980919380530495804680587990203970529024643432774828004199828210340755212753969356038815018118600637054564104462716433236746204013099471852925524437217139260511891182683440468223430681272662499463013519172145855922827508820403817871469616490203862820016873017183308018767392528838710842944872020403670239363918623326490963303204667345212116044853065083105998036716470430668445636029462264134678163774482455877503168347942755602242825682785597469066820955368961452496061883273697035851272260716566161136092172700060752689750868178720172285370524063094798155345526012391523347516408848802092178927742892210110379270128556721711921637134106168181372859738730350141632292185011799538008609393558736209225585447933419049535430830770991933565745712602377370374753905276432616778295238878983160171412940461365653139356615998594674642469547749160937124801525591896362075410108405072274098180505233097199909884610161259614258626348061929061614074916960587497275676427035219363031180541827517516057894708601216359588106120373047294758671669152166401727258278005303256266415750197530826111041158303227094191321550066084913981637306179318718818803580776228200232168877617894847907592830074280796217526441381339719873947529428633254169879660727775215013712310398013583658183658404227958447118612278001625317395832519326568790576396584296174000164337625976360752908314998971344857222543338896835986166518278681984898821026828105979421004189685453206444531732789232095408257544046426448532863793497479088784655542205956742559572736215786194768113508120530858247958711535252222516248496043184208528777184497827827342283280718283413973031958136278303016976274733166345800187146161813657873497715063419335054820957257573151248455179305265926016118737815588461322887496724370700204771319663966917765159644469134434220623047420753284909569911710286502956697925865592442716107914367879003806197408565136472337931990027983440749898161877208361550328355538243933077998591962972947340576003980507859477226791612512293469334720737185813524326096524358733239888511989015408604329173284868423224552903984247520717858135179188532776410004845213967071652544819416501634477918670569311777819682083785929561935377556517804333246239448684313823889953486138727786261036119757706711554330464598983153253056711949082084910516922435178256375565359513069256833962085453306623887429490723928826542018963484286238601992302605814225657125331914175584464210900902077332210439275399903965273372505028078687453053191889390715628036248728384504044168526945220380845049385917817564852165556165034176886833557499633749427229434611977433334165726155654226361439614182445698913106580358105790225748307428734307774146482123437727374873994456861622450456800876942913253779470611461897239126281525545854919152362317006048414835949452800421643699081180525213078944677860254424019338272937154102682866109790988739261025492135154164968367758316445803606468964891067845050695802422852660415436288677146201931268313086064943949895965825400389129910858018931455068564504468773050060142196768307340360058205930425955125490375370843597063351881227277722961318498031807181392285742359439466655598645785443416451617603245206083530360903016318165006178116851652563764869582583298501534880752344243600392876946128499898445108311587881358988331160293327516778841066088502009960070047149407832205035788776676445520870095738231747459473016852648923130963413223162316550473246306017540708230102902372991038835213593850569714149526454431635333946788238255989586422344002969694985857412286137649719133828250301063097624325234138720723588509211314024919373146484812647082265891136349970009533954892382634960909189660476980642870219426512077375128646803269478623039763578660838654123129066282097088417390252275756094856990524853535826876283798040080023383980947212738824212393232968237657886462734144412644297389917940004869353033253571489195086221537724255397238508316122338138771590113904279437255708589925353172237113451512188524695103970524010365100072031318652898116770508058324332086186797403328081733464454752012207610799852911500968586502701744804012808693623864199233798123624164999592887207334401023562663996737680981122450512995661803259941382124593594991935625707331465520513398523637673354456663448592295273557240776820032659211215310408603690156333283955314091993535780672518415292786754185762261898659779792665465560111084470428610709370232894957734160116059332933274445669573535183272433450498510462331130179480394058526000860620575870256713462647440452099999005697169020267833022373711716093498944785614699696696176747543962164316029605211566268942770463074110651476625415889135721773514052401597826109373219081791737774475268911640786092681661648304442242712634073033737195712358775976687152778763121429878053323951320858742644614711484023101163684307511390028160654571976689988702753619609570455610870161849994360726137973382702806196549096662737084912967956142284006435957279404623834375798453426996150763624995029572719118509490368310645934360722427257210544349514436909520398799851880470926194226096346487319587478455203607965621228254325753083729659492320283300759685631328338726771251292352652625897696026279796054620494909132964616482767496704748085394423522305105870138556981859634512297677721475396118561583547536024266173748847422186080558198624812858965383563754991589685948144787792862617498110706186357292407300436635092604310923736313451374210068040097526182073480100074523148304035870254467192438919119176663863711021252879160136268234492992249996096938136968640455597345678480708217403287986401631220471418456651666987324456555301834152353614891402289445058913271199667726568647433454316225917542196710632714353984831387104190641601247571859195407679468510505841736562399029226779415425326888947679772912726660140142108151947116002437269076529226584768427596629069790293762607199917725277878887665619611964456101764728622119695523531327449567414548412629108916487499714721364059522833692463002062913197427626057470326810941074269926616490736277259958082361530504482680317775487019646027486635589736048346210273680275357800195436853882646753932251305430974758788366296280865271035830713859117310123594038846162991782991725631387901619139961977324223489875577771868958064824809950581807451268965097715714721611011528749671637893740904363972420189691395345843259132353114420012331631262534487642136062971204208868065698885921701029548137675521226423841351155576928063518866353646915059455479847443837043846419115290867022910951912534797988948955211952853694899005210513057225112820084446364320419783310672782876591693542801084930383805742655545839435689349448932728939243911124620580561589593009963643540198609522924200814786779674530622461762188061553255193740208252785441468108297001939411980545136224747694258926267552944919273705996839422025410551241023293729381502173115710991523273002994891868212347749750469938596862995878849162427776141676599436709768342229113199813993324942448457426783244113117898326026083057510782442156858315646391787093839113880369584130725706223468248550139400322415947687929816146252717838731365228147586205784162998155566467765917889200557907796949677492268067972938201821284479254232562779893312688095088880956644944580735817573023922163202483903952919209354695879975503958875821775474826009695999987590687054929608726651531277662799216079402200068234258331696504577601519623818224948218240912207969793619260249037868979911534913831696066988887217985023257976425129223205171136887317831980557145402198053995736304966493931808378872918397124640783317526188105707392019435511990319523790971410359292193072466742589289850550090201684840407658740951337056021127990238174590044234938602562479546269398096498925495540940727823456793646737580304255280484797535035430940951525346465891154526422161661548011418252185633287955402321347453742194025590015547650550185394604482509487189030194053500001275601707267182428878875732887110576175288658958939034993725124146571758380552191555880216223112473468956174583360136512982802908071872373053625132546362824718242592609170096844586821517727330650802644110368086410721837512003126932852132699944029891691692340995466660597352465734672957769689625688667815730326594046172983573646377563886350567947283749875648503970113875852290872425636622770361976638080763863058242600472378362414283888345225777741164107018305191506854644792781608664245393881997933272926159704738106564295028109768283059273490026933306029040702072817432289453186961473266078662450607667401101658614696559062794033411952310257559061769052961672901382499218544406505218252473821726964850876245699552709908688615277035225477132174062712695973542375431487206911845452168853224511451600231230863665045388605108217275176561888031724735094467404393660518121615295874701720548186526976631913121743870618860466410009409990692537137691546019685471921364610314863897739141504119607506048489291877363352333349897959280745069763149800794063095229084497163980330897386475159802482135230150146816630923850637216905320670010121275005487847557695483545430791609977341648819556754718506871438915934339112135510691496272105407418448776214113200701311300481730573958111613299611703769228816641228594484382699119236102687894153231402013260621626183575682264811461400130616005922859565494225839087480051841784761832538752229244135852280272349038553337549916994175025095292516451072611716894677852118197036075685135766413750956358146633501373614686139590728838847734356699039442231277827754711009314674996812891036519303925762007118035286190060404636285045454381970764891604245379472348336440880831914024023885808588439663918298062345854929106193506973138854154024373269170178748038296571469150556366905145792783192669431834742658144979586917450294769872539698560186114209713188739500788565817729589834460556052525366935789316810407788285612306695519027835512598310744210514377813653084773936962988285677033202001534121813993600558750297839157256167301539099551729328120936800911102356527784817361914984093680355830808807035379358347050214624303040980395941706927450750147118501505223708738074231878982250688715137236005151958294203943698396051534332668419028375451083169720725874709020341746012828593362300736480197183367406180893070179600264594901621272224652336836918028386676378592878124112714110378217463561768252027878233382040565358213147685021418582584865578395514323613307959303013952844771301618187709756608070123170262762820828135337229833730982466996340510774942962066681136907261714135471486819276870846979894819726084102954979396116250614555038055860149476611944873055964401804491583330688419968957387606897690679928161048196202523566586053822968767457529076739486654460791241903454768996335805132663691341145041005795318527935541964686402164653098963239686288813546412599011504874955283995267746751081169422232680075956207151402995256694921144308030313550705087323540928666043821492944281183909909645543746966397576166081356489135725252175319748873877150811714073955284942535508412768623187083574026226412224202409118190577904034696759299451023725974731132215550231831321549946325495746306489642068895021879891205017781329339690968305386632314778549850357737408688767679397161808050973217405159220778028784321750669634162622341141612862190112839702045618950113330368674494821292325996704866207874929402252215323047027299916328143418187896601047760575663741072339974731960471343208169854423162997678406534496069623039664736233296046064548159719212396948806015130134595303206480177379020663971999139255484331998425879346582985940156063769025459412347203775742198328970616093631511712237357861210015510480570639261113132666503171920156319126827364799734731130133087530320129664062989996603250858247699769024392647008232904988911343235681238053430727587693382854088089234500496214928927107938524686327400742190664305408363478344507529713430642830960776548429968499086459591684484143492671336169383913453176067947503382063253621620572514694618774908881317735304692653629812391701131875567104124015662390726888987853944064740849642198212777475467934787181020967004196366436007341930938380851619907791204575583347848786408624306791097371487523181875255751338914194730966784589017091255247227096724032140749738481632639427352117740521617006777499484748908985247184392198726851127099802932536377452124616226785650365329724237107963360400679836967025607265194921758718858228622163907050025426119087717566350949105774263117060065272271462017039803127636486137631564383722911839294865571365012838232898341367546846858982104113710656937140218955589277399998956542057193115386763820289335348805923075793314489856586479092299161208420857977065464172215218858397296748357225501506632577344661028504239046606759602784829565936157280431785168076169381181698456032030755558212852612528581493587384634221462078942876290599504295662070952940287554525591720281569857931821838841613681976608960724651280346279309263815542267235791924012131573553963007831421217642288404727945594737976842307110443612594844676431022490517552364114844305910639773504864120993670558321572916427331366381797780720274665789703802822727897044610976888694341039686544135072668908194097803149297338179120107869191548117385771691469666327504479550937347667683789164806407681852089788416587373840403472346114645976067371398405959212580678387322682700957560185783434962853908348658678043743117902082564992297692626711181747814279402980770605897493348694560453513845404183605289762711315532934611550959217581986501413938086470199001186824152177536891575926179332676373949018477884914030225518346155277108400241465049037267777295709758145905060051728396251895013640745733147377959686874368553601505470072696799165481777645377546492331976396536921678316379033219080095255386220898311804053013918632425931002841751296696040551499063898444225436680261174210834720544038454428657404043929543189957161562650371371447900186354209488965626802501069450567200425236850181497903814537760999223659760902212698860073448463734368941017998754158538567893974370183943499182121927766510124161830729547239627318505916684545943013635888234389703781828019337938222795848607744374126165562979175016083607359808365508202268096166136004807812420380642765596865137367225867760325428675190551267136668209971805230651508716029202830429775155175152940035489629080680908374458049977832472015652383581200626824032974419368934535797280459058673061585147577514926332779821842649993411311497633914736353007257434616928461556348157252503671554680637854708402346394784860008987871649339849631393125845204652119250688868627906445595307395676588377817524522615767856225128263627514513674824432726980270819043808242293285929401970491240158369205291994902152537186067869457335884018390047298618470252551751274800629082628361973285155595302856078317604667280254136551057409583490743928244541827901790794877751739639779265579581360242256848393752372837628224624784160012452214259297888066077771398367807735052601341829511128521732968317003295951108526650626796912136725762285921689734193264746888634992496824944738579984281578853388109165818459382402245175413174064744907249530034985066811343388483333766261617111311105738711549490397061173326672761417338969641926354190560010422913872187491775696670934391090977856937993623530002506339196621690719365424904354702433805459302537174054920372582321031083049608001046838345326480762329720234864329928084067775204347614853386180059950506483977290969454945143822950671319148378764601313578881751570898991816349385508799785091523038245306778085369067030331207894202785922595412335914755735650042079927496508652522740627020604229080187607687828040237685600422718762714823976683574739978668261944465787216106509885255616190593939046192893868681638324966226189576279465678210496309962857554942943790891034149144165437906432636189060585009893339560297539945499183449094788490258770410060389610510548242482052602161449869026883276105882075598299832316006557518107512711517620313987347179087297004116943660515344273630044763294405436347839030455475623557841957181163909330263049830751637514008680879278078293464028546001264609838119102758615765949597625582220514735285358108551378703334650358630286361129783360696878989882738363653059829950532123695343918477754174366892872910059361290557035838233864579560322268626162132908395491549346755946883366990162811738827542743354840320568878280903810319360797502440806476031870735571227648524853073127165487676120680639626752828306877891379294288514731512455534755977718042676347522181282602971055284446203419301195158175693010780122145672731278910832699207711156176776589483002341830295539170807158203930456828633669087393544754785931940396259716127749199668526887411679947820221664178331192166177134161498737557144061077147593095753608271010038194608136519084892833816800913295863753384491774976935343939672225742011124162618794504112301992130772502768276743767084471066460043420025105177337052376972438868457706556742863434272242068820122578512378734894009192233655021332494365618889900676185369844809830529968099239402034655294961316086957855347597546900705829273117130584373510658843648871838844770378648311524326669538612734461776405857220404033927589303376363807484944368732106326129891150691618633433673765792819058959684495020973589340730644783777521906406112253090222558544720064644970728807288382647401951083469857576700820943943848911401090270550007625313348837408106849713630242829322424415755126051222862742892395699054486106538690506190293701718952204524249076774636228904892602816792830474223536961201366260618810202446790143720008823905260869871780921378334005471807959546540609330208897360853572985282270613552111939215474096121225279011767851382581837969484641454934655514930963969862561509933659357945405814889415882797917065674986647220640288900624478256470734482473389374997122578109374921217296389547138916192435533068404188857980652600553320323515849969280483970439134116965651094455784007185039482860191672619250440040944438410471770861866181642500786463251639314144999725057874656117292973280951336219297531619097517575013569240823527345659289230785957605292066082966457138102969117102638101728858644827747250690131009406231676890192662391949608059910715058709696924297354388926382143181949479817752340168398532593172930036486514772002335464605701497579559231247802457080114365236828728639450220945456547151766641726150789941413806725457081171246400983797768578883061109737185576038019338034480321218489886842290279642928222590931391397232163802273440084013688871666788807553658214691862261755595426071969321153910044796021379613108348435721853535363303456160790192972653033360478490908366880870202523740865277926859062824640744081611385690471574341305794730064518124178437758316267592598396719505556830339370158987450210130237082779216610340088616575352196091361195672393451013619204629904239223459745981224294897400604847855371292978304726092721211857639706368904969719252901251055348943539788306743028919815882848844545650640424207112851644308541803370915288789536065295124811877502932515111670858247484342094050006211888812181316940949985175918718749847295770935035841042067362792425434219359314085035734210808864942515257937350583020354636166529385436468130153229668059419958223887132551554190881106606818076732722427985772654811630628171950232581613159518783562537140644340681367178014697693262340105660073229345066102925823830277614836433042008798845750394185803827968950189777047997901621090612827613893273154875445085740106969639222822648177251144204637517156202812278407657239626063343501281466065762020806121277820361100289694989574587242564774070930636677906830500303527397544588964352286619265578486627470602404787917086838322378353349899712095026293875782999671668966040433200607901183740889159865859769355481516294399880028949442890890009394541860876002298701667414801143804133192274340068329040648424563375124330559828116708212395842973085354265242805198701812179530508951550532952609004814686874426760606720332600089415041858682204512441572641352278869784831382478768278704434439659872499163242741170221024570867897064680879924099276658251708905467193259615832655799122287871285130784530150465505320804957247960442224737205489322829747220743533018966744537104378083931086547956941879990192884538076232992851383203890125266454459817903707813778257707502686022431161860836682492664755195739985010620504661393179126205451539824684596288457978007913494428070300062163455057827447087813846644995471152489864666639848544288422520926749407799600015824826434434653632979067821970486223412754649984350164194558297393829393817807220679552854261707679280213768255538744346677696717194325864264776020152349308012734946311573295451618376859638765808191623715251510457118784256665030999812791160382082743412233732059060669165247784484182931655703520038765606213274802083815851740378815575964089188798249205559550698777935284935906311982233209464683726862265947385692217256511716971024743958617747547475193466972950805697473055786114314201202466589400671918636804366172945662134635382021575491030859707070652401206724862062471253644117438671041845301529350481413076802244428191228443133687897894220900148279660965833283309688824257626346367399118566609335285786078206449950713872112308740067558267820150075736107675816610678016555673178821665085138932148974015327478756872294880556214708508759313878476543778241743307055949747879362068040056942487103572073719163904807343007720872673080763184667981246135068729502104865887385039473076481899311818674408901797851654004404697475055232752717677560796230160356394804859030699456845678920474909137693283127755814234637691019224978916877372838426786949738534965627206691844831318009110549638684611346262809317873851954451238961347919928208330051014783431988618316962134701471051381288532699877189073392325546583558017587879501868435018563872733213709494570672574209659762827499495271513887036588202287664767921843026069505954639657881059231123579105160091407379816278587333529470679789743345752565405013711686993839857822252612432365566220207050595595947805859637348702024085624705648347886647203266046187408467370963029463846825060798199551381228696955971343989996599077234120670342328960740934109817496312517208778459142515053611993202722303349899145809606799892524015343011864978067208435312374743412254171885683840891045902835404823562361677356928936541811223041878161687421749922003382295840746334574075428269191292962044429890655441044132700313258542378130504015111001200339137655141544529822295951116249520223604221391524589181214680655346762371671599306444816944770918513353378427471354382317022713321350238706086146799824414545320115808572998617476312308042730914452227795373166659897899989545684181126828685994653664997961279776698673456203543303286823876451891215713174479742905245317923179296416571585510015804176086667064431629345238342987135560684410559701030157764103546071763526846134553555340005682424693249626006584004903352122757324765172972028154699120912411654864671108681876200724002541873187815254601990905282258488580455259407685104062011466361524572641203540846216876027832951596455221471487797728765197607123190047064466624223701206908684394298153493441890421102977093167570257925489438281255168543385680905989164091250100295356418333879749452669856773458869108450192638892051595292089193058752472629122517590281924998592567803272226271774895882649158101985340233807442403447112209929280012603747159561179472499261344821248548890958999919546936030767402644456513085280464975305634952565375428106103003284175754270972712402108223991516709852003778050179007637008081962515722193790184411123671041424161032376584353064705641100511579603918817960238335789422037885145576177734724856345440837884255794671910247221332301220790224508467100644864415007330226843439334297888867911250966324082455678376062748953958111961428085669087904989914470965820462900222288890181812410809355903292771897256616452840660936586989302169740183556159295543195353291256843614295240612434421716942965893590096009727367252088946978503696778756450226957944703880165763958302149605310425298465117049692351681075317227849951931642928928099716900462225992685786961732349120406482972689884233171458740426962815995371565218298345893652557189255376950203006284427228646548771234057368066562112264714084913385865553816229316724942434527085810509503803698496646611850174875598600949754607136662152680943715835637866636747047032745107980962868443916914000131079416947448703840615950620281737373601795959122366222717261012198365176827064888851798866276154354881851090570564508979877495812933872728912410739227723045232399604789826559729680700682002008745011922044532707370552645291136181483367345913268451800414539970301138372627125265830662552672117868505446837989415933213428893535606751091172205464573330864532939489659273530954246716655092179056633647304687980361171584313082170573304722460324675192218468227125672348542085071865211611609841605425366803105329899572114695484493393802184485847351250001422363915513922984197291819312600106293460575510676646726960594678429746734607650653785601004254316816881553287836348276459477394048233862057685264064895913132962165948587551764550124644239104049443671147163014870639312906541462084737912692511898417726906904064278107737452610280323327988282382406702582395901350201675833259585418374944860493551785577940718098897643172816039315750944369677713773426346267620881829285383155071309799901894111409762676724939891569189294133143067489083064660535311930801224238675110896396856089855299093228477385174272839251591520233930787861679200846193013229946895971821263405562465990639922522893932511751255145283091909988358629881305804520682961452029909840249150178169900755700712018812458820720453027201680697555529418689164135195685432332999878167719521460603736256193854242929949738238445591300227602654849242584403392442789978161867238913044667072072524095581223936953098028010765620360149579098955301125411846340574443234585091013718414284879498105757659228733392008217863193284331502337858692251874895867435134378318794017966377469939858556204288202287718613170193545724131309326297066095536478988974855573604537520558300357524517802745653481301568886197673103799285241738251976939828956579279170340626249920237340093562443731388118328021380223101743529337226007584046449916412444319441767569894183754661311610089952752161385595695613792051976915390276920349803972816698995768794892122028938328391941755035092428987674052909765568591223157942973215099097085853992832402816221089003442057962449100661778300891753480507712921964545484010203295439707651251627635171968398207942934184260979946932592791298037726060507325327446864548380367248545419989333785017673802108047583318561520849454665822914365518502178392974291600098087133425107328929201157253502684983579406415871002060626954738644626151310434304264871454007201672676241044372370345106024010478409866690291042350263040908342905399702915310706186832985430315376074661596961176692169455081467173398760808543649935287604539321826720627315585901861530394990748438306894437755319147880970904135498963766922482654318647201306974357428761187368732895357719958554876294661686369914541036061291888622794591911516558391790742976422319950998559628438334107549567406981272171204461744863338758321613363905785258166414739064174029737972728417507590873497841298038522819277244592409436194139935301320292137445219602386453703662019890125381522133465507627669267308796306166106916807316350576068933837826546689892233288894211649812854514723150659016046748394344385104976537733067058121290441995325086753241744153424906543222934803922479733009972771847454344351189729083414138677658759350239512185193599958256686507603614255630842279853502035330464359043213399866002151051029339138886102310185608255589736272164058347541474637883265729723332691758211262705854013884408906451796399819025003859441088172170158713465425523677502901059996236958895896560111030785962212205787477431732652885535200144483707562618360456120479782843222429672603629409940253464938790907716140301423387726158290472636530058882074071618731608055829944982376986994387602326259552984983265374673123640956606662721877100247255885696988372855777739868521966051505024241234323837891433262550936094093649564703767608003757941743568467474684262667825186728239141434032688579865692427765277624089764873571569282487389006706075787663048643293038742572768572228884488248784966925275903167682432033374874613248133841756229735150824924474793031564461231808628900081642867026881365022635605715766225226921707155998768519330878799128042555573970179430841619227756128921737923297838776529857345870578827719993071219854173949832168604977361421212687362963293055642109312355885283183371793180531589241608414901775617049873892637496546901584336607106972744951605999810983270896367724653584065096792865133009842530778717812482820223902586781442774427184597793617283289093277462163795107514642557698876617995433176306321409482204789379849565874612595024967433880504381816297061956896817647211839434682027563289654386734525813749914707750758235250792193770858921007882430829262829949946795968911589613761058694286872923271502433214303970996833304482595170495800981261073525674249763203937695974865561280545491974582068056841744011124797985598055703868269832727646218041952694526567894533604961602635859568351636411343211895935532004892712597554755779209955878076433797312908873007353210234255673083954251457752015237953050303356902613933048199493411560003300785634579370462769379766165984540523415714467748181553528056731866046931796681167517431815793664329753730456602914008201787171123196778985666039500044664078376054416332166560254050751468120898632799360004724696467360808985816360153343119973612836930751634285142833305863405259727222248752880703783276568991785156227333797240421026618190132171465478736794343735078072284388379322436993412541425336145423586425911133874006477327583920293078211684639821558495918106021502151859023115452741798490571986742848978659183027337226537131094327905912259531009686538135809518890565205364505532161350747653704188243500360202271423644789239708705436455740768962179679663001638199960656053896211009557309009234417114732684428753206509866672141878701758380349246077205600432005253445014771462772899598925680735754387883245893600985881308189128962957829867702310305195265533851022848388106809811329854037572757569216775455157541806277316296106278200509254622446772603170420066833448133536453492372475206565966780763259387887019013020690779222138337703981264134394680363440435247878536412603327476735115153828732904774948757585424603397074933846241010172085027451076431365498990445678920150284906558415592285961641153953720534666856579712135433504362060454839535090303907636522157924998048685284421203863789944156803009005300813634559556417355024403338564987979020955793229115645820928275392336745301852074196179806093190945168348254234048327639167639930848176603593551608189133713676902041343004165714917801562559694190931129348528650115482452299661401541778575134054799380817568292187773313250355673087007138379471901460388477029945526621478566859233746093113521543562781449324494804066694780214795536086464422017377548914308366115344077483358868288943569728079287406392765023677967029315246479725959197470947834241792665002510485268964613548170645552316143968415934926395458696034508440953845612792136683023901398230646733979355643025012644808400455787414030903392703192608000196593622923454266763151363375413630171301764676278389473525441747059278554925089348534595951712283903387295046539876899409623741132096377017507342492839073452691927372570427739583288422634089209826496313563508549987104021203755752940869456039447443915720948623406542345858819719526665935977194323211611605248929500713448844886739652570347961802289654778360606382617946024888920044427408268213948846740656169578284777973689642591798235735682343119981442418846619540164060047804757222800502696819157086668935914813072817682666205555272904941557132843601226389627462198834827688092184252120183660089852768860827853221646954537000509638343012795732054447162948180174373985439208617931670925138184559117988802910439271221744708518080793117046987236575837710326801477728911283091048820627709879967311417215329843466959794733601874328087665533547144803862872475671326010612491730838404176565262598815913455408742191905864814236303801833721876893168739196575727247120262781194264051115871942327630290988934071090028271040875580547285471658012019736960392565270482272164134398095445699348272685745776833107275145393757525017347926302666373974777000865572083576340518586920774702273882166152057238660663873713031644335679114355592618780179579365092064694055009289993280989865414696345672794618789406604386958839052453759907456807418781074929078340912568133985634133346999608961846069876604767368297445237408299423560443832850560541915885727385609255391052335793039179824617590987837606882725924354094677957281415453475276835154621742476131475814686801244000241190876968490890780452076982282564177482211492891381389695988530015987990506222107272507039948785218996802517055043500538347301728871515236149866959094817559019390464120391109328039473809978777303075452419104655155778536443415270647294923332943915800949304022214152264067188651797021110301221600041847223169935668566583626212182590658094851063332715781514368888133574630168507958624620641276775027412735490799892837535338978905659901092149885607154591075723713435606539118248750706745615442119769589520220927266181764526773664893436971331921782615935254107495594821672810475310512496885419925175196995975425712007114597685588549966592212497888473684327403614065362748818095470883258111140339069254470978911837399382678310680534545274162393807268653380387242366710120392651172553520150912758274055181427760513912175808628753223622870852467075357380001888941698675459586500547129268054144427202585860059918532548270398937046957456938323154920176018195233379549250547122692027064789065972785059855061664379252282613382309258364624705728829822514324121647919856039654826736534676447109356206149968623100629220022182675068896345874405852588905957063269805545992429338605849809405928089867080631000360999846662784234098430387755736234521631086561945292984189979118583402325410882039218144663139931555188093942883888096129789129497470351528751061903238062031290248083790342019816438129222345590272935995714632118343092696716169096516830086008273891579068380281176241600107538050553628173327593611045046965012731220037814685641555065362019489355149052564148115719717238706642178668579470942508643995513148273021656590677265237839274784455181854444659758080808135115141956365250392968099356068055056455432382608232215694307758139983764255901165576562475685124330717476084860505511031765204412529290223273711263724183034473681999123364737852678295950372599865398590294180554047082551422948547267285554541107617673976762195303073467943668467375309544353996443557150943836845826683908636625505506527636465197532353375402723227839887135002229794038828560668114069414642325473133001879327523788645211995683882735695915409661103079694845094637518464605250539950834800106782482561560809493227064236689402257759723850247394731785481752736560124491115270393831473324476153543377643910783159489771430706090226684938055162022462852220023705316505696935994943351005193948382403610178160754046309741749293674925521373667958805801582211089342866553730004991768694228387729097876363917067920637041165650022614274321331161535872214962690527266659296810752281904383722047031647231956565317863758760641925347579449595161971959016882723986127333879756988454380370269233201816559683410077925767948330680530144665102789754134427507711914459742184364792362796394070463744301986944345915699174681687238686743152431848726374015573547485103247797077051394036248719919272011397272358588875479095476810615818365069082694690814258859887630128167209208198961296401790672942216891391248559255657440877699916201265259683465639592777020582673506927645735659221065094792082893579879720631710420268425731344857953195348329232356377012538100049712133396839397954489607853748867795202769981379108167871321825441107839116049570717938950184748287660075886784535973422575616761534691837876051283434601819104553199697560777726547973346190995479484923724153896354287710026370478966706985568036157793081402546573463975469255942869304920154476628763580927360666884158408790141054288424613993825890010042870808241131799063423884209720614833059338264256687163016227117544789829020403273285273851650851030963288733851276092671901177611886531523848252793199836742357158449070228215674067479274120420967348760800762111134547611095448844917420143405768017893521514098827313243164517373101232906954865908600282097240962785574300777121435637881672571673453546593739631771457875956345921847798445203991869073761894159207388550279482403081974607574304069278052117102583821725364746305852705420480309112161092313607014296838818981434847033095576572463984747307175473936056527056437188155428859502641286524331522877264036810671827931377979431665115267823521367303482878393707516294161804962833597377412377729276573486258765475363911796098356538451574020084273447542617758337138665583114757703527682604970829059512350478448975254893504097959784354989474318740392746890540605415658415232006977398228864003318244094925646983930279487525676769797551047203313702213413708652892959828066969985586100985582937957264967139944105941327854014275365003385388412763496302014210097636160656651850940593370933695039654308746864909945803146606406996147234828567222814727735749596656331107901209509854563422385267314069469703873716739202904418044249169187206125391758850812508253973141031874239969696947279066922104988828501185283708816773729105669937210290242360720331513077341102020467817871636053759301233121829643948931688895274786391489547603882468101020215651900380010022133906937869148795809325240306431580169104447303519789748371212239573939926002778148659288015534379988324351562932840679363675277663756306143875776614005386281109786729538628687520842320416638514128761725667916106642636116274592946822834115986996080079605398947996053200053307290241218972330812558732112846241267512324433704521555508854190046155300160753094719278426201232168717743128848332670728370336336203660958467967148830191015666538059335169894672935180056184724066109712038629247175814027160279445123898743288190298967743927471010912730100807429186643998689205484764385666512426651406384718036343993804519692211770387585538634637243167430673309020800583463777272306789057992682647589960645233831843455071131757964619890539769501314901162239816254398615603706859578199389463230959847958570971945977356286063930070986702445208743544369588216288095407997977270388971571353048761838113721269596981233971048924102411855426688358710799962810131349611298374760992659977879614421035480810107486603536696466130756335236302406251774651085587672232032906743056165947121532915971733917998968651976886446460441653688051560774943811525964772850004557211803336479187924781316219861025497232959401090090840767240635318432412584968904366988690353744420621745005819223654776306612283311417537772416939141784017867167061210889353988878003805834747792235246484451382278684679686586987585985747440145974182093033838985817420728523289646901555303327399114597806226800495991613919399579557281718096432608015001323681643925383409494520924758920691106177927606432864734711435019550785048707775302374301096172763880115772219253960388960295162602142032753654050134861651020096960445429886293260431259584164263141873270788032600774645673024872474773119874062537937897963743781881256972417286514022527692438308687078657074198944381756226386161650418178815660527734528943654557317851568396149652977324105542401625387521687415991571635057264563925666512199245160212927801086203884239914088442629617776626379739840731821649217111659059701769960578013009430030254895018112353763593924559003404248390085457164186259226285658864984826157765575508148146337614951117901889602522342958870736239479846495575016640374740458451076414075145156958372954473481319405108146936910550054421963328697779526784350255074385509943630742669755210344327455672014966911322120508871903566852638818218372830074839406347395791574246452542206711591489400742449411454983077864556645504008966266410936623279510445150864046369005000646650553555276170701290778469940798354213026397980512520365885540252680499122865593597832062378964254947549082645573942556453532610006811069077348314429610175381885654463378731061373686244130462978423541718001329475372543586744617278477284999684970033807649203201697926916291403755547571289573306524416425451675121459655813803166546333270144861126545435357043840167454320509566538791769352987877104023751492230174589754136683420020837128726313561541665973022354315904206815251800132634769128678651209061546400103297481062777365175855594428957705913946692887272526416773833343876721151463395634624382872157191413155510802131520225391096789288721174732652989951047763412046798513863871433402509811924595319799265329523453484984677543116648004498485902585049684020373828734915771731285903297980008667787428692166231885997638567495185761622768685936100154976408150537189947362880687080454988729137253680590900297803688620561341149440765343744194392262753701863218308749197049519904335667697758464194399562180887319822460543055165058018719706453816530394760226211304868414500733025377301719461865138751353304240572307897305976506608973952611561847440325857461206098639599535643497075033710610499595253306124052753968317432820604582828140339548353078350542597128473632423622519032382341459610318289516302156500184874852312895932696611921222097874683529606239146163200678309967751768766681884618110148217439998352630921770719176384725910163683240435269017600621760018812060274464399688741146709591339130320692911442680980164870147891999863936071593660674679043957295075233912787886239308488869768907620847527853656079353666538138887032337137299574748056721900742782343483774695500905749680409610943686234938867568480886666477190977002109502208689173853134305551767207713671140128917196349749890195295761118578587004729471524417259933381656802972626090309768083337081952968223538853563613266459913290196633556710372529943092497728528652553669848564226765008126533750701480884621494027269388655607909224630561391642062658263592328660666070155144689595896280591984756816183032786803398562163755728659622065301322820538922021372727054001864950060582605112355920244725375759591854301720019379521665472566100017548908773038785938398945519772113475060909690914886034748191260271732461474024025345669138485111645306956167369592367946553458814578781992732655485487855202300745829479064953300148140310294401884591057170596545805820351516424389767490745436213601171158703822564434972297583478340340955059597943512728802287218752874110927940835045814577945384043496146131985173490930082216157191234789494893823570345703961923340989621989155731935925963103736459270742364772274784630806209496289103637094363882693656076242220079191422344682778983876566165263957899462999638734016231786721243399993820705547375535344238961601473817562040969765003749669058389054262574175480372102423474973705932865925175541926931730389248435423721929284357186909083785822462244472219966464370364978177979812878614279030073370285046990873327573835405906145614013727216143303172561264320674597815214428016769576802404381555938888205986529458828283722088933543948079384985415450988453366633178014569338341721770255071118020760704255307380696993688020596737033850225833146677936224484796884645185901036923278406538540482818202482809234027109309185107650778241709912959626582070610322778663783910104673519608452244803682338726143606392215241360882625649729998203113948055087819926991557311021856746342191867756971072640173795510951805645886938261368933577342927137096214555257967125339173669779728446365115720510231081338225805060102488496049573719448717352471697727021018466213060473782907704156396798813115002165485831038139061425531931454459305561598448397591744972748383109997009695241659898638249518384540069413188260559717060058621343008183423860635427429557961565506881063997968477925285075974597720897505480440129161046837888754106791479285453383305693266906336415481309444265349595106572811023778500268459634531693926451461854327117824259527554661520335111109259376710322247972144628309629637272125398159608739318915166103611433917083720782555877989777026173581736919996519898195265277031495796752578069878051958923830250324018820851619730268834120063352362682646298601018773723897233128915721694720454024943137838441429307397848925723930712342034831881268277175062013383863883369233580118573860283633955728812731137752755498999924153297309713087042343467906158664961089112622639220653180781101806103100300801849067482976668198929226502944889156051028354468795553958722748258566226176598485729377817532938650794674536454392291338804935547083097253438435574293012673943642989608047324269579663744228016150598897016885880954571287524793580838755573307743165113683868795285567540452240667994940224293972019825410229229079618076349997440041710387112273068238497933809734875657032950125857559816702944731308750626971223918774153353785196722025961535190767356978445532725091138547624858491762953965181496158742571313310874091804015649220305837811436112469291787784706110610127832833101185405048011300711420619685737259365427207270805821933065255893739874265076265891707277517344240875570616603829776481474158078447920645620214946010741683751415299763590300408993141128600614594438882727347868710920406627040555094557487638640417478994080682804482896663677179501403789602738908626499038798672417278506398163725155191772704071329439584257111244552848671900012719261867178731594469195993266774611703193009153358504971678542848475727100278801577420255191717756831324242288016936400722090925705617951109111107873409759461785834982550544865653580308978050695030428778545640172486410452155509430429291592170751270428650830011068124700660472859934352413470815798176203479512354998929390301215597477841717698026635180580405601997594797207778189090338653259960344934449135783733704309823850907925978445724868860889944028059534636862894190269284895934097447445021999397830632612790957861296041842740690442679549881957515353921093857006510096763842087133889930774039149044326831548856492109915141178529783523527922944456542289266761918485937770408669408434451315144476708459176101281581671163687164468042755179443557228478959299355630416511780289995499014100151382653030681422151577788811198156824567071140344992037294351349941796291210593454606011843691214067704153701301550671258996897984055681528787873222877573669839546165997591806005438351629502670386744885079054420412825797532202407727526416990920234338741662391133679639292327736000762728323624565364149873412160226481023628616946638806681875325297777861809260650906155059243503334908024307070240476745022541357713113863928785943461175632470202070146797550184063013932153824434292712341248113794152363117225267303089290572177423633272676155643365656054699482152590778088811883702402344127645783272360804102188555529205889530947017622704478181251005616013889320212998885348696627257078093768595911740935018229623785234711939347418121961572907951082510483760731495686728991525752322614721747075291964591166781991313083386850529913964628045010473414896436529371155721826829843824346511112652867205436871553198304895630431721744790267260303040033123604520491864610947050375684090176351883677193767820787804905227594872599932044485680346616323609107772156583850845782322521079419739199390819085818004634819588343498261232215433957532267107994085947434484725654230947752218126235335445585255705067753785371191334260280372486776782881213998271305981900865685166393558872145501534077060866702673138182923772653972772425340905993034062824597134361742121756958433065103910969518896329187427987245487102817844578386985836818815673486384194062774308656045668364259886461036349102643287223936345506427907156682722755233924350957513746486000124752508600591225615035204430417301267597967480269128060104516366273809147405073526710362147646559866796820797919262939158180471198689896635486631079692345557198431360239451432122320896602492131625305660929891892441561845542334858320874495345842786168260977618853235683166416005498266882409327119640849820576974231748670087366514634898965888983683384637988789674544444064532788652812011191015552947519202060898890534278119944730869225985620795936521346598927654293913719552557405077277727657630813691743096082846966098634070206671039897024754196693416202383085454351018680847250786180105787673014000882776063349201835583086489964713998707387524271323174724155960825419310410210018070358744674313861381139282648873450584037857786226132813099884279494158305405732178630046936508462961194712948744486855760894634261404621332648277176022503118676059596790529774112456492067502441363445690871717450019961010704350188914126102797103558546804287641797011789928166501721211053090638153585085805813666768992991211013845673130656639314467694661631823237852455530221988052456848464318723442669594888613855792646490883252766474874841205666744851222093627890152107482450748402197394923063402036997445285419628987226247940932167726001604237393101256912993537886816860933497635452394496387421021627741711765167353124612243519924924814619938413982285653294137761572291923659315277941336071375529220736931835068130175155497427853733224355952475540482453536948566733370846646832915098063979412571605769512667697033665190748562794708795183884773885292018230336154005420225866205605686292605758591303258498853818293175071095475749575652583014789161415287684440222585193511365215372535460554211926462391967599271774055588882751420902785548915104710735728203682467255343685149331211592100758974174915597234384889669640867829307603360412727716375881071610767370133944513132009481084153071686764882986614255553451489238160396675535999774515280710204342321367681933631973602211366763544491097653246358243985611910995015168077912239507971127427948054577903529641678362223733517134184677700260858299458367577652189198685621749048173656711335438297257989140339489114003841275990846986061385432298748743635290801968221425106448249124814469622948810978478269929474428770085502763124534852335886979077084015350528161788884194607927607314670244478620747764368940763873813682325049192314468639243139904610472652145600650315000692751879982476335526985051039160624254462399493923667639477262808597375977035191444636688563733216009587753304045799025389605801617510621124801891319260432835552851858877567771630535900801878977153150239536966550679133097252863440721474634216971834648228318575701841802184951361838140240118659930212729982559790553938662974346096837865179438165337958875794423582791701404691242765464507629017126731342653479124146245311652946494054943294807233911245357050294590199068753579827497166712188091722727192096752224606385455217521347669151053138947669309209586692372906623565784163811580455550915945100396993878870039929029942140181768150526653153365040735250556195469612539573260358434807923419563821507696887582471685825443528132419172847611453315724781507845067295776942151114339114370573229331524698760781813740343705864330275516479755385393213635437730730943781497361387882708791896024703390417123915083658447430482136800099869964839683708524904268066223882868232451730024270978369146456033455964554797784873478019081710860769513477285619766915594941303407776882234798210391009648422338379539268153687475646199212473364578906446022230026937201215493359423335354008084144734443210500166146300430994107424473511034523144049932830113289227152696165928557123083436957076957562353862020686140414892729654534491811703648472813665282253511855742048980213871578137290972429642651209014565056494780628208431867339375343722129343709128594953561873436470813897880378539432339735153767777820217662702127619349539007596065491071084078113530047310297603036975051342233347850010097525269987730299537597918872770572405916737530889663859081623349133614081976671939420749551157840078545959977602939457583677802453352035732248579686017637915672218253700735573038430383589302497344087381448487882007091819866637283833573692591467375097861195265827960946488837105838688259667308144503567447053637444577598174803140433889178355888459775164464385225287083636216908970447075847136202954286536231681255570730142875059269413034238440965952149252400580866924692918477388646872036040175043561291247236309430598247300256790923446240018186480195834118902580340586090939747891850648093419446315786970864302766122206678490937821363308347761686353706721712944513691766118489312662641013836563385779805072962481568426947670569560048854669836639304746628491075950739876101205994120515019419847446630766891302005993107333141960577940601219785218466016321415403326533890971835817276921004580992384820341969378600579343081967349394508806191723326942179330160254375568389814472310803948292033564895453484719295458366162371522670519944703497144575654955684824775777910274829429060455617509948392615946778373783049826842711362723555265233153722677287389132613047178259316077226394918554526099900176149546982370717685349711629049627359795236781836791642750442460281471412050538975158812958983535140653937794756074679908385017263313597378660500555161351123674080219666392129128989166708476057486177957567797860155534879890426861594074811915114867612997568685287964937368066431626352857515017744693455100398359611442048711876279667225402919467339252468447886298025653691146558255929260939709660298961849214358027351097480888398879068493770403015906801265698047081461641687012926634425004704841407593920240815939089594614240535406753876147206291341240533891188987387745910282099158518667657418236887746379515583209587520205664894506381896773282203908115521349122542222161316047203028198811060853508298514417649105954344322460422390308496407042634623422846022170629064094966150961981437471462188914821258402618123740561180925213561813596829303929529060515824739960945956861055172291825078401411084746451641944828165026902096251978759855557687386238453504228393747090190995644967950908557331062519302079663555257193992265054560735336585240221612486671942688679624254131350124509500783983730742994288202092568491896512522207547924503484770160812410270075209734491989166229125810221187742526057504260584491331841895113212316721141378120870864972189070782332926545511302423301055736004954125823419006034294954976928533069195780061817834998269516391223306610658294911018713658940393123499162272739402885873985094695051212412185910645774685433968151045489118562635887476990159443479323442210038694051677516892150436035773866528789671361048423264799780869223295539847497168802741818533793932314156912834166341763567565762929096102546004787136903291631676982508581889008975877810868309333551191562107036062222146075365726774809778419558689029159016679335646900897009063427251002316850582446321594574533775134134475965331340952496593301674494029561039051198941180486679860872795592322403008327046217043540789658481997305800424760147377979447795980578924427529201161655987000824112832798875004850343435228875379587338060086023936200759787898417254094830532795699473599624775323972063040795484836285537583157782349862952165148049335935511499770953570386603847751225429899755545421941648448760779419875640569150981222812198428524179790308683117089921140300333333785591208685676677213087863378385760824758527040912392881637644637801778964090712012767384769374016107166873830129921828546274123816236321850229659442043678525551942621551173090314560840653775735297060370276723464445011524428748765309778033347719818343007095924002591384167864787302925741524202746790159206187766719468376853017273380862364113461751576900760874211192716718094089808893288462373958567934945476653856864289740403975944128577139482006639736173067335427588012951800285771887315607161214028727316963149270022807541004004528481280977309083021292041580222840094296419817268413506802135901561819254309658861396800835710028618721614132316691579123557620582648038382643298632497586114516612158450601711269920003594534079857064807707793283820399795924668023736601542200106870581048561151980984052077445914489231101686969615680450208514067096076675210748600525201687733477606321559976617070941643036545854107202606540348536369219555227072553966555373820718132629119808443942983038831831233902920639821956940188040149734758473092992369222636380691817730315104015979706971769050796088081038032526555097218496230936532397377208282531624207567147489500832672786141294622649221299927535210151086144663955235599534843557739267088059789000117797895355335722473022655630455215841408144644480223911306322789566945033003096134035441337832549399802150611730695203593914475436449709768297007982716252974835218163407055641604891110429891897003251829811950850335449940430802643068188950707642657876409589590052180454272275074020648299498662108028093889897199815274416095229210229706708501844397678831007228756386970266489656397391011197894008727170245174560294518710574567023571498736277540085979654383473672038615978315144027319241123965155523039240073399277566651288941806151656352966300502200182779119563261404299458706003761780760163201344050201952104565632001551565690566981991220711254614247951709565344478985525021451953637862455495064560973970141033426632046202867786848861081329779088664500919845217044550441238910841832675411728841885978906768696675966392621123016798525287902860687340766137220571805132171795408832668492623626905136818492265411457683476628641523824006940526171732772653244934970703607923936992483153095354148326743601284593620964662784626190399897541724099601259650166402141377613459269732512180462699095494565716479440449974664117445660914434847561936175797176612901925123232085401504618410957531840593918479585945245449708543574701441784541790605671182095273127685093388055687137902122128733536049118532913497218118988078014969364753585679577919632022106714255707426700572738211559990488929241890065828797154165321324970203375400862422176337762722075082953508722353869321950534334299976094783264951463223934491302254551550410423566020261892262111908585958201681797218531436676334430138586909228183645261352474779817218140431740463955020336290440322511918916101571481293634590501235706508285749419033390089857690702235277251264960068004977131113680282756901262286069440281937037620624737049140399528819725770545357647864365375927079410700463354522941741384167961829537050674231083404632376638833570044447658621075905250256519368570081626786378235578321877781658746495162649937848209531001033413961496020321508107009159102587567520375860929457025581933408292400658492625200306893136121968283477842891334245925365769103718623765013917935493651917162481856652907091882098612784293557573865928350696277507442532252019181538942129279951853905867609931120747442736563738183318502732261276331750563773150367755739620116700610280217157688232727220697085612531961663799134338549958338731207783841915098465576342037934499578125272898112832241215094910430530439746626877256046931867751851185749976995135417043959814591384646450839635045622610519272427631372390316195598479125273936299224125272276231203261740507284788935106295797488844833564261165120150125332920649155133232558981254270495953675530674385209772524355865772407195502569432786621752839994885786645927757874581548294718917885056829765092697662285399986829782557017726132382462892016064946595646018714604652640203359067123178368658114298692137969410058641276286385275064928015130061504610555757996035486844556465849340847137621103542079425866144058740340175246092227428764997463190164985617882200812147039972073531755585042099335991023860823511754922135952014910722072661012408405715190591132190972650269115861440959397390063726562258896449359941941425757203500155160420947600025534508672297848691981027451957802577488908543299090615486880998502164591542886128400478659996100347193435914455911678301753257834882053403984625830073399018470709146805529527060444471189000280888520099902004082908012666652884295810968676881654601499547346346477064808504688276494886561162975392474377771232868791571876838450476529918260803873632863147773456942676825517304699183918071080734507593150854514143574192857473774829182561251120739241071132431135320899087564233274650225419350913432933896489038652201200050505945551471634380428906594755460622542493564563182863207785330307158403744716538617582906033916533067062228062847466922706202244999608189688713989564033689253466194747437404596823610478375213274760176300958904147130560675906352909849310624269479159940677218200603332762314826002465278915290924487389665003951316721513447084532948024338152542481256404402645582006954158445488651703022086454951185002081809810972177293012672864318018923104582773951284069292323664380625171834694402014789347382224837680282821062173728292799881300203224186672866838746988130764621646636475829471106431369661853254634221940665327103768610739271644299432933366370757829423591105767089408055852356632989020308341799941539500899225028637885702882846004377676605634932860280383719612997513576445210168036755841694099062614352830223259174535062535491105293422442471119867366780160143704983213166083039047571378091619707330634241218257538490948143106730633800347410063657535109797150651223895385194638842310281990321786074895683255548848932025194672582559352621470898453441555393986008529231222767857466630048510154146271700030934774394951471058974646604435736869776905295781534959885884921034141619291829331162511983461717588599377377564043437926372179520354787077892824651486127291795410015189933381194544903212635413570806942649580996603757628820566076496932690669661858924321653834393534432485529632457396715151833670109414866825851559985365476057576347545045780629190543089267274431789381619278140384242572702780681415309093556199562758317220455179747590681575713350144570982623305056491478010832340750184324528564468664526692150096471992731917283041283864006479060106918226857962899948694991615414305549501219732180026605351311690564096626821682406862404025455143265966504782693055917538864546274548624907928548650144349484040538813607370024864449847352099380177120938690316628923000580358926138206164021106844556325648418727087232936453817702608754307994839031654149263917044680031935128836049026710796995783983717573860468041609682836048439901423413312986415713727996865396258645897199730578096967627044920875040133037248701750936441204853833051097186376261955579068364470674307590236387693580556999240579741963877404155856326242350564498777187106437917886358315036643426326348808414207829886938608213611033601804356025404307339077800255182147303765458914122666000531632432547216192287719325453076199089865685766474657733772305286339251218263734378318048062159162953298230568662760755893601445570900388617067174925895514319993055242024063321944325430101445119077464962444019473973239959790475815906927614623167783428916951712699426439000709885538248531990538770442941143162844571764481371958645278992583590524458246905050121787168934733610015529934339185039403508672016873077635241879197269421544131693012842065647648552205741449481960078927122029463472939344018508891348219079505441222103722586374733461273191030028358791242835499347208744928528983337541551621957233239254472711610830800240864112366362611695757857417907847390588675414502455683286487554554433603095779050742455204873114655459312680413980076265669982863443737068247504239681156376636597915369848946974893732888601943375397591983767984314708378587770121963285812337594699297868421924388306390646603040606926712245604004784161264810873142840290327137640117308138442503237148760644147228997402207714965529987212338874222117712789542761631868324504018638272720721309026609133687244277008271382143743451270337767660041236994469970582774789142362405992868747005186667254292166778360032101281944360131556767251546281380558129457515371985678522843849836575346940873257629031317563652476757633261190663548663442958396600925839100441000716807622990152959298101519008924916435840235935475402306118011670990197711485758568093562150284191468295468849657634850628703486369348149147040382326016205019901341406939791439807777245345381342135887490176697233813509321999513344289402990436101904167589469912001620994603859764576921944232425883517501845797159732330448064744823852435890720401807721573035500821812854388815347925486370111283799058764708660646280054965121352495866277312750153250221402221821096134349284762941518365030749585862052296928199815418455764833359279648630728918398642928743859594914389919746890527382284270574100510746941733239341084589391361684931301915198244438258894654323282640293510636789435507177549774350621789591702141395940406527500293941738505566973410401079223701779930233200717308234993779609526603287518693963006781690576249089708663933094627427763377294015578423241511141615281281684392722541998756775430973071074963486034999170332831069380137786269057049775488704990982466083246778264691855840711094396499925292233025292169346293935957572785407696658025917057068705033978114254844387232745479180829745746876059447943417612373871585750344850416480961659607175527444857164508783032291642194217202302172051376281117395509774496517853165336199628650528485533326838032655507347272148369018820598046739180659043527196318387315769041831235911345001779398505934512684418968415336767852005921466273278891663670087197156221853295126068928221431734746913750779676628384579474155633645312583415372340551564985769220890154906173617415423477988260659620805333374047790401251167802337027693291059352113104106121866638920040306764137659992490372416752827973047725097085503745448901361252528117839615385982187700523336084749842751283768398554080962650219220091982672097886045331582151685816900780966376291852881529625631627488769548064337567066080073547049766799461448471969101145029508486149975053507953888595279566153661029566139297569413129271377273969032974572234010396214749867403195048882063680711033656794908258656844963861855292371116240788468750801036682137027808875002203487611377619515617472572428081067537607490723325607487215037009797042356336763190768455161766083662805466792731716672069250205164218405514786177788318117067337153783115682541667268066910597681366532090143385710119593781877358209043458584120135486800054970734010113335814938020780931114420298197476470728040057814010704153586929655595723443342723469843300529715197019879930196397854206598044142164876946990341532685190634659941253974138733196261941938083594960809567186514366209014825850535531032159802721937197346981898885603382927056639550366083906081993983622621169156464487012029308896482863296455634319561461317190623012541793598216969623539533032938049620129858786624814696895006468385350196848870891386444717295909591183849359973561840479198015323062322214184910804993597944639581013859246652615361391674668157856161042279695394252444945329498949233554879617887312038354437459823301227862063500516171670725902941038382823569694780659704520271067191249277285369350438357898793403944893677523354902987943524766560996091982690020964988679183755419863620571652428379991748029586727776992003732691950770520085034366137501088821924797982525778002311910153222679871433079775717397246580367147853093425435233444553937821523488851508810577343347613952751256906186930838742441041551659105144091347219653677106509372677015026581741005780303901151620925524420846753838092345359834529010922363228700590830215127736729209364973636744125539392606581158139965773403071827590188065007835369232225553509410150795740601654090955845968693066613828819299196508146404817957714705311292711470229490388429214799440162170197816313026092401811000287168704194874932033115696259743114238107748686524378058648387144667650705698112776249851818506468128025134539789159545576966338582145160466498289477294376832783691901565735848608526684639544178825862608266183836676380565025622365235567516533134402336672878375655965718119922591276997084351935260054449761541129178380667827727511590884424114883448796331263282595486575064846744476388322593932161755348232020532906049114813929501154601199723569863476187847255682181152565583117588316417023078000299786189414986035129492464070074526216824484571255087482587147598253176479604438257533475907080816499555703300782937083643367078570431215784597530965841074874346249963833378058182509732935744444687922656549903147990615794886899504370082310976094258705564923814466934470027341280826760512494923861550153300699650248745742229550553059433201782241609026272105540536278677930633514589132825496781594606388649216352560411575486520807325981113275956116426803519915790361662440154362127735213191310633696297828722992488147090713166447131004583686724612574687000708588463019906293403878215712119813386867931589142733883918319586588846693509702026688869716508369152860351952900617436262427782770453526491261285640264451885783354055099995585134090682047227043226000296707352239870014390632891878290555352823915036100205829570099456331213618070491913877518684517146653240548939922787631830347045183419842396532300377398434561923787523958183152107102368415823127024078895976439784131611948434852162668720225303119791791195586690164055382770271292490221858172729879576629428897422516099330603312191219190007454420489836827089403054791364187476816550823029668192440394443986035750219072616450968805156745110455689268845598832716237944650852324699543704510905691358588968877759956643058068290903901462990453548545447614272851580495045356499116814363584659143103642557031522103158573205813877951173412824307343343744406668737574915189832562389969152013850621069523732854024747895572587245824702407894123387294333531793299878732582995577737839402541667925431436888206089598876423942309359792141962527787823518924489909061326781177870180157875160177837872257288949769430311895703232190275347068990646783039776106227896446592792138113041528255853769812985499812794432522680612209018733656394284468188166460202115670939184703007971746761687141949694447919498362550940941683987906148364133738082840107736219842224744822127378985332488123411432702051825865036774437418165858778476198415872691027067134516618752102139290040337550273388840344425487292590290341163059970744912744629961401969166155155069532104630631657697093876066434258404175673940075328694927793275342080722347894487630194314763937458288558027911420073722165226733817629402025657092712264459861633018347766413960842453106211711196029006561125756369715490377363740736489712447334181526591778327890663699007398162598351708072849973813728102055853105721734880253562404242766064103585796765062293945104631743268508888699138305345729997297865072484970966982098760494933006734465921063378791860236912282198923215961014229041381472417856789794473901196511689264277998453990998599620146789865576352613575301268841099514200868534153227624033340573254460120856547260413956050413000564163918601360445460438479282616160952151843644231374577269657490783755992609115093056583282921339809469317653289676656816618238733394777095734264733400004182598095991384389764410986992676142430578819609773736337226105848205169030103393917177811710332955185834496291652016594693587768904550003525226996200686242380809454034734286668986461391006161436710964393598497769627857180930703192359356835347898300970389050203384634000530128410310268529716921986581633128702630752572446018664103044931062945274005513422523300759213392856888077115938106457889359041522650199801619006505543097835724422280990100141191306904766290542711056467171837646544073530592152876447659721621041062172146470722389971571813407419168676420314916644940176250487855955296997285920615173644776877455812910383935035036013653036070388863485188895990039194453807473781607266649002000126811774174882749350395984056848307375665789162765217585295613527458421860594938244742653126246578639447384732607072937660798342943289004588718913693781842072857887165812860171520320457572415857444722954618384498828969949258570466051537127242756604269955717751306438888516701377318529291699316607356762936600839323389277658305389910116543660558986302916227723269115145699144383678880907380010779130492484349907879373308181849017766366913066746334312304887599588378969185613896184205307829797773511403011235587273823002990291384297424329078568584311221967097289823802334168357129443082615037698853729632348413285529428122076869858095303500943630959228750274710829993950952843729389151655817860087274875787680251298371135338682500597998000884994895354350440907248236241613130315448933810262273612951843262586575980366021458459755198746115462302942048739468152303805994736511747688297335997725596548894000658002273521370973942434213157897714008304263105517244592846387495328037804012975748784721753509659681118080808314662151318038224033239621605364390493116845942266354994129993831993487930383617947765797325595413945604126843486845575200602326973488753267954290309675667564501193624171622619610194923441167440451698108497835555806055758396077163928305484709919576478226236752602426018000452171703152038595919366961885239103507476474721295573224999309699090007722248591075967645084745536291296998319650874701005738982225419296167711952506369102597047318989637150650416866655213671620121669981292738231959047792312469867578445548903996844912939700483399238683468271790529745484168577722054692727734554284963325770919272803095205000306531604030822498557330253746803268158177103972497933095847872168282689129430234351445811292842096305081897878634189243369047566655256828299071378082693107306317823183288996010220919744660482309772971726521737744883953161187872004811513975363623246752192271932403411750664986309554012166367492017367516691888006026431436964302016813964414720554885336430362518352440592943122051012311220877499906678896397960020041534650883117671526107814372583554913584509895942586738902027861450178371978335913530418358121710248997669893454719033938035738467747444468005755053988253082636056705060928037254907938297998586782995025852920651890377255547562733456433889066972426430372383864069595396508415304650284405660023914155438510816921484914919464510477187528256867529077589981253195399600939746410519459559649082753547298226513933224047541175847335112322657126650235570125745955616233816929123018227195886439179400454023073577827916330937261140761245235579138206261898829140823260336982779553633356919938546800751139104220572495779610822870465626693048480871620392650162567986796263305413600189426852958176132853948381208400226417495529489424531334375516679381643418014868334510511772274085205004790321827727872399895866920396156627444762937889794068810535805911720304723057636339774870476033145054506052159829294174669216383849065999342636715178943126237127732966191854957509876985608711218211969326525075107306129096165655109423269968133813728927224164559621321577892196765999362508300538675672253045243172054024297115033546592533522479251214739597347152257317340394078195620049628148183092180144876956920386880237931227398313527491235908042307720438473595590339623699621428140815591418364708126665109174304774860568244170686694068629451423865658639023255791558584726021865137568066837826767523966665910396294517950967286484471889281968082039598325056377846533407424552133444698670970317128496141642661218808881460642817304163331881986761483070301318872274037979733578930850197903637741182836935490033765246107089924857968027982103505092517834750219954661099658064792227793884627668310876208303136716666024207151811060298843069215820994127439022354468677851974255481090234221804980352860411109100917302186758836525133389753795289971194350228489649076564906249706115480125652720285088294236099882079923625521108406957976341266725736344434862487751792594734266776899680685260054593484457892708594840974012971679704978086409503078842212432009430474058499782787067372649967184401322356875490847789709300056900576703712674511004242669377427788468015230446984336397225078765553722891902275816254657810647327999546133744551214172403588984323398953419753626133928936110371887939656759181192611249582893932540527095147754591185823436139039437906618923508865646970540357271340332853411456560438825598140813935898919778625677360965363246693117394153202961877530440686350370215641588014344841496952402267218832141421200659871578149077355896813499273131194910954138042999945007805441067852454719797787922580582315060150322893770209545498790717218053193200903501020585918185685413836094138553804861659526200816539613059908214187890778824953015109364950761002954111406956846559660608830065682863614936527964509323840885119832812404993380279752329445270306146372326439891466707105863805273544711704657386834954144141506236205998744712911651332547973843019901116182078335721618625644791967352022890449464673473887832141115154041605245870984790981762218967826711451389733566083046821486245143298514064490272229855021057419812394236520525901509515256408086665724787109668135401268855299244147554045031236624546778271985109991750046069208115361696892477787742387084766871078103898715929245062025022798650386923827076527754606678513680633498786945166538108760862988389199533993261472938028305704259042537792867125309894864890993956098696780566887836098686561494294706264365618623526389089980092130158921762775250234901923691881655753343378750316286011388893000595616046436681011798393792231460138647034173270016465489387273907430436199937689847325985749291280049625110421967740801532410379446295968241746800377378026557198313322755950035189953278496580367095013673690343162426611688296782985609501678987146013918367123278739235401620104177545742791573557033769007826444592205080494713031580850069770136046210495796443381514104845981622625012315452922103642021911320792179528241880949009782810843083990295162385848502050018702091646239967954631658620160460131165494280974287259176676890054938446734522075567709226159902807260282257032731375630206093727475764501838708836024387575684031890992010467447635763938180948059782746789591575406267226824958174394611510830686780610120377194535869829661819706237393330933771197824587378514593195528365329416449467585708933096837681429613517104124023050582296606834284999152607192349589042059494256796844705745457122901309532640412615966239164020744345650997345439444469517280624338058536222228629842308788797132915258063854657842299527523404606413982398075797042618044859776156798142124955221472632593536273654485667613657082144421858618721592932192017642763397560097493792032202713405076597912672725102895002510122801685662918955228413642892325665302869578854511954009016835227826818611051358326245167216972407377002553107524839889540205354201952794886775684934837217035483236353079770293348942901062743153411960296316652130336850442591719321953302728915867376829289535702244915606272467094665191603511292135323339264164803791961768658846887130690211111819055130054132875339606917739914620254541595016799175682040091894355347135071692787916282348152380359079668674229766328370851184334303867286958995943363277655741070850057972694966033114613880607213225133185857571365283725994393989023755409654304656412504062145961935754507694340662660075728306111553492992914336638059601259256605279911572739017183098836490261450139081944114214289158149957720953302709601032927222775776267049728993528678568418221764062459035156725773138886126949956381037460845641375048432225202238690255892313971268126284745057337895330314368661223668304968224786516654034486318848604913070072792282236645561588266626119797199977613233609042498229498520546024631386625348686569915367500242065433110248821206810806926572973975393519236235218784766452434566421216041175676515958740014350900761090482604206105886414744414375702409616591014226512470493073437096647659441577413054961934033267066046747158036639686140719921437975378257205928622202651262748371493203409466528118373874985909825234576908427477030931592596510353695659022170674902247064338968238459721860242454209913289187834292247720457855638338876363670906825707341507434556829762491487077415584790885247610694492673945292517384911185786966123423402753954945053883131599569635710950093207812882503017268471363523746020592904588337483301156754599229394174508389591990230748496184248016841351455914801752740946859144708519969713789259199242592426529396234730252717207847916226672942007025497130939064864945833998048527628582987394868763087977474419835963964009026667815618871694753894297354856338671203598389333182080883372096732100239800113231716662271572275636382532632101919132757799960015134505565690486782665971188436425071180888326121654798866955613524089312083193591516489193625006637522223143481843369398898656914984881862787316372701290273645566558060835680157878184047750373983791079922400193284416674517094148445131958402034471485692192400519980232586541952780018482616528260801598291108571636248708969469283080129357349392363725381546839508605001180051908058688795715386320729639042965768408472092816121701647126229282728244996056712045015252241817941018652060868895121338377585121389388965637800786367452492150584577263335444372894139767845613681265582722612824692234262740751326408666097998960786557994209404073666570958300737151602136322192803134134715638909324651745335056034210407380979874131821529079649117431493464723245323021490433844226085389247601465257158793395809827051168566084230215272947245601439585374297902828150123865142832242856971363677362075389896541021812433757958371847198158478122248700111440412197698615792294788195282886795931576016785225976268850967242616323068129000641136086669498468367713438034212639270450864453390166938822714773339092268650004657131946679847068911954671230450918309156394036916676225911770978278592962830380627563800943667503205290512658219947137480869812226784502169988363713034207308166562239263443185742749255093238021142444653160811724749473552610663951158449937496775521997319817440217550907358585610313325939707227913598159175589878511671992616726799030485189340574139472022771337858989952546499556531641741935147711463533333162566758512236423657719502229719735682069460746108770391678186763139671193495948385064120199985648795611541973971622288771717147692141175106566248312381294922612191080563366109214962911175351442655407318600912661334538093297934338204431245250843621274067658146332495090911889994851523986345854974456159978022440413259659515195611295548507634304182046460526635635577634841415685238069371020118545778215148448850453525644299934162478150315484307584442802499782058183504222687775145187390225474045403713617466749453981500710000745259237911031484212756485540516041800866047814616285971356992505111333461094592428054490389552992960900951101376320787797662441631638980134333498932798806959509131250194981851285289696061409334512327522215803102947625193108276799876201134411186960741233813630870824419676560242027980574253529265812890681445621358784039804079213827859493012631364693100677040826774854103830908374495021438743275531046626028967609346553937249861975666773357378632646608002500299900922708247190651885458847904599153154237831578964065379577762716954047374857941854016258406454305839140720272459527608106927470760236586736722672595296588173318620743798548956691854888991941682486090863637669575897652127270570031855928326264100839039375166017048314353978666470097205984412309527946628102345183711182821317064027480577496760896712588461421663078620768573329444725151457552518409201186089517234804971063127230905955498791362671220423032588461780132613111820255100375989094435206368575034454967901069609424693444500018884027368839716824612970060829682379206362263246126351029273899246687455640686986843198320549634537128427693624040176345166360456406700257749679761823680821820444380897765617601797089215495792366842407730061838172565504452809817161518246698240263224677004644428393587706539089263552898286871518715081027716835042689836316040008256862071638252772145710223936378846836174582547000628220015188183592873706131142350126003835006707668069182613061620565416597503323232270362207495094789814999961548047450371405774077928349859401735625872897134221002289423360170620873281529809476776676369818203132716660460545702253014908824815707926250797634722065588170590119654088603583870971592953304891590460713048360035952804683963525351685858069994330579555793461819423798450320925646254144716190808668358422062990766354824815109137727661826779739301368141592757416431124094874052144600180511776481095576527200888029702857273525178380021390090965834294282103049718762490483744666632876157770915178239216961391172866880986210992435684207279782452621060208699967084543348037434004756498573147282611214282066361849848477868953038799211915601529427423792872827028406172308011185093255286521196240565031598080574563541094032336945880112296372363759476945929118533740530502795625635766684304154499801036482254602618381899434376160003001907435585809639053904776030370987711053728571772697753487963454920972207089760517914048131179060269271713369692970369504251590535208901245616846863433552725261892963206681838169214413546348007120319734218265387737954788700569198098130114446151261123280662539199124211705788624283937315159906641757596583307018009395709875385113881514516877563658910291020653679689023953065515928721668531975895745042289742310424314944915749207656334397701065852714815661463873577425143709390630209655624049897383377781893111783482614616975205125161265832425365976779754060046409697879166157327314081308446006663929952477749551433017132753915222152655228298205272887506220451107010680048366963458404972553041138792616687593929601983703217367316545688496739626685580085808112647682080512866639428695623770105087574548812150238121501359645319039899235120646899272513179383117664926781180576549376450127328142322747384651531850411691379474721854650150413388336676650641902096430122655040023326373777812933239448066884454311393371354159115028743402865667315790578747674684281511682459428778035803538872580881193500183302158185454405160344178477815797907235221711639828004078465348024930155721289258259051739349615284823762253576671958641217720153175550597993938838560679606234340788634402252766948683238671662240050015086990228212082223743440584258532814618501411097595369326605855477489873080823261543522358511190612521638565269020451481926961295080985171214935277382534786231493505053082054844341410277215376405973992668562257431750284517955181289471144533708414082273004226859426107871853007658864213483270431880818924015788762688418866646225855358821591439145641403919547974912997390557134835749696971114165752863172842658893537132331486953829945529856405275942406434005797040778254888138693169367198249898090340924851255137648526506043078141903138564643709664132764839216411713985569018213248290978416371632896382109338225536702029769115585677216533955508416807626428141833441783576952832211819032289577094629793795832913000626198809674408840731021711705109120565358134644595896360543674019121342770676858934559479237968988085951306062209171949988769261643308285149551718548123891514145131041091754604267637155314192942494601544277439186763447815381029115740079915026470289756995158733929584291364930229762780674197627277339685354291549746588280578902968067221535367655720254343232282591884273468694518545049091565979560560785333973761258843694982470748736439233235029178027773239373054202870033870730360146227655271035957347150130863886097135923810362113106004702852520709250717654839345715617167943228567911235265989289335659572546878458682948881071495754024929424787674140833608897825095548504799412214361739335165396825941458804135795733259168058489418738606533303559649896386214329969760656497720552438092634624067344491018043763330322698900871969798042644449618414437232294020865747990722394553905043357047958197615333370988997656595221900593818225659032338619771708208823915807505382547812931828765019672782242760900081347336513952619515804651114092218479894586356447978700881844011213644188921487543844969929798553589976132919760283447535297257011035940257621985260003035334222308781649702452161321350511350476716965616314187987608235077061154536381251877583187404459011883416808564808624757710599913456127900932647645673003850152282901959234515208629601676264061926171791908097275991189450649406381753690410146792761557068056982011172580720522858895652405655878932022402006350024517996570970851475199580476887070277699722854331776803221733640989110697137898620441841510582769288342879142066741850206251850914428527034074812021715571306582325522645305151787863975833046352621779211980718467624119055556982381866264502090212269552863586120956763585956977898231396501345460833302149836457618341330297804449986209663534208130996797071166246746690089251275818301348769198462718459457286626448542698525962690089751468878840050548550781989400348907822850255925437405360236205230704358065626794887978293925953570030848455807676325431809361895375877820576509871674151306851751920177576529246476041365580324579498160591410889800063434514501508502860698227168060930228235931777038635315662367296620505525494361907012465796482007232883183590651405599351332171511502558802816719446164598874833910224155707617349442127451946982103397955650442802255994640327406471541114057397102709306573418646421934992055322263596319214946084321060359448574485168406286105673257839734019380472389259815933235552025144561152871195370285259717230897413999953346040975970698685417503247224864352448145270187255537881694766618108353892424516250669733844822238703199229573056224468848514991714032691428713425683029301167026515151427973895189131544733287136736929616621308284085311298651262095417022057665750285693192447750491545695796450275891144147971322107117722785561364786704383542490364997591792481117390402219296051791832592779130178597846205376202028800848362162847816128625260735759455640447136657710448564650992137321472496880059805414539438796200262152171266363374770121787852177859300475708538167226290911990927853579194802574786714272861324603966581231073444909613087403159612443846763485473873868226777133751480532025957567580677648684812621343678031409146719368312569859471724544190169143288241060300630733206192948071600720290760902104221538485902302857387506109460028187305679782527322068759140412728165014630260108419287415738784614859522951225291121792216892314139787103530668600704869148780470988646614632150697557084199950642602722499039398657443597874561148160649684504588040739702999025770111619411918289536653852692366951669958093827135750217906738541939542807196350121773854670671325842590048587083417815725200778733028032954788345581100824318149440525556004591682564008698435204891610822403957482206677642177968304364811397804881113206155853569536468007664727098460543503574286150415624875157630297728901805059947714032017798750660377500663179760222169950610481916243581574671237832373295619192661371565088153993342432441602025182982077282968117679448351460033839663371483107051363215984802704897110671651818798415537169040356799064146960270594867720105289794965923384125903471317415312336127223596903607676152684653214520117488661937793881922926630616649461037414933647762188990611491207511122481877674032545273503613497058598905462670920731601273445046197070860199605200461792655478907935172625310804242403840124261195651362031989925821581574844920312322006112504912774341018519438778069446365194210175507420652967969209637986975697377937830890838637189765398772928404178900783840400460082718792469584569665994852624428478968719674231411245165989360676253269765873064912162299631056073464261516828429720638653371240084277456981835413951742528376738036880996721811261085747293602060666545531365597566824082774651924332467986681977879779100354557686946264516077122247007423268527853197239618904639644275067904261373085971348271385705596399017138525015224077933390095846390384295531592367149520396093631495365337596559955385208665671792213471069155842467763986795624481646888103571399974513589596802352234462495720857456568756538677204333434677286405442549702479190208804999772591505272285316549146225291956784033602628900743431197306961411279594304302091512889278052453110924386115691286353498129795985950981141992303674828392977004418336400508039650987386233593659441536427428517005233745526192104155377238068245395792495395474661759177458907591986341623448752388377338325410191625702886995394398367394997434484991646051072950043770586072173788883715468411412673272029822878903472029988189870399014029504088116290288654970084794542023454937186408209633219948706588142956628448464311645077050849310386783622974265622998364762731573199608122937416089087731557765422409372191352904947498433199808206879600449487001718325062076849176858383454296702077122587563746325692331460684256887947348956999117490737506262673061826299175972532799805260083339936082595603939513462168065084298912185535777306601823929706284734750112639234579924539835897543178903679901177844139480503385115676880071706679525091922888590024420366361366110743687667400690973367500561521873353779259782614480260201978230284665577825040708464557256263112878049713290856470789634856994552433426351173284658350454927951809514594634218781489462134127399296807448135032603224732395747902593145582287131711190661665412426713680615998686401544459513190883813411106679593490258593928131548959335532053703746787680743201126943261276118007419059824905463163993082342371573024586344106693192054836537184952361494572609136731968378839253159510685155961034537580496817094690940968864447474471884354939086917025271907681866288058385049143491497665629857352868639703414689830145041287671493427538722935163167665228003249494248793651975550739871265255596710802832112554116468428643409375585758985207185695977255234843628249284171077012223365838414920051185906786053889327395361456619010628495748585776897625688889497256833428419117417718042281251576456439829292732837243414197377414357220429894814038774378228780595174107367201522058253850184059356445245863980217358622289342948989103956142014621735875010532329829537636646454356257599374262007891582623672780699144513481217759144413209158409605387306741163886339015760024317136185938134887441513427748046105576232051869768128128218987519662756236256867880053628046338796506249490903297946038974531017020069877113435732705988031497888663151501158096455734596292747575790747860230656582626211573414353629901523153432495644217348645188457114763050185995570586918486997479151816574413360191761328269091878869125907727454549275052096000991783563816249441677761082119233222430030817952346398268609335672892348791938300534438689496948747109103214230869363728780868740767584031601477992819482956766706456705033190370321725183431833323757863651220192304679613844265208673578285055474730199533010820193658611250123398768838097948759894909469075531457844486897712483059567267067445292058954860485818061754985163715519660805905207154169999156660694089767355874459589536672857135379393073831970775441757227619603341573221209808194429318918422890871915371939505775521631586044769275739828614548286760913330717130686842874785134409667691707246819562748981125117528200163036756200465457803265934213785007545274320190394431412289859125465003886994893469922259809993443908098302230326686418644536928675839114275888238163854447918797157554318895289889063068845882910872311150864034716983542628507771425469909612649074986944027611972459964297503501486746840594075638390050305026466584844821336426689702299319963911216928912924126601826870155463377491952982107083632707243398684826273384048987235103511948133836160581080844483415172613837450347895931578311136963898359235511678258171044071421431874201615129505885729572156025940977131140297801373492209240642127985745916747800198992433155906352019737106872960211587937646130453254054396259798071514547263851989867421375514083748042845657487365908395400972305357537070219436232744914910709438093299393436062222788282149223629749301086101124085635802414178547193408828765166676594465363882886440284888362089940657916937878253942964620607130132505856009861036210027792976019964808722656216320757565106015641211048078303967287472380038329744511810844209632940723664070339238593153973437256197006410598137691041017287039164693341754215275677391815101061039310040721099701546503237788740838501873698377774129482278578013504423592096272610336345531512998852116753551893058872535473646212345884209396221819292976733282104239675167409630259466061079541426140084749894864756706057559260167282825092006903088801898027866492731054912612247545543640372176491770501361584580575293226499717927953292174474314948513963407962095337175313025564562480747510015389587181817386761676192608101226927340083870708059224028666301503350794375375257503419012911108391553263036622529676174356904131854690451492981811536580993244688290326446405458567112744757903314194896103023645179950676342793092201545707072609368947480957781390523950589142008521230835476079096621238670855143861570049343974411739539145935214885825213734549535822269365758583973072213690913322344088024985743289795059030147575471627249090414791552707513546743699195095468419162516477620152857272705529509139698624168319413961741246613796720668460783474448455058755148929760888832842935630829386263450793324956947677229023376167793734799220560922867692366318425218195876030198631751467836300752545617940081278938931388712919609728423746738408429072474714083481264115526424662673683697241038029080057079619570725535057302129116040733500711588564421661177046173569008582908962990254231302021560567895702907701906863596449998837839931676212353253565430764016953852454054551594476280870544686389498019589113186411785015297773988274089544541244312386533020742462325912652175242286832201615053254859861042506953669238522675142195040067448264492324602132893669610961871057467480671654701657158288909415295744140831314923608587743087900954587471832544062805597877891789078927931952747433589179816762366546343088109305543655740307703518223621168695945856900189135299454931551679657834931799609954251644034897180147224661078005568453749432968101453415498476138692134410559784043065089440998440733522625493061089389504663009299331675361181279605836195881989833032655966299794142705875312440675750227755684541247360820009377228608664888669704257011817916931101008687536792330733422954984822905772931178781723216074205025645494230390312690320815418103509171777496814667229665741585849727635346040348666275961522177050608158574077865714550250272486126000049078249771503493881817416295183566909221432952644704431345897282654537081804920465769546204540296581337659300265660997388598314928809454371463299534832955308741671847076158101086288879482001002221770958838457654157047575143595568898666949630965678885126554722838050712039631968533386367164783281718734951299337489599514429017867190165259877735752544347540864970670972452823655632417608203090447152692094421239228878704578289474517390023565105176541554015878866160200459996737600254041741338806279088296125435438174632583707845776799676988553165001200299671948808352440149686810429387473985369102856732677525735929151095222914440488286267439527923812305782022100830218282011423343815127785477354411592793159498126669034568955518156876803455481050856767061522123858471203664422235704667555822893138096676298295816455235056078920254676556971861617843429531738321341985522061502407496944384946193655148656336199653179245287111074922849959887835040047375955039989802284225819388875068748488714859682902971942365125891991279597395277282256886646474113071463847404590450796649950892447927058909049301863833229806939693347680481514267003055229658492095598911572365137636824163804981081912477790528280273138698110708152580257217159561710935106017523637941867592990921051582745578357926142136743267847988302541387606993559613108547312574937071511545842792697954821453922401229284812768558530827423979438773974873082084848239707301137161187638404894754321711445814447595348998991474495619865604711687244267254791265934163114973045020496371997245271546975074130832364650730975817372477195512081364469044346971744371115912560963004228977176336758833546990306364205634511618275321305956324119650790222606845758998580839806183148467003504248439695070254591769939446782454520670171701161617676314612786150409995058909967928562285892870801865374221946451873306776286483064314751978235024772313950194561470697071230557439708328370647733046578069575048932459909948011097191922395352485054144790637380260535459253018668418026851627990782041840264317559139689847938689988693575746695430004343031129687807172153513573265518672280199202543034653087715009907332780304625247279697124451868130010977349290416129078754268039804357266456230541455257852099587975359363186317953668328678282600903401307634751321662093529807420717311215975561374816939036254336145351554826920228556122988583970380007265454550062601172231780548594716923764975487002988853890892167219352680312934001389728920604696094433283419895894539736204457380136323662666745174566975223945133267260212279955831192010585834751777116905193242139881490992326267509919030891358112185486501311536866468976900893124880815770829709577066532887202498047741095010749918886773729867114678813060436632090423138323404752198742561915436167533528207602784807191330697721125741303717796018973251549085145702049768952453377635831370593061661951236304739034782823884237007755667464715234844957554551718780141364984441337035707857930265358185141139566757037846063920843885020785839139931362424126553993459744991848793751689332126002706083920904930421491116047862084666137096805350427800096551854958771626093709311397009305258433454319586367545126583260672546470273946348608414190700137656650736763973279980734426862406262277935036044821195029835516306660974931956215616907713451601108946775936971366154078725957243625015868688252326884146355364742681121641365814379457956719629412147072822386865577490479120650217288208321349806480444219578579138822767471415728138946332393528919280374383045963493239551920168155892140369590730651713963980901476205538304001193297183891194627789682064831390127992493297762271030561934482883636480541270793625346659015410447623293920756394367085680200589332025265591272130755347303713130353325834614187514151229712153402833725284223519392955208996414071655593346302104484645379958555690465061677896855924796541575345158998987198292959427398634520435780332422089523707665779142398941456184952653571592563948913470678419150080893974654387329523489241156698834319960979289138112134735025475222759702803532779239380932384575017061812821817282717297921085825518165749244633746578808693877968374302000229094769809365612992856275830617538321539148137809201716862659245564669852131947567544305055899064900349142563599093122496888130191130595588291355299121130679472993410859100659619221804875037681675683871028766852729110848523520822433160124023079121834382854418298012634096462744721248347710486334982182013783443887405294968615326746222400942539837934381731719391397552508832805022504938919981447520182734745922475957514065335110015388896116547890727840604520945535922122412644525773764556421470365644236462794980603478470507182665970306924061746104750284615172110648697041512864992313374979090397302826883323528414721684151616029436041466564557545253681171653666573104421738677774463721657170612001488979817704601113831144983740081917008023327922182646952459035404791883341101702549444842165798241028001537566989275742943241862161773055781933336429567323475873405094691758121765776472909754057779625844457493702650411511370294331224341195536028552021105672017572845355653021528117520029573242872663445836936782462279132375348790035548669701718105784509562653118406241216811809857053368897524404473595964231232130500081708006347349412665138496212286195948031261235835357432875594319245915288635591637367626317552308400943793383517764287955318203747008239367817847278776422774505544411090257688114433795047129242525209696838469707944891982515675164625180028476811957144540600215673787963179872733974199069676296023461640863925217665255203709200585237307168371864477481031596046699459630119911899237066948584793695879123562730077986579552396393085564879232249445502888966025476335483797464672730077422485088290453137807425508110285108310313268269603324357669539556271629446313172809914915169985464643063700703431803957283148663865833792767767854957468431355521537387924204017728752113413964128070864994517055448385941574598169879567845366072060248822116775709330947396351216516816670245165383466476207103363461711772838398494814384413271899684064291392204509178605522609675620225213067013103251270850759045756444241644420183814356576192554276780327141051961116836523732517246121912096241083339203752280767728511234957705969931216665773094320255135928894038848558548231862724845352984006573456563180867597018334568251061278802167142649503254680088006139007782495075487971484894061346565406558393041552529631302691736271921069759298890801799194198264865418170241024969391610456107689293123647984058202604261137835498755593796426130033450675392304362483604711339563418577859249457238628271690481293640962351092492660312162032342762483118882605695765456888794196909315650882681054223849636977383926844331121781370922590062922017901807360737367480408442044260738992413025321364632872238643734199158359914787582752200735500120212298519099394425408426428509105423863478036827596470043762345920712604143791313876829053646372289603348282733131302557295348710380400669775771526253458437003429521435698671336747834800925774527386584843924599624530020732493386634302111907371239602569135904123656158769246654691499085773904623946285795012205338538310808015904389346630908145149245060787588056549920286380619181190835690741384943370959300986862491093997335183211533238724980308473498599033130845971149156505706043263973550853443921787286968973165040620037643712153743718309197299243053446107748390945351488814697759907742380299758566401335539152769151426172450080623937327903115757970916505260802466992297351643834146033983025473258402558429046736073003315076159508556843199348304544051168231219030629865403480277713422501063174691456600227172856581789684628679869311555062443802472574434958123986943215435708642613063392728836257536539792698783972450758856602737119903256099020935623062649584280904139119866425912449912978374129441545385720556064437462046488682623626417389611994711058680705550547013832366839079429395538458233746034497595400166952045602203138591359517764257215819437649165752562696508884640540795807292457776102694648527765993452081382146815594056065263189392038410360979227228788229662207215314785373768451224414777264643538391659253508512800627746351327745981240959937627636395178278423909151592632334349746804542629789642426868676983600171398877011281634243246197095926977370978634142706366452537962110709803403585373908911591296640614744478000091934222467947090438879728055795676096499278326444318815666706091108775653703904204033197725366543702878680085393608016225865289969373803660303643512001450130817110435898279603956239431437436046786712583961393650532901231184571251668890902805465122667266670859963899524738611376384001362799882882254832760816757339536894601528791482534501358074526575281214400273310760554178537651059907690634509682286185615772224587793651498575203087836831254626116556988431939838003291769387072196948262014237620657148906497947225648831044308702773254036333852232555750850161916258553940501877899957056479004033371929760464255886445414881645349526067113501916287147263848990028974549691405430216834204673049277788934846763851999416235641507786251376815857070046482464771077044130387530264017364130634632626790901632367995785965918367015718467956830025655438546653051490538763216788803932805598618505852291091466504771344703737486746425084266446600191161921645607006058729647306009723387952604077907105218262853721258651052251620825852766407844825320843852668182069232728839305652888715830911416485488209729141442785477145492686597898633891663630146184766139205945189120796567279729974550571638367803101553547959992302883339779497669229922414648930425004501668826132865341391959573088100918485130940161068712607901329715981415267690887699125267762720934410998138712460589450051139441617942420627064682379122419046864775030313188448262869224763526610748991871642185378885000226813169387299853653975052172702200825784718041257864894689624488730132955669404379703322302878495532989236981708524352802115466506290680611468747756863062063987456217589608082558385281528469074030184076462885853573559265694150256191786518392017482975825982399645655002144445695974922625797896823288806433970121407336081061854010326454284250121883776198404819644010558397132196519266063219120037715346046599096422453595282367209920335407996604519232450245340268089225722043214172182966966809214566436263227602382052171048684168078021131882348505998900857885496424030379247483893772773543859821539331200294091760015840538696875464047937731582861380015030275725270900144381266424398995067834573418898535887096220242398514390717685333980484602560785560200871551201315194341858239657387484874636176433095035278982209914318994783681700047547413703831979298796913475242375122427192009556514713038359958651812288184377515789095164140129351752213219589909046488630327732957106188207172963761325041669837887327195898249225104709330518102263296839631330402820854314570975004405939749018994742504519420822619020231732953548015999171318678659993044500745897299232540981686100949044187205441937479855232035731345929613714156132846701919741379701883563865431602769461798962757901783888494325699598266178827355851480334302012762370807413185149854771985700758182632568291064796976438797544206200507017252873242065112173642412979314339604823223892118043265801836805518126597806403140565394141507039210412650808343528901516095433393268868562142184236780716464845177433531560438306212280628041318780224242488018886859195757279729505274550269379785354963664542361700597959497994035338900887815211958013446707134303139265788460178023821387279841081622127324310682620365438499095991869439032164970899721698052818593849183160658905269807826614728641082458428975327722257146266957900744531436768828269507734439756331490758129851856282358302184621826593681456076484230283811933458725216720182376200678517072457892815229607120237379491283133947076962160255308543375904832489921144856972204555381381691116640444368118619773476378696320148779360729327345555743280903995799020536914150320530008477831530631912163284637873117082121920265138016592400212938420050394733683305138316715028526851342683843801804198610462186763105392673547398889243562108732941848620787686380437319427545827730824668895842791699770305322346360345774166608656491458139752613981815532707511293985980569696548431459600746357004849639794965957248146132556737940277458224878613429278836121092531002003516216565857058290386024011121406964705160901161353522808960024256115666375434468408598329571839907260636199065552707863848713604589628986685145210735398581155361809065030307967283791487598679233447644944634201035699533116212484865322791581859462001389435884261767860263938653850472025307942398678296199819659739672603845950125909356377030826521724936328789406382729559040470269468583912942562837784763189501644298136690665424406722140063201127101826960499231268027307175692649965808968943596313903456263183918718821790172014342243898613948540661864339414813729139101273323605815843832855900703850589268487819812896938256547397088711796210148483932638101624152836060013253469923830560261176173153556803480330412583435575705317345498750647352929566532038550236345845205872721710933987768447536830032659615215752816719017097560210740046189695168905659558068411796516299750887731812449401267220137612968297633334262291578083519799724893486708877395475295968050047767009547291066943309538770881674233590029929184390523258418591921496344603367406613598123257199481185533342917419699187161736060838781366019322249660965460217233659141153576087333938419463325718837258880621234832071067878404650654154091356507021737490521277820822349030635519479179956898641734197769177696318154016146125075311667915685327529697143730446004343826024010946634219059825421291857003091466182348675285251976938030657150215964732009735230883786906419461005909052424094574514239276699571062005840656305533939580635448466000646893393933926141007590024384867122622162210612458517372936183399013818475306590758463230376359718428098510637529673599256262651381958855060482283866247714373444266734294782867562354390316543207418488986608307997151108784893549699322720658505420683483718570322739333410804017464664333154164146633646926808299982249449650767384568899927150093412759172747504501670288820125411033990322770654421576553318455216233865241371852740983303561066511995378726240102540332356735432076899897922808206520975407420361453059681720404989892087922661400952180129691106335360932345202348398437803068924404724877337880959067961137438333208902813257524412647495941683285944644703183967661855588121166595985335286192723263615438273579666692008799448093186157736961091365560393999764388657571499137709923204602273202090563950168877784524442146497956498461557702732869192159122841292622484121784729582804518813558471808997601531533802070341561655073344853698029111813540338903799439489459979549775763695330693785677698859014471547230194744915601116553514558081729778429811200796414962319525066187843644005717278730879629897359219409957010636739745708840011515879129147881387552159405219565321025520453678746419344813933700831520146252635572843780014945758301626916929248169575528795817556219626007980655512539181449128052813949646548194803446013806814584737044674788365119767069480581125905210494023802758029276709366699339913428696483990704291891887395675206007572525363343077965773502784305454583667115927817197321129473302982453962399397652682132890126875016316712194387046425846920755186826650193845810645565637453791739672467575593546278062195817399747411044237374077936452708818517087454294616178535505836586803748611913478488794592996507609210833114818071660605850433422756296638646086937097009498692021520987963886889536863601359479957206867014799174719523661905053711792006348442991668014234708363965023780136531083727070720744200612757253800750773358816793901483381646605669195686748031814829430738399960740120830958705474020774822722631640735942019249115187780511507596959566438212986677332520499753009954866132487426098566813535475896326100425850505212007063030282450012084119837066040405862425867201132286798798697719896710977108560403543287713163528797796213921913349573339874163327974484110952779165764788632721673141554907112141201027878820964546965197280488790195022143601803187890374302136726779609976899069518082442405039850818068830936783979526788451720843887629115197472440684980640025371201762815544664557029313721920053495893353162055284656170134608555413162043477735496241648562679425113333582257100426436906213032150408179888124576694653228202303715192734103022734569872078118525535575251918060543024950007871120751292332720099815594219785065193948457377436514378466868627374836892212979094883266614083966979063653983047554377739759049114786410758226175505863157988012229077769272584604774609399724096237285307124644910850337000765918207084111921385256964625660254637510556097449735983889604379516797857303391382958997976792743969492252096940833855305834539489384037575689341693168586008602861707792214495002654423964465001532951772899657547487670521233844011010801892200758169220340984301576644788528492668719957543723599658216672733140671115572419072175159437682172528290568563238618229720216459955497783862958382617914112439443091856124970198150731962191238385592601227109799150097597079477095679424644507070939888345486222408673742078735712916233756894133401798041478706908720162060930717261494358306260753568018370572275303532948460104186566246192887294704983267503612741598156589694886220942863022196654170099521556962262995636158938843201476467261013000612890508228040722436965292534512373607097007037247937902433187914454639106553564145078165917435281906747824188542840126408242537267910456038417861322076667172109193720774907341379812304684746353789693125368865521222018638373244024015850472720131033320853364964394374104490710483607938366150141746901543344837209690627868100099945359711456096300322618722919285305390603736368459964972924753550418719759272475861325196500650972686093905973938677436248522450499010323538131168006726397121750448311287754935993668267432973433022775492936048992101249483964391194471068253615187352472627600612817547140772806942232509641234169589723514655494332016134002687097058976041403764126619586142438881067516545601815896625984799083047591735025198081427441823495963851144111430087333477080402916054805823544487930949404347078819984349880482882980017159362599326721381749830680956730509020314324416285310598960664872906126364652351562631083695705499775996063968715171639972177427405212051495254691335484962261754871586952328396596394837366344168318949936889114726877395589102546156421254488689267641950582905009165854591222146948188575698504768604197746134872712769488849975596281798460755926269362405093379305889924075168002749025766964249852712041692319595713177363901740054708014296699835269504824105766788950620610202746462319661292620141740853323225529898475524405305097785721688322254291519928722508006042683496766686338111829314300935915406578677327934237008666552794063374489826847916795440953386030094186437087202225334708610176579930338187024268791378612543709726302481847705791528100805725213008321954864336321726365086992277024964852957490835115959369476095486418589635190577484050530035196405041991918983200568365119003119924917098993379301445139580088408998732227632468179574280893101819495122332207369935172550264169117799518278152550710946350179647534537582300399317371275292443319622953518722114539632370538479276139344798066875799312579597277685211300744571231706515250081448652577432234683844611021072595999858991101383286829186009456173387531085482472675237424406791608687134881453839488610281927393600458420084598804352570520346779176880194779823175195116953044231168723713408752372879259985871943252970097778892320727961958428702321820933155705057617442455378889309860068239149492657743437217195440673900182565636958399697482529889071864083979254091971053123904720198517994621808673822271934481687053735309253881253478052807255527077214725747409986632502187045890529014335377956972322875818815287137163954726291664110287046676438412411123818183149016945243311011178625204051381397906578219264946548690681416373152027177291588644176120654116846337485683741538046817305555189833731130648414400253855703989040683405635550208796817738829281234412618590246958676345441777526427757499864208091672218591473175080650768108879566154133136341470530121287217706782076919951657158677279664070068939985585762044452223017246618432781375006111125852390945745002144478354529860368718247962851041776445925070492792463065644492313703404095044182426256271020187051325659501144047851867043307218148458078597847471079477163227004671828829778198364472999502085433920160997291005771740751582800091132373001728370036105613654549106044977937248440547214064560745178895762997346260309649135249969034396977434863657070728018313754917137804891828236910657313013315682151155091323194357446728419019038633261922627445203005320129508266594982452979102542875159833144587262504758403315437107878371051823483035732253598406853619026390618852315890324451531831317364384512166531331867968594311759263435972120064812387079106162895689395365244500371178314759886223828331368899690698105793670924340687038687549687503708308718542956306983790422149309506731569535225224101501108999806699073233023650662016504333324139563101064523612768401037839292844447599484601465002931051363501479347346398912116843856367549482196577445811356181614286224235174851254508627390643364909384219261022759800903487786031424876961930027730746864665836041241623660715276339020467907205761003419817589839173912880496814028538645616602986770038910651241887141303306359624902729868928702910611682941863624694487808517770632687007467335512704709851734373610319452637488020573541412267975017983238914392504908188602932103004139965191839494587160082717181395853109951129467878199604037892090757023137831550322088802534997083844482043634528027017960571177867868250239315276119154488802418847971203464886462219231861151614754386147216294771052087598053795847758528229075977452783851065473699829504043869065098999423457771629578676544442254916927826946561527008389268440329665507805752458867635888739345595146300564111781297821110612723142417889522239116466171007360323565486261046266577917574933927075007820162652686760486720121051455932035104811978183577782495846759423115878274889348745812416338932281409630940456980243189081843543771526534188071767980214091616020977916904619096872780919581604460431287239465655184362096957562971147813172932142294066492161121567934445126643644888127715682814827362624701799794708531693920919774254039229322369767410856401141578257376624947650483758639651124013332853083537579765350337543831206871205726545759830277434714210566414970365550179877502061207342366457242716373596910298327841796929253279355713504874630163217968665822696998296342658602034317392020194168533078046711398655853734140244567360070096314699278473109593856820835288160100937136812910061601617327980706855450481960655476556139271007912598454045391904520108341102071631827988615386553498865903359477125202825976992806922777590671807758505602612240157813706230828496786177418353986707925996930458558854419415642987632114583762172531185064238525631915866625589835645354545305825677225676934114567709418445772438722160762746121001513353867308137761979956200664109270221554431130724350975804948128533181512433625129071477241928623839164040880157408188715204584451063747174365941381768754089123409777073619506805433098744820483636836575353339481007607985825782931264500165582616239690025072719544311171295154248181299187831473482320449340950134901376409966396490324475424504348132519010177453478899745957741496994049666305978222410489819636693913799082106458246924802433905371302490504837856420423670175677017871142125415536808461649162734984878648974155797131064978671025905091779645725714012999283864643399908569013158844682683782012927345997104996375964791974806156389600602690096758862026635685104928704411912552896805641312526817679288120277322598539138429998177917978351107520649054709458079685656385515816741132364007083331694797253584095107890593037869762432559911384207811524953877809032284193498031082986146748529305234389129136305509410989015707363628791183284743860180451013075313301320847403898490923541510639476201122436150790127607764485171924557393751775090711375704713087168584239791347757752570524439352144094067862619867726567066327682239777180314216254440767078152610442689958003998767052715125809425783405702528706771778936759051885775943833656751632971989012967655543137893457378655371055454993083294223553974948618550196548296397190624595133210720228250395143318302939229599451658315788967555805816141010896035850296874435773588192462145739337621744279260079970249147862736341289465354658161272993598611241159881628410091527463688321049485069351743919541195981595297822308859814803392323341835901032682167834687422364164611456031011426673522751935450081072710447418707267629765298063765393693830533694825558338111848972013354236697541797260151798393510831468621711053357741096300160227404430809606806752877633090835769751569221495193964835739897157395506502752743340818869672051598823342922805788360806763519846041830108999460057144650414969982132440755066914188511594544615865084402445165372623005684049299969019329246392886018699025267884375064544245152245016389609280260070221198939629911883554750379491802609680540555243892561833056227641102450215668761885646162768751640500333200149862518203705394426899615416168457373853199219513397822551726660681898639386153631561444319900980178441998705732155520483260326988063687094575763277380681775417871339684136312731727385563013615678238842575216336915812094251579622679410145793302154965589757633456128047171884197297201717795681156025084800762214835508733516492396611839302666003670241949817972798803213633811836113598686378178669340629189844038970980083790244029448540492143140308456063265984227344797008885363040618690231027182242654739104078614162751606946130692374750416931529505117627212779743343819590164501689636557365888728911414475803972761137355351715158036515937050445324371007404125506008517399896579412365041986877204280924802665207876196966944818190694640871821367053796494674694036105576336123514099245971076574903096554294386451445985233144868803615901226998594409306602899545052321713262974494928738027175274548389955641222562224963249551981978861153475613402380377210569524284828823306105498687257451773004668486207723962577425480651549401266239983766642228330535288278486733762086245857280808861825327807830059738988178550190651710462207195243286976782353783694050919301240910689029441658650836755302114961047410337561910488622034542850906885945999676968537482519004319176751815861517232351446059252114663902859623401960142857121318022106419203808026158210302386696725510718689008270011418545572200960352738138045887245403198871891867124060992503114450123987127807179611732172942463175780889834270866294051712788643869145410714036458465471215362719313276197205339663531743736367595083051033501600515450431648535748730655440001996497020903227637202053797186116940227376220504067008134630863039216864379322756197279744208711358538585899330540777762605214196080019291308585265604307699768178446553509171272288920689835176817498101525989472472260738934526565786012228110650454301833183990448930082720817144598758499973050520640188100176060604690258090725790311872454724182364068098681381287301371158662025844789582196896831122457324453994168702549477058936786399772378768371223615555666404664571397575880018481616658664721115326531198219243628788122690351787057709102521867399943336245289436813121494476234170967845977596890969219418343100314281500131792731031285078845567134070359073353535287915394029633038705831519917094874517970117118014613233745132156959468677750488052514593683155958919790693768446174869891358352506400546164014935990811888573759182067066478808688450320784675277389024323282879102666369749590755510225221806182219740847983849347534755043609519552805487018484843944696646116519273267727634522165006854400091067001424002034563480150030063362191287088486976804251139248325609240673905851137100983008896850456069626661799231401998659958791218277319219845481129674332709033756525146315595830816730673756649876907798576120764835099524232281325778728954946191639016216152833389560011894881562393062448612556279564880764866971853473458133622226583288513366024347924327823598482667955834395423607921950452854817436395643714252174819804445276164037911514721941800058859388193512028488267306906573787660612223935786277008469039663546278470793708042781959402150441260905849745289343998748343632267621146695194103178117407286632291665384620078133483715915692605743086130784758393436096294135564046937112455219685860051819034624496199647792377794258589947674324362932304866571185536869339593969758531763534301871034004062108044778609179529179600215267668625496325018277552305783933507538885604331037427903213196807702888036985822558949110213717322195433278187615105102803707841335553484237174890728848824870425592225070138180256827447052237033494794538531540643618248732344596217990335060880074540235106781691097942656098666514380530677698879319724029935636400706646097549380070509270235104036268102739671570174075972341695952364991472135941775964525960411468096932722544097766664626462150698696263136485552635097756476896425042857368984215592052460861491222902591685910840427548224368097071859096711147806667219500235540330507616064890950422306203191574980699071764402011085792566742579449040400212883377264749553127008621542298130722878311460268055757391764489486542289272256079708139080115112988439788749133920132426736114412760227142927404372823503791625288994176803214610470086019584863276720770258966447410964087759579341363602718531320440078433294444388863077189597729449329771227729164620875622684384380978566014889203989603887622889758086116503050164974244650196231866880141678990874011715984524558319134456898202681421376733823878866238870789535390787940916335794076467858115684650256236718856937191194478467596975814105689924933816653862728865371622972273032336222089480517302573500088335152691609443533560769892694287820577733147360718916688403297876410355801814629672352772144771771578748226282993953514864264709206401144397671062064286261991685441785827559359910162161961467785016176997165297403626662765077331052843057281336566145814619953354435554792178438504447313984970015307000046306025341686167142705411729454009341307393476354618701622725941717568335131430831535477989578144949664583206664737110799049920067812024546394467138299849013874533492089093211281689979764650051346925635113619502910469097360286560907321115008193569461498583968194227342783828191430536865662902662598189511865953325591410412871465984790763396015200825510075063349723468009258469384941297682269686009467344353427813438845681991798922052586134084413557145427101263220221827856923618334352454242260136889541618404077104959987421233572050189775051335243551049992463460189467134944900198389390206534960515672162164426503070362728342654501794183586671383480434959632570618003534206662358606777289422257299254720678645153639349947677794193733125304585273007804007264825862711006717633719105535414103437106255414978927143781138480126455901669089990281372872360477277472515179753201294280742788256703475939975925161364716380094421462349207269599921408213274592778967081510161508339164355659106279159515903508668517397541685941002974533069371127206134299734852543885170185424024200077202962842360802126692617970401613305649044366681493189516849968241890819384193087190602845306056822758578151980012923921455270513535631218268265176419642822615303649076582929202043115663478788912349299483171824449148835965794861956247075528304200195110450237817728831884440691141267979675005267603766982254787059966069643703379890184795947515718578388971475499664427883478937964410353343514420389420403837333852709964140977941261666794190489965878015256000736222418196224728968275786405797992316152287715547666084148941577755305765545680236430277266955228238401335016673478522982812520225316200252638312240568716370466282605238158101517167002684316124934423728568247997862140413723733985866799744054390158734333833759890539862350952075551747353542946044103770934916297464545119879766445966670299940611828421484117502934282614219665632914857997762745136987917404435380251284562897328148636715371787326302566276225422470515350419078145620836142798812011929836031206780543258169469649494613560063252962814606174041307408863668878665014059898678447521708448300852432119622335026061450893525141258363700887147428264211663759483313240775194414810766864711908974690152338610197428352976327062868955547161017706766552424466816470259656207117352449529043778509131707351419349777504559472714430326493960539189155287352203814596113509015707174907966959107399401194856665887517525890219174033235304271541537443347557198180329200485775471361071089955788060673506072729968594839200799541979583772613904274104193083651439520387448757612762698758933237067299320333711954620209700557137595305325836387964500582595245153601615188256742668952406836521999361873969116825218053404583372268315523482694582710840387211350402188868118255213495484702567384151089447520960038213704895304083046450817016056111341852870147308096164746951172185590074422547022629813485171218705086563696286402913384312623512375236963838248415264742380537290463634515590874083158472507750339424658267114268371720215489806409028490449235881535810820972820332412651534938529753245180226023179931714621722898891508776146101193641618707403687676745470850376124909128523118518094515188145225542526626763691963875030929252573128406853625151105591687365921520413342815294404819499022693763203823893939499052670134712344620057986093832287223438701707763114093906918334751884448485246517424689278193984295013203034393216929773009244076239686467898132737870316134070610400401742874710933962432253184738956855799702666374553785380423754431994129680513934497835436225650494428789699638784180778298739949756804112117625134419733320536219303924169904220345328025405170897902331788079756154471653155567326618636322019609074796286541210040705364270132818517559941909515714105631062614213255784258439322256729498996974626684431021210163307986404929199787192760407477946115294391401730406550318249575348365028383315441757501434920005596606872187354774042440678868418157583192631019837666410612265375808226514154888978213509335883511839600824000597920652717065846292484516414696556833841473145946324466005733996558675542737952121287070810817739235946187175191723459421349135860531049313377013973780815800994051433921065143075579073151094095337504223866357487479376562673238877347962357104076953646365945675207066775062000901167122278293238561142259430887749246520332033621269057736027877410570919260869527252662115978972289816256752243752582263539740678922299095756915518898980411203234441443938892197355284057684804372150950364188985577473404215847204909846486773352328317056139633393541676117471231814849165275375142291081529986516087223861808723750819555028107866155597425885121138880350447596264180338348819595478203384080361035332153582779571491839607770715880537470021233183711785752142760420030673915227956636795049199590595038182248064159796736891935266935719380314346842878833374978799842467986231204586483076189109008215336291145849935755782020998089125040994491723725365141514244789874133556392636025030580871438042326978170364202680054514989259013964170602916897598710931577260607794513449681075932153877160439688394494295834220612607951721455076827095898675575709655834713456696432230964923087420897550492639687630990756024969989804693573430318405587418825432105444691203536178055694616341581883110508900347650286810686819418447627790216654102704514374786445994800953535026726446260342216791175040822754965643689258399082168400743145944240405416255317868731748462190873005852556931518944827437018429982805340698325081382334281903538477429367270735052130623668056038132313994174031220389895561038325560273430767890053515955759323675806881275482636444399390937454752238126782790224008322079305144808941685606185559657881888566766125093670518219550000548292758725724631290057257650068051746788174867263415779950134244384118430645556566273555963245643725502475291884616281919166736789078357529463694352004858254828346258386812209881382019570613855270377949463954067051435378902771619418600188936639788571813744043844730532095745029170617601426255728611798039833332328495946358859148734498114895839435197631070749183136495407947848315622320779095267695422605242929687500373471656929480016548369814810474586482601750848142634551063538126752621578392695828069451416428111835746117588141106304011902930674125568089665127528517991014867725592793524824648232967272164928543444731670684396383462276170672601234932488497967175366526328634796590448104233408662526436909844475875532153366249743961291735043726445823318769979499600010430080154012146707252842514434057233409284798347285527016901177740320281731332986410367813055371686032794806529243388630023210872865315568874379718350452968403112655342352113723067970073616609744873920550168948733041571615662111126350273134522667224211321631832309248865922544175873386404850251196762837347662830904971374848393399009531220632721310902684551224584101900005168023981151219098767542090676622516414080605084295848940894465214862032230522998150021145545061246563992812261391889260102818472271811023381816538028718267030945571688191855214561198851197076175164414748563221563737956252075560979368471196529014795021885660163325876599122000531839547052114944982791484268196356400680171553286686748322243965064957747173166342097461250834042000538400015372868424015838571570109807899958602100180392466480588886481636226435488597366038056674687388472973392799710777851841586725989939841788384987658783922469989905370255088574730721364364708487874891095205011499999645536946201939679416382775980956887278045124206830926604065725528570029863749404417034240387186170210445100756313748441370016202292343241118227238312376808734095212279950221519722548208802080126364677387093229945200739733662714635642990605832648654510813930548957536366325891950528354503733109028364474121578273418880216128842136988097630729017294749394383197198691278150743230086522503477378016445331186759952142298783517397926209887910825854886464299130948487190079547116728655752851896200234601018947142514534771957838312201267677992238039257618906106554056483621570014144065309868088916511723306551669555799416822562882468586597955979252592763488765417393858842845822160526306578048245772460410924484159927379179177077582113422587710098710628431128174610446783962776657933541396643094672548262918910970222132184710379205572685478579440068795103272971147672690071512994640474744295131881380929736765747383872250357091743104195979726782149720358410376537429238212975638206945798083094296960273017792042367824139220634735319763805861531989304545536530285380534366470236293479033768156080540204709105891228076217266485423529509397681214750109364358283730754479718896874188349721778583198446586589629797638956782688768880648028527707521373990074911709297954079903654463731699850576119106467699511609671737230742701840894578792961459603904274058253495121759775328139569961813479067938798486957574919438323866376121353402019106990823582632597395824520413439334659542294893168355317371952305122861619639117958910694481739070065419850825136625993640449045612095048961080202094668020523980805189165487738392741466421607768417361720637285775106870737141485702101229687990748390386816723401869611506245812211536188738528422855649550480480505514339258064912500394300796469681681712395666684973076641781093436199759760030974640859258088048613493787626358620344504959156334007488577423618964387153461959977675762573929885101813693387471279768298628914957189188395023304705004234905426282333833235855307976295454015885115521236023733179077611104222456591415042857341170422965045626130944778440717585169004004987942043367400613095045057622662810525607142469949891434435092702837681276562203332762307685074262497805032303375881696386540296248753810738682386435448477360953802016784845957799875343087510044699323436204105578772271642675427806662429603340221337320689873998343938589135478824431666638252779584336201190818248406399165944450633325252417644031422226535971002222828662383945085655579431126071920835788400802414803984445661049787612983540409816584287864800836088057205696805339100834158456584535929388509311448328634955392019773179522754837599244659813112289529714342723406956153737923576239195339960797617102058814341515619121878832744681556929338869482944682902771647538776401145500025062658454936304504980519921085074890875846240295581544984094410071845674529282322740224353018033140292509678864151698558931038013899062419690961646509244129802825323009615926901822196733398985183593717200052967557115407773206414209963750824701083784688856189549949030879337105386336035693371607395464933749135997196377873412813794134638888888614833884480612050097454848938772897163896742583915092331673247649708501364281316422376550413008600538202263940737362016832838378847383637851212721740793331007972828243448956995439986160594963452526602623060563697436519837387137178388265222536948328293365453819092818888626237528062938931775765454675565253892714795171754458179653991087881959738088202085280144857443895755839814068556305260222913762972849423603790281597027485558307232920020291169084197421311916150267037312510711915917855996800077921515651968962505655685461130920649509154607485271844892851053198782495683534620484560390763558933068334672354492312085400888594272878095003060612435303241529719925411392302611010968080711217305818171964164781711153074424757399450221612347807095386452350642502940641066174713634691761830004629037236031154158290865927400102273161141586935913912798238101166768093729212569199700244973688123820359079979313069870966979334535526256530129329440409521233337489731902491893217255564959580084037721190626178244821349507307649025749992240793058556213481827354116756523442557769359978481149399771118489011719517285331022461897368873060176536633787593802493792400605918115056356384026331050025101144299698851259729139297995796119961172154763705005445838102540187628567625055377350842553425598843763852412422127368703185812541822722575362248434585995751657444955967244279556677236863376433961643731191347859299251452996907249111203275512524457939362921849565321914224989637715706911978496158313876014219315154528430516614278495997630260949009203370703046537950124109592413239390044395515798425447278027378621921146713189408366048682925021987367051245762679902588253111823472868534235566506300423602226133318156137843096618101745367478307825633623934548213652048671221485947004827590947251353886280331641889063686799136805968955942545522090634952075929312624937322806093389540052619528404843451008116928835738621902153705513847611115174511768720843053560403586687139818634362083416183231289156334380951032661384515686334891713665792962694533406062487018379966109614408915906944064598634256396814148086753649754817399144354087084417668794895360979040754832420508329745013556907575522120133062217665443119014419708129005735889214205806050036152881873348163199234417735992448553783585123711177730064203333054265059944556131522971257621676041077928210516028517843599960453346179438850468852514878300974263262355212177893007252957496767336500622751248940368748127467845155327684373656340752819254867062611241905061457180861197122737401452347238657215950245407575131307629787612684371985105255667440559011094625570742518412830437561110318112299104974730859799710980492273085278339596756728907864435815375155182077585285266438651600685033265962883380733423726939640523995236704909510840678244045117147998706522995799271903397873134937010688121843481204880286807178766104285443069410836416911905741804849176846924791491605973059416865386550966034169489968299053444345392252280777023623756531220558919714007743644931336199795304040443247231303757967657046736368393794782245264008765834911886005741924181599983736036188147716028541878836482410518894508911818506772080002482978535752880304247446213684670221048931167519891137905212842780416793336968944814706838549756802666477981192055285859640967016913496183042953666636141871172691227763195913336559810025978080942941540046197932762648742323677777964964255411730844896132433134073027630073562747655615553170616924727445178389773364507117129500510690599830079056062962110498176335443140215234513918144882248385044698832290437004190389721809908074477334808215849192833187510520596778275787596432008696566725628362503800982071887606757111524227206398792083735092946433962731638957178624973220547124164038431537597796100132033112075931733949258643306989983478375775977084696768103020434091358746454523675339850152254408396960639123701193101289905268106607982375922625452946513828875761840258007099076171341386579208535578619855764346436012185585817925715846160195452729638737544938050205609106226209907995390501587454666350603227720403958179656113502523980336524801221787198828266360245971554575931085318853664843364996281566636150273113185149708712662089499592504598940075244155717367971866295956573898666592076281033307728071814442629432837446489260560793175702548365175048636878067373492805730419837302527553268666413687694208226938271472920550270914650591547014675440859916783903899784659402685337627312543751095101130107544166442149236036235184736045280382715631691222980906776268677939726202700237050604961479604980118772559505440870116087554318414376013350599775695452335572144659780138984636206412819371242931202359386160563436956826532817657896293228864965438248977138765947393579397186972270759464039012026427106259272769262147818549503690258990695375754115887948685173577584932572548996690606663151898480341755160826082890432462192995557979075097808359820182080029091549042323244855049318911303760898432514704394959885002171705869464942102070104845318938995141973801175633366177958519907278853144544583454107961066207600714271491178652834005187425560804040999015262729469476735651354922100954399165989654698434582447762115897633326367587701037293408755818451870040703008549373421462590793750703637166358746219518978562204121592151942059325206145473018902143698143119752190011417296594297755062738170901435509662807054018120433488378834916228955635998478873493997350129658470074494804837465794572962009080068422704644621057478515342993185886375975487330141025346667673002122375288272871957615876981780392364946113861017314060339264884011794487699698563540404566900770888726784435560565113878967084779261850917283890280843272335317098500270353095633966125175772642812722171900410007773368706888631205842074479202629836763711930667667716849329310861167079359364819210218385640261598815567933183622382863647205081951100639353676039053352420261328126209831570863372636586353327211411634007189652626436961543536250090154508735457385310893964138557004172598307156867811650984985356690759128994337015852025850190891939806555204743030998329264744698640969382479775711279657475310399653575626178961446767608630219932406880053630667906220512965189134915611091161469506403160507776650901211544430917683249749213037423839934806703724016340672295632804913674481118852671252624599474614505862303434283100882711802368964117850331257849393949555652698309147081126820588193712069940277740603038809213884135412286471791787523618355436624391967589162531656160593437891195974938241005296546700697278177449960567316078662316393633274707888911166317300651012673334731014951524471654117701961746081887301326893130848653660052016224173162659847015133757972861746166530615131785026654201315498684984683940826848095406189685953270678046117252792519147152511165418471188813489853097059510672457957810925241100842313093123433376251366571928942788131099172821509373926271604945063401602566477028094498880159549840625137129380899626484133187926884718755276130942723923946408812783372640283666918938694024641461484485860107324912155100360523314799989043889046406805021021922989037536343875769034341890675904809666830881909100389693595952012583439655199727739332926941051402773177763285948282529534714913100020238848414370553721376253165063547577353900335944855164095000697810246140130327210517274003008310385658708821162600206890813692232073175988657791939321582040759466787848796786721654323444743447266495327094770405047565391903359659734079657229044972869345256203632773291988901673092176903747366359657951260166025039007870782140943991202119071429435185476796862901545025845694121148464219213093163782798891184634700982076345496409253365613842266037997235591683320459901587819035464807829503450678764273294620067025047629622851815229426433742239337543139619424678279139987561072679144393947254886693004040624753159784821450429058196970012228330934955076828657503817276610207346356202718780498473339294301675134349581885785015354823636038230060356875215251430310328731091007797081708923178201476581840942082368242894810875564748799417401371696432270144408075218445967907194755320927685020494927287251328994385638819604613568702473366382114545176528239657790882721721653742902630010310846231166878092070861845657846371694469074965393949858176387344151044485746529228499428983913052004384394365543181280106981607021697449080723897192420630266081430382325691232934790263007401755733018088513558973106399010528618153470541896112627217775059457975224242788201704641765972974879963558629163539717908848857782984639708914519381311674729870392265396019848367114037560820174483009786317230357607203665273627103737236177094934383579261739484661092587583415387993911413812724735107661428875153654071821580901648309832566687328468865572594986990889371236757888421977177019685469997156288320666284130871820754810910511383538849108427652670419445103758655823103258823938424701618033911978552661299420836186736138059529696497332991134882527102134285691145345567204075973102278181856393610225622902913015711691490197379943003018444913172342499821514868323718603527579449376974525685603234973048515281678139469613113935273322425070707203120803514371185554655273162147598685655760787162464576833966245313993356511137674266992342975690923117934520834708767934304836046416240035169771207811276696441196973628917950040561890601579835163378535595436816352472700962623509441528312977970876132803834715882036479380892623440369774276557735397680190093364712986962035233266652448385707670389688048855828273399455975605333791972805635392641607836670043648654322361150498961053084128314775454517532362421068361487722109309264872024819030102603379153385726578951245451650796134798477781873879120643485750585416575626430361268185629479055929178780666463843304942253930287610313984319977600968244276402259986240910568717325998501194753418876220060003262855730239709307037129188904876499352692237443399763779011837504934295710959624696955463897482378441336916304745956751254972752173676150837773712173016010766848896101220669762521340511055645225066515881239771426095788350794880511999953424359535991120921997633511084127647077128013382387126783589583614221820163512343908933124306233567963793355349015211203068904420198110418149218901202240520787877516762385499745902398375437595482198608214749378001830564322792776570531547549527569246228698714134719603528968158480345017279470774652574428889852509974364275424546629445242833495523103101915998091238721125735662449676701596886676978963479004529211731264943111577849296200409684466856550893660741446728023894117064577688020772371280864611951558402386136338070882474010600477714285828856962379262176684310079982922259283084877700221104814162767572083687401355298040695624046157102254915075308596017856352314985835122053058215349102569626265765198547244144337944814149697948437842344233417773160877172473937989736972363967695741099163744230157720423107385039236809601130730962245502174415755308122611615526193399394958183885585456351406837008628488753898577766025177624362921589521512459290444616833924350432463745303313983958869042386632127255876234523850616991921396580733730435027264535895424505039816616215616780068197873389939329184142658319695938108484138703635162861181722604928445999462526997198544243554323085539356595634610679037062469224021309335485969295069216956852964111679739145930593778122973995938288765086860263823012893164044392152168632428384263736494306039100532069131420905595000093123643183002875535175693279834369774882638991313656378036848224633679682421219947138476682195323194251602159385681852133159454240494499134499417441946069853341354423762041924956673879114569452742293252014402388470387068333939070946656102726418357552542266931971789355154058112732597775776617253790270661720131013260333547860334613100541095211155347898823014448293600435171441735973152964853561163692126160419545094821129028660630227420642475615508545243301633741192507221806484790777606437646997774330513430876788215428013046526667890341551284234540467794357390181012452803525405123463356917833664038971083747900012898715447527954186477571568729922433797222320544714702150692501410082609573891728330830892195863059372329688949688930629153581684791287489033508805135205250004912255373620845752693907061131425989268859576299294851680372361730765138301253900817750908515992907430011691784862963197926353535429847107103044178400289197609892262111938293751764959892144038225651921686799574499927428547293239020340405191548859143134259856797838713290862382449838902518737327332475849948913376710005504035573844880491662766833329770010433208860762285424863117943381367326511914800612470270095080760653706017269289278328488109179446152075671471606348943043778660975457108603185192904100771087103878453333458820627205623394511831805153642699985831582234489586897464893505780435188965163003738817617132355905521483037232680557967609029752504655099956557172972468604693384085780490172752595232656250581593836617200645210381461730466950983039288952868017398562640743283854143397166923962347592438432657914603899111334974297863008568323335452922581864063594023241162192091555379245227822158576210048781239970258056707460597685667369545780335209420103661081596983947385078405188170614236318111486727304009498295299689540318161881777431275378685328995204731142884016925506481251179140987902209257898612955867580121120085071751609282491268828353530141847909750152556657081775204403447438076375094001221634830927608956013071979736959395961828795572967241253971127689517386051838172685024282518466826782439019601394764610944010994584623096518687295436573569080532242734439416911815102443247508612281086430539882287848620651177493450004530420456869700100537175954429350811118810618137095358857151832171859789450431356974119909296153849883580809298244421569905776184384410955581354111098061008889544865400936966946528008437624151863921453928337602775277523464620297458446489245577026929213247805666296452939759441275956154630202616484066120767420369859774832748936014779498665062137025732045998227385543150321915176450848663031764375035883345292747428692506963848610342884786766228739304165392511369920501859086099830111054274154878862834426358160178169375705644630378217658666407197767254931592844936529748485608031395181206255852304954289358801828603826708038545219210851904477898263066183499839442821867734236243919124795598647848380343139633734948460585639506402339696467309227089814684248830236993869700695808380898109303738287280629551353336432581404113551205856518044015033160486411360093643600047102988867141441719606680813916048832429503171348131684427130670487023594020538665514853877498181783302140588302692694577398452951001560779816025514452823812788888443646505070087583219116112930787167897651626577579463688010858596065676471812485826290504172442756386507600934183231332174744878125688392015691931228045358065468630750898545438028270873688525305345970200723580301571271706171444798043692830132285487417142177036004923917885053835173511431743000346141685086547704422157328604902172945010757476356242834129044189035500897665814776545428031868257875315344577538212594940858469316564663424489662891537786513663427870241957693432922025239975731314294837682984509942416556608400546695163563710735257348747123662771617029217546536298584305736651793365901410545502701367800978020502967373228577154054274569552778668401291805248304741144426704118416616783060524205550786720200299339678987951904163729082274911081813104046948133865068051184404400909057881756677561160554019617559949562569031823176337057652352585314244572217646246132678268914673943702662391905480868552135158679407850921036604360012622313856370791587048345162504881686153489170484498447979261456985521404371171097226443417527176432432015475069972068332811665511279690458365919663995919239692028137099647895134488353594929908436271702401372797719298253207843265552563411640668421200784878510681668497679907989081873961011985349426270430105191179372520081867225438743148661536871394889698089418196901639742279666655975420739968328413141915109145501276918258912142609303876265275630924348560650193510998932418323172498307939673931186826065029475464251087367960603447722212698231307781345970744545449852108318589050583055551729116395029059242693359254906739394426614849278588636021294078945416433134901595204905178169954567164352330453963435148507451161266702814068327486948171472496465877237128392749668759070907093502686293313993225267401606146336093183104361084320707120832618832999818396054219855902495327832294362018627591251857450267129747750733356898814775244893659733828160042665495685299024612078194925602532369461334463822351223503467683992647045485793553243088760047862944334028667791136192937408814581081822144539455222294290333992075176601710195093906363767455950795652722338807615759644151600652226841658162449276097672370306255127899397341886784756037268203558437524355818577966476691434448151049894304388579855611289840971868649708525348650750792520158619405969357795472272208727183253422522324871871972718116793603248944178187828111621456770799434317148996287549476357959040197500281007123706846720725254462093322042579443195905016023229130939368248481901633992504986630004522133495205041866074706014646328146463418166640942337352238397272057213474982579426732566703131497539582983441905066909490889199290961824356673628761965878219770844322889083881448697973464294341018564662774387411253751207119466799406759764345864492466363787616423693179268532447052837190195003478139348063029248821394969190059055232464489136821422498144763448759140698014674578780775084072149385987292043574690680202569057214608600374214359413592861484359563165598388490983565377611999741343046752404060294899731303983471085020879830507758977032275786897235652920253234501568924790584601092808849025705793123123420136244211969498107448926542261258128394715791221685828408408287286229392615772853742281464698943467528168658800569253839931942381473237176343182317466544998888715188092772439958846482654798055929337269737985986753388074113185518504772035963146780749554343780635366039944488576037779556524744377542531212651692417867607912862471248365922622149984631367508662867539132296711154944997039579241090687673005268702040509411650190249056568238423478096203890847787884711249344212432052342938876647146868840714047994616070386103057389667068953209399210224142594375057331834558082883913615628392829546027591680538014805721598928037394836355825997506847046673729508061226569662483859951468725920997944181327872877756692816886968977819234887491924492319513077785542735712317189720247043407930245814601781131581189050286940782114185776487618638437755941548312841819248794954932300505629293384284726495614709619204912562898191403585088093913689174248675646109520705095233698158285386428772404280926294735836370353566849112853359457880965433574401076591485528939433006692146354697151812463156302864163525129470959272989138227043848884525879497499729621190675356621970786643055486890482617508711223361906344705261502819455047922761301588646514489140725492063529772996994365087188643867527238558263768485747929935735664042297920883310848385308692419010449720610918298384549215120845297777458871488601786573836140196224412201048868858374398656887372504298128682966216354642809256412519887504731665370032403657227734767210516870925283821970534384133297048075328163876448523513680496435607805528344826025517681953031530751513862058932364589247276352722870619194987546537248214576903099923402791824245077981242849741789739403849097015028420126937347260004223692961829167288150018334150019331823625474534984365240699602990364276602236508028191560520221540169360365313664631710441030987403647154437768564706886432314938118101357597809084240595076003279615075470194243481554182097000807337100873228137308094847888805263491148875408185680611442965384739041084094282532980922990581089018809676655790473146751131236577420637918273323746367855414751567849483106783748699810910592530422721712838267563742731595430896257864165878465522063005267421309316243188148111941049370641901032357886632932137026878748552220918129040005478667667094604280913939367841086787525925992376559710564564900195867529341686617773203868200478494197655573762609439576914144912702434301478431223057827061821329145979232673305017054744338772069873142316799065849795349317868525375134899672850039340856814791994061032396186247748133836472917295964962168697509717494031574677374752377555558430779811467338990859590612159639508113089799478246830037534153295570061532278554048411029594162443386078298866901946402618945466368098756772311290116036424656109727538593685955942897001746745213313895732031170585745115660237343337136783026201888839761072880846510923366938715661106049557613306752754297111495161743874192703346146276306860188615477040934336597503965414798358266151835914646394307695472557122458332192762587306304009459949443159778058328758319717162619563825785255327287099537977761021365510117271115685319689024987183177026770228433515664618207267305599868105917663867856773627584195599658706542463039625898495437567332426075971696430547994864912286847813398164177227283017681244984689657197763789431728863116850334199153505422328351415392744923748212061749907671707069951992097092849670844554846881684725606667724357309992098487844625236878089030487201687242224615754359136713922997437831285154516257903604670989630388884025918802778750031152090614812673483712824147857037847821067423435245239400592507428155709190601820981281075916501489820852386077622073470314066085762182431350768248396563513806170785627716674139367825385198054685067628235559939590670338307290638271573203921333178847531770594339486253686269315411544766506660057202212243416199813342635010379375253011511550993441439427089048059152481410750934078650832382926908207858000933448314986798474421443197030123520572240684984059216097652685774090830200097359841415433116460345508150573030462591166538903716659208780462380191873208795454287401312569508972901017163310621101594646450453757204705266867777682016320307914830383046217951332564177692443637365549262266408249301693459148829392259504658565912194684375565837973722867155949289198065539966153941062501861354641434497528405291178473736013966277967057358222635398373796207910985798380201754895424546126396503054747865480779092748036501182812331262187309390879325657204021137884936218236262556578761272511697852828160557857856627523653646678852926214752878799453197297183573191639164044637649157375419857556021309227669911646092419883669288436104516289717385076633878739693344569768484188388302562676194751968978374833667826153058510705490997469918293583653487748753845947060364840181381864443714495034421716757860681023740145837099086295612648833575041556985225378600265678975489147038113121046234193750768063932757076086451719621953557995255756953465689933078028515230477965154247538320156407423682008861647778824125396090675493444294716241905473778440009407226462980301598722138323354808499054498259995752292497225164673243650332963435789565849352091999560455325671695983979450953468492871523849665622465444120408738324048535041234232641038897383417282706886803548809668801692426182845355796993592053683386130523231434504129418031220521898317072144057046855674702519392067075446740508528503790205177173275595880937829037542945518803194030866063143869443633653270534352721448875465159357830846180072635746068819916878568254833708033913390028304528527112091026230924221946963320372048693770647160916547273550434189016215165229001333974244504909995732924759335648653361146079074718599385729652499760190930508010905139456899511844146946373896965609726799281364104528350213047998859307361571800942885514942903381582852866305093026705775445770768288053473097604690010752230899204623467834871639492531394688957539426251664269510226598390691120479117199859179556466806812601851134864267282578189695379545555068543478192468556511729125233176465259439979903279372665803088119214019401886808058487955823367397232404066641507018393323812286845183420391027430108869561716399832699797318908364426727056578409177320469432268208488584881927598827426330716881620231119299731722873824236604781807728113221917801218167157671586361480116137769840975824713319805136361421714361932869677475857484367596762050193219802443052659757836071723264296888556240183558212279226617455016445663062574241768436791793778440840229215382434869126657825443970971386048789196743357619199237177490714492051883736621560385837983549923765940857429918707119052919002943926634679116476515347917813476711887631076533823876851914951542488962408900247972760367694538828456417747823740815539148301113173571769092591531035311466190741468465323515253318566928849752472967851905393628732245439821717625172547824051301449913518979624820154791956053449333867282900837510570263747055956240977575357930600446622792336853943163179775748618568761507645284978691082318294638057567531649546293059752420002851255972219715123564706777709336693769384189833824863327672079879873617831175329879563200009638251603584847078548874866027593115571299042054324510984031095255035199951632949017488585637015384351519682163645146903125247856674730486356927855903018068650344256980618231678080374146870629866797206863527682829852807012922684799016048191611091106300700667585337375236825025287332921898541234756224380705384961828323491194897518501302412692171989512655274892373485061670723950216138118814871887668851034999794823253771732511526695315638981489939562646125783860484770003289283810135808080816016682535713750537158881920143552143614767085528257558930497225444156714589314856728683032104376361761440668259744936232585019147542801457956928154208933777561895939417759366993433306094369420078237216837811723771914478458269932399997741102315815508529717527922051725696687536729904764554625019131655961646203262227073355698101669859889691308006656222954676961043479841220014044782985658741893061729724713699692941380848415547880905756056585900094611351429761420332583600060000477489820756835389276204176308072013966422911601657166615596573186006578544082817144184528348658001908702717246414750508325961692497857452877465913554896327393237533417942461878918598097239137873794052105594902370733370735567806008286851200304642167534763038089956903381911262559655214450759164524265559910168014741795355897574489694500814998149190009543070626757908115666083088421665503003743581182738583335536163097629058613875960229933498307536250219812282597971510573670422012601332068821530997653898794618254506897669099261969506786987126351719748618158087943962303151900768937319512048867683576634814110595629688537609304496070527526322580517215026461314405008700902184294288231421178431012004145956610843911226711335423809693566693501058367488938722429639937784211332973390788208148878698543566471261363552678802409014992624270095040727124490973264276859226370171150610058976894115037546964378749054672551575562339759275877712625493572623345262116176598450182079965043708142203675639399205729944211121191839427164843795750451423544210569761382770634062459233757023504097716991737219494052964837150456293600693152431751885625655231794438442182453928504330602460575570542032478521921038186453306237595399034592827780835313554309014107054125547842873840847404144863792063732787496755858832522039235446703208842942974458715593666897430155609503668146280946540867280232647267603342390950069863878422218168572343148136207837730547550898506308591092609676818113138997329892175749676520222428178629387780017467662415724136653001088631573595859044361832850809245338696812714685662694792684538843442402802314292635438233325363135050361110073198112625084268808026866643078180966333748017868073661940315835147693206361426908162185687806492513254904871035040734423026845192801732119052370234883244559692326844631626802331681290799610820461695579484062029976152992979941046851957500548888416490105647182668629858786643468128286145706356040042216274419445392247598262003543621849416981392210009888029686977648643580269570207609852367236914762394503759659867962555417565919710029606083928040292491216655825372758837294986942325021691194998777842179089747391130818139498941606625378353604812619793540443462153713465136948530312862677326908740810150346720510170674578383650767443674375561558204359356760350598919514882544265208702091795414274004234326191902533099542600323389587072840527882167892157160288261249510980366661238747705782895901967998784946888057905631188790045989749458562494187531393866932069572995983002536244668786924106409665486709476522561111795317295814539396665175028776408021648217327212650114909292828506259375443934993534341237379593471863888456579952463908211362547330426756947981399596738294303666473614670140597137253031159642699793335336827721614367531437008293960687972805784516855473767194486009273627651054826380393079918316885188312291987418796591165975719169329552872518377554267377846775727701674551630970683916007891789177556313897394144597707314702295293548458834108498652050102536911863194101512265063967838274934945781492178329448634034352897058133896455155457157267931247393875133297845060767399239052513914741075570233499964751896968376076034864989949535906748361185286348153666498091193985058044431507899228317705922415585283148445208958525359608425495512278335382157561441444781324965566724459275835736592187900072526172633811450450950492248696184277065416993325100331663781045983007242106837088077728973873410727001542068896549244385509044547171633974903906098250461770670076658377258114596256654632766719758281358362098259815965212267437639374192822942298693825840009272392628578918499994605709195684894253995971591737447447756602126102583388512484409694545904252695834349304292614667803541763325118369488906797008370207835240959194931153485875162783997645220521317729604541491570678535341409338295100805848365721966377932764839429073925370259019897733504015244997022714809480393857634529752741157629309532270773063771094477231203221702035678528274437227575725220518866206119546161554645624744411925553858260436238785577411715570808156173357623609417446477122800368028905757286302649865650702193418400358510769482497204067817814231206772092273765608844755636560190267138490426054790534255935608296806842463783658392217488151026783623904294172524443457413300857594273086616743189803546659150324921902053658247509076701135715195703477702645008763873938220713671230622632060233017785419222461737371107294903363484863338782563995557944126141182798739792039492016264232281459638970670189748581048312617952877964188393391957507924114499071068290451738489348649371565554168132065746619488001369227630598276403470199554999980283243386257601506866331377113383112423516370508638129764089204593836751185935194250783869677206115359293085907895932652678583375665479923461736556365346757353166370318627636545569884891150030363843687323149399321414057190801411852664898867318270322477908504005445954542089756354820263497394841179080210888585137947358034436030026026042657610778292699329592107386883262535101934945975758664929110830626359816685167876514837332294525599175886745019278474111243364328260001815457709898213216414274166875159919063208220347971055108484873056785772075962768316364642297983833858654311984522281858484125060605659338891722302220992420989064283476486920806247784113725325394536162910361788814611744068522261973289564419700429248122181116875563413023139322412132350228258099250008487692790692782544756508973342746156960793391169768228672028776816527628203307266006558688764938049208709975049739865618970755835898898743861151003294323186490578400600060249015388353081819796648309121744356958811078789152976708127583254718379184317981617436658411278093248384258053086249739840012575687649608953591661603407426568109128428904952567793938938362801192995369031660848630606001190117115508685658725200372548009822599395045931040020584101147682975918629432858134247345169066974806873991104394936222011676197831095738380140206081365758443541948879927881956525354623145347836592608812890283617914483149936105302330911768729086459945578604561140267893465079236379828874653620865491062556814911631048485763670648823679911678642549050176138834554662859779344710775145733266212572167737598701293868604256732487897186397076046617032634032154331719282523720087358127462823839437892308978048189987026580495684560719833455748563566209652624033325709759557835286852145018318632058082147944770197619273388220569507696183832997854882599589060406483422328702819370199929309760407822072543911081356246411013810304547391362147817821992473209069688517294986748948256967568592774536225035342832329478357344092734464478781479621212674552577089102660239449862176719846628305672934384280180553322039118255453524248296808685789318499269053758687980721542430765584257640273721222158045826897220081248833760070572079274528013631886829230246844002361727853547479008830063268077542258220152952823252945823253690449528413792566431658983570699666334849422532553441928856571701253437092445454487193904317897815383633633948079274772168507221157701814901250946911358060002023787552070197155503421320714001373815421872550912487050843369133006768110267215758859275057282560199450494095646088632199175356331857504165567285610222485516586681458572034342375237065562815268093803255291158369676490755037557879826020826414935925690842616264702139633582658216204657559422806049161271769163468987808213143786889646475164542230973721641157950388022883882905622164619010760405835116425675643612939800269374233225055284836791252727534678695405054080011247791216432697739893073860236095191673190255651399081476160601296632105835564796261433291037373492006714146785983422625403535221515729262644564757215052742989631335780916839273194390657384561063494569585719921446164205413858623231813175572750239201271263657343800999588863412608729885017974848596905562553400653423790238675161052120127186726218358066269303116798891179677547695275990751750128247623307271565196677588314086721386830889261938755789495853916958278672473697097980040319266014672723721941536693736116201614846712967087325844004990781782228280191382841570630603328692497801935797551514602202930099244221685292429876572666790772218402519428070534220041373012220820644073672864753759254186886023243873839198655271006043176572290830438110112957567642315406242451237059481046461429345483660081731943945972108872767982223079975350568645491820207221840441348970916025996474401135569950686914582236726977959318246340915976222629622374093369604731584785441748946699199976829011376075711949520338726338001667645095705949863880206750692852958763244229434840852468339584240015364673120501172753744328994780779816522395801689936932680484700705226501547781957966920413263928474969284103394623209925285736434288508753629685399802796316913368296188469515139472619147667610882592408052307681685853326022879783803721287365958643165877106110901474244326794828069036442727443495134617540534874405726722310642337501635009255381707152430223860494842540447718621600123742466073541494354301879336125801186968065397867958159537544432573314082365851489337834582650896057248199980638349136510608920469781602185591745436204803035909841074145029332527838842565771228307090308089134092323715518124268108741497932335546205520411720931378074641300407450491016041818439328473203104109637821514385987965884409362158298388618074187838251823214225363375311530464029770601157895141801036550066499306180058819910914081257259601686995701666924777473212546855495265689876406896704063121731098151611943186559271955883396659930761195020054670497632308340594683028665124540113211020012529956199718531152959776418210742735733828482396712017789941777857315599593272052195566462917505185046075466835337362990310880913609051614260651405124044276210105428014203620132632366566681787389571651468998736097810281828248400834576701278965743004521231465113803789193333224980421335486592728863124275139356376920352142734411227608529469355190060477928757648250409872624615117015418468935835504088260758589625755981218364865352151723167243388623105508163216111741066174610148238502209816417550416322446976414005546090450590603526482799791818432053582999409735894151001518436497275676391030996623207271705351896163969931750764323594645702607206924989558208263848364325718988208955295585152527125335604099368316894013090548422531770211990090766078879253497373615598788209976372748555121433018237919182574983540222801560127321091071472525712682827042025791298816108079441600659709088464560925889429075388618218066241167140444006433971881304471172126768568502324963573761672393558628569065439688899219659506115988315205437384321082245790324407564434285053052379205892682714670136305086304054436399480991134781390197705913088243889971843951550101971546662323421104579264108584142931614401393814111206470829750056836726183023903884567848289059379973511577351426232435490773052837098387473549705728534747986065329113806180180751873307255464697079048626795024053815304480488088252641755911893540444031391806106697230409774673012826824622561050622545724075086605366221857271659699487977437987490587680955185110606697675273855707648344133360161185811327556516372243157307835124232779501261636496742045020765836348525409776634150877726324938097430654534582983822193948811169165506139707182735351259759025795787639098577434840346845100629817414815076705856595974952440960693142521674271336709890102660531489041302419318828202489693454951285167827173073114264328876025352932823748205606108344938527698587148916374570017733317779817809947291937331400177531345283749035355036839988100406965682055646388267074432792797271908388148935388957763326248884511274856873922257853039178377123540769680205500923765094724367585110107698454077036890222503313492765577249910430722308312205314437040745191424618034014312635459884501716819385503912514550030213424027175772353506924906444632571005321607301912964553443296297754369856933087645906028666243187536888010197515743505400078175474974350215643708211316556927906917764762419493976511408830197378276151311547553264097216318671942011608687955253081213216140633743560654056317099764634715580303604709357745537593779557485710607671875116560054220571485536269198851924812419821231907353735130782209928888874065964775766910150078381984040044845491489770348974404338420213207329575309591655584902773259676351504239401933114077431734330518961889633062033015905736343934283342788570814719881765530835486943368699973280350933979519288816005073944611961582363311892028031179431793561096654344619231785122016881733256758633536168944295452117310930628532321522701666750045881128039362286860690764414913943685563995417681286692548806091460819464501111861036941578631537592779199275722470170646981026201257169441670092448036882060539956273884439535303815440081332672583529813425491887070343725382010852563217204242313619768156784258008911850033727923797373760150756103196875218921768106761997875683492104335326491764956264503098090537793812508647781844798311344666158515398898716876741627514754183053255405211531667291506676253863866122510708759407668881047463492062493720657664902489787801602260067530654307900146940958171147653885146789528908500251383182211887644255734004768233642629968000101490501466626831615326446024392326773004583940223108817943543377621890595353785799286089375110038170013336522841225817355241531430563705770868502369484453345102550116187262000557759513865456053798794584274723734466910498645789219014237746704203891199659180878937668389032890564617092440095957165155009613450645835702911537879678276327410184438155849491890861032559469644829071501428889540331709472698747160100472079378197867839352798017846107816870363518541981290038501815571975842382192503519887719032322508528996164837530329162340036246365597765552985598421689418604348968154987109281493917292222621901404923339574479870388542845065194409889200525818587569390471531552226857262457783104913348950196651682976016927626526186103590243186930231140125148000791047585412270303838982697507581726843856123451830120701849950671479102830530239383817894912953032335487714268321894139039611983321205803478488246546492830877620389540169425776076381415528350844970888359493527124203889944217676440108905830470676075505164360609779435317755339107811676830335295970686086244840773233578642457363656753788816635597717972599402402242004512442878876986564826722821911560841210912984149381788805274375070860201469126643718219412696074398528415995679907111708660295083701105166070491528397352519904724861392189528868809642633867642142952377377671841491724697163808285692355558513745232699318385240106630392897549003725502207968508836493969283264746233798259662034742999612634412353905298017102649134709812113214475662484105205936118108239912692296630079959224289398446912110503766258372068856410073332981622805627315666953105103390724055833850502970077099806440602495909813463720507034096975390958748392048841346646960597384512698220467754372557253213075500009120998602977873433320955905755941073795083889492571765879681171157070597372911483639901544065651456588424914379063789127466298766064986770269899471392604596581594755408643042314369205481744904566437431075574271313732253123343357269195862224366157800315711351956984236360581861216785063939946293153540781742530227917547729317320063415748544177415850724777237650511484028143553747252239641082331157904804624305689732574701386737342085402485198993860865481873422729383104545492440936970718557668650627396152782861563177159672991233468206268228906174163912872426263326354604799986125044386443995393181719074379760837248837153593660367961649107322663691516084085653727828414393196131814167898334462294882237254431979630544020672730118612170940235190907220065814485456534400845100069197541629732035871761003775849000363104206228086728404556893712655602583719157681991551531623715859232931274378705095657549464201428344077695463095482301751983786508997054767745295628558466032708435699114787651625943978772259545099404651584713221787980913910741044664636795341285055498274438936815593383344410709232997351066822227621621190834706418244388046775925757279962282437826238810243321069701598121615597366150456611970307233748929347969891358169518117403998318009778570855814769501298187288679650774503261777401128440104487656651012200249738264654602434762432595984066185412991797311106850666921487486680998371800603912050815358959603564955609847173452862529121728712930848238727729361334867439442430307782254518512072140032708370167151671139330585740819500698520831312094549370846626044192894149689158992045856336137180541863220806409879251556726495038958963816888056062925951426863555339031249563009833926824518147958901002411358795398833788933746522057511784456328489085812175597756890960875660204897755745247178042795767944410939161640697973243521299932900055439118563714091944859436652958230845273210386825959714709195049209267000800533127750201572323610449299915877768278571910252056831321740149886915101587775923291228352346695200406295649454245834105273413740996965848809683449008777382771259149630953709790649683204053541950620420625666546962752688593981157868651956412024927379565956419338923190066448596350791156744764253275227132832239225850980117909773980155550551335363854859574355155345797413077392242767292878924127413862697525503193671863152693015565871917446622319430609635244715923390633758441940180748884933612539263909806230068432822581818185075585306070486079406087197498901390873446329644864426116837745386486393529728821572622033895323456135729467488974369104948255462458789840428150431024612258151497139745517444609999544571676987883223520608897535915685175568259883787968016724818721138348488811373493049648916067484882663096610127057661301693495548942111378928324530174508836936420019292607389686096207494540317049673577817579686939180660587947193299036968856805962769038337137043905381900086506736025626222922928365108992351977334136183585865788359715719274570253360089404742708264038858361632141888734158358881974908913885398163761614343940771043476088110657619615080720478037274853914569891948842664541213712153138685974654599841829088290631269163698403714774420431361160983554285138126226408579415119881826268205956365713270477225159969604896483700278594231231695883164303174279023384858706322691234431553905596770281116823264807621376010707588366150821044752031140285234178196621549086036704099065002321327942385327492438890422912315845557148875483278435079645081991282925230573184814237988032047453251149638035348732831192620725018638747583909154115672189564222959984586757868280186823159218059368029879689129304194228647219369986499706499712037371879036939806266785107636001422195857416863964814375478615687047092947179247745343145176276455844616697304506144205507666249837661340059776735080503654613380836365946566331873737905288075342588769108448622041547448188834315414838635168956504481613692625422948528622540414469568891316109611272550153409352370598204565572358326376456068981063993780699850556832637843842265831788927273465976681860234785492317474467995463703850119617896509622420804983517964449870665225332815311299015270293543571946164058427926186324497466124749415598623115753961887649683988975664798777533542685526545619878924390087698829549032495135517564793919389981614340324638619215051034358629315224970171810609018934390041477216292972445293378669060617430529135223654966229202393801874769099917725577989320411292995116679082337921068462847117721883377254629322082815636982632997256504490668291233228411706376785910823410422080850069400128351685483151144064213891377589423843483082044668510941658722250207733161051565144597310110012684289423549256650533077387491852649420307010864017601087359756292912987608734919998308838908719785151270223021253731256046819204361471159351196878278685850152215858285098618269608739965955424882888820263995373370801078094556073449631974307207936264050750795793524739563012599567259765730482408783495902304144942778916655943820125900585791701283685964228352739921519474789460754881973759942791239030843233268184894914639345196534672482423994420199322266633744321987681084854831647720817388021115517246905462662967305817571812501853291840329279625670031192164899593401495359349429647478926649267134684586341046770273031780365317927859220695801631540273486009504303342936199518061903054206641633953962390014624388950344128276553178824618742905901071813607295476311049642938146417504647456917681253144958673910900124024921364318418332755082747915491988858073343848629022367251263846555239804363723666461860828056314995436418077757740957057066073418112297102095805287241069241232996307470420751981691457653972295092182194365307894521035324161484658946091715348267225665705511937844484785224574194966949443687352244280923393639547370031522923193709106928121428732150078460230439321256169091147975574029563284724747515822873996092886659740686561819942176337210120880909455494822635709536931177945373602899694872109955439103819030847107929071061806264775881211847073775330404058152130650771663291884280614076632032053554592260213956878715151906048728774766947877909544841859453402674770079248860196111222041921854619487632836248705799826291453668182316913645912213011304548626950319013760187576068866193525669257070591135995221814187178563478211955563065765746691416695547652885221939981976741335377476304233816755556293313115554570298004640339373245842192626494450687953896608170400133630453825087369178903487724283011340063594826494785469036961261854012694038934756436720358904391486749734346956203165991165376030259356785987865282135318390466320551838595642538724272908060641180571535280048654603524359714293188998703591147366562419120169066533632444414160775648705472604706586501895978661751218760520139625441916228437570951951640407323227777053592405978195754145539582398139411247939414239922562096527527233948702070903059887753562975920584994128740366474813064252824372129144276471909114158740764862645550973897950836910495203101413047557725936653809551304921306890510084990707351173892241473383451906975113169856524391822427432023945574010807262468644420203696124360823569466005373244368116565239147232561555347935869554219165253355281624856962171767857999158560504837806824267511884769845888600353043454275616615855202478730511563191407016114478377027538421047266913205122016588259907570252193046923636732062110642877231263747987813896400856718508718992235327379223910966765892922946179961939065824974283005553733618527552237440546613377867241682275536594257630885415032532287890268924265149652268251939857768745122312263497209769629395543868686558600596272755460712825965236819364231543619921589103479356801684254932790466567704598362089732113681496518948160563941963183668516471931937308966099956120417267038794969853363061592139713633676231655955222529976924495690490118181876006782849867497767611668927747802993648638725161738840186974680544010745875562369013906760868447087594577790736363040086507761336219741371497160822515887959765332748527671889599604066568166273662427179195715156352653418744464133295325512059827812797046757217337796233134563149830774274180224928847888215778181997495330836994123974070758534306241998484871290664688344970545175344901941128301641354693062816011890488496420909674687159912508955781537522014019300963319385596248120056847111843292260160782858857091375434831424065763683361455986013290559099486337702402231643077384307456917816302745615269351942910924651867609008835215480762512154642582415023965183524833364554975315715222472142781979682020004177622802939761725882817943997091057762048720839877648713772281455610766170628304411969252451250239281629554883400956866303481202532472336955369627798909643554358479064375562751117295008867975092724117876443195337893265578862797542525231359931495472779986317501221752820861342856895754231330158411351883419855204745736684106671882074066623161016806466514913581239019549379647928946929323701829386325712185559606257350857603527166421786458499327133600330243619061819312636335855453760679622994020209566325588216862738455555590892789557483366773609089549240838322534893443548218706055363127624124959086802031732866489788160006615458070271100178125483101368543420909688736785627177282390144681747357549786724195884754439771354555239027597866064254480605978966363126153294286408397821748086597992562526210569980978443115115017633741302741567663498955148754634867888331340201062072695936608228312417364108565131314791870052194128381887328511881254255198798068885714662852920253238671742280834754881329326489252030070857333317094084366886646243785715392165777750473586912153269382050785204232382734163119644524236611701217049284307007976326439307529111784092198820610993215856096333784565683269559577890374108954929352533456890582789501273351220424856088530889822227946471961894776611805283762310377612161777555893997145804134237070404718247813373487537356439346224288001474974524196306932324098189338581228180628474992025926611274404634682027196019961114840694737161071584199766791339964417531212351149294234991767583369601571008403091350931377027533502742719423055381185878270885177391377631324360786593257925637936473427333727549907858555546142020743866639031670050015707857794103718412185345857265076316068870790973380228122411829172192130225262754662630170932763325257153521800379100429781719235151932027643890301306723241720135983307912358733148490579089164279800153896662014855978594517198483113888271892974841985371047054046532612863075939132040988394688755504603048887418770255169147787896810207108530375660192851172607043101551231032562560607993390857017945508929609135354865707419831683486766968101707071196774709028904799584438626746070406705435632173091766651023993927654582570652721456979247224396654980841655889128993647340199868590338326650226167073370275313572400794349122715633484610881750739607978810683249592787021526083536811353119461173244144909272997566149579314898237028661771928375853490949212408439918647834898494472937463681894664869959817812178525944734226099076543436809227510215192621742645681320411107369060356970059647978287260527216228011077176259321557358987938753084409447058770976114809371718196046269232631520367725632748602533451876860610965225098310553002125519841721513954754248221184632555575668936759949594422368706354696833414306689626404007922764920647870376387349221022680499615820681260891394914850214286651186221471883235821796155492633056587652523529518538183656185853368128365088618119241820196965753087555588164107421236524056544136205548210979006582391990773324353971851548074254768971845640567209592329940935375925379724503301667414473388992402795743414224085421571742132591642407125058341347294590342568681698147436493556650451537680873855647975270446647814363144060728238516527435413179853684802146774129338336924462980528302968980265746938235247630383291975370174010401194664846460974048004138913037525841670875424075178794120145096184249993754433762783120686196172674693730292877583005728463687456823738457210801968365410278647709552989042927439471202434320510875027191642664434874342595137576245093407088596207852861730407917334730548341708637509268575987737371701767993024890065525579316116443864527386799165618369812587347173031794719183905906784288103503787141075326633772538026017728544029829809805664721881030895803566393539690324173994835970688144402902983614890292167803836063208869859030398390195552094341019192598307218460124694495695163296860459707589485593468450259220135246983606633951370680832451959586931510675862985029284054273323911155671258941409992507763509790818793964418562058776669598994827045050417612031985100470363328731102544321459523888464572833755613160984551286789024497364157466035717144295581625496434394830172786875113369731212991119606823891005265720441395771436500632712406186315815655059054073564385452758798649439345570875413958646152247403726371342939717791711761582177064939997383595389895093622784688554369363934940724786445345662015836939934039854053574095505554538672369934242357966480192247360921824490245373558844332138077918286674676442493756784489859744160282203066243239734591788166906951186570530056200483385358846692669687710587172806633261292754847408840633839425457961747484885923729248775831513082135199228155439863597468590408070166452611021593383736967009797788261486249123131037713594791842607863029085497065193229526021082232065393373320461126961390041865851636641591803419589672059833498813950668626595441273541962242750850314619722617809100925225698168177098110964807231097099986696403813923765579100451953317638535151843207173058981665032931530535668423723478618925141786221352622597367663573930212351867703668955558311360424898680699337728143030447113891519283671512420442336951586056487674523494194123360733886744409037906927087420464904450785468196429703991236802252875040704612076478851122554234886951964013235592206809387884265520828106408211800141421822961824699885710362862021675089287347280861957510049218376508274941118238261353270215386298916706538460739842008427068853745642474663339864629325572229766800090475037205299901470834401227374865757791426455654727716063157469362926200446994268947026977978849796140474452811168077622788726926891409881924274836965958053155816235565347542347685225764941996319215302848938633262261062177173682031749384517663225078128402427407853410667982467632858969886003987874377846207841866683154710353569856214753656950164188567944784610222195393017709351699441102648409026389743401423842375635899469050004696211324750022581859560297847098059506711562130588503275089767917399632501770010730924104680011301708063769256074091895347603067086239449660630943587944136955599283327315048088663105575197576453337444854885618979410573344771509456250876734740137930656194187375748403252461962860796012699280931537406824241015796814958315402405928980525467432291449553474088619293309727616397570480204069610942132662462252616652869785884936297094763609145810486532559491058711407338635313034516889125946890038094331735558356795226432769128185802970807921265562040882768840359331194604911004252065866831108363321481020926994708257230167682060059765034676799496918730789542461497872498995462670564388382384764929700377636386261649411374438536493207876246764925898510660725979731700596418998709941507344085518203743348401170481255896345302607973001856871084677783086309142558656788490444972427930743849421902533388847755878590172515931388989652092992500400113403329573838255509936595883656799068242455254824164688696755982801636279467263162271387014834615352805054695124144394912898059983354620292778327183901885614639708394962139661894322004786324521787446138665043517356439061771904690841752942003257603201987466291993970143484553806069705615236875988091171701020790686095194298132609902064973702666290245809004543737733953566710906708588329859115551520939306617601980347195306593487763463427854492123775767866206860731694706149615483815806261709643139465493887344282351888549409513666697228518725098025172969082898615669465221504493308098214761503409572078178209976792673856184627199582347395741848116330469180631861594522145037160419058051891174562973168923177471486602476083394114326074480507739551507352743371948070434513415819489892930073775630543753568535971929391068465221039212712947531374615054420743833559518615822980867660518118097624620259289290013629938020797514442305741530253891752968470397894148555565653599589227066177541878220225081123818025145201875568262982612682667313868567303646327207522517368290298205018240258892114084933690283262615055118402506061657676804911327791603958357206913597905125501363640359354144192122171343501251076109562963405152889685711871042001395906415705964679770370954662200076980655171518335077634222032696212552082946042053105533703987356348769656297480024754854356026580382683542625486472035118942502430666227371063323592743176833811228377912098562329975731769935467508954541324768786435285551486338087301195229878798021501995389473157476600857021191137272885871381477659420543247789195559229346256194347411425753510477696286654981402855376682911965717386673017124185434900717636816571072040742005747767463540081072900332884813753695020071933045910411739187527429934491878189974846218755430652306996862778513680544432207995444906945902604819340312286817806787768032778838133592907815874337881803212902829728488102561697282194469401194985975581741285603502104125939304232818298444669456607429950362774511738630464533349919260693291058527267302986736381235602774142628171445102278106728578335239123171223845717272000215431899426288993616644731175711624277138798786084366331841912378825435558871435067770474072350375923490297331651953664810559184494672164186779442855761440525105725937060112064943934583063577252253662491812515269416894758459053401601484190465195925018726619805658106223962334393376112721427036665382177913626356916118462423011590926101767960828122597359214600149324255421276088657647819225603171859434722350813967464631744997993972172885496171787834670459451976259787556370352077972669548114426052341442816978626977270209667743373537785498402519716370485103061460285422847831113649971356588325908372687852613221039563375090539582346465604125176903046701114776749893179331444370627985526766047787555145347692328093820398123741856194859168645325388236860162966149982359801385097146258290862143535764470878912662076484796498046040341238696155215427652711355658114591496911293978069261321619980739466828957051872251359020933009146295370568375229827065071798454907658991894240149949556130935035864268419802230314620317942002373746597875995179575494001591250293785001537906134730794769652586095483865679599717724884438546415740602943579877688895233730071270492906916954067295433411834190081764329069837460955784858461613436641312638225653306992716449478251583373015947683636510645769687242678694981052596838660024585310548580623687266072696464785489865618162374671872934778412149271432708294436388765700734966007651125416021542361742003740419713999538307342227565087804687649151348561892275690632282811625121463269409499276225718000139567434818431366844280107286076619706880708963550149017580237401639703288317147626731999549036433093644698999321866559508956303319001009754013563588176405658458254160647979335834622121035938222020434957584154617782688505240496215457857641413659093835239313386864473657468436667723438965441881100552961876925699010175628134097107195595925544493514390712517892425960847871283417646497117795529903461325630203484548447415996091150668541563596137909843384501282507068123691189130588270985212862179523493510616068714708277406449824759903939243542699018073800557945587615903521189991499015552593546886742328200161071345556340143424197184538657823572934402368898440157313799628045377887334931618287209349510369732185340739409749472171170655026189950243678326423848500446716216317328051727283697183334000726691824973581479096285841317248793722592970964946773313198085942891948527217256461780999728712193373863670916194198476188257869192077039683611540277744723784834055965279920727177825346570303943274360246995606938290464727510407093728891164407703863679539923999009141553737918716197115210632221108798794046078517107651777326149047154870342337276130744941679069177674641147015356883745619040504540681503725211975795864787619138745439722189884496690131064044245443707198725538999767350933262043864911341795179382110103221790384657651729640011243851680929342160233886592488598621326773826752044188022859345705169337100693773813833203490542266376475674602634641373465215243956363491927921366415662415147585476421150862177406207946356720378084642328702340793710049688481630487800791368287261956265504726802652382199237631247131863611168726503492126681922860048082850550887113105196452419088467874641198948865888407421048839233879121217421590338820429139869112790760768223667438353893237715614217228237783039322353216202307717872022008794361634859353970932776535454156358319220073334278926625359529261874354741773938278244434158531318283205131657022391032113831273311942915919371543031426965841194498310484105654872890284195122817680752541129628725724414491943727761380826490886255555569874765926584752376215557844921476088123031083891409795479492994393067194235049037708902066750358753421062614540581391336488720523233290922665439092537278615907917107243687277093998160463414490558118649635661556941101505929613919692127207031442655553617081538158795762305531164222091931267747736463865517930877648780263784533205242398718369511286391061748981473500438956047146630805338419889792455789402430333273076491606002592487478682772728091133385869752494982935216297898816953150429080251053921103311978129884897869636561603656227103389204603839450836086157083374924818768582062102354533811981850852368692839839869179879759554393142624461220332884524754645807714805527321839856025520849285617263746566606589389048899755507005889488805965369569054496597636631809868791843153835003125840556214019445210665077385496005750884971781753164054698456952246662179577501928587733590438234016981926634805450718099653043764785464019896982299731055214368626770798474783007010542460250048056212607901911086512379832823583728110443510582274266315526614635887860695155211042541701247412812820433972795546695952171765279301785672478875211798911392910056912237031245277853931377140670758090437513405833493651464096039235626818686626747645009914346387898132031783896424308729934704365910220551259637188389387311869405617903043919524261016618333140359635873421762817429010250824231530150779525697327097000424549616369474506939873993413811138015663475803413076486897975740288677117687795639634396352320858777741032732410057704593256391113702476012420578711230891214959050828006115058977592848912061399625703636720576759571788261579027280972283798303918958273506516361089928754485510390519722067630119573325140910520197658734000702112629169019794275999964395772935095392999678476077604181909271600228928348791954198280168108186625868166374021533558015926180201939277789395580341392064133965782083340133397291234283421117028941302379053372216016129507839264758535701749890778533912360718487147774272420103442128407172431325060766454808119393746064352133534062458885055127184583298052561172763468304160812229230549412187129660670947928214225365065755399234672987368768546630201857646888414085500747047311020472608729409885466555092978613408080179346111653300634089529296599753176643243981744610643893698351543905680270023031468751470902820719918459921250287580177783554776984818947838648884712531937353651760945465116519811935253824218998735267537201612207087150616167742515984420779467101045140040413243970312280236319656331273006635590176632252194096206036698454482953657325945061247785960350102346823382423795363329397657081677904214844183136509014232785342599541447065522116471666076587692227558967576800510749745789113712999599745795991707714581280062172369784431441945417163843901605898655250307525353675423705266161864493929017700520865689781372728446028001630668025380944968812427275088030724167222279695152338483925630855840539470102731915600451240952372915341839690869563887277983190275901903924736965536847500362926570531490886693864167737112982383939419185129831232899465887624308151269027739878192954179578265510169209087648072584591483594725775776071852847549053081616353697025499783290209609674842912498258536277054641991974502692392267482991703271258366370041093121923949117900325561074854096287480240011523637898809324946075068123931500486098159907223763739574503337176641567484558742530789002731177493455173907700071623952907344799001245390743594575355504355767282640342761187120908520277337281140744987189360078923856631034455597130423066386993836522048341406596211654291052880407115534909297601412478295572364377199621106543181831445796844651586089829377126738622065004571011443312324178096134813602053676439591167157432296558885341614403244189315956695793712890321868169182714560283005059946250706680751408292906819670514277705199615368917846841178519342836180537944954892735406747293560126911871749085773984613826286079320917935080073847733351166499201753460338984397015830033599442641467864211687535296118004707137752022527615627537657729003105756537011515323613677380016054677047531674821523735775302179614459227712957978422678730306632647263108645163818623573943627704163790675746334544605056120901418850341226070805697476299683161931895168334404293936371173768287927850564437604191763763046108926221195551268356464574340413944575367730761677763169305950083988136023831777997221152434715152995801406235222498294624764747362135484516461916484192572338804704255689088325052363980520542534081864361107443955194122539637236231494528418443297094177150971465169271139195823209711256823403611889730924839399664348345221627313739010658872451163639232572496297863108498334433643127314416362833740164646522468096101393626385358660307791410597059711030804646580555022644580302388208784563293701366208225053920130234234294251831402509932771290519828479860380945584026480294327419651596339373582439782651265233127867657090171401175974864753780033246714675626173563195713955561132571441179672515511860036472147041040725733460577803342703905781554641527501781797835489329087104766503130101043909784311049762764160280954231814710459021507566092312834707278632553724716720755106142845580470531098203134638633042086158302933597105464851094290453215064565652722791265826865858534344287925394574304215642277381034861594375033873295610721491338547066998988315308024306883967307285468705497811611794320161172420631352635447068530364930112670211095251982115593150719027726798912054471285890557647292848828529650555557980488829287432862994631125695997955907787327345566164220536758325264318491055569148122592022451199518341217460516667527589113844583843240541929891650283773944203653719861435738175906765240890741994444268610456143540540514155558009670780650252031713756482578463089735150148684323901872168967847604596961137614185290996858621104697863914032257194139699765066075812314895848992322769051293414189606810172796265696435690727279042441335909030164492574659839769009637513276999444250175654187638112867732673705422231091442721383685097838456637585366959459055143661686881286842841418407278961089854935031480496684438498251474600984103734638089050208474640886404636866839960053020203443567892722079713229366257656637394779313423034281011406274800282003212549671321047231246982682611733773683562141254040153173911990691183361986127849699831521016926939450229313772847424622414268858940923205948480749970853867184920809462590011508817924724680847250093347140429955260129412651627553832490630662656628293125031634923314759021056361153863797927880464566808505789975179285196633666952562139746056832749142547337436158220760169923818301850670642997402229497825573586470775534366126510904010222980528536496866287871962972780610978180220389564280280226825871218969315652290318119262695526699954281194170036364547126062686293409663783363399841299095072037789860953317596186342151138628107026582806911037276927704838678775520992681929204755497088287078586916145648238837482217167606882681083285999069666249579457452121163651098366809068666614658672861103723011486828050910698390925249815947764813839988423722812696509648837912771667177896754732512825283673926627850299177195343536402567709922672840787428126962020728394130532663542300748557100538940770258214386880067687898760163442181284964142071521130880489163612676108048078796932088869450927591133472227236754252050038792860573580713460141584535059024869164313563720866668843883794794341629656454872996330398684501828477295164262954807412317643436996456260635226461699588650653099583600877909462030597768243724552853475023902647988053196457656434846669381193411262626039817806543951452191227098923618142526457435533626240637891608327848726413446669126153589808067478037793664304310035082531377417302005471675688938780192516571926163023223641017365280099460468833607665781960298097007946164213501138454261513696215712354574319756430361482640294977713038532707733774381827014265911023112441370862788721165003342843620674129742362961410063026859563141597805004155469661047339841731597877633659856875342934506006532682277962541168419692181690514302397977968110064426912406907306131753126225578215861323973337014501766833961758256442342011387159642717338525580612197943804049339742483055130127789706381657224050726879316596652654989270864726363983241793169340629586762149219059992961418563458973499571012103180605341114947642006400119546385036119949481245183024081880661221143621180990299954151268388985558743374999939231693357652535635382448662167937642867090526767069384200340400600001664553064106904797556013770593392807080656412250995690210274009224238661202185757409361780696263853151063135899179455379520403608197996263668627510401861316928507688506250321291960225083647844985425873465073139935425739539183496742941038897230484533595006497494330195670409913119503131892170187508515207636725035539379997722916562397741731817669934121858386101730155240896164983370872876764949686921567589893300283722622979402906876464541384595555905344070258707955507974949613824990263820451834299216088939575568859367204044382525908361592704104297547446454710685798404872846957766766488966929236989290875462775625936210594998956235718411103094558686786913978521397542284908894488942388143416972028769678518597897676486890244062119792459316426313057335106252243467649953448671757720755532358846618158231850821965838182738383888656913046873404774344002321143033323015789235355616665232965780262204283512341675774090730183812657162843014490021026659592040589037443022637555846199183850587864012545319978347109655799132133544759052295071923399684681412017875520153087089517494821306138436833637281910624459593414164167057536010575013060662160297961532968134031581080656116285128951433103232016791271788013717973924584293449146369131460109534583462357725204788099957544083026452738248853207529784500652427501529260710306205377165304230055227881438836569100985217204857665166990572010318017573327975233299579766898093224055669123664072959400012049643277432525622079352985558255289773392110592017288369087936712551668802538331778741771048347788650377599903288085361898331969620439256320007234685141728651688677072472764286356582058968651900138090938796660278787886669683902561420585070806218424056059380197885398974649400793099553544871395871682992742241302069991090127202963952460305743202998474829629581199905540121334549785456999357001555186160718605007849075823834210027970585230997692324663542126062292367543107363353072337575417325832841600238309419701342275122820460964794367987710712160908055195390950487823758857311053505082832023785115924094074189262787856690080096092334497155882920139470420653204428047889340698767857669595261753614222725341593792158903354915710177115900767915395703147504317160411112570491665348367131637568209733803388066760185101077398209449220708814671296089596538186594576055501300240163985165681432998608603092446961835668629629228680252588200735600409094423881569982797323576798596419288767533621707723742837690532727869540122741142174871223228878711045841781315878636854026209078387553519104567436773763800250405847840606905407958266656436197423106770294307803526707693834311224071627279379338366762737295302341988437764593702172403229465747137146256536660107882098429266446741238164573664690494390936678534471684552782005234133773200499688102201377638462638662619839467991113855125155422318710024128680450136150323367321926043786477169140786907879467462125242087981161365511808977364903815049436657296112677766913374366289446274617359716107133289187277285656544993242026271508364840249993498258445785071184613814616580886418517339655679414183027736431026507326986054691070773489966617822583080841936516643787091759959835914313163650652335091170128914757903543082183609032716002871001584793879744322444739167788192449576894896552935967900166862608928406988471158341986892567887321649436617796700267386734679556229313348108037187063563367089083269587702184109532217196192251807277245788076942336431469022358074484190745339115854657114929908958058108940980505342865423242842516303559339362328278967648710229361619737272972489903952685102704019385129804513367382337396300288879420018192623574795853298290188722431247292411955972555998054155521600421967365619147545770086689551452495040763885061023295965583286406142239264600046543198042466679464044487209132158780449268351012179911033645671353628648066027324745091220029499253496055320497742645510832361012462084614395216199015752292058010417812915405753638105531711622149522241503848496864842990248364804545323780656364253840712057501262312699465949425661770770121174872999674041148646823576883106843283181921987348197614248358121310879138266079071477211282267708851042726848120322839168522535981984428523295180913381826054147399752513528336399066436955377280504347134010054236049431535637573345431034779227912392318392334993216498755670505175000001983470591608358655823166590617477336853495652734019346576464381139123217830743578247441588645056002218029715151544570119390925327905445266436581786040439065690701139762742655673726762600479839953568129947056695916879282916726083407843676675956383347614227215610966968261654156583316396173926577362789414348405163830582726013445034261794433705999838681969619536267223907552868300975377838820331713362852349022681133814654305947727968043625913847412695978406529323312090926369429981414976217818232998717401068997443558180616957320685065728307781489760817014086405373269626664748263330414474184586158933026223470691396035476355850722053044269669331990495639597316080456587163460679128256262485519756201079992137596467352542761919300079599577436709640598213943515280860966198992811173375327334279355135905318805873772432381827562055756073691758496897905858824174625694424741741172038071247383431852993970509751483726693813934129265399125321190260973927666762091872608704810046231277359347225337308599772426497768396168471643448530172186045252176496375894996393854252351751170685720252177756663509505784426077638989214728667800416166341897696049930097173327383722527579721448418104023678504102470017739112644057621577187407990266155661956563096712903546586787229594485449603242806448242529602465784359834025462687459876133780437976179921572312552387163886085079725465468130631229823296344070759188390234907768134859991165077793060594462178674008741038200685349992906791065331360327514395662936378660166889471738367048255869056580874647929819609033205679898902823141769454346160286146602482774666603908852599875637027041924713828695801176009132655991991810570947069468443478955923476814757286864075391417177928078634810895932657343074411090392635662424629550374219108706700615570137825570935294515623979045663236055985391292456980891934449003254956582775013214697442160511293609063508152886433226208309726357190799389578277836278983477017246103925387295080852379580865728455075872168165662501589420527662907373119963395188064796656601458709734896653056979823399160714429967756208466353732898334238291865719197447516272330292565938269165158900074692756150236299589513997270257298549377493356148346682588479754772026762778245431061673119140173085589467145069087161749264297910662731986260878403806697791269255764574675625409097725676780966475502567630863935993549328975544134374137572597736572377286773686236269805785371971179476919281092831212428558867501274463817668412269695275326377133305644182714710874908096328253310935288368408404531279155295732819622090537715397132258993069898028126416273814304087488154206813456570182214295101948299621835298687882703727342256741131347385127830228245257149636759913811979306688556575610896221028316351511189465367285317263328591509353336985854787286180177197535381311040978688998518847131986324262204328428633635308995592851279489543111289221940204858760471100049276599807059578245718477877744079356917382282661960359639326038632933034621579826896914965945075632500323354475502535064410863410947564337395064186321157783634298884876146786743330098217923658214282874622011072090395581147081263932881495472208406048679880874615286588493409232343416715276825448609392648156421617740041490704337653851694224446035579455773166204778153755871929655278984304700916586148786584826122991257041322858942840622196827651312608055153113226700395308399993207123866338386689460007341829498347694989418219343912527074811694736553720406834833413940138900117093341032280940809921228826523963057144245040718277169178914707346821120817948346239326251613209961804589901216069470118876839653463799671877196861669998386664845883008097431895397300878301919262439027834430531453002351935720073253869405277415885469491885489425204993412066460349415774826930924776638721895367294702767647143898496060611296388700584562149410584016391504291144576162580224220582740616222800812033298857309500937638902140348139146117502776842187371088504699254856048937625024660247626727300434866260084171550213080739537591228772628004096591392206662960425669818795793361842006078807871930012809802642676604121604335916873881952133489545684183535074512076324952819098780934560260169171929225105558545520040413619069703929165058879648030198806746551903455956516032727847498816385277901881035041893362596904762642488189256630739662272216148278353673899350782917931455804311299726400002341722220525823225661455133225254326479481470115866787645510113490359181292427346127574957403128138773961459581415300621132117328180344716008444124005562798424555271713572592324822246088106756396453325201388850554570612651306831874631867494811047605185576720886950044235347922882156174778147777775670077951145104669865481210862354104223995063103150044416887261478311381249970452698961673862025513562482078907383704473527774664724969875324252862091675759056056362801656469138192528344581408837618863046291221110343928060242845126906471434950906261089336501260006054343467612210255343333093671339964988914665142228683398724716345556402782443505786438357359460619499958408573269161166105443347697834763754724222523719558362504358244705936702853138263174828954459032543199525085252672232131451402327329855784651162184134277234102748036313891057905465297054864218501033402105334599999502975511940027156199680507819917548449814840063762618108797552428909466903336888652567979532038794459925295969640000119817770825793465708197579861513695884610474606623901266238062838646388021809696356783248536557684311014184454131671728906369453524912033537392031441652127855026052056446734670003890619223390110257020243697717383532421317735569136680622509817530640264811275058288926224646008154376261101425190273630384244114013821840852014698113210204731454386287852730698719209346362058896297980599255338032325042458209156229615328895174149507345365825312893993023559317985976929696816298285570494354126248974087894348418116992271820860455861471098915688610710552212921327006237252738282641461250708836222905419757713753614628264983642134855777881988103519629270153515669901726302473273147253453059388512118949892304086415374156691868536939473465720270288165275806143105503349334322339288586446241789767324926745696277198678378639365253566707416161583546608626134639218751488377105367217077783229313825304806897039285544396027130610651090035012033260938095272039684521970572002544899798710220915084838674454646324722145429055034519453955593184669763357805947993488785149503836279848347998813342356399659566879086205540245183149360478799087418142984143253339056517367174684118434439250716580579974540756878081606674557084039137879559175943203846331351418752644772226915794199345905473511229494971589057636251772463236584501858255853811688567169783638341715317256772137816972976014075167417306103122427194697715408313819383633012494820983779980146836618215129105539215146433575540544060694569793781131247872475311066114002402388668670690544271374560658400645881633120395836226659645712062017145179018244462783044457558117688661461563835543056961949404856687989811587601504028842735298860646763078501840243732872224950218644816002192341404869845184836821584426248868765831778264232693534372374261213956951899911383235240580752430943036714475702095446306481529148445001202299129597770820287341275029339199672923006871480874646570022220392455295870884550652679781824412245661354121969189927173288904765695181700556456401346227372824721148074856346525127343820212174981104320011859243367762870469199505440631311894759036444831955014837580283266357167768706860291034090034481288514903140611026540978144023671385794530922219396195220774726855372201388223794997882700402620003013982625221676101427233954620337567881977475013258421565793062032650884601464946345305932727681398783384842662073190487554970351386818096215914199831305823953484416713565059730528297674035312547482944225845284632546278544432141759181475490988708715003881929890520565991396777064984811599311576025039291326603664383639453923141154923594101921878809056246890276276289021564406510635516257897596106489857082597043621717486938250104546912486497708001581546036564309668974884643238793649581221828940942252926517523929747160571467735365906682114062296229454979686992498944956321218872782832975201558520393563451137739606306237060023025930910800993686689473111251184833240464543026066045063592589403381996621166961590139020196179967335232463256704331986313519066506822228869218793532418303024749473532931099066114960801056253687811811139752119363057778389217735787400987533287137434246406014376785509004354791709401170565145082345128037477765953608615160987462612759157893935566674692110398878669249984845884109389664805087970776100872128233974190309359360231447263211073702959199701660464046905336269170198391058339831885603330993506241008373729774127984385531150886776901990062614080684245949230161360862847077303608096017681482815308275236329949977175297414846316981241530136966640541004072571709596853368192691763855695420303655026106564111598219777818457513824388264249515637865455911693963430702215683052480016069938789593610615282233887532774825437278303643609507640375233619421632565592046013998873878978905611851928366792964652210099783662688595277502437756618842729676267370236025601095998919298446237999272036021390161732861375002819588302551703835960384977696953516045682229472434479190493273313747939254301795013333341387756720390840383125488651450516244968462246020616927254968313830694036632064556489050470843506107940857290206128466946975567875570296929688248073465698122208934539039451884171204427542182744334628246689612679288174563609924371309538215424399961816535261726855338369089644399391931370270982398162188671593989372385753781149129529422524259385593281226668173478054179594236216372293338193842833265245837701461026865218451414726200938285986528542792568704757930143892390034699225933530106124017883127996266401438511410866469550550967453899555952948630238207236377000599474848797374059915413407252806132617823115778056193302501850399034613535318313386782591951758792626117342882486813158194541235940751159498364608876158340534369394702695136739758114573866059745225933382763169067462308807025290647088968693443254901618759080750623807889065020015163614703423585296187736808547976528670014226843636505537661502124711302624159341119448293854043842078376796863188079080109114526447342354152289567150299549702411258721168511868120790291952399382319507572244147725897027581456432448630368604375062374064702131980185502221717534493479844348081511078370585538633648221560405145206528327305888030180141351981167321204436117606423868904053798143188005503319223675937920742041764270275274472820342401966421831155488238680425140559381906374320020796843367962470926225888522553475017323572365752886760604748441308831435114622412862610997257027323477647076627051388215069187746790120000150042415126054401416755942818229405976786105821035792754517066697182605982483760112087246389368914160519808077639236913913452575524187904498320308250075833302691645305962714787307246509272149011871771335315811423621232977063632838410952603719283703862309584332947950557528245640631010248001387782612603294627048083341996852801237308387733979904855791378612547044329525666240483745029593307591969387399924354960988297291247441871965786565874128279624945538263643371575061980369429102460704905515662948108129851680910907431071817344152179999959261391462259198196697349305700380193994038036046990491729888256205698304784158068835002055217436976290651707967499464190521535514742190061864358356444587546198152650090357239999231145491310862802159294595288208374173639593744990053501715776384279144759767080987657784584045299050409083759033567325860113673787956915543910149939938678871297708216351852511254800141742280924610028222341677444993799535286670762496130701809059042842421794395553392132165576944142527935670001142535254180305155151293808115352651537354240616853325099843947138679117795302880825982757991735208880836115399928520116242430670560641577427149583347964091506773500650503957031557607642898703478613810074384887587665105702390094959930238479361985429019362760464463934035753833312608519122849845818615237519289849226366344959079905682908861598140608402596226364251640135263759444652156206555442145302123217680779895146543288965098484640568372042593854570587416323436010021969963030183794782843417893877344665985926397887299496551767657865818694211469950666323295721025408197362449406018181676352913028563828724226186874347827476450208398415817388071831939240733991121075850007277337908227106288404371186557115753627279623296142402049028660384636799057015237071546951683721331455751422815145580214159925748910317757529119673322128497246336724163119932621287238847761829805773166742919259035634125407996459714014801224992256792363038094416979233280363146041252471622662949118315413688611688320764368901645763204916935262573482247329518743789941609532499452344040507864519098229230406287861910566368886155107869574876793334778596403649049528812906135623472524633195385687502350021445309624549647188114175525173945539039995801599727465561289364526614067380838805049155813302968562006509312519098711822121374688661632145987197769121938468753229459292779754996784644038412323587670291334965509704599827186558033141629901449696180877294625126012963795081939910924403524330701976955151071992996460978334160579912128252793335353069144623271662683412841960907021421515237528707863141496361620965434956421283891338815231218762672810345782301206372626927301090388756913011599298858270702067518730656977331007452543198788923198559146708054390309360673349852900927209462639291209102257057477944983427760367173240014584118233789798589888992986496127715428633093470231992094169226502247101817694041370925329872312943359572025787493493998775088491755425418164536212573560930947580344475997898385769106080075749441766629506967676771579048441160741379217000714444311375843944787492546509827369706543113604477024551216278504046914979413455448104097326051271340594843017474504031199585162815583528496796432483113201999360931292844649384515223483786616200506177946723506897603134678268438390988963891686164330446015024870150811616645954334436847351330180773071307642195135775724324287447662838544624252793063985662391387964363668692810683716100215901485521945577350815874577294633330960069797799262921683076564730024618103770852950765652388151556747431367264701871581496934848865260961749905638681035492153512312093104175418353234450893517184857167134495078549113677312232675588077281875289328197509255106043914551478641747450051585221920690149596597325600238887082415865254886457472487620785577892065595304767959811260146452372436792134260109489331661904278919230444525738854604390291654812972026419517148928242587996879767359425207721727575970567494879122394818327578690565230487360203748159980939053829620266185268134697710795306660039683628042261946257050049230025335181019257109013744443857533324834275338640492245786446488501193179297527630676839939075601283878833405740211118025619458667684145077226956424989862039529767640234625616431958490406206412359161310204835417192340211795188154694131944172027698695425996811172542496573066630159321183510074660230527753046540741426791240637015089937812853442623266083190986325498583746164899874507038150708929800724865940937946251233006526957819833070011121675585943841098558596376338499521424897738891248756304574333963436505325426151975075100537040276478833995156928827165526360532439890793968373360050596483367061262698453618871717247266652589650930013759400029181965316781671701796316298098201385961066098150035123665950405911689430541512088403230164274216535270565216960590970589008772561352495636639881840245398846154224767452888986612525441243124200941335319964041093298340545006553973129713984957004307214437787390003001104145209867747741272539389512582603324186690943737925652883989407453507458226423141403429181142260380715434938772632576034667824266651460786907156263118584619752452530641372531436778263262944076331319223150488822149793308372803578357609628864740698359940428838476248673115061869758714293047684396594103044305530413237875070671862121248681329207469521922810233282700600212026317352907348914989487157512240414236041497802054179012974495194872610454330011938136259856965950325205285923822590707700168022705812662403366396745772267672759440845970477944734797156794953551015134325222093078734045057679706683698246473709203499447983694277921623508508411954759433469542656495557814503280282455736764469444907211876008562084802146239356466763334351181263831092823896128828926043999079908364892252375665855560715986198119490166553954772807696033495183865611906122670999170929164787351688987933931268708516620056220153255450222001943165763129956542726143493564833722465872632975161420160132760015578094988375285854024361939051578222094913187795721400693434610505485025180085002284263975078757811246323791679525985364914709745775098357195049680867326933071691618708153367963386173636445534291964739431178377705976741682734891207764698107847906256211075055438049964392002493798524693795471218969971021288578183576741110214785398415302403297500823494673737610850355244479565779197241642011448234591289272941961427285662919382417917013821573094092286975710770952986237545676073438566691424632409041775269682748982162052253829489094885639524850725838481985671109180490285235062501226810480433422432358020387246013213106262730647248284728927756762399316542848627455145140041494085250791024636298041430874979018420336863318111092176026900584721526798971182617302586655343506083893106067366460810321016214830882511975387894766316818676138961301984682707792066240212790941867633455592969504997310261912877310182016452143726663101363130977514297480595345356756122723607855277803406932035665548062242556196460895675278285213230831686686033851164275838921628382935118842342380839002802123981255464127516067981470291709957621898637837060843895746578553234872290396440230734235917331435055944544918588153616097970535012665544381808718152306159267348966026144668015143183146237897727269090621640305965403987461841747598177072446266645541579110156563509581314490762242465022090039902977074779015367398658387250945582583165321513032975241066866193203549466154628876838433743636274337153380233678528798711560622233346727171309286623170551699402614994411760946070152079256123684682302530155976663854885590757804905800751327452092587782593709999973044967912892476602018193299606240172289173321939422232877704885134891565856093920919550658237084208546389461247330477134276688156946297626751078757628931590343534436739553492451209579690691371359831566248083265911017839525690632480511146186067222653377280750924763150883434039703280681118528819383738109545129655346773312932168463662849748778020107455193468964269648819136774188413957406334820328654899290370760021022617670772170784568133480098728039588670554602344950128135693691023936579808940194980249765526596366877162495089150846996076328032410630553495213639343742811175463979550822649887760119408180692842288010802922820192741449327689028609960809010937502493552205796724510906281105442451698786278011524173691586477810763135852104491853733933540965534411864394166575573063731810920355281771188991217448994065778247490180263143287060803299546650944175623171301195855159650989078129282376319320746835605936573708722378874167528595697849098745477292567150457502624880488371761981182584473779382494396456034418500094345077393154780271778305460581602420050829336831920982481444352959275815760563969115788590351783689774050832931591209690778977190188632581286339942331123002560249076025097483980445967081672577988538956379570257403779755180900072354078591962499328480398725009492703611437390018275949022974336427911143794544511487307714458587539068567819703379369459703613046935254574020345930296385666196325824010401294447525291163238252244130033718637129544523161697115269603184714591485763128456900097067119603302443975401218589241256431330229134697745969011398692703834132051580860964873777424591657042227503841686361478206098677414993981154871504708095931334251842663177635801808646876357413677474554447367080341794214920675575997934702750963271663962806208482197377066174995456533224393386389096300902348963638943924664650092351192488013883029868862949065414758914525820601718740688369199406584160182422302981779971811377044105182692325095227818808937584186275886144877674974447604565719991115235967327281404556634776635863155767198331187047059804955242837833432982441429386183286255828097736004851977356990267733233350462010636768770959950605501214439204218090660443456406763802369404988216995097061272981070285850244170700031313154675354748008427573884726031968098845861251567050495379018097298302976608514097303282842866480963490200261310814107040427780405349313318386342243144931246290925506543283771827685202252540178377093805441957017869099898603071475012087754979973453497149932637565331123378967522578828705701962339126547323334130787209648923385568861317674374747805698582729194465300913251988488354829824660477028268670239628089568146944624146606313644237041277699489396085823169022889091054803765942795505131724822578166476112277873201553697701526485125655008454110877861897521695648331742346588643745105756603423793650086250298394985151540400842029269868758187746928491256467597030125458545101722804580173747076781649666165271897783751773857725315373155343109106952634898781492172357755416503189564091718970717362478515272373015860865756744966520810792939333930490688087173440368992498888480493566789424426401606212387165004649110580302674920620459553815221185653307399793239753222439637245019481363077790850824884086597132249346549008863613234279799146079413375847722375772630405063972459687980717151675116924461722864421001714989475556501418106503236960339500300892057516524300460993796187978697858898316633892940582859481626671886015615282084269091140974474505712848266415466349673160730791515904407790509627713889198638299512020232822185063884733705997337374530635235711187751785225311610552368507345920789811707813282691004194894664375179401889721688958658497859569282091750786498947627885752194012371304727303373208065005355960764192529349730512971363761552171132267021223479098658865138361108935820987508958098941245660688773425048515364100016192338470754005873393073758977782421074088720997211261593321465567213072196138020068049901633636275229858854833103156219086672796554902012693593607454543490923989639762874619766109264324561022274122235665078091595073926349533560321472069995056739750815169226184056743459366946972848025821818145627067686254960863945739995419140476494190497931266825473015079062161633914655534111728140730230024992287510256214095870617647167091117426085967536370092586532798317736513707086762700055310574334417676652928327724659408058998930443216129393213292653387142449834620759084522349783288999471286745697686791716675027577272077706580325522348785429548383433509555671107932606493257825148285370667045928630778343251544272708564601278327812847805155089918767941506973786972631132915763439595697252141051750377071113008351799008022484377962972632663711913922110638448587524368140445986086241921779531143670220941124239336821118611633792081228060194194541706947955344280965371732950684396577285837472226998023550829447293801830078871667357605749317111243989402169135075064508439212152292029074604999195385206517582789067732141672873481497511390477743947335936778328471731682622231639626024539581045256660842365679769554265444262585062330333332888732430978352797590299273285776642404975576683558175585717784985541017827272183839859799826604900540146862261751773901707535124021328465265586021460311962945700612891021016000007199862486990518155248518010927145630294672699678619009609224659261810557261928851955620092857351477366541079357843852130833191635540022599461788992341924224152739772199996256277514857238182665816137821092377584622177563622357670955321505581289019013221591300744990682132032817398553949765593237377349859483685190438255028000870533468801531938349567430826076813399981027188314136481232889465141255806421431874080401633437892392526606233551375905434292063433574562027052116527345620724405436132555952776102596801999562220575797267103638189571889594674202460195536090121374907139619807862178416888652753686643214896180722404669230329578711577245422315264920088116329375253844093672818554788020333665930264713286800832919003325763332314064743556437539512834055874521063365059920165945460861395598987783253369670029947800451396101187482161439337648715465965850628738180316345455643952276106919304185988168394139601759793584007657965455476616096208844610908583327741933583553352500562993226246588745556032624611581920357660029199943168748133855685733268268977577069664850938175988230072869939506847983628479129686590275041136606545706287901222826599253298121139807600575999108139049557832500095837647838914761500070023846035690584309767283346905304729276606251102128517517655338692037385212244054564385904647578023356036619694466355791268224993616103060080793639816093355956861816792021501530970762643104652059149930320926454840223986244016610993679851872721599549660094005531460751493524802122905051537034210490707574912780041314770957816662217846835060088941629666826491735989926391805662217071725938072080772006351087430338334331844783970784818965088907045047842328832244528901060041233683704856215973192499482529504774394463415017194968180565144008772235205797996241204286366913164568061939884775998721005973910820053947819454627435335450641185361414300594510795897446400869615875072065251723612106408910931917800826770512926598064172471451662758298166144920765310477765965281488468915213717675393638262709896753680146455793214483261367932605301295799285922322767845718242963074037434211172169621107180540416477158357124891297738208873521817423850607147569048113342159265811526970002684308937999675234679492999496116046707353065076218861130070114534933875015766254060302619913951945212921791679512439523590300059476198696267281661302189326024426102563737846415168203934148854293982528017091152290940542861109260787102966313321310060344255543603091892035867325766834401697361026529149116484574990935476636952426523652911955476425674026460832164496977333540521537878063701752936839840931138551995373434659612486887216859804403933160106223263581156764119377097572808836564947562563766794895181507048868898117964835284173560864933645184130209054464913418811649772161284197881737152015270452811958283829692918932683224306986497082837912893437379485530846626625719791603875041653872840546250168015350750649136083970878683458823387206836941278788205656089169392216152195470701824854640646168755839939693724865990921745647291153129108564054067346022070531530187513714051569535967022394043493657978752832869426305978810796773734468675517939693928911362976396178526672501345445122561393622512326646191010239466339678568459502710332276472142675364570989936576537208998024840276260581226035690641564370760474686583158578239223677416518502192154677982028665801555512052967243624367408902346915150081348622924160150628679927402598231129858654814919175130799664914707875192091446626968876214062932453882151889172809356986992070654546688511711051180494624936164128714000899168955923464644488756527320248640584332363207126092541198622086165692636408986915349566025136982593140139339087613408177518749714473566182254332486266763981111103698818639930703310018375105708816284583841143216964666077188713053517089997036194116868972369695536069302312834271518989715319707789332707872861434309852565237610730248571888779613810629976859538277475677825140162829249105892304885336130311491977849533477868447329911950699777898303084996634339030395109747478633912865095762007238563228509039189518571314794804895921720329041335237493832609275342046660917625497254741834464343423779220685705353378542469646293329129239921011746421947032894216691743528814736321362553611241409008545123788418148222589874743948732089675183588121997107677365811981483814781109598729070933559140183843992605472947298978089475215109344648201490923208331241227674577451526781693907847500102500392377111873726775669205785253160091423743222002242169208949411611326403324238443626809812359001748093639072608347108463300905974843618671077131120003623315398919312256132823391108739943014252013885925147086962851429847027079900846113795301051329444409508111365894649168487393656148652017729177973312738164033736539134133526657027560395462129832877709368536206627695722347564215445514832890184178091600638236956971494897557756480574169886379212195590687359858473614576121508189265797150817417546711204958744382847329990643577212745232986962594637438268952997438516794461313819967327039072377153279479952900163001273446957550476282435898063030206546124616661033906284503208270885396554019705323146712908022528193710204520222645293650415200021327556973971802941872868527699977615139373059175395384581661849292514013117751519266307490694200612616970396636163907992666331216748520399451593489630661487879469779882766335464546029856648070983619315245145515242165452190364067068005734534307656170282050688991137025584503319493818206642748670263356272006041268002732933092724781976375941075471481327650135278807545236115043857147887410999245597546677805441274779199563734623400471159567783143752819658705998750531313402049342391421041917861081209716322079755220248968614708960065713677772237619420744732929313561665011862983417476144219130339692711567019866949446799989193080146006098467772622852830668416874781799625279448418564550148260037030654585218247842376362154894653397359893132935727825367923029620623126671049154318339775660921526324177681394019908807754831614412314297867526682035941183688787455082121551522521269000445342897191608163715599529114685246627064129399427429207145105446587835196166967904943982936140426482000353389453401892549104394639112526473738302598653921402670498818641329717187890193652594259008139469314161806688478378224851316647458906908384255277613527634451560847724790880145611387386808117189725939641342815783352947959820167053097419164841095024207451889379263124134631215770683130974061217452922915796788955262496912689373292744410769771060633689477231035636916802131127960968682865566956997921537135396702124658690485148749424336770387966278499852967004549371646509798718086399990384587419949578772421364713162651351872871067969576088047599133283431194441488079663353856657418546171564816265440538211625060054208028571120649895925145941918869198645431548747179079195657798542654895918739009137135047289577746836175869627013169208133980276903840461677796824880553449158341289936000242410332371015566444594815571857030609154541307972071534191825472501649856461463679313500507388162619694734945570786136186356189166458429181556792448105591300474894818326640036131818909027449078671487312480793052187582346906520143640934158954509876706645350909324301346137689903384222645521358609535207400712509036581673692389086647331862125809444707257693289365382036018062539581920214613037527605989683057934105190632472964029516625615087101108702089439800520256856169290301099690064647729243331633794927729472046476813441458045701227308308896114206251922065757758230716764708743926042458351174549517345051989944636289558834653226296530725014956861771074535884749861513519114477985964639556615471340548594436360503303027558960946344130983736797463468137204401914052545786140705098131666882258457849614390251253856670461906828060186172066899413915442191256470914927514955081871886075410361564670908585940197435717828754597590706378427666973241137212400301852985367569818032548709823620434544421673501996689944319055855332075658841527608515498940759646159428539075182422221671609177588000383330807915043205805609811049103919816303960826791178170662047722890365523525331450918607445573813887355311127657720634282613365157422672117407097362898273001339872356956845413572565301247249611509352695872419878326473208722465846828440985610637623737755330829525821908608141605597263523045131655006923426579060402248494289618572582484792129504503878642304272359829767305891194207612081211687232966258408725851735822290468566638430187181958257739009283431182033918380170174008023678140205463714727629241520793859968006173049254117320340256812844713383414788832829539135800760327403300641895904788590959940331262662403431815847379934175594526699275032878513677165652247938638118510529335418760189540530778458647373286823882625888556242584033573337960723261787468859579531241498983557244379488770311870840011073312812617318099550642097391780142852010121885079565805170360039061787683781227104811667708181463185815048043027960271929542731965029774518055665821206283145734671524969296484952767643465266999048636134853777198734978140492765120352832751911073330634771658867705736353181436446451719804971405305409651224520116601059933388777093336883296313816694812624607338270963475991685561748679359385424404313342350572935256487174185001756034937954727735521305087241166568284972145675976173716263621468805549943036101593042686212245114465437353790463270427896914841115171565277026744980018950626451580697324421652786383168565426286103455830873961336188772407057200567025481966883874342380035100039956053908296372941388588169881959065274765825800537517219934053036508742905302201504132004162958915530926503534786974072383576449237306864445365179046366019571325533282283528588655848658549870859770120230026726795092992421054501613409855446735978448324369169604627005500727084262567432539234707398174762675800854306461963509310270824394866914159512929965432020262448983021647524848245351364875817013167471230623674012301939336255773821167571299823894628130653314486916333430408500183504749729118954152597986479036907785952134179432779347294280157163270988529118026801030311383956264047630432127606218568055863209148316373795021879636349314395274053051777414254029621222943490487288557962767219846798621070281122982627413721913693094850873179594588712159021371915713785564424073473070276798733959930635154355643583539661949663411797606541706852924506649468287391854279302011858009559982620449612437086273435753131596955589928859983300482657755321919121483837030781309526723339569907878088414240131713643199780622707910141236944622944650667748070292679308088703365651628918071811709989597194552590936527395981485336122093647205371881378994798107591820042587257556222114646187051890349912932516206409596350440318740906372242806372994920792525829596734532820076116167871184054938852389668131085460760209955334155322904518761461216954111887845563707904682700553682495697024451377418264666860539675807019058021212927800076205534433864326220251305925771883242206287531174945845719952537809433347736825451949395419868538792315996373465009794427362390239952838139613630886859736414720461895557320591774810495475958393334192469786194485407405652669570768544556117697905281096740238157867477779624042737458177105176110924198582317606039626034927553670851135650213587011813571448284911696337363614748634628320030657075703828591485209938906314289536389066127548383445601763548195201389499849681095329201943779060479771581275987885486350707275556939710599676609141038916574093221407767104214730476855811901325090248659687542425369756394280911183183226931913022157187638532635059491570026351986530130578600853805074139804064337756310065729080616971519490246890603940153383691844889578445286431242335059921756562920809895612351533553153935685398124356422876906311477415639398141788794914241596524252471908208112385551751612987040543290722348001664930884923682598894745684817966242547608215947540831526749319925112541748964427534238081449678331357517945758925029843691576420149478644998385928094282090241751688450106713845449007524989695578559440830284265887358636173393938211288680803529833329514330302052065465563285748881150383871542976084189573719529464357269016283258325449543617708619877513781047520225199821340981611880216533321943200499905831793221428087604698448587980916028002580850455643941836642263139165545210480865423525665812534182328958688271916753928962134485586815041560324537456672191421948075184054038482850766091913699655337063892886518261978088530467917216042311595759579976686133743768465280027618939940260061669640718320368010865894224398746868928298724928436811107900162530324089370747840063309538225059194807344667633260593164936162010887161733573212402584057434555762946407210672516337188355659798521563828075370407929192501979328159069944055516670295507220926351636282330950467038377117113204726579128212069409637558952149273453189755450465780583662054857953712113560237599915260820957719030815985518102081120170865036048269386725905124581685122251939998507966305244190792369311681494570988669631720563854941054381214375100680419923337994026690551194533908055508712978711077614812960066819558085293498214458666571784237353569750936467446679280096558879760010336481183121155854470514758068022043845131439181159250634433153938390125929993612332082707960249783459681503064463296387344099152063375393055416546429559147071757808098108453692058104329574335750834881667414648147392517294458815191714500725881402663651561876374189615081656647433252440693369570352421888628119315959591475504473886990052693970905949535265417800106248360510715460203246998163601935771260867871271624327430954859916209723919199189086643894804142692815583057892085101601655251062494173954892598981333845099277716085550989377062299176264211038888791618535270412574962004182686323649283081610833226314128195193701447517435520182897334715060468455808321199275392214723486625158323536146217481015213332953210210156328840517243415780355634581964933523509159352912924843754935451113803499882508220559020806374942862945595070293047780071372697922612255531879941098637230659740305608856554188527882294029055849921073173237806685768975076648519050833214058902000572740711218960130518239891603130657388081009617774258170826604020328580992017369373307576448741342235948327045115929053557234200076818694105217769811165958012046047385089211062842384392942493856353684334720698290517500829753345524278705520454956594526086592166528767287048096748804916712466093547686414563840086367093955483544122998424601079638709327814439263408618353181280121997796782497682230756655524208545674813754479371061788711790620970132505446364819226963516115709333648540337824316270569591053547054097691702539769471397251061711172993315923606555654942770739336474973211505677122596679434869793476597977484238272726165607003770914979277442255581027667315179512321794646978362755865849020344917336058628943560305224657671604384415360797877987947535059438973161161637947472432206177558227936139007969040697952010500772417361410096340932692120254141113931896265162594575204320356982145556968410950091972850288251378217138806320178009286431006845964483153908267749463176629585478771782216627327103809770979406803442789771824754174451897976083511279404881852268391118097039678764116862026292028393941727395552906623925997469664138306587965128648853754647268366843632060404707829936643346502952621177605263151489281846189513017078059732517110194514473431845267571952484683878755030990283045257343949741433711697554181070959866845394483972163767204093810877493835818107815975301373724990349645028407069400931035740728811015252133290720911459888383097051302501364055659908576209461686928242959410322504965038519930485170670789542648280268539591715210375656863061556293450176154761971334012756911749205199335222500644973308477098764316498558729093790711011968473394008709732665645609717476706063033255729179348663889828141425450325858269839712388828365527917136082943332662246529917235514508719951749328966130206913128566729319897450250616419396250610025530653789235563365729396938704785777068143819392284887683410560509912847280601620834176857718052576283206630862912319083872846301210052109663090340829333934395472474726191337756636354872809393429549449547773384556946242244155701551591258204602227796744505776345752101183904548240030394699411511855297072008354049571147824955711367138180615263120535546423545750723051833402258526762479814762741261392599534495151450409007157969158939268648245936189212784758598635609703035262868461152446196257287073401410536643281138245132270515642422994596028763365886996286322803143079498449145932102272005271764401296072717958245228851706244315988246877382017534054119534865139042538833258283133102915511921291263049411505959276480961146244135487819381041723985983534814179143758051875975725709478294866425552478358898610509900285182498506458076093399295424976003277775913534634791174187487155089030464964347434702789549908323347169879964570635243519973559277965120553010085431632632018453510904210315825670977939583181603427131466866646833627579987835889326695244237116272226242339668483773567511051419951388093838230421789548281414960233095461567361836553412137735841499670939301900956404026399969702251717823704127649671415379131311482967903418263181145087347001197214410581865384817836829390648659859459586937613282828559963407017220618667692735201449897954352462807705793045527668856876760683410899094185026123792927282041891562005995048626426969745332107462993803217220074804640898110129385020089129241322599410356617023681988258424230464695202384763555562414447899502209081522088489274170843327002958502844439683696405635610010164988207128563647385958789286450094642888333990339439818926516117003899361212062398254376736226726995184446915060834881251142809328988288291302017573575366171706781566676257337494611406851515677651978080137193850663135983624797673561946885432353618690531947535368282171023525756993624131085146667283107540024257055265996031090283609290198710086962624483296727680147726853063852246834358278510923386476773887200034983627839660251031588197974435876496687186997775365674110556703244816858212205092625085577398071214730025650931316304899479622141535834558333685546684958320269784373236226415507534329668777145581613678385297384985252671646003555002641978185615294294821374605218990096735995878174058118504214206808340012933039610089643184418888711074442801759728396327537403226442359316491162941234044037213633952229466725246432842555237902679850491122170167043109813006806357189096470700742613409540272724272660578580528077360305217478414514900821462469315833665005848326976666888653405297253010404733813968437466023369810818169589573799677122635597143294007389675663436886255596087724242713974129898670575150306550944737903312631114970258506019149252283575985803251052221309952955573001836169276989270176580448833979895021741887990187921927978057620426502665231694876003992207628195606976059621199190740965853382363083625382961608516727518264561118208803812642887538181510017879746140970636245708132612662490422785722022565091609433485182588812236030448737781044984591382958639071790255533493145382682562586389042557472634290347846297615686752497631520532879171419470300085385798150265034376547800705292891197069894395444726514545702774929954284051536262084738217929720222568653892807110646799671821180024995844167690416930719548095520610311697514650477247340565976643004190155468904057412257995740966851239682543658359248533572505865582155348524174486818005148154706592017250498206718785578293546163031421163433648378679506059364106971660688503374021744213182166290594894548124845856479155489411610281336798752151154939089521073463942922521087936796454105368419229378155598900115746864384193086672216947497804724486115286668160650495546508121519177529181338892945002147745950272674209107323359436951373701180736984686088133019130878434744566709011997001235555883346836517569976054432544406363831639492151041248690369842030797755909574843488626280837979963856170488097515284140705883453172094140796935667195292229333377724145751363790046888316800946208645266993350644892348658639928928005789973542777148916581271228975605214302536585187888910015415931680746688435609652689649594463105223610488971320002491682397024782211114128874661575864450128771966627759842189928856358920366617517425093035994764716310064985946845324611574568554572288010120024327896468007531941472223971562897391953965699026775224126895245438762782550677143380482193318547395585963854352540905461645797341906066085481062291556502137820914350769799839619629498407168589703202380475349841899172010025275425081852466055884900690524489167970037886750599574658788062172011314947458188636802413558784191042453692365704606489908652281770827440194671985720139696649386730399389091622197365182549723359938385407795233354197080126282309840037598748634305815391239988238797870092976817243522164797035930648082726467812233189530079983029856815126046073120378800399786382541300005509252737489613466628845970202489844450551340381942252207750511062739298737585166055784163555993582121166534270962380013832816617358701423811654516237625041072929201212866729211270726793637697976953859043932659908753447498820332353232877108470539029083078369560790954500747500796161970563979384628623522404533505346974106670694611574961330719229811668829770616785886380019478169622202846638827192256936163324258897539555241973949117755206158439376811456447067598268028927050502030172737881430994975557367898365140466834848639117043517356144563160782062219086185414988950083412298353429869431521300964357930207926188011347226311146125003492596280342226784068962509283682152008074111586886870160946114332624050301616237839629027491706113330750901285649665583596835538414755009352972850542037660016740768465520184694642231882482129911728645318551567936327969974295123483929148815141487692882674026880984937572446252720100096019999746227442911984838253288488446080287197648976800123077283559698250420418490056388112554794219467626480783863667479380664867974782292556620546355520155745758071238477375774030304655972950777361606732088903479581291862093528135334760451112755985501914258928893253489744707712335888388119084642256408143974537417500368873903252532943433921129714482074354481786887424787194482145409651386218295553596830857270427418623876972565036699107834988486858088303136444693304212322020433504297403384297832346457202947301073786186446976563993635972216517919968845059414635049077587629695437702452933302322503725460950853373228923272369199291229256962886372565159073995069289314130111156889187010411995809161671871758671155342785636634331651197439874632352968752008550970107285292388465559359603435653025600224451820853878675775072441264195211298982347012098058433037567870966380761487294356330724595757674472327246762351733228022811531343791455876207379472225237302243954522664346776559023316175589083344162493102531350674961641226330470345494587112312986272855514113129243709045816572425210908792261036587002695589904292010750941185845128183757739463111790849872137900605805960295044481661373063214097769488736330221558604651630465374260817782311957395829991274283197877817658928637943621841639188607531032693422399727360373703429245834378347592347930215363483115519415088607806889080811696293489266849519523842011926427173009800720339688331082938685542733688196980094299436267215745946447391208596189368510799870701267188595803529947151671154466516170107810885568486641993867379716872249881098577768774021434280560657978865182401902220850495590733798845163184669883164979680075079763655009068985902808715108954257216366649285234159286571313390367208298713918357387917595614231629317735350227612261125015713270690687739442291127673082482503608219672404066742888161266845707781503417582010118868588827203121779145453002640380232829847841623125865024649042059566166327215935574916417705116735406695007006252723573824989575193248895899210738113401874630458528040849738960655512004270100330767493257985286450269775271202177954906602402707594854121912016228828558271124630362408052960293908854398338095981643772900596888881757486500598293191906493548304498389187638723826784511248931103772868099138500139756985556941143276840013445227686576416937496500248332481942171162415917568810731690168555588400606344328711950953094152087746742214300812465256446689007710308947105235504286304080798529144949664937211649290648390056735572718140558727284142387987026989497052487500358130771808908950803780959390444637174928898433710302933722055373866136590703102880376892199273801969069357479566125274472178989327124188210089399317764452471755196535384383462996297488634634327990416989088714629054714953851357719569439375687455302969928420653461934936190426513249417340924048999173850118659859999503008383163750219648753877658042892352541166500154824586366806785230191023339582088264576320558516467012664826947259503862944610904293199119868841901494408506084700673598627268107283197897969788920709283726122844116511634484992115798256435622767434154357282741677020440004050038434294753915938747599224395549314413805828504629710058798306654507578690487473119490682570829363800781326863489154553014084019478709286009110080890301411121218410404723373976542381741542819267152233032221567588133335363041608525541116119558411420634064207600780715204875220253810640484869036874343619937685429876756084434291093612673442328907195780382025589530223891975844544773716536883899122448435836696999435929950550614441956472684935421152586764887687008130392350882510820980960899913362913813979928513548816778260996907727382611812120889363083139852750642724867448444588649578089412376476888974295839889147748799413973767735872442476667497023764941640857162880189816680083273712179939033687214339431124624317210623857790171005553910671261438497540611178993985513931249808159688999955110609142527581939185903919580922060787428313922558070131053745743052189838735750763372696833152837376787525790223239704908266271502925689587358661270302751323658284315890198985101073131612435381496663181918079470130396905315537391689322075366085415687519524427691111828474029062631842602159381176510892082375717980330250411234677535127188396483211175118709203214873016634128236349294250918650338016666241521129022652507734935994841319558283360228128976493883733806146990504841663647910607625614795630802782604054378470084469356707962529098356455165988845119863931345655225532185548625908195993321079131944310979225084731954338726096379712073634723592821592131039634399182727801463245546022278757960323148758344639007013966196113565442502475853147024440555357782545871286798958256944886831834089685008029607844774974953183591339391247083082703944466001784737963748839401960741039098396437253948020392432396447276309704119138057052780346147387500324377152694773096870920305776112134802952138325922764594629101045308540376446811157701612427510257420534004877979280946448736454511998433701868212389719554149856132083337694935440071830628880890746202588145105486270991041257081642538458427480100284522000388135447634024773486331422510737613635268281256300256706346664327289295118809111514835130860397356859808802227225664716466643608566273240551838419455247249280382713854776634807417908445141924329918218760929146579129186279819981112849627960741746321907032570930226397464212541558632954821663782433771534639066596675100448044393116593102883848134886248182115118289376613344188703167027104337875554993432325309978560401516975775445598743059192588539640418075984473950157286107694681184671629387711337896023423724137058355457224358024900520923357376317634019407299166781895948143382026150807419128424417486412992242795460597185101235495117692642560802204981910505582166610439696967235047187496995220500261852032687540071805290400456071311070475493792529526874166404524527487531887389020219751817898353991440525740176633817817344579411894050346384246756717395764732971003662856776170050672190018402938933575293158778388729407131577231895667972312081151596783450387952991292278671638206497021646850362909258864231472374036859914504690756313861877188488672752576949204878406755237018416799453936340042714901103633384654087034926428673108876312232992817150738526658572319502734396453197575910895350072416844156522314710454166020742005709862326440131570271396798038086132144168727700648061126767534670665121520248994093564953524968797436660306079200965018423012522491991853066437952381931539944919627054706024726887859807173480764314779816955971621301055195424553648944540528300078776229224332167431491486796286812766429749419485066382295320978544256686744352177709576068772809004598972306575833203772530936744951092164528165488493642670324228737841043979310589654849270986259810582753773433775478811421851459899236549633981314608823193626800406027714865335349836893992136030748606702672584485516371158105778286227373044917180825521332271885230925185409975425089695586445926624135798152490935900300245407400644362478106170522808163502926927293099779035489268436976015419805144818867558509206723954894945505941502388088612238615328621155137880260670264585505527262729657844393877665213847140054355475765947296186295769440591695477634744971499322485402492201558297417160618346902378669950484519843270771309010746755683040607381014165982194978832461493101292482080951072700941223717957258981439833450468306795248061837109763705267280997149662574862997534160645690264278755466683592672603998015511151963879613250639403012197552056452676793824088120714380019957987828961235079163253924958525280048363033604132605857858029047286516874418243514199778007082450004040088003101992245124941639870255447079951396370118298523306721228684121398928737081623833588126060298269794348304441376696537690235900364600046314272060208414650196948731026775080577167150859581064968890757214100613839950869724809058101245464913521610128765486887539287292871636486702389029130103076824877715838820189473394649766159112331120878813697569531619472589730383665858078895926251145537755587223450586744962530054947537319841511346053521373712926219536661033048683258536555018382335881051886705402913034173054548234281420794684931150017357222817548942727175751305090968721428070740830612748957594446943484378318841009981996714181235626367888656098116340272996596202601177588961995315337247193749981309245587373613629652205354760580368010513470204228275274192641050495246542468535613541992490314110666384366693403120274674372793238585271320898272202858161464930146184488425694915196824227729192512815816726945461270452584205345381535888601628468156702170508476602271926779163542761142554124774128660222866477036742085381154350225458043075524480529387968471988054521875791350078192309875377155434478357369449451355546650892870204070601757162446480519135726325848125637343339423197305469232946039454918502946095421685043339599107066676497353191654174516935536166987459699330118071609810528389176498711555334752642782629997093875006669069712480571880692535982250307934367921606238879139452287747334344264260634064979750900186129073885994420247974281363134201020220939454652636653318775990152533176221567808658387879832587529049751829162701616781842770265189459431375248818358681496048898645710075238619898011159074116626894180409662300824379270798395707383240464578504991787120573786191630144866908461962229174494298315543784813141354091112546112101548350879671011401543190881805211024704391329725521497811524002401463335422781250713565819643404023291292288727164977292500689501173188340732257868832179768787372805347362558520203506881573926281507065223113293642296974610259564825405802256058777675139046929803245661218104103299294215533292064059391566604744521158228206171153373553327754419604919726889346474053262089425371922504000045763847851315158632786368993232747226494422571975551950388989688746071999012177418594311515150619317629373552806694791014485404818500674787153686243509997904083442834461036179208463807720836340379078725206967638565487339559529862393737384599906757352111594868118091845009023332689892144152449770629268738873804973361108269744272511694778057613340094033518504247776381673026285571893866767868849324960935765355322310370598519425227141514385573738028486733373456477488252172182459912925970675099902147731589399912967984199956887417711497215052296339162352098351676163364161640276727937833118482427190371439943071715728466255184810527807580562358762906085108270765922055558690940958395314063090599518885881111612057677713939556000525152864010763201050889287814892276597727177958247678849864427186237234353155472981573917210658223890870068766958756041856825761986477106776355481527528493801596800024354760460954016169792337105081661306339840652225899260206491683496535483039144823128975157560756602365512836458716872816056258789030988385479452999778949084178430860488421447793229910285893395035981923422007763640535870601397003809099120878712438561105081635176478383054136649665222233903786668632783083646052048032662916322772645218651384706379175479915382022117478946053770433341984255369024610634639160898395054602725399985128193210507170493395726939078214114020058610653180038024743663056525314523259138248598726340555927182134682078620763078430748542374520949369513784169382533160442074245071453902373800692028333260910995781154917844980650031026745989950583432571597850433013460416204503931226439782514010047440743015380569626365513067440461940573169038203605994679275019289927651438534064757897697704257019073213242708326854738148789244959318324599256098211267113553953437708678451821126158014162326520490623978239479483789592972579988817881344211009371553522478039004985911685346544329758742519940417000368188392503287846850303771224547827973764539962214729961959198020933970659782481167947603637508888585938547221847393541407586427234400983529653174091085439712107803338454575062448848530795927074803051007063767436277901112546045437229298933576653911078079214229152266938119475804921681052102073425067074943649462844923898474097707693329392926521417235591028714204016227644985523975045847189040262481236701729064062791620708431064585731383955587541623576691623994539925240306052308050733507663636293713747919489647632810775637071933943911061228825284763570385049842424267842414567079690248137546830462664228833718908957556749122171264536342349786723838407844434913467631831988346857940132105191317008534092952373895476309212614566023106241191100202929526546156218512753358644243865888976346717939958911541007479186265141777437380030962102427544607733877701009100995700863514586682373661069452378710777172597093243561697627509402253094612021356679765852923892312951176296349584219979641202903562829301753138869209807050500876537213723669758995345744082451377519724150985014262867076852422448401430801350779968158077855205134853429698975216298737278024475079367894925511992754962125715456943497742431686160899620783011149876946729239811435755351193522829303656605045638218268017505028483056796671808958583547110062324115017785431002367037996795247558380592573276662945442012179971525122445359910912090168343468613015214380610249215009952559951397833724848884139596170445761286203123962239582658886423126123118815451816590082159024713545750502608158661707499150877948243244256598887839678021050884892857943414111052183319585856529862055555741706163653347305957373991233951071884847492048610819983667837474127684307892193485277625480974778935598136486441700458352158128528233511607789619855608936050378445265782854858353996202302320943011887603339881325661363322737472682444261460291480998947423327195899048935360665147584370152518986351032318902765003553136007771194464261058158188067261963451539809774299289908290203408985926894726046176129490402704813449555118318939210996833802005758990453216269573190159520351735314753978356295043990644813942606538190094286388131870959001728333037572365165398733304204933631181225215782140895443279289560909781054161345164478429251769034280470124608366865608824698680912496135816100279860647204570090967282935847307149231002391686684111302396545158827000975525809091789775932656068635962123409653256184495327735385577292597017271295730796602105247857813260922765984849605361075094781789522565597084572837300673082824890606976965167823016063334591309564189242909468028823479439131614940296694135528645951111819206290572957213240148130256640488264129197591430155255565485378342448751144089814978403123071303292576372719618823372932232099667012078940145564058531835079756380754270425250561212186757825629047830170975632937993728593310901274677435660534437196353571724788646568855935104306763151866387894450755160997797221015798133146525957681841736848713082162407546830985900253530200439089810284554616599749400485661973964153052434866118746509889967562034470224798860863817984799981350675471524727981865569574383821845132783698826870258576331000134506769055567383336123228316381823687136859319147234695102885874395981694431452108720672581948693991981559977548193669235777206524325825581313354741337597175300295667300010927468009580746600231452669304586143713778710661006355418446452554080263479157969114280254813010043871595558643838020552478898229663032624964607334965311251142177904429854403726820597546490667603124759381356555085853051670136474234694425822382783344609545824163103805194879794548845898891930373894693882791797716654665068543349188791922552615129752900037418973285780243754184566895835738291466731365995114318611255714145245082483661409853198475688711141240752359645190151493017285030023640921706484334767087322621193436981990347068277008547064564093769983055645295875689472413084799854659508046428635950212179805579138685602134421576691324017185476022534193620910965351664792019684041367479504836327637486136023805778334908973445393026329602760264310317860039057251456009572520705527550942397545794981882483240213347641245053245867164250840824662560578921966005488961840658856843737341523417819847373475597379023399767270152174214305435730052233623855754807055060141637418926164782061854102069302937996644592303869802590108159662440112961368089007227553763244017209994491931453070299348484749757220073336310838879676192947787765656450381195054790476157658146609857017458179721684386335043514041003000075595192509082175503498853042909982598289478724964803699784445987185670845275940623072322270118176586296943032589095652621776344129979355605033347056963583446467290646544327323931353872013334707079756685257957921972488573087169518084288441520382658599873711687379158872716969810730585183961502746699269874965630793291580574904511948927848613323621474836770969037565890026710134924167568120782343839888197504999495188169128462393650024308056120252081194540642181732229056901317799074013788147963533493056041436948123801147998801987491445275753649104014320921321813163032541063427286830090289473670751329128752253025690837380941930134166734311363521623214831298053803411189518617723798901757673465402490878821730343843200811068306878196387784410584050556042874898619332967728786277225730683470149473983870955380136276188514573262209731353276101607788824287496919757187799740422127256870273872760150599982456574177883398888716775559756221652286297528311979423001766925471282495156620584749467031724059773426034979071871660518700548552429318545188917869571723245551660310065231595429703974307077571268353347861869783132742322880051223219844677298286995459495561980510973211776372608304238867118470709961787933629521660687702774810523332190872832743878823759339400829851279103581912864707454848108416881772078154810536238490370250574557383505260205871744261571561591490232990988013822963660326291905567527635541966674669230062048683683738831771076627147000323621114152138964219265328553455027938985895416251036683340742386781195201141947191835817265117554212817207681625195218102965421160305548351555921743532891432635458601975165980398413110539561250332468258359071326433090579240994364405733216813102788808856036012835653730596082811540892198739987643823006776814034579244652031004647734469917164053676885301617986209956775818849728224918926633830409232185970774216939860241726658500335484800404562508639278256767796038261856983572576769051682310930586002063061718247099767129462288285967405500881589661222961791396999176409112514361537176240065412287198476921624500439756662364094426212126431480204548332281967129428344044275299381865449882759607468421982576065455189163681815120544224331473924905292553728793232427034514372909856349279057654812001345767631335465693409032747040575508969119229235366807872814326251790282127026815537334118790131207779930617777883560094251123841017539512737046940536330948365755430003336275397755932358513587966049801943869114826576847311744809585186581335721851451977339963166755704429784001572490627788536551081203134356990910383244122989167012125652859577206102842244254292628980295610183358371639757702907439578303786604391299134531027920362094280555737914357418162233562230929007462714730259495430532888287262267788508545966865139920090136475327242789254265329858254197473605676091596424855052682922014551911797177824640528098330719621392623731927063026739917000031843656966606342724647450676508285132636234571881133704183222890499970309231572961893199629548852016979654755945945137661056906003696579886764565197940787103325734173759564574821702441904223787977969233565650262094444113281965607878681190426235739736377535547403209461851956705211548325054934926010839745538019887546423015436761481578380302072494106082595137965478811933725936109431585159201314522845931102599744524600047614235951355158146037341200303430380961148573187259264506743800147686863167584138913376316020297039297357113355823130903177862257267492747670685328830120657789689011053726011767010978114248129820977460859328883053722164990582181609547355209209729597616306982449214392910690042313897422521819528810068273053732695192821017093216316466747147213676604732655644832081040098760374578419558212041733351032452901448776795010848853175669682168713764558002595538256988104609323149406546792879686801358568967406614931442281487004886267799627186258274879101454799265945890311444384338960872149666674129736873556396173959365724240450156421466144625350687599652228511315660834213495498376384065376111520379760910528208543128251173838873242416093255598762483829895476648554941316198731218104729514654121102823653478419190886418490834215953107114187476496701314150253081432416404788265741075948266257319887412737427253686461117422722804054198624811131812826390617099014060203660444843090612531808969271938278600963545775240058504060466834373858587464125983669181523829983930669875481098368922251173551100609271016569573504109713273476500139113325092590613290057299087775177732527414376618594044713043683783675903346216109136706869443009918070664490246605192075784214623029358866721981234218176284718485235220167557859999837487697168536327757060557312394442497879339844663771094865178552130623873536108588117262612770142619172718995944303825282276612326038478413030279217626653470149098591038196363863799550172957473361627023239516213619093311109257282587928657668103813070371555817450658371392853844818142579960244247655961471048175821549326875665019688533623567410102237739341137179208533720018592135621956989461262145942556008084315329400741155435818989824836150160909414107326760321553887326422740456314620028901449418722205277884559819594642840844049380557106024848966374460795225832092277676639677919217846058859693142890756368604716160315888584177382339776117913496343649120118719829383960472708135966817195741875192198961532466831773290484384895637530027194706490686137388369914048493418599318931958005172169752647778187336962448123461477598428060268178865987940345469462744929044726152794770167430254799897417780736007511410264329399778751374270394591992433162717853406375471146284190985190301267654190149803492742210667216324040203516397548673153734059457011485855181428595638209132384779291250754454346051786792166662589598756893669211694233244168129224962413172624964435084065008949209415993651498282078396824449320967226434747708769996656642743553935470125853822858772443124950499123386568062287764212573755658873010066236292394664920502907899052690772275407810545549493557654491191502867384031024624721561844119759156184434615484819745915561508504084029900573610822675525279289174457271233967331932590264056313719859783546202640957838157991210269631732683310155893372075733117569018784683943421234413580988166847361611332819128390939629198876998855572239956456286402823878697124943530148624631525060806674736795687630264797418302607445729826558341022522248891427043258833591190121460006141376165700488578246998045917601295654965530773641675817686299616214800298677839131674055086964151099816803888803714334177274006943526581113715467847659047361186571193584010646143611401589199576376205582448683406718826581207502298809748746101472847939520119235620379461403732002100919995592955303375196845423471193620212399837200807016887216027906513236392760090270918483592843319939723565767773404390763767024178838261653566590494958135314670403025157580525353577584594418692455732249046688383183086532565443066550837918371807858485122639986624382957813932209954269915630861315037565322928950904444845621910255493860055361843205338085835248318174901461085969718565547786073357651337763766043543544182146408274072362444963868810620152795452672067606554483638876805063245679619738746513604684482090525330931189670956211479077199089795843014334036854678491536757990818586389008325685083468121038997199194429205547841148637088306311705902029874124759576040819958196790977962776385774467885164079712184260684866600804013793483065918943983555238200040900395970636513993173491685226907619511338707958166881091053574072910182764281338914872686652240110932242610867169306734322742981934028822951878978623822705694862295494479293464138470089583631683486429398330613585834905658308854176492579239229254546422364941255420947752302512154027794167771523418655855108828752898061831047021329804542360873044985713392657486403867816117764063038910594274811311530877937750932387930520199196858405667462143538235919142829294281219739726170901642161283640938374237270940513753148141180748895135866498001636615416033815553042946335365618019428989957564048027960109874717470191573694496248216990102415014994455599766380399332060715282469129291599347871061871529267890431602145387934664444280505936938175672024029290839170867718907248935248702114814063132459861105241143217012283525894026377397249496714677538918627212863863270658941917846950096666401102601083873910870305733081289259149677923828046705536556642792743433432649905459518373534831254297425732920651554556601000812820056435447249319250601891731342435588954006519329694250711330980094310766462597378042699874229285985084629023955411039908792410881688805184546235289703136602930442339288618698164224806074701436156715332243565066277913195782037147824975998339186216431522139574859537995409353400599895085444256430374431543552686891871889878913772959422509541728790156918570691860519407305357441304495431522034289232058496806227320298434181939518237572429823030091254155270830084970927011109349990949252178345868433632440710567793860950193247106027274959470428702597056958887291255937514741212961766020680950680653182811700381346110053777137939448761136422029253128157469593421719214374517136266051949894066435222907803760389344605610038013538508857945456547781562311596721063785160751749384226513350091601459552446349867182233310525963416838184423113584593358520583708228391172296557083112496537769986625548201118834559828200685260126272877742104127971809652196770213909805974026355566660433481210199266738008834911794808264874463787414128041145623410949404297246410276798954884974889569329264219022278190080832777885761875149656046119403759643338900806512682506340858518369215578540818368923069252602762105495698922306453041140977726096479382306412389003119209877435963682432033780046482136133075175235920014344488501106656293254696279903553779057660221794389801931876741976605694233748152150318402473190970656491305301973383314931205277258878121850499546014511529371910757520326957888878923607592094498959493872107312802497685271308024775528135146932625134859952327480558432902658760142477944250696263267253866229360926751329579360628202999838047616621986824222118503004155940857458001690918905621092293211162897329730076520585655754209788304337039877915815694247675742646485950725162308058749455534977672185264459311771031367500483302211533343813788719624697737826433826117720763892857518308548680279542578015300914322222190238721044083462982267855405571780799528244096484344690014393979602647615910225296368398140352550889112521474970589980456234694460645205009847869954721565369142700713802249283380949030558384175749530222616900160045480904531255823742378715143845642241511515067154545821637775629653351719134812780140387909797313100082003037976785152388083417570506128926633422612678355664719987499764834019477721071294114294459434254422432879832451067094771208342497053674161510498911697119136591389174859015163229921880510852222304083217789457072123718960382592216601450489359662865941958270258858125303029534084290457037787383919769815066453351343756870725852903288199267327276063135226592318558369309787709283935161880371661772773464243788325068868698083031681591779736214110871916321660391887986974702872252513245359139940802571808073179507316735118515099489087785464456110097395775559376750614513167976522319792741145448855498321035258627707362777266292320131259317638334277723480315744759220234181025369060280334940259225250395498996160652527479184796449027031526897447468204831212717018918838625504458296221257823986918751628683201255120235628853238676010060910073442711709574497768745912067067437209257271481549600984083664122634857292271263799130430129853038237636922650694562819061229012724397843759783958166254314464954085688482670108875023448549712840200511589858721425342374977343431929464897708528399172056876452530572051864954644612897197459898388926149164712153878057493987754134319617091311690115087003243468283586935763817528902397228917048534418659658850697735636319737161209084630487044389238468643813102477063957411318939285867693099312554896449990156403190454597721527789420898789384599324834362956178743217396829457461919286207644595873766128155808416612229993717316209460752351648486934858371231486642718968275367471045396187273130747391243071985429045902144193379453957345228973865789139930383863827349657612871897336197635170697727723293313899601514151000177096938713636278187718860641868547656269155290794557666684304884861711995466569178069720180419195471347321461114399015589643052237953730911494441873221508280818134243885092266186398761341261311355769765579216912343683300888163669369845455394394898435105614581522760158171600515426032888056896572017292997420879921179788144260687669785459040494700331465383608614577083993134316332752350095653595728184819314231380214674509947475662234070205203158216404458317798502573704652900022333680252595980589340266717464074714812642708106765814518367742923006409888853151829214271212579705682312992993331977942146953944722649115248282463537930682009661639496427539600061583417819608491052620806128278905330833151911783033085787398363775729476026614218300907078151438737428813259569583230389231872826160301046607315953291748193730672347738392888606664291445086377960256790660335747750054498618382468039044954074859970560002644285877838908508835745737299570086761851342039050242186384995043753414008766903531539208855791200544762012575219746668068994958939688992428248337242175619036428205956460617964896343387845760131966548120848931807560781844437030913099772104104859021114184722186370071868835872944536608046174433627714597164463008809502241298316662275518802464282130370829408544169577762938735682209810627902054351222174867526769120293634600672565733934607632074138138001361235582835723692468863688518596663165163752003277907555350178601833141927798754832146735399214340299280579851818381302108190729837580406822861164217231134719364168499051774019798038784775163079370175592504007571275019597643674215763042555951602280397123631070453322522930044764582241688282464023542892478520369270033163160132842960276357745314329537714813663173544945774952891754051896620985805357857038213420838488790912488595617830602777472701143113139351886976222316309573917455128511515457008979446353195138720917995331717650227458512630810984921606755836005959630724516403151789176421416911369384091031954000039924348729045427058831050615505554604189727379570627664261417367742535815869214067300602020686985574664410459743550050371976270975122503434236083272222690699092294425789762281869238089925153661001091982319784265922712844590839096596474888901497291089868955014510823321655798956415172177700956221455122585223832152729577119285107539372322587039718609557093637858864001252895754664697821182017443130710128206310870392395358758548896444033181142854476744096083399733799584167663914163349165397383287425641296703265610673804509474489225073792206334426069274104326766113281496364005369536814075177483725317845626781207774673598459583635274355537197419911748759222444063873564149282185662375848632102631041922864113316983420565666891989041449842921931319735708481986269334492947377702689789965683033616467076200680607094049121505937357086202395768023530003305277471392630082465679932419511413676349774415471899671605609864556660472443218817008090387488093874071513394414661878843877825428562040310403971134653639937248030789293403032367326401775053831575994333485847236462213645202560799759962632324790312710874977437667270754577582694506613968885652334596623328351843980409331424745257027640532921481124326622216234391212165943501822058038156709316700233579776600039132396926856635241563604338182034729698998670188364397482328513740544605509679005734090332901113271570295090178000142530210874235228781539295238029838997299540348638255034667137237283111583621890221851575717163324513981510846197450624107216456039835445822319423200118439264306173449864830872945028196789118822416473682373243885346576253717823186274430409056731795057538968900492632274514328983829021485198332661185078816120016467542639396621025858369842161149574188260173270570599675622714617680987958758641706649802701386764517337481060356075007890152179364212758741212285893176574665273466931682427988829145031284094840437142443419488571423001674912215706629851269833396222886943451098277939048198430390879007552966784245251413867823025949927953079279977174861988742720194992286739174219284086059405792669347694413062962379259712893691236310128608494410710435090374995595898284873011237527056933948781796856556963007853522445714515849319807123381868228119314322756516879766753949904566751918100866924274408298257151456593005622847770429481315705213311491942955465478209238528136507006327053004950071303041084752133845511683505809283173925834195630704560105655098665054223212008463900161345176305321560282075975131527319151351156596048875366171433805948649679113704368002944821459864370973125772156629321190551642139303249936362181576364146595850037986866725676640253116544188152079423268591848781248465778849439591951306469202019414353412067455073118045166416824853598467887085011462904520145310353503118893012198995459686512990031404075619892271732212239221205411819483036814761645032314451096540366631238456877850736709883271828111289535193701777019833434670145628147175845961908766946426458786266132760057275642797553545140185246319238435618206171689287154455103121421815697595093633810542764821431128079084149279922384063960944553337004779014081971686114631071519077763124832247725600962863606964510984595274776478699318108563983557161083599844231567340008972268480684125879491764243418763365761655328253153289394847469990048114897619192340883658241381792210570248307545042937586096604510421419939146400827427010188588041771107779513702551650856583996397060787926764078585265215847389397410595378486219023819819317195269899192336667922907166394063137573569001742083009763076998202529564262002760213386325120374860255044388872565097725778396152139247345996887322495189431690609676964602827855533871955377431104567029234804999939933955033183458365779390956479877049435869949079205019996324950552961552825897029389819091615000114853353149117382480615124645461396490065544269504540659108515189620502100500281012642082157426054220381422338361948173251468448342727313912536313640002449427842288494423750320271211060966844880671774353343135660597145799440723587962190837109930126252908387165338479581135051411180102003415042616849645892141007108071049612223200268876913176816694279752913588843746298113826453446632714725809372579190109955684462282681376912735627106624286971821141082662189154790852123821468290440017948545464976873060069377519686223088215156065831764607760954507158065073831293059950891014694879823549803621891176120507874139187920729544217640426863660786632371266586506863204361720632976439828803732581788759896444175476301379530224844659355533301918116304774337424929446331743528562856789459785499614900709866308727280853472183152940160337670414596098472284676654884967836946425776032146303777180260417252810590322409268497454570338460806604492380450731964035802138195362233284703257747054368399332268079962323052969693607123581529611890160410028604144139896236956239306901683733662165855882787534194169007896747178446472432100875544443792307470853858459172543258443803939624174655037970432161221366488392754948341150645085941009022912255642548745226671294883120163492449409406120028902050964270504583552223504715387268663133570800822386800662657118386557666630300406200756542752546595582306447781191429916399022857938603719659738422347728352385316970578783398004488391768451175515773525339637096120976915990589508836420914315536944851664601898919005281494405442816631476108423726772469222971005503140116176969519192084480656969317708475461936198774758163206944387584832073514144303965756329405587052601499325786970118959546629943013535493005885839963020744955666056075503980233033687528326779531961217064851420958781258972866528262249803036417244477014200061168626508083955853136982919186175629371723040314356549426412150451954485464429335106383537218337658333448543589979681283666444271764472132731497451781777577955872025594570284238781340997655690425071473757998852832861448309141785548088031297650593453474470579551043823724138314780383739308530846245674269399825266287831652082992250285018443483491006574379168473016431846869643969553603847431552811546799868180698742331237937924069265390522704052652808007431708378908851214935617225152459206701534753588097361897698864897328813333334027373868800607806432121268026398019763502713084774908088030850910091812463403462758343046643913117964182657284011292857265239802024036426380893909905102476430581435281854274809475438983554591120671492022926645019228552731977753203975656753428449663297534555597976750972655082552998488114407346830091307320639887080747271647419724498830928578646199101965599920245975023535131327509963845248865270195764698740123161420466923303855228799822565541864431923605163572147335077468886677981777315178750006901126838747540336829670127273017587715687902255096508130064121733175748046880534439557718954723350985880326056609588606636391313955328380673925802707492925544496149673643527981615674923661963506777241771098845997623585222150387389390427497265872812470391629257766917684341742360607567934367710164536490121391482673236100503137977962599942245831395917605146221074085294991653295428431072342685471036679296571715563574517044223470305043718231721208650878035479273567248007136054415380561108499729803094724603215961142904647500859223536661094579569620888779919461787662313818056403394934260158845794932786905160419149494220112998558677159560610425939363941813019260860058405809761480039471297920481399570462282872115545279792584391514964380144364829357571114282921650937539412306767083723826462837871359127147095805909163895314433860376429471992882481315880619947581793303056698338691986143995428259385654572883055263652081985757943968196906935299557136867258979906432449763934396525631588411654134858619087909079954150151561784884039169579131089951154546723083972251796666564912878486048201928040397950428778301848225447174657697665353408167264226463564802462459507151059922326908147666401046868282599018718652492613288839430287549712990837186231825488910207474684922629981643703924896214509426256823687564343651172149357846562781582591832559693177146848266969171729663462790751367496747853979385163908349379749935104457012861056137257106092543196358908336590998696131792648426354150008048401571109684231431344037691491984820397801081551829639399766923776908419373381432976416599185022351860680840271867341503588101095354559240809852385673981261711930785163166620020340287521924150622402717117908988462650943181988307419936644742209179990339859448150339954378297054430325055488936518994927615803036529839607338557285413679910723535777090135050138010996116403342646455907047322289053522811712386897957571333961619751452949130794071048012383839674246438166064350867994416001130577545141903473244353398214064175538816663872460866363046180184412655258469467727425826915855419122710626142999425966744029485879441998642220791199781198821655103875850295874434215985456994276862771615695873586540473753747724524087248914477089784819299427768915495939480772505915540114946181382908812403088001107639992714021505412567358130295574511089808867237352408059920299247826678814060769686706796367129328668571569526803497496077039921157166883228036803696310120989624755099369937166213479284412681282260555641383277829025448778382281518324131915870830086814178668961993292994424231526197406592658739211744612533127846360056496540560209332102151872866139294667834743352867511736278566834440620247418079406724499583974043323736387566895769090902010531065523803673692207483261865439279598925922739507418055149122220674350240459329702932473915664526289224019703104603693144186394466806501763899586005844443881286625348468501006585968182542757046403078434768787267010653938937121371492942504097102460610629447074425890833610813833591031257540121209853799985098831817586917012285218686156905844246334628260462570626047969886315232525000438301146081868875515765148793139585288465317928212834503431258068770105512096906195361688972855891918070413043282216219721033960523321828912857969145574891556495996803678564013450191889216087900512697006725585123449480105848277727623862835748453140496437821754284350693526501141054502099733237721630581369477449204386184921352755209444162245002512656534880717446508494313838453147859245353829653813091018406466921237974677033572526641383962474873368095801642416000314571474536450764200618204598356585791849902367478059549384229347778642163913545181602340991461586251021687214199240138858255960995244961314818859483832196835514885591024652523342092791631100592123804090835291746733177420486506545070173265937902740572282935710096539597445833876304158692290279559762111298214510370342847832770527981248394696755690401334088511791609091675408305335759803149201074790025432306694684135564263291361594379352019891498220516131954605427250183590474922292369342156330735842018680456722278668452501845585926429282263067933718765498990593431069384946760413829318399154285101544180183284038701659332576480571688759106294586988631722661380370243519464288894822905156402910003260011906487498476337458418196148064393654148626975918633110219887052123966892970303641131188438025586964305625688227495314450678979189331394899883367625113619003930448349088567420114833331973750231322657202708623414281115012352850962914895336637902777172237053845654638465673608567468807668728790741854896573652041927822477878108441690855070373602999355660746884170835030525915196068169482393655985084493041987612786759584524169727584287441571701997760443523277397711232910288206706040900333493905511788604594190953501558348858818140400290994358137471289486228922006629344116060128179498468952036548030494571258213123412292348961001932177214872536381917057687686596736842282129589409849542766392430907529826402032384618290281331801207016876043590205645575857566710954664845935413505060249123381746547848500152413049954041451480019337984262413904801971396161828916143829424198257441051386150160798911190770930020193378040111210150338931434027184940589816610153524715123138937610685273199216017973220560276877932172314796763303749508888142514130726480318289438250681388843428030317391013097631865755768898519031359947529283963084016723342438823492889567983238360734774232938439238785218342021147711860149994489954786263022810838723219493574519135208169627379218230500058303198117971760196961818416162867441453840376407051184690057029735473720421177418088441987850344142378977763640041057884642788176518262978466087288530144289811650666893277362296144160903607257531760755698833548748529653286682840267051011288517170869378838419606703198358316056272118824259182780643501466091704443201682398205216680660021513064380075120827670522674571605962535509804204929245942389951264325291742358519423857301774342307213017317924527666376607160340035081549288347546779536100536332699821067815768770615957007043401329201919959500740777244379200010539473196424762277962302986977171533185966814797228689898782819412721765078493222769753627418631526947978426928478772550419814999662661884387661756097895666035599508305123584527215809563623898253929885004917477628661700561222613475542336382707843573842498733645495445350115711366886016534928859652826201518112482670201750866483925112608990444290453832799919988124571384308613603194300810281589645901928777793428695883251756914233133338731796720509704500754546542781984703059638821777875166993761603444446036692659812123786261047633266917303064666069225074778043279735728448535534109772204615366272668388272058830699089487288276129053874738587062876195772569421803682124693233462646818273175091380699757287525679622313015430468386380394421009793318993427036584663420851193746507327025935656744744586878850765860761449132151722555634355923127397832523017017412127873557341888869336458922261750141502687488623529553115495472749216582593142442188243664752044650707036850016122178133469422483771193232786615484628229210826877181432212151612421625798495189472929008133244610484371659812118130305427645570141575230927060682263748177461948724332668256291155151546104708019831606065656763861400473912807672112973418005741165559487541500337023330437046320375671946507526462147465523713119231888749259496908737564823475456231428572163870666338840790014221704100325257431712804198287577211035761202419073187050321027770721882406514516619568006280225741888581588533256402356540448163093528004867409414890755640973725503182518627827809592079273874161630366552605057100082892358874798022842547747446789484049713001148283173539902578630169555194838454749061674048866259297043538232636284261548457276370059890395080939247980331551318141617704265903938978218490087292954305917083725742819774532693521469196800203166146782888378954627321415225602260481354338721393088227899787088897388272522993599187710820155069763271007031175873211684471622868708552511492569299707454696840615796350724950762003722339358399936061555016280543832590002790758828762888993323689986188731212379948544752439848761790079624261239959493973472682520469645584259117710429248247477427314776262369834807598297059314501681992582710623075772540764858295746425699726690952986936784821658405094449375929680458889747745766380573071231733673976824939392456140315237465877391071085381230071151889304128600718805505719648172790270833711288043027237136283962282011280369122304449508678472226365109205073570007549982972240486625744618593423857912798405966715526256324315458631419438224455156439092286589236321561148013971600559553218491749417117425777324723339471259734812224111902134221439466044505896526417235127280574216525515117680755029235688744759191566970190847287451398023261403603646910746124972409935823917927451060568466939940238805160773730125792758617462866132192731920917863747448329171936070615924691809295477802370072323204675170972947207581201115660522120344541158210133406937290279425548444298874426750572539542135799995281274039578587368277925511207607010767364404575933951955650536710720618738788036808871298171657933300566472515817899399430412913617700782014316648118235294843945675746585676800484764512250528950742926238912311025718252427488508140776575832899010869399403266730167277805013011102373850119932401756950679195724781183595485869543341895759326748114696309475847197164920299919049874995456127283634650418355862837219225110754885294879371384971929353373554062807046249729990976890920324475545336376738224053736140307055627571452022734549908711486398133176064965027607448274569016692255431988493804598363149773214572838439856190465813245095774160600387296792999673976312873117483557181848340109452807154085951853288236187895554139008055716228644405474799549558291141930123111175159817975720617075100188353538372136165453697663813822976656343538350867231278296089657890704971195066969010067647463030468170695603456354054182154263854409840356573882782631429208117535888872554259852942563869533328503119175243758301603129871425116317744889734309704987042295335953480091128467313783363769715421086463008908677901807650002711864283692307770484301342056938872413231452149444673944805813706101007130237230956000344149431859948762078074463018681790586195523810522170647265989836348673522875181942864841023596622428345365773544048916005885903253959238454214932568229853092284771015094607883437889367753141247524143784253998310940954019757863529709002105072811528789844647249721103951912535313687370135024846034769442702996447266597621447245499667408216549606128014451032204808812501286678776363711440278755929028097698236958252183613390601786992646516627531952632639877767576917916295131935443468741734223015078181252817580183396775452640612846393957142503287952074035173047151554607186117956996158976262946856590721495236882645587321440091485496809465396048534672511068790395859923182811242048125909053035517394980169111312806780341107508349879713327458212088928157405234047760700336249543694120799920786725689235079219720543868789025776026307180797014510560178195561587156163076600691273720484041683279866873210221271234220771297569112571437548298763739533050661392668753359775273841368028404682380243352191783916864461605061488587903742190257485956992206431050357922881531914998307106048104029599246705948908893381437300511119515612416072236317925231837618290022050166252037577843340236052384509195262592855329850694594348262691947083249523380288360952472801375034152857724108195977680059570745679383225841445019438380487518484157193149318673470118350226330757508633900283416532010403088849963634027571201446690878309053192319267423653899406363632091127406186953710370847198357327630862877925556658161756429251037874063891083074072120852355550540929721570765185954179709288781801352723551104480934086292577974988359660652898998326954798433330777656509782499149051695446175478509217560637420037349657641295283108513525251018157458351342020947968801835671517424753830167952449615585874662531758090783893831332120713249099863711968328992996749585238319929061160329930572885022544158349851680569410679691676207224938761883764196413582726824429704739948977305407890017358448788857779968291244421847764418340784765312719440675087085522506990479799249317864695550925078113519040950690009610482644905542674398025732994842198974980148975202743392661836811603206064820061089773540325137381735992569581784041302200421748510307894049179057897318469661285737041310329348326654108633028222332695368443543165416731410408916918384075954749451191059786869242462800653125930073939012173616464558726699479559091889283451940475286264050311318197694829302945161880653058694082307352552566566407392409986039103782201855123572629050335186451857120060234245138688111193306434651617442910111575430286372134517510851903303118211498680429728086525674293472395447686169957032152752118106312628433636689215115039557645431892053925551067118228045990849698912862543198826259933550915647952349396336088780643020327261924877265964786628663247139227689797270859725128125654545593898762417417046168981214552923168168977965353961159422364366242501952201641708566333549537896872121476508412306986369203937532873271243265249336992957513421562064268453142302090054441455974848160695291477157907451589144690561883353365332831189268633858452207014203716569909294399638848111453234363218107678547270632389476674648881334240470365579258973109511993413480487625884120250423724030531011953770683854540012358974196394293542119490724487387877877379403808615526800458381593985008936412204867236423971239372328993062744459892237250584105893913788929039721822952070696610346470928041692144988714706605783458070977731616329276013930763353996120568003185146450830474315968850923903617689496446401442757643705853311008474841036406916880592769146094638799097679236475113783385008983179236496839668398074894143344556055257145995522043598371339058240881868263622829745460649989790343481278977345984992108814948890825487579017986769827490774672710174673659184743040229035328905355938620992059262473254256395618813817253931551930228444363441692486669172840173565002973127949494016542265503960902483563778603768465981979088530415384980812198074456786064664936136642058384378435918042855561544229872184049145399155476131140687632848071222078296899164698526229168146523494308444593579748207566466268073861115184167985638839951364392587960038838696676535363230800794075017120145868025922062071698466424362842217129214795983630327601421419395201451826206880406169312798680513063397147474883299874718219469101793029977679212405305884477517433702276123953355755851713860996272053291405387532580060500020583828484570091197749753885145102684772372457479898246094651221682826427474826457678433832137063114454977658350615815376369407854452615988867891174978579231274671407467791300859000122726000403216978881112121896194105183473196043716605452808412020698479352688955174133901632490403619508570117888281194089026852658145105470791768290487957237522906378934933603543390690539603037299233613547599205889063860110297674818080377295764751388454368116223460111494720903409287812758920605502189216326598916703287555416440027662520444865937829854820328014091185341399738953755107440087943717424540160840356872072013720175237030614489446918277491781013818644225076272020584590905962194575922340035238417522553208406518819200832155504607748450936118295984107551613313618405473073365678583333387617372252301421857784540567363610196496618283575818349090931007066591350411150341686075288489115438175281034998750042855315752067520195760577590235088274618044835781763876106544819981026097888530361638182846416089378797616684358575116539960128198215562579780170300417303554732246896729809344193834169678571462569344377227166726147631123928730443232466053696361114633328952313834934606315929045383029975061612706244683974363849150435369380325649131751461825808212618991187523961439295806121964790768084703358425603462868558534636772118647887875561016160864431180753343137102698956553314889530349687660329137098391795892795693069319241943086882952791087583809814945259048541767405013156233249347801766714793192958589305021976227039056762800076379730404364901556031014991426485947141583205731600709169104010558493104823739906295041340278988688344757348898646367865433076343387952576139256677815061158264634057279742869858864023473241186145408897740135050347396714510311921567342340311991101828695785316033189599805730487730458691063451014777217013618425308363736358740404984216013679126259447856713671153626169045844014699003324760616380098156978005757765220359939998038527159053229240598566469403908750017114069161507048908975426188182385785538523005142013267891616100331983765577847045300444188339480362118297921603754531117149558964843786755413602931127808290326509721902072730280171615911075903250668673527430924913573559516538090234372545337610182050614000042973646951289505009103259780266403067618622719363414753420048465927439025206897300719672913235939546214303943753070829109673957616693254732002504740703562383461072136510903392695189620727222826680821689283788369701020452415859823813394795618338998529959264900813192267162915830025814765424537022680547617116155239027343245500057716150682884528617806802947973847338680457562011892986807786454491184088563485872079397823376591610588140865798833182675687196449179102932545480479248474553580373773740965458335832127005389218934056763193425366889490692283709866719616188269840395095963059925954290008063847333458005365516205768427681572328092894491415630447472652200945365976192998117342792714552293251822934150175517776215072493520987522226288257940445469436968800488810000574435555890809939277676637937979220797299739978415851923023521389094905703085532650694097746382575114283669452007773801563393925080947525221763555124496340910909363510407345965388811265613689555029039925828353261739975032793270563495209715490639568336542780253489149388693398787592663335615208731560263280678357299024967519393526970590594712310054190337442647682327618583269382437934778090474673477480196168382370496809094835019145458747739460773345109634941311951425453883617698855028450640754152975356122443096605684054302087641803922450124719898033328697170226868648248724905777710703192950816130174234113545483687008516745893167457702825600013632038237520636396546575116265133922161690666855286050744567997389824802959535480904820560204920084348234003568741664888589178801147578500992289313511017547008860823061197337284357087501227495910724492535137546264169348650277954809983210770081363981161842160463738868601419424692565949890741396653140322192710849844403474681665839152324001993436083102854779307275253505813503491419947907750345000199016087289778356767806534753575732942467553974508827810742219691039135822889035476844863917933458341828174988364523639252889673716463732149868476640101385667068611065460824610143748869531466160347676805541184387414838370663480965403751162994740188242318417383116600920355972630942750006949958724412456842394575750899600797662958643495951133619165208581701814232106262441976483311912310004301876404729503389221472976574330391716104759574948678131822838849375698054747103210401715478191230880761731905880389045864947735106533080830468306128456538648620799772999738345942898428754345128611551032087274566962936559313443230042687613056495526025742753624345281397995756507328046697235152278922406510160506050372745118322782524156895108400085479979697624546437397229771565096509834288079120596650900767177533567466265949489829669764640355735378466282773548892491417009447033676666464666752865344990527555002690189129116665453963348606036730516608021349880511077073191750402306296798733582552272833611242036369172902249049981611444165600374171666804180655051406428479848791756457906685025640684458149124035029872533808064958688779388213451074072701764478590904556599736780719572753565276077935819289970079295984454119253358805648030113686109531788637915624135670533697226734654044033589606020294549154537904256575097788322166192025745803102024322829875987583272615468667404438085632243124818310848394933146519090309718585579388575706244184937741504108001228272722310968943982210402005983174855713193459089341696824173404053988717107208795251508355429613206806692427005595525670911525311962362607923619429591553531329571479604566842387201967554564639624184620515533585538411946079652431614045769900362238418745877185376579137464032258381259518750279958530512996528407803623713785576180714984431391930338232866582712739090641281460049761097562280533093033366020723592259159505311009274846695035960603500844133666026777326054394234427768767908753403107994784477385012869185769652121477375316747458499256825312775508730954665165227767875511085936971296717268455637768920766176378137377889956505543607965188589935985987409369645734776910053879267739854495284492198808663093280343195151303078480920590810209504524467360565840791091234347430313494897584948082531088723868765049488136096151086559823999634851739243836187984600897872186208793907055846069727675937855067341237617276014348215824529644098486440466983868989146551694278382564282333107727959115870139058974957327909589315818142420359982536696610271992443713404684458597322457643849295017034782647918707433337646890849015577920017142034469431353473605118406518950680106770664646532254874650969524126474359214840681957654786574128931007293026151722687606435314808432915618412520044191000733239063948738170241680268761234924496473617873660441409654874366570110766725708265120629149859134298270322282978875138776769725741601231743102599899935889213534273474749313478216545554222892953697333740397406568593092189967444035027204849667155291364403424163682712498875580457610092862246078030215198723413995665987807145067403691720518246103841400715216985180640934463582428372738773007042009014657889241920030245531634840296489912943383891026564742507079813257958494171752314607155043302993770174817725339911496638399700171593367362716846339398419290803681646401178717892001331872343551995282081991478329374616085002621887632576489988997930644858531345402379611938884172667779753281379483693439398871377179818568376257437565607221517577603152944760966719398974151412264891326001547942669660356611107118370354707796483592553712773979272493664101537016505026311909903352944726792421067505458699399387760253241543129304540149004532858299234847426040702441072461309513634504586466023151537507941089182552246118117171273060352894991955084309290190232925736759989110648729114479700778689879117721751980740653553268982934978226147675170591126243576433590001664105888514105577017801682941901307407916762689481104945338215844721698741323273863151601804489234399407023435208795789602044743119355340245155619487685686536921995937732848765607107408363378497661112646862833877316636100775031066764833860552885655798890974131436418804883885686280767059284998649310286702677182343403363115337665521185808230574305008577463406770631916833685766178599402376710072683683163538071858815864569952115027899966291608190960669779964555116871187657686510606634007295473967493150683346553128431254487686428155993502924705730168746117765090180096851012775149847924593590434473133714035472697626699781697748528460221723391673263160386651443094409459558884593432956187973821211779592269246248534275430654350145157328306393503442149925207487361775271385484051654386896543338598592394662919087973498972747229388066868959645124862631276679775989942875339913092018091689722065506110597999085807923060119546185092263203404305162152865253591604008073917724937426594176147094392788218682134275067430509552478102131418536629586908155082837949098233872599078475963670781887194427882292171917424505861852775153728186219798980041618576305914024598768695970291189779405384500146694851148096558829471219448048388704529493448796144172340572054723552445015525304339807604903159321193632756267597216995663608654284580338917578660029149196588712813904412285568730745986848552040827407716295079623648086915677359022904497095707034772405741978046994237920595690967405790457703686641923519798101037757397086611500521290414840442157856334238581878487493110814920791046297942068846105953841783239936058468530714216494774112639392720034237136612535967100159428328177961333307307886135166424520588875162040976995220673307802360375994516699190738653630833365469313976058490130354548585404524539753089751250629678243477879283759854986031174997580988221555934950646412036753967445655278572215879553491179587768541804117555499349418018162554212760599893253165703876457840129808778366096586652918373432064484912674705285022817002106837269028515012508882385780643602214908805807702486352262509602136320330901892272479809928227297399202814513067275351752066742597169113146489543106899378472382191176865715579855858918841273588768611308795452909400557541652473283335067843896883123292613506610423428794639712584086058691060882923329254683468675436025903518435268763439140666526812078501565143140391610361208888664480018803987333890154923180333260784752433100260315307202476419691362263540032622884720504830336853604954511370076355025379670766067705125753005115446208136784599901700102754153322508174682565101016759947720428741041960527676216034912386885999698890121069072818182371128525808078735726875903909882569058696763982813694996965406939654044688123681152574592165013538168235518478068449175581430915288145142542208767475396112785522420998625187063605088039617562594179558449734957704965883285181106195075508181355105543092129735565970669266691933216392694198063592536419653701801820525051198417708360203834463888041707373620874285958825639055026600005799219255022354050642234663400910706534090572206906246635173722095011303444673430931847283331269832893440118880854993364019162483561692275151278682132776123081989656722651375357065121091608304594401837288044586114996353123441211508850665864775733391048710386107607289182150626449386040546258423763136911490684647818194706219823235163277078127375541389212145529829062726926949139690481389086452379760652541115793131071253279931057334063417956380695511519117983423630605959571404804671827329598238841004751985449067251971338687553437869640602516899876164125551118569274593313641334964359055226291604654304353605804816747823054473322628652165973183103645492253495804446988451992797061908787056855357021431887545339734178208065982394949161934971047266600051089791293027369399233595875282885713334572540939859938829487470699427080040983475084828642501321177069938294235483893477053816394832920741351418858154908785675070002681251484268239429046034261788664121395570822732421957265473203895206877474521968195136111255284831431043117792544373714508293182002432382154836552862292884587059885062133004320923847419117245438046948044247237371998679695640709713757922681451215960248953025879706081187449308559773201646273218023999804224724232303765817195720560663064921255621934251357528689645035070618200007644852166862580973507548824702845231165815047460762732935661563119486891768300009483672645668396973629906093067719984244173852545583999886325576815064299004093989181653538954627600822518167996799429837835873629540085226008549417042250169384662979184021697641995493908154451643123811785832006316869357504788822091989990669913810816475207159232809960199853916952682917707626425381384354480251240831091461571141364700557997384642201369703989018124203883388389787745280684131293954550139207048211375752365057211255227864660368474446951353250896816986291106950139978761295148003234154066133748961927939025193252782370615817957460277109361031143268725282974701878113452892519967138936081112260445676883520709242748269076336126464696272196901505396029510091358755108334425682402545143460160348545058007024479080692663333426818528879994862902858986247280894191931105999419472358110020778394757547576969327374898623663238391327831848956232803178579674501489773093274721583515089793417061927074154196523415056618335105024522732600974322070707044918700644439287876496486119659011112803797756999509489475745980895831056229755759018223939569597734885783412265540888837930535767606106389634663743789443744369823681535482995493886822309347306805322985820367067217758606685194716646685682712430596022758071956891025432810497783464596363394793704562534269184852665989286193977285125931331449455146609536152730813800688489706502784581650296027559826595824047092677062960958816662511074940772665941500043211313060840934908341341302647018332007873986102585014973187407778242117081311598534206816566602381618631366712372086838871141908045254926235065338523882302820599595944010537443827481515429705161211474125758468807624033814252615007353976676373652441784090377493250840405168930647031855558080677238718107238654587150116574313522402436845854509162255816544652766479132271281770970971889994923204059471093436613379262632336712132328796660041033989380105435249926943261175709719616954365677837078489760319564535406810544900062352977996150837209411094146839210419500677250980282991971464916034065719806365550734678489275155956408715657326605549315619389204405808381551615636147021258574032374721974463341838163835178031803750591617208420501142090142853576158988266714651791558063647314321169566659627963645963000504751186765700551551158296004317337293217189116011619114507080121270227705677451631572107145785858635311449049433007724691072256963244935523313796980436209748796265690688695185048917824502774833575122549020523524071593334304606156053642139618721085197931175819406815988352112509108898070424778728078822240089358123266237960577286919283802918559803124061948857956752349391980273591493727243407191910710933059002142008204658123676554450809459094574663603132894472060743167897587366385102704506615810577175154201266348880823730834700358591579355960841563346440883707272205861876914869420524161057111741818462832831015128995162074933702762480431333219263052064733383640753160417003777555738674470329132372686278428119789907069231261448203425069608304188220286175460631618636118779428276484753865024533951088640533959548641533989710842648775880425948945581310913470584299015878163044709526860215583939382774281234285437523255569634159392575421837426671926467646796566810754318941784329291000809469045592599952203044001319666676257845454016290883847666752112637606825894303903258791455922750987458950478795780302734079515644004933249321657187298783179650736105376805955703460207104763868240315527675607705872019354051750321324879336646700749089981844690922290283533276527555187015018613695531787260241035046559242831887744521924478872295722895581775736834244678130928885179855504785436013195858136284344876084359184594442342944518033435780074543261416449983206022999539219439663260341355800804157541155261943408235265504192318147924250245032868079561499346241329657708003416880842219642023615612839807969468634192053975574048154902428172868654020516637855528665509452255499264296090788644054158474321181428801956405405316307909301508552760337602144088641586883241677817011936141763001313527134226079086576515453484706285032242664681848418591813274027504517620281431548325753112453448909684007312592794299807294663451733874985477532494486616535975207831483666744114158020814966690461705893640113026454407757358969195732891520070751685469971310398062536375821177364075276611594747902685087805913309197656938009702247084753308307083042193320460488578835088887275691666838199946745861167835735479066683387127632665669657999445361729353010221694334088219401197786445250623322937421123885182469270953648328445980825938722035612231166796675647928407455113024460595803817671359421124255714482846817516406861046102985136931599136633008631960947348867750820383124787335571298856480259860933743452455647479225868815739423759538236300332098879736221771587683011824732419978038173476385698006716175683520905038031586400655922754051150539713489772281220773116334456449936330810210315085969236313648265939754564486911263632501105518701909804232952815919313994770399986761688370823250754581509087319819125305197161747848937732268504481406712830582306989461074829487282904500510014065682844405920580590832372520672800993715199097342000073473476201733892052438894225683295582566300751145759727759981805623685642904861889948382633749217328812564745659768095687672885302304088183674656183058836801003500647637607987487460950621089875793007370610246908027022523609244818790217347359562542371410060618415688618543642766507533134347300100859000042106467382361732327599761817492389527107317943813412656132391378588069158394458627665386167902976162077392977615955713434873332019716350375614405345569124858742454162931220302388248719766662141762517137636044623489125145240512900078643402039628087680510148045749579679760967436861780843591658183854598608619517644943743531318893371912026063080012350618354600688252050647007266745484479497989735743512609501466838370849985541272077208203466900221532670946354467011547778852626145941881674005291084156348333800736115382701792077534954857403072791634516210236115172863613146130005705789711698189073100944121420037492037914424326349037598061758663860465972219460898271777140589508172455930695930260261598720443546757524267561134779876159366098247712892627680137628099248859142959127381674209917201485991737797257697286899417815552877930129542047407234202252398486699466471412818342400528842666382065545677561057199428831158968254203252516980356268945453584672142542879519407026559217461495955714930928012169068078866030364551876035550890440264016764615497956191710838750164015627774387534487433207654959938639864363369753630368948699948424750371089072896428941505876277914359045211224237750160714434139965120977484191777795286620884072775397562727827401881991379347252445393442858637005732589277567355433695717879491506119057918462144516773915533043298056133004969793552231436350230196720250655299570247526359663676893694911701306908151855093561385095020572240533623658599378821794373170711728489406638987050383921736185847705927077351869431998935674857413239348614367643093184458998590589712829443923441997385055021880005952298311275707084099689864237742483901376511341787010585242411719395017899903962847728523625365630688612003185106706928603478725717494899897726178516097935863993917415879232936116413361033937798520004418032713160097572931090538772007920033011580077472732397714009593446588853059542135592186666286871055717316705317358873233763807706378166622788884508160477198110676884457646008268241461418133226802251921125159340842034513598513317410152739802594761289317435018155399912954926456360418945549231656496192153510818540665416777485175751535327305386862895549291454736703033332201092330272214733736565765553134034988359022620593889482461125495993030126270427297118258273780758205032103018659868316102832520421599924398689048633261115054220058924664230357644359356828505812152313073682042714760280485006653463836379934978190734122356505838723662255673058904312519332001847363681500609476077403409473427255025595007968150819960350230239763968293830445120349734357180413828521856153774615402038052541798115743230107629940627172775603281703835687912438617899754751131245125774890040114638246444646478508099974644590463234658630797277533293576066833672665614057797874804198433307166004111053406647095089870604428860329402374742739968238849252488342443752196535389339587317627410649065906308431754086699771227225838265926973949878129852880945300431112235819129225288470488673789384556631816317415933268436457993488656179800213005907210584895170944207075611025308388076726465634310911129840011530011173808589591448800466813508320690996672214078031685328023409636700227196768529844934717781794884574641013778312811384541433906019102287442910874545682713097322545231130195713201995945747583689219813271526466337376884360340019867439608712717196857630743168932997582288653407445517246101125959844933321811393864828314503505649046734487112921083439545979914564869841075815399836433636290181082069972237058810933398866273797443093219693042453186660927606508705087972436524795885212831761525693701847136191672155384027331107108706574935494522125410682224331916864261195301852714925425256529283887375188740466002057781528901180424022325538590869391332757768664646645716335750341039699600083672633285826378226656405970285745636048069895574274968377335148528258254485069916280507757495287291732979723550197223492456658587409665769244590986355676608844584672224036780310321304307433602292330832443005139720827578320310445217630864622060064790990841845286998904494358886343145014508293466910737435085671196211871668880716815230781991366459451465024656092697281416206750056330978856446623970651151053192599814809910835468328871684772642315020307707340706215856533270099125687199519752740132681456666462411017976038393008597751870303450957741596837504333684635916146541854194503505243962075086565562484253388751029557909700675890469590046051593954851464157306664975892854722245810281260544054840912870218775675560654657818010941392357437275625032498757681213729304902864942334457524581073591741768249829742582667553775856131700470244237768471459455206892287653358170397643850545600208059112348451296114183635644265719597367971997810445170299350634134400106258917833998797191808495737817659396831185879724077242722785219353712775986143934734193422213886633963238879029303803337200758580101998831570095079033350924998911666361465034440756113464202504124345070513007727141408519187611934429091041978515523420831626982267103990051065218741080697852244940144324797588839952051443278835699000194882046053139807001118533741900003140981819538849726634866317933996099035511806964738196720521980374390243479764819728941515496574278695608709609264502389322471028017415805168761468862606451747935043242991457078173745361170611198662771533752553114524652083025724226762482150921773294763156787038098690029473885569775969418021533526503047476769737957683510615667439582257435623625547276607711842715888725715470474690137413316940266541872406543861988115166933159756332714040409950459898251468941213467278327697963058304351374892821790136329436462632340767876831074407515390132839466043121053067911047491947146484984197986640345971518208454366688477056672276032467378087451225197571654419312663472633470428450573714415328516731757359675572307314043238214627260520479067590508210415465665343347837760743681652756385635592465136937563507089950417918352961528160837966102791426229787642404962668287151070471451643507201947113789414336808065047544338972608066117229074622887145383610200882972186730865214048023860376362160265741959501334276241861011673260843673868156046852316086000380660318322069427767708141121909786772976033752485649618748118648414882466275814240804851926576715449576232079311171683680484153941216732715380268283563375942498934430293350144751664517804318219281724458982127823932187926067363581061583454649531742080438015409350736737185749942886459347846702744066498792150655191743780096944650641607817153080863313582883496737776324008291150246335633104691459249021407547173451954810060259372447975794856013079618362261372214847216252843831808983893593773324427621776359377615467329474317383084924145645982253999634823803263043982128840389686009831887607602632251336831933588378548892483793342109381972797483445463256155069202690671000046425944452565237478850486480668842735385379251339275482591470124559696128808892523441797568090600385711350817484770651361864277775440290137563687955401580061503133016807335742840690633463350051881747880077544462367579680299968906136295132337945897622896999364235329350781174845922935956414095790604477880024705749668137998151161354406539980090081430881309785455197281335500895501756048431367661689054711570403424769971332085316565952320595926763841144487310262926983957068595225557076298031492520509842973983260500519083201541633554012076136896427273268540548424029415761687161871760644066553953471409314516006177987036064802301172758769791518241192760064637359539254682546105647541088266179523491629536478624427140725617716778293135978119655766550802123876718579636866559847681616671604199768433102528404861533234715219643491620436732436552867432974114752329755288421772687335614611273176342311920504830676868508619778299823103563412945270862885573448215027731737667356879399131735791485581710912486527532114300710068422872291372495269951605295453975046577030635874612362881538385288072614685278820679523973373147941469487703227386594856427994732877201279557421528044238800280093185577447192925114207278675946208541692257650051576564859724500949718891636441525315767234009401002456602536963980290168086769064375436598948446944320748037764209182408891130165745195850735238920188418048534699678858749776669779388966272925244592187392014796542229901410176458517420774603662586819964191424278503336794836547816737626098884656125054896091218205844410706786230501448524581544409902942905612170992850397984694204921118548570030079555897904162769907142232155378705087877108211490329362523772381502367497237434468350080372147036151907906391899294818780100696342002813630283677113071792490431694425213919887651123637910913036585162042460398012284380627536239343652208267855562612992286644778371791506830903215059665933866606630191730411424852820603476663040534233144704305989816159972493846583737719654597725082686682083387651075341790279953628181581708788964628084261780017327770580366329135097266009068484226840063730976040603909951171291817483908689034520442696279030036052609027939771909797534975154006058586478556686392156238080330763910745870550854318186216576835433295366061356913488493783198167922492035094202564609396968489131786937721426308836987028307567477846768257823397671878824203312495995927477612055164907483733188625691341149987790861486530984579613161729465116686111934683365368491567682973097142925407354847403534407960422302091734723026318991189939290948568916349784553173631065342806288235231335189560038373653018571677777119548462585360919915256060656702543654900168394689433807269109478703167258937475907830036702373753341057634082767668643784953030934304739271444910552109706680255135961545906705106192623403907210964416724081088419370078181513353905867515100036449755676518217871255036471001033498346673127553641321276663054820770626380775338060142807923866677124755517699435690442174196363444300316082004593607192889064311967338135605092422105733816161926975157032330094733496963272788574930374064223291643762763719786470869250752402589995873790169238712284157284908054630581515955325024687994320639123988487418562146221117673174651919348549203408456885382728484244756172266700798096146737847922557114468777674918426159625329254339658415427136461473797475468963752174588138537992821954902162513243893145753706715503052611944108750587871592841820618281868370221131822974626318686515126431688797075388453675021356820077090106598823995760575068102090534606011451315155298953807783525299262703881367996580968344601684735566229630576668671177984742077349016900818577225856684985416507712758522100370163571915466349189972331664970317015759389654079769137278004231917518559121333317235547774901909789268005939938521815714517273428221317108527698651304811907625470709092880238211866699299455208954608454588221081648005068805529644747202894483212176009752464896727760951851503926401704116328866071854443991647756819601951475705677239588229613371291720148999038671151024271712752970760869913818036345251885130816765551212389009027501316602609313541491365581873947187474913222786145404869939378758242692189274921358253635712517065506443616436949443571187823466774266372189348662129349103561411268751000092714596971970599054570089543735449133033679243560696070047210701884969352908024226197915266689297279646893491776125873201523356967210647342130928011048202022988911786535299322240685300700809989619067462820403323490268868634738221914477256826315642833285082037019711597403052111130014488776225700975161678765090746458904353677687316738317963337132088619969474735013775864051819042583994836881091151645606211811496226868963705981696680176392995340232440678926525903476048163185622635167875359296855411155416202049345350876787713749265424646197420461028243207789535083473518582871713881282161306218426899729383040846907451906054636539641543253455902624726717219243776377054209047081695034916180462644872001299037834111912819433644312572998750549183861148460055001569113385216067118005812906632402539389234334027329102304293721457640646222638191601398172125722586999887660147286722690786534043357561766909511226475419910588601010451021941249185179345661980139959676775402850123074311882086218067384693218195347949025234602642100923753331971327343557942735523427778501091230399226984066822582425141479697966179481356135755273127068231640447149123937628285958620722507570923367924634785672845104055656735740294628225824747874572469580371546322166873747821883766310344144355201118633885321343877890636476132821247769238830045093201545716626063195509046845489634973558102358895013336295509529508167615793012166344974291311624493717218584806515407257869104131010650042453467040324109567929438342741124050208470259390511012376621128164832389383278042627317756058443148898990879210970988144272661530707910161290881868281014175535038447205952474211117178968078499891602035344909244543721827998874934524011801199595773858141610845167020449017879137688950058340441590593595866551122629360295777981957259773074215566853732017258240300884825040303378017732086256262261251483146822515910542926872030831501244628276510076322708153859277485339558198473144715895756686008453356183891613657851862063358923199359057746639329162760885532133590030780208952287901485385699130630196122885640381905932594594312101742955837839072783279228419707729724842833101733246547344947630019494103011731774577456327488598909986340823879146837295027838077196285821619143267520206781472874285815242571930113865421138568909655833982867336618988677060175887863686202609556691235057028200459916171062960702429460029226811830603935328042162567306889917891388381845312803362341169193844666093868951665220107241904837762322959796263764715711123000085601580076528932970478718285309174361267417151890997825509969034485501267834380269559691349964450112992961881060294912789374603180720015272690227538668298143592886421893679193626136159941414864551715196028747580406970210640332082169500898576527007757690584889191328813710139216787766272053618708763232371814287026653854063174354106100543553329053093246920696600415458408414891181251925514425566482043513028587722332039358265774547668229623177466679880913800315126066343045156651918705921245746176851886812344606334476235469901027940312576884492944234576671422485552227933237663527639305352688604072757120570005472702843431204623711490122959977821523907872582802936697224854408882629745328207229168680738872795039491185396524492461732191200921583466068023504415493678799697720652339625954340533801835668930029083284336895758059188877886761734618560752709475349074416395996363003337440308181059077254653545886812141691088115999697738007858021392575478815024948154663795810864449441228526976124366239964586304873463801858392828897792983529548334185878253298631633747245543866754954994123533677460218522730117654373297792925322439177265227692990506969065924462898022123940623815278649704527595974612737505127931323646049597018617023776385619002906113279555444222121996788219927800329151892201878530872177791729700860228895246804044494378940661682469193588409946145155199411820559927470708937390376025838943642590676516256931919847135078071782033184179664449794026637163442073840111465043748043074932009914788156315840956048301233353977133304212506368699533387732342833587004863375867394531745987526966103913301084742457685970207877118159124380348041745407550591416735044781377744183561338242836761198353087675090044329770474057738047503911863784757048274516136932748922803182723438756230542300311971947292861335854727881202688450100155515368777936691595936607878609624963192867477670027749525295381918545008352707395204089309387621566298078118325760243023253435448569025315822217171396336037312234196249068206644661256428195034514463938999865002879266724182875855636018457202492471170704300564558311028804655810624911737003593211846898453432950369574012828172596939995237647403266352823374215275753098298287651980055043538481859361541812635390161745280983710603897973576323469071546154255295212582957967701820516044612411274809913430071116376409855322272930205657402565071798869506818676016869142173435024891251793457153023775952931593669208785610837915075915752393237631496408973615913729236556344913946754406091971977341278785699190440125524438856145181199979673274683359143166752501647286423084672971545380071401976187416775633163780577623615919149989849769064626844472265927322922565399173786833904674788330189801472418372351641655655139924980621891389834381786497492168127710602116572275413079414134245065803172751506580543860842656305470619223114506954149334912024312293081262870214469132137204961727644575411691719201719780651605674004388733254505274359382804312083776731080013933380343041991109447014281850074967551239392489075993662637312884519396752263729834086475452345140324958436343942493220572612068535282276612764092678331192911478233455632375520952819875936573015358060102278260993771225204686330526581819182659734491741463048932150070938177931827040830869028702199785183200642303580257209747292864285762798902578854278062420230660008401097082288116470702623874633507525026540135564805994919768727018604463802334587722829203560143259694778555752454390885202746890590432368359040572981700272353080102498551180127936832606936905101258768501416341026696368354769598802252013827998605822868076803627715161074428710957803603381076489568100508827196939043171173775896693870455275711992895439689733871016723628007280976191309972803713645654887928456083071032469583143145389448588157423434109395658437577176523187965722595971857063606733009892487939134428856552653047917224845298032456159161463273599945212462742292768827673728457066887122932158191452230214811017283644968806375229342294849082448857240958991317493068921732706699731097458114858558355134030725177029867110293334523368793689160212927844486894489175025903802732242639215782448309378736326849012368344432120725262902938667412283928462178596074932562769631120693667288975477246497577922820631174952849290685537629637710198328743811514691438656037909062390128047538173568931000347148642936452819977968714254294610843098142614887390184211581924309181056666185594460937751009254055110684978429104750998086987500135612798100423158136656751494278933275702077024445608749158413265525750986677742691911875408398822290265225549290770695138765671489458049187858433732169124745051113605141535603994228771033507389620622793357529107731902509478826911569218734139798323601615556244438640398445565056422802158367893886477551792893738377154280067534130718771274462824912024758435505141509121596878964408717216359283276154089081651007583334506874657021842536003435497605365044055060689601125441729387879110538055777907356781809674905764740004724883235596969330166841920898568540604758792816309061236925085882517836800105494730112354359683838346712997351077875886502062577415113557989892309079889116199377567843976795814484022904224570979991515141068784067946458619796247980036599372863929619498385677366764742740954425526288868635814588880151468481471739549843565578370183563946919785778548920197135049554243146826011238016574582512431981509447491178655626766071047875648629524885492154089067750602167656067349160985957106864816012125610467995574845602849972245695462617121706203489551972560961703311011691815060952078181516630415608906552151946586579728088608035283770988671309371340065128256274879284650823912083951973865619277812987219329076681053227541468001143818961107103034552071558212780325358057313805061937484182883586502628558137333893293161119541241219840130390512836170140666133538043647936398816239764968154439993813627300417041627740637090549763066161372431278283577864469303021534960743994817170829288839136387461179807064232891293604222724376306913586700174875710769641281118514519139598718269621342671784408078703935628985712825953622565151349465693861400709708512383214091048628869464649602412345726406894977396499336234610125438612039753747102451953058248426766473631826078623543888203908780270418492175896565865464523664865065670289815506906034918163522292637533843460786953126914921473465040425955369238255503813535362662734269668996502145465289871653047131678824149181453891070807520048849155140157540862019406683261691167919804427300725923535327180662956589813008309703538887222988925387364339004232384122057111942831841479812495316669956939467931996944460818939241776495565631819849902810869454162696077700429675140626152616753979307480656655562939984444020102927227935486873839324616315612591160614331194038732240634343049391557677513536575750015696498965709147671805362716726636927962018688773138327937373832969593658444404726008252846233426808655592145124404510076947832315340179213013143269022672795406586152708934980348663495839123897156285797062552846916949392838025785859980918599858101151732237617712325941287744247145474851245045368603668953362951568755799791155573127448560584190256432092848345262426499866188301584028298119416533695064886379137699357401516186986989082819280627057158024856545835001765526568106590674905460458863699801745131460536284814976129641625245851718084518756195435852227264788234539528121223263987479152702014535101169462555873054074163855836218132149648808489463404765930747892093384905298046489766890581642716551171281400304387554819818581945276086192741170565892182668726400122625924943898779248953930818393510746043223154052689355317216965157794710436611369045234649816849777721397606863620726338520825030024551891704094293105721675562876788540179473367004067512430731718502531038200669345785354541291480080571624886774398780106625179983799141605387210445223185679791341480311538403508985826196732387770057519669866551016044560693913645907156351529301043234586517858803011870568262496398188297575294400787638316952735333952939450786456649414162463913323659838988664225773093647539191660399280397187694392954264086327873643890507166752979764896837525973658615722310174598660857800359940309007576931321721043357742033173362467655235440452504048716757220790835091556095866190578140479331555934866478284717497768013287641258543750579370710577674173853906364019022675796959941034398079953658831846834185874866443518005986991924139608505551812623094393844573147580187075566767617153426951057887245370683395011399914056044774212641383884460752039318846620534447210119899549928211048285164395139407567104784724651970986278308850096907263594052365908078913101442160716484131188869235391232434481771214082921489815554159517332183940870986903424777985074749533976056926806413740450960866615531332004610783372641885083456690961064973393403314391910050550394937782029379729352578480087576333201081208380116138994784117968234035726688509743563031401056263084556206803587650574682536076028896602262195054800308981237017929811341590748848745007814419434267744605496539985681246392047846871107330583065217276507182309399704239667013915442405679899189985109834530199972802761415100128568002084308789023639633846935297396257637231115643630970010643207222507226797522169279632576796200958707045733687195405595200061237712406417930479177690443116185255302453978792044630516738501974150434081926676802855899406503634969416097629605177925076481653510087060387414143821640182785489741166784256532087258252161599796583241297843928795508383972859208301518647391580961574123132519724453048678783529912070851064732227179609761085353150764263515197719352117882176766457581241825857422029293543184269697452627851092192115825650712367727725196327189448343115991553014090787703940297743034441532674967971501389301866383726248706254230295481248671198242101835757898895276428686959448029651232379618293089958830811997436891838996359663333498260173221949051636440435866537532270931292319478458103939942256314961644996978091947757733420924131177451012065597506973303934734146555537896209292402674863839882027759684220750806336914216440076110206776193197168368285630780431203468268415085703904374412942605893080225557048083718613277404472688751422045943539781503311144538928684391938837710874515840003365003783471562765801740115570186997514014384918050861338658786078608620692152883254441967056088869890368102075213686111769075029644804044735420293694498565097437736154850937857971978927881414664533966189488220497448401100184986476151759350192424892417579546636998362456625156120860544642238563377918926696019556945997072521346321997429243159263490066492094620294946976980632344138668599779599058757699000625203413457763659111064437000711607746224089563508375244979202487473645062525305159900491029576044306288241024502250665251700602799673687679092263355034201009427485666207408229339958166797096576853347270977754033894524242196009815565203900291434881995917075880184874196493597011643971718121146689497354898412467770295234713408037397867119211298676787578398393586822355443336538309760384378814543929243648221678148406802810676136085918766842154548425619301368785564117743885497507216849969955062861875742945263415928193815435371864728702025848893257319076839868403797873133232252538258207399634460061210435789950921396846458674923292320301400329447427375382969211912748734072718965446358896117177516599701715360510697148655684233379011292957946308878863849811449519250536681116455191387487108322046209072996346683054201526745212005723283845957714826389338351444118677607174813643529966636380439573006714841305266330764184268237947243530447558180976325585794093874360075046733843737759996911776408216197157544631866371467443997116404861470815056428940226251195249006304681022737433792502021911885107327916729478377000488666892161267454185131069758667210641982282604888392211278565267194191579965899633034756243524952952797271465621537153748627053269406672358377143636080636423440494947904730263261492151684737608808301777023278048487069317171909221926405467382632537484810552535654961090849846753886387949363823601732228190364315359080443933095433087335551552896270341403430641882317146159360868792616685994865213982863096730550188624375319134125326661169953034664762794623884463948495945588226546414334736258358493857490322694030268326147547414948003449393363939086811582547738379207310364915417772684983052122263016089321324106316630879434743617917515507982954471815909458478887879674327852361826790098845232302699642832759044146522768037814559692138352488007004298088081452118872887117140405500967136957849782360048091524132074528866914352482848046894807002985193164132063776515495868590743710743461060811894219454566223556766641956832579967405870955993345319212230572283735288322937883709362833395728391375275771221726898190158225561470463493879212617308265261009150104249087439848404658229626431209147644454034505488168050474598330186872937716966407958072901832205397876584990197073869103865040835652719380038184014434549609403279292744336732171274404302476809922939678509873159014727408815698807301015543408408962260934561753653288245275481111562184542240656259162915880509408044330801197490363016224829705794771664414221803707972239029102332789894733888195304107428577808527536680859413188715789703896254765771134689633616119551512767795334933849121821688559844970460724785581648775626301231915915654257948595617826477279021138114339857880477225075382094598281397796175809287121852161517864121740197960478414316430291988497133881244314335899551241044032230685744518330166086052837679848033145935281023105508103479389197963133415596134214633483671055474524462281874565048647282920487172401755911959416254196662766814527370843394049222702363688797489441336710721271668575074757160706397771011666458762305997509394817852919958089576828279118232077802144399454885315792656047245079468623419891544061644058301566725239193098491698732244667519669140423511955099662037200487876755036320038310206499485791053621575679432177364377366972420260663460422214305112170996959092073575092147329060029933560635784634408740360441554170512013206782917051523998002867351956072385757952610990357837110692606029802574530255272300832487554159454540813339878180017035672034115388496983833826751356950076630730921185980757613256439280244521350316182597040081470574069364455552651854991963571179834231427850420844122101587610472344375249679967289213845708584523678720512318400114836519659551105657260240559924660898594979319428201450227893287017129823779601653844318078165090949269552197125418826841180396146118463680938362332734641009361994034323775690968294361330786098847671915694264043006753296687736574534738936588055153552202532616911190385977643879185916003550764295215369446181177549045746125410730990350141204760384552910938667909423824209172422241516354800824398092302715349702494114072060510143839616481215244574710722545515321533488997645127812932670288317915358286251802750409770307182302144814603763887611177505445356101453997012925999356878432740340757062498415348875311319111332512390992575123534422768042383480288920468429264291520519885635508405080001825410421411089327396422585312323013324433573399340076193769222678356361973444545815090554397400604304460950580627947345210507275344805872767976631115022772539555146972872742800953735159442488829189987499027651503575100854703754803849520665749167996986999280469324333681055560586370678114176473184991695060155614906161845306192242921011117362918593554100412742013284315313420985666328576705859804946710797101367124381370319481302440113398292292903076832297609811303950578819967914977479609878512610241547204804074575116582217931580843244049879596227798537070828930809838748698026851814778689906510995612884023925105090810391614605930610490903850823163348863044717677659135249272302173354327392952628180429280718226459360579959996904696668981452685100614399472130203046720305238183663980645794059596130967266640396268117949883294996961796827228220049289024789521100004931990014288845242916044826817946426575052363468021079755199474738914940467565584254123994206420700261229557309034030544811865720361341298935646103302494827133112630618347587688914775091915089460580830900370963682338447110566038562969148767672960547655333762623435623929310023175916129832846199558168951018527951036945046341415523593111259355570345995124676047195187561205465118118539430746011009147595783916051974137812118598078445758033589474419304231848459593989140600045297718860745058348769854082230856309411492124987811138379042671434249578186451028582384871970534148515192771113758104720496249638535254162410464632180780523675778597720638767452044650707085522378990713675208658291936657376981119095416536844768885442285918790718798399046439801655435450592670941300812803449862991736599642522316008094611159456075361606027194202108420639813569719688534278362734884177207416595098175648134759277326020021630075340579833187339809495021904994909396326084800706966921548990104719224617021670188738463467345685179424492823683700754115151305230177333317592574563317775991016832675093225565163207155580873884300246797343880611758356210435247085967647383473290674370554816934009468070324103576173157800677649027982058089319090362050479956381454933120116522405199176837754734017895535373685627268660628807250513651449396940549733705701802691598577125446717794263778696962245198390374827423824214323375804151215970104753545204196638070230921729581937981019360942248140000634531321322154981945314501930503286423655199798821386963042520589162892313117706330067452732291268902283065852945702620061516849970603002677379212228489725115948680333692357204856686118561210453633949058704041170100983233178332259301905219391138539899345992394664974538304606936432377616731287202443968345683713248325272018221702012079757390801093360125656519762110282326433342872101010003924598660565285591232233866335386984510901828323710806269073320860257762818334475031783718908314881792788912246209963362048570838976999364215208837750333196366189911898713600254012199019327288822587503999515876709334598814790115928283577762735100002566988636155661198360065130727829611435034988856580926351483370023536556132160381683604971167585822199066564701459569838904517945211278660944963805227576858603283980302623905442075052940372721578008371170547895714603170396371649931573277964880608943300236266917698579426144745865801268321399444292308980637762508805738392427042425333796392118215910032239361536913516838923028699754919317167274200611796499250552158888999922308036265963058053185065487028638091722126241880069283468573427963752109328203647206863341617383542848008828271799582344307019000382823004667893880789875724247443435899389203747834438651789186643108410350163102082225568371206421324121346297508995831683507515862091197044715772483397563624364827713919366620395933866442914787495040681850520946764084340814267142507974030129490693738489495468887207570967381858729880456679746875357356802810071752334888087834546820997881119773027737357353481845773743353544230995757814710811219424143816018241287949073136260593705564083213645387499039179037386981425340365023735657802085034931455247079274839700570552121774257774518960389333291933340750905576950069295158249021792691242788078138547344657980704792705431341291365291981188503877236414320502011365232528868169720139705430013443807833347299732851495996919539322436279712065369489436534852226203830297849556770263521554776372713810749741201551757067824450197254889760619617812086096328647931049668152507205786575963305600981311490743746962840434352667199547017163644146170860057419354235263003350602600299105652314595119644985808159355656288499572678049309999383186820776650304930090421087621227104324074109183420328523471317061984635133917918760962079282197090268072787303572488302587038149197999487738274442183567252928364072852811981158840165035363923319004533255913859612221926158642767010351955851164443689284430765403223317364450601671939229268492025994247748235458836262291088011027053930544013399262448562149359912177960624538571484802579690568074506855034795564557844231914745261055227328244101789098327209346999071263181203539750496051909884546925579435580098585051318987012441772116837575798018210681919121317336930207749676365024116036464819532188208914178706135105572165453860749072184698631834236944546597763794525700249105064711503090018979105881332131872080824570156323121626480519417378288765487143738779115540203257613039701390589446408096885565808374125483422544194051748974774824309397421360932303569216251682684712793662329928116299615126979500584630254509892504767571283829826170191489962418444407141027104490447790754084418897129938435790065943180056252597545827455757712055424336091703566441335283199832656918055176435760888118625417663799035165694029663106863494240622737217865597456269635606406807065605932988379605835210100928475513838841914379649441169122182016263829023875424436627463265131370823238302429094085638109469894836731170407939005695372744904502218098196539083789610005381160770421279506874719171807360845879762777411000620403103196517246757835595751410778448757067610262916021645393935386048838927148627898566118527248924883197347267257277445157465164319716186681566622647355715366369122972670537480108936706119294695215328335996695335465831937673328389822814397960623455330836659593210532857951454718212591539642347534701590726674734592566782023361199993778688096549075258747823745298507581127303839870769213624611034128075411837920230655710456603236606073801802517779374642455364268992291505280140416003393773939692454339662945773805207256995686630299025199284832116622238544113570422649252272639455998251249802301911545518467398593759976787202762580313978851244087496734348634245595853371944364120499566436899972966955765513288169639249283502380495387267819475826358718018046229186609446927445522135734588961488827212473416772664205116373479591845174160584255145640608280188326778315024056666887205239144024797816826222330437683627508696860871609827455472949991433917705613319596000709642887030120717274815973574559144157468105851983049367918803142086267509079461816035189916465457183776292375967825390429101989176843430138321121127566679734524413484960175435321801150201680402221788650485350133683473712717023331914907859264508719220939465500455249713007607462300370547836636247866659319582519825546515378259441801082230764001106523616589150046829325387591927909505302002840557042495231386086555180150006988834188605923030727026421615345900213621126960706829821404133951945254944456071816633455561836850780120097788587704463359412388085555238954371070676708330215488468647051271613108239072979484523516740723562326825926275070045021286070747397406094379171594199915596530205592947500685982305546359432679680276448884758652684773952854970102000030534269157090335030472469411923007471581969350937339914685827771870026776235509237979650365320517652058377434344359305288132523684395665832445876865667016495353426366662640686884675391698400723547991348094651516115462096837434854789466113392599626369027551448460733382402311067326773759964303632681175847835498569285439232063540549971237186518034257178821347714447743876258129136716044682116879486757259390947324216006588401055216932269084957063111451182518890977195703564053272105139039793200243519290783088644240813008197265917295486663805049277399238599907560413776505387272572676225746923882273440716356880008618177173303176351714562888344514055370683480512918165326292806343761291290486545381424773921073505232841561864717962937905165708812021323472465553284263450585546797907383337609208863925495654123415345183851891060593174394257725604457097201552513281258172754852393037420271075066385010049975049268164016315896529728035244354643158728645021309951370401200429990988426661228720489064818771361961744116088620470595535848975891161867999870068537624839724478234934762929666907518860921217052426090445598230294379152407126940065403220185880904795881971451317491047994011464168175655317361462218756661231753144717342411146695124190362781397186645350388711471794356938610513264153995086445041786732504005736242910297967718094500010707424616949442636634830621540543417940245472295821627571112674357471861678236608146305835463915228038243419459352159821667969593100498639588633818382249390179960134900257994100379225606564636653096121977596620277587770134500897743037980057087084134377917197108432238784754975254074094282077695017271909919778745468240732755542553045632165663012706435981736450446620654823878144051087747367795630234152041678961776474064727323863428063125590533201514683677928400895897719790044494949378854192378851729876377288869381796749843143893018421228733471955916751207922855247863749732315770971950695030070633742319021709559909170408849670185051525526461624617994177361984941383841426840108118373212636332483137604543370792789960437318646239599361710935320429893856503039161002973070549627889428579911383970197979050998986186244114157054823173312366429878684469199159555633411160086741540683201638391106328641891390995333603544100025994263480303006828168451901575712620959533385602318284603335088387323692239898310035540377988920331500386918885108134470401747042199869189359980869971562375682733126463522804757077716229220907200051852300636215080630101085841409840850207508746421616164987268256787240077256033958109765838834559187736814979999030715031745912348450087414842559717703325927785552280478492582111870338296750454322682335074702867687438596759349181909010504214017961954829703578986205562387752022085294216214212405004915969443303251343799861553177200134232816396339786461022285330269068077538892057450736241945418626762160963691632746398915659429811210278425997251163442213703353647098122433895585004938842349134017325320896753169964064944278005009360896006915358453008598095684246381782359245906734843193376122343886072566702626393016431785838188646181095657931860834116000495965534956674771547574684491476112683776248735958101909438998288842023963300093116904858649812154785071546244508090560117155117136931773455898087577048122597892144201898572323421198993255828350001781472970898140727772677169283182742707143940833665284750509494755671110828470939576254231544643112267043963408315583065765052986600934265211699739780905649121362838015907269674592984355604784574646215833472354024958311962025614722316336343825667911074360395730802894907835749582599703895777999302640647919919821419305361128891270995391374479252352552376381894359708439232719485590512736937889708997657167352262497664498968640618163317852410341992174298872186831737923025896475627570745815703767728841029287856091964021940298835207075342570805975313973671955873469209031598588391065584052563381229548814443065045557313386822535521555790276077712274711038293233292380077456325052661184906028016348158319428432704256935016462905129764863442313421839977917818582618907402370533613877937763597515424130460009140697403998379211944201303664997672390242361293117415582059643824785861590950609847594799464377067985899153139153988145414546270729975108974669548084708749342186728510412792614458213036706058352693680880479880504380285141126520544626663362936888394286560680346946747203975801397693037425946996758417847418250290869279363071344158465574324738972967493972761460399823160060189108230188165533199992261250240370299641492190283201879136817234649898933468799447334432858713409835636244790065246117523768099810909970475868877095442586317400113483946401801210742589401668517426931116624697779046183583670935852787221275988519121001249186971918402672026220558636084873229841776442698123563919959046506110652830993470364611097298926424437102092379790089367048910227699226892671505058835282171519968001804400046764104534294150540633815427116998898737862410668283822876600657922013157722069865743715154583873152170241277928069358714506719698354761612213721102956171052653807800919127041004808990058646008841458698161487211046493889954636921924387830402764447948158373373220711150572934432609264922192597347889172334828457171003561115575466413502088424369083020895825358253094734589090091284739135923678770302757429749203273473616958032530119806702321884072459568007829961913320826217617879788252358636090190506717059064577738094898601186892048579970491347644482231163920335232639313154388233371324148949614685039438708071649463579692604609330713040483705054478268642228018885198047027389777463481450334470097874555108862682783453740685887299706661450412932654886485262012268627247764129949544464542468254018573310884880032570928594410822778728823063782944496441558473755041726931990368594761056422142265977641341798884660970774550935088527326066700762985808571442213500996094250843761037889611534655354949129122829894914517260138683149786817479384777735806685559448597836070994213516145943341517291092583536652240888873616994223824410760695373752038930460414315588630040796052268463627128669594158503982123005741441209535691920419864348347513144934158843276381379701328856463014004234622451704136066854688016877777709548874903832306861030804079957333808889237947155458577423145133693446894767884830020623955829654580361628298631493019583449287403314305787683965431200872317076397972210863556483412212422963608599751960400060565969830541683047145186164235505837345921588994112346487330232613375311240784818903296515707490804369663736882935653559486004980422742190384482012243574594756151968017107192009781347208218568846845353379853298175990375782257119391889197816924702949746048992570697539527630293377163908561121800820464331409977470525982721873052465045945345326627524225664402583463924719341074603583782839358475233999466859585454051013489543087493551954919872206441507849242285823185336702976328042837963267434735061845406482825907090393996158412329478969828494851546833210265259851520953212475423664041516966084215118223160145849523185247950566951101464415924419446193574079805652443076247758075360409239744508233665616719247360644777384724535265272991332924555243000074821639038426581980900316257542227784195013002274268915983013924555348609433741478504532521927372765954218880732761582077685997255929870834790059432905936770827315851107631702396842941378183554766515361231937625789337657349903676118967598525660352419367100784382558867208354942439584781074825073551259595557316806942934690865660472488385167212247177682932025667296198294947298492141814876105905408977122417290251964961434951197451434400989068618815957289540230674809376327754152388801138465329944697123655894823828704255626799562149562051133522056930538849111691485389837805737153964632922263438726561378222630498627009274442677694630631275323484499069241340089669348965570197599375983623897886463894452689712799947825875227235289692457818741916766539755929045000969371150221671580080575339366519543596753986364219438080765061182173570420704285545875931179680459680502161414116834289326586385181174704076779317870140886022340873606482473542378845738018194331827061102124726915313809652700889934979105202075388072859735339504544775936268152770853681976921439010865528166654996578698281193435373790603354822264546474257919215120132921957647092388426119505397264034983393866103675775346403689157515828317852097478007607574212508817042707309476305149630935626112073494586619554764964709690121666970746071508553460749297699598817670694852895311810760968894874416284756192116699613713028732562741728997916493497318326745726934745418336774342251953055803889169016096875931215833732932717083308794081572311151379166605226626046403362150990270403087060302604594786543141699048926795646404312971577286016288996215391937370859359422197074120963583460271604320324908277410117193085855308575327264913355208223976311859721476830550379570878005078898639175552544470127281820920322285763575309268617392901494280398274813553393402778745191186095523272596388665809550347552309056763529952647481194372206123308181368055458098951883427712854464127105890857960083374543703433767437734851938233289827046411600949652663036826213775828578193675902763017012832196642660219974254845068323430914454030582846164067451247306301427769179160887403292060562629897219095001393040615090171108203262905978248883406625392139175594299847029632631208645073169613949863526216063645805052353496913677181025704585292750101954402488715346242096260048241004140550401861255192735932897791422507478564681718626779336779397557728524123701897592400672937019586386647908757144386944654771027614463955159180851694047592993375104490753554360729329697687475039372178691199464300736276323138892463760018818064599171284699743961540174616018163644139594606418698556758506367523367342126907985256106408911846886903177510999458455956700909208023226623381179532617399814242986687442473562962407233891775331753720720217389787253387330873430972837177752611888253732131241633030488063949465533587624021132410101158511434359080925879251490818603974517632576108146821881643181483040037384133515101732165742737390402993082080297081994768650989009149114374529705492408387133548237485839512804219062229253109046284418173125703476311538290268415976336686026342815364048268944667606753010630073033384676070626335164314824861040021615948831221954004730249110532786719269354426324393718619629303864007936850933256862367937361121871861725206011577679201850602465686978320822572726826353276896309601550137155071724013702391285160411738675635376740537102739890970287238984758350508874643661713197025657657162855899759532547876746757529626296264072819994910289791957215609297566229476009787964478380344926579083999086604537779749439197544764595065482969681741718509089225827394554280729627278521576963329262521801436087930107645734069706894466931664938463931743909214361417549551354783979102053387562327291245012871478543769862914886498374903227187729303029112079649064559502750015988743083844622452330521834017721014675250451902304031449933481700764550053714967551844857551693860819193071340426247269407183644527053047516611386586562068293847606251585072007915250489697557926348346127599403837993016807614180870899692608241335708609823813748342330090513654996491263738555656566929408167469472649029722646969745388098559624532385570178696236960169629752493270976645064079831887999455829397380798473713544853372661468023244440941211217095122222993007804483603573973242593330465556968452914345599025226916023613554903395889340264978772671028472888414436563236366100111765963459943588224637632843499177779749831408735227018287508899912430201106599608655179966126574229673737757985433048981419792440320188968942660782093021575618570724985990033274687899517654647447203929744458822893058003095759691730175243937954126106422663519617737979691295870196143319072934432544074840071540694362579677053772544520268876883243476579573603841925453428890993300747277509591035388622059366238120448822022586870909695262558467742719928129110742587827100312039242485113940047199890012257061478214611138901357320065974347600031476647188484154953445339753541995875495769206534687301668735973529276287689896144023781160017706197449127512505275452151224081906230954122038113055535902140140404383099552803338509724441721567518550776108710845573654857466178619947283354495691468616953344602221188173339596612199344108485966357851012523107671816406243011154315455167156177747982076400821022518701585750448830065583066798767867794060950613555919405604174260361969642526086263143612400974689172845325382642005671216216392382546717916742459248239879037576148810751384437641839667063762287563317213997375485675731007473113072042463006014477587239234041056703776162111450040833602129317310482781926550492424222660753931951274394234246696575444947463717239073206551566561565362094610604657476614353642488273081127829899793659336374072905782246560592855534193117012215698277588447378349494064909001469105357044070289408470635075371725550827069884851631255024902656777445775889498198357127833214664592987095113061068582076180182647536714920813169414848375657688432776613791296327627791504010050418651876632520165707678517843032727995818202967993323648222228497748574471697207500716930248291865386169123309472573445028365629786254004275721232428928341350047320735756012437662974692119887166619758265133163356953465411059826502770617465770740903808147416649450418418691710919777162228635966881941049528829607119145962865755271667657317342153901731508427542737229644418437655822088379509134763518611777188027161073050553824335605793996027142227865465446742366158822572054538731980111826227306026461908850289416636069628460651337026803943765123631533292149575508593401835429242022644457886307221035565155486805331622128070046581359011643646947655649048235953004552865858700198720503985523312646476247307569758230363905395137062786303469392266865139292232767958249458484270330169659367365442209999702552899640773897964702296154830542743406552496373089352781633824634288967540112567086381106422539970525774816958966068324247536456780604536295980370215822018972828734515539794115376412173963310525207895968801385919562605098087185351232758212198270934556742774494332496833881171329174883534196617013284411170248589993351370958302341189208109438245524467061451648616719250583957609031952899115359685452829116937536411307070063198042482848861193942191581525180577232771502578038044344683285775326775032037303835400505288643700983148718290872159193208771340971780750273100440669908072349762756502971522958168512333015422603621325680139439720381913687881346066851527704332768851590668072752334580421570464747339494284139456043385609660399958303120842959904867555859986339790067512044589055623159769825054913289676614844547233839362361513815133100427806391191670240678451952880703139938714186650964477527616682018107945819347937274727544433781207995820696485095571722350951843364247771719846438901931000983367223376652289304787427629567633142238654058149843538974433885692789686759707462369626596884379915696644353831770828245049255406685439226376716893761932108261817530053567612024346608440117381063474969786685655994141694451209513891454787333136236858574265018771639897763205820613691987645705920574532771639771686700974848140048980856003772028321864405836258836554096940478013072729966291120129741728561877645288701355958241532220631924487259403134051564440782105266422203943704186963440933220498681676254110691902306978115490921299474060866087741979594810482486011473355944913053315377660197300908094876945475662367325580637187906096690693527414681203704222483591203660890416026448838760777127611991824812273481826708305693393963864132473933786426439214965497678135627383507036568272819965282092455217679180776225191410925892514101643221355473139966726726237687779102121198558330620313260389253083089512187681438321358816426559007790437184438354975027306048219889634051635319341642349940347489459973836303570899622934345689229297514277187395413604527289275598823876778972962191333969374481019897021590618524248005699049950242423602785565932503015593021491146696655918810062335257864944314573873046993676650462690700166326173141052180043725982978893091707624541069482362974325301595194866696829788730969597552676593518002424853542747613094681001296826917259650054509158776984458672766395678730076172760858191324384371334083266343249357616232772856594785460166244059965613261019280707924478105081492289139277187066539373197983634082706730954371357860385028575030980279512704933666054537380983223814577564102552302572022454918345969856766331127089426402294406424224439168186497678512144298174200688142102961043668410464321601363594485044350167310871037538144332438911269351004103349494927254038726128917149491606658984626881098423927781843659629546184509299358341097894986298250220019932587098795937388825414234739189629466442567880744656463475078316748930042944914218469807872728234268757228389106291058077084254030099781497633082186791519706030562705791167772350856486776219987297311612415355023615099733949674687347699995959313909626485567613079576080422274989565940546009809859561401430127734711363408764459350387729046409751262970847273976947111970368243265482486671454168268527352242427909358351636500166606452166071541246596160271406732183406408876389272143906243760044816934024563080539545690275529978533917008364432471875586081812624269360160821161994988915396092589570789309428018880898296793295179556122085252050780583237936092173725044838473227439715587228374676535371138600438103587639495067981177671006320621846012201865401955243708348135235836281219864304624920797854956050266610284442643082270159317616474964330002313266431901876331743304911281777916248118843389903736439117528569044456079335059498512553785088709289895707338661763841095722173130155821077077818492373765459868357989343947068924222157166572970489306536944896992457102482091612351185388936866174626609951769824165230152390390500407313672970851558443773067633250094355186946691610373469490381706763160949888377563145082823857561901251590983022587978871503239408650434413265728620069949202084330342802371135916995993217911051882808145514489099982318256926306179195518737700229343006508904322070604995032518876180678780425802660634887923829947914691888243023992220633462232658220680837361613471287101372062103882202987707828385080797345060173771141442843857425888835676318560311514374087943201442517612983082127531618491304571658516567831710511150824559553489066332909822933075663882991643501356395666741565326758519906735187803119560154231648219875951901424577109813734907951098479671154216868441350156949271367354359443986531501578412297356575662342282317808606345208362403299739126080536535634260629559280215539633681014141052335844875646641879506934615406251119924481833598789523268168613311355613286908534626628072562235471661990662969858089767268057458385948995260125478080822328455912493416744868575190688825220181038151928668938937069561864781901084552751987070044949488255600718220905730163892425425966980633480555245228104685859473946848993454550844722744120227130796837133856403776988698573760334184548849416578386423650911262932140270274967903083187079879159420437179610656581449899144451366050181515860486142292141291448477849363189231676901834915951338977419060263823576492719325232746052118778761006785985658774334083486105985831652208719354259794458939700123982445145465858635953203777002644139722641833744776967792708968104796528684989800206209088917815193543828466874086780012253135860744879618272701678443546501125695759074914947241275096464312723209190274025403306808838469272436827874233254464494327863598614282781685695404482708129814043672816134577973742498694489847294521248396009386863156092633742350930687847757776151422911606229441993482016071502204945890165255917188910079287517608050107212565360421001950552582046967095364300261729472111735192388153648105738729392446744393326341041880555415402566360128568580153350790229025839964319883443010570216621275784945206581711690244068818632552831730300336585077698002629575645627741514874129878684028320465647496527635118214096092535713632183573950973893819507904856099283965729985139504364756898350473161922585851801220851548342867364088520513934933406881379194734446614892086130246473620721411263350420885727509819302584436052930639526348566659957004658752652760827282932002857429628941979015291872607091577349798378381317459016647223396311152935740277782080949852494143166444114140013197896515334445252622959706697885228224365136121743624599522648347109940865879627359205147640332782010225195891178296973225922763089032844471977788159065569857674576990224593957575042224694250533640014818109677169733421141107553107922587231328720243998302590954443906726979378284092440878107050216198137126970265404120440013516202409903695218179501044039919711487566301606718551706934494527631801495103008683956984647378585396278602958975839837754165134179733967666165816733978318772331450352222229323386767344187397758278747997956964966914133607174382888532046468630282806400303052060216723524774889331934489020039275980629121058611160930443847484877820931914549499759906697994572933761185868780877240264155200603900037525546244923694165122252769617882192246194497154934851653092753398043529888515412792613943759019094413410129706113013891517744260237193740828255091395129826254484726488027736115495877582471705047464737492811280804137281707675159032750122704419180136519550899143982800365600565773789975347941451669675192039927574759872609531068313755313559897677260870593034423497109584885421804019635243161387254031672422787502603713177934885597927026495110801291338461377661761196376333433833812692209028273092723060685040653654256665162653620533101622193497694229276327807645535006687988314593458262830357948400067256027148389758636826551459990560039202538515172142806691029598626045424974731239510416137334605196920014921681490663905434514245220964481225784848694303443879320163350835028407080339794132629058511208003603515903219447144910902792484710649629934643381194339344261409775703701338316248610323942779215286013167657692695101849071265654090824181542791279337638298635887859104893713803588825957349255933841519751912759894607568282024726667307224369857061807676774113300968069464280166071392693552393395410479078773359213313562965812004686106043074139084496485959042016799409588674863902766467011449029533233967439681025167835003201254386185198842157824341123899466321025004821731759407562272937323364129928880319791135631642486726906894039146668024098397068567816347656900867788076980571453588999137276316882064704088147264227797884118119057140445205185180880558140864619635051170407930263886748189399585250367024460906578761866281659784278504872756102416234970966757411491869692181641935911379195050366952886484691488095632686204119475366960057641224800378975337084235856890318349225475983530783106226918877621446170919408953168195953173734173086200590687446258824991748628367329589748256618155229431985424026782082689829436243563071852329413446968019489737657613690699413210312783555935028317093244569219886582573161759155422652359511870520932421123500709253653286593308334276658585912093415749666111820030531092333166893460080664071209781954452758753573213660982758700188060064341828593284909363422669435133799881306831495257527944219633039289407744461727829230524602569377119358634145192002782789609720995618553564376462196725680751771734375606441266890538325837010505107957740810053216374852296853330660531151511446486323622389380972613586115748263854702858602094777244563927774206875297129475404498477051429610064243439089526969045977728278934330807792340297839362815126199084451263835472956825057567369519912821145562465904133169640554297849963694485424543799634071935770601313420426750549996615566662953674026811264788100139727405876290328804960511976462589542907149011319799793024079822352812568091573314508572340611312553972359210485970610021567248500474008113993520766241236074544624208289105918259059637311025168684767098333700388019151256373637709535854345172984036861544420176674176858696522359019399866472681075240641727674870347215447241532172723474219167631255490147936334668268986359932831894398565153230023710188694492742671872557061882808083713828335149050019964593512891512870109402812395861035191557491392865238793217446300534552398767942745335205457805608121682491006168265010156466216795952920808275656239152558696630579529443750744420982313394895045390225893493514810910569505162898818074663509713624459983380801104757742631003370786394829030533121193534564075253066976236751753952332285771963585301501188701069416135846950083977554425742561457521169561660498058108343078056244305921363702126324736713849983426666720768342655135982071456043760805290266843031096187098668322833412366018174702588499636204985852271594521565774677452588549444225071140964235049057179490651696228131545388702441143481859716775212697348892541572035267177911006709317268243430670737633690119538229609512272853819206434756454765997681436479401391372455406046760662705505020145878177422311978967805333098659759725151150215546908221685512039554100126721679293401124955364307215879372737856396861234466704416955808954929194666080714875497634947558988627658468902738182893003032405996863780361801118254683510996378156992527144566921125070214386177865268115597285886248402884049331759272302878072314963708581454140680636432146429248731785651867484692805708426802695162905474985568723323371816381809047774843723306500003605659754189225026745309507815165824827721577253767998251363483783853846462116045832058848775416608902351542681164000310366564388601902857269405778898790379184612762683296391030026058852097781637572426222283447468637982359071905399140612593493699746839912112435691641393717692849545679282278488033124746267735511565774397700797372839260942419240587815588470847627668582485292768389949504240717674327355590279317949118666675445163209625476233380430590612429021200340426793582214036499313233278240679420381680899698252183037702898557213838559792363287927526251377075942459743928626048072545829638798629023572678380089975376598177076271243554226935101645413504374415898832166484604891099471819135779281104701453655705579604794701980691949488276379847917044798185885278116134785254046369124621556511057248166803280309397098104924432723079743978313397103265768890312458335301870425359124877649437657600176885424287160518754410440603615427934330784195183737198344117617753688762786235504423457843306836141438907407543002373848791825058266064922073922977628411390161992852711278559627761762752310030496792133361858706882392643069451467699048320233312539620371575833432115602993128419620010704538272673683703313447403863160355204240532540241466563896531411453033227185691577771818353778462395895949445687331542719461692397567812823560426094125117887683315977958451189894017747225098276983701717016664146269250239091978073118907888827200034152307494327974163757661941178399340545682128898008477255635777276516656794469425089179092741410591460940881454250070306109319303760781212445617544975533204036442685185155591154669098132827525300084305086903831736215910586672060541610659827590254086026700724892786054394364407325200812071378588630906265128002436988692493611515429559345400837276933440547604458445665914567902162089943724444243502368329204752114422197050545895113605201241936011224085985449509259246006227316443670074423431525581211132316541370151014919146073828735407492353551469288514166340427169908123818029250553058825244617257370110143660951467254190190680349428299967322125404237265542511895040292669646390388611886620399152651934362567158136002305329981934401510149843292598597965264516304830878465917287317495742323902523253249407765914525806103822604649502254667555885390829819401237417577263046519369042860556849445521140612153357403818693310777221513094416068231578051332214585857031890543525507115520905069549590545770463377885563208929918137508186669064005080213415451736479624089794188938340937851056684042549714738451182952384768817836261040668727151292487427167459972491058305681157448153336302625702401934620236919837291891803668752892923866843364844713062305800384924837837279435382581900200978949643882895265270615380872283073836775578461030915420483005577436874151582247755090680654450836864706836318224316751448804716879312114235117501462597730555633399513300612806431275422448593139126619038859195448158392678221438119701470892530880962901977350690094162643346054567251913901988499881297722596813288852412041748919274520721854073965401067452856897439504254262076825407394956520091363686659070440492107700358713737995582677400373297117803079456944821463868626574865153398534540732029550434168684933783675870900010063575123220254875318882968025892727928507706870041594647743763805185144391893108577190731040678481473680789639621531623982950234054897736131194458717899637483250161696591473272537598525091783980616392350698891854181832768412727307908007274641926657319882828870245970563200792657798340380776973828698327470713278564505716795816173699598835270083775448303844278606032447122189016317322217298951125174877343167087657580766066582652944179155058388879561296243355133782449124586234793326888960974680071108154801224008004752526024185873235874046138403506406920159588966374965887246023703464203737120091391741604619421318124573555030015817512960816750141426387523972030265408716564730750648913346517041215435259603084629054678965336565529120030643378292840308671847574638127502876902341999013717499801820126086292383821789948676773507100246992878409224821262091475861154321011903000313302135605715427022717642095905101574543105376873418059842459538848192529371563622944561444817200029324521992638898587498977394382573255934694198739801713289291925175351057822638907982167068064886868711253367132527323805972343504742869202482396149576587503741179022186318630292280637220781788385493494841752200957287466722465670916624600763457511413777889787670083810882391574047218771213621381985584553805125496084979229263952480521285391024715702169272801827018289638466239826980304819717353765937268297781877290018250159550552859228702983627917248641343738080091873681988428513007063463267681781376399928362030723803535770693022344528317395146855727931606917874510446866549066106695098632718059806669577859640703618368842760624303599502654723881919870271767409244453001233205029081498913745378513774946177310607890998636668542997374028459717851548201344141245996717757537140187685537747398744043229128839009620007177102316326807304596042445300556846029939270626328017255801165115765066589138809414267192462631995408851430211543559121601667808393351895910696602582527936179850888783321823359129044902202899166766003498467264229446657733804604490449633862379412217190288873252500972299597830815564517693632819264707157785201113010574430482648832193691936362371124719346888544412440973008068810355191617529739886989555930322219797632254589187941842589590055534564115347340756857485431917369839353408023105055223944079088375021101980797874683799181276956088389990884845774144133209279224011711590356432949489772707611924955529491014891566049833248521438661319622997660691054705267876705775284285799969455022914680983678533916958627000449399299190925197315734521996725600849404157543508894355180405509053260912184790992562505370834366707316791254119319780282511376767643140972767271983491977965602389002707280098456212186379578944441738119439711875906237048619129605262991139420483409019920660646597090964561791770955066687297871607384834672100372701611593079989886173720342467166511675880690645953299890595906033637358844862136913152388595001993661829810397130722545583921549402076550045120812652688978605309333454474036244996179542218683759832943329123899761263917322076398932736041475448526352656514428673114006654462293217067151223364722009416540797353722264617243857342605395474804487041590093858648364455559927211158972100171345341668545547033449453487508662854955967378224086155795134803448777535355632710907120786801998066249736510585880864119225327179044535990398656707425494199696429019079243556048751899720120346373101430011666499690112586201379192806335746417718851124569988229867573355225292708220335538298384040864907996838840350160960567451157755702896057081356467388504093913821870438028864490386498421437001365529151820156700217294369101944713541289347825247341811820635499034769301153962920592128467879284506497499999434803445925373976061462409667500217078206487690611100871141037261692674421045667989807502876470982676174941409157335691810634440035663344433274806852713051177674284096126316610843739269559990459022348119650466289176254344705891012003589308889170924811053989444846896241722908036173878027567308011094791387665403821041801426437585103397614234725385695328655044015481449966631645353580184054846328255269630607704422433220066422803268088132117469814450407094543753047224838777301070759919195320686068319754931563743172529850675151999519128238120032285974444401150000831772981005026552633810294331313147938768318108667497009582144080117563097169363177334340052454659774713910583511707595143130422672599121690946974031694044891257120054649662875100485237982357391010398592199932117338259015292472192435908393505719881200575781692083888275419067332008354853069116660257569767603340480207097018205951319528314715991514522769137700325332722886312993598235354862872224994256440833847969385260434336586477975931143531246748618314129079410877376806174879292466830477807968469335622695418233860711455718003378428476193379274509975523603175960452144851972590575660012049291383018508204511580027157177753410695372136174222415514512903848809368867429489334466960933765882961972129652727982555779467263935414511725130724081738754769009973381327832936836584443694897521856651443363812867024305485598765276844481641392413812906110760301658640712351835084562342439249289764993410309800536156664941151680557681085269915828647277247324885448685277418339364458146825221510746658071421992602495759310835424107476870099995226801033267334741958330892951672354103654879448676226924366628965914251579047896151659372693124992576284380264263497121318461578417115955159659045937075659121656813600735139754050285072295510841860905729706462130239639826852112036314303470307447222328908118277891086509541868858708073828057963466779977523822943915105708863472112695670967192569769043723800455346332683390489710610579277786190647144213276308217771362736885111113959006348325598351975901118494870872379944289847820710891964958323037883677722365315209261800168780181330603416367450775688536382056823160885203600228414111659951594789261580111859735994887609492496353562412122460599185321977350369204421189019188390715050987963917913237066856022326992934354069313380228395714910332089545076892203595370659458163550563629499894673052086950844878113237067415055651882882070745340091421569627678500553986476944113139475815661527680136393205043864304704228600588539796666370509382000928697680318201758259469202833766803131613017580636165485788535124337742048915878644565058939142352189231733373723666291798645963390124446562600828807717785283480114187590722468847382099926135793888865229172845561682940128812215713823716458201757969603734113219626248767028922917253430639915007789485137174806183596652111645523406942207018536565920528024515006773795729829551942877407575317326245607071593464057612423878859913347753694174091363795963481057371135957880292406089697657807806042729609865128879946384930126966941069201895779398418210332250789553637684160415189457638160587140230013660638085014479340578386905894873251597556673560373900698732210063803774850096893172160952517711447772965624502463144451809725378629370822966866923395060186985338399876277197009886430801341489868132452445721197493416703064658890575443485931020029421583187272831361318916717971133262468469519517831296762844422830131518588030138415404123140496078968366714850833165282781815261613543179273434454271969606269763879910250674880536540403842767239725974963799491802680812873516481341328966998115680965082637645998770794908683642627834600982314893944292653662663993192010245457998535194061250456129469932598197909748392341484489393666907497219524296135371112434401284075244068659472913762708823886665159455364655113022854845367842009671319085214962480002456413986877793373956181280912703535758768729695866417830377422220860841320236959245642322967074015923564554190806459178098150606783874383738196058185346475242670677383687719078995168957742097445354528156804790555362830352911186803847711981980059199455674867929743563346711346212641163066409818080560035233860364802264941826624075090327195430331429501173115221178830046409665007502629986296074314804595572843179893796349852283470873769583219113617454977689776820530820562718660672834822713086726435915942727951502185963014911357359499269181760077200514234728606841831020222634068982935405381916432123700387239329537590272350943465848039772305102474380587147947315131956172501136157151753603657815185327918306205537312545199889608748061097895220381254079707267599396971623937854487059112030889939983683371334323878391060444354551931112967649307646097237212069111405861233748414960588003349602824831607489222862142128534991013649890270056358480422168689477714417357067206708102003480723598274651930214424282799394353967567181446705384699450862681483245467898109222691363745292194077769523270677425876374015132396990030937982180331241899186295622394960327541944610379837042288691933245618328367139376804391645117594362525195978582696261535962921616993006426636155034167097166217359793377228858437743725258122661323877298615961006345041785652259591727564956135685378821832981190877695706876349729669023233236955814638895825086722268323591843297856640121222164586359492105420900198517476332406672798278020830968301595994673341789528532438334232176514230526449098304574641750858643726844240525537482064320594269697138691417036634396148120469826315105641179724104256192347534303021212675376727799633147703393878876091620554186619627496066201183116808233455162569052275696822306327453506051212832764261719068985715922175561590211530026068083390245039195602937299180695560522555226864377587998563692304788792417791303199967181695139968162576324281066592714874074195112952708902242498721210952918822179346187320314161760697148353076613198541453352295554327533074823544698108557904637340570407232358828284282776455386516042589227387181242591306731920749030747355463749667001189672545515442439946218819875562373533341206855203370948263497408670458782354918298898660516482676728269905278417862898790547517677842727732775727945347830897574661728298634503480708314929468302170622214269345024125847213798265519078939681808021541604458504848230211747530936482209901685626777370284137581479624477459321181541018285474988350703870129139289375247074301188112143297864207693325742099772086831296531331934877885416630142205340191493211823611968332689934248672977728783783493463095770395833782733338917428288860240865020876799055720525635530870688025236510272144761340814476258150182323520898174255831044024993975347604761546554615032090743889781551383506146583936077424557855291822921739467685567183671145272204041640398133635161297924537733343378762537707796587261445394664716924654456667358990621250005125480294308150247468319006077017498005262818710076543296216895095086460517675232863027927814241629311491929425965982319022940111165288585968952111091705570722892297133490434734561413528703028988262861982227327711942091240090677911254708482101266422045080325789174101812837319492074088584855300693734646667058683653032007482676608318182266508258707314395305427548549266957099220622537157167604251572322347323375588195999360095365544720055801720767735108328394833888705990345003625655750834828940519300968563089578526385930385982192449111964283609847176930174385209014474358006247960807548703904272438813880890903382711423641915721849048064891582982242179445851007937160859998460607255348808093323803145550788704044277083372662675683795690883309645093426283513220141956172074775687369316705257009568650830065326333906458316668431158712662612192699634165865486185725023830630190793297679253889509811625546335690929866870959146015595747847632786709244839807826406014767662838968569527709441631885451956535756308611103796073963852672289561979098026716132066012644049020773741116369330530772404307991540989261239379548790062706333468864410821920760020382619793493208376934589708493647109877432428724856564982768056504086528086256196488524781728638418583336133004766736227039869534101962276491635735989194854601871465395394686918392131405319666679716307941569387210271128976390649264488902051448035838339205063781285682206480848345109289323207372567355660752100634810520565300887217817179245530789341047518656350090988333148097269597007363480874969002313167171946529917609040268350224625725311722610518011784521757583531217617838360145638765481214233263033005306963323120334810158011960270935630373629991015969304797707429341650516847830397163968931008133005265654111440577467057425345332818220855954494249015835809932567379488471626606297501738466038095745026730990032592822304196251175568528035279869077314506010633072937287380783021860247507605301011185983097834582183930025658373143754884111906258794406414752072536544016124673430584898245571479930335636338116373603765973838615724117683503106543736250307280214691142529018651865858638176510984361273491636586954668483125039770410060739415081482012587086591772988088232984560487757110084630059933419812182739557440563172137150326494382299859905118746014913812869338410223612724535681624285085494353066270293737835634573020760473477527668551762546901514601352081230492310673648780371393964169262408620839942102407576093421037243267960039951857594836993631689146124350822110357612931262652553163400322484073433228271871598093869491592348572399247643906498401467468036487475939041592823735901639820943960651150150481096294353736683754673104555614474884000478533530967986122444200989524848154521480737336558564610581340570984342294201827044219129457538724055571456488396311312246783801721055838554570260712146542329850033517022502764343429916302207841036989578042704588408555711404116930774285076193294233041885862077472234216347885227998910802862867859147077933488892993565381013793776811823126836021800418618732619980794663717943592925499371323232554798350057370872709866609258621121612880565489576105520263155194877542033992081933071322846913129799888785405773454080732217239949426608018132934911327558603790371803104630722485616567221924965347174291944585889863988882327294946712178939205011328948642574979629891836123507815638996421308421105035864266625589858749253680275225513372814466303099573483886644987264134706547951500811693096594965524365812279716649006380932455398627620296074999739949299478319727848126551560018947848927932302614787066823294113579755301021010939367233329804741996649498873457426177166190320624390076068012833411321464395332591749357440130414043219018930252756887767232164944066470340621750604673569614171258145897890238553998764664494466345230397621659303940751120087134922934726413876060338619911022459674838843984015166278268471857779287108960027046013312255928671577944643789105944563307123493318457088124329367557052489292623399568943736404800205789243251399679677557773484375005667463617810713147821748233325298989082208097491622117834639623769789987966627603006054569275172124932006232495651259781254202946701006978602984681350776011583417460282019398252917255503229106645590905383216422251548115491932341213927196762071547377199880031504995875112633221099561899500371158294309395539290552086349264611373410682785939211528607251438248497366762324430196794226782339391545630220250409726765603198402006465680970274502903693028946886947340412328994567485184168553155324380881602478304333213346796573195326456205307320380562992789505452600626673223216464124928705836491380348969789919759647789948465675094231800063779771115805890777444332415581864407576891551906911162832224230502947598368443806290074545630101467882839468601893934398863026669223236605228517686995858951915397998367503713766746159936392969917382242267670982712289416481379560494039321462634510296602727809492547641703326783411997343112735919741631427965602293995836837995847494635604814741101509988127302247138089011879857697843443585365117120429324320419706427984898284195171202462982247480325642528804131264414699521746489698926744151227371223938954210951032849132458172187905729640659213694042218120728052401311820323808448195378107166785228023405976177005877053078406167687459126283673618563584383336816910112364928516337801939391441297827928245673332978824245640462813163690259629286612530272621884907807623789868253854711782092712977881152191438769231367180751585578121947993915667247226690816185697953837790090844556171715410419953462972130195372613337686278485953177451833495965464557614776296509852856001869256862580627871264721445971203134296561217055838810916609808481015588261950836152981018919477538819189602673459118026604845801503802718134719803560893772475073926296084259356272206178961160207384974940433737062818620739009207347470780452318752600091484717130645967292598852477388919796894974551178213475970836871712557515206146836783277116533112762919161471012456974380223736083106444469284176545816369642597623286337585874843453967808465307892764175841898488103949003888050181111101578812601712132327713930531405276288126884702459242730743165704549935274967707297385852780386301796901494691179287975704901418667248780975967152853387746771098160001535425609253640595608235773647968385655280267735475024893974638748678930572011591272457853857262744680216428938620927129282667582083202633475268736470494992781078509634740681025231584108057474420674207860675396343187816458095703671516496891031110376805823000855842125177528231566409114345328450908885920785143438177059849698677808419856223116155906507765697388309254540040888356637810527380477683664457804265715062527740386824903161411455747137383418135912449170905362740003066548542381854078707596782630671383258358068603075174950998697463754881388809017611593080841024472250669705833523845404770665862211296789793500196758259927269889738134079612134270931431830186212692360875329073567011135852327591769934654041635379835043074900059712431406584878183509225574614337570385515628836591620237908268246539159973111241900469679557424273452147940746306003273865516725034309326963961755344247758067985654156928711860536863027362801093311688310495303648410321425543393992892600919534722145431261826029860899168547023305596026197261156143336230917455403178638128726350695196122781026435056622534947297822934235835637472528881724110098016297895882151425138811333336861202939560750469662096227684795300780629545752585982020865394332442288807695343957976511303838826299957570141970061479787989390962986892831700119693742860848376125559386721565504395652892965691463768111217517931149387845423020928278459273141693654874931039042438390514620492958111909507469683059418782541430170454507360864595885840688793975490892024398093181394281812507377914191765722868130922886794656396321294255123881498841950650585951293927393921503251124744358688233684084999320944519506446885538014677935065465635813531086302699863250209906795060152486216944470880288862596897594058265567145404126007546774176088553096859070330880341275718300046532790098173071723713314645557576409471592486231569870908568843585542501804051137482533309429635963661298071134092562854466469754147954500082893995231862081465268863354672534796792740713023282672485569233717727846391710247722005476995183192641738996726515512886435205961207374949328059808346657225020324247283301618758215061082957767951681528534534982185066031234097585751987263017710060648683447050307934306395115594718913768340424678646730968820011590053754680787224870152832456381411733345582889169444586081403472514015026198229290222001416015405973048686675722282041560718528325908835531853241017235176007349279370732819491270502360008853092865335998828004870918065170735056339645705279881078345785615034473416290370810369222603017504969675677334763523249970159169470234521352665049399744900616729291675857165205857367360768576797235255273486943943623293815205439519042967395400114808184130767669478112075892231187764379462428266975306580805610944786420955801008630465407827973324846118976340023291838397740768770416064856510671657620310489103399198180303677368524952185852405017504760701980388927574094012176483798950176816029292958880375119306556576731452132487045561009804823056655062816217396624670269844911469528725240447339313937070306682619973527308139828149880008355871322206665662114972159061215849044919588238907311722627984493490586586894199999549332295274601779772288750993528611317167559618482860045240859875986009967446409757763898636232830780211680535077459998499340694892643985090500018101349900333939133922472406824027214510850840175657357707441461971490206963770127264333786014356281600215002964703301492056392912167030638694495551155499921382307972886402911211167230497460878167416136102230536429145553824789478027728368133130184027876620323127723660013368488993369231626099795828956545793131327534649186703583811828033775390416645620703609671206039058233160951899204222873098077215732743099314091842973667844680314578551044223918092383119802417894532923907378803018391790330511730575597927637328728408719038578037436315798117605633579890596974610913515088869606841702087474330782962031393702105488499595712915819561407421199160667544753692932509136598129729809992162611625579418138080433074255813556304674602060625048338688664924381553506229020688297834528227094175737160580577428172297391821862576034222467296204722508113339548923511755448010972924003391896450256874596161278808322574152835759774242066636628783574888533600629117775259606413459695647179199499597289718680882248612534764215379106016940507023289256777117402280856187680218692813629599788126211628015353701186833207819509890302482636797786792280408971214711223064136262174921765192873801444317584739913753044229671998758543946886962185484426711595122720558938230264514163800306799928503397967552555677809266599561403256118519529779801647021354175041248681121568951327071600385936637012439883131696671630177102522229005465054052230309096854048712250724874760791053103998458758977955728947974765723467675053062330662877092062029430403925562151208350607247621956589874293802436691414046626857923928291239131236798401783200788897072609166558686229718487088193065029526945333126692785053668795092731835691559028610438549684486040554458414820870241702506492177147293478117118761032608003105307720579338252239476238930225286027947228639789689328771196812166835018307759947541866122235754173787557699786233896083306301031510937446909384804878864460323750972074668829748276598848128034002830787967700511883805274636445549373032196511207298620846572943481436387463943489564727958362751265008199714447330775321623038086802054186974119953142890311604085385432535979663752932996116247671880080194639437563717114264270634625548505598557877829223660540585300528580621490910439131263295072188582657122858890978314193267281356592047166977156956593646011626798776986954985637190731900856829023691880339395842207808807514529877100218912794902232655060019402975266575139429963433050584208308087036832748266948967055057272760671498982646279516087003966965119884898411882279161993891939407121310027343163432289252632320180951951112852673494543944200705743036276259749667387763031394095584904040931859940100260253008655598192655321556589691374173576326913692610828744174238373535974469173678661397524415277437224126477150946226566294105219732954041957343024233360465989673989463875651938194211305347260958734960266940365131225731242026491417191807838054519439731002525938451369257146432368660350059383911104525924528943312695653774572826831679147049796276985477964531198917640906642870997273766515994809583218755837598548848913369398705411228508460799393157047171254822045976238671840690324926138106274090963682048601403273295673845042871378867496015640402690270330770129638666780094437963715982083978623883254630506902299544345459255710229618242882245901583968473987400420681176978021206812124086410402897905118769006386455257233998756781531786587967970163255810229381136128346675088162462156587628490327118144793656982535534577203853782589906849096146976179603458770694160648227477729758306252514197657359563146658373367850221964758800581584769608591418221869333472748830140901527107887008948984164870027702125737127336505772539797515155085632767013416789592342955773849827887872899222619991202175476412606965988086550836637878051483230041865802206954104234814241247927957510607607675181581868887691162220064265871431761725871068188155593041192006503448266743670547854415092619992039930852769432850151370957908233030014523331011987054701496444904581463637892970189697554992849067830730976287256718198166776121866447293542150727762177441002059632287109265590876840045353840818671242738322874090223478532653278442801680899357675184123502621867184945255277968710881804005524224597354051268630093812608598710746934536380813580025839880777933015700726699931892095449945268951320353816750028179885162888822701254232708946488869188782163832220813638055630129951969231162754988927816039292651208760777063964690641698303767364851770076659016092475073589885157158160834417917413010367478898917835525754935100037372715753811150819825179754058470834342640548315040580868456034233391214434352627834713671957864238059427116879518207772562759166876572145465420053528717686637845612640059388196000927899436920783453174792617610198836375960188733823199368716672466708163429120280311833061637771162138034157437173849066706567414353536052551243085832070418008086118294439514098109437133825682017100800236637747236936678540484026711566462548614808711630586095571104712453515042391886066061529863949627797207731553641471761470997187849529243166318031688260949181580234473940424258274818856845255380881934492598321451496433581516011643471361775676399769793539773611896361240927168446886650494474472116978869958337016821631197871575672202221582645953147681971218486557297282678023962434836722595863356411942330991281174959435027679587730722737671562201726791989614103250174789906182187372010781936318920251259631064150034049927629642077297635304585299466944363992216045062873352648011524472967648533093353402176079478938691017008414740705553186308735352051572648040975521357526985084517571801022499650720235935855771784062203698752069421877545251019002802240499433009969996024573178020445593341205379408232582458204886617999896899792350630356470624590136986586840483427589314608225218147486967381706159843696593650464819511242888471007321321479256695752754113323827952176854434887081106058281573820558113817444963886554243007390583515809799485396026861741884460115369575704697366528493436731856323725377136037171809496660923291260807270679761187061154175342380795079992547553066333300444086760945411544577339367021642985114678890894266480619491893328007732027134092508496953403637802929961566016748430459740027175837220573035048498248093220522403284743279279374518096225959320050410661132133543874019329077860330467501864344133665014357427078088462814562567399133337181555234929634077551602237759813380078026080250676884370402745415499592408267325266146542809403597586650361750916406132269678307201522267118344663542238437237509308943094529879598757446851611786169471175047069782128524205120871054697690616074711111682432832153913603451780638881138673033523917745232085640237500512835325296363205233685899110416472460318202573785462612424372407861826882555127640754668758915520877299806723068659040105974364473051122480657677970132890412777238655793444741273435729650967956007732254413034001387280786434310510805056728333837031490638154191044240071773166453369276018050393901963464138156377596423282746947457681852539851893541719229734079390613977895850905809265518338925872370039915619603212447956459367782370382536839462651722804595438401413213548010023684432641381008420776744967711023636270930405669587482483363618867284151646587852661285366538212013524777811348232871066890812816132925056171665688402705979431373399195841532070948855494268819599744573791381825621346108614389761845891405460325151016515304879940840394996750658632139147226965109135100894302287994217744092832074061909630497509349911226691434996402596202406362369953524412797547819298650753935683031478893203087144806303191080959881097882537902375150664646300562805064826512150965019932389671587026090119933909794288931585998881908684270226658173692473636211623083042751609253449535785649512345980998227663868704964645538331381508493365612681808517659601618137390439753160775473260975194711944256519270314646413353020841637393198126684527464339556818113316565171373594331417809758755344368796877101701377159653903092383155374139254940810862027814667822610707513234773710207703735413344772271612738907452327854073352006314873686075318876162093914249653123571006805397327644399697611204352596635384586587801224621254631773695195102472527136479330781399737309589691774958908203855601501034858121595655315499007634639118626775442497558382251763109440843361043589181056330306251608717044792460298220277930588293811818791057810269969796496511436786021306499679174411751180890218282432624663705759242916967902408147400414826765630743332036961402327520995021071106032462763817074316608435138484231189891757741839984043324060904507603686837211979953346497877115592932568307008741313935292060882821490468199992113822938964949769448012923339482688858710828825978365241760061729319698584883337508653899810226455365366977350626288121660460885339094389988043210519463397390084944820015505098871998156902087322657323233986503715583133473192335935714124048055738192958952884276059333704603906959786390430069893242226152115501835789119008990258706622013294911953831515089845552055108578236160447565653939843504933894192476962356560215504123663980012709158833683555847633474465161275821024945907474297426305262405193047185585225024753439827251418763348970875536932149800548920922451375889645694829829516345862959137341427677375674075108312164203522935369652984045001449439592943804235844614260509864324460253550493108138330245956354872412563710746258861824894248124065408880254049817855771983172883770548909297110249552075716785071900286758483369838453007062414243699678771518181904707886146535839344792934675596213901079527136053646759869467660478955239941133040397950874366244232314963565082895149782273999921463796431254489862426429833989182408871571516263491937285508979510698867333228204213790039714785892428312284396526981368337438741047921454365722853013952203112824127062248781387961770358065261949943263643761998315530865886354579516258057925401427699349161980027902598862589761368087316102655851090207094877175221095167567155369984996237637825677238105202687253614627065117447836218793849226824318510252461634488368138249056317438449659679228702625344250249303064609172522478629062143464237494377391876829180591139010202246383807602234083150813155893301201893921281149224070187582246593465373081128329190990576294180153722229795757514681258911647875308738155242543018328003042472620025100845877795235288564939212197325335841005247040378605148706841656786400875655734033751544604057252870275685321117444558484112611646453428452485876021043906083639679547979151226346482767197853442155445965533642783778967054919578810807066657458111577553323498778606318520478171143577416944345379389278962753852768110398409942046362571998075144660104364877094304722152548062443496942505634703175377893565883225884744439015810316158277719048751542959927498739149496214061200972463886962209077213911882351738850626168246595400923889200696635148281577831534389282271294222410864122100592851820337753822473115668676142824217963794344686996258075079677392164810055866841266502853751025864658076929450495879597787271656481677301282157569205523753806656887872982139294086853645843137400649745266243695412049082695408635414653128771753307120311688851337247017593277189418690528786680374457069917717640154103240361128064410712840037960846884160596952787406537331487238015290203370345829586753835611173570872351330901032682873827993392584912493130056025406034849056664929897666133828965991109782394768081415146866824295843014169326198509526516259505691783411295753870109510881938762569780233768792438108696468675116613882080310687819308244059354104811039586806177408840957945700501594179044621469684063058032273572983565187351505565624528496803061811196840316282498194790250774959519981679619354544707102798872520318085637934380667598706498838516720820887729069489131409126790580155344244457003437145829055734246711871384687212338498798023692414870237902129391947675685926879003609772297343448390112584655865107173443424493989024428025533407367669271086637117497775596419997444763201589097084822961965537210401073064445153767700637514335394950988285657002457361148130017921700781240900181616519019516402957779400050481166108801749354027963254018927640798953227963713299155913477659570934541575737947431431201951614589047043573713751931562425752251520553456470535513428060112464667438790102924194091539246795167514928066810233673235475841841977069882383140510437609600299980456076733765713620575836597237496150720022021767298706378313545788444211849044301642763523102320111410926983907436863263296465042413267751801378620467634661111898800187806591345393790207316453890852732637164688929464938311505709627132933179232264458255413078781606057034295150838190906368260113482270131141117245873697133556471693847144444866348439323346789985981304707976969293420037895983846203148559419859716039021483598700218034625782227048981790752556336761602712658784451528724460275893334502092071510899307703647294334672133795489536268365399621552732507130493303785563880959239361815532027643822370178289329584068610469604989091323380061863069989784292139115061337497338906907110190595724339621130729246273548720209545504241019802468455989540996005753699619402935176706694482953993466721843502130801218232713839671622267928839965514398007353727370863806472333208924548833049235131863555134294705038339891812725844455793308546430750746399262582579780814123791953415041538823616882865697591370621232164147281948167684111240680375848613784530045543246825442101236557445592344224956699356566543694576834836334359100900555177035404248981375147186103531343243090877022070155377425083634176172160482808449796362715062564833649693258928266765688462343814071606808479428385726272218747428527358019586524653002272802833073742199983864152143043775253381194354248911580591774828642463102274440351635896031483480040255779896344479256334577446328481909323395776140333209878115829694580568014970250390045424823187696028188977888715166775693343861769940364724271817620653641549048763563656815319895292971062518914665394812523018369519144954792043979541005348361882425389032570566003596653339401932114905227773519821094643778508259989109164195821933094568956188757789618583971362913578584222404042235966949140630717777326268741271092137698257241413053650601552116820657891607018642187853775150072778581065779618085620294023481009673671226897364152575631935133808761793060643484802053672317637678011749683353144744096612374746064600379705727061008132006569229394189511950690573004166038764042924141499605092938107452668728678208132925892241275642161449371092182637920149809322563792779768771430422056780304168003742126010513017707434154705514034593156177555043448031938251040394308809181145877956772242342893450623885021094344523682247557969751133952545092693470118419153427644267504558687678030314246366894891808153607392658550280814661785373165979153088418602229870924903826582607305614865946454709070137365259011722891094715456620814566882998915604651636269099463327955855340915389533404333435517661410882878960856690461209204698526879377459075396114016482381415012573728875415990505269286100094377059639766742688698118247970027383144795369587957973112932689059242125071723158668924472263524771824821117754428343283444861705964278500234757813950264526511967249732655005299798256583064626647737277560631143995820971320800983015076288502665632746521332731526006421883031570641047070559873405276445876706809177672709695166833012883798093198053850773474885475299527077066556887510915199106126600095847546975535374317200953702688030267507475978328433837034546379041402744099573921098012382531490154780391251942756808625229863448597793212432118182727824062982650374297785270662256279700045205312642270193614837242704267823555960277303566230330379756658622911274950781957644975028727445491774693282464528886086727943796810081495486266683256628535241210845878675762902544225575900106379131057358266525560280848310331649578083501742364140786022474884837155211310264834287864785191057056305208840885557918813186951778708547820182238329413587441668665812878690278414782871885733192188910871382358704687230430498886620361197958247733011851923501219476411418739481069774665828027670358092973448345484077716739034274487647987181020988046349823787568983433139321126372147022353350111312536144780498072173698095900287795788523987487323412666586058834848998051618948258693610790410756100194333765419353184333027928118303422888270286030778508353499867023398098818929864577002256380311059228961386094914030024721865867408440130237386756121850788066460501324690288559463186589024263336642306868538109396786499923081490496901288759997082644097389579626023834512057479453224430722462026031036617269254997821359043255246930329049159072512255831609373728766056052173485022257253831680092247631771020370188077906150534020495763860261137567106948667589598911885585063725137372956416975804535768123160464337073358248487586600097502175201283126579282440566299172469831842469766253302911063247468149519953117762343415063264689467430313268637244542326968326176690196872690250285156570442955192273586470561949851352011237898113186178629791211508653366621955440076684423279586105941227258190206273952557307807212240951143902487668246341095125731866991892024701795349757372412594556833122964978265415268034267461243945564297533858121410778922249568846043917130149934314745472947485471824169668903836765963156868875770018796165116741369137191623663468974318403660856108219089168588993772461274060430029660399879901125863098352323414359953770017116400990306635365458950098398895692934528252562395862342170878519662996849614581777476634081154302528855539795646212377075669492429264848855588318650875938980515945500935239857061279792926123868276082730150484164350397257343282262371167708881643682552497695407665371749633810409289310925883609135774256799432840221203817363216512383207785281158067109508419033680537057231888034881932096498780175658618004499298813851565371653638190096967039405604893896720451850925215964132582219530758114215316308360550500783214551376350960839891420148945071140195507289133391741679642744674603695411071528797026860179040555231271049757019359488772369899269365380247010519564722713973644147417524144910740713506658416003030637698982746637148579029095081647181824408962070757818658064674655587252421554448532447447523263676848902207650198357357524820811542572130744387479430351964941198038853481071197605520298542757810018894204760762908609517001111446839789054494949252886064260983462069304137347195682727134848869681480326251755874824102570110048228234884264708839747763424874511051868334847795005937570524339660050367351579865512793253854972454480705924665119350506261220474300401022739625026166413691006012828524004957675826717816837693030593550203447227376638293267796530969853853700637346559655171555127054218767892488640183982582358220535427764181513913337027686717444797399220963762342972002633727817348825035695170723234914025320189330099046475520050681942926651349593458818915661851532634395559437487458620870887147664836804822991830504949291317140588442049263496688163027683342772305869514896216336010262006382827062834890752525800831452965430933832792885345341549296621614786897577439289793942923656917107173487120230210381725327008009565370355694736627613424412757989361110268707532947621644173593164372501429959325153149417294592105004681551885940825962225291318788267038361052381163418246732635385557868874871373492283605793640900350444308527572503294004644495607305654203890673072107399807272912482682287448916115722808246917387329360011735721252167261634709320809522882946421813449781406139274555155230703426761111001022196580357990453708721755859695382810276366688193439901065660338294238624550308926411201208033706497156372116464106195237163555169019859076017539321538057050456396012514730950826844273836384407099872810307503103047739844403924457193853638828032301425785866322001563939223778690505580137925409586759706930188553718668277383964054490011396665737345864850130099458317236452808642086699261420647634027537184347108147982725531442554286856246481339876516752118217969797223553769190363500647892986480866960719083307983643220359884853744487291858251206316931070700841548310744955246270041288402564600706518779158346387924784212720312411770657248174191417699351019574901906463498958532706832740842099862691594203742951518949442100607978029062739304032224680634230431693261929836515815458220386420093356291879739526210736356481494305909535472874781498632655517527346307177076254962230954096027653009267409883960367493219486505374231143162291056701508017215440309176601676471511060678213262225304651065653318310715349938567502199500783383320136299209119334272512866305027497910585096415783238528054336787852801610211107268543025916053998421136810594361296786300654788518443059318832998136342856043722221025088043630801236102184750609049206889530560668435278754040236447554520702433600487442106646174907174296799443682972294321214472679274442372331536742399109891425808744104930983208422872342189873278466325320375315808647158406798613693539086235929965255048382137109579344854509338587620957015574173664480247273545543611483754944614627185055264363778008763719221832751583962158003541689513018709874084469468021453939497676396134166882708056513800155122025554389977665963076429287666015251859480626374799996779719863409152263259192464981787611460805001022544315756649330598443185959187015968153079616004043766452695107840931349483567468747626500997388654681321428044005765881317676718792657840075026203180200907682137490934069682029555931065108706538363956465263782751009850196004782889273584867631744758982771911909160446793259713978688844654084565991089714077561957771591401553901244821811191069798833357547886850315508059348928562200731766515930760340504448865148813686243120054114342578138554074471668742262259721094276373584812537684401979840121320277787661679709480282458628749189947890565298053750993183983706790716027374543887321685041846711029621527335552003338618280359338991316070262166143767976635595392681590856537359253360381805608962574594213416272797874068827434851830340795444525222314207054125780580792879515621945357069683260010335594844738355860003048226743637024759080522132881933185186587641191357127182458407408983907002523525186102697399003166378062273503900803796865086398206160608701501545364847323204002081315650792810062067765196190324442946745998662997576220612034490527888490684449046420721884544750454676187284767096763752982661535187362304362906287123535327046250393995089371988238258699178713220251458803184835550416341143788377965468423166713551356439565546262023874233381633023418156398247015350455785058792612694628840317457855409706679477301597082617480414059927894550146673078861014530279369106604310039221578173091670234332174345247416305722473275553973256955713898322420927688824224447596753495512054700982171223714243483669726234914340537596175327134074144218564976881155653643221574333903793671546452360811757747445721911861006532995262669452651390203852479438473942213132073622876909182159775942323306775502511176431203138756776393462040388091589622292860184006341383861326430314824138964756366622524918010929490822405809731969970741541827182774300080277488972881388639589208695809560645913621708382417787774824233077508829134165184328969716532295794959685495955144713336410088362696865048304058466934050040284938557191962595248241433973552503621702650671562958092151686627821118127839548478664193152557464269488367957006403667948113804104364642138042134941380656039789763935440596434705636539910881314383186549329561190376632385592034907453952544115047618111599933690398211475490398365895415098265680244143481466946647957202631119962348321997615000023820273604699612072754804751920804004007933682215125980659464876125077661227111128530022603794561083952557634033871100073465670434981802367715034603917382051016021499168536299580309864318106789160218679267916471032359908930205067053933309691591744614401141554890809350947693873870173503965244656190368670210526359908972496487764096744663691334664479009088311061848737438352846667322673008465305187874933122322911100831331615169336173699198646758106018088148351784522590599205810027168393961815468061418215523217383463337482450830411089867427979985186185987530807504773244897023134466622875754857576388227705167736313590705108855069235766648753760491689560709012781479837300980231727262515193964337553411378464982852630071168883637769020025872235615907659839564825717652622969766912175427213920441121647446575639204051260677351083747858054023230583310656563430402809013337521524401136906807190281403244475644722794883342851935789733568103927633168481677886862664737175703638705160953622379077473581415931902169615150816404740370531229132862043415013091373462526874902675714493790570896783941854464085847589657774745515272659362514136354119727460190472083648991541344624633660070658192045062190826340037451498824964535053466790108230758708636298537313119714202689669632933892087863156454647816705952536037780891758025434806600241061382445913592620910156540421991305351639449913035007129570761352111606321957327456885036442172042692994778405203422599225796917888163851125710473695626534133870532395253481545071138794279249734151733906155530517766303222234510982714948300981065698826761918880939550881954874527601175882652910450919014419678704861398345591183952056448107650014842991518148165936048826308677693999060255988249061811326346140159047523046179852150596455995000739787930333449462965485592040780592318145690954635946129629019532450058429818195435986312975696809597342526486987734198111861217695424487355833766932659701506423618982981295169670237048249268398050864625239483136768696086275711596719115921840868485319012332691929029226468656053050858027332196186455228881432386349176561117053088429254822480823190105637068343706203386267061067917620291425886269906017355909753726257549365929091657732731232850546631332741935352087640115482482551407174106206279233078439935720553384378518313091739920005690288067779782083670358204006674777053734071887532773985268135230359763091955591155522809413316634001832677287164704848343180562168655396871758560319277021480596163338038364065429985099208104439703677420825810215650290164621594847085880558325722810977661874393114919621712255672875872701200962227534766569631959040299939832742883461138662359854921964242357334806428378390131491778533157181234358377502955374868291216651847514690434579234075591110717703582877044169983844856934027347701529251376786803436341380909189225418664413181988640086637949386997551584509929533428732056490593805603198715420806168353309117856778165652037187461392801756824028519489591495939257509330311470535714533151471280395054838079277832030513574517288735271424097013383895186190639775100576399874354029168689453538730571352311662431723191188501222747018767722364878614784193198787155672185073538960255633030339741317970063872427967231672511579274698166498422921524050092632962483420185806339397565682396789233142416666357030711006825774673979504526205143244331355588873194179609806852067935539944205771319144045101655366011650846493416320747335139951509149105752993822885470315289705797593908548321931462603949914270002490515158731921422031722567509864737810307809448132909503580078882827782065950030265912593806744182639800912057967423646460214422766364522026941326637633197010438926543636200562453416741385499188374088585694504967200725388136432487304030438540039461482046348969709538273153251440957578729769637011466749842430057093518993439164646179888128435980697411070388316129675033769618720317551128987817530795159020628781490281696016661604382993365494163028727974593829431756992996377337404226583446588939868343441587417050859236412779558178122166035064580346723149113854727133703683658323491866267280103800133295943613275289507686132707675641375075989908538910490050017302865772494400713962029607501086982810911863549933160366696991980474101069996496663429957855443109425318373790360456810425955080866983265156852259000371279421267270598128847820556596049055171918228726582009471628436380015253154233713083628573175057656531063934531974466811863462286829103243385248767113097345374999047356795918339132351059095076076659417577758528192878339867576853516941087655822778087952172781678636941932089603122168899340633349379647794348977176828675987135872646773116070991031744547363089291538397629266649227262569047198207083388887055496366180972882941658062969611232418340054669482958763929189287036151234440331751274674036498858364304772037675796047767005223219523314757743185954711047416268211419144453702166896874545985190171520816151498551432904121789564223579881218371006153724971297535156718094034019696073658737617401575786202376038128992053291603650226305657406598419802123407478119628927328931952838881164878393568110664399524944498699177966711939857629485037831724775025697119687593344212747184802919025774838144303124641553667981102985185303648775923885502252143003356752592768878175358307127093303980206380993709033674548905748263788347445885831129694906374715669949472139992740996306810649201958099187505484371678410826191444550056273199162220889190446835978810797375330289603978270952739998646182946497772338325842993124987439064072378750929923059055748138242464309696952737777280880609952653875978174641790662404950234519352426050639088745187472781806277250184333277015712185051700634012765206277643698577308854247062185259429138373512503694569096951239555578527234117456005567618878198860230242850064734670317258370536321633363180156886238095664760557287711655923475564211836511271017940875676611369004025590645375779859115494139882010692838452850288505209462902503238537234812588799778318600158133097031178438023025839894779962970852992679276137904643116016596730295914581985784565459116564960553966958944486819006690864005868310216434911141124848818688259549221646565514313249679093676705910293516553812570313270951552320150510470630607266898054468884352584973814989384575447136076977005582442570391243854697335697057925187867683280008151089108558482862177110074906612700244988476502360410803541719768593447268195642123221844015296976302676709435547533037227254169581472825757403359594344035997484179363658534294609790321163777253556529231640002692817532498725828287700560998499486915887328189803603828441992793210589863387258908609082553700433036415740478546995647858068678303943292171124071766158528117698135251188956717584223890166250511193198980426091194324967416345651904739991589344942142758482590014912687844023251111581921446453459103472278172494046320486473764610858096792738247404660140589889111345579861577446224660188325574937805448740781972076168266315207539090876726590112675006627618992932849387108989067495578492332033623999045544084035557085658985116158578439433745601645587851848376245282157046286232470161565224676540871222423526368200176442371410482479373648365061145488078060586159729340715669717130609038769017720315754925411037007739154111358337705374563781842859490402720925104268567608388438277752124957598248039537980070264755122444499597180766945174483386903630579175926234400348934062760703950207920098509511259295559112677878333991340360629141774531621400850790104534344964703138570453159653395880614242521101816418133613879450495926854487407041905220316827288576885385304476633001691554256416594568426971589401013490015168901021869494136715093432455112096851319922111372747397045884785467099608612199265688542024816432196557663301102990777602404516290389453944697400129356422981272634111818726273815131634303070881000536223281942935791638550401503789778393749039629408320421273082935258776299938349150567578543457877377056414350007168918150670108572887747632499048885104902230055947868673783127906926196297797585399503534759091616820161484695702448995992557899596271544406271206863349192297869688552453398287604765302786449245998592661843017776682942323964643379178339627213982611999430349653860082035826469345828334405025168178835315670637461338398880439979136080433326501362585504659746135409191559016899569994980851602301665546320194556247903782385719285960729765622108070435692856137847808914858594395315149091242196990265586769119023897429603567851304614493052232862113383375701738588298970349861858485454679820752651256169173753381875105723476410045836253795086095768829263845012589766020346953409262373760040909809228811119042982671619017704260134293321826623495806698568679535531892605961197752687612111603173239473054712120161930921687437683163285238172247057685447688854891182192623886673152410014502263685792246285581112736347928720365052550228274440698071036783840728711713312148222587474938691683009263033313501675153481151720173692148221485728183226033578770287219226067804382766451586723901924447185447228103658438765315544407051301991610168760577169993769714796044434943218783416140353609670063447686626401111741844426472440064816695481459349432361604677073118188729709307119263238551682461177186146944010822893012579336359048718110254364010674698508686454673401146716143474342794320111416969816117446004221500016987978535797754495314585266804540196879509013890573086873709703284836359361415910019766102932406418925819919171515802023201159827944747633028066968629155482995503105826880701732182050404526825642243700070304327069979502881904954101708677425570503918703474370533178604942313328060454942512890233969758514405717778310883146200463562184462714286033882607544762699843462795360965014562726367262863274414850242783868696561261699388976290322806399617531028313172495299652805357892807944477945205678668808722356975116710075009771408106720091238116514391077057930433863211412761111271268290053886043097594609581114305293589398469837697208309294510864872147820560726087284449346539672523374556572985139569980595767475987140737422796859867641143481217602693156219587978603879285131237865794108750799714113536891731978752330651174314175456899663681087182052768886845586077511824768009362266662912419183023453127614512139847675192394126213259782060589436021727581453852108297861963765277597417555020152682500637344176498324485630620944099198698722553288133610091065353594046818119543424762962587907931104087494120026415825848444760630148900163040184890706175762168508875566619652127580639581688193660151932072335951099651642847686163860824978695042234368627903373207765014727736018597322256168882999158836032090130770930621505630022651047993623029741372766078269533181558860802321607784236438970457498275429053451858840811865462089870481674177839290166126546137425943040289254138019736075997479087031022002758557606319245689115422981990376840029317098871346841494295666734015651059325858958684148893105529077838200380659921561789313397179426191065006069103748722287104922112775678699499974068848673652146107738825063881095324154734121934436058540740114663998560247330081216397545132839851561652883612172838547788204110184766284277506289767234545453050905749430751095117958028205491858843518764248894916056578176715656722531795436171293373352211320214506011970727521086901027009842059440502104918672967127400568196209877175118860809833281324416569712564354377325427434598849934738769690662106105646642371614186692582646306741503889125199259208787400981877475067515281734866217613094924439271701671288948451230378984738959474383987791255927917425985533014777928760396314597549849302859050065011186477716908021040149872643633908587061711257707281895387117899669809552505549762939443782543841630828501807131763082962724876349131644297074393698087675354538772347747195750597178454743391195740805851465356170417830905802055131029684672640079647689497922193567665726671004037352641859630634804278552124950489432780378508626385248015734486462170867889997033529214058370801408691808697083088239833578943921057913312701398504152680270817998252826970529157646424846397412389463594451024497870054489162155184874934628084711251332560863336833548087999434339438041432861873754041870471846310257718229805693883544090380329748366706955634240522485169067657878556464785585421514229469106509499172772611217899448945603792717375035607723780183266256127244933404265395669596010775958047529997013250037911078004070318100924011647104435820611985131819273095862531652271477765430037117100051001590618713808075007074505414811087340059521364519715697137984282025280540798360342991598187417327264225049389604291408336111432527035794675793600652680803306602401728414583532971411386188800911339193406386255939369462984711724566683237922871677831671029238350195481422141154762481861607803451595799734134717863440140048390523534443264167391799636738940931740408289879527364140269711263416932062075929714612482430716853386092252924613440971687008199041069004403605024994832227267674791978887567543092070848259192393516432490878467192514676401340070580208592254286754444698205902935705362344990613528555088570299007689327889276207803663629421773959057778248380526457172047870395921899613599097243735932652765593154147882528774878329278076501949500517703925390442376315212667314192012154541469825044224202673822147368748479570330208279474689577291505288150112588808962947573213739204823136823608646202779923713026775432919711708417041141795199130190425090497002769912397558239264770244464843115345872388160362900994214115984796417713610443213311646751582049532008455410569460775424248433848842965981496282981375154007842892751772944524166045843339017229689591807216014286180445328177140990330112433684726965877941832521207979402596229606245164648143911574144803631802574994565222508933710011160221996773569097847809110271901542079268533388105691465154208918034392589666405893219262979601332237340455222828792629450394255043625373559926005311584330452328660023083952501798587074016653984522691505535782413850825807618797384298232755990440818662795931618009874053807755555276020133010994253846389804859260204375885892374972326145519125588453988557841764165243419719325373609919362999374873603533797900212553329867150816587789715731415162113559655751551690574744058666598950661726416436669297693900115854275222429713129135839075060553882208276711364261479015829454634731881865382788068569903740932473486646787155357839120982684026965353513928911212270855841652003479243768089805822396360961793599935541305693561996059795521883254734224796113276998943797947766918050640190986980781372988662944198708206013942853847528434536681277980777452594662459957815715966136739735993352686251581461119954249761294507655835506102240110410181696394870016401419602219912449075073663882494358834360593926329890667694730486328283143646235890416532579501525468022332725771994035686553462601686322690825333590352432452394790930510867270099019075538590730088673445967283675743352699438465756114409893313720212447267244345222408653474622822970744613100985231999284789096018070798436089063267071985494684791376294871045639740312376191360775969254370405139148746178127657771902981997239531589618126130275994685504017140929780123003620927978442452916859791664799915184150833317945865124640690536844191306374780802803631589118147357114887339627206926116774668346323747075818158846526274750805391339603678182881527438214517736198326941369364840693793546954947583219678662826232532734094053739374667601853530886224760877284041137269673631497521437789535010417320487413232047559668491817402689377067443037715218309267523843391027279405094266439471293790481306107582184115610630920094785827445744462102010250574612888477013246516972819279045942187805795566866310938042662700887148849293509669520894842865735647589609054336129747248783902279849454148966487521620957768112587552578220651171631620387795759146066871721539532416057838118717949566929532507089598951880521488810996415708837570602659363629518177957423799852864637302501179198411254703125267795598095381232912896652276491753536039359615934450444880067498166633458594097206819410491350409566726716550419301971407731366497338635632053042900833237185683585137236996769492975237319668339807481916482014507103203770163365346441593682257655556285753290169503307007660046465207980576895439482498260943352780962319016985350671878436597211075917759299119687423174293150185967932263192274892789814125249101480603075224277384330415000565364311026582940651211753899944158950498004232488659761544566936287962470872446892484981018420820134194188170745121665449410149745986533414371105844429105788966347339150783389990336278461645087714562785816290280388024064612494507233052640516763817223151716720212749827867752727606682759686331072714892773098902778619646466250083785808166495304593851262397152546215755647921932923720448444336862067572495794197580355456289460571673166985441365086118977744591208347962842850613914573588786620914768217858567515323074738009547891834881913847916219541273323242542887646682295799099440926825142951678841424016814447690884375029127551777221984728081620013612453435233451595555077110458071560105715007802786711985187314142947727656592301097896140061129273508536009926731449399298031851836378128917085642688804579540534542556493201795071283125754457745808724249950450563445780881679755192510815381446237787699794738751978018070482019644605672402643674592470284677170333918691603390087970565126759346450096725487148431134335024959346922343476037943528215061180609188023493632372796340985277918759447783486181889779444929951231752522279269165946090955658580685644796648378117218183026374485169714990701167258411272553016700045984087462263154264488193017235986690555268537862508884953135882520711773211145126079985059289679854312101241495112370679086766067642261657764343090612491593044193774831444035140849041623948787912018225099946280310702764799419772515822153190003573875657223616218074495438716529475649692389036139349189970765237177469268003896414335960369229761365012788249098694532698553158995944435323135460518322084549187500823713428513743425940447713003210962534940376404377003393584400069375315351703590922564629907849425023849336370058525852897373532014359590698041896862380605355315714190878009357168106049915901053583730454986735843133576710236765037385828727044215957628058739730706776111306476469198359661813503776963197050298388058397316366479743456193471589724633228139720083182614127323134596489815318487989086419153332640620164531615087355680847536731768702690604972236036327160448332051997553379814880602044980250583755007153380806806399540886016170536351954946251117069534085339763935542569265498005636280921405623714054526063431559977362253937988193110578600197144974017530330159810062737104869624147516542679566265858846082406129988738543487188366665043725330204847607409545015172769842296051615842372176980336288096947281427152427886212615126870629575189382597825950930431856334843980527718001620452488337457575732328788766975992404792624553898363010170910146070866997194385906552249773288969852962021498271111477313190537906828335948474268887641381574701271538259784869167664576706016889379802921871600742364827009769744960698573946642371619312561472811697034038039344219394423736989127586439714294744180150360233823133280168769359993181153092314176967175747579464916015380683970926636930300292722618180496067302676904934957708576989916184536797279517090323355950337982466746435639639574603089423822308980231898776563566243869600665095057637300896891106941623789247215712004624594103004533899190486235860968622994403480730332317853033787574294602542986141591122083354566580888346266795375642407566774899162206217871649603204576868414578763244687726949143783051552696635211696304536371814514088274099327801989281017587987267341923670244347538770051006959435992941500235428692665244258515796538484266796825258868077188217184163916832832181736066124339372379513885963563649953681496790759189428745072878048704230975082700489099667743860068505735734059561039727043560370697872025750934972074465524195921002292862596911040647569788175426236110235818776339002679722775874258955081284536025384243847704313275323410644198804212087999437780906149272329388539377580536847159857424669265380970142341821651997202424219857033506514472861766724625834364899821268888208831874694816685978403190923574058136820846930699744841081778614066177138288304259450458791802929517763751315812890697363711860662578904413118519928663176747593459248962528825733245785364870850689220089395034040307772306442142230317289335198250784378701297059367841795479041019202987826082953384556124511047451411173740938485927288751709479550452444249285345235479155657852884210818410076864186606727878288060614605737674247604305584881070723201812210350182338964355324455932018152297172643356786973766499470472475297127172385566741448103303799768852082238840506660917258275788698199361807704209195783890367855190248464236094493302185663740900913965490655344758472690743287905118037366707402740979769887442439589239328888742700030629929625911916031182259256067012794455575339422059147123342336342266554466532968817715161424473578393906294541843561104346014087840382443564922264254790550907025916412792429330789115879418669930567252518500855517080529449576895384726129752802306709223482453982577963596965313915331428229795377384358309436867125839275697174433717724481383452097171055858866807400857604167954204955315557312418963140246878466307739301545545999439108038249959840996476646086504245269884235522026003906031160589211104414003579866969026611146489620076727755039162118539402551401337378172769615504190770824374869786051894444188596707943440422859655911001104951388386065508839521149066162649017023965402219802311995395411327319293599606048466312967558220867446494340315812347708624157265679848963591401276115613138479227357400552754722135692996434533214207306099958890735479119049106783189662192007553801058623192833951663644068582380708053048376027056772593865648302809077240815009748310521248618338108826608618959537426009665476655232585114140982018899674015814814951873796401607812225797362752278133270955586012621002977477008784307741579450297170351827992525880905634784918595016164995613672257426135801750200225974745418185701367656766937245745528971817881741364577759558903239692923918054296870439011390371602706609082217335394134149055426135896039629870465014787231015064075450711754715479296736080402082727255623356048810937918380498569489212559179112152015255106846924002290511966031639282051294904615601251699712681588928205901973529418402587928028360216885554032075925453506955902555059862190629655972928756981398590382396853182794647743975531488067082667021466036833286459233850846249664372618876708246893787649829696083202297080981303976576308726319703372126579133065203314208978513696515653538031129777494240886162539573174365377767905277616290909929745660408157597987455222852785043682752195246139683259023672266657264312602810112264587023461521028728290937741832667772853181326854434632923996166179526119672735105102803160080933728721230736587681068697268972127703524760170708752944655590499300605229088926361595186121717385988397231894106013644178791626724680495609979342820357266632074675281372973234757281353845607064134339318098376186275111366416617376978222405211146744274187666788853618658239609470206231596117617539417445273603251866369526465552808922125630029631603315352818352597541797396227220018807950851575505896059898972631351115458695936884179944474591488695505184992936625063284043606321835664882010854202329553828192723762405774463682891972911560571413752406943874537370850753273171130022896698037789227604311315713509734676262463312221617630351155365880597663722230401604074367910040392082770283482535657909169080463468673133057195155472667765456411754929482994799545966324481788171999727491046741680823305478696152053796450465429510256613812981100443063609076925741282899281648715780826464292545110298802023152513408233118486181481357658917302883791803295389751191654111016831409047844236844713223754798760479181501500226003742533829031395717799085595224688460287665555955257043161517959232132058255905643322072529708997415316334210025890522002299135550128731487851086477292045732603497119021384574677793546425283344426231345759693750365868041575798608232642301388737371585153601429251721448493604020153756573665396059014419950845863117480986891585480368927017762794260121827457739938637348433516303199646509394262633944225679638696161191270884945076855618912723068597452920917588351189128659869175682317780570689681894052553964358630338702888752030416676812556868267114578149009424774934618687352396778532324031687689401550515112186284098669460679900435236062529457639402197734468815784058866997031737831391568795856552399572761583022095613810648602548327188715630197310877395035191953496866160164370171861772675734706467588597953148897177406106784636778181738875302022616009746039607955801635044581811472370730220971791897966009637752442109401327756186618529361620967772308848396706198396144647459691284442630625851057788387171081702502132171853816373079637514765634912354145208171285605587047332365184753243199589721425715880269767819438904586328380808057688682271498644142998386832059190894355066126531616522474479279596937076603457060756211569365207631309135313152357162505583761354209875141679464806593233728930672240030399514512245390664716632472924342947543879078102872280970107739011768008451403123244777766536868714157341649224823935176419249453057994051786022387804786421357655383045190170101833250971573804530338135987787370498412468774838926358177365771575325760579578689290380034613165844373452425165217689706049866539422351138012218847425944268382918015255716487547127155837332911279955892422547768190112615559384005140930493145022342687450598255463816638139095286918099194992166463863954961702874315591199477625176734011567395707412265637659585588887341878712032473534698976208019464529986259671823161691762221788774958652110233555424237998253158670389630623672153246761633847829778963424440056912530947405960571444228783413257101474780073842574283907103000975793406876947542989126139647262476099334227325789434562672274833474292648268384279863073929149481683360832248187112565751224231409084790432045165672250488230028316861589816408783693851794585338458011065699994324514294360315404438119620314738024977824169286066575521711591296156897864378606649210685702260023312944057638448084249770539364426883505225572718054078496815961731304825455931956545616606724999586587580774215908399797575731984802377628435940350521781325379370296689315347458506980872255298676291627128007855354222375325469309150757924349766784358259496855625165649587034851025720008535678195294731111197530174583776760196819947840530239859934014205612341593536372166451273286766634079400565036408182833557030844259576961279544848862266805307934154550619220925351745594484275507953009225964291006096980127017806881178676595807792963978530490550335305555689961534889935926216874114378796397399629846446536569893034915262046799835846081352652341965545404337870711524196828086061732688666431100982361138437922057935522490432428448925281761232786092677264387069830894493386162670274096096770051771558370813607219943953565297397846945158639405651226249712697484453412500425228446411866110254569545588276309577315576998754254926840326488938074965326830549839795675389891015845597111590086975559260091594420781080307508295861316327667557039131269095306990276730980224414510473843369678906189929321993110369226816366542274336934611311308212927291090321228085364433504761655495446608588863331211093616563617624658498786733074105199352188015804224914280918790845825113836160819146298041117017105385195327970181377337506284542756475836793105639984611037776452858928680870499588920627692224497399307129614022991474156785737617077937211303907441434455891157816821680942738437558559740570853717216898979480626033495950630724877049408469978377264631311154979713797329026364706283524288030135977854790026587413042780071693843701588875312360821844720941164947341485943667020953531707200191110737299541091616983752389036736068747199889597621871729102675970098960663460901246145122963920153137766016195873961701226460832201985196697073971357278936164895714578619963691245831101146789626375415050361993751402119283870886652639670494264259469409928928918419054596125584960294045424891222597979970450812887081479449013112860442456751910450820190886272456157596170362510447256141658340849813122717898348716177960447608980005460241129480908437349116238967885908127495968935189805026582128050987346191051965580628357554521406407988066132200025376348017691050932363646039760663480286818437678646049216349787465032361125096367405026559324344692713618210180962792681720455981182990990808502317617510847228988947672987581095536578442300764660251360159342998494091809053938498753764295369966883824473852856455577913871568416634874772867527591273613927882483789438248278776254154963390443729201452454926545215308333272102176874868687300953851430582313720733280801191273342912036441073886107199389999914920700222354029145617927015739171163555894108081315069646775289704708390476204280458438462854976027599551715446111032577048962728085836598197088249313328571932630504284332313299186274493092361527254529131060122320322884269928293889896382463083967298621994740721905201332775903133714247148385015334611035648796213698915983589255627687483400872165288380844424964180851428391786106938239590807965602379633025517796956281502758564262614018830813322399122784534725918788170776109575344054690827409005284352276188102254700228321449013127901748795738701665062329243220053103602965581952285041435451344887589599175180709041910864897746169029052942222708936869921501552543462630742872481972022590709173680776507401520328081978016612768924239469515857259846970552248721062205252127377690450468903022011146209264196542193828684462117081929894635033452754498197862270568675377763286930920218272932935906003051457635208324880089664868589522972702109773272552393990165179136282090435417918586534434345647043786322408449930506303391920023520935235786155825144102599312807058069697493362942167599992529690905704274080530428788017367149600403962328484248547875552564025585410211211729102564160575999550024740970240916232285500478190792509985140316529928087577501388967872229903649543287565832464363060691707050336992395720440932972703331500035627586756996251786554210567431962841468325530724900030920283073896895651434264492081674076393427310627793904469783929403838765664747974457740992963498539032057544502773433408782532876744126108803315444438972765633460168712375416111304242154012702944601258533296018444364609835758105822756986794675215491558770097507593099198414903091706820615121883282802846186005162451822155683961687106522392964335209220034227553448882550994774108956817504365425712455463183443456602410198402548620862831762502051256232277326928523864260737499079173403205589525917056942895722161697393594140952790096643498065560031224879267630109215144203471072332052269664215255550256258403493732779383889387668111534281897711768791286857103621215572671342885424581227289733069694949076446289542313194209378567632482475324633288295541172499267822286674949608743162324116457841297003167939242796404801772152166250787332141908833610293237734874865155109094567798138738371618064288571604664350205289204085998226464583874086157727911240380084574093867141735570872492367077091559821599541965223503881326999965049888696023312145930668249594028991380156420841447014896777814122818841944396007276400868635174860339714894265222535410422986054408747940890564872044707488643971321973464129216464438323238211355820730021519245180390959778149742700924667168563979061452674406842707448145999614155388649180322248086442089257386262591204633070485989855361610464193593805415768861031352730728339818170110120911038374228447605984263407595598103394734740420973132954044292721554240375832937174317324674924922346964323670104492263572438047277279248547781123631331771822181921044955418749829769428583494938760761256045298652158451863661579566470310214555497408566092105519491798387090290857129986305563589223187506847667263116902412160470130382894700035442597512899989329963495017860556416961331327385414202916757796690059445234696256876377750709697261378252835017431097062832884198406132729018957719974670004510835808411439039642295516053314297770396615087572944302609585375456885276054759868026585114852149533396191286465453889469582191421732452338028277759716735460857462901874747533433634721559997187789000945829883724826585632218305713302226683448930627823699455533931839061965148131604900428892347649921771374034530480971588816536762377684405284708262138206322501742203023847773678583569107290823406105113143423821589187122468599260605204750883736795290231013503174037099578881536989914238548882474523456680928286632683910720095012995256735566189776840398161906147282939830651272545076985984822485406712616917388303540484212849368906513780902628457333184579825775237570464866064172149947038500636533977073017841377721887615292762446198056894977466152390350264582311395418931094102395488204368110049494562908714376071200891411458719095323094867039987334549242305545162091573528604236084272494714135926733035973154734060238539100702839108368150150078315304278272161154629445747680381945904898574645273917118216949459371685515544216165037068143708220760146487571042497943170063971552195399258954540809856639045463478861002777436866003751061321141574256757072600599169564855073804207183838441431385190862666070906572994579798610295385437533186339018062853132448034413046582868228184833384751948787033849724573098114325944266112898075103083752672484046486493877181357943662758658657175819582277871719623923710189735812745886204055919940847461594754592671283962786149731961972624948981017691969356090111980189407499445626200465249858906569746639740692493024858417103907831231531665990944046852640286434062255537790524140774715061559500903974723094042264969518707539287784632171131587270573921427776784039335963081126132342740484369631380750672467662932849103906515733381244886006466819706457547536573123380152997952520743329429187437061224511076727064369378807148447997998296513320062705455201500478169755487296621698497105833020161347828805206260227502464888980393098868351766066647652238981852526952856902296098504253920286752858528659918609150579877084103856929187289901242693868014412225033851676951791015224703126450324804501487743450233349534204286283718366018288295977033297718906346696365276553128788530427408149515045894134120314456290014711144465003130964391642727829410270841933927107732749255336531157752908215695971938112344651998841127242028761768395560720512798144756902710517964543012576560491748388372683708477921705449506627630988848144445953373802380606014397170264214024924997140635967934290284881377454096488702118558927231308134712924748895723632094068839863249483597350602474275290227053431585095300647885724992262540530286301335417083981635797209491804168201257681062167875176980042481764713556307431670514582640747724567399348476654098337827584479294520592636257298783818598303375179508978996079591150375665754798414249973964927120731586119228913528591229557160314963675172927429587449867848312412713625949856299680374679481193699757055601636145482473633199645432310446904493660628775672487430816876040233986428763088018517043744300390950942342414022317823565470553893212849939974550489889486983785161784731691288555029629235290593574382210824685238378117738997312586627654431906942040310217550333412075595103929536374930181202643375375791856039552634898815131804265404117766717983857300553235378645690144289871233389502408593475321691483905676355499232472766436108831085462043079820625077782695967135074934337370592938946793202316743362767360894190296668934466822779192419501028209887163096540594054892898996899846161627924939081585080021044144439495322221809226466988153623584716133767352971904914282809272619476907906841404706696497624683952766177173933193695321029140539429539953131274865610919240965975807494782483574829843466306763725844584669601050812949934831183917168433463968093410381382966575768917583970233101883646799514440568886878562202510015714451538812960273493527524421058202538476389884380759287703597720383555753574289307141902455341178565935538498061179456506376871692057628132447960701039905900069590254008320295845498895502657971222057847173117930336590996252240332740252006220505458059603378910747712019645203625936552061371837034792775827351928984106215341746141040494326481463392947200677693246453769223295882852482786680154590665179733561563381026311662358528624264820042601798818451445117189557852929383788649831597882170934610691031649029419979076639996766915229759420962315291747398254393017534650475278851054595680231922682946836690987491744042212672618070275030287684105107778351755427501625192181734270723528322664144272161877696526778003641980976022345538342278432736886082926828748755307473525076118715857636590960899000892930142431437487144212807366200061066642655455663633498260880765733810587561853670266928542635453638241132728672873426441871165895708507026963263110615224447469184113994082478643485516268948618428539678401839978609808325255380347979379015626615520136413958660517854809759569000634851624679525712404121459404321034802503955740383353156169175400599448431559506082005732320942800432877090833331287084490520103368900835015747103004361408872445228343440828651618508088828232575329614327774635153735882576972187933736847547831390264394647242649177301509120772047181644499203810623891799034140588825007318422298859920819425521559181192091504963332507866396030021393313260690064091687959140553147636563043936421020806747043865447596375591196581044462096557313745605758217555525838216385875534462876358834285761076763487158505702819529243312008173988144183684735245401390949322820226487101522280828454298771287118374337961593070071600600550931300526672114824866571455467607338563337494930575246855749018124961688780732330775259287638789326933583939410606997182736590658001408934492546342542897719766263297440275142607167462071392031891518560544471650888611470707018639787378530007980137035945611737301108756658917789273379295686068097719904379074797668224961747237540154870043808286773405815053756817646697421098732496175961123180271735382760668875495045622734003303545269891541397230068083460843073241662143561210891202463350472616732928220041784770463309245204395626900649622379972956555849854303934919001933192351955800528713768726156356425922074622033375880816278326340219438919071005035275782841495541119850993716466517009554096956202491695300714713869854498414620373821517170649599507863522994424365132770126296698908922750917705629325128215745758067190069243455135792394579857191934364381876611303530926185549469234008559459774569858185340977280907537740293690262476838433873069363598840429921232240631168118506729539848026055644875536320188276902279960523960387144543003431376364081547081973589773453112250503347001714353795803439524007904963933026568745052209276121481151330933503362932014638497527463143059593270010688872000304458318350885758851060058858846928234288412552695746757133485333272468421180759460928750284519196452202089078818199493975977223422716812118619640820434726330842971575166560180976745284727002793515893810493176281733487014140978992394840547608568359611441122307876800768913759032575500536617815978776881469812125463664305221395074917034239939381330111150696230082765254887497166035843837860746928992844923980564309424996414429350254742369842501067692135607053874761957837304815982931420105002839207566062437103053025443785188802098944630920679460678294511129127306711840278164033885946689914878554949464219971484854265876695075709009972429614528197484124381866158698426871495443961362319541326382379922045668616669487157936559193248735140874749683749628767402895102598688222269009262544291172019224577309780696165679272357845042966374579367411710601572209486628769648229175819863625712774439672608525417418602294907774207253125386219338440756005476020852337480811008839428782253038338644709760498332010263215839158884520423325087477125819822172044541065777387914634038669468566071725331468083671076880084336653237075557697599536666208489714942353242558802811086815595947968390475419562832507015836445073481593555906705112767513933109001895898252371627702159957821460530582103588131718037860083624329442574811775199946195992949935478727349666218293058079116642759827249048415751860811661356147281687849001860580712378221166468066108476832114822285523899142261156327378660003546373180350551671850361807200363941965483048240557921084047263371421654795350834776713809919015957833825958244831126632652343581155641265311838938259659527843098328775221945856054770490245570168382113437625187056088572166857864782438820471513662189193649998404534833472578026860573347845166589388993966303857158749440182275858456656235752857367508041568518325532018790526449746532742036210493220960847072928008638888475716826220569281904241681259081493945034908921338469817654192365810874305042154170194950760576150599996260364218174993162628894014438174545075504403607892690755967154909703699122000146167436064310657576125477399285818326849419616343523685023517196196961298417876254514204735848755998353538216707204204367010192942321029147678363739589446274805055445529231723113503578327200371434804009534948241433309347185488018904179550445554521900663080838906437434626730095010541518579512251218729001975113832522807878085166652824218632849227936494349004806215168228489715506354885012530123336621101410585205087760125947113351126923644630535194495055207912209282577911940337479749408787139613168557051786353229832912457614412442173048976859703507212240317411538919080566127982470051193553590282964238218234256894277098903111112014167803387302225003010256013510732157480229967111004199046697827959527850653055470897559369139798014712639096882353917889896914412564174528062273737023989308784829479080612212385567363709034743648401202922083042351838038053251909144446116131276181153536845331367044423448346338500145206576350723564635663215320920976243493878007914326434969959390121916050724036581470795335730599928967270132147894896477310237505412745222985209796549497553722885541531680845154675145329432073035973032980506828171481025703025839595624031451779014918204574218857759400115614308715143657090777038484284241125779455671355623988552657145325419424386052159875852374089708637095835643968986393800218813011202662898169536020253934334495376489962317264499905452350689159333915963712064257991190189773763623473558269042814557657104761264156796229334164612359109710554706198111949900360561433098106263726551396484095497940890513067835049556724076990010692745797631510985828510203247059917660094969721006783369325986231508239199399558864378954249669541923175451053991443641796238327519792077097549752001736228359140766183699824878165937682423521466193202068994209469342136794926318535178157697545158458886210092549775287861515530758469173245555202706684260025779628767454191899035709523313529307450169829392384299384955113534307077752703788306092388843632458946886852073785801771595623323950229262275040035290864348084758121696508215978844878272760064467482453325943267862933928512401610207347092171556958395957314699116044082248321081017844649517131475741726930114703674227764484308685207534248110104750066227568262428154133996242856980307011264104725800560422547649328619529076104647014718488253615524850785312788027628464995436493970562715220386990004669603859205924771586786497217756508699566089228348666042524888669901812292560010154848483159268092085718522804697559200327066735761527572591840643194972662942824133995109306456166715566799400108998071228994408696944807729117363516587930607863958198232100901571656254113937350177580425319687302416230760642555645493720419140319178002445194475043712396942936392629095788378469370401275167955324430922907011575993943371091918032797511202569051342590465981888386081202097223275630633062811940357686255163775182423716329468726539759870716050829450668285907507347856320124098868969583117705008522875552260720645025601404703125450846269460573785524453193869392514624249184369638636757258558843302879262300840136097214503721886007903813763855570909887875882397260903092556909056381682216396995614951752184058575486631926529138424249705613070327889552579274671292801833597600747466521507986660775995400402076641217744530051487981781502488414945487084760418227529649222497814012196631268798866386706686700704241333942464652282844125793517982179342908875560020236562752092949677935618914669735748868267087668279797361157300578254799105835696548295682359937381657353712445726979631940621199603145327849812373480451646892522350332226410020901892080435581792618121364860349761059940810966464058673418462897943389188153420367535899808796118524543584175117055834914042175773372559733489885364235592938465389128331177602577541258386730262350800285484867660341224404512282367290137693480330136545276849562257619282060418699327419378255883682269875353034552503126899759324972858754090074343501751530816363078826705363026238659644546240352412932619659638873512033284765460903556798215136859416545576244935724546690862512764457239294017883912359971143129744094643764190886349774415867667427205011955416916115168950707864208165584699340772931125855975176255925217387682401994843837953954187218458519948321992206887019360874611900898362922504402346291681511030598891868813917870329813405678263449137375579151699627974103424510030444617571154357951935404282467562414116299483466861307862463344574456367106279482762114428902690211555588614021907127296130203896232743959558854407347573010115003818336564360502628157581040198812508031941020660934699824442883591813153842369202562506389299502765859875500437016735185219832688790548830772336572600926507315949338421363539671569551684172833771439937813665610696202102561155005827095237086511434575116757165198388023177379272085107413564487326485271041263379770175590619082175385818370306293699411653653202141500488590236118661801968022962683546876199069082734485675133794195747107135496633848912170761445146317880715462012268198467741255417831811267710737979719788928142908311477164178932500057495395897329160686549040918632992617806958756365821028333567121465283927923337214532322969750921892266580820937680787847531410818971079611229241934467336638821583043183476407427946685161873792317776617669630052095853391872712730807149425544163368077230933863063669054048805072546965886712188465177836500384560128643643021715697522746990178607964066273509772587065720203496895388825625945430051855692361715276748129017281473153285777522940148243179882046245160146396298877286491335674542944485393903904993703419454186833011370674576608425784021124729249304202595540217219367772826232561945671089837494059444670669555547164112468432208562889573460297165979708977808383542626611187380331395807834792005288950322040924976703838058744433370949016239837421873330182288280833771098599131628590452929210141559926921122830460363312099906026527356676748040319232328410925589520403262218103791452021510107189886013789309593624086897783356237582004805604725187261276557233953904498138843896435121494684817009728127236326659639259067352270527941438578580518492508103158747170361790707264012805177617150642126883988660875308525830788537137612582813597645049705672994354945861876712934639004431911273327265199668826598234763345997754781537390844772153284302850102008943497205324979593211742111022016671107005092384275055290052663993020752635265106733922625509007517076423325350103059654845221698170481061719747555412303341490415593569146191279213228445951757839417679589142388332055287470395995422564539636267159152923813026910521720127332769085113435229660116313492579518863181941671632267267043955511005090097725116618625412947195718470855162053860250995852922376178023726678788113452829635140081833673825655930173101529977009084113810968507788588710937547998857757260731035791405709387353197984472424443086093229565402096836096652487960067943699401195383899550570652524420707467845722970399484168446789890653589977584735679345376436198971576291321310712728282322308118249896477522955826151876334970491955910634542176139997335336583829801446407680877848450669035707642823667968474498084114593748475479619120662883066658758198920829469228222070981698199259273448869954844370265835234678855160655498102009350291050757311997538521751340995728218055326049598031720255992473799717888099834592739083930944153828447930503459400106450721855719439524331623088004933804545050699405326232917954251702811325096978217200212791857463974484146123767994983123821002032733487664930495451917575428734191144570941394242420044495546474037064996551915803523370195916312086411053668770555082805880552369547974629153500597811966703890046352889362900223665070902240066250880975622920842022538011518776993647786391186963561062466981410255221672051268334728086985969830576355097714104759088014195907666263748696843747790510369947710213566435066098994662159785336079567815521240380618616970378589090369539588590922972660318969903412583427516322296323736756143117282572918602125550915963587956272359359747165030501758551671692063311657881441974254705263900124521865914544322319127028966633921088684321348524721832819754706082181417616978373599433466061864954785522491205936866041685484850352028209654395290257629839843590919368090947947970454063517018120684949556514801940840383279091176221281773153601846868718159437219335261446928628989620131537528371444289893874560423016925113653197726631107050108936256338011226113767142006080469206456141668665307423729740275727934605575264846313552282046191568063232621141901273694026203725280159646143765298577790479020026233182208718695253739378464724430613563870390137535466941148250470850491094530644489835156355107381099367320444293956296986844484479524656190699598268923709747168025793313031332443547973048679971422211569110663206113416655884718674546316746213984874508049372850736296274222617990663190445468719201579436960924602424978519495467786122037902759905487295277589244863194306290007998106239330398441352271319910838737072104437064857084754366650911864815096875914374793517316006408349828826296407031407124298875714872005089637306828301917634738090998186734082817081467724902688059848455102895965883251222722105947273555120356166637216298150607825040925607290239612593699298970900134236402667935839709936312132303681267756041009957554765394207546874221398026181383201622938080213049031102289894559930960076180642936805944153555814876711932807867691415129689487660121548433110190735438531663218231022273010133896455864795031319126207621812114406851768551491178543496516890386701238396972660351938893760431669051194749632735063784994800504056604832669308744963571535964605195394479135693771022658026981876314633423978833732590647596911728442695891509149487609007840572967559820980501125154048030936918048599909481537684431489907196482649368870268032723036733233833119842756672756345589252029232908361934917394396884040338510158064510756868938397829629281825649230655215945321448524568161755607530682477307764785880478146213428343162123956939822687359977548548541645348683754442259555151487295081372411379280457073107639505670470844131171648475450728152332811227001456447433752357575222081403814023369725117721605612000694511896052192095705487499999343826437882096568881173815848157705089216237129221498319140287511736560033844888113948379035900505917925959950757805645133007372628844419480991281219845339713230809824321536989839530568864641028028862374377048541396011036392417038238802289678308685466050176756534620857538930039507781555999361137601642922662909223338243663950385789517850304442929736394933143537258731994382400602870280737160959220677070364237093568768304208444373988604124690548580990543087626764391011665526323788878153788564048424170624820010718968839002608708976224881771440652839612183826528255094247423837688964814154353261849491351163108630108596584783903242660509087797382840274088745991051031623727543459724623035049309269003041124115723670626632129037240072292685289184391433356712022732630668952093825990720300158689223143747841492948956382170777975642227141151689781087286490434103384933716750506344280255829193062821484278074833540079359013249243393490043998534711547631930093101105951533636598926177589605910625339311007538396623508365693060928268729158796062056510802493354734658417824718865212053022708884582694596410081735368103781587402429872835665415532528131969944043106400153463314806666530009713644496215424928934952189260547819072751089557936921419946481132643420783136547061864384783630376668506931866776706392017453976583150916937396256829693133958059483503032658677082872221838270427649797973265120715242354926723571836226320008265695106595057841023336520080848143882597386498465065383465265232517436296383612046192194615081611230997616160870118950294410677005899461061052653716140722099748631019873149195946619449670268142459311376702718829172247706559738784451744310016102711338622677977341379647777083121217106013291430381918943018498763407657398796659896906270137155966705755368414251499258949862236937819757322763641099898727488909695061232046653721249387656583270340088348616183191818927165386879882593343782099476737027723298127567107999749084061502007608792939991935475685331901576839594249023998059681775739656008512709938980347612119055239114262032722715926974563061368677564612942638660841738193859043702291979271332975119793582137756769401204608597671228266762070414030415234231498812874991869604815122570652908909089379175252802367940631930692129899174212965924895149750166782565658043631202291073773781749066789591429344823346135512596132697793668679544518409703441695133193254925044874411009861147772633681911014604750854343140645614842344569319890916966613877494295306351424263678819093286843427541510006558906060565067568559341542174018902493635045897190727885496842373941434498206539394009204610558321563809097995856940354666359718502688246424254130581627492922444321310962038667339100064565043121199728314393052434574808275087297907955433132438352446716199013993447010954032945465302231092345671960880254895081810879435380397741722616393530761359862236934836439318875746417439238975882719656677315326294319805754181544030209689989110254643526506857785140093188373535537340275437835234946979272418917837609805194280969660381138095215692445061523762281716176092687565417663194360774323807751794408854169846192241545702459399535749926042611407582083432347814460895198008016761120493591538841713072791398128661602641369299231007654232840603556656464468212095239822475724968203983925878851268702823610814848861068649148288589287894420156830033983185295343597331038292126261512728161534825293811234456791178966857189799538445574319752243155322711143660009783517628538255521242472568580486474674872843579291585963565999819050190100851013540430590793362729314985704528373400302288773527399204465325426553886800086689853054458569666153556070587230082327991334070214942455338396311966659322740947168417571868450809139314587347891123743729279405666007622149407325728934921043493938572847157353100418802460629431779602859983746103878956744307409771535798459536208349093383018211693368919279138856066485263953367533410872388586150062686570671399521688270154178851114572244971647695416965308411635542828100366888036028263383003560053589635104182985080614794759649275283530590503459397976698498662956547843329925034153802014940027494668024410773711463076453578254526965147291177689945521792297856011804459363814597624736456993499010245643694106902612060714492788136043479194403705390930780273596613856902462281525038838187167486776665008275436531556630440816790181837821000019208158095958553002735101261655220825429762216153255235592137971648628174101491647846553894881571362368800565733717702398751896525952984529342153072799043436112412854124320119120058784236000513668896845961472474956464866074052025651084601746679547778232655997604549901998189701802349261058937869802784041485795602659702656097199687511844766453804857158535186102020827657207987631567814113705941329973106299928022445734448369777932220156333076466761584476384259854569878638342908699195404801751654909315640677348674797858229906085644741792803036675888464041749598816874902904309917341772067229830967441913794040876471640189177417362579848416340148984722642040611308387638441543488133290746542941414674470417294721477409236229226095509847084725377557625899704033786895328339655426354464901578238787464690009621411134072709126365153963190793469529172701686005113917160822834174394336975638156181002322070024246505404333912365273053650611183018349162821325311659685749220594518602947969903759595513579679457466246501723305401276343076215131267451490141517589671650120080920779479950416120470410474750158816937811252377188925019251974352402456802000527827561783390441218616597580140155930141839695177150792069500676886162764248967163122616017940401667779146976029846107017189521594748932755619630209748361957176427603343887195907249453074847621556142719788349021471120797049742621185616978389023414988952741061820970324541817363176885094568807258370433488037738286427095992855365672871564654219754350913032574397276432110011963179480662901900381327428699322124120564806629015368248991599220077312687559702920598241149936225240173182812860113434290432962971265842103598984984031071496169953787115213862418363989107400204140625081818088422245015933884047126950811916275625552838408227768653529568951126368372051923043167490725155545068854292175575226969837012651862013706081731643677286723180211347699730858770020718208289057452097605312704032972420732991560093662993988591908510326808889232700068633203813820555188976437287219598098092165914368686038494504227860283659365806907795759921939636634077081660944159907729863176267027621247547386007429948020519073914533698595275304473975709544177799537227272516815688831962227319363699874756413888002274079125057680292276051511413226736420830470796702973421368678421628645741618966928428205975385946686608065712096208291804070474632379328530041704471734482665977659350316567008577224866414516141566399913358981477291981956259401585763453515919218044665695703846236340063042150074135190121250050832695198179798521462048343421577807511519028828407196832304311126369685600652568789235683323356109912046255023420104947573408829717956550532078366999642831196036492961875494278134125428596918306324402648544860617438596223654294677805553011157914090668156415007050627942435767375027430415081668272004218342844173382895259487100846019235172252060367025433982245473018009910755523329969842119193991393894065590884365375749972362679869359955089271241916181853508889709055615966323499728951284577428592475756195537788508300674975877520106155533021541865991358137201879081659097872644116305378527926025910133928852780912790341644324148593462862860446547889852760124332525359999491868751023058800279407306523894920939831534931685815318367483806800155080883311328063429775631773598860951886666779315703063477443186662168366306388777715016128995574466523373160393165825681818109172672155143356546600434787119232596887284469931795686389988600814201969411878555091300526682553639304005191202277785326780747064904612644898189252824847768888285693476987436574269837476611379108436629948606719071070974172971007940333845014669992471617641349163968577893283581102760836905615717930074629182457785882985771712578508210306494098883171289978414886504249522745204491118458059425775621686803335351094573070142057452850097936721083620796710077438116906723042403782126829484177545416169997156251798461590644343950080854718124391356192979402171826318293801641506198891630404335715413201577307098827238736994205096090001150778673479284055971443409057562893089557107232701010446165299257746517412193985258950056056561480989195929433827927278734573576901719163345064841630571505908431084297057369880287448847611783667235845444868091906217884271246436251791912696076722149070713365048467097230241002615903694696507871564928988236206119737808298992898765774506990195173382129599847536370107860708883683055710323520621083927670107497483051687785916834612300636371226461140534835599733968686188246630926557985810564746421329356891449226267164983987603102883349843917493364150213049907687712297271362944298006955346889551051083340332596851547092777891339461773437541787843899147287261008030631925443109626663036745759049093482229827283805057586491884285255126925157881816573889788436523466717476426241124673264108871650013132173616687320426468302489478521679439566080773444023376126141703566238778016247076777319153786352899948818998484706907421557652028031933596644692749870214967310850944672622873555387273461209792218363067090795205228266164635968576426448994339937896590057677596980232790020899793600591110507111888455793107584925640145026784538892652454582745689447473422882874637049105083925985676259371416022474647093430040879271553950926503226914193129011745572626875447287847086534703871080184493646145908071854180482024050788073995123211938306091661524700489200941873934673745178706150979019190209769463206245388837813926644869566874107080936761989294283681067352237883610487186142235502823392915687700176279248012247252871470423521203571273181320809203171519677822589394366355775039559324613836048401917252478689553988304944723557398157534478890259628992750986430508978615092879702528113771266048174907337174328541642650906947972681689703212869109644329550727866080731054742412402854766196596917362796085281731414863567075647776820990824309531494811938965528045063511217962504177002968982254100398107576727851920212521820506780933752031033238127810402428073904803450275820391133347561367094706474929511385876236527640882002030682840775512973212705660944186776258997733568966703461169517696464153777324219897563497125489640341069778452931052277302608256353641497969561540268407717828957316586379780476753724304744409159562832421689557116364413169363617230837060377169621155962660172989620763764412171791605026442176034292860006459452912302711140052615265594907196937992258940435206401740657591450372953654651089723581836204640984090741516531183021046732569684667619126108704368720470630942431177180777397520132051639761516933997305082165948011379923716720455494913410106251805281070510240694203476307768437147143870381548148879644990316150315428273382236582188664571391571637169050199221109568690298978607798222013763302888192626525694968253638056848695327349738894424907826897535465821015092849223326096214738210488408511931386694911283943003388908032770676752420428895048007673526563603552257237781732096776025113933036297064617853931680794808728386277893083564977926179796765390093322579585912661482480391417225458841888947311914726559326007886210389004716217852629474483068918407821901389703058573948791058755260921691475072422133205184647930835220186944286750511860058105705576020591466734601783905163991130730391997060423085019291351895926364801557474449790188286932739929361199208424566098803710472282962590312166189623696132174300628615417173510779956411958959993278626692396030971506567379171347075231607615184773683000162604150612776043917404521982963588065061525922118192042633167028136548479115081347777573758627184610752336516511659126387130961035240433616522482466664721656435157961455535726289085162111926457485703807350451203061308502670306645962769886776414423958320743326886628127657866967763132639590885461745055383300187029046621183987714208294187383093274386795666545018440888103783484112550854599073677648884335549696581392517103407481227709916765755371965390857907432649291634808666372887536878680598493857965505396031073890952041490759403569369044649515154600083572372179408589147826107638935964474698574679159128315048239251258249924076954646922234706978974691393139339698331751409812846237912457275984155601716706224813452218194871894359912941010936494516023077362808198582122450909655896459057632344430472073402292239658312991722869566708723614008846924837020515744619825684107367977683128671312192530075018538959242263952483546417971899998043969592492171532868709995245951128525051487392051399661749767347358388219976243039763932714064419180442682187823346176538324316403856035692039270198937251364205163287955978887160598813639367161554914772141024346045089874919762066333419650120418390434592910869573328070472685766412609513296219569697203148922363314617245895489377973529779974119511765054929661961875740122050835755211450899199121926508050531191189196831249872290306805660043575229450334523791619001890700566067791593253021841502040497063958164592914951306771651026332632508750335356292677711380644903918241648089534392656279372848324845931950590248275168399716965577514107361839638573973337960760069648825562584758806132761201405092636872984326588728688419307784566542989684432171213827711976716310055345376459438437908667433928778916661316047062519352074775346847794438448638775923995508346880933714724565043427638819588901392001773909186289385657853357122292512739058572090899663081803559748001400003472025132071143324962799401878112256820620000253414586212221790154658439868366545453560863282581023933142735997371561272256811730484154624878943849711449240741347640872618729319141922706152802054876592396882773671768683686114870869087842479511188238978163286673788632908192447282108094230152445175297590130989908231583339076744157051747064128628049651981376713934729242938346049011612572881724935092189625035358594802255397221980506864325051058621496621472335083131479625505905447300348127905074937893848283749034492715792130160463912036911542841234006898322551705514100592073462494341048791916532922640627633226583241322348339945862716413657170151738064994821252755625724762668143935835804350556424808898418586069425906241676882874864431689977115482735669384867018112588246131831759709786478395824983881103742128505404578406219169248001007880044561621218255509892102111890988376997958078184832493442979818719470467705232445211837623501698998326470758446130069200792889789237781747980832061451108477091264306821274299749412471986486069491167172057498674749949687262969818448791389131088589251169875089826595897680878992949126567375354372519019282509073222596506424687375416230971763865150037182624307914120502055237969146407044993506472378809150374846744188080646746982245382318460664460659601656766907656876651260481787018251400436797117853982317081098243092755019819028258592846297444670417585570084879821949168916110920136029256967657897409713198851220351935972650804073230498764557109472352166241229937972160323599980729425140654059476431122446263714186793449421971452840341437481727140192188996912281904757621060878307345792718964401828879162260618963478829199720619515852976796802607383181090268431939797187477544982639462725595917313312840681583379548129576625760747465439504302686017917764317288787922749247981466367306202336301649128727997962987538540637453189874531665969822894610728901956291652283479967076882560665961038890759324815879398304671297997667081388317136564952071395022638672097135273909093355584094630095694885738678361783929687002024927982547765479774280056353774382347108456912099333653433928832385175388816023089452376226591930426748676389686418708691961385448198706301856946556181163212993708583255439491433942649020094810361278035508805399639219802422626644098501812776848861949556758916098333826298015592312066491087742341620152060707916732384772545819014353965397334951426744080905731859902385789327954309480784901679152538849246643896978108431179583688927063745283512007318468969950614904970191166623481697154596155347187418419125489895829428752754129666137789230780884319604933627271519051249808325190122158112866066726424888973438685171659595585298746868160352231270975678354907030927478301319624583374381550469903899157701300562921508963033348494443142449445439939711839925577707326787025183269311080683629152906113355147038500917254593137249405944778278024994930665094770601715287762976253923952071428424198829939239059297818234307944534037220675043291424558019339054655950724394442330147808372703726958097799682573786978155830327880286796251416684855540879798122439409242845281040436235506082151288262404995764528184218627032009883850847681974749896951826067966458701740564597522693054702419171447863102919104353545456044694666135693394971784274711524347888711713103743961102249817661181220892331293902498980723060011299765888674377380909266625124874572419431586965795804654461777776434634169628316304307131402920408870430067455277512907454122142105343057414369335342070722486894620199082056661953698857482439730687553846978543843444607562496720493277504800781037900641165528606200801370184857133885291434202138436324520965005126947223223899397882499861534320292985917982851233087095203972257806387320835483919317931214510786047993813474293041108755534031188860849857972998690604144221380041805107160134429131456316242937137172167649955871018461327685538065454502534237301018651870440431146867537202255776577136000101017421332928117925181896514631625424516902808861591630800109026423979192951411019173232354534564445707278856386466060521971014015221578789221838373785516454810944075836753582384302052696831451698539069390028424488502545520140142519968805625019881995274069552723252365833030391772112156375989476614550751207220775119093355085523611300691695985177048490888546258166703041981490780288539641728435281249641300465674786278165088089585650349200240608889100849484360415935488487201451299717422321212553396211019294445145609075637912192243330523041749782075398251144599845496187579349772360823356172206027023995123262877286204697577082362076804531524749588127840718260650532449262602963454540901608152069908507332784519135627465952057181201254193131888241730195660234276258973592269621684750874217128683614977069405517648724923002731176762924033429026903368176132250132660208916091476147574215819550736268147255817321807457573007901947019051429201844644311172586949086278610670922669320926924791497691050940263395788041557376041046458188137363666153236151592911473137658551470765679226711023821117039804895067359734980414126004194319377782430701220449609983405135575857805475955748497091278721577752666932417652057087452825737701716598871004927823323257875979803123087736443236654760855466080097420434279533311674610923545831651141305693894180195584641368876611360132039193113118005804960406101710272268488690650524698956993705376351328289518911373515347329846341884354745759079312149204635539193181640108787117088805099654795092227563320536581748358017483329293602519118464440773174839912578097900554132139669910281256365352857721694389645378430820213355806158198899324407718886025290980140484428438458888821660458655582581100148725527675529269571097049745284536721688050822169651354513257357917049873312474474386368713602666603077335785506858951166576487989559519721176121125232038121011429580079982617982626674779096577782385853583169122273053529585470673533086930949810126222703146179111070914967427585328120222304323165106569981550945506839065285313217440969944859160925304734585364008821787229445973735819227392766665055981406208756124496100433083416974416537110932292102170543916435949545417113280058066072164768550086515877037599640831489786638566241390871261098439720085332781924605295067862145397923200279928510954132949149771761149152587810282807124423111413080703161814486897472136937044983614879164463822837702861258068884473185962287076591162226778942501322430495759838133228781327643958738127489352682232952187487529022647283678510906668655469777629492934832584842703574149195627410515400521604335787805559026420978613522388989953007761572729242363202812200021406734634335195723645716586329840874813171172116765919749371080355142596504089864883646705259295690334344649871320883601975791628458076245325903718466532825998917028386031352293965113571848361173881912225353802249075321914264348357042825400884912247399556858476704156626153485429644892204882772889606821232642380656243808595887941470900602892059606345467784046842470619475210008649796985815354239253324242657360532128642926800023294948822213094900909009869205091559430856209969230910791501790971378264746595545218980638096838652273513110250839605627481250874284516900680716209074773362478328818072834676001793604005505054337053461402305638177967274176239803451795338711921248376988246654638208717837494111610043449592174402783708229617435555564096380777091724350035863687217152662097497231527333375737805517923101166680057729442879144149643265289319671477608076524579438652746228884750680532504778784571382770762206466144980527936796825353896089665274084586015431971569201694694069627009616728784287688505721407464979376725407718906373518733411569473973505481328298370659110135746406005648416858072602591449875657284693027199204983726744198092339387266126606593796047503426968846594008040724008826795618540902264823574559383725575631150897694958120032326924868045986122772132852885490990602214042683532169868922073108142884052641786786185052213816123609313904248283897583435670847899915702063788527987142348536763563133513891241697671200065180666979553199202542010754690368740026909677794974918471690866729505872404130773054939214628482441441489510725994964846412271487245141724259489181732337888249933399061866114232140935128587318654094117540798221324822540151505816720486490036969394006562679362544316770989402848512110578332684904862234059450587507705656113035841569913707237342698745354893523874608869689975501463521403090237300036615993535951050085874193121100778905651534140829808518756572834221879831940475445977258386193311701815737579572013537310314995393503273798491006367060954125127914423975612875521458053080840026567500544579961001415886845038833137581455358587312327165470905564149757324884446544521718794328471604991654880405345377791746501531309583703174362244279857888732171137296592725311009992184379662429659987087918106257488367044035754648687668831642873915942376156132589522060463133032680125436008022964482274797086533012972878658542103442574524944940736140981185028216725593847672199354159467324253146502045145395689591824539924328093000987428003046901349635461369264624381710334731112781842358323101984732755727134108975659687895508469502089877994270704241506088946654765011064188650532492009043226125135807761227123463546620737388323263445536495792698289487164842878372598110770598979695583272774647041887920012697129391165436282107154659209512043084257464306714819836339799740142709781704893181268295824465143556091083448800799860643871418738568542651726422112566804272790878245333566984709182058555013584001039615934942513575223231568821870966691150497345771741866455088246647837473298386614382289849676600836917803289730410618287485773041377485571674047767599083859767685890892119077491878480584883455616848725040352615304658374734723434338645479746962961917936363996710290516706397134551775551437920985383632152262658971221209703770849447235242537673182205257827646814828274164603212523300251460384524857629128736063974858242590186407422527667441269087378170817242420704514904267939224732508272477019498791562632642458821982269279768978452166490627366097461329471794872739201552316647419023182967593238689076917992564965210253946465402874457522726841151290414135929179129032435382332132226138359672043962164230753191601980814209207196017200728156989934924327887495173726237854729494880558393529007958519164091677300026378818370418069397610502110158624290601297118070349399357869707329235412602073119814836196023741865552080711835266642141850536666244754410822841543183237062467195410158022677762054799381330707870838238018759614398203635817766970631156828075075998060368121239362319697691164927275035731544430385125073225356168965475078914084902575714875986475404849143311936135394354037807187662908386445269610285146598581805177733468825413199730543404403421561647650030592825823605388210918716141306435317384334141959225139324330884284898595569227298913376426883348969651662430523632492887029641700825571301239804769182985635304298048702403180520606454441946099346332951014566892634600376023706157325642334812722487716957190586837060247110081668621500040299693596244088797841839082203155653539273908162023724091664897565606434291767296957246115759660093692839813665083332947488212017892010766530911328219871810983218993482073501356230541643376635865944214989337408472786935525522328433121956057480458588431033860364987824338513659022554009713943960719713062211296550584653411234075086952748519378978826496143787863833020487183898398452701251577773340035612639474198448055983262989659380807396093385241836984266203541328596147165838631941587595308014441477602715661443007096690132544520065727405338380987189541329877763304074196380785920290509575281709088802225572786787654446858266328816287800575864599716204342823113033736591773727695530960227319454254516576628829150221247718134904985515680496147203980980083883098379669336595368906458366936134986851957653979375784056271284506571185580409285142523227534487022462945726453399056844129905822413901791517941298305097947607604291606392263634968297419108359672319435784396371586225637879937071277430409292820004201988808205262207423970619164386285996344171367930688955576466487498589503999889162344387354697630853077448396032514292828305573892704604619580521798146382476787730473961409240494534903178601699913179416544435118044054409571915032004234311498292358279184402527349254706870905974151084803540978781990743533397120264713472832294961948855514772304690811416660166800517928036181129779577720830021304602001007662019374077064001157416472179565591430447729428157555644976650186544267205511618404809490348995250410456240877343174362364317425033704181034973769203947904032269061352740410490923283600730540327855589150865801453879817683886227674620133486334949606984147051090343800594746572627287846601321159271422592607091989941888291629363473414595803093008237425962601235801216762256033523964504119007285906124040376394377558730040301685301489805406686661951282812235508833285928490723182984286513414718238259235068475291586865317701157169815332149374204884436346650279208245485477034679620476174104717667821908689312341598869747152661499786680644751745077977885395200131676444030216484021615717353687578818976436001664886669031630301531365598026929608082592524953473989285255945848402420261267268927448007688505887499631192950050988896143893726011320391354007359562245733648804359403300285489399389600918340069145497172513580154583224379282874722335926458000407093885142442141739378720726201102177090953984045056140460992946097980737546163638825118150398549111678701970240486095457080156205635399619417899180565438019107819942354204228035756057810412665178801354859136553138237066895554593801460081260700716156611146088754910130464051674877614724726864805985072737444845927947563721121948138826153967028277641097925396500303055947067288809052374128877834059538853234528426904611847426636678835897394988050821858204220983374138297198464889675614763296694012589867214662878011877960230370001861425688509837912731524564005841893063936154070907098232428315539890585376507060290948373748676207971863948412480741790823870328925233601172245360585857604793397253985347119381787483118296226618215164801619841221079004130341284056032407508869183981258274295242524475994147558722752217092019581164977920340764716478662605498447222191847740852103435907669220960314463809519514053360957837601203686826698214368290521464390738246862049475648197319299379881529615925002264937722883604866676940920338589193158310741697094139109070371230384142454592276562484362124506918399662644588389479723634327985321310413384945897431407147154912240139530875355321168874696316418760382729121044726119628613990730471051529276935211892262898127543448255746184752187527295909178085311359067314881495410284056517136713953827884514847095321577929852954069645697509616631609263980996353472113772511002162522935171917323026926417225884954233934828794718493112825528664986451082997707933201129939741671935403940194277730072322176065637121391125032549108082536566406955883489696786556830513061150711700413158705869693650399279763834468838074142293166079907570134752520241372633316864023782795932888194629602133251120086581820089916385967480504388137796812270431126388299818556475530256674257014532683767439139636333620963364193868337799175204890652318056380529674507566003368269817149022592331853584260419943756583918597266511653451563650025034079128719071426875563388697136143361904803489085650730106310075689562020788726469738954295007256325933945405473544729738960446509272500311572216419844834209798769131867648595690695565620778680546649231965703108150433821976899160532533641149934640094071661480406897834463287192104834967495607251813877664431935560558703083779680858050382334696126850637360532662206534433346433107455452004029790602962848847899089296287885473916227212111917474083155804802929383976928397483280593960795249041675232678069436905918218026765415206395363652135386037215622594405316970843698882672321400604205118556224010266568933305574568986613481150685125204647458785296355246080108127417824219655437350618166328788585767735009128972019817434739665754872215737952185312036870341499281722889054396390741576522851863085287324387093649714588424091390226903666682026044284445509453694330545342250446999965534085468033453291502587562432732039023270300908589950230858222075762642664028821331467313188860398109201834234451030627057648103637624387969190805643823777289353761824829574448724046142307344085377696149095963405139597574456169689740238752588140219395550538222886435324383136663758443027345372553159819406554007361789725816877852241019706125738201213473698958460617383611973974076052267369275677819026634697438282333534618601791353059880595138844552210901164364341117067776935493293331655824475606169360799059841595118557823513937289798517429975653002725999762655951349891215626812677236620345104827466339409585714052118379329258882801746987542692736246263438205701594286907621085358940970418566176229003473568848429318414973339963898694722202699187142169922239241339563760088296357741129846586651319055291354594220848719755137527560592727899128555897280050742590955043019792400228042704198139174970856520450265013621108628121412559526565328262537658684731365566715120042033514035188676324914261872549877302718546576773818326984050231944351215628700523284210291685119029067406622519720060099579482343653966257673279632649243537939515457065227931013451447471684247768506031600344284481918647443042873287992825122840296838480801964881870639190983986546092198721930885214317856730194269933331912643635010356732653990869467220367689691952086223108578585702218268856230140825355743362503756599255617656805550198871198859972750250207872093149816455058337144721597743939600069928733157548943808710339579806271449310781991511327659760494194619005133346719020035682527433481750795745043721956304028218182943216931287051996369038594915814590463208264543505878557112540004592095055162878209889937447959021566531455995388289631766752060582852690136243045191572584653490095843167880588380102263835805292906973839050112096098649950837414751837384721728402652059483413649177905575827028861476329120267019466788484443851160832242070865247826277777373216432329096746237076116096595422973860239831496002193602990586127050795304469054544682561666913174952854232828090266629525422873103605752059546516632415125122362746086377785560414250180850149147603611119784025479825280596596347403884751121236122794366192630987114059456545290857869113956262440533218289169813667587811599274671258941456412036083169727154782760373179429635574647370848843317514466382132263338012268392615969212401496476096266911758344656721088240761964499639168262294962161930534976716025698232322451490611911789963954502285803563840897292637527149217650649333897787386199254559731068234484529380918498761896289912071067879227085854469396479259043951376628668533395856588178607638328233676865935878613059425576335871694280030904966082564502468431625963182728258929069897723687740714913372898963055077731769734497081926072401019446280101614293730311334592423175703402768694817374786704714338177397275350838997794701699780682356670019090422879961929701199091478718746357905025614847351482792615394807325880296882420091344521955198913685248090447514733816434379982176941126052712813799761714762711896871722643648623971275489781374345796376204368170225328628715600433715169321459000846886394069733036022989294206155193816903988560334397107343122139304179985735449750002766997054306620260883800298573185880672942901445980863762505849205981477945940792057372682688755852773499207286311633325032824883461048448853749448993566489020263454252894952471983339360695726889631655864976627324560139961692121921333216791824599477669118248528596480758782245783892549816888419585090779641106160122064553515071270439372827280482586160444483580402551045386681835297873505074000566917054244525550674121078599068195968675417551484568628560746168009173864585221725454865646804295289426812122478389759292665298249866303124743609670546610881214897811740567021203609980935764280309615636052929820024321233093830310003694305568913648009138254154613904227966842503613367884395878262581202979399538238411019141847824825493566043358940017990208811195500512112115707154454032700953440932843058709764442392845376640151510890864460933947847117570622111363723685410866761829398150015763998010262513209167122469971437537463048116887466480213586741296928831034880936574026571895806203821368460186386691928981135732859013088504349580568499850192889723317604236367422358426211276587716917256385169429881225679643285242157334023826861752140723010620746163098144372922783836621890599060667301999791222183549339210376116437718517979605723237845402922636951351809091243408830491786636355690104390086074640049900989992682039432976120017136694635579182968943759637556207429641591194475475799421855059896220960954281469600823107347285793080200095496266526328567599674441532640271200418474954867846370608156727028456489864723854886416922946374446300490379203460602791979921386724703066430259994309890400981553509818291772363947437308773065967684472919990747530696476016988285300972549857283678602947188609643241366641013016662311197013956794069555074637066427005599850027255278327700909416968067411649398170661544725291541881467370520084758635660876236295885825587117797410125426854849002347449797810376427668362063113448229194479260818347487108807949063506527002823147192960792161855534401434061999474469963480924535206054898533684626069003188686027076017465154222763321316444438068678938499515145647442291221682667176740475559988376573879249711480474993881202119229666134675375649810193174703810766950234496849317938471223855850738752719760470989036555430922111163694391244498678119707446790658948098668719347229555269749018115303556136090509722233172393879127363432074861164708001108157690464824874463936463508869024466414696998760210554024652561319024179104445734408396409723612751705419239742566140671231841621488849876558835426906781067394477987293289295183933115045760005227428513499069875755191693706146086105686440707874950679216140513455240440781435785154500655570156670394093714181511208166256709520489209734156686393351860832187994504424306309058723653778433678914182491045738550935728107493393539572981105332514976053639631229307443688175645825347350750795731652443448173144133769699999185040328682789603721103855368967755646287433824461135180983730698047020888215023578383788101340945272958127808119632982776346499594931004341377887471700953540285448678918536954363837853425386583863799666688184907297375749239146945558053095672896389017962451701610621376938292547057488486114219146325816976989063678506129093817233313263829533647121825411167817966479102651586800644169157016207584523694108660791542048978863215424656123166641452165979911885305982024722763360983100014737621207803461349355819788726861438709031243028383104080906664679758153861944978044964700862503007211563276198091315472136632515319944507442479038508004854081392139358272141978031043163959182086718119271537362488830936816869437814440925788038791760068053448130516453014123584306888071088276495420425940224741165479381453307268546211855704631670631584125498425863450437232309594021174123526313045091859179724140598022904124815051591787363676379237868906670905126666017747909925345211734894096202030253033909511300354045487841736337253816757541510460143540740155676952149072854325583400433232257625045373703723435974539078996404765150491401119238302747655138006220107714005740061161905862680725703143331111936472789218161148867322595465703045487898367419318715007540346907469177183706793959482778951090299416111000114683567043438464930919577086223149761319059198445975616849999698889444943106761833471803008279756469511735946631603935178460568994689331190769839712813602278314512953759501962103972658902321849976603771912316268015790857233610953988256646314329303048268049896235638806232983968001517904064374124426685253207681275573499546344471989739233453177403311394400119788842230948628434847098065576332951573020275044232487005684577063898659226708761283325189329126521791790286478714649072772156770290507862981371751925841983256214220113105550172683002991542586595332344923819693380498534721486251472277785032462921327183886341767700221260856143152053250449141482777795969003904768752593207475910917477591038109851880028783425223195914460813992632449469392317190235514884539792872644320221422944931357629810225812696262144691468771592495960570032764408672953329035491020976591203941619891455468133382384537066925477704789366269946355455109556240131908925058847426163615504953445067011003720566761128923066758996832955846019752864959314768662975527873170049859802853224969948522531243873210648487735178048754466768527723430212864707290639817278725826407518156836111124479363707148318425106255698063912124141557579750855518750889317605557306307049151846046303455447057550099151015235406482033585407250896678301783580710542185333234527588844134034706175831282116057737858840799157778029406589156375129046562799860587165081892164028795474180673564262610149525998829315843823554080723756766592112481243877147038054939910781761639152395434138146125569637021651467776398451321383992470628627707522098629901354952150015571086684801495822596698826878439975841020422219702589648152171828813118495471328074831012455994654305350616247334804572744078839461830862856111701850477042351051519656930624588019885808240531933068179779010379753494499219878017940304582744941468248388475806016654286720500871315703509829790840155528488034210045667820501195175249320204770169748266050780112415511588780163735705214917419178143229835205588526505132009370661591137845076257349000618449924396531413293647878138623594936323320380003408487426877681956758557905645509397817426853187394813620650323487571463571437653344381232874526020012466758870629837986992687077731123106592887307247743496614580153920150352740247278131893805423840445045045884646856503071259336560163562033932147578312031485509843601436476947508955972036207542538134259002535338305778854635815521422943666084142201640463393733859302572083415411783110296388166041021872601081417528569949862353581574501895340267237359435380915362430947061122747206116952428804739987875286962304722347847043631568563827406419680004574388561167262155698809515784110417174111949715989590999647277157924934514497539606369087491776207316942521600318403713177253879568675152991887169676562233752268705338685076618381633069136958963516052575840738892394842303950711782469725557853349068131463773792961910301002650362394954505049719797049207820707875791473549705637412262075918219580431356365707389735896898274800905005925735132553122480749416043754996219878602050174306019374616059832865748193821412340131259137696051283520271214349713188440373612724390436666929326016883997810447749811319817174498066578027626329537107658763545973800077287519454331065175514246981345070596570990570826494428771343314532126205610647679834320544041563583815709653972247023897944953281459493880707149997479619284686310254792683889172987881980506107989571024247393559351223078520408636374899001953028472709108988035132819634454549903106812251310740856100061483333016918382219919723376941722249079729351314090023419074898130676282448072940038256225470465576990971912581090382709529243391638810468212609466096625720525569074178045955559323136364305654725943061068640034509041207224208116234122781897640907158196509987282079781665286867818906626140498843973575799542412402096897848352435349649776998544279383936477287521362971313898389272277349257929054001650317897838461894946236187800303234742092180208940650157366480853930739975976307211822328776497205751763283359611647336014430160422749172179555563115482402351687067334163331030529482328724313441108391300878647147506223813147677054728707820079261123508680414758132185045558094106710607931388921127466114648163307121328711673517631945646455596326338163373070555085367120117836037247958009568861481933422850209287693220210708997542876822272712676429995351715065067129313114005626796322322165604034136077660060967485845728581883700116725946915126035062585200479791736460605160835013688969163709471525300609864242479701927104551926265610948991040199360844467063541673125568555783592177367424381777032381316896822024579267076900033168524842730552545472655756461268965727381886378412726964107012508976063216515403769290985252327548885091790345915812547692996837353430639678495899871856264389282486195895753691215315693935160309725522603894679528295202646694423114776080599906559016531961400336448716514983729802253261471457320437352260635270194572262406261344199664512009702252069406798661554672322088971388886452674220081139923034874712644521399306011770890888737775808165843865342119236378023430716887220598731018473566424901749266430157286478922290691174366385170782194124213183369819701162576939372237119306081494314301899813608217674865778276728283041610593855864588819058895504867837348876780777315022937080354685765662075673679465077537739271156551000212961998702392675307909517565905695826395708072176075602822594428964247849345803338880641665128985703016602029243361310080955584305983912338582531611615368723466214792374292547722472292091758990340916135785326671208607912883352033898528690916115551435767676557392029334164530091897717575088308047326697422592023578030628408540247938932378116829279941070609110390833171410578138365777456449549610262921981738410681746869870041709664360348049739920529868037783656392313689244080096455363411381907253272308060242147120102666506696773764098088574431939511321362350665334906952137720269063389914648262368454330273703737091335904696255961733846868512880587293993346482738876075639649015555893085048650079223927109139914677035852459624075907351317047971536888280401704605547157042811142528396943368638377986952098890935388731726719170112532674008675550023264391592904033893182501169639352891003124784981630956549817673923524280890625516777250354520958781514544549946799334679201968973673713686319551748212375909240647952647508710373300475880601618859635179954948069734692331853741307106900168188456928675246254345943821672164774448921535881432482776809556992565779356536258021091865748880091217279989989332781999560639776231691907232949551634163532099252315072343327694315350030116712106334510936396806545545976233534686526197014925095678375904549043952290856565109556487812424519188673417302254103793934684721673174433340599529405436563820033637429386667063495890270450138432722564264430453640672571178676781221192547640079504416074393480248262805380799866982617783668479564410003543041759599526462219485655091452595951705383159372440362407591625036778095257975623475727552853764020419364771975587619318153190225773200957878829375295741173130191101319494430910414081562418135469573990706419036559183397252268069180169168417319440055629846921928355481588898879956257562502686511238449440696139218831402016505792142632222898563872381879122417355351430331635315184788066898713500251625185304462367371224514807226998693180160012762293073905122125384388360325670667022594839636281007722619511395708714056501887291506676410790266932098632361316896591607117627269103449714106836743834323305074217547583053572459094954296451078621684218555347714311549939787914141672546512867957773231831442089257268612010989171302463142079492572330617659471059909754709182461056970729937104761164957509526778322697566541855922451312806564887361681663499467861499452016207716043680236034562584185473868230474675509178022761528118500674259295376273964090700684967371754183853130207522592928915844800097073026382580840321009876303442040341304615346706312040933005674230553332969168953357512895395167552235508106450073399604850737246758247728507579046553160756556523901440979590893572467563994242842514542449352763893346302326874252419834615203969709426285917675214761785334768108100170866154310418407741518194975770890201832662675367749667451137711926248894926554650340795551926010512970435092607119995869928040555505789885149275330038954153117954063909357815138558408413806042676348856669391349738505392645673565379188585145752471063985434435307310327280452372257907890945130494407844142846518858846554584972190299448872423161908813674283758889254426916708926434701258026026791080220656505376567405517528692974325646888889634142589389697268304998087453179108782123804815871903529275291312942616940950666065595704078908010060604442369803311180502095262382692397682978484002952338756947789007631696465248411274191940885814038392774903226028508574589478767729316602226857971431289628226004963223088103257242958031680193102773716347417568890589666314333259593728442514509215807492675632809248589558241340615928474797802087192246089806679725837864572920244344730974828757770614123300672872565745528071921883847132883277737156303837082566743600391649463421318214747171955328397950504983084136580359264242863530527305701997502181248102810171465807633601802507333418970153742611773111602184321750280303012244501284675814896575486037965308992498313519067321230104547547635284393759392634969848928212381401255529861250036608867155859959304043724436268163997396306471398013547257785299617748044238797107144416440183148080962807256309545364236896474360837065566802357578471605873637769718762320447037760684356017891913246465637571406482263586652761294464347134099569810572323054605027341535245810576879277912250074861036250089007647267891359943854135983441230173604094431654293948056643475132744105419480400769032439677843211101080664355399759821554847290545685719487399034030005987825212651739484441110104739899625470118629145813339830432284323816002388619384148801604686369514409243080000340236955723983447569411064641152449855457655717704793285319995838885244110708747249043374941222407869980187638496698484410413835990734044061755471839519584285276007632703194939838329140003993582212271459832816047149450941029503783284024211937512685296382732251018110365795194103335332528148831683415069954999636029018531163993664129829729901678183049980386361109283500472727790900948722922903427913797337704056601130879098974975184341323168197295087598612239258400629437831144954061580304107078354641947480922766511317685835702739685191553895271250692866764628526691070454136664852758705544512679858693946516831548900999259627942176711617905675051334622228591290756398890936932213331212408077599083906279843658717557097212830310288321769967337987344406166982507195124178466563635621231067723000157150941142206375056434804046839621105713789939572112645162464763361420853246541345373365943813658374952123685471774337794521303602912687798119700441580283850965848922613776948306979349439037124583498160796611452851339587864411466774700734829701697932728904133461669932885154435377058307302754364304383062598758302652566303800506351326339885943442681905556974255688185309329313526236438707390340988913067224954791493697012705297621497705449930643255921726629560923874531645407039277287960959375195525287119370578366913944198913515424936269569388050730443100404542821201205310245241973070781036560760442447582045102352949664261782367770737059422688020995690324600765792118747552145718562781969590291120857353442736406091524263925647568011001046197501419219343610347644067291038661663776802594949479354631410535874728144656717064070431840036573875333452486754553880824706446227792337113754149589790187534777479532898033060921828680095544251932731787094540470372866742773581900936147927723915738919738470506070923869220063615355405370617118487865845717439304715783019006106016283575864656534509976590021479806849844490022406997664560496993722451187555330025094656150760922173845119233511469001058178483426064018770811366875306723184244939298729685326606240717584160692660808191135721307051528641833521996672967140487607915932494837898982481328475314776162177357174031204308881818732701144260012747068475577210367953267971118750708495285479953357170174591376077074965328034136815911476633953009118517264415522300708111634448369175141716602384533302045630433012141872576717242092602314686998168079653218608069535643137468762624835360280945441093706031720468273845770579932915587319717771087911136188656656882574356862621711017426271224425951179659695204608506486520475216178981938059936206902202646488395049954494966169177327201174057399994494623977834668329486191874034898425466841788205254480067893948923675209195771622811760617606120861125850749824930003115329496950411256531162500433461152484050964093378663608486549689870032294087875841532260722743527712716874612657255931462620357627498514148162909249782565255688085778942255244998648827133248081428637763339518101014115875435978806138925063933034682740441829525218893559504774872542541553219341748138173199584974994236181097960376799939315504587291841994245163760734453790347643976759070417340199752540803371352627862874590369038013500987574573718270302491690995966844752764100407695934001667794800543653833973317287840274772208580572218668798005510941689944325914159816216049493399395084301941301052931639855794816776745216692885061022417002313449747890836714620587140038976606690676228233227183365669451447665407982194254905238212856674848248074861931149564315642937160607058009605343731675885357197567733987738522489907030835047482950036428267669739842336364137186676952874469677664913903093112908047272221196301509714147696006957171309780435085564323964032357855751699657310103073456417525122124825345083532011046495785704355196671494807704229343843951070601862680919561393055019174397512474415055688408766658657903953756519926130865489316617453964311404235972525990397945987556964416531481364383612380851665069046973012499467993731784229788673508640985515090717637597812892720437215455519177736945446824701444419551873319351294423888734079004358524285414159164350560427696728033221524425969612165674862638026635049186206583674978002281526227329224349646450733715009664047818231371890503830418383688235697245208341266997068095956418384586701537450460563102223351233894916695678832156626146338270888094705731351621051774361670642462091740321307277338640597566960255957198832514556830352543380929674383262946018392783725102661287364664065871890736129935934218523925992790330960921355885994463123146545408307783554662945897444193093341935171914372915770538211723393858104361071410950072063980339052866098047896407425587039613167312217050776846913728267189643955651664963101268925879315719642908650070192735167772129430318356669378515607330643201756504190747974781257757907254924797064871237903258809911409213024026825022753716639725448751966641245980820358559094275254026411830293283299167890124877105506520198747769969414898153995590417005517925032954231600216061547015697609119610886356416919839237422509340356509152857729133681517152467153668632789299077411595864317396166513845714089277968122905996189068820141351962670718887944081350643595755936830756324613640157688210571428360592604920949598057470954289815916905988549562691639984181318909060045370398162579554772450441569183210695883654096506508216055412702866186519032254224632507325262925187869146028767434464737838981510863623799093462533772011351676407761479020742340345005896412274200268508523593796372510438822077555804668444232194342517038554845719823861757130130725890662011631320392775375180107968264325960032006473402033902833437359188570935808507521860814921562004616490374942700114698217949869075586321482237208513267369785610822527711330504182556655352224824400576144923393247437574551636032183571085838111731854562850657379944165991341138898795523510452716281258120007669157261597263748984852768618318410357311805905435719342885556267917202259270052383944758208847473904389199617712063320507280179124895172469284060730277039976283942340825031217264662412419602171786012055291949283444660631316265579182555645269842273515799881094371386916645580086080986159517184831685708296826253173476608184287441757995087365654174086250580406600325098188663314375184418796287109310597806020723708984298452328771003738790991970869963613691181474257845966322632550006959838094074113157363871877214707256677853292506773016269592051653636886586448651805139871935522206969568021886874682079179484876613678568739275792112285934196989127930819575536263179777062862489854505755283742864899906274044712782673769011826133745586022591893009157825514665184239952226240823104251204394263632734966187022760102628593471098909709164143966573349627023424622319941643583562884384849716097847894327672136459372678502923564389787026461588550459956994907483081193266091504794363935459011008644055363252775231498045904850462067143295804410974483789129714034396547331983650108278956048797538412118161017882079507270044886995753811216972124871276016065919602295426103300163321549504497213303191286662407490625122903159241426755718292364626625913917460251829119044714520756264772999704326179213059225523184468901918905433371609482617283103780475987637935800321347896816773488644525660717856927686950214729491800918069956787003284066083001606777892002687239482034793360061490081606504779794525695278568310587801655025853767971815952112476682729733212138180136604066174604897621847898918463947587975057396607541895007066948580683966850517680474641612493854031138236112017902093250441635854787690073213530956686492973413931574981441226440707680458658328708261018453361047430748253928423958643878490888854813899126956446535522383472516461159093840090206746311702921293376079561898450208933942079512554503988530044565834377777305743004586468387911565275962381665721922493456820848483682159402262602533863181324988649575776691181319069078966799525347369758353403064490785011697042906768740066132084210110799573453632636411287681740825845320296039308311534366578651688942671942132434815850844574492642926832425229930791700309144445819588482931043380102403904021666598740752194050040068709167656631609101409055163878050368186610574628546874705683061610182694410779629136691726288334061297842192419064230601632414193982176941637445643229812646840934595658426064128672613164738836784007893770026361765566868795822000056768257791787043256566915536310544007386972650694837604887721151231928061001858015427216998183555401939911125879971759198936882217036937635479070644603829468189677285756840311247829780151309995262173650286725575823982589642412408496457900802367261748561429575300076864283683300130040211199820839999742602600216963722568924881770115888695281431059478772936201611740649470027672625949869289378725005212524716157455558742187407338862047618623962479817523358672242921200559848188815985421327507802621520625516722438105414644340666401305795138035958963133053619382527176664344602652690378738985982635896967103371114724033722455433377086056344945350862602480692542304072153678121724907744782697161634286485560378197250069378223980851664563942926734734433342721069980175268131349239906884769948749448951325797392999872562745272895812630846071973745010374534884057494355742646371746345464010085507895423239478923801252802393210056186822072105087923206998364707880541140282186950424871240039859163645973180124018180599546895657338665977894393002369914738100431755910022623129305290453793148938285216195729353980504812499230835920408188032807454812874728651969906879341086597978043777426862431311582190198447677052273876383244742932385883963522448745009062903005180259160709611960021319519915025700865042427324065148616594501449223934437906414868703159290140852755228002859743932412468314512886771877194937485070067293543278501925229081775814290164244672400021126787474007065465479974319273657722895361614882693322823649193060392815903407668324060910528285583788172858511049392406857560046298973609302962137970209959057214355933820628316187412310474747935963300779777799925109527505726629590906898337294264805672026107180414173807037687123613743745079517293384932315672275755707206879758322717630932478059569271303074996926653389689845419200223732050849507501814739848942254036692477413510885148825487302797250123414613156895513318465238206400007110093441125855902409848239473550962990331495190491161416289928194972379118744076970964412122644849562328076615593932020876177194301097124507616594624625845380438350238242652155531378123947359829105566983670458065399835274452045116315539698339475301084940177525560426262276177298314842426202841476154242120238861097076049156702861691813036417523054894008159092499967509673495101270955911235828010625840860996320254925536367125166740189749055904228556973031352619576746957220153275170728889272534441730653163899725022228247376502846714623603364637403237739970890415282537086694101059167627692138782268468246175674094996286082116706124143374942793084791224388037296841033364308151721295755044152274427609304741088143307575862103720215132706261551734928572310320410494447451203928837868725252317485824612640699941195379318846220708716269093846784939238240524673982700342147248757711711838990237661502013401631913742051604525386833355767138582951275124778443305271612819368089431192674577547372527482176895855611393736301609137363061317332179839801930921597490970613058786787816605774765924171218714659150044159273497711653548444916460921236464010376887279654440387451912490523794218752185042256634307720525331776642849658323988144974656273527123160186348236126815635752029962112165136233584300200594226322249806411900674622563120035467773553252001615091928205404187458481540654772820405915690735213457058504224445329704261051864481464599160091662800197632046100248813691049389203404145576537163122364708870452026761671065663129105208811123344501362040587153531079044965279256540299307163721393206715207068271058013411615523692822803312217133425559067281322602282800696791781589395030218586248894493497882492058598389841634139112913291664012369303855275405902523230690356863083798417393872358810596268658899035532222028407256616571238632949811065080019861377230982954684353284298983825023736777828769941016804387867311938458908874407584673756558198095356116882224423047841423229671863354338239001213570231464492559441047579990618977607595156488532645858627853270946583457085632274429714675638940175308248373641394474889131301732657297920337323682421163843300543147273040494709619213085173500376975241324094585366921684615722386371585700558607678505126231510078851789353197807548869160196687418182869640783399059304211280200582672334625113384067420727349871865553641368878612136400563414420279213256964631213017783366817351035684773047191312505608435338350862019119459103466999745257136977650471136919864608521521582813529088065478622716014994731078938155091517793088466793341201407602165274139433624204714787101151790366021097899203958421483149012975217115488414833069692875809351990886301836779005352955306106587272309458165213212701107844037447174049149283722794197483748073869053714968583673928403623391504823481135062438517071957487501818910084714670309745884211169839155103298446969192059365214367185969226838001855028679132371950334624999346326661976884566487348261149614387646148343339421454619771990158538835043979610592424052251085372401002520355123195787203673108637503382598800128948918824326415920870192008913790664363690173212817585005012904557050863427264109158570590773030397633060050967135204982993353942142772309057044461519819601819475065950345766669345325176629733836098216309559191802278683680870741058127317079685020581828240078972327259507427603531274448236507289517240827572990448155057208399668130378570991764044333668348435381263791941815024634702156826283410137864768721590980142052743652599502697682098508211542936825602928051370464611667230150785710594419183217068557419364957090055868860384194276681133468103426116345764323470561893142070458963334154849641186640017971264777421919525200020010923126331244301712804122575621054966790755720795571390277049114626070767663451938058856196199616229237926541831897532838041780640528981371405895197333623967394632042640118128630210283181037750824956750808940511141819234917126888959591700788865798995749176174802680413526875673526931620713015195583472409709505645417087133121425476301612780844640157962878880080555662865275648500094025747755500275642813959751379030870133361437590523786240052054289441967217072156531357125318334905767786797305188600010101905151473988544086340158015334508658233545002262906714528289904007708071827522378610905789431406555860284695373170794445606659623587771771007628349419452008444317208176639101191416851152239296549338486425955436248153241396185263144900753572569209819181636242560858736424375184885041674223269367335681971243911592708523313087205944669600872902398543213563047019875627502198943788889273076313472864597444291230774699253125982459812996937792106924196017732925280648254872855755376170413599434272219677342117450699978387741498938070498689646754766793224249073988034130709362913379713153631182766013420130263307800428389390699232478832146466018225166310308835452644614587071641002777526976765202281763765168716014015065732449635201317211356146365228531153039612255903727349350008096682908871060191605581317354418269844042032877671521461088070013044434624274919937783895182289369766141393546170439662978900634324117064724009042942042273292305735874372223150087793622455906464402666825366634748727321832891877451981170502698427148383510416804458710562369372877310657696603787608898866390459531481759763563615481346560781516225553048574459994247565447194253741555827497376605272204243913856390361991904563198607728403760187242710727667770604820088734415748059650945550700070026855720942983844271737642984158374994018828405587018158196634611337441339104844454864958068109066801609299658069676395866354587421520156461399611095653238316128604532575839671316863689075364173846982876060616385974230884691791583686100944155965730250850008939030184427737381373332293745097478115721316512373967791906594121777874882802268792411078087220124572103936879654314439668551294932487919975931469580083399049444762170537251097288512196849210314596331490258073740916881291555715543689781852245883873098357576231256973187498938555893331857500180397398109596369608257772710506988790206539031476591682444828127836325633621572546991023526304747609437327020084381349484028786468203810877503382497205052400136984384381142732548187301874260797482473573617303434115481570008069655817854381465900882054806072325911924012484771432428213037281920380841807189841503460544385405197090713959696149538511475357750909376540772991260010050429808941935618124735916434665563004287086026445788578896309994296828765244373709327833430655657913593835067768727800565020677507761589529914581273187745706626302658490044991017161782719767180210891496756811736456480496418733270000253311169313782191504810915532707190591410723820790560084604129362234903332175392736874726914395722672590718545998665749044906718200465511148375723030794177217455004690800076467468535564542453190484304389516795660076370363368382290085615160599508651142972928658558026480393896248086973499807144622394343216970256153239303758139782830893431852687329692683279322355283712147756284622416268215206142855763746018309561153159910657443853290199364883591389970638580883224176029367932202561664696514231299028289255725609532079963884182465718505047620712986422194598164536645937731884390856398605620012464745954370907196146829176554005136235207462470002203088430765340000801098935960212260244400283779616404971615358681658596256790964448309603818610916940782124579514088477206621836068093618072172398048666281756341752874575820844421688463887371868731599281197231083534474735611170625647990929799225224911605474476565453990806514028304467574063635232202951437620007729818768555042906798657993456623546872797586777428710518076359364244972476809113114078019187061228349072532766778250108451875940076554409185904477171001413935497830033565981815010138456382740602714239165696067461650051926755347509921409951951742877881510330665070297524493186079931252155363307838220004195659374242771402661203229168482031670243835821352422990115009379226004523379659722174464336817947354676274615607210479679185935110752659059362858121056513549076917694662008949897679124953478011626416222848987815929361537361199386836015071057511117856979507536038027101870566680964900182228347881215556706838090359064304674789712096270534986722625463875550494684638653785130715995272116797789397760699993524928389463348187597845610774294035976004920328600090551395647816527792842697134413319602245971769890823360449273597590492689002777632056322643308821582019860255814606104266670711748778861608955857577947774105770438854966662677901378358380310521700658845876905384839283527286166024763298711849529256320211447249769343599781876469685615451323873286835055498747641391514324686054379946351262484106286403203314871232825819635053446521076505825772735314796659579618611454468816945569785116875761898824744590045610518869053523518252740064407632916774323612557725057585156006641268289195595547089131963799457008314673680631579475541785956627917043847485217579705352330481767408840915251298310889017457408359157677502180878294977622420823498403897890887378750397752772149453948180572197149515286650323788864894569434606017549123276859830067870052957023060395353071485201007082204347917148390849016472884039365312638404411048076023594824206607908459503957812224809949948465945563357938311857036483005826773416865038059677160696833430151860571279504495717239284962849368510876744324273587517879905975927606312804819391012077067310257298169581455043131859129015921394662469410398197928488614207957639299311575805085767306463283877347060012936836468768385998839481889222754376292683579408610697378387702475951143910010677845945907949860509499333543219650206369116946961427530360266634106052804249795983279079860936650043117271817025390342547259807666088337221397282886831128098208870421379202284310355339033457065838491534993432574996716174725282612866538058905652417560027089625928011491880842144629117733841261133645334388260058259686571947057366341362246929006825592408470908667910267806389192987669823543014610129502145981415206825651081433583229823877407601635008042742985274576731116018842354032659109623810770307539191611089315594264393188855433172187469887562937624767005583463458663092198303972998110828826364007964118840179193719339293875905860463743540293563247723861485736364755375030841203881563999878258245358577807159679457143442932835700455145906651593209078971595821810554931630589767111939267421564108068349183669532299038329105218961054343121518314544040394698860986026016735329525008329763309667835506538859194521207338818335435236809468928906085368230191735029243777044798636508577335827442409612887796136437751844690014787055162404790681703989892301659033102144064586144314041301594932371116956373897271695529206410737340020031392777920434389917543977581968437605727161620734951184985313494398138813720735750497982441016167521652432246533745530669931794140969436425717938821297454802523657577152860999175023628289675425010090239566122246562352763914971763955093180436010209478174864243897183928120004887331056287081218625647195289756905741106055683663038064998206246317636638369764343976195076769656915172530748935250706981565772546221126160050497816357652734460552159186692035476883316337334865889199117225494627408905489408548780734048672287223198700028849685655475045126629930117750132444485226744865323222729813223776704007049536248137645223228454307023934179033643935199585456286901666995926794715898467625533354410065880783833638566449191438738118416282168331584760115411475654886446812939009542689409968719931753969518879756850992171671793734769249599166599793109503726048511168353684481133690952455228261796216383669755437453240560216420121776148489909916632531382110656509231520380061509386206814122055455809569250069136910341981658235923179394058755145626734891468809977198845672168833667369008456635241194302132874089351864155006115833752744955619375196249724920942724832348163373452924341215108778930732191184266792654872637975208272752761167468202686060755931858036193629482792692588603546159079234823909903677214139912105788056721535929447868937963943134740597090650437632881439389116172607515711769649618354083417133596725875734181599264983987711344593494200375924143883607891175520670544770709442228447078527963344581852331170183692557726689621147176976999796646249395274948279183758342431000019262376930680138974582992553905127406183983922727635548180080232154256154142033581385534915541788853267540218160834166528458068224923437101996378253989020124461582278936439399816216852865713876854952113892229098639309918600833987106533494042573391632259977772095791558313830875301953035671328233281805512812697286829913813475195078847487006767082914878620842584113700675909915008387900104815250006776840769461598304998399480932871326154399171823567300850423169879316732115839591309665927117581832108300901984237466736619904425275040135424444077457522388414373617325095408173702786952887168659516090281807162539310529676402607628834851151760324940770965321591930621913316801118719553165317946633157655127381612547310570256828711866667859582608698456404675852310683537827839627073078783494117011490831319347970588201138547053892618669201437590226322874125963767187469494858738156009104756371739664124106014042927452515874288793200247355413514632920808206234035466782287061769439367866425882662340407988203329946098732374930308987731286262551132591838054749388325992592046985129166877832892599436571546501208405329092999320480311785388513206720145918784481784256438900884154909252800011779415688623468327464227629170404532444112308704998444347622022580685308263999363901287333287036325526079974634223432924726844138316691266680413539598127259962397979511184653763408411945203252108274168077271051331460367582840892726579063455513966018704424601321173244295934458804628442701705778584311383916862140937671669154484690120531429926515734892752149899369350255335339637409553637361005124035889810414358163773296489149591134922982203031413113812465464808195715517271473027162484123551981902025691418018639341076422108007167761898503820941822831637392209191093748456287937509389728736468381499429573502163224678587466668886556952769833745008162155992267322755964614748664947043581259895140154493944660843900982762986004434474936597718339444879246670684976235913833290427908720010405056071212926282124059731464266287353552758435244866522068869369640414834978361049886554907662042845993693280307148709070830975511507670777586731450989751826123025575181036768871094773621489557350680264468199001335941888947179454732466238498888302773125367243644766378922445412934471805371978014566512358192706806389746874468873568079598997768870434095413223335089003430250120020745537000001374822359142971421321539872803500846217325143171368654957226759591465655901376379115556158024967656967753977766223200938555629285433784465573781948341739073974786387079799380369278492812694161728590709544515418713332315219767763667736749290407938616870923031944989123188031954136322655414308641774961488074203026777671611982912785225827842945598526534681445744327145883342496456659258311730161647106277573668915998989231863619118962701587337086302018965806309458333925276593379106586230992733215822654921197251719025793051196727023869733352219741446393454228704393771401945440825185646118903220736741014506897675900414598939301323523203473682069168719322775012886546189452354047635362070270772865260287798435261334163183073176804761180450595982800522766404626068428187160569090409739274840850319010751336188179922873950265518947418257554357328457878541761414993421903862310938198214796700024136699773023067015531930972584016326450376271597621439980135518119231374814174793046299430619547177329985917950810863131185927546905303064836674488048272146676244723394841783973690648561364052069610099969492400732942037708318106398736051513861236649066912097400868317117342061455862650444238097466536274439410630167659077477106498374859491413217437552451083841787170572760024196985259979175470496784664370668112449794315523020940657402777565363218760928104781437294407452586164729344515514964140845109580289761619146356744154606574079637803232783819016717876497999954786290453555520159473625930293703149333561388983123033792023306869319274038257160244013783786365725858264613186262413658501816092206595897693077944044091287766131412714585767464511884172597537362928983940864342631237486220619473185650865225046485836457781123077486134860751771480473583298455609089523808426699579839800536127086056168026053289354976093842602525549172835588360320798864335181345217144280946428605264989314944983763797918310179095816446313197151477166014183253795869037284091534686038188368060534477174871515377587746173340645334632244288604716558701095462145321843709392313913612937973238637327321067921033379290755981386001744710239633028794888469936336422086408690255190401335848661296618865760109823735956793154092169868030552462703360486167153925295200780317520253857579943819891557036157303895049529471713919191848305171129455974049755786357696423976537714451270917537203935470872319366156703847833474390577573717093710710577358716611726891420796980285249222325310426008941822554782013269579318357250089790987084142228952500203397799629155350246849513062145990917342844569351032246783172356595033679146438267075469201871601373683963877669912959528310615767025646344695488817684449831637109160445599427991198572885027920640375901297927738475264257928413457896563021055237144002557709203149624140858849242397477035024756338198472097857298313629943890910813446827190702814752198527564821243366529948128392177148609058150355092774909018895801451848785518730864326127612181708048143480768001622911794840938174998054843324192069130735334176386130565286504578185520268435104264053395657191263744388824556050428319647901979312060571976375342851531937897145044338923917354449840515394467138638999744978003929365147050724878218873006972126437106120451599396123427958003956288330382856574975838730566166631052813463534986900769727495876510288899890004015600775367467840034232425123855351109048289806717908430721173955865078312895800481959434476985933052517694871519910041365331147364275775512353231037136882864325826466681138633915864107388067187405885767974442301541199807780462649417752580189202847798703337462817668640472128429889556389321887270773353217096174354982133369685204767395360601973091554826171430033151372015344014127528848308460270200410388941893198290712699054769483019826184725336382568761346137135995039554585371696296863162149722193338490750259379751324522215081777913527797578018287873748104428189606916243775431482193361488905646020504839418076544611521871833591834800351278267408718540074874120951304070304173790631272919385696157003543745803473571433726861378725079603935856378849709957686655109856906521463477813769044091508110289308391427576852596523758994462483584033977577351398751893295916206223785192208951306300629115135733046596473661123416820168309512007991986470246953110633065674242531082993707702296781198894159971616928582080591732246569382186424251870789190724043543846691781795932368538916109629534844869729525496362293838224808097793572351344565252516273031463121238233470228707193634840587203020760130161536945320408055722378913564754155947903513564878229471202228506965308484730100634509985454490413239240645698886277115933523372747637699682047332206611893969152771380737253968506432440999851792696128926039566205761363974259493927290070793921810271251660259427477046808921870154646470500561537107677690333527594520398607111854925606967699650068274215331491698944019620516255972145396194846883921876493521699320065903373169630498063214753983042626967074959020983139481869076079041662982411963187342826067287813064208272012170590238797048923923087131955617054156506658278472570034387448713593782988732630823017431001341428687810215655647822790789136105681222057475673599586737174231555824538269660788864319588791931539240003637652835556922128551617977557820570390426943271226611654164451384028030003461552496800438074927271854517294485055716506077911625066342797101159141082093457381886455881992963962520119427811305334419893831565263667021134072019917698290070231342749216642400991941029018685986630872783430868090925961694191371126406980740724250093562935790309419168281252800001601500380473547140944823420399824773506588460672919594943276893079567777989846450870793657202875611693794326888986442815927692299081726191826227855460768844438583533871536361883246291896158889807259834759820465507802019407075924111860562233636561379025950817683494560518320124545561670478417096907654353353666669179809301061704867222147992459749178351565365442373974741857223947312305617083407631527535263419956507163819030977052297137969375452066916989839938906134446035804509019618738535004455867769979482760645842080404683698243252295551764095241176067837941218428247607635665679291391198864240154233039841475150586281905847133936921348290728737250641135536241427406510988275580480490051906654407322108545363832187134488287383752370938290206694234898896066321234873949919697508868663841206705866993941635801084542697038666093610859971184217849774308778295947377722905298271111339674929376751826985606688764315439880939744646076195599879189234968203541337493906728518266100270121055671393044987245485932885294443306855097027371037920389282566762261683701391295948388732339923311994117881641048525675684747617736987318113819353617715878469175258343667012894750090825668238903922382687645046916964902297040434062901455457823935412779383596778260690251564741515157727317197146918598402652800094923179799302947742235585783811667714473394032461409867320824358259264309675413022800279528954565494019625367159634350578757578385964236404899084670267500193619719130761226189485672347578380763775476855165169900605906483099928906943148105800228618050696928582120921637038706387051731652390703610636401369796597341408092192234230878539431422458865312166633420006286763491962110206909786568212696250691276317102337184899578891375666285754352116614792798643304443874260045557423225425417093956728777253581571203646831294207678021536112327733367325101382375377005833184541737890884687583146887352910118094200223520850896900989823991087325995587285144886549139803947532720511293047685584854675367493023917748742093700792152684731046380861056411293268985241708758986847824586591450617016755734941834177779450685013744459220364108796016343843017959631081870981288446827826776576076023814065802972068147404876736838595955488857562524422709460824121442601499012699268084034857159777382607794067774863386718668634375313682282779233245930660006388996177610717178409092427473442623333561423984706430560875329755180794776615847091661014687733482669610158841666071663275046284234253092084117015507992701623292842003337319757160519559868950269037232180441019550647031558957874353553586004248929516549577870122634936988617771546535009116636202795317222067009896190673048290213500047074869265432728886251982866830196928085091107934472580775551382038024313783253352155610120583969445218825415609553357295916250049317544790648779721876839979002726408085338293882793002839294418385707332088739096685181349505008788145212616522101516163449881570118329510747280038656598432598925830899045686485233695872190980432324663926248643499538271756389102570547913290955514985245383718653686385224626703643527051004062940216787015786659713548437995737282890372702888278243461024714271989560499053072617726385349898479464801303045938864190295861379288081283274189205599981460329614484619810997795690083398276896342781135424914702249329560706872966374507861320469140385412088420280421271068203414869314183106392617053996398751984852749263201349966946384279151428846104865595097548713625599714624874643007197440813131113808992721762060002508540427171097346073618013626379035479459812213233215032000415176594440784080333698629277487573086321543112275876643790749370446885091387162623625494319047409667291792300593649543038918379679156011191668996412584046631182571637552032633823361476141303906092990801169576037858640095382390854185387780347412196585493296871517347719680902620069314096191055675082630528313261612409014952982554272274904702025440204677608189871981935919758077299672190199464110172978719832467421738810206530268123257044500821355710452998158686097060467674856956598330418164548325063699108331658302733966789244287354419447831997541879900279896337842411198255586355211506069678616397144058493859229297517210186141510000284691950630584681734922237941947419857602269873703284675317980665308082685429730831070528102894789311630247428724203045009592676083064519681814204275825885372189730357719087785208538291108484117047435248915867320838455281159599427102215516492513222945059679955974479696584701143836531637446405481355400930748808420608157731738543633129794626092740372263403078941323972052327008844337884404130214057291089926419658358608345203989023232109693613363798359490971224123003952415832150610444797428847644512003289269110231881408293375308429607717697577730818322701635347730187238319239822730353112900598755173193000791881215070474022175371311542147993740141703502709396570660953093481185285184659087700227302981884329694246083842594856097286000687873855361716270790484584933066025902181601323652644732716552827766962465998705975994061431661413474529118447931333990373613660089925793206576563508293151618884561777037899670190115052469286286533758129945074879418566258306043055258021357901404116091364772674115364668879700970967442953952081394884699333962136646942998711409971103788791165574309798953247032538031430517472456805185320348955035957798822906024889104053416055692074317669731121380129801876491291181617197211757065117436293663775776450056106057984572155814649292368032835249591048261813456204864293054957773962095885503491546918116983689140898095619336023180938612049546683999410971428976733504824281752263227230584803030835023153732198692598133244491804670190851334219080921845448925328549793295852600076088703335973066105845388055481537442881475136354179666229846782584862990729927162347098541536493112702060397883311442128784261142661910683467767296672502690095190884183863101175704131539848421658875732852727075165115531290509775170620077169858678296321977127442830737637325095856923147365675786169157429456059313769058698908323944183612987026598458652992748525251056411871059842379455217002264042783671336791637494504423326565276502708083469536802842350118341190520738670337072134445486261146871637981432053137455222501055477976452848939848274089439809340210276303122501604345708007083413307036111835289093352452972442080289725088890410151802456937942427746414174270548546916353990531674689120441113218232958109635356306967019738496974201925238239023954625614308353810919877223295244871494527732952276977912891887410269778827663637341812282785719493252111592966556276636585599584342161966644624251826856505913986361164901168426941711870538877225408514413422292894675897223414183401429598589433006917475775286548421578118466047186301303674713225567809202645689182552232599837549701854188428767308816338061906067991497939899943234206059548466275704840848461213161443308538092071922291073830809169252534990686018454610681222953578412308626621034761133334159575646540586360587583412979941740158337364311178378097974579802441919679587928656888744739280582814172025953083787083759564306010974547934133054456003282738640630783850107928406474705305585857872615857687351114445891529750813388765431447022513047853571227280983019164999192987773833180023304168559024405143862344012849490796758255856534608686107837544406081086100806850424473118477798046838009875959213065325010029393253133436594472932494541169761897072616052443876042622046267293246961152961873726833969004195335386409759522854804605264158363504690023380602616438253965139548381814473744805375496174402380227711465207943587699840310428435088283435885664554301269180617400470966356778035160071061569792988438900099911619233331590244055678902803680829741974658175152628092155223651720456814890482292353641731232649357065602058728915231486047007333793063047545321173396415378716731329837181074381374455887345974401954569376904496577918977034422419636777052875264281490015251095495372246773399930310591667027014268531309345252271627335291698450076379685290127202568361410812891311023263598466082203500272635995885668166972436801995595721903259557473461917543642325670539206283647374558641897777388211846053634066190743989511384847796432920845860121956368744907207511984724269264381948182137827667805885963731657464240843417585391457165216814853781962715738585251653478890467743137295271803988471258461548986347355937894409068202264644076846940814404875253158559779181006808261725491363184288162370246732414563142625147589904573996628808770576467677384203551370460433002740361886405253384553067739067431842300786129443409941774314595586073367023747975283826558759563840143736885251452722738564849719107460052679522352563495834266718557156709269025830095855181231282612724310270274814206718744861059409601654320369416046467714371117185598473413666621645072382716426268791051255921946741388614886415830070422808005849321786743427772493545199135776482068577889716798950870138497596797201227461946182889729565427048816094875752955438639318127952821509603955711568582964198226790154468096278830353381778716538905075145149032477567065368282803829320415764410910112962254833978573723506564937537911807509072598249812436487191769356332435837752503452794693407358108443412233532393083062568682195354802889806611062616119367888820420937769798416848824739469662520838385443111455181866803827459619825704486738654199746438504207609586263792804135545554472456053397428394634817237569775851142409761603679053350926775224916919201855016533171424360310274327094347879925191884379123317516024108634067708694372842262137824543585989993990547182259735474678338338247555465990749827264299869992076822306637271171444435466220584355757356165445330474683916355107586522546916358901843175468517116217806576826651985566992700004170227696248465184163809682582080064855924007644472660229129221386211174937758172143110392449106589146131488086767271062015948545006774351939436261833964594981873008869613567836933845461705905160651358265503253003580405446541544792144960738273089981571532698322671866504202207715954277360221342447882525864730958164024665424428345550959881154704789725433856795642923230024348823923637400954641948462680257560024153698665525027382750454285585359395419552177116542650869077513266782803438234515480525810678817887349001799891347720138181724372787663982021621766489040374592422567240075690671010559899213032765209686654890204573674141328754840749614231670518590875761980153103864556902413031813046281815533420227011567093520449871998884511966877509167105127876118830744376237382551837841463062936799407286372932328637628638130915170014610029798666893762195167900809522528569704785167380637943168245274698181805084068052848857329614181596143065709240417141171632599721793243809421796633364803015685214727857635949416433289287333159001017139263827019637790017342034098825374725036634085253781785320481726820971743342375294287873724662981491564124652538415548184743190730513480240567740385514738972086732896908345916357392203719437301118242940836200015473938533896693959065252632812815461543729169314954885018047405291209678090090528092140631362002442777465039701067612563782470848028797542261045191685340432030634714063234407563715769098407597219534704418873107536970341499332387402598605416979800183927251712538376310761976990406190925439868828294003700044207734855078814091516025227238518512067463512158288703850180797982368231014857380784606493442933506473524791453892319465683756017448176610295993501612868776276799165111849766394725372862568597755655673022081857496837110323217539516592791953353546095730751845122877267988086979706193889588287933858327031195769435284805099705492653237015727786522686293139271850520574182778342107149464495045941142537306450044467545454757982898277941004095163161711092077771936966208662828135978484979943868760084720594439679029578497233618226140780181285169250519440577067392442594465916586693830669642662022206016102066641692840291628411354911377363670520673667079411778936832676149781551771094564530272820101086674025118391796408649768608256462380023138380740704226774141374726924285140468497605301693456361949302129990212219699974948439923648646825665817016025675077239753710211009166359924432319803869925796056938129698195407990026103800126547997276682851317032816076006873138888835652568647946098956523007955530928560348862335621743628771079829449984315333559429287594110891638211143670313685485189093175242057035180682116567770064753653256712579774742833500349753375223795461029529806662408764836068483111882806980116131475766519942916025249255706262219371309916353915485937801469093700354829800012689363689250883091724859080177518781128527457857876169892668964813902214456933233224057457728549390065470039531336615400876543696306129822769396612362130627895017941807783287849740796744446414764583683014236683354097122878169466965127051603638433029011060750957878770542433335581336064430451115642250501816610680931578009583709523268236120933742891814243068884934342609646270232718964347829309260667471552840942633159742187277268541536030463937453119387199713564960200060724960527057623013476918236629871069125936723604460232382870492612225413407156682191510086254863489404975442035897712601332191391496002378617720542836955247690937477962279856080521621368008083821561478164269173328917013940326057604012367681602247936267649691744043329797185999856385254723839883330404252672082339028621837030493707779449088179592912465675735927019994868952156355242185729421524100193375770092945570595816436777831095925561082562721608709873063566022562646201707295711047859877805012158893470111868113018164660110376823914947313112000603552635083728469063501558948645718114580359957654587116531797604896369628819259423058200055638702654327508902525169625087073287407486423583858455271349163366541519774734736982768041298800216093628336613190257187771565326650108995626971763328498694259928583873651758754237027071047703471022392305805851369676786995588651429546753205467233277069225048796902191136257438246282611550256419241349068416990612878143794236512657031920119789169844822678304033606826733237610465903995375962788087302717180923199642513880453695836414882899909442328833138595693526522057193052557022095858570270665074474965721015965970174532919684220850324783798956700188434952275640786958060598005029144921922779104771945610511099520617475398449360715408999959575474969493518612002427418853616425064975900018446638474266538045886439140137780385593754950623789727539589974476479527620873004937828940964208147269150196539636093333300408952106830429459771026762350569510035558685341843382086582144088491999209308267071715139380270706657551787216220825226676319720393368304900280658358146230935546793555288928742091462993498148835211175262881787811031950559512162230571121475230842831768090210698408136757466468691635576190276768368256695950812386644234944804165723848422861620192077217562387567972190411450630944803970649373406690576100229424455836937464383494330270350079239777207023134682408928998959764507231280896662963321485212342846467423271769688869166632830248367183877005339827916743349207125135847425001829828204473142437704804347483600928481187577753357351791138251128830966339348652705915954475198309546174420907453778579332011034906347704826052167999205648217238710918909935104144890596907655879458356628958434979562182516215769853154079081296986020845130493993947971502500757272950462974725298225986045598065217253663437489705610829123210341559175988480313412517620864100739400916493793091486037964682057959163898202690027494964452935268314030476418179245375851956193050781515976603800234308057407674382824197639876617550612136939693418264760255001288078431938096004104569854592249937408898281634202230456612014443252698078711751521126224266268131817681145071623061314613363552839218578765203873386126288173018045292506092996333866480244711496411889019313577075358788599339442561992433903118618353239774078938237097922633593859431137131842892769280189878955957559690647026689273418339720443561203933773456542628436188147516869576410325341583084780122373539412419617809713748922735414478194367458275615403628064876099885748242789546152757011598346615995192031193666800420440637007530036878329200419569948182387243782418814224015585151464060253371427827394906750171178980086738139361444635465749494310207090821956628695043630491876135676197571423718165139655941969574028788211985356348436508541895731977990071711725265877128272208338614765284080664334771954577874300117361084455799697622868576265952104461085222542283810225910722863118403085938778261666640837726114748790095414187691671258744548257409364273778657695602057041924108354065258132647648745492186070749619103321214121215911248117193765309074466986756772796659535795095632496567458917360868505382426400824228313506100015974021923486518198267034454980233771468380045434219948476339228589925634993498971851272973505189407132912541902948815952869127523207655751285068697218256937054189376344858355634387858384901100427403769133115437733214758289227420518599941836389831723293564287790219515460600369445706293487362977156487638877810853294256677000151455885556635191396458132980860799796350559857215330960469428889780148930492102675599270420165642218459394859917844412380563882311432052079876740526016401204889929454281298483744821809378272902537559378421635274496304494550060690414308379362252192167345430390355528881807496434940334679661849876787064512342546397419027668889782389090600686502401530757167239476104922804889056954429216019183466395466966618905428573698713983212294626953897676720202134462966642838577977365699830401541029913823001214423463310171385973798499995891805338213374313374467359986589005793989519595192829375518151415123084474845218196137252575998187436818902753871855592438572243798776775937412096194960285941226481632254388489427573835186081575537506584762637942486810874078175774742447444432128284699710709611594126354330968566271913098556132315397871592971548396502141186806309473121918465276315785379748332652420394781882935639964841636536867614354474577951632697149662567888434963049563463727697955530235203188365591955255615810211004965158569459595134484206591416024729380036032135656959280082868110321753406123948941286808710008599455419616118876001671336969187575399139187902007366786783070356944087907022885100005041256288853427215512985158493054906812661070410795743181098124539880347805639175997455068456217439109678300075022269836753908192232325137092565567266667038405524547175895553764688099565435744999558756766302302119555668535785465361820089996514540256062008692723460960947675399554464030397511598319811682880863357016437578325345096748311957641110635222997882428596686315956135350204061517454064307812124194774093815691161658214192376616305985631020500379857221303437123163842949496280398600280169058573843643850890922045954911179735716452433132667834260087098587497154834117918419669526379660002051857496244978285769570433604368320332599037931143029235840520398723785578651024998379042245672177792102964766126831725253272533854727382300594615923188513713862800675575098256658435105037779972953976801479612998950569617159837616504458699785458205148411997598129006052824891340100546402822038173607699164628152324104088711672771089795443015545021741369548656748555240154926058247611740701522054665597934990462542589085888560491571318707738467859260840806574027245173335084549323726517526692166346664861199398344603963037660237519315077444152648278866312714977604987349531436712811901941143688761189897450667836253001424587107631496342246558599435717793180505289094310290335903007551337407548393269503968775859631751176280150495947735141881353899846617186006982513113511502322024237063603871270335134520961910254758895101370293368177654517656830782639920297723426083659433494863927566287570964816504708729459270359883328729604802792981783228933610046974126587281905663801199284519218865947567396320527621915507932037637554632711781002872294291056515558910262260395081379117507084276956229091536346803059886465401210769054989686124749344521398973622062439079358464360085509345935893378535090161884707351931308214004061856266165772439853245042592480218126915984585417126597044288604938188076580557997022569923397735987273066455373164705604789722831754427066463722572114843442919097380092252513271214420422402843614663675339024403034890082276148102804819470422495865366867329886201563874105279623642680233166273939631672521873452142547321377426665580651428556286172338715319202682324975719632172923067694250489016308924386428542133053711370313262767417946895878524297025859424348332821249096760250657065596001225342040752438428643434485105062042071631804716030012754181394205196430312233000193801467364212881349168326947673975837669058646964687019790245723595553094012723208366527021672016622648032785690518376402158235769781735119600380641509203068913226161004491651378463771261697828422305358521957272134592776981704995987906839892487003566342262289778674349191810802378773802305874114821789783437929597813188111307005188099497040311152617276498503365246846664081109677242913360094123406549131068237875794418457954891671898611843807595976040853492529007829898800666396895999825483522622094074326098362743114756623784591278608979454979855365124181896888112896645009443178185118181215299184690750076784043775678907157026254906857895598008215688703121795663293103666995580117688734693554980751601059393755408536639899534946694626188673957938247880225522494508058997368141130572112893202368827262094358029375854856794322842480459062484787190183549507666902096049552708244320515095202787185012587639073864637481239815842921987446698854390927627038400821099481176370404273675972475358617153879470151258379667530508913111932733376597946354455284969259774251169086830561011398666463023840506296701337172802445065413517773861379841469023892395468879101424467993863163053198784887736795341805859604805210546378949206490519483611243090509149756956513779471163087351592774749452886442143168674517083753852424742556638637058184907690728953491981082757750595119043842970547250883695533521929826298226356026150670253034679390759047002942619014234556381729405626793825088475982491151372471565806896235030206124075703185134953904835130239088919103180381702261553695216357288037038831981078857055119627928661229369992149782369568011109482144920837906307865855595019213026923185474456441645768367687850800306242860144664548168381148513646390707931064183490832003646633138258635879085185179836269883354439550926885376991697613233590674449149460618114514367838962070022712755352586197559458069028649713038102006327008768444614942396373033041406277965412872904528181757900892192823644537363407676919778192454849004654412161370084813238281608633385005008258498717768429344288648324110757262742005676602474996401765421012039045675144640771138588111507689225826787294242479785477782797996888845041204322080608317597399091815771254732891040390692772411899200974050775500246272391661527446079438186972741296180767543306439230649368528029309362460262288710497321373135858910972692711433070575396936792030632312651270039346644567043882125395035666418647830137730287135184535633956328291677205308212210402631427105292378832700550867025596040525911585325429330378076656065106071507057512629032191366575739938335207474555745238694502987601983170859872656842690294545399636675984770926428940547857880568862226618644875674685784697602119752728402777249701259629713666739405604541735178182918731344769576440953001135074285033264262513919139054039992914803610987294611342713888449801438623683808581502607411248436393159659537897910778910869806472055829550273069149478993801673354764894436544668899563235609205816093861590938458482832649637806933999545367223126865524831414951351113830933418940782557244522512767556730630259156668356242629772790734735214261074413512440858683979839479168970597336621858417948744475313645775726939280253309592112756574743878126669761498379276900252735242321290385921334468917346245629369219302622994625841377800297263473773136436273334880569157985861988348641319790598447171174359830498559176950228578585324607796898107989889986189350749613062364034937767068359410923463959044460347010608820490682988894235495201555052077145365488630105512378647620002384405140147862559821595831556730328918974765135512995319912956878431077329099277666872890497809091367286039229235817657110610893578266777341393207573080957678373280794083305014468722089678392146472614041585217154047432761471424927324704114138655297557768815999071331717943230246692254153941485287504126706647849177132616710538018866650998401309837852035365124521982423499767464720210652932670260306637383817701361204711258699689923897374287201853427847022109738048763008449172624103661712172894219227362663660344229212445021371712426809917711544826345099237214882430712847933024466964433078965941436884133222831842532966870816742335425406937582553102354133266909882772921135501500814529887231872590311491341120375053988149889641305888497842028339950682707764448800141935011283649393149434889148488764964348638400828272900432094570437600605955758671028928270128269840038452864738300798981544512416473649481490042108371109881871253230632193748924609379141990480814785870009486662093524732209334999975465735580616350308000580888000681481265781232839445149167259016853564225109641649283145485695882602653299303363266761236785874265206388800644069156141131083681842239220387962242628759189472223974091145237452201494774787027104688866082678967917118784732477594311874731410951900120759531932663759096603608600114063508459969892137884067084642668927677450962395843548902982652983798620400415759317851679754209764712469483061908365933924633821403938232724583123360347955333548533207344053207989299477536568313932280807270933510700469632870843877798530925321637937470789700156796888379032299647137212935979964893648751127574424575859240716039842362140767078490319715152385770424362035976035158774624237348021080532837265434708544033241870345448803848260338158657564185263504567479061303220627014149465382169187212326627458170277569663511676550389482729025529992966687723661219021268564600171224224875202391049875634675420638249382096138617151290310683476931255867000648904435531055047276834072085768581398811454560799699838171112734269687301853615549286856282359984263812000532222108012996361050627806970352423732117416555989867937496993757473417201125577007521059276555133466871489780070700417394024671077628117138881017866193214366085502771318172159730328348179824778558704348952179714103555080120458172904638682644095440477101238366462881032864488988531651522726088280272352952027030804692923227775722099609015174851442447470959119447738769966703053610022886975459043450494516211484223577617549619873058940958394780484342349451966726818521618340492907643551373230944742357604109927506224363503652345216543370331102284675391308610010977133250577328176395821036258138314089078939587749041258943128931100173865466153044540764972442966379518603668122784604136718326159762144379124577571680998426798301676515822738829602257041298419016613689476149077577396540168771084262398483044354952398348168622266982638525863286253379675847629148293917671615038722076816880485558265844885852681388964938616862032286524295546224770316097654660975936289573986364049487472082868656660916839193516893828897528833357129088539594063243700525988821048652594679812472990455505739596258970844174850197412945028098884777773822528909791414776385060815406921000529754809370217316999228016684574732835488758223477711242555269799213091104388884598654484294107556692955621760242427954391003988097901939882068584653065225182245907861757096511511034948442822260328371706061711576120647838529353837991659535914487022065832318124314413815840130295396833860712944656393197176009902587646162333195294783032940287818043279656944059691370388085121944854031595723844135065693078049914370143678781209360306563913692153643062029913661817930109212625672485349396956032690288723571973136844374967137472838391612380169217193744324261842967904681739334350085698738988325241636189378953089877764446707160489257993136263809409349110998251189759066498644894652381792848509745889215042589876969829692677409707800616286787572334654452742870291921469189786328329914852246766648515011636609599367171771289511849951860367598314334173195801451440817473163246000468268984719866045156871473006907668730483514550380078884925854332654523747621061244690581989446550507731855759831477852167085742720378903330700730477590912742018591386167240980840268102629248139080045182568329449606821899222326557762874431633325903027799207010086111228967420042601773925579767751701481747903525717755791902370890859637154707977458725327538990954847244777852465886319483334201879886856972905226206693192242078027932252310811307991894837603065534297371180300889266304652388105404777673524039078051706933302887460392879243240358622585309915831778528000167002445898289902928330308907134526049284833711705540719020573236122640864769398346925506938987485304853984252034784014223090601507986396240684516778369731919567209565930310682603031347080466020872059697750640329329789688434553098954896010445783600131707566928944842708087107985146854224879783541573046653779312399171690058510492250479878947557070116061320361185149857842726682958440136581425808998463019909292957680198977427860619409651886154057635456492056465351944709631107200792298339959158097334954824316148852686724329920725109713553814958537487171383722041993367149374424305262783285454319520583842916763305121117133470182052163235383143734897811096339667909311959376790658250685097826310181269755562026507759426665880507180556715380767732940148157902786000896634705001608498204970538504443033177891272484792659964297174467552897521678909240920863640383408330950624363196950056044505216316714378126956395427738642069281247172448537457531427183048590442787157365192801075728369305143221136496048884194710722343725141130329166552095811050009735037537185786650425434071212796382675600617814116437250382433650054838290426735194454223542968095340015688944643109633433560868535122802957449243768665521912197888139341775130036536742984294839311176930319853574166960895645888846324721502938766906051135052580006748491678768732721541978138790797181650825577874326514558084497268687936215658262730001923396251264185168263800875187342907864123258797593750526163725446712968740839716919870718339807336104117223817626948596463902379295254466869103356404705470156259051554453637413463219649601962089148504533127760759856884524682336401865419676386899400938131071813872490032096272367697534960793408865483692362410552909138023102443288222958926227888503686841742156296197992168066555517736444914596034370153047103364015891789885841720880742510148797533901022148135417305661273170559869161662820583514376122840004292564849879099304913743230228468336479259877293613001632324136283730767456045140149686169247516852608791985731178294800705017940389954433946866784547219721095657686065223229554934853774350380635464029548399821030873405920568178558423790865608952074300757604103753215020122116277925121921026277105704793156666955431116144846581822695258044803255487532502541446731696177970643740342925122887123989094947495098489006290744010850909048347107405632262533563417377102410533976468443306784580758210671952954811781782840885090555587276481668407258282575834227068247052872631917407321287986896330140799928481978942426106758848206518185477614723153100139510695517343837409457707684929570786025412875729430912532326420255605847728878564708597076498264086704301340415951181547089042851429628308168944973113463140756910368564129036484707364022782689674986150104815303589333176126506693973977030832348541236416372415900799177511309671307123427561363458712174234442693564971612745672606999581532716769305358005720303360069111575284190119724131574650223387570624505777474820397499093057310422898757214534587440544100629743262934889647190156701387762253761640101055354234514134722996199103049430381946813760491544727469502476441180656047702165484853925439415509999213975792048571469923560238993578988690613215814312334192273051920333062044407580021261309277055034858634894991519388687573750217842255321298360528067206191802447674114347052033209319597449656449220919929551310966856546923243960134717128901487498107815210587722795518584104977211328567984067133192347195304257133003730903858923875053767189608936807616684548044932323024883383887025069084632473631868213790957206274200711566746921976185584150592822121260630860240717370890172845981697713038777060016241545278803921790045604649004355199273507206233301009469872565387723688743528139647562246711860458453989361288434009591326068850051626511659359264118162944523484513825329411710260221128516121634369350622408274779299576935218178781844836180334038542060281675998177952377343620634152852004970251205490089407925818122286261374064022730470937500885560215805130200325403699007794259953347230305962636505847467302551588956977118457292887052890063575524856465572761481818177851039573935223360593928804503248886129554204554746661313441644040495682938850976542242161366179377018068501772148189698447902952502432584457667471473814338569184296671113063560842644808481317531844984933100588685669433529998110180450220693900573213041832272930046821607870038382182603915850709275037730930821375978764049900374062135251808137241494195914716356568857887609345973578477399101895413806601268686424036344226432310583627997674588205312136610065212104614964798906564118831517503615058533987099776870818108578216912751540156975367353305717095022103375145861690424027317787620496453528894160943780913897071513165899762411470376750521277338176492605125429067010294212919344691403069053475193463800646643870134042139798333970121307072738184553655716792878277473373383247765323735206707461165049010955877569307397124276462864333637580195884397290881282941171456941097721199823951137548380362903212349175205227673616630715472376696281037971945608724974003919026274867248856554484408998151482367678391784301523268087245025838163084364762065632117936100474965796479079298926790300170644493193349295651149519486784183471355795982833317472713560829395651010674644533024028649043404303078363799149752600902851967704707226147957891525544029271044170714399156878966623039590917095665410480854377630526624313930140498640439806510945038398168167289556947736261072221180259787136137166817415145954454088766660991038248485309939369006075432837047984282540076151782606376404954286491265929923193372354421787770844237331501629426930490506828365571130158893924535089853325269925263314554477656644803489514398672064991759104270635778135138280428737114933650259056685817491310053184031557245177540605627330926093285134169817717843110078035020416650452112716434921956030074901099460372316451549724936784053428776546249512196438616611118913519636784249125135811398593975699253143302477769210787217681240465129101218813092924715265114047490282778665111064736582786972036029170620509184791645923240437242292621489502515192123652210869558966397201618576975087871133244252328170856814479712282569625254013578255178513051322620285493718880022458112787502832216369304581082991783180830560895484178699248308456265490174629132208848953219872302299324209745311693806413794809084886505733492486257840604383445179954124497912788273764957850043661210917182661382909942689393684408305775113885186431483242382412138573775079058031520125415696208384094566590486405363925151145978070819550069166977677241395576552056117322508628891807356657400875007646040140058709185085701231274329841513390837513138666038121617161537003712254176612002598466015993246908393160782794256914948602468991082140957718275207760529104475541176206740957214238753712371150815644891532164301860106125316902610245469775770561151450394886901647298441210519706499881850986492147702870920816443887252453397217426179781109820394888011282078876261730281151389290878539602606590091179439217804430807319630273127069910253952617998292954939506016067405580167914503916489794687576309861661575564263508846899200348950122660407651803406790171878052836727986516676770223258368368713807648126797250979553015944373920534027990908693385316350359682647251710747169280046515071791213109390172212695996360154797968556098688134773838200391400995402719569195986941291634012528691706575134654634771089537678365738406501993307751037874032946844955572912255155766834215698053976490549409383955575171196418714001905787935218161738363491187082254717015739747106854198678468251436350399455370293424944377325113048017534799540355549826679494088385367472270133723302867881479334094615374026367204142665128149241245136770840464946265890103238106214438209135372592561959954997555803102384473789661338091485028491435245654705118518669852151106351086433812288990266812047815046737342663630156163639920274176245701748807112115585179953972407551867260753318045247710544748634322089372177049899687146043306295605274013720911266773559122890047916341695137158785190772932909514779275055183055170201047931411551123600469268066140091576561265635345791979363654910162871635799703586059097550437133728896220352167103423225051516969533557006995309717032188478934436240990781552118338140496819351839706524680253455529531786014054075199472437121007868949836963460462073762642922666841989259202870020706112095610833490870978358070256639994871003744044937837195596475404595704221596363431619358325897316817122273894436595184733205738259469067789065055406060277567043423497913384442736798984363512594312407147247339272103214066503595118294828478484681369569093322416187967868045515316814397163786744238243125950714673389885664343635084159027118486649164159385439259928006955159104688941508960066610817182885124500456223217608219490090123030888735393676502910338064465926823932519937855499528217879548966537317459673846173067755352186291566282396169335736547262662154545021556917900415234355845518721700692012738880596354075428130562715397280828840474441924014052601451361738018676642375637617336003989832150564393605181426412803126910032440714251974902095744430485383410404454129914052896965494739209904202000525858814286222154773376601486124838749422480601035362708573031606187221140498081729639705343566652354088721220815294818472182992209301491028375244887528161784536107554139383516703495122879408545460644756959925132735759905362631375270503086962147566475729630741108554759921487968652680626055746962724156721758976982390244003853054203189190100721702772750598523782557881081297249751904523716077990658022678281739639859844064670440357320285153434505848450153571867879697862123382447166092835373723443995143710657026789072033807893174469827308228906576358475456687975163405638128048140852193795371698021779532558046171321403287628283353927937504530498273475506451565768042110973499647894863750323835920606094282985994816814237960745032261985820345825114097136219484211338819378879457639368420232593113774491226454862849455040843567061937948585290125654273115462903980064647327039145333975717245590008443956301931251523676600156203206255558440734575697615351890891964801562828370651161759123723145911378212558557750410067113306826141236352044334707624826868320277947494969233873006783336246512659771983942672849349464393226272466883757814892313446375016913460115384255778713672779011500680755848566847645029864523649124924067388997833935032251272673522180492519512050849014654951821689095486021864016168759224576708934211572566744145091087024818087279199176080710450386072168028182724858567655220654118049439741516967490729364592083391309294816608491102529499102093126510403393177492138184969512283775100358076961126191410378529311971665812897975252984711938959183075499023547485288546487980106643887809266432687344865833233151169662379511688216177151291984419837928086195662459193939056935041744110625551785220969289856505684343978479121692665450451076927253947255289694477554092155901075227236066698140426490896262024865937408561043164490981205266522190990283183201705872724918491849658395638328867500082322060157647111585305709032705399214305463108902772833596957205671069771493214122959507178015313722149908966259103180847209106652878158101292268950831381197547922935515146334620244479847816760264751001057226730329906945729718471059478727699493282829018482507765245503700110522595307582586451601358997033209645867877300591599403117001687791584703472361719469866299342306501471731717468448177981729705434832669388356502753100214112114689044639957974396183565212195470725342547661626935284673601073898613662234782576995144311025382955882519235896726470281050408985734935155787807157476126386324257845843920135823827878880085753065699853080888132995152980898361544344758012559677209442396698663291450382996807720218714209364750411928536483072492752623373448614560122633390418514561689846861856786517436505467983266620344515333374362989798223497755958570926731154594882123432037439958617402214780900203089234143234110867164203207055743273680485895006692050633416750446332445179169486979054819505528985570654891716421691756677705160030851811648064353001984460689464918901101336901157291177606121329150992230866516799925724835080122257294886182651659925960057828302429910775742989984695071913744260730185587871026446040498263480107499468142702796934375314528243179823084256261014840029555080535202858892888586400029697431724863669619563851358231988001055228780035766028793376972898250810755719859539739595886537303142739680610334508110575175681249409975806594396615821026964084756723707223844142576020454783180744844869038586642830101782966577301949632961544320668578915918813869269420389170679455092060403850770306829129066905134971333515427360755754759797390835255109875174891131384122843699382038915136188736400935556247837263048610472811031151796193635237886699328512840453190424089591865803680435423409840970640212282006972207709339146440353143474417258764192618743531755254123101336688306141039671621965005028025520096543311048195186195095968623865447839098833590166584982755801606419248193278377183865280274957296783010057894656934700116178173893468362774168673504611429685787425911897309991065805359401522822390316662698766492498642548797916676184247016907186743141572984414212581914155898679553915464093684547910828758114191533585412540479764109446490866646011126069372576131695023207217560426331862467593722504317839123889182467102181821676689026268930864769460715726555043199477051179009624407369708369021946264738338402120230915845962587237588972356689932411971174767171762954339247946677999207537032788816880297893483397157684200941319816026276671076259404912547298850418265503892079324318213878086418259845363946521403382254579787460446124544243411033647740269166414441367577514959322457068274791874914788181307854468332232987805039614406318965429535323093102442282605468900101333845793526059812478555668729809789448337678205083271216238272639011788447669117415952149923148274771673947256742354322822878088458533843629940738109249904339205043733898617895433397072411655525928865251369374126699361286265969201532663575784078034561692964798067391298728343331467150156447585069246560655826228262813880710988491680574270067373512360631439943205239287696220944530673330202755229498665370470676961040347463511358339457372548459828875441613556368117396765239092228974314069693622296690189143419297030041079174799197236417622506136849795114159516122823438086968369088969182759560107121956725263111992905152733946151766602425532535624762981153908807931177731270040402507922722860663014895974940176513879365921705402782698936721883361111403861124063435170220755011209215111357224701722399355710972193516229793170279050043871341567138678923428409489129099580267213929664531886082475633716017815512791879212744808526344777502775703672393570087537481770089937250718449762725830050048897628333038497180162273026173178716313907294876563439368663660332299263025982024810688252705962345268841320777018453511021149877749126748776162352997787258469605357424885227426374031825552823746380338684757390940625980682612973694564402493749784150239170236950819254976269173967527267937616458225505711271683211319273390683287016116382350058143397347047971073243728659918898043197702856527950450688276498031534473897529333088820022511019536250070764917404436423159029946995413739333471231653663476915717067585301564467786419564536805656031804715589137663948819189939120868311026839911234227595992545906667137858610494809657621769235682906256427567947025454916534426545007058234935440785119285043804965932512206143162963746503546038935847083258336804367148349088555454421574360347140714416181084111906417977190925809339331965252987058456749553839965331946513916830005126514876792617463668092343411932296753389488694038101885091051684550903683750948614173218161934636021586647392510966846775126197060512645347788846394110078087075722118230448538660930220250346636368494929919807013095005932785689715676264283141381902538882114110766123978724383168486318442627115181283253451625286353800481562322411537325731775016548715136959914806419193596144711004944314240135791277726184150748354081008994251113920348165048098015270092847113910620553136425500526155351881400670311530692749477935211839054868198605901348060104383173058667760909578319196201059542692973718202366481626741247191922696880284164986653235838583525715001203095350883156734358371257281585849024183886426730931727567648219989366420985726010964720260961777978696711973115792035458808622420684880503095843290665541056781352650463200001253044324218995369003477916803035150009062396799181982890640760873776667135687529660897475866576640400890153307679674944550058724997511373968556219504965154599671014499722747404030350736702531330862095012380412395657691826901824979031147437859970861134711813057457540428009171977653489428491553614426078086260404381349782357053384820803678082849362823483154822628180111885525739071062374268733914601581962904987952935722174938194464933046360674908498748995730445678307302435451251464337203799308419130126254273163135764883268961229650169300053195813767177087087471174170080171684983235077768372849661588951211591743194773855284907702881901826468236274869927537254035534008339644726160842408924741080806590161500158807716453075388546587650165321026208785669967169288769597487577968096296940612801617504830530840637462936223288051570172877595433578158645454896006443192425808881868862476871297531023114496579274217589412673820359502373608542659990419072333035171367982426664922678353486942143690335647398127103225366768144056596661881750125165688575982247631241035437214657559994472849985106534793360842770712102430283440133947672604404175052639414181987757866246434773796108555090198320301523979639191676815372379343386519296363239977986577046585379574728821717363639798062971701037749478326412305945087159629143070920907465007987593135004798499209575409421585974219802245217929341044797640606129110628280269979790138473711410584733854757307513291134132164738785225292244873446307038546007712058161207598942272719473188271830123865591752758266925351811661722015423109813004290731191629050371185671536191609537543739676698504583210647361911434448006321082613645565677580827280177602626192884483550736493578047678253955931495844905794285264718497309034641144143469748403791836171234975119539534490805311685602182144194820574641495739776510174835757936857243106944860590774557996244903576181884215797590127551701062863848473326840669228044066432373259968058851192923738456205930445484472344989333249522209914160002937947694209596554977893368988928082302776581854545383279108701702980493611154958579216264493608908146891801963980148821059900132326872708068007728829281833623463339138755029255379376380823626352451652156944265098237028817712050699725953306185854284390698207403162952942348444289588432418533422671750450815482080987431290372039312135342331567952891837194548293464005286211458159389987470730014484147830150690335547794003832112024320873200108128628498595010625885429709810618607148131469995112419243925175623942626497430239460386028159876716790319136553526744797820291167068675228509135474783196560768012409223585403393257057624351771491849025226461831199000812222230545999835943635536468822046967783490974612907092320305290699822485141842734868141143859142132512857846599167181730050793179421483608833733726678036850464259255365831813120860955683665551660781164877284963375163632366799013898061222047435755629025422907758313963868668063430797905482666443494539102137589981303880512454333497993082435859537965532006719672324344424451828314740474556244871236185292809764407917203704636465408914221362151679655227128774769664676345365525293909809598679668262022124009303466059027583046237826315180333167921255707811626181031467102353339666537932281112648986605966369220773960232866309519746049044938687684434303294380229862080317482599096283009060550295162154144715192247983100051456080433486476956391448192050462723564695889387987307742871810258502965056211706670513320903422351961380625348866716057551023347730977403666328562254668324504968615958915860309772801946972029875342124949604513756815130748697674439205768535456608526761747421433572390586421398498060978803145193175891357136784061903367375362578453204668387612413731601642298776855869586691318212471503582055454198132180427346476637712668972770189688517362286677282017125749328914808676872619734958260078210665111552043435128167879984773344204273060023787137032488500898192884508155689340396553709537210953994107847718141660669131114948721057037123956430208392250842088970913114873767974574007610279082843115863861758142457241263785385331965574666056841800690810728901797834437849263712794151763552604233160955477946403185378447329115544451459127449016474314297465404889760351874247294436318120704964388041458692951542831793339450447502763146169121688942104116231625904412241936382711595223053020099930935565214736473807549439085177211830485672293369221874672920112134189978903411969052374274138987628469534328134080440421763964584725336823168152107769205705362412976071034195105388135984048694941886138600298258434459077819356585908972616956904517979797502418786600891553826913744045821536019439282542639378648020100405221418382379233605456598531574140971058947606596031919914674800540707281556683958412842302195358494237012970222207867749586699657571265249566054337514652423960700559572670839482705062518283199487731655235192982042512589863590109023964864168439553199547311743515993419838487925795326716269266475428392592400389824897458621205826966391927927833169141977938834758756875519481982219977622747057968182687461815977376677719977209210344922090115644089380272333712799056182784042476721473505897457208727402645027913083118664304649609200348860718934034857691000547680064555479395574933660351058528299736217356582863553187295027469608942902580736656307899964217995400548217995407152037073310806241489547016366182165639194778903417016697115264519135841758142065182726465380389184562174852974359725200656891961264914926943871526300043584357276595254869904837104309504013718953918940733393952172068840004196159827769094730589217629107567735560847844021880795565586205997402461849518965863480156003327367007654628604735700173584744917782905075106586574792938770151597007130852443638125603825488681159878023500094530819630751914304323874107328540821804233068607470030534223603716104036070585479132471935770240792520127574156928606269408697989187645096271277447778501123453456512650712085222883881825071927435089690492340776435626829231179332989238585186181291483104535532976953148356775937188440721729421393538102299786462869452001469222335984347248568093384607374266295427939475274241433444476173013443020336830347918646563962352186755942562739020759830342211465720022795681778269009231888225469529715596092231777931781022946117594029120542007250108082119613864032144785612084450842453377120988623900965178356352059572209245649494447782682556284037067310231437405801369389910915639102567966835639716835626176642218444677532615727766447080352442284934610917333284016184871916784859851085831462207198251437605503041230822044254481108504527421126109153066695627121341789849088621459294763542200966502851136685662611147800541856039014717923897800120800968503912953241251700307340769986555291610856758226008394661842897652955946802769191011420425446714857884765310250601932270266540211177326090116519179403948288373782890403679155350296672234779434687916891443081012563513868603995495298777050560429030748733812911545685701384074828623254074231045186218775452560284282618705117009935348147615825720481356205500656612193433668985445006836525174263626809418131601525438832939050154283599103266742763690998366991746543330739943772276264846222571984225428683031899258529316173107628210917186987183895937650723238105033820908140915036311964602722942922179750371890930445487431357023025239775973994196756319734352088674492993106454663574098633705964864492206159251120810139172651138486324559373257936727422919472299386887054898450435697675402305167104031774470116401284716882052106560875363204085912969990436485920758162697356496485234277900337773068975131111255508625291800871317612057863141409538730188342841640258984341235817083698106289414404585295477578712471442298541382294260724300038473650347513460663215986123755304408966162122957633650967776365999905743905647772693949374935950179606726280802117126536433611262810550747937163694070192695134393093496718948747119915575164403429127669092686180445566300868980286856864870114709595464849362926081671207314293944509107620791030431229344018438980398789024432760801987194959568316562241335486466408959357398029982482140055263006377126832969053950327679202113120223749574674743265292071907164946661457470349231895381580874380486534049867319689775038743945689170508980632540155586067355709033459845709412074582824271974338505972333699107897391278194066356016140745336812664304414008103277983653359848041291450634861574123403459635294098795640729978388725938785007275851444871493358808007892504688540910465245807849008935758057616013411365981513743435398204960217179866025594883886660242780183308981928559839479984981054224199631279680977194519751449417277573326216021293522273302752358228672705735494227444897249834406298465783710924586172167056610975405299703358161857035628581848004200249703858387390241284029622099206978503783459915279159277360039847047756336135190906981548706420229389683730440138257859252117516481504154656322252356936763504460335141028580609174290401839248188450814303387655268067355899798947942215861733399198292672823566297043856127521834485934150576792204045397032421906336655371549362397736078258141088781992391781924613232109100838742508677746427018945809981124044826773810321139507627954773305894043103991534910461697828453323405007548047755133220792025309226311886706414075788053645318987442115153814369125197194866086874038504285177585917552079104586586340208460362363540293533963684325238093235071723716607398212787511649680118205941919471266747058736419459832558968045891895799482813242239305348131797411575843285710442592307922959283276649053473013000449848721139297382575395438262777180336368234474239928564671864959126343606737459846853826436801358280092209589360369893437922158380893224688682601438110843397382126932459425946608327847028716293115651942038739678541355542141424885140812277141652258704503401294199998999524013360195520744812375287438478288003737489455459450297505488310339527034413463081616365729132959683902664711062529114765834963907607311732646237073059205806346092141614837168611344897275830588082730725438801040729893018787783443042133135256092097447764291085229271450802399678486195450067197793983453105481129598772394915212582249262739167488420076058892329326618018903415736740776564062417234371911108153775418828094741742196645656197273359284024581337049764679613322036614997641977271021742320524240986028115581571256625834226096299592878589318393945378937190924919757784595901248794590162864461869963927643463820745531973358100902578697897121621159536911488615667293642554763081395276228053253868314060227001825741697193343051740873701030305012423699663827319705987514824410437808398105315390335405606626760680445493891712746286246249724072205601410400896670620028200719408320199886497524800513473775730788786116372420117705285808141949986689836809021891186086023032842055247585197052755672826195526575308654337626692226447023847959763927336592195126139179097175437603331673484879857514470525869090589914716688490469226466083596165187316139145866954317452229435202331108338838407466148972971160057136786766830315294590394599880441885382069909182274248107584478353484040346535229785696703050534249696510974470579285961252604894480684182467638181203889757595707796900915410773147695666042731520140743889313242672987631795712411753872983996469740603625597945716399659708614522140024307712162444656156545915549191554472445311159953869827188809484701930993142233071459123203430382644349933908379007537319021343632000894957189621365832851874684175469746135607603530998786909089963454854630302958662683899045730193797229300663006358494630950396769738548673131069020527576561386910688379685162278174582877217756624226577219215827998417906844826126346459578586441308828093219980822106170766369009059489989729655969724545414699440622649545908190385772033996126188171525703446329931260448118967762247656721735449625249534444354562372115979787746216432208096183478548107377731002643047461785240866682478930748799285787193284820594121908985079387904779205812283049106601143219677919015217485204920907094074241834078796953274005049835771766481556942075540214106255059115182494543744485780091514581229608612077723263052231350367831733830214551348131442257503133264915804693285318633508449381359494929772044933248841893995588229595100718196270130595351984482578964538042013023014776229635770136544525000466369564266987351107206016143098518510204211254624633254084333400392570808812639007948450581455056375266961503994344551803180011253701460852005470173572029353968589146510289577111082887730297993521208311700301213481929203836898619629227182919750772034664013801016717155716272214141750465044654626970789251439267828278836266499226939047981501693144839195708441991139384754826507123388094785593556587778238288835286574805780043894359862351945200179408663642875051951549617159178055211548614799009469156784254065387743087220408516986723446587758835287846808089076147926014788885880924090071401152476714124400424172157488873285657284121245346855077238988324982927281859884939407659998067346296347604724037709639902945773053213394059653823238852159837905882872681883511147885845429365091650004459989534168673940638498302433809541382144443495103957640362638530233981698941927198478947156766380065834720619632076791952220198996776899253248949957964595714839211926698974202620856922557973415668994864512140677438914107459686678140284932588672771526784231441039213401435468915134564820901461139567573692142712030695055906143430812377205233528278958312442443714858716770645689439646150527761776950089371553405042402512024493644320320940474350051184465461168187221095845455919926235277027792171850123298614138479667044124980095471900453722352160063792543263877385480793224932005255323395843731061626795868453884265762405636025847192496697482840457362002804405875005583959324463141518172902452323755072557959188530348431316741724333177373635288225863899731800398587321229727697243366797458596764300824217831174698333029682224365217792893828701668383001037071455280522912415313847046440177802204183856928153911011749057890071739983507629226174474291628196024779977264292216262923228967585774945270739334167439833726731989625475612327163553807025025034130207722791373681703616426115411466080449383858785909962412433749959453093611462771394937623162298617207682041020099571358098652433658075499170254060342243626243944985378536098332118974578792029829718748348708232995034857886079942217401762206260061351814705028931902543176541456960995310288584095384692463058962108572399151270611995985603305399943586606680122608354008163418556562072134173430896333973231991826381636747059628248772361883629955970952404926179974819080644499891330397519035137609952430653634480443548354428936433952376571691030703699407369767192594603287085645998455754901234442717745407099072931595281385470423404485022008373061540199607698749783995015691497331005503748403242746666303249869662799670745054449792677854792450871291721960552883456383293837013737939059669048510243759894196988604683543981990352032201474566385200218146282388690034980099415068431221680198868332095319970362165170888309966312301611880313912928025553052594575583871018831668729226036464764872749049394359692493194885641533424745703283950979065913632514766907044202634695892731503169648362869801883436505992886263584454984591315149598644713783427662552124176368713302666226611033337836703461385400425456623545661980761597996801354252057962753376591344048793198397933886007096151267744810751940084830484915012168952429667140432801373985684511001522938781436497976848647942451239754498529878319876970713974260161786099715618394267675136853439040648252775177653400711749894909467438869172976537065394414539010191710112828011347788316851822419368518944809885648421723083442376228999073106524646779046155569744594441323874489184741315847235441359567202166377517442701552076961145970626356598385382169546821000819853995149102408688569169528186637324985276291555772508255964230505509704160339408136352680816248655686923479719842974903663202386976208799313271249900469832939242439495861356765453026672545804923937657732847666754143959772309858710972654358715506550984447939459934719128675110746727126422769488660598936672430316832774713803946142945249451361866045404867624162367831161748655707868278977379547736232250046860603753780338159237129965962774396230457500850375821426871753890197614697535236270341454867324777746974180510444312698711454289640977965587804588138331312781647425983246475251725609333137860434881811544989393285638889853886949971456963909050345516263801879308630027984061518919783034426134053743245851933543340316891940565615884964998538879860766256997218040076077474550758363700322724248897735916980251452935602658477526177830784199334773557875584307220694234099189082425185363438440253195530221838055739991340023633681088336538301656513792422234558177034322858841132266546310027598965701482662971813682522019018445761648858994701603163055284812105775391952746999960882461096105524446776726679245377932331494234766627177612315015646143815887622434613572365812149204504801170195781093585257251253502210808540279049210512415394089159624203339836774553985031087503865133086921741361596464124167677098364072863356480884743986577561252965754789135017095171277880835777247244444935922258303377619104944994844247723034601169605886991487737300595752928613656982405032039724919030299677383667045830391854843707501801791967954175450199368926054258093238703075396314586328348931248380400011662725298544159959012640876586485462542035326108264951782473941047604468186504455657153070888415462402313796538963926000776919783645454532102863212980586479241145353387532982176311471380580312873567764251941529876666769543674763559798898040230160792696775497700803282630318946140849022877752867397056589870782314448754566752281488836646946659270232442006299984202647588084117108276332402208004603363329886983062635986387297278819840096860588905241026292059454150880794736596026088136816122884529676954243010925611553080725706398308188581121156927257983329233457479476806108258994339112750560879045623449931131873500928586016036346754205073943246928497874434185055445404294252250249934329763395668401993962154855060845933871294511716531689729492759779822339822302577838659859331174570549394372627591093375122304622200028918383780023955678842407509844834415757554229181762821496722128838639880398846204185927098231872205511785765948088369003169804954254346831876588452631415899213740256427224907047479125210093206046809623100903933876750528594934631376595457694086543972901597330945589858030768786180656744725912288986777244194007692872018979717817778989026759321873373149799118849265916152739057096310498793532956816121150281897768868212760443255070616961148725145878983885582492061906410640711424239666550441510225138208617027338039295893948019771312311957004260582368469907159070526360719178047029200925081941417314784979639701242688585599354743842455699710342767303485404715409533070728354985422878740513961832038908748970928320420973909060234018753440076169678416493191293210276004632419676263230780117453012146113117124128611813290731356868802154432863411690356280753442509333144842802793206370875838115226413943520000768251495204943856243097163570411851010766767571460875469128748728448318965518459004039740836549641402559381501707901372097853406241387608220962754268527042741505766990460157559686838345184344688455083736040130210361675571463551089825564415517204738641607657779301017078825106229101848590631271716157037470328691338037276801186835871855425128523022315397571562679178522477598071306738564091910832863905788325348046845996218446312599408221885437391893776403800545664881517550261949232105300490050420371310130996868977429847332895075529445809958655325040551482925316766938730405131634103561015461468391084788860425613581539674076622294617607985534536363928933919871579590080728672113442106528945495328985045244390249631829362764597121090910240824177430998835100896246225150706196510331425112250545831720961408711643104907640835277052841788797494498028508138422688746876073390803135686139592099588675305695384497254254282195574206924418600550907516783443045688929819104981259949167096698988985393998155635395293679553882593591297982162932994146842416691768956100533492172392246227580576919870704423048905058119029778850385190746778049449197927821205603512571380978221252635618925009692014583469813400965037476222205769420708652862546591356587785942232204107966199286932440687227828824146042647308333793189866025885454717584976080672004719496778156121394163446259113663603909018241087522994942969521391773331699754522579532565962804715084749840947272589479341866066752450412788188817670210778105167303510724569083002155120319830360758840593423401636588989644354318678268402398920963965269372097229596954848134123928961861767235541525036363139827445220556154200989050884119209428800401095743846715878672735026834330478843833905418440097750229543449140281525522795384535922516443530252335020031034811344135199521448193127672430030702670243529515681386372662332616162237134417569494930285363867295811874369515570806658069512356063615096386490189304818391632700583468864318914612511041939363974616942195558265046789995452629922615425881033424111850670617550833898694281489858957752324810756314896438238961105229892414550981770406707968391272437352860740645256520663506151947852080914272234545742610683122374207299375917299583216998657382521363378816092963315864226136905993355444251269521859821065301616165828239557485956752176700466678730321776655476409442211249013932272749375262065116957192704687950601611160919436183717996651703305192915149883922395015831928103569625985076909386224883540028213385073106270280797790011617928441499255132014651596403593424273528337350888492431140427212281650652926098328065937908394012044418014124907929265527421188216103427835330926389981974445903878112706811703983516545660912245484675857838048423847942246390660776523276582584120536580218640499795502801271547743298587550258849964083441821207173402469515017939421569103002940513366245991419526138042408863595204172148066249204324117225796608578304597635912325888088141309417071104091345436201165503777850110599682240992081592786172127819876084387931761982150332263043202391390741957441570911304532221641749781060690026508778846787065694454751061791969326759245265664818573670727599637736025672161822361446631231793424873592875972931535395273797432505626530627789267401811863678393476997081147907746350381943688865013843565775918026320059205863192201949336130794705473727085215197623338368236483490644236706992153577240228438683820350586775791914744789978012278980961309169333253895521545781439828521572343126843105736922678038525784601260882532305080811007232937891095005109589846094595098785823993384142225838725011312836401564112995195344359117214126637794021725245223586094293042046250364771206313153687859162955397713016662111304100909514790647738364479255569027543450309369388304873350268683873376519951230111805268176791236904368839386097859611885743303948037698921113799751581480304648411713962430576714335249115200730087753137820532055310440323780974733347396013207502674120332919228264243391257974201693447374327932892857018058378329921322700684253794318017953572201926074311627215120851173859269264810674847282779914905549916663527918482633567336962389385222481322324720958430985733018826060390286723843099548268145052444107181698015379519548193955880310111215703341387760425292399511995191114611649854422478027626607303807352354863865364598954357293523758697066915607169706341941804803504869265656413031778791073945402743835445626484637985729372625172627996437918703206537676131477183529451693296669157326849506623664724488613343147990436179510800545917736140358109969734881491538808860248476226355665958007061650092176837869692987979530721234707477754605917589374296279001119990289521384058604778924098625248221582383904494208499566180712120214750103656962173441802314895589908570173754126414820802449665452656772333778608320156946461638903019800402252387031174179760325234477066487009798251879181755867866413246763195027906976706244231889897903504657135776371288150200109019745527569807184524995465188285857651724050138276044370412112141215324807163537987941989001906061371633260950818281220845244048848715489019098324171106504687644279336177115146996137388099691861700684718632722536080272376017411837618004568060660720689427605823081360527953822845596480361462833976062996438196050253661484281499561435951739468752742053861437309489600838706984857217789943537106533550026199651837145925577401580305459742517427061119880656821110624520513690684589194012618104946004167046234702836021220605733111265074807846755016946944739218505642768094929618772045646462137497285909356812349710906115492649515636685963390457273955048377308319683276211161460558060870664207239080164755349261360565408003600792970107279600021109776033424845627691686667919660535470479633745021501615444273919664351780758802534116782358962995585814006519814930368061765742081822625152762972733318589058403808198647704204766632323688381951062529358091206713910712368212748623447142465645914406390402310864360845420151682913404015220827343207357424410643080351557328477974203683667249465338382023281899826911511568332697112162169848254908101990869732702436203312045549233606016774669299556558783752736913981499505765273359593929075921480963475045103206073930777805203346010928093968176037157968102056134262666891624844525779078469867622648272787896041394221992408278402591296903139182228089731239041693809263748106518860428779501797651718422320193969297216270815063898065526504607931637519782703828944508411656535723317326980125411772731934521255898059346404419159650206277321797365161670625175619412994062451070742047249568830216371961333576766545895207112182081411167890195375382300340698830935524033148253222937126722211710846981786194283993103245968478530993001373325481316738623724723831684009412894964304538149203854211222302870178648834960565385223192834210612782884183633986991261070234966052502602010433875732197734896247315666193537201839272366703032915070662151091707051782205392964258484756673525327794146238916200437379069263264602858312911897608628575611199243970396267866597671411454282857536938500039223701580711963478610437981850605892171298128064444563946932257030082869733782732848902716922024084083306558505540198996395644650642804583038860290095360296326386007543853731483043844963534059305859886899478597323171430049531844861336498890271796172989370343419001221835013726579981202992159125090989480557468112907912466355938050602506135500418420793674221318032674638433341779434422127438432257106189748944399113842903736862867590290266308323733195077450845640149063564585801046214763616225998590810531348154300019124683750377646494169602371089309777335233373927944533377496253263079567363413510066422039279247342057224143597518421966844989078584927265731425705434783649695827336260534155834262876257991091362391526828032963659907304190353691858661306075548313894289016976638716781333546083349138215246158869180946948917053556190353885764381020468701394554852267186041932605062694713516960890649036515767710007476348903909252246286635243860939667199582195635903035170164590917262250571917274547770360668075238153997026873696810927843500542954982706316187096191277984709727295213989744708146125242444917538790427609727788329440320797761936816142856664659360886449044128880571213763511308677245919843672818880028996976651097824628124369765719085232330152912877313988012034596976366461630963778471805884213718849984713121561937947643878549758037493857578924557864207268497579265188765862897441443669554952924155005621094258775600428851922119617412921249021109799473280700936453025174405140094517915561942430150289676420654932468910813970884298045338344676628322591303833317968822589887441014374384400187540731860904735419069893519869034627973450451170647912674964584448063928925569803053123023758639188267515800107194758609559303435591424131247265206129588828350379794147894934154977243673505573304289474185711672995767048720693528540522622903067349827289391473032250488054024043210773206883749491935983893157462940768862413142416643828683966326661244472682660662693900153226981127352396735388171731852732724779389795794164625408544113011028177770941887922580121369257449064406346357146554295450890280966605259459795590735272751555581059443056977028515270713789532333554324508197412212870447022289371854372831734340939696955598131270885545404433824621478423105547094640923174460665300553299331593898402620835268987211245065793868394662005930245432959503221436678556879729182429371122005366606794366781099804777244551481941795912455852452425570456139066263562779551665049255911078048169386568657159245139696215406156969241248665116573225232641899212841258912747630100438954135101393061830419733372229639920393696181252969279953183928386530996528410003146540525311517677106794636578252205438718724473793873879534137325240045038618969687910591123022135181081815857806531893755454744066815165585863495179859386465684519657636119776893502431807906433681196173601651606362635181559197767625391863109579520519736555148248758787011253580720122986302696470104179703095034391015988405988025550229004959705607673340008041253476581303748994282652449401994949859961709452021864016760347209397847144965978095240974663513766854681157938039155265073797162015904626469231575949626955398088540872726162520908003538958080870335997400638687479352898458366858921714305828545032816049086553933131977954724806031197282800124610631551468928039950955925609870697365770979347888412990136855172757575206803372963386869202858855886165100486497648402166637284814849461306453740634671758828864254618526910011526129290089189474582453592708337887756001027416314684893808162551533643083680596908524528950871779142546571305708402841810968920329920930476132781218079996142119157264365466682194359007735183122521826408617618681977010883720528172761123300083458280099687606437078392299085267589631040702898966174128977581207951828261225204738774148698221238944470259967262236704963813689284738755124667232225264259405480114226013557208290744224774448731578723986234572151614892762025369635370726550880503626039006118502579490596349173232861440654048716954075852038252053182207791304723186555010489065812167090289815931982373141841592727059230533799794783129478787928709538390906601577431119595159020371074251523809292907819278161588029515763654047982459620968025067579254553035284787520489452453347251239454506226341481932954510972467263488029939332757698749336238391630644297214822132467735911802813687547506968365313875687723203654008979599399827373997546645480599307413663467094110363241014373429174602121125483095012635679284200338220781082752766442867306382632421695697205557455835853506845086957018798786517607480133069100121781728394834521691123593325520659811016234037650944063483062338284495813529888428266394193253477247217971923502024778018535986396391017744095475462241431034803648460301406770730309821818737003868894687304511747737261949216163886830087737449253654469290352209687304251696480555346565443974494571996100302807785489324162930567252744055163836780348955482797645065578619910348805935800138829209626161788427672411120987042576114339093469391300194571006527085506372067748686807274456004063429141892924984801359616823539279131754568050644710841226937917189461505781428403690120478586055944684707732998207510265076456172938950193985483911407717148068313623071640669301027797599088076430087343816321740672903823099464912662207630369109649528133387485141698342119894749961495166425161118118279009620782327133535184405011562038158512355651781641283028451265311624744103771605218143918252927305569987312921073294913375485017219858831999631460640238312710087344102190695001582897722655504206257670425811295402974094175449242485543614246817402522450285548089783947930613728188785389168213210736322912074367411302605780274956669047879226756027477187148873339744682469445425685178480917110649680887057338646516396249919080933674432566864496517334645928872098696337670336922185395744887620504532920151041110780643526116879493083110144667728381019752272195462243270333782903431640792004003822605607867786372337480477896098979199000916389251789915599268649498180053399775892263261608333051693693941687156675136479794499050040721595228507036034223247548613035423489890281045921739025335498566878691890380974984407532660376461429658524111723522291739312664162799795046713999231654118370338191374347083435789826574087835096401872209547402275646951726416308215147694069006740751491001441264265923551410370422158312393019810250297977050552754706455957359034848175116306510692382344002842208078227000293579278327773297490197232962129134288499011163039684735119006387830547308347325198563526460318430488496565241549888157369525285493529970843842335646806852597380439530215711705758936842981347927664200634879653600736469013595784051407269027735178232392476474345235077266115509629118243157755855799714786493035778665611968299954963836954238228919573745239378167478019567032455539790252101825661513219457599105885990891895400615315229472946768694259347070858242285540471138761008967089016759928873649393292244647234219933093690331481044388982151166268860235000752888852882618822163230069623207526834962400757237410124232413596276234690532979666376828434397297370981532348476446097987736426854426354405021139954567585211968675892991512343798138071177957245432211029561890581899540055398497362700640136903798148863228195345410241491583101448090898140931325027656618096884052939020154888033851703720947812053082277523777713774006255367143038599174176897697303820395496207551382500494841158717681706293626951214517505150538735867737603586525369680942505829727161734684640711449033085271842409133283321728800443293912164549178806583051509599129212498213848332923844091373238080335095447187697754650896552412027456053531954918733109315517890944230269564694604913804327259319268785725431761748558461671334330016295436484071039942985209979733338360260970144582313883268809806539626316017396526709286920430359909764366874697875114202593989925828612272423045529278535083221614940426963759593801600846213170927252443370259633929125612487956413260998624979908853073456454158553863155771144001426196109762511143226031038547018177893827197317295745509294631123679231966900902339822465836426887683129455872332887302181637337544584845029934465972155123200999568025355085606472453399638857334555747965661590012801543223077981719292526284070578838604997631060171728017061843981984729908260845474070544499492431555207519351639496219071791530131357536514564497328706721426145223898542530412943284970311502666326226765316223434150800886739826377211233381525206208600252372490949314782559508237996400135136341876046168824263711809327920676217629407749553088119003355822812607199755431826093983885966456824672925832185112223845145017676425508382388295197717754783266576456410612584532534580361836045423244359297043118015947902302351369372680532902847520352261913037005475370297599037113295010744125868046983111865106159566084953738694752625420927759154328336317082536055428567791360342606989637503893101885184118657226688979809361783352680543766283125413391304114709967797424762591355423740947515156383577441622084072992599877125037768095403930873325988846343211981291758479114635016870532539983583681808907187984093226918305320974937009137013862432681708681957328140934924111755171785531190402271703930678339234263566112368540242700317527009381051838371802803863048899518814713647069548635360173258428124265123111550185351542616163716245044041445039722996616961089981227469239114688354782762316728854605906400207083049822316852711369227847747171758081841549258125033291007321468770389027400365142458431219497945560022326454439002246685439643598044634781611148868678585991892883167341267062181961636332254980071371151754936270457370341822098708294431069696271862897809421308006224881062345502175853173997463284745868442893409187563670356547101213063975816140054395999222985054586184963399250528236634214538726798248018175585029266523659479857173867626284509986444545603914634216669812537330515100145805913054495596632173672271558889630327283492473723990418932255267088483152421389899915320940214122308792099913488572620074198576237213895229442851845679286363590546322959341095407998738283924324361905592965460142076206214299525606439067466965075747898279618940345863044342527981927053522294938535020877675761625989049521984339380503889713751427267863322972269140879440794968406757015665645258457662995829659160905422035942809152464508659922345817197633105754812649004491870154303172447761730061213248353257050622599442202822859593415714974066170735407352915450638967030892076516819220127699547459968393200699786091189686507006843625211821762185700107911356146913047384545481664249477772715928891197967082302591614183774894778461929816755882785660851929284500268938549923035975106715102811534003441080291929052785239937154089123902178094548520988360967545465044985230834104510751870918385738878181252953419617525053469430561053990894681780750616854871810837694585877725198193492131735594792678226988320764808880022461151615520646319800151645338040170681710521955258205935072288009866978271440470491451756106570585608397909448542027269356304065131203100338736723093552002013684578482366158680477896423235117942982831173539083853555404629414395916829089349823983811283433315339989858685770195865147378270407370767885649911599111160626372423660859728031113957395722288590640534523445497867009346165396312286841558168309361946367569162337647396246877897492603334730072785391470511370454390954735428601332734089504703825987416106809362213396116837967417542961821382949685652924545504661144761235209478672930699119775667423445809725252622809665931611124518532301499297106732507548698630763140321476974924395091273483506100505193314582967241494549831330952473128915586532922594364605538137399652848419547554499965846458591660024897550484014551365847058420494028546193694664080412771186830964971902662000166833391951870063641578113158458591378867990453697974403450582108243764225187627178700787321920309658287072393302174638621663384914923907348761330873593952055093536263727989412630629529224519165860657874972616409135892654102038061577093356303471662876505460829164752564526600686623405341976903818418621989084249304705750544664230434524233479706650548363845961346144765756555956446030146925798400877641969756534118862856515045893470970555358062561602297935144017000480174576817246965771001113397875699126421975180593267138541168476666070749122933315029226498892981856291805536415329280887148294736930167206932596488063394221200737642812041284043103789612562547378288355794635245337994756846681460849262682447982583899122482998859551309327830950374631721082509585524785665127360321362882780977434911479910895437770627313748674405890111047677314622644642217264111169100772804389620624310105353080600065912055771607081936751649891463721702453502159330115226218281098786971628823566826946989316156661143796137869714883119685321698745486504400847032421261637460961614584570976926603996417033977860180056045424125467718635122488601574100499776316522204961457054782089057599480415009234476204931886157624768216053679061791956671155963247497207207656511592833222535291142370348077985530019233653175011976543970419267472635010419128492159096538512924356287901501004811821972994445253278185928461526041332963037426437829045348635635346467411969353175290376144614944585390866098748361476277360545143244993051592208612131818909493644713984105953028241812117234382016651448699209739226912231357656947758975426473684313092738139473886729489727001344879701542544813060489351502733945431812008069377322464484939860696598357226682339750864170832575988639712886566184940075664162397650005581279960854389453949881782042379363078282739710956938525113129147895070815840951833833350853780218821741798414700457701955083552391583765400813251858689120581837401886138737014233570088319852765404351899326780170037554487471463169105339818661479871384991475468004000413374103194469897863334602981054760950969367813093306396141934679943091703413422665509806832693528303183407035217882857672869477943462176937006398740843576745697322018947254637940529762044975926965730069461624492278239075336192471747418926762588744624365428126632883931028761340518347273426422121454014740928571837237098098665859475455705348454576025687006956602481904062915379681307800670726018596918722929997557256497193274583999772611042246625781467041789862103753413273896271446624254888999194096341682359342980483034512809471926851508211097096648958391933597724713737673018468040361601693326700799238096624309697604992556847233151425706422835118508992557668211126035889575766284476206969241565167372549141690608969731593899605711540783012486195324645633277774353057973120757354317504633126466170534677178367073302994140837885842053721246668324757354919923053262483379697637586671281793626261072999548643997287188851084316895187070205916277390337932080175005579856055584140513898898278042071475677303175950995830521889917365373277502179623795163151588987947464437985061661178141268477066234926996806432841273913087477228304248437257811047763015860409067375417006771497762880716247636231490381810315613223242286223749257242895393164150943605768060225897651947565712049315571412694836893025644758433557013182813111951217101482853869337939682508585337296706300212065656134055455209383864480174365809491983270331257421286168421537979252464126204355730924389556976880052606767747919755670922313395910404602630671463540392957893248880170728219903040042506751053286252982941522834032445542536101389505666551136217761175170420770910599588895044319286221083021983662982069406277577038479352827425465640079469027560528104915334933816354791994597296329071396811738580404102672353774745049053886868492639193718875094006922891135976239881555407072748909930501027568716262775214069139579081485215076976976006951463932744409217302734311148676711823781336055737553775492731133908625047963284490481273366823822486884806671469373397495004138212370626548197569645507348432343193402866353796844482969288189375862682354494035127690126035958316405625335396056918970315898875623574309212173491033793670555483147620304538197478153783368077385409065627347822482187976664676085577131195665932664637751611806636485564066421224539803079867622677500894299230684734482725630702654402431025072066682367492655587007882139121184657476192067330833812282616502654152055093927747938498143564855084385407972582712266951063479647696544463684539860336047032854481738692379165681984937899221825463775070179173861808717071648332861099000536505860403942823773821067691400512282608779483939581868898391801635767949380801007093486608807502944065891929696490895674273003751984786092029296809680262717986681351595855909845327303068307685832739783592918848715202339044903134259108017850685354590637819813115140960621218408858651959127849787478395594493432072979320378059827276884755014678035407580686248801063604042143392057502924442617365806324937321377313757233370750912062845776597516211951173409069834791214423130066923210092355291705280933597754086643331906379797817865645855303331795895978402368267904180382489633323831383439025874344388667300201809652872084983384829271455685450856763105674029567084178465555377610489390993404123744961489278613014980347138128472843192812137224188272347975074652594416745004484746457670069626130649874809820778798948655300748467652382436716362582492510574421475318176355505815529791335666387054334159421039931645954081641738845210930794828577586795998874923000403966903273585224260232853396730042722430261977894830760445691158990297640004849118421215428312130421045771276768712507667054264069678878022928995299321013603898955313432458202337939774173252512319049122377312687797176184087910564702570223407871086482783854411758483769607145043774874246393396570152247243391165924138828104182477223197353904167934553467835706379587602363061972802638358114884408093033830150864801790033961565813692686669675401171429581910729263415837354957440635253932157500520628760607271189384708416143917149407732488705728287216087476070002954545642903675160605463363900394953354552860901919886740984794945199589765034819616287124134316928990399323453399251745192891397102101537549510335180174879038849220363331096996726977401908215538381928904222999087127192607527836110755231224464571262208614699182944350053525170805791832935481156885488296780831100368314417150817378634404307730324495256548505450356066169473741017514845931338990265315764639931307730366744187616081739137531042069235287336196201312535105278949545510860443583611243850849706365777888661608486870835914334029153723830871939301938588282780804218839753686131098815975330688597603897288560757812579485017632369465336918190651917326476744443411194824433725301901489058452045857399508280127667060040472287558173785982282170661026846184971005930603851664277966612064519007392974231380219953098161302106184619395473052914838684130339644759557523243623225113705232190838616454275483306105987926251909773325512538791461871535280497655336855864499814359202223849162541078735167183089628724899380130878925844672728573312787729241643641283430439365708745983772909215504719335741057847146568047457696969717740622924821547924843739080075384094694519272242065749749711308084596865401947572638415133551794735821227399379006039697216024884417304997735013602934921062296886005122265150094332980249292881679738658596209475515843382016220949201084061819325131604356521420334441143404563026537761582385284067823691938629448556311534787929341293926691470717057744730104380968398993641893024839585039361503444140841966068503332333175803911231702638274062366091879609271620194298443445913231184211788602580981402355970147149741686220194892599331117332402622094810552004208150236789428611641114271076222967278274793939133747318300600064204466524131176221044819420860683530487939152186102328737807658371155039471488506551325548061429125504788652474483227994309920971597300575109012087903466275618945782620498586216086970905272134969418638654192394347126799584595672114276058018647605573779800387342193516184912999252371700454286672130224369164867315354830364769412755900399750184689615830271876271985770343276385342700014955871923951265478678452737710430866692607199764401524090875814789741287089348124763356639407931649844709187842731957685597558894637772687458349797126477589674615586274908801709644642230618469352438965686006406994390618716826384617520461124466684101395143132194841361959253813237546830252155296304867937501791541284962290744956125922998835894708210049013132750098356845267366435709246454992841284156917372319035433716512360915724714586818811397004513382059464286646428444457406835500809350045191895337614626969015993015021818442455971556411998526417767966048198909729269490715929983074775732285647548032109345181578324119889218813174904220362224059047167279739546624572822407704705640678312758466113460498700575423963114090162093389057103753309001530730586193508734998461121092076338911028713529550370175343419050406760164692866323870863835449037093590933671514799514655725623281915123859181240746192460399878340260898819772511647930866315912216694579869772536825642797241861948395615032050110781477028678671314954258935463847726573380187043683143549607972870983884366561705265815120615906204865857392778329361199056597659273469133235114865891721946685318869062428833736114412408488225683067133380103146089801595956312213947164503022272871777831926602035073686477531571876473978898081235887627959765681778541920947793754279996809292226500310665661083876414623381476085018292164254984944286874065927716468173496739419906618351761899553282014063039237028568355211341615903395921571428109940020296562724530591634182272294983779518909791867775075734593159149071585031401118502420655470025032237239670058673238773564642009995038336534839052212785195833559588789985440476803779640276585232091657572694726543222536442356072215705822451570297358773937542522410481189204168149650975076578058713794690088867951407470360222282079716789382582589787848517291034834328346619401452332144822691372320592271808572258468011711560551677818168067535688444549926228694306209458654174627097323691730230228326183503704119925202208801391803435052739640252505656074579060300585293309440803773141483778516191719861737723991952655968433623953281445434986513453589492575840536302403464634460457311426595553212693566352098421274215260773460110733574702187071280654576010467801491080967740142953106148561067619233819790657846203179500435436841394919073325668807801672868026822268603115349294402653735584754704816848704598840268806243260572824498563314146876493669926253671974050378009230251971751291426538866421833290873986708219783498162426998797236599309652917914309974084518762165242463276172238804849364649415717246961829051163380570738933359192917649981978416996048733546435464493519951755969809925584534231972288148335926618541478611479816434311416783286094227334768816637862575076151549624013053838384287099702502251677909666642806024227801461699926158064263011202221635223459287968235278572220999434790258318372317497799433298362337161829703325527718614335854820572098109105446315164660978105560070867658635372993936412878541666208389211284894800284946365109930660553302264504069770976421881342886936083844444816419998008232753911609984365640511426153638833219192373047489229977354298816776950424877239149700278671057666036970045119498882926292768991486710869025870968509183473026153514569416058563760651935987385208017358030207956048392735883863118966384399083799522044371892662548073008947526522637304655886715767575286643234283753470950346349311832620120149202892596625270429595892487918169438507342628642567700566470059024045150173191376897654469534659228924000965239685384494804988269408494903877038447387013404081057310916130584047169607172203306451848767321854617728864014826978987542258515983466025044587300331369569552829268523257956749956268600718087652523489850419330599647989073398610514700970735514473410689880573174365374935210572561760275513375296374688853058259423969430633625746766723657007604186850351443880135136509362355286369832174228974798830575099339521698016883867772201629611369847635523712246016508475015952530733983954598398158694055257698364546930838340910151159481421769263402641751995281500840425508413150250359981245352040170189675382324773489124069578817145447242662275675997644374331129730149192334920277533145453763451634781972029986210488657669049731740276027911465441715513397774842418307016124635679268539260135111498455754013747885145685766293266356033600385073175218616131452941940702416672852355302391795056700623039176508195815775332878167909853153167865196211647672114975876622676923534487053841286646906997376397890968042139916556932746036774283013323578738791601058953147783478281491344794418028911271098644134394249521301081886467666784104336605714680357391476265337039286596102261163726540973181860044246719229656960442888369224692733070688601483120228554199096601914866456931012947503505825536399617868147428625571753232100510298227645134502014048017294402990809767958232933341115202328786686661325785529620451050917462699416253220464903923366037261927009399024847051366324093534023616834788005008978310439306187501125094827410756412259538401521910818815335894749704717270348295484484285045141217642649513816709046712136153394400074555590932235445113613917762988290626723311007758905027226499143119911961787190458858067402291335870128618247694313755731520562307318918511446644783907185686478132466426450729424931940586133965663511069997327607790533618984132767341830438043770921393213695061529696552960882683107125922355539293425001959691093827764577674494970623710134773116370377960692308212915764232797237482300718397217338288079523781797810733164857988043976071176202081987041225092307070730396754355933445850482871580681124736970762975100430480989799693423790390944879150535294968688115585480399852392934742727233041322169559672996365135087869359613244668655673341850865074808722029362492281027235394662120291222586162314068473568512258242300679873283903591256727375051502180299209568009504954441627828533362992320788292064769532800249078062090393539012248594059867597646463028213179867717414775571600007714003940861195853770580861117073882695236440500845306066184640962611310947378676300509847232568685184708741975980001362248819845970029913949866515549132673414126005772894090686024411267202658399390293271175826969570035459444972253416832497124562196644522803433118427572849472894467026740661190676595225686780745022379015785236935339118377248424193947234984052211598916927136173952649687140574302403785338482333779171892077239211238225535652107345217288774972876393100203742514103100353047868350133296182315808947180240420558353201444677268073572216085883783406302582437766935629233253094996032382575310111597947674875557056705551811816401042831363237460661396429981404140553439206662351550017847276301197779059237710069745607920860859892936526218107075659389369961159845678781796442773584889492555396172245466284683022110149419139514666078911418476968528691701727473694394704071172140846312630679349402676267118905532937274148937536294977779677415940972792224682380897539322249090215043388735857055153008604117710092046070087771782943016621583583130698108455369735828705798375336791079717833182908422697513671686536476616181056311852704720826968840038382564988732617674324597606751482274420493884671322639170063842344605599576105880045407884313693266677341514397058364395133007106119772068865287666115929887445981649472402265972409131435617551435869508369564322379365667343926910569095475148203649595811722777031499679124574772638936825962297199366503632572155649948002362841221058038842043046297382512309306998135385169193752052727694463855397550897606382315924011161658716043860988264340238246949685430458624182112132569718472703888961470349663162689072408839872137166443117882932857447334714149574152090337799844927851264289092022833551397025903268000434979727466529200203566292511016217041167947055473632236681599912941910814264816937682927908295736458064735784850648145522477553317912705272913226218669576749548664729158058270060926321641540973857264427050785111202133817529287489193421367396451297221885411373330906794649499092873038491411143345624628186887920315595000149937976058015082664359217358429104514166593690108287530322207073087687539534007223203000432882113877412669508620531734179114666288244519187382022371613199500954488461473445538156696938764442584101839482617895543106496971245044779874118679433423824689756596472549951464617363764349332094436268105413883276009993298633187044317447014943177507429134457255418364313347330947212918069253051812484779907046524849965768747307580455500633309918562590809065933950359603632029123450631681362202658510126367439208464606340359221164746067280163631767644978582711032251901237388081484159239137571850205818564746400569929607332513837069509958378929695907937937005369437290363215218497796597684912523342199823441572819329787544587828938016590370660859269332831217225896613611946194796231618453540428975361669764531570887822071792170251669898669714425290695906841886163999233790528645418203691875839062725527946319782735167504775655938408561817363889694976183095296317166153776866163235994159906795078042930740847420436352648866491640438960523060764765538200210602887804609108141749544544209323646812865426825893403304774135083614510814635731350393940879838839980639953265117433682931731022991383550252177693868981219338413311343394032933072587132784828968224057039184817793666814978481539179160230272944969564496603272315467325195658146662603536016968664737088342159968783612239750794801165370407186920542995148098722919806838039573939216815267097827202366158561715163829710431009822464419775821995177824520758343361908415081876137793748760032355219719400426096174547916335464760631545865583341117505132773787537944398995544595437573705699025841571995484511667077778942250356228950245540684788716013892886517689236351011237889398499818733778003626232971240292232957339923359819117964124419398178031696094194045130251001464083385465846572408583997593855053072704239935353243574290072605294633870759828075562290466725056737029424953888415674104685643754080804012163521078690374917239825579398481409827750143905052603248110633893109659639066503171744381693838794653310729726818640948001535022442272151738377299922003031920027841175027377472701251999736904999137232909460836622544699733996733262188032369688849950044860381969559740240728057127449917637350997779443618788660052707137027317633599398383820649167366963221677423670255621732873353313387290505376811620785056932405759951122081556438033923227714612402257245727253430289561761082596872193297487776029143708188195717509340448127662921863914530683320483108724043874887184201094765036121559397717396025048634682821904887814646764172807000383237721292945321616686509072092348159423611114114156348474367086549999595511387350365437767424272638812446132799940073343635536910282372364202097581854170739321911390673340000413632995594860280326678033974207129076795887807502003508598850231967751802660763455087214571535493776585564252284270129677112243687768606588028522412245933875019613382245986459361731711570974874357084604299579763422047639226841754055713437730630784476818892397164662776205194876821240248461384571833480937472307123886195692500405824400238063533498321301318077604994146061565961796665493374003440778783419727702164982063543770107373159296212625691525978296994076410641556352796977464037953657887122773034269798333707260125795748339611532081041096282007895407366514853445864851920915401729417911941001601867625537735931736228977305650688692617302578234955174150496619209444529076818055682813701533297256168263903143133629080992647218702087198068359499767032256200567281315243914526092121825184594078031296709284033058394134473187908081398056792297076356292598903176581439833437240096215672860249457010200826328237823820492941206539431154572019406909666217412158526021271617514756977290035096077693808787759489694060459651234588408156535650605126169335521326886202269802424367824835328036494285872315863910799447695491235610510101975412990095718705842429288175241845402997605686449007191048621743508450957973305466804352692444989869868327515860606147298033369969725379377567692850201284565155603898957514416536706751578678280461652075555929400716462631356744971962278188582185061547826389836008534090920992826281063317085280092551261711006079236314976237331239631646604334090877111615371545850723400882598696114884972043126971819783699745783792185757103900710333336866242213831450157798925885740863317711069388476330083249373418721876312781660632145457455182951058487836023816737187335067697661319505612335844455128905555238169350484836695905296768948471900785815062416812950688729751432086158544160091619044633495147188345145046358978246210341916662700223997621191713031050713968681288520908225042826890508283693284290392514721596356258611626506568804679409949184712838768456231995244025383777747968166803790212008070545237373768021724627133401025245840321351581686579136794334414595703902430473512014384126737266251190699340202437496938441948936441586134733988728479299524101843347832013414890066808998618121184969698604400404780893866745341062187428581621958613218263421505617952459208956156499348688945180128084804205001709350361843721278245348100869460457984960122107057049197618715942089004868858874527049235320519675079920937319223115641951831547747548265264933669491177214734196225150506128799919811409419755874343585096164659854565158168767544818979842982266290338703112602168121784163576758059507456580555089430967851617805096517939169930583612487131489469566501177560030505147307367350257269836127979212979835991389791821695707810205904254126951508487675670024453476887029629514800556794295033063548741318780948745830101938882478259826423251399108827349065074578129638399325289742444325512717044852159338049358223565961007410198324833716889364973051453086186942301422130197670562401072234857393729437944549597024882598744056550210191101425865623764484215123513275140574153738098478820897229048116020501539583989501825078190579869740754415695294876173553975767093700006268889086291955898140001698915592774084348368085377031881440866050479620566228670410993572378007164684124565049725243545577135765619792951768703929877449243065744566921117365544928286902021796789136535329330258815044644105215276497592343283366652418074274484758932399860063241810670214174660988698467887172054124825382557349042801716051586397193073280944584612063306821293135022568816497471345618850162656984894360881769010140650524282111155310430095928120837436457287646929424139076201434144163435559679115036502302499159236899370158379349657308757455097446395221371287687040391495689694064985108683810349598250392191751281477417881180415603269451799891986684477113625865951338792000305118129088965731687619805864084801438025894729902307180343923592882717722536761801059377227543218802376657369864771894989642306140631465814476556129588755203131803762438533398531444628576391403480393390522485132264244925717527645085508795804054281691884873533318231561167310114142851681016595772573995864034144357006651956948129240345150050572241665529918055474168682755826945116576694136494599058357222471903132375494001154818356159861526763167405712466068009456603101342223403182445143917992189366009333575426218610872042190666402323074965020700400629294659790677151735269029714173427682015226873345811753925068464399830467454205018803423499706137376944405832874814573656343752682635274060507983447441914660736248162200754932675670334892479010118463836901652193877412477738457793570664582819725558587832151680856148510792285128506519867362691113181478499844938070929231547824145940678809525941613150343124034692196893812742313086418793523715434411068386301891365209679662309333279256332154779096864819415551204512345760453545214689818662892122099137425141649091872974363401722711219629497524541173944071840554878382764656943548115800436193894783408236079271704633358692858513875031005073372366848235742156705726417427787330376979520841275973191931226913483289962575311907989657506408897124995094460815710558672805371837469394322793142035914737627103497772651548879560742531284327187678256249696562302915711696598819940571383069012184561933663256846170845598639235247278182604219908141859751641659900244300934562835265393868485853650270287645341998968874351041454094007128520917399058640228944270525373892523705167784730136248094207053282217792973579665896902945803011577690761924644764101395487544936528878120990463465972572790688658926498711753823437014954197390544343050400383719868960607967718851909709553580100596578688442369091027139439936340542253984360679989706426537405867506918574095946500471987527574848112336971133660809517876753773043589530191931359148456876531970251702600225364132725830383463148556110202249877209963307327126892125181954201700843042019951106423555918543849967788066888137072987519285468213163344501349218094528443425055975648798708793199748896530277173685395566106275647959216011092731421545425267336464615288022872586603672045039434989903429786722111319474415756722165621702841845804728800459312193946827152123649777649052138527423446309763019715232346693945223091835020021596317801948040945455451345147741344888549750968613379429240881027561141859541850043752143485729107923632530095812728157777428659749290782986194572517473310394236237116219624401762698949758484443173023440158477595056061098118470126300153728609390439484050482281363318943541279703118903287948804783819717649282632047382816765663932106582078701290979815020080425925667743143045576108884595549497869879454450692520787590172657081060177179342633953322914783207877027335870913434662087769020478099844905879135036202541910283502542803125683135448905667654770728160055716388982366064979145630992215579550295427562254418256910901127752336666726078159632544374401690718944991103939911011458902335251122431515689309528469478808662093212642225318311531487186592529514805338057541001556963416515968528183049528659787186106123216770600857449071421999887182780540253786069358243350324757564637813708127591051951900687774445506576309050601878917700799779133506934101678060989430517705567092836022357367117533297447459213673075069517095625496599799616547031302272930666954883117495863356189455736134539076059138421349427953592877839558258897504319000772638052395441446738319909628708885062346803004286809317930719436056556154942188511121374171018239902259538245654977640850656679946740039203333982622292646483489376868941178238969741743674794413390042857925766282783191607782825752483310383891288368161357574795220841831392022883687418215597491546252363834569718928124878275628762360590061951089807376568099659065056261414773132731883784563307780644754529456570370629175735100242963285649227155487865297683231403978404804574874605039961157632571563979338263833547380157239363316796552003154592727191680955713486384104388817001825348927047511718047698035432644475436731660478796910173454800913006445396431399492703940269297780561471564994480516380737077471552752646290553463973225664289721536735180311546572725664345414215219026384302264873919421562503501303279210283945634064359470758441423325290184958367978338958045561812926313027156805973929169837657605229905370897910224946413900912666063408885407507954349028034533546926858529077428504611190701899005879324431687869322701485308334701623725191584699728745831706976411779212626027744521819836934162437668246641822876544669442034961740493229745328987031609800864110478232714983771055030933820676719032404414497569605835664964920563037768541168028941012006842818093240809337801064584657323896097712073250635596254837180374568612323846857605702668467509388657233263912949373707054237508671434763249149874590059585299517418200787205962623189168058174554526029384653612580260504581206013723210511690317799785857447587053394030204654598897288860453266359331303309897251915278814732892651066819409976294271568610007322191779068700134809857412964343797727508338598830179480648847913299544339192364991175668848699868932623648298115658238092768149718665464140954049289959143089561912377488645682413226450658423694838281916500430918380907711457659708128303515120070110283145379096671813970284238588337036464228139536853279434544471358724922104704696771759768602784213439730489388221981327130036611787163694296082685852867096921311368652105629928329787674963864458270614969572376204506710764949879340738891916024556204109794722397784083214357500838623095698511788399667835108803364865005052018189917065001158131525340277093575454084222223822142334056454227987422152241659062349772107521059523095294644867819993859211240410826612803662422504078699943343398881286904427981083216556272842827271752083898926777498781565933807843594793746098112893593188201379184274631175833901533275971908934588136322276037659151395833460842763291287521909213982457352491349901102236889514055391564889446987951616203819762708929287470965510384080132611775221454753914658097127711261461175733204628936878988992865635484320566546420151056575663535447756535490020771326011252218654222415374573537073340380907279498635634936521296577136640252420623963667966489294490847644824957848369910186562661989832772611765742519579432212125364325976802188251301911235669923458214566571175214515702415097985342156764311939848675699722166228942234270552304437041376716699954339693318748375707807603822603012732734755614892416284360798890547641627252099831680941396142940226770898264435775593960963270163166927965677890409084319211207554694188912051075864061709576158376025902725255692689800788384494120102989850444086606997340617437103373295259327264426505978324653882332576514079113570844043991899357644930616936529703089550748283310617434974391938116157092627168476678854210516567093041555256658500160645695362615755855460648373040495215335104936197593541208830017371177826505455517103072947025654335327891396852887595137007951027332557358265697053784028378032676149955972780355347142554588745414660643472077810045157879019072551699308960748465974891919920655941654261737563629093375142177272115671853690797213092080958812297062229227194839137185586036851709199199243720051119109863078762167632175409735946465094359627518768426773346830107998540749658853065997062188747609455739099615838468638364831223972195879084585507040421842874765973584853648112178238189143800854293595692809012731180609506294575065085706492600386844566382805595324287670509745034116712343478698145426969391014011611831513566923914356590281746217538383891253912123597954843413137476445986789636169156596806520052853145123085469187125816723581397204715442311627810835830411361704607618911469608615748814134844895466197602370055411849398906419616505691152080620208067901796315338713786592894254047804246437362756527100010432781539196258924369621549259588328935120477908030757231081626126686882464940895649724333321044894319675434974445918663707460821375560518838954906272425304757500315891035068828437117178202615104946917057434723664541542576879030232519202075407080421923211399695224865698394309886822302711315472735960794583022837293745168642752186361102569811527637343482620107596421204824657575853073490532235500850171258551645965534336676796880998821985194139289937390272496718651489706632986794234998048958526027724839472045856708755415818274989357234942309239192914815190039417148823959869521856650626554531928698019152913578721677067726721185734601964823381061028098755192981279261705793823729384220890236673849339646942907200055499521465003151645377052416213955846488993790855894482907335713315435312022010144508617937945325316207789927852637872670154621154420749551175061681159351593661087343954793421265550386559820165712647012218449157939200580729251460929475978572298747109394723302529232559609742150988623149942389139484820252577936822685370354779293896354303112481667309653830785071332984084028223718287226891323232360549016291974426766101103160450742733991276128857036983819074193350100150124527488441876588129207922324464820631406109758587109524675655441086091671706738821021974494728563560839934735521617151776897067028401609493329085468384911278274508402971856343634479526683385371463000701920084141270154666464728651876206537867393087663969982893744768898803068486742276279918323340422604635752486091018624251278115597969941793180058835145692410170290166053706496085262422791552544619976516084206905097286641725393115739033414412485852185588132554588711724623960777462385448345692399440707599359613492508051449804624234416817180024058842606795971946824357549933845009390938027749721329848566561629131299649265447999736930377958630254831031439658501627213317976522506977362003998455280678885279755146908267973281524569607777122743219604830684129450213440832623866542830841144248778481784028519985657156925140643648612771197442963133174800757829314620168162452122186032247252301489974287862269589518588828329964139630513441313201045391856202814236400570085238048546513098326937478881154464794687753729653064284039041895195391420708845912129665342632877038714438528897492342473362412729945874071039578835370146555885475582825556927301338488574948727216498549537726792218361830852694322313249697105640603704623512616190092042980506982420692988017123294700129858888454396079098738143269685076099337213267903792976405676131116218449875955645029514454299060653646114490530044078215537547894301528104902923426889108904777175622585889212270421735476539263631031856813530584772870915633325630488643509783362541142417189606802638303783919197293257362296171227778230717575357052458893477621934280299881207909049650004181549661593265179376344650640825535787848223389712164595161125487853112370482434555570432293256565449065756206714594523471262821160905589919471120074501440290718910658124809999856494616765785965972501456742320786103839675690489905650242925303093618405914544647868458524269775600496089305355048655312144411543202995051726860814513543487649840568818979975079350402808846281805985784446818689685190435873631890984250678482088549139293465257700436438890618697520506806463515290514273149826593623429240784200445841175371063856049322667205182888436401873401566819991450482901536893229905491310558448706651071912283579513343587101724493749734917125585310124534968072966472151333316048574142364229952109544402173321209574445184535061215255883709273614619771467391416143965729117104668392195608916706923903892764774751658324702021880984429090863901851949156219617964818193884863954516994012017619558119778439654456725474913246583008629324391981111775100290642277103898983378423564430069115244191144985683646185855866872824632620535646329930051112756203219175009873935066231853011038029205632304254822893981166656908921204992038265026663267571393760385590115641276121870994140280302103794829880251924494928065300108303356569252531774036863453617397564640014166238599908369425153356442990151901444690720044016834080527553543359037028564646482878160287005711736037419914562885527331113913167590629493265151016435691447300851637809178679757452928074726535889594116922251442350170039699825772015497095148253367951012074357542955349979443593549008345107865394678303907745469156302742136935994500497788463374331344761888899389311787385382613096795308918552344725765316522538168692290274382395303772729088795893577109192049329387091644871482039769104203434872147536884621242739951753017521621777400506139692207431550360715777580162012810577739866930698518998622526923420846863012531809448864401454255968135743603195418787391880185748725469118555381381991416559797349182511904562054504153241953353402108179897050489744903346015084477966577864279205582710040420091868435100707732315063745138041659066194215477204712167710161254256672934336714405649559856712656631520290637582552655900576878877264583734450991427904454195789636161695846982684231432065298310758808381909057540549593588812543410661446422667486115584431160616599650278314904541532030671540228039184208105735515454756770144013631370214764989493220844857196698904975512122374864986192281974607304607092429853659066622854305192710052092840403958911041851375119902421974769777556983339479075245478409377036202838256387354555956921653756789349568811102647814501171804865384620375610587663076520735093063629321487367895836598726139291081101055983718801939209040619321864198309737195360522439182647782605265860976957314422831805450954432280048463069557874229015912155913270870026930473177995431751366078932582428306197169205598994128415071975273389826458285792921013994791773390799754770565706506048221226107531447855347712757627502575378336361652892027126537435862700040889832013800509789909269970868377284188560412705404200850109893808024556970518852569946950047988236990306824164653286287596469121923397263570595247986955518952223442081730717154574274355617553078593645066735741494243087492079109469831977515843180907026790913117242355780778416868387037600837807873749510772930872312063056559812613457320709969344167402934218645766426880951074111780000329687674358335249661612602913092098786374594878612919383922354301579492210133927035307520886979298060620557179998153666912158678917931498095960244521770067097433824191135152553262489272834899375585223023277858564865124598780973800778975770388112907391837896210817266321374567660184280120717544007631518994202313406799181463080180144965721511820837820121559609334179600308651576972054197808493061029116845887219687939616025083126523784964387961937647402944449048426429015840794672031682844165567641940772620617783260205559492869407860896797629413610891266735185208001755619392607524459225859315048975501764472489801330108236248735929508394787972974189943394136325079423153410629123811446367940583533019010223067175930784953076153491157485463244503620331151516742811537468490269838762181965322146323916203460407115443960157791153385501934959354053054241704967902222162261971494231496604351118880579327690316107966837822843417092071570520833265978737024994788425707010913429899977991775174600689012202923383770893988273614496195739610059015630424822111215397149495157627111385386534562644191447900516711226618901665831452391525931798484251932798365211448098210709497533809616943950289243829002957753624895506228236287713229629894551180421517773083315879347134129583636425662826310520122131220898188033602695397605569247257913733756063841418316301993790590619029703551080062812068693715127748753028417922193999701817647775093121460177045248798076932003141990979790298876641969625855899504883769732761155455516713317307635126557757576885069130517453775919765551053257323514487366605281980218507632807188336760571763936669849804052861338099602709941218846971329203760566293622156873872781008650982813440205907750050114813969032457010244516740799309144744233948629363928530555775246231664054041880367451371598402818964283096516755505616060765985525795939360844558609476108164028016596099787174583687860528145267022802017693492236674077819104486155266344724941009008686474841025538057566081888727877896669570454155211027065940011080625007623632000049579898405228716930512775282106480486894056375961018412243742059073996032737938156483680099170421866068902210521950739473169331494229797973925286579665552825134181800244572767995342474437375557518135821449127590805314201494206866282203213522395640914489245711134364190874477150111272512876894616012308431730785512609621101716157097079636167139429193950782939101413661432737810847836774433724617981271740004365302039584592945018579682640893650039385583074931961546848017968115193150998586020406387336080924765079398133372922755609048113222238334698856780764988428803954402449655251767330725919183785834209731644052145792507617978299260069038328207402062292774561878090787977154892396047617985199740997738941836203153484256001615879094832057479439312413537239548428844353459445997032146131767742811238686722171897424375304415281277732507447329720806500624835845115388697801303859186213642225877226779197720901799665421197215368605446329870016223796443055214005708438100915501944029799885005764682542232855689387708806400870980493258837644667495004288557498255722226906421786547082898492021165941231005703496535106188580918188508527143954426499421877760565709649190754153879599231521240034128065795423653823978216957684676796248546703754768856957848701018204581929609009808338268128536220356898451192719395160548267119154185662697148467391842747162692443138670214104278669881068287497093804455064277869960856978043285497187123848538520603207165782164606437550625727099270238123076373475252900459326628753494311088895738323279523203250063394611748299311792563136724681513838336035030913072390231402189432823620543586167620685280324794255588283510102142404068279194843888415438061556247149233277652625041245306249185787739598014632650829218789685785326356475701619334759277427977643348084654971468405325709359983175722866457602523661711533619144101092892428240706611924768803755638516733256338224476892916079456521099375545929897003914017723833376463022285545144337054571371068570833191543894573774072521332010075868675702812745892576149180027277840598041426433187353938380448827297013372141409856674719808556052640815506571296155035736601144279720431513932364542580482430384579070613272255606250280502413752663457155433281529703565171554491805923851287625910180601476821231932315651985717874140222000020279819191259665966005030126578951700032137122745558258888933767523735361195479756013684192334522572858645478080013769710384330117527082610053288667018266957037626639615863199942664987777560259196450604484402524107594197667107885190060403850608607969112428945288461782265872443552334613588497638287267811145074257955606047611417070886966170086684773689671181252592918485304658703732593093426510501226306599041671525365032466211946589059646297064951526622989138299984868342663388735351722090079650322772620714586165803815928738262118140775163724341984266040883422032465782870828825033103749272755866289018800067382361439922751020467465252286620778299131552068047441846203173373695837838860034271140751808956031253698051408300908512466457686333112269705690891223714587729184956817183990526171115324950622847548343412216791631800809112412624781864327752336108020125718562251438570332593546965819007401654582518020504412635505118845486120588708319215499178791313591113033701852300962155358634142790685830642548363695282436553059402595544288023400867070117264330985465113267530193131760362437751842136730849384418681795890371595586773572239162562631726736056617118323324464679804645872513167029313620115480336617748071226151504564293358230749688180586075904551174082701932330170842414255357485683989776518585391706629528028839977239756992585872037615544373096457749062655746717018752417230319012017086412545793700079447015259082267580282291271175982225338484688486445122282676018742569313338926776070494618189934788492116341369142916450607507455153667157594116519696429006896748977897334397262007825571933186037853169829640219902971548081867430551963656378159140436079936797656087991034113521264745061042046146123139930604131566443889258232604728661107950680675683638628277464878336235912674213707299034445771595325619577865742109573631890801370047496683878605425556541442425856410901671658321172523583991501204454698309751495146432888824211000274539703420834535521708842201308604156360482912596617777170320085349291644371338210014927187162080492723487549579131144666219477916985529785836950850968805199895887315895679639930862471528027972934099122862727244567817140639079561264493778814435864678622071124080337833337299266818820522176870935097963688975490213803414358708101092750082178527206121835126028473353297821533715720774703252902619560243833530791758452106909284008131302989295732068347860974355568662461505790317781533160304009679376481265540284289602463263586044513067477968755372462503682313679958608798350503265642987162962710074647353286991914470709873514128222226994015639842363466268895873580072944874812264754562730556615510131041078353974773618764194849759784911504587563599310884047015794414386156438138373182396479979712115518135145411159135293953927833611600176110031520416805620273280552802218611152598035885804112645115904937674175460185758042392972682595795255042858604225756649443159113096196546646567889057851319718225402113102676774078149408410982394876323745584369184660613618414469063094345424593836296913626909847970576879355815096196503877100271528853719050459146036385792278677084981042326183696240532167955019275186842613545982523608410604811968839408210786947385393915425775432681476318248657325024214378829778621572821286406188618764355397833009463663624112824315774396040382667462817111594634494099671110067526729748850738704303386165217621999935484713578725218433196610995313917985215214394137784262904770740832331574321208954472676330984625634467769124846636422072548490512581655626889281152656389566348839957894026419495925977087100917518410012663633173803338877030537215215666183701663113978672523441505227049923953647604676844583025501352417715911655492869423389492257860378271657288694632955554549256144505269751293901054468604178912665219905919714523747383539605580352556323646119140855446936228549791490921240663147431057054484207475010679629239403117924174762578143703427803099980758582668813054431419404146794507605647996827227332424832794983701431557460016361106460561636089974572962477999101187634502840582917122276920744551900352972715178877822415819113214511641382091256893316314680869770842981276373388508920905697692479834931076581472836164250629024733866407132432450545167735656167601309443480425698944135525108589569865603233614191341976662578090836521055676386352498988794592805522908349704617084686870674482062161195208652157837780154050580345227832621362588385200894767886755723275148595689911857250020790490102934081134286823624074754459280338022726588494222462364697163233532502218020435612801016357260911673953908716132158026830806133689230259686609340188428278690278387817339704766258025629032703262189352111734910669600778672952026360140887325979706913495311748492609350633370734760296023070586546805595933206503309573009112369423037148988698077300741791472207221405391056444555734693396390220016982566165785819439783182788514370031380377702902111305434105302307680390792715533668709522076877012618822532152011876222906945931914962733725908468124956632181501892306403039415331584373200776282752907915441103758441810157626719083316567532676755898342846965695263058030998550765107312438582203932346639269183154961310099560013023004365918604053354600925373230006825470740592456523660292944187067545272790754463072933636962705852104110415308167645014991172156992243494036708912818430108436142742750801377798029174783700867576592030926052413137507053336941096015785204755397784223586735152767391311999499379928540706591490418681120468351897287140422686095928236325414264933716447591643821358629235129730581981697636634382265977188875085307282197132702713472563568006415434225002738219902734179851742433160993699495277449778300206871720669815006505852179158255409551701903277328362968356002713545721718381051279352160196335266853407772961863147217569679245356230804629475856420667892861789535682557938630036486072917998719434025734054649805091862741960246843026047290471007560689945293675583119349490194863221114828887746709745293566201167711648927415034275274570643877956359910701523360443624862623808370693768199102155538625959726854413840873594897285922991707734101543981260622398142979028217506045990751374135107146159133089574706102438828784338976893827064803858955186444656011291693352473453902650286626887586951841539577483839299215242570823490657882092583009737620819220127142530186146538630242468943512550233851457586385061834238356457318273542672300315466256259449307471783525853689175809849851636482467519770122574203319730697502013646514282267932696793196283782514585914799510645303979910855778496208144183657369442214824693348775317255455817144283247567995600174261551677733757550394913764442036559890018247664664937162338682685765023227794218475090146961609903384704475965729538271470391142027830253613041064977829657255794168336465610889336478844580794984848600890219720345065265185425786686693531118935384294589393183753871983483600175164436201822676937641285961387311419154476581426637975082936197936411534167324858166767103942816953688729278391748821943198689528631821372526896841519023532590347610786396595677579334645083804085452841730623615845244131501489088243068852013419657208405939676443841006987937221872235024986493458758833930297613016209572807674771371986621876149221971052798597239573539058195971381755226372991464098442234615729110761680942863899519945319949868882698404381643182530074428719514241618525377428315020457921248983853971659630705096512235871438146572097674967843477293811246476961207710194845285010126050931148309570120872769330228774742159829868358427084887476809167809397624386254405738868371409019672217904395152075137423641636452641215276471350171268260211162865184238974800587832494745973785695487581987794623377153049893280054691106578303994397244551157402596515083567770106319448568755038101651863428613737308727663859051362997434050511001027628881827878922540715182836873169465084186926839086227389481342872487164195288263834593484085055384804694293963917394561763752117770409489758460932857082662947152325680908733995830186949949180326573130396454521459705684816764522827569134786485706180705719246398737292966579259998058811973831481412560722750114296685389818231760499740513353436937465885496135259316085274160965386535932285512171368500195889921609677446915842644022399593447710786213606070230073581243171669977468351514146577012667313170928787022730049679976017933790634765083283205160794230520959213416544938074393640819508287545387388517448616513065301248746586745844513561002254023920581589936320020109430952379441027839678744862020201061046881795317949750533994282686555660957047062004162156423717496656913937821610504423957540966012836041940657733967136647189216518618042493372579506338616403246665230105006487892507141089710733794725288558823063288574960147640207467017281074482816072961460833498393370375480715161790796885939467640334456712587933161598402887543150605872213053357092066854643275722668112780288700883251904710946801210960478767595927390756912189287962234177419148498391455849795052746961236454775266230846778064594249477740596232092289535312662174092230486763390268476995240856509529441665247539315300604366313218935373842946733202051390337383085081174944542930605105912912613434073615516733526358980888371882014024325375545469707566012620828153185338804540350026193415803320276973818543097438883413624574737504554825855539040197651854118202206359536825876809285654192937354881948852175499972358020211516745233129073337996202485600569336996750302507110754193468038358768341049812738022567000184520884759174769292695331358387376119113617536362313143152153110807940031897078238374142631222601045922419955545524621383967853301417325099905276991911692427599879488657416638612482101614097112311975378576793194242229162721619988137955459561163616626401769080542568553834313098928681318542005241541781906252764031762836948445527833836186234267481553612339336536850443862017369803882616468585582580714474606831999823771331225928620453229339256926827875606622025644466003586244990746404769202097875114985292005217771809619609631970117106106038661965938117247519257941832636700786862602132067572558452706737002732673599530129152727063932128076009172458598364621243511424708870989475339283345478882933067749494845893457739770184547176354993239212340247236076949726995001684548147323877822064297403212439750126861575283155299934772694883488784708999472170147561669310381015281859194095903992105120551038039099043804959190846624071446304145679089973256461131469213170665923054348463563636655984211648476839719463767427483704759954954132279541533195383348085952197024417004885400591957081391917635764565350154322198276735997721281609613537187734348566026482238363043993230450964510723369779432385842514686344208268358401717779595595944535824858698049517897341692577911427826284895703301617373568741970378109265769089273121081363260037865021544787023143539709093029302850496321359228400615292893222685279158356638719486106817224773441861073141983888820306707999683855396948021572064306241939483167567429429644195685847339856088530613710886569613885787388265543527148939895253944243651973446007138151287125619827213278331032214531808206219335467832411188342486116645922596887228792582730976463194092811126052836540558203225177429351463130374778649859764971211870227868141666364851526116679004905114648019768843792714057952287819205107899474772224962514638614629456508206299162596870596024541188457341808392960690794804501051494326648088165641583183269399678842326747023123283840894867070841168455275668367961615860833037581203285893575691572242050958151947332434899302595359429383743660305678733043241073241931364903587759328861831586051447721469967741545069330846737792910810595434969063899363900134552726966827912533901366969751537000776173562619708901310992240526098588800001987867513434152195941471318074367335007376884832248886979701135400011600376646166408533800618409882960512865988686831512543369178251312757323588939418656434069979825146306444179558283190254997213591042420769389772500507568790204966864867644630200744765313651430181993770138826472279607666067419512666474957911002388848494376875755932687266759374350465695162934523508661142070548227434325407200024366602247021883472662000025587312458494251712504911528919637198102453254577937041963095188967190989427987551080002943330151636751276045238430886314790371495622102708263014924358700031856362946033449506785943541916738596325119651326429770632897284388834814301876735200183335529592142813555061340926747504172631067791937338343613741519524982690953881059596218684047007176213651234664958475322715956487596645777846366278159164137603639795780720003397696935139477696774199621879961020484490698238459300140765029618557549231061824539525765036026792667774142462595549477211991527917613454865353315890028160553397431715784069264065454307853518804329660327749116522781375724927781427837476719309243092299806756227100748264944810034557628635795880996354057709934652693980541011428265549398074334675226743765311115077646453893589768626058512597481743745280913338102184719329841707032524781095884577262899769557407011417517662843001073241045004223461292783737930303632264212050197932584373291985049670011385755055670334575857955439895037725805546645896024530828543209509430939606595429989636873434024715956066970351966059722014653945981018137087126584506503918156128227748793040731989534778607675756134069193138566747127723584826717372935264780576870673100676518693196480893778708005022066378553808956357902535865401741621396620101471883194566306649972799757199073168638782608948421361485357496350215475822934311449248290454876616638273809023180570519731411732259678200750824452558487170895566754645887061851275878223816967748955691868676029525089945579344475911970660598271051880573216695864744276780261576827854776249286624255900616542843792103455047459413074161510114854772501363617438264546082859446926932132795769779997854072850597305723192496870477220104778319709824209512927571381390497899047155247802029288332056446961422140389413520087237923392911731728413283174126321547963077107683191508199912279086352288916177488612653080661018326027601261688364401698659438434844523078002378202482141842766328686017484360463304131536688964628454136484752129862209277405726745623526598147653710276043251089057866072510538361047053883034136757087016808354647701254317850671582373426128916176495490346766752730716768161601758182231342314179238600451423264090676081981330331260791727788145306880702118902210361158631033292032628955765042445552463702441256674646412053373822566675152284627851321760938182252172806397783753778767132785619966097162508719518745491537002291570236003336657988446122158368294278806743460182792710233709903921433349054443421865606025832944080864479725684095135119871943769861057584329724477416043644819704627863652418537446583494705516259471040928302742658365210822417171986289816316789886216716061284976378793230583977362820456406337081672864605228995504170559586590042901647609554116482866626420844747633836595894949689609731272099797277787724688158470897463163460802080713493106978099385940004148133307112093154036678914858428698073523790426427278626192168777063993272112904856778134754711216931004906499650829118804586992800271402447388357655918212968075840997964490233721288479378200023150688488836827350546220305122087943988683044418582112474017671083648875945743196004401396269420633089055933094172712180881661185103818059558817107665690442777769546531191882534066069106198925037837774149708570064821850487944973234205813631843331629531296188847131795373881478310288781746859864766628310579240534936472095413444940182026056455394304576732936448220784355282308938642697793984327322642202056779070227771226923423129274839971896317872040726368557900326944917420540202925518472336160150070710094633592262696309976607510307278937905165716792005702412278599951913611935018458806607194095399416784273174389166634720263159125270906884312571061446730011674251270978879222386314134299403132218747916382230332228175620938075804021309442221736690031799661487191632646601838453501030345342058604608419972943163030967286743524848453181092485768838482741143866143249834618104972887371037208346786574761410225799306829844975701516904350816692093948086223600516916755985979791931086400968575866235565472875242626626870949049317560589706028082305561417643267235625523518816706161242177966994095714306012195093500308770261646553255732219429086144385688783242408949426597741438725854562790246434624173039925709121153593340355572630917113618137112514199540455294841887033425134271654898192845664309221406555604927637007033473450367246760410822123111122498366096156690117467578399383224934269299619206405488054937681230721484244414463425412624819105928043003085349366817485303917838851886010587320665953428248396790694722878194622384244019585278526111291495857648328613820945443074705117951233377896691848012229941290163067071978481226223245382271291640627163051825287955623883488361650796618796974626682874363908812999041370958426968229630962400371380910538908225865575080269360482338611745468039683702310861624417829352550468703203045023406542283277060733566308421143038655507882918130564482556512885597312184524039303747593351572531769838166850999758901436064591006581709403466428855567755806667835400646413439895231929844464263498069030021006793509576531575453068082381889536105772593366386029187237006651183742784839028501005177991051377606170490471483648126617801846004580087232816899627806239237943098608224522988770909992659259400187537993246572367454994042393713883481731758759813873016024685471495776452765223625078212241231339133109077557908650776324224594705176994256657490521118921282325387031154367279800869815136458347310437393826356106736336037141832802698110285840670509108413954567772984806244649823934259560102566351987152644430999107555238720933376593902892191068589261738835206497658924027181602644893901836019161962526017415971519013621332933970485638240321017554100990738552753006308464990406607664064305711858513491224386669343107816792715575715878348576478134480666005900053135466820502655235144444265063679029880012172668485395140341983297853047666454909947823801086227117868842498315529622057418046757812636615143073465582063375726286294426789133056234217464051385645968452993282099850052589187354400260813421006014744603180084712739871099629613035490989594052168744385691449831812729202701843055618087883568667451503230466077633977094255326754697105919138923545068338871536412784232089831253393954008731619473915442187606530390773588163025010207019487524364079511064705683315448434253482688003888852993392222633081478536923315596417038004465219469333257664612418983047158849973121634616056217108191672904767479333228766139471350506951308329456986687725116200477699179446925187433836918497658659913715387701712063596922221962770954782188845379327688694376630487844304513884793334586424897964298433941505228957682231245831460175762243362019001224036978106250411065272657262157433818931456866122312136471326170605517287606140336584325415197315821035042566315307776308715531528681071379235572350681346213645970670214053724849034838692895104301398299336812528490251653057973292818313402398568507071679298341920482080181551642426562912130076045136224559876151563058997574035442648001740296922979841396082911505485531211715373499664084782223756886461135945674972212068021187027084223060522777470568780541960832706497392147918067874893880567167737092762718181058341015054747940152235784403546410153665501449453937024419836219263817742047920112340246551223043534809509022245513956459073627514368459729148640960041805965396563680360748835886453488937514316214905270200172583951401640289270850843715675294644742180673056943115053124142548914060850560368137596675660047203463416143601728527517814533948041494515330887279868492370145130503568134373185614918717598928931226018837147133143282315807410169311880758365670628597699633971229414948258901361764579988132986301400253957066788053620734184941472201987451892781991608412545339984410777569039201654448217224433707238457754146481725131480977649047687305249203297186207179521102988829514499503621251635588625683013583173108735460114064864948202682757851748111980020583008996554227175090955166178242256764821718375633727606575486269578261720332544178177518860701499119881254260831786464594549897153040769840231571115848338066295878196656424298386221917563346553318141581752237668534904028795170407775215512685966162998290399542156490476575413106567790443635714166480680519696570550362861318178042462230433887332051727111972356780832841945641262552704205536747661808777044209391076037998124037662192208013834480921817000940106282433176305098061228499501141022940072219535602695665967587004672525881757873997398697298391543982701632227527082797894478901791595423360528296305178169589042397150201531640528685219721519533614251701008724138009466805842890328510010284527372900333544056665797760966379322180991432835368921116124732212742235908761510167244636442992406894270295420065676311699384830026608719236528187728696948138666318940883447247347740998786650249480671306843088721479866975885500730956213648735621074304099212641319952816125131431208277031538646132334992263988932376026282392513011553782931385804565104213643270180635319904304174533607336249539468857382561638863346038188304302592689612612787991057783240889076660728005901520665579679789138953906136763894566178498554687715812698204108879219626120514337749420972107110522264141163378340132577492084166880923609305508374254869799045157554281190829257564911427109962100818875702980137952068811782635125707504585140915165703354995426061847359869954155346965786246071227389269191469103243989980484140603727565543777846791585740370135955299431030265325386136973036770407809537238880837707030079705499117416721704816168712898092148285626847646194801412635786602386141288704024005300121232088126320687300905108800731499539190787931248670537276958535456039410298744093510674021615751505356708605522874910018427945927354799678711778376330246550139185849024092476019001774294570910599631405924832808232203536374992655998198930220687307794988515634820154806852174230173074778162074239799021388520713728517293025965886902540028458602230116249056464058476952911098397402648287822404449419226445543848744361776751810319281866194244916798317951092497403901803428001381155013920353832388624624489483908292702123389735595046913669261229980629240644654138752201542613849959900321796419567437801243046067864443098338634275591849701602335269656569533073297583504095618761325711601916694766098126438077885751478213790100158053185213977589831766784366386563169261826953444279688143064575605538922541181836266685450539738822108391331595252106796836662869179407391982238139012221254528777264157901905563785375373705606984333572104661380064080587805201996978548199156359316400177924580569436526563016395294870217820341568224643383704142038917108219236110950012781924366296393934471186375188549826624741988547446673086491740272382887743557028321252483360875441266991885185865433030191017007804461208933626753659449321624750169536503849134125556635285757406262937716061580973058976956655866123996017904426786667118497505108980782202753796661540621222915358913102359804645165549001924894963287557379243959020951928129609279848509187883743272518784727016793561230523761745928978985489263118865595993330402878399056344327396606918284615201731546543538158138488012210304020861657883077974806106482945885723600888590277971468007602587006718558639817433303398579623438463765584239114297432019303085385065911494188590735850132359638045473556495644617530185906588202947117095960891518650614487444043359164850144820196926267536156314971112993600077360049166272308007782413165320033672385013587455904555839375086281064429314132820334963202847656624949538730642747959888684812399993234962343195659799539182969426684135064189919867101101199339724737125326044656608122649876173690797884529771355950678058500857819433592149365157031079178917899339335025428502780368609592497527809242746551916851694148245305408695719070221704462223042679477910140025677765570818227428011957666504820901064600178777033506504610388308991292532554040584240775995526400954825737006944452626576957247071347914345251656829347898058346975090830937159420685151595322151162617191770443178542605014158627207630774007677985008729292344829909380431761040422607981989385547834212990032699312756127616809899497078185547182099303241109217326174902163982635883223420284957569430289759041611178160267449027208760981879850997569561864867990661862381128986681203316414438407827942726353829347457237125702231188900061424035414902613395267528873542612670748665022396803253803682855447311505261683253639145534802971939237860190686525810199486384553729615667547007910671475257032228551931568024123465983801323840011969330596818571175922014628242690384089001944194107195469975262195128937877242986719140925124748249324319966708956045029930491359248357797416170640563595918953887272894808587280626452839843514025928675200389188529627855611740262559109894692298776636865429297181299754801473652058440222576358868572772820009941414360043727654593486898541527172271616055411596639080487690068239106477783684181690454751668063541399202864280437663899441125418951869555114601612904521807700015699439745717507141954745624702581349595184428526922992622062656474032028032417778084666619027419605373390580384652477862274386079535236806526556309083933819079068210041071785260244368232895588234934483287629903020767363516033188594248164092071110547069611221523867339640839654131947198236716079745005437149256343325159847597777496610229051204707070796115076748461268172085895103471573122153884133060437099674673751051684471025374183521909171450703371759139190941647136089618874944509814052982412259428643596731330850596148074403460912459237827824393230667611818105268212457065766114635645233756752025461047448548164678462008867363500177604217729162849043903599277953712174737150299281619961843913430134975643562177655172548351071338723697254800633829519615365358832311618040427386879833123429626731627517968759723710333559542524585474568063790990756521487834174167579181632090856393853737091166461101351148699811538668142370918645320010609487490581630953556680510729631564367665787250913016944628801303717324696133588617430988080430341325036998101956666984851049822415498741404606700084458244117581446651468788015296271855985648734580479078379295570480896582267399218240525142341595801936120301460230263960045882869862420686220652056624474131212630996545636872722897115841091749059956453568605120235930396592731057973792133769253194633846688346600540641415476057370581542627703692026059693572964020618616240556598875933165933733197360861704187092855739931529649458342279883909353248855377522512649345976166236429052804790392668363500302990018023481811366859991545062867597517582282267930775001160471349058414423581577327043328194128407851109985760918431966716674105659792334811851395747571537231377303854514269409932399632585101415126500152779708708915559800914142962493131911244409178990337076866746545667906961222470695652587469877394769635591383098381489858170366302098173839352832981579762338976584860348240299765281327116685754207770821861752783317908648170313965178655407001267023469534190341616143871204934773126332298989826051272663912771186762233866319014539101239243038780320664595263833197487929088997036676113625381684388940502783349976749222590630476957650759955086982507227831518979544946785239134413212891348783861599434677900596999607254518187029980240710277933694796558530987437528530082676520298658583427952202300905304831687397993670341287300667795304892816806251174328116758359569659852331327872227879507661571974873285113698268718541208161012934059223105994623003592276470551605294414553313985618823525501168868949255225948262886124456949026309605365981203343794371388769845727721845495148139385433568726640321659030551020088833182352027841405701186739632261699360427016821622451347853841744781569605106712637538156836238667545850662060095415110111269937704372903666332493668279587863124467468721661988962203899312233843942755849217621390329609934872947541094643154995713609049978550475245131437855135570661538321076840807846742855035037170907519560253375529214799468138732323843367557125068625306714207907117828199352367381290291833774367091376688485960423188724255209205082763938128708580355818756470023468063139487246350605468137525009265107151346727887537552144643928430715460735261544580087646424790310203278728160507233067740427211634088110481676739856526342537294842157011640881062583895290219962390530439582390982011892205950485772372832713839372566081593163059639370983367608891650823866367661344456112938553887716368656221749449040910511706990722867298334178287614495145133418791983611752615486298030804485167604056070267816585374741525664506794183434154335640913958860948015660569918695807027736413158022095424136980813185082805941424712879336508066677871729559461827579602975761424940791018371483197160327013394755259780260963199029856296650637252246046484604770824416000801290065311810604178657218694438257684927793861710937333055359898766280124199883525606906962495323209579586132571679630361173424537280934102227709558096846313394282261601619748508685071365365811213516087143298966107423295297883051820497651453716357402283703260297320492237638828767313652832960469561506598230625904710330474956316755619357947864437955605787693309481648449769694785121265556456167729461970995536237124737034079266128740850856156433904600244819653371574919212025847036626511173247132424245267322382167692136662770839128535635845786376926413392253029267493077681109267671027229964928910736432664714433471013068055374590188024917638104611299354097087519052914002701701390797148924321730055822738399636059717914247480524982739395707592866427340968992354067162048852340292084003804949295444492754499195748013434002286353766449700183576383649524784831791069421242314881717059574277180411315402772365811179078962438823480168160677762804695954690137873164319737964879087966895947446303783397639777084459131574180212201591434953167944710335127591456468241367868940588339051980924034621171940366692519302780069556658718312003156260874689058414582446894318334579467582904158790079749751117288513089137685333920476779637426051536204642984029130614784346088117781760548766885164879863776969490421834444651560777361123994003625910843566891060117004501191090660229112909986014025670380990827447285187346042164142737332045376708457304968195703601853461113487932454040026804199231020172627843165213066608018853904974369724089328812500289321712881579995478351931335329313421543513330172951535210136406395245134144875039499395446217793834048900635173891722051797939849279677498935790959133278501048103453117216287730224159817522134642832427867259823183324396360821810452381901243804816011459471724561668113187221770518159247722572673857260040744272282952048326181808764571589912775857311946973527090546581444426649651413103521986068050989061905151625729540974576237162218228015387727113336587427535273952581924228813977295773769890199092133959060519276412786681211871658596485202123960580573790089434231159905705682471757704277057542420461014621580835204599741776097946057930168661097162620446644103415712737711226347818116223251725206761731098688753873770850467014843448114017227476694176761807100905737462847893168489904357552298002042168996736969386002475928846735479798159332144114654329593585253967803925577930448824871311567906655578066797234610057870594055462933093833079039444283548234111825549267571084572153062448269696287557165330417218887053183616968964389272268337236783101836096864612528488115052141052867458320640174190250864207326040222361598465102255684108516377898354132576113358356087004412095619112495183900323854865108540000531786212125851489421905863913198250201359522806515467458898735997094558504693647293593611689780509682510833821782797816604941324594604858139268455092111460765743207402773467396719481481327592955555341622340871913784849148576239106104366344422111544448746966498142165292023699473217901480334694641262743981282771242497590213694207550775678965274827500205450047425706055367819959861891382487997719343477758086713498554358902212224059809104062676231517934324865472049344216361986904135480515346875917870551490076599233860406335932118349709633672153321813728069011747175561295136377335438026130463656176556678104714207985784208784095010666586952882581925676877783930189379978462060430498680561032496482802816115478186206677938856911705880564522325539194612457181532594719444877204568890802015912024817908348111248197032388893546035368955462919999242988797586480211305808236482103226232657633515566184349293343435277920286675658048429882096254858415014793925495784508408504229599743101475765410966076041819566096005125152248223765807780358673771660669776229642489692896861551531942283414465870014249277348045280773304167859991880548939445696928818969925570132035013667911724891994587847630469253402024327567684139288906258921915899373070620983802715834083084678787527194507671786051399728984563631872502586250012298714231131182826995908921227402738267515551026814316845304963532706033000134659818183507631012749125113608768928650655718294191432679846993783183831591941748580082379894309327471934382604974915134669153560038212142820328549486485342191808927437363067138008775143397522582453182008414743495521673110164233496860880057366270777920171098726566090139621363691261928570488328135275918392844187788591934363888645685713594573534265609707894052484263075956729778319579160833835854745190475269492761626494750168912399239098186433224176749946135800275054919749781220988758443827482313085913070102543158756652179138494921550284625752707217461337886256382313505065414120218943108339229978171381404396807998954031230041372226008123338123477846107072987375607387940048002082041601008596869784199696714100950753585732027033309588238829263332983089949714759236606085387570182763256195172159127267655327443562757693151204435529855518447643351049303371788098382986605934710817020627425131630595476969232021343280353312163369075442054834599200391474911490165187341257214950764814188979629886754171341143128112288286147796994116033888649722977594469066034190504179000668541896271248240118412872770049153624361776623679274804374951866403637845270178182993019108358503132502618632609049079844494074625389567221980474142089046243031993117471496038727545400944590290772656641050530200420046212332199497626763617527269277892485120940390478908315048926425640438837317648258551864260734784011836859254724312170891159505052473231931401636180991666019254075175742504115143083363238243039259815578974719558164112177372369689551373147191293747396063376519941100800922620587688549446678388973837196494021959515740464986799823865637875397082532040521046467797877250247989516206084307933584516234626853700071518387853936918710843693662729675728269750119299710927739763543017339367687406048594768232841701609172144354705904970934549975203564596160621714694012080547789714727181946874119487713791424316211764657426835678377802906079367332081340335399184622221774968125810849241680524355449765753514886611215993975007776465219902283430497322992210167549660743149472406039827561672271726352967423399589362626460941105391031267877981040852495682553356027674241196751230430836970234658502242047296782821044934436743045621380097604520886283158298731295169887079412663452732210100512966790238892737090742539761355976549838586811502286149556488439599642001469511063958992155558559856283981659252372994573515709410142645961110393912498105525854410816701643945094786485718360180269119698791306190515494555992824041119303730016403472125161807466859734659334611946933184351376170182884023848343964419487746247790703756412452354056598015374678371734745337130220951377354316227306222248359869485670801317736990543691559758461553915828811973019167656145893866752321625302681080172352328277862511387449674529543298992575044565870104218662384856185311939015555831479427184647588211161276391047228893470568987217982054867202422912594270662608128218972544294471608299570461800384844864664526773301924463862902626358465824535954107639437117077355964380135102438069534014468288082988341426940874713201034382243301973231357722714423634991781812359704856659054602723109257826986964129667911059487622890079523821153897273804278103069515581846456401078438173055081534481755666718878225527167136849412616388264187656316117482074984202075963448531607665079276224631278208961358454254947709231337504843472504020467344652884932229659456332081952060104915773041782253926155336063552097503637213678766920669277905409477104119090300957532366917033209833124341836979483307786773257657198967329458040754687396601711356425825979356273880403140235199759388752380147728673453540937884002489231710315631997170089573721681048337792004334442865860095151267185400364534207920664521706048783982614264169708970548630594507987109817253396638806842239453504301815627451477369997345677309964433898492243066209175190587522581596390462745240474883235976469380048132551986685416772785803863583995435539242161821445097101155993660427684976116407063838653655490047712911744159868501413522603635531920449959687610502788378004162592200852600433580894711895984030264656806051775895416943733220790557414183957202928730821803681556851843033127440627891464913347366050852352709067638399597641748640915455415504398989852823201906753688620660075701953425224409900420063609409054169670595452820884270807553723473137475724320041657727197562684402610241724520606861817761805078187867099302875699767092833895391409842515353755336201646039962126977687908993292638458005310875678348988319963514464204519386238706685826911412776173872512049736509043409663769084725107212504070721202283107184332931859921789391494329178150730833515052696036967646249800763772309747822277829242256332210492727516907810692470334732916116974303367667973876982350124567170045107784996184997419274634586901663576399308381620776659733945383211137517585142365727814769082146393553473854699958346545907310521847831060906775944752261485505599192642821425655172054533298915575762768706717530843155182546687907436443823732122132606491472535956381352420284596023760651165520306199774082084811644229660185332915292019291416712976862345283746258732427807673295886183942311271794186794378952989268938166471785589611134978159598484414936105069065672725786805482093986172322165203415251141401552765567420979291394243638988030082364149036132166437470610434475675864227812708088534776277262038513506940978070380366985819342738588578163725820112791124075132221256668850431685456889787148652372527228335891076703283615606838061141044630319306850592011939033597842556303971658334326629536957146485381034658062980081628945007545228326515716098793178813761568610961601188355009136979987604179433854334112470521491038244771703969867856991223105273788990965057606621956973233647982394347235833457166403239976165876379792788186368752713797369148580079979545833229752571504040470382879013613763261621806117555687830559743531781262346341610763550569938368725558898605611220732456809586392669669974080584604510440641615507237843933738457091603476692510650112425434291101289104034980042270142470898710359877317801957896760743117658080985971625517158283127925268825082600740329860667348101076008913306844909316176247508013614512560392261516456931791272039340955041421354598120749365586137636363451523384361098112999243215574680996449620039822669530063626696716433140183546078630259011962396452517897485547555492341280273714988383304054735201047827807351785133517617263288076895464664125212577329230096103042950856160180184315394624609584602032944497289801016459355551767468153400973909527134926156991165360241775485025947680860145204803298761020027685701596650695163428475291748212612850995887158443139196545369271994193820274813387676097706169555411351928969051375307674179289342116103300897991226651626976187021447534199661601238476139884865638714771529956655736038406408120709303604351084289863410610623704990267998986838007708898506959381536510320895542518789719989127864819159501283918018780226415535670236163591199670112788989967028470160008603679807508564121892445868094768048736444614021854658034107368255698104585541518952295312059334581398379206391364963519065488050084624611048595062272551805871991278460920427268738007135529446548635293303859942460171779058191076615446683785781785794322187665923930277766788833005471053785858831361849965738360620342781313927195948435294430918369511868399420780198824648156430248312304859393093964051569135450930048336989005068120236516420299942801850174066827893426473397256051360081789861637683693065722620249717531893193112160518836110270672755555441087727054723292301627954786227960806263825032286844110212076221935218236421384158353364123315246757120085809276828263436333197455663491528394476379723859318445506437736736716343434423403273243944157597585770058339926235621090451154171162274790770824168958293255652927024946104607487703329907767809978368564183504885769445544355982947351647314183382392660859669325998747429149429906855308660027401738866995234755686305266035292284521636348217984814494045034091672931596059156512423021378803602380705775433301262748423905314947093497076370456611661935656197731704270044688157806285469834853601374535406233900554134915529318309249791594232101244931030366391344823967593426464919628659271312890776715871205051319669708769725360656673536510406431764813040234226202625444789605849803343966672893116174081159038407497447087975060434858386819170993737909895682683216971896409524377220105748377421387990646974340410202931085996273575050380409956945859015455139403147962963543466275460551086631475388052257074246052886857703366324869332782247412738662746599525629226659729669515811394084811112265418695038392942961487917346235978335490112017017705235780429908169667537708847176586122770002715272553423816539396938450222232833784033854689828172275609748436095778073477659318752137328428964233711516001615750578515448723358829009637372601556256467732765665356081503153535276803062510505125724394747551499568403523025235976212869927231358788824670635369038763610642667602077180918601025875951033713139778143561493245625106868926899764013907560098217739035907006780793362599151795509562789325310660339068650639247080146535576243469141006490956579283333336651812581759408085354902189789539494602320625869567683985744895972703846352788670259575550587920789435496259525525110668118793559286427174527452949118518157863589283999429239874599443995039995330047886156052107889927866932596342738223224370370282370922055200724181208169769237874182248744611426845525478836338012690771304560101922411584501515861291475990531246892141895067812658003695259423385592698128862433940143599528918934391360411675191001665062198993725867528995415657231507184470461878679159995001440947234785823235906857874752965771924660130248324283943382059057492890544948946748253992691056645740074294965490007758272274334125650418373802160987448336546714308167022000836486808408978990753379979263945656445535503068849329277196273200520944497003129443811493838275150281313635009045945626993558173347486265056126065416232444459390407213643731240101978695535467922450001510974718299287290272796441605120544401317670075564535204256719500901865239190278556864606402867783103739338346144693967874524908280563422780785660417704398049456809829592755565868947031981638025338519851931927462905513907848645637115091446195620445319452815699172227072584018128021453930847199679910113030683274142503026827153825749263993972114387096612882565969190728768965006413579647786111699219898120623335207003818132434231807216576378722753586776142994484290716421062862578021391740222496271680386511187303347059934655979076465045128758966395107673287893878238377502927738723767238691175525334692113344325694419963339328047583765702834060653053427110086417703776826326548654558364231545616863022003155082383356333574168301990473324588414997636743586999453801393809197342469255800981309772827422741684205107480997559800698854322157734475022558634845774124903092764635084852696375763257311471154614374914675744695575938203541311490914370675199407970924903130729457674050928409770134232605672107898974316985449808806835951070219641745358885094358408446878101066286878843199560568645381251701050830672123188929055842029712012309795721847450804216212581817065343691814767129785941396263204233229678165123042307259392612237748505306370702415779004366575720830456882969098318920350058501567821060694688744379681758204804033932430518580775020574012605665916514214035576101340781190632490514731518214301484690733011495048955397545508670591846661242536008850470563188337587296614800733556307870390954361738103372295097594985302033818080984004937725117394563158909977092905485163255996137989481372652769240746234513649949175112554831834788074679667060873470332944245472227480621319661837764183965192987356511084060366235748606262731465581069733989067967126333665710878791950180570969125439016228822560501629583738190594274295431071259243430270085981754743831004615549718803941034636154220629246736406812741774069831227682360289657384384080026860231218142680779023386950662824405418893526863317705144684121262374956496637920353632185386918131572960094255524547352208443885318260934614332834552405172939596058259713930052217931295267397850588153100698443000125187206146039494468816135472135715687266835599238337244618599639505959233867004968297155569768595024071914519460277239843883652771928747874122893827671881414406078748902009037012200455418286525336528641370052442905958103644510458517957311910356391290486914654969652387109516728082411089135273494236982784649146479909156699959504986805118258005809108240509369776927408806358111299423840243663898468477592957053699774804091152284993994783618672483565320061381139651972025018729379339578142095023826697504312813170666461276734511365818261151897750122367576490252737854281420295472298623139629668627717558204114025511571220532076851972598090342261813125921168892838181893954651128415340877429394971003150083111540256055929469816650209356436734003753024574078832029793373298081193409756781187235811429100499964034522635948061486707239034278998132816655050216017253767170141292771281913490553998838901072682228110424731512888245975901215883947994328093625603331567355031613688075921456634039160494944964489851289766794071174647090469187756743940326054291847392363684353247279838842757037881273552322748672103235247696456175239232821469225682862695069009794386592220790083108036001547909000066537429135100057433717933189393926269807361787451495747922623264181895196768121946695118302638542098904195187632596520217251087147644052234231369077280812081013263243562524742869007656059829328100939079322603113760607533209943237313071423938097677560583771748915152960557221170087844688139903778743907199038296655736920029507443510785357127255890214366221843457393258692028988719638903496595216916125000283331518553785884690092982104556083082597209108804356804906532513397805907466982817572495236605685764734017589926527135865693495033948672940446939290299805601824733975206462983722327957504129302666255576035595913103440066263991416852975179423394047135936049027400373809491687116988722583063031267654377441203084596450678210888243488401306195761259518207410275591932716829063819826184353174319830109688746082668896461621503826505542906921590564367672181920616073586579158704891294657012255218961342466363850626461391431595282095752883172918354680867470967539734795606189477867124723516005048239033072761631892817932452125571004073311100105751076272947691715437316844689009043537779075860214345589516496124489048592239389445532413028673937035185997835691837052528105122350468165062142174976765746753457536184968554681279677005571915102350952886970664540990796833262855390126442888205145491067054256911226432925006323555568976348667056231869707624249300589633812465968250772634736205658218411619244948541928523463215072524661526541665664823621091800651939842374857712025401532455306550525828599973014247942024858105802588942084909756914210119825520163322933011075762697183456322179898388334612671444293554649936691691842967815990918494439135062500005871280418935637273402615668343037044657868139454338708492835406401494296389289824999152081057603846193801021998091974847995860855672653028294280651942937853908871946134309976599165516759086868175720224051761241451992272587976090133224375839630408956764805345088103975508030078828111720697902668648115461693647607789585837255587595455431909180134757404124070112310253504081494309252403952854692745782122087081631339163389828191683859158128516069268114895705735055645328624162335466560735298650114897208739376489181871331593023681926128520258322384238225829432228883249095783417582392514455543999704328659151318817200786171420226180130452156025241626763137246869683434433767302911695915836875018052746242716339878086355503258541720667070923334686789058546810027292114768246418536556142600856194757537819865018629949031000266846474251054019492828632059030545827274280026430198403621099230877377219003753093363779517923854099457911106878963516469395910182050167342245480788244030134100516168757365260573021570944552302277743073927289306540515386836012489398731565306179698186296818729564710298634733213460561694872244272101176861476732591408186034822571944880085732062881212056302425754440065655732069506932804278656812687557547937442118009363696477009415759012146110641945842609290377844753125134797471493355693858431492050284523028405258760019781266333081606359761540886071114637476622699520604730016386071129187825975183772422613596303914445622841122293417640901279512778770952542021683482395105267506060044898821740887761082125710411409800304167331412529944912448765068138628452383555712025127265940199195873790662919619322882996630117543679358748337575073711792151619792503890830548587244526887213025630876373630608121412801302727344552713300369053382260425072245012780319461665409626214976163535623080482500754077835951211840134392294650082893381960018918326566384897632855958630609971733410849600153080751012236974522761700108640224253428796898064929819083529284287514243189939623254749545840300857070104858742938764596676980542684969486459669445891066882149868261114258312869926476487313426530764086792161756022390053478244797264767594952294705667120147306232798768764904394380202685416842952778380503994483309086913175905871845180370965391840481597918383418582377137030541354450613041585902150678975462046763941287983760613181474128712445066500036358584681220362756722405668360457951723843590001887160044226772688057467403680479839030420781483954486503581518301456809832653447008791694008726411030802735251032266034934165155283137256158665720968631371428098179983486221035031744608859434962924055638726295121419059625460762579515107665143139074812394376220381588025309112529577855927435074573452208699750578299715144017238626202471064626567612157496890708212058183435240064506421219119096053947626655365066808711190655019249885265153843683493047516822717307229730966173240751285214205675188012419919843491200632339821313728788161862984591468482211290074453897930299783157191595192207219173385282869096327016982554233482763756032266166709919794041434866396464067316184556151058541667433114413279403645752616405847778052532725888072631762466035712761600330955040728640754138068032850105802311193309131848709635713923131465348356669509082956621060466269138984906083782559127241824772239702818716548422844089250545798391703178061778121500958315273249825649287372200342248834907528311658168287561476691164031536948242846218927825420124970320584866901264566886582330948767070673367240689423410677913831548776153024116758123798668608203757982773921327715164096808997586456916874204600722775794310851438355848989332055734063358956297212198740606469390802599775799754816935870852499723420789745625271368068731373832807898790606807837835575022688512813022566963166970934928185752076749474463830390476439028721265332247781940087377137393241953804706830977330036282267813827998759080407426006181956198833210047968957584695462843349699682683665023483729796922906773196255172812618721160426628084538600818767201463041832772330281259908564513181461885246813112092802418679171621328408024869279673211623506358170002209561824869984262741382583898414651269212693781441384646248527376290428260268552625847197535968444396126855643549531720551755385917623286462912065065100995304110706747472244086069235315182338946034871444955593736820228630221859293493440188443878015119367189053784431261111595730170511943626084164048493889351130632368311925606966248933555129611228399902937808638271466681279975799866789043720812950049888128130624305106320511120979899053214137340569843884504212012437906474020011382521736100558217366533513316288456927644383306285225358597069675261449500147849778818297399454619969569334494995335363800272702412772459595636195550575041327315083718537323697294258421529940909196147593581386369519323460658972551776662025893598708721372010998397630483243603694422830256731148722807494657255721759499874989787128643445383098678677795741567018019264541044010012791146680471383152590879990670821022445314301295091699907121562764972140730747615216753322608096543352091777259580254854316148854455931900573620219396078051601743049123005911601296024692613289702701155515725652145175482097718910424873247419147928958266759577795194822160989922739672573954416064560327841728495311500777388452037986660198279606278794307644528549181250683177535701831884086415924038176227611096517457001989053191472059180600549030647668540463675693061417240351496780838024739427411384206069565941696081484541164075668054711443893017343773417227682484736923828343124190471228932612745573743019653580258028033438168218888572088154557493900389741412109782428671360056009127638194962871164108271204850810426718740085206947679673237881359854321687455862985289331739464592942863484080596923842405425193588233660464341215994346343098203793146319679533532620950597649878168771968966641860851558577938305424257357072679155753560471968865465057684873351790559196836783066997516381069093999621447409290197286988443558293920481663039390430472715080987454863658301791186759978676460880118485071350032739614226634116325618015222478040944014511956155110637921634882207986881840250726319249617125569702262829123382719749582743052833243688577265860254113449774348469219456626159768227818059861711347779305054614178847560008062624957565814336861234772858467233847674352721896097016720610109699353689474855400493041763824230475250014252340562534804295516700620451100825284632912454453299896270270486532444573047209477932021478198724893702733005177451921655367286941632814768105065826992488861494312372266659411802549099588138375049015145682488726752140801623268968808101227374575464389934111247261172265454162284273121601913699392663138302607393369942749787755383906523522987512576116775165433500985707464382471823552905237125750637013974206444994878280517622099408141478193873325627057971831684888526427385515202565689015673360001897224151255619485115015597524811899352575525142698786889021277714696115538349213817387577386059706820872881613391460458471675785818237911810354281395700084744059879604736320203319996526397718119864350048166744842772889856140664116224946495581919276339033334835421009076177322979761798922568800962619685861682468671269409020337986366709841628264714809862618338845061567038175210263851530155177177886061886679976694893153129372568300039785675723657688688903950571433620963588301138466887814154801361521332015859656364189571231005068994618019750436630947430806345254117720522639099250770895134101643805616088259063483439687806071367538049253890425849943024373936785072451614557797006603200769294981762876953234417499475315593459165295611483671958395179352145644557572758825428246561930458549658574904162047902949892238308211140515299705955271863784061352171706152977325306548510329028137268010345445535914588303703741649893915682628478969184311075957266449188625987369549830028527063448498460131983972736528669192585543089228744099267312078847562591018474185362899163763160790339033005992580188539368426278394894508987831475191946583115372316106718096125840348811334602608035449912637434772975307525449288343140811994327814007386787554390925769889974770416545664216440254564748278610321585970609919176316211973035599940261519619301591540079441367883362045302151656346791637609395338446996884923325297356347285590945876861061337292571481110057324057409373701581899794682389975990629661693398171699262584611451658650180525015784986351623842416187786333225277344183246326923466055428833340510191098696997845237048182985036395711674152416394990483578098231230690579154044166887268039475170818958611282182677086020832154714675838572466886608494794771407516621027454974316971042764119042490414197496945032993756023886640750957094524671757027139515777525982827058157898154196079303895200618920995778719792877682508892842687730901286617207343820000403125865333297087909440908005540033257765653749330326167391761938855439571454305359302414343736324941137046256005332087234908785087811701351834011496583859399131284347864829459331326431674030723569772116983297045698642052619091027966434981524956994651497737236615604577977610902598285450932675365613235508994739972227165394581727907718134436306896465179051792224766029449766116870413795098668238500066935358286769592761450233545482891184257931743183654499651728928100877026028309826207630049088970966885751940292128468898988270473917025988964479035435507442024760570690606713746858195183355793683331517204112692047697273008277017314094022817033583553460247048158162156361574136695289716392711893293318359672448241763204784157597006716663010129645586515010943477551423536540614302731923434432870338921349999269899970733025534586325076061495952642903324974351760927295461039491148641972170767227661693278328970405048177589611006533307042925601094650517405014926383807377049035714360149156477090606971695725933175643696552885522138203240269718919754395297473001523070384640206992032168768420440730570780109478162366288016074681158321692554424078843784612855748273252211404255190742307202405162417043163885529996457086033666360671484331456437455739445467660968265623741066868898679662986715570889076251511918796353489856893050322220511361862389342404422468919144360979638289831555062236051363632567108718015792011370025853006408002964172650475415746554445945843454258520478155488675665768825488702090087750499783724604155955244153817696530122602520556908698065445150465546504219046736956674495223308766393165550520539478527374486983237468590546315212630808330294998149053595050123308816732192354553821361720793526203761665500953469318312569071113491317614624868886550641459994380997631463698031372764468679965449449340614663932587043026334837133016265285303737828611556066035931699917979034084900845555063004545260955844730019036581294141075334056960381246376002661452061257614197186866188714415397855957219350380609393027302774157822553781713529438151162164724156328467549695636849706120891468528863659214887342770848111820178189024012096907666985858254809668136691564027205052053101927311520735883757317842288255327728373706263940801789434025674206244393327864889600966176287183348419320900223732323104304428492970877929874467860323272802053632147300455772542506911564896750264715290676339490270254714344604640699137943808588384030150850288418952918391644473248410394962419286365973059728304267757782311214545056527361586787664067127971640314391133325976032796440565260348352477907713385966506849092886390447723434509723717111528627738643565977628054916164463497735311185808696656229354661929442442862409650855744623837116869873177211380041582294153958669734108265864244065654070973715868907673233413706183693277585704424162537778507328266506296187868264572593523520419910609833517166509423608693023768875870441934835337347151603922833881372939494450899891851693265881274399437490386531051821475291986147407560237127000959760334159552901386592847969572794636453597019150571505301521248444729263931378126698175733469701924689719938413868994956009115874596898340314844546457145850505716426143695181713667972790218143093534942030826275982937463707670115542563471089379900862544298995336952980361736836155818651756681355768982159607337430034597073387817299272529280551598511197999173922988336627415273862599876257487062538840078094348574523721021851992256828455967856652557641051031048473205117500947338650442583550847634267432878866749050519511658705215797819242835559031028099095118826691438449910868388867727054279215581355546157489452573195364454949913902373929127425833892481618412201034749612928642880868202580678352961685960358908308890445951942489528757298072895974220053825277489648761996559907939104669731359347949202421474992284006346649370145144947874114030587682167609774252677789733540785002436966981695028664637779970278088468023481125517450540500741098134936123205351115570962179624781862565563012814697225927770059902543465705989027168368077779803724901709749404217257976085854592423616524285325658499464207755674835392713101724210500152097567330090631056528087302145082924013131941066485891274318983138209027640827808170371795510420205941933555722389014789791733535798628019364027949970986247994699198075069465365559510730283908064121939764540581656127737321674225418873362049742698482419705152135282571106766381220939398196931478282565785700434460749162390724366930147519248275557101949546532785497201959380857204083321403695114302350133830458009644482140822391537356720421183673715184809765020279069642473399637032549686838576352305119312400067840243926425496800095404650671405859659169140632595614007682259408225355221667594683980043388632852127671165240859527154170026641847426924492612351823244827790092322488943468722827203516057729903468075733186356062294910176785799200659894825148392219508482640992689397446240414260369144214047765859835204293713029070005089262496576764218333923297520056417941580975663050552092015308612851288369055985629204627975339029227770347877236302480231863742330136346211639851101382390702348190539204163478245796930817586584923950615003063532807217296281676520871862044260820557776253161707102887650190932895880644191461814398835903104654319736088173224962452765390537784436976834915005026217840570091697778769772841797670509179291727487733253064991887013119402625830045069393159933010210374425846966856038455693777728115368007505273157751352748168820733014799008406523206421536994212283146117873160501348245469784306597236200145095847649856553900253515394624485446170214068476334241396376422070845448121537581682501159591165112186633385167064807199109234446198518289683776078211341969113475198637842985818035022975442059291455002246125786202125895014858752671630830546619991194977248511411689591925411044607366199325776473763398808246753309012127954589802210471951919023204149141615507764574638182698033638873380800514151764603516712852462654856016656206749615353073939759246712995835124041698409756875027486198069107244810551623743081068649450247932264079968081787826420331188929461676258162259297332331004795046948722182226665790704885565928378413143186466092591240780591044642189207086720495139200460492865824517731330343097208151037429828906106447204395207564340164126024541699939131469694860538200234119541579342870494910797434244713479419432702909994262319655071667350189167858798039408377830550726772369274359167660877953157167671201555763273169788320448854961842262635767925972123834367676963720448105686559019811156138115036184602710468626919939768642136364471593847687439102423195944062052113127037182785462098429329382325709124291975846097060055430243073278656791319219715728844609808065143386150671274996298697472078469499745730376816174273071385736394688691545550871378523228608266763132780842522303950485444041481269054002448630294759722582233804044878010875421562245561008854300040513899054600369524190257525833468314852339629442402269729434205745144362853523194342901490825528378336785559491451645845492595129659448294041504881531999646679017695993556356370386605846435217730324784821965549466968681336156548614503871531496414312301512648875919948581443064554635287327600948971083061592448732547404610506226191913045817517319077186407878147373983365762755649317750489828655408828657810564909556241546483552644642123198847596918486589664666095933962264777192910673190318984171930139266302001562245896476334641031270277801388728535514202610754231260158423280693224926219347751804657382935887282454260486213394332307634330558901596074025014935679624989317204031679095486671206055740362912116543286793231710274686161771559735464334666075619063472128558519560525592170345240313320175312617060127904133156278094685076813047439291281726053587876994433477070618670192449093949974016178045620851596483985464093702894998380109719204901583775131382032298777935651451374367588561320997664988653888075549390603428001426075392844543543871744310613004585301327364241706250057006666542548940653526914232840679627245989275446395672154889957809879203975956652631155382315728987619524707673469849987547658960236917046550963528487839698211516985830403887123824605282766752731311345551623290010357631914389750628766405289158030350775254555456422045254436074371983240086136214457239554788998303313776560731344648253998290075021806110245429686304702922067601107699891415634358346350907169852866078490964983756504136459973814452386112858080326838250596701568627313624099120066985003354702323285644346733627426092760207435891550236229213531435566872209257903899343584207769062229746905557041682540659135859466969518455711032142334107911173446960218629495858625635012847030007603925005178610646854074109118607597939032124344438138170109769031663047490590463894346371922777389100635373668889443719396829207862992217647377940499838400823038737845337661716971236408359515155891099706233621449606442296320667153950221915920214715025769857114417140811920128394114237983631384186638891864377776818016381886542721223773595858682024073724688296137251359171325467768248935640605742781894829597527480729674749703150424438921792569751649376051572220559658128354702104147760754729581347595072738155499264888253564052538167154288294015840487569041007473525658021091407677518035519643959915333850175288046199012378492565489884702164288286709685601550257983881863503374090072519481148821734391409782334415419316143067366207211459548126744624177761566937083730018693094191050083366237897544467241466068160906436209188269537633078179206251651941674369473715442741020156030657669713230567269304913650126799791407312510853160722210658800115179085322739344759030730800927316209908813826897489881977430810414698667747138456313602876228105769248494229352738846470443644993455745003741856839223842968322933479838164553469053903206069843524045477307852544938232302600272104877852799283222905081026320028869034802550260166919585952877445091445852124053968372239741729889297460214650964075027399256477348928770971451587318172828658996708844035678121432143161247345693997404810719231587049897573904682065975472896601324520626928930977666452533254662449579920500725247047434925551584875951977882478497253856321136523787817225288041328912843059595500254212531093488456632202591497053574322725889817860734633737943600576045558838298565072235050269130816070705951059219796224912640020884606147828559882188608709688984608806374537851954076736566996517996543888406281629923822953538517813852935119123566266204658057600183546488422811877242229404099545482157187892998241514611653768508794596027224931584680619876193831640696702380455174867536980074235571220423956978192950596596381943378957535538525374782992828985955324480125166270106076982830672105568934686081800411349402024478234172547759061989119590774907938813198093049384081564892262243349690559355529382181197794571968721465601959524902862406512539801793286022514806825319158783592397342447442253322001602300030215554541428740092225287249400818314408450244988381360877929410660325368732919109846611046424873098600369799404074876666065638295202996795294691426687569801560748175926019040331851364490066841148180988626914146573612910260045209969317322012107649129917815166873886706831851837187573675644632503216863495894074184373143799328104015568092808107249114090325546217863570754922147941986558584725672688902094422229522366769645834047878365465142588535648385813056644303585730264556753116089135488971611975692644420804814001318918378289115464944421568619544324101696225205588402704096349638743520790524852003971224931409207225146784083978907238621341918533592274979179714313504801998069046009451266675589653416302259612690979670525397086614832766077956215348364597684706850580745632630830076901597629154548897316230211496892607706158505627325269255757022325596789523237384888849323064121774410259117303417015435867362040992782901035597607877959544651537305728080533036398666756283501158141259790456321769219107963002731634817959358389063028840500027087715954714758958153241592577089439021369323099223450470091904128088296399519730913829312670698523162061968525492323659024974781166444695279850569820745790722454595017615243903805125857590017736419556248171599645566254258384692651304772512885107096585911205274651092060256929997134154963095520076451088618214091570809163715060235501443260938909425121534288770147036343895527139760334293836134775080095105906689357688091977034238405794172409105143858858766087577081779816584886675534754913151061154653341452842845479792046033831371496323755881341444542075525550991166087773734543561415355896403215350746158129519377432834773019774111407544783791987158356968664071593793655713930733153442225979863621274888027985127539487939234093241340631101338178674915423245006563969662956785166871359469251721358206122600532642174220292224303256809019540777712510454952202708600027550525937210613660975027977842566946069901113259227318756543415437791221733022358266135255695441896749812017877310259192949363008165269121912999562762779863652259208511329015211034043671558568589689280110921129323572783808327018073754667616197434805846402058681925704922817810906133281156732860685250754443224691034893793800366051945996894031296633623911368663490779399853412261841254266008913566304247794881333554096052095520839117824471533015815139244940536635678516665018770806669517257653775411241995501008928507082766753950564948883734927594788051704907968964264463999090959866792644930236909213694039862555793319916144067391140097048593903817195239669538915129264308668195788732873372925272428860307815791299246603340593618290470783182350138971311513579562980811884774542541448212342833618597075199116461625656463095317391390058291210738666262202694970260142644739275015335131065498508337954321765570965465458039220020349056744870386430659582245746316651469959498990839057304658984542339556230746394750617438185661560368144085638440742435703017355843112848551011514865828408024915121541909225143091006698256548562003122009841636462495220238288297360669610624399820254608080939399964295083003869611676292738299274933657283456110734738766313559257916612136276969229558909699022491159813561707806913223826059927100112829885266164027481663357867164314352709534766600097067538887248369050051556527450624347311948149271154332189899230458400007598485519517350031507995231208490081724595953751870936425127492620783353282696764915444985300034332828991858814209048213328662901621238685010806528081625114938865421621325501390303418778956612471167129808665622406098190691782169869951720534081037912137806484877528960546105652868356734449341271570271008926799946805416457448695034942947951475070088366430122517891314562322380955676420291709476649965062462431542107835050996452969498446296904754765763103205278554567879989661197800938431454996919123238710360737629111321359301978010138275840774039540366463739632122971946098284705454773957838429953427254506607633775940825188533432681912293082805859560671847876123064270835425103984293437490975684027331340119962424461893242731737580816098840785036259536469317195032703445857423114530027765518308973864638200735048318351697207462955647629951238071014780547583844474667143886405857796190416695350577810501366797619294027511225692595024310835679781496942887285263705263752978060982148695355570485154863375043195077062204950806285212497197163913568308755139358851000768518327498780240278796333380722851021277846415116654827134566922396795831882297940893243388714872365849647175403339376212263003980973198443503627856700379513845738226708119218405142136025076707305670409338426921927234484964131108668097164583410029334448278869059940944044040896210459898366855335804806055959228891191811824733024590086317591460596123435040029321512763102608174385627457210310135061162285814890272558793582546681683195955407592638221355002673011350842769679388790798266593054568166578382755517997728680634782430283124263720154488909187673817045768408170486897534848723041717258336722564905620470487273971106846824542393464084059295965679771162642910550444177797240193799106980639138419578707333825141261480986940936776577405837632561641058619615347221565330228799892806070979700039516731321786023351465580933845484963107360933228805331018885730472903164044878433484689245113386574238130847407456426908105419111968684616130386487009937695272932964754510035221251573560081799719785869440924385094648220019492482610666728531763350398477781575267726927793262790041696438110374764671076033796760500497256694030062691034074391871081478576740833050298022247705926119548856230722136245022967675751970934180907512745174504367477572451587844914362683737418603165842144885619333092205634504616901127553931998688476986172362516590591309786809381078907996874991510756432601953567401638166159175518628408465106708129117550231711477815170796764980172073517730587071012545155378330620604225236682738721684577263147623437488543232658168969946244908983744428062485955786562047745455246374163223368498367275983785874748159566357083980266940523762615043130672890523585362846190157794997883185877842771772928235459423439607002234618232756835718908370070391094242359569158383620433475892834373009858392618685735898288947960771360488947308369067388946645490677226267103285969315657221343846598068318633971707881629906837631587305758036638301929189211956648354403159366263055257508786838182156696136871377654931570515791374784122668988357850094084387274611739885168132008493166824165029164388568191267225046272091311263559082059387233300409722186739759593574977756342845931209904078723738969147980901480025605123345558577952754132323103014147434365300344525700535183737902549259499769319185771953348989731783642607182569998115666881366957039814509982435843920028378304948798110313286303168117135516634368094623140292294215840567198154067467425179657333209705131619576028719503541665480274182132011116607888918378211380110065888910729353404337702470230161632256775439042146893271060735084429287690561655320488611088169874760472432641080775568199676849299474545698452743456872038863615684416395516520871885656334067670591532007660355331898947108716870687885627640435145344965678821959231488389478356066019117934273970981795763891531825686168840535818605471742195529209116528853598968616179082358753480766800987334829691307478490738061583910746966633353062918754324664246407229827654695306051400496278935547346167871539533339904686262099423039539500863439113791272508210613464602191905681037224792546859919514697515175864973225900300353632400047340980675513169138828565102801495616238108357132026013764085299290865799474095409551337775959546796567002079042148430352110754516970385608795568365376255838283356419327601179834663887908285958054335391593578512122160976312584226398329006477864643626467414113189577147946805882241112498480108185757933991600059083613286976100608380606750989580279301436274605443526050365269653228126794329106838840749471413015291062686359262139741828364709052231655783945823504539560861851780215158769892361020065943725946246823443421533266725134390667679187899848151243649580806916841394321024551504934673721820411875403087681989290569850402486003932133534374201012144465687364221129264923642143668822766672112365649239199770101688731254585637265289306326184450155709877293019400989498811053382444330843021845289321993826252369208650704517896712763780257733238528826816990503571227721912808597104201315630760191881621738222151345753403847930021908224005527666336388191771135140788584189473624924186084931726448477821666754734167848735219404099403629726538308656184669667961476775473582682296640977685983020380485617623479010789846951278030719836296644186755540750852492405226591353555413854750720916622400636343963932172289132850520322521041634340453530607201841353924176022902873807462262271973898930408196420314497409828056198061546463087689822411729115969616730729573606414611418636513607676497275220271867565213322098810155632008158393007143170177939689120374731931356288506750705340740239874292458491023930098719567245854126215126265195889438597333093399400203429275136923277864898552295204261511414547519248735214558485021222888596633864957979704967608341299225654711731265002724733621705662644330542961856755497748783446465559527819632432762219010144271020322830595330188942948465241131356588700713186571916837742134021569516315100919498889653323310550049251007447197612178865402769649447744536812519960812914820267975523117494425349192552480164625753409663753833106455342332623614224121354627248006421431588649183543159203089407588506858831423305166157381700400152544736470909677612139415531746082160326053926539686099043941075640717280693560325362592229886987383645228522106004016701133293233872652585067929164030065209701048041743556412750836120401908306176243632117140370214122836281998780037199497078509454692774836362296798400691057878684053916165194466319629978275020115796631050561864509008019849436428524486327507849162249845871638374741785541078593779795670985733319671320118729982323750247151422977810562448617122096353443161270753969585865637418400848517098428695185942538992657937733084047133036694901330154432840471584717605505495062176007218957515916815708727184193747222284623425102438441399938875488846170863377303283158229886583503821592972071181878818550545206552762422393905173390854366305545205549300949335450870889961360608361634576155651896241818187995575977228863699559330819293076729092855144063712067388727982171298809819272277265860567828653963024476269050592903069923884468644211087584066394717342419118797825844707883811990312694290810984708851532433720985283848888779737953491060999021399389210426566377182448665728015828417211406287969105827549923672723707580496428171903382124934064930795745450885398854131530235440259692033345286751483029718321307958889569446683557334582412038264017859545197049152834663282052487075948954557046354320905099222118650243913393792536531835224932001196182930666363504209862188426421225546652783491219110135175211821321494188092746442313992472663434562373115500932706449181715082845246689988737223299339814881550935337868494378818606475830017174853629832405437791977586746487543087373240496615343352831009657860218586816938476593715701103119268231003019148884224260264958881887259084068473584742533160913180538251465539967360059480451137812505683466094264386620655927911036504400144506869346944254335868616159766174387998078617271063008447514844442565320022874706722265499361348207558985163127225015619461641440151443008569611023832930315862450795479403653112330085248014912075201912264282200596664575556964293435429529525637342531632929555785698546087672085517995406512846463350216986226637359033660347882243249703861260904065416390941568888739536928444998172515175814012316221039060171650216139118051229370036142936413742602538678152756335822226184504434617336799380722594877521053757202506526776917034334731521317207734851485604687920241493000019010653222256824800402853449148188034137305141064157489464617579203491919011287849048345231358258797766973046084930984208484206789846031748154624245812991650021592717052521617418202274213925605193591506041171325909389953022993757612536716724243756333904254835786480563700261192850046633721552642064426995745069909417754058602502953809264148434878932073459118347957468895647630167132852147739100959063404598103316992458849009677352386920949713557464997079708554576295757888921238781444827226987343200782255069749492410396470596720186103907540995396610039069078480781063570619268440913257223892014387748606771181078423428409968808385232944584636196369445480188932012436868526778644100937085907670252693920257821152237598350691818399807965017844039460419684564221730765814472041876602987854896326319020981490625995862527278501740158827838078368677696804860129556406765922451437813394354241844770891724516815476090911765136190454436133109781480365027265971268050464629284676671066902954106321612925628141894491771428226110473864570465963726360320728415015891803314700118498462112539355925224144657231431242280457711086487895177289005397525890882493405804865498512627200999247088480179058070903507978174901129902207644215437368907201327224412938471945266888454835537368105678300719744080125605808518265999519563039831921164282797355769880599372062720772991058652288683642181810544148952166772909606075164796251650333783825822386577092103944342596930929631181862439294224090298983301292314197011696660101063756760310165425534192950686679389076015165524038764138305287735210710323346040515224754081014780482967486326221422085987497062747133577402186852485002690263001961685304688287879888052039255615158499801200875241233874601320009399483942056054040752251419305519927601838107472368975931649719413952098637069947409167564986157736991077605095336613070897998841420125464682628186576899481997503310161239755118402544158949764864164209642285553044429522420909541099250779035175454819039504863890929690584128319764735969614796669224997875140446833452170863018865640050195213259171791938751590939505749552361637178228580810365815273692485374045809392786078375167887187532949388558509048932188051585058821003557627251908692326690132091164020905800077682563729295330711774583318874604099571987372874935934969695941189950655620467947876896071584796757232122147183271406906010427529892827371678043788578922542655977223751811014750666428539321175131247353519614755418609131884040512414152734175700111025107322084953164109277701878303397827500844639601769195792946743158353341572201083536807925623434040760957709244427431871784734459537567862233215226773413990314473317553931560408607603861484718521081619177966063312251962930363368495956405207398239161807138721608870665011433611668219909441809320479489284884929093756880200781270653994992309550583107693677144934196297577285523447953324223379669729731219936551796122710234670717268219005162258870401287384783073753049397804642432128802788354367044376981078022533257100611604912764716227096428257297204347389830502107996747047636647901469216532275851328679554770744641834155822238979979095690782304870805384244154855911628249520923272783758773500961845752387807074836576869689874806248425826146459078606108735459714310843005553582514479371836713608494312520802002828186030984737073717816787464419031230730994499627299228024974611112969988800871036576777864001871819273165581222961793430406585142244183175455685061427211245952525507868734874750163586858338347063351275728127047575491863954318154379385310086795161858701516917734879228559948044976662959297669120645043507016407297297607146161053025930682717515551676108532877306455510852653232636024445155498815807346610700930659608406313381131148843620854276942518051212280564407996997485307132812013898526724335456015203863705495351871666262882823754769650458067935921254332904596450425125334979977310067541599978239892029129657962192556307190684181702502814164536040380130475539339378040806287213910826845457740157296597160980972867340011352478754268293096720407516337012529529023804629045613921322447440861976639875347185488679270307841316599458595684179166907214372122373600205926543252224060856435584574520592368711370558777575945267566104248154850735506749706225015337899450447251393618259723480257832014760760548164382965837102096420968679255387236877627395471360739846536817858632270299584921915561245878632027443207667823233907722415192427559495188085766377536554361207987781570120942999089929995303149781631847910075017090292543927396352541293663423209648575861969460121619335626626361585719636539977107892234678112412976589292546511637645771385238268376342247986863391854811135327358662877977671536777926377666141133273135460970744970893937660144652158204117471316064958132116857854899159520304496548261647124954542114585008043221119673740372987899981341995775394395785612966253037675525419580261116481160290887632776421146805878288675088578486686814820999090837513125520501265519549418453349515777037172663377184813363332399312750886737993497467239814494396188376025143402454792056596586470267281431900637798274762064108450548989382850968422870796707579899969030769288416471095066227787523536507050206740126691971031379527877323216913597681479850036295399637854163396864168889530518150346024014929438107097722318034435480616069027561736662947811199059414885330537654965738882215690152135017877966949015949311167934514669707161783094516278991910463865950620454414982214056357210238647065884988598847064798596821018009866871018651639751109280773695308488249982318689942225191603113934829488298346555757862791883350059758269722082883841308293866397832315563754400727617407273919607677664133212688629804432703837592811274384999127767639592495890618235066687282684657555439094165182762066693164503845128261976180534905373730704908986138739141931337821704726103162989069704795059797327115847563391814950100823627687633494050417718547066209997934345751206032701075769110837666670179126903180888128064596353829169874700410183189639506718025137244658913817113834849326016850901651845989679032139956292396852150817687678706794497219175493593680296745835160553174580650295477140363989434367431339823816898740622221084127036678319284265857111970906258611276004767015487322629312710748380924937485786771407520206308239103374824157395606651318972977010088673176775811584722310073928956250422648462945134518425212085421996013157675900390444579538336978497621501993865599150497576118875336252697715609204486899119402391957631637294759204476938938565511838980992353606911055132197708809628808917345908846075575949198725954952970470143525375206191218694855708195898715369847461065614083320668912316927082388968184444829717833657265579854545978234290157171483366929691177030137386137784714753001284378263664515791243014789389210576430162881284961352687102424288751840181880493015932941317633437522414054639296779309494874031229359535327086706406486453096462325244425306393630026455268782011085888161682783510395299586377148434998501882393020555814714802044110671782008256341997333880857814810699961619288959363902208781337567727404869190845015890280971724490912893128380389426956586203707171625130460629998536348495610024397099067145959734401667681448781704074613883266940852240666188044019199923694572967914568086847116191800950846243342111276085405477564175913220370946388254144694854353239746360419181986561453992724167402970957157985060599314339171051610817233155193652387799258183656176276461293926251165429436245066632673097260527529582234372436392116806944940695516355042206985232310924229056108972458438073317074456048529235973154555794291856538386261757805525235000094605406532528593160234080715265638748188315742299797258789293142462968301740947294082099477730603393525686615689119601115157460286997885201855695125240475605060375678901837882345274486041231277805145896912241931831014603194440527447160389289333607444357234465498588083774737921531218141184825361345642642730764028293609695964092356074989761151774064142121515432909670875748867523045721071168704698816587351656122314896577979681783692814750078638338948474452841070682571667494596657666125538105665607837952161267363954676907352561367468004484122043439048047772160273555472121829874674889677059272228621950280787270466768943383657936331368603803345057175126063326676539845370418463855650253582389931422624617047490233440002415527798444077406867000246256025389311637683860613129735816407915199227374885406699416497210668261848642188768192545822128164887660164123048586755704733730420181693129399622044212869624031424148422598756377724211900994574075507746569143889097952932152637715773137672738993015085677869443808844033871524939195215706426253329617292123344595727127140546906273648611578882825237037713559424840546732383917041742598110609335707046837837185193313629101981799916271368277928361161040923158740689124394701118670869736946206020694992044929135076808392788144607139174161028770743155843957247049420852006907247825424758899924168058578063522696754275174876147403007716318318969624724487072593490912965917530479785223073684123298674061275698786152184381645026319244867064825882903587997250683395958830040680667752980877819463942835910363251386761974482583949490111198699130712369561035790984189052083424902107608702746081105356228725546375034233906663085278602916499156744353668439166382627150077053539187139130509638291165158158209842416707797320697115023106834558300996321522226581002272314340686209355935386422147189559967436098301865164922281541425554462529927236027612235478519499532938327151839888743973896225498637250270247410159145487629815398814829351884292984266589800862795703495712390125412448837870945369026899471278089650261611317843382134710975563904216147813147914785163248090059432664481097249862650040371350785385194795889832876622420766836060617014229382937438207010276311318883915100082788909264478336865601156371311520042733229296720617424365474115558156322886978151226563158583864510175017843315166731581894095762451846366364582830175103920162685113324354626491869074299035301664865165601957784451864374702692966402370747246977093712018687767227555992054320167337290199941799956910748004884251005406813447748286417493593371695819193971324180969460932045762668580393456790657761801431910991263023719979675550125218802105054907845529973478434248008532921043164654923166237342671012251466723414492785463777576281665187129975990360954706432747289763826148311611976716372563090255290226535743191213407961505733071791225553822058208567121054654806594577813902389296973695593740559915585630524996554008709254593856397119485650002584706834249960363649462286493744755304212094062272669716207703105398143765081867453592521704651967612285612527966610174583347404587863161506180985474369572863135745397785587262395047520587844171717422402685909975089261058826226339212919859750104167512200803751465783882570777967070272341274550359446184477315876416997187884770447733317765315768984002484233781414259222998767181511452032845695635954914028325983853419328555900233913072160973230252843623998226285730968257366992513598967693939235863913957694210752831925388286379090132815926101643939472952755468084193800937228496052416425622811182848754606567627784628240328868088469206540523237452370265964133262160703664089248664654587820303734000274957987688062608506230803479847931834832645507132700660941657752441172481006190195893824640734495123080843486337480603243034909974591837834522254697752762405775685346864342176359783776897007134257429252584623594754233358380908269220830705639923945032950534207382423746278882621740475988100903021041497269203241370328633811421285651108245103006557585007906952327879755972135382673207819609006721205037230467016479831578539410974773883698484863521984405254557204503586950540108968946842994849817896427165213329183066397860354367707730563210528250255501143615310797220435187909104024506262014372793319367288744683887084725230047128722026073257681985513746043929058947339029683230063916863859759835742134029688998815076149097508143666025509298848669991505975670656337602725908690246857829437614144512873313500713954984292012253315071061597143192659596976347947385185198528698000100935840051357678818675166444607422810810662048489971007015821924973092395668762316172203844368263863609034816859833405636129775120479238792631481820670665682818254750952129386428453295234243207206394710041695663807137906412996717234895546367510368089029020231473552801986495833338787240848088528130723969270593593027599095808464944620668704659272840941510584233598968096669062861643260235402468837201055521775954457652824461697044627065129977741060091020618845059207184140678868370215368242613279980404534784072951423874890167972577201761119346210388448289989646728625526637243044292645776052453589760851425241462145415617307941618427003877356490620081847982687403250687108396522265117133595746421341405968941036575636578913721245483439532482415641247311204591777197311959384858247486715705779167596953096310868707367821964606345729752202929451834177941554253820177334447993900255508024405329956125929009605544981661371850094102016081401989417515919084798686455529640308495970021887265588542412736956414896952574845484784186941950837076796785996098503117065895597589415719688077644619416748516062629926091189132741360716098839693619853506345965868538670402788309412342428599614770279697820578046686718606755517149994318231157953051874004611592275173163799042010159456203535826209536666437728992184476419146972697755534039899467887405951052198651454117361588432369988116138894133653202470643112955827578970033130797482094360569427958997115699257042694890824117672086327584763438199195894666299160345995262026529526210675189010158988917097142464267670079109856598376133868318760903254628490158733407497210654696323744340231070201652047576748278653767450495170073243527048078200808086130990672818699125579405721053182358044943880577152276792717455934583155469118116136977282301451866924964429729308044987148778916423573804058608975404247135290277597199576551430551971125869160061479359361035045235105243436159553256734996669528938722617932567828452312476356146055310105886862575017879169089080691874439704016709314024791194687361796240041554927461941950456310360372811058357760607238112787439458775769857838358746817532078764666272814349600075941033664662966437237623653398420323317919301948728487858316096334781828372851277844841296685032236354499959528000338406561587777621328605272255793993549112255203148941440675034725795906443017800428851402364665726813422174421401035526878188706486717600913025545027038667716337478401755212942146795640962631373344474509538539467409530285948793977397166321649258113489659246847103378537935115515873470526187826027096087435607546772791531530647841442820565920907112060924433724804806371310933271380519324417937247815260988636173608627049978202727644699403077589570581181919995544058290508700303458039360202454890200644249212497900992476145402935051451499881295379839879660553393860146528584136914864219484211133733605247693352836964607982037844213194903759454535770542823529158317248132041355850743877935984277530034820717980315823466487923707341415379128771542480280646459806055164579808396199077578702847174048614468348807985959080400337043594188815500866204603574271166303933199767059288741609398945739282922869208844886200035468551477512752923866381487381418455089407111040785018824997687362150028892212527685000508117688361645249326859121980237633188046230722115007214719381250752907064356447626646145550564725274380281812121143002350089167860133688863354859004364138465632476895514995191939202681475179576875107922790406820834502779100619903620722434614332405719047397151993379613682192794448877819729678552050647202608486391414474260607134593291741693262469534419050730617375436052678313159237518488366389102971822685324143508056697417315697533740040121773000440944647546868003105703774895229938299086654857334324099590160933875008202905533836643659728645406318517824068347225698640581942888218043103114678026469298503260003479358872780944648230158387231401552399168667355883079253141822981114764718818176188533546541504791363588689166224912732844207792412944466460493324244428989980567451479581441525029399654048023270585674320102199449074231780911366857286916241524369273232021006649030639608918015574522381447266237791931681609161607405904782245394020832804947064038856846078962157184548206738974686432162991270500995955829955466767120438693283599095344999701983586062004191283048059676321492629594153467473534332518289256257236195249824706096545735489112263206794852334482236139901617800466030402164534134899971026630866676248994994051490695065888422268364753674389744787188036178273406373560484776972752789302889570456896011594264585605920216806826226828345106266468612744507754040130675052604171957634512201112408214901662096872737735414671505842596957547041712536332695254672010566078002858270483232803518851443661975373670066725593314055739768338154234648795252712676089039562593776024054711975041804672469093724633121453893746471600079560393290501200514527050222006280614150872699667569627096403169327565548435477513764554789128687399471837990392888813468135313883712796760929804799812583033612581266581081300372916953823464565431232031935722681698717867631915178874617039610504713411746830648082461098544544870929192381039752223915650171098498596044162503671034344070048830808777933653554705813447226123230968961591389401920761889735234217923487554933332842080317358546107657062600820530763401739261261736859229572102431992001250064650015504615857826989389781442876927908601159253284317087166887008336407098747484034145930765712617338470795925312223393892574789958022521201207021715428303320205629655249627437278319593552189166468981063026847530666016325675018737785538214131903486435947215237268722211786701992274961639898112959245296644058109229701766016257678162858213021343833834870249623916085902148675245655137470207719039251119351934986333334270972686128962508686403213250506075698632066274738378836012356736518221793156521069048449347483786985159204027088232711610034464573806324769635046093674797398988890899736617527195874028298605082703302101129526196508437691480999672056140576359508118903330906983973562695604414433307973385788140595668151186012603599906162749997340907064399763661447297245953448840943444210928558217021125658076106582393542142433591413392999947773958644579520161741639898928526902053676528691204174972042481028924223695887506328591840852775900445047115100505221972128012691884278619513146001897387451560368407952651856840463980440483406336930776956137193606040044355283408290458313994857233595396855093170910543773260163507095443666804527281543436267363947181124262291440873470297720787111567974734673230074879545880691955138252083117579649969825323151822501659328876069535198653701035104859772889109016622785598790147101515327315486718724785984333074527083284281519029839954469461252930349412627075787915588439028908904823002442344030376750223975085989735272826977545766043957329838213703517644283287198178281335941332225438774657770331699765796714062026068744753836331742951289837443868901767362868507888046928857911341183153659867625762908188395520114338898650260674299233124612977788770463966095835870042387001061786440597979252290498132591612100726695556560307464125899005366321693530949495070343812307182686571311376761043537525015255727687969898057103611491095182676298395699883916846688255195424633418748986420938258035581276074402335842443294458741435662899063582198874521990430207733800164195522958299174887314585804122785256992430166652211960528640505526713532177626953847559561770408700626127737873776862619709884682283202931708045516723654752869275234808711250815530521032847141547654236375091630187412823937388355462719016380716969682481628233023332934944306556714831062722014647111284166589914929893040423140905261991530325583628497589358058742391000229670809574895317695701109431653516051684852695714173262190847788863280998458381936156392947828940013066378647254645723375299151467058049501136426910237308813973101058513423359263591221798370811724769732377683590495512420233119502900026171834038208519416220736235397930577189991890276415854792542757949573552634110697716398890589079625851792126752141034179437427071134154467395072027368269671799506716740644061543452442825237105387774942975601374367188550668999463930501747556977138546752315116955042269039254613310486363788768913135365293174468607716332016774268488015998437916203983853631131164286202756117319179357595869795449178137208367431941547318317536290810858558911424463788690340395593283887740951646282704485827805065655901884096524767936293203510253707017983409108154602908547510270644993316547830815040584930054717704639645201071290501325923005897876381529018525335470908359184765220334804897466248536590573148201100474144800299447906943094284107485531951906180386136604192634019855969199550284528024670001262296985387850485744148912661923272708411940973621859082551618729116278339102354620162933069705661035150390634168863719699609312548815331931310123393261390619057433717997030583733317783380296509696648293598341065624876057310513473539731689401162393830333705325928966031255598154439321053925146117476694565958972879908174711818467803453524171802549680276526502064723423926855519253193302765966662639071586897194025145590545921164770907305396404397638506966769220389375469038744284489992534759960707861443787845944648355104317616916115320303552997464779065326515240854419376756766173800105622573390741976897349870229405596431128716647248683220637557195638017255739333683741941095616349488723070298342281578977706012077692139134535357069504605725449481011563592475060359832595394656300251250706984825932941943767872837117551096971175656526177487503524674013834350150189033694869596179429681518180355063475297058982889041111228514126724666067609548599387374524054122800731754290973359980244020259209286365487642622464444549907790720513107289173714291191390956593871235041186343682820083541937148574457685959854056946421594327658476321993535978052234970384450892415693095733757260758221571234389713597673684176643542201427093099518357288891104241233992866177731551572685554896483483185583835867176887335927897629294536552789853921244293555082339166470275311043565170310044031891617614975504533107612584028203996689897291922622036464550571335068277629315878961465409684245521747085306360474609199439486794702204505908583188996975915020441179856820245982988246429009455265198663391531446120642732111229179221169638248370794326850098556612656351000574831391321216679271022320629308442769297747996912140420200702343660101485671489839373662604174052109923144897102598154993631274046994145614578862366700903371953600906805044199315379607274916626466618904491412370554103281958866623859363236391299042710556487588082535689405914270749929463753177288916741735136171131530118472601905240460439910871673032987952247345713943267041435596414867909959708689713559348157579901731798620729983947371590193601286691345638520590563441634486630682343112031245699956610933344826330698630367903426354022235027966872011894360092603141939222937079495739884820054644929583665337571895497076463399871984565404195084032725838702543557865581409877500333038059689521033497644540617078639711630306056508890965143530378535807989482395716760859653624030880579215549687211164632320835143024245415103893286788344406330371969376500596447656705441066025686906320706746809486308333337863936185195973805550523378498730975109589287904830603796111188764616882901781391463358729641820120368536248776213917787170727124423766983388334600124599980328007610493832985217735786184274624708659677545373938471422827725555707008170788212398657808535164470722440191528718502730992659820136950693126733132725758139077510771267512297913004670459882844651970938584824410652837956999211250484195855686971618953510325734129245843377126438650980604851952105110988061555309653844782718282373959976107530036370707655037564650366072284491500755141936742097788713820528473521557378616309222685787506313728697269436226848395058794107217223345124180463913516088711695317882639806354459927351296802122753120524172482011172128036415064755506176572453272900202018580167280846989117078861759214581508089983685728004462838094954445190223655259511990489671413623655589044182801203651765264957719318849428749760700837598831468790626478554219971261574953760879733153684374605724800562302440852368784155177274761553318422225194267899177373226735290191536178818024819988018940205129210108470960108491692431679686912685916704757500719019430164382613342823394325835176063692811237275025955638143413982759695344162609673639712583709294455833484233909522448967403624256115659089243603849588758336661515389521607256278943045669387107337755955617630961029159130186004969723724128088818940796687695061040430074615879224146947781152540860878625492664796547330780490055929571835321757550721462259785754854895625675091265101518159362796721049063345045117885747725919484952420358924480000386236967986350897656113200034263270647809896502708762280120433070262407549557782414212649642921541112121208582405621125785137661617872757956009407996075800770508789021231788077819877233503586826706002692656614937702666197982356359309590786442104073805122394666584108286650292215674006957792033743455124119620573938072275065098159605293875981289898781682962723082875709179133507525119746043269378193380122265150185067543557085654452092308956099303846301054935981949817141824429502771952546389496886359306238175736690974622755568851806268928138528188690457874450303267464475313356006381321225625820350402646245625234720722391572359729987910929926583696881789481323084495368022293881011357405934494147307609432342221428740269414389196540185643090300095624983089051334413256784508834280951471166626990089201753941981048769689262875237446463422279381616280493610350510898614802395128775359689155558989482352698523594168194330878612092744255780497594058014476420391749158456982205767368839039664753934436971358506351037643489468795903790755004860385086137562881333479152147869344740619024388109239225240465576278915330064642455942686767020187403175063760382972595165934330407972054133861193056375733248784197362519126783800167720360862180433127128454684765327661473335289312421123248780584556348496362898393725973715667728779795062734109400379438318847226013731540370533278904938974735627602172038626086781003759837500956590203465552070735464713181216188574460487784015092467489267080773632837294852591564154016284628519956737807349613089485812760765787616602282079164326276751077684726133347069763380120223507038065120909577411105365483139864074789198998518555650959587359939291012907229099651950021623868186545713176137126971046856497290510350548184009541610240276394120743758143695783428525748121659984832484561767206299228508841325269566125829260141420631914917874777487366587231986139273939278113604252751143811735845432189016603844698839301058666505422904502713455156591618606929020135234619646439670748822984965063381184241337441123401048999363069856091286931523372731921482156352622993383058080679229921190554286885879763153758976424922127690874088085851806145333133075094035428362610652008720954693980596879790015806642987336986989162520706588145438187863332050387872603294549368342314174880899640613621803521694774344831501847063550731489789433865526698806015399425230225064396734860787507913943976291194738500673017085565166968977912982875720348506442333154354034865971943285829937683854012740735598955611421997394475359808373054050739887982832345413839300941934110931333023697174083947661582621733473239906889329884462002724061550835440311522284784950955380850934062917529045439759952018711216037882242101660052266704530974024208539709270607328661854445751649560694657144333727364668098004045529768097120850248604033240901798174086552531307837162961095954404360894053005587230420037082700893482185892901514239332721298196137382410049657697091118497766797364449744461327926041368962978327030596875057565842906136031205930479518076115751109009314251410904080585091745157957308529158557057559191224965765675996561374193644409039976215070812349601797494016083311281325817942332671502679680158269669677314112227199224359861117912585451621897195289705437904134309302099020808931976183259610676311932698881967235411278194359185391003715520870908321876680256502525842745959513642129814551689475518367835336445312903339705237860738061319113135145115479544389874623309624568539711750243242690978623987556250255800997212825615953705572475149304914444924243738354173165239390316070918362872816778427020818226769041548148008859828268345054295498741742487502460188103306719251001351526485962209516434546302735882638808417242766898911071818219613889764363811357087809338621333137919780052315026048553360509009326365497686048888606225953652477714347725993661776813530291056936917909530232941448671566281110703485773863626440188936142289233070318963973352842594646689668292268900565173820845922024471512209061998021303840468114363956680538192880092558305751519905871375423357635160921621311281684364609143029419499958816358652162376396094293229332935672437898775943970144038591611753280733323726658146129310198750632696084837233691525874720787699042065199917748950918883211466447889039184476147236941572257776660097312370038672115468465470749767367648906624866091171440851895583661617060869514325436052595194560913465826144868721436183184248955620838688910260932461147864423822022884139745435178300569134458668076064300298780729287081865272565843917731167376535939723577155689591236240757150056986978628500929115496486480540537623700082802157553422031226998733381877196281575589575476043581371382490589687153819171818990873469443608702032112196351262599529961609790985292513459395145146972298618594905715544659515677498017500822335148715122633293916544906876215300249717798934665799967760948520378655150363167638166642122842397301655604068050633097389676387305018166265595886530069695277888052456138382275765974373452141646133111560270019842282280421449826760936302255012362674475124075540661631945702794341945973682017223947611912948434909720180480517128937336333332651517616427598718123578634461180050860154503147519114682764956325345498464590629598804234847198239949997939999188646399037888520434580020542803640399109842324724913064760967972203433515321432150642274392101426389021987711625457925902541197554128047714952553466397920612683422260773518085360283182359971579130891906444073734193921836234155681047425854703625232359209742656108614343226220058067715019119513225416462891387064876418262037281092114813062718119801686244361491243240412714613418265060290561186437375272339403456578977446854885935279135640287133658986195289074381068731556591976409642742727380742952443369404961575517423861380486063347082223654242591955411203932951303944016300579336310441195851382304604093685673877221291902959723187369656576459557241406793881067357815109826764708017139113913146028121629310352603092782159266930658169304937069058105020077792525064163254440824816358981447871286281473850916612618838513139660276576328788121283499730621744969615085235042852319520592054012191974135719058095556617200083507917536614785708803232433471171254177465317275393515260158798202172022824801531090019460244295175129014948609282741743147948237663286401191691466454493377170956654929295556399580797188818512281686239569632083184378593280693080341298914536756618965995999679023463562629694613682704253540072712814851010377543682732678607348822821941900774507031707247576030411410107584178589498332504678679740911832544745246179020155568328135061321976462435821417482370817481578612097418585033817878138127700274075568444235214658762036684611631428044781974149757451773774789985541460298426441548705043918716284738276013570067845990472745806878518845183424356657459589303775538512913643364272641595680546235706510078304918735100956351927147597794374794028169161868225114649268395835559459921265701495395961247387186860401805092355238227134131696525116609372133330322328893155726531535943051655461843358524412645707340489840548587124142097258119086436752701782601057171917997608021907797882860926491313902723116893437318274106529286639712247435261296595562242485129621606575929542984389660452603197827712810706822161473788262545167011734445580237888126885063593904686423891400208893970732704099951137676171163452313576234129253827880589194120676814242491576191842539418985609644084475924589557221146339400680700998802070870442371949852789312281560105198823361839662458926088985733241241571432237210075797214223744416782032981254833111352204103681592871607345295861275167381119121491371750497949243856334043586947613169743903092330879847114188586752992253549044098538758324422461091856084071681892075536743729722639540663020957465389862705053304160961565564289192365305157333351616406714714598024211382134444844864021051538991578869099080221250541873527390535489198877340237852313097629980665636783037546622100788828256848950419290267440555151547005735720342175473457438939409709620405001860812157247979821832953761570283542929427463413227101966361593364067226148818690756071857650732908907502051944711117192315218596262953062643595065935727704560936619571497189840970077419361849663250074615181057753147384572865443335556404454002606391222397116712285066660804094159676271640931892491819217253410851648791308249183499713065290764410029538527916989487239565632138578325796299248511487744523949762076594826800758342705265241751257709816999519661333826465184445087155794172088526968516343296289380534025406751346173341546706418669135828868099895098099741413201272933399387288180867357716801369190717538165794094287816890012747474743865321991069839594800571873100795775013480508971037150239891800204841501797880812684748461250014189198937434807269775268415289759979513789114155935530427691736196758267574025373913679083166116062737598980015708010041312615356596812901168102829575551199794743545772189936014336318041468407707914226059482348747651222043476084125428442459371360709511912128309794875629277767830724076391610846676510009530709899578608966189663089075321139302457511029841427307307253258424424468526388280656909557697627375731785700493945682859332121016959872068023397088035160856069099405806792269421297725342025953851897946140607383062263649368138297418174436770015797491045662321230412732392333090853200381309677196845271114008116260565893428181806679220010621209426973687997153013271996274991587190519561091209875618674136424110725598920598081340189301681319102159314145813044368256182257876857933538954174645201269732496798783197834563596390420747882445008153770147555450609249361691886158153960907424111825064054456708274198084160876369090516129958935726119876985756118333089291705345566069348582836233665289322369102070904352198148703480956059791878375844146403902134248160072258530729151872063898129022755054025833477271773125109569300248081325952472778834120421655501333694124970253636346470398305453715375447317247178196111125148042549648753012033106100536485323599830005663756187364659023804190607943661812037798813452058337895605535047882030056445942556136081669764278314536665798951171808620199704670945878618970626301824805106422150483427201008284337392562376763357042043258643705497527995798154668732931280832684302826316337515619948837117513619475650498130505120816381659980944568506219107688577929265818414494343474039009201378600548766545348797355995053937120641232531806094564228885827648834413459208452251883817694427464338210874509409975251359743488909658631371954649785046702149761959965899674996514157469357053570482071322247664607061022705862724465194907029035129860687757940951390620185590336341439072594765872032899606848114864498258636638503391799962620548100740469509352951345682401500423593256485389729997067999550170265010161880026877325234760794129525786261042781518596174657558893323183386166073098115008548272957239976615090880630262543993367658563388084203560363517976428028467383854240799855797369209344717704256736811367154022646578461608165226612507678296060406699347586029285598096515137094415090625427799343165523613871407482875957329316464208698069318043095273908817062851163680846061721120220841006155004722323484184661310443232808667043748334613449912530899073445772500792892529831694800212096003719481704592951860894356472091570795193142413032317409245921761885692576441004707846215002870658812197345644280814604297547244996120792706174600416884334224859725118904081400821251735346241336117130011456122876253532991335582315326924362803545629762633629847610312493362335004822365682217887091842564082015741303040138400026047373471833064688814697506539155418087474306700137406099139311000585406794126444559132346741524814882698782797503624758701775936331306342204522720589022664554390496652978542920514882428486316639641479272288374265501793189330539155476213508868049046550050044404535259766959071839163641514613557694114152997460631716212180286646535708193276337265877497260343282551947987637733530852037250387026308838533653148942996507611705594340686475744090739092287735835486190093725922601618887318738637880690500183194805686967732543640958208455508895770263261477402100172430409908861911678645448698041185637583957798865488283962110318546184899523267711598572344557870316599882576473622658275252709701455790340460548562559114660146956372581022697704993020309344636938033139182379181211448681908798698316676478047039289503204574880299279293116667582533943275317082879296849411415624814452669192458000160518079238227200775341780327357195002663884086727397457377606595536629023400130882623047769907768116940517794526023584091239640479280641876337447451880864398068986322093547975023815152919692038902616119051513633404678494255292068816497069021237580490468962561433385770688132905206016000950900967368983872180678703714045783359742864322895173181522482311203593570104825249101606429739787303862751506843444921928894923729537419684045488696341624499306574624087468985509869507545432818350117673820388473559707242012765060711262839182305957851259496778775373985620183961997226415503237742395164459981605096377033607608626162929800151064607307395721284708363676207356771185353854079689485335445285615297231842274630695974219152230579523231677825656397809930301046854973846068575054703702581693158661407687140987184117117236257904899584629277936157755490781453794923431587137524923307589145405549349327793191740251457378266803476522061541753549441739474481710909360238071712391292703717612700828696592904130595775330703589064733717334010537678304687143894087396645364902973405966629216591545031930742337017973307214186093062693291320008025385335800653845434619534817138703194082386469353061827525218222950270780615527482323997120120611637680993208248151501130804044379520467639382671265772429191343630626336156781897472366967480715180980939189037269418769644791543342944496236632872653401065587071304031932114821429248456602501651777329347120976873445369944450039866599022107290097100289662473799900987344846070626200401986151921432328242944567012879160206192387196578979138921596017744861244199000228847617477006833671852286464834324675790876226000776887142203686034139819254270093370098605146166828996592362940616849221763156791965889760622516407771459033583389755151591185332004349061997426807206742831984160938276440433457013533568251667139417295176411477240877680811310408976413964797943544725967673503680608780595609344792702412276030128903310183276137982231230794291055196257916128784328256631176186522617633701188858716216365834524590216194792701552010107989137163715570603397362620801546041410108277112839657554526371689216963476023116291120611763189545907478937696984899936258806477870644978257691921439914770920565910719680522245475264926666157230163970178466425931810805025382240436566854836013483843245866406651323100982135331149538435827684407891932251752160173709909094471300507496522309065602654701091938929256834363297914649196641516502097759976422717851517371313338556371526441643985801359200763735660337851325927993032506953805008226917022507907972319635333979764021336315600598404303161907550368303834625831106669433558179904478767780195315854330242920946199708046612930002505218973121744129004291504243717115356711984003149457646180491354144346795720271741536298222224987175442846863124691307627526801663447946182646758040903150659956908198309570226320714126778231751000856421691576016787669292272256778022269899435395861608382153616237442762030564063920880777744974420956150412213412675396129486709134881645406141596707512511715981201774313636382372962346436013668563743488798545068863713531493782693228897594703877697695828491534063379203773097443010472496708819170789575622569100588917321247387451921965623245706344938537646897423935344149490905838819560863063842322165813553986457650596978010841337843457591016044861448569048117143605082579243866136307478452253378974833417224844676984135961144902751602263953822850539782338725021143868791386092720903696079327232254239639937344531766388386280378362179837691570214580040117694855906224983657422431375725594379737558447662591041703379108778404737791063819330685589241082403207766298842619350109096902824421538626282524957214225502885982174962304189412402951936669761663399516094129417679615018012174755962644519002124606949073199063575814189190834369125513288626931724573859936001220610723433919946425738160036404290735754641079219055014824589232680263147822587750493990463120918524230529424483600514278306912437101390919143638486148651882388956794162010726856822196027497762202182504548442665171794790155089946965224018935087993467582710714097839438087754223214582361637117703457272980525720566681675551315770485476585883419836290811781649005714584823921610562705206988443863261890863786649397365647368233252006837949891786324805537760241771039754344958223461893307619788013654343736545160695362111840995877723533297368858973593683035896805674214119295024018136580348103760409020601421722604751597532041308101160032877331433976981445355073911144271970269804926586646346526726499866218862425957223677275629219909764661102493705580810376280231652172365417444902574551502327121531510086524047547304210729891042420762067940544966191594247748233512097394176509382532174539425651503127372506111329274363721094186500500334915762333269699123187835032619147088373834557544593773089237503225143988565527498941337240316277272960201215625710465629593657006686234382903718331331868850048750913366648109665851340063318940397252768763007198931135361310060758080144143232116683915163848873587193876178368249401157420789164610465970155048596219899809211061504899774068469582715987694458817373112098696181180419668762470723206223748232687147559552034578709852900907182632883578976929763789271529887795312579192379974238984883585331217691020053495741176778372992732692342475614199082508945011731318154409689355098399918293416317223220634437564264484407778525935046109671176998683660238028062289759953432928260211201701488006556158007737005858980344950084424809665495479209548358013643998271516043139024127243124714273694136486513973047438144384538386961155548161418731852516700671502611950755552926291874432343096269683939715726041865707831337506580273845937664734051396628796552720580236470681446941730004782843549366343036524276616708228227084131475381043363329556978828391249512905863505337765794270281560046635288077932159135915014540990996882599907734638951396259753241595291240854401712800573293001407006054420757173536654915858779848444855073209278567419034734497972703592138776886554481989066549494655464552333613499431270694528897233875182102792106432843046526198626506627756942785670259822501108145912954438219561474462200051799859871600528828166062378296823497389523327351223049828047560342019141163240276727329265154039947596250021563308204738454719204021860158738103322968078457097191223279878938942645158216739957846858027527816338194492226516938953883817707438224429841611104608318761195131619243388599677988176545475859957386932636085334790786593290249103995835875333168166593639891655127042468807560670163650278209479018360845559144925237105091352576720716197192805274041425812665320760927555857182531731809125522237880278130894395637115248098447767605841369558513799201950627936853619048652746169605093013048768063703306348197656297412016210949672630719891430509106462273989455333674564920024165719243803742363376086091045284973321880829854661674434405473756928509832567821494852424250686964573768413051437423168267339355432742516565313505721171858022852076814459493867232949799879664550972050790506012451102163633603768434589761784563757261480998613103244264735246307233155176574412253061218121374439369796307861111203891524915105618242468892152754477972317114539686901960939440182467181078825948337761542674981509811917094357775151960976523209500636102634918727943503979473611322105491078625556387746516036426157245145935162581125398077676354879432703947171715706023254929458110576219197976080692089590958457322383149992559485644374283269640371796146897293822497199459867886144590044247383148510635739163179635990574612655024076013442143534639409982346171949734713124517831204645848761266408677585076065963091842617065749183150586352384510332072644165411351709675669821107594641939522819311123570099354976269169341206361503666029895808835865967984909730776063563230172227389902950823752770198503101869121927468260799147345643591230557234805748628422568784202626286524108265693475231773230510700109144376850376603742901928656151874423080660358879364393377215076993128045797558999147775440615135353754242397180302838999498762566345428508888238726211886713377298371848819585295725904473896131171375459213931737235068376326615447854344769537086801762443186944002444246199126886250375791442659049479575020046776218151464624740213895324387670053806831880961020109629829094482727155372178945639712136395898493779544321481924559326292782155158599902653315718448043772408102772212817859084680097012308730924896536630260787147506585628077732301808161667353923707211290348138411858223954733071785205191938136494452112795577289987841928224421510623494907398451203998933137046796229492884181756006885506244071442278574391806954156596144601666568868863893468347884736237502640192086643940915924162686211118249739709459272787465151758003545695576712547197011761365151358684305398439400003950397796580304706407631901770767050840904475412618270299720269907134366435631474264386976895107681792437317610910946125660828133992219541949860056580147771552339556990138167184520888545049568616096471409883458116265939506882995761402395036580418593080494852560549607666566270816522186510160597045176608012909557110903611181580788029571274915448702567822550114378958727553657226563347434337087632187508892215350625655759676799361771118345730181852002171833411895463555071493272210462823313590222291748645343899948986707479924420476443953074885516507589917539490836446744746006257284351187168094783158560834319506265869163855197599215412050774191517681726769605021763815309710220729191375443035138453221401823327755217273419521641240621620506817617138778722592555180526565682289840325902397020694507879976154001375507985176682405675308446447339438934787956918059820004211585928460076563087210150618942606492003342224300154024544502734125623680052229002552577994217195964550520019763661638604116646808747821727299003008249338046223066746785616598202700708789784033198773121062957568023947055102015648842453229462201078392207514481279303049990398810474396848928188124539840797561526625262766456797859269718509144352552418410652453532958590018054459227525919261714133307448583110637027903030608760429736637928431906715487607298025368552564450334947641315491395818485662359213435265002275503697031952154134959736304775369073158951145684325562542147868615218810981870281718556922056056347196727893288886392403501552549714297803614948615022049960585325457828230678790940212843088344023147827748876911390621812368941211045053092917476949267569964380464589666053768542392312320539932946188782320097950203549767218955740844159783786444855171175568627192973045395327671089254962671449188016783687852133669330160344874458771180834198472950454491253718418052053783963970000869122130954165803887478430804044287003138224037623584587999980031049713690983878346546680161334355031065178343591538116839248904006838288333620166651956322863939286813382706367035024422571935448300502236956982666549320399947194512516732814382654669352157696373715278826429643690695504964887897274604395931516689428882286257095912180961582479673420111106115821888610737870119825156962628633070345689335913570728467853749395714007546781483262906969906967870536670533205853490812122312981524920590159614302944213692684432871824584631411957581085630970475504635693123594108101265773474917730809749174736785327418322614370663143993950993176003195942594372526113345820176799723377203674912370261468644928113136909698122658052157356785801408782484675594736731049984252498369431758314228604184392576778214635832848003426657708350139635062044939076748506955530648295847167138194310191016479165594884505088270551469748076687484117043104015075359574859955435151075289067748817984763780175895244220677498118835374244503063009510936028179055860425816241485332168787705979318840302451547721936452757097259073999581601230816502596409341051888661052632655579486588206611524796619257711955386115544483138687106363821660446390860317205760556668545404142269271420255645863858560462426149136341062932019657946885127288785006148723202427010509549266952087966198406577246861577018036405801764331198940105156665061849267440872678554756623346014527334414300835692951099107613328380650971196954854338141336267739180868822733966555038908505956897152355155203541362963559160103848014509394288891898086116234585613656951455151963971572847905940787185856212834109301710162889242171911878341132539880327922249624340817026215142980249897541844556674656809112243335778325199830840922857958387618807139495790643043949021205489365972079262290514746777652328291917244198991528967719395253422711544683614157126401183434530413231382434146790530680777946295641544640504276612658217348093288938906035072954736664906621638490623799004421059733010970737570408340598239073983813189314132031406817625040861292976805490667242368712560218306768928166384683008659721189649518525798626490640453665595170375908270381597334729493447255442028551760643303582216434821843150404574000732740293130351656139805902699957078554953413111545101328098706233660802051908548315002998576270353667282306156991802191158731853054055735654298230860300370846399944318664985670040050571689345734197592031715879323001462862501166013791723642843338939462732189275124795632255310522889428018128635783978703433216968141180430096122906201201117950859129893303908685712318044790154745198249013784473480406674843837504051188410018705989433886109478302210972875199475531172113128801624308424454164993032244358182018768269162163741149477577599072735158102184112153333093757468265743497676915324458819604348862975471268758138686364731408925231517837337862341372096735070284190591646296600821785299885743108625026195230195946426633534571644603959801742612200542797972990939862039287294654947713950419492527293164955609589280914792758152504499538854249904012509964530173398238211157067015936132243048077602041451917935213254820377695662561327908635346988726573734069301327321193506660196549210503312458537441722156473514782412069425658768022751832831012817711257511164301699462651777323947443854631823237106205344487189649138704873670090620297848552789320506819402094216248450427666231690761388638190662125084170722790592332312851131349816214121806870424264316747867304353237064651880478227336726782682658962982455262922800237450208398937063830824444177064252875844742407579156177682734980896359229997423982939603251625677703747022355265716320038530786836227469082933651971553225361964284576005959399023515257484010638448446681189582244032654896593483708102239578245872398598460698548615591607079599586128289947074926874097694684136847919366594513665833100495311661156720518695129591248075722325317511084558873408130804831764071220588141859561130230225379876610506726925752429319748509334600406792931547251811662576966143774426596345787779171236009050209786439796327890719042969966777210030001463680724591264810662926192663524994607646895429018485423687931608695944669369445047199949846900841716732190220165021103609828651095722693593109815271855669282448572095022246469992852652429924120840914709678168152007866369604203002670316121633242430019140388489930438266100628202019969078538617685660891946627702541328520171720787527551186608735825461730552081743655596723191573386158674711841740221979119906953289960859035718297012514250739247583151410996966638081795308473080947519532809033711097690739504754060619394263319201764878282221515239359350665072748601385700516262132652040846764325013589797480538242577918337597587793970919886148858802634635871754820359230472434864543228957717167264373275191136173053256995288548704639581436575540801880801978060181375871041910804436093712898907457913656519523354849671075257753319218798574320688830400749629396147242807706360834968273581448898603468345572905901006363430652501417500613974966962068637787846620531687943930495686468292481116145960076201119097705455601754892836544860744504098902067347548667348685530686094937287274964472451195469673935647221421381566873320861499846167093998132199864035021592446995008996544228108745554776782340222765269515943573203269962930764523114751684870555504533892239587199648443551587958194341543743256307267498298539509679931160036435560420850508157061630381842890947509819272287932364660600579291075447336368627891608153312205215343289788506369639445526505845683439667527306501666682001303289704256018655867828418526819736136256758758273639313826757942039737946173569361362608006407540101826380098106129466951706226718032940479627987982888066819335330648165658351971460119199211383499066857091442373985015511236681072526242928363932649845115089236939665804265512485214314138288262569492035690675896124368199129230525814235714427847223896269531676185525256084899141480596016573048594680340725512901940970074934762531450489601893642777263869815643300773795114167536247129454190851454851363663631326481571899051345662050576538566963398415594736127306019491524611163530777679645970805013418558524665613294698815404894587975040074462677140800654253767993763570001436099364087287995437271412069408211733324218690114212149919133144694212920121799212111040474383658087322290276115362614948916021157280497423476051719425461404424074422334343180781594328113642104621989718709656320136912816399601407289479065269432599053468121771263161543939731197079449611682442348252292828243630027579531845679165132083726356158782401521086968585409294198957877113910381225353248593721145341297242725649377645172379762185958642635392868239057262135616545655294658648513168444969067301833519124612556239414626361335917458472450428525789464965019380527567271371646176915575900398848682679622000267113085806890411022069103351431443168511410531288775957290020277948920386746127924316324150788261143050113508874858361591493820723656984870494551120768270369694321805836708867213727329023226720016631939593278326938452703005835816425666472380944308266511645818813193706309125948477615108148384535283342424975227307660998926721260436032372558661612035275516704934330938428969217107889037407870139845314537543436765711572677429924989191035389723339729573970093091249815793330048305811851143531588750517898390839105869178912095741204421247230465539237213826860138549605565786079150929519886016710418422141184175484414778639503556010459040359127403596334640245108677308329599420830043264518744262965737485212509093745929437296715149504219027273249802524333749733351140321313783184136551276947178226770939345110844544164166646092183699183212983496767477219688300028921537782255541966680855788788082576282318352295684724039467921904710226055135047343700660575006377499552432319137090557016439916888189272102513230898016209184625256049268076603813725526020853350409758568236175471540653078905704221467377355423895016780356634440206601961816134643287232988505599205042604142919263533035895701437054106936917272473622056880943755589909965697700862288200317403465289309630784570992881913294976439284295115993466196050311805299725921812487371434846804552784998943624664233726393268595027036076950111169010000687512059604719156865353179058226570606337528937858604759409905244246222145220705402466460070013982650940222173201292668607487921569132831158158915878096138429499727146736809542548836677156309083907622846044978841869363504865039106704873182189448989940525682979543735501349191914425562069761783176518679769340715740141648336751849296178463764979427560951266947699795787052029660694497213035950671188179986079856523137735552181461770759347100895665813405684723194643802275316876022567158851495424080981363608362621899441482495682112559075874135822075994822199697280043082951789982368587390314013120591306600771149035366625637839434330591883558609143486320756328645713583883089665651357556267829829117688986358344988769456325460870107702370935193666523257027937286879551593632012661996930293696229847546758341093636067778755117702825230316422653191383347345200449437439339546461195480644978576568411225000208097857775297753003485523919915574339609150860536648119060139460196550766613132245624948873235354344418601909667347128169129153150642601887023344040609539144503842987826956661962769562582946984445751026203576370174144070814394906325150722854490831689235821954410779466179048345204264755316460831104411310429731488879312229257522391324657592983467972364247742655577483576662619201386880007281585285539746316878285063497768324532684375974627271118141164837270014446547828449994325270163420214582689825129047961960133126115482650271416532660043086959462105001183125580197923135619328819336555127644843900250197001746880001121329962381698427292719090366394127877791250598828662014654412030839286241877085388661324968022716971282663894894344906848578786026561499445522332570013027737948276570368879299658415479518809421206946520180513977348996478300351496740160189720344607231624497806950010755126554813341133091145718363690347596512564782400340424762269780448022741154414118639482506772308498510967346275574388011445823987178459806745185915291857468045651573942099570484291356214120666184052141235129302184752155484113010029718033084497848082366382709668085478257512535241698603109493359941088553617781857509704025535482322829056278797746895368402816874310732811451539025694285071318146453686801765794399917591199662726668805941544643149415619188625235095523285699237087954390113135431093269571312235918186828143451766185759517901506511271170600280396025841556248071453901672559171959117146184374569169588027230937446829655714302981813918356067618574234974560344868792672517773926278629999030300924764719304164215542347267722208301372596000662328481896688468784673844663730180398959284558696307813598581483854026603436905998332239149649934782174499179250442416779186077552904883778521988052431490538784162954074017071080678663634591199474810346641550306695292183489515563792801703153160378849881837126184545047303274276065663487242608534949307715947930070200484930750060397015835124931769365045274746632346225039350729141355591983015116986121169840360186643032171409412634450761730123019489515733042955058631810343877768402384750029513169179087841705119212835528345876390433953987472161455728219919192822157870233505764741014690735392250426528530931637612928239292271416119297140344627105733894724614846038857053565534658598136498979779029386912966460599249716142572618970726161108628034995883157660653089849976088477767430423034533585868550395196378328441475931255667319727608930612008085613796511568283404881413076269533584127875393398427491223065794634738813071540043810193979066235319519476573255289365149838577101566964071109197200475777313414976149767645940103657513738964629150807787168866914744941768978229256126978265091374325160723367002423507712157869848940748398001864126977222938653540892591627291662832365565990116685160138164901396890602079965736129754323821931905570220182195832498673315781843517110805843684345060927220454657273661839017513081407413152039040187830678715318145271715619285885928226486655746699882713124841487380719127994031142777024314538351278501106434543499688870065531169852558230009670520258647154399745618815218397953398731001276824585867661278939097249542941259238493591550404857570622707436888408533752415056171085240019078046009718969549130163281353810765919072875200348879728154322719107103065263220314814807273451079493203683098194693600934260149143827002094585868853009097908737659648373751683547378092496310355002662421566956538440285473194491883794396006620848594226174709267612479171606343290500400186880153315903966246982573096776576015458595379153227712300464716345480275647684334164227141715179726087870807401637017063862901745871598039669409008950023090422108725325835448744816963426598057238983981253986149431086065384809960034607989405473820416552906161262422365480612195712411082410648772593141983042768073226412434462115992173424316531202481904952030640433621519276315637512930493008932545425345493786783177145517892223705335219451644206651714975213531864534979354936611196574841161716519934567101309006001606586859366761332999937244148384480991713660690427388218575986263133027235885120043182735229413751090901077098991405547125916231548525839579334955352091612415395972564085274555665458736610835310361967687000086923130025332654747624246102959331814366649153099787015667501305287745553856753618471029256612344942905457063594705600030409306137539418712248950348529029717482614613273181459350569028306642837297450111363459449056269056138270197739322714032884150331493853925535630893252716090544355472566011017627407686384417199559876644782935234919312481305625457236344179304558455731903733039057174682774326598228222612282277045836803707837864932644313108066011862473279466534569851849303973435386053531384439917354157314601623899089228298839571353008230986285190752945294002774439557990366198679119907908396470797816354139145944714498059869930197918054025317078582191421274374404769940968308302945074661809642326677566813181660638592161353105406406411692626642121293811948478018567978308081184408642494572599702992346158286821845455945783301738857113954137889767267710986707085756034945396524626297459003134187202479403846066133673530668841577123846689280754067439745176136032678369823024746151376981230051130921819683167786175195427872726901998942336985585973833225262798660800818316974283124244931945439237880200919964012778170634576447675159270298358342341369600886986115054090466345842960353985946919554178964135077086405333867108069299454796438704817291142023601766488506957339323934304100988835222450104236749669402835693052803057966899479344722998730480690582055433032250973109595175643373016431175058492960842529921344432707842241021284252853477295410175371368672334020643579854122622039875714083241858705490612067179745567783294208488740544336478924065469714045487460675833236002199693885526561478492488875033734236339503542823287279625433413179178649858779376571850890122905970302442432911595359423160786905958255385972123778563947838991752216402313448039023039726058599614085898566899906535533215215586243323586510567320182010961240197823722703979123771055853145058895831491782977668401594010869813510613781704460521078319093693110614193746217039838504892959673974959744073730937298959807210782878248398985181346646246472035644677684235804705411406382661837353438577804738473900430143878757431412174206307006550098748526763934035671975623899031045830464881594823652158804527826511299001392515269665286678338205469730107618196522191713410356324943182810300015232323458951025092730032396208005851696059490034388109829046159003637818487099107382921740931028869036400835993341350825788888714028474272429700608141363328712468192615643315558288531470074609313692268677951032853478149160315874941473772232073615240929651737087905871749395101874199821245020377254373039872329049788726614584764264118377264025704569811794975919314797724746578162278341115103973238055948497142155942402205870889591023441133866519170488489690828977598115784673864889227671552584714505707499707249588104674121145532861011065814287596046798773422965959036188927558916566226640360799868670086140021838611311970819502131476884158551279658759647614671813874795826740126964940042714003679580439299429050667731632850424300189380149187779842085443555974942968317787699619198279956120710267283918844413624228792364788561013301360453991611740602996921603852242875337533348849547732908783796954834320401850550660691337731358232325891460780778850293819365579739289489475924404749413930673951049837689992762274758960606279149100818511276014467225691264308946629509441410893896757480052443533792821348345191629472696899024305642350079284655084412736480253449625525728589552195987945012726758424007509602852649024714397547632809741217337698116244944858728132805113343968272209749062922249792429769599201331254619189709408291092134376131497787472587024146603126974458871997870023649071166941658883245184210865863037902207615918921614823980509155793272606441367620796231659285534823173463326621566326079319645632074801261885724393781249909817442739342131701721130363848538829507209341977618024073971479574699315887671095681821877794352085817762258239939247932046786317962788640432146542181128790895693193195229281066118733605604439215664063665974657952498952528839695804957812275568541940325579784079788300058316930391189498343904345855746957693779027779032261830046611326786829113911395827325820283606662802918629440957865692717237855487832974514786849800554398427063029402303877815341899628175493720613653363862578238004980429419318332166951815447564837465502116565204828621428973062581421716692039328045341672392783966683237995386758981825628978477410110455175227209509227682723307805645373706522617240374700151050658173255372689624762382504324144271241075916803651281440874180785502324153458422398919568392069145668946572209351429873261621027426530549852116181321256014397269506522837126551226983646297403346731309290905911220482615168251768087235813802402656617775603306909970827012546419505186684547901905245408709603139483108951931300334284183985547142825949315009347754008414530158646118888080889666447818205526935870634670884260023076808475605592217090115252616719892258606712859026808150199898574292898385982542126021977841983142720880376679963265205866621489427506153337601011637028547347127462820982093391230719134027584187391935807913572176009934398752745441749611860004867324612957342080492997213642454451026505698083400681420396041900365489337849894350019403273345304587283897444953025228148982096865317176911212432779254463775895480623560065577310019245036961275140058402664373087727000607553821414576290718647858550797155732576271456442728990922724092914692119354491229224264528788040756795743717481250346818251878623506483999872144775508931406918483657576363279241743172827673226372338307384832721390065987634123621644770154479982751612498129697592390085970086913184211575500584252930378230839222287804404182610993574998187840937602107004874257682823376194971975277774030118478703273724373519518408081507567096095852285578136101685926812460288300577360161396462930179581836573469176782156949262478091854325600485386956425127846817498288620405976791231569829875232968063673465103814885148460024511789930413330623859813665821457811221045138551174895905846256698823234337925293304604922640865579745192353404486350133547808261132003368931462693556207850272071531693269516126616117076352072166174157987971375256407894804836773401691436625733764328030863824444167092124051883673703831582491615209108048591022514848629807503208615987840531274086392116023372251832774055801820403202118622629267196814521413401111078226845265061436985065646200297329993035177265175458158922247706745122582948216334151188862591375734446606985981382021298157055534121045309666141107657294581546049477805772993350529540378258960960534793542229538563988635235393633707349456752477069731813011553362021194922460314815809100724469550561356831448660413193468610311457391567762081471432425579739436762564346536682362336810876404824602103136653861830282161645793570336994268722169647955631157919992533646989105549111332465309497112100469889404043226720441383174591106524249812653753330032142442564239945742875933515356614275854419160812525892697415068182195887893976525236599849139029888044060652770747385084262459774604799534928714687512148570089286629553222404960808199076542641308077783907539212521578749123066323756630725664113995089954031480024516339163935624719764446608476436786748299383622547588727122958232146959058028458978279031626563997060949918845460646977072771827344269254179589291142661562052358460982397542221075241601206532400049492256283315180490640147245338395526092136950734270570624360214685437365925575534402023930401092129935154613693179232029334220241516329538357865678888257194416169657481369800187594317981937810676484505548316048264510012649209495843548526121091869901204737257885609002615765067358836490272056287926250203108788317995211172023364876608861801979893973857880116826618347532986954028186618519230262465151470074745630849187966889832750378932531866655442078848340386796605965647700131719770369322734833199518954777697480779986692725975887388931238062944059558023046279215178366404255754394347358000694531230626531705332000255644657018625932890072345406899173770426131483372746887119643084274434507413317864703203454079642912119187974759807024942122052895972470142564168764707771710028685541676096701412363321577021678100622319260500979578833403142378099889691682793977017758749306193512239139581942587811430110996288322678622744721529028044047346866454169466640704355015314679377476772964513918979792211443668132872459230175065253559346678422831970748693177961301819280207429626191155724130848647489701512570177337064566350602015835212342377646598784245720046107707362106282878436252860608287546663630623773698416108169434001259036825160724377150552528701552273813041112303111830973884033746725386437720842608393974104132259805819226026004386409861079994980149619102065669580559228462278291230577742147594953277958152841862193413210704225944625476355853800605132340806545487640454151581687143873889487982677849135671165664314107302189086540643615565760394310296156897185765620517259648578223515139096135733234044532792701305519610717980871786565760883527372693444789458505526511405088766040409334059336207700904430334168866818746920920387313650334306960035886946620311802596005412607517237253750587434479139975533655421109332214123460250785618658495613058104959443146110185038068189417064549308956589971303558639435293217954988185590638312163624569486791533541046133722709526772944719631819724916621970193412101188981430525944606257701052018293265845636095644720539665796603041353038875284416569767156026941046670771258917375934761676848725398702164272384706751917508633555856263155453754324729995236079387393749707226166664029602444116856152723538141911820827094363262601535790494715609944599755762662128639708472387002132599266324252553324442978756061874990941315677118764681265450986921676726234433693417111652087586937112412536512674511803454198763702794239890484147563884653154035963536767224939224089269479708267586267471974739579663740255300273407380380683982812993794988400559903429245587918121881545666931400367273825558365002344115246166915755837838291019781296588634864576509223613705204010809734239511990505005047266076275028278276044933769190860494942741480516664072773242951708749502045197938405356236347639621062385086274074822174359771543209533943602821224362882880030072313575653093520123227137430223002673929292978086716570108088520661073902710311368209270516840307873376154353192246127499881908579736563072139521020341173442922670915239401025634108918770106118247890460897723003719961386447181051969592399456169707166217933648049407101617701064495778561624235450269965686694296305741706358036486184839254457213827140488529466831864607678278319207997310191537259774169076242489182441863393589449633637023846911203090770654357604191834773466001059729394818310923900515278017616171862956148458240386501774077790335205233033807990182358622980777408122073504674241693297228626247285494622213949706709351264878445556344964818180385960903594614547088767975635848442060572170179049572640976977535791511479404989510780538126352849289240072474486653906109158971968525234182984296119422775585086377568725633917047403131368117776116491847376179340169316046384925975811090620025877125403029513507984557306610537696124818311419131958243990021504465097927585284030131563553131208309961337257450812047360655940169720351793987600324791222639118859184844736135378033944562873444181076137759700186304362088687793553691489957432182768729363705640953712725666925837924880543250113015998923320681215122316380777819479441728950975127420986808844907992312485458944680698998890145838945945696769881886840743159351584880944293321816183518441056127690062891423589008740322617977188876464226602948469176276705241682728526137942812039911535367350697992490018481935594723701872908524350999363190360550895336349570525979426831199187649449265644332535453525797849381429446967302534865962369074594063135998116847887377897578076698570356818844577696974894252888121267899238892134155278483635566827414479346920260845457050765092335018047482551839021096376601330672712353746180923506216806917788196806485395506504030738839540509551990062130003182595001225292026291777185665997286649716540940891071251940762259312001763118562312289593401665701060272677383723246963731621282485950867101376068245906722001226138859795693738084262893185983997900898731034641715828246428506802651081987709957642572674126635940556892058700490606808121069700874813970142101395505083617226783370210150771417942757315327486879954806679529166258201092134633858515868029856737831655312219665635980698835395288090659883913302650490051379622079996960556084601910287446340879394126887424979258068122646136964300129700581388696673282032390605157378683006387247287743755828521408526033420590246767204396223902437942272200912072249246880334884567633804696906065118001825960440397320587487506803385710531995139739464925670164869951409215094421158551833285321942254157129614422715333617874890257352093451198549464224613791352774316659302408105114507405040518888766032874243241998187509133290010174595765804447974862142117098701616206178517499965181924629767517801160530111352973540047749416028343911853421924878443508670680412436915252234661269227973938807155422780699988310007339095255053961398238068975833889384334936593761059858612359722729241371451114928164738062636828270034003347587465077769102872720300936501038980556955545556185606456857588769383383818941560526583997521940844841905664858426203155420998941597633685879741309979704291039357387101865566533280357026947917324630664916904086858994100092864820063711155297875903203682931079999050762206398022938704025850771607571575624247050534678493738545493383164408638184653582795654918081740987983128244717257274622583046875207870344586281067906138229623824749893323181632808753788709718702682155613661651936225542108696266064089827439693232745246502194491680183789233822124886617825823628791524525985320250486161456564501427289627652788969654415427424548825045147096281151381821191569630541927711215641620390661678451536267242194979704341695373671616814618658377913522832542436850483729326105843832349109737940823062422970509265807894387646578262352973761217173405915307101760758954813661889525160208839298294034813928199732712659261637232182433295183105075763983611597399393427565485214559042525009067190273942777476820532122906253573986770386339383962684591513767130734373844690034499136572138716281324444469985009909150824691710888621074084723422252373890743263602597200055054225656262658126091406813847047965115285982905487727349482649622388253614468070757907218053910571878372027190507482623750574503465873098152834447272628182742589598420676226670307502204356409671064327191594753481698132504190763415629004728337668320041190286443200069715354962671291983794232478995488846213645147623518744247198512053341386996638873033962509910427826994103273703403833985338891658833578574526360858006456476634971344599467813900204522023313337518137865508018161518378108111724716609974109107394778596635050175637883277411509590073754527228391611008745458746624918905571883656106788351103344856986186830135181430581559132357932503545275213480379643108524739535469887877396399137075276523867995365719794002659908358012464387175997989381278428215496560715161828796700707773096932514230451155808440422773145460991730515386229278487082957953086870057942501924049828965592026734250702780423041749605934572078479762717418912392753847878369689824341682255190312252545454428325480523813921874751938116539902024208497213215740663165355547985184861257873376469975985541372508542530415134711785931766526026808108815514323182474801656133870451199400605407021936043570262562974328285362143603853237915759304310885003058653510971840381322547590939008976156904744865455160758829441522649120922628689915839375254194024355644378678044082619897636624727359932004465019061558029963174200614317368692105217795986964424434844294940016051033899447818132145029138508343672675790290282926666828600535113017161506344412135383708892395845424906970244657486267578181354900198484793703808883860731550509326346449679556142875232488746120511427929403958890063245600481358816013285826443907284471928940194731984897499812780216553767011461722479723131595009025293740300752583656008049249815829573173619398283470115529889596447725099609462141986747090974976847941001320183038489785491636639840945558028220271887472054584783037325302603044137755003883468141308110617066954513905354198337213041506816943450707686405800115083482654925380994758271537021104259976816103187611259317460904839129503157932738022431070608070446221975075983662180117344265042605587265490174710598481461074238964430779188640297677329578797658614135508660614147918795733656195558094685314596442848388714004900363501946763956182023622775511372774346788614758961009619305668576076736745046883803067653818156689499755696962107344144364075479080859543040056206900577228083582955884139757227211589516609249757481372577015654104883673074455638988687681323504934670216614158050793448716902905705829317935283804309563261930481592754219291410686720932738646117296821593963320292510079022326200202144744163124492709286441430879281281138725171781980264381703387930087756296341276031656171790814401543079618762542922242553636110859740555246761999087914705077503124594285856384842675003045517007181469853308978007509115103961755494603687517174718097650049198730638602587595261316315823661452055528551132021829744228012015785572438076808636667456666372372153464328164818384060409642736168581154486081041500660177922848492571328310679605103103336692343786461522669667812979748486579556686774183400555725070575798987864976282684528141529707330366935559909015456118433525197433112935447514379177734443173238900676070119404059472345765257186021892196757028616871059898582749661266884511700856819388822784158443742620946293543845620619689780738698870931370871938480149768594415823876719708140389137775023124567094198108100394042309018866527550590077683946122301360137686809660044003909463587727693101807092836336637724148263465455119700973744201563472630134381950253128812515049413637804015309925136267274720713536085028037568170744740638451811967258763725023504993672470265448607822901901832205561585420622827585106759232802230340539363708315739527368383604005774714632016824251884355178456759962568088951481680502246659723896836887339124126280107404305777706940725169170327061918046365228548738076416422720867713747956011150751612217350306829489570234811860306069171410282449325886422480331080070379155184291600136956324848969288644310308966015400278255184273041399161801425585710979449361855219965715747189209965632752365877725832692931154848645376346829217671542098175231167598726868773975950538251444240211721817096571993796331013957943083562942018947122474756725396639042855376762239074280292623157017901862420163572432579718331608946216080199598030921308552632392385957798873655599055680524366871233431366538389963315655572663568161192070954357200611087909055675963010950936683616808564459116730387934629659046258787135558978398502964530610153376361419457066268134309491031934356809316403578558459973970505320638870269442401214779331413521833768833082309015543351411373974950626194372710661323527438211439809635786964834765807011464154059568216767811930565173613154153491837385329477530385235731349098628226050106236698910174651416276327939872269669750453361656681024202672698085693354151232231911604443268250458657684926749028221942249330886149101924745703744699387797233990779169630762268471257344585161305805425893867581593946220236692019494470745239330974044428852976352278812772805521707360933921858077069913185814600238512886848512124913888908350851038248921602610487338086666489824454264807091195071798410810411987804214692224357137767085819142579639050773136001078322414877335630335130412775670645637637387732838114270233189856036738209542132222004303988400743503332932375398154011059261796043200692014923969605110619102352197116665895563540882641834858432063602477373530567623966708547323477884073779084151457950240735649256534065313049228149435011533978265616119242550193574837916837671540286620007687627968919855056646987649511118348614537359148172554067938737407658989726562737432952006838688495754575330998768179988664968740334098013334309331808281896100873820569657335193170569846682979311201537444764549688634320833562291833459706718306982708360847879872875118036091113290478660992750645880961735680513137156696785639603921234761845594277458016368416270343153632079722575452957141649610333044989058245898906382553177865898952108342986050265611748014646167101537628492263095721839878379822292957688170524807468255790289787576379104793847301445108441249084366203069768753276282518462478272768519855601224558950542667553064168576988246891926108650091173866684038123298251846808590119246688706529951458123330447047380268685837552270854566318762363023519905498200116454907077207765589292969264415598367590001237046404777430583107991510089533290997423347947018584861708377050287334984778698656574359990213116263321011103012706431056778473786872156823011256951240657234701278202390851749080552873029238528681176675492540147575099281499402309598654169323695602189225343763909566756448686391708775848311912515161856245250776218272430798382068711546406385620112355936043004665467783390254041336785505820829205395882447327929822965811094066142963015422757958659432080659124498986775675808143202427988031441826569684215664524229637129255771010248100627296445415793115419762711320309438113908248668687400978463652777078601240068052673357243520043539505096939297046242278246558451274771247652044312155113982896940806854112488776173900810148441626589104268176372456189745190162486785217235969243971921382155521516706112462317246213401583525489953478115572145788532429744543572081794470018271166453273804382979340605502419259758337565050317260801449928170139539676704778795015536414488061750118566359409146006733317479037556507841024785129050418882280400825372689536124075523642817533097475108360109184177118637958393277211282838883808487260092971438551457671242343274568498888324832581738758009860449411092050406531597602850477007940107640999857944330344747988816510781097388225520385794565514672902364719381304674741446594014462596967945870418739025621976603570181159904952879169453567825471077027200743596944106397328958422730590155625735929730950982970749203622767051758326845217975356158374748889386068131344548565934502014225706508215755252286364653785146450017712985222132284286650078627707022324105428955450882724609097410682898731176147253241739118122107436476407487519481265149267206073337761372615868779237087318710832483468699069565862856884654877078702394878352429270900257252546292424674723520035285166619752873722343688406361896101396051027862326279144444117947361697645609148094862005051281724875117118709725383479841232413556560596364304726483013596363844095935592873958532964854972950811716738993822738348104418547055593822890078093815828765051614002861318483616239804686931672909416656011300626734073833097550004129168463286121915371010185733382357500862527651416335490321857926245673743787192556710400789365060992502944308163270780812283049469755827379894273855322692653032338638150500765300477615814579856083638828984696657427487229524340812888422154343046945247012677279746031744016804535560555560894678992146417617825622877538235743369718965300380651327829164875145882081962543049649894539874996815244655574464275194141688984160304356861963432750301004229555812091874819267790034104918698833820756859753594678163671638320948363437947119235006514487997866465234888797056898702294327471997887174585666073859953801497270369968184801874578995803944945609928617016772943269553614589700489771533811510061227016369531511190559190907692027166743321666217288995463651809421346215963281756513065402499156263900391596551426203844122973898159978152366571440070911969534860485687369869541403626018633349081360478384267121178594721320831290062815803606556269144143302164722972352554236847462995419271404991231813113095029985249860073436403167143366509388481948355543500896977270577011287649910770895546441005180826621616675479068079011613094466108761518886745464425721602548964653355770526038162801418579766939988678966783189112957533611295523507479262004574535706693705913485848924867679931692310050613399796035652048557960034367997260583277046788494394395178692216994911349772087726030544772601311443565765229191815674523396246474578983004624481552341472339917277567185844578272797424739469383554339837818657323121165455222778054270362428774426934688180036461711946147110951430548618291563429414521476962472207877830013485924720464674491531038276088224514770014134486393101427868780461628165380011745772020563836911182694908142668607228150100293795245644801437244388134864475012879529356557484279063675378059808699291625137526003601439040747359587427923463894903488971893154933318586464781271859414311283554315929292301464739527943634385803126641692130549872625471034059807025146214952402057035457788110450820748778841221756657839085042274260671461580906942566303468304892728312668360535184695938768943638096314909995262743885033560513745487413839821198223340531592092732451370060154675419687244290870048932307860050595670401223591341874590761804788729616243003349018751142748950615536607209134614279554638300217663310282650702378855823125547333810119783372502268736868868184428117589392303888338876387840739314100238408239103966168876574898767839944488362433400407165241498038256085399603475723264315024909837777206378005313834879777628104952888068031549846366529804823430173239891394191765134457635955251094687526852534092148972856896458299046271816842860311140795047497025332924268484065363677329817878028263306248302242717676522737742562505791547739229872258529757351699686963315958896046007321009171326589714064022767624481295281859849229312483926254097190880727190809076509701222546181830550771291361465730819736906695429954409000236719367476667330733147174630009967658329874115088747036285166936243393003971752940896088112715192233177307162076407641904132990531966514918265467541420156769993897085065364508178339640947788425056608836230181548969123029526460047202117548243268183245656055419151639235550098468382877543006485847378440811865046964831554761086923586628308500536915240398554998103972373328712672678833977816611093207591280393160864361324700348260294211926645391378606852831164827983321846918786065565295379942180469815550632770528069721193621741076080981905560058585372730833668314169063062257222598471244591590867030738961547120104833345050545478477388601873572128258855057260197302896495802509593766088944777105405790332815099695022930873333139305103428491968960497260657883981433843754868862361480384512424908494924697870135288541787489069859505617828410543854232804055881044133236697507394964626923099111940964678430434946320590994006899330019598853996883203851652061518034127865957233965015694758790427082015464786898335138746864894546709965071293371351983036191669814044752989294385744232009607731906798299728883038895309198767115252443055955619012198805788860505977626885546100955994600642283561091665955739044016495122982582939025811843898579375637235933876044656141307392424835211169343633324501385750298557369231741905032127387455758292675975601777230817090869493113276944174437300133247350635239862513562064747072598459705174998042757966932356735567699830231644922382128368271060758579573239309379343598180954566524664059980733650572804919817431911954493888528684313247941073325124940471011995008705555586198897393453634065866443657447221383766489686642145465369809308605361117995930493116067844422084417894197447504071412335093005619658148209883947436265766878370358971083120074870207710615116496297267022938325919579742658043206108410900306361645087657005694698041979263061958176193867305244813744225735506767578727463494360475088075183357761770004697016461669946409332481715555368449290606462456685077380455829710182961019775719314107651181052652681620639096744158353627850081168565795827280969592664593372601655170793596881772236992951517185957611495074331611066339029528065323188711886630133128742171660517431158285136365646162620172000094955425176769191323484499825530513207738031531764848124713645463410496101716417843417958337359847270683773409543546383849159298529991405327053922761519772601871646340326619756090898467506737495298334388623767590700738055458715620881720648562309774557099358672940310372862371422805231300101763868734180414361563889018716109685445257796000540360349674028404723192796460341055838962280565253765156406740993941081921728249464404047877267820231055731495115978913327048036741357252246115119206597223321511600838462315037695280401937136452250191035380889840911386353260483757493559711122656376028406693487255470084515509139818891060415831834119155992877733976866190289808781372981148811061000914713561344038435213438066278145049363898303946197697041884700322101041470544208345278438202682365462210380550552039044237269673253086312571488369455785998513459789340148784618898269814695850426650741635244237855430715379932030727637481794097339825064421345195742560349013380579242175358433846206012126204552781315724892348061732396974233222782804274026188793895989016371141385280233576098696366265769734853578477069269030507443636717029800363840255380130202804596597201171000221489653415570339483075671017889619903598347107767395580009865530147552852114342248280450696457832256639279471619718035191508689449464086725201639603005376123614174790003375627526430899017260361467344699363139897959924825069247393467773697535550852054953605785838530880799607961793953123964042631725669152178209714685175351319529462003972068621286044710271959657265217825579940640121976442800852149516985411472912219216375473565179471637627378591472073487017238048680240146257030022886966508141792758443054955696509129705704252952945891052996575943619367279013063965209194327066782024054011999899983657560907593883056617028647796937191613472052082532562163702265512760001681973499685375390591464193795565257828485538143988368621963658531249088545960902403260248250467336505936257298792729496869831571538050278460425084920210717255962931061194629582935804966907586472119461671946018041567405165724548096296858321376312759337878703896651466151144473388510232264860228547832019656312726985307053174607924261355613107040199609124658859295940341243891947145930481394854119992851426969765653783752653384730919641032859845821953265070400634479020130079611201264918604843679102272441083757712571487371139783992311449693858525566774219299923452391896507105663869349175036727090728809020254649271094025056360182071854820940388514236736650274137425816836085218336474807676597958531524767810664641861594177869725152109441996519220449691793780144942345401889437121584794344673217929101850868420420989177798609935593266949114933030047046318269273343170959393683361456317117799543388271927642733730250468921234975933836870676546013428066961420380157087488694300737275364840855733761649976529528957043899041315243176614443880559046893559713273650722835504877547832184809973334862794037228286290751945653294080181963552167870249607189055950240521746849748280751819469041486774813157252458505801536066814232169629148989098699960808927249963995284486294201336941753835724041621274149757666645354995339657671879806254555176922624974438361730129859898694760744265475991332664876693858590211088205826185723068855798346556395746300597707473398154285442305325634700843008156286225728062693524157519151334091069860405366968676325685846148813741952500313776765467318100590085442613494911210357712464456489485014113525264739438923608422164802742177066800952697134009859417835300056098826617673624961413983558594382268767277393080732427661631276998487155657414969725341824284714553008079342080042813721769511860986158654049530885550318109570113805117813147492636915185918913895275903291479829706418021940660912453515545377017648524629590006786034091046528807806778096781168039542314913017009036231440165338898821855355629494415330575782974616315063052914151971776097055561492052200782401159652408187100558433434281352836230583864155894205754229536448827770634332354854780398551607512241193193692323295849120911450801315293399460710873229144253506520941108110350071921703553485508851627347596317682845196821646443631463976798521474896590414585245654543400022503706706418891614151940347478823784050343050882956213850564001625089720153228106360812541193939400842604827215955700308091205345868066558907927937175247335474193760490630976222133114723716018493017721960641388591303441924304018371568863950193756240931634168862750490058509583375670346723546510902806805491592156645226428959375678616439447261909782835140676077057418701620347555122799183305491453983511342629463428752375039665628843479896392327861593544230970040739844247003339794598492491753089954557083658977078599595624762165652665574992433736736828721791205967799108043177473600907719599748591730952517403756550541546863720698197638788278827872038295991045538008213104667889907232764642585496431720884685319769137780254790155577131710191187154256088606285524991665617685147139866176770336965642392100891742645811986620984749300016311823176991432298636772643137556701682493826468211259628251340779469495893599009708530849117790296984592040443171367500411587930705456912601896727616934139842653045137634366639922773490336437903572850818357746207667609705325656268632418753729773888608944564929162794998582657619062725215210183851412042548496156908964552618432905741227810981850124630439286000269657805493625614777755582547823371411510064370306635307705350850054101940037334075941653542495727062153875251643932877867706163135703017212224307655104809147373931072238110457911978239742678146371841078101416412596146700083096128040364817574273872202883799672323823462820301596747572302401599599108779375895274465836750277128039954309388099858163055167589521832171489622569004169946704195194964544069214437486050568567769072069917693947401641597131620880776954970116309516566347187411916345101011402595262082294536890348664484065311136321617322627018427797401640375203289426503606411113816836483772014695178710045175795948042255443232728402450024548113864947799481737794995815877895182022732788136849688975083430910435772252397927594324493362463030507277119185363921466835154911403084422506685350606628706641307862162999584139458572361261589176394279636018395867059958513838486633821746687297937982979601489467861236411532153122446817461399119107948695905506004665548959832845175009796376576381346330726488856573575252433237953463604466250639488596920671368653461229995167192657694531233636759072836859941697982997628535512055483767587187424421846986037653045771821523522144934626236633454186926264572692445344515393265779086104992762286471537345748340587671005550678621635713923326220040476882255190152223404286664359783845486172164083070134207371618781907899747276972936050584672740400356688562804960548620787999243213315379713299580208842909437543776154323925184431677958308321624732850011378789637280164404314237460293146069804193766747845057140961938041407949057114182165256710072481663118890733988507083905653896383461289859450288481681318509113974907118127442227499383960254881823945952118482645297838831392090761587805673482386513575812298958665374826920728414976795867973162513224070666167648656745710490770500807153132589712039230852564994844376566073203045802690145918941654307176052719267458993823694316875635744064678173126145899529366316466442371303056124748408659689589081765653793079894864954085624612569830643121103976327272929730790074035795810588668387166292720140905545377397893528962397176289714866214184896910892501089108600034655388622309797574118846426405231393832496177057984343276753961693534315581874590583269566100517045674888965644615282237279452949337521593463163083475633512196141158765931171571010278152093083030176635802771253608890307018441213668562849778740381970535704823108353830972111785782557229150769134095945619818940324591579038894795273790616329400814868175115263223744267490724855526985044929304761335654237855511700329890150609547489627128017242010248775245298572654555632750345847617364696579368837198654995586398043121124328664410514916253366595051011913039090875977324571206225283406587656961019808183512072584740997162449210535961924621858738969653383481566362649186500158519828626527799877804504762139790055269252850690770276170706330824195278440272571163086865170548629413383051241144385110419609309134286060566633636995610907266951734602093208306631697431542896253126863983932353372519971199451139370523067593394738604070192181155157816357832188853218769678401888961658151603931839809403887282982157531035627825498754839606240750937593036448863830194267242900777079242744374186289158822611793559134360595389236941023058580178269679042723715678920706778148734920996861644766684535022966144439184055787492438991446370975839031549245258999853251803712432292615095691384007309871207178951587599642291678743759418198346273350566910303352680860688295616614904370611317997620944585762230883403519640444385402754606541419385950066071230307353087624946215835614851230964822609740300562707351980449626131369030446290009149513129263320468127241484496119186652159880044665983821707802148570709899138452114368487411278429902974755647460476379249532693508495183162343854673790336170970981878162005806296255799151444391631693961729904456142080308157177413979649741450876003432483004488415205750165020771359727646487288448287337114756113904985272984143155386781666271662606848359770644087473347708489894166079094002366991616192087795115544462073213512171369362583077578894642968857371890679321975596250006836631898576262329994332309041227355559276059234134372120907201495368478090678468208811981920652943878430714819128585592207244716337930524881038691047972017378293877827243678769458891393343812797447240433865510943126355276143131201945196927910490810859238563557633754713251604352000713917174475475987938050329005336435398946683236787731642079804151721195306322456268855520411395069559280159845995008454048511376681481437393893699856967576116613378433498476967641876199584369743285197968861839757876033385712380351914111745325155283117339040415477309967419568022037147739173323675436199329079191759681695626553793910953425812165908055793507556978695120183964569234502881514256193166168618071818284873713948024874528557243876837272891546522232647117359711793555295794889640704397980591647124216265221557378022527653502377417940561736442365365890632503062047356711806938099233639145715063070502800448080168192684025939239687142178160424221375666281758643536452541400055320369435582573327733427741582281399105028279637597894477375268423346349635745551189608853959667772027024577323628605363534448982066244022486224491992887135028475847499661573887623575498994365597443580715385190153311410054112480223412988878535296505016323234479249470561494163457118521407370362197817858154146749417649025292485288650359704348329988644505962199863881853082451673223706893082438036876079961119797390149524021635516558870613459111293317990388519985324300984872044458268837088049348294086410937202463583102124164993870575039321920804927518242726021653740501713808806625731604220194319179723896632822748812313172338007773515271641509663257963919276384591483771062737417564049647211444101152726451080305985251334280139013129512767592578686170484364185051461327585970725456958399836023287161557676480067172177892872818648536459542599663134256038360001861337119403661965423565594101284399606571199730487573569568718087849420577502011200085022522086357887595316546690457771628547562124148430109347581028001561182109221979756035692951729954463565581323288356031326134543541744257778643781325022741088542290127330611102720860988977529582980256370605189015571037538122603438002474761640574105285155592435357958251210191315118707222454153322408192187469180820333894837715146161319758724966290826258520736957194656251151645424944525319497782205058046631775626704756790357541202204255361652387163833754757492152384413287413896277258854496579435891370158957087381943577928169786855576325252628217058089761907453082307136146959542805061398695451571917159154535404150539384908557256338027044000319406522661617330146190389569233469859171147779665986522668264026916116094644061326610260157603131119442891773384174376058359313372463437719874438269425060443416138145160835127435139055288839538159870622237502787863559214679691582316156121936032890419063294252229882977394202674191076982525782299759844457665239026150125721011605339375256633396081908277260111486830859771317414649146344384109126231074789016733534645375130032529245664104365251986902581830699465624320329126135452859334284798901776369564346093856158069405334051548908393219644491296116924353584402180731212849051593054903630973825993571223807400223373487365918300561460494387084348722004138399363551613856342668924057982258516795515656016046664667945815555368776927612903881480171564352856299042086761657658805052914519248696663883429173712393373700691188348558082908122595016336256490202025753441329970377498535791515947601841627720234130183498145086559133587977376526975813783096560937994947888218254466180150709396102785059018992197097879428751942187732027267568664785055756036450379196733263741714084785703758583452060033286623600286805173005095299019230252770075177434807473969123261577766310937069523212557665046468144943568585781181321377940562575003008470730969874526328594096419831038550744454436023486772041159652497451372506530373310621844336702478481386583133252578976024017694980350459824611963228759221382123843326501943977703428772816309461031525493554795633660816240440144760769988197499463400052673521981384625871628801969921986395681757740491339021261451048378599806897202659495175587375310087173578665390081665544719887428067053323204955240636588616695232449314178878241900244501962144556279857838258823219791852238532878391021855455040803252970029664674381548612681491681558536184980636551431037629082567037767181420912354815997756323393659202290520639929807671294811560105465374395706875802900733799689161286344444755028238191995112129953247611093527912085526735018908150997774368134883704283888816290024693925128491910212766490159518686039912267435105081724057546020849531677021374362807127826232397634396289839752351080809387337361528924913551417262508116847162177548194996600730124816566340993367386773409741499859635109143110756652889089299801000147399495061223928761078452640309268351267629421710362728853289773755386171417369367690278445429587689240709022711061687495705386446559016202213890719839364310664238128931984509276979760406460657413538355548100473309807462262184936849006277070826269205328999532640961911863106683851025737121949717435864226176827085971641603528047493465917940359613758155674421415154640033672443105200315066342018913939326977311740017543048939826113022798437583230301216323348742693077144795032887643662190687901743236590867888761828607643120213663153936289176904375304652119902720581240589518391056438140261365723738851976716601671833832468660460823124226334900604261218816347036535927028571030550884372971728123836060203874791300755432397837721454096993418020994488857106967053080314554075853156548900777816145194039348461530779673559955737057056352883761380049189606208962926476165817437773041030186260933334305216533298954500498596809603223403844806167821884370558024399316009975130461418144246471218933564066100762704426311111149752113900046099046364702172095974538851937708780500964346617914681361032469508181982395943728589937658313254232187790030686041732823535643089008067656200567515395649807441476122645697551748380571507042960104694163072714922881119978772116108917128546410379222437450463699266630165060661830783717318536992232018296713572751200150953743506058840063225423855613462538869983464319164801430104892446099662654881410602063913388989661246362469359862629715384836464716505788037791932992491399917952188298553133394343685715457786018030794184084786360926929200324581285205626265811930545901293148290482233288663208195027218193610865949025758575413529161736298423785614825305929589091149194693475048994688668142618373960374089761670594766783605160155551341986177053160218274235503906907854981776519230184932676263910330547362933320365489494554836351544053281223695815914351178407652429376793553272224234014551315580133762504964753800927129216685558819603495534203657870993508980405441855883431630741515062574395970596030619437522537218466888551307356916512909818158174605116469521710931384594329986218424230723907660727192502272325523227650163917268839283834526334621641676187223088579871125935256185152873754752238284349904754703265500282580915545270558047602201446403302508929766220602896642062323619079119860552033692905228577112315497066709297858396838435879987300714556755804041681972720625777449035481682893986719210757047062580251274866284959535215823694329948773970256901875934596362208694876017339193020098445691009582123352884254859590412928707405632867375637473967155642586176785324771881141532580514462240207016693409706663850701263783400246029668359370728123821493040893195757896922696530529948512341143754208114230004882030052698086381691905728308126192860991687376527120349031435379516120109577748196211920805150482926981265464576012288189136283589948609255047310811730153905413832986063176602095332486526071809635027757848924284731137291678473153483473027224368756891373764703475223770905003228859930264974658159416301073167622864154178369998214990820978958224953980394031685070256379713336514186498968155984716332391505747197135607416021139810132167727721261222684474365003321755848250511279740484225636632646586287270006155454026610352972691567380360582518625886078359365143744106825708850591913695828157937531028907409375675404269858093773253352351724504199470392037252735709570754025610916119224620595434089812104086273157337866913892780638862994413895724217111725349306175395049250563169549654867955557299435757809837974290008252541080627880152499991166202268924025462115691854663690349568873953880970054202795449675121139210891062643232855016025066088550525672357446430642157380571989061559689687628697470795018652625108118360835169938586353673540417858725261993415185564441275851670418324123152321564002140767680774052215335576003506333515180327748653397525465664246714833395189575389518081846395278086067352052888333375663062780062623017635329606549144681387819038638120185048046496471403532177031595087125268026960298570216828663289599517480622347701559971353439610392246699124723938893607215899922990704325116005899258795420294796377100439330660980334298240143243427494087232627573766709441147913487291458394847463601451987001877608024009990862443834373637517033267483457971972933763630848491227615897881246357158268961032060630005209935099703500550510342360512216008056660277400185511192164347276244574493674342398223754799022859608818532197034905056458945950044260942175935901815255004880579155599571641061828278465003189319029655646905944768192625013782347280743096279196112219978884423464714786644529802667342354075242885395188326255153114721470888183506920520494770787801493300971341745101970471889719691050265567275204084654126047110100963902376474872236719901359909916038196566179779788264828449923376093633665650526147320644805432050142680956212532200166864216780093755183612393858284753937552753481645883853309877002534187450488331592952097180173043514405253175062575404001526813189362055546493740307033889359885465028360758660980919891636493982232584606453986920384382265800996265486379109486690126767249972583907746064591895147265425177759859739040202444582074239987349159182602118388310916815475839360697915755078336252217672256477708605166849556392091807861615134228240668615526470892267324325938449641502375250771978728857190483487317344429800302823603607240539769954907278784296069556015702443683920271323396248175529683020614477826515785245404966431799560423603292389798477255552689806324643090765636491644432174588028920902085359189900624591731490499829153147996678431570408509981188248774166346794358405401887695525420939725021387650706021985297825462672816659504065037119986762085269107019332614678588900499900905457402760604837487360288758646253766921192851247173303294933400484464194879508648237714722226214818513755578715516215075415790869673649631881726361969436856286174396871215340974272172963224109015840579697458194172542189269886076555289583487014527282377440754010424554546235643809552581697253966016566625903748115985527041539929589127054792668599312516944164800369771626717159046996509008213250660695186016625659694758417033848194170046587244480177515883582306646418743747174104693151657688943341509567903231358948263871395171298842076429957120431467108344829116897323554586226915062936979464507652728899921467968043081455714012036425718337671450608291708772916243269293820114263098198942984489353656212694507587472734767496849785302126735564123274873381844573968053916541811860951921226209634923870303364697642678805195731054639029512134666312126226590707675279897530863175953011637637740886385802678994567298903016469582722288800394323414527398935616164841506515080063065616308206367452279614756320944498786048911890512074109195252144278009829364021701085534332586191647220212957619839794912750193541221604900214688952731756176312025689507466453634458290697347163594514725705889777774748528141336422568532716685396397972734510034689616089120447296428223195692984323333683111383617886269105461009955600416114741512613722230772316022555417440590533743416259698041533570738992806052037271946839752840800330940922846933221248674903376130124309194473612932728050568135699837547951459246450718154314235208484942412572312654579978332411841797282291317828335891321109414226501731930568385193065083287725275872470054599576580681337312442398304791171129049901736705357403007679110669998851777176592496226068747505734537850606419066065897732331278433973977935905867556014003049347790778491500638194734637458372822135988067443325195643309301040732610355573834280669681227800898018093626288944945883066354223236188754319358197890110253497530760524069374332993071949672384167401690198154137570377628935837926091650017578245683449404273194708021151106234696759980064695768085121139942912600100488966306947573381629815732955127595834056985964508201454926450341427611342287022455997287713813672576109366978593942020706995947079254104185095189083059623455798235496219263429905522499666043615454868278842740575785579672391689622250944907657652558726726124984303027547720730048962171821243612551138809919970647511748895665811665224956260099045425047623176004489986927694876038497939212353030428301350139099045795376585085690553682574403904869794357502121336877439974262298099270431731421039029633082601566439301424400250202474884427011901722250414989096493150064390016844078462907506507502377864021263372056020834462239822502545352222758476424618071946246090563334335170702181172327456633172263292519809474388292423158152854444034419417557238218640863723545528124421165831887805605451567239921900051445973340313254632083351820896878828975756057520990621371579693312710030904856885827424166568086676361014998427116420112992613698034693189708698042634006985917290630163641349317279914352176503717838683825050191562598069978038046923470513109198711935269427583561415428701292499809155894995156109099059933458255241223175687308420820444147263594362105910891596214790030067832974149099356855142003479401886794765159543399388946730408393858393447994139258893714089177529325131794870468215389482406627151795840147225199095437768122246668025708334642572743408110037683249878303888215913025798512849817927228480332648134804263295558129647107027734751931687823859788062397936728719305251544432079182956210149078493503247997478687034061451613032162850491411747704052042158826176537402201217250463209616809888081323312771297920417192804139037637488221411318066676969913883955806028796479145637581016956361145384766248145278371692211149595458914821573051826000523588139776727957168181062412596529731076108291562824626710739900948030102766396229210009243991278453400996618630814063349116250511208484903102232862211387618474844267983533887814660930782385697083242698491140367399955862750550731093043239836159020183300804018119134409707449466628226760178408085588391767980157043519102053405987573438124354029294793472696634859914206061982826712025800767218005719776413902564581712484824698702795196599231965741666645230938945693802835790829619946705439482168444904401998395880459264392572101240319298278520326127763389252740948043691332833300785788222877491264908354238827410460771073405935060159073772756722784392213573734900581051393854013967788285481051609262416150112780995949237183697973088477561837008129548114301425611137323982434164959153810486313915861764912055358933276588359001675222867557933290229912399001074460889877560562039563078349752517065559705765657141436663120857866236985200655072319577895098343997929868302692133280233681992218957412996964739415562244138872655186688621377307975023598322454409095342201083349826506068039478793379398745191320379684358021663121936945284074924721225037312499724611834978784892847586115596639515307580152998908212316794407121624775856568029189599364831324745431407191819552417628565788868453791418603826257802749210913286122444507107550777752207503238189265742443735835299446136322249452128582521349099159386359206258422212764025776370333534337981523806922838438172329089122124999997104020992005809305549760435240064307926419024613294824876777391056602160975623617058876735234127433748195109526898735968129036594710477789156819252204632891380169966591131863992343222348316189475842226425113681209969897226699982976849330583414664785988895975401634630436073640250217986891910509486762455276286428575180244853733446515251114530267451517322814363919332103000630448826863696587390906911385339603849762901347085644015085918843586317166642524024876285094313364697313709362445022629567020753940465610083232733578126126250483102849606561768791118527349409235464636361729865855910600738540820805714637572830547254186103840678142896782915906982067657449204177194433493939883549066053026978975379252649891726613026372513367897423624071485086829856059757643866497360624453116412035423713246097937168466676001488793538180909419890911363687370037810945767889809057057556058360370826784122970075081141627957746385472386941113601865083803448393210363634086040329996159943352109992029225818133056596724086450308019854454473210956109013707282070587387814252488109612805789968962780126987968018233910551576886105121776479002420530397156957338062024995992329562545192890191047795787917487427588741468147226406634379856197755925935107942128986036738351936082005707919395538015293442845134460996078674491964157736386484548048921387784736824397152381768986508892779198056461358261761750570010435753273134420431496093923763412625538708711580283560377494849396854782181143630273292035033456988975291239774531945393947133680899310751196754620671882740825205851857311108375066835380042473775263438066128969669155550080442408454560431819492173106648047151507652539112584035397423306586978764851734381339120903071389719419137066835420344185804060187214962104006635216417617161822777623356236632067882194631063294872719137687721017631571503789273618413735534383350092017968341361170468729617511935741278126296267750697508102193351822634186414627013613511376181085162831452313198124680188159548608778100742984825908782252816925704248080236984902242884904891859939860374986236546525600436866464964908446277628344436057971787910925098156940535431454644678547125881417466844522559231591348869221206384936186632731013763989848736068515978435263710909692529708495152448304176885071243043966266819658473062117644863683983292091489276223947763190751805161770997659201478189970594017407965498523479567582490797958650387968354057764321770967742025701893822241881199004788259024919533059633468753015285482186775025444243103325485458673615513901921719023233096123083589086032472518725887770778828016535380981830502497420036022315931071319356761166827302985235466829378843975318011180082847637333249187760483659071687941051247280206725741485524516932553539816920611455112569676780210430923512141146037400967827390214865294985796717986909841177082007287377914430890242471482667671674265261978864332786103040273851645109871792147715724159522353821346322189293683464802967696430662190278537728403709931711730433331982515540087089369102791996666109411020191848966511504703986439070690377415228685972614726409455564769865744204139316945252017849990744997014788883524566680248454007241209045410074005594943174615568898819532312815552678199459346871649690484651095458533112849584447803120650291664467603520449320142563020028445742687480074004091734017700439523642570194663950087774541500521732375752308768426858485099616640806069637742358866400376505590227797454402967836026225620556627531898908502455285979442515341044329051313619287944239414065350425297520748411310233875720654748864784243099119646254686788945030618398126180617886962478442843871197861651819411954740815698868953624697284178993502588789970581455353097993153718700023687079993493286978081849390032984155697948869931276580831163150177350158611745366176675421986257984598137763600599331147862496747377168847234549212687812775371498684261523471015913020045762661817700599391562789906445347674404578847137862442942300432729418359208353251835305721538464780246137491925683572475661678093242224393670883763434132991738125632398102750088277088727066739451544310327451735232462019860897450098973458578261653621640664147405686421416184196653499784161221526765912334044748584450657826238371123824638721495970333669983390610597574962674506894780651664939707341757981769320992806649033238194159652340262688971886877501501950982520682180881434637210654592382847488557773241292709580376424934655357245400296114737999001647706493651232250531911841018863753743575424230894255546753471563432124812445804440486048429133363388205610790626609279855847007026610947044803753314591555536275238643380284697298366572942733268735217003960607475395210650483305556099654960032061132401803994272805002496471695543032030765842157240923488192859827730552952069113464720640637667121459971512816593407032496240029898537158686136518975550838351401350519857065079826449830288216706723386516546776753524564314125727902263896572701926634736471083690666430636287563851228141056696286605120177142054703089083002165434581755953917528773363401788098517980625721821782668086036761201163823104617550299544489811912832351528889763247696058676723400126982644165274511689407049525717027484365450692951615352119376182910772126969203099016991826614166184758733945973602499560281146011888955222703038976483753419687918007831598727658066438022811998979685702524742461138016502135910865713846643132854611109747345282954213131576672392956948449999814019041081035358529257187001271852829654517145587747885129736833075574310169389813802486616687217702196349059164521312646538897462780310910780690014105538750929991348966733409973443170979199250937965161591785725288463401478160148461082261193521494600718507303051710781977435738646544019525794104468075253657173387411338467495184163730168446662296689206335186526484371052718654416197424680647772450161350768535519396951451430518637463040819329310530844326190876246194917659682220082121213544811198434925887568034896135762934094812758810432058422564120401035094869400401356284056310502517923451284769998329725605978739505017998505097298991930940647632815545368256239193525513789423770457131684735332846716377628924173425180475884597558689672905804645610196478537725302277627255008471019598771050559295993182448931555944128295511450246517143654261132348179077052034592192671857169502112972388784823653479876186489300531341913888780476709451485879132394745664386243258662700499405252874390245629604629248205059024720012845643533394334541151866420677100651718386590059761724601507154966494177454323010432780353799694677725735086855465143638516027351484231188967799156722031200741898510901305998513512662929704028921269477609343706155541623073616309260651132961240184594931288983071220888046907091299150782339695690622730694214284134310286074511904147732984131258973312667458128523368905508910978221702360871682236015863209156081266135459386637219244977015308466848162601239908034397082260628596064529144305003658535077130604172781526162981939884930715816405471428534058604064337760262736634644581126265487067185726784000635881601482093517176619323449589101803023750770665799595722708478129895380314198568146306177031248925919881268710104993844895500805405111797779290372730889560636194896440451312566281986360637801098753744906037477447521529483200024415148645517441116325041997192084287857581149092688621251549293760623124662534864428407367840801947892108006113754023325523312339704142229846539758554999912825682089152465206221532427657154563185132483192081935603895853961916312617664028106705383957929292619876379685874580281432632411752720970539995348556882591266724526034552660902489667047419613894421794179638408483281729112919717929938370505343912209494735016764858940491822763143144818185902927845528104977434818556810932291114465035772493465281553904581892418470086890699901786692078816350086723257731073718901689341420060853124705680180183000347678276557422505965796782992695563440855147619386486010294070223193866343154141145936280144147311916129946790150823095488296856441074639255532601600787448874300831876166167177350602507219447197262891570758083445125282472092651014776879507865573286829419796753401134911775204702618600595218220649473790620597771451890710158861626310789978210686488015334615829146353714493945894724539315215044876007011776926347534673415078895587718008123154088416756196917036272443963344568023159354746013640177765997094150541959476276706238796046809325784852992765234744730479957004446371928258121675914162638207761156745928103853269415458872510843668746771774591799473927088726855000924190455602747000879377564336449630301871837404871695263303003426311563535468665244282173636853476471340200952378686710785027519413169918055415089966260411137484173609245077954773777846858545519796249253328791061053428604597542402243216684622908632025382126182948112847663104735640627329237419800252500460689094268213367605712035371243562887134072213392012543458474701504731764686892938983695646894486932501426059178798956301237603076649182231244044991521659072581598855851082814219560324987495260723792644457680724163491750281356411000174989638321505903447923835023459197630079158208098012907012842194417882706789736814056322826129910555783270190388125428611354586012590891455747398652581299868884780558203196572576604737566678509197348489016874644906816696935879431060465448208898109601344293589670779205651333931408831931571095069746433207047051318288654542717660820860920430075272169135290430480991285375025051004503172403142508655274531118681971154947861146340080088499397622982563050478048795506456051572434705356673193970086641080190499229656328287563278121542298547130575805327825541301732760663238932594223307137102292075813511566107707764063497673661416094323192949408808534490635585367127915638366120776922107663479870118483074950884139023755061198109858159223294957148621477510789167345364966940490909163421248714999530471830266796029615836447406590512035893876803262281399739019484186506013236594317671002032148627436417879077517432639362053030228158149790661485539348575331812049097453606051326863476127596466469097544190947518107033316648465478574555338238564161831324619514565196240040325228724007495189141470504353362648093983602826433662759106716768843001338040510803934193917116551801646003827211193976242003224394938969078850425411422265392854803580098220384118679424163339517950510394715684782111401393324721128307024638351343668851671950606313825103507876453906036763853512625108855233038164406926527847096656698182570535101050100673250811858437479492084540318307474245043410162413512540403141600030970622790815596883249270140148974707077027968027345082816275350030908575393499937086881691742326802410640025717149262723254580988638217038378017997566953764065793623459660489192499250547068903428448149873488476332104685894256723502927107636117780165567753708201723635034390147049537360728946291123160054407783166997925616690027793416184277316800539417496711323094364926668089452412926422192491966045593457175649904726181436081867039870927418368439300939874467064041925268679771552467267131272832284888699926635563538015878201429761160673391890987642541751778816128087579333443235009372927374347456647382974476485502137471472948295177103614673884908702867889609754526671653864807184649296378649733126003379000784207832387849406718855390905100417481111081281428311563930019190875229967338911474522059371156611353969106740384417345276619930244382300145378994867812956932552929908249504244114433747935742871278835214457719309330030368602361751364997916230174690018902187610867978465291748524438759294238352771735122463419938050450331381904036112614962527294177182094852649673640804960639324210727448123967772899005905527593923484645064696631517604144366760927592280051524072126362858317804728025446613580165019475451943948604254356624581932306594100062830667207138567179345968626220618054289905875030493965949293306172972561173300039886115424080952526520250307880953924054323105522467045422458865162127695771870843603112254822440293954636805643640862645629288332535416054958944885197821803632550638007755596912919686305049612409004579189835083158982931715132992346296429813240303488916225186703018985907622225067250418896228280285015963004228408740307802579743660307272686385893891384309631821905578867891523711576646414498509585852425449553326617145273999226892500782678634529692146642673877486738902398773959093075955788974552286956785162680557623616401951720137881826517992821849171423554597300010889918938691201394338837370233155121496271491502240507510653794275974054016091335248298701955333582065494878897937760729644147438275702870721144054514801047030754161285338509434101554108239805537491868390087420375906551498690685131657110957134648307738274015171109080554927041738367427064087664721099092197039739342431433743650507075141536015203151493375404141175800906950833611889464542397929736379904292055779312092691016371160686301555085093877650536915982408695839878901556817236195779313053884671230138741285066854422422640415139815550785138492683734048103163040203003618521518697075784029316881530157767434350726283562007271853639983272885595317566004465649147372832725883502023314376832533040708537311751647202389574097318089746648941857300736544796613710547719133727283509093879515201272762128311280077843293755696582611766430691971993770814166590934604054179447330786331926195754381684935642204981290421679509342714571835400673925516273530670974811647181444133450846633811077445813017696616878309033418680489153322200968147690335640745984740322535793564407674991087632448910517617201661977927997500080114997680901767801052577226591958782447158793179775908608202402380053806000456247252229542888291232415769772825806914161610962174106839312312183561823132813342355181125545728702009237738635236409984812165140059638317470306133086807008729207881738876490549221406828918755351470740117326459586350393963869231759552896219340170967008817091069848741716496992759166674673768982933241100814773106552594090785885611293309939024483311254459813244767668304582802059023771875493941993808758234677149558928998718958860718311752574388653922008439628311552301641589237202776670023383113013053639036336113233353045208966789875116343596290311251121020278279819766266136960933927998047052253750001713875050392571581406715935094145719466797801336071147980056422709186870213936610283244154338534039199559221893077552729661970459339992330980288165925450705275030467476963152387157269110723194790886627467547841187055285897661717049542814772357685687987450187975967365212384551571562523610928188660808711545889600471505242754746640146139997681403164024832726378908737619441849228850180429482217355011770546120771783205233039989323014106058132522155224171140918776717084266419875602985781488543454321112361394033836979851546107397062620325478214517664617882090244809361056851834618175036525347647407451034554620726379722547490470741965542037734391853642434898644539613375268942508757807286954154207255127396636059558887741660168218633263624849600814792765748838165145827010901980559809679689267425265130011555276324855379115945202870463561645007050232163001888947038114863026578084972260358614402177846695154354490913583085876856091207590682709437351792643488601244554758013444082398194184218304478878925099671602706834450898426870711672643801866655516265204310439489858572072776953224933427183684733434312256581900740468333520643749619961412205259521790214907081492897580971885484266098524547386625444131706140070311332086580704698206298452653113583982313276181255688045588693900930550455060828107198054368811496122253595174335746829652314496965884899823480179230154170617131227240199370134104911469941900562334179470934627491300344204050852814252061232167861075276700317100621353380651323180188242610914068283964854505148126512687692448768304141283767957645396536820869294606789155473330963492650584174138529096449833742163638499208246615985165466242260197573496980805972307428522941781128946467635647408817249526850463710470134240568623187342078645021101330412650109247192370491073089023386510760192206689049170462997454538856158234695871018439512057932782389809582120514713159543674077237819581860337209923668909605835224765608003327071293057749242845317695047794460199770820332690864384252688480120914762794714933693812849971152068455167129098765695788959933886699312849817678779602744810122854616655300313392595510795241030094398775449458071190976133648649203223018398125492525860394769444961712584914021975251922720283768252429527757005584620868558657827213782598131652496708435001729783305880487847369749594001216880298175860697300350903717089962429980171791414967480145531221603502320274824792857750193557544354576548424659757516007296811233359864300874608250522560191769101879437345067240885134276256865021639932430532871581858461288082020718444383913910476161144886810207463774461842146493907249498884972415288724737367175761384463981708820588009968646547609113809832905078549091435448515977256349280455614575439852379548080750560121402757404569508544216327757602064519302988357779799474376055188285251595485052752026686655109400977809616941469036962100620484856203814637278314715200026036746922481948620616078643987037618305896572125835390033159446723097418868861097546955259587817959005481372459187489343273372007208082205815295657278659270352845194209760442073923022427890746910192087368036302987023735026639711398855220823296962276431069882072959240295932796078918873859921821100082281874030742477854154699627652851639751907722382793923818749768297791137782959625372440748701307385093121840468711135791488048818934109241311690810573417313379838037725992501836034460210733214382347182118085631570487454894394479667335658453637402310872138977730946420165186189415295847932193794271061680257129090512575428142690319318882875445546190670151920762162507407037126401723338874884891036940712033414089738029508608165715945434935362841732511187123720467860143012147452468423968217212060288445117501041147127757003028248497477694850453728766382371744572775198439871615364568190504479677095853590077932542112283324922479311646150027658054070348101826704842646335559521522180125101510913026544863926043604615662979053930591886902847158625638219519103363830914695420907823161235894551954630684124772825448984655424621733196021239598150216215319303361149205343802649703017761737839387575547108476782491460341835225630200213555537448502856884489773346431849490700859009795763886730179118794649712654515627917396622591710438361938404148997728852971102365098459385700729296734592151409118532608055691340893679157466118710924391393929828269854817143993353462236301508341717952660733652911827732257055977861861956509854376255501408647678357181454528069700011595102887725916797696147170773751916616606367858588068725398381691767007282319923349906956363288844782153821748564466166614739050391390514424429884568232919708568737226463095533044087385779308886548024718294568601326128716275052366644769466989112098904404662650885642506595483588223491544029706175473131199316678567858709892982824688992814918446809198474619260903282213373390515055549128726808143987504051369545826819047002747823628491842821094569546733892331325605603274649587469255414170497997524491284099791323091902712048072086936585769805173771943201264932049039379057571407623032767403507276342755359092527163397768472250226893871197686310019995022741826494391958317468358640757039298942035863246688786663333962704209644501193081898751375034348781941288867534854634079254568650474552130423844748853230564821392570857746443340517010003480179212278736233070345267139630925159810004721809261548814373923713191620597735187720804351681037113324787367535259714468118411707801532958181240110682898613398510744990769219322679219665613912130652017932586746401043094420358351627843258024440942632436395488412509864026637028892702536007017998990725181945761579970172495146600376187560966612339334713874936595492615739554319322564895995008975442010222549533654955483472317510113387146230012074088327394970369589788423023623421314666750250924134247665979570848258449057585408250487040969805079339889767977002861394142368559552651011270768614408111587227149781232668749935254982826318343165920647007819674201894342847009810772411861290558531074983315396203487225771773612001303716523156239153550729750993876801672316475322932908480353566131035062384832968264950445223239638538692912307502928654651079505411104369665982404555960863078143550554103373181664642316762956411254731737113891843902393270689215404608088895749768142909219032997754443046168808203583871040475062720161864033627676635152262203900903599300945590394612896383475756534236138891313086198237931411941766416129908470104626277317118643007662438226525224742543652752342496271401255757823132780045868897454814927104732519655311086079971207766125204989303598491078898798107593133253031733725934307094512214950024988139701397464929177789314497819551112836820253029595885630473569212067506415532845982172978962997878709077315100938630700833637126159501178770070326276331327605493134661854032226604474577400543517025831817881333183964994850485742796605428664013719366596499169017077239764758795920232410805067628330694794116226943610090468813246576072470884186209035394893773444601757046323856317060459108144413358060542993886863219239224003499532692148953713069398382437123258851508197253290512753154313433916878580738004202095350673362008708515466615427530046265801752088372320435131435413617970612513332333449673303807360829436996431359392744234990081434373110210998035139321862827603747047527046509638633815188301266879248922868411577002186821500781117952024390818863431268805350370608478892313974900465891056416750757961765502966252630792167103428805400337395792658700157113215014324943735581088009677606349033341725141579824995464487031678716522441927002822389460610168116133524107912662451582027235917616650333562045357688265744310764605030869095611363232521714893723374813954716883912093542418123020998237737965024068811938028471240966844879469202776492609740515792790166282480280283431074451786927175460057063360564442828061829491540213011996587889354890984141822766636633695276427668754691270685363096212136003955346219010444224381779983926783345218434456452041733178490044849524456169073226720502316367385076940388488488491429886409536726724200815688417422709844811952757360394373131564752160673824754594420744862649319111033180784397996869163327149272230403331500919677606111282789506825608049517743054180639618926560545154368479547175367784849578071337628529529832965992406280406970859169795130588410167701212664643247343295633759836725582502355615042579343766452016033688860229574035904079158180943959290419335403418812747429327015967411265611823091973398034544080399649508475832032246789710422814334930114967108535632438830917947372173717026889431515938943488227707243647416734842969751703154075158880555397283602858818162003008453801182674763255521697071045246668631224957891334129992058179113190673855436739930641969716303786969948031491772403837251194910002473164527207341278395430296857204582484695978409086313819425592034484536056150946192405481790028971137874465957616226380580740249634433772650335533367210125579143475998888768129893925983670746511651972963230052215401871352184677591011884771811656288470285133550006980842439193960139123904017632208807379610022873644862579728383929388409367444524531091684825787318922358248609842196885922771860897555680375809560895548549459167726307229896753536493302731018353742699240901477665250343726432827005485933341023815760324408105435729677767896770697909581928702376736448963514088770666906505188864497746125907948601771730713536741614731461469685059674752588924646724567973808164645110951327371388501904356833915301669391079987764620864460016107117289809740789324301629712866618505932959671874737826664085190342719101073897108673970915613733502924511946806186111620294810084675717881080636891116698415625963872207243063359355152251051789174895135708977808253073956012271245858405008731736916186191051202743731086229982897521525178199828405443622857060702729173206700441059862076035940514205283695112917962260750621083881419384407854946306367383599846303314190019790243953334305336961266317400520121072396955199408970878455082597634791985618370516440737346713980378720969320770622149919583151394310052590995450978496686272740296976261884982415010501230540105565578246892109438392522194996407161863567593319878453423474511449582900462730786728367896095750842262277091267709102653929454072590263451307906746907697817860465459321889513476415424468169139431903684120495275113630764206471195941530706710715997737665714172021136671485428360431580571582410099154960250748200916762928434131240452643058097651145667260058970148059515110371860309129089120096960501919640629840006267468144429478499784588402658889148949561046231631197585505721656854375583281092949666239273622266154157654906909600614308406640654461157716246413704356438940784494544456755906570850130452536343261100813256675980999661702807766400900435475193643113054591028225777654149102165763025628251361988067762788360884743415255911728027993372910202073581801514737415491436377738998885919695336552526001458898890644494405430906962391728691672708074094234656825485035861479931309287894681585399203622791341049014232695594888147944315018332420184179768715715748682271157916113232918723503811872748794065814312593848148860229154284271403128172362572753768013622348022472658319437942372318361699660265993311291075140199576073674827429909003547543774362736121326635957948138513136036429935281330057155547400860191468672063733408218059208917020746046737347707671689157177737404271067904266910119301831644424606435585355269536903306242568663020849585197065820916357278533972925771285988055247509015520076050603346249034627062019579149449220938164795475297810576407097187904941522751062130041712388363178743005633092160904243546615446468177438590356107755859338110644411952030516345479413854582523393691700163367902168513116710581295242653478421959514429671142164488268795507995817241306149714371219567836823316691087823664147713626106674394475933526702005775437668659272592176448535854355320872836116709937545540753942295574773685273529917950025799449832431207367272995295730399542596320719467102441338775589779933557756325489368377145329357278133320533114822230010307235066072183345534140186576110143297939300547084893977824890501288828372927787568554463541958432949441057627450039061252506491699259365078689895515267861662563795166294108276650119260341916079662469765881394831774154484449372387428870187427224554770132269096679150415326185182414472153241933754085887341748940443836620766110616290026706094735794962796647798323747382434709642032017685987413053448913517801426166952370024466506069535455581352121560404678898347978966147591684901856222183754805129340811571766644963026213190762336510547497260714497078718261801624372974886635311262762072438643296569751068913615313945888188739880430905086458934660870680243678616714046803920474279394981802491256626965361778481449610591655319256294331720973891500695604580565716850222495085226120400786790641014769170824971682326825686339673737838743986629064464123987480406867833581626354344741794574297029121961723484541612197880561939403223075584269613164346425030384152250458987429025976433655773754000118551928130820144700270187044093525409899732234320815092624813644382155613926663389064920601484461414183429414671351865203993948709185809812412561702814108975330921817501270509798979257158457313402209403593068914707652197373828467021023053860849346918736605045393249444221731637386400840560041088423586594907041961574064999505545633593940229687050912172772709652287756750634035577129112003838296786068846037174639547247579299986018310992204549914440891961130734210050781706359657018782865719078751045165007002840208961207954158940403123394517908577463021407829909620658355782812966542678785448626750395146157867606366119942713902799881084197729360348997593875338931916020686895499848391596022921085868692343330627415338389490489536464928124806970776096659128065251285341278356378812331194343183317023573164107259704669093445535759435192968332051333844165126838868893598688657486575640962825324373963129336852257220700744388146167412500343120983590796477479682744752581526375813305150254056541472220377270854190349799060575579177731088382303401261685808506939412321951516251647521765225292354512678916253604178508733695677547835874508142498403603487847461149322938238630948065334225453537196513558015619647575018780928636298809920900869683447076441346743696246755849259256828422343345354199908867664086806524585616187594567991279273955322217188832119360154621282677249573750718109002585040952097304350829026276755809288179596141179374677402329507452195557822178984674088617425952951560444220765074596069363392726341629873518820883425995947443512703908647936964064481438002257428052846686775934999162503223525095562835593263339467112860164624035986647821004134332407707932729743965568552723092557534196649885158525612294390113824842190089947418082349468847006741256810128969274787425257907618397780567857584250736849854387410559458290783728319400309034545474954982922720277566574665885362785401641455889846645071307808484586520097702612347444921325199676833257181351287041030579922180577325037342052717903884511268557887964056541853795769669185194386573538407657719289606409400954259713833071964275270595749455620745044324638668242596772702127650355382895239126518078876686780684084206665424197251353409940788239317590485647318989745891599125877122728778207357815188941130908348776851914968598031985628692130531311354667406781854301561666623502444058514182286656097482085768687036542662805451778910032434181579670681509919445238753214433873888257094426663263484365951875587886044196648005469294652946615844693626019526581488534282594942047779719058847742159833595764947248895649244605225126280347766010128173223412850982688174088182219837274868250435720447270042336489038816271582578526362456388802650468382003692604632475698892742793145032489706700684628651972436599892150085503927650861864231769380809985299141998836066622790186774230378196241532667462264299370524952547492411485011467683700456848542455458396970564998459483717693561998646603650096736779417059652245911914193408955904220875725926299469048916420072180563082584346465886253609645980331533361742516626089999440798585400722086614819686232656095722912151208166548887615277240103273276119540942063623011696451749794873165035056558973500542260131480344848840808488408991859696653211198957056117863974824404572446869836205415468278303827115512400650182501838027215866940230923397247496666693731654831952372467894336220440278624873145842665821634709150229760813434251746407800470967178368903708370260266628292481707122986021411056957959152297024598914541491213911655242875812757161955187533636735751569586515703658342203712415652833188721495889488464448394863275296497491887240862137300231180584801037887077964498711535448638385963529043295437998227546874847346225602220470851882847091058990550865016251630727387728089448060957832128442634959595041733425628765873081939099660276052838193883462213143369753441231704146841284235420173453464376610568986767883188224516301310180773973321398220394083521423705232928886046526729042903197211279464691583353196784936656996492611892292327035914546672166679680406262484564498422818277798874052994497451924348997721825396577179889916937959181868384602262832631961450254884934140523719712396675265046132968759889807473522838403286356456821596361414855006341744404848750581795677294090035868230176751638364352205902118088764799139904432027946292538144797714468949504067071360091368751669190583613080011255558330294504419408366061595992241869009242969227232513991715345276757338652124489853857400351819586563105364076398045912743667663892005855516251476430601541251044339347548912065606488346767243937649392110765713221057127917500372823983575325364198844417403097738600365854078054494441030087848378580770062707466866250819763407673046972277459620742523327406372195122990931719490469711398305769235895203423058674515002723125656375039612869404956456724276004842719821830760743681154641566428021768550110716985448038400641558090896523436954788422276492383003332106472521157402402595261292274968604995344532126661140196441166224023071831703752386231194906159413982995949142062973715812618031210271720810372242562570838978386194788671624333636006512046526904284390143273226017441811594912826284981037777065927228651820563071020769120579997682210424008700189722532074542124703468124134353872649326752056304752527146766279505617816056156859609120822411535203233740178112727204842745993752590472446007939703071201646649873225647239374318192651473539924464474654981131087183749659059929857058478056084668979767657292233204636905087097920365827377229269832824528033776154590840731376587313835857445082418643197743780737579511794878696886483855635035182568792047162224799279072084558863356389411845602212919808414099708887429791903013728958618768094715684454803565528222609966062465410842881540642137753532800445559141794670354323546773104512472071104747179613102032705660835346020654804450077422121442683818052031594078946417217312740088503768419601893617016537028721221852559824033445612684487410455391423567363060886197829054804195094939059642464215264404787197891228751205128977699862980902431158578698535874249348369312590442650462824963078391011413422702515897808207412487927760699336969309092949591707706871754156965950647943477271764932127685174503034942132513037924380667570746579937202862651168627163848153085655814634472573235081425037530948258170018899707106294767805597957941661932775992791570165138184715445881500338922378644164115046629350555656507469269634529721163450181377524350835171573563705409912948196373821957137280599593541386718515084462317786126007898030283729378710201107238090112971852572928773111492630099557765630983640295994235742071195990146204397085270818600459105471060090561068326247190129031231275827058421010428756865117296569477871092952897961810671483406544409540960596035751729386360539087630058526677551600208412362302593339455462096190144389655438966430338401884340351558334157378263035698917588768573191002679581107926790098516106862912467796938258381818163651627414400093779736042360733868910244468556090985090201964151581683188144980713215994433542785302264516114231126774509814735734666306909962144792758433132899303395281259675790077367247136159986952310747664542916224282816881498830992723452512566814775085191278778777719861057179277246025064319507915916607064268231477864522587435689463974817515740109308586032467863019102481571158317327690132956456840057039023205711488340366907750071779138844004188681088547661090572810931792190243884852109214880720070040524674030355857587477623988141712657001623250043019820654175858073669407825895370999571381526055377510574111445701030777227648971759213847739821004677021780318730055818508335832522064166179501839123085068980645969483090773904276477454401143503614446421548141501524882935590791738239963304480636637490086004939294429473622368276520967409625245600394836514624561357627508496027219477970586540731240698471068056715428669493701736244320647159326163929435604495359705268245740311553912417850857741150389835458113850762243974053472994470689314552171317666840076874903839058152061500976334023278293819124458709082492488215993367122522460365852746356133066120690276071560399590994649546886000253914108762662742959755877023340336837283718668450535406947565016443617582981648923296112165727405899811614934854601016766946405057967192326810970378422945574052736243128129758087255571179506999913456941703451841855858090126408019269186989856414361581031078015697502906156982681552108929221283101664344579715952182095766205716381307682938556378958700257678333942098140996302112418189099003630101319438797711789453072510854494824711888733109415584633702556287058975001972267263889060362463065344346884229578039654140976770468012500789080481653900364808371704171152097621761951242014402623894101789746872415995230951375096134267967280123456410233598801160806786939697044250873610137637386329098768581141867616371851322002309901860605254255404753931461360353110976433522885934612439203450497181006156660589663046695903896753836489134989188574983926441248788319983952750312344064669384788796023875055652728898400174125700223797557753329098979475201121762770662027360236792355488587454584254855311822294541693738262993742157305001831541132066894969962995248906382788952533941634153934843098919307066839663408763165583169930477602565064014649766178574861122466695630953485653420275543401379540595845267685657438077389931834303358464421406849013415703534031153366284785490103181685210644251604387229262543534337340296466441445424239178826885124058747968800671230229845148457849960683220653544523428283938308718736808723592573071238697282876613353271068960715397083362452479153165966123523864358953686395927624539834198877173266563676896478083846668230298404703240300231094182184192248348148675483365781507158365269450804955189400811893021622098611604898151881198492056536015873405839778692954749224216002978721610510441619865850929437879934771437695677912703573394619533225811325593257808821545120483222038206689560010894390256473179704472259243007929407424250718490382964314107488812273480155150451002898578528916482178770355567761858771213554636884248001069474409450826836483195256011891078970786909825130090393677728602353219529959453875345985041107056495261182902774173704524786617469364780598848866313314397496010785585268505318294785222912630023640598213285134415045785537535604493643282952701596628142279514319127262186706022805252545632242544135294913817116044634662295007456146348691895046027928647128821892780809974771090088519909386499124826634789149218125958967831145367575155527658800195772825977915253031654406969805221242039975256937870416460259688792060705249459019938577870162341102984457961384880634575234029170106479089442222315580785795803910049292812441370770441867476944822930871713625096911177419590056389775366730535185067847286116880777791778549179082917362747187796847543752254836759284043555282724710601865744560710839191710814503525257204554468142868455353828899893925832365420473368317507208626941104133161698728797689350725099807314399743399348466498412161761693797968917223691045432910676409985173293955689636983525633684973550733450838504283559852088028507868535534913734791081080473271556440440211167725520878191207344691947173286251541518168561377888394032606203652583245514321918909092007192899911260756085281926694347422291927764152792408358202031124785430304726723996261045682567422028678668998270511654081798891380623798457943097762404067733601470642877844515639828321661345574466349094090717326799853060818361888061090439866810416174936204024307979482122122819194700290353918922499739573070243439954694977101044385131920249207257007869514425875438103388631838750756513742061169752060356374272199844994205388840345348997089214060090056402844507119607160147067700178740392460081403540729204511709799094460067262442804061331942544402621550941843628119186482445942847437979663173777663742595907374801072134052666389774620619121692955704498711101143762147804149771459630023160881398344681290387931489346396918146923182101209744410750291385232128730267493611113685121734223387977226017562064196381494774313185233583002718548427128374895352627095116095064495944938247698533655403230595543557332060719413838371979827662580644127271015705836006417131135527213404800517080286166748902588264295167670311570700971511846642268176164212542220059441438123945956371474506254436148277574743574974928975652724896166590905418515314753765811328540019994531214791207837278992589120549080903429507871369895316805377248181233326054998976523062586855949983844381669471316355589567294122130097766889093328154478556130661096182856016558680225149966630587437191849356842502180706603205931639543521907333224284576262189169425763867119501009345233757792090812712270212802292110928231655189147691370420395219983950346929478221972130748169182326342746061289436299063506648479961617101516556020199451156437704493532130837462677110617146278543701368294223554800373404960090622047550382380143770605097510805715974994815899111058050584764005758940996631585697761394638545527777196942190806382509088799325190574827602359502032566677611807740221758568795302130220771143127043961838640074234204708138027539759919052232126203854680498826056498914065753070613023600454142168253917147412596462730826549593991731357146919045447604491925454382909448153797091979666086339610694631842339807774464860522420224794704836326431624372460547648220610850772246331305608017058232872693981746496055684169128838216574941401464283139032251828339757949255394659771766583015873925093715351318076662334698091642200014103987541070855899543059233296294233835447630249224689943260733779533952080021777010830212719385069813292420737057434398296240013586050110512570024707515397780901629506244854718766669636860986520419255303472609173302638584897505569058320642019590745559010560749590022795541742289613320568620541730238671032565670976699257600705481348637988027776356544698687204305797894881266281940347950022382734227766682330232660919438720061525166194595249741623504629866953131153038515130621955337778370901100559698083056017622236078806856629264359292555493947047186378019695879499895946682431126819686246245924824821689091805227108202779371025881316786247767278848831224871259788922880206221220474843014548444274804339430323606296659523876905750877285217236227157990481496156104133272330607927305838447855569349578300875997456410258889818294729835424442939941033218269358229047145611968606350916072317257757640141845678245154411847910000717809737981879374038161237507503567978439706917905886396658332171389315426812464319511883700066437698417402103618418885705112570395537486429463653711998429373373286224560319861070190615875005263018737946568660828685772508357951102561777755914356764703464975234303378619086656884432767975902383634717992012816046103523187377910750033441310739220454789383700625835363567333175166756049156139854328111898677936452946537398249001212906557500195436024062594948496145942027571725463788879032907474909551593746784856416821924569640979805978180001544926098113676300985151690770721198644641720462955641583744685677670980696098022203884125829730604436670393351966706424668685470025817064925170722508814095994144573767058508587853522681827323246544720497609745727598257813882462043861573027560963960795896472434339165959572681342580604115970563109624017019359647768102208633508805878477669084478346392409453265726175863765440676312034944185787639433412296480972388557413060212522347068001888818855363258514284297492383346407382991864260706241536170445696727806738475880922775410111167418952239487074195585385497068246881730205254270575028754794133242419966524801422936608704443600645716146501282375289183920965409476246068942946065223880960631219628131530537703502072762738874520686175312311716679256106142574707876767407171416773923549656884322406225086621721026750241762977634666724803082248349869005323930301907659755005383516896987938047522363988717326423595928050945341428648052080901343246125251838395711071059122326453870147516993046224367719466657641013834353311873700000585650521859518198281094773958777164347792059361661836933555345004262219482050573180417274710995430065325784802175185575760743477340199517372885850732235325834940932679964794105127388051163738317975527727530818547683858311727968380449293837127459986482665439673433486894650832977135861621204766805247569902813719304438437076343851053121662674073772849063686265856974728650188866776076929131314137386176156747644911656294527039872601471945131624426555314016745573521311229116197291504761991180504751080072351895220211344219942489424347364229336734853918571398278485931492703500237761946231723192930053624218765274117167831061698590801269298503950560302520224355243809074930424593492035797189008737759039789416850074421797480987400239461958124771595365970526544399966948097652046487435236777935454030951020128978316620776696696565614465890415058121099536222362276661496081527142885787560869733813216512987532534252476849279581421914812354009231750909304702335641578965419569842076915262863799134528583861246416208610631981298205199188343341225456060245344836907177048318462950553990098183561828531851880058281581433609301802298429700151157899338296093426750161123754788914294739566103281434038196713363931298517207400232442088242076441847770071093270128361731842119040905301226540908559175410330540201880913117270590997932074959107883345804421754477929421693949872770145664294524002385108861740119653320283224945121928829790580124970942337674846857891588365934851655231717588196737685220659301741737420470917692202321279244558443543146695540391753139141104948535731148471701692882059537892514559591428312271586970014114194100024944852602420079256997882503173826398904465714701530826031528092421100949785450281448494364473097145011472262442910877927387634129805333031855967976604577858776401326029761685236871109085574040099413756621596826835552987856596169513869862148677750176218921911232569058750682709148853563455581347856118330608780222473613047627162746990318450123966078030107858941355015946963753756348787710948066630086866397114688293825236641656421257012837874461370556416846363539606788648834578212285926330270307473172955121162061685216356172828454104432796810870965467365731505237278660169042523304300781702003311489585494010955117629239757836587344897379483431068793624415114239912712764517539271929224819991677953043428871821128169357415219258621815932843187011107397243296618481872794833661328007128234177439668103728944062279122983383704927477535645644416914712267873187063047069628515630116318686545936382918252401084463484906552730224938531796177365250070328742883748461208232377833267863828411378866472865763677844845817513530039587790323283038719043466450936609903865563081086381580213120413112452249963426661704548018941650399730393800415248788273827331609373613557363865717981479838060914457137854989962367991995595989009888705767573426618721879944103011053712986897078880415165666804913734240032371166238056834002823553792948234859429800221623834193380879539990528844041935983013367834761684450996685345359214039719580084751680258308263073908073232037509632701388556532451418288774076097737810764999654550844864389649918400723590528623898071162879429685495985387979091178388965755414464121512542111404140870134200756527032247191154594290153399456894577579998494960827025881018127960863853429070421402207422195522118671511495183922059300593986158262425093319715764755634797776914682008213571507077197724584339260329458932554406032970163676031940999103228216339588004424468972826457296109975111811718901344826871759037733612766295046240222423240472498160426466954840971933696444124737336233916964504284170720769141287312667538473450755744877334520842477269963961924574521495198705796660283234954356829145756116153812256053909793434564068151011508303167841439680387137008219515843707573856934059989830006879896394886525360526487621798078985150721932903492989559753515538612421113475797542773651838560673366841560092207940583851171012225389622048439126632591757861583711181693850584911667617491285313411509612360830941689694699459793513135256530177875003920516860030139683212954238663314229558007138341252475855389223170103083539451261258882278632868826565677148051059739355295153343591813153847116674072684697089331176767014721984140844626206011007686386912203884547819907920711224762599254621183786285000018124801951159636997901575900387664559629556551305658415236171434503425268004686463049724446702310237194997091767606765542447626926263852064091217068644161631876606632181270022514678743735972753356128974508350011611905766359024383765582804483056836171237415721054024921068019048000913027616888340627951492529680805472861604298967035566799432447901151159239601223128623946682352103185800295374334052531966006241657896426449441084885752013506650966037446679444258373680339257170046555162597517459660921867371460713314892637355390423140275511141788036030834005499221065078512796800899828090057134821627827547866303138231201247600446184383798969680708809958358868783521698807943794863825544592414018901328123881632123383828927711268175516182293617356609993206225444140652501615910586997580685827776067987625436452576927271113627815957436483891915612254195249917404834649557778138436507845547150119308672139929362222758705906164135016890763353617835155436132389005629511763681738300109433027242788944605973414807001435784295604472952089340977516631765986114435486493152543912583810458321214685041030910903596710341358588260040099156941652381904334643056453131801563048105445594990195946979233798993358110779944965726401542494527137547936829480770868235161808297486979859293095778489019686901498347545873128161539390789181714137366940057393594029629221796296709796139775466920765092068195256887629637048206970237371980038098763498042906101849371770613889431591088694844764307168333713352283121923039679694965654487709531367921680429924131351741894084256728633950011912460403575849110175344630562877454504732313436578647023941307343311664245072223131030720078887662147156472460570702426964028829646404112626500951557102589105510668144774568490798113432784857310093572699343146171884994822007648432109077020155110604000404249170302487615502046147463112050304930931888573016176976187651836364733517429053072269704212174974911211107044450684265775391295691723158842878195002868192462977188452405971099243118810965202279196531235110506907467368013596570767963814774045010688820383558653973967219068999894656165941487594781003308241656787851052661902648285007188372985229445459638712883395331086253295900093362735494492938371620987080155114436793118484379256645521630979411504824500235561637870877036800484975424547365941132719909478092418450186475308258075817118499839691744411862602642578624370929130469648815429671488573638715265181566678347606978812903293517032725590013709074838069339931764739030777638060062914740804048627577438479445452391053192703050684398717121818329484985382410701123096749786389121599768569986812237802385493417391525449053744357409869848234001931262741981276109095573384630494567810437401132684696137339634865911551584089147249741302604676300423881924382811202385934215126112784772711080426433870309653967441227399894329085318283918127145136224672222384234945434095801829050647079172902583908040348853141784463409194113421524966937762572623342746801635277432324525424841215441516632681502058026303265052419519906609284156039743840855706863208052331369359187113156217452769318768499372607321692698760100571094107096663224936043431653428428687197909243914999864861553787414621594492170476915319228904328587552409297859338687076137292323020559535884022059789005695747935051568965787624913884749117058742767439454686148051678789940521779063293836481494062060606910182180810864828059429617051737480379538039536248915546025348861542723708719224874163672585178124628016901522622780830511169779714359243152116366840089578771706578167436554307550104801401391392766078296412578316154274925664210501108931159153251761475762871029536705253087588804038135620058877200900905520082093034135609901804436141569830518307340563917494460653714866351593815011961324294384560179031945599629449673806903625059467612424721031283680694799578627954370277520841099269572200924012002183435702498522727486882516812630311013055956765938949991420716985935184905112060973472717922526090246889039942037300891683843020985858581059086330295710796031948731879367336924743498796630977459677241611186983125598155501604961529158094312477888820089110337076680654547053125936558304338019994560562464483746989062292940267130740281206589476520964572044745966741551065222479436710633804915985083417297568434017931814443370107252215815502115670005819436801541208562812394140712254019511534689646216534350791182908959484499311296891097287308821688657528542459479729090838781073855363965467415075975111704456000769712494870323705410824467556779502395838755129132496372929689654835470725693592236253997739877948818198092226973046754095496647274711914442321025679338270079461536315076074107850227312529433178973862822262360962399828018383015831125029674632471023829950056395741088378270267158582906446296947395224599135380882095230228261183741870937418903846540853680465644185890863707740893260781940529113829712953233972606127538274845058303305669449690151409121946060969095192613097163603666009237452611979767290432724432425202169903574924729984564618639801552842538240549789626322039117954842233037840790016439108907453912616708409967796974870838317082084675463029305784967195583330390260337528055941386638667835638724925543448912854399394063766207624571169142129630574789203922935413181072428668203472508059747415083467692656233734470109531929929007365138175741110031741722779791992495919698592463099981766430821959374916629137789738314693584282393289297460525070467610633322707314818382698551901878006185933800504968578987937952357592311230719787921165290218608419116121683368925359640671251607160967907330486988063499532770164771589376966706960425248290988853308560960914730338398338430046788430870092441837345575100291382345230621086812923498660822934866104409719363403156677423831514323899814260119853882458063288422136043164036805010964941384042462180421206571501960661408242682456175348868455582384690382577282703556300438422014436060771731813677445478944047937636863849181834844642224252916067244514629886894118684705144196581561480703137524709081970613067490546036476410341849908823042665262392269267106834237722981712372166486583065497055330206178735794172513776093617781680059764471280441374565224199589432611006106231822730308329748765023205822317014642617313506940319465012053179769558409698765999632612844318487614708460355576258828985694334758565367758585907871498151015802854438594577805135713524312302110102017724151270598671890406316402991171107347121532484982589622960258127132117498077076529502379396442715620883767505514269396543619049482635467609015903043836005423787225166534218830904908866114598491630155452079266675598143987732897452139511531211356822844459730287677113001497721993678747031836352860090639632136526698439751856109266856240870610614010061561915615224727561514119787176193234287425356692677764280103494935301732211474169513821233702763840028431597800693942188181838695955574834308330263216157974396328649976868028705941370983788034223899505448006724322257726880951482615849015985174894936721127571805244888354777754130532098490536452456618943957438858655327123330909028417799407544410782583504245751208566316116847283248475896855562759497538401143106858101315579406059308790109023160317634625564482520544522785746005534873557049995434671384758444185354224890149804600763640212703850576394796811558724229596300876441789841924898793405574258899837121558137032053064697372020503928985794569044884310914861478974698595858595751061052401857487914034491904585716975321005088877844339613986744648614545529102377219840881167521225870043984652440992523458304546291232538054296991500157685357877411426440253115884469247243726976910614451550951083198141211570231432161687159616039694703581378361966333982410906542101076516660932401337364732660554900531789400313568881432040392508414276960225600148363049477000399768089190942937542454831655926597157201965037883773674190424988323193365835178422053426383667679281391814911498552712823423800672357003319936986646605206268355828344818350765041585576791435716003119143768396517889880348213424345121050137228913252572121902911673958965365399517779454051496533956206754039857019473636905536799692080871494489449784514234040427982485637883331046858016174571887803856709249993061877567931915713229523087755045056100724268455810205863670084647548378227223914659568617283360534141077577522754540887545127769936219729836425648518316074253246472418216049350487601421554477841499312454524570107049763158742329357351877506926949603074742899109485149894889521816390429702473644602053556509806258719397862125493069536841481459611469016932466249133205428643286010103752396726262688265916852990382980771089635616906594278346845388529709112721411812432087901760565997567718572848272022301252029177994347033061787489700809234300015945684062950165625702169132883653586596203089907680697427284322190760946565449300400909319198450735790647881286900572558238160811247571302253462357605373112618578978055543247926962317271073141340459645304131690878969405976104297709431499107834141572270362592675134464425218726378633386165614304407182480669436868859423148326622803578414457820975456328079828872377422722055314001441386187818089128904674527932579532622831058692523645443329716450293227428915907733593572615896778174543351328286126079175927702387033920979542181030394938877511636134074959301501903680634340663806128282788210012034449324431290051490623456120522747973816597523723496997277634824956932717579683673806330901216425802535572621789419504573925962171329810012472814955381395500510974828076960002307856632117267850216021723956761468835692293076352100618042965014852296700904080595677482557084795609084466661038272953374680235794311093262323415996368333955332767687052443679212786863933358922298423455488351972715939231108120290404326572183225754416585998883677959087691001113041792648071494767199525499324848919095631810714114283136369313670443171716487006583175383843082020372867734596864614974771981863554812957780156197717105983435546667658136807015595492714000346452140868139748399295007577071473754151316751631251340249120044291234481908352220851467402112749043928123285733742858313395997638718311020715164836146296455616869061375138814226336253276125592771423010861881529900192980971725760626922108832413251403010188658410588888797115347252012019707119980619078568205950734249784910856688055689105369119011329762739165487275763503419702830750034434291497821776315668064788319819638526278903770618679876708329366492179544982165480876620893927463693020386250128360845658437674442984892290274137094236700677827335283818507588081364997390587978799695146807889105975671496807894240812360032744498643196823908068857494932260065829573724383594824421189379453901998133604112313176399954976430935475937150258122846243607654739383922863484976713978903954149553218305166514810625369062664689215743573780256686466049279351044392570945916629075110440576153138532810630882488913361249902304376259018812879649854809465810033227720210548820956316395315561777081448557201264096389957917992310033418866002631729865349142274518512404112092847067015090494795188054263279903633419553711121960919259496507426908754354535470584572996254576802590012035908729009962663914988359067658409186795412787862699241080158393807707469303654210327393611993356524371073583388350613404934954907784535751962197202632824630413492313870261580008429500878185944348180663007307671917370280482440538789083363666923561143140747331480871470192039026935911034233852437345372355180510476074130373056103597896369014479949127488602949247712389564053938807501058941561713667301980783646701493544148580535431796473661688487191900924441469952483503083353851274346592387746574777935098412062278932042631483373011859784818243441382729169735318682040759810923850453193017958429474418756817166128268501803888916451771436619347642453770004940236285381504326930389474292225777024933795303014127345723210554357631843596783238444250903484690319405261909017793701681387546511718244446135693789943518131132647701209239288251151314716122503284439056319103648249699591482480825253704517572536995748279622476551287562290105332182309473266372043911327638566001880263397035098939138865662558202100900921835184471757253244741373985026504650718214820327290495774543972718617932484475889241592200858742958921230535045634066278319887838776355565102994771058185791553788683747647009562022347885454498381349433553415697498490670195136598734982614405856068530172367369520617429563961333942096720990494471805284906874041775208404234169879582511552340910704823135503136630916981292596442325654410031342958998088323658988725550697027089124704215912551382920242381011720399464602726445962136050355234682561353344343790581876104102987517164338038806290305717889139742673146778070876345957997653858180596158082315407673490581526841099848548539977423209519972950463344363447736019509660604982485075358541586277306895379445152474391319204091280779125840714574185852108486151566176652303785846458454930394822156310677003566157079465289607570829997478682663034272145933647872483251684831325154961096727572397244735975315091560114730662453965100075518679172983871313768698072475848850510819950255288560636527159630513291737665687641615369241641252824277179974225292404651924386479811067164696943031994807987049595091334988500205534046032036146698426215439175991543002140867360619334537307408235335716650461534358534946288506575329528805627148343041215026635410803197590301918621254226328353852930491514489821960156454544578218796282075667779776355723462690490626571683192715969410548846847185450742019758809842545578184337188288535295692992441120373748211455728380083280619565474232115829798292896201022443292076320827225958488318223613089373754544484821630837521020624392712689155074402533186455792981035011992601506608651758442721850973214647865822894980050048057452691839586184790572143921789229046829685446186829577922760286612614013134480310076420308189710870925206115930779830792868113190630582308156346602025425858705137945762727891554356808940762299882925751466136855376677313514412954539920672592123199407218273301981381141940826037183064146507794052869826339225092003285652104513260793298679925901391455748149366441031095199784327335912571539792286911157045854193625601893843431988634870755627499122216488686692096012846063323651740052691436330227759081986129170744602419272279210497156379269385648601902867049940810476228102032171823638723717142593904637745484634675533248307414171056479170867293151963332951327915843620621789238768771517323905973911187363883882213487747939796921768987757003380254238065000075543064570972006177979720978440881906833002070723945163130118472213067458393642950023733060537588508344387566210267443570802997871244785032863220805288684878590096033323570224773329747545959122444924214149282203488801341635932557606740513060767895614788703863364350891141623169846569865449320438636710697730882803706122213736726831270123518404870143008751013408363324209676936653184832517649419765586277430023793135369669928520522848115062146569176688055985498333481767082046755491818105613651100562527199562820822862042176487862225104981655835855471302836298930599716491782581088812966149765484283543088673365813036481557208430948411597330995987547829244131930694616288180791825491729960506895358721623329127838387614545257544327666416941172590344103662478405578329637626064955753045974991941805948776340032969658267571617541939231317848140927351007987619397950987562128555047066837907679832933996055114620301468423539825387923195616579748055664218545932884590473600832309859170883320963158568737776666467285207437181911956397464864981564001656390290361906255953778257099127551455079041340879401955828294742775463941317574580802500395804205104327224690660792022473974422978241407333517796416793496718214494750463790959416327056781608038176197731450066418939350201570483590071993219778095916658427541101496609681678757777465300381614704438376691749981766340763115044974281427147318293203800637777844842577023759411791107482100387778432577665161383124721805446925222922006209379754707675756965160876362192368829421084454312617791516225165751360275614907242947673989500034540251389820856103847353011831397062741153272320963538451708744623582423770628637018180672747385967818234403404761537337570358716655975680288969212667052345358928078029585873821809367026340541538819385188190990967045008294900218550711603830762842096076109518754100335886557987282534050098284418028008476356780005194226351890056793641631440682066873863393740992386088561549391459436130674642593052605846813285565332141845576546774844844315131814232734868744201285026531448629320061645285944103717292524305691694898310405711080151492440155439309761111918734203238241156422959242187803786160222127252008728801339556791574990443225952493445912298308959390039302135354387465508774838498255256384316545085799965425965246837917334075642586032251611294138599909073967573007415241273483375329004626971558172415449610380749887892846133720337594370133676903168213260721512211002025431369464709832945396920429629444149323033919242601750891636496425950134428930027264780290337331753912561504175589804112550089688700785913255188996684348419547368387368526369214293623425453431552700024214002174402333381345823703011913055627974290212347845595303970296925500510023945761614722493718609205452052503767358613889507820971393145657640786978157664536729146188434166298532914501825095617767193677985114221130398005258444387346038668927633448542492652646277586483043838629941070058059623968497779816472632789085826652307459188626541559043126827605389516287718541773374060215063011438559658889405893908190742895455428787278595335847961404675816245938303596430898684383399377078004811296271617519395535904658444734161452206201297927735883905458264010829139107277892850034250562003356700261646793823295591243870843792919989733904057167623910119418477761331555482904009445545815809688932332202430473720716275541996812336795037448360260148643201168050401020682507341579449638912939200981360113171610845892283098261988201019984760700064996725908421155340153916994112998664125575967299338749252069501346925464944866835093829226078555317831424212238696808983298251737038864380363014557259818387358669571015588457885698626026451652941230460647896859269130232046538716464091428825782250198311457953032992022970216241983754494164334247599125313042794121732842247068547922784313941231015482415361848209468017824668502523718709919507735515567810220492280371574349313299172582749303822372218516139000330097391160615408926403549922772917848329611196018395406805958294625780737062584666903778570883123461204728950243966955469979088885566189238570698239613781869198804272319512240456808179802324651649778994839990532025255688843875052457987074607580926784549423136496127734069838232153035226390247483455042118129987146562255584111920494184818325053693106992642161752796578993959272654423509519296630562038615629816584058324380625412281123667832319245849840369761983951396431038935259426991421464509737914341033180465678329830202102984391149511787278792760214838319320421699054248614899208297261909103721326614024453503835144877765101455944557350270026792293760033534733526312686437710871795751982624890255568370049629540073403130795315840024037007773535305178504514346723172032732068626889863064371520429336457291571387393664088642492039303534591444175438339412168368280114834544231404420409757611634825804741465116937575291099020877345513623149041930486966332519634181274149180575835030631120586851448691491392651416751743403449214739699959940478803237055475186974780449424348045229578154669314136177291133292889282251220288170628640308817188566149565648410547940054423351977989488866050604024996948441483650278576024167263602107351579309506444573295512724867819350590726908094484292668568045062947511807974937651783253697549645151643054777072524806460972468295341562495688507186229835214211362272603254587195939109990576898227383052396196354452335526567589878074760579700295289368293396700274876540730164256529888724850154697766872130832873267887455224366438299828296552864087326203705314268707178328535529383140872964536627719135091701326255451049849811305666927644897797590463681780104034496728601401624461318930906710194383070502386602357533221285852217891828215325308058645473692295900578982224603681845399298410294310378547074073000912162683100425156576051226925827672931570152479265634406221807777577858380402644509389128143320881813765921919462038985531274212049075057772103666555385646237729104608595678523266687492012886354956680136670669781450478932212961704276623090932040642707286466856531148717796778172255513229908216292629732577461943025074205911568901624524804264963545355601179393139211900857991716402203004695670386998894195756147070200101766357672391719288198648804699119022112211081147785346478195646239884084216844928229303967446525932221650203694021492058669247926548339617516316941427299636374358026158486224941010653422647573201320245130246109845772238188329085004272114503858823829232360528238962903630474285014599323185591996937697617491520088226977358390273904874390121809165416018577022382752432366475740151987801960172603889515991757009582671079472739773992023771749457128237516969418284755635676318704683802454204775342030875615956036129933325430225194165011451131415390431951336552034680479131014117977810605691734982290820409324078439762498181012752796669106548475933171037080328726110918192778623924711697560144907003086330866113532954532981567980043516083311085379640195964469562798343600361593754657747811569988284185316942040771876948372344109031247956951359874134895856789486998807672868634839650304177023671923438662133707890206227671242938189331571538112506540453990722049376551271759717103318480091967096797915151623350419025238384810232217214291312864142683279696059649793106161683024197183994210026426640249237718273221441492171243380280617287443059178757504637004057392757451615820294023658685575804306049201230430856236668167842470571865054309139174548578163235704694630043701498510271337609669100736241802884284947322812716296272877523557465015087804005017233117270346322122982551885262845363929607853470868684092614187207647348248639800450411677239071003274640006231887308498638653994356287051312883905348642731044737299220501908482709607373845174502341552609898604218739635058934446120007869943169021696365813948176667504121049575649149300763667749887144137327557641228161195004788529081405603404963048427026891864445818808888774301566913165199229975487550118869636346976266373707663354800500930308603590228620847377832790837909698453098926155865051363714111293926428097762943745803499240371729938383930866748154051133403515031613050119170569756842020523847990035255852435584219327146662283905604964659191009862643682002594467541053822727746017505650678029823489250488956565883182772453842604334903355287249315670211680433138100139480265277914310592711371035006303529863287548355616849326427859275751516249696841203717431332996554636122577087873947913684021690376007897909371230722274813961023272991951477731120858367235258136832254777229851381271997851085699843020791440701484655278238986987746823587700588131577848485158897959024651338096709638239792537205623423917892863827839301910119981638778645666949161991531825319523202523032880631962274011484234090572806150765969119281923549438831051050181371690883330230536759318625234024642606066740929758024681304693831268818123431925217303200260331839091839645494249707093162658414892932640958502341614570802854323839017307987532715896469707244967071951801236632930371461195240841096953980227330811272428353449669105601114265859040725677707192579187092700013101507926480900307473761716674138353796871972181880399108844127877988960713743231850358437305271497738345307202230887133245838150052244003261455914795918846233571384520946452378225213601287081057185017886594513622806138450907349845111888386928329785501090077845705536956617827014286920644532415301934674583583748148498036220908282882565308065260769049925455227056988835803845837654952385575925201161098891614983122810460683883215003020621241328631248532333958860169993499927934229942258896145661866785359538206486921585087022590192779251731307845468009179873347083703446830036567974512304071171000478791781756915554842112617771279693425469311413935468673714743747250290875344454849924076325423723410372388504252091606759409811385067716593003988631481812580387755055018165857773956911409132252576806527469861583355948831389543800100940388164972237174356140076105884255610470783545145463750746029721804013610867848245396513372862020800216493075359370222360860705846584455644972412094043787085411757133300134838445895958314965448554371405520143084863625149260808629400055779404100255455143541705818743491791628479024927922606533391595991394211416949361638831552219904862657489679692952154911065745409175339950697454178743965615098153688338173757665614816432928739304649791830370489820117163544207565015560761675927481322761693626780141328968336254861971228211409360577145330307214933663618455407928717167088457772136222258199974630521893415972286819272089662100735367747190288161313904735264602555159384536316370105727983107616129183385272232572626335922766828931834391906674847746150042579883464313029349391352642758459461837774273839286881327936477369775767835238804420451639116249682002710247284200725510408466822567440697738238113477796913273452079017457484685158899179363483723862543600991665808751343033059795037151644396701672965766379739573654123801023178181722697665053822410180815684882192340599824190693358081124395983485186902417431689730914211647156050929571428041202069746663956780855169485607703828396345340835403364592672121586731630381965111499132885677749794445562522848284845094264162139865780791763035767966436506469043609352675435758859048387953582569545132165398570934982780234391650129007280632834697746413542992193707116574577096028471657770088375862660256438024111453279262013357563755776216424471124710915525930835132528764629730118073918731520468941300079336054710953882417276540015973116254129447729606058485248583553348890261495984233355219907621426855928550654680053881465325002299813515081952237970525191783535603032813540273700993081429729035988674364503789788016320310859865915085628083837357675549743354733873393313062822000388023516795313148706011249708842012138173017080704772213110594715478355391165896974504930374378029935157332001409991158838926447420069265992762410625190947979739303753302450301119389719384864452202822102115456566785316262125196845006853362326766306060750250045405048865179072941931719528431353795789277441816064015661250865240046084895589210922636144340501651705644167719248507798045045194704128276143724622915216708388399576126695483789042194095061834821431219219141760975779290528771937735532368426405952044340405957468674682524892414037294860304878267817911549163723098753104135708884209371532027271281736375936452479917525724334072195485637651099182381159274443852366677127625550830194324259586440984115501819423784843830903163546364332403769385295434369798000909467397213239287121075480114119259113861566023822975233185711614635289960478575004246105696256859750701327517215798089624081649244715517891744897109199401403442365736794040703652571144910692491783797481740465516090372954147009349650727610373638838697275655117179541117250564885078724515158501045947740822272745853837893950601891619000068076776796686511271713312261761551706999588261988451033063987687255298802206667623265889908164699154728528792249698637171113450338477967535759959930382123332004900762737232887956914625946377105886857833874027672963831309683033307103628116089810867307801413785810545053886517541472746988336501391086156546414704433209893139347591988092967433099991013437169187558400395834849613623809674062490965421110856441588167776064554432345200756854799896703220292688292212103868828146297256956949182544674975711778680967535555160305676136336344278632466492400250284984060406838295352635444841694166849777954379069084173965930217371983219897970253549471995167241467388984109364349106621685644364364830681288142288958554313575919260343358587763192353597500199160732476978217266650074063512202975805307124515501673822273986336880800678615733879775538510634092822376859432293944057184952246673345154305707119816706188941532513604740982163058076011088103833602366869582790421664192166767472381728549157461209586502709992272009782575853966543889625724407614418786356593879172331946408587184732485727377381277887462560321641950893787785517001006760221525758098497168642777256630533711144604302914438353283766543376293803611589124058970288934199003251800314866934913244992540821321778759685824335120041571279221195501935493613012979340000255220113582343544708243443777156367309944094855027976987736980443080785171970433121181202243847459416055956917352824087234707596530672554823236133840062111661837740832490452436339192340020437670868742427093915908143661287717934057161765307926255911472490987183269585048183663888042450719998848992104968144100171151302229853100015722009948919735427036357652935813784709209986819467599576848265639610507145827292260973473579662757511233541820387632455878202900619833640942475820659280842365305216459887168860153872323390992893214425558490587725621750297798742009019683184690060686878083641047794321558076710409914037106980158520099585460815153140400192480568988198362316436630143170126210999865503002730402819698442466317327893341087847309162011781952942028320425077046275034750982414302013458329544769034862019249222491667741718981086022103627521775966047041579279008352559989759592529579036355225484471142585120890996785326218732791430538638774123155535367330049836342462697320493423572353235401212123090632738262991162643847960730739992663136984028070951636773164612264130664248630188563120526010707581011807133854050880540203953489623114796659333485081260251882100231084409689216541020195237682506042185340673141126198735664267600470088405160888495693383205919736273993811548276393601003473161030838157148028514473626617732701209264366759305851081145574504142375490342261124457846176384609525896861030051578823676439443528205684305060390025763670731208767765985782517958643562842704315622358875065251864495430620545623101074632151906088992852254916003595954942892903090991043221927930142305768679515636736073707823303180595310785058583872880694166478168472708498130548941774776966557187861948422086374728065319510604695613765570093605344898898033732259218082269640659519034494933096218727227081876598718400356254987759832184626916205474933602589639418065432373018629543408902149217578121243108280253983792463890692193473978320707841401906662198979523195073845234552280126141607716846016503309032843203224864741990212407201147123093422876869764096527293556607277223109611292132237725099358997818252293431968353998267222583406403880842795432483027518897476279583548768149651764030771187260673569747151584535110761083252520265348052347324929985459465979805280397323710806291858234237676007474213342651065182249637810381969554147464515161356028523238078947531031196424693464414761766849339484016325369129775280292132074567089324922424792423647512458046751153840529378306970512933171177398694080633358326292027306700000311995377120354159632743603740324905930066099715079191918388851522065935904488280823914698018462018199321963754985720416884402167852485712432885425269675546049868784751867047074169815300911799612402258668480214416870030818128824119798574967304517192907753357277425201134453600451009302034238866991273008659658706495534493028927506946790014667584184779313672637358246435577170052838045591577878198845546575896132419384607370001110252566071412485046436391419456978704667931206150143787880322727571805753079716012364338280241271461919950918821092110672141046771882086502392183089209245679146766809400949379671618381333210069578912871985979512605319189535960603984934646167494202377436002825719046015047056083408106420005134595174368597721163087121298074463669539787592134766007454274224013736452408696780075551137516860373590123705914311778801828786032623871749655994142050396371752964727399944001420510667299573445837759214898000342186779076745017017346819263420464381444240569741535581401712466256485250915702196957575600676894003743298004842073101866519443556437398177986208179287250287147390588563636236690815798211230576755453954389164309955474722168563565947222456762505773094219857895481425940320716169884867139232602462229604585260927602602492408640220954725186934363211577385531904682561179673733296136755693900691204299686296905335324659277125476044971410580584038017802608418946343057108734884606179261071386726436170078031529343754221137121741094880660441122382720649147466967362781176195587911253935382098170017006133050361858789160985518136860621113168803661866066158903067492139328647172295848671522335214876066413540691542472724152334342998891825636770481699248150118129312496083574725497962982122082497909946413105186744796283096275170727340817925374978831811868476120215128595540641643578641891856128585802921259742262929197144484129742134818163489897998386833917926029176663481882560312370728833222084867007529038092384131779385820455233175499860010076225079715201171057103631569421555628170791472535929555745172941646503232048002868566522661719175059149713391400151011475724189719266187845198309634277709975913864732925703923948814919670815090924111606199954117309625605980248171006272567939493323620484545625834624507258201741195324875727838527810594549446094603724951937421465437495188619565295963731873705797720433048843350737884313034764540623798707646960872679949200325866688155012632644517328329873932931273124336010068256747582705977298364945317153879210841748281247203959117220202357607527756706751861618713589810483194160163089007358069555207677109215567984750506208571373787830339957813220599722384856654739957771209332879528247389419946409987535132713334481940629558185291281935213461120613267047485161255476136604272022196305330113296489097236933741777562900593472138809871636709489985570580669011043584499288136477870560946545597561263300472184405405907869151937919869056506043523861749775508490927359512514923477289088630092064409271851662520083728304871391915507774953414927975336115346125846879241103049954902653042279943388929098084804536486475487744663065614809060266887157740730082791424726820581895225422023244711744399900137604098355477701992639123974478501287411774289534872152201831432108132136275070780513764093746701860034188693216286021939278942386334953711455378013664344974962310754071297456454698271014492355040560170569636056309458541794171553966378068364484857260438795164996921199194273717726297160381297659777421812149238377029983238288894775217481148119581296196073627578362994227532016083771170136483363585135206977716754051850893710357553322557296936974368475136129153758679532965746103855015171001403145730677839324443440242436160947222509625183194442521106062218584485299885913187846757558165776893322235241092082913660025875307385424635560230878242765368233303535290877170683668506472572385235259711112912481059717209897582507797857173456221632008489249227683721287181218717477858924578901521193476899482833339698448543827111369244950018552223785711422400151865749890491811552548890066134169095566147211903029513191544723695035931182466751437208942104639628993291003438241759582013191372351126877473373942049130133379583851017964836151727813014467199862700338566640547937198500496570074405520164532740217159414952984009760176544791760357823188113498627270461869423376766564247563298830880951868806748967099376082721893831969812026329256874554553439812934276323047617043331298860677165964866678109628249675063532029848923609804296714688388677714230861980563226111508935222171366652348741051246420744621986247648182648084002994308455246067720063401543208815711137133919142456419891850525623944830513919254843424700349335308862477026240307315922978015082727043652893164531658226278745351102004586340347778821122262680789251719625090819998905518412312442724280382215600362888453819461129493695568709274986760771456487596605363892261182917135317955307892716126786969806192374106262190383982092010776213762390214021381736503185923382863545181164734364130960410273643472555231349162896362519329314096434606683606461599573328831715572098028781555872939599558295411686451639398016059680406632320958443732008806452419071464371943988495120215893492838836459192468399796430338952055802346760665617559249521525197877477549608147778257000340929226705424319976731035024359878929760117399682419802608966697280158290913437519388032826459550134243805828220554747855106819737102080185954801058986019020857181499421501488444545517987488867998175583997412048726645047332393846651436448820928322003604048819575159080680372519818576332323769242459512213791301998800800990812561178864062664813180513812259310568349566668576080519699996524097560652340959349485948909259990942427132946376947728153640108064310077852441948691931643307646246845376775091787383345600039648012702171433826180400747433553145287806334762386529069161734833912792962313981615595478135840004728725404620398990750142724026537865112497318821536128535467600685163921466700804568653522128653969923984038823866803993583958058258777607906975346281029412260847251890581477223215285515448953012829949098713932531472824871707053643327128954406608883908637184775203670289782281085745903596598545368773160924110903251758715976497297276148235678821215427591057511370743866864439973862232126485018552610262437017385869855427344070559368039606050215167915746724388515522223725917638813154480136050377216296865241988613562010659739436241582574459230558890402774534371230513537014794389820945139733362826705197522842994179291643784100941127503599879449511214126425099709692303619604002001536469632827161810274661508813149112203927818706697663716587823384232985720665599192501848010562218471263038562094938125818806156843916877721348274752982625790163891077317137681713378277488481032454672465127129534592369914036855833535323815396364648591210514443609156228315252127109871608536388326774328890382111677706664682648202654663944559461144776322398892555973752472291435480967755330895697691720095648077916532559892601324166192198827495738012605794064192881361314357136706244626597419845168923200939856824215712865480975283060016103534660358674274522910972326766120337266134778699288501195963246017499089092185064857060141130570636700373121112718582918341167688815610669629952947682985740416633713555410684664685799988083724660334614180872617155482803206319772914670536789629707651194099603285627899381413788146774192333117361472553913132625234225777044164187402725287595072791603528026781650684862895233677104503575502697276645387535589339900887903007107371447838133187481480194286841118495950884703910171036316835873709832929128943660620863000491321066531718727161976323501976444178269952052240597568349872577126923666299265826839490280648176980200970167724455115496519817442658786067513296088227808994572412619010721834784235387590497864029147856737293301153910270945902047827091104962895668180477967186412099764611641272483043784992335669665033010183616709397599907153706292948344829669279862919247541388744890652512463862346571249844335445026140392488301014054235184645230342472530762724754426968795241264205918561920353081129019910802261169574020734429025744247946996620029684409916956309682573907495409179167007068756599450087216699770236763738963603197930909882282505373325763553761939923207883477094017449423587841022537405766850260905855933104413702643542034548023118435379879457135218994113373312089963551845911712804124276435781362738530799606074637406918330414327513572394217464284136464991135064453050811518695384562395851782568952669560573099528806008485445372662028271780573966393038851539174271587508995821619302740413806570405826022572315645068689515162062107991294098895683565121353445052083579034051687501645495005654175961879113676740083784429381144927702886153479694597599951401692902212242584285048684261716840912852902037126993658371616280067112125964993912527632476678618311893497118679797435452474508479263296757320966143818729588451543036396653968258619328637214987774614199937334186137598607457406198602400292070840879167567312611312894022901418492250844768584422534834093585273338804594371269695673447317516909298660418942490332521196385435620471391417811055284238546568838409327612917291480859257873516219290218521434488583805418919921900974795511776270999928120427203999840577943010712288034959795029933843793980935877900537196570908606067068721351908190099277323366390058060050596647027108669981179400242075670143304569951354505674652157279685982692508587125512492451246784029710370587988748582458466144821700799854783494408747807378051616100268712494781893515138112682337371291230320974928312478624426632117309397613114643615285252195650977583517961829551643444246008921293478767257051486962188786135379822762644916839508899443737527026150213485959384587337696916133363151108688047932686238149322446171993162414989699169465520797673457213576255765808186395778371574616568934968133192325711278115497692762872680224147206115194795448559945159428705285814723659552925988121179921765691894078418881294047875332739980559840577049359277281863782426193795328288169473194593614024951185732396340779118693910520761123586886624198538239481095988324242016100417135146876124611951967666156866528804879665579791380385795016329589306168113520871910164834093800536650177969891364750932481412772358023734859042250555239247295008060587739199369879510464145183448948625019571363521361040959192362636078569527256821970791551031739129811967532468021928649133516450476921211851059157213803901516507140284452098350693201362857523250218581680447384353540150948474838028413385250824400226695673918460585266826665218287787966031966669378480752257281291603177816718581286851326280997545174995879658310929430432401519835188487088952312548097308614880110924613695304947507864638882637810448788369795893994178214936016863737229112679369957641798675333520251997761500950568183187755800475833862153344369715091388564854203406449947765688463739941938291117857108192222506917041515845829846244902338604178317275594508471233323334903196060739359434463436244863948431839966725090569495147224164886756937406963457273563434919348150653429756125715988929003831045229624470251504562973073596010239632640586863167129063893250409034589440553078528058721527469835401742144177459671488144244544898661471391683758731729763307216884307867235654752242554660688410159476279249370608485973027778653230438751086074314010021001229219991217565082971738691058997516846907499337074581871003645085946521161988352993820285726452210348951602007688966014033075154776483700141517834359958544935720584689731433483461266129917929667742407161023019395152975944010507681874926705145457812716773893926362567740342914709975478323914186940478796463357095857313441662359530604436919228408513429087262243701333217676871276291248301565020514573124505728738296598076920030566057378510223861384199127461169348257508899092139440847869504604449220859275526051565497559811602271530009724581937918272098707712066414876164942603725774066887197454373655572806985994212554154379460777150399639937975964193225678734908030225736579922469204438472399745977058715322134566983005945937235702917480721894828379261074849321815470234336284319273894827262814604866207309630544611612149578678024398363414701158375515188250941132889192323716314076094010766050838657231450353204732142891768802343281075373440376725274258810922614119499973170572085427335232242879716716548477039996552142963467749798927535497672539022466458619389179712922102026470754957242133816501451077401029257220182644052949070163169902017666140025724938970623698674534597866724111364931146193990107903742905077157094458492940947463777303764906959127905480462604876864022757470713413717036528349608729127351793272652908020786404471140682577225722873247299534084644673748317717570334892705966779572031862886287605332600864840233723660661088451276429425710582643175829604898285715736454744684488755228447607628562006587652074949880501891661670145601297024040644792625729776875055612318527383548844943594671568675957547676481923851577223572263245474688451458928996919364117671787181015442157779507158103360804040669432307782409558555851494953992642473860983961861584507743935847456347490403776774746859476291473334620290606819655193829357697758913664329253344236629212612909548848398558714839123651425174621474817487144373702878369035471239579563642343933341942567277153711366970063504358121086858107956303789902523125526326837314776788305323430025893474419536023920251354091740610508281202603828960574235086436901527928713641337977991456165863426232665044514475763098582875974871182749159687856032099885451027710283323356281844917586288896100563490992410064012205474296854790267382997258302819170891513624449004612675768967141976238371990304024754150527931195189536853925433173497912397243015107172754807881124461955347102797684440505708608699298077779559380414318235707273437679116017893851141780974149140819399178700544009731472638902222042602020363117643037673026203699377349258955029362965945328939712158560508358076034626247674338916273238340391193691877212247263119958603071834994101872586937377478329075171312429195498733024665918477135416085382455653528655722512433010293681515521777305148507852084245836740747465479630056884774036636178253940453544907455105097720903541712606151726315206436943353200655475195651341720775221061545682948980446514120702981640120977002724510067692832711063047050951856136303520549060912330109429146769658566909293295222814390872428344987028508915773404243546846233065930491035089100285626720750934750900387833129021506315547003157297264735050095012737787310892431750453364700940270473519370251193623104498773381252980420546347407838623661150534111583720243445229252569422464109495479104664969335205557990686345608581954232387074447022522522335424229747947784690151034253078099214071236297732486553687506543300884977882896305601253967447351731415318765762803711780502027019460865011654352946676176203299992784036124722545963193475579833876657476107436652257336223141492912994002407731924139006846266187912867928201275592275023474431684427116613338332978166298656322314450011482867538279393416179614865106201281972390670452339147164494891863615604557612787752327985860104703481626930790965506403698566057787225012091153469611780600767767664246952747978746338105393866261072221004163354710957063367747192728897978808518250994208486960859762722539004405640330535164414437546641259631128482433840090837788049389797319479631281595716562310559409684811569773305523645624796366425460256445867726385109221923224938047835839375276666308559712398956422236418859202419669773000843291293419338816051062803941156132323956483395271276685841862181001817484571821647765739770743803114913629998904860723019255703873377500843480063871720524953684571690425661562763372564276690831805908212257367846944492601413643079029509109867634040102428807904313555018276995375349685883144755960180933962968305972850725699971115138267336106833958412236092713313322161674605123020853046551916564752205626866461009661785124821698636429336530309749604496683448721207925977389163865723862870773583062628908365504624706793927079928317405006395884430111380719589938016488228630178692879633015351455720636571093820516358065261294802128881023708101633683056031232576332212249297060824289746654261196120631350215715670854482113953106316756974933749020789876875817757918031449893609693818748219367372327059593414728577255678931502362291046185535314263333730865859090400626607099661404635903644703614803302019871915524689953697314372877059450674204979643967488763806996333441452298064897818110275497786287219162854695814094988954314265922251986246649840777999915920090161250797040606118722761527518683016595116173807596781515587982199167439645495310752179272157138384099210849234330173749118780579832855593515123316080364555332945448263785338574394746826149926785135809231992081977695215470156657106628954763799154593755878890924537445851543346070478799372544134042548838255296846660568160239690024223193346842040192441007235954450438071017336842576176036893735172323972699862457980429570720645290528926700403421815561341960490463014207548441728787959728486032387916353986855598054486715207580607203446173006848015608643876203931958547927063114775220049942309857510866016344044550243350924023837278521203789656559357521179620493103930834339964780201377216823509764317474098740971500763040057893341382437095619254966494191980005181157660901809090545151808709401512401482664254523753733274584052421604616882079012707498313305049526557177500904624380680997078393422578113676895578217276113523068453241741651078752768397057152627814061655182661734708460739596082290954602492811977825699152128813696356107084031079907431277735878181432517154083381656042660188363289982215773897992456008486014930861773525153264445907477917692606600477498416713016106037602923652849315857416107885674419781669320458642553729340669029647454945264531165922659274039606431099229424449179928736407950071765785075055171226471140568718440216503655005865455908961708334998504571605556830379879601109222717924137235354182917554002209195475506494649854639545796906450896031042947427290841977354167576948672166906008230278879824659450972745877660470565413563505406113266565404114997117026957213279354089032121468698400502312907378739681171553430639606943819926419490780665402023148848788969912607941167489335453955529735686741657582027902610398656349853100230756419230542635590208955930749127824826831377515905100482884221034174968220905947089031644311193530863011740761881157300787860804178058239747570592997079982525170620306907617885476244213704591380979226912566687874068021877603899358920611816976219186169208719873989489426004409218702338593624250088112564893285367737126729834318689406995618199312659910082016580654680577231110248792678241730099935790143130872146871249142517594652209504692284086045974049606104926821176745220799405537332671617804113674646425416075731804163130330683843356697448145282693146876436013260364958951424593742919154048610954332223871741586928485466257695110774335197244007934701049224731469482063120293980097794871855676453606126722949273462452684097854252009713166428144957203974349209214823791805767192114556533875731512695718508246549626707145364131025877235478994682477233005117783866214930075828805948677319747395330687487160659185722510754195869892094033319788099491343437786334225793591569239782981880327791641947260529379283936209806564440658079837997810840696985795740844590494404519296352299832717315764953359518342642646126467872412034047894287945742265918586511690491886126277490993633742863390178744914499781727857724098524097925578010620734057519645999002404318360204106613735048054094231555582768772596990680693702745480604583745169782272430394812931828473899587319622192105764318708703306283058024421820071883212079925112544531084524686403013066256643246052165280551672209102052436884129506932896924414503403183206292543272312500696920333522892976753160151791656258119880170284860152666970037741481377223076681921815015083124327364056114698856323241031592997572722043633571795501535032028022779954663494690196181941957291915391003559968461448089492058925960552032116786294563955461226560175559272914570430223012627467751770597960729101938496656349863669249886870452384306786150906728551689116751832112191762718503275869146896034584534966560877814498318949580933522909188288246890110683104656972789737131281342201007737283751383801355334093983179749967782733201381563973397754494787888012151148003536081317862256870319526203843076716448165621193121779341122346516689920758787597758475204199618503883585055293389146055127627030762349512789790637738498310701867525438684963809873269231397325052080865274710541044687489122994455654159634044816682704631930114730662221328112159382290043079178902971269344757363324861376629320877453915760523044392944063420390219438717553781481114667843205167238652105738764170305257399238846286006315671478110553669404060284658071173888668416172436923009864185212877368261115255479538149183718348471734664818902487991724394512314357542298329161187871851308628185595209736160209008410481160127289879604246983304818086078218605415175208934879544421253671204789305592855401836864431424777502649056553194812133468894420156755916667106392777094673782081895375808704360351130985653691803884173309467788387986780173361972082652653150346918483768728493762496265545380361961773113859788194672001090443451681971370418195407352764567074386224487312487825916028857850128341277743652807795631987210338242556763993808811619290339055513120303707091068818771749064804148240249051012068768679067373039674168232555595909389181536467470511126978395415794646144978710298470400119592719575299030819887329671153907517092255681711575316276087976001640828325434422006529318155689469190808779981203852642242405767531141640618031604952362685308295769558129815006354579594798325772884716425080332763592708784062965475889591679100231810451609445582014440568199262964483116538478465073122140973506790545081615222551891648079528493164143558210291574259834721209136296530484551973521055547880064202792348542142445501340797426845263268333195131812814972347762687361724848068304420035877410990362314546052187434239380569099044349368588450490175727045358407372543421057045937234696103667196896212915172408259367511468210933353799233023395437340233132757661143604778366118912462321147909228274679214947454366350131846599781130538045349187911379543982256641888769292393424009545935528484099000677838639521747228000143714825917063374093053699899971811749341976604604723088695253790224109066038562039227136227077552110966430458776738774339869541307932226111524090263624959721956855113868118786024119718189098546384709729668236072011725130521540005213406941008826663195168555003865130924647562723067568946899597922787271591337478729293411593155503190398573027946254808654803348478398031778053730744004280222933244060538367919813952177190623660228501921164615003013370325186328893918953449500771456842904753867304635684454391150959147238283220063851575255990605930543692858660393107949465207990906198936004219498101128522648288772417349820308252063032829547721813702158294981030467497419841909329774202777153422670393833291105402855673886970352005691715045218952710703798570050220205349577367747414224599594230620903576737501277070094079073463957557947604749009141444575949549264456101276707959969207478761325134346185574821551742174619136398542640546641395722362232146195333009266614946383507134404417876789469811388733726562282109855784838726180710883236716595150263256617227811123236097391802697783712340868680494021839399342851744097893000132048866666802373639539316040509015960255908411902233415800098219753798955283449493045276750636894345779537297460306822135893939458418525143733720672816030163732005337177775609616505866462999364512654137955605962482012126503528947246172093980222516366998368751325744156614579367830683492529405508656341126560967160036443317702613510980750736606066605104136463243660167059475845070847188636067644758727514125792800955949578710764049709186038942692194600499382951002412943470749374272962777826525817254139958260103300413449934406056918035417162276256325999425646405713758961132804187982621932079038923346979718683262566890080211197538033261660922070586449428986085809151922236567206856495291488117570814572528788129214548369695976777750584059248106966671973445175183602290591984748510619471294261034107849188745580142421608356571744786521685603998904577575762515435810311430984046688907254255385259495324738875600119255536836782657218958743506403743577526807321696421033517348787556156003159190490002204092335229110373486773954246205241851399490021035084011713331862696453354789894109599820712659756227459519825427107285125846659810793783584343231503336133070042205988532284611620878756990117820134592744830791921975564481762830626691132608115480241045649910115732082542107512618545956511250043214218913168845350428427928361205965844355294897895170359574391151214064157378209472081972748036684439672915711183890141699235485833116104477865579684950482792846049445350972158553072357884910385893152967121132623057222307509480552353052431899946999084818525788511090884219162670705406231969536285550122849815215094606127703876455077186834832789965094504154041477211772102886570811992546280170172344426020803132220036893469757407448306585150067156739120206813125496267557042650322532712257622541792792280413120686011747901844573721194187100266396839473945598652012720601305669504056692728511647168516318270097641406280983427874216751423671936725120612313855288200093988955410250461175764490454749932051869042967359652811167999602182006727483885937563159373108140653120832380773923343399087947120573331362872954512909195530119181981558438084296900753469540125405070415871484431410701637769464121314576236463453120281528052021418198490534763520234365508157100198805327591938593592182344616754925553590695549828903384935527608241240473702531173466438116872350972659933885562137138352401646439539931029090362982207135626692943316906329847839871798597807398540990209164174080090861058450393616076581994634346645926177375323557078451967389953406669563290878379690957081839689101959147292292831176731229436751949827883170220471823542730195327431833192326044605235454455110125411546641753039690864508601753460061806284530642841888283026222106182453840436346961685144758318446183376936002743358804732354378878158608377476153892597849842298466796604256240603190475869101154941567939191873740064727686288181038274099347284591423107944314922960790971067529608705552544633288682659184469995691396640184956103864189871197628857762062556982321086991437105125730917929414421508677652947125782742110288238269174203855565119674482430655580520996264670063311032636094453154344952000070957409977646495166109263617607974302691850179949628133240766108128881183364303276846265905560730727452099484879454912502224576491806656305124562743664015766531242515658298987228091764394677623074511650000240926422934431259525873199609546720606649987993594984889949103280806537279749659973271792510927318453093286569601570335697617968255946589664659196588161948622667707676535243571749235153074223011783779670299824222404398064703140269553378944234989204786608303992513480335195709106037764401379478195795357597822940236964968395208268722444261711918926083734982262654993803652517542605868081924046814522483788762890350803486355054033070235897894904455706931912398419442072905484890864977695599523511434698460062317920098041907788266090617368637881134160544664993633599525197518961445461557089717124925730130412201292032551859794867510403628188156827683013063080155193526806672832352581937265675388002113522720273837553961827874919821688948153608005367075413128088283970905687353049012747405286014009247876564305437817247909792647855325122662151912591318209019049956296690675325644364568868335560026008160404060512252525882666985664017425883883083315092834819263271238846442455425296463935731048315335168265144961304065676923517302497975036097793479644911471809548774752582651730888587733440649973334670920132004636817869292914812491814192485339059406069086858909074446663637222508305412648832730213867464575848382393427784680052317836840443792223273436339999157227006852602651832882787165874171984425256141106791906866152013018672828144727629884013078087222041692828198621670992814815629316602556378711274226197174264677553396718753173800175775831742441228024794729605805570112804696623072402565794826094404145796020932826806013697890030718041220419427461174264545725997784619685039566704011511945287909580971712241981589766945355227459481857704819016953815293773005740581143696029395724550086918206250764379026169631376787557003365912692176084449984832520366914744093235724041590249485580288332348016742824093464947194052342943842727550493493391823818725662660976831917065374650811639175543631381900636557936428160563193452619689163466824522908363535552295451010236208218342272778066780978814653624918631312379172599761144051741788314981059035373075695605612574360699815857997571289754392223614360817157233763679680753756837188799538209668954781059717211332173399348673952782506584868672139685938996151394316926844073062544463819455070577949827314158629048974065873651729879588652992035783199185820307499409722875048992064644101928214277294798540653793646171340249796760422693725076034130225684438240368119708496902659091821760122134892271612072027917708205406575131599266300146792005704816799845052662973897944406027210294670836328636887598787250238752148000131781655335258621306336801202275937044197356392193831908622283546111386691957284029849635523014580778863249521069144595459615458644676077797682204998641930087807904909486488267557573834938348058679414560766577914894664605445367903125256602137257356234876295423436836040371958172815357727139501147070356555749017989665820571388793182817362598470663898975406948527096654133954380795930541307049033954152519008077376085033047236630045062733232474568826203147144113828439940249216853744406787303088902067616838941308150796645245944895121139585094370045663253246425527015330728643503932338411160121079879487037376488849323245727096122530206154703779604306441224255300201885328309130527239865999274476726969051697105595903410016410728460791893634450671167985198292375627117171814416680988552243016385597830300386527799408100397790286752714553683663927508678118372667355877336757489046960258791801004565110180352104700202517977509703814389735108387955845754674525903343228070027864634431687553697360342387311929146633278331387636447522347183203655114851483544001211582099030335089617647301585118016771092940850021296032356010075145231847628742449264555616307993350324099441293690833083573038358509595810962002161367227557111771085904003150451913014846876054521898133627977376317276214684242032287220243119027141359719156027153776546484344909800614672367338390785701923207322458999668157477875651738165234072128191883688605524561775151903448524126612297255429137135166566866550959956877368239876631570509311509795751805774399165773126579036774483772102290768179002301330238188401969071006090324791416734136986687601872290736297605136839977825510446929611134001012126027009169367161871216604032444865279514242641042620995165282365922938064051316987092218725837240398815238385087689150427223219211850785025272457688668626362665233122117829110675041145291906942159047969515850711808250521909449446300564786384808603133601262469592515907449723486742893316344348572995014269384924179211704953444519633966350590752746199138186723073180144556268300371387941800068668086456221944538828960524404906855420286235368570452699743468961916790416079289958065540323250236809908689947986210238422833221556104156450426143017415714371210618273027314074393617420246339962530003112326373166503732071818492842520237982938344976919140963867375334421079435495442381022945400468307637022546228029260106521655495474581033610085648660531515884533823982621740147798924553393193070235687540207882215624657608081648136441990149632690931790654182977114541377940273588485427462907239407547940103761216020768747473872111111397276247067957520077482513530671325232644752799510654048358924399196651880156774155381123997165927747539320674864433561588767651774525468666898323561262052341470781482023749380246565631016138878759671797993824048996756376343535338993528342365089934550632405982136662967352828349785486494159060897400935169565590671645942098896037952505138776975971488697550415023563165120829786476973804635748108079127657868687473992688582193210882766564254963173596242694971786880568203594084610480639428961691332300955607345979906713078355736648604793553639108706488585667710404379797361086437005938422071610801562911606992116968424137400958897621509645899935678636182365057654877165743254991612351440453268215101875798349438286539090666606477375393124740248970374545159303881897892526638415229428455815125660903852123498178408254610389637768152056723531829103816057090735188483898106441656904006401834283011801802333089428431301566781422825094840424030491773759562420781988807159666595045667976006132524891845490528808084653565516666597662918319488733421129270168148978177252483242763498456219606927837150677749002077962441796555075794278473259574144756261987856045577600066625102111469689396970888353556888197543222270591799646854206465532054892302132233017092772582759609539409496130246433214073044316421464061596119611892980524305244466154288316041927406468044041656970616565216125820101391457369094961179097833226487489004981060211959781431347873500368138420733899443178718325529976601451708035326247115023883530992225878497147274500992361794312663197900134451574369111149973889054925133432790291069636172491533325127538544290232389966777763388582191211967656364891762004734902421682790678651827864460092706268786777663899927700664505524437705387630054992723512934163290993758919166238020157560353086970722819632618594080722792252446181602718465443068463489151942673645644754529306239634581695803864274317500768833814556876491477509397397570663143853046460347528077783693633973990868208194925443530773046133058346774371357519313486196414625977787610179157841794017531589075219341327685381182332225143406702241536377747772094215189537520425185321200588061746570188510668687210621775230716425073923182788744075452957665470749106545567979764019204138082610679302305070527541125652264807937870612101658673677264059833186146057448887348676815221856224796613649402258686317614741854302071330706781607166598349658298665304766396463055424858440302990335045052391570144196231346567506301537918929304246075510723817557642754710428401833383791103614094121255917244844590811907883283262413126155038421488652844071029339330616330416904955788145823111751627533011526786951417912579533759810762825082869955002656719989308013462327933917588672071471329969801395481245469855625511239016808099152372437720688108719275135632857312091752277227595240556727308088043178647449911969278289185114280331989303756516832356093471854197594453831099546695449902800277426837383613482232630210068597599153952869299824679777577238882014866083662002407832860169853356988201855354562380700545239433369986992360305379375697496431408766652873490165768698873461743200563587931187142617899180033511961598221761384462322134734948218060869180612679209356396691434769182792426596211414169573430731977643470805521897060548871198039237064103173297363240975004318178685378161954913852055435214710216577749587028882618750562548905984205187955611484800502605984650821009187906044835027784333689285747758982635903012590253220387920087869300068034158429899353921525754435894982200983253119391093782443476662666788582199428133367126299306260629339251608483759344529689394601696409525464215489055227918353043762198343145309005822120798982764762746419894194406685873017896899419870358400960730780287798253340198692379293189390581490891273797502115095666848665310414081408364139719477350330155047785836754128367242219080154035718710037015861796753382188057519009392558530704421328949524526380060015620642600855841144924272655643086553423890236793700677636397244067546240461572420580480266175070852428199130723166263934470904518977421550173291325732147365737617543063325515685019339436980250175105371980645847448662700004626888799284747771777413018635420173808394467207070221741276673906200134064265474670735828987424127062839706125049510125266174300653011383696667396862809390087927708655834092313049416052094542010150629013722632150896262460231077497039872013131331967399624419626512603610520989003181140123660341761300241856689257400880893420064387668024465434170979338018341444570589876152652392598151122304256262724347906860320510926606426361267976363847867724246461776668382962489960628887554967861569226398267910327631539456070509548114118173393302113547988916629612923406724113375124404309266184221759984017327687727715006320904396016362594395485772248639332940840575042977242028040456288098277131046785165782776023212127399615213642770353586903339570892993933273715408814296213683642848206486280798770127582070347282754577510558471492137300427768529538621990912425087184695274590701930591615696181126708665895259043313230933538327708207108440565280247117562557265613841271404174049670885238210245988001559466559828438464177873226356777801257276464566232229161271560391285079932748768514990033129926565803410044445909839927048584610738228534974591367178908024904937074756985100382464128464123169251441979107142809763827793812887798533781683064490968606657144292419985570483047046934512359790173685322610510356813227332904348608919076263128342584196716266747503533134500297081459156518370344650555121625486751702171566180961819381704172927238269305364174084462110132105527662273168697447147623733488887339060632276689853418464269802714942825056110240597436562539045225458917806473831893393200637708348615134294515065784424403621413029059662241815002153895093555078764191277515343905821422804738984038216526556567487798414620551461732586622134603464935808498612159769364009738655173439510941407521431328275921156017889935326764721864555861500211880792981270895308459811810336529560178621114101405434544991018619734142641264398025508476251726544567812131617204065646391821104833680949602401482102331732384815590672535315679968282149535855899549047909038749187776156803694536525290794536205767853651541436056869642349354364372497450229335689211231087210061381114262506663713007096995204925315752301296618684755418405901386318530599915286873891788232737880306879881933364573778294469146549162798132081342355099437914940146300037430323877399014030477468868337944777600418885673554520679843546145720567441116612907152401107255248041315163783398590857389505461270166960153939263951456794343291095305968387155715450414975637064365095198882612937984261053989353452459589275991494770390980999526657144741873402529370432376468597045393976072087595811072820597587196716529781875680785193071017438408747922950938215896848225918074828792337211432143085080215351599202908275340410875655269849240254495573730600197359056411630118924246857649582528243246406027025717920458380083418069746388405107355680421709239762670449007752941948673895705580816011403298141349847568151125949254463352237446356630595733640547892133722003399216423371574005499743552556362775445450649466626661851975721993109232862166800222554889758399475611399246230539729315327765436948569910548221456355521573594262759473155883349168590295319110821924474488958179746584496739999122066901895394536098652719834133008874712320243608452693791118730359938615627105782526957474802709243890498496244543795134125259451863193595283715578545327340687030519354674282117846151361822719165344025641171338117984747069277154633721775253284021041968933994456813433135381483369840405810741033007360560662952123928157226400648913562832779409816367845870662148402446133398314369846135260217376515900066075648710482564529152382144587315548213010374004972554306166704144838637657540633130055956961115881039111937963333132767034145660210009501903550071071525183742838230513718430795931912141024330878622009441850763579839407914536919598461761383166712065969518824322790144573307162003477103771325062517723605831069810300857599700759179045379353681120312653123698536863451214377275645670720265619321902024787547545441798459649238418844250690177689773399307278185926322128472352434842117759881497074229487596157123265340833916941878067024375627691985967682563989998120830875803982841688845052391616349239557027847187194894788639002797701565116082812669406295582257164925607593195028915741816854889687540505664827239525027618183020109911145007103330737572781931566288516970115565157147661684786626584031523566395489593917643620665253813381124313661110652260664914666000844880078292976975511435504006596578879432108406318578110049713935066941998730088693146816323778309480844373780918372588555284516761215126972295007260679694164684660769374687492196679816669709313532677889713165626599429287612960880137263716584812522645884999402157249147821622787941943733736578795039876740208899680163829937238864004739819872617566350359744222025105378384942731603217355835718509839384471626940756787926185202883644855754932143343402693425318374077137915813288662081721690321431629517755074101723657302833592093090729209974245493394222004933777874032945781815671860419439136121420320812607468894403989442016723779299901568832802231878615393126709335478739009178107185593097737663280168514187281025450226685180100953426811976690089150629209547659355251855929731569410248341748989996260467574715486501543039063575343177939168851673519654376508766125861615919697384977517494599407937808005726046398110671730563208491796124579455803129928749552969695686328226019867446668631845743592574823715949850518480659216983076107655998230134108075078187849641350998655453538532855719838041382619896397073129955208305223752687026603862830566110728455931472504926752402911885841208845845441246145486797698194200545204331135008054017850950451088662833463050838222399356518077294036655697767104331714022562196616501272829448297556867116650086510765286582169852218540381778731548417216427848098995269707168317816095203164086430926680785049590046798509694055038719118224887269219699867689235869322790945360149468622962313985895724294898196247627161080187097022167492244289167193275672517511876530918364439524662503099636741653308169883297934630260867718327016736686274791545003288058495265864303425403014531747906374447833764539421068595057897695644766273065002572124547922320613898076995388293970273159338093134129664228348643260770415256769686651252465550603836640392470067873526035265180588800339234135486583662130046516101018113934774062460977621652664191377286257561222078333735544409143308645930356593337422080211129324219204733895397690181206917221023297182120473415595395750707959230191064301150463778644365303540818926059560424205266953523859579985844543951566068367476552031484146180897147726986558689539481491439678201721649639122648594801843112940583422184359339031848928798517074640090654135321001695455549991148709024736529108112804903262057202030688620256539340886941351547662645226075298152906916315309793437222827948814657406964744631689206920242934485852471089234995336592992661178869491845435012771465619683156797417114238516074610615783324922401556772500328365884170840447074534637358606789995872371077754283606612752439817767418652711382770685350149883472241706191567890868147711794536256915220025314715602189863540835119724611866192249836249267581810715840538366218923471601621586667247012603376009800621582489551798988738848676519308321227806559442562479438159741321575036811221873182071765247712233870199364601882419952924804387124026725972822525096859606719482744593205793704931643269069179257338708049200863384744887772485210065239998653111888169260021549125360516049391430749165116703644895765225951595440609380796473965560357388535867428388714161323043937745066082593359431121369935471504047879100102109621408751005646809700490636925319428991143620949766540790628501457376220360867668740432911617550469819271093488109827333553169917778738776089298623466268442960955357665014140821116091968646110634310994763288308953414945214388932195570826969619097648401179856610037818796261962392254869253007071883266885218414832173776599520495717872541274961621242170678840952186382617494895469023181788206808708847466078083646539866637790276060181508328946355764999623421285710657470443917878294658454948253087586475650221933678821778252429783282186285700026078899917106576856393480233769135646835949281766873340553294050434824227765928794724570182118372164047321977866695510292424694817032020713915521263133849803289843886532171630593805670016564436238772696016157164808814457508283586219100837702612159680833386906876829262073900649787613829453259544730513180666806162159442412980701291591543139763700253426256144214768215697084245246748442660889022719433094266765046665428542284263539583127241547574951556080610562343394367810563472522047999103432073183909971193216403114286043684682086434590989347873085934495186810719224372424304053583110923398596833301013843369018039333891037732269316254810292317161510686348319644932545256403959255744757433995581569860856492028461963643999578675349751567217130352052677902950868055072121257765134236385440914577182316294287350410241296517781643482115897254290721358408700253689502820655669265123625879582215069935677377735169400871580790735483401892842648552383521680355931241985894008056926102841875365182167242579722271533727291457630018425398231550606724566472519879440289041792530019660779831851002171680750136281700074453719673695580518329700970109717628742630324158269946344104010692540916689495415106441128364519998120676309563230608388534779569672258037885343935910693081107476335492559368447816981431420353804820198100058288682969644603557915245171998750794033044815011350857363588200937320210841386131751034117320745239451693642283502573087568253430776993106298532252750241285692171388226225443492423126155355953725311281202089947960979995851846126134148152377771244925916705500672520683998032609859486215538815316085914755733981403841090817078414691244090068726340244173476720235479579721637447184278104431188670816075459583015414267481766758640020196498856582207645550732535465482810118457460968289885944209356799756712314181983172471393395602774562658359267020052098174219717100503137832193296929602576401078783117400821302782468514480088080644927335066151593685380873501817898056550332404820982682817114700711871247080041194100678992535440824774470871056332614182122168313303100694684256022753567258007332058241644141902154175917437867999552734057103052678683663510843135707920950352457300165411701646828526014159248171841979173883187084286049499124917204093670485910200347084534142949467523430019471885178866279403111073561019789111284479799732801278815109361687478773822127719454412519183150887439279187609591100495512918044246430804489497948370451360522298305031714459844372460785597321380936034151235866148117720130553011502588889810567773005083851475288027955308596660326908121735608502396151011115272104012412433403976205885561809429983911810066090846001936114801068436414441677802866349643088585790087274867094816410256331830734421618158678217805043855240823634367105798410479615806482924088157903588192343240353150205799607619199398349872283930673206563449311350209255573937913914393489194167985139609430152988751205412376833886100899335725473989771555950695821103296370791163840691071529210293133977210551032506634587381323623760972428386414161743699058149883261601306909718242386651379202433904330347205878855101218817193864743855522971600884244598537020560330193519311010841550546121185390782936946696713906923044232872466850213558692931581435163267632889307692692256288520744116035659914152308676623560458184662821310468870776644371378682984441230799604939065392950240295902909606518163509864956122952338763632880918905941618589763613968275257586980834209805626038447570662627949764901173311197408232885706709146874059852388584335393602013826743615110756342738613766749144186563261742542450434665017365292051373309477962092453613187903529705468342777127309606213274562726114503702101510404179033005517012617616048285110190243914634969784470303214535306029348429963295227461000323688894448041235459675757505993598540520890797435551048510704532875108145513223074585163592146651957774204996385906032824002722749104067371146345584556326728308062354427278124405247784861917968638678414332799067153642367436309228284535637169792028899894749970169256829594118814883551702556267453830892621780415309094620546802224094532777488607069939965921615998141722447136679904571059138390520922373168965020346027416469027621957162535561067759393887594853301386032075490668215650099501794000780575879893399115617872849611591999019282923636946024830782697309871785764219982870475342064880392343749839733975503839975564503191698041899681333547105293852808022898508487141084050211597249022858604936392946510702379975128666468015404448793526266272713450500369365571540235772193154714796432205588940007888177908665843485207190117725746946263178849570429756766978691908344190107335991756475716178893109540938807075307391382253448122884835451810707796870251103144184674091078767465463090207404618341350849580739703320766569311582409232788174875524836921501965798989039111954675758270621607036348850003403393043213121067124491515887383878867813428911950658327044107159752877629864835270337342995186383917155096972678409459738926348914355839708952432117078662392560950341108063499721727947462650881500482905084684307106011540423092781807480137320702043799944718409967560732622101415224935161290711002194746512488308734949310427630058280285784327501805036849775369804634839730383867229625450904651547845515037342981232025786686516474444001371601192930426929982508274642367631370053296024674155300474468252717209089925965155063376871397053710653091003603069811840457027362681650206441519245932083328146967847449870154868483775507185142941960122750993878828958354934081670648704535946808171839270024745925767197057979636067233359789150833115523720202748574254431913525321158932372968018072720807359390078947573255006754870213135075853391252515470116375499655723518199312207911064947384052901037109395199493514007568990507602481650544784256972915187778040926698684553535530749672901951721085971408113926043044816902445905663087646897249902596620903669359258842603245013160153307888758466660314785170874630611921873820474011377827210124002111565683600492702376148417872132065103254026735422048857434563133444624761176519462444259389896239573669556327394729977857259129427995230278644344107784700870593141243857357589472307205952064229030593652141237683174646431904603857353299922943230116014048202206294438431058538346630553707039370692010678794363006585260440033087700622022788016054772315341440116381932039611813793022534607317915106417336841607449562808726345156081824025616338130262193134672267045687288892547377472938195328021268123000222563054645219070719346007166004657902601783362273114902415675315025193272582275217000925562529301199161390518419869446908171394968579407161526522134893252830197892589084985993815897002942090192736693134985626302813581773941351081515515717926172842687034344534069886873374201132562879656588986906468469040978528150479740722451265218083509246021023321987447994385082462234344856808866390871826942484265310507882958702741919422049203481809443647530856131801637058741722068453033852211249477313015753452253217505022870837575973927990012732425644827942353847362802519784129349876671023499087061316190030166493759610617757398810417592139471771733443817024885369718565465519654549530341110063994836451030347551576751126344027527736530947540922124106093529641227849554753619922227575799217611719380809302663442614888729771890451965372703928215653628703083712624170076546790293683514855253709158776506698072221346358486772554131696495296447898998107780613197903110804237830046894840663014983527532318623951744239158799107018586318825205974942483358682924501753030323161791579782019294782027481313179869227326090483951723945262051555863451229862694473167628604718945200022907402930784990092396809779279913366099655694296602174345900249787450494088735126778560162462424363777813103197791551070345737665101163562066703263288944557297583498336268460329245482645696379323065333551467354883172304919759299187169520933124794923527867621653177296533815949235618550485291341583516679037572830597538410053944016024028738632391942682370984303676694113636622605087247349593820011062691290559535723319129768520273063934037532771238416936440330503922509422453946445134443821698639790114583735958669154014045966364963575701052713702869815574854645603667810804569983531311498760482672002389055145173839116277442450291432393189897843786739409569370277416058510609481937252418138653446631693109994171873671488929382929283879967208859157620766916285769488251039339833090290123312343510173004514810376886080123161247594476540783567905127171656251456282094570746570743415496610476164321796547362438494175332483860917199955434012520547232490280686017017161864956935908442009709217495390395659077250418968181970517009567540354419706451642045411149102294140390593858529166062026715791284151556817555762033529926640897168229192086498033225412305637704072749335297123995757585085451875448551567672081523489171013961225158535244773032410843041877794002378992342287171702532441209428932680484640947213144946555690137817038648990723196332674112456546685556368584718973018139734801205533783372528811253139117795137452209343520611750888328435165312210349826743434683134512937218457937726310393723066959153681016872622873357929607650386868496768500955747480050286104896147533036655512937552688837312942762314743597658504650890030750908646462028870560365307680053595957907511364074986058811543645382176608729837476327485424875635554157522958088615015018078610563898161665518901996335390688469575561109596319429541154356022202687820052134285719614445782827787621082667623571801193922888970199498664346706819082071198716154521817481514488689391578862794890117657770053839419831538873723287587030068479172261495575665763883550792005992516460728066933537388084494474220121105757009362740835135136024649394000452285265918542417588678546636417605808450093457383825418439563805585131295119978484736472175859759721855442558871471510067225814359100733588100702266898172845893323176909501143938785315033801734355345140817500460398366449155903820306442778143488627394423852232686460053379329790277704154062215916042675044269815213461552653226387804205881084428365411242789717326863774618528588911778906538185773559611742846412724718067264519291041646926637412419679936369094425444282348365721696262655926591328605437297030040318003521223088270090729764852097398647474504619921285837403785757443489003509718660524103429374541515760646820192678086460355977104032149602845883072045565747079111384828180265660614874671466438628009483528685082735338853707350582861547140235506307485765758677613108940367843787917614930566223474039628249715524295364160734976169412050418588740396388651004361157945869886638368187483269916235984363845286159277663650167465350241074117055805323260958020037021542194606504651992944475680159981020144952251370619813451372870131188043396038414889706901292607316482838868349209671395708294383333927836798329169550774833889088838471994443896379120114729191312287906057619462558876094982050105538423417910843337944966007908968599665595898454076992400726484105579946234576665750396544634766302382554106868408535139675789927773338532010931992611931500928413271030717649641465562428631105591395597729862523800707898532695314389812054638842313537502859298497648934107153640221383553366246801443138671384987098728224327681698117989494146328557345090724648009121847879697526957078314179119926041452288150423130646004546389984862068380451229010560347636159789848041472333702496818867666537341852375075988955362595188266660053371019437625334107593855671980118612110165839700294343738687858377313615629534159229416216627855323122539747085164218015457218697400100938458098433073094797804763197137975469816383682444706805031281422828278599385693362652856384504521812039279490442413317864959052691802409436743587446363711520085055460057160721399016428817361365992514764083022939293434531569882304571287388663468637068216999755817537287704547290295913323695983289793622986221971534597760379802569560193329630361163826007260520644977774880378198944182004644084800053700088193015418241467373658951167419196677972864203735773982413494304956319330416097494213842455165017131333955596878271000770334785039421465355581175410763415167426665604844791112400003793369856788155581005942822400742378398836817047142973234406302798751647380985087262571108532168695119308797636136570900087715675722053358229406608384693621073627654973091649176306815324411678378020774518122134714550063594049965779032212930143364138882535676959813698722665474837581965433350228944739208945573182042977444658407393731142516033114211545143887093468034337016891391422802454209979010807437100242273823985957364443248299894927593167527874900527770192016921635812696942096595035032262842079349580865497034422842519092983042725701825436714248270916595438234564606129612082245354748875575961906007243968145687281666011191776719698120233840635370893279107699747137687481823388622669264158399133327645466480990330126502261702534590077607587216517274477896430753290525796570637828593620581769361534611752878107727500777937814380845196294610966735182435979148975259947022234518648999892243588851640442454255352750791519513191757277893635112964865690773888609129738164276207882859257490343123597135492793140900970080194698863138507820220770288352408950387101757776778283875878637936672446859809366915918756714074455260396014496159142847704904491754788916238219002626403202924881726710516445919762658045991520621944303070692013164970131364410536039595072895511132421038335771987309375667439868651931526898854003125072692598076372009344598577060211976463714318210557842846372893650619496630842330930948461421758527187804477573847190935989540189558612484459292881466590147093853668755195863463962716061672726589881542127558226205905389996048901735358875395033101631931498362871668516294052235974682042322322813749113986075343218012225382524082891606246695246407038877735162153293055271731438693063792248194744975089283604202255671028434863037446834776923204417279969191369628979992750279763054897994472036167492040016597211908404901532529086789857040277006268330491154046322776125043991499408518856849924478414521356753165270481090175994087322621325345365548959504061699796376361126466431551170212067959904719661911461951689259709796505482099170613070712726745851987596431978821367501690055080643283502446629497672992379037123270306085911345015269556282551666809644655270710829794507492943504952484738382549740455427831640564509142671403580618540325000815215043930247396354449951364269435971873957984910878174584483457758582782947287297457183140280219614149973089073265542759123275232747285851904421742924976230041892259979431398135096782156060967775030294082126178217897730654835827306243253539878466899924554610960785016864276207866712493329944011026818436811615583532947630468516717570693531432947865210634097400882986892357849519663287634923023305339964927608940239261381377304054155665350800109173816895946878013573946849931827425471620806170584696662813759014428933652869064809710113323031117665936680738661202818636128309234758726664654406851307066928808462860500480728728227007570866553778872968258787965406985388479110478997167750242040628012162117782512851170049141429988093874878003164704636438970680584298447096618341429548624063567841860409785828469756377178187769476700141659717912546399471025594935452477127603429632165590310339983955778602328617549161312241946761152966260821711104853558749290143041883040198254412683125428138696584413798286498472990858274730855351817991490041977689304531806854536866646400572386376518895007787154040601677649719225801973068168653730807468628925467918004945692764007673512751323574461824652419073976112367066053944224174203103371459326867273725235603324510479015790013308840510498180839166048668329957881970411238423816092728962216080004113698941448611967006233167664998436376682253283222842427598440239977720069875904998112578892433436284357380921841247257880563679035963489797688698429663715629058418965689796091780795500081373036415202583115968901674130029038342843169215444417412364061039339492205935112568310778087208575235915422069694698792281921551772175770705703540512876502512583835756323894556346576946172697378647731376807532377868009327929385659231362544625458112823156574574196432146137600281048556315376165042546711389093080870043198833504201065621103668941553701863086996860257859449620336792205721673991955870283546650946894963150517788891265776375156089812110201913962171995542674483674471772244170250239600379767737569179119840458307178979711498294068891507646435257471561132483943850271578135806282374646452767941284225772906858286107356123361346797872607696220129736969882938187653473270314697052185413216530913951884808097975450272522535015548462527114553011882347165535169079106324962311699468704228035183844597770819818973596217632751638086553158691719103098345485804906914639871540152629546296295586736819352619079456985838274712874825146296732746500171836724052541308046733165136067432941041250280241758375814618902663463908706182577991274523740223464951480751655216757908901233442830394977116974518431229867560941377095416185556938171923600293602998139280441474437949284743619732224089440223413898103171879493880535021531059461928513429801554346543398227205961732305061786352825679336340994730247595136815410625342153330132190021183509918555029793904167420200764821426331823067743779407790732355984880072937102555396217217215840088325082853688906969141849950551973699901758629859995747167943024813574862961602781881277740878358895201174129838208883191168021922614630880041635859636066267156974265605490663591253641134444536474622798250798062129078790882599452035981406764018549579121552570274458662064385578227126087626014567520204845165608899683317192477449997338930025463701722084391372225784290493391195943335211946526816216945097215069653889876760529646075553261469562628233473300817686928166957872637074623020012302414625345559793532428509733533144865414738935585129484591663645679102513903530787213905003888754503773974539671528171920414809708910128551445386540296464345905646702442764777907618883286468258053399682150619202174621683165632889016707694084189558673933541679200339724943679809879633735666213468704961312668211645902376902605896731315760857803591443125788080061204556596816830786457037987203492539608491968543174215052543966160520947687717282598104908052568680084777349361426942736808802331819771590938281153128343928671361064098014699461752181208797039834507710453139006158896886947276930250760325748092851837364727208094557267207587266069196851260905198236403381084644548222628530773482114608186212465723505313060527070286352761413420802302572788731364639117044259601526309163475044278995947813009175329597749334547743141170392852251690397609357388822325879666267374019131315331816403127006647577911242056532154088425380436008295190334572253943606768015824694941562507374047934200297607233421871233339085137632352920538350452372691624918389736890422470497206782538522764785481151596690659056800452625989677338331674279486337015943862682218214778017567973624644656720599110598800420401919873200084197838255631361731619833610520835872808334565210765960057877572593798568696806325304054151062642948284142412412017345942575925100575518537955091047373144988747245359262852833108597995999948552384770774583585316753987067793344809022395463127641988147962898856468015505521687196322772857827778272519445323123568190216235197500231957174685476328059651391076717359526206232679639675962640425831907307237622896538888523225522026704266768016934247944832208183240268901923936556446057019964079042445067734807208907915085255281725529187977646897834887609966128105255080548030716986362213236202010811221012402878686836280228176628761757953178993531119784971403759380217655185951906198996789386009236435155637287354547105473798080367286705875710378561451756394507430822348048862920574865887009292751410248055816150325567927426125953434734884320472619275277532998735869157730532612728842684958311489710570796772501034060997631234723350874734744834493687770210521957893314494890140571629242000925557108759887660713175084308609926074474744749318470614164635281715385768014009912610412131319648916935273956394949230204964960247142418903878112791118232076175796774646223960838894496933488126179960269413464875705279523555354252377967497755786898704007074202593206615115760973830320568547436992240483569671741827856722099513214910521418934085952382872405137608616027446781751375908529554449375811464795322509533673459475060529205292842290094148828128697807102182109950934040554506530971105176620438361515897747035646321309804156375937825770894521953697818923104512364623957747935647909413873644546101922844309036253143162817122175473080775248491684993642080556229306602019284693423399718811840447150551577292985578308551723548644463725769779479740181247091169890269128309638640185057661376599631292869618150223943211205876666941873149232876795229417346228969378968130855256031207878779895632600411710494458964432600095907692377248062096255140358293062902810088679047932138982508917462251887143564970363028919816035448545438743679436103892896987974919420442676727247738943536875523879012261456792369979221946832892241661997771157160429816836430646821947347681726928578547907254778180756210946547850077517906810592583325464636390386981253498031714233092743594342356169345024105141556946475296364249677220492032951777150107560783252241775268948017915428395923674931500297159181246087277263548472547656203477921150454402129462682149553334910609342338294794939914772498928368711202179363432219009964335062408665170351129062631453070048968849264122068608278952853002779329754356620242635661867187207145626306589770937914008864373239360698457852168163476992149146480399922782277080989645927956378030900020815306160941607491728450311486179240439481814996150261442270480844985519554294019602671066879822891771600683082892049283869941389746088271004047263579597022010916103980584398158068892037117675883971061492909793203944808913688628666766392007088703778357953265919700482180181774613561849855237439707028713632690201282031080565955369588735697929774294691596374639851026486809000498546508589460555098189946396004389110186479950244020564125995548754302679593572342698008767541516071116106445510904574570365459901290285160104957342063540595638994248598983204054272068066400926530254352950034450094477886598718689495926450471046138186947825593328069096078065225975337102103391556096624692563450193332267749649097338229860438776253815542547062537692932027647562824417662845362043478200322306176055113023026038574036498737263037134214965828606224981982300772277030727186252566146145776315621999784546759135604988322125870227213155187553999559803002128182481601359458850058272384967893034028469116707016902215616368444143298853984059674407316662581486562026701931947376978280757815074771370010815757276436117787873616271916886818475252908469458235422081429292361078403939997515260811306429494371755028374737355113064512450871059921096247556685112454044906338625199466185658410816771196757780169523973582381568629359378050784377677650998059318945404872522458700761416105396970373617370076970351602170032141688486486396433659597491316096861071612864014211519201480810073902694767967603360405890196771940275957387339440504724224171857970785140113495866910962885166152769617546531979449862650541780211749274765778285187270011710935167742477615239844529354296109611213224355230488107880730744835982650916960708296123669587297580322702810652678679619194089443414638560741808977261652112356226502014739667950087790784704615244762187722396032735701670454741388478141972040552778038057389352044147568180870962471919570109692648141114580454157963768863687880255486101999324035814262076372259594932173185293049134361802048846364524961167854320066129991037747540598300225827935131610622253415408907921045114245655256736005073797535717843409686117870189641151324947303065084148070045809982461722460731632049176100425227085555740249005015767001825643859360748473701798277913918900805698091005945986500318349238681599738639262510842896432230765601553426230302769145767530490043451314118637783810590741889211328917132244999823835968052506867946550353155064311920003622944204652289791646841501682705765133491034525181773376088101024008981474400932028815093720144269741230453211915300102779102119582046928335450489246678938916513666908856317230035798099455607961593897215494933744992238850723393009022522330314165928380282238397413907454185266660988603168236223461394242579205778337636010789863593975183802199048834766193924929494618755643174827974636022021250285451369821949814094187148458223464029689774841045621788238429516721381469567921132115065656440070110526263603830450373543806220381132444499923670970598470092397974184111482172180265064424295325064838719538035210959981081306486454523513062939028450300647027368147433626905032144268509501019425854787086128079318882926335642957989258176483083189514573167578603044271439934724528990806013959412012047023408013004849851022193542960307063494341054669456726566763837493408323049120218757095389039138373637387664604129361466848546882608062696858131842567072835555112303634478178967706626392097380459213190266842856586625834428352449546597720751047817462533602495082950417279901212947688935754599181505324672878242336912168932774313722804452302669721966669801633752684753340165514119916009681415015959009762209927927036309948972285421689385888915432911764356394374204201577264906791731818926569959368821741135191777226095098012551481612301971621013690797474408776315739094818174470996924455571515036527097074612960340718416540842400790261565401960566102398693650688778052824737527268525396786618988348743212518321388690114522441522547160671166992173213223155990611426224252029051236404591848477221861607197081565041258796238931859706551475430089873379947790438652508291204662634004872998143980753215189841726086271194012235624522630087614987956185003956858429616030076676116837569299045652417169073367529553058580125469537754792177252969000859592386835517649103028744774086320228579465073188562884768823847978272868648910570211113888126246058465355323381899496583572273212000490550867873102069256751133704786671249300861486140275526123609829981502223400405565525815445725099498981204191881748335608127387560682010204433117200057790322730876512116827622209375420741027491382244064435001567577231189594658149084989704352651816111108240830644413198770461165963177353679954597934472857997185421192117625751404056709738005480170772072885255381128405654251727738340651206097338150725250184151163235824415199094859901740065650204861565652551324255734628836421331643139070356269895284927853736017669119315867304936268314839407247560417585026142001666773752387879618965276235023020454007850727117395504175106067282186698905753984531999706940980819848631566299551170258075262225787607117148045110721894587125803487008499361256607380325377406729756066969328405260085471905916199055208698005412734402593537785970230477473069693886754862146688396998883404306096481312051116424258959051527051130873966640140145362523844000637780246433362470478620702346431847093412675736171045367815092583941823993911753863440533543593641328380691805445381626028339228128519962565142926874679823598177043437393620622042122717410693881409168763049779425732150550402588875456573208002915055596989865814640102624087345211563077306573387204887317327157539928683906495483116392706086356183187312977636193772388878707680756547171184029298240116462510017539923798196195429861683924631461702663935995363364016118751479899646924780408974494667902775838859254662667623981408800138591855696156918356882223719394837289000416492102981387390756111698307614065922400345160121413960163777003362339771247927534826804680510008818484716735656001181535907609697895792075253502207052938072221265868478542796029376535652609781143399433809346899645320053325605185757992694748024447976311916788867122643908623846830082933909417365767684424882038326790495630871647139682214860067508765165506623687258052978216693980551556733670372469704382216422585411365377325221690501287309304440979830524835183866584459941838374079873021262008753222389402822344441223537822398777745444871766214779843794963392624685570115472390789635721971914285472539077114147248784337443729188397755110710244547867928571273578043276106818527316267411569292679251544953929517782982157449567365291065753953691302997597533358638729088264254435031211259606545514038121437201105470464173433405549865073752105075937992477819508589906432592027362219419946478166842899557079486504005148107114120287282157715583551960636947337188761555347445348654302569795229869520362095309219339744308694946879319834215946933595946434628062806201338923883644506188489883041140209725687849094298688172874742255711009981081993405846109995181120083611415712198853534391890651224734951184686478251451415750237005669965206361172989907727810637375366480662143370261950431007122429486709622902741694483786172526649355933822424225768730666401121246901398856315198044631472748941983239285404705330393130230824526736574790439215355234410355565895916018211192908364974050861927108497266147149688522089770585367645950643664196516957280292471315306574393942402207617061557385432591650069921465790691338670096746293871550249194458478864563256188754035675416215651580758630799028091534167159795628993837524052795289595387244874097050607755844354514771579207030033178782329650131072856890466732709998398401667421378512294658557190207986753887241810058255825886252743377847954552864982362106429167719460186118756002682731860702967194534590974008719146205845178362417229617768246050167300414239070116886754865620965106315522448358887780217573309758870052513899682358602470028505112843024571550492682722286518995049699279827285403160931336260757582974938230734470743685501233021985266701282541860012514059414503547476944855009352427658928473641542439601919057218425185460959318032473273530392561261988866555836354704089980765639980640515179787201442187637731559325756457011276882988158902602563267135246999231367872317497861325794014435484279619750091692412983448209774318411366167568289169265545770449895635644872732551749432467411910576233840370519411490802920475062988112922141470028420318852677926598013603044998034709511157738268367633032444281131369210223968104307055182470642752608774466425648360571666934182129059052654357323856259930644330868601962360604650579377417015365927894249661692735597922805671292184487451127393615264744587403601855672182625237829072878789639967398858208714839171965583356853076678542599655553277288167970544355181149496364333214488877115250114693271020691306404232764517067620119971022140170402275872306092743546673878564143825563153736657605823841899183288288822512352697931033397839886160449830861488896966335955299088673350632332994946021418205935584717307295978173947775877440742407623274205358306838429837439906246371246443457648754281021365213014488308231306493726142454277749930682372467166828438706008128782107214582119691260609025722290001309576682146133052342473582078143195447764453162500297417888739164082100156286558148649026956484649322499877670252631849894200303787742049836139670198351631176355769909673996993600323090604067276369949151494427068379086873453394577853808581054288275635385755290983339038144973160989164891444884218079384779068224559156678454536223299965779759407751067298995823779496527785199025813668772330189623870188322827941960096043436520732763956206414351867319281270373502213736425969748966833617966856776922696124786622907341686849975658526112577410210198066793650361257853630630402799650854164534020113075488770697978494746682535166346331254025649060215811115220182254824877784751696498321549315144110474760448592269592121654706516035646496084591183587024493741225471370521236267714775402184636823101033634541629884339365945518179070602759278997744699128393997261598635304639587420848355893540371291302166362149729931510054713277053104447636715084214897587528611157295867998417802564574282434241297446958354595334026960470462760442135515943060741888752907508378764554551803095873325585674831078155207210157806523988322084410827474861636101477903438904461988408172211836468079144606990684669872548275990920692193076163580556646588754315341795620498024647538882714533326523514326156562209896808512418419376111996320973296153586159402225317460232292765510579558723772590087486731259902504562363289430923625799566149886468380377680136526168884635095259391110598824537997689989633413087153083242344212866594386903819141137858084884412618051379453686427339878170445993027270420613830471115513242802881148402268147026270992409803091881695188394912724411553822996150220918603354522638698302292112701770015903753944850064488568023524476927417926265051654956518334356176571636218407588607142073476743203966855583112999272417800861745841462910665341055993141767434492845942779873083761416734849551269837911313761005660983115325569897066918495808081015721420498438475981765156769771301298529043122230562011013757441774488647733347179362083799406648226408367511377740304896191583400974222086726722677924212541935010500370635373264186952549076010684065224721083550237367833480371455752055524373872905148632725306881278751695318571971299837407141939448195866067013761322891693528010113961935627339249251744318777411360443094742765485170824998076913957061849604633366063946071613203125201032539129070995731697414860522290480772907502024707664404544785883177095422536110989709682757309735698315891592993275849414385717460582384361792601887826656750390016061542158426621886491571553412669246643027329401186850626176514764316206542169210854490855903599471742126958103024982734862828818121257945074614235192685122179839526136344739063424190144823939127949660779181275618569086632148848113388306200870167693984647795204793933295216461758852470942301644779685068431365177278253833562753150201028976683571993811699590674295000751737861006729351021373345185259337793206348104054161814660207030181983483079987165785508641119045755791353467126462458044208662047404844766410531496976226213296137536074886525523185016071079586609385951606949419853242327203192267315526341298532109600172671810047361293488853011996923603807181526052131421399847896325789132143904757072725087978139445668272663492531182059193834814009957780870792953611362465689536924898309450945707669652332658242905040413244808991490004116178035045475124013090023006697934881399031159128718995163829444739671485256757118930849646220788142206784525040233075730376386785901844430366591243378966795831987487523920775231986025286603783828498093896034602530601149069376803581208707810673240661209813344669530342935049043087999761988908849290277997544252784198589835987293395468584978704406088667947063006486733533665875503705647989730013326736939935432180674132810498307539721504679023730768217966287436527759326809830959139948778945306303627447394470022880631168549003738969164745903092600391482784721991352677972729929480038843754103811962152790030850580969696614408270151984233788222654392514749355914656899839410168684166269069791703571900568902859529406725855166877518547213905179507721270835851869661705769799736714825504306895030857702758852966558691901447984323816910951103436884249102065450080770207744883381219606573414891284607153103853695531182245235207018305628272916890889167581841002253378295658577317242176456482321212794521724513033497050444201726026067511085970343574393089447966623205986068459380270030841422779553061439596701102767612812598587880604497983374593209544296754164608581769331424939361572733987194856347828055634566871796648942843766778027497255016897072981693013317427282948999099190742092844603021237945259070425876079649229727591800892633372742535516178290172143798526774496950214178049134874092631567926685825691793276229068202465852685035072227492696821746716889247602859201397737393064570501392945695100877730465695197704637009252016314793920286755909024821594265469013095214829222324126103276559343566815644083587187137444495193173410655964688701181301818872811522195727510292316817478790699108707856231406279598579105968902721377796051028303896988065087213666898446166709091481185212403811660817828705078802696579821935273443515373408861374845158510056304686453137117976371338906453882325992816045028783610971866593538274505715362536576210003018551601510955842259584045686675830429340129954343924660503367264545638697176829430954862843931865278923152723619269068015487390546228471701201038329969262545254458241093619806319390284504971576335636285692112306114617699453865883586677845552415358434741508690677039683832705704515941018477060281423104400911825360590076511508487945821111460813367350853927040383986912896710478672473625411487702635843114743055869469627862913345262765900202817626943960612981211984301602085930937272751023667610591919467225690751533111926638880514406236620968680995164632092024998250353733404775108218822404732513111574639036847114337520506347521414125381674186973649681997687734011016087780646866590550156398302094882101276644836772312785477743190947895944841518377284124299527033590776973846115360939790129525641059530750554556496182144801286655561301274367433013435750025637599501504934669365473656447049805536045589552570474509721503932247458365992103149062843275200363777949371516312128869140226320478408932548223336126385161921277266428121810305696557487414131538811717155174572088603377301321350101963063926122390754724431549150295635622326476762166050454163737868243643138733930926765935462294425740916185267209229325540402915255015686726268661502392204439310440962268944881404031781185732861550148255699487512283750252588213727758079875641430199792826469433267747357835507368046758955339369788095593288819490364699781344481627572199084177368714125410186682096110289537939309284355500779842581026056769037708535997254108902401269282888593998533360135751255146196252238572387833339067455589081279939476525603889121194094060770758272009138028207109511380944879355345682358513851888530197748603997524081823859246800426051768001817813452125793493313339014470346692186207725149655487816926080944297762853291114693243947254319924517970675725452914217269122547469801795944714927106095335037704958601750679506453211323163722087765237403258027140131672891623428779272902209571075367271608424507874892573734814618838956004618459526912101602275449520479401587007747512927464041703297794855464303995882214767461113721681815330406471612779518954891062644794941219512788592960939195827645711487114553650827787659713641206688404593028064567569535796882797502794842684741955038522623528585846358948138568820744731153264388429257116100404518275079257779241820717762616672522253341762977720402635862578842684451348242429380050088110049932503147288874494835191994298266540243049840628252906243999070865835035930260362767743447830244405954944827177950551470047277707471103020090497551101541564359885699645943123597489234877396581334947507984669130118239722095398861160095896976953424186065607828427151102329000451423712660043747287899949863418647428444978666526415211276889815904103069628988182378680102003982528522120153448300509008361550003162416698138221885174072693128286863490817450389247531217496495685407517492112885706840653300638901596082196452452852210283169368419759185220097896789220839615362466972264196936756719654225029084968047715770056796249373460589973845744731075734964313832443732655418056625814307133739734706928421716197560804470031886149261989787263140874658722732237893909703089071737517146532126463218458549440032132754781189550273730108229203602349235863379756238453632848328655360754146521977763443029926624319049211684607395104079889957200467536426711940463617341835955628811943433878682477387778715792007943077252625541844575510564545474965050793567284796294972876007135444836345242075047445659041508129593156882375077457340544745528439716872293537106733127626688378662552541172914444715614603696619875408669755270601023180235438582580219829197781748321871645651589332159898405506031891565968562609175124184607411069369586296179323641500657375226304532442129689177618763179742491000751125781997421338684924111411800996020116537683641939366421451438698931089396554010411386306434854250934582049731374756979626167755804022673883285333231314096926830007367183710067880540512741088233863817966979883199930337454382265944461717939596360811799207985619033949389622741457532097896849199811063890014317159897075523403315209998522053685602279626819974583870218183539883150524072237742265548608182463850192292183725296627025551858805915619910087257103535581303487340407061131591306224829330837617599777211181412267992254738134071885331838944598985026921177656731100132747770652762384669501839207370897652225925468809340714302877784509793479338513099599283979090321003950966971121721423659049330925869205352949904933326207251189692623235792685661612388695929106207622803073580442792112553769888182645119218981233354601252114378014177998130654758888627713509234177189009947403560260719466618116512479754873378848381871233191436220824029397633602676652676261982889663899852246228776178133632203214745432530503156613544616859140432585114928776338353275609984290728342441955270220913083937556390393835321743481975497433774564391499579333997784252642510067306420886841906668872952535927307610066447131292486176645009028817562735360341924257703781755669410533718641246563449008183709482493723665138069994705644351667660727231724387501821030135958875972932714383750388438211886548464828741606961168170076561385355284653521243724218220578448244281983941771997740214359335464664526701686527542843003994261309216755055518566551192251859118548544971460576537387164391447364964029589474882364854378545201885122426688267352357061226554739156053616248701484526903799131310360905111042503979290046399861493674769433087467311134334640188960088909053354674650206957504797143843392716951602228125451223875948420248235089875348360822127438202128738883536934112561606840634538077534678758799887316440385383626617778233760146732327796774979529850090820606740396249477017929420142992675137260001103803354521179341486890500178776182893602645117339359937300361441829363471192048622683694106660672429717539948186581306643377350563214580680273594969257231432787883669986034499490608339441102675670192578082921852979655448301632176997931053641168217490599150966321035867004829153187130265051915313721454989869364048317266430416333090326268547328798171089129516607506856338727286293349857549507465993982822224782064716098249259795644797171234063558463617638569924167717087444846329201708015097854702083652676400026608580811990095954070616729541099502476210202937506829690809469734164792089530711144724237707000275124471052027328382419109889011931312073417365426654178057154040494468719118802036267041818694936881710485772040842482246723425289742539984499378764696836304195752597029316945087830590141829757172948866352629066925607706343857288281028714107777239043509796290975144455521523935984877470075173875676478295959998804354386720596102435993681285323616869385002000300708827596067554912599063401724898089466365568597459116189671893856691970768230362058503203289984832011187907597907366209515783872345853045348544186332785186754615005440468294744246377115991578095886965442033418153093305660345874854658090199346900931366326659224205099693711304071873865761101116964090132162955457942799812137945434906605654278718783965081122459801799227152456370225408369452387482548841195635936927830862027736584443213066501973561578754389465716028045461124847816920464256409655584584197218839596571573713870097156249778053576381358696412218813967119502474196969949369183941332518516645506134504109499992341014754078759560259425046162134628946581616741093268653509853926695185869590289716817674221415417455925687600063240089913067055221973570143179140654296450198037441560964547492398764407007531886784819732278688541537789700944782410577369234008235045106908336167386594522678401125165427678304377052795633724512710287643045256704675065271982836423714618821173261167817634774611389683313606507097325783344828658072503067339896367891658829302820186642532427780387977452690437844110014401850951306579644828334291709740350713983336374057513583582871113164343310920593151144483816192571763414592794135865585923511466347596570337884936624968196796621454919137077141199235290580559838202837500060763707224183186682094518607178814919364215193376558854624137427660137985810000283970995892207886170615842880813897447168336113744712640751160711923295924429146096293458902510528564472568927859869091592673051073940723758432407136396098103883839091033163543181750046274050836143133275236510186345913237102350326279372306724835576107688551790635640225105122445533583045284961642297939588012722787612256226540259528015004179455602506070911051447997826425770424488755704711192034847988197680567648647472091847081769758716131824498222374443711567371428252923100425033017422550998357438467420516269457480675836067475656830846881311835217981649224476111992127765980425850964160012045655939452263353914223056663196343350087998587647099507019430072729204717957609683721148360640393368923056553604619911277444252010507882110869655177356953996933273356459803152650169505954678094353533247658675092514161672365827873252498537433502654178279798117818355499979728712835483033503722418335910704385478283082105904955384497635913835904330876505313405172483483257447157762200238266631495420572485515249443175335892554050939761602220554593809400268956299518892088010917595562682251831962283480526562584864339055937926251223875944019863424977390293849746672048417827748734424434534842683483681435421148011050581575974466913134038806590810201634846738164390170729224759228690330970921912071926311275927827970505922456425983959401793359097699082843724164343026346580084025416143864094546793160269292859431319930975476262845692133327329596241087402244180599410069311247963039350981980576070630624929757514224362997014744383057366993872722057532805421231909893483601942969163973748505043653796611951643196022205522724391960503458353301341473340330553154722013325843868115719030590214014624201366511257697432934522331160047875537288350506623884828908298224526808440237728058143455618113408973292736225385966221744610131494976630502634158593432333974044726892509842082579206865703127582831403690584461712841687644884775506546731288299499173974456314238887144609184314541272747485712443012533121827595486430027816612145629165724067829733708297605087750024895899429740974272584586201407059788083709494144129232973011122308009141334069638524738748365645757810959457420266143805348034789427645582413638352615461535810811717123027741432681419383675316171297153147678544952400973937503090904875957258383197175766206417970065646400998819141903666718668507446316654001858908154270221033226462149160439853788278326844025932193572743411142908201002168249545657648048360285047163568155371502552430243676752476003933846540745967451159768374921093491465569492130391556827127836664581936904722677789513415620744855525977545609661589765406912199069610001463357385475647235927496322961567424033543093782356628431842248581553136996321463721894073644032158601418580753579376157977751724934026347967283820846165409000623196465133690947239822987218450174470191118855446312505965459760619641826080445309051945935238493800467858608806068588344631928681871923727986799143111623038256815376655816537514200088959626224231062740814035395827053478007748372525425891653797720341876056436954708122783296517933956827172883972640767141296060679347546695656714904535172892969300504940769191566347262444142139374359538617530658966938636572131581968664159386962152712105811840824885886820000736526430631659205997453665686169481479990206801405364932963231075895007162940368266066150927525936558997816332678839965284135990233230071302403977059235688822943281773292665165750354107083189342093918682195283877660004995742305557554368112889193957912230349061677019704421619839382814246375927231568337129613967041500348126966693919186435753110585207755242743395162693125745209536184199927650699172078360813277441732795157354453122252329179981762196938750419859312480757400220563579067161920967628500981681300060947088041998827790541589905061811151763511083469677510838720813818135403501284106720317242063659796818124554367454616581436362100431918807421610114962168334486041445381912643559533855986655124164855118254716691447099509745123632210486292260072608259703406912143721716851027523405755419752146218717546576135238111396306494777292844448542033916450936557084761980372363652708531896078551707303380577859574470273631435063172736841430135442408125926271411421484565483521036549747244386622805605443595182822782231079629833846413616337879797083249266813273551028473558982738288384529265916744311608550568697665732477771091939919088031301763908311774475194222171309236374219637391499450910197466019964918288359741077014772212966651708536783320819607505512934360275893183285529471489636354128473496273660431722492805191672366352341760642152692788308516444918946730939072295996279960421838080765492612471197890535643900080925333940653171208156340374984391604086481473436676254513480274399381435654726536973483229772599946041774385555612485062824212397456376608317626941006764557820823586921560071036887305310474331815426747223709146647930763997292482584788260490964626019028114360149106859216896424480941595406272111230609257020421802476100789096201087459039974644035090583523466691829765514562241692671964557702301791601401793483670082693379335774387809579016749031502286183902433249579137812532546070443538661317613249667689298470019412752852829091844050749725001590828946540023101633873496593547979220029693446978717844953974035622512473705530558516978098216194673050571311258581971738261144747184898034065327285966117079602013836702842166508942394237088751325720156923532183662385282554494515489486423137626764818877568643099764265965148203339272133733993347861291750816469327340884903960863919445603079344552623519655272146459416992142043940820575256884255430882071419320954052597408924123173989301834241781997121112137110802901917261161110213765819855915584228834406523084167095480907654265055472908073794350946054837524818089211586781275055933956662036791857532958168553785369564943172160296424811241731977656984061214240559062121340123182079434568259408281131944950533500793471236693300644200746349261960413419980442523978568168361142516206352320767036027423758354128618684472922278397907214743183077363693778128033739702094563842745590215487198871860913536593431233261063902819245936300536729917715726479196085274780272534428519766252824186069650488532751051837059173328344926151466839322904607441131775440549114799983240169201240820219627074678403556998553582910004768649697110347118847162333224991160991183262606404252100752211070900801992127001291994652516703156314008452955327020346209136354334316087626554260346678962561033463193811161185232968242649363525659625659256350442370519974554678676895358660978273238214270267419562184749186984123033460879691786169807468285270430338536232351736947197882805505380350024859832565937828898528439135307469976008374448187195577286032343753173212960490154280954193422386461692795545492948267770230963552746594141035140404120905759505444364207574103073108459936404603242571334927780559286728061362165660453690595082865743263311925468473817563697485650116239400447354565326341417123427497104444291314298879765210782374191673673694263240379177194053015281716812682550535832424977873000118810219104891171526418925605071745179188412381935336354550898872061269719297911690232465216049438419929879838442357151780746541929945726942165566466415366834136513924298920263696226886717179116279980333884704881295672949461810798173006538175947537533228045079530707611894869093256509510368114240337908670817415034559108808612956365041598975104418392919637097706307766833757751227043618431235110002979848296328818412637044210968058711393812739567425428905960123284507737179670271487718441147333623658395012595075327435176663828965440657861143448859501844118607073579861620032086689097357007033305996920936933039029731341818706168735359788236871968823158316189028863259856992453719166874689242757262774347852412175732875498227300148174985871544163549136537485804545356837800613321643192875530740159885468955335575821692643116712861910421588052777887601281307895816628333437291356743812055540433791072856235400029296831355669763677133935985843140425719046849509750370782892174496052214212341970662721183794067729527836651304668973843823497658131662797199266269096359189626120827622670409937469136466962179321348975899663320643978414867959058488607240920481202406894754938461640659738013143497621271269684990737925887540339440131205892558428807745722631247923220942679776872883726463144982666533854376317997469979661728711609685875871570968122022709041313242732104144076321594701413061052042252794758089742274508972921830382253469570972156341182069911853342040338886397113109490942151677968522197069182593711210706764172769768971535203208996242549254563621452497096225904188000459881671482645402819720512228553753951360241670819069832876177044390024688772879151691674211108828597841830481952822413008555699894205447668567130376317394904472760432515200915803059443048391594951122584715435204271033408581226959387499164159486906004241925391639626909461609143984594301230440767498290943503285156719710082032337657492499205277960189594660456792565754717163313122326695055097167028068189375387342988231425579979556985346510160205493213003554955752540555170629992382365949914096534691306975789845658561432872138471899668600302338194251253318924781497769161939212886897267118226674368976594147310354813299664244170743145660756495634760202443454287908224224024145594003662138075702161048291733732721906504664469176570864323633282534253978678308262016901870119256511043459010637881827782026056654298451640779682982825432710177608117634406742521173188464494290895890018190321212243791101283907562724212424539822816946374041103338545037747460386170542664626340486807587635723779698498954416436247534452387247866903738826689639298833958091966080940230102266219665327526891696473165586118562732495818551160340302382976449179588731196945459480059073821498803556353555853235434645313112824146615848267871801826730940498950381680837950664019934428099201110353661808972638880327812229730096674527618907730955475774906546208510693980906438818115435929947648603053673021363823239381496098171847790982970509473457360871969737688993277935892435747225193696989161148478926186095442122579188387773564477274737216858369225499434528240544802886734109029245666560432701878308027595695973601826948412088429177740252529798729250388054432456784945187762324362873965035382866132563525028464807473640762979583038262382592344770506167691651553290403335378988405924116316057347841134950255871364043514596762889329732301887414739104060822838256008399677667460397611800088250657518796439041872542218945905793905935538117471584123003705462327633230552307486603091682936410599196815714901518444253001986724136151081228770873791432996301176161251803940061890480309317358260215148515362030039882103768375781012405154524434481657606085319491154079941436767381166964693937851874431513432320322689761548628826789288168157854362467035428527664659218211010782886529489115743382193968667420213546005253845625410505555428086251005860913001951567522792493879870369427696926474178689425742252993375414861740668955451340527079253314705141596793046794099660059346912120532811067269099282733240313033401590027431294684985826028612883248838757677311130382475738969563096591515517978118965877886478639040277407164909846828364417576360816682860283658767493078939589124114646763305618199644127137910172220165409439848150273873322094926233594310785848374361504227841289057809504351536907714975780781878701328373453037643435083121414736794228761593112773422708483887830831101530776439719657604768502252730751445999841992471400921473380901246893757450897577914124583587513463603092991573294904070347655174839275394217624166748835922509336980547682769040171713268638419951597221230429921427265684942341099943603748858191266771693543055715094335923126665473338987481864851889800532724935874944490336794780958991889687547208626552128487866589459033080925495213484446894348252372396784949210518077875179557177568872995455710227669466607165784452715049780920624069337487991825156598223496170880250642448397612646373238855332950547830751135483750207446287898606610661141759805475812101016375008377035361226284595031453881568372700755238351565530419004864216425857810398578340147753147174681469736569214976828944404326714989003201673943219478889852860199677508671876012501146690348633295662940097795235354201356415780418782251875695753940633511084213558552128421775363790987824478667607419157135973342777891614968517735852010248137882141453442281138372139234919992344522744707965270597695181401584642389929845057601822849402739186087972698474592656752815881579599924693074348840957083344160168825128440704315987900153002024200291001991313470317811373583871293885733933531695272149735910175095367382222792909918270553910422236693192644020316878564722569287834250229424700429701893546540821420637952200142827604039499253414304524782780162853088219400054575898456361556513766945385482148402235888013982534703143417846270054298429929906214199067930590806818940547036223874244734943200512797333746492683295970787868094768610878302459668903960549124255425384542377921455694775066266934671520000419337064094846681664444699404744572489459045036285615740988272979837818911867879501878201582886652962737437338490309033219596171362262902251289857582414225280877933101859188670510341886977810839010820854255175579578678470621866693380015935232892104372274244784923869629878585905419884609338281225121955841966976409762957174649309835396655602891533012701162594870305291292181127314450058862027673651453020795195684162038053585747682417363118373075436400797355340215555669309983349671373158679649466932315603706347479397567490362638376896338244237784581322960118727410821621110646977094611643730526546130267875231476762796189141933015456382042015726594862189606625014651917390389967374505309069774555461873676413472397341297824474620198496876831769157270605669158486760837450897492456367604746901779529209536822620981501805565624703169729229780196281254984598416758052148229474779517381159292410290600783121386331614410132108679295710950892426063041171387423002506551398968538018343215598893187342757357931296724957540964213827231959424333751387797392452841663780678060770307061955404797194668496014800962144111490196220262674357179211269015934569592171913976697638089569107037356579419731506071078767348237638993584505163388717284280693112841463631457994282145079776983722120402425576854865228520723847691239679360242610436357481571672621548959749717050446154747711117221067696787495664270637681363073635861028191685165719584005141016942196260013129944737273605115162941229128052205750368641603719377238460271178945557668815646876856161272473738826619583293641087766185926643069353035974540103821340510574671433278875617036543003017612277586470237831935224072470542300985399539671956863533150627399507082602064651649462347681910338458142895031639406666775999976632358679524830414752101131251405005885549893955352441254152785150296576504716419248081765076506077486751474507769897794353580257641557578801810386573586273511641377786923737098600387318379172234387430625883192384500595036110625238440179477362729553728127874553466814784512010760796782183725512170229729194938103686088367969165518515906523898839275762315958348543507383530375005494735561545869712777733401635122935287909371160920305500378272349243243009107447224175362957507109067937851143353650261762983187991486006307995616524265147737144694999667012434578315966820630491379877190192865454887804922556511603191242519779360191620342308011389613387620432341430220597577553901960740495025604512985038473620538494076606986662149175535435766259862873021506800104865437363016387911710447841442102951800500606189518009526907651009259466971370526815508999830333994532987205185276281959108884162568027469651215103830837441826081742555298882048758156996072266335786427846166847378198812990793603404303980132913240154658499205190388081401606181820492875687809494433504949981925508422138115502954941788885489967081720312671435760566756046166569873949964674070678228361645659868281952264595253232280730217937187176402200946203913265310933044248280206187373642589118658493610565722210191907832350499467849001191434507151750690710021055954625591912973116222689212739114304154539143295750347614758666848632916171062788887628803054765694803326842402157678332107723015856186508602839545528092918106681581460647156297783262309776006696737869229717422027221106907935596919084421300780904163405875041901131499866650944353326805538280243060789798947123963088000307524035290345804125949608716597909741400986803643634073551465422997397068880952140214217125450768019171235994054175771805750109833909398823646357513871867547416391433650618268982689617614365315396194876047419090888193568270583455198323094987079052096341424639627231395633462597482918176488546171679080093599708370922261620465660944846897846291431112422037743492675196592796557755974593001058108198532841466237440089139893804421949140885976213950162888111417718461869145683548237253046964047828010529914192549320360965995296654456696005105037974928804239806264277161300197117299943991402944340491443812619720434038622537479736284421435326394023907125094886001577113209918133790461106221303070697036870867484533405242674505978217624531743288119539269178078009843372230152928579729295974219749272958586216274861807548516609942127900440170466552137859333779834398181470527390880556585519681514770370865737929142278603634701193501075358737320530137716449196864664138121759840020603520876336436384220903424403196384599220791239203724286258380738404602746449834686923216763332727854831012705292664403478149414406278612130122300246176456303324725370816684559455075057524348488213464688999160929462963935453353255799674035146792551053620694004551670334956468734718889658594236982525573030295319342827790356485466711023312009533890796438731455997829693483041152466002238346836118233913197057556715687468487254820149186573205102433132354036470132178715588737217903361871473175337176116681045161331353122557305936199555280629594969606291182882441063593347911613818384215252152805321971762012974224690168946158002595251238275481998905141654051251681876156631564061130626941920519516805558346263351097142020105767918342140802508044856504445419626170272247082089299948784453130676725784296933686809337751579451394512260714383052615218858688850844561567770204443540605975836882261233558693398279962060371835846171029498035221603153486099352253921282463099611224530038747823323127158726238182287011875101492895298695355833234626374315716375244059482284135036102794354501551593028057378997244587241892437772047672217940867792797816543432152319494998019155951242086904921585740208298982978083609369976136118108486636651000557850184748043881548051522915079125432557114286874267999138269453461510389810347828551240113310256932482149993933091556333989826798641488773615994066140193821239474853781508778649267091002951119440105284627564377202308322070702076462645456434784456616419876313745804585036168609423376624244642756254755884629831916768260643783629506580866354814524096952540475849431089849725199884600334650456294382889648307483082768728336479854100353223118596350012783931594563427832339439356304408131209027942586529485516267556169322927313300977816269740882319912257927859364789799616359735715843766146771447227760645369262314995616725281218701680018336303375977664473700998470473663589392204675842232662002418658471120605323184061565817381065380071762593076961472830956702967016824090923031884640726178420938614903438637435060580238756848771604314060527241637413749687741912537360528986564413345689118697222967459066675151716991881785774539320618190682451646752923306940495460569241474938522316993625670643719085187690671991578882388391925170088661821188548267869883202139732305907828668927432688772095690151835858043002834084970190741380696118332098927602947845738672092320667543389249301961397590545852644923234414671242981286304011847117305818727762785176498968331657423274442708055974372907029395152780977304362182049470940022288306900327786733303228267129559770943914840526352505047809312734330285104439461250389021779815893874932756135237286682192093559181534697359471323221425595864697486934615552374417990306232297065412326906632984271170727802058161780400650320915758816154843605728179592618806618036660404572044416244698635401365005330511262125452660997142781750071885008842412341008468578082242989649815756437857458974464677584339593309044251932397548474713475746933457823224551367317617049579116470704378487051013693510362754077048802944234406318573138668712116700565484662414190840973605722701228856143659002098733567581385648871083042723504050938743193492128937352728949250019525303146137414735481191953527172458390668122907993528511684013804588181717460572009565121451163081304075515318109074682554894559311422964875646549437535305650777255511246778142671430507640863633314670363339746189882501637003887954828834290114215707874173325400793735916599665193837723322039588380151148550822195010548999782077207332125419231750151518290050772048477167093813169131723455438993402603817145404580577673333104672031659958387944987177579638981170289932440791297792182957564872641181403670315553161619518467999103736448915331879638488869580697892817646853635399015630078441484189433393056253695254145865960470030971049004770658497391787533054499658228939251462095936297906622178667832633372559426300634639535003226990789091446508459380838396643411626370169440473335838046796213264717219299044154688224837341522022131425531177705902314735306666872160174415658809226504786678976332121791942571538773866917776701479330665349233488366358844231442420586810703571118270059150787710742290888306188897359400527091280386683754095454482635047270267736078990238536749885022508895101193519106021998564893635682037216852433043551721286310400844949196569033754263592027902070611053975445020834410789150093838051245242278697356468487946724862024456049295353100335246212949761437013992717463071345816017767925086774739931682821154164905837188167428514779490992459743039754555755085901143028887656057886829159011619308195994327776652672040347963819357994864534948923751910368488861818893858287668354290692744762345504013294674613136016949276175707706287849739629520491809182195059224608865081577629910342739329381261665956402124810823906529635801982739079578800540197461445316820950401649145593523901799492326979829024503456043750028098270063306828873499477967562918261852141116888770166708787914925458322975507742878098958311491796464926943848115230663612434772174289535155974567314913281673489325340194736455116847458343487230939810508491720676029528459533438099790989036360492669796486517259092865350169378335904267378364406835939980600252550393559141468527137000324024241005789071240621302220120471425904244965435787225503431479563873246320794504227450943468418141067682520608148986767183770615083082424983190835914361371160120920139490391015825592517191536585354281749987433235337096569283880248917480432354866514809775222684752015023820352346181318078016891807467718597943735091060762657104869851258212471054086482395509039263208503880981310792679085129652669338661920592781542006089661764145420357288019579910877082435108216510680609850541153178759338751077703829729099922444031741557108201362283162377942572532690910459222694955691054366747519578888671302989071470592437491813654632982793103174390002152677568491922536330409733912645318456635888978236268472734988572596881183636009003496672841743924241329181884926465064623645130639934991046362483152111768732211828969490441885832935597141169368625077886261794107931789677607979614878200884653939310314159920272022264811186811257567871367069465396226369841100506170921267373753357504103877183629457495384546779551437991594388558322612795062577535360603188701876666215741099079246107525810445828514893660833468525683703174026124999236560890697122189962128475115312397914041828540944730942066355960065574463627074781288070925236550794810218401889072104246061593312636743914690952568914982982414045298937905662917621138853669884322617820700930758748965154692109378065162477254746681425458476463775884103747649713467360915087619023566796860908185264815429450499788163070120380929792806032808082570877150808990987146440580074287334708428254612692143411028471438373355847758419625708321470310627651317484059280272438835306027028960734561570868979602190088264018413283560934277831065865395967008225297926354613759701695180098223545254418060601705613560119177350452721758576269567448347808438794562698480066872794496561013997324257261770844975946838023730525610606794335924223358910451640192741441474705300541087999330255350912090985997146640187075267555972457671198434639648787815208095700145012466506479115894216393807203887394589522319411333393530019847222989385779660164020992082081220012071486358728113876130840844663128202695178519567515116738283353408481695191840767326633479350114605408753936835102615638694615994048902451661543630695007479576341546128825943819123326432275113969931623195256968229667473978617734622525771605051268976683588737708248869489887480592514509006949125052044133418073497877913714643496497703926238851977480039833143423944701768463078524396279574696724163613915627375573566633224934089434028517753308527087296605228959721711195141300978290180478698389548509341133919323154426766065532991535841388597157384365317354950845222234444717086057688452734836009966215336232379656322278817640138855162527337659202774191126115450300862748096743572249340790740075513361758768569041912764669845475542825046738557966514634416283433046319766712764290245688153024802665845997959126135160164869430370086850054317878903943763024489672291695364907616723702028161875948931283299844748410981731573616769478530776338908429953593760328420781838401348415018918620117732433394785078884493289358571729020332110001823115022817405108077775039225792685513359325816318793281354539511565606303688603395143321536298055836024674798927747950783669663363877557314689764463680004311771279698472281476751888604719124148797998853960660088391716719649773554933009631806638231716865332093298415964799065693239494176852401461410483203296104900657782378842820425829567014065169980431045340951163801282361435891841749099080133312443417724806269187316640728630298660955576900353838520309314969909218412095387509435454621220162574149425706356622380074384793091490628774320676983598925981226820356887554043454825155580826448305605782305545619104397996581709234512067245210019065237724081919094257853879607029875189659853293592922088405781235232050655442185154986284895326597044553164009127328687596854216952685163840195765761600544196105858976766280975531861974643574149516741676816239589122146174703006421859219821920230629991732176370151044506639580139514908109357487606955267007773500013967244845033888426876319402379011613517440856465213670471699627553178085707550282360092011038495005936539731518698024708954748039429827658893230273928233290900025532548978987164936273088407518442282436740716834001390542603035316532278530768932132754069473741535791636772028203307271863816653041468558141471131598456598790573673240216012574277607825186478751096132781177732673602846934928241839847830708991021326260535901778841373472544789618520894288340009880556451941744697954585018213913784285582763880301647333021791271090549938726175505233682666993546790788695945046863276473637892720796968508889632902357107078216700584616147750234019958485130821159511684636143641826346102676851523579869880519237091930212517768200235776143920679116921690614469098142091883173721267715244716266274349357726178450921895251135370072330432669840838278695780796058025672544506693557466047453752333194733635286542078105635295504847377060553688475110505974937353221558973518210441797378795159563058064220370160579777409685072674451191818295784708896667595546056336058688435161198719748970065308428724599773379554985615932397203848707347371093035478850669932595288419232352257783185730341643157587011292144427116956495734754494948356495603914967780192934821671025965463579216838985611579519587473149177633701260604674952643711973622322397446174456548861159663027194104772472466719852833779109014246177937148851241406280920549854123059431466984282295720171435757118467389749778909409671827435248653384322956262755332197597002815259582580527365693598943021359012887266321806583451855600284194329488065606165898353112054789533255423625438599577368943937816268330775560943071778169058143680843784988942775753136447380655367759494284445866545250263624691819548418339484395772047338836553817680947030605449585054344345581364301361604037999536207854029717503849008235132682470187398653916089170861928321947606262995403412775416147882850681598132710821639874574078523616573458233126754753359753730664250895294192432616169942334917705217935110327405508989545209041817470994127096726004837858390480412701547014017145046604197739033289064720355074941209824767666370610658081560644725050080940519293825376919264290525098500962210127254148762598955112656092006318884985662553617764596380617385426449674769257869056855455921706888844770452077410375149324577643545589267678892603894569188363715181681769681292344755235506303380607828585892329585296289087959091164513568123927797307239551238739583013286153759323379691055583153982859997961546162022986096768658348467438179241652709331614147280190880023711436563553430024235013177172363364484782698954340546456268790133782198420606189995206175607859377254373471315705616730937467324562859498809604286804282187958182552692650838589200339970246307557634516314927159396382866216369163058472202103088670917055758048918962471184715693874827793594375484635613742656964108897964219935981986770485454724277227658895178207358770877686181033080266367988602786400515654050089186049741743085023501271132183510929506349450351617326259939980678841527804553628754333908394556172472245893572461719914639395861262504512172340681144257315941274422354813967690473154110800957557771328414520720501024767387796705289464408756422180327503774917203753870330532945756674931713647411396050319954719820721111623302693470346321668961435648393625738285571436046196535150792572977046633422244433344819396467635151115002581799234720274049376569008680149746351222390169714305534230139835705207595938597922189105115534122830581577255282765231204098142200183973935851719656841518897768038834443511729066636864366616866606187458477886761716859961662629078310211740273164143032375787384375128278343363151630401367635171691850148221760592457543529841182479881766112808085449017635597400971305597723845347614215338312095629736035331085576243932212680591348604573211505485106006752821188427806847644309112028866284006151656535920043309552893192528379834499613160836085604513419892830685295643446582526654051881071003120968929674908593472908182385796303178648414906645075669841637897191201290573355811477966051535393641509657192598240068219619156561323556912110605556501837389464347625948649002811017349077229414522066337447711085156405663951003625848328642417848499136417300803571993770482000612367206659643627915454406869457694641079565038308943219809429905498325496170774961689430829568955858056659463233447981768441677065343323328622131830163129238902595274088243276839739560473136109041527853423319781347196890374903217798893157170124151070092972483872527405826647975563446612303528143303028063519350083380600434215115270178837114507214350641144117579162134553861674715953151791496952193202876088301799269946252626593285854961466442916506423760277120650641512180247472526995418415463482634265688428630295418259702147241945916241213531326891317735607739784014329515238938609219115899775975701310815535498645683383737089319731450270562847698252425038782279721770590937258556202559843368526460155480523308281398185429145577541143857728261108891637446334083977060631642290036839515769753179281952693212024157559032613145016159842548620900429310122354428715864961482017151415806851043017366027934215672862457142208908770482144100928250815532145554973777676829329612511645386795380757248876568649151573967700414428938216251572973066654162182549342770522854417793887829913986933750915371475709481073244107429903564279189912714282131927325788310619158709534959421145994433524143101655997509718967912111369952352201231312145309310465821005098874563454268986390963953179069730567732157587085419121424470168720030916559408490638430000684881155724777190227861511267121069521435959872336641073824954702896287078101152941138225385892765887003561486925457588855689071037849492197750431541896892507658506854017161394228542177707520436725637801228246408563467492067771042733239793686597587340513076525051436422931646579960551922047955777840228325041141288546464875612963286053860475712434393447428339467442463210885728663447645566607915099643404060212545079554265423598897141452971725526783319378981566689789127153042329164140485433999436972200285262721893739304839227145385375441117258480688804434780217563021676171199237121304727651467229613136142500893920735491629861048829337165293114553072594553778307469175993241542827285258990744439028748299646071206402877100676739103531293977815972329798019661738365409907083085688404806450623036811899670828386486872633570754395896211166061774490668600848519327387844637908485102581661425243628903351415084746871228450248612964265712566216030598847870119848969879102448913226780438966250629444937174648035699501688413121773956693490193742182442360660194880841961044527585455766370541619188396657978574901455963996031662581753613104700484465624442302339189778360374711404136602118548136884834996681699602644234893950486026709902933019758372648062757480142038742314087804211270877923069103630983933365552480828921202805024579314955377713864034754117559144375906361889358997508864478742847339922435647655694540961179176447144760696429802078062768674214456790757945817447225987317734115937267870656907011177330376613034821907370401198637678742494800117522411369195408823406014996265815429150472334911122666144897964647479084586894036022450630842943211253848271734197527292045953242275341477528384301965513913257511115404808432344182987555370330059284626316169986530316120134899994722931724096013195335210690949709353524615230297049875707359870127424724531278572630981594612621615429616684175839167143721021427815240419377385531986896837808855364127547029426304022660896330501663681462431870651851235087016860324958330791318618205211937658926745276944967875416892645162659248690909979426232023675490827373829509884747487922993873555657491181705666494140426648164160264200220830545249065459028435928945266221050403895181266673735501900849262610865525466929920103575604971450765767595174081591681405270497391083097680403455226651209595621387507982119539971467294418859531271180687211594307038143272747998875731286855174214899763162627311506523720419582336895160801492852738031079969583673375170876586935422538699921896372365835525889101127167445589882376472066387077829787179519920046786825195360414775668005091601901094024274768887979391077414864440380470202956641363640929588357997369776739127616000849719173719588931503983843516471289613381684162925993415722678332692896370137199769595088791205277616554410993797686557664355472053629149773840866776699496700291195846355189261645941227371903501884411255414350082911480648401154986796517601244185902727933030100725915839311977607512881310900714825913662834792624256571311717026673062972901616745116930230928162025388316610162176695969723524292635164932075156219107167251218040247981013841770272699987656310276991271279617042717414581275832124759806976104229986376866618622081076259371237327785504193846395732150202650299037174138879417722786225487822967790778309487151588362867652446872996269909191489604505757682716451256294150787252468732244718076932171307459839019278676151588684624135627453835907956893712161699251213560022625722339426134260004968223803693345134353832773908278068910831004569816058147485626652445494253021253602050592490851161082904235092807069589277132462785675057916985715865629042279701249023715946571895385300231839738085509039111459472916853902690228957183014976357114423098667731929259697742574290403515666151279334082621229233258946106540032050400132352877366061107035229949970033483852056452281519063707758222414927304151107816651666338798448577280460593651036087191386668746775865178005642158225036262402564524299848722472097839100058511104065925894261828131778614168815464407284470005605449379304316136598803974435102327152325662775223311767895851140726828994404034134661679261603881094148105713362646500985952329967550884036756130449114834458247516457526361904556995772094602667014906292869865135086526648196941896190225759649045552236073330801883602863010219526329716142296086629857556194509386460836232754413057718422619936559342863473240815139311847189813650986680567246472310964029073335728846412944783952612970308041136861348191838366485986964935514059307480562518263713290658128190776563405527527835635488290219234004234557448841367376098258057639738779479700305610023387278042285397235930093873818699484080762295260347112421114349583100088645558105885974628728693723226751329630232741839779319262217897224326118777112283456554078098333720990278212691538840688708785199111607883912667203675299756047563724355962032743648134397528181580600056760971746280502338208994305336932466039983667154497261161726392981898986772258882906128989295520176482146564114637822409275768142501920631724466577089021001633671646401303376113254798075238281074556514649172091823267112552071966129970430011717515201657220432640753187755792558478435259715004768967491874620757545525955297600125118912212720038495099471847645434313613422177856075299869899850055999410232881998653327690069804461611049514187378615411102651253148240666425279538323682740660101733689006373245467740347211958306452513016845173825207758079514785814615562295675924275660549653242156992737099235078278600004035504642670144685500968715473100103974846926271827305169069155250786541549747350847277253201066564643539375225374460145136086186304161847480612362563434701870566833626547185105121952048023149773826371230301537562555274244289728653377212801459591594120705819808234438119489958390509743621546499598197270794006673520205156030083846413013497389658248272334408693003516746982005156958184783537099953120880646025037090678636889555914298559785714971583364409346389055233498592103611989994333874162435672077414580615346637437511021677931862145149449861767189187220717558304583897699889508668452576011897012665535219673829419719401594826542772061281641931207187897677704483086314917799207657379256060514602200790032236876486171087081913062610951677190621555687811333682240884467002729635238798109242330976614421103695717192037063931492687601097111065784705036166181185037189127053164833323416189592159442584583967256922674559148868479448548841892041547986571513474412243521726908130614417573294905798074877055564059150107063119909630731273109893091638012996418155310999643978882067586808348924550028212064084264160136549480714450440784246244840661737021929609181577291389876418959453882044195221501470599234018795106280258308232528915813905510114501401607554654157247107553334383415032770571884672018886985218120173361919323447938653106692215007718483294335176560845145940372387591940203072594791699854884899562006305944324095095024198958417382291059425237603860300231478416267441228892088957911677190269771032710536104283576677602735504198213170969080650504033083407382608576091438189476644114769967793692533869596917812132191591652113104085632024719746790870028067534453681998821426380960218893071292713622419918825064569314025593249441468064575194805298993913956005287920484914176733523379446480674738574131951804582463668680017612431463411131745375269722958154124552245242046287756482072695332213470687309796949598246082813259317474265262058232012705358434548388556149082916482602459310459199255844462595032458687854440685330439762663140034321570883447572578853968468324784567230939064165761082905249753881553029906237343380547460883819980216054555794371796195442040061538664196809732830275038289900800912155539264256517873642631067794660598736518216117952920276214705332655036374250615209330674029951681436001176455517714473637778849937173289065880374841847017384898576594858135111938789203855261420445064334114980492391964935554646571776190317266284040279526882565395221767484857409745323737775327720872789643513326061784429514431852218221621930470447849870904443360600335988714055598073697397393562939487002710610177943005405307262956026516104838181733934252574987076740326790302290303370130444146447906344364882509348658103047494912322007890441284080494398502247946999475287377223771594886095331966329194836011613624225977647412171831746989967584434724248227425518936523667703994993774677028209146785086491674491443077973466674276098462178395914792576958877726568862392266248694704966139318070529366183259079267575476360924424476395385771333774866406950571580732074969815571847868291220521339614056964752983548090475185379160876846267251449344328656119911954612726894798565385872627418978466422156335091739094938133866280713678776469938026430133468282666537004301507109450918055484576154466540527412007890569441494177321550003157110385992450583609710740813395698586079257439451252098723661962613933383646424458477115117257416378341886282256415346861257556132768223796584564635174155293880380590264581492402077896520361383467613342807153356014695367911373003419893686439905831394049897969963612588641051262034440199504634263145436173254624914018101751105594836101196345857612228998955136229894607075658084007055101218830713402196906060638215981879434313193845846801066900642120529618011157998498856177205798219275152404613836789989170152013384766923259744884122419455867017284749626910661158700638391829653491210751484585775023818249428687018037303939733836956443955108220832040499096557636112870373843066506076099718908134779083178759525665652208644388275757876163987697525743821409423528010479804126745871122145740737396668413577342017460151208448683278389139698438628811522372800799526901218384062411385245854102546440888790202864696438563866975777099932777704215305609640906284469601385358909174685801034747074076716069791012080229436331563960076364790949555551282979593572673023794593654610986330280803563071191007085324725824703558824686129885148932697949437486581591166384521384075598124889147015326199314884592945355654957869571723966386574845440917058207470858240334835459573783079243791019196700724031613371275446060045931590803628884932096099501247204799503786131909482297562239109989644866916887964023894544684432164223964409385805053869067883171730861064112045486682226481462572145274041306085914473048741709673008626022293409282995122203340622463054442185364870162665923656380812099485873146149210369243892084952067663327640175943218814193677719456175894523300384722094494964157314343760546858959947986652765382461522207456392182089634095508111777474239301612367150696300161675618486513496906342222582645088658757553871349460427839507345617973782215334956771450421643675164053663746383631116293762703406077296525080679416252127075737589725505186823814638865818855400289984605435167952178622588682461650614527948164067005631906374129107839633012879462025975707316388763476937267828641492025507099586493189680284834370670088590694051199935168607534146550640537520933769339418187057206736085235076605763975089051088983093259875440764691199227459161225311894937547014297652382398371829208486165091623398955838928111822305506169069986497950449502573714291611143271013036614192311411937742344920476567740636877045648633286959917995747195528675229333606319558075684203827078342906153996897866786712512819776738474726101964606124803220119126357647458717970724801652352663360607175054840010981320795988061581659739381099919370939444680160961272942155573905286324881263092508249572760164960683743366420507969423326988837688955400367990281975829391494391117174038960723717681191693128960875153475838184083104548835716009656592044055213297563866759611971024284810293113788650642580064860270772639989959410245634390900835508130074080961612977000642142914691881938441535999949273431358811008325005059798513890860496284610962345441418110659219306678635235530638579486813373732325563765927517985455825761414788363057869813096985335717242157292383522409776793726574711909036912907365844581133545067068851178454416884381760241558750786384648517063690941461643711064384417667736708961804037024274280829035837034947360033042275964466998778547744196625975753025883985449641480360107150425995277360644491517694458196745365290898937685102987562193181423035310415999690629676942232100522978809978725123174941925241751565287997632273775033876202769177052375740493272484867711338056206228236369987344550507304143341682357231891167728043267966811670629224248909927731597976337996562778203181382292406228414695943568415378588965268134449912714037359423780204291408047893024322298637485966101425324819042992739348491778205559523069281349951619482771695310156822775477496487139292051745844929631446986256499761665479257638592172248955236310804123710512534696360479001449491632675500912979323824019951947893776718130486998332815308343166322025055311199312735001589932737285604064654556618299536424429800128908464048502599455576297348263938881496488531609835698354453993260327168051819145285539251386770214467581195955460829631380984731648257300114912956082539545792749969889379189617310781771772355985917155815358925168078545581569009312086459871642412889244681869316902215454223539042942754329459106993864040270389777896483349799691130809514771469398740109595185976227828176470651113625839883949307768104744438269619291074478403153392877377721653992561039078447566907840717573270901271244843010814075531578143314039027822882956827061500771327366282479223781022242775968625442628057391464850518324488192809243258428084173016278312025312433983536676198044395003686001363924124123651795570152027931908616658090953786092704400441498723671599876405950735419114567663080196630770154937948351158976414581176450545851986048718233696980753677913463224204393414012440926473921633480217694261416960048182068141251679628714522218018330339456972246644912358735095483932516435116990425977412748886506488044955641282981917771572890961968304466855933065095722479545058500934822686446066785139376451929143546086712051548281953084457404292010302679095256952053990844710836995976014699066239671409413237708279026317886513893774726067130032076090292871333345296569441604468858312258962021683007204561954750501298372836273779467162324584743591942503337178998553245979649524909363288245720314387870556298084071557252805642810047686470940044189919509283026130804993423658050385599729638527242089426321987612814786165373981189855377475663033357506963817312365264669495469397226460445294401162873372966399498731540844546538881793526957373721788274321532100336016623165408750911059273825917563668741987855955899551169444007457721126450224544427017481841480588939938637292364259769713362557307437743082819470889787081837868642268718405505227026724408966730790574563565708073007511385278698463331315013573970459729949207232962097846358941647278281052029920681994204430146781086856381481181940996834415453918042807870787707646733351346980146764564734789459158469066801290815753777084816076982496865851866735792565900319364969622857522829860726947076436062838327240663801689638935408077593915757179688417347224128081321853246703762938605983526272611028377216714904089031008373157874746024193622196855130042659961263501467792471120446245814169874471073268839775128198742423880065165957720201350325868778855165822780769237070625770392315391292530521277741070760640651789439070066503134604490593333848423177645954498610385714971921209316458353963531032895524244736309664704343127012541953500659274790184467932943819591131019855106782687116499276187852811483628473410216347662719505383501070298363581875127271478032059519402911144547300871812551875385087726910474480630511840591197390846233575682090517134252127446479006369184770293201959679039500792500435933400331735833477269293931709050592630574104774537227616160289030276370066949710218323805189838468090944096117341534962986944513397313770436297707295285653567737029375185653976495993636869695708774455803445257579823186670777640267843901366541071436807384325659164228071030369057304829500907471401539893946049314179585429186925797750470069684877361550192882250227101394856618431677172324716610752258496176392308410032650084964732129224811140844639736241360762402384399337693723306378725520764123963120717093290048953690480725657736408651671738256874050836558783808399641850842095515948330473176968878995255091427954145874817770189993907483193725392825956669416331914982627094260826166719347088235842623678951857415756688948710183896118519206437439089163401496986324172082376800152808272888085563531961742722475102669669598714546226963316559323012706898827417544205094251518832645424957734168764449714789183826081638499009579607959215643896430621445126789806715010689708692098737752936852247547845579636146995387667642456117038142274622299999114011819800384036236856118223162540112573012731813611418838588275149186281351394431983729613879678107790542754334461898315965346386220962554294240951439443936984471465610040114258234065072888627161911389611821300149147144837004680616390719427047757666220136468573755773360830759448208880116533195967543072187815054494788236269965710449992803139429865447618482248734471238355585713359729864172524873838771181890285110896595153860995929562680142452543594881114729942619896367141434194204603428793253346655608245206130413090471016093618519956840626361165677744246018437290680277713409616979825864443880277876839059507372413819273823163155634471755051091440459100743910258884258384308866174570759530029963976771365095763143618201457526005761120907458666914471516435098363074066215228922922773673644372360997421174881399002764823349262940550435835308165981576293558124234916717708575520501451019704454562511046541210987080375011998076181385210510719773650765850993182492147324039189603886982965740230793037281736367490384014047929042451253217511169523111677070641405196432837967743001362542768027697858743967144039097082514580175528144589360468685789622753008323790956857131514428294529619726676397680231310435810877610988023165175442936830442498787667749763857107826566651648233238756484605174879868022519888259804753181025308033916288584233921538760825899493642636699923500687536137015215564485263020655894602835801194766981501454402066054040224196668719811599490163751326396052809209815885517178684985229734871501086363046159096414629821277617993089944774914131624721914443096378331839577214067293074789692815132123835938960331949300727911090960799802791886695506946145707227394625477428327504122856327726226324532369925254115263051306116758556134039979661923160163379542933731485262772613948457575277880461418767839079842937905949414897828429503189485464810908561156503474973332720688959087752054801773959842586427454198957005727637177068397552163685838534483534226358675137572239140650454788418792898759466005904899384761483736675194020311872418388947132027473469134337607479700248911020027551474635268657561701492414683389806188927082143015294018257079193176390587408057927377681833232644524113506297358267179678365012764919616027301942079750867716924677993658603295379104804992859282230415908999065712091518340746705632295340599590762644013430663867570100596233283038997725987001830472133502662991726723779256674786477575591873663706978861198717273626916529129890380520596437879371087475090505830879787769867547914161571801405176510811814873691886310472363390323571976648377300085311750401128249990684111735588218231866337858468811576588561808303402404231208644529011938131318648819380143140246206077655622489550427149452729102425730777484990303463506333485802852516035631168358143634062093544546063005801235842421589505428883751434135846557143537348068196461577615189397393770173329245888944405409603624057685121081483145616436449374942557594938375170861097805374307822939269635323934849895457815923096034373328500067876724493339140789205113721612257970396581506798743562357578223746758083653747078814469150774660619553480937847618955352602535055287202030631013236039871627152911715254264730627797354197441052918825041246657543250840944877499868749864438176677075551967077768641356509022039224497689476876401747778028629141549090270835916794571752087240800048763626673163067669565921396065657550651002260351247880528421943058314918435628517031163665281083227244862592220392916867375889175945735984594225568669202771737603422279978690594587227783146347391807881897068692342029656875545491738388661354496249639682787566280956775119358987531204729591989537007171309317831578855822470514017081482585738443530307715871189459243527066923966746603667587643151887834135097643662434360419370004635235447606435809682365212483262627229084394540337174782403606830682073194793361548640024711869129359672551825333904361175688656804056843883002054208941406450443604441927813526657373326792786565433097273371755974379840769101027644254862831412847522087745955369295724535473765604369412851511786071437543152819129344014366445083384863813581547190484349884961467142484128018138408683042545345320270515311725116291590695749864395733155683745582283223638229113656015891794824002612745201018352151791432372554331339571998205708572000437517406967282730758350378622357435124737171825047596778952747021817860486781955731968455925427355209178138281707196358654669151655998047305473790016427225184346806058780249433793750290222890351993757381842260642880638297392143758401712302703403511710216314911082200513363785291001141319537883830382263081961218439171483390617823478457238725728032599702289260028512832381531768278417739798070310075876443971358857715423913585613290913001849877673360364056775287074086599129400775364037386857165833455021538849843655975500607797155016370357455174074620710258962909308202321613175559294428669700331998236954138480244647635013572475347877835105353411928552501704121224028328668579863548809565612360157648703095821896964335549135931313883225905334166285266368564791841553518850859915268556709237521652040934281349757442138238505854853577510202820276121652101865405297428591246653066346090944264809226552003769082091544852415699188075779035340593673783421345999538084491502219618346755208006906543531341774343933419253517163119426789068782092875306336254217288694508284565855489500325451023011570774763709213876317354369409436575768917945340992071845292268574912218240997584173001900796589981105117081644645254809182175882462901642704889395705175481511446988896653941552497169021421015775467486505764128816812177481669040645831555491448042985149085818732977301814519789469237475598033021758709828396211995495590871896283944471095029771353142047046185849893183254039713835138158992385275218890066851282065470674650071453161298533706958853396815087880221809897510436233405409415910211509878956342075671227363051479520284084751197045134208080463957757952998302282545886084823514865301562032524979301979155198624378435017724799757921531072509874211326572514719120295427813528119961145729026277405509013088337322078513323876594727640175843520421659816492841930184085710771257741651789782825010536872494021349856292126819235502423390455890914975677503823128774857719418583374297489893631554931049329830116154344275676613919348652441299072743502628141926334154768783815594330829592135870418474012298668775015130267007013731666740159933350041024241857464038626802801999990571477735274341892629200146521229732740251728357300062411831632095288345882049618418327687403281247835400533116738303254568410984516791413738514156173492550044979302633767955873470723742305036993160534529650379245797035863768524201140156084432393480868316809846112509837334985773491670262385819959508500732206188870342692595620332975594390577480834845954641232893902350429079100741379524606893719932455472375934977243355399776489181110370246860542435374797889643760559967270142398734066526552242508527420687407247679489337776520315861430768504790143136066745180154501793886481015715907194187641875810164115995566361244230379376417974383471578416573776349566189314562282709015566645885431869205173825100644036175560776561516655405037966371297535344036537100508175763930155905956700204941020002557365072720209515766807843960594876626524904119906561795575509622456501143782065094787886907948439772278813654824921950950614868485004604483915704103680512177656304339752763508011235863523496911124069060651919803132119954984339715880094119123882974132173925593581308490521225861173952000541061492840284175128938194180565286488944698047057342186539508004382715745263915289417077899548849633123402105080694001576573266604537034703694046943788236152040101272998266122669621547202502357150052543904155838537137155088725220167755588656477662077351938153037617076662873194419598046386798499128201182496957863090618485565191243694856395855399780339496098593268054834322772692166707522969942002734330154030296591367102775149793459521266385452105279225082035126864750397121533854459171706848978055395854056167435744404423669543385429722961454048969389917706102097703562243454076496484293945961276515852556601865100639944526336335087545790624745297917796482970627231573628772888999777206366259007248427099409197785594974028664721865897407138061182584733819086539514719470378541629097025391205326698940383190624268375325666821524950107627511553153644004752587343002239042238118687282745222422257851748786898748380878371401969877603500174484341335566531775826579347005500929415687251194462437416062158506483522018408175694148747109390904853871048712001810994038107699319821573221356297719039669279849676766396502047900742195956814911313097939768383894150764974363606162994324083162597148318458751940625734232598690808424626115694909798697121314205339447687256593839955905922991096744869574092184396942128097051408657930877894794214417878831802068974765616505428826413501815743342307678303448738235182501793546349314929102891558517408975820440816740955154575294703304935009528425093417489449386107238454258192029023217899917493401424327245500945209713091948510963126928264401351722711886211134099634139884428998300916466680567984520278272941786366105443252115568753778595076216423880137316363506390825513743022488259880916338524462734307300477457691688835300343878105586060240416609933978072207585077823925520744877986157624229148953234158726692385136197778082342660793888948533883937095806021455474134613870970546981088548603907361694846549075192688107149065082306175477292088865673284899910280895954291567027677697281237772479389650451450184807326700787869712485249657752156470553190540032117164607478710083510415394504708851998968445466295360548585948292370395470463697696388435235296538343312998910527240959803681439501298635776849801057862495892944794882988859185280439459786645883527755339472988842789073394298057046606960441384264997597735349555558873141650092403754535365468277011049385496238366393015084680557594155889302577553284157187480177980437424663614116646266525049365647601762428543351512529187520779165166879957828447678880258199216389040632778127950195653972899909285277036379075735209419080204323705754016277256635606572036771225278329601350949068955430523850715021923103229438988508979129829409787449812794831716318258759754361261734160164873170001621866773294471973187793721650195901639001512250307172333018546248285166404885417921288879720270036992573733227239309569350503354683989931337847260426288794332943230705722235453933498019933691474615490403866481086335943851833931176621662658801083240426094446370811813146890528992577984312694839379435853475518708550380974144698291937607032986518776038697263411119171138979724966859420169025595285688119117993608780540222071560235498380390602971075276659145170911445609794850098477700084730275084727065655881767943988874861655157441267247599047385532990871239521943258570895993760262066828370760495565194503815094148528617125552458562435405665733832201649674600430969894823944537453239371642276976221516067386221175403272742390283265950191844697663470878451216151506176527484306715259994808307228729655464819986412014322374537658905541217762762708660010746236500518396055736502770377655042502907180006199629832510708152831210507245391915075171393138491735595046585561288622025667789872451838384607384804187088807649006844204317783460219201716929408713517380630730248174796419893899280392383278414011580326209712985667722481638762683677548812630250629386438583701318444588671592212277383739809163533963078594802268313122485952007918613767657851665318987669601973200555742709453475311293231156590046078120662391155830054123049579587127637539751749889577588155573060773387234447315002844589406735872330854543071284394032418706265831018890371042790371898147628627016725966899918613529221291352551601179865050498492357618074581939554661646988876405457787407122189468414956308672741956892369120340311608493017790415424927191624128189558780045267842808671150435049903021123108594058807735275687306185735636274246389860138583071207835164363588936557457845864115891477399055670326732155224047065277189484077567621036761294964142241780100458778241612952041348528747279487618929224543091624590755826117218888103111462612798951337551826400656149249481219248564871234524697735052001028207511159752431342620402418150486059247246330832645076136383690752125681648778698617142667079826037087218804406206283219671309648303357156273323651302631585054526112863852582332841010894231353685758039701957374442873495669620457847788503120634377129347391284862258299471994438399826196035683672505022763695127600274764553040391661163636120869413605433079019942351329748504146920006817956482157642785505873906459457076466239855369431680610648458396177038310314496187521484981287695309093964572590304785128513879950511599915892818176313268790335163512000835424410122846343406854119654301434071864382067990215598475790119174010758629058980434906972243009966573061126652630365006186650297704020296530597216034168844671637120023562446555859299442427519529719500815186084924092066007808273038180052630602686201878997425157638018535976187389795879202331227086218206921859054671046265670851737526042164132279813262897005657490198380650891024978226418852127751129159012620321579091167772169791035679709168027129201348692164022384503692173582321108887208895906445985337563931261579526430900801681034962747114131086261869947416660697413240481259857979753061814137622059236033735233655612961802378218732271554952896395268286833828736317065211270368640257128465192748021092558678370528100733513627322683760265439637886331838606141412080253359369597973280402670987754938732021929561506243733358154560317729436117659693079213066368175493007767211934842995098053684321603601686467166600689762377291012318627145980072222164452619876199967347629797826301438506464572090037187272612943383425948261118681342975911365448063330416501441335844268070738337196079313217665356202707885807959770019016012027304489690814211329496470670473597861148030353087180508005686386156737210841221623510914334531796416273776131378724815967556062481553816368557600079883682887904534963411544217747511753988491133037518180703323275931827230131004629896344242445250824010772160567707055197283280836866862818443626818163318371360157786248226565558446587695216134221252164465763446366759475501646013517541035267354201922182343053075241080247091773553365983158669297579417202350405708577599373521609918829012235694707122034256990464254855721007225823542712195945911966743991631958903917587500137162412283497744661657797212755822035991852466729945461623312682371649458450542823868986392262939884826953906207171084474691318463409710138080543200344084927317001745656345642169301478039162864662187123098480333629641004830636324585262423286397256933978627177575015356225217257205764625272354209995192427367240942966705580434230543912715939139495343787888152964982149003088507586892823404801213514668891502508401950637213334226462906485568270150641916873168639483124700275937250938112045734608746852339766704935960079507919363369292895971902853802740649224405654766456400421850183081576850297804567761632003209764148373598247454279296623181817501946831128027368269233064735171068515068243089566776876334566305351693022088524776962536389998138526831410625479050929029864613432989085942369089169369220218351200101044966154046871620612017316701276395108959589407721733838137576386737273939791083146633676029243638627300398573879229770804423594656720024684881476084123573896020256112846285663681045934585182551040210881972643613209905642851110150893401427033244234651180888787157553991807561469094041043069477371106880007301982385472765687480502173872469481541957366256383450667934578340133340116849011447753560669429882928096974981672065309309575788157555103053902193726719445765471101195697646799388249625241147305217098097900011420752992484973438045548322810040906946399862352996717682669924944793254093252143007811791247153012654156810400424074740460648472495754458333324132211508324720390854218167265040543591109989729098409846836309251599782640527921178551683795631330481830229556253870347511476913124938741888371918123057058736578244855454277049740883237991387802200174792155673849240208785723655559150370466432710073096343340001689444232833085626029986085615916998419007452325542703447148514183493155390219833722647767477214627506169379527724198953822258456523251967623315987359460555005008831704707339030735430143421571802649449350289261385396667595056555297731059707957049614508188969638887765187659658818877460356162503192926522032519277449904317071182993916752712760334236364824205302745536181494407212681350231150928365056856998338332015528767192828973747579741741784686415522598493539791212395137976365708360659027846695749147939342643042047224582000045892656658960870567136953045174599493687596018204658953275720007193038257575967698522898415790420289206721654001732190978873203176227947495520159193996265530448688379666593485545948330219732128917522532230687931122547566005524293569808616918427608688808173112307091352513281776815112511275110005302246074634070069510405454669204395690716921604939593938237378641067573073437322923810005774814111091239427457242116917204592018201182319321475845171386135802184415047852309301523656791462391492877007339839882589604978782521054229542479650626613611602337630810975559661556756246152939644495476089914161540593700398312160876141998342311153224347174711432708531607041779267546516917161962902420123466034340953796248268814841108269527160297261991078122439643888495664374067406509595840025899893227798683382523713050776970941050364093487594759718560599243147347607070243494836384429569603087829028035312662869501773627438567666962522941125189241271872614643102242344427181551191306739355848274012292001616123751847245930052972704512871010336836393137807619922630226900817097247430282647866968323234870692838628798111587057566667416503279460399840033726226619457919964761410200114456559207918883362134802178238956014971074309636451237259568948445034398870634153565372885667699760672794360780787102775416555194531511399341487184341452694175100772730751608675798650074743233832342248070271737782824014504773128524264236423855130878573828756851802743724130521687190661368044549605713398736944025423497994648107243881685334094534107044301648710137562839879774960780395510475366287737136409647254315735271513851757473539280391207071374789406630780271743283990666147426692030676803772067713992238952924366479735329369476898950340325741721826807397082536065734018180389964268341993153947443715109137789666117742845933393468343656861357536147649699978287753685904729068538727670070817019530948184610745730234359582660205975871373483016129829365758022424165438583242502224307861912545997669369845885261035389465657063154124196945126278710177746547808173703587528745718644073162761075676423306730633675525313842687099921969908600068939391188377249450665701049502367741614343656900014045430366144349926371272450129143520641376513028304227666758097095116680674852312156069195054728144370513703443443461144093617540390399668015280155728789981627191841594809408251704880322588203492202408260336904751944414528369559666002725442671020948301639708126082185985080166697085278241127381797658815893096760369052639439820882598173657167833137159429298671418151936160161611961811509484014628124374488532208458410306716413445899980209724045912133634606577181222309291624582574788361040952534000779998799455047611519170354080774737841584153162562390811273902557031456588885584992042255237062403161852044557314286906547745568920336736343869863301285122397173067119613139031101515313698037876037254755359650488536181060897837771697547784674186456726629105611009147405791334104898849483147319014880419108035591204744974393153096598168548289310252139260373626270773794914916680453212755767036926422999631199692561768588707561707522288176908525634625934706901339151569538394131035859432423002120480120119360759198568948798885564083768794395691109314131435756767079479364151956598633632734042883070976835405249295661758894360682858073705282741175657133044794236429944340872293675764839974280336103988376040125164432047803624638117940083014173220008143983625730337296327866278535988071738858915412067019399414125772785917231080507077847750043910251016591648438962612916677211262140630411398702011900147137576284712200065609422620518475174340163046372453376675007975105919731770490871553515577726653557417726428076609240040907047835236491819280242533477929661838943815218410356416538353185657485992278313137612836468279546956104929328439402944945991875952702408747415062633316061116749066961983396372132203904046264945465550493549038213133776695033042305746773697150069543687642042236945580710251321639024386452331104753718028353749938075381067376265153355256227328014652210165888199751241413301941109106047095739067777961121659266341914935270241810566318313513703019660518309940358538820012971141162472396473163383751429877952328838832384133564706629385305932146736557937548353793397545328600553894677164244572273214693475659132625012850050954247376142395534139732458144777714138869868391714768179021765216998561100543759440697898601534566629561658931882366434113721829950887514441125126182365574864071788985322048601882945696131608059109478098743589456511699475743698322655558237337283120696366874806197647169357761262762204453629169722913628640290030444669498295181248451329856557622153727417311563294503154964590406586832195546824202884909045466325689293579116383497099562666282462935258952434714384627419744460917696931612514551511960111154266933248127262287893542914403617337913577825264574329416317498612070286094205232044664380198851192626605771781722513468738783115563798378041069841312192143116065928015387397345267100925636757199792464419500849216157022875381583493496460707911817069245418303220735149771937623644360484653519797746255250614040972337343662227700545185107609658468815188468304313086437231569977793584056735797406278638325630043514021895012587462084884939875008008310456664504356576664108818345516864951091524460864161689550629582970578006173138251897049770122874931626769127820282780758372219490275638592643882665900441803750379262085137632809499001585268129406262742203751085962677750165312501864744460552736472103652152120137628192568739322300043639532837162423361336581151383715386005137192826909705458706945897744064679690375330199730430069892057753935005449907172593639653230074215289291440580219348498420263114311473689130654746321630744522010853981721394013025590531075497953502855487953182274473778760035923311902002114709766043689373885019483154829847306663903871059896121501747706655399144115624226425320945696981716475340350913696706156204840308009040792304507897751156889705827323881068700831957929225190517592877331885514237659534398278889979140394514603677095584909340969828013570563442252558196476973564022697201513180099352998952406351397922905867975665504863719850495949818302972898681190142353183328247167020263256909463533716596518808455097168627657722476336325833945300311149264031572486623513689461601430092490275541611010815797835547673586881463892785481727037470828305784529206171364470352701435413043134161864034573110729803611356754979593314049738160358920593538309075445898526924063646157365571946824582735983334291505565802351032693596714566310420298909551482158814863528843048347678347173465541096935153046002550985807399490359904623568747756252690824777643532682353037712491955569059885250916746075131790507186803535304468788995163945039237632400064122037885262018837595695121085565290296030743745326947428402317015772289213975867985355587608344402454181260913825063437441900365327552268995052942869032357089021719184889837211428063442184818334664058849046684728897506091725505009521250351624659616633992591352655331423264599963249711882640177746304567598620833698439184386808443514776351125355103404067886927225457259588678678343405421147528867967855850654358689341272583278619241943944558410569770127376722722949255375529522173369027205170996561150711284393046021921476879369078428509512947313400476756957886147039594199615936551929897349480969347692885204248160044343719425621626825310744116400225604927047178683301995293116100407245908522909928381207426211882019090858740394631307917789808887786259750262773974084938611731890710617979065408844121024395375254413873980976147394608206832390079354902611459238027403921946559663407606884193950908394316640615559924208879789092144971137055507770355311736854147433490974852800938772229172908759071847998301254428731688761624998752696650388179772900095480697781213334173770968671492930387521727700742868919657890819038809809495562228520547108121229803492437707184691834326230654617459716087091866737201125937310547308708978645962621206528595394607804809535006764654580102164796788489069949658020529402186777139314713629469671544269790554068559288063776773793055680530317036421410309602400851507806535031854149917822843480665477849567013955737140626108466794690353840337687515462521643920624102425942786823893346413091853407399614208742324771882252940918244906054369851533013223485086639297086569320461090503443254321248333441934652175914297132700250896468927192533469922548841457891460944117223698918545034180440778999910832247993293242379973332714727289947351177661748356692777832130972607183998864758903368581358822880060136158856190063866206800014415605990416597989202992958775239367715738488076726373548729608282135894177766564219279642473660976311209074862343661991357184532024715193110645955176693632164933239612013389833092960986689206835870552474167405656168590508396777179990875347098779789732120369232605601191211373804827877235335870730769068088071567420962036161335960999158708996427444470634853493471517432656186198120185210089634356271450861879287060824713775058966939464310811966434534387549773181337165775322941455608978768110278789585481912241586733157062207514915757643786579391546360389201079107253558362956312441809835732237995713417984403045738178169041938946281686788439123616406588106516014939558091037742808116195059295911332991539922679092824390397582407499546232264986767814191389899519625430218086614890454188113069391406623667306619975550455902383018992145942628211867518685096068272788203894860166834992095817856543814806010226158754588751329970882272611575291665867651821441273911492969196385786613538326630991756476279762988369084664075812474136183529804805556881073425150573670440337428719446207166433743543673814337192807564751758512288608932409863614160507300016047562505124368884713954043070680824848710526807297338945030603502817128702048682311948119934227320034837181084198647117297423741398380764143419733104573789002398914944891496868117668251155459142749738026964253788960458054620400360455966638002958685133647328529805539046419586895106071342549529579145582803648927904426509827409251614977122835252312449168969709949797151698302011744204712511787607485306806818347328855709246943175508701701922729124791242886582416134453247190690214970367609135625940067850351308411121607146975779471086008347114524835154148194698601366834803282296552505763769578415925611495133864313962372858851445010797821679101666909627596146826739726608972176811911486020967194346289892667953043916901482796012058780333346702364858206529182955232935495632234021681323749879237236522729449131260537648579998383898539572925437047886291023444376164767964323163394424811715135973139934833968998123385175138102333563339957676200607402697784928036192754250882679473477305964937730958988552287297721883472866414513567056601360530545820619064045101997205416554007130636298480028735466513594818619405754174329243631150080210612132627368601504436136812998831597072652180210801311843236858689175788979628818047029739662436251978692026393357637786211440415647834588515788069286281451115986037062398568613723640362523328787595401942186280830934716985453159038220568974549537896298055260839522207899599523902560503599927519384740341054323987671724842391989913643805607523494914362833286712906254503002443794250809302150748244177522406816530644364234169026406053595122057981655648819000803549880586135262168550279635814434003741870527300818088916828947605480826118537939598782129297138636234016096664590651002498276227070029477042571549606915458532561372729217234570885851642047357749544164640805183070574794817573044758311553525921589901749877460327779717999539649114840624040902473106033929494193652651902297160660293746607425398064801360300967467423389324535981869099360166990132548452634868098723592315042305169990122913031172562389935177476665459624980906829966640964106430899147224239119954527813163706840541421040883493518616364363973705043300002829265181265668488377151647320666033322482803041717546567647755093277306018442453217381797012028212339195109125968332472323414736169963387242164999614032081671325954689720207844799239897069839350009143843011344356326571960778167366498581110866300289896188739192295895705730500902809621756173482145799231196382982170190074171739440176826013287404733245936788582148339466731356039847231958329718993110974024372075689567938864965182679175914966710041232962469482628860574828066681408984403891620978902799175809527717931250857885344979222550345494400088811462598339907349981460610347671827639840288684601946589630525764616193313919053885864576851380013899606611291271129250175116409844284594929094171228400113187095416320782144668081679013567851225595399261896182411517415647963879679008988489924654075386939553253118090842192127262185205499565188329102654167930026659088980143020054237997224442330740662195196086049323696368632019296778186397049601844105696649905322491711606281670068424688265294974998450167477384732067310082541508888841651205843841339019994311211823762547159082040859429041555732403400115207216667087606726389169652371021803985990972097128572543614023628499512267407524149984223275950708929850435631062064924334619990911063780701255050373438764305701650696252525247091928343954557278505016085503228191240825783105819256499506136303873816163168941167098334209009396418503295227476710646238227156434872325300043935719987282732049580329032848680763289660956710487123903170005608265336156835988501643858008127732783656749309830914534267409858708583318287604778761112901384681718997001131859528929293656300833422019379595215639130314591743797077739757109051709759007217864308895052602471052589541828422434880256650958406943792078538868478435078512652194791602646394017718570156925361729067572491801362763924414402312576239997705948215470288982195241918466188250689918944113518573745717555820625465878862683125863477934027523142435562077702450947216944764786755756500301515879170352814110939140919264199196635339068167814973547012119436875040886451742850079582852653857024927784253404661770547201405833987735644560748891814632629167493435884231864419709944344941738554757603170279433342087746123690799807737877491486124134378790670132099069831640816326373469530163260479896176909160391588117291057284694664678149169869468062818794401878889764214986706726925193589005621187660317290928092522889280500993625851753287123724559867088659967389378404730480994305624985140672614574323688426182246235244475806897227892532735088022323596186958547746789807493027294557005318954922629439871545491566674750281406209865745562613358827680036013455042598529579200418570495375630905828356679558510519078006976484319352888604729019713831023561876131898243455552686112079209550420791747616601757278383227601296991183282970543524301143947061521559423083722761872629214651841326957578183246548277758724940345224786446409412646061265571623201420607151299945759202125668871131541547713073194481203263888205783325833871674353894463815616149115619407946038620307548272832785889741468218136926524143955597124696152472000054686048516705459082728137243441690827345198876679151855631027587514978117266908801609080989622563099023393909658803002356347391146699963781633058185903547853749639263519369686521280612024621780291100901111367365152794354711367410835684508132640159528565854220396634647177562242148998270834241923506027196711098700623012453554483254931781559750094980145975669242851200706813261598179144963494863856782140019499736204700161093009303271708287060022534171813054662387188944386764097211428312239729616034041328591805168126712108738648961906678819858086675125980570080134438944067620018423497597493663737202258314742732624433822693286696210202999303394880696272862898696701436935464772084951374038654624457061338378968585756050681203107950787483444572119264302125287963139491681206839750737019867419357347846682867711546304412888147854462820302301888711416087158801375626087937790472833171520014265375603142267008127585187472917099636270680631167242795794492375382307344521162894829167973990221624419684397707889573862824311135468349450929028800462791660189583991509125200634865330009812047928222678585376126772407702803608533599639522178473774657302273309527170469718226379342056473159112568605465368943730586506403521692094960629996844210402154852727710570328424731770491330902513754023899257474747763030190554997156830115364388086469851636049692371347499844642431779516506867448036909561232060808669816303510896621012116355952668367396832620185477537636127730516780438988517705939116952290206058357411208099675359066859042176380803847330887363710573237927076364623746479785476864854838557697085987989159428172381748230104634332214715099128592696658632458669602870935193037805501412358484444930303859841336053194423224647121157514961871495476021750864469690941833996862293080480975014005541203566720741676438158351138068655392347310990786316418984118853064996818884962871305422649339586890338207567137394055457365942886094834811267448151273547912582237141648190675684949457196157825859958616811169644905405910881311750067971941703317322594531733810966954458353602889665895233518787775001713454897778575961868395446897690712761173062484277882434608775482908423535700219730824915979809916643616502993470875843575830050041376071524715760036917854639432152835419115866242271866798079424310586555343012807286649201997768665561129072101668989207274782469619280498878867478907664269779304952910818541579680732722312558347226875338881194012512378696001230899558752261048380263888815625383854350257151930406339122362620167054100399273733809339524193408240406203685217075170589515244585454318630393465994688610831285204260869322619783836747186183145706646586415507680368741256768290793286117319741937421666235754770185197011540386436649611965567212645447876479952829671554213219039098920291091982345790910875795261251702929624374605032641872495880422566839413048057869644850745479951164537143685256971247814375942024424779382695910441757658451460275835442671505416347892878455265525709942344627003772011415712246268945713235860336939013764715491813755805715344729430278157953105865325615602112926672393624292766523222391713345881077447262342747183847996104980824588719114681753060233650025307817365653300162142551339681138374369480962971735357679845115984587619831308840759485838348788349312210762798295396460782990769056736422120386990322639444137471560979117537710719286057350779899312704016100670614717574692390140083387732974551322473022404660846074633506949150627976175382201693863641982595238061978484355180866202660465230839609019563265348840292983370814194376949404117794953983556525792830869389836190438770055658654489061293991301218352193690308080676098408479569981263138552672445508242078452198995841672718764114177760970710778052068661484003477502076860508810199815205663583841274602270559849008055507101657866986369938781112435870726851513764349638341077593933748636970324803737456898767255403562678826008976475422225055152077178337388507948596199980955680520337786500418715489391716921395410527733965008919671845645107950202321178971092887293310751335501501625072076169597599072862289845971962417530650001783908310486582847031224309340132433898077260870541847405053686278596396239796760347954834520591298135218513485148751757488445547263854706620391159461618402989358996992785060307965477242081880799869056538203508347870578560859326478201283935842533678349382098675422086459119819829950038925075179432889660659663479678284092001658623434343949727542415092127939899079301147081967802516028289253379747981210449561192293417929070916737168600804177276192909462007022430050214640494622390389051138688662513075078228708411412115782246818511706647273395593005767874781111221768569235449220840407870498793645692100460970836733002321677928904203452043117783472767756450990219017415685338847305012804860797919746494493022629834624817541274279806249811329160360597470264251845783019390402272260217432263389712522679328654291110227872081618925726417937284355501672792627522883190654794267850019716060429179640726049812703567129393749730943522140069542184613955233867408924112006175787306639932254873771208877930004004004842032259475486159185933713521579234571152768862771379625780246259678508996459289507479472532511488829279355787376083940188063462349317626571448456009414751029892597594693795664447594141271246275921962495120380182623010868623440898039244411733122892361860890027895042219367559301554684544330165700352118040927136885426837021545810165550885456016659735868842609694420037861084978703902784738124691486781876602867502851048929627247124246329317435797686460227472111770544988745674094278815537375732516064844647714285796052080878095515902149372108057159171852958521817928051062482821662657688638213131374553333643203920847702439634991920405913824608708144424195756433951058409967656720286384724493205430274619895384241572747700075347636962161348734720565474916468766884155527441499624650217079638781689378392814851344768130919253310060877383846431477253474249492973495961217497792698985369398432267055727753551382465589937313982866186597267155481719626437775798636160543596930580227263585580258950293180665311931617293267270457682954104811959653130885636583121966650103074817595714153564471912772867134820983975790353989386127052541151034677236306591958085531089218105982021861727254542208258357077400231749696208326476721327123417179349315253214860968047034611983427435862110698085550193744811904251692594920937035742790356870924715997085162955735574485277263491246172131900562465922468511800473033551857421896319649271486103871277924387050396100036689717879625428354537167118249259447878074103345937437949577963746406790975807659520831349718327928635614219966440950536068366200427752162066430869751642108306906284690169050281137767467760827977031954682168626552991484925555720124105915205235054539177434587353198262371970489446652678521308216724169795386384568308471788186454028124284592308096380464403316239744741216352183253244598902432023354396143305553159290253175419718239011580874912990175168070429273315272893638258334683189139456460881520494029151352330724004372477583785058196085743524514284292594260724554179869523437971646559512201202008447572236633687143909291650785606848367123099724535836170931455026615090768098370854695734263963773416946308315921803715688785367547731301226390429939085828193478643317358807476727110558311187417591035248814691154329355210467141206389393152572012564796295394588207269262756413268119030580269781091745580163750273908009277478258779961757304801901850212775627465137341395780831319663350704246121844555705784214131744000882904098250566188834076308251161440184288778645195353061526905334946477453195306936124771693637426775470309361814004603051698455387194990370265871097679087060875802061183246220156861936977685492984657933102447567380036319710980502157607797531200034180355936247535200070480887430048964459438920428319324043296589762771128141193386465034040405382708745819366614097828999187605649568631900298484997072725446178951651400407663602655505836369876313605559745649235084395018520140431761198748612178441678552971987537070595843643387033908534152841477986354491920209132118704236879984206817790656748374034682647063780432669440986093081088504855660706517132377980592502301550218228470813437849999646725575986733586573943684427509883947737063745692374671097019250718440471337599048698277826644628694023425651301975067438986005068759661043256863510690177658508412246479184092534431106610920408053542356013782036089492811983701637021636120297144152698885345126590932082886786922714298456819271363455144202749859873367464607778789585571621069299519572049912866373432596537504391044324955091274886329744674824358898052330018112392139209191823856864219704993020409967721584906091103321003729747885350053342854922843227483732748533374942834712702658619570818687786172957146293981503950036312749268774414754028731645651319055004624642232735758241395365417496060681567965066036729717412546799471096328771775856354964475902743996741790257814296087026486974311770245129241141564634345911068098288222622736906330649815490431325272612924584170404125699700888150765176503072348736514865747196863390212540704770483139491566456636739487542275503037069354378773168972363507891740153088361460375718177660341890884148944747302863102735860591698726465813635917771393513961292625376369524529066704715206039005545850053148049578717494734419879399034132218860758957722728210422476677117244511836092960346778556027597748953025288894916976474044574344248919190594482018433913337310177601777557580561513196367495521082388399822488279446203754265659074312399987567681639775773804641334449473880623914554888420759962022424896901233381649746332703965838165430692995364675432379163288388095506822293253035675622779437340313239128261791072398605806290054905560482047818856576693727979771762420270077718671317029515414755174521614502889710967086343209245571218118378983912445912707197068873254620035769900255882366329523524660242799067656608020779292845115839247450928355239912528405437097951511751092424204692288479284875450324941544413185910082833037335188430073180740770646309384881025157246267897864661626031451268688315945805163089410109936015587188640012677782810555991317806725236074390606268964371947550648821306665355068293921569132463276858887183168369318345001537536944575196967548344764577083964806577897217869383577339425921218401804640112040586751001285658511043271372475878850130291880279350342756126041763204894409018899719533257507321845455772715617578559928057239854856188977284442638699058378878566168245455742448182907883821475984644537594878915442551861341943331209247748167025723264578363965493392775207566621364489668008281533076111658867860356915166884054853162108600225955126165372295752893207336443918665670260751015885301353423893968705866279948694855271674787853941480375699609314476828346348031700066328135438784936840181016236510636410774179310040370551795492255105469778569760219240524170761065470501071646367682543267523599634239251008736009046349537113737161894170281561946164392553727541924872582907139580721418825509887540595846374835646250265347568162287466717234085842162415070462855252607978566018674061259495023709528373913623357484250855047806983489373595294984454607636902737926928792390988043909504346125246990153688885353199104064814334619372127755269784790770011416352028544897072781700264592019654622154005759043058731742466520862088020347112429694639684860864292278453469410671566867047358352750030962060801519858275160298189095307535723733592438538843905759088722357401213862336539410576915270359837065253032327476152710036526087277058020604873422873244536026830717365276487966847463988764876894136042368151716336552468511581444703583583565797912311058780736672699323772284390654085552783051342441536146740249103272422488065361046785879081712508746996434865039078344830452109164097909673539710244962349615619735539030504187729181426571316261842839680308357265588982517920972382556241941775824224286065939835773870199903400574887520323709208462007232804753448323960572805382750478789847442833415919379368458479375555080250551529174470132791119540007974860017323218518979434772676485749415037047223367691823957252200773691586514553025256296524795779204327506861703460923743185183654449142218001996088764062887242181240104419927801298890592820942320020138552384392390941737407418455093184728073744129311300340997234303188584924905140690590925992198733218780106649331525818482156202859111873264354533599619076787165995249886215875527679564628400431977174795585492779883180063405214924700713207522071903506517927945586443586812044384340671376984310653431410425658098452479766094143308609193593818620161690593064034149768077122558945775507803516943842474262437101558111002912262770984308539196038106190750059667635381412064914033187215755951548909494028967331723122439976613259026743544911687707034520406953011884075756191898956617127670670308969111713177177087243092191274861338516519581754283728687609550572877386763342331192077371476267385223169052549910871634665681246618900198469480892936581851248928163895265653721499907878203194282445872307503154292838602119610821113257369373651198207905362823748447982935280666366759689120873442080969203764060808297790416304893822841944714731916467204393099245796536698759091540335394745015135902034148275608589488357500313028339798626849506131542674243130507438598719212303769125098684436382209216896612453983298658909581184075946126030879982940504491676450751463083447167391655914417477700206804847684416964975304933389238097448407626888565862780470135837832196349944252598500725821236892088014609638393795779711959720513987151273269148972690859169558421222190875851295622030956804821743850231003286517690239637722605232864062993719717985728342949352620028166294260939094982551129923614299660518800088971458039980798250201316803251467075808540268037390915195873806929707294610416038344250351334281630968669576395425605666558065568200265976530273965012258814645433242502774252024174887874573888803794180014277195553839398897231308309730164490393061109650313398275701606532535634457410080165744056083386933098853669682255878575217958971808416447398403984637956150488674431664637067256344289063700579562916764155873762730110243598715807280357651523817552534293529001350856679058910361412811067312155782931175427368558471962781824944816404221710965079057019290726869190155286608730653834629702228564530657933839513538904202487036286008953801222955613776024677741674472229063547515550828560300799675619925570748601196213161457867922589724745485020611972353218242224703649893048535134685003706887219906215920110436241778018515223700964247084878485328534004297005334196405737047279807788114287029950471473461954046716882108518347651898631605082805425213845353220022825477059099972302835932553009677562588528325583848271693479493881650084590266329099208722049406375666898450999930492435324664609408804278368729218964377686445377433711421781864505016409370059216439848184717136389865237062692628058091356386402600942715051549545589787612165840591418333605412213810714363532005467610007340340895660506331411453395776133161842294884906095233527364859770051829298502176626160822291546012010873849807365447228200686295236913883474647654239421872813559162486417775747498329993735425158993583626230230462493833058329278310971648354169668177310230803992771465784627132330799109792284613801132327724403606679042416415536182059300115248218959785503491855864681762966788340622644661898235547852765476188664188843500839277080827876331422147714435735145998046363918743741967135444336639488111351320166145701583655832142519811045563325790698346528424857749205550869387672322002585318159090621303902306517646879127609918541087426883166361083206957413775843840216441853637159154034911216055854011801440212801305872030057078807042450027104575112144135930643873763134372446464138832272482441899866441073335404616532892611958834766388637449148243490871620240653673075349522500966351624981576890058379754190104470695854831145890925956616858260641170918028279717923588464732196913541107708914808811622236927397733217523604591127184755176256783681039762478567631577603063536578830423810839430460780899087097681222246124539518588732805850971787655006751203540129480733960665557594097231650355999619397175650472774764174142326215637472435841004862534330534836289597209345812441992979000104133554382659878016466449440894174641879938303955534856055230527160215944573756207264249762302463778245022353436798464811685841570785252905081037073755074854415228127315937455539259328198590370483364500000416685248156272123692018231988447409342080642712703327970047250259685860741869726769532860295211329150099385306289037425716218177278785366630126603221973698756791367812509100460043725172100676452776076193259325918182844931902839556319402718530583044065525644783672874530872006078162043230600187870587229593730336693204394503039970216073297537094639754423199697804257038866185510062002617309425959945468550425547052039455414586104278129027251434240454900378186994903642422650638076193173531582487479398284663698157347035025603944619240831679912788012171056228137897092211976051833256946388831678952285987659277740780656192589470534466319342322910874198822560252551220646717014950518928467009089880405867425210905453352665877712586245930400940401647258028739905060554807110996368482722576401291014894539833262362852308187463571716482127339570451988296652539965571523831713204701478025394265346205428909789654617829425633338010807657303378181529686382817019732917753220873795390578529389274524329028767396908234707480526972551497555607643577977072465299394438295045659167918851193886555443319929263612550760639618335192021113475332469960228107455042502733015263532424828687211233358499609034834962174406530884348056094464295870037604833895104325094275405321331033909501790579107982283549671547105914490432233679800130083879208409443560991417991635865049692873060664341491682449085023574014489952627041638471945742398221270132114320820814105049279550686387827005598754051044308143749533628323721915905142937248474064003243033040729737219762555382349389208170983335159844306728045790733308382590704747757553553863397357343944894423115643139945507730126895401260508547838538783559359937811630526693257214507508901016981574992910926705672864189879254829625863936856745877599461555029764928167236034541411996393133586526725631740903916163450873686715586417025344338928812131043233420910603086279532753620311237767456497176573340324482692712061910981521540191148579550331728154366383587507168863782305465948678394055652155611299201675653418615842939698442819735055591367429185672032231445493030687603968762003902673587507767323247902499345981265303360124949801929939937653962188288996346205385124610546308233073245786094606970533657726353934584213217488214936091843401612301958993694851112704213531700982492296691687759122766562379256352819983561946339749708289853377599149550270311481719444317967879975948543066690429664967603215787741062746502622659509997513363511796254317944638724000990677792589689033439272284854814052455693412115266810054765043288886439461010171905204204000810211716250281677930099067360959282779113518642370390028215274277777590065004049122602082183659280242191772723272928532020417241146185423384397572989909364917019983290326287314480447473342741747738633488698408300790838822061711564169923197692225457017054764010638154430788473164474895168283942855988064289520667016681739517791495771429191504750742137795514247016682360704676480110397280380359922129284461893056215051595459488463529630151353631794415768273258008320694884820782353183442105556128712690418990795041326822297984041550024615218113092380705248136823321427054400745249277193623541139883877001142031425540618220456970356923043281139509968830591279676017574602190246800143728312396437642259726637821863724428413158053847485299727368800786297359223426662530621875770961428642010833601408872191082657997479519290102922407730229097909092967766231862673529413972432161592124774411369395814274547215673395461468392098519918088553641512197350693344753007056253607668765952277938156572464085477532850296627355142140556297469935298999785056617540254217646452976731873965743221575549327845825507691493586391897257983536320381230304256195371862098919892068699291468562848980589730514964803047868918122090377824221994022188953516989164443338582308107117666232892447265982715338481405741061100858511377661334788709857980479924213188250743413620624905794480607025162852162533865338509497785507009405993184237771779226470210954806930450791855709286987591541633455420326695241299667089884530129114747384340591507106790580054221451425592794932713178191965843714759166081987082388606105219363504986485607150007472897900334344300787033156514737949282649051984738425180317628206636781742902245642219942692043119481726657251522201320180403316808619808300357725373783572471163647192593994028906299276779390864694095682760436322538054603054479289094158458340837241877346207209333925214041106946951273488068994237983435875800810090642825493113838700680004144075066261756095061087915308447583377642428509551425535237991696611086941191636790048591677448689321856251148432938112885463884112291337213551704307362934843712648208394585647416909782602123741392546187140190206709600777681876247930631502925582331608460321670501747391490679811253271660070799562739628007010053563337960785747700283143979413283944234934632958760672539622869012851114538993659418787826004069944921040217965639572594000318239073352836831930514161626306821521961362531968658944865644378848969797333556329504850138326323198473982692977234748975345573392964310663088048996796634213016406049531585784469347877977336852272361760858768102472674228224826974007639231453520442616188716229251706987138420588458624205568209170842811094485508084875476516166127619430963147342879995204211095994613583880271516600248647469372778968609492722372288564186455030527951398811922615457966654914860160220954878576268127479302778634490468900149459810178689071966414599262868044313127725885417628661891333495795395487396801258150404390949375423802341756369895899557480635172563208486899881209651510514284827335573005133688010680394101920675820425742860793612480868766397645541941678730801220358010575990531228972380725441995845933806773841397412735845373217595750654600291432949106443318739768448866107584499177574568529663454814785504482312161926348342511001161345298317128507290651047684811770721283069286295727165070244867623457869138719828338402903357184884051809406905252222208654757653690161386723703126097433516760046709553881823973393550700387327032790996783108896928614592691628073418454274476949001533449189425652279617596053072922549861604889811121215517150740755058987827271926729591623634910386974549311267472862659569430383118162204401100371195421192351171701154764734715659992568083058134354525499791970557645442430278300914894673318566641135927553233565190562225724424561053934544341768999636462207852758569745297524086916702609967062755259567189661944134243608885672055713091270585442608357656234778050674497613082834114177907173196294857957351106691324284465999239320251941842136119282936363127544164350956700685157800672210438941984397763504459557138763209232537642182743250746125458334736058476446857840222578047435039378973764952378569281848282049268256958710579772978692920880571449392664632306099793864661303307234856538516064143852001202380376686554322669251213254983777228022672238692047681167703737626400929330435910853425866149706417862925426151502059671091393641533334048899113047654323821768789442148612409915187825556616153505200239499590392767134686030769819076082573623462204751512206140872989481695206784274529123315196798474399978027558513919340309015406093008671620684173705105478468738010515185190064753228568318455584669865505978737513552038891878676527669400125311381555885400013609737186275405705738694670883836076781521929714434386088687068425813375963600433337447714564326034146371618440015017529258804617774498842851203255387910287338079165452995316252824140620969424741261251276246946895872328753867848411397307317991273239307679883230417747784666655118903083443764730227598932012094422279079447143077203745824536852027928081294404549730280962296231270558544950830504995378061113649694789198353330455525551935621376331041870722273779165789004032474512630528670496468950572868793633580897309499428506056895612730240802763528809557914032900779743934806504491012846844446771620050826155870636176666705528531720296707668076864990498472139412764352031891122049077852512714986038802674407774624460848639481221294682561985876725846693597449861974130428141386814591223752044336832800169572286565603658892941090538469651495029935567966248170238169906501190184579515300691974642619659670807065388715955161210743926902633738129105094818994881748474391773082793105522647523385873194270365567277588971824526478980240779667946207626521638877759958363009695739211973151356510420588851310311667300758464318788209979857053187311864441556047678209854140925588241253025749986077424581587266117871622308350130105234493706712416506435789544016221297050099720991640553919921793454877220471742042188311133412665535390716790223210587191113766357132240582773228386151565832985146466886813328907274650357086890860249474204710388740704968734687615872181893406349668829133451938692939208369927796117748889589539799750180817703122784397986813126557507289716145869804305078759598629304350622818711592111818566379406157847255340219024335191581377307359530184601712591896931309400626435808515148519389249114114465704013517383293933807742329879685418530287337721650039711420790820473608995818909735343247714100050619303157329024840434813811065152814487226288563472052022490651343547751216058480854165693636640246441304255108188629104794173571440897925095429928921753890794116786316179360658498218977384128513139842133278078733690152798537127155740606738185874694944737269571269230520129473427349160457498201308517660612766293546321175627015077501810626048680604523174502450357873615212791618310421300717116161023442363949023272007155135565142879086343568689498350894394830263045094641548817278891037466679416816664518658799593465161458089904802687481230102013487283695248474506234636253902940814319551857350851119538213782711712593300932061697448343482752419575216664230392133147277126812918626162792696885023104707689061285555098226301226292134872104738610396998460039223343024757085076308120737207295227695855444481243145821073685883963802967347342219719405833922545539935504794822010579291563489367200519098933908369188492411719607293399167184493099302725150953977156467590740181400150051352237976060830554855219611557903801575372067547009699464977442235051310257081016219530485313265151317882351556641016913670498869255078294010207872668591244378716095094497614684183795945474951363501422394394021731284804215423123727294147227096050864887112804727702924267676868274289298989479327611016118847766954456493750377667123325087942106148899176269136027141374941612312811272493970166429340250155962905308950967279373106884012842713324981881300854709764025768499124444836236723755124377589332107174933343603125355916857539661395704463323208710355552799698717689487079967082645532996261499476594399657059729088429899073990034836111620307354075894477670588861338163244699799476448868827962666998133923121003085530079111693282385316553375085099643006551451221862443475371098517727177132451811362319130169375632546681506697487499787772865586422143099874927216735325567444749888075693152108999562658180244399819511185842280114741480988871191306854590644485943694946453523549309892684605144516023650370251544761658083885469020982538637875423637511121447580135375560659366261894012270040239398168739122446715715154775773040183507908438622914380401028560864955185054068189529786249799782813804317096193822454992170912997003874225679927602189507138604482795131060036760366126317415942633070039342377823097631239688765977257814064561757598118998895775936150085079808401710371885799972014180451187253102337978750132901076879801563537926219816124609661749790006627102049599208563307945754575467026500235955144499839892930881356902237226867177547125042551735113951787272335923781178666584773554682522956308639525332482647824379835525415710003179596585942043131203057700379449724769905160049206324978801258630466649106356377354008659175260888852940062623434168046324252070706227934675148759774406975326039885466576473203049087951198209004601079668491047017712797227513677696986569059959417024144004996138188602052412176284069904024405016005253987465983802472676340988253739050602939773234190470787832696904244639033766757612996173710202693643222034682133616860312989493298825946957800826527891893839845646978361569212035817380318416989545133967857558245398274535608736143654103972033274702192018833244402007654151958716507184195628664628641682779104909119000537028924909773979248265186056881082935276076274996969458038734714055666173508481477752443417587432817729474161996045158484596733750767966194293195876329691692933214325066661004338358691139706828943940449842029050405078964238174344568114986935257631701213559337444371284685444107472459688483671903562179598022094164660945351589422301095571792111105337969676440234558291497361379921562907908381910723140052226356437802975871037553127673940895670742090568550005494336006085465971623348236105398403341988110544058327462120363916874019601919457708414397669275332492657123258176872454883400401428343769861771680934817372333835079306040359484047841170522866392811966835260322391614482344951220897059840380443031393389160787533601858320076886657726299312270621866525169871083671104712714875500617227846123848103734089471306311308805823833254149590045586049192212642776326913427749024735567647283525250511298173426720218807860348784293290031444808511776188790133931678985703916893885840565547502243327175812226481259917399301254559380488003069124785718692520304967083014179508921363402183631476841307110431730323413842345423025320414839349768446871910862846416818992981106124974795197106557003998550655221802658471598898902584727044651471570050673548751139615108172707474088198776271714307891941581921634027572497123970755855302464159822237494616458656097449313548071493722598632126334289347034466799145710935271772873225945953772016758021584427172269576751027705162679529874746186638016342808546627840523900511086943096965616705018208654588360478599530055747142022404747293127995867879911627420956494212680042304314214433923278826424291180004673584373916650076933242685287209545373349822593483011036805828681840781714797340142901226559051313899528582052186189319365200226257592049306203853156564384799934257771058915989144391854810917158480796749818597542383221971851047021635767013899528013872945398707621885038158891508452109594194789653254945299165032879965517669161523049363463973534296076860387228980789488168602567852205626516599389752996140278771862516773442631526023272376393881717746619853196942122280976406532568311085810295170037408665205304656157883336021551909318975461029683505586077854666030132213028032366609850508351148154650275966182140454484989574841499237196828449046988516056883024436152426845878483669906568184689982474962803792083031350409018591705810529531438820553571513758614955176252697780332903576000525611367921783531321871864963250148530677312893651275365585919340197606851331346630076127150154965959241772008832721148062172904212621399122100354429095666639205993922227945895482141157089343450847237160061511584204806447455447159143529602877451204417761555478293173688649075745667967422273351203585121101176077148594409546435150486313536727459705503686890768704374346650844302501892588081564306567581189327741349542872142919145655471840890953109399100267601390233266351292812590501111553044502593306868014347787194024075175293682836461854026862535501442246800112245521674628024677055927431066367372585782531744206074072607976566479013687595095288952347318729638136605008096894022418028382876305248712653519447138968686657082638708280392440774356122329053249279337253061815721747224806373139434735981991121244322424483551020774937408693004125189692659898415461803796085315132660821911483405077662521362354394478870865845459688770193610299753464760839175603263511139417075796068233027111982658048160066954519321552440442523609773264147828908325142344118198935778561499680033985213535040766347426891204088345347585720725968257944509469199197765418425385190509994356236888553317512269591818188147182128000246794500328426446595695135627052455658584219530633823528865844538539983222960808757246579810410475270647089248799336049679428452929987264489966515669902776826709255661793125202814694091026761575746360541076173293783185329902642652137980997865404685076730390281924430060432827644913771804244769527066325473478886533630631209094673136290230029890503839646083473486026328080533929809982336001459657084638725252033136123639531089715165489694882224684010917183461745001878069937473549931154936503487320429633227615909267682841301525688316542256749512415227341272418288224527250431028254085458153105611205672699000839437485240627133088900682636964443986744764519235371307579143885418354584597013979885550483022446913805533690414079171700447345761935283522067829344372336566276987061079807205995387789249678357183337016361505760006631292339868577952663969304074623081252244151691339227283161335914662068023384782923089852664929916896954481802908242367909828530254178638381759451184445831734826081558513054264141560573610734991673689459341015218813364624552244934262412928852104563197917254918431250784382281181462798800672555223456419395992820071564672042965704907832836740619751323603878370021144348222930735338117761252144882214795784640530167501129177084713447173728078411418738804164483369914777389172166657524459524369748684286025303141711557495755832399197442716860786524843313426841418662939152652262499066960003812629091670075098165035002568282893935998465320627040608514042065401454468035459171462473109376640824685343651973115801317425776524153798700432341035108455381238597655051489856457294006382448145387611177623691538062871158630040503452490402296462512431591628327421704434143855799808251053798576671508643619823119002805893722955938389503887990662409182956981005357891460776265103377888638252362762379407983620336837741667567486467316599182990041447002000978072040698521953836748591935106521765809109025651253022007787668693484612261913427269783939567260204126975466802862492007906659945258483558962755780487742668787243478755156741545200307446491288715411779474340477609766700973530842715944961845054062630801479186946924499552712653041640788045711358720937731665162691983596159740102553688097727347133327016028471133867507832079969380057442009322269925861181622804755379161848989027264409411746326981215397088933821512042423870632377622869059902742445344623636512968350974913111401739461593489522781300917962252803454134756996563168509189510394106877364026527512288438296946246568155499493242129735993945315421264330944687293784089820574620200403514651530287124070071263081402951139277724831440012253917928298949625262314678814103984295656957884720727705309748245939957850133622443244072979918496931428782008729865721752973968965453746232385811923046728180439881062281620758906830098133008759297796844896718691238182590511484325827988857885835248506855918653266603555833314286834339030859818142329469320908635049850898804341068555238964910529176835219066855984950295044501476294818450840185605950896637518199645074032658023164255234641731488120397130360036699451516404626707674869769978363069372225177574117762486572907999946310100952115650212023657962763828569957635412774834014265494776182898060902523151985528249260410496414148553856696313255991558542492231760005729161297735126146533928614598193806523927470737821046676414742440618998685693035781534310420942076696916420234638116753941039698911262532303924439647549463647358100291261412331241484532388602807494609574138656528911990957462065114055396025999390612802479792760807601070276220034236334284274717041369048081877006212866671658128660148523312914992600155820783387529875640441258682290259217597979723368319770719459529952060635441305006581712133868593941994662108602279381208581115065489041589148189259815632837046128603108737596892907172969505391522505275791025084855658343326152917292812733109848706990919935627423245155601834580781880958531347054668630767892327014752717986779287326043259562917279721295409858253918898401605781118275260994389208867056464398997741649870896414539204050796176185102952800910927168369753706972318699171816403767258705260712776832032872470124680354915488705510285605633679897228243099943060538084616393281614355196196887729721037006358677073839106126777393051208060508296532507440959230155145244756000001798861743200530943095666146171584759328242614615478433440119004106721547988881605282533958707997864211003076795394337540053009159314082296903130951809483615811791281082147609121238796561513942163891433389450918413006084525871746230418054029824130272106549970614256282446257152330755292176608665957467291135768626503990616202119332427974006198375422303663960058905914575372385608040121096888537707125809375362097740768106759138039865480220916178941885109555308935727715292702495319547462839280313857717027013411978275207709454844309475358919106882092035048790637551831629389174038445145002142695046057724665084549447141985082688148713779202077832244696227903134888667974727890801541245487122107284218687919056801629208409547858659694126308724758162334598453833932386354230596897154840841199722547517701770258277738451597528075923545409821420451108281798142719725800794066209243944598404526412015757463555587425934116939181379811036740473097374131789073774444970933198267896807937517061963374942560081225200398789256837411264790048725750261786360761531706938032432780055940844158521783476634489270041686949011507148714132108926771924526901460905681562262446493852488333068572879705940149023216655933945640983075399971680043046939225197407490703292423954989352096371318210677674418596107954932241232142542857383368026651882447671011951757869360808251070149036522704099792416613726892841197190347028763180087623968883904292303406928432275087959863955282207490574171905494141511907719011743639209787954815832684309017477049998815077127329460239633540691614474742899613987577558281062974783466273983141039804905134788185081090558463033159171226152926910408736521357907308362407094830462892988389655348916003351718612098705877656971295591151426145891991628258320612348278078425578171230399532526187945864647818213999452758639323280783589749770656183528822169832122068700154034450433138324236365018508192525744467676670004288664150106273285778429348026457922590093398294046839853834913666959918089913581223772030316031329949658162163638428000647326183854907219099521767570684207801831837945819303532388284054729741573928845467710770007477439744165466527297618755145283858286322903874067796344820817028184757959038696248805979517553800032251552650064208538148290182348570126694295655183012287794208620530358612233661232004929145320053376024588053016782654658709892513050514456916277276577726545359621775596906461889236112412148893420625129538487734983540604616253430223263072733731605243389658248688637471455754880950036302293245905602274408035830736324444180470802767602492730699079906982709512792883721316124885712392405815161264618713110353393004759854808544241526865046048265829875991684726727777305202302173246378189537308898526675721954303864781914566984448786483990559635295829926886393457547700510123697702813201795777240935256539556679907174498055634094901450514206467813515256018174375963472063911551083849109824993328794602129949485672378837879639856177149122988389679544371845394136096995380571673844174027825168352664302680642281479263081326308815601528511341331086751193510325145527804887666161391000512630739462480100216273239611061734253390359549149273382832795844601005706319772916128596814157544989358552642140169935716335501234820281867802361642318418349505709391890593174396276152037648353099426707589677098496906686148132579209305226341465451581025908928312748138407760755481315117983309482655687567209383747937144968502668445288486134502017520310532956374120847184772032699009532851091977241900460348851897348584977479723111792577688464715718552122554887979013859115574834044855617828775728869549024587251826136922345949518274050243464458831028368759707533884970042628423487731350050169380857440871393842465400722575818576808439970948772088573394835568779975421128972769473292701955670157783609608068300234126852590514783218536670715005246208527315739444939113209364130978737263829501474713333951400855082981833560450719727407187173575463827217792534724253149100009246261489916168515832717977249195777295907904152989676984428267159525514525575163394590095182157690368664412927477594998973647157209172939488311328516220337823498382510303954852361056363040064379210738248955696276227791227176362376347635263066821941992745096947821170146130726409063933092943870556171871648791726368326619606703140312293110329440495480596554068182199193986561401438697274505123591242176785053867796118305593352451433956520456669436576193402097788750051106498008276533159331177582155883918107438036247497127329627847225247181089726053950008973587453060109902259761552951227214343247728053159210377496625878461735484916147230690439938683148043105320815615378882547026365721861764418187618276581307356524803732404603611868946133694124763394583883447079132792737555957042441353608555543371459901881566341624146425039407598862068935342156437164540011514831650888132281465742655923429105709111211086362712277056185065811895496458924092584171475341772725960140867883946424446847672877603615787362069583416444514093922047785495226133009139051084725299858846178244261742600193297801821157878659165215101535203904386969682013153716785772335410777293176954488722678011910597514090137359159979696164364449074928802231297175696112278943469852557253379438726269940058219962070692392758146194770092959912089772828508068829223767925756943111639707575066281168518794587821104120264977404797515700392599416094499907653948330994025081771306239461350941962792388721669036385042953640599885699087856037026998581842211663999025137486473682783783676176639038382264061947140940644336119686725130042371832792250002230255829030882535977631761422181266515717478143929011249583193229587716909852225337542916681061598157189321083511654618919687108342923445552989343029256894702352379214769164492626565543121458801549992428987144868275631013827683651205681110065898001316442888296640502992083224337059185588590620374819601120632789711766886755541335587086066426592622498608000314410956015564587093172162066177789331598581909013104189337287699981154639318515543405581957435597773036512310369003882149216292138773493950599669178476408789425108079928442141519764920312838661517063941026983758866749966383282251072278320232711441318901374364660829120812149619918228536101116829100582466377509028450085308434423019880983585362198752875676394657940247217658309461945735192146790250495413457456174843884414523020742895205703444016216266976176913332693292615352831517809973565395167962189793689702641497612317715486286791738041135170747903236174699980087222095600272547035011508055613666545954991089860763133868616675841516266376122221015939655543613994443620491307208254558584763684609564873181160247352662301944422644683131295243108502545443099589014114624104157097824563684299638371233608891961218666520595044257975992762066574664898603175195134275492803164547609972398370874594158694319626049257698479507527685539209517332303022420739414248541155479334872368412097365443855608653738059234297922526182276456941795255217406378066858934119597502756443104045403046756419130509196259291465489245103080792316296567602677302287589341537814053030123830668016323575833273345449983029073812546934148159267254818714477336526449873525856047043781280974438382980500591506456202918610904707112015323178426109472230502880455271513056952073402043442479072463377676827848661092878605959518859799081724478660029105219158758340294460128867366047792319399791363852318130672935980375870042808646968408749460101293659714093971973484609741519107421799283664391003548396934227816104604887598818506682351538792080084224755549839938227413221574467329938807206835709557236701931516431812285813987211956082781420764144066902496078072872576993968317095795042225160816238543621620498659621200875737893382856013957544738806805521437768829442708219431516856182124437204113090247719209299522572753377976337776221048429713641819911003645085433993338869012606459858666149423754805632387378899837257437185019418853632349644479238462066030048782309425391717371335880285162661096001484734471020166576593509582530021957322434956077594044207149952149194025271246467509680800303466558279147690468620519367168243857152141294198006309076691979219988035764765785068398782852622942382991510157220982276462511393936029843752181513872010011048141697408477572503029395699443891753779006351485421302785599775063619204786060726714437172647050407757592359505195239833534666156476782808195847333720988885241088103105317877668127696852016802896203378747120816201025714186749424160404391863640579144055488083456417677300749651143822231215865904802975798667659982290250601040381584870843177133768528565136556651828910239311041385333742666504330001009775025093934532591908720724646671571953068464571926519258791884284268957948459625249380770830704932194684353701848538100416852639897822277095081537492815994413340484288115541045224951808880585173340548802402361608285662502057579821340322283564201880700073015281759627348860755498895237207329685667251155852998762767394426430615002044944223368802828819333723989789898775134164067220234667101871613063844185975268896008431597229734854671934925627918653341258127425538935960138047473491111257093843855022719319151502049885803945086251694790019118874436063731102510871738380106383215653547235894157498828887864057590437516680018324925340096664099483341126418037795400008747131508075182389805573155820867918430560073399742993814738057805381036494667716839894571173115661898843506704951977117328190005240564291110842622337535073452215982957511611393959351815148921188640664463782722585706450035957280076753013945968792132999658446444883453451687904290673916809856686066926160821486819557446162144383937416907205271938919508518439986158173012138317683429785561021984447837858654005006035966822555057207356379483077473613757400449918838377942695522157520919730382908264161852628822238368377467135901222363848651650367075280758415355530749005158731289891423087034183724257893038456437305341322900542155790638588097235154379697984354718074988677066926919008753343860369134273019497072804240423493886994396630180542932228686691307651423796304923158707021183429262090021698391967186963857371404667041412394171926405572244116986571587082701361586519824136735212729386958784103432753884879663186460371095234247033738742848027490982646315588655389964048529488909131459289968244458102675692595175480317496031541125159571046780466253710863645296256752224699495009407380485037266907642748199734736210554794478884848327622840790432740925796984266900289198056975293396754358105729567226949519428417061002550419082882432644670113246400761189014589942608926398765646011874429636031576176422331721035794070612261151120450543435327738433864648037497304587832675734864608195510795428309097798846856183072570142778279406076909255702223211161163597318063533986870751437373709876101133299693411238264265339207167139507694194545076867754057527298286062654096694516829800772861900250368313547168460536255218219035689777302099232383893456416395943840779937522445675378485493980137293381518459082079663208296310481037839492961835358009861529163549835714198963757420963319276674038150655737831828572486530538838497552426079599749003152200092925357790000972387690180865561167291202939479977119142989627752503102223257445754663440934863271465856447412219368871155488762103264650961632560289762778418110516205669963215373878693598770969823469174582781809957561274097755727538739998855528084321576285497577384969837499816955640831776926024433371561539276846307052790955075600619116419486769434812879083278186844536328003333203388846496483641500593636380334313769522025751841267182548008055956872701804835528778007812421878137952225941308059311010776136148155627781763634444729060235286478205916554946442387276792589258419105305293417921539702284375297870710563736753188442257574425651253264793905692803622325915367402231178110824942396714154364601696967923348058199672479290889593698212659348343151004641222064181131193323778070353058124457466485404986936126955266357976696134396145395541672045224495383205621502531506616434383812233361637188073113415519695026840514821148608576220543042930156549082422387954652330896106192212744766312833372589952920840583702133285973035987968653123602863994046535685162458379675686401924007334956429487608286853496865788074441962419397007890231971521372374843982174439023185095194864863040431124609056859944694552280334527726310492594748994977251971071033233935696245490064130022788671937853223962726340927537993976169904212889986265515045453986263808399115283161152206122797857119337402932205634509977872606750881858636374527767106998380042210196473032981440698659123863984864690052110568521259718235516296290401705511848295695127461454699163533224359193733749868093294204845428583813934144208416649696046876933929325928133911982713375701261306060388682938171306075832794936203809926441013903305046132448291730256721714817778308060998771466042263872498098869843591052413020725722102576294381432588068352708480023003161196312634817219036132177339605771950249653591140979901296743084617510646070693169525404803702949329587764320030991540497762801208608949947649821999957317157615601987295315192723599096932415898190300338853489418541891481029781291195003359864963754388390912575947945937788079145792774639800546263326592209755762985619054785052253434781115989585595426361990019147026423387104211999958241914151665536862298296541860941042163370498149309690820421661867723286817332558111098050299008335473265903076360390569447475508385666336155937525084491097867713821367030494411728414653298660151610292169621218879403691398342644532968440898100494198626936533648140867046429904669628243684713838529662426314166633959776099128437302922204331692439063916974213715979988206877508337166766100314711680415020392769715216821658318963910041567420439199462365304253854236757608113447986660374525725852649929782957680027998627104334559210806727974276001227514743986264994488797777433293370404900957540543937449389793833572365524893633077809722967698633848299879218455745878426886786479449924466565416175653039419705777942802219116532950107417674524522489126846919329323737604507710051750549058480008776711625053399959788174494463246709203734582351255172633327151589225252853409686415004351111012460546041409842702059044220399256365454312808632339250848589605198821828827448770677343861103517219750452811307464233897810521929062948862565492849540914198914776144821419515282986141782247026604901711871996119956081209005158926042164155513023636773370419583321492697718114522075886898072012596274772493952329455688017876782742953490658636574982950470897749435993131359597337654272499413736473305889512318663909060924488011398553588045474124639876294535872056698612266595817580126067135088207814551860542504909791578271809307621817187392468109780580769037340000935193481238099487700153375306530405896270161869936104018601466845910513733872757979738495243443629924784575781051760350157585576806428410484072086282474992241680266980948862501869512517376956996533588783996603510255789500551964943374946686827402306132745948602502162312436012756974096076996301148038735957393025426908784513268598745076648225720878972776820255440986515156546771691267308921721268018045650673318684425148966125207651235424867126541529812234628732187639311658330954368612293848729323572621742878113137794113629994223698567196221119807937261799370729796769859946663048067392795443408137347875433834499645056026674383787983032317811731337763034853303867724393360516584895899949083705410196655906421200448577491698968889759752276742910178294192976312365659269801782923034864715666405088160137561511956536149486586902764056155902273415819804582537070574254560586551884343527477870806541509234590206542732208442162894096321784156374422684393055153133008863167531746506258878775866932147731415350964155645776238840804079838743846549098049747739366353013955268083712454362067147093155653042658765088407875562738606721811149856240236101409065208952605914145343421275089856694071422674293423123219660213346032951156945594283643777589433320791874885238881237022533115426609907024351521547054068532466707775675783210142832541638705814922165607287580972626644415830425978955809860116322534256704631261953782093577569885711922171873920725489132524353366828673973104894799784817291121820843698555854484602003112284760286876220506991068968600556100125081910281156425738825736603778281793798526790919740446699442174577557773285183666063153342396924076069202877905405244383244315396346378567481616042757146301123172522610928078103502467569214468797946255043540010564607361699305850653470967950934091554149034757865802492591505653830437537791081205148615502696949024123503944007477064919815659919330567062071514171075540944068231806903202918321213728734391570890226853465169659218308017345349959130444253579478548701788065458295814946859291653874047283376190464412382511927726526768394314547653625188404820073348057673863172098537693379176037219602031327048526493564425114760804976861588141208128653619384194472574330152985139809011815301342343723692831972395324584448364461082907875001495310022992623764159282716801849429642329200734874442874953661698997661712702786613030333215357037853407577761004875523643433779649207275082891860125830520227506332636048452684223539408405801011365161027896716044333360307669945218492976134001433664807906001363425970728208803156704890972496671366218426014063500310108981207126030782869642994886572427133883642167002634552824832573187571737481287927747995935308517145266987842897925905875668452299634228811017450092005591886840441566754930986916965880898728154051735598957139159028626068430148591175534907208674335987880986575614003626670534143666454133208808708036843232973349850856969796240175239805427434662913851687781612829562878372495776114052864689511837306389007246133753905517342134660912904288662931894215436988065340983159937068024038160080408233450337520246803914872269770558394281959681978051340005645538694474962349991229116914806800276988373034693044329135810152793514852165263351539511177108811516381459106666570053803305164850982329306591472765448596335453119744655180162491144391366137593727451539958722065947714437028435224625895227555187706504879845126017512709845586317754412394595542998498564148366713035373942170992357526233337235338605477243087396545213619242159899292614098977063399239253127419636357822294426701685540148134535002841828451991278981533349753461571638928400737389162830935802406669490514275266780258629438053928075384433098497089247234142639087123520668466449195099702958208484025840961985699440290860257207784626179321127450730661555660291482510831940069538581575725521654867425706913393289686210542985226246179047510048463548327328924315834310596432148031538984126334775494343952372849032647352265837151617610319948829404142571628002034416940635216521245468829839508662090178910935054561321185402336520532726321039713922271330495567577383334282283585460774490149209982061093087349417124336141529803822301332764669706753060836539582376903778471110766186306168358769793833839736075325083828609888950963126576468081950380650451398657089009131782442413023910498184869144502586616299377254870778619762030576424476618785709367906445100362062711645897656307725890506923298763061154298172448159597487431444971994044370445379221847213447326061690236796404492303566072235145783943407643917970676591262962886489184426920445896587355551678505189357641819653340587816470407756608929612217676884716341567348368848387438726767213397837835850500468923808901836739273192935168978061613726197906795339899363669749226423939717188908455333640536941403511764448700468431144194458570492027381976181212420917453754586563516350880686387134070501729249090308720021653860496783847250957316977597615900416286042640419683617839610557032898187274171776189124293310459657370611634978614815272258517593837353142154077303205491136640221168177737246631201034866133933815561904082050960936566328757581362912688389759482557469135336319489675984352685590500497291633232940572186686770888470296119654206435439580710160589440504146624601675923069636107468815298966110326604536549608635651875684198240614762034274619917127473472690349482098187150260678382061771688468892157999489308003196566571460797930232407953206652400313130620399670909394680060076892825439336441505808598376392844581939799990244635179315038974260858075610624416562419201854851255372608769084313765834003791478598298020498133670114870730157491008685663409270183423624524824650477167089221761918732362783553657881963762983278340614679944687540021200914040567496554640007182955771647362738695743399104782362034688619890590280938068462857742592969701217454871544213410680300098451572833718110331526502603252780222770549473152682387398923648833932854116922808415862080642549650360817874308295749812062296772463313926025691067700373558167284100334687793229662866826245589268886552581066131960046422682335549029937285880012063089590171628209220222044997664445282940201692126272704089895584134062814714681573461694373762310656283265299126929559522306814250239663384425785718510394345560913744672793511637748738456042916317002008969743810095519013980944040578761665776201488935269038377090133031916152110534273698976162094884257192937883834171776222532735493754403110258388867206343979474867693506686922605538005782856609252467279181942261223750763121518307639262592346074833614738749320873614944057224964698758591882279330037382868216613668716630520172566498455980883479752033434594957029355252969230016612831626960836472754031636227088810070826697410906998170542807458685593160382597090741365722326577375878526141224588736853837842463631268240313973777963863366525646932196674586547989607783683281458517993782606916181529001457823851403521888789807412570857346332859880113036557433496074149616769243871900300741500544866025061080966511944994823620044840982837984028548537606828821783630534954812214304739948623997236266450743717568080124819948902105744149256824500525866817077716188982273700741488018953714142097458222715132470796079701477131061512065655210333558381582131165531950385375070816503948771772144543489577576201314892430229369769563785769303684653551178045848554642279073357503309501619271263048450972281600015434201118814198441790346139594041966574203724088643696836069082494064651605967869268129967312106199373916761710178608102636974994614603068717972892477201034155763328133804937071358438519562071046819640973606123690091225270984751798818301960928419335641619345418776163029090654852408627594080159416949152851359627650214144622202490630813738754580394615303814562501640327854047381684246418255514835581464456750354951245458273331839380245177797280428860489704787134318298597273985535979361323473256781743340910186735480014310354619479860403320388020231716436450595736614792184753941377109592506784349078347996387905239437131174861841306143379499003849641918921965086552324588795214876745274377559863008493643607775022020142794937623797235655903524584977077718175308649092346090833409197220988295893831824123001729148827318355559961371093163992608783196615876474928649019009367567158018533469756283089717628765734477389535878953032787104106961229651299574622370149250455422948340639449413327994054843702112939810173889515840382672616318884007448091963980271560359771511595465668054239691740893646650219107431569999472829609001025732149174902210377544710895416091615675330547918957199410468347482794831844506812146747070913664530798206635631475670828434052914662085937699711794118177363910834639075571589090225061559152596998770591293970381867316934973715453299178874197885283993828188626703867686707000087246605177587151846238777898063469335458090830217305208378867933517130688321277259284245690813381516756043093115051270893759260060190117429477822549361337583556296317413308838816254712498297295619768998453700967779491212474866586613215389819708162635981449934220810526939805858085365562511040924440582699819893782464494898410419406831812284786371666438882808113848762225276562587217595511603920081221810554302750347929509726623645217414869074785747333026028484691992378170917138466626991463226900621188857706355134733687704392946888223732215156096215340078621560580721974213152016070025502157632846431531325555840097558456424468434211303120857543658268589824937724984983369131225666746844135857110344092987477042598920744782603844537671440943678601916692276678454026106819507700389625884277793979377302642075338144638871578843026516637929647735891985419357051196729421696075986160939164719493935569995388563337878108080673198165690882422884407705239140812214474248577803570338201375002433551153133092111347023066365666292970436979071257629507283137076328291292384520320026315096836150764483959643308933341236044464581005927958062535046129840822435197969086626944371783116700436564955428035601167338784870074034404526321086829169426153824352374938860233714303553304001882549615985496742054709535579991756698190242249275293870437463493895790854118373694980775436134493430460584842569582168725013388613714679423386947543172609363106149169027534488661815288918967767850164804955147466160362430385876283904699254365002716420237850416269343332346012932550297681728702351812140168228873284901251059970758620375918770494539209512660416892692059071579775063851355441586911022740103376644397498381328187699559146717918459130966396116127068022210700597981807258256234877979728215267498362072828679853775361523316676990695223862473408230335930052237169018627202891847282621601475076732797850524823302418215035648548995576325053283420626879282331231556023236919996014357769465860515457760502074474026635424166974805379986899569180691116442226725726570604290986955238199038742632479442086937240851402859124586675583268817780936537409621111742678523891153815195909324652923310230899604976686761123637577998671869688839725828631260089375332531964680503785260960717936788383967168705490067640047966188227525655460051038211061061543886945813448823086591069787239611342391750552940041330818218959189061569567221071003059701478881441165433398926086159711739640434544681091893520268524146181869304391698065113377946410648217348808460993693893682876344063809147324214326717632768953008167749859885882754138843305690630031900527122432610821661285593350278825001134396010222782590731372160013127041292187014536616234933672961280697127347994589639206038666473707216067336881598768775915034504804633949075560177371271603546191870301050606873302040174885031626428704785577492017111068629430877037747209369306197459814208044714163407754544608199567460020757047482227156748010444344149338705505474715569667550398124178008321492434891294183510207711117097733072119035223147356623095812826201447941009499794278072302089088445020958178073877688914774485152078644664381052413955918184321797365477168303401082954395832734677244636866050205626919805887439717001866230130033179376027204800263063719844158586764260912783501809823481813470544369158872780518371546219566278229708752877451509915969605292880605330647213887977316927694858003931381669585100349883285744053457276386609968823321063345980739188123195866981758453663482056665624228996220858083276196964328223846226670343840315607042296774364363120525031430275804170321018785853693205067380341256384203626941606648544372222899607467101010781248150594496669034484061630401179095242509044754241345322094500991943911826966595653624482844155119228597517709137693136550143817761399688502725009874786440730948760080266995836886345240477321203954448706447373807924605402671346783547204510422323767004154842057953107818721634401464508085365565028726833334909143626628921571772815490313026655548958490773525136679386060252168341300463515975140271336758714250189851303616386620380966787886726385900562612037214854213487297218541308618246113782143354447700790417308799435444957333072178607187860322343917977091636189912184930127602385376379702060554742989766993269422340323896076799124678368105230173396619522929921872462650677322819390754816270633702327027932814836719903187743496157736046699290782637830156102597949308811811234023985172412343138532039632149556633275524839780440796287899692221246834295246692384645124068395819505386845122071594472613597621214265741595557988694561552803556536813231458371302327323652442449223049927854091444421300983260770718334241139856932265657926711236091343102003038066311560972331810289153722025791363535094774225435198286674860417099836504995691112233190469247308837199778064678401367957430017280442776716709795898705669771260080463337956125633195688681790574019521333623054953740221784001802453350497950226608206319042727892728960018244006155856241193174561093993125572437016920846076070115379566826766228445422602168321359069469178384653102383668596212731096777641313335581999224446772067396200781740097929001674285138850539637994160679461390167500497779903499401823245818177961217604429039239221241081505932055617756631440942145677375175153997975222499590807702806543931973700594306145406784962291808735713574174449129625811635331104122778377908984799136333224754587822281161802608918664672860796381443569030135866439386213333173213911660112262576065955722955868920592361079995765654990350019763760475800975603241611473374715722299527336776687604462267319139610464575627606696294026161000708678246632699180193007866721179705740376784181317159379543627919544849890498331232282926934268034457524683901652412463909555109222950856454629003377570759746276927797412683746855717197365113296595170171979652684503043599193269480367102157650343823585355591794544119564253872859342290149490883824904784807521060806379402096072366718451002839963451922246953073415773883747202272641071310458952981981748983729013792022184122137604622028182930560165870103480633203042816060322883811164745947299005930385643632438244133355379035023377955990155271065773503501327583194322515977681563782280710206030860671154940743241906314537675755006935119663454919972731949127878568385514625242838331420007699112568635764282425312696289675681418658583774453388615451857966228035422228757667767348491800169479702713748024511964399914340734840562332908327403040185423419271729454912176647242140419970481319378547945526786543659503874244362564953019513138409956907904382096566316045598910707949660349943941645405299211240098529307795979900732800188631868280161633643107412681045925885350318319186486615327178560111728749698836071452866445937204719255166900578734790568920141295985834532163899624010768905499170587458368897370272864258160585901818471922498266872768072403477843830157326369940815449912309724788718896931588611136630856520333462947160529849366342288861053800642913047042005772045324308269588444741412182531188857225679044171702701059319019555774276214083796708588987359819874202515375398557047590069928711048391302089768758487413638021142507182675199681132776957064469957000384652801987043510772101718128300939368876579509219525048193274482354198021233264508787827330677304941120686600625624432961949066885968337191357481045024701542856547386336910112821525311793856900277116391792442510191675866392841348361706766257686378670655029304274735328433971316101987324036560325319399687137239762486762927747046580005909287989412175718268893729633562000081630952140985338463119792612748237179864984521681274881878683997686667477867326306294816281655985274768251067721620053776649019296807968601707295130654380647257212038753708971479469294596118704478960226941095199348156954014171901416209964211047405773627247459430077987684824449869203606178296988833822339952859171252235900054474085731230661411880006946474876261703662295675781521608769485603464272332852451032820669246790981230580915658428963933898667253625323342398010361990716717725657827117320308420777210133587579232337054753688675692636762114978918072977889885478774131403365141655253780142950568853430644119921724310792473433872018001944135900504532228139475233896756443713098488096615673343477335350168938341470222512385972033737841331437318868138336633738610134546904671785486507383563088996518863718125225249396457912258474898654652685121026021794322353999593775051620010466537938012765470001359576897148134127679737334306953916447885738376198850387283425876228382526550611758309854764023390981766802103592551466443664764424714913798385486072359477845934617957209366573028223324602852300395802684772607846499758373485845565113683052947765634444449099439339242972249412629664278005951799346358182470750591281822220067991615124105708432775255704769480729576197811400595645260490517914484087194856868304286238549132875561334721142978492975359646520468948559842521277792351354760419633380945343795617608598740936158879316342678503801637698786857256904594190412276713521825874212910943344512100872535571707672977631629804103659482232784704944755034079679608813136459839885131452230018650347771983281585652650261845477861729617285509082780902778199509744921926451808454774040675306830155591009425844603514538333737475306621962208721464993245026290686377452859760643709378038079710975510883047103355902019718605256305310519684514398353410862283271070312349155414970344940921852225698724065229190776730984650766072655994087827232498012050760712749746196870533708332199176056792034420683522894544517016437451093284686436774203135655522175335953656134301402177384458751316832095954510034059073711620358187609101063041653920377297973693921342952420370332593190187185433301959244973375389361399256138721667637899194769264400036752950881387997445340254875286195952151702232764913095702935397421667586964404369706335131412586415379019339760913895413751557102676782542593748004640000159239563290673861597498043501142367334212158663923070763799221653252159156077706803062597009861289942950583752823119679103946045771189717220248626269712467685237940967555898466988908906710437934892167699015965254079670484390716588507926677896336071333880667598498571190826154044122107940219774437991612560692774324962352211042964725655268050386085986361801703055689016953277624329722964206478011923358530899826082338514528730888195899994462317511294960678549429753185437215168449405794237456103434595321604285835752198418008831922597288072216754803395182177989084913633633322302294820591964583659046557270589268947189923734112835177440361771767789459031535506385159684420286879044457978499786126620128015516264983318280075318706824638885250218095800182201241351148051553699266080503052720147697373359790721259057573823099071747489006236969316866549879577407883496568011961526891581674777394188431345080598546377976894074330177691145224827238864643588083817796291759734034317123355375866384904393019746855698471557650689515847586783298508057018427260423905318628739539489439214250471248021309248320422476690672922734979561897037844900401711201676483336197537654814155338705845869627870717000646350158539244195943707057337120637937967835959123263535690621146284770939859696409867270325816941561944224612130836336835383093269735015239406797366085789624107061340626089888608148862611269800279799658956373380624116381705430683614918776326900159173572896713378923275662582575009034658808431697800909251545157495889240514835801767550051725047840061641025480100429785093569157406888996302699388093535899297484858741222277372743167144287189359743532337799345657084012163684435346157200299949181907262836040289540646456230576175483913614136681327960980989323105150135055210097013240532669268653324391160420183160736241539352009837030523209637555518328164034393620945576910030668867180116842308826048720185532016061416020338883027703644875499611443480157508077561100338006503449777365661196409501237456202079407121285725357174176061984855804928286093099835424290806094500977881685194057631427681913782685185993264370449520040446594080802691369853192580355098515344961419817438820189112603315405420669970424555704341676556795968509900477025558599063128187310424789636693955817927711128466851175190894918401270291456623047339522494058026854984071105908132470230899529582482847229956632015650111092859551099146604428259074511485668486265178316605584100709316203217189316384028434690754453808598402529190617270013331533167589774723925779067563211242051216629310093667402100464907651955690187663290385362230882960162588782153318391513782910749217746065887180617461256148301826338554168542190048868565832851347946073167545136748220928723267662459179914167786103249993884539783668698697316727037190972881632123250313207106448399838334545655702683970291253344771837105572234303428679281583708221713289084659211856486852638943294871256048612160499133864432541038728941126456033875200886453303111656884073202077154107626221517861591398335730356304097944842888234061398785605753024964495839653147779894080915664991260424057405221345927914649306212509313917568405888626677808703634755731660772932744378583366772292322091714743274313227045878279703021953319385635533984434225061756509914138910254836638746641032579378391213439849732177765682050244963923715903633566358227927604541348147409741878178144239771098659294048195736960792925043569992174756820602267915255882477401775325347071455678260430221835381890917449819690830912416394431531443368164395292024569831512638706443628148482931307399037693936509880857307123241522534705123892146316173177716472844546042501930412834838397561878259529106371221824547709806236226357466304341976270567771669482021272012644790188525059550222944269646680296788786297722661803328647390239367833961282550945198076467521507716146029954465473170866507675343351243168351287887851403682954610914819496626262711979533860996291488002086717955636400671403529742754036122818183121100049381195990069738898272228123757904341712507261502793482197279793639321107129514946726567317307202644486446746521930903193548831789388085982847972167025727568211862032921522769623437024416813758932373815735915428456839067000331030936667476849098296106020930789522986816774561869984450854675721580463767107345573570572836296596105543362569886580824039329530200993248076455222056234395996101905221196519671991863318053875251199627880768583002717908851376459778850944332699792482762319605166086394800657022412325089586681112140011526057260191035108501351231434042801488181038645340390296139946466888133798217789883867694853626255433481939649851251853697423152429690423975572821725574876944052609840976533068973813366016297882989746778409449030802533041041948584522396432406960349082992141369754146799300825585832042156316244082972986634698913044642670084372100465902336842137177082223781683530505500625379777653975073885229800978580319866597524025958667259985999480792861424397562779506753094151049876231094993706922532624418879318066942290241501667444849853489335510047005114399049133527026058472540929987690905311445714358455288553540391815295432934556177164053284641231691150619767688970294682938022546563592027767553250640453723738684483670919261358307411099803858863996667826891077790035381310351098581699857400250393530185738067351339077962300237236168536712656942746409417933495175475444383192254658320700934949193734962214281664473064211013549585319940340944319186934663936099435035245329605163642205024968558447885628540506317694659274452020725733270198894538787207916456200302912389499035720033382853167860971822452240939780662962143494273610656836652631668735273650124636475383994988738714571902378385888459178000298816291752188991975219915791927211721742345382845630937658347130358851665410936447451874547296597167739091120981238948970195815725628463930129903472103746679788535748062137630554828346026170156574705302424095417111188246456784738062804061341163534326656554542427773221395466208626457476345108173495807115964729275331841369555622977091532485475135136417628559895532530910654190408540457208214828785872301926486636354383531192954991722422230640022885690919050605993302471992955728525262993319641283773051058115725510760175146533247801678857893515471655534705830442505239669797683593854627734663615013149184641229947771642425538904827525745467685538318395974021042373565693100930995905560487805760583153909982035521292281960066901814648232495534506107749151201037933225641473371920944511158263227345508156616055072867352992804950716582745412882149598581601087217348038262390760541070853746886845327588303360450835222141498605773922560888760569261495148583453796359649172147346926626523865391119039914948102231419870282793016827095390852019969442415556207668375879724315595328614176046866385490994211436485825150276770655419825500225007289479641683650379141567173279813088113586522353170144213149510087006293706577937464345083697492542321365251502805271262928267926706836055073937636846307177173426286572472218724595102401385955769790227275701681435774166721311158687826472422326795389391006368372248217259460679623714117367692976213925233066467033782972285936592449919243098472084552524306072607982013802772855922652936852356146884766955041960363746806208023809062431417373541205622554882133928327490859437758380596620399486346575807657401158641978139348009761447543741860594077388224683464802068987321960159474370416050610518426568284296930251130184466956297214716760094531358974705078877362353077097637361586077359878826979563048068904496560807432515350731966386388605341199824511601422503112850260402939682942281006927869213593270126246190424523463065500538543404679746467497197056850272599812424930342913839385450225076399360445001218943491152257842373664474552515513886271577774393871353960556433881194035908377211057719924685128021102846134104861788885347672155027585743407365527050695736676277602804270964996082955711988376032589791993396003064139561614187216235755183375476423114172536992574155310755020341085044307438433007855520769353713729915264991550642791588730700181485653748762254337399461767706354285363576854746624411632167349531753061353282977252598082828159832860436746364923271364278347563618048379616690795268319699742203017468854748131035031308012940494636797971666977272596187268100745416134601577945423581571027514532322386239356881246152559253162960934179444442100168600372890607541259017059603299629779400418950044944386161860321430764890018757411929437258091344128616958397354548463369572977079235831528684317225595688827331096283261021770088686658518130793170307307011870382605079966537872413191287400606261963309266091035942275284215687582520578046380289780129953514008553547400633097460005635845048578187428086055941165348585884329319206750022005519987839534726590120966412585928934220820937147463024061729554222343863121125063300292017582665048645139980690338493598327403276724586684787100525918629509295102129806649165382227628398013163395141601089958497482557710128797424443476929679980704313269412300121682162548602839023502183467452174150772403097295308956895347503401688672051026119987640759633240034665547206368942329721266137713951187568523728144119331456569142752271077934112075068346794470467204517790141097379007423350913844560428362720682078676550020190591504406719549695720297074789809083460505376672915228139738781414779493343824847645223823576987592009050056885459972879042304633733331000489635258141957288277826184208793517582983195525860414339603767293166566946820466765832711065829981116505081094290910035199603797639969436774661986904180150030054055077542776417300617123499876449513923412762987738702447990115442916714143077399019987119387210284015455936089128284292109549769447640624288398386142320980005881792656254950872109190413925836769139655592958529576661221510308750356696791997027096717580514417663785634699875620629832996353963232101033997140137156524508612413188942720102757645868281606019982428252243677038934445694326909215717069514636883525982292397627477840682575786164875558458825558615443809159184368687010058708552611483198432714291663320261606860099070699822585741641711829830075760108699644216528950302872834477916832186735498340803855063009388376169075091082541670710618663885697325312459372274364907751335697136847751073503076956458289520404783970719683504283272682770439020382594209262067401253131924216395956256083628023465182565729368518500622950512520922705129061842123963904630587273591390582233886654407174713188295735831568651306955347649902055005717513933333706527458688620019529338575763547862867147415101022797111977862645152281112118772239010812651986743132800786958111098832806151828044019418346376025517207453941168876265533324880942970484955304814538065630420892975706284275885265872358325342840816839308872896507221677292082692727858454760502594031446965841438680649270073518849130301982107495878100161140908263520147856578251305970293436600768143131809834305889785473746291377426160105223533080475545826631575690969904303481864951637131725246169139154826341467075867802881851381842063205192280469482833312166011091749224922894480036649322990489408964978299537367455510132399589361567805406375854993505497163549321614321372970318433086217496657218303284365115599054801883747219814348707212888156843973987251767211532346597188337468450269595557101346622616003420420847861099930857403750909194468396716962020903276748118615521267544764418013566421185822600315178479988526966627825547408489235542801771532694263476446753551956775523307931793134521324603022981615930368919681570236173034194214369589901275611174360410498105095753777060471238580466131098183788874518266602318445073198787514212061824237589378099031131356175965402739179524637877159641743394404487152307496671187969039055292136687581344370185652844210334842234797542508341743676435038345797986066941526364098216918243956907801014099886471606504999775396840457800054230391661973739827797727794436470134591186006081866608130850790380973272286225471978036043929151258284081907214179956011344871406160679826335596865515053968771998946580536633467100497277570025430450648779425616692318721542198996636717892517922309370530226128154115118363286612558585770366190908263596970127175486435042403203010975991823566896074208209267848033378487727704902817159933835511491377076899852681409790385587539908826273034185146384588135305329312519329445208957519538111195731863923827991802551922459343064581072652660623484400754415555562581843350006774665504763352649897858480387903031827498185699188809964642715631263994297869589390348440835603457172232839798462895687116863315195031314152397016180640889191477396226587112878388031037758515126919417515368824612153829793741265779019584214085568161801726173984757608280469843561696981310505704485940973965313577738196430135727000110242588192237283232451667534163918931081745712111001105865708426800036730029176064165330862585801826578613866234956887938296659337647075591964662593625973362417958362919266368604693031584033101080945332746691425482873516972332391081091353090687510329040727836301423359599799899125893434969781734279168233664882969313261882569786935559301681221881129408266061828312660840043696911136076641887056385486547435595645574648448367538616280243128071612505437465061418433903518308867121463694306087658722742961152557048250485703977884039828693080018832238116794376467360171380524563269753643803334827253900275693923198476904589065735384263215658307406672030080468349380957537764400569221223042305596338425948041891605289991544379606676596025468277606163559715801733808401394881912003860184156137774585363553778398228685380616257489856602714187030390481540083164888547765172463226825055120118166944218822815867177410318356441486938832356015318368188442206424654946181384280305505005217120884985945583393888950177302300539875856925919968543062118313345374823962146818961178901409477990160250139372748149185294136071417382335124149529755262870557981932950364602594983901224975111488378294253217864915515097358531357414040122754992236381519044531912793074266507444249625625371976442118749650018111371167552171738130576879020711171563635658665986040860358190736918292017740645483310584818761971690272249647111964055995111544888717955470655036948629556054380971693765646558000888770229509310720609298983989447533392202020415076775325271819536578791359797273153161996374927836875797705785409099481666729061132458491295448149361418303592683513915350250216582153210677107905531999346240048147646867444305761416980295653078240196488915742728062875472445136483634447345858356120328165491430958203911826959329922656388026645872164670742976232357481681951710326346751410481012594515716456615245376425002114787655264027107847601791812298647854258177221701739850277128157718520853123541123388034920694677637125650333963572565628608676258908180286951501388051587337776382382048104984237948531805103031296104231855232308362176659611524165946117056137614362812699450169695191445532929685169084055715706475233968199080382529449381686725336082589884328169311260405857526181679369396641795360721156524382295639769230280215290757180390736660324644628369506292318087093430201172182533019730425652925507270222824295199450054032792608603692070043703967252502664905301237003021478985535816368176885992522554795476712612029513784305842069801627475212981509627008185737409358244013362437917284825474036647954297859546117550270863959503902851275678659766098611180256744530935134145513366537833026894641814569664684260259180341914301646331535783178194829063791473386296194011328596933210248131475189092180290175199766458392689118536391301662216568694356590264401679747667456296812835011221303129043040125311013681976310805099901784066742698037330662363643317467255625861760830204571568777133349786545962578717738540615013770535931984563177668189655715267588465813490255865061577285264279942812387189921978642496638918125032281315855429258052422001989925525055404841515450240738537827998179617847524033090328953333247803057944446054165366825070889314572236076460720186458798287023737913016840373226719753792834893005781085410626887441000587719663148188791578315875059734217578637343231112553260308961537840683725526500640450115146631584836456410950277201777958707783540290078659154302342906807037641427367492060919881459796377541446689204436254120111745573379032643606552318833608760493356739517169367399564295720677161044281344313865558018865262277490850593013935831287566138233882853627416794321585542954654322405392620633840912061055505187885111173870051609083516809595653610939646134087430106913199755554815887646382124808219439894983454048066249307157221722300331845800360647885961963195562702676378545421124270762616796571562507142263045434634036009276384678746798109148126456027566686859683517778005481164852527654682675485360050347876450350260101080784341761469618091453951588160524980594831703671505484532749495533381792444147248666806610991534008376546612709921175065738567313986752367078903888584584873979993346550061796876266291878447402548253339613282716894951410012487352599663755552125416591934417224109135973058814294988732563203035571395637329338094295695433901662406542506958474735988618019284999702837725607558891613112938657597854549527090544809456023569362148288260618833647214727384776247182184020524758756293210190529886483958151879117913807163998103476136813706063539575268497819762073400698635462382100002745611312347222555280275711626280010389868081131714328044808458165622870843905037308915155413216046118512004342381510828629747791253012182362191158331769493684371102795475458808492455516576894786274088302622360911862376719223237301045223639805081097522607309184511758515346284226065309213912254488087905284453874678069385549802394626224432422512446210662945125656023631357898042536480658241257767079448605062903770291470922220683860475385810385066473509498373476613244704465273569979047971681418957318557862191090590031040749925971019905504236329101362033398796049037660759152110806356959934114140997398599212237836531035562009062629590759064352298304821007546299979323494316414700851939583655199078621740396982036850390386954377160391866318191045102616797085590243351291260248667910758062958761717965170195674394615559510645836071534912745855192647500037454056810887431236132610020229453755364687999155155354207261139575972323255779426283238994706106769031215910466504146177531779538042299951885910932306086643035664554642960821151436764336009380389361785365630298754764584227538445607613738116513021316106638260396850385325562176931762266057652181926902645742702537141440016178711412264803627253503790415698832017099497180992448236159640989974198970678175075168740074014898218064663432169913737720267399138680323964818922735659082195878065735671693121168014913180818684064968490317138318413339036808216130202922209783860739546316690126004550770614340921140462042253117888843630168053430197949846862435213011752541883111184299795959452363352016478916482082451745719606000808982063663589964546336698364282628009289523935649652521227019814824047953052559419257951100486936343904087098833666171154691090057417162918000417294040460758533188902036177390378441552417534840107078083982554420053096657575237865141359157349179973370489321637286663218615062318992874805705725112828540320478365074917918844264516083023856785499114933739454733704900816851045539900375051068879657172512346864519056495979715161832009076838872803428854628618454110372853056220722474983144379822251324814538160053151344563038337744567392322292811984862497817631575524893066777669151242474719160005316226897745589925818415907442584194577345332802899590251149418707834909443989895136864466231448812447324328916640655886654992438275463671531040014222830131894894680590683472323063862579700240574661405952807543002860711544903040274284898129559211731626099832184907173378557323360500504609378324616546158273298424598917578499335662814814479664399364941122204759267791187615133088761660169910116389337497517774227653840580517207529310000716754533745629674942395576555820920121783517215899514588283984257663255321304978562031140565956309286585483424473643577246091403819001660043367453732362232932793539443180296281241809779544792965428280397185081375245183039001876679637815036584501831648285659541341638952607166279587291344952515824917407351926208811180463159066488465812952321995277622440623056793192409855225765056469827596936346107904532734179282726665463106521927140960146692657565148705553104199574331359873541215680783697833128712740471204494144635078363866368535866685682864758447878153853210065418328613572685762209378121509197546631286276854352939872937446433187909330076879891484836680014373587842163233170823233343035188943451599722330487605362566908271689650592207130746354686981908214131596290195279000010008066232676427861792619353607808751068359149628304018466017484994285605650484186488794114650807765974871984151983852463334899581713574765459996808346045986060485339276371744095374456053844089394460089449904456103334845229520537082912596778294521811564674558182378954839657820257460522281589571885890172790048140355804072304556512320528961728483730059705423396923691420143588731037100899261732299908674929297389673199935715548113740141948544806086408579070643237141961578204385167736644902902181655096077382461979524863803755176854909848464474065870042420497506882288473318213495859158785575837542361041925692473120192525237885173486061632443526032923073839580119876184558300122698299694140117794948952663880192617498285547267855054631609786827743694192205903527745271268103352871694275059103002154632299125274971701069077457326334505787430100740821415390040248028789662475820365689413344822055119091371083721428922572990156376319362925428118506604426729881667697488122516250760260735253389095197246003585706359086946365233041382987613986218060822137382729560737518791241394072940621036756131895037250254406784700826024539781668799337110572653241646591333066372703191618921869323569074012608232898554158299366045341883042686529019466522802250474031723270234543888350775717927798080250195210111048384335182605996169148304305186103252140077245402913688837005592447876346751645172353455329186945900299178706729502684846439780360967214534640715468109088568449571377759119779716570339841197282386513119759087289714022134709333118463446068967509964404874467131812155469398298623378685984898992967416854760767941661899787573261370267959256129373345593896032392155811051092914320971500826112813396675287004842190501375560863054142518057772321602412182662881176497298652034753951503747557716453138726228384930122866091532284693569501723328146490300119929417182042438835077552346723319848342649354530412400261696602352864063683696646615318758032316789708976248666845027094675507705246904972588142884970157592964961397416811148089199304819986936092151856281343648514674981907170173067505377022591489678907107808980744250468939825122311106445412225460429910396818642897058642315497944484831159222198585665901167992358528475396054030093482959470034644417642896033048131564235345042855079526138548974934026813291618376119224615521158585573969935137662808704136956118071989815851165510571172333786216031533115095065476710529624574554336972938549889184950219212761690254635590436977254638540735492977154846761374987232831737210808463312527270600035779538698746156293024562911446795874777041937204188302199517027425092005618227721593484860503970171124800844541710745666082128463888003279531066156996411749787209439244077827858434891878927068628524053407016240802863241961765382438537915633573438463450097927675919807436837099700972516742884806305910634574606081815042473167429141469931999479618177471002024843554595243863621921945923519693798680131273855815693567140243426739121848853019394626986895747766789703834834466985779870635090563708349444310628688843256129475981505336299896896860913507602977349255915830579699605706269680024436772282187395841340418707481324912881289120612272400572019713300385914376936207126256333439590422380705570933903397124237907418803177700733904347865801755433626464536538167129237785384806094958711593981158423987859234138909252044993100316771117471833181045874186281692458242880025963291161504797438864089087214921642489542490853629720986374687925212983568133094001202121381304007568137859339405673804401510467097977579927695820314903887008562283865864434344838686058834162058722569530146258577912751683211585671002038222125952620738595179293083677331155917061755191127591519351412557773008727698358637849015979957262645382793508200327447467388714592254341678723236457307709680992179672308120009386901774065433822040130276887022746714296958524309962074037384148722998962227880871867791566595866402165214786444020560833493734553206766857150071554782313239962182968937056231819598280131500823202119589891459756273853546910329894405073299554772342401332423591350088588528589370205505279648653976776830920971332431376105774846563022346554239770428326749191225297703613546439436314575014176706250175260118258933888388553233022513877027369306027037046525351179658242112634949139118170106661301066884724402753026984269875480684985245348557645376310168186367398493874463772965182722875016881826197843762549052187010606460740081827766995791261901592510473643616056997511926887954280143811487799467355903201153575530093624131825893691569971062847133555091495335484886254954015832009417272654028761152250582450281228213511913442235840478450094359165302246383081081991379697003552855384260843735511567987170013958891964048564544111450626094235393313807102960607426108070521122597849659445435504781735555422774322324162583557685497995855905162445228464669835504109980012185514092234773460611388890426750266361667527923543466279233077959603714900258416265586631907914720194500154976195179503730723006419940167665169772998566924639726668013425461452987249086025606763846576262081347534753561020961793022971780722321447299426921354704929976266951314370861529041077847839986710824002609149491984253586221897773035767637258638105853631133128458020802049389025712085845441315761699435820771949010233080172264428359945419200626784791268885464865662345876657787037384250920554555584424300542840651851255673886410114371148206154883374182345245611863036200558589874051917415551033569199936729255895049723981447118870500558339601340457499399713539486904412482870392976203899192129014849797937110803259475118945712201348063653123317796969218606569609186855476058629446307270210730742768052921284213111536281346718657246307874493202527711245790006501235872527422541353949882100616896264056167699371250174565700187502505579224597851652096287691527365522218656508184811782074204160396022210516264781728952995731510538443049552853601024064914884365506985218469149186871553593145296398876249195518574709629222231033463682423109795802920925994683692444813885076783096793818068061213897835327946946128996527693744879632309961850009505267131119876228246246736830466706676067759897071149111651635777144118440544812501514606809768698189289155939286257942570310953113395262436064329687483518734000286548085600425955484527217615520744710051072372930748545900576447608142891207082963770047611876638831440472914589046125347558315209623027826039975886021382914418676030856910200987595823743940104085473541114225178311777491956563513636093591127663719246739546783349266246458172826329021137720315798351014551712704746436034353457441286559192637039761857082526409947911901032420462939399082576686330149208047991037300655983070906656162337186859368152016107365220878079156702702558413251047393451547320663017629869597137779742783857122206255292067514473451166216452159179576518893976218932394336078830590372161607913445824746158393952341590287188177871978485993234432174663684487672602928697603538412484386210003571457698383400649952815531198231638702236343839960179189149611951769349861175453982496849632537687793256323581536321652502050160966171117899668868719844484444593700481289437254032449697287628470175728529443199984708545295519216684664060890052583499172897181443836594088374213710977623346100874103451199997402107127626667511079564688805598987856509028130326711762662232155465278988233155997154456037816886830648100620938756360523173366108789509545845896600738874118764759165510112550035421226479379895248383939180890125792221246124925551597137840213732097878882469292525244732589540200138413608907866752421781855655065628933063136548245388014104029661664352142978161137560224086154169402054059191217589467066867079746353048686553532328751220463199149987592867038968859137158773392367149997449266106656385032613532304123263090517680737639119940103254529826718151066955738383219996395241256224977822316712287901084271413462410540589310619322806395703517486198698412407344014114391876709716009957445362292488763635280983804480765761404828957582629136210506571183821421647168692568830309863042241857379705432687714232464581215853904139103771369529042851184201711814612845403533037163624588186736927594866271949991235317464459222854259438022588617684154507568035272687171113918274745243414250882412275467502062607199435233389073265764094603757889722517601514202475562740595884741201419825094428667818312469626492178213636225030474256518888919980589291512855878338121624552389775857090964214084891619146252922460241264261226537974998310859596413479964977195782797152368576326676547961171112898671878723404693580269740649749634965624372843378457368641316468057837562097575188777989977217499611982917001461244381211546176184200611913677052893478999535777444011599262080216607780899800558002670389689914006765857861925688623385782936727152276468679426784964705044351010004893415509417579477340760883712030113133162433898539968821086044264635821078449251006327910495321595699861546913434818763529037526421003583386352618717036102658751001109645612892900852704400179459894789009948526900655923380461385142893787036485723204765304080979210047745705948047917971494790647757749269638146365418229517247197018460472033359683765536102617645016420044724155633329470466995066459626022153702796332472914457023835774868581356925106060343761541448074555164029912884970069966520114715645970662490133724228044182508177675356121251051333587844475724850465080421852682593838539786745280671685023620185612405280218205653498972264016994708777384214804478705481699446908498468267765380884838618084816171536922706754429122935053856142266530171988544676435020678805298388433427108007681311023779230980391097920461235344947431439798430812139893846062429114118766471589636318329878469657122472558102669899118932862996686901680535261575953211736929910018615018987145727396275235465031850834360496365216467642841501565578830404681736494380446617495831628447512650734144143869803782779863502419180346612283069989684298561519909723724625969163221682121878132529173693230862301694803321694573014925755053069399094080689958822909496020411831980635191670313191598535866062287314764880937197735182119769579475473130589746184876620058814934154029546001066051346157559938712650695057166013248567919070297196054523371629255908773227798148206647496585190255699995264068445772661314618033681437042900267612336307277516711210362529558043385722605117405496546505242335479068077625594545110186440429997103985610918628389361077392673275961261023272446656070814680023548919434810311009140731273646578578362910754664259925422952381035905185513202016723647666091277370604823947239096233327169329101051898774687673968050792684067781974417409700562540534170883000046773419459813878586078166092826473893740093781567372383518332654588517279519647440936683200794914069693591284597626213387474228749398568197532576325528941994119034527883236749336944661959274427750184839679331911184997738159940120657863102350616604649679599054889503704104819612754790174141776959967784107933785052174210732042847422192450630722623031233404099541935321728025355653181639117002153430716397971758016534722198066523959383467952645331057332329425979432837317083429900137140846726062097595896508523224463254479873715485411345109964875615633480711250538227643623367470835781486539021386421174156452216986741814600086178050152224923544922255884328389935382747400805005955206457590504076746393408469832382642562313225212012326858518740017819707932892510694968379497004368137973875380905461803946144975965332280500990126245309357388931798291759117885414065019812942015698015004577292870152648592483159101101923815400814794675305539296520909306343994856776408423272263638678291867460557170410538661564884377356714223942038368572218404526640129133198797893688168209974704563312994352223028711943364300983696819298260737432006038897248746397772119393268833603687008159027982083533478448259700561917630979112967729300939664990913719507598628852740445244044113967044308203807746214921676576248728499188707122964269997921504506331803238025616992639688129501036981282203308697413260161927065406665526908340635359881431725218769622501818480815230564924377902071929885833188888952030301229915288311766793555733630232820525576804769916628192805546216474913420816005245999016547707123091440506398549917726818781260360665308698308264750371169445551230946962270283235563527154068126051590716054497332192585497775427829901109745431517481562038848231675881848917479551299409048987637980104060236601467345543472833127330507084271565301486574874605203862796622193501262897454730404932391080954105973068839122600641453571644607260421630723472248809670648282255035227759415649981116922605644269073366686639764044469134803898116059326891517619060712674774528478367705466181662981269891945696645256607777385574176608189293594295440131608260914533904056935018619076694747569509841683955421335026507676386939916950753366891702762034632754056862691415749065597613099074184952078638934165190738836525570419234439387651939302540698795646845327842938721227239427587618083461909220850184692873616417380363410767243264663304033019099187430355874239833910123111141334230968330436637994289633059500520911578595177612619020254494133280038500680009126657516244840247656424855503049408191494399106732522861394847812878641939675725526667742398584727061362609640847540885815944451538733435841709104983269995496393264313436221803606662111415867102880281302380643567472195908442922093558760589712475480826769414606146220313302464787622500639347275912283147490208030758877752701359689848625985101426541951213188134320233811105557362266673788964953063327107231572090507210564540736250703916276569180790886667924670717303899359553341764326376194247931908126521316734614235069081694828496256032898109191723686298485796906432987837731119400162368925011908426913976998215044564922515337514168142756128695705224506452509272683745913840844360954954101830841661375859407172436713879746001016227412686411771352826562620916750078811243141554058923847332766075530383165008541241352808426854683782672082142195301889833971445435227386350476922528559267230688037212350973577593744949749770082309715879690079719425777408925845343949599236311899551882182685399544142579819607858255371930901215150994163217457236956456568025683222144177330006639024611329603231680731416447258444707580353524005780376070496743627666726358990091211961803870984122319628589111397744151127656207221370046698024451589151751501806329290993921331110367707520553311239984362505307291320224506575162579961371554183760617781609307425307943810302568672393353825875623456268329757939292859355168695002483777755786038060376763890070164370486609036528876362967773831738907463790766592528554332222416590354801710790897363957269998198308222151634017562419292443715898608777302170879693991935948198255429218506193506625167226090354861258862829669192396514294209200168687179943597062345287949903769207670334497898174043717972252107876836928703679869887394728173213900210398931312774256019156389953319098937292116431490539385298456412868703809722857023273464154025352390273457659440367515139929192647222463672815366000315702739608277198450068279685087774217657640289245027216289737748314465459197767180275202368213529530060718825496507295822269424616177720239488361155157824013146737733685064685584730679915399223117641838831164304284938259356870480552489467904998342372007278573651053079312184221749333762677465733489744357564277168463730972557740837045699107874614822620207250053815395649147542009822239785672602148481598302140189452170040627134769289607347435217529148797641763237392516152182019694241950784498408183078868670304731796331089892102365596287682757122685516394917928058748192026429855954310524529786363865087047322418824359517701891818913467578720376193823109299312068887265086564703609235671383054723608618601095973088947377135124055824221918078411405195076143075686932359571964849056403861130103618799863683306087165515755794597992187966483612101303097788897251802584061306802994334519040622119827464209003577425186410226978382904981353846327744985215864313551273485564544422138860080980360747909013899691448591114100682331893235031160882368340082819594923838442422025014900342847086888073368305395910290527053402751317868339530045395246847629303377703413297025420814062820993739702302111838568732792534564126918843350088487547191276056240771947823077561350836108992402129281121883401726972187311640738339141490231758465122744211770506711851704436677048508979262980634048398191985569996347545146150429236665971685335840229835933820853383117020808752899291558695226206378064426069503157145591983304323625894630761344078985664171388933178303489896101015645766624019367445433491653110131772673938715036997924676684104531104075096738838522218785849029784576021508329280252876211259148601345757587427215800912552623354802521726613097980326903729896387739409957730264078603255486888363922548273898205933271300374069669919488856068800813185251547570261504048535479390714142940291789428678197110791408990847500508159943602515082096141345593388007799684810427962463500096040407921844425136415977186527242437873417062759683412372975806843125933673385443853551466776986312415728162792375715452488798132796745508052444071420471689807214537101626172897401396565527831147130687812200443184810176449319669158392947742495970970105194398927454302917709014299011138650542417732168327983376187548468279631204490300208421484184890964662301032677037148898318415425686510499678963057757304964274715002536789610906928871249808257131237400804054307578269161733955554106725271789930470862768814350362637784919593899615995651351616614986252539900898238335474615991964886747062285830364140174438809242347853375859778507071848828407538662719778615511640496809103709756280400909097658312122495707418779660096678416157438935676011952210582740524615123932690793884617402906617624054962347150221502952050060275669677608697513201261596119744090647772201218846451047297783034074437399100197628222941687995807713807345110122780411571981030972008883099903012633264271099084157920311651570632472460940018914802301737172676100007224172281052505433518005687292238550935391788305205928731505458231783363299674884040919153913677934210345742881560243894349621756091279359623762120632170070137372975105393748281766022491424875129744179541215697294093610113622439568869741953470838886897243095665313228411151726077205755383108270816707889750095501807201950332295222872697495587122712085089920677470849570179107420115285442270241965038896661530724310852490528727772879802711180950412084146419345583477402066037228075510573408842779768305269204584323668148898470167108353782599143298590327357976441172869367740506856631058131904116495402032512852018401025225787206157160594455503291943245282149351589618933802363726629512045768521715381683627249952949191108499362871730324027491442765274128316485076690299357914985104555154207240230622586615052999801262213198303173004304595702150570703156807761865564457985803191461929069746515975337565754748051559376565772517938078397010206802192849841758929786003257448449516914058180272216037169375005305195692467270742212325507421742926346405417840264435786108900243200654153853431288898357172602400091366948007652419050028550177115764748539151159098066536790166862860911118841577951844874004946204179783445442639791788746332555829692336342400625073008954626441875805173267289925988920243908723598606681653378412926105662057077190974254153651754491891908166311816903049023296892026670484855668153589237806187097055837821260717963212381603156721743236538473753370899480727150318112207406282448927371875237769172836692005486030391816270721639768971937357410566117136418147032848577078101439409526954340511002689563514712327764440033433859850360365561049863489109240900509122196193538742742455102589198765470880426609019869127887502457936571391050353023481050842053490189748453816247665797014688371912144906502642339941077488603598056893418495600324797586410833330366760846838825195243620894234850418927121655590159111614787160549029655417907654132031128200991932851307191354631028318562008789908656759982828656236601054751538327857248888498666208141587076125785568550303849506675755410448579917134956005354857829518630804644334912606207713592595719210515178336003433474787570642232164522872761231117657479791469646303261631186222614402568044443134703944911587985281696473310497559443001656779545111264120309058129010429476041103840489342285604689473320530988085922667793450886229643490439400290282666323180760947921521927112808254848550252901970773090935105583317860698618149317543774460381053046869910684192687216429269275998830154640834654037343702518757178365523842864007435644632537676815062159595599937589875875604365667038194347702423626339947106587705328528644903212238009391794967679084629428837944788422901034035882655302813707187656954042463618596810416238741434315298706367581446066869950231512164594697185724508010934800347529719878594868266199253262625859437026471834594142037383353041579975667209316477077628583110946138908214376761838328207036525545873654788732171965059040097393141038090803349658712897884657127799765714842933933045464209941576381571460520723451304542092960583669557135593131966971020899973421098335386692843970814763554812816390559049824825216865722669013443454051630953268861839521451930539521046416645335665225786175275785681100070565342550704412311601567038163282348069523797422556919147210838301211398665214290290838752273363964616270442454241966435388858029520170906849237961164868791195922033480478376042518025364198501643412230356271671299671736364391289056235496478632740781388198514178423485665340811897499202568716020882484081499706114490945117190051050083529175637634966343948017902306949182249536243048021032018449918340082072014737250015723084051115497647260784161288461502103831279585795633327624127231387462202716388122021748606759816685278662855977984714083021461128159737084109273232860493960343075969690827041454785387670081540174332395237953224964727078623569157789710709707869507444010542509360307696925507060550345032081481054968256911322995865999277806358012531538576048523282543846568927125826772019089455145832250437335816733179152809048025052480995249984197588702243573403602069559138913971957190179141579186149107658725687671848309399361234445729669621925272441123845633441308414076387680310447419486727810163469898348939210892008712777619127578746424651440196521215343704378328762200116764153669504622437085555228974653670423340392951428116749005821436409020197184538177821946154147769849926810791872346240712051222865592802865208012448150478780121485131115146363466148074507289315255677261549773910438485740819912579695645025428779989874587496310833645891183251467630196442212135229041298645285029450846356738061717722238632112251407693497464199911195528922737030227036717089481568077782997306847983952730181142234585800145888821140401738074033579792349391678776929643271616811506209841121990284194915321823893108715544228764021874986472207455350653332290847916319964549114081206917281014104420052359406660450687133429519970231935721110025802623527001810361874766314494866338023881724700861760126022247888153151531842606612424910965032234745779708033130063505118110013541597760262100057906634567309383911499050840551616494359750025466877888300740091355467145883040238365794020798229629481262711566694463197363158744861617349992518488464084874772730387094398004597929154864587735659321460976111163061387800164988205520971256959664414167786780888155206691769359294104640840379366234890472440943022728070305745027498195578785295520102500265570208657148823514755002158777043817113952307608281157991627598863028321138942887291083810486170276769500637256431456670577724107807622810436351127979466194417945111338817238414586289075245153631634215925811278008442524733573545351116218717891834372590414043728852345034630438774668280997635973852494803894939528743484189966221552615279955827563259344198067093278082774686867141920328347910787015161838010145637885949831236971208723613939922170400184073093825870972416772636624226941510508814064705338367481133481937562404607503540374596576841724093289174571449779358322333969201385547208401054909552129908289099086101915675027430421776634746106946174056786568652715467216127875133240489513569675038899450062988143800531024262159566159856417405180121437811806002986079202014941038281391453661460756350848176138888454239744118768620554441286225003678391639941764615857482436310098325730530328907417648105019172903947120684730331739577895276143514295529049320643141304702193502515973563857420462881758062255449742470911514773812192845937340706917229849691696632326188728468519109684067793340972401772091877649692148466371047099735189350441667733535164258283452860941108848556019315243880516719064174063332126995359099576908326517675518827092231576853870959342444930257271047815124497475419930937288586348483902857810858615579373986087309463716941014427149083463379597679360433163595026266538445513355019717711985077275376531562267523597281300117412523251160603531623802195691032914722198993784176312463762773535185037781109666402391824208423701647697048215728313449482747303261674554271079367284499817187732540674077619759926786764714864110129375359411705654346200023757325681541040875945060658082273397819216590525972323488006475570375985273076558598356791119184920449648508642293639165442415568032899362390886359678772367740756275278717002989349561360522859176874625772268685754548474096191815361523710737426765290472880322464286825697218673216071908757286795620795656899782023494280729292600280599881416734638308115937037270013585218358389139064976235082682452950824487293143071499250801341622467271474728485304059166501078684027567189615837994309679567582902656483390297488283495856640637028969207362522142740009456785356563809954671400119771717423675259290753662396554930491124735294956545659299101897014139010436346885656297844624864777195294818263594921504579088705233515539333156314941025050525417720404973600401470931743810056207169893185422922215601240839784291418705911359984262212148580567073981942280408486456896704622667042885815715529270744205467760384285870977426597799141972856301127362063874122987218366058341325541147062627776223722680005149250766276389172638561162897219251497577028804140385502515046772582415142428383393369290027776529263681715293242538431963414070462332227043592867178420975329404708170386717790090293733894299681629505093987749207682808594966323712478989386505615800092387293191887104607345211299949174146093618524707416996907077548354809021826242219052360378737955704161022042414496955527790643534637836131780999073615280620462222578545184872002193008388623486006583739924281872766750552039320803400014748127709401077528148289829582080816347211899196273571116317796960635212957300317435867322569227449131826917609598366313440240682245484679941461854928545335437675651482290088811707982125160964051472788075021979214189156682546232554169321099590170283812915880811693183115528205302474831699396740436099421828947979993525860431434149966714083673319903619909747935673887295543753734999847443201859354582264117671395333221061233738837991961448522089031498091036223084328435549107457688036465409429725370239776500789570425945180420922756340230230152551221281372381557165157022253686650162976460746494910905143166550398309531868089454887254276047870066563829784645150759053737567639037895171400867851619301238482655644234860058950422153563418692361424952160427040983898990654553648084635779363800213951737625884980884845590161982002516336422755322397408179703466811352174868148621388234985029078297247797610951041084077247396452480562334731442758118936551288845397499441582734386162971018418836363976430972952876423848682789601321187933585748414494521922607623654009670070927490210492314050663436305314354772217953595020951565565689271062672822782718002750361344512524702061353659082893310272598749186415756693718378157733315323266497177053985661076321710431113196965824932342864585611926125477526831378967962867342428014329924834762108940978585830961915692709926295686605822538479389187383505751359923539727002308841085022133011952389664376600340970762159252308521894661933056845558457546677472681963578457590988431881870833584541482583412789864136046615491461021934569873073581956351778426758481776640426654500770563054729731205049793629738274994766175639365979559926468084421144982871247809635335455439754833028811580279653119420583594981425779119699495466958156828885571800650614674294556629504181679200335313519132589459025843488199227659429197018141046193043197882001988354668329143023346128309154828431253817186964021643177185062769536923312459560516738176033501383343966653183907401011676258480508084985498916727044693419654252974544660822142848189890837842543888139386215523058681471127636047541075944375066795285037006399400809013635966314052991900966562144793820297324134038664688143542159295302265638098750859773177153572340555886418462288287743306963072247594929335317743750739529083891070683275071894582378403030796296137093609595804023144121150911743401556474400873435095634422137204177355173762999017373334044494855281712212147536645847505059239282394720468828956912909551777188417154158044819054142867920946181352468003343678593835726041660335395566314507706457462910658579340605424533398338558011598956045730657888177293286006945272404840788907384392889931481055712909225764782236626238817156331179832862677346825536862593485871157465753899950941882804610433983842375046218358635724703740878541615310577329694361321619036983777397188756338009777120496399125256004011807616999272879071787063160947130525033169500462298416844069947570208729696118644012415233062696831527907880121287629786117634743923945643095530697270122210296728107809780696127453976187011656581449752488044797740725139071525063476300964105641899820608560606577954243077874123452894076283835726789146186566223306599957607057414158918048484354515445558155655535437386460697264400469402691383951725789110446731764068806984686468100814879818570116636752396215520211577825847773731680319014802536921182964741951887344321850948117469954309731054639414836664634263758233264271623930344684464300433491779257431901363138568813047815718910348122418790661872229976865789768416305816212226729405390543137840373019972525822981296182773883511882301924755444529564280202705500665665012987056400719971410752027949767799665457130820809278867212036592981517124376258768403700483793311639632884936042621184706491807536777591183125695310915876557587420170194599196710414927211763360789295644707571885588281160507527295077876604788316802015816511151876901544601215452573629874647203646594430728773495255847373864627368269712205589395275935260648743086848519278927619382651786260402543582278843711804611293327783086564363151250871554579730710098578388704086577356268460973932134641449992360427332340348112133760745193887232566180155242719062516912102587119599418546685007351800746702893203787326997828830421718367330706000943942422323285131210607400933686833130129345418600709905918942965142880327442191832739879566291668659458677530970336963267309340219448429014069238134235089642101275352377973021826555473687786232108401244351250929657470773903541917495203868939867343007124488763281652232477416525939078006777019424324307209138969782453578510634266280402414681349513945404096756236100645445746720625518309866337822415897495448736430779705144539834221613164421371010929165262038275181262928748883098928194045565771598423915165352585947139501941793074459679976729595283654979792650520590185714096894752678528697640876915800455705615389100826795803242007492753426352459474922930112764670507091405424039634383271147343911947849679441154090719119389572350905319367228203727774137965319376871712663537755974900486562512677350278457522604992751335089174126761268328053944432805368762321360746514994459045753560541466408200319607830682412210415007931287810830639537684857032594738259832338574977320786342378514488257667111946868411477931597545457865388987484763068756042276099982232665661987803705963970992138344570807709182897482314778965473354942784439148255570044506378518753304907083910508023771812014123726285388814821595742501763155455755466049246706899535932532375979412088665480260750991752983408149709083735050982264489937791243907490957032704786160929802165813244800733983378123829228720554088034397280764107887154085739505579154186091043661928455981009056729923343460673365644329414739535443042511742674861896704898558846653908427316641265468719892480173030574756507422255864448056227444839564495596788044525166157295991862837494880728432248254414678986318615346277790524296745761933208076647856463881046503127170466129255697017828512031279308595766872831661476229344223006346542838568673022061168988596956162710483072546607817367285051586070858782897630921109960082016020394009134811415924708837976056499731558084948743952579726637319746790657899287613729244048582620397655363761188094402073549901403142550965221676641503364660851804005531239228099907259812279824985225561273738481958471845821681700615263251592579435282669259174325171435753243318991747430377943284887322782484408519471497469803795211704807229692978982986452522969684496530777421255634006196006242759404048438542709885519826769990363830091757389091384774563915763284121039978535886608447612876994797919005209112661183879461827129009533816161018018304261104232241375694811205484615402223816546270753542744694732432480075310309044329321235565216190369950494568524913630612892369137341653930359897476346287113626564375088281652854182258052758420479225294364404339178350457583797610428411803873617064431409226977588158070733017476905194122502409266905463687110732768049771227510071881873263074773932492162585966272870602750270043993331938804180662177531275275073932069213534053942734098394810930987463529585131324546894490795181852484897487798233257851213952730990157185378278196528641107115397403433264875395612949267513146659544447548790671395117088098669179532547630989558411423839809621621392613166212423148536259703094929789710912944421919152302149631309440709066145583269872415198916564224878292489123052570809129633171458544091682916656451255143093458076695230633702778432273467160498445427395993417424084519375411075429441566913408178786726094200941508822447643153381840231198192210546716758468381203189352859122648754103224393272445568619892759895099670985853062663509359935136039775190654148130543207728366643204926348508989457194062690304915920282024383436143639299794784351755041419134216440992931409743718683044086413323475458753247725803328076553302469924175651811490793193869405989292207217684060953936539605245508340807713155830169374281941453735399016295832595583520114860050536268293790164227699742580890825969897138761611923418519975711301576512752764572424011964061597873912364279922174851425198210667968426092053999481968083078937006990646056494023807001054333651408517180172438797015175970501741600701844984712736037521582298367509501992137425705438081072458042148710407519520915494547666494579601729202091789957479059394596659797023712994581346559376751447825138485585331015773052335169378341081943894405551641488384966461768244398148306490638741179794391055952307939501422557956083467064036677089423423633458774262396297785580712070123162851153153236469996329132725855667556248748839118493635195568096510344815630782700153201261625789776386557721096611390231206387864764043166421560371942501620638461263435142483437041514118692129375363071762344093981747239228522189510611974697168259681978227830794860478513333180546054881458682741826618191274828935197797057516475754321082294385680211671742053906262176328987804304985244799447146195684982738841548993267575442280522938784659414772039467266285149129075552430684568136203181339874692899025315847118178474626270660470174103833858866866526299574201497701699971687949824108254062780057986945632460151885854423321571806986732738639828659910745734467995183791216394674625535164262866840280089922560079480544078383784368025302571026906156745558325988521792944119664990787105645572915120321826190326961999785620824606947472239435887774344429257767343545071904608565767592575910920555248446835597781944474895454824403923573158172987219559837188825421198352918250619877953928954371520954639421172603135865685945483723914000308953433044936778806540825863417495968026497669392528886554401368258058624668411803944837784353656668167130226203109665257826270323888069939616512612679075293428460538789237991664305252737561922646463625896250669264101703407881047209315725259032457400666441249968720817340078392827096499230177734482674978931152794253901355318772022342605281540216463290526981748695038394314720652438417998686524496315152863552130624437893916655914013219342929168365582886638454303571159404654512285664431633832119582191103146688580176869221019583328373938905895877010852530215493035669354625702690025595547467061697784197466495831562889686500361022718921993040182745118684062962431290504436366749358717841278970384172790561358476750968840090442405912895128810653866978638439458487000188793011430309469136818071525654864102639949178181906726249846125499694849041445671082520065609098794908158860769502699050987034715337298663683288986969472112045343868447893480107175370037085325285648368168181194553303700362439618664597881106108767189556506712080404678450633585761644596299398964715269394391610460724023138186299719622019460357721430564271709163850584762279597013641177779744408580131795034184891111016201160172285384081187677891613571347653665396069783976917010312774708631819128443430080224183261615089520431070508592438206140417709625892151671954459549416858764582060162573424609011188869522022072942783247283536144094803260776644259727399354174929118072746089674652691368528442652755000595665637507623682187306222013102275879431369115312039893839799899760553963270078502187936384990689901885733168805263351930760116904050505104643430394965163031906151234351430685339222962719570872948254470537087941548473769298766932965872513024240427002466351263019027779684831253430747755043034413066781985484466612670978168682944780213797847394165638453480775566931833404937303354058312643256423916241207875021389440390891814895888413290157055037215957201139077151783790960899032247268778913483795267030114609274445185211093498409281222625505750547419474803155214178167820887988428396807358046489358506209112860591034048464600942321488730179362282738613982981623181973130535784460316900564034898514906909007314215748722918964770897855455691044786846809513282253236156672776476547201383478872205948134594604087157262854342625628077356097678752020779208126380168094061503781167481944214426502481629708364146474340642559196812619283557598563120010954013732687578739645475376933198896554414844196117901132755953200703146612308107019708421173515868847612033475934198135368073797673406672993777262462243099264857378577599559922471866822193931009321624063013973821974956394367815029222651712570796311023975348579996570956438137437486898469886863796208812045669313749324229258380950423617656790266994149985087126278629296311735017521517280107529149003077321974786504886919006064453962908729122181742287315043799077601305912661402586172389864016798597051987426217005931925153758833499819563163779249311667841008268201161776708700694180416650749660073331100341352269370866717181707545695231155744986036759559171863818915676220870930705214618705797465411472861088813247026218570326568329861375560981991036959544391093049494912954533174471564687223425527935940685154655969075987246722365214695797490114010782793336887857397268602421853473151431422095804430416568789621662484898130589337161362149807456025534103876942722897475009008401397175631321640579190908716450543729049084444373574921289219054238628043314534788528409862583757406833240215024276376355715343578733237998474068052654123080058071685388132649328071922933651357281092077656955669430658494711477457548298464793803800073146940958432009444419749184906803953377681976593853298508985176228987041986842812413548083928276805015255743215894921022282713638358239503529461984301100701963408626055205989373170612165957086180337432054689374163732445548179201770344238208589737368495100846712757074540008298661603262668315795737257295337741482979987853569319684878582510107899523638223282234896028118596639935824332132675824534850591702935656496619879121612613452827235185874929311180988461972833002012772575510345693494914367953307603129290480269082777671793886444781176393045958207706940249587665745165819363140498765858526306439503693953024271586731424809723879284174848854899337614486892090195785714390775657870533832465162922649185320055574339137268614141166103731565288448197921044359760450238941311842868883181619695203643075479299241367087357881218638184569301432250711387477851049572545498148908667560136285112529923381045576073494848581148265374082036557025986722149750368695751812289786625647239101303688083317436329638727171989219160656066674681387252415902032061465760782385464479581711168770769131013821746438011513430815305327194117282973801494209347838835265638915470410464449841278199412635368366913696235051317258018700561024168414055547289464151760514483445045094697537287013255929308891864197033175693335001984954099649137869555802404646394619540448101676003498287527292781966167697927789430882916301425715313806029137999881924941031007101863657360604410246182866217321408096789988291427584792522231236966632428421456835942198958506196233710157446993048720022389982480181551475473600042457958647820668584816874882635103586032799026779137045673049692700117073518665630784934100874942946178050376250901131997759722528391256556380953644370520555225411187938924438690128265650433624388749439767778679449386299613214778120556440379605495735468287759562105139760004450196026520955395368985713708177085736365106870364172314122856290003474957421306304352843503768047824132822273204978174550187433392843982475861362875169939602833512861696510979777819472236652916074725647920728313877542120305067031458515547431371836872338624823023946143782688874474297889925329133240742915716624126471482624576498553835844221791171934761107371117398602393892306568340835543413599982580520704984766512932838816327515575401958691658818177484324162623430274700405338474953455378217787268694359486861666832535703149501011661678079096314603433654587217664101086181773489662301727763379279378040105896780475905915029495176597413631651265677729206304166898138882395339493257578713482857100986824664919654078111477686546391693690427251952556570350953219747947959559476037020387263890777769239664238717676228061593072478995446457154331658629343750808728970025373223096102534561390523066774980185212484611016375762248380144347176104590376683442324445585067931626021474872851528847304455609974060436872685993827420449917957864355291411255566968375804707425254606195847573849340092690312990676497887925156493015491934221263403198758239897465385213909468516783387630846183496929649564339265756180052019715546964219962919901160132816123797695359000947113468573299953825755644271019071614852489458921304324241954781405352998610902290362031960296073982485274407840775179810315582856955898164996070131413983002257944996798299940650309789927375565135242599881074598002053270605053975593969585667158348989617005378835218409632795861897755425559713027646513134952909051667699912697608288220743854191849491783798026880779030814708272276200890065029117128888481863693357524237768592753541410933860354539639287911134889297144564964177151016856650101625605271363706808444400586739990020587694967162825124332069970161534164804984521113798073943492884437662518132843021246405238755152809463670104280015545424825307749496395383797034953133101814614333397858184462525120734829677502490737156612037631073329904102882239366212715882857962633054345326640149896828865868815755889532903825662300851434675132208420710105323944436231964197319922368429623117471516141640490832452688778983860330473304915687019101766609218040506306401966187025015494118545747430603105288051344628962996632248513394284278146242769134199207900503097610868387156848417481895919642529344659711533979579128642518266647328522472664372084699787124076698199445911508354733630395518442858481229461093129006373785531192105227055963785986571143159869796098670870143300929526239093233920428580582386858040139141702607275601738580656044166928424153114351606586331878500783164344342287508580864970243946343105229728076620055725095844264486808090521320287430213038007019577297895502868930455349804216817854247015210888612255170870422656026360991332070633818850028849230250233191655004105447798673208994135992268291429573785135351006120207433122031551691277211378956602565328157773455827119516523404327483434319789061608267827622810359535808004472862557729657183247029918521429252999835422667711923565408476116857423705636200316694198930371141383010249195922585076467578245772085674641695384121938833767505657104952830786715054439117404079384839290332799584612850110327495988455809412656206184559066300840235421543264520401193419551267933857651881928871381390549544801105331652014736459369305419354905915033175513663329310775459342241003863582942623394498707152699196458372131721155240733979477415442378439462409390608974293452230128584483013986012377204342369747512622046596492276126021901732855276366135365388409278229191648997755965633815836303585948432665584004709503289994574668781994273066191479362555703048941487491727996584251204638823993063892118488624464443900694058265646003421923296864963074352301616225144716667149552593562028183576024524603035345755543618707076566051923886191496365661863700250406730610768645784310758029950323752412275030301220641665253853932217701300545768621595234172940791617286864064807452858082876154947767623105350952992648340340193532547431462995924848442742456062602818308201957840931440459634926214609027261120221736252500936815983626678584710323600915815071282641043583360404885746609342915391673588560275049031722773187616508405120145832373810488180926629127167440366490293344260392757682641430817197503922452780361558237014985927527244307259075256265684077745844455880935706518850705039784804683789158123289734568041611409301066362405024211226920229991562754195320652119754747826101394529793370283378663638853955169298533549034235790721126611501858131156611957290350583618393727407465626805465517728860789392334910072370093975488395654404372951034097892364454267787717503893320416598195267055186448486508837347448541888677505302805333471933221002358046867535403745531699673777878135373405098593120646526165219086555785240395873959431030530018026877532850900324877276840112071943784027534649024064621728713614610691586835837671552772678581019928577116107912213075758880840503930630156764147408468992019109123223438173876493668169006912242109119325722834233771835629275740884831353219278851378811301138139496227518424535184721725396767080808869175095349566177931385396126614218117924597096332486444273531754610632331614663107433242359892273866473048920158183386507522023141104432233199542744951318270265844257818731122824479493629473739577321744409283688924968063012961990038179316495222668933741494831834673930423069585584968293204731946254751849982990357147350688303895593742827448008864742030474991575258791733499376891728441648970883233241521829647400494314545392471008956039000544385218477890608335813606264426374586075374559964121789985583785707698636014223737824082647299254826719403070047430051499162890713498791523534055974605381037103719613894374055365809307303781241580779017660249648450141132282875971415844824928023300545882244664886339982650202240190813396983818960048179604904744396586826977939038353725720695529544859744492548639107743040231263406332382643813991002614205508888139170542582730539317152188826929524859315088905203953081730854105990551616042144255532978652894739012876258901391365070383762792750249760706476450681447911636480358094753761419625794102356025016138244225228910138159569141128219577709485030107464668706269721193773436393811460177294203755490946285012649520238894204756367886145627025241763647247216101236125566663812241169287514714025924736968356160607768103553051174906597279641747121704030076316180391579553678844309765937943226616620914592724560363727813509991570608853735852039657849447478918724482016103840184239313813112566271891609154151488924164284504630210873369590221099389044430787325144933296379854322144610358482072523872706258567151149061324064798659406274855185776683497455046144614434930408058553691503862183189155093236656972563088151471554450561588828471623438879039546868872504659121567515905204944502598231485466503062793593004740828719398432010919753841294402754401526893923199011434596723076592862938862326345712950668428501327076201846369134012558519764897447515245369760485660614335143684958517337109786084606244429499766645730844339603209682389795514808352547671981177979716223703248175326170683831857640042206868909882351364080437551448120247928412863869443529128785294244468409214366360552218650063881628984430938335025359716818170102611756551419926515003034544948431499159621604866423394897640732758785493501576027102460119096323577234789604389871142134740630863487470331846030759232783232920300930059843244660165062859042500451062531492708203085728182707791762154320332264564250667301757901781765102986884232289402959698180054245797135487646390501941348386804874011690498344789483107295852954373972726216741432573326388978990159397351908529890758195808308029628837974245581007152297628968416719272060996880623201494007741155146768087195382828413921654646911787762930675882045529482686134901213556542708516233439634387561754618791521673456950232967556590076901551294001391226692048497834250882137814109318451134030661713425114360096907907550454609204368421607668372493091609064013648996738777780849306523344541088290677672693585762720350831754857768493201476238655468069620157371903235889603983243316135411547302910264557846349627923119239504339109333000061964962960864793588479388011232526472260397879887792846588263674535305118340147020615109181563843829887656361016689999847615485159250482907879119187546833720258805450440289493325800472321075772149952793065292027690643331960727325835773099706384033149624186966854557285954750138705144954395715392488253099932611918845753601540323238819007967633622842597601150295739479370624688723451481526179323542591832779543891605080323578664829308401997443908520854735388273294995289660227806220802765069124246877290634300279996859800661347435030056577091269171424119888494876058070791547272044235055015878294725266876845988438867390572575336913507756449909857266649724565638471730665827971162464320014773357628579925524974149567152111636926278911516167173559481398458466511833420923235499097121832209815098058988632114148124590044390086828567295632669668284212122652362440864356221176437540805517856540216597870688843909792276328934929877665684004755277899638448500672419782126097304506700100236588713614865101365029383369992747372917142388546267905729172452089848587197104804144086361267150935211110367261209859220201905392021323091455980680785941791762077412034397586211492305901284488659665161941558891205997312751190300157005801756826467691098324141406388934692664516034722756646484190816666250039703957136812887996335459397470411022820250685738132973903666487848268767252799149287516722584858056031417743030308812221491556171883635370660520646370681550218201736425185174017423691638309999171654657725863756912452460164919593862138588975287531614499152637159021391425730114040360898322942321766308365417375328341005117969149315525270513968898332967971256866853068806424610849790794986499904201222331075220129794690397556455735369814394868138891427186422376591163296036903473134714594606853215204306895583689235530746649377096280200719169016851945627620283347921374533133316999393430507922362610002472981191939871789443778328865562181555635187318681850924021566345044973380485679780663709629292113911983602920097246373828800339597103629489284214876771547039924522190346630187479304474435207408521574288141866034825325102416773841846302830083774346891064899248987816117484674138497801766853725658898213055569554262982487748535424091650102765071005753119443970361040606838496980004857166947024786173608905958590647588912354139125815667521318678778311657321297051305554239938088490219066797964381783232913458630652363406137179009003443640957215699237061579432089328184190117737359298026482259207837293324954306170233451447935401527076996115953408072358018785650953967833691842417239239860516372280727974199234453866675178068508415967809198753368114115519578823197307598465423194217070760165655064976699398410190140413809774819139126243109378866776404519878156193169846076199613931654745780238441112841534927042356308998371320143414723330905762952521685340570718557476138036123820025660030231636530008350805129833553955092499177090545625184656006271690631293525043541902817392408596763048690991540429131695456439906611761846385196431772151108798397428456866167410045645416122199690719091526817306136420695857224591760897430351000259614744211040695065186089708768360752856730744769422192176624626062687127666583324669741061835476239317219219838076051703474736673632613075114207209018188774430890528204967631042810955045683961223495266664664339888872865825303531813474377418390250341596126998979521726952167179653054485032575326601701926184541975103208046738967256188022378483259054840727518009741248313630902198258985189848436435777643003791390174793263110485055441811086290519836570426558221687041285747935690182378905822028672596762432039699290270394268498021484051608267661286108484333396123736192051697968924951652351439360466782833582674830391461645400567972339338096495160420362553720272751088277636858087784895418749744615770422407458523400484131500753090839155481393028034877631539602792770488683519739190967000234188031802139533733516386396525135900166014734832387283007767456410045167993671343756786155611865910548792164499499285026553927175561970270387260092501219072500616953325261346360394270666917651153664159463021943645507648814147611542813063174070771634117415381230259664495890217336620190036250413625248182291389944235904163360035533087057522097551624176596103956084769454968260865572234562805498542367508446283715308941601245369248406165352784130683094499931478814441215493592636330102785425350123786779572511989151687616951194984070464541875632896791228442244681662240961468786678432574365783285331429555217544547010475737121392734687696189809882731967838079773674550568875478099200015956936284595660728119955068291402544216311223560598931489567602720195567651985278159781911477881283139238972684336558584018600510733408495003234715126343643044100720850831893046331646187494256788989810748326996114066132667423938858214231876969852243936301867480369241948011769031902346385543800478650416303086837368664556441058493252603067008939372013007624489205447671669095280520663183699562503957855644324088048592135770232115066717209786731210996047883879269664664821062881691255436587147440967088788256123330507387018364713351039942108696191941228157993231787453600842624118152051244646210241621372975350368350361823324403774831435157393510150993103485253531987162484124696232590882978940454597218803756515296093748624094677855585747162941871774289179999499394258352004842676576418072269517866291698442054644221920232591685883083767669525467545882404661713567479142351194179092259561154845808826094484589487577592185496198527373102326545511152533883876023347211228951172567677776820330738567900615898386002091616481024234930790893677654698655820536033984698784386541573343210699870063617182895270340088061363234422795081126279449532478700030432761215725247684957552589097576113622785572893764022906105318510704151621416531714313034035845172551521089926916648947233966076764489648861192030402841226387672309882301687818043593028362018977167587671979993031764335025614882607145790420903621887898475535145004944727591664275953718354250871850088100181850366565610025071966241116341165894628544944113790293673465909476322349663499858437251822735216283791841492733106721475741601023975451431034995786973375225789663037919621334211732440425238695391720687153730950942390864513723012408903959184294144110903141766161186527256940554996985622287949006388835833646305370241300202562943027546713780850110821103452740416633524937895594754371095599346081372954786923322588695109122547594717477031029970466219050976865673483871087311940515969140516287939851083768230623938760846176412538393944645417706721497665491170914498549770300240467788857742071791319437444461419265392079348473862625487295742722595602716650380560314739230474515221415037140656035755301240330715987207411938704614372857658081374876756828738974872761132043968785655120883566152497093011589523407319613826967319148220809555908531914410553678270886356461550248820546035502643563030358163647619205319485927319729488186251891065439811786619985781239558949075831374242142190420683013851644074859545261703092541046270722504905238437046253121414558424482413343064065239237615875979451700184251583225153247684066768720573599479130506639906450110341253170403188898626370473187047049736891799003808128728630817862232896941967775515918860951461793660174241260686722192859292392997262305382917338203637039947438784907066557858006497713955464924882877872674605861253825111319737384729777307530563021042978729681098060248465992611961676058478376283495199717386452631457701160779263257955185687555630941080514680295513266348653590223189427100341827291453857143597196645888095883144411990753446423512308372540340941413784240034426329032926318695639196379286267796362265232713981934088364570306356297235342516048302230918422057606589610284039650481385678985367744393228306756529997552376231923380030888048345763428867780926880001128904486455089081589311437415605551042236204661799284303967674817050448006801921923139598228081115540703858597644794195424965292338567595490596231270344722211374582715739133779114902273497169614928488141400362949625071365811260140930029722649291863027155936172705301143041487988861775514922532014845617428100716134399497691398954151307023232783223798743807519027269124376821648682871535829820186248908183915042885282785652943622715788725509726090188761814165328566666147311128779082803037087020211442012880959495554638749510420651868619867650259862172390074140809837036740595459665823039305706124553185966147440576961433157629768412430706749351423801496309853209393485026834388966891296826089799756438995550278571336283721125150163689379462468389905949063375473084222340642098529627515091272125144324817252365115511774161443362189616110052748280058572592514444359237139041385655509481917366165468764033845658521798556548920601677727001705049933789055288943695679328332713349265691861215263446704656397542122209338087489316517125561715484869229900848317518287661369719633100019826509561290280041408203789761419239875543554006686608616508875914580180105408296921295966573769497029010882117722182827508873544117927905840668271703672357881532040948418708566403272798141537387150437071788742207546881110801933478116968517493896739295546739281021684625791874150694521171025883066993420133553848314398106912389887065393343045700139028246781382166649475292205487487466864677550436676896888863369934169533716799860790896076107962363507826010506769154146733090306299562977713061466171877773730731272287239604577226687810247454489867669015033752414405730198188544481746692496261802067786820208951365174923331993487588953520636509669786833471958167443400628748458312180514397933064609845854480045567396132742024599938487597056563977514640335870564529126365663259260136140836563142187642512554093789238907703272840324208944433062823260723674591403976117779210219301328794620057637827912258927209366049652938928953521080004151377164463537318292305271691543509347684706590224079862873702467004572725115372510585941082879457326968754936893873305543410271954861120738951769428021559722769466591494563881072118694321026519096690000207112378497900125749733195652593357032741463486526392677555439422559188372351214153151136816930542358964241906431301799062154451029851959287484623861388718445561393975557478177227213431607645889122176622331396854177241941822093359610164260801995819609040183039639655484793952196286792277466353928665558316478914648752303770125440593517972658261219599784079825970088935570752668453440225090757092746741071344181485081458239758913799619574807045534469020020332131885989888350647934663647047504005975249012333815806948686630991820785441314109318808411293041082483059131978867637733222808637539316036801128826675005157007486707075649659988598486853083521780377705985393831947429898385182440308528912694412631079636529742816643116072762108900333282180092090263418388710160135983175739587110784281359712998465881693693268102760863546112566237130943057848862157560680356919806397405254664749313843007991558718272316071798468228689042801818199692210221230431416276332950584859525826247845184759391678673453193093928524963321800012023726391201212850868071195885513830750587826050233247148034630063726713562716693006171703090297846490982828589559858222200105731601415390342649220540860307612313623636179627506941703688463698353848748564091756862082132867240719274642954694184087937601954542206512035071656014132925127199957820560526666742667002356057103906814335447454826847806833527230759065082972209396871632747654850786612780400863329163651916278031826454203548077224858652241822357850701180499792450293793799533912460104865185313266866356326588960764711573710541801064526754095230652162554081722278248345932637482822613874153812975838648332541268866912383215224612117883234159760562342854470034694916846084261005930181539773794984955292384367391528182703413287121021588961659418989647226213531044329811223935030151238517553939551342150470673082541356167792641933572521939153235420250124348062488746967265384061189492335494725355709278380476798600790135216969820795928329893990376768993014693117135335086777102798397043323122772309041355661230631497078492932586954157897759602890805372604799549961883647282574312754472669413122733737486051921624372980326894699657543628858991993395911909111818634692621350998275164994110745988195913500324768721880150826086090541952599657179517212853892533960742471261361547214334460479781631781663388469015971584114127757997933140636372052052560591050629691991240409304814934316113063123159172645941838073074181756014814549187520549497148362247326060419090971891274479969483980641109381621358107409001137153805023460882718483684343191624853123926523717582730292257248385107917317757238277396731373994183624923269460907502656317368642547105207531942181997482110751633728606796050948654656017201438667484902432451446072049637570708067659493849416575994421391090260099216411583410839779553604188841806942726944082922089800497357626257588694753648770255698079769011585523744567421737150965926527732034664279019486470371649443668411179878465191868391992511249683518335379343711525314343379980459821518201147980122549795878184928617115617284128791385896722839825368902685767319358995580742592053013561061648012920680878200446188502569383887877944033300189004358013746158446095902341785432610310541129199518940450592656325859954578902829554279694813587193971769934197780617072764298147588158487753324361988947241626021458521895302360076814105136579745674426489324820257169549701007068649719096125146976617303989368159551998223725126185919120339260134930093163121432948304544708971447646727674134108211550804630251348645256616300121315261248331773125783987944421835261899659807121625422371008518265868744645416287885463963398916781318047391919132287122626076968284661397671030806393201599031771915098573044995501664615855054472264995125741257871673040083209009309330807392624749387123946022528476941110746834410192963733929131340948116367251973294445472001396564666063549109072838588036617703239913270786449581261585862853720281879053197942430335978897553014686482839275432871171810369442598913547769823772469479286184450414058141364378282064975790329795677990094418032936988703224020339947790406001840927192209712004945173350013176786505034596076975236625424233781558773258546876828295154781874998196797545336311984115095355162704407293078415916568727686819416139820446005904778659098326071277659359882924806254181603294324148721298385731119063902114654889719108434546850808013715347947278312165420193485912197498460033153723653813380109134297342032971288258134038585262709662612799768229757251026011571280430957760783723192946199896320241344375834126619074941514126838030086687987076206413537530971100514671992340918368689741892007305510861586755317221639185347263658092593873177512807115379731412923981141182967918208389242367704297550370897120514171853304867568514186445265287783378337449500540345383254147428413665299471782352883394870629099049579174536068544782157516824177846757314113536111789554409097430319777039943242417960260334426579149494193947994390700644461737013757417363882158840919870002525369169510871048012929491835105903648746701607831253737217482924966807268554912645465825249419913038505352607743199525861070462766762959621588135072535990915808639054867232306418104890263205866641981929030045944155338979555397828972572054608373446378029365042229155517944642151396034749679514526275789328095214798283427694356829312117601793929551552082549828926764357161241726950783366233531239188998785976038352464767657103659045588316656740224074589425414137656744064646327157987355772039271667534098940926414579864607226366731253392882331816105786263541977846398399589636429282652577110510415653538464450372253271840223698396535040041948378060648734594982002565475215349937473659478821190409893685389903505474843231568333922673594913246042456505517648410943784951208365126478260229865902218746758740754910690811065767154434342932762077470850759110065613250445575111770185863475566919347138791587228619232400974151492308706530406376714200136454536861105328641223283072404734483205550648659802394046337836947533032754047339141136473942176529091661033120011462252707039309965719241313278350642690140874271938595791985869892291529049809914889764936133418685775377077341071124399112645153072954565563551361511617715178046785201330134213856144496027894492383403231368819665434379019726670348929758568017822886304169693417512167001193737863869157525811154890498827078451842391494627582529469873593362747394962241892459610558528569447815262045384235198657412223599242759001943869058099384568884753765502112227331717380771968622316708748573831577406089114993094044330715561908788668499269874465010657301241807215703539053314912485875663461410060341000637081101355766275198545795851788279530630604144247850882423034404934452238854288553565549208419653888756102110101785134037362814819328559933518890151590529032409701550300390220089231464006573695235936709142808518131564588380315454835264126459463945376476028664477482753837313193461500727928803261708506446030291933652702137436599338091521035513356267666726871193963156641017836537416491918101584575174932263334387298183538071484669573522989201218286401471227067914419717699952208189336974754172886613114261710329254987202447804274012403281182141273314550913650896036439570512927257547037611932053650180403430613876474174779545256930928458611014657611341813888794438867724092719011405865927874430783744593866952973806676682100688949700984908294634086470418928285426760002468459608110714093835677428935240279990108599329550075683038920304459865018761533085132369734828290612510330848488877925156259860449043814315071298331197989269472729421846333866956465627712808521524838186080444055410287258083581623054429824241189373159021700759929004106357194624912919519325031942382534512170198318911943266106296676867156508129797734514208071580593199836882762326039996359181450338090261963264071261519875457336780110133584785683817250803118948907520502648607128085019257479016587562700997767398819819680261984321457810400553425418023696524170887588985246661128797623697804165515041526034064004785490325945463047994693551849737182688635245170128879601090883548233133250254333822538316937571815277583715393394708376137805275215105349694550878209100561769924168501132067141241358972731181963312549071681907715346983666762597288484883670290288571101763144683250494046903603542763584162212096452809686657986141129991567315267871289565142962197546071122657357205626464894603726326579140675448773668943454797460714770353283676426828224259966273645680785484828573605906154392406096124393392711935400089850889946111612112753258961130026207736207867491353010346347706226228500849667261251248734184777703910276929206871294381268229803963985638857127621828697078564060070504403319366551623996949180660218200338475774864250583880884704140691965657815364557438149016629791152321258061969420912122116004724154102335352178958325291685958468311296391780158648728224083929155574925889042118156967662208302069570074458814571360108200567232963773177778640862240384884016979221419550548077548983215301649477011802922953767441123775444747397256788668897315251768439160993915882773736362204948837782526605066105636581038907791635456456640965727184639497473202670427031590971367508039409653349196511321994864832691029530979544749016939874503120521002002524264852117588823491889797190572405287767397245328803186050146675272129035954164951567588361335198741215323814745982967863459318549335593111473340704737132251289548350439542906213074581198804203862517274433003359948401858274183647497015975975676139391640619535524003283570054444730060115903038841859484591175889742429853991011352670934850117349555817209398404358171167157153741660205785955726599808385399159395594855426447005214999111170479364016335682066609217438325847854061459921650634473481505302476028591619141697183238311795992088473134625758502552015692276109322742033741893020704695725932965912912933466224426701929991267265455556981267785834091644705396738037796296619044917538793766146263313038431713161850148283708542402874011608759753013459034137064829879919337087918279484464032798724490064906179053556284891259721819584353488621138858732016812549847346009865096859242913167030861198170905842392056667548727028243916302596024806636460834152922629217276299115128060564563023222906534466048107818233801530986931764649196542102196426616072776404314799776781254826298217114956163289806399094925355942149470014644672047224663686506608111127046863275022529485349394140208490575441721800304235796685861425463092999241832100011164342182913670343886164239040885295058653679974210516224379879754746157891002682633374288846644540218056605051631275888150293200578625428103595816825508373137402308374932419306066449724360895639215778012129352419090556474114643105288285779378244346677727819786821408583363764685845608293126750994091764686110450963440943981550791470269396322995132088449095016435493521562439419114150429813210019745672303973805273469890052394314688387361774092434278513866301210122668716866494438415251843236842234056718522220201768946055621782946874291629473114358750654884515810301319991278952382295803334739878523051244702019259400194461206659794759833937141338210713754073651190048394207290451122463536832834248444300747478073132122468232184703602768646179877650536434250901970688216681753156271279652485973843036677949465160846939075551736797039224176247989416393451047293981221814612175282536325876383316648855295789234181843866923926361327335475489355560733630363141238885097567351783019727807780312516955368126275755442808542163347426580541994569783205523087072996349748165701797344695613283183055698321268207769076005643274247126421651536763431540590777477234178907617306052975623821414300195147579578871931108673300257547179040321864015179394856772114571828987369056291627172401018971347434212075642913910198943031867137852379260158156429960377177366036948577120216573409196909368258558746838606337705174215738773517915593911083980922390728911752434512946360437561456026384955485331902260647803159381120387539794329488213166624477522679332807947713356657569623578289145869457732121824446490023506199014128934603706252350642497805461287271253945216665794315733961702944829628304125353170892453211100820988552391736022820515040106725850310891849980694457833371382886736327069944891629023707378992201195938403997553967171758148239710316869673924526561719282081668094403405558219507968187787304718692031632251165392443025972510490196101533339222255874160820541106833603674122318721044180161791319274967323755484767522224967981890262730498465190513990179323140179286628956642232724871744554663188371342206821280552457386097148252548723110614584164141116843050302027406972382069337795297776748332535089610155919581813993031751298527606052780211376868602441582313658033904847610250776164481836269733882890627639059328950662030381587403710808506862340614431952161814477611306915312809765274427828342569916262696623554731799692439659947959688062288747375856689138087792323417188363471680684620726764499773206697013512909066713411762043219908454957084411182842710966859927016566412243829486666610282653386148722194387536568871438870230498571895202335381359484709409543808087525959046492609635983280417745935817579082068454494331676594024442446667380458588247030399205686590699321892583805713803554325333150376670595208271151633218434208018605658330369145240450971264978640667861124295931873186180602300405139821328793307237888418653623628232385568982436453167685866966533790170721180879206046563855154511093645395825327940422511952512830619423650386869197192491902392045399975687590206987495973382228351598392035406762136159141961396095070240997486709992060013866524355766701476820535639369678233935359384030618661125248815667348700894700578901448671599177967390092922242354431133321091202338198350375968844830842632264087963600491779469852666141891151930824011868383918596273756285617318610456822773621002522262424871541936940435522342873309877551676485993556383443187645470133898145603373819447416763042324301246559635281295390389181493749345080699290690690844805946596081268213005236090379410242009714285567936318740495489488114409597293869418304300655840200838647035953245945198004407205013756374362167755134137615231267469199163941009582990497391804954765755258487214671746543207098273499145717859406080814727285901692612857948433318360063322164343903656260222758514828779773218330755621125157836360692739390122108677162605321171329534013432859173995998991312852879084772160729260934477350042495142339396880471755697746705014516363821981883161308285193230650605675788132767196053377625682545261787096547398009510204348138900177262370620938766144902591019374901944342257760269893595372722724934924544102808569916718782527976559510816733038631188931344496807402560156726120135579413426469767134389246339038199353093316049164748712304675043573106899980275894608039141830880468563665751617959951492165954175861331577387456622168005228201930664633602498314076952329774587721412647247956476435094935941413487984661391326046735511059574133031116959945917212172903342205813323357918540109903796484028207447266790414179283442328792117298953473681470583899012542139610272931577629612180896178313434366046456107102440376831577483832805331636217833674618086614010255307520679182019951222876727664275113811479361098232665082310498801503148926345432150084189283855981576047119057067830030730737991666368953936074764918776346404248435938606550940436974184811264581804549613240198039014091077986857417098198278185490803710940236545635399694036601123991656757986893202943381016763794916068587905448279765214077160436213258956660907267521233152001472596898497598478541751697592483487233545195510049557621021275292514726846297806713133637366546430827847438620377548444154335484902194920812865917114434237648656314811659079929610735834599723200845318383324998793829184188669750387700257581563570567016854761789974689657721482863075954325167844608626573566959629825947822921446829015579234573598915776993889627627577415270419883432309845944221310792002465053913430563831060978732739750834756040419408503383525390400231671021909455724044487488322367310417091601149314865301503242962557931702980660081048764177323501963505330737760099661903840825163869018418303380406867498836323606283572997650263984209063478096987641641939740738068800885464785526915602797259706935500351912828014478480114714587710684458170396567329295807856367941809605456615934832974446555016187296186217144344955794516769407157920450436500644807738805247073443946789825999320129205420385713726290662908534299961743466223217051857108619809436461745412202475026132636680562751047227196885750080514794915158343209753272179908858274660914105895300643758331540000484516208052960176377798208322029600247067055562185617212633732970663874136716871912587793254728282055173104957796614827346055642404168760520126856809308198763317761878231093544522818932622867826501287870724311919880042704605712264599652046082124011588436097987537329172082218136184572841197442260778001950761351508760251357126360251927528451341199069620455018332412743504330480689006365718150130928648654965086525980955744089509007090733731842226163858827156520773812986977916084105516872481410591313574064949808892734186753652178730812332180081307711328242493278328038487682342622132765658970281593881036141515518245736546354028328609523426995651936921421746240358026799248523407237714624383663371477964316580082873308846137439859528106040601352842915739361399370023312936656586445038754857580129325496999736912584480072330819714938356062527055195858240692802698817654619320257169366804097818970364054138129516101265267029355884476303957584683344085356583020792852274278075979678196303470024982059488312318992340089043669108776303040699174008364266231852190101032891008142438758044041199249821564724152509826217574623519420589543957448534584016885792535691089571256003236732428255146263121015086576544171627268750423993156803487765708355277504891124672628355452113609624390153695218398370881919205094837226947342829412784519804009708344260008876650162084633442082417430092495774417466170104387721380456876050388211557564422477066562722521052846302478975724166229195786874723956205266950646343301145605758260833685506610864703138087666536086580083128292208845371277427369593621928819597059091496216849076079337344118869687289267736140023926099819596172940975442749472202703599258726539192678367470798083201226577527523737486177879668489921016680039225192594281269428743613408402853995447123662283745733887325032713210785726817645034999195065627836252817863069732916760251620853123531580192289603395890375592889159708114769108175365795874851874575481753066334772544566934570520999404407779075687246409758921641888964655395664372593167835091232833296124100277935909220553954397507936711726335367432278035304091841054761395245092911547151867691987097544850537084572280232234424149556129720210947976001547153244868842725083080236584057013228694921298219048748365059491544204204237067920819634968049738444176968759714479616669551946922257139966608145544410455344231971526344030932931378551778636820414039143031782325818269412943617333899855437219875678273759462185602986732699388085717452087813362530536910005370547755531506624650155997640597557334436452768641605137745531287750084079706253635774297603084932124130690408193265198223833727294375159928420163272806847299530178516681250557767103027875708193183332275169669910947810359286801227435216038037465125774958205630584431666210810091814141880727034994771579058218286961605161958819366413997093918087698139263079861371704655375331953363564804208032674248181083570589403715225260025875419734901211319386379589765066819105468030131325247251819046511329631352344019391458461375389434204192237247856418622831321735014192173668181870273946108570050635415878315715549341337119238249936135539258717926767250232315074824454400681213781292091193735921914666999004485874723942906074900001124060260809392969997387299051230888104309673067132603425934725302208942274751955866842780095384433909804153417400755078946045858608634642111967008291232814016519786442571890470280310863831124585421721371037612279779951247213160630178563745869630822221585657580172918517623688808002483849742310489428478122648000714839416364789261785489771167240354728694931486916006515860700414185150536121860236350360877465127247404263221902493700439852377162191900091224879535459690634533559114349319239934948678821753398158850930658852593757539106321902063400160604849910793837372837499435104220404266671489999184493381738962644765099285356217408959514442544397606985097797850208243823670204947748177996855787082141850506106996732838170418394003933112064158363095934951034087029259158812159359831837593672210427011152645605447590768801126187415582199493753954826263838465902401563597083010631127356414024845335782685837156557786897253332106421658893938986135615097998780599284398696405338794991659679046238634940748859669654315819328894551495128274458746805335733188087921967303677046995116141908361876519085073663139334144379611350789778716068519868939928128966995750095352696439758307153801123542525471655032314404469294809393783480216894345045040123944977672762820576942074522998474170826503279155670866054693628951412441693907061087509335196988224438947779206965641218142445245306649969501878953663212407203143251107732947099696221757521651140954107988692812127191426863280342790258180733669714798460026521422359508882071477280237747735439883119394397033797498648670033018612455732111816052883726704041590592337149578390692328762442437006865217349456237782943991755888189152669566756453008340899452487531035178772340906216586915036930377442310029974828722574794264157480602054094981436888928268752803896092491890551399926039976987944603096261063799560683280353912620066263659161035101710566797422452487314486519055443562769461008759817045805202773744853524028191056823736142271761089070435591959867096927727446661408458234555013035835108846447029030939358091022976063466382902963489177340103333052014875752511780859863274130743897067764559332996376493497886889064505256434297113283023332932909649140469182228666636748606929987930487619403700403392525734446377808910122938860039335263186679663405530346580661849173769985330695565154866405703693097743844295001577583427191311178745700995574240043793049732594710729373900487198120135410110812349698613082368385225546790371829099640806403047349935678617689258297480586088603465194660311244422777189100951965238556025276647261566215330033564080181022127506491363597245099263838177745022420168656401369980970708878398637016321095765095907241695711365842841388543361640139194463869929561555784203983118573085139046779176462875435024071552416226717277523407611018451125287724878050540469420378452097418641097620875237169350987801640885036953038250198080292874515208615630666682756334287432106645163522897265738968666588513217509957887863428135361193303948766032754396765535668263013909781374735792267608790279808425476427105030590016429063569777622926761143211133472354673375425508124952590805466319181759512397396056456095535117844811162747913887392839758813870882858452512815896692312675976389673596787675331256198771186466367004925108364700043826089967104361285760571005936400510505436795195760003703198726430525578627557297212878708451954237579801210443132559067156790447252214909618400466653855749570395286102153918410222206687622792913747731706316909421715171099479946704801920296508529214228650138678406519251256867405769654021190273591410192477762238387545186450447813622137313929808162552284474136254966389385634233502993624268231617684129738379654672915857861640161023521068804646230523649848627263642770409562007062829629338131873080351782255125621801464429698645253801159966478866157725885537484718604574344006004745125605372456534899200336011930792629655391012658687402264265677735635003890435366175121826189803503635281237377235669219353959222230304905762773309360209518651027890979837602330919706279290222832862645156855292699210960948825120484612342165128901226161563936596530243014685859144913427532586184048725278497637111056197824891382496854488995776431111603004257155064430645875868900886034355276709833288874254168820543220659590259466811799391474444496638034263674393235150297106666754462641193895619936654340230481354581636322654048279307918754290519254044305735628246192748390278034704902058713154554666713116635788996043662443673919215579822339081015806261539375421797569360926363358396285287163162744770587021178480200733983099824408811889845765528249659419344938014203953399996876514386705633537525763470730223889078720465154662591065473603245868176506566421084109678091380278592669825950713072230531137505786610272933690612436154512451406393211171094689605891664033962995489231460418092041516725003195745236144581501290289915303295012467287021398231884399340287713205087264441731251375663287722353073126960161084442828132207883292812111257640952402546650281298828229978106379357599531899943398550677590797423242997153116129414137793562619578575029097574914510508590136413978625428130992149430356958947106208860404092788534432633401825503842330731841756557583302370653182345382276345854326320630692284967648227158310147111254457292312261157337143349578875393260808743846529647884389929143938079098396510117173784609711912210982717936966444486524142877308449407820775873662451342372153808076953568505631686799981742298777501513476572517524579423225559510928255815590998218599658361923211095407379796449633540007587958693502177676384198599999065559141094209816651465156094921639922706042170845528304781379272997131012087188942348186453642053190047468958380478066697771033187750157382563500661099511865149007108830239800910379401017961223254182774617310003574399714891048025068224485768117170280453086446776945341848463199464317568513406290188073708226855073309082805751552284689511606542347342882689144010076551333774128077490319494669496145440406708955772512037867650669731830992950939993666964944823786321123898116857553775790666972884898605044249494106991626309161429060355525062366642719390257931360928375345969856454678999313453122219575402270261071223889632270983186338452590222887726931391343339949957481127840735568453945903764701300119198673011264984319945782723373256985210114592388239644026330284094100715034131724191058783725476540233315735531357687629418901290046397467686835794873308228857643959227405309706326453509755096165853677030189034653117671027716353545791518100034169396171854865382586078946652098560260404013560039159224030184889706173367829691399025808091691186048935169678975463389692252666684837893811513816825277329217309970000693690883188738384152455243738436315411318503136073798627375964887894553598884709763943914983198040155801093030277916714391181626916277374439928805607333261179539725961614974891398719154683302843803648352494469827930188498655142432628348625585482228193946321863888189782228625997095573822750019731744794609626291853064298677007333930655785197001664775882239318674746803740128358281860724387501077568006739334641446598510329654565369290477555631644409086018397896341586487961410355486674243481614242420770551686679821555710147330251036448656194488825534991946103626356434878427030485208893025103771559127590189657565989722008911343943168730254286053211414551369322778319265305529586140120118790754692577579273109394040033490272846140137993886773641964560833267292548541368962338785145413094985211670641736737771503034800185239324488724716327084575249320502717179020725590785332583835869547785051714493934534053425892414989765803452882894310557507564608574086858576231845657881216447439258437856468549975239294843076165650331382267232910231305724601963550184556907627374640066595487220029821384670761457460260516207423357471763466327517691120496795991996186462979549371656588526406659217430872869109195900544926772458665121477206571901902630753460758760440473737048412155415451949699079363341488143885393873032523302693781286083977981251146456859839510682322897855130134484803374363722062375596112203484854307478613127923627302211751448571016856388273091826592460440001143200983873396624947781173567044861939738468708088730466624067579692745976146233419342154713872611218694529363769913062461663435031941361466617217161867528777784163782733994684759566529626297230373607838087650574051806281175868121348624121638129645065975764795458748461789727898332989163825496485075358798273228657061739953664067255055651697592703256813044571865151195911887072387384253650712365830860087080116377395684389803524048460522178472861715452349703221918307843593593469737386781679545590721663166009732612379069565554979065032807201861315235125588905722036308654031875653688431575459835747985903429676812174844945884541559463087266289592162045252500751324001313112094887839844716927229741581790194909451417281638693762611499550101355396753645398604694978431943504932215661725582058968471224568120156601410083294379850830003021228448974152447325011977117012895302014492485440781628541741463886224481549935896175008772485767520118441361309729377249533960913847329858962262360576248352027706180095319078223945687662624359170190271634584259116481125558576794246827478163129073993738675675356184427380485317622909289826318053036924683392629896558061723500008035587336970603073743471817091269016800095943566098773750570230559077386587330644946622101741741382824233048296963549436872592236755977117564813536491094044966938344988545544453943101553301394939417362430415212284642095004143522263940500560484249920462740867439924401695283691623494619839321694431555287067612950552338036787256418803037039686581679432611225771435274769886125526369370700000651793298722966183385307366073560859707566944358019336935083923153384203539229296661609577442217610352738157981671171486325127129152400468684460500353439174183902289723131938711316163588459541587095891467530130708568397092675574672660309988856472964504514171639181500643735006737729579211656631127855605670517958582570243873754905606953411027587772370768214544491838826679299044923694492828734203474166010567687076967714996372175949945269379099550455301140675691487117896502168257434830224944220855362202806009723695646856363231705926823982873148218424906720630116817116950386245246437830864328026900202873164610879806997271965311865920487790463812159465425613028213862926832400550205578686002216285009806798068912936641616061348403063387401582297836449007694861273202236143401542928702358901554750010187115638449752438925921534517865756750349572610351853801192637714966617993140095660830715552905198948470763906549886277847913323879806035838405187511119522084250441891151628602540968974319098069065312307309939806327581114564488571211637361427082819702540060067717864850737427983813677835409911696718835447229090928130454840792793365536683770297093088542074761928899028590510246781762824065997790960919741526582834962505447383159632909056225281308780999914466146372465557077432227466711474909127726418921033174772151102524667815605426948479690359336728556458467158369210361005083318030851446990839041880377916202592174839249975928240761781959201865951167096656899701253890707834772142612922326624672124851872376323567921491053996247722839623419723528403250099511195979697533463989088629682706687069021548706557426601730686081237835769723600025785562088561551002761582434293677215208657381636782828248732612589511709966684608466363407556356502790623746144405356975807394656810257823476378786249993400039479714151679169709932432408925878151807261715657182033001065719837526574973704539168293324030878813529270670641190043602318339965235989624041325186789848415483796535523973498505959795870802726007366847021290980894321008436305234872811700064759162161485888923130507832917561090032198079128882520359968758180498253365162467446441070838318342153793760542168326757714364336958272489857999371547239954994742191690533590950532541077738563348372054945532130065510719536546625007022887869461420505535409563932839561567445503242816711429382268006193061411571029518395021870527677907029447783828183113247108559601662299664955416715748132332649987295694481808111019506396511895971221146965688919719965632851495837589409482063773630857569610039775501881554890816020923315405446228541538095585812278646878559227048109296513614892297874293181322554551077609162669033364522628968068875411488533726013559957863820505010061024430596973786612398112779373074069543175739243876950711612060397993948775292408357630665136689955440147355029793473139368116099433438883350947281094118584700180937921466517627718695963534409504251183812586642975258030859319072405726182399388948080067111769880022105782960708867387921761605382203660973992618375911919180062326105335536474557947574364925705180481203734264962238191650804885278872373823248963174261200307239959333265526013802567914851426116543437964629007647407725336478631600572352483926694281061364331013959811754566168269730113872670586912898260067798578040529671228844890600209181281863725787381211200810412361819251621897449487477480307392830888605041209651585782561044844937669212351722345183405796407125500458114440405998341858079006312393135166624894050842792890368528708005168738920877475566271882412494878691005479576244761048635424604991945648496895086218804581769579705431424212947047937110761669139428044338647893217277493168889799785547312145013147472646849448051331038221029249146892582919037438711441093107412002740132540340374134637803207248286502994475864486774622136225827672800091234935172412877136181378975188979686875356470084289267632403602565597955183167738106437314983340902505214643569882699908231872172679713855498997303496091778323252628716191240081650019380430324358001321413563335152358711753802167589910626494910301871332054178005941965746869181872800323957332281919946521699208315453943024858954181893080597208295096545037963731752730758269318213517780616112800656547773154293814524962577419438195985210349683775135451950640395379089840338757622774560422541964674101881576179936668030279641046575732032814172948407010925491035535685048641748426150911268084973680041943567605138691828934435205024278309767806402040615734574800135543334783098894499563961843090468903665526924923520722273753185112354576743580793372035151668651327716635939635316758142313189840219714909225673005868056960970434963408254413961843483941849489269531209874473626532437081978779971694817171250631725111249289280563268903810030977374875937348613565983267773675356193465004987777031923415828971847536577444098245995193203416016859740172171752431651491727779463865140584055025765296691796071153287855296916356161223404318517753050590591862569104776591932465565932390431853254137316086901075159648685592080047680324305629234406773338377962358408043186045546875866133603913664749625472114668083981706604138970421649747303053364344554942198781258541365599954499312705013702851358828028505430495135680964749073515710938416028405272321671176806443648463286938134880909861322532334083476296550061416440832625300262684267804060617614926882418082678315676467395562628777402350688915482717468036642016639863539362262923356547902705564284676938750824457082579808315627778508096420555623310718942845431018213848566214160461565010527992731772362156086747883442480348867838687575978761426964203971472890911705932160134197742774306067312920413751131964663275929747892983793751733318135511520090580441514795670268352723285730737052955121061536504080848174724510940568890562672334140210675664623551370259044829367872143024974406180294828940385416009108010389312679361662957412838540490558181451603600608920470360728931470971180058074550083899376321369558156395777071186342309663447451750514866272492359016196123432914650611550648325753963720499864952262453672744733503558041168260052104122595159583729968420704845827682024630098538968845612955376160773917828327310531502011135366711192148784323321455083461292131611410225901093496528049766164256515242137168813618669916864627878835889140083037522682392926132339785134652668229134927509972001239009429942478283295827774642317099047580264226610804393200271207019520149562272478512986953327397112047515111792421362805411674396650305009163252789582634371261215948536167539096466055881274884451663869352903814513526062638668312833518218679582410756643373832544947610476111672974823301504493650577600958801029383270557112147889447955311677940768582114000877823237988645261361971314215528182389073140774327203773125586749149644159049987682432089687932994784484117031128459323497428523302495652279647135002967238805379449207823897880810946984741638486805149177634499306349135644187790604128789363074344946014523469115515641815985488941267289931932938527296496692517158536669756432557092498346858312621093222009773244673019711912810004676523120493823441142314330016960890345934573680465281927652688295357480468594765575815831645435088063374722301982499978686059060383807206205347709718279143034220406488258519239016076527550886103019471708602367229298231529155567648884230404710548843632674132924200924876298852185331897024904275142640408474289749964488041959420433260747613917637441963899734303839442670300875544723178543600267413593376073143652321401821409146061140686578928092825342419907655342858318451053095634040489342421673609790455396757908289529628712721355057571926098269828761128784265214180186888610707247425821303815909662769817092929402021944548238443356573536697374630346974757354439531477248773629860439313483394875691883472528479304722423675672599230009890202014708792353946606539707140728709620924579333068846334496840640162220167987389153174981779834821928601109206640937297929667141215516440519942638552093021950821594461204583489682244382773400254349283663006916437539534183601550553213066522977995611749928600352678916427207625193750234606788043564438816945371275196510620152777405453406553527438573062411902195867158953622449272771807919920237952823118434759374555428358755303963956194478210848521739362835460845799426571006032439613873846079427029160819743332672266268825727289076585623040484048646011310206250206779728252215245137784827193026978935847688346037319812756851413054185060653568314966714352856092038950657156833289814046374313027243733777524618779164409958765903663133057401909093456718758100126847779733787344415503171047846003469261687826863642104198556417378195960654438592329732406768949837323472492183857925727705430342152344221366148410488639204657280137520685307470339333367319005961694858108110136664362115612020368239752700109972366305268577766158785558144217309651163275396325382758001915189976342527845756499013743277864570276211172667797901693471575630695769115569183481276159953942029783878844535025989116921138768628689355911076463840888554396722932344103890704467076663891949944804574645850718252036594882142937211027659003485677564224321051704478331156556945299721209855103544693748143983548126520754555080742904127541932274730789395392336491292419591895310486091661212959325673575744754739474360063497746665604798979117670730145129322520574002128719000060293598306129196233218692083909233983658538338952440418163266705197196556670753490276660864437350349211117275879442128643826952592802084474818141610117534016279937283528818025051942742379317352710933034313506822358050895291484759447957577406671798440551077949272702096537403013681238757199380481058123725479648571903021296190907351140518866585313695938899983302846480009904682234151411656914949414725863657508834462862176940939586887182367666997092184138274779707939968496362649228423869414351429799953466721580025136008373068839003759203882773104607876496047723838640019275602843692582843062664418563007771396441449405370114954993148173248895587836530085427221372632334951619254799307024933635429500327999288994862883807964681663700549090688519161195627240519736363322690494127137214824410509040604154588139163482088034271599063502589736507131642084841803404328495889711908091919201089334319974183997037284792801951915061849847612707145227154303071102015390501258073170390033310287150497718707063092317640652167251990535044026493085927390343260471471743963545460406237427458295072115217984152199560327494658113458873048843423569802735081287960271364417574046613073532018611341066469916231623037093843958299379620020711783567230161328621626449625387602805706991737142671032684353880678433186725787260908521459928687687989417669775295800093428505375115999799182055353046762584006493658769790288928487495690948492037253565592001972220916306455531919051200466686958217107455763631597365895443393364255233223384432466241751917736463435958488555522029326314070895342328232958483106768228744445182618265118100336907474445689355731129509215782554978937383577419285980637983647239021868976524837113778652614433703339491130172216007151598711268158346796420028004395463529876659933652089393141724184313270738283329634791946002976534182609745731218984883989009776795855021579492268268044426609940772276186062835025366779274638466602401113572230093401386909172446972885741907207569216022212932725847892498397452923222941675591317833332108377885388987667711639654631348970748423671372101909209597783144093805614703495050844027505813305076844141003788185030681191927310852191157737526880897071664331782066433350453878410846377746506538495151536663283180572568011143600331589322448651271809286488179859495383886447461482724806786469817045938363700151719576423077172902199030268540881804390583073839898156094138142473133918484500167058202599318336303541846133634750775427362343297449061366437577998083680876790989746794810990680191675301910669755473266753769585822099480173946729087759933326083582167824992697530495990191008188546961306312576871198882002452802770626387429989466066736302588398946316094981221576863022179990666561848302899696664820162350610809706947100258196196446128868938967815263199261785235292983858158096480355874952811738466610659596081835994467446397316149420146817884654331828305726897698350790288589623633913494993229112202425684555775573322705950905686135637064605851207693605119937087990586089924641694357075601280611489645646357235961503306697380747287292338241547338624581712451034765285129288571976163534404349381323324161129926493494440945690674132403750411694932537065973590983849682033258523349971019318442694435985279176588613216459812270559135844432502569892244949742991992865879121319839493940046897788726155092369328305558145938780978128746898789558886091867673439532198582353015536963283129735263178133695075917282997000457476483976789692606223384537680932225716940727231523934531521318307150464672512046345321463412562897466864979028814618197809652940845055044502544781791940003123439620385134169463800382190038835778261656670731880614187105665939788879037396101481938520616129282838236383112531408500258951511108894767018400342583021676168463987257949882947833876105754704715048854517107861864955329226427710384391561312855343046249964706486129003452125612486611728632474840735260914828881082140275241991113298140931465564172162165334438964406554811329490929816302263912165993743483025141153512956642065849490623883256270683050321682978461121357154081204256565782665385030752782940774626885419722089053629728836928264778120957075342341106456700881919239294776176670396267653987607604120060386050762140987791354626790364037610246136508571308810237953784544857063931273336372083137782299835787717073579468071675476895327028292470872287105559609202984250113751369333141459305094162770301904101156111963293133363147233314526091688299168425631175184401018238803086566180736713003923838212242529869337578079985209452278287964043601174948375060876393033226692605779138291779463495551812490576438432736444688957472489970279586286624336808883917992058671635987813225764084665495961011035779894051032276014191000494853909190624572265410872005062295739295142930826396840037215169701815754943521848681159018586374793652486924202976564879622873555995250140999302020774256590950612904712626283148062253342736472262112203040314066444961833985178908061385312818397339895515519791062602579667075726326524481343184395542638493448220246720013135071717004206311647289831094235126160325389061273961981768319922078262626448530215723836779924300371043969931084728370974089417515441927944239428248684872472862246078453530572467482958377358580329546368752901757253401522590678250874968787654499103536197726990566159777695344096945213645619102723570229633819701400672662683144300840727535666868219119507235227623311507632771378962512417875832545066016894418876729014669412114234777225340250542667770813251067862592050799457049964596300179353600057955853560549022813828348325667396146644235143587153208305512418786997295398294927964279075286499146667360070722876970125522241843804002533733636297684781314034494673597008524003177396534121358014937150718301691548955236492150225590875585304056485619464075879547579862641734582244352118707567175088543766930503531019609194461476964085853117360190121248095793412619102792457000211420093980595828791546320462158178796401775567582188508947803858534514809417762940709125512336500568752779236264778610755105509742879186817255551639890709440754601573744152104339065265455190689013294893708998946419948966105778803316081994156384998115004294125918459946651451163756250741054768026435669285336684027868894857767363383928052594720380650472235982461486859380029735906346589185612865270448611968091974489621241268268851989959955159488271296065928308236497676224943672717351834551882700765547420417954252857964759336642935332061025792706671349972558273474262037114950960532624117471990910792760155631329857570227253694474872331051334388408628106129609394434455052170797203662008739196411619807301346250002907358698217895067261341384771382781899741526172294827285554866076873492938250620152817682389504962028817405723544875316061817071566919116849309771345469081642043332054165728221974642891168382572310490554074108764894959324955446210486641666755607048182233623928425038476276924180044998244680210354140905893581496394514669574553255148268309164369284381717509360021837889770259341536462677203316873796385649651881414994077905901322916525013223229415533360774856634844659123524961542210841194940529372635692287811700402977290696472402918999853915303333192691538033001560093480557138273664281994210598309790494420513198572874745381065952413905541487132028630507004857478623890884318086728606685194129352146273960100513864910165226541441339541085393397315722674631655466777791400219785031471974639019479789302288425013097254874380710728695072367034756741675262082689880259576134100511937887362133450399692092992477415671810054860452980050171308774885058682318417754385683279517001042636004954425433765353383106919845928515627992635017344670200627061745097949317653290271757325227783153785254922108392139286559807413996323344168854766173301503633411199547280401279172721369870179349619116826278619524907829790229686843233486921018721464182904107145504213683400999226842068276124667879371297986410041287510435640272032330878065685060978148295714601174707561757258801169758410436070900909410114756095073673539222994343297814661243132133922770146145526154038321708994874696412680483454234932901756869911543400862129261440507294911519088796579992547673525277757235658229512442083954104412240968280969209160447809587793879975377378202780092376494942629665786225905117706464873818950247135517299270829410111974582986251117722245583516381928320401534084327706779952264140804940322718679698828251293078997522352144825541640619374932026417029330271075264336966364068564543299896280049158762719032206969289235555882206370272207404568347389981153413253860151224490332569420725670582821779946527520982285944857961633536200317187623166647352870243702030331699406458880537189883274003471556861679424195727224344042789486305474049242643854061653029704541021996986735526321581494436666508602817860968128408232413905454385104558736038011395651406203801837579477984013577790527554886232291105229277168626538848852582139622612533637652186527920741034484693474483126116567778481705241964160910855548288527976705214932249991376549984940668888182736032715249791666456444545328922013953465790241174329376017028868903917060619786542282482770531800938433289350882969534694753874369001434761872707860976092838208630726129352262277629758055551451528624385718009192111053224107160405494788857501547952441357143244201767551075682099135079603540690965835199164204087242637415846379522470282260156591918055512690772764073336814789585425949812472210415971842408275664557647241544577105537333681277085694597742905167818951068130894189543785401415540983616525819811006633249506814842811639297639997381319138110832961555891821800384246312971436856611069053968179935559562413514472272746081664752382351991903599816753316277454046047242358793482183980767652425950792170344309622139447130399976758041726721347060701104075316884884025976204616845343792777123002695584426037583156540203990026967122445812678918904240147668393031838667410109631300579680759204883595893732260304763781321677688407968671964025665849273338782021567303518462956405446163804995749967377509738099979388848118394917903619872024761883807255415326963393281500341333360287619325263236845858880417836287719633440439472503365232332983728081410349587591801106846920761729469715591944577006891879918916567615012284836079315426795051173837479092637165733502203855349215218358537948527263072478674210640797863686126170059174323069902819858929143957605619550695695127789060772155812290588628944092622550875930623355635993685608332075191846403562121846887625829116961815697177911870674201089275779038390342920305181942751905142359811344241736372139447381546815130990685538246733946893805156547116017678758306283441843229132613614441376643902369304595064894525474501103567334502376184603904058870231910352500987934149893896899310106857386511104636631278031149956436056972855979940003243380880488804206282503592550934632622564998583451695020492605253383115466076670603286372649389487031691572283013044645734940262277934032724235548965545465553054343982698737604698928304144810785152958364788801978346401445572696918501789469531270341633652229755120294649486856779675696775416108251650347043874719941781270979858296541738865835690246647204819085765713806335336636630396794650514419438757152273122741237630276583403649821098455649382479402843628353485478339410988659040704673906610581566533591718232883867935995158194999347663391695975870364946001869567390697643247183999384649811166427293985907006726826255202276005773806519038207636641451999991141463524625045652106337230044198010508603389802058955738249110892775248444664512153506982090395510174560362684866682871213257830225943669438467836602354916564360105846098231952662439765688968298519967367355341549330900545118884662142907604811740593977965307820021371521355862446124237940177169341514513286835189038214323899790848308150452441789453336255477056661928229645696245353076730262632032518321541060492407633335236255995439147908352309659226940228082111333649462532583910271229563123968706604035653662371265756160306574303381515046267599301816060988704830216950728532405946734434011031467918066222457150691225330132733633913182751607156547480064606779716422162968298999424999874177242219749550631015810748603243442412921206780332023586726770079759745644329923902927912719379882580273168148141375033096173497524483151579697969170330975156867376739362416434789925417471050077689999789777162264770575605789150414167424542899144560777378419596774882301901895378729645770679474164863777219782199220026433599960738665743909372171459006230283761883806480362605134536424359430176813530292012562621917716640404732622536102473295989814710438314809782750363107421022992678534085070411959352003165511560481020200478665557717850639361628324779539061579561981666522614964706253009811879003775442843545125762341739223167642085483453321577557472103406270780716157267131093765919770099907519938239066824470848362899029130233181773820759087823084429088971531917156574496928311872758145247880728745648395732874499841932454713736208919109072861454215172721235320981994770669189102056281588617089388757342825328334585601942795756974852409542029723508050655872852547072057796305191016948036058040953382661818139729304791624385842901232930551471649617610990492609244214021217687503737104747779888686500109954494117081512202873512063682119943835960101698818124724345453734574784141823410719254975230115942387353585443750539337508189104199489096678168861664228157881018391163967755549934553566930053637600858051388951111608265717593593760111091052986918446441417307111522987530334601689338929803279797646361420974683904169207291351324080284630172085004764888701600490579147878083285538791568247611769049628169278384839650822062099099664389818602537479909231663325576174672865179447275993421720425578042130171649534960407096561517568496999999490829432214429648249496443724451807416152980633005074315398623445123752905307322583843441692351918875902481447015601316270151004257468464815873914353763410004337854924761735794768051790419766431366220018772810392401748403177680323458918097096853625718074124325019543700193358995612736345385646303461126603083298868493328400983122677707932358817395684077680751756704697715232262976215577239161118451556368801686071291387310996944264210108723660399317653263216071180166538375683045104366442562045287559813478509880237293490666883692045337918776185283243366076901343660449220122009147573835670745385074208501555102455532168075410947879774467537486215088005103422631289548070339663150552712457920304780975990862985371667271679221804138721902805380379498848948208741380348300300820641870456252454069635166941914618230185540892324794762263802819637633619232352160408192499780598703570959040067436412327691335395771115504527238757367186209406832947426950771808343800292276170017490795342058478250716645974517527045546862087653354911704596358614585448124918767450474821612906730374277739417299123406924200566715150554944830350972591672392882522598890691091528330096319965450908071958158377649411236422479773230815753851552999163998448878252750869837598568988731426568553069088911178200179086373702973611794238367022101233571795656688335172648296965920648909867871782984178801746774604895355799893756574478291819140118555144186524884603909298829461421665770273931648595485649510542008408334451593050033900011758298495819535096387042739808247190392552088176189817672507834115403149893213700991465633877130838797761583334800831777610320824445331386545215227131314648635590909158372906042033505645560909488282312465590524997040150578253435740298822461791482892408907042137520896447763576693320136308534328565217187082861948766584820724953005174375030416292747085695311881532226397291149436163221096437970393477702924260940291604528621265594514639825912895553293844864381207102881708418357147058661557949465561832825201504095085583818777389620334389997636312459456938844353923176216110316684314510614772809394054777686750813636268170854083182941199085046004115114692988242402295851343783586917495403193552021820407788526946058183789856078317802153865415771751877913556932118834969102121018444439060688717837240949545955024102495603848229199814265409040003928411606613407817202665957897364237858159736204620366781180819814725957657072897412879702521823959421858608789376985495275946348347279464276910293260384083348531744896134383320753116734661211077064106539823400286520703671292628617504993168394280653682648739730435279508473580671486060240968316744257071769453561799629768042438970648378572782698400846834700640542294326748858894647270112910638854083448162728435001761161063677528341564492905086580900237019481347139934098251805464279530356902117393474614661569475477800332639091223879445691179914663633037161304372478445860051676305608299023652218799434375293427938956766719721521815553322182560703551884113850213449949813712061243881459490529316415568722845128041105857400222233185180487539573879113904583186396187944666649088234640621378875849713820849133872165061340600152638322556529495113538657867190661788726297719020863946143556272012294459338099532538561880709233358023927697855264386364816941645604035979526440100095451235523035637834269557022246838131364480026968795675102228930655445743277778527186517616776737233141060503522618775568300560446222823076011928618925643094768409728443031504249864595466645051774887899580147298302132415902965434708892305448054288289740722318391379271769963374312580355390822687609562400964218288060686591165490451045288946371520830201237817460054566935380090774126282684037315189491925831218102310143849941117531639990655943544594178428789908308312372157462410974013890008404241566152392738440484262407640097689962007855501966999128924932810028347132772282145668820129358934235114201925038503281690459121160283283177492249670791855406848488185401722084080698051114271801484583735449310921933930891179893672729316210351477969311647498518862716835457884876719530045380636123009565321602843983785959596569313122077152139282987051559225644549206384874175775970007604033089131763797598999937356030955235765564407330467440862176484410312243251541890788522758900825493778537654008726680793187543623107447598871677002703264825088808873063366606526377337757560374439343920261039410433434445183552847270476204171376596483393692828680659683108786781313683785575272122000574952881427492485646667761716898512086402071719125687531515082413761228783354843240930988493161669425214089542441571317761091952038025759661194800862881383620413783024261011471097582251085305892521479756551820298828557361454986608826931222105355442124936001131950887967292984267583741166936970882070447799643507604762611132588325304626882287215825674040621344794834454575674626613707024493919252738118821743421237871771150521329987268874237392171696179180541446733444221217791779350127092692175461198447093018365438352318147061880627811233139506729402005619918861615889440769753276091521275536092074760502270429970072968980864823951326763254989373452080662588576912074455496948180867819185304862456765878114518736962211573335564333905914143378270641047701259966270488608668652839488267072123239649059172194003013952096553316734292789332208098645595952943033049687680694041899011174670514775602460339338319671509124015274990572912913163106950189471466509794402289939854695613874407545180110391682220980588652557642149597159761699550533995301325692308103443855802829707401071146528325071615579607351946989396906265112301276284644223991460443534716261920193053096646921573083925488622914607090035932290517272909015461913305364542084488073652426037441953607963307458559334114543103735317583244130486904233864231738862626478064754848680093964151263820351174822231615300508383648618356419929571770304857048389945146299238637261132336225373427453073286395818356086333044008562461754138766353919317402110756059448581908258209796373854891728255075071434794379470880892144754225213041239217008326716908859996273681166121324855989506808937626097591968425712007875369576920630760342775810731745160079585465860340894120823914219836901933264544781775222996088889367379626828963326419932262725538234346645060166330614659709708981492974387173403210887891743996420512469869971949815058614273708036775980391729980650589135008119656502531288256234074130954783235923897727958937662331324074860588456119082336909228907824295567327957551192822495048560378782273669312850316098226502106130367461691293234307100012390743184083890189008771942820083450000058405675567272472794057141918963803483502639000720548376346727480632118973807365820308470250259744303695730173901559058365437381142361580520149278120115025098967802123804438494842951581743350481097174633303570035947097042222951251696076618069166664781984232639693218277485000214145565203241152009583275266364822021681229826745538604860265664424636897585466343101325742873580096932205696372046099719043097907611743663507150949906595407338125930604331019726409988013824128215102280784351825673873621311105697533915172653239603568423662723060935373541878834630456608814223863480401886436898984474948187690157193392274039970446381094914403645796653009944930608393989820690445576627966150914626192514572679065592256062292252673963242850470278405748776880680822825374243762347220082233606428188608075527703923029242334608874026107096277459984793597510381904032212829433464143368958775003279004584238217094011121241129256863163635591209181604344778563792707967548066814374561361004518337349522249422824751929456161534281796094563897719651918120850443950582132608634181752436864928113802749435483462781371177325899321522112747667444342236588239448939712597821955388739552510222686024483653020870672267674682257876843082743821201278943387143034412130268843157330123124659549971782528169632396150698633494365102635482074566845991873333737185701448264487223069279847978234957735111346693146942535012925546952083364520126471347132723738973695918307324884266026387839113997726616374696958461666227997792486636717933587018550911045264527009224265382244732693122597187485311670568470695911978963400712494623161197527852436609985245167439199956738583697853901536244951769115247405165737646592577490903296447551886006660245188953000104568359442417286480406591896198388653302382537065667689601067228354484958989841423943392194756034730243487249341196437096089953660688169750225070575502956827944082563043099550896213833354492459651265312508352728691258490850364393693093105631333321377958673570899965030901933768178975315720228103204940271947005207226454571391401905487019517273154117834660173732857615423987149324565951439989724961351117818035691059249705183339028639311401897861078890297623459280800830143779773266333465603871235782210645176720004027134233661191012432613725109218572263001885544559086001368600640302844587204940206147211216867659181357656884231910097306094201176181217067528406125288963193338996059342823055642152352335267652199181627405583232975267887463085150745790208828595660159494951847622232956794040505121583878509487326430712410050355877364877011754494870837383101635240801549179904968132709577065890399596865670808736882543037166719518095127696071167533064204814823869051661269595434987774963779903203501196393772767105886369913504509689684370056944015684426042812820791943007506979400794070387582649612544713125021856326094547585551468150796408157745599889323116690582229452371018168944738468892838653090646552043476118867033283039484830474331719941789934929866976682675013052781382075071838766991679369248398066052791560716064692393897271294286218263063322064386915237957380968308898998468413410973965961339586168386771900590879904250878430673388440159404600061239824351623950910996245610959833814074445840308737400916467457183284082065526570227514902700353993888832948559653185319964751845019305659340951171768674346579205940124403096176836442489673239805320126481296731667446478414954462116056382052988822637698716938764224762295218040349387082322251143280168301918217693560266501128622799214802016924878806985950005694516449051676658308725742800835448360310872388953028045758313546094722435725024104954206759882095554155868822535842543283822485986910747504826124793862051753114802383794712598128066280585561205472309078258124549729757369653738544287953719301941042838076119525881895731270839795269724658339626229794651187446049959048907369154287301109040233532076234187356694831714074384244049661079661077070293897615027647301094898070321615846111974256053944419803226434573892257018488198946432876586478421024133869093384069077655673636627758465074244517450693677807928584412068673727380234174598735161474024047705074389707200515244992168842830177247796841333552578079940162682816359630043044515478256026913353155222225031210378715566795915772019226641367603434799611113718549985237154329308961263158661581983261698647239143609762247021027196118853225460159137602796003338700049890750962608352157450330676756351244813886730771055888418586990589084247281815491343325025882017254881496120310392307175679846813902780544070680115561535206674988365963054578711553869345403063299433478258700936843788444540944222348487737317653425975775855193186879802279582602553891172869119339647709064627017195863499140441985945460779802496689189363898798208569582805934993883657637274336761456003852489431274863197610858919944900234670080905028080602596247788659211620711603449049043536074560086091336172786688707603709207695661679514732390468458877597150933502466303760887741050402014204704300156516478718429650863004709567380171663214317239388409562426876853276310115885801532993552799465552745559569544656358924230153402956295567014602527558575937959482567747823853475011410273337834407645552676110068859478184067429315536481633441085981717867023228299823118290541037141418081193576805643209407302120785796661521289512007013285490447660248971868324525790428990483672484336779226159897710353743941256376742665559625298000201740042704539657591906699557458154067884155043706417275993739846448033488929446327134490206729378062205858502892900620475909861229986254409491813311530494323703872785676929689981273283598117213525878151394932213326205493506877367791258318425779609174744942044725275910118052225702184813954375220330537929273803038877749415264926600626692487319313974517820117787913645496644167041195128050123625738469742488157538793260709465560320812750644043039321050610152696346518705840326421258641935202258439917399069304730135188901482880937039622510542553066221891233573789273281335444276453449391305357881612390655745774002915312349058603424369999260354369090549620486788027901253524655302910635566918812182858087801714058693992258602265594247967368304406891888983896060021216115994888451166045616493081007322594219281840587567763864629799967907946139855130671546871131083791440595401735090334149781250147375527572031947184832130258575833718135960347421413082764745146070026877092660224050296883007025596101064935107919577069604614167794465882550008757683875997482570581275461937513350958549757375313584092732860172124799596582805314723912512644621362673160834437579011417129664722687412916827014429264598680782842226621274982730842183007219965431694896961200418647490635316649809439192047466992878989490271201858772256498313009203414516240894241167533442290075492660140964864830779959842094005830283056811266043829841188924288155238386149830215395858326284590322301934986252195001840588641590271434708012742778177880602676190670094757001268934376609408126577880660689405944252820524513362519408541052435191880646116340463919522388274324500641117906357538487025691970158722165866055336615903591696545171238644059168573150211162136026001614193747897172086127585078333332470668754115874110182049841293064046591433618176634527092710736636314207445227706677914598121965492798067975746550740768002146202681251472877287595557232821146096548384577885820800943380409749738815857771236468667759296475893036467087438284594327131322628671523316041920531323857737961630687867195633478741714521498554198854222988093343045614247298842374058014418955085772509016558903861353553049236757645106244179242586651085679880166928549053968532448224490018220869362770661158892032754413574709885509325893914841137575776901346984462795080041590778977104487963692989474729922535590108218356214965371977667141466404423464419655437136615645778868496205055517264255618715443919105029020902862894527131484695216470814171126578786516793280503159507385299870434640904294560266096747552438901489683316972335174793261252185455702470350894645583467462808857073099690386959347292730052701091614033266263510071994994655829717806477620284437531300919102246122293004883748636473218864172254396300376531110406786857379901207912712896212535003500799819629208707362080716234847034190497229959504168628009909011716850660169672465399806348707081115655641419661203337162750331502622545743318501305332656780348404006809654451742741386124140195098930864276596558842223216836198152997419778298621657067130329124027733727174674853804783231463324507812418002824427886406508248401534823712174492896018366616025955720354999734785556811392984379041261919595582940466986381572003271698298807022446394334188957343088827220025317624692300801232447338786988224127918463457692596882025404067925345397275387324641078641970408089647535115008644094343897042592080836486807416448472917380569496262704921742362095172911796909973687619185370645757335921530841094904585145291115613818860983378602178731682434259901308219661793552893992368242382650407957112156935366411866018651590449169867562595976124800837503741332107009381368787648821521892116351114170024522828019929838489015090148174453227694342220780634950874062609769893478452433042119943108415349450629896554162324179849709779388071525660106337619066244528672956720467322646446793329181183024566411304492599230264960065133450622734613029418702472186708531964940658494598572359189180585507325153193007469784175621601166952048478536271235256371324444091150459773820223831887663864049985666931431102611677164360431163195442031642960585639698768320196467380897063576124559954973926692234610016759918234156700815104944455488908687414196625912773239067874315777111601808145922568502881142733111271148834680595397681281901767780457633549356887311077589986622104963116373333005706979174413222552250067578458946722823144680326657002530181101012301798094928759808152569831954972585633233594627475958508600690319361438331326337373735504952471437958208500676315398700347790841170498372883423012554738881570608204695507880458558316787766548479953281621830121173536268952667547705423716286611976203849800143618525663354726354270128953432074409465741683055984678394943048584398474404519169849846913698686734894608586006809436615945730148181254048402690555607447902506113245179750266661010321217436026651116239860344879297293432707896824290284469338537523376459928495114045176570257002055046082801739233779603133128128489409485890061066710198769069296897458622188393144029789381416551957462578248377349677881009453890711268962346767869211561458992418487922067855930951576038119537892083316629989708109982459783439367209842945309754194195102569293659194081556947570221231119952414656910848331450131987184956249087660345769050542854027238914478574035772144244916841016382004097638985304031670948216521839848932012063964911318453224242347303199747115830803009969057912979501300781160135557946939475131770836270299217796793101725044776212130014716690602709922801547897288079562182693728868649398805741172912547693445505371623023133619825156722347421412803000261298707868900718961814500736621163854656288725918873751796320106953484264502923035945979095930296189269765336617321764611534381197072125871290157895790554718681684344154910454582154725659352398868475967719833316498112414106463774118078091537113421042772164124977242053108699822028721397004608243836906835753231749969109822749935774918879920032082102025279449675669715848010935408838969898923502071565536741597461195616411880665709910741223808857044671185220974760785025958559090622746259338229852740391744403760617960604002492444147753152459602908952369057916106052884008189113376659886108990928109599402763173082869794250106007638983616700724833968919098343705754305793176604707939482736737680619331223227823550724743776075107626889500643501983831863278773043653546434968006961742184226383824769697609476164635546887450604833388818949925604724052783518936139216158079592054234309248938874571247053540300194867912425510623881160877975458180544786678060448700442546328314720566853578351166299905856228088855547860143619076363069522883276926999161091612639106856363475739110813671926429351684246522478138947944848708550276585624668919784212973007221313910625820042118607026451865899242662397119210660075279547532217053026753500787223590378664082060963816774670974002314655728413301605217672548539935212558915675501908506202523686546098082795778037245612529053489250920543887790888577911874160308868282870380298841548807433118661744897555009672221844030690786958050806663731519459870515217841419247752347056919915520474514044613751060593628462978282708419525094150993931563798953287524668226553717846471862425172358621399834599174039848803088683846606139636760270489392430895258289357152255413091908679062786311055257209600280424342696950062778731046013263805967198658027092745208577215948314032732213848333851760275470658859875380491435320863371116466659012803846076100775289344851940211844036812542391212694368473135076067182546399522882738807577187743028502934612389344397540265999422442981717961459037929671078877217732262974441747992306910724415349322513478989091150729114378186500147657008323636911979679125457905568031709465131358495199814545357186563389891879455450531306907464641981451301463018551022249105071850925785036976065189771639759411625747014383038034636313473972268130617424894772458153216250884300211264137704322339289707500717395384109245232537315193468361476160745744012923783339119235947896457131744291524480533544078332087849302781403875194023159054184711148771786818798948741356797440592773507536405703011008709030236162666972165036701230909925588461532108464837535783611404007049674073671086736616930371693272412195539117794678247497721737270264364399024873775460262776890115737391149562957340074907142416713540616041371164061556700450108907144373528897254244598893845683960556422424438376348273180302199725306118139690827964111751981107947327897044009077567574922771168296881782735283435932615002631718690644978108976935283667193381391043189650062104546939919493286409935311810205071974343769360924609246810749037631188171267943900914827109571746027117895221147073282097199941500335333664520577926956682909158762295559010058847132713882671039646941999530773298568318115262125904963897040963840589167645431754993484792656734427805707808728563044059476781977913828657899183702962011435901457889269042844955878391029601340997019432140992885923971572578900340067625845386327922190947650359143670498811724085068437827486737462494997309463538253664977572968572005799141607818988571562619658924326354323771253270593252711473026493186386317174380940055918564660213179865864672655491271493673700769302114505534231187731973166607458028997040531301993186969099276734469751347228465014757368614976820656676599867955000611687031523691926196070850249327165485889956164682925825938741858417150167065811045739583036662758819978883898720804257900633512248300615818226599696390360576527830728679577294361297421643721498156585829720085513552119505564802616359256126383063299905355167669663496328050780207128688463453078570874721846904653446921307904293058494651314744143456019179004989189570524151700433661571508528419883046501666136795720157379576159650222771763021356690193129583353172516209645334884313925846860675621855159870919857783912467698134566544842118087704401158819156736888369215181208729212909726844509858568517708086139372839962341187247158767704720593037472015408220076933718348954234204589158694296290881634021518034242100121246918483617649055035155018027840059898632319163435157113861511016681274615656653765264736744052597921732294661121728052613094450103644498568928319012935680735521268452477428939572563101486164062495346125538342989322106692469687292554151286980993549480490415481241676668212702462772159274534508971035120344307396108551720649737651259472387636023196601125122466577177429844868199372846946729507694680490156686316963911703601838201584355477019071932009488073093331134979592957128489950371335591637520696551184188834046900353128231250213672477651977146374775419521067500185167195456912796546644328728841838383643999385333291008605409427987588720919196121770837642452467188487046850151124084063524810178597539544001688722250956436778073402102588643014288825096346581466274017588166600378895138682400337061765640486011690723283860366414295542620785424200864202478246640138385232478118762252395482916785207171385179032767230676341512503539239381276671070189990293485196915657586573587582205653904315939340808443291407156798241104244194633266700781771949541438489276132875488853276809467820844775635599838728195478719020108392332240908927135552763838828194847105117407203709459307491962698754639421953076278986894730452281747923136617300838289179731410369342907062000414175552013848825002055792102173281330766567384783411266833855933266375978685892844654376992594670196823448921698312991380070548731128999686837123794726394477057766358181475069681740142923893721516514637192525589208382232049720300703210576434101604475265500517645426935156768796313510191182845943405130421288418538262185899483725214401809261481050811314369672030629590660755176110229126496882098000404678398460706198320189370654364019361155237081566023719938219325523857488705383289166406071544389352388935749542856511155947473831157010646517854655326311266432517275100955184005599909631319732574337367978591806663050397793588296111669152213628580210159529004534147293173787414703702719253165548022920115720034850649607118708007614484902789107825445579587900693083407881331692353527717075003764663692260408537626675448741208792512596707100972933519806313151299921607936684806139356117754611111611241870574744163847377571989755063817914797199361722424133604883957320127764739205870184655384893859564430080456010290126516566974930153633473084951940976966160608321112327758310648447201495980592386238322729514852732616168587384838788903118158113705458705578965856554869869442086469033139603236890355502807224713504122435987998991336670338339587021667950533686005016254135974698231363223964361729446379372214610194005645243286223459787935095042972853412405758713414030938016464513997330783509372678436408564326686226123263885589731929804912649140398182829713604117864612219038037598326225176412573339943397182493867393165957422460797246263134821137635607693642372728444878987566581929659084781510452943380155370519251591046534177731532581043276284800963266537752184098413858412423170618874804062871668053183695359541979617985627077761381119961758299726900074388942587935607119613390857207672579817320253189915310510726742951804605883631475391405871849982809447458878277500225656513027550937431103054889984063849269634596618558336318054409608439362357531793752888851920984542838245697425376452112138621916644882482112484907804755797382810067464079211158335453475172589046271821640665343829453257674569525844122056693695215750158477098344997590016410478540576391493660507566234288146174856289286095870701777230850487444777757639762130257212638455151820358904642057695320713903580324686127907082754083490262760331068600109907500141517449214902625879748735766672789774760463224967701674166362903600322444225523393199208571168780149610533276535445295335964077286086640373253572172297727093062716473445701887666419526344015659157396242431606571398238719979717528034844347526778153268032733687489633072023982020615278308787958453382528167482804466986610386619666962548391043529056960152588868928601894084454619414666463271133391394525393479750678815882456222427469249394587573423027467108960495176317600529323725797251887634761248837419970291567080270613544832572334793997235162382309555530744066237945653941546496240004329074755014545791416385284873391644061702232606724010889379959960924459347348010237004527404910162424401434678646426120338611122510841568162389407932189316538422255029513095209866873240537665128127315764126118117295650536439213000286663280787606184595008631014402756508609150136736343167437122914882356915922679699006835260696251067642719933907650768551886974997165583683634459569169062338406810104849337957518408411003357517984667734476262908456102659305420563687728842132824676136052807628576768285861904373896632960804706633926754189206490464562177413824873224403121278637549756316312664186305926884546480230797064206893964320606861980602871394949710424178244263121221660149334790107443412835121910329508142691545620634164919174839402042595699188252380981028933350732533331383975176845241031430198974756024351225276745931026818338557215399894508327436381883558226761424366025826120717962982384896740185130774244264075061270104630435258176458331301242226872339932396623362037451075725667059110237559357675480169301725957887917184416533924124091738159828231333868815108513941242053916108871828565585574488766862823241894354697388231536088981960164968830296861846819814871459093565779621956737706438884884881221934351243592843213301699464761942772810669424513580899046067240646232814192929242155059575365508909035304086076934442108906679916466117781751797475342538721372471186442973153786967159070964094827228855350478546947587673957943476356473964960056994590924563996265135986091005832354381347072308876926394984842554930707340473773411291122884666596846394896293279930644222156253742300923924813980558566661399433060505399934013577107432241405956922293506872810780538120220837595177109211598670384371916689141873048689361577304440154470930209615038830613549995332014128296197948274190807561430560799587083714800320747896912524750027072333677340920129910193462113410387982164047114403324639730713346033305975261933405586117706392669235908361706050581646009232085111608927427835924758463742699392966769243102405546397100895638607099019446353174157451001814535541051019772998574128312555414514036840292737338648871887454282644323585039794577028277631238413393952500083032899452853305654352192243390977042623426069530611804233600528972365621159372303713004088023907179825149065440573706166417230473802732758189482499452785522996539298771002530423552848453684725247679386169539896202153229602670485210494471966615357326112996274918634876003781699519879963816233983151164460654236442716833936950769300273008447580474983966463062293174561506778961424358883875005487289132104629758918227340287367288706894789395389495983248253417652609322116997349832440716338535115917951665175041855630673083387262295876621337203751027689803165935124818608185951622509039982545717166127161766946133681788744055434127443909149444994309810585504613449305130938361121629839039188564052513631045931652505886897739615989903581253452575038120203306841290398749240885902618591582985546746200799324614060245442970800409468325018974862126669085120927847991625508140803087882983324164522399780806146625830980626350568903696764637141278791788939009898334482296376708516145183556579920713734060132685515866689160302525661322567157399418977098331899105683056571409242309339392762240084611700770110140990870163375569918420375268481773871625086922728091297693248418763383207487737680299131922211366852010016866245141450770718350247525849751313042907856389423204809041190891174739356751862139845350440245852791821617536563427697188213067498372586287081300429383364840164783951388079612928428635294643934779476945151263784597346905777587537521585857049177974280003976753170346110711414508032489839810633728838871184002653235291487072280304260684679464792532199316013712892719984049171376200202808090739955410219929749255025752308681259545660146080399324973310319998626144579640037007785125178585464900845997882493665369660482197790702500914950939791452957901944929767658661021097034189202942418176977948175597455746327567298679873883107452697448675278078206709829909034764563093696082648296112229209706447736253866243106250771428083999212414002657310405651561477125632495961505485306952932882487969902410412436635855568923846574114959039254838094962201009568365931800158379567291723095319210877726267797456184789251754225642799075484608648216089639456015613595950001637148675348118103835700268300418628004232859905659793267519417205665132823502925722632416094915885967299436699231978954968509099371300819995294866144216407882574237179494519678842521949231190048959688731730903894467408163271990578127674499370080066128410093478407627214633381509718125572470088492268934209748446655531342493925118270141590958562445139925304702643970791967454982158188254881070234314762861816151410187259710884324696892493336634130141039846766197700172384379849037177672499392281537283478146141302032868292333722065011233028891873486965687449311503697972370881372203869178999248594483532189838676326380192903362239709731704984444140918948720473476578368257180711860531521709236983252645776372920413044279296494372566298207537597431362006924996788353014013999837853225498290303442457606738105267272166355927546337508599178441853091600838192753481060279230059236267042077641372514591197529323832067576253428022938987139809746846546880098902351237672287180880381353833551466283980595536742344456729565047548742593045500396403669993816301728475538318014099008093787929433185871095325888144644948993847284044024333486344048299647832657408569890475459648261395373681613931693427245117092316645548796975209801461453178626800183665960105934524263054083061842110710052734676132614860431781515196431787978237895430673298151251184439582753560435206369734342461331370202842328967665813669272109246712730748338220390005292454513969441099252159821732850334163622362279528193602872041423837665082465924633072789736015338327987590158608019124048985417697434302664807495510062330855676529419770788706005507990133369624197746344473505212392506650371487341664111079931236755644256793501026069218446781435921854410216223940931714458072098862345928096983698511699923113826481579843151299262011582896345687566709661436560173629070446901982393437194015602198788553721889654582020355107747822864900499679326381337979365468080846770428367045941456323626314474693875467262382866694903463014260209825186900287663483462500012025084283898350926862754646597033530559176109897560316601421184276761161994047537201387485476851210279824471863938059442168484652996524359863121754809911315998348984483750137488976018603382909173303869921541097033999669075933226979275615360248874597341161429437805417274667969824527224497314486809984315697228570875011089714014663359797506111981102296479576604509188462493830999283690273041603483546661005464272342539759417344701407470513894146010218093825805136619153885457611861885364487603924189793035628652795491399009826160144653245335347924612369365245383298895934385236275423777839777401773210244648832563994273058064208766946179307521392720700081880273759686988816016471063197361401907078709547453599643991356564272063307783772048506487268049685637853708432117309768464465816992703395357407648423162978142006032966413683738941246955189326381251218822895305695734665531081022450403147949434218731103365416314331834233285892361543646479967475945572817656780757532553223637444562670495516280939636266085528347464871979302688080059614305503451165071853856100977421571389986250760890407776027137761967554175620088384192846985897011391157239617492070941269619721508911529721361630130677605674784582671814665077888556039497378163660776123953343941502012139400438010953712038215810349012823041655212127527322693511547672500303490380103827874044682228036486378311727753358008759582463420891584768626034237039995758008087842484726474788517218213572278298544672825106525388996211187935631232771796376004979308713969406832175991514987518673467426790238995077371136356081154634116806142586130508830649295986424107457878647709092662066105126775440639625233342416598848773317422435745275918240226924951330149554561375666763326432562766571117375277077006791996528271335969441210104206577494099019260694252921235184758324532467904736587083567006823405502599434355234394229162523620705136407542708908825649688278919206273449708017293235579614719296832512223744314788156082145085926974374015458101810952858538878639386949963421114597960295834775449233188122070288422644674372973437394250034449741591782453763604048729543033748662960455557853612022050737636465780495553430431585689955789397494646452863739675299555054822207960797314078032925489619471200928398917536368012741752256574111604618333160480023941079464461859812667170857350504879740661734618260700461721522112859458202280787790153293325787217853223357138017724946742045029518136783329531592876656484237576556152837675194021572988455470786488271533124744174831087471637795068575120695192368491377663313814947384682963485907195353362092711387184258368807554506231327821863273513019135528148608364317968194559550479862432572216845706362983633746265634089803812284394552861609527855577674051544523720445849339482463352401968912771185646146419992775154919630663172132099116092125658498846252380343608047056558921268638376237151104025907799619239364082945459438251006735034455092409234682726183651605871595427789561022324396165739712860083606935540303485093086188664254931373252332685247887988143079899308594372337624494313454603980610534211542384676509665025236842930926203476332909021959173428362899644463666568213528921643878402803782906684373755602053391526041255295005560647846862202340952178787164258476437586594301060015198035965595669523589405827789819961903844582256076884792972605685752793852465196823362789730073202375342612842968216733599628527338781993433443873031117673655834834786664768867782668624740560801525478484532425014305501149571429385548873241637158081947851718312411033539365260679114815802449940025578053282911546641419541892411047463964705134717243301476259067543375982641410105677686071748254727851158614976010538708790024542776321299179803743404822696965269729485330159356149150418245284619591666638207343196802965884312183144179478341281587749956309504153651941199627155724132986490343271799683548612796015592679521843775061219038387498740105076413800455318017057365738795967423193227266417640861687630723732477018830706782429998693054842808434905644304921710764556112822007261792815897996843198786950818521503858277281712863274766372900167633564780628532353288566957381261407194816036703334224555731276652713247731340563763154356284649795297622269783946342718199178945543588030806639036204602050127868765048782876312373788170133734083875000091486430253558394502346932604873564723785413038169032285069543053186655775848458530252021480175058591848924880796629504087384211499675088339455897896657427120050898038788441179374472381153497993589873585034432473721309334334690012989187272524960853943696742884374886269403373611585404330857865444431219042567776975849293812718396065110707914800874263257862008326775644606852867274550617511591456298972897305799275590143521538594199757323066319159098449809465591063572805746936125665039216477611040554553138475126556943606894199548079143919042510046483343674059729591751774717831888263984241125993833534171234260157963803559902651033855254194542329892880610058011752444832836916957643176663045158275143038170618482649583472003454659833945063336027816531271700594128779857561549735473880406594626395073625284464963762449378318414912872135601876833497893269598296544916532137853392840586161815453074636227572022709430000235504813006764430761634528100143919704464340070183808918385735970904482814950823538956794744910319493949086978743415102374295617292234651717546197886502248392114912027438548467984982992017474959703842826745971783763841139241538435739252666301340675515916652271173240939662797746288833590896103496800689327620248804506565996897289037244977109666741713732073120218919564840455845994349234197122776355508245038262960783362938324214090255774248111918929406034926761164413122571672882205562364107466219351807724156552316295240835786772532001203599919143044748352046992684770567149341021994554545489877610514586654157380262696328717076272446197150420870528541106526365959116837168986644370903771491400453753879098923775376265063478022600744162401565411740633740013347701772209034185904023583975914255985554572896584256901467741465322005378077508533111930781481253344762967822464125067871583771364960933640940384465918152325174001577380029189184216128713205074216107089430419562236316744941830365605219762547936328995495150224826946933145900197679377445932417314554679885095092441167800032951387083949767747168195530200325009223865801372298381668500374034049845474462182183320192592566112138908965489887951362030852070638594712963007742459920525744188622643981565613385619226039389376583532782164991996990961954885350856705776245931272234208977561620082128411202204671778707165059020445807906170050567894923098974012628875498379678245782180815495338682130541470626188023426603648196379496750964819422288435528004787148285442643831439741595470056287063670454738542916050502291974583663029725879570476226003839981972098475068437133762582954303741319209802950503370616537079488398886358843751384108102723346789780203980455957381381990015954780664037430698683196888659037322147153944977657759837280930917551514885734913485012248716353959809645657365253540307391749599223638792685572718429424461985235376220216449049422901507774426540821685096021155372966047889701388214127239282676693809009235121534066167528534879693614624975768443345835900298536385738855474205795038520767196172712239299812586015087122016511258157995837610947393657056454347170323963250562698206235357519531403525359765605494168293970088047575204523803135755861936946674844842529355202667412227972027782140623568613548509762488413355025625194169401001718325165401712733772818951252002998631963035246014955493454210920735027715345337280179606332190391133119396012338326369319749127042743906223604286328117775558949483903806470622275901244408819991855583478259186889792899565587225013057452178532722870324182258641949235755103756321615103406390040368795541023950705400032134627582508616590794804994580813889361050184216692084969867264022289233811945258848943163164628346268538327544460314879027295859103634758872430740896154964543810121461777765298000782939727221051025461889102315477306587127834462520709615733246417264252257995941328657088275090822523909780763962337383250913425519822832439324981144652228760532369491223864606241324209845622836931883682312056754017701623519864809025134331269241565800235666954947005684573061811805881195426534440180702181317862391792648840015335296578677680572415192180272971820990011630784050020188400884887215704741689402131558924887343250599646375109502217843464570349486922169318077379649183041458326087859773520286432237115622882037913860710109176496677901747890330141430089471051692992795670132655912338581865516031861167290874295034954259263750877269756177960126178700047339764118694209690323954011120601844450845002153726684162889714774145942231315087575313403687907648876293603901546287061385939743138220082371636936025799443779358607722882447365528650990944675008238986668864831913114051102333901077616091321227602428463056696136289411205212315115716300692555201851451115047577903025074168932176180983816995158462744952319927825763827498597033974469525473590046535147142528406387960755209047412044014107007427082524538214948798135180790424017397370709273351554629735540985200706923145514324320740496445205524034967198891027007088022888998557317716373348813020253689402647156549531227735050503786619542965190578000897975840875059724552732599488185762744313414298287347279194469982045046177095534258869434878642243174658936864483849271547979330157262264128743200905413908496796735221375559397224928923640118891114180613522376250763663196859777382116617868101082656865191688143264510146430742719881307992733635010163433878975941669943979063924509246439949236227964655109118208024247044952838741308097335204986703363218332284333473857912878326389662819024392858553738502209107506236885849781495459017503314051477080021886835034838097236748400203930190451385046367423386871779243421067791254788922869057566880121260039291449937692346581041652726736880050295231221551224634195155629106078785152520567206032277188322665067941342266154529443715658432681132587585327294621180635092662645357239523244750697642075271760233986761618539012553084599474210400447890924946486773726244311351792389750316893251474736143815057629926482409150904277486188706541830990152456358184969319321764988045237574410284336757227792687951863383134841483549691073967992315191640092161580235613984958596848308783315360869567955714520410688260334191938079110467405162306128487499185238578365892182222239580543075538281010325509213187644085790868771712313162739297606527237637112534551606792308590421539616404280913979273161848767712565304931776606976863650842871151946735984648441064142188177887942376614120900853572782791702561204922274523394331257670948013145555068737602663443115287501602407807934873833425251045765173985951863705532508501857399373003365894742249855975545062537123346271020432587808004726772437709167831897650086998878918445504431515164009989049195147982757683107169067257188432087623803676708357573322182639192613000009755558829391463126730439704517273697273766367310317018015533537397540057568341254339248410175252756837083903123203182129155173236774622973652086497332360410751170424048969296453626881102913610837141321778665222109993359554843344878058149189863126177459663745203662990646494060987276801661203139819012114098184006120778944687853115659525485594964976711153001653037921447618517171305782428028346678034808482466219622429444019557209589438935635107944940520213759180451281003825704530802195018131757617381533354350204033564434157739165624414152617466975401803123534390913446055410786840277104158816751342796870188409334535557518965934646289265956966291596739758687138084875440092103388707308193280020098925894733539898557443503923769302364669018336158947565348527433097887005278050628151042731727493300524483132707969196069885954571067906845947510710784898635341556689311906583680342910515317098369529933710614037625548540240092949521560665825361508823310289125291486870505875074356103872715825028640685309179651380157553078625653725205039590995202609151244139033256840226444069046097096361310421541510835646106004714159927973333856484505323850203282897891574963132625763729630655382792946848996926503906497054211484677222416470288230047826194558148688380959784838133306601148286234679371241050927154344206833084137593548201672823028631781453774622164936202823205495107995131788371215017887040672188376029593827187214268724809559446964746457218529136260817721930422221234638920507967565653319363782838927124273255154017921351513689676746847955774901618732219050364221565824834137538022334630635457065162985731501815671951067482233941357672469184877699734236045709345840576084605927896980806926291500829432296492120668476871747778461623323992772912852918784984636569190802035784628746127490580042769005205358996296404836471719675259922560012990213423780214452312739471013590289108682519440764289784586879793937725769093635815549018952785102116108052746797280746788395807112615031880900133564158025515659753391607154610249538024472827774058293571576761329913662613346740726846433600564935279590088828799497163283048635917036348955404988735941249404484302796730299911960645024143428002396272283773994620972909109259432449788144645858953952644413246927135150954306231679374482280038652169515855602003272744125362914660243172075373840471446993395719502500647163957736711413917237224009001231716399952492814810692481478664619319528280146005823840142409701028306492884972862061957513362692553038517266109542381394083759592899895191515973261108989743780948050404443429190600207661594382948689065191228462618908584581429754238855031601076042489128501597631326805000184822059172739793345047934223442246356377522779698198216233414332909389326358488141068005043982736186805165854019151042205383522247303512397963202316641900089320846234351772444790109717483766874668134777094081096653616960820406339637962489641786736358705289923461876167789721903301430684898168114791605836061266170330859707271627131700269594707156215294800944616638133583352685998803234780345125330261465289725737580018073987049842186572457694759962388207383900097622485138072344270597847751024979387421367024329337963343456321241999367267324555733511372441665551242946082580394294958664924435103666970002253326560225372851231669388083280037513128209598889563948495071340988212722668980007406776241547620599577889126269685580180844826936738409215477691412171241800664704683058408949141632407027866036793633374507571595980220776334976671627920366803924267032794685233705864293091788905183666481259112605885142373992453530521056518911237029317593522515477370755965296626440105814471116375112303284781738951335603639029192257104747893477804363749617996535854169923610088931317532226997775522106854821645687830931797606863888310322990147106520189107983446452743361603308291818206194852186978837832104552926421489148270743118488639139535281266853578788168470523537966903755001215515296740350320917532152483648651794073605171068998441882698206771446058144014756466726297597547450908796363766568321751150611297374566794505838945090698235204400814795321469738534855268594491504795905975792990745917487979572172876595345338972448914068996164468879537824780169178866309835214228515433867628933511534003511970630593540074719753855745975863623544795650536898472943509763769544804018042020617506571568174006820009065055393010738349424203546297887674541714760835156055319560936488368688110906212773525547059469066959542128129843819764337828615483586665937787414409262412289037559254952369574234601768927672422542308614723155323141442202445722892033091436559383925126511208096841764453524859945672200980289391373783830814438974977162635914317806115586447820692374594853733233766656828955996780730737058509346108816212089227898041628486792116158556485467497177069644916506824796166201697017796670714968202151430137618338774738610754452834945850861735930613085672813772733654262440166185760848640486704928360875648326031677366981022070110550529686594148141872887563851913641382130809456075838280260093232432718553004677376991534646950799949653263047596043474047373677001073118547622153903383200852324389574980986522479464454902499052448470120016406766635671939108919302173360772691545430165320466862529528929990051567840706335370348232722162135286799728671220373490897539852810116995854620192727634187163749250692061332802788409101214135627010522135738915025350956614796590655406500619016304218590940231522836607197580782155601507035480221159640154237910295364901853032222009041583200162421617544226373495764572046284100300713164578736289776355332015413244358711207736946838685579959847253728200474163562069188284703631663393908773780558536052855600175674976687504063202263904297857262299135699068760616311259365590729163524982138824988298624153368024709418429615697921107577238779398478362965223676803713961035706844217242559957111526370816899252183894543701517541043719793556414158008267874026806173215301415933335247364999785883425755431351881812116798190156888300940375058451473277863297726881526575244684251407795399826837965244259880676709217825987262569592407071998855309950144801920290484883345443872218279023775411641615602287596416163657469686122848695286271874491088457151219227190187321833037782408611025599820730965249037549465968757323947204624456359048833852853741690538849038011636058787207824465549865482854324099713159376584077386275354589184461455036884730648170898723573053601888552485121781980849194096330841355092114858167724803818001936417712685810647641881758387245105464298427138456333565754006158607315305735130953180971500560690420783511458945155164402818765910331186872088333309631949054517296152314564685125296214996331210814452327131541446764314905037460541401544374865074037672025870444795781361983369761283626727460342982016979983524541751909174757772769203820937517098539241283102124569164132239350068134911054893273785474804363721119314771242674279100040472817841303192655600774434618505924728143410036138485583909412751947001091446728328309107091463525168690956038704938551917117563028123362188495121395185138254877772062268213662494397702496647347402224672587151979675629664242388491934859831109812214405434230883193627509466700372290819714298717603969903034043001305429834915341776010412133604211192811368183011023005720897823936860757422051128710103928213893964172059071667472197675440366259688763835570439578367519729969160272994373978690050049011378717277604477044121827461320926334355124761735147027962886972057974491971408687309307966891869715690971032382952166146045881906788140212003483581877444847236997744811773359982890366388211598460003816763861451392951617185447675482942186344316494199835696160368862093840017433541071137991618535399142834964073360358228417931758843687945377292227751476746740485405518611998538272433762576698448838521914684301480384866049474907158313791595074183572262002024246691888886188753617089170332993984810675176157523567013899453716632154992954070298896222763116981528001324778053295592374093350570555229011622268557063249209008528417065939622457790837112901744591381253264979342882397239265645565145709925317432680264464800173359027097550501492100633354258111919911104811663553865963190735103508516831782794299450254648119756848219862850029416821433157930634692189677555911084908107884091380255462156991188304780482008543090649036605247356169654399522501935899413015704076849769836722904323736656354309031895600163635162172944036239279705107488231156787568476351321014167184648278127920566945813554623603876125516322372746468474679947277694749172565176085251702295282882633146157583391161848516792356347052306292427211716556943224371666560681686821858983608412244464461230262216124577402875481131830258884670685254837254512320408522311742490442530393668117656025094699784655168707327527170302978861350509800956512630759301672915511503825392275243757592176565649963908493662509806124060955468415496984997845688097790780508182995341698240684789290667003109713906039159128383443429340972137524741303871578688034133990736816825978873605405830537729759389285103784778257665339949189078610201469836667243300880646350085291344589812954946443538565527999809755894152245863755695015961201001209665323131709601223230763948285359986695757000959982047971470349048829223209934970175485387598068584636972104724957910407148145935879543055165353328045635274617611059092145477726310762309443331317054455825121361630796954786258188013383410753108954510867370577571829187890993692144486862196434889005878341968064874102238916738451164720525546596021107914312946540397380659153948125495517245081154495062588050682294346180863882432659973401296615594063727043176297499904755842534997280652360421047973847377319935770439175713977735123544672594229498151043549940078325088430571940140153600764353658184256144218607591792160072898797389588954279223292678065305674057817288675392534669550737563648553377093155918049918846621127046242997863625081062774495589173871328962149515834963951682393355182925975764113111294636883140639122727274537439063720179740907588606685691957875385835430044372110217599931791593682650200400742091655050881892040471053518854198881810244664625585777830163760998012949798634923313117272275769664199372361944357161221519696666586858346958580602034045697028911744020322904021570040398029723663659911899010389822460083383747002254167556746517899896010738764197212770738024942406688335064559494435578911528668821517110646271790377833809045934635147018000027913117768956527642265838951910669150405498484461613232516090239642235362695684956139774130657478941750641791719586047009072968457849359800952118632227085168145544247801607245580709752662281422951183959039638251989891693249058257758340212705137348683749634037074208820770402188081172895213437347371786437574935512894899019497539198602324390795069507598659294813632097967948210200677737644069489886672503348479483853873463662954605046254300978616365975711880489406598483555022775320852535699057093937818763750545716489652178984823105519804142647321432009716137981555072595699300938601572139311098982767305648988161509230828599159709570984951679388984140874411729789438992350833124337548276388339861814315408883759439870350806259842591681851457904173267303161807523789757366508043756100216388137055316690088167666212306178513091960017078629483004992107979482967712764007560451711932517498680263224001560173200957229292561189066385568906081016641381748418826400349254567835591382456700766583870012461151018448369874634657773488820263598187165807896551653569905287436975513741317373038162912084527066260903941051529570431559326747507222948615063881120883438152428498336167154782517255722460609298805644923861507533322959893652094424110367867170685201269038392764824256190823954672676333012388204204824538497135022390276902496460080822241014414600340617493348629221296910650663477035773487381541678616223861321022456383726458522369796209401615370433310477362751190884607712968700633854056178133638447359674836809771206213589651850341864494035676078450366844327387055005335540015250706545231319893950062148061260556006229279106909476577076136641974693612111722671537905583726425724512368449530753603908897917310288171191162087159369853060452374513688693146698494093295628133179907954191963483430447788947806891689659784236892881602340220243138087562992405067332509951613446310901869466778573740555464347210675540197516458042827417117936401235652657821195995535641965587144628328944024143727410844205101993634265063222177157454360527457204869153743318115646142734587961927272141829114783877061606803741493885946753476114051820631134795594120546443762757631119005436134673199240672449988982481369927094724946533035654627705078944350837177218363621658305376907906183778849386902048679353520572275447830664468196369354626751551654185391387612830266554621079420348582852028992812767767549751827110267287410036838036489733781638515249741912121710152148770463059856316229379729337675250908168272666769921543330727052016378042510977685837118360173715072567119395069500099254583099222717155980636665404327988676666163182851387460663044678146018773527569517421416285039250399314958848778501669531756859831838164963469951745831978444363466675550681540152993766861888085153300704487417234068283264753676707694465975520912304560229039771534884816418170137195086167704762008467157347292079611701243256232885240815744457827536694263221223745150407624546363470677202584824444178038679007395137842518039573780492464682643200480775557933759233095456741852332329018156593406643666673713005545375160541179616163921676515218729010027618945136560144711000556231966255354745407105133977281759288133601571290623420294114351166071298096974848900093564265989499749545247816978016241907457227588729889509529961841139336841159247318374050670790213725510769935723838442385633206542796282543056841983622926287176087098348693073770143961451939121877354808789567350182836314783184352987877106611396925038740801423832075013312736950021751998460420369211701545342743485290152261227461995087781937904733730953317886098333536232008519209580091233429179206470633945919506763045036777994295287869178925625108476715338775174411896557270240137363121121951330195390731738561124612724927719156391346552585573215716775680542133276855517512952494055422028273273150147874714684404812156421559571011222939909844591620634639523375608029499062588506903286488260446511538544123396183761514862548564100917199129643862346122767941753850417413960320646735732907246692984380483631575373123043861996741987005319569107993420940612015924075440168227970341438186802119576815420988528963511636749991374072081252130262768105069129934927558519759291126377952083147598363895323337237039237736676726045580368469288546150993434624567379938994016011525534563405500256889982141023292147658387015180910576807094872133967545073788494277438191640610200009264394578818062138627353477256429809334449689092558893375820831352888597296030436747949767593007746685195782274659442840197056026404643704964559493741845606054182428677727524874689498128013971331091979802549242809579917944680078881176542602255481222029016793467768298188737954488570107086827124101600961027756018844723975656443741817746812562487631631688803489143430217694147393530251160183173495288270752015924081077364301533544618009147088442024704447106093244541319787249611750341851098920577185087233220710341791105934372167304213785572023247874030066698438880767174899581271227142719366889075500101106022537948713586259336855537837050140042991526230640473829310303179235178803070894722052071873368658007202034518156938267346132969360360207564195715204337249937597367799050481876496894676047442912011434063967004172478206770554952976699471832728451603996967964005557794895871610870537718090484640865745335288385477399518349656253596911793941631247160829980840620787358323069240516087954734899628008484751012158318615013433636649255838199747992605590921099164297466100949479345650269164036806287119265293869950001920230779245797906311572190074470493876297624481102607164666911129859829005079699652858071725306064530330300707060342628542148908646722090747442696303481934395856108383120247424299889540265625661240669212172046982313917515882797593643967185347335325287981611583513628023371912331281703079173749735672455038685791250490255100351074369066512497597393212158684144221286708175440150001893114327001050723178980086952892708539449433214921196591096449815221667763042700818458111730307931849339112428016891350009473057550304022104056615534650083199876839241786724410694986066632077817327933956322274934783913862548534004770399821023696184173297290223693048063431683337981026915188587223781900428483326131864682715995832475763231115698663345013248279825751121359795356868313999414084400827977047789454842711457961920174625991592682907920297041633539209292840610214956281962550331761535386601351705083072154439650779460213520848749831177543817012207141132676639827595737218850731102227995901041822012323601588369799747566590479288743382548922781402239031955923536916881984307832143302184395602964344749762728923456582549761930676060821281002324558780521123282856542758392482100480371580335342173337154430562262455027224981354260795349305059613871888549538971555439681233655745591011296627448646591718137585414289469367279073052135456434740416427341668567905451781741198410962195745832146868152869086288648461168014326055988292473087572862368100064632651787554068564287615356032292254181651736262020660406581840164924400009718400997728447276691665472637438843518046999097057744507899361508016452349739674689954049401148296143605858272728022762071801255536182904285526977962622031185025204770010085909256753827926436064897974493267570655632702645707143488570243715685278323456905610939086730550780501752226408815142843060702502491399707273250167284533308492992942582270503218260737155752794473532835188737702858140579140763004725493742333117093346656521488158339089705588248009227476291491767400141125684831589623891038104213625495540018098102620702671931481779135315920646036743261397581413377794777755615776118047408577596087381581849856845303228801866829072052476826350884910079263662193816061462925079141343618502313769861996370045719335058956232904955040521243295854221088753577477996586519020523978057488660468234626282943110371227163820033116769407541030696008606076776648202096591406110581811520790732264806376573503907686155406944950097649144136015750963134865874749722250142642120629529253433626794286301062889373048676331128693182064687499313628066028818731877800517094736068399743585851645183072557816294284804159606628658212034132883118588899030996086369663467630530912600330391771373335486746904011253662818823866281332218035079263703545877721314114930293203430345518380945593051079411968070491148599902249004914789002443543955400151825574047200500424444467832457119595415195353778466326721424238340705193485194167029146568916669277364922361079518303546974107989957186896469187966072910043314317412316938189165582324280284139741596005009229299909884617430790575290200471869114528775855812621919431316712892101536125227836009313748935550162290352812921407788555684470654356973078288512254879738285915172001306845316573817404910376181438134366624132804265757385380251848093989743554733226069004902922150891916773271593322452170059597070035471878362157247557334547176237873187656146981333945770664566629974059633896073530299965953275175986908207385308700413809420529823509393218307406175301454889633493536543183325751120723330634981782029604912492054576780905150266192301562843628741206613511153820680687677178806203616614033750570164238806075195498610686328451117532355613554629016450087728569074310489998361354700822804889015183667599450069569251396970804934108762315634557809370865407801561446725577478503621256035352045977085933637117470606602354623482600353355331904725527983670516233552383320474505451757936395155889588317296856092616402760168755234795787061764827289892014677445638758871074894698622824091062256345428607741769361684933149662101612611364667975733968242620060641720613182379444328990583824207775890386137822716623302259483958360388218509611467389869124108813702128090195667895383652365666581119363877676010996596509172753968207892446725903697208868561067264439906982303017246582505364679733956786600735160362310860775364606282436294509291831865627743709967861355551119157305635138915953882915124439412677251564098831242288980281885253526214669164808778434182868917073922857900564537695991534447121859493515081840765885915933349088643172742869145833213782279570656298680547480267932556146381327613007838361411260958333279113020120038005027617153042449842514571232004299963625123496401318951376301002724019838371739491369639325477897907597194376907536741856191031444395972923507093812553756325844250382750362369781056950359143584365053417983819167995461037811130981271079723674128858690513889816565979990783360563161758498998167812235885752982699894474319137637845735066317548862336323443611193942197551437083943053417490486362768398285188396355612067363418049418594989601661953406129520526965369538240009745777374801264510003332888329417710287820967159220493378753588559587393547961597409983830509610903429317891095537876085580350268681092393685541461880848761194559656072194685007525966644385059747492557030681130812646158010184965583966009325201298511356942122017652382291908619854001515908330639308283518545258171160075726325941760415678789609358558924631239072056683965276525744671533163322345750488909847415164489082856027406487866743480953115939016252690437272802568729879657729331412710857704597224083495892160748846973970816500322247927239873494045422042039777640532054738728432050753583204430247178964896467957817404400687842855246255445347891636609865422693325013974270349689712535133626617851062141342975060740792879379312321073738464538540098557277319659164277621550166363874043947496612581341336629715313935971426132705646596539997386625941068744553158289406332397508251775290005407769841844120838635455468215534964900126968951506037691472129575750512117335311976520379712055680257714933885114186287378545905430832730063338039660629815751285184103207674045509454223674998217810107573697491862408382674751702381517103750783564855693647102898834135138479067510098946356595698611661664479044937878231541597078558425333901246986691422849979316764759299471232808477157422176659544356726226088685312647544928451457235733468737402287236143849066096066751894480527674268562259927122746235021024600173565916528435848036785419531495272784001333933850502091288540861399394715190137636640060479916130974788930654949139217372441311984311315677452611484820298799389352105296607695193279334514630187729403536382648679230995804868683430434920229849378685707130901466381237276811685830079905230838415645848789844587640031074576476931996965403269057277747766978482821856644288879745833392770737217209186373964226806264414601824014480254721636969805232707470978671506858020581754979816988848003215054357108053328358425448330188372559091199819043068578720218368752372248623370728637884451623647976982921980740353289054246681732967140940547219497219208794592173667140093635424619900683236257100691335406222488575137763604668547632287534906384436447246022591321532099723986160435149890147010812208024641074257752626396640151972392473095448384564886059935094883089763673863978286329492985515303194162768693264364564565620390310319799594208832011808446954453708457297388167125925960383593200602233782973147398957405405424306034391009194857692080733557258813183405128410338477411921229329211536196941398604539198926012565544608048019412043207424423328778342302890123115408495754214771472233699608859409141092301092883029817024953894994445296021382254620537170422820156972222905181868622208999089757686511510882124212914571353012245899257784829755246915085106794083594947003804458809346909585267602094664955526765547430229663186888237217555118243285975291339069111730998055978936796849848920086256736901664275947219374939357187334807824230217426470670423780857769675364598634107506996980375809637625768450218113847980659253000401820936493123294036580228302497102751946034690018357822881400791065567580382156035896573648990209967972990128522734384751497439518967624840172000920885411142027901683234682695556066548123921472470306417117608121847974593830046461538514105642081999405057531935189487902425719936728183862067055635547803026232546690364650058814590333581153388472272819204534709873339388730889702374267711342658440797634128807520720636400834327107373556793677830085660342413091303542659147314133634687494120043498845448812032427896966132821967252584857904324974659877601747972979241908257840752113481259560267706317742945504879876999127928185143928617166334721980210698882007717296584884825709130219784157297748902313811610400066448161009703903421930694228659605523278446947719668141883739451310158827699274866392937554942740366481387604068763949628373194760723018848800606528001667924631943307852106652253516462964529410972089277217208997929110507247374006294903662692076903367672764877638550413536151019455908366556264076204673504024465084232502740440520438219888166811704130548631180629528689353042675673862080934942714405027880463886438773024143588215251337613726791270227808123412920011631620837454638771775729800969655644148436239503849643686949772833652494840506423318220072222385389824407938472677742414148924359490708817372598920184207407026776907754370113785265975448006042165944468066774585062447797526128981767983124220876764681838215057504886815349416252395935681617513873674731771491144740958106028480304205670936225027041345367111479537925069838308898935072390919727510368170888356249379281550115614672970291630147317978059244850078038993151768219238549133879805096591870815989616290934363766090095172221610414533431978414085427937731352901450131434082920877595714788755885452627551939238261631476920161209704375070173543978140723975188888477528193594470102854970777975181889972512213806357027987772170703826693777215454093638849909190692307986414115534221659792299640023131719840798297268945172150868231514118858910781726824042614935837484948202161574351314084569458052792666565143807960405146730871597384811786074495411445048793309605775473480630610676883443596947823110887428779292547573885415500175397529001974654330485546128867152095312667547424989740774630483393430761496925346924730460510531630404712241744360834803726856073802687920244099195665791230502013053564496687000675730701956713445043964593816889228227748576358498584567787183705520464370319253281193385468163368374088645079750125405707432907345270259518730339631795432767633674025822582919421948098963718521333270538544569372473526860248710997187727764379629587486935900914603663105224904927824148574983591005452516063276131547422124839546696802566615582531448818503055195087597128600453014336109509397625279103881925099381816297094008450364146503241422224335325478119464500119553201043771860073929765789390475783523621183550088050834036669737167871165729877257350016067984169860729606038987696986108374686291231955255479721735841922560175324733377675372058274601771229173551719464182313092768499403714744773904228434488080310110955702220429803455185511532079804626238642405843754737623592423193487843531473467321726721046547107738757966497217428839219487781798541734263215917445305697839194481201478977699553370341459839952304366018421966525751689216849990608626661544054598832085119461523140881827195041020721437687615073749643903807089432859757752005326505684507814046099019057953790987511194653281107703342183887686040435514577212655037571737790684588870855835983678574651983893413159935949687283847132837217378780497149414186028220759527875487088082650454237087773854722306462822789455663038093634376171539088833396774283344039505279830988382202242761517344523175347874099796154870930006701846768094215692294378264745629865321405547190769673537447171187459790646144940152130181914458355260854098670774743915330826528375999605352644705461041038687124129714198761240480756024379539829953552650336784349077675467438796463035436944014065908305112063823675422454429986124217680323149486713513343548588106358573568404963520935391414666883760452062623894360484687100227610428026782719833929236428289707239064956071969096634027582917497504763521069544498068697529002902878318715904734287941364336653291563564730699069980014565428237790514003456685676537248736507411270337031381632178449818391504193685600880221949665866519482152217326496211701194840473845802129595876194434953522141404919909627450221701259032572796808907158318248566385909768531151269814671148944195614140039786851353268652962138571355141567428185165674256655325650004301741669819320471148702096621030003514452830206525148297448382828310457796243401806924595880120827466079140629399648597096071687451762899023949391471289960353007054397755383716891363138989187120630502431878366122957572977064868967352760675566693057049795474867947551467613584826385562898939568222481679717016804282385752896600329310033219017040749971719647804968228236421454600460567192041607750314746354905289692544854280999955765040737608829912070159465992386401416957105282623621447459020374286831189522198232045788613400367812939144710801618243930515481887976918387780216368366847845743082422640288410215216250736173150888888835407572402546655692059151067728168053233913706401795350724089364219470748501498738022437507011643332405699864694880332863703794533767829604690194613528263862969402990899664667748960937557383325196175063253802314353331872951201641443600112749531890244842314343795965196797178271574667196357016812524915093882467396837268596739423084981455190448544747742822233502801325245637608487578090906318940098001003811637705991558193872566042209259387388254036160294928703857933950917362231999655436378405461291152759249021581996284670272325885249343822087621154272969353350202950841573663470739986383162490343015403783398238840889342949240259793581161116550592655789374121054670379900696134536155796000288984995363549823814776004333749084149797395763683610353136399992883917613891143646482537779030060517695621725760538389273609239343111415202266118094407328318609055820143296731281504732048579749633074904485731524864610631120281692054649785375834058533438544015508530419673089964586456212069066746166390721477874718447065088500254475174869641851921586126116974524098593674688921079040598821238068506528093006702011092677112719527202174104453053494762517073917553886835093681311420612738408013790372637306533220988243454032797073962087416884999300952302841790536230543880695353982869744643001642951374067938539894133300887494598071337821892303869777970554871381441261391618041743824613754212897461958863269087199660747938102422862322694272212096284083555755821373751039587492856398420186245726291447569203313067334165849567524562217680739841954010591796275574841874405365393166077926948495151570338463253373453397896981916820996374706031966220537876321844309223092231188874388324574649342436725074218843969164938834608769032560536240488670739187093037544501773387688575560543615235900006670742510682912394209833711312175178968245506291418200780840635699112093567571121674877878450271998346872310965250608629543972906300357524173215439043130144753217286414898446902435130844544413062427367171084156375645922688642134658971799619229975187193288396779131197861541834326494504108562026261194596328759248233783153579969036676235972497704540129227352385833152517089381044142427710356676783982286694165137943178617707068683893726669774558577640081657314775423427664631682035206981251790219235623365558396199822631734450628163716898177864938081535388786241129435223151165905480981834534892817974105772299867208910656828433279296690634877299766266767194756481253668639443653894718143163855404613518453788414446441645029523000153014421968980792476937867959731717632756151104746689266588711646385056402423975985424993124014205784772051040221528925828151269958214683362265218477089534355431967525178252116827575969377244976865212431077077686484996560469072344041112701393174507253137208889311721626235001179112410246805056945122139257121336714875860518946626354523049447326958193527228529564981192152972840312402767360693337179828199207594527858326060497841548801549187885484692318780105985232849200907096789982897464023325735276743861923430974323897113252874254164402501335748933955524468799313815359809214910621288298040286243638911514630931074589362232639421408212352655267937530370203222444286815211379949237421851015953932427127336451594600897917890628541787889254586877136237642412838307214664746570653697740741013205152423409302200304328890037625187774852957142904717120872879625885566617038406506729796266125730703066905517949060748438343199070662626375383820813348713527413952816350880188477550816254242356309303367581693847713025890829135871183955237086554467622439692147599805492793636438988083879456220172208170156278382411662259556036841381217140318114224980783067383256594253461265422048402058355044122968719304351562408991567221286100844308056219455867400662509831949517876003339031384162476839445680081908819772572880975864846244724813614095844554748346055824277260302292019625455907811481943721667934904138976642723813095206980430790735312513996986258389060578077688166368250326254703593924505327649163295051214651368820179866315759647556801918845442700740792635142578871193300283834880177935391623919585065853514380627433277738053959475912610196742187881621483611768453919852929254083369951565954691602186823092037833282448975096282760704011067426384400470012983310606569610621265139690387609702483542031232479896304601463974139242763914735612449106006086264921775269092519160023614807591911115674074356215420754770357445135640254519543806594703669531969958587596392818058611672307041841093434612324327201706580921524755352741286531280890383736150448615711228229810851780955953694647066660488885441402473194292226506432304257681393825769416293534642534009089428170099789377956924207081038850318140303137896301369345136326028412883415376522356876302371185253421885063423744225513894766606205654067895351537661737277094047938320451346948406604275449036645813285978936475750099063816067301427695977135781365235414015105612482123809936227637072694853113600068854382355438931824772603615495688524515385362477637177434394965741155032977884162302732729087934142559829048216834312503137485283902923231022493312733670945629297043299250485137778722854654818647404796052696525694493953134236138984968924700333676815889744450703240321311993207627064931425117276767964001590611580800519970407520915218527731575707957500695387947784012927808929138609666505543076225079413023756071354929823867158486497683642703403661936426604198600070983146227928917185599181825914075090463271746618052391747498818996489218187767060224861409868530168809719258800409148072105260657657156752316899571352819118885818657541479877985382525327130802208474164810678869311615520084666081097108475103726526754609155760560588429428064183084778430069941405342046651115542625408192332595793955764229801313735438948621642206870071087671304514459562242747572021785882034849890290550565060092581785457624389682143391175523038005856745407603393395297560949902100566620246700281647529127142055137255577346374690701633912599652410027696421150188124547262633952760458977192168437889961008596816682264943504338802678681216378807204410094517707473510472229443282346962678717846300574802143541870954514133062696286398175606904469790377555306829713081333044375033877116595741255976806955951545205245897951425162298877322219912453176570075999936117538549891297758083045761957216260705845105675623093268999215538566722475837332373526082913843283442040140373878674388487426771436496136338062613018304071274117204562447637819258375618085303446819864438110024946858243802383820670434388435539183913163301506390135737930097093082804428513535692018277835426793154292498589103710944774583246500357459673379000962961601209611101117004222043966809177299370009671523868764543792740984769206844029633884620822878210334976188295374594411524949008454531871715870013705535331462352230574910287706407440034959539715639026394607208421239526001806297296837011223309707267897909220375301171993373783434827129040784393075889765825936368921749198488341444174128961753784054707302582928077241170409948610680290032684009384805487440340200912760082762958615458925081653503570175412796018099017421519131030637345159979139571565239841224567374667742871623755640894560733314874876428324565948792025914965250049837460081096659631999494889696977114423362986162252326547157384815135928877436091401077415351689797004960326693483950135921076834821875255131635230998213359535487457997165699194610195581651744067249463203587237362524117658555537798582217723849444561021129825606961622963696127578470323039347909128905310377224296555294755691790982419721593774315182977711701880703227372494743259700204134597994421960679993941263687822018790300597871515398275144950415389781601083351257040701134940903400559512370211204100763186217351244431265860260183680047980372184171297985559131566139732631915157192520550850227762228911083417272441367897164177026922392190307671918429413548368773563935261900360295452595269151679598053129386718057184863664213207120245004319376913530326572860526044591840570760232136219680709139542907802046625563672784539919348910790777698911182115600474509005261627301307200609368890006057660367720219481277459408697421626246209726808817874535305725190999200315131882703317570104733557441678224256682679820063273516540465196432805652773888491457865071753264823785167321962813581711454710435026973770146735092526956622627833910644985580161859276353502378734390500151113037672089158943844961663218823431672572789821103485249045194668083494553728787256286461120064042651230502533846193962421105986805469077366397266990080244464255433893742307522964078525856989638574119610427681120133175359009432278617945741681754486876361588769367818814983771547496589268632245447270915434646567975091660638015987304761556794064610082898480920067650427303398468859145627497413751877761293813075958627509597804618740482896583888580924367031128859020635316484715133036591229452587827623989317919192426341043662675767603867732599091616541996007545798373464988665283364026839188789746458514409771811298195922587845922042753228752694803564800507925202436734698575569108499778684703065697902898505948997879015234899017011304175766967051343097153101722770583781617404813450548075435220473022150068123330670932470491550209764601464367978393423818116533297647355819229389204003339613164355980024072097440073688938327491630683415247584650330959515330669384754167904132365101504583546536197593438047538523240434572631725077488844271415508237129324922620454779230112622544436055716234712888962168657046205664243476038231849632549023063091552858787667849625492293842447462343165627027724560487763296767911579123492379870548683815045349262025620232364697523778855259081105888589894853395678377534961917896167806306360093594946399164913486131147846414638930696061888723534919094312795656549323922625328149188783099395915283868499654390955245863869556163852872493201483496132904860362169819774071109339027740842677176152861719318998681644785973621766963774705206393950182588328060359141670774396116804968821557875673488720565687266303770239684310470141534109901742484849626474227576796461682869779970559449784296837907977275168999556412535892566803053436121700687099542519562928538137391192216972250050921306427860661713898876787932840089147706848170818682992455632606548092951188131051265404192659421470765538830302873389482430570620291326477651937522031823729156421891057707628207208107742182874482005633558751782927743268119175569296339133901638255624851872509996732467840242950445079671280390623642598240822594540487228100433610109843381594950292656928595563133092279347758782540507969060436508618674528478822484025439207514966366625541921717658922303809855800564533324556149171373493615430321984868583093466668354460093687008873142277264690531752252465274163386049650979223424735302884081405202914633644822449886016952875796645310541150481805282989480204059041200401019085213552611279529860046050759708943380495062305075945203401521366958009580471880293104319887190928455062952960936070486275286717171057976554792122340277507389538458750445791107292584790885471475958502894451596427912691109444730159753352050189772411104446859307872566425010181183175181030087066717440772190050028040926476101365106097269527719995273130171246507585832899936077091111150473791740158473645316898533256484604387329997682584522703275681728601688238260905078849164871775060735928906155984806162981945567903181829027494472240430952161178482027595118993755700736374483596986864366254578766407870968813308305218211924296930695527635380497242673719952517951654909053639023823551591973970878957302452901528618312066671806559495497865615246701266507681725039546257489247870440144808102262171184343892934458371102099673570927861600884462796834062460783432618468945108823295832045409425168090455728469391994263407164858607687918783050983997576305566579628436415631131340247052068170302231392113155102513164388688632280888342886059299644062891666262176112456298406107963834843156149145157965476954451440400986196977287910456386918635857537179895879889217678722739454456266718306150887629703481023413171432138273641674889958523936653343506834895789374670956612003162618966759284522172562859419853385515348923781387624929344187255885496102592357985137300753858086713565596792507439651700894663247289606883162005065185754939887186173238023582612570588793582816806500250398135617724531904249922722314867291496636348855901621096892122423858031935650473160807544713821613629284811064127830957020519396911509560209126266330567415213320459481778816264256107872188806687915187147467712945673112561116110154983444308730479890808547042431489404929188392512078865138764679647634653230714328227518299996901233387354360688035855262102124901416151842649799071036711029442148676403912808109192551395864192423830487572005402291858342268686398150549765973014354448774056943448437984907535873083444455287591063485288463851040475292274609116579826762091437709701052162461537478836305678930161882671670388166001172562024308731560977929340912504887690597197348965373750370526710561979064185462882750831025066718155822530606411874423753399538806813724246519495679991754288245804744458132193771118378770480167434678993570443758107590959525687102815043201218079495976406705579169776583322463887217773863784274315704197103977944885479907546453691802587799010287666253448101415342484154386159808011165352176780890191232478713741321404708966065262000807344718515988030450896319500652457701540895683419202171362116070605226654500908341964329325513832373274235372725546229915688184735825322241509101665408783316795135241088752609529558290614646060059285018170954162227807112709826856971124811157359448109100009018254794326602567221232573980891894744003964035714571590362332233191102204840822637156221999892188908083191055769438313222695545215891540446989123925552959860353499973007687355307094995539981557247960395312521809822482933698299742908508467999517996596731698348474792519913697090992086814674434183536238188932833623214675968718318993191911330161074651460415642273995437855317335805062319470265657135331178930463753115440533468648925962008090155775612265906761411906822341704430350842429723421903405861499346079044073331444298393802144699792496301038818898613875157057337405971742373408212675220275431325254808856452458547263607135689426036877143752484806779725248440722520768416899310568871497788542770161363929116216270407348189706303970282305286926162617870959771324493396350257404919563189762240546359641672688730490827795496718782677832438941483356088748284654025294128101278991786569425800535706666811689071025307880592333531026760445197730926252692019797081809641896176714140258959871004019521313532623520347470835456617707297212843843210937369265807958323714601543334714668764112636650041104284184112110453335857318699691340648064634242623929405404342539693604811176874237342743660293637974105519187077472348670618209867003503619481245453358381343834603290778196301863051885126219312278934338440186078327958921933817073380668584161135005005958266396770431931206835067620789164589436390660968380356074350003037915259994458097916173081432110803504253078346786826876807698723482188800973542658459957353888267201877785347963546548011443975968667587266403135151154273427776346263847276671684523363102199093702441299858021032464960434115596069601711185671645026559252047233339559894456336184279717968948246193825027176474502807525397755787870427342740482517632930696979065863393288279177168952103269457439866655895171738703850227284601172165353057218516302625643777738413352382008989990886662157424285936235256089839393715631783685783348331344502449480414654880527011186990221728533498119636433771272142521066563203903778068103656266465009226691835623121236574669003408867609798435580249369359754957789331343770571798249435021649177523767263645684885773489374547353908277937543650818207404160785731220947205997988669582690841397888959509765197973251005230424466161860951689643804484057967154108873216393191400183928702329573249237337235577037230498876233948248118866034547665846295329620338934266846195737665937377461972183872768411379590730989029453493228232727000274889780786584529848238296822263058502292702768756554454621965965652095037960583197349989572304358850988212707769982673934953146828678461996295714948249054919558218948052615735504568540507981597495901145042907864008598914806078845566505723108530995480555016553238665507686804558588148909257900825736762755603794873338835036062606200990708359518050521059410136468016420731558715916951135467648792457516151634225309858339847552536004993914971487643827258551764423762752138921899975728520896424295537129675655346445163607171444468300067811594949353131807709955398311143073789818820766904623480698675755688632324086150440623826398653952093567702561153394132957336762780939331261122847489477887340276982940284183563691667563883338739018721120735849729667643430342301967061490849934179628973197159829486103433843280989265563980097295739234314958436292518502546664005627592054516328516409602270025431369281826387748099475134038450429782543245010684587482611121189410358132022723119365785390400766826522404130258291850332810184927095215435015044228641201541095253313612146314821464279575167337852931265372233490788540203016995447315947089339768377376665127482993896051882661750931261967253520797163528097397883205385250542684341478610735336422748704985817621415805289275859497792759320827975086376514584015239704179178207366651736236799330853106154815120470190543766927261138788345746913638836886394986459201888514136039446217958135849319085391377055712394293102089757501178744423890715490588385285385343945030424977178879912923764523817410882001761472874657758711865261572232523483035241165957638557857091279779051319311853486387028228283636322781896540475786775530419283559272761376459294086590426527037538711925149691994019780144801485382055543081120797842050667701612760081237578791473367907057066090166462869148418812273749699192895465193490684306701361035830985579133103910996763556782660854584675065598993010064881656160943359659597371909202081406966165252435401228599119211306425176542574739787964636091608905494746839508352414955837871973002834552416936787813239677689159947864969900960868349723341193343364587820180673692302253030471844311634359112971033153298409948000186665640078216003420837752265644658877013213791103945068976583708410143335759245016889433824283108448021412675736160682086388273371445118332773764539486253171233092784713754915269072101881884486015818176858349204101401496106324172189476149440253896642732692850380907632312959256194671296813991882246036943615348873958189041578284467253330572851525819695723060052676322258037307567080466825788657821796462167286608173126358571413110459876760004480700325151332223407631731019282486407886091886791460486842937613208921514462234497320499758643079670014853151008541226548707914088687496955685885418149815829736522404038579298317492614098886319421484348629312796578014815141202016002258401124968617861054238187391615545254800832225329866082041107163867673209360327029798333875062556911151993903101734500580312173541909094388437856838174540082168491250059419442853825069463932760925517652342658102011491415028249592822017485214138684540180291470987760538001450603664627498298972789731654961935612573701957297825023750246122441967468058351816287037035215948653876647100879522428849181232422676260070608482437294939350205372920806614473737171229935414570335356781247143915723130785569175654622294318437828999550645067817987087633434908806928702144299299681339689951313380586726319970874763454450101237374361685621386406811433324722528673710172683020608266918896501221725436931660188446349688377933789357049617213071217047414098886551480809195228288077695440647008321956549670663459497543182344554106762700743559696304071700948555184517235480783169261837810822391061912603065098009410226456014774819537682892689017165215328249412741623194507943078703762388649335335735643220851009895684899597225815231448437352058480923003578577003792304094082666440153046968198464021646483955639808038376233204334122907231712305347903845670556534873932000223281155688381254551928603670673487494241484111426321581294299672200997972094380712190142117864692192789968801959954682115644241054455690714143953384412850410066318435893566147315267915734786341777104417165207752988471694445662060830554823962518183977234767131569942207937531588231315113917089335526350577272866303922320591439883581559656570390266971542896828966310016835368754701463693825393802964421279722189548065015118021705834919796097742185078425161545766502045767135489584920851913189864393144254185996052109403579405148475571612134801087224217665463838517134325219195550406570756649242413650629281493236438229533565411363856320335689556061744001332144996804007535827968582620158260838142584647823473523925455203010667229461820917327719002946518640935826059552747087958076811239967156455374852943318538170674876420903316729448688135403385254044397045443200882489440965765098590052349589244439617941609390393875108307333479025003943836113671422167212581102992902211095474736393563635905266444766864015273448586019210708637787812788983678158557029402524265123522253709672376545303386190896897042148307064656772456568047710255040717768422652774086276265550000739738714837031025116690715844402480370668178589750305707355381409884830095610051182862737987771820268727781040993694160164676588325400621954823019278882455231929681050044730486823557033184522260892846087120225454820523825873725631742078042487803479060972418286640739063181362243372461903950581306007866392997496668641178141155307150920653076557276808141199844414459990964754471822619580744934615167130877532098363745932377674325479499638101803438585093815058989377378017615761414123708792546315198299414225053883853149648143389976215541984494921690343292694803562078914103106290041976692795904312412998775046219276747023304624533434544916793290495229510654155424185865025975933511481525213114101261729841194328241398346208459158122086549172419228683312814022825939258895468327831637740010804820380066185865203713171658878872149209493640431820956364039575997299072030754468454964217044136312723811972750619478975034653981563732782595244080991416512258708722891363777501040841367535902731359739776858184784696226383751833705405960966838781604075775168380654446564705457093616052121722499052643137307117989909465685328744310002077682331910087914242141825744811632535654089264473753147025883094730262486370723317933364174826353295447565414899915201146993255768973493975405893876677064618704635989655316274555777347315968981806882472343530508772401706753641775781006602851500647869943950671305775043271690866519042985157289515021865143772486235651685802356476918702977990710107243821426619915424134499197048293660844569454145670736046273534215704697407889325611631384850615564253176552653058017384550671515322750401006962379936824919145971657438415080020260993608768074025539812881836423007001921298810901798376607338462983513731530861972721292418099014115740047520674490186953544445392745570602342906197662822182485713321074872986147052601437318962305938697559233881970667189709593200245498776164991709662903197951671035592039875994260682280642032026176336576183998235517183095583157168302483400985964919532877047737169287410103682385447917786301816181641556442986589804269959209239137536891379047608763137730042951194120952305721890402182431115969272187471154730503490961932734174067869153459719512513632611781272628184922468370752026935134367306160939248519894783423525212867082230369390937756016898500110850929689581077046176843800603930204121956327556260602702091839196357493936535225006689806748888485334304656781769173569796439009341581705142388294104803126030358177124142639775652920362708208897213011229019616200224623099235027192355249916517455631304442411295009954116911158854070728224827335499923903681433985728738765769182935299026292539859138481873485334882582563189189634154092210537311804005889017419040786284457571573785048860862002834219318360879021381479552504541684578153112305655796215133353638526535413706101879969865763446245569751238684274101610124722706018970169331222350737596659516016634984573603357414010669228864837533328853179319342193952568697048528500602088882168265360944905048689415186180663943554069654621377230190714754062075711505517038604480280313054810601598368570087570379099926229357518598291614269412312790193029133412861134131690168253760261493160081595463082604201115602387102970231624148153886107825184923361315856799082870340531808004916780668442338919979113059303326374055984510640703039028229494313183931779513858180325137856134600801650028451215575843231920961478777396163294271698653402836180331313050834432829832236273129796404793312995605924260562539413932146818094013536686758414720650272527943310717144151392549726481290467943430739962092062796070181243649298934000895879070746826694174200768919673767238666150262018550766199354232011112828491155252520933538837301439231564220227052846048331448804840174625670454509466465087913771239546210411690115691604906937743098851852402408382103148222837895478855853211666062538993912207611060911485622029941095269669712968277124292953944563691627859463600588467289775836255694180523880161420673987977115702258922076548394476884159205424712360397852087346807453663876768538978195753186816378102707089028507351298678123215282428938639231061448085767809155593835819583036781086826707822580216193490286615219293866378171448883590779203126696680236874560871699029480406755252797013494402504361200366600431567767682655820990817505917852857990354233892966137887500405525482138288855757423890472533479986808538227422184673833779499520418148766313359821272190889717827837617452035744636909776326611170385849887360600374698289568762906296317452529299554270946957529707993954708358513620416164805313066454357715338282980124503079763566367916514653424865950536184602796602535065061104779651291587285910564700236570367656219036518892639933427437446231344876836843109935063047962310107155139731632796715962467442907016112910295517492129625665523944464916761049576625846582028824799501298480669463287232964473102016553603256450575551414519357925008779171920020847652803096420673849061799865384699095059977512617890110259985233288096550491631451457344515755444257222278133826180908147129267574805222475685426741439679612639471285953979562468517078254352164280738855623756643682272093203718010523322698953936599715371792983516557970613961526665763220962629204925565091215975565097571665251319499669031790631223503649597505111252043285203393405565440413026353546928102374077169136200279852177472119032296337661294576031639998318950755924337555034636555411939859509079283060603669119967347861293117404751198409340615963214596027854043444830155405768797462660752506319768297507879159573854193960906093164923265832387898729123794925643919569610881409896983602341884343822993372762637597965017733590283753446207094359724684188968666624566787615942748812719516082645769270753998339689932119400741962209460525072362689918045996581397102673683118120493959195209314657702583082583900088721040138408014454291179380352195807999386471926089531382683044828851237694680676109751156039519800536156784810504524387704669190355708297529743575017245285863906562074839541377747793667018122670507527417188657798651426476841174975150312921699184856093611388001549663235597504554640747131073709306917613946466447141063574053329176058766046308609325274722741097255422166975571519026257152759366317626162302916422693289158575033974948442353575791769862103754788015886516759177618313622368275341044690476926239549624110592238443224470900588800398632614932757846843968365022861752433788460271873487421229366044547031783476597957431638687316608404969162265362708118005600730735535579867006217170950452899466561200163593712656080888501508416878399754608302021054434617366843430065488533156573062935384197907193375039042345434225367799633821598935685564574394487130019062705903932882767786555867191187976955025565624110455860811521148496127541003729793105556253005193288511946213297001160884717943554565488271904388848458295238211465591947778951656095002318846200131316759501489739995475483049237963701802355187779596429188179692081652847135498711532668102117010416363241171819388835368736365149130884010170482906645661274228881107791175790567898296355941906047184754536118655460653903047094270085134696367972212555640716719279834602281410876706165968464457632135921971840552056191290535588733022129938125543737808356823206369856238106049484007792628697962880027190257294017187935195106455917612132111349551546885619236912059197863576687622633022045257980107955609409096030128925492169522022057537891157401080244566796583464504178857563163327788449472942094727302510613380531791114524122049157251996445309924472212900847806173526342041350048920484473831118172391377692618551940098995869874795905739563442541357555103591221735914707922921424139277781223972909540672052742683118425091312469766167066119408643213510254437351649940374760195473571433126311276135450113164847200892523057197489768771318645440144187824442876207299530741736364678031235236148473426263922608875226960664330912947366951893740644116989015643673389336576735625654954177879481868640138475189556318233556407269313095485787825856328484946052343722700437771313467304262194223439447343672712488392201044392105162793582122710785834696707304013583505928917942248676172839277925578364875311394181320464216167302482550713194126944132775086702880869754122745400773271735041745734702163043418564314123425338890209312239087192107228360234480292132771340058974119408198192836450740022000396988221265362351247853092190228934884261057930392691015599051852820996353539608892141678956241418807537139992119233715485364695461245332476796886899722642615048439829221050306839839140194584645441229279931427603627941147158230941761003758574483113224377475515456302825984829365465655565770133460162300906270479779661080151628624709306838108642131551536774313319110878702696389777277595952429927394128540220391425245781557246380914230138830463442906129943780329265199088697212016240245777668006099744065308780881052818236912908129895279634800720877600383891643499984068102714361427373726815538016081387328163699862797821545454837160629465106812917854715698990900135698890252828880766421742762836848656828832110509970812870846837855789937411608016356911487110421221385891843809094886456831864988034473791960018906061815926835040604320824974392020921796285127412151023447678794920525469605877178938458755571651853984685528564409396261832046826177641774435388008637119783238875953106735529999841589563245075233514847387822716173598587937518611036787310282715574021951134259437036369775796865317100766264211410922630801871287742707983731841867925063832299141689736513263209827867472867739830860102860844477398585383810567537009996692120220334585073851601203462972434804018023224438591927394437809306820663467772084537888828117418524345730369241411027241286963961996364108606235758252600263969942960203027967687553325496699979094703887955213799587623121422473851193720211204571976177629691095895284725786882949807767379493618030056532057769434209113166811712095206108034391490260293857972535132248220452976242506384986435133100891276230371793439287706797746072079049400770161745973425718131844167106731836753677728115423300691547589524607617413445813867614871177183893036363765033831953151739646555689596515698293853610930414284909876050446319945415408360247359962714426504259722394307733348629302459363139630498166740828191797341862438917127963965895356850040025234671202015090795199240025814220116954724006710610464437346082957987748384461979535848842921687708899369758171617499995057905684928076564950857680510134328989225901500297839399052472590678248169191122045092690114161477444476339637852463646101679685158598043560780676883113350009602703542999909410881716517533644566815793434598775110711133510458547143306004371913102000256669300893494945706920422903693216020001579508376250188932705083490328959840147642440174136405076035222527808852874997445184408276982892144753347843199906518563160705217730543335403598856535188165752392177876223723578830862600546497771685584915982468765994145545362650275077684934584021404805863347450493255985491049160570086882212196509012295675355611736990986559562213748963682236954238733969060037623914644684920375905652673201095031090608188229597645714556868573142024239420557965559731210978851402304996633715189857162916305806135357495359923894079577363911822381225367995823474105381567387812170409105778668971322167316897102918437857793014274882070152593608336376889535439707159298083234712435305249506688086505296415348173269700504822433658842510741799628399526573359220988354433713233958998320769747911973801737716791506605583738689377474461011826637631284140694369708210006200328102705015803708725060957350023578891706089022045168754879638725681165641533946394678285681029871708507773852473315249784652660232872769668009017121608666440605408133115134489737395933901776325093015485165834350418871160053023970983026770003064372316149874087481061935618699305540227271853472244585576969818630617432749849738298724120839160537234491021454790720039034807992801275802929532581263176860413620473413729591481528855563323303973021654964578999156460673476082810115169866853418184477665239097582794622143698967636715549428226661510627320639621684050638640922388279446756252066063492249320366302159455014414975555522180068376193286314620192092602718356306000763890932507132188123884703943081457512386835830836822740295616317318578219011108496490948895525424008310149428038748480884957983778440473827494627439699202548268891217862927828097928390642001420952850909857792583747949476109425171732979025642974024224199526777198643453528941411218943881652539922600984514787922590062052143713835919404031796772903033765741174409409800546218017209632853359585070180420718466931651217698942755147215249207012547259927137053848251339797114654962248374381734410211199566012159844172110262315185902677515983573219336888873888500049978344380030796594065532172718707587241749849640571507142880272122078840844456987361667675507520623979079438538298183524122585464758655453324922765717302897317644287980421958950600956123106780811799756803990699268783411410884264494089405693482568948085634496808521716535542780270803377155540116935335183819004075846535103125443269630315721868285902614618419876254928833904823655120380188926415920442424432681415274726939521744476526963458383485479063465697081513736897487576956298175718442880082947549746522097111673606948965318654199900432909435686787720127797501513933012425453389346218915256631039254661520292457417437892195976837082378881291789997818497469384684293301827046615475021869962672453096215042967641979074904325921588052855168194402438415817502861375193092224132458627942779296036937743212298366166251678756782134837368153158807983270017576397661331019312394107215925671419582966551212708172116726446435539696502526027823828321462419570893148943933988220031022787869138812832494869085378468372066249732240165232463594217226831857479850495512615053839841111100104149692871350880853432719480421078927627394811640041292788739193670213622706575097764861653207891843161476875848410293885055257909823071056410618636259396555251742411485226342972309581165070944560467451252285522553130907168495157611746250125676717672136255891674175795804217400323081788029790399198322317315037202309730415767799439088227996481785804281506234131190300076704013804858975551677976482432946052501089472717443687379476780837111495620629513920959642498218407670497243721599151248967641699480743141332421047506949072356837681682238022821652640207597288712404965877499363641981803583058176637826365838054831312893102832041744241595619984138772866818982207196183402675936185871861991830422607917552124546830291106892141529601858518233802048650236449248181776027097356182245009938704598873412545170534510053857556374113205161153366558002031383319951646563301524167197920444892951067969764064534898120735486643286942452446028145976717388077206654203478366791367186881774660738176721783888838971935637108560716995862481484907351345233113889968789070968929736624288960033838160559084346699332407096454579722461973013285369561851481857291226986257524934788467636197897894656984056629525126316692103384641050950471620366940304321116335517561953077953079980467907628738437747276058482562228383661225075699279949919284701114561688715826489574197405324468824157742642481819554084304855838384548418652212519748551676004737779162072900302422910993299425818910110049742558886664081448970861926827691210523686795541901830241998995718758711094885369079409422366608647149971842291688516468070586155254231066287189538702767669371003625010774364135781242159120584004373381432952804309609567641671493036414314719266441208916543473229885300802538938205180611381005054401431647633869731150564555195300722303801123631297703626608481781517525388651606143747507931343575672359589311917859845960370527962894914323215649483038353620549238088303410560953010247597424529472655181233828004852742523358605843045566822490161033948521132182606400362945454949860551617787879137374962168535773463510410166836617290622587272653997492184139877653364864463262965782439927558215914840531979121062065689263196467661799464662136440353707488238390345634310160271243978842236428816162656805743202467134133976895875432960103132907151777118326268638900451486278134314778274629706986251167771401693919718135234877236097219253759380159122788006016397058395304729085204036725721539014094992692513087963707916974790913241967123369463105751690615850545344000606927368356948685582636873702700361161606642947258966279680262716727393561486292185363465242678316040151766959711005802604687431007048595282050846512485956814373809505072927872337497771248907790648340358549678831917152625258129864380983650514685658902231697984529785331643358792693237367404756289766927995979829032836933074674586534066923568060454893243100798855117932509024529976325074463332489170329455519108931890548516260325986579629794866206096385511422826173154732531109880489591001731218461000128797275549600680076675381005903919492565779975927514229564191565940224764099770652076763500672046775543790887995514638582160897756766446266096144444885624751740133674011543759394968418193811148892736996433913194939844615143997015744300025417544401362624279160456147140597180201601783037970571421828374486149177480163620299284776466437402450285540959184657356257708083882045515672615721380678249283693820289855527935860777607450860572019124259913662190100792006620160339632204442629238739527034663403279344071672839654142536863742397585272184977049132697634463191550816459353620499994100076634346686327208573338121243836689359521796976724784641457331026468914343814582255812876355488997048196905612703632599695439498387641112944716489230564471285179525387386354899538195710287980686550014703146947484388538942378364879204865004383318400459943822027700935612505186169541609729054411185973200214283305996819480644425176483594968773016633392081254530094600217560033549596922460133334277803754797569377934088871899142416485168377109335693318157707027418788384792430830939837435016836536663722417996298300904053964309838264431898631050261842014398232905128714312028446346811291252295710656583331582320061858713389480688888700893452940323933006440723241457846431339695959653047054022474718816907427359622566434922371953758348619619069433986458222281155184896465319662444278985018752584332664781963034805324272342928184130464729406375285110979346224704469340926583127938641757329538462436389964429811169973530234129760259614514110787199679843329347572829216208972835445916003467296528262325335877154142240321081285985248897141824283954362490443350495946531934619947557660686163937501416012063765680142740873442728560818649417454299726403924469371371977539376089250035401249774039775125967853490258967367253618715018132492345122334372054771237964931485074988880605461729313106891874631198493188151766594809022173516925804624806696128541825107206280642801342404544477865671477301892047529358786373392450796416764444789426728420666091531162673483951921664590070493649601368372998456453338570899605784537280798201470671744936460393371550465993230102127952697316700189488157860080443081168664839040580955283620859093154133699935494962706780710457045651355902577313947399820027249777081219150614626284377735154100865941571838834589311536774043774471877494339349866526800722439298365341188580638464500505431381136797271376685582424835222383736665264368346409327318093349582305197715961529777901040498422161200691242222904945048838290244291492566859589858166420265102183961474079310025295891678202177697714702834897714888561517771334329464563822820803957902996155857949334404141467215733839963900113551914171692239872879844930819948769871941034422368531776879745318500898547719980796622687995385301455897514051103339948868418279577212536924965946869154559895569651906618955845336599151343828691728317321437371625280740930861598508782684133104707376559478350736325407372179732259660555560076138295719021949519022030094336585251444447379242503459518283343070462040900708136000928274178196222845149511898117675888250305467365300688146942628889659871100820237971603094567102219178955047819554501971415077864404106657879574986800818785320509955885060582308019023624481932228300686873452421893461756096889747887099446153625905851796795201834950259775539144612549751328834919494677193336525449488953356260896210623176131367336312808036462743355776981013621758585314993679771386557856288031691652275266877802243175020557631682645401529411194037682144835306144605464889726770587769317770153415085919949763182382563420467643751319133894876161778126178796528776448043919139124121565629335572753277109973691607260744240423476954212350107590226526687122045714162977914791322655963189690089228429616488076311924589517578209378381397462151884388558993009663083645690238548048869840021399521738720836815600546541968227966385642776127721675968243613665960895365779591779108946846268711763212907174430419283652354021756528532098144942437576771830969798738234928404468172444513004889472869338465453977007448700673796804913570089500469214784979593016519951573180910592826021710362244026520375997983423637266144024336679275091300584819083509028833240445704505393096388497471151261968392052905080256953443627268491262597623576713739011921775805408424992306211469548293855636515967735443678192129414817890090927746952265501157420907751960372500743853506764514962347610680687982538564547108044931173154244671394765116501293071357272534819242962658858628577641895054983933905258896217031377698066115705267547900394004897980879223319224548613187504694076312745680197234206124259402604754582745705602752207727410557889900321083420362828587081734162371669618279287001393874615170953760565952396581927352378603883344509650158973832532269008185294191691532278734590986998762430816214354182341564874316686707769594520938739347706252239917462816516400822190489929038675352396584365991226744131406136107071656396963066440385678227521771344811796183844024586879883628967007368073718662015549007301658168719611686376933152806861982465606700190720030580356505753660606241315277720648845929642386928467870150465307273248155712056566122577530642029199558669800739200794147258178227006408695453816074669430325956343136230855626058550089474283178720934281845296145437352989729291751224010007434682087258504304413992364371664902613189465146503597281911075293510722981520212770205624566871681653259559628291055085732890154573212986474047870458375913121381595075377412887817396366334176654948003991380112818926275944291458155383952672060295139478066630616090216421554388581332055984715374936555859101483223726192688267525714445102571977656508939346633259370945133610324886169459951928903062827367795669793903617472816582870373727065219284873507493327351877065896857154331127168347024071653892451716081497004559670685399589398160358062310625119926077687821076778773489141879006863153732364579197378627446502575651849842737029340792042193931922633982626276742656149763496017155439321871064027892974711464704529315938035679475958662868555809930582432265773728589437603798533832955953795906214750184424733615544954161906653206352103627746804135323468053297534765741858944302897011442593628622998454343360601397769253959196098618627858789991810041734118434209477099234239834481886406225888639070656615701266581069793696961215713858242327173604648433475496080808075675459397833294077441669576528098755694456724253318477070258540380287978581898149804878567157350581330832374127431410816557199417400879236658913939740428080661135239043809863779270571290272588578629844592312125484749474790344473212652579982590847671434550019588185000738826979584756561841033090684694279021034083747546353435603329713031404202618034782143975048582518841442648588318234209699510320091640783586424434684865507227236230734119225796362678489348321079040775943344168058631162518148917486662227616370186074199929137620965324546760781492616872598213156304513016747861889368419020623161999562078274177255276095856204144434103075536347261524075553317087272797080767497348460930367308656283481868036120269100861820363996983431154517526448414387451290796981678058980231297106474328449953153073951877947379843161694350775664523659079247608484266673847441268561007371442811347527017634182594861140177309103984442413764660640351333951966620148496362226837345861301507665045836067957637478859863971913424712309508368852534288347554642027858805391539659066874749234546122878132394103432208247458447037626872248400502888069828598577424912627315838406731697397258679783643339905022500080521758126667021474608136537758736379645475788084791985995156805672692653382673081790456413171131384891145547490205249706206939842683877719233913292272302741222413462546989475764964467710284740858356229792570057631338702800496973007669802508728579573212955308465124982698553356769866398542219799002349870510064376832834815089937731901836908390595138614148270272150847323194459246755314116955268348831089172961045964112415199392659381195722174871689166807670382640130656485349934461724734892514447237675766573164281401500401916011264002660213004527671578009336667111610723631519342270771760506788441260941728012978042232115875377261397490361798610606555343864302352560720849841787635644113162442589611861439011025940934620215453423279763374740241883286896120769715903028159297620370705855765975153611762225434020286737937451773200565040992745314027592081055331822765616023497527195898821696686402089677872082080919088957421240387637772399696705579845678550694784863502914341782715820472011877549938470577918343537518205650356184384745645402605445628332891012913950993274051858770963917409345987563481053446312151354992527481528032969093423128312329744755076914893556495776806228042678001414796605529768998471347820784273096627085459079334273863656228226753683183973890979787547764005474561407574955343828002434889223831794469528100751577039406869748503618500155845708372741915264026103894135911181438963327139918021670949565757371857458825057138265209992080514865012474111715173167778813862960282925186440404655981788127931169830905163702037218626940398417695921316595754971322374796006172664502505811483344060018544735133084534789120977676767433074079051040195634055938903952494202848283689147391272763277027381319933619962622458931779594731891915633171342470485019499789383465944705869408424129825973979928833774165556976140794007381218585875991283702826900475452191906913927078021059979326628773648185355970089517933826172717274671763453615850954445883436572690352801702404813053084928186894048345224672774338607796973855798967115936638305065920657096192451979410125135229862753566045957586274138265621449380148868960795605930386345644501422937550136685749625691818868311376600104470747342583441887247457060441466434428313535434433427266699060183397658078395694522361307045845750888438934362591696939131703847928944800377055450199160356337910527837848753837249798383536761144513739925564090820649338434779627964933864699417913537791682586702812521425064673827329047683549365849916779818348250794667634085922823628713862098569671695058032298221660679798872137612518715456796703553548061936674098495925212715871833462870308063017800930172790123979191247511646890024486546195558243758240014567429002808563772941815243289809926001929034926901138763198570078916763816003988667083052143419168108414509821506132863064204035660138068030483003322510354821743639578697832954376076585727146545920261850878036256867773565450699644648594536668407860047117264142735769585946703555336492156677188314781658218571033332583791655863693478202110133085054948169148474596060611461728995647629878015109501299900511751335035720119127957604319254923527365248855347866110094036585407335718550085852987358660378616959404663971990479488047142816551040067544896049484657452192659682891056034729874417846734958042036440537000188187353146264081916617032298817329670632344495509686194214216600371829485269835787750635481580430189831770125880859612950146137624804007827314202729918388512591701228268962551095781978051633928577952050327663476845650220597066880379840378156475003548288437300082217879646804799480156949014509230261991711095444559509614021760860997000669946319533704525262664996343442769975384797665596457619429623427780928989103370434323764978774750578880047216667676431768781452659749244554382637421960199910565705770718737369906194322571256486432221590476564889974820943600181991218349446208256845251346420658671557039291436183335627977339790515122199736299914176019547317409294807266516667824046204201809570283413873339409330964216259248797033019658398664407384167883466064034132063948001920764196037893815142244210578101801861340887923090768955903996793800022196800110744462262333946704023344341328786253173695115274367455832843072310343542528025855233497310088379179667416173801697338421188326529940672054072026221640050905787430646447149387485184039475319494533842286186323425965012906379919902466846078780616287667542437922955800577512273706166130285671505895622274594743728278459214660041817274909652405373297402536147023643564882607183215509175578910337833599776212814569275404318258853573810241747757050380524180040733156898624058336765374261537016669568490204274926023962966987155848657617314754555662662496165597170950393748144223000373659702043349497151070517082296627231946109139084962646405339133777169492920526157017413709135717634263642958937025145679374637537034213813312879436450233976260672810855053074413135396290112617175116506459963395096714355765963869523254964195791481091393366927247141068603025738617162986336237484949924885068227079198602153379584198481900399672127723877534706765653161272921510003431558657888623950365668323360221459070415032863783632392644758167121797249645891786219357565198812683896437701821194214342956127337020614875025959665677850197859477960333443133563522402344400111542984265687408410915079904953849567279661142705946979510342630432419875258923240013188745896612611073732254130419185208509561891128183753104209913033290496627952155435696174288055975723744346083125836193915237021414314017728395936373553639883480008136491457266597187626277309175658134838532049416655197790953486403640576928754033471308942775901081428454227199628668845314210569908221326457859351093541189963799667459988696993179341571994075794670528864527056161892481176991936687368517890334386183110780980121786203300589611800643526248663561689481676625647751414129399755165961562073084477584117374518271246142466544339749648948107984002121300423013651683102530696984660375685747027003048352262619583353903717052261538445270901989052747626438637154148079171011057942212208265739964548060556022429692836470991343869969347075920933389574977139933605703631361323132038448165650383710426509214752860504310537095192499641554654716142032511783365186928045004780398875902953261462855978168741903343916489676082873252303817223526464026403458987245657150479887584170580938503940120589264132095247621797848695865924458744287376979078240821165120898730165499039881925998888044904175993415566746348021171097429008569349270581306924398435634710926903760172396032114435480511772813207326093155040461359686937890673532062735890918994233719132657394424187147311760654027267447232443029402672645596554643951948866718415403650762402562959260426901054654611110378220114608347594082600592325570669709612918043917996469453177258047566514710009341764852388180088682338275744390812926817181121111412222108247855439539389133774926626173929112110063015539473319721169717198224564420623049371835294788078482009500488136072073160020871459126561695075778889903784896104492701048400932816883455214007327868196014161966993203678458960783051453300329299570509276231360913546808332893105270908468392161964494438850248295324778260474646512624370739370538852029637068822046018614424577474817945215449670280318980279344731237961697326811701427905159368012346599408183243363813227872376519509015208527293318436125047589472357515016281813368727672704076489247131520225230836244827826952096774852437259279335321525787484645142825723893439646315415586495801133902627782319186866228564536016742816051681935096690219472436299885120092556394876901331282247754668963229790344840759995692322908383174166743136724075745491682945000824789416021372145808620084045167533131433010165902902823894350943244234262445855833315681116616642768971623786009375817571328999209914786497933927193169562084326091936332088388126639853883740298548828336388627062660818144693770528400329414657650799221152796597640784089476430061153541766934236230003014630794648375551260852188996941159325793391628844176186503654236752869855475480290555444553102779786719616137841618821200308217219324877910846123052483405947735443697898213219937572359315425390216461734412423565043707764428380482585716012891599420450363874550359394350149274428101565402240991317661652283012637646740654439492971996302758624171133302659497539304144770340058442009526802991540779516140408368057867616296831024554105894703956447925491926923695616810503820306544838977149079665883383145934445539138267854993424401012066721149450068913538531659345586775754325861208649858960125167058673861229457037494898309275909996189909758841703329580950556496881156573591513635969528817946919782454456105680960980627114487956331257249771995406081332802927956566661747081700562650309970534353419749071935110012080972752340503276982687025492709373712667320019032400533769948616186561231626315522890952314111531529754230682471025170615158680308980750317562146530586173842423822946889303911667035567657162964834542596415145991225068816933397506714443162299122230368801726994050603358153974393161407099897488755083181814667777020411236035409819121335002605259751833368403699676314083525233574629513433097955227042985018882390917744315587575052697393594349988919482416190597423551298779058661649324369757886822886386903482787112108228513901217012566929851298553769867355098531840949238371257770341085556160507593074693526739681901403366093035688694193830911152081117243036354501257814178060693750284230081093503751604633992796834926755975546144745439184018494208640427473285159791937775103825356778374565576655888564967637748743149053710100922752449782640377098657399922393789648699710735625362836687691068271669993403499013059409084226499056324563578496642846843275964417707631119728417453892110396668885183150406704998045791837160331817526022397383544486492297171712893959124579843925166291830486271745416259965993231822188368974851127807302013606732726368077332413408635825216870127728785875441675075564122312929690347697946686211004227780028809286468503136181943426522235709600789144395117012765693526180737964643311437816034412886555494277075744844560745953929108819001173341724027871972484425356050681543084870964661861006128370546737579895123402058122494122161153688180007937174544070750392578580085782857703068260160283984955296076682923435318594605185753033345426897200652999272778000161989847432486051658207108775097810161746015566113358796040229177173305962356124909847651221177587781854271467912892213655299226488056525481775380899528778471029705484011417080390524627979445624412192380204926214846305420438123344679003810611550712437445590143383597730555097194122875308265046122395876686751953687280101374119361348792533351330832990827738412334976215532616118674740759066019297783417379276817169532651057876209511131835134999885425335059373563979171063959086081320093183916615073050577231796121887295863752105333087437824176541333400688225214484390465168916931752308203227888704557039828685111724394943856085520187981962628321572290605861819944958777779188684096957398835808647997881783161744591816629293122368543914305138954431870106461073670567121716311174074060370667694531549547167536089205795291513360956029643369690515660564051745371376533480980687283272388342071122451341735233490458392395011631353231652490447426935682087853836295959142715163733492106356435583192630606646995591583698950653853171298262395902476561478580960402875258798815376705899016887397866000904926315912686783256135175934231081529213908411063964998990201171588108114374223249728342256245176713333323160265527842600329693255344612711056380085797846917281838444924200189603406176386760461772199665430729218538110944740193486677262259411668835136158245057281269445990010238900978244340189515676249853641770622317510781265946934973274261433942721004076926867641978238894696628555131109637285665527122065897290999897466349655022931567518175187193589893253529648665234049309076712826315819592509530895207564112697138894576515247822967632837260200409858421522649578268607308350423052830047178584709772332033651470569350832137997889344525612230316521210202052420420032503767759072723489649348869137373529257851052790742673708468378532400291532836632653809051639927529570353565949346402849559707279649748564072505500752891731958282205997618516503591062904893187787283100892345710622560028277612610634827876104474837628138320616653469789025963427952701844627430221297806260236105004686595822219936223215250117750639027836750317666420644242607768615338390183982867755198111751732726074387399796426122090921209994597441531693827891210088924933228776916317155630115548569598595187331038048493650413255558841766351530974366878527905219637726863341140550171741052014472715164222824453631171432508151475051378321213639972874471872847190750466085522552273125531778033626353610802260546281364544862570915468615342890388788607746299718481756178489329144829054187765653569472237221885503140345610483032835976256522658466064373103740545371983514004464057513273467372353177558091788386576561741557846994520150737155984077148914275121131619497631870148357244496469499168761260835481701516892382391959801571927402101900497838880458857010627386055738985247065574701205096000722629708461937059601984236573240010600941136100504471642637700913530571117448496399553139599305743855342494439775013389215184048138869378450381996369191690224971703055293201132339026426853544644135657426058849542460824112099413528779266318460444149732985287166915751935421987971939020523340534944820441974534772196963519763988689001882693756258952501963488295380539421157958983896435052230811615197632212958110504746212495713872578162165114623980878957628498496007364861689329742748896701664942998422741970094702485968338690738684915640949741927991571971668624499751478167729937805741227007586214672362275031025584079406486584588653502517534237937163282765171368128307702572707802554446389731166274730793814440097719052794406076808948541468543590954736492187180248198153089982708524011313141206436027463225535045614370288826592435640299281872908718650232467886413064018791847510763786799988305583670161573714737997378915469877580336435351458478955526056987540671246116468153016006752714214683953752171287021890063072059010577615454180887067415475080172854396948630031559558680134182715765088861489836786537725860592915503797785193812225891508669919970830134027008102805584488113066658097530709018047717518769177102836421253577942542918804905812090011457924323011995725177407640037061760050231276266055651109741101743054025991704756183440929926330784563604491431835072216113157975871358252487521374605500086647838964781003477202311241600376896032780185497804348573714616212959853983702434408057498282303672805862260798383012590114314851767244612189003901540902274069595881399618281113272474429128519680228442136907357841562043835777280946970958765185659120915360891061110502265554373491822061737671124201359033759958830550144364942238550509935828262608421571250254129388924002168308974630834784462539853240845944006719577997441614698187497293827075649529856717638093565362933924436200697119713013758080695160842806350602672579127242302287044338563676656455823651687335320758280302418912291118462707496396401291123151084652253652875802971295753578321964921674252561127369684918635447902342899217025121139648194798031250169999128156053585854605788012335182505120495720988498033478714452729743262276171552565430149644147755561123820217895923523591040461767368723334799488192216390766326775006798579965527868493963233426804220695959631491375127412303765819080962143401070908507288878536048534517770945278212519939361134678139134810508567741347179219552345252341998062893130906453176421074717367623567342009626165453404697226388344624061973850193647757125572106773636341089763439109287707520799398322982514593701124232657699655003667279837870685947977640742795269152318767482792209931635022368736289606551139462315673219585219008180291033663646822736489112575978447294104366898045042764600262551394648360802156162947192542166552587541819648873507294919750727841708013116128590250575215525261190435783132594835355229618595610100807025108890972669469195411025461766787280671282757984680538486008122638305953858890630053124607871446027308227706388750721530679189881284000290047549918050012280150006884852283197730820635089433849641458080709512091044920306210395755826048418939623313309006318614975984810010934756098175784149009699641863957452071817602978136430118203173095034216919830475655058236580301360710682806317896988228350144514814848700840762759480728174201028879196243640210057589545167307169136998639532409312298847820515883482992206419628097046356916151062435276986659665630762695756501021016221136085215702632578094326835322697971477972258269019056314703917730548003409776747657793528513410296315942074787233938910532360579116159310286896757261558541618276113363515118530898114687288612107453515174245509641360579662308421392722887818726852459444892220613541961049490524861637179119866135072832351631300720053130157068965004003970478074883515845048740831589211880400470850706399197783994329523796850738596177233242968208136909831839273421425719378330303925787644934453071327212586876138043798972844269231945389120874385630771416978917585895527453294738037562117861610823899298909336408777299086090893775099524107981530556783665038303579387451476765712886334944173735152109949101895711412645233115536507975629214095036104019026280503243925088278923857851881083590599639780129709976048234293127874565885359615229054406785310588145529758199114984147458146487093522864117065150341533216123268173905844840559195974244838735128326472386404492703614504644834239524387838595131378907652901711469927991545937828944277460475270338560146712290989058929077232239914005564054182605269066303381778321703829967414360140177232894225902555139752791625232995987760141825885513592743138376055731414884862174773550537363393852011171323710198126685797339581317629869035549916963633414019922819904435025546020614701184271872753325164352623762919316839886850028191129575240127659603284377439211177507145296049681760509228211771232123373944181125493673699577310717176715891798547849031170732320546490164817511305606084476707227422106864481054471208446715993620444665125750180883063803814750733633314854502081980085774883160802964333406450141254428940925525219097329025378656113931851614987553237621443064181939565896563597911906790624158407832636704899699721184202899928939118199657464759153721175313339170420723328005416897117829246025139255115512584977839476053403922603770654648326098308178956996263616849658922611068385700003111745809778418591652914793298637688244336064499873520803129332755281684411246379169329010203721418857431081976658862687411927834790462956063122490934946419038151756618360905710968595815272525791088901019810423651621795348059145417536316876958162659056744215771460182194790424614413186749460949757891847399667126746916865405834306421629542152884207861761247352600912293209883214874502687039914694356918949314931213122690742145743075607891170336227819409511900257764884584360774367187229249493437262159183841826058578967733985563306579996145325986556133277758736916002467886009605019084514171080948357289860732171546661764812448272934227835541762920179212855455195282732591027011214916007896574476043700269693562638113887087035769853380855387994606609259635239012597653855028278747143511347214902398353442143184379710288990216637106683529519129884198000455322550069150101760317345192834503242709205755916092775184369106630070248908135713383612718412628979884844929899592592313556289940209068110450280113619549447239805034352816188223053508539514523921910876302092730751672450878709500634619841902910423473331374964892691157458489779673609565607870296240520258960564757871618271241976417477840964279461828118455316137479594731596530824582570822035551515613824984431808491623120632058453213706962353508550801478134453376070317018194027023539376116661728759215114996257451422724935374771383480970691820484482558058836598233159571365064299245169498713665129568296027449033829103205139172049797663849667176680364389098117685471299819745325391036365807582292765424084207689675073318864036544814454256182983141272687785986128830302975994518611948624427696074555385221247191930995883478918285965681994599429058390432588126221959477009767150753608993816272032028885294593489454352098192517228632328531176100033294546925177665940379800537613860258707214134992057254850605827244433097531137339601834164124892335564709909280960545451972813553205544362647972827135501038162981053783090113529535206591786636997232268846885141583865327104617385349311956411584304017967747350409152912569556881289019622017764700109024995771280049042087852859571150823995953514765387991378668810469033221508913601541050581646963216803307866978466071845332472969430163422691880594415296557076013068267421211661335926252100135765305775021926527188969122803677443743575139805372722476788248634630849424334527489055175545462513044175897741543476390617281143356588162899335501161060052831442533153196282858215595795015722236676005823728013413869735340645247888653518320833479758699858605958404003226731010639272727280498205778806623879382974582498359742285488242350075007903985012168300327635345144142237540959685548762114003637857145769908218472306214906965264620967369530458077330952710212370483457948100664442049837970319368277718778223250104934725021312223580755918411602894565113028167916310229359967152993328301146027751641912384299679230586573105710907562452948887273533623310324194120340240852787506167437974487308873243833155849352327756132265288540919381714517113010812632141030664566389762376971633196750361479686873341848473990053866303577510320209985809064883940533607014391363929956630132054997844483995830990942630324471632812289680221385307731460429219812985153272384941910382661172194231593045964332093658891156031659035028889167199633179234954972266482232995774872138135514481914222369739326655496815147704641162569408889492527277326825784972581112768242976849499494554594258883972301123375924655947217560137767915555084830532420415357202608878666092913243934348623671114875239900201818107057077107436680203514383874881084011307068107266176809687536868866057837663875395629466490787099305492676501612910830498957553141201322056170999115026283362115621143738652793552239847003726264627922193721725838898885261376191842189558909310965875740660547431951248944699752520424457196441951986395832608187356298768638913940558400007444306532746705786113648764540215136565729360758181392786771296229222184519077519666420999001752745147816633012683273605705867010077335257352024780341340076597202119979427126901247689643611806894188166211339504030722778480310642591068750284938120883734194276722355527777349758022605423590078973698775605237790705930920927273289297304501620306054986710449104248559119769546872238035795748654221061760601467820453151304327482358719103254118612729742351857955624427399001897698315849973629193291703343003140551372522190261984742738532165496893616719988242924764636678487591434367252601040940997982694526604396694065140777203488501480404974291947581550105522727006228822307312004509104116842793651202983325438298904669460422984361670642525112488503616891630041819721325150816178646093022247963703941068044467203762850537057515945568054736114004789668786554235597662564154380182613992421645534093550090370021611660283101063473490582557915601533263003053639366150890876568498508919826937113499717506251252938483473576231980771242292855110902362536721817008694947011625491837823525903735583472297378112231503553982972015963889413036151177092184931410475458070569115053584730826316152963693005524394551428600961239050935142593305974430259521125578788027426625633877396383820175959644689652335655915259459956290227135001196118615515995664355162227180267870237192269040166973090982159175561715372540443424865579215007672069910746488582064381085349239717008564565287871170682246030919813234035242143932711514159335859004467388672301830939165008246737070791986706517402805215653093198757516136755929058048046942058789815498220210516166806440359838990467610107399475743629328074783552471165929808239877496979296923212069068933620996733850379347180575139596833901126378240613611382135310770524815524098596606049707393047214378679335640271721668044892139294854568123254902175021106685226426507808592572530737132182238860045081416906751209196106996418196930263212142881181895644794840431096564159322148806566395509818379359346043078985892952506698010620934995274706057238855705310662738327568737076482077027885915079764884072625439542893329692793170897458660986888973457863979869327568612467606392079857205078540062146435083749371292120504061461668714033573822243196747304331327701356803562501576461297363159390826188434477781711131468566152499117612108441331403733699068303685826787897556568355082977493565057700029673250643182793174134670806359087732072322519651407718223033111193106176944419874526330592433367135386341857027586929792803288627495413306168342436362818026612445469124231029223894742153691211819939810888424620910297123014376915585091398478565508564777293342600078008006846249814602173379886943059974896759809194715317852336086666201576362476541409904874950616735461261361556859806999766727540043645341029566160594814259471138812418549586948551196046250028591153307983098002241630716367685151559015084137460094157793483057449405070334432433346347690553491217243876306083104837507149099651167361479519250001231757548984168545953504729003396479000973794022780655355554800817461744534632973149689411737026915708359326056343174203868616124515162554468739267168664750461193344391239539621139601194127465781366149318174638270625631517180781795428405777669212509471776300237338658114076152269307336527512387287467754354466443622172935506457553005674702230028902887916564072228114704783395386775603242529486997486661109175737933335211799206357518282358732905530351810449567741896165349065786967778096131727196237681491025792487949586806150366058327751360850498642865873178376979051467070759938616454602133895165925608700922953503579186230789093124369054339684873919667495294705016218131705477024993576264793688863857934730243377203116395189220103673919627022774812494331724796032826606254915624392351630333957753000063158454907182022024249315744489015999558867374779494498854747384977136307242654233628186367559565291281842689610003377387455923273617976581611494942228937958826026991528786517566853537938309810719400375457358242113348745853426181642683939154392835006062754240438614011607881264137603675442417895077382880120279939287926695666019347989214306967974522824216810217519222877979616513978726900535617803678110978817029589180820292411462060893838131243718124880165925780021099325693343511391925048569796187886333991870873021790699523510066132204039002238913772610686654388132873004480095822099851925783656652510525386425375448034209635953305322269747760876788137964775564000884712403058018123990613756134575493796149533711188142157746298432522322668065159953237826807640999512746054680215353318214646373445954189559422645479414917380730042081792745213100847326498478799384463960788091224158012341977516667546996438508431098984275990138031904520167884645298391615025716130855686800548709362727821064796406384456326076180877661891719648972775158501781389629090201420240846391153231019641461663370681092731840644263817898592170213659689519997678209334309428847019043584267494582681100993086032910312129189500549430048238447354251275031087253890190213944956485447377472037454157639873515392143181467257399948187710189939697106662907358499951494624125156581834734467917255387619442032239232101049966640058194153269916695510136952470950590339004164412642747904480391492607372542566603827526006829574611304285064687619992171878022904984406980369360799057734355661168962339798628382923371382284122169013572617908838849345000501575169459837874662956138220002478121951211817880066429919183854122278399608981050961324866021547483187892718826277420068547218290692480218627242136809333153482138985995549449388999242080681278351561755155112593520202087812159549591138964326787209963405482209322358189531725279080216994229472759239153757471597658100591730914943179779878388810441544721586594867886678842114885515838271810579194566194770943422331854231100126675572988584409004020207038765652450373992859077294192784253758682134653116081130073615456115889992602893023041779559008693463756120358007298043965629187191562602229341518952816540390625106632397786321513413897462254438938763903899435006116006285165035362921234259040398892049719642719920923018524807804899564382569141901436915641297797508122801353452442775556136035316058360618855646142387483786227605991975110773799892683608482675740999797925058802271280188300795699858159387585034675047749188312375100633240934651051550586824265254987726831641780287514143210489429044442745510172610529487346165520903063532081998655260239696974154045963237584093097702308273709627419933762935684695928725233516292557259664000423109778725247170156731630382159587475221240352668724079727511657549935068077336850570180112653379015841201063226492738970895863252268040378460764089501515901874065569467308571024659680706289465174037299902292914499220959402232377102491984927396393840969453118846926798587010362322706123246460714000698449441561018021355690496904835384709151248379732523167957627980288391629035923810786711451737471505166291579119354235491031755029442548233210491079060277866122944630733332216429949180313445442292335513365736089625868724906484778343851238467613738194507699066122973284574783213415612325716832098464696669411214439335990322494203859684156222336310865426125879800372381656427884488554238894512434090824812481471474808760090129859334028037835612037436135674033691642969536014860695332297813213319640103835765094962620396727566669826044342978619927711231199089932450852100419199051581772303125588797781437635903301988494344985773947060813658917120697283050282360876300186571041831850000546742200799488190815808512023209577782676094104853885976689154293958489779689770426633144837422885111962904624386660760526210890282675558787843530863765460120531455806537761374748247488875551654681722917891062229193524893260776520949024113202383032376591217706037270768077778975932751380570768100949435897493913433138445376301910323785024068932789098426714546804502947173675763364902851075453325073412184118295222742931223852930562726105184783236827999992951794919954762373427947321287881321179510942707428385858875251997555026818986583344216697407506568755329352423049051089242412141067822207570932129601666205215917093363962509611056434140841470779575627802588895029008166502905159905810767189955748737766067113697406581813809106431689808667446415595715404093550976972899587633814464494465270567168743710709727057124347484532924560578038143964152345053730101351945446066324700717388829902483110452389299825081751175106661841359952077371144152888379509590780951053059074390093530640058765335074956415452221150789436785579338533474838693558139542239677067930037433556990734112088688886318714827712111688546948178314048408485683357751729536220329264548757485218845800144705069223566078336632456736216642368243649943733078409175776654289745307047312814825088984123398106016503726179597109799452420655446792934016535581851424243132789359583903865512455806839788287087562747898845904269224371304983932046343960867217708855962147539863753755535845046093226751561956603897620246262264355109141218848991820595051865612637307658520684925681957508978225138725669181942496387512128136768246686424192969376959850362691808918243895318378528513548631982466193224944344484568757031665959061184358405588151796179169802508746860184458302416374694867100076873019942005182256974910892516333807971069925599963674383610290326455235092589001187686226175000322464772319365491149166288587098044594281007213730398478869978081490473335763506328072108530723667484627914326858543515286434549083627177063438641177597476696519694730155681691471668983097358542845979044619180652492088369903228909533121799625781784815607207748981995240471966270976455361355826676093406819880204885906755240713391822176040646413783407685201212962906048201675985959026882958369838848666029098251690274835558858477721975157346318672505443658647696476042732950923049467013092589370389216775933231178414453708205029394782794542767803243223843907745299380282207501635089501664236751992876513131560533574538541051721133995397666863964078592811761349746967491267249198740217385169515967963199553096751497103087114077962922554645129911452718821090535061755388371117327186933275016887082639961226460212957922009615532560415018378112557422617031476032585089517346552891419950692216003291169370464496467442635518780510149116068910650251836017338559115806804095940158252339221397917051017760498596880088078771034045718771694920557833497465620624100102733063760672815761450788508457317946826209783280188552407829679544704057809872832016536540325893892137993592185523170631599088153486644028863397617432322297605513163366289348474115226820212819906390402661492503203927976790015061107028145129949792900192077761219201319748266826612024183511055730361554627918565977797720064924371851930311805446339307482331955399342445286914480742890037265255499950299733807712186308283548827509883825638663386504772174092578762344078018817982840597773541577545605407933888519768725010477083650964026435173848690857342001988018713518558186093355547586622419473222660611043587163375401519049762976448149001747225983459910281559796269370992321986006612185847172480523142267806663643301138109976994298749868885964488581720675549303085368647798964957704557198729983291100923128005534873023021559370407289088334559746189183603846191139273415381179176573888250279323331632304354772628334922286613349182715275161049486705926516526459516552076386236679494196048653905075465039497386631686820539184671805955766278895803843849333997137154072100553679968074793541311041075868073975304099654272265155619231461321962193923407165614795689912525016345283569556551947688753061073580130332677735415282462956157605170721855014066005052759888377924189884488327549042976407756304979598349901064900125676198770655263696277943497958873292204806502708285508954558502090309794135526242454816432456324682194106826136945196408840343645621979286574272716087973950558968527750403584700711618696113112469288747888561831723772993042242183615873617481723183332200973523046091331919909692215150428937493903012887158412035774405469649674467668638997765767784471938699087247782356256746606593410682458225240923801577213624505064647693093749620985630383066595340037641644115637413575979293810411035099982902346286279015843502973445606585421023655479237956813692558354539551805419742556805335971450358796571602570649491286174706399114178059339976725861678296127451227814909237497528484139432150907314936310742643976087141183000349435184638501577500206073409608329720012864768643096225422835590007972534062261750997588638394713455240085156510365434084233735933333686951105453419005372556221592088822683554252857387225308052847773755630266475442348244816933263984021784198471885144627949620551365255810505752800582815107148482789833855236662465314753790005276516898339964468701009042465310885750746976944876668798177287850089372456449326709245929024160506577989583348265672539345828942532684976956198606808107824463574619005129422335688749801270250969483994673661857661675753317134238605010573643448332823589399406979751824008473428489333036217995449945279449645872817856705028570405570321778913783931588148774394635501147654485980469672073778845583130759669635636847207881683031145198965636522939660965154143399623070774905742074432532197262204705786392370463203813115902385071467220136293953596960853269446447252678143829281245497422237848702817218437461646445604635680774536029225008049159749192515055678036208977665609244562848026158786288032816235671729002100889508245343712006569393566281423988562511865137912907171203770427446327456141178773057721403781885598624210342555952784680857234156510826882646563283670277104384749858993005555868816416754520445614638934571144441376212765427796448690320064423683738923319554422886351367799593024788349004978714249413213669745282799362901817695587514981474350563552481864895520032050288340131258230574764760707388982137349830130072075479658252467364742609796813695653417248450357782850386750916734363159346729444230770897221652704045987007964727234497852996695318348188685042706573378473180675002736985476266655367792390748672045740597577413631739445611404375912521141001670407792335472491323115814430846822328126713058022697269019666307050145588231342264253195190880543715137979130996023403903436140645766603934778044407873589589922684701602204470413287757062505897195574499220256620186745941632045853616729559111689087988653203036583880630393174764974404700701410864269332085431073156527141054673017120268568285754648968050527691291161723220815408801532749924314023747688407995114266552183293018428861647580193727273415180472397897131543463364336076404335261656800221636476851630640847174123611448549709046611877617878307688174167370511478464372395950580030441614312046553378679446329500483229432875732621629737984012733047771842956024053839770844885575893865744982504082659576989051233307533704016730949220128481419722067767561150226030179606241377477587305557974036190872557894634926862623871685754610379001013258012223365924601126559032051400610571988508083732020250528659811590480188083656738327493627339984264134979118865381360623098644523142347269148773945350753684484436536880114505711811225343952113250980263970890483168958823546068271578337478392096423300568136220816557583975421430834183428506296573142979768450637852623411941011283192026745214725128039040342265957941580372858187337395610049636665768583167402280765716814557946474597726092959617651566468692423882653507384244233795431505980939896589963366495645343124996253020102764086114157334109670193951121698047368834240132997413936127955739676365364924364442230192482531861525106983730046756642987943463924931718361334964198562483640901622892923090126009361598308768267107539918070776733921865947619980673553531923720926073663111828262687972537330157634914695733248508396844337685781077287481549740482250150561566003728628086820374923714671227996996131149802269895782008143341422368301153093081168336139012496374006964614475890403772960035883939406110190906441157418684233359540689475224543999865738295858030941501978699528779333479366490310830239839541732628571183840273038023682108415201559461985237858652871549873119862803064293281637629180741017343809775882562663503312553597386761951325556278741137410533487460588420876476965146383894707130371159331141658760613276226784589886797016955081179837296171057417638038159044179066570790055001488614637303693623385602911893098335797475569746622547113978685041190689321792186022426500168136228769737224340413361172673701669887043472849927378130852239592133962201783695533189719654949113917629275900581121233741524165244969876169500327224819260317176193571788856868654125413002677708019228084102980258292390902057592836791305168774679295060903586865690859253213514369302163132252536807004444096299606812193006483845234910629510576191882517050481368835537075393806863786275026259088754493022465521726904908012379009694708398360797734154904436492626789737435652106458252896313299699739413952310662078273610472957113006244332898259311294098318655009236962676892081431798958301730300568097488129587594699396089380954941202280186555225821587394009108826388741183307578503822726667493699392520451235591552358525095670999043167944064659901071162472148451688721856827181540246136428983435090920588830946648534461028343292677339340505671476465820055580145112994800999324721295424467704839588810536439539326104474793302566928341007583147782694528177515139093827006293961834922098754554024615049873064642807139674151054951288790556555893412656098523111296775859588218395641085478954658220766414430054036072533998162139215560851202493662063194813307137638579408696660083729123296458421538753683064836045925139413588130143465102120402108034618657126321135514093690337373208474023801301559728606400631287376266288393874538584718519800695841807579816018164717891472879717269205925295332445272234016067133536558381813808538007769238350408204001069762062643740752419945964393701991621735842052798012616802563665100903633844410793892921904160701723267185259529094978975788289089258809177546545435141975054545728017270533169288844189079653854605895893712305481490207428337780840645737105373897954722141778562276162857551731560451709515557632557706712075639586937220597723069363704510922804160073918036938562036960316168320175537095261085320930808727411054485467529547458081680952418505550402844825957586833376364370425008879235368560071872372321863064425430207876360172918312030641673598142232186314520561966137097497721360879958598414155265059836288619038086659590127270105833357883717495994608200859432377971748339832400740706549493588479094061893183611694450620654706824527179030797417946674370512556628306778649092101513658402161884018817045778421051349824990543807466666747824398619571754855017439519167327132965228127414756591367470420612188289320490478709420628569795367876782213077672852276401066425149274811354663790859784538664666024654329941535824492370160761289964619366968397382204058220233495682013606812800203980576029119712767060638209582721989788942410544186852870000146038214407695567442573543657096462700911072097878099527504074186950709317796773884252462142607079893441565952759612385746635800709038917389307413882584675839408119583012237136325268301278940621210914261890976330571894703329716452090465387402060103629608384620253370231770302556811911316282261636844481176048681946338381917962743753225797429794145589141014321148788751476016395819786933125694895364415322865314859831764845997027051857945393263586551896423745993891495071570778772247918550834875018051215607407207674466388129761356737061447156568685084174605767650574275566850835382542403375828291408213111752181158043342877198142294598407750195899931713643925131670456851098507320746947278138280719990519436722734235362788933617522510681258530093779388712565426181181193466738814197132235789054195814403812577473449043641566095376828857427330260339109042695416298156978406106912238811489150958868977195085778960651672990768426584379253766499558128227472563413782607798248737947110616976514972124003069416791127878994632424715150379039752853488611563726085212894507989342369710177978058209378415423781368845945512640199439025634912308096796996464366090207210788043597415466291010613924425369943836455470132129603879822502047482150491038739391456042155353007387752904441114687597703330728702104294512211838177455585175439237962589422174139631524151941246043860828616857033275491718610077343925529013723416621600986370868766331484732416660937125216787077485285041744989283131244174506801763556073617530483717077040718512696803311261651047526299970678975841331534145173089794274766486904294804133286579350937744073098661844191143508283934890682654876787008560332425435711990746624902400561429607256326971941478200180510396534098906257888615338276667207628602487770122824410338803478939148224237238048416413496519846435801672793871189872285337063973165489382858163935115242003159914437932084946800526612949737929338121494959136900850332642834444134744639036783232368825026358194561374452949672721402385700549736927839412839360153656568490561092161401465346290800379281423421397956205468106888185539522196857802689590895311467468073862200628049715665322410135230578753464683257836424028641845599549945575951909738280609699128758000675468075099133823272211226074980772647933233487317228798365915152610727738705932096715224408785386674433739292304715969468530682682413648137600151549394334601727699939741104905140323341664794683486065903991742871355465542431301319780858998401071776991643740326856575302642947486583771911494803253929681581313451389147567695800686203082748375825980033013234616429940110474754082687239057120075472499220995567241433821272353268727874959546321557835361551556963519592525966398870003246201760839464105028441041966339899939880914882550549052178729833754842139914833745616855168463551230529443324663437449444032600393198140125352940792386931368491368682853796652309894539972131119594828895248367432464621181465370033283972414612434530331035843438475046460265475919296542413624945730506044470103523237602268183151589506203802482234001729354779280489139661599320912398616009999011768979438109358222282005249229447615678382861762329903191157446149240753646249678126117213184192963698627226566841715363961251544395295135637119956679373137494198233673740985317310192930876852622467605928720256589887555482810042817182536325740541599118981458199878695860116778778571257323588398215747294309559633829106671879799103592853525532365694043719217824399057234971302948193420761990640005337397710770706904083683480662310691020093462261553338711182977512444253498113167733813966278020994514546705573696336629332358694178502850549520905680379218104279138252289996677138541041970714338991147802568962922442365897053738139808094685484821104786565340087004881928102014008661599822139051754387588969886279929105725056973611061819997685426888605228820285526654793169023959096815282264626827137406631198627556337693911424203752104098120279119180598824674707749719169609729773093497346770679496340479777110339236552862412205971587228939939506545057078981242090915178704392853526205283099673708236721788500189243443668340287865008169319115752575996692505235091876251891227801741921976966926370602257274038776169648711713958736208268398302596722441075274381941037533415407243850822305595881804609698701210112344047756562056631498627290331715315711879601862437378624999343072815351345767692273237534156560532999373812652497455631420195303324541464416283082159568928262656287593597996648947245537731203795955916443966016636435288442369728355988783329382615041516049913020982562536025627489965271201657034793995362861012079520610061784402912936954540547710626932833203417289214682498786434523874413504732614576410982373342830047763757241705343174339679678606034055925348954237434357518765859019469741529290890365464912837632940780419738647883528867376630064458658789273001194629015284432988072269316636264086375498170366377787954710090713942397926878744450714290217685787335818512356400711627474792003559231347333421383361115411346524717118899769914598032409056883284695344684473449181257433410253598526871515285781994574696989874626240207150776189604366777238000213680234461966411754771076918302478515183899890684178858221079312472999837218148290047289360416876942893707888580974889642030023007992317796699578877360244548163156731895637039244498395686083752768364624776069088842963589987425215838040634613835961233593305779805276851456208639116238647783829806323729734363607003969268095010655757484688357984185201853881945129717335821558525240484344709212532103821930564888500541268664113129866215806620722046117647770650937652658728043668450654705760605768712528669266236607980285055685548868138831850501541223164585147338744071175989006063448718496067297108928118009830844228259020301249985517058241200408217786144281616023571682782658807427399707912451358637267426162998224610539695458449864977269692008257332639060170049067409763595275843084973756145198137846933932314069855659616527856083367246422958432855894989035587962254701377971624580907621154069624232504790333360036025482271410908022004375772428249133778104605125768761076021707111787588040791584804508788194869244628909710148835099814897604542528467782324678034289848005991724090963413687735552377916566047935133684375531783106059731463369272735016997244101586167595972453285871594582211199909995137309568018430073512864990854293464100101567556697746941930209220128239802575816363828034825256458604655382149337635831500187798580635209864134609916066139262774147841713980512526780865506472719843677181667510382598275930138393167301942924493516127817329466038694367399934831759933196794965919187013013187055444422151878462360326987631058404975044488916909146513050420167379024475875099419719742706537549136897931977529277300814992632255519019533050939106544508416056596199275609270928532026405346442564405972217480642842994242499930711566264121603972328898141226348534637712843308235377965569941633031559014486155485605890682098566709272196411764783088933204858998084303034919006537133272037384720981738286606306535656674842693900257612600207680689455557585491087796043170261076548105199814355269587924174182866934733785928056262686608754806235700944634078539929264199242929320676482377496700482719313662333200526514338081802301405881856115130247266137387925069807332308069365358036643004321113885781526779930278933827371073026190163893269142383063161577934293803597265819036293671811130974674100793347990589947508466865708780687158649900795530694667585776916836532845403618567752518435954257229358648017410858548861603713222028117303478238555770923180703300446858202223585020632760542061512430046895592324576185180470755921494653594690015889787552105624313182754875063270220305721999504011675579788563614847705662615317120129099781394201718716393369505378320694198749988186126009901828255173540888975911872686421457454230473451268584921158461836129657787152686085598102378791637194150164219699644481854731765009472217788936688639791245440931222841685825682909022767448892312756252257024502793372166011429060301370981326988132497505046936347328531849418317847316362485616825019981439531017009160589960090615893070142282049789522639312020193235651369379546845413674678589456472497716343853290200415491714842566594521341758177044234506764848507310311064004479470021443603828439170599284949896353747370844392096162709101979660412166605355548115562388581347395181205356475323898912283536213767735951034928033190259133912522036314674311512603400717846877733188992284589310617085568061818865683548180491660711046871109878350759515763347404914255581424405322035000382636417475669311997161384961515610328405273758349283829695747261186867874069673869350736337593850836110066628123343421167940496252720411468068324466932835387815658334989159618865374342171594929559195452716942799575959982484776243773583776511915515705040112571303379678918432288967273309925675461435201139408128417343746869088990264658528730801140249499009837622462602242577665250419051622374683454442313770798035739001593161581400160352662580711709219355615790450393904409404024469269738377333569585721125133751485759855164643252177567218126570104007039837863945983049612122951383351499657233874561808425722796025017653372483522415745315352100563786638156279760508370938451153720925589114742787737217808402147355568081932687012943197020989208746519832271338331816600110374157905219332260005070197405156039330597096234636648203388792137509149876858932434626197914663093015247412040621804259881789971869364696054638844562983605216939873890048789679442763508045735152117011777593642520268258676786635323286511708417670337108935960741433971140406054963363784378934820432656799676107782460083356518773989945802151797237616618751389384359339370389526036114062962999937786844299576878427118979385236393160007581680166385321276722755230652876781464471120658222611642059812397805432189598737804938138534503414219231045970548298680025229799243416701646896722804600560009974871293791182437112279741252253808288650850441032722412073792289276733237924789884152826246619061451839759620273917637640799549421041773282557789874885806326809190953525475442159623806562417243765291738079092281274221947259562449685840388695631421051251562413427236120344706663841531844362960563675696708972233330480813763752821571626294575343796846770774809024828292564012387518704246354937250919962011688285237517886784597988297443817463329840433409324188026202922444222113079883535936355974665994178029076245498924979340570392163179562275811399040005550914347467263017201326243291140025046106280865166449143901462759559121216465409555328188554882541551938295811997610042858077555489427399755600615513056550859572286927761490234458708943303074916457343841562855185931728415612816641447339092816368179025997827834617298830949181324826204111813511706894432662696452298834156121921877385017510126295404858226967227194204203006217048169481997674988337370293630185551168582061072348515271541996620959921431939186657524742385050297457108691403694689576997414517702888967352198529617877742605370894108706928011308370051033720497744244428603932523012694371763477111974586146608379545559286718173149920998847228116096864754240719638992845323693079398894164199800791041188943961649598986469386761032058878753503416059908984366968886346261525629408498652257506478472987745176612655860197782270134588120113435534520962601145859875199495482796860618677241867774128342059277323946818937411335478777563500273184244377924496109878661018609190327401730439453119308572599191001782286531313861314101436474526738436960495421756315479887722984408316866335977321154404894866931515681052552176985789706310573713955364910548199991267059655160032466754043710720738816024753887976832781049874669224160475942596315685253980358906052459444822204468056222723940314886803651991264805580476543490202853119510931991341837397121111731191344072081431139402310662143001809438919986808682226247374555001553669811706942596478609116604035310960829912660141398690209941124613538370654431940508164696393936403921940042862593831048784762005419271765641744798862150425522811764366982340427872545717903880632696959448638083303945568329744610311848964069875937783213529877298963851066146840703005436630442731599455175290088047935554958359159163831506066849329898850637950320413079974101533664495890148628337487442533271416876239591185190383466550857439663403294162133616398941518774250763999450704772856605823486073736973946970963524481001777097854157279879759560088485709897379384703148457819556024521947143780777747570040400979365671059684971741038707591315763123684503943828752241150361317180828099162155929252055254713293075468102418972037969454298642058194014279817249650410606205849356260362846574061933941251245653933930202377474352860748312169939392082757020275843650051088697388968254916697714790769635439682031866936900836737046467589747342645445372549966606282823574015797825720815058049078281241190665847322755476343126853549538092191164454904316362331734571535112319760004405421016406019126621983528703589983572924442315384945194373352369982488106824520106531065215099146833334606602426381261490434637742483611009020573569868512717577342044464162193212449238261270232607626086976853979364921340188861310865516287191772379087534937931130479553519404894664058601063329060164044267007184807803768141922366218555197198865372776226515130589387684126854601559133944274738792277630931605309702120916273591098305451500974474350999487964874342826322079272353274890953976736396117557058438883022284927193763038206141921245498594363749671262220892923867926209515498638277127075589059928347733314965071999260893796063864734694110585253306470988467150973145673567905323772104154095639824872168742879530172759463418569027052152302643067505401174630221517993686178726095722636660313505935564920860266445645756232617321822940679004269442735209312238963692552854882584576584599589962160915542916001089235623906555591728632090501313677397879517586271100529674137881727254332856118460926095741072028400503666281116275508275812092751648320265081055238877700739146767193996782644233778292243782390060906020681990088180101340640483013378063162233723432254151503541381002259086939126649370381937434789692169848495330305769977893031762390526711873415161496739369993495932319744668605385057950401321180941040605705112596388143136387165721490995253284473638533075475753697815194712339384794454470298637643657676933866074376118977007677825894712471511935229251377707737120906837247369118132397903741227805530579042389376197490825523316537101267671655177555819295036153152853579860931056695161575939459470345487668434334389524007815223600966752123131439999812346346395415704090069564946750427227970821443590447122948151484759184130859444043982357280138806619957032217181004103449574487523116212374582503541988739225983923098314828325037656180095515408641018060080513416099434686739189223718065624678059732500323833588791950171706441394760917795016445236926099362965250058279868339660653415369156375044955881622235142663824658507621410578502576321073563617580250095274452799726971428729646769605549680863423052413031411459289794327136638266527555933779575718883944988757484846652589104364895007911630258145087320768578794404142643212905903381028387891595867034191665860372343377272508980712475319791050281815115840407640560661316605703130299515217154182543848447259928317854259330721395568490774494062629721613845449382956604085521603262522054482294998346133253675756193298131019236212657592813533517508886937462059670711963921568946096708442271574750709592431387950304177779078872785627656687975802518748571946494591601265961088361109940411204409819862727719651175483841331338664007840305872264716356254590042075663239073231880590260778915374356296550201454290936384655544017586355415880945943738502543588979876923503934286785733950784677454008803681079733094272231007712296100152286681583121441730879495045010913374902494727743387295417133993578550767555625358039991684601378729570025496741808462582014925623072312249160857381310487494993681310923423117473213876668993709706414949546972336965596190336988656026265568201977324016399562481397936495510723292377777407665025079807362881791020214103078950064500126287324365799460910568413384932512779796637987412295476187988411150519155090936143913970289353623599422171817627121118381829138049072247378148524122010719606674237396105212064075517764435762730275296499618261175591260210042628227544393185752793072444447140227892039583454172383838137465470557147385682043444497499584971418567397503616445141409558615873274329458486583294295665733296457237714406782880724854202836560043276539590764541464662571329431278387120618503658775257433758416145443469127199177804634913442980957059034123666599950876200835078600747042327099386724905457368909203188327256838678616180979953199436268158267074360482032304830622144641084577775995820438357796929637078801002384953818678652882557412671184620242169296607903433634513576945156238762979371042352019740555496086297777912633913118504523712474696881554897671244179133379545149900468913015003445476022852085071749353126156874688663705103270067610001029413544598832916713755109421144760929876449373251771261942725616520202391582264989966088100233372462394991332266940611641611809102047009808292916917645168915600520642424236095947892365179251951791508721265910509435797034843130608789636358217403250146221073098846469867682823398965149138180083091884735090935673929603051844448960843215550924294574768716170017073214112503509701108301637643396783383809117002409276985364704813239924043435514821209658845275168609695791738415493730611573072696079239911955640170086663643034964211174652030942638946877797276407710714613245768967367129375813722815419617721954085670648901131012004598678925947603841651174020320685758130913840792058282813040436470310014489321683731962094858901330095646682344911138146525500783824154260534910869689874367466500908594282300903420128195507282672624945260663824471164501427601520659136326358832302458626178867988118970420850996997588534502565374588628411218777031597739051497161535672360026262236362353297802660079902830599972059917363502617604878374903046954386106688231545743855358742831775124213466999224997225334957206049209987615353228786017752948448229935581665681089902097409883801887166394536021029165031156888290619563392122659165772116011089792339139651308127195345533016681360778983123898658016041712169127650417320844907324700986380133809028715042616816952397691129037921874118511226576204006705034454821944964112195368368158309859035273940030471496103006051687169082624450455997414457756240436666506380996997069558592967767789296258653525652498097472646265760881431032919467921100749422489502538880687549350621461616141694512188954830224377293814607551464611496955096142835634314186792058760043216675979107907435249397092353373117576839803095871123672917953154670029960896287597456138848854113177580015502641342587606256952175064231172147310907800158391096452100731051925642203782274647667345629505444292566879041058186236201886972997486861438604956195905706094705236136065186818621237372243949956966931159137559755243670206175974835716382903627441695627045998419075193956528724962413688564490798643790674943013945892263335914713006496868249508106800842667356686499432022677412634770953834276087194467979364346153506840468577670727349024308074397999573797561880689962742692138292480752651014270781001967038664208331659201080778899074969845477407473076400752679763085048413163520025434668395673807404623310145999893830821727977736694897353510130621041589537982582413432722084606991270321387253215453409209002655351148772587039782149773205596752424939947999260997850535517671378169157202233285061130450336606061524881048796013968805424615315306283964027885274856083147873934872437452519996360520721343477066199897917573070581239788140805410213867072326538055088086728180343608151718332972118657304345905945025838087314953788967017867354635769065500692876466092548978545483246619994637073486505919550725495377341273915726347732352740414967970802045458704101418394471998797385001748553646720574035446065917926395233641904749101136123829392341514891651759535456651631647056797201494021000565812659716299761999742276560544886855671827853619388924610067048495129164211583057186466500609893656115867929984793340629921632630307418779537578382656096784305613888667591334436939568884493014112455527412275383350374253892841482895908532351465331422059996817909935289825785093250783508077656425631708978523177205706639065747881496593531513681157434299533777176806841570761868829257908180075558301204262894794443535704785695525078934774707479821616202800050155652084215190397762402624571978758835950794400286892973266087435393060426948241325763929766614310610769529445896079194364624070529541516662941353731574369467430564276903808356337937051716806220526481901852781532074512737726345691638156468229843902346404461668436511392702455922445317254675714088708228538843571120746562658199184887979153009982413417560914784998964873667119031984095102336269600829803758678086037422569969280879126667438144923599188133028656662246633778417496169554085915241736270266557229991064668273517001198275061152417639393978500233301371861710175766458246845323066972419191597003628305376807183702867341535549147053440260376508029587041943760583888420716716110612251634656053287247360579301759903957019061480618724842093198949970575278609239056479954408599016329036224717795829521871771550440506768735073060974843136654834202710920865340280610638064521950511164678540648652565168393544954964356421971235678726885213574242390746065201406802013457851323893290084268648378891860108464048142574873292341603065699190076309355672806412240035016690746861010172413290521914739479333082920892585543518868771658823122063661940818973314585942365246071617063527894531366247686051826997556610068960923604169002456491424260371912405820396280058371051146647505822752802414292750020221312706151945885546559198244695194212433580079946714401558405617361039131639146620959551384050767953490652788609344228681176288933240185612857329368846849389312163888013732932706835982429323078883285146374388807480963166769947912016520762576986067678964016241235045339318653527979875226156370468644443316609413530240683771374660506212420779239925136426417613137516732761676253607947251025764699833049305679294555732709688937776844363589792811237882248774127494619335624915908184875166312797357130631150710565453287254630649478053555583451822551251159983959716213569062458921054073323026568997262688395425200430311740330311686720453479919030740720074929638898314272276926804744931174847548614335119494269237038818828313382684618723166347474389394120283290733416670294011960825480915307366617638652010647592725677778593200141825048577489986017806943159296045796296254184094898827017842412036691254194722396396990516786706891208445728478448837776664991982944186917041613614542655087298929385402889431967246782242871956288188253427708601682086968452657531248762055652409988664544458179606795055423115570532849387992780897982112604862637857482733729845688683757849449347143993955990255417690734571098032635750209283687169927035057576108549764076010475549914292700208667050080926957087811107449029289160530012029120955624303625161770993960342228084314878070542707164276663414353702830214338167250290019285767060498959512293151248463606853840244213749308651274937094427500606100939714283146533623398829014568576304671459900169036562075056167689475535499567975797821090981928939864557991528602189080068915023030787254502081490866485227259560968921649803869999880102165991757437474056767128953457793056444702501825122839587592850583278701828151606347946704933614495557154625044420416530406646118085143840238228466246458797763090481254831552802579161014796059127532530849776143014759458778544632239232591686442746098187951387263968300325601546157762714781942786639744210420019284999662436986482788315257800465591490745025315323532477592663476485840612500468548139997347338401334536298486192027716931915170286177603180768847610559878511477021406449345853035997656494068513981229030777902265083209834179895527483389958968605079899078269072639636437073986950227596960821573579327850755069129151639186702339481830370128023283164866078126752316558499758445610974930552445656743984697301483167174398970154864106138540547739647561705299031774987420744780120068801479326741322590065179531549160280751931768602280791177011090275039937652267602029756532069224991217304108616757637067762209400458346333014041713006293607635993490044451229149002288450293745568864226308500737426757532747090236178165019748637375173545590497720391292891422241104804432120260182658594220036686469966127872821272377403973428467598492113042626018216992650598507644558059363003773424114737115522920472142294241917622942288088259486431943746175519231512829968180235951696624154462288009587327819926266627343666904256929991531367079204371445028557402264581731952502402444409081420660749621475974861502883494923875241024921594920637289130609753018047368827836796509794041739548388522175887395582576301544582263469233649457173309059707429964912934419377512212409534120023081143715584861542035849126258500286269947631073366693788531995085149581300218846877666910942556924056745663923526871510558074875651771751748760123853727657760421645302663786204123272278595331497111281570945975984108527029636334473646098723815961870535555044000409198565664414110223973494375118715024918642744447710139380397735979090101940188702889873962081544589648867986778109731832383669108739069907786768452166980306783639221840688232084910734512797232480598929552019713506813627575230982390639435152520891871414459895145398520348173602317434544785740136207971212253537676706677742717530238209777621946026770944031769661308100671315169143711988812271286479904971051489619839512511162438134066423494161652107882217889566789933400389356257311250483036289173596294202159500470114688788703378872893269574045450578731719376727873835453512522332590430297845379016185163813447906084883045317066919019455720238594583213610476634624837813905312463780028394004838091131024359737184694258537414319295601876117273768264791915472805449955682670443921192696420816653471709489193299288924435241832901508064426462600385122714669433293744617030652334905166473595714577959586164250128883092695911839816367280229628211049259954732559555032762712425680650481153284901036033112673190834721230424248203787629823043859961813306335002841170686863071190263412651372138236776270053974691948219020633306470534131548764699505755689220596398854591505263985494729719000672526046334536638774530501752099438868248469270499498955737583577375891081034307843647092669972119251045656559441696671942757190720980726094685637092246654722825802408414491245419886288030023020080477862955399267595959497411889575152792961933654506714071913706962218277378083974892480120809198280267543670145244407110597573275141037383081327985225923284887000848898181765845095053218007306906278345681506177752865230238501498762257856324453646233128494171857738986056660830876269556460364696869300304853916894619047175831507649208809599791041485564925031320366545143737842301087002503579184225624762008327611181714240003453311401558657673864866223368734532945845835061777078878783719538590737888264953105257350728617485237989723457361818306883064468829846016765412761538427602516475531937621168669897458094104593894757861675873366341765856310353868810415069305683042134121544923322335045394970303901093224518350252468319594002334552327407785532329909618429734613561609720842444849407393012860886174104663615575398324905444357505447179304073769828619670107178330505754809369600487479551410309486523390236635253499233760091212490998180018382261011503247156263343683034211697181030567797403331440150076704744698254220397371411761907704556637681333548515565289105760504432558263244072114944431885693464611759811551340609011351942496616820811759182372062671089121972350603858274833350016080302877958823935116018061256840084446139871727674023806740224745612991867483802806869438818427892059101058756734310547377041924664585026793984387863390946061692632089699511597834910790970181965079191654056578314157128338981264290656327566699484537933874063128659729452989563711223675650677010930709169316202352824486926794515623841316310845474620237713679788385024277896129207527443269108820649075772301048654734614726489352601508406228824555239764040364373317798526960863853674821889147434191540432036834625958013041596728169330292990952336356414725154702505369359055518345817561555974712845845741354856376832677910398489485122128076338007905311383073037174226264352055387118810809693128612981328707647913505029486095278232935463829172656250356563083433262778182350662536425006956822021033730510104923610815034624398100700982608909261005143046694702582043164598691847386155508311321520484212606241600059961567865474823699228612154164091114843414248752121154225415397228744570602693867373641283795518091314449045074817388699148767018472226125842640357342265359896454186939473413951633852364144354428146977124175523135975611871352154192992685917432241299968229669497718781887684685320870383254721540059497422606212998756912488867566920782686680575547851288505576772575829355053404177137829283291341044795128481470821939531511526217789007676081313030551853752579724509157621972448190175088249758016588054318220892267372366407898636206410725977557194421013231709848899801470515544147898438656456500433515186172403213721924664299318444323508812435082168010310157016547249543722695437800226790588460770249917791547338568238715992507731555066685889286304400463472864235402729788224370987963404841921977309027163986912965026627633871521804857557731762893625713637036261865424876615891537813456234032900116371572375782480780951183254283106787955184322722413933462801534275483961494085664077413540865023375908367062875752343322108447226216003594977613996006943284315995738721144616521909120315310988679270129162672060723554695472466658261742314892668625254696986941994877801151613530032094680632446421267565959834992118115467860885312149302829648260246450551088517311384162598971134289235552171225524623486141906596835693331719200954997846394828094477002190878795489370421359507182714376465675329941037826705215217028640434242607919179190925724818413881123620946203952393349721619562844816822282802369022938687664583475229832368586901945146181563394806291854525214543074417331566762704348356395076880848974402980155680746387102391697232737579110639588124497129818553808093457949134320528202203124286688684458736564808558606471902417643120710373857855155216791602190450271445312826002496038345482453891222142595148264068075497091924222712672386403527783755141240754372272470813825961942257131804544061142601296222180293368959835578068485599896721427840921331956889286553888425322103759729729254113705877591696973341393723636378320277642066440488182647270810139285352364833325699559239286670151644365242756209793898065243810859441055510347233166570024404813310220279196476899706767120311818634518855678524094625344375522150071426481138549273491717952950281756947292653301243887216721516912224432107178614074142616451484305464588182018976867038026425516560263337875319566175894979718378683057670537142729837796171196415707676149491049525950440586982370272471534885206527353323754882960602993482482235770883602200134698719375888044739640774773986518430635199228367434244685757694227158810634047913768061063868326323383867986896403760358825910808746557034687784122970479506313337677257719086234310162244057251909442492014620513211571266724244831072463792143182943060977697170523262932380393566385351899363846502948601023147954143029144790496710760988648542701016722145115211858065416247431509196681933921720747623208903132494906690793429694521547732922588839640100934322957870953549545841269706598023848788868142546383592371733861967351678849544017270293561732364690683565139109104643370726194436412118001551677718071163557729703943623111069459169927337504491870551132702427095345444307911898094802585683668384680921851895075766880130219342326866202943426657126147220231515242655982403962501369456312076923426548839877687378206083653062795744779074374007687457407335261511844159798648566663838683685817844942848885228279275857485623511692721833383170137281154283931164692983883308080962106882069119565178814208542470287881031767756860146030158840038998125582432413025679412777410710100850031280354952868394892702288040526399233710529709651394039204195904669969374941997228346636389889881796734696437452953544462185489102070202651742564304408436827958579313764305795830546157970572897716958661069869578977367052928354313789930125882246746703503693275050486385586134321754416253113882519322419421295993501076299343031040161602194911006077942761337734170015400763926941820174271976591634545755145054472774038038889211887126455224654492757937254815192826301805949441301562418530869945265040601112202901211731955413405519775888026409814034144047197814235903672680482237342285362272603079716692983866788580822344895168029694917404650111621605272826818098311103571722555710931956943836277497808390621306747450856495453096060295187864602591112367955260536076922753188951244151958421103558651933727215994056561822603942630578328728172139205786364301890006747591139964040416541636027071639263093082558500315118757846633941493291887810237934176101277849436457235032164908580232868262936607799430889947476783464424438800685432054387137798428737611190748921767601852417564746026599243290883945154441779975543666831687752769029554391089590669349180268045002414618313495787977927290938717589880239351324936939254153933202619037330266993114807258181436528471291955841656012606563079881120964534202515352448139629609967601006318118990917357237103438060787398249426081798388718229464898898644728590447941227783554030026142554379383242383095540746577222066930310545423947111079419425309798490947816362985625105500230018854579707942414739974781649550586883596851844371668773607248178624300979626290658329510722766367469704751326690290027577298820665858525289740107409604811235561862342316025847568521237355755596132630740619918680598306859598500523032051159921035831242237409037803744468413383879196160422737739099920320007258015884232733310130285189584547269362604769654182983583530345275301831677924510590722745325655841060307406268909505407072708261393424223008539570732183681339130086439091140515524791599748214048536870767690098075508484614270756434068277381491829521857194251206534178306904970695054251082544999020297995246850062910565034369829173680885415357780357781816728800061583159613878316025629028560177258127486867415218963507694701733564352818071966060141437087977212872774546375156952124124960997229211488590546467848267246184229773444166222930757241414006873765639273840675382749869108240639121902480724127252042141127633093221481783671221195898761694489818436272060369568276958741722169596881495628617201443681231960042126092640160584257311927847406469402822828689581096208768973799067459743039501058237672400760625418541852745411278722270435854531680088097763206510936580663519253697802028831096638109702835735747843386784839720680532560921484903482972565191034040466653504133743841895598093256427581728214179222086527207712219735306981941950622108903318575215772264130897847200956183900409240023682947699786119663195200425011776594667015688464690971581929163879252596713376420617554102071757543494015094533600483386032800001509972078547980663428675849320322246954581155684513128614390699889688673414417289931302314682029571853695182746366491060758729881029742692376273493735552305246439512658140946940082879992954194639907633092604661090063058253693493232456668930093705483983993496522358484879322522177154898371122875022967343392575657581877451605310261661766460073111046854262138148300437291161413671396827642788997554577488230470762035284403422765604188574284512342892370123745531451589442121031135681851789503709207260750385545042269027408525654113847421058262187536531956884883824149472369523144034526315010943241525471393514382033018934395043729611886569945988748551695873997266522100834553171650393090018775105670633341457754628023018415132558391955888529428375660378966962016299713946453937731117354314517940694808867891238142552499501111357419380548550162006603744325254160438221760822958769153184319990536292118406548704062839734154586301041338731575309497062221018889338466599767814232231129353729399546841410168204807342650025462409536815200983387378484797154704962538006841363332784148763468648057214085150074088238068668467040614006849781871629061327423416803714524331070434631846780557766758703683560914773663385932052394584136847326049172740088953013780028518591546889503031513592631877682646584868354058451319673133506248517443641780913878280880247229667005144669440356101818309513935109037511267956800921938564917027587157700430241683095506342133687697663205319729678195320106256213887626488485722891257836845132056244679201921721345714282288242266272081780031736294582214794025384228705897102033069917247202540500419725871542771722515478233578103107167276524091216142007195413358531983744572358609062361244784203039711676196153834099169167720695437203961850405706376849910502402284510657653898877680303919346847886030553560118043131252356159110242849158916620632096247237745976469003895377536334888699306565474313392102542409933393996838747060462078129344498757607393031631548781788928294715347467449392276736314287590699108843927350609171895545519764665939268105497764945723883583886806793450728112864056236705045732718070238379910219837684718522327521061554924717167880912940461867192613440662449446853597752054643630378264716440008964452397692251119981875375009263766006931201350779410631834972430588387242541856575810494602084001865545904454558634212605902494651670717533689895505575378050730001758464048674843979705773031875887461602947401971098472207874806476921398308557433982620124074072144694735300823707133543559758695371907425975585346254979846067436756778365804310189258298068768870738705562046381618232798316600750219910833848212478319725933520244423887181906399087798049347571643251871262427371531164079684541333800081133189780151469898201351614772237919099067752715477017480240924763802615023131512604784027367174514364806956943343163750047993076291026144095367650168633525934252118133465384647413750751275284001041753194199992231524753791922707713016689244984176268480037360191277391429181607680557447425480263543751227041519564903691592909085682987891651994205999772656049193441183644288970179848224376260129741212587686681111246624139444681024387157461634346855722521090951461489163735620241222857506381962574839362129135686491541466527250691286843258711841132429677360361286631779872940514430503631419912494748292858983256146187607638326844464525356969765366220770049890365659253192797534699237722313908675028063720997063302495365563856606097896469371342992363459097721217625504384194922687191132640479470268419635506725834261290104057008102171183592580854791488166390200576983294787000606343054368695063534139924192268730944666397048274965182486332134403052080359049763150431381031566618076559903643047566173626461553633785846382840799228441813489835635696150024698258296629265658930780982355370875299358277819135534362264895896847094687891872250991926108167051774483001230163896186984772233744684852757839411343258609340673870337177003690901626707564752272750852026402070439551409634138627117890775789020223306473353424798095324571813637092151910635067836071718342409192153447239110424251542446725250149389959047071908329710212668376362992252874776414504842866407353258161792657110072898716003699972323180321567294765048309433150221074216931443695966000558898847938407917039944840980758537992338547037598841478353568993723934847769388625859275756651541421381975734799713349875188893888477868662785330098342619981002702097439173662145855218171707974499500016882911728478449323918912030267014434257023017517289410887227049178147574585359042704524337266897795669358723740989831294700662764958133421515582854344646089996130652117066041350646168584243042704170212222359426878122145312277959673467199429000985013964603117518454816761756730767435583317549097066014305162563163551222400793628715439158171837127809581622648185058988834795163575786807481792914316868082494325565584802945959276988626003593027865595186598519736506341385196984169875099326541807536682713211327055345151402819040753235319408116186200922778346597826844303765023006968914677540779856517926842366226403864242930870100195712644402838894346807645070757781599396948575198123986758923714067047368692544726389134129173068774789962702323817779136191454853741048491986191722953013158530657336246798281752277286199357062262497198488444905215039822999917389108406886617899617540972136040082877011344846891671476891663229939979819925937256571815279828537054262043520488892288831948105352139529440979568099239454717038353071958925989490717493937975409920266495680771287489806613742980185557978478974184247513578898510873029813450967583102341052039573841952141080017385031278920482104137140137495262634295143391613997616454230107469377393990456926134185422757655161030523210972818141683384747767840627674482875531056203109950192183887439311853421219225330458529741829095701130363813453037423049062717222042072475473765067179485901367519941260565662088838636458727320531932803386196102846927345099583676576152055043539784220151307011183278097430231934548302088381255624804636420705353027151307167081672049857699715169052657238169821675498477566448225020358437214358729228529929299026323798475119215570859046597266811605391988655741955968071708330559859202747536772756297235776253877113563685497352814741411037580818256357078056111462381636047416426731225343373082446986456442336777363050441650393641990232658868822892482876946035927767731318729400409717509758257127383392744994919782297691612662877799224696831828515241363639679928136231012764762679172601153822694210847020382189789307162129059637712423173416297651783216328757263621344506000915907907755400832558905271583316597529562957612556570378901550918816183708463851412164125154960774122093013431535673299547223650532242557670153966624387322713945787238712454069897727222860227968642985283211427892139059129370975706045294137766848943339033569634183757527119548466016388462038949555426037068492346708058410043915606356124766567811740218608284995464473531042705518601471187452404158251982372311694079005395436549809970276732328708206126192549787044139303647044498356684548339231812999406308354888160818393510168309751692885337099010102212837590618113958691193155876071830224849494329385901533753922048305074383473017833185657412116446510911502984716550981112714133762600289897150234439854218911526349291597347611868255768559973490592529107877559629483939484986895193718780743882051627694874485434138645939040696841091222379164811632215242964068998780566720790224046516086070575814371603997992747873504357816181207349181122483492655268898442944391486090727959265609583456438826891484804104199370475350142458389840359438767525352329896891668940280540183974079373483664940325188651535233498850438502412092870081364575597657461688303425320140562534577731388035768346764195835979351418408590268021269326857055601014238710173856695453360817912287861599483833642873475123452800712167110363780362919643774823355067453853382490146148825150444577415910583993571790919811137988326911116562647816813774348041834099755595237738160422515504054283326162176656149693040942581355598936012363453126399937580464530830663920309680320144042619746274755858996407975409869279711194607220869642071168761433488841342094124254230808643893549822209270852514100290987024138805193007831231181589166030222787518773193549053307690224665997713785103808011827930173641822814990504824738885702787214532472769711450052505501339855832591657889458331576979984126386693999688799409531532052225795120974221612477823152530889963391117420890881511989250918597503090213490463915111291359515067298134445845742348458536549048848369204212755634225012474116171000619647421989277015268697538032261906430824858655032573198873668662488088865365301291186120825300000226449318546380295002235622813595074345458476687330920452097963258756866543199725855455620912431175779264650578300685704701667150676089099922875698577280831894653248273692366124546892522818104867256380485638143194615735907328845343904022631329655699804019654866641819598995372536787932792453778219405996977568186284124032387251145990815919001646901681988934651531013803944539899891585986141357948425118324553163825479759802155541635237770308132149031574443585211414949212078475554474158360413257349352469966437317316028606965403783877454352310420464775992458688099939677321561488281230945618716352721450242608456606554317862718548009660771309697609846200287591049677219140038093402986088107236090849475793515946730824168664366904643205515469831138405587291351939145268079458925350221386906410199061331130189875100219705463321659212459972540547683755301925082562910263675839240597613764598018162036598548244226885817219166782513312083552580877921898032037384554227099889975321963204845310678030939954961007118212300135709542566710324507769383572658425159210062991200656527766667523343636769698163659912578388952493849148833285212605855517723454539693202989440004875259554070126849410587735384054078141466106064628448785465909346571144330362725371350856905453884138205047337500928465478112032692441164100696146758990898619836291240785593678462648405944475124256393622737749780176733230559895133593287558127327337568112821088922624174861431598914947424034441917472165581071037729958171221540894359146878778141339213154896924295716400205763006085018465688343684387259999729487967434978200196102444314217629911696782423181179266760658147686038514341675638556009399381078136256561283721807185416555133324892101802730369925548188383577909360905339856232867731983155863805202303412457476943805087042854177003885500957026317390516291070980227810528612047895221215606161908282421220967440594433986213238513011643491073181643332883913987898250467062222673971129687164617008242710945412317420976168746726509402023079692541207844255035164144928463840760967168648329293386501700993826855613873528894207213679348730528831384337831142112212911066477472156786699939945296914102796980925329342102087217198464228193568409163056834463980382243032184897139958700000465555258029467742982615015661413788561673673657115771251431906996465782086046146266093304421995231679294036607713815050339637422547559919936820023107677203407819898237214681812741498513462207829152572524973113281573823195292532664275242605424890290956747963142166652282029772980663820702070050088841264705153808356282263409810487448266637218100115675016576234630214020629799322608152887496458828501051182435619599899117719844155176738303132160782713262955843037000242961420880285476944642035150727121699894905073393537364520344632326586580208978036296782294878164006574324766124201412370079706545915647912459819148117630897540272034997665107423567358520843744797549525803686429474598884941643348970825099401576703187497498023982866835898597501619363964441728311639971779963014956464125970429115089323495007196091157383833467418329679665103066143754694688904257153634718983682748360503115367001197129139446853820415298577619626692345044191873695386018599707465484745351980629638915864574437898629535327649898329972506196038168406139131269726578020200796207493719534112095746965948460110039130305915290359240113440786206570620775011291151829434714182435720918936321398980941160005406348517889220462790442503641480595285411686898069968067515580013883275829041256458451749915899501990971156107341744899370326328777597504847739896972502283917283837138516935429600833823389911821634264195336276231743277378989120562920842169761601386424740527380332284451560320959854239630403641974217427822465555311068081386847062424731123497218657643715881165052451408911025992291339800115681846778259878605084370685477114545226048503311679295821751777675982226640811407024401832749136883096639745594135945424747338747429273662726850267168427838540427166635850059852518893004448704925240994411316178031773936739903909261528560418341361299988186835691239569279165261720010986515829293506170613615994723985458437775582464789014493835716811837876233884022652869165911368066573201418422478228818852875881816427530270961852263811875296340110674104017293409890484909181357308162477584520049573614457824131873737264583355823338213764947191574883564866489685488051678582649673478366294377786563530914480804676741646182851493609903383467167208468904468461564891631539580035158696050988767780860026114288256595388263896124888570933788443525935126261381656079923329072391257399821554478232477930406756944865177211039767983930600485121873238317356476039588887803244825026830887725300189818053756332488339189434121421940809991738378270100755301253109305277842940671459908610893824866877837058015627576655914719578997961366490121886486719254725625585778724964974147826601305648593347897434135902732092449893796877979544582604004412602692798374021519002082883249649806600433523518725374015735452030680882365074908529038978326296478869012616517437139732350602904279424138390703127277634888636083450651558041086622329113111602500704377178967959356629813882713992941225163376975748711115412498413798786831900570818014378333655150685534093349428723792362737468138679756905394926629371019531722160643104447680686742643668206888124215452339520710920139353802227568612954236313362161866266955369277916454406280101510355680849437967850564639524096648448259891597765862460493412279508407897854696728719556529004100222725164336485685856662726440717021966726724187585056047905247754008687852657598844721036733915501312901757805265607952913122330475945946403391026347585444739287520571851898977843539524562996932057043664093446642283626499248401981678479605000146161052252651124658393037360427603270230794597484312815599518208415904054877858931680436158793146189518803619524005146934146456223853293045002857192998024221411134893814872123449385929464167916873030865696374079644055252290200301672986723226604723325151444657160144044409895498439853539164691770208728158273360370026479626687952198106921179963328505881109839961280875453050239476876701301143759115179878606502489506066159572722882191525067864209737223704377110090396860759619696165998942505637342677373483101932269183706220963386469892947038610496581725597300529939632972866415169987823565272419092023406003744727637195701573699489203705907563607243776874586494943471169648250649847097319694205364344678067769902768192833445584422594510130621418758767435138849190681601789260925976810536328781324270629124800531580308931649612869049971200030349683785247767115132958202943551457730728907462511810591337244034728505993453697574379077345087595346707021138166927747440729126395142735275084574100608029770904968773181969571549644147798517578507137883648030902580443502200738002217749880610492541106132825882563234640041675874742325210165272963517175328320748409498119167007227528478605591843251128402814708743884409554806981737870284300813096909836240016304276681946156833571455633292191727939276391465217443861196423581873898023484644331903476879986286485284347640335818702402582583268353540012157104880393885884831349948107797609865744881315314290960632882127628782032636758975855590226325895856740558296561899707043646555948344093225429776949520088163821920662966921043607857250027867990706410337604576450332973649364854201409747567405396274355083742230555770679562350049556511920903739545466328602401008748282940148409712420433427910167185599525379085861086906551440256204280212455527378546101059803292287682689059028294244023395605249131245312776314814600044007044601374227401601498643931750169781028490955485169723084982171971755850956858020830051048984869548481531627479813064986983785721124825588341253265607138901695503056961914854880105623502577662006657756327816779097432866714526964476216554716090315394491070441830580293758410923436432660276605332410555224613303934288086669923216613192533476345599358340739809120109714246860599957744960960397889237753367886650528690634770292961055276209538697382573776812757302932845774097147182379103401308259803829886779340649778799366853999226801731317235869262954727469318655409722130879684222334857246229268705955528348099168488963747259855232741449299976685766162918232707788326802005097159995331073003693815659409262389762641864861832738037351491535189111372592588548436454871432164679635405736754897584418071440412069420213873080896664956897478003143361371231569129775076334017836864183517189928538311014997963600553947794380956196348122913570870940335702495991997780083896546422252683954504415074960605576347017179132989681137274825565269430875523222697134114722421486482573066039394428645812480188568005825423542718828591941400792318616277649909988357467438152578240245442979941901383584422438604481331731540512234253824593263978574304403651396409682110223719762029393442394612965168626470195622709553558312649989900419922010702596327406851301237940484844486660485932395932439087696684651375792348589707500966966911261813592513889241952889713911450579238557915337129662814539980858627702550815883231482910707792131826054519916390323044175663856794180471977801962642255439515149921584604220642341565606972309353108330057593577200963220307169916883379862599524689365916442261677662979836829973550878051003348965506340732908262762587422813014919838974053097230402579706494799460932255413747897137339459354941577823115254873993265953652104181106408110647882170239123059674205640388802424254684804429943408701147036661251287313053907157988525806484668915812072335773003943862807473838016771749851418575375093177461225852300756323075674706881626710170578093048717943584597883360231580755624696392020766117709203642951584573630894704116011769091313192771495628130328578390828326041622880504560467196881332442406497761761058776242203642028377186771077398875843000702176463226220336034632484034852837920274261255420594542513449779984996178216911006838063444030799732337125036068073498884348316918490220070179421211919695548272920151785470835966147451987209071087067359412016871388435191203513109753033235205750988106718139315849178488167691169198503811928350361002206159869675239060152963860920503022009239984265049143677260325197658608203341004290250820563305797859985483601407826263604529776865708083096363793673183585601279383335335710676321895099001451838216692868908940183102826168459860235457587224652110805344251561106082862046777268339982885795373195324919334173730323869158698010255783621327284849307812433176287305194929398020017772623367689248861019322053942073593438764073373136750118897967854675914032559318638916818340731236898017843359463701844959713848187496622069976414394557807089440922455969979623124876093598401143628566370105381004879267178394406487880691364557030551994029915020922336831185964119073076799758978572047865997949978315770621200456742040641307508971672630924272003941664040059248569516870113127964353041400194370516521872294468150262316189181009947174752622963252809827169843853302046115623610381036523858889900549278795316858390571933495195589331331333331830918567724189228782709792201296248302554503187178178958885775783849134232359966954640061246923192150832987591537731664523395532725648511397318054847092062227445804588229490858756293785102241283160027602144093220703895517611237461239782578839900863249459551973864381360768978202941308370825867004066373999269783040035150719462926941675051324237517330903814506236745131284225893874320584978165383293766890933954985586244337116831899152460403366047643255625914106858126766006269322109053772705022231316158514564962602079685345976102350533873625032696839326755194684292974197196714805073889898378434654282096673201148946703865164216792566756690810671970360450418437925573394383178211293224228210469057552733273059318779389388690765838070198826066687912208439040896670067785906735653626250883681659282125827574183197125830727589216963643525611737024477979301869864353814907274348370521753409209989145026799705717668961647183517067131602177688285834997644170761405286495326388635474422822635364204593497362808874064693856352457780930506451801124181342051941184299284229649560820051520898715801192841185735813700203748635268613365435184691367247292943165919567389601202259931625695314033663044461743875653362476750246791145813518561546137980869487554653376781820120728926459181965280230618268268469715556959849655712510792167500459818118854443871049206855803874149405834509274661324448020458214029995392771530698676644226040037343393567491525537586793241822731823514421135167991146554479918658961900934666589230847245503168702200768885353075757201962141370668350540409066636999523289128664652248789973181854061588171169050559583901118445384008181130791295216050269076030886691821293688970925469328904042669952027183193023983645648644385932437395697533649193373170117746858110155214367657465430115937742398351787817058462961220311772796915419001097117016123839875136371254076729062278381176085086193045316365272110923850820843771190554044589797217595365443963541052057824311104879500146612060571526258260667882182614732829398066607120073155485983049571661029920082518706098097183696829237030947529902394681274939458243792535962845150675810694999680003537544258148042151645308718206090854522652472437535560447401247438368028068987778057477192907975173982978396859324634111282814406427963601783801779579057820732338278948734075180633221658877683945335369544004414519667700390893956118320054767404156646504515438919461975613499066511026876540886216726155151281048374022820812173026898625768435579716943170591505180986047355217511925475562378472348631373932607394151074856599115004091231264764551310194556740725540129713135535375305518694925296754409322924866336879262343380699283696401889991899498087492442906089210191884251025542806447584855627872090224846814246926631912858093638851247168253425343314821493985539604440858439814077484352957620891108395336313083252435050133415454977494980026252085341537645990303379117711474529854339997800077256323909237609887198027506372661103546266628599423126385103609228469763343570522827922971840806875448541775410184663363610355415904283859539188372348263038933394509013035560312533771057958851907857614933405264830785551935195105420406878483170882478533194918897303973482884960571179252801836063257668356477893181088595542904163877920656930129734229765250669762727630154748566362589695975375356095603776043906758902661141514880853751502795557805019030095691358770128063360438940932721303078435719761031639572208349635018064754031877645449657892604565523449363748965783987847987235863378560094204335275930851583022293553082519204837713461758490816749654411105510758173990526207251196428114965166395248837417598411491526220493900748419138834968615237569132442774116520205438425404425025191665256340394080429121045218806380991258336140708699963793123056237307282996885840397397217576597097674977082676602087166611787907864856084710555895239364245715834728464515035642103370121276849362580963636988143593162881321372288690058651427658807760641838468367790405318687668990383598818060226531633405035552881676295177316462854805284681338792810347305477465676368248546123762634354657944527172435715756018432116543594418918942562399399690911523091098309803623783647456888763713755536579801275951430881425553690745687091063458920148517148467946384281670524886151055031653324840404219666600686928330745936863808132442097322023997398418428849912722628058677283618302990838997185781155932170377805952766288233151777332670329459005626059746504782112883483010260217533765527400265177846842628285360195240895788845285149574073479222685128704250346242765442948508773353140354799494587462131364642316603106197140418516820603926967838647947178118625401415906323161575090103317184780003489024997442978026718645879913791790335844224735344986919571344444711425816787402216541878651384980988964652873394636051056595185502821759855026336108119752582898283608580081047078020206123434912493637192004089786791678197983814908452244928069557330326730620393465040004955539628132668261724090861628976115409037554295770891306495877317057022906746957948458615146233352176704959148303327502900751520921674353768909773060165079448252919864985118127174468554499695273563411751348957835781183760641083548665228155546620993403847054229212685414268094604891067088909969529090031440297505255718471964427089877168723717296588424393855032102035830959939693339627312751881908305009839549594804982876421674321690823560201338352682685774717319089647409266181996435461974038122211576390166265922007159700442635227795536041280913282919352960775774787148278432810578833966872720130732296430431800608459507421944943508603950336191974270484322696962521673380225511387030235220364968818410347262731646224302518161398194502195389256164117057824596005974357026506531033488407139021273389867644879062290958732320679189519072318991230039506779851670856842381664848515916029103700870215649566929132841766371789780290118795857758835744744790327728770434886566170600802477814827804323887734527769638351923473348767057615240346956368315823992291821018453605247228344397824785673649787981793376547367584296515079915645365482183036516685434542818479384083503105232519175787359772669575136230107473447717512539433566100466143318029007791588396330498349967686041656139574646288021071284110031783741373359800880463390537953173211297010706908658234374573687210489524919645965731573868830084340473310620013370551271891155139550328956871975221755881140583733405155027379128236510669427606929482044867872426316856177857477394878881937241599733148228766170567575105559521267514198726248993527759301275690377081592220820331799660850001106723392556169564840836458250938843338507095312212386895881536536134541526693428201503767374195978485324922759689990658614552013033777045864699187016504257847571967600366256855834612700230724559047538299032821704600020091037024098127792993635529356301818914364386361434608524307905737320843836757297427898067200960673453317095195025836391843632664598475938652432007458507292367356429776760903491732934798027214023141674926795847884464417139843990478759113983385801523243394186886734056980926129089729854477062593968068408514888952137182210004075275731952710682365240832319280797851244188458888983452470827082399646939215520588539650496562143356536869960718735806594328200890807047037193908761392664670222062995513269713288377082436571218781998963017095873492795813195988006190270644027853981448640388004387762492040536176274352007515397631209620563875499838669355413729738031512449317725534397506134418839235824515504625899648737946342403037240387806103533620759933681002858979763566894177969132630746405705948693379463105034720703842350240039282995624825560496474089155968098107806566931887080415525219817712878129826563565786735970036979717086180748562661032188714890840818716617524740509113646348146995327334254668721695431799505965509462161026077629497447307539981772718355509361041826752741598187771408790039764433717571655794047804676171831443212800667236990705689248358729194026626086769315241651579216656676637086822332345887386619233687697158152076007789933134313327702772421992804414247664356534095661283684726144260703984390820364379564972459504252139140808454248151893369058083043662048457523529764132531107305620117839232480886156800806135621706453335634129114538038349117496827966540570581219306123457649109047891427609314260293878241846520225764877416493569635729924583164717654262542527490484882241376033377681269189683577982775842669784110782654760907677948053143201996659092283202173325589755341725335306526160765827079314733532770987883078063785817290746594375217296329146062570100665727659299581608457064415236755429571001514159010452608912045595732842870504337453899774102331173707438350278638926222823415942531553564835407260726390937751407784434922208498230952972233296742911824190615060523616813330170379551155337190227710522948571653826759581471561529731038915142639870089417364586635212973417154067090623436362884880710952736068736669741454709012380963396278198843928193605843634087828085508208548223464505760041239758367342362154632174497064071889273540766948409897806579197624743295908468799807597731235739213989654573874539799451221287620240737451634602819440187673831653752254992540307336080257924998184108803369610177790405597558207280665515316172155309822955663576322059274287728006365507109618364760659565942235215600189742585714093356049376279928354319413727427109505588554993866440645986647202366610456810413615387786863987851475326183530092238479122893916706242660668778246656246937687426342257144119425415145934102529879832096192840440126447468375888602275874612777638770138783011254495098195549555447562158477400576088788533105792210976161188267229863074681630887010915038365004910979818059828190515377900888164399464966092827132221021617589617113270407131202403931679651582395257483675957916138330657649455212332398403980870334178110874588757298075007476206373277370958555263684582542600563079053964858840668313513954773856601681823400627290489495142961635068350589409319728909997941955788542680513266713185013552862065388915040976244815227885026455055835624989499017784718438440912305476274895391132706515319591406102063727197061360495710708218891794985622370367305869920402431382389470339075406841100087826473160379082687989611318221494651428189701578178457536130358770408764837019930125355164947093051721771018520468091830763281611692337224438210412160525137697792207515748572284172979619200130090777681437462017537693295291486662442736687115656840626127510555563839597643736827181792489719669702099849139584271534902008196924146732107964884485298037383484450835297022071377946126934188708719944135012984472731673158992167769801793525758083299952004500587626433170715412532074110990883716042530108133767702967299874549320084889940976586790792290271562296706289036171396834059507389372890954382653212670089640437091652964414532346915231998981233032035075079004727048320233541891102382770702465257734988297691763728062002249115642560785777213478151533496278095398139647301842730611924812427846201511581210589177910034502940113370283734622157384605220466516068261168851275395820523627136046083164112469381998448243455647608316774682224097590794179706058480373407292467732565498137875185042287571306026212483177569169993073714735614397224357816870672776063442061052042206570149812324837016479471543328203145911908357023317603675877388219240052723088782831587024019067005306292943835065213153591697729860862049740654353473603596108726250836589093834855719616558506122237165016867434215614898735721803836105228665113774353960393865636308506428047944501879834313016838872795955872925698615742087095684611021188635845223538314375102028586152713216960476866860986300731770848544834199564149117897617670809071389998410874221354955968056291082201756512529632731217374042796454076496266365604918103794277073203388729343888398024135903133752003472502872448681926177571602945964233391151751955745913113133271614350598658684028074361411802624072891257755223466802642110740073477552839410301834905245133312543382285378683727555838107793836692568129645319340574942192178680097952534245733895249947479770243736755152523437690228377384909577884186091877509515887592668835599274033803579410804471497109264448024544670115705506627057816444764777909794192567852222516106922621760810217564735466798737801232212549495197322897105533212772894607675527721313307034623746150886393111391788967534415401994591009600226558230066723315709881709348750302274968935348761053280791905312703422403834249231347996406615052214109897701232207165335041943888825190820830663609248681494638180922177647803924258461984517667523188896025811556169909755164779283006557813776709607939273642019244698815179557469441204123487206636872682095904736533359341092717366335270724461033139920145499410119269232392806766295804475013503192132905695352172423725433920838140598746713197749021833646662231194678833229738285497374997072631800414511302837527127392960162892878891324152762061408503800637900366662594881851565865179102442370513990423003092893063991400126052560503916359803762153666192620407469960820697269354350560683879498123834158563621980547119721138270757460441399624215353840450556137640669125219654320807713869055795596515513933495050124521239285361920437303384176927555079009840551022580706537203771501027448629757946517740441131548859037700679757908374489356234813325089124872912481106694681643973612684576139162761009053571254870644864279051244677788394948850462379618448423127729977685863821593727452086979064181592233984202662963298875780588970116607193948902720742269019309748748424403343295453225496444262443871058606178958735632828739125445451372336502695312546679309293823078035420298581276280773055195503580930983801444521790826733023265130966154808522402528727077975950115771685866774601511370271067664836943207032869873397565116054129290349378894273907074744815835402832707087979764404020441488333798344829090457525149276312442184835505864648578676999366761927392733046372598476992704638199538659691034826782214200184129102367770004532234818993157294430844323708570727370753297918819629453896896343407106578046204286479013266890950085475749610092731475362752098596903085732147395199792624984828093604586616224885498702110636200930650110928817331084645585945758253299120445410745188830489657132267491539383331450821616573264691422896292384285809125568794069439217716932555335579885364373303619393798188457526456117293980079491883695400812342320110346991378214880440203631607361376421999457025778328793998243841508243583263596015597274382678435077260800463169246276392951916395554296533839106915115423915666336147032809672488604222682153931642653638388031478297684902688709656451183049106231959032384098455045895623685017336522079402508402015055861217995680863088688013384105194485998085957997158424821653037932714452063660279448941022426591147838251220617041958695691052790997491785104108459985420674316024893095813730138404034757238463053246045895768718256395033091758080618770850622699787847024800683324351641168342867665856774895185017328420831706106672255663351637047265548762721133660979955798456558231069127955150823116418824841861607124626536171103415382428617680233336538183316763690070038871294410904776782616020805492901760872821579764117951869262738854148824727157808836342558842317576826014005321853290978316654411337050811361327538114114222486962701852236500494399740793252076433683552585402723786213016828716059008808846521360503599180592496605779997272609627669047419453442240298676295588263323895453429880100689948042520515775667090672158119651127274349406282650603379598196987119256492013468735192130932099445403499820586471596039226359112936282708798869681748830542425132773399024538038676963512707729280640604779921286191992801614658974958405674282498012188040079100297152821197431972080712876661890429982425082364626968126336429316038068009841552526235861035048748068862686401661171681991044722041930452044822445320026534357768071982268509921275141819306917628969079196889995673381265498313828578336584459185344185105253695141239850922714029665683306194029631801489892613909437676371406984563294254180358536161421662265387850378707280179690463383978313559540380331018458320022934250260314078960061818062431271052616567706417888075304082060791342076943620577730218887548304843007976398138694579344718015255582538753601839487648434406374976765726177131485286962242506614401301393962649809027866984242109783392150137946443758969913506351678473053016581506322227326008196213352729430473348050079665843065867625931004537063832345313624773912133911547680331575767365583053122457912454630822828742747268283255945409631035520478660386138200723912885606927195544149376300506424216571976523735855824118887408360387497976586204100008556385420831569890093140912729577819453782349944056596236543346878237846424401437317422720511872825051163279452920983703308219268068736521740666992044516060499200448985601955108214850399567614252592640937883053681062061607259781803789086124638415492121723622316912132802843571265074999198377621650181489803785311038646574902535471587733260346846680616225262853997681036041415639103153721383392157472439387474602710013431724968680224539328171442802763073833568166711858539809445329496658026038655394080863061517208560503698355692006383809556786812867156448446773586861860744728331710430240159254564954568617250639336196887559255484827332924626922863121984606453424601626806732699877877962482295155829218931537717685552482018271950641793638336319500211278302249213544910792669561751368580095627025912748781845841068052516128479849292372606735701230137906784115623997542999682305004296126613990013521413832781014449953596360914318434300673849464601393462890600090636216599021722112695698642729999078993378459004071916715859291622275828408900240727468361278138292974988669594466825202557035786496746472666156623312690543877388623522878201948479177356716008428865948082856470033117984278497983177780035686147607550170891398859229011265875297468309420616233641498836608647717047642489845686254423994037180159956854613345232829222521528038964422666059855423900850144880382087999147370426535655363996548373708828926139891185367399696992331762646452219009874647525108396833912859780889736767070344762045671909146984119682762633375792094687130637797639486382004023896844470188499043829234471115742201060482575267810355090499067916663482725453312689383989081941679209800448846456226791245619478257369368098537654628977147166477450586334955834394706494601436268111751828930187500259474762680090991547136875126514140589954186184897971794807872851296845781246526599463627558741603452401265361969030068887786212734308970663744122488187732334928618015932794239168143368078622442447238691098615605769918307192391625166271711914565916956678528838671610867517126430569850443483248672100582436193288417274473769162337682584443612004127757506609266071499044134817674037256790532405049090588794533889348831607168568503482553659708458032001690070433638094421102697280977987489134500210448432079695760793920531017281144480510735826902316515251402787958314687093935173990859837074432850548297610691176421916024113609161487667696056855918419809713676518078170224981349347142436500287645405416562191466749809339261929617150864541349296978526926159477927597760051565899896536721143723643575804772166747681042644110727673417150256555281769716560776930668489404565459002466500230935368697051318592836945087780626749182403280169952323084518783094368627556195171375842053124113393447261770827848263223826767110103450772470960264076354541770088149613709632090722566880486225549850594437141010580286425856826718607416052918922882103547019592506803664452553197580625030156570487515293445664475121197926260841367737636778941988994287848104410389650900803315551165206536580183481158501447445037591240366685730710989733937691056484002088334428019683114890381759027782087681554804146052372767528388521762234811723048773889423236150452620800491574959053895317502323831191922744814640747648344470168122122670756887049625785661605400803006288082697070517112351443961612219428012763845592160988586129975134784670310755105410327392068081137833790834174856692844378450023431376235173566225926708057630833658224532531052839163926342909870313919384819277043876624382244767280625246451723847381793578572584373938370696742611699815418203606922646703521734713456912119698675571909377200762595971536215158915240229673978730045033313422016285782835171923839154309948232303774357852470467528021727607659469467250873026095107875959360988350299162171645988402625045571249387595957614646281626384599581040750844934908158694812118949990029238362028952669325252089699770539521773992268390696951711489398200436788066005897031528049704968305182040492821541742962774120855327614496339517261538751923510238009020321849251918076594246603022443627517785418749586181437489399939248841749091570416477725031450309301947650037908117926541642532354579400182709393523567311212488355343115280830138053652434398669969914367266506917745327278923891122228553120875054925528857068438974269123854893041926436295855494459376793293155415757125050971263133212374666118700175449341221226195060204804056373229012591622945411902726388887363107513126356611935321114267531137627470057979500536157113933148253584894343750521456074180680454129119115005465722493092693599406450326691809662601419196564227322773319218056576769254150664463098336996852347901731847518782193337613413990170643198304667326058659478793816286410591213998684588656298888370949970857235503375912611120252093345600387657606882501006684848418319268738381296589212592456654738725703182467806020108052950855425926220071616652956018725419294901690878117273149466312548957983222994759904040175316736989438222572358706065911671677389415092901452574358690315397737423625914880534827852922026207912998457286385555120410047440204556855080695870387018784331441869688724828892060935123294479913034712578215642771766109893260862119678315501734643258530753590795886132112097232575189056116629556487647523786262793150651350460342923188993251217683393878356365628292992083814101522388507009653462614807429163946363699839724482751718145309665217193849859937027825123807721081220562204297885523688315053877463453128745656268975483650950863928052444285846304742132201284415949601799289470651076857632865953467706579662872175071128275759628111224034001123832430083720314248100685682148240528441770351636584777952609749100287169092088662798743069596391690731861743024737921631138533108710705904497160216371875469277647609128305290167530824084339757009708187151670377333192530171764519554528077610837036889768453952726068742552688601672197249528097548390812180538151446760657181737635470997834274382067977883260040874671800323388469973915519220127481207607943138667569857286994469116212150730225678491326480287370120778835428110463761304488851342830453446394448831852476487648606383721698747421682170303822029058465969751698793718125760725381563745110086752464667717420212288971661668133390723213550046711013490067098385268174717861938215435925874421032080348002823272886823650269126725208415534949771402919705090436406035760360355341692492786131744930335685458295222161537367655723596198065880708367993262955451418190572128342452396167341947269145653792658281383744518547285263516393906879477080010046550454444516169502481617386706172604847097523304173772978610079053258021372387229867112718732922649127394259704706692951815243175248140978839024185599907511423522446231439254674875013350482773834923850578684222683000266107391231707018521562034466378494214505762201980121034896405547525722009556348004138361965219097881494239056303325521060927537767265533176951535822579171359417346783682462683141284038863766864972285078132487178579189572560466812327605795072675500460043542001794940080863756555789186248846303903033062472927117578469353851704801337042945761591257306056958134945642729206854984489403604929353879296976139341307264006207169300611333495129796887491658874413010217788883409872897207295909413972546419789849840100445557829254708480092099658679843881767280043185602811315035903830171750332380691959914276111481153834961522467969110213836934091608999697340763350502133130980012143442640762349899653536810798073370300579425905890436195372644508554810619047176984750116519932041988882942722943263526771240243186364522588776005772465710715599701854147283734290030938454315802253155387358478333010869046763799377704617099296844128062185906395084338459274944459298434609008764793654974550163025932929648842111424387084488277871375915946818519176491430892449144121602417456536746602326818057952186767714051492928862750263909476189721699810901822506687724585176288222407704439237561719120134760011696623330753786759784076507292431619866788152720752006023749108059368949620159885340603685810595191683756657906631015961552460632216363388585878880530075906573743451138853311422516589794726138374582738557852523278967999658248540046536532361346606706913351362822036244144878811055383077444556281641326346335612265894095153447414077512949722369998108874628321759215180565403192695459884622396765871900540392042182899182393034751297525314138414833516557468408467984510769627262267621632869946532257180892547002218470378112107646021887701563785493995534094275662733753903196912916607900721815887873014289430689096958660905955054153041648374705773840239214137365131377734691486018683483378310026229090517125112439389642346583937031196659335311608499196350379524855932556819743127643895702224771733170431050170008839660062653692453788353865264128141452592936171558168239605492394171178450382019028564343696118210620546398160208414167800741042785301993042437961962440344274610027573247532828150917448294315239959300503279621763279498175507954456094713933284534172660551813841044769428043827775247891604504642302084940061819058894796323354788653359486927786831850141068846863522830814185657734974573589364208519625715568569994136200776332900607054390446496746425705909860136287417946982108980899828547776093597052198125026651418714629833165652703498611081840737992174350020752582678037686813678200005321946385316578120085462771346790884857170461212283527131503883440688163850910150659014485790231169389051714926816609604234248249891806714614779228011827448008451317706077610680298919776110048176235148930860731982660722449390959036046792405842554811987594878064143127516535194834563133703426183042965099024470617077776831989683154847010565123803650609722078504650207769083620624648935611205788723835532594299883375807400371850361635814184110613533181567142553386773051351915871925962706900106117310508168742055288778533433470758824756221632208226110310737713970853154576439903493757662046050379423867626596453677698733820546938111461234270835563839960206072481597097321575759247088704717640225075463004650437245291604022445789811981952961601896561946810635923167549471856041139155804959124565664276379511858907770487849631673815894400112309379394317515480198238631952418760673293538623266418061951275781545874841474224735390228430130899700105887634683662733567721459794048846786836117054861383757214345085207475594579353286606934899693498639464036454026200833095493029185914416348038715501466854190497048867089789252723393737418520324764119830507677549185540154646685473543973419507835529704611732357704363032936208929555696465219210340807192430385107586643701611322444238207348036070152269013978203712932113672854106245087328667450648254577911383044658400705083611190626011875374213902441572313897435055340023113399018411778290482955748585867755048737780571742318006729205562859556484773732403768383657492738795250919048142119415381749213568837303199166845425244660556400737778648312439481507733279427156787573440303002208011781917830979576754363887782247297075448105993321301683095255458155045962002633053312111453306495488622414935971086782229453075257071522998959212048362153652384398873903607355420902420759701086302731281140846400426847252639450317942501067954367973584287518100382011706053711764005732565838420794237175037911038565451466322419925969120713820115608235667531593997454603841789920385166009353560800730180161375892955660895403645925781250674734816809610198770251106800718414147159598516423037241236674574336264891043034836094351356730252014769022520483580526759636746238428056576054713739057794800590332897179336097699982956495224284152531173982195033652565700044169068050526325741427956215974824469553356322026528691151045058858099460767309690376105482375660219423311571326004992902486618132109305545810887157521251458272603833846373247589126034203226275220621334326852568837785556965083922272089204345796852059619748589821836874970863073049979963596137806718594365772983426773838579499199003528031795288953819737775070185755763314139211819170143237354678005457866951532987617555980147613041765230608579421907258207099251550075839955509486568315238587310249195395009823056001178724402116171944901657960429583496697186435946885580542828674881027909584404917363006934971236723981758864196858910669445491333796142140970952198875122361330914048395904868559707817358986409943981910175830689242229881017994136535909838225969247466659289246704559863720699113304840842886976477647511014214410459798503329899492956669597698574088447110282277776007971376289900717334810827353999238982846583435692601420114491633975602727284239447065924657397246255351129920601853901189312881816517293853607708117460612671952781819405142462609940094393240409608353429052996900655988557942928885235818878515786726374315044858347837475511510743305981884211474878304779588171454997853262626525829653914842921219501861844502943996213910023842209065017915570552359731708425821399945394355443681593129119389928141757385788275432506527130388963686068685728198356272489912412206863567137154496081635465643709490311184146049027717013740614686106857088857532902668870447434766651933392909195661976132006355840076451562623838586246809487587449701432620380966205568602616743745519707430446139281582778118551413600731634530637882508832589026254377884769892450857192432410466681435803030145124336874852896784745005601794214367149503193122970727888398290252707017712004417709202356126998368139751774491804346442368456885839869614766909629189131674342237392433675531810379383971143412063657947196470626366523250045508609015359288742296881255896638411923865491976466802117723905788266350903649558308963800739832033940122279425550848853844084994193469937090039929257768025778066001612545279962111900917718155099021629141686647988806802551064534490135688240051127531132942003626494033455827070147529382338888083828194275764765126017287183359861221782606896019589757703464368254698620336139391809803362073358224694367514777914955873903862847704136771288520157762751202730696321536724837922316864209849149586347501697405333462510701624010184191985252692057335073199908823748294981264100401430949309142382693477402294156320991147503991167332462729843487149068467214689751388268893648499486487407512468699293407889844022091208427143762235737609552524306695103891208578681024281189141288387642378477636052431713430641219197340457263288265470804941631610195864655567660248905404611349882892282504637200347943519934744381263475949167838902833656289347029530297214414181448471903995504865380914141059837436055309971977404626621549195014965977913685016070738229206697781752808535866772228844049784339452987294206585989842185397717624724876977198612731470795886519952442620692347728787581956629264218715505612958267147184678849346486001133215497653664465991686884360507849024125839694387655750235932521349523146853711724487340891186644460994495972827957566264824713865186020604223124285745042079267685507608572109132417335855427550676066988485409950772753425334781406557562934522925912034477147224865460595176987212707592921790322013458663513447951276676305759213674981714973629564903280566575858117750056587515857465395947857618560899788793851578623405175594766669243153662881828988749144288891709695142305434723926686285949238101851829884550377023089316799121828845420015375447896934060301866648137780544619970992708099566620141879261812348981099998872164474640177769455822903746161437781302366767526484380772992621296846348943704968322473953757993449280214407250738949706322303123639584460457711011237554796209200296269526594623657838950956016691861777462447966987565555240735278131520301108307833426821528838223848259968905563990428508034541721569840964503614229545404647484213742887360044386745824328258749661540972260422839227737469233807716541597308004475565928171394062243207424011943524952091721791139130705810074188424651162636437702528359740573117838524285107984424724980651380414891159564496536095825416268026295570476504102560656127226163120047930105102764411280832062189880493659066196762179171128387172679659237695920634453628743704527094816522877775534147113049263987205785693503800593047691705017581425528288897737458987347870428983106311630884602239183746241382912408229695803151919284072882261315330223858293165237219390278698016327040196294626359539840578020100447463590089584053646013048213670554825089679865146426037383977472956800072449777897684515082068276121416598882634769202255194915002807198909684601462350307893879270448442725064798959603106614979574308846126697537448346359464078724425755170622055763113371586223243175407706650057913277655977819085152341569459436684073925303132716770728168143820431267310282037788539111046800577848460841836173272544309402547013438375274582790740269261124401772416859385697899773773771922028665394594502916903188580084941448813062947131605134907473860821938476314211310324138241001160851475118765225014630172772014959023663753495592662386844760942482200700667979854498875105128793409350799882689358617519259071249059478560742597559579580676744320663696506387364166775102549120212271613470257351887051791508347080665457762551980835010438797121760939350563230697346283997287419321540284799537459641247500075129213683402081218569463285818275113199503215709426433504026362684297734755387702616590924905009529410302324400490664511285471555918155394350385255895244778918189761726506804506998632285533888671423870134196920576011325588183340878115287698259505100790587462379826129752344447896143524682491750266911153127248432051279692012339623081456363440940337802973227324222414367999011492919969316231334460090214230942511115616833043650763226745482763919033641863360757217831790737881985603782771069844060854459356766842428295702230080780513845976393038823664429273998338387025966613824230493297995125859946291700462710510665225386851634314935236282704198337735338089159745147107691947732289361162466695285457254530224658714471090140021706050038681139423934869407274454483877991680959205892035466087947287784422721134592280450563000212639306769814696048136197369186529425332334053407184684928914034747738980638812565753891385755000222361487740361747505792137314718915124492219469517242226436683047378709032106596465796658125187078773724191527401517079752607241129323727797198823935703389130289506645640934020173381682269315009955107311336954029126519926709994221114458837419588191131818815343325385861892262784600233216220286256764279894488035911951718664174691156963858160243365090761530757734146062029972455550758553366053859443000566369734794162132877393444995284968724068003858032858324367917462371996059327424994345744399826197222542205336587143885922346525397121197270980122900600019129147661245718194138734671466332978319967397368955044893679236736785904196023887668815697019601561972517681842091492677046503735919124522535101979023803752522527993179326202768762765785471084384558819897160357621532454442220603588056756521356368515441082432314971296784116581026971313277930029542814154682467084202995465410313250633211405468575076277751741378612532767285023048082022427233707180007157232152845832750310681390913386112298250110935281224304005110979767543098620541506325528866410410502904487728392681073237106579116678025152606212725558452555187706938505905973269591761154103944833388532027299751127568215997131458787778150262956593553354219587093216848073226583691286936948524065610246860434223511700516245863779591791730161079676664741316263781122052252867631904359087414053814845373511933919231809371889374725382241748463185818087138691091190354076335324980053988621284323604063019079071987751887071200297261565496208415004541645290536147299175201290454908976835805780266057342401181805334230154182529577552382796718645132194795438817200447800365464467788833862375979818987500181077601249693843585986686849457033475028642219384778848622871966496243619872229151484333195276545403807824117102541376858561410092091995892695522081429788597121899212729479240679343555281724739095458752471587905232846438302370996233968765118679939313121592583216882712323675484292422846263410381668657677793917720636187985977897784585838733335933014867749815590854380384711095221140069002770730138056779237256728632141137740229723991218354764297246883508450532682749947858918198761781218155169269769657551935596517987688126918288103917865812760242674223377222381592976617560536435657343240932231589734472928439009875706321817170807447619799076834539293243401572384575727017085666624331906509676496290585752055920269813160448771650061295272665878416415260219125010023481081569505662251762598180939462107880455929486532162028158596458564746731988991149274469823925648565595872903301867740535201081124245567383835189697922674908969245890988566685556154758676162290538086281586903522162053251128618157144497981927478613968412410622159600121378825785666590550570620430820832619183360250260615310712279010887668698250011570283300270540348961958909342655849618254621978311431550396258505488972228085277908279709418608396939967157174066690723960094725861375737310921622594705179029977441483378847641655481464446957980591049589558259470847240207390901325084959443208918068647566085581030380351444727027342907686430025232668751228670602661527154656635663236673729407241817463108342335996959819521634981013181504939694854729718629118618864919399065114179840069736207562743603225298338336902975023232543841156621822288937697477746560131885035599234061855163232240928608848701209304146124021159551059549057076942985666241251831326097601058940447156724244334479658829549718647168117155987382506494208080470755527888420120035100482904877097538567836388977197595957646446520351141222310646939582549953487429966296976619642762300722364991838611703704212573052531259848295979327254493686920275302112664788413797769225544013138653072961474235757891713631647797633998850522927422512889955846892344060982811233883827037244488336941135775042045758108381953247458835570887915842971702673477401519345257700396649876093464880260735828255601335859948705274337858250239935394267479123493591331125620649356050475070957768782394529544524525177942450537378697425738568506709111875108030498940541163347527591279912037779188529099676429477177559179690838931237478161417280152012057547572276408795392494960283905244990459039613735795333251427035767374078952517186925585574098906014549201071169145343247803365403449468127535130207113186940533548498061230062346188034801679308307753128298522001847472589332821352869371026481074575444180028584340387738449130265263203793205493707137010380662540557795008186935819654531429521670025554386943389393760626064543564747869145381832535383889796259654417331719395509694037105835922908018281545987720438062573776672432449348089366293308845973075938204897670974859663861042313660310335253156775704428491290811406920188233531181887940332494980017946369033729752729258231137099914910259630573072163977536391315037473656685127139101828705658931002674374118118441713051183418821817527076385725810437264791321603516073631898232187700423467567618279344525168687145601441252418097209111742692355462676313812416301268340868945607117965340826828270021930769400130629375564866958581178373449763101632112576828883622987088721720870176068813366294549583980420179803989888945878459464099915689823731109320825407162830610926758214195580340964924016566368334963625686842145760326751083529343123333923407209621131554948475023782691787986270819822219280946358260819535919469017300220438462246817298246985339092822590293389427271387236022488520333114936810544734763259751504873213038202497497385188023772270476135080379085206923294022540509965989216924361738878757277776917586021103286517523451114665574492208031523944749251045141282081123181677689071382583240130321771511166253733972200074001112158281537847966499738352326894395568321885244029404578255457140274283344129766451491344237757554928524776197927989326110527501855836781797570467664990320258205135167196160493567008007418346462841780313069657904027575608339566840754259145810666812926246088686080815692922199586695305595787492642827778705824172826636251870070216163557553441277959407429278480012287682710884131620135615122991243376874414798183114695067606961535671032519243774316032237906542411038490192751685685429255256685706700731945463550227106591714396563300759224263015582713827019729521893780614043932269720721832349526239379312157819111844899759250538738804528172455067553473613442575404166756776253031758850454051250523563038394866579807023893409314270246324735257835321461483807026710117351530259278339317171290043117836930998875467377315857234021156189219444848172891675248433644195032748443734708541860846921773902590310620854263177617425786822425529448094953159879119632982050524987017240953871777767414755168213507617760888620930307351021713962788600555567615406077018110262168819914456399076471107229668528767741020132235060970372544658520106838680967001387749121945863552534454697290524006710282481302158233846017998186194570158024158763034356972742165066472216355104041996685478824162558988701863920021766601726413056129095060096172744023046079872714315466351767644986854940506989377522552861233303317384457060237533806813063919161385796025050364215293515446368244921471439220059077357889956526272049333944676085621324069500310266032232926094632278704343801363907217911196163890562317276802739993331285584034380131369957265810121158403766570601509641783632833679842992175477209367584023669334824030435150342964850826548388977760510417541228018123662472338378441817636734418556141358445709194912313706721773628569181670629096192162177291948440050081203505397759445042223536492407692312113228606318499402799642977102469333217494488733461205532525809724977593553716221012679430146644864431173236619239869910035973944146954864962887668806822804323456839140795284915288592857622416421127013832864163400747416322484803855990293598887143318395631573882622475108246435423168291719606994043047212592166962851191863441953028915089672396726852704860638013468934620126801449097372205507888421973184971035870716666648362862372364149700794617926261040203078579864878967274170736041365929185003834620578349934911299213692052628020373111300045069940886087653859301964669994793205003110711951770472468096651282466262680911220550584509110270888139638005546571005086794368873360870336017736043798654258129317126664264813282709217397546862780291211756426648764584723796034699097172417645965833702704121695522354152789756512998826237557225376849680193446196641169495026626903180698173249586331491886184612879536694517057400049578783748083625843902364972087059343819134938786809851432057481045163336503071391954706190693623369877519505784977812678674489571679771816222098713838102817710476145890188336191610131899608888990392270597142462177585041938282698925612372462932908131575536532981187012863860302968408165889606560441844802110468111255568419328002318363281428715037289001649628975833792149024766128472618368747590977512996574797165052411175156289250292075519692973478032651336678957940616443870788158786220467367540591745221618804006788702118605965149927583185585225951889428165612164157578247525668508019038558184515235128957589325285793256903830899315605515144210167731309832928076920911472422419921309818498915537439704547942505874374191487016746522366495062893298715079370064822588902517775519424166276820760761427213747486552391823597822312528675433253729404164930449812658630908280979231915052937063864275867951939104171631603329795288515430345062862375471209826919585482549716329816704316578235012997737171692258795390744843715354497037671464839242380852578751547020244439285394289234793670352911971621325997030969105749691552526771067348184217154086417615378773945400994835129887995345943977826337577415244427607199698786777773825411418631636768489300387223097077185078615855355950272656961829370736617360833168896876082036912399903247418064715452510079109547262083277709859656104557453419331320676598731513343418478040257170149114787903556584482401297295492445025723727191461478360845249646947610752616375730404787774710361693533499634246430328902969827842710935015940681357665825723314731105316799771558129967823486904504870139430951183613808222528272408843744356690068664455558679691297047530140666343287438057310061151023150649257124670521635550713126192296380333210217846929419168499394361934674370989958595636905092011032857239863895459725511578924167655701819493646192198347915469203444370671399249133294359372943631475706633096838927385799832272003038847487174702841000961020715031469823605550177824588620382472810693855466503121839396216756273622582915032635683291031414438341405357873541144415912263177166117258796805264343226972752774871836431438230351405839747775863808611062549221541112846620112163975549671137281171387754323758756342482763656725130884253575080140604023914974422962304911028363244252110674569605375886864336892564982280955469777839712058039018932299816034290267439934195814946013123923168377667100738565043328874015863273576411882427269362163225884062119952757245988360194426563763768617837562398790546143984547120502722824222168407786285607152847664239507516639180926265355205638839454336099691486595634958774307613117244136108810771637275805299684204004968188417125218210837687491849962178393161564790791490309484382278829636424274085627433378041167762296763534252799548774633809378975368224164881408066253332825455562183349063454483059525346166865443375910042280730940913846019917127034937611975977315213946022926284522366796245836097732715424227447449770651768709004636542412519016655785587147909621688857098467307108676814016444400546043776626298230297443334210177377652282298725170275354316705954429308154370359829796898003063673595383656161874986397145514934373948400038149750042270785354406422981257307592216712120322738723619508296128632840970188426685524912185149210396708335290547003132754565191545808722949245362559761235200785897193655291508657662467255045704514203833429545038902484911953213046013956063847982179839421514296610182753950173818519701670738533995873688656122114859037655172964114555498205983389243617255721876916468826398487722116529208165986660454025199847647551509938606574324954767771566081727373413435125102126748425469891772981223333592901905980992393229347716710316079289451115259604459651461030049027608260063666911563353486199041536894496248054352119883939772550616820290362144401666091264319154091237314197225559920687916678945738956555590964709710992284159361638928967255955431981233091360879959750694592095866243046452333635922498580027839558906136996148312774419675908534473503117082925870361120438158257532720875833374820897116605393271811444348419777297793408539870115329276353144190840049875066448545545967323036326681644173282244239971200968919188344823179698409911006692982464765714017280975570810327425184944560283797756291375808645363949716297224858676022929248299467384352480109870783260750737162660573681559867675560100367128077805793786865764343453031815576934867085079212420424204314006412497688800888515313663864741491490876461171749178164956713012077814449555089743687547617490377016862392735764561254374673214579417293538271004106195768892156559269396294107450801128116758419161712830886870981349812498112330789840402386607442648205897485143084451254312585754209003567676348941193971018560289281766656382828520867337925508939970983609138910910525990512541600901056255318021052828377653064383387523528722680710495097337778959293887511549211645978101512923243297559317056642252789527676195703517643586202403243262555421732638757746681507995604203276298690238863478305625252642620324168740827066551931731315834461224528711017227293641196890565185710614036573045567638854161102171267762679466969193278414844015824030706257797986840758633628035778032791261448827378181455654045873019930074513236224416536134455410111243409132406549131378153313088404578989602846044339819688950385606431650384409489824182785859264677241631066683681401053203578987484184596755543021797413170873941964516017570112436161561408045063035418100182947992454626756952664787471077859970973554402896926243546528893318810369284177625139868954640886982898317892661719325425356292042390688402165482827709031625573049761158040999820244799890378292780139852118790469693377251631168918246639816436055403740903818119930480627128005223212335426649441911936162072423053977606879144639942313488937887180333561417919838300884115333628837129946115654019620759095364583320996235721240479129005732633906161043171987239839720869058742277219440084399797292741172832251438292735642861195804996766688465015009838094274814035093691562850317380081827096839300228685744324009095398770778983267096585808620211438888413391716779867294751258373499941227933890394638668531826855583725903282931194169869841044342698296834947158112096747241851529731156415538676840437488264151004631723367626929253218924473181816151577038461379894990743682654454387259735451194806729725198395531922219160810079669654127069160991881816551330621627457790749824258637529699055342422094357924413597318865703281179900162447324841398994563286712188714597664458419614318496978636809481858059708668728401501728050132602887010211776836186236386347209641716119723014523953890186422020279593990118542118497675168512593010805493925633143892222327468322073384538324825887192768311931012673108441869298812227142273467094432566240052440715526746143470264295550155223466037750341978878150571037388632544011214690246832198683162267572096628689692806509492075441881177258563340768007841345730883569837415501304809423112215515670932497380139000402185030422890502647915788395651936189989807964326713670709507953079398748302282882188817038228357051336586141415434534727858663688375747012413483020108418069946558802235004722554701723901327453823815167386116045688332649843039311909835023536260500212542241701522174170776602835323476095381388332556067999402707284493934778727752421161651127895918704675641386974366127772546029310953556779459612742597440617144168928258074628070714986858063011833232126339926650206450374586795073703296640597988116649240470221230780622053270284700892524164623211423550546052927066532805302369342191509887673753997078237394383356200628520795659008076678816689424820523959994389116017266087266356896821768965379521524058451755548172167742817894437959643325389938263085249642118525934483726520162813731988933687321418374841220354329895754290073330238750768294131479868199892354272757540980525366745492898297323842493053491686659600928416563639759099903179051918917765138857364076132736794175817201962256528017647510678801920248244924112305446885126883334812767085414836309280538397079387130681974620927844877701979535139198772401492027627722265123958108179566307423502107035403570583420443216346463175675866878284914321325845220683991849362974089412319566073221001130863841187075506266228928531549376513668808701765228802207336578624662659741493452327716607803190135876562778926419615236333197364299198158559487846911677585088466476686534184594639976450651369960371172224586669630344205313346819344743953178558092843354081686139904793684374306740329234106595193179235332998180001160783538144900492731608578288843066557686490563187900377685858224946198442980952707160298074223464038403826993660830644523168846059336895632422618094010498981809568110041115027688874541069587326393128994461305933774854338307698794138861623210015780198684302156991043986026474598793888484286645891816001691530542523674600328613708015979901281509767143239586899486579257117191283503743798540646715014606492504470026908780533876932788152475706642010952132800697471088102221997521738089065455488452439386096511909858653801917425790577322490051468681513401477251089485401674180351443815130471537633384951661524527182765483081938870908433360328795690643622399235922790757448373692766375657814653608338992354621535976184710946051285588142582744754449208106143164858797479936403752223409079307089983230798143608645860630424551222758176321225908569303425337581409323206332812175856034326358845196240093828425383814210018148226452713178320960776017538326031283341601232960179670015878609816971099467821878586968065516900073888946450229902773173761830937277165963937371672374849952442775656273369499051098566125043059160399305011548335891006571209928128495272337021716188421808623232185746108091174375668188560635978477164242238213317183472905793039753839824283545317452888125222447881177739365059092916842727347482248893541799279753725101663840988359682363141451255108972391062605401369674335263293706277362747082504713177584771081572144248483990284484774359966243311372371629794066008105793069322977912524529530377221299984716847198623141076997847828765115795180235879280081033054251980301644989292190895918747627371933106926942437372443861837104903118375255159665916713722599393358181373983165791444748070699069386531615207784243591442445883234177369244185982785570423476228301166624885660311164238091743478992878306510995976058988682197267282911413322716340017962375579074499308247826601419260891059536232711740359329740438447918051081112396986206843181853671856131573686230205722719286569687797291697438987316002167259568329407455315046476584865873464431290125487024371665030065848370999255170242966776380233725437795043897489375917177040187484975905253872288834913218025215446092424049509945980491354505292853013707680049771088039464762406922209660474372471114950012387128317808542005714574656891952305304194964467217890924024231732391662240471723237632753404661616139393209241391064866476352091295186988051053842205106757385337152114082880552132359566775336586833740212140166884534955742142587308240693630339597174866487586598539626293078142751111543375148816937165279884958447037250642726913182152042262178993343409021605051466451535729100406418394239891926302105826817141389309470282921495761239606555868530741692840489129798310898167969740436104883895234286590627933190057508643132858473729865151610387211800073365328716337099112501855814737663843809304481916563155484596473619861058709534079690710331751688763949311238904081627513379062502858810444568773807468502665414978540119937886058112430780943415417366558518460357669310033385222744780185269514794858336402712927686983032462450212029303076506974578432818326796789348821333095658072356988125248021745279756388943765482917873906128747602191167741642180552319254363167914451535282299572666156658451001343031937906786374574491951780763377368193859493501853045375961628045799501347778283761085194392521338845679173733843742058824202661823331359506828020522542312320571136229505087129350132952438309407167403065564742158252328754070121917622467291744656640726622821240490888674305517029603149413590482570644334574159892474056965472499013858630597015713074942176621216979750917515783311784355846890623411242418016387568210670514148395082602235559891107274719017172488676235453481642404772812911233871301396707450910888534532323954322577881782812161592871954561127388701310091793918609519241172745626878283649433957875609556084799673015861902888109309368152776448865067587717086057163930947481023611394608188831360063000640873735169074189319676599537686123741723129387436047884147183545030963361406304485258747920428339867839389585465302540422764592582488557333611918488662835818439723031167755460749663972550992689477890509236524789900206636940264946261909723171936050919428572462764194161858567899162382297132224314131017615640303741873350862022951636446178203965099278619125872683547102484034164802931151546294793093248555368888361396246935606593979574246936457550511070629483235308204925509405629156691588316911135765972954892084300538824911453797185451815564187719543861196924605485975609761647839930100408469886771887049499208658179623806326609758231062953915627145085532807175413168785166714793810341410224266223884400570629352089844587956921179887018477488103694832082612050475270066467570381190088230868792236622897517398000800318002982024742930149563705746039330815520424609576816489950469546690184566757025264810961895963952499958683598246241549347830706681907133514137210556691843876850198926034700463510676758651992814607988853335870328319320487143159371014596133575865086130210476758759295700795550278066997845089807198270339275098002730213961335931527315615700514212868926139453294108962448916644109758072115579908306350331871529321070142724604405881829276026267728767831385777428202556770839805390640268037379872656227475896570850657310535035510851412936963215328578794007391693732210808483767336622311534211193850502137215433821096541804371571591599427956172620330378735067397751773806843950674551185332056469060587794173144971768719732098691433454096839650812377055776376588131393358547748264514239784810462710730959548513975796618152650226708501544490421801359794653836323796545622750459659544088990631427677622783033062526175279456716379972348045978485747268090419813678769456387925823937005546626040329612568876000978676172872522636792751421890132115547071652973634569248681381099667572183375551777647341427794128520829183507359904258213670387571802628860302498837714312382859167888688304159393585018887462040023073715399622601810493745420286935726273876094047418492275247042535754715507206586782419695025962327593015884368294338334432858529162463144797869927580204263698671331209485272601042705639778182769681405204636000514149215359685591834038959039935900173041582721266707556105361706657952216425915927335580617971687096530001260406566663030953678919849638910332740495075271289943914020527156551425596502017318789138245573058267677124354256829243603649615362817879883024952180532599098335157301940031752669652762084941904031912580954640059935033691442136339679833000128607194702891122841337792338938675566761118830975864187963870138310781644384005616638936228947386264927377507684871058360246062599776345630926567449096264598494030206881507649032130588627656761296837719675443973443614860615619141968831644787224651935966826714196684249169452319969872219664457707358498018746014792185177472649808343962277864050114615375420244293957535368567579798768670568962432448085892485080343645472246024976537225801748911489070507543718865375073437927645119879552750402843076154381724548361378779312688176432354526205612687575523187738405590095408700024917847077524106239125853550518956728078728325601558675188134701004758879847608848208595472615291182481919276444629136051551119824521669847560031101295254506382094788749438724321850120816653457071246828026862323071120489684846184147810709422625409824297599283261458375785648611162694325614521075183825769882581293424349705670235954298637892885289047716785841364546741505801628462151432013979699342593384281034237659495617341668382536359958113887561358904677019091865510686349356698623769141422192950591391668705119296116893215953880158726332572995918937539666333288656307606087781087418181717210924426360574922924111921340606199908391844200718129264487586391098363057707709796873749940966204544584331698417899744640528084918772361355666564299137717891538481519529227867191445880867193027666651886863446243167003445953891753654480637308517532207472811618055935939242460105583716834576854277002729561882362631355169491729556036200746846165767924692433493988102356951008879684783327351878178185503228757311443321877982349147008791227406052863669644797483406356709893074869314828847672805491703046650445459717681972971691259813900764434948424390385873856854984119068317906974394672616639774874837531046652239747419245481956941982702752738632454352315303561667054626427887622056115682860687468700974793605341451006933533216170466494547395898002259801785139949806700822530369526374819978300129874367215886189696176330667272172060665055998005115676221540193647404511947417124018014435590542841024337466221645812173819935747265576689360053149036579594875204630064067307987786929376958151287002834672124346859020142479218665242558937916228703223762815463902851607726563305454175007738171084279168347769862683081063184110016848296685769342242079678595101717729156952843428908795454741357885664476472297500795544800938274488884423550573872202757684153134466145004771478192303976164520300123281135997383988382173799441571204977570173412323899805916816242699156419019292857662298220055914938291411162287221482912656023285716990829152601810649059190048170497910252567786375354405133184738508532275877098270325320646846025768412608150396758566186159078172436274559366151900445912150553427253134555339883763855967004252626580378464950600370841083772251967124030549693757368917160001982206370113214956051179116678693280804109291657426033461978744211396132511106692568947959326668004283812994813852414654784281093396552843716065926534919111707944503002749762910592879733964437520067139872850622374276891707433121820176816507222415339301432633347057984955019704097189008997113003917013706793495702960039842610111442093702943794527625244931950073516843371632307908115660204168566155770853536049400739948811028716758887691437496670915830035493344554009690475996952110072755754128781122093863553550357394164540055345523118662529869535526860690184122073458937465029395272258237751687759396712979086095870333780847228748057815518732307018677524681526570904413379464428512486799899165380914480788402551906859451059719238463214671098208952915927509912689986703841862838036675739878445124280349529522688867220931652710239226728959340519312696536058152008245675233648607794223416442941720415066201447393836141639444138491695017914312074673521357507771766996724430230561241188058588758364762095257312020042711928430957976973838493060814256420120459260059411886222670654338928737086580720871018410657491102243561482871823476028754812749822208051009262718560376655779409336188501821100752161404000370502254591753041375727850559899341166899607967412125292245578026497027828550516663225268411530591395660623915440994986044103145392218546035323685649620738119526950763263978332970853748695982888281904763149944542167146165356749025429194758591828822423394446179859660740566861708232287943023679834532240308430436714280347749786978364782006704146779683046126242749833460025155541473642861925627089024831467721177167451719843214610951161598587486454015915553416865995198769454040263909654526978421603528355222529175090279330261320523085749601556139344926757304474487048088746018273842313873668706353690050014218615965887121923916934205190018027592146860971303075688492603534876805765663368441573977544644542141454832871873633244630760732646056111042441596941523947960553687531756424643112286142089182740107437013921950875263416661861282875127382394512263623294773294920687010343861522437568145824507435382386588974220150674903745062819371388483132973103107631468512971496361122950675888665022796318189214514909147399220537142716141538393167405770597267033237487291123679547502583696168929471421983133879342141625891777052637123055943766982473844635325062176726306230509082266797186601436962055886859063364617436375691334020076789491227846656658075755287321733663344874361698864258288286382077552761913051584283179842367504447134977635718241605457415675040172150058583488877532232418813726853670460766991896978100962367886464719726014250292577498006595268868101951400371521628095887955245837962343855177570487163528547372364605714156397289714536302466534892496172009955036320454267169641085588008020261703516116730696543386288247735168424780947681332356147141526307362202504181099655813456576618668695799623200685894899928558986743896148393612533763917243155482436770247631469977327030366230779370604070444120616339290177375313697715726130127472112741724321306114157309020726624686293003661244783883766213075683503168824254590863312061199107954242022327080886551722829397581435405897271841861224668728906751454028805827887955714637895336297766256929226755494139170734265118677136135013916326802954415896368322477228531738521994124604479382833519740801382429001506870070639429383611860809808047070948735858173338819250196169859983144016745549460626646948773727605679387225516092213963437252690608003119091980375319188638912139105320561117263206086745247826621682521852111647950774297120632994932019584710551824173595581617534750931582080019582665523569136273766930293584464851179515830152303211228162002578980862164414221843708273051346281402266506868297937983757283610623858473369612092970302560993621562878548841948728355771308245939889773070271339232842246871235355682239233129805715199750947095579419862490775094437200601576195828437365411770279788868232952320029695903869483575021076371092106303927775875275033901854274207241689404296094717357900920930438689041057169813120427753644562763429318238521981254583790495678197170969561189398324872993222157453101260127575667720114955617914116602302789345914721010861455199103403559467715290200470701201360813353332221644492808164762934490312896191526040937764212466040183635909022169404118796923306406452849461488298368573669921438694893190516023393066535173661782095277596126240663213281445198117501275762696898674563069401442304221405176237978324991242605959778792013621743950070945210756880614256507688982693972749285179186204214119476974856075895305593787745098506693914302824461915922291032801894470817743016665899113356542541073191364038371562268058783136113440972681505964453883369416019359856268863655355593936551168882657928388481285023844659295902134466665011837554811794017246853093272214526754847394040492113286076125015085901990996818510844981629730496229451817419591107934322749076479378404865696997921697863324109330423204327584212756352046437020962033896095980677422842495340307750985840432880858152480929084849742356713185861311739748698576012081555630824125477280356871280889418055183677043651706375815645740934640345674698446065330223580595037432421793615666386087828783118830322022143848352482119861411207854261800493220947500577152209220461930211518978535662003718328745286097916121138672851059635516479433480669025811256213784871321952617826581717019063017649173802487030563364500468985222699817869559302660633792246619961224269488552206684963524488863118460980657547597519711822398909308323557549779399568658254631059941327984673292420764275992106523066998016748402475792827370105246669868183279594938346041137915480926665078689022025918031307176248740901837096605731145881199516694003988820857670187701199122085788541035902294128811453955281330194198266687593688871335964825732305158667674760714817445462926652999185553858870128255199346927046300087039774036052382519016874924827043919066833863823026995378220828266642857655182996420320403546939538541213727605275668866440484546062653334623472631538811250727281648352688623979145712600176885240486968744561895489139985192448051919589712328420680101003804882316955603157042496145364576406146172908723414369359010307822120732055037683315283300489862660184063789121983901721301425637464175717561962324834534512923173254150685183050078416748981423431801938304509160899123848005767346759564963784437132837160664437994141824365282691531298030074582089009941553728190897635271139476936563326614656449499880271783844046747478127389482999649894260160045684854386593944996622102507381289438812424989080599162733543168687499641779750935912884437974165722891192448429916379103177030094887596894091970351529570270231452244240454912258768097115484516975003750978923132187828814214006045301460181018491133754243496888627029493665774941596828359057223000744089728463030780059176660113443185608635035772987380341007678197221183029905679263391202840951161904009941459249309504848190300608954665287536388672418555581822624142743492725276708950092257617781159275227290844511168607797800490671993206538474748080659877087681508895939887102275486167222950500384059851786964439008521228395289599171132712650427875315800438699686847347748767499931332602162535036532925231057533201052746102247225532939240275361011788346252563501559228067344059762515047024046763469105486962533957550257462089705223262870037834301394549937970559823660337950664825602544788405050772947964904865868618390726190959163381080850454814325680006516141530484808403534863940798517063684197780104226324466743167296703563503707822876179387966219579675350019739786122714213298419025380512632792886335892811152476886947109968263066299465374654640028873386017905477570741752088915348309423427182810083029821108014775998924731804943079465876257627466463680634201842940801605899955097971585298891321929908332760737932517957936216498855530140870565887377910984699255895214136179652851493901255179678598282878975382926816242121188591920502604100809676369435694541290164846112286265109402406488094722966359355701153210812393245399267900716078708769753899677323980157689930801001732835607433950517593080467415675580433176490147350809856256682469820578268919671470239374983627349138529423262655521116259838886173203255998925673419742570541521835987483015897418404015309850482428061265505911015916870643140752162429828865885922334084862801096474343981089250019844159405685020341431083891681933636097625301794928507023136875510456034732568847037866979110332930691530547862053946102307304040629403285065999397306229895829116132888563660555889820496385945839464132114156981220103098012122028127076653211190522809983504691916357910599943755961963168296342645030682571805212176159940333550985710398641092811175455797034363174738268548933551978968242016517304843858195074484276895795012584656370010295513197654760906606561678410084731902325825955380308754966676744264794135497866947760615832202390444536589665389886865731210332423251326122579916328874751078084307014575952433321453937976703312387199864951224528507268247401062020894528508946793917619980178903747864940644082010120395841865214612648703169116167881323876537359042132216796437052793171531990112801405098918949130904687666526605153244895094622739473835921400262909560600446666016775754724514819428186553625790040491712283269615512258777903977234468648331748807733077364294086180707540318769159954859253613153453450112009552605681827937803119162781978642607520254427054589891768905861004017000121385508053022380839644019135001938966220477018440886650375587933843348174381433344523710327179473935050708360213781960038122729097159025470052592060766217055207842450927835214359625195903715830370373843581583430693144501426509980798346600018511959806311887855553023101732938940268274385133164504920736221608447179094165062754892463963897302125265866186732179349835851052416486514412151723369278826247811812174845424074814772712208302209540217695691895780333826105437532329757391355559377875999148360673698863816529816253589297489926481385739971453380082574027788659741405366354239985317444499160646206833949015490873388982626266177230552757653373372616624252481520372616423147555585319930189003243413690782707218811725503219815482413539938702146377607760754118260387688620645175635716404667654984079565711204269325197768061624648860058580312465409225202768533205406076062827204742250675261682737006482565434158613453766254755791814138104004792785918892237504381094699032793703473857761766009189075224401295316865325790824188536684113797226220269886065225833425138956601765522733374459022691726803853568240738754180823511064445872196921574626584974998828415612470001408834108624818924173402224517099739947365976608382826463963796185429527087186885569496584926957649449523636238309507016995063334020760272474093298600237548636920591561184398233880398389099540088552536612665431894249793120362484109764387847777695715169388685009568393502425414122342962671157008667257084226577395292835935276733941720370734962512499920846347366039464035471702472775779875797699926172012388134318169129813850946291991649447661968909464663981685384805332977184789134971799019157592056955506984012883045312850340425408215457464759612797417294637273611456563082939852886138443398223558395619317924344336477472908925927430339520496111642740183774919227743893993378476453658712519850646738472495557005776796876496684527491184089314137968372738159826860918779265463557886198703921847373838508404435833864350595497960927739126206667148635095982391007394526985943101508493779543305536172311030980437513542488111661293983284251704962371102844673095906523712147591922682557406193392713253710611122062348685731204096629642765729627101162023481975693625139285569998309598004227865302129531077826628140235924983829065744492993808692333448209207827422191716514001800483610581773022734819304455111555858807255018695529246489768738318938046418579456350780648567274844355961456329959024075444470632647853075619508111132753034675068814838876925998556605296124727261713202749152622564034241461252148937999372041161240724458766762065897258562167308971876306231016632292016946581036216450350182447404122503873269017253381892219888229826443981048765486940230891148116946403238911046825580653263243822313669315438014182603485049063313114945241592743474775109371222234328535709581812291196921143184939174375547805595527089575697623181324470031481272164725999463260745366410229651828051814755425076017755169451106440589957000652441897887653287936892989792530732335919589253433558667504726316614159055552059884276535093833104934750794266957977716691572293808332308759400838462062124650100189292732532436873012725854805072689066783798201337482600926972184951302413056978039601398374423749252851549041597528046549174735150420244549077094832663692254842324510950509436768788445876453328526597006683653192861407486408471705512825312301702142940842689362719991550911283789449211732637782484232793381989338923677882494412563336195638108776934660050951178347774019065830359878092616820948747791653656090793371721106753540277374438645017876662510089883843906277476073906727306750479899371298494672263265001443380162481852243759905567786495937917085094038424411245080676074927217020147702776714145313029259909347116743593665991548381344851633461908134620167061799274572089903145777863205282403538969523355669681574449989164981886425193848008981892896723018825730931726245714101357570722678005586977490743086432680462898114388122098414427441246604730686448791662537897993460007550261202262783690222836403767980914720866471785429067281790471446226922256855058741662334468403025800831164296893319951933863498283325570047467782166329021159600041006248750083509938637392817539240758017586834149988340136713547478405456688077123554010560515507148277942831615192871885240618910596685083953056205310394652237357342082480687937440913482025611924329810612107377240758396151566452973342906041453969573253071799279911294369257014571128847423915760212210681389179959461759924231700619513651238540681402660816939395211950006649697024084099860112583289514928863698120201734111729925307871744028700695200009205470437005152939591524918592068961473758527874016643746788859882137445448283502942890576700280738560742225143360902094524803949118415350553248574893546663072755645446841513020865412719430078859388591274941040130641740129805283374542446979012338088738230810318679331151630192672979338369558612017439686294234157261970590222786760400624405988349368307664045856654862749823482636828768548690082787605596800819697399904818099990561590912394600141265766003271603626775762759894543261740935636411790182449370750555650448137506654192639634623044157186698947787077014005978783334583484573314207174380569805805631403271004324020488546345861821655520090607191486117905628487527676592427029953109252598741361542166150089061772090604569902990034813518349878139689738332795817770147596569332921310535397708553627589892401395470371757820816892829144859614103773854935663761011639642159093455880720695111990345778400555007559856477603769332674040845830725581298788381390430513656950169880850035521446023443191467319021154612176844037112081178543875582942741377934511434011599184590045303380633112291468535071756401370119816547647186963961557995756262144431012615307663241411998366138545189939864862745978297413621280966338074170921262425252592673413030033600720543236170381072870680397003558233149774853344498155295973960072554061471617815636289494101569503819344549822411473652228193389602259846072789953562662837682500569477578154958559939691922080692865193654030076727857163400660393077669181034181197360484932819063317494777322917999818206424474975806828206386641982262306348457475612693068474680384625370451238015696634827370025501052149447936525629738605912508982189627626505899571347215001214404987039351482807378041172742737788141305645573688289629438568409800315995779370178977496846425991156936814099081139314017993047234896469147920630874340786581009062380499426218952043328096179792687834417509583637732840798396958778892458568828207862081765434275088631130061724717610993784675759826244787114643212640605963789977786493371096142741352326596095028259889967302788779808654958484069552430923186457860884889839491634760197415285716456689925405931067759058545403057936440127679458770332522321138958222870347400647775378703932713147801063576509415925646707285472014161994535452825841529747457047942309989295554083957248400864961839702198329708256478858933238944649764969420951333787371148324001495022958148370921007589188927492136721914318502203370266506489145188891697125240469257315804605986467763901201096250768792273059791809637370151811558755278872660579977288029015520657259419003854482435244213429803158062695443780299746272016247931362598919685261818093759620050891109551043486329885208306467697875482257209251580098835833381348443297800853782910441645639927407825066383616873217015069671119431321808422583427780337681559219134936177451446062652719409021538964293846606542462993755108368062090994987927799382633615045260790880403882702180365211138750409490230491411454739614014327441305489566625707868660096348584084753229110379291462081600148953519558482844956816839284248034684926469948600179088870726067046095210746540563917162513176755097793153875198705619347121890871050920234172648505201610879854394426787008334668373590643383011098944697160965568516695386870852938247630121538015455016625975529806656686726177954191456000620877981694304526764348796323640356975730496053839611594811913906902373284038010577341863811674906843584723729573617176212439357140214986474275267015037071501174619554545425154291289297114116122162820128407552322291059781508550948744944983534584110557495118511010410668296981772306340815352850767259658091182098939514696415057722418166408617744577722338133451344474770065740192862360107556593852898397919685496147421097642429739544431457671201601929846513432820571618358941639877375277943077931301804989616450229323584194156779993885619792302701957543980508932884840974146277720894096942117623419508362552576761542883064512924560113766079182151625320400060155592884058215880226168309905290936851951637312680013108685160168874137272067906696277517492339649778352713621983851812341386211590492175190994903139496544912850230718696753526949447254236907062985179895947692368463331963984438143929191748062045174064700265241199580966359438018563432750843475549723177197447164924082680262849899500050402216192006274904512621984548961743832869883063194074657485225203113605816942392534955652109276327083314129118870783259018391990332868154711451431666829564529300002094812799673334769276121934026194794521669132605543966381557167910061706911626647393772115905062215938343863170610791361655488637487685700902201903439494798884991978223050812493973548987781769262960915799413654988772682018850247495599185860431777430777074275101231208310974986971601806871792296849661064169856101179402877534502664141515803850150493702592540742112674079660468913960781457630165303444370294461001547685097043280788518295841446216264191245221486493166254315916080566223599266682810116289472465187272449962910258695784413930242199366183965168858883339966446438246577987672543883561727941458464229672100218937574739778671743607232915729905658170019508783165196752515179579463460030957924803596833968026892220863817181767639753296198488763012784528839272519497552630438833285592860539537097927010670539797600405535020008243573883032980820667689253789637132951287470291349450801973517461012315475303061423217811582287385758249127948776363566887539600260713519959865239067874076173972469433900229850254061651134038796364522214313507858266605221451338474897123527807613602031328159375213381599921242885414664205975033691413630716722419883165346685350496785849722972917653163737607695446385733024099335106539927343240676533215094752767172087263540987702165784564923687086003811366952577543765364521778282298083060225027626217992793842396802668245015475752264226759288598403744960846976213540099857337118576188121212141176109151316569910508680392835277798974587270069018575040640581419343260653518568751008798040649145578982870378918658404749716636137226935029354742411021822493454321588607778608393452963402686202028423734732521592178197313203025257433241903054331762013214074583889844031432210808393997866094267225192542532477402939498026017823770466445065542733892842013477401049511040597555203692962218383700464018229440338758251645556140203217896566047424549171754933281363633433806003571644984766591778610887158150693740782834611284738311820528266821349200146615387021282024568133792499461536438773446034781903685205572184263271629198414666518940346749339396493313336335809300595492040237673360741753965779456841707987662386459478092143797079467480160016865937562594652764659005500192403992682822777779427277292102443274643286671134573977911573448994263765865907994820851385646194755741157510348856553816906201504654463891579297520950165257185206575102240931562063504282536850824157254958335590656289390306253990172885508397506035121912756022982448901942500545815041137237083230791178230875860991505703952093431261480068024192072411637290284912823792864494719517979231000665395109890054607913625499014648911291123380279122835873291490750786291064325636240011382209527266905401048456689100402048220443592432865519330176931543312260255351609904708619404716065278962824309337094261301688360757901823820629651714662084143215477020213098043771551751954702123056371640907116355493734223940883868231863016506472082778989336767668688558161131562857670821066184942791459018163960060797980163805225143013672490876056810106736163080593842584418923907253691603957814974406567507378469061668060247407334209921536000177286997416910293340349945092267657126056878830653939758523590164188477221795011626301870303367538912658583112090426620481769853443250136066118302312394969159890876923122352523144542170677473416346287025613406822732235327809552918810811370266667846498957948125425798319748080759668374001500443106307017772811099918026240371481446525200687346244091676878197321045479976715746502685075272180990167674433275274220458146557134019253903409635304597067854420506561542568637871563801640178385410835448282348512486445810471923371685815111423954114848647945846104726252105305635748506235400767938089137025540268503643294043607190540176862198483928553549522897694795867502544667611141753371292995920117530657723863833203733513902861369965586189118314695639709193036372591579621616606957673089003770787443510721115508584926656094219552433978032776848813680878438848514896140982512142512523824108232481517475575999213274962289457253063626234562213054045925204946439920014885572237561985088136192733908670554554885578136972833712225475951777705536358668828722060727413193441485843029313107886333430556836575199185118970045577662036113541136222072199542526764466001328060670503557222494116389029183363341783998492696657722976503392148535231352074748693500967355205500831100323139580462951773663144835077421775044491158267082807052666927032779509763625700719995190731989577547082244609606855870411014591037692365103994204827601262351885517412068784457667440558246442060335169758929939483683711138728217587291858012817342579057835824721652738743544175275746598108513566078370523658237176886827410550889283775350980061346922704211941311653452505658608884413994273479395070484918138112683229748296794658736739886529636238638041300378502195135819758762269489066541408651393030250718616438325421542123342384659812487384794089417024784002401658101903854040561729966768338706101282032983675364446001334980239786590789414928414755377180772301916218604854680886247125378613976541385022721436111236997561093820626802118992840951625462664214354423475093061487706407864241646397942220489615656751748441508253916877097668483336091430575274573923655300807462285645641300645991968848314655452549976536923976909664369357592986362836024718659378892148846350116157261101811706446401273954319601102914143218025942766889369882472444340540294953145654555538025916022214965282048329730541422301528645290257339315684382236890814133068646998961531292586506081268754328792763446233618186165190948412401136034992496410316319569871153275002893876339567894502133386184769620021799856384517462514631482888452680909204125774630249780115377576358192292576527746590783357654471993724008307409131738544368162212060893250285150882468906505111319318889917047579871613477286725189201805113525128192635746027847808379202695368486354350382535055605179626526211302986999108749329851627977936510260981973153440023351310631641058432530824515134883944003453108532829379173660867890356856461213454008525244530372009491482089494171171725877692799817350079886550760223881513934239122277970178088933661593751693328264924206731091339391427500122085988418663988186549373443264984873985467164595732357505880434912946164867782411273052288355711268338718815035868453773488523933147396516272827677183442808244950731599445934187237531875805548561865808433735501125225456201407380113910728296860111049146436326816718704757523510462802915339969838002651357898954642539335047235833572622208619937446849420306180169908828285990641176643615031399789817749555896127090472649291766047676921561123684016657159566974322501242296824877474137310194341860625360496481410631513845431225867529651807933726166818308093140075536862085304651053198697578489636934523796690099059382024398903107792832318793825840894725434431607320638488677835674620082243872041327115806829192601774539234324231778216784756235282303545777635992317687560049818932854426072803773622202571005169352759159379047214341591401103903231309868566368001733585164125843912011591649018265994870617655688452394618621780629971818640686254367630222833360360757409311014779800095588661145014617760965616857739774919190978089457003004336518739863226266906466149557393579173144769337318147119933007024543810018461640404889784092645096401732414273259675319447723860807266008521669330745774535221330118535943083784540172574796886192573775038408209082334705853972677020577808607043305299418538021231631606457955563031536283236081342038045492493579247021888929654199273210460468173918389724449342860548705247160650881369487837094918070172284948039509783455789211507135766655413399476930589441292839451398671464075201922647917284228911634147906315865768075578469981601180876869392847880610748094317018661365769275247708921970298001246879687481051878227197194859993332961099191095401203663104418064989014187881525848966999541981208492108051189111091815187447733894855738042344455285526297164201861603890713006122843163723318244619671730363111716968232067262415296488370584930658628540298761629492897682269041865165270882264332021880777106887931192612675145570702524022520105057885051999759412787825970123690777184181352858826058539550040498042209493314516353983807106229223137325584859449348415847120525730922599931078063451357538569860387943938999327725293928468816114250054931414760643071267151662601863519672655057521575580100091344294699391896616204236755447906116471315626317856551611691710239392060334505132726125502302695742056172037148693011346697815280737818359403072922161254632737722196864531857523435207025955174062048757806648075388832277445298264739356599580731972125498941161953173843319661638929370142945253313744388939746299693497793754347297694830842049341445255328051173390214426909500629762695528980959408505045886166962571371695955283420718598164327454973517158547708828801709684249222526620639137914020206323491767086760237567628269118000979863149244478533274727125771349090231459444895568551841921030788798819617036919357526427974985419287599346393418416579907195889589609760184871467410929334915962665834062308507458751559833064529262235752671238382170083511602187723417146152607785649370112537815895287274026972207991035697930599038900281731062691728435223893835052711937724712709217318580590093567291588027047472161699120670308686111885086663799020610255315815251656120739156499511385576931623869007020126479628804777826220570209878172120877955441895445386581305935600090417810713662004125636051778159796049333015356542705536998041449095219751149707613263227133534120924380553343697950475442899187002137789085254141617326337158257950996188420472267346554585361158292337019857638492208194881081063708395942372110024712712685920919532418578618628781284157597792855417064016032421425078556514387799498324751904388316141784394504488191662411944297841348849926719095119542241341976812422021266331423408047441426250652668613155190154502458600893862405598399934037231881830611568419259403617463076788128652827484834574791519767728981658942361367421421643992716610023134097816050035021624886013554609295407609983874117648404639389295432189329430330533749105741667375150307214891548216369354371688237139234648231035681974248088139730197189871498876770041398237956158270205997559406262939781612558106479015054951052339614953024430371790384414903456770359650006495430003678197677379491082489073834049703270605107732258546301661485917916527494491470003691736526344976225929626271901024015431242774726389069363328527023170003050845361124054937824789788649190660116624925755797473766494776614566676818713765135523999007822091403731439428337895450428658099404459977744101909759613813335166502165890315300351768084411875489801915379595414136914814995046273426090706915070841414181444838157574892592053386981891772784041150246190129944755623915559434705681190393049520877288144371256910468104621406973353157070533260514370091838716743235701503131517927527093462268535942340609177348298453360427461365677285527031626712760175241337132227144744726101529550293857635892950834944173416322891074717812442899797504299201331691230220843379372167875513052835386294008935684391611782061160669348757852597837632052087115471467792520515485185284413613752881177820235064993037624512246310533207346258904582339917304564170869922066481284740238984026282963029065906605910612639890936436764690670665225792360972520695503819771122457397441149584767617233339898027201102163120214858158290354051589485667820791730747921683438065057067581223868373766946218725275465986541609257549257079064790202037508867632552347647735624858042299111138349338359481778943495107216187679589671286927278202159789561055551792995442580592306115379578559766461040991844840038621237513711170203390496140119157323641587414307227924777753711120397930573027684954394738378005181579084303347340395828703653216615494842817443955092836875332326808654724440939307293163097537009721294904257839355211125149836420370679336469614334362204059607003495880330460460725216971076028054677342707098887858659875806999271689913200678370059498739682631992455101171733995704848575885681366466487715682093438608800647926680911499552957050249853669368161861901507891016073941958207412352802507828314120957183794476656737645288646840010077277309368645553815179382763693422389908414597923085354692298469917435596312323436428042146989922659662731287952608391951450750619477456180005459123310498210564951267164643289091567223828885415454360422818477255524220782766227823983101983027971478033842638341132050732018174272824163886561375264009562563551260870526338382950912994779651687950875142661830573984521696571235395682145394401958169284746312679267398552480980425054422823843302436408729736035172106947140142451996216088680748852565592815783936684006551905065790644906792398852301876517650897839269883320854899700026336285545928276222411370344895391945461702706638574371969932650484778653181258171940850095994122495299848234961536954142615483603212098260938477057626318492779138712961735664279844582264892933538200182425318003171689941452163492095685066801906215042140355054519058937922257964751734109931446366086454284141761039893347212510126046952377855544795964173395624060782787635884548345374054006441920109646335123901130563709142634134054802377750413088282359789220058949868569671576686113460493351043221220681424187919140562403022404420864671422052033030821768309333516475440083541867140062222591031887372713003167980846384360519671195953997841278775581960058186807943831981228449829602213668981287703617929049706769153848414702867152109858701169083384901937760183358937299724051715731136226266907115444197488236275546155235402211473782113479767873199533673294763364257965584583666938597283950846354180278190011758239876853551793611085463443833659324727482001361654360754217560938497180913641440512331814549568539303960847473947019157322850268744664842701057945423378330390758077582816755528096669403856274865267299880006472726196080480491525433082859242553909326373163185672211171854015047363878066238727334784367681573211468932713426729606145800801254477863300625717427654749594020474942939468336194657725580279763367698144799302453593826931834711237347285791780266458689108649142888357657134152581254739548974854052841071580941152660270990554844284629320808171026817171648426395489887904382552141471097341978216125267047327772279331920790904538730945705867169063139661206658507933678381780494404862222138581633430216784199474862426067294473430387217589267770317296535068738334804310043961059403601578346421375409867243627494081227773073262146160946864783147503695161794671979197402483900817705240008823422007380558120287277153732698945316390804919886157655849367240324231575748817940913742773530318018749223558379930760678118923499187742427435273206259404831806522585976100509334789210772315827927316973066041472700689786649291791798184407215806268983162649139110062261958934899307027951305817057656431238209030812377028715762333628703974652459791209183109171834802012591709322464367190985867703499189407851993665888433746549529204437900078830970216885302691568024310320349802129766161213227630730346452942211459481309880916766694366182124291965068746609844410516766917620401447107303655171432135890183326278793067661864661028066913274633546366801532433088572596997894166643681143489479589443743546435555830980811921325273784729669334409050852135282090001411422360137834371666203123433463452924294544992705951197957353878646830805696838511710161864017739297924480390816188500850644232937493470071648534792642577180948086280008976777206823327826298705015526687486816252814362587208422603932227577471464074684953449222544951513579911199802179248522523583265733939954699768677565781383437101872565483450385240197669381864981980105726505478754559507359091339523861497810641554122866209637009376913186770174435461197371598813275763001277439988263526872501651257504597609092955752657102260289323910491848859730070111509816174281503648797406996738457699529866515440570410379051068764620805935121160726021483580307519155438535510741603940136921187356725772315944765528319726505744933148505910715351341975962155579096876521828469536912988052124638653698843737471558849781837951588532341691303573547718473085809019212496781444151103479955245259254642026963400612774950348124267482574959404465234765796127631323917641961645650263383037825706078910387281495032663677314480542393582895157943627216535705589408176273966123549664856575570381181874366485745297825837315836623789627782424938128393605520096055567840592780761661660405040447983422411062135067894270307682804419574004124710681156945692461123390256305357743366079752258905254410684311354684432663339579973124924494901886810634529224447556578607293966127894075029253562070184651307824096194176598542809648389758745087426174757828132480522473837956793463108579177772107228749959328826055241901316692127208598865652975198093427692822889793615623400535903437274674320654780694418061647674680983051514838659981236408126508629305477384609517144854636919975334826994515399861378760102250207307532658684267177803534331917880856367838942868099924697799869144696625395080947900881899968135855752175926968134947089386660284663887209557034478906277875368475432554765032920321763120624444266937844539126934875941284073829630081531314633094519823601159510433584734365251697759354735347846363824638713924421585525956487853298367123065770689517784368674304319625316978224961425263271573986389379994922970275542147833771025779539679313446256867220792129184584640901652318174244661864686876718192459557358532645028242203698076545601473071654373016014890826265732363143666285451317881022611958574224406495119410678791925214668011568312603594482556093382538494449085830194767731473192291849533324540540521266045509347862847686992818631015321192517436644226845788795688875838899197409983173074878108378416623345101234902121046183808795866894466933451241055942879675561965447606158675591494966253162780048344495842925976553066405286236885711528155578557168356173029662279257181702417254413814169705028172704554767750764816441240142365404881807988286130135623902296087446410132953328888590702508056573334595935477439192302253388285222476826668882783151183711482863270158660477323241415040903228090759432869590815457963274055320289141027961491370176356512822219275913952451210080954020774363418170201457518439230743271936836606800866482959221706552006750863505101254902784267878869572525892962671422953619281707555173744480741650720844866046912793664503491415211922753805162470081640445414243609949127300040576318672668854889553999264018844811845993685353560900795749658369605953715313130239742323550699882295408676339281068618656853472303959936103450155220088368866617344747293762844335331159409149302940146403252539722470166008058025853787921778794375766529901060395323712726665294270265031169470387851424468123046083793772333984544774740299828531230311129917778887132774111656181574855858829942355592685765621947932995474450625110983091704117138514121796234686177184631318634621196685921612778287264662706377877003504830627152306138188522483590271465535927784240970232664921507721425850394862984903930253624259238614851007232026932315457561128538169131140267967663730699586877662529604879407486414750330715705120619158376965011210968653398887504992733975221898360944759710582400794337508450447478673178489760527216548959690652376974226503215630012329466259333330154962021036531668844342295091609585062823884242316069419908331584052268153092542915943321374945048643408978966076929090389636812401825549769200818113409615708332281748643095372798093152717395009053748950107956255131136857378888469106085426863346623191371957707365968578362946989481707206209302655841722905862443003716340552347123272671877235752322925234421907740633125301365555617658028802416976736167217234197306502583922852984401633054864944252480186947952730361765873180993810701908568911601593649158685624841635165216269223970888373855165873179755156690548816769384971442839584167021681635541214057005628342795359377632373779018901412325001743211053064671827095780976793911653807521499849173847349077664371320239958238545202988827937987892241943245833295244246163295267865221928541877149671039691083097886404364421037446487967390156338130920287606316319865805462917655729172066001619117518932230134119682798431307027250186365200799459788237256771407713404085925440563094274220861010556969676887501290065290572851246892222564491208487216792593017423893422530491271898983815734283216155249195197614048737183857102226813601432568795396938790348955306326448067120647132712437265457281487004882587630726916766148385842757312976274780272478697220555950732889815093600832238993130197522835610094645424896269519896031038718001228385807859503378475400653361931786697211772177419747797900877240776052920587303341523166158145595255766440286537867741366270304435148155087468495549215270092594475955655119386112616942047593393359863948042489322764778152613052087128759675592666971272158904474480154625270202051343423354756511819398422662967172030525194269771712817970424189985142163417781157845740691420325207389624677200696577735889759853916889062636276323659977543112540937888430735946020648927411246632511196926372480877142059735222862297419728844779558934291226992341358488982078028414191198954372300289135618129279708960880709329927730108169211072259300086997289247303799476239537385296848548832440179100852829880376814508453889544209748113285178839260945986059377733695659130922852021487860614806191406079072012548399145268488386079504543218621220255192804283917418537412708295981411660239161895977505782136282765476830047129963647191257404970206422235438488673528904808097530407492809322209742223109738940966840097766289263722731437522982371806409566766468483207847778231888862638267866674156291790290597923425813715172528330400971388980441848994106739100436679925835680004654247819638790710123837779087440029859605072735342270143462402186896843722896391033968479260446290590446283899105399605585208833187457580856838780019646469805930978334997414873092883069983765140317306010792672495680088887286788276569681575128599716891704852829990463714023978979064929171248956563221758958537299740057444591678415047998274819777916520045601294794881189965504287752079571271362749485481763148081388973538182834494174986628323450677411674965848635123422276359776973342983238246968330634277696902055095495162018968908049446985719677855021214900398218460491555892420954764457575564985996838015630922619539529473972826744849436623716348817445186636999540989530523137598998522411773873004478012976796430698765564352504589853276229615276632037207105092597630047682971763322262958411961614673955588580167756353129872598791129905721340829340764588012427438121734578319859019044363838585682226398075005922392822909171956749991982975773308656733961458920905729403836684167886236319017948445556928695611280798593137149364666827597038852858240701043380575679407153340500110576840001693030348398607221788515234351884107869925653035617982453726415299831301427645165445495265404003723244026988265029591545699154777457661014487004276256233468648337605303567932215873590875477843563530317897780455974939475388921751505411404354392671249398726327840373201541139572194584522484866970876460485519332420913649901607484032418178756751789320586392969316387236074450761602044016323079624896040882484144764952817695208828035291754047035520300702753669739765204013860219607003904711717162353962539442628106189611034110686696313288311902356219576400377606736061110479785441564621219586124685848334146766698892593453166473327591214497214294100324501832561694062995140643996855257773696039012850742529486005779834023838389694348472230061550002960006443169201218225939918112873884811975149627306798086359631830895609240993671801177977186694775900923971589971480790968349839323127445370089502738112068699178408174046677715728877072225427709881007140202788968922803219977981826646341756382447665865953350159554687208848268661156426475915559084790241760858542813102881669384261789912023875013625597569391341092064854647237800720479987459859329551943149524227599317380819948082986252974137880936974622198659946075960415061592590858046249586067302729138493058325275476994575159186164472779115014724359576867544846028053140947164012182074976793692921550067253277118236902210888397755493728611133205325365839424089917093751158196095683044953087967123233558628051753350098293644062308251989554210161340629470307702642344144177352408660482592121513546839272600442626239717710669571830658760904774747641917594582406824093814195246293043905695801586235828389659739002947032113050468331440046143863672553399520357494812113737732238306502051585627674084209331211854653576173643282501078512940633871968459718069595865684734528551000449499140947763331871418659199406216745929235039925663692429275603999192010580314095050651334712650128596261591419816439547234119351699115819799593100897591461895256352585966792736471692559019147906718746982383174367483967019870570303877836667629692556360602209280504055901601391249794512202196676809125582527492189616356783364705560393227165239095753996188992815897725699041410573884500618512954014830327712105349689633522965787089581094847490622474980144776580543250736188030798258294464057091626420294523170540682888501021237531575977451332653569891664850448254420419364776495134474671768417819813933181233666473618443821401004716184139542222447222416374425755843967390767037959071879721792592563706116936032942792683434339775360673945469597931116542746246368416150346752685305008299923506573111365793089459712942297877639793414590082750169502804976103547492682582151700439579409528420964422612014601603247216992592371054878608631607062051781922470284250770896055330957658009017053445391498238437702620433143457867372505453234996181891129635792204433111587077954659037453318809368521931524662546410096747194041358896550459059021452973036566549029747795284796061978656355109147992657490514098047580353945288735695174801142980002436720096343949405954813153947215798361161603081833441380170286600221580632553987839986723268857927748666547382918743704610837420014554877384954423790637730718864942990553235321689429990625185024392149547427687879079560809496901178644333077444220001029950304839493898845030871550738282370117809709734394466978449167501249140462475989196535290375236573109824745072210583824015275044172787059313853297773330136088363666254757536364762636014974859537598812495620769052199974299906757499624181121900324799410072116630236563829633559551451587908149062791246006734538908639817064203046719072400394378515902964219124726809957376636308509864112329884555316291629330324973886824778677281306894257027988217454654977999695743980056164431910272099430864673074998458792899479289089892208566966084139487101614649561165011267671278339894086803698651835805640451944042068758747323936039160349922225745885448972899954309279999890058460220859209647310659638298061023291770905818145056787225227940945279236791541824415843771148843484284191738493697172178847089686387543161523645890589057108120411397237637178601420706930025171109453265529381307719571928578824330246414289921557615824879606106389188129963490733519874104889308212984999311298091981610834259720224021351578227990205949543429853435281942363730744128105824181597156617056636370894313215358248118079023126904745169764458345760044805109611834204588031756416258856074136447260220186054156780682503822690738639264116583875489684453752637971628075897476595020928205788334842363795425950231705453234010233464232035470246935771103106318894037928995577398799229016644364109027114413683045830542570684582695005941874493647038327993779818579999314953248060813345163739075779921701785063679830789782692598483847156627600200127421628207601008895495374748826515587499340487459639511576080688727626326098413594910854379874342314821598685970027950848103303702702361779841368849331061232672406755276806521129184055440110215027120405668177191537594273091536635524694380902194029214242956614958760107806377070871370288492071855706642966718261216554050597269306506607299981685213931931376830577737963056209522910359835065794982131256821113516846108086712990419249002572042669766422891770583964165485662740244017191285920020161120325881696386800825121186743423398903476170637688372558323173632520684129451465744712470176990720830583301541506896981384583866164043412148367986976126407352463974139129030698973991880852044163374057544826713465273286997961822696858762766458221435383431852284027549604410111889946052362333857694583721103766286909586739377196986235221806434632649585003105555411004384619750966986964239408235606617284188057258759302696333465372787049827529743361456179440834020753872010428506061239643068681528649761665201498108836782506492341571349880021404613573287773059956989861744477941010487983825986686654803598707797974211510802511297212599839415319040449286806404594282213487486608480051522410871684734717371064053301592535336028219147687180198007339999225276434411354973164857792075564459171269166348189550510358550004966234015381990070821129368500883203986496903049238990171234046605220818816491892694727814766999115868067197059776494315239587050190413745266088643206937953614985420655464358087449386448468439886329132530560070130322189900659338375881291020745754078683529307544034512581733506536266609619318593450945485631689763004884245996861913098098455388222147791229343099839699210228942965107152180618836320918440089539264391239601238031561495719693212133855283613557796770621721865170161926345930473514670221828143933958796737940567277797930296061004014686589815932365752011261225983822493202661010629538861407432426830477732607498710749340791126536564310976227824305370345385756240462957915134030897373552353058858305362232444215996003595146708001461815835319244363329865111728762771421776000719306507857945775529867311189472564889848150577527539275583039883537591266919711431307374546754977614813192391596589100562414388053758412710019691262402233164718457974586803434887057435419236069779439730227082687629117392928785913295381075948900970144844278080280157556234755094219061989486802800560156971455806892169192138139016457858730092691256295220869856930901363522132699657314558974765437359837051997622132362263621825113903910062441158841866536746954013686797411303074886998400892965188177285376227306682145456953154888126109992132729018136387223423573618772425620298609323739775961867466006646077385974404938361374207494783791094728729448624899472275717040732008928114156499523876593230729152229565707165145303810857357823689370017041188109255471013843740595223384315597855445972226918802123612237949796198594420256338366863154314722940714908377663468058577033774223798210107638397185201074349183888421449955409574207432790280781429131317998566385740967582955951431507485185672466194301501364857023423653399782527953671827598362476745819251389156234789120085816671385968824425448540200776121210621692914059283691542524727142555974204085195974127587726309577226094718898090262758712016126035826613380853021096607819515466042104418643985303099057770719558974726740026965192441056909104717542250138854281693415703370084953039789258675053987028815585252269047793482642207551374116477729464991673137487198469269329699351537532769888571114855125788007469445741767523586858916988401717701171833111063382516825557367592859087370174472709864832375532752341616740351033748204215992720905637084129847320723798245633960213043897402631292729435391960193617595104014437656725771036653169821702341447368355798586867596576316844946646441997885235448425129517824547272442671962585618525952625210396365314022935251155845609074683707283420126557512446962778488195792692149202652369014786356813433852411216863564757263972159995388279800480915665740115105267850793280342814636672330267365060525681026807010925191716156682388922150749661233635010870214616677856994582784452757875769754050977095076588632021910872203714135240669017504696090835615742174939073993647854774273559341797616690658321488391993344907684042264873165233099982986868190683507868433836419839681469059948777397387762018381069655251756972955892088948997549965468687801948897502119036245286902870409091194618375840270807668795197077516465361051575925242474609510787921721831457696938503347777788285674505233275888423069652992617085360841926589387313867493107179669639879031880169721586357058570246696890498356901697815651773498989480307026702578154887410907335256150560843101135465623146458549470783546232413252396690878511179874973256994909276137844653669468101547423942018962263084808908906041230986522851549176457354094221722800339247770342965762891184644388069641382671059433279841818580743566100498618641484744505200729809291907811086228602460007386020602824673031536486797859985776660693033039119547888550896182437343184897320357850317827485099018461627571141977894244977178634878400121924087177185086107449980501116637286356004712714361522552681512388348289917470464122437633161264292802766408667907539689769023088797869794438363827603946813907351081787650208446837891598029447064079449385753358478254072849491572915659265499687701586135180086241309463897593062950794959009464933821706618617382395375754949151850360564333752920091693260542918278706654484735068912595265210844069207605982601837548004293565767495534683640749105869530897536976310312744477167847566460422241932209237747853249899776915250569031518180988686072914048678915012281071431649923867588780902909214176022124323869929246346952519485259534815564465305422342031261928407946720923525137107433968989638064401045769411567322168756440970440663449672550998307062494045254108860560597821785404383321725098088652835924137954739373628721795053045880923301179188025279486603922566764778601922779733649051512532358194855413429536845381868553274050166634244659267706081536874121840018784968506058755156033985741057537454026549135238550074642782704591074421260716884825642111566454040973569601933635667237080292991041713394664241782766867473513121270217100659535416714079943648220606752215097788018639383586299989627565346143984092316138820377467094827792152920356652515614791294674776484446565283459483740943357567228470494243663447332483721644444965732329850643230986504908279530528388699958924897320794409377744658981440597381692617209906912999599167846882775848666840416589349072145999835278814629312948589637055279386405832083754663991138561419735908824218186611646486142236963853836528900619379763621061667383981083458992958778086024119177192819465739686818553516959992641550770476074859316805212374288409707088145783865850348981639117249819597253356325733785812767551822713574398777804691012114092283928807284112750128948579264246281098010006525726846265424024290080226484564104358851101712367937928250857365310628420923704394414110465786012586385793958760625139270412693650029975328442798161091513374115205893126772306560903221640307658965852864799367200954324963877748603908626165211535475645819169961116052345972367879191396562760604798134690131025436832026584866026681464545077444059995596103539109070538507127533823540925234689834393305352682399120046377006564264532757369177664214610182135202474402786998136768272983194698474966545588386028261325567727655648299051438435775484373554617707518913562090129173083243460618062578186590141545730320574035602645445671656790976313931144374887001075944426349921775414280627773672241210479010663055616478942738266470383698738688370498652814142918250737145687596303219027517430706829801531667335201843214997273415690958755726932967729684819606827867920268326046218716861673458266240328128592756963310818442920091169415276797081699750056222117394411290200884987581580538121880889047205314256171634519170477321826353921388865180709978952930142975883638542178366925154568447732957627128551950518681559617645233182345762993072619613701318677077261386043009179861383767758540404644608074315970372014600441976069003372654406286229781853166187943829362939622084072372013389869276798890234771720190383718072622125416955651935638614397055157090386369437858526530861576795122921008294485310837399369864670997350307576560269857694372935075536974991504325411100303418756482950212553698619372600331072265729559115566939396870655875262343744846519164071521172050027993820507079474876554989459073400093345701359224556872719749975244137856440466711835197836641145730717509459714224887616453493570602081969649460518170615725180537815986422701151411860708795947615093232818383468679065756509706390338980735381975301188710511530332446589525247940468986201316121223864244592284232712728927275586932702286468461153460481398968001243318974521216290987934619470114997540904120912272960346229841002667765535291767928377758171071355937636626212182624353741343630213898201678993127005084970786357944826575009646064908908119208323431066874934792333998393458824308728646800971753115121892633683478137881112003713681125233091119400658646372667633972633528180289991691836056868667442217533098737936064900658237347187389186263703475849821392917377346976759556037025279065278405814414742448327213540278932703234871873139162840988010319071239407540295654733170358946515403382469947928647118470306688645556309937861031851179725020829978384075211886387151301372169181557159242625727163423403976412611359070537194003561798916114857576289219262523368100040823438172352083611847920812889197201129082768018093681861264795147196208949843575514588526885402521238399513045109320405908063414915725200636386651377816717568163212484767137592935455366021137013939437311876353444713194030938127323031190801747845215050102650807176128385178995088415768376482575338710957044636037927748148884474528895950177845249569254521634984035588725771336739101346387534492767575316422849795463631946975388711939771368239846639717671959386829300573320637231506212913160604918993437395758989038371114405104229958289163857323114371977141389211972028474294502368658107593140985671457157879555536126061284786671091430222738388786712965792368628352120984205812582121811823151376431242863991233066616645368489164026587590239109332057017047027694111279708545867991256452504862366242787169302616109982927215111565233882894595248929688966639147225153760327459694499384503036444871444288152232801358119703486570324738237264443330719265229711429986973711853289464421962863305245448237832784708332492775508368015977818781935837408048131224100056243112121720781771496734736097113876299467959702810170029412921935925345292412025705657364816938676958393266302159362423008819766953731994773849611039859126277779229139088047209057686833179279546840981245110917413926257904224693545958165114429458371678341322526359575509973494480017225610460265147424665358510919414382461409908301354527481447226459034613796078297710520454568128055907843439335305186314657082062006191098567772202305280097114881414291894074648595528214571858043329855764136118856096114375976670907461418478849078916072725136804557990149771024100837536804103985051460042591835651366594020213885616336199168660121480897799678594032909399652738001541982716462352759379980803025318906694890104405920778012308785549161052190238679510653869324060603685294734765683134408193163825128177279315202967816863879403193984870171767375095118792605154824364995994914005909904702649211142401286268288023108329711408690485373701865024854697462994515045118821806901750506702437870227666884336637912947883376261442194693120468808549881285042733289370200760015297291246948441524615079371251423578388077627891617193054107628898078770850397839857259937781608381162947876179772203635387688525499230047090999388309772467998402980717347119021929884518223268840849433454831891695556582489781100812329401204613526512129408724897442372902011230185127577054626226861927692187908167406210117949158620569483322821566715953081526749002259109970616162925203811786371571482507113861045198233407227080910679377208026937157153036277951844512875416733687211569181698706119394857120935566261498594392449227123545990267202094485579935604880852688614911703415701919444794404221970191505615995961248070395520377953913773803142105419927246644975762828663009248059498901022822315740953114242740559694299960842311257152063209131496441688630092879105273623378020872960141050518962652284437115248447882694380185964426698566619544381010583617698666932406926081816060235839843767500673247269510024230646561975180607485496961244024259468227443904942468665642300168553629342186051874438008691643663184871132594261091707396657016238420997411200220982277928394997165088348048209389448363080358267511896518534472601433271215347554447374235322994872256187620178790064031084627682035824116264930013105395369807185983906312365994361530717017946375015409413749161892472620501256543540262818311711186122857318153789939334657833428695761938787097413329029971504148829905243414186563529958550544482145963103908435719534091412168065009049855716171569180606135637316594144467719412375858166485247121660526404030082341585443585407218946957724046499678669763046889378867583223646826872936979319810356984632591297797955715947945390857138742801732407569709768696644299697745538040145141775048617623266377230276558804630008162439572548049534366307744216491379760193516220468044984711116799994200229860808038502292270034302391097144531139668492485735584692465267789861899381267007286062148999879008710824796781863876521116453363239015223052527756784110014929686330971881725456958046044668960222482457370373031273059664389118230856744135470539853397860007903447975942470234197834660268450159502102289973544914728578765574247011847848622715829654193107229613765863629692161760685824149581684761112580079110619667837223567663358834953559446422845557921260825018213871828599725530170654952577636936036579522625424222300309549978246434056495837049648763857183358997724176839817315479473065753195189725395084280061354389802451805289366941756749288144874851176568434833903284449859583522168980073712344335631207549519548022019435455970677832907476225213751785474387830884392662770011204420515628692893121495757696250924327041032643187678639161025341972127994527570370805032361168146533920908067454908216235698783070702852234662448186264812707051606140759447626128951315451114331442700724320665172100774586291905181058727997452551784732297556605217775757842421038015718669329514794521762568814571813014944862945814389689705665104456525332153499942367469271403469655224729290901328792340043470318055972068866423726822266056603294052187299877655619145870090399736579617360827580956477273615133540258227707276664433892437513129542136850043067953240502846210810638675083828653821695303354033847833981927749848952134486619518022270866643712143352016875699842056759624347747053143095777282091050310637891290308427995858095251061108301783244872444058328156018679830981951109969814625667543589080151007081971858433693880691705298169950802272113307321417605883639247646498666690051128470151867677013470251521349345512601455228578526349697926954816538981414307707310591357529711307196233836668248629572915276246562709096325052586041864535165110876797279916767227844379175873694128541816291406954998616158941951557102528876695620284333620696084391881486422025202418192630308197965331257841214108627744974371339044097849334612682351818417570090533663485130821559663787162086094162763253796911023903837726913188753894509324962182833117383651579499334981422206995701495619817344354441381889202320638829603395890852141780602710627209382340329299843775942964484393529030950305392053306996267990259827421120160174237627152065351570923954224296322838554696147573452444935196130977769754366766100756298761273745137859457923338587084929774848874324983909096485829342229754869778589033799571865112320831156683755716140807095233968432971527562849433941061064620976526761408296909625594067569312373705597139855397070393226852385938809353973746614459178275415093146358196647768670294168947790369895169380242601245359057250809709596931487016234327640002931610771970063190624054298287947547911846378095220868639703345201693756319090752785939565983388879345175364477838917443456156894226112030043874631832075822646286165854311235258478409983785947026086232506461211834924500956331625288050678512739311191305967776520524298513485798883260628637495091911565017475492549582945351055872501568218981333412283919498962481445368986763121524519307523050342187124387764921507519493831997176384211308690164310786925074828563016933133170313584621479549470032160949729228735293695864299703504621330062056381160295009567267949982266334436180752284188639704033072141874882628282586325070584090527644463048180207285651059257722290584887724551387139105763375468268358385052817811742622138903684749128364757239905165701436952009503398401338796855589721697307091860705411023233908662172087508403673548075237107543810534759763664417350041576446744115093633324551595776363088235607991029210692552738558055096976581685709657158581065870871108416515771860532772572995143304832987131442739861344981435053638187580686920177520039204842967199249419583916550427475270189844679033383652746879510561597660044280505421037435505775628832378255521175530039745832408947473413646985485406620984073369489732636677810543196515832291579054198752027190509366613935520279813546039963696757670945190191035570395045264083244599849071040819178061014529413912037713358522008217493352518582898902846583038854758032473108195034430145737470998446630740950480398692681388984650398268974169958865189447442132560633973628067819496366627425719448270511077741148923845999561482317457025381569948699678787495099507998076798164475302374071277806360286219421894007667197270698124814218791575003125754905152055092305667501352342596101906569677878568914010543599969088747071501619872196175505458604307152476575283681972118440651428975895910737389945102767697274397584662018015287019499603786752352742846465206864489490187323481588459879871865447387741841431077746440655725632600391151361218872030647885045117988332573980749130728136806589767615038956853906460611312161977806602223646378270534663200601490992624589829851493197001155118580892048788775815719522784060486960734822496169844350711831931943172767776097376966333199710125568768955096400013553917688204362045940510561104223392934215877496173866235274112775228908640111119640372466321715645947478162539729964254688767605304845758150757080747623206341501692070045305652738011457247822616740261324497325457852786511176494273891534855901346064308479904828713574471260374916866904810315565746026746622807328459531084834835059255313149559856975905279540365512463884625811814423068465265751788350830591140810414061185163751816559955361465076175326243895613298207498101432944493188559916597366637529733111834720125639819959939450062898390226300638066941006074255324913733209625179717363303917640861283386011135025870769021573466302514793253206420920616508770663640211792010605077288331543532769128654791098595723753719968042554471320566273643225882795657466514877949651200458994130543568943162328726305786833538778952793679441638852572329692579032322877310770770863915089897443093430300988587285523689556854517599519255680819232168835311702173353353393436655785872624957579389442306266245390351184198671975165519746870085967785052002580327441828966643081930261347023621240034835273441687700573135678223692136208749229796934384527236917501696905808415468598430539247203548368453983279717200227054514112513248334841598725863309437060491821176095234696223827318685716650540683691858812000362330683189363408284314997665147424568989700328503135120513641271987814697943726600665426035946152738327259537246271136239627348937197025368750508328340193992661003091408108072280536355289558421244680830095052861156503448773017246993090010539279115349058097315499821870974409706080393536344426991629196754223813594147229078757153501972999163550304855229394286621624891720984350227120446479867415033288084549181296991353441633476197999291577836853960152669489760628523691263162709730796659849778802712488632231921000623108653704081198694538441352293431920211018649309953000487452925087258147910531258140646340895808287845611223539813575114241725551720711123079196060966401255872883762558098484275337007578452792974106782256813809684625483623987245712185444063478079394780597267969527951098436480313277003508985976864924315832316985958869076501840021710979610562006773806647835539259978868482676607754077276761069791588869061987811187946816959085522813431973052629439695465288764246045567046329056278814047796039538350222382466520784107702693810056396238416709781693168628018648104121461251419997226581640768854861331306948408223371938130261134055880205905689206575695902029418422182158086365000104835534605885430864175855553440541352786838219118160556549951257528693485230289108416993905780208272466476737864175058308662365447832557242165573098914779169725979203007585316963284336110709527591711641308015940611516369716318389402460455271430613103267359963335476082045768051616891858251126049880803120057301668199619723848639356818418049712507850740485003991810177871467941091373077564888514396074750246481033570839832979112983729245151460758908366190678951302717428557689863442679320804813071332421737065679894867375614700978011655948205592865471708394408002580760766156874788154605395116510426556292355942138624155850431457707367496299027995892627012209559251144273877095021770514659056788513094709647247414368003161653507472741969560190156091641101337458545909422969879480648300639046264005926473657451361193989830366145406390243458761467514943140167720289664247356566700063925396376434861401492952751694564478270849135225693390758936364548132474211835625979643427701828866593174139856044070764124846226287204476440171913671467144839855353733527745743580775069205873898311100159737592841889427704912498504996213291858701019348568703797475175349150934573695626050314748535223032522244410306972326182652927499603697415615786941892355015284397033936596484928274709934733415047167471446750567658120027906672029363643458794683717877804509462311632741676343642865672004422689603599969904377980294207635938109711922456422046529546782346131984723216483887092964635970656197885145224194463426015762184164246945727530345516968700121070961639176665847757553941925917261511518867586958440968067681927966961630677513922869271002025223577416876770371178347391216161397598002186082251788656602510735564522796703512929783250862363576129482307142935920321478099752067828911502303483194100927495988136464622512766856295800877242761213299051593525995086942045552893282109398851803527759062374396871304962260530327231911273328142860912705569903324117864868851160349971575188804397553823551023511261484689777815359128165776306884881781086290100509594101103946675941147983532231602362036927588583910954928858364307433618955229355382941573605884352819546765273771677705299089711062412951267101249303680282330824863742351494179680204733312752931556549001812368268732783096454140184183747912935914162175937426007554395345230147634714538685525162502253367661875055850701257031012971645069533763048778951926872591314036605306329001800694417968083740476430815089014157096225634957182221456855837278815780329073439192653882589559534555322207467368140661054618762077547226923683673202171960760869363276906344160669922849222166787095803292615355780400464351464193024543081647416170834950754189858370600439374252459440256161254015712961256947304984884961713002860998741640370626101809471627918381054126472585912010915004984366608825103842199145587061065525807112760050602121297270774466630270440283515970083073093934818652508309567194096622177176875791114876879539321560011316283592884160871847279221014855696688017075259082780217165494962924718287351145691291749972317269007855624323182758757232781943044582863802472816267628934199834695337973183153459641468856178160904267177472783740130122107861814250103567882279249931203990739544155188877649315616185047489399815839301481637250306754287896213546248808024110598187510274356593187280763915044329045310206753888843585494633942919122106051814674166725165574216802534085163925615845969904139294758676674130887609577639480494478625570359017628554034886139998334095548050762954931804905413694135875522369663503132868453121345377860189445701943283074320105994068885782055240536888902824200761840058607533826911701474491042694148984485776644022961007126163328531339046897010625697225964824482605172403766647476993734858370284546556410283799603264602493691551485451918925568914136149399820377241964357817388541583830441312475475954959801869929924223388631980233775169391728784174844275240822933696602384273320464804060258885743359741445708972506575613495258882836440180694406857593226327985182133535991451269294234852894998734242781160924770408861831447044900064888909588517697883367774402531003073930947528617472864182347041071112329652600517783068629355918202892181870363978514344561029500551846371024947440902527002713570822529800077911550898226115966237432254916123684558989854217314067119223390897122295638968931208748754714925016819009739335370602492967196995063264722884909725109980569652605115713352611098699663492660456489403312992483730932316812919725162490511127591136452374010440839580671215507897266475578230227823015185737164532740430951138594241992751997078267387045651221598309503817121516820787001081654437694547704515762405271471302869469364688488814594896210666560764205860222232905865904643378236021528351080641669278336604961802774018879690743615803850823243736606414978761414270640964457558870092756001238182218759233610020209948969806623443458402805639138996482596340730962258191681054768696497523568329307309575883037166671252421106441758089042013442304470529146518383674165098407895742246287690515725095128685652533634122776211123133941904065070603824077972352743971132505116874201294784307900235129041933520354264007132238962880774629695926357753640280279835155437915684102871370558805571742349099237617520352014451487279732146355860996998360620464715429660721320368392823363625263465261532292500684268472656037345317063233789022927942326735636592543820223814815523471246650136802959072788069393775805610800500977242835801991051320574417701608388197586492526533161311444023681558088520138653909654064115822942935085742863869820348851867197857661150440470399227040329668486904352802065893708155907883966779147141219737574548612107761940359972817187867144114548695245232008988743201755243679629410911825452152695405091859284884688175484868872292111283729984367466968394920159268529668691381388193541735964991332738467644322301524301055623034117664327368920726943111648160393839506812440798204732526430490058713190108165660221482206422614867711781371595836306891499489865207948621438479368948750278097511611744019327790573138192493447232690596501762454837500988150681962057092568999691896372472643661072726628664679459208022559965199272663475876129594450658860308129645947053713125294808505444774865553967060482303164076218743931896576086070419696477285465891682541147427079828117291685891799141414745572492237589250775360225342902012615937995160156789331100281816889156957488227156453575910031907857617244200944772570274129266327958325288478799766911611620414100364963618568430818614424301776468624226388824668125677302254347566638516314483794007879685771431663210693344045460731114176519707456083433943158465592334061883237747828324192005002382449088011580889055993232865850842316136100963218061275118784731956520856989819635631145805745098375761905311473856573186650000051867148418627575880308563435396804782821399520909913410656642674445778530111952444819740253995143966110247444076208009947800330158421314881185841445028049076309710859303654841823850237832077267998173566829624430180557639990706569662286255131644737831706288259187037847323858226895732274395832068636559694582016707790719146444698695097576040941797902114699916511096373272050152268742860369571966639468761855730586882163167761892114410153992485305041568700812673472315165571362861941825578264597766098845396600384768746749145339471680603848322547791093252986284821924043724061092647362068080180731747363601521487211361853115098548286875164998842489494659390105653289111617204864460396161504631199471152823583206288662760446466603463507646736732207237848710976570020188418375327333273913902384293352266203525218606244562866276766113036705696459941383581858475210076254114070470228657608903697380460093421047984537562238845467956372387015836950130007667134911000814168078443820564571707531305941934825965685386630318019271465144755507572600005763296713462754690352916738639664308719550953119923476390439897847602081575490454397789236731314877192729875691805353118377848541255268980654927579582930848095742595570749442607161227760909881639383345637939467887414160377218368268866958222123238474228197007428902038713323126885149771039152077976396445161621273746175371383326801239073892758623716267042366807493946181439671109652608025402921524660616927474744987277276346190501509601984856575920824892784305735086132408607378854410217543883218644140068625445688547340087300555339319523007185787446079699858223271605826948578029540372910405954023454645695807112058791722013123996591879359260890273488453348137370367548824689631926942592699390005473177401076753761493421992086979967289672777084366431386418567623364422535991481676611614717133067151090864291869399710299556486092860967320480557599074773285613745051657202803551802464672651668054250964433657358888411659910784551441049008733859380557238238824622738568513135082782806425737562890124172375116960966062469743086821103552472264859619139585696683780959200247069203330111096832071217582899885606192594498749255751781740592116830111997101415792027783614853060488354827030388973492925548462463821731539395234321945420553060267797997269376584181338240252791098414874601425528874680503791653569710509952081045120999833935306631161561870627463923573224557941885678802455865156618453321898053219753999014787653869569964400336620250424010775784501424832966674608388487917824258186168565216420984054845575726039553132539609529570354184488545998004244830886808164390174957111475679384256238205798923994597712000691963929180022844194552937214486691815089589385006482569028240125957167127431389391409724237792133273282642197556232257080189407506783916543079820434124382600503020290499138250413189800007727986195685975567640252441643394296905624869270111985482347307798094722109834526251431622232437961578843912292924967997789344362532854854669957091231184622364989617173496695645018369659842787762412445785702377915106855402412275991986617077836224731167903331724532487459912997208644229261041132581365511882229672980792448103272852952298181227932595030880890380130662838034070636196721740165998871233484307885271624102808041095477246718197427098921192228761423659548542392691942640177357897052050271228814487445930168293208083854615579678008350900790892755568308167488493574784176295416836494980833900368081923454297125203117697571280383742852678914541711267582229155861361697495475858699011767326990664209906467031045732344223093405219282035551774119778191672193794078992051817433550430922551042605213263524964186254633797153041701867846500867939868329867304307997989819958323989489982284053942767827770573542749207956740491522805264040422089899118302661581101627733252015271739669485084043682805205806705188270236920196301395873704426954696428711152642920981893602183013406759095616140631661463902169015058490984181840557781460081309482973082562762298076417252429107445500466681518194559566692992145983353166122072113241831607129088245930832159868481394972281560083933257180945644803778697823536645309776643336055746342229704558815487861753160214353530214635367554123495118161402012539704085934877073644029644940022396906094572603361003866096867110576528755538510150653193989956769851161178664714261080728757082705911303639439012563888418315417180188895623599097208431397375357051530525479232338097247828861198331061965461999270733239470900199879803741907147684592315685049764918867409773306909475718599216218021113555622993808105507540454334149348286166098507540033478682547017304408311130689866878300258851501589314712922923064006264270564399303611894731680893655607796983426115493039111074664174807846483039825795295871827463304606522449848270567241445338564760870747872733778272553071153912297838625182838472653315537208060762191081981273483318228696255672611089396251360461142789261611307537317851824768387016916559737342781677104289872438624142270028898419449774778650337067119388603586964138488184340119337416468499763101403246394931351086907101623707739961913137396413623024741603669440512853577469689438277765401118174791691260601956685633181865685141783861046235248282218727567264273369828150948856135231282571567404677178608285945726738572017821090910911578555004676018346873454321738070880151864156640589125310525373074314692053738085381817382166908592694694294361495730170365261716776940094181017023951720555563523689487446025703300191863625324116188438416125266730205563942426684811221058022724964775703512299237641543233240254654156606985828763741201307895126671574559096251615171952121629108482393699299503755630562898387619704384770575449527039042700354788579130240455172882807698649247993068364312972590170832228064651708349788353581481099468633065400482262133817164884144872385209588822320173263586027950666718793142536795798774358440483797021495598499372214921954870149194616607847337310433049587804620011608410144630574496253182919404672011107268493741728630607110342714113712441692588483343380572622045218687550532651344976046837940851526705950374352571320705970443775285587933232386488312116500848482406577384833551789853665145250359434590693054010310158121232545838594587797104408808125883002901530583940171908086669792432116143884262781882834307986842907467427704411639349540105260933465726330458395372680581863960660466850211065632037030477802644765169076577636687894012391413176544750745091665374688682051252758326008672136099220354640669707925440494761204621589156050808681137262492443903342313866357224218859467389162140840200011686700341672686950058409830127324462642161344742467517923003921290172780408579672548416565322051647235359471142080643566654821496810110332665519733430152830647144786860393271342139269349230979779563850686731483463779629637774502773563579827195800361283561590915075270411402512684941435152462217098632465795155599863065263285786991411410980360969573536855132674576627349324924289797183135870280900563239151057857835908149606696468569610659495842039202023497566534036594175301079700178539945127698936670213781366999515650282298803705936958931694921446541601595571240943688286210304391234976785492990758089809130263850260217106104395233803040810166098128350552654666803447718558431659324384943311571015372187775976580577687766103238051266196646976542822120248561659863765380717444329430471334530823147553499774652005664308984521832620810506856144265926375314737321343531972718429114303750556587616791103053651376309121625622960239220168783391119687087235233246786320228932758504561228448939431986990004175166634045087422032956248526239648976094487567523212503333187895365700568825010610957933964763237118608596438776224824674048557022626174227150843597136104734601390024228792023975400724031594124867558659011747516825498550133095576866191561437720237556269858482932106923172063455343858081381523803297259251272209924601991028336319392422261529627909334545539565204226801327234669667510835284825022273762215857882339609528728106494307265272020264341122759459606270312823345827024377574154453293069700764531749947359073010789190478253849102254884839698888594103798670877517836538948006507797206483966586258556331428113595330487312427224790356570222189558828873923445199884421590009978477569434562854899943540990964174490517230363652229872120109032392617374362276454823388016919826605823655941838848311592897457881224218647103496361543548179498386901900209153414131616911248223636548767981034892055166621453992493649588385694490811759028992617341404001243681443875154495949746778055399874236944517927164764806593054314678720346694285634757345964331252899799961319512826008770495589106052380469678027992467704708156314358315375883485120881909923984302498510345971035990990079140118309557365702435408359069958893531788495886979487290295213256717773986943233651390256013186283974459826351500510042706628798931102573255791045072133613625483443782379074504646453945963336734274972870459520128125777701944419330905706385908599516891339984650262893651359046190496450321196990666620562864262671706708006125510470694542891568354392161075086213489915253460270978687241482455527049615166980547030986085435605617181145341239382872525102734019046770262785382296228817446005703291727965607089068756793387674875311529355406557122831297028787521954685844138033364343899025285452575204968443756413595930988271341776635019990989094236118294023300506840957952402922158104177279418038721496038559197648715723402201417557871702966754502988549107953639098849159717961904622638024834858543496177424094680771525655780518472101822747463923653512717732964900586388369111207035796010218352754148745626970847301166815835494095931365141813147268050771284368056086566103168715951870826681348982546182506951605213180560071625607024606610749839036817464525676158283466584535304187484123256367615842954634869289943661932752300666862480704562541574670000925012338293722184279838409804228705124429608963595053677241516599306919019843519210078544927705233753984647922679117221736152055856774387226636067512672120757693446386169356200873004764778378087415655420941060217799992119906082172055292235851320754124461820199291450099038362874029952541165747925048250259304103619249702606104888618591001892815859775920352002130886280795245885584977031493089821492950365222134230342010986559555437622533876888078202723517714173638379235922990950986520537645071356268263105303519822996051278373125824218777470260283185673947117816768079541994850151295225489752675599518848619749003504869288231927022779365378402363344964009985713407694673313240965403225979880544718412821138913213364945021167876314860282646831840380529931504523442965605051952296169997503818081748774312800858443715594452008186827329200268630399866711867275150085643582428479937936225224768965849864483233274357757343969004128792297482918373869195819405268662938104502549341291483658813610391582723399341705525280084601310167173620084873756127846443524338933006041226807428387129588593487017412357304390606861326496411121870939761763776630832218624703822734171494094523175821812554081448364289029291699428475828355079910902878001349750356040300158818373288159975296805588290395168007195650039029016262772470960211131973259088931539553981921063891663318140032823323294406400746550766009576865647285605927134496982223528469313894092003348530748744976588194654860239024403721523794827427202985421949584779788928977328304712331164802229033944566577321563781850554603312276836702079290309161808915601225159278670355162932382747543117071686927336189957371941144320916458417677421403463516666102943401715414153370424246402026023480126538811581117132549782087153645982092578460530550405223432219488777827836774258045325460867226920327879434184081106205053683410720812054100166134904575899056741691451529872020025876830148529438551987086929167446206506480248353600438546175434757227084093780812268763487012797557766043261878426147572995244433651177715121103917046049086088552852430723510810077649023254878087850649038499206338416194435071937274864234853989124958822942335910346372024402852188623281881937900081569749911948566588023043424308697181595858491851291796430254694610861333543569476172033924929738187203742934243748452818117132451168605643080399512565462892174801006593236531820232031377022266427370106297807703875622683713389107718299592152847065747458357751532966412469295184656455209088334037366948676917537851007455645080716860894631946238344383741257538218666317793429658688879309391217946766188006337057909566845507125142080674147582847274829762058773791220840426134907526642253628817545599650834469671564421342898406274760165586742174375787215781712217302699903791630453392473665101794345971445477947260327794904663201477656857345706509227034568678640744574238209336506433643165249422037966068990475946548304951806804311806173047087992676040223293754469514751720646589983422678030413273916355674541662727573781980848676260220142700710767308898344873999419010933598609550265831757549976036285351846709104131087693301775386994987657655995769428768374836091168675246585281942395449480014147659539770534451439840612533323994410830902105975292313409020715153630625077615586738180636859534471051514738575057320525927257447002031853491737936269468672951699336439693700802071036420738657527841826420993845211126664871379557617050597069008116387082945630018781843332683848385324223386549406522107304505169508689257521145983539429888654210269219989047947005059263092026142916985819074421207175057695634500199089656430830707069845213413272853637981727726192785513616072243425042137095776271450403721894463897845717632682409541668622480940506373624656262599369325433505274268053127901967150952795637365989306934115389152462783542814847700731014235465892336995465302354491891990066520618101273611659983088003193840266648355634570972085853513469036111281043505016584520582894118727280658552944186331820403614080564480226557192015682110415454963852244886808612684395680561626687242047613527402281931417570288947388998812282776313229283626804015010687846724909484928247825993479943861113459100987243063847596665393054857896833224195637382745247490398995746019970994348327355391066437449786151345733010115483972327961703886445352408195770084923059461772282721898529893426267106090192547956327012378968907082680858432154564144586999156222005604787872648804770732222044878968158659731950840378661658180049138639195269036102560095882200167014030030150848248950620358215938418778274890332636186361891453679988502069517811419511501449163629989182196207408791041267981627759123838030042166501072202751052793716128109035790702657306100796144060429678341522590446422022896234446095949571868710847674670979672639915143499469070754282168646296657412503235900868963680473322006623855323524188696650077019302134918712362638466079650392704252502447740824469814790296049282891403202516958086192813902901811561623272220837168831115656685425219011403435503568337744052753514882914002505800917531376508633381544626964756085200843948162230794730300914724288122962792187050003296399015807452522826841926414382527316768084843282604897853262766729692768594019208275422046521088989733095762521436995261965797885804518633774013137749813397551436938430618728017601204618889422571015051225608830045933247149753661514484712637357249672798679289040069247320785224505093471493750102863253695125567908426165825535378489342057475636351964646000945900548385539724811729926157851301096636698360299149903196404070288975312021680621058624739053155400494923164419026830952347896789421111043794432375420243355651745975508664816468322600115735123251437657070474528822952195948168865084596813689309814361400524735317051984601285276030168876621568012866124459110120868596320990330743484372234818890778609189938681454089462189732984532564951841621753984527310051024667081811398982111551078983526404883734657616770232912608856026425114039263139275528679597854552395622161302851439584315455849079838551507986750223835525093920488085818691291344007534196210818620112493501801027627378249491756896041060790112556018374284080941976205861192488044882850565540896746622132677046822257746624663075086349629087453358104902311876605256936376035911013361200507848275326842360091419789322579109145289388871713896878137862039287132903590470182809539006128511567633301353271906114754350622632121314461754795312855329876393606919480153710369772873386759123401868219951784707807300796086973964318321451952412669085631759595458978922347174950515418428371491025329101591024692914239370386626613481687341213634997061733187116081318784325817826221938066920689434738725332376414561955364722536644014764323290302246414472572742649475067746583403451727321388093768414974774837405223738977236790529856079967718108625368428211399429510097109666656324579430418656897521154503325900444790615116311455844397608030625164392385069268646331401421441252738658680227352208533789875477412504292385304412632249829111911002985956441216905644212470144533471955888391782990126743424146161161056627654498223632353575770857000591987746999978101306327692070491480433475042393366794668130840804054947513389971127899022496864813491526379156533195829817614146286352264598245385699484870403356938253806491912371196684974168487031537891099849991387417993322939425778080633324032875531724515680519552000371626564744502468297361801621182467239401245861943359317372401949679753086473682259240232485232097813533247929494634898435940951712250113371520061411033736482727092066388272156128133098178260273990571030422771254305806706516694666577361437960567255261577071891852920786292206566963210578619793707676633235016337638856420494253012835018542716112420387768891738343365593050455094081494136370784445289732821303643614363119638290754258941747833821873725716546216610185177590292520755905704537895513835563612606341039520174476818196230715121027207312528922998210472645501722124842074738905059934142704907660758361773920482802996810077537343222112807359938523581474572581483893633673085848565072692192407914427948386697096328240413621045997113479281676500732325270775459542428948751511927537705126112216406673449730893000390217102647784823330753446234462474903020394017938452550265698722861640355519679405679622782557924898962701064459004360891923806712954027919008347085148977847798335703692673996398990461864789683921884954023523592970458875120299834227882264142302723487378601881449884593745813588612040843297644305614399288910624257369787629478190195056880748877501110743920250451296280619658362072394340092742265549225019772471539406355332163852788955491441576185697136821979406310857144544327506343649371570947224259808400498380177584126012262092401506986943422460588290419427451748728188214273531306082327409743290247969004218351321068504484022844139354795742822779409195616411190220268583700699651834671533874023042035888660502978612686800106108450014710856753497499382865172800016943465782036443174415631280502596069301000102518098097935177276525184268043769369385130024596221953094242215322905335169368648515364511741836218979507897419363496412258272624516651085445520800699728258707477847593592008374887412453062272812181021057155825262699291069126752542889649679574740778709110077115276977935525056966607734697332898608388354112186541309511981278746289323363356114792496616358409324833047874326542060601300613390000515979305417696764508362163865329982177884596175547335519447645732935467597496472254193605260134908549243554760188196705578978057975992805185895297750346064871194496353619201953341789262906421455754369588172919534967056773242388548829680696404631104010957220429630365912588550495824931068448523360941091732694024012746385554304079628138511464838668246409602583164260710399499370589346695495995580238035148401323205310602826517944106156824627675073703585220710696548159709297098487538143558820825975316542083469128286506014067987303995997139638432205856692275279545740852262517980217693204897335680421683644880299181814538429375348584911474469608649856145172893756797990531799718429992902429669502487155266794977556471270044345759312690572226425585180793708557211172048383819832882233365992356983059301843693582632534148882682699608899779118576576805765624173165393360256336580704749227960192079997681770062684968333243767746875480241506824641626199529946894346176472686375614237305919723696950914163469176500536443256221284489445451315973787504979281578072995888708362819076923855801638943224050957010003284814094211807911246868137705396305393633601501638945678173307329082801695528570905091766458095731850405645081814154268356769676022360757727937575449559055465002341233744100954659648087334079634068659661972160061646458492810646053810395169719212293899688893787657644340031431655401762895925903057255297361557987773239218455182108404498537427067053333114215097570762853697344346200647822620198756337105278375193941908034812761673407011603801731944356890707524789986185690332732465999481662436533083584907678652539742366930934802803176416273137844694439811585922234782783744503730238462265112997055815520057915337227605325588261657503894241512368029732043537268619330209515086819991837440820747315626304596548561716034410301626194281104939367942316254436170485126974789206200195639362239715153193803271473234993626925876198791720886860747578618273800814190298115340873366769283254815803328382945199576026186310839310572027574469523119009582621913695913983127421387988348693095656717763649229427581682900775091578477877044622167710392592925096555829539160377802978373651633954283257867278401507823285128927074099161671354951386760427058087617205186608764936140172844077048230782575457052147034917215722224084460940548020856709099261691442853400296409033241609980457451437709626399314009497720496429749738047949617760822414839538509348436882520957292879081144513386895897520505837571247237491697036796942583224769331747762884896173637500424448779076280988715071682259250588893089296896230217360495653561766917679296331494675990653139733631870903683979603288677269571685110518616115608353802686984600403376272860419387875748551685302189919592528525029806082682232297052837624660139230776770848395731360697351198484128316126275778156830678954203772339965365139683705167838123115261564617964935228300593493762875611828577388963656964238128001559989303107092689433224609564028598883037209386059931153970468809524692303268849080257168096671983695171402380091141658117413517631358273647697672365701114762509837938715715949273422082972024385132168264510573705287544262399740925349331450541536220922765251024024865018946809265723118807397469293173409656948646073320143606755792342951762875822931933200737309210841529904472291453953318499899819602887008849150426934473951016915259953418600430127787284024211478238923741148897370215506886693806432455859640107929973907011899286690933542422038983660666043554814155338419321384005364834561350463815644592494679461753200948677890579428726353425909343968584884813127869873758759883341826240053031778594233579650656930002023029285299645224351338709347335924506533186228361035137781810005545205493300526194687474906165897168748633992369658519119165520339521505739240991116587667871844048820117732993830031588644826980385295609106314247432626723557267254760910064179965900252553780158463748039117933370074342303840098687368790110617523930965429266893131640319046618672033969232462365874720695502438266979209257672084949778531644859497508983482675899982340021808784226443705676801949709010276414895711960734274274120618055494436403460191838565048258674133980503472997722012792745067393542944772055455492562941396230765257136648801823519779927168033148554335326787433674099629551837559018400127478545522700752712813770531799778969084575225464713893152269730269613154123318286691723338168424493362174235584440165049237089855079635211630645606147070537524289058145972089537308450411081532292461156300994895910280747558864717550051436677698340078660815947882586336067299734790471892112877035226149842600666642293502031787631161565312808633869344777697643018707518559184446362521112215062115801832986395082891541151573524071698657696156054375211890019695155667577538116988389814268039507149558870105833709355550986281879255256746185626191626978740637245351335712452465188735799891640733264871644438153399204178234003580045549141144054529061976083637026673159828833960211857517540446737959062698815988733742459827222504544795560112280870357742479283358753761012805214875371190659971504823285686621285748503476256118825302412311392837576486447454220316012026661054653853725780166664113706507399508114053327121481947019377862320849736211300653238571129892678457257008995742843432853907805074627667409679510288453043992401896832058912386147319532024240486503696053599563573240101542384497147818564909291568577463564352305169336367484700147289782492700024667864540081147749847445708751520624202536306890767033880172118566850132109697141641379346108282116226182907053714089990619924902121977634224942813778599521731137395769787537000982005625386673909470338023326150799522098649250889968396927581085534284288961865577008078541613804782345348018008000363672118827681050011880844783649074652260937963136017291363741796832851986440685694770644185567362137273952194304626102613519548469810247075297735413456454837062523416437805138312215408151079233279754005873717862733412114681616642143571754695869478271740545738533579673625642434539837142452032673547636895638461427399025795876164111002511387245590270799584530633624167650007402199963037117354573936099824762527868856912251974020205677061846482238653675785472095435345554234614727130097779876594717452655173550977544359926016762194842166567318331281338840906818185608042522852966946307826916220305939145829857660710605411364067383995590069449440751456998400622379174939668966859769197095850288304416865850335344939698655157914959592763128882695476414951259473785298408588428627707945623402182462979168060887635209543129106222913948222731510843282868270962313151665437911524382210266926479500704762740411809505001042287707944117672461804579798660478069024287412106572579435279651364253745865545121333697382409498355088296234306627944939428347122238954485461971824660980766635056588769080162448606591612493357147280579948966424447544923217171362352937617683066820035230851454510421443083361667113653369517202762467186914145461762104712023522970432475652894010854477942099454382343127635977654355623725197496974658100227625509012786273556747228763011564487780526975699852437165434788802805227774879746898523055860108409575066230802038370554631485337937663823302364994919816710746221162890440276576992006625901239511446460610357507241485715008406726247658202105153451603380339501412621291142372462820100929741690589851144561479902622965239224858110590998980496848818974949678410397946375748595449900896652194515511226895541910240758415192191886109662731074674242498632391420870881309350744594714297232623906819385322927212167682249615742473284844935790657654481952253557828134017204634767609775155141436009173182271535562505993077218048706216440580581196107163083662458707139023681770049011118559800691983290816775379300450940944761558153955839341742901688959793207334821610068307938727406099589716731770139528798941426892550100154527064508642318437435617437780592114713926736744706505825173270978848137148015397883070358550786967319547567897833636510103427966520428622835951394152932153520736320893636205904802268906067329896733059655930488369498096647193046355417078566251659466046943709151232568572283694804150895980362902560630042417780594872047318115183864016716515584531978350572769897901758909642195387988670202181195224109244168875858608020666014860564358374987443677744119218745192488834202151079811229187695500947690522673391467441128898150663328699954849196444354261897726229004568793248026114955237966048375952784546661312715803522132802683907432312853506329699483196966020433380384477511212827814542191329572545097278295861851584421930318364348460782869490416467765554770983031507790930949102014433137758239857308361362676364160792036019590221957584944208285298609233840555223124066242034081204687325545833456634358735217144391729491695708465496566091188668791460734912441263686064178717834101006916521627412455539005099850390213485871909064793344651330518859190669805940808808555101935857421421762300529082847625394037726511705554270986945820468193163874002028919842936124107836784523049137766610557242799244673238788891677747852167319701758431633395406772800233016408330347085039739177915705506950896130512138115856037038233760589434552519090182619055073841640654437794276457279359556657572902964129189729618111357826415873100564888027969394012706998252665574476849223178358752233021706642736671504384753234082252354825416988910052793719351198590559788749392573238445673627995738787108394052803686555430545725749719435591489770956753568108034791772723748323912680722198931267856177584291563895951583211810696381822628549409931017827998114016938416547051461170417494967788620709235931050674238603061351890937026839337847183470184430829975867574777377719540567766345994266991894027553330649327360758812382839876653519701602782844833925110905913303014304953856611392216710575549948884841355622708048400408985536076995225027100510908315282139012958597667907241577265976985369705260723580117381894473353763682316147952413928720852056961724893402904783108958344234974867929809179783598454254369279809781890686200894254229813996192119543594025832799500755569586372768229119644689569569458573673061136871256731038614858780501016155459803492060105709845510364229763860732517587739025194153645883015628946993095149488585321691836366918584451688774836269481277494257519983481832740179562410056907828476835960211351869587036303844071343422155434004741495145875409722526623104588557449731258302767381066851061695242868118239630120486871362438875856994033222038678666643449202149803592892707498048551020467661741407274314995849916543929327113828896962775666300751268708283559337659250181701999933756323505002177397700611634847660084799335923411636614491235461542631626806493914407128853344465952505768066846932100743997255398206451311299523649445495132816970497451511458135048754933653398542910760712838469605971470189886832950338885284196416535259354321013070155243370113687053352743889687474534520191191293437866356077320408184464254611162284274571691369687257016448490796568220557334307071929965700008630134314794393230893299126925789230414935027897919112109486679074342729355522409372380746695454286402442213025833801021637533511891626711683900917614086281272820479100259601864751150690802532401163271489840083344768663091394703913759828531631901906253419475954929831595075791224617464117024824327736182652637067766235895245806348498630832051004559746786459054529091784423284367030966951049778610313217704306396805066199155900736647180503412536617803548375708477075544089995100857235270730903375093023254160303605016142255393059333092923914991231267865589402422505624373310050743769385532892493467463726270094026781875383187019483777456191785036590834919714716514061610421135404272063582301829214480864115850072990975302835422269612542072612097566097583837972194615078805976238252668348900803517928183746838311616783278121583768142448237879155823940047061666830251854971910644845737935621272084911961518925865143100250458079831328684170036673355949287247798054153839188349257000202096495830237502601197847627662236382555911995469665874359846779766472776730594654411087500166946603972527936226851033228519618293986678493316764816680162466136829014956448827626985485155033922511528224509373378780243654089825846584157639191801165588905716594693068250177040707628899458761729556995163634786828370002723512459826173681352103955350516251386715320691540413144830112971191703401071838471305267883492394722676930199642111690066355988844489132453047947987594937427981967248230180934884557074051096885089599672353448685801524599984273039909968142918183649928001674757103966057828712292051029591418632225345318011005140426074515852461803189002321586451594749793498769416929294505859156727931216148801581645396244571021704302232834929124617884907743964649536034495832912788610533068785850515622732396167128175204345369424438542124466143189158638543744146696410318674242982513300488493376186171003694724668526208914049090898730089205651227885989833603410517464015800141307315435684366038302769278404806631984973308731323911216896940551871396883153375824424531901448310599393027670321380394256561034187870199452826532648798999435406159262869979641619367268347495535824230661794004576161994646533709417051204508537770341402779679551290207604499351655224269229964554443507648784783700842836586108813333223119568350356108517599538456822747472623783333827295852990111095171462563080663512621354465372541683317885428742094617582291804345602540210496971439704020278905770330630754578250353794886176487813832883006307661696180724311020301148022593540508758058957178174909133385362373409932453382437006823484819768181537972170830862778666878250025935964130002709610821775856362094807018506013757938220930492832700566339444990783932596064805707090871689521944711342387450528544270467306147497104307221578088464064014303901525495212494957019154833480264128853832309283042590873385123688714187813642701373082591058931151451047622687093682733921481842454484838798383961455234153552788673667622314328013803592314895144565616226201297248225545269514122102062677776111944058972707633842917506267063696362153331067413320452953345608783008898839881229281196668103900697730148062491454228218990987678044227298152484948056821686041167224851024889122371132785802648334860795060416427719942660823071463261524710391375209921158061503357581764732074880046392437424329339137378840883531359091679284551767880963054907101671152865949839025775663188971833744085366318740073749230590445557761060848893403231154625528159021643530959684707885757462060810680736849411461641458064900515690527122916721015906340513781910691933995710375245366563184759355392407915818228790504227617568775623573492660032435917152268135870349076871396470110180630997603499817679284611964436049705457078825485929035643429021623323991432670490322978694621140416371740545340962072031653716000533522571485769393225447180531064895615976939651863113345812712533575031071411592950609924721991560661659959369631775550547001272843875359803180304411069213878044885773578395980483950564537993834246170732217866080894843054950632972745808842397824555389721589711528362637017945730221154838269399039467765006465900536013733088199989495678286278849398004400258146271471990746680978167467728971452265328186676046309389986025469076757874286795781919413509575812546590912745457771169689323223942658031331408666827190449773370935140807815259122042925556097785864712163225846208164142936416707933645095014141552034264970928496037766176170210299574487404866725790314425155414503860910138084813520617355085397541935498967849089269416927142937463653386769431559934062540946554485272746204003843589898436883273935823643119893388574686845743984232537360453118551735767949510045235868377705862464955067961765429021554669622481135394002673414574745366078962876731700119738976890720610039087642332533688808836071345740237970208142466835896524843933399391183960774211014341317735150703439930763332912523849930858726645871713369950768501576568642463270481725812901939430553258424443856875548675110159799865434144485196515838449185420615289819568489188250728598309305317423909237170247164189113227370793973345089379465010283114984241973454044928084052756498150255783966325998731538998415793658312476701967694647840032393984055785816201468849612025267828043789579485646592478897556923743555162891240272122329952520307092727917561854116049092193994625253806486442540168565023277435643368791870704581616311676223663266365771032802901373259460247264758487710496920056157546649463617417800970904082091417717666959006965548454773261839327192883564353760812955209506758175830555201878819303158025383786008792265760461115012203556296246590523958266307665586628800940776037457490396684065727982974625768397487121654478988113884786073361784304817409842360213438905083218882835480195680057367342161948932727361778801654677318010095132115493351627924912161560123391587012429755296149736320583197765515520715504364261595289259294590431894960503327252907174874812013029835459345064372207839109037856173480706153382817739592730930195078171649300056689228674570122081558131661696664565745383007407709754982259846371346352356649379970598644830909316053546431744010875493945954896090045994537627561796671106225992449807655817405024637201067058283878622121151868081070232818069202240195300499177696729101283422469661540616510459885286813499250430650527732497830463337838658334225760812905965046986290410980195742777719561473425644413428554774036570586454791044662165160943881840068402719976004223144898779871094644810312631324373744510774874151840396410111336921742460550306031504256557673050428402855184727405879721477291866041741594773223930041881037671395193468688763828635732948485727847064895682335637696416743194161394811639080785406852387315145471348502806072377129532407969493275842032118796920388726380277577669188663768625936476270784996951941845632194065540182702064179783093909410342619471044503893479676413060497667971548355923850469534765458519626310869084231542746381827934701418214635108910454302261251664794182391315569193106674145381414455279733448868712549183082722703704928470294753576505624651564342218950388480393990411415408791458238134824835040507185489350542923039412215376786613778986146571327142203158483098286637584449145711684671551021831529833064996022780211481653524288542378247956640479602154634403432758118518641009090632304440768916456852243719619456611713574866716003608263008211020779059731717653256158817305663772551916226668737467215713277037225701430165939922700166300140665943325412061373684153983198719589768725126726702219439394618840857097261206532352204850458107739707462342414211941014943776724944429746789861805269963025835665541734693643549273863923563284445872647271685623772346910282444805298998385448597298232915034139339151604685630993953172927769682463080087700340867274934149091893986059152271311324456212681257510986941091160714499604219697294633782447060638554060091517193440935108251601139439990922906223907686732031745535555525256381630044549745438170591269670765807803178159055125210442503436824391035413995619011364696970067653614432428548371029689387896143932256970427478393178670298051172858844790654100562400214275063661237302821710210266353096422255851615827605395235574947105223641774742284838817344145978920432728166680269660111544591399076973385632286795671861340474406047668710313825159235391091646413355505208201893983267069722050830466715188365884624952099247243195549829228367901432447917496195320937864007619444084758112753837737776323274171554969410121505509834823878942273450318411094008566525530129278610030642180944248163334196353646147478700238628854823413650520545990115574730916890619917019273614815624670871982134663444074310999225883659650869491571459602224015991282966201656824702248005306859789538207730779538175051084095291243505613737558053567068041699345035543946331920891982522986429117706670423041418179528291755568064046878201891633084878259693052197113139399900789682424825079025863713186697500239285805797305896813961454089055154467221739397776514685331092121435797621346364598939719499218374517752723240044931448699929270410174731813462658356456130074069669603998551166680596595374285687105571434935001497288664105616959495118644583350401137543458447301749422988680166695663419797764631706811286878555774337510199755703118510897656203380266859766508700478268719187076826913695118520897327233833905538095526826664332425974212036221064741505982496791818386473943760717953496688108227568097693345752858651505531243398235171761882403683836973592335605249183792199537448349742262751183652427128272072099965632902706628034187680185923719775307170955286583412009886396400394788768703457358458782864215326516350736233862670107717994960069613625753962014979696634746560228493804681863919484531947060568352830700612475020360195667616915924667780237224777500102564643288943657150259782663541921610600920345443205038386623121725392449215651937059765144637050997533914568472687926669122427097697182128315330158852106790843928951090788263526082482854894538979177403244717991448965185414477654936285544583713620136185062996687924403753668205845141930037666714728375330002879639856392574018203159615085616834137922713373409162814451961210141556749265981427809533768012280078487282327761244363363191183008191317550585160050305168559171571968583184856565514207960849666804800392599178478757925959108926834872616509359283748689386272364803102322726446507288273432447390830629162537875702721102810327661650700799327810949839585847541186501062364808097963140129293235028717570119107907146294717941456247350153783016057119021680989591361363350180871817316319546188559241915788167030123643513014941223410090498030143812217834937184792122339639408785307453056505649186499249959749122942431682723680601529373959412514245371038107249345452360466419220235469506600135641023298505112137520777791737183813423032471566113616721701562554806055195282209041027781873213603162351388444652219549708940160274035140674494150735044772082957940832768503351886908898682553707021670098876097944432064958348071397909364934416903140985559488891767406298075417994561488471474171367145381176807300309509384799319138338876880616806460116907286380496354347684753939061251922978601144418143114166294884062297542601859897826539787890715126399413752983651872071107352979822603323748655217056078200469229202457608440684310162826439866112318473622794123237181528539471971941631787661539132984439260476399477375863849611007547900524189286065004856067731151402345568279493466087265994966040833265525422385071599459199528008749452229325518754900117921041156110997762081414548987329140911178735768533256404809807062429357838755988889710764120084672709065732567036871334685399476234854417164678035716682801228142024594703084106688742492795175243858122740418928550143906581547734061779113447710894463005948416529660934194712014526616532924079778206863970945530303905647211094074794345635370663339339385807112852460022473907674976277611193604525347520857370241227056031633869352680255772318272433044419827383884224349310094194559016672075945290292418691626352747582176688263695092995853737114923761097567816944773709630177478455246394529679053786612513140195585164354043840749055385963255927789960089918002478719077229517030253161826378257185657791451007863503495023553923440691028649862103520632673650928152851849467414529048302511376011820608462354860340722272755952591981105446656493686942447474149129880958288439644757770391180990611597005400458108542966006119442436598174588689298011459503199904586988241516089886960727391260156177087493686010715555580871588534827331924681475871734553638328479900400552851022151317527435329447776587570634656717027347668100785617102203283840240210220071246927082372240210424639151928882345479777129082089314183919455465059554060925766249333867725826714672941134205806543978991183820258207303964731112630678322610655661721007837450641491220298123396497479236278181348449587461894726094450027474647133456837670314982322877106924439338213738166380674427174053778872518219137521239911089689688735338930023303264229658597554710059308119447729392129547851419932763701112502126797196559191385243638792716275383896162652930497793955223123924892206217370917790982500476317630728534286398679390729146607829443894124381082945045772830501434712478262944732882697406435537670309534172642160839010534208879975350184822815455268047327571175859888966308615407843580802118824539526014897723927510237322866318419133845543706353797155030384582598161180616916635429794612435205272916616880217692490404979419650616279892980249684428454362608847376974419033279024456106211425709840882826541701959879773685795541687985159613616896632597726508094905322315733544739748548001317272252554437088649370200655973792343303117890034522406253404647448177690525032669197897380344589907255937458443979704114225085152542674671403021276379296632833439802645969140607178827837404352329168709852678251175823317011270526967797398942451972055064005626548378139091585259858894372038385438062720249341252693910177725947885763004252774036575619435264782125708258273929045747421751163628498021702178395510710605234916041165906070708400661668515916697588118438482898760244395873883981909314949636855808844820189476286598756084300020820159590611964862600777177980857070893150869550382255351743386008697209329000115106876445980567454588334752138457239935033746170785454243415443367920749685623875024279966023782591372180689940797273284610242602755918398885065784984541665709062081433138039931085579386829504507757097448476473979531621161109831748018720820861245988912034612421192987501670934394253151887840764453708855865217436494567786818871728498162102150076379683607524542334745626234062909719201263560507855472190411233695499541880883029331933831015850456414978779316520551411859519682950580775197412609356449403796362920638426024908117908576750497326699560430902843275649498683045378141730794859374994252546443123163841274667671769030555520694361771103626243828064766077720828889601551947734398668239116345084112669499352013563413994472379125000602191276692418060770985752635163372467372398406985315651084519921754469283392787461771757145899426246875079446150462024597805426791353733302844169548320018795809995502129263862090238990742744427903530738088811413458869756530775625053196927290963621862073174069149802915269459342524533233611852461229670124682636810052791529480286852002320195004659445871388799712218228661320700555805547281539773319987689904839508671079637308626080511646434688096611680542929673428846418981745420061457694415363961050066646298065110283462627178390381063894577123205920200107838728934114800219884415636095347361894597426146511642875786198268621715240527711548681526587081124604169732593295437635869177467826675532137426882582847865132949014387239085034873832510716198710845362941661116554915646889785867467204781121850187483065621964642745628320534456797313896552777127611688742767267769843405688366986131404346702485390802043060715177208365233434138463826078978879999431610916608091145527479285316278462722002241173628580877771146593029229582445770861782210217866984391021491208777106540353442682144090293644315880503471594519871592624901081827756325399045325046886401404510843879093625110795665052039484523412630910079025829680063493155494438172002599867077029420513798327314535242407644784390337462443334543719401048405308597971028258209751937803334989597188217030964355964297738304922031027745351457217653708978114703984484811490464022715814913416221569120812794544890211844102753546781672918452164207321597522022091211240827579306766693102050185019070364116639457521757021548847605042320664493415012533982229953237498696977116151854851116123067594125910608986074636329639484967517740779280205380047902701229135918114588620881134326208360419964299355371574938289948951841106915927355007345998508328859996248549197710630404866118465883644979196168179729733209709303596358261993005632684177999650583460475798983994914055803611769868581181998517643927365558257022352944408542945159910433525246536900350327921806459237450048193659807246537977145863107259153819156470885244693568632796377643690415727270237427091144510104551142709875519035409708857636009188948720214313162168076133063853353179327745389712385087324294167073622123489193495770392327202563266303780041765737210879598505705115605331737218927383844014948227898953155047865417461316324434639267872162528423712394929123130780654440908148981024433740699029582391431501703524728576288817573476560529786753632638177896512385269404359199290463004827755435562126200124654922233152706320381840299432300064353798010836411082987086839020419398673642823795294830090653311201007546362171172783563363928149662734593329260613441573808185043206333569247430889303181266909879105694687580185518868744226657929677706183335442458035832587507431883600895429230047075422808014084267830424023758049941303737258833660365416705106000048877336096080859742918562843012360145862457860498838306101443463467306608534039886522556188260767652995307651025582955403373672932536429013300420716323808082214052944600518914776340256955569474110008192523556520875037776128051311571867292852538545443684771653791570436045976987130997435347155494543602890121476867483801170105119918046914267016042334132962847865827618195726571525864429076506379857576560311127423381519613673059981671299290429318085688608614725239758097810809015552627726392653448156428187853892647235538066882013516598912858493095527147143892011603791481538954663635988744449588101785809034204065884422297811673474562490459882549387589560131230343345012198394632011267780155143214522020626286629482016444877350262813589108182406779142045478872769527631689895448389918653923469633860062211279372397342290032605815646292993720893500053017053263758750522912392095483623689155900599996685847487108673210197102366973221078186748069255746363422796646815174254189947114750661285255274453067258543281213747191911896548967379906833721525719750991363267193756929385107068479824492808223146287676970146406931207729030713126990125819704936066091965043270793466529302143090410561341962060836292048290678679456180423173119517848462170924305209917678977030935281585186889570147761159518425690468507490238933620158479980985585662540923239713382851261865967961369917002072906473558307046067412755701411014600312667721604923692157485802638326873259054000325960366767172604451832407327999041312652571520950257401891354313973546290265812493580426082554755629338525954258921299416923230632129878869846808553938716261692863597903208940789556895223733372789300759082069740670224875334186748723037122927989748897917881829280356878898375922411175806413689218720579661153410343288365768826493676623179837001940843919492988321728811621287132426425041983831664635292703733492238127381244774275913838531803072656965143986593996225028037813774276311090324644717676721692095661324131915618556105384381816694316531546172167508653225070437454683354624858554191631456312540956310740004238315916068195067671555288152134849145895680519681522341338803026669548367723554708307344705049972834880584795619929768705148033639287253685334359017596219288843043470008943201989542984730919559473804760018246607128338579381799858512818666490926659453702843327665796791669366367413793093280876793454208329528607782860055696816255209134855048827369654271531937067838940530745339607037746593772849428387407522982558338365465241300656020757102149824717518324772911974562995821145769595074664127841501959963097403734753604672656285968743111540002702737557478708691583863066721233747599054172579650250429346574404032129679254795904518424762478225570022881000021215447202135238437600020561986711883540508536935388840208613393354503231815613479479340968804730776505904636218013569317620739580960629499681700394088423529234507957990327976721562890628957724634952572303174174593366377863543490572457581012959509585748305760254958455439589634717747698465763396263199851216107534535959613160568198622042111025156507363256729782994865446067286448306493469657300715515445577273581373439510709269205594589959477133708523138910724250201321303228357062190761953017394871977874058810464641411744015105543751767767780626398644986121135427033008508859627148609249777300112154232326305349264467016050415653058141214828709986954734617897611157684742206716371333848109667873031895048467373179994505194747120737224189263581169998816032206336615019170814296702750441848484391208280131247038917997055873979906222098633472366352045425206776210907712022083165335730575829684413193732339929412410112444172750320757433207525411798975819603238644012760951647838118495217189384030433693655220829264689057040309942232630184319693691779041702540211529094057540777213026812733911140572111338351350919606067392249644787905976280546824668015598727968322122693221842794823732593918502143267376336030590624921792861340666721844285760778913110430549496566142844948645773001831349267757547116187357480276728861034140483545669320632658008779587680105352142720954531164650094540414406295341096283846911167872215243649309886659348775032221195339840655536662168522776940665960644444038586952548380898473847663149102038190410620860198877174022581110954459973738862588224389956417564391651368647181495843741186919155763918808476351720524243351635366665845360817809958561474753642385407507523550184109520750788247060447681519018743347802757950432398823500304621138025439367462017459249597857420334826421765684589761926178111835927160038069945531939227935568360267893223804548896248416703256607977872186324423036028330098164992052546706413656300017864971477262522909146225089819121539011096895221699624197412609674950775559925600136278262409657494009751745829267978486048580592623980727641774168912445877726943889254290886410819679373456971922973535928187080242060124163662925980409663685609403564596790003295184025451884952887905960416600893728518300421064487105970939169815361564814694535606703022709273213609924467088689624886913926501318895245098481680117912936110189842125356385718122637753173405639174414807241999161621521075348121902366288940310928435260404897941744969059658574863331216260888574073949679626885092057747920807624376736311093315362690944348559446515642337227626432794719832865561358021692323903463866809226273485261310616674852357036417360671742660776155501511034133685383977815205676529458596495626945118206799952230838137889146141335346502881096609726817747374919430552262777839634413308958034522362760297344764563903336784491590397361700708931146969043471175807740214007912323839071069103012220902166618701465225132795812805289236980772344785328684269477974822899900327824822966856604734549724096405989921479090510738954713709005275069397259414698646525996184808078670878652486273418959418955831000538063028343374788530001308353373479189476866713279478385492368128778285196032492314199894304824778669944315442618075448964144799820026980877456955940968469799454611348529088371942777130067264291038098866057931841344986469737798732139498325205127115933483737577064399014783472900047249623375849517441298902858118368975511188991370298697338555312819604783444408473594856016915793496103989016291713423301243591195715128854146498156972304634969887933655509133430079377488992608632948385229795049965214868172469727837343965291787867904480266852401255427708773818272890944365330230472034278809552087144684350006648134960152281663732491043518183676180444524320532844643067531707912867457838256283255793485949054299833410600614848230930647421643257388643895658801881490052293832058025820012653646109724719180178466498040376106143380533142383851465869890592249808165156776107092988909174027473714591367754687554130028456262340044524636027331956757130674270854741845309753564004179032157263497439490149581583780003907324558327670789493208345296287938317812737742216921542891759157987938374172158289093279231222184468536579035890257811814439524862238561844350041802795595778168924547778024514778493961826733849548764316629207319315151405209129874631302228364044046343574889660557526384243076475010500350158103977407998584423726404482213196243216056699501157020164719083591354136681033239748977393536310699037462546890001041071648808013943615747266665931173536596423302070943996105325013207320893256728679861602236442777221099507782959239898156743113417244920839290915731489802875447041657488425020147857676026715372288312751089959975584414067367588579177462803768665083460233367855247082997442382785582432471050324458900227826997965118648303319714136862895954160420948355974165510093107935299242504594447906230723702911097391386270612484106332308415834707673108494990606481536211653280057372814728426370536138610237803831585596046327634309685837853511882891207905813547700869671037354155354396288644461415794386498474921130936883721484291672642150458928891108153676122090294869259056398920741126814719776814529003534275623517841870531919685858960706034561668409489795890041193765666521529553729416880136132435855437908127109071653838309928225010445644598753048568133324828051967480518559288177166899867148753033334459007833964341319100502607086221802080410821868933228020215266928472134146324495149958580275000069813610689377085281441162999199966285603697991831445667992872838994847940443327710198179497850479521372157384594846710429631311411101294536601758986991153650422833847195904567289725093553161995866677074081295455825817852251757273027470920849393484255664866669516780018875859963759847632602750069198849596597641698453899520165401108156587507671348302233669590851993447486607547838278275168766830237457917007017454687928468225844569440875037145635950551729950618689791344025705200849333149735280529177258806501422128602067340084164888100260013995789598432278932887894969225721914817710451154484708978509660972521348258058518676897857705907704643986578708257125848246976596970191990767032637407159244695617229477198143082293583504729304494458490455017671664532943861312660284006202467966493234369428936269211224890155701862438234844574322791515298779639249412813852139391686501754538424300038826098478732617952703466495836065102138688141439393813619478182860073893404230200359882406742275652644909983878737177129151932751877148821660603121498619190753817044439884181366402029171975565855521905924242593896875292559958880037425699616874259538589220334979957600506790053881641615122347978477665663245249809087095063572902925980288672778431540618125665037278305744436975374887687711842629087777015883498692132273420709350608062739123333440468728703289323029458719721435877905588713233259292252686091360092732550367319939989764869290223529004055952521531857962114243753597691569233810630071447896952207547887263139942021079539413748230405717656768761794142478907745085634220547183819679771178435048956837117764280791941533879689578340252209173930244865970772745692664646401305289924548602921655183773800650461869318067463298589042018010473679877990476354618668149640987763394680140458548040777883688472495645198765039093607175699727663359925571160619276407764318837154985358006437769370688135746111465448309475047607880007686614883140879832919076569857437526630354734885175022804577878129176046906534466403494448036122025480406471686041811554725507980337947000308936967553593460572767910183423487559433161031425601487804965272315740730378885160520128651018419262029711889478706584032577204844179930439232883416247542613464117715657336413675179477512611881480196158797807261712536521471522531060289400553659863505946815726823875838727122017127819632982462339318733239766083842082508889157313584737338088463063357809198741894056775513982518065947788296677786113146613740178146900788204185849840324476954788379286572160389247568646892080090014811783859694499261454424066679017144627513333540842234015200204113030793360195579324087655994726555032732577772247043845952656041439885678370680857364861317499981231567106496360263263697788837126001855462475945107400860695659917584674581249672166397859868618147128430255069829529387287445938005657742990238991642819613664658577869577015596662487953529968513357143234595966287993578314869229088461030288215255201950471257919718255145879562492771528093429162681757516821116093401608279144310521256268894892945926147897840029478254048483785184901290311126166694768441244732561459431604311972824265922906385871536720058908981509055056944653932544418860100559391384630757308252029805012821749783712954819327973487767002004931183456273715336896264976710177606388735554627378772600743801883900962934949140220100742226558987700539571333274027425061614245754122239445493603040769508727596491803310386345627399476879882554904859459069800939529009369204856553496534510201967725200569662347377568399672921314935299643383189603091605964486901317251637973112328831097499214072409546999625993858268260087917543834514859265183718477159180686885150891656921342599996842198430129459822373572580225419623245505138023163368237926930987858673013159493936932125914959511876542345682374354100902163753580497288080350456915634549664041535467963970964359422408003060144620304430397386439250702071428072698758649287261389436307366811219840045068110458651425538680897220996002567921624461351380355564596447444760963396889122045808227722652112846495722773165749670324849990033598237514698093635363585288678895552738120246682031543163147064410723284756998964818291141406688194985343789074568160583805022323448962941967067926164274786291669265081974556652685396288885937677304347263013826594166079414785157339300449111867275921178264757094591876726834493970776260854368348354770940092005546647543259190527105760820738571106709356739745306052579118637829518442370565783459263742891185159485666960387029742912046995840764384212225056321183273152284002496568333585113135877389887004718771559693002959515415565643810545559642045904030079608969271778082073352266454333338384967005221559623550529269313570039969581998770589491502022553349933560833265717170315680459875339309615018702833390165816274587937061116175990810129598516065966399951261965785491911323034001238432389640268151888784093641073137722043463308525766074126513378318787549672727296524493431267714572735575910433075506098044144014214002968406909786897781825866775868437420446860991246504396043307859518832961073776412838758217394069420443174838813685860688812892451878300430317743400478903770409435701265223954796413217275206685982695465356199091553095654612815558437030321246510792222260729946154487166955614993178925665246030963594171088541063911657039331884503519154508785669078400432443203287815323124372709104346907727593343530850381184406273126077104958078272620860531552126052562480490830534695498559858751410624195191565721124930041006837884437650069778290348818682398606422753700307278296566458358347526366125476524031725195742743855880075850581490232512557382092649320494429371234922559696170328673696426512970489043217455839216078450242884493048169354721889649032341643321129556048262315885378792892375469390570115266939238549582323229494600307291612414990637687725214004591644965132594844191328052981729442441188923043917819539663889032512021725185434684027085609769566721760646237742200293253343863963990489727077985671716905608154768761766889874958307828006584044579319951558287986646061716989658338249885911152665914597452826089718796450540495992665910227617267169215720642907346255060130934508331212273227480966075707114374059750668974276898810665844088610272569683114206781486661068404273763013870437809775169121593578364773872197387491064890759628725372463056073394070825170374911188825024061615076233253768329523960616080071970146617906714759696629991398211547219483006712746812741907643298030309869675257542527027168617206791964731762488907176727365904361586223399834284887355703793174017502945289044656983595135562805076826178381410535157602850533762066843622865341137354631313790361768694986489382069124622700809182239573086087929715517319949827010956503436934386047004598558003837953875575875517642439997237846722619185898244959121631182015799322141747095576951072192218607254842864295629475238217137723628256373045434924504214211826680473891167861682807133785999341466282891963271037180272172455091589950425837295866635307013706145173960998490293563261866301519530844306832623459070628363552216174247686588258700980994695867949180238182743391849184481189991907288397342114219146590402671885095117527951598156587885949182374963118974373947564563386942078555464364359734278099191107664318541891734981119897963317258382183901041365699741933649279416862438190475188023920369769980107431953131964540210339739212615526756258693268977317353845298885890180133924458525963965835860493809786989443949702528548613018712287061208991437448276362849603707073314548462234569714104228485881572878791201042795594097319407847557988876262738870070185727705317362822062377924393105944218311075516490868912631780127754574669050005477266914948763027753060741764504988184902311150608282786669269843415575360470082523572040979949679211621220043254000042937728031652434819296434069343734768118007043257785086860610985011294168120878764431708179851676956238065286733468103638432888626159983186792832586423209462159581455401320770261610385796896595508458928748125563351302012266655941193460792660763167996182443432694140608814295372318831421691105110287105045965048163920843129103236818375606936333955830367213270544171700048167104400803561771411063711806312368905689650509459045250390152970499858685071478816492698120318740850374124527146858732905407120424225684770001793127483625707071902969707344826019335184915258448405102166842159724479277788050790403053044098947774284233931934902088302968449910640390318730707803159847065130318198803709769343759277682878544295398992893078493880438228852180606817428694874925423984956747404748273989765853724210713811133318132057131950486987877327765604862022537625185136039651010823382088304176349868977052510141727956376445798904475107169113738632696034219301415739904992793123939915113364252279960490000656074331056564215561227511237542402926384527706315144952629131599213839729215296433414647253665024486490988038823485549757413017477831821130023478045212210296736658449150735242751558820547762206393280526907115320824862095016358493732125240107702347300460370833577989910494330592731055752895336141740759369283605273443895649171451051065489541088628377016346286282870511055795382788997812746537072581538866644348991452925964937666650781761607949139656354807531216043935801649059614964743870381523158360932856125596548056984381443934585374736071494248339176615212732264018781757059289454200867563045614504295023485991226544993189250831355224906182822287834777105890994510810068082993411359586449123416317783149976569881648581711489489768986002527600448765072809075075251369574356376212982674600836182212586252247311492149437956055491736430493695872637067882245284610426979228043535834239209562177016844437077038967467901938025656327162493921835025740448369544454528504682731882738109783902574848705851374036160374926464007587349862902002004146863121884436937961973156501072772400073938116466574197200300783370173915797734587657018633241253328661181590146632029124020960517128865373193164642513521204860789161006075532681846035688216229084273377381075886370967886948273070320758476376702089066054861696046852460837989518770537407224900075164732869935272765974319721203693376868176378278980832520311763253275158452498626895620353577603440652976485042108506559252873973873749245188945671892737794924745565258950688065499040368599645727760318497589442278862366953037769694028842910131527998889577287483420323305863551694474734879305013604552269547617181695777957451592145737554733632283347003600991112875150313738992123029792403380640932904076266614100353002821377771849548104846336547182762429439385759523782683533622073656632772226922240497681250088559508644547477170919958936317886635479659975530987960663540168733500991312892359369043039723891169587142785467743576452395248617930424472331455418179347529992994898422066215255095271875905676345873833695237520654824116172769111857235450625549378053117583688309852056712470126194930138946159311203554762382698413169906166439846465481146877197455395776031185787873518379055459026177335162977320107876009801201883229067043285452178198329726151584384055807413569961891484002087747659155630837108109747261718202846526900680251026414043205152882111805252622967806834314801794703284329292442421726953911677462285088888092929220029382714463171097318617051308654372616411570162264304029526716929152457604155886888749215981518417614025543678287857736633402045619269422520339054625755211369146711585968166718794134555341694972337371719694012682843326392490011408917132802002207260348627980288962656172524017585732587778005876948760499031658327813943729501403096601713569069605856475475610367670224376359244049729331096337900012944338935422507336433439574842490387261068034801660931570485578297833073109071423861641874313324068199195808923198340098929966936078021956688210637263252000094206143115809115703573293106681195251214768448623583599553711054836267672855176947900841887530830932940045102565587717261711739945144789864586198906999583159266199327658659863384219602869449899701674156452231571485760529537423982353320916357444008276674277783525833274768955127434877478275124464010318296498701374089865793510999931001734267556505716214475859017706131740660194670391413352126646829638085488088882394060699041042509271127602784919468762975149698162212016779025417426196210114982150762289682197634328334489152433638797372805331769827628547408089060892197298076677314366718137278998357797473173272431656524634969312651760652486325465490824816175563693449310973603567442101914570921169799038916153099283615106932976247945093540633626575294381663896101381150447884311783931354640249732065168650483131325655081705324897316856637294806336238457544983302604135496756046764711771199972432820812174951141452508696468300552989216952502377891850151150277452398720240831789060192701914536728487870232122376681614693187021370498141582902439226112311500825640406411229280675514780848928897611479555625485191362469614092641227258744048559707474507021867438323895899214649548881371071569523200485747111867067466943684035312655473791052003314823401360106875761299006063710583269294872789097647956636855475306435465086737771573443960002217852645807555867865039029654958081899655748305239586080455749912715893768900907274495880489516519048162181606107751050454694038100978907492639996591823219910752394603110459173812236903349569246642322202028375797814728794171579957352321747959881293172764683885360504701783916834361786538535293447346173531332458662149755858378894207642073103640031480568294041237898133447674485314579211847630916909521078958644353481811568658023094749465732358482635723251217861748391923458992887574955395210109040561333197379159808724594361989475871408611045496279376492409054193505009418377153360394848385510534876329779965792666619321195906046775627297598349000675921301879396221074862968250291550078463480805021010298049294361512975154494053555617208724914906760844742443759888062872567609752668901561543571660476268010196589866122314445880943548241068670345472909676507746359718402054659781647627356738969102971640505611468946626393145714398439554187060318428230372519487272754626202898510958355463626239487522378639284137996625834254060500420347837730084283192201172631320181195536419084816094681049632044447689744727047566643168738446021741284258079127766257046318501910900349694605650578048051885604891503156377679451446562786345369280009864561792609472214575271680334621232678304022590123341860130508923548424200011009682451400117603886488903214657692021550912794804103247825371177554877076993459599453596821110628538201784852388406243535216026123824278793404090941566845196975970551662511124571379768611967743068439051095961700310773392173379675432735258177500033587343447007173479428044229346772304293474579913058452366944397337319719651895820435422098228235310680235810775062596117449343866632733718201085260007643025186724309663937827320466868970696765532377543053460132842669206568115060150221944993750590229383275869613746970422021436471870332328923531969811711906264257121264493074137883856813637825179208114269871265323227970671621139290868859895707288898992694957960571540918598894273770574543678612102495073585748131078392924304451560295152624229601673732311923133371760378797761005952698245310122607517202570582409404830870528906055246292607673780847904797251883797875758077899368491879673600084772484609965749574733967669788388793446726905775264850455612616369999051648527327585544317484085820181287337084060794122808890999734020937617805642028857739312202592154871121456316594732943883073957077877210327966579617366648081409309848900927733042268201902357617157856526726896057891820031605484774613623546284539405203224838164675227177097411748296436416564530815732885041539972138778325485418788267106276002773094148494931128856497533193825968860204733663313416983551832245915685642706755210410213956324363623927418764754455791473673562057626044395155075868030078118903910352918663473178357156367884300264390202780092264337463834232548115428849510015744838192941770083533119178873712989767854117815507759608031657743559893461148369154259741889951250406229537654696459110930411255981389067262280124044395662645403541730421844457042804679402934946922671196588044465533741949611116416656116527698553303033100942095493077285705658354634477946170078089136271377529364685955825988377538810262572323444631270386504792225083168551985111463926912891328637221024313905811553105130888139270330698958304425277209123195522347850726458162477480509863121739696240050852689081304656459933556974226656319642127858559103139115580719764614072078316007021981922362438056846064938715819484063894964137056531787856361349816734672583150542113174908346532863730910321051986045671270122510728057567640229352613049200755130521536747724583585718419258463123826305475087482790449634299896643980697570717877197723058863256043986427964022708884102771949766307654483589410810451247121404502958577554594261485368855449832219785041620164351701611964383845853693835433811755252342604807459046348266518880239496884584799748541197532557847427479401489224848724436982868709842758512744057581430428227960102485547937038553129363065620250520320285245703218837382635425546027510682132004452896299267282403603541903281879494276325872465425944464544388333948769565223669872322735454995057527536946760647302085163515128654474557356385407992224538986569956212945122883802498802174630697832453631265158753635036897144037685753770043172082660540040135714075028802884014416530507178633791032318121788518350497781224821546601234766245973665811956708763939861887954743187138785652301400241653155130044800353868027363486989017938461957031480459515733340576670043619501128745604079936449557950961939793514980132650558460985030750899402385486440458603539944114529317259609670145578550630763366633422065209798196829168613428942515181081838637260282632759423022657433734744879770808178004708817179166728448403814428328146929541451492676351731171643631557532978109845750638951246913810301259517278101006227839413307788990474648310030739265899186877755155077613551373297171400601529154685778783661817481150439755086307106408474890869455431410826046378066989622634692214718774332828081177475751830790956339253237047303586030441785005799013622422778556253348717193840124674625577805072952735433017348390276763879651330741546812677672256191564068639184083086766105525560704675862177167471510551908192406969040547233844478360478858231265464396583202955322088199617600821206985620717684117912244285382944186131782162615119069447420065345290170530762183536469671543951674088385466999711887877695360826390385386856366191567957739183557342591881206013045848216067661971334846941170816396204149034676077751762095237510974730868990895442381344168282268603410274741377857248995298011862086473468245271320275967653956705695184748645806533957255276514632220880147155399311648361407527230705986192678484406430134074975112194990216127704433139065812385499662950618144670177119895496804504676713151017313600290275213676732294144096888538129438348968902744652760133452704832853715501597281580152893731072027642373699974537766560529737708526069838358669514988931911589149464244505918777394797022136844962505725761338171740431719214376064371807525576619200078531857633775451355453190556963561168529525406391456260868886896896770164066188713922496581074316289962618064368714397485322144031268001911219035558723004863165726447857859993664777543162367930469764605349942170319507689087004080113140572073006297677406883940481796889493991060082239072345254551294365867787304473034686766227895959021727516493168184824480934520169030676742559524716891651336209172112712427657159455860549091501514562394073704035601770984502316484458525854239260297892944214276228908821954475546157572104071795989318290227254236577444647305487938781914901678794898675157956391921785719539952778653387720322853479176753561499332775666130933988634812001549162112510760521223495196825120336835808388654205821195695033985874737726078438889111938486626815875863967167709447310508363424852098206590344973510698537700855230198258402465974126308998919835774947316243209212203948000812780548209159999996342321767319176111406356831368426321521856569722734068929346390061650985978643064093818820540065954054006221019205957798882946412711547057188566416521384409582723157026964149008468131003019997938563717915395499159149292398964285449130758812932820574635395752398099551797635379769446404506771782852368065040161991349690350802474881152171169106440775657736000127578184706987695885447022215115911825187182990175354605883333354638025645600630584374412470157092567306447404223969788767859408296746316398384754965876198002933222284264707115020863779188977717531436767439847841107190387161752298170707185511834946953693856789512723167936383636573563505438561122655592895520356511920691621378586725546497430768092592991643769428262096777496397771730364494905916873996788060427199484922737747706994146367886676061490021748054958539925636424612007869554778589497166427534170605743166833492469922075467674915868509558533654638692164068818492569015991221787633916119680182292964721045321489934606783207142395737469416958189359356287677549413006500916483980092094288599791954019614829031850651651249543341639671507303116283382336380446800765675494658555201715795649608907352950872149025995536618930098697596455963259807120445240078290800114080926991808674478740069042789705873438681164968900989302545007388002049886264959361303523214964709981767631941884024599694728493635298171718451296211584408578889363823630380356365076499302946786127782897518297321130540469598159840102880923900849044116315749024591384345325804807720354982426726206022178556522499440714207591267743755733187277481531856789074303144026257669550967009302348559589551295148615077072202815112196318813591641332352015230403041461181744593010558354233274258674663361800891855576822563427505866612150282428692427273217962545476028712644654747999925480484339435999577495828660599449779417415116905275669892396966488620747812175727670647884288135384693280543330864437942085318822616182960463578039282695960241068073087460140078545822794701524677854671665814317743678497096155420307105232358472390635436264564994050816334187087287704517194663281257494323815812362782660488530287471064590348646736906823231870679207044504010492204835839531471245514640644108724773723004343761164964985459415172376858631244977163862943044445398574154221372553566488775039049447465917350807462493056673304625325643625450987995300458518147213189186991371162891099074280094329945646125630086734003651382126321447367556534003778815012941594760861576886437632787156264499785615682049295570329823034546636180799300898033985434806113625090451211860182971879247855654130555127826137840296900032176597987613744242435928431659948226035090952666969760507470008182696309824488398586648750364217636001324478599543262007594985210558741896729725333596757763052651572685683357685130149223832289984908174068608792198071120324059609237264715808226366113682296758196367299232715675394717776264851978581298379409429134685032913607856492872815007125586113040042375660394040452872403856285249684901616513145998932578728525713569414733778673284289537196514240436844353903534334478882043492797260946202683253958093776500488664180795643850577483040223526027404147692919304413038552229938642973214697331636233930173865703004627548925749583435940353092979404003385166440392463562318655347821880589956259210725645600646508114806793348325100259861749288917131874682311678312603379099819881124806710009451511438762970559415583670306979740076077078899254381504958410666275524268225467124346806038070794251337409281016363736209865770214405183644887460219798021843064762130592474334781385388121310057385236077643605397192484735790638562795251122828960311901938431619292110763795874094090325588174224463154818267725369533505244609694705329346412159142625977414409750324186816435280764306602267951941612662964555004294738338643950005302391980079861604339789283711288084747261708260237025853816386970927049987439850615454405493220753778902721583938455488431330298711119204943964228741768924930521489027792238870168866351448928504644617707892024686448527613138710875054733862270931941248563950903690771773099553947928412593176184282899946592672883184405900574451012144592879179088125826036731622908568490767724432337309663867331803226064723603617516222282054114489517007155027776196687176130566659065454698801994959456507882572998862229186212607623071076051963562218037734256142000510981859102567535829876274041362752541487165611613112422415943096999806939370001739318911819205285968458651575145912708614142872517514737606520088010441126220290111088036744797249665199098461722187870781973924351448213499002063684076509236630444193144924074370324246598886113338587061698737179440040819974832094465433248607741269963570919929916477265489996756047040548788688620821578843423346431209660892998535180819069119968076258897845532149868386602577396010305778648287592852842697139713702416573668385365725117751797606723307947663391576810539860149772978099923905765443974210118459189902464687805681487692801336692575552246147414439947636168120465576798075377180803668387946289817622554209874282161446862805446264697170529435879205123510603652883636164147255346528200385467064703046009225643890978988190499873445946647884780024731219032520691773858220588714251666986675334305735294922531605455744975758605863496927593019309822707793375418525527222019539194505985308406930402047806725982745106964013341705454375822221357252325947484092729593497701563463793661128954919039729081938671969728436333076931419701007148297963864553340862857792291316421107393569877604722873590989223248699774511967340781727160109111302341277433418546619068249124756150095584388493279603877279457880696986920099051429210522518585620735856979079904298108834730843017734641791047050851525296057690600380130794372403926349510765822507171901352158386829513039289525998980800317672429453264916333742179011553835913764188280773421684013374038199501228241383377486167500942358397394027531846511755161563726394224743749336607592560032014122673575793222902399721887917512664636492166868126834815435154030489525531258989769533824914311899865112173661970546516404804891557499679860427785587950126903629549751977946700194111971138874665961626481690726784279968903074595713099099635299420605081463823138816026046718113262906313536094419417962435697053257342290010377644487570905087722766751822659367198237033185311551869496644189639431869960116870774330066950903341041314804779964035868524484330050037779566958866442621612988358832537129522992574031032678299759699386769881028182314069676196915605442464174448971957831353220368627236280238940176182319487479762774623053847833865656644211674385387681601367788484580324769815688162582230757172014052723771471639246541114878371700169406383950516653434588550722845623827158131454361062425753334901322663463024590459866469039850800249232099410495392582724780341853426601747788277869886341683059704147111650182397738895077684108658520508823091279652877177488937217028656509126213083935630159966412972520433788175940416262386782947239005164222722639244373488584406303382205995533474043471447609740014778250924952674067130262747346520537037118451216957806503336634228994431025328615714537035095454227314730968371628752232321666125531620820008715977850042785523075071658422764266985907245891509786235931143814745522839941814818314830911613895941903907539809947474741849110954707384036421585516116342737130849989111902678886444637166036226953006130749230778719654534950798035203888096659122047748514858867311779575941882018299185522895688394185782092307377097299911923802174828639074364715048431871123010653544484246500598913021461697399961654119661477842686741076291173176478996078070660468370366051483371571236916220991519767058053394881653333842802672103261586975853931449434120208541004347665628203494874654873234309859284721016407308687166176412987525952294234976836178992561640105116012742524155840677076273008649958191269735307153952755002043413497637858664468847789285208912919377419526555605003658632747010332778512398002576403647694732070266380801972570307572774628302596679522165552348099032017829934361130160096604846579482363504446110855405957642132320081529070259057179992091860599608270257793307744342886698185008367628858650538911937640498649157530906199820313093261551974267916661105599993681944865108879314522057337221165991637255087112779216213272942074812339751858524055178083002503568681424400148947192164006678325177745845721151009241172668429230144780203341636871409537622063115877768778874096688147070090969774569544110772407386935904642644063902752804980228485790615986650051164921811730398207694765571301104697378564365213341435441884046118355575799680525722862363964586535729230670979815831944554476594621671295470482353817128068406600291532983337411228155543333208789239627538983825279917357174669275634248109519626045880221963314814961946037571075532735252708687340685725275895855444611312576594431114595279454812572683374387871851786710971760294817281611335786069079331225803074233524010469258256956914451078732943198293641844111103391396382817094386301544462720177586291977362310024474451534978367671963797994955372607213854908692916219507169128103679881634325468584768464817076538808294921281231469500545179714368195805591203212585635396909964422272458338944662718701349967780578449383919850375045952423036572332413944136424525087187674508064955832681500216710666783309710684743900523271441437802336497980271580442001500502329324103989762258690204068561781843867078147661922286926319219338702719160871389058942067677523963136760241559594845846998152031323391266119965951659541417823493004387075223466902029029478038387575529709520050518732366495423621737443915917551382955054353410978243486713841758729699124816127823174761339802968347262422670960851934637873222343868431257384718687584313921612241514761971577502905286244521758195975743424626386434462258349978338852940248278264263333764023765424408932002874383263349925518028546830572305177059910016153108011590637154320129272287421186635118498633696868471184145342451775902884124060965602525283234234651567433252500431241002119760285633074823753589979773221053254936116805259930387816676615256713828037015924179571036500135889643952861031605276275599150464585549270942863902433686901030904404287237157790092288295088350596841728540513384199697521755350384535201342452754660127156083755708999996468683587471557167164698050122312323880811404485934545789343454259634818723493455161393126392974674517097921341227655588804623284382089052846421114259130784993061253560948013630314433063065199110482565974712417590367575767407251041776603050148412092162891359576440352290252365163461480874991249103356425344677620058415251260483700869128263778319209637137114884984999487295282671041628850985156026824046762055000204335320393852173438825056995485860354431141832830477952950042497610413918990858564374576498786346568780293295565906863187366978274980599361220685410641395087974364157676875633660599882929542501130979634550399527947291722347333220900889885271455323166669930633146321425586095369221188199979333107893276852024577921983988136517003510469424157507300700912780676973374662440804733195317119284484958922477982084909400456931507412615093857844494006788925662776549248961235647642964303370598196342511060503489130456636646882574027217330235648103535336904028792082495957592315320054591630888480575243797281872634880822127446915707941412949267001023794676138893653766100212443540206701836530662659257564590840280410066096921083838826484884475867420910597453758798452074714336129971628546123337497445313917740414447807495136054300953438344794608253276711202692267943366025454206223389587798869119406524298211384082352058385238275823051097968468230989549553599100025153989263980232325474934299788409728558298366053516090646342905866868920321176945382170242304056542101787976186647830052718000874271573706614608956770463534692251987031161434077968528011234595109372412402912911165944092517711748442632482009974940580937572447650971824354603325298691624602850642119028382484357139099579663466003042056876328786436767405336666871336352292303713613623094242125671197179935843404872194928624645654852714221103276710834153435048622156477979260065669364928303719011356435436068513096976851450136730430083458879818103309442539168786746765436671974423590437654791047387720810570546837501686992179852458815891797877423303746238500780774181129069776547166943969940665807694417958279107662128897468061301345504688977640431138520707521484020409293819416658549100131148092670681332336141636575638514375691973681606433393926267109308925674965594723396883201940248529219082041815449150108741244878419946793639293338092093450328187399792421991700040306186164622363626169513655121954641936187085680894886240772794913057141407767901835965446333965382330396727989476588953467973710631502741202291627603949038293269098779773551930061184153956114203423870822101607059679486353699907081324939367039505023051360728016116978025948759654652204443402576771545689666925857580705941499910777791683996022847033815736555976512547491812389274280570138166764715339140908551990614657281099597684002716982337160536701232172755958698736689604721587913544093986822828005299533586438693035206661722273341649874874022119132116711237698343795968089072071016028510932652366436932975985683610581812988912487892778075391722838629098139603706669541127691709676260911449648631735201157846977611918391949554726130064012104507331480400362448664810814539353691359191720499502727764936756682841687776141858695031080385513145502549589838295644735371212391246872789734736986557473501027857529945145266082148783769259595322635068215296535026240897759130300939954181230182318053999915136146552143820291004491041371644953277672815399326072895792354635802267523697337855345196392825921845714191988960376101592494867983021748399720854182539846234458666086699744921318374321175538910688196659379087740289242139646260462917115583080872117869985206875597959233597242793311520049874771650567338934506404189670213423804522734657835878897126279059830056591969387989417134462010153814128689496314075168846284299718422758588473998581216358196563603985429831472656857412412738852868389828753284284009253057725821162564167777572202127876326365400378085800580791049590877099702390079580476920158426818149541537026539300217304891306286213754994434138966309218822086813791654960510183213836712958180165434674131967644329435971474011098600744461174794420434260448366697361438333074392381136113949047926199101477769649306232579447337713334755561910425802368063875920702783536807765693915866413305470973546169877271353304987953528472013545775854820077022505598866631202455146825826370020008111666449459448393153887304616275343433307338215847918366778404997665925608217292094741442272649283440752296198092170239724062082405849408845639540668662811755731272726763179643779178888655973017114667757529440329634856794649873177260897486410243819884489994052927674613084398689787124867245471590031332667917948086230091880163184316774435269761381006856746171400135968801035018550377467473883906770946335891569958680844586365402445138407760544370092475653339185117210026913203583389631564193134239451166033321287715735658344008788434509876630604964445989570341500555786218743172644572408118074739452869056974094959858970904052498373371974873152679887387279945156438679203796841974392602676557405194510126089204141792904294281001589751093907539317404068874938149382956073162339271408444133760208025057866488719023424026177587662359340419282522602209753967738795639638659771312214995334310464152871430537901761498601081582667446748909853582569116066803804097587531770601540674577597573938724224466070992337946823716683518842524322894957816436118332663829115493335771302690428740659954828147287637238674291902909370560344437586330910031408303199542245434778749678051496419017075995921266014044825930654214898661833875956501256172860424009148173589642723672485097603482918431726006386191346196987884567411079432902376202192282842106335792865732629844553391517955649719321380550298208930955884487533201288563047899051186692966440003883675033623671981841822560558011817789430722275593583085783201705021031473908077881533020012365352911895615208778579916842825274462743269283487001614560062740863998128045757810209976945093580589364535838340817759328076078210085591540313247444635535252265942805643320035750086194319249083495062701947927799605361702560474912331987254966350679241702599052146562833029190315876234689950480081941018117618671296823772825720705607139867557446480640798558156661871549980252792856873896370628903524660916153872166021539596393709493050223600822781335015731512313194085482079468574946891527018130371022659572810500863977373183651993277797625941378868544179779686204383292761942986709293419149443049278474726421036462902382180602904164335613499332985766063123210532190018741873208945754942028261594065170687059157373976761594470627788923666672496118692527550002998679385641111996155973963970390641932502830767015113434801214745046009318070845197096820616054790065623324062510876733400675514399741124343128024393240682279678385926599316191261344845542005118907878394515647939860121426389204186132218920831477971713600885696908047049651658338450882707112887804190996318499237074961198775862356200895634525910082647337347109072078248585022821758882072322709642134461440848308758054036421573106271737740221564021331282098828904741074865148748386290858211792241024560019309306396788423962319451649621133495611255182880746097111688308497748714024771069429869634865568361700088763853928472741918788805540788940162049153928316631476423312888658159536482993629067354179093674805635044743352489870583205726532473152713361770520237970391737975313382893050829078454237795110313691518071192735267446816158329897244027599650941197805981975504269336239234421230076184260803246867023858717453976759997086127090451964474748959790618174741250644012172349398478919517445067629050477293393916629912907999842875420693721622362634885386466966366593779391616764101578639212484046196753601836783567029998666228585506534222716276847194902567849951627761444835240395625757323585084073149957095822425573772962071132817188379093704210470105351844124487162119449858346989688452134588940357151255470322498931238268133956513339701603116372918177124705032198196440229305235044119848516764436506448961957424034430885320835489819848728167849928623812385943250526729108004677136324774373925883495720288260655237060130392855895189811273161131189409090133734976887291229150020400879412401603280921317738484153352742901440998135971799336860115791423563862108624874001905721241288104326085131306205809411819642494898792468177396867627021256381786077802103393970475808781402336466272695747676213622630243088706765148975414749999844607471903159890088154288457789169526844115244139129818757107509823041298717736590476560259195950431897666265873552527406083484153641905483675158903322225041055158060580181102432183866847260346466270594924446350787860605967073881733331823020587942579383366830710163023071542052916003105918723390700561670840455341439584078797584290759954811701940366580152818970504531908328378680046085080440858989571225778870107906356529536747534372275861061956378358312871968495241567603019409491558979848931315598741832941650430426319709320620325493103800976256914505561248790547965306688031218648667125430049182668071075258410548567009926422369965828090975976723141655143264718262843919133665404853850949146296441034732834602391373864797855731039628902857711762870523537714942563244531172505127716992580006368446733715852465776125362675369043307355316995513221404206871687148559954541872871979741968551147436974594666912319725079322073567691275048869340567648056550574676698769215189568308168878735270561109167060386687992617424870662268432856654997926137333718986996496129178600368255686833968899819694642536317865695635238854372576240639369724611281240690471868724909513657160644103632970916920966926239553848244742955817546915150313220952267417538081396620314154153221283559615609178103543736988843938118580404812426518847197854684117629045783053806445069696991029193111672087702421874999530613107624370897127838423361333293086025702048190717372922190029215146679908590036898887534108676338816684337026569652505098256628109869381997819617082901602864245342471369431848057225444247602580782101177662578812066874616365750288559881114843194576898725905065313201249289552462913489902700870445994365310928178658506321138534637832332851781730278297643459907565894438488915085121509128359651340235011954006270687698431234089384628676148592541251398700680059728973706234159674875141769788707939243834804016320557003236204074696944257051026039132185738682825365999734651943902196307889130011954495830571328369437672515422621787884774910953466790467102355113524172929193157235530065328983643765577574630834864241639932246443979082374501874326217242859425327402382392943109966048997789256356625200623220492864909617845353353146798288933535334310276545038077238600009155415402846470202125312259305688855161078346266876011907359035946628679568834578870137720877394590356233317106298740115869356742339976401287205626683261961764828912262547940131048997590861126354777395910449691309648759358586329292755931309852762324929072321296499376010474141885738929993567628831869458220063465437291257148028268892056115031394257468797075137503293817247002619588479648598315108448425354997518525755594460124207559021935314432500414168126522005545172381354393099153592212488140262517013552901168822955572105826416954661633515905553321742721178738781622039246043981287388557087110628699543720291459800718673408051436699990940031424391882762899530204611088344174806759662413677741931845388512441921793283067287021590051432543469959674502002208144805663056678225511202560588937438375128343264523670754816942743414277668037752890720720562067453599630913973353087931530834086200099450762098286495485144825843745932393105751509284634130484964075419378380727924924065822838543075614760661144138902153194022913130099050940655734132977362775139055943769259125521021747026837607702466770760976421040841768331516132401719862692094315667435200034747258994386357823950357331151839094074646994065193460702836598021555518109156793078142796226023570884935365119907402306950649304007231171566636329864108785062071464880474127519111263244375763359433892633776475932290401908232791876855018303971344403508293974330882643846905214631383830500376828908671326972722487101095505828745013274409602780941163274431191180052663705426236768547912972077275151159836236049827431639868471751356117042332496733602644816912075537637528435080001696096938125136567468944172200099362146639983541607313077328700510423096482505251269771997233018770030487653419673612407376235517029019132954547616364754446799083917984963479520248494340776879822852441069134939125730019134708219099831772668738192046738487925936825177315507340151561709832499938910896839198431428688013283882109934799301485804638488911000577159972082054253511095406394560351620173482672860343262958833468229915395663721731042877382474863149173029693323969907928761633884671778064449042150241943477929399927032746916016270620389094841740945407745293852193257507466660086124348876191175752291895294643628708239009721966310241731954509915919101924347222319377326222414027677440339317022282497139502348703757301231249763855164185998743125120332711950535985969067255903122001955249604939687666028836367982061031794366688677274744374402295351110717990710087264109071031259609501885431481633968584602360439541930874868338107833206216719938387642366541999130180736627029091234460622501650913299738736063260590931490932252472068160918020916815920568381089789380709447979538686317573701955077304069931372363213016877017828101834906680281910707915415590188663978802503219658383029631540227827234413476250448964533520898179125598737156679475590570809210099284837166603049351669839346329321044936711440715885586350426952576277085604814010260915691403370095666453675398865758599637296690129260358486001588940754037101656765229556133406218489385952656404462085094841694941373136462503538293957088802592734717820888218543520101705123756959156987559875875029092230817107368192932665442391097000131086307486548664482828713472444216299689531958842440317847025761061919808825474669571569277628414317127383925408283264938424508814698526239470563078076628956853007643542409283074880067409310720770750877021260317162448815233273802173298875875456837791909451315927249524274340335254997068068401199541872944464149509765794034783346527653128863363318940347157926253941331569589731600673485569309611198284321170526756476347117976985543354160435349217057017160731180749812742133501554313208910501091410660726485476595284999190206619802744189523399062298353775141003493274849450155302247290269184010047072649338382762536013126108828548081538651364139106746281255686233052710580556242882182583147101182389862303882444645841402726503668122015616458617428842120205164420586690143061743360212333683564404483412834431676161823183640355977361157543142621761844594398681606576160334118106242511941548968510875184742302241256889906904019993213484174039057657854744358011748065165990923250533708758248469751541821916907302570128388707169254982941080489707867522642813626912176935008725312347610216818885803268549749632786391248450856535245744329803607136599668549367233136594399022124271822517817149689156541555908073249980755851391840925575144147930773235486251321275579960673019195250877993785173276559680930359921804211291700685120484577862705526431552871498535564956285445947878862929446716704271001260986205660707726710851711315962451957603420899057238286707856860792191958463161459932477047626346944974990406470524892496059319649870396452994658293604720368714926461660514610946010103129605112829862825469960744417678716686687512959819821295423119652433183569407215862471579269407160424817583327675329419495674489925228980905831930235501057451733699741490454218432237856227127034464602054572647040843955321199097454074293868583525128863780358845325646137160405142730837618982148873016233746485709509366189307483440350654808211720136313151457503970197375053487705591784495681501734640333330067057054685538569973524375346063173420388634191341860616596972548970691824930472313993240543061767072839470626057282791659709473992433865884258883562143910897390137525367320581925928863187725264851166057841459253867853690430172522873189631881632232319500644658639086983897473311941529847420060566878625239363494372806983631605788425009944618158824575493117866700142191654862865549195167074902764698396285586470191527182040070689709497336666972417476273754966965796948974751252719814294447220777692284175841813733548159777893844452411793026460931185963380681509063451778618250642563939767380248453626233504095861864327576034277651224730631372345902885602300944830542655803005903465689794007215101357068062070778557213518843890794529970968825831178715109225630556614351639846829723143418370592806418241416675804275752702895966701721068001365304387672282204118772431396750629391732608911039584750053664964921011006317176479840509808717884187655377753723761527387930364698770447236191646702000579702127850654179054968386940203511904746381598449560906208321541908663081629684878479820103002507805684075714955254192819752578756463569785405438443995825910119276737309064669578098062739911624079551397676902491000364596316455635511377302375427062600009191164925694178224586242169099303641193715418473433533506149981485783365434589584515371660638423571351884388552684619844858347759981461137763427479170630014013931406253966657305367786864405908697626959038234524554489061283061022785580043510803444512597350483536510953827177086500711673514126164299331135729223012890275115747952912109507204141575534411417103014028135244879214161676069327602696305293761656653944078885440860072880133481526035100590353515017151083201353268330892127050379107392819113877864241390721383819625512741923099599108558685114173291396078495183677161030451555999238688244450561386919076709050265148879150137763585120165761525510019480425118597064930992813387319307673878082250858720163307037920888006524015882792274864403855585376547809825454748349540644498848341493557026693700142382982437154331160562693296075542552231601738886735233741715322861653558462888508377925980647375129567825584846693470217683092677836733613116464497353455876107762262750728395027959005404736593216218732866125637771276883242665720772936434548349771962784809690349718870289738411635151274453977743014531072472892550308157334941877173680826201379078180414494255096100128457358957102606059896230281990340545722366425830666490378090781711665581795543928803943450064661916913687531601071960507855064892644819989513830249488477628239135727613645022770406944866457473518436417596645529963262916976939527812351747340972780538706301383581543490097107137198991638806892593062640753245345091506893738897052190609929290990556142442717878089378034030404200360293121976431279897227694037665751179983355129905221824628053668293372642315892142370985036105276220553592542312204602115323963077593629684788154167798746498006539181839091529046720816085719110398824952013598593926661216270386032225677481359813892780745860401620459250601522598471092716537806300416080745852730063918300668510943714267398380179877032692543709125603493151365026505167814884246306918080425017798831239371875063577618554193469599713111750149472030898143967346760634662596051297370301453634116857987102603518279917438058416818131649704458292780229074728438089228823827059583426478928897470660403991798113736922575276429233838402157305481822340709939517669672682789100310405663828443995175806014531184068507317333640517730352486745745007021550027467767321821212744368246604054743330246809105264219224031282914498841699394471856566882563693690319174015234985599955946919227503513200593517002398300090607921758503206876202737114525656399587997341690898535136637121695770638008882960691039203795019350310558818469309889733553600907068060007733134871430847463671015988140664498009317500172216998562358246739820605950130670500126735637044474769424671828970420452449744984838551187471173834004503286176440474924816414185582154358091855256834872931533639378214709157006814274802003769999286761602130088203170718067389368962354136407968555156107076588548143110022090826619669162260778223383591669691544919867197027011855651094123258843926653259413151734641778369176750675314040139326644596864771679307867124214250077189969532457452797163929648453194563470991078366537012761165127631453421396930494942824030631282355720907808972833653386300790036897217762111658646483779846780424720912495484195574109783617450128950559515207123346515103229892129226276302307469861789608090280152582589720455489547739389432764146876817146646762088638829332466199950990038968757304689842963900685348463723370405236435141925197629365801150629176327261658948372203285637734048972124266453235795711629698773754455088948672351263889665034219068498983941127997793781502890054563983387790648565021735748101577752174262661966721173716237326139202235805541663908465025513996838903607951957853408476332527720511097517766193352335214831115578113882893498430111150374963226051393676816728551443516184915084723661877640784254445335625867318097795208486604065416116377938390585532235134662034925817184532040128601167862503875062531202922720861093718137564296213617237900179856885161308663458481272215620060904717195723213033945879513954749072630885295549549902399593693156079520660506846493112867703799042196446861805780468317373708688247225317298235681302361267515374692059161899730198004782478246108711838961027392019253552561982815126286780956557144648034045328351420470322025489976532514855075306024605246744553681834679022291565417050983322325923793622494068929895619779100584320017468269872138195157065953542580590557729896106318642350688317469512818101340273926616905552059814751788376528578083905362087091552128092773718372713842571258241688238423634475113438459402673667147018542393275952973135175042308853880956519227132246667275827307995204432908008225107070110470428880957267859531182151601440736808044194995614627615063516153971924100904649912606054065117109979333288922596433276937464681927889275566246769724825847368441003322112702010816213872827056617053687394815863025426265234555720459159499751698516478079130667532588877434411504059162333923254021493372917276823198833985656738390870281994500687515610452365896265653733326734966669149610669732580922891066498700975421174347459320507554309398047407845672268659837412063819995602315358531768708722033155364425865862140393406040308449231702122811181710124336126658371348930984611469905145447193122300542699059555951139885314418661713724048173799894616537639594474696954694904584295402968705928854838970453137808026289828460105291750517180048560174752635624248504298954368289782679594780652694058267239388674202880822898101475321932032828872491528167443054091837324527197251266597209934046588848745763711192236764851571239683123700081841843565703742358812846343002159261106836449045029193505002528295705023499281037624494064836816464019492515240057447153309867418823226067525825307693379189953176325793650197782145616654552974370191895890453604553352085527410597852867438829719299551854958604628063217343561704248218508180971225384623713279471044706163506296898812889248400120850236290208974087814803000998691229353846630729230537278073482312268037756831687564108327430035879213823846645507171909417329977692482093785949356009329869903351149130845559730552270784615294473320831957496743330553798063258179292333698436498472039411189428668494860090746257678985119039032742741025727438033177715621953181308025475893703614494497320242240919276994590747391011731539122310311297003040766913263275947296447022784232501014795316990382747633406712275408856056194813384014775784053197943517417296063733758689532342928895166990964573647396150338317379127928829257728309882102200482650050050554350249608445710176549051516338145226914171110936713983049236471400312995379044139925183316047794446326640468413819776931732827570585911426466689554911746234917966274718487914945400768790280841301229588714224380862671262694577231427202454405558127379825178593618847117465166005392346954665179806359587020692000984563438969256763805067143232704839015083680765018652250641389728377566997993416497980002233955020409730033285832600277131743757338578106780108990515357408933615000961533918190242253285393282961601020132452274181355022354780600547192134122128028053399496280216610355209329110262091481008100408325537106219008947961362893939371826909988791802258007159020672074062859787312972684795037565191267793990442984665095848026483257326032371985281798725430570884697578340154769345989109144442507398331500531117237802711346277869984951781522185014508224968638934739483781816203889485681318860534389727396534037957894818526823168363291011575641347772776979029759584202439731178914046296018994070686796478183360011770463288739239050446762027009480933156713183006263905415646782882277594531836575918990742247563867835782025265055440267151579045977259094024231063327919217856709428063998532239802553721061834826455255174506266435150460220544909895550513574452933289330762441709716780546814735176930683831134228425364321174188180851135427991737032159726700606165317892770554261194472121270495411030507234937994536875600280327306408455833292757711845543533478304627471534095913490173309228365066065938924890291151659913317020918489069087720133889983745357338053007935721525916795568182790889181905966135746678286344628185983821796806103236046103935559005198781246640227217394486201250357985329454458408331888765912508880989195642196047277266557828790259100906474751752707416657806120170322475628375503876855799222795308545194050548483100683614859316086949060642711235709769295921799645734974569927463375321814863091206068420238684320569437552410435177346871743612569835288059819834262487738191132008816547707971974238290169005091385096771230402067724695430911729947694593800954281573242680210675493437000818476243114557000164856574974173033197033744525041628437027851676012368436156919194934779960643573778040874535774632958535459202543836166719877657757775437442759248106243967121838228513377716020087450423497820152067363688701437078229373162020658948259135483483702356986150535187283240340926320865946556464684656921256535608842644308698539536501057797771201437048390251543103402567692793686004053888928280388354658181149131541848679237504072656148787874867106296180786705306301387882760178200273985334843649353110859318901431886139028816289297339166421142700455791981033969714928205890077345164126223883479519654059971931504571500045429238053411337967132696855691541908643335334752523247277409033611413616468470010637998111869459980392181492759555190829645277881660567858027918468162067275043350347687501615290408738381996815434118476534938164290387161336290513488176946073258399801775201473590872880315326641573163436801568784357032856303896731180303896108964129783331775026388300065825510156695286712558934582432283868258422368439103914979660515691876981594813972541686603806215918382635851866808619557667086615815395964157495365837191427537988714203756387964785433805188345981122491421899194863958953909482817966539883770064289230761053335750028184279670946660887456361641960633706481033361330405476871616136289464410075471000888779323915375778722256400551041051228037311658894134771730332094385899864572258149686468904172171445041807055251128747813010706423279461238969696275405876618968735274101373057322648924000161824059476338352522282876490199735584749022405614203526348772029197565923949120199181991457627773837100662880031503693350320683588593649980230859836029359161629962087283482774528211352344165670210674151687341268720985115104895744891920216390720104004537660917746895082407303251851530087755869787905431611522077922138824554613564151596987522032450959232722094557929447064622966031767920486302242849352317750078346767351303768907982164669260988768292476547686293506559154703677146037913395599878748442386483409481006837438864487366707198582596865384142298170021163294831645736854578238322914813827757744588526714060461353929144929145731647499047746878666199215375725130257442511418130769816202907664654669429272244936560333014051700286981537486283565322834475876456440173261402471847165075585638464979331980811850133893000229442442637678332248545008986588841492214041770543883934895312460294039884641461404525945215053301763043600362408683999309948735356022758700822639847582004663298062982303297522190878470708666296607311664314533607464478971710588988269495299670374399764254749657514590353574516604570528729121499770256740657423947612093362263613860730071780079885985714988794008444279593188212379339923204539195993494380745556165477060373642884634342695177365604922477262414263563379378432423832306745224694626877891491671660263973510317023464437139928460389131210298194459780967717870135545191155319155283291618047795929327757789313573214574572939152672246069986446629836499667682676060602611423729649847873466385620542241128691353124563868250821289312307251903428298914640905640469309048995472796374618722672940079170785965662617047163150678493926301472072381218391567151026619820567465626662478150104167602451094962252725398098726233480576325151041603578031076726525784189077424372720139528611751339972462015167536751951303651921323016486135047384941631048199790447695014135299613235240250821799583963618442874947608515130687391150914973652649133893062891466777218536674295308909665002797622582278362989570782147719730701063316030150643640087688344451399627811393836170812560138219165819648380806431043446463550940341017062366809333526400100384101507831370203133002029769158029511635234015596367515007992565478648241019875053849688794851786205065862606389969380277796728714236310082703022574918764097420142347533541164132260936454357571234717248621488296448514735447420241725543129578062110605094785952134967670589975352513938980007215617692838345855145866408467662630919413494530432522618377941912448473958134307878078799882766912739881961037300773816267667356250967590088857536518238090966066246416885283252795296851921408427957159867340424573735632620650566269165974403749708563159522212891815295744852463078999403441116270151085042171705934594091567664003706338000036477105843638376687875327210408472222566449833417810284136505457720599307340519733624426390133933764736717354126421499067754865916330544340757767242371206761502636364593885626057557787223267453433489645316704007319591876595669506297312497526142614632053330361250835707581982185880559117901344487934788177784089153976106124408890516270037598541557554293001401985768902370375912895002515008671478912258010087518022226919806093489542133046271236635343631294895931127459125378059963061114095503895334288914583424813430798638426452782311572250377672406519562931506937081472939825570524306142723981380356152712074823775459472391129993830993026501714351454535251001800479411756131353166324851931715713982853714669273949637048289645313113847622438306728464479190327081299811482506645106651614510545686957827483310855267185912587435618001113101497690354365485859874418774267039679019269942952347922741003208443158801378321602974016627575893925566997748745840967970780349487022542470288140090764198806324575263302515299333197216404377097832244788205921653924536400357788918305777072647323878370435550810687480702839073943786287269665696923423267138376299186756841332141186832544209914954843689941452180291694050413356064342036319063151540269008844630116461662809195470952847388051316456715291534052889436842471921505371885161564700950585770444999520843014997102872391223887402310487050032332509274872369763534094287548239822125666649568144943050765415982324845049710056052207338183555496852772977464054875673868768601890445990042566429777529656644593766682792027590611339497235185368945552511613948709666469560988740331491326952916339516836974515655577328560932308511391353932075134271289557590625914002038957466562954931260227371186543269587584008069870370240768063424383915188874799831768786756103969634860269038556888707547980450355675654235893157778762580960868334753239468484109538243155207165125128405967972435068137562590133161209940404094647859647082095621753767594466171993389104237076084277528657005765538885109289789295826284416990799609606706192385612215880068743949553193416155799333696423808091834206287462617029947137084668833132555912020822248302613166111286033923730091831636027385645809420789348901398825899719412297575674764627950190942019016773889215815447731053311005011328898570036698572839107572211961955818845783486055074229358450065857904618936751621443030383644162706772372303498567234436647736128264700920545656805148724398938281433730139585197742342697417398609229171655516761809772982288991362825268497406647938131255669771779673035276924742233017019427138788736912139087079984013595396283150269117804854334765914609386616894040964180259625388321465982675216377032975059663993235533643350865038062670601720245890632035029692422795965925012000924000855255520617681459035966363478368497862011485249425878103374966818369384442043345121088593770588056668299037777904969084475000538878996271298773461369466077849022176684749968514923515444884864796954535066763951954927106025993171566474428786163857639936487516541493203509801225316939815699657848964103374474764498388254905529993251782935044479868793322037463619595415330941582910908103588124441155483977139766446388903033748114411003350909984345651743773538464058458304816922006494742348185557123826011915500830874965863357311979751557464340333968912784695890586501185791897820170129148405333215949526135862870247742578921000650975815113217187154090990124153000196347562275655837906893888994782108993352656826203227280339690387982096390535153477335442827108470815435912171292975553026535415798828688149949704561178376534488950619775480081949947447084022244739140891624619738197054385733620280056743899886610179689327719024626011654970514456933585382232948129934669632593757869730943679122923113395246423245193109875055480850935772149526667093324580656427992797877544395746061878667223821998742830275588333378453941660381925693013619728493346504930138508651769807097234459551923226341618583817418732285149523325308552604099526539609082475562963439618808763463453557838415696901691452318954599636225024430111616078831277183690737418040493332428286250333376631720283485290639129077673385204725578966710600869395841111354827099459383895158923310043402488801524610776789037694565359905908445062473347665132691838885248591292720304371498648874023805514764805442456419617428397134384595525134573736185090104273559108330285247209161462540425355580461812306357334111726758862403524831193528733321296055374405088923284419833720973248387713485666409092423104909541715716105220650931942881551349085228342329673843951183998946429586456795460328754058040654945766926712594532293595785758507239005009902536835508951699315134351199018516675537367999034453745962102098348853124662751934139767338544731414961320685555124693064388628905283335497506269596862874993458343176057932088292533676648360788751748396505239295897485625304320457488047057787502548361993200870272068979144026184291416314842301170064653164940085147620502181855099643627192179388510200158248736104070117270938480832240719875337776782966886762914362437076872117853832128948281605367743075868904399440731901686857463928499274974763814011569405670142318532781985162913939340181649633159534379524190308903387275987614278545967633299375360099713040842943811710001211680888757623492524094986335233781084182433963875399689669681173342936083030373225006469510900942267557298595364658133023926197924860884656486053000490650470818388523746372856120633363123473358582251247411511999492867395285071065106618693335004411675548985940246178804683577881201703060503553309366893509453159938705305839108942894827575761920903526827505280289500874141287587513862355955580605645514084461344447668153044006756064269994563343516214161425947486535507099224082098677410974353032540611277035503347468608805175811807474820072977131663234668161226370600753071682395198589094604681634548056201703573126449635319658993017045471147881850720635659383260729755523860967959049066660394445402967806091487529311673020281655417696614653236533994247434161819645264839824653347006062203198998584909996926930723724916777796918409923488754053075065215872762272933285622838906038987624383855810368373371287568492416505046109421064855160101209491567019284457009278814280633976446670905664888389856675205832566785682041376372148566674709339469242666925475698813563589341963275267916936116398011035976963912789887394458874211643262740338482283180297031375257172558405603133313021171830495935232106887357153959625577489262138704345243719390100928105411795637269144595674278850800766653023062067483816858887077515629749979277156500199072120721785668699073449282877045209066969152908831376506577369384969387631793481180543984593421081151556056190385572717815573819747847584938720764881556585202709703275137984751449322999378995521918614113477065668405013787676808076846420177672903064816730243976556967699607645342926240082888455844260900068792089607824433423094149978424565159968093726642588478334534235276094448509245908100938375032021583172816369473174966728966023605705261897951417587937986403778493313503773888922163559452130207671054294247682680652873794270595747238304563146970471883204437923886428318085622052565459983205297428693849903352475748962433832660362740941786219028494719129774142789411159129392615528686786062745272182671655945977761123466428972695807333871916384280830831143102521819648590594209953947021655254411222938280772998473231588756578089838756907386729840006458761581168933432550490824770451373249140581229840849683410630987791566371213645577051403278057708025796874924073597444228926782217699320623630214964622703480973815882616166260418122909037170654384628951494375323805734970333831008676029366664745270768659561813503069789403873812441204664541183112011718508543092429944486511744476910085849128910361869841005505612684122296848237633606165296401731751023839833854180201035559709986769189281985146317867508815341024916335108365458813431740490537893516569097680603449571505092880580250558088742500746901089067901343817477164074270495139283776328011916610437457003045105209573899528582859187078101282850033196795188355836551072085286431325647210444845332296374840971744140911870242976547083436996224756456253610971725901072741875311449952821016226783030263315484996256206923365781106265186786590461234765013568222671843508201577124902332787741569403366193618881524753598249360920208736162357461549196692507019609034767700034213438574589392763995994126223700860447131915109705811782389126823629499315841316560708972208601278650736043824078295326598346395729440302143430253894328303837431044370604296918745562409797507497130536258598736331294390027380251103267396609434121015586973540564750988893612213119840109073840417723741477523220903097049306807421851808101438779016334029738224138036597430110956466470557750794106918854758375665514059312311140674945095368175829339349720300636326623805949648835702872390057320340545124774756918449515246667821303635629852198507322537749685299961753335168806508865260164142103944586407278763456419012574971626726136816860010103820358850183084813694752151629329730432214318589491254087148770056504084883843654884183221186747555435194988955946698093342381508563288505824301685606484462214641345949332695576356145298470173289890955396916882964817915345287022471337478354932060121922672055923062903606061570860105098530953311074121958753195572553509631498579381284886820667314961024322954719348995193383158628428716762028746042786014015074471028638273235909931747141606933685151144939989787764320049328279872750842614842505884320944802813142425231901896029951409581901410524845644503402885750094636768915862562431060806370274713356993325798163438189371548871947707725481260812448147082964011685654639118617498829896455962919808878030618608635153030043488606268656216061807526736923962896911761951213540441945179136218971668502814493478156395769242924153900727459142124092071453020985877354698264282012223274669322841594447490169102196859380779204254492364775449830505841701521507309459458686340688416370951143551826162224435401738859569610335553262831109475317802131868671663293165712512404962853221896506246992237265616757126057190075207201678054335780196538297456970623865443488338028037021096638732328308042205293836791561389975825674753140022765653767100146826890243223500492791540507407054350958336897199220064753492257433710140297184759770319071058042546854484705319831133648242477198817092435874553547377256320476458876074079468930019636002396431228969906883322271927900804830156545389809424069098545151829227888355867535459496239701537523881371590697959598148975936012120678078431596693034022036216158435785514439267690821342974553288010318923684372579684888544675535216833747732167464991276136318102219658128012265454808209993827713958199949307214961357724945574761036744091190617543968036638879425789508490916224654602276849767653353992058559797730643861075048128573254175756749013145106351229263347655206118715914826512883637905493084255370080583531248048654511194958186737599531632930449233696378370907375305262297738341124027293583017868169878717257269939703598791992224010779048576657149304889610522695878776657824583788309213249733465655524751973230269705013835530139456616625419880153750368454510234456343486141533775816708580714576143984493313092388605128936688668530609060713449453500846838349745135847961329140840135456882115083770299732453215509520676424942384500231300517994401742918164470782793166487764780505981745656795522869676664070472365567486665136643070511674492021226774848317692978989209925857353396434107473805506254287970031519377900059374883303868542218224877160079267194035087030767838673988757343368526694491236407407967810760371355354811939865895137888665006493322370980126483564375386854262279893113303397303106410100281260673380519229494206454258858437878012394757021646607663888037209214300734537384638522153112156496673529368582631655345067095702734657243673073651163304561452951003035161470542446166476409813990862773877599018923701996634499263050728322749548722819744545959240441716923602559522161719866282478921073118211519648535604781557337586447346199602361058443716281662075690992411787788096541674304971714148780929338075000529924281367768235828863450336567232998805644844296115417066941297053161923018307337548615633980297104372651877004162572262549990683864727544854024384151275592044068730896710505153648794961387541651430327737938919566610001408237988464892883054794279098577542708994020221488508444067927249736482694262235101995283862696248871571043190454397333821638711727220130722060750258018179010905776384944823218373387425614853022909842666094572820671691287560740756060959754584865702900000591588293199607207321416475067269328022130309424065311990693489202816915218618741943691879900991508856505659878595546729443583270067945126820064827816219801151553331763889489602087977005432338078649907110330867427455868350776454284689948384630027791039065782244934889408079231121105888963977589357567883878372881061324379412148964018754081358604713571322970443621986442540720857249025547111457542515697129915475977192511273478404774923544638613525628057566424718100215496688511238914046175843272009561528982653881881468631214921358117528162381092381223450245682041187988779680765219247607340102692328856910046335698884965442264801019674717492891426358163091876230393989639178984376266245817020339434794905812901484639758274565378760881873411138663023091140261449282155008569114553012876789409869552101979947532529493023670906943304034441122706663397651619996883018677874471885684020970973114401058592468250764011698550097613072571997614094596931535969240372645028917337065933718717043082169174386496932177454923770440204327895960323756599360685700485289973199619019087680440032507588325131577269504313402583120774137962759577433395091859263507104492053863196124035939559494595998186277940004028554738476283973354843825054610282474225917775507648058777974192881108227429122997747921849718454458917897968910130597112129305404050065454188955996828990664445702816977690362349885161676102025665636782412275377299702211729320344222375902025358038127487065330628775959834747579987107966177913822011816813577524788206357247086033362133364641348712865250291915458023694796013899750688142647496120279871687388879102015738222016357701787025674702729869688901779160246648903769182230632034421727620377267317867058288188147962768767187594462946586370504642030176747417307406033080743402086518784675990069493099127643387422198704746515063530674454092336037400551193087767734111573809246669918854890627918494222740250789217098462622211442766545357935790961951835458147144591469575173252672538008178669232900475620277246903123338307443140521120944841032410420024674756486121949629725050030809992711075027824762691698937646595772122751668634530220418511831210514119088204682312244576877707394209387149453883305846725996506293762502740285640531347083398740115301943041777408600664778548459077684174888310945499956193357845495474993510919118328067531485494096655692463971745090745350220699514416628907540159379667106310508065088362172823719211775235882387554723750343826256290230890793618198027146555520374140109174373642894350818173137563985287554524900259737049286986761106388488435871014083121663154020264194394377176044261234101519151494643386926414144104985675768755815501056310975901220409121184921698826977599999219355299623908083624945517951023009539586342058755953433449717878491963576775023928789887943755246377938813553037937336561376285507172387550543075366232376532158378421768954881960254798907445483914171499067128307617123587840998201237441590446758465249636710429944955266105614490883161735464551400869112348624659145410394026798435608734728767764746233725304418933421744994654677508733295181858123712807682009836721591425380879808237409420746053021112185434844356030403330402151180273408148132445917805464734643589709097281706001194743499413679182365459675543603167413799045105063545465145308586362324889038735531771108123305526999719590902117480516159735429137363909837647222354598708482214859108395831043454753607236513011590429690387003148971357350779126570672937980044418781314924285676675927901934766456406943491663440379585861624593520981530243774511399215334080663331091256660551690352815302694680352529281508762034489004675814001953033418911505229344614536649500223672427301174144221963549956848014084843477459069662471282698319827058514590984929280374739510289208457984895003111745128547648365173726735286719581961218425390175200132503793322552607887990559349565207464397061646371462959712723516786090778673687735569376626659832921720119692558578530624807204023888301227257634762462366880164388030209911634725998378069834457874825396735937189124097561427310755799751106802916536757875868869274632080239871435920731633311128676487530975940752582140795784934125011225888861913832936690818146925215956491004218592165599320466984155909697076956107373609549004576372742821290123259156902448017054981155980545983538783303574251183965460131536777090585280492337045196751589591130548603513978103614515875549381653659463312890857241828711476766183902559632396728495590869458684892284374391409612661923380484784542464485569766566858353775372072141668961183464726925310216271997516484902405903448622361509951403584529615480952258023901882235144011528455565811762017998170578964697274058825229621438736797532626732459205071928042761802162808007367676516851124318519430397761949195330070952734018799925161755629258846629223102464369469651586152294673542454067472139145452608853191655702029052993176209549051789354348287938508582975493006722029256209886448355379657433030332955460367703925459039957878361708652326322857538454357834251865350533498623226937568182716038740243919151362815041259545264393359485757218636574948242078306413501431005346914659834728783913400881168495668265661980200352300508366847571532777615910035503328411287124260797507984675437370447066727341936519524738193760170981944344906071501132681068011792816460041253107165181918145590457679260415661214893227259711848027549357824263216581911967081378878235324136884506390941885151369437445217832357114450046173318523506294695342278238209281051600205718767605131665904627625705790568908025269529610237872023827731367255281765788135391525342507574102812389931027802771360532565213546908470702680793896534045022554159989089896983805403901276112461323216754430131592341382245542959623865291704271433095030939249283519995852353188777939477340023150654605939339513603987527957806317533554130789791493482725695225326996444138761368413043563207225037473986981749957469529235949081275373380751835221700256835202430129750928729709381068131916413641356739849591947694952635643409567810327042288412167351176196461627494296645575963297083013942385571912549811287024445554543771083056085035325216560270716951719051978461169538066909145537220857282655603745750215840521968393579476560804935990086162000996116911180225994187371903530570147734192391517236955849587843885577719040806619144693219472515244197742634774015701819492786477214312883332123769679511620076013326664310023863913886085224099320956902780934965562160570674058220722642692735442921426534652513922235796114621285389204675451879715853376247666233178133343918542938272913129335953946179566560695770327426496281464032991515274761719132919009327480503195396458628498459360709373270397829292418822067156209284005512828602566219565084855280914966137656797336070635977413421349272871049697744761009413692919250449596684619007606876561759998599745597215078079276430087938068116900422651606847465851960209564115857395607446951161509845959956283085465849471654259913571729767706112082321513542441884692760440324022746060101396570612291753609504751281952156482575364946255212386383622402002697324332329738347084091457312516414551154045516783234656604072904460615694392254112487120821866243948839476556593447058560957706139680356346606121091395478619730622849445114580127332431033448979348987274834145623023958573102893183134800273250446306836339663610858240524734993768239999713262912346663773759379679825935318954932289174048710472527476044459067644970160189479177455788253155616481531593746188206702510776529345137037383653149691500388265793639217139709918998483037980951877653926303224939296327954879652728323113484697061654944465510790027500293878978472208792328004647699907533785697552515733743262749808568222178192100603674776318627899352438047506045841562617239889331500832781573513733943203110196357107737866581132610115615737778460766789429668668657758822191632252963706904406888002054464486456160678488181196383062927862996114281603905786912453164315971583739088251303352132691126589551863704424462899773716844924435013443961164657401066249037193263049740623839017383430497715057440829752575576715196497586637622137438099903192381677530145647971486444315130746626580422295416983790865515350704689188927338190142978597910535067041986952369782121518700484474519616959352986182761400945311216446395220164957394501026797119507907360006669975471508238501281918413846389583255075305101494466442269388774581009446266828993188510482506185970337095028549879039374043825964593349062560381789494759998862981574411981008896213272232586616822940698595307243287445038877873696214812909450649821494190760975083672532751999976297928263512728169512510797140792531118892495194057856172313655812904591069921220247792297531572491057129571448963559563378419759425215732551879424600679214736969490222294198475388127685041697158518976275204497262903898410474499933248154104997774491980102041340847283965837747136089984307620039933536635162025713351424348488382033628728474789815718943891547459697135422946835386244816982583833895019371285625137208753526922406622798091827407634966607210619447560295661053236944354626143607010076085745124336607384927361902193348701612696096493372378122981006439991201088445549725178276492213802128431213107242856169281004717331756730484667523614222945096468584674152351228232204898017561096567357655317873464233508617815772269523487353456883518369842217701450315917590617923528887291009700190449388828544278430995994309297807981916202020042481566932439164390081787543842052759312320136901758461525555601752761075468035403280090104434575147392461462419194205056944792471557122937526096106073832871262591200780540850756062993386858703168313071708226714859198912983068795765306282602254409645639147329811637823247987889531514698668924684660235014317721978226511953673960937583359350368362527977176406277317327284552678594777008118519445453378530683745916131137635618044624475818958358403541272752857789402173463278472159175535197585090466864995651931405663479404904360677918264983959654489036617566900237068589034990834868949237679556822584771018047800962887431605645250616572318024931986679645755163355418841358395880831890917733730623353827152117891035366072892580547059382910482263604222102773912817968242509884180582887363883329389745556187104402164262141801664902341144290004410636421969561387015428174847537209069476673300519262903523310200588624478483742708832792356168287288860434411387484375849904632071196142233366148118591880567968986388476549824697741100323653966769708090813049517066855393543089846258573088516255482382359297853790911329288880954195644658758935122235253752327740949851504142791681636947683306811383668201688396121704160028483090686545896420456213274762377768985246672744874469596965311819533293912407591427840616815513204057875044136980267161855601243973369772790824750633256102725206482456356993200300235128832234287135266952386544006902427410399443428888796453094472180277687916115022360713771884096082148634836988012009410766256333553922529478393913909743473066987591639183366786505126856824077251485213956242880062822563388986726237232899907945644698132662999663212598092849259731592090516467602958720582895763434640618204821040671944826442618014022387393124686860342687569436618871498932383572390231696639610527972171440207512067772045487424064940453070246321513949818248287325144464225214169445224054042846579127311882022102545014321168252472505423807600601919486475108765409756038788720148029826544222252852588317135867207611229155362865458282681398335978560921998085372494946756764508466092150105053453306433564517302494815114022898401579590831480804354699858437856484173534231788954361509840401739322955394173129960659434366854837278100521907642538343695602242826319415640829181706381306281580873168739235619852362866597409575746176665098409450528157205746241983279867653875660149003586321384336682587100574803343163861587329535326939270948481510721612583242633910658097977258265559897915834245038830482160990966736763141901345163999119919083339085675901416118325060941235914971197617575830037160189942465702058498079895925286989371043674526244438708691962148518259421515236187007914165824231338278402762517668486552060421144526792926478636099716808635358046802794601661832517617128773772373757239319679611647175933568260299558833328564195603431644305303377009613194663909828416616349710672878460764092413778658645535260988593957222905895912434764226620009545532092608567700553817867299326555754811885295736804959698966888500495405350730618062941424027357552403700144624286811911735145778045680464824662372729160063923160474734300984210177667507471923021799868464198598630734271153049964299850263546193679346427206216663047323606586115288460420349180420791776774830890210364404177383401690243662305827968795477467007560945425386616728814710897508050013599753069409969939822576291675392381060730043695878842520684055097518657182778124202531590178093444559452990185273960168370009790276998740387939862772154989344557526538891959720809090732302197868481568159946926823635568327647702617532308626903080110702794591436598154604892909086259770578570017349740433298356996536216263711592877764576899795165508383897145770962823409811429189751900640604700252820968376676497231413746455531533416291878909911557816286450873766899162963806535790530809370444371955978337051510367182863625193229220386492783990484478656992492183336788163625194036837056771838248107992844960893832270381124346492038248325905465046163256697092344214014389595572482274194214926592576941229109526716281854495881784006533695551623269913721296598382986272684069790778145458266333829179406292499292551164463014336750116511920420064149296201504464658427223599360966133996516650473713022009281721936246407892195059489549907442767196177181788823348076146238725050534036815946892906786733608325797053009538758100362604794102627534899915823010444132484891424878880637284836321589237030946273028226311531483477448759348366978113077695889582259651004956338345893173474537870061701640978670835772852717446182209979503888961581902010722346714363113706409186975755146872462695569610535181537798689358760941134570090284958861081501978949638629870848104306476581869904621428924838896979139013238918585493709534704615691320312296584967275129210680572471589662912636763478144976171582099239119961783033502611138490339436104882747944299662906737080115525676267099938286731474638175509549415865756038465517715265765930276405908195029487114838016408698405687711973312576555023974683702223027042764007413457403051265221351555537265786032431307121919956440882756068724222804598521021104864906388900498344222805586916073694468144739866388590068020973866211508810046904058876743342244753756677831064218952934476347535309319626038933386117198227780153176427834596304047222450005584292576928307108916494545384446094038096256946230534669189507088601701867870785634500168707453461839668726726839766076086191524046240524320196169164537162810953188246545152072836706944620021061700153926265502698429471226599742198221153423280930766934924758936118687078818508265601945381800308749872180350335470594558417090829802053369936474299058108334275489589824270420733771920958134983969725037325543530599080445239466070583738558571511755626578211470549092014075114158061245832291692061603397580015523480977787344812679683599789300306978421432715314959811310568152420098954828495471122525269679662007247543607829496343255802661706001406158849062344372054420909297330791095222839922300243737671221844421768026993666110905640599805133600851333229885053510926467778490814191270872739729025193178727406860455209343361816513409434091384809642714473431247299188745141857143867192312096708579596319302186403838007511056046846237899393376636663833728452369930273303130803561662719628075039289149080989263345418812964731462434642718674555324385260505359076786153492657743285766173969431717310199014030683412434229802168797432339594659251097596761459252479793651290560220748986653034264542988934591117314275489862739012812584369960108814527645800562081632233213094909095196733223098373098950658380130127570429698830660765486403446008924109755137332249984353870307919044496093466671888005377117791208339469249421557834632018906250068402617067499651721899463540389102577048098127503199744307481512303760125266050139121227780433556593740388132951931640555418750992960412824128245990607848699660529047083627928776940796483282583922757578350633707924205644910813163139465845265302718039681134737470082802826248027281054895407192974942850810096966266550450829068690044883577236575082073164773363171994025228045281576614127631871769700494258066924375172300264838906792985267928938599722763034962074027083122273604066875864799449462416212483895157247791950597136759458291608446588589948719543160126736702218476867052736829238522371982744398047434832792489107215368658092131832394812674010012190964943735754575406992100106092675687191787023874705511180965047693235722947858602159818710003060536658787245914907023437314337822949389009494561337363592202496708106529329841375860865478162663710651707188329115565959235237143945160008323189170683681495986800010476052394870779942421500901649932729226864692407589603686618650704515198354946636194778339404440424516247674675064437215194823637532826625236305991336607600818031130165661128085746179151179678328163976692962096078021080728241877017344673834629094787073965599778464539503954460402229969439105560026704207201627759480449872648119158507708141623952915417146548656404825288137757292061753264409180811051672412222024132295426909970048887063219625649779778957359048269794770050452631902474833681541741318517263568397775763828628555776264258350057827783900957641699422312664142817446597859543510294090703864338600141704328235754976411319997843366017703445351574427958704693842986084646088732240680049496986177369289266433370106838267017143890352186538325381500853942305893472436006470291683764606632142550955592065299460808721826689867368568199340396650293614175611501543600007194525033809175772665193688889746648737482883238321951768900700851693157107753610697887196753252510329549258023837746013215998607479828948338499271744194892019264930799551039329619776608872502022540293709369489200325711629738434576001428565093661753936319343170771274872965676546533547014275314828214319594242129431827505221073541036375753542248025496548076557945280229851857056501202316255857546085897161802061382919277295428273322820701667729564612592198322294339464062581750544267604247643636410645349314626219138405723748189596729669211963194737128513292942323776107356548904586177211335485959460438754452858574851113050782305977811219904395119611882752610592046963541990376821181612518669336094690283463796948432311416925396083934951939698563929083308763858792443345844870297344503665503101865612632581008954500345318484555329627389847003477020510453737107391078924340151472284713889911823211792144197222882190142579426951533628817276506402261937049859732369464043439278239543018513688988848066415206358876184173867302138475379272814563391798284736109096577527303148721594564507369237897848501443162149255039345409755276653312774273035624683241222241376394559084642742526463003601887398061719608167641437168174582777827898189736700070425309715735306393790843485398533111469398013499221452043920400155528017477994851430732660364972438725693725051741798191774328262563066876577428400600351370146310260933448109435415451443618932584478201360151385304041640561881326477140835355949775828316496479058587493318441780935791102307525135295058052358903131128198338742709090561069510174889264926596918141158048097083049706961626548656119193410893622096146597806692367371621732923637670677384034421666931232925381911780292073729522689718821616614057537520402613613230612229420777407452418815305237926336422137423011692215417970515744136653588729644739883565405642119279071084320350858704658436269992158899723533147752772825669414762102642428487163871747042373495535127268646232241580247193131074560830920567386165001627708731524428101802233248982273669503242820335780017318085965013799113826945083680689470706426298265633543211893161078285856886940840691227027328239915969523445773018629470732842536218047063976268484463927617809821093435411916815979159915039570231270849755063964325797449270004846230364528886120402885459649216067477205188566139301663295997864219015628436897756822113501629491801657730255112911559569654478957229396344460742942608443756739093059697933719266712447340258977979076948824075933510987205210494961746816490637824876964228253039553668727520754599795487325550305183756008803828420955596483420116903069216631991586234815589965973567908213804207471922335505215864343494074759251746891749755295860371861220328693356499825963887544063222420533410723949634229643227693149517519034863079756851424210002709372987272799634027253396198751566082625522516264970502099908185631783214332848127334211651187181693040279817543810158922407169466970132550217871655862561358111459012527473539334287314774239371605164302068290048683484306557308035513478674291837862091328659077153941605194897015327432549382239984606593483825843353642462746276348285647023278329934066374628251091444730372655557614864832474753479580626729871298371529584856464705606580329444149181525666970427936973613592678987161136573906959116379137549301954362430127380417186592148900448369454207902790202480651051660255348740023600005465603804343734233215786589175687606932601076706881126510905306950888320790033910152833007801997873199502796367257205557885554221985333506246203642556301657527863938549098191350298319021096277332961166117607261271976471548917916209986022858689905193273052955885114360451779265445484123879535186570693899023778945921322903766403144037634192799469437529160757938007863240441535815096858696202245325688871655307263369427098690349959078360373937740402572953244696680398360775729380157562489088166081779406100275473813651882258917898865284057110004912169850730829141632315700420275064336991238704888346871905755195341109164676903310671614006610232169764349925113272549834069054149158068376221637994444764062094557143948303522550160474715453456518029364210993555253303985183898782686521966643215789474727767945325861284742490299822239165048194591498724241018581719304316458034835545973492392258864951695277615703291558855497751722506156277955049771638815673858397421130392704032474084089646951739424215418584551025057066306969070035250614005889593695658899043555943841328137772126487118752963464836853187458990359706927339459122586718174988717011405780183947451150017818799204562719291446746251642242713074867500534360078423348739751337315249383582120884197333124893300136020086452327322825867979027757548480715836490800357911156617784912518289485892627635708354695745854653459029476215729104024459774842969299874079617840942896523823667278867401474312337051674229128986174169872265830635009327636643263322410361751190263601565251842750468199316410271073920389367037356001270652569820588438086143598914818744462227587274178480381544371534045993599826631298733172802704600394746658095719440936339297068446741193282032099300834332798429445892474089690360450841646971565538447464234069543933891178555978043734531663436382848996604652085066569025442971612263439601074561560960816038937835766002854216758237347255155078902215910664409003084106131742103800107598955126733410011694125016505863644582571414055064972550200869620390653564327519316038318407542279362072991813559653821680685194877993688754488325136817231852968108836624455208688490379607094745981461993852191924484065721931515854331323893185737018454579869162211090620646179232133912323698274759406043401934031034837977418781461117078573662540333889187128133248431579814423481745449400004070152096221240671608829361295434441776192184100543124215245976869916299838455622135067521579406852007885952289699883788779103399435440602105652680355403007712029955931407326961162047750999247222742394521265877889854687075805224621588561509001348546007916137054233384037721036006100398072568772343636454407326844375987584953237696565868039808910766031465997006188864048989028100963544634986499352864807859009805444842321391738567716600594450387743168450779204264460632149478111913857953172617167513910468917120791867684354861325753522379525194585768907254988406196269519198336703535802867274177119213667398272550614231727697539984264477619688128967242975788509955832517581641404979022860715023878858988534404538089466023661239530094474353928557670033635502051431429714776788542249582385992802556064672644033100642387239345500355218224305441720836907589422579889532402689135251943180539665406629064475077255420694278596118953116522228351122655812281112149018297544609870821485332712491994749876982371441936095629627788195073654382653016238682564129787700970829486086281313303580143648126848915391843395572521748555232278393896707762513710221873600803131663664790398978842866673947459032233702273813026629048896049515134700090181901439335197034496428047596726244716281553581334227138080886981405905949998017154438205242237756531903992631687083537364078035788597287803982226271135105056026357872247758825161586242659185384958652384885702312944982609040364398913884454563811890606525099443748304795226607397758578984572504998819744351576309584223854256827860178953221757138564941074768494915004947752926800329340647922034192170577502029312408944675184652737149070640065132804889321671156181717151482184424404388033667831786906722193335495724602122672201091078998204186936285875853386617956625629766277363455658018846590295040139803183133540711371188656636359179100838197401273477132487600196267342044714416432841456400519797431893112332327667276013331749353595802003780320468099895131852187516057579467002713721175131790926366069413548248931340102268646299336637143727348970571930449640593169713360874805032953383224701230763464952219737500327053159888995521676459580164433413440609712380081427565256131283499753445677961745676778962475640809244971459657368190291166844346965482805327802791456486289745486123415619630576145455256968386193566878392827506728021917239407243813620869585697782637363310512636687867955004435571852205040790064510805348338338981845871368642147292066306353578227764676941649454621643303021709234265308113934950821855576274409448087468023598986158808752640321392867675908080499630584842200117338050444686200293298662339477440340819494644419554835510658989779628409724766643833914810761498763929579762618207462918932423499400394746964803746603326560644072888999499370113927419374123463626517311531163865904092363204034396845757379847382335551059856923674386169849416050891074560784278058442609725176578783069565884805789829518199506198377560461499799527527467079634169369646031044708114508656272977608615203273890006485956141354010508463719926462696729363332249702103976927370142827616015553497874581474348284532240193155522073309068961575079354218204208878036160969147583577832668697932401646920545306012580645985131355251565891951537522458682596741607960280911556955184696420475511666369546895719638226407299872773804686772285182542867996771908392805638360569400364974516556568072428513046422888885055005190779816859419678800102744412068216374083424717946644860636027782823097536715044822519356478405246160419429736131859872731125888360300836184387037747744431114667489930428855634924029134228803590849828429971763737007039348516873571361460597014171184712206856019746938295684117489801027704148672166698573633177920387531718600639395450750261955754649566002319805927046679883201354002241890564055290252328071589897335170993962274449706324567615241016565427153946223961604818859128958640738043309364523167818562452160454820258134812437968263856927198704173738804310210487625106252493422086309968812148525424246951146118264849056833343964736269622416198972810903552706141089830622318615296738752309143508626914472970776250851433744522974107876883105744899702596722659955424429181505709748203287495410046905594702783966257264146725448878133284033053948786207961935152847612535203591681185588118344598076642025808383912721739889697154158304275032269417537659814267499054582840518835092120626542888061805927020915980246445663826759907757342326367124682349420358643717868912173696332845693881172098242215703144321975483306700484626544043842827294492008783187038914379650196926719561054647909401520836054940881309710904254524497212399701781209065150657096954337588340354115342438645501574764098270559438664361314878940182412353452960172522607344297653669641996560401970222823676984955110473972623497973654721096865128877115821303518211005839464637669719257292477957627841451991372133150869274021807165771728072679865059050240507640945185301344957679366138077225182800476058922374965056877515530969722295154540112491212455635376694613941008322690195863032324853534932495413076688057687386992344777527718519119781007485118536033211764079173030142053688469085165113335523801803138004181747164902447853138447319435070958768872721880713188915643323252044589903834420125146391901850417674591669337580618241146332700037998243165134421623058977048748690431602554083050990876262242948842554720011933853827640302387804062056482937274117590347090772536660563893277257079407084619107170819321278558412058747181115131238954971173392066422994681620950289933010723182823351721418855928702770469160442670269146963961348076577192536153622813299321504668468448635331395319787585880912790303507788971642071156384889319875282885565600566908527968660537147376085632351923727250618264792883102158218371551604610860372539925670638696907582353154708149275057930381940055175818452701596054171606401809902392362817859288893378678316858668812634327692443552048083795119272648232827050624969861613038513371958950126904102147793760405998454638325874155977789520933610655084130123764688906381342405771851830855856293530580511621552138686677820963968554541971982971210669406021139271975551315626812753377148925174881643589801702269933475147176789676205348161651749225933736365008588125757824870834001608408389166205581311871638512101092289081798023111047829022020638832254403543582899967914093551407679686659034383371111255303671160437107640586702767894629047922152269116260139846907495148869083960439881040464101351515033153173809140776682608891951643508618977872129058976952931578300185293978778479639806859620217269900505073217665892589549045594245291300305930467107925166621399574835582765755723784029612994516639189981002246459938841536608944637400175789949997464699903479640054049192327664969051934081512420289890977976203126535525579147547391414834821563632717997127423818386791678188567573923594555097217213161639333353874499059360198216600188336404880915491785722157646198348991907525146445809882840226907912383223538682390510426629666923668657346684445009155466301705684553868179210999085274044949206695934431774923948624534628509305046152921811672247813498396937448667903276267632920563523275320735918492148619557848888205933410118070262411850283758807094974088546130553914431874185033752073456469162179491226414743848815877466912477211539301529773511200564371229679339778026825255114059441492211652550270299673652772246729865795909321361550285862607431291465020863177459330743067263816655750852430943452095127447029411016589039779451747140898436635464900288328222213648722068257142377495763251278142132967027337884465954110535573374413375225905675430945587520320256878991711273521731769657736759397136804796162214006497111219439608930494406504933605229679654268031345831712780028115788697170240150243471459176281347022459268958564857575404389989810134098608152576477300203670860483091818724940586307227964407388780171043993994293609775328321389858377326082892256370113640412126130811543994242552001591238100892603473875971536564291770763458317877756219309550774512480590138119428283447708164537700835645442056411679008915092770471301800260731832615855161692532808708158964355455385202491342982770811901211988915974496310671372153365541879669400376099065230777978627769530763747155523177974098617280245159154515418368645704545601576354823355709945202604287806554263160259873826310159814218127646060515536030104307201244855227442085690983692679594727241217076529018498560713805182080223080318875207978101896894573971805191489574703130737219633203032651204882926514258264409430827754818619026433441849712318904925932647726720437134545709179198181824124691034949689317671248864332497697820912114307782953335954499462632236692070701544361888119209094353699581306180662215390504860650279752880792067719229005681781489494539484364022034207490306041724306612320175015789000047072944646444445202792443662862917758401960728599603236798592460055382830097496865703245456410074693027558108723292185561520560476409784922821374710388711853597669038766452346324187070203223695463022839903949366066289743929791083286612887144963267836773664670391404128984103780696064334793237046817656946306525752738145948141771692018193536562002130888611660352450457776682828119379518218730129577742569539370651698227326663984853731539384289984241165081236840487224502332737023575544114206967135386599111591012481663433674896493505853730931748417187140256802389513135334546160573111943938778947721828465735453916710040238728098920223006974455400726290994104761638310793068973865409697450650871947597383321982910561762216855588565412342467734210122551671315665944673592333662135034592240623336685021865705062716052705685758599113973832693338619585787032359690850549713324525787592134110423024719942773953380738800818312737905742258245103668054703558330585414150035899024343423274638193618902013336111344190089895257775329817085882359421141687163536444720599546023747530287961265286175717960105690146915207036941026457755748363410247760743960649915203364146300995942558460876482040760617271519810785711926890476704211825214310343287999627290122176313734026766572524948349349003690104902463842582696502628997190949059431264695521818223379490320604361466270140661983220601061166099041678692117129237418273872356890186484396248442787459730663376231542340591853823016937190934938814642904282315614306139123222520350516009331844615839438929994725360855161710281163914692267608251450277202309775115398571713359044686813278494401184291216208823265826081312840075494384332268468319966015594365358152718846208049763263325547461580896963794841090579096913995994010783728314243306713758985570737037226041590050486954743926088357494393936937278422751242904866499272191417495889024091464386941361986803073810636179100642242312459375627377339887749254143200763488108255977264420285481638021663599543192588578560819564134845434476487816567059090410884682958093616543903514518479056457982577704100910866660653532614377826230506249070761193061898876439685648519712658320146706771470232058707773057235329613549686645699904826871089153229882718482588723678992715058684650412276163993114410376243283307950086458674080028834039570605565641433529228012962797804285410720154769570304130553786408373853019898154692175520078730254206150634785681500521803842896876625795328631988718685337930852685164896847778167772117755871192856068295603313466884020628832561385663609163126999813111341194454516547517415209215234026468668835827801878589386749584621762031708033759929276762412092269114639385666914317665596703881322118650018633458104541849485175739005919119366582486339467383400383096789160661965423700745005207919092657338805684851431081377014467639770536237618867546244414782109990996220675574323852290843256934052527928014513596425005402877909415452782075388247887161579757848187399268803367093244925851284926618212852017912688722815370464892580086953240821442177979872859650310333755712685293518800508226096987587096611354187107972981424717870042503080138137637086981254087800530102078218314589867380226172076054535918366250577561323299646642503253269839643833024563434688019495625417736962024967605646511204860844691980476859961655883934679011993700590253593260938389237320448807084597951175700718457755124943864360398954819323859874302880271838006059063802179106026021189554170437286666710799856025481455293700853555017506813764684978334440374070060982753855108336557627950346301430500503187570616835867082863670260359994611507706690234120336327646946223211951176268163126686612242679944753275770515733061198127121120759083491681362004075799822727222657021053572866089432349326760050877399974568535336575835632946499824010387254361705352108771760816265458029267942438048119363415982913467211545145990266437931599764513845885239510333159929669049250310885377229791843731913931484538307791799687689599590739589038538014345295681411774390191902519869425364437884467321759954304912097291037380255063143625414753315757521878304827211243242245731240634438371392556207645733243433419437042309712018552134686287994403487458469045945899662612983728085640614275431887830459346297940632268572648665675351624143984103981425316545308320179107137556081106531870694252955028923187790162831749879245577578019853674335611085047570458387494978598449611794709435865373102956634493765397694000414121240432674414377394853294362070504478990507122493368620132361836900502138594051324073527282354883840846474861629530766033066985750119770123403426918254315712313715080521669978734294525215874362807528087614933905587929619403388392575633085194387700542290900063771170376145941780991568497977672409153694237649194097055531921676281979905606520613057461023836780522972112922171585156839195603485905326182359746974750529805413931455409768429226910759602899101521893574462530241835948717339856379038091345499292773704633826265941871528190767428224557631749805872818548324535987141322223726792509797930854597045806063718397593902135368834709596139525157124796183592000737074960040603780208205436668415421807333987497012324322235333205841415059225773399361166025249368689770727948749420003314066166041495547021531243708460353387262776997410220468359385793572713237643509863425578445570552776120600710927776109050700154137922492279759219743256005374322477509647596781586268724933435087875503337266078702241616070598075952523943104429859488320394215436054280888009366676338348454056673159109844160256672293669034187892143023014903278508348435536235666450284299163326342214763699950442216626141719289852724188238253262910193943558734813476132454889648108239345291131503608937551673022369148488078603591800727655854312073228882936017881145099486236100857773680228353455152360585173559126492668688537459382911592786783978475476300067170000309967807487421279732378684094212869171572902477535536529632323818228717951946698134877700326168661685340215903759496246545694003768619682276172377940413526720087952998538775916055823443493528258579413977059506162752331942430544680180172552753330978045405079464246097815970302348496413228063197426057148866943650758432986697292911813091940059418987053328035415408631305975947392297377405211662432222993258673365577068126731762825411899953216737980984673566558086538673599345782989950033112525420167590758426010187015225736973713868669525647247000307522510171162149465960585246318894573894868839037324597525155853245159482903088429138303426459693305498341960029766384117132802326595042688018145401556266069787122945655323447019118727348173264956797402618330301305105980068138056264578000943493165537816727908488636757240517904828503127022971435167387917809884851769872509490028193276318217253925091277195421396658954409441950585772241361661247850543905818506237437607605349599276263451319285060114435160530834229855159516068245171687671762722064793005758557941216836629595919048430209733976029192800365088774625034441236710458697479310076945828461632511410061395639369622047754679145055034447247316761595696352834295844193834863695994984716847592261241919826699973837432804622462747475481581834168652143435620823202271804430033966749070895520793140596093770921033236870651671555481731435244152089167349819052320082734828710694313493421320638822845217101002678272064482659788802206263986656243041965439183608025251401983951123072607145258980932541363388610305609370108120642380452226642717517436814515214812501086736895259443885600827149910093008980953876554520098713069294750948133838251746069387899630979040548985918158060535488890394081183475101321043144024164270643929569215333933334188494446926160961977900208040776463434089890007460296915731195869109530814985216987105015356000817790380842925803213446371377099127450301752743816214832378951207872902726165484969572353780811214891195072907999847093020558197975420270832051844885139530196670784756017466844458580888596710293847884687219976458603612386264964443592607623818486348728231444284713904958883119191526281483517105253652610351629877778574637797722066086041484023590685592088901326617866043163574956192104139991887785649973857315208804591770413500066155714218551561261113157135066820126202587126676617753085415998374791804016493834874290474002613540084187718603211411251563038794847719460252178950787683928825504349046848095905048355843324802144577581278523845562021456413733048981218891374209608336601278731293506750410637492268114722146202264529788680328838442440710558209769635055428268255593206763636629144421614349534787775475619045304117929049046969807005759860573306284611692642252803019125889776151859287393261347271874454426414323197557900074628747179722351399854172338658333239285620873398546914177772926432967628747638198813954104371973017851158153443250217700391240767272470897811248126161715622217292705942173879255705738500859933576821796904450780683318002151865135941005378188547530658720505281747416691689639548137147511015586685015945999921783706078719543000362847818649877346010212398402412996038933793094809564099643367223352046934647590686606114883490603343960266759852166278710258515498294514499682286208164976958855981158023572159606840862621654074025352131475614744538114833967725489864865085822278281791802209121658067240705452187555410012038483324094513668548385661799422238848372558942176715514293279762578245811974421261786150225508707700166703162922674306890514234359064552820855903376989137964204975439100869772725024795691778823583160275705437680631705481688709088260012127280997666980148379933332399664748201358723174532560257500814658069717763323868211475463693068022103290680380569180987547650759307155924873061828075055327835948591585393325886500088064365950008176017852126970045695992889010075071156796904026576161348185702608209080231357484360788051230823339310673987325399985194291368178966270489889255280035199851024273929798654063788957765074221022459005824971588351744962131004407957558264880319857266803027158321171595455168992587190490580759028392535401078945819600916384416685827960137960821113385108122121742599216708339128904438851899459899629538739131189254212037206771281725643995210296932117836217921036128450784679177347596363820051207808643822314912762077961391915302482935874461183657697855816473504330442786946891438363894187101203250043299411396375345015497535836353316880946802860947369498064179660384291850178683353016963658010000334901888628335680144431540238385845784684391125394471503100371844097237165205312314567689799506236199516701935960392906183337033010062874220156939350886492527741331884195173950049611986923584681025796656066580838254689923243879346607525611822892113293806192835975356244471024283291846360057438989962651571465107736542099168020968141663594637300277119923108483870884385508468878040770771429062316475516432526902203005910915545575488386291104146979153260229475796468252112607660018846316374686927963427184674005752237521290834429924222129212492362855926617039770300099247303541114023815161770346945405798380322563161191519980281036354113556721493746993878823819015722228811071125593148086852708984719152626377366831127303623730123705313592566463197901581363346012524889129720767773128052659456500431958284482177151109620928912735743872365899794693066077549718608757119538847774197839889443572525989953532850975313485090644685409252632033792848648799623548892316081191721582466253692406591517848826006992622515031309612065834145715029798779705983786221841629787014555777248423763819490130531724456102416671029572524189778596208065995849767925373266252344197852447526274540723136839014691808714615251620080230439438429646390233303124887350007845459884762365492497911565767138616990815856018096231984364942353688488690354145962538239074178542734959811436747887063064675127267621627769983435080202951889120455141149048820640031827999374114936714043601997515625130367380212055120785228137705913528251046223458423729001396842690933402778470411911565062523586912648388073547141755170092038274677641930298357866413202869102825110154719217625513652084264753511020855551281121871701367252804305201624488298501092469208671075558048326544699810668509611935593558688248810367602664309795263450084258925664409280891302159245941828588731413847844231735732959766157362775902666720753812269971347694610715136635991113015041334483930966386579603245408534760277477495370284252258465111198661272738090753215177940127367990782276842458358990316112895247254306844875359276456378183643087724236479632648331988072405291528894128752320136565884437335359038207907073546654041003975032498004841316428917468600184107888541294201811856105769543268679899102527870406204761102403046896890217673603641035070214762903693733846841790081822655636589305138616556072719761136674870597663144422723619776087055566206951565965956467006356669376082057612068170435899454913753603919825608618332224714702115259524396494259776100386127004726838265628283192206739503821185919806310049471355686425837990927751073004225969854218573073598363852192634161369851435008759170671361672561166938722354324218931620945701433443342046708170456691439094324141865952324940620060455424843299674662982876676682233116385726696819577343949305976839981676973516812591385096470428524275224447585016672776351870861739424108046557843764686241499825209510563252553453304767630165389787388142591585284354607372920598954279590988368549144395317334224353895238541329316729789259918866540509451258576857698878822231831094490205886196307059816647048783133943577515504590142256457983992539735012576065786518464752264079020918057122159461859596750552229358556892116199432149513349990118650497726662496479489964506537553459108539222843028881934913411498653018374088430684339933107032438355982451473341064683621767613112705635059409298024407235127395791522637752073270480340869042300585197942305647685441361914641867996826779570704358394910173975330550641986903655389390101330620773248555657952152436273283487727058505282463037590638492351867353205036891133416713103043368123352436879354771381240340493066733697926653704336511068902166771401357153125527359907371206729680819667259417479510232778656889192698475467355912216429841214536767456998347300329179120317763320619731816261257350596577355026804398925211127667664624920482479780402616379745279330120351833504412309580105902416504982271111940810539057421855068393453688127806412266910858281778030285730594389193889046705090274012636427352458107315789047045597599017581487403549295275579142976004033350862530105253163118365169270566647212028719099969933066919747672640327796739954072986560576713510011910662041945582172269489709496845978547255950251805068349045261904628110112618590464610737564534801968787233941536755663841003775332428777755477584981840781136636519873640438172589578677994219375618652574978218180749819155656147603190577136536018306380572898402782975888974716551604924110306417607832987349606307879295253904914358413216910406730692094351914475124527535838499114988821588548679558145162494547236450039738752206257411867934186182667811065075111071349253158686448673553012212738809432871605302090748234770396844123554403932003862252865794903784005599726849817973044180877096137349462982988713697476629605123092528392510173577552433682300816916502297850051902881158430369760084652329002151667099141918528902471114449675738376755379549259368227349273545082111384913384197069580794225478361346229801835216904942061837686076453865804507320969051992599400313750517736931720754149709420149138038669214656586808499716324501697896702101289253390827605517305092660749687526154916588686469604815287441559511620742780140321977636439163070726146172285355945935594251462632699953738499422009081117260700236986544043335963152264193373993238593750328890292136170817343295988615265891516630692795319218244563634301420411051764699772791746268562945848027998910924909588880034218055505025121525011529691907789749895704557217824290651019953330386530885174729610480145624441094722276490686787268445318818933893412189591106450886223101473154987811364288511159018159936293559050532963706552153849869169671512210290251176972796933935579120075635662404334851619934347226706040626866132009296347576613284354950203658985418793562619005155906261142517319381300637062245014162935823781207544272605636376447687532109042631218122860636599280121539280224996690560419669633361762126814411818266829336532831315201906733997749806400590590972648629079802386783468320847789802146366160760682647777774791970428943292552359309752927826186479136110352891463285602589003011337190137001274355371322092553501850209686409080925177146006007591221365378386911756913921692214535665867334040188679124103009208464931141678695761925135585067531077030608779581035428678714934142073338455120584830327646864568702978179804524908468142459444029660150337430349725120558662121805876383554282479147838586755725471334694426220774432196167419939237556899571715687263221196395275832196533920030936550581382170271777115657292927061282736455473866619878607516778064856049585962047588216788266463383133838230433790802493701488260400793486815443402126286999816253210604581746821321662501493473124131656029223866342986889083805374710145142476030189795276671330611284845509151378691946977253787244175775305723729544927912833693354196168283153224920275075039336636457534742490933717509112183450942260964649650746683800726008457674905961373134106689740831759255162286848884461412954479503553804231588081520672243277928792402444347772591097086396593158749740745447997682809267886527260888734837769679595663784928079567057672805851215174311789508635450997395915360089088787264539551319209003723257402195859753409582749935851657925123677696263939825405291359702388812665246250723317962593327521339508535495291971179442373198570264092632424994508863078305672261911453651300218203024491555537093591943850709670868922912424587771948448633600175113643831807337217832673217900178259520995727263817254902943658586096385486565876750229887409163345910878425677924374479586864410549544406411396838768064126948574221149632979258076341334482384037748763856302211643462665574898106425603886527425295083683750786066423461936947876463750041788926546799200815093060825150656354504554286970911274433934447968481195984726571881607093004483202656803173748191965894631778006507611520255827293370196841629721325460910536521393222158975798873308301914960756954556875699965615515762453773184003338905926778507520173395007943851670950651522513044887999411525089872166889512312822877680881304018522022110882991687603893125949744240072147013776346960244467885753726737809730183996943104511554884679168582263528023672915126639812055001331432559227994549447847182142273342549330542310742220582085632498256766659949301860106651984118460739186365352069065314150035586396904176970291492788449356490836779733967987957670801975670032578578944968267412196187310421991159284336925550831406991085989240932153533118842658559405544383889750616115608706544740557533940844307690016037923266835292121519576063398215865555164918183373650253864044359712038092978471656977963140099360663408549380354090686395586984140053074769069721919438312688427623710533308351160655244855740880640038322499980335724083967928683373072011318305000219580067336331667155002612722677803089314130546481534453032728874108454504995923987521512977621615531659188122993173347126940345462325477048742063224712074756765568715309652423988078375722850483127169944167331621948694810787933562973909084308871153689952772695133562459930706646196477826582851529712006432166497508478042601165950482833934247979224363515586480854101439503788910319010174336394346855047194500515723213038075955971270788217070251420217767910867697844569073633614204208028039436819857918949824121719906388972744614464373503882116500901155102616573872135139908055956228008178811200110664619025608201592404973836707021186270695405090140971469485711271317862406649010796447234505198634918947416591117485109447615956401483786303728247887701262668385732215284151393073003701338583956250740560691082767251392304451936203131016254264554285403943726783024287649477147294159498231150837469168030289298808920821378868811374789166354972455378922726496163632091755988267152655900703520944251894382856427330153398149561756178928592467951112586044570212480065647366337377192957868099428582530930016600682129958681352542640474250671822306723338292527036009687536002093162006692503401136701957529439734299650810025353006230984515434421750089112018433412041253641082935356400047062747536798535351369048934038386162359616881745737443096151496534605739407256252131471617786156200496187154711683586103173416162836563214987324429180022005451081524219668856350387563929952252600804738328428278795746957291317315425122143210892244415180177303289938342658514185094630195139293697908662236334347005901964817364730733245583290859144069684876648059955087583974592247908988704330929822997862495795943694026071783802998531421537875918277256721642943429768135943089655872327633243620649468225528182756109322656836429902094434707314008561156318877864517237148267706906253164137589090920527052963078588206075310567174984905843411443030393552598847327067039633995782048714028759129941541323244853655728890475240855888334115180720485454974830120378322298295392018147674867295585952636828433263839882776119400194729520001079409079664473021685632355257064398071446724303379514800798167214094429767752087699125632755750516249744529712711009617587881623600466488122717478260798695127517990264744858040565119088707699961059447946823716448182293861926701459810074090924102191048268477690662185448139579802460024218183670961967081344052727063314896334554779941102752293243256270765990420145198864893466165145597687495775840011126727289890584392925549256503985384935696944280438512428888909930860934119515921734656408208491358063828660145387224961934923333636946919852802212078571716861964476264365847152293445729547886311554252275480048313357452884286026337612680267117146542458196402273730234210162681371065634045538442804777954696770763858082573933478373153383915819322724483036606662651668291540803500386690563391447012215450897714804162994812966074867268800269320566355946977152727921070940218220307941337771585670699816903003573328488759947870724996412739698688266370433290925106305196834189088238032947595353619960184076305552816417749586601186719595032975729425642664536880534345059366524633124476162930701761114769961066106839643217258481507734442995559689088519665053625418261492116298409973533193446837515649067804146938017230275445588034102253624019808794276622469054207579448611227495156977773940617293833966172294937529702564909943019718739800341484928344878759897593797630221533544361971280840334291338771695436596641742481486959443830707802893081928926080746586150238112732110434384851955338694656948184570370486708256400585827023399473266326071216111182023650674095013277323196722450652325398096729251528719782173491816756380592082246637889340801121326200942979255708797235832721059180424866169532505325689140265404662848758213569771471431055669780721262149300451903581212353779243508354534849655235681444134415739515606442714662622430232804371583334888766036369731680614364621436811050069775513571042619342969146455280004065638066159150783397095571381847235306136853531819546421181745661656976591184150413324499794921691257234805819202096000585536369581262643613513886538230426402596760258073163135684291019986544194459938868056241838000090308499792685036583770501598734890303028209705428142748973223835544690172567833187360345013486165224152032653709854211300420007364309008863728503113230568459265224256213486611865008374822033871854571694529120841487638320947990144334789986283742308171274576749546439032670940099590828303232517751804435985973980091188883649930041373712346870650373969437325019557297109453685017564678167866343860251599425762895599072651227966820429324757058865953031864311509447412967871291934380689055968506497250446474161296341518305588166664648229354493542402111724600801453670695626840027037797543792310441099218121567904047367098508965195611043762984563719898128771882213069731174585585816589355349723499220931306195046467710767821806464830353059371884707719007118851150439593694020233265956267351829866082456375805167819587360294193364399987949016007476608578999426368243163011363081872406619021707467036267423460024196547418429624126956584917002565726553151724221228049643844839821187263880175719944128055728226378482763429355664894818030822828326020271396760081081947112969464207209455682719165421588038539807494719868438633672999472210052177058116231728867747549832449910174406800892371753958412081019070523989689382921942829882280808570531009518420621543191162020804905521910677166093806506815003915863089717447614754118095368155364364733431053097182119498777467914713846257597952894084139159468557817297048805776879959773375714547479229101409133060828440050175536843815883025158525681961948342294515957152222656865599167082561377104487914124169554916302674325440754260700631306423374212279343817224450994373021882244711144698390130035695729657768030127073200114866128480147278535383712381942165165050743426788462992148679010702779809625033537196835663340860396177893057089594764990327431944220952173323277613776742604879565597954629028244128612515649981977994649186308020852629597008771001860545007024856773994964917750766374380276351161651930835707430432843390591365600374974057731956500492377147914580831734918669247012661384196660708655657985684858814877245701218402059060949016177899424932533829728244597826153420461348456824449120455270382336686034687009889960602729271369911292919675036119137033276543289122516289568111030720902562927075413042224401561754090808684188245671088074605461590293388574562427437244633958844479067160811515203520971621662239615184225073684191488535058486490396058470342768811426342279786644200968842919230223672710791904414101668164688206005863686663013306151152067544152246061620918677764327841662482794007914372308575677180254468136908502194150108971921244682446979565826224651705466520457679170823958108691497317032099139222600039973638046668187462268861573638306056593611586387306902249893717912339504596504677454541778957946784443775623512996123394052643353780149791940448961998272157753658835487526867368908337860149766713513557676746688730787458533508331639378220076886153205980757440985279398517137128082418616617864821566289571898903012541405092181455356787229566212693643115405514826904384406257586590121981882254755403911815176750460233462095855144925648104918418289886253447315173130393967810273430311448086313377143042255047827968013771976383434708058184614479209225243182292427762356331776348877664797214169251337520723571742125128779120571762233611245069388360085984308088768133372207163740948146506104752191304418305514447555243817838610588805809754756941611756262996341139804035422237504896296025285100792271632824930863727330756085236053474363972750169977904241271700197553508860101175792024497025017042004775427577287367451193760003060513888499855419103536889406463112195618761151127847680981283402281344356561322780099889962750238470454733225573057320594012964849962767477488806153637356184240063244014804936399081047635768210166512737656805466795384188750792082155820803671305654734175344294337488246900380889295095409031797854508276083321526407331655888828433013089277252147710608205988483530745395780920468678405697172419744439858109619977305722133372629029588838155978216984507494009627278419147836543084890080528636554722000799567495950175008543955776432393644640629920031893050204354126860845454426502098977113879591078706373133617912258251366041398134355364058262032705134066487864811862658359355078952176764422315545079826224981507533467475430636884012684014890895144833863920796320084749602911326530842686966675505887586674307942666056177199965981888211956201908643903571517578984639783253925395507592073027758227291399186989702197910793121881850909349983815995713759740753849080375918366236346049802171777444371128745387190932176988149480762123685096056965306193485054897981946355035051657913366353440168247107596633870342101423239222668227067706547349938439431897229578780575644500665040059835722554154306207964848847447800593410338110742923238086261139950539228065790393392174707530566780709706543391836092777440568502733161531236098127331701996450124929732297455153553114081003152096444334466391109288027886283000780762730091292661008440249391472208617223101181965536431745860953714025767560887068365453840942649482860257766531320709220434348142674770719214234649855797902596846294113114595188516272230428842290750403995464981548193011129879138397461892577101603919163148755630579114309997557867033875977460320034943178219310964478241819723984157499219668842198764436207181930116317350154991339728551227119779797329290158330933113068075999667977009118476314262528427423423658324108641733741973826753653279587634110952295602743878182397370925248044246398702848038614625651996091551528762418571897357717964285262211934146069686520057110253427438458585781064905068700913149078857140050635918485746228121303769239413131017465844449142075087255799851770075274841350535135535285360179932004923183403074077903525842636761112424337652158633968468728894053269908351470554546532004035365081607139347127936276764009710370254337379768832696452781459660754725349829978160619430805171490152518883117516326961154920055893386800820576055674619923952743520673147464251801075267898479679480895551797932424754050605833828952956773918282193361711704734252606490041227937903624014776737604661524803596093918390642677130514665431603220342444700143593793461453643254783381196151242203836871007483342024826088183515084734929742130197036487099642554984574359279233797733971201355861908807162768274970176828943687792218907264978114717225909191818800387648549083668500199083026153548097923723051112185870331415244318782651030199729603441132489678127265438915574731432375856581447441597118850511401068711294254205253761972559065979831006744286317687509908891295129549787833566133950195044886793725046937394098246121778541563394233732841649868698409938934354186531327760959921378873883050439074278509145143555124344639133993209790801573046481075532247850740099119968602838886034168733912794927622293348533779518277152540905361756276927158153188243358156153536830869078781792695685252560444112651364502831100834614212842118334637669118766865315730140480006322866385369146490434639398626882414560355004682685385109087164062732339468292425274209161358617454330676952302088203853335842222661158761727830772533188269261382747756630617674620553966420321857746875053152248329339892462191771560804301416488521761754674091000779543075279926975060679249926133008328214859115589031293624220003421238074440233317443424811892908670778851647629542471200064715678772036337644861932019105456690949472296657950194925002415111589561312769182377011157560355191874652692932079412963408183401175555221839687450609904013242753317985322618622644036305391805436100709338634476838456812793534142005511282977588566772815846094370890701709265864060178057557239819632796449860902463499355686332769733293645963176279194722755091943630051105172717296203681387030120698957607197533023246253123384156729829140589817028574728277461082233527185379071487554216319338330776171403912603377900068402862497862536232372173662783787864123661966894787964457168479407696081411734007180993342853071577689006860144993943118494775857245120878859005397926525289494070245217533641374396156350427373525738833593562515812775983758346130586873743450426686863617378078834062496489906553677505377913236179376999510671294295380668819229351063003236947366908858623152493934340819760071255133095523481827454998624157877662860680194343140671251039984507980371591068359638681680296500519947537745584575866666429338078624519157156709893494827365825086807058505771068563660922361993037500158679750264298572109517126726599159850419904638276563272830209054409586419585430914654358507706780434971330452392652562246335447385838593104967490162856279430646744594455557458571320504784775779843198219223482683854174047478467166526027820700068517601968592382760649221593031033096658738042243577386567988060989341986421835703974367018490582826044518169908224822141545567419224390615001536698497075287263226130040760556265089477536355701985323309060309713120386176813375373136351105678173718832084813496340994556163420434975194711607553901657753425148053823400214628962757061412251066196276546530559053102412066762891135327024158379102851750629405751993800415561598601279422508584107587875627953365089332182762447019611965368417735178837175285634327718348836748316341122569054655977708281075191175936441765995822551410615258739804416531641675759627768692799418919743778663784521774103092282480457083643862832017909111826702372507855239345298431846649292625231947257095178978478830573840735302282238130754223986302018573351768367181019217627432466675785416206588267930852198490572871966753300406883752342105447726564870491809246464910958555903538409461942348363106109332040524795808656623504353649134290228262950124280138654085586023457032717909593814938451104899627710758229110028209420242058480296321726336054589293491168170873560036941226057606255321705026188653445232393166882577146231381055943996887308554046735766210693132927454259216763185138794386086587510922251497232372878819167211760369250986048757711275041791076072755034940825691813775742783795737789312355913583511794088339560814117088241961629162596246981635500205228878510117986249437604763066101712710290765441974318994648081524925460113339676215069178158783241936244169224024067263023855453761584254438322650038253572383790162820684304021765207485893008041316467833218220170812670937965805987796998391758075068052317519296467324122051340949120684774593211410523450330351844983337492952898059305654065676160938877291360183437784793737549498201576040904132355237920800950109192699016477180495319395452437737595924270985782895815089669899295470511633469363907915537550945995516170335657896603245333761487154150218812086300068715346424524866096762100480623606840878606851289990795661151705985878682453273129986173348243224891412231641210881232029429032676209928055653131571263887666312452527366403328161934672009521848629494125523917494086994514029188451108349742583185388265746419773512994617014717882165114173147194655322012980011817327075082136834484209182386226584679434706912230967902647540843698704586043942496152250792356898333615431740048417529904762807056460141650900218295962294135640375511783047238751439675120877800543782831106933650832781079863868049247854479034333605028497554660172571572417025376959586500618857397552854979750276483915470271065495887275634090631359581101862015225908947227069879144706988559058485176204789803606515693443544424521615275425788456789323145107767822624281046102287989850694618760693405969372102838263656489166224626518165553877613258545040337259506179873117993091823463829968691511062312596821349681029224353737695328529683874152792742363915304822827134050409890282234509092416426748022113726836023045962860263325374205564329087830487363529671222038257245432000080432632726433314672626205732408064202281884659970837867677700632707462209361629879338200471780531599714505005554329384437796034556158999610334557333861236963434204346365305275621705722139762892312879467344507614621740271563053098033977342885215206410290137171998725305281770977611231161746036912504147446567151825374323021340402596878948293247198135702146006929128613408099625729928143341449502555671534915896698978012172897316279680005803655965967409673539852299675033475099137397240157174186310323070212794280379875604239959877480129718643475502278971852553144483834716223311790381888584539197074786027356688830908368065109510958458787237256497112563044879136130547216272525170762026801708506242110912619441496300897677765727015352890418918979351814581723333109177930961703577336334821402735471214282834741849719080420527001918385817480221622634821660981008177992196836837120620370809207883215437332288911931910105697399751114355444023999183893699566444331964452893889299584779444785441731421791634672206038416837747223448777560951068313362855552333426011900291851580417545899662895449801890701609524883094930459475760365103986557745003250995396426952088502605607559510332053149475711773105854922420342533725947815536807411963444152482342016490200108321461653919756944539490321657485269944758238488981010016952332757555996146175933628433230283062625324132749102690127233446668817198363782877031249115857196812336531189720885228893709103259109870724986940572378983902360534315689667067080219766162542520346592794261102978907344666038710824283213143805519342971246045840102927734096513187361188808874258897440819009407211277556727153133596381458639078308433332205176100279916521145713827933915409766287140370248444059780691943336440444697193309573330720798578822375291721433470686561812609421601673680295100849595695040275158240047560830682561773298930324600965618337647998318214138419162016776275768769075272154716065506625262264009791106870834550688927647490001484077218598218281374303745923695158546135688791662025000817824649461657234516485816031040167124349427366449924782513945586958302026143749456850179203028287345254591558851697814534503409905478326329611520638526952853148060616787521534082327005401507671696633237647851819115281022581927766344974104057283750319270088814600541638269044925565439397324034572557974912076374316091679587839286895752057352141083476478797138114167642754049834476174995202757966660986230722496885926848823144925381874232231973733428672481602110857695702761346246712417667713668677790562434157432538778064815437473508604903217315922628321140112294621600507602009902173489509040040656601877585313575439791152722099037963084471415466794480339018633068217855983677901861126586142546726780497747820928110327662863926510339446827966609779441886229567659003758710908249926991828601116873496368621059142403633104752557927060129637962448115830839017620222874314245660189408205219501530795569041072589499543272673284058996307450918551860893921415201608327906914714181897584150076130071352658862208996547489613384046028410505710879714758814037422853483545333784598307786342533329396966636359818617944364729653509444516209494825120982756269261818559557596592512307211211323376386803585987212091445524902132926865248685932563820691279798182143279338676201482377586125039931288330128015177535223118913728231061365464702048283088800578988570104522976367586459416992535709690486912482831400583251517632576433090640639238342895856341525998750437954750091367026921773482589234190786081932146774519462877295357428402935254005380165768643609112895978108043093055279764947465747702707792266435556049139379758050546773590846169244208041105627778570121169185563812988009815455614410367422440074815036139516664911503288865966208501752726358292731798805309040869941079123809933084256147890988628753414478617247255684442492667814580034160046640232035984883348296239729490355827156941971031459106763379611376671570926614522645682472027044192809730417152157793822517778230563970720686090227374311946747936334272241712732736213442385667651942855540195899859267323003746453863277916286806967171196004570881353281468920064559779265972040275347017529416768938835092813586447755639389101433848441377139591641160321676062250508243095201691855908829919855033806986996172554799913911752104233518122287106487884160438432921709347089809532164356141102991418261621404024859620572168380164324974124333432492440742615714134516348291889590211952730589775455861427158098972362405598642504429275637425949410043864736120649739469705236685822303002450958663509655730372534044719156948684294509205493805043217264119956659161899727941786186620149282573214356056109112709051637257276286910298387690272725055153224290261360198139385968027754422528320881632169326086583471011414609431521391334573397425435619480270438388797272844581185945712088187526810190115738605458271980973970636434058162778440881076071270710447965905077263308399151593768868550632045102312130020283004430417441746706657816927802568546947892424249703848889782445442099733807458319137132916947442185254353857449341607518593650884518784499306707125553507554630073500512330972941746611058368969909981839770371471030222111319521161740095373680829488661743633299308515569617879571782917870916904054778856628053302816799645263106799195920627189322873347899034777208380423200762396722471635386352538253405314398306012057788150889437753852926966847832338477898323802473197197912365995486070161934426408393144646333141056626402328370385208652427042490531086319174953930865681435293605364427372971371147770903743601336660823917095314545780912265998264155215000382920012373827142921356922627819316845728295279199079199325775402763387710319850715507775593160341857416944202262242239259598560161158041008289216680127276888380253999905232156780664739170811520550901424147745156153131328730324299665379728732310735116160451410975843298807468111974507293801715124537781220428765975763168390321406639986646928251443573516670223848116431213037216108863341707778293534350136737127310257267479882069957370375675312438184500808474671280709078527608992411303450187189087240846670456750117476034578233632471998227665239210659368568628583477837469795557038825831650452634387736636217048192106247127680720083882032117675306948728357738026170853394966964570238523714286156951315068009679988045669067524648378953797821343694097120428365640692545732142976705133495249668974280096112745189571245223971557592976025608875682881283114657599365355878240347313123542563208160150469786355578494132498831766144663318633112960692499656181939267277424793673697836790046442894453142760623798999526698596203228656564660907214380465560211138063146799679771647764719627644381428715421541666231466291753224409867975305369544385626681869720706273300056985223607920728452986151916920264326310204473801644544843750862438013879330180818575788758616760354896333565759487476366042878703504619145008729688048084366432403523562350305351002746214012080837416324298598565912468750323864461012804051048049684258475195440602433345103654473814679843532843976410752002766305255105692780617075069825231165471780926569918584860330794872128643728561786482969059495639427221238190415606985712688487780033115777567110423280381898287093471272612839087431360665191143995540838710315554156456016197540560720099512551470488697164756961012378738611013340390186046000972271250561129279448097384949206086301247198925378891960401547572680754742030881017976117074104768095905244654747279139659358379580238488433577713950770143453165313858526672910616641903563758252203444237822090903454089359312199981600209530497665141113605118414822398346555880737279574986691247321180856657039804526473854588821143362892786144466815276741924869567726567910983381737069109308814819637919539197762781532550993808889806588901761559546775052004232910534979289641046763348448887431763827015908123574868615609020328351861528995906492666101243208971250199589771107145077153284058385982560208663041762252466290474356387938144894983802273057050132572668795228468619966015444043755154927782975538363187155697154195032487056883343442445190420201678718357673381498065229956016621195636176442474531806224204886818255103161545956974072054440605362096332383715390207129932980296484155121402165723618459816101192287212388106845844180055454198200074333125819041539159837740377209701589234278105223146763274083989363009311017650517210875854772047584134591196042485496563352707152412495936221069606415021610957812192391379306890006751399500767069935691703024757955084290190355045067189819277340024848143741592922831993750845098627362458087448908139118786691426614178911442322941065881102167754635604347294623543773161306077566430715141168400241406186890231170510020892388002939633349066156410852955205832184316657289207352054855925665188499575930297609853357638344802270161127964045642125533689456439538281634781807265251133228615803646017126406608853527712133613838153120249767437952032386538931125636012552434000539369260112146215305637452246456978686705700132114256615459391545192912077187614972545230689695877714470118835805269930343135645832224234721490458272827370882341916259565102149786254464825549694354576335140524864982063641662968544825571753059922756330057518425059568902586958954781163684363186559026562668063153541010652668846331562160378769669792047621298630223112538073779789659979010153093168208504115076634745078079862202161949668718976116673469933234111178373333093228469235680835812432866870344102033810337333026442315219571652266108841537626707313170201448905732485001704826619847398476920628124622619285623799713644400909215090398435880004006819233073686462387480551325609164323917575199866915653209948237141069070848428615283373994495033379671315435945129994688688797888387545753362841326254082270961626882690917565997597188836078836178634534168866714736439601037356268509571306950886789033682466840133588609226853106901005744268259937832715234579324254644430139748214221460170225965743864838596359838570901900983364216532787348718915203392778664073016390330337678476047325486159240110404569462999334048440376596419771825961416549792166982166891550775746518408254593850719042581156199011759812882949830356377444947712848324671555346580124125513076385478488345174875977614368397395291254922668605527114778699426111717541856093613634812431554075348111676425483844136765067277444376371923306210277206281132182730656580733012540480046724128030367911204517579839493388073568778303615784979872533797350597298129849709642034533444965433195820217612318875543894806153697815190031526473857499185640098109424042720950471794506496821628465198610624612455535643216705353532594581103518808024354178945041239434288157214865184854982008935660584563564441209687054310596657770945955449248085559199417459644657200738286020632955952160718593986767470628017704208095346600474234219436770056674307809231184827905877550753093263763916735772108256816965112147317008038633342837091522768570097215050245131065454987519603934211549050121573752812982174790761738374145854388653848629636710951495575823204500512293525193230695442212470744624566443695336388010586866863462312267087084883187840523062533451657153964811946748831728767484546464949823627811577959957142528158386010410897811573694065085421822334842022431445133898752829471791467946122189865745328877763767219366452033258717949465581400318071895154748963805496819978485341236269637545016953693401799869959423928731860084940515433743124935803128588289506737385573675577579706123918601513155500813695470745014836966780009432102876749919344113514178241410814261301516648756195179158254097229005699218232564686781947127164081656220988121591759775743610969404361299716690862657571403966478432247351566521219791156111488021301805623528485539031540556090689027672409169937497749408112234144541568988701454851922387457376949499740626792159146749309170749702733731562915268541534779678791098629118207146128051132866924558368858126147477699256489783509107363264354056966604308972080372171427972880289371332406982966963036884251592275548845532304607007575439574844263154777994353024355996320124973216843182013764896172282066361740936835812917470966272396494734034966189324954049778439597940883215877441128145210910736193882972112442847606078787411962205455110837995184714026960375813246929311371189850572212843656766655769700510899496646537635885956460838516310923244883084974263783790521497874576641529648923813412747286810836091357417802976706373018969490446750476636860570100222476279547348896471956734988532794738909302968920518904154031846200962171916218362794083939077529705166511864030531840633487906104557834351016598683381950447577236720224497225001261640897399558081433630168713132050452707138657779534125661691302201702734120010228800372549481561088573612690240924343667099434677048273986582403962217133613850200263697133303548466047107896435177578988789296468358113688699000096465070754016230310622349960851093921090619731647958983340519138923686373143708354849258482134863448050232914356134471672498355771158154311548740516013894148337093292055161271427316842617371436054888798180002435080742281806032250725231529692374042741351237223409817834341594935330765470532870358539512543380078110033274522309178201795192574479559701398813457617275122537598040332993566868266899831215026524560364581570242379485891993567925834325540869420497594710029592267096571983554062817874581538289013487728367229116635683182729678972247725891955195183709349978789989238003546858170170966634101352759750347734109522666297021909243754777083916028879375450055380827596424995639925560186760387178471826101466396651746533093870687918220501064526884867370537312353727308560116030442919521989987080434270685713572918723305627732232551402312973746940044166492133091140827361781917049998553327944760110315823173112158369441324633566698839752203841630607493333106139280081127014549802621112768523655994444572884364924977922817593742684282314753842456019903540571477395122347326240645033041009651631015731705681754992469730256217378704940095100341923531557634551027819026748776356823775121315782826110338770265555796308264246457466897465672133539613814507103735330302444920737161773869635457468665435023715474077014523926828173359014909062991358465458460132935632041176482500218666548979861221315894968082167903970785935067411425810303912686329474687302128686278345085104822305101610475021468379309958772947266024732884343445449071073186855023965789055895171379992211127131832642774237226387546056366615141655121729545716676017364824629787518777771310766831604876899022170370357960629852700464371567553667798183551455180124768620138857338011657154181796146980588967069098649076312130084280513050858630494448431047712039214378980747676041546379198602320322116205318891049151906071025765085679124211666428748695542113713117342391351745245500587599281048073245312225664813168106885238838631079159700837716520585267959279557254888926821765013812187123785560566213191330044171385896012268955319325700518295876442666314555149513234143959413099837635542625798933807470874723205570579464728201732666945472325150812756131780140244083334163325951665598015439760335468163321840922982784262880224252244276457211686606709123271667756005074385602314180535889968993579951761219529626903780801344433287627169417823328969981512768816000594441656894401705104411839350974920873796868316998405730795820304491113068277912453964071466008861089435949748197927821484733352910136689219176599375334079564583957743250779272205738933818342262110311953480524101838631654786678646106508599189892694694964697588710661334835477225341355920351621105240906002307071076768229512799355813228971808773813317692667364253430662866619504187311579692819980515101329313075349912949764263854148455644588330974066062075268671125054517999715667528764459617397273256048952480498356913654524887570340756568708723681070031082907868970420968234921770820133124170122525273632891423946628294718597738835410379711663576905977435211011754819191161585821067080824558071999569798027552812067251431529860565099765778201809365508203235925839990501012744390344134906604916493754917672459903084618297217972763244622637124168843178383449148853434846857337335313057791291715971159357610706348805518481837091212631343270020894468674296844794553819793776328278743245785039468617428177791581200717127827589911250473235962593682191106835211122423461736333577711809947129371932195229460697082579189090414677929666330742993980119705591826137699802898286265108036062761836873399587746242247331470492160322562388153858059410287672237027304809188795987836116121578035342455470783339307702641154264683925520269220425921859490216650313517748038127512254066458365787287718490071057797782696695855585050301831440981431722935551841153680551795391046511305308216575840664575811437636994714166580977871031475237832354773873658545031080182007310598719256189413659124570559634237528619318187089312182865512514824194758005057291168917975434567390962535352469741141537303913083963619729740852591369119653901896078087529524968608391819962944524471627386602880254140582714760704996680208017647220551006946293320457265267721414147056026402828349730769377198560253991493656070239928344321960048075134468097749203080010811208623037194290698276794553513343684272126708067564198477600423104110902104258500962806309907090837744267819166502235204316171512194140186080106158419438313465022323143579905497925881141292474245110057065160707488283855420044554725850990376245121747075799899565240614081334353550713410579842298872461504218932739971890826175665849306974403884697615929173220409171971039588108350819506731053733577628451823484079755994652147855729592115077916080976644802974476130968357556380524620962689267413056378304407948867743022323315933886068483471975557770265251754404371664620073164149155570885745648564547160097068934281032202686983484429759542723627855732221647514770425961244820281211374706059755365017783523084295021204136712296389723492123818181208004931780255049182908921879455487926307134400516876537645370491844619603501119678336755131861263738710791104414077438714978362623654379119381989744471617509183699111833499155829571602456720754499082121749722357514138210013198994137533100407699733785047345388948457616564207637602232962033806889746691498187083408302746127228099017719149861739975438428032391637407764463219028288401590362053009580648731284131795323276666165677365444791566915715322491368638271322546408807428941238835760737151290893985377754942200899735939186397471581679243659370193033054115975288643085051556281170669772165618767107729277268866114309789828761065407211437283558823553644926247594095612646884620402367621784793401765775249115351341759637564595422806833164842078928586289758183247306718009041450999154820604169747732502890129167894450363230145385190604238740094019251164814643389468688906351825839105138948332627103657632909655937122161059311193892630782381498832612921820600409477845062463547089750475741904760150311469377223557379770148872734821260968036293394264534984368160768861764273281408407779786830965449413946504443897958908775840245814093402391988013371191119003087848934806350060692005943068584572529161980838992049129850075651123128768744144773479821021355454774518850343365951328839465328976989485777882172383901904323205733878235556611814257627123057368280262345457741912051475743019453643612108621895472716377076767924366742053489303307262657120635237541088246231200346601953211620397036679190973601370410223408685747981924529106870788812798318704716518218808429774959195191520772539934491092767516150405548795805378711372496487181276506045967341326348747446324730761245112902972398701792298651862411995628179911334636038311219382080137158112787390616896698345185584323689818276173944207938946018152355280487045191914835040162784931592110598029677114902489513272219751289723317952965816186878965560598435940999524826446592720835867322602156934529194085531429415760805608707364376376788569943155953452586679179805081381918511265115467223043799472978819680687555457899200323840828560430954620882307236545163897673270402242419468589655671984031658194917189900604795660927594941778286988998350373578919016419413084585344390370733977894609244855055296437915707218720124750270378824559176688863642760077219686703711050862034421059897804963094757378689784955353303132261368350901557178472589224396988214000417848492368208561253293080427565262674330020408587759397677631145287085181077204917144347927273702206522263940174188009875234458100420983064694137405651592808386621334479391309718344601281671591918926250040169948011437787649391000236966631635964012540985708419103972722112141516875549992719323639978628867145876708177708226586547439181146583042596006265518526797782309195369463072568988979075983243074903414007812018399491671207939933838737603796883370019495676655552443194738191752187464990547048907401331913247073613936504409543403251867395189650652838786747287481955113873796110735529718387020609561919151554869502730758019040833748281914783014654093069796715149262200814219711210082037240839510862376157914621880275734910822000717099520922349949592926443501282250217321821137458668853075051711337728541291079527348042899863946534928915372187333895958582333809018061681969689169162246084354626562198445936049626537590080239471098944870374663238640624743190132652873337494829380229035386428811313687059489826514422934854645168174818908416931776141936590881281821898803838905541136827163148472906817945454961527030015579539240107314800097691235474124581574063837874910186680643802494678695617114396138112865322378032076991181285549754673533498664643090263538636467680354189460562136078804717854749267757568800715529298000054866658878797745819528347674886293740872776678177934988362597954370865470122354059226270095267644382474230689114624922844643301379107940924267211093693488364587472542568694518769608110843398614084479047256520445798250798868314121420107185344152930749120440437451072666059838842389363124494538758894547914290981636954561812197289609248272628263604592920272226855928102092397072557795256957975921591669370233989688611118599044262130729023181900584505185481894650112742771388291045556920848649464223189205023736222773704526867722304386821374348241116134242270026486222741169864181059538005385599787044003472344586838169915766550379546604156720009757280994257438803192000327855954272108838579457602332816830861121411243801506602415330148696819443522159288502469476144134878441167241012972800350379359286909063576400804579688647713556669335669524572882782307311165302143931127517989290438108285366654993069754258332440885104351243903037294338670116548959660006320463459270413911697545869476159093000368081488775942165678859149509467727360801000059758067996016032799218732739426009262920089746068681487874791506108289968982766686424333437762752195855974285972083348982969674896924444334641729033523021538818114373041028623812356553459684402353149569976612946264456399847313955201544787479264304452029919615868114446205377539659557351732204777055310375397026154107337084409279540777997097028299715103342159112855372716584413664206601226621972740699279273564923212962681485015888941156160948060459074081504056113444651392925438155953794073491081366295827946559810409315843959819515065662138863917162564639575643545783429104334804930018062929282643877325213676842849395784698618370679988726008954599588571945068782600996458955514252308931978717458389689957911816628613952456555736716024064877084813996233141891039770522412736191793770654175926270667745871454964773921063823498195209229798935023733029795984593498031651152463384163315213074667995783719053220096512522890443289331196898578799699109130092730946013951191095756171771063058254546656482052432275437592754806596595598843095331202167414771664460422822034120175849240804002112780349252242337947815709350945031621785901756106070811735304555636560402587192125885326259612618007729846564865859475989804210165579093181912162942937242188784138588712607727623784579087591326622475903599800291098103708275642766476455380557381075561965529171322261729556232022402863730542806080704131466927114345524337047167535667386080379812989013828792525031481104034256408785837333962399753069409318525238057208945418212050340700526582379526103243395287694356528479800726720134967052500190203410557915922242958314364693437094163562919817496284660585964927751162230333323670665744852497864380556721819800264096640053610294620014332457297548676495977719603715594866664757767419949007701634788722340906467851324332282166911673314636274025392841443015989517021633019163199972341559393523345129930173936691996038892338467183456380867774031855681012047506743533228299561976896779383955117150372203257766466796555720027357565902766091988718514401076583161436111230230569608580279088495495138938476327175833209138348301533838781438428066846450332911237656195959765194515186953138050604837589867897592414913578683725415601535400967456394204962451575170189104805044527656848384285299092326827288140960161819375371129476812624730062498476312547902376682836413484585665529421189081353681255003326761581815949071864215507232959390137452922232821176672731844735595542223869342080448900536995647290361961710887171209459924054125105761691931556491347523768838238388105371716977112291137768493327787320584356789598928329231805876186509553053471262837101100358922213683280863879796322189495218534753206449597967340192954951120873568657669053606673346981419721948452989552806714249324861287017318131684513552527596116442072724127695411070925591918816747114023088197012280544535137042647840539276828659367721505515170405743815006106439938630634554124406476512241035533876438435568626092385693127303110157963571603082611898831337279598634482102159129233117254350359642576492728076364906772232676737082710150423572283948054804178961551218873224338937247674001545823122152533607914744188647279432617641401843300839569730347568135099882049733741476209775680590886407989813698387316641358022505813497537797948078970713810511465694786838473006819177970283487882327678775975280136808025832149834634363045660992251197422757901061937888647212638591596451364956119425170616413727372867874493558807710176363554830893827584671165746094930531705073259825897817731233947236812243931913522894172673447765973803235483825724480730719743758030233649224263044856873235211349505910922137197622160833264217354994435513944490931033056962459055135347293374617293792135594932346875990671266565059517870158448796495162781530381153732210497948458497870035163825666558936841270617676390281753956252588280380340021871177883252616864141935129990539743398484633235603197324786711089846175946738852508411454496682302947264797772275694157520146278259703006998028279237794314707623433329989182954405205400899620929260151625616840698831808063746164510585247850887142881822942505571296057040925158168917598368602241559332293320915988023387773524453123541110020222868336304377293140411668560898705001350183345722541488919727871876353165791480197841497708757125490441140576464490255318457280399329239875587445330705153947730457791170562717780861956243485550643078725418204328248588839840167545934751414858042580733953879856529010055429255441956716662796367028344382610552541185985502171603375792701339386740420544191311158148678963950469933733877311562830397249297774377378637205514677053057011564930456849904812972687236352175448508070417791607602342244080969228756979568467301437321182711198288242314638756910686879412537322735492999878053764809487373674823360404991158990592728381575916241399438889972444730483166663275126211483800420029012082789583164370821066723866210136857153891073277280659998102382323767380506919739325599622384729307153745011350944355833555683631945189642965981966944944950190164850976126178558001296198730820413389582484237721016376594199166973757438701484552033850182914054718703103533245070864786170202965733606780499015206432839694962470828219430576030895969599403121746038081745185570822052959923688843921231442175133467017492480689890419098565525229497565457731331026212911800098710374934569159319793978422869665843392431605440145054354050856054290726198087930039452613158861420797464026333878995656202726405771378400996946695421184811252471589219771352934090519962507204254013459090074923546292867238521794790998104890297284674306826304371039002829949387883922467012548987581160070120060999493824031433502939329696089255481485439704921171252703606998970564938443207118455076974379834149650225957162068177246620597496396391728983577979538081890014477536861269275434943214547964227224476255113670259738335025629791389994290288274907757023539162814908866910950972616819089285583558462079035950426801202879994045644009798595977303533347975500436227351935512868474606074672469059105751971922486187249169464702530641694412991259533964813695819551924254070908807838350230922030803063458170564502426235161675353728399629024708968183892533941306776379084195802716631432052690459453842215723423038160384101024342356473705778570667450026873254641033437452851500181877961158832160145277531788521584263351776102052205221084436254588763206774730772213553819808051109587961795979561622099256906120174406416144102906948698803229806784776402441985908869636511215793023908812759156167472236459967106225476726823068122397934797337822592605951337138235740029518067696244812191399949351562964310149847601384559178590699475806869554567372468362635373571447666356766623807766762221107858294620439031522493792291142732250708151622265859274024984253480426183032162294748739500566221229846591892136206830266049017461188145796826495504233183056753421526651282500318482637376350595883373297512420509552397784390591762037988594549113869485954780059212287588979609826847840340101962122129399561318182333559482105780511495572584593171922285491171521255637532654032942098473861184522907749303538875659228617564751865958420876679741326716804892135634499435782256780414027951139755740765442144139511709734719444163416839438947970904256391789831804618812041566947292142589464066287301587973077344281123536903155813547697951980534909914821720804855873996818511833335889086233389428049144854949598894763511851690023769523230759563101576504371181072819425226256703438349861027815725545589624253293738169921520094316794258988545132711302051486291244243402062399701464517381482179190769039391847149093328446233279697481679068218942339573315335208724892465690654862962594714841687876213945006921587564820712607629658640474045332243529529086885752852302222974897957371924841693228890564709449328949173426417080574175357313878029851737560009812084227848545721530408870595905340436757753625269725697079472615854997262569559562503381109384339309132766976352714865822190920562345198074460839003423551201839381550367630203458607018324367063356400437578586524668706272318683960319735203214476678760903669317905026087081757971247478100371666076438754697761265759577537680483355202623162935870477052661195633369543006751330394103084170548138066601129995537027092505662643456125026240686148833757340795059929068795489881272507425155110775670209463058271215521842881875284806714735327150523004038341669792749780654659178712728816813988731120334006193697159616442625978271885098289981586798720574087279874142829306233796641312936016710970799546247157051949107150146029423301837008570861026339819864100117889269339220437585771974009765560165715466350329838372040838490859956654338134431518279935058991099899987808949802467617106223789490717962690720799417762091669025423553547126473179305100677000293758671869383202761871074671259269161232463257994791902998839553204108436588824706410004586714581899574403013392673337817665148680563213811128697917334844178901480589535974925857009748764908959625635201231582899791103185946552783248078983191847083074785051101284932471628028400583123825772267337431278551056963695616812184126781789956732216297000514664601954777386057404825262865868038539783351730597118295276851696710425877682080807293594101952518656269717376242503353511636906381106810054351356831036545461374648446577868008077191551750864248335262978849826115686974345490428665735095065281308659471737655136077022379425328660079804084206845593514708726621642408975801442736428030689555144344110066042812232942035322720746191036943881984660051709808823272632485743287182609742232645095218351604162344197038234386863565899664423297966533529285712971012558976620465942750222445613217331449242713227910212238448666117231558598793567155799883790991327925132961714979804363615032521405204204031617569956871872181070386520208842726812782138297811894312638739104654341678645210327724184827595298227712287866045689889009911272689817685460395992226237178240617459088527968754221554547989859551897511954249682413608265066799709333393926843029831601826929594767911468630347966439197565929582084344428281038026838801934977379985811676024128100616460731805576176242832718497767684761213943003522239758368121789733494612653633513782808141821845721750641823761229725915187848732986286999394810399784137925708743686819668054549472937317928009334978192137434320779677720611879530971679109537607103554503067556618956641983770604270169613452716239898603097319970040787128331631851733786203890519018794777802119873792688054121691995441758587034790547863841881058270170742961779981237313011442819269062495156629567394213407269221494598286186912668870502241389749445807073319727875799287760249635552503492388647238957404226949022625113708470522289209894321255262919903033559510855634608139636012825012784638258652227214379325201928468571345803198727171183841740451674476874966455449828629683214335352080594522874767988782982345607192589726979103103353040445028921608553033032993119249887499892843686941042787215436154671028945359142806002512537933514107526630786356060050080448354586003975153975682317888673780140190649511001410231412387816564302440377821478819906231175517254947440295747496066348668908890987926318254183752327093445219749485995590420088422560711155762106425132859061058995704286583660768985578745983878767330167739025733585313765586131213619506732626016172443930834624456386458823175715534701064175694497521450908361603312122052381509462903216719069643381256133135425362903345439641312577117866981398456823660921131933734298942374294047180687804698439769123236494797827569540066181098981899932074518343984263048947140067432868583702329192794701543223897837301269066732291310136048887568542670659604350704928276082411627020898140524055438620148620339915565231266998875502827378833836954884095574321993546538000851042394603728696886474287076593435329394295243972318353493108534847401205540033186491846825706506096515962333639582344988449147269638617691539152576153738006845696749883197028150814707438851675862624516287947801543943493107888547318893208952505891893969824964563590996937801461516979275193167826348543100979280286695880360620673642225225461707934392819707463463877136587604397504559872403379166458714592786915232381209243491702607158489103451812611231235327738597792609883608592569566079605996983825243829226771923935218622154994803894717822912469247543102537218622120322533998495900155063143382981183346934702630849123322072251356112297884243753431702581003433178120583528610109754348319074371953993749172989368195421316494470854612075914620831595692941281105078993180787850387664172393677486777373033265171703149886851319564919347162401216048357554211576539968861351337444436057701403213048943834858171008244092827700219930842469780865213620557663629384261586356283171574676603817440548975506696401775775620639243140482906543129764351869043753698123705798134880528618231368172144570507354885221083168769644346414276155505532750941712315096677371499305979728472588422509383879499186529975042990951949873706529192718027989124588606139062619629371795012952438847836856456626935347419571032603288597844546097733827103046691503483233258018820574440728126069541039479082748013200590590022051937639994460687995450594920982087784793786721215932389281331818688118240863869981657688394934206852551175293855142689316732964889012783036386911794801334872245595049703580322331800337358177483273956172319123707759679485304559087871283485981441433978838103079909361181760717200594075462711451978855402938262572822062673596590796536756783344847532398281235126891742679657769852360622347518334393079886098484425728013616998552278105717107476316474932211350165908338007583082956405911944884458648158144170987763955213183578345666200441663138212469385294843403601968227716595342752400480025309608355075567829168065565299030204318160726762203041052120946754877149972389114424828569276164939015478480609882442368900071249306842497599486678945783876966964377833142651401420648320809907052592245441958635350960877652922537164751566697500278866988669481939088913438672285432569282153473300725464814691290667078993673304519558892784633900868335799389703989838344477573736752730119924438987842885629905877257821946616762740946395704341328978323607132861877123464239575193936060184239755647693954176980738876583636198293079907931404864543702509297355653534063555945138405637144989986063399561781411106623041118671558860332828613258899080386355410377195230509021776011951089482649674825154496219660899991293440191164198377626184192936175085007832131156950633940973964102409808195471934823919341668703798810610157540548304584547468323911733504728563715915118270631950760160725073207335337537419059156567032788912361512338219500878625040079198444206792709526305254428771507241203261893614642814352872076262752064759594652862521874554225438346304214152399005245213094288840276288693713602389815891539172068089682097863594895598288980675821704511794259610588460688013082758820192845755861552540045052120690837758475240599357240233754735594489714921678879175966303051194796965345081114187917410043861587590816157803093728170907793803919573808368842469709405889594916111523500715713959284992222520246597206243703143687057598508420173196217217860134642097505710926478890352453888659017971378323117462609476613419806220068565914443672193192209734672141831254196753307031998927310269700237864205332739614841276876751754099820657272394169923317536793874363584212745787205240959995012418031151296080901074954877794064276192389356473515593260328582609006392178681765666366491975783188259689149310066001909005293863279688082852770834813148220669049026857101818532857645232675983913186181846871615649748329592789848663437408336836199299644371075885715917315678123850149513621063214565446424592673761927304983532106503895082263781395937522040827175338216651247623295291807553410685841446061307819514158286729964070154794690020070894118807295553343793595485444699350398183232573752390351026416550924937980195328077543325173169346546890384457732082196586615481944194982927610684849766188395502646529657283435301694965654369837288562511248231382085292970798952724427239228926163466033917980365965494097117359140053883880363166500640289189329183958591094403269741145116948765727496493353339581707611296619235604360410011597328503582536566127878883194536192389968346920855316215066566458311307237095825945758409455111872943149594309795927848082185902372154033632017306707974850735327670859113279961108604011142204277445074852626872620558745405358689814301544071257818170881295275719759477128585707030447206363954088343995130323779786908352159750538498007641326902232806133302765125669621079889209188403968110113554337545543401498628660312557299946179875408093257896047604813395415303323977674827264228514509651547716957343870313209847128682414007935405023076334637992984942744076983214509887505816064083377549668187182177933194663515217321474698533055689702628962054575241984089874327232389495247989056466602359610440975823245774976515517841833840740492195705561733903821663834920765209263373474753089251843342849832367383040681695770993073153465195367005130489537343182838033202890711950062312567031984160951565601020810965497687109354350574792897405361365898412630869816284799443679739933121620172161092332414320076193243225334545515399148748631491376966161978876589152224028874883796528524763224080213821068103920714580946668344077873472489480421772531496297465156970561144035472927216825777602012519369939337135383901233987141304745864437870709012273335715673965012837811374678993435184042801392660011473714893198798037169774164292116361424214247298125739390859242744429508189899169036201758606144682355550134065954991677131559910557852222563936036710939851895848611531502791238563466521124745021428376925002939776494800066556983710209412661990547692971837226948224607890290365647432193530602649416047548517704974652581954681452384516558733014520707806595823920283184617477786162822033769731905272410204865126091661366603879776112193461169873672638488579220380179438875848213350645000322512101683229072162702666339852313921016017002772454865271204618238447828230784277810452594219456640270582271681013103735707277777420137833834241132793293646461712080165431828652827028584071276873221638489604758113212539198705946544033160022903617599710144574391717599525674970251585336077343754195753884655175765573121239999672335560566664055877423670579113732145470841314283116949369004502108761469199153761797776864695204887953971402241122008008664592900406335698031277425528381081469004334416213532674698216406991923127146606552463493682859117395470547655357034371003048883541969614246066976846603432280008043976351785402599462411535509136085375966146323059426540699087661102577064180463878854979501849428237586979610178183724315949635242841088177896604672211399039697211952208917765980609043443311881461045777577623303074263081854491657075507077285977017151346950187385484169666782678267535845712846005953560464275396066561104269873891463289551691478055543602384775652006680077440835450293245216900789316017257273866011207918472856698487968532479808689690193596623391251591684502885124089178770235894589155569357381906619474647720558799782482565870133807058021687080030179136309500763002725696186359179040360165627356211418410836814447702308956152411118154893977444081090721600139854495084061618612902361015630180268703303377277525707250479269519425156709143390644193613592010829294940457489904978575242718963168495051767459424968384262836580765021422770730948905143017671678258821952982855362871089566815587844614741147510969014985306941993631476495658041048022940841059520338736109879254844266912353256653161842270111897834683950118222831264882771589053597611577451565482764428993494238054011884074870334425867547943842256731368725389259442963737960123356427933552241329364846901186376684194918657445681049327482091368979393267478390878210040534864470181318114328317324466477077186684321050174474938443219381614494033974961113617316514589079040155880270210115806161662683168394197290935226566126471258048953014266634552508189857037285944581638376781525275000546368656095356594174596038784491315575954464438812795666972004015941704422718986529046387781650089674625170436793987758481239689910195725863124073427300442931906337563600892080416897805462467697502894481276762197957597008280305291961707318868800169133993608944662242281493205395892353161813451304151487188219402023699812570854746068887441459613313357862033311979368962688683131604809256794341567957656338446628129402519115662020716952043376281591708310068367436205757064431687709183659821796176831584771247043777707752446787023446672069053413603542209678825121567217113042215175615224712426150765163945036420590893814954871725324333403195224658547656608093724221189794751267188545435669527587928302097735368705009759656731559774690805372381653386670280478368612769732750807191392673898800536956230645723399736925932680177253521575290361526467693115117106803998743336531248940548708999392265892697991536795058290069504270332667383356541915736777075972628106400716058763127980257574676193787464011335271606618711260773071576027607574371513572702589723537808605028579957345187068699028231553698940193585395974916292113143226615656826294202437041541726046999033496011826291095033794322301807931541083124414070037827277764762561219496661097433049843127223669911536218682657162475976696033930825448601221882247881519861852867796466194778931731544911949941359895222467704680514758842383370130348897415332884264759035655120999756645365535809855758626458993609394467156765153974434963070889598589206995497268511327349033354086946433027680125666937318052754896873110466746586368979271971180030367770745442583224973008508440022548327618234218050357684770414275623135956755391908972182196761299721893594025714468207239122317032584155645472652653097866192915392123151152345927768215132131959148316537513600803994094096281860879248789616356289767187916018511678287385533555290068553949919405210845317589126310681387273802920119764926997442200488346566970899087654670433899137019610894635294787869004070201125741931586638672602119433121427401190172809019354473042066844085080157704872965443041345753443523312368094535252624448071468642456120172175962054906290097881471349412316760004499876544507428847463465485370737598629928101163534409103572963741181733564972229154838800896682997539847119733618978043621823333896017835526710355745041273309838467000138234820345101962037894000088457560500371230035582195949762505212496489082184277992973010906688602254677285595478310876932897733661463856808082024893371066320358184816671682476712023173367195617647654934658088592582850796852994374347499975830428246920383610606244100125362642096625029013357455604128137457444991528318259798722785881034329932268067136329630721359997571317797325766298735394112137684019981838591046411504248036564880092094133776549271017675629110536797397860888893451279033025805345098606281079167685828929922611555293941630830010036191676332305550005845138458487055442997740256271810944411168633840386644075247352826050463442397793643466167407696876482095503471986362873603421090966211942873196941735281894495353100462533118138535968960211297895631408751007993759737170517588028152427099958330409108699036959347221932759575340789775239827383915378964396574883597133754058034464106859249682941492885694456478413258271129926089342887050780256020424135081546863624899281184837435744006722480723910100621549399994689507529648256895861290877535211490957966937804840843190096879906292352092382451625667412485575894245811602601841590768674712420111784823635713786237957311773135074033181856536915837466460059990150414999616045269960963650128902798854231728069142519556222117849698779932973910212074746179078290636270840203613035508914721448173961543346878784564998042639617822874559984687890536075713251493397769953026829577515168042507217132431656186007534577514360724863132099889719889551211404322941482058126115620960392088373887870150788023644400203054292418145222325126242852765347948514513426897368530313089642402350746360189675701631755295687095975233582298669478095081019106718442912361282287633765512204829261109808087940854569405912922284339465747986395490200802543243600962638225530120090313046887198167334636224347028925986836485714107080370230544442211295554763982533741504604345001336791243251608987700137730179215523795327449331627243508111324919037948773656923471980199552249449257325007897319813348353460267238612425899622718120219708090733529894207589782817756898398144178074531848693546372181702877154809475127217933818645296987437667771952953141541799702052326557093057110179238951418785258205228343345290810109410695241249415656658640954250769051960878244928050124893847472765297709283036212164861666596643794653890811014591859628733256846752366939115279970089811200210989804969384645561693455336399629155487198983878806847476039405665750089923312464996726562584649024788050239076998001278300211162024119721474076653684083019034675293968879746215037173538577020421664636117640850808040685052533222131934162302732810357770390900598683597959392080991730619116999463014840152597990007333128477484898741197897087106567715395692049164595091608403043500475488958482451619049868205227465986534013023897749689570294984412403458937052806123867341092663466941602460700209686091465843984179360569076395987360130920932627997013890302420566663505579746638941898372312720625911302338498931419226109850139216122710404335729051503216365573806442394661541923245045404481592542611524579051606702967824784753437268870896334341305624984025412531929688095748971038122314386207666920009125966501293058403592626017454839273941997135512215481913071713231559347938225495128151121628160748429999668842388627267651475089096589254916166435845878988466264962797523271071102726803164937236466590158751919139631805882297863247338189829203525067403970891880289922204392983921515893292197803488106599950994394997805701080363130883168389024698267780132412617882471461886176668500113548365653151393301094133158162384849568774669035257206215542738847184363065719417137085830829119064768429152777084258415576476173833520908205676772728108198876492831353065068402542053528159394268679701485650557834519185360551688676642283244467398636848493957299769482510275038030471050285368530767699538956625700486572394087261404179408852984429889758990903896069093493193445321897127121607061405502369331671036718005633318764378903554053818628421037511906427121978846461165148222245706005968990730357073233600456737819384276302932244647290923064103146920395104603511660485294399007150650131974924234047215384020296948736832860179392923466783257258340147816630110549615195792858694508264100947093016576388329204025821574158813091762472493804370411335140396407778499021538152651665661846828290805725338827978204081055595717329913723733287163334532576922726250895718519433112765446409626877477637393633782058396613494583328809355702274687734921852391207612517284075282515635806242101049759953735716897942180944220880779580689191775952784246472945610987128104942650204649663425604986371033927842903867092274933370691452575457729190332425755994836905070077365413104802178129430865593812448961012757341657827239209255906684694360779019436873487690935527204364445959515713625574295770566729557732393787525938060425904823923785484476622567149084822528862680723189202062023012379003864571998753701182353184323018742389351529715988078519149449688780706294169127605698724683754881866244927169744887780299126915119295143925581534711844880505055103985672704477733222211873711598348454163374492467146517042877076424455244664345661078085306131313845935891151711163646549531075826276865629840703509062840834067498618443788308772816075399621547900570130834094720687025435144791478316819343386007797840076331706286986343901892828236043638828086322917063753260795901844351405162046657928623639281785433585686961275636130263631750149141861742905253181530493595016452072545351131763658234619425788321814170213559470723975872779211514603527059697644992785156173055847499686947960262848731612753827734765924687941605568302404379954390039195029643892550381242223104115221336889123074641116879710396989179448788857707605181527764059930582566714312837402588191792790698455763999834496369958694762430799985973697570311879669322001755658887309958591526413788735321275545459350534932666126552446817332682146792721267591467101952317401634286429092610472358152757513581226271350273553833619938655412321817429994055307035169750575182046909168746363314543003165325539200384830029903486743574119444214157288112585694265747748077036766221637306976292590825976793188307036777290907394372467393499809794423442820630695908256816935640418910078924802370975701262398438958536832796960235312646300676041035477633628949013664500236609040773991022622004273663517823672592710151143961558015881839042656189561920497121653344133612652593205553743169319294515941234649913986631540378615984784686105168270334050727243188726921871751556855965842322804074390141049716670245109273146935683230526552302733242820846628428461066951693586078473084353317440726440785881888881824756307556037139403103433505919336554330921407116793068185066645284220090891465442585103803022498332486201829977932846063737541872026383511083159651021193093707405791811518972608068034551919296025992126301315289447314789532482356625848419321495762986566059523080187812288506738688053115826256982629776397087469913333400316654167991262966526654950196301071788160828514165658096482259558770530061553414773503631280538623905703067082414073496996995497761442475576399559085826985374888810248457160786516988219741233255255089266700826047095582622727291627225387561869554752617210392856491153033738393134612162601970305390353179826748194512416640791145458131906088831398850473501944642055447201658822266194246652815985527595283870773947253198482022341433914314082118666837716173424810561731688480047781530862175448378799813817095543410702427573664993392896055398490277054425236748726660666304319120325583313908909081810706791358210252419031750316855948034238071094423846938848856065906331014027363565743421554167587935883932617262211943503133811835862313735123592113660360998601122832513036672698841986701742947084997273036414602468813684440312843443801719852104038039362939631625762442972238950502446129544304360180330463286753179303555626865342309288961490392519006224268501120428707153644568482390920412704907969283174587230124315122393685806915666704641174572983062197390947314547730939024113391877932077627098781908686074341728388325193340274482206761680764421208361664716379087153054635005574799500746888021218465615691635327731267624982304324275908834566151228570883325709022887573852806878739322773391798297558553303329621833736559045353919357477238765774202779388194531473281311696931214427820202128750539896736313553126057271521691082588846348218715665149913483942744310003934675583478487124401092669948647047427607401100200111573654656046001504464510644039621330983819372038177139740323556218441356754008759943880641793155883892535548916708895731730309258170083927745932010504207237885535368746416708366189091913975325973093467935664011521105721305119008694768287390108525612161330660149160671572286393524714551838129189030204490484210376379260483034201409165570088439573158958594445949144201674193537649772503670444160311259503651004599555635015770586970388899525334952309783760288463244875216557649368912911990311890780196385841221875151706735286532780153934064652594784651971980092344761428602283008116669643800011746175965560389294338573638637726417927666129512517976222233088144045712514201278470416493709873597396784152797104689046973409913626539141416755807369600225419703940212406988706334472019747202487522479736883835850091417889426995653024253260726350610448417035707625925596344181105857702197939824386564434467448450345242780964370605254429397383728949732473758853705645528376406993092678923560363352924493612089428023976332634053582312945381541737674744123973124349008794560063602447287868244720921612755560500758136467439313202236491334101609033387178832284621444189697415196377624175687746981251886102560489757838124263527806172288429034763705448389816462127097542884364022666574022097302871007734319099845749138993487740629122157395919662954227382882899300927619461736253493384530775286523540470447656857265785058757217469285609656803620918354633133146362613103148441604785971020796542210430888250143699702496168731505397529686490793592983216807586165861842891282686727818957700114673909339369183857485748897905930829371010486012160405763508951682072127360793760604542122618903775810871492580951963187442002522023863435380606017529195274624113616653671944556491831837372781309963915711858941621303962087355810676399550144432953655886269966697684216385431324331783408612292443648604846883790467792928857768576606819392925929636942284041303042725290093710871729824640033110552372667873328772325150515291821300903728754958997099302092376266217831783371520287238851681271878186998375051129681232020062240685809774316575614659604212399838599836956530562801580870937498046622302692682004207703241330468368374628320695167174204687631750962307961431389420397798163238247306762901910288770847900416917878588278231510112575680599309128832148540644374754599480806280045330380659232327109789024431202476564759548728983324089801209156285570089718768147130230962132626357262310178620075880289083115944868878368100699674086347648096046821522578369128149591375262235800772867042100761295677146389476271376199436092305970220654795410602127440153307993177175065799761654744390180390038777937061240927024734586560330453316329128052136450975723253351924870878105948416816143241554844088195107167547132107843504391741442024196524475884213299003140235047417493227935767724706148774965214075881491416274123974738184825165495616087558588505719735639129205852089086098150936113321543913729189205847227681548035646671674607611391502254182587033364403653489151145806951367839690714659879537978927541369403271627478064316677858987157195073526856480634508821887867783021130714842688724958740757496268546339708307236645122835122788190026160885299818788591450997807168220384479495431127707491684272611982414381124151782615085961717916455790825044399089688751408220906137689010826903710723204343749874932779215459200102937819947657972643569106384508797173330739845791432458852259492659478948953092651838732815846715754929431425628499565746513655087989306114766620587264480853715688127987584267773104401302364292987299560284247339772724558896387113075472913234694117274280909940405725915540955495297135969714859100523410133994283279388476125349904163261184884706479332737382114360746639624715581723872288870479862849995020616503204520797933629462587985532239415296921943489283217338553204585780160458999122876659911931848840962117679188985600472057341613758628215411832416708921416399515425482188691936662813143629275543377721735734980896036332380954462402441980599598287519146854951307736734256887378814479065527714947532531477887707314254581994822137572904525183007817216375345003234413628410403083228482342165531396679545208218262651119641165139074466872407131732547523376739537238474905888184698770832177389525244499845956826387898340454001810828766022133134698924936884418566722390235151864316618831662310332698138022038462937227525392097633332400954545222329794247038524297714715519904086721023743515579262894161161226053774861767206435465659572596766309352906025869092365129573893842211119843258826312817433609884783315844564365507482882130866913681811420624142419738567451900427243940057431982928615345972010681931962153643059422158906482562333198507029817361665250732586182529239194238760083288565512760627357440778332613645930395104699813760869607581525818886541774920512917253585096411492383371029599731601907352961780791214990470112281570144699857559645579824197418719902476772966362881244730899751256362213806634350392758304281291684710687303727662265660940160759610817281297948715836824701748560158849885780319661298886028055639556279550969191848892097174931821057547837631014112507938919888456413793354623758303031611443645105195442826009155717939450014984119008292163785081328095787317919504297907671984208181555195858163834359004526810074019916667582435470266895668513743832977223066721163206530949171522163409552527451108352460135736636608164964357320449373316331138956973953250863235872483103556510569181454793650027419938173004268601960009534569458337951084255498714556481707673606324704755187556957154041171649433889170425736768523434420535562590072377836883097488516492780450434554816662712309039914815792312754815336189834537494968272233433453423811338005809892181637892483548882736228723991035391611081129314469588609974642667699158465463469893873729095607501335553833870918987804481906815738638292690255154570882185947629370140717916098368395461456940173267501192380158906200619769192107567676443758676922637126663862568272519991487454946954599756001585860277246998357954509869210757272801375057167618065812407627413263643407259388401222062020769534049745900553004925952499779212964962758984448050219554590399303125693637586111522564121359430492105151676851268872611712025795342322951152974274884732986320119539700901551793783128055966695399364561793849480877970953168716944128629287860473951755216910130159461980174698780394186776590057406735091538878508393566748016795286286328031224067525987240984053445485090726585163408549453664911215967360489261022487016613381978367477136615924801228151895319516944148816004847049686278192186952173201037167046392641164140646861006924821766397345711733431274319114266520076433740582360454821785328519961560020555949969332599222320727479390597552492900838918553174470779451609853711539552465241182117825708172932854219678050275036442015057128496284350445554678519517627669456032825445390509600452922353489978945097387587315039051735415753033680377428819659645889165314633956784213869196853588293516735386776842703184478127726090264828140921705345939221406834876510976953573774692736745136108251979954358191981070089443037626265703330855254736655214733445536637750378884450983289798713149381790520331839000006011127403262436610690514092766642192150663586566241109316289667509618562110401475310160493606380877687560018806891799066697423574496879924858228558198688499916004209476757938650005557403876433313752799932130749113363858466633380851038028168376369767998084854269228735484565974239135484866294805749848145311370818947281402350136458524311711113593859825564930297186215154539142406411980207258293131100070141449099336607453073982002567660596303453877421794205191401255391173606263368864578091961898713999520376586030412381510315620281436425621804435979901419845557127014819685546766958429671917608921166332260257624851385907123127735723712802508421016151821872983358488042256910721847116329672099695049603110713975066396992316510313089356576630190489315074314094282554368822575707584921739400186959058012525099838026856578892316514117465842471360340704609407030051327191704866306762874972159493301962879538985669138460165400576081731370608562249739652520655230460528499799827097386531947011488943728326512917030963684052347445303826646531617749956673185026319063233268032800280468418416618454799594383718794755809067536207757923892904541152144344083857547325842379981823621351209485907930328275901498838873114746768598848287224611026445554298310267100592584546048750464571937097043049515960526134860547100848839535699935568905856204573652194782297555927318495037029811254324989714512228342384959351294013916135647800848924624765238223291510376180876762655170195376770096222696995869972819191820111158809207478576381623883109098586962840369691784970820178095680375567921329823910939426180608516783532418983019766591565071374239299420319136248518337419914674798686630844377659994801797677714638149834949281742428871128189443452494458510862008220083041499453141508139918141331872483295091357360100785745976450075195724604737467316913416499249858023705066319980344392799515061700829404158938874528728337315308909411053964324726175110942719740456394430589628356249798010525025880818073066694809540831660612667640540450973249292540209615495091439175136967269687294354083153295279238591838700440646137493462904355943567622621697064312263167975596893432644128470617973993523559581501661906595825415194458089756361618634431983509498650725671081244663894478624089863287068070230960726095621444918432395449507421055716923432336600253933379570222708794290271928401225267786039230545870467361653805863975479622458825116703981297383631246931961019964792426635473575244209655227814123456846027891959670683036580620894596420161088137418958090208075233574028863639388471955430046231156487450182723833046614062724742679510419198738111894274925763288404584977500763549557421560582165093102120590621481197865704619791731293672902638135161857215973360339684141592126298057718506989792623443983308954466684266426295294683230961645936011619539085208620908749862294455037366879721422878698722433630824232328525628198688650860724020690034753559550727467993317052371600008360947851128696007004019144883177116298079396807387911293868282104162711683126069560776462254834860179241163160076674387479752880681270517817449568825715650692705077213251150882869035149507939799551856537129920320633648865246325512808032192190932704860475416016480830976109788272733303145095031797063289392091331085820662375126578818289779473115414963509299318868527229811429998003700101908091946097259199444846746940977671861138283446257025583956392331883936763954112282677023437315175837484771979446335784673792586866223093940689665193378653274520965356022377350258244967511925090761803340127297633295094810821630533087832430801510881863954127193518947777602616385327556143929662851115612885142042168908762130943166346034581848072142749182600115736026782104339095404109300660582644435313127228297537707327658229351974518014989726347351836244198923775557959612288138111986710150794285860469445942696771497269939004616828278569841284135975490069220958610034964048115052604282405642489736649427245848748890618722402955291762931671080774375694856785133003795957750069219296425901660359910712623950072052772815846594291359532748260526000749407685897000391991304884092725539314582872017114598464586858377398245604948497987904237776727502508055454066002747223865366737600479087525513256405203644409184920599750406878433210630902000676349409005499762370615534751796200467997769933375003935265624296857871590449069298194712879498739438847047808084827637693765728039233986153045124053315959694689731793166174142421724761527856087938401755153080859213761453788601038666714918411647102936797216669064590562306889769928449386184902902506369008573940067790158378219003252991468801771099046609072372916749480012353053875236599962316047100589963938023509389177138655848518079178786373824463891744370759747917722987839250144241682805020071280537878416762291271360721141705875142976503633675135317171188890295882376695452324633576220117108092697284085689221512681789294435554953702907032524471667438797183094162851972858877771971777432242646382346716443843554362214396905697385794443991649092080004215853719528992656632457556246924509903968126386618774692018609576275987691121103290451397326321564170810863743156394041482872598293014337130505255020330833523973234374408632197338883892512155286229439163775981763116870905726741105483634376546744419810871284125719264379707509963639663447732026735382498141179839452674145025745051260304166828362282019392696802640034044450312565669502875844320085168976494389685730829711405744049460755987438081621198971447817454818780502524981364226501916600388054563881285926545674602622530509115572849057924761891556032340764505040466196547752041218051485297469179420475735196937428566615806936951520547687677060733169933919893522334118721875544376853527466383485565363958744551211137042138271238583122790146879722160903969648703477608737591811008754975882170857381428696504671240049379374944238730841420589839617336370302174451558138932843723385373018759135748042779775934429823789969382268786115718853644532361172726660085621934390795155898097731270522258604691427166130104009713680440852617247290488144702333818853764065892206589372901573428367038403585384073343237648823972850030958581508286826546115059595803909560047565093262833261275677327000901030771249764178781215143180604113560266430180620770093662524068604220314618892096124482302262363205330597821697961011163132010089836458132224119999891763815368029819421504945959695606732926072001504950787119853785819169712854314535022743985498501411991630918985053696643134198301546401114047988682837984038970492644703674180201234870402109107956358897838219366109190493807565198520634759848604318928683003619819239608936543498262267623743501966892567491851373559471445636719852999053620639384649659350972206159369412158414474957412301853949036815101937226920946288832946975164742449877280004830309134901850276029077542321573956332192540324347472889425360975432330782778349974924275442331936736977638155233843771416766813546809428749839156940069245150136677313878106457923176297821173052456565456190990566917168230703540994089304854030360552716773610513258511017095086964842126430909928840796110637897378144512755164686691434233090838038794865753671717897311113064165036325222260693894332627248273851372297400424974107006231435892221415377884282418618037813360467564396680295522066808025038032819929840971643738152168698904157770205640466123695033436768822867233805377048252952212836677643204004883837316214378777748842384608920776797993767994267624745133574157571319127513668376709191750001572099026805632137054691392975940700523684811872111210960235333123062635845010158124458537801483695303540793875736635513265784343936637228806914030312615477211246584443433510182922165183646600955932058636767252596997005930885015102746912745708362836588756103238825945342264466671811675532987781532183802551383915354465700099536444721988181117863990971336730946524119099828054905266816849433604924085264442900731550436414087266300101286217465143738301783744206417195045383245995023052247748817240059056319153474219624281269235562036009333158975016383774726829662923254409758945083431954582619117977456475654220659539353162067537752171686615093077251853299299054368852546082756939457551375989152562307250645508115315358049516237484901773432234754148970599311909214781123374419987630554203091899188970566712960941476376169473636113788483838405792938549639965276375413628827265503627673734851555777752278620931223667340836122843774130873090599465220866390407949509701906779869531872488278550053311360139000294765965386145703782437573103152908363789245947391475215520486111291522176468277650391754243100536818233835106207165839340879383954856407174357651735313034784914746848855714449213588687037807155770357330984833573025330992643916759193153754438934886320727100364835851484225136330319097027779868756222608109626170510919234285096221044943248393638778297985956059058291669587796664017574176127885684230841277486997687956600306738684647059134814273721738755927482853750844487574867469072679982421081915723409646215946910874616974644596554991984261792682673827957252667423261418554703260140130893325297082397090316844292781372093624921188244176277739745598171203401983588361469004536553517998516466761742566282063382363697076287316487491570110398465586406499241031423265748355902863316748476150334317349360757631509635374813023579214191470057892701503472932037987218711347893297605281479667152579901871650625872979561598696958850905046437597340088847242379569949994781930878106495281761269646921511326827444527172688523173435302232805427481154893099835370425145312960380865319690886958304702465495829529191046368204738392882488927058075088501285518859352343490622447380221864252258807988881002708227694506517334567976873881146387217199701708703774436900156566102652067133913660163096905366610429873121562642243447409624933226313292547790345728043092016207589373328874913393637236375507795492434070614498955662851530829765899236732777619322803282442773366541253836597652104741381154129899610012067223413258473223708388997611970392696644650852203871008792756944491247987591858396990538512653984809660762724567810175868576411747717079645061304145624248895014432624977486642378129972365229841565972095672259347563918511875339124092425335782589463691869825178625059719711744444829469666140744944854605086447724362643277605255829899639756955739759037913747648122016412802965783284551259883082894384243908765799522925419180629587191966727115725423467000293777292541076359635816156369068009754697325963396371860134563007199931594018609742422835114871890192904360259389232397585311813830894627957937046980701337717162174073475679602217518560341131017064467483300076475288951337170936964600621091967204251355327524999600512742684455379713181296064465379493665929425626927781173688499365558140910416113391217370788489365869963792034131136696240217893507084785469926905191897800811212173535422136398000006156949422232250651428290092754059497179661699157940150938839229600445110315675394638245686180711623798617771902986794204079181480313513680523495638079597703429671853288143740890528236386587107153562199932347801454786113954740532482671541446490237497101593809704415266119726803473195794985892853791683464875319597318235319122942917217698804216864892937555592300491031941281676235940458039453780162326287398036240858791453152753074711376198317890576759380255605129191047919347605465764109759310852255683571436917035937859577306503052874877234166954862351031451189364599826126463328816496970584456721396333525199716443288772586372668309848291144383143159050180884820343088305938776336990376481734425137383522747586557612669956377228536254944181038232036695661183282902043776094088001948604475361440035690073613356646316513514500961948734251989614625825378252316920396706107415378244776024359714461599581347148160008422665383675663092706477032904738361566007167108007615627710881365563269646102247805856067124518432265237699950348343300893763910625660968068616961787997838554225991342027767135416312590706847937826572800915566533299882913512591821492458866319678067467440566043114568121618368599789959647955177314801794107205981576532841770796527719681520127083616761357503151377516011857891558028077818904809449762479108306377183003963604985148862513550258750367969967634319560527919891710558365622926206746855460765341875533999668724904151128585293328196251508236408442720450566217641540493798991544863809511176465640883047660617284618609788652321160092947211224384213011227391336448625912878781969574095186045357364765628612609921475905462425542937464809152416096132108915137738626947588224437275045489747180798461829811948943785528748230693775071079876735675152075812741931292908688560243438924799703331338948435490997377534336274659951725379493875856838799917332467075238497831273589659290049644452686599803903832405765157533611363128450381021733062929338378140611455066072581910352578691561824776442663266274354011639619266533695030234524916839599837714050195502764116530484761041357590445354617682331783267574920961014010401325553258246761562028398273429102037864667470761611376362505903929237816659948362766304013105311897184315421758927733533429105606286230698899863243094342726242818816401274331874222319851486765480445536495356860437635794776273824996360513564642181299646733766000951785524788228707347083329382737775578073823168236148572172963050038889726078473772642705641242890272223198013180837788807735308363224158070020098469790031451557709357057163594329101684915190020518623299744464010905057124551893770978017155820519278678539255757326668874772737547638996953675493598424693173245211960155995620278641331889639396641418571818950295346306117324494273346088957796318990777938650645454145422343175743455279579682043304844351286229929086486513588651476403461041585319247871669479802807321732572721642409842325718748170884165689864941442032538575883390884358948833849484731683151409825642065098462701033884296329375679136169285136049006980412251666736479904807644734439660261339980907096617749605161110361323737100678596083324992354370471544568142990282883802850749977955222607309873183108562897482361829725939674386414664942325525712973690944271976022016798924038798616741052006752640456761856418129196245895799283984450369247808842409816998254349871632779413656453157029184043825772942909856959384265310833926653527331080170798988846839701969846256573892578391603462957929076224401131538792078219191797115730326704976607850099616650899290296344225241197791602346282272881849029805501081746205325413369553503925360055323799389796209203042775081336196855593076369473854146738674287086271939688857639535195274760578190931220884074776329193916306627750324865351818049276865445855369912072639584879555605939815116598576221707259694833312933378791186050673432932789940800548792240380956404009101989131589013653597335245914237315224822656794909695870426240749250643420785237043138231125304820338608599021540898019190519644016383625127023682292616517686922723342245650983544980704952500354574675446244075323518601916231304995605562080388530508013644364095267475791212463919359073874609961458240110579681193137760752905683312350752264018575207593838857009602792311193015144015091876774948756799430928176634398884735027693891724298055983603264455868613591353012545965854103555088144414127741962300233510200300477972087671961922056334510293423319203046957594264680515218263127930957046887108718367816069897151609794102724119904605720111556630741974231953427666996008103083626392838409320943819983480359903582429779560423199798053843949791220467178119729878005788183443432596313605408347355101359496450262234073051480095488539388344428854162332624250149698663464545168940852290537333124355730069982239445691442001473193597747069003345269915398454528069596246447772729012130826500387438830262134661190978053561640936690639806859853059445167968203305453665484340582625544127748617605257508661519851593336063692502120643149308665155299119118247639208055969497471852235465492120987892762262721810103875628464224293407180084709298188343302397791695617410962496183293203587973714356183980956002304841699660491814405963541757927528110637012370516074482395319304234750831245554173503545665842606265711587176354375214711022566032240649044378517578131938015449559739597860311737606296966276487363622288439798790142761788963644276000160583922690372358276282106008720895358941056290661238086156454404872903086205490544067301922852076383179706446089561921736333397058720366076301595451805939594171025555022773028130786819855755860965436313496196277539851987101579760754853468618336611136552078099036433856744676467561710285120806211090691487433621690231264089628372303828191223033826474771880997145463695664933009332585841374552578431580227435738636435877922178122202147870645933616948631145688259920507458753789234063853838169936244610215409526639262608012596540541827565615260029589724658959036908432511537548779324941509519046911963531423091641409590592502719676598631551846610066927283426226350620660369792983747018891966864928945137398593946015156816648057636006130553451925835531496023813342078134878078164244746864570532888841323818145146403826654074056897983105944348617671673457879669736598923221910465049942679157299186223631174006146533545990525727976069392797979925509900929723526972160959270606934286810837264182302837146648848372885485375969382199059108712968138113230298439779392854314970537969054441032121669149133832419839405928675507603913348697896504117160495043008274001948046734744287660985367747485508544760580187429103264252313492636344883904215378573218663327323005526575224490001347149895210962758442573050394974238964215397721209889486563613244098544878569043730783562358276769717083134887987589344978260429667838595845766297647784177672552336150421912845442503724771936576423041325794755950170502586957594425284619589087682560049865367559953815574200903770482729213571365500621115073802760359312789783640391593350399562393987910734607459628236287241919924645158327956716168339151961193539675970707318200375717910003473427811580551017081836684635545623054968685525421334008954237143721736005968955865506246434380548418238781822326996788913228987237004863306495676132233593284766476458674779982084874882609230943121597678553463174057863022423489401924806507843753595788542123704541719026278569942150394120352109916790156827025991684443308194516401854213096543510976251306044365288491098110157262879228839735850543834423207725666892237697982823029622211115196311381755835626583178729265343304424752962682202979442113900560731724951896974181664294314943855948440279295317565307718147144948505348875071913553222084051948748696228258562875558928513677111749549589605204770496111360797440860034010589285392176449744741557379885052177725096395133083258098181803471249540009058866066489277046118344423070457732199286838536486479017345576304109683906322471793367954045715618428655330086020176057642231127058945345010852759183638959697820347940597557447329062715502182435836090006235926479620927598560094190204138494534712021049856529123751293187193238254022025733725643948271830962955171333134465441002809178920934467904486331143132547596616760649580790984893114664622964293330242519328517668538232806223475455290920198228784495296498112537723343005791562032023631055834852958974211772895916074003843802719233235963185764931174638309868141247212182331120416719688296881479034478818026145537988643715237154033185926182343385434106427803439780532779379173236848386168554722656194972472238170521839048064904918715515920626872349361410556882013088283352050492951195200194082987631436227722947038003333093143275062577033043090184949703630024894481770905156423980012059637010768453454270892933250532353879815549390792900636773155601041344477251667077181391444355200046123838202957278952541520438264940180370270776683241062024838171627094469552408298552295187023208342926765325346615011050039088063527763297771097888432125175453928721826681876675679896426423416447396195953751254634254400000754595515397723538753561557325729960129840145663914981015268436179943056943321842693653113936787444944877753959411624812338023293295531906940007094757178486044523584827685720102408762796788574203062150108838616451520761099955257469070114540254633754874182817005886263743647547905421154837999453931579167938375021092123778312598721516199526920537205649182810617178857984080063757711045013427529376778361236909634793483188306619247896753531187996225124109868991064246644371882792395611775589542619939500534891457383307246765045497720615220336371045366900290272547043217542055603971750225739713529094028660318135901772610153586081183062583500843103388424002430811354563565963857292520361300699109296500997443549097242906022522402383031705688972923296509609454923245894745954086824994283039059798310824915426448039420465843602469377035344937549689864051127861129998329605270087550768894214573624904973784188074351368118434557053472484843544294929226024862145071985827307770680640459723946236766425283467699310636677813514299859735175926231653433419062897641817221226978960238554197317272221693661533701016957075433765028272006136840975181791937652656269624709046689034919737936991201761948401758929780068646576650823052570284711936551683539540496756967638151385259130676961795638429561697905982314625785251562920057666638457034919135502489201118880423714448323160802516400348370851327727837320015607530451096118698020202767929041988216116662086817354005102414911529125275625262969612770250627464599704949809500961422131955771513027229827885867955693212311367582354303728897208971872906269413673758232898983324275994675011141252966414390400027842594191352330563594780719216851607986464060632155818973341812935981885970452305141359886740409190142784573877910941937823938277754947871942250004979121508874410232470943310938637419952779343788833517549051087521483341062500402710201871504689456787686056758429347267342226136252659075804939122284376543918535561266877874607063437137252477352408109369355987299609464248308158696428469796360110662431067879381599717045588710144141379967534653351273582535621114868326054992424145638682304334549265545225747654915504343645232430933852020924122033596592113437303457016396592075794517381778977312454120970508193360915529573749267479780789804488125632149591235562325422407588195561827541602518758571329589789933988731159930764637899880288685223228840252809882146105457213244086891273990613268862454637886428260767869150661409001635380281555609709531281495541894922957369526215719839398848662078442882496890058637197717975558035490011393810057874533698764083798962262490285829802897998258824941130370752568684956348498523474253174136131241016434442006975157776153776540506190568008075330682022264622517346791015999303617200797526112561331810958605745040887907978835569260091233751353693487589632727268786504808316307631461610419476473968438113313986626830434607117103646536607155773838820259532533190225073086226152241823417385569950071754494768464216218638950535134819475712125388871312748659463355391495458810312988749180440530523251839802852227607616994250453421953577983613718029391465013225535621126488797940799113671594106835735200621485856181834159649985625950665942006968027537666904705724220028717061654072518047208620574224404784927512701781222488944293533967540704124902853865831571316665484397309710923159238415480171482847179924062481364378669693558495806630428983116769861884403996201653157160960180555975042316606015740547015185361297653298740122435822515990915814842773315502184547158363974706106635787098881195382130047871325034409578503320108339245008890174848905072264541628310370995571936953652686358855525903734473632648819898559893956682343946608508147269852254649791433430019309860763271232990959130280036820434429099812493132077715852308833528702906187420148679048583060836151123485052167206708653253708304147528751858287730482657497518644432233060393789009303304843386538047110993228329548884220365115767789020590984246848020019119698221431926435573618498773606530351981264618961124413393761001865356871139404948280372958151719963518097288644935265847308534699928821177920996335836330138841755761935773440488340950523464429758606541296414629217782527594093107548257982440715601988047812271148847653994558119832529882999754108369318860622451957859991174024306999183775240131443451109542706860253022052933819845755761039807849464226495376971671428731321542342891095127152144868633961315122619019672547630317040371556813449077019491278430438386837059223691341873855881923779850741943363387348747895565982323916935175387186597747770922696889739029578916056769876429492730257156848773632475757373509036955355945992676660408677226013298430879306187380333101551408761414501300875462659330149596974133079809203361626560523103390287956390576962208431231191259252383224018735937424079593631630979937464199411274692335391526318138060451882316982563265991229010549253307331430032257443821007634303402271009931521302503607789295415740221165004779598849599244666413138172664882129207864158362803506498904731556758134347464155697423073108022294319060233501041346717656202850210790961701280416129816594860757586812293650088724851612956801540796065326889126005813643457619166810144742686638452048908156345124883626892197784592284042051926506343982987651661000208934952652492831728205688732225310082325697388746256632292245864159799957160870233780680688957374653957006193799667657739852278103756770293560549842026136236097432116051318972052849354030749870582106588023113372177605708593013164198510742700566438941411824331037689483566273530868431747834740593950445358758538885994654861282839030801690302665345368229002115509063623583275597054106939336936913834170074215902446624338491710730663827399241877296347017094848291094992550813406901641104243844682225192333915169020290079765678422634269631934973393145655262456711272248305038443063096609182022284667323458755536072930876437438961122185414818139069531893310476431655231028064019520097081873828303538358834623451656751397100995314210179973787571823170327560682156689930799382289271139515596230717947523299400982562102363765569841112879063791039555046335902433769787737832270303092565672351492813649279101554815276663705417903233191530282362023372528442331451022633178611304679028873430297785325616458598732329844162536380978228698075253681943514064124758354283082635164641416279386296140460587606931380806698632297633606603159233188462150986660859110904301521404895819959626631535872981423493898200883894110861522068191597755609202281492050225985874120800679435334110108356455425650965768312133431177152055861237440007070739692780501034519994464161023803833013374452377486991804882142964390866455904223178458695469499279274545915416786946550151603815509692091426589047091440597299716426411424650705718077470941405816160939659198517784139930207240385323328823114614658514400548732149714207763110004961299156616710216845456000038187850810537575038481606425500412456703179284782026009576935877441428249663570837880983858301235167842785582073659446343867906018503096255194330851444947938290064538475108510360571280567543729217043940829294901820002232356561435551785646008091622899018016854044952925478502554844399057561435651189466612792761929878458757192850217382657658575523273691787883559452565371480709259559084540173780959386547187440359852034317925987003153927192702496450219264252446992788165697099687822924276734333540722470431419765868821900932495295989724157287394604493955830156604671020905320215230382469494136623386390475776294708434175599745901427084166234583004874583640697933256231004773320373106272855265751517892610196214018230989100228838261257499474566191686722493230803975325627013610894662943126691169176274234415632281407533275127407410437967960439235169810997936523768478791886018135638055467448752000999228418580556444695313702387398440743356416508464085576932929617768662148893845074564781243857795878793721875180126765696694148004928864261640840349505770753022339154303768240762306708054056768348070844279927098090193409598238215149337761592505444457152926333721785038530212407803420188977388870608416162533180780834960172994141694660584759268698167300316414399163898910200301312687872265040542897070320405676140066101721320892671695615909514895936545764712707616171104642692402832297680785460432968970189243357903092906355363891352331283958405582592567733557767773898436483131238731773733077802427042738662482376553279176521611626696337115457546836690529526795610802365599387871220708895022577950085833276492107268941803732418380978311676460244752695363952898651134779026981144182434867620667948280514390765669878212643493596371378436039450417776192789409547971491206466900523211136622145008033485208657217705358834584791717302218347627339543018685802431309689111954612271867999797600148662373010531932828580652838695367530378489784511186214948529683406662941767116802290492035459455675562670079272742122945322817024681269807762791793234696159483261396505488493511783729882579868369246588023252597913329384706720292660710680142094216772775760792846134695291127925005097134029799341801838652800716171835220990405184454925162765951219426775869834471490019931818240670336273971432132259304569506253959727917773761581021358682393819110423504856738239952361187706726661673891524128792612792525521402368088064997920627238498343429858886733318158178524921844818336113244586080606242809054507097938593995319228919092736386850080115104333677258216573346623135230391251882556875079969510396572219107377550202393267608638490638281593510285890843835924356902167071689383525577365238995656705139988773336691940833016163848928373879122438565993519451955373283190864491719461238928724820212009638988135206549764724657748227586397006750949744714862158524926406527601309554821146555635819097735044987076273464811940579974060863959934496939559618543338998032887404326032714399757954325440674437682490835549757066743637199971695431293744125104535967297051959788808670937098914126930798506351837917739026722979714336061893526878054273100963168128804400546437961441283307577248670870506603962904315561651823384070828957794178401209057857234851571671843618734242949611517417755902540819122779311180944962228995866508919910345637423456370520939752701204338573945889534290316377076539112926114919417744693099790059533476970869693945945926666465451572892534366707182066103301906132203103915430687008293946410958780307464340516971643562601697790062297765816648918609798156168329463240215084017187329681330474465149212219220477290891054469318285093504125485772998422479789492546820065717275461297943709865050299656754511653898949905674331179514414378792986932093270447389072406331824518366947265356027894475189146574986788672891241825245069066007012241563935803119188626313149716782830254703397596882243462154961595278968033225865739724217010905607302039619718110266393001998461135490123754407053845502982850850951726089708387590885386295381168657424333312197527677071873249640735296234495584882628996083627507757642988212098051567653072365491854630466772231710034214521244864287230725954417840710336126907070016617156010178827294166775759715667847532072104016266294327809505026982131991949576647511376614377452282030067944853300710055832173594499177625790974448223247636024218985914815230614699242101821564206808641183896930791772092624911737795343698447082510423525991616966435276873453594162931082790215978360080315418140654857066857697095511288751178831983034915556726045015392712496689026114111121402910205477335592865514232036251462133979759758234062109268856048853053517169926425105209700477287460307366105535640238554624170193739908068046185015337958129390387412081428293765817131177116995710837001986375867686493400435414737932492955785572627921534664583491131053764311030291424221761571826672106557248074377186420495947101079179323624132703828085006202372764558889372741741919460469378489143348456870517339489142460385202721407681978720835418664906174915529804825214962497270479055582581602412037189728029094090242838304438560049575895813630098401626396472808471318376350426365251526038545994391801629135789374406076972056211940228781061790074958060319230081935191957943884653357735152950639156145033187920773735118081977866040059181877764066116688253165786463201384702133040099654058025162265690827000958668584336578764213676171200663590519353171096264814274589958943190537313540989050057691901192920411976520502158759271615183986086485172919962874256443466830848214362688444205339769491122330950734515363695565142454314321433611217371164238510986860732896006455528083279505176128731731906829168360920103034882642191475537871322487163956012465265426135929763340690806698273337049027956966773043129967817232743894710866841873552765318596602613533377159823591621227766749010811661883529464578941121641794398247672117422786673146246808297089683273933887350095856125649965269063775298019312314539524037005848227970387987082928336634331870057718696511132617883482853614811439551097953022123380222820128046438574652762791866831062574534476555353606539914886701579780961518463021652368571312891651608481712098794119725504958887978115600764644164229036653029439118718111008024693291976087214917638796944689479892713981610468774273446682910553379220380388005818697874033775417841434776012123722394965484153761057207534822183263849867428605665381074237276074157622200834478437671236312519348871443723456499430653960360858792726468566062147726169861059856973007633528416874665503909967549344929882917549222598368250015209796528399803162483663420137255662654259979841396222737749527615395300402829786602390403653682963754642035571111208855748600395816081142067168072817431111327017972379246958442201659354085337865177505681182795369500271754541762587109634744159464868461046567742878168879256742824357247234207287418806374938541312581920525095934024958367033231013213192192782392704387402619278192185053126203442848526664781160380413057597422579862809376037342794294069117795136396960421559029750074566735823382107660783282594002944180248922875924432667185980625997023835621549172903538473582921289623146027836163447184894979487621888386461177347473737893731732797352956922252660349320008556488678210464788891332674429516683076060648792400433450618174167158417583807460853750139517932015278104413148345801720859390765318373767062250779443873503699712542307248275235173164397037071977921395474450871361911762003799827966139174263270101828694241204957383915512890231663533431621142674821266174782503632598134011368093733803925504133780028272785112901100485453644374254253472511560025819594335955114542934359176107916549197717356451209710671556265236314606965488115904873522015422933916968177492035590270304217464754510313626058518026882261719405243855135387818775783957136643350134056732757783157458091490762706890419239033770508067460467197905434595695119493079275911301601935301873828731260372355755593472169306034313300716743446135169719018758379238193134073241158927763735290124594899941785197701134797221098492997887124978660347139718401571839674406469436351747972521409303023290923591382084255211276255456533585144282035542176045851368883490101271357193102469269536263906046147524755070924077962789585859760860742361848985381513606417276044687171693075664841661798930848231596650436277688458769722701450860482726174680166439866285818824191596142931343895725868206031825054641437201730704040775934380556751484725805685495813530091294077143327494898871260639748796696286409752436025911988339532172638611495385404122735921651328013154187158928935171147297254661347653803701199786294437309640531978611826930557113293139833315897383645558261357508871333064105550953727764238893402226418869000981705232180135121786168607122710207513163760089315212876781795986252333792342358864858916506820025304419452530963669476590285791731505328623916312529379105728071700875222427986247155352313132994964981924058885357192927577653461645575703092269110017953606206990270180493238765529159237712264454241320787516182686282526089048231505420137595076656061767847515061174131846503446623728548635736181976597774192928392564860868337115007990890518426320912181710586831979384529636633673291994163999843317819022537033098560305968146335659114163249556382691304510766233765481970967306620350039811000781002364853729158149043156611729339665827235081272607231144863418327840383767708670363404524420055392062624366569593283850697790277236853069566788696136171099616395169106851353572887654819258244102214802970394640902551149860427823734063327806038249268136725523960948262049327456176282067763376529217517232135662721067202154017628127664569915253300507006132363518308963792317937403230481240410612516731960614809814905436663256185194533176391464010123188398048685188698714522894915025973788245648250167807014516609021985717657939368736686006196522022328368820761974568548341120976684070242702039388344725845460271077879868710972362429110765706958750458730163210006958734083808514224257213305065501968807946256913664974557863696295628492200247087823935888029111649540418899167021464450225865490488848942804538461621791450029538126174932906843678748992043936905223325024397174895628227939056309241395637977380744574943404332566602514139586529665652660722999015129810837630995130159617889342450389573394229364487187518382376888342505776768087878436639553811479849902233644649336557311963722173415271843866107911454686510838195905645399411306156926263667569829158001578163368703591866778430430860560321822416437410515394198366296188602051732248524354517787319804515910428001817643985393646025050874272241705949587794822770232469902537521826912492306739346578033006312702874384645337949627270816831329191379971887909484595105665051463450677954599011564289448490048797224465217118312913653346929719577758585115952222095781864579700325156967185488813760606010248476529856527314011355344500726079323005041065803026468472181392299731812128194643234798935087985694277430965573050602530056035279713442619962828787334465486861646541837221842467015895490911398404257105416513412720001354793310136214481694307513463276439782844768781111887838594079207716184384195432875087087044733896262344465563531430271778077878994611455451311852419875674122686054288577723888736156673046267574736167866602357314252256287583643336777034781537493889583739085373945241896983989943686216069816661073798396640140909728272005532053464181795659952587602382048893026305522269708950270933771594310687092443947586795780616847636286563114398889583354687181015948929969854269278149432314993722645302538117834266672877934797857178356738146270059637172704258219906657717777350676408073686116826206503390456284354610296235444337300200822573024857499018789554008504140005890255878618355351209870658529771023403998622801382829811196435491060653283974763326295118801103054233866235633319723242617674465388840033102415658114923220306353359390402486865206468212020704905855022382896803591022112147740006629316374443768184250505305055652466276876003542087241713195579968306498712401125630277397967003509404232969068512307132859731083294737949433236045372599137664860442591071991976826433070381532053714795983676939247111593991224515479469213448497245270909956735814315563892571417335680805464053070139566434684733447675473424144490631343692942071911994701122238303134633954659179895406735466344105833744800173040096411068739951571518010549342711052582982887668280183661484605441024359817485253458006008836563506197060014857330325357247201367191260288308024074130850960971255024781767427873194965470810191027862974317412635603682143002920170434992622300365843441405427386194339881802542869821647216589312954485488486518397383923503353073160293191243776891952282916863105604519851801247766272134752442343013436883099234416656024849791027045020679760827355078148720410267444678278102043875729527536398519391570867584737821977940787189231914961943272116283754127600215880531781702341270410984749619661875550887668464340094689711923908072406071762985174676813474283805325195508857370458285633668889409473115858542401898734064956328200037286031352055434995216635484932550571868324688936856086348268626098636342903189502247869795586185915364813578367949092713944243894555308422348004390361580977330249987543859753853262214178439150990233059488055268576943405150310057349120463212839143405212011332935582620507855960951864304468950025929745470610496962399469731129875030172097892087607282247887664418593940204861684253087508632495071453408956335500124069567555111143669316598962332017427706746249836989205941223173132249264330602740128887067214074472615702663898595773368235866045844017389256059155454984562646653689672418672331904711604852312798397465854055719495068674716269934121455974425623551991032869063235459681284348259077715814628987398679961183846368111030988405337404392386166353344102603194543299587237534100010808441591009042323276822523858807932141246315631820549733713847941190222942601172285978937677820256056138072468967683475992284335577012432214700750971499402171596173234571002457831689548011504966876672730488615768096824396180652323084323505470411118186765729005433037550612144440620215836467779484921993301146827266092781034099446142933674189933693312891907121074397292809623519710941891543886115262765129601117535947225359617965892104715143081886974366695634166695664414686682028770458852095809590103112162751983162641493121339155912303273072923127851221257221827779537961440576276288862288634657598252129043393540161131162726503468849357559087516291334102766197253822644315356006008644219520647259692876775401570643421448089011779714164261721976847506978642262714071333672266885322567034269681559341791102256425077189881388345463252544951576914238310243735796998828616399638823873856392363032945689721189113013439324545268577960918787744606169560913011581949591209049333453059201168903070157340982391370429766245843677856561148864241770217323626354110020969955654476716187355068196764440179065415994206984116584124342285033771099229082446993178631854246202424536165291695755847893255801640297663122756141190462045319919458225680828924833820015965897015831431062148444571397625336033312829624747338156472770941868029436631098276756329176288594765767992081279912940264655424987128805432268620971405001633896865065622956132536352599802922010244596086379908028723551207154043595953709685981982415089836275710231964665175389136184368857506282513335757646905063890358428716259533867036668857635936251574370189804924106620401804396812488733652995146123771269010321987421627442705410424494158359522211006108362483812598657218288446523143804482350090468422431124625851600498767235322299460367285961309053837728016136877863952225321677244798578181022182213506414334018887547379038867426991454391069740768710689151414893479642897491764680759442387110881694035492703889212076654298734469977463331735290609542506936944684253592377436685184436827810345233894916549933027517036936913470677383021333008705229343948563872418867145650987946023028628449230018170409430700318976481323042809487629166862780503676505925342009929663547272378372795130176297737907889732384168832522747994217046507903447799457949490962402381933967653912439038079030450405318754107406369969650765337256056708856459373457092189912487030087159817825846905326322642354396842559722650769443706005541898294691068711907693889878748273371061045227820236003599407171183743188037578524446121035066302663854557440184380159623808099705559725678320480005141297244930783833531287905176159444973621868678355717840760917403340586778842680386361281427480834040809979506670231275755431584705272244024836251216281260776030910151400898749818809648699820724723742268112662327972108053748243304960204872336479527906043233283163469487546625660496819944453982126620999943392992146705117708216624731604286152424145847740103580567724757402981275092885957402798125237854128388553802683001915325691105434165483704047594001259753828154436522482170415881718170988684683394456189640826010895606195462313361589739562079156959337071052125872344969122141577439987506069104816166899362967430576785838783518393896621245798346463238757580173393073115057669966749680504481457952180674202744957177460169814795411175160708288449936181338587646558151830085756677936107198765511735346926550341859272153211804328131216699732327205342456500441043079765176875017109112912406125316642579867958514456117494371411477158547704693118447899019254687270256053926968708745063120925202009952428604619772035181654760654637324733687851003879800223560963348263128187947261302761845301516625129893298888231581828412227815437786587703049018624192966528636080072503841150315378057400509113586713278543488692492700213038733023420034793343011010142444046175864520351489834973523146913543944116447623105918171772647517055453582564633615705682458988478268601118415704049313095379021287080807042189906535508858411239719657401247050589995233856709270604520179941288057391629208486568685673382816136403353946672804527544245972645951271609606860834808125873656064185671631680994236606354237501448189615083964333954108045685898709646863327150773069432459419034846425558653279185092754621704301834175004053337522675575062603772895582807328126973735256620075965926843353254117346466746841496903718526670269653770222748831891236987531209662844779484549118426920641834104768222096376653462525426020246738725366306903513535214187300133100130750665337713455328803507505478178173989778574945121138152850581758556177992289534661760522943786354328184834854167240396946036193696414085657062214840619857996909770913832447238895483296304911958929384837081249492787101967671921373739960666510501042285382785329633211711510233352185912991174183036986067354130052125209149070145723448611288734199833350170901676477421353358056752198462245622551959326866428990731460785315018145135014857670251473092956616883148127791684298523353142679956837562578569460166327050547522096649081286969240817770500687475815851807110286224048607903736799002471422396576151021319337671848344203299280908013865575243745942684225601277255913915658743532612714385737570384337195465295800929784653648834650499138804022721238846780062250095804835677769600267173870757635244947060260606187817972374779384923078351501567242680304820526729574182139841253185395179515889903022360190330307820489787360681602537366517163953646112247936669338060311684296482481277238855612375607375749553760361730782799398237620321750555319824823284738842396082484246012059279495901517203689653725443929576306456087056494117556179768590781129528202985544236738370676484824622696668498636661145538809997076029429541707432766557375441683534206183154359003711739105884418097609605826662122928065694353269202249965065597937590665823832892967059745234592288692373781193534782394480951740873641350535955109402932227654643158610973115382216508729996961148395518749410329858523805159996860145445334576211518630191855063124479695323151689335692686519476641522370353689043033961165530618843542135758806549746151080490452887189783825062169171892687151216108827824200238792677301758690742355788754868289017323627770987317310091300848058482803246680248615566056225376530846461468673749691481075566684334359969222297214887791021584819157491334078454999248795479637783062250885714112130641425454087742170489680061108568917826244905163950631369748953735740349136404796830903808905838179765114272793059697777663150293801099778878885432473644743639296114676675473644394168717469854171262566385263544702586767384730232948103369380064779951501996634285065116003332737431560691597539016275878257226813926544104022329336809630766931116677402444554854160863245122677031644216528098573648513036899608957109851596698086553743988274336675292697436219051068602630646389002587832325830721160384716349501481816253600886377624737863890041416914143119184490037052210106725468299596472579996563278598323787570103786851706481413911074106110764265375666773473221236468865654337322289473133211947588870046617435159744385849648326064964851467562110340422141322040972950961816877391572172945245467595294524482738805496426013945669757609293857577824380484073545702313952749873196298451016378991407848302257466969631998356042048918966574633625090570901906217497354530624363434898432147826643880293518162684148644673699508797778072460055941748445376714394736121055617574010233440155367528137629430802199199109873129295538171976423731983010462924113531970822690007806705153432579417440935243302039495079485998095109899990608058782896669036752186073450838619997733357941190730914611301002232118143235851427389008307726376123044036064565025236922112368274195049470367565589932619615746074150470677140265482580977047644510984261893337459699765537973018701587107477017276341611050149567158390288233700550925551277193002438670641212254965432645200648572884799834241964849892178351044186414304836345966435321695523564427871503982468876370889552656212903794447137739503395739923675779878098148296691894762362564715465259226633037903975216244207250161410563914619137133825590783404910103242693499771263982628664375638019858126180635552380060882641765956036063650622172482156114485875427375499342589954119232378585095203620577453898978667381339937335860931143469839072071664499019220558428364281219497879698024400145084740964003683808819700755581165012043464031189564385471850104378495255659382843220115057746584280445921301207063147823918837382300357010964534750306092600283420819975507650394506002853558505923559131654534912173547351455072244815863322073075814655130741764551789873977381876700075228451195422810970585803111128935084164086602840807541497791814305234092116340936225666391318074563032436920832934582183786171994985669446752231862617401669141057416371057139907732031813704846771083405351448665005952186777963257153493053285811189102521544077438046887884531860180533058374318745686383293975568835237740801626576786007950622858203296771075839962975930859522064271557073076217477773747186243702355989343730940558402164747416656976337298738541191100809385505798846372812961424265137437114406200309032966060989815781933760026380514316829178147949970675224185739848829112728236593058245681186977908879625446997894241575056131497558754116366180949913362202208684665312491369664433959678133803933260345879554938062739978164092385583875599422791320776510363229597610978245929896664685144063362453411949221361631725569375717660748198189607490644070122471021386742474043665378269083501191706083734578075135329013598421061121756390047111818980366190985157495988240729774710682616416705799648888586177112354912660658361059999084448348942188706956023313268805354420456971117334115207705034471871641471769653323117527278519007822062754625662264515673211108990785475301579482145684081896975633315123258921190493067471362376669370610637897411211815793432987336101562259642433738447988264205080642339259596692125269933729113001590943115677233172867291932363169904948659208680612535169997730549465944925307371543790766612860424635715111916635919233676747917162960546104509270518346280774327462731123258450283641004251738206355533918761931707478792991368917489652897910466045643994753933718512349255038352557193347490792340596294640928492001339588428567270396840906057770482336760624113506840999451827652738055873920860374764125647929712314468470057991650478604751513131193611584241490807808838533166508222459453384910712110601373502648977654183015497998447115721045275843763720391975221546910374869215817167787797864104684685122567417827711617930869213857090687923424195510077163771032515980124725520811485203014198377262472707107763744862730053270833676207456322455119554409692778365184283006750609194353656891386609347161684840530397698318476183428754263332030117897862141037899496055911022722849820290785035861925836553999454010830110905731944417694063379676908196525796534142265857520027081699779470908535400624813603767880636445344269983414517516338981190209310047930612843452378633582518990427620789055416442365349177366300571107632064254781671450540633824328324807301033859369837437724043771851422474790649742191061815868606419375629895810662921398366398201557764228122513103509857841176310821680171663166355959307196502308881250952673784536366541422024055461504859851211780817094921732620201147169793306697914274521909436010094055906066819098551193813668602943431977221901076128977622497701899351846507626567596901361588816105507788673036773643801033409243958956184681258743174180045017553796870735513043984635724813818563147799509014918706134182188808729229760496645751817936427370233942339735672772022847556135529806836522603897659478299812802862536396459714815188883135278516757602617747743140837962831312082862008791619429023421876311916571914989480897768394741000747660746063615443411444577280678625624728544267273121462917439296568341436017582920521084287210625005570763947332890323464258752064894437947404738317641479801197520544347178933231796378254570710106980541232378905072268408265588311855239493075251456931873525395275205500920511183045916081473032888857676509193759628101785389810765442391479796968951375238630552088957033740109432317384393549376165379004193408080822082807073354562691077493297559889821278765905201488675858220674204575961624048292688479768639589387697796760025283110891469864050935821913514722173294416853434193489844535477240954752234116149260848374312317499863544119419932551576714304639317493951455667453858592085219413667857061145374049659251543848568124635870997006574699511765364653617354594320160325446538362875357471182452751138994925322467241761231571981183956362861867286457316608837414391273248136228864894603278907180937744275099657314760984346000909597423630887013090277889336602793050709462093518904064308226657798420777700727333291616218118989903375466498211286651684801773934553686975523062762774754880381932377277577290198218234190770613774488017319225277099725588148960131345031279683380984828603845625424495767990287074762890190237475139917144414040374928843030753128945227483093581095073457844738514326806726964854646363701853964902542241057175425176310953295845909763911858826774973326879029686406160683713412530596345478572121831901344676458909721606910604533650102283414011076451060513818514874648697236256466758550429096846236870460555067798397016179422804412254487720195902279718777480670132428325535688100862807158820943677126139534648413179301353759702325147741398276894173483084068107212368063631611014481745006965273889290700220149863679677726562142173673685402707162165057897365262152882379603638144611855786766089886920123504861435121081455505734801731534791812999916933511471995129861783640313023190584508518642842699176799077611750710992560673991003988747861218556104273784832369597081120458113958206016953770374964996208362857863860047174838890905099600269669492151004210729112065535978796085490880131759669650739660929680280355703539937965594225523933914908372105809204019213290267151414140857935326007846068989052320075866450345067009573693383867561552090457056117249638365699843440466180827924440038629677560568373057943692992646462504403005701810500436515245630265551266368420459963018948098065096125785501771093399065854048894600562456286696874482452768376518018379301357865198730293829892585043021729368461749514879467180454669102951663243070962702025929803280098796355190391970928312573459317326287062369532023964646927971678270652429354403265055303373379021472208824733343809293008564112850500062781993874423933151484339325812597595031349120632126166032833616356961568982092238851384754985076542816575587363320375731043877112950683146858119715089443499570218144087392999148641985104791155671188231952963768124786833098494235584709361422324038360636519172923574178009807975332078771859312287394902205485488707995112011950824130933108759469492809766931885659115399294141837644077767921033949977116341612239637730161372024327892586414455911183477105192743357428446861662432019932287754283009491866845786991112688256358306179889860190272194240919654791461032067121014086120564349345117353098386527633545595012306271911253064142889002465984527321278504296558709897540202991495760158070066092267242920483330205090054239906862881672826569628154768923059427107893177905452265787728355019242042407684499130527315224100948854775710278973428996218673532478697832024331308765384873958932614943394493504831366184742448659341228227771911971246790291561602791621454365373305385921632390292158383753220127962094956764220028795492943710473550798411300404628148160959723689048673436662660441769028515916082387732948345383089709802834326196720764264454341501950721640323086479018168836471174732351038364941376120938940018062780142898005179900824242254340929684166633400260445591167492758398193268089616590803535721599749349929709654350385028338553070128918207615968020633912617773128582364007472320951099488433952683595546231325545580405065879859463160958355655296629057966411442822953225623417190711812591850698170157911944532575396947483388836267069355228026934557066575343043943702818749584384667216541313419141643306108094352463105222577222967696763837653862660920714686746592097319305229885949698599778917982901999664917190911528020135328774469989010250109730442614187858679473296633982231658857964860960991936480877962478805224622696713483473497954449926831562899763807548726382425971596781244491210077286347130875571557619335019308306633486959530300131685002070242558055442531563642658821120725745084123580707289819057695258480242258309537394263908422217324515416193788912702573922374626175439623101806617633740224074716017062846235298246248844836422299183971864637294756979200058688395858563757606536781513612354872478479580193665409204710845934882714475842029591157723086129286959300369243722822471330444970030229487261603189968056928897367148839497065327725914928544394452422750379032103383604652045138380608742574323472721165207223775580329382279701552732066707994949576818956441599399356379062064975214610993849602927741978714591325774152159936287803336806756105712091886538273652936954647608061800715735206403369246787121734166083793422397341161476676174858813079765062113075354475559001333679821639698622820797203761330114081118445807822478886437429944353487264097363105313197293403333552035769709810242645902153587170103446835773105789342009949404862612754656250782378186990687249081022967658830372513681525445670628702645291042046201919830465645184615844975822941312626853750128202250945928631733325079758292923821276183127785175890634094696143614556112995792653471921305561587582461202938973552770562595910276886510975617895090111845479397701161313856324717050571425741320400664642304254264877981175155346151921233217253117024584784843363366137166381063851214828959332951164616765403394315297149487664814722264774778425185960860715283761153813664585416084999858557467783195920587695404042140949399812411310793855032272275840347548095110040226413335191207197641755884664963292468422324497759231930377248794234496903390930038855366476009601398707043472406764963670881122423293960400747632650441087576635881378345379153320244013416623535613613676498914182626287666047195102673623721747887519521958155358773458634704718004397463761946905455299075261093793219520515026798078168698774698109364122242113963317307467795443108784355634559851118544910584057592080856941839388325058500786206982006552148825892017528081031042746515168702997962055014663501180973234974620106816802078813754951749844967210849609061038973239915053245882785103989845526070108497989085163590292668872498124317218700543661066321283059661098704052635781215310290368653106126520547743390901725173418210042904574091937740942079692629305201067067354442712891376959601055147717608193395715957352117926780062216756606280077431710326705283974904613406958171619721992112698540443155085172234964822242118045985090037636334600454999172865250334726345408414653215841365938408875986595645370867916388531544859525145225982339819572316377989539614341214913286809974315202444962022529495606501743914970647805276740852791737909453186674083117368105187921107835794604310228420587109824470542161213866266540392344212046499130832985289352684646007434948721025877506014433440116940035818941035200209142728218656035294959401222653651671080787375572774360206816926611431257771919140785185450815268183395223866227084161703744187567026087954535008595419442663658377482642779438811905455012615039382852710329236673235691201950368587348503463062428302237278495956627819963958454061210125790441439534038926892757453984497583132492691332949070424144817068131495802939232927984880948462074945557220216344694309409056166752743839988695396905825844252993969931584559895426479586123669736749461572413601504788739035979811493091454579443462197878345512739347801955646263821101527656222004651415179233509527442504604629109826317851813284367023259808436858507800714255461442797636220946754890606840738820860219796461410645581610124481967535237901567001239470267482152800608887507198511552925685081759997336767499609554343456982422031992032712736029951283373508138098386748870479499750434090185436144773031185979167698647154884314105305429361943210667435832033383968937758151738896544785427003672569744095156490079702438724692378239438420727020529804691844025558323772365904257887852711801586857476726587833579521719189969258144954627531378755763601067363365353014663877696816958978525177071864810170383149535710769927790205888937141755756447542493277200677529415670673416347292021624513618586701893994132037421691188800643499092324832675348809765315991644571636989508764015767655584333912117086216851551218252713115783139628167529974287325178915331425156227128877068455584682698968976196589384323593095725107825990795924930210604160073632740876581206939861194607169275754727711894780661112408485439581977803875613237295194178553043623849042513017629174542766219997771874226936899814569651696088863439176125269884897428881198491126193098264510067790745366161905804410702949330065912891689037216255826600884258639488949001845940682035618936147920044102156921381908611708272870986047449775756590745405525236993782006718330160239281318313305956285528190232093775137571158826709861375706222679338483052884055182705398843197134348890657733533287339471931992321790072527685104447838143464253297943067880147794846240199043372467461833742531085683206076508306853375782960072114887153924225083292468303821792766474790159293528840118977375800249253627822326272111514334202273447471292457909764177179831237720889557514997858543239174609055202652733677355968379294455534602190690194476087304872821202899877328919928488471763814603367532783813311796410068584413993548568822717180138036310768593355816214618553728463512103915553116006389529259585251414565454652402665596583418082622334066315393720065707758896578531387797475957631055776743622954363933393748190303219720927203742119270436662412104897361148509529419514108637332959556646709855415572064338207464437258473519705280365738979604036517046216966106126970318022320420735317859097244581498366669073062047354133205328625331007946720852298590511703358131482455219121180200036741505943285302279160542212145022939516126143848305231238848610183583031057834318637734176189996763093846368729104713488608043463984440938282166324045576125632788103932179852156746290163886651541830665163585505053971497284805860581278100411942003199253213428168489501035511762164142305799470707689562831512591339227918616019766925912137354881221453729566205757911863758324694010474484930572438106341708497535498558463096521028472171364479025646354331814155405052080445432593738073365959839946522375326021685801618659181697200491231560626329486175419137939704497309043403851055862718669133201476808488160725247075547834653952886674163289343121410919444088699761846284234764788139064834917510306394305335791190433248002140502465842309683785120119185690416227831867941328269411216613933692060720017284517177346728391541538886438006002941720874844337382882036775740799026343412947493453434340402818544805663827835104750055648085411403836634168375456409065975432791740623015587927897743335970139966284988724428744184864563333179405525722900896745582414268731279802254339707253018829114237059318719524748084829040181601780496294493512652444438104104875902595590324173539348528693133955035595797763786236124900494118422431764641447709536485597458821665020991625701947257383418588696478581867671834013864915825487231881907497359000656733833874914370893019677487527074884960616318193144632923026892509823138192056473548366934073969587177177433615848186069318272948779664344407660629117143395197351525289182952137878379696609984843113615004562103783640169072824986831907017598447640694990977875137647318498445788683250550851934061005010028799588485218392925465230473523379909303143671507424496050701222320509617427845660050571340134825041912456776537897705270748942840045238835031620822656543984369509015341536498824024029466737807680588138952726141752384281098958594618012099833386990477038778346345641457555955939219748884712082465911101137536781085721805840260804614869846332596292354898745744865380836810918446383520165049616919573962052482702214017847373587322958441975848724759953445765005137206275673684332485546618228142536855191127746287356274121509779413665141890831604636446951452263519870645701157766193710154868278228210328948934326129545282367980510022812339591152706889391030864662841944729407571430490374216967654745424642352487335433223858287280747785843633605823946665060647397656471558328372685126974538729226714671134336263211131346565855510177357086596953253331228970204567503598504015857363273345875787794424225395937898521031518312317128186130835521063637027409033495733846866943854200751912554513448655881829000654591461518739863990992124528552134950065624767296217568335718418685518016483202646937766459561829546721889150190480477021029359724471389478704551716036925304852409221982332024715015725916310835110087493632386099266007809440033672122906784612831801179943754311759328317255935751756062855861020067642836478417471345936659155466394135537069604790064386113285122834939616602283140984633442374186706431751682421256252441391568645555121064928572137014111491029813881755065593195385775433459019740362495778566495678816222464276928767335403509749680226161882038849319061667543480210525401498415214314009908839279034702997880894498480113503588927391136580989836149851611562542916733292528519488351585504197369141966116789307682057418209297463453523694725663518635638713267473267620140944240512529741927582843039088411728402851892957364826808648195673681365516560233920772106391125034904876505719747257314128093129968358648223447021840663688209011079555760506569843491130224898931001116688759644146616783250882669128685495248818310124635809122332633737533178882127110024924782094617306783968723210170774883545035031227829443556792598240887860089110436343887736973698233031097062796789603514951461773735104648927074030376258894430925033526488675291825238663134675915493044537610636585684339065160180011131286197901753572495735421996101321970802707484980673335880905221673360464797545846601088403884498446639616465347870024049312591507806302056043068012462977068659693513146372447018351505112120348124546764584555398840589237499090066628231690069424076946907754819941989165629987280735030029412690690064674423540456129461284213297265135928934071728272648561443826696150243131636009897160399270162832325459844419674978939399687607618769948524002727428786184079642803889780755333351787149980189642111247080444081983879378375454181560740952367179630296028735589601886019847978903072363061828612873886384034739196363959687116420164305209503690887095847589484350311110582372116645477689376672831311894212529973663895214919057440402906540226425983271655213139420525499344045836623136164950400956634633872023982051838958500198997136425303277767873688738234079988921719062306230952271399143959623568869340137282232938465991995185162996147418774762930985299722958580622436825843490703325881493134351451104529831545086888481347715851729677050907339755908178571467356014534287584764578259953629854619010817479369021018605475696387355706624278317414619840407813736184589838695809194176998138382279445587112613554880085018631107055736970064127844238685908082480377641481148089311307712477365264256392411708238835816591134743549441569174473982600696834193824816050064427948097099449021182190821327439392730857258218926863506540359808828698411625382388472728588989352198246329821078470201069662601453899506962373205936314523572748332947124640111731539565123157429402791494623184732425088348130740189802907368680586290594807940118809145942573591242503925886604377922723602390048320879028359412167397980369403579057508327585801249134971157759308243212697094435586359491657818795893176378357765133819311839961629855083206457005453210795733825964023138093699835440419770889302289065527954776720768226053592540758613979774106899503171995123445110504561971428288209360455940838061295530910871772575769528511202097893575997498955261294258964549116656005563966074448263246370693588100524891160245354342339276840166845351674419037061629981316546899184592342219102108981794363279102520651771949038633020194643685116374932871977346682250533696641814977211453446975473108203090469812462265723392948265500549555833877178251371698373166208989228215318888308449490696993176328109450006991074331604425295807734127264718805797316660608930454186808572398502602908101752984530973058493593688240800958689848994462785608445527469167851372568810035152922741573254349144009722436211642574170933961543892679316267268655793869307069970788861674300110656280815941595999434029425372038117266091598947474850802782032127593652045428622308222560332108997446692814131942876838263274969591516136759677936906252300069052569245966482746293919148179706883651403795980336870057948463375455644312263171106992102424957469779720083779905919534313925526412433269657761091104670697526493225315797070386680755630027027702038783226124809598931573517221168373575978535822609965315590823739824603861930425394746588010244852104874872411719080856558903950821977272087326762173052754270045549684965512347944607074114445579154088989700189070604609310932868995330361420147768971769860108638646623786079849914150690303300627354526154644701756932636210858370480726336593439444292084572779350391529112173111046071692379415497602876105216626363961301334853591873178288752153971703350695118901275556943406812178111706647940758148854781072890630485356864721404631762515801973945809161731223833410309180436820266054297853275578156025969168961461194925248980667199687950352842469560372932596420304647057088543130326820261956592537721663110307577234054957662584691626065173665123851435581254566276149883821819444467478771614470432440101537672463854301680474730496142100629178788594074226575997336516349736940456261641430487988883709977218160411341737438146743389362697207216921821185653731804595184310635277432780611929609714401827292314062310184781250516046850950526774787858878133427109328952972311448603965927398669459432046090072893811581232380641693137624569067682199903080481445975593333434072977758789467485243663059806800737226713609970245616523928779476603715785645252082283169421838911963587114431068163163414051395353082967060377628775536605791575289294345020935075451585653492600462896305399890382663178867016754755305482450108687449247170141126761077618964860613755799700755027329068191979535419066270841887385691408161340281303855351427358647527704987664164965161760793487453918868876781287674268735868601227264210799541263622808967412023075070811327027575895207331564494292340682936341080039010079789252356591798439737879981972152374371906562921087556617476856591707149587036739280771598308816331421448235246366567581707881002949544408858355511233770799218680968055798838705679635604393445576519503241243185464336239547748077197764432818950287004875119994538983441014107854243487640681755323291217901681964937528064935836755869008000530817054291469270087378191511994031238695145354367916838732201368520000407584748910316659119562680980572966023738408009577094017661518466547664911556751779414372321908881800103401526577251102481907339656126306299166579398463112499720381264866116097484900817087749099194563602144638653508047112868024024311035162404662755435326814393101818336503446228915497135268664030229873382782504784828695151600184779974658001248265554730810728287623086668047435524161447288955934493110570894419944026555348811760749816587792551129617986761190330775964827319977139142144476993388456904449057747820181561416925287382479520598749712625328555143086135846917942852842708957559413008125306207822731764332601300917765900971971259055344274103730274871256718400315624595999262039287640320350979867866580370775929774364785701965990275091596713441783271354787980203148057276235274084945860767366729517181776857221020191112298152175472370405851019586149270621748304220098073978080193171130357683017307236459107471091861595331488982651402019648965154458420518011770876874983045031109151986732002947397408766123724712227897050346106585107460918161096449511191850639531069441513889951600037949208710380342534758446483150552902873708685904628000653185847478449633495451476516505870719583685741723764704196238200230747759479661006694598193298803233895956894395303291784677855433096525225197551664812031467372771936476922831116398420389663749998859351879364339367151158697613931197582818709772415541114238210664043285778737906815607502467824487957909314236719579803373100286121726610227682227782782312537568790693018268263867938437832062829431548897306988834711672818299982425725109646675534383340604464971576776504438719491084301101720416877927526354888065242878201425117225824731660858549198140481096017944877532548649607965739412256466068898049416472636337859035062307045152959336128984868545713215989483792314775213196038164183204396908985960378326913272202682565620295359980857548883093957258461707307225419829410440102106810246591427765441560682032784669091360473769360733179447318985852641983289734332580169055857730792720836863629466574222530140368224920284313779258967932643023629278556593742267124263906196973034441948312444591170490194982605652720307117195032224700017912281919740227546141682969004929161401444551964988929699600622375246422106826452634036873926530904721375236929731292875698341696523567160091625740462893115262398876087785802973603130768403871729971305207262560529865056694975739827483610570175375619288055373761026410811383198407739777151866922194330984171261658216497385638444066647888347193330117230489273654020923856911412292952238789526170725087090857307262007270505090258079475489869169125306234070174582761510902911692109124359317948631428126269184280836218974531492402142767729012990252918007785172226698198677517870953276012621360296021477527548455133602313251570974657239725374748213357212272673266373506268029253379475403324623138009445234658089751664395799424275571925779943914962043582775781519219409959590944657890431899893744361404264422613412067449839224752394465111163625086030468817790062257961240559124709721992897817845400057528689589672450232061174308553756715600595193947442106425022133833053531259803008674011028198249432125936218976769956851301655307662460008263821514913181620642031711038355952023126535504758190370836789046230807232033949344228653459628019597870564955960521512925389589658148641081693797621123758887269745503653906590307492471566861962734670955413793083118576828774615451416990912596319394290912505660402894844141253216872205600245731859064604070614585065819966389395523888091593403831718621705078912970537208676013149557742860808232309370588529937601433863676644790710992549968185215932882873448205052367013881966713058982904573478399786661845788840999671181314088073746016619336613027763651436483171630161039702701868357159398390022281496079594522613077164633483768045101494215350921366457167598445818121673464320025868858329548805430929208628733954162119678858077298868403666349990240073453549478048505663037639968129964037262815346431558581701409623723806518276151371553081166946034532178987049644903519352075308322174344043948696585418937325954516587712380186784944421082358780808062602913799111491201758393702523551312239008257503123162237473015649488210351899203001003435082450743337829223772686875003606623612488151320299818646265058610071955317287541611693557121637488862643192075467552534923368573395418632339752379486356020064480269899536805095896449480406595467973581963965812772235215304451385209161068172049821628622772333656488383794269299225468625693667195686350652572331603667076882411655049950468072545056045476248613336990591002350293086999134314498224814741961991191746542478638659764020348179680586990568291536038429565275449248106208920285354103860755724564161665295489112784165507998208631148415479880959912844671898941527195644082077768405306433964908388120051660893271452226077445576330501558517868533001938110749951802021288075886351002657459489021295212041451041332950240075048901975478960050857460105023423609937318892073822963215332146274669775147343847937339027638619568165303412229483049076389654592238427962730205706924636966598091137751288997660997893721092641614423993952910737456828217291505443446925928363871125885762600298988797293602840865889768446857056412358839708116824550478806759079976642750191005346371266044999652259691464231543631618679982195393474262521857034615194720214278563879519590621550338626541362338722524070466986244134421598470498699614096560970243594660194621714183495648742772190114747135292487603048765684295127898135421964986527284875548080469918753819393067881915993289571749192335826987936529904319274041839646750142512638969453711220219267300975099052430084765756605470835619780398177097208607867471207852929967656026371992174219430755803247620335550306651587738798739957014000310341751825755112483951096886684496432050173758698175267027039999142145826130124881090419754704478498175920771373873291120512038801964471218146263330273188455751519989728223770358876730366552232673433246470977948146812124242004029494155356151540900109830205251595571083558040500253243546204494583731635037087742043020444982408777466041385670939453364152841142732611998859764899921332306984445878585912876691855629235882763096925365129943940892178981739502065323157929787789393306988668780049779650892650619823792907711945347690251717061343391718448614231540861158630103054877594484260705702719940636566264221538358793803418917525639682755728197971062724478825325129119057971979326106588691385080357678047190606465971505210791371287440390611555346757983438534293532133518671470652827952008297119271073339354808314599221005804726792314856181274681765961061957227151906640482465921644218011774348133575525049778608832332789415946180519524976800443850023520975223859832937093527248960397915150385940547189763375779102704114238200115989658409391787535538763218908548467345878784033544072875689557700842814547984939782754668176210210797064391300288055777725211288036630139643190991930791533193025187473572372005577507176021199777199993941006303359306210058969406228078743500739940533749363321092554676506590353419452976366765638341034683987593307310038610856205083410531680272035332244346974886361165816254896894405500434245400829506968689009194865221108147740756146812918564455921641879012366246337953884149698352740318100523355515161918409564810561181192326868276877832278024654850158368424398559619267865182504048294226959366275176320625435455622813437540541699957623045069738249990524786643121365587679762713706828326870559434132069416453822801986125442725369460612021827797462661204899578551779798043662543753703702009677169783150608311485387712745000600976283730754631652736959326551516716624581397573224232125719531523549236904518227536928259776169612545659509374001313653224395917579648033819240516638701694679816647887990714557426297038323056762467522159564381185817745802574601020145441846172862453319505993156405319449207786568079856716099453132493607145192417373117329263017741397506270850742753589901230142039182832246050110781078461496040545982593891876564450747560360072571831418665203203283880447840400402685431397893063202093148189034423613765796854513137880947642393009254231717118939684911892453581470474492622739275499315722177926018704965411285945981667048424032937562084744303373847112976145955803552684926664146815645032268081393651440399321648248302787232982892663923693087802352113640450415691362168260897616244103972268451030434709409579071950645617106399865382465671081322180242734339975962074185451014359352591572925846776511972117357879085627457415243549973739004044563480069849707278723562242975302418077347041985868802803858448404253223118274372941120135181594855638918914693712905670829121265733632349557096507090128754602596466049377536607373706585707836109159067437449007000047910561927935366396826909132151472124052555355998115479140854089144398015555116357785730123657261185935096390285043655989157523150115901694256969676176037961629124099109960085572441330060482410758094309673996900863851199197624552183764149222444172612170906830377846081387846545080948437115098562286751679499224283405572474169146338628349217192060086986650835613510140708085466404125501853486969163693782096529627838927678377874177068925418704822336870089792997974743116147146704148642093304195004808104658350664765909751283114441757721186910871871263707701395068003717544095241911553387210777909510559733001352857470171227433821970452870057948139592696154553317474298161674325487391839693531712339804242966175008804256768678243858181356592939109795057041440615027256920411214092902784194424521162001316680939348027863362005162515882262763355962839311828564356215689256519694588374896406689599934092039809547933274132522466248387886567840623591507018821733600070728176312240032069125298454591235194000920534287099072551499926462330908775832298953612083541053375683428331601662997743630633629986374402361882983001496952964098915620185095316595010248903222666790956952952468442108775883384609999582113698949049951369914358720582033922098525809422258308206491198888590624725462191235279257185137955009251706847286584257530628015987469827778873872698847958499410631734421238959524699275391645509816481746109679895824149412443603297718934394981866495088106183559797083768076937676705890769385773415438632028683439675536452482462421143513702989572604979433389095302734126382633624680805349533972983914398667149668011689072292261078744874418106266716150966182622647490710531310870136885265920901229706467813908362638721973697504357577326504334311543247191986179151328879260214631255735902519178414349970573880047381863117362159955885676804261396734620304330916932080582024257402451185053759402257308723176282549745799931708642882597156472317608741271499192454089582028930600975787888483632106500136859274026623820945040951126083798340478424374601269170105300337680787183121732794766587729093124368426117540262150802275694542465641728711133642981822935909314647075780230837806856933065056043593373411847942759426736946185156363056333855093426322811619916643214203980677990307674389322926369171200399459836878552277355411132830053897082426179029368703677581429550021870706999828591900952104829951340988409322295497232680217828971214926441292127084873388314424805338863082634114794724094306334405267372737155532567657451742314655137648043246934801136640118446432919731821040539710268255244726640275654496125954926872216218926497813041739762789884716529279391502059184920601364740144959342472836514184901065200274225814370271163224984278283431898946204266549582547584189039494245232208469965870134340605217903776374789723516665388197517104964533931572423015790414802676877218194908482335577289257466456058048151483221139711458425066792118141845719044278431878067819868671729905147075149257239611308706007099445482186246775607687426128040983073138163274141385515767214272949365536399068510496495236366758405827393537873221248402161002634050769631741801433982873287548618453312912183178727694719490296456809981319161336686583131293708055928633842429045439983829006515791253867140000501215165379568776810606242145014200192189166649581802927949347831856941552726665772370606350741151771790304247099696446180173198472086428970150008240279538071525494134664175129349495589009976521633367266801115241538231695513425241804278219600276928822177599714984669209690183757713015408711420471782509923485160356898427650525428222499253952574619956686955644980438644297660239572842807337317228390032139436624483591708487683190508355437635699902153783115917850433203314310361681957689795871591071803296527493114408447138469118118509321910643336042103534090796106525327742285634381626967429904000653345923565617094604633086417286607160618305320109586344484223021895769331996831721789366501299359964496963494797285084292879021923523701948751773493359913128419444573078623033414468866915056641491242379462206221875949137718732324511162552451847448335724788149075478904863257403517949959607483061197561341570356396129525428840109302178778553949840832801734453023458041263835791981607720332447326430085374939323418513707871853733326896985456140523722215027346404256603663839110311370986952423376347522646850528314312357015527667351000183787234610769567450299974884575321323510225849999721952059983062720494189004670182616897009318083600495337105632250529454088867880944558744666759266791700908115897409739349619244395830453656655007835974736462832394767447529534715970156081904100335249526642158921787590968028318196352494412560045931089808520989510123423856368642693978297350748935288098036516761496343604840896598148257657078621381852142315997269728925990076721074009805540796734697090085333277310493311157122794471010423846692292784940522171141723867382580500037773740515687052968431218202395532346058462267491304050274648035686681549220924237340534028560583650882789417506095660794093194446517222346410205808558463930072285966214266967388196723368313774977650855432523801711815791979339308257042389035803688674152946224377876958785260798330014986386469677353939524370378877232902311580685823553389253685131236530415068347419966886328637716932505350379459166077398958269772854160779694125266888057863882753797973198410493092877243201671807445108726267911616418253760719753737416017334472878052808535023263571001805275507392687032211058907448420796400353325961732418972368063054736517622656650700515946772933468090171978329256240986700536808066333348744480391285520836687082843612019026735043419221737871431292833026059396542984184502864504528678575249413403050091000383971713598235100898079785109360795050839662026680676381726301958699238607523036240603216646504667910090420303866921847122124622455896818643046727198365505009914283336615556107520318082594867476276751648807500539225479661393331625628952714285480507248531930578676724870603274327044985113776085866539355747776267962541149394439127829729890558572865923890982628160507444491223530869088960301824640762250243273313570364901663952873548858175009289689224422998118959323971765110164729122561058465044685646696283843797371887960122518368591237463215296765363740259666882461036718826037301805867731005306943236230440201272497832729850970380762664540304800800023260854098931399429326928279696910519273802674008517344495493108258492154441869575291591113057504487870741960800125505088726070094383665780202835798940335812913060018068271608268811234028845758167008118352524254711403074514224248400163133262972354655725502336384096399756092869516290682061942134252254326674430499181577261457697834946232612445498063688979117881796721334345425957595348386897319622222154728532410046800624374789513443889096445210262480761348162074116352988568141745518336342581840923622569948388770477475351561068958169482547322014140612955308146246478273108968595494745135371969005578417873318677910723987320587732410813669665569156504095196576287334646433171853101302190495817092217763499660037921228768482420995927227051371648048498729266921666117820247991553513755268106140236738546038376828775461912468590688593109337516743058910474716459460284738728319977277654934018615568876610372449056271927007676841027992386240360601711976948221047760464283344797422869861201374983043350752224139303254591240010253593839933115028208176516970055863828006949896224973128346113907357888421969069685740002081898506622749649195167379512394551026225438858046050637783152383848073631870329711941428963000378190202941930880104645971152134414058640659952137668494899647958212822897092250747302229780298367938843965122596376621164224154012267335863285857884982514033177459864338389681674746885768869943185927667047582098662560585965797346223498490732676474792341866545476328727837238802069157664969499821886488966157510519649333574688651230001001869198128403688066981046253590734802176454930171817151793704152344679679310218192524735653071967073769052622001420947535029141041327483142949209669559909123888981501462930996919507465485421053588092172952864072971847809434129133733581952190253999085179127286149000445487778724947101700909364725047059191151167445431128761345165277028239182855104407781858020782562262415970834582407529464121757891974670257287056330022298527998829052713342229399494937460134346818347963738903658683910141164988488556129775382324392078440795566401159786564244551424046320642816494408118332020799984389014888589584041322098782878763073055426597499063616648408390800579085168260865906721687471366809549614788558499031498052709446469093249448807718945552736048014884834561310686688159154607806158325209951519119864354292386005972045044612413950682152931756712228462068528158971087489369397518338361841313801589450641994970262605043695090349319736132785484696222226968701518965986433851211372862285997910422326960285173567869479906027569582329906890004323308498586839756035237286537585809732833124225438768644160377418589163140685868403469856822504297259643773678619227216568873162959811978309036768199940066164920221206196196007037567781756560751711739762559569182955268469658180966069492201227423410994326210050719316572987463435313520981184060053256600875903032792947847408919065771903681339868054826543397663536312126034440269661965792731131951128186668558674080996304020327762888450080108148536294705423375478366850814690088833637015766636067022053433122692181636126011236736863796244973197066867777459341355475784169466706270691145904195652323846706177520978242134112068622952459538847582483790278599929685618421687073921579552470075905700863393467963138802060944607781397972227558061735859102725187475363510265138751923195403797383051620939639077344539186763953309277438493793112129811102828082605055678692336035265077246739024550980665996991793980297451797506247478539241870634031595533651618446260507465428195063114462970404678772577151457063372644142940222925427445975387202225411577817827389790900436771442098523927424939092830125425293756547510877346799136894158981202190551732017528232280361619364729500149073101757079651610621462907367375623219531431626353558462028688342251223462929510280191661771883634187600565779153371868370157055622071038945575523585535491254065509731550913846684548572399537051201599969457612972420719218504689966254970433468676792351978594413707715015922528248975924947169041670643291242321624203071077645952409070853388053981655464308449836944851981937793029704771781451258709241755007932517950473353543852454780543818036736449440096804355448486258361081931385610783975457572090753528455184343629087646944119376923252855910447629553907802372967379667126160640071907776591142709949566952511741165297223518893866701865051408840808252759493748946249107349460801427739374943512410313612475866256519493439744501185821197115765376367705615712028659020783941033034840596081062747539364256908544611416676816675897171692493911634983091033449799916612025457161453145716678172550593899489163139764579269405623892454048918009457571757170967232483757403308371016292144465208470552710647305717603089287199081643699597187998045306308220017242402586410357769794412102536108097582475652805446419275802609683257257463326640547824827706809220870218241415296212611391099809882142005718081510817412901112751492432973529125736166344820711637172309335356877906350446069861936548877705712975276008011666941420430684389033660479524627497123820691424049964821374676797269917150420272901972560789123831302683473247243873195233315966663958067009129074361394936979335413703270269005349081315243401169835541805486230395765324284832476083077191486060722759010228598904710457606274292581381736685447150699554913385026248461594141766648395264557342980473028080016773881551724282935506250902409467697913976279835814734075079392085188519270575753592041776900342653190239379592192111037438685672005141955632788443004472489202103561816095168310150838098033496318704055463799926154421040821053557082025164839467744553306168285922709760082821782930668666364716124477529983148444808761281492101502811527394233554852433580767923277139919361250491838342106166019049584725046582516440113571121819384638861182638015151844753227224871529089630583693401703239542532811622641535828785687009921553663705412504098712243281495706243950734577853925215458810532487469929130464885845212468210511517904041314619063524106380627030571163317732887896243735370979879073255017816694350712248357288135865691239672803575369993752956158656319731718267037273652958671556312337678046586598150445616978029567226034530810183765916542296841113890978735741634946513368903733695384174884822297318952830267508091514514252365535428635541123338799698750832542313725616385855250677393346606144996894724720163123339451759601513636434147016937142851599022067200870421628538763243428830839102340870460430870121155876469760499616516388188685392554978858707446415953016775585730871588558538314269942459391543786072640523930988226972957134206327880186215567772269347148462738117267575945367904571435345248979592081117737984336157999432651778828322451699630490995398827004496043643155324970931874410551925720305139372843474354632717992061904309674706688948928611712213644314889426355126608696818295703647816766053379063483649496152591622510240017494617235960115359271220905245081707711256599848682528419751179673426035402814800433425267726802883556568455063033716809786157372555382228543413088674416055688326283926651390904149996903510568084765399927202680620634320743160628194608238842189651607948371609749404261559612033820281550890221708338045822257974660381085217397249460326875614959417042467644282894348328253246669470175572512090579907716749193339210113635057791302986973436773836699838599068757266924917900063491845027986502501530511244285427481124839318889965047778303669387990066070284144305417965691131726398590990708454957016104410081385411621547475811680494318456351375279806390133352040204771714747722916867726639504478569941173564045582359873003683105600847321989038718742113764119736185184056091870314186432652869075953228012780455879301430656816605594181006685947787336526679350264864172139628553338950189108520276668864809689209697044012817508068327371708567948238249825966674465793806493794245696476011166207674924592801503151616351402677901210870456328215395745121738904972019719137497876391122750775635698894336401084762032193359051082048455891260334552948178677404850427745165717495358679338164676995081578110878013072573077572419611476009672007884625421134430346057048730161948743929034657577267360969382821133601161918948372381971471571105025186051596315723265265359917928675247539605491682685806897211846286118920936189883837425559486978294243921771976673943705289126843427613223290991136759618950586524256096332024792101303122183751655727797344500362663710071512676197764728182788896443191545293811435525473208318321390365852224667071124941268473387362556004202595745401914376830815175885286414290308193900348471756537989708830099944600055444292694968852808061767306009180544306215625927535242808307637823490234286665811386436913710050425093948820069803262310894716783302324788100949816407628319535953751751754265191696734566837771512895283921329947323814999194698905565529389409237750515372324856460966880878872165396192283063885444016677728619094613388315970921933108262209268804228264653947171641222974831179793977229565498655828902602005201941768543516125608833880157805385410518658281146014719956025295768918538805371908549641902789476935256060810970327359070153399196542382302225338699563582249562301047565410150964113880557238868582245658426747505349859457191867175036298824951488803978798061795391980929515932815264577960339860469186249942931678360763877251111679951217926699314958806307194177046636813212227591609427863542824703769031376453126977379318794409509957472845292617611489914187952446360281895654632910773715490684071608148987270157040381673244862548896159086067182956563071070957590559462649205348761214901338901332537781141764325703773579973761824798235468111795570276989942109704014477633390825987949521855527960670673156475303192894314057633649355431580512153942345860999571720564375535038485467272566652720992345185464659931932709626553866397483867998947435759807082006267684778396927641919756492943486359638483863074786559755223815881998470270523402617090950626759515709846160001330340227050570993417952626147307371348574735458027946554038898721980863826305312263950245194384880014778943085412458229383047884080402944012835234693126406629991200072555076735255134684530622984678386320427236459332494782057848154077150661157241667811003246987956588281729687570182983392710009644835511129923085989401877861632851945800082643283888740864154246965085356259152542902742146433166261786449044092226675567585007299980260233223688503713808020244538290462373467951655599999969946238148512201205680120831577894235431318874978511977122597998990832695991744458302697309669388112315942283153051938709401983247225988957631492263931430645797398660036012380800546824887510732391222838221208897712263450357776487626980298784095673073695308611993721611536711653735497460118006881707300766041383840718457363768273037239765686819271497582537320269163375006358647613464303977716634985484592629809122419792398854079688315197873919230379975625741090536146890984645720599517286178904177156873152394748355912823782308867218359112286535063791094720770906595510619797382734972850392973201508057703921146417344914386396752444750848383497543050814408767816651566949347393309959626901853874897676780322567029880555713876688522271083837123150488067121490760849108505492709366240969681733906508435941972420480659579802599678803632569946808298748575587247889263354866165542964410806163402303838593101087809837643824042509197861285807367172234618699182713326618707484181784850257443084469734539949324345065282498774646965676740246695309496073969053107178142198773177305009282415610585188508687906118280025629914235319334677312783099837408375010872245724283839954979890325788253976902846678202615183459061776533797281689025564376096154336906335859705182525541774848739183849749593502190156310046882979105842851045252438343075116837242337359766049112997179548524452187254706224760768892093575008729923490726768712284687977681237924381030068703044087952147937957147672523993975754157121275556115849751928445836299915742934051083053266782511640595577726947155233769642281784219250043054154042625683701242693319286707681468078169179364727552164092258714735661768401746086239917350276601409439551017013500306844491683100718898965612701396089737092605617320654973297192504283358226459744196178723318344523918867656970022967608977690569000474413612924852713647310430757828833664439416479688663500720277132800978620541231629530336310200164861090935886677331138994085701329543688492403718206907330736052883990410052928674971961676276394526313813013656388619475358091301806083637947826253268192626083664030153065158118769521140271760866634714034513479838068565810235448236980711726493443373656312044119439566183224379459123793000846298672105098497435575346711680351460653426607216390958185182524270592464390476069668864122454640090951265875460487111480961228947160021694284872981924515917219123014435626615984495188995777234784890447977234918244425560352683929368645560452993559314021686025561098088283677409393198681302820739566431639034496941711901337357121580631456333433586928433510092803955239828502504125729579178911876527943972449010928118113256400746891035514827402790404599867455429000743499468973316610270641092934648992066619373658752231923273413477352054433626007277888205848676566450281646884493681448533275282170555633205524738834757552707021885854566338034361075586569134082463538542222726038082344885960756129081801581525785189780511391501303351689890843318429067949309934202278779837927436120940793587733314198992793650592486511826318093639690811769123169308198678364744209242063402104194750810563801924851840898642957159101792709944517898436773228100197184444557004901927921337287872796120123165099241340479410338747991687895488381489940098776952459183390449599060648290178462157146717869863515079572377304835446726298566614929760752291563018115536043876402283781909250575789499585070186714456597391456747970869995117853058423359207120860110057465064520981971001487008507284265367989648843890788128604570034585769086456568426412788541062184075481703503438862439421903243748914938969838641847973138789575639440169714220462847016612251881139774048495441369687256364591370839276018032087443170185000765269400289144605687119393969288081207258861707667566728035254270630419773287909851763264771191210403192251480689220930539214756269031856044677754333700863879430737957464431647440460374616015984885999903635360299437668847175510766893914061031759119295995297051249660823539083664657044615564534022421757899997663014129830079313765489505635859761690695298640888379880636226442822874850986741427807499183649574666730007659258385793429101274946066047625671796249631941705116647317526000030759516470013686351265744382596048071989161308458009450064800252368874919038985810021823296500332915746041466387599063804879296069809887275082706007445902821289214176821148832849410179524089214682548849501080564538255819550970878335552899061404598085751872202605544851773033318537074558359830488112449452471754591987007163981063134594173725576417436555945782236659691162187868008975885080570010195787100045195753941901957929276367815216764243236718882226672357011375842029592703524498828210693405282386958160170381396894179119947156223408791231118934252950771549505511274867204392856124909979263222109555543092318313027103314000024495076437767825439673878990682266724707682766914618320499035704542401258599922068321302077241367758175495136424179052221634517420322786507981589168523493013727031829985620993315330703966190694166595206301326228061649522845043500844927982255272708926785441310153049314914433047789314190388229747710285653166262503569090889379342022786751906672697995874257189425239298811789866145258779312441079991349894105015427382131672372297239034303682182245186523318287446654969914581691337295461256446656618086979286596303684663092374183220825657419088008234735951830636749846508642298423619119324052273997454245079345831833996128444281165401253020009940039724480770678976230007321961286462135160186436823297820382048064518912539637369898544863894257844713483433917011360682562026096924354740664645539154496956346194660624642330437863279576850614818951468057337796590196304258577855198903560850470624611849813824045349491261665535342629060964506297131125882099242895309752463848703446291964110960634578668249901779227344172599366253229618072484780732164352233612143914425292956023693383646248304458831533457451682970123240452319398831092827393539582252262347173301345279699280068990933372652007834329648392603671161331940934340503049048707577195157725744083613806714480573145526356643824618352411154076572542909246213555106298038759885022546231817616558346314778673474081761621123570631438488936017515710496208938369824737692998589669894311321919945304084750450288773956587493982751963269268695179241624517701469085918928355723365574083898582958123408523663522616880640984049161643716806194587724746162937852978134530224207427272522840216195851657617962146242489920058508648456419354182290896717214355730135909157838787916140241219373641244172528986849485409985261398668891620170465038520330267529208758813521671960568506960010922030240865729584402280876367892498739427189595776799939150048282910327702900970551259451620745410961449704946143268243079375134348987139506240446399082833239879932280253129191073156251197674244833416355116244227174352048292770563032557338524008942106434915680344129336549070983393516838075406945715561146864901230337476087564738710607498777992742913316400230096837864601257035945527411429510952878930975257244906200134983302873747764069608937131873278304573864054130697657547430849821902258783744883916122551534466312605068888460328976655193160200932946195038837968078488833908258431133789452572391088621549925979547211789881076737766870787276235805687542338806308303144779136209817172243626529331087947024370289156405366544251725773813621227741285494719736277127347403973926319423947692764458499683140589600037884555235484557157336663195917400555282175619572404023401381039453020787666581001087515792532178333305857075827271641289704804118640736116084779048874015951232483917341856553770911183747243950475056034279502658401881800745355057885248993670332217183592711714564811454860042996121957827534423105200968265967704397784449523067717209978192360486109102052391493863340029130642612903972102654064259656962323116842793239330561916361765882671863230491382983588339127571673672637605528142176854219080800872119140461713170168763427914613791626050481629079426907084884066402764074296420711543121840686682239502328851409909395124822661739532780220095538680181762413667891445367355900392639304568701582843277047867754214131400079938204334778602729543022496740342924470806630067896661173073641636881373903537654200601048405934143529744894516361702480808589071541137256869166309223172458483610307971709970036790772479123780988269262505974811817937681637222304873119116716462706887294030021827460835300261796299353162333918992171845446172182315936997679295843359953202586680590362855001934340016760146899063342787257479435858440663212969325100262976475740359362635328833322919982907380766600001355145496765558456019590357284886555820350094479030176686867356142258206433864707016207563798399380040090742997518719859720293843314800748802380618123538457161000049891979008380961905524281126154807460575536620614372548172010870757759966141304586210914633625556017822583907238281161965135418455419028136124486159493568259774293441520760481829974345798191222700112850529125536257169642803510920707554787544800820447338447672151103227403965119556233772296482956220745969452782182668554926115445427232629508881651863281666274714670572663259657684321430789325693434453199564570865845216818057271565269081328738091187697909590238560326146316499833974165159193766204925379882553282614072323301493698176939401238005750601218194803105366359045210014470528457492364761348768817838632719815198563840590654271767711620424031187895273981132194009517441547052452309728316154304620830560988646519445980894835781990603771992738479630900966063332765471010851492381431267849197007292051447487141903583846547251751974076187430231513383642648668219604929042577847844283145957504730276597739497580276669365774410710250658674658449270582409477498012268759160415999218471930834618976503182957739056159155247675647868116503976936641759510700470341964551542118154525421627558973618639650574284577002316217276859680071995671567977479821015754971394252471389577995711301632705303996120393568450809727105060571691005339227351758668223967204425397657413722283668820688168100955267710039214001086964836470334436775123472803809143164433491579060355608399503296506017302958387939974475833657554217424688896495916531018262970969837026732831839325384759823956819618214011591019910359078296121106305796800091618764072428786048851908365588518512141852521172822486584908750145634714494189873564606990236799367698283580603248316391002820640553222523749304084831720148831450402777612364728300977632084485035198688944135565385304474826692809363844992250211110733971713385904579549426678298115304051490185675364084912769564767364698663155102747092989480430940761670547790540306151542769621166820017984583109104058259476566221615720960764955595839903520876140728198343344232271153287724930692098230203240646601042327736118314798332183009446411498587604551884802316293166369941329533561414758393599454190175057302563600867546696597421926027182726683960568390499076994590273481303256405957886730449430206807253904990602676697360549241257595267666823744347769986572244051012071891669516947335061873595632886956831709622154041491387127385887595454250822848154085384419278345195273650176596304376459773554684339593127110834051739696182842286118704061703221506659016505139842999752440593312132720589076577923282657985660941851743095986709716551905891086731846523825820138381598938281429298730274235624113225204139943818287836916296702548886663057927800159205370141726463567814365019277064013953788553859763376281586729379769885577453096289869626796889424836752407519540921422052886925266178606665013178804240939557565897808607044918084089929966466145647568456351251534167455079687264769744789031736506042346669165359152835459939529644075748153895054708657739246317744164351720531749127563487423772036079433108712584357548601607843585136264554163219032608369152834038064086022283985717456469541030644724446910955808118745396421941763907313650876469643438592302079664064530363652009449558052723273852743871143424778412871722802968036841079365093751646922722530915442104270341314460727892498984046861991358523327992951996623010385689983787006062776690959615494786611328554551567271665986246712393000748572861216839550604512379898901413687844025406118895993176348581613615683695930441665341925603583305580729570044100082367419644121441162852709486236365860202838331533443913034472785601371646104432867038863847546981357280177699744243434321420922778898525949374951134702014247039556033043534605824463733465578592821144682723602225375711785837045707847420163526109067776624748481991520380155451433462077066342347370382968971894577717689798561380741630430984948680680569346147938785416703831868961488797787552632335351875790133544933398794806801937304869188953849006246393237751420877787600033743139745853946071839336881016208350776236265580026452742733023411943957519789204583834735862242924454865573061278854002582736492890551601611525781591185682395541654219155556622873867271515847111230317988328074088842396149392619080319059052201856169293531882533720849430631145061740960533302902157281050610043247391009270578004690852331725352098759545017855310410844862714529749255735923750180673789480261871967659611766089459766829490719691699107546416234481535203585794537514672016253513555071927896568901289698993073465092196801817643822359928681094667753103531301908206304332167607352443219528435737930461220480283809904000564028501237577286779521409066560038316443960667097478201568499971396069080400335443520365840460214102211068522314265951368614863207608058528891573356732706643193054792862940607732323353362093823883842023109569146737916331064895099752617365233359538837115479814493829444570160598094741307392447499173977326385637715184251745259250903423691356360653795917232691511861126860165983668656273261560609768250429603879919054545790653449262992389196012082344642100392985179435674789134857071482190348721873064244778619622764453011497355386633417278583324322095568853661179441670856063649335524237724646606503032849924593019043790522162974404684579308792531299019816047644077028199225022973571230255708884651146749589858663255063036939018093490656744316730727168591174529603771865711953016831741738602771875873774428469652781570403243074854786855691790354978807741590381496264244127830938168301731357021067217131945031447027870100233610961264870542768051174937150448991365128672501387098357811008554410661359465115212308566067362585635213541896252224528106998255429455944055636469348872766276961602563259159048063607172995104724821890882720449243927980450945521322796188248888784306706473429639591838651483205600033958431476206486165515874243775674274788007463973368452961912719154888885611501967503590990467695568599035934241256066263253941485121096905471856858983455403349077898825469486889142132007440509506312175772996237441616354559045378787951472187945172491828513123367510944198806233684053375446499753592689920797996008343919672768524673130617840506083139008070112692540752689097337333336238137493304616728801270286156366917690535994824968513383341669345620480292438840929831353668770008765822578705097864229960847350420902214017750727827341909036786832160007619379558119888536454575245996624176863456208691319735102733102162051813642720093500324814285950017454591462490310056320998339292394257532588811359209278160344365142091983985836162081254627258489694798903344124257737579814120083428549542763095176925558255904084634278097810723871199885980226690252437891754340549462588828050899700874454237917216044680767894511413372427169948721051375446174873950635283095923951722730412083616985272339631107208204623853231277248411857136133084407977085449945764712824698926973929709817350357665371021532364646488944348134338523324875806934640487912436533244626675352859015197153291714052486298151467799508940825694352891786495302695574569209316800286255167883974334644912078153322838171300670596999794227005849836468386406155635838875263261584838870005057810735972956678450368292612110742099649756419144268553336270128885793835316519633479561396018629443095667261712481836388226152656618875221503636174038795840136845100541545121014422380355250723153069421671601997216897564413732652643432479933945065719687530440872717562823691839197169524208509957605025617686564591557588283349903042511025428517800036863201609049543209272776800218010272543050322304876716641591278671468988827274471060982893540784312404465274651900447476026963590471721113962746567715778659311484662799877120139534692247963962215826757861522577389732519712110413859022928160432446970124555030959667562176048629791827840539884747886671095883983467425426163931963404699303667621020645316721065677428471673039140840841645946080471152536805580569714130423004588752759146088208372512654164582273014963125751995940024443752942086887844218261592671980930275974915074127516835858332971094922258642392135666698089525993274690961099241290991337632388104946476608693066193549960633580640071872256346020170590090614467341426946137230077725009966451183604827004664491720459046031986881558148893458733044111050503930925350403153115735844995186904498989556001078016331096722688191436819452160305019906630942670259218870689556100834391241911827463749170798473470090165315035855574295367739175884019464142103811148639643314240143392565884368085764861248915258236167656254650222102872303590854368945290599412937078481447679184060938200333713366776362946237126250341691726341155053562364920233204662594786185538906242663312711393842607185433325459111357093672565781759637383555329636227373796146660853767704966138903835839847481913071425691293839395428538393751492568974446123549904950316360284531683616166181168463001107195512899256540900389898641722103506922018184567480669012627716557299698640321449295270869862350782708319384211154603479370686446737424248363449742512525955529072518092838167959172234527001943480977921275193074868072359269107041271982061334702308432750955952409359906987039118780625241383933084310634538686645595393730943889119855187792151006304092286345389329040207586197866307892452602135759589833855991068489743954467875328534395514373661838575437159523204397365319840308951809629108901775684078819135281457020511153737616194957950518589880159714817316899522466073547281190345193156746777290131088427399779908784191659168862594497736555407476903028513520115940921324489760046246421663117615458900712562345826629594808373751136659417668412520829435744447093427503096192823507971952724477582702905164244872667648689326874636080834283860014440678145047438268905141661238427949640606897101652386639955058883403115643262638681907988092065554448959374404063482783132921324272884511622466248094072505419324589356436792968932590854277612263355079704411248243848040501524504006723768895850012406992568560045631876598855360557231768692038492584279216879114313934792867774635907830104676699017893837072767472843276143536899857740115932481447689325799410881716470866390046124474537025413321048716978224253821632866460067332613395003304551796461481517724414858013433600422337653628631554280594834122291792724757171815043508559251897810680170581880597121893149662183515316173688214734469304311187366149226594331421120556623352249628506429536858505616037359504009536075523049517430410776997479005220168264442644097981960967970922552873680966388510383348815188792346506215012877001985602040308538693140672483088307706716739663931068135579531071679091642385919734427177914303813410818320784449051060176109111400896918924720954338156413097255451292443919959537456824071223730634640304024304832388685247909438106338735442896953852542463891389703972657042478522562514891580831179350730466799650234394515797334237180697537452393690710372881261144873288245690814055261402855543447556321206735568183451097732798044739412493594473889323680019602989406036100467324514824235269604727750134041678588323690492626059558573719264320849570960625879135987134940153066087597186776827977784422508110315127322881709409199997284610518958351262433637608745792592784949578851802079293079795082266555195360049742565721018263042344938019218991278119689649928645165401380338123275543357852467537408543714612773764806953709851557782351873624699454344186994998166975353220297028238694699631303242874514194461571413632111139402621550649053357751094322116542196822270063002268196558878538355062850759748836115506148949180835194699725632767309274919161142518394618266160391596450125630363956711876939979798231911324415035839152681058080959276250755872572543735365006263035057183153653818853251065279075736385449316949236370479474916629665142513133687735608470307901068285902522170947730278280995062434544701006419389782722407702574694270223930993027640810254437100438779064384197186854502859557248500424636519849457048366639456359356472887835760367888760291836656160820779257667721889763716532671770149219753839714349812386082935288532092053146476240668377276643962996328617404462978660116755097274453249708226597472583046982906121160011306964519549404881727664493001586426343519850033608330343867851497302629458667902643924080801034770361370728717047194101641406341528633842440023203439118067019947687280203886763560760518664710553605333210141004888386064169403326233528389226343926814532192732688548617786509680825744840174573143152639070452237228496457271083154166241046141801924446385871523588875420485846334284692614706721438327703152018432799328147259209495028281890219097794676367225183219348875897280135024242395312269294860765149384950250089017694338896935104065430008296847722071820569277957493530402649066997080427337155506013646946284266253177640724577236131295240655110345618187359520970690370382760660674128253721568989934285076857438710118254253448333056240304546009011189806088341459695101168243574410028977212325370342767555419840933247447926127080880953266943638328291039638424052317005480430099474653970571637072349659944055890097147251655594636055743185771881548027332784865682494425698689099197478282713053371187728369638839852174808919220446665509253624641597143625730712495209927397160987937948173709594711811068402241021975509875962427711998619364944898425856143082434313432520380818742207892764498412984201185986111410200259294892023990944506941324609954400832483013851881546406988434506777863834242329852855351477464974113382658851440202550692698220244236103961371373540416912447236077951682124296623437246471323690879707330443718294560547363961140158954066321091251045668583589369595809633852018408348074244225174342429057013000974053816412775033841016273375038202076366271205577041787090858621894712903921534892953856065679478934372385240906381873141269668360272400441507203877938393941260886073280485938049269597282955917579325977716594556892670654189976983699455261115296533697431257002339466645729929034858292624654807799103271906960115053060694628327306285928173373766246523078145769904780371813104611422205464225416807158488764717269435027534903663395900461481067009785959953181545127053427671873148852499928282370278618979459899829446985666364860459868346981551765736521990218557499546108464822703585891531631784584433737515639797968859580264719678493524091962227179477217596379472106524572425683597375143575395222923800989294829580853674818549710880610708394685306433750987279590212635809230886608396816510921178708256841599426512027548535924002430316484040596504523388830168512204420241089449352253382368001533062345798819164876351451328015482721493629120360762416652810832844190354613586262483208302568831650893005950468806163507065856968082789027772589113160638532353944882413304531272877990373122182269923800347418770350360717079068653632611076436785952565645136219098764509110458716686762560030315844911042641587508589928898580834115221662311487623858510389989698868549536914625102000076988825231995526232377446085276584381417851982410961535939714711730091861084543345867107187192901237522055304896272349118525161565476750921150529680568189223071453977133737285334848348039839114957599749821136663228251557748164281188015713228807799760550691875098169318829725520748537913675150805099630711859588153396114653317626888419351240546820870097092846921537323248175397084468193074635166676171467252378329097806022851120779675703606776130022065237735828066658277312707228349441613088366397423509729313434801257020743905841422455649374103873527101883537261620038808859213501266939700977255232198186991105181393172145189696230880565238149739911191835710448319254434716616880334679743941717376602597422483246953969212951377190771461977166847206076261387225064691097508732536751645863080350667304701741236004344070250727074817932700209263222712571479577939763011532280599642687562589723979250181033040538390645001049047643129747604385881773376991993319653713239079123794492867366948384109551773884332704824146733589886077383826328123600633177307063766112441603650675084039171144919768607306836980991036317989703117033651498689653915800861361905854140509257004900216144598446528214346078534972265364348005001335042266944996217928242996336331181252320596682036401280913329401122903487286020535765950749861223466069194306264046448858368350035055615340215315369307945090915368414708750201725872954692859574876702708978372353261565145035193177121555026415856215126569059770382183239179257043101960372701050066530441858731328220591365683808646135066645067222086035412696833779860746445291232162140620527437911648187184504115171074059860006546884053844563380147205436225773152664458083812006047399216066412370476410121812526938255727305387685727185517955113744771641515789490901604242730532940346968370486243551821009427646449952047834741317764568722513887015470842548945587428912777579355433365374335488737655431410768888965214185449938265691521639466268523375199942672798160669232965071834411008512350404952138241697954326561620049414308779463564285207494557560424607946698280738768878699395051790866739688428384263436655534244581633955957342601078833595060778214964823344432503419479104209164704691259426110227328315925357643663964919051259039746372069459444962083876802014822721558856973353498678995409822678466654665523809184943735519249886758487909709960942542107766947382052027723592579231230851480892717432075210624513884891526595456072694422660249321196685441058601367213274985791718710706860538973198842524915417688387974892802256490477361546642769655938397412377018788687479010155313710899604409437449258910888100833238893592702718011722708559621487090682747337583707831458727812620122539377142912276224243198677872901473833356984819491869766220203176759022386921490850034731222814712126021688736780452996264998808434396350207424419283860257471649993794186597444140988293352862583188796611209930798383435726247737692003844090454633578759894586039905020212204937434349195446364784864672887777719595329876053490398634954514447548158204952301677316384158984822024173715861345454742230911746613074381851983649616474933334043490251004489666842915681612404481669613991544103872164675330373780094772112086421768170040548923267125999463467039882178536054807543874900131671289346370529147875984428320018368956007488058157306230841347373269451961971317284047807213493895222206871814798431550562970521234262042815379156155762815224379634238333834025369563224855440750784451969549310729009123753218694478237831999993541282348318161314710873314443164845836048559421302177394113200857877301165284954728403863278548724821267040399734104029091854351253082909637776535330498189908812858454015060323511256259963842521051985417689376942977005428422595766964932091130615597387817226295846171236461685755302649419635645701766744426848921796738491498415034973421614472377868125219214554865930420598460710677428430217652787153569864547377362693904897906464622664394618105852662305871392158330204834783033989984957640159025325413108997556890369810264218720777132620877603482223437612386827565182681674377861060311228214260381107660180181136667460336030383609596143684037270821996506565030081160178381705177107649219554348549919253411296294347359685571154154866054373335406948696679852851525114044852269159319666549593330034363874189519082118859206007218666820955869634810658046766022938727726541742244469934125369835693174071377603946595488706678471256299621654178370308486217860384205244459850474765170642450301389886175596410293043716140615198173923366139450089115055496728231248650608988312757169828134974148923008933857084387024056694234397034706658629582554861336024992124078530558603561416766671827075730249657513060982943551113279949514840316291674336059795088142037183454448079570926925952446070165620841672493485713462949462677487181178076382431322148112124423359131789263718167534706738818315359606559309507813595036614033541606745734855591536772008218863697859926574017705472743476694478494251461033290695626367424277067918644393080212614080227731045446126589336891439685081806284590471967218180430837642911983048702522185095762870545532613824521484479137152482266869150005043632709180856811930127116804831802505933549304592912991163416537347520431663722846200148249898747132618893431511866627152034668800452313820121696110349579892794887651725204530571890537203753569035663538742393328343018693732212487615498320622522690704164512912778319695920095712323285393286889730645567689345069412655116958952321063419957452072256309700226440665991869816181551249960135403078162379175267511627597530707845657488185068416635800467698504954326975605407494442874344582462223123822183280570545489609140641022090418780632825703294245108128767610545171851160114559134671519133007035304643733397824538665889152003906464989287623919845027387994450454515449832207618684953628294470754251109175050257603787704499168744162780218762462874531319468616639129007384179141804278759606580884789849608207252689825387411168550320168705389303402077866260925833980587599135447654229571536489258384923451055309580746275376131814960124220678867933357104190450582791638715006581505591003253741910346625735337228106134540006451423888859597725848190495991062870217923682391993999629156158562319340806833271082047915953651269321425261855024689527503946215099876552179645442539067560973126279483668081981067288419339316291465252625469834609088958617677190831191175556383127109842973906378629028787265010440338023354023082406153475244220239586389390001022315267571224575667775386068694227519799550512036733566339628725305841273245193811190949187321133945387815971462963536508165502796455219828430877047236076653811420719919442071031025545890404526604862713060558128742753519445198276796312606873967921866944290889054108657493890947507228089130013343832312473741947885499905807959525996601978684936509198722902717804201078219936446407531974552312498938365536185848903255186677273447384318312133342716657418570043936111563625223972244752290733357938615147765834160090375449612626991363016986850316645876222738915060633230131806687001458897761254266562475683210008449427262883550260421161208501753103218083926979700600847856716914209732233891459339832252684616860414938617274388532983447907219915123004151369825407973521215590257656770488313762462012758852592511585171005507547514004814002772721561601234502890425685401403722719894945906375461813398969922679886868781024922983898673996489545138021981184151904448290400351557900497642618982706308359099677129405088587896452845742228021133733932477190614408794626592489628327729431382182191744657861186483459076773069626276507491790059374483606585717025625820046960683894893591054915302709329721549057207189887532827430493140421801525626489536453977513128601863557782259170513920803671748446959877389149077592437450298262751145642649863084888137420052462423783516189663515782952301864626798781741524163243133118944496933465244173032480081301223945955577451798278190711879792401420416886515382389012257877687221758869032840079702993021911401697501570885547195301220231510727912933638415569196304237590298017263473289508675608613118728532028203056211854123631850015663483228418768357305384099019946438314466091705847714045006873873828312548053283521478247666286818988499145490384872814132244303621451990350890051129795216755046302039557170475660285295245609887516257413860927435248471890522373842803717567713139314770658091662725638683777394168220045323489490347732255582175488057996821919031378374482202159193564619068541412653837504956875564484141581049035675534105084331170618828571313121839439025977906754208382284094269881268573891806342063399254835568728140828746376791683595267477826939579319597317603026437235729681363205528846260629534291710698333021577454442471758808739197682175248420152878089655320239604393678087518374174384101054972991991964184764556483008013228577366752849758453512163299022997747777569643028363091859290699862013926773318285066204231808111127903601690549601105913702835408720715718299186481775876959005236126179381195787059362680153776290037416110721795532297444304766696926875075640696279009338635522788307888322579850237690653271404112466457225848571255223178561561062214857947363042925366279498353870071241858296646638657796638630298691567781030465058670488367389661541998219365350820619016479632895625155968802785122849304141751331559200569180813473083105355355229780359350750966722936475954868780082175913902500332993972896446578046930512865834582017474623891438412946852635797596841346809211122582557278994466557321091995967089899797511241591780616944951344696409444821776388093505731223813072563687274101670718417657241095759105766826163067966415544697617227980252350155796893739311881822773125738420645609544062360435670858976194339288453693077388035002959975292773820275254914953843375181236533659220616267995625907784501696022207609641883373706493088907993242688487592965240465803040788178075697933288929638080715713100760016932751733404833446062337582878596430933409726847596874117441552658751721413764392271307257282833992135996419589563367843567251336011447536178731875808252537617816480975569185263685576997082312789037579309261191787438356968995091273812491589174392482514165763384930641440905143098975490296219514820318161490612934553591367413309293802866462301562079843106459680985028496223051761021232999047315962269550124098784512264603431599703794597462478375498619612897589297556755480648746282204509062079672828968746474291938293643941893595496060817409668433540190081358271423208966120691861920334114849104383253679656950235941056262915121356899924258901314410812358132405257965184939484600188451662961041710072706894093457567446354524186766550185707997826166976503820580740194674577392804837609661598371924693865664048867437357428004372296847915891358357293285258393099397301018485610398113928579661068732742413928362505111098199979919743696594843713761722376772736638550964266349759259593111422452811850800732898761719855861997114868105957852181953137277243640797113798261036915062224443925171094755708669452932592922517864297852104566960144127279235067004325428994527520484836831755102364362276644598935783185323205872565720134223726615113569325133285129259517102199322908084772359450560296983322663381106826608908935905216977586767461060686680119248061082027923083255355624170153478195484881360207796534205570824992871559357715184014053235486439599177824310085506512049026725958264971805873373774701664887488976277849586553673121997818954564703796017367062056740302219605247952822141712564640004797268590616787964978485069902942811774430919971156147930931554159118907286957913993463624755792976201749690548972364522338877434640895450750650720849681892041002280187309533951153900146255619024801371555416163937277368418808134481498000295078267854314598336389779282173821689353048602003618021876985027329324685499448016621401355135209911412615436763348227697033011268860055933495998688590630794670590244390774029154224721666659629293169907580937067562016219420266371162018576419604312522858758953213976459155231086715351292439431196522381570148401988021909596177062949112438511474829183237844778510837751192276370065061548466251606047246502552660690340818406833164657106368046188153932722872873175187832675992202693196239033055974656595941432885647520704480159675843812584891292388354807054324216473369454641689402915880975271395666696468019793745610850134451695189283759548628330925077894806636734415283364293628591212439679671369489225473145243683715710442917483502371087986351613805370972606942220022576627942391285124745782269645050907311316130865090159527032287962036580356066861795554505150461038945150985833771956144084681968727822824321822021535099540037255202190993729914618226717003590646770665188829345268516111880462156600484149533284190210976406114657825304772777670520180482597156594214322006230048351117096282053569427432489587596498738958634229400627542641516636997772706242693116723694441293348490270410113045828951238645703014950340166701481952812213758573891072090247163478962252117983898742092960344670595975724339620498172256778072934466727166650160863436401960075285551357339106061994780318462179035037809870483322387109409863783639877496242448080534383164538788789047480853694779590119189851330702249115340402406694163026516282242961557782848525329566573381358991500678741940887326059290373013108142870533611489857784002687178646386726000232083828263294231527664778029719654537273256239379834523212050511430119211720044308917999567803159425640477409005050638622233116935787833723131716925549410510053208586711323160374708800715246517128926465658184450059294618705491838469419487321815432887055669000399839906696847034707501611050593851636262593931509855598827555021219164091261378855613939356354221816439667502998209101153120879688232884178820315300092165922276874612086624133630019081435896750162289129662345417311506465150689501437089881580576593397832425133391714145991450914523795669052451323253477414149342565670592609675842933507373214352019577563436932950114987633250295742648559467573919752776786324484351644345682204127798152319273982715934849132658449033945301172948959539662475754594246245440876103290689281589209640319004079478662197511772305683062967224639689865727953034824522630615474889771889679084419474443041442266226865463128689441510969336184217354298524824456383834103559085716166708204446467815797564197386425081492575884906376257859024952335217158686230930031508180502909723339011073541200143634786651893227595726374945430062620178468360033040390405569956879336324497680592060474847885541849915336666404243619436684647772069622749957786046743587610979827862017313838272363765350507101427229147675439831241092898722307327290531467675083621135623916033444416221162118075472083027756688983057266731412024606393172414482170080228042149936055019334185539573820286035504958823951983700894628613411626897528092131302544417965856069800714917661141469998414501082049276282814368609362109989393973302551096073274296067174840009064333373249925752205492837209431723586387855589889438088273146469541418222586038269500846606551937900450354149232451314542060284233879683842838840368049544785818925324616846480257720048431183984431949684632191825909637836360800013775847583567870285785082062469071266309881751770759846810122161126045708153870935854868714880297395167130949322242410807983666781950765785239952132949937933180017074291352593502518459868971255751276144384326693478271022950249399795041057746765724484829576068211379999924349718275764773713579481966368448333632406359513851126426017731380917276650946981053532995038417249572514522632467431591181344998621992066591931272328561626133075723786998325248265768577799103341343637481183843846419491458726788338726399827619385905607307155092900413828762274976043802700959901113490864053652036090468355157216370802702343561919397783846818461445491482692179279348631128201707705562721623626875725562550691161072384009678520385455314144916409151710738639251238588961280591469466534376209927480537621830431028526673811073824214873425191094076545063176886140360722058773687089856462312327813272692283523525833849437013964626495926206663130657004106966640616385125444098774899609925590790455098923647540151781277342235337588930803726383026476317373092846214059669989708257759565818679755996142895696788174073936798880064018331220794211202195789941386748546511780611245195450798095045790598256969362977737369988608236401060090340852366243932614163742441300084263813114853927101664689333280677865440026506892155288449382357509263801723891403734120461260895555401365355940919274471062146813090597194133959338471538629031893197589067752648296527908404216323166097627359541854600521042109152795555904610572584475800068487642209408175148650390860873127334890423409688320983877518447128823365592448429751490773157921311056579550232504570449295046435886462111269574186184347222319435258067898111685139372671793183538616322923015848169014956044835260081489368739014825301722195585347026965118220173912020475125025810750956877007412659931114353315928323310049776261634289149137572316825952097807155879860513731778169293126347803955781267346255123801143544225298755000287217744675643520021747918235154001920023562531239577526017086724125227807232667328796687484682290925024682700429372685380745209528088466107443220939386321823851765420592119162015138072806137700839650385708584608204031398801402188000201797710525138158987977759678314193561989163327255970467226208111471874945910211384668774930805364258251657155714146664135175185070094462018195118978850088972536022819757660788693293928846236922262840731158644042054966212804938804543817117143871617845303806737652349436111203536035431028543292140874766795390361801903506810283283754848389453134064031425695153367834948634444623195202053279167189998815157566192889081930847912696884256473698417041341146514764541004002819927113925181485521402821998046324435599208922805205038657562531756172204952787775690493210118744273335268704518759544387192414923406406553809477908816364910439066817642324088104384570665339564281701364876250046233519060434896071655656267417928480151445062935744707656202497366176745546341893254203946938755443543136101488161833140024693170695369673766404991832656765853492950484730167339718126601483452085839605509452580681427432633611994898011501664602778589352800887505222026019577687803231548057271711165002674865533612406125330407695661943497996675852604442109003559685924999314521570331823488809969401437200780282551979823133509886153730827995507455598949050119836531187561868094750328913861575067905173116717073464049155926126082110570822365113261683654536030073551340584146426681929117375811830740237170134717989718230756532981205558138252990729307917082522656177795413076079350810423473025549976987935286739877861576002268713361169126612974000802324888928083527214137844239905683054582439996694514139816148491370420806423827017986743462612192267328317033671881693121096940133577293470371185098722063473168884016893336126460179958453471102993226415185629048630024274018991269665582868509831869526835333050178164345637969873218962024032172072641656128558555810910442995589388692291889691607313839816851595362385095514026865901703172869403322694891160521935469050460200517943299508429113272049722062049493436741961780409866167977768027334094817749095739967507542465901045600799438416229203558441695616181251276407476566222350999007704263338593178602348667686036550179179880882365086417045607207674515939775824296401420587062618699312250495137423836105001509334034229936701785029124702076035457280786914272994775368857937467098617268267427789103168140365208905191540291248926620666062470118351458295600377764320970959976873009196419514416776621420424937087687739082219720775739445944669838129856949685415529482927921525314831005448140534242011664943798239742183850556541519897403517794526009025577367602689112949625592811499462474889366623859925695036107001988532647372877391153819276873250650441615835795808927388781085614850482919857179118803656284929049769182650811458147285544373229845659580308819232375816366658437922247479686140850891239942822242170304755209159130228653549641542701047182172991119872307901780581362494563924669012243533063758327389476174653551701675523074393043330002309917685946986852652111701255668030084905656462258058656967404644480556114483272231585172551726659089306202740103219395675444644707653692931240869244307487109142745704526442409427555475825928706948050571535628091364897216202461592934728166394767823704795806752824262442771930273053672328962923834921904110919237886438475055715568047982591174208794038712877406659741253367325723820117654798910557062702805715436442124951120412758075107701115028123206817634322171531117228003919077644494960641714769048792457598982690415050224952966673064752463791736758458893413584529901733653616771796129019625156921134265285629906885596099500176388336191152257842176072732526039403470091035384128998350080715224046368972782114832837334439085908960122582552774992597108186718706128710160173669266701770681451655312205343752605794333394470700070831216558339419066220555792583950989549150232365655732541522380850890558300584994203132277405127364587558277649348532855188891978182256738234643582294941886790948498064592678914394387811632071020807247698984410852280974258107798875991910083851077810265873908904845754110193572234605653864744934613042335881814221988393343059524452902753091888374749679664092046707251866705369433205449408316197088105943435437359253223250234460097529609741397922156018042463617666830109794046796564783061185458005869702539545257435007500617382789596536963409547403370339252743258844669356322301028251121394679485518261514981237914915945986576286726466184529880959245196887607819627189393933854100374201259313627522622771330850032718254690952059497058800366152677959018935093734967692463746180259854795567184447370959909258787274925940923059063448462377352185288822700903804586015109762780361890986765799499618166735207637594866078227010726266435347404549384691424672125232903355844508707937574597454402417619639729302306225944682946854550313241450610549473052559987327747423538326544241749510325132207296922453261504808710791928553621790973327529924284322857277964480149108549737123004079417997479970124188284568646901251603456011693422804672566723256337397764240159816011248705310880704142493736288808750424606596226814420319105388110162549619440350386930568689843619567056014339531842249053886089205341237720474951996509921056562757021194519139665933198519788642089290722345159044605540794441158560735427464332585925849227730966368265591158565610169514228016118880982345257660544933799472348167848051917402053510628903375008277590263235782627924621785343718935115791637920813557498379684301881283705407018416381621911893553970749761537502342200687900039743912751942257202431853659560255149330478816649453929177695170007791095139394530169537437230786115080750147411320140193192326587189841917863019617493541311427619552768016817915071086440576054044302417200773765557559441783387499812926078606647114805049052002796510601598579167414224602038502460308191766083116529085463387840610857883896652998057197938834774796693341227821884730140738428936415587725924408928264973783640419807982470293575515216267590676226473915102119521214650285760946523386080248552040491795210483525577490061888370847735603916475012258267962779439100767512779466819991174348767162540678358968251995629149367263991507103244486297133807698637321757647334676749307282161516661731125728977981627436226093323790654306482600686010761097362988730240156500289287404577236893384146753158074428259289027229432988906888090110679539683212827007565879964743475179557957012698927329757993053442302410343798374125471062016707541735585297517201963230610247213240415840583667039830143435859488659146775585132071242532918852938503362989680848218913742651210453852007850481222627499235684763706460624567989754549386946774687485840386794607506062641960964017221760352121954754466000197555168346928038097026850101777968227385125470751794250007552880155281662830412572977763337135788593406445713794718281551450588279908202733255415904189728233325432932750495161620545826403593074289882890414716477618712031037222306061153038684779241065435662514285691805772994537413265316248854502354337260642337092175392459964962024956419218968320081966898155271523712582642837981113781311261665243721633249189295644800928059535641890732279068358000380146254576385517672752984222236413266370027505082890125996701578342310732075081768525296378396747163749867775326639367447460668423073821948761156235272605001127387181699818456584044535084988353402565743538707230899889485870617349432047449745209543323524850274556669981474259177586971373593672360086998738711749699115385204788202804542697217347123103674707651486204204918576771047709616139132125688831590372008216990643629287265520381584335112866999872903682979237142569355985963006800499361564241162043321248338354275008596106845189255895956017574035927638347109732353214016697303636072583132554936625133896287495170653934878880745400705364983049799722369132752383980954145008893154858030364068755529096504557660012817141598481506212005979659327164056439706085751683820192026022710301092921562144260102252514795253641558862911668250233408268829134240104534394616154640572322250143517394569434500741581992774201656865133810641865368717910593523167252699058455853976872675083058203147904168826789494174854654451595527281396204445117724178701782297597206749463490029180799045281300622708187082473213333841284137939449845246379844287892865260724562732703609818615342971649494873294266018010381677281394551618299726462885354025845700779292399436219505354827064748873472173818024222930244990312610914975919755371468804666849642992477668748226402947436674415471106684973430905832843511913119140256122351901553544570551408104825988448466269908169755089683485831783173780966790665434778203243540786611396818502353688258159740027830642555195031117085381172084351056744301273853932254691614603728728066385005602896629380333660218664295164648387253936859938365929510266736261790974527969391323493354496025277678994498930392150936957443564125652296021943776850437603710841111380806396893498152940110228171214961349930778210880623316351707150048361430399253096390503958064623277565688254198328462751700226046295372001292956608343714047560985394881369531477823452514364472520540690980544439088879295862137890367703166309799260543693670092576956734694307982968266639560916479354843036336022918003191451148423432101681414228374050323048158250380332088968495153729423142528409290435844557596680771225630905842734099219130354583191360541610676718688987995887147942722172716033952142822980543221366350359318922479818832099161649254355525810909412545643212911662855077587151980506984022321393141061272034745926664909750897713889576296355635655470268763476915643107371521641743827977542279559907225601636907023883463577395644519255627275759029570832605529546747042185816564194877395120298114547991426400719129082736134585285803574326533958412576121773845190263836878438654654735478948133555936826991994372616836030741249695645668569226637044270395334958627651995108844801248545169116657919980705231095782032741606638749905120737419596234692427501427596956438844056096367487677533845170060577933184650918910233177402930442331176874720261802779897053397425996406648987575532678621577337385808311865783304148522339294554440453248059203479621990406861754796536899114413626779344657167330949934014964141749732211358003138625193918594970582469515111543217614492100313445335436043026175850668197615066779775590530983418287501280455709697770945187973549270936152189677743096025654500749805252189756673269117486007832103542847566962234628469812363885255727853389497955226118144723161206057989602008288182389948363416925253380688595082671932723482104391086112313566018888001681732800450360823576667612643415821930786738222440458517194981883824588222323375101815678879877895964550214394260965903812673092568241797545380784189071598599885454223862618381220234413304852538021667943525067076859045981355598770157324829291409183005940575346052153329905848128002933641845350718687491524625571084311910822460310480569154644814685331509612855805044614195651503843550237807305223299859633468563702260144360620805227334489237412764576992139004507347580384156206307218067760350714286177144267668275590864797860466728864714587063912678459128173927007187656146616834832869862785844721220975863724845340636191702304884817281669292973357901812493284425403564693863464645869772124824657646328445788645000959862691277857218879536294827367428743313027256583228950028509149203177695264147717974699303477959416770553167139908541011813622183970423211326293570500273207004663122493580893135649869798978980470883763379969739938751565557406673288390073833499161798461009540016476730033090089409273539216843079343668024786116253431459818036748364378434287945230478896235140581302558746020139117004595245827652279563600689511698642735321855457263998249235143432077804688974544312814391976376019988149147895792363188224570558636819638020752080749884811794255750808424529883304137070366730886365386246419874096677664663698858378202792538311418722175399159015410346334336842437365531045635021580250243274536488674694383585568968049480821841195407524871308463979418425006378028209584747055648239755007088646213385220037947662601462293389937409462306373321367763310148771748881354103144695195781916380088548872051466394071318638557501931012476910231176200712725186454968598036159925177283258869136742049557684007878351164208095215980194485166383793083611916034828856924388882200671312421666010836162512118044647858414354571380689188647628182686871081829749840280444809534332189502909265418529362019325460425375638595447054305177556671488636830509976247990729550248083442101466718970975269891385705801961835661368505786580336092655307927044606498972915234378447887536372238002202163414314999255924094677529656873721864979817633530787022956734605467284664540723317584569209170104258264976713018166261505284757947823857239707805135557999279115512629563791624498943052451654780404432992242316952966627346567353296553766870629040981926503553774550085559619958312230891142959494887730198189476186612781696622956965718016533371510467013220826220248266000695277434512068627078150629411472724382768200347816259125685046208376847673119021333709039040980370082821718151235111135237340476699559430375597246772065191143357885559817987633158914291221660676613478046462097985867591173542228592840256783406782080584444885000819288339337774091628662886573709167305966078901286049998422700320993399860304350745155107372712930213841796085204086222854731603824669710582466939131536558958895674287159895609591654794290508444778497641738409331031515183238407369666052970409172145991451775937399996987924328305934738168312356757180127634162592952507875081568606728325334357230975624925134749951822227042506067661351996915054041089403491733023660768708656398246257221365322229003296501047162610530628483938461235345017657267963829693615082577346394204901822612793065592840465260679795703677440828689576768257116347850995932689536083539181459663214721584772357077973511876340984745669694442395022312837807583048442472140505127515404419956272664417259786306520250018246669477793820603220437257627783225245061513431080707636407313597304981165528191078060079850697730603239534076726121306194359716028522867171546016123010118044348479460721920842748953298228823186719042422140751951105914725869652090109466824743119194021455491718218000862102597548848424755952236724888764901095375895712605859589303339598866360528151287540990825687757215707210965335855431628143409742908540386910003172796521903526385786126396604824010600634783885739258190099859075657349897317372385623324623505686951363604635149509240335006185165913738361257335396396849754095789201651272253437866593215969943622539318683873557520227553224268697371015903702178687862190354029017476815872817416589883188898627242785587273921103338307431701116184620061340317864710385225249558872718561861663867402764600032784738486584065136177090214120926747187152009395505640652519376835841877767669846346867205281565718891998406891160606903994400424258588002382388066714541137411439659952452522252481846774442311406131664567152389139001353206768054241682742672398640953640817759545841845384797526355464460699306475950098098479823453520787055610598829095464239776471479138500181183729951435612056173100994496425552175075486821078380903611998152904213360738352881092825716501890874304008596283494328987713992536974319479514397643926120341748620108952960545644885123414950888562433259750361931749201031411719113466942071178997049636184646469150061312554309519996303583585956404227025549693928193487378635707220760076743710673382092279579028010722121217242349106591584151014192289065294934141543295429090373150253970996627162453001206237653919591931319533615126160520245297040222665006632355093247524535580735597500730686326806851458711023405993956600989762606386165681928146349108905112770883139397841940091333714185318019515817659473175822587230726420482658928803641527894891756704927239928424993447765292500278184752631751368101226408222410194967451305866494276372856806099790595812342037765988433171047012017591704541237800670224004020252996268965768639629181579597404649463618784483728023779036780960894728463950939236526786831387998202159726141116761361384230669230838718462798091536219663675592809355377366329383468981027444462398459977907149737596118196863533138003161963210519647264701202576134390159854920263413157810051075393525901809246712458407002848375419345185741010975850750613234944249295753044580000101676598798248441302946513272808416399117420546797080775667122848151067852275499735476706802500753096668901163641924652968329724048064118445149985002367090476998569843872030598360565687275729751494901049606645736910354986418141328869233182744731678224978281875770716292402690978095667966426816871587825911796967284793279691969298465436798855246807573266202450613934757543552827943159397347322529711230685260321722200850717798101770854622263645227549764025369050899671086210913676058104550546208576093048739503364634782370855127837637396166785446578715972140086282021150777690308758739397753593425376270105209609422673973527159266914416991796917824362591340575500032468980068670416185448704909900115247938456334430467611138509494474263441493750887937646929153069624721857612954911019547976638518848145330174859501364310248309582110350103954812095794318154582958535977722959381835331204931478982352144416374779604441486125626074072748391127068129974064631983481063397389325520812590149409939782724130551092014278375764560903223091169914335990234159137998692433638764168360429572958020414305097828848144506262624512162752851606460929460868737720049567150478783172343077343456317129888604012072991637922618976339381198471895737352286446033063959503718240763081927374953150368764225791383422063167506861797972057657619985474928951619929399818301973219737924679823034729359609830000301336339245692509640963331427702310960659745186816261987464121344041505335677700621597064093982641520425798586058606664466325525151099886633724177876487773037331311827696714019272284724574289664488723688323208694026843102875675082476647766405626423033920766196146962787581795939635048295134000077118524319421854810311819101554046837909134268204649423557698925721754773740577760202046255662312395832469872036597693555105284003449005312321670091629996806899103243052734959015207041368645348682417305743742917201396759310253596862270230905067968258405535746529655213890172726321850663560778424013768041998317569391901224328471104492672270735977107468446233546452573357811569906997592768666608055249694505209628614347044169514339585502728523824154642858111468718253774176690777472665714657954562273973977944727201572275913982528213710129722146263693377819388955859473094404860495178689966329372742042529274302201988079318503635451542600640183961884619485679601064460437375083341206877274306477959508951460440805851524519822803774511601115394953616706113616276115453691280084474258201341528224616754701138795397123435721464861202181217219305356450482104898160839091632059917904225507812981683132423909907917061404304925005542950688688650754616910279097161620535314341857285032414673571220070397851272442509829957571915537595829518718243831356078853445733456693793769443108268887814769351407868892088925744905323001462309566991226466923447446283471299942093215279542744550089583206912533415522313454848006069061448264090128613306398229265632502258215570993120246833173453686034077173419204220663779101283796633916977330082639774696857700338145164960425403325115459482757016683271714459197971112107898152950924515925152740318027332657901859662836177792931350567278051334436104018873045907017750606709531092116375791446479309270475391330668179679714614506790123144852081051293521337784824038722384054727198587733740632012592726279253961384090120094691599061979987025440005227394164908607578295957297758687812708680036839764671020889470917079264720659647100728261746592172873967488068723869548898884184618208448640401680948351726017380769754024767089944221437776900283476364315718258546434924223236556690781162533580900963593362832603454305799312203469013372332900671011504905215485151077405045323415146435585260896687907903834738309584615973484852225301434426000761635948200795786664509146634099114828502238355860457521578805297445017352837227451999136737364121585881893822012408903568044544002335673121865805798083001051159827108803071876738245623991144085540491145117842906053659633331824014020962512034279202226688883368846660528553496005502768774587650262110297693587811070738796844721225451805590991552475352522136721800824328305308089876152710497552730356435365550553544711671837138635837473873077050576203527556262517325276818786656918050476450017562775648916042396481046924332659289917018392144450714406169583172727457236189991183128965170015709451759161448239499761850021227872139938244472587983957832444293055041309413748217705120157733808405279124394974495086739229616543699746725476418808544140894797042541762477168180220009290677700666094516418555795486433829991081723911129259579193132030607502799038724598604638170211207057326813626573594018615258230711304988494888519437400239309305635586147733291582266154551388174243470840903947541290025037396717105609615657670691585463635014156261242863161239806527464951580435221250238520436227355108227579413638335603721641799087112250808348528397037833111806898918481774972039870969533667766106070301249631852953664581038126993479398080703884209484723073817336883203434612669110580169789563051853115564790606803324285949179814384384445569032783434782116633220934525158570674450330689097384042110058932045969902890009040381394213046900078752461355993688834098119902241789160839984578791288644443172650232497184989003041283995500446362817074225344013285557064672503001485715470305146890490498353878205455132906830725099828573800771431986149614922122465057650551450574171278035121415878478587778525045769893966462913670338913379916780830830660257112238807802417341391675264036673049153289345885923038098856475983989739697620534578977557298960310156307148134404509887592199327216537399033215946405932875385423370469984720646949939421942367277925379574164721112541131546698304337038782819681671006459522954123541280024768224546786695015544137549067376025871356018516480344723689394585097639591036763666066199315690471069061054678305512379245368250462302683104274174212498779237455489502288064700962063354117012767001176680177607430530726251797562908393108837908957828869224876582085167413616660187098821763602971699645457576277938024799780247203830126733739043273987599447767842286537818421532850605264402039849030521748284539364031049172209772113475603075134343931347610859136447227539313433215324550525822227183414679445994384990580370998077167034367251423066818407192771860258230233634169399547447235287543029673894667638029072934125404689793068122438883380240699256340606495238613764262375971321638196234549824933994170626536251944600021950414196111203456274295835973610613290233717695823730967429510706607807672889463871730654297384039066178317627833259807594258592066115272620865803251217159659791169632879425424846089632076459986151471970366112709515380280515415887822579112536265643547723494987261298020434035114725878870026147630191209548112186270284048791554733420591372610669625016723947617609464542960952141676192369164136654894105575639224652072089219202728526055775508805897860928749043151270382958840626946391979399253757904518731750358445633975456445957291541888225120213525739352393959354571700472421970222421838319125431815401206107985998097155714549959908382009423626425002584733860963115872692471909288408313115771884068204594998348308117044167046476938034387875777916395412004290750317179575293399898633637748894575687144502287843024680375140415350285431198758893394572552410298297364467059783111658378862220515716751810056113831745873045558261280876396103536245898316526447550951206734059326799989188553919272788420301467059384854358906963132619060007712854607896463871920015974219386211859615652291940333882933323448609656688140813208973771879750082656347433761482302404144005794490077249084388723528756719357315882308282141085643376972500422895525443526997011503198790800598204939816768101982308602610726887060339789921940551518020352826607175880727630247671665332820756635669448989498064120907937046926758121805539539431258614516365624375116291399342213440201363586095468768918432312248122656534417374893584239390922738650276428369076157265047234968760037693578293977515013442465807258291316155864092402691749142997257239555270807603663427937732684946750076475938336583328919759929365986097013588267806759746244299789524036685302220288163383254113186226885942739807772140854233688358549734785162806824939638400556599291591638146029177064555293508176608055141289392777167222105749165146141568062927676389665880497439495688706844003215180113793365977554264617526235527845012474292747610298102944233190876050388105855708509703236922306865677889813237892076277398326294419181616327394072573310195188407838987006313018781843479409286011456793638175322452313144892162767645355471914085217076604795959146415100021858217565218410070141224089954584724947629923551960002468456006004846514500922265715518789995462308911883489116010637886999017254734814930479019674427830038109325153624271342614745075221535969762946331464013050568921742924379364590895787509845891964286597938033619870707737739877938848334476262507072980303458861063099819845707267095364533799384553921982184573258977120681448712740080869247345914043226397810258091939515338870755510219125704882484452635234190673720281585917458539335875076635331317633599053143033117430689216706652559863883065297775935138465071011235470680476510003098192683151494112910081727068059517012552901507292548437546513629620890189869118223456843230895094653427006261902684301650498394129707950741720362998183396487057346824698268331491137347580929061504011581240295091493897340780935364258179790809170120648100191548453413564421556255177854497046550231483666267680792054212882480611588438052369088601293295744839120904864016385987236685901236527691844574303323385852769691177107570033301322427078529712012223505307819407757295728101435202359205495244187013074504928183625495080397919888436527007696557080772297487782399983109902711072451169546113564876451786365023728635392239428570135190545709739184984890238808446602443254017217809483482230616917051133281521521447534128186902231595471335234970290839302791606110514785783770577247900277107785422444824194144909358407982061228321503488575178979243204554921179360792781539518866808515291583620923430977262929183341737793192158867752460083390329744660236559609479571267731062043499167527317612767639395634668502772088504863645373906091754242794740561315613669394685058539227970901178824857169695559938915621552404562687142473345505323756115893901240082289049614252652314726507517059256189692443823575395840204944823605264431057891993708144772809944073248506240846324633410949948217976018245500307627974596414162364112254705930471650415738088675295560150202085478396826325402553226900083806413576039642243002409506184928608807338021322224800873807276418052544331100377950385742414631750107348010060893821764009768597668343761552421887980817174098641998205431356804315006468047988583107041530731866935330159084912877539636632936965107388003761872721417671926659356394582246892459441097747199121852924690107232749103093169614271124350528970419240722741632595654509704301207658271917003268276412070553607548886438182766716330574359782214176216150247878930384200147706393794239419139825002477542903227134663831516159902747747687146985576575544888168186958556043442373123738411438961600552556090251108194150277981370492451671120481235106191524517820367965459583028524815449846706227523594234590651394818059479529609213996956971168814270129125667438150649045523854109689337943021676026112563038941753548637596550873584541734756546589906155246955373521017968999051960958310807541290369899662049161789515329516193377086963143859170210852368278922529549019318686832215268139167954274113176784384390952108867447471655544991682375816486890924819121889110304935503801159063991415094528909732112048513902949379601591668823780990010857075845158806003600577544797640224076925656209818471551279257915651837765359450335073235608095958156168701046203474865734229511037659714842792289139902430211955781603920178086041595616627196577611586566392830655211442659923201992337173659069664656777267885160141621750552765351881607331459927855368991484306447413736823550220614372516275620842199165126252933105630674924596645508615873508001989276165464702009932652724055398064082406227760245575758650792435591204860068384148022885114617657209293655957172699603379128309914776980070621535414349135836144705788266259276537612418753602345866714574648902763632642822404941453157307227613811537927384163733655478398683292545294822885161043602906459249420838503110133939370036591618727817456891825392031831159075661192896406718780239466261714555488571928995572960031757085838850420709179927619659593969322819529959811572538336677495868124281287247383088432265733846146380673123129776674600822536632453179066454824133792723089420827926237302889830027522734154396061346478426387024161618125275175505548121183242095611458036336434684529476230783717345647567246487688234277055450268704545688439996213287111261670438272713976779618393329490370176423343845346531315738576722710633667529953147544196338349954597841398372979383036497025506512420329547929284811920376589734378824354653772494503265510109168149353292718558160500008109188207180091884185621372366168471132945587466493678014526982182346082115381720593790835513003032459666373721176906709170827431415434133356377776383331576845807950553949773712800754798507813206613116915944411223958843600338880934539389403442528462136439338731429003453775356932143779175925970559624197444699057659721609097600450544927347855314108795755231273023266556844101396772916267166808387279736296879982739552068825556447330826400942993268118427481778294539028324863573618718982239116097122268148490351844131645191388320631119384299211950540672682691199876099287303011972475851403482105151851589943639099670155533794257445333810267988822911013428350639730014681227629574184684878063950061868408827153851395605319914761531336259013887824949919861102765717926855729216732190573460700437719577901424291994485629035843195459261720756560469230602300839892470370785797186756269865389779007125530567278663204541407666822842267777742627152593810453630687822837029483470677141082875807557328081237990844417802214464012037826178362946799578849687277743961413617708723874695899929232117939924849081911012692816188895756193941806286768594681323753737021999965747545510156624637154222685905079398550421589683107211980220710710462076714626990934864221579496900932326408684038397114105805456508078913535768609053564368952730422967496054789869030116468438455069445443536188923457800424454161348650446194405925941926097281905620733994552067723173397879658992020392221512904581745011692149624859030553476824032556458125460488490822563367660737817154634038193391839152059246781071748698940972814762153281000826507238039979625864275677990726722195807955548444872627199477825356444813023141930871176202678125562320420010300313217671271760516774850532343705479656503416331038911562595865103506765716458577958590064611369307148900285632201297971420088207613988681369715473114854370030393863997926395567080741925417204361198169675304389294378752293742891112869754203068728894257531067337509798952193961394845641407561376222944465478964073502819064575360878495764242508010610878719217089703545236127107981052393363908009554337276399051096159459993077277408610181509086296167118818694331386345391968375553415030764892314640867962471372475125074523964328994839421023365546762774715849103596211937703885714465031347806740783419462737055329960413735601059027223362667585286329057830355954232588529526098915329104066300811560833294912621390292247262807488811158767506925994321573461390361581515969916771623779704543024492860977907948342195944008506906859788697218892896098685130601394340453923501893862105948071131061107904617959248458559811041885188863412547978449924288474988762183060300423449129419966407195282353746589796532760568303824278798457221333602869364496782211121933185704005651934350333408228029362400138379443871022280908494161775133013158517991761850344938544015117928284886713622192142878424123642235303594909773240608432436327754247243976678923838203146001540498977511796002666839698615170933512764761621237830480341130360497026692136285618620051255569472262345933755145957459846492595204587231782199848992931390910734259268233292686161315712466693322733627203225294761879743329872825102103803164520138734588616332831070645524137900106848025951932611264393122681023822312918433389962738931850359944586871727574992279560894852189559023295204506521792685043264540422386116390146190768038893787013751759046495984618175396193017020118695205268320043759546587581688321933834259037302409713730036784953456202925986817689227441308417146800149250316332663085731486418061586961480949243585569615550726532381067200032274430709480492171881659983568849318655218216136041727340597575971508816436789650721086969517875626577727250021599207894613005932410636662936074210632796820706884692463602697213336096634933263032526408487975640082579397737856692608185798762408335663259994232343414840150578879678160057842411195232480413114759494102072586905605665408380735929824582963197808509197416852913459300340458862873978144054150179465871000218770744032777631496742188961588726488837497580110636125265306249817693981340749371578953600550415689122465637679325897849641470835607461158850694939948667285156608589369898080930763890978594658642376677786956869422883623971018273512297366461667393598888595230128864108573490134276200941071512946848603628792377419581838499511306853011089419861118028502572014302157385721683638315890753677963468946218204137118009226549098987493465459789818907550484603139308044499258309391078444044642271063841709243752090936371911120522842627877844321262363472803196071880287147804629055065697139986180743673015460065955754017304239731111936515067309796078134517343476623601590006272167717401939323555088914193019081149448042085525929027100405476159530577059301843550684273126252072213745775458006069632552859198829772032461239030181744435781098282098903906644958039110213040970513527848061804964968325901171422961964154644132057231682901878200665596675462666070752561491222899924447833158499675159786126511774786415630625677149814919130351317267611262987414099660639065014647775917645691156370274836425618730390724363669782779543319052585203438243215045101864443178295230621717654778322082362742778350161104592819075937717633305865683101798676213106181105207392675343408028107288645441912240341605447057739668425162992219467041997277891970253905923899491082821855865690910436030698115594965150904335170346931623692678952933590368317017666694243938118622623754700757293671475057385104707445673941470813744651400133620086134595572964625155105563574012770493860992102719575252734873075580386709985705693853558726240292467182129178878847469294839177943186085327200440683136160823766806689608172551265890037179640996787111871844848816819392151865513600004519541819111081681028714355323097521904228160959403248037291002209132692630040628394227555493178927865516319501095876179658932809895625542876596948421807002858162246161019293896488308182372417706322162965039047205979832499980679320653929559085402387761123072337500459559218855334445120110835748559167646314015248860167388032077673092670888959292182830098095740506567686748091838927702020104257694847468415009907928908130832596569672543158495060269488834099674763462144573514776656712538813858431795850674412800427121182128107803198371275218343022033450897056164729127309332391144274149527340439982744867807520678797448060246469114435269109937799763320625728241344601241369371778526366506055559463745717804747373669471747838943198824825689054521211931540596955677478449698690490533669524184947943301674494867464202135086336549402139442327074219485313474079717478345532941805311856737680449408821049663805852359077537245776886289392345733332964829214279497342865166487325465025855411838499128844675489043972054106851701754325153702645382154736692320153304249282118916155920221483714011292228367222095997549916177846167219641288057350894163186339656167202386377517482021331360178030982435268591649000151405225518530972150603915696583293972608261255359653295994032427152811162288978434155982789140074145065595508161212136817270408437701337277426037979883699137673812433575780190248218328305506355477403563513137156883222470001819701299268234663442656566688733530081691809933780009999467557479428454662454893736942965612763547915768473607083576522681865335765400854183024516430532310508598284304727955235576734001194683328916529590011051749952942579323529941522052333011691259009910806099017795498753500598700359840488456948329425120346277529696536253544239173869171839008367035181281751702933657413961632630046504771608109486268219145011223281860436290789514819508615719452650944628844567224902221135006444338716951547526065724054707604875700822156511706598168129231437290455708063863490553960731554134261507150523797912732910980061904524189865194715759457145613932339636696102982901211672905262690069754589518155678363397330196321186369216833761230879068676388968461337225841857197016619171519892936298649369370922916526327385794366628095551765449697889929522813034258544955837475696571052179604288007749309512308700230210710643265626115224735141976591612152386698908831723387307041198526408548646349366877530138975011686247289093343277134398922347728411061572591540286414282205190021493877247641467510482482665663918282215878312825255588507881075304676296149307020829001765297634896467657519133946351089957204714415433843851453077431745728594217428663289133232323340729060489904391094963820185915472086495693806377864089768312236543284449436165364494792536656864144938871564335961225437258273764126935197523531803705853023344763001455058838485854906199946441617475189077871994604866484201883777063060335875730526602690784982710768336376409421381171384778627652906531146712198913169904022674362166956988963552272143068129926578139744121983995279457343560092471709633648517217545057301340197061678723980952779315648180357405142296364274202839431546670339057436865102495964591854945554937924836498727248425604439598277988408245881055333461658866653337301188370081992212231380738856068961946411455346166162291618061901060141303128766570448080859650170966019457656386981650228977241292678533121879114682369680747274612619407335169449454060353401862821249939048842701074275672934003024252304111953299342944430433899434971834698161950772991434866328962309925463575702566482463718129847558211303349775587064724186865574103745436172959425663726447714029200018922744699198702498875332200739730681860133737465087401836860953319557539464230330117047071945397168715246971953267083481303397510140762439201594156150561085460918052018234419402541002396944986549159674263818240255236294430604616834519978854063186131189899958668559068524209437707687610745138893527001365105366940082474064294116439139508592744711367470940772364186135021492437269866980268606662541423448515645833876770395579119029670382510516055795734289822179647441803695852847113779867346335109204471183952083524499525141733724514006341766463666242543777413384595238640202066554798439558124207513854565855379411481161952221066769830610643763524661789013119257449398863692433478873407538431437477121849454934585594470073376648525638575114768171644689006183830634420282118206758304870822055470228521036063473119789053212129229468608572782849433249341450878787994522374598043780592436521733797770014787889295080129086941602245644551034061871517473219238445844187511016014537512881138862012390290758288195976976182449722848538203536584643696593386961219369587658807102977876858745296129646746888550155575013919488956266827184357776726421469093212958768791603512795241898441767870443806417626804627166603409765001716871668523664417296489763266794588456529718958654260692217470474750372897865200576543404209086634705194014274086256138324923161414203485672715189529599198691872255673395645197853867910319747104542103077687142505483408024305809834838206556945498212447300807323165041769787164168254940404362451188560251220702751115261100444038369820897702566626105042598494670192789370401004128366711048049936683428969458620761873580687896157098317517274280292822680259247130913063944693424076358770861376989525411995885070824452494508247591791061066574908127488169737214852989440268989444238902234127525064363750910658443231510968451023759093059064979609591036264830594446001719723839142546661812179676704666863182550981752582510104559614037884654485738909718101109624897003600703134929425190312095132874012423541993224005625964027705696904567257109807392352706070285833238670147060408677300833197793831769961524687141274107096115316160997374139962433883446416550797713758064320032220417930795925283836949314855596103247445587672300670646632201873286882927260560678768628469429948634963638977725237102836748375605321671317760361033317730361556031091084439765968708234953616396669095340020507197817244340130305562590570004813161132996204742175193400221802356614420800371392296124453063688311130139244393909528156259218129716695305063366429356505273610658223269964812675469935267607574963463387711682781416050791024864089181037016732181206638626065890157831500229062761930935238062279588872112566257410003861671401625909166555676364052258470230203093421090381531318420083441787307548601973759137674478295352454554037975744616200824134504399866908036339657502111127696120162619467567116291953753186837187101255560458166761659569936464296361451089895536294763332283510161735650475583549102168135538033213007340221000860650340839427477370158074838401723400833856513921698282005813573841164820095100330957852229658082100813354254681015246415709536036667812876786144382488851093979899871932144417985983917590039584985765659743205725931264952777739003433893809275334562513827309864653066372840453106468713716284677766806563467416764875133239463627987427399583296460738652263182232796135967437213658793366475602110142165333183851824733954938599199818383500655196181253558761151332376649742283322624741166778226896712944151213307972268246936275086030783433069303124804712569814316988609506447640102297447381746645370218319900108238919596075181277791407346143043026982588358228333132390593860488196130387859093738954624316938469942099128504530703215948570908025374979154071254019390062503320394319627162436402600228816762386641273356841312425927203132326979738963837967035555472032071464274872556832786166910417397280056123215892680448364641702427134720191032129722661794984240189652459234560167321190846650618670345103946170829963973545810556439032088661745358463848314120506432367288523115294195462905712476619094941877666949484260958030348352543570031652777670544240178546228598017617705533269659282440380142075573335623108334379555495905081958202487244333047737369259142646736448804802547379482637973609654395509867461006343940148956223656374865804415569162773678046690883754573518595205144795447873227688039743388956139044022071840775534487033479128055876991162817540915612035422715121023317295689382879349479161043627402249762103229855257287582526031842854403610274476309683743619795333886076269724812917741925116591170224132181472778935248032301692695542667770051890114250116022319000644059035715271158480408167890661119848585903034406885999638144954598170921391420521195584769869781446468703317399553874240769027430894175301862209223628826170609378084101450833268110071321237668801351519470543869114527386274900699022763210695179890525806810402224275182071916961034694873371733004171144287391275854259553545513086429906338301771535990764109107712850453462691831780295053632526030020114506063732813582213809912897523612647760892752935876232312531410727773976129871029782594420111168261069395720019107228888632926351594952152549958377629978548586020333301823938726231790374124478296285070140149213235064362835194076483441888226025305494229172829081264298874955036302327578338886560726172142626614320467785213509296144337960610426123950512497358627124556501245344046788196433634708665064585285686620798426894356911719377690495201710948255033271953492876318521079857391094282153258325674532690577867610562165894522925585980108565673948455851861088998951629578056045968909622436606030824304532644279212741685693524574742606451923467426800807930769017338808960269391952633789822485332315896212763720476910758376886856348548921969057823833397086272930294070094383321843647098395887542829309101464536504732236538496571084722140137010890534565214467357094076630753057483975502841028974931973524745959566366431499808793604306142006925705579990071581717495902904823146976450906527012412063557314932590135400856690587655338409624269476806212468623674443973506032813910572506681999316700641704828902033908094885356553963541470535583640154361793622990568185885670855974276684104013205837233202931945889667874809821979269590527678321109429919862289785099180006008565651322062529216612983566251867528533299851830169063699050438723752413101361220571035274132347170825474742861494320392867484429644405285044436890323026101282419645494224851524623809338669441102243084469645843093722626690069114391529689176892005990945023506499460361583513605591985226983821611916046021175731032457953455783722445398131246292944797362444470771451865993464270945088110681308605373001424834936726440719886959845938604053689606549484628711889694664708667199374845790223827653647320670331678441919546279113419954750611828561935071731117335911496938207469124138111072103774013350514056727508137701281281956959646523580161648680955132900593289661671778189764332862955015253472011539780547025009220476668741632859281936974934038884907931273847997479755016411643476959097557307767006625684275399626118959002220694468305602279110218736430642704565468986922108561803383037179468270235668268780514060774885130221913805328809790224587159507279138896118167335411312051926286414579700166814774889321607398248324050368226057802263550786219876317397234949763761054749435248955915070310115010587936374375630194019169479936284757123144842467369324047293639420204268235993540184591660964927014953993148481854357272671528167497715784316208726264996194244604295638820200146100163033202628049805209016449478436316236395556006509913395656556003360243175164706590056193441596896962175304299529422048078053910643834449799803041584255579390414765262301230520969461628949920897781194677288385889763954038538149606959498343946241032052616510261339198664400709983987762673507475459687732939907845641617480348029014534633097910583582851028236635485275200449995255276114604926135444017543547499637991230728615127138121079352856389086733696427463243902436066475462635079422336072309815877798907878553814433788869723710897575753331214110291437812293654454918492351680794216500536661229190901254994956222324258951134798107367230038459241331691989342783827415064317849848306560482512069846167041393311943498438922391924106953700111905052707291068232487018942543116734914766572833356171784848702491485845820753196597652821571815830805019437019691029055367490853601898005273442666690475492781529260520153219662914819671077442954024380947166129040454597161787995536303595727637886685299686076512087918016496768065475201649296008037340540199285083946398962915988215742330569887332910247548064759937125198079757267657560606111524294696035775220445642958626171847094425334019904322593445547781570168110913009399216179424013511530219214156997224767793723479979620554275989937679373006548721223085994118539900375481296407927009595343736916112633340359966883480792994372256075937961962282652799224298726808764053867977515110430665443436627306766528223016940862599525980723578297394663236284487462861932661271524789731112548554339652348643243753032885100014768748226013786803606118440247203162063769273960020339730754784462487379583138040520634098756198665051560920882734305070877704912158275053130641328475791800402746065079164177809631250173449140535902926692561696261600328317067124875701507969427812653387904128635895002138074652226755230306053145952227541887377204772014766659755125370355272931637133261173131799453964050113431536134055775207864818849649025846447143152564576884270673280787418853344617126007990845234196744364826860266150304805862064387307831375709100224979108676278381894095593781763446895434439397250816455908335505112610582543022667903509960305408322203848829491911042023445684197163202988598836224794475319186380615349349114987966199824093639305965813770116210861475951030318588883522309682397143745107680224085290748704403740997015626508748107837700802906560090107262070146406201777821007434023647514452374298659833096805748463236619486390180377387813901153973545701725250241599797746236051139315232274857388874242158252069013469007830223381009635415501486873605207923466203438222725111648682909407077900522651744675705266895724665855877661026710881476498774951148472651200896493922298436889500281258128361859657566323895447060158356534260694773519867475204643583662692646535307298733378255133816467149569657529147581430743748162592181916644899499045084075122573079501362473649799705103247652002982365526402117946216009068841265273862991793680240701055576557849867871426248914243325756163597709032467425832790133413057411213941312186345590127480204615406575335500070450841395853068425228332083757295420588434768289514697129774023588517940699572582392004197755603123096259494383354662107307598488568678143778182420581668307852647397528658886930197352485753553178554711280223194056023921730066390768781608896971753371676277646404096139900131168185491962865277250927006267701523705868086437964500422080061109664601230467574512915666109928146387981069890729784452669019176502857283788312647708086163595520059326354465367057032694843452783776271283738824180226717401596698422770974847129418797703418675581658408813796730763672469255179576667956184400267459637603201415321875355265379271095544229983793589128215187771288185680511902637541021287540319128354412847362803796635930870085409947991497184982319398268527589847472041158973364132728977940941964167880923192793774872269121238095017635719151101231444026266527847646758353763810294806528323658830592178912314296903630365178984415244364095798811274816298490675148386643365652941252009516862776054445650248944185166965985156319405103927857815390169638544685153590748839744220374449207135347578497707072550076971682578577319871321957329134624317300636864941438305568192921072323474599274009807018656967241107204131476992679746527255059476793557769061374878579515933279919312926246766258171982028285468665901258306432894566006761888879946108172030752945152639836614407507141630374458720824357663083398435397309601823854136779402215536017301519905743501362837885802068065982928264295219563603637841072146108198935798437256811931126831429701776928145100125098688499716808322691431221349242561849973928545916261816101493106471792684080789904774828205310420273137005665882391284587626565774465664510661359902884783241249602127627325025285206536487626913460793579931235685959456802665673766177537254623081642681609800549610242188923630168681791960022512439042682677724458803688637337405522333428613514329937221727362343069019895901982606805462226132988297424811376287368461536620054558174869961221293813476248291576879866969125811201895138917918815924323177936543447943807064839295801427818162129216329923180953935194040902793786806075811883396464987855985660881878458152970596621900135806959492106673903933380481906214777432948849707644514005193856806752938803505644696018627620732814016067529026196205155665340336926378988450429387728591984508751537874468119885041853752967259267657981379864867955931486243622450184968741891193912399666259498967409082350978023907464708139234855802854486996176207522366570892202704922165175495174452573522008070911902264110487531151487128873475629640037569770724950829017993525469053014915205997555713164265525615050457725052044697153398877985337821338983989215146901705210302425769231146886426164293351038920040180262833103194800883045596887696178347486511954696634033625407903655787173736985678209692132918803390827870318273938635544220265153041231183498739620880762539356636747219097897254152873716880648834506287272771350218943550720440245719912861405367739408361298152360700931565694790079940792869673378825997349730971572406312754070372869696512966627256787853317338396440115337150416376434973193248762947724251475771806891431344383267001332470296838957462093281134927535510674368143475629389755646604254913596190248864622123897364685512078670129641520922642959141294363382575899872430679644900896003139609909229107982624649867210682623422310500918043214200506352217659135228984131771918231445434081058803953993069023482191053596377404218859312032802226704480020117599954219645849132644837966554146128601600587025072117852768108700473905238482483729444684709259425976365623770823212101229655661578065888938459582643657833894433439335191674473169762964309335021004259705575595457739640451693113712298078632613072750404675266746687518400068190032864199782860370436064603508767544781715609591384678643082846076644653185227200964585094745060812588623934920186666839757802883265134125261590600150325034533331069370924512969964656825391446992490579320549349624473319213414088993092014158242059085403505398573143342309797646294292994362808591966124033148297985170197761443712754626720053619767281835701523797195238298792055640795870177946617115507255139208696689581224608356707679125660766947268033391822438440029430015567509697958595480382021667893179483861265069612332847622782026707134897394515630223039827100381924033992215540428613135664024945266016414764291795367387262431754174773433276686811467425793368510315322683897968959190416769327917668020264060478613757987923247100135378958999741716328327357220484682811423819967956023684845951744606538456755016246768278522273721695010297585245343749901288168684622562912660218945351650917724341931902005409048540745074777355702159263980216341161531542321643070964215889367149862235464273017278192681069199219679027720919988801663889864832099489440683898282190479696808192597277535396144973933964563189622833529382709184238702107223578554687500845393345592148674260451367833333443604183456864017729068959927734714861766637389660943762635701882895508034632379561220676892368050183815497309150139849724015637211832248445181345415116872042652461638801401979757448259523894583391502796659455708108459006042868256202254370268445704101708510850195685247717523155074925347190022462281655467806116303556405307862432606063765157288682069208962405037141252575833190217495248549618422522453601675069606849199054231344842994087954204700855813478520641188196070949078978023375402800566385908302287327879652732885779980434914660288348457563588529954982270865623090871844624978385151362650297872617273169466763816147468596673855565240087954139603952483049608037053612744092538333565766218134794631275965203310630704922389090753792992193686574149450007320548051557242458221450119269375080012986041833068157603579296870532580923475882221933718278600923274991983568190787518362554239380170082018801723976737206171568733277984063708779077935138109152057440367035571768919667867084226164211991513953764823751292020959832291083770279450800447487337129678601133106090332431355603281511299461604380666575885793899987074199809885677793452847129011191476116069822960184266193303278213654052790282789619484306195882182139587366338570974116661162190935756375522720673599781559696617625625826776841504365933187707425330139023574551488060472455209823359380319059666063393569151837102677927089449683338453539272198967343343720676826576319961059219350506846072955378277560317720740353489096509277440016640397093124313692783022767695780556406060556737270635608544590323126358321042616920753769968849331840524982997304749752618745758620000482872528873406737504276727238843040430404992257686548039904619447299252801233912979270593096113140029698081382299855397817526277322307182619858092295842050403007456442463717778792306146320979821924666959474571349030405601763870026515798784861854355859842462155650047194362144034316592323845126364796495778412942973547153534515983209518664886194011972893457207305533170657776258936625899642842221754431065823016309956407704064940187520466150946631270869838902808643296685021433844314014342488203212436878969596272251174772244599513454734486553348907328638589514167871530758083809133365748576659132053843244626243428493201268330287183121380764511650890656748341455784593765279359515032286993903994314052603789609188330691645632553520669049424560181986502879772767175731115981541160567109644459135721448116861378852887665261417179846646222610589176912411860052469762457223245948151615549958910206486144610487462035134774839706051249682086308045529999693614050709156146244780405280005828986641203633360712232789834382711980401180793163184555908204878941432737957127698852252092528399344101375625669493674251341185614359848035901303622451094636801471459748130795239039729043617288602243136476337096226145544564537228859204701471266010875539805316872896637376213917379304499866922450811908459305483479841143402738353446971558506730098660657712285081047292028178858312737534206501399430526095921923358247846974721427954927019203959561937922258503686217592173229327448232979700080850700767716414415559600780949302280181838858682603036797228720431436419528709092433756452076781894003178844302232389248915530859796189394514131160897962968525537405130302340290237431649328288023995690990335959012201113998600072475199979825286420097367964820118239189837943571147778291075904464480502868582489028280628235627668804644887291416909654174472714658563595912102986265530473491585849037242779770966590943645010642286777918699181524599898127855770844091899931186310784100001471680715374415145634152501199672427589084178947008145334282337608630962814834752558123781843054645852453372788012590552852985524917654179463189549580925584996412410859611262950201722205039796416528370465816355708778631460136603779525817622317250492684025679084808081234732802630332529959499122025576464935471351546273361582727582894267298760263970807896504082334851703239633282967901325215809948823702518119080504215099146772466911940261247587624986250546594112848680278604658229982020759425473748590461636249151131591316319215342492485864523769754053862402270941587513624612976477973983877518081378944333293304215264764436871088798942594968883214055585989467731718682562301810122626727982548838001097962159865575134798082858613121195521086221551801874004658799062437707797689738959064632635309363049236751524837922962830215691307125312553835340036435703086991680080970142354886480059137159643587663660319237025705824142169701029947650679620420609880981774862828968309191549929001274889373626406138448494989810695635056014681125581993582104376481127993967352563102000039949074805801750414845677766893772760205329685736119869312523720384173493381010658631777010082895224764265531500015140640520518550821536792597963113940675845494574319894126323393426334314470250580894042273830731643203272528606568713252219546274181094370809985477733102776592523949637568233716130721791978967569884809122352390889093113509864368034120111045406159662054488214096641096795881833926519198758737640014723499592875615853742144109418103418025868875091880567381006434373427908015857700351869562572228901271813511255919635973969697908027263085149671873300389563774934315791567289604652274224883203750076233150139062483239664828591362031861217170759704048273087587967911646946899838202925738756296525060434865553307023513274203137415184485229735019425935232273803106277916224685508336807414874611464153079865707652572670427439173073182197857058656378992932190229978553965932236893277408803862695964739676617858917769802881155592872168671248621598285634450886240030024891925843167858219444076791563471043185959396534085980005258448633100901655366958028171063769761739066505979481805580910489024454162828029665564385359368866638704036124655758073335497093555841811864754540646736552545352649296346852610623614844151932836317523591836392779945459872628934552971800469696321502146711401334097346606274408562805727469378393314500625959231057046678740845004056032153774353346632346628455594458164182662063856942130970670136102070130660972116165724769678019129803979517192179133711080723962402165841502792734590845984244992750007526022173898465226146253735199975350789110079243047064629931421802596502381186222390393146884360305044981355576759072894346621342003218212917861662781449528311388610566927680295221339025424415549111958745964363853361134748619641213556759220087452531741567304730009195388741307614413204814529104303782373359518060316678996728652282721147328254487364518517366165650450907513160754984110846068760335272121257246308970053569522998973502803727962300204564697560644670387787564012304893753635829665147279739422240278524441162940836710533419174385574569177001641837158617766529356739901302952655672979206400888241199505213795460112873699675295861286058806141876224018316074534802119155965444702760861793868351157638743137995751658188432095765151786578084489744691963321668780421781064545444152917708930466639014206857201700695786104188685281119366176698805177410548884475178182470166000215211074126622684311108893844243582220367045102561088888500323432952394619004075127364259590315942460581411308450144448124886975447384920365214304881376564715213123178909429234270043832392473432990245897802327779801655832936690396829336136083999349143642981105041328305042582741248246414727635250428169655293566674832268563951699339474623565920891744501592587605607697194692323499115382496092267412216559408546876046821061812530677890371853259203863541021729352061017822199140883129525310810607718161889855890511383676324074567823692368000512650029817342546935535175281674643164992423930286751124266042468329971662111661098680477915529871340321697653855458250449340944437777711150336585044119697043515035116551133183988727986604801555112687439336803876249344711740426644935769785980081569095793517398490500345555781233673292857684631249640463675755765971534669194526547594407459312722280720345955682515278781030838605500697364227702108961169070716200828880127354309521100406220411332631015974813415173208660936737745371097866345362495970642730777433873772034384358910341663859412038291511766647696805647174663388461311417867117651065502775216544891240179115436102214957527348776207365210965472024884694409155021041961589354675022123969522577523657473621316550350223508236196101322587186864660125164600691980375537484957373776581470565888274329505824901210110067776851274028089786573017581208566656334487814732557140539934912487247807236820245843769157266758025091699311882744354687916937014407573294080637064377381339737661370414883086220818562414759118342387029123413069867978918587921227440622174130338710654153367923440132173687044491015161787003150590826001008747561172599970314712260393828354674081343164052651214751536945501655697177563705649020781350875961485917870175674178571697676513411526098346519792043113995872957573105681485600015116020752878911455639327458880199845349480381837083265120020124972544829167338312042002572353674109536349675981416663824761057448392683037899674616619827146494990396226238074083531503689838939305470862493732212444125274897927448338204466979764228179983164968964312910003348474909217288484418237244985870356021678076863968453889852458080078643619833559134371357306061190606401445787026936059892550018265058881212543948195191258584852421166134585695364794987861078653609842217299695156142441796768964030281921270095014400385832268090737833771407169129746266711248973799908526188722786768790572838975339804540411196075664639001487981108817081867315429002150811447947494285130613565482306712961745454954589688936634817994729451373715895290049585852779563731941718713285824899226773773035673931806810267070265313282327415138060817902085490123228316004013011290594823942475574783688912735666980125183607680486638196415479184633316722061260579320666197749308314279389046965364716852730399889990103665369647255997949013283780596760206041873133947070636087444855735347872686809718618383611830886023752750811309221518145608730470613053244547405956195414569556659256901888176513908663577469488263816629191572130854773573129612596353303839658658283571074603044740588459910788229443829862877783135994633122891209567912781811530449119411397873052771221241081305323508094841627024036195464200210143589642272160960677449666587645432597633316975266697213636081073410526713043161409076947458702041618709373122025547529247780040830813622815309840062015227030713714664684676446023981371191226291240582029887572082493361983598610941174217936759494021528079316242182722313136210126782695607549260483395099173162721962929410572255203480495577430721932488023083240527416881914067431134791545399594547729243943405832877658941144001024226965964605897329390511132576875229477552201220383285060035989008052513788925637472561570177311240880914391706206298230057747022318441312965670172529071150020971528649211877819511005662823897379157586727342223545371132703223373652089807950067799547359577559351289399953799904724354656918258249400607058196034102390729659727703552934204993354623498913997869153999956896382961265491421554136909155569921563688568155772138944166474874665028797660768251262359839754838546221484791054761795000839378888478960562540462590026607428889781692279108281380850987413012115943130664539115948230790753062021691420267877029313407080960220361848307248971700402446165470126659907708167233472675115070222310746370636692803196869224072138925410328073123563788086591638226429752811963821431331358323372802156439520036988527167604358912273253444838491406287744389876872494895220563579685451048868284964871968998387845653023619455841407480486202516495156651963543584910614406951583519575896453923157128356596614241239449121630956741409675854400976315135881795222964549850023717752417568256484597544951617333946634143784815328524346371081164778077188438903153025729106701206897419759552621384612595580902198095419516077816069220344818538529567436333255958267631264925670933286321506371601137837179662522654421704903814546830400858943090339221237210313629925811691189852583369111558079237648242110605457411442406765236026478671186124623201115398332801256981378214382510942359681386077472567791757881181095519491094110525962369072370312307689995532835003455440942993147507394102869396368308714483279232087561919318819955456189786608965539556593393667120552411078041119213535580124486755268158766297791560476395749356685764687261656177774707834047430743891236117488632007023550510519270798014054520850026699606690163105267719823325664263628536832010965519360955808933439886861043541867646785543250407898849215908643654843354930448955904393691208849991288771549223093582121900014383713132298636011373416199748465315393219120871786146308394787066730844525496826849529977649953540923018410004796853036288205661628555921384137606898625209865969110840460593139765970168195063575910479182530399317465906605675890235111612087955027186479533485129694770513201208212624207649879918657137260324725121555374905213554327125750538373856440729536065973221544483027820323529800814368612476236819330667874268357741929081622852975387071163155539636485796615287107908345558076757814010415087895739576897527838750183879748878622059743414571644574850136344303941202519204178708358325999441411463395997746020911813820850690224149078351699953028701919310100122276068316957854421248409675837775724167020706645992267990082840341551754223022031233354071285645541085474789967889829531462961567448270441106176766047652861588947296540135261409041151814518795668156067960322277691185433793063880732191189489475549853354166876145276773654758675047678114895592030269579750432907637463534921641717627685366021672495572886901144455735159850075790646260121188149507003754764429218970696493136264370940446468511852171751321462391164786641822294461929180642654592173699601082337099054542126874899118060444271483907777341150860849776167772303720800899089613879707768940097431807420879596490622291244363148569582029608451208426619255697093479495493647250380883166798478950351703785755559308835034109260664564792117581492890058862688714793684198249498424912030608478059814226286475445606611225695778748620839449404854937387136975315170400832126291868211548994742865357028590209272936198521997755970058232947201055636273004182159344004761967220280404589847469279627598971516357632743583643379385662077107375553785416361948522166735522635739735497160313162195004760064159091490420459690474696592196273705498338543215871265861952470602829081400464021077509112554725777723315636693142616771530742808267941140432578229752938675574287476855160982263160397374338536228439873878011218673569668982373126571091234984611397466057297384498618347917639603835061258976635135731811171177569113383852026718182840486108436014264620026938511451361280664439218485600335478762999317414538155088361286998400521718471638231337494884768446740100074207977340275685855745194146227895544687801669270118615276272323385038398389120532029195014461820971233392503762581527426859159965395093810308401030160931617702621545091744533683371770893127654621942281727036946337239902382432970168382164029547201905427206531494201919543850355910866245153275649995082535949585044242440677618323082666389428174196199051039638750216968058293539611009351111793418042309804325456604025523807369512844617738485303876334827547341801851540653572609097169825097764195071607440995813149812982851007343438049190182426657992250661726583843183211205934607735900946796615778186736951379412148175664881133156025878309658152493018021776667406856583716377899013351595120673109898187721178574719501409510870917429113104003544756633264146465986882566912537915026106149338958486031917396425448920949591785786903649437312211309924029336242544724614126254530099811501142769864389479498057330612034024080779196996414663589400202232506916729607392163533200459902325604231765578591683154584752611998901012117002448342286659386545812059441578624588281719759441298013926734212867397846002264373375610813779857992222041021296853032016253073598226348422741415532263301348494788196229376453772431307744015392225766105355403219142722772806907045965020053121919650708972037492696495938099711762488338110498585765818478289983394367783579499393291751602617715574603260135483766849138407360728599546631333984068575209356655926140489207320523641373482856209713389092166844946597368973372658528233396238136361805379203174650502002083195443547722855127729994754812242414246586789103925182120963517976226071777355882455073111774454728152724763494303209352964107605483773289485508168978064186565840497422353432307452278759308955779300461014277724756357494133634721471570725030428169211420778578357415928670685704655717178606910958198388473911096344057951362279862427618373949351020104922166455032715484833358919169296648243294342354317820010698793026598681876102553048651424859743793893043021567087664427646806736638481364867609551008531127104754153953091303759527275323247437022077379336720602872256985568293319427179201013045176426227897492467599736565477010793095205116748931021780829169441329504275415750767983840868202005122766316078988027074359924166108236364031364936553463700722604115998748713960063339582779942891728312822217401322436626864615464173866289495247550210302073830414269120066825531300880379093963974802531348963099205428109446868752917011397824142220696978798756459620844893959994983416953974143802009703993854656719906267871917831869745825588329785621141145163208147586727140269435484017102563658849691081210480261054531601278833812844681599955521909493444814722512881772315013623206364709402253372177745408874942633417553617338376922351961176506759474597910354292129121143169561431396188719883974365908631944715459300999552378474497938735252764154416480775681006319311035780511069417165438686449859338402123805839597207223394739917189473246254873275273532113620039945641312003335809172792231467181385085135130937478520620622259144595674124118511298990452203563813698095887037307212091729761699150591191640842001429143058586922099148328557122267668806810983389865608647478065123839153580935798361161970567674497654167884461853160278197701652470932789313153408991678899735379912038400716150573191962199230770056288344243781669426744238345032199469978578375653537512413656758086350166544882073206124639061242804590217373525786389616420180572387428866847669493390678937711538565446450204013173793932029261521013815662028117707783946428153272664519359467366380121978030238176018740379992527341183187725345886822996573320693914837454074459808206693543911665438201144071089512531312327793025901705924618786878957912044895914584481697858666896670983452394715844552591614462943708464606037690678854740562427729207983716774456115052244456284602316232791783168758586012754485938790196027957628995772029046621511604793812781779392333385875570984721273156996449124214305055158077908820260537757234775350301828735887061278622464646980002580736631270015859058970151538460949664327763261902858790204512595955512862672520192397771395430654186273021777135137055544654962895645894330324201673602118560650935890137158625672254803416250726870939111580322554678133807230557825436826271976129395209111038974438714739113637344487264861589982339252808130071052438980015984370213232389376428784230188086288536109020523581983040241657647043759950881923742587283384015779228567248127999231637712349371579030968629521699046624395815226017272397967296043564613812326992705254104416963195709702449456370452504218580271905381236963263914371384703662040214944634110134361843525092633082281929402073978963831841068454965901356146698424529994487905657249425368412984998117104032707730504305813429074670589754961894796449845866152957500860076509912768992727986986133545675453505267195166283784835921527324391706284947212061894706958383464927720318059917899624744914633668405783833425024516324561524353858810503461888333985587886239077076389585964221088968006078982530169937310894458082310447830942421426765075676365257481284180332417158558341455094603150580827213375948602957086507400858595169832722273907242422333189511697365627270027950836712354368240973864157564665231327150374280907562049711423085481014941182118086850402970358034198428298583552048896085733167190937536110381936007937741360599220540196115991680818369647505399606927612951168495916405197222989734285169324503107462278249039193598678195679807349846286341043757390445138208279412420033515886765640359959191382158934204844665312260653218537405170053661774705251329344397341976669184593137041171662509686194970276635424231302528959580252247223733406476274917042740020510986074797836399795650398875250505191932350386913285335976109249867102397295031196279619375199847610362731570492516259633396866240264627166925694434013265144376281722909573047122263410904551078673568185352047176432227099358481889699464896668338569130244100898261701602106874699760399396565564553094265164942423969355395144681119102769215267453267186501291018838050502433131969646630173741741336096148521984797109131857240178306674058420023535940864602641652191392371969575043278884557121094045479194381825334525624678965983595845345436921497824174336299667039269766245151018894926215711378808647471263264927000176331105115994803754390591725084498404898582740969196001262504644445617066837974098688331263949923914584245231465970802547425850121057571489737536363007814441754147923283424270431975720908705967417139825810682743876229748682012197418249552723245581639470695189479091765238483107273242340062270572859190508530582756833358431599642524942648975479496514770231195009201828080866064007712635006245514722879165478585733026151375895212962546069673515128932484771760385623738889219210075707829859277266693195009440489550375565146905933180752355491298994008122623989942384283102958205780046743652663311858280435412094864637502885202787239071947025992983946996670787236338942512867855315074645860502598789830547433128465478645272188433852533376772406759782829535087514251311105629255426347131569627744704379226849419690170918058474654826907896547601915979128090571708956240920336748311886054199234887345070419717807848305075101428979741645456113987660035432042040870130382288892790704701101368629449246193528394660267091485547890281417418407324222182110439023625206940526181290164929964136768873892719727347983070139408118423768041154855071557568759535547399320955898860498404552305227541887385724341161154092999673748304488279235694583079683576623910499230017115035437256029012846249118589675583045493447896141667514185186961623655481365019662225298296953676063516984394998976597585937781958154706707469557882460971910813030045027825375034694062981822703164483910298846826802834778572827115164775998820412180839870485259038653287051508014308080905008244599411399006136840646031140449590144930617081357363327320135382970707325484688220212933337781993669101616362110290524657382908271405043246550760608603930807105454849540241293767880540548975578562363837302807938030084725182053729550316280534143471674600394439398682282459468537019383508627732525726009752385652412579726639332771518049843062250709849837084768476599966678971627413094210535245474484654928884915167394411405816454699441469267969708589819471196276422436621905423891920654884415102406543338420902467271323723134995251798227021579067366556044590174974607711589484628155278753834311689138710069703341796946288379158773208855166333968404580680670265669860330039714202759272386738508779980911911329391784388760621474483727018237800436317474743357181699515287694018275619149862721771649403963883535471953023788463885023899260320931240738587533154202111719369318078819088678273718899491795390746331728123286072418209859643950160440476272344569162419903734958131474092758014852869924225521513977510173643153169554888441813755535315938744221425261423720064162672857187248871913905039974048758867805421835759880138809978018807846833949750659523073509036947743877780510054868631424875386729633995266131001670101148666048856947560006717163804326149692523719886826653980040786615908264149746621046004298808490095486152679166782078097682707660047128696235890639861281146191646147396401350650496196556040455480640035943364368536657733439994794669519641532211190183809036467172720516103198351029528525427958296107079594315931090499397915044425239538580100196690785900043571793500842654053541804456205726900241828942634553139844406065378165149672489993081817550997833252289762500663172333568681552034539526437033738150365486855331992965147629591965592307025415332358649994433191389425498557776320989040018629881924159543736826985976892932838702265404908268466253066463090465118984749519835269793585257460991483403378305897697126617757976727078039278143296435270051007050926810077867730099142358887797101370583688709463269865088037815064149092911504588495081963438642234910602809983511670835286544870876833647179392834010623051676412723562699822855849704611419652336490935767219289525766821856590022473095922691843760092634214650352675370971687058900675382154698340577840277677212356570036536545545109141625797232011016376244930320835409175201850426724497518761533309669646232750693456628601893098844376139139308959184265647513199597924059124775417678346718108564731420673875499570731243352633962113750285651596299861289103345592449310106168061836590905301256702136134539390261102618705576654148449024136366085530017074069344527003412127509084675929721270804786500554209035478418253797136864376233248417319331427677980729779085635983192420782464991581850898226273442203065007788510115581282287602983444926317139029978715812430979133622903331670682859799335162671138798778115840661887731360253608251876394298784454774472122456410133513469720478513001449922220454828360658451138525679469705729772415921683292440566468707145032228026565724843345345751150570431387573435962925228160492735457643030373907297140479676439528541555958737646166385251278508965596740899786081347571904004488346861058483233114635676249017723490374022229465593333230592718682415759025422516300089644493278588909435868505480141487018918978932979062805748673061301773658427805670473626659778552381653755312578358916676137625100672644742930503002768820193446614460767822232410664108556444648188935890034815763261369668343083877853550477294416864130425338728658476368304355378998216019924986005281205530797128575347618034030218851935403495983956721721821222258292143593766162484802243074769086058506533061799985885012922997695778568941154903876967798608912680309313281651286423408316937114488595949233941412545818109916156906150867267246853081218247366167687981949172466411250242977777089903187666728419399589603457835366437420617237201293797587936798536811600981270206115625470310645805547471688735849194880943771864581899536436552516110510729863864968042745515770617477831360777821942928421689733408530640307769280858828012965403710184603116256446537122238885084047889524831174741156529286138236624686671351858347812538859953464023876977768078172714963102635871415751240720691225151788198558192571508670149573750701691078491402128070155285250474702702595758567826884106934596947069847237657676645285388107433938925003054015405885838156667080205600632884407049118781085802672479734406117995400783332057868813803211844341645804671405205870826008888432467155294943884431315409817044662744703433784812809666503321158839907115275064979548867776833206115220168952475740165037312170005083163466652415849356109458112355923783257967342640160294263616823135680653182519175633120304017504987261538559997077069339779464808566950046137952812393752920016500429212462983354958171600717417059510417566747037722770306529537540579771516478262071409586103505258146886393984185270315498182973652828172951175854843179473747293464093674276870386854091876770392603910859216407808029757280668381197711555604513726337165485962948533991436435102172160669326693367946831503561522124634448728750675062691400921311269384118832563495610455909867220615088236202823107992527611583380821518681522337749878097056930221853740868903612820483561062628426635973691950244220253949169368523572631858304754905624607417218638414199412853176580683642074956080844077420608484241057910965910635445996187000605536549961537442578680865221831142143425798912271059561272712550561615552209613660163484358890697316278038580085308455011794542896061767236878133118268294048347523277232900162542945513961544349167582707937537194042788894993080986831133377709812099399116062997856294346674773977370174999637568148839169065699244782264281954525799683236975012860171128524875217872245674668516289240446117308893621888787469018838667328789303830951360897905140847700280817839347409036967056305846708394137955521877107340741940596933330679410134821514839946726645933846382467358881591578878572014293888314616428942434616209057963233122248848395670944522645472903997065665859628335455245018935190293832252525067822915595378814397294033157840618900204446327458659749376968813024187598149094875205736577553929025053972960379724754227348383008143168221265158874817172827222779108197486997988807233656028888279204479870822745265316476538114332191679794346124667655152234943705550075906176274232037755014824586617222308578609653668578496534899787997384002122756246233923224951827665223808076319905039253776837412469725984611250269898998617501645992171966072306474166746208399728367773626378428139154419076789962945195182525910926976620259749748711553743437030688619363759564370819895622963553741454101314466376865682730544395539279904162514486668425230727916576842545776593757070103733749512896063155483357439601637827518794281172852759301517452821785874414273464126569451037193899337401022864841784711692362111632571777790401602070345950641286828346681333578825452477127896219196830474432183807670853543033875412351722059770841904693587207833515139123515967191371570919886146704400229888859471683375059057442005251676317101957319187818703817732810613283923632900037080863511572256974627498193842025401616492004460675895192224475670696538170734622434452002144292826302479299587339117196710527217824433490973296749873504793824162638670437733077288108218584693548025555360955037075870613326225608331691895795611632927862068677305403638145237526361879737407756698289185828131072724863439233309561595854194842405750341840358831752343007439851782128581906668907542888286890704024020199398907409462013086206115722630912976408154375760852411310225449534624734288435893280824649592746004022629795527466699414277781357840006218024740993616460822385153428763651942479957470357458801794479259389538348863522628704502105225673769773720614875552629221752473527770293897910817320731472126602790244900798300173502675714609760804691770849203890792170710284761284761240960489526701621063149819113570740181375009082881853297831613238962800879058672900307950836916561192098289281467059197765231712979282384783303265991191243744610674103404174847238242618256868429184538549142452782066394575254405792440172931563025497559704398407379813501713212532890057324346341490632490046489370028661344526526089959573252788844004294923891794668860247344227139794971001441717209084946423701686834981187532720782355541231859338256284700769371990040963768902266137797856437926206130066792097762638862750313629958726677588497212817850939388399277228192416435854922417305558245667093045222832113217794325171754430035855809900443805019978291541017116132337936781654559186980583145901487380059597144295246883942826517710180312459984303814609985746917955330176729072595953041822393898176773452790106193945223094107388906027533377535937198639327809037829085969724194113287820985169646721067465158151879524372178928247222528144778421503275648905378004259895630932252283894421425449844589731234673106211873257489362191139159514530682383012939080675706111011797743044522226329118650198870034303481289289934993044511396064031444489589115812204883282086768724165414216088256971465452774715992092864828178422252526106007948387167095469875766747157279870025322652893963320432060839621893806530169569497983452050970110103166517618954544361492365159550704050101151782656824470001939977048592229322600560823620210185581451599147094260848586538452461352790861686491438289068555378784393898679665173403171655405538225659572126798553551576787214701921626476310917272941614623605405470596825910952896760205642887968379320810422883604415881100915207148850565541036241309665533123962080403560714134388850055695830083304692580914909975459558855379848018351477993343351513436496852678731639140389821849123363764024148803605033660412455919359737385118213537114634177097894274962103717906912815851120935435395157748986350188759090468594999179635755665270574317604631583384979628089661312226140626506657719134729794551385078972154708831417413112302911121349981792892516884194872270731709947195724604791031479022129153921083049133103639560612927824755369139037152364144444397804246020204753818584433538102025309769830571267237862101136442462660051091313424430976400665980370216331486079258789930318673907746012983249189367690739945789212033089936694838850387053858840710061959304707617841797584551608979683173908290449480222405202783958830428435133776037562943387328030841847090364649201682475217633654651456216840433235901742957517922313651136144183245291783063465943301439299507494555392677683133636343649741402011063829327031881011618638751317926483183724092811590184773181098681821924753077142814634954318207684049043493787373977050862203675926494207848338685373262310847504398725233714959526369426969816373156511358312477208318473408124409264634098227103463842440726081947864744063679622301766599146753337457580473362965499449929289543683900121654719055580049042372195434843403745112980522972994312056340526230984533308651837171848671587104189044061986839754931832864494511589680686176381142493625459958716340227664236179782418893787949499886142065345171802750961265234686169809775612313276926954997574607774975015615678052503894681789513253227579414827263375959234979358379278794916111171949577012552203101414290083552791224552943775370979959380172209869888569500674236216544202194338694951232433734043629159337734748798621347794539868418339607370857215042406285152469353108188502117223074980038553407664300224717133822876518658384580766802003783086496713812548665882417265521194860516951075811417201404565237185659383538026447814518197610951595800888953719190413692632348319401876933527197929575460692802902404942159127346422645216467466038632749942535883347143400097559311852592062792324028704538446034588091166546455271761624480337450187442056216685782177543525988584274701387855105711255695723280184009611820900965208449844809215302061772994357763180482424116854476890059499643484849278335059550227670374058478570337118438645429564721415774450643338801964550961768080410884471805240801368550118343777048343222246591248697433613272774768365087770477065061275193188197795174447118464413096352002674255769416247591568160279362104551448637475030675030628787316589425041685012106822264151663500639093509217724320526768240745425099070188105703854898372635189572243692143446775858482543872524009166607284862508397483451918699562607025547249013028178528023504099607261322123284967664012371911213624944574654977589282866257783252760241967335354236324395469774890673833751098986754547374586721158277376329076003042258530815932700725122003536952087599834922860080927241870030266922869205012193351331938333461486435737088814370034939035274687729433657954434042357352444095670198571692149385238801766073966214190331619840396891622821993206552555429985405717001261744719651715900410218260883638131339187353013885725748895281684727916597699210717964148794414428737480909187386495393959107204686184941238741193472331551547851539496717788325537016751116235246844476276583725149365749021670663695686330118550530557448893690800530979656134078612122704790112300006658149764126315456893286205151584626873484329559069894212137863186743063093995821908377406055268185304723662693174476484763566550552711500600043503883648863521374347349107027093519179679340415540165234127566504579666359520069471879877216071803236704903319014137522506248572120762610477229245507580668682447710414096884399642693364197944300230643346028820855651884788717514725668280323898835424266864319748743753380216880881809971308278212167653163485741643944612791325902799787225540854843267222806816256644521104539898129851883563303906409897383863911130967873142872387625669658109922218124212866911842007981039823212139178408760814866215747233576085205415645709284945950258831726074046019085571672631282590567266751099274927607069725912121445294369577502593693708321216396270811622010347269601947660719232314018384601478372265530516849110770859691257146714339610011686189804656208897225856893766161425261909886809419516980257959644683206464606067160809626144610178915056121061124985680764455448090429235510484016797023827483066159083768938693927717860983076716848904372954190259718252422081976353848495153979402899978581199214021381936446470082686201274976775906425766260982078092004514832629586208397029965982433595038093748833789290782362088018988138655860305453082145720739319058994271650500488258870688485048742349314695476613649869551843449089010849966328458651400958419336807875671615987167794025125159987323115993785375159607689349342652808746149932645923590865572412184063100433709452847624082050215967910732304349748796840517855864413463730769244333461150600825572322851927534850034958316883517627179692738408580402576469379039585960604818471448909234724989915427334649924944670820622410682140205805379822066898269675465721276134714880036648339717896281324420572985445853937890499759616417766771455779622473221154626270729609302534658982641242729204124126527008990296333476178643254377213324133255781982810783023700006521662582748642845190198655038542101030801451532322813835647936831473995269676793321769132000239115695739223461230965001465243815866229171736920162059650670051395255765976849493390470031322892963528315215048667974572819846555242630495654538646950735692143126876882349932517191360596965058499117624779479248538166566614612212431652629351151828703573524214045268383108140418669662626862855139846476128229213375368028844611990003662658224882887824704313840792679269609050203632312501310779218506200808118989447786474021323480461555992937161568616574364636082325282716014876703734014512377043941988910186667573086176092064959249183668346609167466176348863343250925072371021021795049752336448959313458207858195200248896179315329780506461873617792573336060299790368437562360539683219726348577823159708605336529675543083032218974367011211481847883873605169380750260239870656301538256760642028220094711342393924743578892832585149138543442530302372584967917965845889218531526953500990330531052230703958694582500294750475571662900849452842651525112419175979000327086336098580797219553455649955601829258041878094142833849081836303561192876392934240760957462024098696383467338415667105304241211285004209089687873770378431395512800535367036506859610297083900397441871788548137451713504464616749388544963412645390533412033696163904861151094899663453425168098873643297330398231468412754971348443674591518842372931407603572305948959798466860385133147666844330690820272470512892817566645397750694640612794704576005899671915288433191272072159875681515669790683867960649165475870789741553699523160606823770590289351614052526100182976780154964764184212800030068489703736961955598463464082883797740678706366090285030006370661800972822116431035815624552122643148140768566590388031759287845640268725039841588666249256450592201041032903397918452873077068535060285592961115209268713500736683217335004558289031159424245369354236914339515411857074463447161104509318049312746692470787363953251716146805701452796725105661102764969248832316578887274315443930102460415651719485490724668266722193510185853551561335119552918300434954886315354449826414627907794101331186004195593706740941825565864779789813029454933290363203318351677946865456260119115994169653757400817109176046284899966871810111532596567183119434812433189192774240903791665115481134169886062419672485918776341636719322487815918719229968031615580431744228451993835996993497910068302058388361095928340243186856059459939104181324645073663890220956194180851631219815470753529786705670893023894942376342393674711998927948280731252728247598752685951058974860960717854574306661424029463580786773133950213750912918183834482465178444183467012083825260754520877019411629881413152206063275114856928693407529102776083469557900816276002859187812366823381239382280223192878402267091100771959525911451339318619034815368081900028312012944167345602279220302114116324271345714301250946977291113109849625883405036951925276522780367443566651623232609994532917160339120230519007647041404110399804294572773769729420524464704673493512851390283037166784775288978783998025669957474389175662965237304729488902521280226332492443611091601796029638461180473419951526848664643885529269931023629669767161840113609157222621713547991582192094039143021719538697561490763855440885031857923633722333089313676994593974252471744713064108314705671373391833880668212269225402693663634026866065852109702007704219922406416361415893911989247775267378276116833942768148266356981535307821404017561695266903003429264908577545809583713608284115550653506378332688747816242602895889735609334797743728804210938756069469788333149650137764671578041023213039140111215021055782673821894531859999300989262812209777038202478125874343305450391170246083437604658810053080485117284377986884820978752633265402412346660028987941667398849693156089413659764447209423534594511340488206414872612413119576193281126140933425045253723762978861326248980808094996634701222811586107389984234731269485726087198552293200223738086381447722943972074392474408237975402499086567125102247620258481202400506799519088577452973107080001181330441554175845507749967861934913829591212713976962586607349168233205656753929158147230051287133798831228757446788996537768428480855682764159383575444371683576198292755227327817401667892574449504266967983097400489544777965796682014627043591040435329250440725058117895160499809340871655654995249132558859551453400451695634124742209694056660687620642861022326079398742255389114380275402046895731917926465686071998444159218224379068076014275580604810721612837713595674278707034137175905564347603945426421852001967971953517967094957626727692819535983779364549984942615454960978468471064954667071522128158045589325349219922435278959677357256726512802647693549190624465640311152881728558659990993812478096246068026664543670082188398091083506294447818989026079814233766968233955832309874655470255064433746145388286574165127250957431812120842457293916348633728437646664581881478917625001618496110105022194119578863065629187202728705522347082358069825307399334740862423497158397005041280854633651366242496041897999372129853428420422045165215970244159139220742786381770293029262586644722240362307929311649588115586260927519065913242241046052095423007017477546971195614033343572492246460793402730204112533337851762947754450354593184378750148221916985648593813259345066473160762930754855664261052311904818012424859643452704732808313763944186279010364183158254037877509702639652841182550443699536630930679168520455897002067808010805929903401302377032171088698413460737589237677232194251817561084693969074770114651689352168132808975073328710188347931756857758525098779874636811318447967324598059477970355636352975118154023266056098844848936496721145175801122050459109218164436163805349531355721409993319067284566460539495421543361311780108400781911779847278124100738622359867509747409082501909466451295142678973727163221993775307412397550917651442312440642978942154355015215292331809357511395910333129875377422981906127837614836510363163176966988622834132990210018837197284411937983395013327757461342121816466616957011038261949292609401950328102636432059712125575334960515220723045397805296501088143831771184335320383256295964136329892372944113203577228327220199924648000108031853546300384047337934904164088514455793443732202454098915075550341424998753421010669317943181596399013784222267787321515265244012347264898299480175866405311178273760858059482370019471641474114697875935076266260871623326337874598397083393012712283420622918037969567599658610522397760733220489662730789624252110548407591181126112136840204090695181548923625393716707670888781554912044336779616140779362976461908515453812183289576600940335980692548523541914135503819911977852435875181696008103306998608795509306520535805006611872350172631302172561550359259113019451309386701879844758641913309476473238835874504886722581219361713402628698574644198845354127663877900609369144710608901633977872385073018954618121766138883929213860583409097345172116706140632591740670175614741966599133119612908705248720019845956443357492278553317956532571245899025764574724573863345177108677707922576023864832436616275846003938615131789352607993108234547131221877904292892588166437936902905796480462035173526029161631058456548726877654609869255500691745799403853878716907829836082858295823102776936732994460298224051990231949869597880530845681681981067096384764950006262085863994877172883184994439026384003802703734200027671877663185568236175806659906132946806831757970069493068914224569543361952747232687842628104299467319165582180057779807892014839297461798483899138619693867603786243217756052532316580124527270983322104486391148901694121549872205530913974319223033771090398000241063945911593139981572799835201601331644848779884061132525062386920653915171040391349079251651682806829702511983737013723796060687673298840431281753556515488003758201990953487554419062768914731873723238947772938623460592788118716181568411615107795839325058329584079112527857979793340545023707430209858541358431647626876364345613767064090934760383618623376061108435584099133114894133585352159916038097901619819905914220112914568514869898925339538531649797964457827178972355784669040668790617128308164204406298113982024930822448902031445942154260803283875139908385829450299990866309854441542054088773123810125348639757053227433541980694403060766257688846536036820206892326803877848308974128611392863451579762887612713618368968621283675604932540510704788741956016225124247536455830934224000724921884662026032608830341037482733552014191125652636742168464009799164561298425852657150766297526527244898503702577017563185304914421365625971773321797412140993623953028712017234472959933361341176717522060166988908169077426942923669770658915370363749836803681860623292192528117155009376283612079323964883115953783947788725229682422451838906637611016286679420664997543628209530899540394352993585381675023324093241435171004993250960351554159802828654707347777606755316259673317782500736592107148057971499502270112423776041048833190256664245498304989203198637913555436644080673507004638732467274454878262038604557821095139177451005904214954467668986122787143886820850200970445205765056382510967603416894964128172666259270672104668274605903073093013357612097217822802201096210743152243964734261969922523359231237326694114086072037797000732461606897352876873615044565756776961947094706339522264473845772607875685208237959564728688996939860242620219187479178526715129135185567683822507604360219061948207433945959099753540063348478055587585274218959576056523088549635531781037343692807339955216347342632292250477514950458570404973612687406965194045916678429746127049786823187123520031876403125739244978498901322394986364888006978572547453584165566135515351125780328234989799592149938544323767063199032362453425854265476371030956173660728163744915209467672457777244138274200375972786520001137096489437088243062291341980305309631232600726480355453972025935427703642298912104464018192418377002452467549528184352620749366129908544453522652989296218469190016543265899589867990135922737337801957163823410287103913558349230097758955718901123398982478597197089325150687291286618231552516727637520095596775420319486966190524757916035038702974831497391082999663103625018627443334280810740105050841894102447853475496328279756937336078389388808287218900563468629540227443045149335889776959804197000386805049827854220345034986187544842809053985222663195294791672718516527234296807491084811524400803938775698744979019422867282933924574472435254171536271455951584175864190124170506310009801112765983362451885102162502792874259042503520372950825817940083069775408385071592686960281174814913624760018662601300699031301532160112894428209385345944767805328941891027735763136101969321321487406149350388707919978735657256445599414677026783944646151040635365815375418450519220827315240587613137332691374691951258378820689013448223179945667716638143282192328151489179133365990172490849159795295652219183492431403284085934432973809216771913328372859806888970504909716947581694003684286465633087930972099825555748018997844559544539645663094942811393516812750548536869331706434391808779142850084541303515231910094009603036479333153235889871076727351929825433656688497141970446494683156144740902241557896814220938426457487373750710133725518642420248923345538332562424653637333885384345755642921584762307858339284831638911001459055820513158759438759002074364278030949450295179201825778641787708802161168811497442572656120856854732493454038072936429930534786766120874527064224680586087406328048035281230296199984584059699064606017925368165466723954150774014844550773809164455199314318110521634095616933302282858732996144021495883562889529335919937687457179264462772607374993345974726458702496215967911114477341795996523903266467240220485331876537176139039990367156453408638847449061394694303037372515074511615376056071235818666847978337161630608757498092973760785050770659039891340411116135768057095540406174056061680621470128513038853216405232206959337966194495329797263798387694265307682496991858926951873399686473376268469463508031528744647691497142995186259463078256110167429136677791945431639507081983002835588435160322964250026628769170987063989831032316844974331016654327769058609748717951871446916631618559095829216046174705229341136703278190590888247688653774040644309595860812880919193654067890997340643637584984756764309118331485130329741416518293195751290441058874574429786720035154116639907278509147945807858143192970511372137444887137658030629750005540059992656300539358768118207907273264509231451293893843789207073380837744953332366080522164400417315578830268943452001771124529524851794182834803799517434244976473098850547539679268715606746115494401807952667750364521712548545210692289838764390416219572537347281026537480713342770512197549996605115433192918163490768845047543641227580604526817405494097061503242273508698406689774776765210106773683308947866576858338567819885553418417382732889059320626450274267647980225522842709459469672658731638777861458129679504381369282600503821054886209682709844999893361611312783368465649704724035688138912596662577307076233676049649405761743286481527626151756113649298710784683355094737889006634341079363476037698825847691180680856065134530852011604426548404937386936906852217038639900497865243037169014330028326591708977771764777412786410222507015189472939125128309976190664367597481030752026578048119812987761349557811148241117389724972118572708950882078887551676161535321171596279275852619347161148605993970571319246808987996530976691531629397275438010235976982738321157949508330331065682374041634331270318054534790041908384049906989630381291159882680635934672051450658093489610857607909079621920874390057146499887850514152742662147852099773714461080412722912160210346434567039898432856036630812351374025898565908076964014998561600817909662861438271710301244229780402682977953551117730374180280244639379338132042572601462925120341502489178024079446481499195116028551142774505152563900237384637370028196909471773342802778242026131516651456868536238562858020576372131011572433654124086631166134795420180836658549753159948063072679224081687274923387939385111652907232303940095973173279397441206342719925607943615109711395571875939377443823786664889723694070440660296137019747345668038162760173892872282268905612631559418448080932650074630492428055582152489469154644914401090975778220950287166811881537766719300895364602358455363313961935358776899699782513357994962922253860781995944274057696995017012620276807467895651858614219088532021069900390505873238078545584656873559325307863939182122734419592447472228950880230079911341833619058817222400241478136876578378621511559449840884614155199119228831874719934158832313147007947395830872417946417744462339925203313980526555344682870596951091185995638052769170518337278894038310799266069396902747484163953405593088110855763516642013102893487807426709307590499166031315522128278678235611420537886380457997488322847901583102596256620548956656050853808113466401315779308894831125329623787378123767033332099601902017302476275513707481902504964987245531296576410578821115127304596387366873414569190350731539909639949028764960450374693807626265219978627621680852769631145048373306440669202823199499959298571689299298006360878567229432698111914235042078491255406680442270754361174624028844346348540011745425338828731054974564400217103808187487903155377418256988027253678364514799842444325711469621064168185464528986573717327025409835881292469104465840387187213896210240536983094449217835719754011704294791423795535173866256932051312948351282306265642727353809424840229346321048609384206441465834166788016715281769419201819273348307595415314685883220806442128215976570406379593411761864558161613575832782767066268668005828439320623623291686541819433088039969653321263158004187740040504569919509714714324607120584363067080710411193982471449965089892862662169158912999256755613764045489049835222632407532195847830593505747868824343359003700681830374603323571297843374726465546961001604843217341893468356560928552638830513632402599914439535067154548474409315797871603733681481886866151580284220340321472708408492722760411138128913426623799644489321641296163164919131857453287641355193799422615519131489288154161373604524259616942805599410969662532620806365005517486642744735543778421927905026811091122602253788173136839137986968471873800139569068644836809522720823106944520900356482530400564887791731417537412395824337976160232702022305179924806514093151192670147528649696895630860361997004128379301430090455215483167089448711609915772190093814836984531289226309031442607551573390826244376896273949419368220432931378559399685936542075127924042142672246746377844375936659965412130586125646962208812289428420509058443666026223006256991755028968137842681549824791814268719425664249175248411707527873444002957330098286220257921945176296731791010263976625838878699823255198257852087572602661623443111720866311984177585687521821563299714651921487882380648039388322620861948988497348468239218126825970282309428339243073811650709965652399119483900637383285548466104710616710518202116601758873668488492307649581183797905748654346301417587578398096297131215742739602453434418559809683514457310333809843482232641577747018806936910680657250167490934400443749753826480379393328100015514920493362631179048725731312518939556618249804448115410502868903237936176830714925142792440164595434285557858572770859926621190109972551509657308704004913047460410573240939886419882891129477052856591839140158946851353302489901906151044927695423227412637024935819568766334444226151667959066735319151737699861274209347808550882770804011507010050319102553849705511669593136156914041656773715488798662804672403566071320003637671281878461019803440456051842304686059405474582604923908165554804922741978211109939192192283880879897319285572942651580721789964100949160689643375838290017038414640737803711760407603651444588128715399023774054171030654500567514814101737401135898777770220508812643999938164791317280540130462885887436129486190484686645947981820182312761809322672291249061007521322577134125525525965344802486333635796365596696949712627429462944355682326223934215647317889975579903295472486044710956615614209627635238278621726266762229191964431626530307452772242798189822555206301999216374448919532069443840230052859531461944817515164214962030255370887044275994739206796440165577944486010523708593852723131972236424756681473016265974264010358394492208255254254393562068231068914490518667077546026651271453454171851862705807210567623781193404908284665587006906466479044992072456114165406260857390942774573314192959721398959154629489810283186860108237277643156878142316649136118501324196304299000264154424561942798276850526085693575884247864278187645919238741728189707922645836184609343590293738628203254252151251646987415526350963347204230253155563375066618253031802426971796610125857836917379514105834132967875326291270080352181773659246942949462806461831899724611223194518941707546067336735127641798723445929018348646329325364283796986114295588499351127215632766408183441788436121832363381142999669879845111023328988948829207765000007225304529644430746895830479139392473328078150034587115470827862991434824645589727788504043145210278047497785644226456731324660590851468776164066355245881724451180837604061753341337796668204945997127569673658058234367929418595086108999618674569925140467060231742750547179178644580744408943546454434364863529400930944158068853083573195942912304349398905718209880565565873241874302356169621286817704206640527027902969988888009539524368641021434017561053663965625663032333540154662964565034839545214046273423721800478173583558001152902113757154211506438624337313631469591228344599964085649163657595404137797344548660738773995439418276980416054562647388140523405845524899621663355570935350423373286204382858929869717306890525798849721580038206340931660555619620811725473857538839341932385229019643926742030323736952288736056188239275623810868215883789033453824628636050799692241213478376175182426097959958294585520634542329057515088025252509193627634977989435194326138739693511527098747451478931270858375526739614050836138755388679747878754149544146438056225348026494351332335048859187954022798280361385792457740133747619392428513573681015301219825174982771612096786972022484710510065525951583224417104122830847412964100140594278623978343417881089727330689522600508418602300653306334766761606394474578169399768579162475763692398644617605937345810198243664146872312566129291959969350653620966292152019432215977106063910678854674672654667326046697187673804800690393560394389139829929761702322658997878866390218902916738592942424579664746497500489731462184886607186411616264265291990925592924625884117429433309184608720204906449647394109137234749096862285667742024918264042292181169467765827066326439399054580357445043898107779736101187896363481408015299735239001053726102213692031450292690470438348489339480529162927953843847467529157507134848459411489364342050857052358386991055179615327952508399374871063330487205483703310868032351154729689086266862791127230577960672956252877440756486111363645861372479921078065401037751840125362114744497161721485368263968135549679778016632945966335610755161310502237409636009310531641633202921997455621667120876712917440044307839259414955577553706357961799869763114680596810146734747991500868167726696120367129384758799578301594152691504103944250263957791673414978801992805198782827714248888934708530630574918626894713536044399365805264280047195126108621260455171569755667439007253818224691203756464310077384446555303214063570516236615250838702742027428973133604648574953323661618339288339357163584829162124089834558812719694458390398356354558087404118365394583785449459807021150197763678221395079033532193032459695768827352361104619232985713273335412371107661379599385004329805437389221727717065781364251928841387262953585469328597505522924831010718795340312526239541879153904341897035680618243195708609212705401016301220697687311458716859128451078596983039214409129249841416539491460077095206916130660982660688927051738171955616127121756362891695222127309155106756723198498253589326974396304800342745140702423964559458142187240244559704399652140081199624254360583912023240647870285511041940964916651190576101071417126049064389895471242259376113142934190318315126515815556479486597752774863210517148725519593986974041417524079169108734955432602082569980729903604870278392071979009137469360357336791327260430214149071696563456177926346620743749940199093115926631123282383895858883011711896047956776137304723176197110880573357327028752017850466128239487448200647431988441721068368151216018213856089624213477889699537564981145420203325007254087400773887426018087534468269590736443459164893481315967649701429195739121062539716200721562056617691445050568158910428962186901685181300982608887272986293512249992719986896933587243338659056159719939370147194920556468576796633671522838630163334423343909943802361062675719522578706410458472022072732703792876287314861636974926805162064473443613691591395063499438530864020629720449913598458509263015664111218079513982109330696599244616628367860917338698322886194348917899590736031032141122270428958574428530422497473447066852014447964868557203684196722920617599433898182453821082255614444679456282951112076229018129628785357083083054722551016231515284235550394982578430096686533189509917732468816684509815241869754899577966446096516889924333380906674346216387507259470595396828920749424790582273607276709224668069086127450501811039991877976599574633788113279579295445409342797667347896910661756541777655005980768899949269318572351941643698495329453686223077698592318483731186779257463434474415882280160080857193340363341536088205215643778149649700703777315823821977829998921129065908791805849881458664112539072814190166381989551601204148154376384975049806839653567808190416281884467215192674442508182352404649612600941892761865645991644508805747755446887313281753217080133228458542852152374159733571496465941056545698947557155325601959545880419246838869119230227946959188982494193519466483663110630247836846351202714095529576962240408786839911955798793167798950398421661898379746622263126807992761061512990161749125580388760575718276833602087728961398813318773167250106803017565463661256998129106206414054120469093460071878866235018423602889272274513789357518968510561935622525027274928153543912901759578128239082523110604828521875584567084960457571325068200556695461005999836965817053653551459900065377681639503539399124832364571004070417902393325971297754267915026883806928815291473729851411675355392134760048551109288607218903092609800399733436855986462442346517118216813119261083000406514938744898567990207008431327012178651586957903242861781515455506797104528570539330339218103995675530573214742282049945095654986422782814546051344736335508159983344221570528521105309509030009364722460573677187329909779956788868715703046661738187496969572369202914898670010191113573512534534911809069295231724850249091333346682118549655194620143766129141883084706183711729856835289572106240893061200901291542149117705731195266981690434290445864254193522025929529088365066104074976816293423769343877365480500548558629213362497716509327515334723489795803195901477262355199593381219789986538986179263613167242915519377289874836051798235350978842713195542445518953755954002727994296675521399607997771921213886155005891513245482597193007243051270267684019993221736751340229253457526877828596822131360356501020959834027533172005335664913567467802814675129779164837249994467024740077509258046193593486429490950718142874511422344759990649357261105425046888261863192439379552654051841847827330379595362373801198064060418933396005061415731323877902011847296430617741735662822283532669527944792278877883316459997009350071446199382444137598949909463545858891460679529064126324417538463011376791404579527945328067659219069433278994445230134859506708606825912337374155734436528950046302246616736970546350348307813466230498437258606843015799801586207353412370315599814038372500945176041203977679584317189307943028779892536188650766690545362812402806969784052305879530661920179174304400516985321138260490227418872407403552749059906946609227168708336631997061020238096153416356051072657698933631819499285671954131170478565477231119783199355011031131797408185100307483726565807904270009224762989538152159389426289764073677150487989402105196377868311617719029663257260326617520454870239040365544442104904428709888410739972763179809051065919628062272177359829832916890456353103143001013036900080117966322179521663800792733422447136265758589807892383612324063307034570473762852496168420116823615149129612589726437665402611608696528630697440200998215975870396997459965676231170520083014235341714300056235033465445590231010814309199548210427463404247525345667958358505317120874817010990834500982558372362981748714546470713645565219888910913746278301382678188177970748945464006463045815470069737303345441905437280605330924597600474500087232432366263638638416528899317401741468316684155834539738621236874530568832027964632866103965415324978661389341805809250238187857361231030756395227181949635186490540232729627440904503087153301546715418442673451544111188248951274144741253086770063798801101017619068285220271285164374362630092334154221827448630293932740118182064152763654792682014142024777049224452937726590180917701889827062317273085355125300536984647473013699174803905418235238922026082590882085914139171771471990220134230660724327446714957564687265778611995571932011133665892685252057530404662797365577862726657504528353163796735168403158590836540120220463270948620186736330665780222784735237745608875054410055123780354240074919237332284013510352661768682508394480428007208318195345999012100148257931734045432142236070111448501587584779133528660326315300803326485146966604068507011078899172763253793412126553163723780242468084219813078483071320144283039379015663558905774949809529872977307798690549906314189689999048605489332670147352376502771833375578832097453645697725639510694695743908783388706068312532140238715773159961300556530770839323454917363351344498729979345590011655304284334009752439614878280482508360374515720050055206865694356436972628379633138575151544070939337722814251198468225592454848185892977021343845268756961259220147884011021848982656196111636131387388164493647565618800500763080938792508468811113222219930188485244161008149077008668490120752640939635686466898647656265045927742445823458451034204988541100725812370724520481076415859543968946061255723186093955685230514520312344187865496786085267958187316294839392293317414261482143555565579163213379270801349253911657334639810744453222459282718985785882736048047827025895460128958600484443007539405247811980365124721800425636963304302700601522222744903439663833410909431835669247378551370998614702477420205649433466569633005992264532273746349974502699287543849673604967513785557219844930305288985403440441334277467967612537686934936135826287335299548716356898899911591153523522985852418142780832277313146587838621361611370695140933994791447250287669049158385081242742204748584838285741066768424633101999413708456710759832616903490429258358913327626654890854222457431966986278660707006420310867325642154036885193815090100128714267490938828663134133511111825518462907276679642157084181454525277946957021061403573530949805144776946288390785989716348531038617398364039378661985154497699850488243488211808020064549336249305132917132152705361986117036992346641339788067331926062063911296920908737726042489641651651623899014089262593138025623655986634424339034766233019692778466816785470032869774384853085096045096069447252962156805381766051317450159984164547033372401844672491684400132407995947658752687980142457210877902839462322022483238839553528642846205132318229100667246157223697401805025171854113636572808498675079757822768852915960399197562416025758068231866094766240538701672044937824529879389562116203397375171672548834501084201475937449544145166904243031400890032759300950019490330311178244386930985051702573924212847995222542421506114133781708271548843722800831726662570418413487453903216198206949002269735216600263694104000625384384067372118905879769197098020554581291021118745765913358972975608613506896023322969212560705374322275157604928156627981636831457168662776646755658435346111415082642587011960415179987550077984195022019956476989799894595622461026523577476794129252803141954455497189833652400765567666376185760309520664846075633069564751215178186414616149163799692962066199017771405788978953653654783012708465642078799482896796128584191656323242642693317950520844472685482615450030312398390875991969357030795808449028976937613651834988123136483178436461041814374149386690445283255035779380056789274620936924222714927051914537772068466195055617235176850528509915776380343109033837128758437458419338023265110989579775513153464649075707832194864796633441578151967152403519543654518934997377879863727528181252979016255675131196482863170727316735299268951987627889809800116175046044519082607950229753752909364089068152763582382035239102314772067306661981949382976392180510928427890303481096910993213650501827333578553496944154993240714341136176332671244348580488305994325941337072084917982491353645745877144080447510228714308343019390951861633586151533009166630410044195079167174646926921001144991825540911865996732755637223980415604294272479269032652334638903314694032878907930269810906730325412266724061023528601132539889239498128844927903029566407983284242443139149786773141754271608165594503806657456208616561576512851459907767017640646005147977173996499185481951934178418718618760081286361201521936368620182373054773349439484648912516821470281802782874797769245382962975703982046215560221042801674345126463295778093671756277161449179544188379011225364763525848626057519278004953896551215480918427891760659629979387432185776213905387927369702120774643022267429367233450746396947461178915570863171918183594901854760584131380350836730223223554354704579214871207166715369489124860185981118178015472457006138971544481518444100602773233242671031274526267661977780794972109690428273848470932253677188617254170673327262850292713174023630066492494214195937171682391976997587450339875248206783817816928996229285956113347004146663565364578629711647324740283642219099479939670941760783669483683736876326906559492925263439356853442458062759180279888056492837211290810364513115633722503057474108213351070640828748980989272840914376666202366083332713751584692944585658139977831586512267056745482875924339327937289772383460493397573107181533261780648747701889253577157597291537127342605221099800112641284643246684147567518005379376844503160542794784940743860614066088040139883264178627608098456603657638454939597207983220172808701662665555025431850618275528477771845042681670538406618034307748359142471757834578134982114182721540963283991429515353621550879824682591912214293445474757608196609227978708969572909867887971390042488613010483305188029391146678518332533898771960088267468174106514168934841313551031364777555185271796904716108449370312718971200922216963835204071380825731435558627240321877518641140755542601179928384908637547568498187138521070548185353081344555480062775055066299090513945894541307347305040035056229824534608369277184004521445180538490316248267589930774750930234481531446079955012555278047872555566605748828855244889054175540585823147736728826227583402731329985029757113016726806176538933831901076844270499742270371866651969888906519388294711855981089144840441496967528773305392992105577110158133008354407665702382616874091736502004379883674182518075502208095391317677028919720984849118009780805511232325367071706475264989676827924205186005926235056009283997952411405791635461318418387151120430056269208513197608536923577948993786284387490105669865222528401949910920565205914037176378405371276204311915675806077095066177627202417694376483962236599891692745098810308532325508159191414276655961340249969540783229424205881400445919676380596428099076385048099285757663524565412296416123761660794542589637162179075291398165986581074187839840128395404710785587282135966373755789276639570293310793368291022779896309362973654292847171780212423035168739579259563679734188387719767034455247260368739957481291758781209045316240787366642164159316351561114140372532443883049552128001055398701753729864772210220249788401158311044675720902395986656996963981340595095239557688997718147202499921413579933423858721126203195584935483581747297515509323681188551151885252555423994857174283538818703429044027891182224833045529657002810150160343498034561976883917026887381260656831567981842751532069352732815216200750475179825817543067161792677342733853303167174730473179191316191852319069714833981648916866210774133003410841884022899863114529435596176942852514531747986880141829750622350914120965428380430152044638478141421675782600392846795794418809280039625916611657163432407054523273874902966394507570373604357213346029655748530136922907734029615155645009263406165907816976881164524846841029858094940995093691072365827289627097658562129682497266408125888513626792997727098615219429415930944596504294825784285637313212959477717327546416376268342405316767185462647875660448704110198888785650477258688169075557580888605155646031122185076447625707332072336563541123824929020751057104197464973592593306703508544900753077648604041186583227723822259256302781880610675934246274904282944256308681504753279115388042337269721182797510206562319722758085252986657055196567231878959363611682904814103557257209204161433023262310960871828754693715387147216773949757755018709491078878092952230834168146997557064247810430998428851530678903820288367764113038771270013734280255546769109891086132318467737463939170579193717960855517842510313016052364889668623916344109045493777310396286848391312411221355494354835490641274358233706028831021477669949209935776671735886257150010565961466763289955122731667584375238840500670834405453013299812464894514053637148349112438081302794462782963143788707190515017804285900114747938267727093719302383220187285455949690123026270160163642411843041300156173385859710696022910555721629193903495190654959546193589388774568778267597629868794702074873247119905874201128965854736197681287969901754311500390244761206814796563333634085229309068444587922155112183078004410555231443987879370854484628209817449616344933866843119140487199298307940718925694323704062558379231570921883191498006375573789803820147340000700018698014792013932068827069325023870344725885342204171258494666017067856099352950872494403492477377125659086303264998368435711975374470888977335498406312090923323002780931364531890903009510842627156621392116817777174159556209682597073656747782387486159058382118376857174326201375134889743700890594711897619348297976178444898441192189359885174057892738111954498010320955051942221854368428287296264560818289225945374446239405373731069748529287628751320754985622053686217086536116569369156367591683959876908639530700010005218710741997313956611371007307726888199807916226916236835265361504602272198594360569489832350984790501291940104068122621784564107206586037092004279090606972572764417450835358236926719441862601458665225809493256957961214445595134568575459076083293661086264448528678579951016390739451936505422697851720959376773563869526010309280010229007584572175360756028599083281805859073320628343624630951692875960309796003829299215539002372084302291360722287346687496420320779463391933698034937178572100231156347686817064576405746836776569650854196398512397668709798118437754907368138784084625994056045148786437798063656395091012495158215235080612111966968499104505554142196083762778949008900964919792241070733772659183500008423971316185379087797533133919780094211150599634215976729243635410298426317274979835795913525116880605522350909050644416600127874550975565719483515898131739590511340842646948891905967448257434403350505976896076411830161311248722330269306803927525520074160218745861878543397404973241254228653813121971580710276999357593313479724761415580472607909757022800925391973835022926944503208922483547180069985503587640613974920530191299059200517213486128883168067629967525011302908213416374433435372221775564597077997844288582822275598443676130346774003704694802243742332883539765459873878509548279416912103785460113068332901034499001791223613717666617621166956604318167395013665092339883577105703102467240515477245879357436206152944963425241907821550125535654350617230489684740502874961606656796660351527369088716211693488552369320258743405505005294577609028994245265409335053450907249359571817824591752557173357013926899047761822340191754876657639876904001381396590660764667707794496808432552085831165649486842205336587838384291075805572286042105729173952905816697071678869889513537678185349586720695050930752132169465059665008441221288056818304362116435448829465570982897640172912642458984558416779547719093051225242253695580383103002895778128952916339760889678223436859546111930545894789049792099421624805817756747275206524547655888882061773302515425340678665709879575465454334302449177339572344753485603074507571515110918441517859889932683029320871677687361546080362334993079757267771891009969812782404855288561040969470760305383523785538879589882954582405655854447599014574995612200052774707530003789855042501137230370937086254881140147195104917952204015976797287877588362802613429183161046401249675554787798576940906744753409865324876038095926459188061007075479241310998436500939105221209906892489785994542889990957693246477067930919621370101857738481404733603636615744750286075204782869269659769855308388523468649597885859272680514106946807672464587801052381243836762151800256258633436051983989724757504686475559765945528197798585999415240003429844868918971301174020914752275007137912015140335085667524233917626772645677090876141406256065834387371944639344131270365506925046058379649478432453364547880710296002205038627781692136954427257480227518537888464460847744717185765455016032783894617681085424862224293117480681072189696617919500278898117328452078755480914780150175751095659273642191764243673242790246639322538834498707100816155719533227099018033170728644240613714781969590016575307028589077368661547058785243824577882077921802304602059672624960156305901451298044350250384504854853459051183147818545386378624767652235601284862760055484149484620514681056068811957019784975881317700799325246261882850690188592277473198617357880142838147730514891320001223669067109969131879090604277922805016584362823770515654948320970259233486175814326529717835133720822474817392207328811574291336807942550745330674871609184154324254202860204544252274939536965837684275985844273815662428584354724435868187338728686647872517970382743433311519947857446233410124964030111422381722438046330625113008421254269673048438552275407328304086452085652151997018802972075646095470220107450301718659113592946849048756238888654552620191103079767447752682644576843414964176687829193251127862624992007522051602960022113385205580091167808214443648354100899761351259985606337971050089521659280549266729675115686511019779321770263526459602294391189473202796046773832604997789150965270202221390800355093889072262413214367571568965774038831690881776997199008418011904355684563338962365688676544975682858444941362669313351283899053853130958534131226017475810282662181614439563274660627370838892118230014051831543036943472623322012531643877451977428881717109067231205085095526361729400807174390234720084030787096797597970375306320155760947807130487816313471699924497114599713979658041376659975286702163692313945106481915673264759094777933059442899397111951344344652936159230026412877635840250949953565022744452950225438386784432573068886283567658260565428953297348865990989427714386857252595505247806683779786098449549885271095968719855320430632765846959841857278591938466168984322085020288184304288924892472147520195147796966398747625124734275135473132957113973880813699553254068339796902352310828138716961144783062551532953122178361623832176701468226472931337587633136925784712555905804848985923950767439580846935909370877221084690786615729182914108077697104622491660153619270873535699127382649684159212834412907224702641743849078838069329419633480180278159220162899162276144591143081099672591138600439228186722983970115675118542372561558330680129276154523354373923539223794785120347696217372477471479713664103399886449275973030409784134612343462613120954797609789062330067096081858948603222780094713312519567052512323363084745361135826939656843064433267509943278115476155764497557271359119187001284597626603194150047886677158372723698227424941799827844137799691540458159048441317774034659044205695787618681653088259179410416327276971639235563610684216556848109957152772873867530158625832180107727675017416511575514263321357231794975005489047973776049033000849046180966499213196256956357484166395298050498198173594332161345896238829873986216187391410238463296997303648995617166496091246759786734144376716436749249804554606925702404304013602499296390701242773521184802225043504772238016417206723847674158528245341995658920722455818394763286956296133741602596946648167612466089487703256117593558010334619480153782578439467499652431799133701446559165865877503536101988502833890256289923525885773924624649839962610908740497506424710996685536386930015161504826660309618909936043147485527185680328596974397681251425080622293771401947874067721101100641021239845114831191531536279422467244395947917924908355125577195106701584585612040127151241192304601977801033066667685388744458454224979846589279377177973669342877220647409698643160541511893320821001056369088913050752473948802418490115810030249689941464036731877663912597723373396293499939608091011757322945128505970385363340639507514458737086078552669252921508048089087681486630451295018167943181050152097529230024375059799607225563384170407133939035481655506060530253525079506203377725156338065750569296096009781919224505900042910332200780001897520972801698214483275322601502802721291235018034812860183553776110488606417279828746856813704871958401868178694931984071927103898960125159207922341041236749054406862263403282015202194957850752538861204791456767043586215439197504445206309875264788160889591668842930072883873661585068674016276862098579336962065255214404364586510580788339446157976997728598710797664051176008623410544959174905213086511443257397044179912890459328232829858795052119888888799148045379678455550343194978685952638345045062491666234618613252618387685448141486613810207936576243891436009866050404277877802160735953305613474340182763026388744009994570987849714437386926383493456415942795338539296162698944893719415706538304066652885776256010547378778613731451409784865273297645840179769951684115235769012871120597119544590750167888148743819883695418457512248358336936197823059528476015891463782541682400547350310186911538993248728351928442646204291327766785086912078456064438648850365659291937142037086882698677074550511634865078458831420684865160314697496960562658531391068630630464356381192337851217869947365422105396979381562850720408218793117205029608631304181676495587814634816785719185376553348054622697310449289362270603984200572375864913773737924338144233513917192286221894910353728531289394532221321609181451328607799610324735565992313003452386973396034208460949277496126939475680169614968056601703421862460712068774560166195374218941779323936105236615897545516955888515361859716432898825684489447193630941301420224888720144801152644852204923236488369519029883302967671678503253010400450687483219867164601140936753589847635835722454076011611497149677029349560072297311736154548467451191853659235001026716672165807674312258663149225937449602768887538211910615372597035065473192955096616854392491552137348265617162211188396312700243179976992328207957346665352068021902607325309715987776678508611608022067960984706880982571318238160670146090673978294531255160558182349640451345657914765405565918702417200588069583392156388185888341647568411050219205664297186692968444494748664136361293021343846498338397810913816058348159232415055182343929235591435412859008509806830860789870298023657737105093429812434857071501117763316796403337092793133241060266772750369027937817745746736667028491958105337924761879279872901486401565109275786808294799260080511945947553251465435868701070136566759932416294128143947786429625757515596129538603523658979187240850793440291258137368178907057941357408029330925971073628327297616544963436998911437638600202114070411553796438067745052528742801890771291022239241694299744923715345804681002690901115556723397294707497586714073235313866071854384787658901873877894144469601624397101650608814122980410723300973472542386249638830257012155386089165586335865254156200858332918158790030437538979205642548925305320970678010869654945071395844360284691885139112127203633216442901543691840195821695735379457244088310672549384428482090035232408086896359330409599854079252701209391357923845781719596767125034695695923259552584877753646718006122118561900445219943257773488975381087769054179484709007921039284869104999548968082093145166747278717771483758491727811363587212497756841483884448717560276297110105307818783536867042656665884789566029902116604892468964572706038679870297231713676066673434546770313590226058529926349247048530324544280017918490776358373671209929267003089467676011222299791804190874353155390824057029003594425251800618326666235555441169069527089217540740997043662435024466726722582488965640727986049895379816712377438450279284156909734469110957357834797723892535564478552323931707588582653013203537195922037178567897038251479374291445308993397631822522927321441219547159589015510392080688787957495801442522709405376185188445822686479096893421343759542004094934155476665574197728268761299132645866956857707085461393230891415972818537320984090455742147928343268687398226771689138833947115836540342370033713563967481679348377881238166710244241072565403674270141510593760483505431802548897501146284696683818349299300082353481859837924417692934694279855882051658298192548357301397972702985211645977542385095908973667597197244059842198383760852929651221232091159644400292540034340668796235051228284505493465620799305379437265895577612111295070376895461612304904110288812703240435710349568204439981325654330608641678870880141200711289984131642755521152977915090469723934384379017904527627218025982709670888047238921562238217741971886215522236971775970741261334922876470915940098235204353701496738605848409027247246201344276897013295360192644179875867802944575685114794768741402669620284206630319965910125547356907892172184086569496566591769945626392684220629376465976240008019194552390128235124889973850858812349690662016117689536728166631329761312869161803881719303086404311403081342018719647423043991177792300342874771060597359660262263368188863037949651908486732421548489477009638357818749590486172621792295024794719360747725025605618397876551717624815895604471271704052381136166898652396533426997814008703297159797183242919166129643933087993276099652933016549387088395893795632951636352158889429621644159542706796006461350279651141445800588980984016304743515069359484593514433609966895783394533918079667675178752282770562189406468085583896663302051743941450521517794304892877022703980717702814879846394684465737798782781051584842119107468930900637807273725767934973949551653500421677135413408651117005467933814418626849401585717857586404739476305240419006608545232458168890976742696298715941936476045953269982105628559276683186180692504650329016442758235806072562431160421228727099316363006547954568710786449385493546301295389459233713588762195679168436493621291291927126478843929772661892286068030892516268644713743814498838954130173621149763934402377255766959213607686718809696665369062648564011044887859810422552620591513759682051779602482446120958113936297105400063579243810041169969481270744743199721669726799030889827435074272522605832907702525451254489783814064995927039228478644274688056215814405438005548850728599814494820217822882350582644235595395964113671702026022112513648790317732364960097600655491398796742754724837406480577010373967958894719850665040923843803009263829435757919537703251307397516177374808169706490270872588618465864769400565698483184031095445595182979722829726831181005075717887789834061385892538328889045082181237187972782023805827391291853990199433814134412049780905831198753164446323672163057167368833164363004332420419543167762049089588664321952544540943533207659375183778995016199523081365678980121793883873332605428583211980520069192267495811238988270909389918936204785799861133960250460563334107312947808960192542833818531446662327303556103934389457016195449013458045054786254496489318534014496514683520347088997148288004365331453933485350360107498313918719632953726962144015739307348302865675998399725240233205146862632695310105636831388510650849244413079374042611591237837962266680107627896992316324338866961643447925415332192695428519972933967143713083611276049214077910316002584486726204186821885959060392238216236527029357689445833794920536560708432117437743149299557694214444697835468325217007995721423432286260956923459327796195588008300616862815822554144262366274680610225422760935470166559957259351599611842955556339359594835675751529207310398069087671485146775333750840986582523867006640843019459889062863554568784006401298855904648737012158601852496610560988123190598182876341101648682807952588317411428303034628406877024204049544066072078099276989065065302553294257639791442069400477425916764639205224598808064631346903688020970427619677165885882167814472248228122802412673699503424826363824544414252609947711509053028368128058987305991474027096650150796970224291477306100133440566967183493511971669139453945449975771336926548919371035225407947093983504107807339641324822604441580393296212492222472272140807236444735071807002268605646053517893264671418744547096343298958630783016452338709811483588037010148326450937185147805156654036983333113482887795163092342426722902741163505507381952544075751842612569710403875761423515593498678261921381663052898454643600898881503501460615933739990421119692413730934201799587653483938772046729709497691502532574483226088182994949619667345941719705311483838011535559243002712303872449044161817598968750230285343649326046629814811101509146662713442341112768814214221659216753847475756088753105238180281792814904502403942001891070698594175053523943081036256367520139327970500192540193461515318242741688535631583908390573806310231416638194517792824143555637996834576786329111183693983754628254013898851797284430857136247689120636742177495862311387802499723881138419639648021989801810233809185416921576100490043757540260865931044523458916497707600002190869526937601724577980564674228094562929054368992941457051778435968066490853936912529288909096391132587530443094734104910462443069941619320907419690176630128191130951053598966869377429744106903708044109168524624977639943089715946918706280847791645899175890106722462758491715107602239809561065696309385608996284314281490308766110263149011308391272692510100318339361156362028786936009071882888961256588743411613037208681271936206292323602738343233216605214570945343801611697138785471068085018384163925932483253195786851705890036651043877169423871059167105081590540125633931664097253231671458485812793618834413039976462912967447730088095880896024554780225175480770220968696364234017997716776653849320575659539453749498664274917379989248826190552902100135088138548771574828953050865618581733853641098795595504492063145918754842581528687243489389056600858126708672845661320645795954876462038248295652779002928291995499233532063751480812736741869283151038591392993820956333863739307884029260934538753421577264726745870017108988148107583133034988080626020242504783449625583151761953228261565179822947007545624461406686154364288976134856694217460670902467855690622257274367572352015126704057206360348754910307214027914321351009411323604675755471244320913449741766443953340686324062973498221307575309568171808343246817833590724537824523218802267161903171174877773192370976157961759300677336415338879094134480200106482606844799201295989746178769579634611829564876982893155777427371129376702126681779277329141752295339779066335741909886732360487215354998909640183719079301174847906890844834711749949663457237586893410257695694194217334505146236994793168345039419564864417827752004523699815797165384334429620321898456380628331537268414633801196570822999879721022573246213839218435769353822573047789668462124080229202849053425931569901037409235255159385205503555493099191319593572212187539480660465081601905180372995004469892901734466633281966174880049864140450454468356174624994977565863214501464807109560330557389203194789813835689512233482965450357425922240984211033828566798619453136112479248244887865416036003544100322192573203333838881563490118875991417044819392129825924902172048780876423946305837883081784271448290452027370950282839212234039076153245554402735153758947487156663407969170431909205127110386514143370856764470479526015621683237036098379308927002192584754884673249117693559582111547561431442256142431091348276538304325322281282426818292267175680096457878582340411121353779941864830820953785761595209529018837224245625007943598025245579022301330458012607212368860161714165133744726760659533708958037667624843569908613375663981787388484943054771831565633385263201075972092068791490304997603210865350310430510162607480379098676386178335803049425609897102311171423443170000911533096243420344251722428436867879010988129361348349213419451153263829311419844874172833551763122590747894821584039310510923154943846076883215090010877519059056079051965742286652432060222300172209764174667887385645549061824722880991069096377316542524172134519648811537115051793371762438656500592283142967826023087178409085482389912842224576516805214505015861867088708395622222015446867063316912126853245440148135684496640340214379004858911957885650717824007348106071595977468406558493620577759831064628644924156629849121732909017813133765897549275204332602794585621448263812045430362636441634371426940409492016536900763882110050600396159642459985822336848835795126452110615085118956245658579989592990369819572746343080318784308520679566017026812507434856924420401692585201901014014997699002491843389744942869987646580058302150075640448413289453976227548601967874737495602043092521795742300128310441493034419569429856923775243908813466612029843832449346863654807449474188391383787225025226791533995104905713936342259084416678118990298112619019992518342697560962366256257713128426342546299485753035759944360063974069124517572755841670127368577786040807363708626503951068408111071890013457997169765372401745384687681563020674854535338479272094547493772672791854735522665139002611140866921883413397331958402171328301875770511945922937742778996704217137684156409605499247477012429883820757943794956223774882278794666537920951611793134646588353096722771156860181394300249981919747069364264601526159041370390159542147833432904778618911536395682762457965975642562041311814966566250272779501543407984207090749247137912433035169618016353781522818025201303105904087630732046579994020155886785016098229717021803671753114443386833479361696712598009434527491094512422354877417219101414500385571019945049897975863142555867824085447995593916205631033748356344544509324142622551435713616941701858356427108362288298378939886609502452653093988599673347522856461244832849256738950633805872894805385353784463315432154445110396972942916984249795381423389887170461634495523541737534756138868771107574058780395062073434536505611644458247856600247511257458170284129757909300256282931739035335607443925990643153666929799746906788693674877325569832118694032002352637763591489828802071258195800667020438075532267896057998306374573334701952574866261720219599078168679330266159438547465713337499755712459979641010863900184035794883450234440071579379169088697759784172402575018892569064640845183331045223399332114447314344198683024452330506704948150626242998701751413672604203698331833105518101864744541047784793939451899032341864766444000440648394331591059866290845215810969056725069330517962216189052600341692490894731222056732276704004625502838379695113156420468820297762723269213734247766540151480825459137829660789779249948757409736975644914016214146648265875687865449628570576777552679861446747960386697525832680114984708828636297603254046874408745230734894293029901893148900019599840572217047707976082866913468995317088756367135431507111519519101506094596238494009591893723756224454468947666451326006258261444331615684007427028796178088376577286229248915686813577030475171744702656354918147651162394555527804505370595543408461865722739259222810997298455572737321449084857227328728679225038186387983711369676789470334121931765304831096892072767924972676778032441528428465144487276694148460991228604739946160957795613244758787328889867381519490200160982131190317626276227572035544900490585608036416572368994558185145772785987408088352820558204997034799360445661079036390333461334543145629391133497295572406521657128804378336485691259731918122555801325201436407637929210220946607057952712834973146017361987306630798820795454218714481869315651207546288622743044656575734078267353599293122556039345246824885758501632631999117823662244914006106912896487402386538022748865152825418002387418584986632842289064907965529030573993682146266012804611894534292513122121670573998751149028384459841814905253989254207723834894026236071279540221509446223621048294584633785689183727062372228920036916129240974738820416402861713845865320250765921158003338260715724374629857676460405415460496157129967624396606079575507725343690569493786669692457756488613955523662247522082112437838913449865466912516073387345684450777791922166030127815376378570957794975263506252137227570995260019255636325864390901074851562013247002057303523280963161811790197293635809262222621699954091236690986829076942013609559814856168270359373611715277652392894818111093258251139259676238322032977048964049749165075845036293686276045973760559205118160919463621943969300324841840723855437651338930753656610653764421232712692837607284676541425470929912339937689546117276863395601973924771973223527173051542580741432941243975770924311604560201442032354837066605436821904877214167175058090142476577338212356475945563125898166098662370254735302463233484603746466234265194343187536961853021563781099901762071680279436846460912735664189081781910800531682109318446797697971731114679682329033218354032269143183503919689716441457279460984802418526979281284740795131851219774965293681949722142508115477772878326521058092531934809554454512876550060477249889032967833557379408471485615257351056069677310718533623249100487651624461940674290469927594648840377742899187198075853671734979377995965890964406676200508236774369183775533648402181100688480582814526776174104478669010441628387825967982717088518658961760028289896568547088807460436513185088095128100255311441446413423158373533881842842685403600440234775630070250855420172679193751972881317527037877158853670889717399379597032839322554511382455150888082335705556536437988076985280836354060043229914127888132627994650927026838777778860020398810195368933547402894795371594900045008606611041663722249481387892738372193435933884099086265952478069716225975848903795282757422559876953920170829259917958491203249466886155936818833667314073729005953283993152871961045406222757350415808864846777798624799696457560104291710045090671070074863265578945615605088021046996024378924508266899983072537495768810404552592097968869201673641831692546971982838096015511416362709626145415001005188071655040641675340102508690287324589487674581735346856296476645436560948276977480476133231929457703888463517503842620248522955679410085194401945675135715651830477679157897602400241078248931329642703685664485428427262130723392122368355256468086119508976793224591115482683507716804350774071566859591572725024183089100010307212873028439970812564281275226770924115003585079196915336760685098554420252976828464988166732386607283796402200805574191402578611923150235458230566076241473238988461643928946693802942139331347953503219459641262766371470273494344879176113943825775726338570809699567173037812448470970266294392139806686596601379107413607408925477710036297730921971782993359494449152638794201439058776771177991482867106882632686395981701082142032951245676379705128626862945164413957040490247480192794671521033401305396129019147678376169369381666770133319294849396516689619853229226154149538226748989387899876466451833162335883141688411256299758818346647891673936839030966570401728834971502156091085352101723686194105363103360745380382155285278512765668139188986787037172252239084159806744252080584815189156040701628533181437790031647712157157900206398615280594821097472597810328377523829575959688656788420019717480111359784380089722786141529235950239151515985132146026030600018259203660982048712211499090855608036480422232613430309249882944809980623127935925881930180605851528920085747160762683585858504558656808490595681669109986512682990242519223030731686716198267939834846005384730012211630272309354400981119459651041443885677686069357759688602459773873794618942419953843279706232616051028991411603197152045860999594669372094764015754474695091221110053910398365382619394317765726726167936114532509366410372353072878995836274410926278577088215097164280679172262482019024518697130238795845819357037173435139471698364311171661180539352291134357958488743902786465614841758172677770658563624952061661077486088976386322113885812057022665668163031838303455308023765370774875613965366116287355652277806051697448819758644760052835895871854491625561931831887411067384524996886951352501057340380088332804178728204695570118537349130166798034387537384618938437716749440594105725186291746987258075227687087858397579572012321656636395627187184930259590466425281229539984276672137121367299643230483076974395974962684258085334116079968274482671064512228180910556998024576597925167065068741546440771790622506285844312882992629015784607052483095558167851435759582404126246641502596449344072912500211359711734073549382909843143657366763405050259927233897907185083378705697984447403916700101487849013679475918302208918549349282458992318646063191077887726231384778250044986927244245130880913204953292534949841905942162036392618339241836297494441528008519459611417490810087733087552507355519739017435694519888167843054211777113066210443289972769386705673286163154504641715777576897702893271276135766084636283469321439148336371173399044497488963575498264995901495437918352770128247738698929368533771421778872251712428439684322993939780885825982681975187988221968484850320824184110889579759593175784489759949522997087010821603149237621411353384002599564302848831216006790514335918939857094177071355938118502370973142359416390501711901742708272433546791034974672708985691747776850106298875029532647933101782915947608291500975178606916430979397819594881025932133629297483636549948977597396106768778559929480372560437786768602908948184140699585149753662672920919763847559318721589228398248435178332638885201777364963220774774025271833491269576507909044781830114799858576885503849873153263554223902610125877168378061087584777585227633776924534941847895934835593782814633237844769622043189106731271651255967084514118102824459927958381700749380995522778612166374663329730718237737525286968547314707890764890227714934605097202236611759418074741189961237643018895082517950768299399425126065657506166729430538331272003033675930756938138722994218573498478769864470907948696482350816204763486723617498846764184011447077374014061320415153223711159355940952795607506255000348329402090361473253721007433854782385231619248561228326422356422406589617817916699172442679100593149714575402767107396909031127638338576135325758119637023194806771675803642821206301360028299532500712923023432437936199920131248290288540188111471510411538337348698986797538924326951099112690705495116116502108208208619731574048434861539625342555558382811234730812408555406683170488768025179992322042058160727678867705766327486691484007651817974335786998937774095001008625986445989219640441629893459978269809401258878061806992328631443626361744860061753313958653194956906801569617509147526396481483880858120659816989460338700976261265771757463665502211535308847784253833851912934785996182400494182696809927920287056655938293961681373966246982623001565146811968401988807146166095288169055135588996127899478655238127627516231674011617285978510343375040441544302401947745552150681098105241036697857614287781510560835098021670693507425808732392897988322497842516676203406505631156993919300402015287609746575175308710136065875738562790857422057581437480957451081960915103929375518933421354396459819707557322447773749444123487226524667604316859852565699297751159336483353644357394041388526186900343333279991935484657335745475869831220584078553719457413406197517569416210255787484185376965365265225598947279027288779474053828121694445699757119440882948121408875047409258083520621559930539942612897903073048556532341344192110597298035861201197251459525224303391556824309763813105767840279069778094702393709226786319282189084111156032388046026888834943281636824646404565720331025456784694303385041533080560564421002353000027551993821567816716393534885244050372259339879650051070713603590943134778664215098142581451118855138328433739209569490438470677086498389432654872734646423040531003142318301858872741574111206081312062705896608816664393752364671621004026864249044928871426884750016651514875710829801274798684765572766259206230071809246320915456996661547925891380251678808339901117877782720521807731444885209175001504882030704381607604062096999862543171968822640405114190811267726232348516792781728126651879360712451106122682901196804116180035635059233137384072683204360447743360431017806421740440018155818070668273615856317039029491169527120499063182302060801621771857320549327261482791354710739853684781590617837146084960465714175179321479989711591161715879442051671662923893191949414968583295932869546216237772779220666829270215098511291198825887796021313161970091909579702096834447488926299456010303400537977072006142094395013773098791766605541766651070414875396059179477834327322482986488049396676246062328224929454338030174491657620031686948500666323718031857122800950619493260535732233584224343748627841448272121417460578556421917282701834096685250987313673554344543899379860754914954986219764489710392866869837801299020152381603379191399884399885326875450474505573762733843387207050022063736201666589654425457915461929258252715618485338041414986460311197152880801358266720362361740545189315153241150042815325718940486585010946525413111206067221215000654410744692248346595016827102984302975110769587991513867609827766390728023579210578498730456467802946579407256389213361238997621601733116512076307216637637216378033552397526822666983115272811325196437312760288673337622961603220891375757203570809718408049465209586557177547115190241824704205451303092507710936346941146893636346984079017933528970280391014826968437115761453784638390274264966524816351534663685971702788987058038750103186178701551303648368008271059068676421213818526068727006002915890761790582448838110984749144017949198554146057703569033384708055937979092264480953299000568110329624559086633977584554497817679850209203864557653556670815552132126028990961125026136867671743502717787776230706245193127419457996688558337595440306395328793436805212011195885348578442058774570295107593782051252445424745645782484321949949014871597416479932357832318686887703171371682529541276531751422237645788996283182590750644204377908038188043809388119398192692359285526348507850429929105527395861899496531156884268502186619432864797129272768617876570454604297214277767744629597595247786018637728588189538176632506533729147029331561543406833432243387633466152742354693760139313801185066402390795548203910995034469104227791124845127496541741592192736000244256900910036941778714450027783458015556351902268184385268951115854986900863563207766756619958077435892600769979306974569295064946353191849954805059154798371218098345644375443203358350975725892665302099626760389433373580583512409223304920896090475579030964280512884430291790462767879184433166754066821413351238122994235994123794250250723462281848761099107341904398312780791314794259621177031515898337256618096165167245855595485151951548549969153706883322185521808972207650019273268840384133814188956844596365242861447512115397331450576632297525275103660571907799924211064174388689511230933026356465119202308200044274570279764245255419010727253455008985747757585934109828607100573297912880062123641593108823550008640860928359992211275709737285090948240586588383224215042069142767262119429912781764446398579864169280170463641596257732882624123434887268473494313833766126399891948320352384233553838345671815871580113582416833054753394068957518836637600062877884976355783842342790137024947052491925818601375276893686905911554330345610875915605126084789626064318319527038516638281146457015261281242646839703805164072723386962588032422805082081753328845037908681167390840194497951766114589352553741691962690223075724851794550888440309008648205798753186537575130501715742860063933210321399975729402245798552454215081828402444328699489964685084066933325330387623833634212056265088785562550957656587325323781796727094120816504063496137756446650292567882064507707248024620579146682591957309187317675564327175185304184357065379843712596287196157796751868443923074967560904244693029286410967280692616294030785104180903486447837151283847208281009068305265455725080118822007316964432022867856289334960350717637652594182951614481757597775904286040613468801218582947344931949606494733292733108182240932596088926837447575786380742813784995216213606810048867289490913575322437720167136968684488195720476511146918984845275355463255420268427349245762341388680255848758717595366076098134896589103962779075602264599803460758525528764770738222564812840120228879002871855390375340387670439797515973149218155494921394349343945678500695039966866555298118963031066365602714396852582536958439255237319824777669845151339373931075256027433868728977688340851301601602408783113962148042431390308464338274594132580403782158693032844179173509826448604711165241430286726837739509056304599822156959883984260639991663844714801564220554474409637629007984078016220001453684554053363164623560040594752271571693751142223863206951820451040322212425836722296735660705833737594846497860846601171244053363964016877117711081452964582712081558499022365443378078723087943039819338629063061084026530904284132006785800855065920707359311546481358691373447904745145871404390142686438729842889766699086561977684766820115506111600783649266425004799782380186718734704020879135825734373112763076312131683866101996581077403990724980734792648091439510807789413646219973293709074248680865229946045362371739362274466470214406271457556512517715483435466113750105713039153816907545921478855550445283437959606240775614397870757066088174172964964363601897697376286733137988217966366974456864908459982046465247018239433910525738815026278689095784783626991115817011694041939126476446159685097660817349974487319370627988367527539508345587867779583858536230095895666955754752129020409030588040470228723289020924885820381381977166949453008042739592618926150734450137170725774994367004078392665176963416943748337124685304064657385975776624525164668449126751856294290410064136890270719642875292590471841110946097572269802818658304301635469965892843952422525410033797498825499474517745173004545914507079125880819844578498601738522393108356575096290414729771317429965621180587929021191458247765500704947424097342484253404230384563800318283567411967661651859748130554016663756714785803385675700107026548910698691225705221587316344930303839433017511101560462342594699191495946363142271340660884261533851718654547438682373995954022798866045490022820326133732933362362262958821987805015835897096770240820203597176367624844463622126143974234637346299994503452912591190177691365610180695555805928948965330703183666376039713035156096703243400606652296007944809559703548597301124459952102185619677179437658044390597893983749665986086098225008216105681098380137298744136243281550161557197229217492563347249677297025674239631515466405429273055661966011847053258833547795434716120676182194359132502457364763537999089522268448389297789176808110234564533812047755615822033560259401629507834672674804566131076387282672854435021129518280360040173415800523660383479275110068740918678929310181079840432171405100027674930563873393891662917295114277251212181280537067901921950765952471779805123114989841059179559701058061575455205819103397730393628500155143329582634262229222519620477947432127430913338962362319860521768858388195589341145358074199789979120919056258137841710284122100337549584702683630455435852770614520513219616359263923870791487944717565055739591406691212210552412614977126834208772499621179936203001950185742219441268861289785313497977003474629183865381853014973511312239564037266739440228545733801034401878619465225702619067663583584181413421454150830211728651772775493982618788253018304440546715894381924569454019759864785982106645426328635661158690174591595703630294536865610637207539928106066591938366378024361722548637030685988467678339961752864793011982945255022020497593766427082609962033330834989755123862824875384084226375280952471186016936354291222105025652384958452619188892976804254686725352643236433600528204155186503331882653581413551017109617241834505929927714316145303253146706468275989765416981164592618776405177511615481296462835315322568769878971961321802149203379898467852902279271530710844267981723227871084499620755570092215301172917059106816266328746648386365161228378968290655930096039143137304627327465189502295642201469902880066759931011818449808110514037526033922254050272353672845121318332354833767042663627682643355350590229840458286732602929541927750037921237199037193185879840696584727346415159697506660081930520705415149099792196698002580279477025025833107604989894449420521406441882329101228557624764363980953125749793825558681219145793274474226879355687298051575133251985377392063080421589833273329953974218357470141240748573390259486291007563103389846123588251885211736642477705793052530998603330589802164988087272546905412323088314029411876305353552979993864695700864124554728746021080439429534965286239393533914468074864285927825289095982346335496480263533944433759022661260496267075995914234341768014395007883552687240121156961649752327909340719727917207556477934900726456633027999845589511537441551777415642064126462554606112370289138305739197178457495432454138490910452142148620425245682141829458912451567674890658957667628582702846325183926307027574632535508737097370962590803473467624448854014367878485274262236043177899637780468234508359420163624105632069094082459396300638216589921284188717654520258939045648671271235860770174251685419025985450787832749604364908107296445571586878901267674566189701771515019974808877674808172799582227544788916015797267839532215359416190780366861042726067300283630874883858682552357077906316229146633383663308405636740096623923356198800241980571440204358109148182465529582390309435519074770139107442401741926787959277482936227778020591879344293003437715289637054791857279666122121508538251390448910532571515030528203051889896143110907329429329663704545447570811269643950381082997468652100767212034332283573702253688239441296056592250062647541116552497781349212736237038112386906123013125779204753736629160318528021899175227936644706601810216249174310972371679362768937548345772403450954740779680550544483581350598376253818830030650792028886053628417851084416574500579992131732903734510971200136534862065484195791625169395705365152785792833972108802670757515045684546754771179649183274898372343421621033252320343657302680178422741267256165777867514490134136950841601679368841473517364778000285492562983138640071316304344059956989267669784187752037581357901034322415392125985996289686222592960491321348035140817365709605547439453231308217532867985118954502540880306444252257563063260311630233573389270195402420680731467081802468796278519709256387682425626365382808233031876073426363799220593716041716705165062844944255648176423549307628047427337195840389955736972727328634307368300666843043368580205282784189425823594246469203813452355828129446628313755714047599930601962655459056698906151635979307586028955891623213379436370484827345253452074802231056591137616824199679764517677240188496419354868483976847816784185259674705755113673422307036901344440354230184306610630449563692712481439325379619271014779561785051774075228016691178319960065302539408989682135229993836315733765287603902954083993601170600639164914146334417152741800604774313372584577981141012437395083253501290550991251825711083309792166233262395858516052688914497096871134405265789888821114505743432498205212389629804695928849248671423609111558169454831384059175204645115791948738499991832800192315291416669399033226372959147592952430730785028306700666262476867184475791570481561625634534521360192055349671412819865005866695943764805441360902773967802093422436515519103691063868255810811055437227514395164793447236419125798917426598694967955110817237998694838096309109771317626026732641200204046619552176679358716193214559385905133594276618810411495934703724365975562525794573486317450371468089995641957982827030593160531403304929474496675680777101274967639182820427957943220589244800430808882324629603073101252889534370048368089815974005305667995619551733586702106393350220832826996271528030631103942049447852759858163778717608061767230198649667784502859051317147932752163103624622300208315255673947538830726504308642173934253493509800556975579049026040454787922855420883036066564184354956964515549308478459627959461851759752464869954763544118837596332964632455533314710349822561719028549073289337521218141315517560624700090239192439991972468601161955544084123456016322079705014116946811301752655793672034893688879775968041926030982754809257927367492553031426049942673760961174537607157703483961683129414907321413255571655500554785837288077784031038355874814610912973810288747643602302184165471651094120637118470376295427259689229850250606684298038391459959631008656427884119680817266943718410844117184181369789560908708547966886007307530741288882802908035380810267139610130454060788193532979260630490312224394050617468703771043937808650844371758198110519794764143485745558384409898152346489434338187726395749110709352839565259779610916269002724752766429033277147677220896572348099875035508348829899226067521110840770463471954834581404768253413950756812610220096684606238815342392959425416799803122617024281022256926678844372416735013888497848502752184078069969704382182838635860135980634123533293047902663952806927568078867173106421512594559978571222614058100583069130299419054393993581977835246892599710546150185082175657597277967379404675902735635658563955077367919289386369411480432605665941753359526211726311325812936570825327194586567598173460095726400662126345437338013104353454831943157908941795388666894513761499331017752443478351876068012088641985915260639907164946640373764239568127644170754154819989531738229840405785769622402213648355138756416737684380666249359068371087405016231323897138868828766576026190617577140124237698133206909857880051956294497536166448224421102425637010071426241469461814609942636154267715195729823393711965565612521867311048844853026589569106201457352912502233270022667166746580827250452128708753364357964289023195749426784852523084250632651313846655847226631001601681200705281226425054300258832798117233390194564415228997460704974898777414860517788679542155014918239251887406525473024619034156495950369850172734829799238250434849545611317215514211451370050324152258247336487720715719730090409758441881739593470420490748295625902889137863189398545897745211479400459609748995166373830339040813422611935424719469948213539235370995035846044553035252995015989406459099345889538157057438605660216895375586575502350450624415005803966154804309052058739047342945987008573799895663990760145696427935649845644301471764841524188879194306358148744368940744331484004926367828111754232218482363558075175683378654193368016689886895860556216179369670626275098256042281219891424859666472707369106437620966837461033202564329868559348085560389140222925709840965946737661576722164541627460861996634339297874014908644575941084569738612415914062643899016721339455083585164210389833671568673157150891186297875482441206085844845182534893048605642228930017138103336417421373715105582228623693106917124072912837194868526549064432919539954158209171712467126325017837475147491907817654798914557346403448791484371769440643026717799642236010124165164269552182842793277716309020574944281222839125031747790563303620830467686629607183898435510672330546296048577797779211930343998125978533307243732527815223242596222230685430589097795170556295743516845140841016470008067429094547626556125897326947996009706580905264650555628680173878351301900514937755193354402989521372978160518539158449152538716218609279114596431905475913709393558073256096457473964116332160979661752155031770668850120692832094674224503290618037460115909482505129122244548692918956868771018620084713521895742027683888009037039020641098727541817078999984734185011263167894796605645684919840439711524203617654852683766840190123133533398891825096981270501187579536367984317567652715394174948218023548694880822474517479373023820495545290646424216907443392323512002942287558938065344018054561930522024867536683123516045093131955326209372083948070272719949996333519083787571402661493416490524073706487460750375158279530210111322419703444276152918781479846724192609125479749484653510217386020425993075856935802329272106092245048323459513995709973709334794185032912795571348920610503858143186566667131089561670301092846469881789862767954241640223122496043753751937414545391151959469691484024152031642149429118098779146228784430341839132125784136705477538338396230464628091850454232731457543074928807464053713946590484350370583667501589207141438747122386520893115764978912930234282969999035351571533785842693659463651524687511266096852137061583341984855254708411364727605082556845890129507211216401154594750467712809974035090822562436124540188517999628354441100944069293548610341254269843403974311858479515314669166977309574271789191882118963022577161360556143101184626033912640901617185026754466712793039301023977767678509376605842006228651529828511748525289695537618218389741891674045535171799931797797497166530657047248912002409116348581616546844095325292732083652817952461157350221761391703219494844437835906889223116722727686697506195797307880780369904309879475785722510864947637531541193901184612792518340756218527068179526509049789349559043388245880481685292962831385693609867037726938967790900907569292595214153884156602335982870779880926925949234055132280198089251227964125529914861436834126926556636266059783565058604520141091361097422078038830920682216303436790385105121748895663737475324005847696405172968746527283204943068720902030623898496865878866898102777979046222358322114648015347650132332308699272994533370506224029549544423098172795069234222928417021586319562227261905071318398451321986967602562021492644352513220568734893792605365467108580687268076888901240435463883746853836704008089453725160499979133516883925892736582899153754557083753001243429168572908275872104250220057328549045280027130225261638839694161880606342199827642147623642607429577580293870805135434697642637191572583732664965042502453365447327451792057311348834641676765005455698547795671446158820419930956508864221447705663136636482331952961780991170796385810143488086951620757539968972949712196650166814402297699105041703640583058061483374370309216791086038333938060692807659739272231946214295796109849415983489529187957899750606116104377570766045635111142512907120499026053203993864003439102203263628024054936471971981259808860840920490174249042646126061734201005347768338571589886319058679832555196791029139401108188212474092648101946413743365624443452067904563346457744239231116184297390493147413334300301871375244484750846473466321347684794658028346573501515265697641730917263565562872775116257491790333214884966887897520249051645686414574152744382597762860734835471459565813695810656164563752312129197045157601127034370082642615830791412098144337855802337389977995682342689015891821571804765597994517708658580777866682861228044327058157790301219741617903258198611503407837603477774902061134972310926220909016182585672873016557419175601586172013572893394346248677449929040538255328993017056181096038429346218101804638311485419008112851039260038482184421810945596696353435907241271132839879899756082176665421022826648701064783433077628666522966553085772335809653046703897517937885349563592830211365689182843044669011509065667122597694592632540083951248583005289642588663612138110231541934159728975071826586324575509794129906619352245296180501300181038123206116287209897360837705913813228153229230733432847040247640176928200422136486249056338342955530725137575528776096777206052733878967165246018497014626292868636039196384506548308927748638442548686788583461255878528182317900231930989614013663630353043639236121917507065159401947540941090488276147754091326695497113654231931873521884603096214798139614803827190415893397694944842467361775903011088012266208207694806204893402558687938873635635239257895873627205576567329895335623304119547305088730664252763305817853795250853086117034540269611052325035733881993934595868339044094491613717892768802687183534308821572128685872282514463300744987370298543833957530521534245888217250735436242977872310016632083690023718180077083064490793244680914517458056930984724769904070619608282654539076234972073143211471950955530479988847837892451793643741822936801072178052189958420838915086445699692897868762235154956592271145912278804296241973871825860536206612748233958428074600451258009485230731465699662532254215473958965107902189181901891465750353149452104410822992060441270051097381176492595409415409048978190403238301538708565114407272275239309927796853822687892286387450180460144159924046468095514688059895575792126115185760333399463051690953218273707353226601446691327565358129777183294409570063114870997190054058420670524820943148831289034293951788272198945144214398833311885556289858052734751271257161820259319711863023378228703621234394537869657563638201790545619042164204946326818476001072954807153024640662752879232329470587226373856530972886197240913760311461853526097510352608689904784238230159269519098564842500682542427212486034933072918157018420403867161147158879766521124900019695023010621761374352122693533847219867982108355598406436234733327915102580183559686569038872362722524937586917778770009225393076939905422719263171683970585880208568986609879738341984652231298330881186356516234624470585731680568352948252999885724338000149755816776559009807209552886977849630191670311239059723097243139004603710349007494833268399386898875423491060715316917532250823798589614406258637740883511281061632438432770836752003265481399593928995632121639480386013809190889539120746918231957657786521880226004229427240874202526997254802437501000390817954893069849326372775792245236747072863702017461443941450090538230255503616988427669498177040913028569181667954027396981021854548418265261088738067471100667956572878453407055976770929925335127008165646528281110401440294103275697954556875363813759650160890115452256765049520914075370260999405541899627810527723590304155690278491863035719725304197616695721424991400443282674319703495728848779787392728002306654000571412701243282551961234101408478490073035661830588605252167179099582539255727176498859389915044266132675684152745067440807499597107999983450292306460705789474114780750213714897294002249256045841352816205680657410065957664557571533921852047607374924765311797457597639095505057769825081742367334491920830896879357303145791185984257822329941561911751013791286926982782869568119401024052284373738791504295337284181753910546754099405925509735158398903456698037086873582070653691111672315149433435313908081006291845379494117042414441379628802535168785026905293431102364504851006571096177546893427978484506312747963912861232338797603171946487667625734015735193667223325552198243300623491349563286454709588978666893744695666782275515383818876331611316273075131375360645033024262148890486950917471832779147364034362188246127998903379968040422864520722078422042636669967950364352430256045390071753027360066886285205142124794805074534989399636520837745953043729382737303017533590213706897536299905214872268872634813911426626770991766187994004088229591291825379250345503390015367881624792543081214031370591922042103204571752099411899529973643210224645221778981856949518698652005645680374718022946018732144564307344874029100461500938792464131222108523247644590983054228738717816378839150117937416300075721864656227891823956737665810229533309051898277998144967881280956354408617495060057872588464991679764517727524801260294390522074559457348149999411391345940101743108282299403050169068692089903003865193532645472437782973873622970151854728230901866213849393810861557461355191281847576378937589896560346620454987025409328873675968584609972297596106231267601622068938864978991663098318016400723255797586778060590519758623096792646200645328238788062218624280077393835409746448652952694668845577608697781609157621782965388943106855098709222969569406944291029310295341604814160507183293828299978506913790838769728132988630333235906352233564975121781435423357122862336172120242157253627058503244328224736002497080428426900741459577929432887869934872798331496742655044971942459008017413390294103524908760977778703797536963743475952402296273104806817767351853994451067682927167301179106077980129686203717719716791878383824620939616089063795460497704615265351784966118139536882671610517354914309466296000157806085769599512147219794471848089409497201345791045493644458846165454275086700404359889251966686091739060407889252808724743125051041833521823442488890755676951631814312007688545410193365487668838289196920663585016482441557587513162177512664592350692256727901469711461938329586578387593486141756000010344157641215687083783840114235022600441912404592305862976819968685858502294126723084690915009354643726248730362867631765308447755030073147636756442252565985497182688484364514696310344809026941957679685566443539495550923643195903045168835053891931915905797027024362293538634429298665665003404468074282952476561500692832853112228736991548899315828515704500579081665364664521720280240797082337684192806537361273953573993469820297447680615248560214915646053230284402439261400623389974650101331523628494814376994283766945578591090572406944067285872525116351484553971540619304023868644112480652649836751359989136631448858653646902897431597485656406290360856125602437307608362115441477656672643262213781879223627990392252894277341368575228317154932210601268546750587819732703145325549311471316039904888332986272516407629416531739195214417887599264658110278909246811112914998910249504224322673387235298025896108448690482010562017771736246849946750367354775620555649774689491421225219425524023295833743306577111581354616761839196701997868937773465462955260086931519322589383822584927747377323828748907241206159039939753293731152430248391296271681270534458112011770252857375063157231213116083087493883556905754797577619138737308427764054425858464575893687433533179455665001532465499012881020473177526902710172282835105967011871116353875426485678359032454374358564428286774215070881528488543113538327006143408716178744218251997897011966192332256356551303781735368580597017418589347561299165931471670407251922943259681814320688944078976667254021250163352613244738126197831150534072809189529158915221940675967863468196601392346524394064761898824371705977810083905775740098835201362695461606771724962338420330021299318141705203804310176288552174050116511498876270540983101912223835302040976405881777612407033052697960982500612774179437427281335483272510200523346898931990663239332090464771410576853634802747373657295298304861978498364947608937746558197553729381236057948942356725813332873078157992427031139137754411730506163878922373500712853275924839682001503357082482320890575531971837957355711176586658492461711685217649597788763180342626731366912071012965936237295447099548352142387390789824762038508971877158029010702636496606806173322920744600836290771047807172466572176724713690125955443522569588343660790424718052701820241581815731019827146440666076167195831177377740181745228514013623880212244803332512473172842085378967827515337925337015522241132620613074624815798202074079886714673750350856020505357139640646429174522156035187729146272426458616323837170117972561899358769173239691876572096107083209566282246003265738072819950184118838519888723528778674238078008577928687041668770698417763698290445304209200494995213935900947306215067969742878003811582780067425747402668289023806255053747752874290732151684350599080033701036134137181042927985276506616198019620549676254830384880050493216156732687568169970442599681578043602739613261654864088211570133181784421019976038082095987410203979541902496374910243026327444171565907183723951021345157293424072574551800619002743620151394139117008334093961379660662467124342516136079732704958483154324548918373667151578003835751349462296345962902537987335553634427458235386060147752700532432601167094671158150465161949980965306900959638174047976841993916913809273121571903225713397891262444075906810033813591709835737421181997449969519395937726388475158773863538349062233653842962302902288853443807776012640557685370673052586203912374819047891499844281086870494109943036514465437533575844341659790566580346088862077657380282886326513480389498741879076611732496009162526758291978352127309188385747729691143308627264678032840962167060251658243850716092836949641521812581565137668944094833565047946763493685259591889553405690872516842592617705419544163602984428814452906349943637572563839980785963201994138146534653961639189914336021628649243063616446471802755547510335864363956303975747531791984938542750236955341046957054973606165758174008327505632487563837285746283926848741947428574715271190784710983807734191328122348741882752815518985833918122707847403096668780738912799539288194758241862647689443704636142723907305570735219026512603513241704624625146861369640009071700294027568965371806549502944640034051193146139355077204753079896355103516572657392110863159348168646302862879645851518689654936395427855048586913141167709305785647678329239654928921299324803007420233440163265066320105297101300300317474806068633700675662497472813844540551988214270903762534748999646283804276919315904265230847686253617565432054559462342281006956599466884425260463515738169088648914538411220455512263114138468953406478224251708757742683892443142487181472057482957978644465975558263583124249487245426677224723564123430078237415339405247118528061397027912640219506537372026666971658630994914149663166565763429098903915938613540062580505016234078988229303705398386820220654779922848758941224577188537701120835390099159493804514689178804062907374038363829597161724079797068881486818013740895124526252511039044375218857924424734940478929903020048157370440761101188513957051729561814239577566210451950409378875295658470942264973326715252738740079467006292889791348386320036910105455328181745072884382461752654356473727705476741102943586758153756655627254110695999503673702456317763165222959351012086374133100548106262833858128789347338022838142672160154401917018280422148685273569746552807722709791798541405698992616043677043031820868726182982813834056762750435076543076129612513679362945682828201742991054491153283649070654336367014855804793570283510224061407866697174453679364302994834533125314998945346065230128553044808993036430742637368859614699895227151750983206211092498335662743584833970611665335297427030077799535400319961364343380155191506292821041644752051422338533806413775580829088261812115484827580667148261956215154692962569180000240847349460703378990573720262323767841321003755006607442640132395062805211654471578711386265872329031075350485417494948416671844799305043394979110365482187254376739766379386674917129339200902398437663099262946189695360170610236346711105119245792071354470757862862630997892713758199636803845842901177427308641563082712088660503428664308688211926665631571228379085508572677899867028562918958161832579115616342333627504328395641512784770504596327426571509491040499610441395866764427917792514921028715852027946143026514756265942455231720329249247532591050962995968868119750342587733580678031925354808358399565997291577557655648147335137029911894781480824780518941369285317181703377853362320239606309577207354092725223301220003718591179117373212988989962846151679990670857426016212138473933975361597603057120075976331962351903425531893003032459952309410175477879202061038254267724258621530069893024836270191011793202727626270862922189472600074071261567731033607887446092841770087951370396751978522307215874856950242546039047562644589070826021573742021265717199602666083654813139343030018514053349663347340331571892090662996590777547248681959217505764544686728341675540837910570582242167562637277540518684870834521748594994206460985376852223047489061718750227473285376278143845016877721693262795725333296567948641376112261404582238978839851172799714031879156749403816241281953722190522073399049483184619168216444236159255284035507501280914739649570640639300547558094947261181457627485589033690048861097590064494599831228106480579538120110206740755480485898180082347664823013857830071362912419216527438600112320673284286565806843263394767220851044533394213509865839522675912476699443501327551436123196952268812557118589442388497577153566995733177677269946771201612432455166492907327437494367222532305287656670531792890173559474626833834417336964743273122338626975203042100838423346554186024657427676269159555441932168472930723169158297281749144579014645532053057554310614978147256903949275742244690390198659961443277192481948388721933371131593386082507918396132043695534754049101101135682253122156526843258592169183506196165423522510431126053044317029483540206585758617321778695589200188370515471626015873501494120821855997182468388665041243332592029036413874149999298331647771435014876173526221849011863386216955124266950841740047704410967318023102164530471122160850348871265766917198875329111144946769507599151786199643244491610904510539028610111669988773999826792831171414486076337198831358842296496948703246781648473271306381155109743402457817514052772954927887088826289912591196919617340807426595889710937478178825341583660617954184319481003516392714757650573028195065644179337643511313536379025406765779226924038994131829807176552079002075498080355000491124105949952521228881358725205928289497726929829662802364720724085832204033333274271366130595923777806347917951686589734938941940230413948728977611707370847642806571757032702737734570938514320111462716205656598604698972591867093075755670795996377947604976012674450364685717249569482114460670692771908618756425402972465094723708377287761098174646195070408504194121606388964569677729215792174693481331673137585700414849251364809673898360934854474256302760656470625160270016571450703617784969959872203706318181705730959942320745815890542565729536096087451472643724704411568482691612136089916132956892321003856537841974789362445538544531043098935548027178612151571826920916104837035627957564792544471627500574963019208126823554701116774284156869902381789382003445326449756439786517374512734877323806075109304813834673663511589686065501818259055047703753694489675782717859980173231750536810919567287167374256902449324691356410300818170101969749782463885747778154275161171337320043089083773774119770334166696335178563730036681638363752146263890560768991732891934200249260557881662530214206203517979918584941682428967988069994855977875162607794984879950458655213025173980436200361406837580340841466705294532911141950624320559143509224624628681133527921658971307087430781634133961422935741503207823340045223057646302006397981461578262119300762968047859032555983921678891642523790142827126972718768340860271169484465685051340147282508334773265722812209855078341836571038163756866731463680697257773099770421390865538810321507347056218799885498261289171722410583051122885634106626786088630001688704470275444038803952295072740289658096165356973237408446632859942679439704105970474508168460038971625980319261060707669181820659037610849766021193444799475186339411812568371901444316420983941297152508324054758654367843605924520903316755177236925632768055069149282544582855247160326844176451864610705303896247348700966796196979732717905028258041546350300774087225069461947348212097758014347231965054265912664401649301323660220142070672146980628560389224536329857852619294669370580533625858858249946998008428126244518109490502298698838854199603699044061250397818667813034078553363113156644514021405844635496084714769127004456995478383075980953560244423491911201783109335712310827453244495989301434913615158185627367354851431293925299688211068722418405336017600953750625489158452072986208260355193376551466669475802192807338745305776645646024295433538912204828780702531738348093514478104430745107219210023946867475033276881873975661984428290531675033383281245869285617359657860070144313900881046254077585789446480573868328111536842064200929899270182671566232466540297637710364829157281684308661143518136625042675010862323646612497145372884761191147148274223107096230311284033126374796804486819569716128735744211579556435887250078369176569352175008994765407325598352636210297773819862619280252393591171503677868533221272155326716336802263070998884419724624300626962874761965057942808207019762859408170878651858278216085851546762323044361885655221786466643211301833484211559610829814005086835885191725668001494678709700498963384587956668092204589375307429716152389898878105236003120813007503993047379125236773845027484802223123494935081483182365533349535750493666201967784904753549597109875310842835085201575453394324144610997087289037744172392987824548828670540799977679365577449516993715365636141068316195780067293396511888104276548439635925024797220091717949629872506262230847422870839885825551329920667089675781636456159595743814265414671561029850173778785894029174390921955906885184260450271822199505551445986683979563877069455233077518066182514204951910028276437979661240351761975519480636537997956352499277836980056144589083317330607820096852121144107446115308063539966435800895528123626016817820284578946928531689506275628737524985919359326070746159973966402261524013857492023342662871729734082696552584113826968027033036398318225309827309057309538676293898643231080048652932521351030307795033374439024988977912778730623914252355100428087809685096206980963115415960283303306718951637759580362702033031226280791936559233861940995439821269418246111560393584290827289304038009312503615242462566854810487546455848561022927954922292992602801915711617581401378482636901965248281398111830080698120642325796771147397370883085932623294175043676177842256864569830131332461311060582363422518058835554382626669835440547795371411294133440588476032255730851159036165542961664258429855391261265590257451595955213233747693050094791052447922956673251067214883405434825368931709385999718212070055419775768342161516008882045616296659956827022134951536613480469389316055698138620313134029795241330818299878500803198682367297462095726923751792435622505093602699982768568609482535177427895477735411409042944466904180820634280550059382224047612498658735572040141841736331662187873967579318473437118089723300785541113940984373696355039539780291366334381020948116836861340612857586032396607070166135027400957385126156853736704602289126396937346580839098405296406369456527444919720907404885420686708042566946168046098669595787998623770625476457485419413455905229811399547376480431213561088287130038831075337603762874993038237272746715076134002986377828077926066655619241955304155320135431904451524477389279325395986478124538658538990127769083305516706846695287066422671563763575747385684790934063823410318452439408652213429712994433049110859648824213168454157760239734786784655750052171787063655332688809550224857316279237700543625104223879202864646654217653624115703614890829226370797073967957074631449401256247199957315684609030211009577432968963689367726263829152735509081955389466078131355120544796119951869546627320543948615203450728083593237958383594463241464528720976362663218903622950882011790440405880587343459002621851212596692299500514622611805182727620278353413207877643657607543721810105385188696650554285649022214155433894923994282290093217522710805645929475096461900622178118255183981995471398212894678125539974481136633517927724820564462656917947773539586645811448418695000053989940316997251539222643286666915664554123694692043097753789236593231017235899079704571497858112939743005779191879761715966963401244914012614394814563279786139110453452237974367970624317519424911856063923161305373729947354630926406200591057105821864748309932381571599042355953513650718134730463000679978947139259748914856485241775219977146533469646889866832360853936287468703946387507842003093554125241289099226140158093962323240882425066653104009469114761881550354735071416950772878433027605161209412160276459252031114772254858228108079234628763617059700807097173682013551927055674322905084314460237061837674023370233541885940491443383315254548742273014562021457415561009524132882033268107074465271334741728786370091167557901589312854300256080058552061563788205451794909229989905879629244522812139692230795514114429226412424388956174115735457776112180239624267505918019602076373858313303570194068492843015184775190586175315667638293333506833223178992618318713386083886057959744250735235154171038290386405763779241811789415909418767541828514539550676125226046714852390522642292347179187263891343702450133505186353825038249936829222096788824035466883322386083336305919198475873513881812735870255439848400836229907195753977789755174510049080709711191510185234329921371778938581192779372989539557538469100161581082827004082302757550028797500280293128508893709816173916393267135297138586834860850911413664740237473488244383674872942778180580119718974031210471600579620084933673348122578503529637136712807011630489070216576532510285225231569354320890001212205985548418768922881868991288433351154547927712492640359777559046060033922018348189952796466886716760051314002250120955911776935221715748566687431659438292566631727705944854729785737948627422784051217713811598330101384741658543232716984970034270525736100442316732506950936646696133148664543258665851312921408977787716691053422293982855589423374476998732312035915182639219368096823019090027763709859693444608592230707274229316338167788315335587236139439127242798897838017503129872079331367944838469845370283945727271356376485100419550098817969306810590001422696716182312988406837129502267226706765222242009418093182022730460544293699585263449065470971874035393764468027102089975337786804663419272873542787686737834529044742512558276860346549919722622450393140122820409317019767822534129927594828515917766164581715130828977494703088515458022987613417258228177653769894686642142714828575473119942876352940315344286765770452291624079386121992557279151998293190951901130085366513114772519524075936388895645100463496292945775117178092604781468435379168676152574841963928424827762998943407680813658543627685843672425390558123754751352017596362371972338286583346978006843092411165720844462996144963848552946678570960025175137110856290709427592165796738426951147638841708862595994594011429572344394640082257297442586224910872001126854116785765443062405329103150190424824824722936312818107460517713158208601040482575767637774906825899453218719786042976933416377028169182854257338428839885118892773856873198010550221229833165878526078153987343478715523166671384310067924368263533715677074129705053034343014715743191224122307428743838923060227120151236538012664440790631377656019699822533823751442034102604383954384529037029082157149824924910618348931574354975702999179887427680931522250862990713517534236253244956420421244314085453294722478557859587956786376969116264138106871844433772194020935997089469473505727110249263276956462576111389388542720686511452652873449741671978754745845319411075321987200063141669438418356844602249140989069258514410111503848384388227523699271210649313820333653122925648294944283510856818936750340588434144440672046251509397406142895287278182915590001559773853819711673380831360382388394234830491847623509899295430384253325008321423957118201824832909759586390992791608360021642220282030663229726521129217069604553558676592623515553027697937936825873197230067431350256807188681368781832121734371887180030816295463000616708800030080472773443869999065973455818302036307042369781817381995351648045730158272057879735542289056543546704836396392413822800627337167114601802786262229306638271718976046974649458349479036665369051150827937894561745996314356722494749984662263691583563313501819077379656831932161107338920207050622563306494016738971446180039005385232415376249099007750354916676783341590110590557965708728940231563284009372993319423091804897255765737153979174304900383485478813520176168617927306967897175433955567681616124020508745566064694245353444127273896924412490156587274087590574086301462496214733265146042565394128085939084152652109124236547218901833025326095635199753430728548931636172042044294548552894922976794631727659229738790854419345653056154404526302206952246357830044759401952383936343569713641630378329249696913439584293934353557603958717971867537384983348231467295593091876406692532656922413849931356012615983484721324061561308812382682379109484665081129511967181193527477169486618529106753829417557893292870481681750391609191841876984659559093240842721810403614055682179718176287492481667510717708923269630959827247638205473168662061409022574060907561255887735231451909254173798657327602468352550323351348776046904203282347532105067323551305670191263326525683374398571714827602524382025408704745914051091402583482539036240020330009653796443107735470889805465976034500284521063467379509551125261725865611461068660965944087107714849512930070309117428705327116094627712896365071858554991850564602261425739486027829680813278312424690316876258471171940583068929051270098491984187501333128808622684023731341424077715219158369888523990823267715968560774441840364603526814274625844161765837313127424829410441044355418001212168384876485107183237630439511523091822332100059188711110407497773692199570260691287224992128814734407380936236238998339805675425480218053458578146879952075018568316413974399459401804501045050559971918330133651920353638559420866255482842702055999114648652620679611577412523786751867070655691184939970598978431036706140143715310062740681468766346777673405116237556504186736043200133857846730420028751521224433793635483285326909514421922252742855317015880764925660725300623889308143277540104383607255596447284112510319316894423448341261665777398625835075068471037060962558485907748036168576574416017910676234800182532377314033458482475599654167642025284620729165929029780291087631263121090348871225176392283742545494533842652315881766932975461694352853652759296965492249593170567548708523447213946814659064150463772334357901746288362610104159919721540237065297691050851967156957986096089920048725378065026597079526025412863991080417251705360146795781644880797170572430435749973987137935076491595074847455208549673889004390509550562442620265597436541963549686228645703844308444135234298068791790303950498271940379107518062371831493723985405786330159261453751854296969017454766682942450377715222043098380521093271461946042455893497843823764801001831747934446527238056137136198278015212279572622774815345923820233908817586494308992494741830415120611617303567859654840151354196041677168160419362726520653915689288100095665014705362710865853530180528403343831326484283816809642393933277451408173047025333239373770000791486655257749448743390257233390796999023793845121191626486146152406974977868558746526842404604789034469071063184997276163666951488876529510090423562662511450663391530122558732995974809112584224476127832147823731219499007785884129842884174241125297035303446895133321760427065530117981937016998777524850243001764168639161216106807317607094678349234749835603129843601680431072043058777543745297218981368797203887909727300296772211636989952568164937501871202667254466910900751603865018767808899163775952621493859476259745682372427760629712415468522177069638924897557128676219833108615371930640702574110249301439014622154315009348974752797562028452302877859363122645345735109343103964332100880154183189310902896648951909238700936897447592430627522275958972628557851040833678711846901965548045611104247491839624853989058999811580264650353618926469864664375875969017389631651874253111176386315245521893656647745821915737358536752993139633558220145168194411372999070179016594918284115301282092799684071037967740973080033559022679300255038668586550307967387415367374848972845986724186186031442738777339024791384419629917417819640071813607535442386794942461834516283036249967850891377899915259644613456692525766042015661344624896140763079641898401492315323770905683417024033623404535066326321891635582337776147085800658181783621925031013184621508676970218877430228094122869838445873699861895733682558887768817858050611490101568986821170921395840339682600234446881503891066733678187360876907520328783705651164336088285774407390191391017578256744527356411252354739482056306888232645946813220735507956067099725646305612639572630330398519808784089329558524153800995484492805718606583726752253900931387433244167539389258478475513123863177582139039016083068956534714951844470974581905231471329535374623275900236766087963187977212384034954726334018346083663608321416369752419170003326104999722416642325740680488844112808794735515703328597930030397440611532902056110506946139358616666387184336647250471848555940825527861453324408797604711515413567805224662346323632272002864785491999750244572801482424395320487785763424592110161692506475490115131979018662891011952346497062460608576901176337241058648848748680570996640008565925358974833960482465882919034273171228438065724707993527511731071731742670505120728094381480569563582965498145287692223641693232382632960177744836635424966083382176177671358365441167816088406747576521239101228832661118992713173824244339002216814312161947346789767030199825551525968687292117595757505929060667962983504855498261996063974216692899072415716785046673574031448758136500752173873997828328237699036946282277609557178845845659501471462788486390871606162443626495465591872203518561866193302031676096142746251222191139506027646458273367061301049289636337068913626438603612770521286623987072295465535346865669351525737583794463525163754792219640549556518109258114774006802675966625038810874567705747054061949697332170098465428182050049316570572028608199335829803710734184778567346671647454094911171684338951411192866183040204140295148762166372881947782812344807206930465171056864033453127173454121376821086600043894493969745218003239050789837067256723559694317971002891005178698685402275943321843878427116615717035246278625656667069493349989328295400059776345702355223938588817532722916349281300676577336144065139894732070742473628107179612907785818187569664697609435990008063362314743497448747069197766470020137924725460111622191013764566491612697238272103263993511490089190749000477754038690339090444096240151747015765490324495299802410730738368470858464468112744384291143796158294623396229811804453449397049801087958730724646693366514540400271707461591416008198539529828563900960882341910570374526113048056864288630243806831109225264390557743011124237633150748465933578654942298185932119373239044338531833189320873784521991048683437499393601651428153333957584811820153342226674730661358533103119503348481299420962725202049742452704215588817061496320696086092511793689479869428257725504633792234416089069305046439969942284816497554146206509302505558582439948019486720440122478159119628644509778347608924161934919985762124809201768793381686510947962265055610072401073450729697356101597456791117346875420447832432842433685313902108118056083157478757592050348424675907811887450275072092961327516674361295215062712854933420883608280986411222271798408807864933935213636149830254656961372102966359893096587942263923065269325881346736117576351958172343850416647846317115989622745121647716949981969377678381566627699026168311939838318751853973621246897047029460025409872370425152135623617231419221201654202277225740322223969657476845650456485234396373284705897035884955621166515195784175273764404864550423382436766848323494916963640085924394014722547686989332444760456332873670024431136934783523586523080235116749011409496167003420951151293994969281759224499960200025270977659657464144833110234250323959684378510111893633945514279898513533677028240237183260103021734094174317030314975202888005492474903423693915121247686362211337202411098250103026802682405347889447879049101375095628278820197091944396392579224072248230533593736868341348176380871929144188851163083686557680647744689400059946035412612618926371911791364077385910804654561326083929495113533424778698003678451909958537947469441943958659129322480147907732959355681036436954564606392183653559793156527938091679081584674968230612237852978302010405880788349446605973895889605020767956645756210280796923540374615456596118828204425623396143094814189177344662733324853550058794092268190791274835790965649324528550058886838561663381328202720574816036531037203861730539110517626057638692021173393794311829652710394506626050557129990594009920546246539381112934292343963128144205515137780822125809365791800150374718751549383256326917037766842135150073047122194575614045085337607912176968849029049699933638244996739167964599033804263012171561385722480469170374191083688913028385265696155274961017780539554955768441731858369772944303921502146526869808651036918113643827018647892525945951293624501187481922059518424309066582589401138361532593137626608438270411506446698267753201779482087823910710385297519208557050356863772189897396300587281546244298238145796143474511670539938615156106255989101811913210096074597912136114246764195106986956144639165669037983645128522425606550230894383555447488502739507514875999353333768217913585766678195688885837678758456713343198681161138980729176663843509795953060490306094767827859089203713533065203673932175290309219110159153385015786135215919281737833060115282484155651375660055542869397167790425074795531418374825334409259844421078997518853802935717790766553109700052149450654187850947406188653921688666014809566507310734276517389303916618705004963162162897594736056802254702004704339103912860394270367123800257299180926854332438583606047258857789194139407212599848322850083202077659536677362942517739234464080712801498985971823113993996131193314568598692004728778707398319914325546905509596806871185863687195792004649283962800685333657321773773379050408309218871334102272780572599351681061490138892117503009357360935156566439852704912397294968556292699628110142039394072541678885450658616048257537503997764109217284667953837785666187669929316074851710854459026777337886368525756692973894215274098623538844584195032917998725536652625150771868909968783181494144354027764283933405880769491152391556175921022596660145397227189397159342329120626570476088002235209967160912138119048477787495698570191367782036082998315340868302558284780930944894687920059872905127787996907043097091578264639830577806945136545002768960459766923141726520740326735828879936167118972905695629050906019886191022118760841230866813300715090534589406069781575786768919803928270165032426835585367429716452660145333927258020307113292150982627582987004321450071165379418471370225535754539712307322840298025350080970665120127081863258217645643058269961451045978126955256934906264967867384091549134687766085477335873819745229148807518966369780098821205919801669207006169868898616205266404730060472628217356045601604036200871222382671171308862846425829920014120266789424947830762572679771899155313012387698711656373677729270349558793143371973171211821170179730274565340095965312623034397465791209385874662009983590634293999263602981183430247452766350582056224707821520291311237231177852681847414721984927289737845800525598531727656111246526171298040320454758219268831217091833653529534874294540626557152231889445701292075560336885291343284609716827929869177230638786030240546189373577581403474485841709739567908929767925762345536371209862493389515514743729955642891879504002636891685455251768770994289010171356471503027434137188516109635005513057898418693781913648159547418548903040879143687547662820056998418531448074992555851639123207055685643883164396155777122445008807359725036848563461330264628910911277114764074744484735927081738688331825926342120603165618672586700404057787561075945260523302556296664558795892528141708671049938620242596269365270826582547229498174282028669775840254372651388975129629814426146145047511673009829048335607767321744587174135106841700619645255528905224667141195127589260083051547172433822138276641519692587211510962085088385580791214691486022075484257195952543352386227027063528887638786951918096703597571944947921291352428687329257140666660919098339531074332027278106273551374911377337334498135680436296506674550222932817094843475759207162634890563145073400163572154824160740372924060698680058887961811316353189602859333047140953803851829779861970130952730630445711450715621766584548343059865997393210731788814039792785823396445470373370701185069848215817001223809669150839372490272825779425783336766682159809849653891146969539128006081692704734503019092007061042682648225613243711858018305394442361882893885985138847263371408067118391594887993447445208101874894733059159372743523787294509436287627763255730983646412620202614260067996202629917972362410747672062494943937810678409317587922169610085786396230460687263176785230551685738526601356570870845773417254449085436021927763019556590418953781284303576264767890724460863144606557590469148716092353851214816062591241997846769580890410981861173796219171106591709165563450698905869067485185229062146380221788971268991974644547486930064759190329957303312347118797015003921854855707816742287746165453152439110939480906567137962989387271187094566321198342028130212515745865204403635971552123563498496267937793013651525208046109876738708229608155243193997776257740519794799009427936892365259193865147667836736103634792734879607829689077288510704613847504569893019249015828559887792913199651841888385556323257971651344301357032267509381375835787937220467259143410936435192613570635706672467951349100390296859169265344985875944999508157055751117445903096882683310345662685229748105227671592810926407096273459553118177321693669627080470552534828145300477122252881514549538948043191285461302015489737969030487396692886715668641049526592620142038569049949667459836379111398980928551215209552578661051788765342177972425790430579638820440582803800990622728977606798532046786769176911179997140487328615458447485556900947985740780689356988454229579292826162302612738370912884360341583240925574354024991024157673135200276842208081908498754321243201909146095131865324252092915296058937110183325666917152649659824298411216318909633817780589279007275069141286716502713680241736226622060064003440841349667704540017241759426361834889124568689417622899484648124510202837598982661153203389714733328917618308975776163841869629126619327894517559379044019726681376291475557603503847842845866795802399502272718541901701100955585817036213094746030264672935006059555063560989590727187112952149768108161162400094004820897234169603076773211110279271684064989367735905608439897845992182927927174568608097700400576378121410939866662231086247822345258166449456539085659823223846281330742225694070379430184545426212215554574041748303397194417526253301617184395243457759913809417185799304369529111715255562226784182256266354929506475506288571687046436558949514785591200279252653851315153522811217128907463649382085210924679111061046296287586231069374595079029908133894887122741888541799377742996674873198490880381125852416206954143399041564421717382857247103039823558600145712274373801473594880651816707620242780328177992141969066732464465217427934290017838058375603495390964255063683871404931994924413139867833844751470617283768443022519524977133595849640572172590369110762727335619683082983273316263256519409473488541467067413122119503454567233667779506628204613857728616485694677542496315566643662639909470353697884425713127262915004317545592468414995198015137026495094733644301133820282445278388751747641202260217820505587812865552213674550078928940726076176070802044336415498550803206483760704536766944189804082714878391976751885051280863549484371503999621098372382769540337082156197927719713123442697221337990231157989858610107266113770407775382029860352698048121510933646949646268468506669788377132636780555761743180262387575803107549740596957356325457597064468246925029088123700110262587802358714193040239563953164495204560083527499737702672354188354130711468466630621392024187878382700248594085480184768573004396609091635113052477869541265477967035130313055300267881765302837173793995043855107025238398327186591777973197762008915841160140220246406013824115882439218763356903207657899198218584724199605687398945233897372494641733838535597512259125886348005492344806641075928839223711933486782857527834217219332478673237144748984176021877480409783239300049441428998248063242862732452850862495036379587994549942016959940043170977502597214385715803231656049623322570718114968124678854335920356350375122204056912155135038708625288357328965748810931433867982780524049609130625445622574638331641012943992180588722676340623843432765208087290138470694926737954027992572050996280864962888813591635842756592195584705065440559110915476403329131202408152416540365757471082383429898879687543700834587245575236332594721263000147545502062931087368981866519746162383571511505651902285157437322462840210773833784413637577873409703215530903029734448483740306957226294017651033030749298354377379422467937870279831191976068835636290359215663844137132586511199613374739770525525904453140540842892652505664568606961185423881833219189500045089994491782753970733869926349149214307322100298452540928467007527332302945163758948114897532265453754536465315503156915583905277158596557440204320955826896254425494917219250209628919456469086999908677343937627445138429970049186716193189067392662415405278055702890303584539908677705024519411731272329795478864655248441277013639891768136142358434448914720280510153014914461411773337505761175799073275148251927295230880420933346247408587639601471161213337232946613060102037940590353155076196405666652018133916931296696841312539642474434036339689548933550712771771848902045669746125265494856674571464169248720598178415095965747655966937972300629233647506195980853296188733775036002521281630403372868166715130182587800210241321691342515358791519046192033296449567711257723861066967964375833185682509928722858634309897079857958142222613841311016587428533708194888471061897267660832197307022709541949038299008115889564810078236367144029199520804844236605905933314420639910881035669101162497851170503089423298645673304098861071973682674765621763228183788256103000874806106620739437180997212172605824034392933144898382106836061424162168544197551654878180127849172749431054676361367534748037285967582306613757518571466680761481369545004244875678935490168930002002898353074301789705016793298778276892109421884629697293146261767849689309380213808043005880491140647848905417350816522664336435759460407362501059920591639471936632903827331785085160942762406593399648232851787414783820623290318547217779302095248427318324459130098146257534479509806192912600804888659973756674820507886656208097742063886768851043961680563713042893833046967434823929100743304222565321908770479638770598701954400383121251564753543166348441831838604664538766130730935773990311504632899226778758362636787425436874813663702287237108903662180850371937633250071546728561077579517533158167450748685586944160084717116982912527290122570211939144319465617902741723232099803592071770572129413159319907848965692968061379622271066466860998493942534990179462832209933090862322984986117095954799116919956169274154431329875507190450817054603357219378927390009312434349147633903607402745477865029338060410196815081279505291214391015762279583731095779659554609928926198669239124695314201023806601884303032111695939865309199000068791871348549386294649040961932215687288507814454000997869081631133809558931894191317229448953510902923653831631146499890152426459959745310106941998413389522280892729132335614903359805359830128680439797835705390611868865252987222242227689860118122302119073422210212508498636865669763988271578223416613974754957890227021381398986760819077334311409399732528359358084905040245760091872576257504514634797500414596168967981435932527753762758957619625744613267293743764066617850196233357225060436743334805509341817874938401834972400435668026881088076337287985747774131762221229935911387687539442566613437610353502135580489871307204049135620820898134168852089380168013656500611763468134693346456150623283020624620557223127664730595095841717165716313176632601758045173307883094552128083321046101411771469970992947670284271075270276484594893680277254021793126292221286544562411433235313599848920704142554660786170109380685645181283097661968942450982415133980078412797700629937186308062596221471304003857882840240943263522639320374728627879350087387152794352944051057381585392540199644990048671911017692213199585166189976434583331673144189529467975471424017684299914437089762164320374631942102093084633767512612475696454821185131313818721873977389395988492725580061856121616409072594308498907098750368825775578264024401147641592534092048048438262493116279778417988881274502577585006498548992708365420509358212131835037069217759836608545121044236401870745820301318457155234259921072369354800022279777022256643754991510516659772607554867970988086046501358922737294674024953583516305123960577280986958029109287528309330952826226129198854543075430303372996907428545123884087084344319392471708834295918857841601616711999337069897725036707477421173163258806426331858112900628490991718082971051531243319435987934207642067638688572277442584288102665299077624296435314062139608301498247988451040160536475710040690099412998697448389029121548059000284492787297357278088085416367393700514087542584466470793801876752166291928603707133697933678050088977802195334150491053674073671414730984088314977612136607445018463319490773171513385272867359378125592928453168660520560706880134373164981541599670582350403267580130209080860359184033411511039395370992991910867443005597568080237442409998190520742648376934141744885210446931113638698571474954246010918981435479703961957955715764037319052535037318174719489507049747075703990352736519756550255400165639909305834582053364949045325919111872822420102977640323716187387522464370987665257232732434751755903688900535039429803047213195234354320110892325164508512228303691723952310870414044257381281169638635029119841520511306109899421616182231779062966785466996907777723548745502098558551719836034048304402909038994664457683872968320377999717171581294030336308783553794728894113406398349061016007876965727859920232861951612616890286975117161590525210828848992330235691410700164803150637515763041728748079963591090528499335037641692058968779460959881561267926705661781357328745084936904654486003368016394941050582091993389185612466654417244195914860089379654479177861611489958249189774683414923435707888775763636202045103976890952393027492814592879447056908003697201034913885023629627019536200346863649700110291073504889134732792787241462071169501273120143084179363296028024513535053088730847447201518304079282450298850853463177543531085260681981620106487191251457405115587512405882691460809430625420969539767413328144419486248454691370837197390057979140392777209695201201631966517748260937009010145579133210065549979606174533336899133774805537932028074959857474145212207491526543465168745242078902190694864392571148307688057163355364486293196421897482170337185335529346624902023654083115901684205862292796518805372115813549512647241601091428700185523634940924397939616261691453945786270755685172323143675556567829498840219470091960153497963965054729233489082120024390678931392156861563072278019828122326235918011601677391359621952932619269728819829749034113739193542440505071959456214498799548312958286256668962683088915306316567725005395957973954025248164749583510840366999323976819257679922469349968476880726187403200749024143089818639801504002106000314924233207067025198567827767341177264243366829911828749750208595786923484253005605623645048972910005771595754816998478033758027479541719810788303929938652272426815191832491225475672621925380851723797727080248064036445453128786875036570707805744299163310461255877938161111281776303944992554456386823754303131491774679280330573545469528063991957970800930391177608857586013252628253978020441929570108087287749227491720090286907554626765425695164788231707458954138880293339162577749233917214840597791907521382322537184479343115396771517087400599462371870589702000625492618985709265139383658728105350664602062192423410335508186864903716177404365092276177384833754894921723358147711969510128942395244444052556169524722164442565381768452064764555257568198401816151723850840709989175078101376198816668249098025999565531934532422493996529488087015219607723782914480593629950130759407290063152768085443685320676732718862820112796553184093693762894726634897983025999650404477577036034504208007822356262863782269224875177112415034302744380754456481916407049199407005742293000389716576018044706828763630883904494474572966591767827968468235325424069649580809024755282662084737101714127541589245436408831674763328537111547047066577845686466950723635768636291591360387482367704454430261877047326293037616558193742496050592013357307183610297249143815905886221999628465149645645449875942754825834454516336789485607064723890723812297447888046879636662360440438602835213894341891870097457647253809940907450446302863439580175505625994551475525738517126021245142300329459691820205314534942028169076906336994667379690900781766541230876095215825530889392917315059000557535408653487690277343084530497638348857859455286925850320013145131115815690147674205401403982892627676130599049457510348274807249381027757638970374382218291082878070782617897225247305536010699644785845740433041655258939391071773880524655818417608339105249955515247249882657296583365957767726603773867900094595332663504532784647656213576842392854841931843979694013858191614646016530930533555692760368676587218699393941528838355788209666271454447692246405599162440437675366726945081079188125130752188125347559876185658523001539176400494042501665943749685420344431892406152725425510269426872510040259589357089740158308800628033824405327753925425293278069694173803159461669934512991567996939920623988528254388192627108225295322858276987501093763372044916306075491994240800801486207228027174813116313744644126306552597500805621499595103441707443040552485370813907830454614609545433928061237915290164968515117033607323495607074317426246686709704451663588182884797861093786912288877000048856046844405478012951971957435042423421995874439346163180455747402164780716626663107620026778288764438770756987518982486804840081649153131848442680917086403487822246356523999226279153706656916922405771960398423402482510499377110075626776303965363980287014101715552134969758097965963099277079644194984945314464659629301887343689099238729611773566943056411055789083080390538336151217281674666082978775375438722262550034096090796017889388024103740975960926418401990724774053828587750422667206821136572749248952188549189799339368679490746866428143171264852063611837009471377340941590849391122681576319445799553858402248538429932798289501182572970353847581820458526026716006032301111279692083892105101312906632216036627847944830586725881495274662042970586228590443597122614682639948666993717256714364123594758675002828084200704658733842747537353066664209812952139658917763925586834695234318906389868284364570818371963651990740886813120066139950442900240167385783382792374312816803527104548010904272074926302073981136606436968784120961159172328439164167472597231527392178630409163070390006967148773165952402482518345604102073469045953489463074142998612971609540197127026473809054062061451529568776317737808533211435685643593685220289940471861697917808826764061148792857908213138062249988032992021371355267922597038256072722292492838918840255316908939900275131391174805876385488157184653218618647902168254531440477512566672455148747528311406137612820948142132522576201326990115894066972162420404282716142116532574268495837800582840804900465376008937029606634011396814831153285296579567717908817728407291766235085838426359719799801036209449079724918255728772748491854110186229349856541263402850808309537591557922497192860442805573381715276686300208944872805332731844895106608238614606347558480394750918261482136534076915107758446488594174622200509875730619642621533096513832232608374438577558526635746701356675747503181750860066757080469972218700357125951221520649316582586782731263585534966996758870646953888113303805696416655848510341413129914561965042632073154842054521346082198942206858398611365570004981183792358711583589533177723918523758811202258144579013827300503208811970453405471063098796765581879230939472641589396649134044048452835366995118760254251711055879291831992880546238373714068536052025206535169954527129498027657416931711030066893003200461357254630611341988889583536918460652403436420894124044439637288844086157602965835545039069476996070971132321625045643382653608217554984137089789703285439896799426391489578600257783203746414669881489102156665285677623572477709051591062077846055523709301777198062773680183164087076903603673932215007672444562709515582440421578451098174720901341082656608983244787764214059113465676969888992491015610047050932903437710128099287866011074358115025477684292133132174876557237771166397460453730609445150456217811888929868171494814072515440115457560446585941777218236298852563964188484305192329788432606594626435751805414408359034328028075825676180695318400497782320251933053169547644431318131087237275573882845891553051155991913114277352061810894144945409176851568502023309241066382405230645053232021918912749365555000000815674579734122652405410667779361149736325973563538454050903151321795457918928377519822998813483463576387766310347573857599199087918261648931655520935856923237108645155208274033159406298510807172251537513163176498607414799389983502413132289019251596187307192862055245044933966855606389641523106067527495630079335074636997442779453103257567049418921727115990554296319055251702386359521987423443652440486950475033125670031532183312819656148844508131543642754208078345347737818580726223536463258587471697584289280452598057901905208068723704842369644138206560202280280132667615138863176916725227928020263674347370683984348543360679610720536498735529645010558898061558594180994288605564951814205138510750895009447771795891930701758576135988721148954716502807740825834756538769868766219829783211501325651819164485935359268264068255573250011630025798671596041791223567397280301610399515192190643441813830932228962151079183071070628361023901043709060091863181885541564161863876011258715301276751781138084067168532569415751253116747916295453099050278218273395581943860521719223702716426004234002888343142250330960263448555468736075354712958248412728194563886474848100555370058884650082479735041403178658632752391278704312474524836469656445341805604530441996231225471080071194589479026723898785103899627436123629047190481185797190244059144514770334975505519866048056532766637622051702363244971946991390503913290389678400139408440395717844407990987050765612929113630005792506264112295490882874846214220268731532004731685972251727993671389753381375633216439604864349381712482449114670376190934715885696540247547258766078732091780694305692174859916030934891626714468241430685239254786654372362569148446771343415087761383644672692837904535040494940977859407465269207247642910447380975372327904562107854432327580881146626968368644175932311950288505736137913330933055406135739122481616835626923467727842719199448939033855079015079404342241031620054266598582846511449128864697197005062252858707595332765678532126474927937527137515541238068617564235690187848796568901455116937148377721798626502944770643258404170535299917260946985812988262553475510250426518521633296784759785761397352950220795539985448332702794139887610342132352603059348458203827094514095371811226216125658627445887211132845430836214486975644607073469763190585146721790044799238206130734689922445871194581961167012514770451993610330416447979284523422301954971875401267415571797708716706131082868949352842320760215173732040671475604879562349958723882837405895773943463126154331564972409323892496745723900033472553134318662393002264154236545897741792019225324663188801401147331676479747511609649092387920915677018917869422445799797598048698396748854907573231349882427580011669354939327222632682111982424765931742954999753354256261342945103662459149636949212088248140936721337779714194973786844228277392001538139991430873431330298952096801349263549350596439885315632047262922712926498582448243095645950274061682630845399930273697991301394832401658703671954665466907680239633321030295116710450065430898269650640185620393847126550741334361106607019427934432291080205066095285103021795090083571510198034256831957388028960154486236415168505909018880946459037579645786341667577724057594061597145867584197811861384305317454288004899929109075554341641623988826556836970184568410633297353404462846029415000795261466056661914541320164355689163851009857183555405657908995883389466338672672704108358189931664553452148987592836222287650103439389539414977506468422906243609802104089436025385222242140708969386076178433989140121902541489277043182901885289990823580518145681826456070607383755383273816876249219499518336478115955801006228310709837631885456296986028206109488544665576534100749243301694027516501576656758523725379705815614211175517365298816683148043927207977188053326324913756854158693745984487467948824586038239636965015921818270959674756427916555294619784178363835249536662026944004428516648138977114345612265403094834454627784459421279465566564705330356832837835616748021578208627230104300202861434378664161921061816247267748899384946845903635868983493902441835952281983222431708747098029210378464984133551879469235242777633767707497553890363558311189451984325555856845213567713650016992987391975641289697006177842635557754677823764833337673579565998276691072772065524785614224873001944133323469976607506251636289342965471417771676646537142529299898177904504797266047508310782592206260210418550322121932147205778417225245351585611670488347316453516103227724238640809023892874258652976350978194241864315174407485285571184949386088249553389481476408165675171819777771310476129533974134064170115051282387761657036293732611108667462464626241432825475170259572072581773909091835252879692320201776403807644088736851153591966605663160389533274943285630710663501378356318489486887854628628776843971239907712711616257100910673173662081716201312471015219699477461877941771156849371089540385610468750594202881253095887710223187454189421839812046020256015424987571242365364074858329168600101158403318419587447037299004187089384577705989220209401391747030108081517035122913367588563858534139242234536973046332388306177424598709974764925401144833081917916074500511707575960174589542097321717081801739838696011157990455781347046127909129042394521521831056457559529570933263018257792629974039168609289091961131150335676350632305797062232232339403848737652989862838397912653588006629056444167910581605955241953945879422530829998307151202953692997971759613489682542319194547017285504830389239663162637195357614074716758295708101369176494881372286630736017150058713843307877537885284054953857116113607622460592321963134995369228969783476335134932238146229652589530004502819446593951921662318426454997174266989686080684396114835529542438481859887620960492553713092840336634815036528939242892800286979025720596578469849199558743674424348111374944290096137474972854325777241302962690546799567685271128994514988825750477253967630326324118764946398645565401801681127832027908955063211461181535855303024936792667160891377639910388384169134843514786821008116706836770353085356527639650616657505094523319491063134250599008661959195263288398259551581097241515753980047305132563213995338583262670510188687889064691618410157835060148118498574197171384307018935073520333817848515040893661687160298324711366073068847668069661621741754443472826689080787472889394873981068425016214033284028038666931547569156015450342021258512116509911482445428757254372675420641927848510253722118603165649932951842653410898738079417400984984395150578865198020039257688889197508290525935080294469592338229892018804333859142914359876004206705972770900826152186766743510734195264574305491588392495657320771773585392967795111001061231103454230155431781664187032321009610270944426490814677785736560467732892770690921423431148577524990706826980621137192377559530624413976057545731199873953913635478438534151945729932244914633662617132924803641530581698835724735550657748540103051234278319979082878506221382891712227980830667950381854425133663973069277159837493677904245538485474202504764498231992413433524269598132191105560006094992868181522383901268145019453894926250204004483919847161856829157662316377153606866447552090124797286304973363364037565946844450617354562103779604479794889612333095839366438625696674855889701081572557330221561650383732640347987387823742527772331593485736701823287732056349860642083538861340042786012390339919452746837377580810057627841958418911126635835125879466008220797114030690468532493741044373280588436689498723480875551048708712982494676832073199932779920257527482938623972482965893658916363063607223852969744476468983382686422275856333300101708567447804747375029309127996266182804434644110967806362877375661494643109578675348905682521451949983453395155057284710039671213578830290835036209293730084751916738013428006432013365084798334641205162972951963336300239867987643118518430920748053763083098315675178221699462769384599441765394683705225237007887955836392952368350420477491373705078144699107443472900321729566722800949459329065165238341293721325821578635843444273649539134295003074313512862756469790868320631942200015058780969404422383432943225016420583020534882868224701048910454665908099883079344923230495953739285363799964734788131280185653306400434804205856744776946606380507080767367293060314276024118393147259161467655767961172054709738095357306725851492712813407406790192294196552671271495118147499031656611531464622185100308926695495566040357767721551759887538408309475592350371302118560504446003626165208993898837605487559999209177790952220805239628691006940386758805660701629817768964185886456799285044511414457934097422359610759735552241104833962541891887994194706529085424277253189372366519720961197365866280031964402502254668667232174038099416326900720337007731816939001861693621306906378301523098719129549514666510603599897944720264492736113018323925794537291295592105997427773207771068713913133833605336108549062669601134913791768636545240285858101466391594917458785386193021928810589619031400087605715200545084946226173738059569533021281112166657015717287412156113134972631146933341065628530171327202990318507157005934628575936833892300277986118531624176651640247547903676421715605802627332977169381257465058674762175199315516599006282360546197435355494848604853939130032497730239288170740237770267236897834363620144366868630092749187102703094934736043110539768358347133470382268478853176448605454915467350432406311524491443495763601056406963693586003804707657393265312714178448697312565382111557379388730542335382182243281041899189199192283982649045013867616922842426508597785031245152845761866114024845632243915599657333714864420511272233044902226338944449354509445644542129265890543791177352849696844743704534220948904159655700073098648907549893694894024068783750900281335205259119272110108311722724822426618081746607242055503709681027798603757192143666817111063220478958130150517326074946805060534113852479104262992353632522946323947893658724169845964075986509764441959052363681724710464967135801784055721194398135628649036629280063906244350440601487460761911725138203331091826000253986763609267977087640139600450917379768441687147746454681025872070924158180530964270360624812913776140545776110689699589996722252986681158555809494450930083318947664484481735579234643521205306396212304499434371598148307362758734075632333931706446784153109417885292306319264562217835427599581397665166915893294988379988127395478150788962533877572570217053208418815341216560140370132299458916393208392351044231821791798706212181377527709449945508020392694270943167312402086931378547361817809831020919931355097809060216898037547860731071114888028302450631478520229177410362834576203887216683892687083316862255406779591997523782241359435319440337922531705786503077497198930012846134424024960601494062248340918056808909497695874344055658178186090842172671335997878656850478855129725819619554390257930009572065253286705355481167148669006603777125214102868393157556182736228182083216982482670715875522978917133344819437779945657979323418352432470785772286779824600910956353272128897813106295172331153819881255935217239811967906718379016645348949111256069331584423208318816030903274995552816310491916170717465330058751533239145149082327579666689748404667310942924898771861666933997255095046473101211961560501841310649864634977257088636269670996158203798546517041323027442319202776564887001710917917837418441520593872106465285137416184185185109640856758905309041267566589912813252577816316695179893559105873046084188220243315513303422141388504973094485965148934908032844297767751948065758312069193650866656644897367464441128007819715920793004288098137322219460544925377175488822713366308935476171673137587617748846318733016784271779985771700240767687652257901955072980405355856196134327183093215525208312234594613148197053289260125171013864109058084221924749748188399885945680012242169527970635729719436387089860504039059004282284857524313295383254744182844038370930076341287417388809237716312732317825276613403552469713353610983544694128428006960352552467890679163171959711082433334630513649466523736536450308051846274132523487577001867625171531628660376598130556272838410218805302180733095612838314618123411274150199802226541726482880267605990454691573687632004284234595927872038335402484552312168827864558200274280244756360637370618170434857687153113777150778446219020826289357123154878907488769026590614315652359450780156563023084242610978767750635339915742893481268624524441775549798650054414605656617670520955969194354558823203841566063974380158407549184310948671577342370822705723621990534885742494092816157500677372653706750244060713441404240183652302723394930157457586994015954754881491171335573372584108994619350165750487629025062391410655228476264321271079672393052084070990937320470643446147737715688068714933723784367715709153692146820432116818091111157300203740714081175833486408639379186670891221941858534142911931070372258988489192730180873915885890705560633799294490760892383199082222737523145749765175500016044266587671137580686164193862860074525764528928360332123345426316902164228610513410758501367429225845062237363275918361415372337492675986313045437806884334851316894467615621282287829135998145663557103627652068954159155380871506480627348941000348303250145556891137462154407887573064496558545222576974322549888601806473818420128421708719180257058337465521273799975673520804781347900294875277144994010332922180263973065334539832031316344356389954377039650975169861499844343011641635312807423842037449788732407221968487838459745106224607481980954235888099517737750728853543590952558053764032358048452821605914773626092690519994598528552510796378425605044135445570075673619344340349928333266311404142160743300792110494571640212305742437452933040016912099772195823429594314279779005066977166993237162100272174417725070956840874280005855225620100014245882571149225960428398280060795887872520496755883895720272786957399140381922988288401898740110559290850182697604942897419379955772477893892527146689729495666348582474089620525043907310496671951495434079782646871994989647386813904387561100600719835492652423828201327616675105637187637309171410324208430674864279794747721960863888231426022569545720829543701738176965371413212525392118016603223842365586557014196295822481569119402106561682904218026476921297239953026601310110566230872358939043860902451030910631091991146782945531656657868398805827930166594325737387799659253739200550297883288911830436459427052356937365254372152306942006757339094279363809059498536707033794743596738592880891886632506522971115524479487860395939769917531982507709760935808180381604002238354510002985882258956279286876843915900645746413594652025009124938982329965323850077470328842155713812792061315170166566956875228406948744229114363047090504032666581687554687705679250169661728629319276478781371553598614375340826677289103618637598966631850235035090444055764809014375030009573437296156843638131422852615420464098958771087882277681375306257017149970966658648426997885471218217394201892048583294877934510125589226241481314442546200499119221182792918547244148736497853365157761388797306606242652198682036987396966887829215772928242387800955746886917386502361723835827888708858635018515956577986265394102859475917746928516314511135372281640209325426267277153736813722306500796371131357528244928724307839338843934771219680418410671989995543662820199270828850382264032756072755896999277987410993621753980701090892008481919387217998949105020372387879779128415301431257225014964575935187634912598324903245771118926207375211809275562074449405845196950924444410190475397791117593993663651762560432642689574257889162969822438216052473638156968332781274300810597407386184617189165062643539573718770289238718345069627955154906716515195991549361677097807978190567293155657650634910436923572692991798199919394721450861366121271075847177836336696892739923116287205449195186479034183789150854863076458302155977901360545062878008186977591102760331527301944510816313857271010965470916293982874252818159532830447123018460448807796121978946378047523812471359649272596433299936091016384519794064873310024390466777892526164869112790162980019863829989645302855891737674288842564132986427531802999184890080277052995563051310526533299090347014921123717854673922735717341975145326211431121600428654430581579500571383720073016006616199825247323824591987484123132615997479036607003024916303802122160235450121655379333287795862452265790431598828211390809438601958782052382178504376548821360840288373419977820031924144192805120860875722452528161565106640076022985631537849311284437709994083326047310051771284721303005553663415416245737647244482723551096563188971804111620237287863420684615713470331340352882620245519500922660516574296748584203315820586752022007048198867606451181424125947131631167586670837058022862819203631460343678819186073740981143110252795133406172229956846208196951649522114249817361137880864948260601256238405755458656899737596857407757441880619186469254994926626461586329686520404907775358633709917295705614303404521871872436871832520453027545694289873498277521500994760057819322582841114201092135061883285727304279692279123831131659778280791055017635130370663267140720882547007596547810906011055243079603272409014718587566858525982889522872817486280803082004859586120119075664769712727355453820106568955270105300391668881745799853862908332693823529885506716012418650149652299480921662838969689845661239331401077957653337332867782622674270675552367385618195994291141749138101263128822087711365744432360130366279987818610018060693917381306019308668581984923393407158988379665465927886801281758830074275083556814624401671598493234991491121718909521771065632761678901398668131661546306995992445669489227877881466506176128467222676330589558999837499326178372734443569332358627435872407864426742066039420436803304861915323808944089196872159470257991846954644217878198271963514149055252688504773803328824762863751581779124687284007438546970494289172357520224386255591511089025502057716747235922289539037544035394633527510452701416381928494433203289011429765585100077336441608733317575088911453701934140750551359112259735752806333363722081322697217048995703009267429514195508057620801066215068688336872141523476030561722509715588415683696562992189117238415279417904655719254792323323540996657210787627918114680844495912910005669623773352984679333463396483970036907385023882514479630864236486317742949577298575469098982655038486144883228062969756595733633838560475731376799143699310508942281082717146860866825719136649270490336767683077706433664297063707354245119739935050775875412620437421665675681825972677224188169171357122816209382369893143093362987645215274101119560400479951272124281337137844247353354011035057236700355204482070781598736960371801071555134254033386297365189720817699580295631974088018916421606491472343735586372968614980510804668206708620943108343816800511931219466573371103834232123846567268599337371779318767695149972920120386323017187898109934220051550067808231501728235443621151431132717922520839708234565534343462298933923573616167066126963225961476019675090449475340786401751329304671346945711638233835382865525709237072649717808141282527789210892004518549432728220396873032370368379576976802404626200743351936569332510160967794417550613644734513086882660822080866045879841367018114671193290656584438415303523428542059867256739646936179540964992845457031030350794568686268520576672754259910852738417299560549832219210748114411944545331312357863480712886202457995803530484943013892086673101682080826838787214770306176309888007097080809072917769557062908214967816096041892767924510195112713053594738167937456798936527830508573976483529743092605940922000465879671803087962361069981084550965250020332481924272952338463883091514486976954509551895094905873493193892157043172981754468906306496923545078793948623091524391876726558174186662540105678603748104759691243970714951573269920865588460776685329359631422978792198953084964925788489930480318045487901261400589018363019880385412206798935377152237339383053259939890444922908966577029548387430923333504842664736956361660395984975663030809979825490445922951286914876882940946831956947758430317491216223183167952093677126961819754583647270745327007825476760849284016349152536592663884409312555187078834071920205667638071989804736895854438527723578136411324117614331432618740209256793036349843800937568395632053409275050069366558790364980360601459875980175869660917383580575324718124001397734917956183111932225022292420699678820077870985113510066649321506535604470464095385091893935548750353630552645890095457887474723820288801796745564496659843142122365617748694045975616242087018856758369771365954715348852378544625000391397431368511499241696949583049627646868298100200828137177373909791575649913174936599482047533465607632269408522951401534303498154071839194073070987099654245540567155514999047193841809112039490272837411454365530862373304875713308228472791840371338147882880399984307958807221599079074650178716431184470247504932161993366736834412402895228302488394075337403692499138836139555168153582391889293891178399271728689223565563536439299441592407644723824243638523861616191603897299945264043655148863947359343154410883076194559974905720019597864076898120556312592435857317136179206528479636231341945971875471668500563529706702469935825739656682109604700840421135973322904533392369824710753216567195003641372867841646827242233516815362998995782183832245842726313926148535984914974204707002933094586425224229807155628185918135268255455252699160053247418240816193582574826745058980534341059414636155094134886326195316998305674758071262785157804315018739677590718586404863184800583589137734462135210980567142823422944764137483454289121121876419974281955375093979213341522079708565677197137334182040982529311152338791780834079116849412787430621459910444803554545114132701291838058110133151146125739090485167483668882243141897038444784732402641585077865657206290942986224675526810591153967442746766955724102071461038335919405622575641399896443971005821235039500069378752103432704012367599408388023428074935126224656427739957278509603846949501623431827655112308538641238183047575244286806558000208212258216240912122582374464690745199617394315477228238644451480765992689299387774969158188257857065281946459599448956756180020091256188494934860285891833815354082962167828458056122468825366618547430105235928833528930388883301872863091857441122152418762649331200134418646565786866585896290673603945492058778494042518827144696215350479707398690721508457056984093577526908881642674370764853875095933626115197190132835677089325802142975532551523473150710138416432794196465010292349250014538793377560347470780969418776045340174915518262861678717539188525614358226178757677698129757859037557107848063024786251527007213278513041304503978394548366093170917369145362908146645500777479193502871914253124915943441420117460658394689767893075858982305535347952789183428624991420305967242417851132950355364060387210367739060981806304816069085718645363009064836303951342833642181781648267135096220175824479996731982640852562162664582719565193862658903691737003685269474149885044626148255472041526600570338364917985678625296531936760638533127497039412668598283541710340985177121497414202221240070714846112038895290743911030849736629604257860785239098374140950858491887026041595124804852285667376221763422494820004797928269211669924669799143630635104142130715868395631391707363708871031112841750743370138876525970280932556935848453827340230175416325364869704595561090983090770567226568265592437623883584554234307447390478119903221017314388273750703715546380828439420831852055451542464203023220640691196352309501425318295898482517290702603823564444321200004742218543794700614595833513411911865172322144486925875390322788697643184882003188760559464397613634098978903567325054254915542367502873008269860933697537088282179776870862562215578678380637127462535780983657605908945749000417892382087258692313069523864985211148534432593608958222913268783567491700956407166183333504481050533456051037334663319673854294680113726657512910165556923772468858957039461825125201596498289372288682058073496139210742836238605230085597009770307730603648420048793959032119498710521521951652610259242198215651354419214961881213930706907261852240215405916068578136702460787362912421644679021087171571463278293331628075044372793118915868947850532844623745347441133150392075877250098852804098168294896652024207726743969715276817049489883279911251365358889237880693263089729035242076819220921430408022381261199023065728348124503426495759574173260899171776581051783331171074254653824145191846884178867724598903507936252964104741290344475632163985706529442216621485259319157914094196093238502129003249193059104826402293999290283055890095627022820191508092190642761681708969673213485898814888088951193600320016194986368211611384365454873401160297091554823817688405745294877888685197085493347656112944761519579888431812845843062681380629263472495926011369828406272099341609614578399630823335494101005247207750496927761424624103189344616917219405700782460425906782715631331500545852482552025526015678632139472036783961192708127757067241448332989138714615284319728656601715154203082199275490712295011667043045594973753161526574555750522467643873085922281693053446867640103303528551492620477078086247859167444892188440991767815296248159625026587095604355827174796484232968475065601843685293382950142737772622780978169460815077458283744444136655430536209157607624543840664518563479534113350770471998094562009633200294783029066623063338074224806431635594711750888922779176307488593040512791112936678706849977156381766059903974445912462528379917509546516436706968880122930312074465378752693600437863039643702233701336416502532765159021949842345316612470774805306093867851949974905715862337872706546579319699880477036508662735362734857838417490820949438197763626981004103463832835114694255456634124179195711969424938589162624555222335212038649225849139717554636683305708448071554800752002638192201845313416936349948485940160359057663440133875080209428685744174001819487244301925000833045511094903235500867357579930556139193724381268085212871570076975159196343952672449914608645546065670972156205830678250870499043845587678659162088339733419262365735878669891008821448133713970994933599116544357181379916423348181819408167483168400859907359531368628930515309441476094276297244573808493057018583701505465345617025297416061317066623434038345083627446842694382743727630552420168137867540278677648688508561703306508866534222022970602003786460307426616303622354977800302920393470481531315784438261101740834276510971188732334575244780187764310296586086064788109609188550765601446249077153733893629749758542695196064671000519212457551906096555931960924599708136470031511580670624468634112548067957497684445538288798547311297976442459131385334351953008121929108822898733080937070138513357539988367990861551952993295287214097157197754023336666146953959256631265083415641300616125893073618363938177297186692696874483575816389178949344640863550246461151271433344099382609340858988047434193838329270689117645267072858638085560844955393015281014211193707944610787954803131933223764814998946020963720875167721803293270168708207855885623248751483502087114309951666474290281712703175957656237733247941357550001771938272283166504924757465730360983478627435922158810822887549661068492017528963000700641394154797833858650448608131189754205397958826335863788183662633319874187564046982654225108502625632891440791332302957651266633098173485282645739112308061143934318259018651370992455670110789430330914957308485148966297992190950802426072247803548954037295611091914721866519256617493191849951482510940508834662794625562403522521160631754845034959080578504490542794714961050327916495967684512911200319602570749250570157553680451455731020416003999511148383935485271432409271812294918712101878214872953687431987583819787999376929844572363874255529723559509605328944294240606915027323207278903166728693166775271157005996879371458413395632146814508291737492025220831753343504708549809259138031553235794960275337698034559829338926309282689023375735496008048575344058230218386498385556063116224222690820499572040400942669366871507225587986252971149397905392673304151636851888072650467586534246071756340886726151173588933118330936716121545390308680183171772574539608742328253615452021385884894469384243391759784838342956223419733840749549110506566019014893097681557262320009342041503568397362491022443885521059894427339350233880994703045569914901087814389503706469787688968849104247985741186393362969347341147063590254769041446962476499054620581154890933983038772008609555483016637116373074029265248200363293044810712106969419915743287861718811873184231001315615489985234631133109765252764039914150612157121279132831923888466488613932594931074872592272605854978365211239510669256030238082467069105399217333114664476729157244866227234279413359196852372137890544718963063459000027515382137417878874019714312639715764437493699935730900398667953881550641815878805400923960689957735960639167979785292464228098274900125007451956603288790316808876612136217992386119800319370166260497828161416020797539083621014170350252711294823284088941051585010810070081309127410375741425517068904170688844095672302588174952018135734071045663837287968961936725898463829155433863104593772766590601943073381114789634170914169518260350768210491707024301164362467100351131655651133600217220970773681485022323998651699728664390927250590851719143846363395629971621924630189126807248113550331449260448444121324121458601747601145485789094035937337077791857842235981115330292826331761586205386719544519747647799234002172863211291968566203510792092679578347781817709141098719204732784901741230314803543580178219825626040191567273384607217388688813020308757861828413275344364409279872248334557263226415061224796918364030425108448139233089124808943471545072813099877066665510480174820032529453353924072757679179963673243064023187028059777709902249286018944088284395583829034106823634688311627916129008827572465368663496306539235149461514808836898231852253528444364097415269456166915213733104520736066594722708629053203731372342538854888200701581934785217993197759680259493090956153803220969985868436025691197069776076393085171569598889279504750347982581911135285728883536179550361365983498575007698864749350738631257147713107439954851272608516058310284175609074073058490962394873648630724031666096229242314424763972211313174856361096656130499683969284781508706000197936826560928146797815010598982899170235022603065541558488336780654772523373596471740462852345885033419507829618726114404810112259167426676865797454479362436943652315250804059384662012511350868294693086009448385368201383076936253244898833331751202295885014463420826212850814408851660063275798100436336680884423279382348153909349791939749720973831359571084728040615430412512718143099711120322329368912432731619516042773675368914947090507035547252576898421225676656937953430996377861973578723020711432531402615976251514311661913638864500002446865660235047544896442255988195263833630229560049744579617692708331738810408985190325696177113746877155955761054893092002195078753731248463133403845280552557211441229343444141097743354889104108537728577924849480590721958081790657803789168238899248773247889461482709998579176676345874249944680443775069727891278193040450288416132131452570894844793361495984201564386489771842640760219841637949602249561292274979110786709210498050238455794558164258983924575596656634873127454619003946332900772748512223442701871227570987652390927528745256770315340447384337867362216640014350049578705003558675356962093176414854781148223678865805386350087457234656930913561336544988042123552020041669761270475891061674633646375453635625002337670061810355365292279424369908382190099774379987644152907064255912432417422679832404088205821235806687827634520291837682239102852767350073404312893583313833763256914519658525991097142332131569562819106845979644213354367756580675549180613196484192556998247346631028541376428072648959531247173658650221389184178027358474749663192924550016602151240300721096236606498419291921349632267304246426898117876991933964455675069269668433567935699007560913880557290684328570750948113805566280038444328819437896352626442051641553776123107474205010881093971410456937973365517563562899502444292662554105114672930146390027261877677471625123941173296016205234022900422484624613278098285985891729157721162939760251729306668892507210536635385256074615261478787778190160497404953465596576420712043697357643275671336192867662904453963888320384839871327418778778182878288888597337491942984475962996795509366789272973589408906732859002204304725806513633672619551885440059460119693703711690818598533976033483299974904445961133168495027683258651542149689151674657798009846189491584534158112565120943198085956574994576883627596693264480099370550936037181308346177946756496761879579302320168903619980924255141372902717206629711452821291931574986231793586423579190011301417080296126228501292336704385629670647810270355853620309013392146099433774518686004280079644942777269741136964472251226534671352485910676263265380888153798286168201157508000125508231218265595578005322161149540471606403882012044035253127680764240551163346746474781820398905067282426795767478538359093183641757961212088797669762667833219715117957976601871726459888984985779379994387206376042883791806309425359151968208358881579635132500180738382269132399935218561733948889366857169110027076545931721846799282362857693665736600307655515654786900809922325688868478592827700466206933888997057591335778988033068393146905733037278183274464191399010741438420839074953850636243795852098889842676030587633914814470294388790998873183074081680055722749821507591528888882782496467429154035353553779992083182297319960643898014272054422138666816176840556909696339017646299638260123907064416783032021108715520929617254003923481081469208492919729010869919654104237629372441989917802659591617610428381858048372875155924434584379024977531084057949360114505793925766899522474284416408429153276409061923133340063406648605280809604400931429680174360027041785757119167923465260952416535106310155951222710940207812172051776605407591906620122837403829913497876364283387949688290361865247570920021844670765678371934456876404728575226257282880586259455699752665161474981955782160208914190478657318770587469825381776941549179279084066094349497923766123088644476293593614415806038199970762825237015905519629084782015710741082937656276890972007259676412001715715848290440841796184605699798911200971559531598480708243157171576449123026544806085572930004826570198767501796860404822540752241213774943888130379179686056290390335597504057039843752015453615576586112846887170099544647184456347500307830943940031218395048309751912768416125384377915091303719205556152578430731374441667654658475474017010041029841447245962960953715760370472498356917091294966203582933772203606448476050603141301689942214135403646272411849012766530081483718852018410534884778170009727824133028699452376272009620247998412732131330100994833591525801731345008013790866983841852470826520834922210038866758778717823161351576140754479261795162544194716727496561077749421189652236569034538363385773891588568903618965184449236402938293269112390737254393128543846765719197693023473717035366299227207178567757948533239873344871989906675280631150724296631628286330465189992219326486971050898170414888093095815624871891267206913294871947375950724799022475771600026900305201469261269505906242190709833676551480389202003689027423881784072321577022404435805302671564407410133734772684286628582221931968372111863855822732790225034303049857293126395411751228888592271022577829490150892081017269267725567616314637828094455679127208297231939114893480052412843327414874117857040663176610480675573663072870954128846470217690414546944486508463423257331931849339992856177517988427617737148651603317990768523531869639997535563132149624596603741874154609603565132513419997680161421723927198151833113485627873898753295011436698011302390248870047498702232632238997612788936439477552398146985541047954823934090526062442561429840653329653827467531172459492615049416502175231089518569559401681891889670034851918964695363861723225256746423669496141020649204898261632978573478535589176601976845396215319168751525554006372984429137712759093929932156925684433868995449028189842755764669704548542934683868461447856820671120936958479187810075394735399901170711672266544291069315512585565337855952670118743203946842407785732656680309447160159887847632825713407440672439074899263985284748888465279789732315447388562869889781606469954871728872320694418701176132608950039696118160659068029241194612368796690105404265299068318719697327170059250688807639085736593800532161861727155054456555356199127826659210164921195353381187842729765981798519856347541410034150650007246499663589436797337044092084517247047943226527845978347660054549755420933148921760857032737092159887855430022926465091380919331361445577411913328026012499771273269366935798281882025748030333776960218799856045677369255706779932635739908349922858540521284418032334058645019332792235413966186482680549985212101874650506757330607505312344147169104630630571317224549427154057025674701428479082748545157985358669895249733389562990647564988540548057807034291955955464586844013159173753093011593274027375893300337735694154795358599880091291023714198508785759512817920103710560581701163725073317144869483971504701983432672664348023778611905475093025029534133795282804485315178032047833088402417388423549562446355220701575879341544229608830461714693710362725210613405640232816435490195652623302047569158119289964576366429949944228637633743825523080003388649628511227909586797027821842055768704112299868278778171790107235106846196231662574370342698847031429819324877334548458703337751985627895129866728403733155906505158061058730562073312961301358359007188871986656189824613893624254648121828018754294318406975957244678630345745903811621924679073805389618775671006685548260651237355629882423036229829990094903249223818598815459386183470291903530416768646997891010428457969813516399009379595758853088803447405988235411200791826322184778040561571039177603601644539201230537807434838943080248268771311964525374916918900470955712712032174428264031782449487642568589140185397706941615901605827251266195286623218004665300270991881679760141926641004533534588760049130626331597442980765463248981260091543897538861151647520837813991074665389523667653630428765847542134783493559043142327353690337498118264362241427172999493500832500729317069324442702657851909170089668455060749881151269642527443188403003652439353774471964758817148052147780518829681771467533426419916088828710308772361814623218435060595866556888253530580540048357768090097100142211294696768150480425939344700307999552531345053730288747190700318508064333590588597614866543974979078124658360772000664559542945665243230812291690862423826626030532969022736881149683913448138226802240030807308458604918341781308394997569299977346500817892783595886836925506037946082701611316402703573343558095689294655780463337315172587856552902351796682308188442742342592172398164107812758045154369078538064552102677539986605929832876219744139984951610863449181984809017135713059799778252933855547162202760866832772709945044071122245965187045400296595182406487050236587957249937804642572493583628755070022368751619518608816199843482146920380923440651327396936869224526127460434969909071666714954962495226631283683903793961651460348269275479596161417366109247507549839910427834230687930864839911038384929753107455395900659143374096964872575497586735417273264285394406673148318797045738468003872269468750487246650423007599091791479117109727401710394013658985819976547041398688926949258232028507726049405289036424021933274529387965141192228259194471262680787876688822886873115282354781668259507490848138323642847954622663238973319192846479978756649813501014202501957244705423368699986796996210479816594093254471939997149262445250266276008329747129028620597636080253141999271423224280427500843681653149600835266536016998448738840276924623393620666353983008482088410824174661312519692663824567344742736030157971179381491890661398047995662584090868161686291057088981649171285545565168543412386800940860052118849240010611249818969327054181083336576089161443308778151316427334575119188764268812094386479469713383942996649463367569591061306989007341881623244316886524747323516020931158025478523935396964192844241286184087821320683093742927850282637616642517013599955572222717452833269946331611858595968259357156536275710130825791965941725500593850212964240371297073647989368385045556389242556862017437301564172301021594729215595516567655582136834563608088371587144298111212009733826923196269245852533401162847084862518462515719841930573145577355694786357794390326185282566021497148766749667992003261615395807267858062163560803868027369919748578008624463536959161323766393813800502008497566009779733880299084271673581310372989656591074345825319149958776117217002614172844696925350772539296879919364583240514281911443715244410432983279945169287324331652544551824731776765569206798996825789052519183434413624620619841041372528520259974376071949746235609676261161494145029560994142969863198939330538928075255001635233782164183395160259106023798782408651294886274366059305301616260694788666151444730366153392694816590231160376738425688247086534563155601419847276531501791096587271858758661767866247251527070990010156971327027865894388224973657602618438373290079159270915619330645242539251448477323538731755524977049128807383969376100561257813357850639196420651835042744811147883468910415512697603098174479691881846230823447894711733997303694673572510590993774039623962443244400340837608053618524175881499441436703181433224145219614114845109104280306383829149414603549393967729690475367825683669015518144999243750220165380524147608404244030826030463884534984104200267407738778384805642719040448922531547457652267191187543765028783453685936456948243521202328029251942368587951465998831853642208023641045981257880175722959732818649077290213210238397325624392200009361114180574261910160234363638765780787704427400387326389392166214495402015945998370705413842257982984817230847758741129672526286379950428207051429515624456700421410741696074655911735159473751980062314269460773304988643112369431559043166970247837633840005074001300058531903286618820871454493986788401266289507630576178761254475260684515285650195725777295868512529420555012119163295384137353597231349591380802106705814296207078752220837911104949624474588984549151217558529456844272700799444767529344494980307503418142716399803388150224882081769583035344094297444381637445690337944118022122010955128936744878364810295309823212685812945033459631751350745536956509265678609290106393410461820801403120717236861241056257138292385099615680930653093461441644725314461118487609725414958991531575276348419763919231835599057768807119711410597513291441939542199330195807762667829088096806081736255175473305464568122829291210270465839611698649646445933417216531357152871008509849738959373195656141050431694225652853199176300041111440589619220100556467568446043816457793278973947628967162192377919991471906075668240732404594534317459519230638534737499191451623945729183579189371716465224791520801619868956955016026999846227275737936058914341830235775456303770670284335193237356643831935566688855341983018454262399647499806818260316370977353295478905650553616982238750727040374047870028128547355146975587808307887767442206861509824832417351001527120467649840133136257550477234833486367896409211821749815706285699536129786611074649924111797952986494181721304309650567585837133802719551490924468521140479858908496935732669558885666379285141659142480321222719282644296920227930065268969828454301951481402350939486256962091701298097044875290483261479697501284487375330466574065274163523980464506787399363832735078387009186622621036445854077238315335314403554459812049376464188432543080341529033689656163661320360342932969611903137584216522624503036853656728062685028616346682479379365184910048946868029726306234504975692364663954450870067337507386617642553428343169145960056604308997222215535211962432973630326106989621793389629310998119402668945376698933230847579221042986519844781907069318927017501756831594458684227016834423130706588733016879286959918879889435183801461096432678294398618330970566609410100139735050095920625972578147133895204815654388934737000206104154675525772185183573929886131887017407013028659209594607988248942989336287591127336578638560917522308429336439091840702984039356971282462800289014288065726655281347901473050916439870233018745314451673597487431104650515988407430713827326399792365507540584009216479544335184619516450670323294873291066810919698276421092052887910045697674836487744297491892988116022353622411043507323970185784729395846902933943335733781289389836241953965538641951036834120166375878967091843518230613242396626587874919274860676154309883796786525942064851297330368656874160422827115101319178533249790959143965839542547013677686916151688014867453559826268271534192506677430248047581329820296737779318767172581426541992729149547610795552849823960590652234043641487014617272184299634329044424575765917917496400892651317099791969042629571840491825233327115715481081608837797901826136946086155223198763867755820936011783640427795133958723264997044932791178206705944886052412679396639157614960170762307739368566069510563966114118899644970001340237417673983485303785105172649847976473618528953121536489307795091946471036880074328647739713726100609101764455756483323281129091507809922430467172599829928117571430555786041855962208703868590535044094659920943987719171356228016068405578260723479695339621690398325720957417566928997258574132299723139621878144213449097758396572614022441997403057687622357734042324738069127508060149715791575060993403743586956590569225653341318361316891254546236986976041907856176886214245588792390755331937398265010082163417604093903674551161369704162175229561638180608600170003435918375553459888711170486708870957952437366125897632486366127846959446089983398962337249184412916999595492258423668641416058457965027177201025957926252041443120868882570283759224832812959601322717446780380205565186492772441628177814441956162071687340685735445910849796433416939987310476872863735201176248471079359384899116248440452951081314527020461504527059333883088576570548230888536000769713271697820738003348199109751609912854667776170748257186631745781964731663039328612332223899208710972115529695356794074526329969734577149650526625604159470876007878287361657857607200801974301271127753229745082605694307916895148169622465542061646266071013184286007363132431406686836955453364382276441330625052332809722253748047122194970179632782812110551263912392561768639746160440497061180832552939512097383217743037912982721003573144144380532683334115573441491921072004699284241192546743389629199969586076413845797959354303553605768095066269018538147491369709244583180425627177540628440817365343480942153082403302496203423831653292454822434755743075726621661753864800723140418709058533322054591618248020196670775731220185672644909440551022661342637377014877164998800468639388151548079304477480499651585302993189062286814647018425891835255885266867673518601488819467460401429890834956225056660590154689919652538133267081431531818488203165563264440873259029387932267421994271881301750967074088733967757670281634747954675843827842086492961633390947854093329564050340544345622615393197424339563516353464598227460320392965706632274591479078255827011034646175668731948188846221361939755828510303166176327639167407135980324217176459915199053478713061082623838417390004900759297360349732542350470495897351214691686701145713698792834082101056558113473343771880107560928171459856355201052534747267982453341646678609952863994871030262409335977522042512090781863627935294537737367436664215335400160557187057019593046555289501258301364027456683598261151418017866357370160025644187311122932088001792510836491301363003163217130939286881787146147313153501576318468050182333389015492938973059151963876010709391139802732387970483067170083531341931574243952462313237397315845187873965210092069793743791194753299247235577358034032342624738436903871946099765868266950037835444796755438807459356128673906203154583623254800236633329113194547496485818029098855453139779118404107299332246833208341402145495155239634999798949659210341451328950590956800496057435117619875697615989727937179246349946045345310056624105004807782135248185038721527516719945777606288603870910141313085524229129892786607348041658692083947848443578708590503283069451151320532822158025973034310407442218011785646996267247366628611780653221516875969029430033640592686232772223037844833499213010960798249928718067906962546550464594941943823703157247608503670151766250044098483141434808731370198831757981126187517380894728555368605976943549032416024366654405178538675546902222627163676968476335829031897973083773754874165686339039716927845466601246370984001713309146351869668854321562890448847571571085899641420616415457262495266310683028126812803680214301381541700940213004035160502992869639743583811185324343439467730694997545809101213998199639777561819395029073873821744729335147159839781713529043239771762469726475532657313595569200652666828998410127599403480412254931523775946835744853054473220605932820137270812631539181232662406269782036282646858612258507447742480939971905819817743907346099555492070112376447396217966003340929885861685036795352085307268777204065904842843737590805322912687919280042233288320538658722646887155209639089472387638077251687341349208412184524276653358681413997740540202412962510466880771948141085124042720295030587986494657561279707775970217913678578277342357279315015738898801410622716780058783928577146302928833675574458896626395138437572924890403876920154661001310612684996467809626453783035434730169583455474065713770379702572978861236436078613622380413973709491793554415754959752800235171081434245421120582287002729603939537427785452483193783494196014682714669211803085971191463126140753453595462441333155603688780207538561415460624152903239368172890167784414556064207643756314796457030742177737243993092911487441872617069003620669976156515721544638676975277572195691183966754252174696999928164577238790000490200581689802750214733112195823446598001518805003255150181300600998392684055387858922640039517096504955541722864462047385214875326651763086075671325848877059591535337364175152395754248549395806036303328064646464719017998375031799113053334672638423683292630381051743520620502355890869751050322878255775346712648959232427041004130235310066201824855794770865599433699504433570476769025918750277859698343014186618193410305950059389362379430711161813803677757017363708563957356218557290175271034812039401252068813658826649188131946191692433156302303257644679949869095409178586216897736751247001445535524006592000435087229339498282551252640126653591060789833290044524519608463381012365384906832482540843378094254465129593902235242419445544577579726467361161964393738353373694095195292568274188319699418387866775951691284216782672982800869019046191071898506185657710158433043685637222609588185388628693150338230720032848627894586218546608642027730327438044926372383097454945143656419465236797882034418605397584549849609834272176312219187114778822621281580608071037458178562657904061012038439945066102485611459789315352527543838424494503653748768935690496646770438230440965949036186948845639447624870998338386282459889019752958379508726300380535447073234770418817188389054543039294851527519411065215565117121661455136019629934959846222358636449980068075858799790284948659331985496900623888676554130195527045430150341115160835763294686997140069487935169616128440601686841309626394361813046310560056520171963283360291418292398713031298319450917329773182437008782382337845329388948711571468507933101059712156313360492355453665350758299520174177414663300271213653217448916554470935558731623583681302044036524838001088672034296300101299219303996539588389042206772085019593899333968473491019350703110041431294566937929872019758536174149806679893473358974504279578738661879357615407339545870719394641289686457901757842554165941364323825052036140639792841615185822453452924444446235416345788784329203386433339615925836818664571203846025933526200336966955935803511772892505368003612121153654105036548844155543132428572987325602789399029372949509825180856805127836444230159421130014461701397388363529600957596891775427989784615871007087218748204592326821846997190097203377876641528626119526407833308054752220107088021478632091303539889175648934564976856362813234626327737800459358822479680605965152369194198452228271133481425447566728588351941991123669200015312379855513252232803195655571457458383794367873548692698631655971640436563867843738740924809932392202058731637524098377905434332878708017035497414194411377586719296379266784534388379273012938403329572588358018806820058946716928294220958589296643732784932767483369287094215091290774428739412486462332159453574734355621171279268869146305956490339937955339298057969397161125566267962899640189182462065215542180456311880188896198289183172063062595660485356711109587765813053086526855170113470857416520402917902541882102578832060825569086828867693307626313970142789776268710646471418927679897833962926635279452100767310310640766168171802738588794748139885170590581670738466533866472221484341575810659067529374741680148211353578055806183696529886152231310217817893907117858782768263535205368178022970717314424977281808926041860035938144010669772708608890533644294722720526790082628302014094628259709825644812105767690624040741827499149603081190264879136859823634592608230943379023866304466227608497919268869558965712160131007172684651529342437368895778855573835473387745727242269067462696777540598650565326803459861643352554261823639163018641966554077972742494357530337438975826174243197628422326339633000867355643686721787733933675294189351155489114584971155956584596047598044368864256207403251435074230963244498346553558123335161609511889719050722904843054611814211034295985017304808641835156136924893459079259837434932457787791673727971127232307363155878213868289395151550278190708306647903483662241013275725962829100854650806196441412581006777670332418103218140514020836276722687976146396393196210534915096211144873325189676543555044316068168945239626970287462849743016574665806906591404124590421041111331314555201301871300834299975781800291343007734669790763227845249902721881956009020633891509494401746902509766553276406778463273094047360620464491850538458185066618857452168064164750094280132443738208624663149292781098421568865707880643335951872359880576615868198091447420087661499342617719260952429207772119819457196418612949481969550233296135463014741008241663411125467750381647975149970714491568530404386535367508291591547064041186533409430432090588847062804854043512807719939275661817749889597156177708138388059083752102422844883707460908931448245173824712444105710723359703858236193399623236285796333146444572142949971086120225159715371316194042811241147286989582692217338353312357713518208842689591487913454890200210189221461299743148600621282283726406197525061320409860778589639666555644526138874477830228882160180102566022812718880796113350505008743615639454422544223372894840326892220951227361554101657753133515080960066245707981553245046688126420558340037747029442159254139528712394272202550774956455445397823259026750137498592636711566356578504433587789732352608460244675130378119766920950579039141333397359160882274426311895149471360316203350909857602032619426270661790656443585021465384662456896478295094329881849804266703154009531967322756229923513573446328634602938174790717701516341610630136048740105389590782101909998017458843562547360723848383579455816342078278597126242134578804004143437417626179696883130588811672317208823859039328178832915991294403415289065052262748844136390889613749998405454181205293452023723793397932577690274491755867969727633373322516229677877224492958977996914734641751402126270430754592085439065671669853277961564800104927109540127792938601518615632660814037140569055419307968474748723967596486835410037773094152043487833690396681528149809918791083077341945383564937182637992634198157644800366244455416128987443409772878038036425741671691453621709613016930846003563139615801807307545512960835624268846894814274160226282349067616832085957741080703006818858305052495515698458459817457346894761202732980341462036258364782197327789822384431875878339281286265249719913218516348207204895083924551258495597579915916271790214579781427410742698310175760748138756784057514161898703857551482512901596736931380895720671731765683341755701646538880195153127439192066432821588958973242593280720361666908389920313606133478822521687043248729192569496556962300028617242090322860049403676383145678373915765463182393791698207323826830995594422278168275065685626398543048241358413651511258760373993745118448025932733086473909740533407059790889887867560075269979049328010610124097756115505102143235077453230483173905549648743746912352497006774911442932225573907758911561664176182505940958288064295084848236203937839868947566476228061505234651740194284709881670191900212449670044462508259026251524951408426607421115681829322129155078808347163258698946765728808288793409621942722137618201769289179256745571947812606288794898840482901642366377053240445650795083632559477213338830923054089188049543256424345149501015889318552293648968118710837723235874147110628030737305793053492745584548702468533068886972975696108527939321520641311595330374417755216652064510027972005406007332527632579756283975191596358371102151429827609810225594419174464507174362461976246721590980916443014772415660821520297755819203839282860652506929950929519695173391154415998481544532873272795063138706475427269312923286202514945632253286609750230591701631556335024563041717346335983698079683549905759902037119376940625904784219267323825462154450773508344266896136515832690064671568115399935034451222582546539190755585311000180278404724503915023469560223605171034202860465829246529047988712169118056603938190548203406676438533806078280316526329088331604163362633472674603903835211958923468187425712793065716653842731304289856319962886749478935346853555725167206634701263782888192934549844503738496340585645855657437712787885149406208299351195674898451969359937499807813655535830304869792372919083711876916595067637090549672522777523177248970458556807155146690846569751464174300490392084860157444911977730062683324834955360815766185727410568802591384538673603109610124047721814127731546626967739857267014580197905670602133009404568906422040230003935961088635152183097416323366222120165142102207226129807952009190299123702579594272158732234669861016010655510373212229966468828146647888931626424311929570229825929202684873286131775255662609355870251498465974445212624577737560551236288031679092158609177665116163100363636734087712731875475168237681678689273362650070356196307968311436294913348328252581842175619926341110352530566241072355699225561514512583498230506355822838333437161421952648406938770537530694494632752491788541293478229853065380677341157553400245504768627802666511684716054083508358338251031364386789657252263564098679485853500856645992880940208210296329242642190297944136581838214584458522945475755065302581499372236570082478170891382102288327629818304210624174169516076694184535722118105741397958964839758858538653695706176433443207696313525417004928022562668238047321437925996660022611791240070434558199483773445247617685596618588908530832247759985770437413143989653675167811220299540688360444053129768050403484846459745168334089853424383929344717799110445639608742238583249576263349117348185338901017440955581769138320445388371860305187089401882864549021778980587598365815531595910749989336195516056708325269637730701587781693703093724401694666023613892588953699039226697377168664012345174694195303488420573716580064395582528201103388496715885042789227440183066981898541627118111718492441283754798804847721312037674851498653517040994847443677768224056443239790045323262910375175457642786692221088863342141430147969684016833857477022032581839693639815643243278387147224373199436095229570781018919732734085037358136429586369695664439607845683568451024973452569296554402329623952534398480552375080380399365939577522915934645645333432928126629020943022822306437595819077583192921987648445459530426452433583105438733070866537310796203700836895490598363585751020199661663761208717248198436719513443953234721246612716111761997167109749655602848426786240495162592900656971705913427039414627141857082195486703505774603779107870954866918362387993348131579543543172898016394794480163584182395146052840883155360606904976083082005435954064712537642062221745598718782585877748513680139726636317976892226204354274779116038187378692495348830408101798412995447198796417812535193565659131392314125721003033451586211016439469014072034693562857980139986509424818223011937271026184858787940516960245055135145425387248305980005677935007505789499251332181264222610191408631879636175040210824241083642560401592186899255994019601436114485787980693260717591132370438043603417249207381582776788938563921750670918856631659025497780341298174059988755819396287611822144188787888210955879921880707016574936321414759805057688283003106275566977111628293288598209373544570217268416992031098865891364314808121450273154568461572197548447049737504104023234324573645659769216017864383729261760374399683739111858155792502520635669460729447381175860163385740129094804196818688757863824624293314996558307399578174757830951767095916167112856093162585449023583897015874379533567180078317518268790036586840877138702553908999309409746001490663349974371059764942993135844438441340311864584418521493266169988756237439019408732960908114614825801409268336375486301554288207410160030898263735430005405405081042010530552129052916636578151047402981453196166155840268337161036689086642173023817387681679576201123967012673078124544624467645499912204246726071260053612275128716782434397857247479736105961691232355570130151136123806003433950889531537607938307096290567290904234536832363874148335647970588705773795553983830374296219011444264827166256668768393957155559648911567480519541849711726211008190016400042313734944880293923740010948001769751950574416817246823426949498959800059037749467473096709845628585215649668316918412858023752639122333750541123416631498375348323183773998855461452265831705539000872704054263032419000344103540288170815222575659927239583172465263011663529054680116513340928224088457292205202145858883283950318677187885279013316805591764225601349097055502803166062295004581767365476927240444604543546768679751829160495752622162430830267757209778356101690571980196368041307661562891561017329067764965235278068097556807203145194958143632114901546569545810850751456951645363388597571093175252394903247687203138676569132986669139592081785156210512789361663185044958553203951178536954434105752709306576876453151351483377774757993330602108469243789169273183346817194551337634259588619355667550463641513967538631565295823762702356786706027401679686439807114116777099428976201833768938211033128346084807526936921010371172280254760672281912211565409341685582920568223967995406839236298824622351457966555860551442763660403681628623267585872607721257755147184950112855128913023466431851065316483166053646902352937389929828686871369328858638406746757820763311901219672219134795876412748457936011472848010066506839332948871845656363609417062782392218868340824145451411480804249369104195279700509933825664612928236494974688316758449803659664680041079735684023585593747048455949665271819729328657792676548516391891763721001707317354983368975612155981463960462932005473236874363953798935169873679375020179475153839867521313846141849150349410605221365431280788292476951335065758519877452135584979274835975063866771867422594004260707360842727393032669364188469620203501317459578689077463086478157111714018978901842744574492173208929288658836381707567684707097180598196093549923545025728615346860137650564485715751963786980357578112461824386600658824836544679386457973868118656536272800919287966113802824437540580003279200181186661708694288790283743463526279677300203617704569427424535619830135907192320049816440442187704176947364290063075089567674705660296471337042006653569023333457897016851122457201483036132509618566666756247428987507617998939930501583179046033546189506240595039983551647580395576293837174093624132746341035900699412955719150629527604206352662271663004402372150270606194354388050809388805397521081831913837448734018950022948444035909236645061234320890332001169098276483098416653537168827647499810682758928477316279813151290305166459560762864334298771240490040743757353610916638856392802130161903700529958373339569960909443916515350429501337063524514350625593158402890153418382991004557134694554165478454036805954584307953518297015295801810400893679606132576107596421633701932826304609746965721553076659899936581522682018034912967147380889784892755913413070984379121712168648239301845250190503591183961419545972336424781037458543438536753176282942853567207540122498905205610035109605076053628956307999250114810348594185808594536155211310899811165182784625512603279781556030966735759477100728566761344071383674942447793209790025314050040191449815943006574080742041261581544768749621850414658831877630816809731124088541749176958438431683976462704426990162356679761956908421103906078152841252396488591740945877311991981417098115587761717761214937270247929039189887744063022442498874842951349591334869059973128149107247015241783360573469277275272072898949266738099290412593889657507856304311346033071578890740350678228744895772239794170482551440597891910263042069635981939188299142546249784482523410546078613672282475522376270835807460417967388091152418040593914176870240471746139147325567976358605542353263887920367771302545934246151313755725764598883652669809405221024396881466267449517691451044924179294911323821128800249944540320467047333482106511693934692058325231091402402509828293127571441117178833762821500908019909707334807224618478883429325563166418426358401463504391559056546072117982235046439800604739502845179725613638884260787259311336789721846542096075330680582738198298289652437047594310300311652246870742403247670797402914245056349507678320904645661385321828347083870295886341008785647195828386657869231637728138585349632888770548587072857634929515970900113262419292362611951184939002266613940428690479801115310619046717211762919965493503607376659404575256774907254493101346747705684741116789977396806047018195676655620518136605003371888742468681104738827404877844783611995276547731518990603552866897609040969597074713591178835383170177449389096377070918148781832071215095080447934991171311453719908781443485075447435913304200562807097107602295405347623751501179640889667789040054233889406474762232362037182588820122312739596134644735592274632924771272221014767464897684571351297326631946669414912819620561215333885022073400899609227852871212512826248020274354094872241983210507150565341120336703147634204549890530300100417044722686404010346048023430876436394692940520770885917087058696425654948014275243099529862314944026965598229035056302222564991873011841763953003431853374114829818201511139734116363334421937744381382848211723549320772972137228161999557222455587398672774871859465827341232594616841520153503648127142264772784878808901854636098245913340240875170605147736016998238570975451460742481511955823123330454668935701992774095698159208122740570759457685978082467577553544937496018638399985893495689176641348261827291729986781824512234592317276504030014907343169126431620848606691135162742715705842862156333263987745207626538313504486894062867792375643124182866216401801416209326431210992369141929880590381428829759152200848444920181847306768007287501000493118937458506622268515838024298807315260420282365287424563023449303969255780868300055804131473324494614267021645022370794092908396540640196287277788486235252127286297283269155127190369959317860140856190498615015964889062934722558286364961925031054755521410115930570847237604523877298889545414333427338273986231896676965175458947010040477925206442302940668743901664640433294942239619110046556034343302225108016096092586642899616532362171040881166768462964766126884939033115102219643416672541950645677130369566277860629151890008410606375212549075542873855107637993825858387481961903713931609933927909399584952194048507119558373162624933077519161988449537631672389964162841461846147757624254904187741312499303754163714222829063067204544465181329750616551754020657392833744343796460034308574752591900420574826485383316713636080391253983479580351629607086447758510736192133122005105406104207261820557079582463116853039971908522044236357804191835570484719158989211824382801922201490760531607489418882731008585371710611592541276189443635480931778364678057041845309778464279739301486045580392261671283746749620530181398785011427984072629800635153485027960724511570176197456947548894594256672033115534147120408536311557505833829081408171090940342303904400310496929129371341105763769897348310133926865006814395370043732944953695980540809054385528315718513724299771062001923603457786187978940063419924044559759445811650337931988478262984069260657227817491157599708882487619216844104606990785833489275053138461077618720457538044871860607038002261052407787418954036556819352440321768695115224659688145224923528894476946840297429359757618786395566667725826367613066364899026179288509329248103193722584552404746951369835648733887656218349438877274922371660008002876713934445518871920420716967961840478907167619640749087959326261108214615024645886629911619676868676029289492925228373361212033289984574229905947347506886117935756801145049738789257518560544212777136885265200357660964775159585417629329952255676632338935889057836174532257355656140364870443583726731251955356364194656385641335777238492642823469347051768483371399687425407372184416196977616715471983054685679920880416966092024646730081244414608680490986502078474828963923082374904261552789457569957338196616533968046894962580227942356733466027810165328976294275944195778492648814872536329559996446838590902115691811185053130980106415592718289503721703024697667070179526902779603597490868626987235413471480383576914633721532167837856353882200945737813091449735168539452380309990893693755452395533475595402016210248657596197719277926546932002771776640715609090686445390089962386765256081397635893827536036904216608849770319804799312885125587765713006340525688829104061221124527805424305777114265417697362161810777604903319072564497066094351348873013181643403314556293113769215373542769312816325746669110811896677424159352243903251728380400491320587950201054587216539108646263795551982057384440549183261633682439304851206145586779858733247241340220547545305380049162091220964060932938915977946236916708297642265796598541649798907108529192854099564493667827782294725181965243286089178354314910494046050730806149111186516863866602696051321577045321801064668504742882684325871842965231277964634480732447475238361862379009446316568881162293964355736009746725054454021579966459440862624168087330756638502944826715855418455368241609836375636034782568637706936346160245395408276625724744972813092782786913092242592237357287184189297763945102411753952321180729187927070780571947983796968206054562105875809676740187809202962554844842898387941709667094705964515635652162160768412878066881321895247838983770830124374900315728482746529551714313424377169599041058338050962448142077368615407851887588395041020583728577751939033527650667746473800820591326634686794388271221336121285188238678820185084266266705028450714856259216167421852924168809538073907082694294737343560223000884506093075994892162026732963152493623624771165714586882869583055176372525104992270228434459132466248881056874192740472917850918326023519092142086843638577759872873459690681387444810458862840218704867181205571917016272450429713846257991272706810429079784801729555820887405514657315626002922073863110376917840180712181118360644197591277652835347332771325959205747769395057131554496276720590945702672301962452997521170253851069641513421372760141952911851399177801528664638715661755357946542581913267047614294066844640024696228632014194485571168839239839055394774513967948111285228537835427554305619695085851760672336813217163063002358094106962293431950460401754727823970120482165215923384653672715322720981817826463978099057385573102161887218597962280845944902424247730100373008256142385183886656503003667023957727870557795219948230344227202413749358730033570034617153811977733227761433576845769421069775804469438869608783162680093497063441081736383805412920716546773774314469260609098520223040142753592689735136326423742396766658226212068966974027989632455379790566526373728405516961427753754001634191748950385028118600389022339884166762782328373233719145014547856302264528327047064943063854313476332385029421668653804863483873453908382135368739931576600943971576837704060453243091834865392542332004120996088281474798050702156925550438197574648919989080449360952182498488036607134837203111965593796305554934954732561337479883142390719023179940029927010379706496659053371460190401539643192933318289557472078578444423005118877927215265038418096542229005903013372916530544003724291410454506072937788326979750504885042291071684057950884565344668300311711636360309760721728829408601115103214865265031350534785350660495978116134369394760863593291241343499614776703154917015801030696757662331666031362756324587635958941839862767884969447067044116233861833001711146730711103222348789187168439957531875765682450057872238574114100024818730991563602099657630379869222468786978516411886814731574309041445061981592433889212519130262440049711378936044331519278723267466684562668416169776219646478210138762016593509991843654233418558946103783838195142339186258272572611011695789369148879020467813663877727460036219296248317367058694017854190483775972377553797453842612754451066899862996291969770818831029124804416423592108207991761313398661324067767701637129332063175091467163170949944554845094621347071818951214804181203257109713335364656595049870729070301895067670853584145948718948592267156912297703301289319960492580510347963417882852473708123856744126515419984446218666663426746202104499298878775511721079669858640538242804280511508344007284980876272506395160390486932724862820826268844501783294408489180126494577941353044953254624972628684661462573062532207758740595470836507582349018384442469560729589947955545154632601837642727192334684551257444172310110046675420145282094992500524408542059739217455232500180708988836351646429586127642530713379252375831457732269991916341338924653467365805143508103245617835534280468435627160349134847983363866984858548797743575044842721523121690011984543632511344609895681314388905243632689722527991254456036077956162885591455840207834693586807682691046844435203271196290426957804609983093155857113228281418027947944198656548425895600846175085171886740626603054502261473121082928201981830182629071032401818057710824031554110172629027698995331097668676267245539074783509217199224634281248274524070303184689612525543711335021777594571826216463783417634494430985084332084080994678339532047087364303382385796862377733140953546293301380392179353475214309773099228122009869892321493537835163923224738272303209024748126712567050656163818208442746512549872949343069712302597289438105094298285293848158345899427898297159468428924400345897565554281147352256668510164588257269699182785162262502210619388915959151157282346776485196289442103334550790449860450477989750893587522928317023673843192050945477576921789058521214082684639399413237887812655329512826122127087175271657253494547918718034887259321542086012768947155493109042303805922575338478016320772676089123074913190714296661006037882474515658186175463969854678611987684178470394987400644130117544858556395229177416296108437045404632090388564513235743575983862760823197244452059008439614009073833067430447325522006762733464547095069697056558457316285513993747727643887705905401480496895429217904643438303849964318180072772165153470717004248285711771691034892380830647801917515625312583440445608328819463223075452449656096251594337802058283655971035166911353904015670559198028770203779345876329659738024060932937652701872540268053836313663253141618145373864479572983399436867996825060688605575468198578107411434900165770747491921836417668716877773257152397342121160284228545094970505609611983718019811773254732574775161063827445687959400300164235639368105292642648968212542535754455347409683942530539691874891984243804769586136807020646054399779488896284924884968746027061700554251678407303379302898954655656665276215560389528716913623450787033744398604417001653315732213986018255864381094286248052546128816880558118350413711721316058864535019658087587713654085739931497293939273449861022296050027006247061400975852553492320882820471314267649194940536839406642904630023831094107874213102676224802242254384980231920244152160829035653150286733501353536228596674955816265765496793384233883077425040353153397107529213196517298052809583103147433897377098807488935476611002838248561845188006006338990415655602839127154917979597321268609294793947063665271350278228954980547130640428992630077797340581131376786054181523347781577445885758745988362645287180228923821377802854254129366296948999164811457592287616706929017821650475799913285350197258291278602862836289608799381725331246504510038111033297410025149401508096333001611268307338262355028444865867951418268369167499930653679255889033347683154206035643284754823981244374299816681282085440884392784571952874054447318790048194937672375394862455430714210842154466997107029182961827948856907946423858062600519358331467612284235743964528798276261376913322304944641717195046403859646267869769378948128715856799157895813922772890615253557289731592829672645497262888899168649686102609366203830590885889697257900026634806526263539466968061742143054196379912873068765931556283458030999335030785303111768674805225261332305382037713446945524638041000725276424912728367971173972024098468315382009993361502151241714766600035926163492675313270736457566883577119861453765302216997775137738127914483629447552557388744543935327703787425131171906294605297419327010459401462716857975027270180157466351462839454230808318915456542905692427531569389588156473222360971601638945632149183586680870863091456404727665116060541827801739035491241377226269898998400432693676649614038744241755800205918981363126377245260465206364911214646379114453466634597913577606365124278228173001580356723352623169338041815284317203969497504942679880463349835186802215169492155254187379160933258259682081464535979569752666728629454663276994725472545829622804390545857797202913209428965599691415448698463203199462658387216142317200668336245908851268098719549496452321305700093351224198012336262692404281585721520161942643254347761776416542245163272548553748553602086204176083088300744129566230220553481058005888184510886376220859366687411996684683165494698297060702142779078023842249452608094223008067097034004482326125289456688884375830761111469765654112420725569128934030928042648856928055034425707529234384817632246774078004832475276555446043885856374529850296701936282051791498788700751764905410431092319341048167686506499195315637411051329841835393140894206763524940398418210596780160504062915992816755705696436841651976626555388782368304776995088755328452919297062856761265710807359354664902511810713605221090168031284960385033403993179694936864320415963954110323164298947607968573006259916958888094370426613128482048640269018807504493197083750852822385519718676867985408592349901157416383891174075121688594848325957881270842627521388658196478795474240118780357860026728860138167794334252270268830329929608287343818567187812638457916944623692850053901576550566335399892382707599654696126745970768058667397372997089652470996734956389880328739723913286841308577208767958515260960197786488593242957204308470742989435786082221046633517532943778797560841588712261915083488403732132336920062365933302869118424892915036192117576289626903207667472137141973140754772216237359072152609488354691198151254507269662868780898352737253076726894558444214849391067802687773763763666183423929903852741172687371906579648913359552983488421361239874188588052196985527081702281462541154594932216392045517853370000504527603539904129786634349811450808433533896134603480099551282248307437059818990943390604116787906223419071594917994106819152752473140804390504341295694664389308710943164180255648632779835927933815159772401646643440534402882079500739051588819712011163522632628093098630441426521459407618703800150546598362428569474478017850193838716183301784962009744532222718171600377583356937367308601147272679413737994457577373087756364156080829006327959542818063165493552883288402163386723169949456450895987927169264939934770865790884159372267110204496765635465324973201279180986739093852209557958701690074927442376757464287032224892247661200994158944864950642445420862731656590749445840024789434060107023499787866619521930785567055573404188602303972909117200741919979321626318783534213791120013766094502614102385315350092271784757683294164108725618296953116688303203890131468330479947528416488269047779579010754717440197135508836336747291876516557020172625915576903372435182298491803519265067748719531132486927889283474736035296922294549985829816747139456940880826448495188006864469824945204960968414044648661742557842489924035722540864767650005946860906952722794412036742614378083049470170124003925763219559086640340428068347098379716548383093976829011929774275783702357363275294303409972088637131294224110519186164583463777385323234760093811737775693502892013291513479662432430047106029067188181464337534385625953100529241978134745406937436973872561028157901777799366876404271318597089429841746295361147359069165836526708133078760815141676957001992901582106230357510167028167809077008314510299689096268414147631134581322943463381001397383183801162931775736227362986792444338041755567252775672397018214148998308403806970197484149167356023508013195003828405584594944543471077606836622562236323700321190850977289958405602813533783184586107315900897273481637811062011763572977391044140928355711490369019986913131501169318454448479529515096775841395189763339582344695738669197014420219335499795959115521890474073731918857884976209463677095915003537967094480446576638848457982005799140617350498739016523906072319223176544343309522876889060342958880663021852128437096539748235478484870669504002326336582347413926564019932540093067308970081753795823446441890003042369262313509360683220666209808481486847141688520666686769854589444045261211738006281267417404605598068175185649868547676975418794248727479927880932012998792132838069974717472137327432188415859292441837815276188924902043777000313691923109275757735236507100799894017958316743726450807704730251042813400326286189226217494003998336109130724269903658731869679358170591164216119093226239329181740003577852648750212289762244700480483157862676482546012902575342810840429951117818019674113526048376890296681467454293145794128364004848445949203361905992882698320179305852210917404131331758393567713396386978418501147228991322167147925112622598825224772644439772733854290307239493956824050411745845292665323650947390314256372918658153115235423329337566001059027653242797301321887023202977377320650576194530853997717212010471408047033553987033601832852551129771648764672001750906106520002444905128902565052612329226610258665958380418893450088092313156177525015554662345963591039178026608000540678621804319393369584144424277949397393331712281915754198770635494760199130981466022414432105674511705448895635916239590639823963630253484997129395418035729938129976553846738974397308744889555327638410526104544585394396364986348360407739538071149388865921724647844329697255046514152552592649984633774629509398700744687505099013614809314842711904891679925629031338662093530487587569816011354460366405343292149995396145978939821394549511544230534997175304592309516752317673862398090869251297458588112963737336881892739505797054457255655886226332915163950430524418303089919044374915489753680577592788428441161688789033376531559732676079962498831804848072971351406229522867986432031315179739815452170491789407021899255750594395809374086136219386468240338279802546401623205517171352119194886981307665435258249166853266981715135452238871699962773760424547284865108954316795195127981521628054569313082906258204905877542337220784660635613873833136398678267813637908185987080823730723255051267678962478943398893432837965549591084791580181690885199490667028431351541052897517593000483616829027518694759484196080201764529280876749205606008927353013600872186600476920807541292655380158483585990328687357081249694544657084594640895547345670479627957616132263613506398212726620973709012688225406099247681317059468963656558654044324423040409502978222127463475850187884251209968464727305632821512803736024450585445106939463403429872431896813578889467240124001601333269277373653370561437319502109665752035049600395972623080064859988255442481227905215366195971199111791472021867011692819285609528603328188289827014905940175650506242508320842496210436690411206193180250061507088687370852058760480406068992842963365108460328265548177836372501016481828654936101188351879371340722016548561010542390175773042248297701381230412877560249366722933587358852220822099173506317751869577163295149444834370828534370757462255325203376831364160483765817127961763296053238437108972955139186045503169643216659195563036180434274459988951045703288528972288528086555845020966823149644622314662701844133983108313463362084178178512187997194308459961207658347068408599789929232893545114681791878228840095468943381865429986762471435391202335444251554893892624220255242334169501019014209670682328293435441883174638812839708867758614163056660932689222199568550327581690231581976247403778357598614741762983808187603615627352842489687856502307398826505850188631398759946647943668087053033187741556464084590115987234280672919554808219008101968847578349008675354245826032517406588040902961409264309830016626016849033396297407236259564933786688865656303812016707519438894090411720352682571064131213516528108350632703762053388056781617647243440450960223327802490266077028166690941655495761097668248027845839101139583468297804412664318623708060175067313002585839453990940596983593516407523854461937787116878698174475458595149592844742822929877927553011645516289283341109945576729237212072589222258085456971474808237689494240157960773819324270795312877813154983151634697411616992700143902064378694631903584031489032370557813239960703021851519458347673191428849289072935839746570191478825203265750712545033380755701294302830272403563212073170807593933893012146753924032927914000426786934329619616686858328408411015737206328029643561217762623911080589338884764195236430890870564262806070407940571213381241670974287920681238386898886276968502946181299932764854950604219651716204453488174777968544224157463040066790986199617981014496368922423908045144259671583737991178674387236656053871662235450157868900742902251807730719149912712359336327852701574997589123774754865628560888059003647907867078120832959318666311205244575153363311392937986687219598102302892704808359467030917796265176498671596098547483863359432649848221463267678277248667801586338758833658737178008909112896318823982521942088609831333546819355345480740578318794333278639315672006361801684160214025315159217317549333683059722841514539097243939914822591042627118605519450429090903358457486235168189909074763586771220313689764565397691811790533044007725601528275854194527586074160657716730163530162132371063070545015376305379496846350652714320094533257500790580990979784196234106764304137714044952551450949805278222471036396832440380583371990291543988524754597924978670877635419814087856040166552561643817356257390094579389545959037767425109675549133004777285159838830596805075984520705285369187138834573708568378105538729692561096909443394075014752447012012200757817924616168143820561415562953870909137063077016496454908848584765161763755943775888347674007986034985904878464759699927129184546764965756949530276855671165557100000779999262594003285795933924999294258307500598129779378026137135797594417364536933507700909188433133215256922339318068168631228515950351675349218313328175203922086642078831566944203146380365943872405779327630981899876504527678571039050550721622472742405765316176711339508644072078302026309783822841006576427918748173748158281237575930150886114604095211173881225825660065814306920387032214804090314502136705592475793979639361321851247412489421036426639704498071070340323820614008307536210061182360645005256370561086645659134970948648765648406003745234305519482061888225237985953816568374248910826847093451516868417539163476070454751079432465651956022712500739394607722909599951003782281057406989462541000776467811691593031765431568933250459551901001853000198054162074589091360894063450138973576751026404360885684054113541071883405951152503290993564462898911921360804080601799927364739155487662785958858179177620388863843982919359869680133701131213134221433177365987614134808608868024571015180257943107629381421737819689773133464060952841931872214206373905260752460426779740887703647995001268186579728695937937310608508630120744904716857182189865693771717168944717083118227191178876107619731772591227411919088881691146057198639697454313552392086143787819638714420284557882407894230314594654998475763769038822395482708592767065162751781896108884969097069724116908258625184862295874626675544352417448608790140994740695674473653846388388575169300552465828454392638961431003168842528321840942152582647178167560691961453237035600916445928580515764709993441918913302149118266634180952658431646114028878785067548866601697208632460089576334604749759018024317539407858366853909611309101985274178798081256003865634918015391270897457293725393494710856673992379105174383468781976092295285225409431855063214972818106814038703055776439773248668377914253959092443931677561775118005097033978813328859003704651660861691759530493316952640373689030847446139150424896076092473656040492707558938168743377503271689590580678228849865712705017709653733268734678860948101584089405765317202857989330353761465005632673889294225372557501964322219038233642260957763505626250450253995537810250450803901474105696622644002127021710521287250775206958938285940419557157056395965983499281695267954720892791912376889010908442741550285226988577077075201335257347417156874072712936145726215782966057247045764515718518457655448799015053853782376387255117717402246491137390254989088815614532590764931420270686638722871042712358157641960316165955707701700611956136051158656800741002553042369934709338903536034884862321807295125793959598842099300368571716146377702132747469775340278215034171100020389433125966054577885209767224714952801496851391266655606596638060374130578378404102281915838923348408516081850810151920150894323255391345803241686350809439353399358261836148615900284406933391696833005264047104741407141798918522599376416347649137460790599925192951619281648557512225244492162028914798550188355298508231594542127044694484184115313640450352338845465109940349172178536684923055684087472309790619842552864177074704923524047595766445720709161273026060724380715572998115513367859457528064092788458362324094038811696809912590233565935982747618806339353917310425659420758470437876146007146171614972775330502193109718665648127800987617763156197597576059226232680151408360466157274674272554437510956921357037058666214203122227674630813945510525557278791900315211293077730013333985676302569655613124490066539278949197253485180626388452385758527763695321057591087755156795516808119108952670945176416837984720815510605629910994403084406386638571677783126780315431088231800402719894268583278261326238488517563764511194193992228757860665735462253118800038992859052078129261516816790540702242748934450137039175712818558274798302991247368308160925665850694830600595278764040221435021533519242544692961024932638978007148849539328931204977116214373758391720087365413449840131121518818608931956999452676727732020250063157296122926981613645015713877987713338459247586370424983149000071235714053667844818577370193728677777829034353848906732921294526809825044463966221853605808296375884973748311832142470327350444192703488696711652653609415445599554526226776396369296518811756106068674767746931792633493897647517804134349350207085751937612971298089122698284424947524307292912280632877706866135680831584674748491414087486262529169475905534827266767746117629972845581983831004584542416872662095807095385702388784779130391974538869561335001012070864836904227013619671582441593650324520309740614394200236945247644616323842331498357516301405879055770586123438349500765478417560216496756990261068823622276990599237719659703611690815264057042163439430664686561112519952232735225764942578287831084458903108907924739989432368726769253239233640861715480467558471558160513999203583049164387730094693567452604947055747898393622693311041870792851787811663558195169738310247005107132653787684756439131695129164904011469046273795600624926659655902784774255696451175788876746817434458385492075983367570069647084877166570831895178591628517687912515218337761429004811081562276829435491311351858992805851322427034492139391846634148663439656788462746369028316006766046905070900085715917658145537059247082577841005214528058205693806074212010893009638370392517227011503444288939543595487100561821083351431596821502739859770251330347664309205923795040397153754581934772413007554693315275625059375331262780709773687958356233940313088085957439630933031707795800981099199206836412436872760917646680694449150841132739273854560911643472386050545669485919437186433786287884431198927517446251772250790408307734963707176341365769866464319948490949128098172911184193320573851862405986546475678881028090846501164455864300286075574357399905515809043799943742552670783610392226474639440554552607245105725955616490917195478469285197897245374022205714151252405040675939378150413105452958681611210788008992095543251717853805840659574427685447506958110559142693676579496075066917820987381305900486809124628040383481306080511552010719717344911538830345781445403343385184494747330350664477287456775051143179499339825004676187707707273159924777174735603590720200493159257483605058639012567425601226769012500662943462136128445806558243924934868592522586962341488761050243232115294198654058850115065737630328727952829254564561333077528233798157561414543259922131222833742880848848821705129029530270250095791005340680555346007717569452434043779206421190456076857860826791001216441770822235793726013165250268605790142484242957169734995217045242866216920928139622504396829454722361295370714527342409914499928209948332221987399165756948735261960946059903412933510744099892047356140918092900921411377020922704825932880538152316599549597155250518503841594804418929339522036876146037350082375049810314466776088463496741781165312590284386231700907476591311190389222134941907788409665690684509270225413399803282483583441988635965881356721652779955128078601083983954000479291014460263289309939700313289749380712266718378225801549051011329108259194249707451476011196854244593674346182788537367251993236448334489300900749441016466103540820482762131208125811982554249414458053453200229318865974206101361016616053858102948508650188076720513741091697843962105786324079024550897003302551993845052043998748169263237068842427321924597242932204196923416032737318164706579180366888060855379843578315584381300816341825151521537178275058539092201130549729270009052198758382574738728252924773128638706359416042716872848999394881071733201488711514609667949658618052949710047791412213256868444311172866457301316084635172341389312451186485689965691061473728674235493244319292587752644430881488286723699716799819111678926589547806973924598753511393159370002754520966525545376155174969896001063072810239688425873948454675636178119655694258952061932116977064696452869218867389641781258997274646603988093545179298501962498990990545446106951416019133996997112166412523774859492638260128194823576349526998995397560577194957597947150255715025914536372730072646703117499523165537657860360075446681938285860666100677781320446946295071739579891734731846920687735820374973495077130268149965474507005209851563777417574356281009762991868720490044714367513791541496176506479647240257726608599336507582539642250770040956522129346562068039954706158962315231900397337568493894355700530158620132866747520652338657856088957772730094382418223716545840703127824744380900266638447018134424552165368070278498002630772476856736338332377735292577464584258140419356827170774635014092864495511979884258352669886822232106551052825604276561329802365273878640175980324222390297911956371786389376106997205161559410564309033991018600415483021914855422175144875819960826519333385230655421608248873191759333183851475613021644562095609452755914683315801568499461112426792198367178253878121898906881709878488461202274881492425430473234481190086936963172715136183428598436768216370319924383435455080115591765034322220876006339704627582049704232748710041652687887800629581927162706238673468718525203556297029288802389597045837012811314178886463933557851902340604362402763193069318034733468677769880858031218862962785083696412541769911706215270380822445582768244689532619905094626794212592598103660467175801550287343889358421091526481583300247521732731833881256711950343365381475034827838706376467072873940856233937218156451396900395465565614324618674620286453558618713928419567034726886537706520929583226776587552568787174604887975756508346178196993592743456383013473974090397225908566790523839477284941546375802593164934919504798802240017235572064748769443082494741942791141495217908878626814192233687834298677771817032508377200322741522356229007398483699150888087706434985792601508230381195340458780498457978308318509440027892789150215773805302134232827270062144245497431430621788611510500634591736154921698945960328581197320177683648962250097271308305270058249279722661282079755571595041694630344276312973971331896619256278023313055281255862578150550972308270330891761566442871107769070169683523254450061455983623957753047767964031810412211524307246511067944342367888829827876815743720653985895840419848451126165116857276443261011396335133767933363466740641852592973788478630898306619827968138046400428110905513281275366511073062669602148754831628077654380181102898854144879035217962863567122505587908296268312392537205330443060474383051205288139196545621417753044462531361811285089399311830814587300746065172612174562159537466157064502468299403618065732149317255148799656658576544495527134069903763063991362138424714881958394461591996937674205219589593762158775851160755565627513004850325060024343296670987660749841150834997160410757773427865811105143741754671081261922148402070264863704622224051147405617664088713329903009217877525600377488870778507984191058883656635627108072469032004896689344164226286891921298778163938675533817158676352431321240787925689035452053542749843791247754704132957167729196796363277735330386928853630105985700464567825539788315723064163614258231531863211392633162012440133261168372953547536674922483882126722987733174185645552660262893682926844493888778395977981390607764202107658325808884799828670023704412764200912986098848612158113765575836833779949286509592577616268768122977420902227442732535827499270193199978370159996856030452042290212144694393843667008116104831134384502745131883699776430120712553948191501337367242893227801153889065452682134042857927462459978772414985037492438514418478216242368726350552179204308129816800755717012402242531625740349586296362229606197633108870370966339410101539241880305582303900168162757084072357906884751520253236470097399539668681780210217099803007994229498008081881163462988123402370424220747472193640834031306163821841222546001606583382421342097242523923093293404586847513405639730332144743134126536225350058752321457146796113445679057148457895988974420531102671476322510537391664048989829088662884161632393101109779918665561391190444556862699050047640927981707159323057493360664854801024426933448841773431208143384912994395310634195376758037837420327371776690076853053675942881633398850903544838479596717806922771811152997900116450201169720106743912777241631176318004638739385088230950309309362548892066473597399984699051589541841871386211514925841511854150631429281494831909684915289116907515315385250590719780602677539137111934631452168536514690871060653439956873665647267758731098416006135783568002888712765174729790867371776531075419612127241464005397746179873883113372505368829145740509796872845075640358850128560453454458733450795712509471220485757845926391672328706918119260821868074326992685146056257582723998162339959684190738333710620745031308765369395118733121015870984344002400302724505673318984899952671752236896245101284474261878254559334976519677353892110132653913403730364438940981522905330393597133416372924867626013180644402151983493238539510786826484438844491407186835912654577539167780190399425991046179487777687549497966015455032288839239830509053019008505111450121718910129126636143336456011080520225749693219598837160974048153367525513688596195000515047125936097037946982344485993046707801601557927435141927618977001109601356894862603387415372881060155567600212419720703131980473457515892193995871670916782080314033472512041860527757053059325370931364513897837502548733120870976110702792778021397521714607868155691287954003154829840983872893463889102287862593792823278439407370030971242225638017995501811990485728260369782417208034543360022371152648508672755998817323949713748530104653571847737413119298571873108863128575932253223562674344476041090952697530173193915189487708702532126631228318753068594065856813256043110818517328618041964287626583899291617451036211929655877877643331157705826857543731698484986674685100001959287498622633239710810560506048627059200720546580847064417702861064324120841544555377487219364965075502117651912168724986505823871735158997273037618042240942293655303692445466685767848671651629993294325714087044445559401913529680830427238292178764104342626728744144475998753157554010047453938753774341845502592193729820412576312067984847778176916941862016982537420013726362238929474444520722499934709858118475652922979167529982606294408816955255932667963264310860073766877983646599062922494530589710491035565135676447087058950633381292476993103078112366040787310543117722793467347389532523374278627905688346735003821371650920715885012941413492333464513772522823251267179423994090315796626894199243903516870942996184545968848157163264758974854393120018331812690146160624478661591000087614330770004164500466848640585280167633097650653867809334163485991594422505905728720936333841749600382287537364393489910467598987199526149069065257549223908638171829435237548669308323560986479856029477052966168017132162228983382478026802290916959407793210645864510673029999347636416396371366014582143572539573507132764526435919008198210653484372222614324651605917482853661825570165369391478864403694833897426257701771159359802317362711847141597587816784319291486554529182847666716144885242510141032548818484932628613357181597319804985344369370388916857983380709492501565997019290778452169683868441119515176520779804525183124377303564640628592664115432353352144459703026779181229532503825057512745982862104054318010041602337265188621849159623553558123873278270707049946670977673330193687689680667466338143639324242454096489444595702004324257737269419792299254258742094238250444115190107052076981640512612030377968627896789793193242995016293983060416152436830824178011914737339169290049517133653301849517884691956376872952753948553412746732726891562666856226248185930417654354858838586994859604571133875200643451200799495377289226862661492968653224694850872152773011010335401556775373296839948365249771685507489319767734553342279204331781994898882212154788745069039060235204372684482341073987925536878596290266298244436576647788056382867125415684540077938411815632697878460780438102511388701635263058282124748309140407644012872667708616118589749737622515299397947078721148874273071678806199076107516155366425064445972256837118499324791259713987764082097184275185631184382211951026416251760911655046492281709371205281513853493734329984788646814021798486851981885755518659653623305639522744117913570805565744230395669480544196592430942686720050063615431114596258916981505818048704631292404523369506347880680435584109611683130679379481139431187664771261942219184655904352174915231219379731841115101471692005115141785593741646013815751764436017412815510573037396844296254261702289071815563731548728242636692814075804999707520005887339805546167259876791287367758676698672054744897689872454722927706518538908559076410758045647178052216719258914924734781803320163658116625815649637359744464110871335218189458857394372613871551584883577266881998216887217451460195821229612708863374388618948888213291826466022335603011951855504045028036752996479982717381629543961955194141449257595746801250689204378342514415636542891845301443833103271466832085665260902261207508507338104268127662089236939517267736083476382852901151143203882153485584676223342049735775584677446476721883134700814830576808026526595265319093266963593969161559560073336037887866633203469911718119596800831006071654851955872964449820604804738667119751639129733480535771674734514025681459357481773430908376624157981452544546589673100895035762438914493046171459904228590308930548374566687191109304500498050166794624629848514493281697621698307995773483816442827872584427621801173843030817022693409036682121692794461820444884083053799469846619783727667976251522193368635416647804376768591870624346670761668063175209102487514379850097977093060119536830145538647840115906804420870462211026127005560245419546405334921224579926913352843203866499651256402461648254448823302969697494222899773037261611373438755174443780049232902782616085886649223920553100583428593375279767905238740745227676293218019157693794801909921778118623498523383035396062149237396617386485830536104953018472633046115857892475219801261780618345746306382548587410053553307057461000603665766234983305899472725051286691006308616253714507496340369050849041258115274764058223570880912310615665727453487990183855256288751840311016824118936060337175080168211313434413041437816289971173074040685592119762709199929719530788934664777405875245330484880976646435004808674057685782747895205718203885233810675900326967852018448172388138368098183222372776403095569939440182447331222626172411175606584322881123058364975261157377772358472557290298864971900571281289475681283778348500266335111713598061144185527703297433345113538237616933829603412720828293214131528358657141685972884574812980228222780590152463642988939654291958789638579905379386097920194057706237431104887043036981291135990865489995661192194645936114492711540179481807376728926589050239772487078258203925644489006468405750663568281060622031511257268359462536659961491146002587480224211436007159800218417313298258012812790065433826415918025104547629079989381700513314927388411351231611671961663875011842997271427507137115623122354272822436795338086510766356115509714157929285918116432593143446607739941499813925681404972270172355836454236314984396943667097533170072375510349819189079554505818290790332292610283132226084113681564009968509596655261894077116586623519919547833059133624093611470240501402186595070234470559131634927054042893788934909249912488285524458878355265113963289083863360763535834342680877028387730603403663619678291743528530026608285626102364462927776531377486696407963484938299264518216409988862826718404879767118225027918326076791085012832601614760876790573950969634832809219237202386675558629337467529440500877033339234387625187059626936466875838247174778511263566063388888393618335620855722924301020605770048266888889725812408464769759481414061539611515022574086521875648849004221774483165508011244682752069270636312538005017411522957410628251903540844666080374967378486691144741083834809290278931561065846389902575704967342708758766729702824745799096018602234404944401195630882845009942677106451308297909544721347917629007830764486285396974651821410184851861292715099977178197676608876430266305312838411143653115981261668425688024977274297675597094752517094627764213483308851949511574208173574536659697175798458794240446893175424877056949028380731868795646359406457879916065961552235220424217674443554462073325193790755444051716970977151823174460512584192276316875309403170000287000918362247815902479857353699030194581359300186522056412952614895749989965658699108147071642710319426723935057567914628750594521569300494019918447833050745392747841956981904516194175459163010588736614569946561489084899763674481334562054233574240393545656946211809957834953840378220282555055298167262385848846133141842228414220105564270471389028000876865110221135659313795733315045829768084264192504542631045768523230687192282041494967125426159473634225344699681683497238115666942187324064580775069104469123104114347049850121441866352533921824455077842928645388920984160410563192258662577929848741022355203699705483584471431158398157916508767138589607786217740939724078744722857451046400999002250085556748441669356180599539162336252417995807211723481229598584667010646139271732484952771559530543938603299343303424015958658262000926560979074288268911042837011833009720279009504162955394144590688477609077028146628746021462284959595350045125368335793610186359020059844726937171919996072602386762223250130821646224957688873635473048165011741136640656631938435507328426301901984076042848884812927365375958204524953740396341728366612205826214690650138512776763563416615707019383808542777850564230551248532909570562680239871832555511197914493946919411383938184899257695982466716415696964711478509853546903298279999060830080053307848845487190603247972572223249484226633351437737586379584132480974202258464427264255590860465002644677120050599467744473974467055933188828614955965592707279288698447465103418544065434174829342491968134999261126007527764349535319641838108646801961003376675973615301132933307553055169952618224495202127435372816337396348708591370029867401495539622277074575684003730398016852467348381808226131271565686177471888838132363246298161236704762481220805461339306929556456867623072599047028391251017902631651933670660054771236493173375703707046422705360677958798805418471396700309140232258653164174699362803398013732351534238067758565257672362179199215990754897527423869070062724694463757220900420444326963738445705629330494985858142935990140427986100911005429016375690563649356579765071469006048201498483833578837199864014237033737066987810716017910747689986389841382129897950444852180320850312811798201329605502785302869930582926258988887792420050103478775371361051455650165403247610479047768376528037078444912440988885622589684415968940900257475277965077154024825972350916658951940878750386856653017325804795795794746113808411545723859034352185132668395510433296671462892565885458080320429518730430313391135071715945633054510655601516965434271695862616184301882850519887119759805004089423346192389625261491324110939322764856637444748068211398554705760970433331471740948178698455763982817326801653610154703403066763986053792923190843692912858203513555401927914213827365066631647558929428371374259749810945732635267351533922580704664986141637737625931670298292734134060779435279929559780471816626632964515990824714287563625364948362711786279087263645069652254099295813355085878251880858368536062315684510174164681740552595265408860863231864732893193618378004024557020777502620033793984533490319244825127109423249943917673694155843016814591663999115452782272848367846383591533929010312624523560413451298619249976454796505991526913424626182734885627429313400534414134122276843541216097551419701229895439040516772626993270826914980938791181507020589478775781772503100529830620201199721329046151075292657054296460498764466166927698471256833399414487446258650247744438505278704840410296606941683137041344220533854773384700210202450839864130693221000736811862794594579938140085571054716639752164487332497487755301147131682405500176450123881898624432865778277805925432897826039416462053959658594710351180331973261625441958974805069053365137883707218185233755039789736290767660526013679581636848114964238707254946449195453744865032730729381313782906441155553784148441381493473620366910470178168965350753773169765907097388956154701742604905776360277258360269663788251855861603511199444980757040313781190989589862927119433635105549270426838089079169594377202429682055041487955920239704632792688143238319456933985642729176881064871167322324890037469056994837598845427025289120499592252451126821967971373527297384004924474106738647240349875672174988235088222904576519312638693196405788616960834072467178433559649509163087884421257714727062513055489815895890187980155201948950104609130100269486135877100690494294826420011731025465070628004994392221429007800238168154818386111913333391693980033805181748878161673822102692375947489382681937933330086688250588876954522287860805649816721806417675111730041734912136749567823842847381255430341097935664476389237980511908173986612637082497710772646904970517495112419930755516384652099049905138464915640722963611669684174355657161419495920826764710116001058220645117533395280252118640814032348589583553201514107214538864239875443248569999187355571693965474315794698463009112485684371344742435563246958797815827451533570321769443579314473608521479955956444529757500450345745963147440427038216200042431424593522291380174406985424542644413640830554526160653120988730041162610170980532321173433524901236027171797583209595938047075516857346232112252377229227852276750056614294074062263684461864574940336890007241606643477745111797330039941457131185971407197997220359285084823958294989991844698176286486177004280196449243611606192121121955332002440931962131798240298507093207636915829796737290500096748595453075556054477183249370449323717060571946370466593462066731348436622460807698810948172850756270029215655942785451935227690949984991727378779036926747811934164478433144572265679072595050813446583449250744695914570881474288184933145748059541313124937564780593341349230069006071909275313642633404301349202242181668722416962765659754867165854292168654958939564831434166498521976140133317443947437686863040124942026085664292548216252090361098552813156422488599181867518654538484602414685680481320992297125667400206276016527073086781474534260829906812535554408322288746333664720985009501932906374250659229983025615248217848725809500793933956833578154452609918991240240938164970894898748271989172932080398507468070978828732497779590578489730957012224983556464324817384902872044166276225236660851406711778416060505936973093308029975262354032300919965881700028402198133094033950895926913732263501601928033629390730526152708880249480701137757409706317837231817826008889363081715235580224372965026867747618058884104768730661445314196832914010426383981062302996906799116168602418180680984530487872133773288583640944267059843183537140712238544097601218078449634579110414773816799530569464525578550077487246739268558913155205432313952722436119083230582133279171594527088675527970271976630711501554702843918105985976707797344810779643783516915254974713863604975942525545594902520586606482470021515819619112683134656729968782830467617351179513618840601231578801475650860486130809020117173706722495645823394248979500431607436286445847098675018238672687848661327049279502720614179993439656028024163078486667998692269226385226102028393967524832980494828426248445950794054346667556696049712123429205242234774358657485418218723063126860017799170893029772511040797945327391584646758120596960948181199598213033941608659138392346888317060651020130879454790059307555241519006608180351976671864473812040908843163664476186045528646024545215056742178810624185255838102417533909044834807611922938966144115233455548591343153635634884808133683845246871699158193779450927524857820830338452503926110438324017703489344698889720076612403914578687212975769200807532306431004138493091747642147537400969701143555743925728153575555042397719927800138634749470901753567122296181258513196371275137578887904648449303713444120183798886999828717392070960923217399671386853220366305678176967692166848406498311418382859109235340790598434338826104471938707633911268607707203735761287811977562579099292153576075765814478897296527347274782181638168689397803563557305478694716890540048517500540478279021603135699042131716050475496484083855416400205237515724679001170463147209907523414659821534805159144770882571449552621213012295485022777587615318047123790368766242330677709835500349688205250728706854809031352214363847499440295488369225541607827527801442204722537932414851563642050744949600567080571985628319525548238095393370070311632384927855707987087359024769631246220507247592404974580543868281744469121014177044669048917294852842865114425549956294506352908109048184255651168670890882194845592818208239237187578097900899311062803122880244520646423147803796998105415293165955220878155996522006029324381980454274454237023941888779200992609497308316917599356318550564673860723736366361134743391883370248643317077711127316186350857671979656862054683430356689408209716314860315234464139955797573064585336708708077164013360884622256522586097338389839586821733676007656607905726259399465077296054215382446149792444495417778362956053307499500946610552910340296234335311718762915464452857607300249751272931427211034356793696220414171204027960538608143722980048114241029040320853005449932773879550322177641140144161234308447306330684653384015912505673434970580561985745377473080993630879273967869636069348588774562928895566856301640610964022015032199363735652593117113228922689889199745796707832951146500289584645482733557238081420150180210042307827870187754423196083904853120303904667749676784314881284766087496996738449062687112983023325974346601025608737570356574127880381827142314900874537002429894208607394603674157186689300676992554377720221022665220508613838873460662709060371869667017816130779687557003647404940510104250243959872237416606929258974430603303631459752095331009541048931526200393762321376997610135316892200388737098413076901745066127588517260180822562672846050881823225615697079622299843358932328629996379053395213508047754378623954249937093920397814068526776165588355088809303465920478895570382999015679535341944164664334127725172874676739887801246957944308512264147106374354152674594172002007145155618998643366009050595473089444919395681137967906929636167175999000671105352057890408054550086239855920271845954067063750623899779898388213776372198330379107489288323716278183139460696390110138871264567158406764359689225954953255522856774516606792547106620282902073163671885055933670052403142410478936287456068597747259277524532426572742212794223347371574633773814838542213332088540126105807933900653740080196557939381030167800998859413890600817715268214816664270717922065731443384345761813778899656133649265964114691313881001178152151571573808819181722523210365475005643172109371609491821744624590356612924730675778036874876047842266045579911614262668739095273653341521332817381419543971919261769231821037301965130001019152687116706323264784323314746718310423339473859885847448639398691004868621992008561409051350253873772866711217215574171258235473151467589500870562660561116568891743262183057852012964883366899498047732142971940980515586571550723048410436157420332092798558445124528715785774282911768767601806306595284270102666474402065337146193921138328249089492320498727430155264101692467889944945745866961021681817112551983750353393316366921364789928867907615021400427501208001991166551424507977021801409874151726093778584938298455140763416322130101120050353599795860628667177400969605177864407642808204316573518560532675081259830969927171580908604583069789306189588775263453104125319815150507186631682951229611945061673480283690260911411155540501348319083836338414679444717073813389098386393231555607892218041130126028235565030728547175781609941852732554008708713508344514373744903201795049128021052956741042415864990841711978559078534883002438399090530647409391633677668048733603475250413352466992139873922264656077096162612906154892446627083482825002432011712289919761846505584577882930831541088113730496426855749874528181932523611020079840089689645915699350647546230023993045641811018805866111219909220764591008157736034447378391421773776339681353170956115581301765857816007941548640931373307969224867713418407538710586851308871162311891673049676433463793422391075258954339031424531135758055302448644118347028338113383537151366045590501334980835293378350524883851394570292088898465080291878718237811712066967866064322061513455703718823249186318805191127126601950764248289928854128507725380262999428294383465967162923944784720063895914195425550724131680160763275173371512303180263241868611130126774595469664527846428013301174515671150415171673619998955136469235384914114430028949711267449387183091405284421364034225103165252011343469646907820953378112689504510558795560461926190880586323504258097334667847572525298178763576621952208040119979549705125471083331647277054256438812800077747663117942800251739506513363402821579809197854559928303801374287900606525529626930731688527397692245514972148013778485120819371054003765843450665947679601260610157663610412411142732918813880748193181441216411666562567392917551686252340745544628597688652541762845402819043800327329041484237318199205088655006771392777251454429115520972920257480281959812708045600031083710392382037155108169025679404472048427375667911263159026004643566674793632411600449169231208994274712956603014186312310076072022537921958775535271703398063068547694108788877093099579792681230638474096591699874901320325441421745878093322406426436257634979295491216962091174200154001953766102311832932608169014250483285103917257607384510348497098597029411733991937574141641776713642932773603414597086062383486578915427400655297239489962239755675604230987429209175479020852380136345387779398681780914037778882241311375755434325127546893484814805186799891388143337857586205818053090618326209402284083119721023835041024480473323965696859081460819879319580115655249292260641146204391531751023320386861314165366399169554051221960240769191205833404858103356012272616844154583902646046880091148541643232243950230777153591771734715027662174454845837325425116086337525406473285568198724254435843950951933543651477280169636630319320989454095853427359339459345972707000667619006910561321725523647576815439522127299484044371456876421895958556261828147126376233464146835778172562670268311903702616412185098769172304448049912790418442253579056480271568309447501519407203398932095030267372477897114109322187288090724673615673116282232384493801596692400036536824603398468265866292558040292654193886400712383544839575392107112175095353993649877755397654207065998874568121257668372467638985005035870394929887533059942513156724237996546110916330548007184577282405302437737857549810124310587754105151832038630908885225845065239202792208740855268882471012691753869735221218504667824617691577634181208535343999696764039096889111345837693275049879330602536197531642836046958467623232901714223595095075392632411204191513514969735143850822426704549178574089258014189946292912239389315406921227761382201930223996215651997597665317722470835095143750005911488914895883125173201956731312809560616188577924347547955772197432602641491044946069183500967404898262433526568243331786602188573846196384540468366697641512788776572120815225026119975366323256858972304863764676035509847522024255437876684362073367701613086578038728976884844933449121831089839351179945651711768981187856687572123708309605441482869629512631229799346686569301637550117789654179922280218220433119089966976924738775322359200751288230879705819605035494956372011867409550181301569436960856524361993139049366862726158347572174487048864225221614759543320077426779867398547834074353932541328829075101684488792750707144186265319523597209229609667599502864429718349960396714429136827185622941931044721973300212111378794433386346248934538804558682574055042101654002728611778027061069356593768653232734033897046449582188648600019621830528862512742192318223520648225654015585239810310727650637919447791073590225200450902830242136632541465822443235280958070728425970147637557586869478617036573517078036583028375116374929868459359957968905445940054802274717048980329031000785847186358007034336342575733442461912830021447835694711090083934867317420211709286941736310575484190754065365569276817559593733970536163029439334279107007230326433188087755754857535023230519583906648771670139707586768653613207887399827763546659349729886384845078755419982802450107761866861518439362619013742210667255996848866699779093154237458459183541960165647628749732270938344558124909988268904027152055305022326433046164257143327079784814315605098360649936591685099828016926462198651546751404948483730973158473831977850657095839488706286536763092714532445862453251264628712034566342138577509712069907975048581756589728472484649904909446748298250702904047862492138424446587856262750356503664843899737358651952323418146333910974654680298636337875484131012277648605038518909806386304496606397243300684267161864717760766435315593088557660824543837024172250724297223276640659546543303964972619857478585306149800386927237794030729091633260276713267984039610719240282237833167788855646656284622114760788951291279494039809448451551127536244333098181369491420694442914068469482017529200691425923161877341952345357435840221681539159675892941025674337459381957989203239174210685762285596045511789200800705740057567962533679236081060290470989888845267236194253318961665797143447645911671563259225177513523429871770699340422212262144525255898556683055307866078864638575570564697265029948095725589762989775546368622395808076138118549834593256422069720672683627262905212489662072151826159153531082511155211492814752756547088084149299267262549669861286791413038001208762595472892992326103546657652561051166486418872169436376039707326457031161883091290850902835720283908179351742325138582854777123709657552226323169384727740322463133962013961197068968374173154179120309070387280931934926426356950699240781844113470290376430260550220663857399954912964758789954454693648404429097101364404920061377046009394840408447702842977824157386577026507171027857544918406434459222546080835017489154905236901952142290265789672790568017917335234863532332183909322812396841709575590713620645757536389480125174189002312483238348177830988174640685568196113773771854617838094042044995002458613252527574896246514703045823282354390515832296803949595774893201083286421307473089304252611370199728238377779713295829588117808238947542832310678938335317235819717414235503544562070390458427703233767743415127654149576684291540125332861137624282207858978289238595080807123278254711553959551996559113180196644136659012025870513776772597366071262585716445405738411450519474700525334921171912623154743929768941095584689282921826253235662345067950661914137374746679048344770439918265533220641004897525716664042441254828319593700419803213008901046163981156127141613313619711394919514333143101727791679085860413414406820401866868386662598197821345018517127512209983702673559354342793726216216104970157014994604554741994410023434648945520392606223771962332241116772535747763349864340473070488407991599592352227479893314547583604930928987259666688290104009588421366448142359521659295718307054836586350735959057882003826736523855373529032285010723889746383529524882927506713300620624437259272211680304883769012278372836299194688481190838611595265831091802995326316450504496842477938804440602325177811738397509790748776739772571512510397909365066713144658289604680030405244164483986737173545823397775409511814175297365761130555814119816913534588861595335238208902906241707456702245571180404263438444910780206332337457783534711850799043551556334622575945350302333375712091405112716487852430562749147451847685550706142853461869147800152465056055316307152126216067296304119261573763766885251474721515969275668386646959354435350850350262540483693150795662579464784049143336725759685816535640842727903056481631961209835568364314305528365816563567606809886107293471294657523618495794841759392694577801076841577065276858327043114576735109144388915762245132038222050723866862546573312048667195528828950508928430247220445632568727231366472895422502586894391496510458937537049554060087642270873693901924641170713903425880664825738935863169794704905024466070736865695574943155118469059270994627015613971365267937877832789509856023135470366732810401522725401681548694011379275006168911409485913058833392263625182816111496698807593198050533676922489829653412208445773008886732979875922461944925535996161361025908571157308811774002540995895429677751497114521290088903401647284515262534930983248283788742411749377477865382128577805266192479310698282919684933789041787682728114184453331572978593206988562634377777934025075584341073846290016173503098013835721818089715950595779913214354124675283741286694408466731254485009339890126416153344556489003373946691690049826629788975944131993117938159650858204876699008096307800595784968912781372671878855629611356937014369327997931663695595580519522389648366283058973546643582976045459654159257277620317605206931474045235130407718424661881926880237107531040508041270129736642431650175085659663458782150213817031733009644193784684444963132858152121281522520804977165277026639543484423413817501527122958354534043262435198200948493332850449737078404937246770436392942835872379814382077476755043409730169081507005776799290169707287532747114659177473828945211258753750071050704904266692199924362274723384281335443781129120801420113776111006009582444402063255888305210056170372944952491254075887520067785274522962369378802233712357560729405390353664756366517881030833137610243135824482792363301073262058159742855546799737449274666500837837989099415174206269054898447669536208335729645071195657600606239376891102528713162790132588594875868958395468728693258715464987847034791427681758955387177977293223821257773483529063275892871506130538535190317379281542477450601600427669748471148934604935984180165800450600810638138343296187751504691365321352684328789428271344056615507498816821300420348773982221951440220017313878828442930847732744373757648301447813794123814044682047053134981208940185342894019022679973614462609124432537888932320212230376127331945017143730426330908476572318793704696397479956176136187203407649297918697558603941232369778685006031233500923085139799837224376708495080224294178965995929516862586403248034419751278907486143732345607763247639380238621992686464251900408136422494026264169218999343016339781830018728002573385802820825728895478782441279415470129509066292655371930047701656071416935242897905816914520415027846446469148612571392556332950572701072606346312296327752286485050194879099393908114386214147550670788595083679063752735960757982255574128191284103699401966569126148440420082302625923018085952917092042562345580187093624931616120928793837863622168354137358553097234433750407546177156631529045468136031701765979065565258136545224819267085903533696219614180874526058074381701487740637903882754375630390665469179968894867282864291576966397046436018577372698700897349797567930677029501506271312285042484328138315025473670340200643523726077122265100423409950130309957380752217646905534678814575212770285972554146885290819112080808531858656975481675163055973928900100232117091177353136315265682353876852909049902375140453663117051393754448059729308003040288165649482508780383879366516436959276610259084923913446185326285165653825776021634433520730160929064849952981485534893945446890740664242258593882528166056480021163714148119821454544684637028393899562510261564982256596221851509884048963944599288592440264570827331006718680610154598945461808178460142256244066009752166768028035086742460378020475317609212456958959820337766275584822149125849361666418203489804886674466442287351364155470902413322136571527534509880892515151636341943648402295110757002732250398663668848290325565171186945605467498010815620068026354286767185570744490071208757935118582732980396360915260284055507225229870597167927681790828018034300527588800505261333856059203677215536304606932808769259138493927443182534234957211588163949963910227153458381580078206176439338660481755422669744952813672784132612062041664524279305461594357334100232304497476985198095397636628567409293954998649739271642403843355505483714770463264356119529707335097231246962661096223554792803578487748812365307666963058498801070646374533439046000440397221364959926703880916198607980103430690963983127478193830400213497148369790863665962633269163025514277873632970372735090937646973453303439340227932866944973582434599943441774580749579742613518613359336779560934388767396823688949955726557026290684326465966720969922633024961194592850316137424877425556618555839905739605989196773660907993882610410972323915908809677249811386631560462768332366924080226352397353102781035355749212921381584425588089077351305756982694719193060591088513986590727374394817833192422226625793996265939601422481394092600858566385754951196466699761061090325895752025510137920122570129486776898262193603919214596856017109471612496384866877760509890897960880775959536989748795847133750485515480687205822114640904837559438337287784784279455470136841176510397741755417320688153963304036465954335758733973743771903614281186986464404860361622595243058949950242060778392893946705946771889666275891226877515166492644864941883095399165677946053560346545152055559498857536256989098243210484322467586089207530903927664717669839568387172802555653768516943847905032095703306177857463409069765657869911545431215258351142417102942968797215147640113542286072746028977445327865752047056580122681012762909612756313982442646702059877045319311620687665817847970783263400267137305622844554656937810590499879550437855710466727646088046382816179561651400310831664299955851414466965364245703679091705656824388519712536191157845802990398122572112645953955618503549815130223946117414253480192261417144102105827744575461896302358268586878473317125040539928956098587553799890619666876653519985844873654015552586159644189246042015521244898063464180558979996982237512936866781810692793458555674630435427718250392820742560766111219403034087803081877366517261123352277610149867188819105275393427734959373863589348835715054265434527631231515856797550877646758225063926620275081067734193951770787767540870469172565371098407256231343148338896745697084098235306518055947755255089136800435276586217503316434104003277110518455416111557942213787944223628535649952651678235499071726086282060259258623472026565130055179887027649956822234065167639293661588369237940986725769096577882620076913006882170307697302921263152923119329588570827119471596806255883569543241861597011156503910497776610149905244562812393072283197976760848628452509257259013776161825671173658203901394592865891791822712012806493374164267944741705079308589897516028955308501983644028154095392771854326999179651074771753229461315795359712714424289502030084005274212720412483942748121244325303857000509296546226090445001450573192577538931686405123660571718177860321369463015750716489026924730906556948421659479318080567128817089232932916485186509868530386537072974761373977294766078142251873897774672471152323849920569885550647970085721553760597520529553789683373725919100083363409805275024120443394965896357464412947312855227561755664666479127634318677855852178027831458977786124396915621148106017444899672315141564251514133194666147966364107745709218848966115063047704505575612299319325700890495257468181672185250197074783516393960382274005182682908614208231205757079230064954761260397511038884076637344035969507774064478774584987165879050992231668357293762807644569400530487548170463022450189988364781894089185665197852364518495592858455384080505589544926678241037179236420586902835463082075371610912807509315010306525055901807539433731507319809178157522613112686380377002250582571064712746405224160050400365118694502710618770509939577770666708966463774984843865701102708076777207949805851111759379077290846220270994187998838418843442217503134394616641953110946510868243348487220328080625494211149384368166168609734660784585408754172497728189574288240235576632662079780683772983102424912048355644477844552672447321690227033076828817498258607526780244622361391148489364781860148000827484953762786434284100657434884551330458663656092349315509534788882648228983921554879131522507639494046692240139985001836419313031324495815096390150179726939077201472875953051790904409613168509731007938768705218442360876151413776294387808513327133919932541994485569835607252559968407103267630966338673761176731273013147254599377597262731854355793874513115759482371727233020187723082369466256368339093661590599303197184558763538877117547946870862721645132361661066253935599984093027415474598287054005793713254982449111598168713211448949172699851084408057315884524372722176089498834120164150397487015252373707696387234766411333867282405916246822384080360830269193164569253587174838061616117152989839151259795046697716152584696954003764294591560659388169884180500278800027677171823267689381584153071762492425134872661459229646295031239255146838717477646523747286048686477660795614036141409376583331465186557981036491433874859020443265949312033738387563034977932349363857491337103888424808571836584054078464405609658569659604415352027074859894062678183755705311214027705776832277709947442419155761872000139792968394091821361618045654551967741388679849730861086505479591263559010424187009051150079893981192421343200035087712188167577855877264768310369772269508233877820554482218329189489046620680729582516138613418019393237069675436353918406610166940590149724049116870539578609695726793054261544432341326532650758242064710321906249199444890260098032553668391252177050278350545557998962094955004563036332159461574258502181086083349553966016150094907282099020035801913780822265232505072281096966175064832449032838620757859240081043248904568067455158156557844213590336463584534008855309302891201739982824426791155518177250774549641413701952362876683707456241210250441486351499185972529132968340738706125609062178245656494046574301406897151923538328638053997048953753313488377930990603042899792692275707664440982277498127004341026667346222725658254280443877796889907319005676756008726965373266060068446263244022220025137085488770052035971088737193093988596955891364140287942590399505460873816685331507370869825467770359831218898708391595654061976376248193790464379830826910042356909739387130580455965097026576016718930951235367281442498494479960937838017597917192332679148466973863637489143603397051597364831420507057765133598695808845797405550975126083530186772474996406962499606070742584393401353937179766992651709372256119289824401684079984647876346789511290556507429874049560458249000984920268135044655301135617674826133914009041463229011651264207348763978707847927087117890603109339886180281392549229285875928051441650417849279547084828197306544298258276658330525810430834250401801260711168049612376534679721900242092276441969357978747943637449394773086228836970578031945803997556845795861731990314342727343644422942260687206211902061680585420927491259527982221082122367577542153899008334854344703839066618574400719049196549464337229719214918974553267367505318398040594837493479380183703265988785631804196802579825639332352073885077400729311126160799555339792444327524401069856949864344333906400980107661207589001627836789275708386623154557825017506351483411428193211383588762822970419369176704603812797948584232705181063012741492002447412438903126329842707556629965318195788093169813713329152420308869289871945496508592195288153208965278567888295641217544030594763299221162753182252221393114956086215941668467419778802159162026768802631786164785527062912197542563767172189405834565406604377451089275230708391920920560281893554850771738653522405238796813657074053826064063908551876912712812125334039051390260763567626300374475071448017159531069170727441943138799487138115452080121859264409814695433788759362197286145302377616627412854096079792877312479238478158299147873022082971259856485655618028436253271372207767435581179383070944243069351362596417604510145722327205803295217915078269632750060148514045086947555066476076151092370756617504555210519675805512759441314717919862271354333293260972531678790642338297427361865785716823645139617679552208107643777500883523469011511046315578360286121572112986963322088510626635912156444596265693095916648903972618486604634397681617405868922179796063489334176998124037376197860356937945403583853903345052829887681207798615919977005233450786773061020031438391615573246129963595269928547841897645120833405792322121048315752831492437901724203527511585659997538437362096634659502706878358253519922804293982089457782824869473472488935254603918050307830480962005083739533579284944893033197864402151729471068384168404372275991570159063251521242995320341442068618285155723183943867111233350719400111945830666048398692141134429969300406790370046155132983203334250451636242823833774057936604189250726092961049290892388458526232988977311588153174168290598770573115131751367806441080923449602463587308392141788342379182287944903098928006043804026983876682413737218753946513743725505474237085568928182401279991813500903437032410647521017041918156638645991276320320670033892093659222515806832953089821754143515443430876878805105190590153690203850948905696309668684463313028830125063346120023743088141379172783088640694988566818327132235950119996869661558460378758663885903456754966889780256493975291712822934038745416415865045064955324329736825898807514729404714975972628027714390058501144922930564888388103762379016489524794946606658839111362315990010878490650512907387096978378549725986015350015779469048637118646883241903622565751250529220485742837766525624351659458528964812950240180588247335104060389835199620979979145630890411795000709968871489288857745438118469790816619119986302859795539816504542139773125441434731707316712619964947958851665144892301371396786518017777858392992131441746815120054831408925277400530371080485334423601484232605205709381814623454019386267476554404808786532651353578202619048182208725602365835757949042427603937120275759145564378661392233605514361475920064000757611046867593416094541441201735731704036648415285416213951858428952884508861773809039492744008427225190449102784728220504898139716558152826925955105346036763556134175748444504102550417596452052555189397493894921211835924638271096534288738738738403397678088013709214988954860394213987217763654320613112726844348027965322608026169304921117267649925756901961049228529611690286036436579400974174714114206583210336747088319126826567855153938362867461333318380489045067252447572610319135426436126195273405407870677738748764099471058459362705904305180828149253237214328125760632389047434849300782375421357110936792766881154724080717417457638095359833304609404210003809101036214035614332970328658771764249213344624705982267118496683602406790447437650381085960903710127465800335065166920873488218844490671954196039632849729342180529540241770416756084327117324749673243973827412877475050794518298306951513180899191987715683839985793969677341494385276041057052236930051098150601988228981380773879984114064814106375701040553612672519022448331816938631582007471001565528239861361490711612894568250074976986379141032115761875328956990497843935273584770177152937832702839452826953378129201661262591434494892172853822995014961912152045314691497947329282721311376838501593243863567850875688675753473391138006253298136857387890778565883242593262180830175129221016364546347512228312036030457508601453305953912213592627728942641353464928591250441794027781288749789411345581449156053263360041716231142437618586329342484469903271827239591465355801057745838714513966320063392191827668728557610994818733512280797721465929789163339657118621245540842692890974697589881459966663431080894080299256678588533331942594052337230903209749263660656114535748611201021648061987721630619679113743443895298544380050253646077053218001754268384313560523644125078687663597826492263126733728105292253004447279343253689138136872418497717740414555107293918327220398055800298762552566294344338302066874295933331717109173290652452216668090676329368789276026455854479741641345994646176972999817117109297661600191415999979995956656404693078160351098765623047719704616464980138104177113350117267499275227891664106238819383836184777817779815200268235601150919859887328661618269459196908616607444329390064692807578520069537728695174985067320649760887600039274656023867983912140358005595184768232868620558064573949060205422188399342550774925535847654301094099317513110980853838554108968210779972009892010522317855576819605726180938705584119596624669293714199541632459986792893285233117400044691524026214246423853240758078944937492952002050655893633531095175442891521234756813551188087648981693859008978715844548658867861220102022594069543437629651717037206145350914864411105196635523922957281443611415064947360132613503483419769746183114862336675268353925535623794289987894379042832886655879316480567904894669592466079219512969151160211317460599390990125275195983573069034641063260202852411126608101054494560989980233535446311154681416275487367386848339892701997417186470161159830157814855982266135548627330188869612343761305113715460817822764487783823941488172550712163009088655185138713626366257589742219448691104600143400124158857654071640462837318288848454155936723937733980739413347337230834560017616684169791412559605826284120956893863342078758380615352841520407457601046832877035455904223342136182028704877884163370110690778282665577180105183319315902940582502162614912665896772115906361340381703841692395692107793614783973723885239020393430102918632014736463309211596205876391260300679096615739183637437840392103362176991134313095061249354548872395853851751054943536123384631982930162878234586037017708507325553651284827389435957570640011083213700121998774131283281372787274132524724154536795950627480142472713818760008890165767912966244895764528817161247928475887721229496978975986206496596087538930271671641281887775632484440124743197090744731563836067739071869930192257956734218326037959537172914590066293180570172093432155474040277642922624611230421945572787803833431174875828406466222101944593956851900862100166887731423461759129715051717810544311769209062787321813485297752236061304388816198727845388747885557644148195690874938004865702927193128842083948473927653984833636345952387619815886208136759442725746898611320841157481376291220165274484614211635263806426683009188372058334567763077958506014629290203116705105156149230515296739600269259929666990444910346037940391086482711825502758115246957794216712732300371260569536441311747161702198604689042891227820300865477909683087895349402404059438928914982946473837896232542640974306431076871760837128897323452564370337430382357961666236091992141096133585563521490709217819030922255783133826710504268072022780281792375947191436780084246489806313965605559226516480383876153548209807446493185899730022247337705675248711157999262606396598953562759411995407796840459180800706051239182711525276033794765371709101245263183662263161784742755711456619022972698767854861987233792208179240732139118680526269539285107679164559792506130307038822200996111771064337144008896786594757197214061820104840045744717393009731103036352837151028446825214276914364649398166968246845053323837557989812858529503458388011933398713235832876461527784047048094405763443672971798947327752239669426314753316383600210849113504270979484959851662573049346638125518060504561710944253175179930501123349794365718678199868310577386767690607621681831816619591662846075154374360568795638853580341155197209878045435307376889741374540185473793152541514252191347570009237502940134727116189926047334795503533084046249809429602295653984998146078902489722063821302107823752466384260129476641521923005533081964579923608590494724391463342417608287867486032108343961552409767095295710586745692672281459472387447377348351474828555054403036860581184039161590768562868943329424645721864428897623040378712643458080969492666873080327701551407728354547618354407073695889819194068243067696216906191901900184859527086260033607530924825848537080902727996921869166648195459227778999890047181607658882432236265037656591134465521872748680773663832420546248863824404145163188511108230278437196581043682878055131468844889751577612623317758392600181626963420445217835932355520252656698158465626100613693382720875753253035550088035296850813339253739941857376130329294454207126637764236276653840007326339685368279033889550026068759795251258572720908270499234720120078772593089619619388935774936845400135014598908518468337840131389444086529309042269743027347727205445270944737703260168881189770853384592111354749583548068480811525066324684542158204270754015243142600585974575188148098255543914177712573172983707309607020228494399996188694872819104168589794241561005276001973181268582893342319962701048784181510516448144813016047897611120582301320641002176119723057821134866874429818640124769901868869442082947043343888689986348410144799647820272600115047780373578676389101568481120771364674147187049097983294063113895741135516273682102400378200815419316647026084193867900097439796187971965090106338784734973580893421093514621149326221196442021596415164401469655747368709671567827551998201974926704174848396800442017831973235378798191407797205930988347452143232224591458490785346452622627984478618166065275691910048705405764633479546173701134397700384319808102152930488008127386081409124461092285198968446170147481317149358183281154415179600419896844005147940328498360235738105607738063466327526630994603701120460623677641456815664881879661590848991863948882511622267302193500268932342341183880149233158876941532426814558020707580655789668394757645372440824643327760867875632976421159298823718211523452063341114884574539827885410694068827090515454697167090052468037478114772926367529606913318971452621276349130872178635571522362043969546042409437087696978192400497645673824404633644336339134694954258063169446277993257917208945068319611184730448778114610373767813650165525172216155829221072492455190324029468671213212945131453764615640146538448011798011417095985792064952293480777931538921807470990113647497640718909611070965201168808918818059665401598281519833082437144000503380725540865885329994098088670649617429354392956351987892852027292152628844126867653155182204111138366921971211523385054587689798807634536906290135133083082186127199585365690457011612359393281354212817230580175499036872316931410466676749220932217360845529949232761575945846870032661945289533485167687159853394019593514187561802135827221817018434331683399924832810928333258767334319827349361482418817084264913638063631036784045021324882682929059449521324785686627203350444144999160335122630971856999299518290140308815057235287832506727883099285581537912225445652282109670781425814257742993445681913874874703659096546480041762925665384202004796613692901666656055672936602661962690612608857344784514231122830258005417726456204240609812581048309154306564445872074133482097596632849331259682179434948805212295274209115851388146279889438889116508287497864311386183488451989597841631927572767241186110823028266213797014451629385204355022836630015468799687873531558246317156272567301031121071942800696525435303833533766675008867074372522456634833205308570202184620648878436452140999182030073694781306695516929136381507038970089458437673410129534558149597338620967563199631368240713967424001126577209702572869769391183177758829342631143229154020123879816088827129248951105574301330176586915427386309120788420628770524143606428437531918986862576740523102291283459243267043366949965938985201355567531852058849237697457548665533442820629950344949285141132972966270713547869803039841495695397820885947131967258150871651674685022479020884669159630954046067199054187164657766893165553931456540561558958628717779472314397800726243042347337693999564375479776136564858616124904466593580042465989933851375081532507140939329502218518264129371027548282129755664042820082017399961230216576998122293470131149458787664205300837747077938532363624150935285026275824592622242845668402880151266189999506685424919922004727047029907140631735386493876861579961415405190291658098258927672440247918311581466436599316642464707583334582042592376418817811956300299787568804430933513595961841457095889223046275460426513440629622873963685650814782464981379275171240149302085407923359404919260568736216287302952276688125032303735192763073387287670415191765976765098947924512882344389973518384028080234763044465213213574352269725620496169664926934502409226449046797951658309855878284050802369439074551809881205307388081379388919098990692726462881895664330192763724110463803502350070342403352625680458244081049476822672286443397038778904100752555326368636607298154837999604636195101108576700542452226888603127069004773595289035014909711263067645286537091165925320916125957122602427507924362275460923052692446430276864715370755098325839797487327167197669898980564056252810318645043935848717363117137264345465962073791929832124265056708752125943679781761583509421668699592749108292512837551973248242990171709858443746371583795190167756219611945708028763411859751086067786270031060786938414627812893343301821330312192680758956506575481108866459029006272299866772239721531654393136251236035512421318505641388999235141251727365356300032440454783393150877098574281206251476964698461909798266757321895878473193625602250567089984226872107369713288300564783798381084927919572514975055496914074604250144010441645908132103601746922940290851949047085092629296907247738911382027168303857090677876619360619071248254952297069021170105682353441926464657405057196871292982000887372996816157756272142247658729798622781429460528509025501421395875618756922821273333216150023702153241552035818431891753253215808020674218386738386377311036158820125438605941866113379411723904913230674128982459837239793069152792430884859574358583721941519502717882720248959031438944973843405332097194039210075523955341937271723887640406410732364406186654790198090516171709282920179356831388418505316467699225555971897590315072944856633142025574673855330637090895987316575438299322683257919129266053072162047502130938569472080877282946541415373449220896115689541969655515810065312043329812905869743178704928271989343236951445824309300127242465405669099234181560109724042682851611405509115337769990208867969905537341266561264945098420256433063734918851545324363525637950129861543866354718397020518667311297978853986455083336889792091933399582883643571823000868797256042666852916593750889555235833834120970590377866710572509501833414114522223077071876927635602178080384001000151209083894344177674833509399813064864718347648056397756589386732148627122591224041173700015087504592024976864099121749695426680332501432350436646127718845978484638624711161124816440037682735421320546089894164993370305291582082594323962358292895094167359376411751858077523524993350255027046397531192928890891470716929648776998118040657998503603225544998784284135684261208235588095610567366063942505612878509806793268183694022793843742731095858737353649210238707481524760260699083986263754218480714009362831850828288677575593026617693757462716951138716596779517283602575685138000278668104455563928605058749381978589949402101901465186689699477583677753291062614905593646122344925151788758881226565892117504498357950662958172561515145593130700535029789129430659052550772562096760872995387387151259147836580054456655948963162950013996520332527793193971363111154377038317199820807693536012959157743445217139566212737680262461084997487144033640917519780303965396418128876957061745828284110603069467547869059255359384976930321177911268326714773761239109102010200500697887740737253533481148197865723342332929896673436704348609213566467368125720309397622625484878963863107053072879452715560033722538684897756380590978073537172636804168765790844082310173361468099125377667783185658245931425084386155685600289424884130234523063630581246794533624392377635750492740476567273421760098114868353526093801372983627792542022243729672954905227726008580370727426201581292331288084075290848755567184371016136055459462864321173902476994622947825902741076353046364314689135962341986673684933251031829885930611664276969186961406809364124320496417958705787735491035873619288494354331089501214862729040816282130423383996247420998086997499060318245848524616838660374518161512030513566822021284080443370386301216123592653827451198306464956235586950082628266343093664751904617513836872296695983087191584245176756315644114665013732378377985459906570713541304432490068376725487556220939743282144913928097270232550922111805522561794089419598154830656061533492807561669838397506764701690523438768601393260903481180387062236571192000285872282495586874450059355195966313220205291823665398910760467301741800074710708926824979737788086602350052509482844788379445939525671934200317781052787579345710057036493546533553611816193247134211916376758240249593499024656730926432854274801969155304086037101604131016227949645468561778389235633775658994570699139176226292559952098303947247344184320699672052280274792866762284846306897158864048058708558556524642550788391354198891261490314154779804693204480280173774926486334302363401202572846793278935241115201670421884047373563562833110346556626912635461628437065309236604071462186965818541657569470687535720122582061871556007846025239237481785329735410848810460446370783763855371561600550211999467509098946564833961638366071881318287344642675621912849807678841175477526844567344642294623026873140733769847079457284621986075612574966363961323313237275036371685864155574807388484744200954062926221884413639732877348963354001364061898362791246486149746156029744345329721880880731663444180642742635041889857080021897209075087632682003931872080898071222748745086779028908026915688261949165182591074830579187024634244121055111693837223500103069128111297839226333965773021845713498420874095565279194937229714685402716018453599890830121596837930007745131807221873428400722008135071886832677097260655617572933110705673219830596171314491943895083166633363798096487354455846576002912849027394949488495478831558235064267858106545401224523053441032560021254296081239604507543383941716293117036680293770690400766200443016701058140954339019438910115193356844098512013772898734918803805897482661610409335975634763819452533766909379193522416843644658848509120404355116722125755366778600529029638524762484042936848972955187077256077800918956688885118523645172266399624446530969457177096683581834853399699379870152163659418843352274433080530520020022153028702327778319264196432897397706673443093739491818474645160740669673913899924629016076783811047358179328633341685000067256303068346050537196933014905644109864875901817416978521858435510438789410969372813119973447844764250803140754287414023541367844926789632593299577199418339381612765794811153874624317046013366043006895903715156678504541982914657677287719319487212563530112320618749049308887920902208179441557149203827655628023969482588685499595323861505872590577157086688349044235403118940674912298206254999951973422571969990010388836463583650566533771018262344240611767394529188819014569775498210453469065281663091195821022612940386769990411590864070044119664662398247329446822369484716364288939478734657670422095322177995715184754122753456674541733538056191705156350790850666101506981039460069049051812490707443241608623817396784595062646952957090359498124555397740765397982414886728457737902344488785194423306775114838159740261741320653501973027243059596366953120222114369375227716090188061308042290234569547656881371459655975588774392155430293770599087046676464527412717509311458838314135170241892265290401948308580880606111412981277396298084390036202725513478909736567761672190430165777925561487657596958838680482446799636047309942363197022215572474800838518053197403055779065177658760313359986662374134474631714849401854474090235619517181482483193676337198472793311207919624129123274144592162300800061131587674034518302475176072033712490231870280188872036927191092133670423079797158874077566978017494062084781222525171977463088167008862245359573131166668479319797314689473862742011499208474998031801299272278553668798271282725508957140271989895043440194307583886778141717498099094423667510077516790526102785436418012576813232671636857608692758326560784961463374763165641714626120792188641152694505455760866219111480922496585545721542191761300944066356958047109758807771188794768081610336942287555429756057903468395892492864289703381959785418467239392138198818890669246607186816415420648461618042322540130552708057201732394295099788189598432301904285206345903644329726449599546567914497460113900227632100011722996269800004480742506344353704126457350297123875105534765594956868001670393587077022200692026991452704647920538486854476780113479586411713529582552868256813341446373915949389874623013944362289060312996675562548810681984471895694906461932164226950758266760047660305046818564890280807779949931062081271348258334007323309158794201728489738495176787892616579937684839010155981786239003232143147260790760566538197261523932404469516034139300917711016786147710900210826975366575305542570893656015134606852015384093960485623354529827425248744818997363028221589471244220934032034304054565142740737627310919866546401608344202526273848251039241884344822752762511722722404356662814004712246599994272897719322860406882516111898992716612251901245441904558125603812749164829960854775030082937756763186655160999478579285218501456871542480600394506097396000063016921357770640520215106621427155571670335648333422356735681449306464655754796805580136187512283099159544967371873339629346088182532640066391878788925030302160989644732064243578250530989086492463378489006590441238611520712263160213691214802572712342612459028887728754268891983238799969580864006965236635122274213646598411143806516018354511721512971349363016634419686103611628430329498129770246328673474069593268633012258825729835719670429289694457813231836699295832019917449417488513166711854513491605369517613578810574004153427445259386630287179265092149436765792042703671252206227409822549695581175802836250727302524149976785732115230420072238157850407282932952348693486866129281096228616628275794707993147199395547677759791542045566325230846521793255435754771512363566661117107400696227001811617491067607446620516174596752763532188470416916356449308652078356710755756632264126006663407945188222913014296282777820028962574800990686090025706367987452276446557977530839680215482007701588588101079241876247118134135512145555428982837158858443324354400679348792583974829540260891675772202917492577029791444788982161966947888537313833515656613570769301633429638751326982476555338929082810799145344430806993301168747729893931236131819273657235923118767136785174324136042993052689985671843752200095815116826966254417646179462691250519171618803855529464224430667828333128331786566968170283133329741394618827723958244862303739009155468887480178105907111050870657970448206709604435215325066208769900096368689465177415168591061290532008078649290781888850289407559981922667051153701522564924829269385619777304408118457614057168518435828163384189941786948896518403744921379235707146758117725401695342168558184733232661027552230739049109155900467847131647470588793623710321719020926408115344581478669330629326219598526338146483997963584646328102737926049242031478481297907540784785173267871576512370317867448114168343787453494578860195269806944785869979882446710037009614763582983582736640134274423187203196338602479732367531186135935668281619496587684310724026094082239811186814702088745360240064039879161273227813285147478184359140653334615112112193432575583882141095841599324015688773664245114677157077833906975124419827716444282999452798779471943485129699605576244896188630612681005721604159946407067225688630928736198131427442027801226908255707186942057125933432158307643646899434774349885612608740195961248293556373231075646625867661944254635983866299306084729227988240961092268232123311130843459004595544089726879965471303379665495487639723980395273105110285296277542127043172777979957080588371676031258537795160448521972413432160169245654078501432924491434104503227835675830996917172722084553593976218113424092749759059137296965362054993941069202131778148738063979568277483391528214508710685065612393076401962550040387102789051138461349530048981467300484427013628054799862893747370184212289909709083498788348445619550371109026558712117803899631785765340680792287573460333458563120028076399356115907270527552124586236885220133132873511877797547824923409968843678277410689202626965426059887141351775766705749974005259160913551818034035668809694194731946018071691845794381804295625252739586082108631798275038990814206851864282275204812723971098396442638928577826261197049107402021988914193900323405173351750001242334586183137590398535885382311529482933877802821051728416822711934239507522001593579653770083764503132221296422308883009814596648479357479819576394235227090575580424890686533176781809222843073879467404890996510201154948397761273049036707957317283922699544352368796092978129681329621953391745795702999791793535393121685574225073499256700682254538605900495251605819477626054146371420905229193731944243347460569304804202332390630816145323570740790359078891546884116717042184969791530878718066375828290847285143870462237997087800561606677057166139934508745478878112054332002018295988946373432098317068466277829170039260879465406162525188545802707304117642383526962256935869811037527650347743608108311943551964663536851278425148168184104556422351809742908167298441118993243274361659123681637177585289862453156756890939142558300418088625467545272737292670785261984179053388717282200122636510448675391968004961525623690373715621729932649267263763446183545020874327967563074136361961371071744679626715165882678390886766190609553875009109012349454494400034407143933180877229280288154794722156006351615377248223309174071883506870810991533902014657669868381622036367030940729825909066757714743388237529308308747705161305880454405118913038031771989960128958608990455011814621730869807241029968828409822845683941651391963617974727921686096398685665761858379718203458809164099246421486652889994612646795625336890316639267978941946270444180900507398160400276440543138158944810343229673792632410859447040565439087386967929707990647252765426745380343074261361222756306847938091503237208904449230336672190674423061356308765860633052065612786327080678004042527930589329094001824759662068411573303193011645982971322096997538547525131970708315321520803594243928216600311401727942146763565758421312714787344317895394296337746239790184912442879695234008136888407855253598892790384698429414361005041564843824794776472547686414868225718968795767168298181900349517304156408400927571401763732858472380757580311764422717066735484470527644776368961947315270474794373029377558960754615288327417386097143438015388088866296063243101676137877664327359635328649364786172667266909923812429002723450751547090035793243903721692491361689168663376774616534776265322590222779680066578947551261806122004988195369954461342537373209095803377673755525131633329810361386807384278711325906463803130445895009063738221393829430795780346781666383721335353120135296400626761201828170748073211444620760818698240233650696866191665980004065866127641798905686198302999796699366833668474236262140973694683122448663268751653234209211012173791892589198260500711776182721211216996212897377042619304016465453700250023334131340264168392339647667367971520425984828722871143907823932195394339150714925859336833505700383716792454508312485696104236560487518421829959166036909908780072759682522032669000723104616654220953742200197047176102940679067353375557344968133629061610462670351107941583465506518332892059440131609672625230282631598892755387782456595557329307971059609784819068042231128663240725449874502975472125174141819610895730437208126191726180259816703805794249429851140902103409304500896570551648530398305770917592491323290390935312050885516388693390622506320956254485125338053746881302877682634022608311848477204848613781790129329707954022951935187637085867182852486165165525729997512035739639863747939938779636700569105883538491851624410440038763355225354210149869280268143996559924935368531468876936858999382175433884883744160706441532515148462258821783949309333827314174796417425143914163820431324862622491433505816274572894769384945849103197468978014200639067462329435131620153647863568034151460566078430855531419703310771733504455517904431317146977044297413777172818038343698853101513188495468204837553748964665882922124917142630381382624419885262188724420341232342855767328841219348742767489122567563644717314050449915653940087432375308118041699452981349982113638420376194835110997689968959714388559529888981032297691701905861012598871241240270818446633199260199005323878358363191582220771520050075609350759060620563350123891053192050610276577543092230818103692290280410433252278089241706176015146704839228185261031725926723558786286069471392846732254646614004617193714641906843157908014116962752192957462185593259571118394494615364160963962874978796467530606309570016984360206426107675016195647637782894191781100170611156993689964758495277940012876074463613775520322506008629783396706070023447448761116715972122030573923129635135771653945723578142886435795688677408081102670577776529909204171837305729558343999533008697173052327800275025130144656795247468852556691677267346536797362401413953815878576574865430589841553335992376657172600028263559206432431830153867349133878931453596656107158443928283007140250049438948720731169472004451297371636431550134882184326446169777063594465414058405523128787449943520709490448383105376083857104853181770208878308129824636071601363927339194010358429364784794657519952352540107384096736470795884076483862939303507356458274589157432863286673574896895607182310862553847630703202103793845408372309859337945573593616433029601565663164548169478178950974436671295864699545083849818671444976458427952259782922651091231291646427558113240352607810595112455444662358746773258169965485377874709511724606218150928153725471684718477730955056267591253438889671941275018977370214503587866738758108625625888903537504930719359304808389169854524837264382718125761200580319489187089899486080945694562513990869663096214477582946668718871009719514422317295998725899965933044020883258540438105394358854267444380024408691854792879706078492535238891359799250711403173053147670664242441923109942581752404411999850299759306227221497599120513662612266547165793414832043514744522703114323457053335984702133225623147673085849354646900809697385269408038784138454445720736856023504416989670685421061107399220289469873128029414643110729696878823873907813116356706443878363922407399840855057074062377998877513869651206499251626283252812914243677560920216657160066175622974695925322866858250614906155971043016306703156569057543129430751795608388721407691209680202689017076829364293521895473001533167482594316270554733242036076923595035231904880160217772638857655088044912014855767381674770025323258390788854229530743191059730458453000354146988470770538960585843648694110837336916197442846392940378780056914778652864033829857054292832765329517731489968741712577653406314853687242131073543518421746662331961323787123619786146505516596284431212864598438127725510125173230810472920407742402626024505489896891465668753696207739736179334858256489586948007605389987419757015591507604336455813488439874055694863734889632257297740222168939587317976078878030644257138051114005755004837192429461184547247584729016201223869896550371264930502180452320140881203124574654100095470921282680281752422996163138426308394376823810964220993173156795506135223737755488700056591872938117849351466179654070453504379936669075917388901467052285958013855336592895972422448173291326404164131091881960226333729044020509691410163625983896886846813762117957685095527379469467871879193489870847362696851788633916592843033491306347511922066744193987207473887303952902807324300333450819652829682024678176234682621201607848342004058041178389670035967729587844491826554106681705112669322768646193878834506464110276377819119427849936234370612140402606786983150688935332748533479047135400969917989143555062111230500373260621935269888291240165961077731301727134374636742449158238313613675108935705669141823212150840218847486326080079051870969904232905023807594708965569593087267322378574890049076171800266072127969558516138679319954262755708358414922477751376763930826424684941676347613126316519264089276843859663664070246938143843582402317143318591667861669490431966885654257374372371823933411275673261196242885246852670012195395367169525514207621856093556392197126984964164003077040488259438331407317754438646125679645744212490354063645238846783265387446021504065050006025570356238700964769510495312950977530756573623646646529121201030667747795296762631543278912834705505334324711456877173715352302269896384247177141690791411740074424243602004415604914058129873752781970097674891621117497769406273102312326658437581338575970900956060218358071346640690647735835805262748437534980275498310497645626431371745536941754868009973244811250123344685583313084465776582616352420298426824737281407689747700109798412362547799000045619076773323320240573825388368102657748010478734340717422855353191521501114811934518242053411446825603757006423267822184383423053986824221211724247660313219490598087343803135755488385412855095753927689227446979621162473504759640444153421459928269503056756307832329763128248042479206993474844511703717003569360994368871356694973655539296029058675736476547735837058503635563641133799359017573054638370832860239377383753520491093620239222900706469030849161874123553865969158399916554768803482151645908545455104949788570924079328541671038415440288835815393281261906866436205537624865353068970863239686090945286584834331594306217584720387427875799041154548123361379294629064238243312035760545405734751532882123496759910547500933401825167798945119599343614342921058907694986430475422081827864343060098824990261227409182892570794158879537290621889442575704371323932905475022440300181607911309925634788020893671915317102982954608924024388697846798831431324250558480014534596842195902193006294636927183653038887652698622543786015831313317742677419418791197378053276761799908660475828119427203592311560288245928926951514318606975253892312442363780052945531989196043452221698649170559495357289719870649973460949617267204069177161812606152419344493818925182126150795884964767592335092525071180436728589624730268403499098356207821066833423331793480629467793081408834423156401269116728475537404546760834516956570973131974181361506897239876291647740650502002347383593348670445150511909680020147716678631696861002161219156442908938177231928060275414233961187428347921271019426825426671001853225325848633236221381575103219498054416270308150834110338831543241372584552927170637952699884105274771590454244115244983757106114398071397950048898563898885203593455704673797851535081852055603609016983195765702750862686669310562097526486170675244815532689948191473478713807869280420651357781231571605952562893915867286014470841512765223344267343595922019519739572203510288176326658459056813744937927193892237310994785181210051140804021654834813296402247717570339102766766214932553894366528556963163717755566947276097411671772048089244359560237266783049376732570043523597888337209983063491237098354210907756310965566560182670608147311419847941862733940448527347886420873241870947435828740367265640931479042001352944211242149069504385932894294127565017874853463180931080666539137000597254296665412903815109459708995675679672706801720195042712800609430324260744174433634199233564153089619253252722555015349679079109790319405462575389144280825339953225920731783406849549863989740011229551531453127294323210869948435892512568397549950787129749547088137641800384769256657705057845472038203882329959351647467676557074339519415309608704773856739898861616079254504208155996578687138461232003438223233927371992438467964395266499422749018529379578075541535360554460591074604888392489816503781983908508022386537242300925671526949773809821023771626059833973239835261702836080949395796869046248591059211480012377462234283728532969940878636694472620092997294502168146552672124378573229436797613678822521366146527377088333922956040639224600270360705022839248549155290015638901490341721861512135646514145938993606517139587451239371667811777311875267607539470921021022977152346786391637884152310108610201990264010690918658872691128697806978075423859328423082028064197809122869334602600452688311616000038790832639533257511831011642142912266416399360833453988997126218734168462438399083407507253188718578127138189969960764944167190952532347551653845550305601141595425943254581067777829053166546482695539059236751647743569868480676595394178325635820279335850857227485718037567165961708305865566956945635252262414593194469574759409899637156454433730322299302506093891707711667496655243450538546265795146067955513495592275850291168516487204063300858420735046991149725340669541146370978271709415508282201484795629554021685270145602415162190272589952852252278405165719242585361283742579937276237423331277414793490010559229598117603316881721249252715617012350556557567681158388856509068236552388561142930105344257937561104627670017108064886075634339928640800055381926671503147351958133231744989682755246334757954309203316458782536595077035566585844518264910368515514041627522727242330019266833490892299872431861062181830185969120540650070155620597869345892163947748740490736571575168028322080579955286449973333110315136791084866363953996628201218968945817753799808959050279427392515116318338613353413643650456835441294012788347966326784236327348115128960281866844189885330476245347072620605728829302116915799385420457431101393187557177210003841687613461720955921700192649219458501616502917356797958105958704574419799804182912417282147699688873119672165810452456061689610906791935717317522303124523956131237373291408774870667188078762773431360979230806450816074126754190237827898457390749830385661084369973513915172480085248846769626868712168955170392806513332586712552562934660019570601926555243316723510359138290872796090014551135703544074822499330825426871528798109781312009831817084490255609166895797031951111339657176527904617251746442476195313870350592187568966534173947175872405008746489550765337022427188072706554228898151746375939237304960268601272284076147856276841289436591886168534764258353581698229993576792185724764987575356913765871287165511605915536251468153255834068105437467056835524391002764705849353503397126916397970217355582167367745696740175332754515277844877203230379109402914857827274206593583114991061101575500579243973394818230931849813506742035086386587079493181503931301410678563009906915374667035037175426724645850027861055822223058352946567768228121188262633570173738590710744140011464041545475256140004638802715246213345538572561524929901292107825939452306094338622917652152643304338478046453994282587127614708191923658946495027055842323249344762164399773521354579008665040801335038177418437774110103185188349450335942215503085417568753902735696129705836923332578682207028361615200010534031580114738038971321050256165564801560763792116560331710522226250662095698545346063614246437133408170674718600761478244513415634486405625856481134061609705452310244728934936869056523551214740132481303272300157370350801471165885321367760783111123702978704468894787805231516753198419916048879657150672733490253962114533801310144862512625336318615520920278486936251783674914658488715691221017408803067322189857539697853727770714528027154304361823843525267110942348486510179728866732318075495713670816234096288349787815613346016843679659775689772956937292911778034000530264706750956230105973999438890664940056011748816913154836207125679407694718799777485106873022849805598160143227360597676751990417360969729368229372049104629805379664143105035520950811946457567215461802732502329493756690631790199955553230578563960986737950855547908031580976932644534817948784509495994817487979591496235941427689022927654837638994974352726585205325923725102599594593279340578582561279032940049812047245669037526472897600205080657664172359928036907065391593340457095392789154219914399405005002629619056175106631257638477663478570202439394426966645564524343302541538731244020192236801348699974567505071745426470668400860746306651181525061569977038465304538520556939732953129910840303321454893502726984609794128713805889023262973904775644998043273532860589435471595845612344080068530416844880251105571516797195950779509189512676301054657133022177889982433398243961291056598244394355496036658039207229618254399564957317981237319864916744829026631016431035293678644433323204580834609864204130250950961995052289011832546401795808270080298962428020837196306744159260526999519195532238848508194586082855364811247444111116297783546255768766630575241459095531517909000811893838933147289485716634226168578080267760084722527314411396952290574894271186414239852268069800362782826542366792657044239802174991509054475485900524977509344915481045133510849114785012755399720117931780360333576001969170945938721994331716238796083131940607979548058232108922404332407097961969323449299432155140210845544496010145819760570432944055963011857634537690315687499963416042154612402403489930543891385234718017304271137566996301996551466325936439838512483074559600898457176784363947672413865604196071499360760899908257677355964512872475321236531319742144060979210634027899722028947472533390525740777343831407183592238448620386384028543269856017683949225840157858349458760277263277595999007929032359410722629782195163009985089268270629616956885931729940679781926403538183650770248427087003304973371038658381901509215029994863563789476756594168196086754212726125567380094572359961702837154689924845013627380315759976972622094697627002281844218872670124779993712247588935016214536703533971125668575803356777043785157468938199188077769484160823652737748408874900744381747145052634775238330133664051773965322917705979090755231178218066064407971470105292568189253151144815795363960103823926518927046365450496759753378222847035425243850362557239594378743116775743489440313704377106486128244339038718086444053704695993411727779302707889494075849304521626744687968856727103117387922256706788785613377586669301857724817395453683201708450361569585539029612633211222448698370997757989365530665022345092324468616561496432340376006471024312255953935745455884449559579232588123779289946727393949090326297309730540445272693894222161458267834685055219561603256807633236083520539473702011458605343754605747240814986269786620899718120428872559325042735427429788661442667311928017771540981756659361780793812981114989891182252796417028415487203858886274364744947513257599343892008544598199368622627486365616612617033229893236674872275410354656329763024584525090703415564041093018056119461773571253195906747413179412561864913000267612478176466267524104864184013086711382106703395933572925985946211708015044795829975033817437401671811591953217554011556654803331771702132559611671173467023752793066018822731798384380132510958831491425649309459044035583338830517535897600612009167055712333632507442042817022360033696096617694426326686652619511335021737512091314195145961337939447531903941316873635201460468761786292596942576748345076412158442162966317100719099593328582454196753643190851612409397227825878708571725131284339982943503008131913653110569790446311858825481441372780066057706681332457408487720474449906720199702102788760656752783829981123427234113989287240348010200662635707225445730787227952081428700146994785890370549317389498691282143454531372557878314000682660750861276062848060811781483363345430414302738283343643146048154714531738261623298394123224070835052993433788636163232674943295940952441002235607545746393909681346591662688770410627776307305439301452842552920405740331303835873940938438204378654705246093682559374399882634410594467220380426654788601882564138307712167768763047323565848695121465443707091547120853296634876114040181613266064698291614997566173105698745527132949841437608119475770960336126857472981510065113336944526122313157275359605102365274966194399507568027565118025896705042997661197003889804667734028850763662847836450195989587592412502025705909620040087006619826239611027667420234937597630904713039152893830372774627519409057075767637701276060917350163126158083686160123861429075299474227164849182087180856411746980205192168486867956352031421569868281873023188910836406228392257956744407315208089212100737693323200051902560376316447984944666760192766404622836233570412294586492741213962394591655918455022459947207911892560549232178067963082933177376348276315075525283828610663275735170560109752987440351676366981716516303454018450586849739753940749870408008848441796461693663719732439786763084399164835482303582709623246907768786888494648316987762327809390379480162095636370844039288516894150949055791293255454971625951738725869084725619074016386095264250179213946731096192287430110583973410122152778970900627337821596859775652910344216183700917319231638477131905982184894318839455617134295177901889600427857276329586889583803543370206192263203449411938400606354082024809504240551118580657883658366155309817418443960253590893517666422037089865352319550873157211211043803165854958390460898656939675249668925999555986508696855372298888942315369369968527733912201910601175886146103340253822374730778612887980510230259709143521125986667910571910919214403652537520930299846673218081769958861747373934951162999603145799720407661767403791103067702550119209207096171247955186966857167427950975267283990742401521663717512271535577170122739466980113051040062519893942326645321921077447893209717928603420055347142728881403813265714621603125477975188056002547531332461877761245053589656615572825513651165710750519674055912092934812537357539500876944507922446801630745379854411751778752544395114261519151146484683354259095109761616681045435819974096267767386823232747318622423313623438168496398672053236497686183334807554915733404020726818972987891678040503489815108600050194656840307818407273220585549540206784174844734383061827826273408005123970070987875062964430399090229662689919590165204756693063153755388836437510533190423959442633256471166555550573803061417598595502594758075022230767477657959563389345680407520128592259624625775827164269984766383832242065907645123192589707443733829310643178856261343623411106152320872790461584676602931482246271628136213272468336319028195575411257752555010008586102487747923938379977304209212803183239268464218908065722858986177600035039144245191449072772366803925383266421761708804465240652937168175069218152071181395413333288180999721057034929541316573512017457940936899584586911364696910687722959909292540022867919510933807202755475106187159388520655347853880943851830870564828489534169238177400491335074642074147513402115476672248695484894066979164360510111777993810513962264317253631823895757041216721173554689038298887587655780135719007228311089624905170938079480481624216287837009542790260798880288170438990772137092532231895795260505372418074130896140150627645416281135488588713061459360776504337302653380089453707721917032461402330712988983367612617953140263696367834525300796622787318419457688656455653049332416682684772460686483170931337513309359113762923788937040176837682992542721071929647677771554629111609821440919852753265615946203378262748351220019312259046067476040184151091801101513826073514523740295149304485655294998945554602313609836188405461394116109675977975514980765184396030110303329622669480485752225717329299546729500400050093068889371599866154086255411299285746161373787415423899391982121275730139161084930889500008202873392838701816406379862989179611282483767940436660762480363338638207804503187472723339191942739404611387961591448329125669357146125741224852414234399157515317355505204385713011533439666573486186865256254096809879878186200493841607898207400385753857402356952596242006420962065698409544549002133476945261762251019883074728510062699031644454019682609946008564828306535419052496040827705286085699232779482881170550673502206237092982229946041835855818504798137552607607436749004892093768350212304350403049951665605037623327449650300721977522527456124382839714600209542621311751815920092324932920008226807756889052888137480839816414443278549889976164286633987927197295598435412279223195180405215066432802381583706926484768750118431282584973966595414275422386977665979399950487690807870541074772188396147917319773660090788469351983094812424914592282539436592072798221389687348452152608324262537861397899226292695695418030770130988851501205206760925429335235346865751953529813097363875232779287442457309566728174963388493791153927708069795347928780640851848371912123487025256533680448327146264169688680680781894539013256296392185029113381151532380838731152019774775853296937122579420005075504844761711285049717621955860297728243747943005332559437692313263805378259966986436785734191306218627496831700287571053768639574560391729546833025374278274522525436134420177835852772330488682083145700316172166613164992875592315269502050457712304818109333044150258963968316228331228860866308330213226216409231531168920917150227201307712854615888886242826284125875231844215576993213804955986682057949817999372955776069338350341298425888270326922900199738243099601957129175422242032600878780959224733877310396200110542283381893687827184775026127455947075509643416130018486750583247184789445496712027845794616926342464538512060319213671189939168659733000881775077180081292854313287346634093590712458750528515587477088104104069779987829896538271614693596790783160959857219731419742945690537226825862160166901609994761355952504278862936924262014339510414534741895871590932968909969937241048468903165266535206782209950700419790106198386370419420829569969597092799801841025046210567814241280881160484049925870168971990058743654026599318624368381405924470384967914987983710700887639446394473608273413148947625312054370411533200449131788002996981642016642493570674736886483808487717730675882736863489772787784616636621596506946746905604790790257463663307434248760955400617973711469827859713783088144257234357036050002870338266483245769718123842686196730179305245929099026762719922953837599168032953835812928644854082113617920106060975229608558250293314134690749633901263460446444234585104329454479629505290341170981917469202970566462916961709456024552454775146261240113162833739459443656693936914572291577294225560918452035826594839973624489378692720208931568159158137857549630216093546375755249877243981726770734005617413971328684428997130376267061841092402481113680691101761644084615453466053307736712354441023151023198865757319200257262005676842348864873298584935663287492797781202030184886265848371433158819103054748322951080429339484921291747627566777184472245369722227527131953132512179554062083247948234461972811145509539891335936490296666594376840401655531870102325550457992682700056885640195646540782621385042833008360790826097607802771465623580149878436749572190989907657396575838419328595006914188372869570034150630005526685357209709601724277653764583903856905590232036782492717820461793911365327423180960205930608558049680035594377919403363726778090173031261615819272041833671974936929013476992276216607172990737556209825659922617646198331968748097984415084357859765477118279211087971241608239978313527543550101887792816661493313464386687279046445543901163363553376478574011595153579786031727802721227193112704814863724544104609571371455193444520056574040826171549418341382860521645473032712648796933703158718303729487866691389450014384443137781307893600373889665375764972814613289932198548227611057438806049957359183539930388343304394161719636285207604343526238346465263906669632323961974514261746280139912673610299612646474733599714727078349029495866658211298709123534209235043861917585746962816572922813248762942286511219305028799445323903702800198522847702785368259685067616633273631972108674696177260399297448064187515252817529062594000681020013189895843609846310808263284367429224161027071546951733071703191609595952152515103539049198268944330870076755346901435261605928486556609579487645303226518326765793959941921770829067349773331144250251048465229077141515742232857141152891437430793090653675223264334530496960536984957100938388495342278146654909944666419313308358279390539230738430298035377161906546943543593426649776295607245552760578552132376310875997720326665836609919226429900798601833032571260832876729155041101601073171857046194703313190185943093941546477893305304207553703987653843916440519692256958935597872616563387796582895712897278889650834653175967933485432227971338704183138206119044039438409040407250330505869318341550702359556791677742334531540557356321934869000796335329732478822579183555163840215008807946660066393621761644827511240585970396103066295698955882247949962583237939212047835362412376535339366596990282776243155396081330934301654060208201415707403376437731946112769616203552246495169914951147111056499010473868611844864316961118944331158391819446350249553414905537414581711952052349321452368393046468436795913855200144090046638707638795075196000427379134096251814793952084930193818504518681313180321064369238563123046372401999092919050688108535701944053916880912356634406027139871950121570537143269136627259855221277824164248038078623000452112241137986299305963443371911303888837958259433244706781300204856704282668461185869846454424690586356689904235512975478035741816022440979741745534716706342643082470113667102637624802104674777997174389147827701984224298202414027037733547650869602933326587239396208612425178408251967520373567271424161820687314310918323756613725956354835447019314350034482464886224257830236505152682804571157548751916024893723289604386930329423359184896666593529665235949026236504678571382221784729727232407325943166874726337540001962211239651476393997510430316755061635585611540787299582111505634580731779863597526989465820793851002803761268938593778869115098016255095505067336211723416449759035644399106791930710771607836354220696461534614494422392715247161188696906875148515193956397788904011191956222068571940695770977015702063793276982558642746006256369625791593491106963560661193914363761392002382615679032829621575889692852974000449538311017962954782242137566586752136274254228073018835124362065776672811855850712761771629446561743507665162628713620412665388577876107433995818507899716457512300035025959230414539473910229562512452002049563590950831033894159225211533568327198972897624968494074125951541510148612800233653890175073707509542496809499338719466019682932613634184818122108257321055806664575072471570000543453130325627484352332590143600045288648832311608544497660083140136252608677743988544846076340409461352581930138422795740758866149923934622033556007225346429803090004991234502706885695424987978510206866009899857509856915832736313969756754879543835883829459749114850526918607224085385835190571098099896966767507955886571793850290220784539682367225288435015102526785907399276252495130751186238419970111235522345233636539166446860488863188434431026366571184779900738012791354934475320784691447046192687814525941822280173400496042719267570891008131788020043977276089684466336058028254304668274911072570504805890081558080880642040367111454551173497359068115321522189623887193557632281945726051552202893022461872744095132687857973780417058401759281046820513415526753747190424021271966428755288095238536189452740324857726501912087663269570766031400602233769302787893092845059574202566919528770920192784101639208773038878092133552087306139841014616151443990043265333935708099428302957900263452246295009442534252697608285302517292963342397533034967950601922885521883374799703422947981740244746206740192718868338451899003319793293851080654142521875827488311145008173656877717801759218066423670731156889416041608612963380506889289024662688765912137127960825401656925052358870750987914961772120359311948389346063627481809154704224567166848363464790606866526456527299912681312350816260726533768005841658514821273292128888669041952498679610249251411565439556531210540021415096885294097943619997517291629133143947609988931113571751611175473767010718376386466779905530375783902974060407797658972978707749043193948681773017423375043941652418346273725100538057854815571886227069404838096825162335618500189675855217584720470794542681950289430024089764695601596802305274940719627335741600138525382820349587315620141067294938586250445865810148249892905239068366563587035154315413426909749165905030422254893622349979162637532471127075613914638794349730964797516255119598000658649492786948061820433239145111514524643483780382054220882357157413539945472370551634958534742552185791623878346480693948980590999079961390696862808303806162820295977913541382603883604304285962467463454325295610093424247486578820572835837532595412509259637267653941825581375468959742181223864080358760861578412079736284950402861584775582269972669023842433654242901711462787033239169135609873532485346408448687231666681957746261565848822912440141463606871274619108995465108080715511537074058835063327409511774030172304305949022035394201252706049638178849707309705840666864978336575079098510049848482873839982232560135190820508999924075638696469587673554654506579777446471716188070296898160132147576900993089868567051588698836552853095651837221427805261507882617661883446888554047041975383780974974051986441673894505491393666961305985806144451327061900746576349034854490537043727720618535086109928824172798351309000619137716695987435205659090426907424197040593551275047256555345202875454466678286607393256956943191124128906489878059277342901540777663944258862606821287849879624259660730743815451933229261872935920909106114485212880597206571777564987882899287656406471557153343029464286447896675753434509484259912471213119870238943220179768618170791283981812149380255150251503092658145862964057985884706874301092434315791768155050057352312532905822109370492785749759580564988449955852508389764140480748397909591798734649304183219892072590075777175297441728138662786349970235591702625268927256341922958996174404059366264239807709904998582756493445297854491778614694927984629753730249358468670487696069447946579098892854164862056313671855739747906182024484545752676651236809104973108517125188689903834843314828424486085527463722103301709345946927542403942894833396064547036013064653247399343898690934355602980636788134656192581333808679227708809099938596181090832284278596130113249549886142080902195872723735036236938475978853090685791462709716812487480304245850113045794896832132606735529488664480427743217623987776419379218726515550007601474548012431224271190746816183061710359000835713432951610273700512034642865464359548866669195723794033296515035254498913264216005170208717648874764937677809839616001740233365982783545673284153138092057528820857545401768436206180440468067868979193149492730038410651566233339136440854193827353007531605823350387224586469734730021786237410784752488546908419756793869564581635836645091186078156535535279027322415769363312587418373925775280265372142553986762177792989920866192606554221802158199419756866635266109049960532807847145367432606971752941667444298328974114096632195454094421679289869789155155767304429226450972166812202640864478049032396455565788047616123876736499174793700513500375179592803054378776996812384525701396137757945882634936172250934774571338647892408929531282140809427303124174237552869049555999002039406590594663245447337908529348917452000563948553557654202735669056002695707145315953791905654725506279932319028725969121811353249683084279196038290824902395664213046027859582972210146942160625796272329267812025415165685783129972367115068506479459654341156692401562098917141559697811655134837659028306883080241460210172353143566657393289424471226921458319897030431890333338251773282710619332301703735101493561861378762858326677624242663802723830394833537860808884957961139542190644401602785858590643929633772058701071540134394183051282110672494616563371157140135768965615144160333718243452532477742499142316259899397889587685593341468688919157538718075142741622685671776460597401884172723866045617305469717895533103017315630264597273809609828152462036817387049292673656265548437504706191547994626234936002993856242316570964564841452622586194192593897822267058997655202317251397891133934897585071212526177982903688602318799530072519255838708990429968022448951690971439157705484299197349607951460020086680966935832072692362706049132739248533872355609323396342681978906704375832476402411190207849182892173636750128411009057469350664126072674422119672519862479074821034482928699427525574735400617980249795061619537497155858742977923995045617359097633389712624414297148141149181643510088515552011727235802679144715637931052029861148552873032037824822809275151188087853677801761588826929194087260634421397583735855180369757289016016035647644511249966371780837620582605329334638535438360268780754480248020882017330960756777874643783834307634868121160216779347034418235851336669782670022003397069727128324012793113317824470535097516947364400140062683734555357555192008061522044984178019716023370863320227107002402267890183228270905742899421208756988860968083972402032400531628098136838232778834844595502463432674092440530579815676070644060843808764645405426293029098940354065485230768095405845637003029746078877458088210350572758601592193096726229125097637723840314879088716531772252776679342590203832057616324949049522228074304236213884518404106357443493150027053355972945890998266848451136307085252667143944042847607922138224913434646087123303860706076278015648212222932306321786841026290263226547769167413757139812394443460927041623659996073465524089651641794517898570336172589148577158441099634902203927617973014769171990311458129897321580516047659532898774041921229022493883887334070952375840971798239939202723356609748440094923704002831242974480378091795147065712309390617829383106310384265967337036807271940898283650013456088505347310769346115599594329540193933593237776769402723969663365156229544909736465870634851945619432613342209538789905659850628442327931940400393916025118925475961306953837020394330048005038712436123519133134461377214832532272437778519916943215361741628921362283058038978647056137626282577620710809851352742993597990812282156066566812340737219911997311116436278774525914885684509925982484862118610990755821972266676151009811291132551019973241438655990034864880197399137978475648575601969451457981863515463101234554373991960112141120482900434593604209710569298085922868119861453700338939233105404753059288691229081830268818382882273689821693137781621345316631963066914583859551043978968022736496893098219614673280878450400394147031245685663234932382634285998043989352655367960154842396549343213242561095363696097546969778717983947553426236635101771460599833494255709887257812748724134750170139856192556195951682035879714347332111166515701811081756414331775977439333221922524552944013944168041318509484496611581046290342280667086168259602515968797121453257642216594063871089267484887113219419683532011870275617960539566517082243538977498697689342849766468975617464540861426248301058155265681189661499235712521846389084020133960300062805790790289835539365943791570587029774968743454487311890840910242686967167004594266543240014427417375804517954965744235837522253293735180725703988554459229858786766863947139846078311629542595458369480353647898125015236562778037542317292623190025386629606782408029605947973055059714618328821026065946985521618703716867236949928565525253044674565319029757241187025148949413982764099491025500437640085206969626995285116086419264120516828429572619986926203127853700043313945231661351955893767827147985932269527319312706219449865846319006590897065421397266737276201292453555543105814527754318111251290160543213688527698836041232787780647611574868905718570092106798366770785913207114631718340423096711860320598687927763207964044978740653355218127069023515363576608255088880339514287687523695761493189493369536848708236036065398795235219295407600550637003015379859631562457386194274005714433242164961505524631816443855485892726250743801940112797648634322152448072957715569794586407896218172584773076265113339795264172322758883037909175867680758671387311498328070001293846706961172636269695168062290845588549264804882853008375925578869072774686069310431156692673144753677856242659390636893548791223771108926931230657887395262391006156603704203656569394209197960713334649795493100316606433343955322536799348429918412521244622139962809898209011285251823356763795282475938907498912824318062212852774823103912202897057719648170151729568927134629602771915549496825086571436938339840572518555472561643482180538800939522783379438495747308353053301143931057858413564866091798236263237363524711382027042599418922778057907879373021273705651013116400568773388858459040247083244248685017000994230683020332376995030032304577025909298209579532658262717739311606248786591223051984473373234354105161519392501616102819699950791107547256606065483179699211552706568092138056093055463735197580879818036187261088745671151548867200603707460381551606091368337613297831507686380442883026151183840986881402761413711269801355873118082156690575168520474741884482652710824345504172507855874196991686185500337722515252784885188958047097197642269971078848081751563834087033181855305486759124609410667232705956439376508910428146006530351174924830501138809555961354603327619717110142255759924130586229666549444111437566865531627088483840617916184793141998353493411793419715855693935298056570565461370837931877322640980682226959417484706338930559282623481031580304988418499143355603063022470220603147717164808588680574947806976657670727227586314290883593707585852753441007060382477749737457363637940839047305514593496284401410834849315087007346362253304979613486807197973202188482080215633158919823664152395894456182921174106454723390740069351059003356735049133228292011159090665487051398901835182988568811269917988385845634130596280365699604652243800797727589449204326545518213276367485707486933474427313377729360865099953780246531472124206705989322066071658879071716850830290886256258816129401642824030423619903729251892589837818824906664071799823803452157193661698184973815212864057877711423054163683607216056220741784145559743829742630070278398798651851895127666749230966293803864319039738172608255824895259207835350047485942044112908253336082945680869968148694767068642986125918167218572126339273326624399752576499188628887738850911025297082649055055348772028778923636282142975408514123972343421465824846526731873614823229152040262328029430211191713395674391288237557848212323151616851153668098396063200767871931597667258208848522520371508529583026949305931159269112096547282463819847722040021796256708101414433616438817818829596082297839048767461634599998187355243863123012105258588982631817534395339882766644063906768129289694028066574656470748692388680833837022017585988030661753701767712586256927915505418229723632987529504220494776066289203763062159903934302496328793689062094154327770039376777815871429136432129862701039161501715221664198351372964651533309314684363607241886626968979500812142716530386287104203091858166540161752094391437626669774502908981184013999360558820414144118577628332229480011813142352130641811068599477432479000571110607659876647984408031738800858417093053238174930699621511957844130409290243121793934953940711263409264445060533236888778899282798062051814218935456433372512251810959630204328198635978219788275130709720510790659329110298198009948966240764920130516675939926635690010739925777056830765683537382790776263665476439663417254424256220434519718538735304242081495633093549382522644801153218231686928362457570190810334032227111929841645498908936358423350769670002650688634123744987943584407951554604012029903443095819495059235514083624319753668352416238210459552365570767548236939016711097497220860044631777685922911993368200094217390764901088347567893982079640391820231569747706936406625907896174408923073592836403707501263162685900451210808050310550389212804456171245022350551311973486800105017479841123496739023669571425909619048601947080932357348373799138031627340249615105255404001460374590468015082514431508691698641796588229679905181286907896014506733297795801671153934902710154734796026767895425579239686421044117165456026943353825202891896883110476260593951198344865321572592031451555101000471050947633851360748538775190719383611408413044272505186693831259778363462158472362804252874409433549470945435126704659074925316278912568208969832951421942945117059364491080596989252931588285053568103792338571401110137494193956849285572212473739589829869729437970327878673255692192894117587688647665223100062582499796423706467432168755472091585783086332287213204744163490903547578935692822958890866943030301696704756356094487166320914111717601573774982413307203561674033777311916418403332537379364559655066386445999492531371975454209099962541846046212131787789908848621998340454021051260597939509961475597951271287275963010075064906262750459074879056276869063767253606323183037872134252830789877629426283492216516012211005493446553073049991561641499663615350656497011105345029190447237422194168418601624422900287443036154160440709265379941458670785242804769621115824514059315244784937708240290212236356681103619518806213287796989606593490214131515007210920221471049040532965204809368848722608905346884209009955050087242574776501908660159085497814611134425560889933015004378210883390631935272174071441535331785010205191699839984854740308008690100996503399370589551343661756621637359220411516179201217301739873637646676962912947624844483070861292304594197245633127804827289819558417819342376971125157468653486361712467423378076829210770823037344600097248770554546561494372245116339626679503098078942522633661833318053302786560856395005217126407705010161333050954533143953309122562630900059565660921249558247577971390921059352722262966552097705526840339451359892216606696506122616394200580307754298895480351005970777846163244514121202728891997130758766129632807015873474778452526876641897716110711113967872829450477022954031711486530853273828141757143191447254391829813896494282432130054102446973115133155428817003805202011198436132975993268886626977333926078343731534340779663624691698199226273777772007574657653590982201432439642001580156368731432302997449756776611354960327026208449752879859667496031045364218386026171763218687546227402916236981890656191673596549711339124914206267581167700624078686339378488507168257717848378114669500950235270873810303259956579889711437739401046120988591631805159236397673769459400923735381251389602825233149419020674371846427350232110248468142816679878443313165738621402693870675528225305517881555960036510210205780649531446051082734880830406360068935196517953504580546691534971329493692882313989075435743632795573380905340175697886819971573888765972157603372350512925695786017629430417897371771428824139270646390228734616517677874071237846343785247215772659587754711425008292061569768792920782249609547648344489259077287006214042663410619322116513442675949915629326275800123790447774065066506944194864418593821119941770562925672415174493958693473328940789679613489102033869178912924393314916546060595613944817738598822248055372479244174412870424518251567396651838427282943731492017533881238517647316196112658445254817889514364472947458170274262519643223664775746180850358667663215843699994730187544123201822839155728533908741784798478540292128674681201482040953540011687996100027055418945761286312772926332014138926273284763549175152144438536345483359161426674565657232950227576792295220336946128880689282292826360620828850356910603059172717332579429096636464872616063164928977623237520689871036274611499624880694219452478615124115087431563432996268373353071732917128558991217871380894302082949484975059466165648328355295438165329220701104885727511626953298004268085003370990708278217269245646157060515792581752857298513900497481718306358018586762396972552249325917129450258919210299181549428134963763380406472529065776045498301466933658657774094698632847979651381278129223084040734088580670689977872137204104199270004102727029779600886043538195722802852082016567797643140240767460699028853374550040846311322891785665660449010190643278690029204447894249799069268468386779467474132572900708902753060515991739370873516595974943518918805529141253694641476909884848283288245930898958487677914564436629516631281761141931859623266862308909211987614171393339396336336898444492689762923526215924310131981715535977078194799860281191084775512893024626407482884325038781835363700710297798847435585269899970852604370399784231165182829866347030519026967589775534831221652930011065712024995829658597288184701523823838282896158334967454509154802411608235570573719754644911955933321699677272977620223981888659703268779040669811207874803513255769720523091420391564212224375886542020969928466597186676388856443230648722653514061292785293409136323920780235814259922073687387279953625902412893002083885063522153045768188606787420843221203945591871286475553705354675209379767989766017604796827379079725964897728047146576976592820185657527467557070340315575027646085148369917214294864159729011191665904291624975413224670800067354786191552897455178488257412278905111543414649083184598455077824268218735226198387725888005701649946441843903145266054500404921686645081741010297555794122650800559644895114838088651152310303482433717622802615993203936645134843009633647292947243778021784893917037802236985162107314053933116239311061980622784397480103370605734380192944171924710344474680215344212186395314616725284630137026973319073609369156745328948466885748507634445907753965712917871652868921483070651514348488569366146083952163246901456801143300464885416156382635304505641347400344018028880936906951602012181821297613908861915032753241074278949289645195736444495625891614108842636083543238250636274655040773124075164663147067376288600286524098284994108841522568704088070631990580445733755440209860079934386159789138125256368431438356335142594251929085064609695587679055360737582776295624469415455530092728554904371676271248671011046969112492966071839673389566616956271985371487642574510490588981234931313324163669097681382409589253014374862689863488910204555282351241238784543170689018205167211862738428460785034222114743239389395116435886197854267068337585690866629754459208786777910829848874227395297520383491277202606414689756450227749483252962620721047512595648816101129247023733483539323302498927794279539707817296923400859213049894918156625647157964486943971966997471280810442742642755494174526092013810070913141456559262178292713316192867536656366161402888919643507834458056528080075174000490200642583349632227656309440144664567925635933115051130154841162547428340290484529001753123624647500459038114537072153587060799730780396132249454531649101849404709884606274002336541935874621671909976158713363921846434586561056475610698797291864272630728016100124471643602158274186330489361374132931496578918229129833324638369020013994398642502888506382195908578151935678474218032479747352432795114310323590533881100511849117837366027399618955274940932470394873910705702419756498403613566716987741813630233937767470269030565161437959058119713760728835553365821808876525357892382928034832356875218079604963017694675757510841937997459988440739899500642469875444492963113609183580109020112223844295879351883656749678178606159014261830500423800022149277943876023990989705420794182192813055041392140625469435316870800711577933528280201671478849253724644844282245757329207970683460700913709394192628583194056052922429323497437789062211096914319032948141518931993419448739236663440905239768303127180218044651484179600822141425048945043438573855296580055277885463807923326801981028878801288965397861366402521404622212849388871344474543826679050773347605169602247695497856090555173512269756855740960746772822312294291463834119507083919148940678763940936707692396210310252574526884911840207668049054817800488188998648620996711404126284036944969090980102954355997627916403437578332484787723427537220155882155184578877318175340637089292616517296097429436807476109784532307918028683792011350739992650858842811195673048489871896264604445987655982579865769490275267908457588887548227384372758723317494414966833620986137894172000517646749221165340748995122379400600006190206159108122849159324300532345339476443018187200204679887806806354259809448315894369197444121280517916468601583151568952730607500132119130156495386412738872556572320939914148705183475210342072198826512965104567369371344430209844686751143201980883026780045837787473158530320603903498812343530703650878914783672687491218768928578824615311650834481178307583538033704084795973242466749073784272907756632416053915708124707677109459007642528921635314970873281006335482624209085828095713823087824199951654165016298053939071670091929179647079671753580005190376724820009925367054700412635145503272038667276587854312521936434880226255974491446440790338211929956041734879260619754903423044852067107513843454521491435707475052745977278917737474021324009193974653034154265650745864912127134902023378276835495061387773780052365686606379037023721458168877380912281313357243746054364930373715272035058952184173113861428343253142510231399787804015980595714806173203325608728439787113213105922520898139212840018926098682215597964698106834175498491051858170402422188562467084522950363693373433425090875491764587690850256283978272892339670282312922071546194283326260144076507670423290252030128119077755334893422143113032606886300076005307807580712775503102967165361642585268076009684887405380447637223044530979735014118812996445421539218554654574039209554049936102264397400865645113248669380859034354394589898803363060100730981907264159177152799426919005925515753649187890573438649057511747581427146894865939895136487556058436439635353939108536853206942889065926268244424686867964917143921913359508319531902803355048182335038063648887065946961797113633248537131794051525011580640437523676747794785112954107008867144994795573102608959311625272781702918943980473995743915519366254781637111004438221545781700104327812911227576524306496689427263784819351661331012596429768418320055825928379649800015973613722237605267458224570824871806432660672796810606390576693680507302731813913445094260808476440534379807978449019265629244085081158641014302279235287693826887909539165426870892164379089846448704326740200016229153113104162456708799692020294004453142429462504858487672933837765134422177360532270920312321960145720256128860016766957049843488111207828577786609722138392966204984060011164638608235942516142589825251436744664822063209508931192707795392165029713700383091866416747311598495315754392821209199480760736157911668179162502615474983050863100171319956210471865946726069302716186748555146932026941689275031838708443684824644685762707773103163156196573624569255781388433564385866533641490093605804894223011603056513434045813770426607761785718031114706151798608910848401456315841675158866253493407550415437131371511511084880040519641867574000384236051742627406918479190062410069588281619308239650434259065767334456283642102033855994947650372582950669429652979995080897191695584398306767553172252878579065793029708099297801683628529239758208100638109973995656795617336287626133073686819686548628696808014702809662183207391014930712294079598006676113847638359687284990033262539735018295984017178468703005969790718712124048281408834972582587120670806593317126604015827343527663448265622529113704862425603444630091065200181392330482839032320132937513103646910758536360108905703351713947585151299814468625813434384459114400040747441140067610431993005107244323990599540332701007179370592519898519343662219575121131938478656432232178920012665500324839988356739657757773246871072733716252526372128558999176444117019150681040848155301882023764201939352384996176088001799037475073257239479866853445237833370621705687485717705655099236141291115126374450758280151991464454393294677951343745157221716606721081350476388397173677371445043773566032495090526531358739114135383078288740998511831408348718221841611537926983856359332113759803230191958746131200967213587967851520902446636462950610032430805974934443515803956303166187879809180122365535862178181426000304882802226112172214876990103421595599034825739338495991805699376060154813967050520572171141105252378036937469997320290689320222892041534094658634345016629406362725668535716994580300277431894764364750595309372086586476113842200818204549383861498157055541479908351232492724420078011439415603887020097136802439440176201897433854881968260473495339200106927979333537920402302406327540570431119649611740859983935978987834744503956931906813814336316283154630077993861089707505337156486853326778217939131680654177792657775460902618794078283253977548254113909885903536281996287885292668292506801778162064073875374737621503827233017678585864850281220307920116252766270424213584314507463546668454742991131732451089828314309861839696879694166682339407017518588132885561653187675778696722535000846242196829029861143424313628692068450877483611376079565773859823509017804843672470825698774425115992139304319014350597532104683666935858620685874947493420982442878647171718518594115596283294508525075130947494628565281104177711804524777089021502438933165133851148949732991810602435348727379648064087590108313557730581801526583124673194219930523897876663416114478874192370341777419641856057786740219738595022406207725992473605589780428963188020730821933431396770324019197350417668183998529864769056876100741139645256522826545000039105161107858276866771697166981819387001512481303675905573469651034298924102428426295867640434097442447805258267562224513032755216987934335433056126589196820500254706027598527959003373940620687108246394189375887921364292623071133232037158447164282899212667442464609197914273579078729621730799671070929818957077102006112666990904930342189836187018115784379506668136089529153427186148010479279474624554692756454694362869432973875948424254725591224555686796085013828948976049313241067864725622109955571497924043391208815524770395183299638530778270817420330401095813630745134043590029474466168669190604058420093792430770724225125877376313383988087485430187532505791273331038342978657380198309744884427637063945403947561480785122357130863978896194714739796748533640374178384353184274210443654593071787815889041557669122938296482915730156444635423960131961002610568534517358062389574705355457723700709061209109854484441951962376281138266683204685699409420184383873091728046572767746808497612104499549345441307026833948162104276738813719678100987873910777411362543897664482525462169645720222062226399508417330210728694542172618830801647586898266568794286758899523186253842530852886137487771521601101701710970016698094034916835352667309193328742849154854038132506980267321931637295211964896838202653958058268740256276750331605325816228916238031726155571824569891723856692247844345798593946408586178639031128584175792266628512580578356673168569398374198847304349077298301312748563943654165053850831648350514273453221172493577678960728413158046325353950887537160314854263303162446582924526111733376067501524053243573854670296188985735349734373090078066025005325599955298632152546389020989317117978673627167089767660894540256410037354909580818945668977888202746250214957538986088132799999491980890093123377747311529005298924557908987548099578728478397935504470362806105139610667029679579940630266499498454175812181693640116807136798264281115434191366320022735030722789782708763918863808116193027195057810530801520016270359718439422202125241893564976625789671974062914478444969449358984583025720145496375355850398210745995754567251583253256840039691846541835404618772849434782468700432949340733252405425713149831704418610373158345493279076835230638088397237842685071627808444876335534853698838764250233181870468657028571322851464738144786622371962050474454368037787627937480160123860747031476466366322819599240645253559323891906087521174041213527668876471443606775451503614823411341313941675827960900722159644818923221065241956539806993087876901562446538458707126792371663692256283987677810284804802910851635404655976651898374008106744520921653625090800077505262438161477318058307899449200715150253074042760409980436692428182128074277373007613429121067945740446536347786059289104339482298023194319024791191860273111299255482007149288671919879986247417987094216484338750168354430196895659670272344374056786677301314806637325936316708237826304040971399812812345155899763137976571320795233218513844733833004202119809605409669097753776725421358928869336530451114617879465768936965279827950957105196956338725035557784825806641994593379437383713530675686825850274641179755217396328762753448212735182641086705840776460798145317494384940101011820591681230647003716273449333180650171819721961036047776320567679449435223156720326908785282918262276310620855175916710553568598902459607907844891167034021210115942005069563301610660995746340289699517432313303726799545467030001784855683602330222068193511309747810181838201826924341209733790750226090662294590508785927055752305765460285438489345132736494228245539513033756294746638417416078346174976224460842331291906144235159756642141062928504813848375317097112382031480809467221419494278668400278882201006387654275913224253580567400933889227857456097173389151206657837738237244472593239292055241361284878949577337925389533741105031784351830992158871388585064161325303069846433249969988568277467801874826596504492804332735001233080948762621891670391356988000825971220164547847927596217072410445646470602233118720763228121941147295952628370160990583446153200278762920763033298173363101271609574623420721315541954260533423452353341154067572815170680932223919547799020142209844612153908421341734613443871061000068165250712326124810601424572082505624727787391223027610298023344053336239896922586757487993300261421624608492047852692547772804823211551456142002161294282382460592215250313451686580651059973596366517292572564450293132637374576193888522243955384666193341809160852145230517528051339423058387698408852307235695664200245055745053488959647348851010438754920317878485266650790734846487386042496664138713282865314180042738519806021024736057817440850887904350500350148822935317512261464946149904131146444970899039318122464919663239183191776829220193426527809283893013826126633310259991979081696296605732986682493700689320162429963454626406930382437844753620244548051465638426413124418435552557367982610496151519165569519315883375093899441005036829589306399373117443467968915162333877478238932776618252759565386831646652165733950714540107746368867476568441090781158300601624476129169728722643154215013884021106234579414415518214679689726921224712722911174075637918095557429841086422623538319221394956024979294948095211325260716395194631321441132233712635585916741517854049333006011113918343501208072746739702026002088846523334160456438750561765175927907632678368442131862946503470351838034053384183342567861703601913636709528238808293326139654527163497782297636178147852255620741680294693042282033453221379818476202894299119671548176810210422108121206979834678460243086305082089038589337941081131115375311698926879558593527217237048096986692933863965437780789993763468627438163523193595851029437978283835579738820140994355481986167826978135783098109397488388500645905191557923088225779803482216116549035298897891459907297559420229818532751792952788782561555999834155796532564628616866883584520363636272578344294989980791609272741192417323970765835395466960831836349360817857861675274640551370519798324308968955048556088327135570555645434074765844051259086371462566677215643916186011142193630575688227429157700174681318866406183258281086828853409885849990838404247974231490330358453252237978623135373057666912491206158387956547242702652888653155813682330668501470820099693929529297108101245850673611931965187731773049190711510558464911109199061782891549916214831848238024809374642741546572468601898427522439684613116835502064666585530192737411270219751380591493911623179954990263170655429472030906936556916416143958638654792036130079084979361812086675150536412668519113141447590291320979263589281731424946502920125682873439354400231731654467895948389485789188252202277613967779467757170199666875831906504609255995091430643099034138918019541430588691937354662569397949986582734306763393347975989687655246842161762234538626609244220695235700441048279333774304880257130686779433301975904900604556327293211028743944275143227969985991499368430083526659708748377374363267280432541935235696909144372039862673510382538955062442347937028017433709219771975530835320439484160503553485118262878273272815738696175827029151774385284511772816528835873063478623274968485208509941038797124533005190918605480483105398681880741961967982429213663405319268511553034272333612604861688863432478007057580600993310098755506899126456788430690149712601150670441601952876209281182675134534849130796206022642188271083514438225406629414577504994699936270892407730113477191085774977275061717153532903047410301124223764961220285168758233371280865842320365655619223079524773772927343683879272209507453203443871245328888858701586275432553824547496486608526292746372485674100830455445569193401482719871570538246457160227194664097592719766627340022700220956464195354204486306863750825291618243426365973509744720917714847948365892434617156530261851260494735792299888539963104213624088129382425740931888686055243093902535002070003183257245809063904081263115275395803228085785360837558237126466788611909634591678416753204790666494583252823825826481762259931680916786915814137403305550425413440129989762817096681712490606025708894221923026311367886411169636399607312670744596222035663400539109745608852491388913134194495378539051113391524443225503016704319325590958109948171959926382886109865938156939069892046597644534634650379924727819412069869655254949410591885483814399727187459186981049783541738078485007818740910713631527473225428986645477704121620491819391823862891352898918250526238527738025113162414739837066041150410280721024514776239570245898100385423836511356844204714511870065396374084368545052963642311926866451276243592630434206201618154855622295381321517370306993522567981927111569677929840214510533366062605961507490520904832131947660929303622157584294634408424334599388017650947933975379178301767485623755435785964370060602269790399532953802520425136608487154552020714692020615417014731879377463505760711112863895317385641681702346156169590791682579226133752828324741969681600646780144743129366207423364174999768887338813410663713916117566058250923784822151335417095068319033506348911557626048838395115673516210306263536754860192715648747939692316620847213549145945466919421317727958729596326909522022598897274322130570937563764097843524936232412917125674076705168005898749461532994535129770353413668288335312802614378223969262952619829433207096796232665840657976422329770112143324750093278853053143035490039685126087098053980428041962992449600180978249404106958525310743687438605020306064684640582889259160913898383416941079159482769883060113793433275114890183922765751830285435682044826489290088166080838729520104663732705319700458148731032924126620921363277939442539694669514258154621809303847606084239731599608136907608610969857037113943888304287303651265855790556743394431236314883348341435016017473235958492095244417402645045576389304048254876005282103944737551340258840128962882616436669451738084184158877023186144101821002736101342111384491809070530338360682018262389949893551985469601500698551933567811446570464960746311858224269456488210354749646483737277347822604638936247330650464576671799612863855956390159414187670345401274822287529591454065706593787330050132209737612210092641707965236503718860847821516546531090715871554216295090012831372682718887084879872677175301585998340771613759734650632095655755758811058380202361278531333919331420606833004524800563127889571807758751815173323989968209953678227985092600367902297852368603143355075710362664896037216303801640454211145401484898189894460086693087810851991025455500417928327823539922218226536770003792042035306984703781062884783467792748208471713161559000309122461254549063473902061279293215281951458266539075679702922818498394261942491186626398011738843015266255969189735080802559640797520958555484565707548790035628390807608687341671227066931209177459689588199280033110895147498575740428412051516623356316454177849193486707092339377698798740890619765051251848319077347080984457101865570333313714249089129738530827761998819933427634334625047454788564151262379435143798208853484150051160928608388923116425769715198369537345609514753748440677763720646661270637821918460512218004277163293507714346696868674409451120843761650511411811590232695186137084981918413751080144568446480314062375890210714003176349289745997687339033634522026334708927763706924034480782774422968086617492220385073907411106227114571519491292345815890085561150079484534030229816261481855660063163490009982030592861547639229362012926016380440932993470144526332556610977042192345891487626007009980664412667520215897911560012092368060954833671747806637297582287604285383269114222917917478931574292857291392850127925588655334463284606501964791954860544002204176612467741466223250662703115368838199242648625347307187121098191854448603006797331017777805274897315548411886068492673520332539468403954320637830233053707790289058685209155820030463074801373761183470266299983919430919975996410683246777650710085876252775344911255648546145661869232968123215047730041709480634612444584220793445411613451651560868741407470146130677689877269291691242955245563295539723642662380849884110529763976588864875813948603593055004012970119345657754086255035118054555843666111072138054461175659007032500218972812919764786997412391007658930170478017666974155465379947493475513663820218285668931927885704797978307949287885034211714170045650245748017797126437077547616680115980416175227731472999837747796291551091603543396320519968182941435948378980304439243285742766248592421830813018703864287317800769376362046545465555956881721993444908942922553295180192063190803480923466076629936566158003099623260911172461440424647826126379425240573885362392987450040935005605292181784804339474191292316736491996461573775687790824741208768334433529987563405301444997854465977948968707712522486558167634990444346502997383168768060531841733474540899434852776618937293306329371601893736047136867817055474095509971535970127472181451442788127926402195806632314949447263801083822386066993377330108206123802172396053604508525307541060057527765358029370542181775948626238981260303399714239213371022584059676765564697928831240053903936539983379421908922882676290090651608171811289861353788648597878560815149688079255517192128630834841266308714516035193839506204371781296571040849460839415598995996555188108488752002040961835388145650575465117138488054284167148757158244515063452770817882940345002002928299032870492002474457856578698259349733469449543774136773218101410616674311569427558401663262802907783629145436434588682947303219596690909058936628710336713957662947138212261127686160784133513393721761611124232843484552094459178485120347190672203691964928650036954573642335369116740400804959335397070033180382252277060330515155529038528761349631770809421845652575196733384064315210534386808042896411793690982584193358004297454282809059711899502539808660805497079345129359183813700131898239410632263317089006823538304389967142380427146566252744049751091306207201917924459930175726319237274737804689658133555822216637968932333297661357517827010826041887738613023865785047141050340983844810228240484840143006712064515751756299769171956238332985417643071486013149253680797838906222723867788315992613125018033051586054517791527088605740620075902580656571581879409173424373404543406607309629731409992181327884132620653207863208351354007949092032043052465958617215188707608276490863218858590254834297424758870264346297253989332553716550637415399656746932630194193614458504430818844097358557405601568519195146998240006090325036425590079647796565940915337200432785042185209568788010534658130302853471094920805442327266920763269724093018114090391614036522802090998782608361924279105692800196241143360784962418539427934489276465997556835139632438940816864659616706515390915220605817422880677179369056774675870518311056108729902282992385460784978314724287678145538656800861575050145818348879678217244730687663596040135019869609387436513710331767575197197440386239465027230533094998877600491348273487103549321144552337816856306258555700536030593881468413614764241504128686821035580400236797982777618741066706374808034012264048262487340903187679394272570779316160219442976285843349144218572341492125204377103733699565170932964449996107153830769343000624680536676768151420882469779345248771897680650579698591302223284499343049796933162604080649961194391579843479114661128699229381382422953661029597444305169416102581727085030953841507785018922789683401027554023475945336026212972086881374685964827990884480670547933090449731131588009688007989750610856388651814746881227856922980984972837696374583431852344839348241210568298110831158028065179793076377844436314170396978114569148725168890836029207739225354638617381853335306520689760321182183669290607421439842121817950292347103156518852931902746504844862392604658856300713616855897916453859682311517929771360243579471903326085303485094422803965620918874712547768952688135580514721954920531921043259692510168072414788794030222380329262888551233739329663966405753569148508327832686444156767857987876987320454658607062455046492215727613811429892480287552250883375187079168555697435429796657821824082366261003297344070423107839942852120337373902011529756478136598048258286168568365220777536432315177956043855570426155852095372503340721623057395917738794287593823030570402779027220756131865023863754196871903724358150932731502955166350100170162343689591571415151719903047405122970867156270055857229694107321584005860588500088492840920506903265127365905289486254002978775537305721777066907174674501834982805329901060577909138890830066590209260983826126689437919934657730092815171830890857176325373801771800449699631953955096963431820226050607876176758187775063132066149706851349715809892252901991866182278567821974331247445739856720177993787396985077407850817981453533796022247328030715683011969840414467140721847067318066968497757799854127978475051763173286087860243392568844403682328499532008159722519433913034908123533032989204219513696370865096088742032305199427016780220425815940481984613844944753349595871017690298665022366156156345272001226160515059862875750958778321234718188296425632362850002256570135676503682185923600415628366559394082004574398335444332277444751248011248143672160549374823919478075345936653460146220867272808285733721662294822464570380962625251867024180224625825129132568387218201532149168908040296064265003937518579874680479559602895017227097504547570699351888652288941138191472695466140382328985246427416308752626084963748619564345957576732766491995836741201238361432848413402385441153094497029654084036698205008331296367665649264296883127803328075376322753360713415694136545546736971292996494357034300280096256019615012013798865128428644467618942298369570041954730378890539616080162575823924444121917701591817940801677221923154073967950571540593772512402358784738549391979465160898213449251188715658097613828548971401890081495973783004493375200151822481769555107901292806450306619752812486894030830398631408360064608391950211167680910753731078868791162280672749788643602787940211620233764618941799633717736975385735838826516552395721544330383916192604625732606277800615324286114809258044980288077087807711417557256793679678512853547582133725661658487429161515508526036856309568543366980362218159650166050920522510917832395183936419199506533810985761844236939502342954655823205689220896283940876589623244073409916653255956523103622975875745422628851949133063768766290674382019215797231637204143701737533388517090002712517589261843325089861631284714407944083405058068212372282679358831521803618576482494364963745600080769252388129755692587990200431314228293798696369916997011098251715891317584012123429401717707341297340281443161519986118894912125290776810236911455679326140372694205654134760723348913771093367680304931982184523752733336765742032724870331995489130015658211687666183399681623597920033569458384812529473467920725628237635973836503746976794073838802394161907338720268381042005478003243118876084833625496742742879450805289307236978874395843090635590228775433744878584042542182711248368404763053831027401892661194707947515280315687544434971474265013173285430269062675850299310259935787199106771796211130784927987778806288870589994811950597746700347168625156911394494609403089763346449775986606437502480775895013821185512351400681772789699754485679944149278666134962083361211179317286085086889714851162632045332326713006941989577417432936348161467745261749498134467513738416103829257251937427135870448076531420067479640284892683869276952088393605065579884159989844132657871799001538166376141521716442283034441110576825053324471690004626423813597575313335559504888111024309841055684124676037754771440847016805118457132937556853779546358649072696954709202116660748042987198154418470458562336601511774557700987898011121940400090877405984122400915436306208708799569209084778339666253257019830876855823676209995319438160759001202532242692125435071675028490258326547129016212949707278669911720948857863890180382543151339100220791058148941648390950738674626702718617958893965302598981565226274035965503468607172037481288536569000376012150728990251235218139326682806191074179658379957884671634769594820632386684871014120944575868559192384975174253485185254465405958356879134885512501830013330756237516023193049254748288105002793388856947627553285438863177409220066917519665915958189853566585674401306966680751594982893363893351624378876719281342711057495754986162008007651894350852549721755331232311578061443461791357831595336166898040874295150191405224517281574540456432737148665420257134759009064525488203208436754316859191357969667432228739014868433477883966000551579809148751716175159755433435628472481898893311638131436400703068580097346081876059291377041166763420268942774125956213318608723914318426946560184005949663374298813438846691528692185812317661960010794051814964044264632008447291894694791939868523156745194461296011191486919782289593109275728529970864392860178679228592625250864668360446844098188680568729594004347249405478239362766489537914378630565132778638550414967408543430900251956490370831812502434476021677602577985949952221602876994054635276669370544778384872465958968412040463682502319222043674146432727316426103741521600922240255881831541124894284006499233347666339242629850357780191847969127701526862445285677840010764127566615736846444930999890729128835854862055560375722167107270630838249292291131333743258479154151165813725836833100066808412996175690435428439399096165380388692840938435936876047548897278393392874410126757728096474823147862669054254628501508797036520531524591214261657387603461654811289793881541526763972325201204666981350069226174793963641648696562277784374206697136878778409680774393797178326309124350871096204018625700363960763698474630857371377296344951119085032189338544224433061349628686720589495868113780317628435930190860221063182048988753405994468151793022294738003157265580376617712393503528228784597455895056067016527588619218161336134690235779163146017834024671818328892406973676983901658609977207154789996295121822051895135177496786962197121749164806018591436196317554880018642340677370115099583117406859412723706169768706084404714201540823161256981602056977833074376996477219454007610104920355954449151110874614419806627295897299950967171278438252431055650674321742199651805301921268916996278066975193941980146582095013953093539277170898117783207840913494549050892381482592190061720493718381243248934509595931186618478753719230309827953458349218436680961507731960895502215533574193052830249585720541908140711406512990950628306462316926033218302811280832112028778789880002825437027734861567629251926132583413435243258257182704753567994024400404300227189249475993223595078910486254821805247694967744196753388776486015149368764635102039497248323454747341331035671497862575865590376167758277550669142077921076446847148896200858413689137365486761981116270293384542398233649584771774755756250250680864289077876528002928304187869979151830639933521835324691248544746145114300991004563018877886351216758178634214811679211993700262822012288177619148414966091575454408336479907251996447934994956804993772387896782540280494311846525060792961463200665099157002169158746642906185427923839017959461146981282827833451475636786336777391060826219603985561272029553841582727456091804431416816631864186767491916634102838231283613571075635339308172195274103778539847922917239296540899100889059247777088559213911406763060691280325549225883272710687510089351882314522008216412672987500616492118468437256104471341932958723461741053045255892193073563742923359010146829834014152002325714408174144405438014995752885653943054635991183554720307530944306054010941171658854698200726809324184404007433432563654060240074435615113419528117981300235888099092641429389159367629740941380833060074172700680391563264237079521007287941827485668481663155519368667101979136901425448984297472336891467413686631800384103636702279136876650989298430904580717893379577758086993894272116659378694974316360020962050180620651953872402354028252742364029939203205344994602996481750252159962115114912250438432065239844345433408525137282713432396055963784346318069871311261369004644113763097751463460136269525817282089511763361050005082019621399034600315236868011343688607247584915302855669277242313913479997319097898909015580019851635355572425624578158301285516573277822995718619399311463009962984317653313379977188934113215473112476217250238893324329401823007855652245828894874525721007355727723481455427175220270006437657998657241368458374906867280320253950970025066446344798768062894005841680850832846015325135924708479323821641074590648092259401183046643428248031492683224046537920293045626558937977052728730699312811187559188356322619899770824082455634092960178145877461185390613869104629224025289453832796779880295778173880826202711615227393182558713229541974205883956319399528801026908449874458930218981058257591411398818361860968683616653053219505656988488144703135801804920024748604958782960574143734275862957509304882568335312625568831625927594491370004037218663528761732399184688314788539375814724184683037266146937456789823383969357155519143282755563281214691806442408901411662769959899994216846820611633516871965184294973217003575482435257678880663137811824201287106724206303774619980982440993514873173967809169395438813356769130181577578321346082412874277431384589642544314614111886287111525412973509933229875867088571433258171100542747099780107735274212519450305298083169379617229116326601328064620524943912033959329861786553024600607706761578918583925587157820497150256546971079504526010881359919506245873999132748629539476391018769601044057602337782912665239384129548751178412376117824685936798925244797830035518515474410816543588174496591781017860919112482780527269411658803630855284377940819569719830493756860482415862232374058273261465786552120733808865835164190299471229676585381408030383033878078947462300753948317769215167182985702531550142470576438608399278265423920120343195170947186010314735591611850282061833399364086691472438689080431898254512891827711636059973493697894559970218011151726805958399872783842777806858814424851585969980940890740939678030323778518956985573967995196056521979140804329786949857935484090188179813167104819346570273757964002687465069936241858394321873369277796465906742050303851501439120788021197552365196829113807515426026365854317423526271263127504619609994822735093841649036841674738319424573667101550931830869615536909387661042909998942866094530261558396532466613430528588333317854441519463561399954435407140165126986315971765228870085278456413275684374496909611558720432583086571349091015215042520420356020358946104803851686663193619040096173433764501862574909043446095893839739780247091570282634772570852548233445761883564048485905210820472905761105094100475273806627711861632159693646716575712875816125157742571930556359585163089619556266400810358544302343721982720639339870291770216149745528621145873218812814642096716536955502119704891397024731854072320952943866373481635773059832469596835586566111172909580429403526084627827835876776810047055469242150188975311462565653592889041755415956097342834277037566345063578478521005163725413450593820096235279385756117154694306365407838542706897767992400707142614395467538050421540500322548502063564696331127103664623002179634534509044308242719044362859575986411816024621233689337789711158472757968691601353179964039417771333407739454984441359715277733483698116839927386760114600624542984457907328031596384789713849546296839168287155835007554734557231164453022577691321925555400026896935117191059122138044594345899801097392351933307096108438367412943667417576872466638394844074451555519441461518772498384716173297386549782852072217637677135118175400708794178842672830325087120522909124809203866098418245695277540223393347632744690456365402962048914164182223172254509305168102880158328667967131907489939231843222089870049300354883189673758578461512125876179466922474462332188259733085419205331591742137037799823409873580928651014920829342421409900984953335790330230116626058762986207626723938677112815766057090799340510345425610270168036704134062902199731896161893929970563703077236879417845063543561044636365291958850925192391212812520687435261583703032020184640430441606546877561199776564810938231357329188432501777587676514444777411851198702218610348614442074059463903007099771283655393450927606111777454023693870914595281809285829871061854158047196041934633898406809995558431763330678119712422364706558991860209140095284292571375660786980784136668737841346077955908123656213999640198546992835723564613442675910154867789865601122488834862642301484017527870200604499475948898419707891555396660630360848300271523470201475228960056963812742671380928081381262969471648883837758163623655893681212733699365544788742761542126010300878186500176647212405203191722313726114354920916226773260749455476159143551261225352650476571942164774648374388382919631300304209076735561024608135462610768133403458048649078082120570657532965249570442990569558946421914915219144847325674885240230672578934330189583926064677389423257632977068456657116081087424629344094779785156004700328169162095853696027136311725131256953424613921648389880620787969097684821539437242309796680741934684341792659878511437960474070857191231807844627739838946249420406465382749599843531558251311826209358480183453214869939318233290721101377030755359832701011767359826825293091181784540621347586482964279931915172575299597755456640811160687893663626268490444691942501805322928124639920547480818128737553209685739387430523196688318697570310761769666304967479757589030360823015138728776752787988536901627780102373542121995865315682174070367849249428789681262978522419654158803534254212864803751449953035619127698332625821090894183591350275298511763903571060000455091911284640552138978736425914438949738398079524126170643068880070290472403175038919663759824479768726589401505910546901697319600107407565275525461207663552450906150423520087079749626927298313579729844673780723979231680511056995332228421229656702131231147191153112407373559725753581826559654041697664141604821661941545942431732230564815930399623498293432106576824763221955567815302646739870447687586622251267431691024612279097913690323191338100038617943904772155977472228839494127306041897617530906974036785926365048240404497100674390730718512451873479475333244791095317085967976915645778720401533906395247906277496140417796170573279587105199276603798011781084229409361065046645550404151271208726897875317468240056937706372140217429421086052148610538735662042801882046588990786429724752002724645778854637774814649986559771404143354060502339724683684397297312130419521281157898678293024698272702114879250726321188898973476700226893296765098724780293193036061529658505924586093630668279141743319236730474724196870533973483937482722822389810638720856018303351889443808811298940778963683130028477335896347266650490887685701234713055541839473829307854036892445531610147300745146482757257132369426572000965617294772180925788745087668770422947905274588653958680952437169785625154520872382143020886281297595803318288141144132823184958792540238277416291732981357282597170869601694655188115386858485989392236358605264383088787375921888507238715001104138079725367419200546011895870317611493585635746169524007693087837003829603646389238031559643730674876078097150391671618132189351999895224236329709862963061655701887828030320977567134565561502603346987891574196716937200948162733872586551994759825179365226527873728174596170089247133654787348311173540237800657909735979682356517109921376409308328704278594318556342651740843861618541178656924577134008260681513538684703672615262168908898863061248527100388785937977743395669903895826780755216052875042450493101418618105780066277878531485139521291776922692287968741225043411998693236604365279067371555172933862142563455790135022806030718952620267886076181198260798847601553227931898283851348264890288690904179984316792418927006473975642649901724560827928511362068795144749612297219695388589147117852211178501281565279228018900548361094607937264277632110978368447771864304291013212842941135711850390096761526258197054425060182838841649537398239225892639095168297923337265360300256846177271662905481676447608696199673467063160232141403225814649783395676417600317342558741661183341314155366659584640525783217988800735529060903532127331467193421353548366437566201174120097139192270527663172538720834726928180449674117720129553558521284235455496733925063867612464700903390521420641547341895140540716217088102936399253937777656566572810316268563650850585435206170148793188750731033366284463477245977400423704974622474493445079944852131383062032911800999303135256779482417978868093365015940382333053701205428604947086948876169749584652554419677466451782210681295798835808657110416681026118740429480946248754238652939474589673541808109548683462914855146393777112822339357747847521710825790285992861809773770190916182592482665603951831785375898903244292182534135155199394770306104764815630900595798635472155713824389439072588903760682309235203323225773156138641254207471344979406299842059990827786330917934228327021066115023319134108304106579083296627254996843440704590466774501938505951052910732061254374170854108077425991899955774027781860001560014408023647243419974015618503415619040521480975748345653948048055686480630543314393236199701075559847678622626578767159714009805399474488472248516753738514862984431968177158835711774805826953549124934404271784014202007710825998202681376216173936935870235439259889658349543281481691685378933438749620251002833639418232732047420213741719875492633855818862929013383993818704281269060421535691559101187767184299604433020373748081861473686557045597708289224282973556165479909993376487335305810080658002678766218129579434641236941651315117993846284052359540834067194229677638256338520653927593128983653775105888053660448163992817204910841832043366242541935663355849536155938077202353259004143907411871946165383327825759005853972198869260534471654038245662701690889593333376399452899749519361760868950645979380889710747025610150523532705628127899524941593547655269972157018933301067437729944807121357010225809090029411676803898286123755265283234753708677394576663628672760967741391838448664834424328464546487122340913989108755228972681703820747792365887764609240038507336473033895451904709331178763427627369530454718510924573887838328657155709438102674508949900258532557938746467621832090654740358588160304050856025369941811478349402922057549904973464551453128945470529852515319439981641665817147999882932877896088653347746831649422714968123475187568668455515761594802036489580239723552273545838778883924923648293954989392106457318993507246165653389621684210835634937718097847279732664310315576816433056891016856073748981797758189459259594973375332697192755620889626059115113587438655892877095576116753243781434977470989764048821532548316339985137389983826450679749000153002000458221449680498926714576176509790995611480553717677202128914359988529944307369785848403037104294688680344374041813521861212345732443010380356536122725243245280501062537792312214460660908986044515698384397064122294497090923790448313784034335656686107638639658640496491656542656362014871204986605669066867556150411366854533540451991407946762921243402368942774237422037151997599695688212650640137760314447486719510872281378608091443843136587611355219336068015505644453860165266615766425632859272041469484968055654181122118605249419141705540909211637820521541178576733459814520147843840713189746934698131732508566521753709591575092861664317326075215995581428661528735523376804128360682623581795668967057421408313858220915873780253027055077343935441408497335106613243520076436871108050114928259896148786643842993873324485139459194787577728268702033804583244778017569817094237822962547884341099922298075721750994568794185702297618798901379687797525651780652244704588618866314853749359466922939273413906924149438435807573424731769630364942649065288982022073311651578390525628776468904721955683752424193120850737375996180038061577863277158025755300986066030078686881347688356478649822157256840925772884271117327384814664961723408753094416612101665037842435928566143593014413348945694707399243806274772480502297234364434360108959555279630775446174028833889199158550527643705258958312586880089832102431735727208866599455392129851835066831054183206957496018694191925165761638519936605813540187428290843744457072749185545214918509922747071932159545847002627010737252132095905370925627079525904048657736345175133306487123423623654175947975806678225735311123937766047183704853564811512962922702568806528251148748057637825536794635405586324906746237504068068410636830624843918192764030618281571251833175805797847898203613686391853113695955660407261390697097924779782786591004283975160594346114765079036243586315023375711819376066518381291307350054957345457521259905169761862143063704384503519375516169716053205685067024329643618033211535683030157954191054517588820756969984412907957036485029000690015439774531370012969680847433257494393757648235792079095203583777406629705496143268090788541684635380527779676312852407289634813405517939845902505427060597176468107883504133322041560172479170385816341524042222426424849935442170622561171270092656458840362694422862288849158455140588676768325441496512783624119528846499585851853137085119121260198784101110089481921836672030867738345981403506567497029617428722335158288418502057683939726387315545404047127109816488751922838538343974241030868305277769792013766172476280275527166096217947780170508813731098565290488233966990472416382818515480308904334595387879445112401359883071562420061933334701447867312665548178830394988151352413487232519869826401907977428450543576796667493671149118236476494975135553736368579583535015131154920417694076413972444592224744758026304000165764552156158363309028240929090764087483398383428182565246482293204339082800379772548293728989168131471868850287990569077001804779556721839894675533670280712307364594902564075964074045947692167981768249000411420044664316304914817263268248111383031916372267746937394086198312624756763706404154299244408950356707568889700527651305736471522481305984184484816873234402012496225913030913389367295331939789615483113073776151040732784104917011499374067746897116822531196914707208238322722758579809413374576239169583836530090704418769520577521132455604240265468930746639561536002676388659382843846418039563422273596113297984237478921654713552940972594356020262727144441514624494044863562124308129879769465634349080735161676701688117261489083704658521745189224962167615711731894059799732290987634064062802573198592395076959229405526714159495945575914346520725759856744653824298694325880219857241058727146344408700039495908307883591942170732301395372169661725828858796105640887264149152172608017734370517843993704535994716013478196730523898426682545371152329363581963091923824415390539318450641459493092384849226854838616234067823869545489151946757969739851222181247409683943097062492398434170126660974753561666334902030427944152217739967150697072318367643944684114556902884366510207277417579785273909317443462395663986181067755173281011514810969806044805142248756453656085683646440873009751753740498901380367794739066020392627101094757143024836540977315265143375942987149130714128118323050771721230837638117787284927112532220179472730793234195850796712628641515648150335302263149847419589889145887200354711436107476695243449919633127329055003595822545629626719200745654336208132341010061005923515139379072201574502805553636756515611467714438341670820766776151925942717005477744638444398019726544550647050939678410761444110129410419276803818300942609466301305029990641500495502914727731109199995741292872892514928939719308872200252221734628303007374779499473719173089192954027759604829731136929225768647372324763908861784518711969950653399947910091796834155940491413562296445758213902442939671748469409492579323159737002901266854350735775822583466956442234411529284954839658010106447847286637574335318761956706386786479331838394400183259097386573859417605123178899334101451496399728450669895340199646773292398269278067953334507654568682473617178109151041805277943773833069677663289736864028206514215224994283223697895410336773350791539826094104183187144027710440828136663652672481381026942520484505662478647482890255440823267781028862627937241776752540526112527039202903858789172325800092814010432688458836295182494847971473639387159581041337508258904748247237933814793213945101280289005704259588723249666368417504818660189603413088467831412653874834583384818312131734846777571811740836088057460205992819385481548169277836083170189185539094745380243867061330181191104945383606392709141096575773610714736759358049856222711163262145476277484854904211589650566946699369710939806514121674855730846131531008399711643225813023797576293444695192166018496411007493716745706579699469745299137871637451654309082746156554908617747560540658454896115321618841312323294826348556450657917644480578622985979173207724194537583383078146432612824450224860783353125354891343649522272474869427240212989572355579935860695528995091756272566977170714136245968702355917564130854507241572541443216472343479052729343225926194598518785717728692133043943628658337389103306001870243493760619678511230081596107375415591972173033849343221506554179165209130003747424194269939862599282789630860334631805958697139305454938485781064597881896931890604827578979344634422459517711949145637318518079446682270440500826196683297982142749324250665582090567960807909434739411474357829201321739636643736170304686396305868119482323307955528840133652813025574328184496112619715971240978653284838587429489552389139659904716106154426532555663172599909503076585265786716132092514797694401257763035925890859981951255175059479224177578232863779454429038545407580349428420848472715657682639819527879905063199598247015737053460821915266325868221636689534520605013361932809544864640502747829705803825286517319503379510235603545499391393911784947301326449695684887013284928696118738791201630156130504050099999259518668463072646356456421977202357272226964598110088174981222968695966281232714193643371503637257319366049781432009945955911863799324985183190826849597719150377439518109062119338622050595649454698000699487661455130916703261345815768292063832319594029377463915230067195417437121070380964555235346005397850299669833642051417845827069006277794277223118583520772475004542655408297585678372992070043774910966241847074662870871429045997172172522305275270635649084923341831324963585203957241578705707356527418896140529151587025354471772228320990998103000980454351881439926807977449330659796160027822079658350848228892050328025420341588140582542059132979911123940968477539357764639818411029096806955233780273612924968043834339496095042959761502325596720535919427897203679834149226750372884275505864827283232428191212053955509356462879556672615950956111468559384471341570686524922658174210535120426501502888774524652498612464752005018333619559192789488497873074820052690035786722052736297429532178336311310270881443151302451896717678890469718540540197878299207730566127520799269882937856975283908039171322024842709050908589540659145727091003651338343302002717093414312581130211918461392698808150408625776991352114740033048926771933338914819229656093472915318501511429148233308332377298165280017731364236997788545560033135819557333445867149585823061995790945885377634412091536911976377928297347283880472194785387995786381250578956952871552695209182125546111804378347146142804329159986810406812503724445217402988191242839035667334248721912181768746997920638857761517672733963163392212326571372973919371697332465593120453398004809413343474848235679527333977322309162258767999772181927137255081192606029803924023357827518486996291024586995277875970110755412555524011918287181463634392169016006249261805401465059493150345998049906768805827982882615456053983886467215933254183583536791081457042825804661364349930197627983094970266286282670572378924008292747548278611386468006419645014149359803834643426571913573051216936484664852083134555771730071332425160033992022969597484665355559464605131871473786465717656055671380118239759556046009354496110855036095475218395257695023405206417488587931689792251679655319504547686554727556332404486291660002574937931475640036197183510650252351153120209691254476247653173687216297165762096902042598666604552096294194443153889036397947715166070776217507329012164977126910969545346036099196641190356224368907034376135947894169295893095429376681643516979630201464489697990656650604737667313466312947342106639957133335649074457187176423310579432326188488216919973365730553025202413622444353893578214906053255096016489682346663283296271390408786240951646056319280380144521751450514390752060091952500902266872995479550750230699031656819026101514066797135370202491658038880125393959564164088106984041482450339126386897753857246870017160915162776884681600725135758248390025730258183435245518609909814977514097844175510602028340492430272719230073550923127577762611664371322596783444243116617734650543653393951362622671202830064774182379139634772906041088910789676315937158875739370006015758578546561828761500902459765003027569185483307222971402007296851809747309463489762483310745808472194285873449139149495185074307628636366189452711045290228788933500620334191332656908650170377886281374590241674453539791720398295871817281267433486243019296183608282988913155835552915731919106863807848005999176508968646543915968772974759831402922354030440222169211324573116169669302523456449493544376717474050443751174796345909834763102819183434414944867958782148171848696606048722323985426975263490137814780070368253938697532979668967883189852591621966409481748049633603751369817315367631200334396624517222778139801395811859766171255116338268657674682335082339854135050670174716713526843825094779742283512116488551614185934902799354498726259836471035377909471846707732434395048294415567199957447434555475978062862210308352421853390790014565236523301551387201384097851308038910317634458123380649574679463470974491040494126236256550685942978126073416954990545115598717010375731051869288380828149304610301136207195691116637563828307022973612870864498824701773767424747616765831711173433305816747976794857143183668240689597910840023331682770936495975253095119738329470998213248555865467318222761236642179836942126968308050654642495385629627537488588138860142746730132124925549546083714452716961196087553973473922096075453058269259473025982130098582469011280036966940817894872755877069256580310821014172954672011251818208831684263026134139353406466067127586571313265843833550430390092733911871251329917406284649008933152020071847610585387517939125864943296770596549195186883392622037043794581983666450055922545150765405883366097251458736220217752535542802682479239887619263477231398912135828266946697765721540870494713815776882023389318170551937110975141508761743735382421646996457847309383883996470987764245904378703867374604880649322604551274545105189454573082783924860196925583946905340213928247049456682623699723350208016539185107997236914402540667178764139513044301136315394067175954780215699575732591386613185998546461631518290815979465755121966937173167791690765076503802110550156845050911978561444784092937868485846300425430982824808511635140408232324795501603648110294576689867166995688953538085911230819033725118756814694387703227109602385837990867397418865513472382580064617002769661621714149740758404139461064502853460837746820864296624635480347736407031229905623432360004228549413403974177995926714295751274007585060676452921544711155289434330767622198478897423213117070666030684846372002365242595053650153995992644515591061310713620740010645595868404575582125640760924901885981456300548939357276946523449991753589548170464047598647273341392592685624564105047176087084324231983263392481398088003868769532115863152309090442966186898953510635162842410484393760161346581579803487665412882884700364305103818537941224656229525756957603838687975482346762340109134352638340090834942416765576571964828460357850434409647536337932114697263029846134419168624056136087926233620731822111249455471087766121297041160877618640842603148828546588869227953873948440891670558519241187819375657776171607462871074866318697181820048398191644310313151828994496073834032111294318439043855457661339762257844662864795380195621860000160816814691127277878157899637584125934419737403950291850564296255547520396050193846362755075016366494279699093621747608667869060993573559763328108623213882951395163614337020961097614329346975318106166148230708537410331778271337375770433253836567667160126917489897164409561644798109173362542712687919930383869622581703071729673863303915864243457605856314126488420687363561326449247759520723095626016925060280038274577446109253545731839122183560014955638361924043262790216028700770479945921995252152195892553746060001983836652006925400796728844290690718081879751904752457370014671696126816841214312512551201706294457135747058634123437444499559916680089076524183035569413414466863732481081167889021330411761684951643075174364052938123423370750089032548361437277145716608338813428086003664557449458210185707753094201034318319828150624744754252775992266567553844004374564456345952619084546521306711324703772866463911858102967310906349445871772315663637521513837608308488452754334828462075347112524126622566085414473301026778211159873629636263859185816588701538332553763990940720095911183517308748857356149891604161104979584437173934486828842174477127329408099266094397478641576558658820037043975412737562992172965101717823177525041681393479547304559277678217768727240898731035474160486001983897757240681324643418973095982441177242187177234643120503708493537445438080861120738166895777352036481487042825669228964507219941213292652802808969550216073665466074159332446323155934170686614127761690335644294645685369904459373576374851007993143078901243108765868659443619062791665566436773645946964798796214856577102328638645799301784179006646733754771654120607801716624976838454188874440326370662628237750297884996350966915772559049593316326131946451940379601156228462162230505001202058642386213653589210135816143943302679640426043008401131595346738672659112588862612260399298218160031420745359134117911403334478138017243642571481965746271549024868913123252511372832910136883190273565137435069122951765489059434214304923004020008089829360498833363624980068391708155912014837066628475238078945133840715811511672994738222549959764511487981141492439714538052514764495884946586869106878987560112622010303164206535079193216594155263460270591474623553863904221825803148372066145193492283795206050023706581242703319003175903884270345270716516313547856422319500585311510761336757498548061943195165803186610878973276191543265603842986578350037214746697387147142682603081796891006345708483326343450156612098893281079275755507849911587979526002172836965017876908156852458812065488877588338265285965593526856587393520615455597415678457357314815565267469870714972035076189718036853637798706312426812405483757393609785711502257997041420957323342710713360170353955094453561644142749051091399432271863860068003329025897373058912850428467749064262997076802072971073467554862193669004499429093954368182311412706035247804924116897667811407685996991170825945394005286402367461631631878484937607548584762679889637647445228447884244019276458876806348965242527658820120838727429901431098429310021506494818324159960979394442883970393603240671297164698490421953316318387534658229425838729126149969949386067064888824181076477879651720391749213900650540570732405341977912520536297546836248573005742084132365177218164492979496533919371174164061105108045768842893718026129707114547509449890998927473461610449631805497302243916805153300474666197817395361406851686346948133866088969481336067119787762077602019802145207461832496580635287222413466560161324578521151672515274851565427678594984196158401706354772696844032939768259692544590467068515156800829983161297077313487540383261028569885290191292368711140861939204108336645702973910055964654320799438937900318872634125316696516908268345503243651351737413520347772606927287575110280644221686878702510088140099385074267814739075829237529626909297533264729023912244607367826850877625245298573154428274832426366383359142588849432591834025808954044058499642391417038563751284260384584297391680880378353484983962422168282322618595821833063195817669855552837093151822501513261067222155347390778425205359345201267440282448015090111171150483239551193319672764450024275132662112207482097118085742551527370006099619622573183008695179229228226279747133673738791800875169141156958654529836321874137929134768833720245808784215638672729574763598046204675049879096779084225818699142631281340746592086207375919246786949853497512689350181935907563252598157361502010348865091177241499112435599146442730630924439448364910823413453296872883997748976683122741677103736568254323051722564574711344961144703711338411667891127937378752698950553927002985298013893346803383467584249795561019728486392524067223222492502582468572246096296462556187086776518471696835019948023711878287780001886708244589515596906104623197159737446305341768055114286868713196261753928837763858233805346759847313975795243992348578894699186798339494988467134257752893886186404367550953075635597281779254461295089333171752668020971904609874029005048104297736699911272271614485581418599667275697888154196913186278838549992132113010305116989965910927336326615201583083248453022624427377986469074354742617745863425890749402378627975453868316312416462786676404686515759539520127679066364501413711830655167824046260675591282058201355768555998473421051396457977305845818380908813060473327501811219284811456843493867537647979961295183260871462269267941263072100455549886898446196614555285248145897500426119590461294517498229856031575006379676055632590656050428832638134448756656175273374795348463881643088319507693065648589177960021615705446527501429019345540869817771285217766532804128718836936784011097902092893216465806646785928139470544975654672696773202896492258370300012838894013924302714398834304170049017458542816886980461679935621084755606060100832964817126966980456524329486569194825094928490084040270737056918398027540392396468024859828590412471012267883125666965052735872179676478956270570770055647061298244387464432239639902919543617978176307856267856809705323553042553368837584006743228400353070899012550630703725197848092112929334019310809858534617275968756481376201332654105509757145538612054548414854101092050625507979889863390792664050732942742707981100819331454696156073103042012861791330507769116734089232749003247482176773073570789328757520057503863356698365399640799621141154846584899971798405346468715730372779855801808649264835515993624145524102178195403836028798740548710697856464993431370983196305582013854159175378133214787616998486008273091881725886802039735468450045264171324235724891739684906923282309373268746484122549398360896999038726495366505744683595433280816659513246607460623550620964265444333600217605020255170073850819694332865799292456759165780778921891164608222288135549941715303029937217601921722093293237590688597671021230938914715439580495388182366010666328224535758616942209245061059913807413164155097577343103859624828004543760651854360815574690428012572335962655911411415740416027641425288872885139089215367798131658880058114710874918773764626749091376589882154042012146760507604706913993480908729675962683165796454793661336369680811442451565558284354595980771911341350656870443421082282887904732891781194522104421532091782354794114251687301687089321154286497639241104617651401318221373491235954528060928121814142244833896722629219431963636029247335189481345438881805346337696558642839225284497303663076395737066841160533859625700548495266319454234082939160796553433804280687560557825816471018783022530165311991533268460868920911181025761642128664177170323038774380593892360084441638321247099704292988038697218472370128182441182122936394701716986226482732251564649707491401749674936640394363536525177451634096864718875398498839731603812135566626476395218334481888404621577572261018862132330550807001131999996116878808897191252067999268141827197896095577261730607751262702349146036135885686814412559982668822569006048913809625230064907041926029813532727148157754337021166036636926592639799124023521277332096966683390951719536611154047323885912663236927447894964733120425501256896496814959072764578121848457324729069444206853197812870333250656195661026830430357630212800005413664149141545341238816556320245197761701748636900367024720798439866306718311854340858657724828894798549668500097590834494170866567848911466019049810371751454500160434803114235763417750225678005073111035799142884545476890663573298607254231350114774403807566986755689493831367747511982537603378783329508190849844339043042417301040437807891277636953025632971189567213434767410414064262971803266032998197614707239357771159574549668937316775084406793691896176162149130540185218270120820138280616420689424863345554357883755376445912703345705004676186154238286606790858263504596422533902438130742751445691113444914256131355312451604060918494236734008503912728445585397328214790704613588835648701695552419190305753300435399908078070300895493830561126383364509229602066487284164706193030827809849643994102084960685066554559019096771855572950908191309385372932627029482370162495268332213130382166249886681843408646664884863841316058089414023368376245743784536798117302447708884634471370428853395982726122354071155678884660921552868707687310756555372580634283365035818125520355892015639443812750302876432765565098583654491211758441334439966231724082330497277642366414255115509001846506243933632432573127334281460987939256001691200501554929732059959248159486485843974916349213543642018040809839251595193813028119226434153839525152169647021422191265298767116196181021955882659914923917537776600124347267622397266972483090837971518139303728375978013932661844725655419545007196932812374244450901768005540312127868910020339306827914853534280192960844929363769284348378247611436850325968638435289823447272595364536641398133603872444953230062396516415198618789198923560758907289350869653672491110980911647453648061184879664534158543577325137059570882904686304935440740892563030265812079020314476870281640121611013760566748500882430502195383918269206270386167236912039275761351484466086873548646213863690023894456103712308861339998709171703674182415156039756614019010361323441752925658445645436298917510997197082637543744427181345147853780407806749719509650693779375110726847831482243129094465572811858435804421831764772422914301342323871230072774523823346887609315939624814968970643073425988113536740551955030424821647049514349141124150594653032001007809021014069104528737856329124953466164576227936889454384537739498689823458442912322667231371254489165326783698809222340781697016397020068001915187176004514106454382865000988872151297567756755917757226117850822339772680279051129816515806052819611894893105712920755083529496311745395334617462346222640373908535968951586356438346003946234329839615794468816192205986423063223650874212574518385537107454241351556579043039136765198232141998229012118394110635210689668487682705992444473974286377627938218926733293032316345794142871308655058545826552311983462712473422993419578697288048988042019219470332930798115390814601433277975114057340542594954487194144763240070679967368703944979027069080955540128635985535080411822836934740910077053997313710752239985575527845648393239548194827304387660510789372994642725627864176053640774645248082675332123772002737947930396292881797247574063892832187398096856367442981925976574629227379381229342226297850750865500594266578457225521271822190798321183361216891312099295772695687533230462522630807675068663311780767160079669017887385810601803018265936688601615709442301926673204822958686038441482412402639856635829065135582554274871660358215635647120075524029203470616301000678939587761298172755650469856497347777559287664752460292451580041241479330441291289072595796287084632401239717558629398631549848182990189225240324305355867757094827118206201047681910234481514933108932163271723460411467145213203992937534902762013160571888906925345979725568120058303632131485218724669354235636180986039637817800993170365407011495271552697172588577861531451945666934878075979614033517611687505369965434103828749135042047696184737183625434035284887898405476367303288901788259650607284839492314232228306290545632732634145617861104435353022221587092544341496276784449679203678838125446340723905201724571157193264345719362953077225180147669916074150264092982996010411793133833673105158942156314585246377926756109040117560724499668226905512071509354900939917759465836344425127364172509198812087083615587874884239461325201787158768047486117528337637866457595622654201487922106054243394864114993239557769568975333648055989117768227571457843079091682587871152447140574825862335308145028020762603861402468242145442430737064591921470497712417004316521638478235161631659836971044397254790013752279032072356693577212526021590940215329232963060295846922741455160927466839920850111119154039159229602474469554088385962312748597709074868087254698249541661580215860349726624423697856208780343779707982138898529809846311892931845159278070171607894085795810503637524278131120267208494074698100152741061307570996175016792851606210952121533103044200383710666560540966477258662101471566180893587880353423174722480804680511496449679368797738684652253111228256589591778948496611007560708228020699198911415940453975090894081516568660030052998058202692908250425552278730428741441432704184278368364103234228760534264286491182536338163428259394362598962136470057498561215580903955644314488689788094480934121237379382827402766484136533446708486206639470620838623079693900129930515590889979121876331028542355543631732928829985492434397601142049240889017872691641541260104248905074439257833776432367131905419794513134289938292820174976954146119280540961972808124331020504641517176865368801966367280014874450201021783328891417211111483262177752422083457615903367087222642216437167293563996286052591605064630055917495795362779031402168554430392415178500254386552371011729947885534284064596114266736242173185918967672501266171276854307773886239317336670523481504224496555428607373578810546063888995836616536331801030924957838415879204392641030130989337975453799318291488791443766153492697312215075736576395082901502781172669434765267580626034457204066068281410974444580882559550896468156783774979280394702481488042009822267150501597358710088778240349702456349152602891931428082320001912424244595878943928397277508282899565960710002194447153517665624825317524953844717703158999012458932941424650356741876013254145111704752349449897130212327983740356628209389998368652139698045243548701880782674014014654291625660588994459881306481948626267074897122239631606763305360743410413401438846826195981815700990464983096959167088851919900237236731265221642410455802767992532002484209940318722748681202099648879452973098721853567782063513080403762234432045362596715175071300433646305982290421962742234704047680649948562298737355625288844838177545614580276282705348311471479640109825114729972915767040605193554004771446373872076692925615248375648136224068175791519541479228947122944098636633014826210581630379322340579608993949337275832084952990477268755580762728122658391320811564948702848784604697748822615582553503374489908145803709112071374549250597557552489109542858181259709926238209510375177592555761505170948300397563926742325636919386020127352677819415104405086869255471912894253159334592538780204011719671470241636549722918733103333235615414224722738582734814214015894321152200952641890007054229770498328760414713721363599270804464468994101813333589146251102036678976903051577323703905138008458592946704044873849027969213251085268170987165182651015421157982532439283846009823867544621576585349673472392789699280470583309064175927704637963664904629157420833564798788522891692527627617783593396801716070986296866799127773875042581129156644039786010958513900559579254893881530042684210915315213551260077786593656706913084026772982276695056327653294550968348670524778300163848850290699545082125774851874657895451396501023702672267578209244503217644724025288746736350062330897296268639650550979846655596550130873028656361864447273860942214442066056482248495320184804154822981006076819576396831137983882968843698314973059507656725366364160024372329865112568842732853233511416178684975464860062390212404214481953574908751209691836990459377188422639721563202053902098439461129436003869264208579999214579033281661721146956178217268989411908808058386048409800331142320052963419662284080987456203570063056115530702959101849135669216492258829214498884525128386045130486332366449611194768451800058036530423632393002112765170925683048967177105126162014269309271373447121695777888391246277735276363908124889629882811136519446746316544813205564319012778368703623446298915201121062428079246397107192443809925443348034693755367411022408344821077819230417409368533015766251501842125347123214833656540587739913252499497044947888181261105353183088342540404801114561514275244771488301771228978810632767229405013322526295519063856069277734506609357029436844487398781120492344600658235773808171867966315078928062366443412598649855124513786139145972413023178149680526968032672755390177115939900658704291157180718760273081810288939930434540600259423024849178385074260580917612561271315407612021304378942373311452942511086580379968112187922223782706418946044576771021100738008550446069776462692118353305117900134981626933865951298232501275279859924491784764321819881469290431134369522152987306417244300986925221288455422398669124201627143981863027274647141630232782678497320085457901145896343980956655318367903987891736701828664509254136347811997246114264084313607381287833209866793851851438347985916248440777366353981356605141504199988796667897287207638775388826177496020757483015409392955272313225122553294886750794679302025810690562873316106641245759907588144160788355493827539721528714980090904107522135647786459106348758707222913279989038671935929993579847459531029966178198161554112963817185109997883575106144672029839870138464716084927216099697422332486869838624626307915887350195765073650015157709209866841648647025603950992707688866873553899990728665452336788223759507387964773143022247195371500805392007408152162104862008121788356978825492479148888855191322220459286899243742521057680772047279965582672252307227765033257118067861412161447164754593580694347272371784491528448457469386076079375201694807996770983131968918359131867005034539505821814794751931943153714238376802772130291620677240677908982222647937208842183795721014897122721873753752404248008016200091719176731686130588326185731604294819064180276233979208016394979294359906168405317532271781754369701834535792017445425124743010151984174743958398090711540432751540305870490776021398181824601867992720639869101572433899476422244088772879839140151149719636327129462693075158820135872190805910988285098088337751946384753856881005011019880728536013739209502818794106514676195883401221757370799171228627969263424335849161903411109903500772263110304241686435785582829298635021640453544986703373271980389619585754457565514249844643978433976442276457701964604069883565956330533884431386113802922443476092489823899082924708808621974062650055221424454851101284767993420702237219372750949953284239474224622914057901379189789379564807802869908010913884975820865449870648175383584819699568718977239883938140240593104127849134852504082931689365866770445954818514358970884653679780761486011324752728270858855525593312419416980625176555464473350599952224324865637744461238931539952885955152831820184696394057672726153876509324370208522033659527577234522498202231955575207362761996428420496507030256412208978422913093929057363877476092538646756126956257379573384087727254770059770290700138385859553912704174631805443436738380215126473897270085719014794263217149412736848903453126783306381601022275167500226667645226537292646769364689993705407748113801968754003975030644708077124188449668238561952029076703599537794209597195360195235910567652587839492577694870069617376238768478267377287998970164172258945300071469669684439550976517930025307515421157950248348970747809278771554302083499655283995904410194229652463721476699143179976292405055938631192464197757274988602307732222522285005244189547056446758106485492363591552485093143088897569206939294777091213518635311695761820876710493021166332937771201689970954266353956524303805808044930501026995822003110499196572033120128451792838818526973647590008827139839082095395882047149961749177135736670563834674503961933816767997693709683229901561265708071858246966512113641437529591147400578054129615708329387536840773480232880004684808456776020712749329213556418953449361054128541469646280679497849070683689646285250774191366199017797470170808746817354482332001300670059670955579750929510440511189112943282350889588289401094652886378458720566539717117675639714735715363895505965498986808681003980267829886065312290814514457010848406678312181398275013120618019825439699875857935778398723095548077750314743059532770329581327466133817825335453496452757722351069919526810158419096775161776437530358891467232923452316750879884262027681014506315002882885115339238568002332710206679922452841704501447364354226396782282205656954358252016571478487682678553846801002581098103245883747823703485950609966260915457686142379238165921713791347144408392127855947577037466703379993680761911460079614551532524088698137340240709820208875937162052461355905925797024622428208264955545519951322360045628152347116623642141525657530430013773154951152173603844512094494689588124032957698130664270311352535629850834421420351070797578840785476181969027989349515129968635431634481222499987115239105508449677151931958484923720242833168922368226694141163871575330262096441666148757178922500858999926336078126445311562671003865542937482884752538942656918819334307187280364918360121469706929238347943793280439385343138874256910509891675372444155524917185884798469883175203650017082272565404130435255430404525206076928835399033912539299994465693814976773606502523010014204323331789692961545300574569989081366155384881266665642342606785121896635007774650221253903620127012918287492319353100954713537032463230127870445941047335333147847471573687723320231090656713213585210999969424065848581577953413022839209244847456304048913079108487103931060145324734106780810313691107715206047930717297676359575926066970391797976196935266606374115831106804616842191865071161986784521530532338806553900179336045206477772807774146366865454700919703273746170646713125999201630690213457503566267514004271534420135618108674633191564347200491656109724543998808922523306969574080308504989106903201600156238878937442524259416558722815380058160745675689226767133785361159588713279054784893243838807346801492596097992053319604725713208929197535475982423299209112420831243834656461255458081754455129081823249275006688418623252707040040101702436682125844863643500793528255598919233486490441223005070943631229052410291457128006709318560085438894477715413250563209824259504049902303128311678817714471726979064999007807118404984854961077616899692068023191191330804854714213417983954214397266962028389148950997141285324384821382052085970098138844945404503666509603197499690424668158813679849089596625439189228458383103434783498971739976187583484710018805805611090164017117599569528168936961627262849650116268384577694934313961793605732172087979479618918097165340885008054813472089848364295166595901813766605779874434533431673150165882575077698642102587200433305090452188557410108442717245589702082606716236928770152200832427625193621980510480030395975359590796898796859510298823085785800713224647426256286742422487904737086775452597107619897845434517875194675008148574447573114047874286315127220281330256025426460760742289770618479724058494666913041216168619537269099616864012370769212339177504226466819480708018415243253386544385235662200757089877588567304139071324770739316624964762222109439710903081856396365843689703282612222026254061059205565340190522925670574138050957055218339509098825231384107510294219746368208978498826076281790507426588630010883441809439161128939896507759523897518339247162015117175187312109956106926433791889125639741720048545729364722048364347541611010139638915287662553716983640919543841299726073599723790138729083668562581135873667927262909886531526757804214837915736530934678615087833294477654789524885280198430836840404016334594105062845639967218643823183661135324977664050429663829736178899479525265287909583671466208287366071415189720597393007816382112729497558964046612461473742737748413382649238634391533018904359070529879456513214132347595351088861306791111635014025535112450349754159046286010461307695966125686575749543910622298159448924416392718587598085465526518760642661229430764068765819996076922626018222218062122553227463470394314736246458321746703725538482445148193514068565784588011224422593790974054500345794971420513278722990715649386311469786574041193474579578705945296004314013428613223020212094537908185799092910474523878699598958844776754557774848092583073335200841841754982417461114910054558877838788198199080817266842467353166424120438278108985603149670074657030736172906046756522846027301292867203754614842947491051764456523916110562526115739466071122595584966710881023262504006928374619680519863379283699851529250247499072830627617652935059543002168239377462489845801413422434281066002972562956916723360373584551703770880048205756972978152492019877499025396904852351719187177483952451531962125657786048947688245345845355178035354784061495938220098743596551547838315946876636079999483697377573232448226962814903702076266653171150164109343978086447618803506360390156003029165457275892144066724966795562041615630807066903020174800983252029560584601393250073155878596952903773132823572552122278941996640601691714921582395202493685815351924267209355712044439467646966628998327680067073439557173295395014552515072896553983104860958756024784219401191817512086830555170644329514551452658775241853113392027107053388816427947735476953481332781284584197334566701478151799284598253504894202905592639158378775371705504605228395089958303491815913811868886219734244973975875615979155800172161832481888188063219675824283848373079332638677257355231240272389982104417491573480498746953471088397751437022682844924407146941228126254457617872352114157587690931540491872269379229240296115343166450658918554985924039288758275967909707156229898203706488961198852060985763012464364378697131807754503943632443131082681291916556356034740078174938965613309149830057479887649755930375348590053908428956259077371245553105846554299063032030959144435738618459899868396643391192616816333499587999064902101550327789915182062315960112379839669906513612828517378255898852595289978082618000833208770805853857242448356433681944144141051331794107503991048701590913367069515980584033625477542640304442101730321474119969552193938756714155288297972604090664630474235451279019126939196451841147575855806063948040101527911676364175803908911928421569014514377797934113291446283299010246465644373409714174756358836543298195160877859963189081950197130849430171413466960787686876814025796879747754741091695896340934304772979520534671110571060475780247250550708311930699542733609056064419445169597669666055208030632046775551864281626103891872937813268761047531997957875900538263191159931997194348101383412934818066294114283238954851407046785498055623465580318179236416564038850879056265291021893897738266121420496650686273030549229390816243873759486427320834274331390956037388687477280534018599333215788776698700378067397849295920710779656147072363233424404863513998913631662317458015137771322953097734439265308567581014472108272547022098461885144772723154412794954628913295019025612335980658983096912790714699736766143465053775560343610878734694923814429562641166322741241833735951986810604031647067790588052720763336463808758201949524309736823169199263070179141571857138794498814501815299601580445759511859947248030641724128662351725726541645321307858208437469406345456711178311952410398419511347416347921766906048080931385019088553609352338091206896473173245593257739435231546296157524342890223750728213681446094791276005674690443575057347503099209823915809424695991001332894622860022594141589177115442626983041276371136266449537082756234106429758385160635425394513841164641300436237624237788821323403064433684869738889571932938760119626606848951929535466014801148715854245825818142051447881119342847813041774716447944938589677845747601064252287259453605835383580563564302125523313796524987792819401685433009613187775629509110612414043910851720175267697138401015972365981266537973733625365197183042974406587072471519055066731543662879354008488813713960761019480042312073660464567485970153786221702188798602462905443241637664333351516488457375071090374486167829935119083029756337946903818324467109702241013342062450478184496374265774799239330625608581393640401181285706167456194856241121515394217270741463815924369917233839945159878246074629075938482874611610635334466064706982989526227429467331779916598352525469735577461762321921604485975205946754795293273163152997131724132442751858028949808460997241930821697088061238720535142053993891512543287522059262819577195506405663658777476678468543244204987399110409513914564683772675673385748030264805909679476287987008436966140869981016801184681237439481759958583086387948300150411865202466034029573056473566799620852270703756679476441675888708743316504600831923958998256378156414295123774989556294907286815422825174796032386391744570453114183140096433493050431568066921838649139710856168522728422360529841669135493973639660760534206809122964031367839402389900366343377380946929974110100634050715069280934561784045758433177925208266139378361060799910461661103607662528428617850646269234315215241249651946160307579306989997817695929920848691474603267342398725450976590156826271716431422638352366545099144428074857820241089765517259281123982137474270408279090523065571867547945392033742645017613550444366858367655996472855270044396375304637654952473143994960305953774777766316327916919743228095476129400958993366290140739754121112718056663870685930944235003292668653371117335774711519087826425251795690957683856390807392535935144576383375966377187803082592201388692672711874023039988367604473949509905630714219904422192265132169944487110944779225389938193128269227468969070343729490724094153102662076899842847396933123687398665006952440786362769899334038147657307947863131873583632340573563553894198752212027696753268496359019141198564919980598448767273363603889381933451126870856253347960343992216740373834114117296522061879623152790218165173919087686329780834080992504512447065823349307495129934085530449923707687082441145610303300780464604028000081440781500858914177508457461240330668279347111672386373216932285967945359750055782420984547471930629526948461127198695605701662624365272309749978691550282400799685889070025182274735789574810276306050665858457199191974353969764829621874577956567420964425103418114871944730959440792698516184965306254351134031706780290697385507955677552584895911865703480709800501218838512132184025817227360813297293200497962422808469039421993593433285209933099532609133476450426729509994044078701163799257779839549253286374113079257144532660852987574837813857202279369766740259856048834383532106990221350445414126068083251839483428334713469394967397426753748612598975550722659425112528976104440715429092357834853448207769952132038250142465074903356051395065837279984158692031831392946256299845893008789607995812763037904574953849213127767369052286755720177658510889145876625769544131717006786576638727310085539863492863358899561527919452692143153374234221940081930590496380944708875724355555634355624635669700100325216809707463666165428063166425167307974084669848179060605142619347577779560976399146509775319746608968416452514746744747728748917154435213531042319420651382952166567567073709556248941429444499145267883853993639993199532218119357539266754130432340421766778128754552295330941091692694849626392675954717371753446338672615868630996460077121563402819214989456581163887509317336223435473029759680292282579511969720843932789392802806968437700596129442154798292711533077042846201518146422929240349800069118711640454976859142825632220288070013045023496872360857715221587095378689082650307121437145575392652667964547247439920561310716961103728173909933284522608759171991978255975026716277052327157118304862633688685793294747999400178577341893745730242982301600152765759645932600712183609664763296321172178615229868269663211477165935680030270152214402079241348851393111699758507305219163409837355703886603896629019587928998888525748256043121308791869320914675386381046433265081988456150644491113279203984974541541023177701272993325607201232172957745199784011816420611484597911672738891059361040281392373672852841869280701809235184888205516864660329481188922862526939928096264361421952963258932273609401195390573269790867893905811498878747554745618777998808064050396112132020597419274591575705757345752806895882506775675215555397642326262490657129693214055089301938527739812349171448774274148573998846682862330168277632746389127814722418332865325273453163262199799919620810656079890085374395615994584679949571191545108261770552674172325490517174378818247413048527863725911846478785119691764530126902985464946147072374756324676458930569516358290361082583492092887784258517635630497569847527887415047669898105927658473072758699552720505378628271259079886170788249759073286501650192462892240655540530308302696143786507772479985302392535687149804012245435194216787428477369229239628121609412558642751348135254270427533382458239759492180597721504703288634165710930976687495829450967742075475960912526441599263568810260987058837212297168542495513788144789864848240147993249389503834946895900058957207082285258560863913122584443380972509091202052841346284746642557349165980136858092546956613878324933162753213856825416817295856864676254165309080477997083467824198001690318565653038492569019650784188294513864197070382367125958315202811396151732315171711693114459032255483725417898959817128378526310837183003646767534149738657714193869767056227142851928364342845278060507909592477421116174848454107692835138699234243864221558785555359888165818458194007801371783522071124865461197080218898742357206466098992992799953735692617469445485943501604654946073807247608037224092382660807115807205998608551297834174687473523171644894630048943841808503119601888074994045206808604895546119631004577518399314270099199187905637423059340873350630544161998523812245988988731492048062518654067925649244797824365311821723896559477973822049779307283881879668767973539766742022225853972134466877137891495174361312115348828244680761163843477451401535253867378445358772265773668536040686913830207402805599733074307306656357376677868464303070564098208188718423475453952827300440920488580899692386390270796057869067692135160305486755207652545982205975645941702666520211151721406169072149438462818769255254904657787312777858342921001935393239626708055481583224002823607116167476310669154551633638691469768193148673637700863594239640894745075785293871917903180755698890531968617119971115150028297313046426930524099389594611130966687390221980693094729332513882027372600502722718433972602932645866284146926053604714015560384784860957777522705858843802148597218945943518966796697777227641221552238001873563903145250021999137170159422479149261370595958916715060042935169428603468581902448652911705043082637052570257504274834232286131037407065854207608849373279660276870169900176795318126575432968211668407552821846582965772648402126908751029959725790254660631303920151695801674205590658074840930865699483308229775911174928812239184400042019463094098692196022777625809922673829079973086551806054386902541188449193481151606341139263982805688587488614097725585464992655102534021352248864893450199467258339152200015025903720798297148176804635076234304925102032290906281331297774993823126654948387785992644689381568854634725012113534551448144030992274284598230045308458143520503377594555469736960594154487074628280735313725667133953661496459424739643182623635636859583561110943690693428893005190472667369623816688091061494241338678443347020208333762479940844250737322062260487441851329472042444156526031310487699027512671611425174776133637897065479677766964765687387531585424789509775656693046531004152816342656727247063400037558377475444199689134839613337553258317088091240073061522050516306449791172097074071900013397020500900549307251269782914860629943750090361465666848494553719672361678130914149419888920735431693481102670312225847915436617867409946672388762333241011772633267447919726122268299892161178438356682407400473634479083508419697400344547831272932445710752049219059906487019961157369999736221294222893164492633170430108182795625046328298358589599987586001601950018292293214664884552966971489404824437256608397287589248032888569485932800933056220711513138230139833812538072729932166142158618654148126370201183621519332316493497093920104279463860363619766981276755523630345208023211906970900073881009993895636329239580679537134905375075683310294630814385715129930496338667358296859332267508074292390977763840047586521911397139617048999678488770789306783774069441309186254484591145540002463003390655086728549561307484428857348866320505177049957422371114316975349023143176162033855429692318599346113504185387532060486409808023874275622305166113108041836091128655359860157874445162518037558842563075876891230527999507178140691611148295579939769794869650246805315185630853287743740455434022411560140072661563334674765886882369998187105143759420495327404110102616123254378436877209056693673450262941166257801360300197786899537639179274726685873167995879435918503462261058086479276591344846653374655811009462445481142225331040513688413315965707886691030219317696159142031324514892932618519908813020046573913330094764705776475754232111604552586211778873826990213220218117176047536478884387968817170996455360431860530495952872392930712559656888397887220696594753743502414113835305977889758461607433959109720562039776219202922926534829394705018779164608615675754534789677430090273731566944696404362694203694743945330524347291322462394321683726857897993423551128684483199314916523333900133359964833192641369877863190082211188505905532683972709771013846809090704695928629629857121904830355055115555555758937250415881788446338693947742812733527597659540061394521489355439298920360817716339965299508227610527833201540020441943080937800314123032227036239751863417093949132542048400860875477809847450984945363885185325202532119762789941991092028167938738564500782887413044548251285065792669175828327598117515301512952932377495462151500091903575660775610830243225384354828518781750067581053846309005858321298827141328104342226754575694097162287126783193879898880982017603203772289910073908170548757834053640278598132247635484051612342442551100153766878280537560483397912846847121326613382508377338397002310152372464381708325200772312280301729415769679080557535087064564084993109863656759247619039766214210907688203968507484198577354530721915101408929536595860316462423535171102888286138113704143508173835177727609464980669799570292077339071327643399121533882010704627326921282416329795210736592236670034210969554151153563106450917303859201904449693713526476265084483541303100836577746616381753971911906311203734552138109254989583462065839558760693573814585519028601397333954159105768342698954556377955081290973704310641287173083008907713788359260281534960264086417432826604272212986268975320951619233890662699970698810641527096727640071926374796626618886630955525753440475918457574069101274040559395874430406087289101805253099194274886869125058799812952985263577780323195678962092017668024142639027641852192553468746407100915435689741673631433121945478933220507979129337639833872723999358731347264859059667001933797000568921666959136699081974589223849957736549633065198701948714331230224621970179930294570723327946992195158990189210659937870375870988421195563089625871351342277282168296152541226804426618369287703207956170269176248033118152391603206690510859322770035179224693044028100389053655078561093294747406025696235658950838776957470229784518771574863556989855233660684973640860755648211292000151325439603716198101886327406573379507538865727315991548865561185935728814505906325356180276806841484676949383705667482023860715599204730713609004209932136731678268188060237580666307252468469744744446090440462918791611170236307678719856040840129861244640121134926358022772061133431062499634116045905456347250758758408686273701210488194142839970414783182445613800743635693890824125764443998724584257384721514046906872442838853232129877823824135797551524250994867214673994454135814473493833696641958291922610578676868176503972227058258526181584921653461475721384993928138075232175869160525954512538505233994857967065065922430282607785895290310995542769084539324592880917727914138740042486499274782499107479029025768609422330338949876800133138655301537364493091440128678489633167761256501187716759351983340901544726399094574626489033326391430806720067766363732161766401357592650311849844605470635218266522686932605068922214109883380615509624646762110497704526550959804150842073924905061160499285402316006357195358398058096899502225478804995516360365985837949827387784726483572075453962002035629143509631436459936048294730738760562014513723364899398437408749586593649067404198627140574360631589044060306694917870332939742556784552476380669008768321178859645329660829270129182478513481480099080295096398290798286331437081709434334923273350831592669395209799724007014944213205757486815892054622284799119645152864784572329247955965628763070635729165962607583257758348581421150859133075249325758273472408945250871056338947249816361306209979966145808046532368824972117797534505754638804918105324865524124925142134567460609452205863410196486018059130097913543534744775337039876596187559330747155569658167746755797032750589532578834179370000148930979931298865841846774074412352129427367532287400487910417972196723460762762238472779608637410365662706791898341391470914231935043754863100246782307904591174083123990694707551671884626782109819153728415453064081035260641611549705308600611569394055704621971110337489625243178837842325800460966501893777630722676303428046236939788232782538026206583508986682414073826652258336552324928624919618110092886786039826428394868290116551098951254254818953368388334765664446909904888266344586417154504911268183481807162005886224177037943772195783864192442213965225646720476667197363235045957729857429668702893534494132269465506978971060131045053762528712107187542038913453184072133049061675305118777026797394639517572047456044566947739344058296861962019756049947117585783164078842469911108684195857841641893764995959058423420699696711262315306103966448848143268077708762141680777519335496185598376519787540074657541465105210241465778338948053073387722128740399298956020585955984350391428894910718795557182350778939419353433289754825535996959400291656816744959598997112334581755068752330053902920697556233465196772987805457289966952392806110619753746691204276352809751505807575908795061168573713758969287466819733523290711091365247412318287107648616417911841334192992578047492383535108579038882561922002418908618034203287073140567665984771190717522328416121139050392250022937729540598753864694013096492133398666799604290593959888301237236940189234408346983541908880941767580421218207057083759710483315579481488548275689341923253058680743065178914653915245981155916681721211195397866482830308167580064727469994539768989605252183448805824929287179893178179922086805143425829226458798095125771170218339992538170402433760481928659201677368637646835835684901572883173116571253709182636250349650945836544598651864202103513396493765343295308239513013796624346102966508030645323443771858730574659565249969016526088191297834880455972439729313923472314863535332987241806982206362648637780703354224385139203003922408347317569223536840669940419152384705045510157523617066755602511798685661694352205985124105413476270798400290731310493423405898033456758997881687712786976067478344897647750544499510858961204123952122759946721840304375432826923175382957258027275757458493621074503014570774699321612406210298158231069616320309319494108901504076680969431751641055189436613235191906567867100738087344519016998172809513201433115353370097198526723261148747839372868366066399663553886021650797744787023506943475172041416557192318684394029975922457366128522614729153561030143048360920431062448813246818547155350346179722175132465850264505670061199658800384181909388549256067172270663080502320260963188367563318707209377438374239845767568506355145606898583149039860250501340257174526597009767752065219472028858268844148929247164039037678500420495777875954794525646491732045293422340373872543058567033590632737899594964458668758359190088259742079958733271933202248238780824637430018197756470749495460720882931778618498923382400199504709597463669873316446356276614320290143783695821671324714408180381883121487498318848801976577272688677260717051934319894236153349666584234417939397026663726997664396264834472016682074047538027410251297167039413647276639375873229599621626935380850907819360356330474437878075327654438963258562617847719258690951471862910269615402479051396407366350319229653221857709765376164463147963088825134935080805281288357894162473572429858335163763661211609284854085617956945312903328217674989275345841019450659709512641569954357571025883949455949281995458706125637131792350062495283309542098177872554303671930405475739681500033066865234261210927494952850693155465788230229972164992874782598164679820840810665872724565635430261438913659673216702941211974948812403221130595345131590005094371491505972581159292109854548631170026770630858670913310915893241005953839359383862715289097412545870888749931383011525940182447182597540628949179769854520346934870133760216556491019415640683445408929481529407143909192976871364856883960762353327280729049376837156045282674613659257146254105885160051419919552484371511082278437125655318925443694770329661199526859356079069942425954520948647275628447368425213711129196442460421645282716449347040040426607974514398073711369984108817166602311198584782070503443448997302621864044364488730427620341452015347628537975365249792751574690263207746871562379845292895324253854720323878637996316741095752984077595469017068100854852216774488024705387114666635818135053898499288890923762056001792562990515452367525444939742320255288980635036475647804352987951512291590383668120704991171941459715554802532312853634734807759722616063763165985067731262166862577692085648890991503255959783737848056641394793418455229516672075448056663410067180726943346263570772881601693673403300029535956701985681570913379466287396442167990258627165438721415040338184862639985651296602956869883658616553268288527279812532360340984258958961756185237558465793276253019310869145669772871367047930926690719135857236799815015628935570290343353013293237481955827703525014572153841045450255141181329341737579144130447010070866211221945540349027884885416670748244112563643181463283383229689227337885573578999783782226970190295056463505588104689868838953734928632163457282914095488767173367328892150353496681496952110200224288722481557139639667922603361785545198910413144149733309906712256891886013365333637234933006695523831974651371156208936789020931989883001983446532570358638148088663418449290292792252781256240481754532639390292081025918990176658134044008920624127101068894044599309245184438185077119364121577142095452013396235578009951983898310003599257942367487087099737825677983393888576119291122946202572156538631744504407715030999392931236822504211726896920202181059818296867355509660695267693946408311999405148127035665305215687315073415296262918001140466095550331455361296977279888679306268611601123900683839493988193121899067968028580214274745927929173316642599625807199336632036344536653379912025110616577735653666233012851952661736480660249793589162280188808168316805343693735778296971083969920583099529284427633111354602670529553796397805728391264051962792231965980133707193453487423591487263094856302834289996797421280681924024463854008996378097098546844244519033564257547969042162929904506973087850878893201531162590913048009328611853762597780795120163085991156089089016683062642036104798894407867801209632142068766568037877255634623008046103285030876471117983995775046218333972735596308828476365210224640281838218364275299321366810895977369065806117771555515652401606863278977196600126743897511644419456446530850080022796480659376733749168763058499940954702614671698599079649713957530061822405910568495074082135448227111070371262654950261453505151006061779682571458089424365589048130823858539598111057390174438406630946662530152944422182269572303661710703851223289290055571617294921163464938084129255649584301558364689401936301709312617587953241102755801679861870985181085633641707978248526355506726424834471997083981920437696700999497880940482606258868965476808113472079188485234300501105468459942647901259670193776945831099124177603292417848825625132295938884007179125882425582665552683188322231560173392869050593498831414746721314580783215201151951495344539678067382385593820034450128955596611142622049868924737664284724443236634058375490510574065713323023869500179970598044672482191562652007640793606977255199012073671366306467610806274348828291015138323795005944499063258613274441202916170303801010675543592015750227635699345415199473610212954184794542220354945712723409213225879126846680954912314399656814004616059012461528606924494392684139107098725780760893243321789755349984011880130349615915174335399410458962544644208996706516013508789149362097960850145870196575377490903764473561420169267385756004734481597225701463506784737361297213803178458838657956787276308865483467882305308750096915302952338197200478883665479057224036474208160257963025553711003033249014105552807991530613766766603665047585881877757027261257076571073234634419342845436931638842144647915051330019302826222091061615579165893954111649433195597828064315257618967433015361026548074239377457866109407634890686295825395157090014008075287905155376007928495269000672038927551883443078594439802431004102754649775925230684497033817336245214303056552764911003324844683235995653734309866025884519241378076434548259998671787337516271856347512854095988347542525966973884864572352708617116282493924303744876316612976238613856044977992906423195472910141218053190475709183665854707031767469614401860668515341711629852585768904320306999108443827422044676307521429906910604890821134039347680966786773991579374109220527525716145121275188509216196265248408725553645074912489760250281322922354109009342057628039804720531613760522500839607576954826624638435450290910429626143414482432106804610693499841302496868321651614031455946307881306859256487122944951202753219998703814439864847262526466760275916473959261892370754055685465236370871007613772296317697512785850327197745328713751781577899309075311715707590569912957955169652314559821283899382404945020906175126636973993009469557282334256307473133145394670653448918107876440630809276303145494540480789228424050580874128095948552664226653071860984013819518778008207089213357159128978978272216637032731806402180526482109603605869748270539591717494929050113962447200717254593347833792194545936564774258089357126675195306697982662696304906429070524973085692863044176437701151068548266939357869937066446486684982882295893029937120041738005800463208996199585469746391145017632353800027317904906561680276205017216069918330717791464697288614935870329442948647217080973699481210747271830350269424990704408911073397144360241726753026054120920684953602311058227598418133883693799984615013193263297220296362788828350841013629006342205845820138281113934922242060134067280448483217877945778176032482872276672021686197563752859352051546186321432734237714686944684199503533168213613156952129958510838807211886083022236412117664040906149518112780633997401058517077254311718538416963695800529949493881660302991373792346614219738055492207768746305107728320035550409481323021977554065696666283446218176026439292266650203098527213423360158325159836774339050083001899302043580303295906263030295299922688065371724647042332465786303290052686899677577847206671787506818458993788375953955143707699261217709421832151352682378086498971770611429080048696792648848580909246605524105816778720587207773382547835092633896485852844673835593906937418113108093148660589441257334554072279405941037080545056443457447533387256952034327320076090918315824781941209774900199834843747211158082890415803375557920095003466414457742258405607004473643479452956641259644687554872105183210643258558733196533723639196570917535872386062816173122886620169608581124989728038806304904967683701364235299109158154171934355501795887590362121032911360542414114819651762656998093440897585691606800144911055348269141637415064950365853210496071618408636924566148931299646560391113501797181509045492834744513354787382825697235371198761132679707507775889380970872467288844392308686537223799596723797531411982511055415479942215144013313052577805308094996490007926084955632884749840505920863566574309325985124310333040867377954204733617561085435320722766527934644232874621320210022218192984388533058814435798776358447629883396837488432296081434538359522459425641560953286132033214368555518915030625828449213141015942720192393076601199214727305936016793630427956166076500265164602061602005654173075367421689867666997798116252771451262711777600105889817473596857082213748919361903703994519395572725831039660040276151673498176659013299586334712480251880656270233058697759098018874940057340999796384851767903812357890266446947098873382644406573813554749045844901792128386564828123929490988257865634550930994659162086606099130665105986360066986969907510427677975487614794684569447156768876796149969427541661408323572387317057378329444861245927941856296305623037062910219241255824792118418010647521306345146223503224006532535470200585072413195665166403984139464329554487417009052661147676267771150142404676511539648328877464278098181521668509046127761586123564087997205001497631739595127414014604702810842358088143391552555864582932063443702978578500605768254786475867259507791911009103117509204845868066086851157500185825508837775460455738619089095125170304421304821409937097650997080485125682390532111623618608634874626956859497298247151116337508673720070777323325109407427162428385193713150990467156376287807624508942161006919279084568141753169393020880881750033445526763473649772863699294386539345237555134019635652645859607582908846295071733552652946689750231244895007432067135945609285472632617425060659061383570056203715940489492101932143369998078490676455461027369714166250714443587826556274284575852620155929106591122025347498931153035841301681246500511006159147600988938478021086176210859887867361521245373428242865405844153160145213494346968267707674709617241410257648084883382599624666523644465605410077310046875284085193104584363391502991611106688334083107703940444838692326118506383542374091611182189422790657584952749518358444640120300310284893523322629130175363370973910353803443156162042450916857981946171088548910541252520621170757267501680078678285106535217399298974849350833287632059468502556260215622780627325891240487686168165070478379428017992947577704251885573019668797730515127474663460245798122685468389990709721614493711534758701203388525203025495530171482026851570692357815413542313279535895359034140818103002957279216856029426293110514087311712507730333508906251829078563529154535020559915275291627753954540309803451035535094283706842933639674236957991935848138512669063991429919080457944303110056635303453141853602658070909414084034214429665841702600641557224691297764000991593524512914365473819090792302141469008038291463278078895976512281275710647810290707531235800526188170456332102875170344195965739321195197688227545472473323342401068847240882874789055579921439334368599062881148169653124745878931539693937116741348734574772888588167031157192125980760868237824983536139373809786816061793166885979741568479905257432820474710395309776821536186201164341959406913624923408438595125665400660892745119200537438323627739176948940731755318205361174687513637965071961213729457321334292842377181202007169096243521815027769227462647449758240349369424984736340612652747901986654993081322585666952094355697565556051349916984404198620724546197305402601281826382306610224115342564069885802805149313798750639372563064714961805442109720423688020789809717429178408041456415788728236228477454005205968523993393070281977010741835753269396512112290694994955878241143266725798708495826620856349831715507180475038605038884237271144451957659219156171265026229530070677863996126688879403820563994560426058953481929092059661851752347344327067974439252861294119537434138377611746249727806455865001029150491531288223038279158299948585830023471168318666727917683746147384573988856120821559029303119077369691744607074972717150390069270762713732476475594748412388926011374552132483099716944432394793036011051988738430212875790800489831104398116760762445033110054994958322684079281739416251358730894433355032936667894760318631298282155122724089592342527437822164946931009485228211568195238835533952822936517168647599548101996339239177519195076073677207419679467350567487173969066853676756619199424112625609771697358326244638308640766948213848805673436023834047657773672417862600722292028098393648286826250667469955369109645847072909873204798503562724330706815304755765256899490352867845823089653831853363510737893347099916130120687841406344581393047208469966546039850163663965284082472149042335309500954946201663889959279146182591107973585980702733790452939592635152990258562185944771586101725806119049174510395262160375981848358541014006708299805040680089087808813336899316951791887857870083889531305279570023857177077391672331119683491935192137211544648536975599027939016688390409516757785287774008063832579300318965324054883548013819741290461273675742801112076949933837975022903387878669189693697373697355980169296163357420314013566046309940443716650503345986865759387341028362989250051935699122908782637941886168010132569472634438689587176787357841660289942269709850865621014201840505239327289349149257102295924536386352913934714126307640444739672209182920207471178417588545509609573837284572013875893459818782602229335214145269273372685737980587390468914174881574582197281166909332758527261135362159398488019469762838704070542365017852107994465254224819946711689643059725390985613531670150309353958217028006380047420800509385376371081388150218012080621122180168994350979634635695567715005623302777087303229683340103215922432791225428007840750430835530148913740978574427140391637346493909978898025934022597078399392582930382246656101276341519837541763379567814950871682734633346053250215934695750757350705903257263457904436693532192215717722778775254557135471870687872164750987672907565360714168881664230034426194586461377130279369325185368123420660553064950680595694226479517809474367309382146894615037621922173760135364743580621953331948280432357911149556688788184875276434235272205748873044754001702856268501924526646918589595792239729165569618464490318452764103208745131005190944420787431784991942622506665549134833552343185275076567740289348922066795776201112674887537552802296088520435915293787553044139631504898353866599807085142152224813618769704083222355459055522271858292837014467156456393335028789643110899172905596627265310588593779674771614695002620162825110982090521429964858794564951084723999029545139740101895281127181189921472073556601405152207550836931801130026313042948125947062196122083996381505508136802581852375071424728439286870567616000381718331956951431940816923478395997099914182177970246054086992632936902518928537824878917609351834651444272974535775637315712188336343584447711797382896220680399526991484534538091362057097241245020865784514731708110982247268426204587860351334040038117473475078056270738196353041887076541814393405589190330346318278929083232358646475480901722636603349071978774053439632672987961602343174435251825501523182807008448273170197887637014646747265634387196670328459382813099277383598490822075434147016386283470665015689629788253858267162280063876893440094872784117574943533203425306161431904914911896877765195949506156537340773756148173205046325060786340490078952550885839429984503541445186169351344068401544688603725002755479199142819402988827487487082992727729039794725720899076379909821005882009225987332956199739059292571795086336621972601113126300338626172314852029003593037307401560494479387731722937398407948415302326412161740091532287270748176207710549194390235780833670307785780213418762287109349572002269313514188806422099199275513219925822109464346456513867402474484255084490038756140180150967096072452223363607684580630627084292629515596388008786465807947466840953395070675052504739136632522921244303023518098265346960620403753488969188593065263163497764545506156777337577512638594712830923036158775112612488613089878287144497215321613386218320606367128691430114862281530136175475998151132140619270146378927649814926257941799246810339574835168770713694032243687623909610310985720951143826763291953682398187708905166704506093642761717235863447596611251186465426492850131342996761021878909930030682956268244628108920093719736196755743074315780573222502880798148708332003784375878373356834498769121926745853597999829261382512559986403258917378477232497247267428210701239921107179584759172622076281781002978045672566545919373364807973097505590546990014913323701925645518707524335347647120713735337094553846626255951474286652903005189183436782875294071938419030901508100565696497970930249128845095820411997920312092586076486413834994118337570938990316640618309843138036784798446910734178561319834048990877232303637083319926484719698487141402657545812969814532079083134914157819424271565535958739519138909432898447385167752886326994679588838056505532442579528642480859451351291113129082957898594991743127850208560632217404380474242730466511898457113708432558097548902331751599310961737719618417406699610918816949299785356855476781341513122551710669964668907237729088048025685686034765932165290241349117241212127319228267652224310057960490101898805971806794517892291135962694262937884558259741572392536056837430327026785032562581934482246902148020594347150810151087613428411210111185893307050285707761649846458780724924749882332973342366851062987068319312440236382655450137376489828423411566448003437547226554877431478861599386934572907043566755434671983005267425533439400289384293619599332951625142468311590528566030971830889063678043710310179607947290533827979637453728833323049736028108451925865588688493062734886426308897215195502905401226199496352747360444071837725444367914977897507144475798047833688015437473847468052990193718527136058352393394810357410349432867479994861036039837697066881630516213823341325486740502212658409075334868705769693976317684093145219507421473652371387558948352519250113654820405651516931006928905093367811948675355623151265808651893897411954914201891590463330711087077796261351881539403146200069452544564262412578051569986882708444537962720397784987595453442356902399688911330296640071997268108369038648595314994734381244575959267884657143617401569732977717006837684050570175861076498968464745543065006060669530180750772670575802729930583819437796195615409794317475599927792204913633401654128918400843622058162218764616636483167281891818619376967930329699357958900904713223016360872351588229574684937029474660966963449353434154393400454681428674039075898989638012975337219562481100050284737285422106632573087825884610106641255904091016640593246678330108945716666543981633569371694294084881868723726546077071838268872561809751354388027360115883464875518770960011236497520111738017571527591269140943806577962020516589789112227408980300937906401119163408148797162195453413515547923360989048278960718952245674633611304188830718254420902458428525400498307027913434597436801267289097671492933150509711681893756672768029083928588959432942714176986899195713179494510372559486589780961041761796484225276236410086206989811101028008724225338920870152825474331176016039467474798773261057006412508504825819261514915826424101259770768843424709523245787038062668915442936848741525601970826145909857179968151806041551052213967226307605677765934901008957352945127606935872661989724760012511335231165196594879480492380814772445909372594137415734045174796159888665257568904039596056448919028279730536368650091503061602673052684620483105800079829874878080345342138699797525520317708026559656397221039022043448766911898943986972377093764796030496733010395578683000112374510281458624567122840815197841940997863710177792889558487950541923212265197369724740467139450000390040597085683222283469495050214377544838679903323642980645441429334483436827523179878916763473053845454063564914609323469615502787996556762429599013636956434255479331818274022071466456080615424132273390103156189412177370954676902934374290165133887662678665251854869750711387294125963833053034450417024481748583802835337603115204773093121881881578849236050846260451268305289072607528106441868437609501346018743889579999458680288559508165331801571398080233861652215880266836074573728258942046379706935962640798029231972274198796067553328500122421168718039236111649161437220075078209276833559115061526992868752502543317531291820881773400142808123155034585887418950734129836621772503106759210705379568326235871240145803509255449566218650167653799527443486802526552862319149624311315674500676707990818736371288851591698904654378311662402055026075913896790664867322277126019452071704131004145209861471132652107676014937322292929418958777544350118020019519964926051953200704170166162108536320005037045756331138010292716446346518482232346135389439592931346172104822626062852471173146939157774661900006731530710714022882054325532219294488125112081565003468176496709343994950515960884242123650512428516231786192781634502624473114245760871878143353418143405011507860159682881986772443377753456388961270109753308675910414696539301740017562817089647502821359869725217495073778531980914067139824660487829548886405111318479033648088420852689551250654538497319289435437542406930332178977456003867235287378176181889446496785987855429422659422550131504073495900196010260643569092070955124350638404639654469065566844797716719023749449569398460746737156494799795881741198982733822411686496130248332017509126514685089286585432176472796257647643572477873596159197595157217761607781505951153794037674155770353441291527828296462696875050163843466119892580431007056299295624266036797656707693243493954893793893925859154369594344979978756731202283215782104700826097595483143723799456152853440972417097654064265238724566467370116416427238198046692870545589964758476217245354382660364955628815678301419379968785510468285537628110355969858853336045146990606002825561281275466405728343743399146630398333756110062201687663636953288677985356823179394183583116601596672375133560070328087851255143658903773425686076475368324161626219691755226599723793477852413280755931522708812831695648539457373967247248307693941929214319287220688692234343666418507389423422565606234385417132313253435091795099481417096876183226703792218595180504440962355549888938485374761947333881437608506236620100808322306365300685225020023633240405972517957074085427082434080163961758511209925672678033532214623726784210157933032795917445446057645370026838844869729995823184392233707805278118053142381892760045083924732802511903554871547080612788941292377726866137417603636566109182814913362506269348761943749804848584643878533484648914196554375714558222445338184368015870923786804960291150352597711265029631903475257754540023205233841231947804540100944840181696649911778403554079691232077763361087416520526976170914540902254347013687237456250378769495387088692934517635919469444561755418512771242628256726177756251151477137813439639599482981719728048524120543669201457420855864334990650375319943435063049681850931923131943973835217911577456214215138480961154616945538261482530562449889181539229923611287066220867524848388089403216554781580655983977397394941335122582069009227543377037095563549320438745070866751543228353872258696198655775367782736249506298706281483313182480262612561193412714340232899704466057449937731573513684341876612720032460704016377237723928843798263368658633580179549763010051517790106960320195460054346942276516757181969069075841494104599632274924823228947213379776005989325565074256274284780484889194251912161962708657809427237314232090843296114398412396651496521903619652488731355431569989397577544205441550993160389844280924917753756879958133233965342310191458719626524548009474092181024775256873293544926527514137670691149550422331671586315347016363650673044899581526724366464051872271253921443698506617784027843871165467703454293758424612218054139842124920116547799220972577711549131434016723884011622155101059017563951346464970146417606300079153712800244734106189833587760265762235806321438332338789169292647852559667301104852166230800361884940788881988073469235944828743736341020690119472143198047035524848795751212036110647473792091939190816174834872664599034839578235015065628432145096469372059789400032217092926998627282840884391755208760380428030418407578515611093224129761229119621207663341930444726782767125594801893175563876230591551892360645591193535080449091563783285398700260012092770177824976268982579438804854481051130184846049428245799331707977941480468882743522402371692965199990025399534842123773730913631972064976604264649306183642860709608098801988647984154935847412975335753971431982357451436737520519784966342909536731449494329276429117489783515039677008709309792759292959110061908599745169454643531169037153037944581324827257331479671466770284272839604134391862682605785117408081771454761397274740004148392345968708089860310444630575625869359696450374247487697104901494213902307642769733019407451119631679815900286067880796052771099502407039187120036486566676361904858580232144434559812277354598967167674806175839161105935863713942699528217920507361928859511466930076461698037096331876474495870580943612182075218238148867726135555376872932297058173394659884133621570437909151569355664199270494992694226345737059697868787463202363437612267148211002813208262845404099478333687224206862581497881891303925947558320484087981488245964892415222036603198841513233612778752261354469924685163418749595256917041297015847735743797862389963797956702171037332638780432944121911679771833499269991197042371316818611713613933171529129027236354354383382318449335465700213517449408950070247247418367444314334134216894792078484400930234787802016565210685109575058976613903983237748767717998235727469703562332195084986936139852157075778424602275217945772754066265288417549358195560142490303205331674406965035410624398654418486250287684105197793088163742891081859299970925035292459258998723748434036184556260408959660048569593781541374841488668474401393713059774298257842861891334443113777768493038845111655079963033838714337493600745477313542036178767973436565071323567702182570414860483245292065446891048307805921800410865306591939044582945618299371170122244577512187589671377707665160138520629907348970862965034904239425609231670650900957078316781370220977492810796862563354452998965272161813632210136013078839807633166684326890534061396388350848452338613820138506291030014200873496270004394063604204668341844237162163984707398334206916543004815995898005684892033309455650909724476332959347032028838237198507349438983764829479804958409771371625988362828888148100059863555071649518610398480628943756882594688565756232905955487331487919172250116506844119656514283878190181337813236513099760339285529900570460024250684148300191297727987841525644509597369973262444851624326948416836477321645280494731525526448986736565941599991383112262714651105846567625769251704254850986276895048760431441494289328069589718752632808134093081214388704375462876417281650630440426605227215782358327454080528616901930832336737387473027333669015486736212922489365697869746926061085846925565392734484515503014699255180507727454701338763030111199732719860626313803122400665528825528972275643037268079443516332909208849713965600749556616382297604181787024155310175486641659727544217118456126442361095886616215906484460325179633008043037650437737551367190393787650040223891260987920060696837644118096801221601229892205738572169077061904964034809315147519272047310435864000148656577547291496468781956198093112680292183160291654579437436411452619180575403429169434271210621056587355416093240054123677533257224905553279209159771307214599548398323875691708052217718199129063201958992661320283315389767128870384207408403812461740603060096858384422702281685919258013157235101728983716750737567173673348690301408134166748353280371870089000513939951135391099846436149990976768304987760367414605113460976832263036668054875205956320235817352013699113729131479607694044838184180411658463495859407224232873797443919687126441643141739207122475183759225472839108815843880542944072377167503294975230944477765731502195634409605607602351263974687237780744529023106425729679526420994435009272327185509217905203958093200151479985644880889415870260855775724199678434652247613960969698763690042145103802904810700568293412758383846957108694924658873492363019602073131598687766613834948838697580111943349318809908986560756011279639008585957152225840635395723708778218221082726009448057266892469345913291382585874543188491316435259382210316469197430075168940206514452151397548561088577443366690840600642993081883894479893196218187204056530467671202387361300468749749340393801565876454942205177246225171617777978709294531753730026960254893998105988857958486686096640603262348296815202088969132304997947320234959728030116497618853154103409459461581088170298773284022346654257520208108676233661969420860689832129077379323034980179138766298968633298572851464895472448981417544946557401199118804091015224341892416465498970494920715675661517128229804462421755958884972226589028585902492779125987561391056195307043702121669990422896437960291376595633694692406116778618889729228256947840510787576984775299974745609274672105511060053443192152680229701967131042078289758567487008651494352347107793908068628913357071325777684587474025682836358823620024477914247743753211901952629920294486494734780247833035956564211732326232793822350733448222895322559938154407823048518138257497029898572386138252977115063889512272392123281141629581359902919949427043568126637722274173940856500200626118750876177664869325293767797486498745142473573028617945761368297000148976578858137405476914081195227783158194681034835276919836632982368284826488061741903382133364709810493231739061080281176691977281388105463553336459425250598681917173689794457851682793075346283684013586542769792608534677857303545388134827681873152293245386315836751044163120298979736922860826213593572678290026490626848603651325722663246041246804775871196069626800666989905520808261681641141782901601757106926492296432173566555272426725075285301136070659948074356437767248722925958546941798021327965998068881093119847263046015351478862304553322702445957185930572768355303420896852901721399988451625213331672587339410964370817602833533911620394877140301578558474417071135128889106897479869930530233892612825589116256450921251620002916994977548776009657962591983005561373565897831758369553963854073775734298842001844474300769158507040793511295881802618287689617058097630564138417289450660253079848316677770400156753592697947403166546704040675079783042302954860798258604756372461890675400584958923047902647533328871013657616765293424212313781055291374656284241249121634728783263809289006297358165947315702295093505340177550159624021846398171590501490174395878479824523690825748049146251064807895395266980632022456219419358322705646776883306214673926618838846599696204153545179617809912108367913830105966028169129704304395148199082338305165289255261877115620214752358594029982150296049348762864238873683237594789820345929898083403465006511027464391202578737486432592895851220735838938243285162822035353972264540451567810707131961014746354702898197935196869327637755006564751206510940527778540645875240647955440725057755520041463623086120444701296261405126797910765938305644050668614702517685291277098098653637046007652178815214310000821136231334268405720598708352106609980555421822410911051738829673837599079031379722083186902918605011055691067012257884717247059461067295132102516498687925770594889303354713591134471601163237903701327208168157958684500877033364284856253560807446314983622243236937886649216633832681590979693191910628311986911562030774139350593869114911344115897924426113432549322429147001819038095885838907544957360386088140435091695637253959655933542993795575157250673776299163925681153949871950062711321038144572932585053092973286054149982907637270942123516488874535366809182191495069179353932416098812333549472059349126604239091905474754625469806958349247710490480891987516589889705424878618253980065288644168550395241472269058357176297997210450889119583835366505736827787327425967323327747096065545155890978433050282968801852288893209831826012503287299047802979328230997290599500434060262023887876173728203161275571933083168612787318160649305796600642135747128997939562594121734314096249198817362314577968784865546494299345749602439547866515925945925196278926844362215195555662028202325780606232460669651734611928523153882142396049196204972298201493699791911712670772096968102902063882966047946457182740418761286654426574673595569840911926124801873543928390194651113544680289933830659487229806613431012889724479930853347017601912854468087231194479787857229510507538147823935226791559075325975885808934943447027242896832236198689621159936264354805114959465143408663479534606064219305299809755839700588425279585926353324475832210698551068117657018629976828005603827336457361428556090455663170512880881000485004159286783494230837753475548691423871247727915147913784933169179843068439899470585406078566506966648166858173373421710612442251168614341259305723685777728619572756935957825347858278764197911068224327957769465693640520081521032766744380705578163994040567832834461960103367898312660160801506224444398467522589466187712729935827372570272228438359945048766325068780893622068623787293570250281649369355343469706738087857988224779371548206509538028106705710033970137531052964681801986282573130928844118610151144074477625173682946837611958298866920557730713808863198322045279128258114426056584580359631184165929682112185987823176272134171401667569991153877516357930567558797525248482870980157645614114634597443256842185555570378951582947861199256591255315481973111063162774102487836542152526911748894181957121134021729418189190606011859647997006839005260053804507155064716665349847155861238860355331661218888741388910406739662965627404108695782794800798444138781711072175757217403328937422575267430088101205081544149235304994848632812497229237771899739613593459825716480664912495421662164602166129033765859698496158920576548415692067369536701558838209300169991847516380475232277414558011603102715110934790321946536827646642327223315563444594294204065447473114284399206536504612020112488763252523258126605084296663213909224622643198452064454852302883478093587738545254628294591005374495786742559945898606993040276374630363042047868931491551861768501312403601873120280409680830011580681412002334098286024538095703376547542634554756988029855434567741765534011337624060741550581245659171469467482154551645890561493400257510627737932703068861552679971485750345260598376359815980971570664323092139985544459579423217005759457095719875406243999511189678406749103113353013712064417740279883080371034607827133924080600781798469667420135107896238120848463075125090788143050319312532860046432821045553189270816541401282913511620937728617442146248709385032727293153004828562150682735374302911385509354227614115918628701704827449746492680779429837079307880808809296232218109994005194563126685431289953191670133006843573680238922007897465209474716017925077746540424895274072268416740147848928042120212600360008299122940140658557222256995042686033781766078029951724154217927634604570868521138949189258120726113432214232508525711222732609915528180995346741760834338664861703394024092933412492131514417028837227340406347474669593776291391716722979634854408672429934040882426889111723698830481408590546003459420971826653755942633424480465537251895708667165215769176509430084585240049451175431172172438471058729669455199323286895110094261354492643780926069992475931511093353645847023835640320095216877052421977538522932410689407888338945515196440722929669492032834704778720718226185279412755007563131500237749622110413718152874866334918591723528136177028740058101393065476898018994641850109389697198185184858325759725933568720196681434628432809649807231456779161571352134286090049821591671281834038465905984285730719529365875594077034808995557297166160229917526044828454464819118229838921111800482187952981514605214193534229035904169838605342799338704194537692026953066669261034436276525241733489279309212874615527891447897966266772178294457906741130619568861676740495402095049163119983521240509405155645954742561336108503338385122798403730836686060704425804333415843976339364434289016963794656403801014614198548420963792068403897958642053899466853163112064540694843978678331382504956434071293012276467868421906595139144074695673071485089482801368314151116207707575099328342085022310920048958670956473785217583869527322270064874020449748423550956311139273176092454836980943241256662442952652387679556981556231306595036362715617331394534039936136259612036640826973076921694078732943050558446838539672294609271144914026800686139257806532391447155617810926794745921986902972330375994978929581923945457801990435265602291189864704391457872136021610275904483320492507986216781830254080803544701862662576437982410194980734430901919348921818559449626758425575261163341986915567266311492691670580799790206185052252640613349898919038397014167708181660796834815521820028931589995721399204927834709032134128567538897877936273547914021445618494663993120872009796778712633415475358154362308688450304787696629959569973592686060718539148413265340020622178429527994559640611809046623371056902671512832197583525792222058073947953915224795872699803249251801459238347588975836698347839576893168782353013805021213078082798276492601917663488957893009555120867075708356998880251069063944814712549508404973521006951848401513824711381582681718775247774509394214872557898497266761639005929493364864257725574532581931062162533203244183568106856606840130762393440002251742567502363179406260695019186562656105518988446632048068204312126141046333697598594387361419754809048784423196193720237093465764542654706669832940742684893381627839050722594817792791945369426396323704583658035133313657151689042174253627527850408206186663836647435546073595800395622934930811495607644020327703546557735548787353174863415128467970061968909813487419740390739985032888793835086049990357953855262712633555842784579984838364656002976693415900463893126261970220153963642680065347076835183654260731548539577880600245485039793740932893335895533693476095531035294168650829249939458913869149749911464657529812855993168660958859386958406566344431364245413760665131799787512532494381538206519897607544758502982191637941762808031211707787684241646010133797886268927657767881996854745931101141727016516950767005521001545435817524464926743310226516504503307381161891090944918664993474539225842749366089089308898155805687052498952530649311037296652434669979330134091724832958444961437165268156438093714584333785516854724798720811458992293905188237964844657979867273474315251017216308309765059959946039426415606859896976272907472318921562730582581784231546654996003200930931964679440919412112847958002565148687218228974478044778815111567088206104757948367132240554477215776443777349013292973977208984983448553426194308196322043862389821202638260043386364013155097815170675087380358441510625279357574588211764250006135776191342077983808904083932161947296845373514198768282681001636948334363874747875332764846456267739462422842530926960634341024719529394158474606205053601264085446961963520157889758177393717538041701064545651500291140572321913284686056417738354834470529091936961904210694375050716011382448880400921545143788959260147914441072884762363369105655241184740910998295418114488785782912839762108684358709432346374881128039250417631711220406939709089932468008215496850725520521888436377497066632893781707197625890046111885457735503624091302037440718760423080511863763144943703466669933670941295540613298777174692989465625736835149560974965656358658546671902406300953323327436586034578343772596286616112792547317390707879059881248751279963995618007767013057240031978590444072037159900782419570530515626070633645443124343415465712568653539361770552275295174718662026590732812235545551660816541610582574315751786586840578921508446736102756274687124073218830684007548761941912254325990841259523371399375977680083404482856835231627105553551468505442034103480123948225775872282177082145809959677564171752333528943227237003806927094078226032612209005788434019221638781575802893058844669833014261048202499265003776624562095609213019160194278305661688573171732746771010941009427655341879047151915338398202629045271815114493157459179125366053983638148899395735162705610873536910357615123212160088419085328210750414584537010910767308903777495985842286884159889594461525528533216744476340431024165252751639665367042372687284801000831345706184267986582130011657895676153032634063266511099128918322770687686566189685150270482882784979498231379030550140505735108127756713485213966155578805944976827851568323713609438604443201656943564061182668596103585673926558577715464464302119334605042582289970617519268266317363464079329165017321060429060436973582657169047053742246374522806556707764140179727791049736778916446511150986409242102088891428704930742004242672240052529880308991648503041928269566340205721541128604067131656068230282115509399121534965217466856802823290129784561361609691416004937143940175957571853364572262672194978169170931559813236857802721813927664973833534409955707157728927027295126507947401679699860213783120789311620345946438807423174344727735001889137372471142963645463332279778363178263768451468971906941348650799677502004056722865424496630506487661674085131611691933697291112713179431794472494440433524772631135917998838418441736573515005258914072529597075289973801922781929019074950467747773651699257819354999330824298098067447938988397720857691416966568229936210706631096837358668300284837643855235688662893860558059745025718714159101961036363348881857542411215411629454572095107030969475676790768756650323875930217676370341743160173129086281426182016922938658900394661854643219912329373684871284820701113869434118058233748945854373976871673781110716967289127241768841940023606438033477031305259598105045542253874743399110021712167891483194259425407615875086900927326751224085868929374431040483713553540924445835424324859926327616763415061414433582929954502610585562573738260272743698182323913761426493675795001165876333947550194586078690309081052187100190969591399559298361870991950015106629568973536193858075036707852906938046492386771105604989847858239046961747375700045087838070925909986648601279094500709493116711714156188035983137304380421239774111599117282587377788192088784783030966417343429443167364584854228077395805545170637272380344569939140152486846846028907693507632569002906120268168924318617398389186950176175043697565738309882853514222859595987541493143011638853702673309339550608877168293834069713663707039140424468429332807673652282835600642558461931749623909772263694107165326800176398171065405130016724010574859813260429551626860185417334846759734199342529309048053181808504822891827604473140924024993266520718822079919602399680270978220013993721812671579170869353138003327744305613927466418117939868077465970143509133953306433759872841820367020747328401393637162315767198725799955626660813000954087717364358979660471808983228246140846427249835900912866831319049241436639279604503795065245939186970735311948651892671965455560002603947148903102343283390380618077206682480277748593685721546853907687777334432510303788045429774327559432258556515081962267051887637494974783160740817349062864509583457186894307552257901402932750012094689660070656366165591813733071870227115186500149172958573810841415288831564472717011391981252689325110248303088743131013945169147107728793079351909485835891505782716163270802369709248786915064691849757048847359015238871354761305164256378395743731612719899516780648652675642723177056297665985229257178197358241516114845181314195333966958684000571860016878417999161465430810982764804009209455556801414107506780795969629407502078870950186311346298134496683308828734810657767151195673248023755290224407860012274260737496700812951332007431963020695483464730729978527204102708321506879602698961967509021103695369737350379013902468469594958628749508462480068616088006465335756202275471782244152169716749673059478001049845855757861083982166322326746655340879962519430446830721626162609964960050978610462446424360885730534097167306486653976907525552316518437213830255458280510156449620968536175826871113042711481395479629634278942363696336308671454067161822319860727490450784864179537028017085585583727886979958356341040445240639670674835387866891809212099815243454634525262732461961594325893373192501653275406916506526265924539152526540019987126597385201174027605944159951823531176517848016924008567789020216250544288618907827935512580289809058420353337305912441041458380570391736209458198700070550512385123216804315708083295257925417400641090457576018042603641877461679218002195286715701906308433647074417279983551894177589955009617150296668255620224014923067984720747844440267597392087055724003631704598956193316299058991840055068080621762867572345227832463882498892501823252807775454178576876319548171705074987636898388243341649666131546322398149967610342483260535443437909198419324818467748100644526268167294881244637764779375798708736566181710089532136312368352830151304038590906032719666365943139980368536288346562761950994038251609469329782748757847349819947143250194985764645485491172544423899973000881203676352795764345856060412878024256491584638946745973758664002089381761242937769736560358062948131533195107380636318346240003426646192145554673163727623966747743342158652779823035597898163392872121190202787542557293034914812136263215804206602323319586558778430094509965223038463335526154021704133555453245065254971114190638148498338935563809771063533085943886067667396355272227209434798547193026248698474150123592091896269919790739372017256249423580988976521701344888953962618331748230920682150003836359329676103422234786606903710092910248688549854689039850561928432727816819718642068403583457073411620964916688106742259638508043514527499451406754510054743493762055881459345593921827620572800260227039668309160242937845590731364519499151298127467655883945481368373640950687360166823682285478557932276388013246526602135069161583376820797938790069013876645983081210611655897538031489567587179205744019833195891192765769028755073044459099306812064938325571726895228556004977624448507735612012124384183375398935047865565095888736403466123280830214143860136917234013951989602308096451812986993390854620801054553519007825636923755403017081282020275397704526342547538290123782532442214015885956487282110955092826251521522947221235606698203446866075807679529970776545395437933248951073010782570738158657380305490079201242308194645400019100132331488759523689516866060131234976125624413709814974629502948004559242507817398260651827895761028376788843380672635009555761259298028773126393255956907322565637037886055417361703160430037085679937848071682341055244818062698133738575756604594705751652254805597866130818029598833976474110656704292429516623395377052184285879845453058732238537892932422086333824111313071223049688725468384149428345180941783873044024286070797717084112305346728690308660009947522014535105515465740651715022327213635194099732244916179409826899957474218957334377322626878880782069198633142685813837346961388804629156172739667430612915895468628782286156473828481480902727331933275232060164928373588474229000218656644274717876652443233763602995176693737545067684308232076987310925602803106233755235085545717663770366777003547164384621607083175230071097161796044550372223091170117769531803351258643759430729602640313765053368340985276718353671181980677932620957160453602515181920720063583473900040134071187190224309729562158254848406153682598880126629251313116482395578822577147243672261996939940699716616056232288554728655471268541168316787020304879403614193398461345393596187951877107088872034824372774420068126989929504299060346055514816223531615076721096764301536364433856393841707130334509175880092031618432625935400336944385142772734034518404384104824516507529060261962445713729240053810680798690453804683925034411475086511297974478166483483378527973876968282071741284904887481095819252292900299533656924767762962537556471875626677106292631386550686884860044698780202937911942216434655842805165604135417805942015432857452389288164201228747996563795588977790618060441521844129099088091636545995105532410034738914727643410706469818052794631241681559664764718351840462928972489712818035866421592839395696328726383881391311485241181274306386059343824676496493517896010356987568828802460493955274302894779754848846355096605942233165218526257581612048083408010118235037389511049537699718983142904235913275290089839010699673373712177290862727433328446391365614234293781986974109508076704101725373146594741339110589540420865260729675856323752509163678771827188474164788726810034363718553548853835279007099418898850933296208736738570264253136492372643860081127908053955298727867880185759536428128435157254646592416523860756761057541656512206483858791563508507006257834288024586852152367692487503869047606619481418121266078905594751343706070839338769335679852717989298403338037922554582816079213482640594978203731870867197799060835595957882248906219568436603575946599360676684902267342866850318377317381679168767727258239552315149302732695923098989474648985354204851521056068048537812055835871853996067887687692115344379119636231840361891918018783274101859113427531933055741017640136059059895068536148282931782070397669254149402863496485843393397395429013740530197111042265704268338226557016573643669250134222505668011028422561957887476487421393985540282013763709515773184390406938004473054243985111943401127535471900691407399304464263608047977021653631980729992747078576794380244452392746525519342111124618590323139878223312043096434645437449440062580290575288662459349961215777836768750214640166030070545979800872335637926233682883000882224487754983756366804262516799200682581933234863243408922037030796655287561930399614769396228215203980220953856218796694553735633160589979058278776834151664962745283791716174821963704862013946467644056163877909624612011376408924845496649169635718352372374486487256231034346743971189458095166246888647322332689296875765414283732930942192018216424694440831915997048716835482028559871786621962911953274681402601345723193021158137563671251459017054532742598346689899028694656083577934758930667800161159631827603623390632877987533525225775676795478463233650553139578953066144781512914789194602962280588067511317233138905688581487100397482313340360561355106988942067218655416669492581061716753274697862987205598274374187120080933427671193955900656696278263493982726414659110784087391679089734355679494314295025756887427716761382198860313896346181324192122597787163241324536728555279171031921546112161778609793615984958012417140296922693010450027349100778323452027737461711944263888290491533775593682414693612518086193137578080573485894365517973550426927248344287802906656114534835467445222758922933491205837598533358358932603867782608784976753932561990784654050800238089690052364865365164260207047736821745880852910513819803315990397186598595831255023951745644878647659213299629998627753302419339873448265629326352686070660383535712786275779242376042122947157654996340561897040577833761457650731246612169781765991921477355787440351386875079256806263701128924087137945657724241278204270855169453296420777700395755396474576174266549936950143939654731544944489248134317660842811057929511196359958081344647606359097588642656127224677508608338519912950854630572927905690731354642860518379387667612802883487960185485622250079385673882931214583024949260436324293803293856829572369387139894853035557833570503277244737381205515027653974188552048412329427144670768621451842456755249210527594362964435119318843484288706370087745176552971716075764340741689222865203058022977672568373116377199650938158831807464953521382356232957645317762715171812573706420742425636990426709044134645078596719621442802040568187975951896227100400301975904958176171635939379090390128034766276492136108991301640783411838667402770436623062748429790987609991909467315690599622024871003125204921733697613790547441040597476237438502925670992857728447139015314213698732308236429902753434881542935913113523760337727910576428883704563339874390642655986535888714158613929317408050884389260313916716871775315787452091793722937362738550677737647703384091929426217791543682259603398906385750150425993387789395639625199479825401855508987319406143068533433702184395705638131123978354879938052632275774508597502407267035029901251424245638414630850287022188547897466946567114008129064065510310267665800628112349815016877539829636199899268643686779538488990024378294968763388752225061176222239223696607008710660866689850038328154905307898448068841104735034945780270889642063225810832731766982838317592944155641491607520182301928634686983867371499553126969271270785088320129886640544590475973919157208941148584301992030176353159176833154507844669418926520256387040783176405067668104559467930789060575798457175396804724057549442275513940147877954077896030782329542068685719838260435848548393926711152498860286447382810164072657859828176825035915279795569480991587780083162965452216607442935137139145389360973225882490013922431812053163460062363938671268621379621445223066360738346497666148492349833141034975875490454937589220532603888775724959305168590465361886314166921053944271849919802938224142245029678486901209681247726636871763658430060311785631118824435027056314651042919767102348492679363843412090806098917662867452689477086573384840500148673922072350396167795955266957484710738228548116701351618518324347259577079045210252402165155225556421103284756788031699948801613635279191634940987382260283681908374217981944786643865075380197896922623702050224742211851968461001501379136458597377125167580095972165385234547325047211504280309659106828219690655632443664983503599276120602802372185848910460360324083516732903385069588286738607128028677297333987845182451671001410694520046871807805224705632532563425492398794766686565058433955831302366524260948324917171946090874514144747040996302091538724356911750904985200029407032556207899586683352146466815798401582369382886200006093853727728868291187667119496146628087848731919144660372819502994843883058507076559216954643274139914072250851538957754895518651887193939407823551622666221131202913795900397154320727849150939267836904154496508361047563672785948651865286377074918956346580093259131634874228743692038060324801518769029633284215301349199552493107327810079714904280698765553268971177255458954587115914098728697120836396751046283156758551020600601969096489160611135207019054021551963006757046952391839221166255565974284875708467794898706828236667989684150075510823337733115974186046468229856418411532790223115468745879792605950868646094904227468465790340449912976193442018040133304567867225937397626873885953447456598516592373312744238874132872880626423137193870259674488089923186751219236106854212959540149549004595741946722659178402414915354482862854906096392777116273498722033644329099930633444896651720184751160870696444948838789083747204369502130493844275709999078467859881740327837640191583263323800675385457547047456700734050253819099252488067032112335832650921499901927026715027295813892822423360764124985085165839335357094258768764011210363408429624274040227219971409571460503730525586692076257633133234411132779330250202825862555507021894877761308493088994102000377919570136173094542900449318077860452683952491269477396454261348074574856597781955551494429598127010114722611480022540648665505552016904474919081027240667462303338785889993736834745972481916691889600999476824606288681623984030212716232382263183215196463409257364148409091833671311995265214291711061361354773428834263601767781379528315900030153123335763009655374731752334989489655659737757941693261949879901699622306295467738023484309881754386769670064334581583927579778407643852980992187156248723905381118878839041704317009976211222572356837079824752104998904229490301169506935042909692393688074006966282391785306417692430062614999874999080519192647262917525222967001414441733504599985297586087126679786699239687782107654549215625801664522218212072593739911445992221978168988840698525798288590725783698476157562521381546073168944407773547191954190389003820716827210518239201711115190112061075936301619738670932769397887897287604078897213495474173803465686116873535174224005667219319972930557907613238584040811277690420745590586096720741963784000887404556014704914267200373811422608945372094352751243707885445809600891538489100292861845354696152785333585389692983498531703554306601706296686181677816574068028019269073915868523553230410139338837207203510247934080264675942208274981148489967260184855382559924904633394044378973803341338768478613997520720649820773846569703274015540026104388296479087785883165464301664208657066736078924736375779670083014723802691731653547822929012093022278822846868565696849992171252830996567004175156836344107019957185482890800378225422838380102713281603668346488124590458768133842893562804270555471016744897952635808784395971815004064006669365919058282415140271081562934891215050058455101880606745671964761507413615151205963081284465284627163162047545981206727368141188867873100560117268231494052653721047790976399803143427424637704949232774388796569850753337080535438944566751262714178488755572839136073640863726276956772254535896315627099074902524090576558488889670282935459894521705334807532587150535591638332762743415658732681128303255411337330832756368374509418720913036424742705340098653072507337824193358126753530380294464597646207767434368987326696204906497510693264687484555557466696673842920508829886956542838207404828091195639649071512244728996364723541531656704377287922257621707657140066199020196424709380436800363743175174404611539811597886349368295095257815141419420299511580493910566172327364015999048320893393483483989242562332727758180561674719256477718292849092549856202059550734727614183133984599895709198362693262565659044102101556826509579735251576343484181815785314085424464428667251773257225751370866522581602960830190646102603576311161944389808725828764858240943753755483494207041457138202501543821537488014416454482286469237197224222807780554376558901452511675382859355551471551570865798999355220646768948885023075408601156131885149542840521140175385110237382476688764261626917359766193699469722648750411015236492871129978629204372932536027858857489753198196665030059309106368508183994871168075725644500580713313161594450841671211098519386135802500003003282187877428467242966044201598351781641199096994999517127386498826040427195009021092699546891902427186211226516529630511810358608933744724236175660970359879400296796449297482927142503006313764690704028753805848789030289190371521658679174247823565053796997591708012885881354583272773313699949393270022166290813624930021074710304696711515268848844394738370268561269368676499963988764734328644003029262386095176959484586299687028490094458471764064985438480505204243356685011952024740873294106145523821267302773729627932610473206176432242270312265606675668267765354223582029039542505767402762948512388928799493140710347783157522901947985909115028002744160368806818830673849602717067813998371849904650033497581416156153463697700009236388110116917450316227773258807780120356527785941518863770619838651976087863728756926330442887690641167093285498944230975568743229754772432285925458154486612125602850297617086374995645650368121727923085459667260291859677574278573353107116953423760504493896909242109320743947936242163142147632160201468179113156928143400231688318245402462207680972365116867798625349267378696047507395944737468924407676278453334734879380715137697650790228067611750230030965155827598616456844869063370407788909516125902241269530636912426289148290633610825994838118867998710391658758365151107286491657529969584395803998867034135219585205405440294508115151468425965951073149669381547160815687478664111709254736671567120155483729037992372178824260338347254958023375706336366791878743207313607464635344881730713310657040574859122388768528593642394464152035426297368401517534200173696484264234397650178750298346600777239383599140985245743005833335029783766716312103316314011822662084425130069062105220388773112822634117226451434687308691901572302426811886192619026172655545918468347474770429367786115859869552516427397859751583268752331113656385713425655985443388710791716336247217716987501568779294615094229980505614712608699531973256643462406457695995855394734119038260507614915079814607305070185304610515294573242512583488409016581036747561327898725446322168271785847982987776149685913475976949561841985264380433751353588862045885228303894059446051465678559248247030928528487272176211060944060020144316599210433373488053531213440662990565605512017307885805609313337170317199742025457171314981444654924351318930943519625599086605377530893886378089690518532373863075157604405031927904440800811251082741330567814060957212850846720934888166212484661249490032063563800484628715176570771269730119012199557211682148140002943970613555916688880448024982281992528769596816213177186703753926857830472706604141682958496795444042429310140104816147546509458374539296905612331863360555240711418530985867861242288624396550158560170491204379546784340518008693106939914338984100892653011448606262200455927551663408145020942508018546718677388586085589509070014572015596359622754634414324346118052269587450487648001772150766633627727794955197671722555114652878399860003153673843138008893466259458224697956209775647183777177688616962754968951356476204388071726568616953962284794479922076440970154783629155008386733002649922651019192147599047917827328380387721145308089951994108044903840352157667492391742140450704090958583024552536409539402369498060514787345007716971889186474469566348827696822049816358813468246145903233257579549522521000459525420491489890398940095381717810047669478236443563940026604263250032176767101903380843378716360665039202597845869803651809965926769173347544272337764543333205989632022673873184680489191026724877871711611679575355479377017680392063534814273293195228231300765005297192521568226656976000508885088637760563174392536952836374067833905492299912574180911854029799925293443879232194947370412539118016298461170279614327829844144702736017911355885192799742543267090941784242382429774989624974174429999104398647634207214490376981433350073239214025118073303936025757994115555547957694101240119713789899841133591778002740835424378167253100835246260775889921575385147558648719939453811648382154544980186771953440230720438295566453047476200016218622930565892139779652909293501273753271592260601571737472764643876738779418494713492150215661840415292531787328258970389032687618877792212789732333480778465251842362687303913942135099187319152110410471743071194886716487256692241882207678572949148098763746170539412123011580063454523329286463441708778478127175211985256724475083947347003742538781093921787583067487576802340719536706351177262648175160946697694400267400896824067743340755496228469474327342770566815888988904088690441358686528857620542316302107878408711221979825334456017777441758326316289165670038814310426096192020884954102983330136280362586412696887515969652522732975234319470897734263869044171201661469861077295938854490099756792376349976811288561139741196670014366526402972647879699679451758046939599297487426492300012323846005120416316617920378496337689990922711042465301945443021548511833628664422793026463443077235132621864769257796482384465761855417937530486456980537717903583716146710174988612729801334502408327165435080806375514833407646064022483602710062852144795908333343999174480208609309944326254547632084302295041128980123856693273124154639354873863860847951809388740550748854760913821066792555032608226079333340940717048257361984088921798922906633368485479837302125061573558844540075235290434996466636175667668988683846167790057717144573896464629241912236194322395578555708359902899829622784205482510565822505323301030104152165586609991086700711271155283036030945033603938401416979771854854498171294131999116004196731947150039676352078565524241293164647295156297432227345696435033415684882161622693837612053733093954447267107114437020932838616828478941770826317783526217840871295739068760991104151055365410219442853438695534486269266853883516282491395399112982254073959124230864667701332250199732096147829930218514869874312094307944282132884997159106746351149036244833386680522869250666032385159269899342732882830797542243768452579426271779861887082183952400085825368656840366342356773078267342853141806749765531879962866248103161634492257446399898917549855086649727973372365604880261750615316002570546820381972200310526234215230143521105149743467828703074171040248685821486920523316036695292827187022269176837604395412104085609101800600720677934449114091592506372290042027146731590067629742287243057376843119953136725077223453071602908740313833335028313670221544035682855921072192624058935433389291204169941797831151568616479558031097370486549643352468604825709950941849652335133869416810362009503250215448263901208506097190133651859278560674210514940067502383822653648745107127449985130839622889565715072355255423568140713178942762358636921004311006725589302035899900997988744806039705386150299957794719935912223440458774292391464868802858739851900107725196356913291739546389748339652428140408749191039578407967801735166300385717262906141872813324537373956647171582384310507488405340677936272121784478138408741690087723595190742872266198402502486570685918177314136716798098930921411070702459146495321874462368452024832498972926719025320134084912640604185382539222758959469406031176419865096649748063132176320837997877355811052643507880148876473852122624164132481300835023615182370187550186219791804797855608396023522812534243610231670935095728180103871714305812839762917011969395706597018156159107098109765937403451796215110570386572074699929596872457335657105918985697545553782231192915718849555068938109080204074006066347882605446252515891800001819154600269602870637859466381482862139520270837661600011550138724891217166001714691041031472729570093245755394069298013552915112082983346104108689886797228669490339338592324986695382747363437880075758066302992669305845659379252837639665784573020706110617040632305304435995901050542352221299163848868783376450933841859809245212802759746738421689244094908609334289954773429944954088496334870712804168712316930455655335371231348624469829227425877913535151074904541148551102310393700732167778994128723398530852510875326726382820958340604636156317366455506935576341201958852920852615772277527604607124246342171028255699810983619929636665206156747474071844050369595790484505553727553438030791765258811134692327876129431211722105500587529136704855162346252931342437684072586271436831947312166360660851018437721428014901497751207702307263583312668300682361483616920995901504525840919243462402525718963863274820202312675316277471779571997513430476936989720156528654619748236665126137275245550474908967084157092989872395524162965147061394497771216688363905697097556378870988390947202096989927030962127872624313095809295484766595461433993604033968357627946324919642711114877539087632207788641282188874529155307018553953728095190409947111740222452771218642884842566235647910245387989441339086308590196048123095667923063097109415831471448044140080286179898454505793621238407289233724238309467336258339388292733632621430783849620132437844620164876957293173656485034140439017354828875685976086197981674425212224642298425530963047480576529734931951634143219445286196033968656669982690737811041826090785621029341161381312794506708600789026218199749437645327890649135561873426472385238401698263607854617143888743301522144722429252977927829720248389808288073533008245793100258813324668284258455897618495441839484002694488216173021508860944764157816179671585133726559415835568168347013607329414169537479652786100908167943891876981244025706399769968454960798025280224104341029321093354210844952796132296687599057304916153717855801260163915451404420461937416743128803714115556603637939987666470203865659937576745334425584948185641270194516142341914377767102731110391135856979188025135662654665853198164343469119717575616346574707054133381136868030948616181461362061734655718239620071661406128601382389313556984545909453939962625386866714515034238398418270064865184488645349080066935807371313232315204372959385667192363191587226921875901693916605838132654931894206054468273912090196936464066496170862317409203777646190548650296470319828644516518726691683416096722530513092166315332392854607320042052050289961758939843295757771123460541602661345752581720446483350020144606517858413655322021331116381303466378363259761627353094474807660411251163053507891253765293309916887997433264993525935207885846937418571463816764124721802316952926922739510003197876752126739075282590887962181850018630006602981767164730657829910961778319691110320398316177426636244614862965066922198459477143204303498740160473907696292863487834155781012645943599313386556573978569813014753921715461726956279983978504772303038239699086531386048070324927283556130475026356601030224419511552206502482483513481657905789140788588781646412195672407435935223934049457321142754756811882619847056014790321362063586176690912394306577191858874126213595818934392973855098119237332003270058802460886329229146020254742201374347701577877003776817362597607342171792182697187997834147992327940176704969719753719960655545809402126327232952069231792458930893519916869787496895408250624903026700228491702740482145017672667930427017197448949075508890052801027543718448420862625683410614063676800457441063119322095371801997861280854366432487364638986471919448641260933509167282348291826584632183081863209208406730244879208387626198566525710137337281278762101864877287589186021796971472676344370508973847998475380791385818633751695551369281773473200717122795422034408026606132463741120299949899527373711174006831214040212297941686857454918130335468584692379007591924729596731403436228086730084850345654267907374822360621537862123582819951078981868303555355100834661433401150835456605118926596657029466535847336375037570379827704196455169503291739924771438919487856536206121532031499872052572182865255517166071938304945626975428347720084357574156166373722600329728218846322117507982112603990144359236621117965252721273937558289889389097888799183669497040332235703147966395048703165549448987139491096377914463319384982753383088665162169105748166342174190275701655276989971803453891804343382993130693413879285101163543007593603318899983456617262462559060204995446231194479193341011112048389290326387607596959298552824949247505445826307792550746660760243467172837772343529759408767637119741827840746319045810747143927020280798872309006836519576561369380025863238506056259795826418708629838014384321187891439097847933427905994811529738865688473459527115808864001798118633049201296533491182903118913007666455373939939141309211249857696183981834790516623048397399535704987036487498578952783257592630451585878176849893818845417594973245020991946621400475795954937984261031995080549099919184972464226707481237867615662634005604432043623559032500047041733701378431353065911801462436165373149911411287384136899103796190993707029024290690682560018247213754072938888838934472912120766984285492258486835217868675731471920847598934576363608302613674091540220177434881394237348765066166497866726201395079559462771056467018575797989256307635607528600439260829770795479018722832265719663078153436679286891443511639534924424450962761681892540867221037093921549894495759896352369949114614100054557723058127641058377042094244624394050316842932825655033484742257358231906508232261772658782096106621987495127169075232064636790128207790893082364703675316756238509517589768035827198260779696385462445337602762408953075699298545603510599763797853077494566939936228514600766254039972394369632519407503820449833842231489637823158965413942617623331470729930240992667069055169782241001424196621787482823151615171808303388459744308040907041723785901714052197504052765147241423381072102656585139812380236793875265216886408768947995904188880046767321876204065082325325952534029695962625536374278687086613642437424603818574275859521295127957887310866943883287433953098038113990554457025493274808333649934431833892670319518092166896973678800877731369772522098935426673563898709819856291216863951446968269070141724052899756636976708049461253320967822445604883686010398312567071914466348015523855965742454188328812594976790920015271689136403369077320560359116445694808431031901673928337884698784214197394373054347386377509918720367935636633820560132773680745442969373425812920381161469701760127457716041448029177023535138762677327940554677014018095578342924102842779547040614281120511140260599411821050346538449708819446314199143166767354445981984351536207279087238702731637937474673737982531630614705669407974448627518709662685699831933355241811352255205202840525720999252083909475340617886776602575361815627474402651001823287715987924761945024000566459019457487210132163263747835578522311923777615200645170417385953133736744526478978914428643492595761021556268417926699788330419879535923317136753751921248813456106492996861028190698477474441731776662342346754490668009018112774268150765569722011130259561058952707491785704162452696853956098363672241342847744620524458200074474089396873887204731792286287678538055885339597503149522140511498594309735065584104298607930057769331051117710811337486581088843160614815981628596697640357579884093844478728284572486746515097117909838402038099149405806903484281033734256154684907161678670669458384091626291290105350637934709731341606070823518448689326262657623391728542742214193977459786569518900209964394930720689148573274893041941310499496265690659381248902395197338128452654615099460003775691813824192948178346817833228187518373979168778350021568492213526113523781215459722777750064785254192370400138027233826962666709275783231267123576911922693952888015818570882020635670079353966813731676182862837039442375513794167341952857636462529794802013574125377178437225501117857929510421204101396514207302912989778278464811980361209971059973182752154109853443426043300082753888483807749346025222636724790139392139004559584808731891029451222142728465870443960242043497719609507871470627424056758575927645969189100153291749122871186521751830541739060044505027517845274970037303549651263641292808489003914845131406813523028664743287188764190071202888904041779156404955045610104341617510747792693806457179878554268133751092208569220838878027197331245374868786170549623528689261914619163321560352396525218778438060675814244600216004247608235931352160459382748036057215266112279595730976402344801085480192795162068747655274750997395452132321575255842884989396510426323585635671162443132161242413357154289225438465000661725633888185684689585793780776525689914834038831153109539629403605894137321559248072280242852362896885190754748469665157335488521198580361985323835540474532501392301131120725266663491351925904144671018227020875469163819799762988394367024137730575586335843685025457479383799269298043331708199338425890888187785546497008726944657643730069220034234736412710294649399128499332807697576942614779163123708446368029474649407354887545628737901675354857172438324727447987292921763220890032288759891995517458742896705904970585627949697189106451712115801651640127462331654812869031870889385777893441216520209747911079522070442298504088820589593316576799461017031906132672511495766110984281345640307584769281831364810688202033340017064005449800197817520686144155950426432258122608534580070217512496708716132251563573323830985562529192450913595580751718601517302634385627176722362654685987317562664764929606177786367032666357000272550047512796009601708166337254752326240558979012945285300362931262398054809449895915227162289793803864647400551077456735484445958524102376468168026505981230624267385654291768054197230193556732836712020185828209530891233257868455079796882486867537767586101166477350955369363509795588773162459582086635790142775475757788391279729201118744637344091294339747232771688558008510201784148542238680071176201132152808177990738602723032799002534971868152408336901580473108670583449500215731752941395654016105822393427955335568289002619426035164634472702259451529631328508018026653881455793382361767715975386847114340525224526383502613704717297297050648472947890552081769976471386703422904629226203961933901513979009285604623571385604810148062342941939611236535774885991516881180033934540591156960544317084010851952454393715558771310798764998476308298011831263567135104692288945296755530946259778549139601128708652787869029976769018912723585798934715060555411712672575037602835782448377869019588471386582695363843016580816478804419710165635059035403321559255617163358563464911611477827415721957198992743082752208424460031773924710010680932192853410134142628070109753189122947974983665821993209249661193754893507393981654392052281226140765703247243875572534378054250651695508425830566542524178167853190152388342209478914115435075961594749217130868675889511946909098519698739109577238575180154281147005991988461466083121556254843578723552097597127149456795103441677604861063757363571086852092436453228114817559737331105704953802099759166454594612744010158956410919652704244895609250628219800200450558254985755298465027486680452228436833501398876581284703611899583665933183446110274180147856317585275338407242391898991369528989132447827559916892116522233294818308196524169175458852697847851342555888339106257802224482676017519169052562206523396983468355610972991121610333069395707056528830473074585510525150389472605781973541696180512761931335400273741165680192257050036463021319998823382353800002624316004380161911458073185970364168535207398551733530061510194312303033123078633955144697048633887677967677160232611350811444447727695687000144489653530824247044220018076168212246756599060087361439139597937682073413949873427031636987664019330903107495801214113588277443233499834564574975666212780331345476922898168790829162565443346815110857829567543517564406437773756825064292059426720807314005010135367922719333962321877308824603991250201590447572413803961074698982706913877665763608176338643938533289740773168780656568988082730100695334842795419836067852774580991980352477193570683329585506865272626465611502550309926958703433347935862663976103056714107680627092599319883442405784521994576136531376085539678571732949633936854193386637287415160249370196163869430088317685099605058251609153780933600075869316013309567474231338363488250121546307416571606232550179577779353684377132366568722657815188011284901444682922380920105744674041807677822854257435083060133366529428927685716055004317584340621525509079503335825250167076760502654749865278201595249105062737694927617298518815504230415523350922276978429843774788698644307696477938729094329066391849337334556156536047397043218205887727195821196202130387116088249436927964647027118121368227317043586893770703863681881538828764167024268052738944044044737348709548275813508757214052162775246996323862246247949433708612272641114134645018240309446374601316021646039247651847803042812366758614011968615869238756987152909148803015724784121952255152989877531541369084485961388806393907206555097580800715267384686749004418210739296467514523680575036673549270040492373879407850458089817940650973344126535984550211056964732455031853857342431920365469110569383250914677126283166437915200340067058308736620475434592708184270453142817598186249000149246353215517776329192614741831323879556250667890506335943516254664006660190308779186474757832867778673070139594088962781705404864122668768100938088064526173862134777273341263183371924190101327614643700074966729776054816247525509730848764510159564448471076429514106844650181835514810852162711005494529602753602775966520452433088898100674716239302076308715578520107096069634512605468730483701534329037483145594473066767861265340270223169116087043344898047860720599140775838502772089647856004249635598220213108520383250268337355023983945100119346640220916586583703838317367649113718074594141904252939380042996262465507808274457517985337606098013807512602920708649553254730202376115874629540120033166036046077522869629499367374825203068491579924535413496576688503577239280338555326607579524536342448539734988522328139634923387345969762277706713822781559098556423202320684429948394724764354775577606331622819468368111117080022619345186327189751398472756925640381605865293413377953430623711731710241138255529803048982158911495461634598249985779311347063400543490631710067606914791928797201618220727619659009006182902356445741608234750726776863970161950599200885339391165416989455137603903009911340526812704431911599104279475429946343567430925605039406671153445593128488981536844857421292636097831624569776736005544541753457390547917648983937847351527404682325114147700550061142037582390500650410987431361267483500774680069506168885722825773551200053484173128034352587866367944375174078118524174678621006911216134427441256239381611828243804724086562756337965656391495826560022623939158466234736049790227781805484768015023381539507934749358204082170114887820562682695032353502470477534445310432048170471390247519146041372631168435969688225255098991946947351424469354004456447817873745463784123414869795626587801833250773071159460163843163398469015997673525717643752057895248219846833926201874930155889539722967509475628133685823012131120170578118456587896330355754824314068341911820547000297240910584913226714669825526508552950581230458740055042052576452635903797288534298868910465718416002582920805245825082570193482879919450489919549540952486903641706093110402097399371198153592637140580627264794611408898066480374811954915914230865671333314160728640116724679106622403078947669212727853192864908205735347090024939344921775409489127246132837731451827177877038178995328967107909354148817931241190107967835789195382372355323138100206434039366877626381516934663286582282985760510820120455647212259605324558889350605495676691998305645169963742668858474050286091566515448241803829708113344592808585765158355182986568924435816068493826837474191705696189212979518887417306496884541538982603927605147218484336130314159361584989604758643279847351968921400391793550441226862777869582229698913038641244597374589932760442271148204713464515518063734074765943026875963029071609720915625853699165934592605060591979515343254104320790325321438799143356780389403053874864864072355002209554558154430367437824833081009887495716040279515154203692150547201305454475253106878000694829678667920180770351676025426286188538259146724661812594287406839464479109656972658120116883233239925038175673754042304956937225548753572816077726820812823658764904253625437295593157003304474677416962305900289391254578182472652434045382024879759378252752296561680577761837450290166267312593062737914792295173995319947898829469582119319163638755491348759126824806972695874740238484380546564596159833579480601176383841315497545813150681795398087357429632179184797602087769118527648416812760807749486686095460554489683718502322312969831809284711127331381189107015487663900969815288111933252076705478472110549516433916780105825395559457989060664410930515999820272552749308000149708776493230536201439742408092373060748502092732801623761584745962337920243913140100955720935317825173459254759820413637477610017474662819053610770818136121350782960237811890282464718649715851598620096885912784879849525622604159891338787166933325544442267336809620756246372717073959500316275502481234203097396384944524326698247543657782977860564641695983470131546479709631342492595974821304361458462625595343275500889413003249201874936450301858439208552474066551975191020237765167098847275838549829547940090867568557859122332908564773737291622109844468710668721679468939561011705238290792086087312168036216815911242039398218030660794680216782274675095913261213479074711335374367739122017792365002581574467522858448537966202096026863265586119965932526057636505350589224357097937166396578271413400305740052412033798948624802227095093382729280965857366706738154171648090827410891987422500985023157491306366647747580492823334265482093360321763159599686634824919844752068062305674498058796678867153843521663292934333485092250642781218964111147953567376091941667138891534540170699648429825448302556189288097115824494565115290554957209684505901758186990919314303978761531696544590367255523036967315426077116646465057611486752331688650179169807255451926162219833143916246226787459145420824576926223807555948944342390294376517116153417822320528920671813091113082746183943848173052174613124734176769162310922640906049610462574344751534074287198201325468941078352033782540867336527601329096160660546990932269613577212868081989277719707911918131797016335459189742963147599620246943780634785189722127188114210753554082324037169186775103372539654966202233536843402109821897531389170229112545806312509844692231190544812737345541751836803477126409967996975899647725518754619876234559155184516405224445502752857538647129218287561971488301841940709732013647761055294104713647401822376437851886903808845558312915424590795090867437590423298512711112085990126706455418153389317848203975510641083608622378652865372008295361832587693677989852428312677624301586822241543068890050786089413157637930045127453141454159987618168637414825365071041540399677509965494573218168613718527090781473705069794688705905990977958788164283068774173512313347110338986467271829527154439396948976185874436737294427327775999470080656999329307828077308904533822620453554468923054629448179138686843249152689215852185125895307804159603464252747911084369325539071067042548397382244692918799064930920384589059731769344273858885534916359524211211926052783860767824769435832431384961960420126890528570061223888497400650799698074627487946640821185869314855838113310968405249532338606933014605627173780099709893453060224083534364738712511055455571919199786533425736719750652520440322102108500587805293391502383852099445320646513581594184484623510515339922098430803517227111403010013765918938726629825880061068847604734203130666417016125174490638066814581169071438693994031990911573997325576516901323663630491197613481184649411731433157891976697654592573733026915309178678137083133686710488985083872877689058038912844046769507473829815909912779199912177240982772287777283603184882299159513638131478210198139176286688030714164550959895209278599739656901606550934473253340072343083065580581832600256798080303147075529121097613805259623422342384912967981431528506592960444674187353214071880165035431151863099791750671722723386501654006874100533143525427625627811037865366004500136948704747899720852734337622552012349203815397959104111312638961484784999808815090901703254247473203098728588181092341573951868609270760594294980136188847936686666602952916028400246521727585746544212830014984875668367891000830026726661474521974033251691464315258048763919063563825889293538986448848180098147762420055920313421107574430506271045138295125474046722907552519201696245344556807923183750259131585208835447662120466559287009766455530642765030795153690881490391969708112228463954699409601911763468988862179961705177716634084054924564829360474201858308831888876174822067959840686079144219215082599326604493659518644189289062566434264165029791862766670793628699295809037610590527059010996234362674456599202619612303028982262771961565778585512827594130101464923369228803655152947964421812326628476001172469639734381258830906181376430506100459774756703243738074991651638323587282367082075169357332387001424732808583936394815848248335927378986302357795180403836821167838878570166116302472519964761624453785088294613263284226200133011823987105086842342322449167534084429482163980665667388935011389225014466035650568205945453981331512788551355804576327743358326441926457291979877012042699726585376135974662322133478157816031942337548306306413794715506790118661027938801807447473014124760425483105643793105972309216684651363291449405879620507630686006651556404697490331964411274451515005965395651683914858453152819889013073335818669643197700151226784666773669227644397270213082104992971901546332394111921905373975368456979283433477499817609567641958853602185630297339654389059358360980153984705976062573707117716329510128819294733436557304456211797460955001301144265087198088114254811344865624346671606055705718953007515062474642486632911844156053367963905841993206205098633809516025594226608841037348862120677671915707116690277386236541021590690878017594041325346958198287904303145959592586011398992098589352577158366345813304867523115760106336047895836512773777005155621111627670155609446817667701180311021965602983124246298525723833024058477588914345472352089481660471057815520050589795502638873467241700144444268675974530816165319432003703490696059558755454840090122847852851738220198966008688597068854812282929183356447281934535018382889069192379749205965491281594113136341069699866982676958032684599437011912674186539446341889053465591170275710939376923478868612223099157226253136082270551816234566861163269953352304719767865586927300224567592061988978522158870442032534602669856627557587346733605043284251518616714295109902957176012095915851770721788068555218691239151770297370394627416538625213479845692932029186842183643687471744262550969169120252807636263886374510663476448589890844207713760026984994245689262366942128034604090438522220216184430642621807141303430120072620879998051670757293513052001936375581876383580908713863017461175525548587813525156456338479526605081019067722369650060442170852347618337653523639324157234377320418541362217054005140704039279756039816465225132714716030777554312714987278427686624274025855916241727012027606130540896472009712435568185669462083290620368359149806500719618223848853786583030983057517582505871633394538900337781588185328565901688056996308296567647901270728407700194216912618421990176434249515027221294093891035004739459712669817717708357637565219151983873706842366621715552834091505758083355386912643887570532798724079284800968933036568188776839698138797952201920534373705138702106089409268340499974215165720536781315278229026757040571076230594423343857380750533863837871451825154086457793522751287877528790131063163622634667097336321282092493111214184076890757597308409244389121224668372831260344837265937738173228516679875348793768295805829599783546094543875307278539870572875853809217927971238036195670755842158451926441343381554480555237342422203906597606019695145490453485186786046511534018759117413299278676787776115167945558053919704904725158563697659335998141575385738926993869104118068921565870523053644354962689913028862451607846324143234651696301635410119808996051809085867921933356192635187334910514748996733663902450565696906944181412684092626565425359346744402703888855771304801541603093022819953748138984241049458115337171988105245462366825930067650200757411091858053919680245951905970803839786612199583807072138924534720932418675898132860223706874758243889803728898014009221943353388875255278730423067815548425749083375103660586498077489704491677378158078557205037197967553633170485663270341523014848926358953391761392115945221019530396729773407615105228710480430563011337168950973234826745332762344587210096580140394092502398582000351838563511250315513218555006502582087969397476028092850725571854632360464186922052693815374115965508045847629093108378083998460830674625643938369268724407317681825760028365111266996879010762150216361637865697777907535746207357989053980040007130823807422438673649784278435155700449792420823976067004831600990025987535342082837277034269774554987468168668507249952549851625173918725525979625232953496374798811148070636708497261520599580668075292114251545574476947815471391369721178667910877364929905139665240608891529770605007137325253666577787583557770550764464588344794808871502737709656287215189888236872929664956494395612621362087581469938352368761485962853408740613647680485886472308523730008283959092107920168097547093858730535298591076299941406294470036212998139596891225146466218439112174741730928237829998443381716222776972559430124459388585256884577992294973032207703418922574462828000305795304325610572244832926104229161394053895408545367824992047610708053077678777879736927944078915103255366792229249552052766903544963756054820351273873928511429560645201090177506400733877506885544592597576954177058328959681170794544954082058256553774562405859240889351101177175548600390235591180140131897781011032326466873988004754546444931173773142317505086771505611924274752603489575967674183185058401646657227160918593859062713083937137343796413558500621745908943644833166138467469047451273273901257294758745822244222782553753992770414157196453138962400974345677411696771079765672436337607172835017581666755417920861843124884785186882066634270652328406918880271368801377190121958833857462787445735519435623365988086236973366924370392607996707972119551178798653239685158758856814355505983726703132628024428357830589637355625776082262647459446986289466927846482002761686313010266732625579545946719131588413372116400014214585793439975596412263944145675099482103665011020134724780095748273855437072849291363541239613097147325819506940783014455214944131973087733133332576598811881313407658985916309648020192052736056988105611941366020952353974128800500896304848958165299414758506132830930148906657551678511808872554465644792553467728389084394704542418694487628290097373670843168022973402610161683095615032984451706110376230384803537391275505595775838078564147014491124233133316106301211960564069640645900733233696857238812442150984961341437833592962786803964252317981317052197456734112358782300881737401925105729528599174181747797750288039657302426379297792243442387631529585198996251519638603873516547966855863519145824161334130978342774910976298063265673342498599541095694171185703992895642437530176258044758375373243560398716267965919785811324118552471720928072096466517830371635363419047721067720666400406544561043664797021040294630230593491798428060680258510249442536658096699888991050734488379334425923416879121773792250914741441230954634404188887300450025463238489226380911004301118855525375806366864053968901068955714951697018315925034588894381897860399784298743304890549532812991999633933695029456024254503563759338029193681668878827715337125221551144876799814096346303298043368561212769764233113868457996612175348100764788074546344815265231404188620806242714952620626500578563025837153155480282657698040250600398243896099184543015720528250987159216137704719024315588682057154341854977379460762696178596307326073938640699407441886135625451592672994547944997821748319728225192541557237250303838938800608570123338639319685723832581019545496811014752562223472370375049071172563240476312149297633386288746734005259478438694109729417765437580706762802260700984048184511299361209448616258285465585345610398443716212076624181634024839407957474802144128457081228484650515540693000200470925760381519492766658954652320580941606200545527968851241452938143697354091293042632328624356175945370303952551006575883996120973410197180763468812029892871961302795015592950406002306158488918705544120044382145511633557260870466276119941117432897879586982288728268433469525705774057008833400006993026588240616472513768702047179638333692121227296272109169657922510475511278520867544649082976234704778412742446448568421885932238887907915853416930627734211997787109557891420994199862777478105383210961106166547851464647861086266677257986737951715020126969524716265730651481998683588442467364798383784932312560873368509040099426230686740521474887228741990197299746579857802144836209816599546829932315780219500074715835774771597740369049007825061584977382347635601611815237393291702491361114362908194197423725444113320734730262640068460373833077864500129359203788419672955796426580242802181735810804923902059444547148031884254300611557133256949344638737666100475156541896418789864301515115309975010919837831146410193892141415562896861339178249458904314873042364959805920706173870454594472644101984611959532325727082620189891860667683983406398434458574460493983781264249039539855206799132769988150132378589112621140842294410156206708312327174705073141627946819625717534994998869453509157616974677420992189606366115625576179551628124359431062241555022086637774270340587653300750561622639057583551945536760448364213264247614025453449028508238186401788141467133841319409057592681632364599488549508835109686223590388828361574196466049877958053269896019364097845562125448353211041891928951807973836164367127401899082401637436897342248673404243719361317316561618037071406430230063070548203035462620831486807369261654717999702475036889974722288668551603217055943078087594502862416590094818787602349952253789403568823627181148987498818589478906070370175406638927740356572086262183903729302985489280052805218440748346953257455106293795217807560878625391004473371769398376235449530066918249912696632415138621203214541211824048369517530342030518531298352888972623774171449211145331794107978847773710517617244645325491592983839179545554257924030610767859965051552080594067676065743121594217165882140884956044527997065397372820985452782276343867242056079454668241356063726265611705975752591995259928103993228283280665341527181815722812428339084614087370498295674120617552225889549701136532936747124071022572562863339981218310421220606708727083222019779016781437714022694916076073326571572578871857054453045752575040424244221677645506225980459304899765604419269538648874852867736201438651087036538637933609408731541991905520781740298200900129322865251492866753509615081443028431465064191192341540771226704608153870062287045723578996741649490415955111303418826928288364605469511384361948282904279702687581734345349910715913189877218859260037232390583734579443093554241621097848921810251696705727565088473216605741375389976027969617991097307635752261391344143684602948852538686915411422100539375714731702848228068567208568315751730631559295741616619352860188154081173594211044959005988953512323059721352241887168121427864679857693145578287486036878011592322503674073838726056141793910004154590561526330832109908089327531483203029707848496372227706773484001735046521435228917438986976428557580060432498260696849323079236160444906965225488514812147575833841785506713653511745382883849083009916680531171531663352676284334381019796805420570050945394496255159307623443514562600761092891291412777091442809617133078326544458671082897595138558045429863461020341204833720918510691978388417419007700778620890972431151444848124645032482994727855916730561381151408815314985785609913314193148466879313831647354205029203279590287402160657046507109048095682965965280719910171141709614866307217320705767006397986884664758219354060042758839756935844816399607665410708381070111241457208468962476673215188601738146011564208860891084870931724730779629400294443723927774664421772848994674833497198566332142705347812039104539010483411913702487831940292927635051019475486520379937824635021347834709800393994899421643504968171907372182512969267786391385872007743112228995242291854396237448190426222728598307958968026939998789195066578630795299352772983659335958565134962052541961601637360400005731979382531867911543855758284028652722179782619428198260977443592612908842783150846637533885533223210257755399534912948403119610255069801248541168830438207052023672343569461132771572013938838226692291374613552168488675657042543659022639656435816411953623115686070965593063660685732018049972700621585758417597150769350427107388415513881125965797019333464164961806399859359597979165335661012002572205288064815297369905026160320963952142698508466770246210130603142077735773295475676406396604529117929678365788953147473974528192449021072349203701068222830383090860091677386835329587271371862582607074974466349976879482345250112892776811281408535318234899114359356157359724863840451080409224979167037372560591055007759218572432036115916018904864744945289222254227423184097083177639116700074323243946296697490304063602509421163364555162468894568476598555582262120977110394797285153757987713940846003077755954366005579068018409140625713079666938022140042538533965814231849025679670388588233469685291107816538851376898424491356731139955316279530769835654410167363252224342422899437185131917547075383866119484071716615665636522722233835781271952703698632711303604896722108210088333013820285511904173156652462339172878833574583630680596101677661417536460425850986942557282907986181506296723632888186946561084682551317520791437016394855752624080408758758868269723394341553773708488587542005062501925955872459992372457361113561344658256662597672623778806434988635752609421962995184110359278495787948233909335391735334328875140841638449026022247170178802283642379373999547957334801170184536239559539532049550955058855688276237546590911747027818411725424543412961017433464109113445291702718654568885866841789725185121888767963867285035267530643194013219614355120385253989408547759007457842379917435320160908652553635341465626724906993291025384698808956970572413444406250156088437641660723238703429751626898999868339541320255590962079097509169254322910898101809754783742976814352242660119950577154738372581850672471536308332809805709320020263974286591728016359201012529712326708927418214780383118342041923225257263986628765567118954611724772886073519928277921444576372216420833395303161181806270185569612960833444286219699019608758758648918582482183412870754858269156215227298595238199522211239517070296541638011544079150210073955643630915587258915104240365906828592874276119475943755664436230446340479741748622848481782625907045293892883870305174315926419590899849406182640176719318330385335697613613579158275991115850882965991067503839030348533048727771138870170851010507573458497901948385589473862929099431864116632015467274354835622320898058465802476516352376559679755762658532609212005805608133114065467764679490178352918627310384262775249629055862998378521979795466370092610624734151701233307237321841108904327836282609416600209726851451194455941068041596065109449647473433930693518175952997129256272757933931589343685563849783161597872199109401929974496809663583578406806050283454558427079699397139572935583769154260777612657022231861879805499399460931012471719118977250668260214243219208480447501360121894387105014622985431329161390060369821485949369331069144697533731386043438371052657841132177030103834912769647715392425889832418927829298490651566639384612140395234325819753193620593057516798612669481299483980867093033045646493317934774934161037601574881906048779099035427182346476767505831377730052577084418327770587969734168406531348827143321326464443047236242170815403866113820698763935925250569571367179515188698639425805822147151688697046916459817793661842926511062785325502382521935467533854914423564596263929320702171770802123330311410122175231222347437320119078477133891131449216206560442086531538919746661303407355395192824737167193988088620764893183080313999263527786752674397969515114330046303821125586482221678280962189900036571509099973098070441651855057165889385302842421091972771938163723019588540361200001555914464519366045872676362722051373055675507948833335669896739788555130740520968285916029412061829105398976509677590083813654597749394995627930669033676946553951183839848972419376813912795973781227570291693650533388030068842519878402113534548006854373435118446435091726134701085815815309162248313019585435609801183466677122504334172721616401969980943675592382285001528998275946517713828213060357257735425168269729485767535236721066582920091608625790926117359270906333850523426108974296499272937715360905448802393919510540407806787592122394262433043927447011924890030576499995061589323506156531634075684518167305679937459737580587164218102543789662874247481312532544200205264307321602353057537664140372356652493293315229054330169414462284922449493084216066075003517418231834299291605794729647182275129738202979095766967745575879986168951450634223156609030505618702849155592021244999667527495158863456461715501711318281807619061274108885464137521760796703181895273039627607316760863378195436479452428682494120863165863068920099714585974562954189327407519724489753737469046969995519101764799660643845007478345928833614052441576485262307268185127612941386089362519505053601050300528033325095024473941522571580867172712726259360946469327724194066887671188245513810400543090024797231402188994781312311473525540197782192653626047950473515738107188599653431840537208378800893781105795522899146557639828513623145575055503757578195418617374119377379013485884521451142163472347910130832993390272686931746060253387440750762919851641858487936781610757206644069667173903188624593553456761336304599541419933077016080601299743834947719046911944592728356944597450112173279262948738829542361726265799103408438356878366227976805077722987656409626766487350594218640511104542367097873664128217082758489407379118149296147013400864372092034527527212399383123083591321558726559299774447936524114527187210888677096477611525999896060654577091464464250489754934518389201512894584950704232849455860104180695944617010354870093205741634984542617732886806743822875480966612540819239613321135211263782747495287212657533763874953898999379379890337411208856700164763106614017842314473437212699188170091470076953707493507019897817090148318944066113639701758270928000612714236137257405272079946468865681420374443712910821603464979245067938941286029715087674855588469093841915625241048150121412136884703486780975541906438120706491366250515243166458330343157395425767072535817749217184173648919134797917364090505270728542980792438709593161231747596183547166492010606879153474691543966091072109440164724384379012919311560686582759763935253277531220674971570890256012039471187698664666556531495522697317779274955875677900598090907551447853559134089058145002862313931215012952153902739327865351078091291578237076072683706107788981547337120753845251594583614445663973059713230740694325455540779310175651863915538168921875099094046750550310412304747643273356475420375739375901113274964608080711996673644578513425391911378755127849695069941962006724855021468958455811791906616998760535643310921442568862137456574958780216510486524176248605926186829624442411728019054135849192310800784266280856404913496760065187750285456090057403704080753886046685390247359998316080792358920884298817379011207320173109028958551790816639772401441505731156965367606889455407570573263085603330173656139900215278488106903912782372470568277404172252762852812239099989049243728320774664335459909256056047929436557797878146756629394411742084713749829149594325153540341549918818883683423553789673116661469346311048723939872695983354505748855418438115854640875629933363694117734523321980693409747057147757186227881629430391035324369475843927510761129773435816466139790388223125534899185231924637619315512140396614416704548798376477458872890584839745449280484470827419586767646192223477273347640270155261077035285206511308902003608393032738391934809771054648448092374224633122237066485418269377379863996972736465072532367896512078611253759224307129617472945155657454296847865872354249783557076479178742904417984150750226078942195936468968416417872119849821525149720961437406734146150925217235232701541795092905705033354293396795415654098024500655931681289647409900048994559590228048469253620176865714380558665723664998522832932890306816712394451232539360682867095083022671273232635393940545819297954039878875015429948513932569243541801085120514277278352545998167982235566310437392606174344904295352711762920650133424987128434459702709739378563744710759331972683356548415190220233233784668795384796196724992419031854977310922646147384353378223218399666891057769328385902477840651047555517866308282445655858369282566771217069693253971545731636419452470565702186446058027831263602321813688067571072099494542732148271667532364290846549556335029170706390056449609178936755257992286821608999346185642139637592141242620772884123848604161817563809221301092921184784721043385254806729457453920125060640079095260095024122660876891253148937986340960517836460434644011464948021191136644475350493838333479679573855234102695837883946479545758112160170776992146430352656374634627503498244509765972801839220476474193111478918530718711853739635145715122631161469291123603405470156557061328609490667119474648170649369211167675863163531879209796738792317584926420729780581693711791840468061969061926432065267577225389694228718092462742718738459179929664439578424486245327550525934785210000875303332983918631977727746750441851867951619431663813186057651262554550190616093586819499452418132358368839515085789342658890928638375256550607995835734981798715104945233290703186442744762660258909320493545667503657384682397969982802396816276472205141649641841803035522629385389700645900060687187671471020037538555248782234666276405078482201891040034732577984728207740795359104311146638124381176663114070199459455308267486733887318619688068755939381939039925716793150238474726729152510231091240675992449634568795098461778183243195884958967020696658365348347422462022879602823943454592412260935228312639403631554899465595496440927545134217135444567717356911744566702073818997966949114592853460638174200611684280376761964792560141600965211838332894179536932562541904887510746258288276976253946636337650055172498860838693230892652344492160638764000296045977774299771710087600957761718301506079147957353878460365344274128789473312244450063769510615562543060134727406308016254865897580284482038160034006472940916721414810895307656290482163332504527362175639177238700638040441417070785600211279503226745050887312348242261430368508204394172481486628459232599201107788906631521597890948608897794920130007004829562894985203182181944628926494498640222847815124558876915822041205444121775435874234588331470315668391278021337376541835219861762850501629693346889727882327414777318941441627912735107872610531620085816035107235008268639210324896427158324959368060557558413761375679761200709669958066814376735449853087478418983720642026079941065841194015125384128019969836860846454491387180577422054787656942748967790164436167303717939061545081808706594073445378138022847498475008938238350863335244894924343398324278536111530940920654059032838712716424191838354462625921975160759615342830725942029448274935471583751746424116330960017818287531369577274837873082472281416183086791300398848391140094513956808734695163298467866242979263209147314839470381642571760999386322346690290029753882366459462592910378886220758476723514649660756580929056716881543330282096838379919839216756849593305384504313794808202973850675275599773130978621185844458780028773292333223571951773573097960175467190214631842447425290440508408444477012440944204343070573806504815227794372341117654620503907830627182371717855511532737347371210883926901347275141142311832583968941654823875185560318528443128951559849512621057428284263709900273634971952525157447973295452037632518829607355792374801854465503258769523737656695069914799238164124976764170547668757710848027180759226455095058791352326007983351976327132288639784314800844871941238999169688503640268450508602411467883855522788500047398652374884813709055612550074946051232400708009080719092122090898352203017513670935207004978424628629727020956926423404991957540581588249901937868383330762025424089008699022667078668387705139508622556256290879260989716301622629342585696478581784896411044063451914933067901257761511458985204613080902520704470294722320391326095698018587682418462358025102305873984338293454316525324301106662663343167886738086126640208847135066568041057955430642472410289385959366467301682649661415295865122433568527693099971378816986875449515986448627130123708316406485015769588526991461235889178467205304295072110017206351664535077562866965367200267200077992340874193265381651184707624387918326421053755338063153673542542743788605703363879682858964417236654677958948761569435804139389440798630470153682053035798578102367808014749113335898236291072780255656781651723695471951249182365040320282896806339082713900783793093784269946252332540002530263293319101801670774452609843131636898663280065484653576377760093706377957323666718663207556060487894046461409585934039707983054423294088798236113501121618000319789711253958270992649337433309916587047863627349844048046000613390912532362990685983493114732161690315982513534722111119049796944746038511701060882110800810404696460050485034365213117001329035245959964659506774000317932403109894785610504327217273439922551480780450251861338864632370584698139181881033736516745214349428584281346814226089282067019313494713583302030050589005380586896902218853209498985728802625742751318238961674475046992566417864381127943057755579689360539278948112883509286615248112557463417604262293797709507738430136175024343786960192123522344949461309832623057389640838627754869020768937295841286799302823377718205650639638848863627054056419173771023346193734247834036409137750377196590535506261735764120598582048985379595950945719024898927456395905877258875336135903335890449200587159748509380258515585427699704539272672254084526963641580187770506575851939691440990068093385074361254883024703266440651808610372498465950340131070263183571665357750531941998042428173591049821740639973006688564999550096550027139109103743964632377565056510300560728203911901297531516556545239545148975582230018242656936059661439476343681402678112872658751598248785140257546016711412113289167777292869965892255730103214022471130224755079202907212659947490827332909054903572575601403992845659470606765134828972801893628997727872806052259316386968835207099679238682541060389218504081161188837887935221188639156250364271961060975260816435622143366840331103156126998790530853716826719933056331239997574946362796034639201664122913030370468322614000963969426472338897190203180688337851104982236797776915066993015670706735621875307067031190040668546887424883093206172249690711664869017787322715524461259177141988805024453959529765931884168531153083838671952778804306148067922203710744209617186975335592083319613514303127403608630983161654804556382542218941640395450173219746557883751728488467255473072630567222764678506679636476985218259810525197714622496548088638000101120557471551377883871286699729260412547355229039061183890358838697370122409104992966504798543194228858838751804465309302668744085171887988891485958842933690065150943649783871974211671249095155825019575418404202223753115010330327495659291604855492045344945491623721667554607772241804610529400976508425078626359482530735466779947221949908468156442022488310206193701416840832439342113179880673565745121351025616867122459850188284309422604177956581123409140670595038462855876108829283947383294675541890981496395494940309684673079992988158487360907534407814508372744774159080867670607743710238321772799134678591767715823863180166203189289683974088272134084272778630318095242157823812431360744759565275253338055385865055747233926523527544170347152674830622990838334350027794270924085307924770223577426968467878572375773333960879226209439885807192515847166740749733209762784577395729100801621606104792495451033711573933855223594498293392546147067314175295164167085952321058280852614280383075129144978376790725967338819710094452837794984568057640078369936379532289377995416373107534126574091246964106791362816003079665915602831722900927698788171021934885379929038763232283227621393973988714541589480531631278995531477663115719921388077883380963881877142172799513951825558303612193571543598261304263448950462500825865476772952106471856247596584182754353409617169114991653309456964186504328715680993129455193246402516999013541055120707192532232548161447626799107042030853496603633201512117793220509172131141547753857518776393706543439408560275463046731573254565935792834622007839134066016483712823181807306796749435545524042334813058838865250344923180091455739214855578119388117267185064956560350336041418837366988899862216567901337584544275012105528798481719051344335540094017917096864736513940289363061793118519845087412656725070875912042348358490851165628205880616027101893492648493464512998971205341854204934748049424304396500299970922287681322425095169654315232404661742089665008300900423920097173506079167874668363144129354881394220030253672329985036734826338837761224613538008297082865191158520276772981280405810088440408410648082557013065196471764215053446518231750474915204904968484253847539357289267455712206044063374105815996604608650382378075163273153714660130771304351638997221707234060063556663602836241903621628123136200762468838965819627074715050516237122175491197954505962622129619130734218673857423859429506791218149053147540217305724578002170785258878106048207412528312493269785085372258687610841694599609432212382388277301337656718603715929865119300089298826914421991281449254279710473913799490608734039750947350173299203697469364347860907165188010074204174020715143861561435983916152475098569851571131882462508874334753690643535160394062549260087177898678283308730394598261008716163515390380930822900513187358420916957161726384758405431127857116442393080396881626158516419956116351815557983550975462776344674743329946506151074732163226218361296620992171136363948878913450567031224889435312962569169207383139984679025891992481357122027337211056989187950342785609900989586221417325422516553135187990077603448160298029103677344110313961024650104339731320340368165788764066620526783434676093016686531859727343876117863638032800878435901472382826284992774011094046877467061683735006785241709813887055654430956876496407410242492726589901958636718371090215577028970886260119995158381846245933539456353364210441018794248868549793551676783240418833896747869926452348256121953538558230815954012800972295292991691867268117154415776440678823457305597038410292191176632001866861064630867824324439977844447105531265331124622646066791687814802342189861910525662780106714172560136979906366984944435862827013777832721570415015295456811893276695207638655712051685480700131631751512143112610311653048829457832130707698855061810558985084509483401286734046303388826847786952184475986436911672828835292543612757052918546965751155992987243579227271827642825103823545812805934495748846879881864135592594002183143538383930673817065319265525115693832358268254809845319699405194085162054163685481981830937271921293140619164823512544505350827915799996105760320724332080325821226400994393228335923070426348815000126731348774745986925616975396345556099873803681858213414206110442487091224889371804089565195071448069302840626347673372717052536483250212144368521976657953323826626002208473307432875535511624029801670420278184605159737697640327349498976148823062455634376790161286121265214172365944722965111468739830890682531964083006662379563332344521840758291429074687439406567689684642285917531387494175237945064263740570298138072433318077011298744285125082279022368888530049427906768541699424427102574953724989396527286613126899539435478276891389603319910183850846137116147199939416785207675465770644397524989513141525306282638237840107042766215133659342809844591535285621558361163547510715156953004576732851628386924519409958571040831479482489945816952675426038368364647951210977158116282346689112750421981076090783829840870957853721119234161040307915460209763089550862206202868103209700845935863719760804574477689747057130219125331451333341852337484813314364064094514768618438827015576146753488083735064054550267319347914590117096519182553918549511082696489175002281007337100283280095917889000047130094217062850904000314640261028295451516293187734774433342812065956291932536865696196560180581719750279045307768835392571534263953794769736629254373621470449688899555880740250635089236885599579359880474300054519222797042145243722217870883316818888571630728977200575864112870623449255180023925383747424461881092586231701100484712334492706362842644755812606493521684505995896789601163197315176169236656033346304531652018106341221397850116705756005242644469630977176450971325169009440123323843820901809481117828928179043677925201350809954260823698144027891081181850334897217337293855964710126725104309998369232917616928865687422062829278638611726024881950125907776065008225054516302407204040411428603544517145698749532619755624902797244137413007373024843524348078503796234506803800151767922532306092412913047624070243969766697693027540588485804961379338903228528324248272634439385188878336941076592304707336745089474357467584204623030597304742994907540268481327421306469359496284590677144225298415722721891627515962326061193207355952992210295598804378736124263600745713318900742328065817357102689005787508460508740237108241723863886721784290421065857826447445464504301677745148671058042878413736474463600559084290142037703780318211990449220158949516646275455306762292325640414693158284208329518008654320574341497670317854725856413800593699615249822466565306662683577350891836781326417326332892687743220229827246397723405366653899989351413143183494032792976210939044343313738983520351524120998566687479300326570561580406462494656187035583078761858426622549873605155138047797857109183485431661747422480988542689893220206930309939343600943643903087535117212915374393193780747574132003026040811666331042282200197413442678426401747869622303244802192386597389988043049488148053337810913300923016292272176284311583255384788488815306888398464070910890236683853615241177600499173413719421022045484487703389222761064768757388788323962256100345685822927430509081907136213060596439631119742509721322075778202242665503189140026578409287503442950825544336930964329992905074024310212395511187823272726388053706443115686184449098959086155311983093928558059733614446468471729322476776311710276871560883893698025317443979802551042133691233488469999235507928604735602116243462350439812783880798278793053765338026393019603268564308382224399026163860716486372174260795820760938466661939346582330826510079096499824133046753136674484613889568924007981660926448099334297467100098552987010966537626837146725708467491671230897321484242886802729303264261587938706729912563588820438585979646992368091784638984285307545242582796944059982606388286347049828736791173375350571029010316146519070064591417524007611376715976316823674706257819590937495676053106181487952977482120973512082036086866545023934155193665726612700284086567285309605394417812564175060020074024487061545215099003496211160923833723077200802685510480207892913881772307568328356379897058097991765107361765907078690705037165455582799414796364491085850030166942964726913089791392113540223988974596548840094408607309216376564867701718635959885906030660594957662419238452641480967365362744543350831120083284026110129661485083849424939150681082008373602948049429961229475220737878987758239678224676006853552148558980495631110405231251553096793856180698810149345573570656575260531873491751570066992363139488946269494219303605619618771713771011448771282980674467794660338882922122767952603509931624400865991819058245053526025800284901487885047912635446018622540326312893923173096124218251509109475107653024884625107094213160521398529499472673879406928926286638326678604314278132913113075363066979525265699948333260476836193490100541046092303110567672219328958876890618502227435846836628022615615822952401475861360085106757691881424438792055589087855253814079305390139296343961442637971637369220645727432533241241283955600968527880329443607634707273940031247893126379442653084105854683855972116691246611216670734843710648326282522668587825794408846815883665292857805803089845803685729658425670234151445207922960686898602515136586430272583408978868138091575110031041950299448648065639754881520009447353711833053118267868246769308940938979495686871669545229606044161128500860280017447034445352725300107712718126452607164630426206646610564604945188941709012525950280801757420079650803193279545077170586344956441946131046519868683965530933948458462311530804951159353261627826348081341633546047675997598030472223930203633213371007174480057230096968299054317059039002574499801764613804206526333248576163029041192251231658257435776496122418893596660487411013515121343413689064135812227669620670776405964360729013739967326318317284731295371626542037554102013478848140735408455841582939371875408481221064767188537684745463353383093822706140972072243331303616469870477830398932595025919602323234963411857575415376840036121642093689756613780808597649844907390496224351034598118073419821019712732612266668179391505521771438388083927617080281766923221746893436291999966793498920615740511091640871843441700873777127041498130451634399034274280816760453240308706789260779482991345264583073227044251747777749263494895442730899496763392387988110630485785576440186980639581232587671930810056375416405416569204056371630724737467467865903596658042599250158587453474958249802415281120666687750079066397658297412504877434613803264917538104380868293457419403516537202902506316401128728908903078430389568546005960058900739781499646247314700928043097047404751715957138503611281531429510900310855770999016310801034024546594629333864183489124567292548539187949900348028703094927893623467729785859379279851252716466878106099197857056610887421345761454820657127906192653800775690047092801657689258133258632842642666036752778132827367653043929046258258368809303687065146045764454449793100984245343870355366800923238948192940430779964760402421797208142703902822186652991608314175657574930892457277295386518250910193733169319522270941733483243025800065254677887735116351898613843337564942873007794884824782843524570245838032838460859035753288667883473165228014804389921233387751333671270647363506387466867821712870530292848098034187835647076198503724935287542217856684751067571925745695834759274722516133847539441740909157529850303348054464697445952544143556518430657298906561449219562282954174251432578879375476867991458641558734858231346854498639801524008562104912746769225074270032685309882307951866935203764362435025733957604332811280038483200399324243363592197035081212617773607682409327774796765141979780640893011818857094141513622414040227409372697902688111584734699044609184969488835348762019610271894367834670146704592506689321449010776154453394350168648350983431257689931564892208142589921632387438870437674077133455306815815988914420073519119445676560219012102900502653295537895452824230307165885392269894291779933210024753899828442725982398558859054842365919567718949146736010179964553412824077565980741380695299665268993108549557424025513449496570397956005859291721135910356742653181773753788434517457355935795309824487840115721588800405689327326433609156046939756669328723638291301093732855305478065010340419183752815083115331274926793987471699124189603514644562911837142496686386820352713844426925286898080578234788746487948943113171311127398802164595791317619078177272500984214615120172129824164278902135081280357938685926371027829949853771745233589633934891194355944464070739345607783997606414599575325505339388002279460011192039310808341330356414487606544819584885131431286175082691357475028056078730645914825924688807974619611878264096350307430099925289285406889642464013143906488971989439921542290864111325237499858256631415271315808292183068806190643641970304414671238717571319036299223764053405338385926895606399585345331499545385021578791511088326844537401915783773717843876916744981625440015775901403911046042574792604949626423622739579262276004669916880034541702714012474710402326249670383340580990237840535363634833054046646434403500709649516965290505534885304563248106721903146831202104657726573355123337826012999858964226038048567537245120143739965878949257513689963778332817316334664291497320119201693538525432176773374949893639454600832658413247935862763407008447208490219646506645685505323620716944151414438349579994641541440646325653695598941523695625279781157340239773892378566286314527563021218198705269727688831554638494064958509740050682919055952247084463380165931214815548869655650785692651449276025014775072338839816538804289683261925971104297113183009186683849815422667216228527931186873816761803705094289220561483087820688474618956987269573385945109160608369404008413108850760344161039633899737111263989217490567345392182667102588900757788857051011271062534670908067389264365065776355453637816307614328244929969217768908198711554669780508755026708810264047433416603666941321133701597630446561546857752868611981049565335508967222000220071843040502556658234572057192917898100210742767162322763586882904369991770510686428833318908842111464631397442041692470679715485314446276186238146131106856473920536517178415548198098163765494457952750490458318416098504515963847982409529382973202921030847291427238477529773178703250488072432760588957750301212050447868301780778090296713206466148962654056876459778966875820419604797992339340783962800011563113710738129901743804784585649378336603441389182739688563865219606162881787536710478223488915624915709018819662006189963706152719922710298256261543543461821542168773664359591342027018542522126679312363538984506332762421005671268096326986051049479804928413806947988771006894143619911591382354296106250701941415084820833929772323797723682277233387021937042697343522130814315793419368597746429937089605928331636562440619918797160045452447137062706876509150275031610785555064607466980520551132790528756941574445246163204833593254416330829740842677207022719192118432983799649119758488601334573110278632887587793930541716104074035208015337527290619531562914513162403672104420943577741496207074657997630251536761533724524706770783321352678360785198364190235013689345226091147927115910021472669472941544660492234336746561972310148374833528796312434370515010304131747645417735412624570999278209233430591566674082973008916067397955905712546083300848494312227263768427727397688422210321814157137047169976487366756980249536073839053110326285701234168646039892814356252026188463193063419862039328953960047894125090910813011557335232227910950148819210319765786421797084964444602269082837731561851200974033508709450230916301571282249607700422560966921351131904358206074794916740806735254763636421713666721623349578015487136653835606837917513868947909315698637148683079083136572435707861168500669945788317875463470018243410965150822482414616284889941421318701450492579853656977709562650972855733907418493799118468867577396027226775271104155097711179857789457431764631300018325724550177820368363045432091721662166857433031754108507125709993836755952160136337962232071266359214147197626790778191297769016549936069192604737996922939072531133542661435640788008943300535982394523741158623966597824356339475261406154152321590814931263127777025018067988611901148843384790174414984792782397526691334212284248033681001898463038680226116924663369175302006774766093677304458590748462033391063716635788492510920987997922898605871928799464979599560840664381978011766394673198033817164997205411976710165603826754847204602834841040363585484627363504784069062204510900849273685781810865105249497655134428062339112673948800843338915853599158022123656378594207739244111725966311604210375687291849544155671096694678652358403569010562653642901162279194444859173736592155937001644528828283377852115113088029543334531617540354812433443321779456915333351975938074336521489722558809186602450754757971156644197663072705535211755677584566330517320197519761134923380811248202423679724002115304877488452386776405473052585540842293594807579774122568550850993865024957658356505330552024716369272373662568500678041179761441394011226053050151479776947624008884830899031310685975291345663745255687127637040341633710658630405453789668315384052417367649215968784744918555940283664798211655395453851230900703466130519943028103816971977536958095716073564709842663986180225137361547695011502157835151991906166023580454695996655428857253999462863408228579568669385317947498632919229189030901273402748516049450197209666826982692451214305577923467386439646665973024784834360888583983124453005616566196398424684801893287842019521499654424046370197827055847965926804968676345982038433283515538100295081882656410711802259059740692517962494718883889805956904037643014780847715429614538089816284824488688804346670583068935626637557768400451877583083476126495656896854176244553423687387612653938747805391654762400211657243439953912394492517698338014899250935247048518324339116444923688882616625892258947189135146244511471267397456788231263973391024809178116349928515093808841878594703232199617842762814607496194192887653046719463628258916457074548821574978892293306920328018400489400091438176263215269425342698268365547458438620585315794658059305541083889962752255671015690886606745471077260834118418946070382360459959581028030240718681177424333694885363420490560869896158058045193026794716118778320200280567792384931773576189803672446176315916000091872810820109906104496709747380172864934675130619822939524670061492458411903508136917433426959685356108868260340574236023414023244444363778501109382509114640075440413047225473965093399050033411381180788364931720344324434615536638308427457348770491289873926484142222429599326409522258124658676878207708183474634897509316978888632484305147652899114394361144767890601902749154178713638645867941054835464765358622155171323978432276682920574983120332091789192203063415565050420709663878506843586108118219575337765910138117942366143048635002439751096922509598365209156040685403773613019566709435586371488409392119523328127248320000606564044166142337973658114326181812202603614880315571533743087908335017845915124588793867347648273207570646204032865171039739512119601599729531811729264878535880269302042774830061032538426565793091212494839821530314747487823736357317402734320865322345879383130853362968303153276467594736235798624665585242571020000743067214705336961181819693607849765992166820826430317943251410818356316716428103243889633342022789818466067378092874089760116745418362987105186051908319369498689206019579263219976506364390510415272297511386113523539629409251367808372675750791014622606747285926625974469604148732569048362798057207278209019662333649788064181801014875756184174829912566918179969432218312739899483566232560236177551568234579054081929886207873001248614693092325619366522556617626656812742406163637019078609637545610120254801132712169273868689644355672412135483288156018813359334801296274537986279667384940310598170931123928522354111638753052550990085289321826527038181623613727078248272969009171201201865767276834319727657933540288274865812392241979616394676692018720585042359865391870822860660983939866437559722781880925698057016934545974641802270109675597790196549005469525305168402883973290573841828554423729835408511816961252634459403155541990960178925437934251031908546666598293953980357960731941259997880631706427555653962136287835798967108068754525049356698370215041636198938341152039072821260252474577626036779593440018275799797271374794184843004954301256474505152941666415229502003848386089696026077827031601960962399791378029343231496087610357547356194387671556762930340810529375203205892197179262273071730424367606530946966023031209602736970934850043726726927435044664455125580843667136714401036027511429334582814401560969972929626101723670507048778344459110115891978019215967805407630426034448655023350700228651814902264434186907739290867334062455541031397071413351835488861979182106497567710639041851432831793689094368942813380597702484714370256841807718081666557852597766997025874903856881164837604710726536458879589186381434649470457362517222169316321354445850402557984574588849126217428323910021195232707860455533630659058401726141168302800028386056033348216479509615609837191113746885294879576859846448807966147849928318986551225225984678669249131126161375954648250032650432262314408933920435188674972528558644872180913267928365535429548373349199148708605931562163920756629294664555053954616338300776008034915270128749054632969147880060640864904463530745606549020566738192448649474285944184599478940506513757203192088577276581605216549493965831713020527028932194401530833796290574240892482153031814948765383995828150720112605952186540891741846850748348397219971966842829516805301552445773142879371922354291361119168167582040343326987958907065230554273101178519220840781931978081997189012396650982766823609589871512320707668636613733651716017569292173319578077924406873640085880848445529116404471549204627318538300356097180309397701927084595421190384466160606472698198606847298839741386274783078804615937155279490526381167175075313326374142154497320146667759297252608408080305117245219285421425482219843307882613396451572170813967220066867304224151393947479910384489211144090130324408101550266604474243340747366956716672872309722683805186333142437038126204373796685067681319749247638064312311297791429447176772719578292279763778226435656299658935736615473400180970843536266576520833045723369776317132135398966739363245923357072766480390253298973513438297922190024071755929240793530421606848630309351750383380524916855346503255284060355890235051447757547481821312069163964982194908526516115285156954122916069189685304801251053942541811559755685244696580061607128667834090025645467917631891067748256361102769029170205149291949568997778819054985073072988792234832990427085017473756338587029631978400535961536109484296394212826409750208431991209889798748195419706714682464663473666166102486903652060086268778714299285463602611256171697977235737163626209787012206686342810054950629401928055414105880371117014342381634718710906743097622909121572636625314801456067628248113611999956577014794728979707208001785207765138998704740734755545894256606498611368092474501392068273662797047614736904734927815285791134493059792404903173814197532938202742970071486143333115534353532753831496658994975910973921502989012833128253086747663679421566349248525382773178335691570819618951653338260936927114709260348699015354019597185211811713539711864448290283810802032525238336394440875221274335927165262698866988608781927989998299446157492103985209586135610895385149813206691672142296725551899097234889000727545519841130062385932338455014371916679947872493787968620085049867739161946075768154758631025259046636384358809718944197218256308549438077653799784845211400980496196205186950562403496920376353645748013449321741769297995626301230578134606266525315175594425756012560376630016038603803118463653708262247429897820762285371719912283706332384724597722411738338840355859203304159445022336014500285282591247112309327685223551734625796223586629809686701711573792803489282791794906192640786282789650441509490867310626713972264917227689107189731549291794746483839524078763716323907367466843670741221284821679229054427998799947355024532249782243398451315935042596611214222507994581859069668777645371008433154399205864057844546561024345141399750557794041702972648557899014304996016057211879355764038479347059913253905673582895486260417068433000261492992016110607676057163902818914442448491401088155281245581491889015990735787817159112418370394708718707380659697982691501257749720069462068391907002441177696911939379713066302472609048590509211442648107394701184282349059772595434127059061426556902689334048097517581273342905412338796329115659435589708365659680614477731046022031773900279078536429957383801166594517196171483805222286730063423728431228377886892191748296850788387901274285337978206311400942444410541845244839498383862153273187461051626226572917725146830449025391143706492646153216591467918584399695998679852434616469580241868201293924612500505420735904899431580265429147640221692953683150884874582787997406229770065629800052029063436017332573273828035853742697329125784552445334264014223019330672229711746089023268699911439942316980948620726872431803273196171516422913411612525882441201387825247863397775423867166437597338470202571660749995163783842337512606506452003645708328751736009316999434270449094015289951221879519832332576876700489933026790247970804622657617900570967134539317895101976696991471123276658501365707334840933846129747335411824764853521299774481684401044255578415809767935747264397648938926458604342994428744582927514987263304640833230690639159292055934734090399350162277277144123720324029488905170618649664565641024672340693165683007963116634261666401560986694080830423777827276055656256849025219701330724442817900172813173577256609850267877973977207840374799112375776642261464312604575430485443733930800497661362593407604036886097703261803666100209179122873570584620123622348223423314295021827877224006227547285915586812554869437848369535722421056428973931913056952991352918574204134504618202740035672614455132426104184366626835073063775828313468178841836741885472319086894372377482266221807933287198283042985665944382209394248668551137048360334886299459945630972446750829389127611512068121747550700241814825718408935767081754448120288410939000061190683770104409234487838085495536876676591224039892962933223348758394291782959843116994794672183604820702464588678452248457719339910917628621707301702077419198672330435537416185595812693286771928960706878353657175840820708978235518166186201719436350824007110291429674103576870389614710581867878784369354404559874638967897494150859873552630074225229882666576148671285178742363086496385796909140496788829415674457320415879528945695646092984483086873433572401779122425245515434662668776848303765859432383475346604832724644535494463972371166476904489338707412047327740664875776923884221890646849269722404657777890197058163873441965049999672329437822342846123371611468071281102169940927805433699997992470469860449238154030691191671436821909887042157042524653607758584243581042609453315106982400165869677981779990165105447802779312530882108004838115771194281555575333378748216037725643819585852991993931038737341799590795515059079606064585100307514088034809633863293208107641930457845860857049696885568014560640854470033882471176700832796910788601848004447240163235146102615745938054100452211123375735464893670235497778504755067619537761785067217246288595038449643190678714973711671251077016819909458048898802213929139341559830822444657430640893816832744942784434899818176309433289865483371096281350796268303214581141691062970041337999488974635979780209770324421750963553845601634200128044642095920583481235270210043735699575130106002350105604989686741555325446389731601589909258513732387770627961838257826666613750824624214321295173603467189437462408194655792870756370078837802916252979978824213256217572925209837450527850256614709058818881030501509617518272059165810138981796867226671044890709454862606237701248276463122229677296650325956616934161077443231953493524751898175888304238836465548175803475207757148648597083729170013531715025747136606859445156042323874486384696328763867179806533524950077636747127741589219282180798092234950681155372288588297930177337994278729683085135316792574110139736643628515594490034653368659663333089970091375917881724213326458007954449748456836903250042147975489201307762361671289209665559438910085213756389690485982077414777655589765680025779263019750844123709155124613149227652552366297623393690642583223288444355696740819931567070444424000594289742338270168730793545335439286266497493410401082011000273242754853752539412532597112752656963379866955736004557464911207129137686599425606868186292065092866432022960357537645101109908665617075780813342001405789753000586389062571869048836824640565837767445722558755271420430894620572660299333866042407301503124063754638821638898358284058311663812833351350883264975089763059357875352448574129093345556378852290213060613169324987010673938783496123316010283009649743714556254307847580843878177902694393803738144083225164017841133353410115361923386849390176519611762200503127703304452604609757236628320765797291409688649482785213995368065223165312668444948792848240932899500903953782905819852266039308714613076234462368124945840297163832924574054915591821346533223838890362521939264605201160124202649294094365533847754998796011410310127617486185700808129430635346617703163513820186638934356551989627957228614556308207154149719823649813614039817959415911365294182423181134120923580345205602507107813825133554687787834714261452645702517551076487817366128691370195301484693263978016940557607564158909292319145254975865767702357760813948823287596720503951345079234258792825131551827403526941927615302571644161763423682745476289468558555818530586489545540139703941956282701697307273498135469465428932666031338883774398631132793028667048972482496392100218826201813307653062513684462028745436292793427428423484106511075123999079494045804889428291937276653129945660243828678369337658428737068323259977988299267494496906544609760810153054416501793751180271440644990797423549850113876432620487069135248292989784550027002067335380709899876603996041204982177932250247885869016916191799600210671888676269278845860376477152505525776100871034299849198402379438269988382533766281416596997547699738360334388228270850375004557611083060436538750304919350144885941479162353911114338991406888103076961237452214275500677830031344983513529827012342360125720653616292363277836403404236263596040237035200437522091116514464545863364280418590308822795905589413374300160736504045844500426285685398600256049496311249067103475695750408183910225420960987934505307124323376686962938800760687806168162748594765379673791392721245720389375722629426174257938198505362418491447613196686958524516981860848875388743520275410813518415324555158228044893660847499112989998952141774738298928256275654065471704551350476238189303775941410345648636764132896135280672597129936320759075791832113332998414797835515654766084382319512870612122929427791731768747172877983205042432594410836172194120411050862666320086505821306577949719992366729196773212634889287562497563028081460947658307269318185440632311772974886299456142204120633219487763140771533091125126697683703636324976868379045287073671259555969113643557026185768887083098356637056107546338417919310316551430144948164937732798048894693470695954523146807334622433864987225974897683435110784734522033174543983581838013360219122768637675101181374789442864790987911344409741327365200165681600822967465238095643969148173917604777612353583376722204114804704983757245175696685038921947143982399691772171392233634731012245752932899918943980380941808623280789353850765406113440487138371218177876011789650119532553040350585781043678632468863072272231379339112491323818423245663875517325612760710725710591037528719868495071175398189441973308186183577266986256962987145221953192779990956234435569760307163502975969380769615545399634396360959122821091715029547760110201572735934225196874655745563519504493115055743019791368978350246972838079923339695388918227306488582029728588751269548318554681910050294824316955819140025829292435923821609925099443306708973714019488438196220524815869909927115173865249640030157331507638383987879444304440685181516455127924554706452133286404334929260553637351449457207194029339723360973508065787553507280429820300874843135622109811712471401094166457619862304152581632467594442558010252928737872938020817109738374222959477462673439985732153439589936376916207488014278650010167648760247621015847872382673070416061389030759003081944334392144116445200902109994473986758242011042079197447927356108454527459885812124663673308356555285642275415057410965456165624533825863674060859015171614355676967392232511432547205494227433435603311993463338500671864302957066989266163010248879865229422712161791273392469148521513327807918314667481660869012432237726807929130918900800382605795709545077957391217214750588451199585505248634610760853514182202315609046467496258382110207059834114454612862978718293548055991561996855665907802909425649370726512850871103182292167239268751850479937110882760985481841332832265410954929202801484547064280337579087718171918140444293502878244172137454039136501348736227028185109393604307265265774679418984732289340464897452976926719222058956884294245699660819532624865894772826527812029815897293460055829492884244811229724357562595472378977769213718051971527932869893473829558993464145222516019911775758108882721884467786350630907304493771797264233170595308704426147360501072300221605553133840178516338181316793242865012796711931900178450928867548616113862168470783743990923106213504942403535075173022429389071730655253927519343858518330416636864284089122740730969340763409415180145617127622893445937761845728096290050519393604719207911527063386985036628160434330995561840533763297781584764659853170162642308801454874213134169939068971134356848255899478783068676982613547251246687471133552351223111775813783397748852191584261781262967165555748172015402370161473017332045457321399834041379792482834407290276221550975182797985942871611261294722192000083143753932722772505920045999762244693438828265665928681037471875985688437883673318082752789492281235176001361066625533404452222114782128325312042422652432466500515874790169658125664301315336031758193555915360178707210749601552132732267551669055415579383809446380718714616829338508309652289514914108499057459154720181555622962941637706720392243160685767584435705845272301653529901716447889855023018684434112216854782535480517212873086697633245736088492495712115172492979184328410697879952080898528244498146330105342546744375092429184865279462310545303159253401724062455585612705748056113399591989326454442684686347304278727644579186462246504110979362916472266801883904474056678757695058446143204115064689092972634642803876646513395370248099923229535681167884759777672333122324423003770207684566971308101754756411950176379399345560040414285381638144130310820710565001128361185568784610825095551459058522758803697009924578530476468314996401163967882045623070060028464076995999064050174207913498245094756330468917684624606213098841663199492489233751839458297717133403680342621420466493139998313019035913029690950887347773074182570104455782992192535487589014150501422991844201895657586895340191432182642458601602095020701529300040332395184031994138820977048839050742079545972349271649769341188759162444820702263502085347455280671842135404892104893774149194446709380486934717185060036891654378053971655071788907390231079981396788677350842908047457398434776515628534440416800252366365493366841040981611829147998586803373214507080042120426440613890879605347857134752570474880991450526032984334791981573852423150336053344070894367297932991258424095084090551343728718364209964509767306285178801305265951580253501187671386972422465844991787878730629641632329244005121520667324749767695980656103845729912705162400367592281150389138944245356757389541160937475597511217668886991255901892016420558322713785728331879668171561189467982069010927801345159490059434576284620972324993261600661028138446919748715456167916606178526968793508156993263968182645876962039647611217459963980793578877904893592720463135179861197760369206308960834402115263366458211081370306232901797917547923927693129250322183297061061863882587147473457326468967598878604782240881842563352399401206474139438507777979577509405495652704241194076939233817064797110093249034056545835865721003786228602727624400970058381609713303046316205388321960260046932735394169684295035016334968550289615275635758552930125386814842500875559735247165982832091700759544671514607314413173876881558033382171780295665614103119424753856379673092348880930929493060966596093756558814518084888351054208712514133222915180726967854299836115295389084917655659274725972671529445847777038580670605197407039878375856241934165079788255322091965459030663814994316184182904356614428990192822875247010408366870153689303037415068391062117174395373609785146542015165147368306305811654173071718901112617189101228943213990256913686163868629300070274783608764807260932950679525531968100608266847208109389587897363202156852495521452347509074981879106183434182366534800815183061696145569798370032008288372286383956248283749814682654385317063158482272435611059186597190425070476628099472827508658561059186069614945318566701928441783178276260326385106671404938361434885069161547457026739069694463259071290991900404719134853001931818045647650522073788809856806256829567702298613814789093425548521784624116153895586130574489686858258329727567347939422316113665355825207535488521274966507323694965224407929817989438684592437137530788367714494456504317857906815588947077960910107135518188875678642915313437037064510985511088276352661854209630239404721777832084149177076062640300464169580446813977353173957007175642728793206276339758681213693115042869169168667302130936598976411303142122545922864970197794478624954984179476424071919919716566012231341742715968054958193537084915767859073809686930631717587109307771964367554041427121830011227153488964507366211431463864517045828547021287842685708778903078078138715942281350438743510396051213674887549869790580946358785030829206751745778947535894184369098156753265814055156423145347876957622714462540404592569251858460201498324374709433932054580283082153033172006975629951148151806398402198638965288289163872587319670828081200836917746652780218702686376780713929126834462338525562064453231049653109720748404105907606622390695717333509233725045288811416452772314454101725840449940464348225920564768688748592914053216470828558796155095221473583434641289782523951099021151073061246003134517753263520764564952030084403830863606141718410191526307849930441097617593883925676973176809131684300940231740424272110299845863243245467834833692137236332932919991409901809537405820105753292792604933227559879044378136478314260631242095588538517036860305811083161545607028639557069451972667583226003042996930839911116026794904494384901227151985480669215392429036992756256666642883985099678034838382762729635590116641434110241119378694631882307833664139689558264883781937265554831251538874408504130452715784298498019263951342786701242535527834968024456186618615952499433595573959192563136444384825453094576048396604311589080079375309274835425832857921739332338675918061406824290838024689697331415539030372018883071174742746968901524377781524141561914408681158190113002909259782759505051907640467461265101803648305903157744476814717171171527200859463465853001859326566205891343285184945575822816298021185896826889181387977876133754905442326100127608933710960231508615733179048615313612461631650366610268560733137896382629066336551602045730501675756441167859956859945416110501159342643861467132084918523567006257982250055819812366492737407625383457000856931620223709230754491080038271402937435866586090391114159862767423904796460210298645694401279184659820802632440025487335706801900500840649632647461141169407811040965412354055320305326677112344460059476297282626587669018175435668154041426243953984464696548029235247493087879325479596926793639814492031176450020638519725801202063212497778849307561616459250225081094538806501815945094061647745602742477122545839814855699998530596381736899754595477785566748043185643996805882414426861832340763330134404529858059403074232398034074981120132740079781268607600165720391236598860707377103502726435733902422452456484665958397471255771559288933795893270923536948540852640034039366826591469027821678005477363984739727485103477495899850838600130911437734631075622519895904658449475661527424228998652590014275109047190722198692267800097678523093172403952253059191147137956027648746557946002597622777512154692539317430419173007578603384816041528015683823744510519744468302094372167457279230593557391760775125149549212361418362487627607309303752021264784125534669945754469211934074616931334772867189666986325698375425746452472953580470544320526606333252188346271436140873753001125189776755082219966051931663618858134070153915599038501747833253364849288962531694506478818916300693154805052732294529272014412979553070288783761531451528638585489411180424762127356661302745990278416974298863625907439408828989397567137255149237388874762072738621866149208955314483427672283107142140657155317949879946185815393064442760580529932633809662618976435745412022460320809393818962589793891944604557576335359939099690048360790339851594989680965198302097495887268715958534916826296450913818715908665270373113804307525110202312824415025400677721095110678060713840851310088821155625619996004728450645344052152175177740642612650932714278027579305726586411495209340146176191170942127048359283321502410210917798284806372055283369842467129861183985422558202892783027849367441889003674954398428889947637913207592221508832303737767350050576056393557160613078546439143399408447546582205948605445840993466613011028217134477979125552944910083721375822596286682802536639103060641334671964459658580692928540248147326701332659190407867371651247750977679627448394144976444651383447885956034792799922010985236363958085465553208540760307775273427865802746630320874354306783271996006834262139990258861570091899819102809787747258349935731114966219692087204031240141469236090496820701034673203695188285329179494920976496048365695238104038350384873652261312951683880688047585003844481224571234935262076955603247179709675601119745784915863843720806088296593636877731656484420554973467977971574249886737987545141924961122261655831719773674201597578945111493798236359198028125695848370826082458292476790351124968522358539984429669689911791659463172279122639514696096707685523988470227714094118949594068925385117747604647105330964032814217935582057134111626274876467135359392032888153294295414180562585651574130988431318859306431227770940169079539446011539330172909615975803604156374911652161259943030234096949830463014391683366813633720480180641308094960951364533523281120454485363367008997588418088353249388885350325593229690137235220596251303377833224110821588055840537733047990449177353997789361240395697792250130773035041799409445013112755905277732045215136430908602620405607201580695704306057086841855678285367030476421541924878724987505356102356018751172297771974538832231792888397981164326744977054193985935804991913447618421653501155458280666338458372047843703186703968098827201556060906721042559466029793983366796928322926783648389426343769441738123669259700078251096905975407004082779263881580861097425612893453081299913179773907700227270280206331549529157145335512595094400822073683576479152494559887810404572746252783728223308250733844858035382549383433932378695452164161480674131345057127073574320660477427468872873861822863157029669040159719298423039710378202980487894728821834588972940738311510079653520514566401961529158137093032145688096520510593605026865405865952756797362773434192264866589633318002956394446695077531544884506133588713208246532069213800272429480874168289528706154488203551716878350559389398140219105074435341911391376713027831419409116757513737105653328777222665288639631657067833576120520564913128545203188865097678417309117877256474279027456024698677683409498335520775501757840775152535272433207604776952241673505283383505584706585024093893857123180797724316691438675226935819453188939101999482121100300711120311122811461438921539595896885510513991373931874857146368777076274112927666420891905482361805675499096908736112423182199284374218530182088016692506513203745739214382065092479573007161638159637276130366483626922843347018390836324177160810936537687923598945551708374312466848369431514154452897109447751641049883119131980198350800746802613870653872423960871331142423071572721188804393943492019240235732156450436521593116878791551067392147763763169507933965063327315224662957139873332787958125360227287629198675848972008349925827636429340412214453478896077125848580251762190972582328649038870587138476432942503776111799440786037118828365138003811746183324733741588413828758565770876128616424684908821878814690443250805805097312007106667472498185632152119163278699164059544544622076368275829418115351259633675357615872004212918988163810351129450539384476283744475734539014477473380281426370120200242775584320268265427496891415774786420248149755462961375773612498568886166245940727876808018224482471538452285862298281096975444806085216228239106379200072071340475905976650983887897476895957294648299693430475867672123135114796811125025081883255348535534806714137881940057273397568684282038286790450170497176045567053122741218191860131452620603320720679976130520804837989979371003484083551101846419703056576177740815781901842780798263477200777853890011662128337587490528270939463520265102303648816673771193371187235816419886890359810303462116926294576177932866138638116516262811947557914424649104381233891545902069762351698808165708805153042541184603556173827803066898650967257273225181564991341767552249535753683756124001300482877031274520783927877052365111255199164395676095245785531567831884824157107692424813385094532251336183428551986345915692861548218065614243948711070912298387330229129740480161392569810497535499662561511698631047699568658290015389754335094633115767625800203372436096167089627641793177887548848274667079068596934104367152424653725503092810205847928571097034985980375863839287054759963659924397285325109007450069109283135274521511349148557584896396213090601707918648584155472640908890405598723709700084853478561022830232349196878850089641886409340176389833653654712141134971348689507913291369919313524260676331424266340320232800761474751634499367944580192840793050392012570139478477806467602120682240641441266025058723108683967376853103948609247868903156158794360997507449321853241688889786053254775919397968714331798071219148276797927114467446220654749913171627606755019326526820669417282489075395578304415872366680681121782125745449144612204530627042580167659078396279301520708924775298879622839568971769509491985867957406335884515793178081254923189776098301663210454508834031480730664106303235062299995232252591895391620127706380497545506087424396988283928711012772948652730915376155982917398945549781992878667113353467484379409888327852183881570842941879690514002801535518269942975658225977063613189008056326134358690830850029760448870073724218368409948626235311505467451029188436502857895262947239208734101631893628345620647157987588004462391334575322968389055150658675881095324440897614960632556592255773350127396954689936533314357637661688777852179589373314792405614327311329568772177784449030219716691009878229367762940203025849431993161254464975591644389698689967352394134947823708592730190431746927532202735910063431932215829476493559217310200095516258844746486672044703459176953724086696257837101107636742870775961536921652543738274243735307203423596144852353754762189939995422786527965812875770722409070028515908439256805431765292980714608511795046820672131930789538870360732891918222272245065829688642037300691473550215008365502157129669527204825010235862095672259137504498948342996448329639332795876412249423236710623872386549662984011565529217243447668515995020542332867258808722056263335622787799726215769586207250941104636157829930931750733117956172592706237411755729316737894097857731867766169290048478191313389487604385519064008758743261301077496844213920858855663789758479672155949264341608972048296966218309108397837261856765755520944588677979391549252218707945357679922152843588658645301553910364258879145719805641488170079693173898523517936012456097297264939409954216641954562466527643014972541715919227766571544335768887309582887914106793227745237743422029831205085296058536547089814102743623210899990823988730435570077942586855131273049426309990426230728218502768967095024204478314336993863148764248792592794658124387664059405078995506235731093060714572458409787445527393157512018461420565683830055131835019293484386144901431152006154864632332045369795703470661555082371783445150402221504537107588284429465872298824246920733345993622949245160798076582801489641085008146341277221249684651238221131725708768051035111687799341868364072855127984966656206805688561485731111552262066042959185014891797133006872474068786575064617826145665856790711647883383440244483100137134038756387716735590857020833368082231116296615445511273415477603346138120015283932639212722160287783251302088555792542928571525930775215329886561875495913552377410052482563612834660687313319086910867954585798482643366373701191881075269260070348857345667804436517824857765142223382911560940111016654547628756413096207216681792420839518845531949760603503105747553792723096286887538777363303968386346553795615264014635110834279370196207291470389542744522866098583750119928853855487159814972915472191260543496778692209834707358660986158617107259538807164173402833449783188464926311160164592159792108895109889670244098582441999063332550406451191269010070926865723826586289167223394804817456396006051294156328093901267915383712272994002542753432799188645392664054332867519154774538121325829604874509823727143642726461272384082249893013859179949389360985918142003396672225091648999331614608051204874566342657912162081512536597335205579763573320847501266449126734027037726953220068242784140832063057624451801996022580018181040374193038776076271546342178787005310185529050674703423858685712253098241070622679348896828403398424979359602217679757324959691487664468327994901973843732046341442547952977015672377497892752244291165604966777996704708778910716288339361157169681053743526977763000187511404180205970457590283902557143595844215658398354458137422073141413792723886814686527907462794579267394460760692711235167466523365371252733115230885508200193174935592841064622506875222136368956089197324364527421222869482711679373397196170228420388896637066504964471804144138628094996259675661111770196905868347954068188739127760950656964705790042487084422225394541213290974138506782653492737966248623711389563323137870468557501461445979446961677306875746575042685804216331862198088534849123054030955096327418077220719143818894252964227282992391496791372076673169814322600718161417409605974563399783345426228251141929456706352857481416590451720035913255543162422624157194137811611695852683673881393015903149743171078786437844253781510708736089940865179848685707245789211501568319514479718744287559317602034843207755226628011609189189509722322221480642916223939996604630615534739101448242950307611124013214627050002878898104236991995425258658187415507474604377080042993098529110827598562848911928869454365387911284310068762469262239984723901584582586723331972872933236828718511805961036227454345828513388452057175089194832462631264352950138562109368160257288587525414974039001962175869157747457688381087198615631805434256569848297792005953849055042504056753444186469524602145543308549764239750702964645942972960766376100659375530977359644847821360903062133739362951805441934277237695673377251112665493122385117474949234346474842323878253220741258210259100996211198082711872989285401120721013260549493353437668287241762097788544762861752854326836212060594810732223973319266919289741723912472818299513566490432134149593045968060537246474201910622161712830074840368920131371180133042126211471493413619827022447981241450649139762148328865814493324434283231578892719611992287532975589001532281116319005913618323654140314942500532070080152883622740177760703712239385947566667734982122687832590436627553259720616018986149995133219803740171176580886278039403410579315060902530363181504881437539558403707584155764820289282982460770073938339915710214797304783114471761469206848812829552755100260375052557263443150571332837148625669986553073384244647421873905731679723792058976752965447545060307657241955071196439795006681097073821851463478034962061512705699187077141756786014143016809854910143469422134088186557568764100801249386423933283885888022361924510682292544663170325336279799175677185230776828670661378211954338405572927486312614919728806194817965552968097670014464572135441329402467457509265559193642951809262207287879922332408722404155148888168943864911960075637251939745480678168046968185467330505951577565137476275191823118874449021489825440746164552454595682730098488024546515208756409439833314184921166795544248775819545602328518412909259705362740797674531711303013337152251815980678892124053756341793166812643842779863814411290185148272558691452082172133188209776680784171579555402544281323485462387726294880748955394416331723996440199113736595055217435518242829416812881676478567483381218872994007772159173008792994383258999468481087769578253072343705180466030365810036836742673832605120493873775664623307392033751864475527653052831674504968367550083601048609345801280679018289759374401098295322882384063623075022077986753348924856858247039051284051105191502822977719384104930349521512092268399141316058623574549715557589921984773900869860623001523831106906496465118676533414872501040099991418930753968691598116062065411834725459685740514454986202801726542656875845765156988132252588204368146505214126132761235284459718483523298930997053791622757371040175353957022624858399557763405031365836772030565555874634429002208947161490884284612118078805300118133325229549010462861949424431513736026737783433592372358953224781522416357693939952627483562670509046311878646752733689177803864954726377102128834922758029799836305645910315472851101900171997714667885388860402241980004903028479451762311763693843137461800518996734159917245641991653194278813668557056952623057930666147928266507835397683541945974269185181531553665265240727975037265567057607930186305052315680117050211837438604701389419734834872211015999173789850946469217629922935598526557541740714383329754159392224844609502170503446064252482927214140321032573202147689317773549797714479523111506412451682054084523862979245371976934844867138017218917614472311561561077138631955044604293478693322065758789404194805355656400563293424179593930710295717213452459580529885571285635272952368637798645134233013411217265928059949646334030669185942557241887743958847583099874910869607937433284440171230695944514078402487301608026434674778528633003827147741660739200289257111673125307720674119001452862717288920007482137546485510464619325958809405754335069534982917072976292110254726684612882199272200570258483110151327459167556254066128919963517538956539685337306526492957899352940275481471220019590687340041035657323013063288928260956080102609891665451169385123280036023746146798113054138836716691687933175839389264863071671174028613217502537074971565479825141096784073575928459310703387034782975332785798764363509094590430012462557840340327326219861212172296154253694423486588555087381670963949372506068535734873733227356326573677881511205411048937461258108306312270923516098242040009971483517863596311668742680268917465294421072232759779149812800939302272648468134664496672802782015355534987790916500275668476525369971934374509866012089301137743793588009235941627841063440499167656160925851644243040794247067648045193543156283854539585714703652776032497701660546108549065624561015802631527116354984779356191711995070063348984856498285992766863563036563869631776298539979739751621897422047784759072404277200324282176746965289192372209312842099495654884891737423056475801361565580767153883271634826986467106336352308376504990400689744316714645147452374156269930953832991824260782144896422237459261477713789182681928694218814978436874929372254582455059168512329888711649992233883459774718084017993049874482368400310971663677499823877728132846879781204654725239675477480622249676169959104831399377712795897134900093131150022416797590643297497629248693850970320443819046475529674196918007768667201032488201179409659377834456102535374361488375044550381410605872244970138447789373578692101129353163170936214355789890381457123309942914055923318937713477254766846571644144818495856816990329276775390437484834625357688294925421253354908518164375298136119694881991457005308917281758227160533008748974475571430493409171207963123701601839018017897468665624980805311039069391603143154565500150656181492801010821677285347394933308692330963175174250074755673403099507194915350362230291698074724372141541385716269437213405743607749412514768053096669087729567337648118893132043772095188693200126693966815451834447378854918318257898837134930334501079880642721502965482775775702050453483907000978793877621146965460600080072072991102506321707262068846160159518204933752742103385448626414680129540599314210248416740236894093483270824666163063373651218825539984614185053483553360136597435580375396991662158283151894574866655515213316841442759584553714364396890735741521674051471180709921279549566121530024052485104032111639359509933466301303661645396039745066528750715956920771789538343104162106776480376162594550476980819878466032794116552589445015604024977659851977157623662798598830521751186104545735456341946263550454939069437971146401863296383230157264803229941186248065003335541957135867274247616911492153780063586816056483295621438178304325117511039232023792543175588285676445002115224975542556490648039692762629350641435661050978521130633066698268703927319832933891797903430615660175634204304756407154520510723658559114339650935596293850480741960181630841841505988347364720654549696565317977527228692883602181252520025031041052729738701139028233218697573871608195961322293517274021947859240601884307397732500224661070907198149012931146577522610118367639134380613332830458715101831169336218868424710388781551962218316361509485470990826141196033174535309658650468637150411373747619169650322396046537033683256694596831058395814849930860843066734602435257979580871015176577214428298184005561932243312140203781678157425264490245185015570384569001135692180178170589796441690199087006243272922444575578904545738587161340782126308048074138307685982106741141452699802013235192969032490987531764415090585031392490909931074307184630172802119578626905804625002181426254217639601824206057807157226601797755738185832363982159432776752056572498440722602167436351488148912499103048666286626820524133585037161076254188398789299117880675881056554406746232368346166342806462189108556186090237701363897710790322588142965036971165674764444900238804004835294105356504837455078197379887914120872215425566556991858652103101411638315669711940706072189881058484082431974575546192733035140322431312794007300869147847725644604710306823462465603892972245271769654956521667125778641889545810855382639176766859621031003056476281303207934554801377433457114660718840722778681384173430530913502775729545935632561572865142457465185021954724666543971242594721079815952750379024967361630473977281281065820412004415276895911962883340771672646340441983148992499856320249090012979270568940449397568197551296686429041129122505004775971947267175209360649740655853802342202842596826490327547000361898786458457262429590956792076230430281512436441165938775547047857947138458199539864835715548951369790425682333339355073798496335850148799751065442563749654239942180104047055946548918273375079373953644743446729204344856085601176462827021056514622612601650069270928532632877503062417966281820051449291026371637552533202163615699405433303921676107326098634032748372507697882152350026292152089525898658739279833140087142483664781400053434821199843763799253529684251073505138134502013149839567067507311456405083065924239029153054525240323182821348311841368809924605769401100430934291749526113805114960555905723616763251108437037562582148212632014553244707390239158156054809916089674894997703671247862211382660703449641335089475328847363304787634210845783288567044949650721135857254268289621073658739821387777218205772154232431700353736877068678601236961141424563671233914317600624410088771509756441817467506788033839218602262488788574130577761849636230493979718806223022028970389715865003350819145264372596682366520156573708817532490303424668948696106679855244157880163621061862112184372601152561732021188719691888808289489123027041313707310107297249451038976817574224062834889210920989533813915383450644007661804916575570095986552134427300113714349597284948184109888707632439121200099524730242423498562668808392582848425892932139244243605837343940919092979049886112609140134662968157403516490649742638774099976706789345597962531491677507871604372968124210091567208074234126301230890287473430755935956364648244399659602212860282713755042425116746466968601033323375351112011240977068226604924868047089812311105011069187219916109411382971287805286630494793012085332022717917030517384007842384711520661177864541154565299969379571751550882302264755093029873404210995632433908393993265923525818293382959124430063556720999434899185308759552350521802702382217510529729007943209842117583196026412693906460232614741203247097908162632134413636412720757620980802882206527472416020454738041223191429984707368645267933137900452978805159437795808571089407713706251248152980548594259665736967005377179738503989544586212781719920814611848168851931811488787516524458373559013695093499264894413318303139995584475372683473976132374672681173757158680666072628553491870014004929843648001562607498427165011384754031516613987004675207511135386106704234103908279468425976631769512016269352604998409761491881836206343967538678855296667577310742970365804834782675415765178195846765894250939533347890710569778848610380089039433049697418786540093630086263874864031300213627236791642655019442232030050205488747438410038432361100279362408470953836477330040611420926206825433481399508426262680427002895417882566618668633044567788835956528771867518860149588933353848536805710158447537602317441696143688541434581529962876214271467339500074023029836073813542414078955985745014604412416318250422908926970318358325099169528864838178188833798662906541629052277137236249540968770174024193800105280750369373661077887440305686993807348915096774970429500052343755983506873841524575769250420574323761847675254167304883664503014224327447489936691249235530140282956551913081479876720568549147047645834536455149257296801286803405542085550186689368205344368831478669505631251684653738941125132999466255070105934553769807061508209495705348916993340647014292840389986038399969612838300178754121443049138519145595727106797566523577602539290457955246802831904607589193801797531444549419514144331184291874358187040829669314712552952286410460747054723253121758736618508287424776603381103903161377234166178072219019488531005094891378327837198401588027104901541191043950742333423312786271346263343155821153558766762259643021937427980046238643788935771990852727926990399828471638638106436432553441104839313518395818472184861143769506931132600829485897415524906350434742504850816308999978353171823479192297247109563010119081247736263508961540718364849167122508123691811994259887347396087332174429224667161820566656321690720059275670078159053123506953668701038469936167120261229810839041470917153672961119234416574843822073838914144967357088850138085936509641773529181446657016247827515639487613418068669609915549701939187756320775074496209292421221139406656579413211763748622468858722587574499570178950581905955848306684910840187571254308466989582309692932924548253459777164309188691324252077889859696744169233277698178785929207833764743646645470830014183466802899554815046091791724064780885247582481362838735561561430131308753624765202298295178270038779988616321668862822153117773452744345390613694827509768404708676825307716772437680652716965034445410821398117795680506980972516359456255972827642423526779962024691938347805985017868997957583878665932156857436450861800989437066352667467164580740833322748110731171530546294906117159397026501284219149720487010546928437448556983645829948609436519011963774266734018121902104303580398158806995823913341396541369270048522882885120114803265408674883669914387976249259398772720359993267309897510160013524018642397843290256924351021040935030748775387590137494743649655146012162139848867581424087230052332887703720949959478216211369096222669925148953418012937939455152047040282365870780867090605278964031568211452743648999271260764805733415283426455159485669488292423548347749576088208194067529347186995602063914054561822259478265650677929809929795928898480523580145333597040909420328781966014735532123405648877218640424834939242082138096437970155863234812787140824923005490682329295423123375353013088363244207501887410645658025034997172435178428807335529453813106215782407580425015527360299744337685413067052756101627528560488418620029605407270110329656731507702084685997710956286405756746001793307147847610380946867133512921190038855065259534072246342146618096547231376978842715667709688789186365082169654267296997738976508790101642438993910540004026447682058773866392716788008251969275117463676146556724472671712159426772518854255494009325078950972626297541279988499930552555522835550562926261775500966001342268446795119045298114165876208141481478942028436958215371910548335051186498093144264618696883547856761114580424863505835366493819679947390314482481131646485382497182784736419425624152803101558024729984439789101493470883614097945118192129299452924607558064027952554614436763067525310066564254209374361817075290610093941003411228199053573405301237836279471251131516655068295580746768659862320752070555464801209688349224847368012082517379727025646509804460066365550222786880055660647982490860063350280576315409271997207207590730204615233978236064817456882881506456704525498939060976358699239781756620413253058386760176384812712215120716808120090064531495232308173531885262992309472267863971034395038915151509348301110356855549522309811036032429179626025854811624325462202251619480385658158956215549267818940483881212502308513029696077114702547662222360978534614837581963329045127679006532102647683240018331570438948183772499546960974620952972154213273252226679209469801237880100832460279167509552931586454891459884198470434216710962648820885158271945598295917803233150347244319317071691344450454781407262452994604708654771176459777071739905699979719056478046960796526099983181240554590118777843015336295455737407943225102268733059968250627749645003380761391755841341376339198873119906710686397958422185974098745746670687781910901524378609849270722339769344193557278074655214179896464153988264998097961195150086396762505055392209535601598383881807634829826444175792493988136344907513098997430871819462917518567320811762253734286757554478352771747467096342657525713209435499199618134423976267066435063632120755026102105991495580347108854875525282826322971131441081292572010926159978749980950429918092151662290731951971747187575542152030110870868394819017701788006239638758515849348157442344803018463485247934542762399106501629334811405021351687877614481727967664333438017095003264079113532537671215908419252116981980848862106665270288796363467038808246800665075570859080373280011720201775556275707298079016715808543935138285784171880361226571404264982658949197034526752126072863986305615246804165368994634746534951010250959786449119774947209629740517252500910461852720531277991221031813851553767023736767972473689250097810324416086445513986075485893598657937932627031386851437958128846025926889810862155089750298460899496742701093515766299200471747100882080153359743740881768253777345730478384326696584771327639433979888286653937245850657881458863111120664345155864271519297867917657558499612208447837955068397458058916218640485941318298364182257574577179176681967347990613814293586080753180645590719691057792325094063238879372265215141343336379213020458802795479024796317256922892649995946262399636832868925651647101286931171455910878534663550760916469945942932300123108580948771666313693293911252137497042065340002058754543792398274005541999883997357739150253952549209499378473692011496516237624671505685720548821913391519889278688883686352609465502948339295347769285685375900924958478476543819972967317314747573944497768405124244554321692556766707604624936305547164693637311596032261233050620973793160105277953340885910867911784138504333399203659986913898765709279561313618717926716954125553912110784845099258954372238517741327953656058047351029830072885655729238613657275856493272136633374423012788129150511720581947983898206344849870677423906568197739364803051076756345161225509302442800350195812851220262506880304929574643943486909787743088119035368421880422681506988235935006240511158955665594327096445688313481604413712132797627882300461131190566707561484313655898624998327490646403894197527844908583517187439211165427779852093205991586405421232416434407685604365690448154688914761280689264043273919437624725802284540019372773324629738000026190497671132912477612367207050131152672131468425311249821510501146226511812486536408122416931880914621727951317400769551970830781649157052131731370580471976238818489871001859668032073780809817601395855671936589853377964019230584216878377444434158869156362483428277509375627420785856647751141772414629219572669115150084152527881416734435292681142968397928338499299966533861572065076761536947547662643479932163200127516528856032944008319303415909722824143988678289368657372751812923455264728868293640099863020310282794941841323327280787501741223627693021291760807165082776952824700374683373282298871809336211881846911961270790062451209212056966575834211805319452274576187370143511238821443114569314448431800747840151267213524839965172277440254721073904033498054315602327390057850081428131755092497743965607460740052333549673798146554213044864765755892127154353166265299573920168117567443429268612632847448673138427893853379382516331292744435757807106549285502746804323098405506506301116450342949536163059714467692207739695138854476899988928429610506027792858737324789848537894233346649516648810837691364257544381553781080946302044973491061519647469423278786979384772806130542176566839420829391242191437306432757661019755970717103739647012847596352056524246311013557526302408460871729477218757868723576477135733120177187803230432557980454446078304976680923526598815457620549865788382984534471967626544550926162541651870149836555741856677402394329596525105326586958106210434846141324471205175385981899156949819177887419903935892997147694479848080999528197145580829829568417772957559599153694870765478761052515518887473780965996876935805574541035754587380836933831130386095532204171981724940047487690348204779656524631646671705086446445628491729413673732238620879703061152754206559519747776854860392832467211496322842730520898449083778351795365893215013364122463859295850475016944820092132604029259227579466361036887459915144805521593289542616486518213115513405416710694754486959416777654159025822780044464145859270252699292141081268366611760521090571732165758103124007864823229255594697737882171951654226383244964819434303525556037970457641106558088744816032205287039321825905251908291392172718418150080223181219821752698849824955687649218164216130896431538598057779664112188136369011256143804157716465659028373238154511617444683124008635922910891473910776555276476475070498837010888955672203806955500848325960446348071026297748828591898876646495424437810935941095329280265675083979216395332247372669361758870446882580402007516283892274933725944654387707036417732426233028037932169120395741291197580182221370467532122570662459020198330597708801459564753187960849392215753365392412510977926821602909141874874473296321436881590228104931429856662783168961722372200339724735285461186114737963559971394966348743918494303194241517985731811356534219666851682163775696352708805662154384812950944179569104832814162052442861174777610905932913984862296244198985325025557287227690503312298349801298503187466696650594437613374098554420180992252772832713228864934034017447277884338567981912040670699240822923402896204734232089681743636537626931800221462480279080938829546278185379021763331235699613269661681419681635037215162308055013530199274139166861974535070247279717716646648447685569805332229779262199119889563934205486095803453874572081263189563991137805455065427573038754220198143954506785476877150327437232429115827571994936223711813302105552724323004341641469794643057943949348260054143747794339919458542842268232449372140226146151357678721651231768613751085121139640946457899286694539334971254291478946395783575573451553824564082492045197562799391339792658166652764602590450334416800056995130904394539373521191722914379319593784930897488013772591841262760227838542023635505483741998620984842898795520052237678311250362518729182034645801940425184830373464739886954525922681120245497362560673011029318711533465920766797400547335561231056844457818400050549200867484093141322893376221060976508621524029336682418556988838922873215340500316863583815263276830240081307884434585490517319178367936089312206955905899047407028840823135759479547511225819146246273419308499609606035212420777175099769538674385698775490866437320201853058148292071289333580826544253225319885934212523975659353497844298707379374894908598222036751092431671874854077104833758496053964744234390958930260848132158470583486751971628262303263053285706183175042968612608030220718130075136606461820795738493662371909184185754530206762006674177485707489371954072530242266891938386659155294848173035245389435908504724298196353441280128498286453777215921038491333989920172078745510071809985670766010690718461515732170129905119924028378058884561504075123684854253290237755082309021383053346133638335104479522368471549740386370712101541281884076449112139817551743033541125585981244820627986361383676543083018340208612755773530169642226577721705697280302935492174634489103693907991324405707055891109631946277097386511458445322095387073064016327524694825862988467993293548872639447207699274500825465684007809552147608274674219411666383772909435181800770414395697281955838559506019346822457605732752421516833139911526652766106165130597552029054782796104566301104890189307647136464344168847339586729527084137055778286472430159979660734391042266043378447868907054605953715990447737399351367293669352338717402593635992712564918765860579610414251241537788008256517484787330255600965136366549804834553934658004778396580466886765899856487640073741647401285299328532731015969025938719466343988752061957660631547511321862764684557566273330898061970540415882001045055578583075477305198896055698651353518954222459632306932616557913696989177586149405852155300276210663945385540728218990543485294778626240526324679074317713385665779719278148863691272531928903280366839335066178290687443736667125989619615049019807771466269324993997338210603280271893915226448591352753341480859087891398147668128903111158115497337620113111831474127940638830422360829318810404273347990770743311634383383130439222790529320219504723177942117021463746071223022411865771022606935410227527740769131177901437853827124233266883283001578190408843189085600517773490136415483455369383519153704494727297770654181670666391458278957285426280265186284621508190356543078835188203909823473470574293824664408937017570490747669520191673842037528158817584229702221783240297594808346891775469915752921643672591221670639934379985741431836104796118591712242277190162192037999097655636882233115499016189201249092723885164063220513451966565401916396986636448672226202104505714307048325148705030630992702735602682700080795413083602016797853346993383999685258887289657374888351178129524874662088688675603562177983606609020054204415263192432116050772268459085613079925712557832601721171133892160678380426096871872758402915695190512925854569121521260509162156439718171152954966072154448546251827465680110487923835016673148713601550762802760335706488226365928935733830609647987749680385262781032116432527023135113052720463749592068135010326613868899558198449489381460657462293848724698312314075228382582590305095246435629820927036295501364787962342867184957634771249416105998379338157537821409984601342855144014752593926373628991616380918786759611122501738385778033495976978144167559678017502215282596842298349611618261674285939796623500674641375147841650941843589187778731035284863288587556417001219663758068325254874538284205059487712633404925230883315035424712236884353773338665007044891560009548154568074722974471046554237805632761032403812350996716501056375256630699206498572523806449895968895182500624230883086676616642695152230397162535407999869762581547446308952380600788631742652114614142149942329534642269566352386802859977176210946174575048159303437852315688733379899919180432883745723735193486060061314810798796128310862496328505989305234531348012565791806629715210180749185016254204753043907809319720331350017753186218488600049735972022148004854434111253858129368669666918325158750300017408315677472841059929392178984611006097899807859370968508348737125205667520978298226344144110190556093280131274314643445026978618398929535662628350730215740152542508300441027244491484049023339703675378037123346571902986115374017856892989945895625295836534582151651468675123296213607972716380034763416200900638170162706860761612901345578908089176353746732984468840043930427431681754047840379296559537547186303163603150236815483946489609673128939848248607144339263606991982322064717415710186108675027274316079103445584580735642228722758957438595021031056064738334726130409437861603752563392740176363037637450545788247407817773523381667260108405183323691957952297559804114538482569943016750393560789840275927144852356442222325359221007656639549733539602633095999356482140324756506783699569781239266932265695356016338986530215719305728690569842077788320791409494503892276555298473704916531683786601808073043230636561979158355396676923930188548899214552653177695284981125834856383996124906196768771475656036303343278688975567813965840181706607321500885112785990853036885087796877198670344420672464958273966660090634200165061381294387606548092746326192038907306848368615025873012941121182764028586296043218421869917246430727956614990025349416341009829787209415731770558982856031129994220791750386329325999420375802155472765601778369873308962006329682634698977800704829741442367238744474360380188960700974856961288122854969385185941811656176758911330878381575220064043805309578460717660041735400305616931361330508450394109108733791032494778804855933278628311302514203021928149582275285482351567858613511952479247827980901613461086233297894534801111417952056356776303497157385832796068778511469424533956380057539658300262200786714615590649044081719996898033331838810905844894841709019389145929037164718431273446500017875401888271021486739921148047434147347932817787273245995625534265913563110967856509626879644406840986376388116683796066744009135246291180702752789239785777606846381105465153643988121960122010243374447749397600935001185437138114443130431269429972623163738142686599040169915930531374833327924021231199103144094370491989827587787827369078761794070111283264419250282326292558046276392570873599069069733950006222644698774760402715511056726255924068987248381911305075093867782524973220202304362693122309451097103837303856442748653781419283500908903034454783871892200367817306303741535377971728183634138452604579756733220034441851403601721054590612039135457076071246614109190851051121401691392219090497563498921114693528765523547618372750414646482945366115839464851342807483389492681143813536309527938754286464896939271095292763160829806735557103187434181132275827624009880573682589032614671215780650217787576147099588422317003233621246137533968168784761328850609256562520450250442879234296482733309279796566069092971734435824020947491904266723471350563694932506609405326472540668609053876497423449062474428763899147220010507309949101895780627334250386730286203661190549575839817857228264485989020824763944074420367762941480381130280961549796635561145899793131204867111615878526295691850077849260661594907900121266974346665115111351140352260733565796937655576359522925819216611748748922432278904274242336298204428010481165394023614706232254978256414465917772361130230853755316353286732127016489634325970686668173121939715661006199508239402654465512902617868512379542480545614799449874306104030524708235382871119818593690323929723007854638449634363760352612283178130971972299641300976177607232264443278196975809977116847073409409051650157047962746467683887392641948026551606538837779507817247595112792960587082469750206385828510175479021249835165521643037567763292240968338372401399872888616718263540861283191769295184483620886217830792372336301959693414689948851559633471996527757589193039674924340364136115605071607639412994562921945945645607583017901559659567358751727396190103345226987402899344247505954510463982823365225722173372676734313261606038974429850150612481333199759166489429260506336573552927622663533940453561575476379998013178375533075644246391511468979829484023346798073918207520286136435444167193970662237626163064058203202911621182853944290404322603523031559882212573456033627096672349046137722317755390340234670202834384956747795173401927943314246418721909336955216555110655220411060512938983994778303130902328066272245039397348533861416826744281301957807566912892908853789579714751265624602021317817377175402813855628081164881074816074167990948041503302292500952958171211204708708919556596274253542724664560094763209506382189008206443994016805310309883923358427886463316599936130293713180812431750612925627987642179359287585770062082706057861361170385546356318375480248422540392491213427733074711766106192342118255694624794262672362265410830246047291777622839086560287756873455494421674823875311023116400486700933319290431221634881859044391522214620786229569879814904137810718206066799766754159311967317241783587673038010928785776339764097888277589897299954352502989430955566862783575648579136142351492221871851514448327631821492338020614681544487242242457421450184664028087473636376469180528416351141752671870691147786153400740055369955831251322326840201486389849916570026119999895265563156340610132250052662137400637430586557223378622524677372959640920851283283969300281038741875941648800785347779194718152578274709761178342986892096095376193889643836650736302434296493710117993947137926782898568070706714269863401723283526317409393055990705855420368025357324336905614581763775360843133106700034073193732460469121545845861182894839635280184695429273471722512803020386174654593531956876980571152761008130104922500894070850725599295032096384557810105055638784929465687870396490358587282981004136511110636430150342766840053201609685123743087353959506687727221884051821812421153100505166682479077442310019899195275460760150593636002127116852688849265669867397353713984526884035732485873398557083871023176934372434592908760794943708909276770834482893839040602302077455445993944707827597709271741512992489590676997611214552653412422375527847583076352075626800870190422902610310223354756911242604552348799954912065394361425198645836088919819276350180703080866973678942902007886347871528146184404202835071960798399624571133610156396123194354412262944028349437697654046120500136195934018292415941584721106602133962408810495188461348510847350936847184935217221754336067357241940208945487970715919446114804453811616546939078778758087981886641266923289681453399261393337358362500008348720184085787708151691642550186604558636494985733031930941621454979585719079826330555549824499706382627127829753416745169712289743671289785136372081952310600058162200815256210402708958876127966620947953056353332783319335526832725838680060286421445943745209777818450855222742450568819502531783867765810625603525468875179133768096367415796755162402348670702088950216901044021872313357627515096365946879872102757934687766416749461825817717530655201222668670149247050639504132600036287152939413004983475277222281049224023297286172352743664930843213168870262436762178273190861695319000980685616965404784084956299706085148193449417196780350229157133357580309914376204287054020859971423639956874968365122289802839224470059861300355073482552692134121135471765914351931744799836650499834258188891583318380192410045787196607872543470263908354906989803599179834115800115298485354354693502450107741147519319613308923288940309351313572358286759969242670332088805425780336240041134307676788634179358823689633286330125663401736096584822579530264518368956447771620471307056590776414855617678934555939444758297101635852547232407679112373697064483918267296885435809734834766888585987631791549650192089993373352749069634436458701148184797870721227936732000017709385948378915643259552182729392350080179259018470173527047164235678854905967743214929269394694590993942725315041061854721545529926956010371164027026284909106822120254378669179276282231208035675757601981746310377192739476064260331952091810804154511713708141490270631376541351642230807938639827067820226988998836787166961905969158134750084537991488029389026837118333033627413555742930958953264529834325451649269927046847396078736311277878580323223203589823908205531842637730392458413519685345182840292158865731648940783126947608701509578144131271396725465087637281874746791157318457111617747128259435087413901797296218483343947720230588730908227531649957250999220480791773205618003634623753432838885228327485955390781421271807028636828452760266903180852081643129502091784731173314031082588876802520477228691685226429114294486243710319737348761428763432128174657860894509984646424125333334690892610535552480517952269585080722887945902797340586692423265854824203445912337842908387283794493554470074983923188852098093144896121225239321082161439571661245335925108148130020959778678450838378709154691551355358135226919495830622035077122195422079412371385457584020503109225484637369040994202822141215000451929462095201644819448541626417995868140919204986383274246597619040702756242690470982289228428695713783546940078140319942904488785933666716884293813829502132380078075608080690231101054118301748255840415596008991986998769487547711835064987053577899683220094402408089836206334001271384296243769732366590673401865597852701771745509444584890951829245809854776468641987293035175428750404731758937668801543135409765270750864692605810480511923411083043811224033089200670158284561547260514517291075598033581460704862355398614664819568237282190490453691978526552665346950444354640168623855526739642501705158260329337782997582247787774780359978715332537259658185598155288674663319710697225315858058859074266345374568333057660950088710638201964345178855698940173273922521933468156126183543071758419145409057211724061197044187140933298467863294038125188167022791247838009108250053530280133527026368226206963801852342868823424968097545997220704494920390805691874127292777940760003575406608895831051449989797783158401905665303718642531723310543724797576471059310497025288849957411160362318214967981313350372771920220914298938520322922945232202277854759530186203966812725870931286875402477281593449830025053156478256445442012448008641419588022431608949936198465857843911686214199445952546741698263706817712937455426732325016472738803645747925222176093220376840912966081968685402772577836199707876362759359617303502824483260261797163524294693941984345394466194493989988010474943662483155119140071048859071032284454924156361078757695216760754842972869748638526395229981640751960958906196364458459217701208324136936265277339720329234211992177722775786634593631414118593997947218181100297345430007386241006348513798598134386480348224970942541246760260423442817717519677715902321195987603915285743149020756387773459320211572724999897379257819148732646197834677780379909261885348204877844017848216471809869441221293441551560579510615149413356414031726180337520273189892410270703754813104895907444670460450181648916860333866194369001271402457106817971328636449600156419031719755412846410420820574994517544912421624491135560129781169039628296584886966621514928288682538189792766455457567288301034118299977076385423679868024382410746392142488586080236653612207811774358498933723428113039876594401361009041115729458665426390694300359915203887412878013169916961978328855662625336976912280159567094082298485312547277984770070797594272248660040724538007334386880424207122112328850079262596660513734950379757248337310363479128642342573936588866048173045830367275641289175776287755169576189855784648755541819185648513569138705103520356987144239820934160173021026946244278326358864710434537805458108531182018949850862510805491204146788905210593113576112184613019049766337988026713584568316011416469572140894119498083124492521897361563743813485271084861415032698626111887711093751179765755027035082046799957366016928106503604676595389759446915743101101854221084333988215121168563193485734550058557402521178033819236112889778901993181841286250885123393814483453186642686867719858027766658553421934601328390781958777472741477389218855748968155546003418720709148541490684250771589320565783870589820367681242788408118202489907366975887886492657574533352631243543453188525056065759104537944572730656791139093896093161342462408085344496380935410280940581103804666789399264207421026788519785892826717135153473792858670543934989890740705279334600326426223974624764233109671974116308176199064419082642638560718223098997014269036418004995896268161759184789391556161870807816492911338199546375708858340287602632541783468393634470633860432936356783029407222893185998708901652711746448674327149665541063152938402751404616868432928081982068068493000363743208300272539707140782823240530982283769880390357681953992859067891754196236303251937480085669866011849434011228034535111946491849349302815060662826498928552269594978833146966653987407591094812245175167209670738397880849994388938072974537916042531718319376908542317967155537650163475790532990908429888786534588842997274439856134072648355767042412529076179536083629335971817380681003485335916366848314336723523683953740088879030953401549308773536446749790944618718722143264973143989370374366675855995126431299883500422679610012051300874911343288932819805825219577920236720432238214874686856304766951047923486851915123984814821384945657172958250866022664526173681106959619738157208129411673914491607208348182848577249104673468068261104600293443383886404465792590259148749719583131286526337978190564572199342270339109072455448202604987469223187879035838846731796016273907907661261771681666009498980324033424701963955907734330935717761790603721833844518336208421844960433735100103039912456475140165938425311138580915994162484729992862090664302400583875521470405018000785232091353456274964919532487355245965845679305206696979386718043327883578457395114099264144279583344297940084594812731661849114807827482207968644043021081488096320923770722174999330236988866041929958657095604468626183049162050555139465758024372638995168633958368784213064756546056516547036349908725014002071708565331486266293560646820094318107774419323458995443737201811044991555918464127811816099447958028955291472755772596938621942896959272006416089585961667747259033873363751539571478305576974091745577283506309979347553661634690819395715911489165690804359830016546707636778829240011023400248069366956205236653364669665468058577210638261228512538612569533924970834834808190727905708726394825638160868963873250405000161977354837023419303372149678643277188040422201975736159898964046464706159850305221152900322612603033330484684223398977582750384912959434971943012388397037756115444417413827908008950216323916865237605473582155399721332097972741569622878823455739537560641397111854109621832605109001737712395366566834940392210568087007818708923716313435948037448274914678600835072912115835170910081312199336106894891144592624075084652645569086287893865151520474264036212119026975200764134210226723997651666598770819035199813111578833788027082650728242246945653239428053701693121438323202905075516508437404905460984748783638422651025006881073143563250134141240752107178181288719302316105539276778052774337741971571290029191887720539573132578867831184721880540411123693579371425530928608062778699612765649676472331820089191107913331607481110158299863978260212445079131808501201761084918964078075285843961375443277257684216254198616767928587741100329559896177506388615544259267730464400921597193447138334077429745483045942978178947296987652112402641534396025311277101814968443789240998461326537251417083321449551924652869567166001964705452636019201810669898763365072668333669439202943813205854596997590105861467792488752225300589080885867853091282591610145447661150002078763953414461147319167235651331702862303843661715182225200578356039369624975353489048514567663356009155682156709461939642359032382127489915493600226540978914039339684123406493075796875493178459891650843995154402691880352495627170476176128630089626252745090805952001059154244208110420582695378332337298675536847013569616619249743772448149442786898780316654841934936368239948609566189514798149328747040064192610832753895976467258978237106963148839022684555665921301849264057784358746378407039081374928641927647637149315189922657924581763596215800676310797404826923934156703564840213173253563008169094356957304670305781779589130250495432848177440250099795283991302310130734124305269176224544597466758069126551396919714921083272368014477790283072479639284993996676428095594922819762612520641009170237156852465627247438104822297038758926370885948573313077865655023781005397787830982863724340598150857944580289395620315290976873882382355414552339304845943372341232809998986735535752309905381147347588126837710590755758968240603846817551521271481346288545797829425591953619076823967683563431920925473983909331109528328251267596255892918448468946653126674319821266255930644423706087146231651226739964965965633957804949007003850658763196804372034884247922468800658641461459744426733076927000322867330865950130270901513170675760612017212223367631093833027078251331779211471989650938853915780534296118687858466665587103658094715789219842205806860813911479794500512478684400383334675138004107580980188526675190997168078355048033697785919937582214920721025269525421865069360270995403254842635275184242335264237928973081857590018833196223527236357534179540671396311967255885039849795651706125598813136667947723286724341466081572216036165327177132379081699916446630582736940842594644226687219107429252404427379379302608823198455691621257845174491318234048735938158656808786826000445969313384179624320051702894900036216261499339412721452035529148892341752687563912290211462904808330677285217044571488215515795576654314368765935058428383817654488233972423303807479655480471717642089331456943356890995227964333015560197259276647230085600559278211719815468467055761204715174917403983688028940036891372673600845081409322501483270065350760229055604955012577070366292720837215267516811377734406949298771363455591510666003215790072426466241051111977253924286418462782930816300742449204123310794059369267656292847456903276924534834643384370882576526296360599486977644271480951479622291079185117143016339860839198961007458520867353565242894969206213255844326068567424680767829877143422076253028024035201429271799744794541323269456731450257133973816519206949276966721210157566895605638493561251757493564593104180956726093696009455446637803408313931013305903478416333667827284461010208900573685402436588699686880376784801243213090742984704591231600835117234248654078466717722307979273675026774557385023885506487244545960231006987929207115346516686953637282276125851949318347902337799883293913467540544222077614570583706647256339942427752739457856897144330307646294836411936180883048220103132783480829145170825662960944251673042297937103094839876767558215326914397093835952265972779563702440205349584883935334746937432424189066322218729106107335126169074210771060035837089904179181939350727780619227128093549102445922818831381090389036791943201054446171313134783383461153785109921432232667435876137183848580127044439843780172229642037905551431872203561010841303400260834706919516216924641364514086855777058821760162899544000475000744087513294820311705423164732453248334308671514359903922961794817606525317539810954794463725844847446058859130128480962997085388394119653014987319377117512948813745967041906835818823767958716879467349628139993618153215689245655895064423436456698517438557852503374025737543533305035513550741650136311546377698699415245281789281993830384869308724373149696344696607392759242264984667491733851623769463376688270172527983616847289568607387663703330308030218398789281308218482122301304089188693580314622765200986472280594120237679882931617646463855949449608431371841588621251901948466797430768338716468400862986683513719070661346459030582471694248721459835861509766871038874051813799785873342746443112041211011820671205775487183939260178084296982475910265775447006533546629520728644929720765186187597462801294183332411873357041986611163857128521594726196171101591078948885090420816621327318799302273688355893723696252552918001407896273045473205616280526996401805191694715454884068141589918830256810913686575180839893451197220663646211167146849331549148551228299195207876054399765849048501781890776507608732348106076128060792432878937951115018673812671786741197491790582830697845703848368553398580249124835255257119568600507359139257143801921294486723720635569588488617448127587225822342919151210196513659036412258052167417774788735648519809806600178628047006124619264974178519157565019929952699036945728563204554424307322554081288971114947261204274750121575891588555011963628134165344380828963488101476755292489981112650858005097575190055689536942639699483550464853904349673066469734660062860311011305280615910283472705678997160154633707073964747091524538848381665806740882386073003907533229799128322672754290937478905438060670823918994588663104039972605430759771626356146920427606179233581609035719947581347239231181158970961362141632340808910236662960759898467838915080758004334601213353923509970624064153651771185342842244572951531330736283723118580249203894276955895855423568333662331604582219469567258829183758471746736104206759396420946524317466776963401937111864253697246857196881368101173145928685298496565830199782248404132384535264460034213451367431614430497949389080161226544085806281185677105742552632349987441972072098566489951000785866957613118107758513927103792762482961749474314361730448875006126242607195980939243256449661613182136526625962255305563099911862285800995626155395494032706743918597316265443809934624951769552691000131422219321734558848732412776601098088481847905575027656371211014991609189037905534600914390674502541669664797345426287449031576346496268697925136371974610002040791143733867437630579487094318644785594417955264776888168204449650311613405869650675104930000243188305152801162173750392874879324822098776852426723787779117222396048351891725935750742009743457067316560499284270489931933278030195716515531504193572751832129471004043268891310481737215058136002550335461205644408220272625580006801132682189947029121867570840682546470403201876435551597245021442170453180569651777870381504325968710999209892112935946038500490114360614509661440767967070777374555444335411516579224328251833490827444103216421423129824236637376403703676570920509379119090893067378779365205332112508345158297477382284146701398669045384250595767712729720732495699040027809809897619755785406283821125609084590847865231111663670793842147899147977914271652263785489915052594945327812532448005784093932495308151016484364179366784620586821709695248991875848092639535221362726021959662964084391833149368063028341497001206141780131755606882576954921635851794744906242499793059910057586832543845129250626866122090302521270089256045239279407833907106847039387470527510505326357983619385130109114851208814358307866104698547173114604228668432740680138982407816469143877674025592253186937656572078575249417119444110853467730604147131468350647477609246312660660476561224038375262832013104067775094101653043424102369127557154379204339810844624173432037588419388439476846774334539595650689221557147253815927088750351997278174748021388263803244010639326690283258641185660768784180748325418054352829147392079556068535113374110088947808704435328382925909210471216746044055363656170951855616656785926081770766346715823335794651076319988172448099188904796027797743734594337650499876195036447141145236377210106321032062799932555326806237434342906044791055186608729646000926394897421649182441838905286953673352519023094238144796612823001845155780247792335973936907033064254015923468619947487276929671267634959324449900633586882046672463002509756927562295058789048888923772286088505001118076881146050881740484167019934559588008243572695060111796854287959508570503099474182623389068680061367504670693539140730692513702452733368066369463910966247083524225924609249706385637374041290845392758093157069754979750359773502604491409278522882055384838166368220824739100506749007906085521479486893069116921420129564412530300161961475292086364891568965672944212956776504545423833770730814313865087504798490359502350335010704063969041136370171719414496644077885851504338080699183182786962816431437798765026262385797121617686453230511001941583115017831308365002357282625414884889073456178539813754892300188295376228885030193608904656565142599940316816076877805135890197710367325403853509604333119594263589975391138717363620388394316221736714114821905354660674489596700439609662654172372939118111104034813511051565325296621837152455555099806013544945107470565689794833355648825820434966118694532457326421222164054226744313638563626897917660541613095883587134350196357293027788109844377349645151250160991572090282508370887630746777120998279852755407789141732383884701811280976441623362015972008669991232949774154956502124577008896511823173469718351067389506940825489787372170980917223280147496611351720291775629928483353956282897089560223966821302286708360223561298305022116923207880689704681095207991289420453053828146547470112433721190115939235463841217993204702069869546373855723141310237027630948913573726201576111787772601316614370081289479552453024423729564376711100082386542647957565285135836922754345765889800599104825591247234726799909357931327488318533386021315369055143419607163136643977830263838102617929689013035692202781445463710027137227992984053783624954584311744823034832066512612161265410317727474517930091753886153181415472761223589633320307628097116522894478387177871996842026482231262322595212286730519505207520633109951873656821270453579182006659837021091382572200038380425847495964680072938265034411469226071012785614288577057675819779443663613606871948662885509345490053741568274159759120441924632150317955071275716790042147407117198373097110028930040945343228010553391246190652213997089205084440785149371425933889660607410454767602619365652105985283773511141575574106422518616027416825317950299835504450485236384905910454190795991320062503343902489436982126449581651060161988127561376324899011448438655852366708946237119512687765456931819176231967604108233895461917540192322673064075714558284377080540105177967445791006243315885187267332638854943634453882960449595231435586714489007359291701840615729691119515448050790323397380595856236674339244799442614312362410029109726181160145235983297758029486770137234231681589051882960598121335683671160842091045427872775692913042397766727119714402200233635059051565831617854693698861614204160764639163964059475977988851733490953216626460404685522644189119159304329858832955978523862519391749750314366805147374377748668724708240164090569693392571796291325220490718648589123141378022679466304109084710900266855328299366637859735436337919898792526836383708943211547073389334760556519009793115194041906223910956495366516077264697730708040855421561289337289993415591350628741391458380706652456642658835586854905785669798164708403695840296844745742787373552851597999719604939614334960734350786147673781667007965742615819706168423952660566997216483758801609129532680991272616297270467919895099515985322330070432977889639596152161074180107191819575071138757303745859702912916931951912553265227484991759291988039034582539807216621168204466329697896976366275238787990130337100951890813559508293396872949376857799937466739464495862550210047750590236047157813234333636208251470979567740014761559377239707630342135590960663590413351143783955154608852607356013828000426682201869801495584482679946143734144283350128590731636722489407375930232275498058143779061037688954259142095059504125232491101256212924986976178296891968710870481997147461125628615299289900164633013907579421116090427099162774395103831442828280311073489510915380026084562930846216904013959212168159757938079826162303672018093971450764265663387708371887341582296343795352365574446194079917028642512012706608557525939227039061513940313039693718180006641783269384255090779084226772564430889114718612311783326436267719682721664355192042579389680102712539051542535423415981683551368169767601629986941476879834707763298945078321586495295443022321871559394793348188775095858710284710153551842431353955171167008448358020057594100190271497430552717545914645229404247779343808978230940367464869708359462450256246290772154946213753294458073928764198416347742124046134474815258529302412440218508985706141921342228100279727546476817176962420920521083472487518897375469420541599633765064836880476535382321886574540104496685094799425890118278490406370731719910194690503917358000500084347005546433802232080415996003512065492652982235913856082190903940906887515886743964445480012483827228454441939560179035331137258749220491037589810936014786882229085027136624714249736745073847633179077230338339572373843395587158536268078035994028190259854148289238003067097165396849159071795749390645281880090946301007223082919067892659337774329012704478637138479389811284584057154912869280963958841402256856046106763072205308526254848168956266065983562261571975743428839306067356136875524065190980989588368498613822686459533687771255205661921198537675805368925191947811572191031773508808621422843629033836538032357277455465192756949299317256238661713603718580263946713440774566140028091029416189872809614641968026982089629423728243124493051216677733097572082622912432724679037811021261717897982915792168379135450218369003199256401989123012121275077825538923915361617426773981701047887939276491432395681309272360602094519725197517824828944504928702784521347787146661873727009401612470540900194864196847807720101851089657541138957895821866358702267588075412289371869217463513315377948555648615417934029893531480504056202627810722021701595157847401590472688463750181121150678152233394444034184283145871008547358833102665779427439849832564806209643629131159658065896364092730025689561388209837585925951545448168578521433238120968375440742636758746883124017761137849734932996837807647063940066729650868709332676829397826645869497091748923521832432122023500747878623628497026913671095480126777943525211103940457805073597976163175072769380403843157593915892846353430600161933682017390052210888745170442747341475468370898408359187033721376023635259541799594939179145399391166145080024007522364719481510200629593702072849626201099352617561792245835966076499309937286415164514943967212521374989588554686096770937894926592335623314004824460756143237932690296931532072699544024753295726635205523792694979494352542450388466427218636810606615532185843458145925193436816776885135716833947629159234860854862988091984184599591746191974774938174113364837313786418920981093266267667429314522022328367474627849203129761291310267914312957493213228227375789417879243875674897346647216585208281967858858280334705857738936284543126909156595496843020213678163631151013150158035645351031114353627124859083266252781093220374533288609268781024036410493562320637455258874992282495018109575318314886279590709425924781638238475420380761762335212822618860674621540493794795392223851167930251952829044109027105040153637508080869792862858379249497067520805406539205094632276446385668879672104713568571015114937309330873128964020121961229426038157534160559177637929685699668984050578388990792299254810696009307447412675858200992205989544451131291161200165929830972008082311894267592743838459227062383274612178399161408613546094137657550679931115481075200739454634808439847248185658027319374982782509644687029878584563161197118480143557527451398736225657284958435663538653335117502958204372322229275853787936900508780258944019640477587486818468988836653897650128828025880988224049613344454358473141426638741236667112625441815047037443089271146878986782868412142422731167767281173375578749635391933214018616460144840407601010727188885727887623319415328639183632057455631697521785486070455223748099070694990672157537998819796809630147545784455461545555530959470390073276337300947698885018064107348730480546581593622339877658612879659281093748821734809906805046321610230087887180103632836598184166060053326285851115445459134400401631732089217641932211426607417952166894305393714151092249060346880248596200357743788089507747794857119503745447735657158673614500622164134013056100249712091582391016132915936098739228700047108691497527588667325904365727413063041802498170657736086292971544418418029147996822513366928479511006233814809415190475699516036307397388295924358141600331183751709944312326943720266554439004081595376452249284408865358040019569544747537828901173935214343934211623888980949287950407987846323857944831764306343789192836547955531761689501444257729943259496444983005362702543557360015406112427875160179961022817951094590428302971269584092400371254302122644433095965388845174431810159790726926190699153980153463787463236277179858533967804257520695750849226171818361520377173301002406917588859941100330025065434616610232400529259372528663320586252598405237755931780006035280051002406383133400423358847252908116659953659396177813493486658283348428218509303468830290541621891521104046603210100161731168457499306682505716377931549562187340153678391546506721318263870653523885105923435683887197756083078241299479889627012719495920447840963784251143082100774374663123782229471918907052492637052024993684147659014466321941668499756206100982457597112033280832364062735613279672570337073030514063553018264384477869133743942512219628358907037823240410507477810167829117595180206520414686181931233134974400127788983243353005065191278413550703501767232470227721329474919910005260310085754254061060797543119345039419080460359230963056510913239363451969440220932036858541146634325278125118114777381708257792978672830695385673610521109137015846635817991821342664400948898045527148235640056888319782044988277397334967834942510814346981462085234932150407763212710527012921294775240288308554913371584842680837838916232354239431743562745456757457520465884226857037120837174014385374672730199923056507434797880104601597928156486549697088033710377649628973544087377784558767799074636201279329973308145407908021033272477087554212266308588446236052962043230284867044204124197603958827363203201154254989568429936725143668991839176500445038152779699396310540634717308418016393175589800472752717690855962283392510851189551408400278117466744576054469129050624213574668382728872956889092088591735048538594001412868941717095770424699531101380493757910136296337681843979742431443399258657396393282275187488799799920619513037688674784248925065194778579178086662695371751728963250075949094640791159776450518137935129054491632282642186626471499926655364432388284705486795940565064749551594055682739959706862609289686753653374016579460986984970698698175361133767447291353402220204711238470098981414141303863888664220071184433128430028324864739993935231586062213547342772813441991108820407414380820816910273070666738534863599356738354735038078442907609089235255769059412506566503676204319812971202993678697472551969385732711458302050274946977131469863394131442666518780524181823396305936250040262458332512925122231610443477028942246132218182512162136633686762816845013029683103236234758051306826031602799229419087368829411538838874748147881883235070375552663038157107679740588114579932388685422652057538345669362771243183728941791389694988191482629436719277603305021488913444971256922616471877512070178880162227383361926528813048308527362444722148020716487607735517896460327243294333146361488454057174364333515310028674013067193978300498541931676362487445282427454959616781388484891797160586742275153854145693732050168781699019862617070952409630279016608593078280046078976047933898364791433896850546163420420836120037159207727307885728087420994529939830661556522181260192733656180061091507764629723590098690759135030125394474869679929411797795129204110811986226401749933060713638562201051694398919593350811110332094732133309992356635149870954827582499340387030127204037021248375419261651848793506091851057135207943730076033044470282623095300609644990399833568477472035724597515712201259290016351738334635088397540023399382467603823193919472836853474686867367261654669055284130145516561657410218745223308161530100456846862408098156440289278087948041313357237786338238684966220868133555400274476612131157794970446624066132806707119430511286099376385422975925547059484800783867155690414060555315485499570421693134619066496799923526143048212075457649240839131027989645336183875789295318409710811142232925589132605126948449451615495457918717931674234175097012498835626838889325849322149039478821453564954819775908943352023429120046439649775291419056754815531350329390520974880874198846017398736284952986410018490756514356615234585655185499700932744992674167314606688569281676566974722258518105437887019046378039233899249487826133456971037423263038932281319516711277661105048765116535712201841290876659535549018643879751515990393535214954379658963244659552799160694684006616092843621823535618926619031964051024888568982671727097263061526326140433545102533691180172889657868948276461453088420528852495052114666756284671691623174616082173683076292989931087182606621476964322299462212983044847717132026480607408039638720684761822058621911634967202895509020673301485577545913753439677609778576885150942878770232446934236253610801461914575171349390871024706089105316056139694006733825469005768863338193200683993113696385801461313505027586833236819936615967789737296782997001272000108979705155930254660136233626657597754945205855949710378983757267859746029090187599619837056265469245553273306775853702465561578351758506144496109767060041338667768516387007981901273068105005307743943419512661095441761692254381875300013118271264543352795776061022220903441761493148828502608837478848460391636048913711441859285090409305246855880102518150875132730996928907158695119950863037361246047309950444236720800605947102265385556892894838343311478228463446178632871115384983344571155477693127798734976389939476166929843327189957404498851338571790404788290552128027062343321239077607229580187379500461464222353937670102427500523432049804719740751540973430669016774845371202779427052322250149107661205705011423080118340277457775922743106508477426564112819867337236840302476039407261242028942625610720655173302469057124323539433796581914072353872799023871862909859889985008112883514189224506667883377348601378891370390927789986348594127364142830143993843529018655375451805745661937074861211608741077885737870422094501986919445055583835227215434310186941287032551834714238369251465483964869072532950894989778866232914053665186873966076651631840084715267301969980579116291225213419704956478225914507296613848464388095246180658430806665264275156259175160660983071005811216982217636455703947128746101863625824027584133323308552236147319110623036739209915785831545706964164358793269177419117723627058900504828785141530615590500954726165611779612037743007843173344373411284658824395717718276513870301333389297766411152576177285801268375631460517995831464670718305207579451217598722435358859636522683197498271699589634622727498412629007851069672684347047206222423503979808072306930254266759897051368526599441419295654737800703291729382862014053650989396182089401514628140136363749615607928548129796976406442936823243931786666248592015645341248440308019947518687651609660984188685377313525802561240204646674753776223093433525584942456761120848910207959462765811215937511499218080828714293663879483618195229768233951904278273996396539281595652158691177042362122153332182120244075890994783956038772036506920423873119106694650898936935548168122031779515141342313007735114708534461321223540395216041043075284667701845016731005815648265188906695893705103016031605904968629116468220108614981134832313480517937678536826260740688970168031228963469611244983233160402558637971388499752557308058680394374165348578841641730538128087491825687242889136095239316695877766213782733769428024374700587749818863801214291056246435379367232564837449849373589885539933015163876784218085367691294751508733466667491883238934636378603000052512808514646517120487029596677771807837183740014912103822363144269451236204123364285764438924825973722880703936036394538531217788320267571463922322569146057757637780077262866960709568491907893617858489096088337705159865515869046081382528431210351477225307539696375520160227455803219915753615589225164736227372227976956617861734431081626366843586359619606710412250839661138883250249500892579635600991618203538504074656729789487017738414647655136702653044882701081608580459899985970490508023980046460644829271310440890723952539567292415936432118588467015514195631524043289780893393516424124753070880879900498788726206462637186392784717640010631077431153542007791502585565694579903635914240525687347022507636275555176226989606250052016423024093125191065826858189936736127020748324927386752754206539713156144785071656698404755591695980779516648843569077062918771704058573745965392403769316025986055038171331937950712795141737506157629722743173222601971042358525219685390891228948810688858016804295989175546410939730455786735569348965143359396992556541253946588913543601369075517193964900604455487058245316423541365649485763998129684522186911631740144360878113539130890444406647315263704537582337892333021429056608792922600437437221414341164299792700228509607597718325083708283663803221755596727396782090470740749894551979929329236296134662874013724544279546261401416574434917400025621668573869906566649106899931256917314880649530213982382076506047625273286591346585686346475370263664553692386475989891123490230973131507332628392923556537183302286357477587064899006330190806150517012644092537582232589809628489449637493916829325429857724853103262842506360216544128373426743657188332437928454276425063084832123146170164325328467747992999761077740745278073113608376907707060095120554966566620456329689955398565562857588862755362978590076991811249631771038086822530834960108915089700554008781904970046097013240401404008398528962320209153430706889119627105196111744861911646108371949067645565649898528730118279929461796726984439276299390830638701078871952029039250133082520119988707832766399028371387730674577294818644974762110726546460915260843646390489391134463330849511427087873945716707200347561516994779804281253189468845939239782766361105657844240819190957558970645838641887171940039665004405969963351333392115858689119685148649957641775004276075799971390412636757161952276883373269998618401651037991725286690145194174629306156165884517934957710916659972401672268998872321697661385316033260630319477583275104398943329919972331403031715136349731124528124479474332367808439965690356743948708622034668401860384855646847601328894048644417682734796946168728428269652895231908151411341173931421382883472499631134365904415061400738547236943139128713924081773405362472922117236143337788764475130988215494014636716481445790665636467260907458947354240275011196558045737952974622474108264315894638316451296074100739892704486400376255235553788349857021492556334357920592541116139971630723959216078796528824995331324942363514352092830130973451374477074679456700207107068144256065647954831955003130985119680320822960660955992367941777661767954696948881138821383140582844920603803094904107146597688810211635735604140617302374274148000113921923471738378600655899089722643856819820942929850617830687762796331863527587695842386380644575169576703215143342650409726856880541225269940834856180652819135959368488403708585254216073839674114046557496861928450528615168909978216209983158050410888285274550641765049694867841584407416026249087773035264268122484481229217781150863514058204224189386137905324689914890974413369270103408658917163420320982297977925471250832914980637182791092264060620241359417830094322307305112808044240955280222226299472401015671263432647184657877943182515413350438091694103659826363489058965423311626036512481393777069376797869246416347583905894968616445894656858670006256366589992112341588219654501921341370600212624600169931279066191394037536754400283799653447286707575337000310699917458254676213358956362410142376417757227608874645170226603852682750995429423937890230628786268825375170206438832895681631401755683425850235572546107086868518636920563197108143980970507652407349982582200416959343933155262461266558297304155542860724164653764896066856024802654511077675874515655035838909009493410820230959982775457135430753298903933529132720893740732539942302771512605158747244172179800059043112197126646135903197546137117348396961091843536023079709957448933203081357212887646463220878481799896304705200015709649473474129348677798091719630475795395021914473941868551624648857947397972591162336379798380472721525779659566361530570209449425450620524289579201495265301903278688630968295957205146837008760796909880000110194968382529699799051971184373716610092686681642971744238564493615341495276843280308088659687038504845582947096607583906870603180557147435274590917097645595283043103963758974535581915174092231988869748694708076626633425008010438797530689850823402039362108071984058873444213058372462969891130708533117380756262386498851229464770099537585250600970444042599900068215659730884894957529958997916514663379746522035954274132806238244193425448092778873673059415551392672388722090590479708848145209549945302625433470731768381032402158724308068502766890693625490736092274132725169749319485096006257288653720977736117078139488398430147210727435313080256278690394352834570814017922650501462420999613208926369908819008387643318889421005096570205850217179734506423928286664909860955276953385402965002832309482398876033774109347333219581324761154513894655367074103631838789826033569729410199314913494410678310803454654784435398502365994138864193186827668844062050174906207200562967784345100319477055633291432057240106148788033501671745416419485306188085758703662455883730124154755228026183124896601893883920536547677279742146570571977309408113634461818465916351627181914645667354060461350747325034482120871155845194737001672882241757416688513813474115931430210886007318650034255111481912848367939614627213418042431764012306600461262442459690112659413343283924441925021471833588623254008696508959921480347765059200267316387590635894467582999345015614204467729439817003623372118207210030571211629473914894054270599369102575221445473060135685403318004230189074549097696387548961736879637510999316265480093585532625174906098080547616918231229494520347819242736285405829958715599438652074554935435480439028171962501631512511390386154737265125792793494347149711300084322451770845089615323612888878175344741016054260200321405481552564694131159158591076645155677258895142385802136246117794002888680283283412905120563916521511702310181029879053548561759790648517553085895782415524843369765786646059244696602141850195749639409446026855426178728336122208015941902486125695532443096243351276319717948489789949199369957373852885779514314715956847464959947393762923262766360578988701973072316809717031423711755938978632263390984853601273774628662537951654742735840572715257386999379350319018999129485804855334603131263256609445409114676522430329517114814824860618449193670156339902583655193494608059631383222531060546048771167111025350398975008787433348604531407417719140889896149213444675539655891454705350480479145055938888404094217992351084425822076595652549502348244872862054223372274313892901698264171305962298923464356765540280285935184721986015930274390483946534661404283032917287486546158249943878439486580773900914683669284501903537462932513157937721884667480850249896467318316830654801079261419939379528518539289929103262751245879489009276078282532186531683025944109076956135384208536102147462124792163698768569759594792033173333712960810509214771824521607666647751272303199156951085803356081448797194563582256371951672485666334214986014919984130142570535256432735871198592469379258057264766469636595532226090964132135510265016905124803489669228817965594200649490031049290650497561144026081864348801740812946337556564361876387304275494520497446868361999508976064803720112496516771035608173409645206623794453500920957210376663438311475178994614680427708078932173321730511133755001941688669873613989273115587362506098290000619023190275344519801339460026412285316508017433785085472463393832549498052039544460037139794297961576475346932259820348421354038564876163814168260194474626885715400126634712721558496308968540826556894814575962109452298662410825199955020338655402674213216823463810647789699507239470636660384386252438384929614162772237937847705807743382912439838193275224939490308025797043646451564700088008725494334301171848628466058700138836647956767808733637867897461986802268520808127776321503313727161588662775760060567026206926508962899185464653251150009796144236052924793765116529996511366690275264353358694317362451574917741667259375549622835932078190031657894029521019057606023880153309313244793294806304901698948486713880223808070876569924712894161794628916589616035001106364175411858581943578853533747080231353042225405938003635836706129000579212317334218660252987940864992955469525989339096338041329019890298201586351371529140517599291898838918108227577462642182011015662716296142630493322417898899408258373307014189333362503450557083802866713999424237427783947120286109007552172667194038648450294127786311136371504920137837916153504301850904309905948653156824867867710401605018736694621176811057465022643696150716872224934510860891390023130779883830359164317559765767745853132154331446844515981309508961484636267128543309933996390243430624470332786388631555827623608432376063474441976321475332535606762370266874127157875933405842915640085430062002562876252774837176162699740554930222400605199582717354241812958155574937877132695578101436458949769510580237024019895050206408090769078718376286684267077404583888786565969810731240924280264484373851969633125841240439071167388789276006448377765463627452410078469030495543200543863230857903687335866194806690850632414604679255663959226429739517454346840602541635024755075412590037635395320072139087813067656727406355805555034369491974418808386187426266932857295387546593091264529631853178956954988918988240572769727549556235883490153081434198021726985939531306044589654216052649206478586295651933472696411909348624375102884080038566119973048116678241307349456618182858201313686747218412557125666166158268447872186709649674104456618878688869105392588969428508622692971618587753023372120505216115482767256932339304608147483912962676465889117836518795031481441378967196656435540625984687898834689851292043546555770829497525712868728087015484335147657958822052427405395758002572226438326647665124071301008772074898226214255895670650433862153627205601173191372492338931089165177774832757008825192493604422624705391365175287056660621359116403828618756487515650407206605913464690715104481059118727278413110673038398330274073294985199072621325444658494556983983808247713800698183055425504249762832396410713423718146767754226434801270122131113732549053547856554105339254394296099014892536904860855231414264880643113560732910150567759125462204710059086309664085283606267728043432715205917243965280068498120639513526603739202813848427038163524102775601294817659437605282200924643622817906953023910761047363903941776913900115577090746032177114805614939316560347127531915726296107917693936043084774870224396439080121220527281996984427364989761965599138077841357684774410724428202565615724043199517412097015843908594319765742179569482958465612589562618109831447632867422550992610495955241036397315444680114287427468585731113628017737301171187983747506173163388297810657206646917295646893900403918356992303593186564922618135306517011012552825722144604149595007373188971562728158739571665043344129592507287477075390225070209143891643939911800688753523130329444730711554097067715927379375145293336336534320815370909605786366561430398766451865563006183951740263956378053107419584351196835616207009562336413171179072969333982990894981348829248094251950465045331347799719458686336391007525858756993183058863844254092842169709879932585097507293407886678996775735025417103614884507556979972779798206181256484058221442964807929699268781735739756947313027227895042338053315632460602074926570307394079511575855422189658579411553225987380901045313231441824612386195891266777900351279044730027882984986627172638956040950713418284302268471945218089729178790023209146060999035409348576901947109963394006494219666639797044941499620937664045922882750078282770228691124879616900788212528993751650831185468216179696938039344833663389090803731609996147486513807203789539456673676647991866459224688059101682400276957928024156210704939735664729785056640382066120778944311604269494745997302710789738822675930829883225025951333403180508182585591860495741952192227077534698781075072322288915767637076994908571166154335810154196725905322860717265200458015119521902890410775208030242272026593799186877046730331012527704514304633128880514509821112848263044633036266221583789115342823067413384299198671811205288866461081041098768780958414072079773107678304757151693363487366180163042093943593301384299246954228095533381568429707138032701360583849136693063106626819317061693397157779352862549312114975070066662639453944091566899755700227090738527213678991543669396584220450753259980251551850742889262023455359739043484913913561091612770618018451798379316681084517156380036777845921336799681400885938437993412633126684075528306797282092322737357161051524973223076367602232975944376945757608177465930919177800411710105096235242666159735846615086687958307030892321114098442266050589810357489719842955116079834112483648752011260899036835068632455898216419369920652041757572457908477685448741998478074220986886579763903129190561652556857800611456125314658291743407517832630893549082436324313122575897728649184521186712806895583829440134787643789891308088834748576474911863144914629036797560845229269614932261038336452089538489142708995001529205427108181297551289489714466116734037865879679527232498169942896753208615053976658678389814403862061211932744551542293938324396038235553292584435744816308766994620444184145395299651962977734293798798190653156954521995809680103673795314392247421522727465388584431299047381327880865936875163024195880150728454237947203773576467356932885159651645842587011975815790757271993746053703817642386989716814201487846589692977469157758783342680230082542218491775445685806122639758094767428678888350600442401742482882219764698898127529967366537063052344406464213167805897148785153889510843568994069234357840155137995740876391389177315645651708727844768941570041587572230674471772440487046317665084703715400165994695216024599994100986932565944521903282438196520248954052795923783177013521347030257617891447227547883729439593420057799162818654043997572313003660592682201917246738945688432246138473526646900387847215369304369719960414881058946591128602289446688480941460073679618775298527527230312698190932006939982961579002140129492282731874725968693593848136611721522195350621247353891311523770854595539414001004003733994808159733848193720821753310313173404586623162963425940963649726397968717484489827825187085756940044239787355167242109940972092730450216333203862404737212663065047862680183476995500646467142709377848284596166029259074773795993393083399489041469027715232484265644790506545724336472653777501406899090379055199227897870464304262258901783405434921101845141784406522438731783198446374348794328547867311471263968926009818421683693568275142673738754958897402537260695356656403409932342035019326475994145912476322326364084422796881266127874109765722697596505315009055630090028095363256380994896580778984454375337432021083159346957688363506961382129179339892413007870596849994377521079385921072059362671880934603205730078046385285715298144709651872789343704480576424838793822001719733648284992367575480732062442302469736919494495584839232722656705085342403617519171164276791776755285068045906589205590831502609012993000354773419550767710342260317396309074790720037174232766462490871052299967303124564523163178196251201151240399344102185373606863100481542558520131187520333621472907939771291339246366283398794907398058955962422930956180367766641029262598837574095148516905182297850430815970126877402144599965443112937380741435135142234976303815430686049071985423808638265388443178518869392044727120004795434424693922903512772118401445081484097538756084520749872449365153933169906718519649141246223104417874660045449717346437359120467427924439697545426803064360081748657992385081434238770515292310812502580098801046693039335587314414345345841139961420797087287652219355360922230626629990244599551378580096421005899660479380370512912777786503068902568955933993372526031947039515460149752348424565986830968961286616583984680648316062149276379446365719069779649233364694293684707420868833584103665887394599770700829426051022097326658535498234612318838516283135157466925402360386975602520747564239790772562214186173886219242243125248431395316405624282616824726706845110493767429834100151608270667747320459422563910109080654496853254045323394436073228714193488758681996272360175991908901816270812420009968773094704395720425244167373435393384701440733363278041719406469647008126837027871149456351975784674652384640282646191909511662763862982461998467837811738242478046917926625186982109091799600459568386394930468189197945265112366467304451015488169588852994619278802645128954740271870428639929704390517366780791946980718243354396176964017224843658522314948181287684810576632364112805625458901203768692811204737666062986468436056603346982713713360035506807513027333031779753443932582645072643695397774502057834484217396894905847749872362956232239031901823125508583716231349655808085337629712797762811907639734607189164751086913069464931922501238321760276828472582675077508454589725202930798166758842013655682486211696646681133055106838517414031612220010742097301593319525386600723488230002218160958951925912976783629083916867128785129127660978255012945337051443893023524141580601848003101271252867159536154621220145767799929799480295555593932374215471433821873143999199049757711071347679973455483222796935867216477736231300809188310402198570627481989270537706337460899311002931963087699630705583601602567245129050956519438163706144479342512863117743686007778308877947778401980582190720884332178797251757500972174326289087818076407737207855909048168268037615447758131824094811027032503548841772112277978776553080857958926726567424751890991738574297112482513306198272898955563431799839798095520969556846718521142438982211983352570735643296055761298093329179257432409468679417368122791414561255839210713502462230708203933753285430973480102026332253924275345373860632616372097404178454187808753114854957800644264070207894744920902018214374721250894120930752419690481655000946717663759794894102369113400250704250994646834078211962703998826591454780457750426666511130380984095765152437906093040355213086558462648915731886828608953644031309683993851558663163523497195363225005747407872075617649930193139924810895050150594446671191740073450344691778346875471838603296450696548415242759554695769852839689579265463324526877267233864460274225019470479894718009311056729331416655877085398347680086290346319663167867410061968668832073554782174726564119107519321372686338274709042461621852790082731257920360244467311680107473216743732992635720890273876969600834179380397001658367598776380587745061464354398366801833567891029192303646616012987563321578065744119849526714895462787107013231485730196360888106401900858385311940816903368308403709459390686225845320172719285575671572772538659928717650859057180152005287044268141855545002387542919719540833694487872643783448786313149863098028866416738190743264091784304986361609347039898320197566459486877265872728065974538501402225298846808656747646745866397062421876823941232484552703437062427861010265731764345109086328272609515953122273752511325247253345035967543119909713841827538853105454834264019170061156343821320612733480438889390201807995766101870524676750841721413796645454747088333186037761793129075231860578965473701634424461967120727536208386925782821244180422669689852983037526967322032474506076454159316909108248540632598995737040230369520370295695055250275692481969363804709342907692634576771520638328900262277119416723495136228490284663213766136636248106850088489765859802052004832147659364278559012688329717924235639309891853200586478433640113694317396204020560808829525597163888286334001090543163439746341436908414663290241951384016146401060170778393817336615130092391055476521476282713316145007241808172665932369674730700188255562582524420787041466362487988427663502018053386554045543157598642118297585088541636323069470885132654679844220311493257293928413368972888012137405012951320348806488167677911821568002678870134937354181304156635386259404839218864171906481269207244348546405956614965328500213261999558534185067129436613029462307120424542353718450447134269630121146468594862826700470358789281633396053336625651878721482664839461713317163713448789585111019597430070687421153117821955447423281177012664181181795554012969169491828517294511199177050852504054025739847401307960908388459747054778993415546288980966481011962674345440146549415949078879051591800258967004636068045056623194598854218655544578310924630745980939292096032990986455494137638195795646574276137312223120008311686085043326224260767922392746504539241195524569724471097320139280365178688995642212974752574446320971587550458712896260568147122930175715845011773170868813876259172984685962459007581728861853734727607873130989683004734814008000803858522523031515800890746664666935456660128164439412519157143644207238391346838695585276377642992716561870966135327456368384090916263188695057442096404834758245976202147224523990641554608717804949186071863194744279546909240078535292466443397276444371773380796524610704259033356054496073137518859887337385752184586540751866308052408875570446052055739493481420595859056849300981472257179530868632868062653279713119419110771662988840243192506346255605870161875559224945216676516404390454540745578137637288775224043131255546525112973129303123184098641435003086934834553537796431160320093785503467025683688188638966875480683409701886812230183552128036967729446228576799498133184943872789040133595257546627287127703687931819730996012890819631359358196701766665281191078336232298137639394617022250461831679681792658884382490579208155765397772306418557842848723989105982148748431547198401053430269774509748915879698705386326051769155272001665285507554638668580641173497995395656534695776387384433472491141413863905708087020030606897831427371324886972767366246822419620824282817361577555264950805150385719695027834843341958399544461152210654945832481944622464454985934050874837179454874010917650581784064298047100004947301069152157595945017266281150792033496287007998788280160287834786787083725580924500194669031103504616075947693721601657683354473920489895355927659560717763219664022822694665258987905245838361269692150250813973545937712611189894358809547826081851251461685690716362925146805659115798508214850790004964993367412620117637388309835160130028580995887344265450668418498361169473518855436196178661407153333923150143398665233517415297246130838109031310432402103077103760317881383965756328365347028853394138588067599976833096729387848513930346555004981994640217166832919549019721667353824688088715407861306170691849128301614073118662088897487130969754224117207712615087719107041001020554827817249057342455684621322984924305120771262602111698868516728532389963771027652437786443650553320794615849461727117770643585980365024359174756434694965457746351568125358017025864438433988201863367863048222160945911658640228727274358646234304018088554372054122557987595968173824800642682932336349272532508738818306201667250973851820741552225052630561121169192296425315430618071517729015422988771609635034888301250283410565815953717236045880129763864319606648767061109318515076856007314909642260075705170850890801330790859118073533892595203557882725343240554975919138217172205510506838668811705187021204007606374799351817056059186299545222754868705259183831905079068897571903017372658790127121763831455869248330104218676984793131069557322660718983998888666666867493614571783329130599218323530085027697952529761597907429323788071141563288798005387654800067259141286986396714498144415722780762562080474705123455770681477892977637546690327151059318904749532259282731314866260658204726392171436541401374652439786488905755658780752981014256739046413505494317078121869230270854508680998882502412877039500334429707197272467650462013797526217627235277583274119139526188725875299009657052664134797281168374465108808245336164826803248872062298576462361141568196053519141463026090836741429077105731289296895449764961811245503762842104073605432787787787713659591930825454887039440673539996618415206924620448985270490914563774853768242153817641391459914809042434882274646907216697341830586434794433778034250788280469730019683136618518571206267570787980882153815479849583222079953698906071829883134338153097750475093417802224114738961043541199301839320817538181198416967406286424281618382313792723564375998270700474634508265329976319412853259540609943600414609813187908005225348248366449801077784127616758921207525045260080907217580523466902693024142319070781287674882711118092209503845759843251623047737890540468096803134108334113372914392045212767785623830245518675651834672741457724944898920574053797972447168264924372864885051725650209362045813360101040440860243088591766264341945124526875759647597671817843533352877789000360816679359803322275354634283369546145378733614857740951182686531073329756378313616169522087896801224099935799815196930190874355264970002521836682259818733736938450614640492613041606406989315342187353875455908349058308889104651909236380088052923608748361960765187579244929794194897681002109632042906961906717735636791974207881571015996013087138616374675600058202743929271964732242308683477399536909040426402603991215237233285914106432417988079711758021009904157710906490071677490063075046066469429732680073833703776837435349687565324006941546881672651647473085052027860788694509711888937585247196570411664172551125317833529406212358696766326649308654518814032420949572786763676377684692460293744649606998845247917739464859407047614210137361015460108708694950303457754965299364534371668779295862683284914945905631218915017266801148313482901361433841983791600970406913719065734174328003276095330881251670762179107640831956938779776559917329743905095798221981729364341208119351024610779600288175279085573458943691185736417131955659029897474968981832671991109124712794000918244811453546996568117135590133642696784134333959308120110401493309875466541949721228319497884256190557865666996997827645865600889232171894625761353885146528193334532991361745478969568847574559028143383441168283916632592757068853440722799731834301054133240993871917369177165321157460616224770945572120306468543999998949941798596294204301462898563071890968896708221241687700563732082281094518680101177019531246426611094459908520769705395690601429846167114458633377993488580390777996298402295614609905382694432058980685243873797617899352687983998599115506212586419266971698250014803666265515480269141967050765414668043761973986089964808169954390048246820915218934696904632193471004152306346042503543356306108672404181905257774993422957199314901322851832482063305605774723297184323778571716607406717885903834896952721904174814778708051059334533480058285717855590509633493497850422077165305164797169613038444699021323364384622948990722966403678378085268302975393507850566575453992998441868621306358521714620780808875726688216390668334076948598123284036037825552699251602371994610450090372550875913583819986808506731848982349705158058624662286187696795492407392665094304640735174120480600777664378700688947312024364421021043733435060429512301007871274445960878947604810098953004426064687265117296851070114731589749443408597479390428163353757166166375969530969970555950066623240207768616624462330412870684532265402146765519006412532276920794587638192139882726559061699458313562011142756032273401129007117933192284799531994642954116658401914070609914813728803909488505050369838884183357992669038625105228967744920227060046098403634189986326909486667261569201396234552616850562374776930222104294694224427484830847933923997842647935821449666069352589507393414866059819054521432086391688757554848312330592493649771444855929914284832702758050871002339770976894129744758979925547232781248251899391528560662641683571817798981046836437096671869447164217771180346845470882518273416203166245440344962770255979132390827011368344577629678418527394016166777677347128517042418354654654974734221426476526289290867160845203181871952159934881428637887608706384692102203516991520694052454855288855387257090748431390198905447485439380867262201641017349095073308254067496219122508658606005980256924785498196620575927649477598991337848555545883979949844054941874947507887098270044885423019634771958733072381130278221329177909771714719220379140003965433060857268011249269164435977552499258384551682395462640154087484018875538810709494538337463571401550549716134092038308304607315794817773317851698408478636484949993223154746130819894288321643290311815755919555532168263285645983339259766067828894218430206044354061365871186641724252172815090829816802623502577624970152810633027236557637880902048390864352022759272559534468581433330987810239785566765070819306872966427079362735714806819022501026968545925887972465206655561804080412808786874607631993807402367155903301151891838310456567662186478708979267360441591148398192509685470889849178151739016706754261005013958072861269731321563568530247912860397643294895141156401692957416402271255099564109286867077751483247580932668606265893075299804874249128826702927487750917016867918872683658269619011581468887006840677732088876478345694067453686115400617497075003155435557188457035078119995324711927892620280945176045212761246716990848734147752395045860960455690920555879704724616364193500827220171663435259265653577482560845413900984590096347189021755448887113460990395080574786466772279493844695058376081130650337382253018967517872410000075609941821352034536138070600735004284625869502253418824988883676486046212549871962486688175496068657384703501216364850279970390953330306886688330242392644724744613051856427874149121484868979464874178325243968012433172615694314558929778980058318002468297228343249812869533998736544615138348458891612425573770371696944948143374838324345228866859712325008960084088131609076669934078233250250984815730230134501897703777206106488225243118062304039260725429184614935446350752040412989402389899911645800119920966941475176242480911629653677770444415971114544043673794459837480846558956428607684580976615217072586844715603187317061801604525424854335581105986581115702470030259131065681790789414158080389260723526416603503742930451162393210830493519904212835214637390485090612490819094941466979263022573979771780606972309431694728264840570890229066932484427153761372962980372811689517689755559665342304351873275634383670344151103877969260307277428144384975219814686119039315090838222846571397613440773074206488320755655615072678526487673985868001318136260435336990836029507675022507568276431708150838400458249789883269234680420379381752843431138765156258962227999885668800462958335831169701678887443802596767642870979950523326574109768622572653970903819762080564040763781627713509365502875526244233272443038494771190215462932601425105067191361499266348155335804344364859203378585232444458007332682898735946879920798293420949391356931798412339079296645170654441164387610787075177068117566221023079592491078837104568727292639342537516450170942405278427836237720424986444923516171250035661854028881995581154681274729036851054505258729285734764115446527027719426867292465646899010400742988092758801600870335905678186906172056113959569921951608794115181680396757129945608559493049998839733383336520897905615688314107626927905386970536079621484821836290530531409488964712643474715370165600587607923965670137991526730197699015306459522566415917287307580477563182039401142794833005567205091071557577202907265507531881215170333847397398598195714199748417061245313827552197564565638266190847018859756295368726653098684177541653493072138342132457643398461279711662759809289168410544574006177487784688280815475280323622845834716686314678860829816978509719688757096798597629740053449488361768912768042485357631722583176801083887739573562837422191427451981976920334279222304552547711607757480924640214027888164808880697437990572580297384397523315575724985906068881137041691098592490138956829912708857653841697851248880044985145495644118928990808719548739683713018207397336497563200724493510852770094785824215781788814691979398165198142158568353820417178145978697082975477972323692154350628440685844225824968900919881234882507492364731217326163905183100922930037173559145632121953194341321551106586988708902264105260398757970663163835066755765794424384942530647006618847514966526930903364551595036508481464836138674811224926086258624095798116308242079789640644755740294214659718652090314425330060591820552373283372820015045014395029329798639575617931082503305419990177217241369539938385120272419366684987163149709684682490898829846926778460060383092852055213166156096289797888583905828532710800395158042088297175858288658153116847680362531791685043267272259802311830067658655549627469562041558665437156099015645287901363871121174751392400571303117628611890919802267110090960697596173562940052514987330221839070632493495825131869316980413616595370163091296890317147253320502751072818936026746613871088399404076402258332258590826798220955823410657824119726212150718808684956067688387487002551850956071196815838987667629485470190766376306340332999382681137892879086286514001581148733303108700513310658577436543901864188245849866371363804404989845294014242106166217542937042943422334488437924240849384914441944221510381960798670393130654323792703254723976854440078586343366654270313787527011336406877459696206381550708670226950029216678544925228222580784105672363110248277748987372365130629548031081516858366901686432960825435062281240244866400702013300346286360613477617818990893776736727892197058434040214287153871848788374861675049589484851159873809162836097903156249544234785704994448401378023191661754507962777369716155694988613198326953085448429891967220313280060909705714510389774815159275971883319417279159741365892934353160409684412342661768948546892125659894146345356807960257514566482959679236303166821766382146254037295829187949590122956469873706902389842513244356214400399268213463835644347450975174068427943474557553615275890928766585847445921082895018088924498001253746452470143967568508635226471538926113116415832737335718661056551559218266327441300876115369600965793414114776539518149886306492524215819485602793268467115772037795342430737199922430805584169280134156965470370813566932606051149555835241733135546677996688693328154609833764491639126625299550320308905917910139829781266914356409283034359013959100563503325951872779116645078628041961515002932518972141771498563111647180136381665838254355886042150882630727896283902580762626054993798466158228434508894382871423870765407577972591825070059691759737583214810212020546664715325538926067417073606959925045680668644317768334814921696883550290522603992102516170208879835506190612331516615035458284980770649741667101442471257840330946149177963374898972058920529388080705097727417598045306100240264669414233669835572551413686255236607214912398081815541690145340304751615129633965516378697676932539620239612103223565852980245905449384232394699899810929096078926009664914340469079929825115296276667797964879652386641001828189244770995826616690171849136810053178522308387309181659045185934096381554085060334231468025399513019895948835494721054886709575061098534385336045491421860946434487729862258811918915535847890587344285326051376044075629286510836136535050009435133817563225029424992379558991837938596373715818600457187918189552933435657880792573430894149114098352231315014548239090781296027655969573767203066212068322330797997342190314015801781354031129511711884893958568041311085299653467551505570724833567588769231780996880107889690160467520075801379786156643616163512717874085604064584712278533984181903677219996786364914011155106053665800760935433209003413256745812143598975214335253795076598881214762840963020898723383628669355744672334074832369225480023809121441717618127108943638371111418352841658586467640929591929881583954230721260348279593498240425832232181965711182586453538918924902090722314453577714118678045963714979086540136593758164214876268651787241194437103285389258389740425057061046156666943501504240526325375022811875816084380616420829657829034836210867936235064736343996348360824710958414963469733916126067685638864708600167192942318259155884433115001352802533091856527033597674485838514115548002788101960572361076353291622561872359240145751673464587773475071073702636145241608547030255759414621705713235609293074743148423047346223458761475969124733555243980541432747772975486457491648878596022172500609761102453145346560751232018510655319164566285392246223836316441945712705372007202905078929001009520081343214999998219047334164701233740408149599062777949427928842403222226279878053597243646117763462965748906062128445750350232044432170882092804827768206756293421465766018662704346660101019910700410558188852016807882949786747218906916634247134469842458721358303221062839565179015768113264498134099274944576445308258915050057743177508524442200365269641924446959788165655653945641143032223067601487065519775086366953493143808007365573008652514096580758591366852596219952522975159529298379667385501722689524739208514851598780925958215022678581965585194531828775616733572911495046839044256835562264210588350848646114241545572808348930770942086168005009530547276628175664464259635718862040031499211044032511340507798060376712549402871265831761236819566340386580716560026133243079790559467339798132510513146744877844006515275651915467812872054065219860008538267236246555696386371251099988042974689338584024267167818946846652068776133392057613428645855900797640561675465331885315794181124432753472058194906025958700748696612595987251945083504532941914275047463027448371463715741533936587253193470723061055325984279298588508164324019342152647087755000800458633699503160008652067287253045843406570671257771386186111878268850723014144162850732978837049016065897174492355128534381659470306523587723660376868187372693910393780080475599854421442101257546078783625555309153545764671242511137506408811808773478874989596615234600631172286914682298574986365487022260236038617856770603182173832464018641614864509688024807235687986708803835508697257869563605598028324533056547332793731080499417257766880962256965792028478706263129313990663509035478710055755062430125438772691466199178408467595825290561091487619207545015807185825050903040135480110911636202962110352036763442615297219611747090787083370736876317145052525224375148819914080710424190456133049651774498428640733226410509178393953012714273797214982649740915063372364336884339981464575788015246813372122088565583377235608823367020835421422024957269869710550503226350099432976806933028562553037646488363129165626034535940951376462021061936668614423012262837920038239563848799162194409319139291348045227083160492240255568969566775429495633965714064132237362995629896760298579679975299726151824696259198056444665047565477237845939388751115427685437140889392492671522740497331522093433954977528800237296662736334023426594550466662048300140089464624043236525163354501087229965695815575360474721672214684149642647469191447496101794445311262434855792169318601388012133400016945572929179672160565178544302509729644772701637798089828391461094616547080008091473099483047487089673801812554762486542818021094656639251892539578784723983622334558808522667204483975479318111285101888808137864720819095418011976817413669710375827925971405688439849775503488549994006094716284459412053115294722398694228670477497642100510183220882357047559698507326279923776090050585306342555984465451818087895545776524277249482478805983571872170496020173856502022990453339127046231006901090061795790899471710515133351260610509057987205723177072557573181645399191327952202047693305338059136876197101593597775270880970153547172908869630686940619961908160421798046617937866997607772724451519996258512297352665931293844135072563666063051650261423339929526156164831290420055450028778879256787926001959834807982437380986228813307782630648116940190483138880385744050407045794616399660345342218625599378045755451984128106038311122125258645188930123903127257581084595709446003841310105796084987743719141841052632115110524722139598871732542084311793860030505606212500299674194406368811681260394705954995265749530667839042886529640038110399268334370018292691259234915765987705130063730149972408705894256796926581511357294318854929167980620853245620125304684500137563067265887641945843925324355002870497421002146926970685837996456119603242584841364384559209885766250564143285672577911945519063130060602496440175335434978105216944527239541453298051650917856032223553441140728393113758437640747120180469232110777429350831055983209612452502772254416380496532837221850377448371686404326597433709362745215439352761342040919628719225768891294941720034508923217300607591708854811786809521004135549664357955609738017356319023610264755280600080112148458810801268528966522278386822863100133591624082726208715823566353522561262541517383071979443273607893159531955709918366576812478273982006482530309235393277465309049327357940537645712427131494428272772791905343561505029980620839014072202169847992136635857694744257898653567056820252718035957831799296554466982174055863016843452877502083341019020659187493613469809816152821220155639607827061493268431434977832989808783842851034734150504758074686914136402508850229476477138767652170946607111384025587998237796088893097176472787474236410538104423984243959741887433059916405927586451255983942112673409340490995309834523087922973563887409654515454121931802982331711810226365719773919212650105894450536525448981132093950895828869986006114748774542031428094373450263486345263984606605543219305118533666965315048814650352401721617533550990489659169699903939836896602207078345616545418583978643350664766064527877562739762943523631294484658747790673022166058348556227439354623543332453374733523787085629397178752336272252313478826534020121370407362206426232757345466082013110374708521108320718169640844658135979532341780944122223011267660770406368887732946970611274466464833433020881167777735509796950270132765141770765053358610074692655903037295686280145888604382796210715503542291074659756905693000738815058047880896851196516990854869584749746886058198706901744536557543021918202993789896336226672480361214648390397912553725998517364988659841838193682898157906286083932432028322826894097267671362256433723866134945908703378491171193234467126745334961143416477799678385493206268795373436856757359563446943765813489052409178225464442470836967230420225897227503020032883383632746759748331537116942962647346428717773624370081147522023864451706671951957932342912435606916746582187451775266120259210994081041287595584029083524896005262300624578392038407280438711623618687273454040012990430592969482423039928264112441591773679851714318080673246167836096346251980565856660961232125759708985971912383351760229715254969581436422291030800257875858952805572022168155299946523950975114086192045028731926546737690365463126355422157928219722894431513251701263462514950966077695382064255507079688913217731849360421562726480512537225686240417192212495115671830742358105664240176074205315481824130630404267341238939553375559990922699949435667792292591798097676206086786712041332456834158305251587246885529814692483376179203902301421036897611609410713497296963087047248152520669067665312237720044066729256762302896007867097990868810770731131372998553028128585801552033746262842477159983976444005966646582125000369985874980447325789430612082337014057897624254691649257054246848752023518403951546993453950333015150041666894219910954323973458595942836475912962701082216628884865477362690582351710356420704394642206575619982359777549443354945479758309776364436107178299483585982442029497093738114859289021613310240961666417516438709370930548760412461957323202278208618276373589147223118329349590210239601110055870759462121796086820006825163301166297768327186254601319869703250435286166229684096805549985882622579463997478992212695365161118617719350592789992941772465362502688285656464637748640792424271564430010191743451139026744669855858670391039781777819058310655154148611570811998024564492115915859144348720599966648553647206814511469396120619154636037307881102810107295333887162039543397192275626555265206373706157176203821013581365629119715200147551994518860883079734924577248159035767375537274218793100547386692474915068824247438617421847425307949185082466859995191263935291877347250160311340935175941798552768882211526134866541484135005081693783450637076811747004552418801670949392030117962640725096310472263978783445741848952309908695791999408722097423342304910319264692890409998053774846161289264944928169916240348541013544385629540989799888014196949644101663374134403196249125964292190749542325165734559890597720084986686636942292615093948933548309069455719332181492433322904489597481871727826223447405551984825082305574832194900540168683926477486952211778801649379420993916217337173921503972375265744978796416800745891783410017176159758935275005207395845258366062244105489150921361682471239863308030028748250620703333847744479969994094627999749722072644536963438530119033712275398501017909599050762819998375847133257958645481962033888591336768103265635416769112337015283327261103129972964668491147046868159479421473277507699004568246234213681269983212324389133209343080732367485514284367590125723855296594109363801420296471023048653425277506820803071457649124982229223972952099329739631975948735923020102360488624091167284516402378971067906754994695327692283839656392469555741725812942877458205955068814635463182797199690777906715460942362652431367980657981025874116403196099112549478488644540544806562089363896758713067839411482942100497385304159873392887771713522302056931582322424142698345953749926991503534586037811117081764053926719709115832328921089875595720404452825315249970090809625389078458764109320786310454459585105192862693629171529618611269207580772401465705669990077346870364975329745904399931433439735048202060501346936031934051774481153066276812844433279558692352497976482418378310489930985378461644369833239060143163070574744618315908175208828082209749214345216748690319437239258511614607761792344873432094253092601146956066519690053104567719133511052874752606629482170337555455625980006626527950770167203341806328548797638318871963226608186166697714959594663104593660481954893358303173032338191509839749315285094956214801432265930909123266951044218327091934013428033664142653302783491545497819256173885699074984120192000729983083323385974837280112722181607411412794441014935756065703007794953372830437509638231164460619488381843868774925573125300473578475368655798033728082362165318574786895877668079823494782538061010869403223853776592174802395348709808622996068796888629662200577867290427692118821069161460135658299737865174812906727872807539643306109879456529978612571135765297799128644165906362789394018582149539135193892882513304956549331151674892275701933328402870577892800380231961389723496700205724696465211120909229278441127852888939617603357380400926155054791255596322672751705679767594879937691418268645060052423469851383633897730340068019888010042979847674342494317294858928447268083250198286900620764685667932282292736013822038851417060500393322744227998710679120941333003675135617110184353738202691409434105174615723255345923004685879621750721178558841905217542218630617076945956903838989145228518021141466134721364650870484139925948825925866587370464052173638664764380316098925448072677086237140276920959370007322206159919885455670652789623122352480177802485688343586173920738576028016209463204356876844940884970449023586676400917334328571518018976806254808970813036506771488931502193873438859015889437748038116992996692933204258617442745757943561927718504730432652814990053881241781238083238299065806899701746570323646985697081216781153651083288391676872096333969631159677682010259832151790903154942601016984616573659996123660018134910794859889287094662478985638886722008265741508340611389027856365831923078012132060137328033960679306829452453896192040275783934929181840779398232477683941887068846107939576582361850955774106649671763177678378629996960952325633552164932235446856240284024646295468441505319545226326364498983479093631724917189158479385784593233039931494919358836638420640394868326279352703847021924801676737627641292611671714158628816108584389425340215737558363650106322037290603610803214258238837799902345905791265509565128014498536695815596263402006971200411391154226616736810694548323294157114831050577830758069683175211707640953675090709375617222740149526894624779673105199190662228004062326418815734988762004829579407876567013166713741585449465965869694809463984266948728752955189658643139036305131613329124335334839208172652300641876345694442903368722551225411474233182773012171234492107084456468021627097589475512455306520551277590630284143606765054973910635926692998276079485448928062435601631551428211756749011891547385775894220635763887616955565115640708616810056678316065207752329841694927806278116581823418608264148684268948321293925189482785565546141169631457955957445269417494656978201718815936849395535540260336405750322699430758203909776831813749260750105802691998573262476036439634555650624297473984520800093510424898643074916792881259656891664898714414666384086407502007107342722515539467011920272620945058235539321398848686002782194451374264599278159212847473973706096758762841097934071637337940485897294249537790053234552298155438122142358629173517082152218264644338839699859606002057884373151297620473104972266315074485006289329140041689198179339018729124417169343197842109584469803588344603953333223296536245414868446489501055339784461596873371946639378707505275958918057634883939448557324457077350695343340121650594962782019825672037198206042137400868729832676365227915959633782520297173167359940462942545143500767304664027669885063917164953994181862484320466873389690471354446295681987632412498951160157521711160346310078456039183021372573529039667365012778650600644007304439751603775414440056696724753738156518684348506078404573864088739668668891134215129996907242294248295813013788524010768568918962578664216410652193848374936831140654152752534645994638690746986954144596444511717123400819871192530262267630382598926923266149055688719963943213032263326245337585906483404762162167731199912532246783467663856331749794258817916364640310622147265678078161476817089486440422724619347086984511692258054851219267883364933875220758033902115890509944182874185599558469656944363687993954658605730008116325397755639917503024322247891489512591963385915885272295161631647568406259370676825809907986192707019855301982917949187974023361444148571171985843167563819859839128534506978227392723472559095172688861851311917014390457926002508241213914228908969652822820057828669315430413567564117420044235337412355082355221309357346163315981279238115336161275929142984462203986690338871276055579444287365598152741341275682989575638388711746305779926506130807776047166896268326030651618986627373611873140683585720975268650201166170903316085470555523980208593293831316427608175815583453183072392364410689956470797186858355076660670242180930201400075531878508497368667005173236239497493184998476911476725724410862564115891305950038156324834772498394514758258403965971051979824973052307451093263584330695935032013505664356948064495062176962887904456434646641028398698487288707422943840825502794615124450639455465342846231951863304438116962117714789020600000299898221620172438819046618563086455951686180616582123094908700162129585791644395011315398675348574634518038348950232029258934784314243463416528564047926156113327990241864726590906350532024247429641706440793935512647557779612864298719868204991552426865019139158738656369165909072726393010793650764618111083363457999184976207719742752408397033767008352075998943687132042961860397809868554789511195395808044982711540658920820839552963160294619968017443247417514560316960073830130925035972505574641444337115878600197905349767310780847731706079923372788542247797594593447393026297124948219772787034255943429709852948450893704862842228084457373571396953662724131330350317465051691623506203310594043518593688544533214322106619074787428552971340591901176718780371733871627989154532433890870117730082772768572071548467448424235300047904158478126414086897916827793175214835506469619232655314271312133115299879047866512996921022651989036028087329716522926065262080084516204389653361802718713078308477536498975288807341822112411629332311910732394789081387491563269348254701943576103722272848869209596860572441009546467400597351782354818755672363549398597953069315782267072647345779550072765879047832679726620500093011856442882925099918909608584634970036119453834146620166838557917568564346940053152929162176317091364759149753213651247897363504932752628385913759112215436586037077334724554143615494744467984000047467556778716004660958702388927859986794682251271517052180923432769930649023765446816191339509917500079740096840545128901847843436996249543681169644778486557153369234369148789420057107155176679754076588366332829185048773680310204360796659745575435270236800546609846851205596888041029387089977060537974300508767870657990261297094656122707381361886748635044310613521421512914083900971244531149095443101143049856364589462904817630858650055790275402073269493835052946687274877768285231531510806245138946775655211300295069575060304924476946258319164555631564205574717510644966984884982082077584097746402934469272688617025376515980169590664167528721594278251772043134463957350373869763642295409454991635873712833678305007452716371376742688686913419091418532762737985215200489205458069748147520506296464341953118165591873084807189049291549956814896598348484631731968804405970299832465720757458322027383023925628184893949143912203064511472551127224799281556772315348555839629336310356184585344236924491079636902165312070412203238428976037974363121117374296799247936244679984802991386264257376353367926481615540899753705236020755460490571601609197597051388163629676545687321897875189359482762403065320358188908956244192410847656854836328048103369443223028656092580745141540204185573423004995563583333988984902075671819171878282520736709800539009446801226263080826814677098312858566876433638923503720752614475985405036954771528798918172738169224742796455287229819478418333001658555148686761943254673069549775426255705287050649610548965191500723116257290515172086606169462275723788077537560738435913357315558512390305700541507313127754245288151111153098560435719531672730652855919350325182962035263532514911447661544474882716333359579720757768590670496259257038952542071500576795475060959169480010313882341203926264131011698691711266073647218827836247049787744893574709632770993061481356799884605780303165934686439305979802323934255947285509664091634505430037973840862230108890842035133863432354004793721761456119662345013525998048732724790451150409783556038901860405016514034438995854072840797606200761396398469641714460178811073299812428189495958058866236587600011962022488068454480961510582584028102848044322196076585408041335931320972375562567712855181633621046219497003076869272142355997700795727400164174252328122887294934927773443021154019366714653293787212802021071460100634592460884556974535988140875295820270016058498638973402198784980606520649311788705908405436055331533143056812030953818974006827591644874323657373256423412669780342514231842184515019818613976665118738508081465831494713761087880085545827749942584129362218829030264803667637690594964962338431332297346889418897673222605480539124127750289549376829779281630191527583410774576947483391268007024640187407386300584647122494245098467105671190468437250158695503784983172452606943043171008028483561970470142840817417284463476997843573345003168806528880426013422188681899909402035899882036531573766465211297361761857672439481005609313882219895051353491459671387673866817740987113928489687017568333778685344437271601883714932130190706747546999074150427303538479936761971275536998790172534052536685540556128651812075255189627482081483378725836056086138323029331149801034026958350704638032414169432632549293131314354297719506322371107532666237747682812986618499093807054354730078744117357918426441812543347415360221609779862722788790494725289569099623358367428510963497674657586609447894384228806031160782590694601411170665523211653343605183552281384813187582109752749598496022005439153229799475717960182771258510426509956284047083173463707404159382063450608375563654738216769946205098235616350551747890432343400727142729457568674651967410379331868078405165828779539714717052512573733498358371179691111242070706156027048431477794595088437678810230925989538004314766372374653151019564734665359272038611456554232661425273744310525051257224045434095111146572565425819802424300558676893371522574741315038157777697086712323219957122894694319891621374694436368516551772906024141447138783054125185486049500216181448401271441253456135458535696549434097811635627867450677351978281627479660418577844377014806226689719310754950871017688094150833289838268633805364160596517884407591816205629817428415405008269254516576075987756141719848391791939369016775152932309439941201450457972230089685042579414154512594500145694402525701700028203162579028618597283323090358956416660617838727626987751784746725474353281667903974829892781745840015437574858957995217990123476333587666619238437061087389787662364128671558011930509578215387611852202469773128091945868123432639748935212495272517870424979243009885119344306250855496328379706973198056244886127660883723454455908595497100226937430351187752138720937499490556258793997444011575203824769240502069210234559383616901317897967027530447537320667569252312566263323577705151460443863733516839841614230862638209257109240338102977696393534423524274251931676401761731317773673109594952105897149601246273060458588154985590235597873475884969775796837932468452406138365011889884450511829816858759080955370722613685684241551774831364097231316282767938396538230047861065653285627595115181294585026964804340008456943365165025716645041865912726512470805898690080311568698240752525040974397223935114166815521455736434717424012071926615185867959709882707729074491729991441265060557751620564883416745726907252667568487768527787371415091083908740080987945439637133199193477412012740301516607102247371711122376782928713305617858628381520039341790113436810360303387666530793078029294094765678386618192685497521585179116574406999137718735173189335746191790397725620337271126318833862640623258985607433635412848789791377812617803163383476616535287356420827751388106777379868015896597718871179434137979618880259290182593853302665972543206706842024629519441381163829248532292762099835012233095805722197989125357678459790195470980674433945042466061701021522482756878243352914422571701973447014723370275730466169066133666662501738851553822811657623674691325544961054761419873040427150390796759986402910116190603608992873076878584236886716471654553615552450975034049085574700129716067320151165554338544075299502585764957971125779809553500091120387625312101013160384262376167621717872265462976579423855701729084812139656765523559112802187657730394306451019529559332146396411986148387202506158006347069603685134358982025007400077634933229516434422002497699036484185555313533919875459233088043270359716747382924267577875253771045975416644033353840545282527946397619283772211242881974702022744993183670732860421942692767051504623888970155974417601398420905442965730861411399136565924935964739288044518159554683479392231629361482818735937552514472405099682564038964628837216717060163541026493576337522392098212108360664676400851366704168757248279441953865233207108860299345223056488788419437753991820671839970059668011705799340203485379694007353841713028808512293875645209808721043268468419882047793862851790805526658548252999083486857073666539843988896835493461003752314432323872639419113103089816529912927010282964296994023565641814371109108826658224382850418840513240880076927795895918197344829108864403977203956172811061041939206732712103843764363279015672096426739870398819115798513598722457954119126762196714170604904639852285042781846154646493672321857749333593404022830346147174991290167899847497320280434887591744057066993661063927954061630231739137509100387736638497404246956389766392301268328473314026075814449974242957524700485300682943176839991663805016617091169736109419298973717985386999973991168142315338580067823419909739233414782019772293255504552061956553670380511799466174418691192607454607708977678051618875200620578374668101684735321145934722299423166774610356114440445474315113989547458569679562587691788833982462273958302492823273935489840786378152831498493165492931485722930251932811587844977138126644477532819340913805776308076874433652422758200760850169248738580514607355144930485939104925037136571585026386625486161370853873209887904360340764706172884465775234363925013269931529189375315908033264627275047718791638547484080640913761837592008219750899524934274272415272623608216190816655667560055125587618121939407678148258289844981930384127835320683925291638022884721608350623749940355745771969601218044412936083645591618105994249350397309603548552689735709456752301928524789674305885021888429474989209287373548653627073029201777935630328257203192357105568403440856889679895739024668349353710204182648099535190836801528970087619131103781311928587640958132135908339051671129459329878040218305189313373034852451036334989793431137920573212967453126665737025261065268559203550231467787403432264074625710813273811588214323488178867282152894266161729025985511504316156765400772243067313964682325411557951899570910924612891614074718288690202040867945752677354924910181038074195773518208304415866183324415869672778092892892376457302925116773432486614117227933373010365591675670640483286446396385927429049171673727922090280144473754747860949066516644803864019870452974165330073371289427272495983436790807338812815277332285214975047691663926641821407370460643299975125325774437453061824327824447801817781309465625828978327313791047180508215330983132466740973533814997224692900056034735066010717476564230043457826078829630489947802040246781730202772536025008763725537466904834312771928926634237529306147143350721671401088650762824399017612275000082146691385222434755459269060687487454130924279272183537679664273654133644298002804875118391425778665875123850035587892228266998634851886856673684043782311996712868390061347922773699144760509912270363471885242309069489121816455642984214058288037888822275500744018207941544504117490115487787962526981777783379866321068034851991163990847609838742346854911548310152253816547876690908936390639158317176639212339828888221283130406213949150856494934178016569052446032612172054032527269864799733832133566297060973406478190869679797059674097546701639000527250893141788503447422201034592089307784562489284003738517650094325177324662329328412318052642027046346005818841214971910789414272517836412989543714113909470173724508090737470268874382805420219844295980124364383514275104475135840168113340805909110804589668378249065058873165390913307007885764088953437224894925137064660631959233097431090310269763501781322040758036689181148485312451018108526278332922732873426583364125394689628448870507553089170008113315618628562993173460683753978872722796110102638214408444800055910172778833569525372644610244177301160891212179030533157775747182835459975164239058922779766005244573873232112520030992245403939773106632418725350797600478812724685777186975583016047861353493376113329111766465699387941401031894765178528194821051921756877786658152145368586503029264582874099993486330886140457336437657609359930516738900764393912137650133269909395824260369875888229924774756512795239274693728963801622617066210911258358995629455077991063192792583302447465375559206774832836041244283352057799825620430400283990582261537619250099769007919590338738465009541146877996684569186064665561827839438312141261586635029841162991976972514828423937046088859099256495456366912585115344939276066950200760399716367835156234860755179657958993450596906429784363038897706099298534295343004565124428664650861962904573937914673092173515756916136526562810616905574372710616120836896728274508335758507483774133459672366257927996792191974841538234919341833361430495166908580453828146502114594238399236064586713112999119473507860688962409235596631552349139788731872344773861319966819112988085112019387665215893194259287885516624238907822346163898192522467576535691697065407809585695460486243427015902690445415208265318972191937526899938304373668208664332985196517784045467723800236653344116526026729330685493405338087341961678826866270486359685824800134167734661149324961072947500199280507994563811347572202725504281452784136246964012366141097736060097461703604093664906854812455891999498624351058145907702210149542404646817271438400162611869689378118334291847674160355270298407029540588407119849732383964971330218473467403340014355536781324256884625599537588279653421232799713124836544656520174225438748759481280298479676316520690176641771172915764945337597285573815275024470137808133801399962014992918241038402266823435567437335475619251875804125143503930762838269893652177950460697500926366817327212347458662972224136321527207801831572241110670804923434239773144441282693583546222780943827887303150115967056851317035860588320555119717448709828518515437725984462439972678895006504445583284097477960488813102493681827452361050228957071869726135661848500646834338666552273860743307101501853589768790974514035681589086751355892974011188678741723137861464871617199756194463237920182362780694300720558270502624578506672816402930000889691966704985333876025799704201184043791589805154040644739085067083173141668656265169842327672256924266199716156598110454247461804052435994393508139820853150836038442399891614462018527678709095628949664545658614355018685624570045130975753554526269384403591536066934839386236177563179553992415606818729096633213544873650602001119039150142742274606457750197749973481474693642092958934075755123299112898446904045668190430952206325393732685417211833550622812330511193583773908906811365661453740817630190939731025009860566348344863115036241495904872552245811866505142782218096431784549142623082253790033577314425834767602797272823451780225634336289355732294087137709029649303831583245093246652790206557656166582541379299097349817998681777693367556158602365974120922238816629791609897206301236320126027591732818176432058335783690939912401854206996462900284631402802143505149226490881332749982254214638193766546511137738558394559572458783318016494376234937602746591793449061731134973021250126109490294906502243939211190480533285715225281636232897151604116067319379250344437199475530395843470715774666266964777515662257737760591647351706080073951401579117200804803192830994851278967970340052230325153902260401621521779018799846738961661034162660363553812761671563299462162157527082200184432697629905327876818021440068083789987248211543082629738662880209603820659125853481750188929560027378634790620821829957507034592304736566090729338960437023227753154518036197405397392412665768257863854661256853002069128703373065847387335793610654243296231445577777852003724957518621619577691577674819181924576537964960381228669821721120850937539075903544644661472850212232825245687544080427773338430686404112101514882726570130154437612642293808117230222610828753964604179370166746759401695028853133939682005737656729166834761838604706757284936550133140971534316259843235357810877133359940648671612743409783422026850913041946878902493872912020348765448884071016026650604567974612812289224944048724823866557001883560422492504679735749329535524011911832051219845965646183976437693743797124178640483559145951562798882977832725305589303956228308187040215643758678082365875744295416262434307478604316636476805478436601713514804212300127926411603626475405679572037011758374591531074714440013478420271523301629244158218243632893595806987967847353837446989837470736804388559755478625436390993916663416225451067921850741332467554315337870146827840849190065776248354114313797934336235752978538991140877709303935669149147274849455802727567741516099037430764716000774542057921174682428039992930818676390597854568924500101167308954449264460303835607599980713411938007687018073514735813880016164065521194218011749922867894950290407934146891081275942654576143310006797809961164830728200468266985267657890613518247257601724340086945930468580290894459670210427524505024604196366587188047160376165294976549049105553362079094989190058304616039065094235203858342622870154565802203348017442819033241421902227127790957041178984717596034076572695604221407467081339333042296225390060865907014671090835209406793456581735634860571635146037596347993863246500339394269167855035454380575679267501986297613296945225211481412487873246133577209014417476059746010884405003217284607007379939376374176234541507402036015736629827692532569143070076942669711366766488267198844476148717815051653958456847794912084190948505714977739315218897590024087815905053543077237805455806663396889510361440704751136270795327300952522650504503072734891403434453688696272013071901429027695921992095657917587192710698861887805677454492104096281018260413670020714321725528914886255531754108942656523912927714273512767252661217493665792644917719035378672187903663131257400903207699992806286343223164803658595942785132905513618237358422890818139246340888663918193181219118549232467882844447799210211759239164904060851130369376519825063930488909455287205555565709326228753576315045515558779061234539332460188392569257379741902877421877967162602929571874017688036514839194642835370526142519629431056839983337236577809916414268574624635943228043235822626961920335866325140080704014055302498582045417235322041482270287382062160342819231734893425175216906494732675189626611369024963068822408625619734233607827742249209265030517088075771290509223066394526857452278354662476450197740634741026336321553805450845883215437732391283839754399692508803326008930429267760273562580757823157482120257703917710003046275248144718958498452879299974270622382717126131900933743275425784535839625668369035999472492569519936151851021017405403640384296830284566638284262560050083943726504154998392677252523580054190238021841909386207795682375938635106392244468680529569293784614244904509473512120223550881279690057047046470868436083857922304190116262749051118335814168795224575472167146184008715689733632192993892030631781379674117612994058002194989657549979853879297512867644655462523146393789260200543687371931227638367384787462992200328841700372004619318125592171658457180777902335467488791223510362203371996931997660158264045782990000748074235536062980938109896075241238470906174163517717502924147595309813361419264791394164368314434733270897117134246428270951116288797349104735810103119497747266575206009382921844804016075068582905378989778825704315049618707948719633024639848146584751225151544576503934340486102449040726083285712164383951533624610191023729746753252760397595241240417504882474545635423696858329151535450294660060220967053327689239253420028623233309149481722406359272243744134680647643965211643538561357502654099923103276296945706511193029159092205413511704065487374256491473759192268294204673797677796487919560596160977021018897974181760422177437483314183743239694147263988417327346470655195583130517530689434380109440948768670163358967390811517482008678445012907222498445839562832536375922746969402919119983790292730607129945180511372263078513737458033822799581463053614116676142833073726608806718410962165934405519106363974010464344424185274953227314432468958508374179993471778554624886529078615205395373174586067411824546201453512327983413975686778502041121489887703950275615260486698221570783082350749836266097772514869675871129406726117286495705334509722517562050711908991047544954109676953109542666698742379642264737024466953114050151045209989377675547193599951054260624918340389582944647751931975930618758925882996050045512737157041305890279087645604361852387501582789736823733205608336840804341877392519884754069477443331450165858866988298052030214640894308987992528393733666189895115004816312915731951879851279649502921033958511109472247121725518413938958549452294304700498483637797744235077843739235787929260733837336711846610571231973886542166456960167232114134608881755925107537276532018149012645760593085053593708497076090327450646398659310969920208630603140540565934473641580765029693779953104507205497708705176614945010737136169671533550930782557431992102419415086680450783096766252418325707381480055473385301966990465774103008751693917805219586297368446169217349652349098527086920025978370561907430408570708035542949418246296524699379778089585396880306769461227128312342144267582003889793114639196456696491201222587645851883555838367070599914517888219226796335375635658732649368904866966590264029386415268072196039123884430390125444526506949544725674842977607190660812863315817700452422616911175073958744528818404365933423689095144996032352784305304825227244859935814700521871889344345308884031687779780602450535697422284731997392029464065380285571204265482512592332622183550112924601074777376901412582522110536234890988754121432410523854410398908459201066590438764606757503546167448668163596766118216797234372866468337189252275790779374170326945776937343790810839336238698023596385188027000695440244168320897592420966468605961640360273681187694116698395316827311924836580478241389620581648515073878511162718767691945322065634426034113067546831529444610184065130918962471355480352335737486061723099750205830431754040438535814490232395112586201762695004679765763844564282857244724943621843759099683221133510961895247124805955425584214252702174166458826285648713624678105547299254575007935955400585834861030270672364707128676815194475061100685596260310248806475106054734382251457607220148162467202071670054975017707909295857662357729612530793327976310214847820308571428539163589441885049145141015594190947785124656529407873515270565436835245308983289002071302016077756676225941456805846208555184542200960792564230054214146439135998989243164879466691169253396998545007372453826431365186132667171583058146785455048891592152432311942474136849567662487367046036119253509735643890112989337513369541541384229785176741700832108190792612159250890089787706733089266477685598406208505984427260254185621344370331885895277220784545456663225590110822334013650577968030574275491287414763990158973714256267110001992042792583272798430951051928673968984424601989013324057514886827680236610874977209058667781024964307441739811450548205624628722334366334314396924492385416690854719743299650492606491187866717486595198065167265956241018289171929754626725105500003878686826783386002511923292935859523363379579712869279230858093480035177312999784886875185194547803864084763145346353328075785994151521236953054745627312999399325515265828391466924382832117392025718368236657280950992558258573614946755036273229929715850798683128242096234719889854781561655341463489816119743441344295834139734783494200222364356026871193857185372528743674587713100153097106770299921847719132214047448134465421693713141420991274143200260696496789451287903145301625069740424103635984514164975705015216076281855563429819165438378013574730950358038042144110043788364417765836422017367774648075972538836073653002244945652216113017159198311471291097517334014225382404266539295332531119850747530953401100607560414418578307741132146220620524367469137490433443090376269092687239331011619149020416292244648004446256030781205747417674797423814268270937070307726101350150803398951315435481378183098614553650425781582901328463147132107088666605574114115949999121679522054954444064281393168730682504179637794471904460383095909680268345775114480703870145915630602162219383337160687450151980670360209144797084279174207384855820776927204015459193495476947396717167717986724924964734743634112120857190920966072207159943915786271739997867055865410202201754661274673391012494385331988090058370057962939943223190429626529235019317657753380740989431647292492507668375000976397931494506995076638702568420618587437299377126458978010374610458100263446525369987896449866036447233765576990037053959697175647240242431386019445715986452374555461385085372967278702285245257561347364160890801556073269085374997539463185580999825841053851269593154746671724676637365721409074789284794820209527127661506106839584746187725554712896128640586943610573666444357315460260307655027119863544168658590917908054476170923696485593243401994518140398291063988899728361124520238886241662059989969615971016493250883240465336808921403504492035044907617102593853786520803714403333501729922136532634488649906921953661017537982627830733416679802643982929940825518499095845163444537989323834039186830998023673658808060904134998789186806338077948563434455314565193800396639068309404368892089085004518435770882421565259323374622419393396489452238558733364264554002212215070405576750128747563279554379868203647071747367374760445526460932604210012097216144488042282770131311561270730393404252947378714530752644902446214833520491219833633755559355397649890203440944288879366444044460951646459078695805118479209015186883202211584242454638265077244456955399118357087707669038849973348154974911229384939799764965727999758087580047263147919542305875737729451844263030599834695771231466479420986179045636884730597752588070190225189360371170079117203593966436081440589043210936580913700545601802099694854876233371425597357916839821396454828867671262649330476887173921006296243909555225076898914346842031812264639858656488143336143819145294922451803920742496270170186900484366071676081988486625213837734183866477304737962188488818002200319205508054565263855332534638698767543415383582535612310201175800708017107186167292098481095927074850097617391090310565706454503752840256734923731204837859572300094825305028176439634270262700635531813141056914499641471921258305830882755218681816578345800491277104440789064326354268093259272803151424020853905082589929987228954683486665547257986100979905068056259170496871784834285442221356483615724379694177759134926709578317410736142701812217354378208101004552623156913407117737257391294624370378438831299549825431173728862736066805950326993626944574235914529923082049455120507137189124195252341327019137087916672217577348003043748983709245586729345914656986386022136992184859702169437966470050144504428404046013687615968652521973718215638137921763006739926050084559659240738697507952262108445762992797861764657297963945191266439620042661945274155939708113503431999235894262654378019467836264622592865702410720240180986801193539982066823355946952242715341073577792733724538121950663890350400503968112178170862148984969106587755291002037981342027648937020344484424555777073893110118477718413060527922895444621462951725388946646037037017211348526160247751598213978766224719845468827144442488501487031032419739835747550525774498089975487254143650761340836887501604779166911825214474706921494627638317851101605497204040526417243503916984985276845968451594114951607709134473258866344333984059872645916429587595223039727033342376308634468688684748408406090888680985310036436105967939797278995164021299422060142016965121505402851888731017713294139947558530889127591392664881273114904775419146853005314649015218393306602235978210786909175374018762679631669976685590538350845177259067784398141973097147102721795072920478004308225455736356120931691654314116333806017470112293240468633392651587898355973902305770683341123994372800433459388016796978941097794881592263117920640678665571457095999529236369423045076501208036571339200037312656887274235685055736423932890452701226984818472176599351820692588820805866309093071146163688172134438347290610744076626193946244342823550949455500644625057632665765457352024815425027379789474232591183058075781344671697663405034732425412310363159399149894693332941889406520630587293680461920879646864920272303765198674194707285937911031267459138205355821570689120681109725642075454611873705369681218913616619536551676774884509251405368950315313216342558066849400867521686547506886162250757876436851859895490360604466590370430891143211678768908458168363993807461358544160415447410749739821043424224454243277748533176047506192816748285643265228112374685984331955910632793265020170223513444791530975510153232085236617607247422486389571535430115284879475171890531608527404897916522207509975945057726641974830691565380714800151143016675869551098527925355872838954519033012526490712146130493492090846871013455121873517553567288100064069107638945719547811231158626881950998960547457111105681072886843964051040076778816294663556679604308009817114385617354460264644438047718417837117677183430556758257822218961385027095774783312445372594649899866835019321640058240640968944537577970782448818422962406277809844852858256140655700094398403954327444803061100997939346834681910595563145537836308851747562056040833985774928632027218312172638491058785729775304814905914692066601220220336419738078606618189682120216941343608693441571298082708126809912749942058911375667992561699632197142591030196435276250952793613144957672599501703164437297846590868528674055793637460804204110751920611995709751432772896189099798732592902813211975828961803207555446857148650472786195682346524691677085293663446597157703865126843530454241956880427205009378040883850840969505472027359182570173461778327266714641653383988903771144954740544472858505691589105155124272091891998625259584378813466979303294506541777776049800326835520570510179045614906515199927913610381547536732358871850018843250465505469311483569497004507321017296062145498681783473036417086243159641509675785402495606942134518550919854591052792816940807983991112434031385186710837558991500937436411631921160277808908431656317837605214168402902786534973109180372092229817716456153253635990968616979914434767779144353039204889997258958021106937173910660201681875177703114228848020675098678600088666147332896960214782792333902250777440213593299098889693801586576540056071609371610198778328600827405400841578550436134747069982841645943518139600358627789935110855345490494483476430916169041933723808166810376857264066507576352679844865808541043854205617830274932646689210527887594864627135739630970927747985846575150285373318720319174974917612373342174385872545362839858380791595002551733860664649946497563280861724138717533642601219117994363734277972472796729094501887091157120067596129757816554450714915050833317148874085786993349700420804074260490704105756430808470062854055985660665091631016407620725148174295457191145889966162585071874834260663017935370917720861480990542450122048923097473865778265502189146850628788758581028310367781819515881893126665660493609369635272251867203489446515712200340445493670412584048989964241447515418925117264319338751906271493514792675878997888082547626250624563831387397912574439126621791312937417745372721339566459516936946082380921276993952043390599611662064973049924589391362829771927746603048681123109475764838025557958344040126931425891509012559430474944192741750357101482934039189779688272335469481073102297258514894627664033488100621326447760557817457200025168857131632525909524107987830430492403786466682263431170530789926643963126852762985604409618754438840969404277925297599329835917680112061152106134107272103093725687667139974257910107039753054412974418112824203494172540198411595035771397839814608060027709134551545072565317602500689733888654724830223217333150487294036532099171154578348994633203949415144728752327496532778589489505021909039032873193413308312479401288391056394382466968310222423421887319603916143654149719235570603972892992456423367654861840698555413541198470959849504132678407239099718482611455270713856858866652782621530640761451220459622867091576136352004795921570592481691819477365124713448475351854521233120757015977988173638329767549540605218209700728882329505568780214568382963691397308412544009600819225229345923775260908644172939081295900069491434674057388681391871596616460025482555104985004323970394422567453367643284392344692319921577805385883464980060918145767320392077599801121471447133516864910543018902065813970782821397864872123613659580051320459996720381846220961654816501958791953573944611870796744399342596459857228045082773032086258487917661314371372535933464416664009189804424295781064646256228115317141354866912821486903586837117233460302150655943644256573730429298240640204877107806296406200501406354859704982862311523769357979646859666598711117871177674533686214805922837207817061247104308729943156748553277006129790747611700474086483762515204049012174101194680125145764946632656445867609046059059192391563893078312027890253775390349787926108188508822676442910368140473753503594542336563503723270793418761213964484967628383094414877493498216139568898974448157914766283910635358983985339656754371272735528543421107078463041295876342980198830642082626649930609377008203483323190239672841503598798370351876222406206633591035311863231079394353711943556939643566822794325542950260564744848357424456413512166243112690667323472265362727490291035426614231677816421350365517456578273135254730954180638927075047508541322711417215118371913151142241151152091335160489999969841481473232563531113094588972555289240805050852335851903387771827154043070797671478256559951697919777551078492016344342288395872995944996342386510401792469427428013905922150254415819865842874213882307502373138590517232996777608615827272128435101528864448659079118976207044758639984284684885479031166700598178038328706507651665669163029162497695898777059815163108032177798236143273043655895884928224700046225817253211760991537359201389953020594391572697470980281933256710848837959209182793579592001579425682688772963499999812372770126577810263169461590176453145582319777340784076136847062085930063228131089912839712056705947614406015896614430578300066710683644198781272300842419282356580665385037520421826029844564282287428429301662141456277270131518660787008583690400884278966196779871705433485738778952575473719366453310351083931009243637934475436419762649697440239813956193429003580275629495907063747545979164477612589060235545131247583350870215717492952672904706707802253920985659378653697734183785401658116693213172572959042131985946369338218641106938036554048041587110269025543987129478395101040475122041467290994561308532128605292006678752649944929208884738074498335411487053374209258307720350654769179153359219450213080539025701157957574929973630702643510952067833546900904482472142821124869476342946255437626356731082451570534261055554640245431971238679164793343380910559482009524223962348933626710105639364099583666308280573491048031581390153682728359329033303906012275272924937574722403438746256682097418351484660054427468039175733939751373516467313091850797241348633204233777242026083564831726606477181499997562262671836912327630179162658593127775848076592783059118150528579458814137933848438139238078931935499147059543666200482823889633943982820450324900375590117977788666534875062446945722076232283810983595970622665589895664949706013829295730027501381304325512737726364967170597484294344463892117069819058219955562092694628485212246925275701747447551044420575303161349333248474965231082857109244096394334466985184840798551286747713847408654547891957488848938425643305923948987978561756907346484379244159448725407974032398050340955786542545197900305808587995497517627845256283097984151695158292702330520102289633220273556217423376487097891778171225760284152378996404175786348780582207385703581671836884254523836386344015868190533269553761698209030565155715802857282847222583993379808888363637852194006820159027410648887491257976872200627222474382473100476147172058293031641029121931755536052281066894836078330984196438071931477188867909973534282924526786359930990427443465571336851064463198553979977935592717254555681892059950216176322171995969693439736301662847678051505133903412937243476564218408476959014816872684036722802072558475802712322082221008867161807564669211618017791197548059587485906410702003727528432498133406933481005421616611080906325635901456904657224191586582801490803526257374024636661236047357886255520777396720423059160084581917048035601933928492550878587125059933527017514128101077589291325205928373912523690070566237006277198236609331792831941245315102734424838220295866819750086112371556817327364917006399781856280351785214462213808449418046586003748564069145442291843621586783046251343750808783428717964613859265786300706972673420036434662891438094708380063086251651371960996649034375293744442539676128545072976257398013359656117987524021208753082052415403056333056400891645188269268798211184254185602217655707523805753820060085653486718511724126642439407081480119776425474720302604526510751679754545964061591120085663385675951422325562917782402590015728892174534663061197496967790701895459855702570874548295421609436888487240717253128107322417061492248786103862084524022159877247806932609881895319324125658838066946331199269593091960810514697697576342014060351137917079274969743802539103353744008722051949915707746456227858533561755371742132545434533009581679174753094434275920941415218876500151100566043057007982948910600361279076518805830375875210411298068229261794058864681388247685666978231808309854494174120374734682677727623054142928013530212292409357597824717027812583267584646180185326334573027593643357194864060240950467345722938282998906389834346776191742692548820021160794354263947421538910546855481054871401523591233633283130380520163515183833698388810687838816103900226811070228141834379490491385324769423051351016486058736320437831291115189820727880743858182150751727991398399095022108412663029841675242119294756772398315477526400458128763951755070517113710599019890965461338055153054499099136618380778893371349411265042594394360406969999266019975014130966240659168011676916853210582501975270371464802989733523160220718771109054662868742694901212517725883096632107783891968701321876730736805951349664014838139881960295129558826047921899636124353599501128571164260947169157635268752587767567785394931592472546960294683980241177575663657350637381890142675379283297437444837303556608179876305655511537450553243049568666326083504936980514638260601577830976388748867108895427656297036429229879619813413795058485884441310757361075474604729092205328300626253905730072474444793951722593278976948840066966094388743042120078837352358163441860406466181338689044341726465429525481140524388302060746232622083007148994464739198489014933068809678549334496885747938730109397301189787297979637513466388856535446390131630850919162197460580415200872703726470023146522308927587224853004730194177202222021630485416939219623295058703346616197373247508179218374304546365437549572004779673396566627490969385630846908949369182954104997582247009581845150878155399493001201137559646840363403392096565162811927863929513028781446315975275685984986299116975165472076918526639814588021253266895398517303637840621520781013068054185775718715317119793080358454004993538102730539291505036858256771857210357882880457221539057960420548076181817731276463944755033318874606482051313126714110394953078191549767530681141164020679683811030938471128655784982657793428425570881180657208740580224676976422051203540418456115796088454176611847190278684018389954683192369576713036490224265505818198643796306202269989063101791509440564502190295260682635308418124646588211844046054338949182755965797142808546849268394409366197500994876006693334416795013704543500590013363990997371339579468972368630111905187958414148100023483156630333207690650256353956274457883807972784491592620304755364001449641336111358462258327098729308663962328970934763937477245034972579887498306830312649415524845600010020649103828581506083232327134347332600907966655821813900148148880117333185595649284678286988524695535959446108106611312192642451693312076438049660978868163202712312508155277693497242376172110316499959541855460020191146513038611738079317130183325994764139886163560759668448423862380129282809663154121814692387134760422070160107835453402908382907192396347238491929740236370946681997261614321239860724728014739128107415688585959308429447647641805558178648545594498598664019994189328049868856669841552895893132625103431066485597548178436804349601225113503074171921923898541950938515413779756905180483031469446426052626640617833581922521779979508927416145775691154219046618417164499428670419543835573487070132414016995051498185293911255716515055349213560414215952159018333608656673981479623787184979578308874169572194000862541039336523791461926052587478566324110822298618620847424124374198859021004788036671220146007011452926932405399129440278052514327942214926749781210235796899088389291585144011680488858076365396260523764938309339571921972074898376061301959112641411731252087368010215693386942655203143676809483252211259789770223964461673061155542666361678562065562338824836295596988901390109252998430036631557440733731806155386196810195380792712581863462364362435653102784873546731315404711471925921189874903913700848635167960626327215386492481037732193882947211240028413794952821707044365547738140393804562653950799377684159254373615837202884062904689157396623120349457027279161351025550150028110064534951928683863758144892061672031170283256542631767971902118143198777915870136111953904866542923440881306944976364541218348563689808021944184993958695019846081885118367630366894044099281421503199663430211187417791563125158284357743961883771761826330508633433966419529978485463653984832710986970080925409589165090073540127098015685677541295623239719003905604193405281536527646241585379593504293952762139397419618629200083969730632260353562647063267990167908533879998188735253031828704821567003324560357247290986657776298628841366782668251342621895671512893319020297894215835717340192035248482870121345935757456402013958098141879227433931809247964634328101410185025183701663426926148265763645751964070401864272303367789117893640100445817527787847242300316681170575052748615030385020357205330840467946651250404351106107961846437093557077453410661300956083527252332548226996525005580850567827704690311510964761691920609007482601147031465029042570888563721478566254721084516488458242635206036751073901490976856453226175333857573781235890981704093853987179508824860956112316423970609377683704680139332588398316027060826078022260947779277600113523743149166732494105211496303317020920497803204120977017927520978010216766575174656684090794817070289582694415656531666780307310962992933070907545597545618539775198722157162620953069121835828629606191665756512053601820490716300883667695052692254915443493926117325497395330735025372669052848845791304041248609318873976743654946279417396511174924274003062843552607308507646748301871038806083045375368684340113446727013609139056643627392856296681237796538895783387619109985759398100725998800437730006880420860414099997207155272412158802963652050190331424415012057928173354930434725093793274593160061583170894489195574613218717202411702845937629801058502903518578230009268110238665244256610782015339556712865415725504246928153252317032293047741619378648131529958858404675704306635357728937512199099292162625096818787007692839998289602740683047327105492870387450247943194914093146452727203419239932265798650925233842048408763631055764498312985519081017500745240801878401865617908719209350919107039203550458733654701375215673811166157840906218096170126728676036244358982191234056311042474018052438226342527793278847668463811685037683498815446476200824892451365349192144259657817338145217678175030668958527993555693528137813939368133432969577974916510068340044442250620195657932033448215933526148985187070698070913813662248620947283723347856072217050351576136782632097242879661246959672316231183376915010001804985206256907409872382495962901814009262091370725602163162355470517987172646772195757006117769117736977488558731559407938758603399877447727055657981140329278229898011427755037538140894980939666437052059266016892660846899159489332722225966693767986803013118490406098069279475654829476461542446256120257896317063499740148947769265364392600228433660825690020761941188603540312436673952686674575530950516246090684812174665035574575012684740135564387166111455213763513518924838478764146928670358713571511532887461347155887750322288211289951564464010984249432078716971842428055739664116382252928715907353866742518754694900499617952236331821640383199312364760803217232590743550686064632510187148856081237883465473029519148026814958328522948717180837004087965434894779066799196203567952876439193861322518105360531673050557659060471525228166700746856493681841191861068010575754642759109555001264721017676880787074773332700128575144261731985296246363809766846476480125591228035649194075758629512920167829926657596514011102235316349447556490898556701466520756690291958714326280098571736180827288772809699537494856462272611305273220894452056477836556420846283596898168170468872918086091435561848894616019009306998710522694787288523225978016179005238320283392988237947824125601875628794887339108001925970004951590369270202423181662003644404405544946510401553044403317709296905809811902878552549658435640064726281611667779693635493508189589546474588821509582895076387391532125484475127587628286811956902695239403796378089252517204594878001285451703642177712249577269001499230308401251552922211414206422057630377461769308276805950941013642875292093912567722105087578148873992318047909095439330543928613304476764058361701763561215996442620033689219417823134289195944620400253893783317542064470692414540502146340014219721523376982398754268427079877230680844768189790833460148020063275789021049036220156636741517793432314139384336460265232904461130107545860196014243418026049158641127491800082346434280360030052290024513987966779201239201771226718287798555003053583583808892259439387343239952292627074340264207209809295422937243020300890459830304766353993711899179470646410007032886547293523624375503684480688364487248239236020343454486096802421072937216712374594866286812079870751681867595131226117515696409873825929885993202999194367545058417811334831406770851511203814105197057379348760811526600487124418535548043576589529090612814197868491456102104042963348584253954165606554908236888311244897629696920910939009401984564344509634899294633528136235063142103514281894506584703119493582818566036237189458130348984230883871265539464853677978167866502131332506377970854207396698617448546243515546303230656160428686633754655694258030876924260893735582328309549594830325667364939059632569283797577169961287820030617759363845278747875652286972887027505403644402932610486616859871751308051392081143721146907989738605356962838996486022156526420543798218193521935418489361338088916159176626579213994316864693770072203708825454487076782994460984076720232428065461990625400618900648625217632268266459613504315013338912026946664463548960118625759467426348832609923956582943888320520041870888065016849761767511371034618521323252828634407662901019333424300090524931161004315558857347495791233214831532760011136174207952522712948515246230090435477072342212615137851087947533957811931031746759335987690476935505978107415723701209366213234541137121394967949345714358134581188450390919314346368409316545458918392322655365325887625368118492829093836769941261944253281124281336413063227200469402069407903900516320138180242234488539503731942250031836125079363502170115658566048440151588140337974115050701345098411730153246246591169680628056051220988078358048439200426082801862792828482069132144628751340888113013993028956237981223353247822202337222571567819572506946703487824216251611742856335728942027159424144223080131467306652124079388128586280806307364251475396738957777854867620983408574498607732225788643464889026549715309097210493993229603369315477585987326194791753817509635342628027385315790207388577468719934395601682537843573596225435477017475736581516720685484646132069180369831214447381115201970109708042385703579447759733186210663037990537284162514654351443254085803539083933969226996432610684018301333386869455887237687713249210695631011539019259468356645002942350967291891879592714371841887419792906424622073936182385892518213586321850887761266083330546059509171004891988368458317431918427493208039437390852541102802846780639249125010918772754375568324549339717969785251500202244371021933134594177697008041565854692467831579145041350160030087630734500847515145740777827739323484767732667706548969387596060065326532459030004110241496720712329578796938124606244939226534602525005527740924697172221950012273262812103931128245058784323328984336243454461098118347383610832009837636203824947851783995625866324982437199526345735213899929891643758299163895153683573626639010815413573156119478965088891954123028951841507305032071957822778595786789232174721344296438562901504217530874798018732228159969323308770127779252163840394437329857371178399987104067078805386640684247598098141898267283777648001977189249066502548957734762829917484721738484438845830164771205593157350914617446896283800743076249957542986163624586076358911647568669635676029114637976139257659888512121759051546403669189725509005060915876376253103577570468423990387387428475344830181362510917551354885089236922852390788134959050840373821883757245996697766023775440582745673369546321128681044424051478057852780796793926220005080491026912433330245258866484037650836239757650536901689380796058036324681095617949641305495162940771179436047228316851213035263339345536393724878662961327675942480198488276530335932954958865547161369770591199634886872787590881907213141160690574172545250770675452785764097943509036428704022072767136948201456983866987309508088316288784264519873357795820293620352040825079474214031636200964633597566317006796464770494214469284958263467695917351992594062357931991950586548662901332041343860294964723980479581097338599037133699072170640068639555713463280376327877116457593213093084262863872675430029796893481990986737989015462887479743166777416598132349803142475933220285268691635161532288595590481134945577009343161817209834565895442032934447930122660040108625388827827766361456052836648776368597551975044336154461680977961941792147153036226496027322909196909250014626045641187980899396113223822370973302541435431263416773510040235603827488629734731066376933879078932291447691253649559213694674898606578751643149653524942929862329254707857521921641445632947926501682078084184825706216613788326020238321366091212748487396151769812501181961121503822188793364302646610952093348630042547531564772655313002122256820564697769983844318199326178765852444981709286146786712304670988415243930753394036222965715682031792558139406782801273330916415511825090341898994819759512184604367185060716810522220986281019809062982163162200095193488377882753543654811887411727618886026027996937767662415812433328703897380615281995503607298467948018783264250442812395440130372790166929602191922613833050119257282035918419611717380479007299109563400074432005280664296226119638515326841914427732123347083798239727723614480847639777787073865641894027051673895502631682675810926791522590746224498743298819004580795606682380438009623519375387381194100348008774193479981816768173629659903521757607415407270980152659338728324199765753267311513596372227070468671460363831749555550361878108550284139568954504662362264979697532202399586617069870944497411946995450965146951324568125925335291851511577165234223784592593158090288803673425149804931831612432055136243022617704863877525745676176186272775730904809155424378708196205303580273239698097254062164351294713005402437861700677090972709621263635143923430776505280587619898324974167631182604800375890935627171984732467273904913904935071111120918817449990935799177637243077955139915322846171792389009581541037951510028730297886843501789735910859806474210543429919680286039969596100793787927269245077406653797169979639512773671318314875991431143193623503243386350605751134438053326496901355764043826970044788566940768081793594621889941246969325689091383774499832775065708161722253608596143581676873277834855101642564852854990719799429937426571319745536368838816154495504428768444339022703434007070268771944541664456022485973255857585335931975549268637092702288114904952640289409367743601552302140828074188777517464316019851547793686113699267357235072747912464232077951467695924668144162019222357347882997618795376423810957714773882302915596593520393297597133166464460823927113068138907490815715909835850137346801516615450532048244404683884146552774882387411544779146651552871822226579694653588384649861507669100030118933894420865999558398538628559462831346175245282220583332517553733623918094159752777675366711333621311008045157758064354372374736668733470170997524598967389255553264547453611372441782214610703219649612940728832313753924077479436763407333490508256214995445092676591203794202468566053604201260010326653468945417529642329713157346420710676447634424174410218960614857952775453414101883393170493935710542620169287618592225125006040272117936785993185900728893451104016206756665540244225314837982651092182584418795544634925420947665067492294453378939082004159770932721998577747436212192840460685211670214576132503853231168427907363978446466694095834849062576509615630725003098380546085099715855055587918541365095625524782189690515877449505657013237140665754862931485906720216671043838065857282397166101405698325387519376683443240414841000580227573861975073011897735810911679435848791087725082815524749588379961199152704575071639269101537959184816411940678495000897579668308263417790682585654512671734980205174009287061982905817518591325959942356694251270232754977672780278907397428029935558131575362691582937818073449376835697948088816938335636117249186302936438439257127114925534736866264084389029658656653608745776381778381515200904244952634458551870163514413042714726152069269353060650422274935447256147218400736757744381718545025656427545633919406166909114921902753210132297168091724767435948373806599490934494447652807905611676306541992198995391310266108499749765866563705281425489752593145865470600018361501315196929960663624158530751118871015943892659135665720022902898673763972483471915800314254378147151791853858129795662515138953473339244825522838043241499456366205602311017629258849422281911806621217547466463590519987352579922943805924941623638566314502577674157746942059966501632083828150910915890902644290378616283090990094975027140818947419129678832820037907829622384284910633767025909061382407058497324595586247538519911761644846132467107039085939357165689776097807695178836468432388987490740073510168282546356628491598032748641343356761336414328251992424232750375613360532060173633819437879201792216164232443580307299807755479434594212183913173733584353513131309099455525104674140352528912010856281465057172597118008206978414640590326863227387243781864491577810612369427057917069927755854482028875889668011966184113952303618150882614396300850376451977313263000972100964050239228978941129419489286997266320184823802696477815460808186797878837344662644738995344032115990459311305524944647617360599422331334471475961479066628977382280274015234310788830865528090581394272840157097407000244795221659982410688944070699356948437481033232592996977496947980497675683523313419800371955494610271084767510029119211729027225348870567546089077702931463535137867862713375518506565808299908538106137986590209257393463385714761824867244128453698688633393736710174694285731075964959450226674986821857116314359149055365868159578775565943177900648153576675990228220790592576206090357617346763926469494117015314381849655794152302522292726373888226385049229384137480957383865463178909358689127701483350989472988112423916212550017679434452152847706045014563477893389674386722976856029036982642736159191358461053442683567210079279545326170864856739163798996167727776144713702206728447876879142257103418357232930566595592901529838093008935101484318659708416821220016873627410034342532259385919287830935149181429177990500030644064080575452367570652319515174368582900218654030525314835974752906333160921719593116262605824840636249553557561833732418490229097582328633192533577114723669173060531539381331547008422318365084797320559735342466471413184204839269209071012979380008029385000227748327675989006817903548922701676144141804772818490402242918998686365415036937377408038535178479796842891079666798457942293540873667024357712638008680964993415432285671493921353658025149359233137385323077029600665632630786897756825581334145368523215315636025842677919547144821339440061928288714459169745385633825507128326866844633891524451807396830913990489726593943206922362329521570797528708053698209086475797768320904388217768179886267767763550836488901947988857664574570324537716177385979401393401496222549209194475981009156714953611364808646261756041344271645865783581391792069079572632686591523958768641725713722706874364816608813409374432492924832812202489778857395124654881078969450838281329838199089769356509241640392513574488006500407180021317785274598770825004929110465259520082444449696960298264408918305983199464727851162140824909014321113276731741441516236732007675277739244795216713927340177113163522642082486676502178071459731213913109737281628882387600982407848207220840964684876530478793926137094883015215696702133622128317963650200178633622017805537082789299601447650005691353760694242539100049016571715926185689789018605209982831730008389001149900214975995873772997483668547568021361901357452353503619103935691713110335970816438034483311023248158115565697758090030738936971057163126868823143086858443301210960165335378346170588929534359375022131043058826033459555216714127690364783228593171974052857921627258737936134428328167415033036883185192374633520784577042522059797783710196597024462707627945631998098142469813678409147918178476202933182654365236808792251400651571674271005804339400792282440974583516405411683059118390857053793651850638972063084401875373179032481872290308469485949194728973277486453848683494972361333731015015234908686262606654750068129007147668785123894608274982285431536936935238356131764210381406019314563861838583500905385260128165138233675410882569833640372774358851134209092057832076810569015367699030799935131562826213878539851579491249126835838143448639871646837609023827534399148087566482086933793091226636176073140603934187937730763725349466646640342293331986488907394545973371409555328002430674074351921761525447033760583153814758238196166167200967816746827088795499990559164498016893959590513821008082983862035917261396727045745199870980692376381501996763723429518814598521781342449535761305104189137716747615418885430845178356956015288196067981745289372345689294961257698710370054614675600217971815649373959437555131500327731154854949485939204111393680321197579974859702808620431081448824571445933681708612634666706507241660465911220402341262639994496718801540958818149070066338570148741121444409940222176582551509581994401999600818311917892118839908436315723720742983576905988140048512060910245680314417692312692650481471474607044437514570758431967717230260376420930932715475716471576129280337775187591443607279757964891448691634969237175096553084873786391435547068850260479105154744913069695876587878364690585288782577046741924834802149335195318495184759359613130358841629677660278630391256009842509528955832006624906053245954709286206035833906158288003695628500136920677924447600794889755062503349197964761434755779756882601994621354545236548427461335816011773634657570632239719057290848033465722395268087003149592649066895519056947344666273247936951034775396893234428682811960495314650652933132884074332725401951984594752182320319340273289684999783879925955419401017747423550085150078946027841817817397980417716253992811837117777574859203225993137983659806359520693538737825090661073442348411902402155923262381372700740736666841356128366018380606411817827237137861230702996646021843370501976902252554973254028424756613239001558374100993873169913596942229957909548607492655849119129888413522880704533566715948476203686984551469929538837495002726861083619586935313976980285379439463524846652489560114841828772995399734025902373293529470647581252610292173148470978606506164386064824138290624737308572156260329146526292360771881128247578880485404999652043403083831051900292880857280742351602771679372862122430044888426577116820370963624731815737325092618532743590308165628594672481711579870196073445045044732935142229402925192529295032153130591807042217154653589628565738202493107326150725650096873767825414921159710596125497863772263000615839040001785008229186593102347580711085009579483616919851461204490095526584464993385646560791250365269513055423129810938192749849773628048632735280278160752793974833848761159968684142583695773504556264856442784638456097784064521373860236811120693451056345887825513503388849802874220611636501567693537140595885444444869239743623397625440074676348520656456385657466954451570913426635754213474449645326431186216036999346303286225042077540520966191498735729754239674504030541765964994121350834535509785825077343320633027113642545596802885976509641744058341195109192191929613458890283621063846976641011532471013800126975491400395458024401871346794986305898834173522336087658955805574476739827973158871787820020586015029484495275998046776918707539939473137427286134769945462270687845901668716971903214435324135793386540947789611729186455043573381077801605408807991515717386857180454693593139067414175812469041332802497479229819357224132056432537727533275616650390690137415972367294093665263392932211679822434123458869331818468873253894392279897624445258725029991246104408880808810751245432154221467253124643193380752610635998194132515223074615946333935887416393636030614442251463729234229467912043157256382212426981828489317787271199217595215427558738922497562066884098462888205270543213943702518842577980845675202157717270340736046408539535565263065626145612317466220174571470427546154588996037284303243182688027137405048333706465722832740559357966421139240069760397477237184205593716495681911779074049352456690202936679214630371351770549761087396402118359691854934774031862125675004383134033712227780529486039909787818556728446587940808487150954851863605391244211981546979481714412388377533615217448971857123983080812736157525915143053106484189401903106020162189103193434810709333022036293385824917042127322148797809574521842228362931652773293060544915727493603456209658580463496242738501010159911759998803824636868692034193274415313341300353912997320974970700563555691339695133799031583854185404174581478029343003805156266852236650167890725874587892074310897667290757527763640912804589704248640678423227680355033903008335303022302529770383039287828539365583989914432711316654789505193140147395136726192017872917087345951429010331643174005841085099984609915624910339198330352693127945934217028687251969444804296347886249760235183774776147794657741652380819305212924419468061392932338182354790691557076646445797759077481026091967795632556655854410140059385408398983975146527958591947848652517278410488664707121470549563645455295203534180038508904470243060232909990215434813792541971869126615978785699123834018763422432739103753673662982638461563225941347270684770713549993222466638848957322341278648075842808012241530951801456772822659182347843619556328438788937298736944435656046968093121568181591351772861623862815714964229984049267442733427809989353279407585454359465242341842069898166472451926900786878517061277454201826232582981718921631657190308002919098896455609308607076374399135292076425300988217098074058186642046118396388460078631509739403292769259158251791485679446890729347362194622406182923736484465930433620579858974940319258446509295193258240464279580742058878864932960797397136442268331450083582372562136391480959449664079767233207970416934794343956236130711928346594392669272595543227393877788972771249075691262820207809771173407366579124462369282306955267649040011891842593265056025927284151407157174279294727787285388490732996357803984935465650360693071364139088166897878784873492805164153010418255247186435175785931053343290298982279716393418949858198897430605638779715769929686842684877211231449971417858268886425033485210223230626287903607062037221476448088169600495481856005276208177510870223542593117243287628594667120153846837168754779676458925109028041501092479261962143945827036211505207525060841246193981836853984342391818710660698091691449240640397811175214124177482180016559827197070402017047483084539677280582164499728642826588941702550872618226637863046659503928725655542760099007438024852787183769291141714786341792575321018692955619083660961372704339043884885792977905247519242821118776183178885885664929871960676688309341751196063767943322349961470438808556940007602280639698487965240495485472634662035416471966209284045037766123230696190125436635132225844011757731410307040600465283670016986262860447203757848111999856430414501425931074908562292710040288093059084401842852503154124288229127404299411613486913207154853478843653329787016591219333828523377899629062222955714926304271828687655054262251423896553466788248777181152257488728694194876430803774120266479765501321297673791760247816284187345759681265581776199637528344623744319593555273993194954298618571912997156122798097733908829934916428411971443246117475301146614216667624217033003556049244262740711289568637876844591641786699787930459907739589934761235838498831506583663971522037899383068227398122448775941893869338173115602657136488244904753807659931484445596411003344883193246891848821229581472986961559782877208034297762124864843672013528774596831139242710925980933674187090499126170246137529595878563542640320694458809055774887704204585659110930341762514952068296266261953306099025962724835692672391279130839994500898617771845120128962846428953011295767832365387597479666474551064930844328985079245191667439281976892651063081879317373509620975483167767892950732774407370625959883948393974661270308980553674059923924692346600202945871836923866955120779697748407957287007820584912846323026069469995012268672341371034023708149935997336150870996320258288484229110748880041212309584313182871807613325744213604180777483450055143753395556899296697792011218471957012606451260554010199038650668058594331449799970533772296837169359371021882064023020694150895399034445939435343106443916785184417095810495373735589593592425748857569010391929146294089725100224181899098906286408130910054846089862999893337624570579376540875597554705712520039415670277915975221748683269259313741648551726532618603028727239899396927658984912620756168055992892721456088609273954556916821236044421253597559399090396320895618418847022777402723315859252674059967756816676879998441042739559500505490214576516454188448646080223516492850892856743847792801130345081810852508934477601950571062210267046751281119137293862283844882579371333990396363126265602767692976489561277797100358902274863422940616507176501562446339693209255478369171275882293701965636416994817499832792130310764326022273211170628002061609780953822233141060935533369259967474628935443160050012505723451602985754705510246536390001427938043174078797709461718276777950577166256439597955131804269515592721657008669555482411979282990234711891478006190356684856891882740381522770737232435704536717894381162977388898686807593119150699548321909848344132265353396113601784399383622400459639313522076740105122158848674327136377180426474443122038582979202395327459497232769132034357208628890612291983604892856097464423891787164259319477546355962622774997815148072362319290494238546695168943427911544548479641176016072357693060319461677494115484035397265185965059202334826840623691913399532969988288352859608387345067849770209525098380078064882622215245829629337463392086888154634349252646712155942220211662809123025441307386349893342579170997680351374116801073798447485459917077814552719314968781109605094393089863624346550830117316519904705287668446179348505803230660963739168264848229859025130461765650507297094572265099120290767843469434694606486373362397391086805496379758746322283971130748163475069243916827400288332777461896811832361930944154734180077039874650742781574224770806104577156067997697350200504926728200966294499593441964681596915642386006981170134208506743658483714681297116832411802727856375463130057643348038615496149485216891698011379125841152080409747617125162916024478231414276500309748170873108303466836227619799602729268897266600555918120409763330843886451492707697366462162671483019667221810357609127775051591810621112972974093372994954467968344196970107522827304437019465549875259429626377733477471922371245308850425435488522201334500999707316264935719576770528978287196542698204761520278206949802311597665427551636195159124541330319389713351348229831326623148009482084750057613191377661643179691587489185428278144238287672950994993454372893272227550401486266103080181578052168442774057129644541848152364086581327497980758273838301723872437846205146219606689494793134479784752151029399684417974905889698812238101664681160119794213535977146249493540473193708689183383977273532694929307991895496874323314114554090545392176405853996117271460797891180553591785777285378023982349460953642634553921952659385371195407490443752722063097099346802530656166696127399590977997037191256155534213058984330159959517046633359075228770754150954167769268356036354647109959224933281169668435925887902734018529978405637495588306638986959984475589451114522924268140685970939856472159075792408207626859059782619189549570238093570897527159144917013569313678382067963447287529487747459915409688968920062427393429597484627920687431485626278186661491391236193186410872753008740080317634683784251606068521165164687608296433859123496038675112683331539905785993788784998259069875151210448363440961221657847659864693599134146180348308880602956661099710932742834100696096843098579312562405873670303163252517009419782206275430074892535243963116148625839860710566061246619177798369222789911985269543174433301953145489800002116635649751153772360809203293725787689432738123023707224124815173018177275784989232158696908469048407363073738135199849073594575125194015501095024566857555596328117093708621103720565624769127956618641172922650256348228532034639667081174783879321828213578208301040372890050431729660333753627297383383418550053058862056431703423349973307305376766713695142910263919484778843147060091577061649431456601768279868632411569586227755963247819234420445868855922485849440427375099010993461470770248113963286763684031803934709179369404895901586950022539291762276552867754817102843886279434405550869765942004948720907448920121902338683331478426324100813274274776035871335625859802792745398469144433681355769469464682322067012908096125133463269898716069392089137642927190321638456156797143717724140803761769256827834166863353016566701331619821493753250034568369749129877528524439559752396246745775468325453648465390051494903180668669836503364764978246104571223186236717300098892335875882314816343041881730119389243371691753243507679687067543091558453375095559035517984586786921170931150679923724733155795300749596045973665303898249464602734710747147599835082746185986958437517255283125128481032799716893757069411483958549490391857048840082153368485510049312262305882199316911659552576733284181556417922422599215384941209511297450783611406670508157710760115204327304984099224528491858905676733128127847650935277170032523724124690131198996577423358613509015007589026278492181451314329024196043344525438177192224818088001399663241702097927519842660299087095822988906479883859606902387822184258384505263670877338225476858137745014395786397505522562916345603454703328799608473036894053994889066674501248393997771028684302747744032417209521877049059369085022173984379003296413292344136920988118810373347340987523768554656407237843243977249161777398599579924242877764970020760455963354915229203325051956352888865118457939809272616992151605826307157362924391408032385096496604079427359652310284247558495015574229068004015329242617364234019853685512135135677034198518544191505744949904547180043013085612645578309292594955612857265101532181717500268064609710723256331092662190760867605500444760707095273931580760054046325108018612430855399995182750345310065798925212337596289039858706744670405208705941887512924473232524916075321139183561259640433512186872464497284408581727137343041091422865829219797982227629012769892999220354129810467600508084764822370360143821882041156023529438256271566340180961365438292107837783376031375364548462355675008820894101087483040799253328593869783841020529876092823699698032133641948961413633042559944121622561574100687605710614858232743227134036806666569059698232972706093339199306365973380318675446936319098149274693611672193132534326756132046436497673888247789187870325281345507995318704540782159124885769897247630297134558124158448556258613555378157116734128688358296011661342611123964103315808446611178883421333669319162197430680536123685152254768602700754182036339402239518855507151922054978350872712158737797257494344973695268583125033731339562067122385480479357553811373640753641612210279940203430579320664803155325205329960985555074041775553490332775063993668137313747747864424747611370231755007619376874792065895425811901375754915079367332439891212885452371928805221116008337644738365044421426496189959868394803256298062152835952087488992953810958467479542914613033031668513138442097629555303912674489848613442254155186026255446067748837237440244182491653346968956987787962406489953884071779049250045517146808553154531537942893065557748853920689564219229728032625498385465760543258283532820962925122635385794900272212801424524671035338386041160222836837627119237336556824455573877162800163360242217996866242992903709528374786450007796572095061955739287534350066223650612726125952199216525292440852827468872199452894352668891301079664689650494947614965648478668745467698194320465454822573114461579231265955522443657111359641582065621399482654614329688246987341434138126540569951912671910414902907939702479688586947227605353186886845977042520600845243382862573412956945096563783223411388988440100478262541186298897740798067848525831501174648527661430068762240589504791645682349867296915587302097276327821844955506088156922677003088889878489744210681587187389143763101071597621541507186697943742171481081102021188951736362721285464393663916326761704741136939385035673219288811726055059236938279583023395875304369793793118808384205547294350355542024152698838938454639065045851141032572307624794149284528664190786372587939314101448929077965944944319666734287107184668123985068676472361628916870857649901722316031624077355711978861102716500579223904468221047542945220531285522496851839594556283324043906214629190988716842237411208718304278152819098126686096902462848256092677620372939030644490672209245032332719074390719020648931656930858099088026433002514409034025966850532131994095044192884585783169933929321675950877997495800277827850733870468267810522546889636942958179871087243913454196320549555114835032289868856058395597916059104817691313851133934042998226389528800588087904542228577610047789677154543214110587387278566960333407158840258233804667116034073131925735202439240984044063462740493788668100376373257704055462974416955269372144698112471866454628532167233287152796828460477519976545023900287201757331625147835938949237360566576194812881676248042730335982982074018183449357259398605357647087188370492236004441334043477254037173391155711455313691240520500412422970385491182490846945291990600956179646113178161577661361050256651761112444141954528171661254677392510196878017707424164873367407809594323040608740451136802263652250345846695155576164782365833576090535547017101683213889538165238156907391178200815868872039706215872367639245223848443154352374002402926507291748457356694934186031567564166665682815284312496258083988935412366818167195482161798906117287346482692596796911052312077402121847615490499716431942981806017999483986218202359457922357647858293156503358319492280213391713328130872461643735733345289219873147441081594143032906949333760400359817159250198626877130030694881147305361757445292862567217197188608226563105192878188525534072687682098888214688966216185684657765138501648813226207323316572029427763150929690296740862513160598807599624997131596286594918063832742587358359145789388325808029649944756096293952322777534514360620123013512168110982688677807179046969420156571063637938937156691956740642459252590269113302878317013768458860192358476158858285875411573813733387429070026078927961827423266261728765653555453697438835990680252723946628714282677471107180114511080961843369343821010855308881947726108945531580284848832594830601060836753995923401581788487609648813111411540288306331190762484030856117425783608939017208528255808155179667970143840494667570168654426913001670017361985487838989643749567426012893910136360150715747940934962012377879840625771208314569916778945702417313953569297429194749006829527224547840017100794846109700373220309808499892937585256101526932852905093505366729558852782500658946156484141450974878176696556167351882526427258697095008108143310745633097732137150097002806854212039167374247769258997136652531776808237556047948232517682560791033697826653764543990239655615070349809541175235028679959942736235319099779628676181218949584088843235434105871282867105556662211723238711024664897529599042882576861895446852944667057321314862544422618472277481074878856076220601030172176671634821300234326300890490987419399799290316998088890170724489883990196574267243282644886651206414118613911106970775483579013318115438718874166567765772019506282455983062341327567697185493480864816540482327611213789643672364494352845965610374621338518575842329355441423815608976966811244390211517364911550424553108198174313891150647058852030935151762674549966595066220408961408286085713505278054739089900470058821872919247655887966937839155558320485948541126513038921183420211891411542401339967736158674840313159975778831688860617708583387279394203784960279572714723379695085240150164637490245257572907793865876922575215277967810014280026200104303468705718340049905409487553662257623195355123644024438728260926121404532492110159074681893866340454146426311225241305261939768005326757700710071922715646643722844807570159543474584099862542991591172931833450383161278582046907367946469431201004097360656965819215774915588060363056392709779072102208313352672734674006877879246131612155881711774034846187173573257162992119710946306504180752616378784067445742418727762929804250091297820569623653184413284244471594655886763391828656225659113023753794561394158006297701001387515855950856236239240656923479056351137079799714083376341042897647504941627111175370531069462582920255440096152841906645512484394067950349755179478087210801553489306346639940862787548331663670176686091739648197545135304823547737282418676609478545181213822702556001360099409271096583271077821150487191202066494874245444448225953070605344903481781764941524277854811310454849379947924250355052616572391390958743091742836040660973678570013133763209163487984070890191676909773093474395758647550226480948456030775107840134774089404211249498793203706133135842733544239904050506137656695521301131516074109521380393017675462084044889594034012277582409575570231578992329880285438377474977108839873884287640430280300147336183115643303092767935627367382025665093178904376818293354731598692083093268151207371563107761337639043490715348792708031239370864058581239330198007581155088752482204683757816747985537423754333707882702307675158604743999324632575619106345849407867424089506871233571234642034814086127282099611895036050847952398980925827674713028824266699078211005310939259568610149378578866220127246623510819036341832739919094212633308216294640168654600280597646262490382279331261087656881777421967276699385084245552904812180057401877710814413752154103580249194655244975432289357732220824713053289585752554930245713231074643899254552983282361076825442436055015351602491941067958218741311742508940835949029410100344886172119242036279554172094138323269669711770529814518968506127994548007010899997691852727055370886440666469867307871679649627705460482063773568657746785392421192999628814831721877725246718259785364841909154543976954539949681366319849131948873952823553362647328523844624638394732981366215750448037050037275311940165456503217565816100720180681166860524486413022459721360807166627970600221094483986302415909341760987017286382052293563171580466190436397149718181830657455797783297361435756168434414555609496907535395339879279821630637398781739154799722161518240253231944182456348307273602269477692541502851442642310330797134519853933281171541476960307243978684340612633850171250245413723496184097242245890060512023998661496972865573429141634483565275278070209422832263568055380422276453926900522383104248400884879048137437496696256017629022487378015834791453999308952775161936652882459105249245726110961703597643218867664372513584038067432667374598783212628787584381624110690548199361053209388042196919552212641606314832197297477761507797817931841167770304703618790745093240960143301467533412109094953932452662389368728870006341911708036511808213003771157117228424685303076864694356443570137095278613784491493612959130427800560381218327667687353657737476017066539148714066271982351769720389364603297872196061423934797539366835684086860922520291448752416907738340032851846173603040030882184544782937238160092366722261238560619703970469739332560656312018094489025796604110371432485072267555431367185782190537273740249310064159469477968843366484661062900941254635941466586207551539066926470398207516874235292370036468854678829978251886481377295018020130512054625635149047142812193237219635993600389194956919626964200546178085325048882617365371653275891782030030808113604910165856739943216323375398588305381215330179031688057301452719298313425714306674810487080438092125138673883548549348255649550031713696338195782291452981978659215632982952984576837394602341242941388097158907907184629320016733592944189857116954244365438325811472872971762317422689653901589652388698183330349324033403322089481792224427650999781567893769004438577894232466541942548813380273737517790068227407527952402637902328027108305254192346750882321112627056463696482230971357150933843192277348008562399820807840200222095536356389038211759279300963606081269628075882158795363067139447148274788402433470006830183394723506560473601841762915623627320239814801736699808668886299833294002796822967448861924922161787568980042244646330939333233045447651418281496315005098918219866558024004968790468004053171626149324678027344864959443714591771917589134379216768108112559560353314545071265006129279886554018127670721534741115229576312537118896240227391163886622731111814030107128885397519373019963464329041718747484323953596723417754742170969195886957320064767445779117263983326883105666541381829368188860062079644754395238162225808152950601966166099830103297212378707715285957564690193049561575594918016209777467276314470977399828904790012783898603399258703301526885340391901205270632657941778887041683000512936247091272554530560714548251370271595354573443341543005934359984611472405160916314993507866368909437398835401085096079029463862907728476731901245982562132018512140999535947316343489015226262831769732504056222964479605048546832952053929760130669975641195095709648709110429599791665484770007695446071757811853905730000113213489177117773820195586082828170975563126202447273457971447603608786097692226421458547756507895115144454560642559183302919706046970780885199788217710884735201344417114536264176261778314926197951701049327976096966996590574806727966404697348445654900768102405308394883435106745921258762006211972857899323269265116030068297828704590668150347804562256734593261988093396966530952033362005809396829112023044662949380016865398845404682181959605515736868535732507005548589217734755432244854742910155599334606529946980229538689928156655265535792389236328397520779590657753970718203932386615318586973476359220678436066491039896111996965635930749833923001955446494228175795843206009863796648011073197538140948159842505830016742681024831645029633812329853273633299582166610830506066666566234267693346578921626113546417314561134239680385321939191562174602335108646941920635396734046276804197878733228292692603708108635230052893983446433509893799609361189422889065590310176413597925016442843705644357245925647580556557210758718346345712478099699767481611082165548554766719384164098450076330786263011375754410435876593822550929854021468969217344184138557462781088538750992895107922328290531458440109686213552490996081191040904454535518643118980849966941679880374086758333937984949227436948246025585638091418204971552691645204777213051555045923341285114836635441250365367429291693905092919852008360038877244143770863963994724075725571721971596300194455497879195122468170319467239860288163966402815443883280528285436522951898964517012117871898597844271742936859820936750123281390523372954024415721691296643592271191300710109170894322374636169482962854072868650199859905020057520525646510863059430683812468571145609357999807221029713172064299445645363884225301484820605958925143374534379992795718886028939526121299115391638892372586155041825136275344133814442643093778616355708083366700624526479148838656542825356769949441305945821728806092877394386240954675782450350107600512668049189674420022805698863103606928773036647154982390774210449669099213879542329989254446679584663773267013056851554154724682971704247853805700605502322101067056348239236179864462839742653101455019342993908915288476889254597227576056621149885758537315406922609372787621281864053928648492612406403339918622522757537124096611507435652820106365411670227031536019678998039655835798539546526959206036127895055488164877282006235467910167088639682630112765192796633450391484044700090277536682830789272042915590923575574595673229633636203263742687533844583597586558656249553985295717141156919050516169659156683314382766332939220090287521400041246819666616540012293831957525306395221675474084094752715216347793332756959458539602022089174035250192103441532217905008666213093592042514824090370529757065185954150508997146315857248346275726059195555257267541013258388555989779058149626637922907841706033333088753177458714438812924564025137003219203830481327896651851536584113135972058308349287790345355837800606875448702663587989807987725830435757566652820437500976923135046605951071517008779118936611411350125878353323959188118391866164905802698731609748965772411731429578890911620740680693684043228713797526512483458131805114120277106949334579536394296491700471054292985214771672376599607554774414847994749110604084456696270836721888532237944820584344552060537437721094476647906495241515502957676286284370877673662378898649803877165838645265232448267357098082975962913193505418277662214862223097952751650234416998610465690075946241331645634412546678607123483916563134652199554407604475008968589277640413196610073847094746326137917950882916006550451147708954749581181431124241613667897073452837582807476247592344676001547102773232571544026903383450123951083857279396280655574569402054231526236503610680269567817197412484530549699643680478794313468375048031154729562888554992266153849994675040043764943633541960719834177147108247037361401315141960171955847913037958355959363618186201226620309734053641689090548504802972001383835749562014943950787622329663527306815729626182358153607017162025303274910228322373892423365267673728736147886901174292242638539346118121307780191652831066059184999975555060544638118561640255332480189650088251840499498641825417035711627608804531421829771175574032660648009938620288382172980042105697832409824378653038344879292321035647517659987503661675846988182179628978029117858790934470058136386269774676791680960557077516106068685088026472610752747422228719861280032752263718769241657444363446700338274237069779875584338070981450842288364773973223059950508347898700404321538620688337725983935404856745939085247541818069267057165171803400670841075486425944071834567848286568968575585319328347172306779157841079366993590543815561531339350126478627395907717565102431294566576163747163761264288764087462382004920295863033863554858016145336480819409250251489191509674843345548439196876581575142916319552301329825725134417432177533226050982199841652581551144924466462230515815856080161638310220775869041007121887614055969765038432400531567958943589216292414096656186683080939543875623957962110015474705230882473710366100142942019433121293081301962177745924650550801804721319443671460609385451096846785080253524263339172668838849605219994407495940988107221207473011096009255688097515300571029518426660345743212684879037799164905751443080393011821913688631928779526057882375944657088875011822595440140307801677020883710949968899161318742205321668909218060381999196813615762877674881120793377346013288301900830086708063120993922190928494648673657983959356054501088388064947201826773408076920383554108570594823937999828793237766803237844100363519358051593894768915546743284846220580686915149882403654729822894331940177499047122662840018909299136588854159124673609887657723955387893959813825665841235124752416329751873769368104665653508031760206560307846028657986073292723073037093432333955077532065680032233807331671317156649643855264154870212101554226443113740729182513968233540785822434252992409743776731708827280959229373351646029890913580684888004598972815885970729388752838219325006027041073292707420725542209370895883234466421411510404465322097142994328529329340704656225565152218503987371505696880109571623944634870401206576767179596017531404439164488114727018994735560860691959547850679176050237239699086888977642830376882463497596102439597052443296974646664302389241922279087102666393933463481381290049802919159058246738726230033058833115500705127758215415284343173035636801172217433360388975863785712515573905635524914562790167968505327425486808253372834275799025281765403309073357298411866431444368666340916645359511405385887322340091024787162401326765795035491928421897998502420813827815982668748825823104615283610015916732692546559012477501072332105065975851665699421372137927825483502174538432059640131925463293108737644102207719578639412871713636694640959184315615056741778795972799216755058392920054889878247846747680535400243359019083440195090873631597456075962029654995927147457707669012999769596807751978620201324987621512913151965336570027285675511185707927927775648270695026547793126251768798907484654849206287512912155657039188796077809478704662726998610913731517595842573288814591327982825368786838954699427669939923111493862630688999433576653871282101395605538484454974870375759961970044863964012104908862985811638326291243244501962849967430934888367752420715699174853508184521978732806869547572567796832365732608203327788701283587005465391833476571788432683004227333580081374199737237547608549399149481401731203900387936602247344503793787423477034385599029324280514696921983116089216287710796122694000201875534851941147250991752493414127236639935779879738085756057771612473283244325281009778763488045647038100835506389519962879637673377004010205616290293365306358912921714106654836785592935361559606677552091842663319702910268143038201049827413093387825289809493927735668133433383417241228731447541142243112855049601377235999765058273733205239533277595760561383284660725528816507867060503492049358293745728030298847385250030306594014180897586422761078302230293972444657181496898241084301566095860817042457527832908897372565370518865508586222430379246262935866253842520187035447868992710122619569059921171565476084144182850926466949642717439493322309088721788614992086457002642966049369514942383966392005973184369298979889933264397060689957431891247067444618893711449491290206697373206898710719739108965120542293826340051516062485473123841345674647591412109359241712456574505138620667416588675944154032716819270907306764363437147327088741120566683666127682442702508222732582684003088826943099537696734460257651761370639979198226915549960605876815397014040113794342389209049688353664388956292802716221649762690896569293439471728307889426088910527265802180760705050418167661018632154593161870524628635960086027099595220062137054331459080312434852655349395395649103954033550655498001427450390792256144768679340371227180650121264517902176382793991286230501927484335044700977249720094037856370325766779636859762642215534044026705779685162561730034252949226067657539422307536034152861734398577374008447521440202908482239460258479056033411051374762974049246843998921133814898240513802874904404617454958026882747333900546488940287765487436411757559178543156208608710106257825873324478641039891336580425865977215069715927996189823272855050039640116154785282483407216684188168484801830159097342590143517007274596781317804347743613519318457059364782483543728334799259030917547917087762906709808249880155563687251636091025795333871579133828437979217445011977006706863826102257263733843454617862227402602022156883141250283835206662036227443690250852582038296946256826429614088672736046170490674297838188290736702443986107042385143704989268530383940598221869936556166320026110086487033224711167069774539637336214941438709591239044253626003934304411068456575642527255887340798106986884461992854345031176669870042625107633525114806147001199527892959775387375481824143768570780951136233994540972306342554962156958780728771029965501187844957157187776900897000515346216398075005139059326986214502810126321738192399567789498617440198021587181406736812028236431060924190137337072241162861974466145165989009517331211353930938049932473589057260950469502329973389945386658717316096760028222228624212528354138449071363084987937348610586498372679836634529605682164747281944686410852283895955268312893956920084915677961586005916175014153625634941691240331092295875085439098179623487895230133300437058197930965857439103174241978074776348843837628350829457167998433042920094790504796786923958863982151982858358988144489751817183997336387827783771941575298898493371542808983960484284527032423213881883253010507500691256513887350314439817092419919873770976824179579865935423819872994814854667177970674941818901742817767562422380962739062277049628140232228732051814299052410429915917830220289383870444939257314349498454947179366813786582279989709696488172277299236069189866622372441965987626151693620600846091378263291066263199673739307238749543747387366691325352571782146423790263620656148363672935509724661779316782094729851933766162697367104718547436255601169811290814669263093085717022656421506428306516879547881588420280033478737974183013667724783383450870190509666800531806701015767237233494161327135068279747596803529398224580131495176032486836576457455553015787266420888631359651537545176906439674359589275529064826417546882118881194683012642016708776829663070698546345095625389076689323328820566352312039574015586432126765114247269076779486365952262776648202767994195803394759586971300814291280397302563094930604103668227403988925218517072458372937074540356251756269879541811179256896854962304068900213407821567679763831524704751574779813990172446486236032271509056509348975205309068850026615967684879506741125930720089720809380310628935315914077331260291205545667246919193671557590183701850918396287296290968890976560161920724540071952427957958710816648841720502515745559508344025841171446531315186040398293784708250333197451286540068391748022223705124282185774574368060420640865420546023084287582353845617506696891988086398498230000196457284296073088442409297203817414468884070083234036724715096865506368670011599286646112332461518881171655435263769122944064362765703013016160238387109337190871888061204837876688736314927049949884170803065448131854201921792519793817511559145936216656881048862365384656777062872968114490325380683348807348483773039743000164368149212687055279139833585890365273829205339209441664556459867238297657439637425111800490407937916146741710969045018800973542826176444752036659940214115208371365668146472969439755312074923864349929711040806776867765697372508088144416254578452749437016884161672449583966335235796850303417201918807855483940585857003294168713135305649656365582078118897477258290491188839530763523420651543696774067757830265258509683350770789750547976697227938290349519932694180240050338602038927667943470646004822712852154156352461412744939159197562960678940503801674171731568010129232635567303150495602423954311496074376642591401722447331907763657833993062422534995983915471290974143083010810395706863363256629622474383699440399215181795185183873443664297876911281463907137377176512668888498928123567699273725995527246669669796309346515629991681461393255422402805016197973763604858109317512379889274312525198043010838823155208135161986670063925209927104617413749739803856150663215208400551273768393231225093419144146004174532633406556267675412423201044200437202928328032083589476940097212651285168438715991617010203285054080882006452991014224061607539416034650760539539275119514946068189999113074058917792555077221497889439136459996223329223872129370592862630050328027837450512698835012900765477688581310217396616426847641917240076870509385110448057105250154865512664402517604653438132354970831552077970853798197943277203849832985932320706967290806662983248222544805291765324888606755540368951524022963542574732264253517635278533587328316354817570377068805904760461432687563427330055258388766925397430490547693830753920513449530237403300717816563523467857136363507248912908966703157816196999327461667118083695932909295606411109424138105627568738299266576307468104455940829405988148139220807806060537528426762044698691707633837975226020271664886492907187729346848828738289840792610456481261864023127616726008335505029158720937932367355085091627813886539865802194260221876130086881426388034012637394927184004492256149071728684787398736527223474384352657236654177657299144680739327857662157481575696415854088088331467254667488456346988694082500999465414610400037873051573226557209949030613022253174340661231904461234187591589547638680382966794978608440549745998514487172991836729758454149160003838276197430366125905959262205264243744850331422339878958520319977672002161897321296002315961607008991610153276599497928088900079939487291794981223368842928107174027196060276027185597044866615936425298364728100296791527087077566410635202442151322639720241328271362755805289643008182296598327999196589030790478148023104150585780020898820177722167377074347853307243780724339224942222219567518202697870321395214141596427035916543541398102751024670393921914598800156133459865906509507614442328565506358955116055665180794082367087902015145353839021472517222315795569388676470939383640033589415018223914778255345839882090923929861037607641545573701537884130998524113617648072241080726914702322782180679992830791859110476201000550901211998939695510815762343391278641716776760772101375476787096558517647526927282156400224946488934621461224777813119795017664637830905056788861388500166333338973596305642996016058001407022946649845661593667973991928250417636296712429790684184769542500422422665666860064009896337177370556329120971128680894401327587022093704515096243762806442511067219555249962614817601713479382861718274691042154223523831468510045432913096870014361521801701140136046153814195321312641319058368625050527579094168143332087742988443358330924233190878049767071647027559813678716105341900059303943190638237866236698699005982080171641758221894639715552618583847154906565640079108102043841823066716923523073124633336961448632719164474599106241550985210854806605510597522260818218468202573072361533365394578462381156209610592268366574082618281832002227861500975725808766720942302389263893632744117733332534466016378975470853233872625661707704310701369634211676402562915418392558762161370087587868335187840842207355158100368231108591386754137442280499963546625006959667320627551343306281356782311111830714503588589073113187405206173573475997786810708809366769603317955454488288638341040654076368476213969484069914166589451487560378636916814710678295684967237556602656950713170294060463962263029957206756184550927322583043732151990284496705230907985029386744783956497100526146960801655442438442769928929095172350696860490691910217398259794611728648097827695475144401079440572986214790747009956798133833540284687167805616920171251512847820461390364705195609031665619205641117145843889586014278643486807100528983379891172245765053030121463155767753170689519014317880008542700365057951476280122806232682858781452492548340673013949422860961636497112276876598530398554622847683485726139136228325066357829758081907274607372870484964565592634122214284849672750427344204355630106632455313372109220865758524286397947718961248388950401954378428084076266693586207758138668197644724596853869917712341332557278534730447948344145711813439890389980579855295053709171583826369802066687266279344563211571287772936550556390783455557676058229079286914233035114214397476873849081729443834633473029922274324836687868624169391497347782205599375901470623827348176139176976443956618203763795821681049172209563670961809828689915340636445214255557656273204457351461188267013372469694266654896141159283202396132490163954007200031352237018920365902032249127457135211888742881609932209531879292301583024575824267327728113513523809551723647774127780638311787872235508129613201861920595528896328004435246512050075059398494179601664509908476746496179172419904317284609024684288712958594864605209316567855243467406314573283568743726789549519516951751808193480796144841910717857716197295109511214766587699957925010328896361364356067025523197863930890111989002663627037281520484514649104351913737956297169551271049692144035900289524769079565499666282922301768288758892051223434141455517600979532057389927921165525195461998800693039019739723927593960796874924300802095107079644779258295626459179707780404459831574287709978004693025353003522878588850061846659830916665051260746016458258431879042819968972953600028615522276759649410568724004655215878222270689468421070710389019600796103604860704134685235080894497858257946191155148355032808100640082576682402016853068271117687720408053824445846218010017033652744721879103394834057808285137804129644392306934593347669288888197037848343603772483051085622047782500333029955733351735206172092388667685695474185372678145054944525135342209034237919830875259723301459532521162013701348763568969616948215707440499267041540771545693220553250203889282366201679724074897470265536452592081106993497393591558920178657611105411829295240566722518990379047522244009817969350287347707656258579261739459994626307860379577167091528287578432261784165577839331651321267229017990890348845598729403819865550290353087712125288563295797304256951672748528963849386723420395403427423077552552355763326551555292772641718854335522788575642094983954946100777901678726086351934895860216623663533790189081067579811473854897964802120173223141665182492096191955929367726616782374669455576314331688696847614933272094773119032995092382788710135626380501999746346188594252279014466245083707547991966319117604442189922387463330347579534915653234218529409283554011083480784640547828032124325791675030819435494966913834755926560881558558436362515558660757841035307067945964776020776866640604791486363663271978177086905401052849224839533687070255480347292399428326660363951791953610194959647791982087177041556311182566006469730881332050574009139177615840673027053276057522575845974095860275911296305441848673625446210013133273127051537374763397208810265752072606736108534849686927319687381740400602162471933772819429014187637877478762483925332185057060879818959969760511206418451795366273548521593695098154087513667325284281224768908625043075054909287368628260002824700431830148215919404863430661832211722809690418217706521044408476880446684381591384060318593501900455511681313244444102697322562034863280370898424550076071750074375690999889944616892792176783247635951468467861966949777738954398380591448218561363500153975238914878896394649587620751347768872366092574162131467752909182840978430326781019305065172498738863554780524734360890231821041874467471934840933197547693459703505132212185815134463091688783985660022973892064242062937589308099402007718827759947494163401713853452051037597376133203240938851460643145012775312458051102370220607282979098267320033533928188341594245137740067667846787007009739135705394652704438449946473148321828496877683652264336340851674354480399920806866775121612925313836664604751072729157857987754163816078170399993735211626089853392929712844979279777709787977052793547523139773198864906308797472595831636803023517866800528514229579376985806099810304964037253365564186834166274230671772350494646355510728482675082093850403544394693164039166755142843409389064884903142810431886270463237718538672269760540693786386407343387247966368634857598033531292398976866031393939497274299928412920287476347363839458364527773601403171247016595725682594488466659312679521749259738094945040182883063955756519115545181177509263032908887360383390082347435065317698404375328305047682049979123573367222995070498840656588511865216341212816809444631335967470233213917516665995741544645842763089282441385676668175093027050818641673306502177000067543551639245556932580853409337891724515450387746680348367702079681859280347405213041525228348406245909808214125412985205148499113245744655344711206892980667845485653136434044903992518031024425811270378858219846014237669088599273226586549826902121868689167894266534052792354656396748694579984850911333542769771534117562598245131493620493014004236132750751896578550950159210474101114277600800623270684502031900283580466616915394142429348812626770387527597979983009175874978340829522685987721309014610716752908454171499653152989937650580294722223537849441822458685577486830850195776652975529234082563579499479120161223571467938684972431721967810596613653989624919706743308519988177836851325697328704465608619150192408598354460502457476350244713565315820959331234770616568553158071648764965570417223811616325663233261086449983572509621005837141506934793086137844985668888865161636295995251693828315975029756849777312375515027681528938024985628691103724335572208607034602858687591696372256556974383417711273386714978333298711077020253089648913023248938314163354799851628204506687451273786098153910524432317494706834883815098608745150847016065301913868089514617620325413539566938295495432960520791541707856626569724793867563871190589879263034558437077496306418907981445018077712615665946361157936852749858564471408942484926828091987502224064570545799817411086204813436737119092375798986837993391790737577543450184798420888383430077182298516543960106352083406532164297894730762459633061244431571749636706415777829708056723670629794794512671165446038654397377345997927150134163958405389835807071431709978565912342012127035647964618901159810432809568191331742502267170226634397024159447330113578370171479625958093133390858261153345700054204624921649848436770390205584951527487498060711508722323379190768218910440870611836396934938193966017080454699146311206063499318179879794595482386500666556769808214802972352581785758358649536702261898654173975272783991158407788801229627729354013915649821996933975188159093057573304483266293758135749365137446471594850820694836466740219763067097480588408157395680943040216333192953264576713727936171088778924869836136751041957835715686626544694987105232564382769044530068012981295713867438464489831401794873013249437253147089455083020038330669439936042743228268548023796645089127419572513588744891821447165116498652227596658589592599551474097995450061992735850980419903260547469271771215275143202978446382398697998814838661173887574977719546602279229622020846102808952147696290738887821662697143320207262492055598430501426684371426195058759290160262535268841963717313446071142917487714230771264516848564122298429783878859537025656940741585878044523020336600626852119026520918256928172462155873004397959968480315923962021947578027599290319990168358501075125157189166618860739076151761947255228347199886311410568487206479481102342510142225833961642658377632899391095202155128414800965457854552760239482092423064106940014040064438605235575618749568932140369654466707688342340371377526340335831550276346387186910789459527499582417555576482073780796088985964018665318775532202134847974593867522526795229422042381802991764074235645571481603304271764505361706524375089323086410073568025752243098865032297436009637855354314223999630797483619775090137000178533625455918424611665877500806257230895150584664735689896183316356734805451225873707808987621266120647236407756300555291844225219969531272266687602287396802275061763150056061158427717496247004091042989074302647606878312781440124598002197008481698814164814264951780207818744565007865751451188763870683291351239752949280661754555751256772749317947642721713281617148145695728544655533618304572634682443691912224740326497136658048075684057382455535858663614082006800229500806493121709372992436763462761067072705239869695477592888737832385418540871234098075549311461938844088312079759224327170123565635138743473951286913625684847880462316121504943438406264235558807619998116310289593880164144873131145384432261780025295542679119549325864991211966954282137241230631407557353217955815677381530533076122369745941608576019136823331678106923529026085849052969508083808831552852088885668300649648877363938219174652895325900075656107618737840082149375977842839553662837393763427450213251555589053384278937454678567236982241525792529924715531457460788982312759061736256639691416746237285535149332758419772872165774070135170665782276812494713471541988272423972329141529266439332351550918360307731182580361400428425234431572024631414703348260646767229333230325684314713028230363369259684874206603115534285976785706463658592506910343486556514232357539016115831190737288894726537325415165594919550757372890797240483244335957567104988580668778583168724934798677213013054147779812726624763153689016922070404908760299461533466231135892870136196671980383648967988583690133518229978433267470960809473387153317537672403719141755336897871624724097012420395825154111654459567485161949072478250312588336492464446852465257308678657224738316536170847399289775692509605759587346165350975151038049531056361420817254752545432775702438844756808937954783492779541366848229948385322459825489980675528676939219886889948583271485099466075194977838849834057063745900849471805063631710215197367036961905981443270131678407967088345204270375663530289019543384457422068345483253923367060239082647269880095504408403910695623334257734666681420991703023778707805110223836444470950209721981255797850918277328904353011864229008692970090511559814751453058609532057924714944434576870204779669275398787592462010717707374061406794341647407727214439613988916656346742389955254879407906541717072635349822373013863605407938304592512146058840608419558667994103143837426136738801305452690907492477564821189887089812795110818824230614318531351100739703065588105376679969014712597701242414212766301998331971541218517529402849718748893429531706562381114402134752559740283706950916280620686618203147179568336891763625078395434113874926128381112783915614286229801830459028059732675725372427449454744894586399166577126544255453792982455584993406665489325207183130879660567157372947690165256035936210260686761681501230137342145056167166195352739500527079061926197321476904140224278832215423990321949830328615762554567599601863064989930253321026189322024995595216167103235654146665531929514188979444383563050562647608219264727549044653228022951941203956746361324610685175480715982333891559441031879732480082942708447554763758590057400915990901935968790181614792955604433169567798415780628042103925578602686933579170917158856745609737144586426681401682332759624310435066329285038205637345781237727597993544059499383147345007126887567231549828452337669621119030966757402472260529860114448205252465757711794815722190897978070038102339155404850630684260203366217884935861070218749527382119493487514620415413151617125308006818651117335807282333662050237089950677979578659652577394013715749994443122798805744734458174312605174480516916061880586153377313931724217219530039555282305777956622537699439085758287434414133504018441476958742656864983235949773669559690470121957839509731329774202817573618029814417666983550873961076025979505058044103725685746592180242592641595278889943452249836366172517353867560682965576357909917164613620519492682917046537715343478783291994262264967164875018021665204200243855794073589865531588571647015734927301234697568895935155117054575010447339315654273729641415300537187239227002855994201604563747395899038461668440590075699276424064883136550526327608293961869530257562828200348349203197328080277303198464176775414075084549694439030002151572520211325031531394961739698440299523798732573929223799879786524073758457245548270801594416544014107279144424275132440436931690004887077937255330289001632442758256061645810658929320242809037164182135795016496998788073416585263588137529181789340777355696166218377131919679291180242457088074597528722660453322904036843791654028862853300813500247981596207611512750836693313742877407616983193218417913372516953678168835269920485516267146379974086333137669452619434886800749303570275811538442524993241451741849431698346920773303635697471137690645984721434993475469181163795252693150256470467809396587970002178957669434764821936933548715567110808116712770517390622756336281609247654419978024258428726006478510507250921246388447376289826301809022170233488909324089142493915825093923593095597744905937580126741554174218557240864591325428542207275527457641302015032168232247959406361020958420990515924379110948316207026432854551841354936901079232921168614068807732058436453787149679924948136897835299163632721142613308953047211547585465670693696863244176132305297027512333407252221623666401184274838414670677884321720175273034228006518962246847414374851707468187440595420119107612113497688154421301267113819117807692679492573463975239495613753673376391076277391854195796158571094377978481451338815142054752197339638837733992305099250990830349189429658121985678123377800465240980801408673259597614231463203345752979622374120764182971254770506200660268214251080498425283304912199106988148578649411778587996728625382957605471650263680000275826313179036333727097911364069455172986744706747646759940428875950382213092016002064219926302976004997328084421116799258225731978311786856401605472918945828916784088788594408440224158614571830031185700093459525589729329403448029403657379419684966991607574325906130971521992049550629915350799144152072575118684115056682960419582464019074800614146760726183571601165320520636500112704976191011967736717415438162204602629101632636618438405480300447134082523500220285179525784715896431462352584520511524988898905788313497100469621436980699369148969458544286945395536871844170799780646027772544391193650546118107578728058606301940416172430543725037384799441983302556410048540407624739723954969081693691532569492581337269072508287390191330239365039903630784827161148405894986530831998028486807000673426485361964717597938817161248192107713938236281739464775450368419980986155819298922979474458714316577892642318164932024621194304520296788548579779787934617562713934804093724885266358026793641959664744461285273886153556710201595456812989795710499222099092069516870693046149416513513749451585581082779253735545558463155270339871279480579624372271479400542028129112984896832076935107008937577627457983915454646373266832494970263464570545444059495207485061063911354806100348916503393370478234577316210962208990889136158007155838612635680322240355082728797215755846116921502836605566382439663958827442927259159816695141276547280667321342340459907452339089319281079865684583006509420072714177218328466770617532832069344021736606490091989567652542942540312251259847108865946880213029713768871937214258593860895448029736682630599510716597663758375450128044129500250365432910835538477272194820617879714432773282479733813778098411965397011845700461182437773727146280112454789365081732433464041335529670624686522803752653825355502091829943495417314250660933763131140824957241826806940308186884084211209680297538589087427143579096298868983142950208278913029520085219951438421353649061768032820434731460858319127823403523976840386737112107154176064638272358634908830446366156431454876960966593361085155108743449918594940693188403139931475755775926262289888606571697361944031435165759738755148237987414144904092480159197677756107966726388362485963127725560095309291992044978875557899255922735433895419428897510081362110772364402171288910034744954575656401974154492397259166564652612666516393251094718749029190428621366927995316256644630247188436948345785167271325542771384339540914429978254868730562481282570984839424004843351453623908414567236760509928979704872001308198359258635245166587667304587712263372430437887087342403870151343100085166025204290742734109361677498860587607069244555255476812407271749454068608601792397344068244048159126530222464363480562542075875026447825650605315868909477500253910817320272617318278592722075980101539545717352657281432959441035570796805983838694551214526472668563317413074800565178439157485514766209292908314358410340512717058368377621211044599007865503747672597324209898477060850717874424438789007471919320942064098353193902499201359505270304526857565800790024955591238933070989530757754617255105202641032241720338571967945588803279913764967326695272775308931406569795349860877966830107480720551551239264617728824720818622007035936807407586572049825476490255834982195147492024556817606296157274231381145628035093974389759256357679812693926006108011306828340594847285604939304287769686063467060057453694646850144555032320301684780390805585159234936890591770947412028437242210868344100607318360471083559563837830916280897677991882459675889923574012012090213829040831890258305328953863852520594113982040206251599687348814737412888875669544728291321176040386899281332825882210177425218849498334768899580987471892192848711219642169994022314288344557988890413304203425656625462408014401337550617103544788241662746582673722819764893538419523117902009647536038814315356178024844373319716799837376262277931913826087693136749998010240779556350556650425312312644037810698726843346061679885766365885336197728378502965240961029546181215086835970708799459136248769321752734451855906821318141141947937613330547488269786547297223510640419916140675424900918261654624592853045574928709650681138170312757317167177533400233501321066247790946074517128721680806556737610974242482243931079125486870879865918980499540730997997197263472021980037498756998930147117276689031141027635275913042378715536430719304184982161203502544850111331669637546636572303934290335798976264632220356416449454757218216740922995613381449965151514972018372450712601661909191777114941072698854468576411402801428029134559212739429991473156119372534712654053966513523350280922265031395519673196836038116446391638386008433697418149094794297414433710043812798252983358396263241148519570921199512516924012689963271309502612134246905342172814642681885932473408898537390153607443925424142836802706516992100728845820193381511693850341213237202938465524670633925610804402156058161707121857216978697052698012165792030526133387650928788630714956866544198668192943637751827906411772557934341928714332227841647351033990947073815138537162476051344739228477694862399190362591734955893272598540688434487031716755569030588402076899785596341558892759876103139966585765173931987241170169710231141337918750552400230314843792069859323728241524448389739621406958667103724666095798363916536782122419125533414787730777564577900850220864795232160791932089973119123463238754806726205773604163452854679861312162708577619767408961342493170133859250020886235631296826044066423852278740731657734183041745969531123409458796021487987293002177594669071361144848024547859804844117048123829510053280293902219242553715709124077559011975469467116285828486310787310624347583515510361195192685761648487010284530792788046399136223755000053781371501456778288475117347041700060012307329309048025159367903356787010473670296328793566742012062821968447921836464289345699369925461536768920867417775244288296492233032061398490297320832674301308536488653262768708296442571794993930531658029654882020845419550922190251686875206761933336606680422964546846832941516327562058902277531465859908402427074226913102375706746474513393454860867626642555862557550252819258306046550831091342723347051713957582594778716507088950203732121092687636210510585529304778670368159028162104497018600305551883944054858849221752136590767899011349678584766914467285760155970335827773042876280485518093926713669719371098961574452701257816098758425744541869439855628047650396569137960964746362991805784705966940173838553629341221974280632125732735495862607250209106667699607786168396022183194294223142434181805663442803288392285480360009218182511385874811611240462381693722500952116036301905098553152215280585084629639925329222026281037161523794396483040323651808156753311516071595844500366251607751666521305402723748763938271298887438296725620715243235985469462462699556550296101785899884544433938154013465406714427034949555495048321803266543921564463396318139900780179829641972237610366065885831623852375090353019642037911800605480670281199957833346518872474947558349802610550453619626812528710851345611692675823138128011842706370673619970605029078228540765507895459988367668686457892380734868074855792952404060172302642960170944426270146493817045303389894346066763335587241019311221574132924917948636936742989795332898315254442343764397250680789120213590226553007739445263545787177458985473939328962642461297316853703016263949185724518524504676264888474475573354259831280891440673530189784050628411346566884644835052124652981603799192938318602449569135547017686240706152925770440467435620385054191837633056888096717219421387629144798645097089322450996686452918319384036155583490471320669514755627151737320641450898676176248260810588543307052544060431310864424324343418772861625553115647669794687502742197958939363271015212810280682541185433124232115367120774772272646696578378744856209251777954388451688130783770416367616154772681507405151698706270870070903183429868891392671348939199299172262312356291125797765363532401480344152712976259904599731567092753634525153239579489868479622445483917149157035319131105986363469567101208417746491942597677409190325548013980939934174710362628511891139869100524897687017191294164770318027052035446909212502995020061367184750548507970036256781895340571898500712368783618872739507037131560230844441242963656186832221999234003378362284616696399627108055352223579486334345741116737864776329852726743440035920290629244885275580086914820090574647713988427989420601701757812104633507400614135635124021932580304255293569355319712635197813405290731642802508222152787348607323340078158846745151983408522677682734966958631078840295615927752200439651964220425290779842736333745209460364730260704037506461946094730046219089930809922679687231033328001656314431776991534884882419635892654009308045879042059283029471507254719508958629824350835080177390492149303228882702182107449296143013386881071332415219851112060727553301455138990724310352197140082629052057270562194287614403659581156673239652469392257668590985193079439916045720585221344099077670995703734343659634621795846800012447122857621701549209033915507610662080742403071528567332556268426206750910310425918664372747098456772693213288446043004450170385780990711295053812518681528654890801342051961081985926779374749966092071819305296618054799405146119297002397558550794995128229152905835344955625853368259773774782873870576543601873593443299987896841195372436665007971139416642059628751214413692087038558431516291709952554350016076158205768439384017180456323586413935681855102193264363918397698240684442469366968631611000461086653225242562155726533576044178846967761529318526139092427116745592209294176726235558178425337195831728621486041040783276984370465820389022988876133047907647055371679830264613298117740446052983924964219392741199527786785571165365154346508227984491661032535955924684383327794795840613555681608308769600595890591634836004428808439226253817056439398980464029516305509565013778559922495185629332586001135567331068323101799094395763471627244874601359373494317273900660550552789424942921138841891634282812492898988656655641348589261214363709631107084458402538719842940817641151514632183501568739750664148265860948773538897441220286076329337305969045012682030264835826780836997932634420029483124374961512880298838509323477064170342507739918517358115984033597013427534550510497752021741888214734825318602310033947298623657007133570173039421319185606017644195019563019123361739934905427373570927303240377347419982554131330027158661349400188887592875517736675470118173000605209506176744956461707876425301864909689015209302463655073121758130527722780171514991687395902683262972568815584089137903681375636209892732080084688986023441173000882302445042853982966613365830722053981340561574994730385664117562854193255132047910768827065255701365239336450024951474570604967804155951908553413990958683250674447271788682530737517715311239283563706140009300895065434456405899100879423149411197975195613785668649365809478671712918442595033320126300398769879033139042802115281921644614193047266536329922232688087848064176460387810193050060756300694351784568317892677790162884480764790834796086220176497744240787166795833716876196444896612555313899131870835141933755597366392862386960105503114624553647239369443347575210850831537939295095895428571805479612339573009875859498065618462417767078625351740327628991776466820110560195655139147926675071288781353315013101266885128302118166280733510233119092999435380917274210953513401791438801531143147863324346360297254354133638774331828572925654847402312320259356092743032795581043548868070468514006484542346734503169899924514991222295435764550306468541555181572692688615382302678888130917100243474086123277567706119791092798231687586801381815186903513735357148816640949510620420165838290223896975205071378525481821200638407380227503850497033641665617293861821140342714018997122332106722215917429971394362162383666154202660928359632085298931888436588129556467714560052086959190420996318974908102690683108259411225413424441353858678745306579363174203994199701415445662087035978194605588319746503437492719872020153440335819461504984822848065045734202334632184908555540440165940329128499631287434253916382765623419620376125392469312930217292208506722637310389419400289551636452487278287479793606111058794835208568659148321123647403622020551191736728756531246514240601079069656293805130752520186450953610135596517678394774720180753918728314467092814573034528944389469876543515004460772359679551437215792613283771225449707269016979952868778688374973622930262365444703564760235240445053394542434346431472055713895586449244623025390681219074756013904229319271708285420883488730667816731715828435754548820089932317507862695467660666055572054763085637403692608011317341699497901115117746626020751007587564802975497630084068782213604692364730495509848616935393554531975012983003766621468158594477409057552487225812162475976287254546056617222075935810944947493152739596448975425192192709560080557705755390773752536290985966969096635482767910558359294945355453459420857397096969545378627057762313706194672348797230601673641415394948891145551473589052349213135943755474561592805040561885077864387752407257705509072929375865817470170222461549693088988507550562517899273155589858269250597396216743317663134129656172812516289009394973384068719125127239625247365763335556772233070997225967475389159404456117539058547361199349846893962099494019119524223615512262932804018223912460249834405047869057995960739315677289814271424439253509313800843437852651778644925244631872864843261974773727339578799763545313400543160308825042729052315878939321064421592953772029272025769730599590205518783516020662192330609316292669781075067371507480589253598702199851199860810697043457498825245176961594846622146937443828350763003409965346237218943114263321676000989840589035745743063204747102106444334611010951727073685327309370979604727274881144386673783164212083188878619883118004356543175884196005644903012957933931827523120436977500148490002113261847653066419676893903625852563071135409514211937608817064919501223603070075251719079194691292323748653624578911584642328265245416010505307209438294317338639937985050195814935553043308055007311905393941831499733683993007712078572567209525948614853875572452900397148804598147848540796361281218108439923133945229604671370723553201970133220732237019314711121454805203790112355120922077079798242539621400626635712843027486919247956872460218005020224594711574418070366506542240228899328565383337460815092420587238064673465829759636599017229534334603994359520543569204976377760988003456594671402188135392027064467257696231436260269515758403778337301006451180957033299814201492711376198288810675370007727241772617425611152006143341708928313158972167192133391491389661325414899078736569182885062978406366406508919505717339486949609526248795778640737832738932257979292771912490228487986598076550541974369095684584986146669436319990356230168743438056974803812745279925864845402245295762522592112904588011553079560447782647423877652892512796012204130234467548057693223517123751257575726460728009939631029788002165723393920854539097087198550993619124400968046769228885545941127217565329889702533931634118784896252738064563235427537530469806050554558853437588523319002564889898896522592126449964591361483575029026370608180288508923834030800037290140442580684472192338890913018802154690979353725396076644073984121644748305994214364106356113707158049204471494997315390970922237602255557147796590311519553318941200909473220357604003013910653409074903561644315275763744315143932087592042731909209333070761373634014763697566362282298923157846502336462228835246759627866828597528365003079917430933674740648339162396059047953630363598634499511711797432630670155341555343238908358010792384934834126631340244716636825568931922485303132760647970258315818731172005927022604553597613751527202152375557110079763874257921997575984146879277104767790436449252803026375745975214723652998228604783265111973760383763672784858203438740895412386032415021378171632285246608700900810743737426902617253614419246108966269119354713928592186300026471857017992432026309762815637186621683821519868076739941406004509450641334169474464770006701601860622751711158189807490655239607581604955827686881291818296093841006214566299987036093353013626435986297450661237687625082529422298232181364297434759367804003036445770705188430611061714229712007864756431484264574271983925818556282357768838363238405907478188844577323459512099440129816113015836783245960037233403891571437623046532481026902980963671935320699370734297081038611236362586195423758848433086836637324003281430386235024029569916610443285787695299327136873116963775007905402276785209419302072207790876946239025697173216985099925054884708194918385528150171661976228813106366251590662580586977661626910440344856244815532274016531422030448470788501926853376018586043720436357085284634924124719354793394729415641287361430019059132021740580053904442352623304178177316483993727576342516575727858699534593441496323553303117851091222355981547996468352330040967014747396780625221430702865308824280793470583416113628043307049273432332658401685345629640802897412794698626484177276240454465237041520996848989719914190777794446959807617878945501375703301057312904882295828796553521865930485679054169033427759804241303120848417411697404832560440212980427092136349522063660005009004058162439498873414110142230707721925687006937467716931967088657337816855007339775610113270861931367233121308027413655499602373657327002473081209491999587044972701844068783587717010090071229285890106459450104246615008877337349984505067069870353591693517935410518178176499086988217442225992741946132054052393675742979072093772439243047190675846407495185506371814509926629919490071134421422270503314205868516356164090210008135353946943663206120423574861921376713113625990355514342023271812419698318362991352261379831854641390642543741901192805474010764534954018140313567988880360507419324378314661629251414197443765818596542211206077125230401675165247549932412168673951203129792415736301152307712381036409082292435518411485326508778539036394333626352741189063295598728487302272892352133330548093780358398826320363247796442769076842738424330039825098928548469711748599053604857473635818287319008723459120689248125922693819397229380941428932073342668842618086152037196686836011084196089578470298261542510476933723944781737109361985522387708580197344355487057974706052880144158154522737617402837760281411688174739220324501032322399251352706924084504601195190779580943772866955233149458857248367741476334657160497833410663991088873719113052056619640538757456617892243296850929197289821716992093940989318072989126043953737235934940168662911622867635824050054402352664967294783979202240487321994620329210928138966454194852870351581600756558919085878579497086498902035838413900204736223512153876472242682417987960814000128089865581497942128930799201846971171354937164689827056477132808478352286023879879572034488375325769008943033618984852106398528745874228021387780941989695014827917693506157912749779061484861004358693907104959135049173684684093342898195924946170939598350299067320291285704776082291978573259383878679621979758417801741016763633983881394017651261865522377582829326430400912006895052783660949714071220933165606247404075047072544222971047840624585257713203728363512008885971021175188332067337360619661948053451300614060618496717447956719912701129270072811536069871842814123666757865121924549589465470184947573959264918580355088387227552265301465989413061149427507449621859021186156314630638825492129184021695096031075955083211733417232412570673023163981535642111257478982073139755222804793133972542645381787728699251767599256780841065136362747666703917750586137585576906589102331297927966442448288864926057269649274913927133620860106854167451511479617060869977796553788884815528331985248423659120050361107228121053301586672098863795641321064180407123971701457393832473598736126172157529753716145512884826051676777217389594405851158396949284716309663674822833077600936453762816515069034737209933761807444027450036353022097410670981935835214758543754636194407650211777066010201690381431042001552191524188999080313670928009224668964839293147318907110326671243163212732102730410124314711286277679762145040960329407509810667623854623576901692234440214203116575344721923373401354012822675186362709135980096880336693203342992258958567105983008778359029919062939405898207842632858930272239556241536107545752821068872805158846455516336149448988330185644445417501217940754271308849180374303432165339434188261175292004522328648725010925977080103039173732726336545508052780943200851942327526191145725307725662821566133854363545706346228560079900280178036327384780142235695378291595067944681438622267085704590939319152262064496083443522956973882237124241446919618926731737892179127777882392118574274951761166421442468769405906676061963607180950867452450584922701261888501075268397704387705192078557363594875701023980333686279349846019653411613872972284492911891375899833226727964677702550343058647416468638861205588365925996624026284445427869667101496334355979032497982166697197230912549494609571040937496544156193756078075573969624818093363977928582773947248905693173430310895367747043169891566037977424346150349867640908084969679906925148756367978202090278999627223588999492677797646220995306653344675949722148545615348889987504072691011942949502357509932977658364440376517871454557844030670321221904440319348724085475079669338364914957904541047327347911580208553374982026745269453495747765059788101592217740887415432142741631513057468667104049933208166433999796397801694147557840723437623515806935069511210193912278046678723709409435870719170816336481691126294108650634797480538270987108481234135458089087013650254798668668687661580031423638443906421924373560073409760297142889497398099206031037644136931920006767115592965139440916132733791446782171361128515634943491268447288927713155468000257855340639637355300542874465164318270344500377581527641673137178934467043231557295749227800666996318170083893780905840658907630638801442626855616054444664223038251976742257551355636880645380503068969777278500041568850676998645852383850079198315704542713496302583045416298271612962685145555858711030414166260128457604206950976410195069353333179691167485495560229469573411430967029410507765156807383590601324675884639039428670123286740328455155682028042797477062519763765047969008801449657871789724868817869306883259247114136349820271880725558851721532589232671514963627852597050602198270202799497424853454116865316812434672731634874190314457582372275369882550224620091913135466118753772034424636440062552669460272613715655763111544244299717332727161606061836065460155932247237852660157966624422832896642213753154724596094723058246535904071530973531938483804280880259984239528429301475271606583882325355999848471476356695647649046567545090016357477943926582693489741548839823508933272917246677706078213540894900343953271853146087370695503675320852305720915233599813896853253488718671436953368823963438621604547050301116169081545679046772425769964494121671446707210588485499769644453728761083271776181969737881122415249406359081335654533762315660942142218571919435840817295158896817890567736935367257979825308872364898817574618075683118583816869076070567734877441605702986304440254468189639868551441604072037076944910970065888042357224229818751808416802516034975852088202607843258667338838624393216572904061165516328209594902663469793764520539182121600990436221336697360355435304810534965444134571066392413633341006944417699875056620874328371046970451729266544386981749362363906967819624992017972702315975533229557166804005004717053505156858280583162447314718947111110728088276063682275703012120504469572382627130435584595391265564394088508616929854425006404473837181840397636850616665438133858706906040240665019396129929733763465851872289287551723810983917420606330274894190501891983473169025429563344523298876425081362371371827879733645740210108513596682420346791709419880127015425539919722740374518528062817405398518982056071914826886143228208662461659092997285376083924736209682680859080221193416883223163322883503473740317777266327352845842778985404568885233138573835561413472395869307355903202701913277681408198317118198107560409843800568914690954308240197180869973942060911280004880538171722447640450108014927586432953777815096769647070081735779957524770354803184521580127377366748335206049622154601815384079908371456108067924069479574220713326177226808231808998831934768047948555449950076909535960635300077448224659281153820498867615500605999034280566661460587571613886181584924278429841906877337434336651272937038853912237208777679858637627369507717317160081406425702856336134337285729337047541331407485149917463305609753760460387167212751582696622560684352263617450986461069215916605438424764891828507689486668841792189843206334760219130101308807231775281066451652880165369038080795729902225433184758115748501943817949033862331790215467143400099799516856142442589102516011975660886570100622452066377641817087732133707788339412020008530371709271344667697429928290069023082134644925945551872205662002101821142627715032286960385407376764939855862115184697241337235852340565987644983992205384464000122452912123111072505464435829793730532658672750267218376617634163789105693418247988042114143928825119658392447932787054579830773357807910504554451768965616479881683570318045233560663199481396916472589137770574247012888320505175883383526048379887025725452278532159373326055806852013866366766434305007454254799708128182409040090149613111839763977405997194393774140227044944928839579495396543348758277940038365785057993744227547960499468999161391414119498756420135489361927825690364845913814944408217358498932435099510200173265054562431103197489833038562148663752648872023951082372481023074596883310501340602148693474172872927739074310161546318645455701678166919350076550872990315461228723876832483508398513220733931491418521693260808817893879807512871663371594345822110786288680053941646165207765112585054564283670632373263525666164421724048517262679935275244946249570814846365593964027784579716080157532566447639102833458158220846699666478274411213985505593325996028336185686850515614652979954831439774752137037491378754832557278354296472660414072990582482962173710938511756094537295908988416140115498190909327348898653019909316355943402781645245072864621623553597277749970090111551971399971549248847158306016207367274919761292049620981035341440668031073084376778074541070858530920866177847782118813997724436061705294819113502161282901734784327700782997294190620249496334293776755429856571210160658101064519166392869424981880331140947561590913583828248766588533058231187587218329784981588402762215279467829556609386272878446765471937649004055655067362041829792909977425417282294848204838994848222991209912800839597331706643722544429152947537031096991225568382082169758125783523852286557227235043823958680530079053311964719321337165055330488837080462393642785807284299580947761169973901066819304424667724815474922994030665969004859140580711498241552954057392884816685092984052228039193584890933795842955622334598855316876314559099387659941624827943440320604906915906931549291930473117007570871995225937003780897991725759193144856390447938409959309408537531465502849015457150782612139417345714229515219983105219674566679678773760152755767724287643523603505591390997344321450500207137911540440781623220859973026781346672670308660465140990236792185253896123503819261429188851270041311182358373601555386499385375388997481476411436472567967121919587711839195840255303887871692975876493523324679625269594208556600106379330332540212239337007042527724329823403044100672651366832598080791745198940813605937356800700485080550092255529517945680671111316060552160311208722056829822404947268091864705900456588889351152068126970551294131441870792587678105352060626599780874655609272462173153771983138610068350842559413190926060861126566729046258929870862282783779903091922557713132422477742049245659721189576551807368933631387153107207827615819814487812627834566632135734098947733429756354676836802328113125312666990846479815005028670466736171570486044332121072430647794088460763953777683189415156381709952522846727582002521457540352103148673032448405373757572777906769423892656119983951611244533034992217491793626656909976720050196774686479389028909667962869087628835836790126577454146332669989671646945188292451736029012849923699154170208346263563116702162451978269413852245631158105335382841106067637013336249936310640421031489903736904910891910747872772230967604635890290039283260340223892767723412379560617290779542626360098518596331275911007055815393887371983638973808396796943767382768664178571516073734390843373171461556022112995907948797729328990925727879855812860375537202117816811721369133006531160751408536277903147715055752862404539902866343230020747382376764953063858612473305607418374207947879070752935930004754132185779225250580042045340195857411861033682745510694410932060944170459627685975074064214317725032749230937474909694038994823521832325923880051479708583536960038103538021727259775786024161603762969720368955362418761356341406602702092415205184613272037880481107592055043720124601792692191271938484991046991921508824185259444469074184683327181567719038895391895950618958976684326039578773408704768344203473287125871912315434492203690486939061618021624884030312715167215186691865155298382386583042860158844271100046120859400273240841086709290652350393022904445729840594742166440898456791534961017587112701409727338320421673495377664885169627546043849626663209024960694566813953651538176679624597859262408080305229581487018636742503413258532053799393611025679477809226569435187767871126602472045385712320032103026234425721293193626702424657601614477173721979074510001730270788617654761242973571115402883832704797785576412310442980951686847970500740036863039880495318125364486501913990216320094579271093306974840549525371364520525843686798736276179458695352269406992418917023761578619289258669672366259378999925413651085891995225719596689174205749081496173468830149625368503941846108096052534489142987460446808817858913857213439152033781852539554475178109143384457337509874755192523804704664339491989334310815417527108654544074474214997899793592800870357538493197101453651959372069618449712436254055577954316152110840200277683586446734466435257533316457057093811065245096728328476680615593984637053711237418448714761926309675789109296868683760509664933161129828866586568212614870428102381168469110402850053712996904163745089298789132140619134579624097832769820858876257126229483538545325609988069771089871167425008457959734903074547051429063295774132784312971059866662831468291451855874052119874339699824814209569374425768676683248964653451161820369676224785994036454852598658633803005487775864667496204395909587334429239416137740676799213303975442283484320573870083062132024059358710517689155765654774222828864775985138995678863843854910823833829343329454766123905730422077659564087875490697108919071286014394778666696761372509972116048935644260903432665276399256237218946071131676264670104988163391221070343970020827457308208415815972523541584202939109213675300345325724174677369260774658869103947515149799952168304307941167196085833678457469053799623065127222329824629926236557039897010790066273024585384674382660127089024544781896236920306362575088946929612131403034961290922677357038243232291874319725190958407345324605996450249237027514506201248769261749017401478137890581791702973211454200929372541101674333923036225786620370622749618437930463308478692484434021459753613081972509008195428248291164449854074770344159796334906433566048177594574393723434368872782496384389582256922435071783009766049137239896016016208494998897632463261093555393979425312905556017018839255298046796693806361773498045767058121532351085905053789078009642200392470101386307439447332417058078438778499543830021507987907431496273117625306372164597348586758517846961542547244092352576341702979002847725068541139046333343979975652932378482170310838539561388616689495876519234889133854177255156794670141985573008210590663897740865839834943687261485313035731133344557529149575790531891599827456990126450959549470055589972674284842639220652316145410864385105107449226418121184497467693416076029757040409935349043003301156522044736450761135716787789196646822185938051712441113368919988496792735619020842613387317020377762435590310253445752122294847107570650107767438006959103833493940620411173388664455094371171463677112790750413886488235140717260392131245482501061310492577749185299318234889138586761540660603118251001222042907181539390571220278775538450859450025939363414295223393113629922738096420732031686294762061309028421730134695521905087673457582235454462631845558551375312517001562134229618915486441921874523934864248646999345930376274830741762359966063933607115043711070352433044997217411616595644618957770270290289615884791380652380229526292151910424869462422416771867857707042158114295348701268440019827039658195767039946138627556351847410189740821380718709381124491496654827753694920629121566868310603446531397094313842458960626650321869571291955497775031072184473967372447851998983716063118763563000450352702686011373763825820981637122152371980876473496822542709660444295555188654017218755599321097842021072625487585434162199335800490329137299275678618214458704541978474952227022194012253757021392338913305472533519502240187637564727361220540360028931214783538468845800779273828889248803502635574587514799663068594128985221645409223997010145198455755299832306289057191762981613570170938456306217052875444650636402962838142774126470890856298134757480423910330740352122169103064341659026516336553316478075277887115233199543230303744594228237962080142308226256828101783455604152621616066351269660326341753559226724919898372011870399495502380448242909069360834315779711925031519238419210524037653098791569581164806064917245674799478395707393168890123441486135540039477841798206764535153636668848265229647742049978683367578584911742949878378643164665768321284184217421617912766145504519466732131410687288087471199968183725019560449262492229140704143606448994149416009593993003485496711952980613820492510444381444469633516952743829940327296051468829169818305193320937858304673755658393624795682742493125990352426519915759249164435792295934855333780067330242550358363765071441115278587803597611507351037289830252526103509687763626091193622832804709145635788344018145518211976588508941127343923717540180858313609633242621106035784774002787250098687044373770064205266288088158955227879289120157215229039472640927404393497409414239871923331546694577153374336265260943713356210031582446035726656080413625238892643038872248637008502912103118407492334569512325879944310707155932806147629829263334938953919380396082079516028034616790017948554583127286110587013947125646124015645047147297753877418134925002336736737553716064211924636265357935872479983170709574601147810081016141091691179356831664727896211518422526137818108931236965854294615657377940711223341163048938666046129532327603145896563543614270822977511795130929614295779892004822800261552104541738943614829937351221505054540209909143876824461004188239393835209817378566713778960280156580839324757869512641408904895961426142044310988078833273715847240365143325095297426012641944603447032735905974479326174550719167816615432749506173377185647849638793126559265456124405282723218531141327195284340938554251067048502006833073791457906057474400560817858772997550295657853990822532775290730093954496087100792647154166341502659950975283468250474204269797355449028773897751909249485960702190441731929561322637170018663732962730929499165730169711249758844570068189352857636740522004070443422648674346393030572994555293390391498810845656787253222472751861664876384689264597093869280105960674944109980146492749106882870243988884221202519677290873950248092947916031387700581935050859157908925059285023719696526766089797052490221546989010289877362416729313554606800072972220131823300092843542252791312953016516276309535646066661665244407013430741189790036714498853340015413958580482799880592576975615633778503056219155061030975580587980751959448409080383557213871045416457704738523150732421046830618333765926319234936524136509123717499218324683215055987207240908752015782589484425448020673926337436127346793377083347963374953430142837231287903974958859755644008557793329083138827400431076631966273519639827021409376618886754094442794306500828315682185576971895194098224482229138344446609981139454459528619024598641836876210286033357290802851152340981370559129985515524439073283612546254790465850080302818026226212102086849380034941009581686971315799331590832551729498667666676801894933120758484134790576100394938572090169103267991200556171969433602865919646720264345722859482752029178388512587421737463840493097653774126943701310370011982821088585287141912150415722323502990415203002766729977105101618265010335447747933986323802405101499277930110035575085116059550238414413160708797307700413407086272859464270253717913310790437211615500600502192903091766669595544621186463569631688817671786579218529651041789052717810317214133554385532919782755268008814336956922409997090427187943053505507701700487637451247391876321321941189791138743232026047183418605420814777860880433617279205144431771699066933203275156278756040398005618796799506863966820551047903251662395640733658423702270254949265295128557549148944976794345669547715692710595927591861480814642947412449746627602995311045583347064016613467217081596487774542394556258419977960226639036256227798056986376012098407360656294608537069775908965717622761956908574540858373585228986778369631008704346622749357786906241035721290888183508192278520905040831271076858252302521277200332075109927169420208997390181587704288842278621980142095123859473640517116768446506671381269148056511967065987193843844949529153005291682555926077926371642785818304541454206314857576844653652043440476077754797732622820886334861541794315489270648641228599326137170188910733498341242390661812143563033217064499907646647811815691526342662632372869143572478716231601000226203959307645977342974013978271437785105881189242644089690694393562981634095336114046282701533216953930405186942433756580983088845980101138807362185678028247781440402817922988966069358766396405609839180081807336109790391409244485020024833552583153759894137713131764350009498689201248279954264487534025752879008463048523360711756453712515338545490724291514479187583925982589192255824020327919859555559267363049678353009227053497790486384748375897509501495305831223211429499465416770608728006746440156602077548968888154959786853722296848416956736955711188742108541443649590855008475092698298309148147436108795379980853609604592836820971881027895570817153621955455012713602325815599852464935336568843656352882560680443063079986948253420528616348187795760227147762457606997378573002334275339491861008517452092396672334685393253197740155368310559560223237510268440830530817603304662915264276600447812420010104010778200181968182431700489685230069463191748362743569835802556060039066957100727209621385480481329150711533209731548314690498610774674593027668193673699189602849199166060508083100099861570027548422557915607125165906596851431336560506649258414152035271141455720894036748788558139558819137992316662035006897766932649409710479773334073507050773964096321673538625477050861400272296467621312704837322060675753236941800959040872509580499555893681579304519555966266770813509534717089512443208695810711266884470389690612645038820818951923492856013086148654368701101586183193155591421241944101824209636071235917575681252043442643905063922131999821256044834108287183139359342649811196574304739261475890138156821888140332889528419667582238646946484270772622165525727238538959071298417771092540556543031325909030922176118032375200828840261636424969593623164951693439389009543892383883669090898274062312481112602337523031339305616905563314929644269738131206405311274017268660086526348111405419525952697598617010028751534010899570683412468585910236363089492782662605127305300000341037248158418926531372192623703538191019413490737484327468448822958137012406851866384488496776678907543136011840883354531424847651841031071929796025502218687984240457739310414489018352817764709511474621058675742757848863925753398732466064579653443214414422429701347971291063009703421822100850381488159888868734657552126361242788094727329692226337892802080396935851533270608930626550706630241778804731140972395849163435721980345565198795074299224759724514617852803664675211715979644690460355926260801621287950266079093889285043188927203718147956163183594650861340861530236199286337356417131537061341307991336408707385189551519318903433672168381113682480539162331991097899972626239370169751272310747300021291196037862848162322353308710825776473924998641606602040086438663656227339802994319927577969439109171047600325717277795813410582017121157899010012671087063605674644479298944514130580679606521224398269567693333550315959928624270775409523652032256291590494543958445780293237582784571994553416287431213668210531362952907535448898696551560191988733792440197149441750537432453002587167342357557464632281472879555780009673189898470549672404915339154545609547036207787037625951671240662168577745434406502321715720519934399319412419885302804619456646792417075992232931423192882099560476184220315925404649687453703387663619005653558156761677209217755566520360363412899222938047069489666282079914321700219110272729027636661308365603515692833116678283582894435332624117770436369868553821369871000340114515861611187710340391072699541845614089372861193593639920600861568269020332540841514570861038650405269842761300078940445576799660206633444231701214152268119042143598512631996143085089256711103957119186212257839085497729410480229523306488169514654155903418347503239058441240019492775505496090383923628094479624977363418593651700067854732050966396975328273280698792381397526638648704895678672754770244093192957087695403690506177919846030678819869732531932876452019616812664914315818315584897456299856298068802410809229563507288331798939516044364692697086893784944996877230568858617741976905406607506247687812937531734639997888046819434675740072881745592793391861998679064732709636409952976090075444365386287444481843601948090256780798616968604002780533500689407896428255340161068010275236690162456238633698222893510424668385758864193145033240089734105720908881399074940845033269220549722343072254660922864736345958402792775256901225288508746261446313107194783612119481437646807006455421251316688325661207245972991854533559299179606757255663165957849122890259221649944089275363100838563396945890792505927842938542101257986574337437624503848511693685778130857965718024707394070973041161526968395364398401976939345087950092026964793684292670246172847935117516255142744914523713776377208359163617183465676630363127443215053040424006736871851337582707748847686346338940582301409773604794952224744348436792299870179769493679464843599468364232959921826712870400112809720521053969297785764737419188392872493436442474806936875949319524399942891044311998453595680991733365863109572155621149859604237465216806266035758609408412251232343846374586935310699432578376412074318403310123045804526577068660394906243824731805430780772849731506682977207698680416670766448456591012710229179174049628809595972867194284296865344776208079926511607908006595160228713967364842974575021272538128056212859282409303914159610156266756882092387963378898788350015774414930243027557345156002144522963333523877886547228174257709024339711582622759773605199261342929609950863542972650987678250904982091088922300500503452341989755487961016930367883956212324880000465093202956022394765416812602595296895292838427441773892460108937328119980819335553185897942119758395553579664538119072615265860784604981548955099288512748470877463764444222162052378868701771312453637998641910408028335081171270880209074882501256692653373265100536203943234764457450112719621607223003612686369358676727224365575952708058352135465077028402840822828468286548696776250871671937501619348738356882390516628353125439541948299850432394504471973320011759049148801535383936693687274373824164033815003024884801122783747847721621467632062707072814780124583914454216362135729161962944871800688088933447662978647904340724905409963371596320080111485162532915978422936665795907976616074541360799823625553486585544364612440131800235764499174618045851168224128026416162593678932258774012925075354428300405777638674625642347591603958390729729681962960172436311520421671973126610642521448111079418651551873657810125838898397750938398197789221106726215682475068405144860544485900525860339670552098076600907823387757370860980807779544057280328819652422987518004916503486588513283188797247400693456121615948810155355260756275030504886906032461841428263948834665910697444723709736165037702447158262956447714127610730091392308834659505505894159171812519610772554024101296140101186410052753533562995426682855770333805237934362146431041934117916986485576457709599318156036697966142514409995213547179462495308631847944277838149593528991214235899846056696110742483562536784541248288254562972751764044163547903031296712292691678772589887165468020591309584365315068639350449505675469982169623978000302874040875261720387150647015615526443325021387446085936453214289449853005197995564642281902064265727132905831345528662255596976024991042758944269698093986596700476252760378869899931025847517057843256278620943827801455677376396826186282230190732562398734760094378435193924534004432337102748374291530466278497196931857455212037271008286337208968086068017892278109439374835197105689606963905462591591859824429700868840084706660227304898096216067561036383842655419366189338797125364619799768008930154128041912500374855468050806026498737085440723464932690198656575043621076978135601077917436436314757526174750415058956653755111995847014056674284898461632061158358249024686623157393732163395864687518628159112521271324312107242438372209828600217693494002929943744282660349795230946682901972096967515618929508967158665852177072430800440100761876900389821576123264344526252065999128015697809818819655360226368783980538143202869293636569982766015838621321239838849468867794951664844056655381202556086255574085267871994642094551135130465091809624102265979822385134032608672455474286164468367114286298937816230656623044391634545275392721994980092119245027245574023379006350864509488054882119051778276701879433420044669781366409559944379800922113457278653393299139586928972705306427491367808186911818782313744323456666238281237298899158797281471223884762383346197599189196934072784926258589274891215891630790799214709493996638848339832657192890260306237401033900263514435854160821260131218602464901009053901611481106523782130978258026089583900687967774626491715717639037128973348360493534673694824057478180100858091988687373614532953695037849495052916029347376443139794552727926369898570856987455869552485134684758541964198148278103084954000769764577727876517108901050917920211272689167944736027093023313850782653882503212045114024895245391007683011662911610076970257363067910683483220809988695760565047816894674295823412314470881393323963389153907346646553535758968484380025920558465136941304316734743878974502271113202038588218743913408648114082425433095832181990230664343222987665751300082524214651833657205438512937468131697608023535117122201797008959187389712801803739160425745765809029764805041247600025281609468936272116178163995571636831875144766241680142740962312750839952630555558839732589171794257412618221358400445799776762567227306035343684916487600777053415133816434957322147317524315644211382564659749775624243531566088179285824549796812839600769877220424888221063831120181090958358230928807839944154293926312043346683756442741341831070055749144728643061370498710318261862664920144355671201314009815804483270925824556273149209743711774064375831704576976369484869534786303102697228848946209904862366498343931705147245740001161008983135017085156578798491684863889688421543073064044638654948775459789204144009629284284693637045615993350203482624942055922526067111786439160264154359914363932265373501395056965710776423613544663147852890699602314692925019655041222935786400507052997548146332763458916453566614476516052146691318258244431238262390725090420170968291195229099449545046618186358013064321460345727737162675113717358568381344211103609616123978123599044722677641272124894861105048321231563976973773887142673631715940104440877922716826633878065765736207448094680566997470416517797370633782061309570873824065358125666404602070670955482569317889884480175971117932536848150158651214528092819600116181840066675717548452819258153857005575319552653755713472851020156823217571939264516872101722642921174330398493801119884091535143878077314344379636582847112779752957408757185463765832928068998147986124109414703477242101179150373774242444938043247609748041802132185541622806565906064884794156545024633968599741243138110007838476085621806023189416624429427209133646021851519258318203383958967197951827523827677741115885183670282718766055308487763428934698069210047757500030849501193244502147837196998490964561479855496753267239670014755774904112276862921331620268783727638933141033852468696813893575808015829285475113080845914930061019096093825360554625603804303262198040927447012429528713406014783105108604195304664799304699416483911971659620811306804037114113029125270059930381431748021841008589349439851970272596830611495496683257330242679438964567049592144479129163903681721691255529229630860296770215119389902464887876283509339430152279081506992170110002231561913782655955751219938333708282217532644766968535228734790605193478934287055828519925144117371913358352163251130349928420007013159935636868922626687783665835332428687763850933022225729234049366063299707431591318019249539569684881628479492579790155767408129505439081190224946245985691332673506563458334094609598095208533839114100906672093379891205257175077793803576704210634864668037625324373342714054633278653540754470034794253953470899966951408300731248346227569570459006959044036429904981369930097089310005066731434365344410963469972248477041303792966123360504577162961908584244805166542933891631747320845789812724119367375837202447261785773701576336343160985809876224622905238929897799757937767746506870571150702534126489499916313932859134440502331529061953555207931138471878760925129699609055306364941655486549734784850262763179320688122450058624200905845128592222017186897916267439456339069087741155826938610419589891765533043269935537538114278287875272407268973146574557356028727514019382233717883666281031667948496109869828711755716972404169940381601059284809366744751990617422399163588190608191675477516594385757350367063973558513369933994517100856158501476116426419636691356431015809960948494005678746988951237560117098220301886028949765146371500758945198856035105329073732175708998381032308528845600091620394562157600946623517196489110390314377339046126230335663625995726312772068441235183817077420853917342545541951557274758500235494350266151093400015927189342037162841462589336403756118849762083501611618615748461114347717050758104627351353767990622815808215248435516439220373671543308207803650913621779759305579016286725648344771392094393962830342013872240617447472906696736352559445009755489836096954302978193975614272016548942137926618868944122812330010100458566490110800019941180174815634204317151267823524697524007247928124844954836077688537019639503950672509894703053016323242900502546748984661580875192431665266754609942070628950237788770211562643177109150479106971503570428774013432289842683468414743329698556214399593153585410863596470455293277963056939598563581840568295744734005843858687649294890288726744876197102652312926043434673863169220525760518769426984206516582757601708127300221742076746753300265535764769254020773240716278238654003230586953443720190038686492909390186622839748204592474066019714036492566388742270618313826833949693453479577052372701112898011878625674804182553470901085534046952453098161933428933067818265982094614103043101129840988011026442138024693960504731823302106982905328085260986534708065267977789278582800398294383004175391997410306636278494316969068073660023697824706595571573406267607039724441168570588908011616324444339726587681857729858052908693432801141474153592521898737007140497821448182186762845318667455238800874477279042844509611596432071766570460005561448600955696180186391427232725742970206805073045161491861185809129221767506988550974781242777209230627625221076074147022793426966942598431624776923586868109356190543222987798773208659670536901551635191272342650280648076676324828518675962850733567326650218661309090106649705398116540165874569264132656757298118632960838943093491838208002606863921479502463894012091452131927430428537595790884648235699761458119308714239732964927127529135577088091448523122701424778605254462733930479434332518253104765594030403730605417085340392185116711842009447379642490082179495464388204665821405967007911230560572133729490203214498345246998402928063682667463289693876547305743694926485483878846898007791523186244035318978506546128736547150319495549781602442823498719824109480210910245520610836390878178560257409856097528894957422905570958740834876945095985303584868469304857104845245667692605504416230475001873758318896695139350916949229672436895899357094901098893531376905037914637162866286130970426733966022244124673168296887952684424553875932332950901130554490008775760107826634634310009275570645618043755847448787566324968933667207911062918803413772909889648561392020098597166866328905035336266782147982843567562363314800668805029305595562540899306213481157763993110717738593968976443362122451534376226551802987883835260105120299851845086408847816847553893178207800878014615137378949848365943218215615064186644528175426182151859767274341158856449218488481773294215908607165459375857548360744488874195684573363220303750713770895409176215779860176517189421827519338236848154389428351676441947486361983039814786141737006415171802218900211320744874142416701630326577553234180990829290598992112372951676735191419943175934568799950461941512157853972297373850120473469025666010756029502894906117071787744568028746239758796293573654019576212402702139319561700098748564351720592202772577929347849046179202713731995854045734276919779732968079133970659983645648461671215419016750233560665696847539781291860085303403715127587439109360246518166255579537118815639256829480698608350047977152766628825337011616742406352675257526314412783924440442873928875156371827259622387468350681333136545348721378581968262603061162894882285793790303306247321465672287367667461967808124199389768928194458778231076335027457589632909554532282172305889444352737452212465634777785562541238111693904422037907585033820215636932037557900457544589415095406089781157095354638124818815342637576304495572507073201816895974921515536810127269059111783141399943323990620871724147476970623766419146047776961995162834999781464058246738897750903370166824102129301343148222561916900424222574591066752073679513163292404970877483810103835406501577752461387662788369270432551284163456899398020844750000046798781103299310490314965882104243236584809923494878679517070137519134434564750160385084994894150869952659087169937639270510101262873279542169969828081753179589046163249283365204840719670947375702056626784333099645693431544730248877147805883692073008059897273955503185881723436582675571095747865603291156072278990277812507952565749625586394916576531561608356386500387255485809580251727405825882626722310410191922261426770746458278510120598098286485945837775925166178005557049164864332703727032556823663587466713242311042345952540467439099865998915538641974957353392226332273139813895585278849372762742004236354080801917178955184074672074879556274232875400519901569636086534645215798294631801975831234676108344164037987434816176938794193059606352523637125433803868367697268638551735729234009355052464140674031824116534390289429923404946690113515232910736753996038923358806878108905519520211447789944928767535664440700683358637041827455423334637914146369645681395640587757778907449669766697457383482604117929039054570202597471945695496941177939461714715903084074173709113119276840951580328279754233278964590798813250414638766676282244538469685495658203232438656601188653927284392500206215792334873407615062917633946696614646744100001696014052541256775464553651666462317128745154311952978995950046320523218827562095795503453653104615759513226345405652144544884786026305471953596616858915301158302211795138046998336909538206763226249253526875852797331313927574011196285599213024561724292587244246552862756363528732605002431417404509862975558170284557376889966141500443675824376547429422491752451379429007704079473724831932456962113820183674439837637511446662000522682734309860455400899683600564720591845250580046525483676310534828981959217260212125412531448358881553652819816982950727461019782880545930542385797900671289824063445836921510299424967005906270640326982324270595687257623177858138387861742246188461193044096538762131328084240689300224907393865867543916196742806715518376395075144028817862487568002168709039684316112830656175450978465087099131383375004200306517507161846611838952841414120612994415582720967572225626555250520388245192982684478462814207788946967525542723903497453715030093382911988795858873716937439898378970947103639938623572367085762179091104102272886915485805749865224859862604888981007313516105312654367674667388062999005015168318398690239043293907127389391821023688005061920064824268717087585468951662817620193785891169300319650875862676319383344482652043163781835360733707718862321149481311628774769537495680209049866400327466537801835155022319096538024656641309595890278835192968936815404228691126650886859599725721841028986136317834820730126037886446099610083947649265845525459395507555398058382477592446933218474265771772976259166556782118971631530402884365344612393990184496792839747741049438753139100348751375015540073330914979284109092579396349607990791172959809268117323329492307392227421667229051868275488777336985294732952927835214581372982517892871379486368427886691875576589395329511631308178147759255767322416474968574486974005187515122509894925808319182805395845874547606271549276527961226916002441203890493344351001487672938237975693633944859499706078864336548152335730512296623124464779966289848780199885104262405052505882230835186571173692788944878896140566133753948617756607444653393074808894900404689617141387368988295309102526674266459045084330800245730310901078542756383404624415490440848464236077546748571462803503994262823704084241570230544589805778666317537897779608959869554067923858020728477263941555500057866981142490178945698838776337632868991365493702171358749428783004298812944618779273118563672476759872101497689670867787561068531962917663247739725394937394778492282695105206931309327915815012568394649973941398340742193101806754023992235102701887247241782540441727443612861394475491830404062428140965816283931821740871697305550617708646143139633362871394883497709599738101078391047366627399775154535295198999739513984811294360646949493223377372418137326782242452403841861251746371889339804037610933526441422017849926074130649326287332603206250979519709562298090821750428110408165639731664181050985859132540396027934540788666062569761268417399142598216129646229625108061589458736008848280856703249753405735272325646489929679116632842810751348108855383716720247850825831056459235294526281587588610512901797619403839350382302305934694403270057838692578168748014298301252467578114787273303204567020942643829601854259256115814016803509601062025827591006451187782050751716969601710613203592276912904804174574716185534740885712271209106063804564585845780864755079841735102450375201530998394103364489669033728302965295412593326231892853704574732300497572915628295403004435339845526120769795664527335868423507593839079051845969690530206180130868410624332215103255086005867166362621148018906180193301386662973262548362860331465199290312575300104826327203375924943609476832503238703050041571615152132187685787427603739022838332743115607402316029919687628103259231498963022671271510444880706059305758707592045547723858325977349266146129035454896493475668045440386910097414848782632839218529535134693337617281896472125239874155621048633887832711693479559381369856710270001354867993548663084801343050652865049983824248040137951259562500976540889537197386215669759731634775980239342722409992580363346739518788903923879242326383614339343144188313304968707233446731526256764417337827830547274205435058281220344520263215447075977030455440299552552701725233805520808059630801482886129840863936390092472665108013262399937376135051648295466010670941606895375218503650313642884496765816167869656438787758831550987021289355733044931156345978617416345374793810542547478132606708443903055756794247598394539319998196961593865514890148801814024957253229335051673519530738674041390383041762217007208193396928889426474678950901673964466147260577971563865305385222089939039916163498885512634448449056926938817519977946413254882724227140182427880274208243960074396561813316198747081922570492791972610518070630038271136320491438002701893683956106171707342707795404032322065829017893643789929886827571314121506890715624121900288922555483758982569474926976256449789451380773532299385866417564950780537177408976594059054886405592299242195547010162601321737849924453665459613405870829732557346129004133755614159396303599127141400321633967371113400887811088373443123758920094949570355326876700643610726328553282002741586072710962839034633334249548592146350754821017917774914199525475882182340570410365561927243380595094321977848142482494201921891503778223619669746622918412850692644315897401914521547099218049426346630202124598883073208580296552154067092894766111457117610546535366849065906016797606388027071999021907654398216155065071019265662369608866566787657195165427813429933863705378406887143217783935112005522184708777442485017412090495675094082705275305777762710048866265576561886947890819784307579999712653041628317225969843555099720389097663723397277936272198312964520360305882954575201207677048397631190331106009461117909573089598693584239222545573751781315994743173928501387045462782827486354857178107575873341913293836624909078203437467924828564338524772601274431589610560336193303767015916663187079166307207017723819564911254139246555924928946243976869179290200269372100832537878229099530983952648001421270386973297329368243284036117605259742673673099121815695087035002804864261526557511420515336781139501942682933555510001562590572805588401872184144868948287898591468106312752500960629399895556705127121455764908098070814428136222309865864357937412422008864901256340637459495789973812231738865561696244021700662206493207163504236849840365355121301127769797676633481536538941413003237462121178659835603610304114399800499565674668803592115304014451311069876579608179496914724027284530159474121648232465642361367540867667028874100382386410949832539427627379717440811202895862377934878934987452758925068767294210441983771784806422109538954104455834967133107560355427274794214997906724363360396496830137739691706794489277186066458026899703871419910024136193426617743965599718811568247603175903513969556434155695655397531531091422243820827686488066409686806535779519205972087325337411728111030728352737126041478088826244942850753389052046880311888733152158576233202666495712832482583445314141820438488543967472076814705179150523359586370575661035825196917064339731638313403488921353080729361481204470829271928676676894316965940922153075341507961479991626804426883112869721323627188403696122347871673299968759892641940836866994687451250806510277273714789523140465184829464269962473294995464355290784758852401525957434243334762906144300336807595014673150101143481093079198002851553928507269968609790158003745184191807647246352698189459286842751731504679399866809228414209525309119897527568423231132714230356447487620010481595672783883052067124268115034941460063806302396768213258380848194215495929691137400885501413938691295474219569190231307897543107223993495488984188248276577948740677005548029329548535842507053095791351089809445090155107114584863706520445256897581713486793469215830674530754613994357706929498607082771066879507216161003664499726226284857822781974262319037501522269457901018906041689878994377458433757566107549093846136605048789354313783413372814834894112639884226923413641197929163495264018459935071399658832262429234445695828023258466139493042442033279959988820087235163867985836237763093227999487914062028203545159588850159095015018392851540144955324655160525187917045090705332272981962632975981001031336685244152603081591170406168202238910443148722052225884397874572027142039577120587799628544646377296451038343781491082174305820583286134523254530066287889216997597729521404474528684926869762632256556705860764331284672515039274144183599559922905245662880577353325233527147498499453109686420381469554654960695278476841451094189179238952797943462911683611703730768917673905353390634341244071032985786741345298686901252573702981582472281762569197437113238042554346845693135291796029123247151171300115796631991079563973500751816437874143342762224014531487611939516158907620954178015048370271245053070487956842207938699316890020671259599463990676249629906433153126222433825389742980809956956090090325106838536319580333726328413674964357786485514420021641837529527336784734296347126306106829854450084697393286891285171688752298598329136793931204241903741084754836195686203634609426321320801718629717277005800413174943147302302579565552840748105527238970958155693829679210193042247525825908317014521413951726700085475749777890062077084981751052655712360506553166138681659482344920517936033876431779883758417097667902715726686729686389065523357778736815146479257546894045484330242288360469836641876079763229351447645254617913441622064896477252142842044001330669001322213634002008326359809476632412304240226750642740951933444418598136911205448070806982000325421289596433441191969617480429714222052899293118074116475274400143159726721607169864057694865789027062107163764238044932458692502289897697414661124211082828573373915482058918778565104941459424521294494569419937827299166371704414416119677457890674634501400939722396754483727083212056805380061699661725158537881010682724902983820850478186119706506095527691201932470583915295696970459966157612809320150892674810314245054723547234360060760490318782168247174884736909260698027016795647807319548375827461981605393369814450967660781034151637652786330472293909472957135391350866777290963436632577879129892883453072261793388554956181523231077404029062567762767390929614676933835794229489586105083998371715638379405581965045100688651980109641012836774572440973095139611414525017126374878635190386198478055090385837008029822772803819575105485519910033869888698725522544727162913503912011788024856739357405734831755707930357661334535484844895000113269848656526861148321604384160151943798356341123958161876844506106205934870813176596589407160423470545607272025198157432142953130853722051085976787687178896455274823246512263280070598751830930438093467753543219670036073494113304804928171741250936346747274435723338843156765034068544651307039435046956432351702329174685526243561867523809216796701903731356971742843996421261689262640045043192160964208122959747217428439536475085378591471143661529512490984390850336106383100500181405901436438102135738654614998913456519052602181605133696715934126751665684378218203841570465686379997204668110136927599035594187455539087280687468698987580002229060880351546743631892058495247409419835334021081485657032130449364805245857850558094340951230676008654183015543532536207346845382733041375811747051963936929417906110257878424199373393792793197883885091999900513926719563234818395333592107945640024034048381029556978731566669328506943594315973095916514676902030226075532056730797486286469300639595800003519495600984710152616417389214935165800531648769669784604738390624823090198403446413898611952718297084350035897663904834181873925061351258477869976786412197019852486990607326197929240648940329565151144529647167223182526136772686242740980190114756629771707863449156044196153152914832221492752212617284490743306005512538913253722297709377305683367071117940162388977032072229281007314565559249348746950837219843035492879005621790473039159372066155399281587044819591325113706264444255721635398579045429697868466579499929140679426641993252087793320855489475545197758885022023438903419995059849157104680353056893624441999439016656854958452528919258347171932999306916565639834933432013512329352195833071517822699719424275722483597174885161634948875479772158070194800511361922761859897995518406248977189056846465636507654586827802272031954393515617339558087490190071702046723295709713002449700688562224262274718286060216386668445732902804036474036677083878578181494882406105606851564052387009342754887341153976305443028804186478380110450844567790608609781348838981151556765634733973494841295489871115561308068989341932982298391964940224659848492550996965407598831716817218404746881234354767747685803760315547323419108776043980870982659838629612158296453573938994600509022755180088543627433008752327000907236095572561456290918392151819510076685600104487257822318246009861952159142596566923875022736057664954977899845104538070496434353205792227411280158324788138197999834440191550998706522496002412732945915931479883411023425226217558791439385584364509991633072927511854758217181488729206889697770780713275518715122891566794768344328037614482230416638252416941171436741833646784069747671535154917909992335413633895243854974069757378240538836180833108705703470201866216814980297655092118325860207856512030289312162589959061837098972689320009465916878399066826536300716454463390991034083118587697974228963892778075796790905929769605796979002343653667106655337741856740240608071011838531837999068642467945741001007356887889789011096181866993914401677197054233545260826768199655698710376564508088668980480107301348520185091562314452875126197916098031135723420089389148200538357960847078804905610630732065700601715110742686038864290268692768317008346392609878326071213706520355085649497317940986748101620227176255579713397203561876254734677689186803208364075037801914523349805066876632766015805632219166082388918447236963785421128138562549221307605483271274818590743020118979102154806818246540230914591716460801544426179989220432159334076102325101304469101226440420956575645557311234495465484944883392141602040302314788187634736517921415576721339832212246535443362206369210975059753101474772882880642702927211894409343087350622943848683676101400096636923843322061233123972609098147915552461071929294284183462600123706759879825627904631886749174962126549329257788469122547483351777865813397911249382568762891527924925867235499494680784456817826412384309499815264114074422713450084376344193574796708345236209972904135742765085213379511745893375678329417511245020589270416193302415173262504742242465294305624187414303397743778496893247125481479504005075638961189756284189266932395103370032962625421599488785820923881531111747984191266858551918262471598228057303180904469456267804529985077969710109087141746802745614978934902076076655063503875999105215271038008024346671618242467331480455468016339909232237364894891532920680857872575276655720076556952700035279249200904513853608176093640836461766122928900639292414739065057335189332980383565290411868632826978103139148140385008010438083965754960997820902395355529120643530952472305575986440623455029036553261255998685693891640878405892861383700276810951553575037988218386022134477329324641105443516942302964782992776852669678394315254976544804100807834328721521709086922791969794393236403949134343791483298030235783758804884003306701754057924389798594903554463170809885311949870709792766307549821245675011947691865513585998547485463033218277464489462377626427694656176862758596742024916370136661429971969878555808144110680758569078124909984305793383085875291334350368087967185794634636592542449528367136918251598465097941743834637747864699571750626617397719216318553318113758851964039345690439825545011824477796094154417448373903455969545305189466285777830713881438007773909685589087309630881766030971928222192838048844119953941701425241132287858904163197822181517062308730007192581606039276920453669384995954918569914351783368802220950124017758493605743742505101708372238344972678641189840460789065429267049706278297246488638123989633162139175006830563292582168976026930192743472257250734648100382545264231698294931022796672238942708335050613233824882074491994875717678363464665768367336438800459836169364041107933326660023589852970798447476950885037590578723648581497891576153873335618682071242234033888040424631735666869364937358084841858070157421365810721202110172576650941714008412343803046604395296242687697658448409688226409622156648686021160022165650544802581952678987444282411642215344938194088291801812983263805448663905370447936029980920666027105409707126259763340103986687761293180745144495695250016462253182469795349794499095292409494241559207586562561171761819098540586632250187451563977962956123505812580551374324081630124689826188891375947912965231349670419639242127292272908138445903204782099257092512183145923517863450083316720879696068218263802502849608366796421871044609396637565238734911105807500478818030110702826687132805476117868715323173275334207525214784760856430218914219174686374224203004608766459939669314964719088769465756211509034024100984811208495923208015027372328787394915662351518702296462530063669818335984360171025429134924735614691927624506932038893924839370201634554710767587338332858026681114650224175235145424574579932683741424372480980170788327167847995868160314916599655201913984694392865305341453647888842136826870667218871368273463803491094544580669331039903636916347125680337897924022983601903854963518267882899322864781781371053972697361142532039342331936194770379102222236382471269069763580924411340211056507011162330202437461675187855874853077934668801445435290373912151078692100413850231564946509486750619941043296391226002449553024982601002890976846724637758059182228226036665083915919417972254479948330793553712704230316853693459569442344574285444885499174541605507349793017705223426727199985302606663790260045567327361914690293756612985695688337471386842966290237157138006464482628601513077655772643368374937341263014800666914230191882259040817849054870958371510040654410636013980343390001451889135787899860582472027905989873875428177703519772733484870420960000396532724062020155959404527922849347474706637649050192182598101041236494153653884565700253422862431481471008315480807672966049676737809756630499685079427844078521713718730032710407432755551386593990984771923762902161587826635160952894965495157381537839607097444832784978154092937163305940008687153401521935714707462782412214857813720874133506276284438543306623208032423448494386123609100285322245446023602651469614021897359483526333809889405866323706240974157224201057577599850318266187859038426062815909190210981935373548280353684517891490553800104114937462166746148488436329848254142550714541715907645152971923118406987940090333776643871161217864380812556146457252218782818233515430702839075008326133786762275573411289695017434763367762882870003742532031470024656268415771521432229526539416204362639992391327830672084197597637071381818959373171636520360959667444553535844910388191963854510682735470027033838080244795263356342316993788707479646965449278984373042190196627803974540208908716680047175770512729882566692357016950910906959267700641850270514182070549416831232362159864260615438196998438405010313885517871111849396201668277008078477131887617041832918791849275518412440560742996456513900233666482190934620136345361392582973270578137442444900419561753370477952946227639678636009471094657625364741133175986763092016491037479307488298882354250103754954784996527542732233297891598581340527635993913053048775264235261388037670682191586439625376190134315620217249424946715986048559632493597180189513472216874907837109260060464899396464107357083696700882744811045081805252669695421290726030065793528341198930127447959479937416623453610582108318559918428008808578833003962829937045767848797379217300378177045259774714708298385742336377107229910066379886505993410115063795618671334151208523549179277585498335209351460815109631535950812181925351391524194631451770573144591475251951623210681071348414060664518922277849706468055667280218339675653661930650137073377803603741689025694567854198653811243707480569832058092354569624327425579767734526587653021825285606390879261060500077849505690437718066144996740727878154414996698988997945939658293429406255652120412894582266056734950507568383243471977329532090114376818176071992929698757342756318579486471574172429020888133443393300963375471781676885602631312486095959822614505510404002301931647268943776730465386095309362065905422254563116743770027922296824380931216969380897001053609233054758210875631056430497096294397561535480935934112756507550704577245776083616309727359564344401393872564516020522913875225985120878044237811232315992575714708822761793759596740370967852935222928747105065366855954184508781528141986463657211678899506699780191277476769281641010438454382329851126179363970651529495267658688463990896002269926667700116801304346595809554240773738619332564377172220908296059143472178361285196959158497007581419944746095832250579667394984882257024944254919571983972072057047226794095427737759747409954239683754056199631681618664680340261790792426120640780781322071507256547597389031275238855057161278837746077628086788418997178732579870816573201171768865136068248568421616408409860158566208955906895325544993469529515749609706410403885994179072161712732184510358284607422107885458899103824422162227241687805976532617028856781878909965469792943303554482545559281753582470217605108965388712025856921094454058101224912420546332563970496901200760840393845425841694207227577566014499177946625808339280695375248183566646142658365288271442576653765027819509590731001054442927352567703405409960579876585574629833541273001512585450180614139593612644204969098354970260528716504072569346159234461229175023703674099353478636812952929722953983972956996169777848982543139110744481262535844370154971396496218452050886379157788984537380289255536706848191844379241012902334670595403177494624322796236540408949545775613285717240989231149288105974319028935697447236364904600461088459167404044425854866789199345420682601210667842325565027996291328222407152718670510954609158257277920565195314799626665988534430622419675518962961390111205909965178280068355051134542399814743628059731714043160572711371642346083943432283901948084121237193244807469539561092590293613230613792841761532453466733750853498960410143965768158100745594870317134288724167070783447258534393153447879457981427575542220689533923274560551416675726352380509465811822628618882429062995033334308916050265543859952276794196247570418332975629189798880175867017851141549131181145124577490690993039203364767857875882175571439515037476019450929944051671161505494457215487087915739890535100524597734388425471714686263244648794233134752224224839520453185936711552983809765050708550316821898111072297178464685546077735543070498600625321128326836796364834423441620884109433381966389808835416378738557134596554161929589715550135358593821569453483239879661049430095548177386956491712544362724400125114640603852811441110113099484978014563617856030338656264174047726573752145455877424276809817017712390319230338116200204930046933979604298395073036217220755379756152379171402090377556708167466167637933400299067660207708123236769895785239138425575787437051921434179329482194405492778149315037388542018221835069934931181705836312718603899735006186473019743203613332726967336258165629971119561576631766979799288085735239764987418644771660295371169302968980875058889362828796658617803789038175772743053071605672601058770484217245602392893549276350057568462562049548924838689276435933816300248773405190183437700286518965963417278751703614252301166423292795934704555021387137961717444513220212615880508039244043793557688483939596191794202213806296427241634540380926445694732105131483942603099071690522743815226936982515699192029447911635388665887602987704708025839536482500074460662062711510635584634669466555721600538921592913706100788918609620731728760836187294249429917836718507831617210357402248827422070910504905222694362852713330765752602315771272415295068725641662697856351144754772937811011877472108605433238637817198276474591783458782574025149520534443202565189786461437374046026487844668193558409757134490965737934547554788500242896206575200841042812023962979320623490190860093366605053258356693609010017353744710842613045163088487261561861899279407857650173479832924654574678883896171652349467994782126719071484902130759843972778385300437104198025164325223872712094190667806219287934526719557099612185130678133886961669514160929136620612907173590179789330030371544169355077100093280000328641566416245906530558665632559027073536846710529872732375582112014246430847319481737913747954821564999733531802817169340196964173529772402850046526718127385395722298571950836391158405938140518916647951308263388440990832617572221578105807172319585777841083101544418551975397945964094997762592934731972271288864430064737117198571208681327772587334007105035640237887171486720369525765573253581504073477426885574304353728504029776930898846404465016905529394742805802276079504289433545444174161221380547176418814068036577228781402834815170062650019558229322684495683058620312546808338861300604370576038752136198828729688859396533130400429086820856226135684178178786742622216695312454196814566894300442277624543118225387051953689603839286275512484146055178539959585427063488568740219181382044430467926322520962714931250702273206617705877438267760381675533495664497986371254980586638103139579097991806520570194939387988186788153106923823252617916975329761224034984598321295868688519142557378635421466281743971327182354360122679536399820458081684881410781255561266385154534551962954074776250617776909261583907501064556872537871289074411774713048455483664063343648459673024577256797774341405589482199836709168463771964912673576454285919400429129745312727567762613128024247997815935377453858947000445069535714076021090672432177033313659628159177039534566840529482551122424231040431824419079604696096351034825140680873751348284340872984605804320541170618254962326265502846068056974878960317956966428304498197826498103541394213889385853825118241974206665809763062988605837479151067114725006278553450685162665955964995715362233410968647907933723060685619440276528740056964850580929003448132132351367120713697074185585686376121271610419259411000938648937159552784567815009716821477016426775794620187733634790950079224393986500303898699184894897028291590911795201735875396172910978493062688038797644351275580598867454415169164315758539237203192675746790679980940538251594756307054696405442782543865636544989895548758967445090168455821897765519151393241913801595837793881125165686046908337535368755448722220706823930733740208511001290002287978574850805744766174081827704491692721075660421244657897436115114381064726882007549169271971754462791525748840764704762277645156516773542149595148351796602382797879838243736141358935265025311807657564656858777768069251334879114255846043080601908740918656753779025901531671163290720022441791278691216221340248489808142646240962228273278102079976354569090084051846037804174077987519680518918128107048501272020108849651540679610965858099262827540614482308662889931705259237618335985680901764363007379682286395065468972932980268667367169710471266553841578255752903766236863711383290507519328931161205652584928563636419245548940021044504968538687018890573670277179480360537361642242969244468439559778600368596198462161866515084553629497113750130200950130574943952671645039924833089287874882910450175736547495303022140204543191550036177822666707601234995419685128574036842832504313355143193512457989321327341912026379507147859609361343675838849598211709736264430468738312618945671015826845790591868165067238800869904077733799700410425260362643806953639754773534022692977135600062025434593626067031869430406248486001175216567498492516475187712249327556787591961046364003798386616244091997616798406900002600145054213694822588710262866918336360007278606547564526765762348215443571161262996291089301989303151580534906338870611894119676095048865942183620582645162111646150252105933253581513448319008824985604579632736458543546673155427815750646698825583566166507123256143311153530511649782206955843147084971181836422066065493212846991123244419694867042352247870633376550865952907774029415967296620470625748958154507902694851668926967489340902237587331207803871349568192478823231367872723003774049166422845886440640992347932579595046793842913797959372835528052636587475580861879154607896630351325494091090356935828365735363641586295865152152609151474964569379550438924077208479754299434182100505680023871398777926380708961416043897944799973556769306433809466375687097253506604040895079347171705888910173085831972325383615465510928378161052040963805377173136049162777892814371103572260550647172035653678473571563942899505532339772868422975847647588430049493473966763650912175768602381870822279689484907627775250362257337591756772341441498386117267777782006913379027146218688718501223375225213034386153688808196612796531763260113618803709393986257389780836192392467814787688197230644062974864859515777816444105284053899599875272448638355642682102251746382668297912623448365870227833865317616780243480278098307112762008764645175085614151036719369018344260254832859594164175581842335512019099534317823032067646264202093356984940001765759927832363325981319294911919097448421587854556949870164002114786270371527898955380006115953565402916765280739065299826452120556345712154189409081784229934975872198532851883954617745049584202820007361299916604339922939112209874320756111453474247418900898250853053117346169275044201529595757836583750310669715727316811058099643570366856412362884767784368236045267158338344114600884247763719328850936552872462378779234778540440283393276489935532766936592241974862180307478515891357915151456511114415856327090129799787395144369195317798552748388520199191090419391774849268448446505014706486176439623736110251748795550699660350642152363824962076468185748765972864088988491807077513355903916838336703764122289855133463704506192231331076794566126541605826305309245711077884538027457775635176101624729924061280478374820264750207317750609557791146243647510550882043992808434143609333052579174013048470363339759799829009953816543295110854704378660301102055412197952741345166824042776805736883760882534062913142151101633481790235644027407776334613126842157582749477018192060958503982234652502054878675928447181716835029466561066739095407494040708963799423443590870868822692296776288382363502265680465683774963360075278481439053902843396042153284077436567634001392515619900092288930304610937811397908872352481973197309319268084203214956096568858904070733302066635435000617071009628935283500216137053076419290236968284842943857339850345141110427816974726896051543675174570431335404348956116814806850986819579332124175066108909060948306258141173717943692901513992310532059176042430761563023874863998747625690338136702071159490563695952569620358102253253957312337325433135808311419541826664386658143260180400316214868735886564003468736163794228275852483310994117073921361012455164375119554504567502822394292639835891278615154392848388919987964336028037705063097543506236400578411432996638670840983732207479258230312903043442447897412158254649468642643915234711987045609223253491767272062082335497608416154043331650338258942365025049649761992432070836137170200436411926208655216801708396431874329216135881918000907936206737106823540087076351460993108996781493009020209850734911674129786228683217880828081962699844046786294895037494039578717848271255777666994264739307183306664935248698552810492934364245694641996656845464683381619750383572157497830040251354122547282774882403125781510846018693452924208747552329644549185012386940142688448018888950897487367782499100000454215218910075138494916306259528556662832206862292565140871604540169029514041519731176058739052664089880034819396051066470783130355510830303009359934085893580225365215577142275947115881617439418074078249640588961576099691329183823600648318488169171341277251489751438854964765841167350802784552167999798972070108290295575495343744940011509897433607859273131620329334329884424329953499517199644878071874664244843840085162256565170888975513106952752545309093853721487758733593518248196007882135955484495372619150132733476507492136802215756572787935697271700902886276479637216139966213203753409050055032360909013115945465955464124219469432731525528688948755300478204756822667891876546052276848172201783511793880042145708463217950632323284091269725635166544639244664644653872634753467164477998446215009871420023728649834052991686658368255150779115491421678450541864143537633057242699637696704733368396573521461955686380296436218258898308921903873733353524835126628666023868763937415820482800224885977928132725890027827835546006204676629471149191575975574218397593493079806896885073341103558402435042000028638076254681410362638169804911196024380422734481855945395128564821064214798215586561051278892963255830437999009788171216257573269681890798780634916753374940953965927357996490308743798817794917593776076420885963291738314474674349391874853607190565216314898948009829064176438201845229650741563795526274943921622696849981661852383607170534471386273168121024619067210380535480689673469785079402722689769894145284188584971700435087544384842253700712536633280216811824603130346923120603143811368584256253631610075983330161474241533939875388213749360981655206678274127744415679264875214199360170460377688594506679836133389192741765405789445062943817055856634777437936519990300051820107084483395414327232391734610323176253106992438060543591894005391484226093042446836057761948222067481414875130417919888693094872994921209644888521709509746751413363536375336027695444181836868722883487610620455347024958164841226395026972141605406923038233114271805318318844602415666498929330707041149764875329028816391291524643033240481583471666375902183173359035605638273562678429837885364693634266066300607294566814564021795200521181714814683004423487178373467388876603531439991898416731916706930377782639090128344551887685975385908173065259605631459007782082922440652012697879044452838929926196702945543310594779889147325096707062679461610993043941923880910456383489745471079059396621703753113937643382670527664249357724574530077400951063478764918313384654433051874452375359733066801445633206302657748957947441343244852696126689870358835932389876747863125553637583190296219833376355473422056030079128321627693449500082079920463439114573014784796234338551451279230048890000731378856697949644423933485271448200803717989795740983731362921574952131264375443562206966156648991623651201395864152296868228269869032575516946849327034215623898001464810493688197610485409053872172831758668777817317054720754303766327092774803362553017480907259817863737823312135877417285350250577311991346356539497458491187166680186460709857211467393184449669652800396808897826979142598618257310566343176742081256298886701974199972263631422731652201770632322765023884126287945937894786324776136265594126809559569163250111325600626734060059271337188529917899559959912913671606704755127433786703997876691049354948304449716003783143460652842403035482618717127084617555787446415662656890996654919278857174110228251858716587269238199124113848368847136508330085456665540065792213369153780749068094543315743560147640767098089847673434006398378753964524113071050263844851819923145077287299202043570121824064625897665095356337814034212190519218668000702829975689700575213783221387777959503519365809444965744687628999382927014653916052164005503851422549776671281580388514758284634614339413469823204895400784836066845520988448717883320144649140711547659786310990001551333692761582148687571005411137678468130764937336440177855281506943017706767727684761079455141124082478617840943633266363197805357952640044639398131772960936115398169719499974399743475249810812071535315074756076497184213379810266534686276317664772223357785330614534853008160577555245911045399421922045286803824517330962185780257054998783690034421396468124756026235234204251062712951951106544337895434993454526141000060811359373463704403871469411625898094036851581420083818577732473227854082105800851997973389191712246215601093694816579379541024018732806546769145543889467909564336194284464970554632073934699980211439339229669256286651659155071037263031611640269342930729853561449510399940475945135699739719938295807744515575943734274076195489517068888662714408583507548828465119744123726389364581361319992032779228589745672361333424830559447977764169263333727050844780832188683645026285045717307121557102595397226073514823458777302296921291734970120392482601664259996644045312766391588324341574623725753300422145868046836357629708527870056024025450948328724579574113918311846891157364232265000733804087739989396185001841488223861524354467724856391179680071172444947235180925833572724073112271883724438710649442288226398088037743935887091125716502884114556345657245292153813141237388022778607341454751529917017320763249908686319944092567422291285787235206825119881268617334475479512504831801886489081220029691256565964689864677972908014445392113595238620606152083608537739639860606634187184753694548234577834420195968701775291252977831784596819482810335893107413584649032992711711370172801549277437752867616889386024310412587789549085421852032444233601967283771307960600348980089755566554677706022219823354542035190129416484806039476308269630497461268496395538666683942831513526168048049133303357828182315436989182525781206045790581018010987358724373463158784517436937864168595242563134983969921750942825925235624444173824884834519451638412060306239219523120881081971750182912400125014044566315126336221037259145820610194647118404990170395533089183807580768650584207857601051140287588098582909861245117586438261331371187677846051992616854550133431556871620705018888383974525301205815953024763608695349805815268814075898204946530635328363730855914835343222145670228778366150727797211998372575295558470610337707638702778119031269382292189462570825974846205829569469495525050477105369436596224114590721445503223910573868837729003540987331299368617901630968239034785997611035063955576289647866648693189888354535933424281750423351518914820862482121830980398349555669697735494346085807911849071756416152571371791880396458466287204234121144852834307103669854030324706143497242520404863413141359714651412175920089502232472882522743748237523440193742704625746994638299586848804685185251540482392348381873747367017833726451097847042110217739655439779745990187920082261642442499496610950182712938691954082875451679465349287852071933636977402605453626908916025438377826205959554171849340402706352848731325444686162691681686120555882170181984092254095938744782504139711106390745658389793180486491326562609680600100174429031992683818661587694308628092543297500493350974658389861268965268166873514892742437994272283550663248230967056472786752391689059940538308328955816901519244984661826604336577081784491981905537798949245628498274022831615046069650887198208486417260401182815479014147078116939917080362994789453587828038138084587071684466006408039477107367705711662430561953790278442593921502780056357722630143210503268714769375412213233086168411366626052399840798758757178061242362137776355656244508409057929319815023924752457318313771738023020022305568559900775665207193316596195485469064536172255175378022874986258967286974404635957043039801308425588861024671666921694487632969115325158311208716110401416713299485457131097131990880426966116063377766450010664927398413159829930304500678032816939284846922668954234691933949406537535881883388879804103584605987639710854402185219635712923662204631004631765641411629195556715486736429464603055326882568332629132184905734958234275795910796377469145620305243364345192868006005770550301406338952235046248011048880517458907518696074499239385286587875593328119618189441589181121473415359955510120362183244802801431680516132317516204501550792060006600545278598925473703917562348393051226458911315254632657519478291921008486301957998437788572112557361533816494715362662298397449439604224402392403314261829315748111639450087140118111976517754942823198314932826187273403452208107347313247869331823605858404878275423400510456643342042499745486673473904719222456972869022159740707598449247683009639112542316586704664837192248093783394209642043358259807294443993144550883900837056057201010229596118005602734727693223159065218421089068175304126831341883233719349834340572350881663506447735496488314918748735332971369858689321263645813242646839982676811108973833459114857856190154365793511412306361185101232459699407477160357149638537511234489047693623343681922506860778852244436359941909345021334667984855507325901077696113760578477989424281080304562556559204244820758678883262018095393815324036809159672551356463939456964428479123299386827303640564377387995666921029497445684739269696654783620835188138337454279557040947998641118698254301846058695119124927607405190347959755644035914043769946613858053881636964143429230819312539717762631371892722016064277776778063169282036475783982111156960269029526516085511090514055403613326655625538213012960942276093179458596596062634335727933629745192478880067104360206249863581657325807006286232281021826329961723313232811796874490496308512001051786661183398345382451116491757060534950431121441147001793612770846333641974903449722676320981799197915014545778989010178309132382621577531215543627069899646619145960647433066085170641392034040852302255767179706898057788825102188304128221459287526601123308360310467305493027119490599033282871518887707147903221355535842065512552399675034895909045868179443870782193837225881523578264264509757444210561807075770713070647294507681547769276299130365737106756112962741229304858403226884780326971780665740591579703441525444289230491617729719892637090513895126865137891432948003379943091159725869110244570226845077126430742272916334918048143387027712187169467655963386165360326249028664844478232114051503285179741648157249332064187525383561712357315592061722903476213868782613471464440868568651151103547847783171906621706944851978147395219915006753541958905450608065251687205961022961285874931969747399394678324245078918541883483464844983472244456847044314919250175341342333238259688437867714488501775153891313824470917539743595356731540997454643689592630514064727913716214256404546606971748532009064106528282798611072990321031209844163321090891994596024678633591074460693893160067033445989714077879606848076201610168230982118810514748021595741955235068904625519917146994741830809285736174722456470864634844757848146844274811008770739948946101157438996098980231519455440317017190419888573281601818887127865341974647552893063795225493182029314934787080899428247181462009000888164616548605285888742861123241969619554977149083957167072698457681549823879523367170793801754100765578002703056905849230997059859852822290739014365155431878217118917169869872830077919491742335530768625918919909121385724107512619837463713553658573365049130457564426487660500488774665228833449729164355464081461084074113769656310782589166711130073897468357553812829799215178889611469276366701451307043328268845199549589733231021003383191012493917850577802447938429919485000371669483389479131566267076996754895479313703581098194977638919648039179928060081275786873199262610723652921424046729475939490946177243508778638729986020030282657450799729732052649413164664610356376550802236700582700185943160034796151030503801105754779272611685252335246025963700874882938421905213178941996201013072908557277128056998175294849226037510083699861528682321469398879222220176249327051977676556109737808709444255098811707571405002633063668176197866149945160368337684819173398668749265265459293285014184727374890977064251819281336779796753570205028636678929807978058080949698702566275205365897804025675569056002843509427732230985710770719010825526020675313242005948922761386722127626750515512227372450672873554799724960628780428166169884279597444195222258362835531929536447196344128301285468037492575467775734263978991452953361275650383717408011167386639006290106861495521216891621888267943659006743805681345330668529510802151682732267546404091205152674270532867036279081533093215847096006859528831582853283088923165792964660170125389663670975801089471822460232742275659749417797712696663308851150592926286259575394241746683609797131350082777287337184492457934161337768477307469707909373903218011582865747761481244628829666685230419046395363862645871748712415468066292683754721874699080534180884203532527595243776483162736482522672707302947502949345396978659245402765230545037928341210512115698452149989811504139919255135025857428567503350862727375698051902300736049633133299775297413849907469591502025520235757963195279706034205058840512281641340146744469276230510217005473745676254487912195428667703505123245815322793110890474068393329430878850356393916648026343817265708253189358123517113762648850413047434604419221379192024470875739317439245819948591659503903635605540816364169557349705947392464216454041086626985000802225942578045918565079429993817994332839305781065887510379260592057758719912940265192234083420917426783078635291269510204323766490806089038907079668457795407885889550545878197084049641407545631090824553485187424889662355546413636061799576006982170597014332655996528455822402535847242481419006670074319616199622372117398230766468959262520111813288855083781975501911146682089977701646420561948591661095626167639530133254316607967910181246976970092977462248688870285483941889300266897911421996814470955719341197863980102726257098272763034938666878042248060669589605978456518923774800598909100972412486488355316288386417534448833342419943267732289495061331619498396264666219848676769746171719087014830694896646873805668600247864164826616478106697799095455710762668680124111493084931282368056518698970299548131513689389638359670594607752768049288582628357101938198091083171940411356076426668318508577882660599562870619321578256237548929316526601706665850967860562951523225035690575048028897643407059738169012485293101491437206184099322652924338517309893845988119466963677014356120969658205142526468807753652745991099867306297627292914535492181173709670498721832056741665536643316208978689103941749593804912681897253045611977132313373924522796732482296283567658769593257572653701635950766339412048833063816561916044187053087218637233052308780886659317110635850131370288785240229193292582711830885202681128636624952504877145656028790802938801997330702940933561507460695484243985918015246254943822362116374039111125633906214755064017737174149124729674768980318983613350312814110839787060765447064159657261099801174537731689894881036701390079111655322232090674618148913793273053136401512941076973276680244767167127222993560446827715514021024391195368003103982520817633405373558284452433841336121278528000161630932830241290435788062174146924269040471462509443646364665890886792409779447645213451389571954555415712930496550942067461881420853150547673096760535650243853318249637245967682112122768049580988114566324804241643894266745493927937306227349786325240726892509592131993865115065031649539143246160744714552335067863360249260815986801580935614428549861494248926133101746382039594858469476940072340703919894468052532535686212186370460327164235539443951622933638534319437161494691652493811082000533497119595554856574053703873965653307567162880647971626070935523053697345346446531636596141135756729539583684559802854167806039861182843984125712799511607734429715050373936648339391362368014323516574598002211650454312169887964982226590494144903452638091763419142314710370899455081084169986253295309741718678173639160593904168730639938838957531354214471468541052931929187696278840480584313332100286517848520084540310374526821516809505613382415324743434503778482520218719527630705631254532464896784361898654322213399723678342753726908397963034816403841281244560643905331705264608565766704876255053770274619026811471537809301518998046220308226057955113775803030434275766625476636797070354573575568385091707818795991871881749304695793964892244637112912205454177990356954615126548424749899077463082707663697066095552161561729579376516278477665770825573914145199330494153899906466616959767905080057900943883141771819443458440239489108777645531997328725705557310546088638325398670694052938043454000463792730671574741386175153610756622069479799916054461937721435933584071681201074553091755726688237702993825934970963070348152527570619369491776424531896343958999463077903456145655430597416130125232811295078952678184185056832859017299820357296851592156904201566628255090969903783764089051418419393054847156767897743835022792080467755756019328493437542649746083534795824518596312497058631039345225177900408502859047854983347297638257644233880788962967552461006685585763883678940372232591084207084543825898556228315698499382834203890911732529918624760717846731265460235704924419442469223989582896060410602087698682370811121364272319030622269075789161308667204171803401288082257557575699514825564076937038516137139718839210854223528757923399332639262144521937364101683715216359775993656728082631537166752837124271286294732546478655568386157288212446518882232687300837467935185273124134053723840918224539201874021807024263721027323620372695147190332139941743532759012416058483665144898551469852362553652895563868382861988664172025329005946507883429371650600450724501904919599210650155997330659879289875064582972513955543121238250169895185334713394535108385063046982426193654477385868111513839941404644150690422464880110010887311529215435730091615151177848624198739613330082199967189085041043446837501019078438569830964828354066748693180077797193770450695248133045227335316971338992866669421244091582567778369842642133287752208175738074826342706187646998032144887971944915388469781519387817954957617818790848751993818645381522254906898753099127858151567737548183796582086877161309518641866500127592371932837754627807798382514012495946976987822931221808228424766812327936161242171499028008433921501218992188692212939591543603920853530366192547623781824997545759389050982926259633243275559617636997186822939546962075876674987699154168672029436176868626483891295027983310236333820097040061972668571971230753331703593815425610585830014861622123195340698461891255370932461433356092577684770620246826086827224598415740263523698246132817782758434711461458843766312074052047020716159729748858574722090197373801817642044669323385537986934782797115775914384965357959714228724216816522384889958331201374302395212216708159613940827195661441800203796836789988637862715012011054325157864019706072251364704601374773849513939002075910472695906607445603386692117037333356628929139030106121353819927105071611596729129871625531496700079089930305992800857059368693477413850976658927613571885734507832113948222776235675037337215335481698484267793440429573942686452731071973902621401048984378567149002235511692887022996841261798175434395338458612574585268925414318820090064261977857151478670815482181828541576333152422354845460348009186212654894223767791588700758349493702873660472822102936433642732347430019853348259038681032465834898592020220690190815998465436360219369040596657457484995172577822708278750595147338500616587970210586456378883041868544179904182989429275973182199263353463068436533506659202188907325895515575203703483889196640065985553727325225650957711968492212253410189604455492492542037262606474800446559044114441793396582033370712234041721054719624861128197103219844354864433160338982205828277601875829585103076393965314958790926391377674791251371032745922077270397255898421755330976962655355538397306611289371056100884135949476702251087330384705188515428153674589106717630748002841590142217648863402404736137024574666645849455020492630295037839160299753726102345509747939769840580876105448813089023755281836351084710535937291589651793388043442656359520345604274404645589766351072431130302722327199690582633641144681988378043232745470490506873556321769431104614730530240962247554399668484771407408493823127695069124844346015750581456336539895997468792839267179469342625188033547611811687923519634198711011994367809309688062788017142275848237883489269838911008631593680926555842476161219831724131137164810293743230083526639635036630341482157120006834419274824590266803703060702476254234838797645741432492927232930685621178906205704183463494076583317920467715087528116633753937374576391427545065792651943548942586576170749225420792677993965347983688359798058660556019543904218150516744388672884328116532830137647501976994820225662249831762360109264055881741512139333555621969819896614130745082449070768008648126095576383008614052357407495509951100266305152234708274689682490833241918684304083945558865175113190669446536067449077145930962723824343005713242806152096306497913691346090121872040158403642139318293403919680969134843710058894326018797292199464454817044938384467345544045225980949758372187836638548346041172979349842457640644948211626964967909635412793878631540571042904908366012872339784574452949687030472061010241685365989826975594497367884021530274830927616904130435991214891661181081953395317599356420357093795828163660990022174249988391858292425110616593911912199903602088260676213790333681087730238075779783528878413134114002322244847528065089112485386052108389340852545686781851862810755634900926128578043202369896016245286239904965826176593407885083736115391432913548780429126919313081131356199171085015194887668930530583492537415762969717717269951509352637133969064292574652494300760386215513113206650319763081846090822393521374032186410614206719931446727318393211092576629105938662404663518519320363006301082883719556798085654855423064342333895433271365349124641767547930287621292754453784756153984200858627472797314071249135974011458119498503307040149252035178658896381760281419978226083494217389852716587473440805129643182577777108197333838220222037753507943732898448812561060264348136416021255476763191442737306394975676496755599346185804008232499343859026801775356197773383980157099659341541024807085041995725715213993671823546985565871012224843630469678460820138767756629710249486865445037950406362417874478035243421075031853694430802556586117821079259839103509960620067298448014759524120440148998535786763995043649922465416749413215215255389846995045371301329082534713214296630836018493884371405261104598635049649456280897528980911834541503294106541981256016197789672001046574121409411733884753203335888510950215142987941761010963540472921781000228374737041695815529883420290331633962971976446232762724299585724986775928026951700311281690454145984312091322362222057621155639975576030742934003608743002291476754781367726877025924117349199321130747474686264920213970040630959757596199327976760898998794799194086295803229981848606796177121927985438214852445836219542771973989882031056340620742403200754187617949844174797569163667219135508041867756972391808788994150290225665993641184584944503171404601828212055573417123442783244787490287439515167040616736293327220472612551671059187985955860762275080926717466575514101456799650145479652913408487764987917262418570799834718799055688701794439080388205981479120752591162342623344113758450138547981930265227718591796535609637344266011594568945876113486688971254002597779571899899990913112483307882718258838900140438511556695757401397814847000352524874889905405753154607713116745983766152485726742595790322451333282065059693932290292217215829808102014416384724342803493889339884648873637687471616320389413317706239202039931622078416309089411154506175074365028999287960114439485267811709951268308556385551661670113530426439577355165614002355401025587952772630013777309754542071900341142970828018415478241406359869752565325903710397172230307955310510568463017404236582539844763446897560398431246742789260548837417137322260364993070755418936025153009542483396654484287873594987327564692509801780384918945783989727969566296487685058180694231163856448497247119677372344660098442914324414329410570390263077059859591913972110070284700058775042857680197656081103171763846355453207904072441848221705156648611260331788511773294988036623248703623528350097586772011734327698954494759713432679230593479089712907579008894471406123551579514108914244765579476660582794767366372040645191020182974654295744340665418309868905386840603163425188916510049885551098270588317799802217641113151768614942291261313546561878986544917159443162700889415807487427628430668727680698167311491942275004670527077502256437917030340748716873670488014477738995773529115727281248729372849702250967244292754058976975974080830553981753674993965488411275887654055002464515657340583885738433388836006476718976474774278611773698250572020826074187807534316146705060135192712485329234613178013476414417268435236709882159476721168397861708724371706684215745071357780170163516214331822599842358560579658105126982399603944378573849091134619645204057195767915863842958025732638371994518388336301046202109087934699479864090410961023877369309001853685517335434210661510880787071789685899344967394301769638460042597862451502948598549974293520432998312586054956340900274934979347026623128804339616708525493174681757757866789974019102703021534033493739631775493513378823281718277786374342744215016166804380021266807579401185572271578577268958648261199582940722318206105656880097984866338698645010140297325380588873964043605955018499398680802377726636740370214476757595193626334800522003891832554402768608133289114209946908903902110478093224325984424315597468940464899051434349468750600897815055161611802549803660889233517293833579141509937908221123266909496619627196179456867299345542837159045229869371611385410426367395139504435385901545921037575475248135523213717103127437024448217916620645847139811610825604958458070115278740267440475246875183790829063417676671171189947177767668378027054001696487756927387358663840541133672595003205955762001756111555831195929462097274218764387486368985755359138709883668221449451728177704404891768347947929817904033362777302343709798384534583226731921494952358468541977221998184827763948294522761664059476112021134237365499529546927641934746546271088115154484048590804445942759453629099539929203181881558818408489763012903258540215609531659153820079732684276755491878644674526249516213725416893272108967379520890183805557868351035263458156048201403010007700614951502080246428658825903664500916840723532910361126923367958867885741527682547177713167887059823022592843760800822934875465111495921360511365580092516821923356080420010720146373101094663594424977956107081766288386376376572087956053859744329645447473736056594333639395669226774111256530343002115654106908830455235697666439675393875707820193941230316877457995391986804265695924367821731874596371519487847343619358372843329911545697880941937467367334314842327778697712007373112437062367786449671652186525299239472640249619290251273546666183257818972568361878734646620948628802977675286162430452980815177363375584013084387253572014849829428773684890966295649712177501672391300583065988220027108023183175981670257476872100240912778204500264349388750809807348258305360689978612188201885838164087154125117492357085427487169232454162347904810145196816822623164823107567576098737630764243187946471777481939776723548794438345680476017965585338136417604532461711689015721006617241795275656625512805882341317998284390773002895510918785466816662298308298194708303856456263166398894803424101532959120785339541207331514349942116365014812578954326781327652050066161617785283123057104290877136400741620798140570565819325083094976818498632632881241541320190169863870975636185158465110618133520276126601744698681929021139765082136674288605861883448515358370735084695282752298412143257493292466546296607901239660156721436054786032821589434710614268052899499820649789903006438114514657430557928190716728308232109751759595470131279912710472532785099286048096696060016008809819338704324681015027352992522232823670725495056767917148539765017178086795908677828440089108959178216738367599990749131768899767083782511002219995725919556691796309859595534066007615642393109685822881712972130436885404277270864312792554144566017311992322264968094863866123365684641615487286390327790189980666603576955636857684424508777440311323890299184953863664454674483728277825112062534665460049299775238418956706562799086249380759377767237559893063506864072726487029111466254887385558682810322708662494716872142208538890289262036486146993166691917256837535906958211328271268079004786956285735266161918212095304644601809319387654565744022840067395712939458977819821456978178766527254446450382608852848076689341954988417365911510920541322044300654973236888149297292219760320445863206293695290586913092382164979811796618318892764109214288579392976625305085018585169637873324010869138349766549313712598454342570089204813847975171926333063643577597766414450498504921993951171911374203870899067728393617980577912015976087845730035222147296890579555699392212629059276705826560801473539775226818985583787158711889086835964661466148262596654532488344488441706653218378586361495265711716933806976073398556714487372836163509900359152506203495352147354393908513596554193469319606041498408234463691979441924509313159224846554177691311783706925879031647419416305131868138691507541998564604446784668112861658301425002217746141658623941510450209361135557025344988810436786686013479443663778439582153935785420438208619686040886547773562127983766103059863529908943315771109308606402554200960352005276188329782161753461208701383378906907526344614496613372729031535376283793136052248192767877344629714362787628228020606185989534516128517141739351461125901720121030984734115753495109774210790756328460876295328313617596678873082920318375257321024274146401076837272234254558420389707881526411196311897451396210889313072392117359215048356318821802475412089366263142375822507809868651171608421981863205014517402277877216881472964430528547187967728532157622969402561061403187569763290892342800750078160937399519522532598877168766793422137109373677615772336875936135951030608647730508874000952295919482921229255408927568232179758005325666321962753772442624329708759721248771683051586564941535966745118208458375180561469564817820152603771320401432087650717648488486487920565075818727078571040638294187229541721702145935919564775510782781395619711614740819633698221795284245492423322801097794654728261611752931228474348889514675701797035484065052059906650099321910342583493437741640957096117006356523586573062582159866286053166162745433144123780483157656431143065421508146792607225488298320527901064736913666954563939220919724852919648169077046070501594728121658795901393833003452093918475227331095366980304192526445316187478228481020564126188619888518571364679722848689960666197589789632777838689999100148361970378593265782845116461956070878384202779867359102560247686221533280694067837095345818164334816917630849360332582740492472518592660747249719857490537400546591449624427338015820623165688355447133163313084914533464380192343754856169448721840576206213153052300809140122973418390905534526894223598200289500251717769032097004022378610498848704766435148414592961643102397790551197058459740599849042124316449938408251132247628788455235881876086851658820564372936906467077015343743699867871042210286677902801182373925217609296964773034336071509445399515724053843495328921390037806420379889687700175693758380724683561025436356411934086460656574476322219198391490788199194184778099007536342424191687593221901737142274625350464013675949290193454995397522788250266187643291462954330587031642890829561864618812727779496230985142628552893178009868780686375949043417457020333950309585229275625661582072100714429316791796168397722382355518853083745630971769027468664890924912751363262791527976572382323360077379865365025969091871348906334127606361975689183185022242932390499770262311007829629699016875786446087006362942817038462053583802276623824476316800471686788231603344469870814088123238535443226855485807804337553895042916371654820518935652982135581538310659228913806301553469661584463372204803753082098305751641371486855499807569059571012115486502979425184912948659698498444647712056869978781552412669151822955562844446331868358395361622346421133785807584166736751087705623968375936710444373201912029080304046891923347733115796284859632588944210416025419668171598483751119756438526158729108430515916701868753770338999697678946026715945950744256942866972977380549265383011762693500959254704650527383657609564012721126281655374810220769267906437909564721776701204177594174148794186811608254772007827530743049884590671053619447143437432800652626079575093642202915941450403841365021925238745112569206791723291458848894221983050887137917921827169532316730897012987680849066444503716716291039180960487296091244140334599309617497841609852635102410307730825982514947533703597608138465071812919919301289980423907541741793146828996698238547506920490445118863902184272997780317768199507263134496011295779370004117288039077614609413341031930002408418552246016530462063009144858691920934359498775336427132898563465168451407841338710217985134807561419199945104827103844785607890229243658742210407406366750967455375546066757586149125600183630115792930473503958250846560212328857502889590094933483563322501434988703405502156107220989223911269583058900333654414090252409982450511639755224385924957865501766232579693501161931506067376195362072951307333781724537115504377804813058724076418106771974288905156480419116719891009937149554044078342370698730568732282468628884650177996965439327706080839454547461356171968089221889303177007388155597625617747812342808657932452003909287912001478913036936303646023248195453170965337546081255961651732538366302049013047042309786278670490400851084992047053847324150314452934238074062688146258666355601790738132882793871495284347665740872697609371863773338078604254446181386734552881504962857048619864201405923745780805132267835960281712513578899062975696289131613525864923029144217097607456127622543968599481701089638265221193507699186128862398499092499106171734533407091578978361348962829993983835326822516353536807724469464837861580416010502424931537555093124331713199054233959859703995979463134097792901010137315110317256362283455799531442526651234381771870649379787761982371374169153402086866067333688222896102066487711675092099183469065056343504484662758794236093681905899161283223854857503454174210999487128363648200933092475117156000062081771765344107080685790550802491258970584445177390846249359304697043625474339199813602580499451540386137623139171410613396400436255418755452627045216415948760709891832700225357197211979765408164896844496586383323645563399285867618041571651876758285727811248402164938904946156196422225211594594650313631182201682165266068630496593598536773033624220866140342964962611898982258538048607256622764071821445434645856410504533915017069575055502917500803089241228906803326166397372612788068422653787608667562222075356438509701224853824842483743496786600911249451152986569179453113037812816356011697800320606308997265625442680042595972049750778382567888977259879230729278059091030803156422339758951382523954649911547273639880786114338373636555863508254867124293178829539133202422883801575475590342868934103934840410636884833745200941185055530368365879850999054287593518454314753259096320009367876359149475389522739350225463761382345914025793618341336948649687022157991075285952141117839537785069261533890730295310030583252470902235330558834773085741717283598763849883959208177734541610638970393412740927244156592611104878473009703579495608805297488826244914398902866559608331567293211443750358771653978043384245362671459405245616670545965311594213721795454701932086857914853347113304244352985936691423531593511466305674508186756460949480302892300431164873899701442495922186411672393398606682136351140207113803780893638675759234905110714943030571700799263477704234281714795855563801871308295715436101259546024986794056305240508712466113780997592194648017839660525168615793226724725465304024742825551501482409533275495611437889881755916601042511376292071058654973369020826106230937779227912731601017389206906686608972494842050697481851115479616004567986350572058742523035048398835443832588465810331914835352861253841417545168343198011994110801446732135181259618343088645130684550813813832587456814950952933607204055467008640156339820138166078242935679561215182577940742577374405240196336760172505825846785529786824948541431814262954151139548231382508673539125983648003784564760619441409290109879825484060309914247373656232897747014981009903362081456565165203000390765717903033158128832470879113370588183693042211022267550347245406697019994694534714210630182413629423373550882648852826706559466309143403796723622986516993447439901657291626606842793151645319592546285148418601107619989893132253238006706300871640248981831221913286994737615590787817961750948297778602898689999886140497418812146794224059441774456447379228904113923388289632675850308836716972558152985073667265581420105086303983922461576891314678934752830492285352603079036467781728819556078099329486227982383125844848765391548695557729714159864296275592807703202525787531299244250971893534366435797106498870820567317860017207034116804108080516326852863811647336267393895652464897126175120166756712110864419188750544383025213033604512060816877890666870787453030990882602642987828720917890050885027869677092038090128291150686395561602857303575834580401694365806044292952580486451512079569062918345113289408237158393460352141420654086775862915067083458789035825283553181986488246472561136319181582653258510180323772085151192296372099145085194893053804248271031797472320556473388134797077036447493718268887247591426920451358714665793621325464854734096625127966713027274699281502302040860730577800722933820114234468900263938665306263608603069382485534705668324585483756718442855317143145173347441391510110401616383551385061706680730664537136599605182088952836525999188128366587623366570218223933910362514955467519586810805680667834333001301568680990842519479632502302450119971010964228717699807368055489985244712034366352278391833671951732376439136510446208989854936260247294823661960040863674714657921818927326028962209182778965359858179180529564218677182828717452497208201485212494841667447168688555636640203898470512128005850942157243305752864959327372308864888054269744082451818654753134655408214452610179846602217471845326665195298550181385720790186172808749486692041407865865687069985828198827728414974013975038435609341106751292730543911141405023829884948174067566486023670392372709641088000090533549083450054603972056709514783780865650495227674743468992043777800698323869097491892563107638544758891923802956899707621531085925347337109639025056182387934065973138955132958200730053883547003962571619073277132204306468541296483934355871797010873338037024856622329022440448873889663981290902733555621391358940679145300572208834622613298059692760018682645718494424575082623184916653668831869311532321205190199583041002185040288230886958308967933330361622092350508734067327121429873128447074916333665528005712396772628496000513805036448886277898296518424053502714980728767832027284639527290405284540015028363322901447826422684365807587649951116681681546597980120480181447940243337595811835043512758308319140277029110150053902866502303951123135461610956160427516703078699830713745962321413681289217172405957670961021373451108612388654307160622164511019128304039239834380361169208266341772910944238139237433959070481030364354113430512189340578885484274516585311892950374622771759374206618564285394212845032477662920259625816034581367828894951478444707589298945554278136296890472282856561537019992219797625833806754703515613722825930016904782590467026955951349795987332057883792112185709303528558344311530855480146411954253411435343308073656266339222990040967098279637247308516081078921225529340865976796214132386426985537295695230199893759878780343703914926712082598960388540396609335291412791567149842471249478789895019438721841764332803864934856628186760812688830322916867116329303608019231346039463328713564383997648500801728898838563539157689183952673615918331910368512380396590263747615882807857044645380250503260783353989344961810207178570635523578970482769172017594076744222690128954856229651004184743147513098421684700584446651677494709556404857740749213335904575784795638087823638308788643388116123835234656795406377474879203930803964351270035534649433687305194104797784906605381736277295219372592872163576154393008246824250612537008769734178726578464592298165691412950679709758760500697305124904983472915136728954121112254732543549799550011046962504010545486914058762133806546688786798520948571109698158323657007954401188935691373620760213993687859809544700141014965320186982545247199556203270354993712632290923311920863518916561467342177273867140738869440376061831033526209678987249545291760155996782193052633868096412139411647023928398754031497556906059744575048998052918622896787918899262989589483478279365038728609387401912802303650145848102328769853581661288983665276414168405154803625469893243337899977566313727233712319797823176708320503126958969027369961342510227738504131520193365532737292458713072240876392953501714852794884655229225972414840082003089491757771019300205633997138928830660844946380482922416827578212400047950682449708709533848191671329973737052445879332168857211651283958601330670224404608737943726258254081580057094837218165209284935928821405396157303007056541869387633500579328515144462692998717007823905171483250674120475570905805826174405903117609574452526889195167459445888664929545037092989439701613207979352081404024279032340214983845743111753316852856088276969899083729532351315878410833303858228367961366477372629083949368841192931585233290244605897661678761782978043352065668173397662076002770400606288582287503759563919235478512877509392747737120619292275319323639328040984937555864305108092704210148346988161195402908601485744285999012884155447719898435685012070182530672645746924492970052321048939575162337516800327089709107526855623489183284037568148306358357945558384964563016612791599061439073259413185683540427842833811310446746604455809783302677769258746051965193815011837996101676779966225922761654995782304659166948567986116958187231196954403586698212262994815628697298082780378107617094732660201207994004789807693401878081465756684291132002475602209393962939906638287832719037857873935227136918327838715151899037320724000426147906960206734283646273095066489217424542858232822781097561920638016343687416124275478387998289587361698769145606518670003372326899054589197460103231642889411877136859976634823367670142181801048538276814461560514557750547517262142881946930530970753666197074920662309931501602852229693053374570652064583315406480978049339525049209971514860025396790173295395865213006111393878069959638990014991326548463277233028293122229420487048759244806307270546048830584434796188132192278379310537662896865563766585541629855196642559615545289647317897864419831614728942563313229228224122110536402031203231395463556316595510833722753179965910009174313717797240529884822341640645436271832957103016546484506330309033555680421617809657599133832773783920675610765026283760610102102455109963232361885018947051961500212870729398709675640115043324257434797089538730093084701708606633556497076686719965408670275367528985783704722293497715726052815075710551641189537401982864125264615838701899038664174323530367985798152829164804527234157261649720029527185321608144648847727012335194945538702258678005775323191385031446148350459326276461199367470025199584634678512637253180840668864613455313053169209962322074593282646037705039530206567284667703243045989461582443308184829946814472366553626223597627386049604611794011227667936501167036216981907586647007388460660984377899793343635523719253412198296940287933679663403391558095440727078130414096993296271669848059298136896582096295094183528981201510120929283436617977057312412917875958839117072980083730374496790852653572301546432107585012075828304651196755807180492241726944645416247226840962543267795588323874217306251562043730095675731567630074706689696573029624654427163250877834941770318257198260109368928938282612773981835695012072747633108883133410891863048843153535721534613741336516862146528661122457786737782828634905529752387911590502569466046365645350118347210149264751780798420880558697954987741090678291960408766229173794011957529034342854637219634314726370398747411162722012144188014213329545509659065865439629869734601669077557018195358155930378908484867380498678592593339474409086134010183897317857447475382149366044915147298524393541025825331774806876238081952550088600039873454128566410523541272908902856486421148871351653757645607103191126046602134593559150249936068797320386407296034504577441886169173497162354402696693541923300906218461627065527435270266591482895015775123858140931407796703769049204623493087130532103593094592220512057375257638110361233889339861857240359645281981021850423199356580050850300940832688093234257458664653702098042097171665389356797278623084450028479869812265116247237182154620096260392502816151974598149366896778576701155748707672671645776715404223944213848211610414166309936898376261567358994979616667541698800659814207159632491190785625045152600362396758789508697763876623440663037297367872980245209246499725912057069125679731880617423099874958153086871999759256804738289340708280441182218694929894528322937070211619157866585334626984643778503199283136084585504983423544793669951143697421566621372820536570972798109665011910958863781580104134876387647003961091504965030257783169479890086308008656686663799434381040256050938470754681237987640793704405029572180302370186756988010170877988640056661297443928496800093757487251023071029197208799783521415223952530823629595788280028973934796040536758222105839616551871390982981085776882811238564335301320728796254274166068134790776889709429858832657192600950154551375250851137787745129792201516531998990995381418040788403862199760893504715540991076489471163711945413400790732371337238525786002895853908481332061899057445172633861074045035035566766939664599292637947559711521374292355416813898740588279880370786304008329932591721386719401622865562946037855266157198746056106933880889849754962327543118261130269313850290220104107418178533965339377789829667197796438300470564181238048830162617275996842233479642744721551450570214630972923104021068608838453609925502728933509920925029284152301076227405230539955871323115990173794743650555630525817047116026236036793652034873829608968516147801510450893452412865221157226267775447478759934705353920890777811809060356682986075827683553954658102462664090299886115813596393413338462151777321886580220854946198425816475809892169373635658819885690681628418490886252007162198323215401596472653042286068548215598250136340919902990998820979140689686301699936208556693598924208194759749045226203164776636433509046294111793075206513745822945269956224189383785104905667208964924458937752215682236173289860652181600129645623970418861881403759461004051276990799521365876113576098287705160580738008543231299762507056381607224421140618886741951165923366484100878153492938923285508767371282255856516101569791526845389572542169055821131426576430435145319091618528973894473499671952796076746548831745448060136142141866712481895087981516576879231338583084944334428685625827273444847887502156589931755053262346815130765930347431491809343485098536349947106875429524478543581502169143114417322465371609157536801978731192150793691836967895073035336221769396352230730005919541918884432931276048392757037107928096846239888642513018462488547210843648071922644839962712869667724031667128462841161485959862339510124474264880652725845008701825216817896310170663946928246769478657281694052526751476400487780038832135712010865119447123134712230041828120630703165490540446050517590304765827300027082945767163237144583472685059010806187475739265151368427400537321968119662615163563355387639151613929210815903835113475675446909290937902155227067319525018392697359613635103081613104205123311794182251349889559409319438312038056840238180953756777163424531797599202955334350342661733498581268894751868466330570782716250919517731858555905052511533154069514059196753843904374879492702214471803822313242598791353097782090439599904994866057677962805059639272600833159637497197574422152905180671765198613104798314674653836646633894073316989029267757830171883473320664834114503845121585908236429174797549529917236419865324880535007971989177123972829108668645118703346354092277548018560713802716937050162943268200448145088310392829927302531420931942939765475987917943836681297727082821148303940971920173499338399819147150745587454862769375467889946444291228212660691209509822787913028010074278017156707340690808980186223519551169729920633508441532804544544477442689709538207834082153408885570553478691949330166051860952818133790633517356872575557827906240374543978659628965735622360756657579735130899337175137451918344029821725147728695759030893853275969558489475373284047279535373090287438949301622557367647183813759202989314204064975508652043082777815399513838099425482920348851644359989706755183041771086140359341329743438306538927778847269619586491754663923581776194105004869362795412139565464811107105560610901362366198263176285375515836161306797063901922397331909824251631244234232376206389203802604420864331459985113352895143795292272420509519616345740470038086814468183713486200810591461733762200181307152492780950588115376003452015030093126289311764083263523681742172625859921253009761846846297947403761953043469278206664213111213182611762173296182803783160290450444212448644336215988045011993872868184757736552793682275585532980313634509367452490211084976535048629561610967412114305649102833406624381272704666736711133469629091063940900831890367984411654124179164488546114384203140430219466072849174120706464661143100499557238278904798903410921069693118091867086065587039894048619560165216946912192824215957726581008644237784415593105596566571269570551259320277652253080931340416421251096611095956307405238923229629883638412698155406656956384007975151091578743632462933615319495183004112913411082238539749339798405004055013591574838519272357312682173224168647270744027082483324649848229831443188141104212832902890030713639281980828594430163652477719822288330750430127483920909913559849261719855013353213352848537531762065222122673884575036085800696083533042740611060530032873337354064291045486750497273621915540116569252337968314261626136476891618949829832371602558851241010583806729913159182251901569121665934134735065749637003531024223279934977676159299911781809381742171473636046113283810012178144829119103809099850465073044331016247805204983604690449482919081066889486763956049016635801226319956750087171443574992905786043135814973100926883757070213369978324247066770560836880992846862949260718240389201499239577850786561053279931999268884451646067561728643607415150845470821357957646769785730896112948798555629634987750951556424520250370632037253563422156786417785736905580794675637777787912044503863864245977602503686130535424468380627524337248785587742428212945366471043483177745674582937511550084706960591878876878089524819527040160353031614045125353929923300103032868467131158412763005522239212292065928935354046619565605215014602655204721842990300179211114811065772846283194226825993827742225622581760285708141573000506711630341801466652958855107789503286808371925719462185611776846196458091129239694433968884083313693943904165805006943309520500701004803375120404890269141431895905426444675556502225166093256304529919138374039680098554416568599742937980095645624749741183942303916727890791592114224887671625340711995943089429539854837321085670167642806155167528263910963714277101329001706166788039743036469195901798277376233758353987681808194929142775195874710948978050149829136260250282431893725911598462101400114028397792895597783842447117323086343081456828146501907159919697718363692869715600194218007736700173464411166709694163056483723028218668927849359110431605537076411140025179822399773121633663267515120060002998881364316895122744075184635480325192794989552019813850184108197681029902983162616816654822894255086133251055216923001281451581790079603763739741347854576849087610181691489987231645443413406658138094638037307109630013041793104329890770618825531007893624009056635331142077185235322096618082943888131081889300977818434028018665933976310605780819362596265700453105462961122933690356596639863498694921193554473397732750325816197845312584743344586518208202423138113465490147144855857540651014870106332960714748117728177358475801216047014981903973556646594738617808440228349533419885774307742604191683708910165673941890043772147313372401547614971652350505959513537893900229335716584527236184705423630630694097002572880657642889219718443566197378669728483190020331864586967044593512115435053274587132371264755082940297477287941574246194785752690700319471654656520115915142502355770047545510048701631770088551410366264429525916220203242571451314901332490991875381813105467596898000704768465064020714948099020142913081831159370963787876756093401719417454487561663918650832930395123326510028078222417280730096099221444444564612721370332114152775492179318103183324729962218489334778663712375524564738808803719537559807488358127719096707559511964023536786826829479723500326917584463745373552179864429988436795632593602574631595765808387527388128994905393098743927282913938548687541154866753809871864448548323619547901450194375094272022911303252846746459986521316580680734406408683493249530762361403992323193942188404930613950073029694734177645123277327843299097584997614931555871054673052028085612907285964001472741891619142491879889244769562835928063532989817452041832165202723227489505479149153955221035803725383995063641468162035182587809363189623892583540262263267530052226764069887451435938648790493368072601830891794709217868799719351708399956501750160187841411928252811025989494718491584571303319146905418393563020710848955274708836909552741126757509486497412150670980815391257280046963570200703979497873988298361188151475053034771772839878298005705894546237877404370415536895036606599985218915281762741712990020894039034116672369859637462403517033086630784823284542856343369568736335012235936224354493627224619966789944039482031215887438378570990523805646452257933719955097773319770953568123324372875558418666774014035929063185882847057184598625237630269677023262221826780642080992792851518586756939387836622605467155022365239959093662369369681025947360595429683882772194259585428121614898473245561880967462229259446694095237073797484593753750739043770077746312139469980784504849007889849819686035074738884972486042721763156741683251256261838338804420444076271369218326714661290422593536841760450409714225056017841631845715627036747946793830342056994728349287698075773910063780386300725745756467049882953630195984393298952125169169646178914071424553016182358180220011914481148363346019349177275570524820365651635186981889535817404891542180504880923384856176187551791300818942569362622843554154212387675265154075654932887603797867526060576505388352546412040181798222674106717166407821670731445119646283029357123837919232516670263180802688188687527137880153515840242663560805619648547483692328452435789186252366395016681270585717414527369723245538068217436665593896864828092306339212917153799407551350313581299007977311470023221672142633588873190841121350218479496198678146499223582319803822834227324375627748768080564784224108580994101082647210255225315001867251113124216558082216654315502367328333871371159871997478506986483148475552649327543091395525042402085928167587025078338012883056826718343635923938951386105817196292682845481826202951748781474346687186688622327466743166437463775232763480946892233008304379027057264300638913755676495482100204456266767274475675493251020839586662517077008135914452523480709232154531343329724112625979076445545565353876949102105165271299597153924191953741774192056828799167156375493217359219423310926479479455185482234841988291774361812567019028561014781577390453431482274260131173000058840816364671439900794097981434762977250926587118017607357126596126727091100967395271315391628209848449768050993476315196779605945136762472753265178488727611608449237545744394068157592361029069865757043826608429409876979093547675582060358360296172929649103939515858154673799358554973982631234161931388607985700923651582316902261817658490066163419043171952586191191844226558260911397532699564445261490868888881864509354417185408801043378975639107457617526810242949303572289370000917094841225598459753765938282760419281124667452682780759878553788551541256696033643266525251139021103140764451059146271706210095299914466911474313601301207824039483331221767951052816377610623095698997814462296575052012145845333300996177945997993075287075659056216522623615665681679724330862063217473891020391361933063207997720925648185808681457707623096357950477276849281848942921275513321096595183926122774030376316245803464105940469478198590614530722596348892285777353077618993005449701387524189385663778567282493805415454084991302818055670825994875582676635621638736515755396859795144639803709080729163859125003711670635413318216644969002195851596732805688211670220501166910047496221770662118392557724012732003623257580715382393899103134404914872873476286606427636866127656978126583603117066247954821855621459191278113259910144368715123306857924816982323797240055128708683500820746924914064266207334860484128065625809106332320814388780518310511328071358009057247825557732682442144105549321600728755366793357147868924072761366929492799200678380474768485268636780336051328719698902427114321895279121833723038858507904622753389246407003010363248608742239369539087773605279092750576509974016981068939880285315517895334823197438922316840819533073094200950275410012962162305108641359491335777300837172679273111353255935975443787232476245314060359339675810026337799801266657134013920751214172968269579035135008367998607107655441157790178084826925887051367830811375622633039832432973298460125117361320885833190785948350850134537056479333264895586625245360429692131786585215565171150392669397780989637625514494945234148160979288086096850260457728868625713848302563101208575316015146512656996447837994448497367555037544904863794041645641272754510587253403731342168651844627672548036373307781932759616354851030165922331433786304676796590851065519261564359527921124079944077508267959479826877301651243301425816336105574315787013070330983987151823136065969734478296392263487103237027219533619182845057760355294126057275339189589993407240726693631500857750528906665192642057192274255159416416218079995364404633872717744315160333238979238181156916216192527616365941455672288256631246070047662463642046832869368440009351030240825837810051615228298331338171776430717737229610569976552952360208124089551202546550013086658251693667563060832557530377182119328317350126614071188798945204222084652845176280503278861119685347157135636707412886792275172846258009873772043867347310314454580889830340972985342115556805481524649252603378790835830121244335657810979949676615315344736028471914126974136304545641449948253565645831249169813155864811327958065388600960482017256121124357812885341919319955729421465521720937256566690857476385138653417449335710370652038575435367442608258154820898530834804026114747356508275151804017834289399904978103567957881422259855341846533658813665223965772576842940837683683606533406090478831197662931252990184168944655411605177825082697847045757233623156470627934121604565374549127995725553934507381259160107284567840049144955262441531433299205571588133115282849406618843513606540422936028604475279906617147754328742981009195924299493601013809300655000991839494057293517381090717779859322741389568694858980749863014929341267811558330655325260440409965351299637221628962451379598095006251848439846864158078300988742301295215626524058512104835957460804971124771586558464379647405319258230492144122829933114194059976631120016415910846917931393115098748544183652039505277711904199416564293441243196100948999002839836942959524478668425080837136248283494958814232834115948347058893137858774602590550168894669693135793279306995214815831029582871374010047791252041516085838280307955172467547764504634435797480288624523758272332516365550630316388441939464983489193533995949266134450310655776341455694682415404305837853331954100816966131220101647696426161450998098483740309094646154084734905320644224511983287734781498568428561125882144896035386299960077034355222353464777016175865685390070245211799394610832845230464583916825416737912077012258080348135515736581015394772284450076472359052554939314025801698915871386172569108303357139807076139521184495917142347106502771888146204653867575108991468338257573686746535298364351048666861178343484833170064830588349939785989509803654657324790651896704156988746622973198852800686168239610031753023957971759771760140946482727215632209109581471273170237525036483220111651717092635558622407778568181157665234063301547061392946201445528451552232149171890151644519542303621884156869319843843659175172812758723415269192619285704674986143033412752000269018517894920227894764318292995490230468368353506388931970228992595817817082430440100287418923416456884629213690755848577867141039239875461311748168926494134219624726143694566955072216899884983968884748859818302280032240310979839798290121644603621860237000458557645365725255615279513058007174729681054387577906887590580717460703341367872131395158040734539521530862952856754995372778380764813045451386212863262162099523284625134361647822220264484759517198937916569126216614514311228974553450956335640564166464272355683371066261006471874921407514078227891001913722119185727865994106139992096506431088219423811357576216715684563067825393857346339989590363016390270173410958026232243938035950565685268696923221864429051052680075609605586204424739518449438695216715943680826894379859331110524640670637944318576630893943760798003567465130908422067440549607396687813160616451691005648782941407592138885974861444601696805776057089658066820497897478353576127639916233780850909231957082631205478511334309833622094469769259208161534003369412003316127888712158591378682896937992884192359446080439561323600606797612916771074699766968286939255339627678889176660597907113470273133129081555746144764363685336793242462758092599291349243599037806768297264276434161479453206994477557263305125256111425632798106228027961365961808054350404332310927090414347384577468339386329935708923945078674144736299123847166510057159263049824982412972007979309977936730611045788657995015469408765011093170598936316749990237787840898130246237130602995097990943216362275443728566631368395438755412046693702832990114557430813552091329306097234483252931252584915781687351802166961434757799070441309491055327809246335609509067359824881862516583842861258772954845538842411613580283006087343724154281777934425365704522863131634222352814947685455459837901111595670507750720411000019367709521191997425802122630712716856179406787716849777153878647422730836574934429650356836189422148130012923055929061484582070182565042541147120461319502851087016935343701131124973285076231928157077032182669912316900580369985830042934554578786761301630405274477262288859745067874200367836989157060926024991722599370303868527135986221779874588291152763377295312486596320477168499520234292817257701795795711635672747629439498117898843330504140782520158098228641873965517255891741542922173965023579148676373081717212442749966340677781441631273112720641580636259355317223974777298838579876449023343822019637634552769228688116047186325813538169678352415106940543110273917392298603247678677760969383647940112890719002100276842641299993496342611355698309233889350944104045726658982571112702511233694057064042038634549607888004491002849994332595627954271541132251690074298429022135505304973722120557148461981228400450727251576443025600688364744374830184322733069564054424946912266698771317147926728203224092608720638634984144845653179663071904811737089289539044463063652576984209447355661006508315829259678617569729478797145840443161202670986750807563732076960855974936198301289496281790438713364657565983321608559354721922768981352375241447425313635196984819433470193718221094070414200315394459889134505663388541968467034748457611235464006032007671328230434522557398100837959654122398607276147468947810386167792811827960257618316762445613005000720550070223493837688988677870788938667150181342515425206318805188826030760189202472720947883977576878796401655785492720160181481918328720575499088299512101503942695270069843068290752419169524977710054307902713487981335673996433912965949579598314138715777147904013661665648068607523733738304099861320416991563353648051403108914287678900004921276632671042241690207573849274981621103237044687019813235415563379348586229850644857164658850484275724372379055431356343154679967622612225685412660593586221666462909766327750996871023544233682570071422066122122200502588180101081371646070302400665405650861658325649728293534362622758790652714425900011926822342230237514213719384782719073003931578641895122898909015369501967364046511388901397073554022091284194326341910932244345183597713741032205401091831385795443134161715217002309017282214824789926762824954408987691366261293143798538210976178742503016711603603432016833176268784464835034660058877632540226571414774093022960147522639390715756750564356604276067538527188098165836420331688358635081952817669854917085238357302654238838136414611868693179271178085013649834847155374880566126124973492994260109450340961712447014956898818850881523430105675043390657249713381007572285366831569574415574330486534674157395516676464287283727156665045435294880101983330329775191256873088346244973239925276666721313327179800502221517498056875645854747955131188500836580310938792467667608057372238113573223857911585134743315250936542995748305883040927352950659003555953325133375708755764243520235105025083734559554691329665602278029131645954015822771490121948195391665081698807660429135645460254720301375482114603933582327405187332630646338048870384027219768779569237231400106296801676845272647772273356321603593459308848495653832309681997435163079256402174790839695948265541752665067622031352015025373401940678279714748406682411568254660356507308602449744069262331661079355982088996746554551903734360891382380712152329267263735394775707087833576336768082456868812096748622680785132094058036329279899342452834643884984829895700331914722122087444199365871084683493293023638940584545888907034653493404881019094375840407686413461585662967181593245892287665326255353240529875360352418952075668975835057625917179978461463041307947177056233691918345702009613771960176811431267672179299637497105428838606685950317384594188817991544786698964386539697510831962361255743083325923210417865792116395885542496218337236849529968601379849514494839651150439596458181589806981225471738947664336166872906538499073398593812928924123486690199310355814288356415874938197670563582579796037020845739478417607750330404078206230119266881523735455222041577078861319520566679452160552014074239225328317108300749432810963093937420968647441722148841985747691026048062282760916147908220340755745905897670168285495199537901198048721192759399825045243300926262608513651837676058766581441773976225850957113284350944967018322515203128250906587771581215028216569255995994628109491920407801260466848285238186799749953883546672650386986257958265349238747696213363872750313431721796002269182497121367972001215343390411574328779277430262527266713946445544337986906588295139257099909310287000352996302818173424810689615518672927376495759115317195960923222228369410546634678297886988369724277050293352665924703514161850313225914021426962923738180493825362814077079816962996624769187830692786487464015293304030787745321532280005045250345687181231861760115543549178429477778735051151334033938152052333088548230431453669629938772042145642732440728862135366780235042182286042926480646972799798884088367664239656704818839422187721963824804435714194309523590689212124889858343593241851199342780907472842182714621939214599365876459212739943381099036951246780216028805380993971321912538694487045575675161548475299957822472801607285906441840077199349603727039749922860046052601619303049564645007079284678485296050886223482337851154929195421686014225766414467408419132613152485708432341515162888779090117501269732788134240789065587399315768637679708159585573425524786095170386974894292209451098774677640431955058766559624218898258381244569598102769335314362068925174443366432303239413824047615293608787206963932275866438032466662282419743499473559380746598762417525849159334357260715775335336882804741833181917630968197873192720770737349312165939880252636316942709172456762997993513893494121544042401272055873481681067720433266118056962447260263881212486954645361011762170617844150871160314628133582973990342246496927561700247186789047849607170031919802100477388666297046291719513427438873931276220454512004822503760692013286825295926359145467743407000927320840069868607783293226608600981530195011666905121815747305701865705782561503835674750679753965643252037685716625786939463334642769161191757234093208792135062736453977675280916823419566539075730246232459860539153401733090143382716868143839438719768713646611605004711290207613345185228648967629024298499550288580091043693127434935834437699033020024667908602127999856621490297039259470803077800521054452021082223140142810013707043319933001624227407686373277179508738446168389059530310378697785035397808574145774676854323933375632359764355555831018146469156407017918745345345780443724648412134222514902021434040066064667741145716282629074220268964408549186010486341743730165285238394151576254555756594546308170106102795164219585878434032773842601780793738544933278644920699900016888174453551635791863000490188144962862009641145505029677346719855191858018512438335187371241099750877153596696804314458325586218754642513110351868114584319235597848415349509625256587270081982094431933356399187073728435928160859533513413802399064798531380916828612625630720819096252576023540905122219275798094412779417630359930707988158421300692195914694356838503294469827210782958669031694852502397318131638493282611393212225770437936103267512074031082310617611920636929645181899743431700554667345722050547569557741421184846922698814244456152531214187695843099534366687556218195456599636673560227644524184662706960937185411374196286447525793339994508646299886622647416644974786540826456692982011515803225226028399864953938808445879546843970561159483091453894145603911412858233019741022708350958557908439228541679195742799367004169815188477242512751857422847300302084594767230654079152166075143953730541772251347223993760012032096369493102636913032161292918178824781466364744505862398152183755718291695025259882830027186612612132599613009101507626610836800688889053369505572114271511626378908927941621176416951255171521812694227032960503468528994321840408670297748942864582549975975072387927116945352336020045981621418002556519365146984672227771907939643802505345792896486128327455953513681048725764956462418592635280887102144862325762732138231846895587157986126436542141530847979201884701908667186376580937935183531242630848982396198779542410230246306014600821713097804914097870930125238443209790375439494518137350129522446912999623932132322015009058940492214045852543943022022084088803765787711688508777117838404006058219780106115765978298832256897280385938692592417804960369375943704266554343971354589385042832391614654751789544725575550007479293166998584362328273111678209554495453337920012737664794055206672681066629609779259574005075453447197670324179007027355439275581571055910069008802989549830854163514179549289656207963818391648676597817721611413595597003632957306467855974052070074694668133178298782457677508002629626709581196124054309968906899924844854869458599162514709631248377459854236614665683594053799647314460725060459543283947804468305631416086794365090814736774260028700773753505413038011591795279882167218333510854786458315883772742755673879386149444440906871090034536657864806642878479082158976257771766196665147078959803201676674872870333262207537937460498658759055437660465325029552714317901576756212963558034287709905182600851828778073127699389835949809446766886943855880371420997573350695494602969590616592100172112699250445481487722843516802231001990632087674434210700473558527206902098395221287731056140193355583176914666486923871942705810829301180747632993671818890591616017498473916843584206676408149167461278085294717511911091042025898346286568163010969665205835863450362349701017690194547827102813767549755390528175005337264437852122088191436330106456410910322865603507643968962723846353767314657744711143313482740681017755165881579746559784580294313777054646725282982985089963772909150006796080295611263802836368200311282028106175431026783255506028764007791867476607562349512865237354198101372762053952266271960711899948940462158724870657589111206218023251451232275866827979343149417344332837696504938959991666644246988924457102184560616823835448030180788153281980257673084015460174947443082657211174273059384665199839447557033732936088795118639929653700772133628300459126025468627188217078086017863425878215376367485395286168959475160961804950484355930232850931406562729119166809333761680647350747185722200309754266277490066434616607581062398378752020998778419029920348853860322263056164753816883712182780519687930570503591230424425219654047203007224987575551473822041015010778281584344366430469642235292260059772254214749288350398481939981063927245078567457499083486678306618968235265800244673657672865058498303992786815004729234528687598329651756219710598528358229860805973043293678426224640449233612107541508944523564840570411272019328194015711527995904599020911380463757165925690882128731038709360321962089448015911749019130810948899690516958025266239120595819646953397850887847710725616325516153249815334647818818490666025029076685962673606253649056760277036645281901745184272879342900424555649391793044521752644163214312399504582077417654652173378389220209400135100667608114019916889693133614719761079585145400466077558667760243847377442537665121558251102239446517874910853056446344187999348001341157960176318418684346038535656737330438192475381945140095388029134965454366590626859889579755989511989129655367541366828095075111139524440791293110660703167466934378804441434849199311074625425473048714041156725511453225181950324396643134426480481995082789744619283209238511595832102359349620362531181273919929758932607257982827870386451527457035866043535638724882467687840460817296114342962372695177099828617809587972218684407028220723773719720745517364033655706512108804519790390996882944980353598850169702020429813486329701150761105907897689281373393436353338446980116361002181795999161697217570243043927738605607683235177058369599989809801866861561680691985520583836473490739494956081286090778113036884447663955336351677088666133953666876677997652057153128926385271319228384264080322512196905731414660101736501198586910128437315308439049462798160155885505931805315663196598924235725560290207682048049401541848472978607089472309452453919714382749696408236426875512358183132330496519101283756769090464974098333817695135302525835811000787500701896875656357349942466133331699209527780762242193274265190289699316010325234859016310453361849441224071806090368461893739189727976482508198115725316766973453087182399316934375787388243614018261642004621157053791413320637756093189051050255020050917046138126662447707947316857419672228670367110949152261608685013953147725162598717917546462342384292058635167082432614039821970411006451236671722587896960185060517577928483393843247021765784991354375153080453262929062645818195116863082738713184715460057785430911036411962264501094402957664822888790020865493138664876232313357957631049302089584504960549440684910612676626315433380775671617258904849857584618622852312185445856975437441294771842405526441004074298791751809869538828506850870151112764622616013436691181772842241005843872246186569121355473212045075539317075708608635450964101524986407705222513075840194203642105931740684164945834364981799492276781839797339217498531079994793206094079697062270684105403174488969768225734978285324469545210561457704518829840261591174164897983694444367265155731974071511709141965120931462073912487896141811949354576431621717484150419298250254607955659783137333073295009426185909514468007727160803857388815526215227821064550474742599065060203699243492133719797249563194484944856755663370153554006898693078779902057908724714419037681538159486501941296962070700703995828691949051037872712111776341535796720023910263527491794594256339434066496785596975509084734775341404129448500123889930017771922518035713567905480903335692867755654073871465703922998464172639719510895569792822083036809027354613577124165279824959052941042189890636079108157554840955992161330291790005220974034599032563194240234913576161656334783733996981267427161593425789031628176919222769677900022746173309918434940288442571576835414831486482344260201103919177289230819778770524546781513933659258852959062702227094695387812339879760108440971070298799388076872947746893943144008665928016193589647945203920779132914709371826914868885184601086065052890045020399788364016725697828597575774175177602727355631997485087258653523274875104541498372646880065617899324081764819816347728574997225206965758698029712613678432085741266526352930346392284495003108841511832890599236409280542413387171714700226968636168488299473121893286441013587506940923175418742590560066196351977735662750935055266171029551661230667086365196864255819944081917123249208703211214927800763554532110843654662135003841150305942515319593616135113965044658872624450967971591318911520407196617092225107495706460646293736788069721946438990478486231164036474496380064110719665987456855380625000365332871546497901605523552925121300402786904142201200766569513202915593711461393135221831293736887915696641817111725422810853690358978726692053278319067526045684199753392659819721786381228779516153371294784707468808485900823150474609883022445502496496622438848841756552826579008537045616405532671283003497453336662873144209552843229370727539050338349485771904707072344139444899978570555400092892703435092277159676804622722795642790587612782525651307123677273687688991209621641694594977315762932421997736506663649894926111995928975026858617825730012695646678289980643925248214572732110746199550014126446669226907280291115956765816155752388242067177518079760845586174628929111340498095420912061485732468721497589626535765184724554646362745002913547677153568421495706048883494869077815624840675046075301722911663561646111413119026733097174109785474926264185221094789968585747879509143283391611328270369659107120198122019425807449064387474632196937389863755596223984042626251305802662736167003405440464063693854270785415774730778362690916889518726770587937722391991050689308158630418105227416757566087776547836711209377660781525917904067623179289950441848563269324084178332431736774521153450413625206483868983632501937503054252621460063910451552698706034362704225478056375523774554505479508116849956808644597884946335017114984932351997757278670707003276806188041057748768658462548915426518398675558001182521161882067581324761875998274609166831763732487577671784511297150272873137269878003366969963661606819056138599224018956230683115288819060787851878182719199312593672355255982309794032336944133771767973384192145083389241884590363053181840989504057842908932452620783141042050093947487301895498868447091351535492175027168012602242180109955605039053287814747753766418156923079460903558233626472308899692499514654083065238114145022278877475074516836549111272013282798027195858258928757743699638222429254874861979504404511381956623480496335408781048829512504340631903908906898169596969767729761920455825292689837903697050754364337059916046722169430027860602784892930603138027780645629855868900378955447942757823595500475869678243814394576308326079727091492961965831358156822434521235756569634357683475451869543846378753971635882242356790905757317296113999156332659607503459232610545369757610152363323889241437940581347453697929800880592235253582155344574419695578976448266489256182354503603200037927745573610268729243881729376105235238866440367867309738291135120170892502394447242851916042562023588144862744762415150253336532523865277333259320579132918767378666497177288782792688348594183774811526824004568327577675314991813505341252274189369634582482982486538396993262804591986148619247076798906996205854782834510382943897406325984244954329720872215025121294990436611072739103636282523153820365929862100327598484420507406512712608920646658470822287426660143673816667223371295153362102807918580410044376070930633806146360360682735849754622077821507501972583512337251129696041009974254887693318158682084185775785030827153212954459722728064600000471843938151181659756860183858080634525390954126490449618069657178335582143915330023943346382812941734102084344986158922102921836004146956773259617836028666179042018518780372309115628650072677582134457868127633757649361674212763342093010538091455273986388733926632785771852027967828652800460507153811695134256156509607911591900744704669568804245697672952933938879256649014025391337329378323257450273751881764026917683706779046848309547318145728240002742591625304715855161202135688993940070252991141094473057765536554103164412811650990275993678894609811951469027035801261369777465489184669202249075054535818496687617518344299710097148350987531006858889288807701825219043658088635017106544555472728329414526795641030359500860065998763572244149033888357657055334435193015181790519020718983301779416223491589859030385513730968276457989612582696504662013945772413620514726194159261765350194712024017981689220889036741114989532065726613465793915713599769806122019276850079961534601566190118413488533179212327087935875811377352186448030685785217130108951855329428345433623068759484262333643817227826683360883559032680214356831691631595730200650236869590577584088357214698282328656908056760590027935145636424085419485746402997051480228838666300145847009000519364933617559889941424733165728507985409130849210752369226422964030678565401215127179521113889275745040105057980716338307672859917568162148476133104889539723014965402398853729519893449653204025971798831777721025333775665644121606343719049888925446078001687423609643642597753651309415977390959696204346588708590981704364833536538076923060175788521209403802462469913875574403342228664117250742596978390551416629245116177083455157053487731217372839743000756770734817325984366796157323045032920658213911438227350774367968716746121356429713598503189362739480708897664046214393375354545040030402431079480457989673970612406595584998345669018426115418057582130306971389717799927822480122037585433214697401972160903804988542731064436060146796723931266625530617337499223981877839701233041026447503139631753386104858341903234876139381757305741478953523445930509383572773527763797742416125961435941981766716564309790250382759803399828865756517370003821326633867907055784336601156271017448299365401745131490029583998656451367650698016936938500493797086126059692142461820023999904994823515321454278407904161218479773386616962185936176145184608440591954727215421502691454631654044120039449478111273104270695440726684833237773732450452170580512999631997292281475959947157182213095335323048003656639388547080211411145420754421072832040809063378004481687459228678702665119988507434903904364213884896731096222155575477597306948997357647613765484214854533185540641963218713469853637727747623729594300158665731216962877083989387561792750341529559515910322828749844306187661621094895794573091561983185522402773732034187735046174138541754404466797142127640602272151152882436749176380956252782055217274964059838360533612577002973290400731593226318269382703694872038159642349698792229886276604185620623312250551994437622178860046385148615896218714126238149370576155350353779505183064574796931621151738106647836053869490547497880037468366148570252456811458053380171203845386463383848088518290049476593172252293830418814135710339772225852884509003611006075237534662191135802826947095043846710871292190762945342373393515608091473365985792080176284955786306818170859060812944656543020779739077772657377976534158464754088899262632262637547212753295765157747300305790074106621849139161827977157774603145358848621928055806908774265245840826792237256999100872158373055318212271660695091536107901701576615471542756033601073091663478775769055493080991224099874721541280963928853588872475887999352866124742643317455841143228405528333041413613235488498089300064550256157084687347496253490496179171163867769937526251898051375563289357524581644567305596422636296662220754884606754485394616603340380712450381623443477024127316671969349481107883003863757841109144403234932336357422878448371565196988204838919346910129859561659390362554474174007568272742191882303499333068804162328980447317039585320697344323677133306459993748436358814837358511834944514037629238457853557402891686944210640165792444657393527279513933833280817110471707839427957893058948177908287560934792256637113833643746524499543479241128752244839388245297920855358923728985234885397615496186723031979663921724361106079726642367399040333009659563266957423172300619115033866470617533130046533957362159402481981340337402652244671375999379966044456730278818124569992938242880684443642873747341794620716552330311993744742396505114911044651769362171038479510481891189562750273640083160207049921433528026804582330579239343112545229646662817587916256549890372915975973159966231630130557871055956450534332962117048685684742918789808405204187929343497409669691525521427157995590052982824326049892221129709928790327951278642541492028621438251792400643274600359611731202392701026910037833512410773403566013192215801934520088644728155020715150656259710016405887318714725727969627654355114696258791508761203143334329377580523965712522292780900702220062551478119903944036176800117069086692616469419648019277190342171156451976468508965734508942507188830800523453064809411804162462028092588376015416637011766532927176291185030459126014042082527043959369817036375843985471980198292632324315775352469038359427728732777354785048548976765880693578550758315244928869214220211582023760827828072407305997378673823440015396976102599361539894129809354110245482197172128019297396544183949833392136516621661868752076872979818324623818285567233654711940448272966295923095683376334673256864157816137013264481392075408143229000555798347839052308255033604076671323978764303091471646338149486232337298311027390048425130481642110487912851829114384592844001319369342532909698327148163440023779723283223576554801419365858933050499315631416165183555841527071149297662734293588253826019571436287631042348419648314742660149041791916829473549121512772231644395446737609551610907265692253055940300035403428196555419200350018521141478725154648624825189911053032328358792939824091079173623233404664817150837608638690165462442010729936658189410573950419324288844297492307137777737660292138198617789768003056869066189443758201564749487317790668152320184510336704885739811063732253796899290917730072666404221924350530589745504230782974229228094961662542603551341981613958886207445218220136934782147910091703561895046459548962219141757546901667133705453135733146170879879570358119445855577444648584983101894252622165385955088659106899422296865466830316842429417617057946813224986259656567361832417668419145681649872881784282390349036261123938768890674738788870670064998714273604275090062010357100118501102880383037651854385694075932965670811416834407896912813374902098856302209180219371792267471927153138761099650269269242733402265997966073089907384105707008467366424235896423877066185957478583525965784372897603099628524107784612775736417649518575505489100414831406909249505323748484808983116016803927041887466533326139595555477631147937645733823879543606605590518497954775001115629314937102323462468211792802269196448560462567035534375829807455244765050793722818225802390720897794339068256036985282259238387259245909672845397781684453150551446286701467662515315103327497987777054530854144516458606025554922728244404830839643528233691048561265974818499776405645737670764261799808819182116304785066930079062222730848780542262229855464747485745581044631410503992435497527386116996967711421689780980474952074616716162924113898013766401023009002845122200820110262533754752737841865208182949257066427396350182832036563658002340474927636870057545056715227553724417658903202346761887381145638170828055028959246485676495563001204852982394516763063954175804819343354358994555559441953363621929858660367048061666679033123918433259141178543786626017870072003869075327580489962407307893880589506415232542625932348371329379410155641180894910298481766439253726876210749748684874270267115898045358815581033420997490644594333606456973073189741080526267341211380509403433095092692509853737730532523625662865507465839318217589879580855481785584420262952145299027341153705218136829588996209885795487139644758601147193436413951944806444735228928956484617000626893955907601379806688254492050135522824843503594102530159338388499728204465667836868689425695973875353819516629115993926940138630621703846934399887903506937266514307365307071367465542639006264652492309485646208107039292571621899872988073184047960700513482516083447760512655088270711622968397013401185004890761813016598125576790947209988479085342753047547959297991045727640350533078192349703733359028990173599687426427688491925799714440350219886090868475554613606713352649165039536640130522684602260433886540239238286689642855142879859004214887586924190812092818639615867485020206146772944912163159159287339039187855457802791834834518668404085471494527918023427594175552458905451519286729983580337171802813621222200619311694509945944786423909661156076725612851389436864307314142990982729440795051871257317019542676850417863472849981824232045808346412580464933047291922448514395602020524136040759877585418606385935317951739433668035708429721196967224385670507758488371583170545127059293961896552909401391763510830425713299743276140546931453507908422466151470596530720690136348505859441778732329528678108919140650256168275945127891448892740156237720427597299099929387218793319449134847626911634561544965452827223905766227420015957880418717366746750347259001159078583130324852059341839428659442794282169956550164528488111533727317938465654008327432298505565820390175246510242796639368166640247665394694110649363894748203611797553022011147866525560317630483482038358006095390618294585574867941020282535795354379908406022980836954721040801210439505227757294755720576767492601181154735955698312671895751764936771464923114330517363580944123592897159483216997209546924881946997095666616244598534538449395812253257741003668012028842969630775638391198984565027038112634628031895468980809793061669891590017846823207829067565595913665693931733318899329353900771345317737201965626744014493188204302305718235414104600316812372997051831228440874655374598088210424592774913660713908681370389556415540685144246880060191482931409226704596142281003897517011711375617178668397073467542777827287847302478113495811460036884587498570489955993202182706997509332726965074767379854366757086533270458258208800012493425328787596800939337678629406992775415566945439912030999260163386279127500671580447604633734915572668310317352411199066538111380394637167336882102578111113040471704085414307343085326045901206628009178128537106674638563050647988824961936985778348001358034940709346261329338073066782153932324758070094359664709585182978363973528685975690708150465174668715491122502179040926530025241542493427266342570050627986035370037499359218513418214516980337001666783215352698539814986116206155919127655277069328232237462418098577913227451432734113601449117035729745989635533486576410217494145389531780226478201979291215391649867220997663704985864389901446659352017146621901784381063149733494048882272452419572584177894508467458954878746993054374103922620792069983846718867472460340403631882362822864201873793692060082359631527159277525228585453055605987163396424911037585656688399886705778937420512186586916913445774136943899873974814346564251155811694650745324398136742736857931128673275934812674477932349227308306532766645534911668595198174050436251159419907883499919629749751031469370762372065210492055523187617099840150829594523600550144963961092183148374589900972542867482182450642824918288191102765911786220700556428292345495061435450481081095387602583273701643665935216909091654219779563000959470507187829283075327308624552220266120343080307282848567894373814997758471441563468202799462127396189350523485710491792613324722379728488512461596633607605250912308432560803008993219538178841816196986867620727390482388347027110236189059148485831419809848045675195729757613831791386454035210591749040822901007732841018202794864414903412273280472195103699045549017410596272166560713731905759699141723407487391412236818170986785742889459561775281058575201852642762420279313785677665620223394058787235857949577405743680042862352127155774659567853731976614429764235875358949551759654139379850871925522729859453055247515515151263486926669033374693959792866278350594427670838834086042936384946129963037211363949304366852573884647257039862910768665487747959904307726204260324837874537984992179413695918545069019784157520183610720207427311792876687859048228390025780653953077521158299773172333272785471536696283577264718595248959902823183048468972285150319260214911835601043851691710651818535710179265523976985357281285326085009804050589667122831965460376699687474429658794813606871361805990237239746540389865670580708201796021910532998744455086137291122676300278442789379835803766430901745807504330377929989034046972402634601036053009940504843974620319493457954235593692615254532736171712505407557811944408610908566100790697946218172531459602438085757882407337713413097002613246830322006005418475251963335433348976871515458042387067672800866664542805079836666102336687197857153241105226842055466605378578211383729064924821451917960802125443484839285816649237517382191387463555597067032998556166474069520550380915108645462129687810704230567480064815377703191909758173283297082381104166308513890309131142586048869629940444918284608157945408744252476223818931231204161380772551607788989814392361888996896514149896810045180400591104264703882703888202134175645837585800836858664303327830796306082209372610883883807750353396270828923213358954083814240318207101734092379435082306865928154498519313648644425658411938737979011858260337732922739880443377935365084507320384016838986979101488518847167411319879187931589494040536224359887201551397201745842554426044573109382092716837179437112894792806715249137572490989395593242336948832206517120229346998907936553039471356770440211772984073364590674479770488309239843777658984536658429344291057386412324951847106688028006359993314631463229556439272387113760125740109882667106962758025476639833188031943363417236007550199874055154820701589586394274413428487170132341938267419690192695792423118872925710069712190480336756544644360769773597290762816962561852169017465934371675436775575889723845361665460566508401757388017005658654409403434845718808198971931374962989281189112974581068354626835867529245568333965756471014365552243712420374474708765332210279372887929538321574049922103021786595525841976318275365595889606845689586103373699564322322220055099163479410230773093277570331687326245107442754143235140503424125279359823453438619840554255382813632059220250572452773098290999722918547067306479673145063469363975017533581071836507098648064372210218416120147726202768379595684764117356761762784734687694553712212914396873909442808194271634718685303135077422415926665034595140965004048650658142783614279963367762173936680779888027292851670079532530923845976711595324887981643181167053863157657783530744174583080119030021839739064396772204029563406254727777344744136098302926447275132290603995987453418105504254902968815169745150823960515615353200733691077959450199091237642268719383983613542616607498670750375104138800611024308944882682144183587721800839296851283614322988460825368079804468723416565948092520811112880446529284862087406236511743424039014824249304580575444847218746537409587600254999344467216304349375257187184737332733060492451143980221482896433360623962042534028463406916775396088654316886827460273998809315914711820992795352247800758168823203328823965615899691411535327168374024905803897423213776702320806624695028933102089724773340794043558723291885782244504992365755198270103380562456553516175392475587204887805335924585603320881595298268585467195984342637979311529555971385226687971736883073787229841451461280003140891613020158385023309830457617118454174119400207164181766359383574388777615336570561040466761881717750781783298531561687412606866420754023765380306390170116491626684622769192135846912392589899371261317369263714013627020201110100173121429334268734285957519896107181766354663072172338385419985068942855375979401744236182005807967233305035225996089936896444354856327482129949299541090382833202301276411206037918234491162264688564298702454578030437643356379132589690600449602038843854713712797845018352093035276506525571069389402481449501097302336779339370802457194013842099512167275294526758568217560316889698342563071148492415334185274050029247605062708841744348734568665844390924613857605526168441489113104712129618426431810030181028145760295526806329758844708710083818639012587959748102017105621379684643173087820701870903067467668180723537769407609777120049901475245936150092241643535128481857323746129608023771422963627924739620659833213806113528220065476923491991582558515898465999615763445408981723251001806576026696618354516717060451197315064160435534457436725081183661361332932058370127368715926760531847034912295409980173906773816974141729104605300369570719946347601266821155868230468163069179220937045075023513710213552887018448839491070951631835907255605550017510262854773196300199437530226160790910651730447238527290734436699976554128145277999842497074799796035788970666783331352308964648878808544380173811043831618494905451381703992883984721192110337909851785765667580181840432350304963972131496785638551234827529010100116921975687438455109302831544089520970296971131533826761302725386777079389414225809792568222605082963311366768164088793051104165178700671826160847994092329152664543775241129261113522792339923119111184445022761961413445511500998916924226109174042124130657448949605513014307304928251466863026846724004872906480846474068945205352878601253006117918414156308822325585587760571221253963127014760443054479177749750308722508400801180012018239860789924643442927306636457238168708380895428807508348929352646591918841712215257434292634679906955056523056950293566137914379203801075601185681513558466599742289069844993016972135482521846519167022562581771382567716036218082324695228808480881065408498160235942433153768924729014972476325786232431027975122842031496733428286040477579385497144093138495937581164240958738630119132366655597199103685095690970139535130051313832425798314053784294888610635806404329097684610089017559656926704188466257503647206828290337021254553444942410136269693420516015739725905032763148560214903375079176617679067433067955237908954937777979336732460210496178083147611519641161968529317869828531058309601506690154849620402238339861912809829534471392074627878830800014544931185283580713199342821908241925511366646717072731178647260157359176275063989489849908862491384242341836956012359502093702409339581198968872938299550172396273850594597891025045280583858978436139623373035910050937064160756671719188393832639120280439744655670971712482289997259827506923287000137693942285205812368715497779240038894178790630631481376288399102281889098997166412847813170453426874814129691131626708879723030087481166614033351286898574027801674636081203281508280304394185563005110250600986835315766150766362613481456728607536882227914237578841186275259065741458470010734655294564169449198397976206307587058366152449858922072206345835765756889853335272221727377924399070000461236870905180764119378438884103044821625031714549447737930785872253767327493370020345781120532738202831354608684509680886248154346585089625924116646371345667696823821615693391080505016861805191053779802224132409359249680414266942036678312121772677928018635926833278513309646683037747577562850920804556751729331077337339503370088402255882661365752592927645986277637952973494653730740217688474039179124183269403534565339880520291477502839275291401334867963543521724905681032898847819480088853161897401371560558821258081719138348836496514730963868111754958106991842087796669852108961899499843367135904256690178821745718132087498002559372031922066650134561038479254559820295247542246153734779400190910058654022063596671004821805930324628548361004280512773817710704720375316752202800052815606862478764144985682043593198525105248465325587750671211388822766402021955760936029404180720928586345046406143129604066121298123303604592069996477292020281651058554620729184207188526588362540374909108901443084968720653608608448925037347263159193656167502999731232509807453504197342843044563392430201402011383487347114096766057120955296426195998002026041407952290923911237662737202754114626451165176758992627751234409647815003465173149912472635331084254661041025655578112346545671671953917798795933243026826442321144450356091947122849911690774100647619159502296514603201578172825141206504568042745772860445071583312417575711397256330581034066501610695829242670905698823351305941436759189613653291452039485540706783763036891623709370201689187758487499010777860369874275199747947214588020729621041767900001952854962030174051099452972230264157826717229586336167707881009433268803746240429414820624378492776099126701956715115063745309998481777383154871948141682455269481201731474890942868027152232621374389788234977447921830857750132177617418386558300663644243379167312985635181879772144237827536006870001029616892889301494307038857566259830700687556526652844156493570791688416992908078322019614509736467540874324328446023068944463487041156946118954096340151882252832357897743705919762953305730376065192608149331253982016226475673324880782321473018985040447908708662918193548805886538004812207824168488895827568053552718460390508803150831614332077943690165952515457696693501110303554855003685251279865778750225708502370729166274956284744507842565483009767271696069641110574391486455589316287041499491931942091471717224087297001211872210145212904600765262207999513287764359887670265725190357123794334582802218490722885562658910924966421085229527980115614747914936350653275228796781397342759399973182079292936233657185766227974261576900119150288225018876292983439195491018816524346810175672409180916797908220796115027713325109842047593005301502564617744917712193545747610682482846866472850820504496525071061614329153028244692570964759428178508896862293036465765758309801816696885745727774615896700453949834957885853927423429346609141585726754611176883124029532543293113349465857494536595142652492910601655893592688513257858930323062325443383711010585489244945527562486281093730313957338355762646569720508937151385823588369971270732698573021371779379600730841805282981262265083721047352174087222840233050320191415290209944951317053695054286155311516288129999675377979759158250186833400749620738361602099864810780147181002773053485726396689467637445982179173195688859208978812133003448083140672064411498325967944706234896924045685552955869711624701154702634798441921479983526902950889906349441199329806080400406538596236485338830597888278275999141194550957969520967611226991394067290942172593561539042942361650914924255813696031025677858977521112954642425647835709452818712047355508986924729853907720881304043105372785968210448161696081776790590775107808889877268270785428022672144699227627909941803721574714894388002391556340804414377571010833882095366016243066463939052330432025784998088619088766851519984494456457821302662131353379372064507577033546588459408081862093180814223184040565910767126885360640323978906374081083193827340913117822633261268116660503974723750526776014594885730013042379732400684513816914934066380623119268427403547506673367495444880422646567388828194785802153841324869778078875541245295870480329673136724248591195775647828808852116871444312939237592494712963539738503683299124648030648079120771232061828988659116862584645625156734265259432812281271229833699969696276463796002954522158362891846107540700080273527075356888733529845555203085071835237597932232682448005388524011853744586097778543264168705500024211522411225143611967458636596559869437877185279954769286431904451726334556782599860621722766124994086719965343872773126049348803740298668102697396718402851794236893679065474342907490487420904161195231677693860680915504577453981581476800976446355119924876130089079323025338904856465668053983256245894299988838506725530409758369723927976905473230504792783445958680533441018942902698770772393084559175828023319610748027737141039175247694794195706177632123747027053403402655928031806835919371839556230119698660534508435258286381741442957680437582534755310224974351294448658302506252489221243744617497415362901491271648884227090187309161515822888275314181701407757070861734069292163927552699654670504444982128691706539798313490418482591904099869929849339316966900302151498978640565461439808584555781338027542360272069473588727082898158258920439598384798058189192531838773276550610388621229008615690120180179886647604135142470588098850149032749135814922950731511827811843840929678128713423128342431731269662999335170734874049682789895338584823760579808788501817922259689725334010696239162004575369105334891958477340521229869454936278523071211776600623156260104602473762852810880776500569858508698814005353706749813043909225186946685917207738872886721913267220003260479262714788929219161630889991682319842191426067300897920352498213389591321489495789710408212881732544194853266437430266501628915398761432315288420509304980580277408643980432698545560995697011625867478819443431914081078848353372646586087233669501788097946231075147443075887168122061265812255261677982861441105642112432927295719942193419960659590850845961174425131532863406839111161134323188638868975940433746165822344540714454553640485067032701216931821566728257651540826683426733202893197087142377293781361442241296446364740862068580679563725477524077101541189147343518288665959463300344420315039159089018772257262228412176061126021058661098076871289678342264566207010207703439542639783494771458655231299132816322735129768568926265256132136756607653932195704199342701484164096579276246169409739706750811429923623782216600568316636243310242049468246205978240470067119613936914595335150550315086544585814992878762527357751146531024158133093856303249405142424703544029941773352279743809348136881164354113056770683267758547352926142011122453832575291174281838106529015065765074411595609863246795890766650037849619126297479846220324343954796306806679781379450070713884818612536275069579008510217216110303337356934220159708083895140265045574379222550352792902691824557239076596707907371561412404232261813287542141981164075981625195886136971500605497215862828629679463312012149772458557494253859339377726197583592922118722860590247603796345790198712473662811278429907638587676623580825000614815967332462622142005534795429206988081795010015570859700826850773850781804974562762549333595961114619874682346217797786253245375377700255065700957334229245915524276099613903539008768703175349088070582827385147663560048010969887840350116619862486391816037339008327042213195867102381047112402994872539414438354279803487366611041278114525808452563421701195159105329193366881722673419216712892749726453342429196709829076693962367612260492008964396911938541830777305472058188828729285112819062231773155857319578261092082176784696811034751569931644543396004300551508720093292619121207053226395859807235718153671266856407620259295335557329417464922195380402504855672286088346046918647136658003863775730937133265764601007403792222937200800838796071597005924810088338456889258233011212200287491751958573195527408310863964157680529096663224428279311643468685009376709406227561720300661205178341968334534116639928927576389091712935381825252762777020750730206455955856128793931353754686403196860749841743349267853588742044263400234138190892376890602303812981829914799843321614060708979117638722228580204942930994548981477826392649392199432720654741200590178149828372281598074747801343796530505482741774193302304213465036681895174914043195767616880960453196749756407620233008459033255892419732024193860917484587461034455701292087813181942238535122982355781884736893203742111390201276175229056914083174921301269037181840088198059373402955491736605780573034699637978882852878227409577265576339260313104343509083178200812407448151190667325081732137262186083765622690579464649390144936491192686117428628700651631414457680676463995508951341946310020934030099435308818869571657737169569726182387868140620198857908723570479237183571108516410251935360644261848334658161193106948118237669057523739526855302179953469394329277200863690123146791611917876816258352879023284367240186794947305064645459766778758459005741209430254479479028074710006939270802830794673031987355662684458830896402487216533876410673391658258430186170339183428112458120415430482381895196868693560896512219126581128322245612871944853945633928271502359373007120715565072462390925433336236022831880754108408172323238045482399717251383346641085466594961800269742731604957459490342932445313720114546978076817127727006839194934778406228484056694608466947015140307748604596771691692438565417234777691070237260669979032423079582715116523915329397833096186090373824188954930169237407653354404585550294876455545846990605425227405525023128555106970207261471788707965677909374150443960526067035922497942794816892610380410499894671579765345855319876007041516798077422314208712536511049956301594218591415051025354880717763019303966961087448020414245952587240194607426180836821624042795153777793793604446293188241416462233379150361530521692278419217758008992964005770670382149979031469489719109183009093685430067050036045965422728867548361051483277479389348808855813514996299980980546617317270761477132674022691566630323730980851157522136301115949070546665117150911831175567822834161053507853394720648930757799995790788804475734713993243189511112100333081529264170238734871603423277627215684899054622807508048997810885957615420554675941709065855206986882103628009103485304793216857836274948737878737036900709768978061657515544363270300783497368876068274358055740207801250503190806725417979345676988349436155449363402922180484387714566666908701126315394314814743284967233172827678671989235083381900971469227994277934889946449832032741390817969624589326410934288639730163808913537173786589822704271544144084240813042123810968661139316988599858212407142668105961367134345743052045126333117466064384942775092455996324932923377858941704082149033447571833632978448517750733505196875672855895807128403290155464123867741258553224700986275687425014489788630342597939297862616882178566407828270586618050941042469503241574229635347775972108319530438763159548864238741760072407025069821175906191783270512115404220296789353952827629024637557104120923562860904252955023404838223588993405070069952679375230952208250779941521098673940477743490405558680910906565174999446952400589822813980729828631165588305981018959484025017904599720937128882060596372678659961518751482439276885065028554736880668928761717119579407623890403380396185593511532908873627527300738776317957598232224019964324611864291019623943709559405792655161239878845064669220156315941785436436349001485891367976231184502012248179469778837582563544220573776423417103908085685680545807442668948003579911512554313924856600627066542885183518274348098497496436460836472457040380257947261232224893929641784338119414014067550561269631776979042699746602373325777311335495542204359789631589627690074275537363746596649680145303543243138889000133200064111643438462796388337648070654565255778016312836787319908553010453025632744379432253691777310134706049573242448978502546922707847757814005931202625020795834659708782503923765495801363662542205290649952372682023858141739919693666415033352819740888684295938435401760632634268408057404898978170365693431146989384460242522987958015199541843526692141256257934406368798407074489024467550458198754474635513361393021643771746231153169802649191317260266885457650235605135061160341045739055871491641495085924642793095698950773645303358580994781823477228117357854560134677336483551606980612855084159415361264067328537629216424444700091155394997298376170171313304933263204136326164778050487818275698905371624568350807994130307018763235980556229986717318211915716310297729520900023975842963626783455669011090985454561234684400610968855109749182074539072873829719235350466237309036025074832243277398335179792694027936401777919302522292501657648419428986673495501730487853787202588092395961231550222875216184201005124933458436815006431461624287922958069394727456901122989088141234064114435941243895206127681490119470162595416062528812789758423336060049577351327577581159297400966655209537988109632351891527382204595563336532856535085832199367297120346696888666661424102991167653219143757477051219304041646892600335917997646897749091136395252500998931364840190624193824721660859335422428980960876584848507526029178556838947441752158176951269097923816973238803943974881470740691800356328174533333411336315652091791163363138813748897740788843255577868486473563492029133480626262516254646569326786531289705317486758331414379764759761980508969259903897675205389792663974528454034469515698456058539972428588563997978512996634498093990813864332679021197801241026472000741324764108227240442725183225482248347003850862372935052161665059274184883973527238678091168272643917550163325402212568860220088596032720026016322760151073107253798579887502870617179784068667615961352751649418523109130602193042793496557375698187886593737157330635772282316005532037181413336967196601534367106831096752159579824411290770467465681264007153849369949326458530663959145181152914759608190672700229268637340123441491145246708214409407970799865180902826137362410191375253694159983437218244355793390841510232282496309642942229589702113989599643267588921180424252442528654217968843920563088153490439122232675473502350413881184738414402044148892254595106787636691252840464411826451833335042582185697858672450455899716160364571459088432080166050521899470473207499544258455241233884894958413497909311605554702445790699560889581801446571180080077889118133392088011733874323614155333186189853958927236883370405827455299202719912545572032089837979800150143010293813844577206087744120687111464351730828219859451334105489257543809155958285467033562333091349990757508673740489169626365794585016437994029188963956014848058011339255784957290722148427647858371361129989177526000361393911463253969893442794188581345878797938724912577548168575401714340927801101970748406494707626245107487790039936075418415991922719306738455015487617925487268412229240134647920445076558144088439123623042641362019359679610338460094710418575349239125789388922733240247654110147526810204496439033831590389428918381725905080581606325205799217438171111093261040617333434746175867805513456724762700240927654278675069770830079313161368824314398920242830090532996262422665486963873769122745094272256478185579158025198549773497418306556461097473871074623672831028645707871712616979121355329791706225870501089981220916119282016385642939430956750858404101880769388263994426968844686287217168840870139467587252526734592042570242285590138284758816128223554447089159028956729505081298006294894239428143611718997016481410614142270641289725683576865044829059622078627075264091491726326018844169556405519428974705181694004399401038318108272881652183211317482837689582171600121750796127377715164307749499167971293619078114119431502655236086137370637773272111028772079012283859356352742488422637605930516972159286825897928356908074829573333956691414675006469401467375525141721341765763980847841179827897108054395892925205939536113682791471748025438786951387158686879287987369248845735754161930008722217019396124156633966686309830101493342319790950088024073368047783409624124768848748929078444922601077067831356845978583368524459975675398515994551922795746948874546736911399934884842048198858760411425445963854359145914599046005421648636980972054041882079284976414851196255103442556677559516823887216127586186221614716867283791608468029046576360951030454415907786149416869136590318803954346501010651092762861364698372999705231214408272835229172344829837789624875269294991665524573759980228505070605413938823912870519598984897048792637717755471277397898992945713005107602859323946159710386388692832652238682620732576287709437597410742557571941024157753455413207333071679809092642267284874039324852522247802385097692314974134671681192201857041110621340797369547925472075697738691735996545202126752781206373437728900729439794938517186167896059789430262780661219978130439238555423295252813071549184985139560039362046837829734344858267130846567497881543494218944012607842562777982830250186423428159710335428406483535383436243935860695805080658740854531488674999464905453150612687931335387299405944462322326673763950783632652602482810627437105475074122860052614728644212545656508941079792383926110465089207728673841728999874369387264573816102652787593367779322235150308545344084096856409450121604295982126727651448171530865671278987605311641576273627032639164025398998610391464639210602977024925565110206977762572427795346165338439163954311348409492570746711761182842968563587058041664212527833066007610751538788055705749284886185258092938282111725698890307970169869225742127529991775708631093558624587945767121477052669230955047582509813104008998384256793436933077794230679389563532032929620554246418923916449833750950018802682069574296958415683300827127787789900530432445155932474351758869497666880131466755355089286865291893385654457073167824210331005187397246112710928780102211346425866019635133263156106817308445977612600789136822130837398972227245034114467460833329144595343830771462477158744338053367823729054787953737860048294601543989736832256397029542864807321589735307262005266312749641107671887003868888626758513860568643269121301836423770587177060458844484691130626394280566155185184569712583473742080129740421099691391810754483098124129169453651674151639953131879594354969362695707997638928716344960945290315110848636461652933666237305470363817863913092601884379357836470360097506581783356321103250672027726373333519881405189475461002870561576600949686481798128085876812189687560365493381472775361458654426462834903638231037812045906415615225552783842573845377098423511339088645238114965785199033316365091155757090902657102922955352323345090618428672311961091536773867286169935448493760024416195465941757345118527661107314039427689029955017039430135117637752806104532025119903846278184874337266234668537232851094881889817877009675550995545753626354457959747882747617690912912378105170213486957549692034067766397614958493523999158794855431404525008662414208698171080788137604469758688692494334474404717384971102257342573825765098982205894701599395458251767671472075342347144677038514548602222861718599239468139036833490301344453241509828987073273354082459622603645386394229049964395922852037658852216758911853620926364503448157155324825306841865267418489114782338722551663607673390726719448339041661364830347982027006350499149297928161969535527695062869477663657652712859662271638495804968930712295673006063357205180773360501287505794323580072165451011390252392665660394590478608101225688501994336523673659488906901963264050286724808933126997616760217881577277505820816532156537456091138281269848081828539902009734032530060464925945282104734022243443836498538942316842353126405945356114043208846904020404119935724545662504244103467944369899905639268818830711457339259883767102855682110052508528968416638182584980450526671286878817717508616396855171225323581729590992598505740817745865690433533106146997487952304337716171552192765557928516370906668046336894566118313830027318049363355258527492768594301294469445059541739173230008216979636949070467383862247812592615122126593085396058989786696033147076755044074734383088097362982458516232267750972647970919405571911895630242680404271325714931686391381261036345368946642944083132767454225691054374839187550698470427258331889339516220979753151381656923695670043042020493801358034148279038662720886620118345111868143320002547713494336043564766291614207122257709016906297890001143803810134846518986229785113999026750592077804201268007268022025558238915627760916604690365526401589781034606633103918478819781927737086136462826547511362206912003005061624922028099555690006881153781466172231462997066034033456814662665723063455432318212999393371768974010933734622976942216358230339138899619359665122820595491451645668220338132791396713299373481454117919827178812764522065216774836398848954874153695366825694982840104370219872013061836927804668914842632511263141435447636221732468249720100074543460068954832801710056257939157396787162372964320430242112094168040585551193360576182151839062088992822131040592988222026461862446352829350935432424318672035948664833211931347832333775019682400338949356316604443210163269702054366098414579465608600402324481730362703339695592913226128864148206775189491086812875515467044372166897516991197362141544326795219919157235709400397456777714938879350850726959099609227708972984486683937630455028738115855880137545518789096786072117088309922143664607039702719930305234467854302686069003509244032133387995968000422230045844245869312682470740788639608999538981941534478177741882527083273998734087841745771830842201885811699815720182118532943313499268647751642513254202536141035865102984385699213445852336898473761880471646192788428286191647498087900570671643041830594796285023078390973812909477016713669004908552776881236479392210773647724348488474056337128394042483904394685683455417553976021292764908311442053134350544010993075806924789485900379459368229210252501422890844595870761278180553661729349377936980963919468556269573451501749720585785064535962675809538263174503953903541998971770117221852376680930152036551860477474059648056335935178470532825421676776014780566847857492753767874964050869515568755709729312803241304566367707819381632503534299084113818567033071753416916883540632769061280555009713027461107218229735803429063149868317394863387631195501778021037361165799429560993072018134821304790184859348889301639602237008410294524712048654824028584773636978905885184054121560218670407632418433521501268873420302653863659115744605408516231541426267940292267861167563656247793776959349816325350309396743367793771057454035665321068218322901029951026435847343500769489399469284881808551108019056264319164376363001512410691468763849553109048949991295741390622910155466198280335577643105346291133582974117394814449141238400931705895736068880845951193448308905642636138234450786294926091755896309963169822171405969575219767149857351782334346308729490299981821678971994270561421975294630171825695744886387502047271624449039530647664785408283714833313455796091411658427024945678835106706161098306839250184190326857170500337399542662997141199267184687258257121020311192863712851962942551344229427376537265639439112625616551972610830620721309001071498012452467465689487885737612326238097223802387557774183873134950008940715210639096003624654157554948758269667384321260224253898426404769828554068756687958564520668978771890453048986244613330895286236090414205702950661039878766538804159426990650722403355985044603643036720564764366962547647271552689928528712006761153697480749299775300533469735187042853554796289702243445705545052862449214769709142281142770067298437697054489662839363333327086400731411731293886436882717710486859775728582515053955349346335500922132624982606111921322231867975089823361552824441849404258188989798067752380903758282034703337408212651196651448852238888210576153499886109403150414577095613829493224620476264047012881884090082989577749342784432674597222395658415887132288222866054229047911689919977116008573620261001626172850227830057176998755503644549309081643242892384775639877795736176243813117445587332058264850265209514186381118381932641735271121930422980481979479691595100765788231643545934244968821212208337788053056392597498367807215481101929185237491318696466699507807150248776931477185390468979186936376243581892007234588088005703821484931884009645980603773703655962035757586486018184088048770648485543688457915976346227942747480989506963566441115586680971473483727823552494154150081548922268458739471054433332662961011222230284982031109997069917809412210228465104087092616629269462020208012019617237490079541208890531574810182715212209363478486375705648148737298444004053461236289501454226432350828600669609576374205998479537483397228333164665578769255224352971767809260497023935533039757761667615050913409488372648875228945469097740720097376198170654358536613779224536261035115129242868491143740549509792239782942698524709263467688938248570417650838583625692536799333928606654722289279303848068066754549163287265148662909566645621016273508486501748984041566862754499771626182141770860271740125159139394534884834486359067051315299547443842878914973698487811572813780727706233244973975424908681896493980801295205232577196930044607177564597349792598561452300393346458539786155996765691821498407798267357220940402455525708908308032362332178536526551800486160295184599838020198929026793570934080013500575471689654153013308648266280438980001300129113183258883157557242749945270932566243673837052288067992891956714452261303745055536520814337173208578244480230129918583410661622547809325474822993266177374504023779566084717720463227342252727889694910454280551473264774563402780227392455635961476585186158842980951544090858883344070639375306134528154734852244131946538698672279206664643057065803798874734853584587337394281604302806903119008317699138006987566129883240049974086274453518165170422746057351802885883038114255446441743886226866154626879600034286385960723474061077466487409659254459168002247568657760808713808078919556002403223132420086702940109420351545047006623227632159941640558769835272942521835775724903271701329092105895550865880626602307865240249976781165780446727676376376289270563887471567113417957170103219754560159172667652007314628057990735854543722908506909862888814981964243200673083091530517466445597345602463811115232183905733708765477675420331385367023718472307578114046185886476720687770195649255967072221746893091710508780134104542795132648511819047694205896179330939206132463165528134861692886794387354992948669059273370383106926368068317591063689281450208949442086748403706992317982635757879408669470761928362283557257659344182970532590656739786338677128115147040995237362806237289939633219741945403604780427969474131130034232557546512715128233156480614125292698068738025870271610999464234019261726161176203576585641602854419725132494961250371793095942722018268157453227427509137967388461975520360211549049802505655017249349024627942888033600028975754557451255174697995871419149868545246585469657006979632401359069004780704023600690588476509172756276200282318725849546206838668753232411665896371550101187452808926241179956376198327939921239412834604447809676550730715691036246995341169254036108557484809219719485842226810715842537269211946021322448915660193388245257876623877887068064259222901185519512394628010689207814471177072618467307083923509447590973396829311650810966157365844952460364765385372984947122678329054032040671842234206738339127334892918212046788009268750360664881886118781402248072780272630254666176306954081066111523209317508457726390124671281518769002914805449922528508696715736803430121526376840371555728331973552133114997746157536506060204868249744498173440501198522697028020952466792703298680702341526874743693309286328004962381459747618638247466267763252028384924552520628629019119052874797992638015110069722814661738059305805152644594919776782661445862633137828255932725498099149863013965512772318203965727933674471459633760454580051732656976773889385961480905821644250598673437368462409271685142286621795196934386850400004763627357552710762152627489560449239617448490191967056457923358976019400461940081156552265107248816703768986981483245901511186456751292534246390943036219769777742026372811932441960737105555530132336952034383895645304655564056221582074869951914739924733325332865631256541619047929126715754390926633821611135494340294520530083325923804165141072370009132585233071648034526079426918595218160594615385915470619538493097309425453245984358094048693762270987784929210528587392820006957654535905458687166081298361338621756580577019152979285181942348698122984229312466456251785696724047511325296309650092710065111119166750005247155472323522628446072256545761848491580665259170869556097114255309056693039549894039556314108867510348079935998745081540229201445683596942821673893116371950449518248317111263984165734666275163362178546891400677379160706048030342977773443514466476268585335032029897048564039873597322315957190992350066668513332987171865412322609863718991357474284344183568127284593760695755795313713756578533325799999924755473325081744969458789137600762913137423624626034352124337112397023247587333306778080500611423578669434366096398488456607815482515046120606790512518836372457381733144587371081420817211650640648527606311011814450847286077436274264006168909294789119446172593597718219418218094466703622136725931753351425783447748448058713417053511515294688887900204440735953735967040381375384371202585019801258499887437376664304865498410261409992517580982024300912511727667915707500289265494482920858323525551524695457989758247147748825386682335279912100640709942167581573957437326929075072343419633415521381670758257716402479602651879686072730117975791960216671101148253516290197239214730593223389149803088951859387568339888824529954785194082347982124962827309543050370252697571690031053245114023571941981202915807111979912141139457143434830486336097217160085980377404008028942309107245741409493419452325210789024029632065321467570476665378120767334260634009617184652998981318852432407948263698944547303879542222764394778697069448558010383590299113365397098938721028739627049400441507118194313061647878218706350900211227751175946337817259827487430051543194055320161122807156667753550377326533171949635887959402784496276254212122619808755855893984374572410920922827852556477414983274090259619438320814217090955514100526667565431616403277556478348779977078541189204941101904906906540048793680153939736119401643254909440333715549725248626765313622832141837031420055614491336124427863363052107778196609367160409351406607235253639000051339575975638513130188654536630487705381245705310527623246007462886413975538019110046551831325442889297887603429780548738647896089685697447355620466602083270890418956663235893503304173404455905570351390305146460661541963554161575772030490258243924912080330559253064171301338954197389220235290072487351456519853246264515552818188862193774966721966319485455526293920273876162425916399939942990045559911949344337219177631254312198624592957029390965822096336448944719540882217132914954187820981465666450272006666399271804748001599831527416783954399467927888796191982566751591722664488401027572844283143820740576218403103984972892782093921557074391415187613519278877306410264200284432760936791369800909073564381119566249096863105248460210040317296630768827386887481265744947003400607208482608565556629834929064456423442720568071119572487096638282677816914203507423843534864353741188408276221159701528746748477220861364598446827243359111870190013312139599862679562256307276210534221463729774194778823889777726163792824798517343978301218804072399517433811817358894325066953775834508530730309340004392106981292967471113856966145179800644363869553113709923495518593329669979856385354836420925145979433142288728473804563007141323143524600033259982548401801976555621178913905279362269004986790660934805629092278465696912106705093415562451445163603782411915424376377427720941917680414005285647759988948012996146479453414216990146731815463046517739944696916022111051317589440650306979383660394693489794983471928136032565729643044778436735006500583466202786868152555682552366361964387692260746318222776914600064646057998452242446643529187867959976685568878421391281722161568020485627295452474633776847133514701947920145171155383890535341633233761570367820870170274779106942860127329127834637813213762262538415530248540181735033355594978740323188651803830329485824271833116275252092405828147054930086440447688588322632442527273291498304649160296387274786628384457590132889570330632760025294823812964591928856050605846284987774518490588509093521324041424034897726787463820979856913574564411433769750601922320996882047495336526893330666391745088322264984983498215556929622269905908893301951720772244272450903613406222353613468365845219052083250680293899412471730534959526236275381157868964219001263040729378609488974061850959606351751270876485617224416415289352169142001122257601813973069778173486373410419068127954059631338568434084990976807200896958469403834966319078946019207468585152437155114869934716355048398649563841483516609492243999502023416484259623062394365435406677646469964223360055893341956387470896912007106574077788271125150071691688289834260146309379567915766984133031396664908093047417495083430070683731463038133656759291191865204728156324998313870859891648726907412033997215906282831827266031283001503991583625513374595912155371450027681884586294779757852354495280011315018880397651345487336260250859493880765418274197099555993738852436388178744728953287486798429762151160609759983618007443660564211984992510212574807762502373631357343153691977056912501865772092910825891074333595147957256825630138313588963559067476582872403933894746058078151165637731766382291275462556108883357874310190380227797136808441456666800012742992663274956457133145303770664852839374928213082091588672324124418679326082257518298152980572705905169190536729031339461064149169973548322378028907989774535929013545811733540954465115325655509863119646341558060308772065729223548327663114695782932840903138247330448239606657190204812880529352311933479288466967688367827877464866489186850084998267053479055254266740886889346217608782158507845909405969430427422330764419439758234209980537686936898082805374843110576449539846508881723718232034742210665766413734178353330830293682947562576782347165267192787200114588263306827431230595700821689442684402618712848028413655584749723432361146431902085794325051412158245878846889541616311207100742820310875705067020631445736390766303444851413439965440438965592988699571033669216546240649153073440589918467206993618947273656203583767369273549542145539740134879720670390320720357603945143957304824179435467698919307609247101602601045738331926211790579660460858466637127614324700611486817493246623315432138831898312444490233577568731450679878917708216574703061917834969874596593855730786319865053318405635259832758910914301012312873251166417476916755855268765960528088500731358246323001592543377356885286179586953899027317278952158861909165414128456924433827446711253941550571767665466499888012077694829209170138790534370092830525955043176222771722371462215344291324245546521251265924318813084303397598509381694351847271491701728580030259116026000724310286175905831993837007909049220294442334030789293309617104190315439615453936587777372690736228356161547157418834104962300912747113865001126300146120203853767906633665832978090098050538557750242551214980091405660626794407294072000125994800989568088557935725625677479975007964255787092521492651713665727111826515963786844736968675257836189472067371652312098897066343581955031677961190627725095387645558482233229034558482621133732559330549927829611318882600152878848726109730514045828195611302506266950116703190129725827170315864632100424815067238244571600074961085003421750833752953726614341479409050428606654101832619420874853096180336581610284470734868576168401372711635934867836232688993962003737106956590239835501725969096185032589323151856890751971744447328479708526481251371049818236484586679927231293650300479767544385346565823917491636484694907893428702097615462447848806386805307549538385316620612443003083741864221201231631884692361427989384384854542786849236506307324449663389617941952141551123050350864884372111113733986868306412207556390956144847369842743929759331692678109890083795675461581719788252581898831779796975296425057967714730132988540066931805614606218826403451723374905201580543039500092094455826739144774478028436186575722974316879283056852591841563391349777536297302309488204939552378768313183979930493879841866193865390060205836165234424225147993808465959669011941089401127997796508790275230111745908685102197915123360036096009393983731141314076628172457972913907135467236404560702678198751018683303698231616393285087534379350762587656263954191844727788996030209985046923849607541880646945417103531738848068943893186661211844102847325162058240293376383721590005420734043806404086108464523312756941775099589216037184855600512642315130550443399962761623594071108361141098975206838329297321751465950752687845138730916792397465477908880235439074696550239078721991659940291389044556919814020428086506464379787541920758032913305678501593371407627191736581613304731280858537903940154355815813852961226423316288021144353766367785533190620474552829044900507617066631515540182541659928020663163211938859582872830026979527299303119153238789849877215488795089668020269213445602139131370667083409185737069684375005896953901721340450739437633684868256980326280588514196830823183130513972751254407240116134377253259426294514422059661228006521436941339096716442520273901879394196484549952189120365736784173743661846954045889840275433633149999076140430760086697822016702750698348967674229571280537043145616721329267799234407784146622951530963497750990557142773589064077283208592127185475911231392780042679828389871288037080573156344608407610395608903390807660327869120409727172042715182075312398041761747601289666083602358834979048888283110838478925036049185370505864960227338872137857817731747112095828628627009120709519003701685652525618295025923699170815866922929450129911773608537235844171962175666714370375678921111857894198132847822380371875880875306503476147113699511402428080263561354026520433095883517540294911238165071856613029363237696538403468354111758679319249965423545227444157441141110712897752973611953594843587878894188851901594461147668883251990895040286795851372832862970292697596600576299748792816103739689469329122875619505808446436529711175808244194979147878032571881734377920843514287402044758014801386108090302709858523018390971454312699265327766467351528275833888771924664506031163637735368435081396926883916040560981990364722106837330940602783764916511547085360658614787014341454911082720128845486291939406205825573179022142553208258522760939848191357176230294477438085047589613867804139418541509054794412344930349776189571077043841320368620409179725237251745210605231349967039942949829809726142332555679506823376447800039648291189694154982368941102658712014745360052125516916571939246508049076971488704248830111233090037444866256654561642868749815009291466207213932286344792312697559923411041099147728481650379652032805943512851832116397285887123596077578450935770861861454952654501758584464199218177334587647715130230143954442784537908040447633072902776256101183631268038110961491520991098394400510925026489225995452960986985185009874574962069343784719603140355992919446104151400311069970054340212274573993086197114267303077307236868383446171375408283841145384183339331526806637096908308247479839092049305113411921237157516391543590696810060465403770790762795823620865014393505631067995854995978149265308970282403319718433841193714513792738625248308081321276676780316826221866737906633590328962869217438778521057973268407161243188887932302342794901598281668795852794470500635040034645266828296092710383432986640275313202220777957860406806758666886021897469236348521459478919186267061996149376756987623597072715993371592748117872519510933683522175133050221687228151839859060157718049467067539243933861464997111121842114301304061052317956355978943691387989875267495669049152210532943867788252361689397327789466980765504352187381473867781155592544828623449530140062206737575437117592118571154079084637458221974843338481830897430223749351193671632539637564601200443188647821758894546473698076095588287667480302296735856937440349608496059463309773312265541721520192290351085355622633145365486034271492303586526921841089339230796647154819073150237697302272965380864099066732959389297692029026296813609608316915118633509735527331879621121587844232143956702244591351757196216566496425038025419424846680052383538456639132754040871953637392112242707566255296116376778531694650295043988565724808823320378861033469378782187737658312398820611146066437703648094280067281765978226921451086706501107159806991607838818700028074670715237706868039789641027453768669938935967937758968511220059485968849795828838203118544340141954292768539273898125702185855047024236986863430919949832612748306612687167486270810034485968229482692962680110978905464357483580981726984648133995632277365891555520965476898114108533439897831883526834216818093881090620774093607321620031558523611677754310100571619085550673518107982519723261297348207652081776168264755086321233578765402148765193116534401284063412677594159456566731134444254480768022425689284763650423616836279340185425051863431835130355541911712135485888336114118352454693799008080376875419217845483584811760312301600658870980680018034355352521441173270867569830281827961112631945299298054217487890421710782668990133793309358300141434236246090980837974354972613498985361783786110596454956678180211856406677218013843042685925610754492414193145980212169926171554070035205459938435387228616050483627758355587320316376006600359842230034666394432786953382789808796995728123593184430967197882917133819609687004817327533312659881547356755566608155332824708042749779646098742794411852232201343880931746514510851147950767917244046238183622579148476877098704779375727218161777571709175137735036228222957097765309252569861376517744967318236290500894708052761972859698939253212359917978743617725570165681611849890112937930499466063441845248689025190765067078152012722920779261672999792153737243833692318065685551268494713037322160930024463288699764740917150739552986006119401274741500584973019403204720888066498898534929259133236722782504496415404045628378955136629468711134165384165087304874433748001270798620246756684792268274373773329703728425285789643080063419849136285509750015602692494220345178010714281759502591846260090077073194480060217998183809613199654835056322654371482580221530645441523651653219866941026699123629125400978817455543006645935894326954631464672410103366743506480660295188573284872980860025724050323396592703813985980519092360434279506230119446679450373564324114683120521138738490631016399655554356126072163639572349749846493099096531474173176128145771079059474328344504407844503606060972047959160613719860344336986046005285182089610435281070601206476969615726017738351010199639898778565913599663190011694059521102474547872597470123691435598907971029698660730803143148117231850389108646088930416971995156441402330283515682958988253824885443236223749906842119706559961074197762780503432180940302888982980395403605641440737382657086798878239453759335736219365524762690110244189921251471707327094479356261607340056243610759395213700475696692576372624954541694144215731433536774120843715186881299855677444103106734097319788112083292569866901797903204582246621765343859765641309381572525233768205055117375108473186471237892447689092828652237448158224083695059920526167063091636344710549190196868690643539170656593116045357944261564747045079998019357657126911399567599217768244034357159294843896720186353862200753685648879965531360085089153049367691541917488729357702228255965687251970564392645761427537186736782578489557704735076227985474084502897487452049602817056725451569146144855440203155525326649778451712708281262737263444395771140228087683163120324347333106249794486890972175665677810343298088089524350158418362409308573699648798759765559261531643016049593861403571163426336777430768501153681284268487317403884085188378501938175349717621913321333767376887392665105633332314035300081069675718995330492947667402764715631658678635169418381504439759497161357935279681514514535061718546992340433724769032958166914091912573687557461467197997429633373757097418366821774959691139391430227596400141377781326412811961308478433083151547786052233063847020766037910058820226201178541346543370631002507436387459952390307887346053947334677402430654346811500758839488197252704490759944563373482932476867828771054231758575822294264715942367744938797647368427632215516287482155815574336845034800172576599234247007847740802979399119823819116935906406495839210993200569245248108931495284289256763127880398932785020027719259920787078043987479975474276694093833940432906334854393479565848737625636919062864638107530585886778061949054861442305448760448889961965398011728003915048292609442025054868062250257913310679409301307514640634285178177720414306702825559616919504038077539922905998456039727408907862310399801827930103048376125624646053929672997729888338796761016163583697060038329305572795285911573731248937663175200779250503797469452460756649929543589469769620585661879043759807481781894860446588388491620490546275012759655184220354069048629328247962206090864863114558026825991900780680786519441050327310034010409034164063048600863194172129213327523125342940466930090470357964568351374200115160936999980777953594569995497743452146212658884366461311490751756469602764348271999712013322369630099081069278376062514270758733124041278805235904859316927416537279671611124090842183272548812970343933889577365996777497762527533379259770599741584943405099805667440968267307442862999544047413029783743174541579567150649433402055884499170108536569079106900261868823347054468890208941307040973625241689597270351210529339261861015020426367542680642438017253445561633155008934444631388676682872107969746427850667106050602982152181244502969629321842571986576894937269096206247623417221756769283700015095722994312141166543644534596179262623727998456158386807523247456343087020539910314836752905819823749853645423863457498580097350217802318325088654984856864779731962701867005716596068318302554879177647004648952114978339123831177122956928709842463359809473345344399735109624412622389814569304653739353420842610393979736752668355334749099630793657579467445277526270429679175428440819195594234699774705187257327701730267508146778691447301378503308730042331672996928799197172437240554244668225475875860098851740373838143511619862767408733550156288283613611553808936191929706708017017429883567434789618540838573970367622992977363441334610950499242647958404387906961128067410251774307111073817818703682046893738691955710201116011926692305433053522949537526166944567976455799725842884315659471420488723397066778110296117107296139530935952086108634731384059090007974306824089877710828094459459156049798896451377038633558910966139124222120552041025936557973385526131956932840604848066557611593511866368683041435389001848106828941355703812964020757130160461816264506251019878663554320553766179314341359692619439098648340508284347097888185452691653680049769766255590802379266535032427296017032627778046036883274949060023794933161917225188682670023864972642152480642305181740973521656566971112324952927436168339418376245911150041150404200041338566480954793030804534743624536931799053827836904615780896639434004822099494578689891365652398993123909306004558679136788662170824682457638440390117930528635593752398492196804133171430611488423264411426341811347510045585662065374738787882434468879612516491013794571625402549620918960570390856170774850529868448446029294970912123080665579433235556284019113561325450124065627432446595766837798196721724723364120781478077075275260185774921349600339904930429835790936411625790351100346001835759129965484812004669933326420951406499237925423084610888216009781908309470283726195073221445093986800076000700441791293841110041521005311581372775762698946136646933156316670483052157085726451067638846145466634290783472421453306759806862335161490871380586218654771815744401354565466908977105556063621069846440665775131848446550998057452312333025474461010752981952681563803610987144788490216777699160033847310373512758240715376401870160666133540620401971489936696075256744549086686438205735059090159670848993830269718554585148482653052355937402181727392543000570924284941664847844782995344513421496361876136032817572485718919833571986065151849070009843788336615772862702042467593125548670973190891408215045823097282096484676133013445551485014886394917094112633937925363130611976896148404781626058959569948495397695332210170119662427107178562871227016644563389781559871479116827720559136763485135948785520972165221701946065904377291837222570617499153233395330752937205093144546701519274056336495705475818326042112148286374201341649492293160834552335900411099999746317717767591794555861570412832375808033838244711059760644271234983108133355089658326442152243615312834086162004611529923532912610749702417572566344787297057519427089586345032841828201618113957556716373035754032223659364544777685284410371621153579671414357267161215621610677969201786666393901240076535004914162294222389470911779613080942814035380879009019754977693505708292069488121696460680642066081368837153493204562015238565365402773611457538582900385829859209582350758471208564564702428400740528185250374479180503008667999703445779502603457039113893619330484217514633037832314089678309382146234591820250790082543999867071219350973745118643870008245494621379234920119703591633861399945984761361781587182220896975676172059848752171934565797178282425860498626150483179994208561177965230407531392990939331499144574299721256284874366825355890955929228073145202472455421899365616513617909561495867582395080540848953622985321048932732507033252711181738247488254468020872869442650707761387420624652219610985263892793750988177783296678751550405291578031700041481429598745979657037157877609362132917950161070463542003948696641820601756769777117651876667398737291058056579193000623934531108166652645083892311364865345091387171273239958902816370789500182148383954812394310317621014359813945460499723696178812760693006140785041770969596411801140555310632919661704859640696237537410759178440856943824366781597021550715498927918333457147402248435550052980854036933037688694617684860955369913644713584202101975108384277493987079404813007285434158010555607713653000238163147628023633951570941567213524577508834993801725370618246561428021432085603890893704549605979252329661695487044259848774485169551690645870346128424172786322713222613035104896615387812614791411146264526993571316850189334067607781148774953180599082329952478929599925908167277964901163196195062397420351702316543456083721033778062773964071715912507935687654901197330035165895017913453422604525760834595115105929661930720123004463738541337373319073874015174715411797793443167253122788474669890618326378345198319541435683773872376239996633555024646318441598699957133305036100705581782017097292029689723253982762829725833005302356723975254919237045983372149726501659597951384692716334382142003163007982514562935566557910723851105154317823986433398419183827578556099218908169495522084618237775516669508246816813943865427512503416237561892725968837679039199863965690642548168222405794486089838639498847187060450216503553976909135926260604394127946526397647773837613377943555466414560574329335566258649443530702054976047917705538504905997441284521873614115829069074231607761507316157388620335159487296359122007712244578215296883820386034161357052404966393050540756508135744591829991261730158103860486880318262665768673280329995582598405941766702126248095623933634801999477895065623377087879835975798703981210699407029297856385833397881077315493864150983102567014254191104714538299692900895164732590486922853214414264975292611838266700217409686838897233792096182271705456938488741498235906799142544605745192943681299453577709848287873066017095299358761471040129478505809727383808806821352698772063192168764314039580032557342215767832224875089008597160502677935420057244805755346052123563780889033260606907792779856442253573556378987146325434631020649702418547879669710592178309897453349779023390492866046943064097197763480003997560734705430446545502040216825182760637693258549707189261735454373588006726036082563222177527369415690869016909152284332818420512558217457968235968641942778480459959971845281357239929252144591026643283480824077350878618413067882710725117760235633493341085670929055453840368268182947431827354583170259111815759941426590305727821142299008424510635348545892499398303363895058509508372007338526912254997772100917738263811659341018534299046971160055548340476774515474221521190333718179158823260376026900994438680361627569715057412837660436216153412987973123400846002519835026382997315489942458022080341310672983795140925396942387807827597312396179726278845935452587347329901011643728625860465330190004251025103909006744110791823114253864311285151254665755749913203718029317886153191090068827009313993342932090067141475256398115695533414219401635268372622441885475439788035391049059560083005732831957903179322726429437754780753208365651980978315327025019702182239256292775909795902302917638249232900193619519888525583147486138861511598838587519073935452657171155005352207852615645618709768273552958079429471040792763093007820668495103466622009901235982663615170488233757534368543972934446086408038115486043857732864208358920094450320462470309087858702316737704301179812719646437482581305699046678044529914066379494655073290145186087020419659260707876836339216488236957223109856973419664190088164786591204481823366281941595954142874297416393604395441721781619036777358265330868052810548521241764169227542217146681881227175169963590073330876744981796581081557831044171965344565440249370912431222414428797863881975669577715951320485613546695264989085933005847771391973205570282422258021903342649131352914928099198659599206537136703541658118085407846371043377735749871084451120177721137128682517317666981282146855589578656356267401273703668985680736027207406291406158967534068967858248941441799498376688773643169154025167904965157239633285200473966459498436994289694624206794957012643245870872947212931919251884360207777263096067093018491249319163483421411009537963066837335439175045550161375871728419611323443258284009451817178350079072107777245326209603305508785650255618428425740224140902204001525113165509833455277367817612689779547445223295092448367100341598388910588565795321805509628593657982327625508078007225935732529216500368119693626916882930963617940502538153457020554929043520837367783088236358852235254911725747782961838736346915098738891829039557914482887309632515970749509785619222718754575478999042324356121897008869985880668354572020700355704300088300136306711218447684828054411854213374817351778623292909984607706141327053108591052482704268743467541008732297486816633681993123736763571272780866862827064181504499355837036151758040371243756273139097894495279429373436084319686537156416033569138462440178486590955360369275650086845844282468435656862280449434283028079204535645564764196116883625249641384471534018516815715797050111497479021599738082681190568426645670346079032344275607055694758586889864885191878081642486459463109882640298244949646588282224695064514013581246623413743119132466002003711425297159666116729375637804192059231740875005525160838664720038821355623580884178799720526830745116484512552977151477992812992477972798067459797686496551782692727015881364429538726854731134582793407811173427729801338096416114500661236074729146310634100063176751417667125186064924723639743716269803937893123917089598062716161842922648406920752939072235989187481460221715229588031613986051614199737683731083670382216882229374142750183253584501909694756895622134283904030241454154021211916890510787223894764242777702781770635703202476939783175761856817854689600631042756155223354228151646918631330860209264801001707238049072591376544038658028970519465515278667012990080234192118510193050743979853129826456670681611925500676262062035143826286913021153930583459979739897664455938736637905767298705979129275620148386180401298374705869687596901384274625048830263972720090122983771019274888665240649587769757744790626390539166355634979468384559355906421370164170922708221990642147001894646220359042130077498814535637709424939456149245973029412553550898888297420105479219024629909662212275850850033518142463165638098040134599720237735191586818154177411584314194688564316794507139542421716383465582158917594689070830802685808443229470966397513626704669885431249856905478777805351320159014065086358901411455350561898062448476138400090110108678621091200914376017472383146578729872492082547556464586030902338016304924456364732820332015283535748554238277525189643005901561775007500828175695309035825514076767783354650777642922696210827898154630014704469971777230335295908366259612444504045569477243017608041074819525853268446370705384074582946529869363493659371250515225160887016451509787563118343288807880147008286615310290757114849331080045908534187504124739597040904317641432798586866275031737329321297338506729940552112803618736870657714167165438288831776855274397569632227405737673434468459720172030626018799103957921860660279241362618645086501677901323612877212018952424737971665487869015296084902507620097105986976799570776808647542780090728502466182095057069650490854820513295712682217867453406537893895489078286178486023328761137414697988710407882597812420784100536547532470222441760563864453435599148685153894604434571075387173547467443595228824017626449783882308137768439972539718838944948886578512138584973553028617722424339728685236327180688356547251524457556667279865311537969184931917494036845830514662230616573323161394504086368659316312889296546294150384101292922408201034698577804830211385835855048824339772914646265355916147641765913279992203360376119112496910388615015233368045944708081689157997538056294800085503029838536257522039989728412760660263335471941942111775445113288339632356638286659875295395556570123917051341900811302603382837811887072708409351239296979520663063185138317058779910250572755128660761347352458361824399739187423316690057629432770851613053067749858600070337841457809303083409527373296520791083999011996218045832873571722680227421634518178141323231514099607732333149502148354871261606428085996990237237165900447540641919459582134747457759290181518351296098619852868666483749883097486668761660994108216935147123646048997571623976137153963072610383739251909336943126642816082950600836433818209624011192703020120480034180510354588285657627240762914323970800054548098345418201428737255001210988418337111537020619036312494218830701079897062075928827856998786153246721866038174112160876120722198422916416658281237682875219511324048249563884274035691323787029010393422231959636088931586309367369706958179218664901128152397838670567172505554137443419897186566702576222567132138298848874365348387996653814682845350441015787077120841679294523427782382254972968103481904625624092338621294262682208609708140416415760921594296492909175612562018901889528975064447731403900310241175991525228989295885577240949570103953138231094919673510706560008973116390795007625405533070873129310965559437037798169453757181275410394283562488511776645389433787686672936775079980383283730839518832669673679192252991915057412181875985405438452315061168444659263576858353694132239825375055319337013987168809801960662492797003510056655102610759835178579287047602603457510918958462039917510947109247455261810112813199696853063573111062260262943284269347805457977124703007027289439665871886020591207161642745286922681878575024679787064868232396389453160053633247404257264329036780964897372535245282147159144485949737793092777752493566908849940516828623209657419785724347468715748750980636027587764323489344358788548163990837833082794171274051135708437397791441228769819934164745696350382161286784676601285058603087723384995483187010526507355631228995485403826814330053835902134045103315318649925608167321883156737826953387012819130352430347001489716732519940719904492265235283723794001768483339691562294346027844366646375666783293607407382607886913047795584871662815210162044198842159619643488400176240650417592692119342918145001690056486196894359619329307156176223651076194697929792556000578218974099581296196042342621323935267253927719115506952239104176514573491714606747179964878597709057829852755964166810834799217448712318397769476340427299232267277995272742726234998486444356964475830378690319875440993764380459108090456980565936436833403455759519511091753235206454545096506260590492815288690761118679778395445553059625182839229986521121907017460051651253406377847247189245765539877354155119831675080040685361532724540083807354650325910147095396987575501729451215113448712072890755136590487790764767574593070410108510204888725236857943524305534863075546642976183327736724769451466479523187124940727929091710753770107297115249266226302591310761409862729344229996937473555226990334968741844803663541571997008163293402795799609771156293557118983951365013677860106179003860032556330458701338472186623004128873309661557175907082956837307712322306616510869465040964772289891451924123927001795210082698784864488897807093057712633311536173023108956464237473272200428458444465657855354937350354297617454339511949826952993779545096512968636795161661300123086452857530784272756710579582510894866096757895525264043096783531703492874881763231408026444592516135649208329519436025877257523167242099594871417527016216861398414891824344753682027935222671805636322210191170711960279859266115736736814080345722482700685618423833853447976791705997452475691089983759085492033739857862309120546437310848210534463471146292257097739633091401915359616803875418407208648076591266210100315985794021014497517801887579999551531568546052891395035092396823422275773365095446805279475767715221066248351589487681730734269741083154575853838499635947026675677786536773237334714737706000767590014271011357359041417239363349582168662858544785735436239931294265881658163328171383050922374003801558041563120513756201652272228328509443268827711374387312802125995917087118398847799609289306121278260809067155896311170490301596689723345527332670853097387847604812471711740339167504651256921833159801967191178911943815274334030743803869562865859730493463267849831165758777137217798805485898048354659667270812626641361637603962075506566197861419107220767374783574765189079256919881721934717364980594586789149840779862681438004409803180387588673352408492391287695134417659251104366783339132050429605762803683064874941590830730277791436183113691051355703023616959726626580374798920850605910944888164029498068735344346374572436296215806308179507309032700064788096956845011427154977684506990561713909787589578978445353879746489509443196249997823895099564818324809826193206155623550280934165407537758896351019459975814339264225599530455834525832269474237376726002250274365945200488800882058782857272605107919315044706567961007320335263630847245881214913570398785091829850407409596824314493157503020944313079114304880942320922212559374813228058155679893063376611308334367504545723034702172346017335824203648040055922695578802972267725950478659640636070030078076837338918486518575210642749667871298628639733720201236606234693446949644159411752340124731262399507910235539922279361321377401227907989773302525037734142555796810250523765302059144945083869265646034870287203242512031339540328487145230620047156511826153349556482672624755159680423575707211540164121852969001636545607658221776816191895115220497666262733736111548191545635279614963482352445356204939992287673541512802683217335175785388055535238995378196671079537442806725103854167944813656729367466762004576859190953490889202914121148287312726536883328091515025850018314682224364023486219495214973617679735569723068948740736213161861912785606420398400592724553486898559372067852843384065800098398320171231240709147926511565539648794725564222948883881880272449109837530497499060327553730770897951705239819225612229854515549571710550136988217867079132190156439598877199354934432531652059024260395143748029902628706076954631671028841995770427758836400593533040765831856335328464150737957191487685415668132136330769079177911399793863329527287643644674366028641738759220961300118598504688174281298104565142214254583014494611591506942919737459082162747859637848612566597093944373632615493480732790788162757942663452743235011459419502337995669089633842740035232582682560467434650227629305678662942196126117185264561274075386720746869794303323207367508938197443564797876965712745886306841370653930197283039872904324685817810483520337089705747433289427167959455723575124137141741621620259018961087716724622474881363671035425201507385639339519059774495545731817244081518559617666472251150126731943860235151469954862498295127623073664661251204785409683950481971908991901446457008487307987100527551246491713434806524630790630213787905779124705291193019285976407977835345885295281646079014087904046832934424410000531123971965753299956920890492888877914532074709142583538804783962402528880811859431252486315237054196121313603724390269819455566060102007312426350976928973046825032896153788302657913982592661939110530472033828313424357327181920316278870645533957019743657757523189797825704218196177245467886517503616547364874307277497654583862007488201908610952614214857884770920695555494359160620622000005589252557526937789591931126398901365168746932454355765173364314756757455588154527729496246557032564025129936963478146037421083834545334381221496461770224529908821846994050868953057135559700277558915842464652051553119325746356193565512629400445362079666274002350968256363215809899205239693736367864546555287542922167889137333983129156715843595270607760672870400415702347890440708337854610252313356105505438232153754206420505823187544577819981227918083564304834429437096936281288481031940820197714224913997799248273380185203022023965608579753606210481927011516419588843937998565306913809992288502810545742591285069536550814048568809725582837188711494166003464958237402875805277936209002778768050678938001547909124246928715863534780381895030033648873179360341613216160537245363837463646990128442548518952195645122903220691967390691479758787452042554654679638949507632784800652177360817535231725961349703718539063445265882661375023930065822311399390291490219569241314016306778594489788389852103091813835881208832542328154879223486510910674774375298223218532922248854461399809731766829356325626554540850152445183602015725186844803606845279958508449653622871474713720354975028484869740506387304682739085950866904738327660023668817081442800152182051256382372761173619001420395136356779130451958438308310672482779894634253439467608088570390889008513479811608843827140463852152257385856534470506585737837435151378282704081161480131819578258241249476209589898668228824310688405760659696392977212556250342470463774980621006669643442433535827549842296435689151490965671542737522684702001543276422543258133434474737158277165026427888439827920636629789581628838550330428974236956915662110767482515012646039757873339566709600367693794167495004244202590433711443814090581719950895453080489855057423068371555737286177653774951940669421916697097998729323360371523043364711279179867299422967621532794250293248392632828935553272125137644586447590557834161384535283227742721774729992093820037773553427595053215770351839351506949327519289926879672746623155453157064785915170514162626786395136323078464621092913505338796914183911944409656648195646932052544939772660707751223418078401510846293660418538303362361461149061737617456165829992426237326528039144534223217719852372092886661279072502230888226440577427714666760693211651592799750664062691637058928107498071526652698864007063688452941926309456720683132170431052924603596851154278775055837442057729269379972873754647660642891427047999749480651600720893805309511878221261333073691446403448059351256967944674580650948700244185314271574980352299841798729128246357646995259358879972417864603211373827617744437173374102347830011016425080910281267213260663843715411373659020823183594710013224280345253518001405698312376445289773977694891163643842910190581678593223280577081261132023877125609482848038828978169592596153793408760739804610594047470175075976170321514380077369895957798349874085201461617796320907920344531086702966262372430102548393132500866914413904381377376340060132859041571574347562767864272543917276107409034966287030884669032588742797758988573775536878233256970915515402433667225648593180497305808593678560703926982648751013241466056507905671577516673546293372269448396558076564220425274808370659778221770966165605071809056841947104286953692870466151325639565173446940931124411781239650627717984380535963611665386552154113392049465673875206796455755097618298373953656627534567951056590823759697697565604706192805028023311645910960515592503297308575955301883538020035044673505044533364270864104284922108120286441389628337368325030847801313287729107204018607497244046180137025125927150739169617124883723272138676102921785597230588717962888303892848307899700991405673686630788691239861077319835178828006918479918828205574798613157964428719298501943642167404129302984372956905645619659629195887692440004585181724965694134572083571301713154959656180024696612927543186660445043487005308858254061284358605244105693535745156758373365336588802450404660400825024989462892083279724153296202129631646657342906726645104102569030986033641888627428039922312908026535926413774536406255036387564980536310454608507234442432173080152967664399135122169465288900621710681525042280029977923405212499134968355905115259381143480224108944334471518802963568200519920830081776615303754995606390508526706526705945353547779162629018937261424293725118217958540321474650072708129265479558687963822243532458728246910966888894522094115492524823731647158929774568033429229579540494131359642593898128535577447857936972900535179881482049514770596567685636405427609476284911940554729166550660290577251552633086174892666768490599280489482404947375956150904712429771067315263238483512723319283358741681315198047515041484026163966139403446505451276405927707210489045500295296276757164591902160118981861523343291623523415853872253863265477886435213608093835711622018999044856504710647162254900720080776420657147296488139395653815627875922829498712175754744262702891020648400075262099383318825691370770815708389677753834450146285251824949284348150099801372715957310415676140638488301788414828627070618009063360435133089520142957862878362355297279977200619867332606804735680900435711150277637180940010254490368161717640917363198691605889401955851758068092784217439576057948013340389701185477092568493021413655128817813620217524408475851142003883121425063023768261531068493799023339741445942423198914650777303066160648450371591122231779282725733538490500016308563448719239022249865313086068196424468309175965533745144884536092948929028532465134433492107288154179490096199769928526523164062907472212272942578111751608464773914173054612692450401046631897154211006593381982546876618436032483334308522048312455934972196886088225114790137641083799348473019152229115541850747272180933780975313794817641591366354815323114578155400009953874809732492077722956019584422869740555550707756575467144098021012167391647404396295392414469447082524595122390763763836305626583738106087762054087478640181775626039225922245513488206522575617114236744177727660043036814948700372625965558452241684568001584780710798085401025510562807419533284666282374166737736387644584083628423513202419724155102593131230792636682518957457090378817350036364260237497243519370521296677738513485859563927563324675493406215288435410375422425522698635499426405868088800816753224973565151075225068273425807466901704551884102814037573176188124446458263143299338643996773235236926443147170939677593685829806512274918563629191690318291185107003368468061444445935170212080635979148125557316678960818543748409358249054459443567658946055776869677776049677413496093929292219673847302375550181142906051972948362640969908462998105701180561717903869519563055222789898947817122099378121160521100191260228976382902704781214516836417663646983626479789902914144554629782004797441770762390077821748163575646793869778696179249187469283827268288044421158118606756842857722270108462658134431319805136506446754698726700165688866680890540174198515811664061718589466938596968846808715563612244506616372581431932546969602131966188148213854335674095483837509928531009263764202910986073192162379800644471684926286541973998909847260523037311808822280664945233402954652476341195851779549353025202143926427653157815199595517333281174521033017587046209199850927840364883227769945384362613445048168763491912506634378151535715490098656929150302106855681404969925577510239405026334644413285341700005695333916529886784778071025109464669279326235858799100013685016517684582472256256832096031907569136608472646038573564810366055130852162190540679325327318159515089272858634341439901707569270507442209138919167130769348693452975417798706689219981690587325666153860006872072336749282867663194219797597449878953550996388610693545851036096013741849726741786990968447116719115885563684947782827938172989373709377719964086172524277629844149594551980466489417370329503828140174420711409006024263920023572468765291463048048170650038292276842696929585901575320096693562251857841904709142600515040125249513164624015709609357676763504200027237210608368838784527295003210851844029657423631298812085868686840347713105891880112241271589644960698066241821321260094590293232117257542541233776954678291242453104633199556668505889644451395176070011535904678123787307101702711927916966026260911384329553844301018592841841175231108165293915692734376577520142844423153449101337603718139854988018522118955392856205559948819452310522735583523887562290970910182005366422334488558309336509452653282895292874417199254445717540440344219261401216453612355138615385326692756866167659363514378820128529747148022776774312854927711808665166757958781211518844938495656362409077780555941275022352014827105731368016378677016480649575811044370276372513979796325425757352040639695588854387948662357303149282107840647780504735110740308314039321485178562724743969934938620702921223735816358433660372970234591607245269544428043745426228253921804392610003679301556853297813042198194496297457523090448054754289753070099061141975990751578626131796407209389144179913919205465412709883076291112361549947672509578062072261077973102361300851379864430145320978136050373270903667763623733371036313320006775916130700699837122693789160095118602255369571658982506945554155793315742804781423493680110676971537588383341759369729295754116595418580829759501387849446261695700091243489114928137542237165800168285361908163693614602571992567471274117391447198268088108285890067601400179384612585303893967478617707090005940848217676228198528654722061381258066062894054263906834060846870132847354024060360829816397800841915531291051683903255636772724753699340580357563260782053802734045819195377454830350978601447060365529548965761765322544674296137589680159885996407396982018301056020364704877952363671841990806105939837921974316285508074674469282697405265029142326946497940464691255749063673695744493122012691638393762389678383818995522116859037501246115297657532498063202229089989094715981719589866123031906586793757490209445713572573026282013375375488187674298963146993340947805550366850750107370301627645311119463089376545394039118938378408330246464419336708946826403705633369702345620398444959950638827998587061274537040964161522357360135314164042911767558341821838231158782236275998400050849684199935794474667654911590589255525068328997227513903356387037678938626325452236661024912677999820875363447294320241547438500186497046641614903939102435439302441271533539559034473961770473253712166997652783367758167247022124048563694434009565274383837040798071967114350635381558575699782082122033574459618076909305275173607993910787145223089575800758912650877064501315893781560608196055213209064345548209288248281975159208114850172878464983750269003615576857406612653736351565443870831995831060310247700694644236185512488669490449859983508856629093836452453318167026927075653163152169437595238649347697247027928565594845611055602557215165598761542695140494475681687146056753162403729372826066057201691636189421463820340120698568222180483815208022391352643733160063492555287356121696212281466103296989403929152218251119137098447962621611806214958106175870906712726825040350224896082581451529351952514262473178457042842359633144540493646755913267571593364619006688913320515824772127303223012627202929101669796441799525188765319531161119505226625859761024129055334236252910470353225188648805754892981490009453483142330103040918176993523464165077363277367231131022585679693331802416177962073648450576983342682851964788761560995557886082381826338180873995221661672828386054048374954792325091500264934771955382409304393726087759253220689965993137719297267187722403909002752791783695901072595503604610749215555736726604480516001373918032602644326264915270509247045767003707683427678250280176928118608625967789563545765503114407337152341282947826784038835646834664235563366322862537683542764252884888075965819318749174857439258723851380056715417963627058735573671015689308078703140722463614599440989666507764809979106693210820317026900514654282066974340069352347615065839263936296519993707948169320403817166408641648377088006616992743290143506099241755763951814086733666839851012252591706934076846086002106836438376159700894382752500216699779671666288914272487551356577970684625828132421145647376716653732137520402947350214209586403678570913809918230333474282108398478114207068232266426171632495342273690949811285938238041673630416067008581355767309687570898392000077373611480957938423743979581669699455866683665600443076360228431829528632648516925853704454265387478025267805847494134333489100721950949471114900636213260256611965590846400996164685237359298562549620237589426497317342352668587825285551367637277460752946530905760299594053025749869052406703800772074384189543085823971386606155960588651867532287004354300442036702563666464502294393334495057640644308025040680446729272191303288093494082205732783653731089976258258066811185168259621947405484985668848807567845863740294098877801110576068694709053961902193761902600826732110755866478054711911754613297176350179168774388188924702912462318570475159410498066259786738005199011373183588425379518235954711320732115054461564638215047374818861686493677131063461753721168550106654115380748775466133373451458860976760972221910025843429960325602177940608894637552403076341533048534530004096680961668780419054780332056749743558144102438017470810180165683891673005675556755871641275946780987910956524120820379346357982378223489233881615945214508681842764725815032793409631462155523012460256071391372176096894292292095665121935391897413047691162447732100344745526684134597046900382832396409272583506605917546790396087212800815178755512094590233424044745392557610716622315862888911275276055747592971374896591186247478312881383242438557368995675086222301824511869500827823135506191416895422917491205664038567517557299391820606190483219256088829447420821925912892137183866963202029794574089492760580172842197934217552731924438785499930556414468696673371014660354599968084770884942910292220210827724856069920700965727710026679743994658934531208481318880521011575000871416529680555637081191197171249853940018045217590893233097087194827784564976681944927472808939586688144736238014253881653790031876120022060004722690133053572137839568565623141427628459575114115007826617138688956426883704246933997777481430395208627945194784913366295306103054828293259839974902128543676922273900021169564034127335128668714083066235404544909469393105786941208330486992010087029688195873150089638137557627378962720422660666635143748629085804363648024303606242212068396534337850283486081505380460910285348238222379429811799567479979651781310238456293230190094345658653592886211862391311626550016506602048034615394212993604638563384687104373603609906596632761210409927021723149171093369820950619624170189601191095621072355479578983168681816227644447589072703166876513179179132673517681178941797202446129966996481023569094990611534419120416072188425574946327651740642919113901056776148562317760279073131819600177104878997823920737271253310405152647791343355990702389824360480562279086125355744829978151331436187084233342570096171140279971248246902098992641803742906676836377821314343035168330378271877725401660112138581728072643838900141761636333138330378943839479752192307431501794509066930817283486467450013959513800926443207625752850885311143508765243488539807135379738348587611391678926700462437105024790188074518756755903250419385264499493257718608122259857019818124554080967556095545261580552926234054483131443832735263077098640807721608826871711474942724915368118786698095189802271399268023615612297413391639038787405874254497858839564444706229463854808867381347924389291287981265385476805356554098433495849109656140217758033131863344382833643823671221063616349692550906532631608983807755826023608238646288782915163469628921302732091062654990746415125467504922767533927256008422210518995731186886810318632719854277739309964004316605686328802308383957919842316836258778564309265661760951459706529146047162965431804664321909532863538990577098524176828464399499894722898850387345154699780608126626009188935845301665268164264396551012975482711938983590532947169706708254405643785213439364247129769644922192510570091256481714855108581917279326762733760768362786458859934684063169651968715922139089432551259517764417541665287733510287915824621314947380109092507502882864974125050330165605877110207475551295294395526767229088367841727947213710430495788958515001618885996266254461608770044639804976440757479417192882210994621836810453240403212453045281616334418967865774561834975000872416169410180102373727315303758074007023043915999551202750442645066742719230021641490122523098889253331648143262253065941036653133835913003897603197729920575451083858273176514760978604896690433152125018977640943878382167328552277672585633241354716735794861205272663739890592031471069067472402941984769783856935763099325044705125136508713896126050051750683057425873099680010197521371655737818333565814355422354497611986280521887335653414241368274280890472540710551439967312511933441593372262960498259794622442890843375372516253804907271148554502728002969061260949188888352747253607723015476124101366414748504766250176161876729606652447734135470170985618983849268343823013021230159881736340043430396999955429679138897587537953529145059418468323194301251809189402792751819482890448398486803120402503911472861279417679207867921284395232729627493692049918441548597759237765654819194890411828245457089671438533181015326777683376841260851387317683798838378738681633857409845368454167391690013080481988232645262834538627124929445477753591154695041480260468590644014504849940742805486279409390071645862587212773037858366470913194379895763513679960874846679293088523991288905640647233720808013049124923333019594226422706697391742216172870441150052863580836304189167805173868855873311903101914387827961837190787557948484140525267844211035867802190636899351870950077340783291368861735458335917530502368330485845885150727554852458170278903151466174725059368500320649301826203692475719874846687670052825753531745045055872271455921038637275200424593133006942198690704407473979292775222526694972668493727621563509129413528137778051228395598655178646453711843541600437782417903391844411250144769676671478925239692790665831247690581130779323462417134584277245271488352543364313025094814505096253246501691046960929268108972867794781449727694142507085265097793977721603058107414126922889381878111911644007844253233163123594226555450057517718116110840612322632439919373324148117348438924154647948800659297471365191172655502761128331032206489350504429549101319353572432950869974156657998020357171937215791046479738057126401470179279578859869548415165544222855618033389201455545063966315302046702367614033481008186896331853295411547537404367938233882939217725057637087526922085153107077999744441646726227185451163075601383632934585089352276151637111104928831840004584303840047133765264680983993901420612644362837928213437046569619982346483084926389476764744451871716870993970085716627828657844443490094887789933524662327198263714063443749737960287243468622706626336998257627308853945083539293687825500305332923568124085047637016952118697428659288691776681908670438289767118082724945115370296701285318613322512255795321483198304891286743491324128096149318830657722951362084681990342058733834904420008587429452992966352227040659886925544948564300480198534754269600201048778453951598738038823086035760361084146135292337263013103100547906545095774467582409807645237756558142540462104385627568126310674463133860053893990631191297317084578214449468191677321452645913060340006805486359670448362856728104329601117895503984696620091132941929103168454503146978403632719582597358088133911038387801419048738517259537214853411685461448535189259382836808035207426541429775392535219339444798015974321520483523857980802787706447155296746147530200612066979979063256861172622970995680429904686739254356941992617548220417278157670890311474294449821938506257535541065081258487410042435618818199534084103484157407888126407831489744583112347584154211736948237328344789757157019719391472725652155121272652730692851641257596843975949962834064064315155979585547361222834176602480182668248597812918835881747480906076226007847696820806236716264278771554214942420399855132281506482155056283594890798275869835030984768965505612406009192187577393068824387881588861181858352599209632139227234570207304213160897058377842674292630788795167051149725701179434504463948079321080041878733895573425800289834220155977841366209092017401079983491973651371165350427308649403120106430596113929923672933472346093306324314021478121249078852687005208231329607260994767936812810247764569999654873611744913511038548596332908588004213371792463086026778134889779172432463093854820765682123819816689872558286556226052953057681339248041691547397142540148347510045376097353923305665631758333001335794195817752836940673359492877245736933968902977293514138188777682932020824815412413276620378970607261002648703869658943916422436667662326249042842801090179287158546761624904466648890807633398194447196556604830419788257192850185928644787080023956979811894649082151404048870462576754429521082327382695262126691785727789927884737184119497866547472002989147135503690567885457312396505817887303648728456394921118862242239240763689795232410786205997828902614834093736727621424932563345339592676934351236749089845270754176820412440747030827960783395539463240384978957182948499837435491860466337929276573250901897618498342899337747907932174619802327232153832148028403142550659283628949285807550348019759638151500093238875008704599177545940005542343439926857228156374946607317859624891754792715392019484103250773554483636126981825176084053576966473632909529381070488224093273805807024903614111508510559272521798926988257800493265651732387439397063253405613462226222098941837278429519504171208278388559161830183263181606879182583665798805403018547693430835072521630347655880854692389695151651734110181359647253695108065345628952795610116756391965744488390817881372646012911774377129180916601553581409092807243640667293730655803191429770103912796499950540791769859399763971499480848481772930589953573185482527980539838382935679979342957678030288389160302387200109267676269447959740349229064638156104070058707877879995476118287787948634050236294469482843152777413643778013904620349897345367685366834376940408299841736310900611955184035372290152290364242192642057005556993962824553480300514685288950474971314547684580715473310836783873399704792768174057199314090876878366790987305722367543811247772546878950426831998839074825276667341148396884174411105273990974783377932852635564284833309256985060262176978698415056289264118366178615779983203411955172689029206741851562583731985501733941456608646395139591520561506152200331985223542796379909730255477360289476578447267523360174295041060752028473344406963639080446445505010065879751975698588086952791655445794752639740657962609094555123890153162612331798358066108340104057258559914981092261475028059958337228944931410280166232452941345794723732675885911971049774197344396268130003940047460272671945222262990192420832134906671803237367796649416637483781614212015150976526753656501502046926992407817890193038664918337373586028621996352235592534075292284116564109888108485964556481993410127040425243830052542150768819228475610035654062237372242971128747667214065965188370875149443405293328050843624003282838324757969235209149496490169486169515210604564271570974615224920923493510290308138889603634269451398168989043751132273838510995205093766559487045926912630795083135957260460892817372269584888504437696384458986733097089940632470338629353125461203575447915281794477072990087846258874192505506835168316901158625192120165807209163651848896042473378197557844525980425967587158127457907988090380300518198800966003235360304769845611551558594824818457415370823280141310959120000731373726145688355278848036693966171599220615913972892235325010774906372645599500805623856180766704856074966675332157871828238558884767970985626718771222610163734973472621426193108263954851741091092988667528403183261231889280715759576523594479670664013007389477304910186604604546334152581666635128839079984759713841259333426434211244390235124047338511346058810101366542020713354336440750045372344209039327304740707515389623906953650743013610158303089162666938914297995387156851686429854217709159600520417804843989346788685027604530936070777154196275004937273222638125222211379288252555514539289155842454474621389983578427180106894330249494354718886530605181955521252492746008669007357885788256001488191153389938097455065166148536673521154991566306450347988579686357854890264724974459315329026678106897082691516786260794879703926162944159994454531403990356463628675295960133387493557780199694566946942997069055871321049217244866516863710701825617285952254660879881466437340920250901083584507758902992761824202983660582414871089074842237422378083609090608172637081116218669382322492018916291201531771735358745839319551608320162083338772932645376581501579154957096033761007931742356328002356772932025665152196546250295873405486509204948893489475648301274312493576336327848875054283168086137541444865673320969836709089273675768452504369576538205900090540268441222489322576858671152972048885090281961031147577822628809450924910955613297546161359227943912096012020874744257245113607265154458376273239434946022686394606420989209299250812258889989558282272448852365698289567822397316173214986510900433269652089921862031839934016678432390243493953685677082518876295918198774206237039002825677867237056570709310134492436163268497925751150047737639940743007547460493129156021401640865322425398806816958532692014743029227198648378793686818223531131154295068065739349105550197909154316662340875560190085415384009880776448878349029116581250290453796427538629660048011379076490229755003669098102007267967471858605463379850907985857870754781119660259398170756901704894853770134519286663607744194892741671780615132752853361797658741102894359517430832569951158880899742078430147808528240051979624691216913490410979529655194362074872408383888284502019575918009312152924177880480480016938709200595253519043503192776430733242750478891936159320219768438442592433114777084899578836148201302678314460563856932094881863144874154734714641956701679269283489248721296530254074170675709670665614530269335036508415718066669885481542395472687031721801611178554022906603544360880469193669521587130452518019984274924010708607672120688812285534228592713981282249931126023126238748501464500761005150876943100243573894988387872569741530666356609791772954698204484120827332625802857215219358098512058997007761965517188384693010504764980424196727485552019887995204672001161896326786479554410567390493735773871245587483018146421850149362393336042753977420441725801430366889029329449579564956910184530741966736101323912333269460457831568689416507682400479378005298634002938120662288959565708591829747703035871834479659906505499489613716914064901457509384300584457552360315085522629897126048732660914970565870862900409116796540248749925082670054931656025090171832313312244296603215453002075451086627209399721860973688428462115590148161022156098268029285005371501471422949514432986929494023295688262033986119784594113886873207367648373573346223058465176230242517394077913436700189967847035698582048420586806505016452842977135624076784730766955088275495405714855852250274516501250111462193017050574127698810490130075938499586178532333487691883330737466716673836420626949667392928361761816143701309077987137386500912391504020751866547795259445639922281139956627070804182040320537395101481166656293927055044948037584607654341426496530292168812867219226679754698527282604817362326218360202312072063985484538998658465438325281618102113196105987758599712362385365882367479217520683329193517857478759978940706413087198562580008484231655873069678260668611191312059186127685244135545053342676194248604942115419489013789931709907634306564561651108730761610459651965642023406208692418439899739907513110592058472994873276608263610122656237954846940854417783651701542046250814380067121616049887589828797826754380822530478428921945005360925430976566133744546262840926737579703659973697646796559593265132070164602318631846224971215276988922641089270056377351192179630965634851841098713360251645272345050693899314994245861755547892343258636600521719227276568902750552174587259084463277504202570648145285392913470232816284435160592974570346623517234603400568929049985429094516821959915348050928413271755859227389161467836040635684050714444885772584611356397493736368877952903473263601478711505697554790397492656730578711841561580990671823127468603435351753671712201204413509237482642804095410499594851928385589055336010652457049482346913030807645505783233983583161265992775892262379181276390287427844945717250990174510949658090491979412565574225491135937802679919135894301633392157052251613311831334576082073609452282542532039743395353954703222134728767835440555416417499355321265483189439314381447860776089884735346299353268196973548971415583985168824968411494648114401827569061690123478847142623051130670989200874773150532664263255969113860147289046893041466610725263236358702248081288185650506728913520560126553960969228369543450546132918738085179770487464952550735619161657410197857047335028948114373374543588593500200281293961433139560201650390969522362971923112414824521822990205393169765991415891236026661141771775313971639610603120171250768624634357106454090318245326462850438846408890756460292938101492766679806237569596006788520942906860556514885357191430631062391073767674417447816390915073447918989919390985974247815509574321390520388558639221141844289572069925244952150465163201118545929398986104685559609835982017533536017764157387538191880199712627984529002624614672354008050807414989322583359400266143252390387172042659030075458855086700981306421389513368051757897295365690918627794049772271054504579961167733107013377472287218378621080426320171475309164833901558049405849522052045917198750442626672776109375878818888156743616343851803489689391707714182173432890167774748601199654696147596433696325715134774934404058246042676657438227922907278645120999327145558369625844472069184523029094751108408697480099385668116790320502829508381892926548207808084496022730017992389452663220155711328282951149251261577613908643200490940081949178574869728161067158813735601281138342314027167271500199937107922260568203534919694660987062765776288321611520754249087956568659656318919498231221700528021430343502841376602051097825040191985371004890263476728328345164196086540687157080342428616119669770737602946879012930566813486216615696702872752438098173245423129323498500635888991814967215774254197694773346717922247798894652417367397125053581662838161986750290445791969580034127126735002128084471162588063252352241327646042100678688576145459154457766328291229069953191489719789509850524787257162108994855570544686138489763446846351058853967818333365921478750259259634372787997127542273714008758365399598451853275453117878587408427233739662964244748858941287192157481257126872047335456614342725875965785820367672595138063975521898552144962304174842028314557870058662595996276892518652866618069404381317489142605815227020353555360170981376972575991303970692206594868922489202163557297969691202058074931173763198122604700638147610000924722871779657508318940593770301147581737896985355477954982058263783664480357820548249413766199185887547050874511905412795390757311685871901110139862082815116831542533228880544243651185579072622273776767428999202186858039294894209819630074836438203015328015993399572903734991745573924442623902837549951721006493720267085871286446686442203908182059618360755805954430459962984582833342591784081807123962944307007081423604859667195830844135418130486123113769269882583571952220083597149720731185275515863297693932882729802465865605698722300803409719941468620207084972243067871421080544401071903430148119180035578433903926088681382740659041701339798591606955435558227385960784743003039860063356010017631878855630734641336069358564733492816298267463814093239203656985293751531610240535637235734641873938466079344871575313416552586409584456215892499535028310863816201556330199050715944798122827604597356308947363682356683730692152396264357172084625168026925406252873219132972874975632766550454537583827254151243798009785005248869568950005828611353467298571689789862024945977383191379586191760126944901539501413826282821669017877306258875077870440222896085399206191226245872600565524946584871095629025231708780609554613041799053663329689397735724604425322381267999238984318206132203202660362153536244149004304956435334579996880521008596441535360373584794881137118390587762629914834377632687056382280628862201073526979204289031334666360379146948324151615435577370753038554068971060032081195311179337798453902040030200865927868068749071322747644180590179059459117579845799832757816186986024915696811646034306112804530250937283961019332546117677752049586384277477677135188535428778976598898110091756486436958954171534668935106900890842088202306712600391408654105626246736310666375482084979599965452675438529175714415049037013548673526531477648495074265898340635056099227794198057819641930178650336200202369228746905366753560600126158519165374159873853942554080277975131511565112703812225115421372667246229030413361520735934047106059238896905853258544175932363219880782417388610606304949381710648649699656537470850058966763360068678778997129418455815288686366369777640863123265055305943040777150376816237177296693418621446961981924792382002865445144010977168649073940139262153567125625420510784397426267040447617558173325537111284086953869236397265481761113533837399932356221351139802857265738220659344794389266087713475416643679540027209544111359665046059734220586386294122674685029222479891868031190616529402865743150324478150016639826436263912965790704303831410186313776147653191663223547082056068007869952380540331725684165111262902316800968184944395606331410359557954818141485798079736964513651636160624557837723048411374495593022646718903026825671934698800932533684529612868638730190326279370118223919693327603955175351474653518249550669342878706463132676175346125733302100917323710031424554095253063687190547721674676771174129899200779414644624302848570970098236227584205513884216497387426439800563403349885269225475885150945073463529109495888353388116444038711335672097508251774810742807094016340372706400858054482053307487927825688699386846735045319752715586277149608238666056092014740644428021317090540522965485859108008934079652092062226251903365795532889585339444834527810507282144261408106356938637588905307392083500939338229483271560760731850362468547964120747335089780912734659321229349299807610403141017993470474649899771800495712719055185549682455095838038513016756077257591865021705097345930731426210499340901264063938877928093548003619326220551080410274691397437783091956716725411894471886167673603766730068370937584777489473562639130207728108507246119749131697836886801022602117346480595931088865885058930103794302192023766258240602576679225695950495430535161741085042900570758354470842099255233339537218110890050269346905982688960766185169727224916034332581209618731388941052226337780558264652539581057186667097535206548662736278773756655165340211923211287340942964685254520153815659452850689059841725727958552875544237849189924903991566153126951838496523653450351745189097158906968242488843242563710362565788355664977672678972126557610586165395726818904887711869087023182144057925753394943431666575434907689418908759298897700366870196277829697443884254060424228666487674715415874876697092355747525680037607740465797010781211953420482372478880738787828858032049615394099720334082523077603436457888511499068464954931314511949409812442044515482228007099568494847920142004086809754628458342842829856598770385873242559341407542712798154892171028253186690934122050646207111101679439224338076199780514997917648080118518524614602898097435481442041365179575831495640432649301322621682308621598828101583361382848873052535935428690048939387454282276149654111088224940035454601329853538343685928848611071062379085318243958193600028273787680062821646543231134629567664379729289284678107676239223664836234463815211580419654931088266951469258977682286309370128153849502929383422147353677561666271876933012791261370813490979503403381596274144881408916727456923390133125088328328550588532278535959984554139190329891673984751133282741792158100905654733511685744230269332005792285534789259734385423331757558312076071105940613308386573191348540600820718531968971800388473989134490365103179830012307181853242722108449197266185322986081392980806918942657300984861778042630977869043851829185238934001626108353823395708180373077660345273969983652636146304844390842807812775941039191349901215248087107955864979651753591029266946107907767706858401559122550288102791839865891693820309097970738332167482848623078219934855902240286794030477748932596472417320404758517752016903763704007961096467714437587723092425616071535520754424203875986476012176433593246926959889177618935482105746989309024705644556728895905038715507792219341135643696364875345692033128933184752412601132447067593950568483436664690204204376277171101840902430649973264873000629511715395591812563760185546499822076759544281991182854632532359142862404000882577798084229899175607326328078378579415627054238403650884405393262088917786315304058133142398725169578214273158221501670973470370506155311509014273912716113156478926997674943679508182601656446418723514879395580403042504078815233962788109528790428530217893310253381516277800042329050771988477472166013802740593737824870574383133617736358975702101821929856310329261161723583282642353809487522180824404591783536543696168224368618441135785476009287460743547450722123048058669901706764987880610895932605610856967029999749785410029065817022770846381629446976826491859583731580844384959925833132604326204395229390545479175067693611495846460732465375665067881637941400104260612107925403681717816189012715316233040684799539640829957753310882115072452843047061603946640834220508923295796678516523143649984735731625482918871529586688356227336672278837661747463106938447759384938646826692305624495714153540088555112061144212621356249079773425685430333451786723047185151875227360560301336655186432244362689812903545352166793709217759910432692490285717296205275144747105449204169106217517609021229023751646896645416797681446313070864306139941390645835511200679362150519096669130305590280829243324774118328776439233844305327308738455323650136209682331071289024623526972127387259475498585166882679135028668729968036119797758867341393897962626764930061815931518118494002230720913891758887257050767524522018770397819350746357073445083675529222083910889464811156100853993502103886980549616513757931740814702887610053996233467886922990741942145341485131713515069535767254063946915645368193781637616285532618536276834741650555061546888332797177233983321578803608534702213334728504854861121992113257812346803695121106976222251911229316001725881244110721886308467437197838912090426089989884031029790686779672386903317431514447296671162387995253922226450501102784798289857838307920924220461823357643833948036800649865567126337617160409816378202446288566202296076161922706991081129703919281905578558393201382222421104677088409536746915636821786961857494221045305305618517982775139149841473917376014101032099035605468473183976801114859025366776727546222680259232831089819330454143565805941819678702203460181405333258311202811677664286081118236292119606483320511282447734147527708411589096626655049174411310393550929453353186482306190548069617906470241305659579431750462127758184916133426849080904842085073830716999929375530822146019410824740348864449568116111504870029928686454344613425924699462600823380902172391691849359507229851047818248222844736137617279184308215218938821775591509895901633750444713299607078035418318011045824271678847044280993228099589322921225328149382362663448316580533501159719271246238914003116093752140922684404270617297047679948575293953514956041904249313705783891781141396192392245823713453598351697805292965311558903796239835606768148655664182634094464666565084259902079704933966206453342725102075987399052444977575696496962981848321185247663001667716938168881105580333144497219300253357713927247555719239035334263504895722782328803305191310629236833077072359925863812810812376435364742840444263337288811386755849422143864344204413907684696737911887518986082337862313766944002717531597473893674916885569132654619872224260121042094725412113267063962098770863263826475227661053802676283956958008688355810468520184202174316835157158471673763548539549417022923555247911018532739171580988319947016562137277259190722110687665196740932388037712592183823522514486125146692373797255858315286207031973284499570390727128321566034336462819143863002941752112148752738949915757390381151320411563854746781761145137706728837391321190421594824843116004773913670519218411284058645736353337743072091261885961800881340691240856900907180029012339373211519109651332821375924328206245247983973341000919554057402991518847734011076794404549512521780023461305052816110273524101202730864075922188893664566151116825654746668859034693133930695706473553931854180584718891437804505550588067192404134213658002360607001666372529343426928483149676406610125953928517369826777625413460769073731424077587224036509767750159112163406920479828198907578079523277994875320343152013853376010451329277994989518990291868014001239521540655775271018229527148145480791930710955077040368694424825066301470451077316561849908533172877733146175458763729625274423742268145341597653449961955097847225385986115071259453232396615594053942348233453019491730692967916914067158122190411953617516487994217957085726248980147164224572790996508011337694234850055839006996202560251014000652278253377003627400574226040092282539504948858150068353067975543293486418031651584697218743022681976080979903195085613441322925591784914578639299925930193492470240175055836694255417367929925479352736717516426519697164176142607113074028991025122061461275996947630989931054223351145130933529751909237455837424862752218404221597787376086801771618475110643813558797408593985141628934422445020474423890745423077436995379698538743096499273524614798233923201485597401627483914763360976716098857756016613261465069997251288733819772397763518081496639277857049394157177427329304720220481548519527127394997908117564451172115868828374162222997629006338592968367857148561029012091628211480798500637317474128334129464880079522295439973265731042586561769072582965963145759864955865584912363325881368428241071186817017111278567725504732355729117710371285778568165171840525076320568169190288786581294902887416355557110397262345339420517135224422212799844732431275966424247485987894243334134474010090342688397587660877722730209274443530578022331869736930082767924771920901602382955018830585656060099611158674195700016439929385745390763558919116785444022847897873561235971644563171630587612603005847886211115629286056464961351578541072461775085908694240255321330264771697702592512143984293297532163567376228999251631839392690800160763721216742249338677459064447494778429339990637881381113856691883828372680825127698020571323471914477168195914541857857267718329790206545727254344881787567234611483732939694190866426445792741245241912760249792283512319988369496806569603341617288262699933516563021538911228284437461156715956759471166061223363927937971403273017763614578716528054943851962071510381772204465597718992828897654602711521637589389048243174928661582027696678736899492758815369382875949638532373059045727527583755390914961597716428990272662389044595024002492481675673763979049110875572186776000200180352209716603826933396997348005335968976950595900043122094123082216867949516014519784306909347337043111705362678651324001772044790997784565531090598872196605262302139286464034203527072652938357705378961039907558398202909224385770181594332877913742377798276814541494900787678686118640872648719944390892820347000615957617114353259432442295993943094794316492796942486103256361894533699856747396448647324929094544863196439748462010297792558337455832290009580331998022371754424735932750426476897466828067424692298041514178864217158429626492932568599192215257237361853895531143085054707144598484175314673719063847918182284367074907252853150492527049835724391983428706628126600834029627547926828344938594697107931613188609061945672630900333141802790234086660226738042111763869965013714293996878359497661501309939977279191183100467509731010548212677170868586334783616574634794598810770798194630609020863821272094265335954077604662548854623031237506626464080278143868483182509139510643129254669322282301747520025311233489393938905142037450342188878530594461102178337766314279882935561740147618820020916225238494465856796724395155992636914742876338883197173587532058439482200995957784433161228586452353760527477111514072473569275347879246053232765720121924615446501354119980269022340979007411423626278076798418478767002014065477362221509746351744052014993696236521309437287162896028769688532143714963546410709347827076925769238818838809190572737396738759334613389220445556919799274334154412407311560615750875032475901222372651042821882669243014453078509420410983429647074194265021199031680827045278355851431980317519385087675308338781365385086071524237182298001781687089269843929020655488502832377240362040087123644519876528561959547471141872646235901478698481429515370638781411562851375186475381220543491084376571027260137540978175093110032514884506653132548714461423699523951768016906312059195003432312079301448481477507503086884554914755380518637545415637637492249695038065294298778058290863474755191457690616867752865622565255901997603565398637903013711529773003029597314571228787174366449647304222314408463266442212353384305684480081988235105820126092941948954369912634029344161572802279243848709617330533363334859259174192091838529392895931359172662286608405066178170988600352299792413138011952525815919145787712085114222286964588844317349316407052920853135521731449444692024720615441706655658430498715239586467465494026561935428256644095978505756145392139728723601926851474986481378445117450780802270947336672023691499637380097380377646094964426348568385442176451288799066964429423736917162657938825063136817417185319209453322930000637901732544595162999228325487398028506377860623601709359434036371768785431965040569616860069863392036674512703113194847510213023664805002521305035222739722158322917007899788107611606492694957763494261137003503334250865514746996040027787290302592682605692602744319690471631286371554168158472968249310455938725828599504458243873010180549897700113979830164284332474449199786624970332132399802312067663054484005698694070702272290465716012681088714844262010384197354234254111030713816751385170425954348740861145342941059865181045705084135988646564365689166044489284542499453001003691346580844452100852841532777332426513317137451141997067470057960748346281639651596157022353795170637735747341239352708642473516608057925945537858475290586346248052234748805109621220234087239291795633573337922742956371379631455574137961912957781407833318566696910441764668299209780727008238473960202075692720931745529402489922056672137518046785073800327900383558592223023599324001236828979682893881498354624787835566657628697983053353340262253245340860557842818545698379903322355039702192854303505843521243084321904203890994283600226029693872729632572526039064775111959804875088754797542800481201158526812500540770426509230387370900386793512401167908628585617756680958339079349899240955549760153643197095689586409987904957561416686594907302691165221016056049341818792015568604075557780241694218980271624910987725296451273540549678581477801759684542950939700181403575655401636791752259739003189085401513108780294856521712893542175665232502091614777467254426210771138830959388833583686579788671243128351702453629976592289808332665192746364465714905182234052758361293241368815836688784116865310706097145132482483063284044875240466539164578466744955676068372344560934301987793275736917549969440988258582401747047532455968199275477892502566054430659491554503039557881685933348084978027178443150210090627036301072274757339456396638411762032399532983894125708337808560834378224437468220082875923958340961070203791199382801704057074891626358432251311708405273395135439267115694114019379224252124953413737224600332160245468047314173908211628158399365013058521054880905423214318411275955861149588498734711635499461529545705437174563164146016786369421061575448053114168978506379696257894431098048127766816376977031656065491108686391597410550607184180471934174450981696123897540591152835010783266378927458105073237857696350597750455836932648680257650303943367253897224676488520900417985833538755132489291660789760290364751547660685868280804403195029372244979144558359750711425107639300322762487784010339788285984212395565308521821617911061663358413594110040319390333107196515302572194754373944711419400588226692619280354041443487794671318730721558581547402713910577847500875794922056372057190283658966722032840295666774007689425602366362001932423147179329324240721926778836143115414229008233646581790165902995490088150554705510675300647290537637505153804283333827004325064857711844109558960263883876227166980681727183832754747841880119590034584623410364554296033411385576445486635796449011995164620142201203019974954409287156807701677474768504169194256962126964731312785869919335758572141849074484258228717051955977553775584840187327716905611697227128734589941218029399370691271601987724241187051888629630930060145733486745241393097726196076567653481093752834504590172209802941798811859509852824223460172810509776950223280126202676556131614718197898469319085233894685560041116980588996200519811423745197385842490946199983139638074211329587034570433384084103937249986927030108494092032396683728156949292456310843447706054144589077509926268642781647966032935431716233446333361144692137106634068540492079359954351089137326279233276738613321920009176744556024314765921456643361940647096635191753125989209162153079656999711176413198372854034231457040567999637668368515137374593554257703078616698885646457134419879828592904536887735751169049123117260351319978314258531693611608424121566681773785547421774569841504771763718602266042270944618839519031265951773885750881724573652773285565298690717267837049671398552126661624884600635725883943053916452656429943475329532471291600765306541373749282299810942156803450261256848138199522407836629902555508350198184273149896617698305785668682372044889062184214677639276333969104074038800941526136987812290154722472924621987512495330218824144822476672503951292062162542440293519581277283210071749615365786115003860347203598334518924179433454322952103803816391597614913148618503864507169901618144298665585622871582107180967734827835834631376997567823470575985863713115393395989891150721769372568258887654492011225244657568063665078784663183310567273608203281206680800449264555608298930203276655133293928838419897327300328477599767581220888018443270429832200029669539951046985912000580621889877057544956400151766064248547625117295922338154935455954826772460611700229174987528477628479209009137881067211855334468672927332409344043672988487350504042553748875635729862037189650050544061273631567631098124639839606774561047603370926280324584080877099095373512224385636442691449937974047221110860252488376238089753687159735929389945293398170656574113984299691909090459063908008852284934890774453156507447572076019585435945949898416293426514658447470412208376337355204627566365797636094771983114132791004743826332081262992119339247762973114614377931626644540353553344847245828145793637160131790313336411344117998208329608917566915632088421998507395490272760362908886591311201524538848126972962762980471495066953660597885371432477413993255213698162200701530134609810406467414509082876442021085049626550526959994441912869145922718135610426350588000685016431166598602788582406497365478800510104459730917882596834545203141574161677853454364985863333116439983940920001871593358795352996293404995597982972788471665384311776196437934567960551115080392786215217255004859999180961744013515740819935537681437708376647770059023339651660984017407106587298060667418420135964664790739937731564601449289195147707381714444513147428749671792290183111585840843721483812699753924033525639146141563982453177129354752154966176514227412632664866129117391921970458691524463134401427308966706657776596884714489628193283411498253932318029062036136811754498797667529944845240671980232026895230809628680711443276272622269308620615914286037287656042095569670839164790271502500517319444028019398516478905748063929783180991255936143179467443696027992912878717323344985525321570544082609249654964708269816159634621034628815128675428073678919387231998626617110023072900414476816500272045837725880820244399268511401565576218539016496508125639346493704483281885614145013659230185427665969127450586153475442295331188095646056885867894495190664111763086786628159394954494873557372670313883311242323095240034279133308329495988949136015853513459675456383187947821122381118329686116471180225962545055639394663950188403149885844527477167777704098526021329061653913217097669493563848101378066778775939930773660674324749015099993032159886822271590836547301407568581966230089663119335785786878625726920270413348316886856080244071704758373728149113668494140861206291584584090707305197805029221773975998368293334492347459862729776291661986016474053561161612480246176907381420602811133881259939726535904662833890858032985825822093844228802859702076290326829588693612856804974429262489296642416344117256736483411028518996749843637783697160665310041174533545722136793045645335357335533248852896695430785542941249718341836698297733331292248980602363020601227182943551712103941828411964765535509248393983057557801944288231232668266504519235736681499140859110694843011818724736640538884912777865426160498451140023584930880644700861856676850796713857535123843494009496489310914858668501255690077285108634359684262547308079283398161744789038602930552785320178627175397649902664573708931058269963932717336977671638532431870303877866914364782418904067196502828825628720009011784927156371462397103441731010726053772099863227643188987419313502540267929850809342741789522415050432581694747795059435979719284634316126731129898114120041006119540502991148904493823866106617091394086485069572524196144136805005771848805896718649027536523603492556103345307051902642960998400707058056043247531040231713605897731092725104189452432785823510941314703283057106159349016674085721102529538644162990003173643400599270875270795927809894134938673643435788797270613694510642332120652182099139214194838977290099035003931493838201865877226784101751080467526441580379927176398494456956953349262564599835869155234050523396815478512344735147828216882994829203419439434780204657967348167872394620776763823251124246856177640966767209931594758704190822843104980250210184333606593512262538947468989428061139055276089586241181747918163281849358987299094537042761325299569727040461650536021544531784862214932390549405625842822495506951271041893170949039111733626013478875301562079763350707789779562731642999119286563933897794094862347923598034205930516154016436500497923395279941432788520826673244670437995432335065057392738509476744812084959897564832296679772264901741030250884065551890283239424197622239944310618671721772329219826384474391224580723757051414112450924386790334204195231972933841187900799829129054662373021066465535162546503945275507801529507599739022018242917137686354112147294779167444491838771634899598276292664895592429754337053351822465184385671943619148456161376862211965494458265752388518121983967515563297246789686227122743133824928205122702091941280633882750383416184606475257495972334084662446592611562453578915978478170521445526655551492312659570553963957316684367335380194669242137595860559347925305805639871961023020502846203098839103699974529747271687301314651303070975899553378689620819494479799048605094640433305626290804194992799943157946343427144982787718172723703947527742122008792513739624833491941985149688642887932898799808924289088218735894596761659158122658658829123571195085889392950142999404192349748679039516746686814815919220817457575310072958761348691185601044297323488499999345768834452141103575833592422358961309671068369556767420213816181911216373991696525447615080588879087873828168178802240390605112988080332644144584177556046940362445316067109451824555832331789741348331116613017591356136263619714967974250065635298187479022967187105724157066018379504928159718113146287270772905900702740476287898105007032829194255279432748777478235361649641237205337207590559005633720606339612257690766937308571963177285819666331075781703346691089456262823623314014795212290719514827649408031763069548527769575863813225795721350224989717465534442195175938439049019309326784413288895350138855761528351993981741909920021294792129267266215500180518101450206595434695278441399914409793088588353665043608004388836857101999591974366878978774927189647550539470107828519513851375787251188586289253799495423885531702891301750173534610976709960483489607203105399914139260907139201208403406571123287922851206271287767893177610301216711834736581556652570789211980425518618078869746157021896575965249189479410367137431882139974211101882427022910400379757854558867025280371343203149557441631633799756050326807613456268052898884141154174940445922952411509219608796091888803664477968141208372427602332218250488423575300654596027280895709921816794915044276343115713893321977898587531187864827635093948068788511103876819578460569761466006051949840661632412427234766712503344466191296380479095850652695246381320409362497509037226971002757034773092166382988570374779745352060387288438962288148665865587578143346563513883725124485592804726080890107961417142059181293883869539434502504430899944649530847229064182133925458013985189182837016574218570264767637122777518701884158113792529881468718889253163268542000001508993447109686482768379811412224263319979058074272311659915418349048449069072126111564959649940625445720248416759796923895664926786713367606444168694172330449905572558504706329932668871668031970703091228973704346807085787023885266051111852399572146573814440340721720400132090982754391359026528842329417141172342255830992090763345497991341685884379988913262159569972817167878086608463061021307355122069871099278726352795380509392608958123487391537279463764846807263962728224704001009601622333814990741371977496351847626366423613656911912199223341196532301561241453843073947017035804038830792455719102216939292357833317377099573993106617956455562400383161158779036519409384950048041647257125535544506824783260500451074920273631682248738354138162567104146625335206546315860496423889217846235027660938357441675166342648334057333664092597986884676820405068585457071304401689902230054021353437593891036198267329291763072454508266091280586061572586997021128623986420804542210890020736525296523938680543776768801440461655071916076086104810297844519592360911877869525096911270881117251944718507311407818936657195648731318961511887396791418302229956497484413771046853358082775165577315311983258339431775771729265054462976093661626524996233360520394568450579742399748462759082300852544798902542644739091480735663480002112011286588575577031926360392298618869164224967634555105825622730030843422586942913589410218107374971992947574894853786904355594496699168764693818210992016714446525937333386773782680059486353888345174850501642800674997444990354550172073301804615600878359649722919553374852675593287689807982710048954819441520995693014779164028433577321275535299498818306238951871571056434929348528907370128997386635351226336369549669600815392420792471515873342322321340604929061367143100308909647811804305874176660607433449984773447034947308368778822880576336281693142822359809082898078805372579914930687274180154698208384353488597333144277986775072490179790279085590502638326428086936414523802356949116004482706001676700259554820137329230698294009157594087002835839766447966015544598923366621071044046984156977555523475066944378958631723866644923232095243417340199834724012568104391839112930905565428888038637126771493876256492161144734524543658620061156996846550422195515677140058150951205177210655426102189052744097048610450381361423054067765603197197500148336497758842042970520200630448485474710123173800618125776490814784364021838855446000139941135560246291692808119023874308544637201155051871587031790843315252962375263263282517192173692484699898124518060921174604728165470237464647539630213959529910444061513273110941284412047395543698075309196547603013889228464591197598043516583851090774543542503507035594297981715136198818932990138905073364330334997440721041038658944110275659959720205971356397771774214935885192548149049860977742539100954621572147255931149942068729879881082454237491844171456113183849527323285301270255854659289754171984709659644503416553571146067081312723866722153596546115351670201493552674181753619330883888550592498383264664808807374786560394149778690098575938089698227480048090426142635369931605931669246436752093055757506473239839453917786752700784034025794058878765369692728059776628951437120245041536834264405826636237445816828010804731114579838836283992676942239649907396404106122542912989071366552958908101112553038829737593725163461487027752022326968850300199720331831397328288891745426863293063898188289348187320512794307908786708303358325286211138084236400031227154564422731360184337458650642673672162395455615652970486300102489035251793599971242452484397919614470543942945254705356138164506236373968424295090459666724195067598477949639873473486390673601522466505259326918451048455052101956360996596515358519821179454366680339822099969906520750255701657081074198139170155477494219537480886689921983763220782012413877438340168640615224850376519512015973274056363509173134377376775271272347252189330902994926948217782629824327448432973721983195635915902412614122348593683703709655199255534286788222305466161751104983289596019087762326538118546483550613030294662682561944758647795170379652043167781342837742117636928236910580962183076035858399641722449507879791746013865441052014464202653797967352061572393037221110223136127058805531568343018388779337016760498349549638057763813883866428475205247946315895021708188246917655647630823141924813870536972656803575122931200363482734198955152481409889241842796297457072333082083429703966708379592396459346029884550285934204192613509417278506026536377380220856893109800787754270089181440743015541235997928929134757247094314714291050056930009307365380635533884453893120741852282984527489359926545665012564626200487623008777534133524958729506062708201184270085113495250880273467656172490469773389163833768166493221473040748545050437117794010582300709952645229105764578127715402523826877049991023970559565913778266913854576013960239308178402739598569106746786910130169803753857193560122168753179672781999682277955930650968165517080850357748278354804932701920592877693528176421769042362078586077668277313351788680335911055051758160191557932395542043273128722679120565676429991999921162775607788703431178672806299547901586702903432984843259548099499327971745678955835029241031637198893370038881064638949629182305762634217225635218212532894414154136254348690269485675224505508526247817274503423958908932328214237294943134858420719353206422703371116535369818799643115519474717432925221728751689402090883419199667711096628669037220436109662437584442509985423227082080696867886312207193798397052008848939339103472799895602378305174269497787941731497726462672845335885314282898397425855584193520881586078680641191219406908205013620074760697788009361292500441656202344008531073437515386489363125559479607046046182260420136585628709977946316766580571623369601054709262985025908775587973482120424897219921016758769780283145432886510950825047964468193197488050774832989435924785518260974258539160761667674489169780371985000042788337820182107696052435605695169150081547069548952737881971218998865040743706451845133536634644043269645645450510926227469614069400504711944149952530731932352745987749757868845143172937191439023263818859464330371806224052619955977670996400318896361020888242467932778587325849920843649490321609406206391089542256021295469251464891217821784388736334534071689936027368370903008778770402110396668456452202183824364516514869474864559972428718744799803541970817609899378810242569000307198740554723576035272043939619851553516303843869988033042838268474492994929533389079362859747075616851820312563554982437425653375979128909045384991442945634630839171068674469177582735918655911588953313896103631052106397632996359215450850633052106113729414458997618488054026931182695217081634038773001963853288243150666505048473523760039490480225120892483515405481140568748831694862435476256452341526679971847638469468904254859366615371900620218283272821033755934383575419346259907815068678798931423306638917330726705140792232599161158415915930217101973587124036860868924653837659168450365629615537906133539445693361092230873152119687964978129832296586827434386211185182861305433630087452031270899892932294751363967831601607438653472665787369083953339259085712422689205005149683818647297113016103166066210992853008720404291464879737397033609344558110228045103423785459182939534457195768979417991503527579792432014992815887550530317622572127823551403203640316170427867153805591413642352886615859887539759659657501370462038937051015965333752658078996356947540491273756829855716511325083441781903448787976455754401009640283273041678818609438962853018038971061978785543274651928360591566123530549149216221897330332113810798288214199908934520650252490985651878790781134514321926112950192679430293448833480140125957250312723249752013146987682085621632469271178887845834594136017454213478804693113549599276429595653976482755277220861546370868815689586644838469688625224661213973797327814592611917703638245720422958060010527841399359589328331199681254717606109723249833873793022910102200111935613057488988502394368973178060576144093561658516085944752266751979847353343651776831173375526574292647325188049878937850773883877294536147365843411609999978077471063390939872091554632612920138356767735784975854097735145295150393174477904701769481151734142599425317999525607119489554654838598049515901862284821957643688353111107654683871617101821745835570566795692894840677500731642948069146041819269351716208804961762334884176717490826108686074108014370238460760010501604737320742756838634136048605094298543104429949565266684382877063667218333425353249868715020728324350457694180122058239205477005116814716817851966412000005513218371966376337541105302380128099518256258051578386499850578955962916214659243889517750664107308987675662083835073435848449498443823809163398964138205603528303124320164928404280733081581233950642329508467673018530645956338664365883055713496949135710370665485135272890843832589835632161514608799080819602946056989471114634248246954439127734244296866528551730827064141055720808850503629703116919354671660415309073080388094767155116802813958887167918894813069732973475867545939220839307083681254667854862756406451856864765218732501242641726235549619131487125294402909531489889730494379183276909271838184605933370426535323262104567951290701177057634303211851107834260800247772423898570839291890876196013947318951875460125937179907985539576521797274380665047633669562217109828417960017509644437657828308199745737443932042808544158617885784458047894334840448771583141962096244367375311724785938691854421125904413939062873850446479246415309206259527876082325561957753189955746194164442805399388665023441071237674157087923998795594406390753162660781766974611179125523029258191593121431612268336957860142602483974284195328482939959402405220370541548495980498843173315051609561748335611845819341651200141116920610625741037801544767820532288518679000829148911173548995753420850134973412844808743614131796236728647410400629765383484395855803471570299204340349159750097567927082550192900055358448762996856843924268489031257300031151623674446204090351736813733336686348817189454982434244621194955872547563580411444951669801818957387637913277122716743484780267122474282436189690553982606504350854585269755711745979543671377342490341678223006092977057171061083673760796584863162448232701893729724686410558321013553100734652100722215596229198148706912479951133851175832448470245420686040634918114636158799068675993437562115057197072164788885710025838551505380855758851252080632457677600019418206026775938543576244479091701526835274548548343479181630573054151505765748627941040986811787475920140022099260421715584413432737126421051234617603778025888653972343756504612851395394982985526852006452073299834635011287750088020624235881096931753365156963275732622839330431073327064876793255532889167028825147290915611497451372060733156925295354513577632557711941699233733332879087915904350018753807285640525725358174696673303024642621503695752879438250395687550280288079539210472040388153230572643185647822920898204029247602535549849946015585335146834971752441752806845918307065085411406658572819964581180603732181313278331441101544079217962160740126164070089323494899302593176807614246764916567044006135288836186635360842254926930422409631264123281085261853225718771092504464458504753947071804703233878532873506075590897561305288291190056980688701069020639261129797208308635657461495560710419995730327055092309014780573731594788472659471393882679713077574518608684273044424714914062404298986082220295395988503591860289608898563056478828069264314032631029062314685392411471995286396464858383503354036077205025633951553429801407367721119814950082464962340122998773099107454759237781931449693382754355722130064307016557394277880538931386833987920093757994445648729669982176471196111239587492117571331035349936912044266530638183362844479685985728985472388278695849975499147921309870603673265060890722735812624472076831641410760297312718635910985168731843719103710986129988251480257105211018268000946626178383877695647108721222546116489378017359499304712083418256285973715598817245392219963275822515573278092710431347785804284921264912098483733132431491865980162942262037528907076095364797100128172663703052282148461663803960607193291083832249980523315180250640120217303929228180193638717354534124610774385449096999476560554092046444055946418176113603318052470961616075045590692718883535775666246576154937770104837444676526295977280169253586005776191850311272657599167973339716364681561862427482024897427894298070910888961952016154904421250610405105073150889724979149304149003278103596053536328585530865041514434673151676491777629033056815066317432552041765569373328022545067151372840766784145060897853442795979112422978182932230181853151877165559383053140853742400155730142954661264301602543355500308208512100860394445834716845204965521023258915209338174401895437521023986000919427788323701775039521864149937400710492510145690274881251125348176954486624861489445160076480410672838993230073432201850307466809332961107848235652893768467989600935813443944282469264350862711603822993443030521635673641143811129896917646912971247534241245301418437054627265263841669976308105009755432888902979752013791798364427507734040383661342086195536961947164354044162221547455922572846139850351464250254480287745186450724110903237941245005100794666192372703515284845320896857710607732408239022813387150390497485151125892007008417241535276941172716866939842499892740893480037576519880722076138605436767271787359980688689184607625704022137062224078116412213999134663489737388714372964784416442832686951938304450672392696670182992889767358580218012579664635318733801190002321062748196564483060199711605917623981105947793885470334627473446291562131997724073133793627065653544661156118889183632030758344863023284549477751939983784248707132115911198500352318781750243098285185096491166704581894663085379701234739422411174905885354053193252520344553363640908526331353445839203362937653250964564060003538487938264218883067456496380319660728111820595877155821559731290015300874862105366968037187614743326011434117579658964906428468167555448188058154050742566378257283224221387073763910118409104783906791073354299540200466345149115209280924433843587151332715986617842095792093778593173153454895571747073194237230009810504758870166836278722873101925329636386878885686076605525343261210854167006481328204752987062768091581779471271054202777472568501634293004376737927924358858794192052526946036892087036808454173816373155397207281779842628709293231184562406451075952595808399058324049202728862772043683234069258954588464997362062830284081859635284157462498879820470630196126636810556228284098668370571678105572783692707847805785153391844313657201936121499523599761856906558907483692128999930519199336221988111875471045875521674806685555342260171526594001878933372876313967025761925739749950607157032995492439325457454990401110080709426904751670139326560266980889202162657208488456743035807306427417491069069043094939695410755281799598008390643039808781887146660167933040677099799216424431142970684201279346192712525757239404053858937909169629157762750889838919663906545496908243122378316910487694788120709275665262923795893403470326015887072983472737648450099650180039801932497709744628348371210713476684874724726682180073340327812567100648868783711798200946770140815080646352991080364475303536662532029789337857562419716276962535624722369813812625713655358653303142058493054307624423295523821310338947734814854625159097848382503284863747198237486753106311585764907515050251254198633075146554317317915796415051577266927029507462325210967062748954133972638045332639281614496379835397736215635144267424266360837464935443156181339987687804536008837069758577829892427562603144858681143963948611694734772830061658469422792140684999567866532830874293915964861603862972156242810059045456033553618539161896220487883528257789289842275023032673808537316037320548116310466798731708796579645121358253684480731403263371062537226355503261330715847804545601962894163761003122114480128922300650611592112143492650454063898622227125333568713709899425240210782929050812894507552656398352481669741540340011791669618181854520795010052943305294865346708187773319730049245971153661012154058581644284694472858087760811095660098668935753428277971076477904889945021922830947673558016596106553334009518084437425351048360101251302850186225275014887393578792646477541311312103445091004347053591750118667334738059200756639594530833767153002755301956831035220160654122456185508266857322541920359878496633846677753193442588973515552355453371557866636485761843053328245893460130881279623822811134348146209038029991107462720304894052884437254979268942687412787881578838325275490912849127981759256248872228820747027563906370073895009809141527309057471278089494327129781756529933848541420299187887157861099375920359447400792822584785857815772037247382738665908461209860040362452306513955970998770818720584288069854765273293002794088791224207961199731068660179236981265002930686164205650536659401535839528985640884417307848355717892516353989225857562872682659023704879988034738735464509662307871342972514835422783185280823746181215369567147927242419426477922109675565108055806534079704561453020431943676791597814046864810692846370730021411736471766915996489563991941097771697719740810863021235318488583057029250951003518914664958282725562147225134720404443917355716234853657413774036193722238647349786104524111767347427171139304330076580401505249721088607948150160542992069754724409927582705687175157253128313414901869472193424512198076042437852129777701550323898114802022481733686111312409798217587909609123306383821688667709264434844238607897113437235548826813486598789466670305889065057831893480552157003684778154083632775519753441948032163758739086860027699027349752581863415913372921265799671076140599493262187535849545528344132630947679362952547055983556834867966299539690456449520401163490582505012223851263738516679066487670355725621800791781085186508516768479858145452902701176133810291569983596855796967478279260950694633034254516748062333587276022102539875554269147050690510819549607300307208555213629389372424983201529950049093523966478821790651024423728142637710076927824273964497703493409938601232959061529151355473679127208216713159348609644092211378520372328834726650635654494149957161412933508252004431856977229355252057057639901127969477815666069388668843240534699433588977967068921238323355309833916182859757597310082764576967477143875223788795252508987584426890241727759252801179101826488242535127868296221415255495153312493203821512928181741620696032184455788378464279607623134252825543779095644343871076596396333192988702327374958660725241486412779277512206008932267087433803940139796883551319364456071129203002033857116098459138018497687179671600404065912030323568611044767318822192848805551885813483948972250828051043101849938020505299087104180720149107522285997986149852495328110600907174602840179241946579984949645201754007663804832333965780673362072401167301841078993907323500073159930701017707854889492967671738706486207303516106693896288662149740673733140166988215871786065632527870342009504224137707059994843844741853749142046803141201333897200062690795449100459864183594293963878340004244371590401452719530824784062279989709894415338678709704738655805264215449183882191502687581887435793750158887525134157783523851979116758448285594829903510730832375489805998245624601926422528479173326549768646063699644216497890819408726475789324845344268500336871694968840799375511621496239144807954213276883372563295544807093064238008998596453530132124282312563492320513599235762577255867690539146771842941928726024289173990706972688686987402535721229964840154869517122280708956619301748858169580926829892176018395086402792149152376096080057368451697375654383532117233400659942816868143502297286465026838804600474538425385163125407551624966766076981611138843633275178731231845901701323905384599295898736309673364842865618815939004453542179381191213616974121508485483267381037524280132502706740918324026374770751320865357010856875130074256116669418716327229773732315898328907640312299977789239858600077736146479229061651642970198925826069917832091813828830701363509058718854185340371090475371893370045449120600466425402028955286138783509438693043476240769326606830291648205962368483011452658399921763173697729083852750859936988063005113784217441086296246082695489220481077333038507516041784922645453754086582541090776474701630727193025665121092665348828768986330021638538088098037344687123630001075926114925329802065664520862306086973722202890157422219008715442579641710998072633074784984127762193842475197151389384613723929379273473729897163652897434705696971124909619634060955466918331503737093406527425702561249824047221667210058133402600251010969172900901634042059436736298765933870422554875485012673960825965815301367716367500797326033587946092260344392402358588521478958966591550098862033301666328057605386960557362573611211201604850118161466300593803541537064209182497907770922338502270396429405700655366102993058932192257626507966595868019186076748692099941249676325514668212937666273419541972184893978534048083607655117119831408809359492276744191485345649290501415476185207669493659406283751069191919848121336776295555058447878464078682221832149048352983930192975946911816848608067244060398210694236044255155230937730919109498411561659983287531123106239532378910389478253903202276812120630384225105368852912244429255205959283642956903686020050635981167739727144173036631054800172080105441545327160374062772363937116537804518359611357140054324011633101814078700920146789103023753456556028673263075334659674061660900542139977012017951711618985061013993161743004389606359333585727183545833664850898473268884026711294623149204343520557793647183842627794327942022767422044520293373297752049115869925410651725317312831780300221283498792084099284330189165368265816494719984683240247650002184167027894078094396043579984375249413121070705422708824242289857364041970120825288163692589069716472428604324150229201808836597586813388678143116087145820242505607460421144404817504835061946113222828501785269086480589539090143705501923453631150132991578007444664828152502788710659389647255868737049720115951205890281747996239743135597491498484974684091202746713068951910877189919766463703771820136002690408427436152744273593020480489351615327131595339760122704572577485401072511600797387946297991442361877608787408644004397346126452532582800898599323573180140706641986561536394646632737879417874827193932017087389436568594185422027707899424553462355128463356388025452230337455779948198587264716600588604572727633452016811850219190444002787465979019511001656178837957782430166932434348269067492115512708331324442859042951044005279743147267125219665584546580179868750996168282609462007426939583023261546687398660913179145756329590202697630096389481449506819787987343456499025386449896374708675717537380647167941425459079955817776875168318307768375853900142484078451805107602290399254894881124482461910685292555001671149548840084317495211817843492962981945689306393283875898022055135126752118929324342503605056643574472905479240255612198340213837664115218784411386912481278920956825593027488739780676895949829877500447722067080070818953571645292920841888720958198133011699194918899521796941430133530547931335388937705544198421938003984426898694282280828431579235336507085647463872590338988173073124256210281077280860574867411086214495492993216510674955965159596600780489069202989568501805543118850161042947262175689677054943871868515442234932986111564959075545789995728271175919928164774494685758532337492191046668061605401620468755955398577738867896045282595001758415610482298253673003908137073145136282918969243170384712149212352249746889057732062662518237675937613665213230376306722866146538126092253546283882556991102528445581760529713461709370269680975668922378319787619494506976148883799469053303382204121968638666201711166367618040977856743194326988522824358541125553037458160418196423906427540048218343117108663753171240448832453054758911977851077970579950006157165469333113057725240585810236558141563287204996187211226634662452145339276796999844960162376940342848328435677305371518532692794619700356514879495476852245683144975135916261332262452503797689672393769950150649399945575761548535932890889747634980985351740587193445908715607533587954200111095331679181047981674730932596562889612000092186628084590517279467354746710502282810842678559420726877993619171709977169802092893510266964111550395757747601893306690806116015850787113203021099946589708735655093120120229391330629098330416504277317901940820028391590520611908068283305977500071557163999310347046135968831389976438932349682046204950676465638682955913122781276030070510278875220123829671071177390914796824038127637494013874076513129121138966797649707266424426754483792131041386797309675851462918468068319315397321725887202958039618298164236810530310307557252398684853540451144445779766921856913008748787568472706519047377236551580795586085008453160552241117351026145361844750325722644147227093916662730261646188236411119671613675927612977544841619604054695850386030540635438662757142596171516677230897257614883686590870102923457288250886437800070374637869665831739680389392418519230159504328964896273658864918763406714544141825113867173385916744855696493333041080997533310173644970804484993431179504086026771099330328710509424796482151702379226308317098755685705508219235080584689472627166033458433580409092669317433828959637464678805665015976569874364992749899790150452985304779554256761668078850515861428396254758832433789294992990400980550337828302106605103873704447838699724636144320484206744617643404922966423317554382115663615150212168159434783304573687442872479168267314321548700217843892076286642271165060878446213591317085999738683160497812660572643029549715950661803232788757671461944978521998119256897928919900389056012579980907073247492162941000029494087548590791615553821874430088186674896207371106029691731803700614520101138385522084717776046859995471648475717834856927126994758393429934470955286171727644844843720090820785838481405693121244401105634399169866297115727931629350796881573834310565744619168167180959359810854823736918959754434176537151809375156834819401968990735457657442242881249182645286285290388322372017056417262813916378320791691707999883096274109639270728027398256750865234510612169167101816312823260633553188439351603805216160853167968424929048414527467562794121747608965788530500330511547507868536094566626334911907640734153076937070070150611368411406738176516510002258973312168392012873289227155590198592312109233872935264401737972427412362896445998100033773187005380611070561302527518562501143011262153332505570234717186758145970454113904118430051460200505680133647269460701288539275812234512008028564358567779642762428239265376035270320592841453097948831615414897176776173620098071894091246895320289735829037875089655743156463252890372530426496115386467029003333878041435445693754081575002233282675971056149793263734367878410298471292217411924150974564969290447762367677418701781878767830180754239403005674475114807762252336414685155714198376133205184031675578149292602425316257797188043267200704758452295961710656845080889618424549472135520950778501555382050654867760395110673247611792800477909273690678566592359670094296278274673253465367134904978879188050016287292780834216629686681071441986588493138920730982888154258196252102965604962720752633137146264630610999838546855117257583613219681110609043726860627858279757441945219866361792148649391546901955694303700238308494139548150409858773158824688069247168300964861476085095132264400812843669300869457899954602137105324982155861757664655929558330041804911318576705220806312860242654321949038570615694010206609713299567335367691348932166706054516571749220972657578243680503616348856543585390565362621608627788804643227552697797073759526386319160913826338324632701756679052737076938977775959529922592266624758453431344597167611099198394482434031489439556176814221173793919690984086396944559509238296328656990681705986359267433309397581708147422026889276045978032009576344255843203263281729403333737249488213263837258256235632740612110935924786889104330146684792725679623380450861318187758329432179723161734883469936543243285234582336875643349270760630528330335329810260014795172905992389204200847140268583459023614784589871195463821493417522637234792251419839175982824271675164239457431458045130763057297191511011859005011100115468487703369754424765230590912081370815466080410479998576494683518323484474951687902951659788629969528587578061091115543587413430588445340834809333898631263588791218166573250859519454882026425956322325928734949712003675410602806165002209766301218401669111761925694152702084315527147475720078671630239638082481358372990161951362391154244150446541908082446555762962615910480863897379961670652580837220138933649294717648130089761745092660861267860131807352138877215982360683634990974929262771431761765823478945369272651983926772462480451674827336007837063906096446307339604587878403603801232823207929523671917999176418496220333732052622303949130037934050202111203005737069961639949895037328467418103837842777123856961621192348377616077746971138654696215134114205476535270568739395204438824300041167723475776100997001663195666569661451697291831582351296208422815749011314015930605038695234381924479365315501603349559899288033958868816255573521299466866947891132478134503001411701964285733255505393931952177364673054365238001861726683668083714283081943042868528491341247047254627406529663550538131026031111690695907848841105120309077460903120891972815670736725645857199837657082338361805006993209068793272680093985951845637170453094326456605728537136237225468151218594412723724176513107142920890181696351520630257475415181310960661903108267196104970008871576016389809029014179487165064061504040413437756172256424301955216512996469490627109042062400487873137728114971100543423712104195253436584599180103863447072819822877630489643570380797372062516825605664616010596722343256112009439390695895076984710623364400645986856027447207301559914193045431941209796862404040652628937803703143496915049683676767563025510265671740692832257659249522069170963456013121328788079330331144854088459941535714094835446027688742562886970179038847056085526837397258490291289028881485191926317234066511597184284596166233576924099676408479528176683584826756412197569439722550485003907491979844686902911667170267233501228807624268550033920049235828132774009291800170370639680606109855542736374867558837999217714131851896105252599759561959246394158218892250975393003547772960037991443745828108012698271922367962872243545021277776827191186485939856331592042321193639872523831072587832306972998065890156253796614296883452876110898738374190316195195337588739154086778585973288176979451720443157101620133646149891453306648809064456448948889306842734460179829828351706197349125864701913911216370689356196841431191351089513767630661185506844930992266751901556344847037657028587953541255357771475894878681544794597924909982586143801792802399592236459449297909802832701127332434021456949040215667568628897151437936974227394568427662918721796827389881343215129888133748984023246523954003876539501003878574346836248549478681905916257467947440018968673466601337537243802170899424850747061406898247461935935470373530968777318520677263470268147708136358454130522047027622806591602485202677606773222517641695634929822087825454534990832041755799430737597546511227308333781724819917311530861643429141840289696234061212893614208595158438093405257518889609291029714498602657588654984652452081854996841086734782622583766261824652774125337368890317602690315152024115364661591663949446624029894033686045681227586105460289407446557292740238845096675711651690559053799571182954740205112495933285859382517803455855863738377797177937088164032224671466302568311592159491355295835209335512727797980588072834054961114370813000481649767704933694454228947723403672565439634421377187278466501950943407339904542659894108404323527672376257396482106543613756169702319676967268267127718116687497344657722903454452577772391768224608458972744114914010037604583879301865095758765616335451063145553317742919786076424344655182359900317466271981908487640723743981587724754890528993700301550898118245060594552808181985472075700471098401765907079094432787266029223388724610633088944578951539181544231016984696314569408015671974549303929514956904989589396791135849170564835465088313500898614465134806311215599394643133090804060210879970256988325741723441923975789163557122593034061342288304138524456065139059201068879519715521986317569019659046956293143309597243586514808922031286098840381600612471258229028167631659749849937996681420705333354547218620571123922783667127388259557432356881422942268783549469739852490439313016336940493491246311569360682973243008001828649201530936643694155674400295257696952277456767833781658978229398357912416877664203969132350893875435853541387154020528126212680083895245806648962820740864472304533662923048187085327325539058527194216135855304117079695183525274540101260066503003736588225844849124642224201151785076107324909051109324944616768304589851150653632757999154596730395628463142986345713513350715560508082510863502245739151657043067527400323669288586595491564834788886349146134147985842849692080191259798509513143932984139869733260129363840542626810531415765603645468066579916144299618740450446237877011390293551748268846464910807532736155174531680172560462335021731452213453918269533333876720422333815281446846415204634063438244612340941302622441892232042914103096448648901496183117919586621178095932760006602884818051583905821483562907079685709143716095555584719530321485491924645326291624348936681841316758947074624635948427569054629145062371893811646348758402855302238765489904520444078306819751363471305342161689610700062030056311242666453095853404156710799097595758358783690117956616152925001445454793760388488842784029218967751855724347437953446207238138751701353619480135639586092573289571942777886722146375657056021873571700866579766543404333690779254436873558114593213628018608179903562694689746546848407409788585521743329964346231498748057830253331594933845674714166123256544308954719824887884890657312291268860176646943724767893914802882037945719060882698468551728667537590199140425098657661435898827255014030059797046818161903272473456111469734529257966831480758229573599370778791783025947708336597919310941085829581017290772860420142947577640739514667010863485959483164167929736394791097706157701742621570086145802242812027821004197801852597079718933731698886442404603458765581696405581872449447368767110206234251169683841725174279515663563892275463524670177420677797224904614425097150112923029535294932843887870668606051897924925013542403718694595245613148593911983291713960399404529728359449756329338680896413253360756523756263378288938151747683726295645960341307258169602746756711830435845969443335201101248193075194179742482010837225198569955789503668971558722159151139393549326742321252926660862914656705767053970315888548730387348660288695478342964007361123429964999705561693475423920185001574713498811765934767197626827995578171551614311433196047806562296613570031785922268613707448608081833451298213859223115503527907552283822787416528110044739589272099387545476215590845239608635745491460887573303803690635746635633623731175388765586394940804835564878722170807955701013304182862666223094493890642019103566965816570059890390410446818480483311376656687421295911157096673177633032056890339674483969738944956385797079851430390011169026182174088821364162576679168106873456358682428245844910187649749277776837232520619101987045858795106119385220339551227043188210518916280026820999829178468795955400051995842101339289581843305646497447932124947938302836353111481403083563194628608100863295012455752140784264005353465022501875093946103520485757658077224597339251331365137528707749162385857804025478725179368885607603064398752117844129731405275598258027957828947899244396823987738762329632240029207562307449884011828996071311780817562178863594516585214399405605125746888543241786248363146495748967378009415531594345118757194328018376445703276235335871188263240399620759549611950630537136015519172489984527150190371715880211344958434776416381454251024370608679201204119988227479306060981820195575271746459691272805161750230894475430979337312343485994668549228255921541778070507589755742566496174432848358093352493647553529445141963052542101377162154119176050044606505803732969366148015695647245066735883899697009208761372129703521206372903580274628008431275023747525752692646641291541227944664651185844696600334923146756707574715044378507434107080520842707826698150065091127208984052825911256195414583632783727696248196720806422079509914404912080529523668923903782768117127206159372961660099344479969098674645957053726094690006649907897424890947283195270608065320786107332350708426574180398302409142310424811802176217302552611265488469473684178038422091774656316675553971722767396990664056929001176898141696363243687438448928825867727834566842868885539906408877957432803677002364535038772323113492050871172672238517851851722460121841377661215762951580907171945761931552039702941288380947726127047124669758353944820278996052152153214436295223182564161329018427897599437072953407166863263478676350135181139358481960970217221376519880121820453018631384019680394069691818083862007692928103369859142043038984227513136052989656238382215488208755368509822100569998863230926413621300252236211170686551263397855693385434501536722104632676876434466153965754513996969108426179295838721100535771761450202603429596749458590698290530468710222180587522106750146807689072580245828530752828903536613548418342441041035881874748319287876899548300133196343590812920341054411254868858647623093608172038741334259284868873103941950852316114009118128449045228345600184439577494532054508882718671367485016341296142985711502343139046391541443672462995972783819218925517713397944225938551680290393874856055669659362929659321050442013043081607404661614445587476929376365926587022777660077703287447658792586869462973843289009707926971461117941386286134275529014227385064126469430487470557975901705418012299531157095457246627990796708704345844594479010537289427505091207555061726240801376818635836359614595808056503928342852341011343205407240429552059075351251707832524536551798899557112794819214299881679424152103626508628368660570757365381632910593996095609003116210460543231840434527615064066789391331455167146347620110647686246528384951167438962436975962662779790017257060548435948331820831100369955739305579562811759607806660429379717941645032091818694424581482415201292751512572834079565064280880819364546134727954530346623754735364092793416525171795787521943304388055832522528330578418687056335526312965541343874175519204813128916622922907898419072035996422218974854892377463728921973014073383846102341564046956296200852128739687947433852586855746220572542477002202718018830483974377668575959905456546601922174043072357280420709273073119114811406818757055987216817228689234183692523122419230698337487859341671810757153653238930735201403088179680942283350328175557675131114140476563328881168420052441161449790633888035075274520323318952297726499428534166016723719789587393216428832077877819041051034149014718242444464548822404891852663840673256233235551282870161068338710059546050366842486307457418551301969668378128439447706053225419089441164538962162056976738422769127484915462175611906431166959958617606593962565998709573314901593637664851273998504674010290259837762949705309433055509699766072258821947629765054281279715546637090356818085001204290797608554663310177644758812936077281971434024432128522402881539542643619410980896877544155441535587613455336251237544395187729838620750403589099526094951659782361648552643756992452238831537878764285945939432533727177529132182364831384882827900881069536515898348012615954872092786682828508908956056084341698211930097347883075361207201013055200298591361081013512646958647716563001674104776506636847119786622731737250244718364783916960663830209360853970236402684708533471264966302392681378963554870009336046666498416881243859295130744009246878463468501777790984049061327202503327174236655011085896702128698771726093717504739715801126986629791498429829019738732252523664294030081441851208047962990277390924186358397306792537108320142037284468601314945027305368664850881261062704716302859474593701711000007516155326582836402667505689568090137907483633916611403704565861905302259895987571579718086879206003393778440855560410520494108384749176743818386221766272200542796666322076455019896787348202338091946215194384670891866443708368678154815696241221889619375202733425038889713281821562742133372439524194056427531219975850016033553173974629197955937195321440486792342478483719250132344814443690416055393101813210088752167937498817810463916887486031925152472308241601932987178505942618625540342709187805708210843574997645954168869970007578232019645994255899902249145031814954964749422058973201340565521427726218144888545422772471215909693290733749957353571456095664331229948098374251956314978856396248149651445482294711134727269972245212801176842807454374705937004094045469712104272169242496587368902567734484468741112486047070167195348760105912012430091386015240014031154266847366188900557967788959623304611472206128825816053848906277732345114671491501239015887484174085050496410807392621235161717585822298698031548880082436610646585173652572874861967684430954189269020607121462513334898559279771266718543431391242228704666513826555322991202956921931404648906813298414730898727717415087712947351301619244023104109978004761824913486030203486848868393908186915632302445945084972196727545216281609196195584253456509693962639324267113673574040205693039660420046276437531933907113468638139231562618664486766719663384923624889336948381470441182665053026554574469204598065334045010884821254128941346746055911458373809305104443709035467830701037155646599741277976629732498708723571254606689011790770529631069252943573178358962903554072343776747464604730721765123331300866242050454664725955802006723828617652672569733341578288426023891190500267626602833520143576467915160539511854267703703770202074563004718013224315024144426845841776699068044048066162952236791988672042524144502138934122873358208660234478028698404030867414480148445232756386926796559905292069805778148447051052164115592155937612240419139812348849233415540902112294015582736856522693995067341530252691616989610569774521724691933008285453757857199023531198304944785948356581788059018968270976810706295165547111336903443090938085727931147094974411862705514762956412449915152733005269574530591373936901621092069623807165833172164639183858354330719101434911143205920107524654687602221175153953426702106749802662654561688773882714057128327066338157324191449757712508905015378672086548080732050851486045416058014854073184791851442016288251582740698775827379668466701707734559534110850800992986999500817512616467945435520349082871019284627107710765506920265515478556761875648946535321381213309473613712672819217666733422328360635711418822970362371507891513617928479734542156719092131556771679172083353162541074056491394481504304824784043359319673638013479803310133484406898400023839986479520406101784516030105313957229827267561246730215297939071644983540912768329745742931369725283507957806177866679261020551681156578036974513236290748416539662499684560766989445678354247066728442341526455484127158273001593596757861115064323589831951435829932153565123877743937492416825439744222550226302962922424610145837284562968238350716492017086161821056040470288789003853879321792590697540279681667449926268128687760001785712418334714377167702761973733446678942497639806089489937177556881766633614304279678764438108506197873307628490246277958241901123899699456692022792437231814463993865374585717327374581048580206805635910291967555746845348658488358846860200168987844239525297248355280961681928209655940145719632747915082713922521822327669208335171290715147878431268711353632915842101976644423591988078108842720517037509387762064102510339674800126317129148916416513482919114434022433314704131367630645827443808400915397709561658087076586290395416143881013947370133931666458859589503554822915735304043069688241454573531759286343221224282948375601792226123202187439409368949388633846372417358187904627724290041059877138729020988177557334230398293690820944059683360346892274328461014650110117531525480515761796049960872947996049509683878486613826551254137962129413609172729311648720700385398307893138368427452429491212934219259064931385949858982948272866374396881199359537101799517178602548018712490230776829114494545622645862843072067683214549267237783955769666074257362642056207331858157053234812532264448060645391613766539390496560152503439751559713049417885342040602538859065728467847845371317108947712161336607683856851368282951883126093031314686336009930071138396320120640492260440409478761982012069797187078385939074590145662522959789043317024576990950541832982349146296141246128021500398814465464719553282726445451414155354397097084957732633900437985155184327741296819633977741870165760170025944857490926702232998524321211164324929445060891768532369498519803826410233518644727195465582035400966176510680464941046720623130074388804207385740665723821526698643825499144040789865401519143554528600586530503953197848686710484262757613139625563145126024641945889782990107251837250970127145666489718316323424741898819571010026754920146696311946204443133644033712322656177372124429676380672816905328700674816444557478597610864283405024335722654826838787111009514734927292064652365081302225909390118148812829325446741134345527728346019977185714332182256097430191219008674267369981883517210465259816769066258086334040949793148436417202230755532629217459832470928168176632702461067753156776313327605231128014142827504483385193304498828244397738488708371433339264402965064779446447460726871498981714025798549058174499452836117590555063742532778955152787549717685816641082876125487934535725083076843105147125846198484890648221348609673331249500685557704559271029818558015823418491609523762097593448964138844909203748779859892016210548587634371780566526772384840848537233437346548427840577871383406090947369491555920015025434653561920460883509030110563843860221314173903785573067163225430036856960531049243839864935125295761561954444466515307823276795890788537649449883235852907390232288113175711603688563460318007394572239490216677237191985306195680291213654010179886915062987748469992842024275458221538953429926297268322905581459891076061236705252625160229262622372384298403128882330696745693966465121496700357833169228357149312081276845476169803870092457381094403260011615872460475948586382266692840992844485277531874144963267919829130588549197488988394462765866968624308617156506777415552839900404727483534099883772353144781122452190421849708165677085196964823360408993800250009171628827795990782160682196486683255510546775734593990361404448504762518378637174783367207445784428652065804561060985465872552403037150066512788031273062162384517296856489899811857425265531935341960293335626274439815160577176779269805739587368185846367633513003360819087340699563255873333057705843593184343440158092375316988993964582482408853689894519645466119513453053281468282579626811998160851271504220666732499969232383810509229384614989355120743147869496881657927475948293756512887958356384033676277263985308049980884725393188932966464206599698016023076210488447932592177128667458870959394083569114367285487515199846821877232918330224099336431704233041351593684785892204897078478980487498492941377123725739740582778485581990326261347890073410398413498408712772851570843829459491548334529833470224723129025387492105276645522179379741753302949885498917715679360719729258313711441957685746239598811822950799033932096054436023224272720684028879184026248781524973933662596216737410291554361937416681066260816547764181154193255045430346926943860259054195668277153291718766042809512964962383116666657353816665811283264027108350457527285106670136943760402097206155355690179697541181875847529492863258185599124181706278954332608653360536344647262186937879423770132620359730689735013618863197966909088430894531894195552473402751962539248768635064476669256697016155696115176349491793847288605427915677114429275397708640355162070985830405468722942474127724789302997787294147155647659769747692649062991601196480663079756975112487901682091609003467915549696620659427601443912537996927987618484268507469219672662094312897852806971272568322078085845165634373986334650240907762972722689883481278721313573241916042988403370808846520186357371164753036525873125570681449773010136620834308641725598719038575999293281557609347438180105242452465267044124593176307997911789934515428082542290021752585438772376603002396790752511035340310850868398020077242985295963140398437121649258953571347101930655431812241978519581858737645058692504850321665886746889906545979363557300638226556092957653456387452938804515981704967733889870003939184365762208897051629975389930677781481345978820060264915403208086283269678369905235306291155314143641247138449938780882588478164507367548975314151245036629128074017816861533977438919056867575805816144237756723184801917675918400465143560134099989367410269073327270853229932420279901016576926537997733910579549425679104449015220182526086949508209852920439787284153326409285395643026917715378016006544168972116182869707271127242174702158130355464023434543449448591735145236914650741613017192373586745456006339024610417488733063707144878051350996646581826252880222842726346789738609622561892654311834155596754781378120534801414758548727438849726140176916490353563088482372322973250393139088608608114096207412655328529144079394699307799082280079957002606080323902244552151764535779414179968015252795588374524002273706018449469187442421033045270802661590778499031961362027050991504399547395909446132842174768087343401766117220619360746002076296261713094099126757582541389634122789145874708247873494451043029964842049195628390229868044159310914404691569638142097419050621270717024414610234623223880654408637861246348819580334185534244212274450448703417443478817930695898103704664357196249815535185434803662579001084347498987526891493988545373554695765855963321515144952625862263218373191802271401144568223722715238352135969935572909529678341254763556589571587947972547348931618337311083881053687548394642359769528526003199271724013417709690725908328054845767701451976325725807620689469274239984499640596813045199635439735338203545058318686549345737667674538741641096451317710423479382951700406093454748391916479026673069567788251968342479400619562750443578694813973115763488772548683965529713338292853103846905916331210358877119757899984054589612358517280473242431367579889297202280677873657796937487645030217914439091388669114010198404655157197641829102282793116721551207731701256582934028987724552262163556836239346780616675738387365784986086755288062291503078507882920775014908252384435483169995255231087642795834623756195616738627749764612956707643196454885731699219390053688565055144872231490414515052823082579390047172177566094776950059913159213798465396951923791066272958881101590493094379590356108862155595044820506204248161893073331560322870952043616901298623732127323858149544960283527452886774500284381079000608124941561499115873909412529414949897394330503374982761980662126826408301240318218308525129506143901626209320164610588313631513606878624962230110242312837363661775896124695263254792278714704438802424508463030945487974371663911539596554451285813857773006695657233902309358446967477439236457922327395274723750047373411213581481975647962258394589540961374888040890741259988314510481537165294006963548012185564161009396730131705959027447419283029224775762540564283966382221817567432836414344332545693824477007015007754027711690634826633500053482971698515077183215936656517160352932095004351612178093351810177347220750675610511343852160825765060715514779277743720495954239526870624768351996063244960861323919836092963122389276723359241186416854120070425861851097300260746081704100040711136294194166944220699219112676706447100163443545390481018802350915231348236849729510755918015569940890992682263312254596718742089358195006009450529124393277530329645975433240322181339179482150752974949687443219406522034334766681812263991400682894907714827525379244191708868048026444047063084190429355282352384608217739583863843232247484254089615703524513226924731445068030922188299049520130024867067281027612669449581071846662193845349063841113704453796112323819511293115851081015107169557689318192844561578768138385636142930794195258453413233086470175250673321456272744886370789933779605120373916834426209434304353247452088672467283122493832005061523847467312272789423363644209531683924196992321277712548929779057475050728861297008043091174778359102309221787403890304174711807518900867573167809007271353127009510511101092690598643938544423832890142923456637556114317677180088003965292846489760847779926639036115132286409079264981338739027506790011131111044874039003207758453805371939096884357386806463842292395325093316425770910891778296660559696388633958891671989134184871771162858846319387407686210852297546853266054226293413761097050151646234789892824050715803458549587814434568036217799583563521657718747038402921259344457938373790743943204865068338980607775026189412372841321727567395288197931237339699444862450776896057380926716086183265004247134071852836838847279109883019626922741590212093759858504675256625717794912454871625001578380294888012202172772962913635086992925845844488826966806789059929777874710462744924745763571130787491184265999122743813503839992224438094211695969833126484192472413014632840157547128903061495473800569765337573007324900110221409267698775093619520039874978725996191617385014621474016426276172976987330582906262429277765518157296748469195343109087124540390035752059901454635010163543494597524160025444737683536960192131890638272973808568086347183321814973464123645330409738314547931130703737420902173576308634127212859156557953383669710220940751482651421795013108351718434400225424176635955950968164463511751098307341103182882298378827800511359899789785981405311037865941948154399131598205019392014704510524480011238249794373546631634268587116545105010022728610588190827100628461821080746267406468142346939118321131625961608236755746412214505173382668174608508844598816962155338741245222282696092823426936311371683960778880377719155073534407312732703508725866161767640914313951758951157296134708354402831735521403650499083844695623915300391102600587140901932185287957087808985001259182184765484371931996695847793918156920028662626544905577574937837985630148687535184634908838082489580369768340302654149957413942875588631313269839409729659216556627856022005944124443828515925131108547236980874587115476476130923859956827348331165426800453553042502532721217158684884343525382731568983272972676332353195427467564186662603574862104487060215381025951786605906070168487753547749758245219788559903048779279462499481169344182806458448661751307949558302900188006363780934730326800063623655095503575147969761768186888426953269320925456441258425108406328985078230459376750892359032551256041957676488021235957068323060455190918767288414058497323741401915675237381918195991901746029000341437953403820883276413547473771918755363719224583426662846895225261582139488655716355093440561559981102415495220171547146672017546014976507858817695972343407208267539985832496928388124708115128673379367517957157158500860663004651928415049162670929571904927720364084135565918857100363898736148691502179299200237928377421874714607636337880011360787371335060388901131199372714763498301203142709384595346494689263573841405515751769268676866402557899748091616727541644972875453621441907918933709147055989201356069333327337898420178610358202730817953816373891243147337350916317702594850684705137145798430218661398020968660754550207908686820553564058179300161464468029448801578167447240398953709016207665636242253477141664426240544001411586219033073655366144000303930423995535734996037928026305586058844070585548182080071240528906840377934613160185058760025527586360402884255091537400921413729186260720597215102087958173110680154210634983997832234778095288035339210077357080406232813436712437538113027845415784734573854638678771528317326706513922674868202144765379944575602432971362920501731337556064751663445995304900189960546702164362939317834683569823865235893800253403125559158161261245289184318910872595599851571928866100656727987321514200392478455664737936697841017860813609809980870161825661783953544839286565485178225361217846873712688971471869018506111080438428697632695216658575097601617562666698994987828762342108024604741862573490122352263978001294216865238043473956028037116547668717129577030497571983217001776489684456335219865206996276510607667324096478701352626221097735144928822214621057347822768056303449835470251585689168441853819798496364191900112116456822906359507749679962564973854453597713228439733506642956952509736807167117413949285809238106201332354744756543127588550383436505446227796933220930650159612302391228718278237984821945309531491775648570430780134265288691625208446588435110046779980831185390531278808227070949487891162569610507750509125426483470564012112605257457569536643854022118067255115091429474494175506181466595618297513510504735429600804742490134069872902823366783278273403887079760285100881245824086861474627220615578491681287140800401918645930916576065341537054063178096029941780441613394289406008520657511952819726072150139794221287653943727685557935663472675614796107476867669880993487800222829963281695554906334427834078502511676534715310126098592289408172648253716127675493629698073906137144682816583844899838521898204985960829110494445703552509662604437580805690957396846106021522276978163089161502833426750031548076510777934655922388483687255949989055678680771031273469120971926317153890088581632885645257150233167342895741941136928891255599835576330858528103046868556043578419300804883058649404046456853478786132355427921981705911649020003580718414439565796353061371330884398532983648834297866858534422326698641595892154915013725915934135992768016786388990536926523607126979709390193759487324019066740310666207462090899734951569752954107418793646269808889894254972702089173826326593540642487578905278861141223107126476096278709068353202898590539668512841380894055993963261550407832874316892724150763942056986407810513334665507631602616198821295087382895450306641551769768161037612021744001409133009017973446325758587120757294148620899470186072061276861973516990553702564733449208909030817016458921223444803831751214679957267947267610104795190594864002242242629095202894597343863745583620307215278451530311739129517016206801563091690495714904269605028585730479788404769195629470792620150601166531691786821585540944899894092168442109991531945465260565233160083615910015646728257055998304542214230322509304993634711048822819634375501624301109112597729882549187624315081420951573024189126655628372127342275669084236859940177042092651680316538161611828296992569825126834097786796204641090119804200071135964161617844768163236355083748558915656693098649684432712043767687719263371843254683683309177787189238594289298937971627334010381011454748182962839288681193709638052254751235968540297714981308389314391593749581309050248952650880465738710154039582718663654241036975219577280942561918451211727757586867782812834902964280159100372696976706103016180158290129107181648072598464927284454061955440313827404866437094472888655282944232118926686126490745380178243145032349024267001957878843631428841759676861601386855795389732267346111777696208008293356693608739159561146927908344154239619398486934040067786650815310306413425444470755628938629132387520966532178627443427720956044710368047407997502892386948292096101775899680484547143586430929290269355907426585987422772546756925750754024252218200866562068776989847148908182532050316950855362764928105365083313415116881257749719555025704575826372688651125964490547058662442589183772155760751155678600383371736522693538779489448489037650404753397916080466976364337896142635070692061520962222394692937789287410361091848374092205679731373078512301588941402353796474678373019533351958630611847657899769964833053231431015885105798862915042475469240918940213124964345304434684580213512688583440437619955283429124581810438723375639919320004838129765232451694347812813443782795065517626456525838607994568985962291569159870971474267994455628711335551512894207048284465172664665578274854671100776352331107880997174061197587980791951117478146426353895343708903457441267857479472742616308283435097716015095735505768612016507607073679848238626118849495649947933782734183903614411277345663519385052927469666379384307168251756330166634082077675890591536941220286941354443479115493398246334960703660656128093586028063212381810121279803719162737590085384732944794843508590060435886348957367834596741521768846173049112830462443667189861764661263815179651025976744153744734781587363098241845520604014252610044613703021042566664340405691782874730681713291472908760837772239845948191208519719549714774333103953968760028396638093322521986277706266044906121100353303572283401245773197324286349743315170231821475929205233435019379719392187341365390465173086213107676536529779130655230146111039517759342132637831929796287053146727090992224430817864937628187118878545653138882476141560889759475861966172516025192959545173418392682924576747204110282322704922635559114627547060775037765419877015207312923071544866264388527163277890291125145599294854114709733358624267250793734217732047411104612643338656106465943304480543158722799874043369072147294235844131462943667229827764382683856043447984821629659803316639970024294280901373664607848026952752464641219786552784708704711202108085770786479949417254156688752851263803090208714900462823729933844969986979612049254095570488360254392858229317854554969625668555569092928150041274858104670659129564858635089733147487854517737039455565254126415706382583688576979733096177075656786708660039142364579983500170669815531738314570481256865826772785030846318103780692719838519077597044870826089405139773343195283383027541711094932382091690506735118831148996497732756439292247994431977411014299984216755525590641366399573514346379516795462985607678549557191155824103737466898543762403398401853212470832138148467625081335174408361228115951373633693929070982170052172187897822199295871914496551308224394456929064386545771557059396819183848560095743353332569790206167750681157124322224277942968415614999189918484422898756849150407381357379029716780056301724257379415172394984894695152172509603736814602396522797047878667575198976747727893692497001851335968274909622106331407006312969611164586830121647327652119280555500639025890079465366961139307722963601347590048536519598280279133758510491506525202531172083030780758740975331302178792786801662225511914980872188129808557172774473404652432643961063441546594215489134930585861987155450085802014406903281426098757461869217671553238686764460438472342814593996659174343777205602288884658447627617239021768049850244263539828576666828457735014456550918217226936728689638822786851249645576381983587138301041322295239877152524997186863421505389513709479378222054281389002397592012674339942089779348557872678849004326487631444335429857720570327135863269833554189747110074282924709727902594295946951436887140343860970134896195207468175023962025583834970084929952241691336999226506656449690367635753543239158035772825043252863212129304805442905554999829876035552083484680252530712855276482109029650131817950037487732602764239218515138529727594533048388186884073010720176256629124273848137923715324225740806185802267277150765318243490087261785020625977525363863175203061248251565775159577006819819071762934188469271036725327754209355620441738268209567621886922718219986091523920882352703609611328485630280024307515076498440544461498923771639522846455194890202010303671807139072385781165175139258516224060443483141055905088073893864968500614608473254492183997872276465920272176306388471169990052842713470685756386662082916971381349748245342068543791706577632005693913207800975253255172698580815808227506094427921322569339737704045195090507357469416104238603076115726559106830865608536706531178411154102547155457643022790560846834814677435647441678490019607445610173831065648235442221598112997190968576405157612240635531626444861508000059505542143825299240616576489719577489910092656071748823608249089474727829035045807784874960827474787981080782652308632441002763113000875274265653354664688092643783493821502105709071936914125808143196386606225858375270311862332489910327984032618389084662106539894646275324332965000615188024815170121466149532656493416713088593207794525331805412336415680182410166790526213757121984038712351745654538134569225167438088715175784664030852496194711697586845314825095649632234289598787573068577764967056780418064443629449021651247031634504825677216460862662633176543215172091929870910150448056142839188168572547631116034673848721196004585242147220636794676190780781643447660319272547787635632180655634193609118815431081710008391321299991865015062674394754907128602400388221387628132798006246799450917433998782388029284050959140433945499904056943579203007738890711135041280617260283938211155641988140073075076105881904347563153955630081369045880899710001881477018601276570224328252854550079879122077044914369203664110866759188570115195581258655089602691234860645499939020854340298749427560446707746822892956252221281757318842556159767875540590770322360978934087730570102708539913881576975913873895012527041090855275379534315322542939896043557330782839163188140025505396024156802639428282838526860317432303673836671617478812268686172504364421344646562046539666161459537552004158014509519251676123997467922162841305023464253685451084197880856366646913122855670223968590501677886409340202379269857984627515236614498302914405115313930236307419683605173561288012528687681130938130785805006696107111682369255779455334486715269626856854400318815360319935568686310657399266875000076603937575853640986635374615532938482904184656442003093486921945459509739622338567206848948393771153109589027288215474793572853787491366224303885764265670917675322644095368988895972139013776625077714315469167684174980951262992263605666595862817771672225984326698643076046939096555543138335857590492464671145847638140547470594820314255767929469787927233244482094526952208720763391238091687540072976234367679665319490741134927451724461060228509834743156454044310750902339668762064557463461119015793160543853451680600134726513293766510281057398213193836170654244623722403312997276097494666384348581686032541233899314301356374707048328771207151538949117513289284530212633955210116414490082252300268449287224751593516499862550369350693667255942632586195927908686408664750561389138243160538978946804587648993274670047664893921912620749838269534650358161700584529898831400520378945839806170969542553094988152522687901029069303380344822457794325060788080539876018677579044166854904873539319488835636075510988887501553301604885566874782793362831857997540172417709703985190620037708709685025238349522494817104282036442963086729175734778314656366218812520328381045057493209242036761657179648409816430177256530067753241975487397637199930062517306770172807758348473861614030078757338309982007898423826501056298672419727796969951985031054604696535301456448062917290090958975598975417975577492307962664319916935026065074633924838710218198742226585343781879925028419676593177227236227443562830118423145190648057317974618495228695248480828156993550608721055250590499697881675352877485629369196699839983150206971080591824629868697852690341766282826509497191130095999853491167335394865685464759793297959008946079839440257492571856398740160301077122410348659511445814423155502526748138729952202713709920289440176588604417093133434463251221850211748013770347163021127307562006593298012057215690182583358036117372043182005180944714802910275816035237021382034962791290554993780910430274954631697016098324909114882181650932965657817399642928784698187182798435070189554244426148294471860421141384473210134054206470605857904301270798441201462290370858582885645927096612728205106218803066978110447046074289460514568583446343333910188130084470977960477655976768118634129826281330876800465921131025449724475821853280490670418974322238236892331421259839154228169270219834057259667103550764195347011832479269841244777948575426094218486030271280941882293441473546403903803649152837800457483001050475670944869415223235278791623682932382778139575733375541382194629371097686776350694117963359284088135751470270746724518695150009381797281029407311049788535459269012354099324517238521551021986021872285227583611737343181102792288202623615818475531902938539904861048998936131866703497771572902067098055567283203419580593093607107175266436547349543541148958134150095207102892345637956201885827198100521220047240186992048264984143278362038245879951526513175110644684412181222311245173258251199222827274486872207529927848227496058448131328688544608983119342396758792953314079204687169764781971874513571398659922863829209548389803593388487554788430481848031999585465175238615874869248324981741379418715513405345877689402606487553826758335400573074728736787923788077558514588645384860846700912289830107477799800919707274610127426371663188773360540248926272156862403541189138422073047802474673141918610415873898091422366451006480582943678338088086077752970365634566756292305518124806659618972607601495445896839169500223322055705338952963286913489488428487643134166964490738405848465749259448475956366474479334575032213289895729757528481850883389960180839392173279860747179199992470322181943345759608540135354668030003508574450793392127357479871142379994546455150196083139749157399120213457797010600763778251118118483795918799327439731239460688869841157767855788906828315441284247011142715173624615942543130596737114112435335024604198612643109891954998452465409809984899277992908629778263739828362451555047878888772925993972198449086098859880309558905586640072518795905829298005765764468213394550106199583532923249686741710019637591197496820946133542047808443152126548765640830019960199028974512758247524830542218776633979981735588636497088686257277571434843137980038384206861481621554454845537002494858428909356206304744128551612521331571532305668965926338399339117586112326200629154761676197435163301486019910036596472674670865482972309680293815253311049995157374478971424472886102489833479581613643753081464104076360413193377909357918516706677078160852591876524032655428822060433557416803253530632650952683406545907712030853148874887858019201205278359950227209042264274044788156672587174404535267569796772094362637795893128829999481038563181202225486198119690230517012143741041425830692876198857006243386058980250122323473460856703763823873745122593770313197937340634808873549378701389800369881801430941552125654489811197394212845874436638555044702849138443305636611320360030975242947012832690826564502298861230345955393766612685067311017368246835120994593911321097163182214516251936433897251303845283187630707447054304381651980625957886169144587155431174486152974888724839374542950454311299944849841852721543998620159700137161695879256206375063224861061022756125267850493868802894558413926959350941835688656258305065904242462116584540133732993162297174398284711658001131661558033757826446990883670100132481713220841761480725702426808841421076158855148917898465925642094878043090020307837017127601364150469312727092179566194215822765490629274767012599394582180507958394560723996837624958895755508957514710929694179409230955134293034549437320646237323199220359556438164670151711317572060175224074629637475843471448874788214804048536105653279406176860221769443816010965861844798054797768622680297651666467887365205213100028832964008628351668251880484371928360634210177291168158560616223036283740808861066272503830007716031069405828781021379482872969121746238960247437904381197163122032131152332755692651962587727808227050301479722443197528939055261197399318333804541089282200440964877569234364994913933770909124814682562078998796188784747287229406289217307708739971344548570727307202463580597629424140373897715150258919255098676774728356273439618307796125395082975285312689904234371069992973363733584893967371018750510653191150113975154813220334336228875511744690792643709368300069628941230878019240385182507543738275277348149326232070503495062910009928339543592165503808434998250465389934135303791014944523538487197660343128981751781654176606643512550839606873548006564668454475430248328360375885166226314428105798890600997475304307344748313409204490046305371061095477560756333905119961688098100288440609134742175075115352613588205722259953372948965661268650600644155562721550625445605560977172044728399109638174419547420855334500201976726302986423228841022432895133307392012662696053685503652817022472284505712511923221576057801033455559330891748697585954724054111070019261362920279209495168813656306220824954590281559316591649902076600302807699614847848159137491937439718174664308455336228156191391733703857838794491066976704257827256570791364762416303726777868292166997538451107904498381678481304940294005115080768832030824966002746144037729300104736237121263879199182601676008177698263052843933474620124945739539660155361444608514621051880639614877020858093707386538151860585884997669736672893411897879052566791871900833926808137464712118502293766470805071550307232552636005018866904418080009235632258090018241904225559843007340600171919736972024429766013062110762864393942356966218046045172007932775890351659158687354991633850520185788101057090195611807373106057662022686923726856589042798921224858707316662946991691594247364211139644889389607547585009864712804073542000739812572608095657051010643993992668916636100175985381016452531038995102629789159004203688451280422629026143893371745970292986585733694969209637245391650652627159245719157951807201048463469861705734140283853162702611722510338516356711791474978173858522851179606740813027489501553855876071429660565929970680447118108760276733317944403055197442972683041739792646531999217645426300261087000185748112054301198846124437523650522068081296512952189228516482236242356629228659133012085665054501050856391664410863388583797834303130808474274070951172723507146235216104948177241262258404762454921757867723391349792217259367035371755682183427876965473793882497993837819247618526340770463506972649288923068734694319801463291943584222651796519481780595028513601920289170830864603411620214778783189522373537301670439213628635521702760728124539783899074537801039427568969509877748087214545343525142524782342020425015155569802117404498007607213787427210443142821667016832251902778717190673003230371964974136983581104581166963843321814608034756084852249359659490696296823797705746624507149926859905749669173162626635040961236358258008963237479486768243659134947062483995278563077670580497484917760533456071451399904709255960332531191160629787020134075119063152283774962806433451600515050900722567484886345932233194728913851732385458658301058947585277584332381385686186396287543441632968706770887926839187619935339003292751852800616895809918111280522046341478862335411561632084642378123033993859036632271763950021921316289874428968872949044944291780702208939556322709034854178540054307682357509185262045223127679621315074762724632627953614993046893116518737386913162794964205452043951962367692672883026216420684619599203297349942494020196549548387151657004283392692890512705211380032276052374744232471793946617436525504059519648137862602796977427896774089769907170761842533666850264061608900544702591733543720418648966501350149369140419868697948733707214352239623111181765770976788511653737021186057417037728731604552938571906357779112933271614758635509226279747493132677565598450774897063458960081514745256590877112361384074182608996215712026036720918430853647270852116612624785204829812324300475218135049380982925901344898149082615577157789151751529540570512186636245941447078191278268047713096363337404908521599904095333576786008584913462327312371444770020579840974639109860189105069836583873729884548805757077375896425715441760795089646446435044656976961709266091528041706372470091154345144152282365194499679352350481198946072674901811735853693865545870958977912561400631123455081396969510293103952431398619090154175279800173269965982781134482328970410336495659341267960039947185517564288984723620299145217720284013678678739865755514453120571303365682544730943263856515708373371486985689809202173536851084109801413297623361266523641655539911688090876196418337994755636606115207647739974771374366345848678223824028438840021096478350266717459426262629345181440458130117921393776561688246508959041333735611935060933096932172324776240719961467505931003863986540693610696951586964125409310859575337547726686235170973300637797895402510272904058987487984874719219307579259536542547880501462280768378942122696699383875872195398396711216498591201717316830148948367096100708699521865557150686985685118316401460652643918756297397439273087268934250768121021100495225086434241172483612485781943496442476812736460334624458101909478196956340755234127665222929315013689725921601681473598869076953259098683267409966357839339702740932198633644147855192294579776253382220803800860803316539213844728975067968663262996336956574627193913800746223372742019945615947217768415577147359422466977408511298093087546583392183623258867354140542471891687195866533435332762445797881066369814634479730316478723622330202318876945129214873954284289569474519776248597310570627069757085463594563235207656609585130989555715564542264202449886863105503226318043522195744851817485123218242392403879181367919730360123204592692404718060147263017426414451711700633118249791497018033498375780716498433110478513355829210774374752651669720924413090647050186621206738543207802587982446746836707891907329923772838332895861447806951336981900603888644185841661445048880960684746542523067054870135938092021074036253769520326471600272568292010724929802354399143492956511679832157707700950974873830106860958934222724980310384617262284759027095270154964752839218424733649710167867239465601190815234771439406588994361990695772632838450521450152242959337877790719464832321690268903047120621794526836379078531492865174936224532913771449133664204987205380798809832285152555927849015512172936649970706287849006944070023411360526394618860885566329577204510106146701881920460580718668474562409612216033986786820006755317934838264501610093466200946925925425743634627181528151151468735178870341479146617569599560415256982027329278564681957521913273225830226190082120428017758305307841907165706539079104886674709061032114206848694947725827531503954041476316825048054557561674818221011521904426846183922347098459302227557588432397605410463460010409998527496443875845414120601983042406230272554802317627871829691033707950352613254590710842587352506054031170333131250515062895081072676649509261741410993767170905623546545812623207813027321023157515363894521609468364852069265498257725935979910037322093262201301274431846486021885282701308082404667483442547550201051260246139294710823021154764392211711435381656520993551725064859579711127083299982693930113969989488071604757050154008067558529530068903292656180131893341278436889577009904124194917352872807721450965558171266338268561209973010877737843219398538376911013937780603226016076430066047612783313181155120914775299314001924695627494530445139023431326517602375461262845427096659217806425668033627005284035780042056732573364407817617356053077234244373729557347050649152121322928311342574050576362866920102738446278588550435989451964644679041028123662312508994838454587281555776981106049648575055977364241638892802875729512704301931247322701738497214587135976456854928231687530306480588628857141357875579514889060998458128141020856551681848589924931221744669960175719106363246292123867719478841184149659902727618172544106511552294474571094508081986234744879585381774148545065563348620483703372675458338617895916039531487190324985482216579772996604819189857829273040697492998402234719585735061476960435767381952379289127551878387966514366759745359570896132309892080451907434952332015870135217106545910319888463502313025339313482196822092963400216535684848264970889149463104119235880665124817215389372730216396852340481213738651207477523355817868241439948741093089277919623854363631311750878915839787822616086722694338644344215759703932629436798997249452773131653307715349122693921247402349776625106400081189174158725677758474860415116062187229393701269544542327769081244377480894348633265184644674120943339797384675062825375405905576419099166475009731910052014579330188168047263893503801804507422350120291228346309909610562030474595798021278806650786943397909305651191310606349366805808726597873870446856411848678182386378804810107696973985014130467967311061340757544306345900261228818201280480751875938880482009814436038325444344051709059603262444631632393511665341443780097300302893091727803910017853023023446639630462512413979273885618202963412068152126120897693047016968737284898660536331592687405777632561999762388135231806695231091967648628745921550303823323368630115057204647101290003183526473289181868549851141008142011113233684310457796396082012141032120345628797784260320062360369437786047384144405972378242333456548280920315637751105246290381028608634231769177258490015084031629598044600444732234739251540597101527758702334061832248028760274660162504975528223966495988383619774585247046410857131910300100341867691466547406952783378248677499718645591177777579674805781087871197815321783107287053466454503422368078790020048362210343673520773239579032757298360661693745665952881732852100635848748414242902084911497057618930073324752588913728224716293275286073446220010234910021878395886010366908766261244375519591754844916187841769291402682028622867444395689517495813935215521556297085458483531898216306218514303017484353452838876225780516344076793068449697568781224015927650358432126501861861813516130344606952922793001530488205336297602863533198113877646235159844017131439171674827371470879376722334321110963375495264346547282020509444516245369667458822635531237828537223139804851871882935225671928149303546073920925054139447426145794023611307599815502205180402226587505831522422243484472677868430221788775813371980202943539257004984240417752164342693331822293144137865442056768761295990361221477550549923764549240857200696499284277114610155853880640174645302166950491603713766443366292527177279202492821446913623477385395159260083647376111091478485123259061759466385696807829998942516830508736922125356606521266545969521919606343470434000463018033558916990821929132588711390398088703006813167965652530631788572580135245441302913072377456048861856719802646802627476095679553112633839542313210521736495493173313416399234912829900061726320033350134278746497733947471449124036547577265264413857410924424400899572351880006744080583592838614708492916856475613019140762200964511188917607664490664190848745948379425026126294001664340431134946947211376171131509452445473962562413879584147603276005745053551003707736834678563213197502949063295643125824635402996144758492311876662727578056118640059174781727537599097545559946495585446693597209108181981919224341544014543409568124182327961337388098541475834499507369219843244372556050371212013259959976481277339108252368385130145322583495865999275945780260450797237153084599023419628536283062308335858947631689085318313504809689478332876828617923084935088638294672734759045627749255712735392534600714152050084883043874632947452524612100307956881841735140183657200135794637307870369681955163508278978854645533475080638327335899998842065110327288084914064312961540997791062809078546412467797923350516833229438893787751800707604804295972955434147139503871088545614203291209797539079653905970355457567801309876279684401386604034905248704247013767848247798820616640427880089174501161501117508026944290936638216818651130334525772560743230403558471904650118958120793323168737073232172032773000255049572687505844075526931520095917035358172984500891745680790749583405014379813731416016762715681758661402323915571606987885350422869176896964086519765339402457214811442291867372546894886237919479080642551804919905638332857863286807192484921331107094394994609909933103640061370632621321654548770035560780879977314649157899481951271724082880006964081086860498388495497249807207073043203772771672404694845603252442310694081109236860756710479499782414848746741378321266176669930330167922671999726167748403688288701083273090768291311581071416887225261245089644172452663594723854802528410037812979703963780515040869692270206804195591593767754275337367277146720779399659786843806807682701457055324645181942867895031164705411641752786689693068138685000193239329067563801289235161681677906865739667269893495473978178885402032478430434221254502350762050411814818098667292816398835324661623331060786530465800234159008149708021445745127065808468070163092993369432791931597831428976195555059113128413835785630746595040474825451585242700741078392112764699146722446952291536790344536991382505092567009469120505621959289586504377496991229866371464856859506828567090317478205329741182919544200162976529079711276208420500225716513416164289181073664609870629272800480155701973463095996326539792895599114576199353322782318860934335458345447151218550695297667903276547764098387668726940341357868151347350553731216690687286388514433327775444062231901287501648052762319919285264049556495020871519737855379032706449037066744670498966356487869383805796221604744689441419105424294768291337372414234334959105338598056938554424041142695110742367017092645817722293378293224483503899062013600945243447251629671590679526961429147843694095481595679336112751352880937525358785968078427702675759537338832936971290934396016356541556719168310869420795993284069554110033715210499920280278272131039050732481021850295289837060828168543684738151673695853170482951204880907782120706926648796733158926213128749926037586602237824047133054349325537268503385343351058696785820482833378355097437183291610486800687395643148927142346158022118982056206993811175533946825496294033276836043790852188768001670022640039080970526608837121110064867962753756641535780129247140830634188664541605398249941231824984987074685984253871090528298941334770917352483646755350909719189406530173288860194352737928237981958018710982948411143543239726390820461033464123216596815770990674110872175655452704218016444832531549089470453949842033680891227691443691576932432735884778908931236944480827617686025582001168791668807297296283689112530864020294191128426783988097938438430130864396745214620307177791816947228254873441288414050075306088082174349900654759808832159970523498275633417832576645541460681401909673720646280013414575907919344341734895219915948851492734097514524956775587988273472556516242333798270740553066217197919396383834767753170932267460494493176865828569889214513946354708734106098101502829215935117964894612519623585988997069016145698322607416992502716047910239544423025839740802250129767523795951569926370696018913195667620114426893522591462895280566574153673487811682655200389931090944853313555442857699339328616907588700523307884265606104758484783284196939489106199846972601380050792434352920653633589386247643218249616561185547317804312815786134209715616918893997337990574102835859321221883412975707354050083512938751732799273903453143444737253796584232447105330309701606078531132966729941937466371872177118829879003836672364060859654707026152418503640024948889208695650428528273180902345795954851183863675458373152617914487672014090398814916634680435467738860474501160392934343784982733137260271434110956580728995559638237812673783264822589570494701673212874056996339185584232734520673583925318311800298210449263792475212172665712744890452348798934431582208591323870716221351794791785679261121238573332637872914204590062010147908282517896448444644667978879714924744650534337894983572290492621183717592338007637740809727425361905037796384908401662609909667493969618427469370065122713160619435150613368591134230926248166037279036476454216356442096856829921917355094268280617628274946572122260638229074562163466537962389418492559505402172413693882575179770752780878873522819278969172402735677838790781235127989668821310161517487729983928210936881824245610372854559541277890375770679070861077293709936093473054358791037202171353921962106503713223021580561696495080410959576363816550126526452239455825109747787405355802998451435721356908677152307399226122384823520779510907178298414622955101088444544051546519699536889358024036413238368385791084934777362524049573637731185797344819112018732642600115604795208829631959560424101771720674234284879338336333412118524173350581982093389055189317823609407467114068510412517421577465500491031555925440390681140270637141409026144553843687440584434142282842899106681325572182781496411566562792946705476314327807320877313072724856650704716496637878349413271416639517908612767041334072706851409673123494889128901264673356489023007005243402059200382082293503818952957842617743431215521135840495508053629720584799601306258104214813972436562624283081376741051957500855078496893657754669339294813972785744278187333738866230590220234909749597932706973615536626324248116102524684931800834785437826674929333055246785778237935810160778664816930546246034375749907746113285674780549266966099858696278216087783742202663656935098055739816567188603662314733955977664538127299474148125294393168482541764398322723581643024864507184313640501983838444431871173693476450719366264865826529922462344329532592293738469502187855213919813897571454481890319685430440064512866436407442437098652759221818948508980486678632425601228855221831081451505577623150691054647178250145617875205234610421334566664826897545560669972398637134247162135961224113806457579318200823642621957403517416633601813414118685966102051256863986040203945804650583573709260611528822471119682278386962575548681562450241354266841719184566898489859891164649054953460189751547950961921373390387692639833529811440098087986427303049111557048201568624988351669551598130590636718273299253350248809058358506295977652827055041863383689883318956385402964085132749127196561148106984084414577728577154854867007659511338560185011634756806359787209938927031528222619078852066469303592457056514479775757893566197088178282233366088843221812536613644848338683746170923202159432125275309334984767725628305946524068597333074094337948557805888505647589701780278636369097397876724252591316778924424695370626000591954442684474781971390917895785075156988604122869084031042694113038424421023783882374237074009705478347203653463887551612212176396860577667556273902941215903724876605620548949014037069135586731936627162061728389230035934015107460170587981719673793459707817184616659075714032024325232010980698529114450915872617164607254069100095727715309269707224088970335076319684523518821272659621891382308244695926831091446818577853244626684480491537665147422680642993491117692818385397230293996827442678748236274338588983003622062150027813642086101101767937592233288945584727700235345495760054267474044608472058259185572990206108248106806423372742738476244703727276014949028436040346960896381133784936403630672461755774518116789392364339982118758856746091524766362004355660652934343948002092405000339345308512998628121087478673067716647196638420248421004514467416908251214631965744919804594320689399439693331578546257094698310903419764092927169010476442556187722461243691053048011848040085748816081863756657256831397356536108940320583727013906308019073494541359266642700516062011506109184930202538989102476302667254610220685927012593184462567377526065224939333482285649843847968152535175197546579481729220510770489051967649159493350170422694642824736198520935687813697418517940296472901047063251726187269065549721922290558036693830525734808938984406653302572935029953862934493755041808558286190794790661032867935581983782776258396761057029927133250908932753593533145184837842129891941983644011730753254745867814353413820137792756871702902074727621530576719279396880421660706132949059879512648946149623840461878086113334222512031563686561720720679018633205546310160337584945804673553410525982217873795478508228043867405764305761042689025518640183476634829330730385362952059660907687070643510258410479421578881333657732850806966200979286742804338883431532547044443760792947375922959010843071589928686446369958736951948028773828070384029944871275713928937227587513753459858827893961077073378823458708561690762020382822542821349413035243571649063709143931106387925074864074558913470197865305104749995923729507085342300990340443699569865353293841066695213036361307824819822202516573536303421677268382886879845333601786912714034179299976306990803418524545755898281070285118522545143569233432317146185684537376557199357124132896020472971715615983714600349317556817119172909058745464787897936457110940088379547737668923205113742956190147818353569422386819195302188303643298205272129653801994418643564539072615733280128566807268250021006476699898266929745648337252424779041397806685152875656226849482506699349263820225105618841566626153555636030209251029093063609462915013792924361054498495275732968558484484795869715739555247397126419592499878386203997191914876103619057020929236938392626254686615937425415961641995070389245430248372982517048128038403631381722219015382895267452835988685543899338032470508974119656312903109792281068396538949814294899352419234940163274240364445836965202269036896924350530869186919159486579446161979173818077939752171493623818768970476853124039612271748577031113899994432463235660800153139374330635554542831806137828309090438462893642867086886427342144154671130711927412733549836829131242633409748988459008848800179137902959786430479800447725368733188832688051819400028300273576397297567540123564056161555533379650498197972001576350617522202958221626523759736851731084276637563062722394130870212105494035078111333555965891167334785117796035552564827934252155428122278009020138621960611443445295809709689321955597144439575278300834212553197381098109618938825535937994780888670521716532394406781289676189341622634267657156277118369602250956030633328844270817331419982092683435801235065814196684768519183546644043738254352906756275035188999678306184438013940102252348790372165477337092366343471305551594532310319003128535111907532450231601948501707857880687045224798234630450743892790530374214870278285490638117137720239438029469909141347970348948666145964309286872193512645824255519048920378349342118840632074193760655179214357417758995970809581386101788287486828558176433297116309485439987051489821978904243568062265768683277363071043173776983088253916125241999260196770453663364323538728087792273759243491852924206787760117792353950173357892017260474828318829731184803899584802450160560456336761976287678699718879770868561899947658213280875909073952553322383876384192022456666621994164316230016846122379878184026404475972542717393450725626965381421796711983702122466426356220273414080707219845883955057842425726781320187816360395580707668136061420427285791726592032629283605627136953171036367345668520355640324953381582453275883056063341292256411429728103511078303428365913672854228754385452779729178084195857650875492849160561458262938052823814482598479598418891906899815866855079165404050404828400432953255114718792848011556646389444693285974188846026858484484642272131339871410112652373188541258925891742099806350381814421232380151669202013397002569297324100089341396538396857983479557742046686316267704810941962604466910366870094117093451481277152264439973200337170266799730690218522593301093675467819762876144719072192136141090349779134959206387543882526563749252041949437786781777431874222403143716170910700927014281368319153155888449155935013728961382411590148191758437995145718763678126365194071274165141503470534139799068138365427212193028591041887297978019869365265804594649851871243426128611295139679293226575814250859514957044548659884998368036296864307729405060055416814328960160844878181654505435698509450739319559710481155718139107420229112170658643466826987866818320732681451908350254805908320536243246587271056944841637870381843004006375119445792518551991659188154420160317949803084302866915357373715640015490634977509621302508471333883404121069473482149429614605149756206202862490382457395570776924185141741997301554615758884761546004364378485420323751089048150918951120454414754479379413801997255024697444131839189642050212656667505394499696488835368469503318453148533704175814039972266325433988277866052936171880669481353641559339457580187812797762004344781082191858758905167744423813268805906274030154309692240179240468066730154651069656377745245460172124672426065607439298973711538230552252433748068680682403752483909050339440239084081593134114725201178927298307188081002979554405590887609332297513833343456684722512045522619896235132256439629343116843179165622609864277824826558386301648660693583118526682768807076667017090366226344332902687318214169838747045706836248902425528617793120424809870043494819180700156167194885559626252823181231971445669699615700606004622032576821032786829399004342457791072732409013014416346700038165985317394481610052610183493639842968526467008003398975952518004178309736037235073637796646276236653109256024591747468120357845622040457707219613469013303768549668144859738592162007798167284710508524979347612321739817499284980873391776763276530179730473630899683718623329299813212622188776943840607332352276470464273797833921684354722623601211753934927506714312214611585102517991654687858742698948745058204751138691789441418755483070289907731326458765443260049204756055611436398568694189576550618326931875001647690342481027283627107443433234449511437448098845469296116527468886633008311056673630636229623633149292799784723733652577034074285328693579455235653259807810761918371939759928750388894253027243664432090962614812866903987023790167700328357342500905326614693978958056264975026107825564656099557428582169824596430034870592014776904616163756550013557537613129504970419373087486093828589136907004647827197620370020518072314586514167494397207351076129348580310554388300422687994137533072842377895526082759730120479703837873257072455702227166829156338789553697719430245155791910949828783635790767763948938005345821996031955341080090032255151159947870268478224142222970021415056161499421078791935432948838953225196967622447289390473489956326581717062906320636054948332305849183988912158223329447938613190241910941769278278699890656745761354709420350539630992833681754672432176592786257069753969810344101387643022574088752226618229558493262898984769548454894541292775268578243476417614507925065329740951112961563182141502053735392816294445581729319348515385962500597369526131977401928072413923511609285350993641910487170179799081002169285240829006948910871926063088875129977317047449356663722622947939990371754844739696750870489453158878343105830541253548538612824076365564534338911803845380662935839741114258109340858329533532882088780619925981029191491052390902227331558866917059612894693861414732445660234999771454894885521157860095528590269271882403533059754768346800100562224362223120265951004412969168450232615763043402448293247382508354631190199998369549156801890221328730207320752597933104478662731132101862998636577133095106597297780909060189636512809433204796511958173557839814653907434399481615808120390877739313082207144845431807862254558172219266597147427328411714146412531270485214884122543620030554246806877261437409523774730598132403051964993664505436682798881939359014642400182811528289676667890046354699527697334742542127091375984326038191046510650631414944653248568980425157500680779877238855239134107517350559899435887121281788643281667356296855797759954155179169774758650089954409658510752868213729920838127322920733126724226921824096709415223431087581843415030624543959304820281160577492483067543592785675727347854863928448881271520129293834658961782265676311425040478839665352961495332778244918719285939379628307458067892430364560131463086457215239055903601658265192721845835137076932247610300763857252896748173551923310292019963509178336635144393808123046447923393352952818191305035405237488863785493228903433649866944091603779253530309690550468443289779301279596365169811605451527415478759685560905411823538860306058849728400617517048783733447654652893902312716283032410899135730948522300232151945564831768139604739856782419938324516801492653662148995844706894534895625873773673727892350969561135618130872513712414760086084413530053400657835090680035642248318937775531824382775567929440817512671643130436568353809114397114916963439247464376723538887461709855637052003548118256119200556346384941107352124654983400450640650424939380691776000975526399446282425737584853684307435209368636268234464578922590745626693089207174584336954944523929174645166005647949784350276999146586401037802078455730726272906087288394612826979669285528870255518912476085397443825387196578297945080856050552643763527499790899712807778153389009504625764854066958111544258389661278726633129862413210345551855077810225314505010541812375969293409128861595660476762578203047605881855277763590865938985030816338516874736307143002201595814418480125242468898198898868565757775582808203534210559062497371826322099950889454046106897052805233258264752678737398721358761901327174302604481934746564300596729199195590997592046327226519462381277719137396441174513391727942560337930386927538661569915782380444922401659474347872272805156617363053912597090779248541676169447319041127919487525353538606445008656769642805184467494809778037776424576521799945272294734627761078146956461745200807809523324538031555730160365372520054259441829484071054778410448654166798228622317189564601584758387239683649904467125602894981838783451419578368503671827557729284596494280079576785209383904566803014812853415138464783221648982964404741410683495627047548376516500355971912467587085326807168669307186917417750256159632418969656343816669334744272477231683354918128023969104968588635763212231984183618576470114794568575283605672180596180095473409273551119601006344999527560461530213006082632579628321589747424351831612734205483913679613169636225663550774993788589819472896645458666823988602920467234653283195100738008237103411103319521608904185477420930780622470794433451330059486540779166818738259380379779881911259339032706247101643690040397262821694185772630361963539817419291556333505413324281310383082140387083114472082755123982140785732155543767239016681204387280699967034530480834292227933156860973666730619540733049143066124733451051956984798566451846168448791694097862906236440577114719001779589012345406546182483757161025113716978561580180151305134717280034435436709822014904283921006241637563923932147236327405595637314983531202828290096136792525231136737566236022017363355351363380471580234414635325611573994436232209116085345536965791211128621234990225261330706576449541421866011852504343245814660169563077900071579299918848217488810505465500449064251077770565439779975693445704921384758235798982381912108358438022367411564194429407646176771211321260290988672227320907287663644916232102565657427796714151123419370695848845875327925787937051265032982957055075185731612463780612995794683750076240532977029633008685065211577047255263547457692416980984533982160493487546019738927486674291106909459713583077711298685067452519548655463916449546505249103256230102069371416108236633203463221801136372810345477245273824686641967235453740535598842647639352305059763653602446848791368458564259267456923217083040439962939414430378956640854043273551146829166773103676347929831742339780008349708375612790747775418400598516621150574629193723836453225149334880606348971764454924236994376013423703407328844058250882804187811274183421418536319793103060623492774916909406599810591811096427627593363725964499524671492527554921431442691307968053773864300615215377066709463293952366166124234262029392822410553776984110063139221637751738792849624392533185979516574956217793795676739213207712513799947163655942288593136602368918991822812128618641055358368007159230958536040932676357622136316641804188700847434932212497212681828955250018266202991782211928375433132526974709955674587463205835551331983582041053671617842695158924503254872248025696192431771781185480904506944694404212887921173952560092201727614962639946525737924314462919846330649058940027901623438092461299821018368807520099495620383854042363003578459834852907363169751129191602318390212190635805236644965909122575170078768211810050778281400879087397010130038652797729892131425271685959427256101348431815336560968886209595730052258726701488735390815948482619194352349510357565399080658969377052498730907299565794378775818772572702092133923033744074877265002666955688911278886293250271189508707763110878181113876231845004725795172913822095837437536668708484458485886863063018956421304188924331632837023215279189426121093022452207312602906342536100789451676808767772587318371814854386108900040125045060054863879772177352281918981253813306272940789929423298132675683388010890187126606523269993823443209107598281110075246836853652098191643229536774212332383353545925290572318266365630252626856739147199941110351325122129357410643204914426945147253908472407060531190719838897493714695679515192899709750648285681872338005611801454662018830154016466668203188099553999643230519838107631498263929040592271983328761934711089361977056037425417274055074160062313710345588823099210687823211590779124558996499582682892195629562033796497079058599332307507391919755670595024365547914350809538918069581333160526558057759572148428021060270699223794130749250190412621249522823754906008910321260842798273737004874400665623454714450012376360346414412819377504728273051682341129830752828351929051517755120488255833533514330503014767318712800089736672430392248706423431454251766835655084796290014866405175083013019134460636488720110760160636100061017336609615443528697299985013710446986966264125459220518325047466337013975259648096341315605783917005372857005185805580010581052281060046860181357089412805570386803884775575655062779178155421942212927011970037933158075122193773019634389239962508635854488970520122447616093359976269815565569814948856841282063104006017800427916297551803879270818883652821464308706539370327657029458395789719687984473773434677770779724596326263699861963761924806309851109108824493006459887236508223324079660197660318343895105121776354413420594927939380267353335875062332489285163917057801016398664593256238254798736575073772654765828372727015856069794982458886918605062858591877298282223232991485628550471616313552208742620895733589479790401597582282117626467601403643465942545914090280398699128495967325737636722530046621918221069292316108336313161812061994196767054244070811272929334508158566992898795221318876445957769537767340056806261887046001801528457317409931272812058159959340893756809926702514947653702645300016769122805734835378459134419690143889776269472229967977462243091767949227076447087470271085097405636979709708167665197269962167145815823186703825144103490327606578036868730598764903250576155854452295790041292694773570526617249977221137299314926204046167735004790542278431958127358708764499240905257823895264118920013129256634812069983448237013229192724621211343575675600784390221302517239404884127807812950787860432493731657309752773190832536580649050182400546552079966403109011371357379765435857757621174169946241464247518950174182499858819002215713207087603352946137888956877855279609728311310221225826366068174554965305785309542066591068253031931454530297403827225179697852078721896171479347697292101532072302149376093117245398183141075123481794584414690986707722170017498112364361783838808648855862871091945960909722178422898405245256312348662535689791035637204634868351036212199145625327589748932276105892850746380347148984648731218186726718071492583725346808151888483452434588965037076332038165382301351907766172367765745076995078891071041448946964508287604678419616742498068614942772267456257453401161555606320508068589709984251762053061332025295227301152449859372761507201466745007414398872769131000515617883275031994806413752071541085792792587499863978676043819051207545246837971509701661325771014947573589590084175316427437262089650633169449424519896029110166251449777444053019185364951745991133393498382050368323226549670676163894944125276632241852390598358893000419837734719100257327916638082514505878816849411530276880853401876250130158725993217047013837802114223260353889527054399391526140989096931274771558024926334688830304228486208885115526204243690947614059326874476459502748372018513669536326708544091368714723936221335276245990057249533533064743578904736441299071750247306768703162903970916916730658652300320038245495923613800277117682397432947991370187364220998686195541869600125270800130999676797114438103892498139645405152146021774193897559737524013112911100899608495003173703940563678647323066830070720078814134077218297611086057076140795390921657907993115396840690925135855820778357386012300741886919831844322045779306867812320008551584197657927292129644139538170401330092135410415340222568783807106172156795777527394019233924909138211751531928935036092414091885239886783409810005421467414245922145696624910542655425044818732184752775400027073449927992852458514563783166574211055981599546868469615126818414466999126498300353913948793284766598457143572834692106978167905283246940061145791229264612973881330057362292706558281011723278690471497712489195317230751918307123417261151950911812939023233944334357145993218358841350735703647305974097102489596345004380065806040595179341703160511773857297208814656432593457624544380956386809970896780225007816244246003611170784730104386841156299553296967427649342215201070765636656109624441000458974941878750945309104125207523517176010773207409081820579143722670155648601464148882131449678610417001292466325428657664704756964899948873327749712088529671425125022234735256094484424458805373286305638158244897644672143324409704023261171287333268799168264642816221393241412841431270244690670161562961880127348625287516243000653599902905087714743102608737840898667562615048884155671789380827631780890409247255510316080731205749961391478200674110025038434610595129927410242930193317851471851195856239333463070918579697502068548138485045849774482322088135070054530188483914048974529794496136761792548851520368204701684075892738702075384381598148870051275085348983118251129817344816777325222510764131857018394027216452144539583181787615119974714341420635473232148685537852872477265293530186841187346095845899802863763286338163387444886934438609002230998862735297601953475344292884127778602197949205464280196784810071971283640200899556011983721683988158253513645813560086067514251295701856296639785895400268863185601023678098383918831017840834120386930837830394793796635350103092660034568934911070376326168396640967540900880179855584087354412158211807594333874327172089655454811677450751222128323773639101795205639903373972491165009930070763517860293513372342391436938680723035974265405898504459420597706628340973169825483603237251485573774567227809678997108368386427339241590509634500540350736040968006926591447565890589093065645864825339268412462654288304106916214523538501186434262701844302817115532970623098376253525125406866139339982667106966874927607568386931277364541673820685891399405323984787821335777829996139821281040664069327712236307640543606335691357378161141694736800925073971161668340637932377850223678024795927742788505535645621188071712873205669426981270346591436314380347853479851763433238639085970095771800219664631319087390040146038850317803074463739238961711025720476416239624071210061489987791772997661885874772528843197890197969311891452732341756321143957639791046908021950725097567585781117324848713029844523538024696828869109871963328351414066984014310303743805758414396016329461508337012287342165645499321420268222659302355811798539652667332392678701377684450474590733410059253870882311852399316199553908274016312011551411518319734350201962891831137089291271508068103540256640339409926159892770863051935314105941259429469490508121103027038488629280962036571314855410607634197440337542633294483552556300764830054409954301108156073653502069949224825356272274156022311203212305363417096333419331436830211186570769054513699683312864449713979753985912356263541642801021298096653048365811519851155915599204732352027763604869407595630934901007651151608211926981462118541158868741033078714700469355243211153330635369407866577484957817958162601374385099374731442737946104489986685046054370895348656479509822293878315930147976379923497417970623855572794808600377607660718087417242267969668962744427367138888530135254823057206518531859346595466226920971205490319967349759619989556226727136995126360932433787510764831341870620589677898889413974904525751169292739646841336916096352850480576998232107712457115532715044922407299847698238067032424158065865863529271089875830915631738214634984483736797837952726932447109689121703074690739138466282276215870345101277470872758513774732054029959791442007898173059575567530294348836372294661803608648834605181226549316275505487430029995936747936611158145300050916505633682205293657369484102996426897543775095569090394875455444170581539901563468790349253047200946821207657820630342908716685898301681788608020460187588653721443253639572229230410173140470752867620154401345013072571449978474432508969484500027277528653329546250605016318897201934104132962059385793380656337957758348552353752927227489842889223960783073212552960208208585722858440384915959652473088069600913175341128591662210337765095767382572582551421805251171175759897160159728065944157952363959597584722784669304046503414456884853653257368583612085942714114885380238672311701904340831230874051471342985830107355626133554686948257935570367436227004432015971592524678211639284251915531357110264404480510497708394560526279102735518576270371950822054073088381890686761090782684444555105702469072814414542086289423465235619940683362730356338191251447755928980517726615678664454396699111605388570000487017408011623503613064517448323046928845826396997402276932604666029796746875953989665712075426321097813271013856971168003641897647776408919723289238141825276175052001026190332153971054954641557157896132190984250539290646899540681438416236545302932797134817439811994725181157924652206703293940155180851432494204146961903684033432083720734202059961290492027764944922919691968230389517360783389842121071208832310155454099745499858391640798348632585896249907509975383366956545652677836261293533013293362966796796944987708996984313117873310631616206649902091224642146481176806371896363192511946716783803056526072248676188935750266409948616752369530837537212603312242053406063120326038207078285397406059599605854141793626827359939390503984542085978705529513866512790079208706043398119758189785373195095585709938039203460281628209422844033637292193658943744381631628927610202016402425540321205895036033813757490746439671551267223118282221902024410200024068576295173809946551379287855000667215979406570109777330805881603132198663225901029028847553662736296529711437299676588291598345945732741395257783332851177106730829302394281335240570809705595508447362880826509403552796591468224423617078349369600621207288846646519036682069008116705365704902896568146084887965648520232787850850165640210972566493050141555023498809382442664857548424516574247776027557664982525465884074749984926043390368645428967404287149090670365175557049831082962271483839655488663933242514713994265179023458574410138358157206320893097824811266510736260910760935758602346906115736155408211273181538694681559427209868694823064279799405313647344691365574395927095452935434409040321549465881037240737563161678996135443552710686763615766833298674957904871491308823704622277695349709668090181899143463587056554136410724154071760904012544995784890244218783984736747090772385733083616287733336336090267885913892133675290834089934102818630497618009075018854627014028375120940212857144062203808044241893664154105961654212273925449729335339438037031809680219742214813432660358613064451031806771116649386584192868222246229670563178367202650635189801470751962098248548796572424153043444579202700227519286009495169415565096268653327645112207181052313265017847962750267546885985877086214835707627852948817232073651737069130830712031036589977884388211806753285621815426837374588421827256363776940371015163453425788056289201743512219362602552213462517087608927969912400680166745486697387669652986854783575819061563153880034552883639997235795886235333547174757526427378548083034937247020885712562649999258497280429515521332100778853343757254809101156851645634445987417163193295224376002503790583057038486927087324441602558189391569952054151953185000537957610824963752877251579912307722591635567529462605215524275139239962804924862522398477130390374832799231933103796819096696825150056037165378293782593743972062616687461135416987121683968977455007875965567506649806612424106858883465562230743017662578043139682559983431050224791670532806910440857023909094747389639796241337095701357712188551602212577485523902791291753572465395924381637879968163302879792447608841422172917569169499931270804915533860449938082447698498463806441357215250951060878739791154716730829105655679510673419517011861765575689676579904930749583994791759925808563469102078547022797960135751328279005283896870770638322762054667257473984048442247041263284801573976903956233799042612104302870876370550280910815306287667652469530106582079896458758721152862444878852317676269053970845067644931824483207454937897923366542735620840302034141944045593819338527427131131532431016037578621887637909507074880638200444373704672786081248168747405002992026107081099341228676146600923168769930162355578194630496832280131177790663706615960447562371235226838331203144350355524062009332240928416489228433489207835072801079892926013920824995903862836237373516136118201234615219161367332665666443127605791921855027164722841329294557220821865720109756473714960645137725595613405900217644768574437308248904940302248870145664079495528586773245007957427198606914968104558666441877047389749370248908602080520879040270569363000959295861100496357728726135666484043293185362200187632836756604019004336507913720812147729718417382476863508379158194355883852486028918303792157357877385075303096601695721077693959928851328830327403677244847388681099038547088537622744666825988613361606561327394082750738647849818889947546689480746524115869667661139835402070023910245056535065022283431090454820715607992847246635340537180291649559365500701535772187126829466231672193926727064143548541575256071339097350112756760712965297750866816920485567512705005512288864728936700238636192189534400860390992033617590331405794794700231144075558048600455618080016632638151986413567624141931659781818731981446764069271192437921463191170535393111425150243329904676712476273826287744141356804622840496591482023164950960544715109728848421354228835748003896727649784749675892207976068241985100009674659251946279370170370003749890685008787567784822574773786567796374344730038542461519453586873662181802707725235473785364884349429507722495674485335045225599282771823194429562543866772966758744026345203309507011680431674047823950069138543787674766780974175554955355611308155824422692099201114627324239336409491197938552915567667239394474491344481730471112687975435313853343837752720913369877743851320148092143802824932499249598066394258466941443415165242581573980085564393368319481210355987128261222895803577375601096165060276410005136696593872745061337404170035316383131150251638969654403024676503396154643630601900498260413926705052523277983683069209138306780088089404503201808968188665173263335365727686806059588820454043083686655768602735712704921571807668771688262260591424203275508159689437441376138178650787366149060889667113835084839912231974772273134811640856659100364155278195651331410097975126899977651976519189816866468727117966262779056173313773098773466235634968706397693343808555670365002661810194052255241077290817478321098403256453037515585452950857229073405086506881535209927317699791422140579938271726177365554959401418725387331590585783878524777293367487441291449783998487526003515699514875097761333172021615439381482016455104020380462298373641517291277270878435967190839355933175358471508294519282718482076962720765178581509257730737971789719521590362393782605247594923789459498567699603075881957477134545470218882398660493086614737992545223169435107684512715592440877014512756955872995013232348228703273774727760942145882384299292391108891400023858588361479843385568659484344346337235377200210293199911865940401916522869175313388886818777411561501591075712403414436141046327126191653951529893888082564350592276984449764005840422640353361293435026432997042934493837288275778637901704988046150338568469993005490375784534198891827508774579839492119463842110855996437052549327282281476522277570868172644487101529646537511776099399059139681445660429629816849668082316334258852832303660344838936038169917653338976523465553484752757488508689816778890613323671082883792793876535220969378688704614408042938029699280119874153374763130951179843372905453609906053512151854007654209173578027756001334621387642531068885952998061157935106531109317961533178430597675438110218436995775944866300374976388293343194789628083828008827568658179882587057656178010214897682420956670358813281632148414704811647583652384265866400708168137362774514406959957526436661153379681247911205824006315031000941119645483021116134252372122119302315820302952543190127591803385248601833902602069682346387293700036440223640144021649888364596994566576706712079756318596196328129803594753106113308093120574605259467821937431279639887603844163131474441546094411376576252704992642424424081819143247209215380061974250863175266260231780347655713218786054952262211721076742135076424007142432867512415315814685650026332954292336777797238286929182366427013638293103863541075502463583742100180530868214607343552090861190069899984304198455824153101808621159349617097221184844834953360979885617477516885506588588999809051252507473438137199334943895280265223533233623516500497379340966382940794024785360669116790993400759335545855702124326876024268387293808348983186978341109404771220978750502520775606672217591550404702187316653608082664619803001278412725605322729644145475418337868785214077086980369443502757617066929285937136887236166693168158518696074976456360418525105730956291858049460930820283263083241864929127446998423458306807195066035298228530869759901204194741052658514977415784075555404554220893432226882572121190227950705888898203204915172812333155057952035576530054424907281125524529997672923299544511426465792345685194026803279297554727994126205388739271218797578113710511160639524128122778415258401455900974282224687143475487998882594916529840641006106548145463120223398013489868364568337034324514733021998320770309572016258923526381117679409075227528229350986293985310714858814844063167555803047307556705870218703865898211589744510359196097403129498665655895977159829180524284215838921535642870533612165652156261051046483097417855524274884300176132526915673889796991215322721412323188444420818195639796630664386595987512795141536426611809605685891188331316872919680515952895129692306358549430075098872770332360305415307388070139112725289590140283349838035509830024136668409326450841552795910831460007689365904058355781788081624891172400985452657359403968633407051615903196096530540834490685285565845826700213104065699284273872646928865568851502922579116870991935649170841869716432461201094802253139298787869662616081419273573182000741443106665262352238950651687102914803975403808362985501131566935737198196125455437082469160766770287182269737083159998976990025314538074773490030057733100692627855758707433452450535551244123098535209414378632171587418638751781562284761059980313148657020748557530803436245958724463368843420227055996403216186342924330766962446442242466508098433881765052513636773920702821655804637589755011912364855285664130568656344602161338937818830378253295009069779106274744183576146936080049214273244595196971976508068389742531040996180927674300703636826047718458202640552749191695224982477987630748586752867491353699865565901480261661895989115807195278504644393652404907697426561215282405122286733916600279631242830455232984599559529511442674485109176209098722723117494460365092335694101699847293130841097512032129731423399230531502244311756875608516975844310401051805279961524076459533940367354883667188991229964211439268065110879079745706503561504836110951851272165991457428109576694112471906607149210470144531232686199442616629236856166470117322499549596314425964443504605912553561870078275871440454651160487804430626074848539436634593568011759956647423953785974377003525258778992645633990873158813887991543075004810474591626714967904556180883003340892860173356715378148523364559966753192780146892387311428420900386197894470550749928792884997370576145916164804660785607980374998254836512038618434030779700168621151673438106293183964281487868041231152850563966154889173745707974836850791742467188601644368550638941745957878568754481251007151824570331884962740816057428754562680208001859705855215039171401802314894195806688593914510780622161365207596391674749320284381105577001935699880913001582644936909759085621658400483021899654052007975904062767747195106593099602989179612466685695794092031808650700534934825860985936488706669706710865591118763953864027146342308632297670484623434233780567409273965668647655824578421887832210145620832981737807856607491991440607181572853938874625202493486793720043519795352059507522410020765405765942260069175981604899482967269713410755724991272970790963622785718560771401070087890928927930984487646308258477591563976972454659401583960092832359680361989506357984951380230110226658359325616894616210554629302766105035925219988769939230853597512978489814236890323764112469090949510078165478523303930447674553617764626266432915577413270069237269456649968329715951344801018106169945101138634569305723904063932422719513081122386415245426702672700932398823302639467983615420514380727673007008767657217080462866272621623623859274884529439666108877476793648573129629603894443126011278953911780697861161231127209033448971887171507255206497536846792761474768622146548624523695302390839876129820253692982546783354886057748895052127166921534238901053184475465405308877907033347395381689204706321243922651043007800694774410671011556375978037890585473215607860944071687438748567116726216235655670422064058661679335497465191967909879466504131083457450214416936446595910356453371397700998617118479740469977879153652071543159694818708408259562647597951425542220039097105944835410966263727850235386976294559641833191316255986882309620376751248976356718941622608172546940638807057830256796121348849929675162569322488625865084342331988000936599791200900383435883902748074870637542665772184849949057864921991702713157944216953125153076262976819975803569997497087883179215181417660072152313278880882425158099310936985815047589949175437683590459771840489988875376980455140925687559560699190835844104419233538314042482150371126467702142838920889303088603308648947863712879007163693971336567012049144811818655890210454694267590560068661212089704255434011172092629901252850972888789553820119250978534339432054360535761228551694444657239519982212128817862149364102823624712196094227615234567956914659725438235219603964855451823282127706092607942906105537372687392562100900117231581374089246335627776742975724294541460677269596260859250978776071643751479847809738420901173751367062254107384225202459013540533483444889358073517209244386842734342626789414612823423681092818959610643451376760274110536277383370329935375337377361498576077509380988882728309759647557616858127642669728985063375288352223069769815426474277080267969068696803416627207688070238154718289976251221247285975241483788610609565152102853367463702083735506457779850223013973573610572928188116193015894560571865462351724100129773020093008948719395665325490667700225444221596697311127504151466067504851290623868116356216114523406083908470666230954499678988820096153699285383484421883370245397403848825512507890288521450555521721123847628157767430239804391636036550602584157209987551719677866382054912761070395251465023165801083686854599911434156434003296199887558860943084298855046937626687188142318887013802421085989087863692343234163543763762369892545353855742348311175763935007929199191766025203025747336447741774706731642571711150780280053678470943289562469921471725316460553350341241833471136516832143832549370651446596021911155834145979111913841983020080022622991336301966676618940731739891022120193524193332079377325330873779286796855297793407335196024605264895728388406215027205241628409713814037424396322591040779806463386666823070867502538112012460658684873293815339701605644514889796283663370906298318416599747216943137770320692399054527421396406200229905145647073318813848414383551858456488216247258077682331329973554623551993818915723840735646840777610820081047140840355688444026391883498893478444103648687644337070494944562793074135815307594140847539656806684324579618660890771093287850750190756045115379896196553586291936372037651871773580340313792145961392849457784037473129001764827919025764924452250652159988816734833185295707317267172715181207296885330927521353301038285590927596573172172617770007754399824957991219423707349939506485618913640728560370871784903880053783284991423697796154523486119632861695663959900742252173033421834922553613636877668638763908176654358610701107448273356611023406814963394803266085969844392503642430451828970279575487569516818334279223785943984706830336924197767230740940660645324728961048377825313870482898022880139639815826998217272969769413178727427059737757100641552881595839045250446053552081503174286627947627069747753564893938347800849696914930607323349616590717912029464212714974953893547756909800307650814279852055286624927202811098863770778965709394226493492433608353092962423406922581824928517746785794169176380417942034417588465310771496512785807733522880578970383876418225498812830217276627793265047930335018990537058057453159355099341909806360770579218962553792655554287072420921631618025371875264338170079394296021275059794020124741779123266475450828475050250933822529864163775681117760800954291953473408559656261884548851615510680478994483608496928938469422990396732820084146857466155329108699138162684473812687850957231798625696374869053302848098652799630703282797841445455285376590496802043831202548054093255230496349723158438792555729586988383064681612266395959631689078219260232731704729665208571587672139144211340538595700832553003652717834280740730083876127522252784383747796560324766563302481157872007174709608451481884789294758341853532073528740633588580901769991122419359384335826694184584179050982818642661770816457899946125647058703342869147125624593297234611931576962147693391735236586740067704417298428085661793813824389192561983898418378128652723537109032869662808962940346892646421630127125302465348749575209378355115231475975126775986592667092925466096356693997901701767440157435407477852594404528812632129955684099533935607245251503461406859358453223470432018859272073035368363887211139832862492685800888574831313081772393099412528202141125415019763200693270431169682148982812465805310681941558729310832374224588922677606811875885820714103984456907375547040844160262708746532988197648957059954958072104734941442912126385768669102623437526144708342477176197252829195134762132611393612249508294865984506613952001402598195022279918184729200760214756065066026660875540815072805370340206274977209709969274332365337132632629933445906933681820422069235842259109883851489970313716252707402685596324055550253261720662386558380686006993462347283068964441227444053268218966829939694683116673725867904665900866671616159926489461080385879627743486439488406331340598848012270227353146314436918218877448234227607154190767680384161381022350951853811932896158940817341609727872793245061227893922474823075081608057224993419791161008564616656446638701223098491756941621369249393066765060491717439449700037344773593869022201996641526816526455506342237256226328861230897368742959269702678756093177184597024760147942445802316942939273152699357300748407241283166024003469435393017926243913056737809102776332209902054420273323837756445353983321426434973067151243416896250748087367571394982413671480431407761522750604898687149992981301169996201083456015130496391947828434285583469403981283004894365152473896182861015916156824764472822573585094782302735407003522328491770297867457546263741116061230850948369196455159818390226858385495816200326494706981280190270389600268103787275462914818752823221578931510680026872877154153883246170048445475693593410516028419455692765881464907841920961123565428164063136980633662734474982830850316125637704585157974568614599427211895623159742282180688655242901422302731363461070355287667702667810690174547705474139970465507586989647590798169624107837972030285163149288921727889709092749455206471979531167508215471654450793264141663875006648846864205863728838666000723613122780254315200420344415189588796811441099876172579774157979101068779662280802814013435255381184209998093636476836391981887675557616024711467554789119199614596237743825756030768355369113916590001603260091491334622534657760742407639179331596545206208967884008961724149442488615524320014986960781835737059594016815194253038358142080433139287063260428901752839137065861129539297049703884502032743235678708774521077546785244873914278514326068591052572793499665652135247684933232505166723731333663919189529772310249206859659976311559176525979697625963859974888442265682976654724999850029015259371670698121454500141033905595682666781580779196961068580648379320175305395101263722743159702184201095069915086484642182647020766379934041846553195801050529958031642784937307481920344292500169165875215592730570173005069421536360744958234941531712769926373296490227767183511419851917993186485550900454484632246191660001320027970190454556258656089171259854296267273361019770811315072090696231542687703779111825838656399651908813397113640473643181620577894992429181771736001622115033040003151883034351625061632966293531132288947899999686456694637817375340333654960994638394350116117281279471402666449769624644661851619355740097259361634721522006372950336421069420297189041624548391820152386705241659866625112864788282906754092383652942958153026302089353837018479463813447287424183280688912831518224688777063919580131389684368802477896319575853512735032534351145138685020979728789908219763274101667545997701457684683299931594304645614298457631314676471174576153303802596027252199405054195400022663740347832679542465244086853541791602030386590897098101763690799545816549344341634402064218527685176024366422882343019147604874355206501878138278178683821995569732588121326258372999894534568613927789406606252947499015034723263526233093688845267549157276303086138967813853302087535461321827381706686680521080842004049778465248457810713254637067915147703284536740710739592046818052349748078270691586359543845176928699408949672258102594493977263650813547888420931254475968728635733452273473443466257384886188859824914462975403835197039390374035271515573738037789149341124936864649806274116707563365944586639887303317085422531308282257752908801261199525890417255723105066491589532906985280399787328524894893510661219311281935143442847499158305420703962727228214220656449964050468268212868284363200934520219631021182631934185876721102766245498491491075069042374993359423012342472294398327100850493486631467301274265650247564586986494765043130282121856983218888059157789049382551241424191427142981275330300075435644356804637705358301530761607726794023846379106829166784045820054186591944030440936947959424618797827249533680115313037712883596594334170463068879359401322122425789338089392688930983462343041601499665657683162341546192920767252190738132829242722536536836254247677665119035689959996344704489005822250953780026186436541356457337929952077924499554884829566067887342231808460675354638162954230600706148910576928998712401553798956057059371935710775816038188506199636298071947751908693985727761836807152194273392486647457161601745449982514048203982232944178857050232290647827067028183133021262189735258650347060413445704645937706529689348202378996656626131925636390777608072628870662623839071270979644859543287328319204166118608008973813192449249194031142125605066448580053518237545640247992786981291940569054287834607618475493758697283156569995361418879879371451941558459605443047218013634332086643451211281673725031120985055994224449023763765971023994253020531290627077614914005306160215640775237371583920115114123595380806273769571248185066705902818356093733249534245347000676600072750460942806612029347067635111796362900469856688705705965996734778047658146330116239583818465776504030422016609557893379122869534283343192431048756352784605360974426463154037823567432859576149073029220392532345959782507470938957752947915684083265438744372220490674018728414726637596525901800768980310878016515167841616969910620404362988474079687198222911160770976362471987743511666984657817392059312238980622854487198085286544960448582843481774675368367075122645655187079027982528158012851580458548651413833313867904471198452512168124070679461952944952320462365505640980407074818102849549849541069717165548404972229438731952793411244201950538440427467686597109073691636882428947103358473053411545561153593281092789798308458447003601178486094636267059087035513961080617291469106458854167567141038050654323791939750119518601778739361272625089309754808587531200970619147299745772300648986719565891259141124204359664887864472778907803255234654688236000149006984329452848446294135605462531819677744534514226897049237925265784900858681031159230662304844603259457005164640324543520731195946738791397157618519819420197864606091383713760043016851127942249695988796150129672424332064769284459148289249369874321621471334069841240443492209847319228949453863918904902158724419391682879220010529272604244517761652993134398038818361669386196991577081947409572331638401366505223989288614828964290106171190195527998129601995469113985027566232277191809058070357593488665709492524312187184664315075579640562081236417642005417911453719658033176842148859139451184277517925887427798243464298952698333661681042912836461042339037276893175713221161369801903408162748846281559925263937939287593093316543488637745931798040042881238553526386046116195718041676595795368534992966156816345264189078046640354580457914772774236100187800271788935752506322773133125174970110445558481583491837249195301731374754923935644503363498839566726110022042440535476983206808725214004864167952733551244185589943554997868942251867911381113564376855325718690595863565439697700141384301434948630058305690803281296695395599541278392268796041500332516489728093693186572361746843114334154941832787842226022009751293392425351825301804054759293001488005471116606610176091641389361255866371025842551734421104782295943665208169876764516417433125409667982029940869884879533380017777902061648310387471772632381604168648351537087742676223392459574102853014396321188627558992137577852375209833308589558516385653357569072045481784163561137258644680290684181641170937647761440010385744721810388362717108227150366152036584601440719023818919448414209433668279001388512719773897544171191809022618963919599433733003272431809773528844533867308882093155942211353925723669562300974695164937322726399828580100584297374615933276818957186574705567363277275633764439525139985951092031628374528850247689965241867579473621046658688564263260152060624078381136392685164015228682937324596497305887939183772036445413956594781512188887262317983356665853098372959000349954053281755965449433842021799317353324620296315874369666455520870972212420190407742720919625259858950428155572421942870898908862816279411449491238121320721858591404149128482418568399434298472928248121657882226282893214845686454968600990510670615370071218068198957369562040758774337117581361386464391264814513057362853625560504184479769858521433362499691963878019655009927966207404117554779764335254014017996302720524140432554966664306224258369567986027885372301412066885959140421063537300474860291289423785382271500519994979284275510287346315880157795898859113479572957253078522936798693215103515240552513943093750540137802112385029458075823503086943915163946217557897627192780443736470036059392450123446571637629994604885478873003468255915851242219920959065768765704757382726875131577712503347272123911719816172899153740804380037120980979606554382348756133085527973180203357303381000984124026054447683006342491657849791113374786723472051564194724512263915641042556996735794600247691456898287037257624749465926270514351463258663767408639382957118936110637599248222890251690019893405564622232300832203635262282631026231787896453541384943212890683704440168594666568764656955821553421754934082447029845200390307814476623874848897295760917716772184682791906909474689993319432152263771785821691943562758167740457527715003290088078370890770630012489764387309284467639741292106322865260975430214241668505264188766056761647312408217603026650097480600224666719354560619516854453994626893018882020453344105643899354998738375125778327065255061583001888683481107994267347574974267844031498550576683223275689438093733946939624696306200237401891761663405331687639898429306997791180067497232718215320084855769958911796004271616408056725143969020775222227321953732815455527372407589585482200277466495666043861253633269125625736490823162827340985681555056698549924422461055194373132697151412734827975464999504228955200880502246322591419042449649972859312917075461714935231711825948195513793466225780471788552078215239277131899653929766392888085033628546406314975722935800152305386294380266245844410764972337108595638416197607616184236371376839002043486397788407836263821449241658914589085913792756943696522153367029800984110232865712645737812907170992290725811629127462156494329775162430148314481497702573321890359234848484937159405275926151538960409199745203039000082908565730991398279970438530391256051162193897810267111870686655273338747362512872299714817988759010085401347353433362289619667914127936642634625805850328161513388489773998061566791940833756813867845831721531001588042397970949250738796417281375362123924314995517720516323454717752201195186221473939018252945491280971770374937178721985332081801964974916052367924470515631281395771118743017702971352610180454677835525292970656959085326124304959898861009655082960995118946748748616226928044850574133496587478366650601525856217048472845604403059392048206966910640721011433435822923076979123894614278423747607800533989288174350299077969603971048602472800167036580889727181936655305490857537220858898924836953070919524283911892618098070089344968324062993936457037750725337586996523478319853905149741454810570777976191093026641377887572905660554578005334203472165105871816415211982863950040806006987189411983204945608572364845442669043329875451098949201689977681601049894982013584150135122959570993301378019166935490351563885122618448201213259526140882462044463435772639103174724646262290852535904603198501712742430755987021890827697789973587578728824941958077491670541368826398342172510108609620713111774707204346143634146323308278462830880207819329257969925118231839273901992689340068973076414537505020284054982323361468839306551855418584961369939755852184709314483137221196113250065639767597296843889867436423671396124436319082554814709330240210522731262520603898795907633086432068648338999728006965402652125423934104355937429289193563087437996612730699701226445766884645343453242286606468931374701231915416066346211245353617976526243745732875384429280863399337975521662334354248333910377770380902937679327043503501060722034417338559657253053578599358406226051381153464810706852110692660064085926223733418810265656257459406562547233373169535574880591335653108545628026110257757167977740149549591164801427439582110320020357548733335151123219535204368421110089032213379765609992462116240652880352204996797564921596776931603160622696352784775582277349534470033156749714576914439009679880171294545552749420546054483147402546201267218472093287295776552612141293643583096222551996091794857580585155751547415160273899560848575971089102871597072038748402156712717106792829681075403643685211892002342838511857130546613307971958023256943871371927007887472142173448316687173656613771602940904465534394803891809061462220293041147092113765644458451583368159863118452287152100913742140223127306386621688305229290349955862199651819509158436927441342795795282773095824796051634449310176404587468089559943146511892443645892640380866166672150234676345026892257764420810065779117715334505426239009060889804448495625086866301341185934048663750644655083096718498382076981966805847560506936858483020849799753709074716054904766919171899207850081294591663290954440941591085024087342666472217825345622148449974674002761268332551871454586052147321573347315948524335069402462429301925394399962284361214440863302675535527056069116504274039105782274010401309677335378092096354388122677997681575720495956787801243265015933705353057584715718916896336039852503298169535023506464090233918863906222872470032263604077586053015898740076580944446512211541406529029499092525851855156089771991640971083640320050793849719303664854734828417154205613077426138255988710499421335590520478091435518317798352863980675780177881739473783581844485746767461133883309119210111224757969677991241456082268260828093419066160819505440111503937280936081561251772209928096128545047977542140778779347951486188939760535572228853798203652713137925798558127501312459734866204491459299093604208668144632491366774771613318047211786990026127852381395619677251517697326422863327098189257319694675140400624572306750189480474087955374329348891887778939078259144036634407962360061504870516673721073279590143913706653516220661292327444688368041204041350404679359332469432115761453599936239697375160453192943865676636309933563331254493304926134270324576721798940332532126257643684825060365074108776612275802729996527858526285604030870264609180969867207688084643579465000867698842045574279386058010637957927188837509948579789669780216790938267421489981747459860190445058852818690475627359064174271263105870788561450517104853642598777289079626337535055747870298988776643444073251271107259569314210731429842423558678332412070190991318034249465934833099020734268794777817005116278041333840829916002089249676770733040129561451018479816152887317119858183086334353800847085999795387771327537469242353497854692178123222412730361894657868715433684001279272916766082119228754560860628648047705988994113990526058808257758710723339734984909982980459567777134035475263930640135812433498534078571377356836401429934009533063169862271253357602880110847327915562331049069465258578258956627559512649610344552152271594992842492965502107500847907866176139781650876392507405644674004653009904439706690925327294752451978089348193210627512754251552230660200807423868410449611149766944893831927084031972266023545294054107617985209455551856098943930007289306707152011199593643427502491750741952851447595005694164426410958270267144992841986630350764873019439741837202194766549392455101831735190213874691264485406800946766292754289997960965650464552617971752810786601706436575278952308382015494444684447104690337182004340043196977558551639077400170280095733128333337027213283264005814086741191783088861631099967513220263975477285288739780965608423936448573956716266742493757978541644687500323896325151084076575146934009908666634530779050455669297324028674628116927394682680026559823823010271174310694075952718325865367020343511177512954243907587357204783263305964689030014523501661789520831239896812128100997755602999402180431098668562769895246255295640422067190827910000200005696249262749333782457835759718716209465582525563557951648563046739165085490310222049781889476747275104161637032024244599438948095707742584398387264878900230686975776623352673473052869286829217909373942433136882241298521010674666209619691788993591864498190782638602672761107574236651051143449814883412656873696086724159455582281238886719249747929462726107359674042279769527410171979727833059197396025965904418028227673101681483639524864058670099217442208858174377435215804054699416709757143757610562273334370486021610503084500896563638829480133095662291577251625408876241408918349322672014459773708514622809490437131657618638921513060878219266883927726785195908563053489050490595010389816507447577895196843819543781621017212055790053686673917294229156917867586346371267379578839754709977792510544174525179148000156868101118307730019089856905530890629353027281997472951202233570324896801838514045982802172621038447828704202443541246066310485802788311128570622714829180097095427292864936308831869218988912333163363345212719797728768114024138210737299387777610479174516509177009075296199448468352410601040292106588331742999609610606770103208882239981117540619088591927449759968572969285969510073305010846235430859128618124355965610491230763863444116784807105522340664423120294384234540387531236799202262274967405831208357696547584490966410370746383824722952339019784461999610272635374805968169699808504346118869631005554512876288331050355351017029588260336007606793244126470637806718748725842666756931005030232483570021433709856781823093061182726982503870823857918855102290349334850596550627031471297434132576540563651995907842277660557837368561573126551911849089315409470188355979484300311144662959923532411907610330139673529130646711091297910561047545605642795290443805914705344170194780332500513105349694567750125008730798842972657039371140229666776456788114307305464221245447365844717022902731872850832023518673352734128835682298945124203392633339578992101022503807088030062885864447021992883168639488770330531132242174546095873409702438791200250177871892781045285431082798662182270686145966364229161906290904715939282817250926798524159299974567087553843038370525205352246490110664942793024359593663540312656823169085886411988198108932968764606455183463192688194401223591000719761860856013553441010956335909944807021431404622554744863592558638062597332019984823711297293653662988950099255280129995686888056117239421217536467505282847141321912529356028979681437221485088913447017629540828156851138630733676823386929367690387344574322381436598366089054843464161950423024776060613847621044316021433281742207682081554295211639035286116581733128286715951070690360631301137147318309871204947768136686177674518937376644533720989290826229735073425671581141660361888694409553194106160563346149424309834962031846975434731101348701290904848187272125914022879676005313081420668712678631638700517709559068007064465741947898469770584183312363371335624053359429022541138279921910682951919200832611167470982106482869005758690197170268680742223774070072928002470335414614429133779252198804528817203279779091720458681774012269262149273970834708591501960093755011322232728306339147114397691316149022673359844307304340189939318715815424887600538690223133010811399446932834788907112220450364062012957580291575717585152459924074886331457224550053079700609859089947137948274930225187410807884383217934766863364058556747579033041327883715988228593607100789964106022666652075349754863346324526487329258248529941517551411477587671507493762349784248213331124908194339039198792620547890147365473004301760452749099720753762575540541203349481120555439637933243715593907094233511977685388904113079061667167446349820444722677831015500276750662869083937990163135846415458589929079886615786666056115410667368873081037260333190215644286903616531899886038546520221489541130669401923154054034747817800084571743307655619753992332413552239645578142284483652708180564399497085931358115308370945273203268490146230757355876998582586374811679733039277241068729651405526883611375979648002566066977193786699337733193135983909356128332797811449988612281533601874842117032000748320078005881039711232639728451853371826389673295490789286097828131433082304291657886392069763697972687753769328868374461631200283491291473819764713020193918474567425005253382638317314354419763631796603819046317911765947771377666019425573755357647155943542499321834534224478696565830798341134251251470663026339709736650025901661492618039482159825386789080468471073174164081626646212393219458352485638272582754709884048421502316354056052536292051452620051576359196719500636814249876769885823386906167044809948940261129927750791244989996300479587887792328799251810287770502721585380954523485471271990436051550383226370421625804137670750040414707342835781277111578803157826540099605077650527608035124534746556340412660177884496268281806677246623262749845473916397838005123543150021722758490604249916614603044920224584472950198866485081076951108929200664088489261141076516743149522390894940985607542217982676127305163653316911010513584901786636469770549132162005547534950479561651781386094933531603621248692831869710214708900352511853036220475408966913186742417406408519672698220350753945576319540314410037039545301021515925569278349189892902433326098191427061708996641807772307561291147673555668735740538741985988763199681593845359064072856878032788407815173482576076128519827236761252126836696844953408356829991971171625891532605483346045107174335710298796217020934889159543760101899987600778983591083289861541242899847601799478251297185926592679485494863246468000234342096232179809264265604265288726844159553883694378544975808896165496616723477613060654401287201802493392186480956158264764568473502835837319192629435254502551145657356049923304616131065530376224743381479538244049505820942879098344264987220451996517429574349342091894471618847603281924087374897875836026373026729494043632583661226942235640279186766547938399540781206965788034209339602095247828578656403236761852404892150024972033794353122184912839235240716261664338789561060324759865998188401121258832960908416900448599048438140683851467287491968030532803819370027124934519790347302904941017029252442530278626880847875997127201843745033639559767834086348936766113177434518191624220949995715819558402613357326602320732228582705059051377237936982868394480565233605253885188937884332876510559240858260701006231052328667173852242970196836073557511585105490977206314800703216690114006657218862024207610591912993864707605552923499285054937269112244274838496484903010310420245558004973830691011975119558581816027920744534626922536345514344466762567078617713043827088875764427869449022074657729548000438813963909299955911525722847939850773756543584135276169131672055052318458214383028029097419824240366396738718061312932907562545108854004124905185946822298632078920995677824121930720323640161810077016482110354437491853525436314368476031517605439632106420789748060183876134283695771694815867647731346915043460206528742670659289582374734739782253785396331851402495920839142852360231015283065347514176880301384920739626242928044402613912630006170156203603936387811141359364579407365956845097596322652277162606329590797235753433621501828002679010236511713481131598371664864845482063326308983772170964284840016664642725826482430340450008921322093672233623796989062014843681984869486802466674063840801453172847602160475690976252236933930225689759545430252901200566549616653983150578203492034345589466359933708113268771310613422403054525773855351671256443745537841998381886887664100540570230368350868893833699185379780617253783940779472090122853842866639886367599927841982072049463952636284542597160646042549970600549912811333836638711467865600678068705388672433777322736039896852044131974172331322387652853695437857455160075098763311798605871427875049418402362778913059753903226756534340339347469520474316254436539108354053307662909710931328669975213808777299340862618067520749092360945208638352244266422820783924791063421164989347766387188051742976023992131092495630944000327997007097098891146721787759972775880579393370274077227526349030371212788453475854181584021002208961866360488617629343503888278754426853564397835826539888280753394261457793384528300487583101172261744520892861780634274543117939445970728182744840081914896506938436782739830915845228138152612705652743867592577714134282516027966023091600328988808664401669765169220623015481476449795201781567120807932515530911226782761812641418448120801098257300034242065388791748485632466279404731326957092556179037358457063763020042603664706569912120614784098002470210559493758749227725273463365382678595493656114569082261871604826514776907228312239316635163510544158454243596637733433141134314651852180369448349120145110938006590143335381242892339713246460794423684513126162224352974097763907316896601176647468060066617470827916940713102067536869460354990423401840853988511879570622030537486440099813002477333378863330018012631260644340301619250767967291198701871636563544802541690500135844931570672174089288258708344835393616525864491729943830198237751804073156530723041715841029283501601122255474690907718024820538339648868758895728025953032535992199421976982592710583009820310130459646068475693785639104261857218846295130179865002136059705934640392162453045630987197997739453538396406476618066588201029193375919348892616152932187327702995842594901368889714067365142943652149407449160963880141761265004606977792928474302683760216032441138320225959834437993268414192252882471873349953649882709936972943113010254205660037242921296046723244932911170956963128288944720091820795812704283029457451785330997127552295788451697841509764706964340604801234271344089904680120669272197639985862028785287541272811980748325763885879273285709466448683061466299330658049033037101859849579051759787378373802660536432601619471203814747550793091022948154559854743591055484573347880374667079502004457183445040696266400768394449497542598759787742877356660892395918822810875329227506247781541892749253844087013323040087306667108121744170590931021773892859522723412430107416668562259032049008792503972032215665337756152491935175927054230704973445357475670323828078067409310739837659838353373452248598178724361196434588438280274763036622100195025012157561542842659287762858330808347209526405936969865934378799121606244270084289256754432264262799093700376243772757411354681164498375887557618118265984361504816383433463185387374416720406727293040616571614731784133436043529753127347250707740811425552864718616927605535057670361905715817000938621350713075773625980175168106097538550938829029239828172743012359782224424470718394026825014369110840244628360242499960902371182416477652641872239720430099598072330251680030598092968912463680379406094207032922480145718084253921494735340704381195434572948848249776222211494413007235750111220578403983131106871267939846872692378711343030946615777096122618773775353355142078350316597553465466339741772084379177718013469941963337509072145102580387577017541249429481140204165901298175361962471329225525941755228484079875991279931475762277563281256104493216225062818921082262292512560388067938604877142002649197552236878618221760674180897526888319121573602156939466040849225710421577256470174463869457062012597810703349788003926108247121429911861724466917681768233799395704538703891731804008865673423613159395456972563920249523081229008790642477827864890423051308839974244569508962735693856798847102733651185557787512382591396011944005459660912076527342523472227658839169036948794633912423505462508273407903432219839414173152728585821256185948993815968366095040651512992042251949466165882384559166051335436041577017989748584904066076366643986932672507120187781613611721202913037930110061976636714584419803340210438485268825533094803122824662481770889215656386981324908982856096029808665645435430933453846890036911232707054439955145138268181042632423124271440726363806852232950827392830524554973805228925364089726697680416088051078037855757329350215088757934322073832068682847217271151433377490583221886106799943622825454703071919902017604577927170033074051632673156726553898804426451716449941541227238168777321386471493689946841830974158866070982968755232105401501508692235143659452006923766651535639402261156338356089494029172356487400789642099725985363408485837016459712469827505407405478671616142807350052601376551480261140567131125054463640617363865656193294581427381842602296436487305590680096077339941566116822797510695885726379139601995352061381198199369506360400815304702320441117444277764068272925405260078109483378358407827586066281184361137853493038917420459453093298171951007343695019852017581405953321929678591399025673064098531940008608725816554752574182959730952977538999872959665233841136930057418814357145176560273785846713639339694759230623825505177994009674320705031236104022886906298049763422344538971594493464551897125856351955276974917026992260146757587388972029810677360366524867168783033777757289755067598519355400187904611034733871183532627712119099520664953339833424678331198608245122024614366438450542654505973006853816300961563183825658875709387180335365070509532472531202956248060039928028947702957577257077212090909666337867621674164009262102447838110259528366446762757014607387909981232528937641272162956854155520952354170090831090646040959814756973211572715272771243729055974800133780306956033842974150470296973976990722938340667738181339255664033161225420841865656670736345529670451389038055773626259958046701376385152339613241060364623263374773467568168125859708167523448101169953312384284123594804240678791543892537683012325694296615806207332319582775764232349964630328423300913528562810400011198601214395201012564318060365199054734359659063787633454607951915998148174381691645974617717992879263519254648497583780186213481361136200882627227193566785379886794198992970872641145369169336676182607733063994030991928051016259521168357636638046754975614521221541294526114966570628673992205193019130284132671926318680669208618039010628761022678214104790020231823965036195733366471213281625222814461004713130648540102768275453789333919994416204497090244869160114828411291630153124814869904429997800341799116664326365598229015870965956903175475488668234870981964500858231147068457465015285791783939227637897829392224371413133781657185403549304360016583544961331618174292760571997018525077742456187150479146399678477169186533673185825994033912404840238379479984680671930462238979148903063406943841109312051685359513499189741581571239685455872851649312194583486819203321734572636915863795527278018147992931131463024251199616901530832151397247248388752589727812405876967951750683421753129095482599302070228270793006537240459245884653738049386853041397643684909656895414879552173236261353944377503453244027298338746746554350130262112979349012647083750576345313402237776458608378033450727269405853195828402103079690525816044533529651499544613431779374599016828845655491090545823846112240919510876427380509132504607030528467176897943279535746077464033614659768521541568115155463310411461589689723737808338610057228761885750052214098678499136870126455048151729008425356354738730274998422572077325745766562262266913425988909175504938778294193322932880680184071009159945353968356525739169415185747594100947599186285312528872756737758269767639280933171942848232532528570192378177762464509222974059153962246087927560682812918901709819689580975786327293608032931849774059009981509959732399793584025264262687701172763099027523051278354439109120797711571812098062533805356330857856057667959416249348427684921544546861768956325241195425469230006565178089794634063411336737559170629222184038725911799408436559860964174241600888449586868705112006372229759962857132899085963588731019399168982865904602068291378561429978794867686539430501027513715994299828886367936339748154556716634798800411797710053887113021488467969660779306878496581451601215555852121200912722360107550200394738405072039924031619057986417742333331507759194972836545026025514102987392995234487804619360560813075313662943603942207938631255626683171714355076715245592654142229558709590689878645935479051267089198756851426904875546084964327089919290636735477830460073187144245583323852773073649752468331440655237062034388515404758959950838649313847692312025754546296941128744505569937622367648373525675181477517692083834797298788217541168240035268696351540770031716280260456884241093760757909445542885716686123106415874491385705829761628538226918505731797176254931626523331092286029415532261863323057939408404540506307677730574512152289085491371881528595581324125155010488418282010592003784798352626347768691067404187855251222901187321590451248340969627632308148866613185155051787778213786308718070412706485466039300441834988116422878518388991678213903517081432143113878750965656068650863530203910881833464290792460713044170894633721814953827777953656261328261429740335034716570844146621864348332803051720213001417760094378686411480778318893335128325594696982791759854734619636633704250546022268267086382033106949430605784940108769227536471918885564068055294305839624295885162890874670679708954506219213085411347260132872909663471154040863932804591476249670845365652772296893040875191176039418676478287251728139499570781816704879448057652189343333128850610556861366682215346908039251928403546893221809311695362148433954738266295982035010103559220061038862116706765829728342629395406532612969392483153618426810435849913223068417957197099735517134956210664052209337576148829439861811631850548035648972254686280183386242933350077405575707956176851965791763966513155216427711396959117720978930006928317443537306069003977771451981348756604165065991865180622925140960647098412981607280419518946612862500969738957256461170837328580570835378594332296690057244085105490732385642690516421099521658731363708916075465789396766712608902569061606918669801231103187156864935969153848992499958689399362262219345607021190037389992111766872478130153170175710420565325479721024429901143625049322527172694609563171941791315423828070129098785270901348214189358450035421898422764422205524830200879968171907638639924644129778367706520286090087772448506093846946524587766837725294147575088390196925392555539110751736364742969143866124195894698880545661962616108487113330901270671755572043426371387021081424316521244750551038436798901435351793353715477832515147484741071664862865412240551814502710071640946465318008243192154784782838880992112890940426726353335823116101461350959188619949878938264359582651702364554902506283958736143669117805086942269467850593065556190640366559301161355464042577420328561203126547864950275872779928570917899601237721041952409019931152804820652761536158848894118745404086478529370597923211511632251905886883965836576954727671678594661038913466922735164715514611578951788210234566261854878720231252141211729759810705704726214823841028033495193485952366059178156873053082549048139201982277378993719732374280176444229150706181894718896325105929079949411359071067031085690386852551625047084111436475192882477215913160517353817779161726186101558974703672772661082843935656236678467316897608097535459641597755822171471299701637044323855664339989566225020787511995222276033806204739096917198570949981591815725144512967735426385014516662152246907107461070336425717576787494068095050812896454246175723746639608620301680458289445062483393498209295156877170637619453444207292047290190612450731312309623144885536527015492306616118613756851587573551057833699659769835621115863351082020100203623395738620597757140818083869822206081142063249143814890500982728199218514844116760254324603291493564642823093254220681120263895945922480687183269845962107886089074269025266275005116962434627886098043928834989850248319639906626463699284046950169167927608652112305717548958360950426128723067043648448079671844610544397155939619450426391898650065998786375357486343576815558087547677246841926443231906417249316248275034840106852288159225755308328830423903566465265766726288274955726568004166119703752426003429472206447648336847357041573847309013506610117053354728324629836528428737834500438412592375281047783320631384716378705377208012090395336507919628414836507288900426063826652902725211529326598005548226203027357085697744826648388121432144436204864021733909659083691376354884868940280279126423239935335487473587941406748868821604452492654595327699522436898420894640318517190577729058064636762276586585588566246348623448247357888753376805795770788516847686332494811854058263828822296539204054914404037808002484673525403001851301633930657660765773737981840153689054066644637842657351659606305405452213847023041563059006594727368501534528978873597057798737346129147232823215483940141293148468152409469745321751301637303618142400331296453482846336314820585609308530278165435680023382251653911895002715654020619420728504861085111632808391857233302101455862826560790215515084302926571115116144645708260343590899965239918833090625156955065141718226074892246614456067742436638301364867445557607600381670977664106335631264003922657533174159068477377165709846995841097650934530490080026263132481094562481991103187106583739998152036957520598070499024386894321040437464954165254051783091829136229954156316223997866886726448159636353108320909398816376132986473613134020418045092936400255042757609857796392896639647414911298293713725879020316671401915077995661015668358795800170051023544541887814168778979649510203223738238492673877742328777178763628471984834573947974478419762125718744278098944360295570658351699015249553360265222459385342958429061413284931670523255140953698724144735905557398195517244520397281219097640091269545288976230707724496197476248482350158075258563984982356081782121326184976371675433006912065633000678460015063501044642079246477993739625633720631645835037358703602612402581143497192721048351168938845688613699164833993032087857838646928932994550804113226292347294505331924478062112484302812794784475949187941018129995469287190802020870898894825074473477444861664787162530156493486303519367038776213728098732993179734624007116377452038151157298736929205637256789827827394500843136556217275649745380507550878896470253885967769848165763113730370566360726082685930358541788671514831067439858535882769438321362252493180697454124709388518632992405266155965844789048859737149021731898294076805349999553195789150049815703730848220300592337107568347050430144500890645627380466864659139595539052768434627857377350365050556476017467219948271034017434657528110881616783729581715597867822189351849730253123939616959096828649376322420367520009063845951072536710464572863225832918140239571588756823474282891171026102275419998260667620444969080654317082678677778598418212848521848085434166774750412265314978179341238819105993488789814973452834082781889195786682265582620286933342259524081203534887061396978206569760999826343859819816849717083271627270130292702954479455342576892032956215872298383852704070319598804013597641340905032147029402028757566362051396151932833291406847034328009046968082526324116062637837379080491955764482266152974853458361722663455491190093037279406782666935471485284507176937521718241525236854306073352865195652541520430041761641886412812965032453808766764082067394966532247763824486299768980303323684998635228173991156661329846881041050439159837506711684763054813960902700083324503710879270987881339754140459822731108083557498832297216116339933381424328009657289051735884271108749720779028612888823193061356697770018772997279894622754192792908006644310145707326752509023613085825136229403691458038470836189502872547066357883186928045640571235871184180919150900674511938878321316667401881974756740637613662203815865004278334169733731167200554179941385302290848767825585309767986737114252378083347865664609621696340250288837915750688604590700845449397172006601217489429511096698546945654178636317951842438004678284926032287403781671620318921399734181525840700546025377446719963089412717892350135935948573720213942080884272890520033170842066848996120671695011006382887679700729211718543040992977689015496043165170790553506603410461635420732078061427015749096178336791585785927079301537047753708435420836452008289271172895891530890691125908397748857202083502483610328652615252104958357164131193818191511307905657549983458918329987399042306354344540572459431484152474172994531573572381913041231074175797354055601752932464377385923408660019546712114799626797004537047235346455614159242251816486533152015664281979861602769958442050381681054056967971912574818792292297028989855319405569748088956790557721181361951708449997325850013353056935662093191730771538127091929348763140818402417852931125148549468669120869764343783992063041192061750811503089153978368783762680553591999383696335058094169610895334899525203588472026914964462965415332237373471407288248194765290869620572006519433821769204800681567256276394691752473734381642464165881719805476166252763012595805149677092548797698318606816755112433486409226918529952470429518101255895562435297803122265573471657370359745321071276163832392657624100101334309753014315509543718465707621269488121755796932311250200112544199657227554530452376774936819620054966340613381998099599436072783655381619460427620506859664213722117075830304491400161338297967996829134635049389377012511535762879320710176397980491103650018476360622806507800996202224448195564816370930719982963127935145385599837856079800017701889062636220268659296781173745522743726506982357742931430767234056169907828235668609736024517813902319596922878232297295525031886633507669462340920504497169879061560861430680766780027526962531215416851131259187019676933700836254158609525799315007432099508587740643041399120347275580812828776076762032213032132409822824909299101434365027866096712106895048425669983757147234880074485069278723418361485380218980616676000049597031018902172578621943653113792257969494995801709725915714392131822797350827320735686646403835178733610766043226587569943354528876813165167624809633562309831684380716207023195065671406902183580526546494928856105728789266456005806850533272650899586528723131064264314756533455833982034712493043211876122558374367801645700279805055436443720793213912712790785153773720188014770359559979442491087783068259110430131781260724306526793651327569981974443647553336760075587424981450642956746189830268781888179402437491934795340155407392403508319437060539548813157966392516795275477173427939549545921925158214320018149495455416842131032166331674750552355777839665338107213694045891459382072846782536557570861064475558757199314878446172657739299028004423116891460640999761102741787688443254884169888472949478896264601241925566824167135506375558673038135075916179293978535574740848300655337365868120994199235047968865577246617402234830341159748070036459184457236232228566937052732849610577176959539733555127708154307682369477069721054724663998177020715190118312321367512605950073230192844840147905641363994638928257250593172792934364216112474090813890307093336038527755838381146889377846878940416531935885379884522413784637295737443149394544138323915159266861651387069017786636275045062785432920670685261893144854037612355476902668176453834609272805202717552887778438400677859617596076077836104456199909855243370596799374308312086240144269521688739125659384348005020975680513613634743843442799589643380700805094081606317296091497453577855671200146546770939920605098901415662769806519948480377683096286095759375421454746028954133670917581532720912906283190201497204813782678089161433392803706681180787827773723586222823243760630363231879545333620940442190317049305236213942644847276634028469455815582340280213211829878982285816195985809419758069386555528256293549043713507492511209352036118105907679633711114299966951081766180781388450584116577473519987605096183519111091602123149349134494371366226119586701727094839122255498620204519266082892627492946309783053682284214822383874114294213220294234296627253860664061963070017061592816898554936375161970904483050332750985962318002141790501515826227636428141597279741984175900068604443152059318651962255208611826462691038940379984735798331733621102277764901271286862442366967587776662301499131915523433167798867216934023661589482550478135812324282388877741573196492542242273421999262894810744694594800703362625812107656529727655197596838093857872317308078406096264031558895489894940477176838060656124143553165399590492996965580105624599786711978832475418584041081225444210238404913758232384252534276060258851455221744489564648850167373214798571616864355850297980682034977851413432426207628770475042634598116949881260883457323496062632351814719707560719047453695219616868683170776780571506279223183723805236614869972717335310907881061068214688740886867988324436939464928468893753283801231454975419071796796085250135825554125771064831298341453367544261148155115104453698903418871244070731224942397667917716463051739992793887878953225008489314267725382274462022582810612769220842658846236584705900901356680835125618726614250192265141475587311473016268832443965707920361551169505163167698796208144774877888827238886580133595069575551552988889863340655014299318836668596766164101106086310064101294001422921817557346287774860797827821271075173690127261809060950694475304472156262022925698069624739596850415350067629353065259908602930033770931886535235084686347320315661034849347033341997661344869375168207881038967974379549996275210203059773652089588437341859293140007074795871633206855251511895833691351221679970867078345316798376128302464459747103713021257484597893762287235541675845056347595933703569077616257500817443625675338045099692588284648736153422119063411567381411720643811612928662000385423258140080171696770307029536194609935236228649552190084950399908798057288077044975269862535739559342299102920777554929112631219695897299076553998427739039071162454382095754593106576891316006188458582312474409536415146045986300240383559402515384632857307385241457731223038664546623326816861354707783379569872670600568984231346584419381635747153530334173215847517703024764945441407553651319819848599936653787378441379287153960241542106373346927145229430891343014164009767227032491785770191607581444943426116018556711164118237871050692679640365182094741820883199442042026890862999481805858366409558483745412815021846676873679787293592312183185663586471955100383876874928482625058882804114273064889209909693697890990630070871439999545972774401651193865490372665342573004459256814720312968587502397667396849208892097950774106071556179607588341248839863359124334776000410527198002997026227319039984961438914883596450852414203465604457777118693179381093089296271225461466015858615663453828394997241310373139107955388110556339147576126647435168287724277915655837615617556163835732979660353461093431555271053540409469928803922293092430009335556253706587036551437100311494957212358874896057864156214452309116158937526120966191394621335107531831138536236497692231935642652129306568446314606257178557659766771041765174001502955868090607186645242992054464867532773894651396690581789613938520336699337290327736695171458468340293983826186623313402788712841365376045714549229836044633253003635167072552716609515817009350514976041512264248341202585161903577229402826134645470131962331145398281159755108813430099041988949349146621040146863124640161594857981366490808266797594998419093467388557166885237291041546682029055981397560181434213398707694265478230812159976504874017652072230203084282235338456047561583627980301525366509498525191006918523365496600079231536159266757853264089884180467963066415292097534046927696165712357469639745565147426341899410378081331949594302592461496863979801002425272513438112080250348563628986109168903510430602205403912906693097753843101845346925756117377287300287855157839026368353605175221105100292375560942647435268128580976282893122926956709751779236261953017866473252433666617185506542995687448079335820246422390623607661060918903095965610178236869825064335872029029100251421073542582893137033174114781255516365729415681859481908444555158446816117689173353132640598236338529550348178086618107385961281671256327201153732612147612352639307897971018207901514047760593101782740209146692370680091482220512990315577768661604071246209122722979366904773145054643272662968106661839773163894167859842299249806418632165758496688168499334577847888959166441547092855398982734156676714110924465166553879375330206057908831725214936992591188620182104543792995215936311695265479757538304438013113026244283952607770278710771362723523236311322404370956137393461934194121253670132134726591311885849534922409122334065870024964326632402024246602786375983845610796427341311752469745422058157481966153206758369826533400532605784463999145288197556960072444920036169653056092163062775462998269082203282830747100776641115970690067688386511174479708069752340675430543969418218142763833145603596114331163832750266494555439371012056533206425019485795704819080590575593148972186599628081859621992539305067787483320107011150732511163055160822879273859568104635158604527479613589444693944508883387623335162118987522027070182461633909303931210608948319177852939495018599507068015935416398101008219135156708171739925941246250687892662573935764620562489855354277373566854875361752637123729080811594423045988628299464510335203339527178332198475906185629252743963138158711252352213292329822701432944798563908827453854216594397941460958715712366258162633320528396436243403061602970206070433648857551464304582718345624158510135813970200901361376024229725313425061454100486216392676143191927351705433110421951324600302044656942263676684671845459693977247434302264060500243126604825650169582925498066084710002764565717952629162239843745622931890578133072601910342462144053245158741252019098963672967440002382041182453765133058685235995258238626687210711943856392702770103474440433944289671103486184226856296522467486107065582251767341938045239730751933384345309258698235008847598817960795238796561351063342779318387038378864626711653676436225297511675820204461560851919537455251841796510673196713717311621332903382827490211025425054045270204555243905598210985447451603996953915802305598669071417683174133974763962696206124194991227787871661794034919859969866823641250964431021072220490436866932164848486997294299147618726538369109738835039809426629586576084061986428335004015339032258188869859083997048599341990976183012815717229614630149370561256076237054988596141033209891125139765778439826268519936966998974596226891397277334387765804670904859954553800930774788731558186059260727612856539479350993351308584544786130611492329555070945650401393837279028582469737797453460484319526931498567788037170588054676388681489963668831166813410952441672030352008592648193994043835058017008903818593664095357571012333658528227784274731960438079293455981693844025287863231028102839976861124482989619853633810195927410672688601625758198651881502665807623412460984861578150818951018758442309399572160527840221287519360071479107123736516574865650108958362625049635456893913376595191193103455332684908633417884143811287056541485278818261532542680138905404378990572037979914538170217135183208954792781903391975202565090513313321915376476783176444440217519429209839981600211629900088239610718761482940773917150032496213948876376787579714701245046153219388662802964151579802445530678203276824181102521825944087324904373128328688274195610325877465975053943952476474594830939401835473872018476081455914145931651283461362963544931730612965960367883945834987344046934616339445779783181903404179035548395144858914964256236783105267097227662607986243108783419547528832025602057257392578971730399536501746922168882903606691635107760465009265995537521469587988918182630222680699263852000610085480737700602440815074404233969346758971153222173154146024867686077818886902124161854585223934704966129760723230593463201723521484582899061646111924103918244424458039688883421342727718545521455384510892040263325485894952881711322891358117529915491332282008615859279488253647219529078314655248238979419642962079450539025453381371532339115508371015311857447768698327137517231593989939085253379434282125029944838120192694987024440322204904023058576419365665629053144274105664243477892089357665931499873161621901140865285005688135357451920406838112348821787296559408560379452258857731880399962602483638440923497162783941263034482827177814837301344827569523465231588070315653874307921110505374206726344477775834033968505781501638873058553952367235172936691494936177382238440311025834034693554257553820962001769164562170644242387775262404368696653126116297597512217907726628381268187708507229940004271331058392385219042649699337476562291063269134087759711649324442288981880930104221513976417060707287259498106780026527797619639208581799355529489674300457996787234694159901775560408039070230582802212843500881062601291763384758391464629447513933120516289241044088083484494347745350855367107415321211775065624348591395779234609047648758030818145793629660377313010815971069715332387463740227730568191311729936504869546226424378015389220660695519845179738991359331382871223620601851671463685615910745958141999513798759883105122899429444157935517823156327571619997311871506724829114814644431666319794741057779669211543905295380298164209943479633971695265372291869029166487115695966577836712001009841362612729950887176872343517091254741177725877399803466785334453632093415941561675060966074705795137350082570383673358975883012288010331397047956321362687434278696861639396877826726894722519366622896801221188642641821992993922046191407471080473715818357910774545284225060050962016549258804790161713743317429121367784624000669623566970717062380112397532102795300861047920898997542325739517152463256695304619993265149906818317639492045757680430076761928372243405593324980220442108194732062996605626000212287086157053392500054760536145570159904117914584158215685040377226130962200665971210842547865615826210064061150638687117131657758658295599449864630714939875685367857001343945032699532409389674539405931123313346736098490388401392994755109865075359167357893706724850679413561559114381384232821661080919921531055630899358369462614202056134187473996533716145416312062157963013963128300734646897765772436739124905507874579025206481784313051245875417712873113159098483710194713024068612125330298977954878882230500637800048435342749096108177585730208286089587537952574124467567139060230080345413825285398214412294934995589698950945797332986743656831753802397856536758076962420152657252093819136713015143238205555956870046511881967631343557667897174123001808452291884892305318589138861826783808373710370952291631077138476547815566653127924804652187265429718929287409844670270913910439331875474453607381817273806645180507205369366552483940107385429845339689286122378136876585038587160779825838578913285150750157522210664224386006624098364256955511768807918099785118122588802155131173347761663340435824212309790655231843827152071597499258629666983988052723191196668610672758878254977356276610695887870356092694603515329490429082649287785555225311178178034421812297351053277687376637680357282598395455434186767004377736502317459090162007595121269492146310611370033716192963781799090610265823789509622318439935377788675091271649658137194913341449875483567245262606131785106435497473965477857422012483376322103262877865949765530525822308966583042769773688966069848955290138704012125903388127588815158106198790028744433238116490354378063852189897943084433552899731973695808898310932042128450967529947214680575244551647746140715836363463978688517091877687174477565479632499599502750092307900360339258921237457648188345163501868270890188993031653063841614029696925036759884207135027564147718723469322595854266924281538014416767829648634652201768045894096110699864312131604103963763902950132772757286115655585135135899527307456843438508861607731036642185309275366710936815682474980038174102908111316942759194946171341863755591310163739422365993492577158255532475342278270977315410400982048025547331856356251584034190944712868641486293428604794812815782716575750783443749725005414304780482782460148273819115394248723899341950932721785098499908267677813434456343562997476243121095726825040883552875820814217303420446724363416400960119903684720640953381584713051740636948454793961091602194216541059246530775559066976193886201982521969160854699392470904447226568834283367591193230090464730710232919575419710112419345651422126355445017589571037227617570962996051427529325511038062721815381195007365626763968422323705091925078164876143919370616280303125894819720933039201747512716635051769073325784164678535278492852749477276404193169939036717745661650883626041387746292534519035241979808231869371963470158663571517326889212777005549842905014826322990524882652111303989649205227441442958342661044166961738685386729235976582366787225912981380985279278458747251382533151428930020194178357229998080167805151555365434499711926822937746127379548918307956657884461680347659490573216741353076266746999397404688164346753899885681689892531941378333609420605983328774686514729151677474410920597665791185003896297447047170340130020407208153328385529901074380098467858199592286754147940659695923008550702917504273067033959777153829064847671157036450941909508214654062037877965880285633899430444483485658775458530418729282904872886389020139773703800031110067022014739348616422729523801742586400526195103358749328568852730969293198087883667586326453684256168305392315162736801154563867881545817415105989886874698918625172171084858187034454014450004111627489541793602169115986222505881253069143434576025419585306898493581835251042397619791381053356710280920639896786781633905766372089541527580971471426202809265579630262478154585349689286391234778903231096980963861859856318261162545931385225773247802409573075594779890513932971282159254566639025799462135640747265118550318944455578003259125663151645829287819657860108178898876846886293693847076792695841406727127997106786108182640301718318882290864714688652998379173231542936368054258023135141804071384652840672686911010103110268804113882631013174983632060829061779707560379436912374869263883373264713311834219503859426402363860533098134634576838682300754509283415630057223838247263634799669589180507774156628320962417525295974688542846271467839801394804232229815688056478253024384177269312531972102874130670694615930136240277402035395675390700457920880471848087538351887399816618494697936990924510418773834438478472992886275156047435463408811980267877791260465122173638658073041829691702109921837590745928575582079438684404027869601975252929259630283690660920388458417720594002593584872898099697753938110361925134602773864332769469710463082759708539739192459901875390779450477861899789839256950807291542303026172281119103121911651145138278045530661612265808823638255873735261546769426362229956141690398020210113485288833561158030526335458380883123030327541616740012042605421403422425064866154869049486673358085210313874889113801892030781043400266856689006322721637383841941096188240203509061766048539759957941459426829651882397315403163861443497321468881864776044054379127946825185612406779813604474444144509958448813799580130099499090753802379776589923258065248968558559710962281066396095587669791925785252129107465829703955337833987219838506314312515477380074810469706963603128889755161450442334874203016151607044061410796169306607906542053962850408416333759145230169739838155556003698039865286904391322492100503728809939836050372023899758787172159295252773726025520627923147229422619167373136601858843579554064689137157990948636108467240583827494692771802358117698738203163750121415083717407819522014731303152428408821207109789455938230202985337982552961368181692777095207461789304113362244480629349986752207728512773552590158223320752625405173494242309429870755189387321430273260848339357238079907148611762812831404783138477614176684677323926225373483605154191374735432871205475521840991119471357562821512561330783543809132841006906239432026301693749641322718390034024663152405775632766271835702458855289972139943596996106145779510038715749248043537273728891796350923847424562303173416625426595508855135774725512984467894817766348866817806802393360962708555526952720289216133632449410156975601172329616919179415836083995767513843246605872787286019912557149350261869308147153065189154850877768561437359816846289992624703693370126898334907254458170366575915154660482307681250719118749174364799821539547546681265565184217620235466781574367561119333091309774150873440927700098157762967517289655868214947110854120702006591524429116917147066870163594554070081683547852299137262525462157844618451040515245851286061288009190009525042642881366386488489770011177202285372164916287222873511181749942955104651682338815569029686774075898058587372752026792147162954063519025663365003067106643765069002854862973123228885829098539334339002264432817046168859947806388502894801724314752597863940104184702966511794607680292385434423913462087970291381248105085582779473836375705141995654345113025462729366652941016034290218774351222837055663690027427357314354645755335987823778619872212892692029022188837978915722746457421102169379926724525688939000420169345461724278241552811684313814106689572499527420995892846046258386907588544793010609625199232707236052926038468064445493627557580567415043757169387947732748615648831562504211848673512519707679786876651068286482723087358882232965454477516199092713443961747766979244449350138590442141901561584619436968142333088867406301658992533895722982847124583706711184085077229770345741818364179440009198770479025848992226469174489848243200791219107520897732974694919093663283934992861832326783434366908012695768189646013698514088372800430423458925413271474185016728851660213822026813912251108217565785936587093750937010256890037172901030924472187023935400982088795243101684200234930964777923508090708659699383047544835259470080437621584811315449277710934518246279622768345702701744366886474841693887832489155870843926700333896129015345431368767880915462355270449457108032497612204058015133223145011727654953071880067930008606609283720689653300507199012569694979918768193508877061397875682974767608796682287140756092884722210090072887195028611858451925274634181370530397328548348114658764884334618705067395803421291572902874092433646929294560014586404913330808738563990775016315477057575172227080689919654521215558024956681897745780341416952008154388689602152290238715270104666952682502180446256763868124408784976024985549482369164698870874477564556448199852502284456573543042350933485672090859687670526691344216357982957358280944008049336403958924571088623336173696773534784158430444895509396000626521311120426059404496442945409226521448948000707302250310266919172189634815784303428301127479929041345789297883028412019136159190996789369253001687660228626224289876991366029827658087051410535751793567147911589547852002172441307751364136289169375278997178955878250764519676571493975601639236654626387327203641632706384913321917946625122437879193233709731381663545596056618356054976440740655061847067818001162352056201016866724597585131679578982599451192627293675958307296501564861067649616568340656741578599508174484224358601708341134292208336611748112837497960084754595047912956187330506742017980657111169264904564781160415448423627254607621760383730824295916541789524761435491261738865919374326612997383211363008313569483403971134605774504963914504085028106435641818869726038485385579390871336235286145619905857451046828977925224346705012622092638502068108643011135456378142975325308994290672082184041856976329518077540195386628544701825809294398725549776150507965783622553142904533282264659785184138779895551388165432106084671463421730979559666029872381994382074979886682798419186501817173942809176945493187433248349108823987538499364050243174451252185684580882143937547704489986034651551595671511549876306392596767594053294015961083618910805803137910447616417838925968625590677635474861987645522593044721290070325860909972127929603586160945797309823979753650280854388679958415853414355675534233130757516598224685173582591767626714094421746204271925516233310137160778418624348080705998883227758884237214791702186404244750047128090475219569532331554523118458670569213276850016816375817998924676867616339203962984812616286504521360788783215462801198665048800408902301754478805075800839117642615427765262779208928023296637289873990195563880863612305013463948449911373832648503205026567548127989757003017239111160769911376650566828248838364906719668601985228518704468153258656673754367349319321956612984243300429982917655397246837287465928348416103902760806270633009104785549632466856890338381007684022777381201796810071914317624062111690031355606776662324979752909276564005325507731187404440525217404803566067865617395939701689343894601155047855057861679500717525973318798292955563608297502955589266860736529106338657249905138018526822924021991757945504171465945193305969618928081462173397330872752713219418110962270625678637907183601410062377354823224721302388118569961717138039767465350785539474150432658215162099106416746470086498904784191708519588658806219191799701331699450966677745028873287675229051262245854617884737211453121439899079122433260347598551092349109631935934321406767050090004439070140140519523421572723746044329172983348955760012904262655555636970640205541666124392052203590721861384408106326574858467829378514005316829231237606041058118883828102684088254393957419922291721489659924287869464783041341638074211431974037481403456074294681636450621702027874727184808826081132222741059208148851556017419591198816929199525860934675470701626799141604197384161703228013571961909918780880439654803899878873670499479596223787861680093396002391068637479791848042131899770254816368526695652773402055407756047130846881143660174167126539427401850336923473195193146069325128481599188767993012617487711328466696178165042671145884213540307814804934108560313969303969060185053356559295937431200673105281520483605770113672858320940719493820237220518958403861436832445556941587809365742355375402856099094228399606039768016757159642184871496076010232154377117366088573631274910325389747677687366527688928272472070748415832766700015793498013675066881195543656943664094997332762029992119403637887445787366736839711180824861984113048109681129252514485569472163662516535425813420286999409392615041250873074449159064009259275662356040708197951344209466088843177087255331347195664247012042980347222027881584126391780658588956682333417127756138149240951826392385557643203627650457528599091163785018677841357373043093268862211046760641100026974444605345589921946746422952880564544701912004815149521245235777624246094686409006376537073634291192844071997924978916921487318951177147709190308677828036044021022688788548291585710722222006060590374080837858461961542863551906344783608798050271694075524332960686910461992973620905290669992232640620249724751090860862375037546172666578517153954497435768840454899946291510404273772419714581444115296517592022552602087867578172351080137128643807583193271253216473082171779136706050962591533933923925440657448878344303961824565349353434440654642043814295254836354918201454769851873203659549263004386712464758265888089660236400901116691052860962587711920789299336960518425620011834772180826074287815425618648064812109521146819215791345766413355510290750052104036069390911855246256144052969611614115369894736250680516406001024303131408262224120867805759793781395129760371138649192828736505547590755513101724432560708032785218048423194393888861191893827960026492127531650826221636398576230762569125602484054318398575893768572548144788886518466608934498805642268015553528170271422920661211891081854749657495192072659148910527756390242892590522643211553355159133846661660268429856503317636930760685135608075786721773798034391116580483588354420829033156598847418855102978343619108976321184966428563497242281433810562889750083463664707063578121728680190984383569252730183379218817537243391046723407147131095204983905802382626937891501871655046261737059987997308771567463785741686244149497354679025163681736185605421485810596760548738200184133244639894024125054294017874196064294585816783437346256988638622685096611190582565763193558729865435110938039394653611810447851655792363435360005802026438892129222225002891336901354437640333992748141204719578761648406033165712064217412826652553158092477911605572486106361843039049055093603595713931207720130894932918687394536444250331620803702331281521109638475485651029383929479396808437540987284748287177254537857876770231536611330823904281843434767466368554450055896331787636099463923894728681471122450763728217860923344997463279809319050593593512366932943088277310042213173787844790769989025981205070768463607609218579660130165592953627334788251619952629178054352580886671239191462756978175495696801122149231582827857778594375626060088420274655234445662137503466679534876150327546008080510482253130153897530006162340374930187528078951781644907965459501775231714059363803423732310873651758223218340280959794424118911912180099359496592706790301146607739051792316150767241892447520490300804856351526371267075220051814144158156258493431952056290334648106721748383944421822302138492266220554931237951457290824281767921585607600202843650823126390988645299775428316399665707734656637786741679360320116753164779501424335392709974996530001256928627931353019499844287211278098589661703123134661211003476827349655998626942924784808103108928584225972142340889051955068496633592911052225900290779227933405435930271338948138234473215311734050522988276040009788402381931899812582004321252136538642307337886510457425918249316118870485041005980727260678819751605129282899115297013217553594447864473771059295167471087945079857971944378391023621920745072600432471717850832933013113187035400505865040027590289665173120851843139591540007102067804709489424053069373529549127211852401036521752703000828344263440538556538387785330243994632094861331971732520615052884852820062607119924416267836406281915422099809020213204379195192400934792787762523358365038784649566099227241821568307358721457202985046409153696578238345160781729234396192331894186956428543742989374873302844776642369006326969623699082230543035930930756513207289795971729029290502585784820417662580504822462632498265712630904050316169346702597801943716685359307379910713829752371338058470634783531672475482856324353051584697568963656288858721602840167937570862575808373558638474351475107018193341837495119134065234132574028475650858929776030067541205959378775601881141473869361511452580801966262514640657510353691262712737049955253899271984687489569547140952946578509818151528590508662058035840770881422857628495350394837368464395786834546501559803471453734817039371708071453186659048437868675980425530687323514151069458563036528503415524207453674346706048560116806024805145461894306317192758062037133485733042126067634525652193509135032142493005610402626795228430815593176445653063415401920089587919564321734571976220610481113014363658644438450349153361878311854245973515537365730231954977245472322565925452698233681275729043388238877694467842899153170817088714208795643821342319100793247230794886054439194628016206739751820861834075190178116116278111772765803221092046049460976125473837994066979038697055802597250578437007245038185547277155911611432938692354165541870664375698746282032235065338110248701344804215240911674728379798804676820580430208970463149906204391489856452578311043153935422778389953139726728729587523501938012362129803914737000137202244063452112030803181805910948938302023856630330343206542635163867330034062828238204396444969655367680679414166858028461973292588924538084809408625294727480456592280340919007059237907882885866443454222905470190070347206630467575865875264498045876906776287665802059455636360050230546292387013479537761038982759557642012362158224682415940375266188479413948539281053560721220259170690292707448257319799375258967808558906098692532434282522786013364526858755011465657489147528079178517468943264037138086150038818153702941275652237499712691279933807574708761109742657846930740316069508715886604941018234494362876790800564209303240621981837139391052060455006704893568701731934445828232484815755335074927188863354663668899802723796408638418820304184809798445527889649240937522937164459136220307733353538898633201010689577827207230959866609943597188743478702143254314458555224976365708189576855011818557332585421064729123424052008213561091949815121118316332911359016756804430143086918020707863796379203405933147006431336537002641054665072391557700680716333770931933121942166702422556107579448944417541242183436450327763033128772921682784195844806277429708771892617198651318741040658324327919907433031143055499767416593421734876949834066138224930639401069114621343843334804157527577555100941083816190761603882758805513074864422968381126048534253926113253111305687481542626454543837115645784741166118452164329128219551025204937826783867170589779944725364398648637499098560561450781047262743633230081099661663285823124969956547269585536457113903357723022296682449942713328273541093234412507863836623432046850770904572338961397457965164281333210552942919496332251843009167578093208353254794751685596728405679710439177270871441896349271373005897846621754675006420700026619747160793761441491177674403504670269705685541428818579401050661120739356004066290920232465075006401237876697741696778370205164832831807810525487251516540945278129377458360486932262434490740669614411607221322143233253823082701956003448399177370426168025574191736025560480051164461274861408715457508767236144355564479311056599787115966837459461408701743084963823561814733413333746618226812774814284333801368792769155291400616377176253835445224291668932701521798153765374139936116584538670680595507262840426506330460438497658962815987845825169296774705199417314093352831788556315278606614560282182662942102120200086693952605360394308062254405518808857840979552229198662121072554952845982300441089855190833429860050091978556187887054727333989657552027497277499920202804934774126537007220441573796461228562881155332998129192455155451563020691694442638338922589237098411614306052196564209620424573049672124756596996957766906248453056771983750131072647002111932461118907166555237628031684189563977276271711817075610221571868309479137185728111764334510214516414933585050090719714614118523275601121682274184936466467095597647031784761731844053714563054916522512508814648737037133534003851684897110278995791061499125411550901230181136714015548438630340648951061683873587024968750593857977924957306896561110057513510552409145962490679907581712470075451000147567371839705850624871898585031045324597146620573597496346471778902901341604395485230752229777786849781082259731596491370213571875066378752405896047758937028673542497039153626902892065972157421877700102234663267923280957533167300041495747582996007977814476151450370493202619648335197146742240479953310661296079713329519773379451440414195369107568429597363826795650291598253813364274801940039462248156782204556762190020819641745613987218838428520763849966569585504398941485988376512889507367732973731948986913323131530775737751253251503429064774159696550679926157272010529347087441155580929533874200335450314253275172970346314735733609597231194809147236767207969784777901948098252079662439459807775722386155091520848499916456827583652578473213783504944762885503300204663479646189384317474858957636206358711071511505924507510456413325746282967245241530657999865364142742637071219990444615593684361622806758963584931493490284305890955679398422898637831595395521605284765997165190016324154976374577310856852503415040509643597906136932980158828520360212411630970565784581334963597522318108029854591976989882636345996293936131229938325133470924172257783997433022671947862343781570678314808382817243230451416447760405150623148980720064347449191285534227415686075798706913175000239905241346357876119527425318889785982956068687194313618334781519710781439288156683031036935576796244123776268409930281845240518332077258647038596190148468695795694426787759736709329314920409910845183788501117084283079693841993522654795905351811499574961989952327650660947244796610501768106913209009131991597840370778150759373634941859316661390491514098089199473692533024552714257139010197151249259794787426622335649479608403979206759874318245181211088419174252234641923521690113206561862033675533430610347515985226699982603193149491355214356095505888700147992581097762133595340192222252113528491391255233165993651025423967727686348299012808990386294702497951497242396493144890358492854671768885082909060659424206449610472195230925248760932578203628322460739524528072698942858462007490189680102304334780868320853387994009383709194316843169430314391710713521826719482296926373708729884134472842401235643272844629493663602049895962304087957535904727914489727025156042001620205826105100331068574451162901931542215236570908814752389703667922104943125072020139223660589176454013976316023617717221068893734627372294091079956816106248717500297900275434859485893559116836647192690219293268587799789953555233642860754152262130011163585638215566351464564671360374603957710880394520845598118566985627933928598073480001803341482068818649622579257254309238331808468778126830522345204998644024619809343879712722017801201589871733688959929477716920058479608067759763465535140803030208910358290924525487518461694227772898897041091129931539400342919451432193029495577335215765374279860242284384063521147470637570077572308287132847214733968661122456677364658865480254791689713406175409642303243242582971258753969837235076063758260616362384082774560902695682407123298215088919512360575011632405509047655688387600288758436135133567014206484718900419069594493762261151524529406288939011090556302701468419519524794581625928591326721429006409596777705865406186742396420687131304363362303017220263009573824056324254535436096431141300284615218974216547145232253573269962903018169582639399700882481699637977099921582948088002204257472119774009191561087797085147935009098630715397491501312456769316910312965792262670055201599055044145988822191383610931615046501564623083690832795723866126099903156414892141339203048233879113779139619405358805804825721596069679612596172646373711499070609703102975908259008082055099827446128077245405903380348439980850437734231193952348617264840494456658355569986970074016213422708718757856929075641791290862796601396685503058277891540628418482083571535855068202609284007902126473121844248286673307993840167602363470318484395096418967027616160551158495829308736254078697656812715864862995514561411532172652645383426362710427400214835418214863957608954857020108201042188449484044391530911473190854837481969674556398016653882439112236709158883308917970387845306881387907226359593119638568193354405897912503154980511494135822653241680203008297127121184980263721774260048330520557791332076314809967196428863243894896529665710886858804218361214242438216983207997260783772107247466612605807293646995972696164366187055064062459667462384396096262063035915015114221734418274786162014011103063225307961000266683282560028013112128659720062825240188837439325969137755977467916895393722563940734572788992981545743870198395280740456773904881621606701757153909340777769401126993244886506709599846570141371015505683483656679404706627322479585323594142425247380495248403761185777139475602129120135671494575782979679056231989714711836160007427046992893003210335029200103829740268890814545318865061714069126405377273117078703261535698670295096307798430630641162513705406199947614256624893461860325865172931630268232834096462774228294055448048434854125839643832501568806294088151073584628067294922247615653912314550972992785569218703834674049253813139930667195421620720470706099449741589304471701185457223277095721939190887088025938863650348701614373561629993059854690198815928455869803445724448022851680125880682496678362606859022108001197800980614978530781623439986199164040689256553508431543340662665186374967900998073912346651333247794807887613381078211142941825303997758332270492718013056930198137450721185368151452131295970231150003795692116023709572178415579851247066113296152686557759328433803285225749333604438847345903134552150664918405636464840581615130036360465772771351564513033583513280211506932412104242857540216917070771792445597928303578802265795975947103936733361122217587911222632129864143022719317539809585188502332537113509199890210177469444739977515594829295830005836417945694299345817542463239396581283356920313672018122816569264701166571429995042656730800677071682410402668645135342259369234033255272045666854919906998262358264783534008640193853490024739546241861269736068210846870627549717088439326967865325820576907845945198357839389446641364543507866577705700391043057200264891397226788281416600344574579733436072883909885563003179373088799447011154132865733139923500824486363006782112970909051716613456421265127448317629740413729898199793169529922888857825205255749206720468408712887676439002566218230404641071406806776732540203734278398018802029139482405367766316455666612499370684259297804754261530385260567376237424892474009045863413114810289373535243884826864774371815567814752586868565291408043584218188888973270745962498047682019070089604508566814003564420848268408004722494519893834892437729175416473290290824437127743900802713768251911273709515171807438781347044873339724219293238756260706903395581736155049690368606830244808678142873440982672112580511469722094712675672273616068048754195963889787191880876854557304730838091819373821339273208283087045317863103410296720326188326191123217858033849871668163516124436906422609987219200979663572100135091012906438303647473928117416513562484772396691255729955853807777819088510042943558943759047909071964275038726896116004158165874987491322207498293074945255246642960872344047541130070947055033973696759235668563137087167930303327163834272352735878042161555992256921445616987775074167687167635041087157675053745703530971585285447184483786368033136275063957472849099899858592875739192077378419077254721379095899739640535944699195581602433072745429680866538747827129523500943762513509673970380996652378595421353134969689945897542786016031901994114811327482810904010945220575969052220199133730890803611078829975953753219197482923506842581046602217619628209842147738400615500026127762017279786312403436617373910296340720361644823799712560917900824317661898135072481741446494237776453959322326309552073155547055688874692660355732527854198691434424328256312669862796185656861218636509344451894190695395027013866368682839397899451174782961521032059218952664772931576766244713217472982378564531276915910960681960304107842124881396425064624056523538646581083189065573415127207297553586085919662758605611384629933501267347207508568931306861883384998602401296361476788380180256126980394886484896205035770681804164368896149830328213514425092421232368558208713064224636422268742875332114771405005898839637990670213503595610166873955194371143809653820805582853981223195447412192870498984691420765666840747896783782958254717291565229070843049864512526245610451704835409261871975238863657065136525049108733225751448680266850060448294985292896951098619414618033317003288484015884919159571379781404412369969798176801622894260872229455000009941790386945428232954839095481535808480250699727877507465555239722977659580282556440788632071844339074967062238111531152854538532218349170457257062801267937362441371469425097796276046799165922231682168986163704103484854624575397950002411366108637287115233081523286794934569067509288243227856816816328114237707367514026321698308487330469589935777343565035489931063337862734208160037195689798339118387641102829995111884134145977741779048370197752114128619313770759509360618072272782317742799834158985257210974631789205872051385949455440715035822211529137986266445345672273076937651763088271595931720318752037594866685929424426173941960491863561296079987154791770721478621343261573310032149845392013222459548840560026117989402553056879694641587575220121808187892645882045232480151459326993628451524123599166163942446899821073478095370870002506355928446197556411306368473260873755075874995241248629233587149916529073087185703709203149097214256418449601107418067108828150497950740801084210127521840411556010209533707464952573847483398408863495471341285126058678831219522147450678806176083994329211389359110847800088766516757584063676098857845439140475982904677378603527248192930105157108178809872410120945140492392795254947181894050463510614026741223393609716931585128042298434141435881958576662067828938303994782260903409832533961939042718729346528204493490624749914996310564454255956041126187050602006617933421234608973369430676030648748000190593200705534022504144799511130047857071100147898075824858415684035247657317267491592613117032165267150532213204292780455460047327095620082819958329110943240772712763503137748021425495436486195216281838752776027012980330334743858595676656368783840699207914364058423797814269242077679739029444328448612532119410127818408731188517820675974838499017577741557540796693287005756416798266704549642784174657010306707238980409252013952058831555525289533906689204836286191694179043174339514803143266357615972106131299470246477392147100500998171858058342222072507791383751054324757309143317036408015772453086327854505821577929418665511553969811594499651614303391713278084813931923167981487771265292764059135817283585269608548341484434499827329641800811880259501631941378005815450578365862875636322376293192228007763667002748963133420699407600327736969149111658114413535695859443805310891224866732324728259257288808320219491978989509502551779641140823019389358300119053900670812744123709843458549884518766194173483513089739227721276675527240705822950198934738037370631774992487855548473309161631544259842738893701256286818850877533823703193244473984088483837682391668929146571953114446055466083266109364121756747830750508453363117600659634786213304620675161906574667454866217381989134954147386960958060003816745633954746355973738859962996618629141881561385528283838637759950940717723866495633744367860738786526590591880367713072990517417659254582772549410119705306841714132881790440127208607806871730419026882756345626626117280748978568931535088709305795686149464998375501306241263936977842599305312601643998258402029402473985465804549933820375453614968036433545711670630173204741724331911913124803360764350432460543968088029656672826286942263900875458504240358823380753708971378039417876166921152693862094726926814953563183494964258605493265462480915199517480190553428868974661405529747717133879237363716649744923429857220610735858614379096317713701138608735498772440447449233945914957340226697978402038630157172482130341391140281015043432374765990015797099853061505055392230719012664998586022035007189768771939501355544502328224920191674978774013047122871185258182578486586830700028849143500686184255566593275086767041716955095499845128050088206661256286059910487646185319870384263234509535178444237835087575126829141120074509844808639366613749042941693184303892362204249732775621296033130713487685874377000308486402845118823324304767656363634860819399761503940722406293320202246842845538831594266534358073935934661152373953889024568191557504436207272836764094333256090774136632951417099369732818561800926672021265342463261245676740455089028259032132519798752170982086384954413275153484658987946181492262981829652253066609074967216494435622815291494275073166766888539514538330064184144680271369343400257250247007268865821506346070075348229089533403274025274700140449178352775072638800698749166029435412847591730549130924515129476930912388378092704494353329838965369879340017917523818678000937368927273864707514322102057754531595789294136927040937517337876984947947112891374122165424609585693347917212233893869676307719300407364337449933135264961171719741094890249195388770237931623926578030019645010104007582348898525461979484379388508443407303477281093033978704958486826159817123219166175721063352360471265698191969758603484180681448099891237230294663237312803284606662209493003055198318887985265637258953258155626034960908663011037725411228652714295246575683742270842324013737093118759740736606676256246486340736954364139488770452051200747412448760217686841760639514112002405670169248078788930508771806487922895694953178029571687637683794775640314827743591280975354774337532852978976197125373302321844073912614353291857006207136158275512740730923059696380693267313024868344904526632453423731381981063512824354018135102202011390731107459280468454871383237409128133623002807133077910518344592803976673366973439818026067454985902974305143657535082323276943540916006557009323080301625244168197776165893196470773353050728032228138002305646260379256553224046505657007653172099597012989903393822873224162682498590245104198043605441692553777494996538797784510420090579683094585091400649240800163585519616427167550381449962393292059747975249560219358824632948802686534378794921308839248594866422881153314624295788512655250399543386234405714180604910575294127904797921292090359625567162260770591303935278728063106317890851810373217098055138185948045237170594652473486855211232170569253291569833866827386937142853509385292017466992447063319601006120390749576896266774523826351660575232553092721571029236288284740905425814157932856414372911610078872555840936246579891584883650921106556269627853085663018376884895143077272466409645780971725077715385189645280060402033305721198919330203269213369626910330022176733493027681871314006425639110152823786910846583311442080542285548075994354356838113626564004066628800805236531742950291402399896084931316328834807914798481804319168499514324202518532852677818877671278403154945338256023577978395176808527430129938538630732840601431626934621548379961271268249083427483822438694097817902247790840564579009064261822041028655127419410432684341998081719571880839870430883511490200184604816011918015810386336399840662310759415024275528293280129223252785520308260583623263327074223772195835714471478819862809817686693201507565469653803759628617143512607037494199633251244882145350548706709458687190861949667429883409963405221043678742343270514823829266561306195260378733299599921063811773932185350188125235295876603553137482123469149818609334947453468421064275186094462316043235748874404215992938965131670482017032563782884302537484991360303271676207727105566877696322525344749112188359202787852253587273252403072413070970958731584115574876929271130373423541861001107109329377731573405821437201651277288137725234893005781528940516545724431252393865868618358805617649139430674448181272032998874957859259239343832230764538396698428954860150750328367339145854352981678127000210318020571952625377369186824397661347784751442983584924436486547018305676967686389011582156367732263592351864017641963076820478476128272830043265461285458763771451033337522804793821933759395852985450254562074393824763037492235746749642725717139253431841686823310296202024288248017092995245113433177543028883548334461363805103031395187220941034296420582979696406703548832828717503168804975532228405805324017110537398689181000869464375813945250796130165255994411631358073474479701636333521044092611918809527116131672376757374753548523795307134650909741937300399334954296282474169623992071140861955613073348592027548047919483000651313726061672833170346809112074453498594147208426366811492767864543253187915696485831489129530889046687001210742862029120865373709964336624056238455651477748148819449893984015205215416569749053524823879399357064666468625741434521886561588060820424365866242942728466659845173042885289411484252168577193949803199552182820252571635028241583671738454763497338944973189466667811713670965626185115528869117216956978553134075675908051170021077916037099085924408686398182248304800988128523012348735724909030223852676369446906901285449805676487090547540457945470644667930369876537407965886762083035022779384661014779047719174356177998884035299039591055171346755988506103571109458120728010558461845657735289292362930509562589227208594570669119633762868222991219138585266960424897471117790131850670740070966224628173921288263099647121105091300411038364645500247385535141344467025978591911195719985842484289537787207417980493089715607298098935428136778177375621345372823531461081431482384524000302888325786384579339288123571949975674393524275445356443921422687918338425516786153374443265007971928231257281306300285794891715314549269216671867546323224939772255523316019885198895328571524693473703153236258442536382873853777173030426174814795734471267335004581462325507952776883314966915746273688924989691368234674498195612315355240590542562415781106831888540330411755775758567099194983181956542599022691130031788201299190010325938439168265377294421399606084594228715047548445211100772870025742714158268482933294769825211080595243077889492369714435823715452514677943601704995521260682428455925705256984280292310842603943416423398174580788943551953756708626336768120614683554316751280624536854493087135910134521397713851565787590520879375907484417062137723002729713495152197778232031943463371733295821786767664000050381283194825509299566697013190228146600211497216657145448929515542827311465329931860804243706240331381542132279688245974857667229943347314406284302923475049065318266836942317174785775921150791050717136413175310792406685424544331015673121689328692320643996987463337490183331946941607459677957852309842476829077839354820134164231345511642541482303014527624476008255283700825844863093233508627888557992110098263395238453371808778150839383283437823837344029551721351669716897042858243013424383042133071960571024861127689927446143171994609180689204354272274095544355520160586028924232559363609934495644537454236564107091871539780355259905215012452582220486821462080495113235705673844442868016971653453805038683244264887752266270113269845020007938583379234484396605551595143326469785233258543492903313861576229446423197549008636370225391635366331881704275205358865004152988187183205197551867808750732146164004925117058457590184758763034929172523417682369172515166754432945274617462202285161612739381531097609008436261900357648438183355533093809132992205443359273348514960745879648769856531786630734706978563657846727621898634957785757421567204354340058981350725061834045621357700523459875613345066488268704152628379841580962891433909608726518338923999322974105427880712167336012829491521381892742272231273301712628113749775953327263904611189703610028978612318792642140325554731796729700979731836270397936832051141728191064060790884516708631154112787807055693887998914948732599087459917805081485184850153828011629016632837548557825232009015943964604239021767233659429187591998263583952125129622333756873073502134113877285419768734372615208669782613918538921575678944441139118940521472674278959345174535576433848341071141903124914661746878714706219427287810607515947181280546123110204788944466221679360697908894548963771663816854570079597336295888751444109139636691480448987434143454756766898401347612469922538930474248253002377498821284909619556053267167865027257177995442410015678430374853132776503991001460048546117698266538052696174932615966834859100497021809707178242185654673992190446067779657838305745114610364761425553609409166166743916814466501078679495017986581971957158647547028812914229702727723484415608185708760939482704018194229048545888145183006066997811529750678127743302854839403412075095638965616401945358284358113463658887063351941155662358289068476032682871190645187137054154454825096752688103776177417283584847094935259606636530638562814745475884178698797224894504452099590093205076970669719379974224416150660127202931831282507029065517248941929919499207377613643849196021024463190413014563446365615360110082455253084587435718897250621436267690492412854225256661566850538274583650185164105022026241570538871197901437653138866565681887471205819598310779094419101333782752324375371273877792843139632305289753652847786036113240346580441028541226422937761189199179364338146655891124001832028832196990533664695971461677814699739500576045598193264760462960708464178058863185325286663628346229087737207839062773698508071733430569847559895490041183278831190058514088379678842992789058365369180304563380297770620484089521233124265019578385725177579361350733254735451193472344751173036131899478879775266878494687188291585743913797681980597652927524601298232768207020069495538659296408662307909524074740324763190695036644608934837299553367209360407000222591026273966883961795166635877390119771474125613540507021427054816205803240021049087113810113997034242834717761403078099855559439437402234657875224367937822668629052160739173123434277989025973050390093140432830269376941516713710785584068279693924529004836077543943264777079826485631178664059770622507112804812286143408893651160659557642890118102866647587903965844937270266150425624675303734180886481110174803466170590787948399424121748911525147004797825708151343287098935490119669413861750674429285480997524463570463114149364672113791267535990610508175249277813952701209346702168522760605898763374514256562457561706211923708706395524819359217615648886467087643517261141345007951337626684653937919687575840737823398932968056209149490469464282707551928409187458737883485044269136244951597255942960781321186338582005517113086086535741619125864737928144115900062949992525751563630859752666930368877639896221397551846249190267543475476647308303759090819147897158780195212527260392151796943580244275976413511590973273663927739593636799079116234945631570867590188559107116788026818784265996600661753884367627485502358306379710221526899165816761863131856018399567347390130937200901968438389274082323434984019936421600773154007559363263486760838510815950015073799875956659863150860560847103212968992080702758858976205898862123493872789815442794552557957857285548873988046693677228147750089774498097237241813275418932137427108835408514521642836267763015440249865710220956967517061908627742274763299432405946327237185452250995698952751347599461050360041318461720409793945949818142581383037007183518511309466230446829722945063106638874810754059784820956685326908571108741658588260570350322758748439488559076944534115868097221148875284317162688917850554136518469564085898623605032508088224400164513317856012525549715639355298088941088645005838201186508407871218326683268483913538514460831778090907004765914998715554193232727664995257198426022910188644124928343603730098234300167481917616849616807067019205940775201850152366822660185877421770626205576756057943477155982321575458909015070165080387384056432762790836513252254908745545285962387174668757947000769754525496481207533192905178914053320905992013307392313653204229606828147190466173225656126966249427645983319666647776509537627731654817100065862440973294468606808794976423858368953048834907586893517760888755457639667126206626419843697832412744440101841273815166098800607021296049484174244610355569557773503121200907759991643990268986854594185457957846074338227770751088930051967867548229493064020464220732248329828209393017784271281939396522150643474756441719025612525214407339189070587917454320733158750579339143140106971259761947137024896754325151501851169931229228310193847571217863810957005747975084236806355763806634038111852758614918435516469563936235833082924157109736572997993820480893808422593160039939175009009282512426896492185425818596698911290467135555915895802286876137799898922622123042453842203079272693119955134551029763678014737440477820958674048517290897352604989350705640252353460300615945775222157704393112513333639975701768783726304749999469245187335780495706515767293668168024151655964471121202888209425666487034302734879652578075755516796805259244418298959413135958642555700033281070650122074956222518786523268441884711797192360837543762692449697117553418174628799553853459429721797185233160023572884960719494099855040181537547085354202250718814045981184421928120452356380325279339186249563219676537560171757240333434456861349939496160226010715828765185682896070344299476029801607595880119461168990077616626623653062312054575101111335410148338571124395599903302903417607662604655520231663440635617899270946334052573469135901149763364556739059396805550848759068937206482372799717048986442416351718011786347728903114989620752588878902947610399324869009265001787723822569971623494333000196140389916506635940322399851139907388617803071445057259260320592695357061419926588072664223381461337003711520350525396378192246632483826119132901888176434675055249328009004071959420915725010946245776412890801058868648697740942910646383237867646588005682614853444072657930822512757622425454898312562747654193201847052720584999956719398979323236598884536702930489730461784091552773421531489943413051057138620835477113073835859383777650080294967429728094214370682547798122725054057908982915814157738569122801378207403197637633787576461212421715133565662793472771716451768264275613184431393133839681297327501529786828060701333192728097940141821901856526585242757481431103211110476278378392608399324532927850152700824229926573009616833196022968946223910781813365070591401725835947313785297890833098037953268609287748462086416267332625254766980077566592266492630430037358513035867012984228480818255657334134192859904971412964686962721140390458355220298810222872804300908765694666055958576042986730418856467865704947178094679361310910855202037656031917156344254636126200130362710648725299465675406115163813607773112022839020606379463575669489303669276988719513764811972189609702248574568828545457558694939040812425314832562947163472475659509610420674456418088314678965941001756285395397609566351414660067619314093353108478929125867686813415398368579583362287995916851260192396949303778029857339868031478353166500451581097926374784709300489274546176184754377035476518727622839125343375406211270289191063712747994690092403373702341251735245910501936789205402166357186785084352392857110954696973614427386749211453973591030315492437852634404234312245265009837619324297603928357819911450068731844415332448356084862805174071807651730062677937997984672145972219608490616880169713449048677761984245898106534608517316314296398438247940232537250416366940792325729544242424103959620262539694762410968637075381404200753334110277505768475775215671743074722209320411503167636681022712616741796306462982426571719106333026427443059504904477678197446502940846706492714581471002502561206841520094097123872235215907398553782096066874477787772156989303133958555561809641826673029953591517140444241058838398308795223408583980376285480005486386863297392774286231617265062748997899383349759943077350180937051057871640765710166097292519838631500591679340527676704479463903049419898904323404133538684190358682589858374757031261550046813877813823847586100634027252954445148467318951965333864629484748772975402718123284671752368621813882609276142923933149378749647811561823406362537019420137976395378758931444054062034632553517468144184952121917534313927299559873391151142149003577486623994758175467664998859724643036559385759537531274501449306951885727232538130083778346520589272056132084830252004936948353217061332379138002520729902244959072851220128113264964005612113846220696464158919053600185466377662275537962913606931776606239964741470774673081227986369657776833025952695985385240431790172034595888224050732019720640882972895907649440152646306971754112477564986579902171856227382596212095080933915814720969693249054403013169700524471601143325351989053466048585975338364197447219591461631237472947663666985096159459933701044853803779840456097413512142523578034438891407527221278689841774001682793462321612300489533948951954433728304161083230728845422809820169305792738670808540342638602779052894233034478411030768535626790040458735112278851164833150273571856147543980099102952895408304141586723248431085375088332069231640519919334828294290473471331456698455263907943433709678610506780376157459131649313571083948090782379316095223190819068754287055356982503406948596167754508691646982509907777924311603302126747577679408051173747878657867268258116006548360736969783501485972151931683842658373451777183739441299276335517340862245968707432430376945418203098493092615223063019738257240838385116754549249507300294179926279254133396862677152007395995633461767422213921988500262285693096529718476708397186557239583648082362668746303101593198148707552547850361775750954879203114074418678273553479140878309491103637449157173023497810366997983228901649238459374029229848382821511536316487760627624642490180685670759853271044971486003853722864408773438769618565020854286214563970702229296675090937615853170954153954201596721439205575909847524523792120226362136506309157379559780167254916177028755437404248222103367057211679060131106816727140341071300474670038967669893865898138523356045020550296395718316655535484658958622591398968426487643121856284201454748537754976634925524054835926459194524188833716406842401470622148670546720169891239708979971489864549704180881566126907894415201797286462416506951561513849200874931145985403948374077917310513646112973826079265986268338130927686806694520045238882197529625130446883683698155080725006529839019436149856374066509280066579237864927556857291290666062255073017871761537239527053240197760782982161029874915367754028698981439801910914242285919705068301608057730248979153352943675248980215122447670803844373654508287562198498308373417733034747111616571481084586606705410537335190295193120423978862595806303432155297345979022454846573233588166213535921157486376162992005710077987419291873019551475788315091090450581278628101169579942877015945323470821332008385308992761874269411254629669222968800258871392850458110748207318793173432641796587052568847918345987825226948198740029307737005067801590706481719253887349644626636890975478527177670308015247360159633013906006957721156023761700555753246709058801707780047806740213403279764961099369946239315203154354293368483129880378017274676071840147086096212673691105726696522119412813162675617333712871436895276468708008009943714432872463958819406537855760135840643108805650802434213878289613430312837403826516546364668936026106714380018840374557368568927201726465995756407856419020840490733578169295526772391332991718023839854530992800277373073427837197102902375707718029879463611458036625005834929452278544347977977037808605361727426477936120847597093816772590676234154105639766268815076027619890985899840410110885584777644102221377228719911769738235567914337292301139119659585424870677357890839040528442216169853959955771174874647417707915687728757001325076434903904248730424249010697346600721782145988523363875867570518984279865969718238272883049772580287136922347238109045761155495903001802493808569197446974777735240260698520505757762362254350800940147550971347045683709614378568199002555682110373221018541577005724787618960610173157846165678827707595520591258600456203967889268766293820606898807730859217246182506408417907218852399207104403654526690053210567595263213803431139096596119932971963731164600421060944103093549784808881666501459308865542818044213786429006545016151312071618812550399262969576968180883455640004602919836239372102627569394585842367987471221949649089031700698923398773024504500652943453453349928454908586720784431911492015306805993664941357124680899173751417087800308403056499917278340412314906210756279474366744605486692552618977201853000784207457569826256532011692121981183787089880916033583793973140394849786789104160853093208683278193493610221995267251816579330681085575807524658108353583082714547597246592667544299687748009923086534772731201389170955542557499857855596473478962130201104214939244805033540727790016414287856084615896003943088883019691737527513490293283156268043637603832630261891421244573761525331914404127526630340832145588692672019541668391635867549675888586371254186497245402592843246968266615193390930302774582052726873761616286348214527741171650103615414413534945044398122900289956166232695730321968649768534791656083752443360971631123617491211645940621311231301562119843151265809355442074635101392832159744112206113321038541320453745835962180414342890656091387347108320336190444980935821055601464246980491100700606378876314935928762006875897818294640599392923606315218609890668698785252054269086680219525133163403002007003773499433844337923652412136155838039468222482479592177248046053410028372943783166360560848686407028384117247351869364476246642588379278279177121275482374028032444730733606401360956654422271851883291754513554704768662094945095380840406597631286285171820345205199420617723123930857994364146142274126123001003523811968200328960446564198082462454940389498121667797018166560378901657537368217911448802527651700390016489274497629046570502589139191926777314622301478396374749675674803811433747623932823721535562852022188869842703695959399771243911735735457437035470102157744747949034946466275899414134443709707516035438918406614882921454972009742241416128326275363418180243722485105155887005270655446010314710297551600850130353770852247943126351637563321877641065260966902548342801157751444579500141045028090929854111499166724660479296916573710178511556752728285121447105572518615371267794413682065495529648775836528111652147358782457761727669000930957773711091322525444171716010431272371567665454101719152660625799034500730964022057039409365892496071887935960051053530469209065035817710317316183368825487456003361762173866314898048244673537495626841535969909229739232532655459461192588514611458099781348496101447976288957416532607020746456016708945151075690070975012383048900885942994031466504088732183448804065179248387300297661819777613337432290349465154098983478511809485076095930913841933932192688328883098474424289563616708129710467608662182642938980368861038197833063971384090312591055184074321976404170614390004764113083250207120056352928379175469883121084954013548955521369493447210653250319204059502620941479161181487628762830231247718739683737510853889587641630612318430278125395657266504859854194728419741610892095333728648228758506169797380004111787180056762676966608234133914663065158263690886309057490162168936350887147601374142144488079322134784210005823727072751718711557315883366532413026349044135586084745921743777543249500877511423307949463641017196111465719442103982374210895016124236978901750342869562680575551441164677566620954386414884348628772852372014679803713391383062536233302757930216383147152033854015664633737659097235442281076413163329478917762259651189423622264220594321416619131643136737090285049452176708626455294577589104417169778727119759022943599192171053224623859123210010052860919533457468129017902685174545845943790108508757677835313073741889708264163517984214176449920721120858466258947383183753285493729070790594820424139981717662819541813963306035597304478755795028164510052424855985814700280745769026639163626163330487413440708041339268729280978461873502839995312912690523986746808647616993748234884076612678607685351185900972209929509429077071160802695321925799891179260267901743868552858736547834608365166125834874825283077800660765749320340491613093450234355782723111207522553167349801319391180802203413156874307619299218048380067289159703386359116192082745238449733646312073259889484638615733107567845849661036566088256637506878611744298312124680363889135675986798761772302392885573926601043202463905106353540240215141850366532610234022189105372628347752633660561175361635736004692616997674991993126350614924279119123773735476426809351217243144242356056987088508688125292554398741152561735480802298127962044182645814935180399999410562467275579051295706862777591524733984610551007686144037929892371733345064485268545349843723827764070672219516344934976746607019893966621703655245922701397617053278376099643739886434710167362493416070791267008428094530364322532744166807696480550871414609999854112419909136414927285986548873344700938077832414204946123669038950382185035084605784187622693670841355731527293376129461498877200918894005005217549770000998668316294256667833840127097744716317054229853756682969727858880743152208242858484284771476102985265313039268578336464833816989263333485060134829557813267569033153637880806394569723596853765690984736754191324170164203149714416936991859781123219318517448262574541305413073704324957954997976400134782168983040362428371998374072183783247766659275758348871072592547163877711485615645034823726242358241943678307696248877042882874919250098402861225100126708636359300248555341932016877968156138863124772421959311673009702478398572889215612535501831400791176161536950159384706331071658567446165051458165437541325394014232529306473964416540422386046220921280797543699781871485466496413895747508285249618514287056795677583036215368643215011381787642475567422070896736775888656095967922973086911783218187962656082271412824570765398367275603345330980416779945962655242304059943833131240724517820097539566950902371754807016281915161328746905370957152968984284464975303902249027509366526010565735798395902849202141245769313306249035902493707065021397797176838827067037955289121840408802821743882607499196823839373486060931987337554311188937820624351780605235225758894940467011503403965107506376565182997663346276343756862693481034233271761479497846171575390774849467053700688412586501161895833300820758791817008874018592621683853617517722115497555205766858242129965973451753601701666900714993981133472299109761652537885074209160817902913653393791212419771570021722554941562919632841855310016225189521762081795858562869765915802578188770527163012580996717102639688266519612219241664212512223376442409170866448708924031803230802976285293821335631568060882806053950223153024554370661407949242641806719905478304073891044150087143779831217522883946180602627720988589694014048482785015655814996448050814271256733019949206367128993567763344998882945849695100511027775594787116135944745932517944980895890758903516611931018100000542635808015958325901413341829295457829064587411119733139385666108763480945961507351222074045904488281592970599914353484899740525873291457967981167412238787189452978958881753962435927849460734167528811878434986607253191097845382511994656372667282534536461666562701795853327296072173303751324658325475649808008556521302266580879201637769149210199346278163729485816486237030975018617327477361043862790477986808118346415501610593226139582119784001504499984276029435898977400312507894839025316284093600931620810657108417158726167919172783341851621181263920251716603794161399032817304444327374738983607148992985850875561903725360127264681596879459095049784881633091799838433338087980621485311189000895918921973727343298845912427798779591134634002984917047565105791499854008364380907656680002188939760657609996655069990142589126161634365995691063220528376016667353532137234064635211353624039261618283897640352102030439637752322562264651542243976096303061692527959422188956109378317579926496941434265363591175304730717796763022002390289805448951990911645497223717916427844466653014290287615138108881868415104695418723656085677131740110704628040991874898061274615846900160441809670645119417800934971325343836844939723656481006567559808136215872747399890421937017927018502661914108134810769478540433320499859833639583738387313144304222110898164859817296706275530711053335050858023443825669284334173438582259355104574728027028149655189381100619049997045624318742971896238678871471867266484770306930478262253907351690752731377854373167958411394522985277641389411356686398810540912256297206749323745961424404920813929147599807773189387931888633598829481531101781004776530037963650408585361498814571443180273719740863580104803126012759769235708634596586141427529384717286085676541738017885149674187493944336573226127506739000384929059244208292137738446996748451358901493986795012156007133474527058110101491664222611708366105844973869884550958271051112664593381350253113758123419436029423992630080582868681610599638456821382617566025550274265397314348207187717883551775092121760111747445194628267560278826095525312686477615259265677683046566229982110647687671892350829401240871907973138974963641840958501598319895485165914510484290732461892206903613562220263006432038148022640683078355407744989919856734578260684078776679184466991631051475347842268014880673037625588270950291599663092271326356490938434002506338806108985087431079301033086167873662099837861417335101776508027844400772717328627033274662746377839607462056706981885499628174521728732593935644096545512689054261418767869535990575028501834288742334298425820093063753156122092877231673295526615212616612226411876813440391474962901670367026628531381235164990866169473943306263280992735602563961523077136794886609636391143667466255753530750271903508664785495287313474937485844068305150556885283162688275703807760570855621427330938366145943170353605534878820482950758949271747068217900690568049895468732988945281486672317103719074936535909978960436569473796945307024283397655770909579821519283486834155192721289529505315904943193602008442751793112440550190549735668985398438554090941740323545272824791385391638845354616448745206814509326201946861232482947331196761281467805121461494525846708615119059354942968944349673184483884097256020677654674681102108732326249062483835642589203269279010275087035417079219056646425310868039371972725301187213843122715008262810851357892100285912974130420093497098674519995186406908501967908687175361925620834788130563118451389872619531171179749026422685437792057643986651312343480650622014535631089104271197038426174637337192538635619068727482028423947044470505224954168451891212338514558044307769288080097135658340956664413660215594758906612833196737913166236469916937844228265966090576915034830816835070837528646746288300780281572603263775437885680607302023165018309125781772108182849310712461067748693028784589369750613468122753103343715272456522073819235771468622732443670904766029212662225930316523268096270700811132382001804576646354572299674432752746749534732037298947735126444657664492488802918109849304772430467240232861682341425695507635696290605404349653573915921166498730214747480450063427926983493371023266407539504280939276448414332083343054345974046462601267650031245888847554806076941693331213948707874232712980686588392853809081782647504818756941487819334660994302565483499275499665866391924719694417928934426741576880295411256348650732218914016546717092512573829298187885752338931025996840627116957511097598346110800856556168164298719880834084271939694467165742451481231517083053674879274669197151151728575923027401339634655431314294338629050974969326927805750457446171053332476171580903218387968364129403916019653071731906406746683061155487126360936523714911967592833892158463092859200334471198942379512238400551413674269204325524369522731280730590596507530825970456903966517334553388716597753060525172469977968371339271217888402902306738158734234215576451722620728836457374439778458328152913383413451372037679445246060165051463531122726907791860818074652591803465899051648981915558999193420780939525275429829118509282954964897727306322849178790756081601772400072182124209198597494077129480621262787237587189187190074492737176048191418587418531053523968575569658984792867464631881037458233345341462016118613316350756532580898338823938206012801348649299948710425310862912460668649013526989054894442577872701965284295623463146400914467917618332360649101855752617175793933870772587005951835210852677537432320983692628853921648017003581309576059552274994876511785399618139907586845129697033589314399333192366960017069765623100597339434545555778625534458733404200595079524611881341011507303478006468677019926052712006661455639345767968928257476552452768891797274428074626936984663515521073801224764110873145842235496520031293660458041282890906349239458279476012757388839761613396112573377107072120822489591925333448799590983974119695736644407440083374069968450590325427796784691428013472104325065740079980280511414352925452586803581395920542642220733647031845255266058852112734009457865518746608955873159453906448827628916096797200466567016946873296761888932675079054108510449575553845010896485595911753842824382142480869383056633910703776557937429940854890885362654304901774220502685682806060957503074200268802827696720749026501094013704572620875901860675687693573063189846773350172291839669881347932828586182157231858657125067932113606814139829562174833491475316405595328590608258185655842739713482464634548971674792284179393214649382906534767253751882777566506779883485082146484677303401527360958919461629168586241459810701431641201756408411559277053236487048403174805755524221712599914911834637107964630211302079535609512858928690114233030343836148485164536351563990587318060608045580166630518188103229980638510069143389046080963878166005074900833260951700891674735485625497200618062347221350014907692713713974760210553108573619596874672382328711402333406914914845734864223684895211537788928148475151376129840492077080613882652410678782788021063478853551814950010451720256030470864574625167047333852344842649985423270626814179345370019604952465101544261367094543602807895075646014469549112855432646083967116102520258044798573749156266864423900440994968203771426551283509593735815298477759909346448871520356794572323725531594747590135543990413414993968299857240740231657652200746377644494819745483352228942725782633615244617417702828702645264310141577354843229020038631914463715789450029805855407361324026104205058420682936271356627357066211006390379260284152087908506482538246296486434468341666182524602473060070756752001297354902798777385524731859969134572191675111187939346064211723868478745902467746968785106189920443058165334708221264912224914458627845885886882316813157021731725989148927039294414864197277024430756834747336362559351580087340535216002937638745119282459477717896658283917373052627021592379157956326561207134002782873558541887370421710552958747677755430827677234738409479328307893885861169300423743141521985447938843873302302616777200746555528998681198107681829932287878001937914525855370824634263040067626315787446577791167680715490700593650383618223890032560951487198712598500427155099178004288096941060781258928427930423470304696741031014195331214741782945095977908921406499939499645576858633289663097222835544414835531796234751626309192879696249761746800814026432801944540931959912152221464014916483681527860942066601932973249501338650799468226303359590939902389537352291495270003237282920189116250384483347710247779832468270988721061201892942067392796793212219215044991895046960506709802403029642027751626527272220282869077981636094437229648064529939555742448402371624080651713295684939008181632439268286629865645883482815454527999497084766615033757448943235811991389752257071063930492226168937459725295545748173399384573910576912796344757487041141217434610678443727587192699803162179933308776681482075429990227342188061837870591542705658328055576746648355031490616876178398065287934793365186756668254401987502070389882651611789443736618840041935181841315705998869553026186496698971303301621760184471944393659904153677681587473212868620641307878382833246183473471949362563604139029127855110138898467053270949234816407776533188270107070041001790464723735096985860995249935000818684721300866754764182057020473168127638966429769603629991219200702861392387390894444973180291762953279588937798529897133639924176418110355790152506971805769365512209638613590731358523444226288243476103870543313491558291620949260124496706325131202719628984601397540038052334030663605332032916134479245536185723252633418078685160560766965993953674826384829569496156065541571535685942542400018899761370416020945736961459020944734411764444908467241100813248275178414334515972446044415584001783472453757327969794177372245896595071031261609297452342427457097107611031886946204965539732857080805109277911155915933852052186410903836669488866656845556020359428622250622787088263147562963086617705700398512869005829691793151813176983857405105931271453766175874760349678653155721794485326000686947491218419214552413446973008815445630466258614921013382630268980219146966226276090686095204707344757238299022376819834991388927396104665379484492036691619337988966184568995140477644105208026569761753175624051272847099025748990859555405354497665998499328349816698484267558068357547076596048869871748240596930578693862741830917986199715658254611124441411213435353706779342246850473701681908558973364446024491427647181066569660110552984366090115024391424696813774817070111032239925748063818534508269247950661681935343902176154085990469544745479598047475213085203695225002840581673602042080832865978747464828806862591205972435767517461804718594167982693843567748232533441978851755332110194464551394969089111495935901017973886516762483121189684582969661574308656856420309207467770266711450506164425778718698654068711202172861248804943252780824591397296631108989342721500000340148710399952934494346890057910536709317912276472736225125388598066387841334584562897526871842700543603831629331311352854623425071550186646144194775068240125953004759789656248187479292691062992089469418490768375102069962056000429404108066578450639271510696382937254120071195134062595976921130986494813168008688641678592781094283024187318236363193411184270229304235599881339491457142684597036353857216184068340119505383125146460001126935077548491378967975588904844667104215936209121226274339586993138119318611779873896698934734483269186980652802551731805527767564854534838238624399813293410661950697373457855416474290731182885480105071093687312174227747893074468291490944477050970348574885522468441816327892108056566070806607907609576035024666655814358695103651381085896995212023765113586338247960717173804044834079687489513810881923046625905321574313960877870673724800992251643330325857988332707240218835293452606145940422272841273971543449464517464866824157381482088043000322650499363827973840076123765027609067247585676951991556884181008449310682795439710126684514018144421824802810535656505225810283358728026903743973355069425554094092570913153973756951827437597276026042309881600630386007574225376915976608439707785413616255168988254096147497092284345368692587571812237943471321788278296753972950954978534709659320590591378949887619186508835206564529996443366001117383698470909403055418411404197882057932758746490887847124408993297102229272271066079529856735384194578344828570678345393836900809947103499539361214693048132009455002063973285517827052288286116385369953451777156593326670103059962113336306608244441593887930454217358909567579934212976226016627993097308273385730483843614816996278448588204254204695564941654735958718516658626847249601696312459727273382090540386235802237081128389500558455765263178790602672546041111026426176268278533097380326745966470331921220283476278768938883451282026411057062800117106939962749147121113008886585075537070204026750786545971294205166615160426806429569114541438321792191443239666413840357234587218779485078262414548668852074777477749948991749829448153237448163793725634466119691849694773917600744078942370806072337704632975446254218405903012647790527795305170740945814237438585351399191398481467628411059835654528867677938635324964158593450658445539517169084419428086582680394629027369293466054400460982233282023010876229522798900192609157428573136902649492605139652814212507921120770626485348246737614292159508050640833262609937507388932392611985453806820872072792478298763649683178328540317784052191696794054550795304271487022751976769956001296207728546984008678318181127430370425451432638920738778564491173144068920204514101119539752992850692885475372744956776357102570193107140603727933919647857390485957336633803085052370446927788988555247940962307657170452206821520446427350931747618122532713008646210945883204216126887951646342644267038935993947749280722609332965601134875397537139911766047328510784577669488864703657870066566355055646018778830342073343862628091837571208837826601165075280817186704530157237585270311659211753672553107031703496708853647519698126291152610603396801964234488613105771221444078900627792269263381372291596516254520724238120478962169307771481929225696912300670729025850313531237674309685830003151084315762586099709420702912617782280422288734869971186956528057424382668529886946112546032166789993897154241052479597898608443216506042592839568526107161974845194123100012840399811578182236309044421462955710670780316063592193072860999515622542758656474462627468211706386931742828584474907461293055799317218612516329131429597032225929825909652840681538110777051754353791571536632452826605079494345539845512683877783982889742767984664166785362778545992792417822525188572945926872227563133563714963738204765936789476081611385519575863693210728133985536931452913387670578566400049497311679997321966950026244158965302959115304246915014400786183463206734269054424962221887301592828259935895719204818618214503039699608888294407672376866102434245460079394671781757409816389958814161743717601277945329896206082950306633961070839435277186486677391529979951686747259652910346895390177305754705800735411408459280659661384294725429057821473789044914286633554375263079866521147128440013435940373697159678408301975932873948754936503175515343547333125075025691503957543712420311131367732667991760391051086832419128440389604783554085173634457866989288759327396405383560823788397715328492279126291160300634030442085328712900022136438779654182579558331279973522623453380463552764723889800802397960145586617441324509297768779650400447577305719012035570257864592726940978548258659557755259607684317059592700558649986945579760740396732187815211032245479250316699282994002405276735599108823990929324666851988290980931947467785849171429963225513541030403265453163150440109052677737551742579350926049980441203434957746639036689567048951062262424075418482348384410370265897038065290778523151785573334482949553284168548911924254461118341582788242628899140800502275859166479097663509775291351308323706330968060047179949731248632379599448683380504660664590241967504501883105632471518201249620293229175766984838326979932384376888884444287732228983277582124772850655730823950015262982118013948669393470556415042473547170456528834831091021896471773230548331354909476056672823165862739378130149510441626650134252104617646172214869101654688907890830596651087137932059293416940705218480016292080186200379675804134208645805314033172334526788431308659493311017639479401188268465833067152397984281482070711018247493966011139088086465271899649290349354234909924625138603287204711063154192350497559154564110972605462559189968690287595650341338975234695414316739837610702658329824070742556996218965895832679223450855782561770320411929961743378668470865568220965718465499058251008806001885132686165807550573874500596565190401110508072738848751765607647424322065293942928208457281045231413251882421059314259334965761229118602934590708724360050332175442162520603335026128409911765411994195417025113511614886481008096514763956389735324972424591067409615574331264745352886137368084785456838788449951654810540917078386245459937252288537369448310003661172899999309124430759507821377188195107057676195955173640010765968982110324700308515180202900249375606804251018018256899004647155278096992860982268637931698785347699248963103198143392438829374066102292982395481535046826448127657113658204651283573223117091169929849946035502731243202961627041261340606537785454835884566652906423874907835883090394974411184310427135932095639147855289986301108203197419006680331310259332794820312313368021611559061252080677845584791998366595897114507993564166739014630834715056198878569073131842843617655004360466635243159054861318349681731585410056159521344469091080303987817349284623783647365444171596749779106503053109175873027240457862265476550380615323387557902350540564207802199560220032405475082278927235085484148873050578174112714081034421255497125426116107559456122791058080566053788669854180745679372028986029277143669754759637027197597263272992032645229691846957822305501927736624318817247679827094983651753305684450284513672194324413627421423901485754701894735492729379965842604708114604397510198456205077026108852159495752512734822687686476734670198908520862940685775535255312598766807377878584317438453568786552880965078467832627555927282614464410142630569963942566407754246790787155651903372661615147788778562831703387210414185990027744253175348497120210644590112209946211248216979570561357053968723227912679246079492672834557960976052700504019714031937106858203868197653363782769696544856491537641722478615855439193336704695137010985792601808191634681805493078404768505808919546970441962988275930636297190940036478738963128941307862506682870070599073444893626406330392893603677867710655515406398843602271375989341308772437755349307644294411081955051426561049292432354032073117236745622411642106519319937975520426834099320130903142795885241890150394035294380684230290380787452542401964818328655801708154849397037737552514718818053329309138928253535400656673233576539633194696520591792893252721700630849486346731491199498219736444779627796643887229827273890430855964529485724061993976743770005624203910667955249052832204155238548707142538657612626289895794298484365162376884330068839671858398575044968368353843541501058459656633044892566968972614273417368557048701690621488331156301615924714393908384198843163341654819517588950487239123911394733499845368999939397598443242068282639189773181945117960201016445496059620089566014116995472301129936906762762372172660752063718193868849941002276700600134168000519780013044869227189673705297229535667448935665241387379174169575609291994909653759312811629487285758007075092365388092760470576600284186323351311943512957550372795959056598800775060969655465227927919778678160074376473993974522624648066190453828671308744109203101222754812492681297800045998206511205144340631538901252601824967191536940515523293749748708851275191051318775306101271929247313589377968082793225202235420628178602770017600286362555522693255350951395655782706176952047801198702981033477948195962547188671880208253800879240797666782778626328266318089964200880317269486287928210674704944054423658997059768257059207256315968867425123231957202216041401505698382290016213052158797487877938521026103387416313294313271016794281708964235405661022666588242309543264189410214541435815184770151051160072720658426545619408703446592950653978398354742098572444772508628917323911093262033207521432640772243238735866048077467703723872293766857570111983352135467941477571779813602303845344625875722308939274796302014886477736291068940936127287037263495859830875891450865389452471693690915701657800325474284423194734131490711067688172531208924595555427180737873853053684017705332566686656374786881331668712614500700227627865799275418172306475862495410260601542934471981678250644416467231926002297963016164358547664339071399509099795056673946435530902048620090014087143978193003433119968040858543815183985608721549031423295023597813331099197923261345625876173376640223572565798687356521533532312811757728277057809205684118211726570105767155784203977384936502731847341350356200383707467326139455852207130631436949716343795589208139690676045571781399944086758930378944894438452287763107906009763670220256481677408208862300580734198285118340134339084180249555445893269821601542661735014084426531289232904452340526266632455915464076782713720875349217173356554475104354404065731658723151277560734567431288891152191205575171405117025312670495199779900465432822319793092517299186076314330018703586959299852511219209373955455323867263647060464590201623072037956041791081979344193608057578901158503497611512273241465459016993052191728156948086727267409308935744402731598575631291681499472632340674405805815187563807572051701058871292629632275944603148145985064775165967014078988282309010913316354888431838279889969137730834351600378891431429778886836458158257676375833100507686452798428316816158049704256221599105804757775932978607635728181297235739691083380114302117319091268312197311094661408140390755907166726611440421464703115867456804808855384449141244938689768966416110048174010217312688822768681262060578034197742076600728290427645616863765761077212024892842649178708267331271739159259642440049864017830878165233151395303262169979912769903737398502511093849829285158083762574221553048974506887123480932635816461838483539142362216578013829057795839018775457316949685689381939820461634060765831631057439376574805894038991496170933510633794724799761314308074444971430605937818008899067062263976872339750849161218348109349740088647026302009073227741489714538921729163769991042475091837732599006323848720431030717973257773324619053395277713445159655005673069246108304270781578522782039175058606371787599673345860418625907930905037573994258327036964571589564607187792343566651874960972688204048966169195427275589274740495914071000639970589063636470585842345843220297275306685205571533768912640769616600301371872427341461898918100957065095834307432982186357033151671666408883448845810514899525669620626944020641241593963587854668923035839409377898050867579123097911821015904189227802141338418214778225661129318848313238615620447015514683874059305053778633891352175536305548250274821139123678228507368963423974719054231844640354880108162510539749280433298538125231016361098027206858300579169542915279946026283063891309297724181360473991458584797974329459107138619770162095983801648330115268936923872908991932903217058234175550511718676568591891493870200369160451920001836158302645327770759147584597151458470992160809212647985137770441061188157422284191720439629582435465116941884870917574420006977267012456774057947000824036954427409146293801952027249215815874602662198426761241160256434344910459155223299550705946333823808991699592008897698354653083513805063132584778999588056660125053419759514232253280410782368299165488096897320878837903978093442530248263884530199156871296820510283492527518341303691388209875313578880315360057547343310341402360397132864115692484035576791570502447534479683526105677550338784223649103166728926561693387503054613428805793020833361332868246022531692494508680430613558559815273374747255215407124383503084537508110622579632006373325703323992166600383832774442027268155665716969446114451382840274172907904670317238629782940743417772430182748817064139241041071904960385073824497869383934581535909383044852177972228622703568315694505479317316348066873430728842975211042737290063911639619468610344089285588752364174994173080026533021191584010222735963059900466257910319529312942552501227168762786549297311574829794683122593279096269711138872249377038635921374324160541241320657934569392274297718593558365226738910655744588628900513592878257181652442754026919081461949811982211356367426667056640966530631505595595716185048110372235546010394430845442207392850032881607193560097571081654964998387374634085033806787778097350145273230493877493310074974434178110516341349282568856304296347069890421061480430515695793644420009362819289949849392074258409893186822053603144848570560236806291935804139198092349498575427400595855853812914557254704363041348459704195653470785255589927801274900179999953383013235638741277389388353230979880261786203902184766282213044428376556240038959715195196910838885929564831726047611162440886764460734325494836034929974991753704958969067212339576152920961736860808876924762210132822401720314342443165972440812254928794239045537997173734456756367654999501515498824163984063100608176409272042778401066930958856840006652669118419069530495700420228913018420941891839762943025895440285110670805525786742428017597631598338710325034212919082392853404680324554549528034693358440630973671164359566068123052979831536028402517558569347454923869401666079236064740825711996742300431333081117937592606682342032244921310705602087207652269291203931877092292186453647300259136762163200080106934927921246245565458575862398320300872370295594446487114137775205346547746048353003068078533886293278229303694888759070513092895525644798931468998847637934394841530335943663937874715802661597088219972978521267012560153298795953384553567728766294701369419318025329139189794892241463705552244461740028326383960223507753772201106532262884521285501542935659103268270756473846743551248178590143489402552526622550960633988503020124945121626061110651589545703665001874184011087612808672358182611313028548979539734609312164200660442518933536676766203643174293943249227330676700977283763968844356333892664254436037002018408620876696161331816065198991561932941255790047683073319145411022565475969615759400262446566954712786920388391182498454230901824072431412812740586826720065007757938367323882899119580855322168105306262025001458560372888386595809473456968866086242248126726233482905470065731666632097765813981227924842477930415935761436434482508853417199988486487954600515634562650094402263558893293171314674294613831860162734906517696687630606270409027677426563412655304099316300105902632665333715402677818559416794229758632484441757665377931715966760815687832925236241179311344689700810680998205355852213055958346840472009708427609217219762282037517474700763200935074388584265024288508132102497415242634632523132598878000560109375832079472394637669136193836365508080658719184311058695802844061127512656905259261304912272574864018021830914328555216307819406736122231426979453317157626752006477808879209757538642141750294663532168079829904435650541741449304099615517916617028952720499412927559669825150831270991491683480246706384147989136292800112477109716923664762285936010281161851365241453604401054239830874554680496612545511065836331015648442530694443209732491865529974555544477110745248298884555550606625794354696854742983440534418168784195212116629305951629045181098359158253982505336380409164786603819660483635851159087203278942862309097495038237037782623737807651857191598255579400510186863184781424561668529043425779766127938564548002298751377313009604338041871508680707025169276451995029709464606418858364682899290694188678279435881160371166078398286636495501124499666897867067605460401197001700863342469056340078427192353085927577613337408014260622078525062443615005196909669246321862770443366509403613022125053322967598115759936904839065273032540681440871691784744367170809560405271440068028498369358976795513536385297964168402108952362758274952469174583316677715182621887259960884458744616801889142229958283012569808291604673762063684940883432213120921708639852524624854206025679646427451823072837030611514772438042875547278228441152181933098254589622711524205569870488786946199195567046073909046318559441608887527024513270392793862415079423688912184469937275673761678590685720223524367181130773226718689281778640229006272957460747283943002646229338076798436065023363734332223055249740581524633078135813237992326846126042632230663036809736582379719900953028799881963531595462183929349549369988010530465574040723535516498511388033556044213732476204883570916949599219024029417803833595329223277163119502981119594539773098994463080238271902125334333834767018264525142924711186727546751809301196182304264699571755430568664846401661324355804343738250297439392191386561650676826566141854524915192883942121284467818496744616931043807714421544054406954578085776230575953724830822541908565376975066808119099928724982331682220400076665960038004103340862764279336370837664869088946990154253819165457624920328285977301450552395378274199138913098032374850974400734499514067696144861929631954344802919133987882015092280896666801132374497564713240365913012178209770245204488778236949038446813183751672603496978297599896670072098399212933819359352754708738484180231882176186608439676342488967572785211517550795783806603617186162316613150796946813354082839346182630423476095091917658940863557815067766372351688101765481032668872627782038044852631680673404626586617111451619194191294625849653656445097138865983595541653577761253408695774630091797776928362969140227072894724860689650315076324867487582303243263592634394002769767657615455409219546987966482022122086268666894129262025749676483599296191160967707120678827141682568407552630950957026125320901892602418589185220276581546944039581104722465987396261152147161646061728901898584892941871078728817153638250145366160696149614768675637030363086045466723706150439772817685262990080092920025303599077990588196454398359455768280185134216897587029326020337852362417196992593494718415365574785723772144509194274817382657093094534322788037837050209699620120737723219414946038714345370153573067731928813406441451439796224428521534302353012861515474361208887828861764475400118990909922559973134682923686557550991162521790438811214366503811327473508707305873181788814664439254857671237667002506666934125025308071819747400239769655080230756910688678108446632746171725011080699115373596866144249746720970581499028195681349449735183219498290217240352916614551177894390170315306150291034732286757881728683677336461169424715044430255740200996770778328684614149179465717275659345912450348328865492809356378335035906822803491059304393340932717367579392016346403222051800413717954718673516030740970779206956820563203109662212975705209411326076046878964469478367797731531816549888726992700612969741767133548882319552897180268218032908965806543553955203140539338426852217294178593322208152875928220273900116015840208390686959203488631082930798956999468741048983821135946074994567706081370022718299298751170834232907961464894371253441539407753340177255403762868275629987234327858574976061777603240895783368443036339679463071646446393461733527940207420510161433893769841984578214487262759350322985843672923206968746787915273468038135315559477643233816256395292576162594251701862657203394115899578002089250754598106438587687185329148854008950901782118212273961431599068259291227519891791236970245560900747273973478730118999146428452037465367809392182315138417247876881531754860512487490055322758285469051888324337911129006804701442687163193171668901637299056955472287801629223382911663940700491652338693966205690279557406760840051260910156324077792138724648901570880182943029284979082548991293644512203338927780806888046410874490786360462062948006360780314096044681500367650576979591654163419180821290477579899276107179410378344013687909070434483489297094290684234751009050665031182978057047270484880657007178949620861099394128389580495964816549611428065893076265513504732874826764326848346966465694085779885849059162528338817534759291699756491963363457217306086497494451204355332447728229378960527643870120955459256797941548327078350524699846362943189496434337984669293349488090660686431522725519697009880380114803021791718541262809622469517953307064857632461878354887880860228678973458134686243270952594356063327790605906961014300179208953765267032278990645894057680005288668230107056408789943963866969811704006244259841290613492407121365108918699750481492885840046706435751223102583713749429035979835810241381290039584933061234082352933610662776496543017224574273818919987660557975662078258864096780767118091450895412639642937193938442422326028172440700367220917815418822101346791925149323603094357184604619793897439877421790686685538535082110746852550668379942203838750367289472356733881528807590827752264804222983139945954103946408353092794807912729222193036993135786078982430545363690063517802546038067501811049669280291156233737493676628026096693818575751134192962919790236982793175676463516084171266172853747946110126755460385687207132211180600390420878342402655183498468480994570742680479421668251585305111837593560809713902478660442780857417502509952768085182521659494019340567833320901029825895928035838097383958331092197353056704880306845961536440187382573285535099910908443320077163686639129052911992549791287419383680598955303272149933482334325906391231760524749699083855427496438287737113040356017007673912437972095716078380235196803707995870256732473989801148933089216524605192998057270989716405541167547565700081743428420910356793336725614983576701972342307235703553230595044222329462319590379078586032746301310836777260358596230349325073033333975880542960433875205541394701458420896604396855295595480109292131134706752828005049347072938604101837651886094237103357990500801495414543910534239895412865068111580635941051694075232023163434877349429166739533503292873371511625991348068519833556824887130812325741378365277404241344398798048157836274345210729250015476316796799438256776824460386982862795728234009800837225435051730409910538571376662301509235035345618099240048630412027075102580472394604537507400053075584502236883383286298351447044204351286432222727561229423699686810584422730912792034952365797632678856308132174179382399136896325415372224815148288786740374742942012411951712806313363041040542698821275393870608620249591285627430731137631715834939920194722065570178401794665978892617507243140453402939137395393367891997703410084969192295198410459786627497961395397305042553732488284598385163293313761510275037099604564994258543388338059525323618397555546274654594572638732544071945400718169057277914568852228586318762416015165364261299059912267242535352915257496368201617324184887883847427008524699849993887854292506736617855806261747694201416620143365715754562699077542120666188957874314867031444628752025613658045510885837538637349682816206047385139432791026694973761041960163332180849039503214823871253245824403654142092386293887677037864894900559410603637503812483662477652695838244166324360215993552874550857778045551527731343904979325854201862911239542992297657638036456433696105673238794188588508974825788347725921221844379699561589076462967669371123813357764554532328604288249096621863913661317666903025767594061707648286123969327621774911717986808117619827501514023253611786940458423378363948993703619401931373377859524032936683954732717246190529416130571765297376272695248255584007555246313490120965969185962072052986287731114596133193100627552549449843890954619960462485792888766271133578850948189356042124668350168886548694316872779757587894965838018849919493382572296858069986174195182979777208939341630771899648357607373225842231061371025514643921378447316230697032288215277081380435714831592896448428933942079323835531197159503443850285230260998586992683295596347318676583835731778452768613087466364828023939852081178104316709488398090944569760964599127644545135259880072651588113648377244833143869297851487677762985562740564198505409950372682557529000100782304538795386390740931525906732229661426700188101395139334509344330942359659773399594854728972298456736789816956083943797560847045246652986023852723265458159584422634978845485261990393413678018151561071555239921124012654409599206331145613257495699384036325111357690739427547564836721529999588219739220275769685542935475663617342759535680594207190883999488700185640293485278247498246361185283743101565662652127808652027189797963606006927056542336531969908719730020239332010364700804608575873991778074497404817813675707758317734719497235322035543866897988637730844327281257347685778807188710467540772593673487932126770555117527668114916926538000589554339635786714400154722419748772131823882604222929006191170838555359725248918375911432951428828856455281568529733899684131303704743297561202609888572676315541232241535540445619103158032702214414928660395321624900841144172589341354387508339118974800333767364191514708682437828754844977353077909429580518939431176831327852823824377068799977844804323723410002866231323106945489109399739067730325125864120659509358775782652572467110790242441002110658386870081297253894158674153311040772209167787652307617227351704903379530915854468805908038123184240743648441927617899024381927536564905951002180019427406934582445539053502309193392672563783534105801880532584808013164605816266905076423847017688167788187693280505662238524641633636540233260951523523641572794000503945475151106955241747918727883937805578906737547929186792554659585630679709516122348205231427288863133238016130114073199849965566625764025488752234971909930024201106436361285972076150112917751412418883505663711496016511403130036024529351748734975639858836951720170677952334055947038160656074756831967759786853520318638725121259403352519220256954658134223085298005371570087807482590789590541824957393744964731146813846031141111798431146864635288234156404054716452376315893811336752334039169486969607910557868326254368333644891665247799514694495135142021737029940003654481293104456480336853677755198602805597969359929444891391016470031964086654582494658795065418779217090867249187777028808199917931971112833935710519523623975695686540033932484151754899896287270745151792170707962962159713676017833608244109197296865692318349624158102403367388027523410178961925190290747590280431726043341919382029618971118355043797750516866867360618796966740268751389626340355904666900665746622662466980717349117965747539249780114942329464789108166576304888241615662811059659212407174844403985019869833850727400059710450073665106376225497077548087330815568266081258805074331135850122311395854354847721972719635992919090532124632774528014592360238511969010834234742360405349358411353072382801287761436851974640648141870089322645563430560548311021486200916125869681684785672241949269292369925064618418296303744990131891910198566068928207545369046826884273378483939564273072787075872252997613474985797989082026586483866255376407602611240846745914142807942361478457256652937457929729118914190457689768919357633312699047589765012609437325575973964914188986765427560103792489618892086591714927204034290190426618682170677072474111147270924657882282039205467651081657076671962107034898553432974962675013165780565393610067048220452261490552880779045635816650786817298465736631928520546175576624561352339524070251778507899912002645316010642879631015780767327379754732177829508418668374132847447362915865972015143886268097225872321251992181207006459104740911612718682622843307987365699472569601607128866987308784688455734240101114956362317669181376816721474227589260689726604233006699707919355694096860740575195545926085813562809960478212877051911762667927845745199944967638603469554224153026546770840030489504365777366053229278165551491269840838308589072902332645444752786574736860535342552855644749045854296465703817509856218969839458278986023762028626269339799678283205568779359870258062697680355117102227557935607328534682613099168779187119410206462451060674396230059583375305948305141465441024118813040280639779550348800727275259303659542238668838818077349560747239665921672366921357431423991863982489764658607916571827148580450983981922090962403951718057329962762273670984863392400360691618357340552287707262369609856091133902091576998564751969237427591885316729894459687322402622654976035765228624534332473340116585856299579816615512398348888845184065392528209594288218209700548670720040336721816106231925048447870219123552407326247490911901705922498970850992538638962851219577334750697798690856837304433700489772360136498961641564240327251886423075375184406810497135980873251456750000286849965863000280086477087191791628163432875833033843685164346250397320449886699121976913106841068650098873887832882595605123118086004711432371129233737826823228531467097740334160968534221354859163163822497427062262099599108448511280895510299994504787816266715988062865784373654511590804182040556438640302600933292565610837381236521834515086760935045904496896950032353861440589407721443036365908848015677133404182077873856561675527971386911033228163429992289836050814029655508185297558601971260684442760117229812658278508844418628988287686828655543956468447216463094494586281456866847266120262457039967729420604339441088217767647088194192992946927792297973491915501067978038786317837880985602157301638239057406973106739590800587901252537543000781854230085793650197114947863509521970760146645063360356335896937239025676489263036984467189262335068317455348351695270968122269244743451002593614976283696312238739970708327235056966852188687759420947895890888693103642652984180256552801578060049700036975572780316492734475201115350449436663066022433086467580500404162801710777638396910830039073990408293787916613180408864502512300264631467490689414666585713916793534407217222593275210369815512794393256667305312708908304468781675099592673561502486458881580779854145485138357674886294396190481673292651405693951550809758034786154410562162615374263390779902700609402599074425573916013837141231082488054811730800665009376962010444970605051967194313960129147617322540378661403529085322503526203345888216510608665404623669915850276255008099751818966927848307509370271874295245834143833309953101751373443257860896136464607515804245403191929692862066633421185248761188661902301446023897254709431662889572967603086770133534366331354964969883442367809325409514229388715221596397396079908582198031055363692742134330227506296170892503603579456548201055813794546791551189225699918172083857511642227395246744832909658044730288945677873119749245334413797616778817392776758027217723717345950897918849461679259197786518890776541952482000299864242856646241078741307831579770587224693374075294029048554467654904068512211088464496330225964675768938790102724989458664454732313902987842408042945978404936258082207064518657252442143651917834849058247301902322620045239470456302420030192439576158620473677967254666337130093011132958707914876988714218954858939491546353404666623156710390340830040345139788645401275489116357727899840842459569473566985177552363036598110344183292825038824943571185235625108186655640054997399308096112606692120156821961294834471254531475674087580208451819870182041890296354760236511703218037318093216587957873492669007748138518053455304886110651980318131275842465674631789402980908251304136424296506530436191669114310505784901910912553560296051134059674875499046316468844737182200338848583069101153014842180684050491231971319756911597286502682590975897641402847655299623553821541242474188153017177332626475745830222228085409654719155406866839851525953330148708545401471011353423484112880126048825053221941468035197037807037409976633450755866773406553464951235147237173370147399353419518123151873776331742612224109037637183318185209154722944465321575230943909710216957747530086844525051309306618347208231577649035971189826917857785169060248623984328691691831976476875519539797916303601519549411716999387878235643327153779106025628749841685703848017270150811201303332243602494702831753395811479573161878197211100420330893435212303811278437592720493008092309179545004673073406408110219631824192663831904375842778775346897911320982086513516535092475392528724410451135278184019577627999687165657164305477141891142913109279712631794741920893842830176395847470104731540797995510962241802430651777993239135986658444607429646596349391344524129767354309473807067111773339677848304754801074420447329431857628502422142720769746675165146145112393188642511731468465323591143745730416763597728662884139812877769317380578335601250783695012817810308067938660482360007628349363284509247678070868723185249127706309661304246168250859300391858752595503003709061784354837958226900611718704319420438400532747176799074244873766647736996909385208048657948624839538079735349083350774843202749702778059833797150384407849120129522754591039884012988759666780270762265459707176234593858933029406733739679525616351571237043169012355731183764333202036193735434869399661026551369341543590749221304894384740255577997341277329263151343210137799555846771738945219869294464810234396621580387444276500688487046301460061745656887535015609199760242596205553567333738371847570082135905188710449712881114745921494420519460102626710355266035660017174363628474820037676732360410010045171302324983276083569943704477421008464782986548096618851464468216570541557364927275491868083206854922840381866859499552272533297808021853370816386820377335845079942877201965101952040710660059713216024938842897275609044092306484906050488208422150923283508721672710989344721369928923666324170309398976245878469185519069249696976724652972293401156040832891234664157642823585937784750218656172042773298791518615966043833255210080869668608198963220176676700788386750980212799934410728840009789371960550710329916695565773572933804553276774422345479545571539644554402423880808225502318828203058967868509381415022800283267512198151411286155934576061714512341960277626232576256185886379999834478305801309544573734248100702383370825824547080488099864745395653881807138319526118398281399812891757988912655676280655099621228083832540463310563511925765650284749635879899065519933018871060738992653750033795852411107347110500267215962786996192833274819980757813028318997240006468508388851523290363051899983013777616046259895114178501074260960693022865925127898542411231289844002596949025427989776472397702152160630155285841660104705731788968708481976491740983391305557538840476570000062356456261057375271161883565862558408443380781020241596715013825071898429488583014797499667587997226788475414356849264573229032031177349728412380243603625094468344263341378720064661089543685116093946964023962968141805145530256891975740889442283191470806987741159344700862281872702322076927684892881906375290847633606144159390791822483441068918567048838293952415482739740991681165673261906441481018724993030585978769273456398323187957700052588520237851504925428279046649957191383773471362735335603143023224842563703188410476309276920251091292549685684353511899534336017366409567096908187122949034797661119177838660827134659562451357563257742258387438094022581063370838380259771567500969115727406992930991492325235532748277296575034193107657769264738389213342088374494787737894682329352827957382371925752473410864424975795845340789712760383594129643638490078620872203063654085947152168835740172629913418793965928953790199242509441465441501935275558165463113005617288530078302393759614954341700574866467066992442810753813158636288417535722246778197628879728033419008677938665824073326393013881986642360646829843680329520916471176452243300367032247270789631197264113765238046914160377298851719957424552218388254651305393359322966279296712997620078830981249328283586386979538989333367351077119505490020474477285161776556311198429843111794288814304588734820378016118908854611311198026634010315436788324343923942472073651524936141827990568779821661200099242392894267891813069402565397215974092806758099501547442671704677186188998195880150784885384148098644961559311584387496981357554260025525309173842738810003427989902860455558392810055867118851945521846750316928396569771574109796134938161180430379312807132746467165466896432809766763760519509635870416576093534676697426940315311453926680971568376114609886467789513707556664520944096324894499545999426498190429433193955270174208904415954407810852850848588287990462442218463314213147086783986541837669140576108240913203193293919294436636592592832478840738723513098798635452345581352142211799081407480717367650172929869464804180767052984491772587383745047735633319420258030109871836338997388843214860922856230651907939604606174675767426312085367897339487782957905866749496738514754911070323480833087550910515539850622453290631968651425114006761667791673798548316134303898939061068148036957794157085894862385970614998060862448881182095344681484227007298862321494848660350970224896126224771852152850180530227591954689831158334547440883136734046538932838152586399768812238538410066856540729919904165094055758717148675996130531760755346938747549447293326392740594486590219710818690241550492471521962695903925203037582400643922632731463690114404823922821348104214623789179337846602658334936587314271322167713681150304242161757069214242847113011418649028657956911476562650878325464538338939454972657158642696937093453449294373715182401061040154145397298144544369049510063962873841139959721079923484139077793858129946766737405629028095536675328470887783137133500048917456483055056619233941407196228784931841718683135404368673368227133361561981875784395115446192484237056438296314136651347237728940449487109822576413657845660814728279936229921556234189217001567992344085913542874411048093654722740415327261469636266601742100558586609962213679106016903043923354924663634983102794910101172508299721862515486610333286048037578118225548224502496157169532553498540057879598741644283572642311832960664643228147576194607760144378456002455278756224709785731567273809604699748299427509302268896323462318337693144858232056656717351815553146744541226580963731775352576427555960545711064879589208175586052926306665956729120646847594488451087678137889321382641634981974391148668990402666329570016700057325038322272784593599212185481878467130417994673027838293905942452807173241528027798973333216942667710750735813800933862262682989052130832515752647950232116922667570402075589812236429563699062792582350123910860256366481280251877343456453350352440869629345264316378364170977161590495105032953828885280518135111553014930124399301033876785880861188229183745206565929053324368206901388891605337975935365988699887856596060900192222542124932844652090594700614011104892535747309378901383931232406828121129327559994405269689735278191017130552233464970132821326148191662407398581666903466658412131428238459204533271355106440660349551861642311746580656830660454500535121208032185949081845970354197259842479109383354818686424910708694155906903349131533791577086451064088983754776844616076603938036036531745086698990953350461597938696804792059288096291884884252421311922888340067108574776319436099136460905216976612207836165604060053610402873282663488143057224034846662472240188713545076725872211309207471700376642176903699886109709476593728375089532232601811105763360938487268955370604840071164451869185447811670393073489201060966634604158922846218936888457938800787055886814925909750772897294731062847940913194545910198003685586038545259574891235234226566423351999415182752382218309935897077909234934684877840623530531535971454343981098567783039833793711100937510155405043643327316035787834278374054370172786686931163393016940324342235577242137434586593729383606198848432477675638391459634448665340817345744166049377665100200201829498988198866443752539710515900550438241880317071166546079408736436305663981275970594894631156146194776860846786955603084376189781240786720953650403247051338891600419646928966937010092315934226042716021591990671068191141270551648122040150243086208674483349659944753802744229939028212058595344788749728941731374428333908228468765581684215976763635609336280694557173737435267062740806313142423287282947011302835147550243572428738873349576351759609588316128378078033661385968103322656481069179889856907148751556650002754821547857526875355525482493331737425683959983979525457444204651970989543809392176164393415962242658790002877960139358359362147437409067113455480108681251081998206667560779760982114770421059265919837763148412534735968318934489477871866222154217238307052404707430270925016803648908471659143304781959108317411761975765869531154186892331995695092791523970135270905193829908681833303274490599107684917436355498323068719490953504353741734800847857630167111692778588716913930669101727019709860971039577295695868435759535423157083694890577604028019998689851887458879055005156807472211133485287926123211079520400773899421956437644567906079010730383953578563337277195461140313951038595618529456996401902852309502003058279649804344323867424878750314742613265432610444263431067146640566034559347463907067332424187741162300707971068540915833250480085644825078589409648095780975991661037605551381789354799542788578107677222993958599663320500631911507441079134102644175772660557787904092848793632955353980443059435435359452750639958635654668737055385607267457034993098212616263075009313506418253093178037904990002256031703114109174525817698336737395443603571259979158772716861327549085392661707799898923098105567939017626718296636626721274248271817554545640759119762254522799766521960657237303732797057858092478339328622610492895043731910134255789419314904077456056958157179779092776285709794369471977220957211939216620308649853650892532715218016990234115768188299269498858619512324403432787728407396085540823099847009348131067085788125658399233091166082162460802963933025639072731176312398019796041789106049561381482728979622844062725576597449533897983832990845120065194605100830870671428000476199088687325619391828286161959476742371833354281832727255425906972217249927693441301268183301011873216024230000654573333102948772260854122549975299221151563352232171605532171991917408374525111712387487684108648018868313090212171655235592732625219476629328087183491090211433151361389946989890784903764707474881368076693120936409169019215846091184686245754580570996614040063474422180221620508769381746181142380167428714716760426436345088129255474980493463819199752639235421337017087431184319871074386214518906542918330989375553242846000224585885110671598586889974126870259005733739814339156815898060799048587429740576473466365612178013067067150338267825267429585596756231753283640625324262908823606809178283286041973897008127858256301506217963418295825552334505888000086745953830373334968109167125209234725882282929717342108575874956296247793168509436284363150516998283367078105207173580148492793211676946524026195148086313545842593429380399399078578213558865012589941153990411994106393315635920893941528380889128830558819908090516128783104361843780035300034722985984707296471197425881215205257556607070076462484111719727676343964869123648030790630152447064144728372720100803059069307755793426779589943513809648806696463061931483004791669295338347853766690886823926099924699347115274108446712645640982217516139197375824700611819832926611647005436800339750177233146485501056602641636820738111652715577159955458186846557818153964548846690737685580581658915680920957454617561752488188167850802904403692515232806297773740229930271912718336230245623948569348331778097172850095948302956497671031174916128372611836093684164375158216940936572556788155578513801664992576854461614481448191739231378582280021090002493156724794547587309991586890238833062843333206327428347398366822287283015108578251708363086538281382623878740833316535141680290894478920076721587982874186961664434988815848591579415224989909933015287880235216679350835253435435605983469148019707255405777274017421021246436962819591505680843538711284098273762251075623242304223169678324572066741382940690537940732491398431864199545019041979986876821502217119905306767426398414365883326829085237095545055108289406469368569899409990211264601717018877190546081185807652667760303253227001574762610341446596147781018583030662286308581149610043780725078503938462232943004527412207954290617793047424258726370968370093215739477814768398697583132877455440195317351902388132708719828601726301517332889758923121903153331692279867941280204014141523711304209318551482390029456795796224811285483043657187451989877200011907043948257892376751494276567850658517929710730564967482887529775404076439460629235665910239022707460675730497483821548495033804387103088159428095533114196793238917145217412352608918180235669744265614839925837379464630886687277218356540842620138217297782678217948569251453418982380330114287659714248703729765646482888250643361453284276762827510763150158557068609545240873703904001860378209288602728740744962293584733010908651732493437181097334858714066192529908629986300081016587423375029999522425758823630914469795608524564343122799517138437990794019500777218127266562311047301015139484846675930704873072051928340056399665854097101066112257152399311136876375078748397943435608274993584837017564802997701975535332966103440333794356428428206301483737677975336705348282813381060663226167099992637021547589096718211619863873935170583699692195902476190377102412357666003688047038624639938617973711121606706145204545453103588912759174917467761778830805302569058722202955909537096667539682557166832083093268167357607659844198229270304632772555809631536403689575664842344792763646431401146524119500684985631331969395048549821948091596101335218781664193794096885880790864947368292783771980022014019959306612645121328313797806637695616919406683829955323347863695658903955366292627051778260184414309116677838108637374959670416999389367006966419660645182517328007047152216800760321537540411912753054117583963904003719228291596201040354190749533497523014213686131588211538782864314741510606658287445013483668296928487001737978536465247118817617823458735643519964363743499081462129341143555678978490728043556406671432487577900326361865672993178232253899237454688480604205294026292546235114724561184050592600486709747121450549571544940748625918213755561725809926009406515688337598557458529953412259432244095558153741195176033430555830674485580894781263667889411944603930460012057118589137453104586830516765958976375042777780508495182443071965380329387936910818438039600537017579070303796548920618150576840247053309420206150571485812056487175041707946682426201900729352265988728570333416334828914222347816536506993477501298338696023134472034317156666216264408780339431787332741779369425382352243570255079162341250957817318560876334293918933306489678163715431217862108379975185993898282018967178014457354849504179617577176626233502449639956375036632413171676159357857050311951458819012288455805816850896090880593212137683925498033408809447860504847794363903077657178420133538098001664001123882413435317818572085168262226538093505264587308974265052128960504192793291859166499271175953961433905749578251134490590241684857930617512276055788064393179074557028023236489284474394640237367850931750560352645175630370316263995669614348156377425480218614052015980374531377448996688048656766687081085867238913383103168111966882435512847030797368182756934480329561871195862097996059726549575331973715713025524658096274144482217056012841309645232359335226882261442101775644249989088492789025561669254638089475259797050232974681154176688378570797819414746070812660775031498179571837617019816043492908579490309900943453687700088997222582963026269867898109601896824817102772598728085643709877378766925712593859597357789523742095480016224532173073775683980515280979474929958475740774184640093623754255591064417592329646493873192685198692449986862638840332505929306131952101111849126805414377162465409681596578288279473870556803740142902657478697052277098585291531208039361456555001662193245353134888981500902279305686965602162444070377353579600132133878954033081999034015338233541885772530728556223143103068888343163262259571997772871506968999339959499104289648543723354481293345341709333125504018686309441870847666143735680023843485787659158016593683939468593861141184195729946136687978964048664698246323404628230885745931126669224316628542256199109821433757613691906970984319998064372493214464663674192423060489514178838804143668569528032562700469209054439252253124706153765512038749736495758167625860244860079784472901848227871016416560745806047493710484479721532971610644052015063553405627907348036841038664130106160290433024544528210654567499553963266217850558049429569428538889757369018445470793143101026700166591982388433205195392982142366866099545392042707613940577575582727523491663056889044760778495059636152373176132768877810922258015645233566407025710093645024902504626268989875547968371816118382148248792212326616442130271571825784524480902069565431954644631119988285337676469990104519957948996792808604811468259085652513772333074816889410730472280014175635637593597104737829690415760168206496598777054639902912769777573514437908636327776105039817870440399241492013863946126487182687475151544746061017471170467588184610206715198588054254247984260050706939449090090016570240869599843993471033008391959020326253821595644243769316036565718948846680404297214852297691895370356133408609508649192570792239252179351312230562853428371454426827604187903168618266261711175096076394098577182038688746515178647197589846645165071296023722386469244734978857925411708654697132362200461280499862462732341016450186452793546554434261095851914955027812227017326210629826276743905375490464740854635645921142938811378048351645049595574255978095404450248391141444893054384755973568463736382812690829702107751448296212519986527198003551331311935660959890396726467863447332372863195883631307467294745774399956209603192660892782906838891301471072763000269604814429041080561739241955349700847335254009743834233271205738947926626054479452861592525531361240714237895974144598333575496225323475721570795408067661237194105076712040862810073558709280148643730122211207733491288189567697256613937092538715251553088397651368818144628409417659961776592243427416778370297436127227767645331542328073289488823421768080376794455748851491121276866202608026948438086871140499737864013027698557732970456143862780526790052586921942689358619239011334818704142417644058690960676683700197181682462391963374420147715263578702817840970061088489829597180565648429721704080057115500524533787089963448765818091812403209732572839620807606353116701156970778707224702183996090173776621303436006592906905291013714362217424717297677819624441453901669760926901286849305730790722959771344725381685415206637855676037463391100669673052259138196233513462340247208274741972787087209373034554480351204408549565972437501425249236544371475422741557137966023350193636099407865597151050341271876709692703666759412521215371206564751108123531994308182618013227878153997687615749131939654181859252534604580274516256698132049133403266107081191461082508627993725243113932148198908481127174844974952661179429791833733737197738012468664782406788017402617693681905392284001519600963939968243035345876781681025961009653199095720582365666658721160038353642436558528061862715010196628989158165126533370136389579419359640435933261136989733191928777218171836854600095743863889690043323907520063138973126160920306383451464673715470606470857304352743652367507017636250078026497107189609365447623893817932334978766582221771847441648988130914727806264419098662055535293627880491385799227093252159728913905162377021335654895428326259738043985036239378906600653592907243765810021157180965826916285580461351764482129307360654702668690756427149693685952279968073358186605270210167581700642557909111216970347731886606523844992536560245601998929249818639383042796797923080634140942425158543154945980992656541848719013084035078075064457328745877377174754444980287808337227852748091593298611655437230830298904965676506616695917615291382377365581676744471208905015349255183424165344349097387348318549579759356718743325934713415859818828625922729613567239456203414428741309492734196371950586984890191360995933482587882083233144252126908460897394322894289272985837503488880517631481126615428579803661497715335787065774019202384742795767682580452487908463564945127117255942801431699702668722298689684576126450451521370481981061140152835076272417942022610442848791970421295065448675464294713203123431651103038207367912743453994557747486050624805845292530259146038897457667786287459349039901531542294813019613248059684506993855613619320424963654557125720818005982251086486721789972327986590957982332379202597457209350039997014988290075756341037087351485041670813113245926954307665325164684138561335627702555228991246444194126100217677130584407380217722120359356064457868376330736836405402695977485026087983092635839377985382354569398455969514193579292564475060188517302859860850080840725473328085975100437229169059350385918663910913325896492335705092800737199430727731515897922781559145418965128005530786318193715438966325132250613869512889462834991652869938335322068754691998658049092795548270750340301842140415127109032329455333573625475459463179715536200276672418785256381862219900069412572365527760031411561520006016047676707811432862740283818552192064618922713087156975059678319844991870405347470940482830188308456301633708759591401189297579857772364392518110531261448599781502995450965319030170653131274377984005366534638879083335611101143584765435321880016949971564733882827619285453103609210191748214159983025581496802859460508293907763837977810169155475311721302499173539106000302887847728591783287630457858398988328603340732405554393695992609147169469129586408634132141166602159554750289809552868302749670881265167347248700123896064865537560305909442798659172206384285828304358452113254773047628908972436119336424657314660804921142871857144671390364160707845934005163484972202274400412305053612594391721155647879718697377825214333489526340545200615978321554727770442183353083869041410159471737337870974415801675196357224532615890694156687018151373265694676058058025011197033925280005465566557637880757267468415046694864070453083126254287018522678553001064728086709811206211062023728271633486825700415328055726264772740981082361391683325820078931006341070610563625769022874306854597575138010269926216366655549838750093114779330297736679285659594696989866484042596666853725430074674312160063963208028719336949607020293124382079472640877467609541713937036196131641045836518134893531047167525978551963218258741898862254364506527252953978311444552149661484624654343255524852393852180810808355430517422548382228595808138864878127244283321706959836753489958345949706217710383409624856673599510734771277603990821004746470156476132136346420385783781871786182413638396655343930282999353033007537697142658183829999131938708678505377197284318251206023345161217583810745968656983044877548247908098300593051025597011657943597752885734365464421812761045095899672071418046838088232313474185536230896229499833717827623103531616581617632014533189602869928226634391992456278424484358115782890477775289121997561333237246011939330166370847197999546940150950958429221267426829088131343276771306619043639435366020462725306725724082149872850092089614531250656471301891290592718279693007034885877400010720814765880875950573527487117399718520425357820219345311117804775752730741809214117560785923991684757515064592882040254694951396560255760404498962573713302985842244389483402969767241297874464651186551242173792213113544389635166004176458885048135621914789693109769254297039224248916094415514244817167771257804861374390426326104700189631502446426594291723295769883652445513428945991068044882934149636340836485228762751730080654230417577510733146083850187635574071953001031725478813367726227492007810058006601823833923717188963634752980038075286768714705313338248084092244118440797704725371932145511770908438212509660909702171296860502899357667623027254173700621808189446104164063988112878255289188564868385775250438625632225718679569185569525758518643608803391445865182530032190747611794517132306181799081133649064662610905078664134050831696595553728577733993464049815131718672774153182390448303041791158172949567902851211638843702228017097897829946516619372212671899200258974724710181176211200633477082602393982079512090302899347217154491411200691858668380224479395225240426364747877261171787091800839285438353096560539610352146404874745906933684614686440710367732587459524908876705031464389643179520603239564377428561705252476818916530762149015945086440622364881446971809923500303910828771239443889783229938114267626907067568253068259468919827098422149566404799365600011964607046136774157093155055456288580734122822529180109681171565526463735416487229435276365402637454759181095054746500260330004180954877802034142748462498954911899735378522273120805034812315790590153061627042853006270504212523927963257114144988241139905260522235161490590086821165198420187226220733225924512762697108181332671141717393113981059192705297166774171466635402661884938459131659159009833026624282844231764259018320481097530014647531302550928459547993281944467667821042914004812594763678691355814171418461254030990955368531633681382302951242363517188770984756005262843946292668255334173963723636941901560589658083555210913777377320509599838902814700841431988367959085249747815757388985451647009857667129391028715361603269346215910658210342949177009129857100283242826535005885048576552923403606136575243000711217013642301739339503677279641122681205378090182618445417419745691524834392728725369731657793848973767196302541533387262544617068316511947952072604997832885606888072204790542035401054137412841461173372973499380747970919085850734030605740349590818562807399990841237942047333625617530834209966352548666249356662614093877123432175024008693470890782725735082051946220989576425484603971272255766058572705066567342827382678476004701863419812459092441197139737874400960650625319235687497158914454563266921644256960138205422991148408597957308150014415758150783793322441548902530946029268728581084708023541597576178177211737305399905338830903237284682129365218863653501358926169130794523176556995792040522622608736653653203234288397490061024435600636865283432351862386367403037365235056359904524430147346973119155490299759483219995627507377442542764972241106883579024659620447664000736996186485467727277927443386686308832105985925701440527441335655313753184080252552601410290130230636679205692444967002041268027451638645926380585051836811904053772386877534955458157412971927834188561298735072886258241988787081111900915740466789702300653034082516622196268725372492838019913968372259426418959769481676647668358689357133903426881106481928028360805424210200196892665570526609589316158977734825788003583095924914563461482609679833219387752279320693786470687716878460140879563581601988488479479486875368362041282786405051812445373222108566044204677801230359699209782914669768435515484625513144218167632412089280559891985697724565073141112815594057674792011420943547468959958757992686740028730013939314370248550448217625614904400354151228981844080891218894658364490235973694065796054066496105300335394770893414719446185724726693631767398500785127056821741742063067436054432878914977806373825732495132826137202179535583032547626849439410126620521080425073641490377394014930398822069214104019818472087780978467481880239182427764632110451589425960529210412487868619503962482487390967757059993212248413052879691562472059407165121889148963846358184222759610581756039332230599050878962666361838936869641593724836067687651738634443098714537759837721335079506700459693257692181173003477597167935582119873350729360862935339975028845603895590224009922926303888684640098296253671132518268975827750330361901669851314186106321688099376814248696749371671203382383107586961068675870576561731838043402619410587219200128084319299596331957343837298405120627973734520909557886878493531484637283305852425419805081893677501001236148381620631297761439979882237418228697650266836587861555253586139028793618141710410268570660661847924195324569814090883728236148736239007835471160004763934007128043496405690141495067417080182101618792485780109836509056771773988185228726291867927823767314993349145184257881234596094291037161518333295844036769231621243325250319903370502373818408768826796145392785052677019897385062025162518548526228628764475014042229740687877139457362784521850838596428067881282910100337615182024984044001405765008285680604204731995818598165258892659186729120135206031848309109129581268878015086573820576119576242001877096916469110115236839113303689509658592627680790048200197580713955808430395596564747518877827629283115619675848109678020887343594876350205004827729595129929157439854997900099237891418326450157905478947764698374600915674313531835233027797164700135683329503820402458498334193381899003209159938044199055216960819880525233656519115928601740579023179185222854488580458476980536042216669549560840837701495903857641133097134117121429656775902855246763076637592380544101437185241299697892627556852658051513812639598700125253115111179865406491935886942938128770054081600168277209829083803012141979645144811741552446524456748120479335213977485897123641064258510895447845923805428938588493416785606283960990799399218470808036767624606589646308320762563841733008791761003904024679588274073762233422990599801916008224966150703377443518622343160748990368528167111629026875793220149580243682642385126491050153254002272098817219433712015573098927495548490865119690064282019581092042713837607061289725961549447402250294174094115998675936528478928182080496347208687101722862552218845216710389467789629356257495815360000108339970918236180271645662947220953282337735618887296563164137759198887794478628982863807038192615430006119276318538668329989462114872020038654429735774670134537969910584971613999113687087367929424605121773158013593135730887183010336561179837714987097548610918315714506027184999631364152921593446418815385807339659381437933549170189337254764525505246555207224368671204473687450724831564915138305206323751639212201540468847527573720367348365392350367505733234405175854871614305592166664875147871188038629474761632294851205388556566514838617899033872933720850688434356174814302101081442111841822776588868421510113594497034032962072196999139056388190546406549157902208437174181298459127740472484363353488456844217680028320884845749651620298769216722909798158067307069032989232650841876007928624635483680189009153866665971172141528190555582702800740567945600153988392622094266794496434360105692182095271304234684344155887145171870325017331910990941896083876180622853251885665262373494294564773771745479169595017805135464317975322649032941956622737161331836290453208686903068990728195231883942075355397978285886377316172217454128912554954340920529575406407084180666614660585524111919066198875501537982890380576144969267843726269279187197693492749323992061697398454230048200975366739700694212294366789131118646614317516412402756276116528671014255540464583216531586107354089073044771221515764589401069259430675982975192235681128227580828013862975568107044999626778073720630576496637747934655179985591484999142483007888814106701064063673803650364001584300000870006423485579849233165316923514021356778265390803229801082270104220274161001231114277149902162380792275236608545679897238724033182507527057179216728073687587080195349983703109506942804049256795469235993544351881242587231920720208349379482698177531907016854878968318229942598967085637346875149269347152973839516709244052657671244199761215174461731547656943931322168226587572690269927647748560156961913394699018710472049047982159510916399860910502286958553510259562404165115765533986591269931089315340421088560694623124265806423058904728513123941751624507931059389211579214974400306662409014337382829369457729955947232857853385942810213602135711409419641064640262592887015773257906978717354349140372866195179835027789604913167059647032796751377265570861623086815672040203635125891436906732794109800228917560149169918688003304066014976199356522729555500969069793422143877252735484044677697789693139690102742312175259635930437215953194424918390600734533362252798366116576723650255066547735377611214626599222365707236223045502483562173505633683748382572451824837261759969441045580600292143466795947180420959073217112357195788839411776880129768599128943482309645472396505251153207094125099845683064227052466027385620256536025460126171904638090485795020815107781382862839939672915548324828576908643643994747542042607755314316920049260878130730126832123053348633996044934312263559742870377154277732068701126782631349363635770226825276380047533101924963463485061035925520685264565215960352527443443857288048957782766505880973391297924413518036439029493370491023532770138598738057250165777675437133172329681406671743024947930556097329467512664764014889195839191465614495898803581378560250049609274077681804722997710546467443774299886212970452179312054895997562537234874193433416937744554857346232579184728178183226853189810957455328471813216393938907006692509594493487759747427389288301515571013191374494044967417524202129239378321834114257421255859678277877606117148114006283006306696078759942827665349270913732704049126090359214097150520973539044748572209695780310102348134754985852092971834045851127634619389227665501744464376056533240965336449775612064426616767459770758271734155618002306490975456108987814623422185193546540578080272347310477491429676389714665009544088117221369935097118076377211900839373363405051997065900437253010530418404237494190484341129926031072689727267930839347533188365427323586397633068414210103877546767694952331911137120058842948535788612845633098116120738259427393689122284621546057660761208327030277722049982021054536436938669316600335506708404850333888113215150962463333694184596201319354786535788863763248913139750618622997967199119471823606199436755980249691223383543605297057901901679012498023885683064262385544839992597328192859692718239939989863433160653435474129014816326953025190949513992056704151361763981452755997957303389982984325164954449907070248657741213233731565903255120802749203672753722940982882864445851137482557860470057901113792951248508195898397816402961144659476787313614308858045185350902204698709550372541158194192188517747803587204330578482552649066008675511981256188051414465956352850334525393677523527803530634289631590017448728644956146918296612680474764860295257700519267196746736722103732631883528645110925616588767991651481651669438520938095847317301511350135257608201768741730704001535704821241336410547337120945939582371703523923852216056206465187809442842521657033948436598165452919238465390983027868483830516901731684484442096819760807384581380972351544067192690903900195634935708055784879421736963580182230839443767449115426650538709786862006605298706672041434980238536122550300706285073794603955569413610342083982244078772065035910261512636431222168364225466878590868628275830638451708510095186209379294581857062700559868887469471610889955841472951659668211158930082237904702542760166641573488071515679374741785727810386228555765849055076685224331508428765151099442377821516177532595590542415137300398722210254331121029377661619261988071721508015438439404266530860474262336398038094524199165581003074196728501191562368327269598343495426760366146163469602938429594498858137586563791901360261754400890912230126473912142998647424291078726464027175614132378822364758972252316558483378963262398800791586298263338769141097135919911463500935590106745313742621597684274801873697079241078738918632033701730282529519041076503566598424095399277060871470321260321834646144078627090030843710977547763292959313051176979411833629922491988661337198511782345746561511653693366981703281447093521666580566139703750999531401798388941271110879408585064897285096192775840831115194133412179576596819262390474536116617045947911527840899146732891485253462111662071610392966443985374135480607126429562071169439770450424370954857502983082189640697285000146329888351066856854184230455653107041833826942871474129273953068264615706754038044599534191111216428394585045230886124354730742068038232325604827023352405577181789458770215620350001137622429847353372344442683675327679978003472814268491339016426525340500153276140699799804708916447403337709750666743074685964814672068596175962687371653206363555669291903520959554643702255334322677494942556895348335812241916959457737779187573669710575871929811054946899691585709473102925087918987249226351126738750041456998663795411293101180289925218276232924947264473246335699453622033809745709487087850429040793920748481535078310716799490820358037733498075014009931901006779694654290031028324925641547387949149316797125971932036958329105925717491313105594993383233689982861567895606546667120627766005590511908229516668166775496492712091699719632776219127427647988477302204876377486294613004635974220272889976153796744948012766089122175539436605176666380135595000853604169864564522237918682631630931502607742750348030391304007898611136700543993450446090538418592028703472167033645692427135156956381877909889601134410934277459584594433993989869647092230102287809394455140946984158662434455378488296763760391804059665748542908731342889467604728930540398965203455579859048945729128790558952215567907492580247546143533171811869260316794444434975183749843466402570094179998766933381597720037363819737160741419389449097757450374650676285048830768107913340628786067673825934467528664467534686792620969469789106712986253768953636074151833404060795840082346566136972756262068219809432745705436910612666040395592973287515578492225113298568138878098082971110694861071328209496658253872323846486851770282959820862242220994387252257022783978615343937682955154986746867961728146330328058552924712454353533956440408894170906788739280889663863620744469844626176922002471003261991256741316782189206613867107360605877490448115004396734230980713167247923250200458137474181260510286780736687332284738410272644163208303538484524063034341556449154082199890894868564293908151171241720392635096416828239615071653038880588354148955128361156501656128892989405510584617435061901825638956887394104719172375997137819487274314855068873336253061882253936351504805484859717891802685802561277027989238546029574792378353139803860417898215701849213996759202294485170803130030957212045913195300200355418100889379054902085034615164653223008694459352598427000076679614536417268562678063818499345417656766774873512168394409580076344627962838113243093832734331780784995330573393248230211899598036213457635151504180546032190999129768457286943284072507192338135508011024843727111414815025728751853786378003074409233276425694038184983866741309942850069452612846610304448781724625796547346792630288871605631266215312373712258888955371669963967929801992671698799653555323598744110937884404408515702871844020300234315102310256726971149695043744601768560873660026046664438473009004273068870515256792696261516024540346400731283095171716016180402901017606508897113283766622912345242388393867285899135062250287435688798179398487417001822006847342174231229613970037924582489118578467656001359855459141836614279629856040420807956626118369360292961600007096773484336300052232501643648439414915548888893212092095279844483084258778369652197268829736387861571510214015767256330630561996668663389829993825379569775082481490196269423696471666356542462208754326891358260777017410990168001004880817747508909403852663378239080486874325814609941217447757259470852205790232995854396531877922214519661696058796959417949371302102328233463887473634877108357747768982585385383944904872626601794296235310917054086434472909850129046233431416055343000970400371365906030131004168605721838009753274824529672441017906396808524896067476563955229299494463629106735398985792627682793948578219904192828482247616205119508182637375758808380529963659698587745571749718702346275499171467038520105504362188965765727448442204500073589023286684357898837438666955231467398118673522225472820425908070812008180930136256104466536839639250562301828146698657857016909894092623612838755884745134867110446127256796830730282348840129597436353919374509992767174400567521121030616038848121815148861659153348396457967301582262601466839152643252154251041395420486764838062801564994116181600807181513471387318258693041441942717674028979850460202881364183484370016429439089729532601650235663585526591589837311210588266373814443592151838738070437495345954385691769726348241979595253017036619867388822870630405883604044653869039060299614271859485657839420651956004477150348762799355818405762815636004573454658318443018526032698446994140997878853802035583152606447086016782120087778029786028608155948680245694912469782335210820561650023720429373141595358880351029326899608915720321112475119545197854444301196307989383303895033518757914421602758095742101124258000437664195603796214879874873645188526055782724609738541728117742185277958347374705789847857862030013877558900238669548824353285893886741120224615860985955597733200337346869892988023851299266187591482727880681740561509660910702393943253325204820205262639457924000324194638388753046598753750923659655668884191745239529970167675092237301595412097290760427028053149297164518214259175312331704507573372013389454770903782460233720912650615421204786303338958524459285582912695827544051378544816359650187072316312860834560994761900298265481674559165690063436471475859966031980553716343474634644011371954453153358882193329575311803667431182279893124261633757276587794304326713253961657453891757530637187571705924052930658394958446021171115016214624076854629788332394015133170279667563752168921457720455308044378918888011625750838225928636437790232156115376462836451761087738463354630226414729233921279253824238949498016628457186136751358887211284862247005774132523717574998716054169736234637800576774322339309534396957082222100612920033100162963950295525532162218114119264204344701618004957722550760915331317975863964728771716272466951726035003925757201986089107611771816962751530045656657705112336641722186194803893850127949581761843778097222492170559490960726560557840903786495909486877815650663856370024134780382707578131845535511496819223984552422963040203298543311516194277479377883759163866292273966828577140286446883381994309959897300420464663090780409330310939507881337601676570965362836731830452113443993580449181046226796923604341961023238687165562514047079982926093017921590133976415721945016538827351888953637636037436981150710829199053866895649147634108902981169274259851953370087498536611906801412675053621614471233141055760162317263400980453963251821819490605069341437174172979565530163163133598653407288816430801645296546248046404755719572531553816714782959223998950195816971799353769983696138902016497999683482707114995928777496477968844013932712668949580995493786881352548084257167721489962186842989691026280897824395222909532845678125706475995140129862047678494396888143965214519735084099334238204273531670041572849591909128997625345991175492731960790488965514031518430467449969307804992866087058843573106396242815059878227356801451039714144138433704495477631643307636798233223443072368634128841904842592374933155742570239271157599736341642670068169388285621819022834594268103843536227803316152133799181191482356601077598878006870180095747067838466764721627299071801835248740980300000457668721186488658060780694293273512854754799365735827959674473449988626665383555472138316743954210383885843037752984481511577513351889607938336636422748587302191461574669222258964004234932931291535583760444625147602452765424793651432784271703582752925521928627854353902973252282632059097163346081042756463927636562381086797846569249118066643487824633724689902565455875636660339554027303797444650745411091613631124431230261060147865638829152024235997965945598561541433354014640346507581670502959373708202416038769384624601555992423218538035221012259688924739056699328176042993807088183424462218264085262683872770704121387180107099938004118732195403078562950995102942049220639188036861335454789263424935513753252614530005738690904069583066181434512025844609268570537856235680519411508318265754267927477721873279848425223491151145597667698339742799634358371440468426711242004068479220731988575028775134447607060859568979224362727709297972029322276823971897826206988229927100123927698180386576415146211344986727245685041682113844625182284528963106088538609354202112223143904954577875962277856258661614294515747891577450470829623365017263118984717148453313026050959628788158964555485150735886290268836425346550508415936955306060727754517139402191326894976342183120538031288505213922246609352924217774477119575029934244527350076309225572991656970386138564263323174637455276840212713852401017449879657259349665111727028701131282839494083475069481779584689817741233484317518909455974591612051227027172191143728116500141931851812117923776869845610601104376273386042094144264255774392272370676221558614511005201947203420524183432779958140132840134308009775384670120327005179463729622280716271941980358302953349931239773013572732130427532352739353271820086663998289946991334968628853777911063323966977780028128094630100689225267340879623748405341346644568458299528843983300370572652324835107993718933687293395145977588639661214539210115978955344249979675856972463266999262558108613736095643567551304018425032134873060379854550325667606856501848086520271032210297569890105736564586602209512230069988650277107612716645268375604430087507571021180368991913282181643781692437586166485046313361715304612789650747057398634602148483777752855637668420965480374129222995431156950006295884923539111912571086044904150053278163073274335888852476975469808100746566790880663466448320086606161174861467525761312562236006264284824693970772977147101218101882434607851420766389386894361513319516318813958574595407100485448029784567180972919190145408809743408936407212255118523663909428097539248238701549940917798005511792273224217359641033380489773461050678049996928371579003609829831194752272187998614083503840937903121184109354064475069405270172806739260950863679640444963288249531417432352874893409072276568750201281936800593861258627854737688903176539431901602754057724612732834352392122151150342974089475958629050842512226572422266882521533520216332515919702660876123613790164441953534405543150785962356538048054189772061460976151568672289881002493271350942302852562166036160483821023718093197153933378547651074903757722912811693796881255185125591853634790857223356361652609310446498243762873104032227973868720806545617930740061554899608888214934179533481782544736538734437767148448254049097715005693882748252325292431216093254561327331698342677362261681374250785005753555515920832271281410572066022273599506323973331926283092711085351931585778313742996229069282855441079357598650031815900560794291614765713305040397436975420287203681965953601254805430412092621041088307919237974920745575608341926652615454727106725291990289286604911110852357833811257663284849103043117895998123555905315234559206951493053325400118598328361716754380446184293840857556304347930981753904006639148531366433713765631331112455523269645383009382509285919774166595059035456267322752237994435412603402775114670443217042195263701256238483113157871145475922245669990626526728390399535970540538710134653224160100454947475007587200590551560935696901223734324453746685518397350960711676507178794843828072050503138735734463796619063419720022513374909171329097090462885819329524624609670328512156253070620601922740891822840312908707735577957160559528695479795247732996178610382407328171685924621156111749392807198653248352247712482150003315563884095829060570261205270591234219476515065236443814648046637192661378679445859376819790156768993671223745197146186204698960902074088158358442827046221922454513406954127885294245346757898480663571712571846925467934088545917082473432773884858688484431216129743203328686158499032267913836438240155136756465646341352830779140067277458673467012136287917361752551453446722526202919037671093727948253951511443199413628381605179818817283043005609376407783387446150805934587749736187091569448894213781333036851185309838253779417345634521425478275320514741765317495283844097522336724390882231716301622187390076607591231147775409451086957938841762275263412893598972331450818870698798767764723177714023907244935924897647111243889848152272149880177292711726401886682487766022628428167705642868032294224065751980261476612756083636598511426331120354495047735162102915597554705826790744080893460557825653567445288258667576237480793099359455704257809368297562634214167713061235149683611604189082662985553105723903800348779462370917981244080994001462045535309625233286554899850257822044770181834811505374895475992047528938468279372266860970515794216505050151764256105203505705252253862046964251711542538635218675626422183675921204382493232186454611999749049247332085735755456724643032491787262575999671420860664595556270090964098500854061121268081440756175323806400120087228774045544032666599867708077318866430970806376443513862551138899392358875605751719177156084576068617044384723271383238173523397865812347187580915047728143702697126340613162199243300778478348319614522901110632817096439294948567805039711833050528330636778633391764731676189190935899569411473810824657996141803743499143719152855374789838730562686337709440856082772344786336445062277461892506070540214522913478881329606581436491709301551329435228734758956638461224066927988822329879114656980617211357903884307872060835897583408353139016464045671225216318248302341786432819594299551583130702739502216742366228865768558840920733464209835630393232762479466711333703928441414697388781552963407794684417629950656873477622178898545173999876576454838464170611245014766311358401465867140737151050215794300177509594220621110621937861053961496159945900833654830519000280381000060697606412673031085306890686535672709127702088893588188191499335903383028803839670129959082688945796482037034345454634149598610500723219212069408552827391332137077386091302510047306349431881138348228156202955799984405708450712398504909936606241758259795791854353655270132313002658482901525384564226317501778648290194121934059260139064144002561295515161798043202281791777340346685257800919061732900069567877412966729669261285707157460225667684624053537553313260113521241854514356113272727419580189832003600402317755691524875598956753882577338846340654486737767716081543785506513803823902088150316440526697151921904385923704145131197612157391576195575446851586484076891813200770315311804189370832605893410046967659153185702212049430744264154584655512772823715541567715378253948511459422457908547545310849057310904380354888152000457086455887166002363247636427488214735079255589053720651330349482507845399648103675306992057041382404983111135029910704557258948067452531429518603906301742308443469005658301692900510717064721776911446263510920301901916695064811738816963182246119751873934835619223560428784208215639366394438310823024861701714661111503694607876152754803882646991246641001098376461167314786558318018355677688054882320724089108583946385041309254307858129163939458668710506944993569693947076771376758115220745251970247697674494579743946426236627243509348379502353618940488067446680953507110460862524070501010298576093623511274141369000478002578157634109557361651616925286274480431759106838562394082586525344809239054454657100575332762955066390930183494209093093933927733852167394880733518127342313016072068118609490314033062970434863870482004009157277893796345698898054445888143521607576422139993933346138167830762062220312286589789796806961986001675563290394935717210023786297792028972072909251494770295586676731502644250413819854677853116517554160635654878441022150200068204096765087554022742866832411392381014948177356125426040979492933575772599665282628211610523593985492982595876059996586744414998246801716623351311875089127202907308537172293206724039409732644875489992196907169249843253287341877786032808566944536677036941654872482242073763822499016707237808917881498364589921175474065536089559863299025875898698547327591861020419110866981120403049599988347841092469722564615542987486849363946398751948931969088597038025788432040168639195339343372080240386307360854126366041581222639840445931462442659751659124354105502597771633466312948234012574661572440127699429452158693090315523805582951971201819659664762264679890575422110435530081569635215209074465821850519419403809358781042317972688120973121052126546970245361917315180699755479806314630516406687673035820908578439972704394721686634788769197966070258752335599017317803726237093808183269169205563631544570621739160684279127252278177677105994114639160636830944656262054616458966966902516695821591490871632722393362936555960028188513104343188384564450580687332915498515930852505414601083794317753064276589944463800938789244800942233199792380972754278810228653334952940380328475082154131206126251920681796950724930363801263219619537080917759256806627059823646896704992953264657934336634701332224010774038899884015303678346832222173617198145934970138597278391912900111182796407373876123863893499203565031664588801315871412495051819682302839237520258258588091256613571083903275323633846543636514338128240404938438142311663433587821275191328831506852185519246666058556523899046891530832045428504793734858740576200456951062446335625908827578132742800836576657536454495611018006399021887868284860606957641541205629229846219057389391252564914259579307834095348657230815069943580467163926581511552868898810165030633843323025806269337892753854474708615126375675855860868484677621952429635390874504855088636979978551349300496001769611924124677964005137173673895537776270710910274472367909698010818769153559193273214714307188042058793666777054632228473732385363758593123646480601520114523924897934776284229648436684766518204816928645290704803778455238629097515590723182028384357093292644454332501722962786029296729377501045145076998565291997645845093513654095543601384286063814972065732880661330811039966078330897776870422518354284115970408103886006906822242862158469107393669002556086889197681655383496026286570998381974257667979021869610684921758020944677241318786483887224948365550183799282115937863487019040864933872172132926046294770918652248028280614499135001517172965270360259860804088254208319981322962925610296444640867126252934993137653019869925520645110946557798315121589830907152770916983815200392220502593867581170474738539197583778123952073985138886046123601512592797610275034142565152577556304572258093168162662382149316300976351860486204246690701406162337158307339488237696714173644344847141981581336222220918292162919420514719866708198790646077761022206209540458275628410128559046269722013423848343413505024543366274089101080311911399594638598446355265640885268909324473969190879121936935814210929842944382927914833858981773762521135392084739079068410034566598789383199509219533232319456757484983477320147135642289582614877840278137910253233350991979495905509411096975372101397240466505798685038077973744271108608061852795020863253250192139926289710654781324945425537590818063343930199773001955599593424747556961316844511393745213350274401712162796137589761611015820125427674216484633017099760153182024524876696282119619369133683120005102665933714441748598874763936871595165750352275299219168975192382160197245786830375935668498082531650532156832624496356396300176869273467741223871083257941173045595404459444375200413312378027133452557331581528224097628734897938598373688727201491717233847762923606889208908911990711065245292881702480218601495073885901433340376891382414073667937459273322836766216398971103298420919532759543679971323168131880950902316593015546211994029971592319868406981544394017983212054103117183313570471078549241802834180881794034299423933021849466696928003330310096479108525942523396112755816646990944682116501277093014621511996595291831537700967434830780583510880994680722281873994848823212787355416170886097712521648631942517226217470540788841784515512225271713093480434847141760297507137331997425346168740538229894603346421980127230745948096202936133017383892965218742920167353300427957539999598754929257602778350929423919720596742617570635359492290767989833495677103320245888618388275118815395626833814520735086430103877595456351826942822998135168650829904569283345663806932315890830741021658701499684819839052374755031752320911944587518257396314462868709126422439823319978308726293888654145325864617109216472599951218250700566231754180911673493780367377286656556941407559927410762272494006003656246475432018152223730435570825120810318497375044766771241304995696977693401390125612315384876489351754931061237692468601281489939557610913443337805274826557259450303350576845020702107714216553383255239071887518313150356887020931176428211596074942995906557171977263883791571700175453454857210055422522025110212770487482233344566880096155196242955409083696376123223465913444246616412666566385717538917015632914630689001398288254707287050974874295102010756279588082327069573551580678275758263596047555887227188342763082541988342939778226824669826695223566345300533876139595911503729655017350516801151034912337361123499911962750363921721241925412704743417812559683932589151450381323390558822873959158529002819086525775331636451403459732257098463316180941966487536959842906828488277908713583139522819356706421460598761377831472767051933253736989155098409811852280083295053651221912097385666719080213690315608976460897175151485542285256998378550833879426969308491306370138929226558416796068625856914284517732367662297788804307862690365008549484929096390433729492286580738154483414087715382228339965631295997840856842242032059957969960787216288988974767208350607396720563680758593928386868971762392897469678404267226478398918446904177246881011466652933825836911181844992376208100449868577585613203317361386535944982278123989543569841633960887852529565726160996042179330976112195643374943079280021831584687012895741009742694840859381887871382751725856189583403981410364013024306443078944599684950476771175723718950753172430098897129568127807558287036067407681274767489846673908240683467054953713054240338492671862119552028377586702727684200368567665081285528802609374508231337026305449100268081949345402733734577279708158230803774574146645521166667220114574867979895452968711164455316231335248475889311336408965469469367512520801037982269716247433361708987475127578580162760738336611478442170457719037457858590638975505867149013609183187080990136445127021194977603601921630573175449559284655426252300026002664992002794454111549951941149888832567736448268820246197619261989948129960161369976344466019515546914153072046610065370663982854261076549753503631776064670075445610487024739214204402998681912175154070567322624081966749732617186083651781882585379574614524450163429441921718242647234591979995691956183387544901083657249216105062655454553234933972631764755554197114965296128050116210925074060354622360180723889511817821904972756832351324670566296273575175347441561157049860648187072353999951451004875288789613026861779376348103952946889537630597299961139877287498044235911938214721397057919657768019291984577384129294863416306890221705089534583500473225086636125265684846574347560190477539085642243166724498764381024464428837129969095394718453467350388734080335621170285811056090364386086287294759602249457677638812322547897592426526142897626437110190892268314988929698099453546232394427286753557180571334323653643324452739352316359261482425941831366826054752066783410494785878613638706432233809995479673623916232506535719839657536553348328494479508439730819308667103924513177126018115292432658861804480046897892305731633192912186934419420405330113168944937990234681913397472026030777751265854167275853163827873606679881223124921723500921044116598253335219499087417421559290248021780696817201420544411848162301808591788005314241581077296619360107358082300446763233302672613764778662769103606272934894570364603452825519832795584561425082674220228713861817302135814741144877840347675532032057969445211726406191535024953792612422548268515713478041173814819958488399108967746833212501865231247765421350338738031610727587199947889310102472136968759670593665729192027195590856888254004516645813074165240075041738796510354221736327136535820365970269929031035205192010745899551946591495047478235995573250336736833295884112336119536657574498186897484676705662630584558339290384472762168329913766551767280079683143187593627745007512547255996026956575812346628168843373066669910389644723628518013524891226853589958131152715573504382749935818767964024939808382601969261958301672873828380474788195972619237911952551519988974622778296049502021616455885002185524223890456189204843539703964431052514136959478115769934707305795047140625258966687777079100334093656812954155475654699278734149462618623256436070200145791137112573670005068260003318456921928533304446780836689926289959805127101576329249255801959222356363629554557332333491450662224423576465958129156151754201060628917486365986869633230068001939468649619332105285256990284157299836126432800783581866992574078503439907238368318394538100782697920119633010863324172757141652857023850862179324084277833843614173179917967265561847857646883985807818490118050698471460572927210501964469951806826981619524323961934950520506609435924674798865574807405042883734730747925654406161022149065175804866295750406022538920797212288570918120292328179188164200232846358393285233179213668365516879901723658023433681930608042828163942183883911258191969205008980083128745528976377919633956151349317361808925585011452789846635851315771749080099351007411979524804674964911542212490397355717439432029008207584251185263702599010000110679850562256107891855737439784170110966741044618868643898487761326152070753900656589123409080264715886189845918405118592506452725261256502999255898963465082764190343971016492803345379515651379119671310127763315959675577671508347934103314166800762330458801018474153336353736568271571420717142861907230519171954277342981109910081956239020967866406772673962615705085566403222248538442560474285639243918945799863253404275917084873732784373256260092751638342266867180589805929411533671380188086745307366790842542515453489952704081819853131242501340234479252733533842722529539808470189041218661797423510808491383238709324166447053382480332633298352661562762115123220954369616620815700152255886211887952493068426648926951980245868863045945220446286522802955967077645676381740703377820773694858024646735305532267148195763387423761530670024514265767490126661438674440428554866790917810844770430869746794857853021118253323734504272042197021061497925513769002629551438096899974342305889952206171152615726542214971159477186472714623156349640162294626034346711937757611219753216093373991967373873457805374800529617083302049752494763243772105857839736508399357368538340054477662625571976974911407383455064268691759174718107889720656314914192461435657288716726350328800719169169399399187339401644660618952125169441491626168211970333654258448946380417557368731488576709278336246824855226456445628800092544790674208853596816426090293857087618139272372201992452788459824480541677272795936654419426969655600293613431117881658080837709898178742369013249916457338306042952508652742180662762894537523199042160746712926072435181557580428400327852339249962530865792138415183545503445671557845894975775379802932337725106555008585950080213881534424578165164934152442318311061261848838266163624674665931199502978674297770063988492856416059149050785707834668130475505896959663760567842887056376120992411370484626996624730720513458826216467956942224048774163620958268863003753876684455320823528977683093774810713280272475949837623996759058284066686879064099143418481485751406335381154387787543345019267560776799658217585988703000702387224584782469020156311410319797688507353453966859486683682086366262552354827158084523345099776564731690773519902259989208115157348657013112488507018872798285929265319993945125180234034303744130400461197042510030937282008057615339896107567463429523259127415451102137498113020077867470320778464587160967181118177178706406020603464101304261649516506992220553338693000028692327978459107348082425449406164365484476748312745994904072028819488394888773536649229974171462228424809632577697178234337705031841558301936453547904260740873658925636333639938438375719854858581617734753935786748013304836070684102279450860581395340647049209939569901195178662186132346220911819988178494154640213710747212191608440623293279364166479258165740249620286235814061258948968332003369395334912888031039102626424880937428460325824311038127302193081240735984317542399435135408030631606487571132008576093680390159446065788508884971997457029727001978962409978865555963298501175196714736591670346128616239732358539899673643447472228271927357871680390700100859900262808287481388684833813377603274383393262349720158490494355855284308032589762986312729720236880135114716398748060902592300058599809212006966200106755752271042834347469140979206417532453489886089382263084553640659978607322117405803703154714993875189490348867053280670946022047687076488441305766367372114351930729818233242248813272243574611644905256716353275442955287210534154331208632915854284009478663556528767033671871954636029079350808832241105964118419123539165718669287748114313020260408324198599797704256432520703464623303808576360217851292653731115776634084502038942643877789829209911198826419481426891874581107109025558095509356518345662219534341711782987707002473294652733503220093690215540770741958877562836297571000324069089513970346054084686924142496579428782325897108116388013945874868142024396849989801756310628951814322983682873881772551821291493881036111517931083867583322164153470324728241937289021133019732284279825374271040931808232904358960133762765335757911951294649549990546031190011292916892108364193201116049059153930419936204781314172794263282178900939745105535410013760762269864505920354705602517562500834690832811785973404699241892544925058933330423796298670290191156100447099689176866258210485348111137871042539330022300172832985008223631625866383733502272165850282638459314030923596855532043376177251686138438057796335044883525494937311128838286920219101454923858292297495974877278440051585964927276572872994126875787776049320821201302058801345599226183210674103329956051230741431042172272634267705094417078966092271563876689126505667725112339401670967914305748228140691579998159838845872286336090090390144584983602263491473528869765513789453056335347842102967406793117596334083217019681123712005892256200596581737986687213430748486983459313678215119136258452336221647502347699631448089664613301616586689200102524237450318256187581335028592060870818477699708190871772373340914423531914895077935702290410402172587917352684100299055221127436485335195467072249683520617680107025589686291219624369348030129276725603835878153681819111991028377119825578978688554667696021787057198721942580623637800356865310465952969631946631807426236931341715463541682079871798013029302716945918975874281681676921221088026665377734719542950408797665128379784799920294622987261341428662581121346130568506375682304967645387066482956308837150103778880470923079416751720654929832689046774911723982760953069556402950672297528652469205342050378434219284830658389565769656765147146316431184776683997079355458317457442439058803745082525623809772595581726098518776123555174437271659267292526531713673707754896445322699627056088705969940431345494442038808155131812716884956104592429907106366357578165189640024175811809773752733303899897550741198670820305865857653172927149836358244689307797976433270916863622772834648877564105992371901219162202697205884651247883632150236900890974797781031115681710912132465087804817353235299135378378806277712308859698428974843148996401940741648843011859701956432013379387271474902227046069551446566473330802138750998266419792930458061754415688791492883125387937288514902985246941801787513347594810599984232929492482457820815694463391439819918374406583968760451646377251757314487094828053253335559492286126871533267668939506758283738611111855566006171267060316840823801548952611551706240855489295295867762342228308296506010468332382818321395417149184838588065551929304206628490842981874922695075703949120672274283820504004367077733519300802025399821432622466341974515175092865740805401647366787468400363389108164534225324402423887185648752653229420971214524669398758561079618586166084463037391347944521686740462887339326327727826259665245936829906899823833156221614986610681862517512453616990728124006486206756270063395498851162888571807964900080594677053936370982232978105929795129080497075311196859064679079247383658579385097252030149472283740799981451418214087405398891818933898078085365915621663271782341105477613266092264915907930967196451458214866186741644846509805715079636452177587750424349011626121945959571131331785570553624147548699196742561155062901110882925164611965459552014466019995069896248056845907823176774809800270865800000130360162942406871431755876140463328249994959804589794405854065344920924513944951115225742631363049394237523686275028286038506096759003375164607392236354461055096011623190117027429645984029509424508879316946169124598770532216571754272173611481418155167495859046611940602767264832816346844735420260996656646589982807311900948493124702203124547796656139878156069261544402751438300953099894086013565565510966403318700704920410589854235892165160254500176303308734222452325137603571420050247375654889102585664117321028864145762774448838656254986085049572832263523746967361936833832015847703911542523095977088052352228330741231461344133144301042898704410441628899275896300783110167643737763250752248538180087771399827446171781829797269058313155226596330722231172355702997493368178474578749228840221732818992214830713085705534677112798091914405233508203519791685567923120206551564914979296768443053577952428327606995373797402694051028041668249866261943919157325980204023952496286117497387095407756973530116489645963492487387386562959765677608752298395358157329981400814885686747891565480100273250461392298397202533057940569802355683719113980113004005871100055032139208813931699510904116761705810751497967601724457088959061532114851763154575316961446915017218343360686710730204571651820016068884680837996832338982921969238384712297703678749890162102062143825214454746562990760594639614794336486266960861200940332469005773940080009651023787377231437628681363706316225853811964973611991226977986120087808713668106468357799299699499557695225425452557013212023068264221904483307387356003872691368552252241351475354207251410333440225312741437247501905288147133397613179883951057299691952581701662439333527311613917662666013118572262149499158819623129912023835818493117502632662669596817388919913615597800480678865748830319855731721978183267314323914718338448137512833796321351863950885780992669510790436704006074579307262121214439768106637947912304226025141775864280752355954595914355629805708313522280106913269353432410460849620096897586026346467995584838217120210572821442782073578000683911821331217521832230345824942756740020207851768219876590893886077489153361121104517604368487207096359264078665405987934344996988546643754322257504043327799647339625184406872506962903552807930196183811578144677969484454892019319708844122927472727870866561879068124710975337279201562194801578925896805486692571140189288250132086668488187785963514677224690920206537929351666440997428097284304503300533939235321161205333395008932041918555780024092799448625393171964936545368043482704384248607215027408106461056436819832321213137581254886449549553340889162882902145883620371798690593207518917627535729098608421029671752648951184747213246136156974183974441642930333419348699865159937434278947355458618427785718786453024704222544653769291966942197140784016965473695145868491334678321341564638020287722429409219903949603824969639066612994102430155214015662253839441726567821040517574683798318039083843233977360307317735290481238943498143980451725393337793527786485859545198918096767875235172750993866709330734992511919150468058369548246376116574802854226625943368169401602180369786372861590826329793761395493355043205364452377916000703556535072815061099565132222284067623429756620671035859686319565006803322384190095171279953772136346804533042952381186842606568256177834142981721753731088335642316005588568949507427452172442412375694022766221293889642196100310658678367686217917206462507043866746278368128758618935250410782545121723376990891730949966245666793622319945910796615492527895650307887794205075294507484011077318036977171288994640803753603465929458105151910717116029098595253021475984178025580249334302615852463667544626976760593300172666510829893248151406879056246392973794977608520889065669486832898752691933596108529512200634504994823335005009510995542671794763806975208860019251924096563871511056161572060538693337952354866705317107089836940869998713836443512996752116021368185171233289540490363989692490999478812557542401935331204443843778170958401897275873948427134351150190083235640602282475504821452077722013753261529762823505053388143088822883576760310205527586819118901948376756356752478549992274793077705486084119841958252462731066477369954054474838337463654302361192509132372672704475843843369889250475229888895096828599403304368421106904908130362312590150027773209449394178399014775451376555755054209909287929899607979729825411357981214738652146413197751351230786470205564987854460539070533704063819474000707708794531911677565171880009892962367973571871681288095793429646881143065786848760116232071689832562516051141829940379242456391880856456397318253958171912027551384173784175019206297613824955031767524609110744059303661577640025281804323401686885565707642217291168924865458787896690403785172024379625808630674580184059013754479668548472448109362411595224864274148210196979615176181242219903446124431684106709070913029418599846122534264958099860351765176439362965591100605590630962254428164247819023246303320040160668726418779171585834493271961143106498196174259196584240121056683445881801738286822952191911158021182390138633226059828011471527806423007560990132402324370683122559383885297549297199652816254915288202983418931574631698727217245549805815620699600475579704727344484635788910036189852595536951745246326905522066865955909626564696887895408234404630965517685873068403906535932007364614986800144168151389529442315416008506047625743984396700251396126702932886337372184090312096274987546808346460891738596960653944626120684580179246267577965683071669497751120825651654046864831760002032563806946902474345917928351916245807484705391913303785269066941579325921606560362757205197993802139288626281956766078078905545448914610265979772286187990906587547908372554379610997881545476970091666574358729485091217575552781265393322224583787585704551690941502970257311334695620216181280041081584021147908139360385414721279846240311315939937487716838006157665872955151482658440905271447006845044571145012029710619374000796461811333146346061513652324822316229655804998344884031661292242573720536057514092007290227666838565440860598358395055372014880405874601535526153202922967007329395446764798393109760976736192227443407944685982384182326214474702625213395736408568590727215669613870159891022292577493392510074382473381857397243385839393494354913400608030611488212451631151482922505194228480536443878835878977620001839808118462283563793879704814538295035934645569145205606423665377785494939241794349441842135991609838400475763514375257629104005490630718867617630522940484048139269646795844895255264408389984596739061261179424254410031440529819775707859573588495497641294901575164287015129209877916650475034994461787980640480468981349979249877605137231310536158781668798565681149883216847942528557595065947065532228023499979438930457378819156801022557861917138448737099641034455458295075482991124553422289937590348491376303491753182503788167337308098059807487572886904420000691472541552696155263561325697371039145702826483273358096771651066872700184044337999727464331401315457137867121457856898006111561968679139244748824281178904922662626126118709866551350821723866685858292119492206708090450148187618958875114027539799871448634899999736644329734699785206240778887801137944651500576925047588070830081410278512644614742550987167195568597695301800708745112444634935884456915972250195401968119892092985702612422154563217040535116962088414035296936839329701572624399935505312678726542783843814098572504774988187994288450151394051071822036293238924830682286235890764038177415559000651693279379169491792332066623466571424637951568195311937013899693146941336668945431305036818135991188968824793142778830879500186556579680529807559375930536532233581474926185422622537123582226557973661489663330602144998559972530248760749256577871836860035474577667255979821503822834672829790291150258763193914929596093380853378387203215075636227406835744906750024558159441399185763127518646152688218063265110931541582101248994582887889938359217442358923605935069727561557693598535003936351523639306236977413684523935824847023090391850769511922503268803719551723998013646434090287971468700407972978789613537910673957141911288530921686197086466736687282665083693675063872721824136493348304116525056362160456477644798788898090460566906571026915085181228641819114191341622755853763022205800341131072787409420071193040069750149079038662467707935890963573162656628590755904143341685928711329366950409668669011168373678731841896335271181458841708800452378243191924914622088678562579221438478106890646383122245753469317838876252464319314022360523669055369973253687282941911260764091527467108320198603793395920669619889554740124710229316273782698929370112708638101228662494147955185500634940499024171388486160574851822802168206245914607360416154366819335387158289837910778004994771856373479856325012272918812100029649321722048123535563169153589049405016131166456869100231067598871281553180147484304803561237411982709374856512217696796515179696183534934828410851819739242881155575426699927811591905032775806218785589196549232449345162732343322488866768955222593277811404502773125669016596812232117675199638900550833239060441970137381168302977222418493689135725543231546469576336076417045361083055261078901538622047836002207464626685085558566303580631959927417879557373289879264162040638686599891112776010697824973310291113149148062586054038684736343783591249996706385617392499357491131452767711053933272229634977308885530078772744457307412163685837285994033394377894911485122256153648962016157423869929165137520348370828219316182223183477009745652689741996309457331646319963807830021161594258265916792350018463965930805675529044169901049417714701092958548713093276847388469650080486429838295075057319221099768375556329747541164482277430152074736354776444785107372697124468462015792319530051855472581970766772605795706594364980750647731698465308670038084443516961919980110707146557048309570819521886764247943346289624135865194197304701354554930416556611360009037773405768113411811350340066886105377093343669025633676470221215678475565285698004952341518030382974291326977429063196370861605108426441498890825306916667943311206945539618548795957957998061328464347680371348178471185500329073814437496285294434671757924740223670632653467988214141800603950498865391949638835608241604117546084840249312518891309770145150602934490273010635057513919692128654417654592798894867276264511544060541837086785730092569043828661867892212226595853342610333288557205900941742424207204499950529098702849816037468517191986665245469181480288277655987948988355137925749757065453066929030110228843831904530118168920582925864432591180644126489079596890589552190569374539840668148480690116491335110348030753378416396040793172399641390418092192008029787781721118014868229421392799294907750072270022562558236327882814156638308036885981745994682617432002457369797206270315900276860663032421796011051395181610252075766752522717990990105196825036393805729786956052227773185627550040440576782190041958575712475849752249915941368551758677265769260174533230467711975142556669687544808984357264289975596305342571483454859956293416049876709351081303117228675894509903039707389255941393947272956816901503494021317660465306267704096925629419058589615242014182991470814117573815748981137781770105431108791175712541481207418744346681432519869233760339094795831626681046572953411453532944960884568422434502949212329192377455868099727197627276341942185522128743336726826497933625135732722544522339906358238986060860039069229641093483426071632125383810938213030206184717640649680972808112033467897796778522065244494830087683784700908547343197551901862381628779602376601443492480077110646872647347493473996593663123416767186564840019859971867210303785384403438301184610718695382833893712898249644702430671952416910533870537682747930526726423409571736158122691414996263640156676992406183508061670106314721274039159304786807529136813758235960562198409774616681103066516544642706455826005752458108388158266585534060287967434136185941717399749157435861687684114229509892437404312406440695839894077046114480698372588016740404935958406444620805615353310443049444979964774292133447313879987920690407277330395490628360211936537144896282672555639740035478830400910008184868497326457558461495614406699911351845104891574759850960370901224082261165832312551965795265977288773329491900589248037627259060042731464072968507594936924015564653820085629358707495039261308095773977706351379169781840247919891823597464029072726497166744025018176744351260515806433521603138629927968974492333119892728767723324265464898127689721819519326729279004104796124891503115397424661101404403500713866947581777908485625378617359317195464547008211342677581524380656606538330237161721014885704063218499674798141513706007576130632055163486442682189030182490675413250808324905473443157420822445219599336121743267129188527979605916876968033116370063760336749210662167377436766843834031461427748460456964512865485546055121112921510160403361749145842563754272500922956936935680134819016730391159575888816263726684480537174264762241502954661666656675638315227520561196698937396978121405180002316455719561167101784571812984641137187841163690532536492305502928263765355111861947692935682695496409900761803232247553768391666299847773796971898069136613061239531210853454169102410469881625574210140371829477382322097516403013300868087560305521340613630187922110723155678912814921810331228122328060560467522380685461669224126345585401201004020348343889609014771468790660815118451944935106859733939112417033975413369162984449069969608319060017684799346152208707431923035583486728371802419215411186184917605901288544488346211394096685057148118044432503933502549113484139283234029255172296801802765575108191773398947183613240150501110938530711136520453168856674185880167510537754894767061495957964635118771168665829437672695343050204193689576013857439956963211502990593752012845394697067790652946082358588660144721142971889886258247695562628815002807048940764973974784941158179232215901138830922160104710862360674297304136683419979627105417853473082948527341974687777044658312843379883079932062276114384963542199061006931150620488111507496181889900382225544626663480374188392263954189986779850566648236221917942672912532034067599887694691818489681826515495590151139475890267971852356131970910764105343538250750127687968264953462921579026251295454644316751158457612538733324130442417830044156205450788527859624400106381413719495393112945777943771550533386397366619767724771568199001021271314674634297945242461864914859760443021035562531167098476082343583855952406307223618209782049280394699574671263019779728490552511415045447652882795895881024213037319902545186694741808772369180159831047032040949871498594647554395100269186264695295449688171690576626156046464894842257232836288243354732891926825097130863133602473199273924321102133037685012239455931658816269460623593860688185292929327083436159010651500721106218474537471892458846083612880039898020843544080342145384619749894044305552017286368626317875750405857470780951762280264646122174668276889137948894468981019779142704872387829795528120048973658181078947947647518760067224195588045519112535117634720900964689985401474232274397364198346207306428842004671639864269182069930589013450756318661032259188903303208992633808510318952146190544889391154143256076845526720661989567082094544206922691225195002368849312401474053458270959776945687515487773969545204175507568492206860908222289313994270948504388422030315252775393295624245773482441813268043907531457266869829608701491610156965195628758984950722279533786608325198979902764332495065296368353205494117081629177702141203210591534608577041279654670254271642762690323965894720107756785519758460400312608406905106698200731651395553798632434105058366169093899114062677421059318091934305346197768303962698158799954723793869755263023031317292952846872495459372282437145884171038451324349827309372863229041689556833267704514386887291585812630737162637651155405902370698116001758525477919835788445894866216891947661800030644483486853926187293521609358088398493430288241259229483107636920294882565931070398588070125777282937018749426568112943584182989359505783102767964664401852595093564995037525122789160005678246180234827630162458988924278435343584265036168033139514014964783914231278725023531008941973986118454140048511338904408213500252102780826316587768126713514424328156839708095462056663002770262824440077232527210381763345309137299137041284104359785910743186750331208012723529127830661271267467403333695185188670447111579583412099035276543634843754297566298660219210590766573854828893959372780365831661847793620198446064667119283540598613070496582157198649648805890987717592212747124283957961741445078297521602371390951486267205430853437940943620553095393551806553886645367015447752400009400961717448464466284034751766730914352865538243094856684358239111431125974206541187556596732700629407207037292144141513035230009872531677162759158788760179415905625722762893644365916214317740211901999367315899660596777701739086197548667586889309521135430794280688509145857378220174053940426261623668499736171268215891615382508038394279211282282703183557359383885708985409438678731866247045320029698723598025346880999676269319631962905176009496991746169553931361309415348230676038471268634296326023609941278978577412341543350981914833667543101307566752372813113904081626295159281774289717805598117692612739173606614436772119302086588098812807579460580242891261382141048185278036998715854256396410835852360142126682311802527930123691789061123882468196149289703913318519636418164753050383774927130384389221572051097364913724461733236024685529775441700254896622379209650221051651657846931442554017988553210349155148396043359006918367473381955690720271680406918180252998147016851298158606857488955999416468685687203850095670227255959428502301060290374343023500713732673149015424299824366299308513373849791218631425016871761767325630046631989126752209092817364293346352443422407039436066987698203109948766184647080338020676358987757784691837955610771713516002024453012002467579805129965161123619320133663603363925564303967838784279084073224085604055396795507240183680570055045565209674168773750459104150899923463692444794029564824757296742579171232088066182848256890777693287654993906853094074476504290581153485360738414090770901347894866688556235805201087938983915447925822031593972284878567134324806089703107941661436946779413975529954936009244982914854829634916763910589538679967217268850541667271632216179962260439551575922288333232210854090232343633675478672551160333838717209469200742858288665884157857910120614325466481443934617850058294583140210051250998829464074740764389286997382683968075288369289146236837324485364927436753826656403493530843039306112223427390954641881178168865143314857339064797206241254714093191861479099723136062355229625141111893730841790800372891064079549427503435123178473211441830300176862405870379489943481743944713891707610465340811281438952187821350313276894392432409938811606103440812356825213739175749343565897967897445921539586169599698672154312888908094166902255229243827251536458194812249726255564781901352541680386771927829605455865131208606464736410027590229024832197451482880379699587603137580770186792114472907526427935539903792785852746803459570778858845627406327106530502008625830799115666901935965023210621712876126126476056443115184398899736878975548576634751231603949034978585274288346054682028134122653508036970149420669032999393603527797429665302762880233794895946348786011700975225450990113255364737696152238647966760199036956699684369524920322664760160491359826811390825894713661035365561395032858739742073343229304251267346706375449956021313225819615200100552130031545114812757304597105000476107899612193613525346564611279778780684388950909229335440621358505500683147939607157483751335876315806348058066111868133239437759145156136636355567433690844624189858779973158344510789885181043685522305029401668525387645798871593769123764009929102852582084839123216381981929967346843711761842012439988121429902241460671007356057012278985929609937921175258187382276279380413939863164245932015771199679312593129352611170890002212648735253764181462524336633210820606720981675133970216862368050206263488012598499730125423383129193671803318374256769350614488478283123003792934969323462690744020903401578530165686494379879719940809099580955807384061151721758171003639538277905712920592907919377939902252612913641842046376648149268330298662276102267309694562367358696831461599367906104506875796943861140867440617040261121690497209733797122012691651055783832680418579155560301118139857078972529326732271973908777858382647000891331662303744439630402638226211356994676245644106803573598052101478899555763794648940715134954991913977171623777898666982387777607949828699404758917673999036032592708216134916655927080094277795808936473197144025098164687570862604526748597924309743505828352190484187419733803397001120993648876774093607538426024539684923906425737473312329989392669160037831841339720754399577485938411784370831388461357902608230631245267227626866221548415389960745434775798448875283768409484928209648265846599055566469432727620796264184657707039943895895378850803494911772338563497898472050166929503870759053689103729586646804759569047795346633748707804414628241346964620199042698013911429404788678784629544841116472705009145812002495575168749003456867223017739147228540757169040002691366476720005686421209945823247912888478214798802228942414302186623429048382847551007248105294813588521210142002080409821479954317293267133643024395055965105279239824458907280311596579504362128517221556829630012951635571453242348360048856846929498137752385861932797584297362413194619851644173548504390790456998757242013313701218241831294112053209646466776086219423367450503115220848582758575095256198400436655905028627574803181005783070639693297176299087946522982137533431561422649870051889495284755217155159694009186159691855903798836259834580075912827854430458174813290277399672066482029908347442417845777274376730634289116206245894684785242191874455310451313559603210369946077375293355476224443139025669330801105956609656811817675967641098429967689182949339327629507940810347558725923969925920169585960263588193338854657235587037722532007003647479522333295540760092307725746857805871324735594303458516041903846669259366694688388069422361425536375203370762226200845504302674762092769894975036594845366784385164499242487342575385158758320460499903420756504636310388016753445714665849742717224314824127577517370769890677652499915381201819514559625852594349328200293086224546521279557707059744332221015616283361640855481642969594536309422233197981564452468882169076361218228262308739916733233881311085017580571376386001894310113196495836963147303669548067445048639911523045842324085220200029562903813023546516725186433523325336517948961042667469305283770180555239854573545588358626350416208603521441766696703977657340944122073491137766878257980592153910045729662093430743504267430306859823706738206779230808363729718193740840802374548691027353431401941581574830945046093480306849231755509372566342662078877457059318702381631820218978697942650053034969401759791289832573290691945923833047764089258904410596790711267032782681899866279319801708010970006248504900530405120613004960420541683606646558318102414500660624139691021046026647325828308359709002481017319467237441582901609807480363191001072803054628265960103370667325608812610883851120615975970356276244717471399738004476552046650504828191012161580519733748291098483737328355051840245744543479288936202775515317203154077573736972355872569000192370850946728708088493635181526092048495675772568758563674321600612630414415085424950767602442076578361330357412133991558941873432570679491288696380062080959629360446808520871256273634080481307528927262768074767085954622816945413021562985833824902525782677481460149095762982243267829110485172611914115328473269822143553417651926253148016005004719409622838894281547089464350569772083897508635700306980049050921594269613798850968284393530786985502196113921998505543504397094089941244438011456125964033224039471231444766422633392269193070155781240344527823677106981494004749476299578772577818619492882775337033727698018261088053378971796557415495191409892666017867770480520981942539462653823744519871494169734064659023758853016611670977940215323671664672192056880728873944073009843754710289407940497432488879963152485641207494020868554080648939275167537725405001946627286387186491882727280979937108908347357440842841894790249315091884396340277589187943707921258943033488133439450120232995923631751268692816454866081591571181757553982284110462326877292155028971314917292043576784015832315460398538167491694106022872759816130601666937165345660864844794201848841237347996718138188499437259421212659652510931324423129031311787921665404606218577019130850668759862528139770016992810258768288483252350397908178713369727613366627645038462967202026752817732738406050429268636751712716096122726034806193219887573325166658158733021731769680799137919143840616178109982838817836605652308340564587232660323756456343949380966393407487662730300337601015250405677187809896344191109026276925651289485545017102946371518403629470259749438763840311449146986534646963474485209752895472943531733256812149436396024363992182877601992648262566023240963241056898908888315345246487550953509982448920864154407086617569379305390018774453758822938516869324262984726785531345621938672003911037325871180452194726900237215512257498298409560964996372435015665669850011772865078357875372246723637550513880242192163802136772798952504583225429012250722743212642539767886382545679599809136179135538518844014690411945774738040364190832272197410389400155777649137568200217161487849724320411401183838618321835983549064381257010075366645004489383780028968502274678562386048505073291059201830212978205530383763506398064011443908405120169787234669620053083616715642487569573117634652676015963075706228579044120093107278629575006821589199861129662189406502233418301363066937792372490604156715900627831691714742211756487456569223007368516229312184401807190856574380222159492760600138349859886302029682828154422398905823698420999888431947051648256684465134175215612050837235936484074053994713677199829715777741962295825569255137461255474024393264594780811824491983563592354141377110299237633397176103761927333345161401841580882221068629262927899842438391222290223874474695716840627343485416080677182466429548044919081077747437109300144018747980897060876365084032508553958082119672925327604300450948761278814382663523763185347584685872438543701005784053744082616206067609211022362609644917659971173302527316807249154704931741049854477656743844640333035945873502223928768600241316963539526128289924236115661293356711891296456654286059342099408928948558298011491518424544465541605651034188482599216017860873415297739731162619186451008775673132009412172898435064950945197435342345589945469125680856555104058947787529061854070264035332087459359242668289793919873949136518276113308529770483042339940552514125575009178060761724010995927057464895057657617908758795529237075909992996397216988962913675233009402974538516807661611719338131598798466811525051396569866799969007583038514831531656968464520956853606129651398340539372526475328575439970666468502321646118641035663998427647188159554847732338530417244352250634550580766951217852903460290064659893864613065798294869489532452624889405334671511417561195856329490396693252229108975419067106948988988166016260161593578617483602570321236187880619258616476456590398407783437864783988752759709080526865845026022143058581663272479957031206085434997111910909276361660764796067794890668274916163277904603677113318279562830441935525859413616303934413755949273678831633745191039141943097555625627873882464977224557563689061768844685491636273012242398800469281375261641784279268450218647246902188605994438402751511157503463401738805715367709298594994143683910708922314256935852041560099353443685289777161724306771668709451338208657377022137512072165737195647713468462923533520852437542318986544868682883145539435075276322773007201268524697649196394930910145151698817039094016598512552313984362114083981133950887479506299483178716002695373013546511033521763830189953575053440587510267377107764396020841854880063150620006601764622134232641033023447855780305603668315880252646116297069157454662564237173915764258882931022457772292546483546639688912168033920469055666293974062897242777829925654833573345352309549131316706661400702117050723178729459305647280229254939531083812592135273397613417144038962866216692719517365159991539932152074254708664915860738480243410638070168665717672189506440546826114876435029681032574636654283433502214686285536521222128224933078446165439684888040910525516803435673622361762698162625708112525132787556632291156559269412024844113485794370472839245418408079869483017721702165998699107650052206538714143436165361062864844233809735616159262167122738147368509706712897489639227958931713529108652196863989172482011050449668398783329649948057680432481675209826503846284591007280417939181292953150498929286448273848685049233557213464702010884962009436136356116750260214320133537764364650735274897606774363933121104315259195235064068561754603030004147818409819096964937722329111598309303765043438809577856521751007844810216180442916813441256284417726535574098786280634590357020937499637344692500605716230232695330274471085773385087582629749698536260092537147572941886544539146839577156380388851126913872983304947904469930832771332499929016066758752447241710307491941827942376147409681526208466305251766351449417952176724953626542030336019628701628994529633270643298225139673780341245950059508762473664634590816634847566578770902819032701079508946954294776122213520347989099835392946480912750585944369772951995297680301678292652922748507103466448657668638584672409820499544072581343753055920810923146783686171962014663051230796843748679060152371004482928286059389620721093459893019975099521013186687699868995276043626967943603479567756049210855997477765256543088559066468141397565269682236157532658648443193967532239586595303223370998650529353397803619846008121967471521627129126770568885177433395134979344585915585769938210926067074126990273573362210953422964424957865356264205694262444117892538628206089512990372331656658458371504886476290486962072665301949238308570260745010350308814520164373329124986130457689804908905876526058112974017395862769639343966447150647748150501207043822925205371683156286084694347069533867170410411746837025731454350546606428010306521055562028819564534381984315818024383996308992786098021135660561373524147814812641729758111540474319893064844056982276490854887747705398410744002676690398071160980794773162894222290028719343001967194381880375419986402590051171365885014358426437261750122850424815527628146019767855376311467707107537682283854937962942984828942539387015786984620649965224442846291639451928968462499780977619787167580230404642997420614182273990134353575678935013291416544132309986357032495099096233868743562385050687045511285531741202248474925081847455445461494155992637431421433937736616592770927814875530424520286217157827316090938374979698526718959848370033655762176539467902375774075716431704742920635347942930196956838725053496244727859474909616668977372374705348011258943028113682778518638534249048267741358034358399193634534402328801722213681359688712040630576064860764366157977705049921463216852930641246736975722835389508354846494409060671013983841502248335684647149086488793775510398978855426333708552177791468598061365044136590597422639427344051656050890949574998688382710035705445160554582855088196792526282020063597352021528758121981592668465074606125746235104741970725080041765179086882719710637803860920995123967407453442241142517348724222642888448391023648384383383263804599965392236266111529686899471067915687656950907211928418086464694886280303904844472955045496406306873195137914482517044394364579934375787748819742894335913708524691738382319943980681081098418173468715170814438200477158768477589221580333789099900553189824814208221457513430602570154978635757626968577618758144112770248245945597118175432734933075812396401419756337384068701793128345917989412338357485364267162654253016867704947242156878833945486902903869029096235248803307035564891203907394002914034590542999859223078178750713715136848198627270116822471075644299398021206121368763854564714264987205922145538119804155895905379293801710065271583695185505431203999153300407310438664256112729097654332725842999968060370291319447324573467840366149550137992738537418586618727757135321361572753744599891728812288339772776422596097012885455564164151225196475604661905921329240332702862679577613549549055792663047458053431193389712203563642867607166027808533631594791512788965787618147234135594793634273593297259736566506512271445829842405918857110230984530296883891586484377424941032255267832629417979774687205695703341814324267374529849625144422135194359215819341452971166423947351682311331128013841845000457188792415854966838519198294657842540855198715322956624703684805131319701112291245356051254740148108185277739560285956151739816081129634104025164155653178136576140612938538634528648784402963023584074155461848603649831751970037844138219175494281108217652426836615527159207350798039738260847390557040077711032506202073319057873173171241892070898624510277416580500180069639584224656449958838313619917761797809975467634578906931836328985021701528711307135173788570519292021583686830096119154625443802562271016166069703052876001411409779342544999293048884413818886964364050250004119651220674765397153973660949820626097421311727434058653508389164482064149891809505409838724439472914836504754218101876546437424650593681023664923416397416107294900694900687570301495733254411397661783694931837567818788233913326135750019086188533596117526838107690070970880907832544802793332649348831530763547820071632012323913403585305981690312422147230333276563766965969956275748034767211106002749090190950817719785375562814379404674964793116776364430013737914449731880341129550596686108701640093083250236665141206470769698926211829327921681559767289801897598806477140365060499771657605448018570801562583945852917765274365542459090575134384523338205713891244417277751676872434149101425116446730671824740719246463501496808864641093116068725156260733169855753665305793000912973533900925518660172793808444948205887432261916378786319333555245108870802306085086515979109364811287084479291257986943504947851576820233643333658938079330447437237790947856206068014062976153434713530619171534940129685071160079496660979649170541931979146226205893531541763593369647010428469522612271487011532571655555944803733849524143107105683427264680788666406905503401443313489399081531301833121327053677279816109884371172533345815592885746437186291469207916502806385267062266047648813573754737682355047983804338197371792223032628316276915861035378818610573555914481727620110517112821362010509269612084621592719381337571601256721474514351421718425230659687487585559046657723854484784069530129281348802804091651382655166220301986936785778660800733389334635759503229736691021981629922838300192944832569280313865707493308447331415662401717395601402708263409834605372322695749401975059419660263092879293927599917850584902785157625438465175098580150462565822285448084515144323598690182268332679428978985951408233856675061025630869155344750276026101134090808959945672692898642807257046501515979297201589125130835345366508988380000981836199404527332972811121785581223480345124774422782496671349598831940474196855314317606604191080752345266195219964715616577254923990661329016521481843655117572475940918758524960439849049521663297285325875885288188260928036301917535779390182213483481184046825168721098232031196624146182672121548749154537526491590326354292369479218278343504318980979044964865662311882320629093186555277994677129787080670986029139513682650016799981723561498367859924848015022081348496770662099366106768245118260139973863840188356613911321092496691690429557532797427808294376728997443568865993784864548439389542545193012188832714987533785765064317949332232028414910683240164943702480235885634851559381456257711188854786705980535882437473791690121405261257712509882780877642576348426694588668571359691294763497092589292187250598393134983219774770481427536494720466498407240318947427755667835718157683444924424907164206485109012672598365826014772001276866569625771500223049682259572128049313586346779972278534027180764526478194929162695086172499774237331364351774817820139800550408144730589475265816635053961076049604145437845583692732125979792173997762777651342308600001140012907036375446545468495258473721659888201209836710095609790570548491940476463207758716025216470827195340401061412693875387522156452201768334707133590755914977345056388813366578410980102504782464687823069654067445356805033538581444362565533388194732961906722789611883162585099272604013406738442769913733849323683009384210285294351121101088586773788307145868572110886981366782414083176836234704801973542855169491220148471289117820121482414294353905953734491337795295484384471166166978535641573001976862600876219107529980946659729951026201740182263333509481837774248524160404502056245097316105987338552093706768519870476641563055302710610919475032458699182482410173675591069951740910760556228728793807236470139842613050867071821070941776361001451828601613432603603661394366369014945104051052502203858454220368404362292483961137274218900216161509753940443704840381893073450187676261113538390512201744305583395899496292136419353933465819713930967972293145705349441005175755224126050835077420178273468211158433656187913834745645480579147937415949765043009496967813516433168533956643673040305454181971234269439670049488112602803318867116381125393271185481669023319280615281333315679874389657603587231945722933170270474810265854368528018608230199978994528786780835419788277032417779908743822253497000721489755313356652412967670417467714009244485983570304503062401723074921790350347032072637796355654888112809481229924236154189375180904025573937798670664983570495444914684516104654061660786994752216091677818625714268624948279603231402524083842073347898556611096083240419887652153739694568347308824704746075629606091748614457338487381013690843359720847659510547473989255486473528743102182056788936796846634633416140204990941798753948584850501563033987061105431325429319294721063607074115249511872995945979780300603358733947900930385316531851051805402810795488634550210806734482731100597917043288705534327757239657066176810788172424481026627563213087898838414754278783894999557494903877646855028135001613888375270863068530255703637955970102045948410866981807084036751521028427939650597803937618697829085456961986470764041996256049300308416148768390902436492210932752593334827231584914632622166534986482347717238994428106335449924635506166214902309728498947492798425460248756522003655587164509986537684581182734173086166343686634474563425226287000603201884531485206111813407408022143907223905148496126271747841945610129210137687889061221378169311125880077564115100121252162989580723329326923284108850549564868669985261772795918748669997782497526623039369638336176205069306995849337317310472614506517668904938201696047981097412191876975715041484641543695125020387383538107103178357459003878850351300400017404371361421680569116310752196019111555022910729494579796832033792947879188440414013333843117558035924075951507851056307812795177596513975768664697059096921255512081912913513750535776197834126352791245694092935519872379554048086348911656643457444289143811043693442642432577281041252412626414120711183470300234180481422690821077150540132055583600421562896329866466079954729206861934889706360791111586730316803670186585120263519728992999937806464529391286434624313147453405683435436044891852228192958041458155125118699225577043072350796842948668509375805898347132838820628724623643196594467214993227424015888252614349350353773712245095025178832552424451927683880540486976077637080595018901758681026181835741845234579416646088333084398581913931919878697690598858553950181301467109697386625839717666128086294985460227173465552355482250820937627544322635627981460326604205408153577987049610322161551209610399714220629961833479132521641507549162916051420387705413212230922459682731003063898101548154859324791530644017810159965659604036035898021889731358447560263654032608876801458918318008464406359343675338665736347961170093729259297761063792491221144813332108593257258968690845878023787770379391513120592298620500757981443833495392815553346353454199341514705833941577417046067272949647117074302763864320636153804817237890449651509062109801374619036786437631616520994539714192434337413373096095868662103491687451808137304758599857699495498664281621412245649270125809231206067710212505347490996372063950409262901579848660106465311043348708640249789976118658721225508681516801059171238495676537175437586104161661123869183852478770296510655115472559567483300754997517916871072252634029779404998810413107504261631468748045710076216462922360534309806841802470575524354132037234327610554977746769874931730874651032603958728240220962165163007721963134619955367734159192118186736093874126099193443013450949885600069440006948476446519418542102842778485714032920809251657091396255512892887321359675340893413961138552536111227564077188632011761273789014989305241157770016123108632116382740054876639635062162563395948258800888389022852767613494028277335582643135973234456844154825834988905076439997306958375010173815772841999797781951410196316237821398694001960097425445024133010453395985285188004692955133633805191606978629336374075507719473142721432914344913829720638214741234176143875516546120616351972796077682964269659547678174821432876490335759524895301435166010706139943961157885687673947781572707694786904807901391966654935049020326535106458547465176636222058961100040830593939516322342845610509407757333299173055523326437901803389601685292133064800536103186436745868058792898620926103576988111655790031708736849318186121793107905078390387414568780823390352958934261367437623782547026163633117188133549580357289726057371339091965105025745768539619168021209223559803631424049022120678324845988094782494247121718512824967905082809315694951315061259906678811208213430298206666445084723228903695885674657772248216184694317417352080197945184835107718714834662345847749057255720823066454503049181120899880128169828242468111554708552960438633467488553387019597820447839453496041772104118852741124764384368611532065843466494031255165874791744406217557771796414836800783690839543329075732609765938729864958087283609395788852968446865851558118970932998312569614121068545389549057200634911024003857960765550117164286500961528641652783651292119902484265786245526513265092135988384394383366728251863088377748927782810076983526344227283333285193650027596013406431837508768264761923376462077110581002819011586828955814108093897761797420280188392927567445162918542823066907163203489166845682330426315742414947164819008694076264514968404830500728973814046215770580717884960287909347830112514546704212153888155934073802209996538370059130031433227346107999462944596842807146466154044972217227072292173505130838265840858630486887827158578729701201226844455431142994614893691432790674710297821345173166154524572763195697800200864301351857529210057698754386137873305973127914493415980895618867705595122036369465952108148601832570752726508939269964765647514426556261598775425449735898867870540968012552821321654248688280838169155268626627703408014811379979882908821543591131453293454034622537914990285324295262809296460053525908062236062134368625467492406501486948811052794397161888697033894002590642790072085642531895117492530160189896127074888604802362087102691758013470871557549790063364449543121818651595914014429004473099171360065941536175736307451282488687023597967044300615799286972334868114279754425119204788221719522589815876988763650796743946146757187336805759874961598782906872407986714017627074482392840161611593113820943031369729750915387673834037697118889316407386916208782798446045929385941362269612549781038148786208832724101091835563052281965800227233820218844451620771765195887670480384161742135264350553973102570585014804078066173160315314247303902457244508055210725052629461996791490841243277028105051457946827194331666380179609366398536774555312160417407567996484766856551026363324050845910921922033150107507083634305492621648142444559871184873592169638678659882269123708462264171828260313614422197630338389760523429673068020476863848871189350113726715458556365774835336385262140136943560300259936320969846744293516570126114488070518948453410380864605544760551011325796151718184341379336932131001382337107855080400533195113076213031057772236901405253960002180045876704589251351447471311230564945980801922417565839584011156448645421067778296607490024410817081360368310226120811514736784905395603382580802447863074639441184858440715007452002327507049079760530347050939052603936856880939127763003297429133306384261672491631495830086127015341506939744521366330229273598630688322195631232144124711377462796637249291862691731601539773827626822433069312937355004062142809387735347458807212569584918985716036832904225456307361264895913914539415835139044468364365287520289594967142128818919313340529827045468261214072531201392921400557449688495528846415862855130409582367275684362853279377392132185040546553080764595448225490836638167371474652595689837727265469885953691703005595307744451398955550128779765312084609283624124085157189731991043466173337241103673871599604705100760330129915313706002367219840381242393638091815753259096311885746855800823688156654112958240934993515964713719018769300931328114823527893963500814885170297369254437154962650582464842335136776650506808533608301231226903325983614372111301808339605297749974740763621608457193630732407235773883766855745789935990879597262309260637407557238389079939741942617869573408679191288789918324658987433026315919968105463061014479248906491443910023355271359266564971168039837279327207140578436156113043863178547263418223586164364154648082231414616390926184255876379907873167895158699534483653591167862074796256730186346380607008454047830947958619839265598596159509694125374310381199465144532090595367551993591864580117053204956520772431847820022192635755076701556067654540531734432401086193118420144536894705112473830006462793054652471153902791086876473796339476335299620661724273498915481083906443293385989603449953562017633224918478595455150053542735172300089845274919510605839825355581781695155233014530636721217923418831183988218580885116807992489688665100145638787746824022596049366632565775026128955204990112239088959330630503795767930787575696768266570945705939541852448190445749026701868783242111988548648965277390262737001067728458278910944499133033000370085970698031611086045472525723776229854905989837310527958927162706691671159385256021913520969456691811942733308547411723113363818859195922476804430485506285164487266930178289419036281997909287410944750283922936746743319882832254728044018637181864569414048014619679080925014616675369864047084301897241928757901702575070155707674495640511373898325908282812580919476123294399640970247609301694566740629656053955765692636694930678850738308850178616537158099703349403459220006299558553361010219538200884571543663706478225124266100964385374689371956232866659302453121668763279141456582604772599245748681853076482999608808820508548687533527086379216789212854449468049159169088982396352719089094922119542747232236174651829286845869048390226758344661369985290164243758092590997250404037686627625405728273301584035809263554315296805024948911877254395927668645066925064082972619035321285679528208878545132627199383145865528079305095162195540557810707228543866378553793485262025245946241592170854181070570784113343337339811827807108336482976549126525950078988856687119938736706758044551705623467938867510607656867226823206566120702369891773333026518798612974510629808417328904432477112259696482584233387192299137548232663974815181608595584875089153027642915966498028548119092638105514637178783815896114379820724801482827647829795219261069396097786213335735540265558140161438242732448123354032135602749926769692158699307243993707695415690938689799999764752991410371513628780251816979906519527820446168997479959747132414863589443200928916706411950625963886552531035550178787892554769472411158867583668866713659823477926016285994892187889090424355602058861385605917531773411322890870632191676010368175392477685125162652744204146737022315069994991029328163514256827322327139259296551862046059125341422547546225444513960570245013368167759722439394938225619644078991305199980041503952058211377013257961071707799263202490422610405219521602338478009368241851477650642606888861116011716969649983906792088746795673205883811252856519980403941219219930718108954824765048164684208650617300586115495659897492566449668827463146765615798825578631428107275085894390671172958812704791090752254956063130755790738151125228294794569916437459518729583792366441676238731471636375973079414670623569021813879966867705148924182386467841848531030000087045220145927108347764894400396322766987320086459937522734615875366725791450830616400856153940912992663473038426628152946705448603577406237917749361981422740529152379821978144310953383921396407806460183566756604458025845937946493180171977768328166811486427249598541300403417619991610781394465034716388819743547890339016927486187120569743084929138734519366813137485938465998055349850654657682555824550007987084946064344082164647082856939793709445776621238608096545309079319311573450916131434890732155333428806122369056709937486720647816082384652034337107338839235910266636222500975857917159823245040457956240022846945418728738261359501891446221421231378480058550736828638237128371533456992438498971165840364794373519126854912897706999074641718891812802370040344689265281922454166081588721045421481251180930346266910377319310091592763462059604228960997813307250345026209109425868821107408116004935182121745556785496584640137729627070327003712370143040997343354020581920176257907690695656404750822054393257074933202631401647994660774597367705863486140151291789558277665324122061695049885496181224740033695766333735115396787550844408102884747360084795841526208922295941441404438283930912800819658677300464284814496751239797519776088159879330300676304872538984934986133688437004626180047440601093384758873188740621977873792401397883616209039380253857633881841297533027997034686910309509935985765081600872023765341684949135925141122987396211087347925811018622728885120147088683188389125415994758172524879878486498665380274900516157029804743800422319934793453871233555664418270242338084577680982037124196231155438033565822439593991470157854723314031525196110308549956943892547832112491810725892758011713961929796740747228636905627875943250169980005852624927320938460455704634016662215160356558195544656862938026624469567664485955785822446428847447003407680325717252995523173646710148419595270673444125462585842571587635161582432999059787575111182618565467196796637445642871646122813976297393034773564167846324702018794460972834419139075525957590179325790835320540995404450494620303143936627290688086482220553634720010880737564955944284252441182435267340298709234248820327854929623641886818311328642090564359685487242636696665056291953003944235193740779344537304245146082064107639563197594548463859771591030954378334295248325770159288078494051520178216565827810612683800500721602797532440945242024835471356826269187072110565360161930144988044410771073454694758043465904681926984792547126730664777272784318318040369471407611062859515665695091456601773642453183645848564523654643837808771652853636473289798254071159078100025769899435487144081161374347047742045018859634394214959682853935783088982601676833923787686048387058833506551397931585744959326703816595591735886795592453270058329603362266660058970493308174469874875897452931355257057853377037975142878004536022962963288969517583886909464691218031048403374784169760348526920713829352153597832053777101319130455051708377567042619172481632670715285382315900346842928837064741518684973814058768665503843197591475507704508064413594429027936971066947469264944393414305237773010961301489092642185716631795018197065065748537408503551446704027174278954492578039235442716384268944913516048282849947239126741547690453744163407877478032953704327241425479892014277072784835874323757531175915532312852890290914578845125236209961615916334519530209699156834566131247575892881442686399886101249660822801688699347030972197308327205012125747459004119119862216795350401033856031273884355698326150882882882320084311318673297909245856358009589585517026913170957212816055206543156191079412709817104838045248912496878099355919783726011119796040222746506101252744608389807299757413945671901757401958640438676415909447005892822404273320967359530698746736797772011049207502735462271579830757879851415019220600779772134643486618010217838410914719951159358853162814822954228182278290895560823830642152551406155455174496192530618015680778645129610129590796453306368629917369495280029878586840395726272758714000099340179652094592871123651200458288782948884842785585505048139048518545290197697085304052034656415558768873773016180742418545838375446169526285746487055197480014726017790162420117476063545102566498112787754601538077659608215944381843604660871998281683356023568340597803707763065692242597091880667965994893613969308276541047161569491936544173629352797259517942946078157259077790114952568812827973772853224033700990036753096072419559315498127245174725548924242243577482046287437526951069055087632237059254020515509320664471993270784040180125885987525844656532979534507916067176716349215153876606443329960712419407905599517336023866723424502993192018781919206992900906677363137314323099479139418121308144044802117830326188980168594065090810862546611047331963553705886227171551633018065592736337435352632212790040591996220279001616455246300915194995409683607824316958716291880928430483305492379008302287737794356623147502331241814729339424756632783644569179524457210492505437452125668207252385110349706590808390034287390178932493671666537907938534838987034864608983240915194743237282873815886803230306363287343541729020697179278796207469704604563731963738162405199894722161375926834556035212186839862766800642344598547064105003601436326340102384566558552523823889074214402018723314418300398993652276915439960487654776236164400937462193965022069519298249341847549216355659018711049690766143218366270851714845163496835336826303706658291130536013399867662267361943586346288601998841405980815447328650051915684524577075604496520788855571782406179091855574329584339988394322170357892511511124730316482628463363906587869303514006231424508138190447392533529947444432819123879392787104096930307232425291603089740023846438056255741389312611443293940822103891053381298276037985609492161698344423094665626099791548866940218189094122878039942590520881968108414658749792115344414329198412133852019955235955175255336988221328613617732061489446332824909727289693000896180554284043900756481309331084356607782304216190089061642635712092964880503646385855401998473540491399342402431002378113124668494843998037046461480438637873309344671833756082801487196204382257564725887346672065973057365153820669433045230065461841599388435910794114078206183081276205803846586470939648336785535980379459794998846497532157976587428182264369047707347323850823372468373639056857435060956496724514963359818929535416742821033996415196810198054361594770748416153138775444418619529608570501957986093013964820180965365582512018032892592124968333737284605382151335942071144044560749189477844739694552116155484467306096811154948654494056782554252924932722816907802154351284223165835691726882029183232819053155488332069284282743094389388945153841642292026430735497567351896537105962452792583093739504042406930800256851603706484573838788280138454499451936394376280518747127093028308920569776948789270247309579126244218061223428530078764458531535360285507079080569768433048362778675024623691539262658914583294156609969060740519825602524759503226374784467201312895878248277876711661246965554064401388304200043971134113220373156594188089957745014332606668748276838781350402530703130958556031830139166064574399057403799430747177151315895462997320758885565225128555666648222798502077751233111180743669461012179644193103969855643100337187417442611895065806072468401274723192575195801409244329592554914008436181325976017238079990941880638866901899098639300528348184293989270489436395977519497524445035469411085005457010325514966277131216320428397394005808233568229862064054175554436133675728115160648091742704883668263502537542452194348578931063455218982537822454699246600479268948259264289593006867055024562255114353797140065859143620545307765798960508382364864136418415030982781320740399488461713901439612748235798657658649700099024731868393586971023561719958809825311863545268224070301340081109167839144085152728262625489388212446886011078433401445490887607656223136997624927354127893643507643215434853681164061689797948715356614455835436689551959565963660580459979383860727861328943592419828474670509933331985243622064524209050316598031048169819364413996192200780224214181487624362905374296528671473812389859714916714014259656189285558890632307566092124559028150326337893024649795466571722682528792944331836149007034605156097957708071357233382285824914458011867868342325958819430067258863386954385691977651773771461725830197321619340598858689068033647561206532328262739969823573465025799844036423613378920202625008034690962798297312464327316551543980829308308024251991621910753545522525428186664359396509581974156504601029779505575463835778590043692560221938040958288012335318422085338909763103560054357127641740752250704049853862104534900341402176232451793086307241717498328143169218332705444470700830817805604137127886708699696805144283549370052282546625266935756864474853255271919830858891413743493993710998577038420643567385715794827744026978961133649784943108084966806453610941043518239402090936564542568809467519580275144254540758215953689703343340189333287593171949322361971220253390731920419184178632398011399751351815043611251257357328624460647373875660719051580358905074201163210352743340122221906164738213654019708095206551617527108669493567058133831974976335101554242636418918595471671847499184181974490619601624194752679515636304551907205079253541527444255713133797965082132308152897513197655256043328978389454467076662030369956251809387859084311176972489759157969749860583781027616663674921849886458463780042581452535764860774949354727737103329213283848120244285036390348859418671028541555357515122472185459722551873739032716007705590454580072150800052486356358966813633917849233556055324691790092531381539918216060432256211017356505722090655848936093426168036200539867746028684086383279476867856930108713403527702690908098568043092472740711834643008073133290711790234243492148289070530188372740911884966064285331399837209987268882782757171012008826967530320932248838785862172266200077085611663659098093729993094183362317775009985812977301721229766705306155119032338551808248453089855519287077237169927137138349820441991599321676194343406394957302651149672101165339349205461815280949045296085459898811796972044660200304828157416541125959842257112526143264061760372336821432676398966777235661845818354528488272267396633131500723639703759228356383241830586530015608940399530960107595535331444701492861839683130006081381530212496242613993272184556768791850366331330285135253871566521733353319557180126709597449499327442902328547390088598129784527547599675184611367063091116813818421533784191020971494798495770704539870227305714667188816524667836411699843866141263617420224966635496588001390430949701756249740226035449522255064288810529927732789444745979556565324720737331181746465788790010180631131540671145776436932157551422375287052408233270078205527570391392329189359482863178709338896796785241889781906332938637515996318506093978744103846648070185307696194638709959345288754495714293453172056543579333929205338392569856004913782988913327867384128495377985521872821694224673016621899088935026403432919306691728526083961760733335446872803593943095961117883914277131879912203878022745068112643446096078834211364108612715855779191851911673553236407950373912587715795390350436224259095523930757197690743355158640268536450963740465596822119857800348773266066587226898493133081336560371088183700525464496833661713289615724144617301997559774349681739335398936376046077466926037010595595561376812980980674570691673129902032972019434892470785003636560451478390197334247616207025948317335649075174788061185944209482424106469303819934980568623417715714540726424083497590402592167475797400450119139663419839530193724451252456752035264221377540330667081129484118929051136554802402429096537592633150314176789871435161378448240177224499915805059137252784905839244054263420873576440530550572185823989719748278332732566709022868548666302753256024626126116295720950280655514722213710614599367930665327320707165998593861507800375892150371307409236844631928023525670782184208698279904608206828785854643162315526142050404101007776600259378674740946391265264785860590866829809098221017651558314068523707786875397502386534075553241665649945522366803524964405250835818240684279821195570460491380669118884597401112857897477208141380405492417450949471252328343341970447502520857180383660486446635439245034721939705174427615268869431406143504804928682229407176038367077078041453864004155778554829710926115317043867073466337728085994763518746819072443124314377670383359403950628114029227914323388277038801324829053651637707848243923732992766470017904770915852102556358767840464969703816948749092870256102914878199334892257166815106437656193440791510583141218679172035249384820884185920827394830814623897668047951638130100439406009686363220966468662539774097056261294817384440967372733079879448588993308320177549780681806189124780012939583260171732010555603991502588007752979607737708474921593557884326353576722310462021639172922494038873656671108842110504032071934018336964799429592238088722312114080560002128031331330396067597017902190417368617984173221667796943737312965976377769145272818263766332280631696769328880703382244643923190973815494476386769254200503666107611548052612113750274304431033786050799091568282272826206682003344272511347505252131478662517263560254066351475759506653013334614864011226828375601526957214071635206368993551468828883292848335894234951907974150755400820677765237441296458384643919967182386611187506649845663853451806122732016568771421638115720907769571447952387071411287296762575628957292589097967009895967954564631962142481543387894318803463489707806607329886762225604178405587991491616543180276102664538611194716558480908276979081148858777861195635120374469556829842196169022227067997094879239070657130130069552928334878799188305748257600183375660522383542331093875391413694589907092233522197700700091557438928878452613596802985695232789428674335513417137458706248820306191092568500617916954637875582288507342315330677872837382998477067666974946562568313992353697465944961828687152627907497812801526737969958522201160958782754768740222616057992722729205661407934641272440831713630116235946833757752839614245763444237814522358308239852748790411060514532932411647401279580643967233574016532197503478148218903061606899156197214803771539028989553303612131069657206313064968843487739314217444604356560372155973305681524074480924917756131641926219553566465144189185776833015300018617059939419056691637939411790745662298842836642066976444590550533815548615430714165359300939234831885364294187593938882234991196354969009348169470500853110242728050127444861496204643587269061980635691469986696388240730097822663164482808957922079354994122451377379113789676421209751573087705774266994528505418552324290675220520177920893417551879157190208976725829262627789095303523811285774478231264780217754629697136523025733374125619578525468400135642483085564562614421954631025407370532320188018329462500002022881115952210830428109516237264641277364937893798752378232866214562036884530899780498215726282121345136974424687134615619094867150895256275761369094698609979686834653918515782600545316571714962495902492202360025321660765432217306019707549822282681261037744059648413213972984788837244845894583064855804065665612253839212779823548086634055124286853631606573803869999056601466297721392157287261849454625956006436935964730734649092443893704218866020540403390099707976341023574855172029599841300853674109418869627526081321178436628275599355766298446966593006167670417097340861918212613584741719909773239622891168891517060673532216675693247346637868295951904769920751520416498468501351475592943180899972071616928640201961385757990833744648772272240959970594525305472484471106644250782852093875258488879418436194684779869612369791680475464215157228592144493092477157597777081079489387918401179604056764929193519128484203941121538733721297524893477105224178149666400548857530561484663988141647934427410230996930582120843522066107802011175213530104381794877870919475131157532649746966185698766602333881481664811392497833223013711822390847870454085399497054728311873060600621533714271488172944294278581219806300671409745319490796456257871620747074052669416475382924841763719091531346303816292542521635547757498090130669625668204940240903312299005299471911942418428547380521229430389229457833659175470874828739231273107802156792693831905067743198209940025857015957030809082276528912453913441588598611848264141061936798700816445208929919360905967111833011676672896939504618917588219867449377609521202156710867156343355567140005872852421686560145450290219839362693515381047096208606806736264676816874805038548160669855326019661225124403854329002225542725384041170645509071125008523645439304558410328740505175422826632721217212583068080944205874835689061963170855835233378782734291065833308433921219433865634256929156589918604119153380402852794476015387839645225450683042658143516904304758613766964101945029229947907832612762589361752166573035769484295528118570799697952982291878195025816540066131607848100048386693367353479882686015202081874076968868475308835439098442442196252005234813982181369112212680554279404671911747039539450571969770283333230145989036157657713558685006428747841602576526076699384331477906057302959165627491341457726716283254819242662526793305653936934013698882098681824907226417837545815204571130311961445707015461005983165519835545725764811870576889231610090256316071296080794427537427956242100503990204922981545778378738276442232480330631614707112659961839883249814648395320471415025781246445641950892352544523458853759124903150609494228561660464948774434977760759753848539352511045843089431983914387602436179187729220135356487584516227165014084924685334669731792953828636131482004080187892494634164970234553212006797392261336889304690693119335671251353176478001164365901994473911164616470720011825057362116233093670253509774652488603727281573186709171602965346602526022045394449366554615639121184203368391000475732769699194349455679049398312686630268101365108332088241591998533953551786498370297349389455390257127773987377162699788444886393090753970884458466749936926876268428067246679735926701832766404513401867521184137559661659614817279649450110602287849284713110538348251548313281765689693545340374173832399406640208672635435212282446627148530279199380246703598189201272325999100859211554629400755653097164572489738884128228810235514164708158432478460549493559680077983068635172412966726655204757161926638045992319355035420809832777273004374934200615360660554037160634362461508924498196621721251740558101550181162006166083346113812020682081352241998683748929860330988421234207149176190423388828999103995921122170720356198537707587055888778686091599563971708438454133422381824259185798058438522627170414117359766174621422579484596800271882027715932979393113424481445850811201027552984481455701500923408228319250862847018210398356206355173559292636420740190937009047206045019199378345826436533290670765702209100657302090616749602682155005573388463498636727901825604695367784268908673412190113014068761275633636787379746208544709744816595103798913755408599187934432261273237678421835769358912819453068586054619256374500199457123896720084327393646616083429876332973196921567685820162482347959435260293823298250038344181882318151745900890548504852304982056712695248286833792332451210074255976547255493304506328952500595946476971591334916321996824916509143389835782320690545977475035099435533433738704145563291132096268025388185033480124882031351977725020347903264276333332741790608634946516346286119753552563494944646972159270534122795520648107331219713988418534328541177978698867403459562503845708125948266305569167733941727215564753707477819923550759910082414687974945289329736787581924073759530404771729915221331471568086318783916915785422116651498232827201786855091465763313647384269552297424496905754982178196194157833543457731508582535343026968968942793234489892033227931303311584415762672806385124981772173422325482718033508270594201650017252395775464431710458399649385792545155440929442732491756172601759503087958049381335514766924209927650739059106184885076557710722145829519037542743933268326325843168004563846509367950384289547469482118933220702458419014804870058162508449490237997666301305068325311745485434092442657068229470431765486558102617994324064983651916958203478748011381628380735554347846672895804966891367929697461780234816619427354636171204997026964089624072903341156675824452795061108317342047408475804038781197984310787820697084782775648120033869731991684559528128442833830731637820887499868183782768077473716956102008551595047061348983865071157694141138950532393251530823090144912898287428539113216593087055368642507665515226547120255080148964825036141261277946508197845895837019751077312029354645836730103144890714179925190939182621827111227403400135257893134840786767154774018863900035399214803715141628630532537698839543288717333487009955981694989361580036951731225219570000860758826618344258330096280369568765883929861150723824676487781401424422472415420753913513897870421529274629891626050636927610994722793604430135334867215630362140248025435419478869171928232665006787636931699519893704785857814582878268448849454770715047273440303996013920600868419931520539566622568222420535636421212025145011998218233511261115400148497103684154083537756933788336030362792460737603601973575614942895378338621609516103255466188539532439774290172903346767015155067899027964304628858071624223125838782348080006709202753012218452163644170986996446438671545489583719552254155811307877497929300589420455373516008809665025810968191974855959081151550516430282760053650659507197885690913629334507916761926494533731881458868198059600889932156094140330114856172410602050409041258257027495152596259053382025475370874568058232050726341877164927765620687801517856579130032182237882515566946333867156486337762050405412213618977224849314844904645800418891141409615803268516596378886497140836425330947074922523855924981328444996435027940197611007729002834173320515190557684723466480223098835627952372692558173949585414641722108451843819816595956378714774049194824534708736078745155909607987386490567128318209966267912289378919191312879893662233731821712430275265557827042573840386512279849229033008338202121056386267533755417323748629454159678092747529611805829891940808669269727656948272039805613417623334819578553855531531565385850563380774344278244123116749661812170153238944434377102325594467585924370765157489858094408812431222745246164513093922532535247693500492889897587787997200043641988861954904095667030748811484794804593275501400380829902561775485373671830068125953402027250950142575770981052724942690651184558027892348918708523819687541317684084503924138247131609293341468053685078656674437759606692533913205920766492666094330350475572719450575448635902039567256332377994628796685157820883372921788938501325538597880921189308947442418499999481466372146190836811580054395793576380099987950057600445508241279531185916045314101525711307412963252158459295891570472422736201100775835641753868350901790984161336117712087561984451582557627188560321546322024810746030413011103106489237363987603797642233925466196991301796573421893576480591367042891726328002793114105308103988510650664864087269745403422228633998924391940455991111045596983941474831020247137504949584469126430732694844809198770097957065007555233687247390806365887806719998829320748337730499367970400856745782555873768567194179575566583098992268751079775321067146562566946194271169157057102279493354826781109192610393186247606067117929464101334719250510796942000721051268475892797822606333763335446830449090484718873386529167755901142184834749679240278720187185389304784608842424500775371977142089833735837683967040011948730246142323429718777526834030336211042421004541579507427759413817720821584174269715053206740776444374678213086991175666401856245228025526104654051643741177908236893796998089875361584387739611862862140035737694911243675660570636259077795250823369381506136196345780747157114168861562925704618297596859907848765823532441922796448340992966952843708818813938060336710611316336052963855612008184218297685694787515776006797071099502909845288931176829146105985461389120985789597490475718582828711906915613109478056291364445928982986541211562567304523580305940910004643706050842628142474104329384011978562701973455612129638214995822088875229629431344834183781898438322946489374905306378495350547437865800114194617641924933668344225197626330943918399736878342531074266582992457057353014551081921789532983466473165771945699992666133382516704211795081403768204759283177908816951944928615567822682111504994231449852721646082918942584695387071357767473282023213013491289718744520919407042348289539738608924621845212244146991116178538138071323183899572989208413052226745681721075646974310024007200110733066080895495749574941401627208824519371073733657895272817147394995063782560405076471906995881970334367943741687068062996397794381461300271265530279824934976097459021729621617117720998293519935157961372413997978491125997759572467973037216717289404750390262582765876599798482842721482709397948539642758256022826994196642847603893399034063940221512599346292345642659457434810657387014695427614414285896645219781658550503199491574249622598012702725744119826499625623464965564161728014274294164965327735012059397406813438542568959631018917559546033099831372024351679946572299700080316070904747965517163032840620338149993843083304186754309180056220249981753095563425889042744054931604944373832868781891592154780526883551983289671865265921368512867150846162608997459691399999580967596836580272941357393929603324009232920059077796295898242741523386842455998833917164424605757977508335088910282469788262950074967731020306181613904356832596450579995780603624009391943550377850710609532493025030129191188663292939096236691164064024490842707849462563637300248309998839179534574881594177841042478159658039438826951175750273872465673301358449664317271626319551641149391767836044335891968197882848973586071743636714522912938639598745114432076832699095794610582928907057332162292117734838693487078619563027868254679213641554393373261506817847632399925764874985018033557335372184359108566444611646535696275767468539643989948385696610697278138495458011683489724036894356094376200568902290971260832721282561229744626193331747758012421580212168958314868918626022571540375898677333228590259577133369163590719831944063580822664565433683432234133597198974854398048896641148570418152070216673539230312451278078970197750291316296777394614777463647892133032287028607789707148518231614722194605530136540324225573062983209607883015015342867146059577491978204881843829244089593032365939735313763014280798311375758058118350519890064833736175146373909772747761352311213617218706819753775616367096592549309849935111810167099000758730350978643329883907862870022082928193336124885437045678279322505481039206489890206322013173527610271394260335761019377529959967896668022865770048995130679839646320347700236769553797448895796844710404530130605048092419685995499510911066609090519970734744830481560500616151611542881675376775881958974652494642776942844976009301976520573623719655807118546055454013885084249049751751246691013384453817992689818684268931168394183374028535280233222536471523165850523060394838747113475721185630676367655545882593169264539744838207010224098490621315918014618135577792059428041675075986219746370993824559607541112736555429733072550994735433656930103226494370156119001885616403711485035342491540772716918253373639657259669043362535047502562629709307785032060358794726901351157004616268227535850248892066856117525532904686707533588844990744864869761260222924132751937197021700352806743918702928841440516212967507159358742317371880102350357051132128549054232501984170171467651804890622119078849553920261963834056293839617405161443279444666935369359872536358564255510003710492334243737527006591703565533262281301269925241212062490519921561290601932780171462114813306966923799302649688913881042386050066851266063878173634181682891102258934811057308613132497467318844401034484588327848574797707924996851726784673744065165297927060762231228957137951323620762444932521557600259420684202524420323731484517248531914226452975787547204401136190913990211844733474642466023449250941301733138057034814892973541346053946903349605693944394092977100332362876127972195597683928257288144967136387219673717724917194775941926459780942302899314315562956462316767173021301689541958146778105996610036429177077793034394491199114662048585849109389812837565579363496065326568465746234535799100715026845778201632684227410331100554896952112650456538496111852492139533289552909654043532561268225350352549557029840210387299142146567970095550891094008738227442615036410298555203194064362236985361986366868924292688597311997926265137931629637533265166344944767598708979917401500420349697596417380588783508236450281611944723040880399670348842946753501218011431669068783889378072576340503816490051069222764079993832397345749286963806715444414587949515125312307323648226372750475345125695386902855298196889092426103868487826650223178968062604794524100944930822357700189209736011854598325646731403259973465952799206309032526546149592081025239666181802945645013187526713471758686204172153019676660988125177863931504214811067051855042433839298847873536868131172732810828542753352748231039736855922948444202844097864329981582724338142386927076518401481194368044712206891375090559692260582496227248968165264054191735680035912072986588320042118049356988608769855477140317911997780174724826845861913975406359082588594118423979590380077345516263258640617659530613417102356182211920182096985975912851020397791310649199482861521783808155147851395346045593169203413232975302329550687579626277417878084206895596785807715946019012820288570769807121940360088170380960119896273527781092079616218892748788801032128782383319735202621007419992883927738790903234724884687231026813072061968722620963874142516424572095099032257985121432905652629466788627424291939919675197187029134695558237580808776997988447500352280926645888352408607126535082969784805718121873284592853201069824764207989046758851596093973642676991630880139353313516671676219028230496724566831755623924923156469356009444686801595375906547178385074704270146624269270750269619334193215094353245946896471106572213553382296736711871624456973749635229649199828689818634859236807755951562905471989891861387148788606299137620765937109631077828824671021273238987847290093143545468308886964011781095218003395116800722825600423774546416995593321956717493772315345348977516773540794627042796070126986931024527769466642226910592542494374020751997635845785171518584693936450058540556324678312187060293282456071057613479351888142695949220416330413924994683800937188895270098594071356369288198387727422265708663598292956802137272922705879454818399244721733272377497608911115908179360242780051698268441316530006193346979804123410869253831210962101364989520027008901629120388588918296649107903601265468747055612732184196154626207926399997201062836262924101712245918277769463854854257977102139036536269112332526383878302344577542015295852727436392556465421348440494586423775008556297538580268783523012617186254933879344216374177364169600137156421871570153204676209237867377655285689762274188425449924369222730127987460496802937306819990706537565887186681743737032028476085630997831706376573871356077307821359216371514803316802173335781860893125425594228676108009997798585311282368049374805733934796174062794762124510850312240788257435970632874022674809450817301287104512592093762385709622132596794836930989676596007477059414062507651925513080766291947903652354569410268735587407243357148626552790980845937880549037135962021383294994975567028169610830785910200617162395175721361571182056345779153249640522175242168695239967922008275250004316177098179899003653331952836297401126541700952366094020891929529966410453021098507459099407720383483228059757580895878959344967426297163985785861650573867106140992278462993809515775716603145427473383779041062249499254413460673867028210112538926566990830694629359144228299032953805203014458237669629866723842548364841167651101624475995908335043488594211929281429473942307535486557902868763992536162870015872104790541037386956917060615712833649835664784513376923260494558038213967568065160615134652100830397124034307163048320487563088600570329422482549088429544025325973169066925045763416173479883768716124534538844842156611654297648595199592331641591055033187252033463701876578661943937689366344240052433779611698135606901760926466985686106212120255215057876537260028575763737995003529215289278976368343821849899769513954028108639361840644659786082608323446185478990897080277128316333693855700687980014894740133384932982273122441133960960064356094370203300314203769215316301701138944325451647442293706929288883327578532899932030696809981818847358624398926524104976373061209623353174387503872999722818205563183372644761405359915870205243101295504195863406029136657517149186422715036491596185267967558586216550157231525202023804829593010456898073944032170763404656748468826327953629444221342383797553484415912566600090916969090640041797423363476957625543738872030470369624990710559938105036907240892281213830423159401491307750538955480933327722628704034576142530657818246983426033795804882073364523268984593162371046941969195238640809238286582914096931369110353703572771640932051327936744301744917169252061759199806896482779246400788358979913095308146758577849536471010481648091825493470794714624479351268309916955483915830706760154485820539363770151578265920115962971374923193744679770863876033570769311745167418555743064120137812294914484166919479223248931200056775450554707790091553818462591539293722341075212177583398618209361503055918672770643969194810718922307450976601420619802985442533096439607962533716887599679171889187047473108900879827722319896372947376415077011202274073126108961432763446224952711568465318735864676539904507142575023513858829353707647004226829722284586027360174657565757447258776795420882819853089116233170903158190597686975831994264189806093066765095429106315270591615017640157223872777346660384796882196860636389446578771277989864559450711995304532610527432426507560486764512953010226583476227420378942967538105802474775138460360201935277051492437611650098239777719224136040470944675451473574957802901293881004240331313118482874223155633222326793858150520857685209203376235480811713160700267099899027294615255469992967755775326314943133195505152488029255261389775528862117834172346482008759489970491202509010893363738336546812300107545217819888793399586593811342128087945116801512995340976354864311304338312853224961355362631839215089518490636117202848391340908071342090654255508704653911351257309162368571772305877495743905593714656610432771102634676421280012367237539436801234252958840990126938903839083125213095193671775605878732604713847804123342598040759485191997591544748579259167934974978391470355233611985999690350178398179309234663917782666349802125235438547556584954648318104155211535012675443982956533250688529814225430446567945336398645754591856162485825188170044676948261454719166616420717248659155024917082487747307872328397830148385333026050614014962276425491665027676391884353404393077547194947075601778810152186197270090227308371909734437197408143267566416418813061168343894650178754069029163098398363410402940058402502819911107548778417750907905362805026536102197117257815938883585893983584682793497972795817886381443185337569600158548385858688322084540127672549703441372036085839958897786790662427392596980386869192813676612699412657767937639463845811014923804109878272948602737588520038718208499494177646909346872630875918031958697908927180986103469742327030993191591599908339740920532127787146976542944894538669421256326558086145333873290775032507911751081851645473334986052807762530654013067477529264298523021530978795250400347604013259427862717368025832565033824797260221881108739231259071129368887387842558677143748667850419973700720300967504649539261508720188978477607239073495616268026688622085754311949791516133646038658970228559443874887665566541710104030798271186856461255888440102090001741094135940999470972188674744678458453762775425043926174427673685003808029463559755706160713676519400103707448057367670299823701242210582926962453433852162958024704705085137658464787730383953604337524302329676995123454153709428496840872848460766110615124432358182207551281444137028595591085137289791450964149643118953870997156183972588375281800472172071399087099976912316359279498113024564943949018185301112972791466941650704968532534197301767963816469448844264870864085289313125460025937856714067444589476971528834907368692562644952525274521946084528316452485316301975711232151824488496638527017566202739847096242786662993630564168293546034478574712485130022094017148760769504852907179646257157877274559542999402088683525781482633409551014474394749550352479942776498643775749834210498421384536530342082425701302131456689461981670081521840169628917226781154374883473199946273953374719515259826298318952474016631064476219777665175214034802662127775320721278561804461676179032322330416065888880615339140609038791951611794236660303939907754279163817034321964074389685054497359072969090618014351926176073552530949787440245377833682598542017046045616567656343522040306067117331229363426731807972185776229384334257640402045479848089616079476021180528564445490823657400299954326009813476384517997079920719529377863862455886865138361964730769105535881177367621368799766226051907219398079895625720328142563173096853620961008419568092890485388428854338798854554869453177309897159219172308542853437067842211414781488628102619004559401855631055072391557700833272243290649987278690777619489920190300324417811338039369844124122030207843738246573191638588874297832619871136372530896655631431467369845497969317334780751435584809725813705967251465932019657973864580184161760814528101288228551332878122285165537369988020244228748397511763030616690765780139014589803854966814786058759408207975861395975684314105074885738914422017118382267439471645587518460597476140621247850436528065400241648474765875395234207694416044297231785387555359372446615942430519990376239741978644781676529701018363512460527450708526195305555003553457840528987140974932628908355864941863945108887802157968869274712814146482186977377206509057172195347420381983274969847425899147287466554052589114153523096099150279002973250451118477087496955605279342148045571813471373026796644117416996690649975091552401598931193145081188237348620781243337588693170699876500857913378447046996880244063947475940768969030925828532481657136177362518634377666328922655256413359461635338326881844491420466734854959410475673634444058149698761045592864022558809938284790131135977110791218402810338718673554830994831460834116050982105067996025966187421605245484302304579380229277797598264956343171183438941298632123545285811732439768925865935470634847779235155073603184297899310121170756996922831119690650769735897296363601195934380061418759645275192021349606073771328025073338033670764253773893331296208580906723379373071559923285619383432081318312176753760803734890233947011190939042868245481667403010048206841138231609721355597220874447822598192438153662984837512884388695149380244699868029271544797395762283210862672649665803612509201865287845754592960423483308322900325500170050545548509643571268776622263364518300178614974491494951308650824715974074444192816906732459389485956647647307360633356663417689544315632999336977602002042727282378315699979837155665429676152950068141497332648468747880730712012848745826049757585278790810212249714816092792032939545735912995446563342679746080694202785393261767575326094579560393122439313913119432081163878558560991682735530795748705023100827404037877617380183506234283798470156603365409774104254224321292110357505679446106937871826948750174307805694504926062811730796029509800327347082542284372079135455690571165923345082215365525116536173202823843165483638215143379031195942654520261307104639059564353020540566914944059732095259552090849093164530461320202277998434271320320908449323416634143720693843495045544734231317028233492750127374958073505377969473703787775015248219133403792696766314003830964884898526213933427613591718098692781724371047955605406022248727470983523811512404791560892486423570495632703559275550629299651720928656785373793708866745361273572082469827847584931818327573111019916857233838584151775192763383638741010450753679876038399526133703277622157659372129046740069877084514649895214754374471692855903334225938322682247596657638495556519792788551119945632857455775281584613561397936831726757834893284630453677049711505844149670547734234265033749691762999174045691381774071190016859022213263468258675771954293718671949964931516946888182459746595361386987412787225805868584103101910971458616099286536439496021880924763836792080881929971967506947806459746232259617702120243911721858944034848125789597694096734439095015570530109532738181947312621633689218445221909217333342871562837499399992371489227253330450378594463859901485634041664853494773875681059082016197395293424034281420709321636146026309367849579649583355115704710353230400149487409010046656564178606817876069019922848326557297671624687783174219006266676459916187818039140929858214480382417228578809989656589722317936775238569511983422789007026417744343818670772549662053603688716039811037870188150631042564651422351800039709111648853529301933395661219780068605592502554686421770525549812828258490321603251877647381843398667412862441868853981723329194900283253500461207979245576072875172330012131116949777819444396655428474687897699484389309503878179688427074798942009067145789479815710994028013408598691204318636116229500207654854189871336376466389334563480897931613088098674152852547787801915772767696071745590584518640069485854649045632734055539071248715911159972109229308220629736030863666790471038224018587031438518727282258719465546131866004987588957364179371750582841463998947039319192770870810752605994310649686286587858365861187982467983692772532992389583526454693427655738836907178286761789276416773151235182961502656180207966681078338691422269067543992159526316672369572405836231922371831118375390174153370562679506914074881661963136238524084517267088005010506452100611927326594272111654446738718824095647501657229465386230822593607913720874175799365508365462128092527345765395692818027661460864957578146909039536979007019554465294298440324977813651928629917312741885012530689220556869672763181855001627391850345095822741469738237836658628619412094118830565118301040222342740223613397950174150706256037892936179433724106837760495835701299217466751587350871411243211804091266291232022276185382659338956104437744462041826882405911427816862779836890293821118193520379472576305398278847039357250510838763039317817984120867606257870963275074878319399202625412630549509541239217981067792700918158581537763635929712419848318790707776794905582403653462709359307085015608268912553910744811385107955177356496979154257684531027886267183522152869840447129145804650240926184145720225362214890709659371352429620194420414344660535062946129901625615123569274741176749783204237798510852442102429238965748355502024759071410557796219597074167807483596490457429856356697023336027780225193200720954926362154856490322232966771552261790915753286642285603304705159446398753676008437771648928884591448366554398295588690511747817275494371260162934311178380933595919792730701439208792109319301692090909642136402041692004145553500240252110566503787412707832182775676417607072153123064043153876798291998020560348861567361601977886861981037722577805000081752699193348111578363863814190578674390865949951616896010500441751613002971505944775446717455418512239186626960179917486826197877644784841030279101578443727051079352062196246479003931232081034144494353717936299221700419547873480805529447596455054728905536945335226659038036723739560888026935067640772881862962724604662723746355384146377403757798937091897870679359194780307162031090806478803462627849314511578178511806476451268507943069175163326008117034973901886155487964475523063621977563505507216338870740108080631910863812397745098139014508769232014579456273990192438736840811770697073450290428125608078473263887856320424622559803172930084410094398230474714261659113773668516135195420774579908859848804729957747253316646039109550577851739667617996749098798332137561583421050118159637024620621934544439639783960894398031470721077766083875354170414233533129351552764226857047704376788159047148197511141993239281348426580203504309604164923043977327247812766506062554036046372219194823946945424601373468207948451649127442487706552716253313736712507286795808785742006230915107031560164619641469289817530870445523608718292767147715121453370270522271401172590779685822114669398223316616265816811949067768678337337369397476364285949865184935167836360167672096520834329830509810908826203891965296642828998906142918700739324654405899764673912053097522760449983807760250861524960810802456756700943943649854925780142608933564872549664843861062099574886214189935041092543256205462010119336901680378289222964649614221611718402909963585453012081418204347987617351440288446348992206305528115612799828702299170382181206012002692278796823733937908639830258967086221519905289348724612521340999235536896364594490573313813156344521709447407916937795507861612971914926639681699761458860496783598369851777604251204610632756692860851115037096085945294319550833773299837284971402121162256376178745274432258785600315867150976021890446913427598618143711621098034762534011572134919827033764279437497658059572865021596685377009711155997470032584172504075723158728980796623050257532563686660361903525935781726345001334953668373796575306877992717502849275333716771183979666991314346483694302820647560584183710078931712292838685788657920279301979789391997411044874913911708267565634971502400696616337373452492622071443151524052772643451738838465984098152676575156620747154459828908701502160955453306534153912989424076354037379914971760709361653487974617994462749960469996617063776009591804394880404102918898578398299924781978191574542316362233480840119826748778035726004422562296733752176098343041485039380582227834549971231354205787090250653641036788539036684958740564195940930294340747064198827583196251100993941386733530814674173978320555186294032521041148583737653684574686284730666270992222188927706544950012150060486250841468577580290198775637750968020697508403123845345510308650928821238342460306803100162394751572022892048986294851989420012223005029291671761614539155144454388294923109695802065241912014762181603183760670822161113387919443106304677370387687733601411190866360662160199612075701588077473990537701905274201788736699068793593268210388494710039177792359914876583905224955155970292785262412653354944876056242469305591917995662933200588683586009092876041562787455404602447636703438909562233975492408877075695136104888053892786930506815394498946828352267872631853462024650050956402590531319577035894872162069870514098149243608540098503041144900617202314173379964298155066529175601147673065108771356218016439315781037283971451974523452513437764970030881163740298829980273255542974958230507352925161089244503449666364831894691788222487693578301427681706836989373773462300264538418536494110028785538201540296920795253179157233914967677191254241787273646703978921236284602261887658785479521883503042629034616524813239679140805890272728210150611327436690195738727005981248268655859600039662334112561977262350815359124215299086133266310101019785636727997868282144336901463191673795493276172478768292479242494801162148295068024859534350875546564973094362799808085731675521555945831747849645548952853431986741891869868511370355994159075757134387471675330611921020555773095477934925105295850448496766515331289536324873416644223620251367385463457840988403375413901143954714505879549037967629016892813011434576036950727115071586417439601612947155594148734092985063268255482713005809588610919276428626862027693552326104188352111510846927964972671133505013512803584388759114975019122489640639944150844995629655727712728492247101405469427178132235104713475126224899854927271942308704213902733954329802237685778476842567567166204033917302381320432866152339976997166970555037893301217941890742999866927837440105046160485765092933370326582423689736445362238853583359301822406544642273134001287451917135398322329669919202906271002444578504157486056812212987975675802649473389580767790266147710271747744331871954958292673400466176205816095201974220440641297781758070768052027912620443294619624567075084694717891987791301541673373221191628905787881833033339132347087144972240827816715419393336618134673172421588337047395697648834121719428943192769700111941628203684995432661194772633743317298786650670106080410789373940840653716174119443562839584156432258741128377640069866647374721077335677354646673946817728901587066324120550540884955427099919418133642616019857924600899792115640391564993732837063839216251569703113843607659479990112797178448813670800357318773581825748555553804290196979757333305901233300823882488381550224735036432276693003309644063447428530950190814700652617813077392475228160601721010909865605818625682847896919493997625636227519904183618245026110422296745897285834683149741542564933460402535129997367472498452990789041673016637478668814926256236239111842948464639989810002708468174494423783086989831599764833446877538985440429636439329751543694851447732671373190268562908748197762161618182418214523803806484653120078869221015618211388827398927154668460358087230756382399888440580634194699565108959948501995463901896731056037144289221764945660531232678073381388773763828317399871131290061120393253794730574102508806018059999944488091483391895035797850236213723244762720746394306413847851622795210712327498881626890370896933922276965459323629965117936839114796616647717010627334579636006501594538271721441362858888903238827638056746666900726495190778518182966721619718921826032382396860427183083648735173825457287170032080941897866262820744157014337571077800106203633249850866991018494907824475150310820478644311846115206971690370578027181304019706464320212344826796172679251508114015684906236033348438970561780629923825798360745699842104026739045585630521103919681130910300673846902436738596031799799612217927266378970694717282878455465810110889432755137271997097205425044648023461065363279781068260438457119665561019879928769295750008417438902963980091826058441697668619886213240702129538638544904827325216504733781783436396726612108853058694418108945343951824309651769161764095298050533586552905250295056367307611248384089436539977911392090327317576702847084668173565739094899613525752345879032572855280729158767412092888556476774468281397619843001778627655250969520571892570058955626077458530284930615822072900713095242439277710483246377941321494315781924337502823702133503787162581278249995176525395551015173628415481061130280803456634164005376388538057185929890061312592900402189285650665687101141129925848355205714279876128754789705591877370428735889993700870922094550404854619264941737565988683872752001925354942718436294269002007248023741970586896716117225959046796988087234279951167545865454684978300849020098559828544803748217594997349034725188306977566835716721835180581616914741447336575492829963660447230767101672357839203444514648665917613710486314285237780214063042505489132972836916137948381280127607043998129496468104344399831275006143390014764713442046882965518624111962487904754628389266491617313804290120845773834368305511700849572508933497198813814593220830899254572883901178888664427535872169392536979934337553730975273800437264437220053289953860520852914672005734570585705450021248657680621244417126250825976468135360304016377052966926274500509552772202234435581881358729232631500569136456315249593321322048076588490848533465376755067779295191955053811872603029106124248856828632215689327278105749110350314552120514882141396224804791002809608741124142237861443201737175798026969358764584898128251261042115585094743972747485607296189770089174048862548012041172348661886982453297525944465617303729739068120508424447735676284620869764175451020465616462313603064383396698355069870831832683731637758530108543181761243869386326239585837921051141151708332812155329346114207511793288488244480694840413854674824473666495786805822707464213767764244393312521207702736528113839568797856607503289965720308291120060903540858379872693961792505922737357198132306186769703308624180693627763152747355971184783103933953310020488924638939036312448396889207502485434503569391508668040274650678799975990780793259422224915654241260910978425971095957859071858398724157608350673214404207153109602697921749901518703139802670275638060436712609179765533890776466752340469942253982252477733441629291478868034134687479633647654808456927221508993287054345494704819031238993919107332414681381136373561168152654769618152568277324770620714317331746207416337074617731145055518401799917484875799643432671539781035377925917205435228915309288650281252325227445532709294798514590830527982666174025741180683089401649063527535404854116264951224927195492381544657093175612181656872965341593223908886716200890381466530054334187546226857036368864049316649090697055629965693500188761448571940337503507497872076383763348530965628044985568942342260588516342865503225067281214648443968411711347767339855642437277290198201361958835754417060111079681419622089738747222718552555713914882962100331948481592695369135588567753881192180776787053242994064667205189879715504310810930598895909096753282371350068164680420262029021229821930929451513510032007879938270584883573152835490446628611172192420419788322563353019917289794092352762857671142629056328230562207599182777251713138017125767457452599926062106155743403052406573960800458147055013234289858657182851574016367377680136309568222987241854691482938179307517424578382232003675293668314851612778119098016071195909231229209466880668200828327129158296736191437806141603342254213814792268521175039965969320543884140224083127950288684080213015938343155420313262116881165328952856724203200890306269416062098446623644272765417732966937614979569634664761422226886432068276892852248734032174106411034661118479732642601641293897272214409908418389827019101302887587576306720832961570131940487688051876635912504363289842078980668526543134662776982923716512819726947369034662453964139340114504894909562193283596940055155418281510770271644869699056420307689122578654421604961026406137669028746162312501331115571625473562895467775280300832042886310327109951412893568059857093075981388964695981290295942637914682603107464264915720026585113781972376167018247102304145041604210149090779947238054687072922550653322785038310110457726871376995465274438021840870471982140361369642285950721291987183594496457440748890974475126401852130962079919603934954829831087922043295255659996222159575151221878313487264438421053721064307831702112971407945904164653352408982265110132163365983589708950281052599894908928393722908233421328885019158841188771660658942168665371519209865488389046269820705735590025133815317020080269598186618799600157063050655324297949755855097481007890789437452093449369304759221395285820051915534288219402092685389368725396561367980409424021223378602986125574484589965205333168591535258254247470584736145987788644398825716156373552686773053079491698679565075180060144286126759920264133942146606755041829383717342748684010953404530101173078775162669708185381513642289176915520536792307581427268031678169832310977893341470480086255526830196489831115796749824020091666187027170157860237573522383669811142183505980209798429749726791187201569357383518404935538922239915601283320790206176375507682642746070779083339555931565100741453103811461498674187456595827247069545844852516186979243404128164956830857067540756006487165243800370696235343739741549062802360313951135755854268294136423711638267675818577653668514050132187225388013887527071181638832397506054801397443866299929514293492268093825225318317582891939944618058724578993229393942668802667850039900962729803534541571339427324413234332757640332736087027171097290424552539658773053454092099524998556017436233881852154529791599036660397494923411376339131262514219817966734264384108998769995342054709725805536704508799877333673111712054570095407592684749332755018283277309543310463252068022347547523979093774477870095811563014077463130032039519736218083889111239549701912561355493784736559468891079214127434556254040818449261808197379854516046381537251636229410646133245718434574207716133976808068517516649752233969058722109485228706050624031252485359170661473570025696597579779786575834758580146108148790632569815640900826789617590321884156601481397111164680140168007220463999175798407944824162378633143980412309955384980995311884164466205221486708986433046445522371449202221037839038060722122357299517140087846634040918019049222008872007916765070343289567532316091071526482792776826072788406847199151878486476369004983758052522780279250597561719615644135858381991461633492227877033123472309459801872906230684010991436669391614187758462843575528068284799269424908575009947099802756154051891417045982339594914375808362957920652261597762357592207521388661304883139644768009790964474704422570950289426156862014768843507183690343213889798882703056955834324740642563287103563769668052878081089542127354459335822552155362003664574546239237025450782455707681231109710031391848403772222708819988125769353994184977201836269355001381816540041010480474396583977606314540123739718134308446601610782896198126785438698683317198641263389517142413154062182064828249630768891669422783990365075527833715192509227922612753024462517747522205342285995406562693985703599109657671007754155198367873392056776461447600679710567203186825100914864584945710836914024850635980781462372771534184775251837143596486817043224551059899560017015484940115654783824266994842666964632395326410737948868536848684319802016558046664800197753722883383199793396804081130365949743382580824734153454878934409040547606333126102683040317507627185257234822768598279185462674434702667126348790999041927702623308520058004733020491591516022238238346073499294572893907761745442663214942673629850054391116351799742204344802550711047406183495176833472770873201799293898319092999225744504261199773215407680204341227049817556992339209677646087279962931075219643230739866992538270729008253284636964211762971104414870883622144838633236653283209732908712358790203914487182923004772014490931937705343435286006255668021892143528743473133914068282533665967678999628495644970664230695271537518219587228965204493626237314053044318117042921921774417363759224450829158437484060460086391093554898362460319352426806719445754030925911943241865663900993361512966513504262677164245439044986668439864799426968583222292679853981238642983262680508494142598712940683355712063779356738653553381114552871578400956778311723398052760459189295573473881628979183785796449434150991464145187103945513100164999559061009214437461665765588839700781753172306421027131283793987004118361688771158564917458960186324765152932898739282255338798532006870748586506377116676697684576517760020130548373478489099037312761400071579945153430583955274348940519509970813610020979300774723110121224833663226347938353888511194224838045717281003920817342922910373204621308321314241712416169902233355291037971032301950732747178912384928003646276955962534617631195551287938482870019737393504685377523527855633488592608835375184874800164927158790860994329405130070084492746116672767477649020553459515257018022191325823993024022128654582581886361754545523088982537717956745384033313366189701328853620770367665590464644694458145854981577386464055495732456444849177075691334352202062388614377905014955752592755237576919065344424077277867754794110285197246848218621126967339801384434142571155335809923163213001559908865197604715785454143243097296590080422444913648775064175399822320561289069952542610363727969570830281108704371822759733791210926561427862247830488744221482847416142271606651271336846672030378718393772715739448503449730403781341849007101609512671257444119990711378770666905943449645531194411681493624849268976746167416600580433297413504713071329677086995833470001997667408744581928098946238070707635331921947507534344346296738101196246856400994699986166296880309701538079372802535875699271947029135220478622396831695952842267475334417311855897115269275370123739618944734641835282398287507678398675603026724652014103161809038507647020805523283292381990088935684534713679072088226574343622848693655903214238004039183463967038082278629453295902339280185618443188474661099940804744095043438899944918144374504779363555459647462519576448517496483673044097221698637538922219433691676964010962001927206185478616723917962202020252738809177474055563917066281256774792498347902967556105328905707013595181874844318868047682984612150070388234607980526493058451239445496963036419521457574144429632920927610291603358433000790154223555178268607481426645224174530400891671023022344306987342995591182310337438527812047962687953805857353665312832189864177094609058420988897144259703497747933677915860647511026210415213872826961906812201148720764828958033094716642778354358667675714615993637833838261186663922514658800315600953581552546733905017958623679496582448119030885041508501652064376330299511541785673080495912163529982542273617122970617213958765301439878713502976030937737444730384561195235671322059954533745255370999503705583993543582316428397311847587955158261955979115842186266359931017312373311781875075529516841050674061256611703038965525660665084148400002393208135262119867712051488506662167215482634641481377902282802763611671727555060082486891379715943077215710866821198527658945012636215130661278189390124930133522654378633010882244255507575620572365006295514070120451926382662861812121795551725329939487055108752277846903563073765950064157551554499709279898246493184092325906297080749898940599875977930266698826164754893746708055393568034349688747119935035365410807694072907432516725983962379087513023053046436216155532438795650473455985322506962546893655663427257337594764948191331101745641265021297714347691558120659576809253535857944917195300829286505644006874277837255898773701079110638732082945528046588184952390182418476821993982684573218947607839774682758536255122354092684134472321045384937141555131313049670989440232629536818029425416023232770186665801740581398892243550187330676992387048409393544462764846220186567187738453832225183295053530702976627475427627713407056842442995475714708703813886144920030153014645853110539908306476418058728136769299525493995021689891487913985606543603531507981886866234775816889137187120555386876184677404725410559363223740079427859893237772675221282797332397916044521402788062135518107882787846266623505162928537705748535565869618263852433412214224784078950155205707814336545302868471855993676588573609704836489614618034164736167821059483496484892265171595199683140010790445822253500552014536306945040077757679142317261838467141635343005289537671979343276456430327916756125795606931984386405889040600814096954074950196054787442229253622060487893616682721422848131667976573731893117977168966751792814618535379486277911776242387128311931978144121326138476780027723607213148362442681971111040231295330621396490142113307688924946054955179312627493488757687546331176464722441530099553655723976239105240070185893931973745555214092130465700199668540460874501060179658122043328238858717500507502726090423711458998473980326463129001121075269755232055660764409333810724576754296851522075746497381272040904352046640930863814724658872812100559941129090719799825326191617289874822265311256346077252760588347296955805850748439169122078907628678999575337786339385966347771756811265046786073164636341539023915903913649073489077430078207874964844543407325556882498223989874293170418623341525382724112649223377963777463670772665502629310488790428639394209135781728404567116994288452551262742100841339291285486016341041411855264412839345747047778002053149831766529239349262929294577666054020659455861956351178435364311010948207321042736062469289628653768995908413584458160160776011476143465124289747744883173993297658437761490444327797126362776405173876358930800709652003501193368465808138902287719260151727430083488921082314862593211453492336306237046331000842378663447663921743990449833407561908699293435737690095785967601173877078978635855585826653452709586567069967718278578302549999887454753245090029431581368691808919077182957707848832496696687241231547980134963328064214029771647262292273658519798033889333345874259520138652570802897745589204850551592699890070355563437041895646331426137050035964552423942732131113416907246075760637068784700700697301467088063204303704797742416084064553016798713094750529692085582637930319222949248631201011712713857222321675793362059063192519483681574288197736674979884122933323354836814324128132333609249627919089343321923054284759954432830700683266551314714725595064302732262120512403415843276592299827916136580984114093683749645471744964817937857919984311634521435602720957351203393216475425723721440700120878704237285985485959657770898999316392004416433681327850536651896586182359130412496676011051710386747495160362152664210079096281953407464115653379286159132113133412654624026974514443841465523441659244778448490818542219593930002741163892311624873974815604689343227938367970121058266847083025756814503215025662020365944987525004027611699169758106348581017217421128609517899522424378651733787525705992443472799862602527968668340262809762168564536894134506798159251925321315589957425064944914601576422250609376645600304389373779386301980918918449058303024233579047371256770623983198632946724319687212908654280229280281853555500689390628713587233975049421609680769178257963237714996574621088767722940458731331064346694044765734594950233557976366329601544898024691309322505311138797878240341318085985305368503498303487848439398233891513841466279910990904214237707469158888078592403947981526733228350289357357832541465477105421470472789574968608015169457703622733235043004803493337113256575611079737657407310443118939944488266553970271138089065041553891736701695179053719527542847081407977610264291083161609456184998883267977903027921415543168074312477310904282161579279462140702668767577695677881710164479149431072014637238409790648143500662236012298244124831327438327538883906357695808978470666494605093143724700715054191410872702202253361112779979956980254427034869187316592583761945322830482816191710417568824661118369113111404689445188162972025740813177770976092609945173304688824315265414015881626571027913254015595975255967058012788944687385999633198589097543488007200412311704526446532617851104115503296904710634695690450902235529967322293155678424412106739110438139863593191478570169452788958435612075119456550249427031917848284849010132630162288385609919532324979456801043161714976332212178576190995687581513111584989318259568035823036703421111148622878248844806618195592513174618178205361011918692249700215608823465942379331964821550428511384319791858246018040980721080361614103958645262063012085688843298019103607985063915147607184734497980916355768029351621958539064299635310900571785667472997096617561151871777026529584574276165855537144338456521381136708052690558419281973848425338870207577649970322439072570390162622585244591341166742626507265867371918256842184641746872682505861519049275580212204450080998091969524819052907673598256037839924113429262410142255417735138266023432130432493761596709297381418344329454207783051574446014580408314376938529489299915454545440148674471293865841657481274406128930899328672839736248479573785329484769913242576867010640814023175081507688787081750190188301074713953655232525558718709889545027619757440266904772055317201457906905980566961465212640935135222953094172916138607757375863583265826025172435510384006725126686732477029188185940256692404154672794555208120613380492699645899627349249482492154866118414688303461440262698313867436954110625610758708106000760425918598241111008423902957739460913128759927274867231277163674139927582585893176185575133042311409790011866420609291557536455766462166147655516404802299099099993275839883264620230133500498978594193983141181373387661882312420785647061123844384529604620894430667765380256683174214067108544615335872510868889100702055652487846927533161380949153954386281536163584960501551178657838601354991515853646292816499458713656989635417128044361737019510269605110146881644226707928955697342552862922542327419400505322234092714088086739202658431259245976963556670137835965774281754923778735069706212847192839008092685384198604369758606629273860720017505372591747522327882982962779953278666359241127935274498068398286586847990630161824469501488220996502139945417257641050662971314087400332006173281903600266642430658069200721167104309200446070147877446774364106778194469509317798961922637277120410284553880152675477996181109427439185157700442363426545111132669081451367872117092996509057645696127864534828979496854570322782253656861028866924443298349275922185022078664438354790778121155051781756958066887942331190563013898619766630380974748167275293272962758845273612875494625933450884501084198998299604543862072622089962558909898478846216252894926893573130518243493469182241809286058270595296731521326342961351256798774717265774778951678704935714880115015935828731833994007609571686496112355978196723510190755011296777103040778495546757515888839951392361913470247552406880093978255394779902287771669405742303953991648830792323542792218378098158086071108170092098379679073696254248681823122507923733384778974656598394338929029947494940488447600189191630324105695741040391941913650903537588804934623287736798848954245345746404832493248232099232366886025721572611472786152483141510142108081587994885437250930751187140687972123028814661085592217785061575191743328495065649324985230128038320776824408589210165102054276335550231503470727080274229517553227383826458348439226727460316014945807866558185304103988600031573651130082309015837856355016090650919356052510049580451564196717997652209806986685916958963523373666716927763386530397301852257166528388444615380550686779855212143813301154578889207096538689013011750786622833387162463583608717420943579050152404091879713183738265174304685418941088652116923665976931893945715870731578433542969778145889363932275076333967897763127814472902992555104650770316151152813852711164706906559674198002580953441549218427071627277270200532976896630781692405316170768157100520536142468059878255912625885153560528933672932752229409005065575697499889403394628046491114178981328722503498052420914031321226484571781666142866712487640922278956274135730711522228696470022694101810808841662044184916415289538086139876185067029825847692869866414387547083641717507639121705308521204257218385698011924535772875362164812610692364334251671847076314507442961121002592670567725521814269746592818295794085926402332710122845629874301665837715229464210039040150947172816057614825883207505088678806718207013926992741380772296538217217087651571397585646482504508418532973136311250383169426001635362418731900927913903401878674221420285153476267394639677446659970128982493660296094604527964128320880623307892537514595332816148349140266358244292250393117596203514795173680570948987064411273558684555666487518997969827274053556572561666416011707388807318111861259136649994205305399935159167776208496051632931797847902218497980066865182920362556041376245407373686206575075624756680817739141066702523280549757547367559514998037596089349739459429961908327252178933167693662934896348162017319026509188719686660400716482651892852189936156286727530764371686536718512660471570247997840053392778884832649452850567273688079674448404132115750857699701125519359251295219194561804664673833213634396559132036459008760041877356351546843592584303073770941712917990599347435506531073579158384513376641709643677747619644948291679987173756306505962245941617669964811790713364914246724521696101163988262601977085338332366493298093130891185375504998702108083720392375608908946074626942388254669743383382531651746946705472192322581155463316697583121794277580790855323878491930926064936247518823209712671798566840308186775301673876994101711544581460915334697537321171178073132800774628847033036037101263844428423227949116707994224136286231055221422005100127935431114235214520868785347990910763075464773963080436564416714007678417433356834124434894985904362054540680110461078434853010642428045184377331376029097544435642826909285951941591686880199878601945513179255063478791740378339307042972005073263420415617805564781001062636812917932501291301067933871940107957517992514708316787902040020686816602794417303257728405793025180635437220900412211225001461459755055689804270863852430580766954165500411552596442736105169741974893296473848608445730210309721109444143003799032342382638550228343206832724644911930798431613393313036187961798339759326277247904632374368219212393770869926219506509192222563214026338266834044643639205565752023292143451888544518449983942640764989694881337186688674677033466728529679180274715274143843983798547958784320538875946464242888932306088855423664671029578825950429405930090207138781540734109732525620965928903641332514235391724297224804917993674736964868798238654868153827457600028054973363959029591898327325323630985484327573099838658719182777603258307970295142327615586062776969626954536307470869964229248443109140104807250559059422215897574025258788998188491081858827161382082583264106268497257949221859225528866363228508494417219135016490747403732738066760026347090093200244552905331406873923798063479760886340136596513640384785672776714156164777045287499776877067248343096842299365317867919002493465240411241213778681793095199685720504586323650133660746066458083349090915423171109305888415506044063951734673727329137252419349956955977985228088534278454387175441901040161953901798338059005623417228827922132627552482078371345757324654617980415119170454358347697002856754070379551657901892737820578140451050492356261036817131502191862589245648143968019491134978680968248885342199300512870637169997226508634293106368067334712209021300152009596789517405318113345241695895330008106654214914473356058623314875502871725585575597939845776099493064373558822528956788130526664943127190251546795162397277609990252662587064318300475048048936362141264646673317382154238525950242625355957317981930452438858120031078849745603435403764886798066448287249755487398039162130408494336363583225408245662628807397861202396988738179079613563719516188526743108895502163342856457480244409193280562956659825114009928805800138884880938843622693149685170841092215446054863461897357749165976489809099558670943599728043949406271650716619726523112707503025547669390037300255811063541065251307987970255503967829933245624590528434654965004447120516462015246760203210285224945846559863739888840030830300996821380649135550259509921798511668803067904530796819546269405878162419530153909771187137917959202451591361664343722856558470229245925397264242798150595332214743356599537359190060497611594345599159455654078911154351589276183833564062764319626161201570241902651030030684758103057046794514241221565491908730436070173821000954794041997897357799793851908080579090525414943238947133659043762815557117864570501540098375091081244290768888430858829860268135394337653528552370934940790446485067376236936574232379198609915972369232805469939974016891077743452420921817221517559589652661884964676709910646606993337346218167752055912615550325175385939678894528889480124807570032552888225728688709675665738632027993767844288504864969053877257533513453368263737621861470932978510325501907871965164138392238188907987582303125959995612976555763512166511076907773754840587437052793999021576578707140114074576423005768909443060131978696003571653189932202560651914612654009070532594452682595295648546829676772656155954517901522986277255809166914043017197335652634989516955825096045330658801334147966481348055995662446173867449503062579996629902745329075734712590560927981609489989343890222577210353293570630609429278755991831620331985127233691593761464141393142694839682961720781388341997489123058085341394428828530295304118798063795745016005356695291777329201232671143681159246109964626669311069260305823086296265571783772385418564612393457138426897425923303015191987657902240013516565731297676929403324461468120539073574044742298258761263095778736409974540564108998846787235376944131047976071892590788461563823369737660639632729627329640166196192002745959568982684229281501029076597513016865518105263767888201558556621595273031474450610165439331535381277152650828518178866248805509405437283471735339329026945622577714981404057946427154194950561788274853032625144831453651684425214879363612219946842989786144982518736646057870330878958518629902938521802244798285677289907024938113719426713468640776085147649156238648992110872526406832285921534635769869362511090068105977559581575597772055171388371380047765220810110921906042648041764277381359785438727750534237621386200026679762631437968599563736067819353007589656670430083291605875060712787906234237466712634909941799669478894207515939779422661278517338080546789094916505693999890795964011478560855098520390834139678235281308965407346140574512204096765069596595952272126605491464077815286291299080663022939853262105200932816569182927362307666025496927787482968945260427155788110334867734007528254108697097552461204292774561377459988798926022354920490749287361269320020913841396486187976057132214331173547975954893169816639901013850480026838423801058396584160637556815146600022724929538076763336747473118257881807547036791030606406174381683705710570184140010504165394742274988629563087635191426635608324104990334977463526761371091050824335925213641126747006333490091357425553194635843359779057153028161050993632340332564267056832214105426277268307502671092846279594142896374165826002563303743865092439660536806991227143107827932985087032368448735399324970325957517755606642933911233008764977856491096115726023836260457804396809824568333257771457167707443037169493364111896171191054567051487877332845827054317998376713298913296076200963105707804125145807997002340038457472835339534401698983855054544890668080168295153273286883613053114395598130215614854346854905673406452805464788375895034123012947785378041424592533531003453344252927635828598353405192264615272973357780963485954634091384525742280879226897214120923393679541326962915840038927755063798695198888250592143568811950167916861456923497634347867739507181714555185173959205449581689193176672217732373315402199432348870681013418878555857284180152725649954144627120922184739671056359905412195993094692694183167204065223109913338331106448223565242099712595729788237928231430103234236082176606729796338944124632272287778245763496019369583285288971032115366522143856194669109753069711153372666092413546089399263640029734144140611889226424884474749883636106893984525891779666421136324124236207594860808617509359502849792773662031697941568953095848144945943238756129827113378547775522315602138628658971452493308296912563609465975773183479608884664142178370039179363413594293749959548209460271723725305349684372707079381595265395526613455119460224690053166353976650491514216637975125231780043613390537311760645385785981949790724133886474005722284989757412608913365879602746084212911312933884054688933736353746881460964142054368748573723906827097641325004417020314169717940319398035739975264021839744241844641829060047670443748698851113539962580544349835609054296345293063494238235137053880459097660641830771910238418701531925391503807594537393805494674110772375004148408003020325966486746137484398608588781864726742280756944681451548466716180821421515921877523093468412630878906979284407315344441840100635190881915817612396128765334522482296650246580501342291193601265546740612920442284465926667364493250258306501877068330454567069747793019711435540512829104777850386171231005377605856230006330568850231173774375483867053567075698363728982440584603089868074248213866934079820391400489504957663335915629268133434745567552124036691925731986181622552742570802686986830655536404422422956837471627620183293744685349223613346341399023280049060677449720298867108126220109653517358037485239646864775804021111413818069827760097156435553010429306117702771439282673043236493718346347533170022431429361076868943666854271853974674344838719515429157656300870115966370280425662925776627485748712015372111633813302986095280356022992403180817188702987443311585461910064443657333348157451885823331076689305231733716699107916616205130131977862604108322182896162512035480798022957524445538887824911504387394556353982515115900536085969674074144706877718667947353606199760597362204673649891091957834332748143243538777566193393891644947359752003231922168299210729528230406434953338771669428430876144959489811134101093316704717380816106488153301734489675578998654425562274456517095890762574884356328162583095768966546243390090635064104434672129539012310704806085489972445349341427670994161315596532177800858470796970056471173275960691481296330376407454158009366754757968456755823881054806082003215212433960692813905950759061408850549669439869466803537215572906580567121381860647221947740445753556592583950467568959063722821626241786984867829054840370355175383785127598251907715918503071216620260177302518236936102460518347792864916934061318533083353063021641988661234083556289214654304202409654926163943976199953771884863294984916734280465909464748105787883859504563127713780433632930084275463837819878599078640898679732358051695941942258871177640678739466196870584754476526130162117475527936360200183411319228433450851079226340266951045702372198595029766450153778439201503841253132307237625494963234783136590981719468302188172077783729012900551705692596533825723353167893227192472862034387904891218160237686434242514357074895936278065967411025102880313356270354439832083323972180099161488191633398475715247707536182245333299567495870858279995474531410971754255909550165072701385729787159423270832895030288223441154489311546139885493021322401500592712045559717651468729900255973679906803669081883530053526015431580754904956219616406627261625794075871508855707522265993750818713203754739347347154639293994937718595882968675805421181661419841112446543673587187780815407100663595294214247456998957155035215153947151858504639808679420839302629529931698739870842048779777306689743855643194593279095938279161522064920462444360253475261270938810982225925365028851311080414276862612584007571022532925912064972173710589268664458190602663944150978753889170964545157311317237590881788864052594023456561243729310378715058938873665237533669141586232363023699079521068456214388628577641384319899403276084630934396822360747309091502477456530931198323728683554528088142309800843003158569494459687814373854829943319210058154651834062496467619559742423981352191244963973094775228620370916601244255275095466788347650303894078729007187330469430204054993214883907078889748485666965731815258334783284118853410824262650536208159725625487632156769327756575764370896054134109908780430351969110602010933474985793397048587323687506045260962249324029820522003485342505740755102214387120766699977279086617143414070864936998035036719868261409892969868249066484221216675538292382676822351564310222314171716843182461060899104697730350497057468509797473419499096768681390135675204029430690223010797165984308406744708378633218778258640497544062938527795060571986265689624137594928196962674639268911895743496542028884350702264903305538907185998516073393404943843113696825374748946975618237921404607996635768653568616048920997881540134736600280007203208444787756124210923314409659935663179810158883967017587270814435171110980965908048052941089122415794064092660966323523240203185276808683255593800262460460946556879683923949531011385195053681990733606076088457987804990275174819268047186706232213976991913268295463569869498710828979040532361710666497409075534158124699679470812283608218552831952223215093932815239970262605925470774867979886707580496133583326132038944572608300719373416266570699396777297650125425046959758291990903941664292092899685489877455696665228475849091986116487417982423697127540277075893642638572948102668424402500560897372810129134658753762030570400024131856502514185999210765560734846465389372672492149134222213178868620527753523870641270623513204809978921103626489922541065160941159990384831205383115742005965821475129292590846827108517583694066519783058052534526571484904617064381719680456380261807767941953354720817884395128895785053698538405702736825333053410515292740411317441974595562886035238875213500808210405989545222740196136768245541932360734662777625178044488270180351810090281118682375479831728691958944907565040374662004707862439900268376973428301765995665303085813816762943572512918349301763779300426540744535723492751161348304320396955718590888125344856316007665176207536317786841483776707124335116706010530467193222929537570661761117616052285595806644426959763252632093902341141452116633834498158473586171865096155487129245120655290805394144955482570572527991624186765300107442709442490173641178633414500384778476626987757274884194383732234023637126902826555451537387244817384042871924500833993919906975853096886870851310706474018333753447504951421992967283199675898713819341736647503919762802884208924408943194498378718895890415716422476245022444448722551090369523708385351337127952764568512415574657628639828002519646719355454437160919023828943395409872137246820235339277878007310191990609154841974986187085852115991615276891666064861123561130994713069407346882766041375034056422781219482226008737442494468718969170635408835640682652701912277574580578689502287146764735233689958620228945942314754357371279739604551964207673792489250146059763913611281858226962880467699853499353766077296090856827650433615911493950490900702136819629326867279720536211613518958908760053695344026105161347074190732633029429427114935689136483492231322989991436260638237911124840312949237275936380638341706397625658182915558080238764772066369890901355834982486172320418499521973455031460595060528745570439217569825171355977804961336265529897519518718766543656546259040194748719480341205139194125632381872211655121931772315031345027732860824175224056600511742940985734121864234397714138094687205131528418629816385065584459424810871330236580178687468568250512315753218274822602929203200714836355433029861502708536655593965905794892740808105063159671987441339909074748520750771926089637779376285740778965616311374518437342150271443015296577307805689700452508640638730050246801734044280453066780674377881729990479207639510247636609010771004359695786549267691246580166084410509985780843638153759483384373497485339617704879340695326629168922348387769304640444606749859844532198714093755541838059965332967093239257723280212307846785761314682224495217433943744779800418411838177806902255253421883454155598982267145065178457933753879477431667868363648793043534600398082536678853621454817134339780345198158521938034736718221115003214017204742820497718734677023070776452322350407652374095666152047113913902679931688700551749775739192101992459134790899702404409101123891406296065719299103703019491739495961992572548736016900568522349741523150734432919172861472077323558768269616689504964109186187463936413675246954381081151648352356725175671726519726849415687661062357822566703927676161260695996795015229434419013843800996030038937607297654138842862886866510116307099407704553089727534821287216626205619648940384379364040078337781464355389055191582341992659979337099529814056410426448533557323263953872325296651972735538396932270544882182204556317995107012933437169990736866695610983306589592274894615911329036236901298118253768275848087112655259263642049848988637897880609946054092378667444599853595852773331005858592703149007715999345560342834711520042366854424985167833940149543691977634657091689830449332930753653967650460940292902882732521519007817625551692314288438889978278987019931086276690621650397629824183143486199678297595852930267461553443080780880053172547233954523370215541711294705146392251398637939207791414334313378584848978248391532457634905857804804739098577501848433672449598766934034639484357955404808894316382596549671122480805924370976972075908565254956942820714399141006103874447654253479112182411951779457314388747537064428049768900146795841489137310912305526094925224052976404295333674542705728165822277774723873040570802496638482092534369902979088730625560227777615203655217214026153977355359082847861277001298202346019577911110511363454319334573368254520773676626972468281493362450711497456590414554823380829790458784044702651286793325464473585409315948030697508981919541372103268014675386450745754266654580366871655590531383283263267187005930845638934073744549595755703522419015821790969235030482507257715421940726949546459907419506371314508451147632797732647779506497990748518503657832821701076147941441088738268203869524969636936614107690969164509395762307118519147063200980002189379943950550786298153629171306890123294153055488249480695259166739845700335299996216337735027293456402429663811005082428921866752906580509415794772388731551816853534230858985361211816515902741223992712318808967003713477086043565326031836510209259643392999684737803011363384350726629639112688543895845287343732089513979710475794600364900255774787421195417172387309911338365935650914375683699702141874487413939004867735397870002022549302929839970440984691560455204945387672254327254818968352378853088335376391667647447486361407807380526590994828034656259339698997213614462713396015770725355583426677653733420447621093009138232697465169731924222475830333605871433293071767579787261578306306035356069952994288679219677230285916255900228233416387025493648646640483949158396577891571110934730656284835538266029754848576754469502872579695297125201688355682474365586746361427343156681580062015291314944380339251192874280296552711408975016389800976435274103037056177807635783155489891933349428554797822639850624485547611946859924757460817174103609332670421296862165622566033394625556482514872945270555450978428893555543740249279627216080363511683060446643582323052588344811466196182693066574796307050054527997762966997558778489274920321850142717345064051399458282339089449192157599924546765783656730972792720134749493419904573865805316409167359385845121325323376277631137321160389609108526371484699119300615520400800313457977653034519645624065690019613970822794564081069858540244731341351637341553002784353845761379259350986623019126196709316153902999448682476059694161292060468778223042588128742505015934632929557625822340647336905560537457238995175235278969473832806817342712373893334531104220589029425877103910889774252514789763946492613313164237768906656897375984555802303814835064076953857703245784353150614730398997830344476663779946522018704703960765617324453244625772835440213633642352541265911534324883587780904901812132370051897976171959138410750621407567099586087576946161526881437683403935716169303600975274556591406197216928891057913766924784273344800112474673864454317507060408333303403425352171140583555665449774590098743138714368090442081404076509877884578056657900908938096669431335020406633944675972785294415752585375455651770151170890714878573843728449891747254854633735219173758182648657725875813878055290855852859134326003541056043568468211106911482748842287923418065109775967342112600536764317445476667210523131895985562395766596298973518669071790337091455241666756219371159842955809816031137077331390083709325321781800090239375613081198918266305240309152357039832897058968787053311354440364983982574695926917881130476782004803687729225477691204661172567968903669873246513838153910390226133729421968086005511970656115505234139362513558753405680542250132571769784598481149461750144959374548885229135639782925787039811555731562434060471618721469519667509800410556661499242886977192067362821999353309923584345824299644342265053381330815989100283699798065429135243061584501197612569003858336553716549715783969083562493272673632992546853657912410849775619286413203368837971155264338008508900640563673782055369859959233424330286977365366513343589599093877469999194262144778127468380405314208165001222922154077005058350549574853571837986459096993415906836308662928606076371950097647490511821219485424036959617182634803184685969403876119486189337202569492935637559076500162473732541079767153846580989994563078559120763778686695496285425636478928627275229362510882974634020510820908917068761697946671081319205964600059619932758830427207473358260572980301273843313841350184899103786409689430978676685636932774911933859170852236207698729802482390753067047959005166009984046925335257816549304834098166467217204433692339364603366939632953632854635073287928983774632058567986056150309547855132226694809874556713128162944450983412657394126563613663189054771394435346016681206007534028952976182402607070934243193344920074180321817324140366104847051564593739629655248997947156781427715759434408825223588334369795270534005171286801631808316382828450687968962032008874600723322191258588082527147752189800858806509635582476316526494624063938584826687616317755664580611067594642877290750032458941742118210120656848081494326474125404962589913264347549035398434772962097345057926726912267449112546177158562495566722495022273352102563505480649999899182350224021249709573926193664245190011380452573986903457495327771645832038164119225312336132301687908208732034328523225144964608202416765053937174628763175318463149960591275185780184836117740630417685627359315363700173585552867961754154196245501636318988175693425257444980867213662328273565391524152178044045942750750238265454073003063962623180078795663599456970219799430186019694304389357087690736299528941828118879301786144573359368647343059510945798516959546240181662653280135980595061575609483796325475005983434508409589660371831301670043379906956322865367625736132080574406946114444377089104328375305863987036430411443140971799206552685806394306442809457991180452789345921202002018898889928248876995136291502374887045045680906556335788578807326330728358547628579497842789003604714134053786224675036128301822856243132130646340883125732930449564811991191557254955905895815821244559262947951114044561511223088309291961899749811260693976651054952648536409791433402868267888883900677781055153783984299616855523061245254320785718973876157311262393208384484363841593271417129210885982895762053816907274869384772140590209084370237060954734195298169234940651073942573250603695683927081955666850267935731121207597918518847265581903183470562315469165710550358075583418058251979073670269443648932292317860502874526137638169011413814825096231136371858759913095029508070435005549179889683332832490832875839970256157787580791933382236033745493020737738023738516033430823433449344395570766187945439275212662517713801181059551073700890013440258754552753674938151117224944461536111127552843138182061813108827782305464205018969174384024841201557743495843637695112944455569444370160957915258326322608648207871084211313616545945314551051686310500272887347992385445398406211343527529633718926969635147571810228761888820610762410464492431866254343483049409065380817916544708588110188028610740602670401092000410338051122803775095129995526219715581809763900184959284138768072141959698448996464591276211493121847511628066200996578696634685121382944260066379289000122299396609123930781148399968027706197465217492929086108158050965462657692393321765278501787617125987456412901016238065419666762104476368138223628098645501053376671627933318943276179164527188594175035990267266353577321949831465808282523800863299397781705984159923593872673694698760783818084359873553999771297601055109041515305876017253631050036352137896192681933516615139688083285492731706838068842396527578481316435152033510637232647519424884759275779681777302184681611259096426396543177250865755477345795555524883289034819395515905710616334999400124194439615204877177993168940902946173913953393918991150439138065622450608582427437667526533291066822183418302357046635172855458552117908905983236704052949502516038284635388401993567360569095718327265384617276041421289616904891936157496258922944198601163067998346965551270167244493615568030327158922172937976677630854745568751476405765766972722393021599614695543082912128096050442411590561828024066913050951415400168431679110000028014487516708304565495056056034760186216080600762506011538921344270988293185732504120223561116874704455558255528873474937519605546205289281366232004838968245270942747402776479313360091576352984385779020303969051290660102752770262509183369745965830350539572940547374625973523684122101549776432151914145574508356813569304345807284956900772898968102893717634862259327356358898258889494318140152949205180374545897167475871097603187519058199426533980818161792728235853132465782884500521848050643919167890347684657720690683118738202226122647680891485475539044511920913377381425148125628418482351119674162805499966295450888583704431282913901516189856055814510783658162369367006743051363960889948098741445521205443441070846036699323072644711671145094522506458027578695172030222635093201438333424722122481647836534642486046170411320809630018864173544571407040620108219880045231694979166603021147351822352267072353273071400493765408781689035030967781702976727014533513824367759791688536908012873427958070805714313366512090831036976975240771519340862921951780902777696088491803918377209389800214637254206573250334366325253903950385826318349971457175685464706493709034501008027698680742171253203136216422964191463354245856790162719650650322401256883709457653255904057676651466013240238346997039848354257835978380924179919223652535569626831268092098630428077482261840830812575856496187368830531137968611051320049837520947845340844404925320516753876478011816756795843601253900414815415468550306530685377867762125240401341375145038737474261599399726405427239092623212492946357851017495922824843774771314780788257926249323778371581813678657975932519423829340289456189878043916221369447379657211313989470050278739031862326707219574966693418667501760400586713930479043726813645470780377934226198396196452792224308798793920731666704947552605383885167522579364648884824494279461048344509505033394934465745340497043848495272372011264844213094653466351143894966956764031350234694026247575535044029504896558633665804784296522801530956657085557935884619060212343552803587574684314020066018380083564056994466572496717203896510784473794116509007119250671711341334162401347474063692249966018374706576579005682802883146524891352411005770655435551502349384874072018412906259820737211124185643420832434758915083373589471442808926367391112977129027808535160450245993772101606645853260428971962325139857862723111114544547759910486134618767229466581385763554605418151770525384148376051036995640385149665419325365227601365247051997489192515836691993209170202088194894230809891455357656515019155742419195287693792333503756002273087879274730851004508490975527165859658132930079769994203188844653830275679557081493419217323161989209261687413998392316631149101997175625081036867508363067157645984270709404700497591426619752393778297838258677770871338386668111611445104458405670431811601060170149793535189605441506939493385941622471708989988677241244874732847572610147970441590845602363991870526140598217731687324270006982531702413190926446361736477530864981661630518380203825194064040121750889906124534184134138756032792572563970387698857148463676828312217000784116088131110190468605951958188770348273785511571061628046989450290816049990623610056125307270290269348402213829673265483793273603127174608265365945756034330992756092700719073233557178138924614154825743913676104940271918607124747614359378233845669044761484873250229277790638173727858027367444040640921899445253363601845788333368109828160547565023191150365227565779197391727694478946119967971496292317927265302646799395764332884966660890580543692720889470333948981129417216377985766797162451693734706854584600786862902741379881182042740603855515700998937846400565632334997238258106187193778809910983199034943559056072080354429345606949042350105614854377695894464022208823041271320134880101330632632481280829424817282026412953208431649428777339884101488358398620260273686866291378185491358240046262023583642447025080031990110125798913059396277029510820875885461122706412822499086340581055282610358633424785410855779489641674820089880085115393056358477948323577697711042703397633584912302220132674448376331765813417059502722275996942399237520446929877828903587595452838989481821805049505146494595063669632598653881176506796830785507144157323608354965784421301978439089149410439081953452543942115074776904499232422330337655934618909198439116770372611715921273060517103628273056900913757597190033520554388719947468114845615189887767902154841688369163789544439746253383401674770078457685867079108386242007780746748250984385694203688226834722302888932120296732086575928261221795294172238849265857243288722087077929442128296198964657414402785824276809965195285857979325990420456690736947374475601005726781457272389795465392503346600998275935615052111547341074195153861515526882701635406319473589593344436508389864304813926800304285150646581139596669138583565369225489669240172959477366130920584053372422157714632206323044463831578050006634716940774137269555834628206265090176210219878159851205920999366195606515795069061931012226108483244825808839821750661780015150309224296701642828029356108269536344716680181898387294048648041694033586936490234166718442848768412957120499172544226217949387217619892122833065266282184775455798154269981664262159271218086434188035925951165231525866857900206624144987548549774684121707218782743087957513341920171530463736337082251582106678772522890730394104788743562423144726066786716367487195262818331931280290803940684051079679889680991411513073116001805856035905163608945246146883281823424504027856031611603828600991301889424899144552587012894545765430835256267406230665375214247356694351044621376321852258260523409017580203256789440710863312074710215538846413296361855867664685450592349885257968082364112313119321652260550895193984195607107198282494352458644582661429912228977655101561652723189133445635742889818502825560869020938886687614894201605413326335454785615833595049885666333322149089512160575677480320854993666430667884801311331024194024188767287662229861397323600273468797484468212530985866884831056902709755178566774306818100522965045380180197270952427940309419036516252872792386301383515699153400375120054068459008162254058576727055978525898737192148716843462041575835320041396201285161502754073169010109936858161025596414281121056385283592573534240403250541165270758748618677953846205888072838313157717009333002958616598857789381180647037775407498767117488284900716407629885080232974074200431310527920489317841248933897314449842938560881395723698939558370555036377361419574533538682118791948206727850869609822114392511112552681940946370735467952344874083069829069665709188819125407542543945843199406346483695199304610295605755596311467866899971514726667787683896733882457392826689035953473819422705427406070686825544598524588644589271582551564702171064952542071289004436551747230180336405758407430325156271861772540103836788717283645580649030207400965153776271850898329644112672550110052275718967036591820621202430423335931291469428663196154175695216173772720388534423104861416158954344955654226781624675297071735083514383528477739607367138834475424729989093072012695258182738010385185567033812556569381095934206611711094161490889765680285040161878075072198969056855596057647674557989031260959115180740600218543485488649432471815828580586611686193893777255199022799691785890158686303648636738298827360793010638060931578016684084648502260772611185427608128928817794955411547212391298945726284088661246011648901721596318251393226353212495023935733528509404355107500140040320633361600065148813464849795018372403434580157366574315647475478089816338241473972715970573032096036796616006839138296054130716662732166539814075163573563447225080207242801157468246903958366757185728461699457024960859220256032034739820387979868207370558654273864937474827246604833515355177930082530482591578301899295154995424676667983092927723164549528300457859840325664375258119508515778745401234340018142783869145679406194149131513323133198049534134052007094978564287486615075758841876031354041390350644166333638049565910909651754920301655742094952547953400885815789481593674349096679993523300821739607762588643430330138954083706123729705536020289489574849815157449447772569840556373126635314891977407653890801223834279359568836977997632154227329372417071245214267286344741373464933765020171744137217167323604556514172326017399865112083976301798709242178130726158109198726774434399903471391803265508454163855592072156460471917626178763577244238742235093404498872700258479884860641238254582644414360862633563998883099011582314706443816457582911558706999619758751764677769105697103661810243543416386633954088960415124402516045093465131935564100025000606249348776628407124943959052833638041182150788267928981062884088164052162505448080259902851122409949283399511911391433584570086114563672652568933266119805235403678170712466027455278270783201179873068971399612843481703258638575678817589038139473125519204268009322538081650362376139835212760254513023132838647957668986932417453773094898410800748062268099039880979152192883484176815018097882597581197265802573640929986283213655232014768260174603987056740605131589122310651195133460593178027012505802147925751950332497799159633751686532247131221840072460092178723654245228588245891656199294537358640001509866073195042744789028729863749875378158544005853164884459179425654452556379671213899437858960687689353051417193490450303467150087718698648245598263505624843429129464974642582153991395166474602681264836066980887663018633599744146508709024307008435885776761145701991199905911959386234404362107773820335672048389249363933961000148655518333814200754842317173454503195615679136604663168189688843051735306978427747790409691532703319061724097359475713036211463345494039550004277091985265540861769982448152645691318438790323285110174601865210777643420002225209024049960034198666069208068570708467775635770770400812152176002123657282727306235912479606483479484221789986428290953795297475931954553298733020699116307209227278630519829574034979384899047124101841355038852500011393747447928033843914408788200835508796823940593025108847120022438216972257800351537352834664075724498236584894025039569826731878687791926385523584221347918864219207106867827961973513381268317080839267779935715369204043938263768702891030370068406942670640819324160379627529779617719446296510609592903841324027000075318667467130323962860593740725414466113738950212258523811452034313431011329522310639308712073133531199226521815265360606539605979662420890788534744225889081018686437325931359733061450539091289128500604427183627361800821816386016814869230973141311814457691834744711627845084471912840150712509717399178954987620793626628095716976488622974074878719338397546264137958528861597414096586096077416908539104142567973191321414039101952936665870937058110673907432312382597191675919773768133326667161794750015964020701777770486815728109145912281058931273081898726999188603967602639296114515345788242191998491878461953750521628519796152238814267136035731308120016844101194040926711173390493545712872257306150495357696011268039727283480047422461164762983276440048797814414077795336251647186488983825012085493772536286444586781610967965099843152744484290918220001771912512142839907272863603486820273948084187079561438284503838423783157676092311728203347750802713643620623068750021085914325195064549777325937545079844170206044622664562649006129110885382960126626436352065849851786415248445806012819578589869874031880167186656238977683862885449912179251078597478382533815743278788864205049740240740169136023908301784157276361667227430421213141140860187061957435268608245385889699213869014283504847955383984197859139298802156328499071212232485700514925232696529342740925491301078155211675779951257114135759335284911271377431858128949679874469222408553918189183141870179864290608883692070897247711033091334677643183664847305298325331698727660694726031416552137714886678536492353575190279498793927689177262252068890959581887943696286179249088525323670470671930616807233743384676903608425953430597928050941435276638187579055770212916970745942695404609638488331402381560873719629983377126223627596273569699750198401269356388338781125813065577238905698415274779160273206870527308927716833605178119842261229059147245971513286879026610578630420716572254306307272677248262302067430043852919235543101201275785574220153326497367868667984920238518238001558942516527244531601767775760519314574279866340686893696135489151171994220298290747918564488143858742376913172255485112636741986525811294840087194227613262117443006797837931481983625326909107104803808597114245403496049023758794478510120862410586671228097156641327752248146522644491025172742899052614256335095354609950831435436221640491037485812997519163832028625461721296282630964507245776107418226197844756850800026254519973175965528586976511499527199262283428304759399825277538596136961590000948022647448496537154304644000892428756920759697162313824217835345502230647668644557532614322513578210091513579152208675893386674553310793496465335785181865357305442398749466996083212698396144046300312123259801258605203948277005984731558129835202142819997269802300983393766099173352087550055889337102403443306091758121684233685201687095445575420015372141489585693483128145477321195100792840855059895623554768503087397399830499178186146272595664443200143366460143909159179270324584702724066075569538314435710455227990522334857826033062480610720015828690045835616487400860336577594820913374986895846832617005302073049987456330188430193008992223547786843287340976331468816545069247083008389222411723742163728088223590300495312768374169588532598998789728905672808204573458494460153510647954496674354203966844951018433534963536566523979990140782211195233054790663411702566994909989926410010185433738787216360942202537710602351005581164901150219724529006366715890682913330570050893834252413496978974781224681595943977963739009735166125979344081878608151038749548509357968733571291885881080362956851936893121105650942364259368552961478668759711937555178372506452527310201618495956971952492984051073760129049038314069846844456513377832861093157646690671914065512149504264506670429936624014489743473323029115902277924492624051996747755002138569669199224854909188599660228633990172485856042584444546146666938090236356902169487095666528088304028421660851937393219426818687073643800853100590594697903107136951666837266178878974485454220009098791021017230238645435837139762346272038523161535646322718432609608980402164002152457862546493225603540783450898921055228424209483655162000081386314889473582917859732089861745333197757703643609575931004922148672667204706693601123104001535291325429748202914449038658601637444098364134750213045448394087980607040443393674489373167877485616072849395136479294567136778263587536321636830355160346436443185234205137344001511174095033051452516561816337004571596459205097619316551030304840005117065191609169623087590370673810166106862552158980028383622138981363765945192777434037728636801585415479337372606662219019206436221947197613679779567640637229564572793511708904939324502979895560533563447680862563974647244433651326580704016551709480660513891173556374989557510312014411032767193345224945176413156114315486589338594530345301740154653007279947573102383904185202639113927175192309145313052304935386040358061137461019826133160743012341659895912709248106479240283061018116876530435268014189788243126222827710181826480531207473249884925587228163096674103196399463446322453045034065937067494412932764745286164380596795760863503713900343605869872988269200114701216834411804819268972705243299832388759288319362290299100623445320559755727225039442357643398940338366891868858576467372811258769862767616073084769398955939806233990174909918836987421420487984116829476913468652077449355971777604400393266902930583946114779876973122225582499442854095814338125788589356314734404348767789071176264509433577585307768305865380772688910713690720441977588469620160357631337470113822670668155278834755067724389974430959919757375831847111480540893919792509260215021287696072659196722014978173975447913690198636231092789649172011311307376271103467032910904630285530011288557685728145748741560232659391495118151711152546202827278543752036941877510588554897560401473645162765701795384032566839657476720161714574658118472595041516915104404820756690510977391587539409340630740120273368784164465140554878941854418199662959219535515489350923267840130829143835597931133993930283559700193397013743801932979193261623263545995214275436958142552066814389420184660213077743430154358973516939235469314266923481576775750514741744360476962713996014567117650453089274976699140398060257500678464094831812169718282813696195277171004372913663118784497937905881605469299816900660953404839474442561950691353262974960655691172087500175883741011010496393196665946424067281253929387170462781410911359965772204072377869843667142080686376918226054624766319214740996409565197868806579231453578163096707519291065675469739026744921108674725178242195183503319913264800353336603148815720826806806718227929816700154796006269453190547123841824475143999200363074002024552763850937781267836228973814370798210107139224785485112883666556133067094608267591793660551677817889584091783897765518631299827964862599670076340454033949967142747127899037436821929513922546656353537855663111766556156207252347464779183363652455239165274949091340705111484331712148295185486697675732863633063735061634303616961715680503182020201440017234695357458747835520862831897416472227872413139535857777707839232652726675116305109514579434677775262041378434860718059065363700694977555218826732443009020784359412669050036023201849966584368031386591613677334442784494872086421309039054583003750611387198687809641062183551202156334316253026904484802403238577130305828887676314681483443162692511830839407897339334674395695042722650080143791796001731030897189316960568158672598107900370190841589724769884819443829360907777765712136086945630946337425911572715872891518703273131834042938721078362579132036430766746818261806840031484369849246460997391413065836897787042841357975641229027721288305616564128941972937256147763698761272169244176925500476226704825074293110179670482747507736832431658975512417206608659262128433693136565176316358944213257860312806455026260328412141314839487875716043149943428660698226148240863807849024454737505588759138091386746635392358151955756522421337111199807446524544192155693097360045945311825654156144381893410279105530335570243417613151786918454868091427621750974707469984993900290381139664441355758675522676228073054670785823664311935392788455027081795139800426904490111441605867833218787855374596324596046576061171019179101684646404371524993689892213804383690894320407593937444361382549367977668457840359301082031509703687633932736298169187256235307380007066440102073952701426123500053609058830190467956829175641285051074496474299793070926839845602103829454696362980675292332610123060481112232530260652161454578639340350627090099152442761410849041888821482399676418252420253928982512760009450896713547895264153287509744287522058385982472637593964375163249047460212604648667181905192782747828869732445897915424502516639426835197816479952945626771523107289951118307958177379588108167855544023271199151749386342738852702767246731019540563121285120804672389988612138322275121846120679877805226586091771521005380457880844713122355130359452266477439706494856926589170076093008589370898656575444280388778670121054182224430547056013152694334622790248308661643783274722238749875104291738120892945317159204205040677692111772826914235069814021351055060734911129358526552671137905402528224165709040464388079316397421826573771854844301330214287476076740461177533564321135907254378945853221427194830819667327278461401795066611584467300669332669491997806497469428422462759801913225093701200240343621486391373159321003998698685781750758866269893340946042094727494783238202662377479314250247175899466301414000495393724446832684291086448645719831690144298264303856802779779606158637936451936495503254773806118171261658892496375104523207434668404113061123103803718511660064140425734699513497125394428014939670999682680999972840083732335451005286066126204824873048860249424979466717105551895050607615869386639830179575244694516993644967392088498626221800189313487195384691679429124389019327938352086483768883064008483791733050491380567277408205929509044364875308499804146610291855449507000294034594417001402098716582317751824351600289358558929959529727469420533871170991775568493511321716960170655929560093274954153201240553455990074890310564028223391518923907801198533409479221916756092688071052277543949072350179631024099646297544923884277122499602511999697682712900182211683540487894089666563679953379787964805933719786848277063719970048196333340160127368541891409701811033232391926781185985968130088285703731919696909201761730329454261919809651398109644916396574659590487671345553282453811818716830912318736175957619632401592967028082902927761545835499388571772437009813224296880356366607377374153289301544229665313261859959427494239888718011814446280695282333551856746689409227393040219762437374276093426482582572291584668797968826449160051119062163156503202414418863076444897122421109451225919647498727640621954909479052274926939896676957977690336426623386830638425029031186530003193331681179421959388837422548473066798595837855528752987355766163499616152880788069447049510189869304240723270665587601327863906752716263650338375426314342158227829224854935441482836256220095015864593865315354942711448099066695691013234299062581985313117231741107254073853571679290823999035197191649352960788351673480459460233380876851134053777530175877637936071184192368266614976141584258733088525388659344910501625757192478406041413828224520948538977409709612257812920575681109047993424047390503283554901306006118326468059489816388219240881752487139298184055874516153118821204459062992397941755855448649742752803450299950152355957554457311327961197431075076653601674915608578843981569516812138887019256161890026241477459473240421604748222138890800974961799746950863329064302981852058245375471014910553186652087717945358667439107244818349787378508745632241419094097735761522928409085115838516820387925639375652635676330253337346664252059922843590741684045875515132162891833399728265987488115683670546255578788955140948650024173708897937375698836381076146442890257285035302245864470196667551990390850682742735364557141030873060969224478933463578903968199198521576625440691657502348017434390910265666392605806893615492660647625902385653533440525320679375650590568637231766262892514721943877768666178827420055211037632255851664134337436897779150040189317897662911949199525033646595466534135213685197341008030551106394420324925357719938341459920033946455561586482959946395165980861171193868171020760908671742786918678382290676876687078096412420331529474764684245021724970038941164187565989924200630882481306772080514582441307954069487613703917295985039671101542798322351621582771087615958671100434468856697685562442842343551058461917624936521904371846802992713705591447434175018351956840430777480479765878434104652175772404817504550380765512910414859204270640234322229966076378740034047979623698750704745021180500677738625492883920195518296187582473236885353668378251631067599698593818143613949338484886866056606029868491056934990003795580331835537594771439766309658684216081370081811231716420930201870754168362418041344089467567744429705744139459083612061642348083109494129645086924078089741970716951559737096821888743292105780939907133034902500565318661877911682209403898447757149156680611923663888240800203727967670507398509869611047092458804387444831768237591659393579985226818357566537302402145741079841747012405094708064083957723261724408786988115105998136450934194981389717420695113983594943363959082131314662803661172092601541188087071513403477526580232480262155609771016738902737496534861864968456927675166423536586063183007595741234650653295403408073996336851115145055901269349034903850072685449382072264391469941415941747680570396666087084390239543470935740847067408425549891888921190010299648920142646476815037702776908849370256732286603070080232318992037730944459108758335103835317216035329171149266724234150935261666122800271577967029749278984128758655611257575403930217000088691554491688710289212367352138281921209951529722270374089622371224709721034873879367267508168482434355724543503184753192779867191856178428599585721280475167134779544040581051188351381406855238485859639084811816817657166960441833458308352200042241133913380074029858671612793257540970335242489268171258314576636994760974826315876345247842112296832799413101167695610022230553996348057496718264351577478541534810776333755534963560173906307063041080261471746199785356647308990330707959041936492296440955033259259194060100930822040410345881163651226828942748073112695154742938511879089727439684867323233692391393838834235668858811010296255588654893193398328807235288121413952784606412950994902045572605206111459741641243464148240839542114284185948659411693459007268125562597802923608541482255548571660055723154798408297830115380074115828993743349914789370028248012008721546310592598305963648460259556505612107486980934070510513400404947712563320127594258412482139751950934253870040896000498058897905511092247364878843968111802784503740303300350462502845848318999054424889518517005896566971376220151682557563022636945309655448164630287361983464144441680590032733300478372471569702735178589673684830175688459466563228205963026697367013322479712911426079347927015026984886477047273549050683476200971717198117325735646340630530206346557419016824860427921201271357757915083775215885923040557770978404199905889164965410704957808443444529966393974518837320449265478175998260869445081532014834661311170849405578667967948471320378808471698158361989293498211851750982895774821811547252831135372041222247105835099015314534577071214604322148124567319814753471095685807765930465957613229494336754159008364486277291280811982575050334862846969030803347768159446378212640989445899654314822384231052965749011624066964626420169213730994869866826801089969835287405084409653622163844335012530540052924532583883096622605944836421057621883836575127549040397490898930298625635671519002295328030308138628896943484930672741453100538793228338674529954485920146989406163818888790299923297594722496267993292731003387900914781052950840559029857988647103844469338495063858268524789681789469432139614767983522416706365468317810280512525480055899080902575156918829783630881555855582885941966524362171007533679080565650361583699708096904341301373660174658911456674901984363191635513152355910916931780347094128543190436723678276481875940734789374239187661714102924822802367570096090576170377993455177543053440154352251252498239956679722457071477139286876122365817435100972021393533244497457286031017705308684603031123330773354278113803161059721799369591659083154347152510668293034669039182770070538944673899948278161842110008342951649768624768402668836810635613694038743433078287733427359245862370096033253103139164918236500715651768871123134848383570272542065527647357592142369874823519962382137748078258135260815851360723663581689611456297928805118935876546501392446202240882002277941384274268778987358816431432105632931379753567773772557633467647643101277144186349782570102567706470982723174522963633825648611155546703559447602612936998958943077097626921496440903766034579531733426485563682147918493636552711044832588002205388003479682953555046874228208261895402546691909414722917119443850468591558701125217170350279583579299838119125985734465525709190327121267977375658459431811809746210338698283259354616957440910118079667473471271048452717765758848212644779908439532328275831167562751833874862434311816012689945712926418670421147897382380281712244234073330406340945655081565526072942809892300592809579306606394325099850082059649698275879395725914982590681361263195476656780603577066536721188878927572422049043567243315737623049083994167533044051288314871104475587196087458375475303347280703319698917149839975070523028335497263186666936621669251584638461902731145425634888565815659113175075686011727711863275149941668267075618758840614745580160230311138661390604902561001506474487867001922459435557604510006395408388952215354970706395702212920543106335036824224078081590725447313350542490000231341322096050307995701193983189480740262412723476207592136665388730001007699898496719979012513933747209522236725370404033121264487094705387230537389773284278890060300523072277314029023984962841118817997160884393717803406694343187616394890698806114796137711855115042834585737660363998825075148176670831634438326647300041048973790611430893205723897452411578929205064554985703850660655682644083997205013999063064206688431383536647665812306766969466400397066300057241073909018231290426252927296810127861212302987883180308042104883434400719649276661751108747156768239761972869803078602486446520888479967961129891756036031613358778475312600172104977213468278372248689236756947262567998770467841006159749043920544175961969619740266520384162627551774244156674508751948608138240682308179757879890372245762497636936178536223735359153026997659772331899753410137966033730002628815886763993354563203530229422692087490837091088928219672745827162120979775266563574148740522652028240447527396033633763919011575772656537920631177180877395930304443181786793638110680210408944721898018813489381324423715288512428183342787761521834346238463449949301127517729146679473619821261691488751228340522722773070208714215291896527938074247903349354525649258633584195781154077803356674985229626814015004408104639871996984865639273987845151635691204176824394273458920832870215882820559829793343564859261565667494471473404577227950883123910999845064056472821936972436675686936187069819288740174519648891804571686259383826756134328866202706783362386677764321356350703668708788938749341408420671304535482332367795107717035322149656945414844040148874786047730023111027476042449769170228932447853594211986767407078222964058424972806215864296037448161628031988261364080588769195508900725430814297838743526675297161703295877341334029863317666445121656695033623653058309791693623301220997446592508922248047294682178645417976416381872845127261761146806717109911349947991649576896091291143623794344420258949689355525763584073289876813753454870251245462739765648370084164184597850623752221145894101056682093299320065138677794996035959234537420374567669261208128650637846174261628379783787053309067888348909189332766932769021890871003782269706757241051235448754528452028105740115692416144206540069908586418590027922192320376339870871301309210690608117259317120148543704047215872804176298437454096443491518448825422353814361322604506374379592431072818998690103845177005739999414728297137739639195227423698905834595451088123072754685442517829389844502795557594687141660443821265370669712829700318403390429261381899121995418865754480719123368410999130146249890471247423275851971425844520631199688834086938320216180617797947376901045971907574392652019935272300603523017750720567118123002070872256381122960492139327165491052478386899200319092122424078068510203852292261990580744913706583792055972097341045645862751671506609081995928690688410547477187558267859911977770587026495576569059532383728236185097972684022130141266696335202666598491252575787849155889888699843752593022095392310445713954882220662617814080813414479442376843389542882471460959213521937327050999314155350591959395831271103984285428022783256799537894738227942444360957794444436718717023167356851631521068958587923872810659661468384342705204670242390286282780122290448228376839426274132539016033049247325758279829608980255345911978968596758584583829721899399301385777259113485986810457340728194530843425923483815827121440670896462099194119182835304110507763820315937536049506846062514035847494193629064957416802029788011980620287945717623931894498833720623144790986780576782256538691359660997828723872212656873743421696658371243249438617666916969486892578130156753383175283477699971186882833905975010939598288692830436676709705259418268199543428670613363095369967160557882427421030806163360568744975742022130013591181105856857176183933800173257017445810963777047135380199870389738520602953283583869799798615970185462574010220071050526927393033955004069429895786409052565921393643775533491305856814442352378913149821805401444116863665948361020855019563446513480987139690842278419100218363419988507152259371988859527915154560228228242721350836806791053395309438594735784137176530305114273746851602668790971244937971127127255939151242576701821848547462595480087439344480769236965346027259036334334241413320927986931598360290199478962697529979334438033639886544378241744180931984806445444250655554496031507788422473486894784621019543645860656006843997375076734493869640646805266416386158566025108374588997596162662597696977646909835009562337160107813388246708311764880657828004092181390325966414795908271516671669779856212620858312714656135861446621344303148701308188578097093892645504119644802372877236919507060886463487013443698972930270717630256351122095600618575053005592483516972038016401588868879451737377403096411057512430747118862955694937855801482808906178686276357839166331864224023215808999528743617622216932323710862428846724511484832624895905357514653126191575668813340658628164783274312583453880528333152046882819229019145620555435677887410166449615434416718538095476440559210325101069228828205598343265977706414115163356610957100681871695721008809402817389507923174657861337935309080210688201158503263829867258021791817010768008986590341128955182167102415726482628827922823356499485323768627971801865878118531203417686032229836265074456027959938293657897498959784641864453140867967264074921778154854651232902528063291043412595470935454881703325962138198227037168771794755480009205778576818315813367068394277295334404035396396784739518078393206396669379091358887816767151339877168704345302566078614946696779871619328056565683010631826425830103221923075470447522204072321695943387427666450495374049376616177252310592626305857629688036991418384081039969634632694127748180937297262690721673813053362944929825254317058008779678250999286377462525720295252328771325419789747877343288990205963494115735222087965783334628012437561997948956410720476395601447318828483819368447704240927330050552401223924308059380695206229783055224525230512759941114387814282514464939294125297845373998571445483688287914503016825415473328246570030591116419907385529370269804405886205633125741829669482462598234681041922417105328723997141535047208573691240675113618668368450251743660356495952206559429121687901157540518303793030427457470476247178822593016475427502611959344304714111463268843246143630701012456783047253377978499652501820533059521749002107158957937586095045271452227191385831763385726581030832278567223375487507828259505121864737885215379318196416860653290042434378400366583487302638285321928140073533670113180199862637714112627506036455807023824665345492158605685895531722428984345952469406933984563448757436165200037561750478286164444285015097041350720980695127202160011739856711883120472815405128356600420316465787751896150862498697094355248507538941999873490658112093650317920433099721577723913401120330338472986026508968405062430729393733080977359443185286542362765690471882783902545770103213810098765045073201379049215358071935988555377688471079018116905656158145709010449232247473773991290300065148103025450233555770190139833757552736417588497628447457008549652584745512859651091545830445989400152798878477669283805623662395410806565924063623491980711270023564565157749560268308486255925224087760592065517239455958962384978416751726883615601771068598207729806459165646000858656554830248156002805789492166287682495989793538434289140378053369991151299957760533667536773002420454702084729668840127827249441178506229210642819949087842280520748881654875909169918928694994919356693792592157784220322760076274420418121535755532025702167324664844478601856400005093474202048685748276441926308263992627439766639327206590910819672555521471526657539307339453680812000471600127357148623057708535576761295371436410896870716427176262589855107006767869770940228993466240099080385620354467956581649508044602902942346736291934154369534076126488983246457606609078558208472369605362416435836834019205656424429262222448470262078487590255942022441841538831059402109956957508513663613543913451261727168039340796713672545652586059653967252212978789016843078791845661969518198388756035535835049810963688599432479559367279913446875757026664403275980291847382999379712141280528227130212002609768646635127456904857213112132307852631198464561304956809285925172354210835916398388734388960341673269495930481330179266180728946659668438899221717002626926959706513512604041968407960956835702689711137964708329920009109419894116248611694765723252540536672698077171425810432450596269908090121842810096319743755082952351908264654131120371043341217199227921441908296169486041633118421776435536084894333960320758708876715036003024971892490483265780471509496175240663947447371969788318408698805122939748779526856860503413159006201357350757386448802250271616749238518311744992701857975259188308752716328899956863262798426470708022599822948430834914959279586101460475801270261741368043928037783956289190167583148321863257445414145721062827459653537531894957907996001568263155942352934624862106982383957397430796570502971159697328268317261821350595062919720482053613322184393491351171535719139824933892297078771007284548465029915596889176880204254186845262100963171583668868042120370549086888839314152250009776194828179218762704023834943929708674649483908186071449761999408978428696789569324693136813063386137992054787780787178110806043936952993126920883902857202836895736635786569311372893175979872162594310084016930313396689093563588246619875433928106536338520355170681940649468028297676065781402493492906716022935951532035724786844476047515467351887895979274397771477352117569615837012807747793206196567546609819752464234607015143174695508275133541896343956521261185057874998480929988142399897314387986874187370710461553960502419620024216903358675963770531483056535753663247100821082053865292720769468184128219451740146127178149355281896838697075934019416180248787577145005495742597154671874952965014112642041965286116716418526383721601404965563826865570780967204035365993091953332460336560778284937177191717337018724270383068061413923614349603058081191671099263625097199030396238810685608736330947210774305231090867516804420458762377327509614310982905365968815782168635002585340779303640530323202846991560348335138232176054914811096824955468470384546080046935084521040208759174950520914658323892335512619126369434412610961698856210401618987234698072214562696018700115223489563242669941578284597755558342756625680268708208579758722744968486209874918998347381259778050627635725474295842700367786058307347323884384192911695090341763403102479008352987128622105082028884668791220696527754098018086008484161838354592667285516960691427166188050443260249552776522167065082978871827569985617946376809020593140795731900402207100249972370410023636501578332975865796179835297261916331633594858333699388233700440775395976098906546746727719369454023198609436847021852205781668594557153253712743759639346118235178058242255602322927037025980667655688506430950813653881517576851035234654440887569087131677071418296097974183888429539141718604997757915706155810985005655661432467136001598486497245741678748756446950912606676127423329330923649870839175675309810200299621647551592033951370665920803635112656090300194051910304397452826136298203203662202766477898184106157735249953193400341106981708631852684450317786408783355906806138125192221524983441514181799371239122682364528405009424447736086510710285388988673459306186461246595891826993813736972458131050536196963595400083593562884338342276112305490382695358212216493880468707107854740138540382722731557823556208479913049189331608406523965332146652164790775583071889838772270320432285820360880908889326938904096977945855709259796724044314464097006937619737800457684267726135286619550559242059382558002764191472947675033596565444367473979446280907720729633041795965239860747419627461194625600870570706842676277415935442996935789392943980124038422042104998600476067843054505271616731529879311780604551161386550119072509926306218759733242052693413638388285950193565429955997227837896316143522144763089479632956260389933234486798563070314310939228733584404235648685749139449626476351189297661416779056869797776536480659720882766437156589732223427962141680234157947646755182863456125427795027183248281321789565121097536568899894933171353485080085156508052351851418616007290650056001879124199567201424984886874143077554972007327574431437326195537437307181397131986121654681285724755386349655426544167141081341743174516096274380190573674942284760145891291211783313716742904636561624578098140995853160239040056754934283813566810132750184476865844672990270257038516475860724093025046854317467791600871413980349386344758935169765809564995858652521233072722925015313231847585115013500057994310258794372285777926590112082162264277157760246686441832057894697571964201052024591917730640998465472234486430422629307376209552148026971420708614618431863187303118825084099468268764757327031977665622532325727992553620763175819845288834494567803978216942689364244507082874728669878108527922417427693506072905358608737404936149926550433084453507938425243537849522007208225124835088358600963408575034819371570611368543770850480902113087941077756010154569006989645496019065644712171766436993589999478819705013954337119974199117628464101397025822045333738808573454704678903549797343368383773683321171965432366277890034403871844300397658659853389107921040682103780521737448703227209483175090402095661939243490218131742307207347179310199270394917077949059996012693103255005560033645068148680847234090213757913219043554600029649683242173547029952220254834757602362853378921382795873716534256003738783444550046457372468401613240775535515111408558478290313423357068829860813861767999874216696577493829314371078479315920612834970076284328877837952964171442745251286987310685740166767305417246712585070413295040730505797356695721268836154840978684142057039781353337166285501609068399526749533753868109773344395968902927268793676770776908731590252564462139333118876876670393678593003361019347636445509864130355445779239366303566292429412732116711417190884880623932664619791326326645895003892072495113099403197424468796344963972448455119021407116640042944897250102416206577660313850459989057979137214818533955750249581593996990834680505811431939107578280622864100180038267052110445168645190916510358274010380945767480072209898929696389393807662405045716028691886752579333334246737374586190390838713468306142794285747161264845572842332471800618288596754941738690771981090373691691897976373371028906727781948780465099924415209293830815652190915112455630194693601442580719791970316680142102618656591931203396867361960601905993663671276842411001537814008814243925839608772524553993245587082105633336583501757495073429021688592931573264740964191339027942235349657142682788688851347698688924145724535508565768338583384693040976688789544094617530295151100643293829715661060282798015319940428733222773328296792088217041263796883730079207783998018001216244862561118471065329818904240811924635098156112175107002259572887185004252885982805385242064952760267492073718734185474996561774893613204209371912998056151480060951305114613532860265894431625485852332245531295437151318353227479858959501782877058040020111046409711918256816947559846914764321574596860816218687342854715044500747447511153245014582341403376071604369600643117555590619040427743612889237298538717528141368496294437072313329930340256321509420368799565556121632209662918270405708747809003110515399484015627473385616507603098244817280140313506815525904748510822846167765846987961359898730335446315823929364729332822689307893332389087149089165843331734677934111603790025768665413593062964817780335680795488053571389410132099383366337842351111850219692597962548886568229414713480759286952502584971459621090815996613291235983797297053869031100970866641574496989258085541769907933916042104276056237742732332858872920561018641536578766785798046498345799377430043279063192466624272535193502461871311761740758316076986427822308627219871477306334755921831815656984038422407113822931177945410499158888364143946532391843716760646019869821165851235785149602546268543513212403358435144877030295204792231229533116357690930770669491113030793689446540936351185338349399815884367276650306207952420812931219607132300266992679969339061380765318895010588263831042968313563967256628018992685466106103179636848580221011611215606239777051884109609933196520925725691348594099718605271395221663654434018837491006105692967763996647515505117816508091152392909631601280723118070466944021341010696584177624136858275694157405869367813459065494999232459301186989127166111696608497269834788535125361838053339157809705834382984284752212765795248197222399476659970955677276117281144197532143012912889810772867861748679166329745196823114027994072058660757973121504733737835507609249560384410584932154252890261126355082604079833514046031643822138674047115642411838725278199263911286693156594201158370187228136158640431881537049530572998704848195044416321231461758166637850498587346156198658572121796891407859157827345402569899066690725895279433435779463307588319325839992155866161265523146090015752557959263366224562452831624782000280222646854586504838657888882327631516537861791798111609414233555692180632522194503012474849410060035210981116000038164877457548371774948838314880304038288970478678945450839475261612649819255094840308622060842474517282493010603013473617590497573633281429090340955325118296310458773355449687846692876814220725802574122501236882219102270307022504047996608221392918192959511804578776600957933533614682787667417049483287108677574747077730567350650875402812422554433162341931853260035705082103140595209200066909580170565792561371563421738777161962332132045893286858976837589522605003069099749747750016776423473206460370702470580555768966806376255406327273660470272602635219295073072658897227070632175870664900207615335731141195166895602749456245877312392836740425020996917325898897161223027450125618594226455230593383274456734660185575724869229934341054344785432684118079674136729005866243997044202210343252059875586682609894134290262164528355952666993717243521037444191755786092639840510403049426689547538689665419866377211100557519006842780653054580778150921924236778817217862521000748035082587787888639417755845103687830291758223422137525833381779563064849198487398290506373949187879246787103837818537823878138071576995107086848528345653965947909596512589225300159494901611081031366762625855603052509378480148079971197173653394075091457208489333964228063269561381014404801667430725574326026966554734375383914127386078653930255982759738835629321235005818676244025682573792366955696203245038560283740238382568921419355357071139326711551069404521045901217777404363132820383178267737768271682653696455329490860590130202624074219490174477320737285487536468942386308703853204188152462463476157721016368471514437385254621379529025489619316780535137920141888079386181412092359341420197868676778455722601586679357286933666374228370619091461584662761825474598375857313459548134093002846732296233380766795862486396371773831751530588268006208936092250572131435598081276527133887705489687489915115393464040100300037967841900122480061948660656391079887579933878099323884884802016074486614397939862700392710347313360127382832558982115861449934489106249459502805716430551895619239301658674151062750096995882078078043284187840652159702059753155897996660523050214261499708353842393300663482200375262141878900220364210311925770382469714943557681020101099820321861394666322305860982605598150831316649931689383034695434012096316388604518637102484727295339198448669317364664466845859419123538312026667025119742797382740570975083633423978245798662134460958897190604506560827250668364429922070954790345953593015538074127635233039057048914743567831613833109065237092026780675103398488167285142981500288155857244975704335640099092648512653861719722771256995214081674780685055741622905185702163758794619723301143886845818823469663606975860920140390026674294481939305599835174505185876886414661511956907457874867321934858081851734290635367090597985929022411550079875433903232910645747051368510732458071435155948106010507860348922252424548626839161591226557722499134675275675738379910365332830715841145815876118711295634540033147739320470089916214361579485708477929302379595471391272186467046473952832487855771904330241513256570326732648575218319262161664462803258741134291864211491347943728696982844242235458549430990134345778020793618655499017363771626526200707338982381891329107265787762433343323497083091557718850635109955832042517041381557423831772849778009380887825946353669518012779295220361684805999204494041544604892769118084438850689346080998714774140420546070379389046714845233979120419061938641094793851544518353696357219497101073634160611693346484632088515679727928720303808788010571010387711905202731941381368909731331686476969862784859989270636153905753263247333032680263515791773466832454834901806624836733284634843293841639797158547836550157217760498150594678694559364268451280418278682510042998349843607085871747596858237134330928013688922516937770109786882832416598935025691425460056824184551564968904989194440895562084047343841212777437771426841923291792526305035358617655753608681862238260117013923949306653338139191919133932308746741078908834184597469683486564984538957660546964361155987515970580788857198166928370996332748451347102896071876697225280254057506614864203459573077833540762167404183616887213195789836757116119830609338745352168492697322856331283934340090524287054497140288572874024956474242592356333370914805929228830005813285214092337234232344923164613331780691116808404552518312345425452046179556040613850050205764446713928275811112101133920167329343753944056962026995483067032773985401428460763700938441657356527137987856312020353604846415139591657339452761324266829557742804641808356150433650205294701052597092554847185262920335790496932434707417075992601138095801388975909836623405834100233538275907940030402696991393357182296112740806813874700566341282237371111134084520092064894162059872711477114120762212280999378594880219089363930330388705544921728867771573563492363504810975026953491947337925246038574562489611821191176557587139185545584227445119117138580618412744277390295708683251943086198603794939892642421863478044289000202088329716037384989810876690944008955802617526504963103725039242035348832374949511219216737421126482460987533203383178376683040128347856749720800737392820737847559323045633961705567855247447183980063251731150404841740804244053501711493728578669460892081724629462183411835617079446219958185893494316971478076222298725319838693334399226740548149842942149990544972623323999054594088894102239262487601153037841495966678245859847733366385133093157866861789219963451484953640394506403838428799233937649621556165578296077975259751966268013949748633402846565797879370055623332792648409332560834792473671820885182053993753241055805992282648651402390151935231950986178940708557374554134584185541726934046954024266426520393215109988325971295335578528474695126210525410783683991764579245948767171511332758683114419131470116441066734605168120077015212507265716179422247790020623768903042370261643378433283637567130458341641563800950573225880034899073714567644208091595869579529651020476487292637792299466219089734969019871900172542890232968282169440695434684720065223606267510444252155094001797956643041470183434472036122577968839939979120747723305012976704659560341667188818348081480473416557907091481044615194754377860835540306669882652121630044225775616351553948132733259239955949949809395103018658470850624625233322912001644766202459375915784235557934445882371090776566207857536176269367781784857302550510813748550905515596981957953006259600741528776367024515037570148120486345604490480586960098552428207040129794538750816756122314266437343145863640267466931623588382810752887312730773161540045592377209875099715460608521821961532577367699151460528464860640384986813575575243907491390436543259389862438961231383464380012096027559087816565485342237359876065288106669516824261784247839173884576541296879681273942013536441930018059222539287700779044623016869897361808888232256121701520586347720069710691013562379512536528060500250859698996971102789193828874987646111598371227389227526329754045769726104607049865445155403638468821382647577609149672759386409818810598078773804038154278399917198490147041866667982335995036217609994478228008238501346626203884508494691420884993127457150709735900859701072392629887099968154808542874647808577633074390546452526736294003356665787821846527536536382425416494244898933901451377332344508394135560675611484889948751161782184460485008173530926659972993062062892625102198669047504498184175369739889662395450672885161613594295053847895226435601120216909104224410603025416621029163371048175350882456727887448108140520210422267023207126001473469629100118221071395016996920076976483414462382685722241688892762661713107451879263814739887569669936660760933796631415521353398684056916604414473828649637259184421264031363801457653046796611608311365276062731934171294740469421719024400285878703218372499576689438273340727219576747372578436968904779128173017735994429673149222713547533743668160027672133245769356564251560385683789026156258725321070419531314608656438476638026672719640732907295780828310643451923165225545396778715544799682782217770756875299001360639377918306756663612802519187977498985585160430532839538921750242287386917591748339684768813764447737764899635599378246107122793576603829842811547933239849140714767013240292184350626942614773921662564244081764268167911801139980468065245440687477875796116237424447583101436339864134904900533220340909598154476120716133945092298071793813988008071773105594402251360473666695444650490717785461282074543036509073838825903592024388820190742189950890635107519888718394910139458008602287348968373662882830877106729822981232303987772159532919547704982773492338776905350845759425854461563702236192213939508755176728703892279784520376158192415218680944232805555062001346762523166361646215525957994916049452512058448081501795880551600939449088765965025575918363543100423092785646199840362803043510960279745026982814488702723683754346304603612917745891085911028584707945591538903848409951176922080425385633581381024845482193804476050425063429369920191464999277798459367773958969825829076759804365190309636921205940946240413513076639975102479113963364601298788932342338202043414779069761136031579308824582805007677920474424379348779136588722281167242369818033335886783681304475383055446775324747944914084293998550341351090046593744729650410388270121541200634303758226122974437421189504097076056673787167053935924695241381508513090461875997207846706244893632162868896886810713501819486713406843691359628079644322507035919098439131873167525361799579061876961420644340627200463041811912224844703275937185071014290313015882852631281611208171648560321941351822285856506438467087696799864852126919556795783997894656272107736234261320643023058129410823612933354247699736247068299377048951237776375432159758709271541252125443513354609282220476699944598400009435581366388348106464981451761665470322980810267588219948189864128716497050330172601681023246916671400169695562448947071849996238267887633200744491789321799169983362355364698313658726285417771508163971216042520702438479984006800074509744190128357886805320888594628512704009529537836492738904291418841820847777849886941165967578279709290829196958931496984803405364252894316632079355857252084586282461406777981829415162906723599285610532118363967436801004491405133824827353629685447525188859268151821991321246806548812403545443089229205140686860697277439124732374953870990941085566586658306857787329520764710954192008400677263985800728822335369980945379278668218020538400463543626103056044029834821434023605905730195215414340007141807842979403001255505416348441256682403421965199943066465963321070545156261262423692519492146279712685353526774069773226158892231004608954174127842882405624155669312838594720061020618447689263935505209865557182356328796211475299614377070622425565881973823945927978865615451403609806032571563514394385939665486073814187126780124072329360617172222194209256172037476761747960254659238352914119384899145646785634259576487270891030880934805100600725569237456251364507254480645790968365197134908281564685531080304201548340230158458906582545615201378266850730551798428418820588420797844759492347112867094588905074388269635865642781146843967851465295788560003082760244334930906773074723615204982311211268008707627532900984203137504324413449051113782314987162021275716122928498363221871993006514673874591020549064117333798276535380897092758677896414040163247307234891210840829187745786293242039993538145904698041734798069810320599622674725159100588341725304583297229500977215369056410356039402234761914292577199168552994279277369758296533105415424279795321947379618562563272925130683105501095153556212745921996194383204522059260178101753377206271423460256411205880510642291770663999104813394982017685652310447849554873512508712012388091052072876360422267797127153387742089149889747921974441458434692818457107369863315113516588397113921018497364760111694215849498652773902589400587215998966142913082897420511958370369730474183266441962518474244390353882718509373914991567332791110003625943977893542625693197173992967717865176545475423414804135145039803360611102676207422197725593687442097946019548042587664665345261114308032211016873325651472283459656415352788093869366827118294237998534502774328230949081189319432242684516118109703362850823492098239211729380528347790612776762122571308732040945973632183295563666849358482452499301872832415861691141593971286271005476966104493734002475070362124064447320845753801786931767273077080671449832785423347088384191463766218466626069178379348886914445278129881255923326360547706048940825701913730877422018587539557832147447826285936388603651045635825824572593411248554073526870754753084812689117702447105420156778325019744808462504620240777669194535774850010860006811588335597916293257819080250673433266788677439905052299493264157530302391198337215416821394688202140577766499107697596543090632116175268589172942053894929503165599072755865348834578289342855026557938649380554398834245937385445193048061560973249920685185982814962909798237651099628268252234712070812824304067180566123337985488174190372539044637115176803388309035442160708095673112556907527032287613683151022493263744331381390140535751252632492584981020176389045936579464068882469525624270505981261314888204005109161362016222406316257712328329687076092266398728125506527491269818396733810212802609995015178316244372436644268877946934880393651916584657385320059656206386455668098855073546123213112859753303345276507263766465166315956997669718983364244904944904371663477378028691400130613339888828641763042474752062379116487858640158612753075804446079239780552436241546424385508468963370664988560936915388062555853928738237905334353113812404082534337187465981724688626087866842210018728306072006223355973715746101439616154999632469727161544602540110711518860542449171939457470223644798626669384359758683727758812117023758658700362899360032011822663955250508133507380938949615000009632055884947246036973038268034134288382518162462862359844835576784136971077154865188688222968568903551074444310695881061317895829932829997228545785264963893264844704582744537482956088170485406034619983732651473773301621258118445060178917097151639954542360251865802050161908139481052145741350788171163027112773931313486779848961986535105904813917294438424586947417731723280099862411219495857732979187605043182943203002049878127900279992949410964679896973940501009931007904868420701825972346679547796345958361740745071714031779971959031707796705164545587121714403865135236668904459828931926823501360232735244780004260955525244288041687124289843418161371094193813726428331881786670470955454197001360814542797021797167357015297130025536452618572668303837035500274215057856355548728376311658250303685358667610288279369985445749053589611522065679275796359544197262639428171529165099154821544254317730662213077045940931210330414787639612836049961370987269483935462666561417934278769207518100812655137763896504267665700893325844707538018837716224300007812746464071477565751764493391526258507839353281260358600448390128782600280610241806575936106911757020803247711002435588967037425514981385166863292404116142552991833517615053519918995442029575940500983269342687910860579971593454334632705599221490111637652281902436935419669620526031993301683918875962381038542275778807520372001154614111533181039809063111966138810612959618454568852496852643198232292173354190456006908885642387896207039226013511783897367836618795231297851046875416870919050795965404940315828217374113821065269443924891207965537984414945080109347950418285251157771117486848557428470431523858881160796909431536811533934116949796081325021999527866591836983265663605713083782442327214843704940291165157437980986826582727873051892969748277687539027657603753502218137075157821093760392884651315024862142640894347020875381181277122582074786026959552260681828354797776863211272383612032983796661975776427894914653242523530789323922267672587432651926346059116629664120140672580564060036720989602806389838488312989207938752087588938510932033446756958629486879149432390358166252473585216092939067993243149342390077934276004911501629277323243799532015720970598374715390172594600347536579936273259249621607102411122632736250700213603919355721556401507044879497096904161412085666241796162191480986214702423005691355618880638383275686407276616266553532126793826736213252678035088896238864833399017515605585096801512134507981885736102581370686393452956962597360420539840879669457184884836816159544477469769560927922938184680942066352573734829660844663766129427391670172539385645010273371748210538775266779875905651298785811603293900818946996949640783116542198036295848152399500774803567852600980081586380923602973857688141156511120375555771344125344530082909707899864273244962271367297270847051098967592689641787445402578376637727817512422327646707423901721613265025984450596445034689651999550016587874463268850304750061507198873255751692573689794940553378517247732408181932836730235259701974788659808448562695493199540600693871376544384931225320949099731672878243580519050905485745609120034260315251679774549230867944218853912170913323758265473683246122642930623800477006686676629355908673487537879822077131579489668869112119629237176489727229356729520639785554688834079953245950844671293595879424162858714645259212065695193929366817817326229742691928183229922171633779028890015404346400609248442063250432996485572768910279589709797514223757724509752401644958480667047051626464800383331717216406000582133525401910681943190403435479941659812394047212470813459791235599068150389483083749666795014209254265194545562663130574400404517322288252689871959332091360448710654757778234464087157048211926142195972735620631199187930902811598995597379164310577320826164402458951107925339718427586486286606309277100670603644123674687683774267379661550983823178847764379600058074625843673829955278198046720912244679041120826327839367923483335351647275907400719377220748155731700524613116625622382237076082163283595888836997280209582235751743092894286812474178520779863225567347576682422915448019572546081525911105054934845567135271512551018650051635745242914644991070995372922256239427206719978738531173689582864507939262431829349779594279170578860212991848274839137637676990774537777683243481810775336569302710607489704825322602550590708643214547143693343932430619069560985205695099768052024090401700867259920288150318186862631725013342872350114528321230512942351610217884149742747585191891709883543041099141222867367529633481975499795888248469008715362404554465899667968761718576121861556603691664786859482228062016061681787821187318909604242699671081694251064915051946726536619456286493996215821803716681065156128162298633753561086837872071179417186297508779405031487804036399533700518456908159100362629664130136358153826510729085268483068630799638736218776658392305583259151382560527249960154470845718990617561682466043245250018898908262386081883874203849021483345903306541753296356817391053548013546652737624819023179873889603099013579527832115412873323075322080959206185315206279146976126226861573476932506986402600790924971900191733177623875771293037590377535807167477981736780117676483744623332420861432683151528734546751058865482432129707759695648331008362001650736394109577190966209564567056167110309578747293771991208166674500463321643025090099384728132783971066570876855946279074160903890213304089727114201846872589862255847268372679332302976709206344800326297172869061700116187821447336531665855124948969664568104743828511023870825551139406899609409498074050265390472332989678666502020199916483134362229154499156935418912963562937060649978877965384468116939949857046156536698139091741859615827186633454585383220258542764157479122891679999872395567270545204289985592777840927051700294232244458672036106017702828013100727031445256122994406667884773662084533721281564144922512797585566190071625422118892970192491687761139400223806744198929036430519522111183160750448274841665530617329816187648800996635974195929585355110798210761281684927742683679886865565772247673054071209360406456350737538103918802658866993297368163339804399350129339765601699218137930598122033010240772113260486957843245213838281341822769331155166005613355145360496160881407359612806918130533817485970140799827750079343632956974629843291568120201503314722853852283142385338183760401369380157660505636182928024801956907526941716173543937449344916209816658303024071201251503078472566646018591727283342663766700246672503606250653842828649457571159826982867154214355592228344628421205941576081619904401519239015237069989381531348677456066079717148727376445837011776252010508123233524410702019533366466436455959371418795425365228064554571531739737480641827644315947035019469553032998665962566338213110867546464842158452244939266344915013498959759209044799609166455089762678082798442028123647117630816946861429638028007482896782796974625459035204252166387269518043063563150786513395990213204989063745033787026746468491007744274833874196283112314697858730770413112967739339821693014339304868350321986413147952826311245098022135067936744583404474790768278983360174033778864293123829211921229081537923825345451778859122650431030245263661761462275682535762896791540619758794300171711479935936086448661811591231377409087464346614420497426752936447147782112207989719171230262290037045764318973092225428076971372327604066251484371220386170470395803164950868268182605419904018316412117230639845856777943827697306481337997278615584421591425218475563896958736294068292244698636837728215551153100427841106924211672539050126104277837096822213562650382735352523931555420259663782748135098405246611251120592892608387381093830072402509573559646238552787511720503546424193757052920479820261234681951212330640201282520924886452812171570107705607022102966351613098616500475679981823360044286770517834647912505050738375454012702099118391670743968372770433057369567315509736551067522266741181666669235787596194504253618953248602965173476482990495162374891594053958002024160695893657080578607734739850609830634035445780386126204079042993558882094571062208385317031225152842874140811792857611502989815247499781929621221232573816701086754947754106633637554553807064740674837127373800848294279933309510854785055459468903910726971492121677859545573976742917755848193852941610033650220396538801400503582676097483836043779017823144966617450691321367097192825516756479243352654201948664656899067827774729095539200516471292858305726425875491783181718982519737391426940742177881239847048531760831651308353875096286112463369536167567428890473076230453089215705539795360469112365943963255441518642678459645374322568433332066084531368971056617183797690827665117666419678415521742660697132615536185568316576879163736230113173737841790169316878066531694727016027294991668738254814176562382878693470136306863490719300467242591273930744500665627681126138828892141089130464914555577547106827052273814326318060230972125582372406062149287613367496722581297677460358950705859103568675061818832579307695443801410661023640169618780006266486112148893563704730327335878267205200970583489064413738171396035945035832452760471876393492501289980451990450080761597416305674790550203907560196675674025577701901466341088868334674560583033870093771078679872254043924954925243138515401379811693960990990880536245341867983285128014094093249336324345508587621262794723102002592421000413883482052785430254195389205474550450308690426150768804391861519897563691482194782793545823365298156069475763359155669083027904361771044441127325492373924575414552562873688846258651187429290106372600003996294477269522733358409735998847714909859616331852218929222158378172460235494102918412344378485155221214535437804481671588446134354685145543844386438369882035293464390392944974474437373217596561298758633173506714444136406228725234823984104510853507628718992858436395127056735679674066054724833611240482331155852140621425078171129823528513275496159832974232088263429187175522704844142340448778655337214979082911624773140445729329914857203007072912841163956162235172757657834490816967402887882000606532088364776869128458111118662790101633938628631242667655882661963050367499096305362630707073652963668921358639918053814199316395442977634759040681649502142074107805797394923259481571818826411999480317299517227665445161346249988686901456562976137698870342611651377736400194601541730507797664436091958616970164850967239338544185485801791071746183118127071225151636159997484316241280245615712627695948131117031025092123235641000468730922359063911534547889853165689397661389263788638131367849091770561292295797359200202422740513044451716444102510135394745312723647817804871401559312746314168845064682908187178333261930170316365159229192269366546082629686166813247614562894630670397743598029177510205897103508285463590597467335700147174609183174177849125363330866947933109829814804661644171695408302357284622398434443303455107910005499765289877101780609404100183254373559423997175254021764092161513780586410312797229441015118304719747104276093700762742884287731317130781950944998533408641323958082512688481792341823839939039658037647562086521867062132009724416763144846698944925103892167261900612795145968394376642658012310899756746811472205830231060035726523262935614596189875350691360490879731344193062436661189011994836934929823629217687649291599978369785138336519906256618119006230409538764375597832502779867415857527195907297783685392338485792686354422414781752899396906416602292811124035284385876197169780845576020133217049455572557130074098072887298239847786275745394264763315293088866167960511155163858675467697093023819178875701469427331569482109420973786267161006766446072972290969185365352815609986248114846053329640105538179552981488861345039707246133326459474269926769194385709576160737316428836646026858454044309706685076679612404550300101621020732819961605480594748168448621550186943761947608729555134972124349265567258634940776898136703905320802649536041160002376922892426548699397465427364374825936344764865493019598532197385184612683890091679274703336750881363245946810329283231518411200892680222565873295455769749877165098735818247865440828594530887345779880969022205554515415140488433891791379899764187701455963309201612022554695734909327951321214516098827476925975475583105406090209105131594101342658586806574821051770596469522296052406063047244384050529615413286526293672476591923999313617347315957839603657404115315272531348445573319328258908729668042925222825580227260670649756827986975703910022182140932074499742288957410165336113960469053035872357856247139909866375847403581966530136294108316269278541031977834764159437975348551426344528202009281930068370790493717015585999436576860959047144853249404504563594247604483139636461318572071375214132271562469147660010161886106507394051751933771738372151813564585549787697325551805697665844625307792781901399262501484046939039043808911539405858593379486038890613053216572494610266291093969259817949725277151268424425091843303978028529100172031048605813031943314526659862472120030990951593502608081595273075454447207366609428360779813385706015772584918582997054479181461256032851131948481947597560537355987200778194133139889107954315599458594764033411523640402185177065834686909308497538120749038318590528257768220572639272194173112187766876090104816694583961635194226053931690026304530605575838987338505988798162862029001765280855657318285268584851494797386665264842508590043636271673477731914700591048507844973398901331371389291321202764098378729680093689387323742980214308498987177335664635774815582280460130116961866658570305305422101462670919315947858251198209284303350927601453884382024790424321948731805086857529746449596741265497672466407574786593305248250438048827929028648574414560524457899316457745725369933149669219857477488338257624237585162954729170432746962854421002316105235282488896618731837923428081379420989648366077463488853815959489527604195267137738084415381362057676311116747750602178394211815358641328284423460711803875746945007718268246264027886753507576942312147628618147470768363890831879110673680473125194081978031176066441829296738912745009018647683948512034978624311269207157899847929968950738427900374034917471014113595386615569316459929596824742575162154617851176495783274312180524731269727558094324613131797647646737102025183992767900898375402123872388998559459363126911325869612420906618767020073372097783364853937168567647661535325519573593978512514458863446338098190407842069432437262687360579560331377799480288857275123305304782596861595504653220543790231100623877203820554389890282066753656567938896350742351474564267965956250267233843545767169714935498371933775292673106467599398484655656435124149397611617135456918193970483242613083307121156954480755843633618616824223586562156124857098687807770167212255690748199167951872672479756605668589382134186947454137489975718984249819492483098481436677615955725690565848948210746160626538945619664473587005998018503459780042932787411122247172502772443927750127030826106314970169257801708603343331604052985065525441431297813375256021487280731614197724518881836945516765335767966370574364344689536873908621978350488990260823013264393425406279202231764682063149211280480136807064869366443842364538764034366647033379125294480335783820583203385188818869012801944369765108160165558437223350698068614883230760680068389488489567603292890201442350653027503604678268019855446262919870534346820813698136133565505889073419093799542029895482472376922437572874049357137067068356404032199891132517846306954776162879921871939607954648016700911449834498140958146184246519136679632937542828743897089388863712440784844663263484481848065457224596843401967596810832845834457189226423841936555739351290436913435920212891945812009017328013632063041494942745226432873776439851459074697763112944524026663138265349373431257901957532974177609550367729423746360698430621608367159794970278404897301208663900678021195235038917117909391599184306248285596993621337855627212999937291141930872434352018689382159977924398933896909470254156365765130696518381742042449390241138484184902156681664860992547280169224785890361023262781841321492295059331476899438666056108664576593549469275950922987401408776020671198855502622449646463858695486393618325838974108413167583263455431488702430341829000928710534952225827594046151270437943350028599068011420843488865080572088891554394933259012117411415899332022553502764577773865923472762567933494819440592589633563382862665042419158868969780028574440099902967984290678472911047679069809347423563031514200171931422044819166567203894002223523737218940874416773088102110372217449595269543654456818064599003832667299951576355984567159723511991314903034027017796625863199062709678650266848875106258355914114813688133926265086965320091287579797682568396579512933675036277441862445675554886263256269850943143621271581820875511905906738568224410119960425787022081526460763468548630766527745176241475897290800809700042068550344008772220110643474795356582503231693280252935970230873608631321660629123379297709474500247046881154055478823044277380167648295563416492374039025890999149322049487960066492694841035382290417008447669214463270079802158052300735766944132650239231749043618794291573572793778049756640049189649382477507347712205756497598671181236748464115132880485932956823041499851102021348408896224241011908456748565024371821205122213879399875280426858834931556024976543474441633270377712544152955167456442722420185774432681881448576211316940945508787551536113244467516280572895453289240219125043360841234037685273875855915519451931281504351875279513480046681235313443663480691226788239304617503746095551812762410291404011093517991370083470134112496653032915409529082710397501451640088626120592319771647452703700684998138666765549589201658070041639649433622897089703695759093167765513088223116361346796683985669295645313121244530709730146269576118336657213818852487303653432363836568718073141485601366927860895183879573106223041677445652137556775841639886742639264743754206582882790721963782410970614217876720022517390656132256896715766391106305698723265574984233100404167626953735752397916333758463919534108678499376911306342858211237660786402288435648863390908712319855269693176497597022995592733155802264397897648727067993747803327246086333599325842765146032970690167286434062742252991195360952325255131728677942476283429261038991369567167201264307065377321083219001260729367098993752623368057691654313564755253394012210180072875997016827437185929316537638646957554022550435563010417439877481682238621656849119797221211455631720818416850411390309935485460105935466910743456804993267460689084863930065427457984005590380514903232025061898078829658068683205849087699550869456802492518709642047161261302219400639582599279657047086867139751083572203931942361464006178600288549255734953368917832122739987491498337119458697723263186875992865661233718986999237548767676539568914180759038878685160615955595385312824264841341265815023427756610117999146544538504016223231604412794245504941990087567798932301518477098205724491136204352226259187104302166514615863130844445147963033026032487397708062243081667482784293189209082368132230269300863792730023528665351949030043249519511308474120404640268247164176986913714924452313869623427783761233101153260215666771506003540794331625663664835582994938675718674922045272862184119446831437760720275350206082698400096652752113721690970784638365268695097564908772003156219876822346906366637257309683219439891850999724778299165461020628703562469281538080978656976751304892706481247093857520533430702494068505188197114107409257434304947644122786077347569752109575841268805808075442460944729137930280469364079458070638222181746655820418302623954494963431183025862415707114744531687994529761970209459762841832636047553184550513370265510971157604280442059227713324760948293527111951829866552317220359322718516175920970348405263316403897306246668531019403992672735202795673396591663521867342610456036710941823716153521072948027883290164092013849333341283045018954784549338714966282512368045560093800159806479813623541622176520268321408570018162365398405180514510562157428610429531936572424426043321338858349467250992716591749496199235935124640309631550900200564873058324822675255480921911378882317335853642297512402108336484136759917076848960907708189507013749591194658232803790234177159727425703938955484835729342125692966778840212190768894430228637764619943224700770997584533641084423868412293853171055772028674006760796841650549153115556357687130915792743869405298602062502844527500912466721151936182068917578642904538618753354818283131044392641432755580979724838922708679056070841330673112618184481092424242633548336110379736269885515558187911213826951814690942786050636105216771754989858768615283379482014165957692900017972684291642945198818139765188480915860029652671084731379262719056306070079177334771418611892261862529553118771719684937770579871625775316568041550534706671090588046879549635480807335789587182193598824324686597133187292106013793995945283914467254496360207299086108381175940470807540106714189101769810520871256256115979085535091237181179106763733876326246669014736162237731583252866938940118254919982673895828801190563366963223179714594028382944113293509405848693310509041231153268652937946796126106047789630034400633173557815504655994892281550243865619545041283851112438781539469377161263540354655434034809567354550543071464080129316928350198942383385350119935826428251721697193161607259015077799163528092498699545132564590777619061089519893021945854876598751895498009640478943142220814719233028336459576625863906537373248676253649741502014421453563183653940740290392508814395977118360658173646316136555354880077361563696847104454009581443665893989986969701802793326054380487843323463737601310090751719832522241723093412421529206288291892876377162282379665358943019124109938760917508055239016826235317449446039977164952667005128104962707619393372259663418526119165745638949873730913409903320839456016027789203871430054632510249042820153194543706746506216437339204892134616276341149705993278930323724806178692534029231781973408749763096416873456785179529695981028162939481912601417018592674384351489938210944010854223489794589380446636316283069772155602017615764125095083613045681559809626767304889817434607339803477178223021800730852632218924056405535577505077749237605389510190073668510249964020136061072190030749926070587265181675511530329026907197907861255729708373384416439154957687900775439801770938124152671594548366795445855270802784595405015884858063399084227040382957464804086812144808829346176955356582269662965526229751039154430478462195195391760410738628915275091687742969198183920659319980605727347504481116672856847001245999583171410405359859133505879687296751279813758095249922780964066746218319077651947177100018531128164646447803777489769707793455002139479848756070406426990729396956353022746289622704130436367037699625394039301057557635832349578462240052733723696284702283011313941344373035772101112658551681433101685273203120060281192421137993004386959723160367277913608511823996078605816819074154594509413477454303042257519121887676100353130474207606431159463714727707698954659867701513679132737801642315675650166524342569441978384709029380941196668675565012708531823214376291973709429247143396806101744805253884771303646959429681733089801210732012447855504818447317690269899463064846534754876532083651544948761081695384642521228937495805021425546276493245904564983929861682897267284813487243494114851287699236170230109122611486889392300983550905932557080989740049178976045657087655752331984890528529794338604898510605563503719454433501963274868653580010513359176513007517451736074142911168108638039446555067627729666958239299704559020997810664446928263563413273307712275584435320048946445384176549659038315227781958164610358498432175903950319721179855126906632235888185466716189641336635316789097168669725576647508640216305630725939700459755087561052332894490408234197103231062661984064603692184407114846436356679295277498679562068312487725229790255914048106969526855293224269331897847944725278542715774147264447585902199473165987721345800541244291928996185609934121924172084264198147474133890020739193220407603170900097647716528354968275707484051930131759150771538371038006914118702667603450237138528408486182109281612099165093381760390869311844687148273850923048681708401169237550046292282961930751205888900549459146826441657629586328664441079565903315832763235022034180911328583738643803156823257313409825583836616385331496604098593858822105202642479304957217759047200613378661293772229508534559428847851070961987140854405518897462267447580811369303677039365712322473675259534973650687378596296319882090943299494484577957655941346130248166753578233963810395171918822691239924487264999265453063853060957323267485128131267850224366383350229353613136080562204483024727865281916881588906321274167231127208032964005291428065766454448605848881270988076626185349174204252352725425554378494264699271232681514953945662248535434771319492036915558157316876480488469336548465943048693402766340175354388536157364966782081438364055326498362456462527509335428661683852931466205493480365424309608967295047834209798988243823764407173298600013743882643115089499122336827040132906875046113036348244866374646301416544755071120470156617229172895904571290434882336706005138310980039161707276957792688917540853523732452385635025769846188199950044464684198918233855398666329594489712779947289135919346727574599224434775829669937485172899786276832657904278653850535488028356800987104529676638697214964015674496397980513825622412087333787248937906987751614318254188209603460415841282079639291902128379851204993882792846300747783971479217930357306437690471105485529357554557504325911241164138277619665016208744353863722134191647930606531824820462297110889857106184187212296911377362373822932214629940826401438634702274648520923689955672304803588462407451788427062817672765869896509152232474543647762561670281425215131507880158761772556293457681141231689830784077457845304978570268975177733615868868765614023676752766841182918290667796462349819608085651068917528280225683002075402499111154955114659212644778083575587524152045643409562551288746899077858460609962946068939174942326378596387260744349209547476935734416311891180238402398479042735037905683478704327137707533113289217567145410968392474348806935141435247585539903344518561827810213862372924112326498240840931778331890498502155333005463020453187783132253117553585016454691109499181685668795283859096366426841920937987208930114958679281621339944419774042960958971072078943536947662734322399608925689949739793877470245460640076096431015848999557220528665430681676756780089931091068403830735371002901294161335263312506456794203462245766821952197966332446835026848144765560131260240414891477555042009304812381674191367104944664892736099624985787865434379465062334048308594009159457836878661340352491898072425465943191191331012068965962647319026487373741309493026602737089946344909607108019752284386685965640325403510304809935865264711692644609775534518069817300502053849856626113004884707195312483966801560665772718074995502435233117419637256544291057758013456227320370203488185781169294097325237351012897130143940653924841783573849419150947205186112763699700240324242677817627339183694618721844934822849096988744650709734119227058941023232498322186180096459931977397630061339469959360235039106921948616071057061700361673502228828571456662103640857169624591153165239854824206872066994233691733815860318119476363767461399894307016095091316102829548072617698448740409295280475441346856662786584463709742286909331500455707920789470380739443433607098974756591327498742795645471706192860006485015077398331852939988673738237993198545580395089502084893012793063778678460078038355069263092771943570885408163200554673187553564427641770246245243483746708160445078885771313581773778084848047735644759980278812146804699461937148290393557282629457747670655869252767092546487858846674884910290933638485085152542143948198541177722228001332727789909501177894491024472155523113393202624600621869722268307273947734415759309726823720098856669027646499158329726022409943436732226766884982576903893240071905110188231539951263924446306334684868397284075229584000958715037093861116504335448199600361210725800428389207815655287857123630996107767597281843323656577663752843882255088016322382187961909768782339489523184169053105342134734980751201148632487965944573588984913252392127439014594805450774657485540524864740287396204364342094122657636139494043338125212574930373965152148472367793491370214876087166757888702281925834015302139548846237963429897468816855791235805595673313072708889005758193756859578861995949578668853927863599050042268374771217816795872311750388383669748074591372151108301755123331967897727856751471355487153882694007843387302236781862462760959298483966768967232175843445268795535568804815347984578778813265772735383402461910428974553359648819915139077992997537177602559065757214941505909954364038869329510379226589797248029453419955138294711521292716418324755975604627717511877104264936117759752883565063615847669997218964222843914930616558157894086278128338765852726501492003347612629867290119095507565325310183577265616379115507050024335975968481349661927560517373074719085689712743860160130754814058029052178862062508956768317397829180375465626295286000110284350214104007741016061255724027743922357132112561935210728595669103049893281530066760283177829228032751516795858031192250040534295555772489520330064203430349592145610540094315631941084181133948919618226314885909664702952940383420969314526976654897113496003817700516914470616652508433909673556280188734260118888308610330833743669357653682167573315574953708583783171428967330439168187174793895456149618546098486554788514980550959122482267327177887008153632897789237894528916729013184168173268895043659737181334435232763867897173599627185146319723171203580067113730110173476563533804596606124157595496687220955683062665941055823986212753061532214889842300281068274412692147610273787100684367069957690839862534612009120216299931617750827918969416229953205136343052964534549483925319983606627979547797668668231832444479467026383304202477295328065188776506146713554355539312605891828688900933924259522809073640222749515370009944066909350826998998276517077956640153398286280668300110532320366625834780976000215880563219315420742418164813535977783747558290372982008850497341759778470391580507373436485503519714288307041969145665149797203509111912327948457603022258516670163416656367135812860695611598751595013925007811491631558002005935912423119643992867774367126675376004872815747248151762326994555331600766368130594205433766357540918867385957679550296793349510429168408002288736803546845177730319246248760152659509935629897870482576620859656666194969052106007060718383891857107995506659075646275768331500764730951908728153452757665397402002644427967736986654677256835900280382968798694939299566867074347256888296191372649891685971885381554957650818363590737032159261284819992970132465479969819229096428354138661942207438691670427203765213432475493981263583378765465470519950707513684607276220093576801133228778455835948839447758039861380104292765602890531941462630582188616431293076592486968249155635622112028845163321348875097644452145706590307170591479842868927717401111913114697657997365745305892516785044354189406880596155979389325882323556688741930649847877848457234968270012311662625311531744566288821083481081673465923773938926607273897535566705647693832132046028185270572284333492091361795300252884628649669777601352469683806188776038516383163303848174241485070704774827657491372493258435522375819534488694076953159963467224685642031211101547452668297715774650744448966566462871402324848139392648567810277865470575229362185162844860577188856686376911091192288949799699991870694645895430727334058241933995620927909750159992159934042611462261137719788598952120420275431437354609905359694802446112786442814158353841449142787540625212802824827485896110258655515891889627316221217035367224906506890547370408430127770242144061863261925244758653496817498900325918792943881020267519141802353868845155944895376422692165611002195258349600800582454353304954557523876984782673104691365238865862668162968573277168917492455898351176661460572486920989309371255026597409163974407755447025549512137550198324739542456625828863973579827537737483562073948029704797580791199833848292903356967315422969353223329456512600229699964408663131047557175617320920898444275158376085518554517903631823089175945894114946620827818171514754053351546281776820685831881111375782213773298455542224280698725427550464246248517867671174595074718004152507493570869571262445497398613627660184106661442144075748821453627428075507446626719791794587757877149191899253942993715051659809708017987150592347997041020445879634605127392741284477712549420602584535113840826306686350251276843606046263315113425781602771604619346825036721231857182406494071159663925276935343478637458496631309825557694623761686304438939027551681630057486277434633969338234160553739304933685153595984407748763613051979629581425693158329618836260625259910621696935682295667050262813180695849599957945469578773502141761518169868533224779163626501931633091956072279707397527278477671911497995300655112943359348095304509894473723104641111717260981065466514228305227411973234796840339041646945097265362349537255313242386776035926158537461718809543071691895341156027706409827427500491716199278096597162498321254964658183176457004375869200313622543059665535826043067593470153787297895515671656930260080263566005288084600919428178041316091899356063752598855695462576953245899862157508271413594219613187836718523245243991964675137259882325509185199393680413751571359046525206342928808005256378811942091689095664943699731722578685061875074731906813809554255736759001168450760634797551566675257243177334996409470014276748139730546551994632935924684730341115579901896832261130289435356634737645336053857055454548128778470230409222596885945126769744191821491878483307001576378852627001143015613457640130409283424399715565691378048309521252897819514359425214938121322645968930091305609695298523330763784870340963979910871325415642529946239781120469352755573419329724838029662811288275817401315796139865508157951967415405113663082685313540636814260587558382110431298112539931651719501972861097970862387992056037269058997925034938974257856667444900323557662265147346452455018228526883909969003937571029799119990420604239303657128014243582743386985602215761919641511716552075448675224584492119515456589285467211514067038048745746880578483737469004123972340974601787452464828365539404959619583782145318801308322763557341088679347703628396934189237668092644589446653370769865628790601045460978254999038173688666288977009495704637982302546716856993410004182817313964077043727180380577800701444435902349597802995659171387355619665802500597641682422383492803063874453025844465599124339787001437298600887379981271971896931738665722825253029129442287030633729021181471044020839146962623443635926122278211455649462615529147081967477789768414914825495694305143270759636238891864004933257560240519664225423413225795938844396889631130181908632004031139998023580644227725018362537492494026064712189522445588327019523945043534077796041093635950931144981750606943152855972945619900642894760110540038773119213090648739293078758181978927466392611880171115286115175772129439207317252065363121011365295891088065657324656194750464132983383439118857107330110750340634420173039024314758391726106193651654432716630047454805927713572700386955570326510678330337924053908528998468425356142513017534081203261905804636682582793558548473748869657011244571147878519323647835317133271007015900374438451379518349941774916331332660436441168696977173295664918856708388559745991849038504680146742725783152074565890659676625279227757933916899106929073810665085315496196023071656680652973707825105864081376776052825604787881009872818251131729685046135291056545122859814212824823533240735265049343332401115068136105871722886601106417304180240410473359918368899666225381817386799849675314332029647900015776899152608960034847825390788102804059166506391845320772293254733244312967257016152321502850241869130800889724073015843846889335286553386401846225430608505962398211896836593436237905669424190560564782326294631840202441149535368032375116810530542178158565669975807060338523666768547967489410090988675636109450455944426958682220136331597928337583222231850852370589795195864490294678889184673206963219887899756468896071815788823970970835584190059157313612405412593338625445792147628375535513478835756981004379644346757972118581438222529818404596340124705392597576113159516227286412433875764518568441026635409347969851573496770049729604937227579028547820054201217354611408849718625230612294227398191681383219873105235670916513594330806518158608061077783093592528805245104516376173847911385875746105617924139913746135169932648594825500782752030463049932305674811021277232748494572927620050669373574418441080821216970108813546548328701262799332979627094569483403042159532124098970095641404200671360831154256601975425047697630868633062412196506669557454823030849359870609934259527803800444316664922918039814417421984416042417106106315338807172391798725490587044517229272522641371357019472096940551713132273442888460597265011789094680619870074521533326082504842183664107823443900118884946134302039943181551043912516340210854822251327140336892325259160748543903282936097662431766187809880074022683502141460649011511453776595727316984947118953809240506504332081359268343121247485404280253844752967868012540141025251217652646189162249725373870432104679726996378178135295570143082101608337432561095612245764293885903976776193534303185573928703602284858654883615365943059907449378833309978670429859317968199770674915645380435329497737507118537909950765194015725691984561460692454283940244248182488308766246672106309906819245949357474459027692802288301654915279698450115623402267374469292876648869265104065199334599974958129181657767015653017693657764805935154536231191459236924922049253410696413323468406234382273082018349135011750435347916763509094339659765374864489361017214166706630022829782581771710742251681153395724460611443346947811648542276693861479799284653682107458920416056762649726578479243010823309055119444258442758363538411378270837099900834199265415990840144357908886983031232364835599766641445546115595184982273676646429843271981692967844790041825410850922342800283338942367249223217447094087852069574858352224471812023210496992450900652057600747035542434626278666621751267348576515950410915018477371732359067059321439429070366031815637282049468667860811819956314981394113019841626296306894366982138039171555470601385641653570514649473874000484672822065141880399472233460198752655859884247002966059703794647224322023347602692265155355203005018119618647220153801915227913845512768157151660445592541847878976148697958230067316002994076898836979857570374001606212477003803260554298354757830955638266521436446638003229833696954850689123116516031933894829044598983365536499674977321455142997494979027310402723077692228059415793895276239856773536041769364009107689853464538661579009456416959832022522677607437798255272404254451909541484210931044703523912926184561920112148605597402542117233410967178477197836265363922733173571607790636728543576142521734394803831115554398794342215791111373048839772366154364611412537169665936513152054966749816493183774812334067718722185370799793555870643656017540597261944844234822145615349253494893611208889979604887317179126994898790026706868476098291698246032669297818722381208403890669509247127054403776913982033570792908757153517820409457735305081773489316590780080695864819370579739026471963237970191588949083420285449379000887711063457446906687668680690789024698011278007905475801047372484147988706264375469988958639662703370282370689183703272719772750458262923095694269272908594092076628290264262374026997327266612002686353412862882841900686287606146305489002942804937415417657453132008245652645918083719399937866475606611631745883029443529579919133964960454399666067250595777577044314144030593460615195817435018726638696115419939924433457027819403773595457259418398838018762375775192580554672772502263542820112031848564876094914005794406641938141604132518612541923772734406662121747557996146199177846780172024508207150558484468707426655793211345663331489255391644599132684978132048184259722095649152937541674592688026925357848951775058393953087894036458522063182889997548572229899836903030382842849255513171144450677983968818799706676520764285684642798191784948373935493982574625200174451241846381394881915262304417695709708702093655480850554333465799010220852936486664439617379194768973315845189730953423867183017122198947898360206218816427194200677986494029869837668817603534106065320484101191273086084943506248877216675113012089609850806743871591642895312602647359300184995045812124889920848859810415030125245411053229572573287800605677588773742419730381984769633551390461767335600274964259751596838251060323723139990278302556803995715034945495143664458659954403465266727703090088965428905795126827426740593525746655726937501071808983467927791722353352691333784464273745217661968112292486950364521227227337149434113510341328183289051114183412804369057147760498009893583655695310564936547280157796871888842595455096856662215813576105884754867636662394550772127020670738115524540006467438776811263977120441769790974884567117651809465093547913223217548123276167771702884131149082246059372307826931357175708539886712632855164579147131967327776356855118945909346667044775393714219310458992220637387453900589054632594098494019708265849766670101025476370869190834624555458801865421118772080132329218704643044622243263404544527850548628385232012425004541971453829585966031437418743602449267001077640672075228731212091358737828337838667371989015510450366830216425291570783002972525482614388715313585780541537852472148662715363875154651437122153519617478402810347067714912756082389904049488578266628365056635984110932979309887588666890484708099492898766251842727261200375639908607341363418761530663693755523332744378110936411949535028070281169244630818300081739910708411643344488891529149475454332331315063785021168730623739243593056899912749467047920039494096878058815822415411402698076616072106714846785483800542307785889526031535880343811241510993520360534538193882504682383198753195708708009919736690835857377081422669814901981513053315790833562129554218911308391644444599109438735726262712249757601960924945201222771217964366257814958292147893079924255289136414340917441837381808406273831671224800367581498346525980552719285499511925466832441890564772429333602184466394360161469950252597650442884534057009018072234021561577648184827891824366499578526770109530700081085147172801207458741440036627905593844495279822039041640644436712293964210724693567327868960147554510412155285914026443785815215369025774957619563956954478787903699647486394152724244574007548246638697497484898044224841991557931453289855303642013931059705711696613942932465090697174790203558171403123031943728227478493018866139209387105750658086528607401814273855361528761905864638875658979885925671048898933846343192250378905037347474046566804050442020445441051356888809102998394591409594856466587756107293288977679952208093361231633225377916916932751998525152725474327312591692508767365909092258454027044934279776119763766496360319783231857279036191619327584757629831580185035821009440343193366593885098133877969468599780246605202287992277254102235017770246605350819781009870637530050601121878773203473101647002570070156908992586272401925857781597667308235743869008360885744467839636171779528233728297856496674629857306336971234422084005236542918509023343765227488237159550784557116251149888759038457312426040969398652295042214162013743713610405170461591832358160048364323179866809417241891726749636362603718838743500049467252778136320009359154218977066309482894174240693400712600550187869589141680680774795713002208623788176514188961246483049718014882742872171913093001390069996581941588590705678464474451644976009939472777569401320057573992195643062265564696215255678232508226930588057466570881219702778691918572362391332198982700124542223119405160383309067796652516074651484207155850680931179782779312948478771854039474331044513786512543592133085372412309813353196002885455990904152356012673111951416753936223513419194437821680404943975503581374615598076147524557656035670667838071498104230159934081938610130077181921742042669437813086130520487544854010086814260377462357873673110475473965825365273828326164343012255814973248332277866829972204162292405590034892978685787183982322348564544739083603381348269574877156011263924012299027001370734728049342879939406996547950412893855382464749880183880472233607149382696241087300834177745977216375023919659383515771734636267841881780582509330344313351811167408990142092104802036954859085732683852412008237744104320668131113506097706651446774375098350356732544002621557554160291423023648563089299656910654319862390082781115164653940178283287973699865151765606377592145545963716221062063703302908856008949393621994383010239350806435361287530503595082909764526740008557563811287204784917413016771061549216420730252241279726635994884663238568749685061648874447524977486836707163255810767117981268196066059196380331720664748579853360420452413909483637237062367271285204798499181574258952289047622773240718211667561151738219225712204247006367190366382014007019848050185157688860136905607430577840127323175285378180166281062020031254869965955905947238132099482694059554677551285604316072219466859786645212336318418023852263853940752646808749294522753348385423660994256709030372847871241231554575870930219847714594586700546289369208244148532819887570047357329795929335565577136128149460621592150043055586014054063113621745366415047598550166197310200700702414474609803687725052963550245240345032479418270697477894379272013885836376523261315864117266015811546841201615131176709436817354810641047284315927385805697523677981606560998443629407804068950929902741263972367571805195824954154419474375402403855861107454833685459232871925845556947949893322264094635429125029846773502702282519992753895183680242745960305684408709803244944198906736923006205216127137923472789036197200024563151702494225901353664454012993507494661978684670315290530937649406429401490486831636403439513650537348241200484498834978678521322568753826736167745689951245234406203770443914427855990177403998197987278300770126530850861587964903306761483432751186231591691513372553768101144361209241512792804267132604420240700636921508461866091210495205894714717371400751235698367247483643877304296930292950129080561371181054867741926128726177778440191562969868806885728533372216862746176489557517101578529992487319315450146012267149984918205586909015368610282758447295239037657856009243845132562333703339782589307592221961621924398806330243916716329871124222838272830597758858731042375593661363688173254109685345517301292262271774914045750912793413677366696877212028237263846139199704278859302841123582418708166966122548862420796141063715770701149721660943087007804073957751037297129867465251431977074102222655539732802590482146044387371587412696669649856583469350652674403049028272398582810548984988344308160086627770018170716847389562093599164086591309801038507201770298076075533155923965909402798242235743547420842678630441432874461088582135426315361556730499829434007472559447952539311747067753856241161987745106661753320390864070911139053186878607937838831120010334707128293520052607341645321062353106180977529323308752920706945042430317273526402299472768144427406866921793771865388962771493528232205832241900630374633764574437110130986803360823845344539601558336247569600954983331778671498161471741752571446597409855822003876296189945629957557412613907022884200179062666833056285999582008461493174630903620634412781000265147378278932265324527517100713847061635351625602264976717126271531396369596847426645920067448838362175412706289055973937197516932833016792862506561587480975905858521427000376921991514941917163417076165636043027097442943341187516214893878076917907588122391074983858582822277130789436751991658685737870341274279425301039304476794213621085105998894419215169094037379896938959588129884302599839291694062792667294056519362256678755985056979501181147280211560777175470145863116465306121786657404936743528331295924756023548005809812358674773679936781052262482277754865900887831466838372550333849953274965910164774407751653196155077268358580000847356343953358195739426683747400462758950643470343962700766384048790094125556370613058609733094598969150983971616182334701266044848413503827147363699687800654833485286215193964634603671533687135190963378255154065612651166785774464011969286894299789202013396745329892381709999692038966068110777013820029222974337234944577327724202310332037841362654041103241903413381524229332067671682670541433803537839002719005796013287100257851780842647169704057666871527693490142024410864058602084287010203816632312280678013915750300076123879999207205683818809283295270381440883273474422225853007543112300964638358391355627158851408492314922409162446026541746556868749698010202971372760551124800997175490523086784204280991202658681781802559873451945839674066032904343349996246646719384431915549900849205433020789318040088260738870040287248560179487201346548766001143073944743281996370868802677229597073295026597377916240002687006250908887782645430487560455019901242027167012953304101497503209526857724690942128562911238462702406525419083537521261369575057683205036507797714705726947016756587184062935331979410700515053389532745260452161420447357692471025572648848145557885364491767295645044262322073895176475969815098124990063929838535609815686025567459970067740707178480560944782146022865178262914744774592556813309529052105237539059392830144617895705659305860246658239612150811391437468086994539768083737062840705829808883393868835762021427818551158646270065640354462629986024334208697951323837671869177626710497259219185140909367448095167059474572891692281259031636704998292578157294046433919582652663352770521833791005936547662960539825774432835181215338810865712093766293211715573731100654370618120616265245968871977233609215521586832352686272825441235621019358934217320166382975913154175975269690646419823430018538200608299404892662587439080466925388760008813953713020880736218342380798671218218536100103776200853347918011677094597966064421850486170442531811658890449311890092271927581518952036973897955200822709443328998180894753702414640489933761358604994230658459521947460401401976304233078936763129629975064859914442448950958566702164538551394514494015594475304515960994557493338874268008887966072455399594949925664512640866195490280081471313178184317617525434765392666133704578013300018150975083512791166240471385741344985950482428000472501826287361993631417664935743735498348083122681822340383477890073369265990527129041163864955016082126833350915395862380228049220999391837282016821994448298868129181454076865726723452558479549904938907263139680820468403631556534229893377053322600186512946880312107390141133676166002981208176928164872324289311860101286971378003686740707711339101569966783953468040355453717059413501142981007626443676870672839587467987743251503097730076941808347481992643244142151131601846128416674184919068965536509518972733812087920005679823836607779215407134855289297201814128490568619523386183940321091910499589024772520215488575338587331749084512579733641446558664505093246838153347684957541381431253099482123191506351498891972033306900314339853338222644775889110023366409001497433240265393593962254821273437839315188682024411190934077450401428315105320849010692677932276624031674931792058833509029281055914442043667940026343365698158604676143072303911257404255925655985382469586750150908642111578174746767695925790707993871728622265985912630303377905061134643942669250527826477807092332270379212996166479446300623137403820529324915517589872997700973715105841491010856944259409612635171158822356083650584556385607979817238807971680545478207721401263871916012484050606020660044388694869704724010153758828709752285579500314809566399900989286953365039514999762164059915744763197637669063791933789749874633732320283215269265722881967639608700909272892390683069811202802195953961765947857566867467115239734025237311721729199966210544438372710368838902556174988776977319171168549436467289709688672330968609266183953310539894095895161047133577275641960876075835963541896010112569577952165038544297388157106951051664488476649106224605049075487085715726474229421245532158397360876042807395861291217228757105213373836803180637499481588810315780379626351486335305767493504289356581247282558525389231209619295498184639934351716500655153750314454465770144913276601881888100795111790522915432830420340155764071957326696820523101738133031930045478395676384868133264843194438897161481139611063920006263933665190437877638960372868618827112055625636025720710143620529034234575634161917888898526188410011925702911068935991631195252892579151651767548496030823561598460336518286206193702659050099831190965737315512632276497206664438910040066531492258029794841824889419649877461821544431420493963329998333673320793396380214274051424280728651841730848035844558811759922345124530925782079662322078292638268758858728911631939398099663575281316544956011529368984919355202442683885619965663305916011865754935580609262842315069398275080920499772197689495342778578924717007654757959130201406437443977700000179296035760689218543358356519973819510788013917571153757077289201272022242306340745294631150084145884145699780725723365597008954744424401890129157248699825371048882379651754740790014585785035041459639712667003500304124361732342977092394355611080857469681943500331045458372957444709896011518767828176674215739723525502773778719587158163793704338726949153492638711704824171317886936178494001784860812014823522814870887016598847745006199644014972849101576513039765223999891048249470311931489685810513734908201119300709891030148149656292052808566429972230843491023647273849966825023679033467139449575745923175056905586280550531290569538888419498941310473394008524737749961425746176167744341549847743065497667078186029946610723809760093656149782209678189560863922336959794675341402505217129307999681323536179646769933138614135136436712562737998352691957827992202633383826065151065935970949548855863892007462571820630466307286877976944677377812681258491816972433840082866906152777240171507442067973211337257920453160690566779659138685155080065109669215514486625743689671229031029322614090263384987345213121473381412937151829545130996026032085923113369157773206636655208670848361539223433151168350625610433171030829710379014449743049487204025527923866420157810444164526019885206157950805564510104168603628266228495415769169805211544697667628386198650581662731669748037975116077523233015567143476436386662576622030805424056054657023966724775812428850043166661501201529794726270109672439087335590203265981245624445682416208616479400634588123532238645591512735526401232686968397616812058583372065382707121490148603078626264918153904082105926605997169133205456851022079231008402440643446552575115993016133161754219245686956610364993045485128390969160314764162202407800793034671857880439128810927457931507451679014395019154612626785569298877951774559407873780907103848414381372356434203791809003224596479300362285860491376907330692879831775602836582718802015756319394507935083180329220266713144289888659699416773706952399112547503171463202011742454427025903832714946217391278519814296780281556304297863637984608946069632485829727224264330730703282511999526651859162461261253754464161264923398701372678782789323029590618962251348701667903138731413166035428226435059563693495855413961509292017737598482371918720564725708465027877835915553531213459093751210443748623263772930291158834455454264084780554539645470298803551941649855547790619139095423111429338327406707659604639307503729015918308711037891424585449119179072378075020389877691407650414863415911350549636280660789462211773619214563958787115871824828850162560593526490904826519464549259083705788054359831936632389162965063320875047871865393564629228308781286585965508042613698985986295750633579855556131609631681800229753147248641190793264367744940329459487004621786356355146707976947372670146769031747719315994643875985648042132725891387548838691306693123159008687565724846251413118653757931782926219423426305124228570708806576617689248513221153332981292501466325639711315666036286930717114913894278158691149196253913758282556141719128578579694271341346551011154123281851344555391219187407814273825173728129901094729939215492020736406827977391501120758911304685673680082997201332141217855942499797518234293356744490087819328435138233054571971153379558425316421872693564540377498963183174318029028926853061160507013371960060426480622052636452804820416639074922024381545975176198272164020509716163451816039796358264516935099473772781282231211874891018042775573717691738451362720825191529425115464664297852909170218268649632368444936877723418598848861169395435875838870985749579808661742672924952754957098514445960821107719721728977748650431022630304887644859007537636489590830121694603818935870151803837650983367757970661936700258527621833513460053256657404980434070320503281567812566806237572721159949801645029037829797959774777462826961839573679528377820086522124174889535724183621784563425194682775138421227984175094800630839293503508382581623866880988570380604156865643013000622219260657700318931126500600630572846677851186335688181652811200441899921930352627413768157307331346052022235116601039143426541127466796893343080613544640379103155192841792218687165191701412366557869269325815634531786048830539951776990381225753418841463767664761835199467055332717142175624510897599321723020872870872360660244441635399486196530083246158735655723447764282311015274331165416827722072327205988484886356915631941999725859570539502362372133981658409057716935478284545979990624883890066032496709306593550285706697698193782902443167862500004583543212730139012024585920372074652838664834094436157972568258372194958954835324754940360165629151982582739475115483423289777817404836775501673939253344517484561554170300137584861377559342142752428001851268804903898084102966647113200336386399030119971233931044608742244076614514337121561376686728624698957687454696593102644437017742929091065593309006995896275994732956074913952701214443176289289328109163218100966409889269300611230517112982854218988386794410502849264922317639423242292580606636010303472509104788651432227213176444532555703632510568412040711032052055542880275629819853707645505730715669748614909167131781368846269174084907425338880269727554193995513915563395369845686766200753070562764392796319190353473090649090785325821890989681385535183301269107857031413620735173274147404353118320133157496801046819992728617158256184894530355212422113963605872292653058833523174051214800752241800485756328771800821201777711387804457713754363190859702197408716268732635548978747635148830433804815112663939857133760217987300814054102435395266599867015312826945480991572787408467585210130854112987148327546957513351762822517640993284608942256669515026441237762255961306898295453867122365416803960798639526626579273116178513121655049005292219201370697542119741717601027693345702071852635207973450536918371052614578183695722385722174907167589637929410683825932481008653458124241432813740608202582652921752028126551678874522803540704635954330759245824265250983993842586331889951601660693650576401270918668440378093939583764010756999914579338854675403806837574129206463383839316016472430654816477560495162611010012830940259115420910715872757884097397482811159949238035422885627033709184197267481678271672142807197161607513061494628653118556674565246834881490844809411696144125638989323511659692778706363380955468283808511199176073895809306723058627122611939578582692492774935911720903318139669612034319662409357428851771974164860123275453129903564645612281460953089239680031743843111189118186372476578178023497954250414970120142639861626276971356653763642716940628753914032015526108342505670990166734065924907929901509181966932446899365660746828497068764449026840481694983310114168807345310511436261709164988516940488282397621495685460607168620114956100003280625360996890627065229111012077062796704722597460443497652243414827461126176723868921167243610514571487948558022453726480684037028694028549878661781996821693756817387353340978304428113335383758079453214218071751003617858003586515187504076542120884686052777499354929295010473538729167238687928736858529553487852731803008930663139268129036732729570626009888090747683259693494155986400582556931164319381426042661355018880467694336202853028542708913004903396718160720355293044068379788098910102467203049961609416464184950479348667510317494636890253284535864309286384429642451243583625535058105024143069238240647629296026476665855555675833138685206742224224862018519651589395180313763486281797603626549463182070583915019917132346663619708352032773651618808056453770695246310489171882433618721438343997508298681125518905423464206785263980863964175673755753321148359062484645780892833427982989436680433183737369670876923295327090900660679851094036368598183707140416407942476547848398126881133238875411963296163724696914240666841311670605839892696810805238308417501214378275897273764654673728691282339118867519441580156700061104068744708096721485582972896844893921230857303156481301002946068044855543671214125939241356374706573519034342762622416100178358659231698518423519507510008443830282954596154412453421602438469396105785142728445855349531341225759841305749176812321381037574489070761420313309580553722210479173814638243570472774203192923032612705643364542891261757652223533215094370219285475994926107668855055917062417125199423652291471998880052346169641928964380431731384507400095246605512946553454482881629634149429597832481188013367784285477972407305119803828753982727623627594530379979555872631509745091913173758651427578103054578912509572089237678237061817348492347326152329993024257282116529007338995994390466452982671529777932620652861904239752799480344212771555658581616424380019991918910594499771274815163428201392729924808062190322586373374240255879720928115978951668330533705522562135355837687862894211171990376765549516570219158576740848686627715692460753577031289102547556064155597448389120275063682401497716385874475242466904788056282761789580475112773912437501933949632821118286001542776276580725032011737262238061441699326068781856928756961746840528882199794071929785642830320828549874396765362583842866048449699850501404042280773725947194458471464801302950143499867769211613968192411246756500320637739131664153605498176511901885295985065272366048505078773742351245298038857719077631192969525977439462575382984635241793340620439325658073724212997289025488217705622365102410344514646125237924911251851434684961486369633223526768780097916349474109602959734914308933571587920308233965230017715432647776665151179325747915402897752049761916607444216212007580261643814648921478621901191389744076801026844982967220268132207064874150751495267040067061956078574489252066590930371056949813649313630093238920145387848628635197775826347838623206792226346757994166977482819926561436210716884135798396919562745561071255032649462985692843769706613389994143742304957426284830511298720958724796522005009688284144589295047091947231046454399223239010461760558951047518922190998635738637143126113358078069619285004797755425486831415374012873928165580108424200839429158746677950812905545280965727711266890192070520936249423883219656109373130891357602933281172086745422631624536554594314196000467045190352767467956478693224024906388530312326642746996967857834398195155359771146528465439139674130459132858942306197185798927709020721523983740720839416155584833766594186935964722846159373833999809119568920691669526640473064316719341464635967666931398188860901205590249129134317485722291761956740353684883012683429196834715900303155624642935901369764573536143947284893641678054851650513828452936628639561261576056229590250671488784922969568801298837885693943399809044310419018196613802273210403755080834116368759141370217764846004775221492858229270086991614802167366795156905395466686969001949804938777795690889169450361962024175035954688144481844994095982543824495797265703784429329537530872102990760608826793395003084697249886429753268632872717030875146437565532667033719548530587412559782753577110010182860976567069146866271964717656021679961162906532353949766914410574561807297536024831134321701531855386846474798468957618758072296544288022408567303199329269105478637799365810577633324608418937912581199050584228850923024927363583139041901844567389066957849035320968511258624223630392609085417764601259699509045016058010197263301589158085697161476445029996991754379051223649345871346413763212089355402839643215385470981798239542249915164154950173648874464193874888326492885232010804408579289925696584567858323091673377790220382243751413633877878473673578790031487104989505191861443557823288436220392941227409739047373215995258481896550028888067487438594976577087621960915424556196168733875652066876002928722649119575666907982991606505198916639505035991282818560142025460200589364049223301240564133931831743137922647464419618773540861766469987810473941488115935544158715880183754997374123659359183191419361216842837496950786474162990176628082520959703906940076873545164949793432592322731262750558130118607919240101294650107291581654869976112302505502270720205730081647052516879452747922923817531585747864946727443315703240439565216272170354843590344583836598383825134393107646467555996635201758630146671255145483238905987123809716210447800964715629288809876631778983979585786238050835737718605163477505040928380518344437418694868701593646135592397510697326901719616034474016698292722320344843823209347729562524500649827737683867704469604325729654275544857403028010107747406334473762126267581101448463085481041994380154169127075482381939891167746598236346176124185322203187030715633403987257154879406250290926788118252965730840363542659573908096013842908937265675501001831871955872686857261517783201354681685254166538700532852595982960427703499625221938300859080355150207107454711646821967043189304074222994633427021662157211018785609562582480376322892817537672078795962608699465250004102684405926072378640939788043920509308645155606293039235887565071529246591441235587586297114548250830181594727488690771576188834146559120257246972077721598154026499207407374598535080638748675603664054314119874522364183709062836661877017305857269599483792945648038319521454221418121497876115909354672345629905296784503981311842100437376547473174769415133206886913501079949214093315549445246725390674784445038787470885748660010756317462117937243768658867148825955242166485495658039211081764469716645330943002948836003077308573075469119891498366183169968929439664054277263128915648935661542030823276471601578608526121842409005274296773748632065170562667838269520008615697601833393995865772103213445903598729195696477916516890740436818190169866749338754856675204972112539907962376426796773647379248426661956700706456557356271194344693916632257819592762138002700105703682421358897149713332136239216746976625708970332477512950957125027458341875960579216165916524324970117108438955407966755539154359101284536692432870026089299365772167214102990467786777850641687026963949574580102548316764768143411635836006685525021751993048676524611043092608552431423314389068175950999866152466658650266353106176808235205126941677042014358536960952073870166245185089085561908276733869503473982764536736741779663988808921700438132776598048941732721317636484529604172454773135195401058481442229502568217234732233749298515723603355124821909805954826662747654536217866250778621964666193586541455427918334694085387996935435556689159052938722634479654344303378947591170110739642234761662297521854684555108404044916593190378887961793496295398547536349468895195378018337128850286513837772637624349294253830901294483294482436470280432593621521472550073693104157150251781211043169760266433131811238327435204944684353430198455041029025154786930264219038545762906359217160188754623375267651494118649859354906260709165444297657168046390268768531852779636917378050626896808696404451370237498623115516506967865080018847047800247459998012293394157106360605567614034186079464490936778619431701330791514305065756756765985341636051888217889675890930442837863403106312160974438305680101412687196643617221974039462990382638361907431855994277244825841908001580621200877588107181888627299049449215258793010551160469374960221438923247711356334915304987299567121824403063017346480036410053039419876714839191489107852923644824454566759447401633560185029908040026089921089930355426068703235940841071128390135320503700656061633126017176605472627161605310350747670538292108397932595515534792954538431016284090428000721005610101225065735658232971455052904175317427356700231176731195615766238304180937142507035148321861206904761965237937085315280836155762303869103813535131920722786431291850709032589991441313318200209442247662423540027597200207190711870213908172001852160539264387720571087139177377158001093281326082043994195997311713049192659383141954410973266476341705649832623256278887351903184272497003714760507031461085491478779694398326089046322278740343421388695648980071895194973349907485608587907846387237920752990050324299770156366278261074135294965666452924753201329341105920094467095276683196812093635671128577208815372064522468144878921806921964318665995843327213543705724128110158620693875599927831221025996038922684329191139310616147726257115204676797482608299129970674931147364169248316578846148645336220003322136329168105671355784457517241999706326685181743105933810881237736577364137389307455847141989413612028717056469437883279628136439171792135170479792612432976576077677049176883820482133799579874581180920578604884452143606999992487295155473084030602500509213820581899819209312738211385033217434827922878050353857469412652807660698257538104574753510832951241861968184358027554894049076868981817783038467219189340629258558790414030935937066244419805665921740937125924684450674590443204810195807937647987754925270238391256605334029487000387552122537840952191195637835309864007270142505005089922965267516437890216283641859961487904040943315141260560960916625123798412159735774946502014309651620532442937577161384514370594935435354911691011926778181417224332162210656459292951190272470345509703956476056111401713089522881464998030341956925670490820292377765068297335648792781237162200615779042426468699542195594832137384897800920377849973412959502275951537370435868610262079479176817094400909486693872890595037884658755998188119309859497015992805045494106696069865216154203953256668865937191376896401160850522218623136778734456452783884795929190336017792095501002306581466719898595882591632652107760673388002264555990695407302781726001559047132202864587476605389102567601790958666280071042113164136632645183743915537425575664156542787607863719657695026034123503114195011439767944551811076069852356528936240200069390534838117260190432573829858794045807697329757515608388005360485123963741682032019469404941699216614592602818476436881894390555224967393964314936410254779643871466295231515459680553807798571548936562057481287941945911440170533752410043307917915439040598979222735039179721099964827489283187007509831475950192499990925649440220373776259362451103957902774974812004621702150551090132676465836355077260115698302190264095515815505571444452450292314481130821059493080742309222553766579117625807928703192299006615777152774424561168537911804916691694255875614191678856059950644590634588788996632639529400355137437188087176146700821635636222377747921466742525939467914133724834305327306536799629013364104900388204283891979014398361839961094797152016376108192811955034901200496060505957802514620852836263944292725708907712532550652143516292896484411115386521161912872092454471679215644120450045246144528682778434569278239024385666282498886672161792124568115788782895113052795476026383458970523557206019845963866639515319828808292070734561793604154010452331843387778089006295673348873347561301085123531019012463462805549159552503687912243331469789969437502171357537028884124907199954114303750365854376683387002949279257965892454095343711050799120308075131783389717304975177115277283424040618480429742353852606032547777700953910335867611456716670967719236010361473592221390262301846823621981781941172561981107452853978569435500626313144929877328022093140033886716560079939011255803264860815114638717575668325325250718573831102152430298276099048771001814708217348892837263804382587862559831954156730046612959622727256425343143599372271620165270267872552325765410346655459127284612335140119104310747765772104990618823386761247151436307565493801277423933736094428187995894102998763017969797371958466829643525327913910897885416821738126369010875407693606723980716135920665039236671288973796792940595141012027932569716255946752377070031138918401226728571035426337746250701942683607510661821700304059160987598599815589110647203049315914352108006298554157900835019761897244012368970641393171840780941118297942782638152308992847331693415946572455890783305194279898728597592380672400693783010589715296761727705983761531927347836500825033234242205069275530103684980375063565879305221507649872773317892189839410751918258323415795696086085079611529161867316215859873905165470951116820009928780619006082020337318640300208535609225238512964870372100171001292395483985227864199299133507322082463836689730238028248496910637453286647715856053060919447793539703314508750974717214879623702669497103375193996612745990279714364686265662335938658200730239476967566649383605488711931676649267773856762628014969178568800035522448005568843771294872440618631125209474379310746966347024980861994606043207669070633245584950666610146237400018464099921446637504689555814670259361275076117087285317134525704545409511517754254046010946117274577561585641684653664194760145123287252200228807219327036720496150994322722912846548936916207603791535720492195795961779672689027294642856550386235020972597504432024873554921388318226734184459172921901493418558276441327774703651529555215513597457343964011257988735382069422750156546134267462678687573572139651220935247276120303194959563647926509154390729854730277205576769556894592713416878938803907181766126644103653693509876091224351408504286543639084114324395728012385374302566530095948131683476164399773939984355250780758839649266594108656185925790706021351652011578966258719726820235263268091565582099079530859332008750718688701925976790498675601436177660164500248801279339564972621695245435209484930291386216323015394665535524564362846779938585707907647957160054949374626797960280801125131002914484199760057024768439293324630088004016663606017219198985620042533213945340541360434222816207606998183556054845064417032923696337780256432365700764312400564958952971978110417864250107404752243798854755815690691256804429636208015953221745158931373127708731058337314836785809977038446988948568104747650176537577434499961689892651903078956474773305385634916537728220756329980089832836468720047011600041920776195480737523508703905298416076163266288322487823209799152189325892183571427398474707529201614460582985909695281707333333464223704307949139945292299307589924365718816698803171858806828151114748213503194884692460691875881183247922210343559831464543055643768951904686802782157855096423892966100505403370070625131883571166353844702117125039233180419100972747178054477937266488572337571105859092391719172325927862896577259884350064047504623994167220444662648177018804357992415768268469735349507339885113904690699247929426373091441587800306277019515337714639205648498973263763493416311923913708338836447687459499387060185364955427472215381792910433545526217214314627260905551869511805046562440130002997738600838371272039070901257651419980039059074060932319899371007533260260630174852414921405469499246131396119706921838434680194595718343421879021430072178207857983287325230717536343741194043659464214990484632866906538342287312228657791758761815636472934492350840036571283806230647528210234052420286260695832607904892939671592476352346210919493115506829734641841803096596669614404193124496597588167575154626214806788174599394526852039785851073598400295672133309436643423309807064150594677186228329757161171108337337764418930082975241938271968313746353510238297273428293104537020539334848628403206973465154137822207223755562368382484807301685206758438398301284011658767260252197969859711143328592800275867927607119048087872407375475005513463999658803399435116927689178538778439436734826233267315671658259649433860980481956363360673344217169825450805503665444141627524267593741563159150639516889691757816858581090627378880921153762512385896116095399311876637165795090069086946783666091043019752443608846721780592739501265824005343288940022525123191576256436977658275841492795432618351448898299671583204702232331447919723342539432514712595566966082714094667091032774508034438974873706451331591284329217473343358461763757683401429346689088328932555726113042226682964537816376699514479697434472786662904847049006825118425821593811618679868623338800598709872472999191645708107365495970934243256380307107225033519642302818823827193180988381996787986472562447790281517562077204048467640123948095433136946011059006445754522535235681016748241195329424276795098992270314584919414792621195517609585101982489561429301647723308523558460959734851357095880835963197138063371633753191926066807135853574354470624477129678896937510279177101086127057749617271888631403003556790013330893958212871543687013969917865471702188519829352954338414749935305035487672536582158951909131486401882746560214197692789894228463769229001096484966490683517590553048346590183676945712093009710491239480718643065759252978746707739677327462158959713712284728546530277380423899473135899008477831994052989657149428572997273583462533421292043487723120739684210783608173434336149658285855587439763007075715313604032950843922259337634985957788430744636363241592126376742251555069373071551353918163648904423804642899344955639528371173511179615807521651646224881964569160270114915643759611714239342021308147924534950762764942030835395949786191742353766275357519045750260922965952339033263524969488229207160555909718550510956361397896358348182154551467403861385842715979750118072804417041951069710980520725801106248134312727439607201311801224266795651008754153704299862520682090317307937482258549070442059010150552862338087585137392257474993443602014579437771919243371119990440506951563283157658478386974916475075016358877887453390622326345661744884625087527674458878465325853717416100785819321781812907110166138157506738255783744210056325782792922927481923880720988595752038652329383241613501589243841026358915544170016260982652006042794852449685352845011176749433169139173234701726974245323829649212386403998798749868933277312463747683329820660246244900176757513567458336968242434578619645302694440542166083417894106473323662624624574466717279743186161411633772166455433750679233526384245806580639513974918522667013191610889538086052956697207504594343124696465871852749919455558837938376903624396029004891286632710652864268220527171631052928962321698925047910929598346028736478670609025038080490921686153098834639453815603018355214832052137713649286226158812299799140861030191661860987351407653518788500716266429073489567591871469967474118686100265325838578363586773691512525968351301720080209094424510461524474517398371244433885633341902186790234629463379934469363664686003839741602038144709797893247142262815076027798680508885920998712018331401286416442309983379204809392598361302201442095146520291991110748865217548936036334556734323302070258050109370614906191695541528329639541634838362833046283034563220580508170582941533124974917553530681030560245868344133744107978142176849519549476404271395728795086258887582237730867839284743909940658220524317027644313580805681436010077816494495832971742626009053561378202290164325140413376562209580295456252963794358729499902284357422936932440780709964596986856486081937096099467675386917809965380204680291396643521981047430060461428939145144636360965709412699850073606951717356477151843390618197286037633097748836674498025420999162158599551715896412639829131416276852790038485948763239054187036300982793771078567050955330108283867743576876120224257671062691784294386367176414008035839925954262677190997148897067605659274593118815615324446138124144211848899759259579261134631188344540585440537514732279074046398620390796411357738322687800969771179191860353082082682125497817843527586525542109201850409197551389055916748557873943033684662309001051679576282118275615514435508248448009904035732006507976323219874949869298270849529649912752580747535577468559241329382323204777921168560428400183656322717467989069526093238075271261184837226457425314345024471241237300600246900842156198674308073425296603239721249319523439870561384745737800803347483423715992202274688642119404683999652322355954094874671108503869692515697105486533802629124526978604798581413752456933130486824473285732703881026916780362119097216212597540543378695979955638801435321650860334827947855107617504576485428368101728691490427412526507609193799620086040584704223734896189967142518194641771662683186526065569827638004439839337978683684880563274564624290398050353480533413101577311126363335593788375121152140233114162164952031721682890572059105680230279374293686668933287711097789112830387716008779511608520920357406407615634044315535041704521491254265274928015527578714577130393620135665548050989439077184843007021235767494552916358244618168964875878930929537765636459913542066698700701143196691838133034922489009988559035733829673098976793597348819903963795193648539482162852496568472591772537089259987308310404573136301846436500003733936497893058878251855161623079881244399886111572637361038637776418267418824275618208982740541531093615410266194288538036831275657978130229205518662370253820548694971422579535592507776743613324695853878540441565144748131571510227197579703072177210394311751469159759199701689844396264506550436353015644919953635882618907913772090897476186190547875361591064224899219004986579970674628042338734132235864012013667140846176519526046030198430962865356500324050037286672010740156222126855693741292197583695604725447278232368777263028995033998302892385166823912005907234552488210362944010524856137042747688171474341250713205938735470417471680964042031695516720716200536997440010627647918438206502695499116986819176129525009598959982236030777032855383846745807831579843536103073819198721636684622701974150002481523675113784448231356307202764020614482459479647962661326796189591520087505444630860265622907483431311704304255113514987147885845403314045633452428750980308496745758132798083510459034276914366384210553838944286050269858554996391975974193879706056553106881334497545984111289980533498594149468243348378227880086926602709040023115486345485444829266884885431944376214680344096818633803154260161011531325061457367061681318377026582133218410834068072830734664828260940137158563833481772236290300157915398244605108121679284173347647513292416222247641060198730481362570087613603811454099537779207575866707378691713073578085795091554643443043991469220406989321775663776775255729313900500480033949832181046488587769024951854918863073290098486013269491742061270905343705502627437053549329054099509083526222197949290725191752224278639762829783095896265508712384179588813179693849883117058246289788801630600521123074820098373587455573953252144276942884263160677129009243364376198176917013517721034548297559910683319546235305586473932945722000207950724491837488755175235409763182202238814789045545340202395079135470944639695855391481292092179237177556529418345660183286657873882220837236311516513584951216797161000181009893140519091486988882805960067853133480912101501855947804187732680890316802433171843519603222875868656843319569922304277966934443906903010370478080128819790046234416414028310624659902851184980936084866925713866203567408822569413376784865754043059421305027400210767552924813411156962482018716103642249798677589905350100970214500537412741948494428846206310584966065268772068993505941837216548012457997017480658499976543926316863164229205040657165522038529209952633907487498474218558883790876344973471370865877428801755281120798713119580398621652169528193744661680875757962992117297839158067827757084985517583951151732669842548896804375235824207800147401865042909174748051979922037709435572831329858386819998582912905674115388183458298263037916025495259439604524084974478634914716035578929404430727239860866521564493674386345317996600878421994193072715688698074789915132670225319538006391291852791796452369764169148380532346031397286141924945357957915366679728935850913749453433221264937152788613351781662602002499283873367271340486894273685254439139704930197159326807670573507227777509904300728394431059631277484482421720609916834160433064399874785422472417632625039649807303138489380193517884934157009167069487258921701568099902275576477712636776375437467923839152583103834405643211932270258990571764411374001712058064176587867384507048061921654027428698291788186226267326734165915266746795470228393152041714132858121095932246227541624423979889243857879338078188386083805550126194569632405401564856483035991651156869312625130770782485227848886973913919577775433690965895755286580774665325392551362330156354244769751669164591325166673127099196855743535531895322485654545756718198596609099749289636372389957889552316645708448447035819405138486148130659461361188407133708164917423721854907506625616444359442671518700549253719807218897856847718059418653602221920646517749826759113807625711088129367450515913025212190875264153206161158556473387415644808379200142808535915894960072406891143575942206539924380046923503022329018920199106397819458747787851056427051864789306436381315761060964444734082131868789878655277684210334952507723876387284543281872209580258407739471671914034584120392933381132248334408878617441114298518958874182216247181091828931325489260872590171331907890779578105216391801415801617190958030680214155263366988316910450134712247952890417119086822462621888192380916628190985017292572509205584377552569356887003953999093110502185491305277539856521777972311290924608290982078845765999862097752605417759095096357366263854538474409924665577169971883692955824308881418856001650260729476064885047858725614841197877769129171739333323537454804172871364904785850619605823317275392122184199185747108056709926854094022457976999039937405146439360534406433843468987528579383852549473208289500519324887741117436953489150698022397526920133447753821950134189532803344157184457500873162572838743857367459891804581894285567026738998504835837489839893045005593487211710102666719763633752062504548804892835697230587879414956961433761720895983701955780352699065354894967748932184001398498227130689792071712704293915850150916793195400751829030273315742677010233923639802152490535967282853158508010522852578554855243646269219529413263547367579624116373912007659430489227945993601288958148095384223748086256040037407133214174687627357351136453346298737679646211846531488157554658433605955620826918414872529156100003394913289969256227144962357151050212179086077550406266613973814424781122262136525331470533632512093217269317200909098831794611770718228007041871568699709103621675042915018181317343250326539336399533747406136666824391978386830286116657906469087131029229958831708193756317152340226315348731972202876913752865947352997241526490518787009643326648379677857769174950558805699469873775485869910163947919889187351632859778711365760508148999794118318332213738519945119856991199945736099810053600409673857542566213746256058011782007025322784880893433098140298449686959276012058593428202857937203589421172776675038430599571587149206861243600145552140533226570959384732162262898677081974110535475308226478677814957085677534797000804664097383750457387601642981717138510953554791613973665523075045579982006795622149520987500365909179295101617922116049795754321743932654096691137983251122478743629896166518488719431450612398924015336655565362453705238280544486568472925414793727040386378973389038635223520997013029190579749488096567743087914724008398214274409661695653854044556710845081856472239158863261987953700112126754222264619979137870240202697131116276770578377571229736493638552747516332582583948945813054625132792601132391377532953445830890821941746410207985488529378821714939012733342390925229684172884978615894494689794996408041724045392621839662856885233441703894130771313745464559835340839779992846987055320832477545821517295796070081887360578008384209490497431890607395045460832044066435562856541567264779263960564830491640274124519192465278347505087323939982998599138201214423440362380462968782917924621904625814046992060337906886986397838854320372830001037560847157947045774525071838345231463053650647889611234241318665846480639002678667608086062443226777821511893440914950360636485557474929443230010276778490729340016199190452375823496823136354828517460495213332257818243784902834714865921882036057865485756787057684959133812242392333640472527496017627481096153394010572186520355324644041555746484993144595744511070420637111078158829264410212299091575044952380295109626820283127072170101382075209211267517735303774901185038962467716559631003479514305663696124241801715911337760763928259423603252458455337881931134392228369487279928486986078109589366690545851948700477205012043277158445932509997016147368122301898339746742389059865441820896468952211999701069773953412373994431310803498497081262899149553136478589410128645532950218642157523964278243111558706303711584548560495277761381274266754969996962629463194011623937636616866864187927712517862266275139080071721890991831735478574049375619460561152344890725336763041465691542266305840238752683012982814384567413307224501410127845679384600059726868178368951228380616144469862993880191058921470608637198292265796400305594551205364034147657447079137479163841409927317030951874994997908049608643263085151266664942306248719149739174175458005958423480116553887504811536262065500928540271763005573098285890261774554231605724066340351709774855669337916128217127707816704973622160133315913251834899811112331893148509083747082348055928072520931229816479398942484532847612567751130458078135740921826142890044724554516086538636582033906201260378211699545137578196537091623321247614451497964806983922916132114589287519634541258799882165875884306229648625120498501813269188281219586849526084035604906311483480437463794853402759387567737449304491159116922747603580039708683267661179980611384343105707388316960452107060695646142985515912572108972412117002496712030306613609651925671658656285461509416981812295950989460725327032908259776648682157115122511987280077556870353963709818820448304912775296300215154932293210308481585951280230536807668665586058714382696262361935046810606959442797524225489487792850546525861975175813574286719496259562720432690984134621444894261503990641654653729616216673148691245188772252688978130620964549522276759160738042147635032276974796805634970413137545444885554136529211087460651569223866610373157749927991465773910509828977716371816894895317992501786762868478090333506339869183714903767082052839278050160305797486884727233094439846964391717910467314698896983506539445421596241035108541344777243896314012654048369313170413180038086531020517151572096536598479376824302391545781892075014892409110881783587091275302956050930655251819326358398749121311556130648532707570854362609372822009200122019872599511652626960309495051926762715172677139403626680569620693131931099117986875070457773414521528767934943533591714865262488334460599229818374598812161176680412745462151591575371943287631808120898974242993917241328729630511148783422801240720599100647650080283181164248354038174368592771893472305377368798202441570930041207597510283530129345486636057590219027661709870942360359548597555743884577853665932278091703296807255783852427782551578858737393858253313404415208280583463759578353260338030492803582119670358501613723847599407052395750596822980230330839293043148014290202206578255353167489455756383924499278158517753989488383478738647083969276878822028236831673562806413248207003934343327588974563371479941550108286907683402253647642393312590505156946563483262070993604426674282360517191714497540617106648591821142703564792728607575493160744495534657692364392761051829008765715846655295940280498438707525668351036139206126603950632412201329993223842295430955024910618593726448134456810255905914800164074244343642312870563333730859443955800847926179987457024794594866353293159464030890348550499008172681186017023684708724210479411025987971404853520894596936219813606741485149901368631019159742326430322040158097470081874383048674118233184094296797244974604072422653975282182172870718228520853818808795800418282225373956605489733567863606723848862351231261430882918149809445975359088580749446921174337778134837816367754221377589969201459756464773595598127163879535210042111439964188201290149885494482257397595545670352277820085035264475962866735100102797614358837125431791489337154645396678806324472121884751703994115807561903729137358784701848964230032664793835157310678797713588493097472222314814873481355853547993887564566136953378322379763647463976354645723579455495272405242766518005409850465391033483372684969476969598562270229793322347945922889396523403160381858168871969437094534475699808854465274281021060385390019303934229904212908265739915713302953159302190035262905573316457149074767802407189512473166445587743594932287745184667688544686894561664283853283121705514918772021308547851889366691803124580190617424834063427626509895089437117342585030088975467576269514064667326148302766071161925717024561886810739314394346960313379554289261860241119704503342295912036020102716407645020063765386085228100752563795749595422349224059147141485959159468896644347093129021237477424350639628072566166317663800780290730411637100059915505909740174323810920541276276882047128343676329853652006572570258392885210666213717378392259831602859779627887302942592310860583809100848398672671972086901893638421672138423604221361563392068012662822895754398577654863395140900167683632232470257189987881688992956552868326594276121743851946584017257761351087152591932126123932827762537775690402485756897394641058914986364403487325750627321544002624174276214005101227882976413909464873955157599036589779755659080927994627825160829690744135226443753463245677447047494095394485950054239908540896754306628621359808830672676971444875790859345801612025125056328774987622347104571520530930308518787514249215798943279980508082117560485293169241413218785570009519601303386569701787019182457561683581556350825401780836453830408666806643636550956198832306916662951489996894362610761862434832585742489637817979329556308883235690326705348084978036200438615773854458272743449294688634457969275794257964789032592496022300401865547123594573709449375607569282879725562263954433826052391865306757689767077496947520720735345095255930361799607058383324400591528422833625219002222185544521099226640587935306281418156631712640919238030121717009497822558389017166249866381284325853641837011924274132286072881970001019607262663639623102009471015087601937391906476095008568431529849270808553662081202148645652584740157114405195436412597708055999947855071876870130602951006329639442637305641031477682141812071286698607615064584232879228136091380158518235522222160280138466406203389576356400274413972082990914175185567547658826872429593673738119267684245255868873459047700046175648980271620289363343155585362733161154534225855472432145918393603655436261697810788550429048996957331807581799053751166785563555070963269896527584591023999131558524629997930519769520738065383454188215283921062525352662031831720926244937188725888795559571435020331757690235483615273378091584863704063581750450476467447471431003423844293359758625610950222394630903296839376512730305340269546483846253703072841745028804388319731323663776721791810641654919249442347618955683690370926771384827081430949891945418524522842783494030883698513532815872320221874251961710588136403316516807074369256029092790130100541949141565469552397868833195689198401552849044200474226908461497440225317233405264223161150153911482513326053055109780961030101635738696965312442255918717003133483930926669694590447140857173096228445992979102477328459515030330431040931597185749484098800914831458144680905068785959896205989514724926301016132569544843526438913594746328600901485706240514085096574249685815941189924253030168516900634608080764883150366524837536800511174227256426708641515680287611219509138444351997079906365726339383725316822723924810921531259477931738199167268466470285900228640780154725355650913664754822315083871262408133118362087384689655907852239005482350132534843570893852824657578950190564623294995318285709525683833320656230897734241423283282436462463533162254581352678269571641674006386281813905055702646343578249629983303665758871285850464740465885354413205541095278660181160096647918670050004209656610624907288422183617795451634569168886371500121157203466994909682135852481431932011870447271140584493404595712540939678479912387612580195653076222552924761505016509045719455426845304072946376624958650952075339154761570389439485503879714639213352828469276726366917263191252246894668770297170124930082188115723440513832453952294166738612727728085471663270929666398827220243334097474902593663106718784717330486422777542730238257866365784489252766315035115328982416695085825754061873676401804238431115540550123434213028931033105165005749871957002213214784472435703100066972666660399239684523685309332530498977511881226308525297623416929242890749909408794047921899052033878455872055852652476694209253811035073432895393218824359292937567510834306802387012443920294002615005247723664528511443749603911864193983523610649790127208676668472665222550437337984614139192261624621008629674364711183404314430398842619878373131594674752115210763110045857322661338002700054744504919408258570749443192069959921592708025724966095699160755767500574260934301161497895533569451125030994845954837483210073550437247685807342819664954988317398120820066980061876706915028964737543761726120054784543373290787606459167982652057469591049867524053646549041130764176625656376696933352531263914481574992474924504495618008015658610542608033915286227571083311774590630670629051023102663429232174116236850880683071789080532320018047639620929060840459216330095207501117617138154651791433747682131194605250692356320006314872566480657880505402231058422338522263825954594774235441937242674493527721693399382959017097129689826212949399571041727751239507856895777809859368533869664543412795802191948969824791436000389333646940494933650587387416794140363054248051535043229569309407115292690452197955253029498451808902798256943464664586728989698476327966517028317774120202174841727015934833966620311439693535871937374461456604783396603387303821797789674352158632392769134796846520778748949922408285533799635654061024635517220048376398375197568509372859580232084463098690795676181820654911661090908845888761102367167472136427010435933114780121323656038498906837603883242362334325040155121173701982312074963730502711509602622821982075865162364937910367573912540977593830925667708519173351118322423140989172772111104554366438210847063576124759495984690223104587333611754471505625260476203031359183619203006936799693457715432960111807473476954764761046978024229996162947386571696023661736353176822354360851562354526048741189441821304856356371928988508928998500361600548115725869982411333812197307137956591729685411227778883739120377477891278406817252016759763498594750047477873095638560276535138202519025351719379862156131185228640071726291023903198325876230146601152791219700620399790750580127994268000305509714474202859494684062326917362009796685896741712465521557170253024094416302283594602923826608375111607443226367168555881145223944061419950306921171849562631540065790779548964888058143986442671283230425953029375165551950027462222879083863959953019173895434970286261680302538559645693132655564697689753117130031586720350215779654238957827252424003050269221542504500887411734032622810155158031653478086286811624573919252496796363481853604834693227290957276418470607147864189617136905120750755060528327482000579436782819509518012172187962211071209750513378329564945853728136729317611185974506954035739177100332095452710016162586086306438575450721037232493536752488155604067895675235063610522182882938060758224472569343060840585821411002498299626604955397799459539642448079707421102238772418970712938137169182636338340061564733606557032915440580757585856692147229551110336466139439335909339616377747211220031902286544773223341686250791924038614233200406215825467705160613172588527247218949223813290721862751376935043041479094503236408774962074047271631743932547681983178989727397960360099579380754885928184184599023442589938765359156034418592445411955526511232323021925291462878274210888146799458114373378840116659073512332371437811079532590310448540789492070913036889695640220337464486026535358842240488036722039036416533138425134427074874410624574101729936012219912165027686648649607258267210466011950207845903118834106046251275717484848657016824893196615716618063744289784417062464584489216906872389434130321177226605853243520615822080980575630380919040514648673929604292111578070161399027167404106902659046082468597794420361801038546069249643790344626598711801948010144248239488347700711675632468543317171904399509258346262757568368334475613747511515611938334241544431864700325464954333207520799935585156667564924775356468354681388171739387801922433287327701664111488691063346427070605493625714159313341035389433551398408711391102407970619857530796388510016035635826947620989543925134781565426037191488369356691737696548191979772283119977407900782062330409976037531400067542302096004190858271893004320029649379334269807258953928316727790748661585905549668774102279937813347401217230766602452697878444632305925453850487548075809499685130536192491731177942254286431666870073394721723912939620455995075737671868226605683458743681523196887127323432774328291921581098311873238227765598873183765332411804062391426549229866526558054088044203207673577631673061168350797160392842852786305554235402107705311100455031574005073588027952613723067793338523361797377255432534028779437997477435357997297987840942684315556889008700209578733307079661795120204419456814665533700226837560562398075251193377390397962711641649623051911308233243879513369130167235266448024314239187700056415881221223244630281706152269151363051606445320190354499699616845982002067009159570448176601461232755644883622481201408813975148468333303417503376510141148154561898706695963734489975990761050971043918251710751021463424662589326863000912940069523482254620781292240099645326380176865722892506769129618748386644704202709879382251103308988233799068565023117714573614325362101718686092030072822212149952071817279375409268952972907618238106431873639237799649528249002624149556642728426614460468593305233412840285097674682062523221506547673243540095370559670595517520371264399089218494165383342891619345687497700996088775440924093502971217720537048426525638718616729363161950151493036729247867879097122840296578581397132727512407780772825201389468558406188043699254330623500891298729747771100027181114057097746923278191449351356361762807905999388239299707247140719291559776017892436637640151860156412882685246572225984688101497191235148480659859822838237715291553137142171278639042395517771089422037837089960344975318467328589170369895461763321004744535332017508711304305188929213964769285133902814128941715129853593894570013672815077758177564303746737797537754806713957155181162565187534492303297573238701639966583950303617834480810815326252803526346375920333193618382619909713511125541476396028677871591257379013171848260384008386609019475081217851539191792137307564167741352791828785943026893892192065150142087568120999925161066652758596458753593045624642859088435496945661959799979763180029880844309893160358119685454363492898613017906680406173901196001184604525941424673120610723627688484254157952429300484652557594227912596975872578597449781475600797882189517956522300676496166179599377636896968543648211619379419192103684470200778964584158776226797770953257787453730325360693500837667824021445277777695146168977560656361847814564010603462943794619566288727513809985743625651735543655608442711112647954754747379368784891888592631019629631358704803079642285811416531783808413450478035101862773149239769953834834849889304521331442352143556924952196177702330625533501155034956385246973798685215615566760319368274049900556290503987046357907348921671673230774200546628593403284225707325613963833584399649991596891854488097643331912596475340857248222090088610253309632994035996901413138834207646430298062763296323596602503223341570777057513853644587539788602875162438770075904009992742989366468775384397339889278450729635803226974674006056288967830523414789931049129145207262718316674725236937213031875659271101885402792763258208422319663853731430780389471609499698258775165018754285291559701435849937041038279949443882645135913090820804334742638927121547442230794320033116174898581818332614346388475934804608242594541767049446191841376111712865165093733776491546693437260556652316785795094224853822163612018862417523989537270579615153458891801043593372978990472561026899756631897130663327048487924842030923581433963249158049490249766647380233719120221219817829133848628908988244974204536083294975261030938499711899328534842857781013040159585388238049306242460789564925773831773145642355571791609436607645977228045372259721284455963392533877766991226474557938162581978424548405677694202221021966618587099285978744701605630136008398371451538527320506744873684224418559755490309153436448973356100472703188247872713416432893003444679586843046772832090079995700005267956046496411683139065785854136096899841714870534194803672976972142132713549623853147763859830903254233164317123783411413349970076529840135220131944205060830243991307642309543016223011969896125508567495005222813439779563742767988221164698500310117029601167923052775906758598980768841586777537913727969155451313314693217969589700771453974779731267058978546618777160644483918606181720034182012883132565948887204906477401967418482998105472563294505514166265342748331174434709848917357019503324831451751178976606213912071418892011775353826174561433399965474750349561701132778839298521227628204863365790970440043741099040140314535970427618090890328561813916546138093752610146487759630849410381470820610356876423688482274067217821415052692179940994449699960866746493521699547924024214369783769786638427535402610894739098943176760583784904405574794784118855113693158509005383674041616185740053954489829985308236183692329222606638649670383440340823524016276071960202066479535339491154049115843369589683331853927140579997881769155703957167496823489326541424822870409148584239853421641122130640673896784425408556119426153836015536044077265957205282814715202414713243032289918389263601951516517652186558579872797666120661719712026039926603507013096887985626063127610813577634194984748064502240928704370276834745739731220685424556505061307863767941053545442983634149692029729629053927313203306434490863915119787988206546605250109120706031668866244492704412237818707514606027373315476740341168592626966434665511194741116872464849025706907834271043504235457785071208901707730334565899027966382130314538189247588701645154805504663409934519288169208756262799411563635354874174554831455640601077695314063115349872612200323632101780895432186146085995550948499343475230410525584377079348151644303970744610461179363430224358117305620897916495680584357096278261866079795745932666867734416556323981873888405765273119860064095581002548383896019520115369256307124619915337918044901176042282396177235330015111329695517568302811235829013770642199125719444945933465243255582319241755623041666695402008084907166540530412436541939308095009541925647693622442090841453839161285305788274306488285143710605229169621445826314532500007317372269751474266878791749499017503016888054897447902070025748053923290449440661431135343673586559604046563074727982261535389292363597705149421013452305070013099942304454201310813508206609725040654966942352861303645654924850093589721616084817008203027654164397585062800784667567677547016502927468309322493244172813130770744962134038150827207808901913503844726918265575031922371650434640497124447927065118565539087018447181351996631592853118598852833456775990969168172010273993617173991135356684121299606355908487379665294067427109282403028295840059372328635793664399598013121832165641431264492972700425304170960895518582610192784690880455973224050412683529088503703025140881809204878469292275009155515666617058355141761268182683078893710515786346463286637936450845170701526927940630381038976390679856682313031296914164537018242398713135001768186778911785432063241292808064407383313974047274546354707750472949215456542403930504953882153436879308480104474800684954497555114912954797825997355562653585232277615694104376687406602551561289062578188564852341178429652862456979833431804405808040335119995993207527601961649220692327976293860785345341949780128671054074205375916670903925351869770822411167961784460311040679858615217945787231487511209535398280605332781425244898892347618473568114434916424574430183681830887090095136380897876238300133411751587722714541964955693085553514948605735946966392178125354036809623655912719082650671519092190434218331495306470288189010728558242571994538723328236940493950128795209541062476620375101669454602887339839009090577939809282869617185788544537043330268271939223292720822107251155836197084429010894410045938716414643869852477196624979821760688449607043100324640796858437664687502324986338128389784519398097561665133571529630975481069941429231297890026027660997355490214567319693696404901518143342972744139685932871205723708573116693315021566112877632216462127689839582867645552688543093948110401831030365003110236083371142544860048777848968210236356196560568640237233182607661884939623146756370300512866790300785711875393300817291239629036210917178553368112726823722459918477333707744403519021208914942813762875110314442859163720966910508404966658253829450236156926030061009335628661691634851739816797315192720369572898287727273711397292789446779597892827830070941861399894148297259643039280483908805095966168224362496864880005120814436425093650198605062955444624253963338413935126362636546982822718809139287043656817792379883515388097136374166256277306830248403174316977775509408148394729285706225498064732588773626756700157079728204215326310407471238752486372040224524897546549922003759153654035299546665100769076017969787155750055971829241503689182926103539292881156872406841556953200423244377894179437943053033427093702968361562091172195364886385796531944982562030195739551783300152823506346170638187198762229363414846682775396391857764251605076265117972602229803166850378930823223228398281493807432902770675179568911086445806948831831543378542178318922577379781681896907300895293697229202997729348754480562233752394694507419983718033753754470212825147562083225791457962844333712437894541291781947034775303561541148563730894206915822013122019820149707773533301916003192810119211315730954516678031147246311504921575923469878766505366520638494500139502299665885381142580363315773298411893414863699810364169319200771416115921152601295005823181961701370342407562375956076583901833598901365887829080292630793745720396494293612613391864669711861272772794099850742173944658169336287308066202855521999257356335263763267092635173986762621610752842300796546171442618490899672420597483835526663194834232451723608646319178740198824963324677265078036891743656715465573827332162335256160431988001464206373899005756214639878998597624258661344806798572992619582010321897952605061099401319969188650272808302265639071413014552485759939816572671167140004319700881319042661775581440334395620653012104460736706715553351028128156228455864666024492213241976909632835233065110144602282202370432884142815695681409716422761638557236491721656858478110923042456244906314495177310922035347846795024290864568554394548407105030877080487234400583630146635436272562472354787973180985049744063865915832982408159693318262949531084766336312009833701841560943501165693563234871249851218820645638237642835884159547314809831839042801550239187043214338856934372837200834330078000911011794710288916911430139662463667694353850784998927802257075247742118696604412155810085288373526657988158492082486124699123002642444981407038788735864950738220193333283982256703497304481235081699408659849806743735715663834465229197439406010598352616347310524065706174434147925254797685966012688040462851356317044984128035583625492408992957246149272688079760905461857530146387394350480178370700761594125053884026957566058350204003968542718612661270532832036214076776531790715666004180006445632052291786484661135207943722531321196925607363046284110877734883312111024631322936981030484395020234693270557430087659960541082298362471038027401880679071797040638106978302655616601428420237710903361407836043709278760747763802445371795536787884416304841011112502092147842388007256310765834211453708598150541971982293325959406970762127467823639954233703388815406466356897835747362379980500145970655129487210085091483076662368758599754530231801416905160504515480015311921091099436365058307832706058452296781541879075130242986648299038112811295481317149848886872926919769012243770361619372165599952944554180524948924168109923681212635518642565367947210897532298579819363000947365371910350255742132820843957563142426613387229757181347689330712720239802585235145085675201166363993072093684530657518685441464762071794165593351295656489913257546684674543461918056201460350743107581828093943027334262143481440017429961528754726920969554946083817443429711123613108309060314604462131078622859859839745145241425885931132607905135168744834253482805176527381635932155081737590092414048707557489108111621727570056790896519600704701582606168188261775068635212508159554535148622873885660750847462374341746391205965523552392419308969666774683139776194208355842856650915496744904069654170420514410043738266661396774143757941595260497457133494630338143023887553430622575574243103787699125686343082254692671621981493751281017384345546721231300444766303428301458859813988867355264496912525596851192986265863231039402294184125856933763569629941989837125496870082841811015114342071670267546078960083781092451470451612248569011909655683574986073835371565240571035040330692376758723272468111476655701634621230726997229486322557623986461833263228723167983035277208496959730815261757970187194009895257135837833466159970799327656058516784265887371730118092934256622246109314957380261453732156332627438483129419251721723932550623953057020178286536626134494004903610298614785294501270126000872095145981527856192966343787893397106440605654680892867002299196602828946739170462304991136073640673326794280912986095189834286362434615144357552534579243762833302673276787417213574749475857914287507284467365330762647168160974100451763778661435164814226516579341667055565821826793295221256438262361636713398607293661656071818000409920743638730406225793371796723143350980675708556854751520861846786919172695548810310057897085576694201479565868834730441835731944544017483137141853509373609221820059163570757296174049775969577223984065713133394018980558754368747623996289599363050744093817798344015517144479046829015301195710800426757694600936572847727083451756102479729114652746376689575981212003104775426295956540354856024639181425739502831476461322029024440893185969789143388447318811696164157155845973544828028545976885720852489779289715326107442806373296150917762499567909579872260360562750763647599483339102160189631318544530136009817431370697619158529405455395055192129746100714703078972161204152076019966624384855683846101431974010463178860375943881865616774666106610157254875561652568853310227613723126741693059430247573013072046972257392906332476309144374614870986379981358320119499239593582004190622154636353280623727385095448883448047791357068606290751058909722185439135817815944302579194691380385177770681311389744522688341844967043666621091229379652189821345815809319813117337301224851617305340324464817177876458833233555130976576137733069861430450294090481513729379727194868862738059752916126442461663596434667546367187236372823957751444683743710939136284902774867997128786513048255138674219943083758716299260053746657218090412202065258226582941228346717747499202857872132167405726726839107862463015373144810629285645174883105043533954236167724831803833270910026706631222181420553530519270824878884688576531101804794443014843858559183164674473311559884193742967599489735463663579294961881055779260272046167866155030185799732077897774753995624953750671751277212557697277505314870084412119227990629808771472131802380143863933103245450335369847219972434816568011975530722049841280949758421968757909536663055944018982798641067403179740164455981493718091483251098137778268229938318160784419358582361844753178327476358068897520363389722546118357194496116901448104174407375318639299784927927933939831333196387733338976246755092739182348775252493103177582109734580196442196043630885434765613185681001863205157837776429113447094430033785181925527039548664317417849057015918170661350298849581120653669045235339479692512356892940591431009347801655411752770310017180959381476475173797008777745687072497446141197907039543145604312263583938938794148272342550768653380444371248859522605512233918749092913070487918708154428452019672860128090764780274725526563030924621045534551636028149971440740126204993933658924255726639914626133896436574038947872384161001641095781153615009941849398013054504239083911822820408959238005873354938311735938274163650762233514042116716563562546624780599715092506103638166244680262000706001157237909434381380860840609179308771179834614496368775208209161897037608001061478883626123004364628165576515587609349225782886692447978884875039661932234030230887985638290657953150193930434930886892745050092652087371561758458196014523961908103022691899725374211943000329698162802451116350652880659549798592303104065324482569349820514326182223019516898493689600456240284973979395656728134565448902253989148861161759095346199211376247006849244756583178878596473885323668862348196808210820332168175523093022286763116293004540982596890303589245571415566185046805675207252965468290160744807253266084232965883660347013422980796350550700851740710433010719697535130012691475573382055704341472520240907428455563658051601719624146138356265303975992163262357091995876013171239113632423583043851463867414261683646044609457841137136430575746696563877497338263840087774300313812840519865044467724156265047932833437771481722635006225629645818426465238746569293222133416795086264223315577927735493047982379667855935704085211649607457589964331981276154884551304967813342019426626136888552845853264786662905835490735883377224074668507031487855757257428985151387677782202213593621307954336370914299183431899864371411273049155609687349827804791057591790511962103948568040891479415829324000242064022035819368602832408725177132804087377251581176328581798585410066630203499853626170283945481443854021029664609161993275856741040074916644607177155366233212443333169474550863533299286427461674949329824526979902728687823545585933407896641453005714405717623436602387605756970778869839525410065727043145529450595562294037374300704997474178042580021080168335061562866670599606498129951296317071687645763543392403599286548997494711899576734118807862848522178503823982082816072455842944693028265619132087320179702005913367150099147287033020458125738184949025062235142767036311053991711620561968678633109006115498781554316580369933331197480841502866112646438438432196986813907824789486531600225547921972622124129159024601205365155894966860411150451526559217944620472178410253159555788447971623571498023277730314983059502860586007190852403665540508731226489736567586082586719256936432792662894268238072851148609081369830308205646691854176264183562251662991326000061378675128991021115875316143954723080898574432798502939018988165104968611237603250151752526839885864384147107905038675337176918083866873832112181622020635219046723650220252077497570418708962674122880497876782247263002689675096701094235585977226557457374822096872452043162717806196517635281241464655104303780286579690951619565914502865520208326921140021043500856543575027645751981743749635668268329046626088008334566007918670838091762434636779093226158353622643535862429839279007746045730463677770595394725157324486520995516051083667105375170171882627857235469891314369421773196098976374251507814723188715297156907998434803774120081653133981133159490837810913115339587266394311092132650591826121879096039185307715295215728140566883190322841776973473247521333188826413294193338895202408875780673329856424518571220568357114845541705077685514275066277805657765845569897561673694041971457769830376275930126073110514479011268492903596550651402622560428398558648081585694167646151328107037891083235883023683629974777393624369992127729749349476294854563001464412282328086524708551331764674377218058657654360666489780470866860642387575132273766144895258581224424309747863139971561383599417582919354494512886690820298238386223647946393169119261978859950278564473663788883529054910961408204736224912942076319545804976453459372749561309986106522677032478022898771607608881065764585537284546781702845022559732922125762888334649824932182109970798387683778827242364966156097658380394979027181284584977193288397300292008042774720990157990618921448405783817119505917987653836798352910391378778268437378361226420089951604893376452541923970561835556934312922929125071760773897547162437524517166917456057008318075049802499323314743959348993672094857167141781651642848872358328983451345699757937076987037980270158318285596885832851735211481654169583592610897946076132612720087769897410942317482810240792181617524281855227331412066510232179740022648331903843305007295418175016773234564305949674179178360233355026637564041592210082841094320887224704339671668856256602944599891298650508542284462846032348481730375115143429052885814483685822686995546819513807395261001056798448121497461578056992053167511274544676033619396694875554584810170071344956562827869124633734525677293673024861001509454692484846759063073823973747940217213086878831680878447369117786013610866195817359074131321229199656750696012448135259355140387732156862326873510704256248966581729882230515526777147096444448014213442337787288198657000490917068240013681202817200366472334076112217061929632592761251743874386287068723653022608376665880025626394811862347617581816818083950796837111582069921112795570586435965753532464606933170040473879670022179030595651246697131516519137021267189449531454424777487693990771483845991677152245736194976145802442813939199311096148865883179697311506746387230192126431973567022336849765540925410855031816855987462448886468766907779229460392105164842449153584930031780398936803487705401276043423341010945391906832127970816645502560122437110779308622748731540837071077119244529959590158498954952832630635614333419685974930433633063437265619024372835588425424535291815581061137872333498262206836050201029706836743227221650487243931937014225485580288673449252543460454617603804666538209511604054843203138793949078702015954895202417350820429985868667862870469337232136797852123759242409537070915246962686203481686472398613003586731664896413690766342479798338394960697753049903847717663702944641151990718817312822342556882249325975077069585382646161245468898916750734516996389216739925523839340584758945682449481994131309819632223014013271354301233541630485596838409883890834078123017716793677452454364227912409348648165368165997982506333208497651573877211709507922910378923820742710921979733032422406542085143537001704176942143565742246931840275905381278476171652985586991594349151786424445702806499472351117975676065877396826239550145653627184557766837230382120417018921633188073316744074514930460898332008301626563087238315314884198352845489323533098660810174115917646047508276735968601366025604826205970136067103822801827382842375957166092024659230431388221205782154179494845936092378448595359115207623384729400602568749375476672968053929378259074795996185212965915862942469882665266296178329821199629187000200040460382877350971492974664265788811560839467341274964950348704875146702476209307509788151871896947766298209538801636588479529308065852061858987998236846152494955091785289273296249277749508458130045754435203869988232729164077954687824081280553264255290232830496215905157000578265250903255510465651014961538107363819530620331964076531097750747808565471629132404119863388778686591382094830625706211972904867418106820275421891178382639530694279183605765456394197387554011420015097074339538991705188998687421346183597737384225551759259637057579931263179567872268610469255888930095336678931475740247251773630128578697756062565468167118525434373991401984639610375457109160596332557936403578547388137659733223758207281425796310360322417084232742426487841923117390358313650084583058857640232958881069743737984421079832097908537008884775287825589394334041624919457766122475286254686896557725177367028110151653795778907440225746781354658239701094897344481945394607980496510097012455879869190125274351527229568839803268368168443967968859806770853427256611039296117032320806468813763543059129126546992319711976478715376675665204189304346434624183921677226634916708018242498335504591923999774294882053210380136497943902875301884069684061064983616345091514953499095781401938935895735832084183789184045803156883599811524201676193740858821607979970290174306328038239837759268301067851576005549194683296631328645997267568125260124043411699480140874431349841824194161397404150548408810959715848586315474575755016151350191298030202589206454088127841577723992131298386529358481604604715310936230240417709139150348463912260555210709216864357725298763809348773616663339197196727956751220383224685737861240150025487719751257766042733015918915353087265512769749784135115465670642490653958931315612589960554784620080965508107312845154375854167837169448049654578844639897521162257536728880185903873777441693706787828177271153606282523707055038251794917618732103175755221633812014378599955205778413998934295217249731279395572007092711008710720895751636186178583500792864316770203891501235737206133718028648050102250471521828324735469946653433859103943930090080294994192924043651155676477790379560912337372019609822906933343455295562329249562107132277824350976639519355277524057152900573211861922433999931810733484921845089795329215913439468897812345260866724238541124175758080720901982030626682074412726421137906578241865235881716829542282812610289925494230578320713262503431988103940352494280796953652419237606800560293980050978810161605146684703657800653064014443715550746438309788385976880252608624530939824005020725403578411430661965428867615272520165655653913825952506865455926117962349083945752534846973924799879732833209974304184901851968293304638046014493904576297454657217398375239460082732575635221078849733501395801580619365165856018454710978422851606654964821158299208649583895600121030136511438022494142381712980461903188516483382597221432219187011883068619915227158353721866894719785141110553164906013962100740611290636450929996059676620154181319093325630487314177063716893293021353227361237294346781489771298775132755644334245679066305312531283764940500550245546593045575502090991575410795336585642011408119669012351722107471724287450851300756245630555837312670134331468204952843758541838096208340492030128546075774172120545928815764465772048258733463421409755403578645261474168232283925768206832797085685744311108263112371809790618912570185252932435220007281010174084429406683247406983676764273983135676029901573309097929575234830329097096478373798817756286709365252051546480546062348191071205648594554723395033927334614992201111884781357666177661874514507448899932260676069484255391901389438783230531090267414928770435853353571907487587051202727193238708166677099285048000849571055133156945314026564981390134392177025038510789001279016350005869612618827869551735942765477914866957993087881662178536457262873140622230076959252008993245755132848473675038718548830186691025302287066391286645860078449214837215383773149924654507073713171014600533884444537930512930821606791267228135841806930694612106242555960929633513836401437163418844573424549305506064806562876887435088742814836037746623114847617308820286737501778173423855408202362220094291814634231716677818257428565215592595201748252507241148637531583955293393148486561233836681333543644015116328059241837300740698096703123893048959845727207756849015641267896423686479522297415977046339317555879045248196845954188578581404714189360443375192973951194637267056655928290410039937058529010674482395644774159353993999614056302498140937346194430876025267826305069538443070433514888506274768883639631647814830650285416786498089001559743956768619871055821639429451069416382155963073878792409180300991677930750179466972310413746972095223848089842853280046692246807609331543455285783267821981817095525081011646085631286142956354563638812354616899637288916606742984791943811259086714495412210084476898859558136299282328679120365145851343506945750175911353707328484760717856928132496236737762643505118273427385345611340588114193014810468526425803698459853195099965521633601129051420359085023169106307365015703225131878140391703084161663242480772247402076616487400979224023117528356703535889794189255703120040250387922693076760066541246035514137225095319494484180768082609135483943232106051239328416486274712897120899318939935518392621822942404314542109918462279310594788934439443062277210948843140274105445457396951283905428618857434386505807074452721197607455802491735730931202862012713925429157978501020499953575617594685181397570140155160008541425685763091203439177929493906725617365614852959165906863172610912384990084079400634232292844013488072037271283051961034741028375058539250410112059395367292830205148978077351171825642027795820915302077676369792496419074484913456799574033197540313156613808999677634641593161183670959480641499636970716801743571119402761126367609872389848821645963335829551580197971456727474093317870090479990384402425810469572400608787817716133724819624564694502482713397734032694693884582049524553138893235680873409792626634736236915949693369147940375540328239175069131256812153595451722903521562506998057645544337655853992381934168530868148585906666547814600235515768622564677524721317449229041143961196742293004338509747840858574569549360490934046656369204192443593498133981154478766382827848995536990373817009947524130840680305747701547725533793980039527930993021163231160153726466460912424214199811657307572423695378817010872916028710980805446403592572608813281165950385260292637753421847577202302172585362452412678988560344424470390825081097982253771982921959965024953554180921293264231983221032235229126360572744755738067330481244165113888625004817494744658314429625332106403614892493427255024240571263384491275290984977870976069957862784832077449102679809195495694211109582184620306620544087078712187869632943485094478295715283643789562158186838029535438395649543545365300068001332130001860064916743373011970070264942766108947090799321031999787007749136558244853690703404009073937248354006691483585673414546177230385232688856374477164698871578451018420221234317940809981292113239953820432493023049793889861432655800852642615857511755855434080250788702865250053410339834022531465847952028207250095731923812424384227908571602798835871985138093785608056206475991610826025098119504650595268888715437840639630069362026243370108023641870393768010424675260383158002729362412450908230952277454150376636055857014720171726304142323704814220644255166736219857743754671113644433695005549718294337539566859646972137570280761894554565623690008140309252178017833998086624558150344503908706895308102085750991857192403188125401994995283881534669771786749866882262093008377289097637365045102563451686107418917551629082395379970174937038228185429713314681825876112886993870562551750961438077855084512791039413501179365784332168131844511224689296510271466793290424179693473072150360028776400672415632333456881228814560585292698364189090023056205785826957656736577216695547548307406880148890352750081117390041505168845414928210374508621402413895793891188742506734327122994340313431958174288777170941385161198548328315183753059706254012736231060166229379954380303695564619464958833591512163671397835730662105212194982417074274132316586326525134414067487707730304639460028382725630781426577652562656934571954540732067429883508848552454807929260034414175554811396135775241715810915933147611491467995600126037781204951062705039736991096145220809350913849862935379835535022945394743927632160028801237774376835477686091894464728633583712441952977890615424192862051406925793371102773650865027771783045566903214700543356152597880338233974476766971437692119504575848353260618084285141961585694536688846024703769268964212695529073692157158592545030512222528695690724063483920615237478083079095652068907125483641230910970618706291698905855872241607729252596331044780917846628338509345866689285592716301919814253587463708427180240976901410730588438175751743985240487221362406436396671915603724533170513746307577784676220391799429482409745438775699531259403132574728821960457943385790979970718034109407470102296397344238668882307295612459640038048941443831143697452608128235692921652902431159761457058818315243811658266292389827724803686707080185555954555045527547347131218741796915042509601333078088768419589715516470672084929061898635944013474983070875597292544139648687100304838943443665432338233808647671625487607606481275208135173697501477956328252901315074693442924476129785933940299130965408508363805946617869348984203871590407588403398501219303602383207167657026216709938281566667035291474538833656714718007669968820912996172231027563368104351018381725288515557110587972454624173866857945189995486596623412097624596792607030242459503309439417442278798014245843631150296791321964446219111991652683797528007010184859123857322057511177367839365509716773494361074509943529808287662875442825957901884103361511163292956831070459033576603246624281668809657963858800858658469627651840792280821355442962458977447671190923614201540379423361720986400684922852235917625789890070815239711459497752279301767338193492767138991861520725581104620004531667070334804254073439880608067542149021208735747420945240483230759654699843112290814601083552905992778677412498562085474945881626037954435315121923324180052164128808078840466126182500897047970575466411895352137670743984154692550023246842318757863209314974822269640395355408042678070808172012062903021164261047175667722624323756892191584747134168942085063513483430346967146824855262503207227490071401077100838399690647375946680340108814239534545302027857180347235299025414677987132932347762808803657149434316898199827575874627014310254963507651246246627544888353040944822997241187935412572389906798251997428584393995419296006045062034511412559868243296033730147803174496577141409817957209521873529014723977888583983473216342704869766724080873008319457143108622393954669832854299907312404813078908574542144427669480602172661011417362442954172547003713449121124941310830378889561558214208216436433981271422576871312815146862443752880367506992380678141205417081618452998794432849823053656127578222612503639579863886753198275043224059312546503477957695229625511705340855805285662455228104524892484403310986107251835264919572600083415250112930689859705009010077958945972994054769558027305728451022512281908970271736433862803625677637540476709109237947677003022422056565352059149204751009900671104607168459938673029307647852144941196782271417745799910753117738993876351524643974808845216014897721802596015313181783014712652499412222403127331011100686126271939841002064255634204950440641593352305126220891619965912867003605880542323908825690880389526950056679605816405171460509759389017753932078467177824960633929603642165487024662018894309541433197507346230263653345684768656265077428805998584687228636257921749886792935540516758062666083409718228849265155114896448913484296903170118343814526334601816461200346276544426852866800419237952816634746021758338244736579332176587437705011976218194212683958020117458108163508776938468126738971098963883075347472846515598508998522190016266891592350942726673472856556386980476385649849513176218016443199987051972240972945760298159341356428319769181356533604451310548468176068572660510180532483152553235142774571840159885215005534367938019326466666916569074261668726856276606434786655688471123319589857667004877636872527195928117862945765312455124521298896910183393605331256213309181094158080606116421540690463517745346835187930633535496854024817837549400135750971233719402221732946164433259924825677720151696727366233444635544193785298896202957658972582376689828737259465411908528177188807270081690425287484973519568025980252072291981204677893996383972548325117438482535133826300754259134829089165029019771565783398206669786398596142505064129059306555880849412365424288695232987063439433045737243834516203412701642533530231953349358480296207221788330777908145873991970443266056393124990344119639074469551306392430740242287923888555216256245950625871232529334466424354384613447911540761982020716250865336719047496100817664861150047348501193578349573216396177693545427031034811259129447002916318847835908413079251839238609415649455195994455443288898007703821087788296773805024724701190670823583676389773205764877768686912625865511502840203235011875697925104600987351319653163726243326736824908358022595974516209232913673803556869188428667207463514046817318909116475954913474982747226238104775943481119817217346009832422023819787268966401646472396587102045903413201888670511701103786379584708672896076037979408795578553798516298159816948693815517206278289565868080669731734814036050412308635616260513579627491718592937944530058618548218772114551171675463357624353493383445389117667616362514772995949549017950349799446877354904801862001280293997441828726288561215727449128900189990204182456620831684591310249384209898630460155678886921311348693603671519968637530391144341605785263974836569546151608949888589175154461370505117315771150992407056902848966287013845889175375189764543030543978811383853627729245886936966080202135635908168370170182584801487359139737222068236196592149634644835521099575617677177487325053997835523550861760515144341970896279955432057103649512817947192512298475497218692026034302276726010193253461096415590732692635858416174792886160632433049362840057068923103303130165329962606692312073808039164352864248982620540613624018085137942146485643910442924339184808882490432692478484634679432075142543756575465521704605489384503994862336894272157610818517217297528216336879960376675768498694838147027128535414706380685753680635646996531958383235295233391000741261854705309165006505598465683614796620015260921866655712953368352758787166326807912500677644120222966929851164956204307022556839115383048544345456861984568827927447949224250125211719906052534558297511323036067967460941702538219091813997817800597303262112463370847321795509120759993467630117598049402453641592089123335834673778810316776973473712447767955141326973309418023328460798594917913032641675543834386665050491872242861112669408268443050819808634656323999155030631487288552756667473946419512939518753794744111244956149395675087437943304307087651410436958055847256158617969328429307729834066555066762778564373042392900701560275885854671766830101224128968650063674709465101432542308763802300968627352695934463875981902141979347164813349453719963252556357194485933343161186918669990707100089349335193012683690499100629204640559832423616646950062923851905692084623629601954048159993964186367748906098729101630103914717788639593276459551504664522205351201331518251288012499189679443134560900392734018305646896991314496604548288787618565434501206243394315212940576040322531892090728482586126382215773196344683491484448458083155674032751116437916736780335760811093265055438619950311638421349626093774906915354015370565599702646889655110242783935029285098330233409135998961063890978376022031952939982683962991506972979139174961523709104344559257407559696164698217635379299915560391113234159833635290272233029616058945514675768138104083497517266891438404922659272744454534826102813582450431242314641072652228220895319165963939296663809083941787113510156036445578042598467682586868011405594331282182660639381491131926014810185137795006635886243360524898542390835396524666443321577305231243962978804273205351180911708563139179247549565835361077221026068650876197206504118922432232280422103505081311360350634109611299623756297339619781143176788307436474623166642325942661644832710925445738797429191437782980780556323643888429492785596485123655484420774913407424160738906718856794374076415771806238513487723871814418732243641002068449488047009621737805269020186320714219115306972174752837547481319599513104467962642267473354435313322451998203992287954293630349083913939228545386525279211469961543273435903101023133888774628314573081413529500060477351414552434985188339798088584535143499672819147271712807072259616709334482313831390653793336090917193479953970960865609810670988502571288541161037847892041298496504602729415117729585482249878553668214415462179717322970527110208864470327011605481468901404103412112913442639101232206836518221732472391082446349895390406344697644922178721055436233585226619078769609833292962499965896706999422253393010262345696379997848530382942121110972093465945876022177212705062111872863679096264473266393299890976209511770592117868753198457618230487339187815968079422480102825320099921525234099330619544322500781154870210253454104285446751609672699084438617716602891242012782437137985128747410719232467828555530487079089253620508233332891238438995838064795926786315097015125909572456546108049654656677686207193195309671951467439211269996727127465133327947621555592655130813304139292445286761519908219224005723777069993006437754720639397485569566453217381233255148469413269062217066136738060447510528783584261366008339732103803205281661796027761299428670672553071619335377173109455231433453556357299191023636575884001015392635531896541719239931063685032666298719755292059492870030662932991766654356559497052820998392677427214464447257277366992039756007295607184149721799767103409688571756266895092408596051330690679439865850474600496944385275660397392856565317746954695690913127251020124841786695347363187531827872751339484481189292144158604203854964760109388658637240238522065873014785250003861970470740052380981715569170623659607836317209431860392734744470997134256608700103086388965936923677378528735229135812058085555732068070703337008649198992020709074469580898320808886808265678200775233246586872728027798278018871052660204348398606412131990870135185417796378630693595376031619199889431275238375127267546741358891330510088310319585841396391404563826018418840900038665741802337187060242682409029922662327622577270474899013542667128921246838954510437078297951760426555423731326207673984618122042650322371324497727348521081557911336591701460903645667909765862289579910406221498600022586684134139736280476073001991677350497435900233985972513198723736012338069583889664380623005502443269779832597998876488864126019982771052222961384560710549696691601813890089705767463865474179139215956931786220099264537078167417253036556353242340628019855963262575282899876002883193607609413666812978485148118026872966080393179820970566615519645523909501721588666266133573653133557838616055185561271587362700581412924926666009486691524349535934805648061264953396989254280217870508768796282743589503499967443182489537352863272633211932873292611191578691334547529207217287215815105627263824610548823468031251246389386052099170893073688017521875245507686695425815006591432981146428052358449586365433630206696223679673207208729881594343461928219178552411476832532470211934246612923505528959414898431175417834901712447187910451194180818841567958921045321423422003196653627920306452046128392063744305598018402332660958121924234302114298184734368088025414221176648062285304274533932537709214235007019645230280434611399911691224366397135913238091279610921887730844067580117086541923113062485676390198641631493857836474732078954058307148574379161191770701756510180975809491121402451787233979277323159606243686797137646043975387417715869958479146717893396607498385247999520051372532650120116276189110649922619824758598907992868170040330199207574695752054275367577236329071993870606493166726092427527594555011818587044276658037474925540424401749008660361909280251090814556019873623887726737907349517729184241318831461149640424261983307626004763010566354858373189497155599653601924880576276124122839699471872388715895999066286526728441263107873937986613563479592345752247883633408438521834911074730832629781640948628158974638750511394331022447920439816513639720277395642323965958609713153812161713888642666190005575529652569619007308778259906116166187609625119779181121405774867166862279689342152396912127568882089023933602568890091073088885219914535929014425903611697189742628905232726854500748117423054178494663101925695630811460807754306091495573605417066875353239257339180610623379682245843660755206333040095402465632267798421309423646666358938331217617638947959940621717160474256923615568173588894974883297423710639155219756823198647085226386823795147526661341761260128068052617331234594726453863501755348183497760231235485848499729290619437145370501211833992724062144524813978001402330561848152471357452936270642786737262245343842112296226106918914644292255139048446986723324818994180308784845438684397558133388999804814365702266396548619828477049832836563530507182372265530039462792321875159769637391004466290546359656497855566840653299335868437694141880334952768700515738564898656471835274229421777446223472819282153493197612959337196660746161789971384905658625970470001557529839623865668464092250877148571047565004631219088620027359645396693233532031236368835012014736478333362172104344428064861357084127370766957544121539605834908643578922823214840525850876902333617230034595694516773343428899114907827255110122465764272484572610162697418759399294302056724250110672926339677261996306266686070346935313514434742254283104400941189280428398006123509130499460078429840887281377499616580396179490680087653754900864771267152946234104275105330330112205161226636812560100238861797902472086211374301187217980221684537999138411269718053453605536605710423926151579112898570313056436009429476952955986789883194217601198809896538820987485953389895899450740021136672266866734371853085647769716568667424923485212832152854188296699751748588762110833853636918683427172237089244687326331058625597168146349785960042344237032848901405795423075134841132055828578699083050778770077495857890266342002750318182282025733174626765727365857387349962513596427949559242268174256129203165620636746200243331080701057725115119070406849830673366254575534179690885704904592895182044725195744843771327078010743671751940693601689335008721091036702350858273356426354426159168030063954647723969277126284392160987247671148464537664350644583237347729849167583838360338449100791310102034618261123696185953439929386456711148230939073161482224092495177789660644669914189796048341594445948129985944291544950889151258125087379226343808581896561221960141759659769542053413535000001508707856538684770546669295186121370852532547592484337708207438262336033755363896677536188796910468903604037843256247481368890543135436797039097781701350599255224833683387773204479529091601791120390372320333820717503220419904165185973559669854981035717038586128919428040177549319636660167152025948575552056146995693157838193710028433671419850306860977184035968913746923730662324369453092707894165879009978321736650505546148563720788081658979818728188404755595694144346962875954507503598393414871610884044420685071323572726822769692839348547461448280799183859673460474184931409261274466329393574950914587395016605838186502356861798387841742897845900534833387976834377282928629335909045905121589170381049749103942147554499464604360537771085115250705086936893129192356736125902951820584090782763060453107452209080144111144080386290266963558386422053546482773995059857002190741119068300904222414005176629495913646237594597267890322342619120275251055487949245038563738527076680098509964812061367401033769440914279614606973314166183021286824957441097366245639088363437128584788098318200336338937260743772352950550062523480251069050154328937722303483857090545849038111092313375892266370492595041587973720600698165211932549391291254344513255746090625607129292667340349344598412743729384120602321518272700337077445283628472781391323013582017983911052576890259754352907067012003731022013434567434606155290077748251978632772620646388229039928385015294726518975542947198280702712807650449642932221884495686672445423584283564290014129947958910076586456341626360480267144035253346240140635431315514243331663095322306380690603094484160322529526965025916431242116621198542418361624876346438793148428475951200723498028164151722001968189811496398853510376625773008686552348306401318480948725699468910861843670060111322602493029563943156228236117425872797242342581644218542531257192017922208365935380235341530324748706677277295980865776401815215867987842755879523223926573091233476072132573604433416142306951475388098520039242409095809574388506417262046970920540791089668877600557390565252912720852861786148835202619468395433913490339538690774182805830578288358630167133062022307098818888274563157414041845915840879747335405221604230098401596920074288156134614364054708133044511514776038029936844873514763628489607510658092202427123630858233398406101201759076067911158549855010702791552688778854191592428682016000221187217872337114165173864298070612670948675359286511095410750850769832513258309045363517377945256931846713833376751203999454527223991404713065269353427541071269743980006508017245227487176621314620843984042211983656207648692046380992148693992436896938653173614534053448127078371293862238922663947948261160556496874318184297829944982725188525712037990614628859990782220246200930325433221937205924158294347459721876847903128648564242749877219519756308638009123985444485699295278836291046358972129865211952360644587661526475199463186952246452344050291851048507383635256010160889304578591669953443709281044604138859655478920129196484377255580810461090600711021763408398255860308732814491706007438421158709163835070173269123516682642153897135361499205840992217901696636954375886218786360046567144578920931857966818604635141198212142279153134586947156792255276411066049542566141255371818766992445780073262439044746166922196570889384698078197473900533256565917048722667898142058011040268480024304334896161703880267333556700463607654069276308139664788883374049538584604941925218735448369883944600581131502441162219510273405950741348494299584950415103688247518147331604722773115262795002571446550216381214685847925572562868990133125385923679313254783052237661277610345252707978752174828538059467205013859505358948163778332533945540559498808473303408488850683985003232031082936055808845116502496737520397462596479108598195896166888513038166262337798341268029453898542125402271460631144754685374219346791480581009171912266425226961178535399249450808361094039266350820232997524597955576024848024864090237765733625301760773465764202051804259387527004147163654874045971347888735359713869379422722009365550840255760229888658229331992281282578768153580146056692642656549128014680329138156664796948640040318563246684384586955887351980079639521430482151285042502935074939626398003828120187376671133866133884876848936186723944536195651659651004730781201588576978141041496051998168135045029758485907836436531142795096334193138270473567637789991710667032258128256261352779224976722762901028584812569128131036740049319157536243375872169935037255758567790439675605355134894519669263291540789715817204825199656390392864491158594227943187088995130001748925059826852872069368858897987399318845113334627918862116394148700238425936921132853939001208987391832183631743659740840034982639748908617368254084857742539232181578218841908489880049901949613687239522728505234986334199598879092906162354604749373997928554129776966616481367591485938673268068288002222393983129945716793523853494271986984830041950742993769994540363337992261213788069574217154530254628423341165006126052970103388449369679401167397301060692911503768653797026540369363596699653070385135482198020646125551269006520643369759201101105643791313430016731381576396552309424052269980348142238421222685303555936600320801556916752560523114763966328943077286385288296947569560930795821966789714686722580528104209384642814947052661837724019027851386715026597942826553741603132668389564467776292022292031722961421932170507366773858212287971090850268233391458732435050206777412203399773210862028772813489084253344894362450183429535652579791384091729720916835915341176336451457934818101373584177320609933806037852827083735691536857750763646236248306725528554751442094257960465258789668422141725150313709217043338544310723555962454704298101819020931163731965719503984614734339844263205213109323515163612419295235886679385150397868574913030671016691506878859912326872424817487249483605523238192241836810402007977675801448516007589003217119284993124779794103377643138049337576184480548843991429472999477222097889508040056302884046416943003469599815945634978982567337025279573485810613400540124929470226088825818922759253780130317040185006340813085879112290253835531445909832228141386501149441644447116446969157911787329953439170698298382378511469473255169806411982590540453961051613299418441189496639933005172538658566793676855975846410960873485531730581137720050556801047479493758157625323198425407162227403108488065754091661094757506642056652897640514755134690876017071323939574748057395998070177920582918570066579236672393532691910083324454125622052705394411803190511154545904311750922374420845118002330163155235148173363624443146071585506509883208978070140408252144495310715730399853318536426110228806846970085015364766114604338156667584036630891093981165523569185204604258174934270311822628937214805354079697456085831044193096582451107837341913627143904777794091293226755154421894344246937990458151699982421643519062311321064788695856790212600741606853279754025136643490726480948414418973257028363109540798090669983775864764046478906204268585173649476498119275744973443975302618979481543606163221808025244611113151001414846413199717237228010638411827092903587239461087337286187954896570204608711185364723425766835224905367038588348658550702993586904217434673539919500342431987997488075498789414924998128644752773492718670127355338039071406466520203123676848779176962879114642829120169368674565764368788546639503488606869259354957630070099953888973092704888858986122326930569689600327659705667108219270411103964496619895257979075123365240777824336746305638135399483321596932139609407611818468577857769703664933489932115647266285641834177280849822991465987632884665558830451636578853849076465615147037322926868813621062951415831077398279865391309929261446310898901387602241585820800159046877534627552414546292110172913263075856957706536422823006042241512864355254636355897956910735459908556979552051955350888818946865379100204825978959290922600142670932315067084654368101271421724145569525567780616945010985311391829832149299761794709274411999292274380370511131963281619604181610271463924103805771396770295426103693753413314563237728902227447225834938495294416669479273284256856692936340833049045374469921990026225242804049248058155154792646634583100727139901981937638991254416741722712616121058806511370337031054468594967372548078123752252091729210034490193131669737890096732559395444190052764662055665482438237094290574770421592090907802393317084567549439048056892802956883103011279331336470208305108633440718337574768642874091443465925759839916797446338959654836645093949550402597406251993165633159894292516320096276323603440224126188929172506559192629111330083078459423377419832075033243051807108057788328412632821240028465376394016286624724420358719436054491552139537513898282708920889779700222054721745346116110086309807307521059734380573576174938789586073802426654279879071142918422190523214712224284480007396075859918323613880502280313469759410758825262313993327749891128625873536463952022020106125319167058712012469426406929641845917705245875456578153316080764513702871996084281019285855609170915918508524388219358636395196587285418102757920382172238463908298326473484344176933999712874404435745752008733599562488237719033394734336870515660722421179106276628061587738013684366152372348362259415975456671716665022184338699412343579344447689842062385388326450970531733856149835105204384925046947769644311083865352887549120751745248834893463521083162287889314572807457333060225049984658491907567500239714164328861832628710419544484782851760071405703738817019560941097029969207090797822393060978063357217188099624994501727707011176128369002718152975096731997853824522981913372742908039468533487152946218247785503889512121766202099787641729183226771353365997342679237521676634161331380232274611944444425516519790906497505761673638988916352933460211965498006073034571679874902909339860172871984255939110176471020173496141515132203130406846242255199402951374724007622643717340595450290633174971903507824601825518488472699720441720871952217020422461030472825841048422152479877209856814319897504143070304939537090646837638632997852922982371501495180384056851967806804604615191984292765690394783097515766191112644444121280466507683548632969568536246056691973266238945022037385155185626347359099093791570188988596315965114447903665911890730013904625982391155088101599364275192215528773476227511633888892334745147932553811081682429184343887812783410197270182074134420885111943847350208013383908932189287803819983949974843317420575736142769827218151816892448524545792078030004832029318072422544416172876668282558940366638062750457088833741710364448132862354576446066616999369478844114698040595597523116523346811396779425324756792611465161821311953490626669164821029516563215949551997612759744681393674542156449129329031915234981626269510413179802941866084823078794625614788310369774932196109969911385792969183447027675911383817973259175542481682861356727629541530520096194941613576239564904465022879141449207742212612272865212758944750002101442660055352573678256304232571536032272911901229053543079673146642025906325906520999703915585315792832259742594912465771177522633127619390818993382883379127165975882421265676653634147230646980081456571122339661423518676649930197589145273884506344487976676450264698303172409372573999858702159764795895853217987032984107227103657925838796585631338359016049114868462040450341408425074101959399111412042850845118862849874462106212595722056660255137546532327202107944226544165494859712965649351003942147438501003032458841849492056850633626908549685990828701560461875350677084411394139570379418773732616645329170196404262306050916156607411205740235948522790332518691980851664134252684951421821184798500231138526638278558762517919699703849172635485801841314524935423935589808094541261343453860081121432586428810564592580359882764657356971655077300763547081367940878993318050887769158084008588884022935103935132440784396033556275353330673383019910002237767689654688539928784953916822614173939112445389110259791616578470367184259119603847051251641366073346384798518759232414186836826257453564508907688643317523129843478716204976049487807494840482696722132147012454904036165197546274621791911455009031093194650629122095147326120051095224449370544012286736807173566042575805372995815383661255315586936287307704567688521088610220515065947554414638000957504901704644442879059767912545691522593944963780419553659501576776274863753363019463797660514849035007596366637894085821635645634893823498249651614807060501559297492433300623345574582315143897517882717656682191829347596341691719968090092241964251408424134797864944610298472253915506550650566332129801654698673032770309677094590649657646075722401146251389227097199535181524461299443054300901471953735337306167562139007273855830597086804250290082511713208072307363433444807291550623288576911943559037311569555837883871302327590626632141194851933262783143897591924464306278109814051134926301903434805906719159831702273862901375804980705180279143308555076679762479971154647230323583583094863597790645078563966862158282332085314972852923558864669419679807422676045790857106992683286803581149949557018257713997873231084599673399302323837370677471942861096289083491988737219364908369691936004346804247715361862252964131176231442202976318150534413369549737981407215356499859788557089903892976829334650152634003733403404559544290112901572281848477517220401306428003399274152361714424076911674126136936458928995319539896351997172681183701534808368842153764246462378421886746334632420097012461705124582691940742033661864367359937736097759455182247563271100343636997298059860994352332153499820800529095851640594455009273631615851917758322731165201005520756148255759148812719933346476730158023869224094157771474032994984821134280831390155047966451182072390359726007268142653010081962889671731498349035849780436159653595944566203765690364518182338888057409541295709408894781063878961346534173729209908620644899325406184658201872112363974142252587307896462158277851964810656921691179796167360028184841599728207593879538149457898883422305207670736560651297212104971747173985249404864982511026106146680193324777258054443088794563542408990863676202314149598307784252117329189899009062642572628818880820346344310856534003797370297036326765758810900636388470131557671086356944371670259410073862548201513721179344365976829802427396866386707156039734424790010913939960188139912279672959982154448361694383095482600097339125965587629864614801136517710042031149766074366527141567479947119936438070763484794495599610087604718794767983568458342611544192207960524096949297059446110403753396843868754258093180080507359453541607144435499674839427221269188439903684002193942307677421972511729641800424955504483466184728452288281599110701627601396736222442090146656116017666716081579199607857828739291751796209458398334457043488640153921443220264434444866726688785545352162094446600735855105365064117651069269148873195530875069300289721281075625401085200578259444541200136578966080203247831400587055295862621157788810589741673424866555272462538662523298050315327891133590131641953224230238859782196836649473155685297282856735469160039544259535883947094621780261383383529200143407520558240637194229337491921215354476779401026564978054775542559905429568127621767049013306871994409063828598523376658840648802637904757333082585815391283806594039446596365889148103526628272477792775341654967643358797785765960896387474841144741416199865236607308541124782308913090994677000806665807352308926999246581822706009322902543605763877269048546732062767977298390507895901254568116257677288054962161465238515013526968631341201293504230379422812514581913800259993966640770363844315270143442632270790815057252470652796941352677852784148512021097616774334413847121000218780098308828219662681888728343825998422507752275326379205751328738626354111589166643563052773833601743396337319954838014891830010599577774782250117234962299641216679505122613538679298142700172853921261085249308028153180324045757375764250652646452978575018434819428837601051023624402773506563272869064685516922371015125881439248083628474146644373910511792031512797089390941797150465793726725494672954602343974038645282158377824256541112616083269461796992907019843226627448805589434811249220305572169563562474957443610682185899911696561606800729226627031221688439917515072568501279219585301629474058015010204881070895388042095525831253912673767124596241661161028592493971489988429954080214841048575113932344390518075204254503582084387565606547673032285886730772928970457140592699598951179706945325450005360345185919450825407092798442704081059268761048073593459970874620778809180194739892527670105767745050881459348874409821554137844291346389117662022697323412798870051769912056393323495288931100426972140862811812671319604830461750205775475129471096438781808843242052346508133225814239300437097502333995091458092284577365324504639263703413852216170542816244898828910361299768638874599334742569604709977039422997324109721234353659310100502547319286026440135075833664196050869417253916556012109394845473771160392730783270669405005546265090501084572539302325681368201967534900168364942690722787450707405438950186585610463517488403631828001516697317239069952774385776770605362117565912849053058989386389097271123225519882560865967413066249240586516174757233807588348636108428804152402740541918451416252968340567744707446572447176793837529874296907491561826854366235910593164079316045862420620942681785061274500668625632099722021390136217083074754821427074407185014189346253653491484575572403348460728472663492168101977627228084210033635333951659483293832271827886868409825368827381941490684989469124698347469128795909326793166596157446015868053060135472843316672377441988297029019419838283470428679734328501967574290366106310569836351675384977070251350148990090314455632448668553145864211727169427557624360178908164459930380944773815273170361582063067978275497844851410084675576702786998070081011620962711348203398560360543850903801634769923247409149747197867246993294770774202155877382103820073757182654206570240210661156147314670866242977485597647343158284628212250945177104928543667894650570175031253238227331797799597712342804784155594190035061869569385913165598480548908443096841171499843047960405101875962167147925534961875653572674798754183218814604353614813012231567193109224380521388027415318889596578877429243218718587794051038965879684972502841402372420807282734275232124383329541740332788141599491760112227306854440665996814618838114000741784861542388708494925075761704263048010551357066229772617947892811606937669312331261606639988339237232279481035410663742383190632120588722667679733752617428040355647945319397160187475506018626008734318985187024256466119107222586970169974632671151173957331456150797710821785636089019096886681379264137181600845647265896035836996911403400732796944489230052769030968721801034549668878040446647250323229910362279963310941380946882541050939852622827299173665251365913172823546529809193481348913512995115596110762678885875940367068820112577042753210874894783953969342773080120987653518594818241914255034126401502287115962518787677810460333578023832248119441449717866542109836235146407966634406822745154695776001017628429022113075225447539049376303654718844493290652837523948910660425162123869183289418977051518061195510170293467921054863452550192322115426725989567886017732407747663625464107150460861441464032356299469832670866779857076152899314709257273263167114608013069254892949296216615337981640064979088433355876044311513447460799213330030534222992634320735125146974796887362105268349484692218679625384946495624279082028954158853234061285634779860035638133577644640824318415227062258857700855792921341150012590225393290820949363233176048208737984282373866496149296383995964156381851568578635229746168507818622069054540343137518509681144852794400961916095595267440299846148874000941305063867855585735682617775381289479461043587119103619408534407561064126968206641104197150117734707330212256398309756371420794960954612445311917511330036950319175833463939950101788256712595810536729768857632427531421517925089677199995775100295432407203500734334846740507266912620922536868389332132525709305731004632027153672286449742678328478672028315110790449749389178448847372965189194363587255321904608300344310088296803515864721082642281043584396972701885706593271226314790778419638062541720696443077297145539643971848265064656523146882110077681109117736538706106571603710939843204374104255162458061062764238142938712600608220352551772926075949747310959441842278292705036905347527648646921306114063533855790602428827629071566900436257890961199921213440708022437279729759207769847230000042627250431208278562605222429606016293931719471511706739256905535432042016680615644707266020393451095643927225720685069620507497917623497486341944677143666660970206065009702853995695310612943028200034202932480948554145976398695691726851173330552438304773451856594991935894719814259884311798475991564951390738274242650125349243330006673360081175769335917055245835744498273643801028972373717117645069679293242374912416465318924026684369900695351084726950924424657231591345277419573060236710218198217441520395643544674980602710221130253843144029335344931823445526768645157381170202321536212525084433020054212966495066989744395531110724566326897040584986521694611488229096784601938912576899074023291587474769897017376289433369942960214340496734031863490375349195662189898480411230955022131385274215372930013059442288802392821463837614338245032369968589173391292750051815869878303439261767388783589920471401449424308541573319408702462968098444176543303899156054828955717014550265921508720865033434090321706857231660274954052840075160340360878320051992556854063699804482517076900765555412776305071821955225670787720259818460141436253917565832163768315133317244577431040802550190090338975181077314597512995110971873393247528986582061556225839781176541090697291062310119553291555716018465245440705232249655164325733324754435991282516722040729657120642027046830617942633271659460522441334879629263948505435801494109612788373701576168074288246690463780869543768683574757470297931492055095190463672350766262755598414215331545544354279361640330341182628013484069694800601478511662781373279443579554508838779010220768648639977497551707240952533867215894999251080200931760684065634304745740976155631772852298700060223831826296273798991084705679725321552787575135366946798724166259243492876791605836484579414624214381648990730031914232218416357388423777824652728174496799353080914168536741176277948121790723716410665533176767467981036943395500676376137926665727292733405869366151411044123918103919032827898442697061293780815552794849454541027829492053104065551304980127465477212514161311548042541476164658399224179102496180583481304593458010623254088080239163195863991160694847142288257212798972988059378625008771450237368544021977061195705813473003827978517396989302342072164850482767725392510202041711825903359722317817510929116581118856403098119138435299397387362036501324692771044042897792632528882518708032602731905054458553319024660562748724672042882526573012113656921090207327615287304179793776945838165121572120681748633435903188152879729679923158505207719769552533851024379975334174443479687019286363606205086698198659588338442996917934786781948172788575553883478166218365273615002288543089884674224767329907687100079186490917619094727078226154917121095140219359359808090923181408276859684522925764286810232952986267180386788781890679619787395679810721646964997101832592380306740588187107286262909263285997853596795738895196959323823979332599467612047075307309278442051581919983287207352013351941843862239514749252209638656023912738118572916197239740808967403215387871034242152302699700864406269261350359903069456575549854207966546038086411888581636959953612878685447288301403895497839495584722270258522557084358284203652059186227849596018264223683249223372003101253765983910728524732088324753747231102293237962219293988999400802655991071713650067031841072493364313610756545867683318529349135191570868606948943934166865375730811206139072786398030152815937004564672377514350562309742061115294147686010762403757483736523039092511486101355756992294267528585568494332477381026129824587206595049483806219511917920691548562766620933803561699652554254556138145562519597087535106991988847512731579874380245385320432403188747866766810144890672395005113404531904623349160953256921976741870688654504368774376735327322458581370238240433858344144814278483469508081741729782565260347995100655812688856905860023599974661941690452413475276664340555306035545502509074878701345061254967149353888400381773976709010154772454859039902855885668280900737953504969283517874694580198095850112994383137810743360184770662493755583662887938645380027467800269929040681926573337479107567592062730542738335933506043806255451743008895620038156719245443870965110390994641752090401020593099144462260754768276049231764180062789173532369850523255952798468413063063780376895015767764094840039033496760128371136673602047939199859460891936844419761130694546863172831428845830767272286462696112674772984058825425347548787943102857303824466149842627484472981176476422607500492583981376739369039957022351000791018076013638617454541692422287830919859545860442041698439343229300772649130416402671779337421008493955336575429176544176404057740798655330678000849194445106652602827916679313881064811840625120811134587257269791471673820736982785235750994946960681644599172798644238151516958382149273065560145638873911706823055741871919241589599266951705847376809722491490521299018592253703613323696108977127971229018575414532305865715272934069742777783837971600083330878465032825603355681527541424886692113615295952263659768117756945263751367660340068616496269989917863499470373828241148335576054650787517984279981501983082843264961820738040893605054578451115089304941284694921682682567959271708235450798259811525488575645169450254690996857183069357943445128121368910101003357758156847208098805564791567173883968622047502885813255409886186305761377707141523546016792676493082794210206752313911887100582800543530184844701033372818336579749994037378781205203978646694756339237502984982619462585940693162316645045306175813306047180481905544735510802512433526140279861333626755380959786869783544601135415792308013799578605365517724137652997410892228265150560600117977923644934043158574589000920410451432423937111214104590867963940819521764557083126419820656641719245212513985586789704587181663250764839579366621551624145717282484383519646557803963064672496599944984284514785182658621335702787106901420396364276811849840036292650573489821138524417667711276541003265054754038028830184319950934050038990504621724259723776381157374883887659063055726701977223620583575251528309046000972379659822971616159004763984838481757758958176979490082705955122165199802853885891979783576311855944604720640894245560225618107831061141558009453920464469817201897991921985804701253009492587724344750695341693507741396016174851871597563387288445061363734276503658338867990134946379344254380788649286200859197997757310528091670513435249547624836815152840705721645719575763490890877618268230246381162438372478900194630977112029893540584087926587355932371266116130982090180709461933094947097507327101403987070180067053446284425404324729361455230164975851422939377711290671223691688285527758032053045993554656093568283342300594044946986277782857269540813136216644330081781313192123060465863327777776770093596706083164076976508273532131544184318538783003581545593324618782463717107649178592773947401603862026422927249847080725885281282871227124026964143788350996675262197489516927259416205988706494081693165342509074253281694970910902510248482672660374789132314072122842102174593464298378179989909998367503371087568835688239056428493743189145534284275812803952193403913697549646072113093298828832217109815625921812500647192796245603576770522615503150503239803074167191679290443714167634781943065384243358086589782026520895549330159309768646546027482425065462472457464817602175481069910756970034601013729249257825839788168778817430730510338306872702241180579666234024907991844151790528065026165403655069815958984177589896448587138623491716828802908832953878503401131510840971922943401023531944871800813325378262050634067113761607054547074642991594938578224901220443108298934459945794005571342462725491991433303062432428886639069336213697559558602524199973135101348166568701674724471259292339402500578582668836177027853098720528075379551411185307297171905237263641669105568995491044267895930498360085761395337448705754339827356603460425980605642557367047821202521177500467424700239827198724909844241690000436112178354289791533881197450460579677993820656047135086191654052062198466812162231394975333623514198892171739960242810874418951264237984239867667517804690234902114243817648477681173412854347400119562391226786032957007566303237799848904545947036763832995743543308848221314292190368712050792068882363228102669386538484692659532219343906989829557100699800052350578444294506520037360124425562019686399522276609017811929091354720042090064581496631841697693904590307026114615861281487838556166321511438847906922667097458190711498973493269216930362337953840315980301377327806176966356361578076422525947679970146894001649910964823042510337109892387075910889545816081580384992379100787985071815015511942612165676200930610308273030959386865133511472183268849255525877455295754532141504126823850800424332488691929120835852690629365631394779713697216957183917204720202481246167109602261037993167068365987450367565605854841597055727011900754783063680400641348019179429813075137919042023477255487890762773435333133475940743713323076902510974682530831863390888315112726363818958576547716571244206128975843893764796337283905866074263754008107362298354360771253228003117581574042370675189071180682486101243954806648335132113103843598217657289088070482610527443184010129496206460617286877627409543914055451014605613576207127968176975811773080248856924346599834484943391075464614818794482588155030698679684012153863683280758589346726354894164496800885532501332361317004134146280980902624484752866865074944205352398455115985924629577656044862787091626675346654551406322387983729756584965662068447994401550184618289135883496455275492616117720101421904782951977412626484652394083846338925325814368125568505274226892286367372488058607947857522668487397402445822430972181482401254538711146700549462316703289104147729167921272870735446671169393400533705252699179263914173439475402360802593702579615789689005764864514757952376670236769848089631751829366717148092671474562753000209197188735646006412436407662411219640439919346410040743061036212693150934311076617131002495767014396695710999294801153255409212746457037453798311710403350465964869010620890581516428942029577197857983409580831830595865498784798826208315755351615500740951836060114214568068912301403960420848313220314966309533248704321773192419868650212640739715188704377527906161005556652424846199280516366787459761574873311128149844056064259758346846569300418174350861318804415658690654553649480224204430625372472418598027743038903759522292415486951582231116226442308518210974345111261481348266806938512782255574447157045961437690889994553561554079158230402842546005576393918904841185663896274187403045375095147054037290528460860020584821301873488819178510892387454301956073300225942525035922275670456246359286185628770114045746788846128736303375879834764049137433651636859832395972981431234254989084010066358755913748097651960446076744351415151328278689471119923398067931867091748399886608775798798461840035048186566114162088808162817902299741067464994172188101383650468545501517611322171382155373147432159299087642982929675126017095635707337402239607860406891646062822763761576019704258247996956847280801222365995760089910695884730971858041856960313433730612373652253704389469367318079315291533960784221840428814623706910190107983802392463874999389919025294193052804887307839636753247714359735699263065685784719568322473778890319697861904702063411703017346546725421096644036322519426010198429109686346052800165619419683977411721984187687990148570284479685802785899535298630489296232301467502390209309420261916697648520403568329868611214751315030338555138633198709340717422045939963607597447618077119187312700165040976344088703168454140225697701488700650266905404284316362346824480020277833900533550680315811746181431917614376831463820902175908914394852690079264041898466444644754340778758164402421017471782337740897545810233941132830259444521984359784728445662325978175560461259713466607803748867685053070064664078639838261347391876307835397107280024087557180683883369055928796150089818080633044149329519126842994893594916750496467165945642801258855579554110239001162803765680473483216097816477096422403627624392845325064792908659805197763085203230028497378222947127239825425782929487189633641308124735471040151877986624967902543707543603169121749709878966087287490700031283451121192156533696105873175352534729191306980195794632423979486654812135384639859236709505164954402855550150412877519536824343014447282879105418091272472933190713273718238737429238300667972062442790923821637241149225587545879240433514655982299623491721543475501135709352542102478077396872524004918983579774166986195816007281395261258868047336392312565207739862625050882709045118207991644679522831782217149844812118194010189634278920019085559209420426979314732210521614979098208721861467090593237548204068766948188197835276879898736518572769979817008033474211083706226812314984455870510940420765466765576276909919761072915320296336197189800881647035972670705537572372877347075857438507299918907652256823216799935781702937247759896795776916160598904504281846596491123678734616377233751175381954551922798342706142861080450868690971599429981904198338954306530308398417573836995204811696484979332633274846894507564656968948679062694088588618582580605909334139826906672858205727730274287695562682199910962145151988548919902667087476994611228731765996096600053860189228496774582772620643284724618106032994388558483379858080721276425248221924133396849664915294704146326059580900178577361022075418689486686571854307999015059017549793058983599353917306142869867815786124901950221575208524819881201566385762193043010618770730524259628661790798033718695406689496491600152815593904886486492695919634358709637359560164152720010583472307991786666303387432971634107813967036619709914907164657460038095483933457229364764171330575070649465355056191530689660132624080264581854672021896998862808045740311280029265392505866219531222441429821889055974686893255935062699502960221008562698098835453674392391189992615411244776605793580939029609097209367714202955533107333410957607380790599473661364965442868434806984031314830554022850060790239877586262081502842269187384160597089601008265392244656008082995204376051951849649407405071131029536837844037363064065224504397821630737304208611517312606132725890769632707884751146415847120703822353558383225868504515928664944318414113066687117330862196858652558199389949619430898048535286988767180664612570152500066760363118975600231446442762494268684135730804839428638559559100370173399331641474334165497670802836862013463256360909418260390887563588563427327115297002914281394899375737297663391650648973037438906481463666500133105403124831650397205929992304655857121282237513961914315014093413437682257213884352423918181693775143382226370546284839855886751929924987493622934239161606153948382610495884997344590450359693984728572983848004846794410958764155845997305443280750504561591063428749811426070024920127189664999352798474054995113057376559587776937435505600890773705908957196734968564072900784202020424963660706910371078453936604997192434335302367016292368433594303980939957264573654007336471836098008722442151939249173845212473041097217902503276589741153127781063959609336508946213440495906809732017517414982164203168029198815700333379228417488666943216975511080774727581885713570952010553152266140903971708400129471379938694452741568571732588309409006398579194221850776786325310889263491556774756444300233463517790272215137203883384877909980597136683888811123695933486985376421433695750162386594973290486901655265951115033754414267559024058053326247639661207568123564648045847630070935421874300522822219817444724120414517680632767276881725547319770381791290913430163036829446222903808583860006672104926447185516637249635302199216227371117263613657655552407958309993763026196680362124282878210002990358445228435762437847114836053076662474631607690488930213256014402569436079923854275013949088635996319039018436669755813348933176289555916195125797087947153070947913271978634443416094678654362271384600488543736252503672692192746551008960951225852543114212879843712296036116159506809202800398023415490791470684783941831195850842949251134606985395931159665655152709790011399671404752545587034496903017424014810275436740098077039410428490145482297942930910463165128992950896060016302870105307865817822185332182531539729853454965794340140129352787371755843223401973147180506231440085676129100496565273332827179574744269500310223206365399102176838679908197679338527997694397861157393807892620948921626527550391307138208961280056617389591063305967980343985848874600902308200001125700426784460813996793986803119309058758775220946565401698525695909617961118467690939718054041920116834013628842435658437993847595665341282356365093315151429493289427022325262279525243922535498171608080550480093089596753206810977732744130727678517208305667587330691113572155961043879889999187559756484585611311470448042323684249083291652068555091846841942045697032226968756064355377035950109583486545215657480733588014719729006858327219253049846780588764219395218361279555189751108790721434376016342545389265292352720115300089252928698234316380713899166936436808620558208066969072826444035652084481280850668493956429623399087341461157490349143072255822160214660745654031379235794890739635078177489565340179810898980873832224936414779440589077693768436792668809610578097765992836175577055162411369434283465982087715751393170605817992155194020694255726763298287694441079155953721715961066650419612360007832102270111530852646535433455658903735740607287220803373595897850345597370565713298458201997849617516742696137266246564226753114953414527092841814058175021087880252239546676175173541486094269174042643317430725974508059012159429192660895899755330795036246578946786193729671635483689950876977045925409645088933948485486170465738057988816209272377178116804310692985857344349342304026018184364796131869123702287543612206496336730066785217051964892886807542978169623459366943140595639338825289904931413468922843732185843325590926759355070623756652226664189028464775998615619249380186785859996302952820183138029230430427130705112587314697177166165964786616703589075666273018830064236562711797631494499854589210015625436878665480900151550377483128369616396129608319982562497388846060328671782709884534431679484865183358337267639778716462255510506193232190435840052949553069097412595021247160876396955658389642673235437415393509679419625778761758527762897528446081263965062420229768637129865244649357545607701838163424742682977753432552935572600369587376709897560850116547815623913624642182407671853558254198390841095612158379629873856957075635856181606051469620716107923677379293400806570139985231246732228211247702444488979284227305468895609784920903697627697012070908349094150344613537795497524063498743534751496857260091489299595039052359119524501731826253444988573766609268601024278129332998034133847841779589126054789521580218029989823330588701458325826747355288930281467592291746061158512615107849099975205214120008427898848062514406250588390552100908727646047562783111162525753502811431084065441993159532722958754011764844072347230298564007526353868346692388493730084307617655039330617822575913364268012669483101663134668694850584233395569096884265416402833334178026380099714016813432284417656831318254784740516556808368307437900460462621684457478451753372429094698948500230790388271823591493742949369559608016248149022664432080689170921649052870334196475370974994509497012723174256505658867241794240806575094201485267478543346151268462572867174416658321046069811648648898163493007946049247039903110424723446891049911434105722295967683607610450416990498571743795482238176524037115817742554111135057271290397106132303002461690509574714772363845837649612653661741043247683636273148135442760828374702213643151225051004829383974121016761006499352388006238151383003128230326611549615868633293149816123369325410772901675940835494257990853134532622052313042494811409412441315807416144459823567281612084982400062026054038877271122324700482414875620194875113160544782125906548164149939595984307794422150900846425571868993104360222016731976352773184612470950499380711435443265363675009716772250856504790213126423178843925130034983732634954032520125221437495993128866248308931402580053427758382314585575548784306168928050147060195833824061745737930801875720668562955335030134017223389459019209323530074912725180627709278786050925191325698520882461442152451741918208012763884536933226605817089708061977926878482074786939412827239686611039767579586432301810937798210227107862632838745183002237371402966660767523753982817316518363556550316891503214194949021190103855455050938448395909723653174617413192302114857284998727460813365569038399127597168122576162782776673334337313046146181028206625736677964614994724966092550497418617887087518376560093857181303988077365368165058794013688336472801941023563766545101137648784340989263465316421653636919120997353241194681103152416116634653441426965572472036431723456734667229721269931836977880702648130682222094543388436366262226450595275854091962996725598200559741870681278102088864785349481508740101598074789477465208999469985457241958488465114148386393358574755962476475524966222335116426369077919361023145193491873862683863048591611730870831559680356795397236881547901232687107389572026398659595955323443513288741500514680150885817250205610148502283851247204448351292198054557012671748525155585835556465077357411787925504581782748893212549585768829896777269478162745625500219430202234397678001334020071243168641794218070348312205968950859610031793938245678205731530390079077358196082269417928066484461609347986638550964398159917315370534117209129151086532258133214741518886092572439181244808376768571247718709982477792902552430957664792178789331791656724425953648187956469840716787058964183458550765142094408291651318340050032042417908380140757745169471308341817813032201804322165575967048164738966426578432963881941755217610908099992853806663211719265633088303087589920305616172333409772154584048847167743659762585381556013729325072599349207211841906019624493728003761693118513147835757483178193627185001098208545156675322898781972329638967461212394992162171403964799014942372179667997533871431411259048825587625409802580603466458305575074948621814422561371020367257010231929874940988991361894376289256991373402743976401374040533705650325006647222404744738834166739388390071946837158590158109572408016729426842211131912050210152021443466934737659020338011517289538825441646940592031740783892738024952645864815624811060404069928150510160641022878598327935873708902302986413897586964486522270673455861079859264837475236794650975937078192503504119775396522365790153384707867082844724950001932616928160757027582222565939770858914286332383849147420547070142527802607331118112155171529428892106355910677033298173685364545048972708790231681744540297731186655257731307417881654520198457635920186143766077677659340282043147470211474439521830898332418971545702282856143541949703233767569009139744583682303541088678564524556283942050428369977114610173304463413448750129856998231505556557531984245201771845913785515649638824665075450690932209793273932868331890172157921630936858785078421836593803802686645049092331742179887938113947211369573617820590542622237319344801522862386086329477483299210345320362645637844921310387113379771514336958998581838019796907645631177640372388004627745146844766554957900967433353403432917174688466151778609096948181354163132404977766190537084060071813571689082409760432935007903703077834101301513829237975127502508952643652229163929196104508213697537927896098828319514486711365469522541834721574384480205592996716956756031344580385175359033398934800484285017287753669306599157304527827206768346890861218544487073783902637389891790055898504377042665498888621071382453822711135194466989682012143564777817355750528069169564904509705782200818293961872650535263907269400158902232062848264382621801160985484025971073263950637715904857833329700647706693627783880710690727220929646046591594333730115780510587537511139275338920071282907909150733552893519938883918081068455228181599222267291798461060360699034347225669173327654660969435777133570622798049664526059042828623955876960045450387513722519759759356001980519367011701415619998675288968929529272601642067799829071720017902062752722787074245137570082307949771832126262413171425818546265838208994320653101265845217281749204187710971694174590464293310622737103184506943839451383592827881225114612706301900972653807815251085540503158257488251116887122258864155939392452138360026707640096088711345766871777860517376037816705186310634434650971478596578356274101279720159973594725964429621677735875253750544121472210245702041209831625183887661273262582142222448904398768052315084266850425176309349682643965703401303109034840090368606689401267330037605808375169400357066862751541867971113445302193820319064588520674725989941537049294982886390733039627414438427545412178989037651550131189502686750178490486483881916454290452830362587377887630518921015194765719210010894600523483180555446227133607689206774667216143413684915365345199655949793756558520227115984478535569869420768556583565616867416833953181977768245451350665420431150060678805049433124510495997182552096353872533461050012816398717243347564322735056679350348715788396753367971939795959962267089071075714340246257946395323304047068760524180092138329382569548152774452469094001664068959265161995440445395691675125994055591490957007515069683119207440329372241186169813187584985334201227190547857098262146226165478575062063609166507430615418439317782218415055194000065651122268094684254589453621067593127768173674762998990082099694471545863746324989681390631509527318058744427330788060858842576520050353212450306449511880344393853152854436599993032626078406609490188325985037323942099759918956256139679359189837875316570248134292710398173396700121070672363414837703525689331421020819831510334598194432949189522743773503524759768776875783902262505794736316190865055340644687460919932800344637182378635791308053533619885748066351965442904167459335663854529691262020631119406501791099704355353382771573715364298952128647981273974051556901422082631776338993189565586483035826927614743263291190523103353259064468459156610450404523923825869341450033520935435626606085702822614275693170308777953237709398888316502249216026814606709046385860180103742891383902728896093576023790317108679358593856663123876930557881161530173712050004511684683624657772904914864560673829497506830655147609982072932674972747507114952181605491663562114663258220808197971113412728966035224721152858609730267218246473799235535602870776174553315104858688490885648233844232297367622511851148482822498172360834768727038688429440152618657240870291769940538702825752855209772772189074344889203374087103420550068681280280483386211416987538747115181201984990564562210810631371484339470748872005539216260040196417342229275516153704101174947787672897573459118697661232220925303995919818152942200330566393612386723638305942485733774392784945659649054096328900682192752487623805816315610825665724470593595480132333494228646913329058343364545901123294345005783365691421251950396827108579832303146832972797792694742358259517368847828781778237796958343508689654347372495988905447075395780083086124377154455239615912699054357288770297820152812962856541540800200559035884229694764899335723639495802230605459779803437832796408196253856045973138715878880210338457899149484088483870813437867933687616634951896122300967696411648791895647851449348736422293920925888490602121253183104298152754611148636947683437962648499774523454324414297177313798757064088266313380722768971874865229829887837321012775174096001275710269216064656043806239975304095456210993633503873939906316928052867281494604667307855892356405455686163622583768539663947634675693819801017482310469321545638333070289963763912931739088035565594192588625895164967722596773201742526830001045037555230433158954514754030401907210394366047817756933283271381664152768738863368970405784528952993798050445885913461358673918862979462521511509770471977179000714145558678176322579556793001555176054250998134100955525783580525994916919367415490849597942321443163667564537003286713993275596213091755269725069315313443939541464222796922660135071173927454124619699349028387322992212004139166959315965393052486129747591362053079676497982865981876917096971634652323624888024598236592126049889551539499802240863079594734324588710203626299244697399803175394185164789302505672816837694115799412206389510689801367275334735497277913413202918476927904667994342811733722619310745016075111861159975877465076146664123661632016833502267820365683889067916944491909695704498500533875587833910579917802247919498343030642753359673573075834942225179008735398349978801276463464494066484043089111698041586717275944314360788163230092615157250288002739246234254789025734045618415346475704332980276039895681356843610813846782163512429827662299435756373636043567595473325600008184514543131817740994307809707443145731610509922150477258650796545339941235204369619900566766264075068524257265636301446989788643590629867761496542516408674116126074111706874380227731663983980427903235033776970739306233388792251969197700862437514977961059642051495561078398262154561173673604214927240332190773376451932911251061433289028962819099027112806893154459889278225648784989675441438850053789413133311611643048288118082726480352669922283919449908610104153576674950822759803913626033496477548247099790105685668537456318166676169223247408915050042592851123694789640378684696787547635242293517101807844551306982928561870267105881498346168169013620831562877493569090991147628394050695776472975515332653866180495228175863946382646365257022798388753644320920878809363888519257042647557331854757734568387894655990119375594965717078211240623393002858632986897994031840227028006711960206017774686431076784032283956003706827360608022542840691109971631333026965162826823977067843052504739828543668302678049359667315496986675314041014409596943146722351224624602474878932191309465008230518255852243313029739619004781506210225057634777544646682826334268151644379883083581137093549776566941855599621087936577653927319164272863603855077807059517186086926074206550170745118396803962183580383973990730517256525823785402081514399231558214701615177783338278210267935256719208553038926060905578651304947031729465438440126690416227177675250607664724589654599017519157462921001571590841763878967591841836263568672545199758256069005811579359987605523330945315912946209829142940527272840297495885233060146437787829473533226422263675262697492003533266177402431349316300693012394516864940105193886313819968631892477229221224783265083241234739071727596465078859098391370012333720630895983850856160220285710268141025865458085053533193612100415975973266417539339896733846797552213866015753183888534255893862517374175688651383101701196116966452848140677968643641158099993094598518277001741289986003533733095084059636877865741204255533161073254463780689979975313073471234747921413181330279580712818118298017040767547258910403700306411457346392063738776492018453082405308713233629320728295080803419127469228878469954773858186167565101108019397904996356455059396773379243125026170283317902655795176471532584843535969339487239995055590082825996724905390625567943528956284471338664122112319559483658002656072868725913089745510647117424407790076738094745595502284294973802583582929978515789621235938803015928931875243144702556564991402796501829086462677074637228057264071604321575097034689811035994748384138983600038439481401152402906364768884392120547925117817166939646389835828387024153293585909583488112431840257482971583670031697596077341418204536570647224750668709507760131303996274155254150358002833474975611220136196147192489092049411830260170835015536713016447260301069160664324063681830814173080392113802850733201704198038536828378813600838228916883511981417082853731964710564599980276908017660124980377350742410712077666777168032219789099134002970598104777466294264297949351147676814296786251796318994227246027141758504854546922714515010988005281532003131027703997914581464954555674479291942650107054928800847466492033466807440708246348127245464991749241408832030045499222411354664905368905792272428585806525567405394256517112045076429450504681496216568840229366143161798209649990110950772808224482426386182123540426885556023060305606474318938603130419129354492267362249655292028027039244764286833799268068739482853080816880846718703368419004461168078032509409937131184352506138644900405896162371315075556501535790094993307911086723699348132772897233434704381249425469442697849596902236223799146601699739687501934907947337842907332697337856598352659241912734015953208943647381203237471203724958572801579248336264020362534818267489672297167604422563997114557307518375028008250650009152303695176140783765410096312937341811742936602736831533706799233354252602571110570952750897966335597108250216873394468776546642720861407692385685157548219983997871136119719198936471938988894801141821641370398573080775871667050683496410104853793597348459963401245525370613517751425067988477870966152317221512743398835096265846128271727225812395955084171595929879043495812773558698411741404933597684171051687780000397297475543452296964217883415595664600162895113905379442051818894136288426186268018633411684465526965199102165790779156031950790355047744400373750055176524680451535025082799235885660268654023963267498050695515542730153501205456639692751199687538698578104312613062399081178292541659603732615769619069929666733312597756296427050551991970852086450507718176780964858619062328914325110616245165046281017286505362730373158057795866448469329546434491008474460222769740780573285970170001259544878895097513980225256321729443721397342249690224873977067146556614475030541384469605224809420797174034533033304536595415496173409755931245454793725348149962542352850752198565388455180388410726889902168290696080634114182208886515464104880160884151863615888267060369606673283883810287568893770198061000680580309495673804483287207159770061282125465209109204304256495130818466492513799680560698782389904322207412439460447019155663002127216524304279407773880904037337884453195278055323893472210173639513172521643466375954745640665412800732818320837781927504312497699946074427401574082238053588742237834177370394326884191401037456068387984225872855588350254459763868166340010183690414135112558493174067146922923439727916829368902147896570280674162449344446502588492459023169022007778140298657694904672200206794027001904167153167046424891750890396280692713394808070427342667076018171794586393067320131254974437825147686807592641571818780322867650020832810577059996484005424080353388343698326381416384061951655485777972975562469555806763933312212452658322142198299892204920907329339464050016755379538790169476595406627565833746521163684294045360455919264568215166343829109258475827060527112119296905846852089810686008757275955707098077885231652666666839256070845383095280756923785131075201519232388224950435647876618218095441409670900119385978555737733980627102953110422728458616419401616063038650707802256375198394557548074017991017263675632325822434057235670392709303358141374617369306270985567896529471734370502838946854119606522464707207895935021868992307590189919891061816558680724935826419324926067337467001218092035912075679240047646150337846762825459233616311555754033882907715702662356096876174750614192966654782492820787273056354720837682921928169035644343933387455373572644367283301191603126286792675189165012482999837468844348233022724392123651697708863895053556268228222643808950489597202828547070662566376971553503427885074800140180545034038870178543118521431869337119480304048474662673977808321234802744365600343918213518179601876893657180868398407545566892090341192387778542797896552056225085290294323776138705358134953551302933982244255605912573409461023885547852814713787058088731829157313258916379670004176841288741105922744232689659285473691995848667881195824607328931204218352215836860846268431450835940517664956187336954321220855845008874310354257321799590978811424499777420126946779154206489041066039247112600924806178894766523634364928529187706663487630233095623954396698920915712235549332142967781663081532917468559965871844616344012439100530815397692336486306436678378618717611389808342915973539135574683688107309582715233898223786337976157064468128648914916334804795067727359120884233361028090269046878277744488476925585760992230673231802128194051896869312745030266198520075345882554691244343184038392732944488901049447071445821620880660300809838227766956326275291392968538575666187041586688412504571790673761251717263818389104231619543209611898236755978137042309723791557748174367659217456594192573356739649631752611044237842029141458308272915779617443253176823771423537291819658687517339915845932416147925282828376688215773920575911611462459177683251742048459920198894474079367624045691060399752243485808422737195757799716973456622035270766802746648762882329716698142391461985780777573712246660783582242832885700347310264172399766257886586531709256850731809963727521960291599391228169464525411621879914128053083624523915756129960505413895575762802737039080006250178401092950284373774932395333551819559678352526155213924919520358707735202777072035013013831316862405460290067317974277153354667389023728149185220099096447656708680557579754516844294610543298624467578691205491290773615043692873688309840796705046932481815120467054182390222160684551934997696241811461062509996846657030773626651564130085364190517243761395848994857935593756095326763165402780233620523481139452744237452135242868391300616717978124883209734485566206007239917939989016251547012664005022802742790125738333318496679010933539015295912516595182072688386212267157618813383065819122783932253533265122977256164579064931538636687197713951416128955179931339176998316999279773008649987147061523039915422429402001327573691818400712443217261785000911317372508135810803099148351224133561251715816806042000044186663341443158470574046809607978545631496147344602039298232693864795673301959924306363230394514306569377726477297263578567638832612533369394114599703238410400095674679419330105751807283491870315998650447051982296769481294263711063058105497260695328725575248966148300787767540231324649128597345100201588186865051114693024800539195654256853811330931109403806601940796926724706906622373329646394256276856008375278273499360029600806192883176444013790727536409436726306041547622218695700110470650915130253873338568835479253625274725991446621163556808884230531110673389221955317954263858429079987954489596953569287421144319274497842845152323130418229424056716649325934687079460803456888259061328981041424107352882814474134983258831297399273003200470652352697392265750545605707182015509750633855603455755943407004016951224162066047844389565061081972588674329090043624086999553894419900318613608192037339628386656889332009286911428562609608461866268422978973546743009618493810535070849828924101903687610676692664056369412189457890140216478938431238308096008463319719780071280542411244413295784521966705001042375580007387747328309947269018630943913344042936569678991572560181159077489258613887524670494245381462411250895427772751996155505394477761839634612112305521189884189005168601431022900817494562159664568546635457800606494679021668331827128221630383936768036425293763084625116686457946404205422256376994029934570645818573542379971876126756927286315894670184788539228304503836812030473832148193904554618311694405330143220170939855874105783494672732508634643734428771591918633332419134875509874056174257019902318861968805695944777014185345222591763877866340547290477324988605746659144563002772679768925090819932690521886334448048322487919359312870840880958871598863958599635902599459898950376961733625124209920263215615258791399087918262581004608461935017257444363438524572507963872681486150824169601586509523718958880098633567221999489972114615594479205945618984889239049509871486602106644975383028038027082980581487809324353897903157726944739629279810166788431471893536986373603706557543249014076254048467671100373643244981654395449713553660999872198488497890970968234734678862161819166222249491324677001562962824222448855207400573045762237853662110207910729591422245936732681897114446261670208971934913327830841138765155494097663059654189174924652676553489391483830643409462044005715382610854061619668574755772173149018270790445934469426014203958233509206006632457132847538442899530910229407985798620323083322876450539480554955646603254869479724218972478357676522327357439743386209688479377096310822360301473200988493641563744224531533150313757498272919896933874324735779913710374418561120268286488339787916700796019221138318559495602536426854642018425109163873988268069395241465153676055226705956300878284323139117068523945042804613910460574350183745034355727148058542686187911842107198403800694505116900500570397973059408545211671888781906570171726107134390913471287798421189900883862968176339081697619670278516617554805766546918044198040235273108832735256840103416165315315413802280750321719777231010147508596060321088857523207287996365372260177098781139994110033845147892853859875916170642528966356462340337052481560717134672358743641157638476082322858970063241415983440181277956310942038448253548893271756308197059714891503821252280709611993796804530547852943054630417646148068771310779150837807023997324183357931738704453170750235557676738226625133443976755277589358371836656417493949406846363279862927741335405896976485057616382647248960614390384990105066891670284803271084174360488216943794494716568976262990891957634544330804382617700315464437905463608457584515319314582807793567819256248413343976395813486837870118345785101227874425036865172757194977710378501087688352146441130252422070718422095950458806173870252885145130870914302206867629608019133180823354475081726364345674180729823861828871204483690181607540184920566209636541695395702694568825910282418885385446904150479500609987179455807173095211650302062115847193756542620338433781674628376932904678708726297931432090519990539875515659774806679879398999002762271847438543220957288473079029839430093517360690257933196451299016588686589450042188616328428469810192834662690163728259578591667698032466874031683197242077145062240862401319044846160122414075392603500413866909886667820689372756722277411197712141131750450490759958355675737649923485691368218175131892866242025622917095481212268674489380738531510792201951985969452272106266659881441765256409660973008033647829317930000822585441469713409360698744851882908695183245316446764917446049888430374838358787154837349317283272944198700393140084367146664108669318257143721135452113932257793814989042764341089811654082775060296588821269390516253524270213342046101935228705496553495627374635810586185143211451406590848474892175168499275208433342149781513964967913845739052311906582422594263946274151733232348559498413793979884601766966423245872463726154105086031039616633270758039928052924336480296829430060512746620318041683811158937145914831748605244850601301034208799944782759113700390561991413304694330856860386746989228508160519558058208281494810811374502354454178762647176404993545377421133282102572213341196650235483446461922809967117971830214757122254167994542118677888440023548511785838109485922205272251005313567903275659097594251824296251157939302058693252771102798646410159809441432776746520226066539890278541435937129827468195133527878093090706448459837423802972869473278155391617834265604389811217788446463951308544088479162885443533283336807880007545461281579320324809936946438822779157512132909232310772317949773135469814522184821064460358072856283955855717351724223206050649753396623433331971258774546001334215956171750429698969100780652043490721430973042438588376713148034450277767615496850976597925434390472010667298498267468278452312622016379141131404352071888521195986883143567957644411288441944988471302741725755711232687777325416044761903750871457371643994369889794104784469073606310010323444899581825516056567248254891194334484814583605315390731921864860789582281080820630659625233515581096964173922486535170615368833488570009551423514328203501649224684814301559697860315972633169950499460676826204540817303346925384493694735912785867238503203385807921154515720546680628815255450073280285272525683714064831405050681640160827814806513609104067954307866311173132760307006628301918212806300331614854662654292238349940575972651445821900698969720256607467659843026622028742490561063369320002374340181661333397761727182375227403233527640501313355961912522005566021886598598083594270325905629740845046735926667331258195679489003336121008714157669121545635455996293204481288171639931873948300839641477014121144125813650412414744204923712330306399722661367180422831879251780633875458548355124613193350151653782671403797050333361850951900858225245850252576581565228625081007885873473057458257576068423453778599510120029086731502712967087733542201561851447296731565082969861052607388696322268574799308924946179711274571377326108083286894282950799387036689393881284052799036503435210061373036315728816432612614204625933481032470798158780695461097003253624411821380880367691109435535131792139354170075952088592750887710478611116505198442800857073517662506758720619464652287019319261019788952351435324743396279212448644251810320616628552198956424769196170061148273818735456766523599420836750615902106563687708091065755190355793531641798750968192518374692965791408483958764853465228411659470309841972958519136386290629410407348017634237977236159736034552680869102512322677932958067421992043839464207279735428868090374372153063918109145740596898515594453710022330730480198509427090758060450539570028850834749661958882880445659546263578794725961000830866559680899023327600632937811684310907345300695936527858440404700458714549430346598022383156737056492650816421934941473976987725098537285647977431482437065544308952158313231814051419088874126146131393144168706300439535007281216798115753354738373941535895971062286660440200846480370479940976799722418909781216119867805060507915042076413559106559134596024599392065963770653770406728497535370339699392407507105604736976156755244294768093673706138158749658230706975922495753738287985099721652284134103253823935366022984471355440649333457189468304063930373799701021159970350829774829005996616505054224330359293348009824296061532444315455818710846429316356167476171382622715951877115321342873517817505053412022326078879929598354629628719715580843250852499118465772718091686895589214524071582844865826833221974951920162354260300345800602722360518952269819359614925638891479112064658110783058608198822272826995744487262714468985022203265818303056652132882199898739237009768048113666895136215404761333450877940757497824053379747573287404803921604054149150623340137044512662718321632226531805324528745486978656458599361762642900472012016616353395308934903762278352964091579824194306748593887993981318371688613158366690847731287337534781859112733518680227852018062867502086922263599053736141789991264809925895893896628330691776401633954619287989652720145771291927227676873778882414860800574210207798718041269649596305031652234752813941388808782134917214067821391623530929819692080343362272049263162404983984974963840987221437378459344491170478022047958326882052907769355787606453556358830929775175042238089395894115642606516268258667076786029121170298093492707841306214474148128043996498991444041364441517628860941438681352264706691295961227852943903252057186325824753784332462768868143524183116171962264171927577618629924929542623275197199605160376382007213518163004584793321702390064566081952193210989199808777019492176294837413362419010032307318930669154760351958635092936165248147093015969510171040929329512290733577205701126563191160625474866332424119238766740570815172249977230878504006782839190281923155799775639022938676542865269503465402290050898810116714071640325712642893743979987894674598369730347339152848078763379082327576462018692292739636488679766035080959266201597413567007248488353046011452941614886869056467669977821425160025138524850145317915940861548289942924219965618554690577473452646887757008076591184556949730336160497679597137724465069748081612377335593899673467271188479132148124230121221279146235462848197631680227136280710300564396515481439193082275091792347999363827207422789251284374657653162809277319001496508034110303714973499863007351438518969477899740292906034361486286933988878132887493010453349009102220330697333577282883796001475720025781041536581837194396818881817929051929898896122992567407371462034444207315285296534312365058815948557373387055518677058244311455067609710000784746400893773314682458228032488346947575694499480482513943610565270830761119618570084496689032579461353277448574980378724214065667789992639928162294617649080530020376577760227197351071072414076070596471432374729601511649452782426577072585015123983097474727182971140599044839879382522332094652079397769213343216751855121828519047537196883091438780191320334978176079313955976276663138106320794726443603189385199818259850604162078285223143439703046087186942331702942515299035821389833377302139461053335174649347215662200703321423785944280213037244728287609841550493225091263121584806210198907039045946922329232750658410998053604515084838703079942266532571967759661078188739981771327996082364465535186877312165779264160700849445961262036589380888625626716438456723425475777824530486124651801937386086572103293706510173425965292070829656914697835176554262970552002886682241440873865009288952083490249369896658807765470891595633574378227305890924945832974640576855812585715410985568216237022250531793481207786690495468082102059892392911256610749142980659809539953316331175177284500701254894096245013771448830673295206789689315412741802711028544921510254120886305981568777515969057626206051736537692239804959249689388238608907743044139356022776756202918439611493217645537760428888201719618063405144010153007069118852453360761577281262096369627166422292575483865104264413358129172183208325704973968689019611914255193896825812058192028088859656472174834547264118134357126216173038414178071565972694492053288501608915028365115580451261064231757081580591190774882375147357958128508434917044218242834068244135044943301777753370486079643892978756859458393211841463171562898946181967988473619192012623389979157351429601046042205707320484177853666631101323312325685000622122411030333189735034129184113071813005265493371611724658349533692211959765466286358108436392683868725547376861423122059494576678478700028705624558063382228994180177037287203271995770241304411414285045883077338512238012925321142961202903596742425372981796605612354711089350154850224144599385807517081680613118697251881573119060474561681156431158628746263987347727836010832558732494239846986020000031464957556411755957309123522370331294594954968386623272003141791926061563670030195117155289490909392299441263400485367844162594963868967436643388809936287714889087739737542778291415276739453172864951335947797319549702001264049387170701745981493701170303163527274616707262927967492680490515876457913079256879724571252187831931977937851729642913275339292761859249925388191371113827604823006324321143260315511588397888674619883566709116806782373578099503215593016958432468345418948454804088000177559432326286278863064731192771700740073605609433922024211745054417124088751462018206199935193527010769077400239319191175186859332064843173118154085277915610783643950241009597952603915182403429558894674272808096449922213941757958834171760280352665921475506884298603600907847431913834803153649874457405423509825530608449764414008215888818724083758442714820832875452585161612953071146682016750801411009899450021137119182375242929029744351654221372598202565880527232933693182392857072341720747627616539289493037643350607955955281093616400130830019729100052780744645364726872811394730335489782263690237542780886977192167151930954747921793156001548813250511571023731953054612522012440390505670723649872675314154924675930791654016024454193346501039408639091598270227961158386549261514073798171568248809664974052074362534410985629844180199840658407273804954909119390230995463206449495070824090709933391040501921544180591651271189342793624845015801201959626969311364797434372730858010025745645630571453002940005774208681142074843438351550279547947700577175325384076541693987829085595955827767574216098187533619873418677572953938613879135083557409101771482900188404329361243615401512207108253796427287461867001861170354575260471086971270642076747033949098704255423702744955367549873138139824525927127484114737954134163770154520027105555628383101340292769798191506255560712127886334844831485965575651241096492097432363645445038001803466558475816687231054571781229151517753420664343596852956959037225325599916994502077452389695779982234324840274465711563242993694990152182138539901829569690516852213188745377781544759702683777571342654168944154896627369024748933902949038275253155552213813451890308943281293764551483411829042772317159306875186417014965114089820488167780862704764489672537583660340977216359884199244912201315100612974860114139256806065276500110700678815006685262534123465032639796078732795871116629029001640376680579926504792787688902593202236986483734404283888268894178099059712951792065763237116195168012244401722049900227677626878363078947094382890569616483990724163823269320763916467280938603390900377676175016985490031521661872243454953429785994594774192335521815012350228529654762000248648403672749683423840743288010253731269597721330384673617196189710659656035947200059870256171710959876779056731415942945124338913352014885051595812895271651252660784180324997834619686911641652089680608197767434313098062524792487006212704975224586970887502349557075338693904769158153862865724127432918790534469720094599071367234168584534416943104653009186280481275085006888449336111079383271589391027586618541743696747543608378783269493850704779438430489005902393865239652451888981664968065442255546500274908123031372792478758160270728293880836239686037000574812145541206784196611457329063669186386379021400644656797568065846678696775288142426464578587511303487509260777878293233379667988681584082204556024795401817851594093320557325449838957524258963692692478423258499599454528108057589133964573879277261634358049202639203355069426222726834607327426745778343126095794054369993926475018659954493544717616751517275500666511892313375862160056447039231803836424317847008210651187709335056718173758193541777745232188440720631973811159649134064438612455717698618478865602565230474125768025481940817700620359548038129342323023460413325650169734342444987046159528322363936802777660672576764900663971457239229700201352823291239080574367310602730681102098659567288982722907482562643868505270062181291209490132386935269130958696351564215975385024281240525324037310194715376252144730831458693142237710917018000907240964734657459807751866154871822985849182573311942903209623183751081772131730155820938493580538278813878695017649035408144271915347956470077768533167721358590493643491639041282487864442585611446312320171126590987774602717686460155114562984271310604786282446688061819141406846427937566686718841552763640450166129370329484050237271566924026903041089375278907064956507773104520019847301192711184126413925294111486367850242423700944318982317760011693952559340047463589519584501215896013575462678034297000881816139690890273978643552218894069015675284901445237858105716183042424514662393951673204577247360580800108126628882991107362716678270457416741670146748710477599718317854445792309394932065464374919509936112455590115550120947903730663819861410495706375270238553070872768304218378851714759224396784924782953912738179834743619353281949426251749809715696569432671960051134363168783334744991864021173322077376829630347519389460612853950046660035767157061407733314847354038578641215666070100408539957786348122418895404605922458291292888617843260447671649230767365256896896193323888103615701348001235319944784182481129557716409992413805766272586338162396105525802532710351753419529453744929933388632275735392843837617039693081800952767816781034677710000355432336615176895720025015571881527751389231442753875895999104728283744263947154487552348039058953466163022560921790783282429709078227547456721946942269524467362293173860602144874929109064248135451174742234026507179693325407992559117342131116583733912484998792272454659380220048188312523350824692525224195932520839747002963482432134791352620471976208022760120234712586719636206648601645672447483826809191016084381363337376474196974899775394091371258540419090653670983980991872098831997587597357378578853531211233615778411898801889853357982280110840775365292824349566022773384595800303576742701199771320510324013814282911533741929030378791347445501007014186697823166197754487280322407165837233600279659196642715439196263792911676531475023218886229554737681153733993150351831171958216191946915478590856597771164471168101967462450608320430734608288453596294112548106521612624236801653713575224762301097247727766466164078730475821406060477887951377867739540696666831190963011312149651705778282982065780958458395052153081956716724141417109228888778205731105779662417962971043800097518039812835323920239123861364353523253824528324405105809765273583266790951188173961571662235989419078701458020607887496097575443155833222810666551667446437633460253916774820021306812901320370273417021724561937799399506116043056459756223601362340590726398259960993793916704943642515779855971795387041424910530396995398743566268273281532726300089288555641474060586100965532588967328807940675511635500229623620450869603875711829984363253673880872558625014428448679325673366466270826930412656998309655585130970092765515368301889907428166555699516417767974225629283204531265438655604676393714879872790089830388788540911903420043065060737954420911000448314004525176165581688362242958806043971476993731420577582045469348198585804049912321916141627120817404317904257495299710273754739562585845565287670800687368596187844623177748974383349471527167509867568014626943464746350085434771773164772470399585783177122475420285934346736163761025876218658387073539006988186363027855702672804396210677359974388203993185957086553234719223089071676793351385568877279807566024611010268488316382007685965386746021044152965352807789164145530086503104815370462134995217884471369373988927140767452716507239359954327167989550500525255433181205522441818488009597120659875398778282765790304847143463630946119345120875643507411050030977864406917582610894615062690357161374410749300466513240122228141719543725629579243562385830919034713203998089738493133212024802795572132455545594889480826369021861487524308702174205678719340399389824956550330693191433801170592971590578149270657017053233184525000356883158409542043973019289183514265538685145859903110067506546850266178209606508434897816700412872478298724211177565281850047610136127000567770964844981705792759036475256778560377363370704391114610215348502206330722941322682729286924203113918495137218938394489498892475514175642869802633714856543750092481457267093852292647846696569222322958876619661864047964909490249974523360675898109325247390980951344117118469401274366331507136967278367815283864556031277156677476029853606382649224125780569634826498495084936836720506217730632351135092993224506980327255546718441017483305592273140771766516775890598891410839081947820345637384281721354495183059165170223218986474237533606168572292595330716545865089596995265118383171033398427837749992330229472913928599055200249270084106819240363614861350227174196682249657940927084369352100629671147927748759106024291746429955469468430489046400966148326818836698053084909569911390387417222559842584602213192430332959673028132373341051659911387124489601317308898667775745148874379319082671097043704459904235044599355378619146373955913722626406084861210534840759140212444076448144561823529360920329319068948735922890362486251300883976734215084762851136899353932805446919921116580449109028336617228030962780036136368662726546717471871677111946205958751557790600661566386179400962377811792537541466638224658247203681859969222926247839549209123414926323621684438237478475420468146082615751663895705685906278901896747478066991493025997257051089754027083479453928737747017716820946082294979213603401533625036181318888806341714073228735844110771604663293962194841916257897645232314458569689427576701972070724611456088565927104312612086665072513961864190633108909130209395847234285901739480684743950460271314877304027482867517288646055705354019851074665227721962225399700960073098521952791222976441834565575217090916397972464624842694563934996478762129787517999766948420069995837602430152573900076464460794355445095859805548700812810260776325385195543947899492009281232311891479263777238496628835712135382100011013523578960795903150712882842714822405376185900644258711784373158540793346053785146397995336317680919342528151436369253511509987284290708708506743899138985863965379221081490455271937297240208049085483742097716564350130536931694421760205876117957355956126052238417052575130903598810593943475574642969647563747998772456768320026609112557685944741031990709876352508181764287751707448285302974421910704083221865432968826271644276550381774459972233750618369676520649884712864110274352869011096586430665594191267483416719076933577607356221326102936837183312901996803604321897821623355915190347184386688054515383516963840396201373134986250372634329878289783271256427454760573722965266379401750013876939815876969784055060351740377525080895261472588870991722793949834617373888757178018465151239810656579448926163388891836915230594625917034994500696662196541095655376647250737337341379503470982918752416539132665282825506098419132935332672991622956363413417733747861850555633937511204348888689619808818994120282433430081579467281967948021891953731066734666647756233770361902818688054176199935164925990982761914546941749346951001464436451341343129117899011578989916819043115392992481464599774651291286864111210534937414565321074166217262669836141205300099266818807096861744549072669103189170120377369935858798835442106148210564148778813331881010134845156208104695444012268146980920521834236955735447016199169531926796924422288642827465974509423310858484548109413078659424901293505675767557396314816135566554891175558790421875656611112969473789103892720734923774949829234282731941055828020321982114369724075741329933546245060194204967014772524494492292218518140013107693149495222385644375012296390268564404409242844897706609682684902546819932931225152705185655449691471595229591519421288131128614802215526702533996125043813291723183059073741113764450488474512947238776073613423809877528041563606803230578803489726720737681033315157223900042387118934263189937258216293358528984462949670753663164763572754494243135080017391521992592937094606452611077654276655739490285789718573129364873103499711309151417627784649547958945305006291879855627570352995135737886890186328930541356148174124187493880122858239586505610982903877498981105952835790470776254331357044247598383313900536594585469175921191058655261414756071366939706502065113467861468260404557428581150317743199307099956697424125399666723288248876572225232431822153311975921737221712288078342060382915585571934474979594902180846787991650666921537858120695664111100157324141688187190751232721618904978004298419104638407794588019140801716325515359239768409162409391390714328372870934292683799609577450510161635349145349118218737210211398940594120023731249030587295180053505540883008714805947734642285047708023812907135781893336937792455440774023638794754667836013478439764242248521223683155625045333858711910709557768259431067610083223133756829976922904446642283958189851494711156556015022979673279884460708786178014735736586190221915345156585967543792439478254466133134483355198280942653683999932408094929436599000789613649673580007988443064217686557791173108258457451435213888303668546804031209764732404395747209106140736979784852887081145990620244821605587136213354527722534527750459019090393723677679051500133841541783670272478012477254840797524636340949081623694856598575674883068893319689194858773997795266610460986251018841563866125833713925640692896067865410512133515266104206461975674725059688021129758170779225008468566647184103864725261148619685367798394180932541702112484222748303344202454638713088075433009728781403426105854456086959476102156373517759030486736871113709704648209252417987223586630516753977610703629648062699701638930843188316106424406072989076464115505769680757837536788358303368695980975301079991430050644015029986566928671643730497401025961782247714502771887616435578833419779762488368201566734487261788926871143621920621798613124577106787638480681845635221550261882011883881150299758347574244251250787494654613690816720289802079724398430882904015136423834539987999158791822170046544095917557747444323488946715099050940034221305610479659178224376565879573406309967057859557467810472849728311540152138909881619275186016982346637711220320851279232607233591387106091898764867985252187480035207802096729290010243783670961121255335541172870670592270898851323211618026404530203443600502674792063457592567173617260000722293095087052136554257118724100211347956937971047986171827339205734555028683666404256710853858056546466237876736668398431078764532896366304663216835460981725552525620686232913747437754004691732430182478711440833483598242856730681633175754476117354928396893706210345369676030422036560849257152843216027530915235130055171932832871395110394534352603628137181057613842383987431356053778226451841839593650902511100765334896446790574873203301443797637783202313361050152158638671200659131093128653724852453346212581932561898945384267830965109188765629412129414715070946275081944576964676959246679293485014701277825116926080717576834154225917956429557385284216250756191306872945095367801670074822750093170997679458150994172393487929856883370854390507960016402606955508925131658816607731645878290356170271943488507548518897622856521027669470373787847111013423018488810901160001228927697321497450010992957768990350028490233252887681632417293183402860726512816334087259661467373577370384450572111120525670957815121163583879360564705446800804358364184107875453079122827548530642837933573300082236292648301387386187048455184633178267685923702554729763351334671908506214868106188967825151709152727403994143264614786738290775069772961565484268981807410363638460721131651749729422936582831507367681203677825881516929707233947604884710338789093942414059731831201577081537411767565060873523021619599855234707040611195188499739175830440669470112928305524515841660432889237569039656486025726864230931759819876908265190708397156352367825884830670312215805097944375049676251294348426006888220689885134585770423974824126444450600970966100870374400515042289725916866597628119392532635564244951817278095141870554008776028977306307311346344115237566003216084047129315452671447879655848806288513139841942886435688025723086512186084760258214247559706203852800671813882763668713555765722192700100029697787725676192770828124458904939222520558149702513952254130871114201469755751776849655866747084503328087064875563176085508572954142029999997612032467656599191425120792742515006784022333879298091109828858358798227864833508400878280879556153561166859967536625438702899937288111897628791994517229753193690778663001007523226072055508477908569497816215996260948619111107953618709892777666864681672280833219523389720395711588833867081749488506766605042984720495580152479101354884111296178369648813216060529821687587251336595568003907987802085257202160202197652975304326061748692636375391734904133050692792278988521764349615764329281380494994618996208972309853456565688822826508521527175646963378548621431751948255699618918949305434829346842116645121790388445054413633356894673417287646960784045507436502172855216400906242331614201237368633176705599597396307084530356176688909582157394408548525757857302538638843562721196896923387273740213058885113726741137470929589220960939677434105031511399416167712920928023552587089454786489725658912382600762369649404260685626261748508930580123999677381760671468500811186169225172482122784887842299908296190285709036647653826491151413088348743527164225574040262295057429631368130582429244182918921339935122175122860130841618961689862423082082737662195222412506414891587808211148788438261359018632475924530129084965087310269290666526646974168751180295739044509086363920161198395550731632594446461547796062010130080713060397422647576517917543973492420369331504266864279746359086840647523540353319572217380591778551792493735699317619695633887505066337666276857733476953127537854464734638570768855965740368919858899121948176363143001944918179228221894693427497088967087857374709905382144530379486358489693248343770280806423264455679335912984835729633203142923997540489481681577211533926578426774758274663287873401692460874030430265888418209815542999253020607103788646006434670474081561440903701260800757530193763587676320391249586428379923605246226042171553652710371948310124782188961809166795718934236897155805149369843337483838615172000408148289871870604170066303603504631594760987673295310094837072320140677006353810539782645176857295808671908599231388215406060622634937865206790164654607704526721289408244582430928864277591101790720205898486978273435775372593919249781870065513007855434478461924350023299161867940515217170870717212411533818850595183047947268052170181064315415095461554423667406285835402953424066603064228796434220595483025117055659755845497089283165562301156835877626833356554081075651873902403175120386945237741734172123952507613573016020233235713273167868896882235596877302963676316371837729894030496659071181885221341413761255330645956433890593888979541160921193478882726088880498197980592047567796481003523338737329582597829161690540127170780942996365793256231193361891796024920691281897549878657747169936857994853265868022136764500895552905823338465516049028947676999731230747912699824890397047341697158706306889627206490141311632949443710499727918020240182366285564585433483347076175928909007028625873249758190993509512616528106197895125354553317677696306592786095978781158161164060407473404220571536937231269985107695261172846321108597258015483639171634163523707940506002892762745907800361562254094954389850761897120159481609888803975939041928624337831190119547858005002703759784682857010909399928333377696587408749652796835378405266935099667245132165627664842888607452917537286396368011872056662267428090372642379159375104405735283569460949152342375598872994287580160781411183995055275935762706940333963849357237615545010639535478365724625911110321064427239138583649017935524254717338828168436762644715562001628090991798852927474324248897097934379086238591495790142615887640238149577684291839309969370539605813358727005690056413461553054861138733888813257711161849323810296708989641017402162085724219156360127177375858714659254238363433371183964884520404392287666788128450549291638080883501683266858163822199249859952708049044252163443434007283116974464609131352689695858560928309878593535710518985619769919636906364433875261056036962999551937081516485999231699715981650287533162579254420221325962744258234174695758192276471305975625265848393669220925116129669026385973283577855820206658437993377506894765138062796963154902229244026388940200397250881594018062097958524254981597619156691977837618671712542753376957049709124253750010204416946685341676541600323735084134838002439535614623629090013353733418671583934213433267461920835991480433312641855261764440535841752262261267308850269839805677124116643110081881019180471409000924064159293788049065443302286614350734164093658692043042609688040315598712237760263174278186724185944614907261811148666094860315321046227278256042695949582604249743394834488335097218332256821560246786593645635322740549015743279314990195684707405651872316646877679999872182002909992363685547994986752951034460626357256578383410513355993354042935006493141043388730289571851828357361334484457630408151604399133356593556045873504628355963773089688132545398859493816786295785884984725210657509314806087926961767838908976502624843045481112900321744801068599066114630519818409533572605803197746852471145905119023536181005062434347090886987986283250867777110605241115508213471277156056499407383770048262215432894938100792862171717992572981295648715742460828900729001524432359697371928382949630698189299886858964868696712415720939240871055822503031897105882340901827029293015331423514508198819492506998356330648988663075215784349130488570500118023837611437076961083049057588787477891505162288839947049166419894379591451256934141055014140237849062728492949439293570314799911346725317635578740192058886744216237658129976500088435403097591155439842198894105343601034033677632629532791140182119771253222266050734379949338906886557708571939465672686441326938258379288181551486204244643756018066763766153553992768157874306651706801325955855368578613573944864241929088107295196022293778024295132087971326262754775935274462731140695609846120852066886709080813339915578963089778506154934010174089651736508006655658647968962877255738607367062745554725016440087674812206102431630894207199218261262378703778033593631252969620032606154290841807651436178563933389933308121970869726417434080762296046189380470595771278024625784394546377096463673977763130962746472656333331258244465256900960512136601758262316932178254127078330772344069901321900619942982082618907134445394702084113490412019285349142333310266881229016217895546356282045815938972540236134259256667471857174618179046799185619548439007778350139359335576808109765746149124869991301044312820804958852513008634713958457553509158864188434381082559769344398156200510380808854137572958001157299349267134160828815029742975380738922957576075919573936742287591585507041500170783238616810066348839831114516717828792652441438427966421504176994016437300570663952825498168038308161193631702688111377556366885116496321100111429665837952547679088468931645275493426172892655370647131024074170556668073436982669919543830815139961060024272119596114713235991990511354116246687334004430125936479342360393636884597654602615022642321686094442313139093519217774928227713443974620058549578179631036020101132346471170508674575311912982147283084084281469685162165506970496084102235822289483526570722738787622212485406143489320463713074957429757779277304847468097376982214013170792864235446424484938364178678430007915322944836339010460336410944013189189049576824712521008621309365348373223680442218365411887906304666815796452140492995505884602799746653381892163792912450182230045408135321238591047685166277626553749672218402758626163152736576620915704711028846631692391439590931497454131111844084875211417407184705564390401963115932685444832864154488736733026700112462295383638138188206825672703439863086124974892925949320706868166590595964391698726905453186190645280115578945052039090504631703860531634451212684561334559429045801013745391561429433816477304936495686343216853849876755814261383132696356660922745515091217851772873252295736286530007059131111342095994264559203533405388417218669111634420675160554221151459242689522032779925518384831582284592350962693632643877550723269551967730460216720206967612879203689010297998308587419806056454858973575711438640162427334526619947869973203689803936847363583969381727729475832686942098656327360014019962531810313181856749470945522790655247900206230518640934624634927595722372271550699541765477682996834674271017744548846436883739117049379855405139095608426239881347606789959743869290917205939162945221267993115113221411708875179393234079998060905442998942781756665562313118183468632818576561135915506853758068410969083936624850588536841461647888082238225436684078267828827124899143129290750631940577168090460196009396918873563075915169223931648066490573107729859580348368159816452274019640402228509544757259215050204058451371135276116034736900359462358467264908223013229326052738278260524761208665829537829448231110078238959440961483431726727413564566196819623055652462646058392965127120855537307394103200353263975962693328145984659521936035635384856956429636447254002332794804495421519765780060637293187645573658361385414155932226449619082774083871577970474264862601431220053370431437705171988270589613559494596133144484785166619981953238690979529387269300552092925918742118696918321090612186803486084152073198940860994825491906753979416371747178552288713619420865155627150143488900211824666967930807423671318391327579545235725202421690603207473156118962477398701798928265079641976628291846956183513003689215136955968043779302042157463797851292443180131602563707542061707892350320302973241214019895339436079506070105617553706590713421198874214114533974052471081606910709584355625833004840156842039470829125153977755749637940762701741097170294727607827292682681255424548909977435259148602767528946196071559646072527362309519378940402889345094578183381455189741579348969143236251348541220879386191821590016764754518009388702602621626303519916894734627546665287183995095503513487487737885866751567318773686297148764261906218008736423929033058456969596914722672230027343632020593662360069360962871835905109791803243956485132818721989837055115882534221888302331271599985796368794640473621527529225461884339323792717024793180656287490100227624968116681252054375406789959073497077343199603145400688928483527354292614328647513181052447056553296948528818239609417994892511199041782084366756164086382127566278761891551567688291432304430965698612514739940178051853428017774782487455849641298818220121231509177645127050950665346012759584809416479571662509051948726042625354700730180627299216497993269815803113770666704147216757267798104508639872413727995903654663754320021845413379704741385426128195052172356189320340868692668583010511324183835184271939283873621044271104813974883694430380037864292567043619436864490800332339449603182262254314924947916280177544526368484686221202168816919298240321853902858709375279927399336217401860092395874884004261095617169362559010087296389748996063440234730880796744586481681033768531638722612151064962417526516011070247892030476315455808323565861964762576604585996556279681566295428299432545612226272879925406518119160520057196300548623125115918524076280180412023229503624104990598820396054405954267743176999114597900613151146566856286934218853854752627949663014608643837009884761844421868477500385748308999381409066165824452986051430180004131542864468291835431907288729699560160975855034758990722806432060736616111577741054580943280074993095035400819983187165431211622714508660848980871254298587097510298885225988577382262443976145147902474060862307670030192623577620883934903737366736154840623516514833679122347961227917623883932628029891881707297235095612129287343339037458146997189624276531068889086832680298621951568378264606160013248410461116820375275021941944068526153651350487736986181425208308987301851882370495867726211337594157359824183479553576910005938510855904631746264086037651463185190629364062646489343818693271446786467140508592862430376523523517283812883518365411544941872694940838202723978028499182330124269962930848693765690441110273270400947900782769156940368767286066196182696869566800687681070531545308251250396472326596389759805140610662336383815556469884135734286083292995266392555879146464916763506211654053164326610507717875511622315012905118592352741626429478196165674585896578934783810629504231626439736110097170340395435194257097008488375354465364166280567383248513478290485313313950248135445325344705932425743099831826465485143375990375999723193173866167659938219530350213590524293433526705857569863979340630362424437178396471562024409296658698147953283934821844611991108831690559642910463343952381957258375207594693215438402882804476502403188828973875960823384790179716908571471795488034428938903380048829574064017952869038249342020162480321955951624884072314408019816278963764639235359681441898642909246989551278840031785075203956378643100097292891612534951113628474700131686044216102768127286958173528742690713046639927043329402251456056914182963876700367418179535299415762785662915242513833589663403190432877400523971806834030405539844243270542991959095442291940003337502985219669377021624915483374252865955818862182133321488729683074305944357644960582657290453741464180198885010182445849388246732720257849723772340668002996136314758856034786715376799321614571405619769264093120189511538761823404072268377543397168343991930997183666542033088094680851967298407266203579739709331619161926807248315215059987857995573842608235234854784005682997109676023734864612601564472909766142700626443385161124798153676603170233281078418335127092026649006329797361999799540262532331544065470100095013639536605368220907328283802696957498814511513688027673228659090977744581309964354874382336640611833283259650747730977011552328236326285110697212173727609212609056836290938454152080936519656233527343125970568351025442694928203482728784199087700154861930774416880160254088167226339228549637242947758875382349114917530473877721017867251083789621890488941044158835742987865544386103101867869672356873868059606264195045508657260273998538760908363259557594490342177541565219231448989359680695115114643590013277758110227852497842312895389681082823675128936250409065939562462844386599613878099124907242367846791137321430775630659344384892412054288999340795633322233512292749980665581854809406496316751649685035706996586993117411616773258392157941523300000003730423468979412286657635282986251980609096740175528382888633813396190589871616215449884885266606564057714778597589693636735913915704557141478874259421220817036404258337701806077813325106383627966073053220068730407113386273088094043446025075024802469770773295601641331294909760540539457807905391579009535836218550832298060375704276101347293337287753786020279687044097078874492346610245100363484364878731634802111887691406675739966043877583850700313087300561662066070864504806077969536368707058278114817863988130797594735436769931491676600048250321405513947975588023475660592867097451762371261465146446909683352958872048561995024547978849446910792520527259750296161517929713129337623695467858201349674757781448309516480038193658376314707231336387831047896987444511888372608590860047915554671041789094527030015970421758494924765942916631994061137964638763839209500657230375626042259160067341847171630838884411942921277593867215424171409249372085915217160743489007483197379584052232282144343023087113441573762755922439273666490645050477406221712867842921090507688027425237679846702606729903751661109682580744101656111194172812828032460031960232656703507202079147357769951500884905196858087251316245305945888299001888531139041768271336260418920947838528302890516139601898735356560753369902692447349271707312616250013105960659372345066430180356870924940850241097586471907402841319458314164278328200680294979985881237317575914679525878204774670932314693596430956525453352412633100737677696879020151198536490291982176270331936004440939590612356767434982768042239943216696805632148179804871783683411636312075134373494857555860922354606015787028170233807477730323244549957542802189897453059434529762285258353804451762769350007370209135169565453953431393145132752258441537480222134219115200042465183792655370089269566235356515722856700511649032156178813751102736654297913126916344940099820132701952410322738711503813827091824491878939701289096645802489505536879096362530769049321018267823836149739697860753090229323514773015082969994082011707475053774343211500682183243448947886061138361222006438868169599468102407251305224017784433719685969834572203670909102671250733769633168145891175609759360008438738380056680317350823910057228342919248121909581858655434333881929324240955689759820843306938034305140893219620281830278267421420609286679047655478485510658287759270284153605194873664458404487132704684756121863910172245925025718551838523743386887338135937330950231700045122849287086983727577010588530751477992767535843764323144495884615760854188576816648016116469936533835939875507017477457716121838765832840020304185027924474146637133596126719644524704632087291670006790427790979744567618355246905119109935520557093980283940531095790813550998918426505670973905543795214534935909511004025887502601477983951517983016704871551679330319996196964735168871470691918844094930476611432186719340428802508434172676678266039026869489471367992493154861018513598392964254971612791569107645377524240982562434042317884655567187650364566054236074475510528953444144774606778743177764659176257516108355062389745400793481868810619453794130722157104828363148198487598796308320343702451729556081255230566507154178300314176731481188938821097659380701115388358807437101431569615151160169713609362446306986724068549075948061358287255361483776869091975044862619082054170971565795505666368649350443713463020412028177388932513248904166635728569992580773931158607816337000272229467750583573898858182932508501160191123037782211384391695031824221416051685575517774768958249867748548386561333523603526203494776425988696570461914134412873006022074897399995648700770537611091669303710487019385748018666256478523880892668409100045793491971731289983743360310838934389211250634044773455766798192796348778128416495045433843498006511339783895326422661481488788562377271089619317872901380788670048981243575283368802951171056008917357349809819017339479363565959780467528671238900833910045575826871875608491448547372718696193762717672485413210815230135424342435008698006906284627662407413086269877010948830409843703499246268352075796276088387053458204089336673914314922554478630426048308268494732995202220573892874620362874336693353619742398497194259120088299603002188567048861085079405345262283935794973835869146219037544743659758457478698918215351181526624468794689569835395270678601886977383926290519633341095341092568868524665847621183565214998119108622639118515937636265359775928039616349376751655358413282593031731368592784358050676974814131446414463184887454355662775567587340330595330278920708268119424493738785434241285667965382024891785292079090042563114348948494770892193702933597254992449143788911350823422144224329975216194471556057203388881586574110782713064239280147499260488200756015159637310935182757413535215071515628332460258878355502092320748402451129780583889298215219024541425212050803340888325637689871723726044533207226027780282177872716617755160055519328787112122360394253991755985534212590236229087878244479975635413465108935549870769319782501283736239650571109172119735480098465615089907626806012768675136200160666568608099245209578760992342671062529021650423382759531848660487377709514555442139616911045715001591584977366323115659922288305529396308132760120981859409638803514222348308446613905642794294776219645447483343522191892775853116226301269790726823509153636280803839214428631025229952315416733314446976072596800112239247485256342413683517482907833353124049134294334318096715207707413666309707540651842390418787132171176994645298330423516775234350558845906643108214031788742113080613372059236926266415508487425958956820600351220408556985636637012501307953948868849879449677892931658239637981216287389682880106377433811233139792197337289984505152888302025741735476089027065331951318675980732024321858094158760734225105693022966911920317627289523007232574354599919571655672372757835601612531988051172141341482586422056055229388718149692225706529087982442540724406896425031358567562433253884273891914967583262495172927262985639024409195994152948066857240197114687362755944898887165622013253285108940771141692471130388204631701150134769927769908004585594905474779203594771224962201330149314563609378523541143782926828177676589197985400207945172553983989697349259647210477942723256123467588815025616786431010190635804923682773351644635192985005820622003867638266306058439631749167229593658564339965447856781089178913072813799903731622728635438080286012366321367787058267674061819901237286978600609607021580979514999071108209816267762627163813554475660806928679893565387499286393873336436480420164726526994353466366467166770364280476077267348941517273368328159640485448064828230214376035748430031250058758877901562446364450057808278020008694178980073147958714976095911039653026344155262192618007452615933311896253735328582796822221319712964403933325464324473197268080998002678217179687301693620254315741780475718522988018400938693676645278858402871887024976086618755877174471377667944600935522697469918808474665106332615679092881178735087041274926259806870297818833042845823632527890552165868712749978827569084806343132590577450586843686042306570511341780352766416598570615105361098797459672888236546439589238248703424334613707648649177825637391869289419451308688686681587834868939365145118712547068101469337377127084835734910201286699478164213970858181635597634600999277715646355991790897763551602801766028854147851724846281377530061931098911912735645033417447438265566922563652876603532225471498393763552604904726452728585289076099860171877166869299015071343104472708242104959359476716647184775166602543265162626734364896549107591663356788294393173148718674814336852497063577053085172529989921216561569295537451846713466107481079822594361405145791339590306673464704124009273682836224556594648791863791563644698961341921806583742953966359123333025650580026460051959253964621185180778455886828553070168838649348315588181189797676984116767838274795454932900504000577898447310626967086176988035570151145490184416428856632287653970709609205784345028841522816991688413883061395984572107983674671081609021734387163335031587132613511303859410365796979992336411866260009031695211344025799813584998802638334137549934498712467604599397034551229394023892265754306259144532558769882205770666278755301647862569341145151949171748806167024480986428346950921243083416406626388002249513991794458775189759245222023213516771277073359120496348805506090382830370179909046350209674904721152877310095631669440662038567604871615305225159733985127510826830233462602575826334655534382540421122644110618990524918323534831029774942973679927763296225505642993518078998932276706403061766455129691722662338352191631964607276952462043906437162215129511861322167402370731832671310911008952565184051141658275161683486665749507462275760883204104439325290495694040224490435331615528729769206231722318609280840417365790338906143310932067644118894721260049376091046844469293721689793578835172662071110387434463112773368796771134711266767992144217684638443600931304693371563066103244502248047416508850302729522654023310266750654688242997877178624145892516680666498958875884029044397631454769909076810732787862982553800140136243815782754852616397752296371917170365263605507435394744524816692740347676647490912992196540981176521119659356776968653348303001599146649598239395144759038491683213421601962393363589717593790231070079763234614689958976369506509770880841068135543714978255231146952525938568142191256562494428940080321680713853170146563196404518732210390748512545475583489539055762413823036306796838867731527450214756886025941507774056522265680555141334211996088952511889133911878446224206032286533455414894202123413239636470371564882936488436991987374122376696617761542018391474194405351155833172336558072979366533885200026972864288814051641681573475577136132446582361714165266755625865923724699617684889195720948047794530609926567399892960874720507038380388569703988972719440222674968818521803913080463003234676809587982960035769919197171972177822854488890912005095902538482962318889959055041391985025237492560560412626564195242652561937885264834233002819505419122818557558788858033811831454682873727939287337785255415213677051572240738360815620894430401639592184188892561971675711660134349403629345147339332316254031535244765966261052903837220925599262848615617530642285473615529515356559583951306009468164832448210812086473537225938978984519634536409946168937405755671334241658599202061561428138885630618679004032358905086285950471467627110986111395518674324101431684079948365745876003524105841295196539547436015506404878543545129519338314492634812306630284017792917359893620220348926125591296271323491484843771632767089950544704746947095409551800762700308509290320968365492744474343619637411633984871015589751421972158041959674475400950409491524153394773125336451684431518749145198723002184776447203026902286644622291889742890614416105929433948738325386865989746819407246592085798078112137332944477160280386749585329127165097605770064103667440958205431796647064839337179678563945143192821220145296745537923560817176559602870978282242923873348283066996586530089055352783185695425466839530691427854796553619385181120561366595285998655967367048112144729799101041983413373982054730621907136573957538806299616275195052134553470381489517599770295196948766208996880020197613723361657347453877963774939419701789793022759780897815179184687004131493599180136908542774679945364034675192115820386302698865108741802992979626707011879599562837085529424081485186550048740445511271265998812126527342456119271624001604510763190513613259089714517587670392325307069334956301111831155001419342058082136714934646415258999488183482887055295777171475471406491394184982903138215894438821051380161452656517640282123917817252144325621267290371951469108306467515899110667786124035246789533427041637132080024254779516291039719255567943112377091512515232393606350245165082366867283843334647413885687714895463220667750282817151033423799847474953542045179696687522989085524251420054135907769232159355846967251679294535873223498081825899117585269497752091557691459989000589413407416534116008395204874874142268015399538069134679344448978218598935941177040446514141326062198697470545050350206123247205295683448962266492518245499792195536485870260978098209991435208217527743198706191071720145452039323655605515293652887219797976635830441042677061783330541010590777270259676717186609317242621136016545077898485219295134483318754300980603899698793675410841376916124343261592089739191224826281299673523672565950184491615260336088255883219063743344729898325065496705937150936171282179346930395319399006566984509521958851641213323028614891497657621185391828233224398061498859971955478230109423197946856912429660643377442914469782191920206565746865513529565266752587016740908989356772861232673647807283285482899731969274426033870400631252302346511709126564833881615485286795159474919858283679423396024703205368761989292362791735604422870268457058026463624717367484032224703016924956107352643740238279309336059965380298884084654067786447268165511394874239903625345082816015726515709513774728118999058082077589889685843992811405929808277553528407251921806058897620936288834335243583514043778126828939201619875473162261635408118641853037137685416277815741664719510161077747381357484725286860181838276635638073068338399763738241126643057344491303585818639797931583868918251741278469173776535514681801459337073796355348804535093660815413921409074362941203549740937937714604817021716032295228179386582013093905450644169091330030894048777885535628050165074587914931446222300875083669063889110917449132161400845320436791297497052934265996929860770393751624085949740262550877125719020371494988039953243462300849946263459271892269824861976121007102222535913282042930754454237446433919164355609237338703991960371699328062087411410906845704255687299175068349634388317491045790548083011309381508883128076799807612366420222428930543088189650954461883751793758558907603752942017974519185545249996876646269355115069007023612074244340337275810824666288723155072803564348501746954986924283359282040334151169955360562440533799954172622970835724513688986693346970556439717753493917364243763381518592289292319511334156947638187703487392011439037468728282399866066279180909308466854987470672127666479885648919062635607489095698817436092708408116628373286432267645516238273172936804778979776623447022553108856801771098832138738878344739351431380871491950528251596078549594735938097687932088388052544511687377830910261176233516700197073579593940824970882997336930102015511486718652112991589759072666263074668135577361207391656730548289686552069740824865580061352574112814489374367105657684020758978951619385298824837067158052454226115925428631582269197752545811611298804903199753067333779082884957590625997889513902769016922179973042990953442784273266591463062403621681395972275607186839777353733477868318651034568356037134939244977693435326249606629132905258494453248543658500356332015497210602828506637372109886749501422676557787279829166672756122371708249984602814527328316762357462108619884108503386478534476924662906746956093060766592380180815564966916764111266075717504599761166299848306548397297509296760485081138608551454500783808984367848296555323637928829038557427208300171582850905956730110623758806264298773484180819087421561991658333974315751648927365566728957129949203378437761374540614012860216914337530844686770743266471615508981115315683646483253657350239330068941124405442766631663251507608121962448809494565850862893061149780289620807177000648804107804986021146920952246319235492762623721576298893600406860603161703365173482312682831430562378108212701255054554874800911535438711754633309861252360729700573690241650774182099487034690576992469903149421756891257327410373755335721604440604742424470143157461036129780271226128108480069557054167048937033581669274276639923835610334813150395385299580633780852439264904268549599425725762275007056459599282714050158002032537958573232430311922769385543174693178267132215055095320494403127701750528728383924283833501422178590796666547907265259482096024529173348737761777677596607606995558367841837387410191644628902656666872409810074399636148437007404796535611507213203573989049754427372374458434128728268220632759509632602474852648642688422828340605199467917735610624153254219150027346335648073854737493933937964099398049871094640879118033413130161951892687703612117040799206139702346204699909427284358924316753615960589038939837677930223411947249751325122951004093677710516192104569105991867205051024565886637583065742116381813458645282255971950725356350930753195821096437882659138928054951022372743076384456011243721975200243238493837123659872022796041726857232105073529546718463770415557338431116978217554406529181394874000847268636158379643810300961689312543947974393608618004989937564785255645516062574055733399858315423618176712520086856020833881222027865977677563283185628604444374468690427497923446446948787689200684152768775671637541523297838387680950344598773797128360982632410137633617300849470437940230985350604809260238462124365786916830138226812174292017963747465085835483793134239102132312873759782443756952570330993749107225155798654845991990907948856703561389963347336694477947662184648249806532217429167594522161195441689568633358867634737725346894636006814493211383187511667738007116450769811272261702530677046157189847457122655522671394662188853498693184834255478618497241771484884630069156247109302645462413850635047394165849083026803185652259980843188622730708023271381687016608808247105533913385802767466762337274666993482275594035970358365820020467409369277460542653200874260668932761867710675844379000849263284450060114534003515786286989632077779239169985203228588176394374164042408389777349114023562505898418376989336438520870668003210423186758444991696048578713882929076858167312067546520572174654533260031857399299930414542814810392602738405444896678110660145172962957210127039374568549682465154050504219579509466951782311981194984061965574637605811337377402794484572162864081603591549878629042774321968823815681031371674819056294166763592057987106566790094935611088251019294907905971250257069853225622000860880473982059350961594077714260441498712784009837881242464208671549079994687812614773360901081670084745827853785899173883708215704635270453807896467618784371222866957446048894610680050223156352878666215226240098508138724995323207373801817415623382419695349626039427407421833699336550426985274915103233161495447616331182060453310327811673836571157554434933080093032024998873785217049483530417240349657760601976550560948198410907942811683627054992174322867035253180000711304840373765788309071424072000994734935296247975683355586868742099099818167740593185395096639628254007934091800517373271421864191175587314108703354825960187732464916876945884974390552569419023787172041446062186785881093592547384758829597469432151505005501800089202278864796379634741612797847083192896242052595599028125403136623496717568080252632380297409104278635638182201051377054574405894639018785568310615728140589686729809292763507096767637387099762141472966297495596525228157369790954662841606582225898843246529256269406175558184398932862705729765978878213261730875506640128716976365293973291410244406818725630479311139622697353385881207228803638514896554751773159710741067148230351569144572533392465246422842580194724023738303307979868490068528110796905647988855512926968142067343853992592298473643958911575291614849221522911653464911067428140598938232159118324790197486143896825114835438008950474535764267627491711783535088604062724669064524862377425723470330173104626035128843434170129802825524707808803645369429296443737790713212417531310136281703518897864768351747000092908929887927020884593903804366501281148645243156909887888652359668376944660829543323608215872702398191698263185455228454165960921028707064136498914428559807798792578782406535475481304570681527601359280692516595163580650675534159357066241673903728281704836894343614387932100967673242992909916494697821538453335210068743111575521806338890808531192486909580675063033689147453274138066674849879418661802866458631302702431699321068776396952102571489429701585039811433619133624033651732263847677097232860241716274206273434844795690440212921321751479529038946942896492048382837768988224168150979111781281222444832574221503653249846867312329728956522389963191823577939527922038687397846860189591921119699557625985574614852985474433029313540927807194586979521411827987360918536679244863217121171040825024837016510761999697076019695774784901746315351267086042316227199306558604180725736593132149763545628369321966753625327473433810443200927887370837257099269542325772721801299794108022907790676034766884380250807985133102776147909868312002334813901093500998662959416755387223711504919023075670034957283339600108101283064118379142076736730340064119970893804256848570766177644899553841269727925609126258998324288772436998530692606234542090791306075736506874552372936346308033506675778076159436779201802468636108314225859725027946101049600660591529455824658880174656179107160050530210170136400281917381993672436104196928391893562294656626129116207799021181766223047658137167319386275930370835117974264417641033070655035534249582654630041247299047633282269905149425331715943820649582554383302659466638914388531532882529014630091926004895124529282328442775836899406653533830655944951974126461334756092038249837974226073951486272865524576056825454022122752766149886974418870793144782460295319350242290718596597523137816014115011701684263596137686294779461105700812785644931210342191976464370464770966599988596822277830105618759259949023692233184550971863608873070860454965524623433446972534455728965149589908556785203304343809414837339356980030701076762036591974558249354247788632300648549113728502220789131535425810804632957101609830951046115902516171256012565930086387004446930763049428938924204868473076151750046578417103809648006227653647492131892932415348996911024933837611093171295672687123181104128436660398959775645097011949235558288796128405074101015128336246935945010500028608919358804236290742005026669198745861165261128311986606185235113244749812770758993865036038924997295957655379410042212101414713087953006393742891753117667962914072459487071141717903137234229539235740453659602155716643261787807991527422779094830953492207855276086117210958459418674271330872157624227741208415168191492326179446709032766471333878742629861910554058166657063133653347532015461853839878587489393675687594558784180413364747377323034993413208554469431839723598962136511077396278025426756600326828197030867131156707785175879563223467485980595627557198102986328775097476065964760236492563342650314126753339027785446930740504499009043006483999161146853464673591605008373047296643359052606791185908203966645445764839219061475969170207533017412698480334585789466071410249308541830365234379043839431569454849569064463165535567462484316801709874737903014015154054322200339960830345999749955639920532923136810032694147543360635308840150212125364818918609575582726260908984449340377271107594496440998746374320193787445270864247285101097250726403586610986248843039494098840329241000662694149358403225525996978948489779193826292313406698645265508705755711792462472736286122151258743516428564761979096508865486295631240565170732764271022869284755573933829243564388723014484717122406325891776911294981855140054314048801639720792465470037314183005456641269376993841238618027599428269913698097491095758173607165273257810767357365600361885752243954881243357753531752538271751233884578502625673822635913643227789069997703514633759450134870563079406448963997159296163883077282687877966753890777899004313646368375119848937796876806773386185671842946165281342925767425515508275236024670183253393778493792572260847959069677347561798440365052552368467644562963891176410567219360230493564940756291481522552345196681126149168422935193643611585998110717239324396708316359852816829936903110187596971320843060251370836585374595364820023222808836484732019364335899949888413940775616554550302585898898383107431968571557066101237670380268858121320087455404041860095497106322128778500183900951772326527930305832735007021797139865706598567878763264103953902239362736636131941892155737750268416066736098945763595613551189692409019345603062590952571456754371527056471352120485354900246725840719344499157009647194655164956046109081489545595632243197447206764344730400460231897772394046924499992959652462621342777024641608684112977581084223326217512464869950285600055643038078883878196322162740783826002980582403198900270727720755202940139128965986979950674220134756599745126948871524161495352315121170622483182351101974944716444441576202770892879759324754737543934689972570929235760591776532363759409430484587525001740799082616385876856830086499387740314640142768831110870577531294930197158525601037931021333048314675870902140693445392558208399021114154496489791511388906506380241587556039567025457505992246008855084636754654520471886099800047463115939193137082584627108033018996057213959393300802040802419253153967240024184471151512862371331138438011677449835137643360981100152802385757677605670014958976114005059581086678836847028323170751011988488462228451792856442074202173629742498007945323806770593160450788147885411137890112700366673798377767369817372806185219717548612041709166186006397234134377892335785649946901353273119744730993739862933740906542936353792377136764308797705933559961251496394259353220385445720793992682504988613961110973457307953065926715407715424574831390305855389140773473387600829380084297319950230829397124857505964075763910192501439307291356033275019381279501064740320269895657445699415273963330345579936348212199687856950771353553794707074288143849334066418232101617030241781200325545000061193168398997047264615954734524899640422065146312656586415510493650013901455746179968896707637954234390319699765381015516037250266003807476373336485094510426432748743659346995385895729968982903032031124024664545536721312454150926863566957377315093833165365914621936786729497857476978205879319088580666762719185929164413013746417945358260233380758621247748866479228519275849999040537208548517763159202011529017874679375702672245726852704573309130521087210013941018236720756043623404604294569657558887531822045519238685446077635271616168939723795063450520587879499397770000750982283769801436818018034638857157949695503957823826107740403543661308791548528351829691196320305240971276747621962425660119828078147806228175315699565102464633703070693709930225441471326111228777746345998041363230736185940649422654969993223051115088857379284862227850407210069832972076790943109979078334821172762052414041536717329661983045265771629016941135393908919326448312690580942214866531259655159943480150284789011046264751613996299873357692730669668979315553288253551712576434213213651928008784732935451242719435568113397499538217320188522943042099442895854617918376669579462367638228061038229398129732118562370764048718011911811598435644872728414226929116495850549298037820799817530047090085263476555975301559799948125657613884203315971350642661323939018373554507924239827737176722380702474224269983410768657108549240225975203777281450456437499390239571577462935415534249277295165187292489248273520095928470114813841908506264265053515621199287961660055263732608625955247600174913151271031161616207079193841857034468669578369953619615254972217340654051847122026404301339214719821104236535681723137033019743329640658012529630174366934170224862661203646730543791852546750883482329907890316117087275506643730361576519826211538713625848093300081732539440306937047604757586753585588045553855627986644227007385069885814531394426271276368184805272215307009660539601150894291650030791278986722398370571142112633124887791621181410477161216722443145302223008233175880251824679655161181557996635218076138117034071462246313333644068325688839075456458313887099961810151025427520437709927384486846008322937294527266655588609752967464002535107355494119666100888808663001371892047293235975924081580232778455188041239283194845490744870613988303755574836523633715855135034490747730659876186157089709936079578435369834456489046809283124612855030771300970341140866436006957856395888968390559001261247854999127767274622749470976441567096505788656280098277076091948975797065824876484719586336337721891783222039095758350853214649185534951054848544873022698179953126976865346795124405378388954853397058895806298198681508518057022607389959580261179033574890556456011320496760898689096735377675617161913829119905546716140804609103973342362874047623248117825105978305727264101390076423045676550604810412275171987399969313520009357461641501213504893274293487647299841071302390912107749449343584277095949040231621924261404904420966296965704129119031001324545657746211160575375166445629564505914643648596258962286922378867040017800175354677637666817150207255027304608581074263458673941245409165856369202829110589398988468116863602913815642470419734609162791958286289388334247384157967444347969998652198307368883776581200509459576947200257364828757004705069580898475297267923098778509450617801032899264021200264539850324617987835525078876601813176529416052142630261519953084000393836440040829506607958686189946950407290893451742288584052035980587756480226225342526821168808302058175138902628651904305429170284633248630719057476242835718034711681653433746639842341182358377440744643147712544467440082695911124002996313582409226104334523831512576925727801127425005760775461475013312162580274739029414769995099237552370948467211962918002282265359574545355467944948957317408199705761485973784933872058998055613442852227796212446873862258057569108357210984468925523177746109413827275741383073488926366182675957369619388061731980189505851254294141854153000388424813731722883541666641501222612954448753017476816009078145648885408948569786506885479016916786116995884802772930156552400293616599792652455725456327149281928722720524021415880924943509154767588013125098197696101793645104091561356487817549999715999918602280918575640088490905155646744437512030329807503545927866921753042143014837851892456349260327224463955744476125246206008685568234668966057119793877079328592266221846224325862991896249090182546930590351429593906621762294731964774146171575018780427679175467587617412378829385476519883595051524310434666587261510659984161146551020870019510825345385531125039607288968269780130982706173908986921639802278936797961960366013363981519420087693740064537850862339331149562379318756365534252081336595269632483305641064748226491685309845841531866143984557974669901007308059856123962928464650508785887902211562635773087971723678604936097859238305342846930877998107517079797278894089624783984751968498345624202284453862829840515041064503669988188530193732215116606611536874771399724989729384748420626285483254685936735472953231175852574418460218796549547852537929433591809581597241118139298696117964673729959165871807533970995924753553823770904772762481039222677390995030216418192090125428755126732782031863432911755013202689716262103917591223997279134461519342087321102703083435168279877612214209285681235545659602682474452290596016628300016515604428957863273563529513926156568148757716620795204717314013619741784891303356348929471156402268649266559249764080601637695109877289470073623841426694795344932414507452303226204655599585405672610355448924763252841819147937890973979238982654386209377358208148998506791676599442751264055747252059125328909358336875633449349586326111564903640569222433903871599169686760720076764599473597477891967145487516027831342323010397607833206233970315684193523978486206002171223794058120429081514277675203615761205727974671770537492165058915148551812255169796163409398194343542635196757646826556224254543468912444994730642545412845962661679564984217229315019749884103164437671671860873347729126721228777358755148091403481555063851178448462850731223412933368598619103472547148597892440440936133840683532338469757713792729777781744691457100230084594939781393026016268913705052577484029258732846768379236298085363356317574528581398264068081829583004493025012730527217309744463739480798977213711079836324846230836105987139522799346119762019930693432673116274725609653223265750692035371320942978278955197976202915687911377835336987575804933340993564001051235644140621218515159274980784191978619645114797547657921184147289722948077266218022680820029636577600830156887206183277547952422497276143545504644951259805522754790157665390071160725367483818621392230054548303538588214463154884046015873726342847637122808054951720716863264739867954066933213504058380364413824045633348101814472983682363010516940771384941944448047825148222966959521435361647927420027250995698793361501385017041671844141815015162099029577844782634278488515044095508290006338166492031566400741001695392088702755584499541028757792437625834304405013761014345751173661861115933170093704452658884027532929702473766020594742257464675909422184187705215061899227352982430829817406067447630682696269805258470780094097071123735324931148094495513123240495626206116199135842821925359573833040325205903544390973757978537419234514450805286959252145921634401416886752036362430069556163684474347479137028078676742891184547287001418896127273537319391807248672190622131753490243463594109356019311269755103963138039633943203705860686689464553493055231093602835665327136143716291330597446771567047630898333884338907993493405330008377850503179536474827357621571286460893641035246133307570295047514177841662830651352854168745407821317371204245596904878776059366346670355803090627028103191362881482612133014410240686970798064669796097081800605357067736441451023288145393361418431525185384539246999067495057434389446054140174680099396382741747924393434291966323762406190564063102880513317905425370578012951485894300218761687329222478704243462138536113113431175224834129884565227698351204761478842039371772270307580869247953507409279315000355853711321950383001344150417163620373483344239884077582453218262999269876904059001899810674280574879285026490091148734941846743052708296220924468930518657912690481538806132020234712495508505710204071836010782430891212401953455114762674965133075392160195961882900194566720129409294710744483628685477443010359844106176230331799818060944554687121948772379742294379586767884701024038624207015869369943574476661569755400279916767401080385800610051556096531616624406519461083353334201082272946162313345191817706581064235521478854187345111180264739004054270501140245259111426752115709702796951829831105418772609653729544737059968946058139153557105703720740489023290569425753189830549006085979887280841535715505113916116219734907789060540984546064834172081949555255444633517101413416816737615266253893916663623934027170786660594555599174145983192965263339307293549200165506766645561795652999954803324488314263041950622609003289842639124946401423296727192712196882644081479295584228079639720407805759171980475937218135509051461733313195510123087034461272141998236516426228665213985989036754159920185216460694213402069366527409012561891948512038992080358587631112507446320289028782676412031216173683546420974023409933843457255947174153456117222284488413612313172572354072508979088172761622153793078036838609164452738087642182077982052156633702467445637579622343177812492332379076116328598606744679597511106442262200138524548011273838471747944833865403705973317491574180744678708479958793428683551634683890108449869874719268436732932072729731239686069495394822763634111684936562909582715603600169107620318176621573552033314128902215036700474313598945140859253657110135655834967177553523253769572400209893919090615942734166001151830806907075417230612284185982566021244904734393229609090716181989031754563897072842659979537690300200593990227181499689729889147515879106349871532856564780967602353985371188515678136850866715040494710196264374724300239815835509431730508937401478559786658684707263279135630805771332707911233566972768205707419505015789619975992047122530410609863163455865766148853714488669852281277373968133459718557886911191060973009981669184975901882522124319050944401253862399876783788526193475637847580558259129553201816685821504412570944644109410771500198318398820789259345672022930888433624425283726216387195456744366160034304727606227017492116335032786789966433039521328054548770857018615797794490955360975943229236131878990152890601365573075788497982234227121172529256001245377274750593966113865782383489936855648586962945056829515246519210831378704661095795527090236732844522340887177614704530431798942230013207442669723864592211293427143524916623754248421359322756530362068875984421103505759132235683963122487756627910155724555155421756775111852565470067010288849781617227932073564651705968819540890876170884850010016527882183510214660289788208670370954131715427113718213745877317959005402465238902048095290107077995676435204476876877898642547740346360017067998241655784774073511259143493341385586058576064761036076107919710766283331190568705166832804233995810237884388068765108184038044200635041302134358506465634011393169365702914012705462846411675415796799233930574511619509592103788272789163813091135379604813566702245051909622109651959016371210906007650135989710093302750568599173240104016745681667239628357451007533441542991877366063335995458653910588772595385691540240469154278180596053747362647586702069178507941122020399202805710120006060525108115969896405456819022319050274338733378345255898381993389304307984618744062632967839722346556255638963662262841989562387536119979380980135746691467322558007852587156566947432076690706925591162400065586842137439477362053402544670912630364600752312411032452999842235669130538607831839155640336939994361454953394636667368450229133244255510376707573249317043380739464909228428992335603552968666200326069700798470241809618029394638658226305535910237648616271723611460256412373262740333299266517308735112472477572709593303387996629057272073389576587676355867292343359254370322843200162035847426554542413792204388897633392317639451254536136715604276730510922470479649654058358504148826584028987990874163682132571803640004413960684236204331590770419848064444733696827228177857984723841180176497916962345542927675324896692411448918222514431719956504103788848184381214498486644705757762847208556227583216676804150843010081442664466480230530132034379909426351472575179851048406811744333103224965895469443285688330719351218603366050439978540580991817419538877110334079469003468032044046150927853569147301423489791037590390418879238664834729564140948801190800496646629003986063552070763493632080049797954075890440712414766848024637848335830823621563735469914487474413006746018508991235777073996479849872460788567673301554818621837622476470028898459809202830180273828450716557250676034996146196418730929814824827105282205080931110645432322998902181533314205227311537180270178591988611150388099028475318213443182837844004022639803196708037743143325285125858481642962408795739178121879264308646001609340662859871784180821354791909758933458273742473972356486029385528471084077755741208440443637591686246846926355690772191026198302450147236757205541223722539522472547175900560994242117700145612997682741808918186032342964110789537580014393019493810917840933608316289538273020672267841064289596544042908398255072406226481842769785731319505699755368944212536799266964635833311998083995295905001788179249125300069675986078577640290885502071974258266872872577573914498603882977732409814279158693473259333732706018472790213555992002462850430721163715637219002474168432534953203424156155944930939006292257434408101181464962209581063671549566339099759176220074522471139059358203965134087602817798542498529497137103297811560924582307494554836095875388442775083169150162664513302408074988380990406941885035392633162211174855576715852993967757326868542813147633292183588939833130320207036508112863073766661999745610520428268279820652034521412888053427361007324267735904644196216360995296568320248279564622056089148857064854694693282751836788603112672283103753868846700676630765934446194257816134676320165283730806133332424681178902838628236563714223250588374031557837091034341652987653508581364959100516276906278299304717252340642944099002177301447211378917682163120446131665041453548837088331758424678754044378367634692488071203353959382424539817789619425801420350739021550586633935234737625161736699996169216529137552425676643436023247263678884332424307676469340119233089454279901307121084350876976415846195777878334063253800341653990106954601332234871639646760757840799663322983097809289506670521952266178051022724682190149308722714095749896963611496400662229282857715921638265081763126705379491657360450465724558087435359715804033903313656464613629287661256882570478552496857972327996771441207180466246906713679476072501885352025302589809530116089975055817750419194263435478657423425167237447578381585380131976235422287968399558166723270542491287743630401372221808580931790847030386864588180032996061659586327236503825562991456575703297180806460851239736150271186225925902556524520069235756409264159081902040964150244676684447661192581528570801545050914524377210258122110819810464181061116262685315393902715228226969731319872853795588019244571588762287847372784205198140897520042817597541807444055639117181528135000072216781346240139465825510683002252392099525274851724917866601976880578287442698907092203063099815518810328748579013792253848171007543491446431456679925988811693913351213398830518057061132512934647426232904870110612153701544751331232158831458661610551813018875064343773554553998157831899944680622031576326124581118584384197410163277840370867031761974320711996080212184028364483913581566180998570389446429910894205638544770959933552381919193613277926084597624723637165902996260411347611039559915367667738834668953984024341401457474675591958806551354040338530233450709651814242469916435571132405915618642428842432061083469606272290854040709649783121197812610810407088220963336483027877421111783549386089685216560685603703771556115588651511948957516291219155486444224925577676005624114398455014814125795704493201190320803242208045073013708740399387378206870423761146018222807609152777419511794319170782651489800586172732387321520070501614459526487895165472697281738730776906616992030324421348693828340969620660668555198037214159927728823969776706906914707279345117853943863389656241528424979674340618283181398514209816199754009689537221187481708611512042941148151993999991942048278307687356172819616115121250628532201339248329180111371538359488657981318500329513657028081220148711724024027125105839179270806150315593167508448888760637109071332949426117672578607258051684021762766913446438367722569217507833103175533496929827634099711570484824770860134426220572341112538627647268370655762223409271092986804853113167389415446940236712465899983861026228209748706344836050934529783550574800326805570416484584190573122357570637808018997770395017916376696931215090114848938371115430813804746197093558077366167287369211869349194050252211568097827861431084865552452316670246230153917187883530190977415496164267946371949781873875929015823672668962451818451109644362979870955439209229729061825705764764030617325471192304042557674709741911654773520535278861762092213148783580199208121774286670046765091766145249020151807324164207312955072817448358873323556084263899231859929728551337295384394686482739295149807421871942655481540862206899324204058745013236642862426082648230558607644929804478347181738708705644113600404701156870447074460780073763441379765423387028884613689704592573012642625552409883828635693745196884959299069261150606084720160649797833433267821159569714995565934999203581668279275495525398544023912023383709052327074897634726932810991789990278253591011777751971539425812075974447038712703476789665077107108719167311256883909781091493839514632500064162767423425875287266458134917172352343767751159365816358765275236461235539975920455371078364463098387328166720941375455395153745248449494166369687342887055242831506802032205951972956486769142115079711148716258735930652198388754940323819109690035042527901945076874261707095539837653383886560257651184074644758394432235299189465405715288177556282406011335547124534968297803438602438690167182458547665029053389541265775372450247603157369499462345107401479411998336605290935290592738069573271558912137088590160848608584674614278368274349256626139063421560447349025169500379841738226066414933784056020504400679499011247209674985152834204587570306430749753804730465346597639517485020705112103044519929479305101903415634748832005912751397355821777791198909835121518258713457045776453305176039260601363678448833971577953702663175151919358393826692452894368326328014755884272933745428424491996564386455285635457464263277954366734345064162836384884909318043546628130333521475413963497203345293909086744948766911073053333518015688836094841569958081911971876233471263947290591335715373706203811514230583547973969358284833656429361527963471510542387218086358188093287665610882535306101769267576151850192292130299499631637959984744751022926325914857145369128185146118585646204954025370961928714142851753526086511513913953439371205493238267263352020805168518468277231241262499041315919238712142691585391184998182280039353569470275125346285316033496299953531878372398733326148949589311954921171621632694765261389425764515931072600841762859762081101878700960188435718803866308160141320416407886855397981998715543962607936909170798585302750449613647093495914859390646196568725603122782024531111836804022878983081099405562647520331991456301752762543647212248727339327123134414829524427452056967098711336934953540087734131543075122540529478297616588319821526716942129884162216172546152885903809769357724216159813142558491231363325262201017045781901327449044493821770877933117142819869379585971184631338191463655311218532785156600756934916136551118548854162898828127380402134023145738531341113952606383000243670868624874256483986120067229626715188609462076360788810906997087217457592659615933976583276361378344140467248009914308745305103004941388472840364828209772272478953350752045067540177279068546754732232321172747258902506541187014445479710682383830718101580534891978227087081955373577360264823183468893904927838275579783764864865310033146949029482122564791010232224950351771172964956697445424568752305074743190283932641786302679098485778732734599161643996436204571432238672198620318427361555425601915331976829178655628856745710874439181005633566114574711048117423772425835948513347124932054151778055109898574665240806880810818376371241422533008992894680605664247340804990328624627180619449869853931391049808862978535764899273777755448290636672704766570074243572696565631476051513281427711269345558176350490330533032400829935629126000712261506256733822180821093479054139408047919385754731202490240299349062233173690611295737835516632354028564516010400833266995701303382011384961721074441280233068724440356938589306788687746053600239808566828500610947023514195099948852904871083729460929045648477079471117310847271694081467504671094926524809394809203515205400062421148777418892002915654982730539993828696354108526835518376188729850784142050718888510533915957887524944818481683664201850806757696426464373239253663554912340613177573083912059612290190481819165479666892830118902243573133370845685359429216055368944946767442030687784115671572303500967249535059979169521008941024598745348065399019187755783931155037660434100472989969725534069293522467718603708192327714475929997066399749289287927223965258849891915306733024268237152555820241774834544115103324084900099458389059553836361381648155805519221362886135532978801363355107488298272287619126483020482888528286035121046798841243904845968616716384348849286455686341995563582994119918498330960351729138505110126689954458567852525615982801840227915748283200452064281720553966493535049110608994577136871241961902560658338088252366347898074860893581396109565235752057067929523992670982431607722201922392701632199600551994521766115883898664249121809639121910735009041862706044377250041327921787781336752076048623992151501712585793287357780517057266843683230086728241896176982787793956711797232383249299112239677810841213439282536332286051773237729958637074015048019406309517659124910903884380880523546814531449040615346389980470452063636771709257948915181550555433881903231283017730242352686339801163227420903302324020772193469858086053282453944322292812173913999641277337342327760963793349447755570615351226682424415173020799581089433790860658056402140361310553028980332222409175428756280384951653785748806616579937497178912537734317018443224454604394179365425593594505568372016298805397485860078943302684870128516690028998149316943598341029470234069606269804973320314161996832792694251358480450974385797423395409197864875645958281086278399759618135953832290981473984735037098363588652461736496797350955825799404184513752354802448286765354920783340138403710478350233626787476795318850954603601778778422897136641924725302218435838496462019026336969719346771406759875501470587365921603189195708959126284675995494154308146171578691084144066820905112511904120781693304761465546191068447871464800295214622703371367148433379562287330707502894688660966112844180656943795690725330938533799634277527123105482661687934222091890135944933785908639585038999623308776996140703207472171912583434899512506071252658818969509952546557905711215761277346697686240923563132346079145564070209503583439474460950897893126887484114853596944015928885319872685582069186979020492181621544478094919055232723755417699662930444757609045302316084582254640244920809066399031658890529333475137023363751604556241385067418186559117021541794081198007596580280965946460650722297877016138984462735910816068380420207724959936576049116785785483032082522244274293319357451283378713513012695927967302098311488782170623179832023419221745921607912241763739876159002201172517725566487843905765950788400385134832262985858895032882025324819788878963004443398763947000869590492124708807678726728120767785772218227211276714777230067681260305479748811073325771611709933402985999707633060968424374094001506652527148638113527157756318285499445912702629593911162929198980998614700816103876063762207428826590007315431569641334475522791869383330555006502722471567158467773382050050287617964511804151664767066028237676079988654357826468900725198633025720443873531186485152968615498280363897676775367226385300587642920088193677024187624628903396628001694841517106811037256932377187456549044322817002659778506185609880158921536101316143206190117962065639261093337645047823627436877076177271684416960437948866652066258997487144731511428139849881667079428289691364609075308359106100414907294906659802633027187221262688100701727170730396174799064179039405501642776821464369909631789558998122935790565440042539455192350372703060921933318100224945994715517226667640596391270207305279740220527679015168722300051394398801716549132261433481743774633230176412037486014881691940212801001624029628025700978031824293372385369906596051573369741955714384891134545738559382689599301125240666710566314319686077180423880244544158733170965681160382693963019886091900875204166726373513857582248998410648228152460842151442593204739880118124912086956740511569975413168137552799899072351137854268227509884171168068664033525979754504841481565721671428009752250529599448663295435408097067906098468820291068071438255522884361207043198049991339872683248066881183146376102067071370514256451964001220499800696296139153209727766064583666766128335351584548882859677133009568102500317670150927933359312435695763289688760497032406510964842740061798359033375648893126070162027626355541902147301637754040703122156788377018675693545366921046610806134067728015426980435608877496802006891950748146198944447906982617898231577347112676354679691180331086953297271636525234618525929347087755741981367772195081229970616269841864186686566377997845986472741881381020417894970610143289082815167454621936582696204605245387483033202609957704435918718788287852786116438407434409905584185885244276445330557232289362842861740340219866568339149577204765635051957118540449997468178123342441375567223264881330611414210904304599435081584676769085311026448633103699299721880486776196857128515819158538477665004013515319350169075776856854637768100341363081306243986095083270469912046390147893376735118827069394643399980498216958389198973230813433953484991022309989002788448333571211354323115060314879093832075530722974773135640199846853418786845229429693006489104985896999143081288155450633425948470237768899511713669898249510932307784781342706645147989948866838111053413019617715936088396587370273036264577493197872103870815730427164221089794105566181076009066123827476787070836974922426141904050523101884237225745969255005759515794496866081228916680737467807336622782731553984138051263428294228850019514744498550679258551256339088792472113838438951755454967862334431720130989229340637997317477651075931165806784908252976202079825918459119868205500885486905728178694807285661509443470549827966309587670118729153954619097308044690658416914646201785667711208402515346522555767190412919805735803190102113440901855295041394190472569628974390453921936202906646093061117643258285494081051012502712478898681288828806371468550571398963241248983076900928482941237517951778313115808711307412403879939903117096603215113528359669636994243030746660511601819371502714149003849330108624667440268092171476051566134467882439585294587671810311957594388218098429573054351161473893085048342283774290088320235963415702677248849662763508564181753373544914392225024550034764350358965028443820568321034261391166821400712180583173900640539989131593289201559595597422092830084055395538862843181381545238223783344445138878462323408865486548818360458689788940730747189765252593906461470257357716891760276790334141960043417444778295728617230586123362580210523920876791437903912859652752903267155573721896505569783058471088428036113116737245825933500147157075090585962620181589621283266917258950918000005741675337568027871562347542528566618873528970165594124986838014720621822544792924186323281244919118811231720792802843049662065651235146059909183120396722402149718643756193727938411869602087205505201238065092007867465652438747276535105688798049199908981312553245667174956085751507886493925534891885953160334833798064348706811880831211243721326854156776660585601436489771056277403758613361007882537797234019425043486211100228610058999832619060268607650376326801613314125935612691178492084189084762844004412957130263108840159656872371090658072779641606120166207368174885910590157666287434876385422376767744719058747571590139998976703889873887427426577322609975691034568804404377734902317578897830990320585405821527062648114720561621717678299627147732204382993475057798695816049546271763928804218911614080715439519539811778828071373168930777636940418112210191393487446151678698212109780483436408393459828905754416901302584484040280286723828892573276940355801311590031123621819822816166545386801148663411920733697929362447742178672097945930912606167008384321449468221566332767057189156758800785138030561514626922289063508152250943032890092157434720929529004536357420735114096816041322768322937699127511936833156283006685225303567163148854192195927139404605834421328449515213142425551324640046220290618054969589739124735642384550146485273572059048398171545678579758745411411170686287877408838176840080955859312641720455800148052922701087005195471471541931599574417606470667596267396666603497903076758684942689157924516293300053032506994492131396612897237857130766128042305371202412411256310924367101448439925572728037667785989965597008718478349683218062509540420346206455169827092105367321019154572889657692046582911103184485669787696952852167837383955826261214633033262831787770943006424152571641696841202472291376180522797389727255730319984738674362222020902540570633776637856738838654527455588837527948296329537283220892901782866322138346334924108075563150668161914577710095118629747983189269402520717631701432856998207656560032869106600009837812996060812079178588860585396595531072211020669366736210788130452197119342270546264937207274205060952374350544008427559066435705160402152978580830792222510195142065773650174775829850990020333435639416859844703335957836670622086117759620788976957836793638784154094651690441767736195274601869733025679647213386686740921660022063743024327783121385217757169886590025888733023656243824661539245226664637971688095535275947351031256393922506380619202717618163683634942169630986578598607286165957098944615754541956786626728112048228228628658501432299283419462122454270101574145163385250787355300825511055402067872488972241850328895314942759218769868999614786986207589539422102916940230280417117030175080323722937538445473499064805335701421514399988621273738801003648214769271325244046313350202062377792338915649982129806468912840027557593500363901914601428998489584200418770439741066517561753980459272563407561073531246915031236916844895660147869731904334002679424680964005272913555441201023528765589182392712121790297655195428136744896630522712194651223306580940339969534995056609490103188560640067154052093841383983639028906655660147057996770713855891225119632345376870894130066816212427005696917599798405221702048273941290229537270624962850929896486508288294600160093231814536719865154477940988238788718145133144825860556451115406780897440417045494221239603780106127527203570114822713610927627190800066269153814712833668711432157054403244976082177735776708485478936930155987912394464232559163161887502613758343808750952084976620748462544787099898995534612606452633594489823014895232540038045198427084482949037303588084860853836761928208526292199367717923364641792999598585819113338441054822424828814735737252284640702077639991151463784098255881430668532997708536440587532673672459403305262234607351612785747044056016186166182616072120854886226544593529760127141627053320825838341715158081915337662065162870962281754138699445294673056104844740855773703148190280668284604110484420868792749906835112542708855483597983011400925450062416855178098532078324063396086188089010960735906319468848141820805599711188901410362052874105970895716837306901365969460200737355026655988294633478648594174317514423663686322541888857879749248455948864235461092418378192076380430586325866071232916574255873788552384322839513918644150632872720181292541165104919847476740543502808801570490208145981218319771589252961898947078751198637746214638281154889401823233499307758818955595961086034397394713757033983696027448654929689697823082478414589212464160236259704455776830842596823322164968255106800323617675619593700950673712128231842298327973218587971775907496345158381956181530368784813520172828113892367362006348138037746811901362812632599616546605373406984849116520399612632437967304254573264717843126697053866586153043241650653541320163047852225769979935573418356015824465685476525175261804197412003800148946889494534221582394905676256798767655138935554429542143909198601369778808547007701964924903103154057969476493079872299909074523042336018112167969816226142731018590523228223739867924376176417128030871701535208455947453450079291079899563509576808560167536126204872380022281813816538889621617239194331877933518819752685105532283479498484422364371666096337181457094758147967949891786176970358892259024519476111699168432597087187232131538859298275160295417523550512806100496020597862174413160983906978589811240118432195431152304482486024129872705849860054377238101129118463893905740744003329042006136743539161524081034139518478887570478365376462824920101058089105494952872253169370346895721904285739893534007438551120723326497490022737180344204582627809562697592965059284670942558512123915879833498694024698406922089809810270359294413666626065380727514269115019775688988362649868986018624466433273983073713924963288394914941359611778794799512513735441964418647315540488916252748461838207564452322161843905499200070344262692498052672613510402746134197287837654893992522823228580543066088503176433494056623480025814693943519447798781641478128577837761638762728024970869750016518091190649760403139214998996554336181379590076152049343625536920369132843364793376649850102641241103719748847188698302121336884433128379214316257461234213510680938130490908053189283937131671932858923013751324745953765484044871154978966638941814128594237060087360509288845754437243066617288168418172097174736148323030245007140856995505829031402451899297205796327145307633016905837894792246383489732162010113678528837165064675053409366493538873450493425469421183579900339761550055267028178603683549215310561298044592264755279288199971354860115015175874481319619025652527868023514183082100006646905456552970227763241209991221951565775125379767340235065886364818439359662253801949867076978150676397554381990663300901839539807575189748104465118260618793662194009322779560804323291044318568162014724067652978614746071592085360262562858353756916686090120124794375811964399458626654242549984533928588675740280046367949277973912567409316664268046839687820605627614499904098287711545189441063176848118004985748763574892988663210799887448661394308605156318572290852908647370190704764706343780839023393053666130169404508555252901532830804476089872274187975460178104159699792716955288593305712199500713111423046709033922782650649303890811587414136387070047567553170407049761223338967769104513515629909232594952922569113770226020202364956127396625018403994831274854629264767573463767071410455596106932358161666516453540089278841209986919948381577706062739942661430763124961100138733302734776361831266860450028438339720785011656498483188099584470092064677165954743428904647290377220334344602458461728404755421039835369649628931891705940527458475423615245477915368219575108708059502914236358838520824528513402991082266028482226160767221012134940095640165713465220676181922521892141450075752138935257635980659376124922789600307249131803247894566732802516762340650057264072623581002935972404468533628517985348709174122238557884333970682622595887535540293089284143939651290240321533165590824721258733333659924794547042893223529330090001639050453529112245012235730976772429833639449470186019523989443536100456768190115366747810075568141497797017990566194175455515226875581812232217564941166688187097573334172603799573326097354877001196888057619249167018407152459643289080398949347820251943573319996318797116629784121385795915700946553002001244044088887824330078853018543752828973601374839054722513760683822549693282863081951903415715184646073074166228343215854514657060136797804720257996660497297753521053816269410665492379717722341603043340551978491606263021550505419436643463591342015105306335705424177065383258953863568304685473994249565816166879884994947750769661265197685022149114560018851844819399978418671776070472802461678888538819050962888795915134001192514126848049463851268413579488030325825721693719515050994456868651579408279079447114450004744265171324445506672912354341895347741815728353107190982249234407905685405731031533402324096038623718329624154182246697146987085494339293490068225875269427695776621706577044470887391040468026902839302737157101421465642957309888531007785889522740492291348606049304709613750004289300043901123750255714259780987594591148663952027102199546837837379631735049993333580569933841737234114940108593138718725002631131397659832784286158251302308791216790111692709022804607426591155641591305331005166997102571029061833592270820422085893103166189464379743864769965253963136099159692679476398650664413221625951497541394710122015649141192447718740418883089458671436037376339208608173254063589659230588946601210358065233149058321714262922995979141167630836714901547638820587297362426835844627627936213631396734699818415501133147628920259460923782783974081574964206576102973706677353937978703851166917391225100249931020008555717401913379141056625549208597172235515138697991796834309274742788422919631359463054021295928823616082509848775190752088156676397480306830633768633942807293636699359539031552905947064886072234880588612373992270825577488497480158046909277399162520463628472391769728657081653505979080955290204990385746640366479899365379171394055185116041649569074638843653930677853699751905109280020159938608661658408681385636924822917710025187217994054235417708405457098093135085258346241174826133740799810807310486661926599895183764614437298544811045388098405071947103933328226346545504333908119746516508443946814612625547138140033945933629112544678432171106880621029395911470319861769760271125556204984011759814915604661411920640146658147580470890212009831956834357495181065805874909387351481998064662332274813722444720258538071911211365787684473484854651879487699034215932265266236685100094357543256701174098889867682934020504662653556489846818634528535562268804558413625109318412029143704115628773311236062012847992837572983161191994750032137138085483016786062403845501197638243678624703788719725731810135502988507889429118998010273949366630590178787893286615306739284437962864349325243308428094934691320032296302961710632238382260014649495157546489890864088993134932815217521066383445828792711849485880682137677310814632586649458457315351037173844875143335519117911622986502323846217499959378508071532976140051265597862585928909126483188640510551524290788282097407874483544035179821121822532508912370310268445217235271991075135637058773245786750785951127956801089231533967491317175357694948655282272723001941270937780336076792106027856924114594722779192078307453937228016902560661626906502157692055520007894299613474354936754517128063423041680843055545607220285845983375193525799393714860367894927803691332507765245204405180077865982365563504006094082534510144652602366157974590576913285237642617642981668165930433830898178828179422951348410874039669854549611842874264103494586713866653014433305131832190016083506784286922309504494508720495050371694656341303938995357475282365875976247797814636192171620825380817538445796181034596723867687637910354333598855015602599799335734770653609448815691734577144747713833651612632227794804393429705422031485050454567380767535164004737519800626769963586116978939029340323862601800278684451720897714611469701878078354460843339167329993399602688272283910537904440063097999714831557639243015602207507522936408628232046379634313973300552951393512822286271716176252608345498287454792481315156418780266551185629916041407907731686353435902677517955865575034602331156680100583256728897824390259390908998658660538805760486345555063058481521702168174561316209668606526922396526457586509094991338162361565940717656490217122794273884026064051437298928541011961280761241477521047260049331900846995640030724038554185304314818872324244586503299372030442708943457407936859739129406492381220477159600323346599514189254551516836450896202173919679259654943070723518722463350517742698213298929534103411159622739029347858696219875754030971436174758299526715363976572616586763989268433762509606934968805862197696370269442724835729232908881715667207628056378441888973678313271308973522244773372956892412582888690196919238820756614380690028768827343320474903652415574723152547967034668698335252366074120167351303049140403989538336601629851429841625473285177354663012177288801617474129463720100445996648559660100312458920757480342454612349834025863257323531977970130899715121047465688251938250062833198249078786107636067539845265050567493572866508046174928847618713235172898387494057928608212462882496341969111423538417722714519352767699799268000340156684192721164158098537328031984936475295058217880512275064466622750386478560952970079883980661660037021293351744376435635134993356478534846845252291533863498832658970834440538125685910110740072747561212196012688444653442770141953070747122841354545210538651520641532768875615250976954793753132615107836624595637947885280136881988470010277396500415733405601566380682004632673915551705861189417190635051528456229323826224557448059213892103821882753295742541855691258694406006243531961059657773025286289597462037148871193857550311640620637555077385298491320865669437611690352961679249750729090685235426037457853568721701865974064166172272003693658958168408064360540287474244460572052286098238833595364313015812722416037532282193102664855576990048716956469582467476152735926508716387445613170408518461508039353089407676570776654240898411453194958075995751192269107725167635331939228727512770681366801756266894675599005228511077566206363677750521435698972425207355490009863232882338212438002122036243505850254360002024235034214295179452730036308611489649189347126268811891633001091865110074203400920109893236118590150307104303812817029568985288650827721495307881019723307644657370994335418114634096625135455886286181006460097880033071828913449126189502408025583004026351679289110934288530634239464036376972341313812068332105359035965607694426780064404688682443720116084313842892354035116128394717320975424481738863745315075961917833119034501653725402847739586328513671156869707401219167137556095519841164089309197344164894611346113729436870398534771573013842072092123103719077422456396564289998276303258768836403684583376620224461461039659014821760299810109043150124083117148173301897739277273967774034683932611587535661238278554112836310342320719480345555537804680730274410444197666206149397523339827494639371402493757836736641839330429709873837302900255066260774513488626993587098122943391316827860695814222576292359233307284971163836288017655996510995106517171778876124627965268217769274353380359992916088305061677701547762595286016844367945873675625480860278651165773350418548899597489114089572944087232163834052616897414293342460193451062953152340458859701853971424747020182106143803658036132820790204281034565956528385435196129946670462414689102118475760297601949286142985073212676757236841305211358841327727032957270251531246333458733446102723098267440342088489130047844055445617805185436223959273036002605787154456549545162040627903798874231646655094279392171594512647708383344661564047427526624002052762515290062066117270835773590425828867961822512579142964038264633139375780034875720118760016934539598886388294176965006202483913461873569118278441959269412800184564725922569400608369404228155251962640497430762831947340720503597245898215233069155415374239645562060563691110591256034310450248492944702060981671709705570698575611585068785225031398400795302645515590732194196298509952364957005464115123124485015834764965854362302879794712234793744296568676039299584080175938493033083063839888626222716693496066983939588693457744986312554861311424222184746830192400875984447296471790264144094818349726265322203959664805831385301809770982441168702783222708690675934047545655013617456502841509076104698987973677069648642649415844892853102486142252234924191588553942457016377777693834702744320591231723273973504318252337689019757018541898874472099442654737346355023080231064214343984574692861385919418823982077086584995875672660367310488791015181426623511109591165231139443648199510364494705603819584293477968421548719332609371058740459376759667778844465391693956544150966129101351027571109721642820727007227290255655090695255097527888115955646183803941337111610696984977267873310861249588234890337402109076514200260970066331453829787007698555223780718507707735985714842663318984718651653027784626465196450167611728669918235288038222777970637853769747322434793417337917299139880838742272281894523664801634492830462430516480166634338866607759228124612038184803429330617190469102490351487732318619824437268668042948766483461203952787365879560581417879976611357931668301732324599809777757106461375051033652794547385390587730834914184094898213536458599935722841718888081743102548303211154640058226864372980898040789843686214852277655093090998880671810054505618759515835268812694021790187758703757402626633672452045883785657184545144054076640700835840436391790976885502265615913818488638359813577838088409312101640771402916743253248669869957235226733676838944457091640716980245022286296114562770888317046813889176002593364674688191779974664204083555806761394371323972390880710167635277334852409105908367134929383819995123988371297202717816874384696821796729496648193721095047341803093068497554061058827397186569862698353285084090801309922035798702515867745920850795317544653800480984832494503603966484737597407340311156176234324632429021301440323058805403039147727622521538058285619163297046142628956796508461245128937925886564511728839036825499654859593244834401312050681190304511651815339928170145441872278777222060002457556649834998177386111515139823224844753956443361056134834645064494013443611786518769444534972465060352822503031305333944689672488205400166879260638408926230138240552893704920255561599217275926691971482933294366170418683965222559253303079450348880772192530100709317480887905558120481507242095579966393830302165781893741555947146094695559565525492863624570682317508516639097346993889642218327064046801246723184798903488834075165595317335941204444235807472610931645487419289711621307517370437055685586039027382885586391148174373799618273362895649963608615321709509069211711969045056108498219331166101042767097980027370149107816639113411326131719004546363528684682412504745312539708749937855184763413904953692975666315499716647858559330280015802166846864165068085293324938648012955772773394415692510180760769979517405455179668153484912173069335006055942671162681383374318422661972769650502117538691477522089634056675857010123137977920837857003597847728742379256735727755699805079025570095117909562947773910597661599386370304026328038229601890933703173693985090473919322573688822699709266633877325590500455503641692098248880488471020221291649170085753028679497202260116339919056413130319752013500425317810902935958636517595847684229337981326884480336266640447974910339595252102664285863122437870233705582786359632542121437379512689633538245405466012243533705167635329526429486883464058210872928210217306148235114899514264349053456902864673728118529778457724070709543502616880252036203783190377481289296762448482086449068172668042350656520971564402565681082224016003460172661329833569653738354080037041028004130584888735833204044586747198644409886740084422188006049638743470569732074570385984492464628854511553845692051120960720184692698959642673280532373192439414703961724994284938710113618476222885353069680968646886122447643401805911372704352113264159253351161519632104965477190044898014634842199658018164302192617015489337693453558910273424643902156258411705754174850417667215878256820698255417082891332802838490239003543943980380228499712405032122379292347444679279753448368143227106038195043970202192256156379454254726246489735171415799024361281412650806385757531604757835579561745245828982716492784385888975564865684610119005712300107507274221478011447043135663410710853955703965855149774490933876780608435515184337938637701027756443427282442124609313202451384583421661158572877074895203830304150325448152644993615724172646124807318350527745958686544688487923310575730250565095349836728916967070502593023151778300060117293834350963673838500681114176595321205333611172013423379020846402415107876995510468929424082728743080777931157511765184703956079741338224848684343128986716922942426748408583773284304593750889741833357744434511825630268700529526827177519592777785095973834893249340383518176711693561929143724517307875349218312448999527227773151998988275792008350773950184187528293891941528548444003437332721636856026461591943484061355004621218830513434169650295974066576699997900178867536368705107266811545668951180670741259777995287360345498199112096315400508530466186111120449241050547276340358461780095505947058605707548093598642464787421727756190549215646396841004025408721083621518866481952255335976651773975138887395205512371298439869029875312045073212113545793033442576148384783834285165972127736755311303891434079507975580881987759560175290114676025240432373367069732281249559141680211078446767551744483250675442439457198191603366694777092937336440810544100041554596301855330749977563313120054631040075466670254306489612663540084706916832879780278889801644676496515999099919701151944035718271324100131870782140427082087885154057877080370936839277303302975951282997775259646253514666582257767860751824437684083014830249606659280324202496356509548828696914514609937613680382482422305910693685460205246426591889616008288253992914667962204299800754530607188037581023047221717848049170092804289064262142271919919109597610976005823938032930656986176770882188376094122223554629752630897524027192004104166924873446542196073028918757144078800083899228074565332960293064111717667365640857036208547926291871869997603058507835211060576050144313461680817641000982983302704199517043922489424161771586661751945320669164771311621247637116426791944965786634876988663355037547010627190096718563582888034603557319474799216707357772630158039938629626160830862831795400986101546782020906373894218777923545393808077371230887816431614413456107538099784392815748313181306703878101164498696890831258752466509527343278202241468291238285301630203404080166461521702722504115966581853112850943475454884752479095591908945170250998104250649291283604701677836343975050761879158502958303846405556232969087424175824366073935591347194995141437778358981063282060504043374872250084790903235208347278920402913824818419682560218980535933678041725421624276662057220875959579937795795927149402350088589519508079641097493194233221826802236763254388518558555169230420809738328369235586133264984291531993645286027676850059988686206253402597450722631182230517629551338248741274642155218871294853780592631352031853456088528000989667301953251867805878337870183125532538838701888371280481445523050881719143149775483039831016009110881060466510919424931712913969718861051358286075318890183444806578021456631655217943986212246858683907713620309510998629509854817892108442903906528201079101253873452661433159278597502332224498157276875575301736066599747434640822083911886868124216487248256041289865429235316856536513660243842704219161000916448116428678554410686645790178990261489828767548270283786508947894177493208936203638111144550383044293190170144471960948391018409337814172463293488615251038688525751220687842187591532977635160499439919996258915313148869833385460281235600194559631829117091191593246535458177948853180087114461374475957509090202972184172001632269734546897795654628513618834397546470630050257526686574571945848968254417050522628456424420946631394200009766551638067357634409960075196003935211467821701796789437192644386694844288913155499491408071073243706964377716448657995725874726696471002467723884393865278322549181606897485734954043478872193906915951987684411055878878209555651924588801875490050173688912296324596119237575144920372223240776337297458220882744957223883459165204774182087261631640517428156683955749382876295178594482811144007579099554136992405521498876878547534868179401837205266824331177354664714355769205063096845994023417373402712732122338530386749203274818903620875109413757477681989118955281086999367939536217160488156183854203740488374659381246801442465828528888053552452895472731526394009029360438148996301816510937688752243398088837105895360426932370037222206307754426803089626302100846478775407457961428628184360690442623165087398638939700638740935750765494495661852510104838908380139447908749021891033952552013122364087541522696245753019994263656861960596382905001430180016236238837434978054159011660327326005079662125375457111247717407627563557473511131994651971015190039035516105100827722177796911401213904926213180520806125229247825013435201513889947730299134222743766367888623652835664697622027388358234849701608206086031693122726510890788919860859650134123827648858452312716995285544042897652708582222146084684115286683877007788067231364591100614507090644726941472539491686216906587024479367361132502329831930435666553009808804456042644081457536034225042857209521654822399103897753712897094492375886578888591761052930260228024685477912834671513956065979386703316466913768672911872983182059141831691777295121152882719281766792634011169469425332079811061618450855344857287399742179940974819433677397646281494068255198491848583212702132206711470704366714076109456471682357236802823017474059649151928649493089261411247558901878351957614485008400384883134566564218116341249273275419279355147717798955476904739525373066562506202377018435155610230621685596111033515399999551498169976431523199925700053085188082629365855338856956991765420464924782145111144584362764391758429701885868039126470936716892302912419623063629536295064063593154727089611398979501386356132724883567333743981318129256020019681105161252904253563076121650735747481410861409397842368913542641202049006638908675035492368638671386905750778947140145314745068164594067218017225977759602051889184772526321687402470345419431300224110263883617238915735482635616168006718752990991797957625852922978558481187196872158056310634505767336265317361473868064591434319010468959562514825252659795646047301053536576138280067158413583830488960646134226076965120676880489062594743925935072001386298575471755976396479772648145358877257008326670036589710532218948111573540123441859028709366679623898626188907500359763560282987339515310549506457004946409514350681660699603963173201264505483027768672436645545695770023265153422334899865406184603673123830233211967636112630640559044094955748760758695407304525150008090776635276588125756646246239150935860833020484448488599110658893426563756177368453357877703679493113634839045589240502394345858796875811438711515014310493913422174029358667746828454143941539971528888905642082983813711767219658848463841142859953432696452306931246386555814248637310958732546147401827738042871854245370942226719086990037941569014498145180059022695834212949085122457301500898041686498798233256695627239277384013427446235686114716851269527941581685310332263360056402588381932083629903056683559486689603366558408226702765947591901189029586376213934463271786955840284714975414970845818091028993170223337313371230839493269743632440843755377242542997239697238913937442283178877813241552264628280556418470113378283542870472473324185641384491810372183175492983448150220635203025221073374801080174967374866578049840860516209864349666101842760893111216954818099572025764557089475468734134169238140395147156054695623017747508022819318344466247778250669404164984325779426934603484062755848484015654668694110085770861161305215511986247376689953418703601570455167442176875922583539630718803759142007566750704213695361631838925656204063099722128890229863782636403473719028485412682512796364733183188018565392237081536613643642665567357852754186099550775337610606630555540744283432354182345965772902849881199107319013326389882738274033253447857366107851756283290080739775290958368685778783830947545750466355586908435317456630874180964817773744687635434787904444989396405781428129701384927432738414977889717476594656374627840239654824325390923996683677229417465584213079152038998663806006257343841332610951629217444487708556530927896969051719653833923935896771493159281528624810303910755092609487268303732747108808048811795053845790172044989299697637317149329851739915957085765741160161038265184239671841954644362668592999036677086778184338259299146746669397186570614672111128257643630651637265819193987835817500597912777283920342265011968852723277525236330583966456130813574020150307715319724648910786631368288629878102095242703749753344573076312898082618645776949727189835812443711553097039691587113180901698851183512928457438539893440983569757759110319155564571307574170531931681739407370833436698728676033724497995229057622839224782745291121822534571112378444376356004295515610630221952974863989900951855413277764565210114320486558364215632539168549625804085608594396991602313781461466613287939210676560892013305088847123601407666101966280970135808108151486442491374745564334368135080972401751590612281514993410480536620953081636824786546933633342071333608033162953305689766044103270744901491611481362170224775889242644183558730160104796381421648906991934968997214468023606602701575954005283297019677819480200077729237417487326281011752756365478090291246298956443783311244131649693560386226541952733988075835375631103251136012995858454922852876199968398216116382217969132471490920176485671257766665010105384148221766305825815088508434767979425354860772200415151998947858765000079900554449866714059049576233504017864138233740326283474084993672710179542317762732383263888967147198544381994312201550959192262271077357309992519196592395056382601723322307725404763476917879481584673778274143636991474121057590049127710205685610931681676960098513774166621450434909513272588279106990492223446874273077536915172705285404827603566892095812865787775094097409482821600790329663982432525074431754694973841935982297979115302451045164329175852700939532432102333722000310401998326381008587826688458141979759736730263150768958625350578708842554966557028599739581694374946403778688351613383195372498925846029810086061970751585171811441608585256426536552967152917602802877643752288098821746184414487472154535666259711547651681148031330306881945755577921006465542126700439305671249288233136561437654103432802129901311714900870516898033471799994402037288599511472204719713228669026260829620543285771461134533851317524931610032618328078576100181841497427175609793222466232485572618333016859846528181876663976730077534744150105520603748504186263802817732821399260618523819832742221704822835631442111344501501065327196518474268483055749719564444415960330077933552551644424207107183054696597964134795998558586580311987841809828738547030017797292896969389938346345494749115785882428400395407482610177571295866228853273950509914916084175915207829405121835767796406840836594252617490104438470156990844767614343743350123684934888322383011257332064246419603209866335264439390979899949240404859335427377315392032251325941687255518009040492377309605863657598085308383121259053575492630198764545430253409807130565094901061628313053646484023510203783279477244961214855936152993917632742586616834462228642383592922103831194939363653622318481049967811810530731416665191296939768683761745130549458223985881409178893470798349987580198539154780488818683631962853839701346068071034499183766187319607324886473839779322580696774629453525657597925198731931850133263534458415370819319140342909664202178434877515083171948740756317785805758526250668961956831591569935192186879656056416906852863948367393610370749855373721609523609879596240837022836338164192425186780287643153166439088445620455914889117755624023782482297710096914553067628022270906181687938587328943732313990998972317456253425110683222470761866474265322302281650623338527616239715201118280227445735318054160843238984873379346015296622462674323005943049203877067787779865802270811824991117776488940798531170602409633234081637696962409226328710795850033684508400164701757307302356122199183410379830134828657253894185245573522715683172751702759075155921631636286080080497191417056914878803120215487546587201185942878943089001965241537720690766459551491255647132484533109398305412024847551851918055276801762843407443178710336918321655786457715237371267876012292439021965196794159356933276975527232190692717242308174585981218197703522215321403019349511966374876561975287936804102347632932747477943080308726288443075246918057514842792778529165314718374070262160998631297105603875263486706638637102349748973064944140220863444809043185603140754531195286392338303865117272717870331650588279516786201328888333331589730660860124007341259869888071656724911065156675283568388284706541405037263115112397693198975635046755568094445948554343137673639675586760937953370966021395166543974563331674162445503825398645248536453767763453227338142861025744241494140656880633107489528401308799796351627476464835844162798972269044711908358359084118599447210382605440385920475096803215518736150302029956068444394067995179620296758898811322718670711053534848460455306882094618485647897183698245201847295211018547681600959180199795233796738510377806535468675176176416709427065495091232084939775968275305406033134151553127492965925189435402413498392571268166994547227547001651425467325103409070988200398609291377190659436451616108516448689055443414852686275548228715914746772738986897391207977524327761083536325743097299217837597059954196843058506198877118867599854191489511656875799194573869288383007824905422626250693323730072477100377327642417760934041588803915827905914432632587788675210075321865298774085325005873692926042384627393228076320285944354668223423486496506947502383762257602711823842446963593240504865443993101260713016740444687565481679756341929095563809664685515286736658644272552672205241034757188172070465051790499897738969832899500960885098302383611559950246935151009825461416428392572780820870163183823393365352709672758772951281094307619323674788246778434826012709089149281555894754977862606509106241276736138267888622988350956580834117444701843650318571569595996124183178923679597862427690115291832270596594822872587277893461340413205885282032559825030120509029037841563165611273033618684097644960136672572804136017974384579509531997766440206197234541908246959291874173613526466645894807906076253408705182710389485052522397730049713703091122677333323171254646936585008171086330169281776765398586144052673490556028439113156003019565950802965527005275430172917863050412301299398471503505203006519538231418611154325253343177758776104715902631879335298200952253854001987082166974251650480542595490648575695432556834192104329262796306024079584933405723970112564652168243376266940782785061888818981951211807102815608367670394438160858385257993609867561257979382365872585261085521707064444983347677912638484663379649996838433020433640949008612374572703002792396093810595561993193300241657509558625615783452690587157221381315697469169829909762505583206259204423792738893457524034015321600174977240273127839224936314359957666783249677655662585077268253663732187282378135164319467911168534017094008357710104129930949950040886244754024932752577791430347419547295637203885283893058309698721090159601935352602077735469803740113406534941443169810140932916170853825853379781731015634156869982450245872508416699320343353657773207548896773308995609423775572414896673007425194731127134647205217545991333634367175754327235103516332263803372668802689126503166996293192154069042851896114225785485356618463255660493587975631125675950008259701415461743151985520761021805737764144234065445935915154278008035999312784022818766999233771636715165362468663017442015797082624244367400460533117546193642961903448098264461103394986963792964267555244447718473645361357264267460494251020861186920302859121072135345415638571793785840414168845036785036278127866292096209874915492338173521647403486582290793097455046155797179159388549867736566026273223090677953881925225961415980838799948617253067046283107481663892211503302873458268927520018820957223218824928515935861059935052115519237818300293484773092790940254936578408167801570114284189105151454164161685211241800169622028654016221141318359552766136643260106424565525432189163722762938028062794947332131908706231922294627779191780910834683542717982152667647470687862911743581446801026362493574181684445942001540303515723858141988627643672932087061720611464841565397442934380430054987530144037498233329239210660121313292058090013703487410255362562831305156431968945759183631368843657966192356983616605851413223650990627321271122804531700827057598320981989412878227502942009301883360907238605644052731335298805407742040943901414299137742368165841205717295733183880861310093478803748223759994850164496238195286736917726994043046418017865326059743536314682210983190336154765776295632789851468655989259797561752733860770503790796768255017729682655828942288428741786656997172609160258507098546063336539045797900912526878792827277630638801216349399911788863379573648850047889626191553976512082565278657721476441133780159559798087142697791152721600949902094396335401763493096795807288536194377576155402311754302008383559010254064230489463258176363010080743327615019322914866247053337914289384816246633056100999512873021800720377736238961967874265756570441057570079685445119615714630228959046870083251661136635424587934224933021062815604815040325535039746519964703465497574505686706821449943610963789107903811363040818075757589658610566627456513989230673513139898802992250707915873986221602826135431825837340183779363615781470497551502197992101856521767355495664290830266340646449376184748203851101433144940362052141898844933160336376590006152890298921687534736570471848415202680842680499852883344886472778248095866629546444930472816016366495739739599762395162860205157680566862029173093646192180422453577866727197165631273620489312018572332104128023336993584753186934574141530518803753938908923074461810255667482604599642802449882196952260817513439502130513197128249776522500709105289569744281951607715485617067536370902469493975156151847231655611722190394968875133241724644664367573110463698220654078861369074590994224806638168597587195048023244276580568148494673517835433300239022403177054288249042502009941279148250737925062877298460071841491675675591789726559753462997686886838320695788825907483584997107503126914856054978601908524839016911820680647047223377920443746961440863681865273116903812678937404258748129160316030833680408490444063905264430951956576455303856502047056559330924082061916555934561898489505303842188263683222553057772326730196759846979811682806384163002776996518369826271772532714742816972649953666658654559031067252769017976621281365424152204830827123331826898849890391017574877314229808806878161935756551556469673208676040080186760287530342205853110923983378944012078169482385249024752514789734919766783152038022962886414482850776195944537799664664332271009466117964986983729964911616986414763078540775850127376747856960752639131586328258768495709762403465502418819010124429668672201828636845412408178868344031505882445025059421273203475518581502226302428722572621444773090282483425949945888899361311662174568658714540734649580447139635487221791920391909287660413495182368612917471204641688798996539863402380253820225469002454190181318151925735791133995187079687415136004314574118703484561717369851024754455225004569322618105358343016281321998227506825046600012117752554900911425420542442182976264174449419493716540950382090793378954558462602747458688726049786495933295146289589603041162206639905008669890830462644914617319838630468309397102244640571612209330049556346452724686400788247183199965182207546832964985894663848724541636261420898086827024618299758937096405022241467186026770294086173244504628848229204369830281553816753680553520139916518947760414019416510324774643063225590429053664628543198067136264703013597566403378476761086674996583956933052081465121693793388993039552456521186398489030387964059334166164762058636688560166755997170190517264647198566198212798998804737485758130595830583716247052901943569010284353305278652786890328002536778762340861895413224207396926611184471730917617718033887744447717957963271940476293530640220787523031944147336547900189202707628100291645478391417178056431006853426232213628088138743948124923090660938384030353015447573771665351430105371415313524798489959635115919013483283746124628340637484295752473800686951343147020186534598062556957460929373103936015139020265482242972942589152379919967470680465746772853582282291849432293618851847048048241662425914435517750090629888435669038497551547356522837286415524274267818287799949010554026784987692112135844106416555934362508030066644580500371495668668269526486077588554203093927697341803829061644346121720207491059032787917363492974433810156917524149064430123340828593500502919959206734368537050582207237621992949909050077799822618745123109247559648686425908919980119885707014639538291992981696095702829632035699041694463858623014132855521263984892805393300352708767467228466682729512124933718080839662787521969276363720572149589955958902448227047292305371035403897397460369251681691879488739793126711578470345122085700304873191008169695599719564554763160588061338554340303054064075587628447715235375962972769037897177582606593348316216107678096478870042099484435307150569474019110016736051603412837690836431533447031213625634886954721173199105712910726523469074158873027308201972873435635550720492409678119706069467505845243220971139771273222046439625903297763139028350900584548443244790047105173673939432910551390097532880233354536485504195122931077424973815827701400967726177680250735395389382820473966358416299367184133550332551316867067462892445677939545854642481095015433350911834852371569343390905705667041761785718127198617579949275065850401972572203472612871078106378624177342627245218003718357582106408256349233883089576124627839215384537936082747076830437967393755668980373042330427692938452949253672043726221164393218802043611489812282708004674626216530795580097792176228138858310347157556258766080672661769486419064520549758219065564606707690843939244056525290293942163544996455564508590318013390720553605603544247591482511620209475396355578367421862798209681773011965138579684178878776616524788993356046298714819782693097536936848256818363808779641988930594789006242022821109007192345861745746910047733954131926448094303724828767917210378836417701937398493982876083241178946181518386961854550745828124894211375168364792374721921112157956196414478391120115301356048144836773903333116435387155796498798387972982323888315799094695818118266827336425724368308112316023468909705847186950690446001888598238998817905043033331299770715721191820157690034300779512160145407402483268101820270301067965461500269493793006970177476578917427242845832985879240837658223015332707035890416077702749037832970586840950753742215670118208558604754417163689327652691568268579146131159961427850137257157401799126012054454974053730986634279017984706909322990987266251703367621988366422546098163520533012009886744530756624631644329185286822760332672484871819808809750506479244465400750381829197684797493850031958311693245183747276362875100936984831553633623065932448653510169443316709668199913724321847993774160146494064206686264581217582373544132346556393054429238673784802492013748082494718226699847017522937630881583110016678731373761553159507601730563270878525606514003206006009282534051424305319373222641302255204358720286253060496429209320978841300783530561868163438807701237543152424942980724885562209913545704708061501972735644176241810269187151890130367319426417124008604263785950153646765797410771703002864170285688865691542186160715343672193261052123511774714676648208744190705484439250728487255032091805542574624752767434612439587424528644376695348620138967840829917820076686894622978763750380799042086167344922333808853399865902896432818767496094716170303734844478973417434778129394525812792849414567457901219432579828738996952581264394234760270010586717225236533009499594446118513238117856436720072979655393855061422156631066637075098583548745592567656932742290141292447530744713822502632429566869417386977499778084697757769761212122033080613483237137493878953253301797641423156058684822804621443358423653907543348458306484807471581159905994702617759915834790620499969959165549992269797461831061885401022881369977953551935494029527952050987655234261654739271847717736055485471827214690374284847948207464417543018322169018092006804988552670681916247717462724732586448603693444268022605954687915714511151108630966366917550816834068700671101818658772141037398913463110927242835055808090925072758221251727490883218611903926560671811514084355553798636502593534475209100561758008881793301589770735126883085552778428799433311489067416320479902935226000566920841744134145397600187575027473303628730265762346610841279251577462896339881585313550858484285756716355525864146723486763428366954670933467083223607954309602549163446817147179082107761637531610986767570774972486753004491398966637772296294939108853950349214841028771744544540022796809028639409276286480837877132978300226751262624495937846902521427486125545608931618995080936453997670009797170998454725940914529634092427734321148818077189800931167180704472731767323811339999650433107520991699624184026792241707639265829634075484686187908310825051593809806636684914346007467808458575487791604937225573695738683436261078745077668158261044598244509558696586817180438439357706059279136549571321424740697911119372788142623970773720203185071725624452697004745100154270133204265008874946591709911503018092011943722494283231714732431265662777474077510516172843239198657226918790434891549098933532828848678107621219260205763778955181440205589930762545010710341514971697243043987243826690652669397321633669900311007526184538506171786245029497526077067315297943602350395184974870529548122487340583489587038167081016605113637400006010055174603705428531004825362016688831844898466301005015985210001397650154850124436196982882831602839743399817378100700697024990715249096828121549468587049240636513099106826871394299881215707504302563088643995579619894697616929997462839351675387577841705081629282616526353427938599230769297894820018798386266825027209082856510223746464131167821327018024982599105687110774128842372003993158876889212372748373525949816697982378346237794874288423756642229703011178420882041337440452679271117968662712044444046868257132898902422491286783533792634731706033311630586852592002294798262017581172867498348564124404119837201180458286796655345934760269574351710467025010467553518277457945382579005651264752125693985523343433172793401160727250825091469122859554920301143559882041347230819872040006927004727238054318123109571437910525148280419236680087300742103930143611842309360939748323550530341278547022137569362601884448978709921881655833482604373684923017516710219666825204918466720220114206402592005457321220020889866545400664567509294973445007311373310530390189192069247284395402874361113539514313787803040556126421023940382833729541971557699587941703884232084585546745237333263233766948701509617013253040241609004761898531808079981430685776897223502559608475614744805670563480449548193892007154363488921119090126905719167443720882688594083148193349591836037820125081953498009967253811882064708972082311052692701641882424657030148289981598548283546081922746071511799700299106877379605577498418194964670096269123811078896993560458401920563252506868108889881003154794618690923418255417966045192476983931685876055192920208278851124473865459799002976042486812786258150618004037360488622059941112289430366646765744894220541689417502014275400288545778412322401950270908012518695593809004539167041076584336555859328403626006925672022217994715649503091742233831958439145073453517948304950634737872633452208480597560706271423761814199890310815363896383162060795498432189164279565989170349360270102677064671794960945689320172968853173486972081177049137278855680277638568993432529719416043887210234580228729441237192038066614359153437418496476673171155127899785999220239922942837050264326630471560831173497125360526434445428306716114699197987883970511267284879599559412006622613880248916928480453376525625770482411046712636965497929315234360288139210968281520462425300535537273101353880170223717925816847514633259617333073438023312274499412786624309448673476767609488125089003893862028622615975123674772193154998283235313863825630043124122854878692049366581282697029221200452402805652159213274580953222982246861521865902810754587109923703107966999052904117892250851099027293751123443722572135141342383613287096980403386274578006299285476062953778190424701989755478016551732568330600987710571573069305142168368213986796176034890136244772494236131263331913432749409510083008250939049164701001460130772244562517858646954426392595057194920986114219923365417474471878054623065758765028157866285533229770165075052641206285792940292386716954893557916121257062119697680748676065037142740746893706570338215814218497807706938940622109026888085482921089547029526668918909690034141132043161327736492561613648513406781021105502260405850299465444475733112045534547992692153989668029792597365538232252784677646683960439782057438749377889267137570606619537440207077928631651400563206738827735600827178585772744470250551674505369527571751628273793622916451988382756966264302671733228919676208546758133966886145622358261516542731781045561049939022477876561151829088728029348572171753396096280651637064540488714485080784688045926809458447446495721594192711333355360142313015902988270817215607767709844809557201869755405859538349091742803497693148685374543700438655842597128355096201398232761936013417417964576863654098546446581116110092662935909121426678045347137931158742184384976332329717119332508255965505670010057685593950796347199116602997179269859775835947355523637277332094884365760205810737283979271530803532092838350327683250763098290703911771932672127810688602127690031633216763465371274842401921821695712050456456901808748093004733167445496168126367983249726453119693483261147359661013507026773934800654583460357011280838834232351533605127422508497058081142595648661006458757501810824021128914400921504695531277238288525486982223670945526257819244944103514020025992993912765195121828334979528630639560763672793958577078027026668423734525280964363537094861484957392589844333889397510437736196049990919010045715313737313635519468210178670496847165595540735748144091225576130183054742560415746605738660200266958215025235929189340405268935743671758928853396745697028105182571325538590802881273137398591320789743801942824486418354384675003019284501769929324945128291817067525169234162920123257425240218363919667438841481232966147927514371403213223983439662226764747116275720592768523393231399865187419415020809765784144218342458842161538449216140143773111469924396038121049981964536084449196309805684456340436170261456690643364258285589328495116774525519096501409896162897710979640137893774566577604266550486661837463715999221497591095932952418964654160248995304594506856737317391258226590275253964125653855014694694085572806258189300840117953640280857283754190045731884846897707203216814002482076015095075094867914106345261402854699273331559638931777847289089893733265703797749092615505575802102784476083686245485928836290074741173093079328604500619658956722717882005259904087284141339888352002903416163993871819616039549185371286813956570656693697153328816083929643196950402099068146207398740753255769739031415822700883437088017802174469724075418865228488240688660834026646672587148647654855256161161910927290968506338101982383198143808434992075805273614147186688623738574342980755975707803359710942233920018325000819256043316460329026907318710076228687466373722223167531908733177619900696706453448737898473435664425726709685612962282498201577247432643598025241079809572822185885943099831784202976161736475978685591508829346202454361157538904820085176403079794193188573049195823228776296985266053639133575602555871415685615484032194695739298248215792775859504474421801731928225427808820024607072087400195213635546623882639260702459656547724288087242191913503693006813616430925795052583364060211742152721647058991424062105482255198285141062489472251139878218567705525230770524347567696033430398669020237814511544184901900184384856000268002392792421789063629219077128965816812752995128925214741966449374843242060396918006679378440890548498530227913169456971256832963171287923801398938338997488442403876667916756559655236549228917375552795806777987175504026821293882391920752106095906386865428158201305551627656958523112524174954213098717654383731077253965233854017779782251808111034123466865988965369138092165446857593527419707323810357906912854017383209846889910943157756455848806085597805606402006284610858520510841336313750029764048445422093360985719897867254335639649237949719453940538930870624874855236122984618093985846891520333787660507114120442154661619979863596562349264376733135317547230440696862044304619595660724399838939483438853816008653767958966158685316352186151353049875365436129083755134547671237791314481682147745119299977269716425247146938401242008907706793760334802308225998056752527344217157234001447852733319039889898497269283845877682740574888724770141134578013613307322791099961870851863515622921765319649127594336245861432942066188871577175867582511069360218359274850284616582266845761653838726433861859995174988968163825454397931772688612458036235621849591197738991335557655433064719709755407854061357366053359445651733587772936627582517640675692467676644287673590414892609467104826713529748354434570488731611115829219771573769949185570851743530233103534960018046156484866349085606265389297192566759468071685548832296626780862675208629570427326947915389633835979457338554539318237998318392529169219875778184318332211997046366811163824704096601539020259496720877421838401406948906493981029454180168470983412609688979199340536978578401458452956904754836638661674262671635172885211742189343755767831763912546465185623835161727206951572050492609135660932796916461429169084550460049874841751660068429536245271927990063169489940103322941858838286022523036063647400911340732490223049268416591426131928337581980036961390229129881649458876380935621784442164121381690307674209294645585647382370380989726972554035344895459142619093628069082591107824144341367606465029912912968848079346757563068769757000138121745232975184354887795523892105827023161467226272498418249176968247155900680427925089689899102956525628343906127426308027782742782700103668980100317652734997836299635852224872806554003731352846106257840083228213830328234906436146921941822231201783303775083890983579960173757267256877732825232931527206162870269879068319972435124032908260578732456261796947170297473409455798646231638456784962941666480836582887416121913070232263527805225921354198252488770940552400578523676312135378832218641601589674976984006727044674692076522589246473651237713806995135666670545878204616486184851907510551489578547158389876613418156226884125581330936755301750848248546736330688073571958040663714648434692561433316508734838818402034702478582811327744034742888255045917086633545304411613106325916337043424025562777456644355553821009877369703330772954019288301439762516608155151700470283167392987188981817042537537619838475670134923367985249929645071498066578594751569040270908562212305344439033231545670656718197321489760662027011375196997461639890952519380664769520263631708427749938647643485995761703496772596832977408764198295357366081441334451382224721519196826676172828297320369943166377146993251681003825431720806562563550758309830115051142205274160145770625416466751089135733486336228498868664970772619286213311013008042105443242606685724295325414037669384564971987109683112400688129269767487424243374840720121662148418586822196473870221525726059238169418499722228289900302620793337040628306586378827482372895476558714949727140110904767581083146287339395800491343995385564911577039819608691255113722608562355388886527869191280177161657907856415114459651738488028247275339020773589829170553385777926986393136674528032491104159153927941516091645867325866142274194521042733392873960046389643497535867086294809290817269416996006360829910273593333649305516713050326196915621981292311325360103261667500420515335594659586142395526243286375883837543934812064790888834050663393599654300246965171177516141826653293075099911078184828760474861232745481338057498507266911159510796125528573612018180088149958472232718217200379336287611346497598786867830188561281478695470812588556398392134189156315306287505436846509917012302816188145080016567516088772165798418067867505151766829531030243610607397484997763882439324069448074948843136214356062874061052152695956979577737191791621229276801633518751841638291350629524467994758814670793596379810250223338501891218718033430905733918076395353179785107953409806913608300241835225086727397241187027691007006883858360208470241351941969851660372237799694767716409085444096197048412150250082330240727183069040692110184156851511978992759640839218041171251462198633229798745329062288389533403145753604044406294280727649873809269874488774648640388439486465200074589446426825147663395572467243847544502710868215621042478597954335477395558075586956651097293009858283234778827202376715792113735181707325300004090895637940358188072313808169443262622342930599244988958727668195645918581263836069993247000057671920571402865235474110719850746263271483814489117751945049998740635826113573368955680882448736190315812864535909485824884084729581407022512213942023023349211043467489921589006779622998169821163889028112064368669646706615909290551116988341083183927631991284576599684853157886400007195079408964591619144882022812421265708179915840059640514827728474469763340229805147060287414427034560644425801344290390246679107399642310341304196839141850886921208565669990437103157543753750377910411627192318168584602343842486526338392629892497385324359996159235433152797874614116365850143604609167294166446216120550373615179852738304223663973231160734988120626758473191498307666633794599369022721982971994643422984703321869265502071689044385601779752207769855204445971482942000538295493097485970726823194634881759333721264840070397905772066284794655182260453398588582699885423602454349198132877493960298100213340945445280999519373646930342629952792568921702648400547345548224780925997770757317804894935092593945042548909268716730879654565433793430908037986780159571052939088323851104623687059754139815327681090213455911987357098208213872721808919886316327828960737863949487962285846461347720813475156209732456468462282699400151947583583409064480003261827219072505313290549494294270477689593424413777008272366082037969090627850569181194417259193784317324450441210517713889381369931762413516111079932300751731829096674786311532229658277349156407374516235915444769963737333350469294416092599931667254192825136090221609422362592313485705599637916565943189804921259198038991587977353383244853415483787339955210520135938078903701644863993371626653689322979604244062622077089587453420839195621711907173276260247951003081435702707217235770063262943600672439869114008283440924161388613911173026106847439741859960061110643859816796061631940267512307882036703266512495579867593344567568618474715086580187317691868334934317713360169988708373124768194647299729564101917306905710363158133117036213405899822261758347258604869138060957894066734614851141626581646904301377497490598191978876875394331342928844630020861038499541456998886244114650010792065526795086385960606234141366910936110930854889263589937222471410593604271098435956350925063980636166894918401587009941435977044861255825295256280551053324036786524671791701621291858374882390905628129690138873334019090929891686005649839363222103151108854038019240682873662296820918562903576286548735169133097480311771298845882315306547143165654863551186756477661261015953746021730283607698051539789573530781360005264591313214175079907832996605899156006914709265636350110090241616986330638935700398335699137798739415423703791663372066285644112778969136071451104974646463320755001138417719035395731893387905898352503316340851944638576377524322108223591151013984691603469856093497166744065745468243892485261904124200090107062534024478296936205618797668629977990119254059135101129401103987166079660135034190628879705170458424278598149265921349964014672093328286276565336587484257552315849507841197116227406960995004612465462868705485831166203757667883908806259614010273461649089881431853802420186915471737840344796459744746653638128567716498629844833131559616192843850353287994647014466541192877073930348299963832082957967809381491858695869160784075873870328016475786224078201331121337112659308851948232564998061266012065596439943944100556848829935191788079002519514580852412142475744523497764370894230654469527765178654223087093619897318928957301807496745226364541462520222038139900848866661496550807800695021493465634560347134098672144542245632639861152896031277491621770043951135120743421984475510303610510204779699932978397479433903750226488688717296275102689121994718726259065580662587424312709104881656740456995484158546249943218673505956214223082936989180147365711097063864304265264975905817038814627140782598758713608860674163395549520685627521615508566294480615323273114818793329423169740217751658783915133305381929568769832022760337258150813592285125223539834330569838210509176161754555709512365696327014693288817246849601318464362554157403086423605229328101602800091092885730135783426507422848839573536318554335406550412458955921647076855137025618300442277788723316987407413746803338602786029878824333696951087343351311003118017571795618241820410006262526906566371788762082874177643727394448913891993381916784788944082218269497079179114380358064900465094091396372959701102857653047811156074691865116058221667505457058850479183593966196811509841839995068697548248123545505395186602705343798125331327490926872210846775300152455933674750002596570637689982796716215759790447930063197209236368430023219668459874645347523908123061216725847917153903822859385237670347075553316712045600564928056643552225438030819898828610488996367642266661784080011738532840657576771507456783781270778930873022927593054365791111558858592081366345028949371581530546924121842546410309412221108123847092083418831897240182376780065623428807094087891189368350754360118284524457486502026966448815667388186098776504188446295641522817319436107157092797294989953951607503333095864187897494237562934061538629941710713901655251971126313462537985318067714341951128490538081470081400683276578433648390070810814423771794899529467961506115162683179545392941097151219238565068836802363496692382889438282766027373631745407023520630322525791737905263906895684492241556107849485344239328355453255131086925401969418723261348557297627346225304004517876327387576023094758158689568446469033097269117693817085177152730152434657147083320476261701887317956604948179073378104912467153388260169465810555918294854982667793532706894054685532767988438605985392691693253157936472696349299631282917885828695511439207466217004567550073460825865197028720129062472441216954065748286923092218591292856415279863050011402710165930663035873622499238272878693247432531502866332043643531905039829321390330237216650633229032985675024938580772974471651703182132572965713962321518229853359296071614393459809295953448551918337214995355997426715611723396300151899515055276230950866249930106188705697682704049334911556261390540694067102790465084377073500587656317224236867088707682124236122027296880887619033163611620380013248212106025259004287164047102332662973929969638491764877710694338451075654369414198219582904239446049145243135311242885527164419336775299286367447231401781545142703858851028448431520780041625455061885783353545592546028511766859269853318764704923939970463151228353163866619972604436787903803410419367613730378719240429839955330965285844605455747851508776274661619580468249785452393623870500853685172677076191107588747356457653729213093299699436469864537890717830808329308076763392974038802936195402549063844358975054598292563999015804971823361358664384522232998180356727548216075402472684468611186214866230471988420330878880513784869201231299576990281519340143843316895515599137991001717144852412991715833136377546956291687509594411619314824651466733387986806548506205392787510918321627106911836115913320320095148975249496077477144706672127295716687269180604061927847412505920002012235715263156732862538829228654087438003414997742019933219425026389897270727686118672146884697544062870836619470430582108976774841268593321511016949328431852038390713666937344098506179618588219195454204984159912077614553488256325734453350427166518596093105228553237373775271841932055940854183791981441927313505989051155880550832151995333420843190837524929558478927512612139775127750225772830468485622900425307218721119948609131718104183516607830554476073405840220693406594139696669033418664453211470788433507049353744040239928991139738601416709143689775959577754286706010102616598468647800475492364212373675299545635983670051294298864865235226520539119649457410442503386935012445736181686291559103882177957507150623875036266074977663104971163450542570514485760433512360616728777343477102182255236084116641364325482294535441985109905812331459513807035950859240186038174929279065429772008629182712186169604093245399254529679175103900815589591505921368283416749124817838981307608300898081203944570751247646700841020753759722700486863589686774293207906566004702633128388081574579572331629570417300160222598962761656261392349863672514881600428010285758260634722710517317954607919675921408160599149464616611607303764253847815695812725971022853882097270097766663344988513420045706000186878381684372726284271874430614904581892334186375088380496745648195179780121812199510976635342235886925871560514395485205812863560984736860651553953630061605720396540785619665336158531761303218287445764004591301161249345764353582523284242755692052348834450739556636587017929930078630441681869353090162067152132908593432879910153079224010773350864021678098893694525545678402213125512994909235737410063577874753367754300694174792884256710887917972916049343288644211701682868320295900745842824871410367991813870175912803590396268315491440242644737574111062371177072994707519122282913590284273812875672694837285379136033311802950492941082252045794368600330932965517870653405714374743347540928293644082337760144546283437086289381876424312597018601317071469241846719619986556988398519047168009031542450597770773864865401273571518057314697466137293370831716139356529633541881920893599985743730308148549894852459713601766144175336203028096300964779674869321422174014637793172240424705085387476704305285277955995108762149512658500414068593267656023115095293614744060135718760375308205872044779483136559091263868829521386121542220670841350335953404065481962032080959925088828414096385167731619956812090798720995762652034595574246505074273514449167725053472433373599576018204776488313702687388593405681534187665873484774337663220798652116917607248268389429404038583398233197106984491755198966687133242811164592685691067501899941391562115711976452787009389331783328747659539556467210738228492829404557901570244465158288513066757478721479288214667326494585357014428141602950655201147985149825950250306193947395467549029582399726629059299068874309782656356903236800802972030213948030582417944854930243708749190759827017904889623752036543091122757602805907182605200260553662446919031598444569135358082431319032930975425958537419698115651021218498890205013267379468143542520182582342481851515510974827135365894731405047467597317216955272673534534284631760224283533344369214355191017291356163876816509745751422353337030542610688149449417051528678520016797297865926446433368931783761024879548032569999763956839309676690424262281483334463008705922876668365027887488070024659083674003544598109198887020542456037631477578502710784370937733435455739643661593717649631815971607121780322297235269996120983358452856875145320377987983346967713777133497267041617169534208310307473060703986692798008293784315745081712938242657056789339641095968129969539698093866288821790348631518053967026150701947445130827893454681520044990618641724383837465306257756817579747717030650986978314954691078586242687068898852994957169344403612833480464605404392820493040010972815314024697359034652040312141144028136869258503595710161724503844235738483716414625283696746291550315922879101679385538398905613070078388740177261340112190790084169991736601374695994976323926704182761456570237230514234600140746541466639424413200955197332932950513860606019896852456597702737340653513669886848834187418950876434728475450399669399095363221379641286825880877426030121319166636657870060905109605476204871139981697730149686286469803218592453689669831198757118755388938493540466974534947014280978717270784499486174101430290980078201467740226658223241573737818846041424941855732914366942219906311879012308999449209733555383674049204102230448838831556316900207980270509020162538828928559350603080902858192627200078851010085962167617562960595114208230328407073982314188837206276257033878031985524072342328654216810964883688609756375682581216737636276228902616502593957636808970677818786471682132444706065545283327294863136346326966198094315366428219617667070878207149981182974211038247925622657578124275334966237901938252896040775231135515658421577811960454276786790114239395688886484724280684509781647903804897489984173120699682533713847344380543769083773802659986884236447858697925857331282633074401453659790861027072027627884818017858505951274476815894889410904113912863339879007391896121144723141034220900739475743693610224127866295790039163426131871106470823927861655121858526398536325498417954398272905729761345359585939198468533990710884603730125552236253894754621592773827105445348038646558791995296645895314617548341091501733358460474899490958770410086875600205326257098697616419087474379061291433007505924134862225832182719537138107100795645000387370657394039774398223172314405351511984518672932748855424891773531320643904803549400310427236293152771013258123242093493930083402483443630157733955774706222098212348135864415626536526671028283358843702981861997587289004240079267110558411166001234107401916683907847146481252328953387491098213341479179742383723943671553333342060688363999883786937747027413833302177842389573055428651987284228588813715595939088540291710332840927716644060222173044290874999706362110045111076173754650267010445271155469228435118629554737042375616846669122335761001617863467198238519817296721115224299883326886239608651805609886090639604228714888501905646820477994503272026879268392881114322253775337536973285174315721099558815703931123283837416073157557337980658803743608863357734932747520536285601614486741215315442493100905034104845716817277352477418330161752952645288904177687101712847224315600368847431280981696532485819170791436091367090130649113531789115236020002866106852675160599139372921541951265244343302910959420770319375520206743128062538904145316695983461333183233886932571844253759697096064857482419951680692463413418905008263575792505969380622884811326191475007587129968240256629927959322308184991887311627532684247437919301708699390441096978653967390874454065329529359836943541086016778361546562460310084957029955667529494209288235923216969220427373080685235214299454783975894228496169101047197068638084464574813577023185705118732955581219916211526959685972104279893758499140282111922796686169797612837710299971882561478010718637153134569117858373045932358881388486772160515075406622508781500161827631681579195858792208838440376680447187283679881255386109075276434096647953632715653801445947073386351385401903481412233242614715115100030822601906486248925572545972694665910029722050115677737818014921437588825003373750846552084880733025060445868241662629527052471427259375207527114410416703334212546490330166577333389914953595648877851406867337453896021375113233418445204355704201076532135613725391938789185930744479424327227925163773974832573427867999352663622428682558200842940785533480128008630499985544511239252718108282298465146432842146705266551466544584298669832579137204013536736005062416421143802489717401854614285928722426546644057338192011277897142756940182436675316145164827560295818975681813438113383969039805644823947280510849957843200580526596825112089827985162207069145299880298349732202213433205347720004814506015200767105075906201736671477705674111575119175213886145233338752441278661415241123303702381799289304278136672417024410912621329594863088010930931696597503326026480510702465085495919094802614581840715246434494056462550950265273751116640132345415576733267477031000484875269822254759255053939673965649043040121317591886705946477217322153618826127063503831908682075418935580021166703282132382276689557839525798892359445091639362340204934641964174893444552592255469841432413740845540527615868600425710025430195883827135901045002462757312109224254970972565620089346631403395753724826330087228238316512513854173275782262961614705870388316372717370705730096300183732390596780052123086120032656081961501027810006394373011191310245257091881298450049858248410032204256873765332697670141721444640817137044500884537164089577008360788732031329276430027200516918007866260171798737568677777779124898799306567796796161159592011666041237389753927921483078493167238472957132230368707447333019083759043936829211070123934234178635701830435278471950474677123848206622278936132287615948081601128906385638491356729707831703194455764616306495959666470742387111515819905832166426919231499108696841650081618566213278505947007477461558484993239280993657721922532659748837386124530326263592302604107349564070420116810718087482191081121266574282131469365958381431498998322981937419444345079502929779846831471444991315081033298505282387281297002146675944797806250612926387633060858359384230374318419288843166001075080779975086830466223013889533129841421620631604114425766077611277781492653132687199281351194622759386245440766139968594543810803157751786149281534872613077275584255748192244718892175188474388340763398083674132406570879449033155755369594940812474580718556272230882726520933644986558120259972593218332682566446478631793254175496864374006922241837632988993135124174026298161234053108519530308307268986045551396613598659614292069127576083107812914742965285473142205083568080968955888374455028971404029217390247667369273259876212085419240520382687896814549451960478934354127469439794763654387623701423868105897210273697669485071454530954121593249297093161890950917218288138676136583827515582492131559781415064560470477156204674450472016370095595569412870813028621799415596016816587440618783269393980199841833399168258035871714870883092881649248289389306610952374104285498599706372835729797721369513019868242732055288231311891908729138115665394551380424417877412843524038361769943351581857005308975092631805450057115610874835423591925745339613915443550398526132590071497641639690404011484788030012309408325569836461018969785652233202931878289620890469901423898195250149688606449734414194535610008983690589601052283604825778067834892280760108854966559144385383994558708538111388801515531944788125259767564875886802670053444572137995935826340433843123336900269431010823943998775838598909017134651967693557269874945475196518487788447789185342289445924337668579426260413022970941731207413071314278453212991525097924246097677972298959243615396731227124927451973385371016653732345904578305702654355675027683060204794186041426796979666714526003410194552545535164542278979081797765048905418244700497936375804704390334833553543877714549852789186559372441374015910856436289298589517164933106641428184533253266760271717400294633377553671675194705856956439477631217968628390398890866681533156063607243300213232490210709174863887248339478503916007112007207833048197674252275854321060554607758511239189858488301879639759830013422342027211814614546449833256280788831701440300876908485553357135475766950448420021065667909899336834043472659650956020254699107689728760747641935663475014898523735753914009582343331455192306234350863204772393532109580082488854907499308200727802591597330734020401222993643428521620960830830793957909380032406938554045680343742588570837528848496486161730407180472949788340911435166667403789917197103759852449846212082979040700594910275497343412266064549209685113941987794527728286636896214970418978556233668471448025649373986174808296751073759903194309723693642673626192018293049539403823324651705421569446670654784475943079283524707298226254113796896880454961972902677869012324902848206929586806843772798196641836918053691974112868303062865210940556047771756127810853537550577374726379534258187734746019883027452553326844157634739913037881309857767127648852582357629960074702096153215989391257996303729517726244421439254285476471136885960296971309161106563278970663351346360089372907042830745430375725706155397241594798329549109476676478431131919150733794426548601860917216434398090127976563439708766536761624006911936452796734293662030930636661948361831295397149959060289079688852004233872566035085506592266394615481545461597089808485575500994161312590137404962513637248706173721011126736435222651954407803397621807531988101646767246030416744958587539967646315484118594488659921871132629061397351252264087174917101542417798182722509552980160938980421539174012349568608127291889859094884100043566627832826032744915124339283703640412208840063162009021823237356642126407605908894575555076643036820067328559908996183738321445589922043222982231542138944448936770438628845649830065905000280497952073708700957546708900604362024950150886563201454966748293691364723375635266142667255192497446938626994996675740425798373633038110028682530135282519818811759761446890187338566014829486342411837334568587097953806872799443926456621075680166587672695319418051976497849930088198921029690443702538358539553297455048166487493403014225885738065979932413073904733235336193619339063407826898953090365354773659142421013159243346244906517154692761516463882012207172530150551183588253403404290242090797865391885087298930041680781836126198121623315954872326002529015184065884053569393744204251844788050958797435486127446917922482250280744016841582839449779439574062484687264798351508370449293170449207099866007311151841714602762557142932006061399351302607438360443146160712670435909215828385563932518896346531886320625364246297675996534297342857055541741760302688233179929028990978607636767089479446796309495468471956428506752062052619394917866290912248541161315456100649669744709919201024611201817137022260680090999548066309397565363173433337202975038094404978598993359702303487347941325082678181369096790476763401211557751591410171794050874467479538457648366128417274019762046691212400834968001864975297657705243721585136144857007875867146648001605534909148417708704974467338180419175196837900098408044749972014460298679844365717796574478598678229023745348910984623604185962691279631072723601080243729172891593218712504742114283316007970572381803782562178907658642019029710011666150777650000734098730728923877314744057350193483668825583000875765204457276217481538757476224032327344204892916960075460636696719431597059506948603122383303515650056359917309810467052925488857445309217486048614959564247684789022849079120100774047207651171463371136704171225789430260339146920082007882514553174419564108594574863781561165310695701501537349366803029360751585571663950397375820888991168783509055214619114341319033979731245765634437797028808237351598150002576922731301591737198628374669232773350290191070473978973728758786601806581509224570899983333331205671109868722782691285855852041856328257544345317725618044243745983946566887830939694586957841068707215126530982606729338596342668346036962078817456058630173865568339571948589213993367825739602166085411134357703463939103772666662699261507965810859842211308623402052702895776009633849432964163629684390581428830720600613110027970912805061781336129455127370929947991900773849240519758759381068449299543086186786460125386939055870420655921509831697482086706837567092142788422256682705301200519158779421903241603215860650861195521873423281811044299651457766076993207732780087142774642999797342773668815852861507685179104046085401489520761209468975991310652391252216201457665926588530144531512535873040890722953814156429433204635608398850865959590580356410817814115175306609125699043987086610925161629437042961637285689509826108786338505431273504624149226379068469889628625144037364565429889598953999595519515336443804631273716610022575918878516821733056473098872552294275623036491234096765588083443744139309047314504947587640765455665384793936587076346564268472261100638631107507040380754264192390050761609958098972510851834676350229538495639344860077850904533885474313036628340345053883793324391651689060283167275792635050321643451650465446066754321861302630727888952971459423989139808478663769152773724585980743819323565806923290989854750894925516125960061008333265680519769020049738277039774908159902624087183507819848018911376607289735527244423825982987780067135276877977141478252834394811311590650038188837513608329691617629642241718301794683876063062040622332849970611189362694803284618505974809267688121778904448073890160269667289549542074317954179122064478476785795249485970961460771248541549092486752600470816245776335056895200861510031605164671480692184540238585743891193083283406083790997697400230218228148981345607995312435524943770362594255210736682150707870871453586244110697622655425295418752517760505915805521482661390289727361800800131414044118730665480341967274899382639261590875813753961623453921893891299518006334940141863895580509619242147504305788033872513942346109093731468657120772231918668288408328268186206944329919788448528514906447699096441630652933195290377398068055037052464842063193843371005223153193480438607359796097498384904081547199655132800342953181438857488794372503886451417737573411142349201857863998135574385618217008633191716659070478038025833430420988136811300075166122709422736660437157466989043417813754742297209194651285056231631832235903908633443640928201549350700559057800642834418869874876762315439684377034667977945721127786694910821969869202292877928413138299324868514557247274259422750143937535536813686145546895615286673390292011222843059103560686598967812712673000186891781033691818343868124430413340673039859776443063346023631766716408290721448378863215642594220973576745961189418679462304579313594841794971018014982729561914786746368917273949926388909587559640424556523422155540946342658546537171285652936783056506764888022964057648995052743003241051857243964200662751563641331393462840327167160474328077568221430703788845906071172314759383506667139183675774140970487310941179055404308125676784314846850793873873124733814917600563383701088776728084944160898738583631963260248166508274947783625614378951538041319352503196967221382139678759579701017958294745545836191289326118962460775965285291456693245957429029341326249145299345027878187518960089567287833386044500177438677561289613745512386492381067694881438561101243174286370596513681320055843983856603805730821264281250062993012742676206558005233669015174686391918251530422032443500981719809532628647120356601001619980877913016940583564956357761500046794570016894315774095179844053309611405572162348856426047462066781688126604850243293879691666518631323064458338689965271364297509791839454496149669275832053943692981136211722051570310224161295039752341872344248023016986514083748340653104055658368584254354553257890351825563702217731254872067363846443467469535095533512269276664473337343637758287499477452694659559635838965125512045921260794468441375612192830059746747710854822877194652032726335732814427065885191807937700899120423963953342518795907871426499906948972083651937975342739023175287313080597902678644629212219122990287811942234880321443572750992836743987497425824480242189787505553599971760497677671214692694760685433705241293714162916151406829776548983167868877844237842708347202744693219809796508619512719707826295010155703555643800802420265249249378299977750887180573267290982649504939077749844635273121382070912519605023704248760116395778676072641659587252251135387047973214510094380515975908037890937765495795097293883586905006351000108889805047893639628749943055700335103532059621327494811398735839376166365585387910529745821470133425192893227231867115685449857528359999691623482800817980099666101503956164242893398685425077368994284219479502203109749213091425715167405389473783953394873061266234706571381529844550310655728466556959364279773759700270366407960596905171418438954477714057056143908204400211020711111130200368495452367454646594778326206282964973703139682112716647352323164332407017449117470018421812797988966316546313486796138006542220330786377555799804095215394400818840018320450214146254802059666559228990372473354911495905439113192375203427527833488442680073433239558277345909913088576112608000338243303874607429532960212933447126504066412994049277437434544015215613059303818833105856621839044525956480982959191211988534230234879108238465303383351258988150056497083362971768663255075818336299346441861225881687064225958499433560607433114461800636020766087497887837498863086174622057173537768760656002693563591631284459480429487667517211425642656835999596447928117562243952403841765567108749172029796532351566855406765092218745869290709886364287592184663448591091238938887857581077213869791217636941372692070822630680890003490060982690415921550168227940781639213634861099544245943549597921616069765278647541793299986073711479192373492486228327946963435256432898926546827725768762035050367470381678766425333079051296941978638108229132506971237562860428999335556356548055380318673459995775120408895550484586294370632626444568769709026519663842436955687461685688586949269583454414272494893066404371394158790924612234579022019049691137828867149938699679559108112167094938938863197856310447003932531410727369548113426551785714183607378114115001452437513990822155866050591621689951460675939222583235153801792324212041927429079173796271249951994754487275856079822171989145413732471989118814654490340963726624934309227373410737763213890508996508610193137987994056043245688906688857606635887402335606629052012060581611581493778102444471558087958552263078817420101400767288964951788349072087802519300207751931737337950657320352266186785520509115691494986502256560996026418532696617104055727797118572811969475734805693433546623705468294813418234958025023394621923744282304903698027069478875088394482536456128443821729476004458624805692750352711892396776045716659779169572504451833173316998491476089928197816851500433181295515700105073663698624671215999054151990367222538055828237245287952563490916170402501297206449387044796867462997659003497496111873268377821212303085286618543277673969883985736433919482083641128496201784937006946785831866476275209191073943426788951600136169413794385671222332945306467779909536012951965171619822629408900771884389496582078125302719661992618826004395203793976865043469392810206239103173652314980637029795377500433184356445163485717228669330000246884396649549060631508549110508665478091373483853913663399088606824997052783168776185053001103213136370893059719966560489097295454970664423838066873085747575680461541641213635366711886238270485105497651016369360508232690387223412708048342749559356234527919249405228605893026382746899922151597820945954809367352630631863182301245525873263387772947445723239217620778425735430071264006753928723789482609941014324194688897439233077629726716692661940130460682543070169741086705285933438629720577012935031241668274705622421062098189434904439851044509397578121726449838398152604053376339606112668129143705886910865728079596390610440377688574254580622109815619957560928762901161070584582016569568361166661199234724905236985451402129229000236357745947681557246617903577582163737684928744325597893595326814831014795078486786140518019912493343380385775039017665363662969601769718973044904738585287800529220714757290811063748817716446620764166033406492744689437193271069054336815991363834013265548843410796191550736151848960187335174324842753582186714083224936041709225371068050148813888761871259808214722855210250031013066852530139779056727696821749602910502732788155212870338687972784389445549171040383454146251991416754133623481333779403815424347710405962835433199606531499635525206984262153423372192723188390990361729835740399528934807315413978570685730176279201175600646884499074788147265802643417348000510432777756431187181066976375647590152680358064385692024340555479876412927018757380957255900604400564924095584309359149561096904700256355151467769123557417272837992922060005679773417699449587704680220480894706658112487342856152570358788451720045839415665453785511018738429845769352753046069647660685576276297505655104465469695469249381395071624712675490185137137766375973400417065870859943168920088609912752148164159862672222867807192902486307090457381718521230731185632053900628692337243173193681468091593097259969945518240961260079681727057120930829861319025141388273501409900658373265596858920855763738810283998529189388118552627812579658718290402118464617101986072576751846076887426012738424846183425786081455505915743305768806287123626173476085577640325103008089145079143785222431425191438588871986525440684342577589488485193340963974302723859247268232580848679158315708766863958787300474279147914048811856827184725321822617736862770166237156185790239178811333393805469553038881930153295937208265431842580409824113683222878231931934854209190943843039991571055078167939427193413532606493274948873539504712706712925809079244407394340763365943135892615394995566315557334171022687199179206843428882699311873432980658054236912661284607854415423035144322899385130733953744977262446197376634796615022549710224587089101453439615133452906352773171777494314891845912062228258470046531021584277396734924717247175688423754024715996556337033532985773425878872140054397436159938033201384192217934270229479590261913804068990347045610940752341403808053778123725300906447203000761132492622093383101377755508808501405671215095035229721237045567654935025313085840978909161466731658509001536993437050257075899197017849208423968099349889386012854513099473867533479912182110052573368292976308236727555121825765693744385789594104139962428526171823701893119574850935299947019663058130195696001292643058118442952708372043816671734827014069551356633824939506731953456415438700112024074781858732561400021064831537813186151422597287303819005385580490493708655957433064660507321584700448330520736446322560819882907949549753064865762527378101862710755286836127983775831920561320394845372302632567996560746289799836131107976100169302047291008167707709234817522369230766430465159976438986505124814489309896285906031585229596652162203276373144541492097022455941155826599618582203367838846558804785785359361661590834630574799312392017322336809690289997708534487536593626013993648476099759687851638020165508044892861758552946982681303828574988576890181135601177239099431456629394835712574888489528424389414342657729900626505758823964079446814360621093330309224540533989445907860512436040043846381574823448408435968912750254432846265656783548083976935911043929286764823875077047661464728728460739141658169686246204744918536919557932247547782957969675985915183330481186266050339913144090510002131549122413673234010813210062177915331491433046362969274821424742440107515072694964188680166374874755546206008131908004253509592247768189429762847485438604287514788933188306544571350905878064050527853459847047097443153684921318047350723131550786464493246477553183760559496424014788164514506850750389122017003680773323286053970094615853581049735352954446215490232278637751614220555350284723336551060021754438485210027313525852278371828445283840739839815515145783627725086573692518311315543145204497350034633807157128515975996328255134988764039377773731208689899236885417169580961494327782166305601321153837556777423381347478969313656385244887371846648518772566362847258017677605118194803469289551717981103877201110288247461525456691934760907165900254455143321079043165601986099283229906860546337072515023079287368203602539033467001975091630795526364442658594351286666647262078369675584590219818757531788004579066520673457524001908153561334989790027207204297233521726280275291583364702433015060834401992686070879995634786994789294190092225870583683066525843575378057482902235655709842524530293505185821968198491431211378400594795077729318021217400609174466151876414977094474429720140259069743858775039131015661373120296223740970447533504447588459085196497195631771776626514448919672997200556884842400067823807277800474507514997339164443251335685463895834748765363376512745252802049268093479932011184926447287737447437291159989828555855948427065619724933217242774395726754500495070648787370955349623860978321311407352891891853404251570485094676764495823437002557331287363089830280800101103348123555301927718109698436025802515572830245391081409092820657575840647767721092251925313565997382313615451515228434411178190086824585714981915783614686278784856033451508972794038102035208510745222053659840982468487435918321803448474921432896730108981345467269191161696500099923550823969264484174754628913778633518606084069795546587560814910769543575575765315960587484156596078758973846884557231434046008042573181631227246848448215372718680725687807927000813535035507699198503220749924930776789725655417961962608840983125201935380555032358655497134249514314048244311926582375062348962873003735283125769807559241968469906892905590298547311422788441478357704491126695465700798699026525502148948693824002296393931579046792030678825100266722003122069311831925013377896393110173407842399740662332137590450840546199217720548191398891441939691469302325409544238644143893056558141263730880441381737695420587181772291836966278183498158973777926941070382789276008216749508537666225906527685635362212224337382479572914095769562169121320054186306539514878615633081286914350037052972206289192405271248549231106643376182483644398792740416579242443073921933188289745550846827953546892349895625002142764179473773097153730455075115468698954010913296828241584115458190405543218104386442283268266927571215647890559313688047034364151269040119780630904358805175463610382522347292507938867028940294849064457948076994143244529543033765318167760990589136865557704974014239126912723915985579847361479665124839261656535816490074099027491336966602607229884053083731206671384793880968590482091535102332275600016066252550002962251529901030910832780870901731875798225004634397327123398816028173943387312345203545363618791359813862705572552789429797582850936205014282478878581442964886678224096888814597634614672876401686334235429739706548061900952174796565954135036705535248261878052845667844942223828445219597397768867774754424014806865522929043300418512610930722808698642407825042875035235014602672464338581640779200906642262483327180279497849767190977013323462095279686026562582739541381583820415625629726839856464609575929713784258722011433919504001674646890191264708868426751566372394806042204264481312746543352021000205870406099944374573366435778558595314269144890565083425468081265103469801203191949432775748174337888579389051687618053470755108492880862364025793982974108228352580485360945702672655345852560216420113394536826696576693986192150970544991988768382797838554710198480870752794006780839668522605218317531786949627490339430878867392899959799307274797602578821256215401334992704819190238115306568089703593199594835889933598405687752869703577501757903330852854822594288510720604216908393063598758319846741699563841037289513281815506722738461916623133430230090000669715282116711211195033714591554954474182508891519991750374674975916959165101592055777824901451229977960498966846627868116308122261179739251349450481845444256906271789438346257092499504137517650750202491520816530695684043836226567953900160152686027904504613571827046642313055815025883757050110506081545938178827776995594872953695772071153713316232974609872702750140551804884708693311937641768937217768117994260603141921997296185205948428439654889536069981435031125325333517018534464075209925908427161426901457427376442367431143627502325751862370930981579653360949375233109409491959608925259386977399377200576903795522473558631033618593772688601439904084563614084515428222343284219503886434066142401098973523364547156148723127538815701709783844220291333006249569508206423168616642693573691792121720936423491716829110535474082928155954759287501826698336051724326337772998495731450682104940822932280788825083956778551416361433796369686805437424652982367798461920903510164024760934150200333475085005411979338999207447182245348629118380542628783814616168629217316823526156488496823997371825402578310496602997607623512094148576537117768511558956709174795695249172988252822301744200184042064213474934253717306014027255092026199835339326646880702468140361250968934723641541292699667150516205438535944286829027730429237234402682009410529490327818098870998981095819579318953550398500032809540602044046385422739229209879479314190059087497810461628540466994595180245717263027794414103024231097774446824840808943596606250939198114455945444808119393653476420945389503618238836555922728475024185267128690428067011919444227936903392939250664505242445964535447310173958697691782524805160920216435900180196957515422290951270987738034150877248213432607952477035146954016739209208233535732283244100852755409314981060263566070646750620151324097026141255518869034424131710159305117670942753362205719322031583783937927128778939291658749355475332075377814583186101666216045765957148948245975495503777533504930988229732839034302155351403053063941793274785618096920850886598183911480435395844361230023392147151321389479374121787528189109555823819176285768675901975736261216184407325563844335809207425950210519643014479201595936932251824047718575639743773099637408093637008184862591948102341837755717496774827409472934865450518575964881018422796087054904606036171950032178992069638095126190835658809433135076789376563666341268083778143980413355365515320550163728102695400961304623720770738737253332144428770121049247930322219590281490467923891388644125905258829683329717481500972302387976436796484083613451341894815742773148697493166592928961636628390455693663102193312417963719214672999483314967213434004677283585630479886165881924641712487880154256954347039868525088245290078874182170535017679016807047374708787292765811318716393112127963893025976153422251861408278222451156712930965104248497202496388234549204100142585177819948518829837515590275171871889396171636194192780929184149573852181762276456466436621161696938634799485207238588141088180351790086719677785134074679329671291690776338869239040518565782262398642492736329353249784575447857585183309105725795048617832286928726438502071762051236873777279361767822592110728434506246516007550729676348864017232784633382969631448159723049257567198356277186903168779958329114416192716903354603211028801282420174000354128874675875464159892063741179073176319636750795483023970411116441513005508658797669767457611386948275288787701760754206035475935590248830391215063378522732272534552620743864546812274206141417774955363671124727958149693479168650530197191623794077709193032064746746560414057060384627581581044347375067314142027984649655243305783232421695810160361881262631032004302632765776001261232978857921108532885390296320136215081005065947574121098785612654673069779023040250886877768615684385246112802945465574132752008167465804343087766498260776005473152342660211890603529519522094561135310019014489563218394817098681670949211106704236077605953341768573937602942579915317139523381835154186677565897823786192905861832035150818014708404270748745882638125649211542394363079970299529818098563840589431122809827398650803556216406470269631719394345796806670590570561889397989765273952999946782714929334433494691276224238132096608399094744858429516796051463997658195215738711360286843893952095507706768808216139930062772011624677240633890485926531280277365420823115999346221313932773290699927500961501604746225592415040017621323074292069925412836372899101344609803502507783105275324721166609117691064155139299454880080620575038884396096833689516636869395298613764755783933211565578403835673735833154387662072620377807316346699980339347776260585739324817676612317549282132392316172904017123148951293668502813570730774734830329607039453190746897906350465322801649060598398148553437126313771593332359546667832376212243533418265994164210357188537551114705444615398827718084865902592180908191230205174556200084261205231639652979156378812562477104668533171030461697861611051576488460193702923889308635330156891797883808510499439496549930372272544797182835019293724254067157610399277154502380324682787036402702071213378149865797241231086020873711103362939766947493256373330493584737070438738705272126645688296656708410263410252995458352961645270323813816817086749518376904997224565324040633527437321865331054637083656937007089118332892120467234799090112253708171116161488633377951495419051564665105794870733275973334753164329282074514461334735631676607722234920484916477350059860712383111465267163230515016177757115424049155141674980066996358314565844688089963400493225758748086664384078233990401980249611042447515083043340635196937325496291808950700674419660393967967953315397267348967234626337422062592581685660271877800539509897794050622997366186667203361498574313824892223121706079502109547064326360493099384684788625330262673803849719330051851664686285862019142287763482489246802894595924868701615332195327540206760765441082654157930670294195428544581620996007298022589250881733069081913159874598515916845080835910315854857368043504102379017291580957728205156423062889006930462684609329488447690213621850054724052547800492658783149660889604996072806626606978698518758066038953472647209992139824822791756938768864452827494661060574385189665152441696928372561658006959549240737244835715975329091040121935712979829183877792466531461664775463737434359174083269260478973203743287035007139969374704598398762259278246281129607745757894536612429860473593455095690965669585994957596114217255960805866435351913779201544475269459023313722266943613687784375977186415750873021480085383819494589438098691966079524840394594603046502210554202908235698319264996348554844709442986779438522312964469066512876525212329979183981151522088888551614827991922407798992497497005835732831977232369296778767576933786105688922798564674473626346022287283593741217503093476260244131637053075738133071439955350392661713455435556941366304835538861439142960102271414786947668153373606706412479099282055596045781657178736690664264020414706630838464871343543125766369787408381967483165697334431813972127095451606718512862607756977281861329604869142247478225393706555921068263967100735474402514043428810588697422144038562937091460980176876173792803658986816467481572874218686973730019080383535214020443421061829255438264593851588886032345073439774314158844472530565566148578481397676181700303346113490800099737544804882799133004505968973758672275912624440408407812170494305397516880729504309285228191674880495311399146914599211463451334048341770797182127111254121194382151433634577063034507030012469850693446634029899680616240314727455669147426044247466736910177337749511571711572712285923627158765376583040090083115940827103941422744730701477114123532862950534295848050755754985715089531457511913157289524079387739767254562626517139255560311329061793698703054370003531028807074248792728899736589794908990605565954646872122949056175732408584455209751301630031709472509614044150569389732147541498145917486839995687590799593013769840873328123092646831217780956441530804591515039077885653555983469055013403910683370080170069800489978318417849348075169118624505391459211361828124313972497172159616578176768730558865538754491934922965103120327308201014433460509433474883550673090549178257675648445221684859065514683543366727065847912560209901468598744604761455865474054391628887598407750089786960795606795928586478216313428957590487478072568441115097620341969488963580812852410448480277029631256884718306413772022400011156603642022789380796620002579552118977931626490964754362518418252706984732696629220491500950113167252382093467505209877243250472764847365672695934076942726096207153749078328131152769604604326962750467063478816687892628906119035509285520103765437971939567361598946607705666215766467591840340261678010626978641288321297249071654323339902205338331295701941125005058960192217065520081898501916547138581859510999421646302205729256143376381806211296930281668936457170863545001457371789208632777839485588443842682324744380666427112604904828122649466825507135757556510249768472889901973491294611318147521910755696815586986742219665559260214650690166026132030205904853167861274479663280787929615303823581332247225275245259365510992639093891678576721189009926468405075026823085028416567354236292011468036644674092523238040369563641365884289813947030925449480531554793545878797143959647025027356464225207360058909696237968630988462698660027742732141499121812800201588241303104325309264141081630519250699444923295960403613101051610139936656503101895354748837617190141306554672870515817582290421891910490581138669172951168565968799579422585595236032435979730883797691061411711351743403812391136920751953257289480318207333794724043179242824245455073407897922796222911598361970704919278779659746205880242951860159658379683110348988907047600977362796059856999656158551379524928780975922756232703238329747442902739672807960698510074621805396757271061375032446290027432184303793028056004069449937210246870777220751339220277552367643121208212568692040563722764208519721050163353318236361901866785533777226067021318697840220877307354570282387566490921306276386199732558016169179848235138573488108392698013443038321081614908416180502900451442090856227702454681951462684903494915601221090666835336152519123640551082438451225387528936634355219786035068523743832703787190562143808462572357040742167130163300261668621111618440922766700054674960196100459588375911843961062849836019278351487214404715177441094014536010627008606705880304604108680982496790123872365468335672982842662671004643720528555989760326584130514019000522013596194086897948000858606915278498778572902853033518477634036797106049764909819359596898417750659064903177015948431564539545765352879365113981907186429105854196070545127261059607164771094248157730010973039274722714140471161751837545816965473346777681254427712877281248529830469395476786935847471037093674087780038628733817150515150157648508677725570247473033268027427932833809476875551531638004221441684827754734917988575486414420112974602687953408271751618717259874414448214225409680845438443121330016577684106361559621221040278069285980522021298809117881687668812765115083229736019941382597486626046372208004050196879147046558244357445071656364448718038748563217374079468395670499649896433053964546324832373064720523335336224469226892676759535701961967914118075143183353722759704255664108063084441705503902918073919334229687062936496406625632819480605875638501106041365729999981321118938575167245059012371833651966312432670785482253327916743437913567203844150133169796035576224749734628480218146841047088283281242492826209817799696631185551269465529595943531179899832257393328174325800503791648178404252261975673459180984089641693664803169077941004597265437506661937417564213735707694737435346079020496603365039117097152101772123866267176695503150548359927249262023752243932416054205630978898896853090218615910613035568366431596192909918339547482415070256061046068131271944644730558441873124681155161880246743449203001556627539584809704259482384545336808249096267541237286826525657400806430699754825121090698453994288597774872923175388194047321097029824833807575376194803031025320316945025640970303647871419179088593646978276935518375645750970213166832173803186694728349886230634749262406725586627208793090128566048020635625885852388295862511645943954990005874597151098294224399988128801223295576755660436642015841009387968361882594247444484606175550619224676113073137245475560650895577833254052942523661319764249847684842974584899998085885360252416106672712153849018489676413452850246449171007622111064132382228968453880924307024663230235299580689691294635327677263523332033006177705154894413632072813528373173017571948732191969004507707916451701811124877450196595170156971934536602083102311326879824503483064296744679885031377609646908259965019044810902546391398407141368784565704465857456985209470722392326742354484246800355248296605812941735526886673161256783544434798275366504748621429019838594711891220638263558371304446983830365933503147173979278518454821874101494508578415137853148172540144756777340652905308615995181770046847733183458161306229847287483417729908818111439641548927151286850008584468718363057955825240213613211517259463502294711605142466188718178872159108690452218258035671805448519528630273930345440973651741410622470242334221710947697266975659971696136159100252179694757880695423674844471369002989916699348234619194111338538527101281310408746113407518275266760454117019572025404845675519167332517685389916376385978276307755323115955347521096543860720104434528977576565858880632663571950364793142220696483567203898904099900444048334517468785686305276653547713427893164106707604039426770902921342560624804678155626720622094480365207617252356729743007767453209628633682402256831825271008969519004259790288144153098809766198496312467061103003491350784502510429888896137661688659943844180089056518699985497441028507869325103680250718451471110518020422945897378559819003686222117745408838737141804109487417494060846843227647273322649208684221578446391227195872722476476864427506906029346805516309415775404301496090049521758888024112437805757726056237032674545850206435752761537686811687979677628954443035170303234454357476729840172082041699853364204794224684863095137450509676371150315428878120518312796784871710016347017168496256399769918716358759835705353880625411874724770134279569636811130299679426485541544525349602182760847499176438151224496813159327034136842417171143486386240790859245950882976065059566614204723045292933778533090175394696202321926932073003970057219063009755577513971048056569939571131926370911238912146955712583728744213366494668134629474452130499680118090704817389673266815882688018729607380285425581954860205448838736205122280199604112170703954149618533292047501287987678721295884794456304159063120414462793630676851855559069607216934033361644210584551557749468604441324417658663969336897720429795714826369923611193101225919628082226815076492804774494857191083602438647291334483063172857169951676805745861506205642043996020589152671491917385227741831069132162144995677969816200300235981998819561247854579630913045026612275918662139112960360372849337962802857918491012591836539085117483199427242347246338345681044641655978677446926064957397480713328759100783121568222175606012263750846173617712438679537651112983943024243137625296709606993502524059355099720602234617473446216731923364218925031723717685919472901634008074038967170065383376151058052005546276566436321622343277638341360805611743514722229792175860680230346951804122147617584317320164275664919869364086807412168503401965243890451327661325340379567586737067706636788015000733874085683696486098393494404628398747288978100826806117799215404141181656463149812943272266542326499799953457578336526258445489132754603035889127492129731283620363231695976474987182652394444665262707869855586770928116885980860462720853153334737320294599719011091628799562225326812841320581620674447270031242003929941142893229623373113824804937483451991589054365505541114117368002712767978278316083680903283480328471764267562013236777485016490690897492716624189061441020582442595801516382333617474635435215630013503211524381305505821004997976261830756318716662105316642114601974353479602692378684881269502424915379076606557697578620594014906868677132130862233211438475816364076828092770371036755579937068508295903313517103935700791197931540007014347852937862380957105974362699903246966065516302824782798872179871639220344122497486394733836740021508039969735279502491597654463902785397533468162861153407739448391761850103464392576032583363072723380325895276644020106940166741748552675716155882217637192884227704814018153724115556301979663777368275943670200566770039782185260973869325391197645289470136546545014499455354717198135278167747095548869342741847201167734758704827559875525916904716331366049482273040917023703843908643894635555653102298137916004527242081381561002463512741064683760723637142664191492226679793804717600297265351391689554982369778037956900422822310358974401939163850982339513106280567825999141344209776127674838023255026189202816959825697059876409448450428166969668550211505070618690866321353514648744113897087443471075549835331413915539267251266337314985186411103786676465404348317124442251342845085030454714147678000590004069119348056059169997344327469020201321574405424679062079970655562363214574976106187388468959501504483619687332104390234379678922104049050977924584943231632298744526354446875620721194732726666639460945859899914966510125170157284525962214298500276520632403293006605681692278545058782829082803969660261577127387749989238873190538191358414424700383017813143589423294672768456337548827198361948173766870064140889641036952639928517406723044862265715546945716007182335856967923698039917468072258049425138478142518806598726739221894651863536410515587341327599652018254584439129026403451533525054880785543213613255161219133858398768684137726059942211848660258655509300673265890536198657602858212785865829568070464987563711437917615338156055248058942902425105950254356594854507547797970360067718358596332212269902645861705636499906267509127700166041237936298271434601413679516920026996834621768920435260293398670697940187284136413005284010156273145180631642684336597117241713072768736597412165664425076931536221569074509667404409715677276874017036990813965063705811051732255162744157413843883806175731398092060444264675122328178637044265767180911447368075706174277234848176618073659384368884826601784240279555078937979398522325368541369057265490391556698998843055859457132449605691360420588759979248418367736880949358638264759973964497826731002853634346435346889830872812958744764945613988521793755015885126353528193976024817551020555066706276706023671164850118907831288147885244341775241939494311054993331466672982310213786805444720686320689069567166845853102413592607275756876144302246958552396150203593572476777721929037207590660136575672771740258914915032692299744025086887141690153900395391251227531596141654120563235927863677864548442273118435246569245919318490176954732057746811876294296680592677299036401844521034915739735095384521484920749356556880577862187525278382498961404608884367084102447906848678475372857713796680445899266169250056766072492746720307615597054868259111973313299315109324706607314448951549879616241159767584153673947847395389439180249465392206650179186133324467881342852887354939576799742689499207081504694529661012855477625226618592904453964961141103459671042790612684482757898423961979271146551445597374651594767254660421664291106675224319141028387130552888837521779191091699730484538701663913910747596230448037320319599472562482139437137778169713453264030805683256088940624789104322837595565416578325590354784045437039735413369367273637936159535055240119692853001227170248325387974687652049052358721000462649532286750433363829927086002708937207243267201578116984760957553859852615535227260817060239041089426144109567106385319012776724687238292646875207071298467503659761624239006072325139731558154965224150449311272719510038543907623082615853623613867292604607028830831800698705383019821461791138665001097299627170877290789659483120641642979636132644739417105585207514602251658106647102380293180546586788952802596070364443167164274301552766387123242944211467890414397382605159524848840647643471096993985315346895298379153460888941720461159444148011717155371755641872567141906799440647094381702674344479843347447270894461301324889930640577053668830756768051022474134261255341217170975726433919391666764523523552247819802863126312090477869025545609552668776039817501121893498859401362044477760307985687566013567270136883447148982830534940850447552593547525045227931178563794803946268613998818258827588564978140528061732019945762261674579865760177042193927349257697479551118614833353325594748239383968152188004863516006959140543058909722053670094878684805675824254003585833669168468917115904690605090999114262631774832134015803805536176167454015260257016241096389574939092543508875357183782077016287493847508515364717101556876788742473149188703992740970844969767711528930715659635788430397339867976846231874391707093239099872570068523792221584965364308293119894576344637173132329909640033515671343510740705094345385060337473972395326317822339430433802578238837892506672056088954094678174242757486959897044892079582597037084857939014356787393686248376720140129636109995455661274607165434935485954797247286855017630091504735188604967893999347229579486734229328326570454197981741735034166673128323680373812952960117353443772520539286684058905185938551931555326732505510919485342697777258720850394660825873977062195929047499597444762332932784037597153050263493748860447574946190942106830986261084877297949476250446458109513364021852758369769446743189361931605417253570771938839675376634711464132215356464896724673048938462137333528772009936780122134912412151216213598496097154678144757485862116486341142522321366502152602377443210767542223674242303683177438835830962421460277947055137509137908042747147347457453724205077284926855914783287794639617128145819842715197509079678106046316966443945955015086104974961414800306630316744164024088272902647394244501584733086769885727339553816258115790147852020207500659081757395330427933826824435061420499616644111606944201552321322388041265089987601149055180426441282300642851414031377730709865537718725198205253941044521236874912027513906213551418549038915559208828521746397314278858906612415144941070068727291701335757501577776150116870995294154947706940449480078213789517192416660946800467118807384164174173150050118476851375570325473881658985953119444358824525127143839198957869404588184280893243167655568782054673346529298830524468157809105163288902429074278608949251930629576147887407049154136473770470618186512792005483943997724720744298536758501421158722059303148936352722192316563837367174598714227733159235032574395475061801580762758722735780159614983255515421765675502058083823702013647722339919192443825621016849900663709976923523716408290160706053515496109201040701397856127049919706159816551277414270137875090023069691064442902395227876573400371717544388893728785666729718915557157543786405125466686652332040136943346747017473289183623604352382391231082750034492011939773537044918564260841269159593954680543811022571283329717836526322248545040776965516555470173337350757758867300816444332688987406962834857062695992529144396924424257076919987222877185901368199452348495128726122802577475119581275141244036134836513995391231423084472880221540779743751976133699040352874463065173990003856955521544362269902625747009413319082951711733835488906269992920505090603731045538446436331970143828032511592055637584194123185974391974005579243139342461333279602750480316828466438851340699153978867890375251078552165712608900217785587812412429098585296913658270622374235394360413690164774214930104583469191446462444729832705252966987981381551623417574321853928198469531299068752071079873807817393607445394045626590835764671015697657009710998171749952489718045029515312901296709977916912452857403325949735644936870952228704554471165783891429117311670680082074801849961082257704898211402098431603206790667122722651020412597394795500430638332646412972893067219116178566310674739234655832499217225169476365524344414297729364145799349507068888479659872354213492969223294391370887356918461881864226649551017572362256377082236995977750698030467181499298701005876809299604711190986772207272420724602857355528757797185413767119946783805700340412755557882460094035285801601432472857064345446672832157795017960666368151632892763624686605336685519115799324132637163324568340293282480124157647161110948276899298496637438597953420199677986226230520808243123923931760671101145962641339185436128809472085970776135747095878973262434520072660655759412317754111142596555351683104567884490303811858251577560234655557471461477034177605065969333491745094707774846793514403951847752409739545247637922172664185946099978342258880700197331694760867356534307127243038078148001855741577633908957018587545204818929209863284761956740243944877213169869657881332312298107663764396448168639729679978720427577592337597711106448560716385184386431801757019984021196465275508389730890031566752520929187862006680898649256336728473639426022758615444349869385909815862133401711740800983449286957264243631247047842642897303910333318503200682216414447124452747174729036881843332924566386030314419683432743371170173807034499743436555753121465798391256093465288793500192475143402473613157973384960494331018979239438580741920148808022795870317580581771031633074249093175732203508698735124969375199943051400956676086661491292246711284477788330155627110009173538783786301073884478971760162316394557430236539361969433081316942999692415201020064450945410126864314045929247474339960652219625210807975657637877434046606815324163975866616469868054337472370049693040761775156282159974951753358019963523290373358982500276743652680194011624373068063497846541482931784525134176728976363056969176745875374059014338037439756723013896158584678683050445398606654142036140944821167005436502404581149819555663750769443088344852842058641731100852171661356414003926014372982236012052729593511319386194801708456837848688283844009665461947154699388799460081985629057950583821883963113336840135163448770469171135243448987342711624579097457323111480987652082119638142320433938735035695019410449960767454228078439975138468000999176635809101841426518410677574488511500287501355576004877224887190100820450795822575059315505306571857143389795233602637371767551994599166194899341099803916212734572325619741448493835925587385633250024651101651366542059415484598109326586165031521575833144653492584436637079056944047500745984763803471703240537468743170030547687432486869554523917344155706675474100002745580384757439327027815743523713452207478830325284871093058744408145644331752589378235408754613217336448996274432103036279940372382908939920435002459708363149623929843113268382139564339817292478008489470728804360894637412623685635967602035889379618046306416233674101528421383662561318872671011589478429458574471325384112812765419846874555332556856398046590692709587887725030271552037875504470530817104514387330618312173868364694956035117132572787605568334740167558120346573924270839740206725828371244126619231010573107936070983753992020625587868726633595279961374084070433006674040266079389430499210278048591917610486780818685030755972303927520495663446297704806339718592593308020614044381419641885419704789615819951728710843994023778007426244760400715051973660325908540685219429211896218857423973966469356690115444612000046994480020686820822854531145010755539037097478289964220219639562896097268302175923109351831048993298594282116216409182145051857517245873190043335375207570102602902342099138733101764425775550653937732454795857868509442217840067900042968493439961439463574309783118278885548329428225818455928172758694489952809240661655339782182295955441985734312402772880030441750582465011109515170529727835120568076922319228953006022483024363707314974050273308225872058201216938860000301064645286508816367150508548963889127619607062495518248811835104955246650300726881721502376385938200594034567224430520229463687237530495841226265354164649704357799099890713778753661561072223175349913079050384175870610009256710797641082726391594122213186160557889173848892387312704078473077156303259294524923285238990401210221838087057269046811019367449625288577239386503576524283334741800794040732794667888389209692035503957988097491482568909504248200822051996117513723085255215990374972724140463631834049252970702484705696068744569801869944241949715958998422489189733371843637874515347262118296730650938702487329190770745483491616841390501124365720823868370911374784700271954587571978738040853636346977991229271064919570411980335784042991437806121696614588192559382164363866309002006415919134291923112068659699676922133079095181873761769929309274351520300465226722046382873806634936922216393806462867396628236519995488162331749109115555428783143115444372270227742450189805884505726604578906039389133565446474228569278765089124621193631220552573426508630008892065298160865661807606078970853992614152892923920034454363592264713286012571345823081566813781151688764467426052503689950670318030860333061667218548954343932138064775523143896603005430281015599676207848316508283059707307960970703362907543610825740961684815287746676637072484642340201737245373875435795848634570674324621240100200040387739041695877579647232915881467703740624116620950933375533567140618874431066163054823568137543616191471543491624544042081033469143026020147241802679653644617382420251878480785918827100523935940105887881960866184908304413001023711293520104149565856708221445525898319306845435465498526339889315637475713051950095561875956641741929541591892046651675572422846813401075984826938085989628656364845227278463275584209784022565893154046075487283318040848864187310623225853442189172039974978083331582338083450840984710178660658160246799118744248574468542719076233091434784701238178061970123050651668984255616793800496471522159959176343119854856198977542770335921311139825145106798784317179862601597989849983331963647751032787544648094743743030593772172363137935139380120937690107437715420055069542686969107636768873991596136292161552202104876766625568651867813004445584811504139440126507253343860695546089716280508104054902167323708253559623308325845484284679718099615644691899300205191020478078792080117649470883166635928955715072268050420738138163158291810202474461332373171149020170785675123458970965584915449798460062086148001635274393127662254827560344325014232624972549616441091003646592905909134407120492971196921386192459501496132242185149086290219302414533294824762993424965737708151928520865342638120735717148151372835837820539369567190480889368195607278617613231154241097894948329599482626119080537822127130555463985400393425245262021773607930471087649301072205850466872546471407248355596486944385086678904378208397443878794424844481886007734733099631308499288329840509334874301356313199106142072369877501327095622224948147773105466418312131530178233640053397277970379838977914680486739693123688849738032657215497851263345922021591667991752657892340499564320423260078603774029342242069458482636084886580251605498544217499821526254381476061941067906307051297797733092403201102140106664236421580064575947831553570507127271392354859984043296192221410968274280213388018358733197778459987887865688656808867531077947364113805638638540391752493840188353510340062252873329317439311284228265034977725718432969900214847188004558427450751252189923623865041911642719805867694573789426566605713111414020722627106879684400704825226207871978302871072276855751628627648811666273039521823581725543556956020257444112615432936405395112616626294822440576196012888584425334258392112381192260598701267717019202388421314144745288652058693476737572819837469088762976525992270270844954023502959959417633173319973224929682029359636255994525646675831299954409818276870006226830333295261166472202845053873455108184566735179654035803505747593138120774513403663727491244856473792328319035452933265071269735781684050548726107233589114881930412090483937994119945247555435794881957649370738277446634674465637203036175016475326385428797726240007004844664003959069731625283552777871486855760947712303839738150759008685479430350399595239773918557581355411647133581565748740998405264446335724707912018509054234769638535454651716772539540563598488109609520478938631511692380585818619585270246741014246830000422966369977350755695408724216330912631398947188439612122221539194720111034738597689821107713717292360928610479933382468503690432599447695408164592266974061226593267044615930785754212798735089700891123145508558843745492894094634645303827572444877770665279139413577654860313643525902417554947824229225584182461028683570320096381129372140819045471171418021080680443348964383360165291012779822196826510915944760948371874812132510285669778397974255145312619095306126380299080959037194186827349218427700595852236557563288408534813792787149502532685822563575347219249607136261093543057234559745853669273156689689448474764273802250387386023788743047288752394358878544066639142321601731384976402875152234283150181972185919048945069168666834273646160119636344600396356484254341445239794874857455195125457458898914756864367581991788195181293229598513430332611990363835259181106258683177956224022652858862503852059116289206012559344251727756561507001629056673848050765717101350560702251148083258326087234319193391969897896573147258663784154469170375522340779969823973568442509305659107708478290800818032271268025875841906898690688538463172091720952927673858082413133189227736236779710565500765026559754214066358547279091154078612512873534575238447580075682026806416980392968700874390063810662389044396909172250851950132175795925451953623695127894811499099817642537143969361918786205137525960976132121679224228515623993258667560460954395851836282106159940970371613800900720482945576909241323559398850729169117545767812762169301923942704247242183564093200264645953367515336425635316426788235043433551451725797594013222004609465211715013958849658814539862039682322430397901370851967798863996378513992150245948627870341730520686999806288602485345595905794705481007739115119212547506286597494553474195276088455360753170829173437078199257032173194123260687393637103773512829331692093346637828451903555483613269262293089147887245246602212133404845937166343758077716780607637174625679616379871429888471450818652403355636565910374163965034955923728550306982949003182710966565990625266865411439270442865558176990370133350834164853190203284970690907044704749753247140531607580594654057888748338755351625102612467016960082871766581606535787065502654254205605876739488365367184867021294083570306685762560442925404004478630916380247291298632038372746126192076799726758023074549764063500191989338493244810772348262460828312137302992217528806863153845596898042172220707204098202506766388626674288802841344793986323584709188897733167037252420419346703925509914360984169447966815279141733691515725474930455418977150710231072655962357754950873653900067408198004493762746518984010513722216843762380641066942297464813629497989306103866389691280496164850372326551853659417769899645319716944367108672870402759088436606881494463358348300641170159178257885167151473806513057090635155909165111701606525793083821091462544224427936381965594557922942210759417026642406885888227577527483397112172960311357826242720872482414818605379269896049717822502461609726505429603238071905683574588716251429546962113437439637854991895715652848567332043911464310598658159961867034457361033938431803383557950337898693895048319922048248010053332216896996843687933380967302993118356333242283228429485952963558181672301867876012944185310877497232882980531887004536186164626905498722573116329346717299592068261560128956951059681288146514629836392432464811202427052816913353936800578276230695647523251296583025658956527964127306697220512314946615864295533435228873098828890795633541217140896808204928414037305033170239705275842913746551026685908695520519331916932891090191925845651206054593132257533098326797172262485254041545453415667951985888067343132997844254024405923999465127656946525978235847202820281233929284421574992388607609483024437019214265597459576886133854012521847535440695753905783428894423760185919436597661760075719188106099123528828122903319310231921970957219807847205398866041270856543611649705925879599237169513928698419157265885814125496407980534098417143186276590926760435122943608344435286037745670847967327339131633250799672837036799139514871049627998737456905433133084972517494750316804033629007490337370934838456519618114966867080641662406008111660616044967393867638718613189924579840370108799268425057002915153800061092879519486479352488632029707536047677533308052809334439748881031262357068467257035394234688275524502646556901307046518357183552782507723485537796752181171906365986025399744244148070945221892169938159134392929501915320491298788264346740303483591464675709544943021603857643597346594362142608487073864500839368879620519120512627737314520549606190365783362028498333356528754659668575868039599479711256100193979586236637606661083819785158161920180888806381054182564415697185213840607745107280018343527490246531836499218891526561979041065675650491450871842306730222108989947601590076176984280021674490745134952493814347798331911644218551956327594707261656017580401544999461818678580477864958335110977022730798804264668840977125565516871990256547566670789224224727799486095625556975643977816658810385739003229789460341805543097167959632590863233193889709299838640601104015368895850605183214656108166598658646906568620089289991820502764307799521559005833176534852007315656775858368294926085114649349549247076818100172137506654350296439442764941366025505188398934484769787197342544404244768058224302139474406486845793223646518263344008060675998343049159871086582840454716212952063986240457214052136507668960706288042463520503533778736973433521065295023811080679322645958464059861891385953253566848332956668843416028436333213578634069312786908377654200767384508766141765462646482817760169488024462289127584145224779443110221758321970194849228037091333403747092778502641559328042259775625664554013951541477922820197769869462832677264675933889967853304931540681086098356342454849225418815079786928918452936750993621465706057698685228646604650007076403505370700829881356663609376771757706903474969031968753879385937497913782708482363183414817598427142819132731217183709975848276983235764098039361052452070365835956171116124639504896096682434349156181127476792108214253873264317205477865726862545915137667286825099543758621788378282133397103351132119772468902257116221784772444926830820397258073608948217839171021946507612632464706515512982745684997642100945977880398967706975644351537469759623823438371170216509019220339039224514082467251114229499233944119702692715773281089631034091379700818158639731353728265989454022878585822777244156227471901496189103511107873543472765279567593704881116828177131854535509940337340266839183397800779345624236242639338516812813938887667576376467770974232894226269386594230018267496952972483433847284930079572429862940433077709683033192609602748160038934959614998467483387769593788921615157452530952583366867874536022912481879602978051658978013805504263163530466760836455413362911373868966559693973755914052060831615828318410025863134869925679324162409885856390979406819687866839684588131411146921182174022245463358452176423194731832041573897775640552767684764422722430083738575820867846985946007527705853461639674514767625342253390378914478397961650567177982440315432767701799623414508678661001838201847129223330718428444381259973255691966457296584433308920656966387276547725056758857828166444966543789660987233530157835855212468849484422694935122197492789411966950745601050776884158302617776290765816918385751556789106559456725092540601325033701023137722869832039304935746177803163967274666896365743665153425558726473784761092353330287640554311104758669097392257186917418067381368155663213185678508743325373570998030474905451391801990692366315028647342031483046498806887159812293008049240374679036928896968776610685811902070677986818640211606109479940677920227349685440699268765472313065109459129661216694974253892894066829004338625318166575245482381136587744517725541800342790502169691333463080829055589406493809145031130411459309532131575674247697663940474268349802883259758020806492497515509455192889495899816915612998661605096440729692481512943052764218590172143194723416646587087419764493316467272781605273133937970521696476946169454794775179845485525747740172978106742750540112190682746685448696696399457675392837258898425687183669525823133408013191555792970768628492063187048533962638222896585293077443155263741443978368283186108255561899983881055522889860327025818021128570205075965647074385541038212218004884469199418568234148919604018760888630379699286221758217884158043053906287826752981362267205876594496252451611298157994336974671272147008523391341572773637848974270443275750115754769407928184676311173935770016152832766678835092642499113057900098994995573218376929689682187167820514351736136073852636664799170298104006262003226678479427531779861085611182050706475457264683099441132850113266208882435448266544752518809615779159095271854740069600029868393911190406914856774493688276648876918703528861495976471371311361308128546257640993855475040028921626356220761870625375580264821437916655154991975901115536490534058690427016903669630153140916262112034968649285871826198935683108842958952790960755015198211171496273938362646342795556341136736752947058077370177332641289433375324333711115315511173098629720301719960046910075767866728271517079916690991401633816951446961130163403321821919943155523435152639538153114322974035884249256080193125333191853253856642763227984698485329549982689319866352163537209514908198179681945047551945810437420232029442429020722731203506863451424127600208278592058821861373716306493167865484825605714583532563576145407978387994556000603013539344130235754673536906840009466670366866285751510522201416779975347295037828919279722812498573414074279100708108865293655845153332354461420411572741553473076271482232833265868248133733522974970639683710292972974858196067399496858939446616765233061979506779685903953077554929595667804055185373276685622164934230153912592333373565090519713566312934800967270594262802009206264101584263795568614820767155999722208986642807178354640943525984318023299911865587411301864668881048981199583299806321263370397563859789026996013663229741521107135662459797463099762030381441296995516318178263611585609205046789269904465668262751865319450646139626252645270578033508190929390544398461078002372517341484036654577301608453447873160757052821454752539943064339448135416024094012961565626682415602967273385858205417408227577002459979701687519182572979893719087601139899360662084472212718301745579945924482414437082535337937999858255976616628143934082564340617698404191576114504577003826922778836892115012563713363995929477797318651275719914849213454275651942995032179604789302168348696269909683958057313480040480792768006264616913195926434579467830437916701661488380873260510394558218678866846133144560570103288666240990058695370650827576851813220345344113168794470523994544146167530725586641761463167280088502939833896938321251293201937227227668626883540864853880454613879354073066959100615235315686510226464200935423917970378084244200219541284194094143266493071710954324072747905051373044232537423200990639523692560330863678415609723738210876091161774102044793313077072536554915541906819556298102408598261477439194627304887148570465859409421128093228139945683836886752994723350312975569109425572374592646750324629704357967734277060484289608112720611442276744057392779355047311754409291896863914232971329696521005717849211777990802163913054062433520326920590600574410862986980599547827754556010505834652944961781080721203373917634200605719681419091441734707580979333875016768692777882152044933922557352316145478391754028211323859068448409665562479360167832310974370246789039583173786287432299872835354473505096741411013595930343599394506081616387259788412735201851035019747641241045027938146559598325980126370108885980769464139890297699570890600890123626676754870212279406624815829510683250177889782687320547843285084800343122451395099562003963172356339001146199730116714029200382458021425731003165679451566906153030574255897236791740982262085598941581350233446857147282302630354640569695099130313537745377233248685397067981250992035401839541816176206903221854706384430588581834017860509315818019303800804655764464784357465694504711825942344474563772765279168748928799696866689079812223528124192957523375747626605753708508316946525020090935507704586213741734978639944163790008891524033596572212321271547410805051456662226104210822272954070602351087410120489597665961874584639367498315862026809231353510384926920181219024826733331813429235186301070273955737962609177675195888185229927214357409583581859772350879756544533218603692743927454445799707139610071861282726157893508597507915192478428403621683967965216140257507290652069679064076297233443791945183062562315906435036541236405559568305896126192427998182962889616911650831480010980866524787951198012884168015872143522449829458895106580925151597876835593880104677596639384705838329319687060610074691564286369308874384236821526858167105173514395730757039362187528357500094487561198545348342648616595957480562274560619127021641547245362435877588209537250694728373218139965045595624133341998516174841940144942708938656786536355290848428941285946294300081900650459174152356099971096824747744613978221362673368102074101018862278279405707259763052443998404483284773475281732934776256990675892688278409101425554395981000316236180272475694396353931387784356699432694678829645005499846823849042105399767523635819239191480285572186696194406498224265267602231244527065540735730241769284155883409629421946612825109864250753568748803976052485437193265378998575940669166987214337736066606282440332475145358616217644188331853477059872822667983856916043229619717873365084080402497756355443797196560857789457030461114135253340804579659217957967477003653695773359658053323316452680443885161650871024768101532557880435956800405135710913431545222033298339525566025428478215822411078970301600604501635153023342588548163669936849225981651091094192253160998803073749659299072087868591821188003086283633313520750621619371482659241138458490669127340534927814928485704516106943605010065220357965496565552885244709230214580913853648509774964833221365259239670622288751697231567021791635209482271041317857134095527175317567413953391140155994847824739817330281613552573653515161911183832643252951813497635046885930750642142555212340691157577869238040475685678683701413917037968863101065210808449070131987462466726388307664542888819478604662001805294442100427221380848171557656742087678267697918875982295833508061133219649132614713607307845813600368015652472824597549184564204760373919726660139258135922173626453857577255985984576716656734788758153407271922422653240075692218907581164564433118614911177703119037291150772858688109313108678928565198897376497608602340832136629845173789252416504011808578435535967691786982358270273219147443661434238928639809653503875986058599088748813060371195438111154970948022990308981560950881214389824344057944137419886181556637549697802355521318244163081772904663454573957183710802181886971590227067225657503006099711318892379469521223845084120629239693768736405510044743233849221693558105890025885179934197184560543995314420418719809130119870889576673982332823959877626714652888333506257689320804517218497142411627007199661234866989805867741354449504855140877391280599467473450118243679771513095024203348500933174972023242618457290116592261643427112115898851101733752487737936052885542984714114178635989272656520185992745823086558007382323602426505031986952194171712640215494817724513837723049365515777702210221766281582468342460874252429394465341776621901842983236460750746368463741007893554854610003806150347988580550567878813990334332403627625570597818965991552298598593758818115418746835832703546315842150436579371882929184652956798261429918539123617900361241817957017894545376548468511182698240668979638618875262104493993935312227005454762208370240322818966546408851599226342641693902302692398424543150226221895510678109537917247579647991341056207017658537417052422808393339899095934089479042372763841420593917332708300420565733988505716794472613659018254502849152374528653382975296657009791026088160204176749736185533493265064550875780691278683919407603237352454262013012790205023746708754224646897753709791195093850535564553947997855226563766123282055578903619939744365498315097272285589878031161861473814668196041790393846465506769751941747358796663525277238748788569934846542651047441910338626106153144878078342823822613553521832685284786046036127200832535221457995370451495584507707512315133329347924009683923295376614005034066919953873611816953988471386592693489703304212100319764885655325661785598717094046447503050811877937439637294603834186856719746716143292715065651609786051238197283949347718957701652895219636393428283140510359223107883286108798906963682749555074171759322754124593807410426745999856003091131818545794566879829312104245545042177269965403643521855371066656255495887033801665587953855509714152474959371485821171717221699699318673235238972021923599379967926119522391705179373410713447377890140136318075499660786571888451970249495854819089088103154628117910008480971544583715110310477201845171041072428814342909153189319822794772657330631673543715474171462935363744441763097649259701626180371639051693452484485466661810945289006299867620352811287233630587097079601811074181859852805973682785871586234355114175699396466147826318386195314051361412719639598742489603572381671189105820059123051385937299072328364268415023138342711400724541280470061986141790680816572692808449605483155879069299673554512415157717310892004781934162318913969139533195863804028132245137793511701912128297832973616480088490807080232682681433557484590334376919110533463235482470456885304122852006631761781074177023319820041305567000428565584146505771355325249809677748054607512132964956704533797669525475991545274364280938549536507842615846505723694543767868351841354003748663837393164504941010318512946638274515161966112178580770282360663163689351355339313599912521152732827449115094137281249220159625971850005011441448601818097157119028770895058493979850055145175115715595725636828826695997770621092449244975203160359855397995603831832029175856542929866092731986477994935495579709298963788506206195877512460303026012035443971289205874169200118665198470228987375958508606102291983040918640438728639383450576180225960258259566315531430056474224338125747799849320663394677968514565180795056955934350475044618902261655815807779011495411481002641245290321468253057038935027079944870038001651350482730411822396775116512382129523406888547540829748838911546762266688930319791503010691233087408644636161451435601041067830021818825127960235426212951303303270339939008682613942102629536987865673803921276144284872337565833560252167283270366631935377313419470752591057490318325593475397875388922845913223246043127574709879992480848781524527077509928527240891561268387087633540252337449470938715332519592480241805760831721596400633022498592308106758565951230318909799560487171352288567296948975346992319893219597403445646436991825069372525768145804071454672346930819621690411271926617914072339880152756639720401626524082361053300893246916267755775085601238950778891687120779826445924338620261575331594477049724777690504953078227446478876020789374730220504334800511584400759134692400899991194456357951503707422676275948877386679891266622975420435570081376220467510502339153500630107855519117359227871666462205025027827905721796089530053527307173023155158250545671502734948736024875693495437301082073417162667710657107102473298405072716273486263043317953301831991164095462934807067974148048545469265237392262474877982675000080483264458712455875357592600299051257320187020160984334329412931587087386027386807391663519476349188021200038243024632799799567321838600965715419243797968778385760395438081933144307511271410321545485769109749110194900453297350611807487868624610128089943931886482410798135483724981408380795095291981987993319368445291085947092790077459678960604758207511118455567810987144722514233659344354274343739555173812554269361787263052354998161253717831773275136657046701462528300618487482875695886385253938824960117065366198392121109584909760545092880992262504554802208164822058544455118034664986804913069597536389804983927746365202037297423453315186882083273593290997452047595985082714138811425716391678270782829327365201459287103913105440778400105064260242509207661517969974248380102016014631713848132153286508661860566632023566961020681158537748544438228633031984000507726922632093814690873859564475852279410241192294177777822929117690339394146856251931562592418375873613092835779399289656820790994560107184813806933331484962350581029966070480372577780546181902286072632254661365805782138022732843216776431675569212758617310793011201567027115533317114390109463300292210832765953980748690299815647987855215235523486472532505783463109848736226210809327728784491592213687205974337961950392751218610786518544353658943340911331295030459636265141345882961162934220817853143122461567777256484782928169977086533325415617260487726280899317632322812284280934729487113603233674470688474456500940001121712287904412040773164256090145419389499629423936661150727768815353570615913955833582333364200380718549423685095708590811958451521743429808800406955494499890339251332267849847769024449528447977934151195279116406477543600735879711504854189045987693878303754051582295706674923845417413771474593554429723743626954737405986723674822589338774317878056466705871409079907121046431249284534859021314227187204590347039804871595281712284006254811397381372409432079804673301511778870678430274039423911913664380437832428000447604630995418663694142212627299062885043668608416423069106050527964079787049953984479815475511631067094779443970665303350900195458162911961668026826979149737154059561813463578852851897178229444349695674715324357943333934117712627122972936958870138713598742324955286663586969698996850034487720891757315111610729884374411513187992927598671122215554069402566311622437295195097863343727694401023671675992910291042449355016472981922556610040561069783241555100553015741164082899275834965855517737038032117899625844714680202349037817419962564191634063537522675923606490230492452646031352733664083007443309497931757584673581968431197359779000349831396210827034652972389035426995086642933106078024471433722284283149774178759439763751206848450763946204974799711484246019103557858469782787898105145771787762392524369895292402300314784181014424380058975845966748446983851526777367743610054356787984895856477623231558263228075658432688682408982341385415792146579193852256936385123910586774992516757678679329013969327732117855481192644095681490896738942165892265605160912664730536541878725522339246247572513377307445803141003131675454491843371793369646903778422410210446689400305083262648291965363512762688692854309014305447317294677624849697165503843344783892574668686684152709459001017573721161777086604685494133650278010747284138887369327628984585732512045084313494570743006044924190347473222476764047533841788343256038144791278079981826402405432159765293525855105820093080118284670440158686236423952908345455817129055368966935093048820963695039809521752989933452686943259048101958840196986626678824795914406527019843283086415225506901736556676794816646465742010604722482193117190867473919412101947136427895250648172320775098899488556669127862569408169881381582255156726957535344640508941913720006552084981906781616646528455490371550365918499313464431830480067556422357137491932420885770652598649906773599627478234181804045918728124087526799965096173133366128437065151149142445427541295851853579537144612728161997280590128103002340269461909502460551100523267124355493571499443465163806937263983850942545983982378443998524175113484464741711715782081325784744443407037643714710006900669686751638619371682776342470421123932616442294673163242263122030019877768765321129870862034396430438771464743646686506396481404913549156129176049435596384577582821385542146648616554134302055951811668406513539058508219433435788148658217644337057794022603845559394336946052529238157655040077546496245853855719726931378489273174826629585586853208637661903846033348794996357624728604873804646415209302342307103401000305756908667296529076849428621901746474359671863443649196514400830504528295462392683502546039307520908876776627582827709571130359587325089039083388481668173476407525539928673620286636669206896026495109835437274562048832547811252067653331300607352958602079272795114760571617402787807555677799137038786873964998384433764149448783190703238341550837019573868273180505749206712935803668652109911419115439990643889545194955317476419708062008494435366467009067279838436186279728805990256664206309035934019569161651620468790420106047776533624452082605869277461210883431100450861631583399108656938362313046265125958451563393661425486216373338445442369931184940217899981549187143144508733474177410239997832747559276234391860485719030524929149324967787530429918186852332715057429101722167470449932287178958840805067808653259939898857226183179170088210959973297882776322390109655127086298894504737723847984113638743973053611826998150143601361489407602171868967461848675446923061841674800548338069263408881290354291811442404563292879573706339482570969219099830566890436409339435161097430497561275570913723747828159123844156099911818382522150628345673878261145177667027017845449941647060122618361936625790714173460313378496770284783374334244091479318024888485494604997101496742383356764719884416996964108953631352612358703696018067231220995864259417478452389618272636401706049842150193979246109086397251826129727439002111657820915496301123526917306850698677220763937841263796626923279169638517216883462263600303395146550242589939734052809807260881564060965030893653740713471487539882326612318610873104873229652604294778944593162978620377418859274349009290088610309659266142749359149539154805645411145449982169407104372661662784100514250530355499706306334419639992646997053629975979772792492200019528168929372356249146247985388628166173550196145721558267737085781896650098623768422512001463476682012717440058061491674986438534257634109655798071155698604031387594910552602928628066346343463031438716954488330903394558626174421764111171803839782147384303928406357084976022023372865037987749797986042172672128160282976889678703245215416107553785681657825421924659675726969560482630296658915544688929990124591173092355018629592006783951966701923781037967468539096924890292725210942091937033612278778167058442494508241146420977961423620135222816285930728227164113793732621449375616320787259019015619447097676931061731714598471985596056762754257942178567079789244069454418318039331726885598929207208655207469401951846071849572724362605240139082834037589627219302211946519273974802840806293018614785055330800093721295171445328547061733916080216765853841530306286635437501639471124009405593501138042881477661926120066033078385264155600704852889631956287399559692292338573523916632081843038970168792747922727946444335630223258977632746166161389564384981718787824166602180901467394061230635622345821279261538143745575027414941879927883361746523330363366763778254835027789504599146268247401599612204017422637251601437466660402818973268511001876455962405461932313165634661208739086168572140475730740309364389094254728731496511558595925586352267841890197355138663925923451718952906179110739918239120796069243114454621193826271171580308915546317109728838070106736066482970504749931225551702696550597051251133066779047949035425055576442986290568709104221057567185082825754126450141668829997057417739075191392990831125567344479556646795785168697980406368998767363454860050269364430199159246055905243046787377928338629594834151559553705006155204792419079670366524617471029304702944118633295022999878541686677606974300271265837142049681978981034929536898918624123856177498591292054397016850646819744682493758094675265885708850124273792129553686274538755757084728264855208013960581051768189015750999991656091460326629724600180100292809213443450375546623950112606595947508531609565301997665684166852520490433374824838856282356404825332559746944387648531365806409814160607765793434469363827715465114951068606030197747646920332393593327729885032282549592082588914842242675367862395037715485240884532661024847362417982173102087888837175341566464271839200483224801229692330090372746262262733655781765358348793920313336572370220432834016040347797872670807465583969767449937207413562369921133148448883333191729725073934302404728041239560992808709128842205843478540994018443601955045350640806910892668898130981708729253651522460346052467251835121828712098493963443253375101576454071474457397140532284516647796020283198459092605025563900364529689847032928370360114095318908846479779073620509849365505970309259917820938596836524677345694513915433363854121339005985151269369939272689340825456443533431415347085038697615475749700101013677537280274799080554047405593544545340272918289817638306612386693367621015646741704167860609171088216873483749988199714834153406959461511363097797905626514096685628099468010060759539612887823377242362047822191190706522935162393699408495681954843640341934845544358030267358168397003961581378157860529636366183002912844540023772687960929375782466134146822943536429332210475513106496804689284698031782538973971605921929712852424799646285623039577555382011603215876324968209453003107828319789472170487671079683137379490929735852655774971947024742267486503169397137396656463775509116181150455844777971618000456267072874996578557552208615091539313983083035348067653834525447040881126152686624087318213850260249297719409281212584703991945659160139703576202790455580522919156453511392717792062543714009640714643642209148438783905649664791474630087293831675511482588980411880921704110032399820431279615848904340392448940669352544435265796706603763939518196551966383004590948126906489540583649045485103813284041017977118223849368419359572196803025535104174650153142598683305136016923534534307634925415509719709768444818990128995674356122547269000973760781691235938830339572786461389719611798243874565423089945607437196274779888028921496436238039614018157827796523678463143345965487813019342271225656372648108748755749866912015845553355320041183660028223919052508607836013972907031476346130366326520914891220287400428426096603459947915599309777181533450115796948395917221859412122959149286955765227702622970930894514224000503356735779338399875896148360739097338274197790280025944507554016215400229447801784086080453974148474675231079658733595751115481934736455052213660747489642790341297141235258686121398998853546767141192297686943156211174192473943097472579705840126512417825220670606016976674187146755498467796640243748716522626248571756543208586894694704624673661328641186511172358867236960419840535250604022709496696156363490719149398863670767227239333282965902333066242985079939994360141679100240092171511443164799276852399687003254195302542425356284449315061469593297733230801504984555854411558073679338503198230946756677145321034493465826009594251890152971347207488317718905516696325900586264619847787736974594872837375552183026062234225258825707278702214437341428132648292878639089886537091402054312705505702800591467624567533017435796015831944179345622231743572305128761747463177801206508727611429209385611661153186397956645372023564810661869188532790281034156139622487365984654765650436457727835260709708387247711856635591515477663178097626239035124071477234077850640371962135251263589515474812175571240053753800014969024301285088705783793186594986256874003104910983568214813576854327310013540304476442396912883565118863671928306309638171196662158544437378251867104552517071427660510714986587776876656339939378118529306864834097777916043601377543801696965165299384584472324686195094041061819172276602107757065796560423113056549829554710903073303758606059017298915944633346213890847125173603279697027616558652389125647293683027103687829146939921951325176724383775339810003317961638064958550046265196198441937770616085032800868099137028093314596480968892108794391296434106772880014364252290038040389463672925417240576526290569434949470984970287870455261210455555066021680561806982884332604085814228277976866290172960541333097441149895565346711052416870909062741944994700808657283143920474998463054530749052979866732180576310621401687210391591330156650665322832489829239386614924369869222531618080223541354578860544392789116081372440402964580123450089700100986001453332025583542742598585064852234369521870483642009604670452912187191096536047867864270870534654708350647523679584862439862739897945647010872576285494783196889776114796306652713491706242540735390521344031727341603621954271453723977221934760941213037632470748030607958773986043858325720212825820312629140200649544851335142886527467692996880086899505362052252581240039635081939612362425553372779223306054114367747446282954204365358752267741524148157271754094401241467835569868649177608135203046817572228509891606216300616794615798767341272511405667113730731997086015802488482526989185909452913085427381025765404631352283231082131218913773424427754955209560418346141915626502871393697194341205725460830922227011413920282796562793536040112327210459828615164463168451069873626830662607512858408532158657712898645528008959905110032230112924344664144438451129997841007689796685476559762911624510430659171293662806583890526309907229588827453531559046085306118937590345071659571408919447112891291307221667571052686845566361971646255505952042731229657954221040273951174702011708106053050448915021895711320912911488080152278836691268856948306593553432583957092252154954609869430972187854461076758615033193006592913120709622904705201891691063493424618651897169145107833758940469717602782350256790117381338718151794688601795415493030147498778799483133047514182931505186209515917030034771827578623528519933864328721585899683007090339251528303918104974134771620308181275345079199319186447078215396615569224946508079427808008797014188671263358277688481122633289072784739645522676393115657676387728950379927173670929243999838632715170819040805465655222724442197023347861425423516372577623319261461833510032734820270587764667966859365403223393161645758821753643567249429787532076570465691572325173172242864404699490022019275683082632099025355409393732735472863830553265322837904390963663520454500536170437355227802481318305141610897517814610583958058837150310780159417436505726971381581096735398806374395862610999553703200126149831570640853900100752051464555909981739169367075534910845670450324682291458516848781466224403405833166270173515042895738608384070903014362491409717186346222346427576730684976131311379639153184901291626414422218167588240550861008799299752072371023127701645012345793345710509926078145722385086507102778340903559927357154043642812263924810591765439753238602394863705509291372417849262413535236810200445073679332923811603222499300345325591056126970013803559714105023060243969100387210536160916920405942538566758540484230593258193282054076226768014435554218256562819731844858781417238257100088825865734811326687497179998614676431922109923679859455598770929991473004580147518570144891720471651859749868618843811999793730612784855809539145831795824968821654690285624360946782236969379640023178166164854240698390487756053747004568106062706110079553839986814132031937152291310302891961601250125476316271208959754723586311592680159058927576075089131141753932924570699526135636904476857565013813496896809582803888806821597230328631334705663383810988266881262929493802518966895666622545531090109703691408220988847040747757347499633571781090111725406445550531465738048176687084577996475540959969522512026629582023949481463756328355983017016986900647520956422342565876619152539617282460510295955749842780206249008755438891640590140711101870475763753133894455792344074356768252389732565170112305653475552547753789478229191947611006301429162479304343575359259240663078147930267761981016386266549225978491390513845322951783408564333129223719930178090071849790591867862789842300952752363696671705778810205313149141647824371119993217321722713790151322499028698592027776423807146233672198974501369139527087352801420882909524889205394654959658119949472522993076127395814584678525394724167426422201251201847483120978285325196369233923905525299400803286864137718773949070491105633244542397684708770659616251408663363032632681421269097145754019322204938438964203215236939797196656661290499204350701069654597108811003248498366341072198462317274948748402848903358453475133039427897541949240159595932729837383968870676890606438624411923370683714337164464784023153645291502392161648125995648070240559093734767565987398496624104973835706018901210007453295160144941540699412340877697547294892791340465991874669513353463284968767130854497155277939120314480627371775126633097948665917717323067020058948907299477876293048096795378384544541606369198290673436656817977177275086936487494152537959223563222471631214324213537991653871521722883311286256676178386161427167166720571778778130838889439744805027860733555847809293736295705218710655173214461342621126441404063794444854999366339439618752142141859418185141059785727608983972335904462306433579010376621421578629962477113403738000635942704860451388182994738344549535436644803595627853240038263057739083663014276166645709638827917313250008051664825405796983045469145833337492691799831860370772825924000134982201547261250310521388325084205255116172203413975644460245823037577063932724648812267262768547110638246881488117742100129534289744984362872014819505693744800545038556633298358944126639025100124546374836114482005266442743121255731947536009621580458634059668878529350168205953302978443491667689515819465614183259214087176311604665414218327170181737146146642813307341034745380485283542124917427617939327363311249058163572103297967087332933155274759921655770827463354482572564901241210279793583039390810156521438942372658603584584075788786479489596937204654295840045311205612647248482571456556075785286927127967383230130063735224384029487003996374294383738045290214506608413508466401565623389270427391954656593366112814315726189597212921088096474452681569374859988579392125022923483649897358405887147454963806075170363340826892489085242441686756848342407676421413924575747341714635514684558731702012962852525955073705347279078989301307835427584681965535284925244582687167498472967970925477987293230690831167411827305284061231712864582891515899810044061682466778956870918767295840198017694896595091651377036441268042462223405609237007509662735623260120217423133914830749108842871720912167363537993474329084675695302595461025425996698848374668031839370942749080013545123369248762104919555661755873657143355949867398183367484770455621030165781453284259212030582417106500900122816538268352521829123001605348753650065927768488405861354217232495716144597334428453656223995606011190532935783269343394397333033740564199614767289979823555825632711396917322529977816927019698228757558545606585221872187948119654807669828438405710315449474080376552887273947233464454112344888186222670143632617681975822290581483523353013055857528974414764064119402645565000675065890887601965373147307854027201090302586587390385659575939135059749683540070989936611494746744702539886469675677274214217928298446192187891114362669799669319631087191768096221705443090914450038688802642852258021680067275596943139522577380007194343880956796256782240829707431641323106474874432966178978418661011858659610875388490231592548881036765110292719239898587985745999033114570448391898133962604066725231746838511993818127215445210218805168783850347885822223567350523954894080858784165348812471741385431012634057927177380521723757274687536694167997258096462797624441248423804104065110372691387187590034792457469511755980795400737528422941807221262282141449742859162667508755613686226026009499319032800249460199660195393088067875971826481405801056233911404517080067669364887289947074266574202538757927108779443840605761261874459896557931964850811382078542109088010203393104075191866820325317949984833303348657408775724730745371114769342965643105085364090204417311708513334675521095254461242987628656286455112051480653315614549049559815001488478494860908304634898197550342130747565449272311448067121358147357124878929819404346188469157649250143811035831106769294741977309446079033820023127681614902763172705855596613361988570621832631802979740015275452985572764436923613856496926801083962029042610360704743079433488818379697140900506799890840787209901565827471986292360267919976908426254818337662380697835066952272178381263312819384525976250892215096224028010770671840473535190815730875049017078791006871651497093710396704491871235480224676307046547899333196130403522284984208500858178664727020068891651058833463062823443516267809508997887298524277901499512178456888910244501566328902018379342258140546258407564265308997519475991247188550420387733752375398218262608279802155913422397236480493540480974106169960712347019899309533582650975532751585665319219331830007443473543975530298845463779195935590859869822643910492991703916089215856299635825638148489815163798022272884637873590817937564183861873048586221117760454925020215453671869333631594930943080794345049167308743411957370271655999907174346498447042357334757456284004749338723222905286801235684365395373195957920794973627907635453776382049001378025147890119926244819970202735514271057050515508002917321665797941592002578110047761009967475461691027707043515688117986734236167293183171151269193400380281858474345886825227645755000559800748480082590742397874781192610864667955767206644733157016286951033722109089082649983461531358981587151376067975225971992007625133545216203044764480197586377533383649746213196967342971853873821793462652654715941838385852608884737103654072041107461426871560864909730351927924069549800514962906594081565133695712472720087883502364465697824354083095631007142919244225913430195008712723537112692746361356098246843488617756851114281411326698166945237128431839926784657144727757993973174289594582754702919962247405551703849326387779954332931152810833985041715332787046030751076129964211538002696057417306531608345517717713152708000904765948199500059348960247997015100737729666152649596622029118784554476924160054688186117378468886244864387594369567364927228442887493501876963402706061430004419576243457058600581300670294209407319647234300404510982690316836227847582970543970902984646151992334349980067002536590895344062807724392856781297469258686038079653043749090959741280767843876955057919945610878734223478464215048042391868666972372399822563568792390324663243499062417008172338959343740418650877293757445232930124844702676047131974440550995638608353882634824057529497693772352208710986215833756102790592279468993470423631827678868989689722471089813948598810268962904816617788771577811353461474049017220991835631956876197489692050157822186547632480030918309370227753152944465089524965747307192167071051706643477339827026849992865545433372637101019207394151537592219095213417496345963896297563004874763210143559816736274756129356103701829667732248671766149618040861495685198765317352686865401127995697302472920345603051813944694168665236363010685651579229709535409120605817618882902400625182342755349662318249984743866474894957487735688373466835620752206630570095046410806300309013338122631702905658669409377304368871929958826307367658490612285895105146648773584280945193903273612523845816577464766184127477245354488228340238422169257292725947689957435527573216329714786540291781556977584361619455998308952025564315422912475731744609951877385318099970693124975026144854210947603686573979989428335337308113352693737468735723312833948669487697821449954065082830710043441677201827651226026779840964059535641317307235005605016986248400829467294114302106578230300979286038903620327460637153186548397151470315547506843210174897647870180228117921152884082930492740945775316578690656340854208480324352580236859906555171280577051628107942339455376452301054945941586979268944543722566383491560799534456063309899669071861697348937217306399995179013525142760423904814764438486280650450883255119447864994094283759494287867929175669232181954141394183288625474061245247476093997350702678597279516741955060827629605663700174207657595816583358491738359598654064618192900012960484569744678337195225759607525098017358969127781524043681544328792292833752374064287489068996807215476473707775441881194109856507553917066513790103172673779101874381130867844584801282688519134715740425058292119059938367301435312387771444347371319321845086982170119472224218970650022580616936571872531260778776947190802658351250304106024679902268254005980951862531432731161710935055220867395480780594745040998059324665354408172751509646774004580968487368527873571169931188564725761541594368142245923373239462673198878220271422267383557464298029899244085542605828913026323454189732919459449014334085274956251869632155491017732359155169013360809017234837146448874523328875546767840839205207783535512570037333186408098157985954808923676064695263671704692880685779693624018527490184346657147678524419346664235109461521488813571826115720634233900987826049034247383750284945023993658293401344420800787364275644733460463188821568586143533977914378793954347400002931581523454604766810713703319836485450685856492997709779755313880252393470262242578073545828812504343986902196463740648729313473811646611703280795467712378008184557729145227837013188493717282042792888405336619619246850584823646161869728163927233647373074032413958488385347102654906692545261360122850807029051204910094162216147136693118824752046892235977280056942973936290732338055797400372690543305256664619870758211254859023877922983864453594400709711908515001540141169043263147693092172052792940405760652244576065710875377315085516192861031902804245718873129570928781736440537946621936795552669624826078657854800068826540978562563364155048411108164588590238675126851914974692776006891293870208438715307718826763764932957439586848243967267928871599137899677509358855661339635872330199402406871312124262697480063263384395768418128504602116022259805924590377749023510938198806240867061524353993324232494320325660988281521957313480688759986347054740609844944210283184963007161702188041336358792694096721547271385384098094503641025862912435108919053865581142622395521114118881708788812158992753029318513434888985212758225126799094069676065187692797546024985847117306625051979898078534747572627273823100116858057446512409178028036970766812580731414096247694207873230451365075830564897342362609844927395907751936762291335866238265937967605776701585337028248494319980230005306620044253859109583385392104200488985774962494112191197559150062760426456971981237195056775981953024780255764434325065970218514804257728994407372852678916718606050239014379434278203717002951907597956822873047251463322231938920133219642600584264561992087412470199685946436486440714931997171489335348605149212725803437541640894429086103208344118164488428083345282844690613980553739155241998164709010675218107627656114541600100451787411799257828506409218525001318755908366892913766018530184987227567577629594310483830161654189659186175638709498570228691716826691396908072331080198921124708938802748367601649437111981494077464335520715700633867218608911466770296951616118631088540548321295018538361149731863395290199320107629246741777315216002990136663244989566367903774822037055950661636269271565392581618596597013492386985213406815310896628325785795023271536721780841571799486396261809966290792597562825486626899194226425099085532310235482946805278305569429514270629963869005797937449973995084447928366763678610412249004962938051409282526015092060071677847700344768304955520482022755706497362059781415464858512033576780504241829753475264830160547452074239334207179232630626601407256097493017453747820699168090755123221830689314900016487890780081436280342179823544998492455321457332979383651099953933490460821966817710889727857511056872630437147626353493607158947961854933828758649995987912486005827427164704465320102323877142149847820598999247929030917227117892184621292508568761934512484401468835035086062199343217228940854798356986157703312404827535533932834912552296138264374373112105629796515556906771422147791443660779785264600748327176449506269841613852831983928311120467559170724520650822721156436043672897427964943619536687132959237036311315496799115522310770932114903277324459391604852872947679303781767747813037776922281534045540360721377504530302726959747671493096810873852453362543815678619552625373046006128043984579569458652242226701541669719689753468303105429012179742230556803073699355045533403227453323775879993346811668651067462899983883734725780044416019963306753389427389330228327935242654023268727278172831330032479827864446696216025561855199239257172203759673383653604345774551758324711787728797601785194937495688681612555765438417612473261593141123622727336067120632826301935501112776261982735276172929681601734921690040021757102253516419016520328137786817727697029574590057852515411334677093453419522391732231675990860613272409350736596810401843996195387550778011902485311481866108661686640578434822473180452289641631160551156268441800267578212803596709211335909915993926898936989166894439169205124784731723671982306820746675811785729456062036979749161917551251376546787903866797450989685296749941495851497594805754551969954976611506863019947480302346794663566588573556319556730238603459146185620363462754624679718014128782248070240089475293155854974765963412686888917151479594245234869129914392757876013489445290045212058301020342300898075273463776452011531973165403726424032687875180374656030210457805369501831789604274759969516008984697680658057024001662906422805049452386643113260079159571748372408116940331927529135329359416520256298389256059015193558955196058127465653350488765459104737134332572311262862570045776913718986933477609117660722446243726902623857421303344997380967449642036288769610007550840631868225289562944612793933737810523956558863237820580281518969073448655394341723183095301455024457951414020041668704552968004507094210625640565787843766619476984389640718504126009274857854639075765888267725541553920530335844239747387550452309427849474260421060989131950255957745768723329868255621340135460197796697780753420567708927152525456262333218369858716869134676292522101956670412035100162870823588864201027394782487546530966943035080707295735342083591931050216936451802533081233714315842590484605575312780102682442996948671651446697944032000092171864789434523065796462653671726149169043551481869693937669915328920520737554253626603113676689366396802713636881343398018202917317196594915277468218856291917879980732594815031091197500773181573952618834643206575629579997990535069713649719539992924929132974941009245518506209733842056281995077859976005905479526546746854463551497592700198205740493315002491994047166797730702542248078073121245169676317134454177453144659505265524933393311393288523004591840727155423167641307790602402028795905525573676528933543754900919018206498851330448360343718303630363487071840160048833304439320655244363674130565245658813093292894009766360913224953424530367364756458137761379026707617037388053190432265973670312697821894317074778830388686766749302448521551991688989680011681394589847135324432151365810685611887304863140819761468662782576468766820766083262923864094558191891534055263640200661749070465829067374467356951062059805827625897320946849612380688978223391954194839806099135116691277248326447804380435227509644140397908568247193085974766081012829023172937274971515277293468376371458777775747969703703554077902741546340828525117789999666106097590913101358511933509381234806845125769303459489669412844068534100751440340055767516885409807652085861662118022099013046748547341986508896043767032882124949656862964638458204790792141821618185598107806984476023397868105583762074548880144822397820799828154099458771569183011974864586947945822476977979602027815823881872093031003884747477841711143526017233462682947243478057153772204759223781141192930765561179311203675110061060409663515195516438732948529730957124599615777575207389338064377039255162967894496939204974874308376281524117358527706092191913977566937882232268183986896140438364357269719970304852489254474210638284909081977204458453142402205043530754359631709364426527610343261242797178846752685283671565601540132544020417086718669020217115391923129733275453095996687661060435611943345972805013150028029763945490892895516729032806127935571663882976242599883316018756025509632451021273705924519436020983291321198756959823088687852890916021601726866795350791584826208451451868368248006290995682035399363298837683014641379169280484016324560165591146833710226731908083431358785636008284059021848834568187305913635778210912728694958717592442616259069823932775298149927656023062852230916226646861324023344576111947147946232307131426394358331353443655684746634169881435010679551687300369493107163492463666798016873253147855236692564800603284541852329907535738096350521424292618900287262439462639656916934674844244825537116170851343027686914875463715522813072499962573513066901211449683758818551210061408275405836947471562450163051328231836090867808767033258538260417506389870744513667404866844114776441468693804717317827616205042297671498510927458937434151931614297947296792320604776198304669380262855976568427845208722836688345753745707215195393981087164545654928800707320708606167206754927417730073561068324452004588503119642798453134122391975459969175163450282433287865117182118092353882239513372731204415666890750432660414076441072547601038365606137425409888825071325268562180215049427826648318587329144365303597132735795244334594142677533120652197884670780662216428114837940585990740348010681942232185215256503110808742895046906507384224995276557343362491250533833412116578822993300695032958334725747593741878477211933052180356959448913366423199803493638478182712979665125361463693766906704287679701932769706340185509905913028493481006662020248968398890570785467198514984116956859840885858732946853405986820862441722602409741375056383816404590897236376724268354298425428972697777595304825506118757529046590091488618928655194151966527845946309702882282686244737850935939018548439369259071111784199139753865758664749824325503574728243330749533496989632319917889486141107572821581579626088990463345991603016412782925928092198782609668806156197341036401570813113422767023377352345846316463502536267455874171085434670045909377473048974163518043561476133278082221546299157415910185297705064140355124956889541265837911277624255153773480772684137741435523673748865658703748090479603884156681240156456975569622806080982861253549745247538435062941144727497967339220970852077719307956020980167118168569284963832445173364469282935858752733798384162284385858951527451537757637990292383875648385867582424581724361137738835828008406407892404622986873572530064029652900696814488453562340247309263539718536305498709229190328825199681362992714725238111531460016144449289555109626782955586932856345834799490383559702362371467960212540111290423367759139686117411029727229019686921903035948226089052480910094687835592346098970859191127570522157423741902236752252008505114442989654974690934641837302439286356587843873388003505773892187911090793711676133315478747777973451576623116146792380511964752034418918286768528352593234246818470436934185433300622108953283989382537172126856851787621311132692605342440826112742915499333765347994136477592130959061814958012862800829521737691567957603699060490897784423980913105914061830027015541914345081443091367154152262729631196979087059137227945772925819645587495090765012728119204078800524015970151411214340139570488218457578703159947129580861333924027356320343125944583063978080737988972311847022109388476106323878042290340511087912518776448135963600368890654020633047221028422983538782650677499848938876946655358909248385230103814029679504944359204022503753204784436601774507654981811090160405992440362290805940139486110493881254362713652328479648030193486503086175403826337701746208235905970533169141946795144010724299976377658917318178611637957361009133654364774430444210162130921542496314381911211272025645231954583748709322451705299185762480751289890951383314532740089761976991629920494698479720028785806059417944295310471107329359245147556847271213255145222979527821587686735292631749780656507795579590041390252860273792992164605329679698840720783050135748186414859824278015134831015551254132758624236164767519152865812657919777415211243666894738479698627101162245502630839850597184921998097034731299405491685549501709983139704061814530079480482838234339761968664988656126237199330040088038647923494687184656409632456679252601991832241679784980196436295939457649016531184490829008202043782700638310218271799537207270372161662636165877943080848225854835394450895779017166350060562153626628226285605760028283461644830273565957662814043844812160061030664064993848033144574684837875260163846468185158461900500380483490609090783903734199138564183421135699213628345936241998775984372925524731747323156356410001330146469147972425579293282475278642942256979320272234016314090984811658412529536703609158456056527997277810320717313598541840515070258384263390989930219980095748385290653893470123098188814870856213591798135176628426885641567881760580676685390338437495578595259603917805152670800471756858263570851827025423777085810331477588572669897178216920405412625914606596777551846462570713469005870119487615010142251602528815895229752970340155310677539008837966246794914637608380829069443662780570032918805094233097292469213830446632542056374918133196983919640570709202428743545032723116490067920044968672466633814161961334924510395889155741232757024502541843817026216969337975538659714871045405786985171547965922746882534326485181527836732201186063717984637159823765304516855204052932401759100532502649050477213766530409033538654968584326473507530319908648957547502583179906831082205912861291196712385699839186917593862127847589527834553257532773371807917285004751264648456519012690251683538866287367144728321275424444905094439785748920848259901855241109521359402753530444419606405558790448982689108836311626811430159247765640148820028118374028531885607156610849050212820772781489266402152262654459084618306961088406326505483236580710315383209760561715143695627626457560193002478294037338416452508694815808482690731730961944599183398485492595658315013307397289401763858376909508188341332522168212874717398725474531033338518687875647585343018376014957575085989340481776268112527886137619844141482743711423622990868314038800503264066957029377686629912427334299699149458471800614541973252642303122368100207699377623669893528894910207635702574005816550452808977383712617622023451850132335599203192065522544675200460239619563044019526215744733644945037220417446780396313678343677504416006720473874022832246120797209977756068147880615343735341055624409640220096642292704074088698516419306829388950702682853453116422451083859521855793282399500994321374991648222066580257394212001048929152903291983585577826382959607413873150431366381833071791479982188406532230276211083715925709872072711620846508845489242107690761628602638657506740889955010789756524718682697058562414021238625788199626492526415527824940978179966192878143088662797375548319254285957534501208591339189115025654317578708067256822963230724246690511358931443175537999602907047390841407583316395534284037814703404533464419935691991798040313706165819970629107277195679651608863532413860337455500127878050313562535376825866026862208804052477073288199331330475361914287230303714916144069740477503459922659097280484137531191972235177394742807237485908040909524752696874536815843977405983805173380490300432612085180135286977592390394122490005795708106954921761077355915493297342103682084877521584811729028119377555518755487007217961685721051736127510748593039320724772483880512288845071488896225290355047248242961228314673400688265212561726385363394242430106046504453143922600332251568833391127862737569730678255149322112106150511884699282802074305509489238037345295475275711003452872288713525589504248127469276448638092090775975932045812121535438382644524314231978891019579063557525388676532110704429128614746467789512902806323554017034402039553412741262335665814659486574956478585922481120877924213447624958206838940831110418904909785744672591716474242615590131498872610536145713371775924067288689047459796191276822795254876213598198413194117175930762920814464882079770269286614238288162100867313251665576228867118802947204173852726254050052047943115511776010220512726768057820451587066802330262491584988647074583076962865176440920736871523105839375231116319665139271075593887448974460467018367749661108741601768138741079716809496520316308589314620051383598953558241445583307135400675046656115262522403267268280756742891256897818973672971695843668302682320286204668721623434538465792572124381027582854678883973045874396777291085542132540807725694864690175820642237030432684091573179766978698625469800753717985535345736065846107848197321559255422277277396519192917376896992736339838774510646208267423434542982195407454963364356248363387594114397191720703436410670941070962802019512149275357182920665343609088617259096009194114731762335710435648025906839826310315752568951637421393647031833790729304867986169513685781352413728710420170435010054068177664198401739836376589473847731002005199413007615089790149411505932402992521659900480598029729374039482126105668424041145180820714751687993192133279933530017850292449586844004727071511468443249831478918725334407030650629591077700543058925091300680049542347701724457979438324756983334830446593460886828685476848035753662891320895942808844113021990495157077935926583082155029604463465741177329008972493739824402174966418686248335052260355133278294289010713802692180751586441597223229065744747697915180096623377830562000012502648672061205122311661171881021566987212530566276486645901758705490517015481272505923230556303819763565870976126504109336638079814572032938743869268684876841178141811332383414798239941973025900987776064922123539780228131318719916962276776272243773846192211894990872221257444439394194525317875567163330486592578988471804622831076650805733178478272188928166409367811638275274605124397254071218232263211990818258843750881937760099649050782823403959928640742283664127883380867841035366906159863975171929295821543352656519631956767242002494932316032244484205139061373423747466889059957973383001407260705115934801674781494456927312915873510043386405098048122215286148010707906183716938847246273497553821234643159200477659203679203338860490654764413443866034511200393627599956219958507420448679209668131416311005271788614649343073290451474929679055309778607087223054095472215275369571279464893832093171548888108326250765721176200948285935439646901022309894126434417394998252521610316123065548481540483891799366383289953846607538297909880222458722999897582157512700173771633428207150403240455122366971222786694165249173215478426293178352208700116816142158841243284006755704298722220818356990257503507078527689461745492674204125232613646193348989698818253928771764692895719499098660761729045899295752858108753962224660496986668752992823029713358871721575296398819489379932866833729008306628562645315205940600426044279727271990114563552339951464611664392610300613968746251812468226942638004759223508862923972617781488182836117626496785489670405742948940283227818245595400336927243269568550927281989403929757204839979382689075046727604494125278686706444669439984104285988113690732304917965523630494377942129514451637952804675896124693801645436863573406578988243269348808463014289425724697703326994530781411751243695417094678668734368461762943381306385727152485584048527956373845464118879393199893916939768892361350199609981825668459897915339652307257273736711168992105659429975229306989828852265407236753775386776262420163196397867863003717246186996564777661033931807150553060967399963625140608471410418561815239866658492291132518713452218125327532615471688271079441078956178687896793320226509479704453136163690456294887004665309631254421138971662011934307239227623294758351906201455168555936414628073288154670412336154938769565926124523860198960875315329334645260761002958385162549359006541558374015608663087498440108893506576246409452664535186931575462859678541362547507789216583172996994693184394556439034688221412922635512294021970504350175690946046015191180224501212887069017485757133689089506413749218188409654462187169416648581586447359668954282967714247747153040728768848352512871916566242619718095102442601955451908662718647141038593013056252640254187353747127354519741183800157861185884830704913974834367485925746593482597306197361463250025463826058318963209341535483632014255577567973509082548181573336599534465437490181920283416869738098297273532710226640374612825526646275149781179897092497861657566396168623637104098469620100993769537957776463742562017113808076287081863013105366503583637854574696184616694224696675827103092823846168777866285607980802294166210704175344359683550911292817305133394655656782622357154981417677077071418999609609304483350016326555854170110489231454160678940843062120423430042035013372507767279105252996194591170675381973340398814743280743828814068387196372499792290154275025792760358174526850793409640246512769778911410165681068275785685848930679460189959149579197205832221855445476717897334507704291193725185635672756534962589074405705385468735821914787373075830278941343569617741725708362504690840385771694429118081277478065869762511880651896383198856209309823971156480741160413862665500468708898044469843764088387018104335017333715807003325752556366780101291279079233793905063967510557655088183451424860354451483674963683302670566489237169224940362127483891528443464226160380865079836065477597883236159574143520370713404070931868317409899443996777754600672821074111730739070493747004883129674816122374556219594697411194063146716200043709508613346667576807784816710976162441652754137070569016316760244582407141172447369364865125203419500246456210679221537683789993643076406475019843241234367965908158859266735260046364600481056879965603733010037436306051346565946143909331075436847635183723647303448677031576729025139217851488296802096133739617262685869982587896229971231476681815632509411615297512343404638207239058858370836328705663141232014261823594392022819762154484189017721869207185769550842448200436210317732930711488239569317453402027488288369855860767138744813771495171503082796417560556610670194479823440812516987247635971523596044197755521818517850482518163931347083015264043517657662498507730984277022245285025143705398529700334467134839039196598381887717341590566222578488353260081092261227329986633698282772554210887707014069866978863079820974923858865641761189675179481283643359741958278626638817404812705886727979079093390519890083209260642638993464719959541565921300187579222215987171966487912971316844586506945493857644939696270337157300020306685998759362104028078149257735354333828916644845587353297215104107109082543187780691281559895023918139816484315854683655731951737602555813737672342117413750120833651946091166098030987843467194457260109765544487433271932545586150094365316597696521955748830402341114424250703402599258166968111623149168680745626155386689114697679199982933723432168436988538090160679568415783527839124801236233261478138968782636919252799077500364784462875719549014642980322999306612099889695015951458354923305301639906150666203700938433139931718509303887226407425266481232276749026443675633084723433396966197444039912121842163621902950424438903662177967702992580904304845117410377348173017389958156172266305498283960201231901912455236270162726488768810829001607424916848096875659465554649134848660441539674900058249086482584052188316729386043238246090911523452317695685390017404124750552948525473422928421472885705951982786817957878282352236294436067924240801563693171032272301121611186357715660256092236938051071389359063363265522583755976548639744810906195080383330491359263113765917899367056012019867287718481466898894948421721870730187225453429358080601086415366469422565139985408346355943688411989984085919980774086104469072242378061418520085580224013211494644209463270603811544370318711409639566749549628717006761207118618472026469924637760905544032765130627594264303289844931800720007733659963232567013834338506395519130314609104826796126343663092421893557125625184364570943718769121688162872420103238406836774273194672774817685321649438609367061963319263432006335146632544980860842946646621910514465984301064773374051147399883832578055319367705563192621622514129089149911132297959252146318390145791481997717902634653605368329711385665688105530686358683689547079271446823764136315374332138361377188554574925986621788681110143008652176791619689914370531291410798575747672211513928864587937559796473522126341596020311976848067270380753551869305969103944332125137061291242635029715275051456227487247350901192226922675721311075625495743275902241541937275184467646585986015919811734200202165230557050393716439938318510106344098904129634585648952806327029613153160417469490311665315233266874094453846479014142577985090532877889417409034630162402588722538313151346429152855606933615729727703898456980990913711664638146037544860037619184464230471906006387590962471206021762542056870654931757954811589972093975109677010506870942828458382446674391868209028641262456959715134329828225075898353979888179576217169167198531619387799631608313464276895498388073690253740980463385630637471157432772850415044694486259733585945650422827659247733660394152594649125254933119530926412926949835786157714265018662687996977525103908490606472491667446126169643274670667554025804490310625157655970767556470047023961002528808278483262112360887509931340331270108518783314364080815051746915191953154334476447559521279308482191423042612880296797707354598380611498747446095828957867749065255014299725120914121189792216956902292869983754848431521779129322039081800142429109977028868546062057676107683724690560903298864580780466021722552286906075731772754785095055148906976420483678530507919681554992460975523282139553553584566760797562293374637580099114059711176120857611541319339588138764024231049299750761419207717722656433450655585837450569138803061658375390927918119519540950954160963840229541616347029955113358455577076298149430325857364380635681137074126047718879980697556093448130683084917442332474231179809556241518282999455979155623499438649634760620787239717760818201768680708076859141458882290441845041241616863091689104136620364918121651090236250718407564797697143204132351790321427637640403148241828246318545911752738580394412689532238568587231639229977692611625021635025619095755092817955756976280951759632155452458008687502697033084883428745695436867709632810005491641428862176116325574612996172905473006403548640181575045030563369262468951338111785341648470314743893188063668912990059594576639734761550464658354099154233120380660529270571980461445978886807016317704548557955386611131821509672159764579656037050732577122875563930880685484141026486253741869157726402356810255878323237594715923027681826502455020080076976416106322262380082410453849044410207612879152474213728245245239608258937926937270526432927925156312536021977090254825482908312558146598237846220003303124122571098717901814868938550340354312180898151923383477542623646756563853016727211074542003936846677968216680278547527844489728513721734376733377324506609866973934617671756851438449726701485642519810577812931619652359714994760467487868642498663383954979532939880827089729069186879427988309844160538831094682644433724102079054880563061373917924351478117727248840672521451722944683263837709496864027249617758309577238368877540718473148194576362518173124388898541929623008540468327610283469800927878583618944243226907331642193319097950703496412178129062225966706950707718102956887995812293933664395195919801625867062941914003262574110521280176417041083883124841693771755703557042315767506226395518396589517320461436417577163413253451657672416534049688083921424949801875664526444933879442825197256584217736434196703799819281011410881368808631078552529235838995864081952778668211720725717765192010284457753666867666978471340624866200590108812142583800889405135523999785663677678575881835963526826141858366796458356519484155760665270310820100405048317597046880918684654178352096996146452876955200218475208828443395648393407822983342479823306998067534971159944758860582081186566569491781145443766109272658150064693742720434235516236401877755573045813619330134080446099365623480110391658033934759766010529328436500528028252583524459416092898648980884997265610530724047566961382946639368562753050266790750515593167594086099675054578798253486375380315104214344540482752355614272119433226644224977977018032626780874237419310118291999108776364512144746271708121624793224096287234295531490923671415575305155793492341382101351865860538432775820651409181053678609389454018714530767088696062099492275696900614016300438354080678544339680833860844561201557343652322264651579873997765764314163756435164474557732493191533312460993169430307839669191120052460540757959491689285554382064623422424327082314969078853196340194753677134585996294151774411156929545761740855030837822644635866563596029196195559455205110250473381178522554776712974045234519289862483355941261692917487859837274442951130416428183249241045695833069210536478155637056786328446268501748307827389818771738970930274290192105874540492864760772046126758381149837730347304136794757947499427012744285248897199892078479335409247025574181931700048898809437471189814538240451182663273212304199768939602067049567555723626708114924960068190390540908018297997068377802228214347676712757381806631801539000298416662102995669652200259039706960759794083813418656282474750924153306211609914214564921724980166906350753509152749194225063570308622123304099543432711089634401612977728725804977358811045200877220159591332097930084224188134266048921761033438372860818772040401444730578733001318043036383888586701475894707901944855636071401357106945488634606066184307051618335330172658904277683227765174994751543435036522473605439950966691051767099068985165306533059530365698424456601765190930549938719804933109913948173083291561513469381605760571737573173055845923696748858558051060994396734061231605940639897224272469698658195051462913199706077148055696887651125324875809443254318867338262186579252209003533970922860586709526252041179400938313999952780461278149357156999900630327552634532922516436297514456927811406445928058070449738673505153632074256145841576252104386422247475985603483738495460024401122304903900560922450440679155845725334188908965933985867652960405569925715862990118552148495807325781673181931658978911760107624221087009292264123174365437756054107123173022764848180371914054036690185893838538513191726469389499473032628244097443695528886416833131448144461339220778717905998471771196188370264511051660259429089342537433729654807290488070622032894078486531047714320741047205695901581525009309431416940719041653027268595614262604947625510253798960729190089899703594037295396525622194366297565667506204962307587353463190767322100622171917856264243471367926746813544227158025300288266281854980463222153352927787841978785530525971135759140678288674086242269786656562278484671396461167087955284743546449723248045517437673121746855425948399631759750616945620638376885400883304153036664157487425733667312206790195454032273286636814979781001245908760981559537376154533061306539403429027387490985803925409457986701924587299162852206705317498841422474934416649827067477519194499245843004074413502283859496394045018507149050553004586725576411193642329088499137199722251966468928675030366013948621832339729730339086628290433456126438654083551840196927150789634675754812013013814809829574534826083255679867446955737768824244975576608663665786723302917787737812712665180296402047267536835776944166878057848238884683161572812779113322392504443573014652866531866603816032434355060781437238901946311229943018883875231844606728802785529459143599877522658819937813618329190970021440974995337521137383816247792744608349026265411176800888176729864147315086229144237792762889229885563455377392628301847226318924664773294741005621567404945146365786421904385147379725187056356565229694185672351007985912290543448201806465181605671946905805579554970632779579977575485841388428009957265793437892253292846128035485247471561481050556491834690058042801700755859109931250611000549731566234960427249878826264316095085223204044444972796971752583850590848559498360928374960042475070450348783891960378714724733268246106438562627689328496622701426722879577586489779777683984039488065290461431202626363077677368687259643615736924000872261406741210721603003525009249214799318763503239964801673015428831266804073097135284355668638511695787999109251658507939231195963285357946820465804223885073244110287894607952905955510801603324247793914224540164315563913390160928241312805081403505831808748651174491930064661612423027564669142594448919456179534484609462925311918148781049273851467827404071036770303464003500754929415260234091069050212574668204572684296175972435783893994607292730094139643404410704711367917140325336855536022240072231548866481909084908785513895293763235419941720639541517441964364306653557604646928036830191609598742576496568555040862870856068620927481225616451644551620031836544346942975132045213340926622296945161126007274239375928119058198067615048699044734183380479890844924199619398708231007043564513345560998391536641283326330330667612177210208149757234021019346743734823299638520719727902102383682193309447675458470540974055615173615972897957297169251549392660234927167355522770402686434654292915489487606788375240192609516034960353051067464912454261763586748106686070109200109602738249418503746443189117558169130128011902125577524087174164875589583366927706624602264793312915266922558068082848935380059595735197133069787535000784482778590381384521903454326337283331771706234300399455344860405894195489611479602101366009861246431122972115727667689834468757219766520485573796640522915542729899030744204620324896748218446580495885667122389793299379498497155535134857239824255027444521547011382693691369797996581975220425217738341155237879444368933719301388594125561614539668524228265655203785266795385005624201328486443814318110460369690546267827968699420008157365684356727740401029622834701438544471274182591268769345363709973380748652594197467652595415692914336340060304337475049477980850702099005814457974420556626330672965571667062016466309517400127473431675526263087962444555880863014887322394480231037097001483752045604151494636787297408257161405929717911800213779521806670512680452500171796910681133325536918970455736362346439627515839648404836695667340717936711989268976362400987579051730580714898601505105518795496149653942220514886471322702181099892219991229073165564118409568227455269943407556435538652202116566060104275117539520545135194952364954524886626187805879942330205086592403326453969960152010677512795206623403166333567261749687697836643918391853528704706282812804580447240212155381033824053753828271463236800435748260029149307524582448771742021309359823692588671438755923153468812766452068666999178367375690497666634387359494436115837389591498362351333749333313574558108758349833366551631557518165373235471568880761198016083858902091937078180091376396373741787276216547068645300914051778191620173653058149260154116561267508827514622776976836129527825599894284292596597611424435824733844875001581301076960950895357987148862182813765324746071377782210078234343863063448377729713012905117794944559062507955231096955382919196005998729750971407790292126388110825140876167497542115678624116510852170395566692072052628015282972113353085735393982833772528592924524048789929940698207745982328938030786454560345797061021665238678611323479771731972448819490230955516269762310048100020727908256138759510056491611783938808272324039737384374531606487647210283535479533673346572248365466196965998082514743113700436337672039106589925594043556051508881486836010707332904761804833798581424800405041815249974181873746462055152933329622432473318172566314330340045713618712854057248159895713966049022856307344856037240278382468164741941396988876860860015213454079824511499979160515334364115807113337444699522869148497053676510962220771478644057429498681752190487613924465085757255661432300760827863910669480834058004632078065987139407124650152916288428968636204301680479312859776093427849352013763486689111804311766572398140932015602541053301971253218325502478741169549560683283227218160994401883879261900667664095645466346070024819112108279714432320914431201771276454718494745228475762258861305496543530341599794126020295079888078754908763836225866780280806885596493018628157109167814582017533676537864649656889572510042349754152483888395778885809220743944114268719309642348152688884695005305019528916746946635181020957322861308680854547893231661828624966764980786018776076846272115445014520805750329839544299012079823983735251696235864787808974639328643765687762199311902613429290425808242487062576365590406595031197233326635664288299398907293033440618032791854065683284818532284276818259102236686798284066819604016761937847542994435146595754954348437327715021062855385197330095000095305363074423767336117292897856485393879225561652415504365711842092268240899109203021159809484333180344359255019280206378133753749731605130567897686968709761507495567878845123740574955468051356327259794902541578784811392786231802921791706039559282836010427524692312580450806534310919708043666319345171057726182770495092546727932632883720512818589436776519711508318531514933555471747334647558434268530178580059316620496712804799966986471517870747594478989911665841978734180351854401967528781714771139981343698262173741099494704992207957683945111540713681884326855515488607886117348126619289756237308856603728479889700851802594104914710763940049179689423577353434362477759257355530550490815986165194073055247370609128712431168992854849851176403409955666945127583370625686555844541771889839260780730197711544282088791730770283664232903987656019334530611651709255958982616053072182344774928434087144580745132114206126734082312471064208631556063110919929264800212534105066036678358860181575006343695304520519124964951929411602743009803800936845684687760005778620597421483580261662363394504234910365197704350207989423270021193395164496258514044536643505006439157597449342887247062016615657107191391561195644538703225698925157084983116787697925352384975613009905124696826415896073317978660852139824612242321634693325517911615418550354769473250396996877099004060587377824874472282364280313350044535314958187021186821158978716180191603295932258803453149613160885855438185319507167472625461683064671485361135668666491849831429534467750554497036897517811781785797786567800750861081108431950106457044740718530896846502461895525826379571135290061498862121574488327944695119158605978970395690669791492018670348949639553722413331174461578114160815469363375705290782936311690179780529266580414005440077987557599905164848684322359754589041761675729929984574706253094442047241021005952474700015985071335374989660323700182121080869386248458635395886793659063091333131906258381900816148562089570901874249260755353577296282664081104646744147435017167953705309951279549209376961864121457307969424993375885926613126577854090307070427178099940805132129847575417947927613951972598933912063533673070351126279258827149028539831437231741896729247275181429341698560317546226079577612645342693305521184933837152007604919458496783038491773974882476888936527091758224416919485255572767182054116806329667916749201278376671896714362672250406213573322459351310705692602371886911480873791520152281356288051721455670198108754612913631000431651311563547023485063884836369428132011774484981352760309353074948784273052211129208718035113209131303391036238174610880122514119105171640989918246396690119952611295665644063814050623954180899664539681882266732868682373017003069913665001195712916512536382227631812018142520171634272359028383874971462086717000796044476736557162342555190469897165889268844634675800641901864444492872518370975970524420034211687045976305930785005290028437533865123813060400016299314807712647071555876706402132740949193607487493440324504844216313534540303031520263823858358307684712401006624646219903556156262570732106754223885361430227691228412940664661141976422329444354875373097065781950051122082099647754532719600626752607208269290920211716011560595576426727534632682478052730791034020333461701963249621736964217763691963490335604202884250349177021413470359361441355050292075139281831109263938198630251260483103599433261178325513061966357302072439942477208512925786311017629379739787006055701612328531910011118487180614312260394013353758912529621961625239993695069692299148178817707899758811841383454844310306991939829863247657536816540477429770385628174648052027964089376442975947763745947056846003541609229515378917117486483999437671547664624117488147238196002718581857966151136656689827821831428960843660804864170642780640606741239011544809373243227633730731041040970556493479704446761391194501746142684723478365748921523312510764816025865791327517840779051244771827988386285664889700908025050023705932862345774689089574407774102909178303750538818145736080216043380256065310305496324329638685343375657131619239255597446917597093570960786448667439711105848067141581717074505288281158602844967136945911587729848184737028303692842997283079955189010850464599336971938029474774801983115549587657382132509410652501837164290772133197458131146302365251240987574456643779458278085983610356861557279511113926788735731474973316335804294085714238149528914300820668765476763182252593868850308558583087798517479143153778522307732514608646209867072637009914417210388385863526178629298360302395282264292562733657329781859767017516322584959106842560412502909759751604826300728692209471957260025048651926231993170695516404784263368025608744924534870286898776694929497313924387638370143349292021565267183772619642448149845119128440933614862299123710710475746747774318108427416775665524522584855177584189648439005438058447164440989804455907505969965712454497650255331523702266091114199670093124533834620950062545517920603425695735552661282787698509064331305869397697204422326890595580227333045811662041122194298404136584794670518636216472839862779020379311417456619103399035792296994951920247942603874721527844756046353236374605786081364466088147527953394426854866312447266786925792061226801981498769169001750846233099620108203363136430969754106002281956389163836268951674733842052932176590551374404201923521788935542014033199467441475195363507226954711208840261134682162365817145230037287545170161947874594973577490946597984719768435304316469479305324525010972212303786929886474858582067822452437200279727488367338478903265534593905646481951870717410652644142906083756749008149190065381114136295392025298827662856279730258918989383421075857084037528184478860484230738540901854678386717367052569174771160686795741580780484295204658042616022045631399750310292746383605386049434922036706876705296247193043373980063697301202436121623520362752582621221139083777147928314473943651524089715296577761992464953021426164182369144914579888563445640740087103389282736980708072099002321994740459710492181061857777694979994050870389840708664876451770671107303909104964438961019591388824683644483729909272099275678757376511518636440732216607338763360298277758451160137951367670682298282091092090524896703805810827507753199106244473278548032918721949136474230941167674898417643837539481405022576017157036200570041296207994912892354148374246873915352227241918304382377058994537830829691260082235270925329466509384380843444042073016277088190434116505878257675193480289887993005840621912419792807111145007636556003285283356811152676245424453774873575382373054622341437128315456135970798614747651817499945384607188008263894706716504159757318908543921372933632209760260998477190517013173281465672058591277929809227476484971029333414726934610800393798332323358181220357539209289069812821341008516028519214711051740251635790288113476220128652608236099560972478299186869782506119405097985384047193877724779856406974493461302519382026721705082502910643258543200006646666215293407930931342100820528153828256741412628514695235560354662645305963576181839107860235116824032684381252796466813649037775109137073722661233091471955129469380639222563091261020468735450244899170329065053043713715435038515955806615054961521544962002661897915421397001468639011640330202879694222645348816771997094126502429119093611967797158609284264518041722685812623627151001423296770948321053849584657329609986104774535244251447999282246314599656499990814782167198090872358822399339045632116623815286102839368662424989616664914515032091781076634096525706978508808538929531984737498201229267041235340147587364029552977925545438222954665794801461262020834841461712949054685000457861140136733339716946609634080434415688765883330984192521567402241660852922491330913914150953194109374557664742417314869309817394477737222859118972840071471481012875307351053858152183989327538776199511791331320750516198942551842619099032853501002046364303566468490418202475678696856821053857446905205270144896712196235015218526135834577503164369684342511122754057897774855385192200276159156800034611434897542385757526465837613626754716943279399431052904992275134581048043546323032659830729473515898507142096167911569286387723397178511878795080152459845109099265386048773039455170532809134710320876420901681461275071512949192233554939455766790146397112495784174917343248363554752606357247500841546201624700345740161059291951651459890903690749647591623459314239356388220837600694555558228373293289679437196456238591676048204827293395903806501837356632940870455857675852775323109776778505183853744205148511916143316636332529205234844131338283848311066897634455314725928418032181023691911320745443504745110929988985312560044495031809193055035729566801973272763030693322512856606506058477248692568422195538871646855351170768826335669968692251821791301901257600841937002124409221533549729029489946707602342672659818546483991463254863324143349206209299187161342766253287440006145698776068299500163354778697070903133789461121230342088740414291410880255959924893384269078834247031361187382279895921951284712229032449941977587804333492497492535051672064575352485630100970056573898373630025536550896825883417168450934653573889255251105497186453762726507427870665685083912013055044739958800978203108510347676745837407045908379891957201143039298764092216363892852618600157942433916389707587485963941873865225701572166505487803805375952984675437829325058224147731376672966872641253588933382496930533663785242218671452354563578872405948551570444927408572756338437853366454888879551881033121557403417599452417727022691880561263119744993219407382298530956108674722752313907927890495076748428260275009890228056923502093142705382707365187060025460534731644992851349905029309268508954925290269212119147758045660300604753584620801961553826551999384203023124957903281903599464702446013085743766497843546915314940856969443269469914650749789556153425914853947369875960289466506065038959339901861427275357286297326802727566207795154726174904402209687819815309331218986191270061812098617341074434201132464512744347103091989960125691083177762744568971344709453198052827513548047798000504093400770884885194698968861344079781263529288846082712820542656871076274651152422564026421641861710057113604674516319931956953136808548787275709059699373986178962750326178899941265795253156222673930909336496506500374779635338217439388978242082509047347208778512459291261603445583935282533940870638501583147710990867138043214662819942628292233549673725739466955553649779137955493631224821495782252989570083488057750811315416988587002361444603716926535171974880714247927240235605597589064454137356587461422795088540316220764916067585233330339969356625768564367367504420730596785262569685759588459552485078982542993604094838167563017065634505185455848921336851906377681484811122356206734644463592240749764488553681714526970986839775869104328874876228782476368505766058222675823427050858217140254118923072783171465347525059404319773371946168241846139241704986705761837054698274673356331056718443384355562630956544932944174810039852881293927380937777830680289795078223683662447359931643877624101246838290701055572031661073229313608985341163907772468615392481345920957891277981303079810470813759673535811708964979979894602744981583611950695754025953787174012931705226053619689828956760188671327447715704258198957187992879654283807728953448586721567197415010651487550812819055640179751170755757215824904013810881692866532173575476450661982709086236808251197291426986130775546260988509895824973964389116523479441998170436477114678495841360935693524294364357555308280621633513245387208726914878523584982650960864936543224418538826003898081959133804421117621572746798228821360156950249416731864366822142975935899326619465405344980962663736531469746717590601836573575820169587355848626679872541729725720385673189878854395241963419058504161491996610272160867739381791429887805936449936817881662333914051417368209940977245128394561773581003481392447464666467064897156832333864167741972341425278635192088333392540211913354371094923497887969348174394847412297711591574100440600109627978046223677353218162948980275566143332251142423117126145600344449150568141923336795228286658238014784565514832496665160711345130397795889496790887823821724245495722726931700459115574037066395341357786181598482496728633638027407940834008841761440828308882367782124058860515512596601697387913360749978777158066162760952752800690672702366631532038344609448201830815384112317628429591385434457763284705481252556796821564519019182376801372193636245750705782528325955546705914897348493709594210463783389949322420512409304533594330867445674554148723732397434718854513701862146961028040143755028860675508818127801627289366625323483345691914378289836836528908263689521157095821748123948432414974256807836788323776920037512484295782619452507508684042178357267284862457600435703243644098484207403585775137248224023198561736213823206115270621567092454794454345244005534413494985196025050947104590508151277537629212527921414634610719060673875295165710533078694473999437471631484500759474945273858690330068812461754966541319142872388455658825627125640380382431421173667764131233469576990965251391816982571532990847679806550556165187010462087554967903653092564592812663220551757312428056083894354626059693245214702986810625434380386379981404626964705316165549730389756673702410179983093536390511653778313838677162185721050968023162466964178116950168775378152684956989015756131860165202263925791429588971372711339411672742526283540481480182006387249704659843152725509538766453358980898867179445351560765896623857913142169762771740403692211746218210130889668771290135066212257383088534953127788006846662313636774215470997748722824380240404304622127995862089114220930653426810238951704105445930414069881725063713520502359029622738060908260243602557838259214188274737270626540115962443625128151459710759264907281176758871338189869118043257767284882246996064235674557794421320829710325815756677996153840173772551489676697245651594484904424275457268509672340341024674858342135325181739159390596867132403835716468189087229180811992118168451546757421541308555453408874094385415709733425719559220464891939883580064901197943708223140601821871181461753138631581464854205206943550011006567737501722879270626944862471052338267134154649302052013574996541847161243540449993185606734086637906297161037292400006901794271243963646129546632511065950249929426450781315563208359787204920160740090177462021886809551051184493994514713628725755370227520971878751544517506560942796670371554082014776392174947868842302727741663524404982394703115631026311295719129004972162324286857146197539991431575304894602563408236396324962535293115470927825809157058377427828076875716436758760354129310923213840736640656391436517520520611548268509734220519748481279736630909030437552646795895528671289950292619389474035541750703353034450447959526758172478882342348707411256431057722867318896406945263527327170468998108267403188617315354162115304060959537098624330656583580965030567759004836438179446882089325005423269847031202256441764765112196092785941704934776209764131312561372949567020150748413426659546045692751411386087613711044938205456729410396036584476214075660808076464067763749280609525053467869094789263006547293586446169599265426005388723032507782837253264289808241287063319704154924269255165064577762234652754781835706765063429777976933720324376346653834923599304569644197840581621301490757635375391275410943454531161054110929945734174151126255966025628829290550369796734418575644973353904770104746429399795271987081257068802141303472999075142294650503442729391277353314242797803466913126728913248706859814468172984768336329373059782222062202067837689201126086295952500133082069771740851806536906401478330334093801504374738865497797323789738839603433021803661922625818333624752787676380300607146679384370293790053273015248723832031639874644067524778648567670007305319293559257975493479375171425813800116049529120061788735238703579387109573623775678536372717357395425814903684112398976757965934336344428168700689271626607271032718955274701662434541059738768807834237316738148624289272560869229915348147597663235933622172372955515450160064024088370452752699927830771352728981330370059549097706250133178620257381115888473258943863947381333958314836194233719799765297854610429196340862825347429619155362455213841689989940157454464096636885712816817283816898062994931288072148113634375711782923525419178964045406772463724950617931472721450928564230682154339054614958255530268754383667381484813460811997348215004681173391194755920150360880647761479370647266633290051464324525183607244968513840377218374384842887549295240273909477822358506646169507790576238581417575061562858864755089362686953630032771714815980597451146158185095617529449275368648030147845502142385024486158406993421029904563774529598794460701353660309310053066577343426986069647218702566798012813858074031200165895462013559914379546346520334288766128303725033412619569155547237338749812041172176976607601570720240818344439246730102792891576039956540812383306141023464916181859847139788486822167154866512481968028673202017105568189659531028909038928249858086175588998360580147628656159032950943834845898677645106147362351066602275233920035060977314712892307544917465152948880561305806252444878471852778533673974642000276060192815337366763597914696271616790257994403984370400740385601655967071998209640000249243373527540402192026339161385430068083657106496460661676306412601029695660223724720660884726222123881450410546339619383448137018679328445003533825778420802030865442203664417904059767328964674597286053507553394259943209816438264233985666657801504365940935712465768713713962144411853386542880019296914622711194273572136712326569593450395903305452850388332235027797295978317718053247007254416070839864603995218156202570717915261139019153780635167625951261183687237461641142504656711104312782631953976257324702965958981969664027170831211905101546669648462053831753635383910160905385372508648745855065224415561917961531905913340214044955167391185542616953532638302435234657515455768234712046172679427699966900799966221566162639442332068461787057445566601845222760018505578193182488542932454665115247080522314511578492983201329246942009670009311389195129542949013813972584739789883046783486684403873210988112543304883904333871846768166118236903019503658409875366872316986885368462566407000676260740211412024293267594821623117076462339527465076452787912797733424270095139454463095477780591825498873031382718103984779518110571231827582217448964047309610141402020574765439799234279437640937618228658145340990223673141710702872780779881052775803864603689282801617613984618036251610798412400744944763532615357498203498147034589724607256953057495021617299805308153018627681783615217770866750553594582206650538384093645741129040243798942339465471544802631441516488569946997148845130809521844389476940323557367675059382170990919535465999300411655997860303366653611264606211610944051050173923032108670238394295614584154267666376987902702518904237842034084660607231189528273058994365912392787030669850380032541655224463450192070743184170274794565235779403358896412338270916523342102163784014959873978044013368762445363164574734377522072783671325323556198391978795128820248184252709034485223861763118426379333509276282219043809924477513383428724965888710625589480951570621891518300873043135874772479097224834959952702877504032202802383467846479135327826042443670316795000965407573582788837250278785992950317925700482602557971882386990035225800102867593716615829273134875738279174909518209658511730031900587582097508614584480594328067953051655474988204857868576719967052811586022968037212541106555477822746572420599908161605424393486637828157665822252254404930210791853579642133810901353704465089263578393600183769755240578744724149325062007305695983524419008571702488629751750700923741635782909419839703495011907213572887855683692852235422675424011200331516109193026386296628181414163052998999861533171907159667593587627056657483480563610507022586963312633326337350299005983329342050232655073143325788866584983654548655336677310048506347475927634594610668553615981614013418927718756029456895321307108142349620853699886354009322754930693663546407871292741721952362591596788816828164969205306972699445107547681705381055644257986501476415156295526588892961388850165056284191195049651793235309116102083815872263554437201699976918595581095120040741257149853961625491263426922350480405837992177948248113561079386043063086336442320650274932425522639579549678967099781885277039364102266740693834868596346577268620276755150843762519891992635752271217857196145962477492552162614972545281077416249003572555007981251260598765015931671078549757221711572371338950279736917976237976650491145468887470638816236952271875838022877710147408735723288439581715952787866546227564178561587116022102026758760174683560708637796791988249352671299542811175892769551305666849696329528194820408534663146108729520551369151168942633282933289103472612075285677583096148891635530342358609500138838961815638489575986418709801838386003053380990736412647991482831166862411920196267699163774634226690497287992698725006322802589134009363908781962401168680829370861622707869058661926957907203659898819134612192443310031056861436318545725365022617350808239305000291339136385193600785288120237760719625303846101768911654859940747652296343727392901826806177903065427178255499745963009051656175193622498791348223863421717247954811447524617542488589089599693532318731928218944079348657279097699388648474266270865071310984318953933285008833713035953380757479307861082484599654182371533364930925900740664522600878665054628026514930599442225364182200855904478181913011244984746108275123279951195927545445119899278417576529352204674585433275128003982738259725537662185893299449660104176113193424192951353257697646808270886821986457853871805427463781542537781296059913171905842962424658900216539670076238112651454756033337978167119538875774487688311052672808751374815999619920244677530387031935624810872784345429439488621978355058178732899263339663138899886517222752233513304686398941372289945149930593329733784818780416077118606003038395405928312753535931300714492112881495053829783501722098241316995533200416932610469644779193182257106738240779748878395907629148994068089986755887231626014987064646902451487236868148083741373877857004563181797222989312301961239297560723203241574148001468990322683007913648906608740605728241480823879766975068864818551870124360742947417619891344370791817519111159959225890284141634144447501350983738461062121421996091449499452824141077174045192214294486475181549764868401511222817704735366761316179573084515897294662260320006340976094914572722888968573351187358720209549518011030227741472019695608829443940420077833385367950249430348807244206459768831278271292965627585103981899975395653398940039441830994955927731119640566368990669094842829443188413618431208987731412226557711364916393493108180405576991765237326412943385103035877914762079481993838041510970731986986323050950896830141275338000635857561680798421361612397306320316754460460646983240809024072630644957627959016005439224137020814969511717603931358789180417070297605983039237083702920529073498442036343014723128943932165428805024488888772762660292056801072577334578645624642650206249074322432730558751941130818602009631981195790729138615940435688046142136629024583180009078627375875812146308346158787131525866520800897190639005616155909712176006163128815413910972904199719585312819492134217349108881647989796828170603776432739180278094682963472506471401500331281512413049875536790594215113970435991763617866926532742764619014188737417291908667560861045665754946982899120981175065062468475852901202192367985474443815112338091509027210185328903772136913719503603199397585865297730747947142397712880432199818029268413701717836558395653370760948599634503686602607269034055431385224594902994851839546314176167648006600816498930654632601092354855088215809722976489612147480663436666427283965533034565819207037585718176038691161747291381593383583471464156343580897446114666496657854917132935494909681834401686708227995514513591401818404460543864297906634826704973142234057663363435076083150257500206297912970951192158726928432791512298274457187266655007457060182539070833796688999768083529336611017681516277370404765641424965788342163026346231669925628646689834136939139231469062236189845973915150857042084243138314423141959873422881404450852458951865061122393037822028598699839963091610902342712926349979972857687805023881361311192554674518955769210379508770805217114296882569425860432294787008704441674850204132358268722543388171355814939310812514199337906328940593321972684436901089918668805887561890999485836239383941851301559361181651494861328784972963714322655816871052902582432746979221962039175235382123657976861839021436048110767531945418945956608072066154371339397264917576583576670743885744728865344363608116221493243883406738190628411526503345579979418522816730988246774509195552674997695615582722187983874996566240066947761268642256724971924257544320340332370360453823224553955925658648488207296963146443416868999789379995502920733093910738437898741473384960150000468599504324763477310015242115744665062594136627654008762972653362126470156580802210196393205683972316620687186828493574902315846314833790968684563823447297671810792554138403835922057981049455947844745286951790244571588009408731574624082537614048554007675448196391774794681677907365557795857698216637586424713217926210546661195857652301654071106656781455413755128811276963461192974000860813045406531533660515502206860459010339038208444021247727476908165629718310285246553097759729373838252520931490079960721749812940999035213894668914756313465845510672219787594230150351845299729923312718655226686773496128175427122417854410653466391000439260584982491519622013497332053014319527506016199546368103703269910144229286777132506165937136260795162045726205163518924473014834779940863345547708498842905941812286319888332138239647987480894437209034221306999093205621757734439817359472493701749600783962615987824086788145902746417992738825553113289393358747256514971089460088754834428174546689945140343594388160341014336517036496700084875265880731621355239527622266130445609781460469696722078895930013712102064909035186104903524482836455414566858257660029874815385267858672556856836319833029681802490985262655800666117533316250828066725337655937743781097079634423728877415408732818363395491749765165756958069034219283725578746326441038526171894537424754882447207217750721437015203389450661319409329914454632970343794668426161676249191639990085296278999263247670126531404517911406838103447633973221294948966480677911539660762658485601396179794437045510035768580928309545421736544389315248722913043911193390489928108949446140722128423368687346687681730763657405501546310077138079432464000913027055598707914531668769396638117938124958501427945197816718272465854584749454470611779280205528951523237354800476806497293132053344093991164070012696885918700867849708630495721912687851071978956263799602483589405566159044515192791272383767977974954564945609744772211636552968588974377760095257722179891763688851265211880873767059609606359399960339248738172503429685201420855317304645489093663219964974378635744661808616473929217812577269536129787522374591878446435719041708553046058770643512203798218956120593515624855978044386356026233734661889334040168112515916586547479302045648394004296676263371061010907899993910073602402204746267485961536470868105493733451046628018958155282710411276512889760281573933993155830357918800940511383370079849135907756093631667775906923357831889696598497259354479691865972098004289556838816269190377604238291690849958320171812316830129466281840834794078997735957868618685480645487822437367464342862000406337888239439639605916071016077755511496354948131110174794249391964728272360282597626862613603184568526474742311897208861430621482546487001535227123860263969123000421890587108914618748180053588630817295295820583060663632268783558655972461570002699899048355628728875741208889086281706653144753481930010343143048367043048393512259374156688647786334082949955436921264493017581650983743046990766515144068294607891371870287421114901695113316674120316669454579307588979667488873440439402454076027872734634888975676666271065182244537919266319277964298361091063980840039419451739740931387707237302265412714288094245742319890924106745325948054605377130675104552187632698328274079391172152708952950192809140513524295221641045504253766622719572073312358431163539419953238156300127621157505418254428560211164689579339644243053172871929064276797858003981487945048147502951573542319218386844686079987237800950218103798864475400690827454419270536288159731893211750766331168070574500178543638270598144687379836727290386785740436488964017038336601043635085531905232134854055449521490529541327567022928872648063356200916197185848824828189618180547270997565541680722470801741264930696000224451317961404950590077963862311711210225412411010480093257289887812135501952933377113684530144593701964975591606317456096993088834696494801706162466643424103699809231012247891104438928999025523147941100525125522580668538538543148062710799744071838202044183599793441175618733974631853430978264161299770637515600086683004936464991596288158788219556370751412832375720985532099749482195740735250176019427244577256302566271751540199545862332488314390943461093099940402847544005431966545840363121722068231395596145269642896227636938888307934318325249549730248316585328344796601435321817092031147529034360006224018322895708243402764535426364792967002972243665518967214443709255110051651835033824939588023218073240270334054013515739451999413571520160749269877810603401803535541810429554567664138404930392865754823541065646279139468861688217321128998931911683995999871404214926332723515266666440281026145466200470208123937119523587240287380227283897450604883661179173895621790226278753406655009552950782773959751647174992032596478597681135711678422310345020876060137908285362652234797971346356041753579825448799805605986890087805767477030535742061186405831896313272808011535743769094085058918777606030547940753368319308662407743589368018210309826228416451822282632891422030904218153167469229375380299341990988784400301048031499102425286203101427891704838734811380981749751313227665962118044531047519608869869341696462216556031295393921511879003495666411345872908553425581935127968659427579295075354831003929006789060263123706907802829576779334362443486446677932697063591255680297161762553437447583873277481380829642833196899845373424601240752567527095521078473750710874445075340094338182604191931492915150718454106548155173437712657514542827819480826486143119639675573881534866105663763930278961923174735791404946359445749566560015616134655821217466362474446833378710010652359906906803419062965934689141573253789489458106410912348447249358549647132256814472907184903618884178446925929141404611680775741436719138870089015299436405492605356516605081802332050170516846872760766497530366086269156252003720087594982010179215385822755543526596504336063177772861425377062136871763360720350071584470070175347187608928827484047817019460616012567626729243870087622821068958542839600378731792099930039645430057488463091688233958352672958471030751085242959491033488624708311456532434995344810893400813351691761544731571593757970235793327906776922002657422167432067940915095767670513308538930300725539565380352535043633266709222613068558283916799130767942941632586215330722279690336954201071157843904614686584995536174190708763902180593502250087233549155565184158198969455672298151740411862232814381281350160083610993672365948677451506361535040199452215552458662227123910279961765005754629948354209360964361803598221348682725989052078409168298929695193752011086507103728211165888475535893616965311103956517220527298206322103963321674115953519737296328304508646839137816166941212151143975944600571346603344393908296269976302781661203487710937552142615016415365043419655378151949567065474021939573383896310301736691134593224559359202084247318677220696203379044327061789367855724034305672887776593677116518697440466772867320889788235474983078685560800370034433350738274320337039650362445117127881024273238355363683271344666815701062303044942893548167033795929824716770331882259508091334068913821687223560735939523926210608140514622252899254907453822209526322915429531145536028845197647364398113625036219048789805884807052316526171691720990802476921522001565398165616725851547141740807342590036166901785086840770013137396179965880807509808504565792499483433844206965690993193110053141037731436790942778896592978825191742442255795854569279949410393836453732969777820574188031708518590678650909886195264234733365920473196978397004920897010665056103573580185771041359423830634045997120241487924978556660518097942756776112306904456571938113709596087026798980556553273837809763676630180712840225766390404495490861331101597785283613466225341402347267391379027302842235273434953363524416457715764401579330022108584548324375158835581419113387273817020278439755454673492359200903608654250331866148454133505835165019486865672611604783344004548162443677908648897008267249013072527518410025060124983379251321645043656044324750425454618366507634028993618134602068056054274319174425616836447275479210104641832258112737483119960734647213292904806538076062224816097952064258357488323145008637779429378423616009449316912589317921285628509953003480291065096920436570687291162954185065840276768841903129361434870977078896346253020782101052594009332424364131403029257158198685442863033665242566118615530401688799970899711747087958917406804427478829780840351922875062454357255744116414018079988989296431620010187503308086209088936089273753918175488013039071412193196428813212838074609793759530737589116549942890046583479881962167238020446397383673762460753733079659542687469083215128783943157405891128119226218704086109116783719752835375066284479036964281103946352151151811749237608983077079056842971382517335543346604755982875880256311985767587695969866496689324368032987005550574645658760233339528401110498518697768709530050765095522665985794796307532128477047632763373485037781942664669762549698021676297110926948103169754992994651870499519963241155522827329727952734375642697249582164016455593543503059384499639927068307555114419033596713682983571739072965119615828870397174084396277936602124205610205797008359929531350544121879196399081537341261457960946643880852791965456060397620944675132331228104598489138777058507812764407091573148464049865008577482366790693926656520702759206149507659902127505577738294681078009867332367187864939755572727518626834889290639943360704927220076811523473737968321504430498514634058241305814485530213272697414231854435460349860884571297412818356351705118377607105367680180165133007437678029991206104310127418175442718856677146251644892919846296391039587082321997433018567916807045662009606854245234974398894786642171495929188256572176337019469731649049735212080195761105378363452915514860723826432089933284219920838183257755839224227930229212618845902892240998149203440272828434753665692510357526426072383782132110129454255367490754630989410476870910134413388292123382719920185003297976458798068673179051876039663214452317767861828931335305984648177092825469295910029281131828850574190934075490192513975240992242786793177919602539340584442887471666641573934556166249110179286849277894219097951985740716202175138375336534936081834931112885321284216968747246522079596681881847057637045567580244239624917126856145176416125005947032895734131383366593075841729111236651239340110344170961846037458563840824401875719909394806518955246441542499754397231965303596612586950968543580485733871392705263757254479267954741464742446853788368480059125821227567710285867794712125352416912615554964322142772395136104007731639119169595129708599926086001096461388670990475425135310162712667877732907216703939183517187831112033751699335821614749576445725017323981634384164369366036768022515588572967128074163566422333460040344652160165316952863373963422043843380818032754779345859881885061298554331518747889779540481553511494469208142258030226652915760797202554828796318612162680640143398473748666212473287755935244446549738949785649756868962898435855315509985676068279007806646868731659739304486689988776829658796663574452724331938873065720334752524339207741179167769338917971748517804386292451292323967123467986592298369010159592529906291328991880071589313628188360285753731374314948519389642690149715387148800579813631637297761432925251858572165507232365322460883119070070182873187095181108847876165137819055130881047253973975503834745840690815670329056516178337021935121453167406224468748392039708104338510827207653793488370671260143285883812400352671286781546765245243378208527246518074528389194818331077435629483395490192996731134327768970910213858302360866327581203068501689106993782417466585618485771545278348531443219615265338309672574276041056268459583743701380467818877334976316898673897770573994408133162787567130592757193448714843818011956490847260697007806113274829719307121412584706837120111384763454767981099467031894523830125459451829583852099041832370903022282672510934984925265797401430868916846627026121192005542989919909199263551791978012758959390220748730048314232356089735940336952279176868308636613845364247037703775058636875014977003650501536372554378590228545418760920062292180756924800069903285220778056186383736882904277983136670091152446851695829764021433366286332958523786638101718490941539323922881960494394505243346151993888931304150677517435348758644489396357749905514701326544015048294441450879071967517965414798540860130661217696655845198488312855000877082589323480011894812548079169312592987106626883836533868275899585061954025805684952863350646455893938305598217218776240732339332639802753296801604637060294592994410534972856610315899027023333164649141971337535423249116958055154006506253387698908624546201258792651731672043518159975764606132945593377216839308876804270185380106410775677348261313707777087892966582578218597209612668696264019341452265829894799462918424609390248172724206391388931972938733232083671923318839287257795592711680321757374554464487804035337185020588077314785444011691069605750816192035557153330715212122777997464432743735692318396500410579140664624791020327632458056179127722809896435223463945483104865447303595716544388922404148080124197511518264548037506147420853648844462558658779969855591740871786664356021462948320429930653411158107466963092753502261194618088430025246309935911366975425999006694092327301124996165211010001258752388253707360436209122307152283416221982491333237869745951800039361572274164696763259410305540620074202716689957813280467775883999414767564304520009717205113082394482735300728728700135515852924629282297227786900461682276963533691522867824588801782342576151129795447040626176686691729311678469468831713718567854839366959137150985028034122328483164477393257163826855463605903749836884142873595778864649911900410603764909445826689155649244330361869120332484979530923304480327136231039768440469654078722643620293780999724379767569216291088249496788796589567129692780383835118772675817883823765833737870521435461354281509665142371115790457825460366687045453578002411465217326429792749543700080926360952193039897835361822451927807724007748764772846615931925290850102805649710034115964574493984246269153272410927900406551822713688003308372109664020356897526796528379078959214873977326292992438896372983720315497007997997935454170640563937920079203439334310851839401431266326156808415668683056289731280647520759482684673464625927876021757909492843167519233877088517066891989689468298888902302162968587267998073912819840922585987620387691382410244190319736194987671650979079597717676949225848538878681468318603712064300811620303562909326191107664185062686186793945685041411600060199068281330131082185448074267905405027469535122608484249126361930787271777238563720139479234157563276642091525065150561090788321399859045164621021066519147898582104613104759119804567391356519806736345228558971388027462948148132431096529993276139198586883859255123835735312741195969694406128192809017684268943764664579238585835057975356857522871470781340650238840792932062570896403878895629179074826181323809822615235824105806004900148038920988305957156304229909332360976335109451260939061371795874714470353871948413508627715078982847912275558254188139804161973969095761964653244620991823671936890353953675031331779725890236896206804764947373058502499950799376636681469860533981271165069200061684071838598016786379370001080295482236749250601952650127719467679946175761224472766150496396381516948528364643920957601027347651081920657372341231500446383017492629564048349918523080887437365988880714023936921349249656841784528929884986785892878917046043820794252473007650327148196074118956624486951149826005488599939312455883716278736397011911941503072317830017000953982230147549496267272648266429509128017676990201462189441261558272961204368826854600352294703686656949094925938522425839450446406317758266407223413117888865357781871694820781409765190999393039892903447190014981232879435759237335079025320155201692713756921904727100838997222949546409964241233436082698287624623928860419907842789493909596579126196687677837083934356744778680897537206821579314693084920779339803699659912144583832956987257306592527740221072488389892016522238951891222504352996001790061429331931581472689510132253124036942847284617091224449525224796995566189420819327102625791231066515599955310235717361927314343967624293978551615236390176914083860010427783049582099552266920587828304617758940389623286945277162524147329233675885817841981073850697102709891460895021444795395897633406342238810307438109798372164074556865691575123809395259843521491968668156306038733257049332676871369394304045420213522491145775860397741319129388080394244481974152083135765558015855401718848525142186799021764145040667357308796814931482592168976440778153603968624536713922069235702068496974276588703250822071509338099945944212701394661516894103873892738482834064725709821121497924502382919712035917452377477252921736958878428390261232664665531512172138912397013897436728919571825669292185015886401855762996101655547410378415694069629464478863374244760404946588739142166412121764704236006608687244880708476042374079579372388451677118768530508850627479188842460216455758392114989843141495970278688364811909522357792058111612993187355179570918472084404505606592061161909990304978110001352355484585642224343932876758967178749962008809519046729478024857733262951685518140706579578754508901921474689396161803938373787457029246629627461330268890342649712933960328497397045271742616400599563593568201423843424692028737958153143246164736260074027891979508985173452609856641944559683788275963500265153915772859007444499612530392453711911532968215716198278151241802655504998242534418647906409183000127289269204084941176664143868225180030848194254713197807188979388305404534507699027774118001903975058229961991053041433915320480477468678428137488362325403215791968189889530867920036243237323706260302284197034898955042462247503440809356319965389772677548449424703332315284593593646772018114709099621267147550254427630191829498435626386965946742205744885783209844855908075211503400036093701225090412188378994875922200437684810518806927737490106420150897399560191406780852667297054446431591843418987307722721181749668789483526497076821973602088040096886621127852486678451143800352733630332009960950088199113547720803111208330535859933448232874713259190100644860906663002403971230528201028454447983292140497010962328046466841817327115954863868375591358779630217004019179327877311149852823662749577512098007245487741386769954149173905655413521463391402530123310034944558098949306722763908022627846293562025901829275597441481446275742667538549873339757162895886513775277207597380694070295587674128813687537526001518762608945676262663180048098153505992850759727692338653556674612895910010917782299473580093161688317269468150841012791813735788972727819162392038272975032737272196063991960502324522508421251562753897052809504965828217071973606019459945646071856288701876873739272732461015341297772395153878865548642726854652277113240292964112076761300662863604305870788990431286414741376070293963864100801230893527941224640511935842913703692308212772742565378920820336382574930090507616733385157295555234346872795978675452279986708779284441146232833300923639160355025163884000009447465984985512484726022070958541833780662674096194207797750657780345054554998701927035353750058040477057924005566508338033883952792450766410334700362349622670738598298478298971117124227596820951174011584892134712314893242078720411651367642039311107415617616696049588533093311645231034650234632834108183703426430394261866862204749468766787228205409845678357590756457271235779977314550275442514591218198259264196841149829559545774197062878201854784872292734091085874442137368406008395627576462288781161128401425318327041575686884313239958507619165782087666312702150532647963177494943195661873459444568815783807171890350842729092895294552845732734856972434398964276928966636020486765249823785888380582688254848390716339292863453587816012185973204801218014603571810357410670604646266475242123629325258218576658806862032262259101411172619251522644918247299754430538202002210813188480819416043589458156367221994825321356540292375127231417417961972727381660201193124649214122921099886267524531409862768725681778720967348059262985170458536407244014912804957748993057254924357574979253778284015173267912324233433988150406885599862789260251627567752226399216616512132316349823092618628693192200063722205723110017922585093997619646772575693815727150885581172665267583870829755475790370303698883909552624956008641998963204736125295329822464967886450088015269849597964329217531614632524868411766601060949159726614057596486714699888748795373122360743455747672416053400297193586013523473056411644676047826253266685815858379807064057761462181406247047022856734131817560718204185949360551717045313561777943221622641392109645216203091165535199723335727868808602463318818861599117737807788743366462006564160705059796819656073064266335608669266533191410457788780721169758092851853009672939988384148874276886262967052765509357922462224158906583230606188074538786484735690135418043758033604681179737669194110093651883278122458683326239368202862289467006794693213696647681747325944275732338951583423988020283882122635828592620455991676665628474230330460148722838022226757525925158021269108931759653395468005528820505746017806069899893725610719540961545579910304627176538494963646404536388174784760222250076110242165742031244050958099138992179614846092715454324102370868163072185782300680515678196075821110467700099392017167821267747475482374821431256204354459381699896482115765405463784678772635905287224046045694985181983857214389695603934148198696547320566556463442933228104893413785077190701477859206870432206833926734199918305059524192513031206848737786567576079551373072176719460215628641978309199603495685388742936378050118059126940161516711723512036879188385701145886211161695464401149380793303257650210764701057716850323743158830971582859854143469116786241885385633068171603757150324399403911976159735004352028723010424042128662865791648429674320833643325918358805128543169697659672895554525618636071016182718036798744670909222771011762093346106523449424155246062673583348305237649849224607428444904926655607047229511177248273143516528632026161693523711056107381731897285356389536515251830234285788401193471070958205931512389343309532088625650247323355532373536845046993959369718163903968451038178268392578298863823832664324698404894670346290295193018314227346472393904857219526616030898213028389112850386574408292922723676431808433258869088516885880327669001362396457958152352469207236017692993506773353279432729391475473097364288146677193591405711778886678423773931834081192862484609064556134153226617265860073580491106755507608711419037325079615066618675427515810597690732692367710356283918809751176230416266973472096017362578781597841687044004882086745278445991832725035479292118370563323622421772672441549833851763557926862772500086862026218746394838079338280620782919381371438039976168653367709327800817287846401309886686466415657678065309164197874084052876350899697544913041664370220838821978697319834605407372458359841582245650350175422352937332568643207996000584659406186486868963836923831904943579133044010687968323263791004808850493339664253996671276775436712922997492254818767199047819086514453837783792245648738026359000711477816702957399595346876379847617171528748721658129126022838882536047371609273589345428010401335517648761884930341975368916451712410144775728481820032014184310857248625803927176035124682355973936781774377715799852678540658244354142018118067343247084814099253044798370959152226796267433900746271727336610291781370434476622825178306358361986913053483330303448543682276846232037729996646863074864079878788222675997418236750209416433836468787468131844355889098795622150179487739981681329700359312806300604156172898178145249659609464659433581459038601421340020216429996940578918746779902279842932049004645198559499872209648298989193528593365579607616579857420198381738781964703770784945227991807792542244971719207967206317594926921721299366453022754435256376350315334262953013820746436818597152416204199087054940828202230316587098574244562968189761513442113636549050642607998029785683815020032861173569823645185230693376967675899056158061549257171035539283572174016536541915273137900770098137117353141348515551484914130761665487558332637768524320394743270934610958498116324216471054171588226876245659538146797644446291454367844549195659558573273704805572534328958732840444718716980174927573801784001119466764738183900025513944114695399353505267069151245461773722612975568225783744131820135401472672348873377929305541464008889861584352735651084319274747120486477486025947220483833245377118672104352878859131624521911456283404312694239557531313627940577229804523520311545176912344629257623492378864763160687739704944946065448857525365547434761808838006497910395974395879576075823692835571998343604583248328284662144279312350566457757825724226166390803960659796239359398138239942147267339969390018580872058421530969236825736980240090897162886308774179249022831592171074451136545693082539077197513136956034618412147406483582879378841088617277485998570819958883961878802378608512145957818997925555225784093113735604989316852344308868269735804671586004955317296951032459091091142537573242645139856602554635137866116648544819629874288514834372224270888903335593696884659396188698897972389951439619679718452272356733553175513687517977783898888196577970271635228178097413244965620015477952737530894375499343537576711866962917301895096394507850469257270275450528717187517142286916607604224800705146853567186714179267874236134736091759733640820864953333623860736986901087732086959724965240017823366954528498454099504050705260506978997419101127985744128498243937544334260152196182871296429209216732757555583422941406797196684767582534733113274727879142525014171787694844874767051632483557093052239868930977816873166210381508542269311876632368345706720962196212370297021949063658730761063316552141853644728846143223306738175172668440708413146027223733848632953826187293677531293216275272310725557190995069428175738053541865928048890136465239605717675574525835992906573865218476972623732976335887993876845686635871300302382293933210406520690600732658151731826122266841388414304709507618894276097534942362826051816372834494108719815315236528613489940402587063262092603626412355566648804972057039488717290279355455232795945178877869844220396567241869354361475036393851285702885155469511645536115751149407762350690359931068293712950604478234511236472621059151996419719444335854017839154909943432180102399384575034037074703417064904689049219549272946885905277220947994465889263961224172858986798662236215392416092543802198715196464061407978551526022949902261851683685549647874811488615745395002392810488451980609085679568236118019881417015086214675112809123394542019969540431150524531061928035177899243918259251043613724749731758661668155447559329256422825956693874981433915508248160841517074846371431236868588214220442916826857210761516826506219022662898851340080117037596277687568366903905881925715136431677290254045877172111739554808487012384500542192210700016396247977471750538312313421228469482137136583756116549940583532513300670896974738435949029893407837347238007346860118680029489266501066476516574910699177037729026429868842480793661669908933342228602116414408274763777618558444101706639789144993242666287411816243886224785530782908450468986449494157334203315732328345752014624754782008329831990830023140659037227803926202291937317361230713196609786006160309104318759460221317827795706039010421265928729103529678126953531846146163627196266409080974056108893715757924766456718567038194777737097444891664688517248210533504730912030046990050187196493368660168966824025777881586173357375181627145436482847376124196676610555976252316917337805683586604553712703109019960268670359298989652539747053418977433562625780772682501540870742287626316904239231210070674925781967415553767809976708808604759745381444987204659567393669082271565334341200308775010742235779085841249629034550778040016697069285115344004029803350229646985683107570215465510115376559073176288306377761784306168535141367881295411740826079439581668551671801303714421632423903332243215126242555742629795802971931013423248088467764120531493314647008065287704343031977827554841981793946302818096902015714978509831241257376854708729170887228377090155877478104113752440850391933576563403337530350831260183965851665660059589085877994698313194308832516828926724948395254673193480862549697468013570270697864122151897791529659710747241281506034048544742145103550024695739460985330088518840867206252722812896867090164547518535549111597764875281733026861321229461537368500115458448585968056531717840084454069204152869591516580849262115676665383990645441598975889318286804150645343998349843100595191198230681560797030138736710036030198247856581778731836958195595339151302425214340135167432972088989161890767223321931336955970650499524523122989575477502442981247029731128065589575535522026587205067683467704279956045228098337313183219826814013133769746106962879876763920531019294402671410546332847056147375779897757995208767641238803172129724029946064560901744347640815744202252418751739283269330219750436315443867970345479459490403524868502419153424095609881356069980148595199975512455951686522826908415782724643270331142448560912111195170274661098742872755764290008667641632612428360579138009621017249838869095327225276452827253109079344695354544558812000721724431255600047103508811843024947801814209231623345807865375861907403451053757733755539680279709869593368065040981191763894592228045908769925507445395024274849990714990252089469748892504263189508663657024413546469769214004002782784093287702714644287532782089272422347462798229799573390343577207432493458489932126279822933969879517353889213757604619473837497091630408541455700851366250000447425447452140415169689897346749051465398056139712134775294003027632093155239899087547400781611700610397196891080085869302149192476452215454209723741994685229563313066162252069263687914566790139946600587476099151598362621705133217007394566419413298222577618848680516352614285825810690315106514792284207246777062083594035653237467087159439211723522052277862673781264055567536386748163163801906698702601206141412584038654860638147147596894852867788853869419925009489737415320232670757192250003143416222180057967694879167422924862490296462235697325482101112365609001293063549962348917811642408460717820401359364112935734817851746330264087110456725989586166692436844406973661520329295589916044335034018317642585942839403411006266513540607605874918616870785653531487932602574416496592888058860318250738326031568251423699889219109796815980833107371098781644247686329254260132708059006301294862013344410732238111387922456692437089887484442629473242256917148559327157666114620460982515748633771650105026479098762961479929247222743844984307742726191760988029320602651472883939459984221069047419141954746395670083396000494568128377850693695693348214368470693118189380705486306589251465916991421136612097986614641802111688052541382236853640956833927424995462814910258715130442059054508383825473010895080381923774201598047269601789520814537824417712781235562282478174818617005726551193200481334654133266718105622041168979795895420742813215176765041560895508748712268574644400630250820937036409331842140145200196633366546730577690129836538829810834661675777734650297794513746477855669847608597624021520089500305819556331904056579426171684637323692102236969826321995040243204236532377485497775683229184649242186440855064945993752792187783718270209193231233913200858319569327506680757721369390841485917573914621991546841823349974119910708862202640791285969643444481712991113340389694981289614648824364950007109234537559132757432641483332029450810519013259224727795333799148575879458965908631030469961656564855307994157921720771641453346680717763211296505023950205403501839536960802935585651041187144463273146720740807652997456832971339259658389712176571384085016660430491258581911381474432833545496330035163539834198312774677916193592055045191733883259211068408583720093294414405024621799781806200753930472881166904042290209791847583346814336904972665061558037907519199165494451939210322744914137003445509761108274664122182422298293556181327286100648582523401223835023139628632355777162078202865065384360016454533590232974325636002460344746239793193376154417515738736015519921932817619494564898165634201499785263041217698785047573226018775040418564318967708796084014236099754666177879793360602525358791874166790441991203770751018219146212141090649381218129925131735812624090622168083929289615819563787183451253541451217486690421070071154872369877305022296852771233785439905675622547174169008897407808971328477466074227312573897459910236118729746326183087983977951767123535897383655827846867219803983483033112914357080853903160246597691642096522109337381503467437415669039807899110426301792740943881366782241466783256747125299124179194730587203338197173395818809073646925145432028667341195219118606794059275242982450820592624106883863361502025336677239642405128637031678195217375304067388226572252818964212331942539915676031839727538882350990187350192775009109263687550782422006612591282980189838334227579176321697938269412663940113833821685518619788161386881483271442626949194691937988251557116857773458310546364234251812991901371814536453212458689435169141434921143461738325848357483218734876294519270296194228732956354446953023438429104347596647727333342936916011489979067853640533502723253798293521763945102224638898932531936225519374135280700017836658695518032186101147681183731541709462258501494670959665901626888238206807964836575780091563015485857583227124471251258411810994326518311641874141293342658857087154313711424010951008937072245458822020122514672383698099412507007867209926720097096418019406684960603779785383224714032069584816895382226472699653955410093912532186900307237248986548046394836363409480734804014666315751613862141775213334083286788665899518042901101674391201746567930002076609448016418238599654984286527567406768761027407359570155901753360029940023013620674119976629508598250833302116835318441579427455959178057869518745925692148455247354990224838225160272595268129732929801538050208288726883644195707519656738401711632031634067426465214456434653127142015826438886250974240522887654613760821228430501836833848376601356111835788953683397047113222104090780041223481355456264179336963914265739477876304425602630488450540011387093006343121434922160391859321318999767205078832142782440797930641194323570480262480882951363480438667665549765193347041815238539737774259243040587142068440552198450042586645772128609921892458064783279407725198611850359574511266420840458889436063772293868697335993171948128497804418770174348775747788371995068161615059187942743549171705516962897768743124623848667989866560671981403715947473847840612116528218670183201623358784353412331643842694590418519306785886225688504071398815302590059629253506614208240505817824915487941852177742652576639378853403516180571601284380996510780104996388718352651652370803698445869658889430844302316260074298243071823322474766892244067083305677019207408115139915478034526210578881700402003434846313003951989283470671352624345191450686822044508399506460970219481909312333490521728048218123669123601785691047766196601781287672344619233694053912927729960827801648454273240298143642791252450189280894481785821367044791164939119829691307674122916124866518509928373626769715296746208011265791259296919236526339643399411872435397008267247467124989196277270986766783317086026883569629301973233593266882742313166163878402135679189130277643934293445414432868104052460457081096899699354488223512345071871279247135104252786799694979262927835559137828016306555442170862215868598954494338943799760820353361703918063701550736316703264219029685266457152596238032714718508483626931123252118819786850499424030752691913959747574191719743469693049764314677187234795389720333276358257051219597004947524876523028561429057057244517482830334022173296771921465104093777656653456982727720982130906736400303590522485533685547760883554064607303634350259939088290492994698796731286473432576152771892617725405352666612734606296564958915746969776476372832815139015547116690358286971432857110592399256650093590716125359279658117091152046816701920727351705026266512371626584527417732664099953938700926902156035107177140549576924692530713059408744687065809344680230230448164098519373668765913122520945315275276742634806376355203824991021908827132502979622329835742665977137821823503762985773306062247187870782723910022318060008064152338988479540965441808994039418578321535486190495167449096903938235981663190291758323426029302175918270382619045231091037386024020027503505468381920672191108252880067220780335796733549346305066388026803382430923526512980306965839686120913376993431174354932528617100139571296581124509799515682768247764223569312310969197892298488153029569020929182790720750934989489732423122381772711133730294699673658611389061243342217997255045065663836953809508487322031158283511768484264292526777446510322430395105485961387587984424053232587615853030222463205138952103480191130463454366333269100933690088880705168855935376699612356881370327209543492769230584253815340731890858701416583863178139791990145716916528684991632043919385432322730195277091067339784219891653172486427877365095915083426838334237687688484015285209729841616017562887197082053140382293151569560295346022390838646585256284627517429090616827323636209983129349041485445161759970076086399442424298967916314628322335385866773579948732079799096008441480182155822994924351857682853194434191472971632604670719381302233125126255445381493539650129633827035265806596606720805081361607924347202035872092759146087691768196788271388992368823787792765583640842723876975988748692403499458577135048461615091224932997677227930258820811852951075445586273141476035231496959270885994947238401245840783549208935893906679349308410766770848692433971661229127041066414148645912654998154825631079374384945973574347445110810914029079444982099198118281243426976671043589630933455821954764138654017227966981248932884286253319163162878751420174364152003124554111577374155977950855512813228043161613450278797597990093460583645611836621977114801014494364750854951944858648349224762257774521489479235984616446963230692635879310738655971788707497208439590755567021250322204675691946337906319716639224612758486869865767314073675578084960921617962826030296114632270936091032008177587541147485956332575685568150302772121158393706322876005965728836695759248644841417027266240408580094672376646270927938259763193617589110922184092388579890157898925271990429295373461514250975695998851818083993311948573925631949973496008909005140369121746474722757593928390868984736435737512097754251757337032904147966313116294822906617233434873324182230145071981791281351375396625454078971747469441285900039839628290863346933957523638319673563521980905324309983989475106883362125483179562460397686667230519207118177440040636452509420254704970374941743916107815236445163700197615301548646556759571215769944940105857124286645680739653284138232240041472623605309092390984942345034736950673806451071035381246283913428710709032543315215457318855138023490522233957442029675285645559125476721675989489872827162255412434626501766464919744749192821621428342248023342603040123112671233344502570186902213676993515203932842000492548521811709457593245832979377056203272741103707821266076669547261421327033462559435852872482494300060952489049292306652561069082647764532188629852013610567467750457067643147546691751791348395694078388894041901457632834527823767881424078398115762122601211587037561438802397917042651670292995063347508078328810386483765783121611865092496834161615998522963019282724008571525094405466291234859771046221195160198170334164731819967482986119868222399433635682379168293056058760652247842300161468044158581016864165407899557826369529429580618919756266972040862442204612235747564053563657743490645047726427466914045993222433886878826752506491797721517079253424872463874674888798351982028625172632832298279698677714528603549040294697479068212847737320700465521546009489451121701226490056515194128272461644486060117599869034053152942014399746142690504707929021382311443370044455374632641831699360088459602433716461944871940693651718647337065489555584406509993462568300189774366746018858311882769730936421257191017614924535007060024761712020529703735955700300696196517230870496006944169167508810156925549512902878187295190172693109246651778119992175455118592653369921783436208892663737005505258574229007954045893718814504973481966028310733741155046043541433821066754326918699676508028007868163094578739971471576570829410144123421490809463383844064587797133512652087970103186894666487948527610351115862410698516102932308508333132055587271076483167411670017310132875980636307504297577815167388429004345578632443128719201119384475405738308037174510334906669191337117023104134581976857985823354369575522687607265217920676154920989012914790567813227536164437582664758081811289749170660364928716137915530340371772720428409387171339746178255042615754780165648096275030280534994784163801969053577214726327313459734674808503117566511467197771998799139367385448749346761841051644939266826095985601860034572436843531346356875834300815355655391050620616537427802943284927324173230911566401873874140375675098174201781281526695936319484939640415064660026344654304363893443096412890174907813811082376413361289298088650896198651542270092500577750984925355234627758664407050093067480620521374592982513159288600265723007854291847827496632059364124353433653036844972170368955948550801252068933734484521300476579611629316476107589939979089554232546001873895545820762583232290313748477128859194412106892556562875677693309422261316659071930419497662111512835202807686594608726199441953813197468072039262856223124548646503059838985048150513314970374868424226415543088410953365310930568621284148072478872295667341698182404459778498947992495971145614753871528636194123822761774150459581123059311056163662382681763694614429357173939635645311607756482482339368547319083273273191702713519060552107499936501172644248997212027238059009789799342402659727212469781677529469024868100749267287944354291359690908267808560751353742450930991814910695007459119283213776546245914142180393458480601722992647624460044891718495114671409653477777619218553150605916094593369357095832085681290192807473615533329173461822698828417317507760856678597181922861300808004665190739630075233885351945374448047521603780299494887243497469098551146727646011877734843588427745881080757787060399951989741448398562272550617918156988837048958473282606690635682549841284360416172593711892837615556746633609312799127724042255007004743519546177699924544217745966410978447046404753330377952477124110870929001381868564099086348334271268506691656677772020991108847916085408814182983645521173147221872011914277701666709872324710720255797830464127047481486461731818291662164635452298246959700040790154202853924185814122241442089487679140975230363443513297736218945532876271919245804732276353612489809103499463042790453192089179452377163765289253353297749961452968394098971638031852888721104686565390857868286138418148820647886426865874812199212627192595664853117356196559556889192890497487661214392238222804959048527899659709171274374942695621114572052507318315350934234698297942370631971441974432203418213311233474399626036615762226383602319085126011026108965437777920016158175955849301283064998330069589475554088230852468121224244638318598568088172814174616015008324014229346177444205165430885756229173245471081674847988418783265905666471573280306876512904595668485461049250450633024529593152087357255211977456285571497200494992711202561299210402384362596041412664793968107850951641707241072319233225786227320963486117763103755875185248251478558278150737798944015854356646506911547123103284659842662911246736483126051963717746447464537608078851005760919944415003215300497105322855874069932701107833735432272240008516405792303010366233887930481164768361892745934188083142657615511762705640456653307528082028412612832364026246507026615424070508327306418172408814118158077982955438819440455756512957143725435481048468748169031952082068565510705937779413534567007457307328489733961047225851534563083033764275001984177157775107899137078486302730273565594303766654949531385610339565887801892828998655176916842228610746265386333309060457525920503988907147104267794087694077095229451527509030400356920987800718581567445386407693421332499075158924818126506268614782342209915137247431601696997489987188210802260991653697399047988197974858089531301838917311467272740914147924972838141239804002295695451292137238806934573054656051933315464347852575208619168886157290357667107222280711992386487153908990362031097109799342011101686632504939702582026809405314471334446757778191262238257324767618075722007890838666180151257540564654175621823975242704228182384515893454562765624715151910048432347953591653148514893555621981787274752517971359901762179864033218767484639322694106866893527651817219069594856570059170685974375618614200851216292939149960681099950928893546436003101324818099005265329651578260714312091794605573444463556591718056734286553025369164995369963761201520952552775066350108623939006894500379527990883466329956785499121711604008194270941937135594208529443963393770304888455050749217456543743432096965740663759843574889456174916636386490125619695882808607059522403078873115280868374609690932497153670496530399566166633924759730153640145371815302778944943804761816330640783997447978249286925718514599484865467171903402424750486148775842006633235700913048914704987416001473717085532450356210788199619487944377859314107306840943661057039543091180279374236820010695735488185105398036838926036342964290890496731283674251725569397336927710368025154261329460753669594894437663621975026630728290440510514842480666273572076922323240149584390999807114516484042877837311094988187555323644722379931882156515379624188978624783619449967025326753810596304009743120197753256812366031298734011295695716698457048314574112116085056659968862891170736593672258068361080017780200449897195254605489887694333772384534223573607134013290654920348218268720817231274400623534283224007168565231616469567227724278656740080274012760164884524934584346770676375914182884788098678859355108112715855464859399041420396386822097923203158073799074163893325663167242617849433916392593798407537693476814096343488024602059543153729724690758429417939651946913912733280864936273817462898233743909453716616695334211774315773265846507346705136631477172692971556865233416633002659301799756981306375367739165053583818394646609643908396368712646114159623843833747793642384688484746279998826334225781967932455643011025759347669346781733534101751660259844569360449300189492486931914372583244024603675607311125290666239906555291913086263271596015194059247203108543730283563942289770565647818279525891000180361173680336668659568251454557575069025728111800006315513336747920391973491481667990726809335211904066650587022180512657667255068118584464881011910525343227402490508502842976276349861144024285170202675349122574509811620877501621569682637057972498764726487409057881377324012599647278743287115871177093246217716777255273274447875774015172149455154843185779940143543903762532094016925297351827405308459209074132351981941307630262339757905021290856053943824717649538235856701161091132061400271518774532096716290477461325670966820462743433589165761289747516961813182572088683548224195430313328470956266991388418483859917919958173827392135501973767657117623708954310861625369072286529075798572544509729654794760670774832448283311173097432200501642064504293685780213159409810156292435320590881657608111474986919689130196260360795435419688720282918400900626945235810455629507825158886135804784209098321519195081564924707881823397776290786742459281499189668202532959200068834608105951870235066335695454120493273139607896563389672932252844230517134718551334028976905392576064331827667866879911332401987106403638690211541303790990168789828320495626660946549172587656294625063964391894542251095328943177843763776376693223524204714923119503943864990873868130002493967885192057676183173010269672684483739114264616338353101492031801491561633933858762411037329628608948425505853876841443673498344889232710688190158612091682476207615884416477323507964253774612583311309148163966250657745008203732996175057077382440244828477045935212086507093392452248488899400366567716013166044108130769313741705746026375305084033413084754747100732360155351911705488708376762948575057902855782015987607483560012178629890845922572665042687167927536153052289375915223291780110327708028338929398972013823441699616625210757116807102995947090712963389368128351054406837570875749674723492701690706075368358773150399922330196269205676335707168577185670148712646177483642019622264667535548937143713043012358819267434463784817227949505252533823346444013507949403907053162958445586993504662324489103465415390440887249510180440699815647798636133675561353174081541164632403881900438844809182876836037977348977393088902974506641127147717679453808535258459117135955536350965662784053479558500825657933098129806353064092473955477218078310889577130915257601709881862341476700293594679735569498740032875612866281625599662198128255115228801478558239571141670750709572777109871268298151876131454372864586717285545866185765002698434403974867568238227368171594573106184970144564185903119845964708410258554243983123863184914995362245223685240462352560083346418008720093440534086716141002043389073128577951986398452336133554991600932683895465329665907375824458669593058746293240592724191638092126057216197526860128075088671292813624189253691463534382307534313893315511496397092816484360717381767337440495021282600973271527866396113986015406397885104690585801318351111510550782409545732248360360887876205005484089714515993200541451818512866582909207832256722419249883512940505440313991599916260115797667589362635655216770965138462314699619231185914581909038911005918436049720302742576735026999519667269417767987285174784790749885688774623281297784549841435437665767938075870897515095511669570093550766072894810586615273005577824994117684463112126393264305120387063614485300011551253651228347371161666161933364445102779543795454164075291885978414775229415179263791813584979022057330942131670322347510844055637056620613056938536911081621745694934120225307624468855058257736332306250634308039515340253896574603915322055703075920588727480941157878439875352399397231213678306912844248109031215204653078988496977019192999870930462194187920076704517898518169491522239870600814949216168940547829184297584440757252212094125905508636211705621927234952308809995938391239100386936777755329491718120128832195767166265391384079285640666394360516509787193744714264852084398085226934081570044652013994852959960910713037687746041253733124167420187642040612353132025494662583221860349365670554366523106124241183956903248841540835170033347467068033561104514782553815492062619446173985295747572784948147118766794206467146061957132889196553564673500643777300743529775502404241202311238225500884113066260606832594349695676521761677384472359368079766327695893246652253546887605912078908399104320128603255899200422876180000664245280082252335676158299544982402991372620363338526133968384600942260070691900169693283290780158609065414840903076711551644977019107177392212397031114106707765084827564154068216520164825813626514711590945266471392188828873076174812333577591223865820414075105615540141413727350387456542920496975671875820870388094432464138287104061920529703566952321262566711581995561387936135177827789079274285599948580202033763048429938429110507259833778969268360905146298627655353049655943114282641994907665703317737977356839922579325781516836584186373522626080494352076469798340426443485977723163537497032207556681553374000120266774696560737436047179350606824410131417856058068925338664866172158267337791007719256394808584538487721230700831732323922783150389673940779621344021599048576083207270698102145541437304778173513326326210878869458956537344790354924143638207379520071989340949142672504128412106837358679246971925869957069320375349857515900819691077328628369253100483813564987814832710760157748715199467425102994283317580824689551441114577104455917919410594086185380759929019227876945254951186405609997846943692609575561552750760970756682035487772226082566517889776082553850890106212308761412377780752815129849841234983777305619282288985018339366365490054895491449621189502272137078252823822468881465301838760919251575580660119774910767202873913927734498688114696313777310937057988392141430291806005610686864095519122763260699639749061829416717731370341418421962440902672265040553853201509546279981113288543681698289604834485840769016903712991790136205558292242817520381648148847508926118866556967983183121065936506988407176003921426815123314233203592644745607644272062647829425240866199418099271231677668621562991364581198631364512165093175072063775007349287679889130743920826522358804702128905284775424495508868077516541008536316044049257141246469236135430781929312646483787496830310723626586104378911884752960072394077852426409784042304147285493080799387123957954636736419339748614547465128436710363011844005264162486018329956574820049560991337125744306483319426145946395441241107369278035518965353973040948593979862690758200499665072358263517278804258139136902780759162856408252043125059259943421872281546833514079661622052770788507317331826295469524193225714905402362222976677459371777229575176087265150645857314561901199718761818662039645580558172158628973799234336520505251241748621102307308538476013015225863849835753122953457472582873261437463868238040065448530573233574219715560682581591420378836712245500510992508956909375231264892949224030142198091845746524662434563080258196870223061226025701053198858912837043704178947049773465123687882360086433034073541494942808982678364198587221363592136893135100286020753312001176674074054964421871652473901971494733834303948388959052274739354298170643032710977492473802288352994657129173718778574251417854077965279562352386047716022225738440129518557488545147679448976678606075829880181614964347833728282875665489595859484285753610025507017671457683930189146052794704807562934586028950113596552444218561406706124062843676068340939795466155962266543812084679249249410090087084876896726640316587411381956024466587302915165738253868197668851133354079883308511417763775956248940069384492680008626575190403892089652847200603853367649303751880860886763658232202100230071442775753131396037261250515452752884908857461150581796902231154117215568155792595894229958595547004648825495606230671754377762776907694058920460824600018751695451670270432523152523353587502471931717871401809616087457214501680085349762747984002136737945040770575942366298077495993221534771522653072844313078503519690400243887718009478602464458393814654728118818272637995134247759383980744304779741857459775193932907658262373650468454069685203215105339860134821889072765113523358371237013280612248656690077985122630494815334541908967973178056726332509259790222320835228668653234152738601847204381183549881621578190881372851378618569933576280715389138443496253898249948879169423375989764125409408733078514088089808329754022944574748697674386548514150504863929643295158279835875205978725499230868341565948012489442812215321740337070514913550542235363935187781220733084460372530882475997952047368323243432259058271883388522220393562546329279298868426656908852341437927203932136802564966955802614955800887039442752610734898709735232858066271637383513945829018140942407922130635560515154127310113952498514168090862656170943094644915928538110078725915151729291778029427937679841855106646469510461807763163496097203615347156277862490890331317977847935047976416146897715067754633757932002320921631476748520379318131412465460369884738059567593447094580275386305853820737077622251018324306736721889109988038384728498849678865687706108208135169219368927270148933382090437861311460511808448508503845933637222531666876971437627070985710620190565648156218820055447821931316500159616118313553674509339120936435610715178761352053919048258129597335853118594313382310435529510723379573923971064855634234576202705261159917453205289468248789666863671407561656050963204694117594141649981582906248482765920346506886502548077221598750492989079399886954859522475190262806854440776555932397427294948557065164863560552569149700737913620746883259973209490072310520693703216996456513274554750714216555277668124636549713734581708534548779209585138695172329576545440729026334235671371861922065020668157211280735478548136449082390476826266346990392622065257356212124594224498886631077945479516180034051180697932052763571477742798138118674321069149992562206483785898289874891029581349800847110586503157381519817406192944518929827348877465031458754112384223262532177070158443635685416856054407815097685976260901333918673903592013186224535700646104121992756066415978062788038137545720961173942209579189438440788710133987621833588297897408117086221879621047748767271452930963821239083072715362516137091617521318295029099138311872294115149836908014312087075604453082114258440307458473495119592988471908746429887731178670400952637656395784181002494036423091601272311882538426441399532870676420513766961378846183640675758871887095873021391404460284268294154995460515456872318423162554820565737090027718138989227683850688444548793456933010159373799332471653990154475512935420226120658296165160657982732376403296491906532430503331923812500412148834811562754989645177553011422355400956832679292812013473210377835904409305200279569720685717576202848102856833136806590181467866116316375310958105890891669743994638658228306277240826668307509662753855590552647202374400453099571646101634506890799532875999250894251536840165706646288198369310429219001284899615941988155380475763955228879473704953177256384125218435962319363413388809797206293091188794404923295403704724928083938353456520373017229907555310592037780629979565607929912001720583558024708608494359629053677196919457073197642873922197046995261354164870380973311406983143034684368511775140011364763611450347125316125374280278819151172152075559895373590472761017592499545405966405899352959264978167911201646405404023855300748504525591035981149844988541471669574892421484116133232629429526779669465047110377621390571190592628709191488270872114126723669491086782439697615313959245853013039971361961331632405352801023108763721153594852708809283929123955167743047206253750038907179437910836134841056114304825528166947335506873442841470592170905066157828896405082486055765604166909326443172795876732318662320580445159090677040140715492529485524858047914995847986270567742567927856443998508023590595100892124851773293196957734390157569261962243415070873290906488095116114484086526096281070048461118871355728145475278292174134297691834453674630633498994200889324213457092784484997520116868220226065747342772836052117426388962460719902054081710601162478343060067905713346772305590867904157951397781325820742234035074050391689152398515054646775026507917347579000131217034242979588867709899440371234190823409324489896790720026536879412236835970698287124201342937142969946058962107966625811806102286762822879402381977099964664103779460558478844576483834378749406019103630804260381858406066279154603028333216392117616320104150311441273987000866684518362288329983784261951370565550456409109351680215844619534992039325156679589760730893428580260113268761482481565367762832179717539453407579000202962596771683578173835158376038800286893373022340019356358787493172216629783153388478648934071776648957969689260688803552195617841100532218465185148507937552686478460046034532409920750353164249741534735749064704479344600774885027146834532224306134608534500039743024260240902542347383466378481734891346698103967546114552778197708016369837193062396018550759753462679805748663726988370997934562388329574224326464302509490982640089025137479920469990094140689629048453321295970257857486286598712566745855153867867812796228004175823009428157601081154872191272828267298057522479644336581643727903340340465371900834627006622905780922500523209806422738811621246215885687659612016034972195857341175592496662450703120380310372936693085094719425956825486049041030012243790651843376538588269186292142667335764568012348934555956249502317043738041863883591733869533033066615826217172942876416685332049192977685595414533970189528887709860326575478270932673519604828033360269078322981738139882552935864401770227293908785223230490272231000758697818518789314885925093697213788520394411558438511699299792191249979006786573028892776226050871344845980018078639628781048898058575623055822165120513911964237604327892150773620983884208780135014214811036232425241788745001840369340676318136993692303847242613797101362996349642172481164191593974570679836759661078066580499480523737128779880912242290488604731767896005580449075218696447482571038494645352920709412179924793951890460286524760003329109604090717053769267345365919537493410896280595672914948051955534362501435372478796746740405814001139154202786812382346103770000701629198387507599724738221070409631035404360817819323855215812064205468694109018869681991836530209725768436087402228130990892099228202255117487653413151352854981095324492730897920708014722788084029183919964478360972895421452413894927665883801351211844957201594471892410197308495959287472836322905249121423408357552344166221058015153576321102817738200088001532816337786723060832893802943498325419261563572837620798761886523389633094067735234892266393790426464592010709243729597276821397274924404536898419410356588674364932610489219404474292469903541704213004995602202699444225768229588066993639154460355810643772395645399345670631580032068123816811771409431102865924570955616029069799688170305988495570242415390469696186460454352292525104787041906569022433199389671022241063845153638029746737780122599460649671250780482087458144094270748814177057169475059164161609377593837894619151445662315112400477702281397811086488968800523611650377596564088715387281623704134466037268992879416845440013198883203323759186879504776421254733455975919131849079589033470275235191084892505631692596177573857543285800316766625419578016964830367623405363954770033488545186857324760342437545983168490541864095911446960330544795169266535331127008612449850605684751989776790686319671733700102820683217592534307124423344146445458927364723446159212920140201290555784417030515274887368180425137763514081127012579370682717382656051715474893969496238298037319443592920609809443268143132987092989415991544456954360670364422569378771339992047722674291398265372016708747270658666582947634916083044846106726429469625265792457214356800940616366713245777756240967782047012150733638574898893624240156678410432373897180702988933636665066081604742621443422905402703344833678897537131408034836113292789072165975386544827107024080549948860772718059277412063736321674431282819602789196207997631881193321039794312601377764839235544344032258672274981158172574773294569597411474288803984497978515687051504158855841401624523169635749157424002654907872394382837379071771205163932192285372566618791986278261764219621732518902578539382946440536789320216995689795856735569438969245786964525810209425955706705940365150687208256047320083342825752490385043133080791163558523871109564838278440078183826605260580893030258926294435466530730467221951701552082534742864417674934965038666422480441664926897072934909313730085992778846987225733052485125314221432224411388621284724687076019863027563493955677020190425148948166270100388361709956161054233763233214748964525986569385592136025200868468452409380266583325792463530720129554240064049237783868241486718382583054752845366325161015324913908586106006049494802867280130397141953961239752793318271040973620996164051021259545175663400936459361233458439121223262338622664194338697647470672518065555778729276904151847051377661054156659102051173838804717798770538365828823967381564334373530425392638682742870385810072789337598234464625700302819974538899564782298491881900750585633836851916534569770675459952681214913893536603451165018540953122721543334888002322626024313713127131953954471857914068969678821269758062518051118849618741104846668799554459676606477617837126281474207091571632942697111829972686717172100272815241030432315814589932518319838020187882090342786459682898617597354283108519268290694617595329043733096159692692202040762731095260548661023585038194343443427296096576641442830897846713586793107879053700670668909363755370017205695752239553006408239218681814843713920194153940370786913825151509497005131415747706136560120160833937777701173338865508789911401322225248089558713045993010067273551412867178679309416804585973865357142978067125731074626462393751821206155193537988348071980926189295579310051692648301164795856787857052428110229250780875366357675589439370121976003054452407367172696908365883802494499504443958865986923601150423622383190690724757336490086696106498313968897145374633828529786350620909950030578486773285307369485524467945746338760294802097593329594008908964174631024147619317732661106717289053006448832280375961520986051369748280239172383872410910098502691674142731168315092756199984029859838827486302286847008549517218111995027183010464082285950030762154406887798255576304951678349373012347227141413002937122736951345969734042744062409301651772851027677194873332702839969616259103673556293498205318381755876536167457868049184468244642364901955061612995745445951962942857045711010497099961187983568379501497855193171548422532523669868991750370648430652195368270889356311403951452499982342814821543971432015638251832705660412362837778988732551932050009033475517947882276626832404160831534149643259443051321979017904631990191087533095162737135435475241914235183349411994203462599931423884557991209360444816829052707799138893199667395018459538153629849439220218353887757547396623809203556414452130305445486911299598869035149994202782871291653582073636046218681073503799501238038610846505213546516165154030016747874566607163259417848470913095343026660242529444760126957114033814012439260757152676360726685636481009052473937709023164410945816151035798383789101796348681671749470655340170671784026386628949953256407614592332257369859228852692543034234500592231103648945960781711622342602442794260300434427392974692322937615539166283826204979508126369245977657036760665013598362513473798564495449073629238706397262167234751507862988043644029293738374196538380795106039083317396914184741165576281342941183320568924173381208239726159798467387584827624850751928655509049968440296895873131429961745842636433257213189131837154260202726448807946132216251548446917035736653926109270406638226103555607867082671625378650696770936724683942320528384130484025885054101733754136829447775509317739831936938193520579363079862959222068328162270520330112507806589168757715191842022774387443148533199545739412531509101799623574218486802212116821641675423348882911311804535139004547174937646728114045796990106220956820714301524310972528494574995359942734860157868058638545113017973418051403577062842417189618770087125843660206901334830106728287399309892014972635720828401827057224679625421080119692544021933756990480933559176118282539147047784067756092349877952903675059463528425291764967058310776277091675073623161289679556922339942320153794839106276256324382672964699888878089781709393816582607183334831401486768842586604807669342442731685958248755727197672660689914010263871115694947415844185383881490553302769983689615325767685736137186629015705627326560077260707728594578668873466798699318906008904222149927997725157971553225240715538552620040466604500844769464708653294621189053722193524860517824483955719541245023915633404206025447403429234457646367488844226832784556747610634729576033076880357988555261359484124195926547437164681451022223106479195697831846517406721937411487752625221349101576060145515489861588715324265921444113494219276860500376635234952967456727207669860503845767353216253338829365716554569971548532578310523286196266725903796950012619116566976204087101216571202051917817219271500098544240342265133538204159962564311146692652675250924882350545842292480746639284409037408049238473105282307071103270826978097132035710869967413316762576736591678579627724795706043713265717219742981999262767324539950272167461700578148629443325451457280353589745613645919312666355448533924676980436616858630350000557801431061863945897755407378285326262477086152922174705265590087266710881413414662040009344964093746141579859240419238035325144595577544506229284162459619724852732952631256367447482599734169725353218916115987160716264024935258635646783867902534494578424275491402394406296116624040428456831682724459907578103742922424235838076542932191547704447318328400642526863249735806632711469313489072596901895848365633591096228897717382775124746524411086713372799906089165124019998155144938040398476500790707650652026231498983210586890282425148319744863309407627201844408745435712252685109162351259166111439717901315162065601869284382330143515123033714080807992944480831705548248870068041935185281994628442754659137572442788039989866162954233242748388278525697972028694513138416228321570289529553705703426006481222637056585091952718471648607249981240669002974834808310191251828222482640060796958205444176699938469473251009228635121379188278592616181186897342343395244857512452505598614794474450360122238733702865977979272461478985364186894908533171135771353648837344845913142009896669130740204151949514002843700599534031951025125253713208046849642332419231346628147424655090452480576031749289373065664893411961909933352413767059510990911687659601974661109184367227257087617541910109404784976018382210082788932014061971701835957931756719381249615505933867725459378634188956045282343754207945010720676629706224399887314394989430270311881381587660204472561830927233004905034383871287283100293626007946328528748697394809690638854440118790511916793438907739578455676989651111027857164918652250296484268545519979038097947068809710573930968117179402455554906808920245129745446423367571357643429573508076797210147454085449195201984375142904028592283273719424508648322439133258574794794443457912691786497199568511888560915058673263496437087374244128044444176279997463285534735470794943850992967777579622677050488678118625676733870744700125602397668154012644732834211539841312478115161890923449712480843797843393252787960051623992251841329480526570828963803713853531096236474358121226998412160182735487204114571585607905117785537568851465225943989346408646569379273832924432985890934698932925458899267751418875202166690355860431290432604970031949270698776725352793951273526070156552893396336328387736234782680862592451283943496678541104289019923769017755402776917078054316909863309153508241608464954574239887293763163333787288458059076284923093909690917986592532504280324776332665233842422374854054419127034979768298397036350395018812326397165935712401528624640426643241014214719118935085679852706661534599144520602078302602207714231503674164138579265022241024725482362828908942886050807828394294493847513799771786104558326004515468016068071102221425822977263278770874623483366576704943792593915389211665334758361867714368409983416277706573085768977958610289795721158013339238352029607657993593696883230425466654388685263155223916634624614859771034409326585769701846756935959082720179818207848180136176190254743028191077059348794296007252238370563092395525711980653128673844045087867137147891483570381874431125588094671610255762016251941603519329174917737293152279735444809117968570712086779317546547713090828193122749850808998040785691171984482078636807565237532248856705043417313412668881618161250542327711667896918603652367104002905327152583608430307014278095408262199096017782967043147424473765894383957161350114339924055347227651893325980005563744276706913236246915130264734583410971649637716155459670786049438926079480270111714313233135794620257527007996870767368233584463105484753361949434785662291334845326125075628323580856262178988847945181861666238525741576840573625086857700180398479283041534570218325103803545064949106648663506161255059346437098657548332773413187073235969005148301418752480657307163949652244070295500182017442920142148163004567549446564964131158578456678900036291677423413612034009560191077862329851049641251166882470785728756173186123591910790986188336432763671715441826358778075754450452245553862480532162397746481833827566907035693899059248687175262667607517118876533731993187045525671396968813268535506519397643563833908532630986674782854565859241663637126123585045431720287821314371231525132206873353211760854906600002066612907018181804389399876583982091489160817104526630764642077520302268632576816879469569924401662832692018269591887017062023169700511341882836753377551947031830905584444350533329752470222018818822068383708164237498552423881105034022624154832676098465079823519195624959339931992955267513397668410545544528478772430196585921811340074733187220680651901807250455470068335611838752681555101708760862187213010651319347737993282626956170421353618620744199055775565693103012701122545111536714719380136396230980840024471810227472401599186449257989431286596597611360362308515101558689088712202621224668963873916454810903448396466227937416676341670114947975975944887774591495261786030820109917632804064853159415539112201982817970588533993110129879954990635654051479515186988230927351096619964817165888192871149671297226020236109520619956988969058842349769964472133770902731785214070155502076159439911626847789787577412021359589687533361006471300516953944630840432198645290396034542561428202594973680219028321776856236783685258781215574799524057745265867409924444094211991912606910984067085961176369626613123295108458645260866933855198446277059075621781424523603819760248726241474341342773859259418232324830209519143251417200907199000682837903722102587448540668339402436093319375079397456756854221890735693664677277870384318840294747353722710300408675182731206587957284181682979012741866347913807238713461331132656099436773418185788526177413355893910488157496125379506848957121386815954556209256794867831540457589411255483537604373836004190926957044789122194359733306895571888677076877452950288047950082822670130141801325707150180751966338935990600298554381284343085201603326688226947080554733073923473375818511360254237439760709464060223544693313161392029154464512188834478519168379712309787472051901885569258059114574717200521616016973604377491529779967426027547582886985322846020693791248726729759304883798056209784944645473980487630862828536493160125652451109158226659073065836664658383748095764402189731774154367859802866843580630514584468837509399881747667802447986327705690107335608277277399101411754704627590352494106380032660178702338512322804018823408146498227338122456067009296794909832796211861463229597056255530195930235864749279095521788186731445518481203999533212258734351457736134856532076466458475274033367485792634254826673567187282333769874550646110867807773686309785129526899630875765986269027234620484159941379475674530334505272893042880907892417940741439233612181974206677898194289177316612364860602380051482980433802500401978995417470391540143910526890710504209752939528012535319283710481942827661184459998089989648231315547689410609231749544586488175135151444786284585906240845802095364223997910761059598464601868749493512690267591471738544492804136577984255252106858680554851236277313674421481159274730202773734695512868890056779973718597322904425384430359448542692110053229867752143544724827932509627751402107520607769517060989324528135282720307644666676926180245325596204204916088979171423807591558293862509447505323331140854844316239556598522352925114783943350097915388247206875774235995031972598373395007520288264283347147324483514088185212881745076974713843666090011508196891223005624887047847518499552278518223469516063046893375884298187368494140866971337059015545111413289924308404175035854590354310893877867883888959602566188123898430664074801033823262243531820849552488113517206792956355206239359502411533819343763743210931772852465978010792806124470382246420482083744037212908117442540469362405922569404932514455329586976799319335788238845442055410415556763661144940119746408994408391308926430790755252854062176553769263429782522759011730603144217113357472276667127768726652362105469955206432511350849763359240265816358327256987253310773506082864767572083101595733136764845005713222126467355031744708222087222175338933840594933296362270509261333682576566435115256973658952805442373671479622279374661415791032445389841049590454230039138999872781414129035169821282981104265338002930830501578640150750892382684453947374281285986553613162261616131177137141546999246931665395442863774051363717765522736176329718155642534341680045393018026812147876359979964607517111178434763548467392255086871959257131692183889989459694172843171949326917179481152965710353604937672043234940744745983596956963803971958926509863232062995651757902989309893422403612417706973071449297987049032220548285670076722819454397886043078571445499863459148206453094793015694959111130804861885461926935591681662266091333614745979960266479056177640687322936937969345765707302067678629623812485820871755285176407773494407029594217016712527988668716175613291062509228886762656433270748374624921174036110997741639720463400356200681880139476860173432877620905936068171107572508541599807031213043365108857956631126000759253904893288284829672834027059175874145493857609765888113729190736953701334333456487660928467879394727765606204954892609339107880843122479056231838761168016881565599959079679024508524970374417797925949519115850031348558316435111474412940185594783276531648707100882090777756214498603370216297413927267515429285813595257421725702382316238925981712525924735070819939511995944680458241572383166310423163349692935455550029300641390233864736992143850750388417331211553870857445297714223815148207401768020889763997947316601273065316705423643871489632589679034059163074269748315154815725894678680866159886886168421220080081486565252061024858998692196493913265080811852120183194642084420328605176804303970840488454735866426852762832982510989454496494578303245795721549769710042146603435165044730922647934883393009858758399275148736838846382259378049544516725976004199638869841555222488145125348620254131792000176268768957957536690868404119612045818756716180735460339259945168006425229043259062863968082229178831919279930200048018326606443934239699122791035189842677398720134791987766693634672432429229382124094282331258562511065001039233505883577325907758252950234455404933096011247668386063228530587491716555979844088100016411055891040540428882091580207627516881852721502589367666896850251006930920094377086435035840916396077123574074537496810582010149898438433850896954397430357476378194299400067127646952248580281021917966304938303916255622896268977993086384540275757201126734074975604608288575032967852034870981046171736308577152277778207929886303035137357987925651230590320363190119304289179436044006204052730013520949516084910440362541010730986725427841723573875057541443948496070374856708399505974842397031654027124038363613850946500050649372788439693952918440998234282492694190613594071008593561450075951218504874106199500709977441976073976572926797124011122612603387990098483122660228970368076864341462279293547641916033780483658856512086614048009511673571905652282800373798772846821613727945178065993503771702838851676612182954963586629601437163406826193770749246202753070557280902360960779375610250632876598033847473742645587189646647996046811675414165410715253765379889044374967651917726032455538881578425712100638418604845812801313898889928912933694547081167464750174632694962472439414539976784999128581234977413501974995849331914086399539269459126896818039479950280003848130506018872699849318710060329623999246590127149260644836963208821848817423579975046933829649709293037292021784499951132165436153859638457315796651058222534455859287239349322422555184783606092628587544881438640529376903354728282337362409632765262452012245157204644319507356358683028744523662521411242007986796922136528565666557357504678227241049976667514622605306999945182288998394768523183428284061601714822490520526123975437381857812126364845161144931148650744238514979672072388647308689030065356528369787772379404981777917671571660622716611162753512484024581263638523210994096986760765963904713786053422284162518813049849069202136540570756300757166570660274334598635399870594334240614197702401637694410626976218311746688777122259973876886575398468477492322579060971251097302574593482931600425938887013609223034592773722688339275160451744871316838231772063247070841803444093665492634366056863197725091594629256888754075809660253397438851076862181621056068696317184104214971775010039795255050328397288021457866462883546925704219327528217551308646441854173714293473048727751022524134572072369770650576546350578898763610058963315537845632713826417427041984258004783145694232463420904899513174074950303119832276698178994697494057177022771123139042590253124218455082435589545806892252956561031873640585713022406565333895748030587865810116259375117885469007375346332614116085952471368464521599876127080109538451399118300085512472510697052372854356584610248604006505753653014706934955984728678791539694075884224780241907556167405264513659888149855208431848359116974162224955205460308665390790641778749028747799378481511326287742792193394827609864665540755926543233075973234440818000892759083171291882622642343223127273968462373993358608472746907382196121640775963784775368566686980681304801607291878426094125522418047579435687634125646429347705474494580974698749866833566478622821346275565813871145541222562988944466983625652214221525406190509871585698028616738910859460696046505195597159651922456851166394629956316620045442778191174088419023298215004112877391344437809923021959455361297226293401702877507768939585246351598573503122291872799314291189518945251953892845913900126857550855282480308623684587729760601300471652349071539412932696639351679579680492526199395396290407079892836519138635356263283350936629043076557358189399890392973353251849255773550120583573962671061670095131426291669177422314683437726600812342756008384774031302229607030752867111544562006788412950532015683351519151760035728806451835827775065592322643472499708220480287135961279097107823119086140076708648944207126455142797878514110541416292180626557254026118743448281078953039939005076944659298741435639682832075999029194216931904427115954964158236891953633809420809115553905937745122440121841365106296316279653354085793153369688932771381990653104913620790029687390818520875176282210374150174605814967319827450383640597381863768304275300343589290152516057329443082808174257757012222782342408777395855479982176620417887592017031484378882272651157638694445637095624875572036793865249821138722306879712401480033012169671628067175502292667783527370902200362101334490545394868406718594877926043421081742825548453735912113429163717013476177934857027150793323488125380236183390767303863969909043256181655044269922862271608735804383802455698756696394779263313504187922135147023262184132939596756368177924876714415753690719071813822657388870162934769182049506185173521882668889138658948904996174162366422007603517025738533494746337110322307083238908684587949153287225642849773406245201142122737650795344483173577663838018028710522895682677980128342958647901024508467876953818274545727573677638046723684912085749545159117181417225177415447196295286913916393384774231737700975017760147628809742217362387604502462011299570884009598219377076913304788974723299256503612956795047397881790438856329528131675992968495375018370425328216248585938624356103913167320918567405362008520776925076999580956001933110117350851184255449950044888525358913158079574900281052609348911510724876262112961169760155089605191344243996596584218485574396629336696125676369537807338619630270809100880817320010242412346370981301317250901758249603045130018525420162195113911193411130892463182349824090337119744476763606805071394777596215983999766187195684875181693936016042951585172524319426562909981502231901024348884527996986093208318198775947483683153788378366151847726966428685474176225369609528225455322192254353114873420086288378532276852537728708724717344731509141116029132945438971589749205346996198500402067939411152322779387364557693433857248537640760754926326827008556474393767807472776581391764168217319087058144066918364244331400438518905376907974100737206885405179497084977721183780553778450025091102612158180876987150090563924140505562082696040240690870958901417251610801165609689799374300652211200813194191339513524606883125281528734508725169342633547516660532765185602685145692000981465515788420383706779582156173675162199679480466470491268778693189337682634719425369378189908209031872490114016870980120333688089121616895167297399647280662011997127863686653524497745008622268920306666801552744744819096609440760089892816858358557240084830429288087116539115636643681615451528794475288914583614388264337615717519657813963599151748873275539236633336080779408163142766577522008618604540037986789766106613309848148077899967612103881015305639754358797472479111919074720068848516936106264729830318016746847224754631422779253087474301425263262039278470494357006231022947099991098987771190231123698010769094268926710390668760302364933191070813687387214260569631581021957362776516104938409172249212709760302381433560793474486207236347233043871859508538791990052460845425062451061245267234169141597224472232451065286228446380705013446572902153598192271287171012537594366750692523276495527539764685480669887216437057204740719577043882578973451716142281859867666127145624564069788593431532170295885698896460691718892644516663767137469912633219894467630452281494263236446190773311175130301289650401284299975903709134705370993169836636184918013847138935220317525160226171893567152505440423893465065306667202611275972227623455659967585541147781233014664398763467690967724354378927692932992832408149348524975027545186134310857072371372482445127872081391983954755100636810383962792075281718144963042537943048337995337109817039883872178244867843002957093257694234252629581698132942819034865990832631066857038305514673386539479610768034113764087326519626604491439341292905790326374268232696750738752402694532230812276778749990070286964222827589887977497625340257449921374593137367018550034409630964728997320085915500333350122733489066308227865935703896795547621854458607273938489969531451201259412165448776566771352501870570369837911881253255227088461560556486226620242090309448972166464208695086847162359669734184350066634619241899339728103475306488829768808878272657057708435990576878908541007956613456266630647126496526801805801222665892076086027382209827201740582002198730926102220306214890820804029641987337531397885602665720244712503024067256153355466827209775654704773306481525698387697725560600686976404461204784528065364298739798163859307925318862047683483137038348461203575460684634304202737290582576796389846487824018247332479835117617348678889555331456596241764578608916268717468550328057022021969671255458662991018996439445998097536433216054033115409967975553135175269711618125097047416682900404001490275964264080162628052847383411658413711043715113128897392928277569608506267915341013628427427759937832412048515267495995847657567288790581696746508548982001005172007260398706339250192777678105480637676704755313310720986201574663348703726392446636409214030388339555675002093059591866008605981427311210449474871077612750010130225820029500346935473738074187735986795077965055534951107942881832687297626852457953612783631204507102477804708302633332851013520871505409493096873800884091428420934290994702497042808691564055759805454955558690751514639734890132122647911073003421020046266046328728165510023803508452536337904813419231572346804306774293030290909467099722572754456370238104468934573009688698729307404484139773941851233781294325275130998677177058712068144908262949809294427546400570160214417057941421763973182341287366629334287016970666191823888553409237648083195376639076735235913208715829376835681779025020527360517349046722372219050720266104624564771080282358763224174739485242485165685563377689287478114674261693740149633382876058837017140823495740988010573439388815422845191418647065818964639042881979534093826388191022896596054527616525358784063023945677844267281634819285866552039243265077586362997847291751004503736114149196104517086251628441818605721604732716035111249922417063251479728942517902037037965217899603378385589048991388078053054512735651993677170067401834743017006179778382678458237526890126075408119040050442445355665626881536075608867675284122350125948961527650947808962912845700007323881167866450076033499548181459724509005902863644702517754049846144421312573715138295993745449093640508267191614221280856120881619871180333662131592899804334953824972642461229089922504303574437016537017288481283591335029199876812744356588941492334355575180825269862090341128055855305412033298359943693963569215334875825190207966998674262658304673943196198766375441459131704626829649014893651030773146930473006728610896691483785776824278378900204568290291087808203145444349098581793523508375346487752006041865029215455680277175568607891720132462371154388546823713097024504098423925306955400772342663762701718985670503744053838021218182209032405778438452601981382623185469158637804873266344141924648530717476767259506466605579144018162792012975521833606770389011745584891217756474569740910936410659514486295555515448057338482679713804774619119778290550767106024502543935976369333692182455981270696734404898535588465445417595313849863602164557687966638816696114625888536645540346446034870456090637289001002200894240613016064286003114334660043284164112921290079475872221572435015593180405189117677838107178175617065900575053103356126718870009706096449193842802316852294536263459638400089782674277941656509015398758296550858705551609175356587419612187809977153163077141931675574880315116115687642829802502474278049215635321778255978576651090916685472566599530568845905375879131115663010774818719731231266808467122595979567846765416562222651894155400473731279431254842759341007207538723315110680385473647048872742250021512012787321197486472751744148197518245523786088836870763624621702611799745489078433291736936337218098583821878326073536478081642669343635143840199074600306304162312666029589467807937432348188319935838247991107752090643791217808852344684232795276271070286617511152065551699403545246873858047090354711114753810349788620250371919843032872538106046134760053080269648028738960453967237572049669199768987894836696122271927681562736784596292660161083249089994633678751662420060323092748736190501955547051054785284637388864543321282934439014648129711244582207150211474751856725070015475680939084281072716095778977369369640081232221669932958869866952172253686090659063805111348830975610367125767894067577768946904115619774396491272372207997409680185711009036974007098915378674618099926847621778119760173789882390715278647013345070055122205167672759958187852083631140806410562889334432502564117915127741836791106818719997148403701374397390089067430715110941457409743115957361015480536805406818750129755467147152902384061806981336239834860207087350858288053943193808907483212100125876227679393364443428671330040526952775912067688840464661128949351109716728208944763409842243339674186906685483332174985776602949557197122369475031394589316680838843645367066602871272153049207360936229110468487462576541515117244757619589385060470173386166073143884224383515467962087742359416257235269385578147947630030399076064988075587203961581834971458003683110615428248103032621584172014157908098386215179092375842456650293044610394187385539076710902442789212291769390359960537364713076005285030758528393612887656906276282474193609075673034439942571952281974774284285606702928300414558703185809426238297038668260168730407196301971278202493435524831021621920203044595630044457010505260739489792101737418503656582804388933397933971462023067598162117544758166631661285856046176763797824270469710280057868763666372938859623877852639974983742239675538689241390175837145497319824721065612593279733717471287496916142931269905928707589565130495125738182713880561730278447080267509533204482811172019399720583620647078332833140990743331093252294252006054638030696083818997948352477925704283252324580131619837792675448950288436392836829844926300740689803739607598195329657198156065259358042071848966137809679911001741122288358424393523851512020129851935631106021400134937994150838456128147041613535074068697393845578251323432818861968147756949758623942395646121365793502022453824961843862388651687848681456219651422425559305377465329990836309996559718909387089601854157750610228048383712883226418042976705032689019967119657100407636112819498390977574569552048280658412584889301391080379384301319671518145488770742919429597680104290874556564329694608450548485477588332731312642042904539632399723200827569009042477771716316551138897566345938014401891684607172133680781818242986369120062162511587064743208800868518096388695642784723274895726029852046297946819407746250583234725919544948425858088984092871444859881563109724946950963926136635928641268944453856782917581739083927835347770482808021039110329691603375359409054855321646839289244480412168840963853834787023691211527052102119786936828504003450092504123752983383577641314263483425658934152114922936126225529906718407019282858096511319465500889380700314302241481795920569905035964137348414132915879091184624237631891758078440955403906640224392883262100445545888804031795054285184834214661958228678208974792130631223354196086818093025696944969178873665380524123632747799347318411287152994849518776345392489813459390416634657486164272527412806512813351155095676721713709054082634529575700774844081643099444466293109325443995564052888698275035915461878002893536638448025420029762092019626403542523548655530044486458984691967445040415741750543710528185417611248937459659247163033482671083714002405648882205205760764309648806870951175238216748890463779196332594935991212836447412445205063210066519324516143127306770641855465990067977856147477912203072131747439840385617755864805797054679325098069480144719581057693634256249834707617344150869182244278371170270970151610582059155599630329541156572472951468147333047523158120927468055070330409868892751270067253802248737329537102312363560453316797891326688032449458331319106035334249787044828827209488520770768842957703844491413362276713645177233806946656054783009936402227485044535355251895022008772652758821450872245979581511826499931682568264937968140713089407660275200430086470276891789203825741631318402459902885826491639616619800646855663156923981353559228794486599173329716418695222611736623766557113542245487601869463276740280604918657508231797371008405105443225480031552924408173705891787834653243554734020466793536299890165060044143633425589548801299107644009838385010979087686629876924850484730978900128456027963088164913196554630710912327139225169744012364579849141861422744176206414185639506901212468160768195450202854195629304760860814569133059894753672739526734165353475868339711139468912916755891722573934559604834152174804445742062618538227663180875736033928404127420896785487469532162746517361656909167398670965897528384511408383736176196440580818501978568756032243188835950857125480438718096523098342460532056339865847374167301220756906666345174102958266250529206135108004193953738319199342153190679027632881033286840628233832542302403091297310968888323520410294514797696895642381393334706278914038331301005714838070689293093766373084234393059788062963659901398450184322311311686129966583187709211465588929519143837137392628675265810218332945456347758668194058706632624265404812060428407534873569488716686418307533811139278505631603480866639325832201522724926780247602534620338748189798219219605027865691182962100981983522916231973149040306608415994543346189003767595423285902759533893080632815126654028516023859664292068391387598631935625198510489089915640637317346344653279817250780308128207017584892064882561948156250111078897306204985460381774509896022245599563183725230616696371361783611931554027877161759389812704599915891563363351280192451325787314988867648811946227084820110382337010632731891968808530479625190446505286896060831445505039467575668307052112605388383177629012786085080921711387141793665622961206540619432418806702530011785914763285357175550257210464990058172903406631413545482199084216425218793806274781010842185185750259633577668917791450749323264348560048194925096224989553444706792091360134411886419623296177929581516296937980656949265083285878978086752528362172101921657531638883764310391412500903833052778607008342492472049202871981283261372334406528546620045168127200774057880445022634445449814398943511546004217618195719969756152998675436736494126130026860100367718268145210911223383357669356562867573277770463292270209414845656511961321779252565048963583730713079222706845291041684541951540895407934402604264128512341592553794972111636837911956898781331607259645602865013643485168083586921225588018114493893599034429885125670213754174670175429674677132245017166783103031422953008688997538465849706085107438040346002374090474150387853930381806397474741672560807202082225857911872505829009519032503706604079424468580369213207494794395395820232939387108036252276666038670000334385414584050742387789388872051238970186668283245599892552660550288763084565121419011191090572651462193256843785186833008369214760836174480398227021975499846838341059061861906001989747082911379812839615045824057193495136029647475262758275613494942982448177747156006804808492087074438262256475734092884544625680349934857529947657921273606599237070234503552049031776752852207598337994012047164441681612675358148830084141034433731144881118455888023447503883390039968935173395511180234156126877103438298117798914717920670515496579795734128829811435017158037601310056851001225523764050020974301458839703558917787642379529938873070171971357416222316956295397501774224686989102578397001511236125250991612891597119086085554464167891086444505423839757780615094003876083622257315840813574188363849236304150949833610826130044888461643323266052993173026421553775454444375860127509479476739940322897607513636066778988332545744724370605878485571781007983645312563138112995886480786598865607533868655077679960262390949519981165303624836804901652273094330261211382521660414411707194663644333262732417976026601316076541021701827495801939613111512305290312843813246256531924784105250813140495392812558088328327765758961525808258507253213320413912382803598081595546846515022373869074914055023222140201434324313262072082807313083773479991719698668255840290515168957484735179129664049841932798338443911847040205253802891330538809936726048713176537279512695157106504020773306748802611798285475891137271478214274120377566806743746974656744564490967000764667839801350445181351630825962822687564379041186941336848418082921219609847256045410114561558155316403955790195431109889534886978554713135242577607113548232493448190053706093829453881572674633982226181376474968201470013633448494087059021353243566819846815570336908589345161067376351311546641461827163758117251686146558159527244896581214470960624233103696879883572897639982528499825767393364997066297482200253209039398333875747709873815748460539247374658706081868328555309612694077130612636443879853578121299471770879102336102584744239694516971648388483956145487802917590777027311345442449643903689708639074347623546242656170263511058068124462381527597498738828312114405754515739239192797155887828758570041262408699329278585733946514082773396406019725823646499817918700500274385396685285185785854552222949024639378405087180342333840255260899210532151189547504818617579700304952786622004089829381707180061413149978262397058538280377821716321695569336896099895597445420149525690740392718238343164553858714044639743181092934986680392825037805100939310466977556796940796556281591295964374275570926493755574490916952106422909527469003020473095067654781586092308300413469290232323244593844059243360867606564876977453883788333614418009689203882157263041393342459946158021749503410764864229222891294682521920536905329805527723282952065284409841258585565686244340852968789141191167387450238612428997212731575587796903685964997558643298865500353364626429420246834715313612460970300429997095267476531879448609951438354421290673594797098692351396460994337732012410546187649639817673055856591793217357379996561804858754420564932895781558402672255274337627840725265064853235610347555383213152094639144484180393281971118155239125224392823166492731871688629670241510174263199032223899716805563886005724911372918734611784815378363441746566035923197987846052676801556684403459390815534986263008597012945344006266813610155104650132011473395541834763251827541744289807426529585235822987076094572531554082222752863991447154813128038608718536210301698081846768435039383026862780152460882872144360478651408366421061339017277448922917281633366538615162314740052250192094021096070063922911162575223995050542231568670909779492145157579689775516843407127300971335665196937240190080724060865952860145582307900658526943245907904567650589279179862120137463079461385246184359760227118680762200978894169189101267279221732478431529116965533832342545842617210094884117179932200825081705787047756342798184146513629372200624230140333539202332136596552467954843273923473147517358125863903646280589691222959896909563945834319566613565157324979115968360800143346434456942961698994344827300131863287037299280452646743756366446997334011694631828639260945496694752730831316285874746465836565412866923874380112224683880517782431339508307186366218990875993782383926439740784524390406751889078492777170918333165891697813276934083300898174821855312877018591941076172327948224910066012971384628640359447973067181897212198007224477697323866524477215875498297766258216621164702517078036799454871730304422851831416521150221490496605815203140349578564170048033332232383851772936207431577204428832565774203519334698724222818284812472501112757828564942381958061054219849956867603430923219249728576680068646480467509062607583527278083035439865731333518521535856768571674288573699514230548173915584768097894030145452701194117065641895881882304060575048560999529821622274984741526119191095569814728188679101178875880082399900678868342510655516650795567545412641025720027161586631679574156212705692797952611207832560280238731251903419673293064776585619213660042180619519739113991880846281325431045257351791948216607692841296256076804028870420209941941717530905819617865121192539654371188602939867862908700648679158352779984725560831605817257689379531265730258355210476997500459441379853284379165149086798811346882191301173698838907209552644518220035929828662108472913907507886014202859556611718941447493873013917869550630896638340169263290335017988906982726300801449909371712024629214565988150906818768726161825043881068540502065640532662816631455285311586250374656082277815260810979821839991385239059653348219456702015315262121049736959774356089375720614490009006224841367840017067469299424279215645800419012526818116146030788852523335170320308537261188870199820768477024532410594391565114827655205292225407357656009162308316450573376760206525462571699987455946379718865442597776241584268217543483362583152899054705357874506332916712934494968541581263995965113669649314135713768986993379189615456566470066461306025889877759416012149379774302815598952350150361940970310798794046321272290466988292834358063243932592766773977824678554674416682701342227421415084901919732387690797974725644574858155712295286044276543551750884229492283726124117059013875317524653174081748437324620697546763410400278087801633740358240019943792085319286091349665648648374915575471445185029171782873560149429082434023038444640066814533996733001384910167439689900335657728565908458861902261845439046764913434097211531715717031821223824384108969358379141092678572387096790625140218336717468405368045524909145490768594218012662788561369314364485403524109363494919928664614100609862741877227778380096565710911117857355377407245972058755206741139002737737364813879826694587639255190053339261007940634813407961977221125627576354134819300512406773700736688020027642065974003897578002744323120139263793496421680634502956029904416128890465468334598040859298828247799052281359384811305543318061810297695453330688672276906686283287727477120696697070578301246839440456520009475055222656069410241363200418213306453037503457245272602645406095633370671134651915770203121582722126303037219719402980917906093630389287968181922237291787608059649239228259228248797281676277665962463951005467494063155921048495369964687493729542168803988183227620520496366494958495424868054764319358027196831175455340636907812259804403743340624964102251109545239181952694173711088590851316116924466316030595874748652621588504010725064633472379051929937569858092660750626587130870336801499608486919066035500491222343842257627323588683342733346766304590565055742667568089546416319802763011484870699236923076439374580687561958543602140197831139980199338463995716209980808876656250361216387060316704387740197484804650200786860806750453329061272720369588376527480250327744166344332919115928968850135104211171862872732716790702038570223878685941522908614839797118047219623761504247689131357835908261885188228136915735915715793674179600983774812620377343496866975854786843696726131913415068767423125043513710972136962096528871125013903664839945230272933614277053797583197652453271458087178441843393894238022959546938712867998387380572468390869108076591596021406562917289973130604800333193720364596776239136645466039745260902830684444709305213708683288659300233614126483792442037209610222875758973826922223530769077064350623931618486460235459879940567037337634875996061369786361485040600174742445433445102294448412335139765926944340562730059666314718062736974336702698616773970667514001745999764598259764188563761951136520704692256332264916377932562522964414112748064313400346791982761219717266809660096218144124890459517043148042136833535240457138409748521152698199985201630672251180144460652785929880545792697791247815170432548456445150634290518965946080755251548597964762182936230230712945812498795178478900306437133804584406480751396106389808040055737006148164696873037368944774551214038882259354126256286992853362976636924506171750000964189848711387724251267044391394716048992333007769914236714486072427965390756460426988473734645076306440269225947052673692883903399029422734073385460964414943248261509244990526787992145576600477131481390859661551911602525868189466972974568170521362019941854848271130775294629443352867805350842353948263986842135494536682479130511155452425970356069076789012075313297659478406033225327200474285429077067592807908854958251585613670141093003295260564699425176720062468685044886568210527570100261146160252405660024546101122211886218288651055782560010742081602258126865576315043324434851294964514788600241032025077726679789076132640581988338508750446287111784888964028717627288603578216661150448405658812236296158356286585806656027144908088733861465782774848002192906874636503656148198037399323903283867894455817042561924679941495214248846638045865082587579639230037125913880645094197098105118814891331652069023834568356937490416132441629535911423517474108290628397198683851442718596056319567911547075842518282606057190434450231713538077471874295435257038765667639745489545916510338490612455797580437549813251715150969451466021996714306164977005171392790089321988948277496710759108199570894074357284031725237506088896239637119414167122354654965280941630551918243930094194318498845373763073950862782047840713530550724149947191303574449862403544261010923202622579840922953397677076735663975958613009566304765092253477637361343214747927363629807172059105302495266081478932608512982701007978617192471325663123958959327349514212767883534558527032522602311204257292548941167142045916344037720947473054026752827796290072206865212877751742857770819275211513501221801169050441810233077545881850117606620468799568071730290047459899686124995199576001513189648689922611388899078715929694319048437644758764502842851937275006710514127688798891902147959022053692739798461965369410321819032614299389822866259522988227677283220549704696982312484455714805963543330515842451141136325605833350822275537264251359590036350975008799854736333609866462450090550247399914574476908574097388750151218878296877656465127180347984948315669676225341405320305669092546842937009661870864473065774264507385866097834316798553036448589437472519039682780781506136831743923121868710205499193436583169078856806341998992817973493160861640107960081676037718650853633310679378530082582159486598213940245552935504015699108901317480041794765321165470046048947429029996971580308094987012313846558234873426544246468905417528607421343581839492463880486519798095596908838652751487447249232682976322664081908363631602495803734993991572592058678636538434619915415954935599451843346194026345690923516307558929512138569526046373761585493979692146220648171761782575165584663776748654226928761242094907429412484008092289190197757634457949226108847337614778188779604829025948579053728610252198492379131652000011566974788237691883161500102683584303133431485397155264443250415391485972940053027708943342755208841877442943683385301698402715994187720234625726598836115659059457054375887465747159394229287102185955049480697052456529086508377872484731888614409050522601557333716152438732958707780760657910450555055217249908815775565862174966102704401608433576533834386255502342728136529540263067980583097471352368983731902205434438984326295171892417826838230121499927233049564030476514869780681851482192034934435268232188362897588028361740836766962794912886614622655881752249626739817686638653973073656924682330354011182787546085629442080615346348344237303622119630191934490745509627853797530269538604416305564233006790109395435868904485615726645069631076890052397523584496101622502472549712981197099312405724859146999355490183462573070630566955467603407641308733831894631076703712922819355952363945696397573943188809413548817991031738998946070450086307594955866413215224431858513015228853694972254571614343540731296661328169379438715898729426212845894947570200047736541753554418607161076108759004319513282416478994392552437788574503425242454680657836697698122363118346985808963898712031918466619231163370203251188945350011632480240737336879252514757799032795779528253391698909178357769366754630037455744512861685132478951192222288571029844216204035898543005080162031970080232175831097927907421929973847207515580883143054013072465918323556606536914047464175953898327815233894750946491969127732225097397048668151063523056952793760207494616712551915698720088731745356766622785319126651760786451688396929013861585463394490698388505881347860553589615511206618624523334859326511385763602271627351746128751782961786373625549461268513947151285556367984216582898153868979478028945692982581292324016700376695926743938771240751381243037936360431370925723788356700606525842292707517765042975865880771525333589991416261597388797975061061095893992146105108377489806267570993019633255178586975752577981904364295064940699006089182773005608350832326955925595431251178442366373790807633010112237015439654597217996031022685442245554933466871305877747308734886074201736056575341772856520024012128307808877327829958669594225229188111194064787203517763857665963597686287862443481730927748815191263410107932069326639048688646246182564550601933494332544349200100116358094551941742918448880752377593648833320628914104056592461458134368207875094914581944590660026540712025876103874351105962282735080129321303779919391419061240330656607817656600495472881479992685338081158190582866252242235293495706613134734114101473123995694630184042171131869442049204569940381786323715415675747547632664904721698206405403681689059781341253789628149884155759849606317324187241917436255568621120026354572068853235162704824666186325519200308204135219630287909397092957967935667174030275921782152085190077009853251845665490384322377757517254190217013781831261843423172882214143748444687506374653081558375224561490902774599196771813169856313985398211913229199874263527589164947537693051899360982159353336952062443681574386505960511910621932844717988998471071973751840245866527841256792689434895335893594781529183024627000764175147220322782960103378865804687878965721575820686189656036200258953347964302968415906782786839688805213834937361698551916204431259194187490883192793161592333019119060323155950190112104923974437696698641059606859969974077895970334760569858372859947118585527597415462867640850973399823930650982884972229965661580450103174272647700404537096159827713911769778614686662737295436331864794668359366295532959651525375224530962915826013272184048859362718909693736674105598680622157512361935555920966958167683527402164002797828040977109634254963433424842134166852799825828282388492833673512766844620172156304431102640821804335344261278693687165100433233596202610885527086366434551667762627185263632694026593275023530601852612831207864812647469723943676557469621132326420744909374196566766784139703661407253809412469731423850186866410005108130385173551055527806221127949495278753341229239530492832826728554602665983791132997787169788416030192546755238437274492341598055402597246746886861244933766689438431359974187615469835093982895747215112031628055080556790259459895314981505105994372784484053108546908288193504977785684398022323370323690699638858336843463797927790539814788707886905326599080139848275822792814928497571435300244371626259944213554187612117563239468949665248145329891482901827589822869800770275275370492353296745944839380745381970074731646884197031339490713476982176566983234649674105544174395652885096161861379639308023579465102241679005316699255864562379804728022430236710427595659098916876673922483825631036774058821275019415987526551484923960580367906534154541464861353163260298654598961166983563299574322979728534304828265274743292770517865672500325359626845229132998340147424407569248081612081460272038193254524335852887054508027759861705778328330896117727647835514933208334896816089736582318840499629022638589637638958654812013541090723508989892680508605263191123559171500169812126380204028027278488464973269803450639658846720091400785656777418088261681992120327797531824305702415644910824276119779640677754099356686782387213182825909560888210285223104455376293528258390936934291719167251513977172846087695231807812221803968950473403382362782955063604504958144007065321472569688668060142563371609888915421406920390607390097788513912211039035642320784597634325723838988961188141858425980108605441423606309144896748796149254607689265490263088251462189328106695291662758038716984432107769441414914908328780930612740164535858961910562907734253581315012489708847448505048922969153095949062192840675186643663839314566780247490272777633458700442606831287677326025341162066024641368976093505609072950757379703070755342460645192155290833747353213000775154495065090092138767024620659759111340468381905894269785215674231856599930772618509734280552571086812233240406583820715064210413731230128248937126283378271178751158441879863522455666026771816106213367406622769458413215405435095502063103847820828838154730565284611990730963975755048436170045936141477383968241242437146239350975142660695197928439704277474681574548255639365242622054097723728974507051126715388497917182308298715091096104642410969815674346761782558995633797768611621651918241522866506743145616525423692115213470492399112584755945380455417909801519962785395528929999281865039288909982829513702889280642599330627700811791907312503235992310258521504427680735130868822867575443259038654377178660134392892158455015010875166943953773644364113701772229024453064299860393741970296134307519457410992298847185879560005778529535021399691046590153289176598579949546192076727674097964705427319094688926514613224890696030274010511030473119278479159572057038118919338552484719606650370075439436890697142355816770891458974487834685286384810355838787801059415961355336136377234723072711762270024121811749723267529229745352713106997294302913826285546220735528011944327765482038547642250324565105997759419152074288702023264682625079201719800951954952780821510280600710389858027956804272766163119151636225004276228058190653093195960237142004673608858668173301364677958852932381013248948334748300388324160326429020071264869322636740326028071719610029384105339190576803256734647312879462532664671350299006306214225701940206958332734542733463397555142074267015086842214215399692643479915459435342153243372502812250172235540337737349372166038080371177627567763064876560923247267494082350827412845881535727695349575407928033379931110777531187984483736889550831268836075713082824508667077683724964171200085605698909223522541234614578836814598633125822553327663455587450912927800925233325437608868123569054189359011601341575551200619699373082350457929520757150451120398869660946639032256129811190432774413297436111505612740516439069124716420384920315755960095240852125501319871003541415267794802529443637709141945564593939144058838998610806544048125478284774400820129396884978978185953895705089998295694643416952497356248702429737712701501479159817150189420728543993883813600885762820993512283438577233677832034235649717512294396597925341954441886146186904615942862288777634896857450412429045945478239119625943992720759659765314542742971336534128094781836994551103439546986637113876252272760034749945790103380017073888164629653766517321026268188242806049112233097282396802971292682241001627939783820285195508162759933832150383183515380844625332353226024740469192966442503073523648809492516120886508750557522361386801620277729273027137288888044834261870737183578467912035336971339550565130443450081672005938514935655690251464007706980519343426296734142300554854434434666374303910959359661089478028839779418887641252343486255419386716563121916515957323188357860649001524861630725824011216600801589974950002918114750286447164227607684827290658037241732570958584996820483051077178685083675918583113829304985068170464447008644346532148028188828916974170780268822206236282026690791675978037620002229075272725393086532783412058510135168036346765312770786549163386734985860313607306947862193332124592313760780893110885099936325562590246341569683290206135307538404584853876827088808388844125359500436092767912101069591626723064900378551922103601979243741857946208878065421335858089522573095632425858846512634899595866289958604372175669361992236091781054205954418242303760557327233159377991760024130458403264307122262448865669141541482336570999498562963479876792625288685544553106272228650485901385091257955884449290941333630069375808569665075275533899161134051185910572495514179188845134287881806315590990288646773385340934559003311426797323487621666971085711226614252362884569296872784799840042931793256472539178889185673282867221585384984373655807738247989784221127005086721620384154579793833450074782115846980296418113772994596129586008746245425102715729742870233217526749803221905217121122770399354113416400845341584118544710115200630058559275583517928885764631238948068032747964624232342968540119616663688073890537076863773839553033067464115679235847137264631442760094021292846045267478260579157459759845194872593932735086930587432248561099340418265334517886323293595260025568037274611708604413879592414660723916622958430230538303333073261435973256070340389866026689939788118963629476764806720606295207414124600752471885844982507986316526050965069139872788738933309656242584896367786069754836301696557995017847193059109090736757967994336201348896155941303308679610503445409503772539520206326978315779809858567170916837970351478690437081991093383715803161292636735417001933074132545284068487945676569463046038334722021129548690807992142343455258006119757792469250258485321709848439470724748920293220990386486274431780220220004493757651626095537354456766883047552123314267444699650461048666921390408387034749251624085632553609480268913566810006211312677262712899176634104883684976293746358601608169611659434096349586733898624281769413706770173249360460437723583982266242073052569163353906583037621711270851180680306195221509558288320123409856585635954628816656931128350576035767605049671970148226686856172857447630760075580461747134243539208593792300671337414245510632324457734612164333337707359654014872934596867836134300552869142102605772031893056290633420196491119558167552337990892259494326920457757504875070041387112856534603280265401926828052161357682894186476588556173693570464414659857691974997170664612345144959060959542114094796811692285467981654585229763511783830855352666611987164091191583456852505967237201766772866764536768779147049889462898787423842076434387136306505805833772251287811061295561997632640627443047486871294132147485890552677922940029335815650606584792942099653286004710395605184534840878660687488807459510973565548014704248002910219900567407612652577107555936722703667377408626793164434628358999241981849164693269525690668336817940724870963357000393946664494388215973017475678173780554014326709144618969224145232124386916849007831414032074757593776038257397139800921368671204239403203431697849475720353607711260444908752565237274860309355360378220981331833548224704552686109145837152269924049190582123826128663342601730696739868155228284450129721167327423527739816757804734377526784054348930008170180687515912870589480764478126116716464760180896963814533189525463386019699849140187276341574219986867303391097244286787397550275882757359237181169869365698982436876034638810938494017765638762006311791027504149298440955533489944494759745537925608171166486559513693856220108948226787596521861585094466432248237692064291213221849884970698190421070977690931474026355778483839050231111138490891409714413368331223901392811784158505292797236044737402309734859612692864976202461702755401258064286475796716781681926874205395735053803767966670930252159940895813666020188353930328763758281077034557138770340740958832234051232508298073438180741238219638919345179525369931330668344184508478128780721898107696486805034816359405456517082255356858288536482427379382131707497448335311109775557486178643397504821072142752508846866533724769504031677581133738495837460332200440446105642261012684003557583624537426540007113671151153244118520634973437706760027126538353263633782062028621907685469826947400840927915866461568750864509555217565790556251436843891911952651467110046338465483079542210863278573672379458438614966038573020063216004234789256023194509006034281912015046441326812499931993536574505335848765650244613555038258619063008469643584847765418839454672265653423945371781881200072753868969777783541245801925497052494614701452253606511990221335524918675964294638946296371048431844025724420447756946443244850829476658603296416023058593430787386378453439349166465949294427650280524459444518479028627479646970927436934033950824280458683904834015955983642162884676232739163118912245370106728050402780713114546242305320296302096173429198227781127877468797360308969006841158368600671616729513614364473698752317204841579327855028879794804842407831951093880894943858099355682916374372847817304058052478749247341469379981376857971677921413854737554713016526442496290059194219819518607703512991608584365081027269371976861771415194658501128145843043246333839315868617114663923261578519874392733147556050877162152514475656517301718978465412862224336743193212890229519696995493839270169729768729258774327374779463882872337130739459408820728236137191825333562661876458128113434330024529393935164461377272204406532198455504157775745005682723606851161313305419347998542722348194859080906347979802351029037390644940721950614361620470860573505814066009275375568548101455120884224280016875730696743731796400394373844908919324375572962457041690233313183578157633829202175351325084598251935521262376744262653840391727206791252133456574630577950747645453500859482781335004470135755168820246351520568861076367655919598410872091855122578554746307964012247042543872162379281216900048247626109037913389843176063881415563955579792926541231226011871165918320549405757350795731156446197326301807470537297790127518920365844587674842935937629606753220405704495283937881871270789359318459852345785707647244927705894824929383066500593946861334631162133611702238596886409931483917893548146094247511614679660408926148644049102851985846357218928943355811730599862754365846041300783971980859646032361026890705029826213814501336683606552794856697292801621429830782971692952610367233055532495286943034549801499004049030040680094973410605612556377586735280484058709363319424657287083947752769308522083996088016786862518492941171098620221050272264656050594215289198193369242354539536949498205113313515496864124686086266106524057387773564580151268383069773481133274220901668870507994366493647776902965952762266478552014421291443435068718666956249698232870529483293190470355272568349005048300032876724897994980469135089862337144002100914442355001281589121675265049568107095377361676887556107994167103917569592663866997285092303573350401914217726858924789482954323084733641560775643208568433396494247985575311406588726078349459853732489409003157329374391771129086616567303569600260146599498681752796925027662058976275824876336161707504093035913963974226217174395708515725119090454534025161607587247543144994906123355904309837558454709729780838384680293045786504481556749934146439753722539861486729467234662984195062859076716368525786059244676079214762481556385946226840695332479861077215526482079372538278098030550815682214990140144144347480789023737610201204686918739363427148359775098298789366975226174444792006801024593552527463900904856804434395308989132494929716609712428180718243248555117407321674240703526466468391284137432648472160073035591060066372398801054620228437570914960011821136108407652463483798849470534219175515188253648215401023991293089804054819778283412813691526818407539983233874943168647799083778717145266956968898364009228587129784587571857182458636644856492973359463328480865633048278806029477199297723185721793266765206228850349450483378402301078177107029170009047682560833811096668306609912982822981500926185470166047955043012301172726186212825414210135649711995657794441023671351487019309923388096894503953927174429133475719145844017928796287461401074109711237962024036086285125760861449019550654804513249981045689222181428801944480536430360667533616986646021134338752528171101250081229938309619849073302338529930649841956144075937707091376401073338161328447847023099592114965394885871493692684074007887349771527665259506048552523672028634813179794248003704259081467868395008082267182540730854083629133777953067371231470356130327201104934412605216535986631371059389575437450470040461646367963651807123097328979896655692865968509067151308229600327717040253783905329595037694585471230379061230871994597628385558183453866071352045194699176540408444941162887214101866632966128486082365889538983394595799751279435873343165169536567469700197205503480497806745892363976476694951595290017767109106745323708840578443353933601296058103198866634138249003976212896094909355085632864266658756711246685418203136706537662328806976159989072926618669678213977236972238893889070460942795743409521985724430638949169749767715555371879158893135922739765365896754765256988463812513308586715623088338366933086485272719588953419123977900210907116447336029103024487978548149640176689903792163390937264327572450302173517153108567194209746687882523429824500092446801175638820756352774314844881548874931834519699245628694826859079067595442400356335800808459979623373518516388793449046304182788753663280545164475338594353791450976450288472591666069315090657347212593238175777691243995301517780803386432975910858227358612503159083837403272914394297112702576296710654171857839679181312424687618028100487656742018954705454378821744349570714718147405213422437947977048967506947712329274401183635269041298602021731529354520311701910527251095413865402174754061760711321505286512225388971542782997481154547782963917735420976657470820075542064974250166986790573647819056568765175320858097249725919050026597981924022707525751673590216615280290264434865030182697072313958529149751497802824578761115004603797152481517898062269394583468124791066771323646551129271547802891329522703792956645850934661578227661823082863724576371683989609050528233391410096444169394223049030214865461383620048566108556280936973764224897062001399742884551390605201070346362413719447468516354876603379711273863943626424618925514438601874693686587044137637160817956478580834750975951334553460785656015280063761473325747127838358437864687441549870918510398738889565168605165725853338775656446912833070790809999954559892181073491105599203432996407764512945746520804236672400898425733924991914626432799781905128672938178233819748721489238704841096069133113211518485266792436997501306746764494057867586841725949749329751256783951635287318595342363611650657547049024125937183097413749103108880096477376055318126589100452776959107171409079529488543375911957383369182977851451891905991036338435916588248143068034834867015863863653591037086994829617353629776467487627003315120809118705439457367708171029672486390943166293005970416817022158552493025579225271602561267548096413562507180859600618965850021665060238991261147292649183373806958699281776107561229614823609405779431949256076373574053161629633234956270561738105957355191073813522717964646015000278859001641283156206206933445995394595436671304572523251132468081721680554797913236065002819008229278703937561195503789578710590983184364314156188198976698189593759131056500232549086591956302311046914983593692269251687924143404104828803051939066662632820419112135678712774503099693885864613849691711676367109114604445290904052993333057200289905352084563365411050194737860052719674866362046981541970319504833618122024908695769222351581301666787579668748378632372256646325186928114492578323591871697411083162287249408137527359161933289156413001106218678497940909860677609569437949651617808669512074555933163546051312709661364859244589001499067121037223242986089469786677962872992174836361980152130214691740191958907976824905107786537860401383560918045868334221988294442978315831453401969638160688626415038067442799017580261517614599608291664601671742238872367691336787225602987188165164542251177696180894227061337910046516076973755808491116854218032188660003463791597894709657125689072238970906523393480336174711600631915199011318569683370318119025822601496934782109924873207626130057074256311831508163089204682144223077515054231077671016518926206878472115683540562302322179985831806668025827749538739291365974000931250038308252611083352234783870629980912962331954194538249598803964021396832810417919409531271105031112299806661888496009063452832402019290666809949412180756697740496514337937307168017156728538476447452558032916157572615089349941470643683772330460220469443154650295463496885046314045747535894841565016135883168906006774989477634731325395981586110306794033366152314602154571861321216827753374263599851822286159056603371806283666095521552688342027477443943304810706330880238382105004193614180226034053611789506389743064794688793859979673923194669024634534443044145810086299111304168754485013771685139507863232168698981846216787527362701195948319206686473629556396973507763331632920963761796239335552695144962598080040141875720225005498990388188716050205573920143351711158528865577593530273994968191831118094403766709946452897773504629899725486834585274738194343034802531876038677446889742792001827522579523203480371556181549097371646616312910014406063179149215950841891017013842409847212515140387922035354104773222044964979289532858511770056588754926294189190536791770936676848330147242188821804065633644695986373051200534874545207304374161910426825350019278654535646275066567846014121012630398655423002067420131160125086703356053955749617626713504345374052511436941425119320618650402701557247010049594486365417087413863421050950899835335929148576299430120163697655854237984871796703654280430430689953978783797051172336582360928749707435242369535719442155132648364942279774088699229391037628825725543504783037591296831872557891212820815742267641484645258537304498832799513339691282062966601368687371673446231831662983720655805996102039409122589212565108786626275946879226226362885635177513880540016625889736788819477422627020357905706832547027363251038559043253758761765678109104793564117464803648791878994944804431719371927390311823051787116742562115356274967958971202520791106276766678525780899834494780122969288605270107167123366440636755427134894840416347061455359533532976583590998296503504945186075578696664319969433901358459091755951443353477922357903522978318053011385650043186728566978732143584996247192315784399275705910401062379708993083109743228249696022253790132767369108129303439461799687570635304989936988776901372678636211402324744514686454315833767653508160219189975525647009984904142836174151889691506855161881631834469492216029713289573055393241873537509270861865981445243183268470294978191452617205542124564648848121700001498599240074443777021618012259238771717108352153785568638770143603999935780503103133682667528689171192833893786551561024868573066584623907919918400747501514573041849498020206937111177331843513271020010065728103352739083173077829383140334879898067386449306815875874471286629267050698354283884072688757415559219707638539084289771665376888302834676858298796794529018060642244784916611946254275266539863514525648757167185504619793913149647148574775837648124823475809326089079549596828248065844045405297432283236585564785779065277956236993236523759034640688885784496542391556804173863161882402047995604011903319372000343448248351343616906091001456909719702328742282346079302905316125476316330216190282496111153002048807542548298585938159776424204725569813104918585483974501306015419225822240347200454835844703139599830251176843694823643695752134964826055208321265838416618461669895146629044999732481078976147795744711611201537625957264592298745551554098725640295148100581997420245709369837194067214294017970515460824651658088616340454117296179332125252622920764780276141091242308880214006174819599614866500214603645964363537362613915904009894009588785342718171260553996114381272166453075644314596823727267032830240917555961456578642851548966679677308293345501524148901226755886140116120244663827200821780921822189771426314675683348591891918358067766169340666412757073560659413055990482905096700512396616700596924542382952086412178285851731969838647823996493163522395653210552443724980354770443396413761789722432892929301798485486292465943971030861872374391045607283241210170834166035868962847992176111080962246284559547083807898420410764375184522822444485902149861785706049062640433434941309570488829986219158014520416270502514017348069732982539596870788644993058031454898731428488638190967515336697996049823977581413639004149723614132902106671446417551158350065666996672605215326389024443430629184566152730464612264245810749674816871728516046887465563329081838626208272696194177015402706535490806304000826505121084419711761788752977697839832296011360961988092517817701558506980769958380072804028437979892461626072174630404414780227734025385981319027356528836197683291589728519018852266819321796104851880431796462942348179559922470109072977718101083591246291818779416194570272755300384622268047497134954901355942967345968023626220009228477362194676632498701455840666199337176373973872566300323386455490190482759823165277439836053724073372020992515278309761733766175231623710181918431478879395642511582383688763587313841178103872559091484015799886017297434666552277486064113575907777905324505664447306136877316386340131060231778315248125984701198477053180658728355778489281117053121057028805026575020345313979956674913096563829048928409921477668665468124568542628649859362947050094082747490248394650563199290245329080750026290416105181895538411845563462490701805991419388231765688975618350831053627807709384785824005475116685865404356609741998566654918333804075272808902945482430561211999807825101814213366566117183433077568193698095703283851143449578132183088255606521913257987095444373434370111142622621440311325261331052482102987489371570211455365856407586345083366129835101708225999113682232081072468591427301543269975657948079088896984281557856352997242004557429550787594499396516184545391051249443248141064364858577507213658114762086347390022111988238241076463229156037694778246944277391536423451809117645010290456879599167679778686222885908768681456633396444295424974778163214856563738279618419818749188603663055743857447091877193420799237961374381911935884360205929370446738292351146176040340680332665872530135326389399276965390638267628438662729619356782106323087489386861629136404729370345026180798445023963678549895558237644577314588342636171871917875192022129274466486183611747161321125470460424887534431740480292235216203076427212120042616698536375748499032036900018024908123100719708129696796964115136908037124708985342453572166610862561471082304362929649213453373257954737504888026038626740803163779559451520071490032250832418799630978576209958555937035471431972514379704488358347353468967230655279231804096780809489219463833386777976270661875827803490908888444796150794823325831684634688509201851443307069993626891840375629987475256285707712525165672082896025507848690639024593062164012541361143721723016693502400013107458531091357272391846894948396449514435635885219943235135741805229532438146306691605192669891254811656066772224412709734193757896525480874651356878917774678377558931166545394945940197667564683748359822168292444875715000603236254891859129437045126592954661669454867870289388716608560408644298993484369615418413039520758506879416058007771312591642298516319040767195845785769423607148302728163457880822719041159152138100427755734613251385077495366384642986322360157073423726007958667405561500061320460224727703664105045161310012813470351034596630297078780211694022320234141542113314747012898463434012135516578904836321522102105277450498636035445879106172127706138433719035836715356363158084560903341855238923536957198646445982848770878099122028191007556039426346202722555624995190303824735904372521538719356888391363022392053658143814979775491325195992960581072506382901041479526647927108247200259137150601706567869119887127881048360795195889510590849907116537267988196733238431352843558937288585149559122073236857686425391716068866301004209784341695197662003953908063330882454360429219643661573470848956563105470062070737542596246179300234506921777442598208784746061554358851473935509960916591010440314833611795706416420560485135301177993572089777225558071440806289098752784241405271965519841078606433072993663742334629681974705197170443016918158137522790049719087645870697434944869122026298131791346482042002611500028263398688314866504499379043192440799597301112117899102439096585119828072561650681385795009496266373399420252868651363311345093576611510726736495114058324694637130633592852634460893306978896725969969180272722503224341385916089819821380413309626770383600503554338535214024274034729331336752720627447902835180876056487795966672620771024983996568971210270859269594981459709377080620493050224177619116028180811974488706441132848786297402160798517660651109485668610131069041937287599518515958658846426300115527257610046536173000929478058219991635285839609324151334279798451117324381876867109497331871902831504733891015517543464695142374359265572088248640954943060992889768650626661268367332662333129602377453523423281271081762013492959266714155243773786864232534439616311218653058730568430282529462830323954128409559917220573205136605626233323135534210762021872290748623812501626090758177339937019508100654223205773668164647931142470059815116919460142030253061368019494125604432965921606739475983631621981575639778777117286913936887984740912893061933971185548319045613169474530594549849426902237041346002525492229312189955918289142842674902462998944842989667224825898457328452569748437004335814096893855042613123158333338127301215442098782435621527242599530452037958821218165915600557602008915315132531768700538696813312153677758801150272188590335979374999279096421977686297382200116983701061988396204876259762657436723352974449895747975657242798360652146337380198025757510073646407272941336036709375529726500475859572085941565744740637526176303424912600124188207562193456218469775059189654260468912480515860441717218291137577802058442659832607196863815025809290228312977700594410929352908733488183508122088929346863097924939250635646961805875509557078956400398080825085156518148146372128928986592709806365850481841556430930593530649875631521479601783764270348546245110277266744728789548418316914983404744279300153365354905440008665194040535049633957560341720395495743074427624547949613345372500909705768573556716646056547854853250607890369771291979501163619776517274006101347247617301525196067965644546531161363317830793502346307822593385834369153778795441153166694270619750080435591115685206801348635245350480185340306079318539091012096669541997994646865822848551748480483989961068839274468032378243395266055640030649513216028645307581582376823692577330690780672427918658216376706534976095779931369704493889061557676153513226161760478113131841279198740276334774008061599763322302973304191029881780281862869739552675599332153209272479538862116339736665095122512090888259557161834524145493043911303672078198125587441824016077402227146548899280307547382478524972237246585262436780402634625795230873882410888058517820690392729855077680260211239043273944548210146763764276002041585605534169688877708422046805110167426589653030675506045329145764751136744966648023002239540361244558861426565837933799525003018366293711867804510298438947036106966080262735837383413778456152594316896008933784391874253780025254750102666047814432179811486715894679717612495206922378105787462545885976098917255752084463779424389422804665319144920699884337955616769611677753612460358815409340122916544469245714512373458775105319609578878734929769949419238768096209635168486492725797872530648572940605735810419002711594009577542848981265336244956796009438439492435398222100109393668795687357793458786957295198751072946951496491085745388702600128422618182961580492072980587727695064087926209186367678389305914379386525625288776913204727516312820243749014973785355716918936286432527553924657867829049967005170314761597368040887560359721595722075901417941682551690788993675200709760874186180102069895738256047747611954077293594876872694171889118678781831035099534715345570323362664104785197165128540578546468272919071565719611266033479364201132851031314241975752585640263205255769502902918644729106375857363059890694750308462374632288513730719100430220816531938473222991985917652565882736900173816982922453581784552030563790637897260754949376510466346903638578070011620084110997339526392798518435988614241253940799203480717261666280960868074637141166361496680670639027194852848140914128768140574971485395904517859774770902715114585399667776592856063997105872292353438810591443806652958565483537968448895178018806535000857779038170554123893479314786520438948847726583800077977576186787646489368964276692848949226595561301474654399969482828253193899298816602811912850250185066954850210370913389967171563636147026815489390965444649984976755545033478913561379325282641826482255717647808119242682210620839834514154056532180500005884998774759819964406273846748597522929909426294998184126032717805387869692648433385117622163221315982061039776073999566609935120677156644053888055260224556928953960127866175193088541465855099867120772503724311005297179923306501012597997316831138823008493618235286903885800391582558220511623091877350208318866563235594405825230376854571486550634639895534620018004599596755310120872981284749791788725659501162363320120738122745878893818252167018099338240073903178780714168374042026399481212200879777143847465022301837745442800553971091214699517847534798762991987601805447259442056311273043982126297841727793733141947507505614704154421523997609777144371903145879709283344353046967843540500865824400199111069767012130339018544199866601393215298114712409293571300986082398585675071639949594538800768554934686365505703187785488834613969133321639892277093376783757329225286145618415228189400205803459438608254821017952496350081114413178209520381671998876535432764059917879721113723954133550712119996852942644758010655264299552138459207025032240082226982623320785565452658923776971131610342452090498765185359996957389595227514733494331237838329980558477478823376067127184174156454047757784957424130167061392617025744451401622287848359190786354792858704328933756564505854301613931227353255898381728239337671549049600721892492733285407926603349073559910215158789554040718574061091667707990536055428052615357072536370748137200699175717917461107149225100168704960244047833256568741293165887902858354420240120093362699475375715185853271867051937448828589733901580411648787376889522603515449721652780744532225194173482344283951401148521780256134237842550861001071841235035256691226962006818864901626707996928134071667093403783409772575633639208554698315253023218944338839036391233212586655520107893922297401946731539874597149962186790781206598979422873989142806741899582232397461005171981381033957330233061417348502815135844632661694327024332863230826725858610707938227706958015485071476857180020894319736951592243377770419067774094918655022117195784016078912310537738128742483453157845300879044379884789444169871085282535166662280352217949306865867662349696529168985662006199532079237646731992655410898105512350114168691149330859719733683944029399203709196168162408716844756363037413991486434836712140479805324714933836393188047951215819575745550406070999014462683392517383626575070243901450590125151048310931516299378469236957868484584638765231735345540760119938981369073956758236819968214168178086015418631764051858731056514564294464664060044296116412832163957001448279149344450809949585076522414893778164397818708961256121716014351591190351982695314037884330449477032782136567656286808464060834426690347881695826410584551471271013345426827836563139487152037074227239313286052173463667530388770514246568741749453703342709633085330075814682412168071218867705692086463484297015106181844971734375805955857005704234868444581027622308392604644856189161022847402688150540299549889119112800302779522319251436500029574667634000561629063253905962350242159930416915151686679324895775091254523123121128058299401254092429036549854284206814634661552652990071422958104584534463238498498746174748649284436794928935977555324360437648289828241578557150190424720327418545919891887179370547284594795684475218933078298292110244800741086257643799378563441026372429365816938079056066690467717739763955004258006825494189972791070370858496743074080654680215209009835061653583746882915125891376836627062711624407658848524117273482290053307434861200845440931505112039944321802215436797338732028701832865250848080828985292437496318379612484127364373123965504729733449772208290218643577697383072843480014729516259066308914289176685177995558900392459359647615724867253835952616350105448456186212270036604281815820116339479367145013256412537567824148648305890286057535926031958868435683494591662779894482376313141419439500360505833555708934354043502772849809560016451535325438271176017884387510361214799246074510377750792156890479652399318386493434247261932830215838916445576919978111882622593179741869184410380920942296418978418062312770028072526874212992109774800110151867449985042117965376880831772429077888236575337298139488642751782643146987303599759007525376317430042734222895480279187256868986517069094771297241684406306089084017801222411203451291020414447734794729865418328662606945190433146189559060866193869540648113670533217762931524112772247063646759742879893839812137592116789059485815986492322307455051757274383375819518532217578291836692432219060169857264040467413320138243405590058143833487961169708547003709419508522238343853654280274894758134507665986359197500185537473180570466599975702085142969710587822776942813339358812549681281947714453918106952320680541317728539660598192396415644943617880245011968092263981409728876035403184628801517250238716159084822142085305753824335619991213329332289265549029992984039703631852950467818385660237673118172013527281084871358508339293312115385917645724018403445297892213866636377444881400332031850837728663764514603341447072440038106338625494783870657040187033214823094812044499568051133682235173559938353173999802013690451257154604596193373250366061148311036045859702832670834373493982228569129407431645056312234116793736515114023160948879451348094322395650180439846379721053964251208896182061262877792194857677282289784777308848316377462588710587025310990475376089247765653540845801809996378823293492791507651503364284584057103420523699271276243627611478709607872264687692893933601582526544544081865397042804949010129743870482095118997909321991278353737303387720973387452409296697568092114020678716361932828141796727410212219859554775839745933466879947470499891862441896571838038621977800408978173469292178828501999090160779124138547276354959119266666061538099371223235630321754562678080833467309307457729211017279920980297107021701185720888822549145784485867202304009269818513820878251938818478584825721305317499969412131034645322659573192034770677333235815210450253893382596954274305944304060879064197562850873189867030498579481084271362465292135090127938927850253882160040182767165873619564700141626171813039960543257650115716488005514539197861814198373400480066978437081634043466450906721464992448689600080786121588215800662993432494245719036280571045298452531389660369809747004050213775531600887557118426743363862668942459786760014276185610764640141021196903581282780615605994663948724388095667427310563701263931719416273148078682071329834328546941680996983110563386564046242258871943726217957777772647412111072693397242425780851040155420576825924680042427289766149601912444827293442349433003914815722810574140479185883709650960565378409214739741112565870050909801368394927962357374574624876273390318973228906068386485945859269226357156375416652130851862506304670640224691005801954102866907463931398013415636537693076034280375599003414022208127085330767783765107452138858115644938726687846611611731340560549235617667582169774772184475611462634558227825435540486937515161156083688437095158272021333831114061376639275869610589845375399044618821937016418931157873311654548241194571527256603124111941915327928849769116726373978662132120957537567389277795517770361214471450531576736245761601636326183017613318105653360606592665273913955627589362100321814453439162918333088039084229396644268922919510561428132296431514458576976135791540551033766103047953474475704981995359221315195518513925257068364195759455348269494711129791358018053846766350520053604941464369534046917093265512869694751174417203876996431455768580694892072772452309640488350306955294445447078370740358268387164776612296479189060374167109042509428725588898000940471650976328511581291756316226276610119464799459678566643966811675785690031780546226012623507905828278280234562669157368170035127154903278865754211929083409540715890101204972441858160133570331113710055788845556377858568973502260825325511258332858710314203713356631858658548608472403230198028432302535828731649157523699196730338411007361359104857318070649650643325378127024803244915446181383900326483276254852080284060949986422568307450677934111164589208287963152187919475748522167333725028805113835713198030858758833744422334898524990368150172192487452189836415341047137089974338385334772925628903347228864467914333366184557799183417042877558387760706614668523692213555813027351353175926607915390537230346548695530801484485589438805477329307229121473202201004440719392532729979054050586480533633414501533386487499669606022190094275315613779751469834189089575139957511198028099697408577223927830747678014358758593184383822402138268297389118276848039360844231559873770870065247928152175855441256522910846254083152593582538795775142524454677928081140072733561577191333354301042518419023550822861808635829317519363555928425226388289843985560278168494989198102742349226957201106267439764537467847361364406026909687810547845679799021853852533326231257918500719630118040952103302371995223821742284797574612440960909501760481013857912574485068702103392991823971653630937858639590101376456522730031054096515796666200341738439640601648932713771821858504485734109884249628393823895906944383316172339132343144806894070884571008289065153847893059877483837760396367185542380419989804799363552156777949187768528241272337069786082775425143375228485876132015300423036193825779690633858475758346714141173245122402865492685770254567178435338326235702945800249535456126113830187294321392343664061952799267084122340765586937374352112972770877293025232943565934095733968946806029514743714334783336129854436071186396100830769138620939042174141177058429599518099041543523543333385533887966327246784332889595709564662355350304874059031780533648760284267241193157320421212176508326055148141177815134765410013762749152103725662914229764537759546983678370271646735454191253742302142395153086598244344173513800599170076860084890752566347404670597545820980741822966828522018457636580835611245504478910780699639899301869120900127431028300418147508053078731968595777297688959056217676301274718571585559304155432022449996372189213598716683780641724560828051104156422045407578604230126897370715088557210370044909704744178295528855116396277473916070800508417633302421342793679728239280368987507163383899831088471748620957582724524310343003094032086447133755509981089160522315309639439789207311140620436292128114700538763003513319329982668468561204936174319940683441431728722306966362473287629208855584976061368254080606952350478073660724520867835582241947645461155279811562465144420072038833177563222923911838581924731170755991610070063811899963674649068426405756690315360039778181167483147610952351323678123519976413134904476670875963440179217252487364008726738267839299123543515644332489404050120280491520720263895574907759766167290691131940524966828289710947501553771327759946521361456381048479296431375456625075513944356021054942531857446013011776901711417208731758555772837372128098576355352495433395881272357202707066888627654873062842300210142537652582934927888372946023208668811376025236317886835927044917826944258264408510280618107612573963794046766163430389052027588271009329486123664077940693872122000824045036896629880373554774879378426821961566336467155669481939344956747308666827749848504201639959060222743795530637001551063547835387383206780517607389846716455789056239689422286761522925710125291752408929517358187833372238265728833222853975276353862237494065699898139242872157761760758766672112174338169089846411282309485217233006752555541741105214381242552575050776178747596885514916027972444135894165082978182485491517874794110814776248879395566470281744021992391349725365750543995240326330361922170206625604458586288211334530124651087848272292706975141269753944589843018402713097978770140623436590494370070592734968382293499436641341793770809193832641193473766824568302218764050941982013026293868752965818524879389257715876944755137961778925403876750725612268207387816132103201271253363660756733082038430342494030817051118402542151445026928438849533057078250349923418153412431441498988906617997655390727956021152568093381527336131232297069276766446372496845123623630630266356136182291528852472104181855164128173817859275357304981473954336372792367303384116827887479049570331416856930714881113077251241927433210199196974448424873926828944089824403623919926403246181044637967094666133905597786938469693044457860730305014302480524405565835823408497215228046194140007969574785901958993937301969406525383933064871752445214704119882213187833215806649163851866607919988508894283658648514208539955644131494565840936239515258847681989315397138356113663373981947308542393599581503763874223080989860325374088897884510154119367177130950230739340869122111329774696155678347244860178100252864393821147104509694710212166070490140450577923221105064337913283078295755234935704187919606530083223768179701160444622088316607087613339067089899382745162933668150986068092345254537517670308510100299988214431585828025478161443130075247806842223887928848604195502820454740045800213837049226650835980073398283513419419465675654108977712702621717638660480365347333219917169121011067003082080308381019948723936101565778112424295769428611107057282868759576088789163065149310417670154763496426224919632307572522238499083016328650583540902301984988007962900075898501899237098736362755993529787397279191114859843789344868573698085195221468041360709932803677675669770230016660514627113545741824578740707671643152729412444882140136213407085877719245936163839998769341116173479118492795465987135385024406203206545645626431155264275404663177275319375832012573019713035804869866444481801897005747232369725674150963296364269214430311432488374049426949079058669829196690978720546228091496909593152523710660948317202786315755865760901595514075677877365358029656531412045174636834427123201482630745109507893221559290446550063407893790177673126002709097855236321018235771791666996663064688506353838159990210930035281442608388910239401616141356402228186211927060659483818494811893823181026688040905516292713092543868648826968138094980065720997355519262376218119081449006506565139738791797967303706893841997094802352679192528918318227470240092708389957998187898379994046672117600584290626364120021282804180225988556311873096649115629772354504137174304732016122353281382201701524534778613943640912184520759997829196974092804296017585919747357451926305866201252823597537339250302215346641263282425896190812902696628983610676064866591857959713260547571640290437937880170704371295822996104746971451212540361372288879183319390810209178166862037256686545270714361112342281487099240677592491793967643672404212659605206812082308857291606503974405227719994578392492433578041463747935867843530176782512301331607000362728390599664134771400154569091177274845504136230282844886644390458593690157977807402082816854842978959552837609401190166971184003746798878983663046911375613530335264699453997033797338822771612950926230848740327822861511443691369504953598698786935844215935918141869902419347329447145902407142716242783505138917177676073963573019379927070620930518223122594292318256596254023021311624537650464117860887416193404607786083572854584417533337426789391976904122227807867732926240548962876527599246373784422841235996343008351576818017048429918496186417295559017649587712729880132254962901770019616926551446941889732055770853826008348266490756005388311621355587848295160280172933605328483038742512700204455350467758237779699001630433651293918004137129043126067868795171362087644966107690159210478937673528060134856113921613910342123907620870250257117774302398281780109007559879773514359243711604538803766367923856809734789981539026509024267787903698058666589403781955037915354545727845484937621231926948064723599367468412488735075278412100988297852173757286837695585684408918139456975939489645868398541576846891859187294983427192317653741085801785828801684954903822716728563978587748118204625438359369373739423843933467964587120161153244413696859955355562333194187888350143769986686235851403719871688891800923354752057651517954326184800707186051203332795746886897595077453271985418696630627886084289377174081339012199222592277558728538985925038930679362923751040487951775961154582922953286278025125970926274804884118314381435730520782824474388746018069178548895087002107250903225821185575267987672971871594604910300572695124331832601866320076189572525458070172070739010356310368694153071746461767832507956061030415175729786664386439870123544965847053988384689346174135953596803779138139576997055256752395058296859098399962548092981221109643254397352693102073499609158219115839171641540439869455119964933661974728814804628476634716102361120819708628467958005157376197896540987973240672161568784493348927232425326063933187422981633502533994699852460163695301490929895837192035813487056323770462597077196060675221305356553712958779021707668619778484048537425594610956945291699394985842300546989983304265185695406544760154701395772691046308061702728139799993982032510935759338500200134761974704688291316044907016207707659629595096112859045700654689721957909005656049445352197708984732912525120055553451181332439303946065273879417446114163947599369484761542565363141287021061700030721716496162289180632930799904277709688569611028256798039630235108393399147996340697486753261363535533031319401689299925933581851308782349066112291070050682836763069808117377138956714827565320776087086151497163754697054601935138746372544999226639905861846696471764094142232008665787913248026075414783260008085634016966365551027853573409005245714729935226580745065549978250756792810028348016431911632930337320013999960097494255551724316827594683360949889864234890990525305192028652574751939844981993589475112549813284237362317059781774942155476934442149413727169701757518138694436376581589202609127212557962432468044779741335321055743572978091862090308119709588795679400998287273653586932362452474807185182289975698246217989431540651467796300275313062553765221616818756268911902838056685651675509456868342616082154725123086263365788621531821317992758594067851590283536965531538684314968859995327996646555235672790980847742720649250119126333988585601000125338365076642135698590441273577662880443952021262005455227450367972122053788555981336405533888019492305744571363059057691523609334982355742916385014641653598353380338196131319491697465872610684516030287754939816429374648026466574555148980658188073366080878875012722633260637186827612810496092768549612367896459047774160550915324228879040195084968258865618832735850337361608849700949408334994735731544860552605602907513949826079893553608249086356202411967812791715482554755649487057114194790793588372263704646768790065282621402480888224195718724703529414901706842839169541161436115652945989104084956346976862298211193444304515784279519244973946927806357526278928055345924329381758869382028567962787050126450090293476144366856538157797479428353650494976137983449514712224275591743270064494415963476189257806248217135171652459314778765556639376574315755200688422618068469274408738057568870764716119862611382181384781334014589214680235842605380402853905345557329847680625726852662102594533043388781499204992623836063499271501447621497084389193363122904267928726240964726873407897912105922630299904243686529297606764503066774761839329300353951388015829368849727691334893011446890648720780745687100686806399669869295320162745760454285072026277759627338260994408361327215574800826948520234017026241475756031691960575187277309538554417579055179639516056361861876702412488161535148421727137701611647472238963923306154443328666636364816839412676601325128633784382436393374173608521164672745720553481328337248458279103582476209393485546391774726076258679594866012657043284813191897580127689952381400257789005396609323903166897529618251050919295528367997213239050888607330385755050100767105076008734908384407338644125129103221249009588014993292059123139085511967353059850498682028370521872131426200522198050111214851345355052789670039554503406083779157025478404442103127638376582041009648370879272769625896820672727319040453711191283957748095076290541062480931561676809180157942841957159879547044265735665198969099381351544910465741189645727889066960128307134323425174793031366193166610871984582116359472208134173849835354350079776041862033639332546501846081843791429833096246487474603045694694516394019921704300197719415023223033787234261731976755740175926371985331441939368494921508998920731242759202142422189727907586513445163701651726826038576886742830127882048993635193372147599717954343727596740791519156849713210361791115614527205105309546341718628028178292259656563604558135929287263742256236473836370982367295891584116797107503046811282362030231538717871408656011643285282824182883842622515045537214090663501309646415369041905358090640605297906186886856538453996659867979872440008154878926546172928890349024501648172083051306656234271372289744633554525836234804190300196226245974568624733133277115186178629894669845575704757891503758548655134114351101595949301383619485337544037803014935611956970820372513765738599205588769644826020899409503605447575695520358227032623612345471018779716596400867783634398084021325493766622073894276562769271646785345080967125793287163452267730108472671270821364155451947592025195586960357465987501897615064723958919036235984139732166244695205854665349113031113433562119345564364971669476735850285303636009928576320330599789431800878706879954245436677373174389776464222981681772829598139109336714697777261566349522235562122493945011285892381305933236847463969644249821590172824825460243406585341618258589206171615565788667167237472979702418819020402428912924388225752585901613744573899890646082090519352709312499443766010036172698425119226463007876452052407226855423271098704236870166812359381876569688275060767987534003713314316012001050298156693898768517238781462592956269633842813125624343559068685471611402759001619309224429915392749597096787026412042658056410378184020044016304321796984446669353881048698506094060871275187130844885092238240282830643853251037750966791496276689903736464030183383867574752275749597457984293532367116790901297342919234491103995679342505760514595156161995036432707473805183295703666488800449714183825352986005700987359404968139101573941058225379220342482484058932968719727991899491748803442610774790973553224717171566603204654360411247630967124038803767614680853451390750428277765993598808309528239026003174343995665855759129200387038907209152752832250519293701458832388769749903460210987200720975235012794599075913383307134824708912883083325420968601764314616998190582708750856071350715220734537799633468592739248417161205205297783831344020650398670668507086453740973227268696430811500248245324706427124491826562928535531557614168628886523250969292421207005265602352808717045109542408811027103998172581616824630995246883749210454462995157102596390834932856314830653450934009528564117275626934315231443784769611194475675286213514754047642106398062835998486310277274998481057036505436404358883269187975849862226893854122826943969451625072529509660954218533535419723089123653221772711159075941398917944731691174709242920963916672707824342121267451589128162757116332589776262131506443506256436516910206072776290102382390048802621642969054913829343169653908398309114993539789644517584859969741251083078178341988992682126726811817528202090696150203767658701930526517564053229911551711761126903482233768717838388121523633454694794194633775523060262684102344202977227230129083636036272032995063699565085875055106816465487043131474844238629804536237269788793154247365836461540119505956378273183391152021264063818591988844677549862808354816546722084678614300630661176130314654212116375804089650664495996249511898967986051525639839594839348861217004142527948016240791521276172808732251858339912977117007027215596909689865963177271785673140191535567183277572950773530196075727928316358478429761200330671266792748108731370706995060229570620981143648551150821774832832175516687572945197821297016333036620377534171377050169825043311316279181380879299572405016368001699134649949041045464440674305861327708493075112671585736628265414037100436343422020967124834373000227358772057472984999193541162453461194372601529739303054542830719942704287374925851017932040225936621156965428414438125020072343548498701453281027286061518074286972786571483987006828859514847508611775196906228283840375440081170018755259518782508944413836592500543539601081461127382784596418285649478629275324212703660049749227969184603561041648415828875328802670200771447749111912963080893765069674936380177483737166121100755229270732306950492730417260371666995623579747058406392901339029498722129406369891111650083589491430505043335353057663145673720432338410573102912931180660855985181726864892370105371775296612412097209414067537054600377276622646100246796123353136221232557968795940787870712712204087741983077328603617820623856867134916416476249079820723012261122100041268057941595275224534999445492319285674972183086910521444671434464984578389466053924241434152666580158703373021104812527528872638769675950713671121743411290450494564844183940135860218627511785809298967852161698104896274829381040150132994081799846256621913981470889498806328322449874719330840938399181542638211373063157674357214937521881167674539539839098115953116354892996687105821126173134725368661559220097600142990522615466309737277147995424552973691592878284076881037102269897411631076605865120385794800275877796615317436462328586252104442907215792789162742583408817639922238101022274180398944689590561552697793340836385705705614030674992718416801487104531055045484950260615026072076649683491503311004950259895265637894745909164432046618274357003376741962315421243445277212776578325980804287762831833190002752586489652265119843789445731246104819256468375947771716428989884975706116427963637076096504236846549041987642288944462858370779124682217354421117781909646224563040608093082243918172906525081998096955701212728622308161168945011638700841951556468746566413727788807053621940436192410297482860670181519122230031921187602963976368975500683923502220556339438145646329167697488800384893817815014649164035751204114696463761572016063575031082257410641056537388551087453081137874928518126469556188199367508493344674328066036272470502214313979146459346314162149332276262219894298093448121552863217238828063965932820873911041166860875142571658875040583597938316144876122920407263703152990640270048822877431704979285656013557270121884280005049167192821274301415559143979600726082832647596645208893363489750378206173423642771846475964805509165396012844870651072891005129422087335912142144185989929976649762825085223548514081541979029185004489921846438404940365391420654685932916023974951840623424073983507954097721686133027374029455661021242455568589527529462545260017953052956304751593772436083290201795218982372015831111704660966912405035344694614668421100900740459046005296358602026657246041040424042484805282774085053897745940377218384820370034333045348353346700711897323207051870221903057301637854025244060088248231344359679809443099136629621287776669355648713265268263276260367427130351355309899802587226748748777919981233068205911282880653224634430415258161181944780428561723376651699834027374545582439877145224170457730208569648892030988816301893094777223179645007527685874253756976946246564421304739923223680554671000722390263937550921977318890766862860084021692348583124341350833107713642146231454857818544308947539606389700339025145167995933287142247967262566298756517371916775326257347396299822648089035023184576912543620664012968530014805091791464505019972760958920034608440758098932180423079165092168988884657079462890442454580865105473820099608818432187921111123040791247470866722671397251745150184659037233273639841180699782858283740672362780419560381393300311294122185044077355883219066503586508136511122007999883611369696694405413428465232167322981638041788588170194926043327984524935806732823954673216430161338104985231102713756982925942292496888908364473610115731760432568266511084494429880383321985844064636710577802116261755390523606215373784297246913342716217182997648226774757268104173556352564398124326174698428778567690448306944031624193124412411864145542795142538256153075408349390966487690189098393161452405173602597649930667659790372548218738039599113538646695280169524313731457940643718974993431429131744499032168356130064778252503720565118285742595356294412891805828154822111543839271691482215639174801147832032717605117749187159446754018297786522372332050481537290600399920900473337738616835052951753426728077080773847692527317646342533649218223619122923953405836484698193968763666761333406502581131422609181488432040732860438186064340020246599172983682146137377593171444217293037725878662634451631364903181407908784352791680599614960041451091023329321412146738182235772516588142906176428241762593187684284478535481365841249523644517163953801068614637128281644654435677906868562551457144916377471801800520690098448874720589768320858947981321621229747119972731113189317863797896054382719268838920071077358177496219895672531346668774141079750778556554623142189587550883100194290960852071669615739574048155026483121147015411723004517450677062696245294876100390435216485945346179872117856535175079759141913557147137860183875936713737112132325434949653920754685170724439663484188038020973690277056691523551877209618215863910191976669321717102413192597368843397645831060552636412249779537082345365551192087468683757791813298104601322346227589722157241256539895720194501047231328419461289857061965982730898216079451619534476233255123630475108861301507685609912964119780751023540543466168070499851953319063134833921934780511955828488751245565329195660563939452189642259813147565851577181667362194790782562754165869448040967956965053224112535708430288676375539670994064212482196089970370149343406161316967069347016082347742004379115111137175565279004627293210999213846484761947505580007185346361128243393821368417426061367128889774243447637512997959428288200531650908959844340190247100732061752442255096591133365142497530662194155605110614904051284837278136330541089332779366770343874988362784816337615418444528611203478835265188248871186087855614909707973093242573231866337699236451227249314487524157772359678196353904765601969360320270308306243559832727486553705965362743186307725980280753094213114879206316045978187187773940233966170897166843688316136247445413505344439556126344693386714355274548823100951014694780476898975279177128264146275427443790763721179081524362030002314073878492646521970624253799796249144123723158111723997471029592803408069518199015672378210467469215060197109371901441647949523555866496238190959413341086136717421995071122719554051488069878444449069915070488542980824500616712728871885286473306765481051290517542657271895606305540796251010798242478157021167572311175690970491602786902696736042976255368865557489551542692631805329191216599123482956029246653817497005278957964534288991106899247543433981535319782690975101422596913647129461106467052535107338696428067523491418140587355823489820268782017463779484986394970894347351565581052713809721291172131165510200119616682966635970391319323899231803167091339153253952813067179632515623876617133832430203864184659816614747561948220260746388882461369581592652260006657820303235285648342658288756341810137885300415078556719768466949107610322389254506671744942827510999126119726652705674645657339388088798341661670910789006631582531852624461787677862594967358631946619793963565170655454829978867350473878633807251539628120710489125811169867155430419127299952385268551361844495691190711700374303721066624239913990512548882350526750289850060742941004468829544216899374398330946156567097916118553755501141629002553114231610241351088941807866030527166841207406054087162766006917076467214145389908361397232621408035565275194729370922639764729600090519293583508664543754116896808295650524992491499625744527340152324149544470086099063200786221577075404303213577611761414916768202740679970418091829737395755121907586722999727852742691565511517107318819059151535103941597053844759037835932624894396330968701662219259661185794998162610288811984790832759469983760197803232014429235414895751211156117623778473728998683470964392293179183006353306566957029134262113765227019726492485944242365730053779691887747612642238516784682584914875942933861766169480390948371613701363490372749830821468667497879326376922031350159357869513642023390884752777381962982745964424042150575821087921543986537321737433977463832839557598159555109123259759372575570503028863198193937344733765556170490533266088075304901906390081883275447619285417484547953302172065343922850410697476831072795957188064834726266204332510076883311356376232184435104626669399783870166902172715289613291679622959576521161416994668237754418732402835095421030790921675184915206231017564669311102874277598571428228013779789485925485471601715575438776626303151112500455250036162756251587958333159423273050855804351370211544718807505769304711189584888432015503311777103323213686376117284280478667050988299584056004300250978601188156848859844179186914531446487517669839319433778460837706512212824841615952965855113842857278783303212143922280578154556946709980123454644502684404772191976117879607497629784507627997834140043269140938576225858463144094492899156991965476073497426078779235626520519717292492458031399044307469858639651295002776202612187490784497313096341034069028118215648294167593281960803674328914298317946801802054103947561231179878789464882073321567574028036463129874044929663605831149376620798269554973230910814884252212989711146942661973365063800867129172069018232922109182719494513322695540566156620369882046384800490584583599018734159878906860670662900389787038057835736546400501790292265787702694632495115737935034056818544087412158658108855766727388995885349258724400616010359232909583135273100359660575618359449944037729016859239165887176331183871207707379785427561595215729956325271099633185513410945312978882848991176673137594011317884198313603535406959972198019005934322969530928028281124554255617039530722091443483973182814405217974988706351785934092133655725702418382070864726862676434225571314677925823255185395074075697521864880226741270468163592233297550015040685293001063647038195600640064437873016225148486169008956430397923010165866058495734422201108796899301331122463063183370788356065669708530960463096137348009033655581808762537468923140919834461323295543028495198806613146977378854427829355507435116152466031599924996623428669079820148457590251091628796970124863258064824422445216232478356586547449708797636975497107091349225647082430766913227370742978615710516505296953874595507861136518679301621041568567286592844122879437091063349894776131722620354114443741881251232802458553632321675359614803929972039277846500717715520690929434832499488582319806146289876439881922526449245464867369752981176806674597389623362498210397407718217731422419052921154694844814118356987583667769059624890922751188862272036272909261172438894374196599611071323371125378445434309520516837635876365387944262076998524580743838466090458246306870697560185298463903879458493179790433330484924130114048498446890245229356975816311118284977842254360185770406296788574182643619647994683138234091964069256306905630163563890976117286995556914780604494539803951578014835447207019776854205310267300024883697443880392478572328639078005237937262270221073013821034459444350619432471340852967206812377166067911275012225529835788447565851460526338166294792310382536596697564577777640064504507527354554974739787675708447981896391018353074861189013155671699640782872500870911508171467759888854023050431553847526547261357282315303261625332345849727633119046800445577650553008836493904948728478246274281031713482610093996128044146331649404894460239433258509316098278205677409203779289270689021161116404316173085946088531443536975116104507243855918992344574588965785887927857189559266357205904517982247992662803949245305299576501570613742792707821706050221618671211697759694621748433577010759814633976887723259274959075493283663349152815686902408769795811031753689121534791397287882086098405979362500633587317376175383823375457145321599965733525759727732402521801455082139320883282496100464449073220220197366269922289646710084720569493220333359634512354951140783184605503767134305830362920969758359382643017866800384744477224579798923297561225136595862115191965847988236246290311971199940154586933362621706056297782134763470296942202136823021710718095952127136460342502989564476603700706611604729343574805536452663169260555190298091214443349255728879439253326256223372252540886224207761920526833769677741288587405031487884249859077536351008368639473980968091608857388332508424881182140839467922429581937528174486428930867057474621115116211298087048867921830953686708878442881260699428463340696435001980932615870243595325169834765020836923661907667980741974984356814404657080799988107577256606046251623018191365624355773346835317704901587231413250484358372250821418153290769916835903371319447647632989818461192556811067715861642384914271920216039210322731210445099794951029454406473288895319217318413686905355329099866157723518363078519591593509066469395978204903161673637208702269619669030823353053299277814545694185758396319285382088453582959928508813457024545828868893170352113316422915084148920424067445754036094512383921484811429589235589098406115109191282497165325714544839738144222250983506276392589972150953513334135587150178620597515704940939243090147164229412537967755622421923828865622033710611978742543918641420150043278263241599567513647207250384060460416743460473652824223026533732010017898913958715099297878899754986006948541683314276366230323835344514890114144511248369249392285450995738586187592095450808994513253023048290431451920844769145723868455127235359746628690529300415336557461298172586741815177424548862185050512768657894273773409678530837377135365936951248710528303040535010135138522333060942976202136377918828998670827380013334477354957350200869625455578638953720694099388667555362267050170115659059527283572095903220484958874395214865889736902640737319326734071705699438717076405500567168216491675033009459224145859631827434342139885609545307572680150787955407401209107394336793745199112253837446947612573253335903105768370675906950228288467902516191956353067853404059967020255732907121926607087154223513832276385138854055196252175352654248038349435238337277739585982275393287884370890190887233732514171053038407854084578902565883748054648581454870287553735106587282855257153926587109195855181946444601343737194490100399327521009857459086451278874167087283160433584721730748211897303214981838629957678146344792078643610652703135889466319026899869613389213739766375382444925404522115031185916323789648854224794106071784419508007073224476578204202201116653539417784809333825892618481539506174262667933918369729418554704872418322946686834307193038727405609209120851938578441925653520954147930201458060035446445238077649656133144143391093910632634241964205496615843365802373434240201636633948215399326245479112259575210762195370827136566561957408964545500802893973051717400055714964355101592133862633953954170941096164968656567664136931163051786119309615069070500309748414110100151295132720827317694576622740453186544177301680606739304846228174176223313586479606258886782358004687388815011787775195589460024951679944177271474678122209665440825897713261191309849459074231800719831157167188099765198405174208780163552670425516703455149792837003980837350509582223430591504465076994642394351049567081427595243944499803380171363437087033516649212606834542775431447977300812536522295164103196503847118350640238000614060671702950381881513853961691730736218644947909376791567830935709286630368505294435521168627360998679619233135492989673134432283544606800003594022485023162944590427150713083100596561677352299356573676885813768486531975336562447351276742051397841772977433109810660606930978654838336739526167686118178374592882524635903706408243888230496351473793768538350415922693773886460209585159373861282991620963647837073175097930252701798853088194732358516795536195510705931528885408429615518936167949559388035348773549397382238991322578239324721895735121571142437354705090644859788827601450387594245047113868044297371388319757256490642334768611359963849881831152035426428345686398470428383844985529200225248728436911776746448022771926152356356555950763797136092779574134867358568225039329989313455356615538193548422151657738297835165011668058531763738347054750234265430312807905555876799943942492248900366265517527630984370245241554454338876699773926810052470250794601377647471188130299618137630840021168585807491995873012939367851511819773534820780289971008598414261676469053857154759688175655261354533271923851471160552185883198656226636550383417517929294489781004796979034858456543133076888964206233798699026885510662089653476769031415345807198788348147844981343541000252551267670833774514022432600383449612424948245152281354987459393248165479526305891822178798651539811089148539584965743702422067218981018966937890015587931137463971617842220619067211432652164219436335529674983386162021895121905768818863846797403734477817502527335513593931590783621564767795227722601037662225648903933882336729727274804780031633280890089604242148242283440286231554649367040795865419454792134340758115157584769661076866369461180388822632986295344981161492428455258053578113061739752966688463547716913520472439512757916432215419327592394936291629650065005005937761456921493031215342697982361000938914255053385642144697461412348254368666596665278133975653848335698944385830593269071502342462738915775420907995053199814405679883797708194831779203537709399310062297137608635164557000149990218896541232701952279270746005765340182806125332062415221998440164175433992975473853064381498536422226617016945144431889416711811974809019075267409484390342082517857663953617674926650575227628615052209623226751530938212510678290013672509919348664294395113072138129652446555460419875324320236631678223932745046076813328226026680201730075444521123136327788916155168399176123317342308321997187951249379894487185906022512721904168629989478857779544946013095834615895641800878454193677921981894083949613078674414668347920109387445529351721417664953771488002445984578285748372424681010234677435210167570915183327319819797335237624368518696905222789988539803198484170570840048545541726905864054296507051404628950480664758118940743336419342069641512466594667080825508229167548311795735438591980634074012187053650024480374284348617118875263382542722397880760023891165480532408229238005709536660631142243961288388148050596823493894750803951141369103944659200538480872996396929914120035546662215747486615987354666676681665610678091904258916570388109566797636530155373212487993418682494740947254230159032422045615234193349612471206977913856293290842900798956310839784899963490445270020680081706711586353917924504224177667431289527048472831518471426106229738231185865743777297320669871461368116409711406724966381619927302981762374116515865906211468047350849013072045284743292739439775342632670185407623283273302545739560458909138094403293475242254326618201394162645682940861926330673088709226509434039412543393866996211082577426083627573919492232976882842046962066234841361407221792331655697829362118922158188019216102546210098756711482739002222923186160724342813484296735569173249920541956043746846491898720773895983040924636556748669943702511804055389228910763453063950830676687240152613911838406786544312136536555512055572481728414194432482918140988812107712399590247066066073849185257423202337373219877365312211779698867236760200807106920974363957675894873558262633188617220192591295683224706152052999236587348824879730516389522102278595674094850786534991248900680952610012204562804333498533201291985917157430836162350163902899539113758824714403714077546908970932923106381289734201501409979404480482366362149375661112153919937641521650386478494760506961588002228869665223954690402161105027052497913271022033268275454337870558053081415430310185926231362814255055000673243383262556117714371124019044522084201563175010393305848790492010511680561391816296762151161800221032335019281980694619991220077843470788940061225698282680759256756453213602194875466846203626148864314798767384603298768235176083735681100169509982815459982628492509794887418381424852108604069872200186222997873602816981662127401957269038766204828984522313777203033690048322358173438264156087945960627404497388211837326827050868049954011674644254246461272377287673254720601507286639152676272076162234923576371554225295448745267746746668461388651221379864051910529426859297993520885530145811371331172578317338770692817651405367118970741889778774196094126441531403873639218775477077182504306975248282553797564860545663761673213260990608207462425190357611392652236537822643434483190343347693489946070057870015727709719675029801163076315290518625893351927966336149206778371857247543571639582938707544996970408926983734373188267339998878949965465445130572574706374395645183819700189707210909296511739977919386886597909145989454267676689546194298369045777210702285884205184204089467815407943342461669847003417625379803222098972871198906501714617729863166089900337079342414045176664958476721152658352866123831385418995369570796185112723106232392483194469113430544642089759175561007951910796682192048594289562267964948773256718857695378319608256522557540639685008866659722516996323381842051240164311247057688427854937481071494352084144792098545280187937829604853029611408114530187221566626557139668280220546144318779929606853104605815208914150623303430782568003094760959822504627493716801259114875060203602391844662403098526034924328401106459496197551024170377277549472413094817310232504088572880672269477245395960051308721597557491780855617884724136326697530644851630774569611677362440412544352984079401777047933727178029348081614447635050645799832756072777303991883558122103678792540565455930884906895172069284416453960013033749645165090153972554882731351884662540167566173157706968190518433492516638946989249795818885346448612915020998450916801930349790511504160145457692391712597480629680879379668461247457019738294622854242922079587228199793366451678011455637127654478679810729707769094813927385368558630629706228644469383767262486688722061650494284486687556980321342982246025144119707521168962963642579230288230575206697072312971608528887119518750856492719971842510773447516774490265143232754919922461542101439380899166354289229164129952277673694948207791592838575168024223088504028492397654000875109611699402202972850874082915648388583011399451438558938439647495197328813002483007111998489422670009832588590974481062204148546676996505634786489662005222350387120291243225760605447602382014420497089096890958405018653171595128840374063512748946699996418246130732675952539673847335316980094231202335149288628598669306792478540759615363931521558774358483746305854065725932394004240453693014758644836500641918307289726216512609999945476068118850679436309271496514545142678442690307849380160934902521403870520904239590401115051267541250036303507464102076675131559206656375289994750108510965368551144495814885301462485653015905357573567284577559753888615354386014187213768855510343817292319012735062400428991200579392148810421345952306991756244926618290719766328386997435784555921376654982508703812579071639325877452266452997048870672263250213539018632328170780320988664190588849346217264659050622587639056915152200318061165458753887500112091926009786582222465479412908958484797323620555011773628981102613482779364360806398008511233368306801914984069097606212335006421125456724035398666729064005434530077230667628922352391038392564974708314636296832508643691838256378639089759710434490978258640223635002786629592413318985056190051250673118212175505465501295688696360339697063977652939684022464834795153961678354100029926744480811852421276286496881190286351226570769633327849734402534286279645704891266402672877478265923191820234454770385052638617804832693791114402779026095064943816270569982384812250833697430699620426727679290217657347171710139886481079375805112858275815156538429735568911305612881336218298372599599618252913446911110009552400668916897494742879218411286044017109000612813939765468364910212127725504269588568012175987815756169449426907254755357978267809061938957465074029494849456231339895946410845605367534204992904921365730860588162129822277944084711443295761076867183240733702322916654090189519646070012693710650274848996176320201866856542066399999737710746460272131361195722031397743923322803688357846689087699714640127300112316286982970289737375594203442895868662482923858267909754624739836446878192514677405871917211417955815848269523523648959363861592119200703521644203073594527247553837364685233193621142375422155159201813422733394376322983063824570246368947946131477869601888881720028591359595419165179175879403653195159027969063725041491904853995299956576905843945614733207586258909192283882748483259939957584701559127564900448089228469368719200439693169214087918794912837034419862057744133293379181567801790132053918201577341959205819704937470341273529296494473139351252744063896438183422898362267581721811433728763404047624306364183912624065103161088790915774779876389653826380830778018792018561769310081733106832113052763310844478319771033303524149572061371524488522024668199197299339008536348507610112301899501919522759042682831015786690939091128950930120685392455603693810408104429730895664250313885481237890269369420744876078139370260954059013110509233632526182600612693552089780443271928071840207578531820812610212843380757653622408244053438744926656946834723238991836140037123622179034879584287493818240365591497585486499267092481919227659251981139791307036743264716706179098774836321235837384304317181232627038276931092494144607133148295672258663765994680139265248527769024964480451552978092818916797313160989850784596014709308063416163990707303186192761147271889141151498143875660218239179711617986304392158163357135575612818554536021595136334768745292514615214708823460685848723430341014824422737682586712354568630481170487573218421954051314264881596400251595814847925392270712595020248105632423445599154359449419675239549343329798172623596991428564222112213337896202860097975303076261173752404242913685619266100813090102658875990571348213729654238397498981040606870053695473552864159953122169073134642045116063112801430325484615104514346019994610624769986806992061678902209705817262856306275647062307722803690256019566166448444296612427435619923511496691665263958942694843635860731155415105271999757396789910123716808386613610939378486106563125020413188687286251713438634253870079258738292420035484535353091290727387000109671334754350661544871593066836649897929142464023640050431639013581179648414852433526172740743208973007091435762092367868374728649663363434742409219625769621922204537646064711628361552324445878150562838908725768186894403737425206439972906601463976342750238976000254967982531450447354040817311957989224470659897978387569612283751093769397506377183150252470647186176459110830653439372924360164508168526471983436338234324101735038985044343582168422732279552859788794460905709964276683695542077214388510385673430098691802823737371168070937187206315402824498635940689743557464322921078393103220350935535808024095835863428400989362478700830546194672751513418645606946018709479657388492883621399535930531756031975007145114142199507297860627614524684088261712741240231466210579971319932231028118286319066392388386159710890523265498824585998187248806248746165806606346173353387342379138211893880391394056719877210964566678370052982255681262789789451067705525724365343019200043949863729634650492240951916335029840949095704800301520232711711442883284070703194168707453819745737364346360610072708815433634185743509919214027973796120497721169596329742608322704665557264017597505037578470331447498034655365297211854241454047839278741345666025739957742165711379025604055393148678669392362313732356783947513183662211095850594943685735395852771351273264438255247844065170085530138514336637492292156861152801887797756394664719635673983570778542861012714083665027934970706238534581175552818354847304351498909862878573222919265440471971172129287180529540804894385159781419177441264494897330461768260069755479178624885622591072520050304715605786029399741956569579422829800574426464801546876016349716463044241623618211517484421059841122642460277892580675067390477837141634134870360828028552953591350325838034057234631983229833316930777296421211351240813021620446637385396231868773500252947091981213054669869656548592158654832050053486815345868982954379332756579656390227745025330192624151207998672487397352304503431728662693689269083874744904271074587783365755429312459723704827434750916500311868871478118895333125003228129138205874185784163375218766717360754531028582183538332921045899505199798330739322732382953162650375628400952920193191933218666129403622157389379083274223555072084512331276521584950130478851560603170160553037870108865343044863487924278637082397321018552360781257021063602699282391475316312008428591814896709037470736109763476459632842275134874383772678790488205987381192580811375860654080124434217736523713139498703746376017576479070367069485773157440244296740747121871781191783939984092060765272348613314179122598547899272571544128037009748958167883268302848810749707000083138739767730730097433210762656328003702488492536230112663352691285868441758608539723823785378410728889450965546888098128879283429678582632767816046425694094687748162911150314595780762708194380698219547431749595601027828122120863918960202975861624256066185410517746569897523130875694261027019534167059731445542345953982187250652274938396198423887193238360583412715435397951182761395098477326462264577470251184204136995862160851293972655335761811153046307828182236254795961107760930009676852105235908585012216964215074378923646610453786276354519225449333770312839474688854665150488782180837006446293568176538566114726825073817060840999612866172441144868571093094995616086846130647670074021643126145019220655442333769982868134055227825560556212800194393799425555444896987347308729884461344398046046533556599642045862963921764047417528598627453341893397617296270160859226298192640384235540565727605492034125383445471947207884340683281699031377222170132454368370496316337870526972064177607121542912226911637629998997566626401507114571626550067768729771674398318278535903316268136786702231984483369190204517597911762965186828777552975917922439294492980822346791924933124165654037657325207572531038171570062439782373898844234714099315489144022976957348969416443742928873625122384131993007538099881275723083909507512564400169944184703670002770953687647952237233715222393481416607598106924287517092224615957757304278603647966984012362221693077528103972183612573539287828881129473424953255904366608806730554612389843743471865003838319558392848669599910213877822706602721822711117455614775401155977787036484186521260772716386857121795445506510201522868456754092443754144774957761526384707831144985415519804104282849223337666599220748878984976421700235368508105904314735497148996160318999558344450945838524198427084882136911083759690196575155346417206060656630745486278574193405784403494597614568784643206773644793788309503713941962015398622872843628006636649044606558345544432978677215916753663244650307914704339025449932747789964001115831775911899378685946597189996093382177453241234672470533261967985912222700865059587112534800250071962891331527332396792567571387722476076550336210788561366969387757689862307945252413651222862160577605689573785475328579937332419837710111049472746627073771296844417846771960951769792690881579360825268456309644379700186929263692155932252964870289386878415865866508265573413970513129019410141676908791243082381168483381655164740896144692353396924812788318047831505983958519022327986725891096305381418619608448287927762337595870539696024679899747110380049117973492637956267484324716726248031418077970812031419041998921171665346677447183476411397987863049121943791233158883342965003316431015182320419111613803422117051640079891977334026979805966585347884480120821197095340449600098300936371172758451703183641842609837614756231831437385113362216596782526148494117119263832598521201202074861649254209475857122392978766295335988124899723631407322670053328545747246480474747530727408141874467543134524720195862855996289947746937303280726375491284097693921583246699957367862868630077030274634910890298067926139100806363298958498003656758524525837211136741735643951958883579483038676162694195983046162464517093094147997005662956111725077028943961337638821132590998321507922213528066273606824588694853495586963506478687166851259687646125980110601230493287319446120340493360954260922560317373881512181317153636711071430074643049121157616447089213971890172055153934498211404727232936269387345034071732312605895696976745597208364126114579177872107004371070556291284994426110231273898913571484733407527457606171224989206302850918716641864429811382972302332722531278378498144833212399902884821810144411463524412820946789545330063483719886202597303918212510234200099029430666552393355053047043421051203526710419396076720604286343926765924697062459942979655348885053001444574420206029888803537875772132596728699156747754986947440649757326779035642145029793663378068129154454111560603580048174034999235603069660811621386547978738824015414909307608073245811623047239468147730918723328623719479917877370438417255572133861111785347282537250752705063339484822075069432070118134350744496650377955149538257439770827684796460784727343947753728417589323567509974110489313077247084680108272639875952714564709485631439081955432280767124724957269099290964834128368545390857564400740712273964794034770467139355756606192712511505038671533065775371846506165254133856598681782631673314905692422354861108678543113506049142120479696104198178412555573646283386270167464508672225379457446397976755368843046666615705067812731714335729499481625574324537179107997882217055851147528735007993397115882652981071208499659750379488812089387601181922577297964565491132033122758808713080766126675777403503133506911577565158353833186148117085326510645964896662922920925915295400878489829831988240652700173030318111758521315880722207149554427993437457524841800904816534159814519417403572376133320762631698271329206197865660607644083090487527023442750797967631773809072869314782074962710596562122501129989392871107400054504400890404087519503646245776588034454832874337048016709199917078827672005608816765481487021675693526845845987465621004169588373915669081232041276728781421635879850639978687990861709106126887129612448793336564251024655480806823252162309697756492104058103477286631256546838820387443072173945784906990256299801411940265054803553888452746000472808397043862930461148700592041016136933992017819397113908894108910946018018976983181322856916070601075956515602410914672606160091218454760536674884150977355745330753654550126859758623766549851993686675552021099970432715902455815148897355415260071095953388174475328931348879641635687119724786876892968796919411833029267976817967596271908197324832598292809643952243036569534359996803122349756518562553408417671162940506045477883501714603594207594865871242766647998899473404422274363601781650676398818826126704902849367218283171706091843339110420563779514004939462796794264834951052669800597723215416008064854043964602230440369296698380559185227900900527426886394454566927063696624677522537118756094447570656679890918940876696378229155241697605678508292886883735340002645997744279667214766386213006622214940788657639726032286164113398170524787910318613639468469132578252244240606200460991223564195723111247723291430266302777848145936955806089757689455067393189063081031244790049865354302341923279943064465671960894284722230195738019737770926903546209580980600012584809383924786893351741328110367610269350219104093915594762757955165157705544626001032092871372358750141376536042467732937879152743974597121874796265767471256479296752078764416570991401769155835147073575548308085056018185460110980515326581957009743443128654646492315323948006702409254915916242093642009410282815451566101709043138743804422982110544353324155262364952124944008551151215209418043328816980907355742402218660853499228064022173296024404878133385763990734932044815023830620938494082443488323633195477656315570215499275654303385145163730447756832895741892746813351240688954489422012607680333838512612184052235470454292105813711234121944255815968427917713395732511438944026540482979246506653495140398840613407852591329254149038118043823792017380537374679029303436178925192515623447546586437556447726906885235208008089141055737561953394891319493905722665481141278269694049465214210303664572311881216096356866256372194861241407921659768809726928511376139266327272548179148766639060784416101863003080474396202500428178311037173000295711264306104250971380994009611031956836306514098662604201660636144063241652486483944568584894134091265825705416917009667357486738822644458095279641556069657395853014150562990411984702662117340864092937273220098390135428912218852493473542588514588047072572881488580755823047583461107922018687480636195194110041516066049360573713771409430515741101815402434867718783060752511750256114449559450377779727158468116164114599387413724865563054657593321999593152177567141872802295812866935157371292995854623709914387918687008060474996235437859409709416574691997218839905868155153573919883359911056387360885530449184243873747104623664333225193857599180857614266282774262691160665915212397129792693948487818762664095511892447337935691107670236997374894393209750292462487276824386707977231451574069959118049779623771180935349007087472250659722428818788447524332096380853817737782603190210324587599724920150004688866595645624934894417584513784056706646324879951689254041075156938864285971498398933087661233011431003672774674185876117257456795819278266716481314057150973067246132630979744919018405942158618362809041733436293694620069110957191564159797409738383593203742116387917112775902777275952896910490851967133850158423587001817258305912344610352865525402156359391254088020145626434490007329250970868220742318916504865985699173742563963784745062273452443884876259372465401375986421862635030642880380437158837939392240909378784097698753624484434686797325328578084948819373436771394943100629634260271205448840909690197832797140036968558467821475591560369159634338834452406872692545896433628650150204336683299565869188697249027742694803689104305986956934625258874936267446956363733768286736115425872221220494784512989394917361134111066644871788012000786234420910355387103959195407857122537505723168538194200173972672979648996598437258116911172465874834997324040813352473674101088447470356830271628963545015541847405774939081030794190346517011613504841472941719514868938675760047496410884121045881791696561207370849812359501907065199965506560037212532130236240363163993180883465568536012833774570555468929505870804343113219043230687782491481387603344658369373390213317403716331333676477073038900920947026181461105384131837244590161067685625121556255277876402680894199520723427219965654351719411796321252184593042544978002254952997805953381423920352825154646699034171238713382230894231358257656733077097139821291958082711408705823577460839944578475577216406895768995360718919502998232242059169873657636338407878241310330730713639162403582660648353448940778535889093665698173749969347521313964797484810391457392766326946500542726130575545791014948567345576932992095189053587482070397396506259492556939884979397236950912030421735107715146922370227800536822475144488432609105592385559794116196103658724056307358485787027195025187418352882468718724192375581120232010588535663549490281392731886945496442668582154137010685666073453533281310154146567695083868559775948228899712283106081288935306354461554576405159133399196058105899435042472160747349878100569356727132472655201358559434942743295099396856469707082066432109334360612981724193876848419582162775828824313818109448058295301085028415697256537258690361981705487179042305581389346488651742520188042101132055953279526472600624564404541865652543836119204582805613508673365792195750407729058308585484246172502565175892412938264854334521000245128346809193148234563616803153881086176997195683222205178965031702102589182359991663509564707258338630184063705562023389762098184642601199792828802457281885042877594793951256875508563584267785287340672863571663554352287372827150387807868164140759994262482967742216306173148440088764278674928531181622321082694363100945881445034648821958910873076613860004964067364055640279911832281158854700981594629730531583766608461468389399329344432263672425321233917201496277742526819187210340537184446319064022754678873592005103913510285847597510708141060563767681427990872788647819562480160027480513755196476671751176730707217597160982513830486643953763241447098997458704916103612443725532697315408031262831396926753243607748133774208016326874032742813886520967779454000644885632399924650257816943640578048198385706903749535519109650918756097261179189803841373527652495248575016482627769813536598208039913312116482415205661960379989991729436504684269409553639564036274792918293008927884027180044094435591048775589920780652639267761515024629883453137242745581427027614283377042248605919743255860272189021521550481280286424153618142780431978162140757824677835678947680933837643223285682965468072206608501673151837181310523319216335120172006200121001182807752895843360246385258186673793691684629599986332771848373098485217754906908631244041402326608447846222594092225235590789255754546935208892540075236462710429598150786957549737785095305768355203945824249567301079236517680773476284448096745138955496928845697722226311048217013372329095727279581886287656360396298370837708252012477864646570980589437139919170320068781925924476534936632643800354342689605065303876875652350146194621452136666213405876884232169232105490973278820485582282636488546855017539954619169631962706287085508707693834287543143690806429295264722501019543874998336603056325198152805676560945044551733651954391181274977358972506691123503468793457183308482142050747090006528580330886649066639646353819825122164191569617658501220087151264509462572267595713183381182698338252413947607673714472315377642019233924722167467237800219467473507189109928720174801988984177587824214594545805320329443083550964949545251139946055020626684743241217053725987091958994937355041208688611747616563290581935235545435675762136797304208867452092369951836714893476369511608878355897011556576994129410067925802261484837960898510761559147738739363014174252385962591451804554964824361952508050471484473320326011592087352137979884478151526809303119110654966989665326649206794801730071295460915063230222608191026533000709886449749048008983666524790506534208673429532025068491896543589300577660522279898614374385766433010273687748389936010473966122161818332782994459847411193688072208928314511912222680399247342559829268364707170985050351567668659013319017313475979944329039282721737927107711989357504640492263005026301721881917701999784784609087932997566586703940822274422403321008917922660888708167408680378348522631221532477038150687007189290130095253023563054682935264045531272536490163763539474941373421879617400356634939841705970964811268446918101646712021270312789472676871765427910096678065391640803072792478098031346293361366877720527742007886971688037200776650992996756495158982284654318540520240883248534626954644617296473130726524041566642298618873786008384253054598451765119003020039675838891982808494471647228829341940594741911755363270653239453393023914332025146614389972723112368663858300970468146025034099868088951522664184626252986163093820703529657460882453490824362084271983732875591696280145302057613772191157125178675001535209087536432150939980172551766162266159484324227532342944670308498618866151798638984021675197951019496472054774385837142755967541093335754412922717776743617842301743577078145387558002095184170999395611555649607380713796592180772382860975808622794160950542921682775295210070305288185908574745607186051220680761090532576686834700743975522979045523680765976471018809465948374305584694136896926125896096089987502513972044352964306875209788802117192905569050909552859415630269975900329204434309446798512256413774385602736847865877434041605910018800036679347243264842726649762905590162072162962634794784918834753603367475911996169724954764002664469514183823920497400450040509932879049883434887799346243099009611001581966354708445483289796987820691377542508214552099078551418333964092901080871988270312085832172344691257796135913480340552196353953519714461544049127078496808786921526482735119824638278612188884807282237610813077910153459962953578770991820073937580230986606633798738118146854341810648224082583863863398825909982054067773588882855705023469548065393009125329355541134641666592422149179180759680720447580118140462991637048276004194008878815339992544944527095652249890059584458245434826614525524813242527790637494462990873410521236155595166426496569543375907299622971160579748824757943658012717683624397696101512955005700417949569520773648797770409368940364013021856369517856224714315681022136578969301972311910348439862634769674126146861587676598931708972490537722081750116280231564043127944076776528715241491730914063822238868061189858162575048147960006962240199211559759554565177984510183114405621921963158495999763396047711856651719346398333456722169680293349935677836648657525257391703353229859432032409624802801195921170619984799405891291457566452029441598687872940583355974409855301192944221396988750735834762540517460605978175754742887232822544777765596205413874054606130170216721792038763849520955107562006081062154079649518069850881581880497525637587973032025720842319113066736901557467649423746631780525973487377933185722197306098691316081316996106932588996806441467024372691361961034236574294374333943938530485813035751379535693503151251961459074446437646824627335725895517072745313866322873277693617250091024954083220352781286562903344550857348487276535771889875337368437972691224560860694104189017462012850759979662638129565638837109912893700880456376005896318592111564427699242172989511647882499447189068982391906006897927527593208115709100810361589471245944826959613925698284607493237584308108706004833624602443693970900877522201003098253204567956039404936058906783048927139342652686863056890365759765740368965922730365220717995086846566273791642102077787313936569566443952306738408644681082733006675471148006760185299802902976368337118765683145575837999820977120068569931972737629991282217726822456195398439988068438115875652905571975084530385907339831687547767002158430575896006411550264008777620743357607174606160913300525952379300645290556595877372509558004492809057224621935789221945614541560069397256168840523119040441957282205498188831999428923475955008919030309176838456902564540199383421628302278630256655193823865333274626944916315767930812851577589712905416372743576158678359111178762084796918636526247168285915851597713492570289379408104633937374265070726294558894781507638685916715507592723673338256408916782137359781332278311038895286360554910928826482976212169953654789225072211244052054900406286296730309274335766658122105889684488577074577104058581150677931883326667824436530871740988780118334335949985844581890241047876922754608469362240962433154670212523814874410317668616292031390656985579075895494398226553197945171215660327678580416926727408458053337748450882276327944594280648814408408577473930770329393685537713162565999355366271756415357177516145366776517772306717381418774927046888311512891145805482998300668060384352979126306211117949363293080775739785710442064644620616995629201820428695448183311289327794279002136747275952500990515444403138903924407317703714547171102375220748535520158099970023670229565573051635910475410770295248903461916470094365930232584107477254028302604794778381770176657124006542727174279731168603111153533737583469626065136073110902970861754430402735721816488058971184396452135767341937362155821257467474029496810885147677377086104006452852777567008289657092381713050145977850511766907663296712831683237586877015623696893506411723747932212431926162909113704968293246911481632778277035892869913693655877445404700172189311769702251542779486104699214103998712059757114063498933241528461681688028767818680065476432618107019508806782643747519756421533011511644420251555915738147090561862450858125896546933107947682877247871481795908026579030984853027582344726166359710783539938049367816081378616563427267367642414812669396630146729062115577231971776229083992649131861932231806450508099220340368956993231119184947757149254583797181725955563116372159687822463758642888115120951205848796881713284829844911579295939143359183885789844004585051091245826744745811451299528875112378206093462014449626808391826481321620445493481077317672797630220916261729162987704249677005093045382080822615104153277869952529756386824919674785760819688233898004790849855038203858676921557075918622983709614987400985058927750411565149597547132126241329714224170457765262790104323410619871150429233420850210753035629640113542047767450299990616540467337253833088099662385317595058522830669698675828104975635480896071575348711483958838040810691650698559623164837012814829325107030120812232514939721962493904053100657195366904452060772582410647873512364323855233462261985667097581523567188108290363724278760887944209103230244962048097668825338915966479894974996038785359933915866601388734978989074076546196484398882760552840706602670796869695835688954125591007372552447077226338135518279786649240636094336987678085641112404575108627390246962720363635178436708018211611543633922716086027597969429261665123501451159976717656525245192827157372468848293251036429500150527672210400677479161099795666457382663789179450673758590881577628476453452358540934922675928733709354960749302126861772471274250785666108538900913667049059950052864306914114114995026582925803992476125351872045580008792827995373058360770277517137688428300752716931834920869554165906611342606203395784936600664681008427091893373741396286839925087798605126228249950243190568793802202682057943950790608760274900584099443779260291034208315603958374177193807466323797581699310032341879126294452872762180045123257805025321766790078231723896741320242678140321138126154544034531570003845602509328636810606682619295025549640308319840984844167542782297512817123731240792064899279193500354665391961030325550770221378401555595517144222131924005815116097202387727617080572068769553262243556490953236661376303667765635558043240107248365266223210874569961501359752704100934230806639406652172241210038975947848120008794880643694260902097789674670259279684680507435247679076527446358855565349249516201858603077775225140998213434384864982738210510806122442140734178554140128355619241924867586075620344391383846000256144118269262272272946371783039112751605232354435551357389192092204598357450577557593064555764552488709354711578308925119467432569951123319681862160473284394222569805403492229266439489282307885623809287480417718380339957399357281101989228305492877558279480732994075575290937288974535651641949888911551554549123212887287482428013793070397399973602055135185265173039789982771377139341418552420270224592453315274031382982382308932556717620852788615503951924216704124653782264445516614730479925499615639136994940051286236558587390399665500926000767866949345758561549924623265562287862361992829459837831033259798347212823181579317000225207807802372059745323518792015452216241951572722113647579145011588480261995186595346836478267399398419407184388711813855149139074397608379831480905541659204610675187597090436753216731026064778324634567064263488315950482579270123326608655747117196422144058024480887198858155532368660210745702934250144039962449184410302527464675572793404054058676095360493090270855464427882196186381651103908133338508191298808382788761558557565123639590035012540815083487224653719283531235604060707699514255647213835883962899016915318734248691793000807861351018574908796723606723804853040883385650577092735559222745020164366022653083540869733375115927303130287337654525118211195578819346850890489375820708593361187910943010145404020575327544815910696005786512731111992066225351150595373130880952405744628282886775430197212920417881419398869704229292711145136807467002555288405408286670606270641529976398798711157957008701285142171833601560405891108054250125119823005406996681266075521136329359444015161657111086487483365191978746428248546535596300693424365433133466554463070149500145838605768464418307559230027819277081676975850961902914017256327230907811287944383098839976527162197898443344909550366161662792239317208628749505445025436112693103440963781587121598057954372028749964364202263562679165137633081177649898397922072884215470017064245676764021686032262210911901834928466892210412222439931094498961493707095035019810927238018498205993285373353555418731795253534386769007733916292605634623902249355326458442069451155029505448839903321957220056299531564515211756795787531120255985051556885675726298620211111031157990343200522861700275112560836336256111191543971027541884034366124016985175950691962274916747911200783705768309636107718496725798757776989710650245913367061435247053069226545169377840951813120758052497198053308787721057575508427396921530104927428703197148134858698653928468419474902653567906715981629458743653126426948493167395886230768773504259937932461197730578536222390209291841476310762449692919414046467383598586411624717951896205452865228806359630880907968041269270789758814181009030367892410034213890062062932859997062216383017742961142648888173608663764969601691603063024043892037747861455566977551824498150063538116940266546519693134018888797729899262014325035223133926667135771669153405379667059650665270177400667581989414737141864355175076951609604043891082057371458594720281334924978608042735789246299731753734423257328532011461128789918333228367969665089440717254847661360443688543803317065719828088909249822359180039223253809422229288494139487182618746682621785461990943874011726040212575212294102621917516494019532392035871227336110721550928614173763167009084202389174006413149211118203011786744812416889764631460626177416308839865315132951477865362935097416340424628878065794603573613183783744451498405894200373052599303388560713805177548935750828928215942776514775527717156776171092064399038891817125325692589804123896693519119508223807984175829915996041906857096398723134314994142597162650997880378698193569640628649466862234844533402620279494604369321536097369723437494968803571075100252769668400963163644463437661905479900456173298212981201424676017681928930414623297565523357973483978473086015958707946977557783993971108945959072140368956853961500967091548004066902170828624629538057025441278822768811828148485258000545049306618552491670273307929821533758149498737013496649470167702589390689670040099252238291578339737149482234691219153756281351087190799707568901792013071032402921990030289370081927251802438571499588625878055395133767951952733284339352280964587602262696517866156072027076794095540446354251195856129137925496074237927772119234461705179151787482120430765236486633556716541367300199999635311810551634747958008030795200305557838942099017020531353892489109640430894538682874291532515064618883263638722241166335025452234421659511339844909633061728642445657046897354305484181321808090755839087919200908532333130362249759609115741579631397044657192030920701730937557724580540404593845558016191108786620593505110467402773739553016722900254491423829952148126753200279090243983828170371665359979076087624303835304039585375797755235044401324732768971708848065801855983233651495790714022478607778265463528786428084606944220632465664124141478554161356039247917675861164652464035334692228179502925738143514522933745731097270721594742894648533485011402136225898863263088900789795090215703444740614353795281807953599959028184377696349358596279787857545519952508868600415364296092339806825590940160491644058673018057491391626931036085006082725117928083044258369799277172293289198037836851532258110165200036296299342123895552084824608938692524344020667743117679110899816058765232713083042867898247796286212033359303855664978074855091280685356066720384398480473607991080072318909535296049901163688461462092196293868623319342446093914156779395719510885569195230881063395352176214555344160934668877126564043967626508080545958975494245008019992705364970367786258473098025125387998180658195595617591791341267798565699619232550993400893587992738113924720274886064070389281765853270613006854820639181145347766630509297237786038531862278882969038657245240361186670207610004689430612349700928647888474474157113611798888839208078665081368040078057067382390042022490726494700891501757516746056313586289692120802503328112040287015607386203143369502430417698070510620466157164090539196273786037304417395304347095617303222499441564325256138852729390580534640752351067919621426513651621167658994620305217564103966273776100752999645280997751986640488040635771753443596320599647034183327697139981769738109427225221307515658581547915442104006592300848534892018873942264625339121832426703395918444033271433043626929823818582088416260360012128740211706943538336600710085277896798150210567826545569213707782163334165801054363509140855441003994680369190711434653607247010324912418622253611182307182337367395757517047452190538992720127412464944989263206109130473249464518532509993744305868434520232068535039608831235910510696377313314478872652535907161864821636223006711449379033880681226794358990810626090129125705056062301414832088117298839733189484807022099963441792313024964359552489818040850715598457119928728429770192996981607810271585972933694337593248376868814693093171267497582695307529143752971005168869669070493689380256037786582283360998549746263499506979319147050993891139231473199780971931494616064685246367785892293010778512297203913877725511793165755877599836779174533372172344845975130203032276569231313744051207828701051656301282153407894307686854616648905579447466872594293514333091320750492840388858979895477404042512125514759749380318814573665198172016079832769551427592411218508981184155315192456550827185691611607106611292915425121711648679440549521837618247173662394258798743019674104536546155469722466218086219501561579935890840190168650994340084206916741508597805354420871733741451066369930971474961719581359233729887789026985803813557409909802895517264625716555811275810187143685823449216094350856615997206023088169324277305587896065659855741588302738755962230605043956801893786335208640375903768932174985508095066229872331270742113325623714029874300851437714122010681480503798518872426957031841399175454118775027460137675211035500197897553278582099118601018169600818805050733202913725286174843100055290331359731022805178656526681679478134556048510838413455163538789086233962801333222320321614088087428966881992078429037812542780135205165078602933755646876070316172649251961473745930566203076660744174473998126826989546836367346439298863463656724786994310103399689492479450413872669729272872756757155240075554450752257733476342908506842027554205991091954702074308221950877344634983689481926528356753815788177146177941937482113546384852870411469101859737227724422377073319696534517057663563670804249132289915676883424595545862750173083785830750908780041323928140239797131556929012737130519775688884434723259196312910352761612250430206279798822696660423585549823166538215947172765852393481203526834243199765056957511481015966068209830947884634038653150527228166276140081900562645617253285466316831061684102983033632790652494006653008847158284366380952599677597777706669387430211124484654623578470930617116549441638284712952778782108631476742972719738955317070718026804189290601680904382734037690044223876603320245518900327328697858886514305244281134642994737368803382634090000873409274996525027560053813032821852758288783038893616378324165056738486632578002516276717676679358435734230566960592463064713042495396201367101821879704768129259722601311623142850949555479891067499232136185754796165213900519509982614685070517494938666057132096254652845772698225939414061235646846842966881675134030561161817590149659292842959455703923017097441943996431904440252867800076904496884179930996396726600549622324728831889264593470814417767111609130381557251417969376166149323106989498899348526565825613223009649424041753028514488684821898926723664947434437382996212021552406574339207963932603503905041730413297744050946507836485448296486026632525067667204699411235891272130115933856228120447077113304662091872599352407811701397504144809011062097352573198552970517754789886648949293185668374639482285917131443531398426088664257797834458895706251963946489104368086024173059710463535279901898376883596485335176735097018632355297212400576495417155978813485041587404843767329464027003885113289118379148565392565433665754422227127365887988081521029562679677811620202315335916508798433752107030846744678561402808379077338621487080431456233851802027537127116889253476914206531840808238874645913983609861781296139966162779110764679572326847391384194772329908460910358147358590056287875691131400951943812985709050027050678239865590492600392002501586593676097601131941010444027154219601104758778126692220726250636978105427943330924546389529295363532749787944205888783651455225347052307197484092244432544898115786868905093340993076667667618044360792300050026766926365639508930189327597956242696268160444701994499052228028136921721483813639314539074014006770250632229005529183352105283200138425769712502316177301907467826568460795529940554510137024225917660135444819838896274580529942248004118055656936487997232135733517847121986869052729260561882861668254874136433830588774871543818342632858313308864535835533312548039039728901747023960135651235012446585178034979312081303558950298212648766887090946086118706346832467024238231098070957896955654274235634929193627566448748381933398275574103867769570138585379182628310588577330414480637176971019503955586510881555620906933507874516629183962607034522361465112539439331216059137013575999074491010763804969612098713005719480051917982396361443569717920868776696216294214263018638447909302295683785190290760321050712485851872580428121210288547722700688285152441255509819684925450306950493267820117221087769934085700330221922525763850240787007882164458290440604871235768259417189923757777032605848188155155815649986970984491543190778024433149989634642078718702213682796625399741674298571859559242661944105677054654508416419161963045261753464564943703779230895355195426523722074990879439260316379075988046740662995271543130655556062603014444899577918505529619276601354264994668379789865102636281344810299990702447015425717631440793133305611484565213064334392172674815439349031382364842180364366981554811152977691216792702397610847089489557863497760992254574257555071975115694144656338898849591415392882743906618264035619251939692671410036085423193111773984475712098189958987658068426059357762156812347881228165813641751911265872866074250096820192495207349894032752959350140141307451521640178990168585401425367865315188715312276198931385446207694431224190727118278430371770490236635206699180505339091764406842754661866088242306792731421756348522777573234663996435082545356674028775901636601688710080838012857355661420576329536562808939844852173363995805279006672154385036044496378497637420959049093931792283222450102392544851578134237178870953496068314097509985233671544371566223372154018567594241200599276747491729432299037950805482087858816660028901892513679364736486789674245009571486125889188787097609293549719437448935237693907904943157530684968817359709850678480854822389797441692830868580920048077547984921416947514259629246089709878101652811833706597203975644954807220067311831147595679450653865565575887451518399486280101283143557527488480496314496519520073013651531163708123243244144788088769792954056190577096947607661601737464771330254648054433997359975576341153015767462143627833883937894991328826516734017571389247096891584548559516648832048587640348972364583031046092417954046728230354193487197645811838332325853272137627593020962339574423248988264207630650137571422289521835807637314117330522194468528996822576064803101532955235181141972879308504733384468323889601427385528438277967807446439857143848223989353405665617486467821709800223697185854093715852110859974182374990132636154937199854113185815109418317833647903317536057145182230178509115205325257921334731005583864506003711067976160263455528462279241245034338793725145074862091652160429533383584151909163783017531216829471369136140991868984803057469281300543432309334211231726972563778085454318446598251415728047677942954320050146805874239775713422125632183087426323327094120502426511611061958147699575969803874547657410390330505765553460263879732124804030558911517296240468166901215560890083666626283421484398063332418409635526707534464912730717421309012094676244951877294567340766916705838880205281020280017217761121860475179269372307495708397020941411640993213268467609306826939301531073319034619731647106642537743245853319963162724385799942300096749662832745035231730042528060450928996236080582689525410294540538632815602415275654069011789395647585775052695121168458472454511789459261568214082998464390148201083475759050248284619686284965508507085988315439171504217396018188154500115816846430955499648748102847388721194128684192724643432640266611523567172164173363427469157294608754714891921139088817732309087997265024317823965205368733131096373352912603093688337641860430818160188239175678076782447278712257339232968373759076250630887255421703252153966035771109101291831154582543488208271486540046365128193483922546230085888586061872206924531075886439647784923354418253752249086093278881912906344837755068192605206724843511151313823559246652703520634869842346778260547379346462333349285268746116772783876076187567985736005700737875751194586381787418395455587818966698761331214994173652073054220329216669002209077192426193327633535676893956637611195669218568170386191874612656981219280637696066465140153254859478605132009087625872920418287344212203418673832846944315956890629523639782405726982667589738520817772247455194607718215764999919818773593967016281177428930843818876229062692735899358254906146114379152850017955147271376199004757436621744844394691186497388059550621068968156368151253821749167040929830357129561308445230195059225450584675732737909941000832748156159483136092881128639018538759934403178436723794790597562489452198300265168924510255932518393367090506632348027840883122353424875412185705701759232121683279545190089687851429247053626418984939972841383317464769608696114190200972004765898658676683122105007834209316255494907627480083607846633971842568725335359137242004397672370132525917679933272168847998565594931294250804418056492617363200560500369785780560306083741720160003375296275826548382696146797607072915877277825079419467515143407381686485620613381190700948170323009505432264929397893277966533429263102327047531157224983621121772173784068738132299904816476672192451640777382181142612543520633737216192368453971272488386601987965286500687219882435875959462139981956791255094722609175165713317415781799160440544471370065458841930195852417722123512561794721077795953992205266418963525747275093093487859991501690606050402617502119905277050015473621694581600681205470330203278515813026688309787158860739290556815247746234280186767327141864715156787658198209651933546664521761064129315778548894163243681259356947656041364508755554387118371604246338550952853989302139959602252322681049808479399696462612256381654498197711412341110521007163102130697162895515841449237833660572390818846852298674339625870268124318811578594109552499327420122498770897801481584620308053077577508643659743280385491470569004813076738377882540730367801336247905742032767193421317034160310612008347561000472559480984786151538450053712231546402929450334132161513521152595764993747644839330454765511195357831789343525850241571198189016253337846439086118128443038389103770884542554100948067401928360478953505004710736450567797263725759034170888677338259180142878119903570442081916922584402932972877076075006231323146285661409794913726906040174999897293407754721244727018232756919344699631335993825126738601636561115724813967676623731462321638944388213668693709977054003333560064258168911455942309698992265741635467002834937280987729701545814567076551004806864531083405965670646692708749758062745148455957713686225002461575354106643578767733483428164947666704761331911528432513390640667293307356681859403727538002245571476369064842713986583390032301174160399530212082788138668081606656889873292034812440867125441191323145366602787070460138846836707683048088110996044397251194084403605887347161417023523168150299794773925803986346257061490760073444571922705036511063212992008378062847801477465870310844533081696965313292610686915011882543564195829203870478085353110682874821177823830336432183337774578733511866632482997703988062047093349553418747252375230848453832884667020363339168702224974496693187451179184869503215112042015723184554096545538063399887840989530298952644207185809765164052036051089928354077818114693103614895306772257261979219425269254090681088068588507672045644257850310402359377296529394370337577802152681881127692329718011853815453309352023040518252167345961298922018221929916306861066409460025114906748680235779484775096114362384447783293863719646757065283336029164659906424170376516829400538414044562648691268741405749105999108078172504668877110558736034506554855977404555084674831807286844858744685319652923523943976710041799572741772335466282488098650460615626074377289290023895499984938317718164508437755091396474452527284428063154860731310968351526843093668470927218527507772757700074425133683600984696644028097754304984419202266058068440665270843466522462904475348541351866949741139299011478586963319815756528463911732423824105175980212031878273633505376052939310234211142867801738118452662960253016483921674525860772994152062341421437729270802069654338636824399872239375285274031754360845041949662884991762720238272312632130249216867230193152456026929716191100938058442466698046321774012005183379211012915163491644432975045399465295597900185508238326911950802342470904026452299945629573477718543635879873099752043523160481870229364962131992338204691872355319689347305578892017673465381949170124340138390603338436447222167264335891917420763620950092289983125833691134492642292036574347680237855645446537427723973402685887039475633236348164886772956683540396907208276215280105224696634371571457141431960561620580378158676900991550932547938683102710591620827914441836285814986883066699653183314731841899086615365504903538509616104800844994005960083125587589862154679141603453779451685979510879412075840645728812001725908697410324997167066371872966246672327825363431058965899491071093623990276275201302751193920116370296056886979238992091090412850687352498434251179628908479980612146626096299772335066048071338350453130021153932618900333064567411444433913091704361798039960306864507877629228464865860697002661800283605564732536662962869808840431012801988685759959786591560339805735392658744905876674091333997336933664835216707240873491013326431276803701671384530582898105612765919723431174250659035391054536683786235758790974250235637604376220745676809556480386989010075623490782698120052440736505628975186495259169983925630984891719902099690233847950223344931234555260100820796225610965821907111043442392731347218587015407742541549691890934405512723678322829021593474662589707191246447366589436792076207787656588049513576293634913671394425348865836994992528251429056064775920054544380765776110100218453417968475181428652157091484357721726128075546123180181970705063565046926409953340718484188205911490829611619555929763229983637976336335631628390140570844749036755256088672879323566737761935829395140704268932300218510607297691705238623674473525773181052199230256499338931058918563675751093944874002282515220850812639630541054594723219441957078405323308781711868546014586664749640721534437659261590960786230624413954949221747885239274364309057751102967085834325907422392151470369274035840047671523417880373508344954685343967774265552590850183063152109296163992389111513225235500517339097556548524148972418064972520672544045025087068289763202956936499377985537287737106842165918884076527978434900268715813027474403231443037212361681457409614661477162162900951921996120473809315671200685423759301836323541794802113560435959374765151270006487205654241534517408651520877170963559039943657787510764312332888937952582195799198344057584139918140169790998628516475076097763713641382421607107759141991231752658588222859409945346986210686333411770799700153869430875828712202062858983258973668859353005229747858999840455389953799370081293197818512114732449828992632165976606584847207735909087122180527134369883774605883582303844085347110626298090507353347008676609472192853062923723829402704065020723810132002152978797503939404286263195734426338670512350038182620720583405972973262888923426432750551579914248045644811183148991497795249945448358289542426062249248881633587900568732464896755403623062885875139647742009178015976753819421703411943340627210348588863558659377015641336355500121344510934088087770836825005787298643475470411318608261219106943893187051075201136743448794288386147286991244926505319978979723533118609921622462976038428707304167865703147709220343987607737737095748658803003502448511569377188080388943720403609524658765057717810042839932823085193326898129572825636184234952155006912521731687542255981511170559107432928024331645947325318615012288210102314931480277632526567231304912081488396119314620716013315789439863452767648438431517132095182636302643833051174781362074149665351637033192596943182881589017799602884971571553715772411811503363993393347679516190522946264056937445270141384330350828550167151473847893775226449785597945625271634813665451495019467592383105213516090579955935075001951410008674250582977687885199628576946641485699127279131737563047656076298342261070125275729756406903574293594310137140004481941211325477865327540207146432802007739391785537173567880974470902069228951672068515473460176419133762104198122111460860996391734231852898237039599275144116492719674394713856508666251429948443615902393827913876777106986839176757919753537910842308162434587889345585564015508589293621433984001711974567294430430424193561670080028192446034816361238212649755530908567747252921223037295556617491665108294016173814377614718780125631382659245270831252142353518637267224784157124309015256559165348865136983658036974131986245455307085010136189170720083842911716928307738176667530759943250025541578768654378091454220935882917149537210774895822716799182648755052088490819871920941517972211200871939145252622930760200130485341936811682820262523203394951672265715174244285939293068760385147912159550793184011604729416174417062785687142732414195967678257237853591216353398004115725891059430797388446637298780528081005372187932246796396295037501343327705637576693294290582976066646921785972503338732475516481989834261834285765325503225561638070108874513853043870469566215819316919744174633179431889535418977009862180089564956181778437969671542121628730095819176422024948635366503832219088516638810345709233245487142841048651078827872234920137586520639938989712304226123593914443715738425680816390023286422269270126321710867689779725579741349964807645488420570380456066468471067897159591635365929416283543125323482208816911474231762186805162641528140405580495975017553490507469584467536535369136932689767675788980794163276667716103467496051831432010738971401421580326406543496782304923945789123488416661634166099659818764381039217472836338751701184186641612143064752007332544496863755146079204133214160838374673706807715667709473057327987634261009077252179336691184935383524347162383170899625770470123972726288219112340081773808598751763699976057373479083910913450819507940883126043937386454231739769123711881285264194551935480258554471410939748823990374888574062478608258052088150540665627903784520084196767912441731460795141420805405265390446418311530211689954149423969234625161702570121732414897021246475906965696462983598133940046922686348864760071696874759490625736885758052769269804038602305542100845537131905939313197878927204827024927478401733906637915058243387108939854933446397763198239573959320027110439252583222493133936276754598599745621587993364801825256399782572017981241135774909959471212493219594093071004322044721504909631908974289007157173725164905953524146689929383382467546492382204811853251025565446946830589037657101322475538140457335626455476010821469232759912860984415708829074213155221098851225264687010137921800423452590464000570158504845836452587483734822743667926958366253634799534526811274062973949670274483966046138821667919800381151865306094839254912202444182825692320519161117618380153803362894092819708070551586270523401497582963894669630738330756924630474900081179787578640178519838539397667814176013888620123048168636913628761299420119039774467878865365369375238452588867041369706465356540059097286504558396823170109369155004484519023255592547219489136253843146083502439381073020981150270395905517567128672295095788945116254858389362634307851699998042744278537485777909118262627309196649737919677615306171771533749862433755726864225994207540969321652390098748780695379526437011061986624122578312655863230364357809522690595336247391009065927224853274802623079172691912887365678240543544458221576009689975928925003864403136720230979079516520047262645559367712394359564289689346624429709171385306344431149462609272129013765071802777708780692209542756584671429569728314755076272638662794689691984626650269009712293848660351692239451996497140897684213255112229000033891327183421601481774743324871122364716500318305598170526303561766457879161052183774523697639905300033504232621171952078374363374473704035617830366316062544094738003307946989884613629936678752081074197990450968745348908132701204733985915547906663602794810971942153198478692712600601442049312768305514870477481949251073729146670469737254386312492545346916991991967041653044579684955629614184511260227508214043130944482992999970122042705481216079269676896186764795101906065068431710009885147489563414203392972764790021632171514272241243527792154848362093863454220862875267076786790641111116254739736594919508716672650867135212668282171511533508467181421175304655489077668929523845669951532384143636975844765182103506636067505871051569518784589650458703705649674683153996232273135460339257135041088751824225774000099891765796229032526552020638678570647922418883563193605738394166952341002724992744372790448129192399239060157707817774275289076626256602889739660861676024465426303261780189823053832065081259181806909498644432309998766741932165104262290866780726000920876721703817826294790004818015201490428973864018914758177333506972953592740073609460250602074382380107973972951719925304911448281898259933371019316474665999812027189512287852395814072058778520812639613617444060374744039900936257320919771151704078611883069662645219082204819589722538363223618415203705570579058015383301178664590143760958137854263980617414645372913868588509123274984705801821485064978095704403244171709138483146643120126701510541553825009191745093236810206785373346098231191986538372783493981247570860257773091753894131215530569256805573312629348651890923826732663102045551664334258107326883805288957317142834889382655032364184716440432509031002292495504676501232315642262950457019142928882112202593932413603160490266856498680302858727988656154554941031962616647191279224492983063781524496148322523795448664350746001274709569813715974641068937383327391252251813181681223047264050055722674534363347496711065261674530542628012425514308056849039704019910164606517895899244240820793407562387289778486919220468598255858011838949158523826043935385945470203840947544839793492927141081002730979385598280039312089850463183476966050746962336229740673850288438948666838197193519453441180602215003845228685571087286296424792833786779794798851240336362563388502892597740425048631515507018629515226096011101033029942354487198565043169318078792889817065971703510263870827041046654755370533338353371761939872273052195992205978522522273267900341968591361182321270861827207988805127729058236907779350439634529729389959049767938410173356345598410397553562922963011132025246628418911062374980923219886523867127836171216269122978796110184960073337022355948618023040115285635853927814855426754272398552892829113360441951573549511041510808137401594398659966623670284129430875106082038158535290983477077892100168295049987803090506350865160541362264787058338587661169274136218387199803658548652432482013497956323520851575076450352407218451834724853962845210903755475190338315592635729527154510857036476523270980738656312664666371337916932271646275995837994149214497799097177590248298403778890024924407086958375191057759612362590647423888765832309244329024850999702570093897932668768934750966817566933396792193608222448968899568937176732077895015952008066210461931823680615146706515507253918366852650403318930472111446492742430588309537153691083950941489825387647790890335269174750165347886197608597219927071278648851716317919418644558052433800066325100477985284122898730706088771124297187834232369819583823189752927238629293086051955600278972372581406607945080023221451667925390333875639548088971980813053579663978095687236293111871364709325719589661123658651235291002014972568942053463680797529500496831375038971354352891389134604503361421032392646990514324188742015898579301357330089500401602627730827233208673161587930095232553140222893131881583049734312588888844437229510099378326515770884808122629066818095810375729753285262279549189705473587961518335813987995476839295761909108862829758044895219814887157662273950258937008129514211839052451935544510918123710976219344777111457776306319908716601586627337275886824620504839215528611617008703831503401857136298864399697432100738183525670423909630467788619937205904567405329457193519955622867774431109885954876118461985555531436395617724082475696749307615418640877163531462101101403456207676731064988327556219085928771002213273024089877943154301216709218690043361099914868199153287023129541265113554484734106992807571334665813066066314872484003113268606718189209764972845624880514701466012085703409073538405901269575442926671690121101132574021208250738886273237953279468917110293940264388382694020445857271517534408257306026614208109186334494410619303564039616038634337906857521854814120932435161357041856028317523300364107865540792093166569758559155534311552411992735359375315259492808969369517984753198265428436759082261109449727785378840289165276822908978302172701982089133085056120110645272491241848482342787663927355736300067072009595502406275958530529006796176700115517101892974651722419934874964817890955564971930123553304694596522248387057322822564778940938315272051432637499321936601751716346751277111228947118039641060084240922956132141395528777613024237713353028622011223797679489075807076097940419383767772719598659633746177561688720752133001524755380735853188106234745040057433258831398321342727592151096970583140093325281053789556730390088870328511298155002836097579156545962558052965662158449272079539724307243923154168642211828278161570194288022796660943930416313565428163310102547994207123512139057927186529306412775421390199426212507206419283502364685410274876713630142934909209476968317788219490323398273108441311299870051841574888864581138259922494328820397233767837839104691632036519848868120670725008180003171400730095509473952185038299685145683120383134391186469496250800460218670863679342859393786445583869545506903742346032440462178370106452453705886480029130320264392884065761518309212983460490663694600143933995684836383895538351230292413116257723933061757982019694127409721281068523944994948944052434824632251539081737912734290067633748615028516780809671728533356004134744062714510444100559283842777570342477153282085952105470082939356768290268646725092448275540522196204318405875298026096735098220657102649132912464622755948210709563143683128622529801960549762999738031176200688831776914824740273051156845449020807201196053129855533212344779516791381624197999980484602936011154394507035222866895336725629871731150032539848746152103781168953033573965136680327503060638458635088136847663346327214752866127371456420686588721609852327249185531086608812677544114616739839759836494631421881057527168674383405993558116840719701954797871826565782683938873765707138097150098472295082768539678254227403947407562465742140722385903377046212768317846311218700249367226885023350452420845825554425175178235930254366178432980383821268186569968028798454122534334077956017705225161505124470981794048844185518731413526251366339273832453475707642859681539026727422093579065670842656418180104504343826306858674000805179095392507020849888241833096978446616404395946804724801681118714226863297123102395164833342397795360259573145712684742467325377907165463951417455774594362422097002731965169228343974685776608583838233347264048967034209373431921534843616269082578503385071342680794374770416818676264865505826427971429470670105804904216244428642976235993945401955644833162326239299919433231470793160495469570540400398085239371839241423827921674734741864123504537416296755761223884413264136487146547359471326455335501006727156625297046258670934426412514016030024329385359114890119527061299159495923635180646639297805086716436482129029688632756566949539296041560952321240769729601388164850445625347947043096484524266401346340141312935925191283166599338632083503001554873026426910050427888380752414535483410271468027557051391179753862872860887362602486051252185017053463174059490410519986147052311377611637706453377492092881043506865614919136755086721443799439063089434294064698311230357672001889798451704824553537845314627482764685760002134509653272875632161362573801022990873919205126042362243744236270889398126648924955523998078399699638687281380175792403949397255757851149175482856700993089918438988175415637120754124306092131547556863491049532595699451016224283732818730278823195796616812496558443639243823467019240537239917132327717522904858498401035745571700498816476856842272031922076002686929319897514912204043213583840829070365875365261143507119961662383346902042701510208321605518921891624848168810201386461830317521696704154898898928466693483484161478258256167725662954711913122100223810735050524613931642502614679265013891228635755287371266851336551234999247036257585685602853921415770946455428840598922618913921610520123094499872820835138873618366535926468146202899971075183520666151885170572275356443558944373259075153915299154547715165839750112957166662045557549639238864374041735354427776163232129533926689538636844327063932457133027832968674314064166443222001455446889796561308234221236920028114614878488135087268852839389337729822756130103616028917694904204818127809673786701861649903655505530294318902323530794456326155989879634749041189481772120547813963598283073339745351757708313036793459548102781906966791716087271096819457602543014006893641360716067855088134862822413086917896113814831832341206152636620467401323354036543561963623667972608638697938276043158362399502607268018499112291366990909427335884629064256501046754603648423369625483726504697444175469398484795511076855146224676277936278922504233375881518367883593855861589031510129478160335374368837901921255031074127692527613466651323396457634701131593606589597814691368907214762336626213236688342307144846974767661119930666319978500153716536215914791812166897315550225710884819253339885215426747238669289582530283689435459979864571814391361426609739223722568691681035228277104587650823258120584563955195860234568743923746413364049589008921957384094327145004796363403273668975308762285964149104053510130515947661802973445202405916830129102497424722921843918519893697001023701441194655440608612035911158044504620027086673102457705149409791549222303178537293414831256532004600595356106318766003398581585063325661802047121575972801512363141332039062530800245617437743460439103962792219161489723707632149161330496053978431668197988255613364918266605829002310649267396743326909521597281127313444343898665521375553699798554637747405230458642886913089062583569764922350252227420270495043766612988150185907732523159228956595768519726909299919115711186681873701305462120701311102391122326810327835791661695042678062563133098897028285523783502848051620180334090264850375552698793416552466584656561581499094149495188370312464654048738338945787094196227863000600393601350916604486069206515990386571261810647431038292332245903883720334672148009999325702942798873223803590153728804413042427409396540297688586020934529159926993313998084387944095325857088956994064173432623459600845439496949515071950770928536848701791989478312279820119799465524816004393451122141826265797184583234123501156286553877222241227911458714378914599578277428026730797531412416609362866347491120826513881083346306526810274472062503306704853825163390464429436452039284882676293043242240277102034808940674665244926564231881220798203742219807316677480572573313225577523542735477703658887423783247158119820119457211609649947693707714629741100508400236824518007466989887324923701042787355702479384297788359137572863374583079801683114631180138620730200949233089088588179843854949425807415699120666221047892946649249125932864825599004459985019365983439880865695161670572015752754487441504225264111637133603349264762570134439422637941487133106860929396841315871715401327886866224606227697656601358656149023075344064888235284442289374565976646347619166602647560370739263030441498528265840905052273032056596356606088741216737410017808347421931931160261018814228060178509257606600135754778341774675706885821671588246712376775320253538332777362613195514115508252397542605014080025766457171805792337794649791878692521493304846541060289975203708370680819323078558597541399131029208589151353741758319292116922532172807581229148544983691515160903492765801458668640257701145757182658288435787102388215771317106907624177783844955866851575789320778423689003889242794732106058792013409655090932543653336243190170851868512890880805467007731569566788541674668748085014268155920612462697679013049341054417714284701345284366942594771486429441762595104746470815839798737397942730460770637605498036760837957382827660495543476409747993996955796576308763400655939065515040018433475790731603252776792492158141941120587460229437782722093669536243645802810598752152203844524685394626589608100023532979258721924204547270432611190688151980434030022430120431204588810327317504968562551203515131375127029430959097771420749590556949268236166153209056056472951803573305452368595547975302543558523570724440167830488445664997858381236423897008651394765108829037677355838921567160539709937382336923364665384731430107890090685459968819175108980609813972761480126008449072788398046133814842018404191224912763164578584441995004109307169221797271334459231862029579213402423635171376904367771346293295910711765144572029347794708980094710705644497205945469231898939560255504213788008003318550320799231463076658885561374484455352565051891590542604669733778636754597172416926594891359992510481411335521269871272249332340948848371913328420357481900980431800542300804704818277518174198847191809169952784664591769295911378617647758722177645048337455964900530139778862219090767723780049354821103818451983396100359406171132190387168355510125113045714710389966454332417399499078405602239728041171185395025842267764783164329604529992456972719278917266778234359860195956264624169655298102504239127239565195101489352113080756860650275102486873201319541647092422594835207699121476461437587097863294975723280716653584667899330648025969870924168302789295581552982673640619648581262948725951785682729403136590436347536447696094636932859629571564515354831668787975180227099190674324650305588418217266782251375163066649193116330850118625197446144819890498306205413814554566216069792369938031057727279783322571025330004001058693701658117152782037289532653127210724258121528442437041677353797469094382902873129016770152870636997988239150552423677008546865473285882751716879181959553146437294822288634328076513873451585164092698687950722851558896501267367577251459857650625011714224967609241401548649772950106188918188132065912990238203629251365657612042823885879053738874627510980542700493291290175452403474378464367868200631928938556111536577068294316445443600203527273831382607582758795617709574104709196041466401839333804166664886668612432872665168148611023105779857225169202019872128271772982898928911695627731655537973806774470867160528241575828306486438882133728794074781941492259829673283087207642113316032050262427434301232069011997569133550048969324533014004211310911374323933556328071121997754352330351946387424638201265279591704257003845065146323104722625570709692746310641305597323709143195846838321703373561050788217736332705046294705998974311219630280024462659226774554176661885746536232444008065880920648779826215157053645014536876717285207332182199338680502332454624699195203963087229830573881863574237915178764458465245146030165325132872548609321039216012042150249795685562799465921196741513609540624521215368251361774756345327637295751153160640171350707187541453142364194005630086865905100164513659696488135463904570831439903276486747768206032156003786676618811228164029595277992812030851737260732236671954509991672911605587597103153391835502160112577207160778434117926962592208220484029733110385087892539682192352706678932846659870902191874396363403607465642996245344595878342062573361966495103687895197492197340622822287977037578424219694049476673947716307810772765338494073780742864769660713298942578531483201417140839760658453341043562325688527163612130580570500607205813122668957999277728853216248327481457571300355675020456835881658415894808712272643352795361237771556051670201502876493885201154623247933269904093052693228212443113816664944645216345735387557231271046334632467452941752485115416962877938057248960792794549789532753497986296746779305175322774586442520455646972136295806104682055254570479300897706722505372542448166581813871482774174774221926109408181220882510567458956331833173529112697438601307501918812805938844129999560372921298422223238898780733490591861110871822933710966579679286033007388853555609077161895974259746927432961022045243921574602228304558390704019582916126493184722957068444065713236265126634601765416933560222914855512978409895838910547806956523298833567967422710736804826914722799802983929664773438893719672248393060291147924638515178194885528071420606687583482356247482089715429172708930842438402534071414201379859874993552960203334529239806743422858876369144401144922212241835776132393748612286729537637683284356091441125237554672817443203663456063079331450221031319308393886892727211457331189746750704946671577199173660982180905659165349662612526938185715030202751817038393819581115768168880101134312647977238056516416748949977025775718265525532205016669892142950340884747492609570551718765680014577920991060984826196376789229308151270264815575093119343504849015628370631078325709429170621198758692548416961929193706443929189949627262912734057000965943028032860084484412143994300214603773900682673336462136828794499894588567279893603568748264271391374511652973233372466796473891341964234936513024271469148635657082329178186686817582165783253069806797210063075884499048364332175421467915689501415062640709743869934521467231332180852140280283389193390791488205704535300202901502810620024060920594101329848871228770783608675883850225395270122748517518325137659375358578269209514289755557372900318113103290888999436719221101431389402322249787506176589643941511685265416682767688414859414956846746420036604005980121835270283432540288403273108955937846735356754787616803825410589218098704417528836222441140687754231387554925568094449187563594868700345140644532376496195398151430337966456974949177609968467458002586765254957156672908695898207550424651634986086238312094765487004292545700076491883468688985430813977720626283983241827675625317887976583638137477152425067422638356120532357866211290889095705192386805712618932695553356448766333256625118302754677802230657583931409977778617983106042384516761413280477880506598062506485194942137657499140722788078111556080881405075712728833033409684902277903584010756631530106224990676454199853006394935580289445446948080433889075719688980861377778938844975859334559734854484050846582532802238032780374605621547153068554062120590908471017943385277621147419856245097566746110550945570217037167223816782055049198180439321681470027748450386683934504954848199625680383227902100497128900180192424989196294486543775649885090356537318686506736446499044356653475999036756373125650878910236909722011600949805974131230983937445558936189553494513234736978201026765879045323408514959845883135183765191254254955968856569242033483208644786646602522370736013617882213956695764998653720029977199947234878742136452670482087572939760477832022287095945571760607566531311721554387729564037368501364215815329892743083805233632344559822549994158775498766107950039976775285915146592147931496777227774895449424232047162926066697643459772476606000362885571013358293585312913440326506312668499679763612048117294469589559259764524496757679332371329954062854047261913002624205987465487481550300043099942700291196019222603179356208240483847143338536952130556729325827286802321812632171822796981933651809907325384651788241251179009871993208631310651741264984101725391359057346284351237995046893697256111647813292871723184351058511319454490685980924223547430908286534075342912809630710537023257283163769290636562704935105453665259221282120338786864679127876716751143481059492406434256619076492216579764176754390843820011307880021148116487055469639851383218328185280258422150162156115085977807444346057783966242502042211341386481413205423340190511122348542450068037287649172844728426701827490294996025762016466325809908215705127715127839303813507527797527314520674797707157132952293782013219612006861516426614058413285226034914652739974984481437046460276310766780583969093445113255875063280384767924945935156401115340142591103593256369359443196687961533603839764153489426762729756629495798077023266304805586806476911079966082890476528481216715473278588609231320209121699916524589215861110864139919444751201890102544547089180387281814650270974261688194659750938696547360222400884591309953839456864541249294476896420573942626041063006907119676679076476682684357101552958027555716833507152401990670469248609419626026220001682286465701419242340663151219990241360184645378517298241754946538437194406046282948499010254007019946788296303248010008031623825264042257040719317248274697546322886447077492008201173501992054616320983003835925572437858292674369609867811041642647191923179420680358874248770474580954609412373861222495669395760088256951297656866357361876689804140490246477639072264732431700994025531260831762359026175532006405662453476937511953973368892483132203028098712832074717196402701950081152808998148257808151129292424056504404480429756474730804265275290600339377172158968038153344438573750053209949407857897533832518896335756251487815794689801259424662540197709513348295321963330611641926772098766013685927331290648055361951820781812178269346342390352169632689468843954375770020016859639935700410596760337077113139396050296651374348222406198577688363925195423034531503726003953738397276998737265149750400366877789941337339288433475851449359354955835301249467650811234727008309622050494823495929211883369283082641629973528254135519629949509172161718988816918616358905783098890189060288726016125054482381268248382415137010517236286062918889408667297189736501677173509841694839517884648494642167727810690462990951937689817279222628209748838478902261709508433416583567546986421728917083528200958423604426447049639426847287584638705910798691186881894082966574326062615979839290407661575454280066272706522052258949568309014753818621847965329631648293273324714686152183191152452064568100655664480633948484170027110647299543828811298745779406504737467142869944099103804162549021963336575910942894661927428938770393348533937207429753982940342341325507128188581320646353984862267896495329858346824936592850479802858907174647988535152875441841637952851167475067939191859614214451694982765815471944195571138973449114434710038910534685826163598515933572533443954298137853725072144771562768983605445139288332456632309358353472457919852495470969827811121300113108054670934146823420419631138920058452850641420462695510963532773941955958001337195576693351616262950003123875272458496165142382173090117221610898638619355626023008148078564050566156320130778436123292728330014512897660617202196148961551429230835823379852175197468855581596965968537696760135245792794340944870579430728633599138218365833420268470091973526149598148573992019043248204969724867069945585177541037833028316752362022536257209317542344446249864213831585046879693643099346679928657836120825183643866447023291859332858063811463375366018185122194629721505799702427038839894202563737030126606473714194591682146775304742350033936646260710512577537487036431075869411282548190069831106483761688968464468317916062798900094445483065354775459162987717003777091129150548023457535762247276555044461988459750907013380275603862495800645449771114485665299974711314019264863510276431406377401839129185476569987595861109338016674831139981163706646695420288048895614648810162203587904066146221093670687919632331914629131181535868644715253344778774512335701599059875449251079423109294622932545062339079548826434143876493528804876464445066517063747092829999494794895185059925916673874931939734217723854182580061074815391850378384700773549165225967991055353872954627690489851379469561086265610835723119429624808711801086918871690242088386937793200711949955420207346067869463455651862697358427867471397336880529506660012742431501209864678969979213936563744764742397678457911201298477119224986099443991888497001930945484326796490651586549234173025993199175419834665868775042782636343506412361281689390906457536357907754206022179768171103911882964626812146463013593827550385313353586825302527136745753972839565652599566581564635421264465996327191694473721059941067926335059092603232059516139153196958092470748246040439447325391707515240724900921137963484040250963693380948453949044740989648288088894280919341722215042807810825462538796122819923502027578845840799202342441652916428802897933982705897930091810389055733128856302020670790915550868239369768877353238526653915366859321416828711060596697417267795877297635515616465183959317554207567239698303328592114035155694918575893766957977044824469924670651776076379548882457677364992971676139242471465174673214086285337633657854331436973683117722628964332731518145068389037396139578905701494393643455058942373198941978023206082587627309043293040273971004741617527077006275205681097328895123462155172032548779741742571582099974468332637287255207342414399463943411891623209585801146726981617430154343519262388049330364283715934355707508011323914442553141964895332391047618832163047274692169264030079173640317824813674159967945030767937956218781830936549587955216331087242396143539065622200664892773534299487431626240224707602582089502608205702834343675660639979181605012256391498601080285616707374537552761768596309725067755758129934220876738080965736641034884404836168246717620498509274112260511755377069350964797242065765583471105740672488173819851712066376672354531988026572886652234272435469424052691566096592087148697246631550038239835954283942368623843243645964145772400614027039484711611493370447509751449266591024145304302701552232639318400620527155451990264248729288958049925754215107227271726755024261104285046614118537202468745855749252813677848365882938477729294592504131042911110802170237216044397424156662121153397865931549141113652692570649595673641638304982280488037844555569625470777654689674642790315783419307682290233370338077386602721313187495215444532493541886212269374579895588557741603584375801603752121825671620736337886349474621234146405648979712448730550208778830725073389744123361857930626742342944176840352048675933449675814048806281710797345206412229914586698703968995123749973584000178189282110755676069810691510362635226544955376978626799343561879355062584031725559594466037479774850674161244091203849911287139974073566921684694782379726156249885282893673897235216129589148924856036041938285800251035101207120232495817513580902560904897736159666125683456731121452882472789741663346787809450189575968918059156546805295905827806434663650631017196182191623940328754544668370841833124547071761306074880938881464535361663689211261198571195978357396917478734956437977578113626327869097643260987864174676415682633376662890146121647142472709430171929672626824847493696756492539555235155923283431819924835699275170192433422675944620761201381780146028570483242124823581389768521317331254117831379099421260059743420907809941644630392405743731665047531878099475175866698823471179106941808584639785822299491699846993664961561386602032710065642826254429546753738340646073299228017613821015642689459136247225863531532792268918962540539078599648167394488318185519217354374043378680779872915184033325339358232465795085562525100692905924903140653094847236427405524298039754513313000543343169349903592333608653845208149427257827287360174449795194466252248827568588205716800217993775995177450979882428717839669811288171479092334647383059736945081335259614130038911917423120696177760049607755528098031582941016600968132060920701456108534258253981151060186277782671193632627545094251623300336032737231348824934999635467453353279448095928909924485061122197084213930383910018616773220790080705258645427871296861338746457900721189127026490763666988775316632070303635331942196228334268208538949056570809096076930219523052081321673049194361385225210049191156760882144882272904953816131333988382670887126823122750504486634881010443137384840084310594242594207722798688229439721312078693314325813012575024034623308165583079482549956899611925835841826638790078365763312152300577964418325075772486034352573042664495728830177657596360637075527581632299643491509573956258668917872658134157478944699869806787513681091411157056420451424574427590386353057975071669092187827293398576757850907312331433890595126577259681960257711052852987780761760794435124219719037335682076937878245215097783838600687142997236263815158573162085187962568113122827656449489743843689091432359323413307323329633322403135487026126312791164775469010130242828728776915207579981336143701301672681514587424912350924234744479156327022262125154081149118023800211070133524106740073719655347577677491098536298218181032854303626471347764402412643163153168112931141419227771447529813703080674248558122606854661403719669196378926757153133872029019736198998258414290586917820557462485833782290432358779245906017211064194884437777355324719434153904567715160089080034792076512569286819179399835274611317912847571344968286876857203202165642668472360856390704687440080352210246918338284506474426897873002359989379517766640146195948973594976763836618592988361720554530199871166397045164923582753588316736637768128333475128328819730188969784784638942300499059516352795149296637996599414458618046565472302063365752158192487303383858870281651406505830469960704428077147629105991871923831782002544174666884523710636528232461833305345890741310001180844109738259286920587608682233314335987939928374127691562489350689248725461046977827547185969057611988055335580713687936725044536612746857940257517299789463008189106013572713647269142276892374225367257892001846033159292690193531330644883154903315843759147501950526011666533424014239345934654953885995980666170812221463613764341949816805536245600985390541622880154067023817786442120713581704302640680786805066727189246829028224918303257218685580953821150600183024953473475976193639618531759342247428026823250056912301619228092771680950590604127368157873344453438860697859707470587092269806219122510276825175078381580210967502288782343385988538336998891823850915380489973432105498568652484570489499606603348193071963191415303315524238657309335667606007731218928312488436483306149325611914528642179818604863432811496843315706992251842759988516592230396127001545576401576613116862532378714094413656272958899140236007200791229162513113084028931387598493727375206939924761143615899089202440639184237338955843674957043057065329744208061507839360259149858016691232090917091038306319393984116593583971717474891720322024887707259627865972235883644821126115177582101425780059557917575365714436060552300120438122629548502013852292073989174438917963134454392781861168217980294985160236300636975389440978697757431340243291618676909354666234249563985402584923180151215414826043488871615522492386879083892031859937490182381404628765522026665971308806154806759983102695718676796577439294817557684151625544118811854877935547508621406969234811450952660660522169638793266214688457293580546686850550398213359834894961758728668746858876484665380910125871817319522089260753605344120338808525984295465993363343220880422919211326046528910305629354780016761018825844724751044288139111791353979428328536613374995571477859237841454274229629669461774021709359866154838802946733247662921834532944085022799816004843445433363217804879825184959177958447118798126271954377046471080454865181596491233856220421801897548756919958435464123967908151196380085577268484913501130517617132205439298854577572607217040118551875053002208934341010433861479119970895652637979922410438542239805016290050075911208981604052812278061189268318550193664775499267854961707413552220533081044293581202429683397373809696338113417432479762346903528366257548189139818955986249411427153992405135452877149324004570073331914786416509073795850385479143886244505734244348139699966690545500476579539100076086954949871503047988769753020298495690573490505019550932319920385945351678961791849223228447941105546745388546857868850687529332453813492698004359763174506475312277227522370704570671710711422194934179556466400964226870385905327564719814656643281695581805129791281002040260121758511810746493831094957639737098565275574163636209258757614913585903719364933055410441800146784026294880491480025349054827976970564798229609904180740173679128542394848979147478283060797703971268341057076317983085535081853929200214835123054838769820178926040525436522960565538350713624536419079805561093121226041238179856447779075743232039666462473434236969496496590106063342811904006734130225140305336579908868047321996343220467934728780727760690797646529540955289609166292090463817211911164804522167386009804741012827177740666555708391438973784089404495552444926509729042915815626979451354963215112873594116044218669770575372981018359671400174369984749342089876378472483014592099781124631602934459025508435894298102971638627398509037462914960922342291227640524716163173195776217648657164555450371827732817440165857710935362951234246533153020962600237306515040661225610086054181654253052645997275958740228279883470659491859390750705036617022425086215415902063175219143240033310801439665195052322879379329184930150082211045890402860308384041877101847225176083782642777734785959474517648327092694334740386475535427078234563374665401016277118213148535425845714434807287040787172642262590216346154031468802224975992316026275098261462765052995182869261836887547699665946490800097560007398207865998955056665540456963942287258788768332241508305564289907645071900068117085965119832593841599057125364338452706878895451970737424245945754194183206888584963087729760008965878439425639649322369597243223125253848399905610152804162003066607528926605780493429364532433472498355657125178328238347555376889134560904437071401708308883910737581106816260116819888117733921871453164571519305148129660604232664918276350990739752442371041972637606698379943725022750275035200933135046147595216711865472582599793046097040780488996693664031967457059048145581195967278166299192826008715995612762635771192778632873477496300970401028923820894188994169530465551718270059927632368535056480596253134097860036327044448224953958111756230399730433745116776937299697629054364988967831954647738899809107450779270949816297094529670717363065417817817854806654887622586763336073020058067307497708818179202690161719994731985880281802008564016741698122396370038913331542527321167979810980773807412065069550545963171510913975205124107560524013837337609296209751900551262277122458140281522938528739250353566800937724129628844039645216797209719907713251768154573656323829173325295463823650663883555211349147746466176420614597605962285489657674497904350866974431366392269015433824302409660705263986737289643681466001863648986127702209163439892989503287019787355578608918856120046919256742359387579798042223748859388631471174384476192046910817255158417760113646422846348815881555480101838589962658216851318884260159357489430975437514198922643434899561037614580438041016802413100620367090260300510717016599677695420045229255038676133116674463071895112273917663243118527587265493063925651504182268293433356557855939616177161123754892021502733457814879316488422339332969428822274317036970977158251538941327531249536086449157953759741929443809322726279030113232101112565593519733497333799157581278305305460244792021277837753541403702420336184351535517344912254070389693144392936822813459777273266645590003570941220147650580280577426276855081563526983860172050990141833444366841062554447228846908400624589620574018377349137212993384705762929921609898644816195712983684465731318149259061072054520785316437337114058167466609114852368647289513864691550257358384263795845653040403853256209017871662369274814572603824940598317017858356720689595531349938914179612472392216704267435861627117400128528958029032933585033297634059038885625849249324250317159281027469688076345664442323402892559830976675986763319817689609171857358920615296297173274874059685972827313867541984553228411634744443495509673200944660168520737771464020638905497232468923077955859511568076872867472260943423113156439398848081956859741174167901517546236117473786815647163975669279178639571421012421190820059849295512638301683231101287157140933085761440771884718381163933600372579033063121985625053460725139647986894941299361841247213547006316972622322869789986765274735011133382639612326464834596076454525930343001889628989867179710852512086980565730127036434031752608095889811049733934318758162974026275108199790178379815705076709497440450312290351472677049408792245588592961431137480556547015759393106914201116528018441613693876051179786074466528601545948001868657323342004033521489781429566149909752511145414815948857549389378480779890576669023756425720753808730937216346494705681100283727383214434687229293956276554657206504332332895620185392312732240289763117847985710843992391781496548867742997311379542627484988933576714794359920566759290785432649268207409910487402858565865170845085144977283572684122272572820945540771175909510637981306206292033430010154916087172760012939814015745411333549749087515913276342462041072311532079526507058910062862936673383742614384143186176641337717227288471804123169261801540150145455852782822125322503977325761830530035964243804040415702104506455913944610907828068194127576407148415508684969059034373912297868961295231225734771959924502901906682377648571738020546688830782787395378489121306553373728308113171285706972322035537923927216044939864696565947277465874010493363281211865596264142869877964046200681996478989876129889839546236915872211884396492812344631041518445888197453397560677664392568340900087099871488501793271475505230897756944391238355920470661521707455817720998837260013384493897528239129365059964172822519146121830411753537021043885627338125458366174568465002268721958915556502359391440142286894197710983733535709522723005393535913117328855661012825587474763064875862748872767136383910741839672815775676491049423596509806384571378523261549898061845486668849115461218317883458595229941233283170690532730522264568727188009846613143043747166840831024548750464373482407151218435986196689304918044494519119745475428932931219286387141727743041367947877025147017093491387401330472174647676011447735634074731597923063596027579161178451165938536256840028701583123566542050868947850678070936702546886304490572162834069709483230505517489712892337838821240781108621469741466869672561884002435150678617845287174810538382685365408080231586980479996004143290044264516841105355005534849259814620902215232499344663062659901529228215539647604056278067776290123658689157538931336950123207355602587121672009599236980326197799873241366883459967788033552745496646360306650704309589352967043803369586028133963956175679854767334884259161014359053730706127518454019512862087606123215370854588630690403920615927454623672996721674347230943406695116505371674982465839161468228693026588321655347471312750209537367062397087434428807521371545902253487412833011333830650719361253046954584629897800914201296679442425006250996369181435139042112280311232817871381639924601140415449262198600964946477422648526207186497468940973398685599930918974652556701840047210249015441268591883594701988852301213509661101745982854558350838189756436644444348603601369845379802034506025173908673137415529055342714650961311915216704891169123405973955947398557981548576128313582165021079279148811927720017561415583940707627425259812355447703135792075033664274793342127325694286307016421849559983654683054496424417163730932040534787064194751070676810089993832616090457223389359034225973612763713157696590005631104718030115471859015644513629416714970969586162787624755157205657019874778741810695049735406989435216743955927625138145507655853791623176927526892845153145048200462357785524598431289428676014035168115584291718478818990430771325557245832295267065343080218317549449134016830522731756688983839986949817058035855937596032133730633170301666825105690582802839174199812369435256106115387289094713573476996001306907398915758687384621595757338278579357923014456840649045528271934345218753996136918175952350011193271574438580390634600742089434548683507392749916527046232907020667047076678274326836358552917881712696429034594500769616071230624283305196115217740688482483693110467723715165022937622368248983935421751604215330055585060541014715737301643552581928992616800414330064896126154183043941879558493088382176122554741748922670844409862388968575059410396897482227772217728861847444493222732603392137893664290582400571211193489454530381014738571116675069246890660906357379239373936868089474013584454664560519757902837563260828195044011875740171528527535579882296739707594440636910099287450477529546706662936186928935555224723878809720276683840172413815468067223066360865638065252258021960776377652727350432880231410974905357905071023012867639302088797266905187032661797107565117443985657725470544804542817407906992343406217780816411687796940142700746046168459948396303988382795981608279328229642485288128754686049942402989517924773077565908510906934101917351067934665094843033386212690287750156999223721096217406889449684584477933355743184308844767450217754491476046435309733848986957658884707963991234116049847126281823196058298992333583392308248866988341750607568916628843073230916259095035053918036999502414423433766868188204339776609579280656593484114595398286980323971765984361473286996064869724989010235128976087205233597170924996562776960212382724848783940633742538685138651841689451687814111616237288400466963764381641997783356660708351505825285084512533636313975394938469189244063862124637765474821882044153682965364863661763414914635444655682054738459397858773771723012023322586593574284646872925173830001426226513626375716938225195686634046928684666305259716828915672227593119694189906189448625573848369682539849635436078413737763981933775979648906574731735971745507702899218073578749170852658558450755754393311637093975947346028406263187161807007995219506083898927875091153108482298133598328642274494733474932459812182335058320652878685596522121746166186110603912605227903506116194536929245127399382319403162341127826909613880393864892837954037810137969416788155311232216995905196143231246640340991582604192823133444089559067733938178258081585695689203601375617705138675807076180113906479719910534723777864419519996026090249535462240502499371482969977918629842077652781701127824529098368212441410733526589208118547030455997630241470379305982546108674000877740625830087022388791750292366225339585059803229204491754851122177056749180420128107592236048326140790591096354976009244229025444801572023290889876432978081919472022144513251106072349271364235119604178151384085344023300270764889657715706287740428667893889438071463422056355464454451395422683526968687856538042884786764328141561891649950796351983664681352444885942752860658331839901880328304849047833828663702463776194419061641749638889307501636534502546494908581773871290465261452217335251083790197250227646114130991285182001984867013078247499595294048668723382148285952256710124895300531544639999565563037480465640477501072790054685173187293133928828381232076512355376060678016777801777422165232417735640567943026653818378814013369508129435941579485034781076466533210006720270940186428663174058419563745287438910605153518226513425902932173664220776719966261760750124144241757694020009854102830888755375234250733052580535897800229520036069226413140896275300852684765939560409866365430153145629138445687827885531457957448732983309820268298143838520026423276423668448576859997945305192125169254364479957433581748474104504854852652635332456361006847603008982674771289678303120750979775965004049012008905126505746312885445912143561064828501070266780233025182418897113356102682821839816131685457077194286329605993162679012733428372479929852285619070887387001553212835387274179160640158363104955460894745355764808990540746633877566650995845144915119608694746453915926782669863010222798297122633244952329614737329788656082684023595225328278793403326619073689704408708692515572856302863151647352522741031987154898574163456381844774767314620355111080539347738207518016122685188588794938680792314995997071682062791937767952681871961506261911667893060597221463729149162674146447437705030581565497902319318382346560913442427253437608401003847884010184228864828724123709635100137985565231366817381974007063177092093570533355375769286924310468207854449146427172739185657577496348582340193265211333761030911471296881483188366125882008784107767519029199388401644447531435813413313515005871209882179711624330054825780419798574053251092008594734351107464885336327909596050436715604206638835627852830088954609728800996588443121947218186020903695597654023250501360818176745275734912216530817618800351427971594314488495520646012307703006370358646562678837964416624491452917859724481347256003259135388178749062726524583784101916847726816291421941550875496069204727235984058176047820274213572751047297903287969633664082225483683352422155698324363186776631982215381972696998207793523784245895765757400034408780316108975707884098167456785557943808335688701658130870056909754701373149851225675633017071403561275383991878616899664996583485914784890821897109385600825493414168020357319422890067564431097838898225682163565467169270085491635060402557470005845242720096777987207869534492802931556799548327683749683235246132988985200155048600839726360963974709193311418945542993622773376634352195613509577637826261738824484333483888779511369142148454826994618598459827085056188605048728108413582768463370742594834510693967557300572894100868299500860688405019670871149024854070216129182368661531559823397065738103900778724043177503972758303114235252770517223784522903957153411348512375954488548083635521153563164561609531576824980144989967436925289576963991314173691782921663364033382240915008732782319695342467517739542211381746546219642799259281303134620705308804933821169569577917238521525519259662927488214577593875827071908790240040332802597324220406481951990274524341638125649709802375212321985396016303395361245069071925799409041772628573530796106439640745749582426969720020695266158141884415390198073850428867179869397110710753766418783420794454587007473839446077030636625132295023753602618567688542337580788173746715172638328368917124232378910530629749376231581967905104160664757856848065186073615433437915560179449564522321697655327693618804063714269801879110160718998717668266323694183837959701317679613159014714803854684452214122672757355728247615594663436575215623972563763424824271845400115687211653183541148491348105989382455235645041639060713803174560175634116302260364608029685593870773100650980175466277339656332172701318505619472042937655621249935342505213252007077348240443463778952181366045094391953469722153766470898569487804497564937245285904819066495543862374218960514470800471353350976775011913209309814106200059895983937460362963690285758532869067099332465597066123744746214045489966257062328226988100976265714632749226279737787677492872199533054179765256051567985911430124477712186354645556802748162147175731023006424658473783440181848369716301650407387223621126550259820377297584985709356538782989198777596405162018140774957037595881062931833218995263400613523106150575863291764071083871098284879549005327927435710547092895043879628044602993144820463726344448784809278751770041074585116591511255879925964134366116380742443180811785552540959284701478311054097487563668377247358196036211265406962562400411688132800556002571445377503537666572094660277731629783496004149363950442125837712834940683621341040042067266682172197640078724488091716845114087414213665135716844815155239990804182252758945804531548653583783425946255498854131325455966346228120644597443434006351630891343741561146326187771499968829770636911301256479502554528492301053125574280697997200622868869640980431173660178612223342659091068998661444018457064999703540433883669159389298620731661540475550926106528957728771204871044708477997239939416225987635956680327502895265416202403643537461061509436521224462413476566799398110161605750286780538211197416388570775495406893196112405951058114998413684314357403945928122089519026863852713765528650132513951029690785693216304383588434006646102185201969748801671326894975041255573840837763998529224736204151537202739916738436529693006221706283740444504364204014358797374855985386116260450357512725312989028939853249337129108616705119537424965678120718708652679088065592812687854652151963107829378563343214711701275563867603371027326697378758728248646159673154086235999165595270930057565967698136970040781500157885259589859189145537563631765803010243027603728410043362567898407707016561375077195319682103130033833954010651251690417124048968482561563250152739698127703259097016279683083876112664479418848297655694480066275245515016641572392600686590970100956664566022028960397254360060450887011241271406059151834531771220562215791321670793145592639798831985179915648598003206492436067275541749170268826255134800822735683877766789524115793743100640071398630913058009519673808636016261498849722494567403241831740780206730595328568801375263811494684913055246021376787081456964443395770603346770118177638761698941237687931860237880569289218002014747563397871892777648189848859453308103356840306131007705001064936874074665945625892941520602750231631437171784004803355216918413854255075479971735758745695015579984845528928645084222997371662838701094232567337559889493655085434854202370716008191630635900927653131423074776115351209626558923977203472214105404138331201239194477106754628273171888961684825203297704028463488344489451842466803854494299584637106656559949342057555254479950578943561124735419236874873932818305042614192508543797714134715347616989148143192172111041814363430886555290190450090966997501221311174862342110405061899802838484546049953605692607725163063391866270137264756451878068608521376458194375460269558874399916842966470296861891150699669030856947808182613866454205029262952369161701845477908405614867421339645904141569196670867733003495122478197338052916246180594421070825014372057649481985401318294995369933491344500649663694889592204611188277122805747952278773323506105236175456055756847219438772282710607850926939189087315325876744838902020611588885830032382953417394859992716598280371263553976493701490774998941131106025623553269213542522727052579372085691021320353441092653345344914795384374718330044394450422927074127544114975409675447590693939338585201857019626154983870082557335525582692951523395388882240585852535697528419334320296470834372214105994398195647197236583160571019957210618092339633531518989628338772143415476237835666930253689399193416271358576826279865264175595006235587643776642685512341056049301995387263874713898262372944307280280440818327320975291742313044272787118328062975510502308736851197829274745753449769994636614325403081101307294376860685045683034528415719481838299809885665471266083136947164419463959381981964425919582334270986150187294151134049015395468192481872272984552815442302598108502510237504375953973462126543227071612388111777054549438649745532511808339887492190488481910169939623072470057648175947392925462598024418929495688072567711832959344724450308095358181319772082833232555066323749215483163546931984032349204505553427507885003638797900746235863886889069750366015430850833658901195634671632358365628307345995295348407804263084847979264390743419257854022837961452324647210793946077878676356467840784442541586526329923883641995512592709514425397143525218837796425050584506165929464645961654072620744797407119919231672130757991578078427904084898679542344931659693599910166770908324825732247940046199055296740211467902524483314010101425578839165240964267305504481973163867382753080739059411807693218331247914588314894303800063924726219157964682868945583925462452798627231593777108356715375163982820436012754013029798875969164214113515047886764300250410310499603898242955587552707989784231531526416183439215664474509485677683278434260440464196062696047861669714231440360786862071617111721916140789185733561801236009558577975498790295099766630909974815906933922238915573587852941986613376394780445302240466014960358388276163597586917541603447049334210040053567053127467346496905243530772428239861923193086428645042489362983855729506128248497915805084777879658642811890730834163351278277217180008779790995501014257427975331352850339485058091058365818895964929041825310409341496498008999946351310627588331617069830680850723642087347190801432696585043556219009990540128565621473126421864291749660926072370445090431908901098678630773674109482989652963960520298708042680770008941375788705839090684226487710790409251171741661029018554506318150885849005214589893817466970269535846540867179957588845892171845426632688589151631958174538937986820169096362535060968488021330866587077129510511302915207313137572745502871660124483338164033357439673639274654095089130286477383014906085217164890248850473214801586434241297837582913750773862741311513156080477917896028414790846270907350673947960228387240472333265469236783722268100910365864324782157686879458391979096465573089961620650322127155620377519109654204959254345632661663226227194229535153515639681186287223040246690453728119949586549321985403265679270412896382679953549016512325986761298838265067468682396603476160611269224755104164931463230911333268170959989092847968039113560492472393807683162965518903905771799591419709153549072135395527277445784169479415337104366127954553216567025627468558336520454968687593055781333947474087124652311616108703876593865100935396452359275510052626615669898155204932515034000913314999065847346693249045631502915885004899186169203525361839263601194687050270182628178617095304790558572370010540431554837385593810497006008814333620749050142366340428081088214783484952742036204872451884894762577320820058350453289056554987682147688470583374312238898549667585005776065355847850390771281794118230494739702701787255347698858510074495112703767654278712835391602266705745450665536498671462315855031296537417434681528384960583171213377746323695106512937961498083477109243186259147006672473870051607447111615895094533104207246424123343396546286333281561432923990814745684986452260514687946174178705346641933830610880289870385918263503898041691572336737837068419479149173534033660389808494082479209596476316184377869367198434928979798867174481249577531921568071704660165944564122345020782907106674734927335085061761270258134558147747863424697821005245908192605290405541651031688016226477057115716349897880753972908244143286001439836875903685930029616066691335576398768747592482142832079205291646037277379502365558568481461027360433161461703728473046374436722858845800699419913990836342529126466643042237102720566290321364220996653337688740324754903055099177858224690437791869641538957567433252297966492179004946933570787493560168622569484539870759626557275551651544629395366376187702786258079794558976941973649978661970297778126689878723292239356125879245968327877814084012273410263183269061915985218043537062025314373283429357857558732990883679036380295818933908887114422073013637012277439286064501566045100302132473718399182891300427654737971557036905656318037745753586176263726614754310998534619603957601042395885654092923428466422812810516893532771555100929613958160840304254929894797694668835956328919797234560189991335236783087340789693036454767354014802315313817224914075855028656751580233310525348227149653799707311186992783967471610233276239109476302744612891447656463699447891239551776073862857137923128567684280483053609518697490575002664349962504945615805079724308951531801938919659484881562258018413558978090162040167197550605694472815055916644761905529860104601048593815900506187644167413021160733075092503185731253140873259676522239625538395646158882844973944101762480313991603983216799087989612392384198412261444068239303081695021028780570734603857568634847649381087282440076986434632034185875162273096777272108817768435819059589299587196117876657409374511595491919077969317802208734480066963118247161925106418924525951345133224567820765995925534996857424103832135692929626937069620851068518116925823380461306473168201002586546933441451755719909147921457525780294352128532505094831915579480599831881516748412194437315653366839709421683368916353113711438994125524855897396619410059832501398536787644910782690996519397690518521496018856645562610447944283226686007491946321553510617966526466438907810591355062127587953815334126096464592110001161435665868684040509968211417185812420488079548479890840999819888722177760182256544149522812079969603590598391629324106245349418929918927691748040406206924218867238683092377481429413819495681276156031180364660955422452868965113602941329499125231004023539900927296304079963146274928767661641054668781644269302347480546676731360760132711605410114944684756387684552346824041954469804573247841768636431184595477487545430315984991449671974681081127373326082939349240497751461789230470214083712126931901912823911519430375564931336040617742356617725909677902990382272179025554722219997289410212052685706812616009149674649406728072330815840829706742131051346384999207049302709232524510056186008553339822516439804351744103130694638205264514619003741450153665292048873132138383396150580203139472450532864116218320430372364084053309817904801087312473691142360956575659998982706210546035159425884219809013105450878931368287817401415259362498030124039678962238005706759688125409008299581921402656492087211735738499363792901988375860537201975795798499297710018905770054293147413376651096201962225721640397178015796354464507310067358486282561534712876988282656539490360380045419651280592936589481677619340322629062158715817856727298803408582395752558809921055256257851460198302649185681004045558983301411537955238231817838509111735798592702250565732862203979025347095066647586912539212989415428498622893740388943717411524396869745073082532568071335450219246070764886048985997331623954419147395268436067555173098492068703469923130940022040017797580032877271808829869523118137625971645885310304790125921856193814441393568502499653905902501734674840375960067946266591149661774727890814748234541554340949094250049555933726272270645241858400459866589455539181643747139712221644303202345316985028526221262780290776272385817325600081201072292438390780263246555679558727634210849242278809588263021879816077272225077081315947939908692596566388225006058458261139603191977882543058128432702865356021239597772912213810776516656499953629360083741757099650094565537482529977013483979335589738044815869733266828128192254711251532326746409223869839606873913004008311529415944462962586715587211140592368154850405810305672311368788057286171313345649917458869584702520901482397977844426872874190756138035838068173690384008696139208103202001758789239284805660477882926616674034484372383266717280595407205490788964457332235947988476834611640231778188195197549325032067256801926148633027222322680689841177310088603761521755831630845757305691133523070693536466107222142238655996833789889106509459423613463159220352476627277938638135239768484939857222031707695646370364348358986398063360470993889240246036836195708027981097066054238471327790683295632480900980629281294739511721061853060987491884529961592840463129322260948682999511787761652630773858252689633973784693269494811096064347449786382016871531170124580301921399300751189976537947430530584027002174531108560217902691022237275323944650034210851164711418392331479048113769798974271557708560976965635542644582760690002095163119354033091179310362230705263360079337818984356611368718716776393726068141289476264642897383742092139417176395549386533061151907246458778838608264435301096845549415342219375646351160267376862612726759248269213559752288592132832994136588735826617067659224993103816082321212039815981032625343657899656524013319619897103556336786557202488339709437913391863025926841321522043070865099031045175966435346606339041025813590111065874428070434666183732226547777158296361623918247156981588383940858394779989009164347873459188429711115100120999288982135142338071370167908604482572028342572538262429390627360072655283929059055031646692628994925257237012708975746244873307525070087241441470907187021893446340436335363131956895891508408957715089100123986160683831002791818166664742223777854230322643048634225639676691686625925936966251364801020792943488399255659762324065515973380840122725945114845381056022788745880029009170257436401005777423043569278231780194450366075780427593035613084121771103982681885278589279262243709716641005531738043319332708334047534244050489053736723770862651379788115988884180883477231857736813119509713914785402540448747075471847789149314387575692859747826321535063733720787154643558211875154963294854483929556988485087196024107685150590363116760797860269510463432369466346691485689509483473433958409630794748719945427999653789663946389689242310464883380323413963477014685783376194353109881612004437514982278651088372477337898570686905965379806595988594359113395441857094756743792487984872324890250350630929466642213789608010601213153482622951615224149312479281901745734355393835107181848954243145786864997640243068742562576946432901810617308049793183220503697619615219565275220939307367480683394581617305162504791829226760728923754072298808545478955635538323401130135113642530860978942113549214618328442494770736866687832483081397459102925388373527321859695107382043879320018806418783247187420686537343265997797102676380720082985500121490312151725969596877296312334003278009535460959271311291684228655591380850734391573577187821508523608804237241928713543631884583415236704707673202162363988218185218629204555305725298661447253821623111844222817237054864211918828441683917893759702817872142375279937845485494100883868344284464469491305142063189647436588934055592028706516897561782599797757331006416247442171454673948478255304090798862776364384841389049444047311602667589777722594691771208173034514223559756531126399720015791180172708315429526113246975223063478367341392588344245202647426818916650729719821831379296152894714477910709415967869788234315225446079685465480368448620605027188232930382870904500442926951273708642252270750182244146547986454552336032260321193042024836621526174400625617638787221667814071812874606901020435374962195055213037875602887252521545449610814075622265502879261155889322362007980710577289820611360746706479001405520604444036983975402878698177226524620664163099700392109516888885350840499689552073416727285232117097087465514478518337810988040533414198533886377109412531508873095925579503512504419045414104711454560768465567388391187255052819987149969109269095676871645561100203813599534804639004375067078204240072413143773687311915958371735090737299813947307572937726888647534110418942654665252453226522471864871993385020170594348005855691518184109654718829360706799746319423974577326482431552644079094348160215327067646262353466697216753878415203020015074077235802420516207169523392925197721827262641802188190571352202822310258889540402258676271856214294430602536175422370802157827112823517392745900941321811362139106420711808351894532550946793551541158205493276376721853715165759065734792175102941132563107835518123446834271807414579333426071142337597893690584129283154279412007808353550297291400756247445097623544445607841566271980654284606889926768526244192876990573792427811828464300672462161865348503737106597669829482080317841580959174752298925485565545011985793350179790914768255970921166200181066746615564978034470148036281721451470091969472108164905149453796303286166596914173602904021509964926217207513916287613803173334188295221068996900090890342580175168272034997926308052798128151211893540691208638814864101489448752746164618411999426737682013206333577460767897488362237719290294626879984050008109774600199776678098597045658926259923344073228183595590444782245409483072877134508192460646518797335730424982676617015346770385308669695347319920412922066538240397097444727656695158391237252295162013558307130089861375602782833893706403893411710692976881876766080325174270202088954026687226757670183890161853786841869595925793438399862478799674104581531146345318288258630897918545200430005230500642466790473638196607053937676653299972803825422704605486166211961850490122795184530361585419424023469133918621468306681557452653064764860318409057343712065710540579521237214026357451897977829766669288889659036291121173271626959390746461579704580894625583767969406437859164270561290668657457562191185700534310526376575278680297721793378264452797013025758883646888452377844484019882078892265076355109396692059873796610681103377060271110944417946938013776678202818690989062676023615257079192276744166721979025231533886935999635082131482305296956372625984751160153249976622474820102737883619598385322558519057960689593349997270255143686663768020402491879357392385588529078371483953316719277342925974012662471824545744352994112255969313117281679312797030851431842879365253534273388829252913534896699263722556066808104426078319862853215753429106934380565784234084946778536212561124818165454270806639382894365743815117983558710208131649818977656011833603791840342560007877514955296241838853115196507422150529045800216515742101647793030118493193838441275395698338784072360988617524125491899494727131806595521341312617980054390203908296685740342403709804942754999518877480528223028848077573619946146957089514410664858334582547103292103428235179536138974842609962514403847279234992846855306627891691464005004270224712901043339643309934918075910416109235748684356006826619145794657998038348446868295956628327933840473125302634546403903280002697752004771664552837109541826266686151947944761436514063364498098431192169936973569319124991413090684813068865596090279964676037919753639386014175532496361007547133669046683597670495876047648098422718577364148445778461211647474703763003552616996133112104286972645486219863562295626917431383073937164493480551909011363619271154418996957730177973273474823592276572507733844294548969283470707746706218509031135488412145231709488985566736920969753561644506813702982914243414241536981414913641747470071904190724901059141149373910067088503402541698217506470216854551911606195093764603885070746753758961773204395743069351161343739073825501825344971085348654783989450623626795699545921072426603527734649875393963358097430357976236911285401274122974028265242115039132285023982455648331266244780088305418848072507267250583573505826250573719155743666220760899227580779174909262444594824351407472459694293711807912439247414030191228246424525128873717782751834692579660611243418896318859190999046314445003261811040824556188781502636714920341027186639613408372548898305111774976237246277282565856962774505766752340838682670515819252047124973173497166787804509452630904230863130941789764774943826961290328537585805587175482042848477601725261576539549262241042836649715391984610042078715903296820650509328805388337237788271148800961556947694969569900765780793723809180227025367871346345973630734199712737369039049559213216695413465822106670255794197941964478055314287882186852095125060985258004688992860025894031461516985583099785563587267304377081432501713810597217531106400954845415713067371853667134559758195708128052111196971221421896623745393748032971211010863395750977499707302298218272338880042499659488799191700998315133796462543864221768255148296763808360077621192226106336618457912569347593487148978353593862533428132990588693816244223891351456493511467261412838582067212362400493591562370822952994389928835513583320542681957579808509219646768569395579611472057581657082496309582863239122363336496379861889137265296928708343755841757559699530175311619527023121072938584470552779015580179696764170967327455710345924439804062413267995244074848341081856280576492257228514625404357024341012214148446077049923374072129375800613865294993462833534895179428864696165992831892272787705748295000595063159909366779387955788520974410052090314002314731218287457351494969503624816631369419872651568271494164187236110529857987438580043900960303059950968380951256453012117254337709336266935261154711362910338784609244586228996953301778430083713417201900670787830979528336958848381543556193769374525856970495317085670331327930129552062737234849127164507623656083196032347893041304615912912728710995320265103716145173497819929623041418102409541007354150149662200363536425251487650719883303510401521127197572311288753674437390259121176912692793134633053013281344470923397047557477939823477778964091175603790241173821901274081339387763309907793568619821802636930246675328287095971516029002999290460805185247760075899086621080987343998014350975175275937864104891217456679463570008715897517645558760442523742579248871576844447129788431759757157809167013455887560716368975802803585860327646810470301762042156694325076898960416806678120069833464307865725651132818528475260228538358626356376111200416571730040858193325124354989423939266049566409341930947898126416789686609645287471840778785040563115254726729642832531340045511437780721239734273797417270302426517959187805445216101843631174274467452760614126860068752433363493210835601353824267067705566527495143585923664709517358376494014883007875126125790176341909168890805026673186232705417202270631865436976313681379666369669664053060425883660534947616944333122789892026483557043942509246070024640810675844064946913858922461980170399178869471185248402809545890706007793578794535100083438885347464203400273484681654084338517602285110799425608333614813747596734999672972678643445957904649281759122770284913941874626774542609424826825576111723212186349530101382491443068110380487519305589714393648764152914675431878550223003160861382208234399506438152710528642545774348429917642426141825663936955419646191274034832693642003497259564776796308780767270033670988527843451529702162304593098784025484720603151818313808092675720874018173429421492766701848321342914462725982552660025982448665306341988595565168477615786875032191007339422602981218617487351196711276559519678376081880528719483732650922008993800456758295895521625380567659296322084344490633693433055732783738224702360920900378693498246562136136341208400426621435379474361680854090341496978989567570396575194288299014601338276943204301497775230356368261748531390066442492596239284507289650614468351748291651509924681583531059739300136111305443788776087456992143194764136150757412704121081639339199783416689069938413232785840064821434398315052220765040314766303061254255552301903254164402712006067120362206594990951299795627591845824921772915725762360652841699221190082522888133665929794333301213632595611783574664929155449597594997761795991787341577746432744878911796663507404503075037587734646258249903102446324725731825773926430645495844625031350850649989642935188981170510484949439018717384194944166201373293679103341196124692444282542813692964906621362360922398056923480964634268854027213380880962204252224894949642867167633325426380556807224434559800707954358718837706259322863925102868724887700643399471921808121601450822629571030885760170426596525577698201137544987454657398704191236776407150084874694827809396329780518236612496773245687584430460561439505938528251615713302455401292264235334857035162144900244762097526619715302689994949421255253005924840605864463514670298700984091969249038517946011469439271055976146120238937241248608391121582809405266913830948732606464562807916947516759577050365305805982892591782339776266711884155828989362754460625729878945523311910076861929163170431315025109139105794071576516258945703584402781044426522591912111695341176851867679358543412966557159987563134931987588574343778040182474335783424136877061336960073450296754814993167267940481861415344920699721913976508965668297361630139454138470851203624791591845600785489609078376957437224125922531453910201134030306728218774018733260473957355429268127470754795288756951627168761272652127863894554246373343860720866320946839851834270171918747760230589341249756809910707392460776232948174206777810277642935782079006491679940598477217530087070447868213280115824573951098568130232350054514507690024178743006651362533364339993910497794461971085937521245628021691779459644493267758210605755543558591554392622485322136731321854041575803173735247779289209152527917268033935902294291469134474964529879703919097070134021912600390770395965286047502894627638559355602190890798046958136154763310425398961410441297552786458844528641172023362851869396106896850624280289280201012133278346217725557859394916203014924373171256240857631591065852820333384863521396697840370121706074664313093269960187310036287722335085987457717951697762432007049315733462570543574367095825039245207960726178591548088909642002840838418872451898902275731199072179087148676240390013155213550670668148371016396065461012077420963788140352997182439712079027382308373391970564974824365026583255426072886813926338362421748757068977794020241293544754732281223207585170242691607396634376558112751661232120311702021404693122785683305569805764286935670773439116558961433890718144874973473669580948269830071578205050727932831002457515953195507001239285497321240482014429452382747317488418456278125354287454914355365100208524804553685657064457015356751759654055090178533963466039298980939335901170186332977402994780209325128062189377667452138719963291171017833920512072855967425555363187365320583845926680881364316268834929434851415637372626212058087425814073983549692841783808647797502455369828367944197781264654788120858603016064129244811783668949703928475542343733920832094175596419822587122834784804648828100534686703797225188827234662705899868081998021972710780110983825134026405457585498217387510838381274195348528561131658203132767689836086627967540144590646203731665571029554440828110549228308247727467408351556712487284056911810862680057245494387789844292695772204118782373334900389131375441462819692239610715659856367006272664125460781166893204889305320972674512571785188071466690299928048455321650629957263220940816113403203136659424316555704443756697199006944320513689038541911396434706341314843911305922285394975520125721515563355127742235316090724990817864920017727122725005883629660294407456357837428102402447978816156602848786307231309365930457956206117223351453133194039027789927395316613395126761970338998521821448205084551967069057039911715442138691235392931053763694523424995908193718802759547252235352407701348652057115661581194274085501959071491722632936938464462384865897494852567323979730074872384300890215840566972685815602727140543485296254944582830392059310577751209069439254082417034398651981459521948058695303577634019246170606861190670448046269719280269643037801034051114849471361109482657549170091057784565044167342402144766097714338996040460067303936238587001133261054536769416955063974517295835683431461647595623215603975096634476708522734191875792876176883969606232392015130870834525250706760541756366033437098421085738249734251709533388610038087969458955466686986096994269060184631178769734400084225849290146959167229536224802766250425765085631523591002435234805094710081960235440121256339070916177138488165876305954826189792185782874127096416622642646710016442188734892486049308436044197637068353192915016911317398450477816602271057503609536609358170837737487871232025271927040779806316923729499769913092004052556197089625853663552344380054723148641886665276707852602090333376334388566932469352151904456170400673967975014948743174835311389303870191269491048244249989436471984976661185681329291439237588784092447587917018183897775561557157301283990099281485690370320306268322834816754749054996609800500598674314707104189256597986419858496977942879402497753101805694758450505130382713744046491119067465325777453387464201075079746847256681409868219326036174242132574446321962773799419400799435441073037495900290425318370819767983729884497987949702577090004005085445070302112682131815095265069216312479836660300377874616379808464560494795384416830692202415082594578350763091882663626990731982424238339421241481365738616729561952897745004682419078144139409636855470444049653467140070016832268200265440319001401239660058719486717051394820558905444426022330149787926755700987878601921150000618243066215649662349623346611863619546238875767737065271369101478934845034487054386627601709842900576339701339167173217572077450896753101740513975230776087823669001332508753827484654478546237713481253936367509410355367051517651621823515071598028954068526398319747059507902266501019956655940289564120612987363109998299799594617543451988275027915048378233922019684299042890012398805733459816972070592104396024159443163810663129346164871220508144328151567428213864804371001508575364105068543916492670147375057925980365559532905789594498878871413565538207031838604069509492053343428963461100841725899829128902249801793717160493702024411180988042952725216347137526289290238173237689418209544658754268363243583967106647759620986427042055429396356429180873250307181374270293563656265560710342363966913266418019814310333005592645271385146173292150634778977673085730916727804848417246756612210759184122725907162143305719497622558807324617272445332716836967535166996593825484784660188344130208234482893563403377171886965299599742140965324553428609873378044895480512460603977850118606726544488127731004063917298936509918210843826477940424130845443613741402038987182710653775437237111277459092257200188769492107486229575690047703972034764802714288805078922243848211928920382711786380479552463966445614499793966019291963954975477151849007991806155445897552920540323322400657403014813987812327346990879930136820307355733652145689519052354643010749613634939840564861510538579403194190018911703340165018647781826476279218455918946790889591194118646490574045478456212030745599286769622481219899730291365847232662127247351238585652982139552074893420727112068413457612047739589396208997830044899853069167353852458821912170061288808592045927087685770770998782074952103283800844327022815085767057632292738745438986081031054442227008992180636031026929403774057422288194002743851261180888034294830821306560600496316220312776020239684657744421447048261570603790249948449952267571924425317726076235089310678546898519284394425169942180017363138946554753449879106235054875284080133181256133690030245560194785133181477952894121643024717521680504724246817560991548538164465675613800556383803490932539932374685536257458871939884019548932060787460959115865944375130661485290816777141735423284118157168123467843802511353613001411862588871091288987688190605452316921014222649143353773200676745662419664716967044117199784865296795149602271622646210939986174862964387318853342330702204695372731832159479247413086652186766119375195920861822348740485856903681579385459914102439878025916556580765977260691588237306248902984398211119472067200846948894588121650301633126976047131497851051283863685857492560740525463918518912731075729490769368310886856267852335518897818231550841149980604902464125405120850091523294159505566205041183183865826950917175646371103286758694194779420043658156300273327982092707251111699654185339689113583699098162281127954122760160658751300687506245927510415066287586975217877786287574072929174859568681245847577171718856967306371857124855280175399740908335504201923929006859248534304475116561743707957760595793535084627701999860620397693178999737066984767971433810871911008692198477138837761431026928391651958006435229237487031738704401916595137790440607801859827228006375163419587314501787932267517903918694915589260107018471555136958151140565264538298967299632191840398658916209828341932389940867873127013324503544817578137592784441373895807840912935440451976653461595714742645942314913128518681166189166769943521800585833933711626160630272146771238051470772017203471261734764540243167068814086979423075843468987363791210679794798989806032692807581982924278638302445722867579803782841780015417232831796417034690498553500707007225207483969901895655657786886446692393907719602357117244243247106881397474401385575017735533493389143969877033242323527163497476734736337039732991143416495670286105916644074028360446054890397312056087165127662728141827932138449424663969310252699234666129839032945788642148682206179489997972818264834456291275376835411058223150520098107434467133476040515243367445607314857348537693465011067190885940656271609431381211950784551166586059960261258365238967285348046225166772658622747162825705860778414235372236826721744289898598944427747098446983021377442176548252742131451613195928483597622733101481409200678786357140807976347356803055896011913130502484057899074997953866779245332778475789572285574211849455683798111328506623472335902408809084853798204863741260141965581149816811710694057534757163127863376347434753031505822041509200860711526584813414452050338863286850120663748420007964973680541884645534727230172309936356856146152534551485649849001768730377570117798101329864593018575196673741411085813141629352019261563448272417246638468161523554433523770263162664520373185358789355439439321043517624625238370845441311615220692399343652553380986766839259959834998631125973427914608459321687562461475859256026889067351892920272588924640397698668280131275752110946957202576311662888583196635498378028320797822461651530126175978565236357602076419914311022724638253283492527260517162036352479130542368359558330969922774373363568193572503715853883155082229784678767122257024689452129395836923942524880918031009403386380303796332161712181446372483355724401274981289957734940129142052620531899816578025676774580151032758821306059976714302542073629647928652861120932093970733732195408919183417959841349366527716993182346796709287166836520125639000167326050844204498320580196103484174310528650047958124797370420078222242331441643232001394625168213878777142587331338829359199294826980961382822952250612358983507257776173546197973463106625620986967556504861169785702669203116292145472169718973192622473552601287518208735015800163460253155040022227829105298636947121034425701618945212856160006811725971993782943404261827883690505665608829948298721227214954666041562206235725998895404207331783766674675278793046817425043756821912263453261282875460837979507073762391543659001349880310065044126740676778223119503586108241446525722964048538545701151243100678141765570667897184963970736403497040782647816386672675146477619090269838421374507402456637123147042719841753185854409112145425761669935740435746186950086138745507267586442482957885707080544060613165303986005021818718173092182255794724167813378038145488928163840147451166657685114916776112013069838893150505625895946637949077003281211862069171619215031488153427030019672508816760682673382084157279575593453312681142443600412395621198210711352346005012918872949498727813915090660084721351909955545150321780192056015089279259944545010788291473974242404429023303004432447601691073809881795234674132006266952180363267412574983465918480185834566218025227371554388417755790558560690972451228373396352139100928802669383879295617392736722373377110521819939724364809204007034433612489827362194390516218442813510381102867403796995678076486146229910777007363216880678204033714964200612647428697061206513223959307365446805682788894538082291205061969616127155086272863716876827003627165652806723530997752154473063169945652422034968033024118421993751115043499299319605009993743561747628237902331835430977649107429348771010309587989773873410678171650351160821692751103716739173908923899471522562867258238607664255708661995553897284639443674531660274309225742597432504051624636256200508717206250425238499697971473011392652194946125649662274503755859564679930813611696178591479287144910753477674494793826017523950506156534710176605136294447430530636004787816644735743025162997066413668379248686848951625145679434327092469238916384194617287220833316454240967328252294334149047728384322076148752311139119960746395313823051091592985615443835329957436766201417821527603172225502793710741359868949865246477227309326159133872719188783695269076443033137137444525447168829019608096658614279286682107609755624505692639976761300706001948084669761817118314201132201444783488364498286088924489744117004645729742232330662938709466297792163996148372985578141771593276456010918217015617813049522872919342664310564423591286209962681112600536297658946589161357403406878393025058648294283187041031656115224315932901383918598814571071341883589768854874255287514836465784892505712000613358345120066533193415593425304000617843591334965840683930691669511106560302921819248154766899449376278475194233023238997093968755934933262934927551133013010195892284359865808737137320007203722085993394367430598591986511462848234409875969107570896960242111519430472112100339455247276922482829685598161351837242081977278646646151866369265356449709864231197313191513152230229703038184696287014201770017410990334321548371770553537033942732038254663927933330059571803924005963748608747720792377388043210597599940674324418277327287019812575384422389669986888848901542117163383693476899840634358078034536840106240860927591723913167093535786188011925287467338800940838921081088031253833558611372930345225581591953440260161543058416721351198872946331224906823121019913817211142907353948774947244258369718766117880069910370391433570779018162114142645582843408502741394791811565593906199692789478274375996680197467736308164504920314950335769607272712111248913075786895016836528241319463244035543149652075093160934857601619066698176901628515965178378105254804833085503937901660134665978771687802587761368856743329795367851294175197105448557103081070924147376805302337595153043492295722119627005894849354264918775192291570203708834754018385935938661959399178202780026087386779921220364449691413975109931871602763481780566572156113618989072855125854518238637964504653923538755390107910381448288385046217308572458322262389514413552533909150094435454383225496372487506056769449682340877406468168875705808014609660540901038495929848245385895632048875756019450224014708200270356299703639258109222312259291853502059816535181802419587894089343093678547002040512107848303509314823415040779078914786415225572803353947393533909885463241822425165908820715443597241559965466484569674364272713754770664534383688415710993015603029130782134810148835238025503477276432487039142044323949981218133375619094680697858733047917716362788113438355762752469532007396710538206896653117758098126050938960877814924044537205163853710361790616016031973401896500080425873864999380144844526300797181214069608558024111364715639656345269142869125860246099391936732040511898070107985351230380219104262595261863706562440378880785385453628037957717728134487579383464386183128292767738145511567321907785239296696148944375556474103469452760273510173672283458044030877294498635326643018844427592742413882618547267017023342574393551528815239290588112869823263028050309966365648691513899941394758922451601099755748481047600789971118389412207428874380997785384197086297469248558996800686687091581888062732274216411012063101217227691562811850511877917962351536942751228400955556274399100377150216975436064328905646851225472533969345396268131930996615420732362643252254579424803508746931565503462220493780271315703808862700189547834075668797275684007170051426242131023448670939917827465417827330392487056226529499595974435990519096301401830071602502887713784688081827918766605057626575187389437443605550065613716624668677608402322132477861102571407673894552003890361850852802495067021467417366863509436148961126120500289853743358602356173508615305211093292027644789487331014926057679118029569330029217407168820387240669833442948159274449116526872324477083844326553660691124163472305760423444115962778724347464627678726692909900508064037759830628972760675166454925600613394301593750322303762266091091986176849260465296781963080941981425652575324801355086857218452593694270086503042673434620473159862509915910614852986900558058968996047075700326086967913557704549792416227291179046303219612812904738392117578853062626705179383724524079951671158118386194481326987832802513894401232899264125136264172720207317568504485160874592045666429155011016376168432568714046724173473278150869962820456248034847370266210814333353293812623645948174176956708112229553931443274193080838888663671427826216598489456664177870073108394631292590189818809262965881895819323047408902347493525257715137488330671137927172915596763082762636464460956733628782815601494576831555572637921308393279197086186868582843498407240184411207654511317823424491356259931429086015472077353686202313231512678545549697576881651027131680928151547385910014832260831710119301113947858303066981595358395889702232679675291828969516357709365464027224677052881536567990227615019109656107397005357419739226871708637560440672280934164808840826761993696054232457096048183153855718238938146736394838711861486280457358046916867240704180253309735559625121341842504755351725892275185322369174572630461471977662276802286176069061752040158446895961792189797184196587255670107149214341046453919633870937476869389682752488185366639462814228147459610285451153397622213028381814357607541585028204147401355881843845948282929073919275096994248508110251859471781464341733903237171930733037654216004568161127782987150713723765790182696025930071494381228396737681571135458007043168321219349665243440038524215751735561475118815897887901008398370744509550221598446047945994115780296583904265409349884786669635294610956157826571579369122289492668668329178406526572882034303746993028620974970837013151788748779061122209227432578890116152394021234067412103120069104201362914257620520149146413292129936549464911365341971896710725622602042146035280226922515890236755689559413795762420042621496936248946529965039475304873728136914420228858057076870547968814028702076767606735957800929786405746542796008614140327904060741085008371236495682716890906132722235935028776243543757957415571367947683697253375501057430309573775392478822933621682389531652370503339714511775886850966741890304434390028112418421103435239212643651174828614416587278908126163250421108310694023823858589584026789891229986678863256750251264014660597433581884645452062882216958039069176517443566055078065285623487445808440495301390255648264154522348746210173408534072400215040381301920482704203026999246257177622247164603475427516700914676267153480904464418236657825447886331054837454088719638501854626474312280782221638668861086171514085575532528897054010031065143665779684207953702315286304779936036523220994377200632134462396980722558930974922091753327543013241125161062761791605407806925281733787277959084712780329450921635077742906545569450784584804199309011300355934627538968269033392436025266474196808492569487516625045425421000245355861245882552877303712154103908858095093605637786228286327759334436147675498637559792090554429205755970368055655359040589164288113751364009128046601300192583745333282190150666524228064897523775925402087514438640947470521308472148431501721285306810182076030271576950406600606094555099954735587309859237073205287318637265162599944623096531253067225196609192471425614466597981556746754224238259463008694127270066252255234898202505727803055876650640481345248378904048937995674680770621358680613677180486197819652257644861165360411535971257681946456340247671021351839111576679106548482235848530767396168503853178545024968635024903504999231645893381932086225403782997365533447211180547104079223410365299166108325620106064255093822344970326884937759588734807108169588338838042283206409413066914881993671745548876832878013175251358443095754313478105440832788382468081377155522986620657273682562469011634189737282122621552397824608088617433379182580593667362921919293375301099462865612521448037581689843377022496955068857442236260848988565816962825547412979305645002185424375730092137330996619279937697171113888217594755508385441091952092632908654193252259780831230356098298912633477542955870977675265851852589423038066814354402201210134044530941640741260855682609185117314878680802801249072120142101755971246311187096525604813264503681378057720278461192082413778263868594481453367600013105340468827347342852836714058903545807954288850291971512159788488119841239235197635141615391618709582240048772354516064781741441419013826481366636109071242038583257195406209164267724688107099758838863319038616799966186622471379001744061086869984248304595048959982246015952555685164992581355371083109276412840881074181968038784481518454713762408849774916398463260695977711899853495301858375057280830394617924018891748651931097713029395520873208149161783956308556703413333115016240533493454497511327811427294465628790122895769988352380791202052530796927692879939592306457100412508895536288817995746183974997886998398587564586626028967197106427805695610205136599811366500549072046120658451029654696754818778369013527303716129127966196213625344066819617894755966511049044156206978903736327224386298908468746301635119450158169749408923640798966122264147974516978018117765575165243750169440582203466657200670608488315605944927859716021218454925566948563469472206384085901749202221657964223247119116340285907340787296146059132931438266713443212384042332618920890079836550311856736366239624868275791109192976059045139183332826532170589727571025218412389587609170632139595840976800821792213462965473414610464754842510367950466135745402229818467201589825341768024351102781521497758419213748367724117668716375831129518912568878020208010028179260511924345540564346702173632137697880212403972404732928416782987521123790111505622820590963251802177785881783278193783384887114229812846311694840683852904006605961345524767071091251366363613500691975280353386868421931373798095290616763962278396688022969428575762983440636560552525079240390070598849609888845085745313475325139641418875097638547819789637521013402068950233558511689447383187175006049829449795880042893138530590194219491732032115704014320912101515109889369315008164749643299242673461265428806814455406027808660963478349904943767527929702262728430576315426855818627890079438818918210577400163481396221987931276733300469190842879391425750996933612261675884585747090439772314810999185395603351633924569553819542864450983702995256748764493124675531096073385372668796521537025331156541521161337757873586329973499334974054601475882191078450918184446583409226799184569208494973333499496964266023138586670566327191244910168967824351361899961102055522905004042831193559217786106420648027819173200331868867038918913466374054246328226658569414195261751323719794475744633690347621620866672804055463873985922131173916538432700345895514149450482611276003490369599661855167103346710837742755774673387719794394776233023152194014158892422574142057941145386989951126042220531949611064510599819321774750628596261024440442559456186762679646678073381873062556488888338103833650518078744613959141824610406195843637690354469740374131514757280700825200396393268266573063938674759278967138849036083917890920040559585410353427122752503902472713292098279630384431747224282106368622748237897991425646859421998052298973428778598585930823182387566616799880513758301999480392813935184528833119936314249010277016420379544147403454961664024760442233424140017786135542206287195458508233524390801995249648060833156769451106583927945897398229619882096523928500141707791994481378520990555211795914284868265438377273380068015914907377839646919487640898985541417860054965147865600116252004920166537045073866880032912662314302246435864082490112616078031666200510758830813642229223538591119187059628103058020113577620542189005299194024433598786825597854584541928055708836363240075252060371651029343881257012067104754940531606406248999133221055010672118901811907047999420711797179906792241479326003309725757842498763313855087872693281050902620949249018826778404995717689149817372256873057366462403424634290526300455026518570461828886862394552885465244969081653738836376007699184086649539802830680639897835701401274332105063223995519247855393802742147097006513208943532336766714967288428183510412460506315040072268261622868642555142457921324456573636495378608877677209201880336453523691727176697996435938271948182160514231363521886708325569851547978723341321568983421907883245888540938442654104643372377354063663073287672359232862175440824410392852857486799089198843382340479948669401559237733619575819364294529651005313338411359116563104112790574196095402218917726186507666759856054451068268401289524601423806846998719720556696154882515675074554649322533446274486761970270773917056263095877743127480816590800627751916663358001043521125844260348999549030133643715783895923571240228715775195616228605522140210861932893829785792883349040297116425470888851236060504681113108691148935921369575427803540640411520991581630259850978267525741302722422144719088954771724749752745886974453618812051553958436928286224875883471475035641359929281060949677040429457986916563753791651775468267873727513916282901842470333356174426357833624512599053592072021720487328880909693746656208785247400410316804754756584812652147687826092153049294290321945115684818827843103291155345022201488547954521932491693579980909334816947446425957897560758653033176541727966724795977449216649480992153838007700939449242081956971087072122048666419760553329455009811672502182685900571408736409886125023269468826120064438215259972399069797714549775897967505765541303131737053116571129171067027587489552522015785340303695426500541731192477520739355720763718411422542077986433509340207586226521831918046446056246575986458384646451770342656210504218759717568227261049245433285409632682304643587003893735327094460616812915896114122037636502904540553902988500071961023174289168536068441953094789934115439799688521427976565842917772072956623821018143717122958311121504717771505330623150741843951826731937940621772793828786336814383180057402360382013015217978820610423011976026049809858238348189569507857539968684906307956511579791213765196293571333448504077191343958795914938594519835202296910383051949329612776675995443341204601803628864430755845730339441074998640797665307271939763722799356252166289367763775161856910304317100408983230567729570888122144051040950581074019844690278935638509034690000872265811640619513059844089056004096782528141022032470133640487514794613588696344030400838722496725682901519388037598372544967103176488959585742576378764002373089656560860116756906857568604284326867362302121230313693585536941873368291990888996402561145784810572048280153741004023160863322365558203247200807402270083395923701587204807263086391794754696534666775633917311172336022432392150611875660997038745923222519078939520123741593522264847760873064393457879388758672268512519695440211622365998039853012987934370655965397506042232192336748596225569127459066945959951856774469300856998003826865917248639928566345478403936316588810951376384657537182179817207989832392958894055031471786786270127493234326325603728146116232131631134237814583654111110497752700210525911396574840529492964897867750034463293284945076772182072593783190947657738963013543332323244217229324895711848021129384909111528557444086580528405475288291994882302360209554408394281430228922418800305237801318979583875088243277246521986488755827943053351569204593386789770076788077518843574346184849222496814275369487983210492398355619079125124618787292857779145918335868551092634844441996192388339594909343066383614480227437499328897324124298770928970832374799342699333328830939286060125285585467865631925347135113127918833338199411094593145368513235268906409753402155245082312175736803900468064288908418109717900574389014557624265601354419091387769582200641958745142358996594096355097160873340257220061104362355836080134984036414283193363553331860280076833952475244111283114235253533642040290340011440423289269042119404336279541023440282822865949161721108935561348040113891692495741354781228937179400185258279849937593554603001863898668604278982913879085197706575911601767796205715160776551615404386404190808541361481722807152537972651418838675831125677537475259629148632519886412378074882804700033474158804969176446857411824250634726134510062734666958697231682464946580246674048956224553305777755955047146039148361427485871771978746949811771110681025049779928352396667928666374426018401957877971687192792394841293962878318651199004752305297491551220081134537193436654525731737582923389974332077152696383189913313518896572818382261871119745006734082823380537960587756425547513193525639412279409036711872715003980125287199092392069679448460760850081192131801000098222997396848590083734975339406398178557439427110110679159649530523886668898767796450851491652656541945594621863184609039505712851248236488751455714657691808037069754252356980810469815770065504028342658591382516023973777273396786802240377973956083187983777856645216525463270579654931793072202418247146049689980641163455120612432446275528910026798609319836857697834194607945010408359855997608062575398256576223008037028225700352674929878236518340151661941828504162040867909059014355435294619771942120326311303761884345478343863037966433989084413357083100491208089949137872803738643750459614411941575238084106003836742037664620097589876484969514496963039334547821624924203910299173014086760119683089434943347014178442163589370827349072983388738349889058078005379830635228752419491484519987960780166727157761074603637943285961530651390418643726408696850399076242102208415367403229413414463131466816647254656205262699370381435230540317971095246571512780170803415146107822502130432874578911953508354103452611587951801488274935524343839584392716320585348733758081216638048601777949462300142646085441306499460621040480260334191853902727937922321222839786307218686621995769667292446931840557255561382909091004001969313959343183121083715458252868373548613000749873399734619787626057731063824284379300317922648328402481302696133122795131461207196442066640853781252771298571871981539950794545489372865753907845514643196629688696487706316332921139334343910399476618472462756537849613651848671941849504647025492291903039041946920225563297015141909907961299435313353447796374104958909158921109933056233158831439868812186090430606819528320270744500300037207001138241364848929185263543456851604556638608816666501454752705544952032653123798007654010941215107241840178311306353172365662463504015905288936047490218811658241783387056358314922878545355530030819819445422663659563068427850278325689694714601264858195543595167972380610652839823827534060308994573605122261262274383436038787915429901650894359413770368181731356424005497718875534547566527464822904816102041561861390335267127442806152198073233602081851600265162891652277212103562921376116419906142952449277776241897466269611403654753562982847815789304279859270890769960491704263525010501982411293929671774279438317142664715657936704410039809346075910706707938799519017776595870807127468862425305058520157811280474480245175452865309989858040701565887762427097365750580984537764053028653446384693353405094516371809314239442447578910378572453325345985269913454092301608085152066751539226210477433197054184520230135102291420883015168123974423225243509669255040783063782379112972694949000487369229095825647001716463883759334723377149491273805589897810954943721563085799951719400948480939979671123576035027012000333314155404210366385442875803912357644392502997127691144695529146091314640414863998603623921941449947147301195450227072658603927966384925701544401975506783905542456681038355267494561077881937729362390083041517852106983582157161220056718637538089846466767780042008292143430212106661825083232229913704493525192043021767027302871802681918529394252509430852015612135233109515267268325600663144414328922006868358580865720029781856854421709398536064595386993269281752478765478509682195685699265396638515219107895889718757083855421349643179681514730963754760786954985741194230879089878956908169438429737836061194159209030411110792283364006296839477887014250062083649505084954415862482378725207865269976146710993533926350758508784778597809921285778165593738450522995423524236787724140408424785227478127532862757793430073113465981405536700253026370088570046311425415622224879054985159942759947729975443581425085906536368469174579606578518837534072097093798579319364575098215174853521365801424292997866473688515947298707995919852316935704779061738570188946110430923566337478649448874010179229534838329057590222380039293481147419764677441615455028636341699847814469946156249080878077946287892819650093668764946919395201498154123430270071734974271217435365110868343398714168499174209119617661849955813078985422103335288472832023070349564769768107399853849213271173620158964335302317155566279628300077242185249556971331190200416038925193714466128289386186339669904454340486024203017769338231872163413235843741888318753640664279942007609826803571963327633698141214562327190592367361696768626323907480024460988949811802771676975130358344648931563167654138141736052669936635651130565449363253426275982402089050023253440049786759104808621556571080709181151065016527060047342957934376997027989337059757927926155076669306198897942996220841789525548128510910263555897067781017797995141754370676298976562048620962200161272055587586296776310924204306327016968311247752017616571921122506570414985812556078846940068923029692615277384914676872801546369315966842188837916940447793697757744559024583930594664537466227497237016711596399852951930187071372203107733681499324359370133038681521742285807361941443703392683789123386415922923612682225349515681240189994280373203172737369761281780609698917477129279566555780028825929303271511648992015839149138203827214800889792787101595594860895196850695988081316396917018691309668264783837475777209333962223716337620991460074474512792403924702816291795225049926925607202978866320914639021405895777837044139695029309620777488658023361014484596648399985786147699588311733597190073509977414664363609442177915243183762106424386768662622496668505708135938218310884602927042400548826889396575671555507620025637944051838686919423564723410122627062446074727451839031605980771843692295112445274974457683140089452251173601701382521292206692471838581265684258789742900599987012177256521429918014812615035253019267393687274739578964223490003065618916308745419264773177888053405361350498782053488610227692876243049355794369784038375673300240870114329506526195548836372676780527201188741104627706631871684099371974497713189802323840435810640631048204132032292744454712189035142699980274209539779342010878923275239447954497084090354368024269468262598601148717544857436144826702294125501409819895917853251836682015297665667063609337155521540580124639912421887879809251820534647656114680793461387332304841502523679665996236506708432386203737175937267369558074766966650625670753975980039744660382454674950407064583607284971968286868252654210270242421524590797337631069428356532461199296209022359095838527200374958078760277409039733545942810523646738805220423645455957341643289484813652109008181658861174536066568510331369114071484204133278251811552547582705346850055406748282309014906706394381789273625339338163580999545929187135026324126153861630823083095388845791160744699306619657565018747738248979140884175265632477056415966734856885915464807029321572160978145295243479010251483320770539047844267416118155266646272396935176968109490424739794330081746909729807690355343918896052965818624501384972546698682855174633080605834508107795920421550558517297966287434408846409558789290758731788035180973978515819600514791377219016286526580644586764094126311736456383507256713681516113887956774284505912242406925399600799770662678820345615904786537539122749192522428331854223444390737661793428682509331316080711326138189356547395993484662819223223204801923996298832562644081098383220685186085875208182700847116839015647549132700186478868632968946996828836063323448669566303815707404636406012132626108534655868563886167940790207446616700575248256201840953030297682435661186444550928073944982150710724649801149504056047855422638239811211925891608080311814974360947819624730825274380542687809251133127903938912839913461443427245882025373019101651388279252623505097060928614657626223536347132472886819910692600230924323954187064800460858101809678058960117056883515099554468850842152100816418311461372202996254024685060623487226729469296538889692853406083974904530683884717638554832582336676862709468380043628329081929500749296066847915231597603765038930497957553963524480514742496445888372436376510125076373610303046007340291296433004440803189561861866780103441729620664490764409329396249381700858141748488578151271602764026268475101857387508940465744594064853974999860976585615644976144401866836132687281431405756046850561946630406197702857111208437099800420934045585820207648012987202066051812359587505190071221426353624081764696835423285626069825657482562601475396559465083795196588260918175183992249199983667631922387975271265764342785886240594597414136545136067673037489779044174589032763284128625078524183069565826914829384203845434427186764947455736232982435140997191471553211506043699174119599635569011616624808353845809092029067709181032817967628750886457941001084028390509159578396701663875501794226792742987751849648430075391543918306953063656556878365050675633188831316041025878278601663753493783308516281503533955188011953839538118481462000120929766233386748779213653242263372131982913334321198238761790128325319459445787694113664037111546809628413760854957978259372407356298590723356838427979863637358201727774464897566887740591438531538058557045592511463731274213020149903010297373888383975443856618313501125861213845623831364347503913796816944182574170779930767918831809049519311912914198465136356067188145239620725734852895518898950544003929158963148977494522828699496881159164959884328193670790360089302499495535164664803669528554250163349002782068694079171620341773077927934676878541568283178416060424245560985748187643418454579778499829676931315625226371071809754723989822657640303152250940740066606056802818042197301148852488551979526977688929672316616027794242738532675908771704153064645118312349022242320277678871327194238874913337307966644316327611642242243622740056305018278310069948422460244095595750633417183380606799291741589983494506865792677623252736924216948532237442134948234833316302998199147295998021031105950872132095352517883782824053147886775367415533460004617260104985671507991809521407527380728981600372382739670297938348619225728025889674502860754255149992448168042581376661684254343834498276372245590019338070361122834983193521339922780140526537187969985611646050249184005213179972504318242273654717970070856872245135725537792649183193644378836168394736505547041176612415229967750173969105778668037731499060577648354940754980251580058807404218074142692775165105948563767569708623347570535558139408618439980143084622454833206960629180938130451625052060416656040738865594742112098530217053365900396663700768914833554570571303897979104090127762969893475137882617654448066484003672182812099639857193358650530695140385554841644461944104313258607737713948803009645689731633354690897360842193214410900157172301432282237212222145196316667499264582349758561889092763161424719535026650059272438155835850281958806098515135497652739726140645624312043174207098216402299879829504966257062737140875429223378898269490974812709370225324821340883837753216410800516682117046987692885397916524215223341734990060597002873733864127044413369027633865251548230749499408301087141883675434661837362598015847107330648974274811553715383077569050168425177870237334707552758794157054389985833756040733011938375494933448045491712309348143957916856473909852678318478884764170749883676336335634779324828536441143557107967148089192880908956277526815904740688738641176352433795391020093898260029884913579230274832517825877144668014278971870593444067430043764936725426623373096828041849809840878561071120573011084887254539663281666833037451108799729041442659625028543664341983102063652236160479020856009258552803340518997633216543084751513297528986499805623807833417937202068051625378303890160377825263645249581051024406965102644981241655254468657080296965758291126501646631678071015231346345165224941603246195098285959698251037269258811791342420126785718607799382980602939482518742025061162240155566711517123712065572319084453140795180313061088174804531219565776864007731094357624869801360886832373959771224125106465651618946847693577569877100150217919218621275877526695715986816239262208751405757977047138184361762815053498296712882841821499501215295498236182275123144132800787483120553991609193491783892369294519399382290843111716877389732167631444798086845069966581868050647165857627557411068946346913990110269880545164108123093107892650462823688651998537249698267217042682047861482972078827109609177416130443310375691493098319030791158105786091451576037421038146286567579895763890123167642227999465016947104894056335209620202833807345785958005250448529226659145829277986745847925299366169188535325268723893448528373660316508955850448126888816649254461867417265227596099322991557261544270055368626225473621560275106693480624652550834466563177509989058357584611378010932778737988119249355789481500922705859841326375241799287070181577267451738555398703349490190274298431116897897691233130820766503120388433195554050557989215004399407719054147053510217288995099497947708788617331665494963191392195005967982702330283356430528756170102408411093332377465147838521735255524890729651156880285492103707372867347708301758418819829131943347320596748608561759347074071322129372600113578549186758720657044393233785046553931958696919378674035229295201207640051346861820202316570873960938060904035577912968994601886388234544209781016967481970258808520098859422737264690658410331460187922407735748461480131437422055875363494495737341474676816253514964314384596963977477196351796156372211577693595573692735879953026679495153190788675768984663588849997371530888823350827245736132571818485519708990175129743186818270576834195416868390514991349067840523994208235650577983008067340002221399838488239699179550623344731205367572325191724809641158180917962320317055924513431761376076908677406868388758950095111207036279005095477555688457274631814949933530053770139827646133025349151628277198093421806028615712821517653193169848633195641724203463125553772121895140785848215716554413995425418527789368635779877110908220015852569650568124667085471925418858707379841012701030777030428906225646078621136269602425637999830673021471151229804420178726712729685369057225520834048292353590244552275958329164900224497173620055063071652989597855161445576869072882219717591564559084918670540716429482803711955768971472941229427489803315870958208195028666163908740557918866633742875711318119883220678088326440308448074442485687539922587273269714638574175924211303790457945216696860857153452249133649215312887492008874674240726163006633483661219359891053048779814705974227093479717381130682363375282991515783218359449405559847753303369039974015446229893256717077098545439348142116558052690886437910399438686884286492410737624041506884541142525290493800196467858677976106875019846745536953274568090015701941313481001459275806880589358830850951468442476101000039263432704893662271242265295733288095849484920741717711310403305906293153102787177191545022768006078542856320466015361315066044412132142958059532289753300116359474403979372970983028475601975516498221282779218232683856117187147103212451116108564281634475693401916517599849667574991074746383963947088421170555134449586492823040059274543564173329999519186622128928142616153599257924839004031023784486530190625013185698876659819493070100492444689679039252911468854496029720491656084106545464917029410335836383745804825916031014397621486108996808618076071815355001742411132906819271740505350084052032603621192972988721154867192436653741640321735706959911706494142746032008885671650651523005588344090609545755137424289500896445756032998085009395658710539732787515515690397651177643768562574830099638932461585530478785267382674693234769824270377643138859536711573493492000603543196457948927461735005639814740694797940306914182983115071732073905550814667367751495230418271010425171207182257039307179056572425307747715283635123733616551007961557355391403555691143065120976160687195792420356639480572624419955674586344526802690765367355318806558378609710361553727702648114339754585389859461156046262369999051620228262014462732160652686588532978446562016891463004072857521490815807697667085352161484098892294307915181797193474308140198273254925754173698800810071920046258584417417360573642022384559489756980142362154893252854099401606573298345162560699033029639229608002681153967371478929733417323951727529793747098103176314020231990937850792594552090189704080371458505257764283176830424836248976485845173328216124417831334426110424738209662054935330769898355230806314148641585838447057755478418237754003055871506346343251873632767811706179801814968822196325549296864850352834687326483914775166691687306662987662127366430799026713783056824229105367822917780354321919833971503974471761378904872338765314288353256556211348466630989724059977777107168618526969181471933384521903522229673467398880642763518912239042569681966011528030912869709374486267925607045007542646087978166749785841347319043024371019908730106149031874603307231725341140260836872242861710845774011005851601793595658891353142224826069646913864037466808301583181903984809002861033336587078142297175474857436726561684309404504375132669300193463530147886337840463954479089034844953802893871175537494027800894937327440298386703196195985720343009042780129815200936563601747118339492097267342447838818311979120454080955868413629046669276851054905267705415399061153881078378998841464403746930303950848732610676842900059774618794612076570825145541242681895886824706099083140304444005807760169302992069149010606148281874475764954230620950886159162313366661651794601355030666606353359769350890915259189985996354513458156823727610229435926566763702885697571306591816697084418832759643116181796091132402025406553818567310943956008784697019980376745951974078318776259675505117379225880806884597634764358649868876678156640572642986573621989931318252335896993872404676084575587853962783247019062090432463960838308125119028923851299956454489627988947356934032453748758107958045152606158039994721500811218901291211078822784725444474532205881223755054818870401700515749122508725450404717983549890728718053147523587659375729166527577534793770212125972911477380577063531878170108808590359747343563367757795412214884914723998001690169053689298847184449092894417767746419549171287516424144717658854786659595309998169990762716432361017638970804594903106640238226318453579768576489103875913441694445668732313307262809500586405359091487004775657379061582594369807041304460660213807138726136737723504169682522902699057965224739895940028265996025723172128200761729051501992487167614468293923725329473071394798666491080998814178174646599502990899896439113995836290157110273509217498212006029819712744135907659337362064050041007715185565791603448052029374651080015178941085674788358366062052119063892613830679355771085189621018379107770442835680274726967428893209838238633335687235269748264260838525787531656003458234893036647687407578560449596334247438242286045122212770095927448023853453372390880835940216179487038224169391911368534471780293429040073301796995687129852913468121755430179429879625215939842325988796025464928181310389943435033146232580776984759690236619439465763842766261046644553343817662457954834018640452657996307167198242635084646354673977400713467042367283334518904353291377904115246463629901509240301270409851233550634429618972439522686501372679339599465519595063175299723870563706261080490117597789142562596687760214030017161284335742018627016392477647462210989328566469327597574156360961325649167120235038053142475220850450206117307063351056292838028895183727062724905663415566431763674626745313713035586417027543932973359889493804792000875265275968326746757629512454172372525770045997547035374756623055551087740851573253102921427036770345222452906297282868724148224849746518386018611671671508910815229795318221732014069876911768052368516911996376049027129416883243792619024173886909802772342751336292713159552768184047402438190276134190423416792071464129587921257400621174817872816087484887861838860582773314448656126147550753058071905939906610310539022261443174856742110881257863659279246749413245534052150765328193134618273431539698130227815270971885135623793032452088096718155479029185450720031501608597849806438436422226759142896574312882619459886338246442828949609696383762745484877961738654206317343387376751700652789332776424722873713667697882355837139720426493859938434702572520960150724462409257666869395215807755268215242329635056969951656538873197266409076062169336022779157220474838503225247784262135663082739513068348769131294142531886399392532092737378063857003602292069235944765479419157776993261172885641230992487579246660057991662658469116210032731252180728563854224696996133126277042670738667588960749010722249811735606141509132359537056624825856114416242054884663091954999107725528267567183975071579381795343863524219061806166391816617501746736533030566667485259073785887682719258819240680268445792396025505508127638193494836702870618515268657568272822562914176455473779454612163618659832660631588237938830008406112126207435910971229628018248016451470842847885312499391782154261285345416217645328573130303646971225444526205291083446579636902217111282262959277041756240217059115806707506652696969809937299031068250973291959548474722895207538984962939537647761691097457740408680286048265093193284763297942787856520310696135143064171124035556383089612570134360448926065239821322866829052769860547209445937715492097526529964133610359579563888245206635566169364826405763076521017111222774980483762301522377927491192623230529153538539611483264415659590272027498410335920343842864037379212858431270982756487099383612328124612467868881300606704763473241164027510785121343968923678800318238242112026097463783935437626195714278794721498145426558213164988114684699456076642648138780109429320673932566090300772461702584842034767606996649753430468063169645811445408983569715193906355062791803897772239608213717524627634374105225475920630784092939235558067956180691967381057181288953126420934552475408736519086382987343916283021572959807382256931265452338832896214467201454749920876295298892382095897843366563035665961171721961412516483856191723022754999757969012140936179746102775656880103951805860259677324680623206202424731974941061189009631323887968458266585866343467479811685735067922352885103617342411751402020839546969890231096734708172414143676161856297769736455837890369667722849844475280535415279519619728293028099045125031941858523687230781172954204711739318110452134552441857312594382928671252680075521227583879453699365058705778076433173804363873416455501555373167067474769435143736003902702694167251058932501271280153633502551297947787333328486440822770774717769290986315758749740000313036290798533663386237846585221665182611954533253576509513781387283277190956738224962445189692495512151615224455454589362115880368964082836639494870311275962470035958193837046516478129835361161508226029987361965914546835270643817148566745126635846511976266532839866398945659153163050007541304908987170538524541787693494282502508792355614383942174922255371733504967530574614149681383140426774608781026924558005592938515192617399524513022008336718743777976692400530279992023956835798729730690119370202847560099353732370545633850961073726160754494116951149536353306096896298759417688852306959583638297920394760197659152644960326396153444898958959363729877939363193731949516281174037411781309687040416620103136109263420184956358722677808678877353282927627752074591059498330665327648080298511603843179148497503436721204383244420923199670415661890062418107638985950683784545196782080138817795377235971068180182682971718872201662382806575055394315102978261937269485529769161040939976123773983409365608322719087758484173415944922352360451982721464238056332264514933315542933934544800064993660746212014281129595905159773898339563924815068187762129378353911765702587650267955769743036686422718343929001754382511226592292494410887069591962690730859270155545881305209116893006640573921622042084220722277386667890997623853388826444517448434839643068197267785211865710417705613540174008467712887302530161238877321288417758724104433583027193333818100829689022124723041612634445088145012619153884209215656542848448512884634771046805652629143448127141373484269928002185619734275107241027850512937815655224972637755535493864380585860012316138633146619916770644616435791265563183048904244856472775101402006809571325469529541172233626920122147889475534010054764020177900964848395511530105424442429489014207004304138578902217404543908224294757248758904146278014682546137300432155594233205826779976466116549166235852672067409709857157451855190355908115854221617660169812625197644216732177109086763541211901360586447347392624284781624484625429500473400159659800610124341526752624302106732006253701107447865378194324956390304196012952128017517415366018784602068683903400790698440133387272188864984156679957856140225414182817943692714048900691059362207102303173600833208436719412519514117318478163767486576379351335469648780195427409463217533154173587722024123648292518831592885680637413044074311707940759990587591438891482305375567876107018177766412786769492277893870730937622888285554305071780658925265296233501666526312103273182235298924470210958781263455032534093661825835101582400262096333160760606109046984793924708063600310600514033809821391807865494235846627700344662467631148564196125109639665134409394611364733051423419414109630048175562425111277874488042549436874385087821483342592536838179419517726393676724311214107829206257676253265379809764374156612502576708785671650265037394022946082520612029798903205892174619616507623703798955989770543483153253589047555431646936593842011902421471348341533651585263388972267406679983717394845082092127438671606906858117435432435769326507740303589537689921536743752059413407489073643042164929369106808895720090319082601981401284540921747517769037871557755033560590478431921764513916035976037686538464234736599287450009788334610248092417608513822337236970489958116237566679359444583317462776658852136048846095629237552786220568306568990274902942261452222868793085410172246589740139305754553777464661021326553652301698677771249324198853741249264481649682476155166913243233901466222213914135421095515471144810959055132288814373414341827370978507257902792654807485901005748458482042676556253325471984745683972999485967395193588988272938317910033792815196097252379901594107931073403408939901009838598424934919253959073775064454524248986626325048987232877484806882038124096143801573320987640028070030750124659985987052851570964803472394663904743947196463451995390320648485122190734578178677921398184199039990346715163315247119441839855115385516805235738966835556664477738360958208808948464129659006315153308093089697774132403841202750939454473318598697602902024644907638779597401983452493807190114692577088861821614205229158721882145414336024800724391619231006692626743088413802266979483786838671496443113739668748253651870878211470353914728392008596517827732338486991423654547963525569448988095626458021270744411762592714391818692460657848333935554488448250447204779750742545307693353843653202309672959138460508164609722747526884538163131146537278276834428239152056412992228751228344632559580572860390509725163831411440330366545352196553471247245654784332175568291707296535168641932197069432340634408088504204235135729657560749885036612559274717894627647410688190129221220134160077169118120999035646808851188635363449245622486611014315590403338823014080449052712256525241491346564983881292583490311096667361127882276791342066638072731367131783790512812567580512220512578921638644624254950679861228426081373199814113621425006431266718259000316609271456060132003361544917492266505248848540299366590180583897184181129249480390140618539501653708353062945384434246142291667553300959285904907917713173487275139293132887130277117215840656871401919475748564040859977222497733835820125510271569070407614813622539773661541217077229347297900803412980907773491497724394127570483503101107845459990911701866614537876957070709439915553555376747357871759266185573638156366683626199337352576113035024040375054033165233297900369065112080303372056568273846055059573159922976447921365192458668716745868503265786376050747389504146382112930002980188995371108607320786075358353728101252714476293352242605744124386898131863830990533221389731242550801905379184132017649565409911958745538024187996717898486950794820030100904949889574140207378651398696958665625227327057276631741738804515846064832453806359819184419042348093662707307789136560596426675072227442307245145054123379608292801555919401733556412798663937505826332799525067366527110351952383227577289161520326443346951134408334141605714381037216924012724505076940667098019709989946670313345379614937172293321976365004359439237562565003913807977512559231530945120369760486227675897358199858159229095103874184273042243242937618415529302321376188928188425466931905883313327028821314264491539898420185831389500383708895253321590071633271117658469643072807060291063913818982440450135529419600620844888872581259263218028349788384250659439563342125198589189126920712208067479037614533415262167264842798757941389273136320145497002988218524983319241239929989909123336747121371243289040826194990591901079949339240050080305007611657377499073289216656169695196012595216136282421882324063133690372976395760144066716952815776396613404233290764526742686113310167078671015351834261686854813442150310275268606446179608382019417144062036430486559359977244248082732816658326993115231368088562511810577156209476952641639151538471321872028766189513792779221107052818897255924772962251096425230001587928152351197664379891717030113167116904737623289406402188132402701388371951848450051096054974250742048348297645811293405594555974696870520151332683974039414766516641929670997483243631231627022320375906672635165986499252775680089022501929049168903765485216351838087474282928624423987424252932967274078610539666215960705467664709274585052746547798382321558686338663297948445910181502792496076112105685366477246222631819926678129426754561266122796248790122241990417711367612016646034346972196254649833272804539382899611135817222622427642531939176871449136380491819442926481902773389559937577551352190906192863037901123886523528701746403062623228945135491302964742054697345416397787236161973453755700606235973818887003545750370581959792742572304149179474369191364980964950132816415801353243682023653774594095430899987061289932567743870625200188434874452162020050519846642961413908893279094914994030714481637792245063872713182933860034690801635196200417603431859728399429437466411958715822992172099788288454739508170640795487412700927889886401832068351769019097484904888859155807837101474922615550555717052909099945077221493438787717338390465320632283778624589990967978616347036398995742718814833613602795136521371657296734039949295278522928969106391043486291466438005768515474871063194471790350995463673014780712028005450434647820416452023120684500959382537197378359251426199663316941849233789666753040848081953369417645820751172585480655414772191568143330620851705441743203401297433377932441641184369953511977279809045675700792909938472732375440263254272645222613557814187546104128544316259495873201116733809030888367059214121310780255816432828664995588627743401566070580569615532622872269340691708988693180324897924281955508915269820653738219497277712914461209117050812113627151270078623014333828096617257421957325874658656013719363761801141628737305922023542784397148720911771307386869726131626073301320473079732007159921640015031065494073226387087246001806729142967619984418390250173606162979007075399231931105879296120875314124328465302223919675691629575817052920755841360874229585795855434922299552878451406635069361539596311787676849262582824663041617691381008313936080242562542402337962763270208615874871927913393758170649156618435754515440609776712396041208795031859458069411496405505301060325475618684305654008480384819131147807788944661734700304412110942901244254096997208356489435997685727058744111512494068615899927137861182141485173083564074472534436908685131509962679881439917773743107840407297412175209142467012894459430652120396581429335979497018327423283902753858732794014245816797631362549712931299139113842038484200369824777101489734129807041421199670112720799545497845380924737462177315949243953664062650715566087623202814275447025507515332939365022618004841589344240915163274051421681153590837403798016875166422195930283656539257550647716686381585216797906415642005073500406020340538632222980512779267213781690657328496396752155579284570239185196583668719678013701443844455794600331477221396738625825104543706922348794443922167235677334496556666705214085438975373026758915749215595050265443272056016323344932603735596656718099434699061716973895189685149977348509455407409812198224883568781422631974963665330438406554184695750450698805715535107534311786119942619253702352586439215954100912980807559311966103223296536429004256127921717819605494493596497670166897379658944211978182016355136815016971309705416357268596127210183971548824952670510130397894437929435107842538022124678678342747515493419858267258757762254464836743263987935976785113426231515785413491036648598719352213177502241288467479936132859490188323726254586758009274909957158216182086319412567107629728850636431414997146784261021929576357594637192095060260238205505078933039370581539075787685151803526630475095801303777969960286793581889778579280865512846009931892392311051303616567980748297221784396655150432529601761919574734518664678292759902417924312124108268474593281813251214450075521785573431142707890531331618964670156867343102571230592933281821660015984332920131257785490195698887268678590628861600048311540352455796479020522074666366514277670139717952076428950940113755965985543285350207240142884077207985966908571395019914204129895338015502319221049784005998656624196829157888279141044944629719703534291059900885644541174549080108516457835665420375197669804357884962784837167892641506925171243130530401230733651534866888479796899996556687693538855761021816090198272984129324258154777140628174915436906039674846294889141757092631072748358501399964877092072068522680387776254216624491832421352892697034895473501322854572707487258896751660862493237137810541478935175066284949103441002230438607002774431348813054217180635416959865688465005500313977796966003508641543711426107613423978508340427403463647556598358816597255189455606265744573221653634871188994193303456978210977746833161069276580930872545329068479403580801313235647868826580300210827881064536919093345703659870184999747605496118777608931987878072039887611785926358466500979508552191098402693620977527863099560273464001992034235978164700671965268088753221921063646862938749954210233730026831346640333652323546449132360870153923232877951814736390194551919175804476382511326457757912388445616934730876300134731118861324069494815982873672674151306577374690949005612961364832018658784666821505629455271012184363749815665416930232794084779325975419276994892279282211933705881979607891732899688196139638475325515510718374648291869043581143972181814420778148433236397661116197368117886940610434248244233557582038874865533044772794564625430732436453245066963312896233820277336966472802036950450159062100629571250719813944740207662753826218074952727139882091002417962381092218327829427817793367593904673016636641270395796980144218565379092054322442026100550845298809275245124844836795255090394227638430071263159440803939397685322859702975104213053408471114157111293132696115528575971992190129165092318735955099712228328238160588002553707994117018750133699070896116743561021944742377318666559056396839467406650799842573025800897757213592288653060445758744114966565757398900279502735781248812238309145538473536655463955758227362167086252954609318181515966695832173988305127785812728199398636141045964350254485895932552683841804575498702992768243997964276462807012759117687832512719820425505939659383372199815005578108194684374150369172708758226489553915168779716406541902404405480052095983157172761308086907261846700842635996406401137776027833921104460932284943876328434116374613584099452919474750679986113863047926609182707948812711194860562985959625327253780115306796925618163748758156488724227749485713520829458167877324736025618129039290747057819525066409695974887316454793784500029963375382888590812224796416908409524382200420211571426968284357496576937853484214899421839443390031051433710616751496313201921082452169835679482993324261975916682707239027372166998303305215560242813280484162826026555862767608017166635352854716879894289608420014043849484063367819817510626892961585266876008347529213368580344568900178019509263578294718446470548271288836039347800007311902953740800726430349347155480946455242901882784225728489848927896009022684537757223598940460669281865419546343649437943003629781768113618666787026477370274970462123698098008938082049991206291890148417397727949405789081385040062170784054230410641747592425818879623985151316517018128204881655991763503132603049627925619177120767436114796046482246892610259100489014763748493486550751614455158081057986802992018650589464070653065341532821052396734073451463113695948044031508442015409593845290863459287218504656047051084732484721546509661535433835127264650948425546098579946390074751157166660693706027308677474685173942003343627022453179131621278017777308804061302091411833220571647323147278533384686817611682471034199049115722466607939157995486772867684880613416559892344276228327327953555635496545427566238525802869386451988750568304523298540424095875448269340554828731969187484200769105771915090694310017917967562726141391123689703274152878698508283860761047979866511143512160582008645806926513872636057076568902277295000125351473889449277220326882868578348945225014013678853327492988112053134170605071644297960312496140687584887104344538187067117394590494581194970011442786207965848840878041338202305401096843574194792887718721886521341053538130249391525727635619622098834635206942970905609299150743613061571010808870348104776283198496538894160244409247883833656173583532626207122624727786427039808375826355099741905459332368993510600948561064917612985786991022458535789122969832054648078040945771110038955214694247358222227468016051209679942115519653005099775235381290453107984763102411079745555499513984547744431858746802463204754660507447481850683888718418710542494731999664622369489527291751992863148635189268279557675948298678933002549821447064404468522251836589743058585822208044405364477351013713708925193109317126698597459049787611889506644790795676573227902191116747492543763930165107996848078838076936307566735581024122984622551425840203052442418287300628760837836698854854687111497956945333862987556894412224500199814514460331086159408007941351660926454599181366134360365849494510747518251964168691296372327435724115383563868622459755351317471732829050749089110673344417176065831091452364682211124859545750110399827129457218229365509508340841102875636762161800925836411266343059414388022876565825477106483262014583616364098021237691909070388420228688186097294760600981453236411654978922189865101428379941353254309120068308944573373808698012821162392605171744568202036362171040973962290126347530937468413008140833085628485488976250548176010693731403130894605431912771490911393746440637023927633652153718836425916305193760309555644147608971538311778202851612857603747273402194720738259809791843386570393278168505725118651351128404916369101196786979353931933089772396639585842273841061534522248020201726070274365554258936503977223367446283857587852125676462458527921341632593638155055505793064293320748734604684439528615068222851336972086935519201405487636665941551413809769447876602060171478931742011441386102763536700684904589801961639668315795446587332608929924750946819515077486669652669195828433213660184059100158616869356197872557691088295930924247803662956595835420801458326037516934410989180088095830617631100829573443354110104506833578041380565133412378122305042567115657125169123534589649089105028864307763352512570197194550569312849682993634736130901147950105412364268912369989411031564545165572031656002746688115019958512731283805052741700343138282804374031134473181815386633737921057400200597824793728959139332846985959072766637077412149743306742795585762479535331006051119557184759762503498595582354254880525856855518695926193883558923917380092436319678872593636771633354731465236393383764446443580300669798317864211846466872472631736632821885038092267868950394716527003132192363411231119116915916960865268460624398623449549044976226162831536564420778470283479497167110572093825908802061637327416280714245543075085001009283640744653136901385927332922629363530358556956748119159907096641706402977714748980993755228788839444394007964941931824052688415561435384903081775488019806689418364929602697639350275266739526080369736640494072198956290452558721939600493226782021175580596609895903786837857743747778652011371146890508392847520070391878706131261571870492088316242322179160191884883066511495882050997656063639412755652075748699300115770941563529949866066214685284498386900267513122429462113786499445229020278020030900363923876500003517151790853755336158407990917599908048800784753117952094161775859791581273908252802226764707121640950255131839990720499037502057783135167289953352169500954524216764376136789397518123698998803693731968488114612829464019646898096086664994547130032567363122664694034981589058792228964134700432559516733032374930953037902473845430669752908897956698353486367530626426341042128836272954932520025864505165714967349522491622140644111859227803417313359266256535205994148795771203229844882490640921105309190467450224158215878356358694798344194826144646719576898511725660557707033149123213790586146108916404857274142018279949919803762717955070046503587016218093117317975844842452391985603373903879278453595578762890711248092784272606185196253218706419600026779899367775507742751836970873783551521441803399756142390141075722974452351464817830447960679277317145626394846683208789905493489822047653705984367000472014030746324478383360908417190410330841242483936797115012453387228402334735963577599372746868359139118901750295276436962927181183722149925870268607812258507807682838403869685364595891822510757495685380178283456933209581860775888680994445049315438801859348609074192688689609558678714521055616082204562422767369340839005088567989487658195198978666135904942952784141442569209412939517809144970211229613872628232394635269948666372841001944668246956505316508554080510397411821027797443813093434608692958781847575001954361823453987661306158339912456981364438438778761015133147318132255564575243690836280511740363345182905912258240705092605518581475946313423763538519360246388304815666948058882812005120049099041703021946548388822812998012479272390828783581957320612621302223505644563786691604340245904011109342115618612096980973281751795885794824912868055752563886376517267912004330124505169765791724742224927207180423495972198052853767632543191128532013815898026866097559812447946796399231815674438555256291655586455825558853572726217547689110054323417219469237924785075556006804672630717938040068247333423523248461840218702468910027352874881287621902418599551648948683360853613468632358416678651131841024398478088153414866688148019317024907201109332424786530147054512685608466174340612500268395234284396981504521042740050019801123696305981181786595840052852235425424727022995038464440991021213613809298047464370498280307285433291728398641901131885260085472636020741314718989214205625030012364213090542032290987983599234361697690198065527087992317638364590897008028164297316844990137125838127905974035767185058054342229670613725078485824115526935231887184183625037297064976955394286028155858934781207422539743959650511158085718605367312545910714162212672046089461321505899352481772529983531123255168565651674651070096663481440683090299897564196265246411565938878556490650218749466911342799905222730859398782479119071370973550549239771997780297417228194049365489838924341715147528351070495091857131540007845135256459661246873990852509427275933421554242428977451560555083742970344152391785716890632740801495116160181307106693578912999814325899008794517237021299893907798483695131412835554124280969304759393805364243566552041007259343675847732915619497700565882306924891955349156921526116875915753006061418555046349153617416143566944795419796199885446043012664087154623222545093288180442597422108488423580641548786511325756463476525485789041448825039066471237047082629645563637427895143113956820340434405984369511997340145231866200706226117408982715639315375701146228061827153547440907155915906109889295538181839184802397323953906844413822489786450084134880915225332275673161794477983347722341115862213222497311007595616971498578078680688337769491038167523920557156840083585164283349035482193780347284951175153885514604249917671952294764953665743700765337888207694540204723828791281400642568468291246424445729706782433529843236234058269674871369979388008178439646831413486093435543514045767133197386808287284792534560680020082137759321228456437293551756025831416115404917282388579646140104391853637316056532363172097692480598913864707919471252876773205941129768397522683188196383025193843082394653727173789283138911512781732882197383235630031151961462723173582263301658703018100955434203575416435558742820224288558671826658664920482475607867468936964873139010631588485240580701198610742402425344771984399034518356540384974627558901769869302027169810068376013043857428921274043179631807814189864951710890799633710648127288464845999834133521525902255493219658405611302704158792399209868564866906355273470628805310746103182645894763276931806445382491312587812958640198626264140932881242114059243774306545239553275601845262016981276102169054503389662572069320941367371671753531449558742413290589367172361993321111178880495807772296387621173440779757532795363057161547207159718864728034323676101394591808728901786294286393616495780159346406761465712460024600479397731808990608072118635345594883269158564708547706951609021408161274594169954757647384518725112151282631135805129917013644651341461192866957008031330649122412392604069184787673145185859943666962480463529597217747854066865755873040485962838943076139850050404913264561996707218068821581211414512666991393904806916624425816528011916480619152279914256100318305838619849828865785810593547164453342068184888588988088273396189418879770073826114992613784726333244701004250951439481881554900340187577876289436409236406668033083012824279395937280652253336951162592083372371647050602335273621702312150477571528521644451328313653095522147318313013031418049837817726701384112937007574536825694434406926518935286494506911774616767534379379205198894707171650089068952527796097461944629079538269264047688299876025352427822380891843389415063405011692272880963394231725067552621003273698603993936000628272195612101911079366077671145943593488285746391004098800645541734925472117021790086771699479311890548538252286461071336545961586125943182262222171230267882675163370916321357524935257623854878120486339743395092539554662105267134143748748719034498137348369837403858807245203687111009028202518363677652509667242423966522305457509054117052306175097301225233626914979270874148497458148213472460125562236963225801661635260060118016139423598529468510226699144992318677923003256921132335280553058857352538303344590580398067365289197343762020388202907243097356456979182288136470774068450616230717746345730497465548416386659466352519704995662197376145197098839375700989707208031087782659704006355988006532515570004256659692600432873791015400833745590042033359591007884014447083513200996303555616150034165449478577286824078822682578983438440911264191274054836825458462311222116109935074089322263082224282248029658635545661456891241180078665958863421136415660131095576408321743947388522034298931383046375209658672922873791632843322540808044562912060639314884019184418471011757135279089373723317945383998207300305385522808217869297537912787272669637442301395953070121855039300601163711988612199667262811506856923867492492966224373452796508740459267736841635653079194716751835578211887733507260099606879463731236410192468197469745645961354553219109588146328500557976777102869881614461863195531794285359564652142278254816738153506879081994708673961631970865512606228110832691229092681296002842708948791757387270182591235441487485453870905700171018223335292024810966779803565796325917806664327650122478194417080606067313214460864687683867430939101618599404295106722902296008184595307741732225011154804342489740099593453730825000525764273069858512568434342405134857827365961920609907723598995223372231017937390396074985527755056622151662643464545563471589080321529352655729374084602118433661461199751471988501248169577277377168240140769709565715165805768537319058711255502249165009252052777551859892474860671474753469883577811110270172248124513328188985284108666636193441455761353325982503120645871150146791511412949704106283143840282008893289262059784388327323240412956999290363392481679338615016902741584308278500136441926119090244843222968953546701613252529421657097941533008025502242210200980115118871921290835534681312138784133699464672848497126011275621172017339968787487870296211109599327731028061431253675235141134283715533922016325552452834597735133451247055503607031885924913325670714144340274376692430688627890741231855657174464326107167921166325253578625549072554915459672907865723708074549657268253771169458167739190904133167661433259328490572104239209097617429376306321477404695943274413319515936044692753877073195499256945009217034870651090715300292578768904901638466765373671048714497162499493751540890007213938220683747153137503142924405455146973921847722955942075630148049461052551875800159677938535314114054009363104835709920504671034808634151173196655438906480310807842510394212628956006659081684131658343635781684682491516310675119529891844083108371285069141896341445988157271362269870045991831707459083126388684295069013224869367387337664790799258963348746288052306728835770220335596992408671802978166800591323637745631330846439959207825068331672537930395233341899602473945514106818107806186509113169446424178105800967557664674799630783259823033892291504424656129178869088430285696851200011524795022082611178036077515451976474335273856525213787562540323865185652004506429647092470576024563242815760358279724108887785320392837224626517659959546308638979011780286635395371951780453674563673209476221146283815551408617145449855957133670174893943734698951098445378115516945435601431878809307238254388898506814474521737471402326760325049379228921092247900157271907575168378518902445501882196611677198070798997873764916394054076866834762219515908481187094772214499659031631095769696151468903844187588927634039514308958248626601336800193171311306451431140100032194277355939064983850354560804100942686165197466000955762756800686728407311701595325457433176223476895311990904734464410531229656092480607918738757213806789034183053622776258677962394511734324641334963081443396719262152652133912761302404599406271121233011700014355116923133390223016067000083879291898862901957442772383851241885665565931864492275767940027658665718822705557849815393045169798543137673375566166030121815476325602344039557423810097422702054640201228792359556887655775115320754593665004046959069591979774991782417563843561317418542770162983258403878476076060720728239168080222369924518731258698016463725126900703791584908685510117279816547835434860919446086304571602623448927029308652764181856636219691067412913820661358093332364487823896000071201150290282347762300141545042062062240417962904778586811433440480753701556350699876929457391891169614877498539940917675522477867456406207748380059025304686117641921791162434168172211653310105965858219876253402388719892363809799981162441163793205165021411997818524528777429302249783447373129091653204388190274331314150603645296015411421173951007067528787144218578603016683527960111742212468420820084682310470003860693990458450627162296266207443088316094394716411993551411129542810455351680766877836481326227927541340772796966512896052588642160517387440908863665642950183061645079774189436766665580733023826435189819416937008404541822936082826482004245657699497884273973458207699507338807121936898251066451361909182495376460711249048854285972961582940250445113118906891197463729308743736880967329553326967915718406638265428268450019141524444778244129597234781839970632402629756033412133980853829838025911348413606125456556202973519226940001343408058553905038795555316822440887282364633076238937354940834643502341061113287043644670903971104539575929863077408945290284413801967075208615696646413921667750242292841367934022659803276090188156439747536198884017743485561449696875485433449430265000431918544713660910509387516258459346827229941081237806202969825276912386819097257818815977258230057250878005863633864397312251608654185541577802228180092771606176919226271966731122324742661626464167678163561501664253756134289688590758348695700077113625660371602242353190665484077718134245552602363807030381107615728539427064943959413031098872562500424207587547631471393008498332926431559638000250895839888650365060165392073996720599131029493620971128354897657492810017592739123810606921005939592837803552715973190585865243010871026866117924689528518811718445510281530760000980369203629457980027662721790258187962758755401106508478666747516304763526150198804433211481429901655638468457431050282794627033257690665846949948278693872408904366493669798695376936987695974355650846086997091929947426174526513597206452073427904734387434357387946203332381236798894157827915521176687539335505753642804003647654994500951751221293130577142280189211774439701436139079478255258870671849108500248282541215093444126344579182173261718442032779025351355343246001428419133089492276221269156639948416209037760533441938915951319932851888791656215929864632359074223857455810329061507811803625289349537638494441982025170664375055836718430180236090599147518347197141700691503684035246196086386026003110808359146168348470198717866060982922847619812584965178021222403677637137617507420517987996269135746304693520195495665557929964867078527707486518408450694168877665386517622226782075260808767372277420185373145567458285225845296578860634888012984522000698606306772337270891976187265233730365720932239607732311035580380840705419152226433026321644250367520618110444543761552802020008407837968033168043445730033619917959897931575842628849337299507996590020522347096509324480856044071296912211821469691974557230668857698230081296930433082894566128622923436109245467530392289402343672066890036722167154858855817697204661033961359250074136422109375645337432993830380518027528554825510492503336101680399010848961305601251088862964851434683798759313764283337343509277742561250140032007740279736716997684690076045917096506401190977694055033475704275671421182929303168165097285260505354063172275366723466264146676115558958285325684061837401621908974370473655442172280240942834254653524394142294834863401074684885184949361080960431253900795789913649743797595063868526129743530870786240561358399753974514017697750879747569016607893653535558720693411847023148627244008205329307815501895001637255100320785944006650778233122408848471565953602098530757579229099664805092745829127105021447387604189415338821786183715983606671574346682030195554149019016530796205876917405092788540801214857376339526806766501923563445373632584722078054991365791249474850005198331612213832719091541833156762374237531157993480812672317672300398069175751150933706484148096620747039160182477992779439953736300692695694507109860198382031089935852907864230903677721815547981460546245508414861395572787107191705950306466184282269975497090566032907069161462354353108356625164595171579022570799325249644456461364253511694939360819314708561813781711928689271859501011079591770420498606566881872662961862086890788044405762775049742601571049270640679560059836002373813367840837997235191570914487641277781732012627597426277867786939259443291801893681256128534600264036072876602961976171528902825471779196266771474964670904821138919285403536763015091979359021776555529789229946354583877517643511641180194345575352788412913269606096803445409034977390498567069350900260487793276937493129288102728945159515485673706529651369644673673749778737843427117299962379947933106459346443951978546734725418127297885098984775154311187328419482564627568950439288037649524769115340130823642768262532630593241286007632589396643531441034769622968174504721825965305712539209665973155309318099088900640196816956834428370822570015579294181099855665959000265398204703047625933374083517715794628879183260589570263774719748825425960900296697960215561701362769257468865334858386787854152619954693960059884212139934506051696950979963190273298231265662726849786443709454278946622445394785362364166591374211725825680264039271913562994113949486619335259197762542940600702705993948141530083292958040745126739705894476054803820106334396000935125746009418591062189167444444024261493500933757733662938064357428133573524228818324552970796956762755960956343549904422001523555118724310200361943690188428271565321640770820601877876384708361671306656491189097884110773618365135480883544578990352316078603417339920804431709000412459065849054369446651128471108826302274404028250194607301797048995451737250616329654435005192635189540364197420293728780430835417032936417371229882531995484089164854396706503795682982858029810981714090750658790052894165754067310375381402263422860866735868841876184520921127307662379631716161076636885789806311089830693847780566763585595481968726498028354059730547695832404004046939260086486754330432318419261668987293683928777627436848598666467861771613319078813711210116254008046962818897025670206579453202057218417665739332737971094869291975046945466308366110197972848172204163681513936175484781265559949705953797988290847371023246020458698673794813492347451803299690155239110691129274369958370430487504567216440180313182278828181321060422941407213813948764616119996402479250949191391893760400021800020694318242484980394218824801255991750586655524336388845572009570497057984688399272195230029469097057290870693576992841969641316898915071332707874260693661698135370030923850552911582493345807140578751593534297973285201254248852520861000508163527689843986744242047534328519605667972564084124841192361745765790132076788863844961764432110212947419014264897132373266740449451925343237927983541008317496363664138050975710352199394362185772906154896400516036275925809213753943409201157607933066375449691079683329293191758965653698978599011714456199216207359907660041519344937743250556232514625432729251266057070595334113413007167931324603350168417504513534602684301473943495371113257412881677326335314715781759612711105767215775869443939051626090099086641559945737060958445813646157722940189462272986573500643052410619596825532639278216657395534233876388183994574592449683582398074442009638544977367557307875578290671017802008246044022372897810919138558535983298223678222497150336732523506624570041168967695352998937105481610716166241579135944668949769873768772288181818160365696302435399763823934749479997693248408638994545966541586757456066806763133335022210902330963312124336865737220887532765321248863129983885530215313514128036209473210322476527134808305454646907661141596771009127280912133139202525053294073072030404678854586907169130108336817305778411797916223274456684158306503327968728307900854624180951409305644957738433899212859504917497242764366656340936594281451140718343005535425395117504882352987734503704629101622779276657141958159805542018482494308532889393389260829416330755556310808800732594014211488427749237994384585373022551257378305787047544078224811881239974946084022658455347649968151497250085482661657125431892445891583283237708364088988432065241591969116537833391795651763991062472149938476826500604632312681303926567530916747650596213851769156027607893183549871109457065584931943026325248602568528510648310223691045498074423854045606171242835867624511654758293103585899037380347733118721072341616479675995089933088960134127460402411503568570552375170542598901119508245534439240109059907556844397053904254931983991673719630387509621149542283122640087703274445835534485898210264265310645072691955222078191501420615420915897980148751557183007464481268121380776063760886091048111757120079597481137895167570074108484253272357060729852032969258655402961451013166617176422931236549016563373895147688799623687501587773421415344522296966663526403940655065833862883592525438471777478321432109207995118970896119836837198569077110992237079504209185697637459075468059529990390577154099038876900792514927996703488474121876354071384562849265160179496594074704414223385090542634570800322596319453153145082580143445232431290664365426785032610911039993457403643638744037825132915552937656099341409563554952766534755394961897846388184771620879431661108385375279630932378230009083928210260440411727837547922220288631181648005581828598889092414524968982047819917948304545200057943788570323059321496139105252354077188205201211341379340990047073143261802940184624213596881851996904845394517264416855896723235899225377505014986692154738273777531999738227947677774490826116213335982763589103836932874277023289363632835227689783163405113894068460464082819402753371184216741452703755189918041390789350731860228660592262913959021354790806326546927228613927861836525969337688860411520027134485492534090916681954503761466074566917255655851896529992418555017397092844255180582658346277822874678054852172523914378645497660745795018104815399612302657036827696697900895945422133747478996894942873321355992062572067046169659478613822597644817955043684339893195562648988751277755626327746414384589694498349002484138573774859731440715851339410093975729009540527962628292546286639071241770065462584418800400881020730849433378571026863923203386401342887831542851814352746309602244712730626305337827272211775229350335776607601953544618486556310291908112895524233996381615293712754645634632600630806582620645522187890425132995114455935061875400710146558790766919943665029792753744100747291541350596306022522736350277358377205686697597689012546572012469793192625044955259573462434269112945819415934209937902943956852494977781684501168362396803071813179464187092889831774045425747138588378163899601602387659987927252372998959147349383524274795318721285320046401383010209345119651359163260038851646301167065803899710045379156417808642459951726513103220529886299891139361132128058600802330653429147874872883143696470920559667562086889907908068656384213854624295045550285480595332087240203058417430144689303820711307037584376155527749300024447372022586024088856347895267153656858179079460575054449231068172650791380879046339662365984210075283317600970697398829844588571216889963276327041049886113037859665584348560432448510869611570639991362151906123422636624422527659755977642373711610297269458142419643327543310821913062794032064258835369950272111445673605247851796668548688052511137251673299173296046173628189163570291052951109936208717242955137045446993341664122700394981525305634067500567580296801961642095594437876283762855989722233314720876326241553304517940952190402234429534299721907545920939541208108882976552750648042571776378057565206732610219043661608146254377135416236532585331943738149097777926746325346524137925866870007293505507785013057824266594642499999781628120181017980044849001573733162748275086165048383150004880151735733390116185984061265668672283012522260242535344130825512121997996357638090624050433055663605809733377364547041891888197753336811403608531562638659480106662220512111818894233099513242148544262380143047474362877803724547737832437774054651445470942437690080071255111033246884382822092386430679554542506859484940901769835005180486402446233686738748797622515034953440010163799927218686745343441341558277683704629192067684134399545524480557364548576555872680660514051812115822504712122179890426253446838834741010322617682338694085879976304745754771006606940172551141201506789288225734605999192679888576499978300720806309554480937906123129803971970541516689551336492554026079697179196636742275092796212143807155544766975001970401958583398996784810614496966963553483263694474203537632107544721539056660302154934839441196836535979012608870243529393506323940246587941356262904589211404932027994350030697893117079567262879687538455677749648157833366093041988263942108210141779068046824364610551491583173512256718293543881987635220111181129874219698822972131387598996486011365566281426107136698150768556882365012685021187764640595409317743292158196647357825484556283988364793536016975419957731985078311821643377173110361533877884671491924900761073983680396160920975438121408055849929236421610979656194541450347208670864009234176819886846578237526519340731160919628336750194397704015701534218079878362722458980616536069803676585429436312185235258374756683700624718025309203217120193810212417097242280004295819527318244809085186318790305507736029954809247100493937600729519894470997457337623405483251929322632805280556120994720250907228065101279720672167743479415827215105823441324849142976691637209749576549543887166225799756676936951534663620412087380229778382849568726956354710781241897179885103107576756701844418682877061123642619383720866557900060288735911413946474619101630021660931892049472999928987251304398935900651752807308267670030459116734742963113747537848119314546283292233163732624235262351757438206310444550469143651986049230951791681205945384518028888297459145298467780732422614504513847921990480517298032268298858407751718011194977313311373465370103919683279451254310744720067514861743119912917974985257315008928409435596867507973324353858910798553892955774297357101573290597881067033003699278099032527767932631191484463217036684522873572296579051472344044477455669127349645476112448650171849239516300806805801740920516547343172816179727746742794515696892157540781803386624312903246141429271364635847990498426918792606553456504188943671489585808435350102927213513312018208785639155103036391034489137224359611459863566593362044063507614477729213227583581062335745788576770293123872013162122295211894023404061256550250185827800974237070950520828346066802895192364004725221173750533145355894869503725695410673864493967770354882612122682696629074811659043753847348472519847442297258005930054335902214455752241539815500456240438847900929417584085985122152642634731017741121688122906980613519398890238904261113005560585645434876294219583473874835287558196837839041008354478473800106537432169031514622337037181764724594930240437808976963518910097185495068382552203275885387809995783394259303220613874704733013763285278596140079546198046113603282658766488786644249622922906736033154927067204502148031111140319436148910444728873236537966340547429844905305984957119373785099604768268829279422867395245591112612461760976867900367177282693987396982670712627997380619589271479655541674887988569951164081823477373063822121593445068173520684125676483276267293047607723858508607091850595535182431493937213627394044858607885777030184052575018940950918284179022240994113099350059845948846154769725401366728067122361013342522418409013779295727201478355508623687475882461224048191018513152317726588269213308285830334588470219559438609229056420432056796441828284812601394256643773487991926485985151445219002139201004802491854386736422014334163598972149733863756599311130522560474379424741205139561864153412302209857153510802064535635757683202514174269900272245546536962784097305448625962191794267972530488931140857099861658905879752054549930545546054219662588182014909717003752207674063509122693722221090664465853836738743263190646678395881024961117911945299200276098998085577824910426939265925172373070847909422877752452261586040176327680753770750819629827847684487244782383080603407779804920820050119939070812724515766554774700394283025010407265526390658187493286639754446063758196749937672840881795926988727771088459690024603833396476262715275617389516269342428164518131568230835579098744685520121632488141325970163361482720058874837900109885759444459478497501291515223219464859491783687638682411767503234679199927953891275209469246711308181761411744435566465287775806906968757121077049174987668205779093454404236800676967681316558589518025633398904473302530392065774307482144027388758320715895178753146644907293682010704989097828979802937803641391293352768505039626947696312345743417395124632330571904930381124095623885017555642424915234810532752023517554753961074914948970654373999221103919803966478900516207349326141757741596206003222890489065513096186343744026662468742767111064711623692191223117446306387748336458799574425615925317373915343935176674052163545839069534192229193026287618759241389593428930117593620715085331155891788819412066786278027923411547867848129601207894260088726622980450824145271496356100944929307427378949851837347112406617054938276358541222331495422752693627759283143604314585427633771717691040941834996024133895536696242770529906545086694119175396696141377215844277344288241885843388686763053258535128155574914930202531290928175921927135691793421458757383755436738092731487206140738929878073296736607822047260158244376927316408739056130786214816811543544054055912361075453610811812400189970953414333438337692815359703962356574732072174589316897708141923321546864446965300139895987425309091561376871603571605162965083866523407705646486142949968094873430734322979099551116460681546254201182602446145096661531155574502597397538851613911760094362839931994316001466070912435388129756079967102478492741433887822026348550585286355095633823896580057507334611562993555936933834095935007149137655990064785645996282545797688602774296702540469448304428563545684946294454985190054010709775195232837265833112072478312693001860199659507309139121098736054252395957067926526866092516402536799321589537229171099163473302719605397610234491395194836536900360988929628869323153918418626149117469288959006579126563345781500707722946879768884946682156211382826663029241202055853156841868123328144657122500398169598563709577302622452706605727701166579950497326566837735594915416507763949119296796777222159276888373372655824785302028542686357691627643146590263450323299881612496686996180681257707695091010055771923604831912142156785466331506699815825935804306917351408065773619885657965405823310710804571787727089179503286360163390305237908068410767577907517935809161148232001634370299616507540060567620784384941403787382982418552445381796450797186407426273588849610616992443180305110256661807071543792022477372796719012996121628685533205291854964229173472324346297976015133849199881250328643017925924830038891488193162605491982785215182813566619406449583618396325803670546671806060124580106539089868438246043099846705524914627847837649030834346106311567581041377618950610151790348122044515292693782659295767428714517596248078623956870156819577727069711773291803764583595478324325709358281601152199278215885714152130543107696044781836167376328361251002855410989560864154964605081251176566904768454570361327905651050751788996648963570307076362461448804398535217703939200219932819706440295745335551759004267491999787512993104428262435425180838532095160701678412357248297069242089450328353811455833648851165371698366436070140848440105831955353340149882215295867567839016305155635724087924154384883444457069496353147252716041081499693410270191788431012392691217101509571809794960524578167014010528181116393899563587945148135292643536289050851728174311949716540015712898781289396589556899770875460963874942032289430200124413902009046472798543186169159435286023278798675957619726253485368202441933484662497976732650454598398084835654349001827439522207724877121024536029889215419411792673830431300186836061112853735791890986466031218218904634603263340825454256062309830570926818694000222223589220957078929636597713483208617937392137550597334524424326480245414599073665649670406952159609321360136316046188621921000712923517598006171839303081132720281529268070768795344746613191263310050636649713956224269209479577553196137603641182566433066297694510391808373359601570926456964609909012481265259033783438522580272627568848792230410121866149494423824979417442323984071336875860871218040149955627985665667153836560397922323430341128939390849047220959802365438057005678308393363028019213427954380869308497804816493406880818160148905410015532599192130829075864641232729180138440586872905902269646923620588337969612993176450617483358380469924541372166062618328237550882137118085228279274460241815982077243883229775540418267868867064023129114422170058394334916300897274522866635688363169692559610240733208760889839058202284625783232302325712458738738265530890244287910280470832558888009880599412226725047559467304939371510649901689272821029405345360334945318832819378864699569111570074215442709400615406348575308881175992386289113640591191790043096842934033859288493449567062744486023981843693949112244860388209894301218400280674944940879988610614662662065542105809944232524179434655056582694422620340117121729722857436346397065759380925961782631442901246073373281740802595480845477676184998100198677757811348098378331270851659372712602615140592476321147966547913512085049121523541533502592643268355649534281269773216733215193050888999017701248332309781245040681184507899924755417984208460782199191043404055624581682249643162589239831303221795157919606214871316797634594005617276776118705154878926148900499444723093595661543394906113502089984049146608231234300477648427313999169492310680302274040230374244489514466956897566260122084324804676993620106638308198945086197453228963577482731725662162911077303664086383718204826943077180704592625232490907066793299107891985821579117931238289627011994161446941892035808547000773301388463684123225476011583233967111322513406674912075197772477685716704465402043304581187997622629221930919707192656273058658410478048875677928083807271229147749043060888334782692600524095042270002227859523118002097418585998597060047132730901566746092592087308075750212540284789681538276972409750970775827353663919727118286518285236266656123479351868469207748574116741630398793408266909580068444399345415702645614413160878107720658787422946686234606990514992596811302474026429292333124761098670688077696079192227971297721438591343533174041779438465646534284337362780229965645931842055669169899188846372076311526021218942376040626304596460449081673957759392714986750725623178016837204485117871592608487823070521676631683769411798253493390599131072581285228660989188206969257536720511697707793256259567202234955038113800818749806146138325915655199358201791790532120704567337474382838320044523040439619633140628104094462843218636187862698328052205586567323954599801896710778140803826921493637719327318885407277137059611843676421364210128096859720474422735287444132585121364142948862684163371653172607359693045756502458792943123597023419521877824695491085309623370471888095972219279049171749110752373407402519202986754359503635393398904130969307794950088847742344695837401765627871472994696105595408871544070708173224125762221301029901392694060639480561313816263971045322912834797860170564766992183843285194190981276822743726099052573352980091155222941037845385361466102043240261314973805661518390836513799856890947418688313937538194775676759213346671301856256507811077866839971657770234493787838384304204182086874726570330587067003127169980462680745761212473891726149490613644670745363832683391687177195072148696622587542272751502376732349140535685202225392247187751726393999188690650795926891723794226620556237401535129382910930227488791164975934164165825683874987447940081164068949602384368308722284563627617819353837782669758607967501323046400334318631025502039321541459318059566940207039938385044265433247651548166468565760036646533883651888212766554965397425499367110692486492645496239422276883520617199593750349207656981546337393008756393784852743853021413872618184534294708324237488798300229817017121894438215353380287750416989136447555874438548594694462357271335169285874687212219572977664766118100227233178331584691921410754106518757611846221482107200093276783637082603324779869694393992507470241647690632553128034258353114491078763764508732027017864202583467085060748712921021364252419148932005156105977742236843308650112108467593514391673298916124766347734743154427989019594220959788049088464900345040799794363247345769149129220825831901956075079113132968238567692335466162994500255513131563762752199481508986131377026357498087958819746246096822712570824697438416374124999829128563540153112382641894849429338540786460472728162610619570929148747963939400641561490232306060296443257473975327548784186457536620423154406238266131393726970586577890515754437530977203360420143887834660837403013672035694641917958184333035334114790855100626219038879146927858195550058458345238485090220801707380137338281969045415752693043718393845799017347440375462635322062326576660491341684070192773322525860072067555411493582272916302869560804518818427942376128981634613513414743414641052965988888538289380162710678209814925798332120433261242524413040845286259252024340119411803323843225328695791905396459982531749750206786307776226346327287028490266183106333221885065613482123319593660279153576868699997045017680719559834224181865546142267740453224737639168495634646990701824200928149323564368295452726834096517288868545064451708658532936951859159676725507293712816508810587017738761553933154840782558281889945810505056933057337335213633824188281855447269576829736780774379315374051174183845116043576288035758688410457087625521478719950562112984862292031471316628256810273598741316329371563067180878856258050883619456830677669975185651730343698607577305292900607999569971922884587450983419982793371693956321300399657301150786305243364595423851712687470881814954704591271882576701373446411338268145259027907525079262039911807717287775508672097515212327868128221585502119958887106464482428444093941474106857743385590630745563165135728025241263990891383647116836100739212281546886122020806080103636196066929291492034622601203404629079154789681758420772910787448296013170903160652943300836353387508275074179923960329098237095588132370288558032264175106729282082335707400345238562615211737817637024810273105227461196770366802802562437592968239808752411198585663234184550556337870957490418338320602322623086858156238087858661648378580261459299237207351169725106983592157842065973304028498622709167438897203366711024548559735873017968727872656445798173153576932619064357092181411143124652630169104574430596372102900937097842413840487350374142898841636039496143071312719511568437845997258001390596440937835028303954581740288195121958760412228589702518626037777703012728487571582843800919724403487326289527062369315525554932649532874241050496596647146728059493367272844575137809170045789911266764558948702886981605618112064635752660206107516155952089496270199578967273734508525767948873980542294548752127705085418343887994168261767784486006105807044953653217137140519120362552927874268298342058503132970481329949766369463553810361489164809234666534983744157952883521990812413266190249959412728513343960354488354141408857470156598092322696435379584573520590586186952469197461276335864217414722171771188220409847775761159070632472048704359950772997671440636650327912526083083743913324456892442169872705886548473530001259342911137995624711056630593620611565817736932070914110511241205889311368887547655558700895320413244225611866113799368001093047831682372476384028535608237245322064321464998273732355282558402271299190647717523811141080472440726877317202909633234350877836568386330416134161056177915189635278836078259503942461916198155075920113961960306895786469981018001807461395026190726940238616749723372352893086470675221886813402161528519792364770370336692133149843492557691640360304485598811642971274118880633605125001598127256157423406571887260293256028330390958433225084848520752980418239609304668024008435674256033118117770244278820525499286608638261553914562852675416559852356463027709829524313046058296858278072862025090417116281637557874022184846920126989002512629094390607587150705604975103313918982192518069741327005165736404817453476913489545142110488542522561743203536778003513077107068133850105550925571029449473847561997492302925909926306287898430732783593202397013820983369490438561861440266846540595493564661233575731131430029929268670082519995402238882995078317799339918086892484456827045339078576784977395341737810343803255864266976997348591500014302417767589795376762583088571271512829194426408121336564566147847145404486222900401676419581283454682356918543009143031474018558656502471461090006798045291623173826555886625851249154295758998239287105650359714250001371207070324331603615012952333137090684321791843214651373324050354948301850036375362625655402349811151757315496754015579734461028867794981274767133709310184620264169417465203747839083224382392106251623291772014738531264407522315920769295023456238341820213706747808857623369097131124148568137928564939252692325032736093310983828250142764763260854979487773417115777593950422304639906676979614402873707057041096103006856987843156350293886165840339833522731081826053354722524844675967869423761550787982999751015035074499465339756387843532207493773479654525705973687335911963979328048356428521209989723741193540637407983975140194999239189606972189348904614241965349773255492691175529052786153786117434077280818899556438754266946789304148684785973965060133324299209019980097553542038044934147105335536899891945235392437339659120575440839998977767469603203637028821444952693464189329101189530888412748152171938821292157324464281798438586730605237989186530475353752735462516110557175304501143785951267871824679405065906537271121759731188828576637130957892099892919029906354966823030298975883016253436905478799709241661076015204948672440257794547271633137832917124507385645614948494601695974231923474921010129539494839122505023934642914569577808305099818385137820598425810574100406957844441814921903159227808349834154502351372836532955401213491127573070370530413629751283917370458342792501187659492541134335230414005858446228233891834343971052954005780827610547577634740154758176952615237073419920832206297965647943185811289739176210934237426326158462679757615104166017287379800809612946914226477520807202504847275769666720856572095749040679582429728476266131896978918040489269667321949213759860895706006556132280554871616977777378213835952752915904976579966004167867885214792273894197160915134962985238677670652753729246430176047814242428513749682120037099122657986354976376186509360758332538812155846578619821496715789841493820654585514842911003343829789401516277519820162311129093057992611125965578516731002840602538712761243266801633559954105591289939576951220356802406525907203997752393970357019753151877840915604936470350514373329718859279228241153158116807864192779930715983465791521041660949532208849972662284335545260284079150299609331251326968342435210840763997958091011359697707596720133130806168169585855103666698258571935549842232814963956428574850286773373008514890694689777786973482230033286393934237410037236340402368676910007064218815382598205195560094441696336026837456164207470973253065595337458400743819309136238664333416053188741170591051082277797904011603077797158285078376531602102255522541738369707726955002211772371337939640716489916083176482102025437420778865571235081278803181157636478169961766565700298090298033869749249096589940683642277657661255487349909727211060348489404503922208457446855761090704428512273595168696528011808515867265862767623004575714034302729898903933743745288916985701792134236296102121684120643199213674356014167285077634669580158328798202703828661180668128760492912624706079100840533999312818712499248298799081015049119560543876781482196097993756390739848228146024413950825887675325531618175999398065516483888040299499336705351206397103388299543666958109434231067539671614934433371571715577611327735280278701015333609319526070839751169752019363377960384438868889441187861911795549763646999642548359738283495974807134466509109442059003755155239734637384245280437143678070880346621644322382465197765910990767314107480729500253290088179347856753616199702473563564456069222466856137517689442657026035044339794067224496532040309182347565552697616883277894136493837144635413019157545180571014519445829156418420625021964231599103880417205958574817059380017007750473434677097510597068958558125801763588845675361294739675387061224163424004043835440648067158553458335100957224236720589319949942729828448791479940019825366759972767004535935857980970381908842023947200847705288801109719897842737179584100070286164874697773986909455031354627073440992557734841745700195755050411516076845132080720609188144956039642225671721433309312838065832278718613682190350829983372216064015981635884707143412559960300233630722262581174516524369422092478477028403707888401212379407718065922276889816362340175565938225891349439359032753815182618010472550882343718138056330951340722449608687450332651838562501917094707196426067959440164681441333495257372048199004623190881803005691340088872200598499871724110229511119018786026333023239523635657320598007993768733616257121750145849144904848028622491157876887982878665476569408419946303099141334102136672682214753261443084497103794273927709615543970595271695979961365578583528586767189101821709356551057864248901773886805601429573157916202303814971136154428037879906593648679573491723116197194672040272131753334177146966268700312812130945130471476146703855534823944414167384876226163712066943942572938045603740904870461926464390553254383087506038271857250605208824685006882530147099525875176318859137187917068788437797743138845669314908405209915986728543277889920062982789000991391775662437414284063241328598810905011041669540199398628077068177543702593974537718892985920569743479740667814150033619152637192570765490001140359211951990488343772692487950450926984812259913263868664259078952217369507107708156001572060483984310309544890491505150561971476177914642944285935627729543226791942103117796478222779032671497502894048057449402635536340218426947722315232567007520047264442122528568781092043646776264225989244712162188343396054808047046843548324040691904994810503624160612608483537840974131286129266893748991719868249863315081415304355410845128672161643646249911017928237970073047835662051622528944611051370683578656362628114289652363488673100395334968454464504654025833402048097379584658459701057183253714860747731555620704451000206524417317604305462018699377608447782132461439690507237367865466715037175334937315356641981959834299291331414702942247491865279708763371651336691317237085330996967796108215254172726557862238522121383925052919259274923693389386461905014279252969164891808791160595215129278550851506997318049984700066589883526102461151543031520587214370790315060410201336638940302684156691755382992344144645034528785844826333720350787740039035040092796591014867167440635326447360509620248138988430078984752951858636033872871802818186035233359169604399106680579297450061941583649943782913875301602923305995387598148538498455607531613187568166119123225146094915480183609671743150037337404293137895628457733467762406795277901427710818883375618683189385172484013505257669281500224473419390797813987937473683515394981807982743985152056563636079819263039092918154000506490392553097249900882125646129491724262480698404739672485632382031152964994754835434180047387350667354908601369579448121403873622217154442278662811675484325049060553498495102269948239408392655250834634103486864592299789049557425456967609349173397213331009621448823508088186352748255331970156104287926153867808281343650380791769236432287863989451412917683955626395312445616815709482114890495938116800048852936429912536608033445823336421682860178656365194843087317462917927153458182621459997796435371049508243918246529962209629139599505631418893533267280164918748682110904284948445917610170839190026146971311048516625514153929066826806521154798639614580437462738167735827654012795060016277598602303725522698537343184729107151636639428975493658651059693689355651012099517819220457147336183400273908729407646512104496679959047982771898752466475108983423873767795144478296664697646528674253435406334954909114229095780969383301171461540328797098080024593557614769183469076363679751255505621972101795405532973449616610548178394202554609397400181308470686901214090988345992603669254126765214073706067262218854439452179695126541730639824069777635435973440127648815573530779072466895784312737726484542211903379859271748423672462283754580053999128601961129787825541199623949095690815357275191661896366821835889234929399077316045330639446197149634504145118451485425982202006969014768432479511665726278392429920286867220773934348980217085701768965811505059216691456143832480060671875473915057250854199414115502294065244088800060900077453884584985225351468803535555921245051769944338172500734001631634898640604885462885087875330083397057418616407599548652746593341848961147719597726169284219962007975600414745009892754209914707503334600949088948610335699203300336205035322971845319114385521798661381172937675883587859260971052933132578280860299270923694262854924246559843243247875612451265664947929027187196312584946364573934767408885482362929340449913405057285918960456110443790152845149137920506641494765622562910927462511891193841205711122877623800985180738058989833654486601690342051855726565073766642450561215298807290953671872172399952830104701628522531532352110746964498794726461132573648393138792217904854771261029126872361615089010073828589430293587619942559436647173261403682665101774251164889074354230308272632651659481043161983195706933785206879523182486978810552742303897976275042693772911934693891514891480836614231537911856842541967993502552706606949659094568188901611500267346795142860880522817141413239735322748626613375827766775924536874151564030059831583684772268319519475624013004405428365570411492134043283611549066980938216432095529402489092900492985449717280342403285021012620595726436612707548197724274051620135797971002284780255276443358403098092718972794648655963542868900170565435431081366877242412650207498836353848090025192758356723705311515887619527381926134063191560287261050751393714817087784273600567401364805045545563120939613083123786722341918740543048710688938323424892606894252284272111659765597732985642969663960940354094436291923619526525538883792287331890713707702911319536936818111762252430938133553508280055112581047090079801922941806644153040326517258202078928298719170401994766592422380846850717147637971039671827917542739504447493255385044005873781528380754826426920710031541207460551303547334704216433095819372888899625166560788490279770586370059805484154592317619936893133491725639551838633076175110535194061596652898670851117403242110204292461741247390157303014945752570200734807445406487729351728500978793585016026324999148267231284147684548594228117052087343346100787891875283678593008246188721551464939264007258864164035522624699730847443927151305167774007226003353823055271422252203597053868040433111677323600141087516269699926592039453993796321721360165622901109395715808726030953751910932159522976971727554938259359538531416769102498933900324738334709771113774870303383363296485511788152826716061483444510035604982565450392435853491601706928365481938298056797217944441152507779867506412468491673663871609692093478411592435148781146222487902780484563751405743895419073857799361245428264554470503866926286200411426111024689566387889260208567434733304847285633388351359473864400588579042327941867944050376444668226511101937924119233610816667203630277102430276664840567558761708164994468270015037907094898435471931919705290092250217335755145488148608081269522159981763480269501860003669310149820824365336389358668612373454331692327368095259755880611739045057999718603342153711077671207962667652565385171906801777217093705156636562194372619059155497949399032905881639189077837228161526981977575773018178032715794809298432221242431345159864324080837222889670357196585780981234571705471651297924917004103097610108414622095371259100247192972787437850859999364618152436387216193799756787636921669094222748998190057956867275956898424306234582745781975099641382195172570803581713466714219895941045918035404620361569173627368718212666823759668866130718769304493686007337481231139199121756646625125697091688434480824143746593523681647106567396781040940121574023040272692265860888103489675989901556253717316706283742092326648220175400407216855926316171641814946758276138068477015563891062771893076806447198167065726190272799818760759946953179237837183170303474522215408935094878985769167153806209306790671823739217585934464220338151554351201293577280033250029322793951817518062451551708770236061993431290781279099452030970990029431504888201256425398015626800637220771132954379754991557188824585142798999232495963894566989481824211099604774914219066762988650228254102997205571099568936268867217268348038285422257103306754362010790985208139761626712498720482343914299841396006217946366726974945477012811048411107500195868457996342288670060595384635537195630553230395930142163623417069783827487476942751833663675422876975529861387991681479632068825316037523952338257118593578820977671913159515564212953821683459379092719790413483385167288874164586271481818127120763213238493613266087433766631617569833737910265070939846833261671110135738355344784547049382390524555479159216121793934897177966069475408316872359718608166169050820263883082768755313220636791238174078361664458207462549860984170104494882642959348890334951645533982432192035280504716604671302876399447753112376850293554774520921049793674626573602936945278579377795122504937231397094960868170560219700369087619509417318387359133928419502196086581672851683322104320949759529665864335461342733802201052093020704098956734142320047411147920255154272830757026728581769052771355833103883799717550656506959762213299270721162334863135471338855717201935874772379818859195342910021794444044854507809301727214978280192833305874053938585850586286072807283829012968319783380728215599439587972674054136401033825568943737411588172014176465475099612569663279075818190264301696603201020668593357818410045556755678512433179371251189360927552213389039901590574686229780316625769161983108702070760594586003131670784742732738688117299177725926081630038808611829651914936209513767479708471370226066573273317039667394922795920148733520366371136061988562229934938649535456897668156625051280549236748624628275072551395994849526550790394062315840365727623130305516248994773993022277186235357560310137586944796559495827641893090527860704423528529174149585546554003860296109355965209185144707638699442148552955350502320710049681332730313262092714012307868091680646106910835046357554896015036076713996959545797202419339493161225311004055932513176257927189387365447820166057699666709059782130177370224505230925599626973382688771948387343537579363616676531535368910438357027780974159563131750016830816146015913793339569591514915356703137569529269500335802825389447825218116833777753557600007310138513418969958946207929999763996665255169781291544116980075658357902697442868467561720772588763393264060699017578624979193368558573899691852057632332857823234071671965516234268116958412249323943071259960407056894641201897874762563105619580181429089196549004411597742889946640439682359829571898667990835987806301722242495656557883614155884906094412652811605382131130279655783733958133377989115692331624583876024065829733657903919610961662324067287635092752436037477533492664607027279397724022583738777807552148685887284749642215493967427400643015427275127067504500417866402241797875092565658194897648922879743837745558879390059770739534275969065910113779132090881409278781770992117469499819237476646607866312357678816636537411666964365153862774941159411893894402758614427645259923728003689241531659220471437356406704747494773386158461195489380423641844556971864864660026232142262334914768979879491949987304562958634833625215929924417974311315270970207494638293906532108324600397050932222917149491749598303245511340820562509288392615514322187587512302696959378283927257780755010901441722918841007280356922434323754020246968193936813818533138592898917147232545034070935715293626950136654676193683751616686316415307209071581374875424825514992062221396719281767833393243823100136798054547532779240701514998237465348944787481795178524620643810573516258898460576711443782831361074584273744655509588123860014021488770935309022687111553322312781765087418167361123298977629553033147310412337064053581703962174408899383899913140968795662272053881599589755672864438141522407585293382757778148536338488021999234002543632632795639004150745432704772686841833749854418648818425421660278965688385194304534255273990429545203447201363043485386598165764764333768345811712183227441913903013911331377488559393819786042731245192558238552844666172404848779869826140742471013792558713783930483868361378414805199077691259779566702512454981032606484056648850576361156590205123358153249006276472569869416658059489606458642905447812245902239554895486943990732539231682462745306323318880579865147913726186518262220318146730326988836438558470849167156999600172741760482609068880917161330103482191446451401356404301598152744259556419794044653579515742485933748998666332012147444892713361593066481253386863041725662301390630253527439921518101650843970916814492003462783893332411406903789778687865329049071267751575886828618363393101918886493958691763271961129671311121127822611040082546525566346729582416880695685705249865660728947494684828104025532448962962489922167258409227017072218928467096217482707276542145095532378536076857005969873246021924602841402987253779840847100550202340925273378472392835247139035829506019462520767590549581179890382345706650408268350014052623258586542489435327469999300377053964440900025141243705192597991318101078494712557952593178474029471974611109630169185011361402342602828330251385035467879489074466436514821464828514640755952889665650306776388865882404399846343673959588789824128730809380018673855646013354683611584031293296314268438240759638469438542557228194234572801371647877886486207683571722571256783839182753464157570783880918164017212727705637257605651114018108156959650871778393762910457697768402761339444101701141258093403449545920536943178629916984277477775195990716193135503358706179113864325016424346611417078978530653227951268948453831477657289571485898033637280186488550442969847114676089154389333996405466145818040769598389408620526571280539062763424279364226121310541529505495408482910074239108680216991788824338876513335731271122489450538516845446579380935883194063359229067450457947756698822109394724509824081365012015505652811403094440502902793071265663538798440738504402817893029573899229333324580430162293453503761998667100167170193902709153292402631052337312490251816180648147355714284677068938420761837739160755040216863761086863127013017439169078390175611234366589769612355268637969971241246331614546317513341552100182129943022059948167238430840494454914781021380460124247842609653666446784203708200100228752157031848173229309895084442857278535919507729926667717037112197292181798336218831932183527561452963508372335843898982049453355586718249667271150153220646609580046024854052039780868732083594315636541860621614092220842616063911688950738144469196712632319149740117492836264305954567569958855384348592452688287173172672688501817080377651050325416153539845483322558031483914449918639035619769915079771998485962968789360119168369353687939823898984214676970510136454671759102820116644475800235025561064811163619281981843079017060311777246966305964176543931766724253652537533544693528738944042137893626565990972293051023613492791158451139905427118831547946715044773470124460759735360343752081005239472394621636954845877293324757930837072635212473477214591404920416694420994135526853939059659853846889869732372237920453127745969512998950247635031511379705966103439975690322049450702570127527307533981559994735905020809961621572161032784175210276983722658283892308293432596740238004077174078613243772830110427604640679014891929585823317758328710951822841485814472494568578382994805094828195022839215359102043750184553630607689547590661165115080919662833995523088009560223619703806111722210880398733881471243228872795650537959746896202028287281350285484223544335624528436146586409222853283498934090475424618410416530831250217492618156295856245330641478823700308315283356574494222851503175598352998494310848859710009969925177426711787470319938014780256405657777862936422726576687940607954907581678837047920701756739164674285105657596229681739223498129762769259495478213983529314228404052379514945269294216634076712892789664019816292967820839863634021129248387027883108559176497767493246464971253498532663713317296328580884419581172288717766273509062488505734705541383278291400800578169442179729742399377634194409083898227319728089747524724627278025666961220857361278906216250165460655562354632794651526003970006859123372469723565698897871626430619252643961591670632674693008579422655729925397348241936327972941658301322435005222710570228848352193637421918262692503253550700449592643190299252738928468772824057235807381956895435606028011581200798759756551943699432340930239988477436544266943207339733049520100769205100079302579301642775299958668976681565872640276200839276321044438245179672398154115449127678006247257859208163702595728903378410559331839443477281932494558305174715821713295152324723989552393562131546851630824179331052389532291888178940519725842831368421325626731119728302475229624475148607040243454401880088116472457706083275141012584160226599707746017624970436328152111177934800024248560619239446656273450243516764960258410549734154979614553120066574672639192722659787200807880079376845928967717551294058768174645957204883845353036235140741068845746948349349518020593796796911376948099341599985911413052144739414534709046707128870074532863343892320875103452773616060613933610431906583148454207212945006284019466628924308478998480686633533065895837713120708626097259611756936370379229030586049079216253935998518267167010186792630200614779196559980915672234269460140562242191748571329419692617274243773650584855221203992392703913539962009074897454970829794101214358614341406503860712756594845102226600574972292178468794084248257371650129420986329749714371430626302929059553242132609575282732733292325619465827581597139563115035422552437515925219260077759605314267758108454691002958983568987435249704777107634132050712153954831634966484746574353454636491324736966271922300653679197061531057654908644353375149420835796185013277399152100059077955049115807847589011459955887442926942932520592258183226805891553031063839619512940965535835818078435240629772133706076630533444810546103371123865692817159185398229884244354494301959043071075589446953619407415980664880117830324450376164621007118332436793182523871398253316573472847456601325085207232406155013792608547581048629610997328799469121512659164197275126983840816777338556277392597657168352658403298623569992454795428132407111035992872275320705052055251899235417433427857498078967849212379419705178794455840242445611649052503232638491273388886028276856789150378445417295257754851978946854023529015008624765477974173635353848970216802696665318564229432299985648266641314044606234541403795358612253749496053175255367773739909012939787723823852720288086604428276707410386286890399984137917867586655122142937805798772305408639574371534856279700013706771322916649181825346229168036499073317202587500793129201678052342044652277581185302374015009287917241322411867627532261758324689512243855721666106972711220844949435609368793997805380353887466316159751190350480502661697335561020086176572479272230636788947827920474261463003680260733307930431854335588488400053488135351834806203756250484840514475835349952532689157101454268257997335274536704189270705898982103935136548472472235834693055473431508543432164599802071744791007781188933360566324194055042848508635697558076265193893303843645680886579069863212268825003181548624320363761886723546668790163319717543169862001396457088060130535809005238531819161395071970352728603529648556981745104219736422272610823063713508169593745487377984659531155716760514608616905910144985430325617479733585757158928762630642858519198022581031587329632251639559825591372066421295978664992037805107730172388080654655452892373133022118944689384376686527449392937610888740094472521579495234123931106644106310539624729000509830439254255744132906734204538757040717972601477310611235459236357689162255851360715146744121461363096846851880414049735903856402873721705381691140280051555255130736912302254579563904778849471729954057158244464952371397152030990473897605528661689620852968171816532163073056027445461979904443609916184815760717543819453843455345015444042684650567104059137940707620282345946313391462044866497299050236971835792919981739799815457906680264288794734662076536919374688453696165712189907649261126762898599303302314335809738892539721901699660321498625723880144837132791977134063936687795050036264883219170463755951456266807344497067087295044298261221834844465051617422882126257795835353936789073661646549627263060797931267554205464945754821812499459655774939604032299408115765738039381653400475310855488027220509087329209839974245107610987765846140080331154932790235998795940166593070041220229943024515443410447030047637289731490102567035705430333661521676249865855478766533805015662264149706280271874041418984180527890563674514385918236590432921714162217905742386071794273342759460102432773829244970793113433019181530041393356398490159207597510628519045141791431146236824618923808574354946353336398872528661417316168355712049043992018970577949785777638689948982419519334514859049403264914738839427647462214909254161655350320591259056342721284966460969812594272331395194041976864838695949994357209512288067799726726836253572064573290772562066415083783317994807983597644715542677571105042135618407042591259643898304544327425611679295032573659073384066844303475244085753006157919168241999767321511924095609028989821733129800257008846629408273698821536760667496450766881848854033812706940881104537784755797482139514956595239946172953876794033137861746223879121892258726800299849971498649631417057394647028583398499728085516113902706007787557796346463395804903628306529897845275390122952799431325644058935962807697968487389761360914743078756101047418421396216662543365243456042900222815722066060197395057899943856973551920537956222019997029950474995193329728125991310564536265849479839290107791586131857527111948047840487412849815649243594977855142151865588690328544040397251979150351322510302561808955993358858912482572417559158354230453355265274856044100928860864420104446715083227282778519184507017354123416260871834132843374587232165240172687287607976842497482684245865255681153230861736340632811132711614833411074560293753077832295763899341112822655929926436603088997610947258509127959148128683614032324706634974350470866645845314274903992476190456738251329609060026777684682218153458528803150386710627287249215895360111505516449693637119352220492584708093660777092392578025935452418072442501189903399524452786406377596539612746930001906131854833911735899289690550468399769409906587581233574993278723548169566094433780623589775894200773841551309215257132956503466490501563397287261684802679773127248801341910591861053838219891642368607477815731118091641679900460376472799884273610683627336697739149264644999920936037243809657790988663404717283284501713547101885046120671372790729704711303059391076368419646014390048209178106627729234825571877417950669682652164989349869959561942184204287060330745691029354606191868574073657542277608081970763470108664456355869476958339027801931602267756957352542969157250046724814707498145557027005539350140086220031140823872656195276806091769323133489895221254872928920343788195255961429694379350265538997585690888061475551917414333991059964596400806896564178418770272242182805703133937668872292065591831473976088112248664263211343143056795031552353437421411435742510710163256271345553506395167677162730065997435126797804372738123159082017802416015769875262972436526863639169783886369907257806788246993900077231505244354010840280164500153440475977827883294978774224378495452552745421885978942170674836271218674673837649306358868255518895651256075583309704801166179246895040789557815683036481638421759857711401233264604370755551473921488833266850553697983223563589625341096833745598455846220098637882710171908507937886094925866778049723107948510131658676065500682905767260411382320214710105247997551733183077509997509387762982147368237482471102656503800094585349356525964655548493117471952284114903425699766780478954167934057220495664482116155056921273203225015265074309004034861571772756931394032152411178333547110767662948511248872704128677601150082356313397901671519842491338651621330299187002908961241982046949734541835352438700495463109583113036095113520539294534967093253877084226759947050435436336213013755136645996385555473218928798815600903356117965832252442864841840405609095197733978484713493561975518834940739880432900002526572284685643145216348062578974689495717475163058866674431741206892075413813958589894093766692328196686089810986292714884044981437042473345494945643498331237926735539029074227776899622566977949506107917575331776038381843585883348490889744538864056626340802138927909117358532376513948478028981635045658169811409164528345088566144760237693105777611373879858930592562408771597948230303368567208234116374414533850674798698857021150999959318109850717161121055402561480265565606277807197006700325870964418722962697696052497339617993385074273220752353484690369857674790251879030401252141460474531195967681286957001340572692106087359643891837654468661235970085055259042667488618239623187887228045148660049286748477777317422329271067100069346605321556226060522138258213283042943095427247293094262578614719741904189208730605888670789132836568296726462477028533730475065874227971269564666860447956758908603213173047306495708670489582205081207713940586094684814818516707209068263114630214392121646278712055099006000222654423991648005074643920777058062491858668797521335062642075903621085831765526184271268929420264937421501520209403610049247871376221966809545700773380241092777992987405438278096547534422596731195849299391695927647187959365707380518400297809428527654258812135458889815821617888055726465242999814867687306206556955773906614914674989196641042620421854447344348108994779068069029877297995168937255190372614338961140607916220659352617986050225343050752858895001902628046087809297242718247756686087205866834491350985748506538906868795818273193667346373977312777149676160869464990601715281882605986072699041328925448258907921612643797975327856783670366091339138913194241091486528001654294259922270042903496543005050880225948403016044284029665174583381432168365604439731615763226139336964367590951807437033614560320529592787947207780516330560663647412607938401530972407553297685659216776002367617315615967137820506748660835912754327076670594071934185939420624737858519474832394024989822443410819551370887677358681888085775620434619224654596249972785221125156056559010358943411111109988199816222584602974333691345427060143995227451908849536335840488951489822428917614371563695435354555338840557487815872189680935420168650409283586414780761745546035431907854928391981181353813636573990777002718846668722442225558078589997631247336363575105080753529821567535680789055049277936030345874390042126530059121942278285340330123316741469970432585723412046994081961583445786762349683660721049066043684253941395586759319053423739707114323443545573095446446836374091493150871124992556299133521926285848070320979668551332672106924901219792442972758275743228488568737322807370286600110220053123451009984016798930572007684065281083746468142123074894555472508711835537399908148413616119675117928416008352159802691698377787006797567783309887678260093094114690695267713117770349719122332433504276580682239586996508028696334925026515697921437676030057277039979401721840735940184437405703997835123282687746521303955673001136870243771983435363621625496286938238075576209078244858787284552588089088152144577032309601108647052521209674531004155184936346092089991956073522819796409007054811121565641624116658293124318161125206768764655661268381196027784683933298855590652306776478746881589183160692043402163826111348219580353872577906320281883716086160868060185743572743620250573397615107958376508492110965114148260995613210854592731501379138374475316160156342588420567248871724391875596917420289217978782388879416963155163021544399950802726129148859232936107575104947534003894000583953841694211750136042950538297710782028898816301036597048604447135761008584323894979080246206637074563525491651467193650045829563115551225158809931098976309090948504251280497846843035002611448333668997787191621733391849979995062734491652825305249810892844276550883235043647948797112038013566572404615722065546901279024063787997336214828964741104098241573867333133675904515930170566891933443736875761881946517264451305790158449513003499300176343524686058250347977734298482980657523088604728991670395475262546641612696206534356084541966502218649218256895362657581866682673497049514657177324175637869240950788912761333612802146916325419647423957750314603472448178246417739306460426165213348639360392721463156806529348920617677368067613905919402227638023401114582816218059803690861675537484496274517630876195529164019897117426442202767990426303991622688524762815129162858867874002891403944453194224702797820528379768534555637175647029406993199868950854905279770054313326399030286536230520517963166747387886467985454493587511855418085466736035732330372753337986791414809807765623412758265515453483162739143916184781389782265660852449805965811306644742503681674382672578152768335671226815554544004927844334844487626565520166284394850407518386562681013443196679625597198755801147595915537752964966171970336145770009136841038793792524171369070510641827818327029412390029033454320909984731983482399094064042167468746416883834058197652925861332506677907383395435549115102755986318982678525785889534499043637766763744569504077745463553505812571827419175242673178698625209023181942481969464608622600213802774503491747247405232416313225344010973692353182641030419379284131949790382587956187836224983710495862430347916112114165223181075918575212697482175688125625869997401141711265299352234574279310558128626228418328832406494543804216267297732712250433188680613955993495985363541157692263364855361487587963095015659517771163474094105644520669697401578819478752534591948324545406946796461027958687328618666352711652342478478066213857777848135881515208269414953546593754446690412758115614830844393132852899657159145373347797891151715279297755424485965976041551833497215008452737921554137003221937023156153625155263495266604986803181460278128170516318293804744468092522413696038464016142177187693319931684215606905795073612610167415995036561265609683447884611152152532366893885409233426616204730704270690222698812588505649166245728233785929270537882696251934371169991078946775953014269233561908644214632322393231272677239009400762115371251319312092039608418284286334494217180985284860236773782156560671656578855068077636407410098461550302565071014995119754628077800860673415047072633744517994010161628370985728077788292701325688326616888282274954763627818676509023830144151182339693355899766484130174380636010824361771660221518265391576522816016050557084187001702015303650954823540202072082112264851037012518838988749486281515246313241700984203352198360054521465985981814790019519751186567074485531705219297136793380155893521852263135140012361619733140681234022033246370923652034458164563773738143603767664116814955408857552854931794652175056471652281353585498069976964284616729772274640203308205081422469482552970391733810979157339029087532424066353051378947973994706915766049478611350789499518627091674296069707582303511393928154562847351710554331664661036270797634687917991259727049713636038206511730661172143526796602186493264924454143362774244872514787857244890164662703165687463209522915866476897860023582778044595553596583489189833644321527635391815295950043373574430238950872164482367655317053394980336830092100929967635402901864953206513012866214998608318228103203469062740588482924193881173108556828659663157537695500099293277160210760318898190284781975069066827128973333483111297194044667635137957838038158887482472139587801917870965080698349131939628890395230403071596062479796198334958175016718459076676788302776204318918761815240604646082548411695596575149131242786773462157154559354498767343367933963956068604598010034962801041821085887382517670987973827994273213549668483803229539700078225297176422474042383193492012095047977588091084045947737793366624747174797695276524937568594642318455420747977235069911126488561879210142927567981672680897350750722757103890811038604156549009748022944891830823094565593883239750575501210353662479545621456860558616000991616246193729902148726117415034806637585499170988330091006218874145640286477036033850358750969400413615064973914432599737896123597509000878922295375520227355142762501464357968997610682520262088087904642499093134213033120904357663684184377609597361349737915205474031035070946612326944752621328104837671122892270157634974308708241877040311978257331569707964692261562229801090419507905036121086553186158286912926274476247079902935170139103723330830146208110518959576069433907559972618707492688297081050111554912388070492594271162627151882152940454645064338149200969283997966015393414240896633293947945738246661427960085328252780888507414195861975198555631861767785449302627495620497726797455830714727830051983540070856878852290295216978034268652828022534247934026974908933894170424875960440004687120885227761572409579858859018633390969858524560621904400929962849349514918208696041519124164460043606631126677936037131227541700869258971241727791700995052762334685455188105074245871554335251735581069326138410001596976239107467525866470051156518319667927815424652761870019834254147547782809949620340847246964607940836872559833112798786166139206489389816094040311464827130201343922432680489081316647695156455608364752205198085545876330601467821036981160620722736373174107498534663120496209369807477921593191972269114942413458754571313926888893976757455500080995104487417940033163371130718483414279890263647523369088433164265123481338048619468397568183735111095649260997121210946850353311706268589735743177483259707407765619326590331386242953336355129110580283291596880966987247808671683708554840901642983636711666107016118526074299776013818597317110596085184007501041298417230225081353287723910165119954466828581186181833248737575619386622878684066467832656702411139019398544279555840579520181580808972117576488639179260279216682360620539686312699369527076407071439183156742026259158942942030436384654514781459417369888082873550676533195105527322748486020840318532359182430834173893962207078069803192459621006008170350970928822734004022153325947829851434008089856819827102165008611291468004750916901949914059933987044741972321729917184417057978241631487366625400168570126135552621865788548325774088646396820504388524655172914456341808972687595701446829022791090806161964585103514112916834319314049962082759022281653984749664688150260034929621049268886370883295489774651820297619111420765921636578439064440196284516179637877615563592782849589502776169780202654141349282945349971259485270084339417379742199381158368761684484860266378454320498741514593630749532042521289239686355396574351381424405671088821946655715950741979820525676076669466632607562572023274939650249402332785880489877379852981732373381404470257560591864830978901682774029635677820418027790772029417716388063364509113098915491184095677290380246408395197350642618995259038291734033368854267107660088582580262918941369921108692152923722287895689917974353260164441053730117907915984857512993547538532760687658473101635296492743780004275262210918119822397487679376468179137578668882390892361841375646517065029093990419381253423241514352748154356665011953400745970064820723050561003076064789036870122958218162330940091296909726060348041044439949241494945940497239817431152358319561879135052162679991739760967305225163049522527741248948852168182532109493770251413624658717296356183879597054806769100609769400704431369579164035338495530451849062056966143129418888824927510211122464782577020581014138308060384931562327331578879423913274892628438847634365151523809738450838007812954841420118570911959978746969224618411406861686139562201467041201947506374632998062681387665392770140332469094540603342689911364139051897494004917220090302333771066858534173357473748931279765014765139850844348915578190150897351281738797576447891080026989766390044345506625921514604635883765955873838889592452257753619155122609419682597551042601042596765207643272839523694731877071788565749171905047572678619952041446252956203930711524139846146644292951310351680444154293520415264982645879743334029723536571142920644009366420602086203201017090187720648123261122817666475447223418524097488061266156845912168406121619378803651156711584473860860261197475576993968167693741518470914509002386469341970738899174192803844563854325749820785170066525660365858075607148337058119145541209237781552656228436478479798703244522554662649735909325198657075973496797374337309782635686122817886442216215591668405006124617248420861402786753309833587606429064528249342553358879638496416012433922939851627553927416838705842799789144433621183450148543431079319440915445680377833585380999713916231972187758147579240748254061531232729685581554975243425823947254393124731617883079323209102504203262822987047028217448655850257508265749040426213764954106707754638155853314076841695011173667448331374509641442544973626446135574528561493723188307921647943584988363469976557664371829048226722764192761690790251757273316163351376604069402927699301901604210197887433061616470876943640463280612036454762356859263764478685058137497891630582100366211649822045048020507178846481087708535611887970081866108007165184344510608039631547807718985181698963469891236936972968132814535479041181815831422569757706904809404063751630561079722364565284616082390810701659861267086581701854828671676210567691000785674163225666460232094961263649960216124802374751328789109061767048227621773456088297945030650528498069084154438118932354098281262547143209427476949638325727031119459918701754664684308033828166378425187915259355229264933638051587299233571100406918475902829705465275199105382891837364524554994131172288168935445839397821317576399714746898870538889083103519277102974727805498666810936524834555695114890619545936996146833889256905788609694177969505311720328811797141620115718077974426412897925699609637964225638601899936333101690192322765968221148532594491276575905293739541734427253898194306620017932630956689472698848004326196453152320230886696919474724664872823254328865688397143160983834134565745393514865296260206658695457678987506822510086466883591700573023648365231496434377683357302467330079583408505453205690584774195137431513894308238977941400658778839093643688030741662553558996645247975636566018098991029335803881110567568629876905657992591258708100978977219984047103984414673290052924457794088862987527972797745158619654299870278294933095167227197800967774003459483476582986074187871367015438680736524455035441917353439414872762942497131336302678805629915305586899478787098408894966711146192128687604747207416034210798530706794588283624648009218123475267522970110205421520710550457039364446188447368075242909193442264410179954648964066753111673595253667781626145552183299806114823582573095059823200782204659802251465387600442175747516955505798397436452214481639384575939586423657100445077725291007313045440424963000521966327024386476471168007096177618923026989283726136011576205964067077663036904318059142327960823797588536319368761751098438483320892617963224929248224311384023836564945209990651530025784325702525810106846233106500156453918474485472249294468590560333120374378363096340658446512528143393098073917625197787807980211417266143035467519364656272349132071333868452639010679972983467545073522469890014908510541536023984723224308957344199235224608623075911590030009592305226841870380369131338116523648146500495859328057376345713405368071601593174054612147413957886471422293815873607368818751958855103531065496736603938132396948219215701397365019986366347420493575979090359967784404870671860518511353270213532477315616272581772905084722350423053192558466581801311106272160186996167555887328342987331012279794535126687667952506953756886550449068584982207320852670316013319648983723888461412831145805471041477302041405735357735471272592645307760064445190365438900119454041765539716432433087086784692627172431227725558278810000332076335916322604972025054763884333637413888859569343778089557039879146865101456556474441023181761254239112555138837029453615785918954987764601466180842337636555043285451468709443135904106492562902621212880557046193225171153543647107571020045566879898164369752269816498284873765753142593538187279068850524454706600859431375286654526667815325617889901873143005572307076377928092114027174448999341920224583859602057266905527557956042243550452363439105727274604825204934839383405140653978410873721788226702497498315619722104186601902268984298145581348423188792551268795792132429542493406295324141305017327597176444263556299108281475270256114690176242936457993138722070224713672415560770877169032389599077229902671172825058344158567994946605460088459742221319151157624668885650763330290871432459372053491932736262133362273536609281091808727695099515707386175007605718135101133502999992317719959472872968130134942807116937074363411026827584922211196061383634632871171473870055753364830504284310170153048913558550611715272721157238232605943747660293107219840884947297776673084193759491365350866747143436791560724509001194766106826368270481820381915672675886626901576765433093730422513917797725899982783950057911979876658286305040028914601735931312806240332457948502177413616069783570272242872758735864435675963776344582837184825304530262420055270108404865711677839202193579435215294945351398500639316864866506202938882649601231204191449071591166206031333411043925220995621859580410041615337474111585639330569800528271592601099380940848897138994915660192024187295088043853931692840234642063296555788067228439730372545994476870190033848078410555197551708212555611098170310345257773166079924938209350498885426252265087570065138628745154327211456180807973930558234731199408540080550991369306313905841559141257339944903712219437724781125314009438854035958634712516904655648048608900122608419183008167557246772162699884469645938403906943297671534228923369930513599173857313302574412049052443392889896160490759254754759326558785909879825394517039206219097270781730105451031346478748923928122724521536557350092069531423805351849182298626945745032296908355389263646112958188092077567351418487236597534112149936358979297622068261554527636241110221132545131118897155834403152686726279264790477091603310115058174264938944084603653170764744321737529780683089359448136170990843048098647779228945418010034865571854617310319704626455571280908791852806503557450468333127495081243543252035552106645249316968754906029487580926264935576753073537772731357603398703000828726333491551462637743638036572521161956037909621197223853978539240779839014842385399601316839457333372862623978011232484535519203428141340345207729073980023897026321459657523676637858365603020683260057699605748575226116712979727972722606026837509847886559489104672027683272574657155322257965008628467041575413803468706946039838352510986504722628220563522120854057628440068871450263765417057058485144550696081935411123972753757199098635138655762171359612005457360113373081528265474947724365081994963647711926153751573952848492975143892587058054450689134262273216340522650171133534506527368134322468784050968003863928816118785029253683074576404133844655566048643078131857396158283173134814729874311175290697059580418534544406151324603943287139222958863660484091741460251948570720259405730137735695251582132520804230518831147069075869908932360464149197833253234436490425946558432291304088931561281199672565663503634693602844807603091879401371787287037847992878488080613970904856508501639692821077942792457452334011373519469377235906881699720803093234899351396597635269365160629413526397532029603334487750641967911578134966594145604238886267942765200541312559441669431060990070382557310780144964020088358176513587204699324727183726179875725149283533508393918363423038829441007449382125409224027008709449036139167855636247902100208116509651086374234476892576013474037529834965538790461175938852766347180213288437965113502037705166319591134482674621234541178687566487728038398091374034543537891669539459985733649995244683294514554337085757947159367066614550713748123907859302245884323082047035603184146597269145202732687171755255779411776218290760737320733364479782669759282165233213892876902123480077285085440740031792491926202575735655046991729532708490348791313286023647637525018359157575130864906225855220178425120795539570957556682427089542843431760518951360432396934429740281026073982901077621616067930425846270620651244793861595573689052824935941407957401613769167513134115156202679462706531793842125921337609895219504642953133525247622237770226926296530393872218381183004278448723127994743289497398404079479899963292317366225791268139884656118797352638118685904593804879318917567635644405540750054465607850070749854884426852897531768795743316914273972123341304348196529080989531173747801801057690834753268901389821570144076873816503052466736220740171594389324062353478762463019102025190322093719998068481052098740372002312114670701430292674282741911146053232097197037779965464332666837796502143751688269146638045135133734560918791555067260884593802069724505991490558782545825777333776976848616914081964664894223859181756049810425006328181608374419155191147396361668845883136528018337341571058225916971594700638944395534723842752609072331776886651462882361345502701261697653362655788628814822261308895803886397295091954445178060865944012076188342816791755003436481158374491511484300604067860048032905353560152491113645223623497910638102370774178083550402808781051945356487234932524079517088069739696910655835786683787355923429306703803635527660544981665296455284911049599361272635261620147110882097937356811814520029286510665444565377917947074913511378286924003906420709677425460786594401509131534752705158630820302321329928162161905162233061937152657733182456198159235328792784598953266115991268789268623651267980766268994434138449090867790714005692401755976954703162915252529725608876953569987574540112850441165495640794163797329726564689665156498549439938116746913085050910314270835808644414658114133836284907576572966414671251932244047375691984975704268138827156498787555745754059694046103257039519032108321544684960933559054386016879920415626044140545695069576152786981052690160410273851899137160026320081815641573696146174710403937244683659871308113547401806089606606354858791009280638882741681197736234481635171011030804051064237928240510463043894316763138992636779851019479431591109355183772848385027467687540201125039763607623303219156374422404078175033223557141337534858553025273179658274084816924987304059571122011068104771029179923051236123635154666599417621214713443144549171916324839759077156873535822341163467126426830213599025204733206001836943378277864333561081670508108854506563312645589014345426886481167829290063971654363908003530908942480032951062838880926581780369183148813026806840562789565026499713179297380039216904369642902437164466703675248694578434801346297375530300076016155484861584046038867078074566669983737369036301253975813978389067377261775780071670739814857800074040338459141025466158402301238047148881404716494335831301437432094998420767059252484621299414658441069686314985819304856673981119618913381143641892976192823319894126804744728864602769180435848981876928930125652569384012862294468641093382932034321540013570543646546099275427175394152561255884961699348222181206341085295513438329242065058880529354467192770081762024966980594657055528369437043754700469105872533949343027186926261053320563449747253766159138515200123318170173886344962519130985653735923756921987600058681525603886855143813692021956386945999199712048404985432981012400953551476405122302396626293487299721607436923238320283134767110019076622268453610710293471299820517967541981969584643216227715778862880031914459379248295583068987498741426783285440131194701621601426479279027656597699518921643714778564391007352391318603468980770093868024797610034773870806184071004177244155856710010900551661792177598121737913015759131470090807311135794879790103116727325787614160893108085341901749043351660101908253848972691102203017751913800766086819588122624960174327213504304669732726245872903617036417575511301094183374365144235320041125852742161466416598081091674189601959957695683639595929634255128629246470669693932186726336330176457074281164626836967446107481191200273681294891629712286070907306811905345992145856589104490722126103833406031083101732978080340882867265315244390937734973327008101471630407160672641518635202658602323146872803973209629462048731126075848707193095146452480187328292733020824316163250872723570005876211268318031953967117664394601826482050499638218085281300899347732877410033477494116983240637077139319060292272531971562208098944515602816212410861775616367649895120198998710791120099686070372728025857576534108313889496125838547217469089832922505377444307827602378419522304217083965922220923382901187929341576668235008912544049806182117813929042638296440068793568052996839860348851527472324442588565653118936520802419755700361266764913760453856981499471812811230029242775332580610763794916913344882827502506322595618529234131370788314845201939085391883036831134468447909761783040165953894075157148821419481212531111714875946783203869910510847895844436254509500549629234498849586847641696672617165464863609601714951541616337909812948792398374028023984215233227165312868441239870864834720989142819093930091020742885506192132908382461096403049019637380667436375672410673174735291880965160828296463741619638655975452475879760999448181080634011063913559602279904649550634636534680274599430798857773309257881148114452268522994773529151250290772078733663120352061010180428935373019127479662346606154949697054936851466520545688989517890623541015772816607437601247977387633850471064577335228646805318131398475503819276203157101545944418783540020431239884004018133337058082855921219693474912578262626531928289369219868731883492736841341305853015898897086089792917985831483399954207928489577163722438194107900746919611118371630717817099773301494773624569517286879019250065699756578198109437504303260075191108523288424795584778748572250608212547186444802208889681396242411614772212126436730904218238634251260422002270145750039697246847944575383334224530259074239418090514496249186051451407576563923404027314668754097147890543386569181730936238123954588069174480987638506936524072672953779524908481162079363630892438297440398509626140293597190051099116322459816646135971219507755159069981064944877790508635418949303270108215614684970034783628812731587048455791266015306083780480660933761716260044710605881133244373573376377276566384414184614564768462528386623039909458369132273077569753982719922424875302808641582984690455618309950453900028899395907610423611291124920237642602271340562285539379106018830246123103588037452406603802960984361752620376422397048452672975558492332326192354971122307675253294390006995959242493576183580475674838671337254022637686796367820757184432291735197924669051297019455477143469756381266349463755470119276360389724253137584593040530981289118709958340260729716694156023353873213593306236613196840609929559791401938613566522900292234882384214026496054780482185959527183579140052459952434369521203512085082181479052118202871284469428280915489896945388411327403237762076301136162182748363263173148951824024093509722466843428214987392136386707323468692720642600838803353419786898490317009651838566110680868199371624618249881893657717816925936472058876102494717654150679587993902354981023926305844452718512082664213631546650610971146671690738530880301935459106639141784181587516013816606067678312706965943095957116235538473072226140774228333690816539063103203974215727028425551175289645132790783633752968115210662370240359615571417490515618057181036476400848428356373335991155578832912069001974294160964092558962108467626228417490972643649987362321804819962648344756257817210576187736716542228512103362000002561309053531886043684337311119356806817694562261095820641139892018252619063333764518539964090999803091016244859283310369880883338877258333822628864341549265313103514407961059337176344008472208971177315169547830714089613568651168997286449060711141206384090659260587132778942466649715905196324192410898182196162260641387392784791732503712415922883958104766388509749435117911569843259425840287329232439370739704358839847829699697015904632489535275221825640488665393940432293851848424778656881306339858673970737126124199119678341641802122234276397053149585977535449072865124458854615315422053061125146380017226394985940049298333771780667626563906808864874364583358017677285292350725472592392597064486217776045751222696621458368510143583201890106600575308986951089264752633394528762974188371576648927689421061510886433081602574336087172232083282629857580786740428664311566944260455570753850111097009499967570099672905132830539595046203688045261902931914733846382799096419186999901997674809208943647082709235228469231832762127468805086022022860919242021183164104790726873846766859281930190827298316962468642695780192998862738547487044097309530664317506670471271596002959490161706852783102958180862988024376435184109062079548838261752293640162314460546225330561209525507510079365750134297341578985380430745492013588203079654627397323973860687384458935625351672535409136475829068209318771753310869338144492944079972626856269465422386857126605085380225545127598247967935297336068876393455630761214680385251306006587465243464937939270159111674552943015306941184540854909491513510171933701701986571824341911796076286846201243658124672820499013886913445802400892675181504607742908109779151246692214881180851120699144005623435629898926087651158917462591515648156451451961521820350073526288818075807078326272984980224627573458840451174262730434341771815255973373886698997876542703456124511337245617599976135572498301280616484419987428302810786345998886992419719619244250582761726147657591156083268760725041423432791179055109732863287013678765530096981707577083262387612418098128483349666143385707146028025678062574722911283994785523154768519942198750892708589375616997611526161843411715152487511748861511161569332183812098263076659149314203879134510788028962599791335358852992309456227956269364889893970167026015221606777958660696063016162514271905697941890958094745273022333325006478798702655851452520030102943891024210548237373718496875765570988182021936824593740730476402822419064320134322660540215478282441619699439970859590172231888468546074342416492948055226204536640571332464685474589687825541144173547894171116950648816131392410935617454678143913452841445851973540331010540176025744764080111524049367758313257543780509916949568416413186506876868900788980977282300018818521225808759444465046101390681249788001541475529651729805747940334252808839356275792589879084403352761454734642285459181410014243196657983309801843435370009210001823149614387908549294261807144903485504679272789104428647703671971443712094280835750229183259721497230541430389139422337838181828556733104465168348974860617204288860085476054070246875198489098961092126220553587110542114909517035486908720300232773344313361935449233928638306421982313261601288254442187908983072502050616734810958459144656717726240570745475703872445399804367442911567360307375521423391352469862593360774169313787895581659931023198741562076418661606698573767855597859521457867292027814325565012329097310460976940100308884673289684183524862861657349627447341383213092654152385468401406182150800491485788543724662900704667752995077612890269789803384878095039368276750772414639964381219484136532778366928771962956244714408338947190225934484724446839188043385887894687698491572958971724485582203383799553569806633454201101047096218405408179989599371109039527543614763737358144474356981884901139186389559760773218432285405505462880307011014620918968187647537488347928169680359524101220103251383371438791319674805882753261912020283858754579542162259755112290743899560159697731393410313848628987994861684800902463573284933634646359228104591869960387562294493967561783554803180011308300107583655612462477085925980111644061327743934168713576250468872606822539717902621054191986609917870571037670882892078046574952991938674706766678902128158939456957845912841237023330720443376948295050273749621532064193218456264661788600200665490850701073678819888323226569278749506405167075174236168790233829112856834148109354513975750237356170396163976104933995749815274915579508986381150083100064889444249505338329041160333381824085421500792457220554185393142812887922223483230276667685866323826850071670111009209868514815323963462951964565841525076196192355142684278360337175071042966031965616800528974955491800392897524546398786575897335262265615669855684150465763828733903475880017426625108869381251938242509293995775828654234229311946239777507900064840236321784249360744885139204814184926657165660833936580562255911764670813107733725948714412009831824091197346154831195313512254326706585070982214786348352826872914962854702781115094012702956705572353206683034300505594845266246642075707930395600768507972380016100551020180216816049330462226373936717605640469119511902100972236435414652693990876057511589710901776178764552919663431255031072370566394205355758137199423309184743393825165652244186052671195367799975729160850938247260612794569835804595942684874448795805679040848145984586817733567159549606562387768690408768475779748854370490274251196979740185049449884836968843332855435075418307312062281495875827942729072438845612260526322219714953294141823459671638214792340645322293013642708177973244619748540459975148725469604068296515641374517799179896589561051800441903397309727306236094991631129292569732785527031297067773473898167684156272561977770166179833403525172969696510529255988481261564162639558487249715295217422513358612854633373270986578839126780092060642144635746245201790831256812821026699819668670170755517673576804462790208786704153254416499253518290372876057594282775303247841688039610290559969268014679442471583801406027127085657716112083274027727715303013739236534395877260755602754352347627674531135384277412408718783427142967311993356440532625698151645603138206921957569509982292992046732559850117597350218818308957829634755980267577703696430059520387154028788125930080031454581433077677606073394849743722298784382820190476205179855988035285529790508690873254745380960378417322428236737501475364749012340619825867734027178063129499606178110783479079652135486736792451832340427521881532559094075262841194985415081605729785670449668294869088728079490427102459221216589968423415988951182494755734725981573941876792453114275451606373432015257245037609601629814782318605644975040600032745748724042999806372007364601024488228440851331667303975724593210791466331931666783910728937257642383642055177662929053254522249952790482463071647299232226917253174380043693348209460793613751875684985996192004003702317217676250017537964613395228124580719616018888313838186789149495276015874941668885366631912775793356564873508574067538236303902600946996172233157309871711174900249516392514993143244736533893421369123771041807301473389125200398501078533433834232343992396400427201102164372353674215730370551723235105611049165505322105812342003847232134126981588843465471997930236524244520468842317398496715254229327757329065869795383414176673520823770816317430707159573434267755561484338178124763057588236896960811910027860326284591074509874093366245827744381052456636970560975688725833477144359432622231321932239294211049269009271067720297400811011741946223361675416965024950162962053781378226991327688600563338599681433372453128990151867441825428230816191649159842764228079400306653456275058085930738169062039846487538826867748093583512241774836148525882063780520709345807703428225277616437477882554384423162436912480493054048322393411736104380199272458632119187773040412976754024101977000984686029421713998199109536443792367431257247361719877895732826715566121757910445141845459348657323216507136332276063669210992533255403960386488367387149403552465582108199160682505802226445276906296812998171931711741253010575294704708343238442535480480091484494083882336515425712437987753183325798589487288778948680796026158984718745271542091636791244588055889480957667551984339804279437856399929203470698178406190231340039125100983351784145128276435181881425833300267381506981579981732432422693045476049170414005529344489728579508919774324841506899830244348514134466460803450742373852622318505423524408023983057793612284322017004720007212416415586179795479410457266193397625041723862514748599708721942985728835655744051797611574410638046511128224790376945164820602823807731879556595994190111779148194117432701502016043507466895977731888976188055640437367806779838298256484532244408526607348997603206048802304696262693782506599202418697251772903702045025306026880381048707843757722667857191230653052658190398004394893487054605984397566677628928700068983708342248100180065217195693977536547384631043794056975183727114187749242843839285020255567762242412864608633012141248444719004667923323395458721096801193917988518997321801558805076239841042213691160967028993904046636964113112565271676116371115645581410061074686396176957340311605926906057777125606724156741876025273705365849599306433032710571388980757433475349048816948057359250672667526862217582242343034527237185696487876552969116293617305132533173689529364670432154445043713223771188458749942712935736761845880588879105337090766833242355611623999449590839140360374731065930698790386688365852856756223777295153750134413007892209598329296651636671279277859022121373084978211262736744584902750529137842718226729481452463684216734932215038896239591440665120018439427214210002893374083786224518374022452664592804839947732992055532012102169968373869776470378192584993012375890945881599341377521956830682010273454209720847851187033017342308238315629098281388268811198118873497078797227056193009819671963452040019238029937373999518629912858737598307541597384895354849290193127908723029858788014322162210413189760674440720625703906170164784659148268219459783260528361551923787795140760597509142312424015118798170728048955870156775148569457718803925903920301120819994967317461589875400898090658573789824147196919357993276303973910613596930605359522902888274072564045027807663315868104715535419502583419837782247687578751358658698065102629315632555596844696268654635726140081451031855935954235026939108780055266042290474350194232833208901170779411131424509461643603972521814249723548193389540586086304164476462434187353690228017208585646109074800799900445324262492276575647013553599239943692916606366295594698361780847583696113700279510815048859659279193944209098115874649066922478745542631850595818062865919286986528349117090540409962229310540771981582365039244420001288647187779862440073132545188153121641761452264206198006915242781584715006322286267129406537471741207808341441144439729248881500152631398026174413637546679810890342616397404691117919805200117437674555309121546474624034797204748716379164125058592774712239296649455030269749216429888375345795163362972702589193683784324570895533651494530601234189224271071474890120782213883230940028973193402202268248673061049989525151964516485616723048836171325024923244371553992190705309521189504266659984775577191777307127402871832572751071721106563031539082211829465862606448545879748888463081143321975867569291342278763182017694428532455863205932915851974297280713803887142284276159053557881084436152982014114195282020845804150448897104762569783879193668091090508017272286222546219852752934439816570804370919972241572027311521287122115131811250609033150174786045378472320474683690355192649552001765047089052900261563024507213521745663161087810421433541032806922651874433684045135431573764898796583976918267907070395416700431159729103210162896916615535683220481631338791257298162792069853753621201161094112128972354299782501380387554308176815368074057868724300433277048753977468386483869790059174458806219069088146948571706671986583464428285942802626766235435166028628995807361572384819952785276093019053012106038144954879101264005797537160982960518282830364389498474652514570534582065570506357014245688987768172439700650594180460514470555011670721610892259354049872362941311175513845786500512740054554331223768746978081766100668225260975923216478015020906980042277027814688324246770591145497271649495448879889352714494538634854843673191771677074268329142235080283128977471546786644951676429189100474088462677770463317196964601349632732260878495449240760493112639258430439868443978480186257369505679045220787556985378804939763314428778353755080826418955013231491813226690778292711795537364926394810613346626447465463544418803264226379179871679246161489486540314296051301752084355591009807339157086181451719545321259364277626656953851966686547790053725013171389689729794506566635908143519352110113148421140997207885129600402669916334838086402163261832854953864916955623784670100640705698356787221649318125197180477806366798761622297922462946604915652832473750845995974118907352775623642204842826952031517251052341627230306606637457496195938049449031131273242306286910570644704800691559316517482632983091319047963350560292513242550989535233797060908234262296243582358847709683432124083271221338465203461531437233379293534162996733448501610812779794040140336746896857769343440026861660270099061750462147290350350982307092643143953251447480632217903181026460231549469945146562469591444595139120758171834521549088416677071543210226897246861508805192445547163962231964547693955823583000261348543107555174925483786179713836429609279985121085150882743906641680466919804103645725461224139523639857055113253853085183970215064194873189547609973357224804586715366374948858052433374135677282736315848776027226688566232642352034286303669417756763042173710769305019967212478268352755622666409654116966879270793739507727315781779685639775858094409032691082210733168337769243204811444769649700964692417609085931588947440220053780647690732769269385024370423051781921227713728159918828973182713794709597550830969432683664694068388874204242028358874207671137074703573150169074392470226830129453285548752050131810309305081161615640903279779518536140628320691125111443289133414571323271787211115998326340347592148419451206451074894989189325505634516518055071818410680438229224306605902981639517042412879248010959637103875199524560459198483186892549633038372683404366209419871190849972368093270285452619488982206293750694607100138866882499739304934538297850828211430486189901193506604503492620389842395806956157835624496558697909101358298230148966349049118292627393517241943411937812452121452636592615522162027964470856977070912430767163749255427466033007214799112921382548690230830083936921174475466491258882477394719789122040528158311315187555922436433752953504423268889260422114980295370868872902061403688731191481929994358410843724140382839858914437728273679544910120558276142732965815875889012354859024558937725263850826734487796476030458587042894583623994455005554793764664031952553983448725594027876777106882270165606920822814593930009814256985273329935874986002291705685884428214752272188906998612632563652140840822878059618584809114561834595609551935402823598214981406843839493242097312443766264793731858346887312971649582993561330840941692088125702741366165655088718305662389674106050782362892676471251284418409846253799908794111334004173882395174004156985549209274073142776475647508194580680320428632085669728693190677804884451299021284131757077519449947281088186118809937004388813716228604589223460208228733045084973896121573046320181042876620879516838929176404198821908075428184644596464862117731920397072177882909007379058420553406463382663768780515659891981709261072203096043090751013779494900598912288449983321313901843582374126686639366851893761868014475790081087976959345085840700988620028503439699759889208941803540016764800753873136034517791999557942968165245123711713803412181746186062680348271843782203373938077423162202455198116963424584016702600313107404799831961567998105139817924913499894649769415043037599315490644330198880885205114035830352177155372647204442564689004141088896329220692395845126774272272040342440298313821435169315481631597550524912695120944633397138899750761923730427253138820832725019605490807471841788300553836243321442123644590537517420095881475685611199084209744322377795916328005271165419915634466555628630754417856872160490137060029282563620275905472065997114559461998389321730545325755839148616989890315886344903730208587337935866465177269789088654084877445735362584856903749704458768083024883814239403461119115369335879316400203618197310775533210365934870325639631768427347760806514610173246412214058302617300623330223935005952334789833981830478109653728301908097915536927228673898703870250739034390983794481498008070887138904784443804406573804744520536115229177875610597549508418436807972314489371697736450967452310703229439781161548811743408765677265906701456474251622136577902290603129022963394461097928481111378181220443394500206177953277897664164782641020831854685749324209331717597787980039704458988612982139275250653769827226820572447161704542857367922774897344786269531283211317373205612528738828977431229396415678877097227690768415207967511360844100593360815527527253616574929043688690153609497685258679446213041135886957626488173642451569437451075091347250461353099510180706641974779358218908591748136921419405405653618577732353719586160741781659575985511086714184992319946143048620607074257739525454304706792358461262761032881131283048794839157288651148081617964735715673032806507291874587879286783130228046907310272146920425108816018390072430546298080598728225647860828022015417969750468101970638034772488971404466286773161724057032827256237279295430058370245530074422546799540751393554128744156195319620318070122153323974575052112524462532263326950426361178883276052333093176113544911980834163984490941993464725508294709181004652115147920049477290247330464724527682473074263790000037264109421676288721560859963184472269167574642069736997416050292775569114213472192650784808594055904346506454326207335598042055962123724742281248534572420140165938049175693380050052828433359210263958823477898406551043279842844115566722217995784967513529263663602510627415687431475089892922453355027422821706718394758266319734367189508504656840250378343252709052817485116257370946425469997597695907628768345265850353623155524289733833512616015330341922406102665251373818139084777918764227757448471278645709327908708881443047959039929958488992801505996416735896506357735703035942293697927803148864849502789289349208964863986571498785354868835722092753870824544077628904117409926756367109308979913991370618746329805953991389121534582594143291742556651207646506509656601863724625712664049100243132325574424197160227225020891374381094990735188387473887203681718110917651279372213453602400858195508909444926122224528259404232963288917759519486271540789848148135276219094612791329614038437626431296146743443741110059417448817734113086655169338171664873268276572054687598826357013635422106449332601397380679171030719498847295238280551920750148011806454310884062438555674083402461638724602240632592876212770550147538818748575584918287438484361224726172006503398943711126671248767873725900508637075665309579039209489050146387215815897241881060101936273082190793391291875367457011556529771866635959682176466399513986682710172758851386914783424699142137394821156597370451059372581091621944067227629351695696776612799868359695171584956360311698884232461252463138020185911793908971087730161006241839714687127894074037785257869510669121621195368700119979058069681268421191758765446849838555456652716292190449871168247680348690845569848374663369340979402211798197684891359173704761688191502910675075338342276935750230205383216469963081015572815682883972184486129953758256553394109150936529567849657063549954549308015424748608982833055251901585692938538955202082416030678792859638225093744546202430467821043333941014384688574270181004790228563628931652423322959709636034345580899882416279500584498431531342371315876481444403309987642841567210630027849011669737269358321563981154107579308758582982499891852809810141961774685384131257856514300895893926662806242280779732480409686896735373289388794697671761383529833667218221747855319241109210204926148378105763020289574984889580202120348218394899969632905192039355362144696303098853110308217411054880975006804158243730856335867921871638832307784214111641524483696247527898175162915740101034852718154929529758423594867008391098631448484584710067066129353538123297286336778954505117137802295856401987863301772717836606882478924274259812791735573373194537916894237234655980077626288466197751457877446611843611459828864143707251062584795242650395135234049367127976843330526313921515118085800699787509787928872505332549610532386626298211068245751873969031740540892021753760786457188457904817462271546377068050101145475659220523049732177440645326016372724525217294832015820555191372058988559219173534268792406979913114063075151475055384158501308639048176895171888297462497471007477500127374499858185316451009189867776924603372790060385285388042622358021907476310680532946275630859363574537732951332274767279823128486424011423242029923494016940808043069005225779436181300160385711730685431308387690971485865697264001357107513346552499142219047285190472551917007830094125108208059087519562968535397053566584098040409408822904654055172465111019741153679823806493897055392115157296325361967351196964945537514998019791322776285802955643800037518493123043305518218346073935373233362522870587572135208507003371999549361074628591619709062958540649299855581008216799456180709503442151252494141207098819930033776715934312784226212835518185092100430886103588949480546961882868229647123555377574374285282381941791114170254353880056233494301854702254363596760792820659075233349194900830830788138715065004973024987678999926939826415513284550723211777469004175738680398319827607885029758423079292657903066368433269590770709401422940790113371526992061396412096446947669736309502170609814188114143649079990210640413428238387426371277559031610054163596694108913709599520537008453978116726383791561211038919031717109382030919317903830531017438593268038573844898059752572739420291745953202401542206666879927854050668966615392943100560842352168640430525377007740640434884733770845562249616105456653935246512201794560351186819742981352812692827619538374862656726853935663449899179523681872311653483117149731672981937057874170688480146932358602570244430580689750456212857036534618948228014563098432210901812554673230014578333603973238768274077024243688642382890095933425344602451474452604013179471970478583328743635521722224336612240274429317858929333248044241152686312024682533165059614828610548140716460204233918951924038030893748478176883606200850164802749351066647257081871516950285490433499555303661706614754360175427804035477879078747569589987142081075617362133482484471189588798278947792594723638612445603947980914336560892712011458170096860464013776882005973104522423719550118039768018971661994236334936555436558127661259460087684247429017448519204645918152312834119114822741494725421419216219753391302318948275280938229469994514613311131156475592784740381374556077158695952346548853344148092996670968746433365527887997925016566532396397846108073114818476255362310482973772846156294364933803613448694039551392787006447069045480587122081692954824464044232222726731351490619614124760607774789715748957587104412485060996776187353050385016624139387436282657586478631447211744594203018768479681772350362175297901136888664287490939181115645637680574817829441568602322936173356775766778345630957559530175301766906711693795266674490789135408253749942062004517113583477638535039729531101932359400786322639869791948123339012513398716776420514891021119602891357416539738273004153182258982867022387609241715202831771885330008527853261986349636781569547946850948448618209693033599841732725623161870084732704358718536843569702358983714303059762830374247840984029726586857340764635687215543793050050573233766157247923046441961459508226574582371430166985870356392067732261303710781901041984603952005852316485793242989106582066279003571852976625273790207837153634158918793746324876075974253603760726803002237469685669627567249212745653502299967306339188401578391556038100511031055672799298346410155620065325224417296077731653273258454479067052112743933302610539429995358920832632966513512067810363479881048515548225208554654829770613178797120680854472548414278251437151729789115518232742889478631264055460034457308190346797289566728590883479892077939784817243613671801748354287397949747197227334203867323490258549187053264392857520096213587799662761870531485201911599296214997161193463762320167760450151934208164619960210390967318049417496655792486145368490765255004737528991963874877651059604977679594512147045537313538169168776553680009928364651634546682008901106651132258594910002620852324269566892013190636237740022213369605068616534753826863176739467867718478650412531405053358263303974373257594664453212435944640944697505025143182445745117332766671951367188215049954691165190558205574741287978643467920999885078825675269660488900470073754557497960633168540147375824697571131170167061424016243122235821194510179065134103824167310229616588119079067215134651012953846135161918234185806382867786334028189195391333237552923781987958756500032598617010681577407437161254080143867791496078674919153659617060525347361894455272465555460503813797239013264159854434486120531871573724610030040472591222900773230173622662413909095857276013321662888927391876529451611046131117842958106269531335705580697054773999485588988352460226305239130001563961114014941078329482057075658974526082037303676574733284535529292292810469002598938596607724122309448732252529970056597416814890114901216815468063501363137545424230328970891386317198827787803685015532242758379211332213274950581224998004139184053221877084942853239100430043745921043086282245130007160283783219078241449218929477503503401095779005155920827589141426187080921729176455227956652733532640162733303255079388063236650583313367780796312210383242091748478536316951760607669708426164775369168573896803142839429252757076179177139657308686304878491890260063474485124811647769303359397305248059928979957777871612674338080560188308353639020479816354221966471024053501102846602235032951365597073112787347592696598063751673000159695484698433741845550353546673185074451978601727845584075801457260939626023155877008024998335820026156289568525897697945214470343930962758113539426673003155784074865638004585699178174774246348112123486773689182382199660050435030185063540345167287999440406419115389830916487509177011320041471647837304650399366426896280726830576852027056847112523452377279003724545648123484470086809034606322947284709183247454594121039524231466604362585353505206053117681683289492378882262971673410435154653724679852442347076990236706759842396494660331922062438129273265251034656648209676537046405315231478020378939533125890806964914711713365840343162138651077843449153256827536784491429300450886524681024270571635034643618297140858309991227011153801428874703840293565114064735644897734261022804652122077157781061241266638897739796175048573792137827865909606603996883174525880036474897880686196756160396395510084277782600464361011999295006662169243173175085949727291380407504028600197858698549212327446364685497348597193176910517939574167472516269098722233965916250147698954205418422069572048058289781814147434202148104762218927748372822785470609189974493836674838951665866060233894887274004533606841405108371262647960295652114357474812666468661437584728384877055196582515200739364862264383953404607075788822727371186021029284175854331792461693381079322803559460104275955000720033375422499305773992529763439508760146274365664109488486333043780333771150587123960258056667825273080951925338562630744182849760494907003510528017886357634292721074467605938141839989607904927577130877764592336752263178651475034066935905417057686332116301078584546977870270634314008329462005767062579199928452161107866173592145863898551648415457473450175268718122661277830393223136744281220204848544280906872186028232433820068891155792506579305341675741830370865033447778649177765265450531743097489684669772485449051457595106833570262990437712075548172481213263888897537839923972641241702209062294220705971812200497593917273587689637386291734127471450888882768786800150685329639844434227181312973302285350729870130203635065053253185874897483760348273451049008116782311022159604218297784892527530921397409091086806680266343637020549496655359836850025498538423021039141147930257601037661111122812636906685867776606953266031166524099139780398641768666841105066744921192940124254857861034064919167974814721810836248234911807914881374538617147782978090554206150608865497204357835332628538606982460635943588164516276436072640138317148469322806730324756088626564867933097035901659054747586252080396288362508506828786660997883794453745211134748835952543204282925735046160774790847222160748358191634470893763039012963464824741186565177427276291856826087550707426303623658548200560369849400039839519689525923798866078280695760282612528653231158079923678533843082794690541677210162715506093335254346795059582762549938215087755179668087581735264870445871300739478872122054973276136078262620637165194533818907803817488023931101931763089932457419866249467784389108114054321342568310998173962284453050548624640224737627814417107454272181878342977136274071544080942571364075130377941560680544658777810856965971323476703823809761794574584984168990599489172362133896369609904938914557789200187210908352423510684927351742469054140890745295783101167516623112310920312282675980317504638416080932011822284748123902333595351771233226068571411372055980297393248148671503674516678762327323771625026139378228160418491912345869123479726783927249327846907319329867819070477272426759620646498504535450193662061920472648715832530608265208787973009967754092120629571551213318562355877109151723739330748440693757857197262102846256687056060774964922701756410877322825533158089833781614150064127348162966879633293659844924359256502902826104653423900891855562096517973393372815507817823193870756230879685251749650861497761490514818171336854693025590269645674500831150130856484655974959269700581916669168335586163841709104385383912029320371790667548358379155559633369334783933848876923891790299690824597531745225181425241609083439662383920181977127568515545424773245053136313323114870903349278614787091315783765242506972496976909100172185042926769561389126293587267497544403502664980938317883942642584127355782616953141117725279079323696460626474372982394637198175081142416039339568489238725839836156508505383495312678425652835507919231814925692425255279658214514971698032645214719646949707254772498031545323427267380398027171522261508055213913055187336207886159326479157118771924881773019280530727675889754836722649377661339149907566731054142934055801094956589900826574536662173462993216573361972212015781132392400937359631656959773913742784112120281090672729074031734897780626495017824937673764165584068137954564702552640372239754221040903918185157666301481971020012699113190411559222635872648886020551347926468354555988945747440294115097501071911379108989467593276143476829926985737241255925710978699637798653064594412913504108729302173511070063518596054305455407407536623973763263294726784019805202258894905218227206996130152342349749355406400398353668523325786866702903889733549357813723043078016621124126818596397116032099323161321761996729655297421659425596214702691133487698558736926760672944091757870743972611592383086144909626920840686158004788109095228194033825623158634597912234517124370983908970703276819203249220518645271026456536047488393947980921875320749743120139932941233903270429649265776869661861379565082405640933580222217613097726338933468143565535456749951007888186086314196896949827170030437148658152405386413456238413700275873614767685215542288673288275244842823523406886163692099303364286429108394526268267319367942779025328131369145785742138759915749737052792610209950746894370847889631533128383213970484702785125464549454016339032595256110055903673490837570028791507151388191387136776445710944972774036246594548300100999808233684304641491216890438679744378435517672529961221232798570712784021441638120209153843341106902042077985320976515966066415074277040951654407341128604754971714550919977612149697931813859209866905475879676552338279866540340359625807062206398345489073996447126900871436865283420959707477530229152073050558191853853671889906291276967485110573910161346842406116833902569349197545743845097441026845626022042508037791676007911411761222060426702450237330588791829871024973280062046837372605918391638325004038844629873574049840975703274872880693371076381021507922600683240096710901669904677546499668425949633050680391869676506189521406159292659063001032207453865337383711357332125883046154004679835680751595049828446122456842424497053077514722481386815147920864882559191419839951275115113028758487193653850173222760844920316228919075608134945801587865457395718602800484613443472766466253783902392452348312398879676111706345895659190191185512740854258214880233625493630608879639671739928738398973445158225351783955158711547732288993703554317848157679035558268521089313840760953343752914355105575133005450597750215145576035628905802695130969181549474071263517839183901325157079813109169562918908608169016655978920866006533635756991431375684446817970956125692752299035074341131855768939226411992494615226378855859625018856134922777707021775367292231049946529407494647997958332642942539867164214595647085716810841987241389538922557508671215063655878103781643408264742050625131294192389011098269048736678520630896825916208134179436225853237738076268230665744674331181181286926940116519396893090754636512319013752189290304008005676489596964883913025972951560133834114822884087695379986153851897713074415861733547300242783658934648620561147030666087976062885774750587623345435930978539509169248083246995157756797119530913069140652902615860946936515865708982776209281005555799498978448764213970253584567062352998560525668922216279716887171314053386990467113669954411959048611899137416272371949434869236055286730365879342963746303771878646727073550242943401846760302768422910107248269214268253180525804185212919263871457065204893841668972070094726235506177330968037456852669609195078479803284969051711477961406938979487792837395249800636955892347621927647553360407086826010497841081900827260457597181516635859521337536150831001218170398471286770936892454544602728030825860440194170398592115793247076088728862167071490204060931031841583059435111101124594512151216327644806939819219048449350406844715896089980183944180939159613771718803018432984481721798844473640432840381654445665530658681801965026899237702173517589585719601749315011210727953195728173903779409831730369555640595184900692557205491198157778813383724572229038880162355989554529535646565110335337035842244302705236046575976641186050541543903733521591716455213808758130151694974714264068880882873569026129036030761239145631416242089957530898718134467655859736956111020806418829799382478205489889868596342995486124107810581765097562529062739198462133095852125719128760886121496890519578995531020514443450733192943332450920111758625723784436798731012828949852714373379051722337504557047304605585190693896531489945734924819080652727837772618021698802452805916946958914228730758868539835660058251026917754997576808366570787903833727015980700190988538652904458537813364836851656389849494932366882705316030328802899604478656124391483256560301732750480942311625151109466882322950103365492053348543523431880232318123869670289882325151214943928417916638859685499957797741749540488236897290109593429328767494904223431752935808128565251260497017593310188740390957446619483815601296225432417026573050391054893035807383352489673355322796052016480393124733607980396722036421287714793369403230809375366680783524686111073042727923615122623757296977483291210763366587769719644143037437100408776396560066486154337108580110094189147706334161194457022969505180556201308731230073155444746892593108305265932653827611620481312743872857544323958716515119773484230609292506352289183199890547567124019176441996087880435386085041938236507503149486406592429927996093456935238420200170467118017257477324367674689651014070928831887386342923334046288037716484615961465537355040460884222314623065806730075177075348243762032189414431383012936583223220058814746299298974238352130862754491898294447871803885370452592791874900058836587080667883708923028806426697922086844804868631508206718575798510325970858835760754677714248818305939008248773849344521973618667336028251158813168987501451149972510140496114099611543788493942868304484923816681638257542748714475108363247760087695419938024798909367407732745287028524834050523427189739480106826044283393774579109414601218768490037636153028805983050623598630575472339388826705282027688751274436928096013613370298689958660450188064037740392536304073855480853298720929174999709220105035258673464884974855613610188480695480343299978480050641183827571404165113648373937288897313950952103986621899565487847744028895873707492545878958076628403441353536005000211336973151851352510527755424422862791093166878083568050737861922429959910933577706884002045869879564054880809887590829470088695701707134333884169710699047178762291902281799314491997309701151287246376426099970296328468359881539148874383270198633147540370067779305287380588333082528015488542633369409954751522337430414100460102130706960968456371974189929159698395926488404170121416918399027073402981834581100182720838929511148410244618684217688825578030567541783108134301973604814288801041398118788669213899222362173692707440752300903949593105470276101040562460253115571317891260890021060871501234940034916559736382187319010996232070640856005257380023295087246537086902616425035953689445365390955899529862984165909473396000730717859918278820348077405776015986945730412292350180286152792899728860567723011444494157091213704707054702932362171297425738339171026410786347458879022960520648159846442096443713507068552559580442290430316187233783613788850002949055492634102642125562226847451844845436522897426050210976438885194300007532068700273229537357631584746871827658267491200619213055100412805784856811390260282588737508283510149738520393866585372978717486159166246405205139320003774682646601210974488591125406661814554725183967056521667022945142370849400895929410057558414184809719913217350438125294088388108283708011023613160792944169993334212903205448327927407574392431926531587888789523755422505039279336851602594631366743433842370364519217023886962644743847066010668795101624263161246801754394071403139757951134914580066789575290423396037084131485434905656274975983529048354192663048330680930379743977725655075870017358557334995660270056473019077212094239672142150355828169110805796953376065289432271712987364450460158328398247397180680681604703725308479459295445647779580512535776739645032750237483067144299665724767560032455779909312453759551387083612708210999092938517064587012045243186945871479050475956991374700306866442785594476858983043120194638746943370207824589432921238710194946868496721158687174891003480421937462658526763981806193632849620154847443169093220837949888680261942034256393681875136812878264355673418556538472933436684883353334723340958444481171132161079009058725491220645680990588289232403825044256896783320573473529060376384083527747962750509504088447798954085696852273724197032305010381931180625949053857613955482772757961586927735344575168738908293427374942275338002814764999589360418086029094053638059710570373308198510240011905932037521841205162853244006491002629232907682123710993251376879379588995516521382263083988606577523384594921582970297298939251283066168698061921077334590881117528264235421476730406637775682270148197199110917141916374842489486371040083378956207770683226452010393660516062406671638710590675127590803921114018216419630035039979151122411256038497688876624933329457722019161972984527365213867599204525612835102224846356495575330473532257538236607720031486447159813762046704275969350510377726437253742342820321414262353249328630200099677977178166002284258244187553618032081187288057316646688819199155738872497124415666618950450494472941649048025807767229668480804630086654492265831790466252050949236899968607061243735364567818996845916686545672923948922167888205122384734754267446853796146277752160130335106430991267416366720961450503874071152473671396635299413113936382087259441828028899946994826699802589545101718754279484382144415005883025960907314205799671565584777480161644248458067249884156636688632609102954036122643583672823538690192568419683076948386489723589192248418750824042651345179210435765095061995930855604982514592952326096384431528526369667362594746146106901903981524289196184335579143220867746246445727879695347712668927750451569745252519132920041227363537889148186098532976215350104667602699451536777791321258256719165756040621242551119566230593233704458133265045176859034582248128637913920199124578976732821347665611704756931079003918333663349727948431458045367711278126473185603914756325472948588897956538270007710031774918587811641716570403844995312547106620575183972671904995676104580588272210965810049372742511186750371288164517158435523094120103457000963054886294285172471169372797951315507444129832605684939654489076866490747703657676488904893011927812266743163914030767811716545946955623232386288019616995319967263422399962337721666531673002151819904244963104463464407181716648635509680108989601378133387373296251012101988181391222836583434888634122629960316505669026891713380525105409828096866191712821036804219472522268106440088115516576562586793681921327497870805026624370172101623822754434055751663299657662992630743379004593487022347516951324129122110291416602230728798891799020789519136039279266593586367557563985449994017253742074102202210076204449492843307567922818657298735448559223069985999998777655648424793930716707789382521422804377673476043816714957316977758186799965343823619757167352468930610990598957642402971889927134444292721601927793266438561217527894037548203843294810639607587132957472530845242743961994830416471257866941532987062299854984699890393979305802066868120229639448353838060292897864299534672522978215992708446526161804526300538903767318804774368125300714507388713031799600083098790376349581191519336045096672663972470305307267876531246896550307050663193302051310384576233759114223464448898847079044991479613781158828506049711020146356490272850508333417634917658919178988652425827116024859384698813674884033686087218084814304584435828879525607728279156565760811083947950320448640464518200758618111052137161458638591867781543546165321195171866393868253153833343678371904923212965373507343872511017465129090683006281780646557498705020755743569938917219473236324813664550890248374291745327577824427670125184405645075814675944906291809025393449558984194578901223464125671031749795415762852213783359099843409184748367740444304823059886745521474716490437773882534419044075662601355253503020556308592829681858250812457604402249530546905460113104769678577654425069026365578440742713792940947203232848319480399967569726253084749364677018893628892168509236718525291151246251553080097224320387103471777056548699370059622058178939840277627767787104303719040913821975076275159530440115772765023314206349551035852452696033134395950682719357042535627519465025598317744471000888059004883934139773641331799848587502137846094340794098538220113326834688216989961446445108506385983297013481636608344155858264466063113462350822687304363665229250427864877306651929462875359687741458762995430551347902476161148927696924014415861029707105626182992854304203688617192255151195005407997408220162282993871895643405156632772954799192069636633311754080274328552664387494005304488990175764357690837332071824338297937035454310425508429096186147230491658700601305965875259918932580599410638490869622088991690739628892225511484574319002950898616551029907649161401303881655215485602419663193472763664476680236772579875421159714277114436065340068441492313163606437558656993164403009699481451940044584557852072482410171624953027568313757613150758402965955745019285140226958140434065426242319792483016547990201424338156767591380125482785763574215303087166886911045459993449212931278585110461979013404236159678386499615863733505975318480866093889902578191654544162654593064319878502136990502347547648764529712088698472753725623715113766963996554244888465238794920193486025734242373998819079115330159881408633705294320633968558960409782861080206742946180082775769392214902832235808687053863163328421086394852090269475758588367797704625280783661494938207586477882911743823741536872296892440006284456971866949279903107571830655007431606816139078873266639847764494733608176725155515910810754158360623189096215159221156061456226702299081509328559083816778462160376497331689926999329577318596115520630067583808962043369370461463672581672303807741167741723854122720722894648178436876133127649617890085408627735954697957445045791982602128635947808499633467004374369019128590448518354789405103526022682634843009900826407758026944204999664759605602270508672192649916162136701994588289670652242205920617930639165828317495285139621539391436068766251205301166127038394696705927944859686367938546590175417795702401193594513024299826649762315538167637006342763303684489009569694319780315070861912017040623014340309825865821567419972177671402854873670065148847726646731652192621326507798759702399637426204046071122379063280216199297409242510782200855350735348993700348375493579704982280239697447799145409185418759920818400056089649204332109919047644954609097998485054312979365948313131219347116382712815095845385911976098675958006121051861859600731123787974767077877400148147288549347630326248399335975172498871706393814918291757643638523718308293956513404721245647587275075952191893969570006817672993970809339397084223722585478650300226798739079610600609742461774439404487882078734996913222682748740938873007626182953820469522340552215735328108935328372070988905433981474298973924179619658040601337212502862639891881499627519156482479302318929675505684192284437650901297130894338584476383700756108109530261827162698419442920234181758982590007399208988706926877255659323645594495663824174284239736419018595067617131299335174376349679857743107515321199159848304245099490980252294134509225945987657904378761315839918590636397085576323371491750890056685535635101005409279640878223426695339163662710087325696908077609362561834480921330706509741616859714014489027937117038996750430934565755531989141907428095539418423857935997759743397257485865666041153467780553031113663384890997277839584592427508913692149036846451435732896955898311750395033906634495661776853179234134713463112700118531608131403555595849116083663432333244387373599923138896122976908855649185751610173110350670057795994693167473314124246401396106562782609301606234994535265961259329382604323103414254283125123766794664828436616762698267213290084256952707938840414352684335212798630065538100025734758942705064792000151669579259472620942292287501071171468057065166967637506199499344405311810865810734451245916338309005218478187635032115700263322506109130330010917347735225702441372384414562380499764457961393031314102160874487569649633981580923943080542140135243033534570082337613732021923737931593507215520012216087481697505616840493437602707715628029505410679129565521789971702121700021010348456279380363609672174879026508683106917050853573358913562122983096588223579848629333726185331083755341439855402680277376767217942431573752330800067547841438640739910510045612814359497141968680775828566383782756653522003105507022749386530181768193872723580317345801607409459827207434696320327246440248374470565577345904129622281094730195748439262007586728352335638393093593338793195928967341520507918968987701198001833573288258164712696064378084524546593279321613905269838706985962129919900098413205769262066210507832685362349508191837481863980863761616884102769599454709568964986621941557193944302656750488729407347390939139132437360050974057602896475544499007071935859022110656877423870706320342467735911870956600861391911770552075402809444729081649913289180994820334507047603952285467647914317791882651965644067120194538311137002592189608686709230132852628401109440218533167202942549849484782921939571452307714312095326488073177636975839262693680663551576648359787861655818004791363822828134429287356199630747409589234769405137854578242987313582439126396339609497509304977882325421853471854999200595355321465494380254254303326466537883970008432452027720350990134234230767878820699130453845531687042736350523415377660735206213351447160059209036345313949639883724875369060148746793610424592510757239696413582947143107213673503863765754922535740864118559704650426664498492872094680759773683669456575582652766777824967385794018166268419168608975676430118063976160550494336674777686507362228038943918316651443585743392076385934536991178062024285759564469285403947949231870819120346666133687720645251671758710093884709789821914012747633100158350561471764327314672753535982025493503463674548727347017929992495964743125223940740562764157328641346854797022325479333552226427288015672585684940008697122978465235530134664493537815015707177025453043590714961464489875457365885578866818639156603936379027454858466893073656489875356853761632131694277346411636172228109505884390718753501902603970187428391994145392850622650419269809386804031000012692152986656619134672602925114683414001262541476714028606887160859107082030228290530777997297589729743907627523078158101194480859084889845172511930203708583906146050957747282249626392854977430828272352372811785794920609068898101843261688193199733272732186649020507629930221570301316975569998485020268491707885713621094156492374513720827533437521886467058296690339441838201197629681339720434394775688223691233785987462251054247935760153843228494094750942291695847948093257785663744624455478755156503939212591409770753365249709478778322735914281949693023445718166592847951548653470126116865490184521255842872085530929662994325316012950806133988841656032797412367812379469078807377730154750919442128871157812187385726265977100974987790333695945292981438475986998376720683752119506465974926438441168154944785727889767554868494589521311173957513153165872029796000205185744162438415478544239791921503649613311324270571308764302554732775727247904809000415997693948817532372089064183427472008421562374033189344711797500515179309145247250757848244173577972043562156485969203996141231843481084186106269495780366686455945253495315031438472891595837620604860311830261854662212822959799321230775104158289821251492479377873805522072597223323079130591040219186791366726324206705214103257487088515288379643128157701643946744393062691654080779200495511833836861812716672839855607266583923292243142951618883199260698393172008083853602837919940959534411749405722043841567006273947727557535850070595440950818692954270466326542945691132632510013450405629020507404324720139360221023356674895752697265840339684259311591134128835538325527290681030102255566173343782931097409950749166112910539105858964168516948590902788506919677605414623848547235177381492516227262381443252060502522402455429844636910956966287816024476505711624928626344474171537316725834545772839145943821965859303807875734081029810835997484230908479764441968767487586100905685370660047052990069508916779563620430477151069824579907614903455064526556575343340924007522810816551074710609109151094119450222673358828657803510419884382813769597071676042927944240113189670542402512063208273588490370720122366161307729874985424454161239158352872771637063270609210951920247838828643867821353586416575639245230557788565063183489512461242127959216177727641658913204254426061619993000765619318612779453048740667983699856482176962042472064495128997608874740349029650238165531915365045938657296984074821847695511011874764855962815050125107545090731938726579828866637421695658375224617851578104305496181822136699258267619305721502676235660233910166642425408810450385065906951361588193305561728306770882758675232015954384679263422056805709035044266697749697275310669266278830158244298848532241356518309745064112373915322423983619046377605415212021488828291397242032025230141309728823894491482115005794680589332327974501126807013114870385584014715244741614107114838963258332697143997575622068145616915254142584888171911479640192768661699892808464111887109873840100745403485223949388329512030610887082797464751768813528481848024862987504491012194644478686348985372881818470411277872024150621678497289976466513855293169551152877681596152045513579024186547677351386719742448386370032418404110729448403385202182969307326427315792779262288765853213887144848888147276404658374464183042414634110038716039159206836777039247877154450711984741248036286165803015140226169984649498034361426890012798818449669315657018342428219181537130121140134739467248163659653049437198148282929496101555650873432716357068728813682309337357646111105455299915410758330079568041562714841241411066126558587609794764349782650642998337888215112127352705271506753236542144912966469061435110504103743933027077313039727400469179490392324728687352707498409406773753078580900336374887712289614886663977402904383386831159471112442891530093949972108083575047231463386379761793328766351511071892583973890561559267574150073672949630606332039121364096308254613891540109716293422983869283994162441495631325447308487612106661887827669220829944594235094644338816723916342085998272417941085804167889186766063847084760151568525206569360133109381278321724124883722320010557252652891929478088465272942678434693007643644744355469063942273351633474421440122004427825036528406969346620034695319516933653586274370652027771912646423811639570307934742448462249196569645005664572735249431706028699524536138908277883262188528159033435392006916381753160830678307439425250639126140604058740208867914166681818669766811156893452170210990413505898478093411243459828627445798367603804540297084153099187892188622897229337673059105364374360628579521869144288639718099560986502585891704688626893899021933937310712381731199701589098129366234728538208869482199181262682747198374664217724025283866382407709140148720379587440358025315159204714009854959387073274053841551536394448146378716890391666683628357755774623698505709778468351231549962832437670884312431423332242847304465257838047801505861127799854238377146718125225595606444430424824162711317162452231370490640822871980324197804408594631735888578914412369416695612637349405054989179889976297576607888440176963177923741105690759998925185500359286747332875389825697657379960151704673085300279206844989940584019470268567396051799048935496941666333300589143508754440428799130375808289778321429003823887824383374388227097095786052199610411470117729136742153975372268365112441274751432357106764933549725758470728015867891025897147138539494157846319287202192531466869493952065684590966740161372162149954531319339328556499225741416493582332143292378366337762163677948423732977322135139324912072854133156202445765974468568577374975454610156681353174628602545611582865080609056483242596939837918322415365138289942703407101011890758989125880178013656532907841201853337062564083253393082698326972395853371740944632904297199183472993371827547182930472651735531254257385939419943479511739879251065434428932553201215909341236092872684805016155940357009133960987899937171767531696729288742755565215269723874550561701159616717670777864954343332735156093266611454458287902473308366118102746946305813095618594376612536725922455438297093425553790239921659579202449846132018479882977365259030857298294094087933671350221838849158086163027870374231820332223323493329762557329718783599608823467330178483406513774198066742719646189247386476192162479622755731582878452357612877937566579717847974347943818657308912239634323146855218830154654108776206362578894375992746595557945294283849871826520175547419494838257959401948195260557113872004141138313739217643355282235637916538298495688240508521444599107018870620965680385527628547715568805007393247744087249130801445860149546878662939500071323874659379207201667201878927570114970532102952307349804608240119584274496012606609047182039248318092158138165565867750734251331465910391766491390653991953807199660765095277745914057770803595332686291124760003803947264043774893970131274709264129591587923763553887129722456117967662745158268392762922212303112588730727033092460135463239915919842346784067276843251867051267380545330464356455333354020213650650534036017218343517155800260792184516594873873907197087433255295916425239759112874502226108592291979959679564882061973749527766120997391276704034634892414673918277269506788928353890694768224908708785158559018520213105656876206000591988343505663600857181089338969666552643941832349981578776030414479156408004207183405744126382641216575096751418289054882607074493608187734948140979124833452612975929250026759080233366830856346322386704470465946200095318636523581039676660937811020153843540498609873988306703414786205466459219485807181302925689083981031604161749412442030038988233499066602852363408503562842235427296835455122626404125465830440259797372946797447030791331401592073445877207771336914933025087418851369446453185473380494767356790726319162298840919182506002811944466007408414754819483782986480761216189892850342313111057734271735224369237491307623571153708284384152500714682401557275191315535661657687370341431772573127219019942664251052034838775274928125192428502319496401076107510620972698833093969419832774513009988734309111306059804344054170563297351325056274267601633711362298885653920697338913827742618950295251023052112482291819429188507009445460662325192052926250270369176912103626934780261349088172909337450196649682535537714283760587237669663576381997774910303138411936941277739363295550797874845690693904802851312258626299555199158790832352968772373681283539698666150794801083998191482367889399282289501590852786886174285056014613599228745775795720390608108576550048991419087383331185029547696559743783632583277302243691447239443212967492873388770631343535795013288645531629960068514752673332179909619137956563761944830702169603254120102990922055352942983824054909290363126343936067590801370312718255567793820422482457150239110526891494298244153264915463687603040295221599847931243194811723569607286721837924714863854506067509278871367237144114811003881721713828575602816775063096152314897199654892797517355216667862852599775940801372211353386025921806720537617982744195518107555328651956099199439425230894758297288957543462849027330884644215392954828929080567221571213597852212808253038302153133928182329720549372271221728624634507202557039611454139309130670305444562027559452942147491551791473117345611333386804340146575155176103597427006448257221649006968077013335706481398420780252537924357475784862420438113102756169087949710595097503657368912756243508191078375030724731246359801030114645286833647609482466416195128177818720096158022896848017733888585376134355137224463124404070547739692206545106140039989066333663221917851752403584198212780182642607466612133493028753901486446424249813809556850172286875873631157120373372041114354614806758829567297464901453104017963415990221869786185118803040576554052108668460100284676362020051835887565573167896571689833754280709202525291540847778711250364797997370219070642026656064101237395326472051491630464043882410243175215105524581159669775140145813918159732690737396687965051579384953376902547276006001155717594749329608340307145718578057665327996005457061641527865211581496258122457456868716818602222514247405373419006259473093836764400273555672974381198554504676381861287009370912063138043589657031623571466854948401356252360990699214933131253381991593651956911189895749917938143790014666142013842306306197338174845033394847951644287173903930483880689736152943329033325092631765366131848883180410304095100474149272256815079370206650683973725823978900127518733846054155813283267866663316098438043974480661891257447026663089194211896831691553176148180756396946193777788797989136115136251422892060741424804153144465563363896104504978784275411474469834752547072115379611405595200424092971106344031934364750558376930852140814886365211453473760259949721280573052318616908275453164850801316283651197564977334059708870305889342346852789901163618035957192317209552007920165754539195319404225166779828718231049731631202594745018433942194307494497002090041971873324653354460546601559844490774044428026042860171247379221871466693651731070840918926439064617546056712636581018912493200052968267603247116765792416148669427338826733031661612514674124155757598070988758414088128302827893472577073244940621828842831232274213634298077770279590540463160336319784565903938942071825825337607250593906631477806832083055174075813604782059118300213977326736192160659230631321404767242789724814999667606095744081138852429456741139915295112047919281548231609472988393218319971694875525242914454330734984244262410961052731498385521697458889440512897334055600050904055308979653832445112486846188259535092694325181048216618128046831026286522534896143965736766008471268117058853441556613765670734723255577847975351180550624715405147089084636591407862288878405122939436549726842620714677277323480087304785845188827745237641705858720115769875778014410572810069399940104027853279642210671421457358793930133647256985595010425659353985359214755987578861273841271077569513927697239562707183894654168483790133747692305206215646103804395937427316902540820689297243995229015573150273418547120662779230733947217093279431802825587606858644273346858822459153798652709293432122996874043819685535502857167843732806157723657548895071618506468107681294744019181543907546536692150825061971349876726015722590908976929966892719931173474026746679989890766602159730705219035801191392361947240177400450390946004044613532824089771125493744323799226375662996049017266019486812385031919820965813561633400910075670431850091915556811489433288893397810194350679627048988406040544070178476117898590137296050942570120490014366481763993025282351308191499754855420066592009159105318239543195119754603107426423935323662027880826556933987939697237333860393669562170046298572552690101015082823073604181028421919734342477332946567019917329252691810826327644360559295680235354369763619542254624243649110993717109293151541951929486812408114303085065325721538828522021895436983837255104404311298266320426313109639066285383724963728370520585112657386290710433618044385061876992931074827417894161333936631858239054409326578183973491536989196238900566723006090561117300775140427529933185533790771954616826070574605459763315737597006101508020728816462202038398531253722442256347297614748188401953804271403032747265864811010387911864834402290870554855316817362052439209596700293356578439824169783390141472825002055363763577066329578359969932242538292283591699293615315732823925626007813381445535353885124963076083518975842773285853916466820621596563347173600605336849966563587213636972048803084816802585347348420340154379667758265575915243764992585546314454315345688128480827425843158623938957061472755812467698683219444530488118144556810367613839043866178501563517585155298664830609206377223856592651918606622657247567563732257943036250726619832054143943161292264955118251115307816862501181319428205089149454215210653223972095757889611697406555334395057417144386605723756524223535289468874025477519813591468820987910728984047763321686491578172637518992161915727247072401919378550514369446590095729554539063632358555252956238266672399197693785855787504823259347021827760848473493703566463927279311132183814706198084639346956114553781502409567188735055411729780055604960360505148223009624990796955067935245726793086183570279821341492601162084523346305207865003220508213692320011230539605956052222963205904522944280155997311168974834074624676291891363444576403082447097207885872947625307846252934655355761418499478610176563050557852952285789012476595515108381348448030070988346056996875630695883413546321369300688328026050743715265710859725080275944400333756648456423864076461295965653541938451939667002212851960743426937609141698488504375634911169854524941630764997133267188236978703769924958855048616863927891526773163323832622479913022799587586768562505739000551740990633433906334895097592768317707376133772785405781006124407666395060857222631071101287618503047283571390162907726555823852012679640553476977984274793515375700052588042381787357429660243141159292539192329545742181844054164558244673373832659306924189921616032581142797606153927771002473980001816500183725305485424668006075118381101947885248519419403292960124557667178265389929946146854956799350806750390893284017925119066486911845453380754392951651875413727083911856505500262895609364639208647714986732509406753909166358384093379450101876790580653346035479597679349717225040436016684818177435802557269766050316070420026187133612464059666033402616912587252349529621958529820930726087537798675245761397945285565081840326142870795675715414705568782105730525689414537401399554261736534823951492002145153620783625577016449282860389953647278466796071432255106094021420768391502877018849770826654494120535371531975119019950196688267573679168855987147179273925264299006720927659088898384570544720431450242833013314859828653615253206018708633879811377550368599631636827966115723400770264214513250283004993380426097753503602960128119470528065030122204398412594565368482953745243977275006120436839646484148623411743123479841173327652155754995872413432404385555323659267373096995375702742176851323458122677199503370250375058160869527869257803917580910981432039325597813559669004946987713807658190792133280306990701822696956838098476314322995145593287419499603927844448549228630379505677145534727316355797347111423775295575440461585365149040533054681855923351716130089989617702717818543235838390498779313652231663401197075296196215888959377803622963178798393006310933102262741487157028238389402488556310364424081448169236106913189194907838199911732640893410048619035455017716112681925392733376980693553224840572209408672132074418029521088623872756664830444886455525639383024991432440027440450015094804899340941251284506761762409106844846762194266091777017429298763296530287724308606454366053117472221819995987581845798557063541723205661780042839182030943547788969046468530430901693578870599082591148126386304491859133536147243773698471175579303923599989870408216031871848185515140257831513967913118098526562437651920660130130069300543892714151413461478494509712351966203323511161864022328356514932471370637242437242029533049876991415800640729768774274830117200596337373600706198457861224848010763396520337270747245271802076089387221924901166387147169941139056363489563298638583288884891829013097282181711867916595495646037278216739605389842147508530595227618796333343559761194776988925166227245548412174600082392901403061173326587751096505451725196797271725349691558090192258607487898194925258656472385450501450348186090997156919764513866468928200739477551393895973321191115661852407113320298506181275691352246668195662374663158207568875144458975436034771982053919544206841621588137558278265135516669952768154847384312779709718830431870710382611090025032745475564888936799820609711227737208219738746550994322085254220092871157410200521648201386314893735024802829830264775315969694774566468738291278810402702410538067841090056758218151814862486587540312297531287809532184075576856748488662405220028189327407512168496596509830623157734805481307652459193497124470595947660580706776179506512629604191354200842079489749143306320908209189311368595942131588241043335644524582776777795878369242848463640240079774922118588670027232103569371282353098434745305704645177767515862655201370414017046063844541982112084074100912305785730279983738773848231927964361961154451626632969238595113354822641016742045148999888929672021071916774285736398463702661732545719911992879566884585101871710614498489551011030385280299204212350376149552248112957831248050769821923666132089679853441397446088834449178116824316909744042797604191062913550692988218429699685890346698846888040892270597638797204712517230762178348709621597397492052536618915132466511557087160225239901508444414202777164395980959138388823552133964402869055145063660130121366268772436364485613965603979620963505847216112880549162357558016107650898261065543727636668358213666821857111395071102723481043503905236235667936681882587208064618664435621733699269612372145444111248310775518805581917040577380741182082695409763892447298006313717976335945018489541738982059932289114417098934662325248462019759949071987096746760386704715131525958292902340125577145911599112427711338334076817254751802521352068514340342540770910799092631747061267083619597330523924026175375384511304580909970973128562606282385753999709859894196505482354360323695632247641305989740765222334582908474501782218801122296308187079275171834475190638740686758165585112031312117243445180095051906891885552093427538381465307105034361544041341248171616320264549228261358013859453304648122955810817803327796397744183160775209808885503010280207448866660497501858268030499919097565658816521456677011141156601687598669628570116971640769791166879952505361545098328796434788430793965430123791078140646231617600662970171006136581918259384913942164152534413372924915159160917400043145529592926673394108158968370726648298815857728529278701101824650492234192089852415502061731305959093039820854373144145657851024515287650517573616747223011808667876263861902769480705414616243475542982543909641834358046019450034892336810291133474302361909154602312806743165152225766333683227366037689986040457669301566330200403737047204468517525543799219752940782917239240754502834848261249453635533691123630589094121133278826632042391942221662890591859079964795232129067277103004710045386150865032017210093190202317693198510732733189339867690774730753239937002268524382564452221537627629418145597756593599380265607331188001544046550713473494861932289089517508818397277487091031109606308488187987620546829155656642375560413068176002900175987580685112028234629480655273245091199987628201901236744474837448086371258905640311541494377399997947629160335353000573620238263562314779740071252965415178032268156313754537217510268598055397580535072241585492239594003463584003514215621799642070992962908342377068005359885243530773826119843367406638124529872177091802535606807309494123530907616204120190789161737503896816061892918994162742089300648179080644303109750476339932122487903713060682973792716202083968807536006274870343726639835077926169804862530969130404825249800815098664972779479935279713118822109826367826206360931510916498920478035722890529058813761390160563367791941615543132690287187870120765822429372776174323745532979285022974728875326740949482365494799306111897189498918364145788061168365538701841557229500054726708334944138078473225245082715579591245959982130778930456773015631135775569939436468963143246591429792820342689683376535548517885315765193394109554745398047532397853281776361940224726935690568115099102087247820930447050999715638777497809119738577612426375934632554021761003723872807172766539140695721180517025136199518179082790164402030562042237507376281638142300630705187507443911990297823381329000819267305713573668573208864234405710324029222212111694823889033186906976896019304310550935316223114281706409183574562599415549197714161585503975004659899448310012755393907925420038475616817255653527497849711865447419800937127579091054631912648922475442643130800159831587616954714142043056112627281929910658227142821259148378340404289757380537011603667548840902553838216145924507364344562343143850716299264452230527299242506161379500919332078683685547712074411208915418052389723538520380168520028183233409306805397160808935439869817014169183602177842107342065201810622591634495902979944738007558460191349155620718642408738842645134850099526522232650578748216202330732812457483498881933538353371413725367458033396090899586872074914094990182975851444599051838571883978431728879612023210488491703407848835904776580163538254258173142116996918269810370288141459074996175292728451081683023252160339924467427688513644674163817223064696360350866344667865268845316197563075347071348167426923008210051251053330488119539132944390187833557204105450825288971377295511879530950948107547781767959250700103570156206322839627483790009136938921545263388658682198047962294921007296233267380025863196663922052265324283461492043417440736057500502054652751474779595169576961529531337853254423446811965527142881624074650294635984157985577350620121834156356838912384891840631616899924933426005933179864428094069495297324785951901689802292484326396684082745912234266103537369927246476496080878932822859877616842602046031329887649912312763959283229621312156102551829311060994714672872338926592173131831649299501521516268819661072887361932006289484906258531571217669913604062316710011033618110882888265775046635207055038477333370614073334819764182527005082945848127063207027554058140205797860557715544604852383418342318126024060467163026591655298805648208777814612073096316236250172853451524810321194809508117565434965335901966173774318535607557428609309056501738091217636750789180327824399196947678431444034930213275048637381339175654722487056779985827659583766957193539545400516097706561921149113092963182716004925299465602955553158136665615892652397076866329734449980826056677066447643874754202729691701999366380541803518472479240209580740916422097849650902858205714341623325893242055230839253726341641807764918552390155104373482609100401531675948001145507459804904668109288550765934809248318468603562760579735057341304648375514867621423218022817197349804816472076362406096309137079360904869464572445141464148845880906180319388092050983682360932054604803449227726451274905957986366033498413247824218874945298976166139284431874879688857746092332174824678743269144074598678985004326068738930014562187127804131945855837633856644932656675520085351720569545548364051691999201954587662418747587119990295234525223735994367129441579303561687169544054867521023507377066890822259894116074908628739402076443361135219769418198619413112329311627876276884173430210869122225150880245048398302160661482960987557170200460517235576389984422970914102182179564435936484544467056028187633945266599621804464405597164265901360497625635058296733045083716382093309509150346097194356514336217976268210454980647513123228195588469280379756070402931968069383359019711264931308224086471845008544863739380682992441661331387479712981035835870151305293341844065438171653584265335088470168366310767475364337180971505119448737170537633783206458454140993334885468073653111173552225486989716100457518538604122887031783242523009616351143642344116231928880376087083061029769737374326445045681514147489815088479620466800109058570477754787712944697701374322287811216127552596451302356443532664960235833794663192231500872162641270938135822667588226479837075964103551722661552924508427710408990032866376187288333353896440849515175259950969202071663109366101947643204908587645377070362664973582138833286609227865779636936446055192105059075497071650851934864323464156675603020249455879055234140166087320308286149167045659556434382611156985853009830944240316061221639424998225703595219606248964747537439914747406698166623750715995964379790657458520526523618967201329647522447266866814010939885057603116718886026844749728316209331382458283979669904986987539414479270318691978922903520153363407057579144490102499121107460321267592868609939248040580006802958845928252648991802564666898968362718123997847792082176581250470287536750582433253042254220053481074476018742110971435706520896822056644101461129300204981741035408927013356797317062391889944724611409888499373244620083650767639631341581823735417387131484264655539571736594558148818279583626123511698299415515304228001487975936165491922397292135361305547287801440710061199736386114493535743662919420922540917198957060647483154847245290443543186296322641786260838892133508007159507724075230019371030229188490770624141508295610083357490934889711737657217337101651096705685110758333173982999286034693390294181578123883894600096208489212184065647322620683608666053535865949662101291723920640659654094855873551071486971788212048416398127117998040184324128804247725796273095931060878950458328435360589130386483547962695962185865369388486763508894417687638019850409524634829812924118157029610526447956244742680951782135353669194757208535001416811315705186045643680931599300381214756797287475248973870482433741133999567281126859011516471224769524522630873615875622512590261164630736563444167960040683719226796704393969737179478057740703861972360367576556611325298040118714064288566997919392637575989757232752554593794622898524997600326363899718622934203140055688857171431837761050982115557556944700868191599894429202067112828057224889391946429619075608839253163697158970711047280764205165649234525140917703136407574950078142636927990789043412078365607238508340999694961080795076796989523482556683638702843466022711130698335355849014694682420829404779501762849129546242888178529621715368205707913320677366351485658912046925230871067033503922532759333727986951114880653087497809434721994016080992149791829596484324895490571527235178257947293328717573286916433717780720252999452659323638217240008216612575056649712421579735902849650660107663727095068695147007640802409860507355495675874368835573782018716335091551004022864181747757912077340701678832137257588770977063207260082336895259521290877821174953891997348401534736163946292574087287651796688926278053865199442607116985166143466831948060424326561447526672749312954043621118277937642303820530486548640160501622347971153625223101074176088799232151473486963496446890330004218383369169284592679148232987567378739270558280073749088947605931789206136820304298057096337845497243448495043442739584827923937729479511569236722190658495723591541998720720475849934738641644737365659646149846224909319420315981670979329528994149896299646337318453874381887538291390442163107445605162237986322108298253987397206129561131023365502852774638527266183101795768254835034883512565834934732882891687761570638912819080038346134731618836821694283534856999375697183930415035356051144209175888225188700686497434757800065986810961799020598321276483643325189286986530073819026088140795711509104399948205835995943823088342811384298039128859868369193056015783664901769541285977420180454159404955679278513593638398495411051490842151735805024337526649582362296363952553577930203406442537680211014574229765335401395106341172043816156201662552420402562468055622667586826400633316278725259854224937206998932949027245198696135143537742944302329202787423257839378713107425638082946996040192762535379785889472698613946110962325102537206008438267612106729960927568859687102932581441282081781466402711155238210398002363337655894690339722942423672633453729063575116359069681141958674539790062736013461879713123041313534080358701179696832614162300492371175797686001554105614263387309222893187022451412768348381590668605528562934363535373618516638971931076496037927541979551504262356556382388632246761945796275893200015731034428774491346835864694916500509529417523983918944560741495782544887067404518542780762240885425977794515530952328934578504652152602693470194816406776387548922570592633075690767894916311323375148076034677126780007056226136021101303605817053434982192897733976365101385856128772680817203129665864475318647434548981627671794100834651853633929507710032311057157001234119094677503808918651027852460961693084290807452917586492553440997138312374238129486286672749677827233403046188575367582837741922877454701413578729800417704850599235524051630736535728228476550943635613414337099678701455544415140806451065826911706258916082568639139747160937820200133643980682421916598740145642749029185723941980694869804795970134439652558284397411226713668961285743383065972207891559027681729422812353763681912579703782908811289569544000922448047432685032311638618137195218905790540322036622185594866872601338817404535317562395318905382986683020352669857605406850196614326743612631956603642183696326025559302040492692423984846443010378033747266656521839611074024455044553192718657691375474900087484266834552603740622162961544986311522696393074341986711450569861367515986204979138339501854572310808620623024081688175517634613225639770968411895018583930706960635415195764752954242926250218357652356731072033295381812545017023990122951773814313130824400480520867608941328904020082182008762130503313046519490626296715512200097317873549051291895389222093947456306267925968604263134514685123072633702891415337526181121034049151066359205450025492883756233390270659657124573600799308940145997463257233131500163864121423344660078669616422560984273764506273011466472370315771660167097574160370475135372653261082733681120485770089143682248682248142560964105361313187288513829411274582634082501849594536280616068331665438822119309062120953540725058603250765841922966335716996304796478528056620726096989679009058728012561494004447629745778288868411504320342833682449620810553744705277462541597881969919441566587257522376285021139019011528255277543678749631452955803271665025494320596539504586696777835443489157671197553426268933429509620876819615451652417490834803755913313626780488347291245431053790964246687606083067285339462347070474375978066894648596032877197669596144626132860887015084737120175883602363607100319390925727577255555841991841064162305101396702097757809435627105247066601872807808631661978436444950760081545609388627106929610915379211236840672812942180822744076657841841475006177187696818065696657531743172063658706973878200037805824332017851472673204882318514028633024147273193729916248475138085526778305000173371645098819963947771713160215207823996487314990076115506062714104312029699831286482874232678683060963851271276038881848900803889973775105682083811536868340380054917791215378864572392158831293282012524900142333258384859421785560927826269761370802482162790806054143423657616919875695498601374106599164449980773319876726217835177444596864678765646778604847097576482565396359721392218585429953339801501794143589388592252264446373346692813859819841777414452156991726267487607521492543819087093186646104160682781279911558308696310068148987893614483106464117318301951336061353111836065337907391396175701608213003989134345655940840607724457720523728852934528591448405076496919074266126691554403396282464988279695731111872984960859945303777472231941977180651658590595599377613873359693732034684067680071670602471690646205967339811377901237666081519923628987546219369862375105644771547688101990272328305712685789701464388944646872388978138207877100284824159647615695346130791422682326513866363567935522697204293595674182319974381545868163196680538493196884572689691554595887998280147474778012111574731288908434515634928173223768161615163585200969726198519716317798171519490731383162640825835026405317984522363544369432593446773249051829123901747320996085112424110443055267181416942709381461458336107926961292551764006249762275718328019782313995546080658380464014476662209662350245188052295181496927347625990906089484138379445808203726328992364480305595193910385642705604054278126464243354522984210927518418581926276586887182271469171585542459136735245063355026326981028895632255238831522003982937067184669389926591657875041198361636407782327562430676151302326095695471273748483813678530193358713015872292240079246269959407437624870537519830417953089059407410694866719190413988839309402932926716523047106282547598315576866561935343622529498934320362416046351316203563263616294697045352725482310116391761970638487905504165759908194734695127818947141026342353201998203438931878718370249517704249426385522059114070282757216181318883332304542001883073204461679445636216829563797523809755540538537017617618816522661487063337110378864515531702365436828948646599170533975444265975950240815469596729134659885088108184386517861493144638114616154824858958203706768602379153322660638584810173142243991495631119979173301801002482602869258523095284752708304895216643905647385370948755042897759241570237412865241795499339687660240053769847046353738982968209188986444129026749523606108041825947039204627315567174398907580160434475089316157084305760450204894286340165212855083876260931897727155851025556279811835780871803303693446307546388212933775348509231949578702638911589888227673890492747318915392329480892250918099293843904589310079149522183732059209150156699194773121450166356529253105274639379634682005806194169016914144529820710795097549132126965033666430536219165455097662222537542574762691143661121500615957906400989383675932992723682563355879039908017730270965794296050159665131820070313848185761075191502873057661218493341192156529559509273770436265183138264878658432837096171150592464165072900265131106504889974416533794951638130625864040959702138628541942604628831855555374232894891480444390880565763585890687957862386104118515242770548275610295542802506419756049600399923212453776249443891457558019465076920639350219286926061157975971661299204595369110438167573523394801101952571379525353061911426300336021648519468695236564350999049542099451754761190943042415327510129873628968362400946726242235873864947558748948451186658920765648076393117062610317214941906130561786303339953757705112402284566088603978540386545870426640502736886417072792444908684304732289168689735469267605445800043273889081876542661255734873648287355173252836625793037874642996030532233007385294590814579859745116197907502606922149733826707293020694614265605447585011834204168305731267679142550564031546595534838867125742290494703857712770956115896672024258068616411900190125315657441310314496044563396777338888468667472299399023924656241796249013372124475700029152604949201713888452843806884013893845063139701177818452340930762027118108109036765346905291008861947430977721202073052387835590412390304223493653652304918966395540781920283240580688869568248961935338682553174540915472580456041010596722145642197630504975207524045120724828200944525418404110374717885336057819733328388140807508332482009674872713263810655007968553585152778225043286081436356310738670641835611408281214011375093902998780072885786630617722377568843775097481194345897438321420718983632903941720568658146112806174665775292683010402828464634978793464413186229844795491446951472058931651576809254114960746010276171163987698099724502203083404528321007778918749294014938855804400403636996113986778694889095475686439169437572385083974165476300545105554068994576882179279780001684956248639379015395417538554206197147505164330727943492447530619742702643780149254585276531509230520763256463222692855483914327833574269745371834911007252117499979704716515030709487340517442491889218403982531215243369178660097028710578151608523365132392147902770824556643008719053464510084704694135279993573591291508038415806957607523536054628352412584321243890110848090461143388642338985707982757554361776249956617568181620737368767275131369109187764088798239926432132756997598755917322871815394527263048769624953194507343140194398879258876120878047146241648160980291837691064784292251193006994481311157357158216384762600700499585122912471795117183605788704583937531002444691344989549091889184918500945521366834877962789796490555816459710226782165114304850054053215752427819122315461267865552749053367877433698300799906588234278911578498500547485875093897883146631163326662254369955021325915550836738235990150088334099424877457244739039462155785149488014751917006344963238869404500994831438003117976226303325298604287322947468903481591903523808479873352818623590727546424351585211762019274614860140304864374543078799866284928491623940281399964710381978737199861867550093874485473352558710172664819699668404549438149304913230266860106261383920587898224348513783211307904920003111094595283736540174921991666715693669795270877031605339037665511451689439959300338188630456947863019300101341166422783575087797113399634889665089823114646816727158461988492606974086041932444576694882142952848902538325824257161794459027756923477537525304787662561682090873355046910011880329945363994558574203363436606112289160343549156514821402394800041935808116631778786652345132999433472151879270993670075150612530159771856237814644437038256993896730991009697130533038632769010219264351693035236290287926008181592199901819822401059549765659426858609762940101053723692617108848538550136200794117247442292511661237714794518689538638493895506142869675858653467005639752255811226389701818572852970217948049540681759970203067640378758393422606307896764496192179411564003030833653867697480435546592056789818132564418050512784589101055362241646219428199703227312185731947537819573742619894171073755717033565387857617331584687828530402717818461007624351877633738705325988756541594610462289713249842027535025135708520284660787488157534701233394115898280532701496804585545499620677114027369498917304319596518424370551374348199152105957747644915889623958574124969933571029842324071610850657884871743107316848137636021124295746713124915816032285945906632253491667902835756846870592207515482281496890046865744953529196341069854068184673463374796627932814590687899114042650676834192538800605133954379418763444538010622793577143474511550261298290106174046844469728607222541271825374266571006842903787632419682865120285790754569667559497648964122185680543414909517160656426813958397432940425897165032832171126386006844649907552680014338368305953804934189214657100320268628417025991238386546431166545755742633772276560305697195688929546249249861333803241426163501165980503158205938215074605042073852647909186932126154231375292982264464007577033988954036896172019902785243234827544951128260923724089816201701625781502956590438700920489017377548590971140568225451015852502465753661725277924308494559346845699172673764810444119422008489360407435780772098368977439171803093150324342066977792101994613098850918253602938498555941298969278720840479947950982794770425978942590760864443484656436767625827732588776211533293977912223529191505568875030202494495519109573740579611579186835185826511474578269278046733751941936996046705874907927020732398692416958187023168820157441350270356413909564237389911598313657018836440681196957271797448209712814716109748392634753336894817846047626405265296681821650239787079062883407155187842604919380138213497698674672781605709406047235281526199424101768431602050425287081076856357291567609765910681333108348143160004817692515322834860714613518274786101238486701888958657790182534411620745701606276924663543228137690362403882134976645136530889013159622679158700487077906507597805575417544300487720267174363373770216882327352991866996193063038482043720059256923132209534562747734240415427246949151898687487925827563709083095727224704047247891933743671736355239837215524687941515891098133782683905517339247872833738012126791577517142624184051439179024274256813928653607004459593407428957934580896601300148088038378181506675287839777429351112852016777228805890522626892267789597560548338744917057308073708723484742793127842704481383069629102218089517367212888323352967945531193396007975607977861289999487088272545812593568627250396477069117879597992186049624218022627131601159919571809543076734823255329278447662546016000976897631028807338715097058504364288456640357891779842383534914202508050614751588178394638251926914039958883298570647157086112553213886918712375315891561491697418779289472847981029990111628200824602284787901542977235788990442855879996662184213518113030547665813963577348306276055863454131053896179373047763767641100506541844215921162603138813717753954304008464325026372978402457044858054971497734037122204886689301047566503688703034843063974497461102947219963280199462523670367340920652367241204484408796753001025643078070467353060331913691784790623823277118403499109793446928862659364450946990238086067154555585684525056091959949002097782357571776487225687708052282552383241311777202067322366618581378623985659139140524722872630539018868432709923873789478488331516036866746160711198960883847231805903695826930834991694029726548313624923683130829764761342357189914011724894672378436187940598142640527630900478813270515456142043109727324407906207226925455870769656665421491640747507187432742204643502961137514112320546099492451782814889128671182501984513900418466575117546546172904603809958521467529520606199271327775020108826401834189440087320665426113991678644315118635280365204939244163020575516688857358636767040289878639804320027442569256758145253770351216253748821856856710826323173971315602257983908843820485233433300033375618143733593557551890069429893827391534275186675922656967841719824622658620105858628523249390168452684791569884790183543071389990683995291319900629074913556916839652660239026433180142000009289505052553137654829233519094181050360819957091585878551279754783196784163581480966572862789689506661686576405937305292870565042727215977365679345617179224299139026123347071905403548984765401947479137750937253830908272208764167400954540508368714449273692301821785418804390736201945881181168864811492168298095133214630145674277882383296866621856077537393563721424160654336977579969104418849108944215906493333819317761054904061664010896353390904779390126389946910981995492618979190502736085108289392677684684832437703393989363095146751998801704402682932957241695889285686964034618176916099271846597159836283498403253137257121234584783448653984205183831935478561635258754302122804301499636816550009835409658708167662801696574550832433879866578448469819331986984928295266101182530753838947297219216521064543109774025574096415691252927377174769051728987436046716050870968288150644333216924734276682803717453399964923507184249086811128339610905961703550195826509308676618160943910098198111232571702901619576473961095796963919289514271891661690506759740501869417542332989178312485637495888742810859631354247372691972761575642875100934678643865259567933897032748233575708568612683612110673825399374919522375471733227560095328220678369136939242254185092511357384940909628280975021649682880831643312227561227071500011562168342957233607511178160739748596763886875038382319335709589449953578320451094423810653725373490324739259317585446188753924569054457254117948390872839050370677816525974784199719718963445817441208239168598697100377534533377813171114318868001305794846386854497534739478321657321358133484551251465978152403600356224334383170586738583376491422260944242902969416744268425387685676180426882586374910949142939142589030732487910998794377345484382263523852836413027891418372418508465251620181504000666660149925753372672839911479987970479135846935951421036111616038464985965315527477787955726478635061270483900864319652900801374364067318181500008286862118531444947952789946430100430310008159710932845863290515884796538898165309071913438136198381773334049622565961415793795705681726299622229434675862807854401553001448688112917593967586876767379308485035656562233048939657756202157768313668431218837914541532600364001087265560940179412637629715108172725431110992971679889848391626779077158184538063641955706052290120707734425530707586224556109324011082447131696306345387314395397433970493928722553038884044390891198713385171081581412381433335182638056378149465245368037398311194546570016378299622499067778402711157335879945678096774204608096875574443992741579289308198513510063813389863916629873179393952274221695364718669288567721470750876079096510352833951374541951203228210356858578348124484128052445749743735279247265780357767190579686700457006782212429160222773437312546160440191271169507090060570449769982759065559780168247835023404413951594715127821901216909074891348417318409573223011340493815880023579903848825325636820588030955818268976396992431997149915958080322757295547307819408100551899070086408343586905982636405071551131413548081787516275499485835034688209622914488995236768444092799543872457059789987512270316641366211229085822782974236906446278144860715514479777039079162111008670753291229294552847989685707096286548144705823831518526953521700859332826757719560527687395428179640555876691205514819484410538207946494595060083558213483607105979228634590603079906258278979309773097260666596897938909987697051859905562409831931611299582618752856229308718071833830569577295366457459197412206518968742759179106435599162682260575212465499907077667902150579998420679930923707702147563713342840902402975801241347081835939419638093957100589046803539746455655466585752168660204029802369892025411670709432606472508660982825503624051223218672759021682771157628326627418508778932198535696158536351435908019307613089607510760353186487887060385438448363709092231772213810339139204021080597873948233103502704350727087883761911934147303713304300497399859275727818633152712164040592310326160818997351218986051125439613384256440990861225382092663009227461424831567267345005963270685957167911288712533083698307731888159391852431931498358363058085495390948342450213315283681136608865816828717212805422634080737219689951399287750933839452914145603080129933034732786763489046222312188475866790444659541835458826797560682498014949081969323068638818102749060518724889477263329036893462693851387255211355857602663447289865120309614436690534398423012437180040796495046493740006980828407252349648830421476953289607702600888064799078060714607812725854661111458165641299641604927186993491311121101075534254549793336302941941471586923149327647646918464124929599417030289687178273552277049714363406192947719529817070193917480299257203507096768614224951496677076841487001568597926603710511500707185876133585052526380900987689188929368675376378233826368861297293604387099269210837186218586765919560275769800814081472425116500784202814993682972577887787849387278571240676315673085550714819508851548235419012011053714083886786309325633395797261791174061669931045782784335271612031445404183569482765328927164584595941159826131919931950686759987634283702569278540070727814836537611537256365911395984706332374047342305378464876881307179237247442302515485937489950659190994341791762809570261137342443041491743318557069310769480704061482052912892243219840114131567970820631081435147962351141617814369767979325558290954843920737133486131137934133715109092071155840176900782641805695618271139662231037587301730325598619262462564707838812515954589028852149817180660135164955590659341120273637850638782021769052758871679423633274281015252224823662301485400369177890130543628001166828577660117990797860581121359536766599505643872546552774166754126629947414235996651935807747076153947638870659107348510446716303819809712887855266912158603182190860986870897478094311709669395535432625652450324616941661395549008415935576017083404371177656036894286991422369264637872466155247145370481808626511233893279986032689044273636113935485952660409455304029728226499252443480213814879831066235770429371464459313746269203359561020344362856232926691180418421917098646424166062788858334863613950415611537139658270399098707634501343464377752835810678979825527546096725389472254758235402284178843041962188572827795603888089045203314137608501126794850797513034545857445738656040931553742851314233632852882592179922047397061070909880671175332516680186193646312716899078751179257544220144363101999355819074685491635561348541237842451935294397397849397053530571070317493187027156570603873608931701085352283547195945377915397605898803648406640047162283827127259910507687297643121031181465213546558344876140018214837845732133473691525940967736936995492105581614838796453244204018768336472170687047689267993391638080009811780387704216845616666874917975990752418621870345503518055777984897660014096226214968593292698374880381554859041611589522400529948727476130862541135315402395474839821974307337629538270025688428715868597221792444758963845900297378708844230954984144501435203633422163345758721009368740024731644419704994556917959768095557742241026532489181991805440207403741517521228476467217930373687530688711854870633227424411455568966687736666710826777562433576279436869971275109198617367006182876224748258914955801389661144960847644192546124235449179117606862051390944241300389291523065863587851363611380955322195745515353276706888954862817598971100098321138459928078034705031746015562250871248687547785355405485618444719634721605257022476547900299292373392189816828232718241553591680432724169745793047072763306392531732952887478886957453321141175173285524381471792080932910741726244201291825572549178855757022651162948584963785078850041015316279385166854923933613912907308555156436638319541934270607541067280218258126743358596852773276978655936688621276452644064565008252603152939462251921191706206614582277316182802093389589035630310654796339837024726992662726633248881292637788566282668634144625635644939676748651575792945380968044097746759182559262990757083420727342959329456987499983220604018563386496370340043921499684835343182347789812855414258435567275765069826306151476721398950511847784970057377611533422765829878246258784161126183767803111387877751747065981295821150643023313340013014528902038980727933021320685756553701596100977307554096430040254537034536197366502156940966064667893839774186373279806608963271871819195766843668569260250258434494764562761026236008291482164506765867279610121133975001867301425377055250537464710151179823020278545534645987307692278215438952947204808473573482148153482632134760937270529702766687309689324712237228771100228733716478344515374819777011651864761748901949195574887677344257179618727889635683815519966997404193692989652553957063059569963275351492297943389171853797921250232652029275403686244859817822887850515679843717751574853973386118693688617677624979565896463452484354381829077751955772279950185345626035525215733833811735969974500558865931568844202761841156096604184025394560163542648361825353999682761052843846612832578968957637206251083024220818833828834101936982384260925655851995568315861447547775446899800028338355925594620259897207760760262497686946800351880885016861051397895332665406590319019786429716418032076913424652675276101632804728358048968756515318502226771072660774601506953294045635962847411204935369434615694398403247370204169075738144608297336482015217443357191199703997541675141367073576389038624914923932155784748159625239487806871779241152539190751728242904168517668745274118846739240689066396402285429116579874574153006131177125452524023778393735386605559507911633149558193872830119668629718063831837985384912312672887087570259120810067766472605504176983882851595137691775749696742665415170770559086888666667032570998509736448553249062413494860014563315605950637062750735620239794848423524901314889921549177304012813018667808957183890375684524171917539858738078443207304084418591117632267559610095269217645271443723445109563131630900486057955504163050233479584753375068655445594475535571719785388672855944629327620943666227762118936388770275547322355734113089774274131958976045942977999947465083358398114216807693709501896281735204758205929601651047068237783410292054724863229488974982679698054319830505867718033494975016282188686114956526816955943095087704705103608972817599216846407280207671402077058012905936666690336434126975736548388462465643009832621522904798626470555679867884095311508466171431314959095906309836304827553496140744421483211752165897416390740455401311356377052853591312971585206021487551312003374042535645948204664155183439870505374459452795778948261991739434945241319755165854123839025215301935368470136468081035289242488833386095604282971891522297064357372991649643058382672319302897719804500372852093276751484283618121156326536458543941186384468840374443203239019572020222485076830396118713503521201413401441671250066647445736310176994532342168773241799801762369715680065553170523580525594309647560378605992596450482480247301653139586181003386554870113171551457139434532224803111393406064704401552329934389476525438987168154670241643680172458033156931108259427240131947717094520277223765223787388527733529262402281937262656288061041096196666468899323838978081449966034982646819520097388704720700902338984733425207400876943964002964369873714704629697445112884252489112134056764189335294896311718825385538497074162348676290449841255794199893571928707309692605539859651444328508582839849567071684533809160869560871807145127160993207747545540678976647541664942177112482480155083852942462161594150678180243896769324147807357106545502885538877038871251474196251003985568337400068140803000608313059839949147833362264496441619800231778775584962295150189655993597866620601673860113892778116752547168360653353382281924857536904417979221972734044245230940820050287383680380241491076811139097204592251168299689041398914942644906789229873907207487885460277268795770458174600301613036762051446075000960018416643001976859157716206393270421656149773775775291266523426915476834561633040607079360481470095812777092969070938941549736019619144354231654349947809754226739511194546114685264283109918045060423417441405959659311984638578371789527186628673584799680227411012494614113897904452067441899981899406038331304207191936491058580021041102287658717138452888682148175905507187680833509662976644780515590081495395930121095407796383316642212614118386102686767542241017731927195005984178756368947589481148875667419583280565712806716059968604539120457437299445604340280902411697973990714070117275003151126463576035425130750645461487275224579685855045986994706399014351103722102866968468026035409383963035960162880991803759579458586042325857617969617535229219185355346469942521769951138645009720675633952342147561907151834031811521032135613578264372022833604397333359419857406307027106176773501751061167307039289830497435941389392882539197181164252038509092578880973336009913368061584941861999192025173232820235145702176662161352521022187750526715268650031504234976370406245459503369639951780702648393982771338721117543947812134198261076735746663957464991149411164797546101002809002770490795485787502078971398634824108000118460060253169298231613921468104638329684334995824053780588832386917995940153303768936635084949143279650306305066624401080367760051110305497568610486328784782403577347233078804445652565901429568565874297507317306203744375900105261427146658939357322147054125255956323299047227036375909483499848224680828901481054325970510239377095483511672138132804798630491345609272684087310154415784844315461241852775117984315683147885004630404588113192195754371707924418296405490043038825273056038249275980782953835259805796187889633454151742485544112984389600206218950385594398962094369605741771360607916014793434045420521281115125681234970593749584455397432646170357064192660037864481077238038497078524819884786767755025961017802583566943987594936199849625739633663937945345849962084469625876660889602161791964055604871554640856210780312856700984255506507327519662947985238084448534406256147693089216064335042914115364439282875088408899487367268569717355890407685931641239439505657804628488109875858883786258874613278849730039612900759385675649422624314188193813418989842333934945290573082442877354266095463234042246506854161871842670480029859103471976455045491274009983792683045355197661314890351354296966790083574205745499838379280838438191547764175548846038923808533830322140636608821479738718948887058770270772273067722060270713458831981026422721369149614837849564351929933016468772333507116070498816620452265181895124734720960652745751583457660348997695899996746804214840677981156559189281072435890896214999656457388282242882374642493823563194274443420764900108761476631268967596773079666545830289931186614966534681908103653368351774694404542097666743428401442859309012060654775682383404753140005543279329392986664402812845780966743157311485374808758525239719776240614388078030131915021082416755979776266586474491815623947027088363386247402811853976121973183978949490266231364478585743647673134740035223585693801781779165190065240499636177805842611127582789144754681351621790535166723626135655999489643398811224367569431061451409306714511371858713391464103002509689267944548099026143595854448299923989651400477485649217286596118520060917286315013133989513689676221050716111027264893761258149837576305288375660608205163565250514747910831960655853924134515167095098076153719077246394251893961044760772029436702380331352488549503685078018624785785920049889976698710455185833532721978577956273162677607847621856982709499285987884002429061931700764153508967204782743058028926529954371844971458816274894021930220324958966448682105640066226384324973218674004618108474821294397571396466734367885180384487922874313333215629722631535513644255263618612180772387058584254246710047477902326466753561093329476816949140374894394436551516039119411468670855415965307132921774260799898693242196133324592661174231203945023945252145557253686354035776060761288095332443826398379308616064070796084741255956682659317698182048196646333852911188972706671397073146476043634389145842059057132584186459255584341870014139484277297181501227282787905658857014654358036097880414443430726517144289868501208134694572738560653548210425202976734622910341885999053422754076651466129947255995506635430132921721120140235327084601523227536029632804246823921490748772414607100888385373921862557460954936249284114554891545479706014659522039928532019953166906408229133636089422894628576269723818663533171363251355293413945649393997511944125819864495557895224602362265409892449892174002409492191965443067791793265437438625924980060965259334307851403589506548438875556772384724971165357813023379619854133393932208255103073975694638747674059294759125753810123012656895852949820703622542168375227767150842995779782333789034122945104290348939524000272564739465318895859419386493303711356991063478098896869413826946709780745273899478255840755941680426314458575359202159784697663533640445864342225376054164276742366264807851144999121270575916087309892119797047539386969266727220534344724704003453544738630120205850896411110085132273869448781365541907586505007640285961198676280497349721304706132157573709356035545115766990566292030673475372773800740608444565201422176499151814931674298531241365201890170616291295892354434787805538048444065907315529727019006320724336149374549008235993590104043416687642005512296061745884128731747839447640794011960982899785850286909609150137298362957825890106251831874224954814913400825155579823135542242913365930823487565249884493171903824477670043053365442554015050196602809162872291322800406244820676743123940617338848745859318777700143579007576463291796659065780749843589672272185316589778097539985547324719554288184229602445862526164017171116583560966220314535056648231217546136940714380328599498168755444743187929390546697974528164158088834461932146970595739090604505192450690225186390669643786300667232385213322953205231895501371781399999035329811195166344026605451222194593273348494289203592462673290325078023122876122370442233621818925168805252822492627165969696024588822699298522464672087983917947883352647957604021713838908842274352035609458152619278069506273490193837625038566115632496666987732849988888074271575549200908919864543786495104847973794109120338129969326543808872286764764271879597061157071832071094574021623932981830616561811686863878486820852089128216635459404826918204859412777632499272033562304383992777185740692419407723992175619824772992022694604212069406154366701310455461504809448912618126843720405708680872940492502045343268576062349640296617145483308835294132201841820568690008128765157683967440978878743090566260853690940568919353120422641393896121276240161019927280220483238436277951786138356742793344522120415825492121527517283121407624306520486095350035031771356943765741492875374358314148267424633012358974719824960296998307691562436082381866143748533485767876522890295872269256834608836519110607787811371843037052782018200534486298080708314104769315216107318858002960740342499916484663993873915630425017481414707688595468664405642703591863391573237918713142957050557189219477097968981172661296040692973788711950870159238521983626140393317492706103960108129994952460609327507612756690846506966659193575724345409530548593166861735805709550604101224339242894127227058805816712397705572346724383761400098103139183543416937292644400980045664918526655379804978274931865565013134815471458544211380015200736506780726728579048869867342646700002973194962099279054738177119047504767037399867754627085394423335873112860010905492069398254103907749822316323667493106007453899842296267809397051332878985596719669236962406432240711324232557304129052156213091481982745022205427471313932524448326797541145059266602552413681320181514361839224631133563148095596697520021948961945482354217708392469598822874556209851797939963251643409316694635723514726565040018275616712545448936057384324288236708261302307143053721954155782951621673048064394253946913571132521810595625140142785603470142549045090118864992875195857237674533564294219587873398935269889348478903384851973834564123532235892543065669342225075419313310349405276835254757758445202207219989656061923935704606764775628103047041953558609683076328136405098513707377688557198765447805812592074928878627883788266750952607562553480488822823577143530895668544340792983089867852960634082443372207129402423540625173633650481338318777016900924507552942405317163724788779676710526145565609394633215793993834017817499792503804991658657545815147574717901517749526394595172107634530411376817083006446015953457121844693541736153148697200324761368582914011625784867015382929934107934796978419470663994414583006817024368301005009952356735196294344809350086678332359287629026007835178896335307305135657978141826531167164711698760588819207130077999554615846508643653623369043300767556867068842914759566791219498992624102876952269475504425741376013635911965091196209267084509547785452113996859293246496596385303467872713969451276313762569056616525452577094003815680360625134541993581497503962378933479690974715644498895929875662984971731283468320927598578381674458224770172339711002157931680440704937462796994626015650255511252897576459227877176819463736309949222241663269652106016920748722954256966803039131560857545543592529968744841838401883870182285492637628038885080767570721359013525078276056204257870091376342662842261747137590359072233344118728318709742667228355872830952450739035831352268634867333461750679930904390598717572214649219881557656508797864022475159186537906175721223005743161229591789035930649125039649984560952568097472442272087003960183036531750121549753503976070229278717869073359950456643078785095553503985277057044703059772046365835849019070109908744502053533758069118602435257564267566051020405428233782820944096574966449479099953979320064557631418810788573875692995040203668882543936850102915248744964270424418400605814063078739054947735488912069351988043725541687729966613309350497800424904279741736591854986519419119627026454783720314497213504950344830141188466759504775808787941939365508672740558728017203062857681247915329572063585055763050739271143306828322232182597831981123503293356999527337863861702330640825159925239414576328563405582326050201434089768410217022814719166098710321886355006465203075742452755253453254665623677108836185632904928487891388704291617113339751581567296973937683477592235483671306195264870564287336045642362783084092614846588572088708573780478828046380797975655777232362505564927643992600551353608918527379633908498831287011461563840590102130997076763361871400727231111107899961217764369745510563279694987386194886453605093570370839262381934699912080182076918446304703126888117910503166377578682193471242859753046601960592827459673728145566188064663813796090864848946172375314072889800608404220419966111041540910859612186809771430930291926843221213416231268216850073700161925796556454205060654534759776857361434377640925553244363964400556217355012058746752977486365504417465195203486195259217245491868303032607440476936123989221838118192429993397921799598239876357782606835218799436712681796613961515252835914175115507003495857620604880877328058590580373710494528141655414686969514972822003809157905614547895101944206593404117074742596857156951136749406138957077037192555098945010084806305970961164822610656293676440327673143759427753998100647424550848643696378426652621050677723252466389367930234690908621882164285204502335028349902084452084649830007636637183438120685084898551691068954768836933495410964532854245842502453126190561060960349216983668101426972297609154798020440393604036769864558897796991969330237159696994204166860321534912134781114380199148734864604173135642200387068543638871064423671032435420817455173505774756414091381695964170958537868971960640864702483275716544820067922810371568329327328151446881153524395904916419547623481179295108483147232403514124915354815694149361321182633020746268975412514542845950041229770313269794887637023285878276668189664091856012892565249897640723725489699413109805685238951567339688708772580654519369810132077529379293327997988035553733602109263058272259392550388734021132128982775727513048816811805860883217527346952335326005854721794767849114472122494568403580727597824694586140329572878031401640332799617024548658661542675136704568067504195868581624697297624608342149779066474100174333799529320207198626136153281442634671131105244630626904244572046290884689000213010184214459347705644616886066124705976875819311277068864036383707096867871145611778841099213841869090222420211913242234657406059835921639557730586614633274863613537825269915907825617339891357850296027512558700243491754314218719343859456988530156695797982673502950043773315877940059289742285813079182794996358603200523164332713253095492476114009262791967178847201980816178947549233287004013582866409806895594217222231199777434443576232907638981963648336123385746220283464215819746765560762153301475240173096317153255374075489878081341728929159317040602903169454512853747381763645753354950194668066880405151490878982644455449046774840851317706531007356908177932051932339643411100441095055499972352065837153261480278112239394359609300097154811881974006212447968738104832717054666076249233147919060420419156505646613761128443472732057289558806576701002801006512965173618544646286555084567220236330651487352563315691746732797881590858652628484759812955682493519647784011589558718226210093888522373853700441579999001870551544330559903516286468876794245308590073212262349852851090214450132953092214527550483888307549238539429887743625304799740086691251747229115840374716889334362748542685569783204099928259378851889252625606261253479320390624012688247286750019465777489977075319477004079652689699748790614922877632479269099148336678592803041013989611375776109680435662059025304094164264482616578538237100611998565656467686661187907081067984617779870658908984986432455707134816067550489493882324057407386154320103233817920464612764785922816731453491085478803818335952726151353407318301071116590508417626130618070258909133532926765199583689510482834061398372177104735260333010939078077095353890189658724185767484574791978617150129585319397924993023102146040006247144864102548143173585193057089257003410344098796072119401519385974314227494102497280661161633293435260413230403493176688279006307578208330839570206870318294789987405734025364238003616515970087532851029797687201957228484719837142728822965642933673956078052997113838286433188853568927354961808226567199741418428727180066200839951789829776308082128329226123807106115031234809285860876605933112379900840824035508351766398350150842504314107519968016893025004889391460155604818874040344531945284573956227099745303440753935931537681592203523191633836737264671298844313794464608520586881475528189586403123734150931409661464476742269021308569816792135143352423857919637002208700037565138329972038812484261903631113918349728537565680920563218339056066667701555601533891371741858412667379611195175777599271249215726191185447596918096490926173566854451064504921762614345444300340279544507891011009335092486315860963940241644475817636283500398060356976577286848961409596862981766143491329834359559582688540125180121198639323945648836691678505362297923331741610487642313682096499978155653473119185086785654983794729463330832343945830117078199687510245470862110422774801718031608655654153186225199083376017676746223230685723722855735400017744186145952770773151686606344102265706673462735139405051056621001334107114573262914759830253350703328913970485554332484178450840039611861826444528334280226530325960437683978791178136410647086870777793829607286250284570401397363416018415626464343106433910061061565575785162229305153344701301218640884185124744656217703797975731547169894825798490754201420693835975952726183424662707272257252882223825696233321441746975087661436392373226754293071977019714298633831910232391551120896569821306170299961980467983891662122768165034979261444246597012388959486738020957692224394419562336022745160576512674227640367247164219988358879625596883570551009063503938600818581830720304360529312216587767750083470824798727730764274638007267864744841580261561829715860797850485035891504165146514904616952909732442475336753745768135118272221014340349184332371105731019611788866463908155437534141845133340968769882436416389150011867661859878982170074284238150682019696171219401238647939858056597796778396719346828196843196090293301802927296533832437037977268488261617694406607122341757156021340579764097055850804095473590458964776830714468771032259513466290928441224945767568983014518065293995434624008303636395479816637183831939929163207843244683300833901611231264670820665092669967678915323211906901079070581512999875054482118213342475132215805096108570897627826394915457601267386127175554910101675250292758669221818256969107987260042834268690206006731781401362776404756829663766099793637792193284321247411846013790279303761709094080655374869666405284781321004710724779172320146672348890310394883782288003886247339829693754774047041340953084479183821396287034397936892664561236704276962305664847287408092292843633057251901483341442245441300611565428496698132587076774881460962620414540561026264488333457971592480054135512736913972910948943449738664879977774726810777688837985133290612834855060278832214823597697121217235618032762453891445310259452241996725864131524897364391906097893700789525270148799887450486873452004463630944580609872111348200770389652857276968994678788438634406018327582751166134284544487984623406138681409697194626699836809287746409211038095526518734517796150448780740150152802269675873478299771543823559350042387133540400717230994070990067059077709441500619537236568538502446221120422673871939318365636094330312415395515710481832744021584736083267174623095994701118939836440333569754156838631890145792562594380560434966696010744506095860671365123357864854865004242101091642165444898909063493013068701281178507906056612586498572024847140511184039203469065416173328580904025459331655446794977871036615138590027470693944756865304030358508407453985270060778790999434950513518221481062817604762837092915953284776457348437068042812617613855168327174194854778358063482718237100429601808780057514200207325319829662014049226442817987803195342500797358420573595010919349817468290892574528094158868636636184382052071463644405699984240306144206674155780241680114003460049557285668339480413381165500434954710759738481024089928098690360689016560333425578784668993514264419517588844527697063421830548052257121694950401297061597430518341519964675612692554331561856218165305555156680619116114091892537657268981055802559173074316160520220264391615616344534454150974621293440312498045039152703667423574440142248542498407071664637815225368112187054545738363025707387549246918518041660779191161489028081065015166157870495159701451576118436115464411626999476516630892958029903521033462069925189216395997653487333162962592841133728582883332688607743459976488274562726819535920956380559963382984440698767349087911901296563112335218131592880331449495006975852220441709445677394118011741921844382719547652498649404188203465258375158439209687537562596218176097736058885881937524425808364962495465156794476857102255451623556504875573195327500071938593006683262200960520268822389622327622625119729988053193850145630169129924607224904007890604942005941930879123289638232962876801021909666574387298247404903103134839475019814089419245794168742420237919305606863207250914666980251128155953496924495181850704916068343617786600764049278120215717976163685135391851195681388049800014791120064894158890478476946939192887119369602414045224385341700632490607912545057006761145881000057148457453872845580787816425633208716624058484772135619081985180224966116654436733790639243902049187642332935842591916045505765922418683151118214294435226567116029667518584451086953600347268500746446388400463590259332086183385451556835122061350950861086706724154628187887715104622817135717207157415864653897445301680450346437071969876288503443422545198484724129092875086688229972134177934454010038433388982666150378622151112206205636808066491625935739198835890814216887825263139314686272298257582991316124493554726234859388977184124812515990101397825181380843422401772160107996613730583568738712173927389799102094617478882177155811225138519186753649733348260690825303313691578770207755371575637388021332981394463295699260438185363439294431246988570664525404311324837729896347041876507805257432288255112855353654794770201166270881409477638143990278827700954335348874486217258804380403389655294755415115780319486175923171364062820152431553949599963776521236108422604385718722215768907059142332072989211054987181092016492465983970844393426176482848094220001086104433393993706658824361725531404798004300689080229220443135900348830623916676233210544340592601383296006491275118494750386712866695941085367269186166622798621986475871599572060509604028366779390146097384288624246502475446587815013191103857410974356881343968483668681351894058116026922724131336422131684995270580808237254921781889323573822140097749954267563989557250836218458049642451990788966786484552055260531080969405606792167970161749717608750070622340957467947732585866572790988411978182143954564831151249450118237158405274648235406399726950513908726867879819535283402905500550968484318917820827799485842717437883151489150063456720550634860545010267792174318099065551619950766207934700985756086483597141495833715191644855858070886454659900835849432628471260111708179755096870852494755355466743353302601384860974600160420142177002986565394766563619507131989179969455873447558128237397115754533545172751231978507079807811742824128711961252959431856786101393264395578535526197195617841947441095647449782529122275550613607541872127043492438225480438222260282449427615484637970884885530337309752810860966482752887844351890114478396304609700961241925914311008708245973213747691511908056707661280990482143148642005696035559279937207902301959763367102524861232365703953284542947493709570777278194932349321496224761525741362411401414171651902662781397383625133716475026119618144699573972652339986147041992472165994427631768776159154103857306965007161769667551667311263290370956469120543023767296929747921732893505768442443383306006350967795987862868353878980903949499581959568151533783025645707411433061402104099485001231507866472143208974844831891566045372001599326467345519349580102001328084200446733860179128645375353003111280027116403153647568663716659390958209472228491739164191850340983159631482493926238930353208779611457700038783498418841066172566415996472958031036906976789453483488367800014469938364505758827205513869516314115333977578940616722261138432368825947551221405828147581868073557152195456577866389177282365687453641977092022614327342872665252026205978047706698102757887122438286585276393480487571215344568440011092664975639001991209706674378908953858433220312577885380382094267716559440710794969837894426693128160083693983879971295535620947234156875835954744391410455683183141389654696018969601866694008499965426267310584464740385531150649707398728896846818754524839503349052542952397058426089742105352869732546759412846399098975720070846705172922229708416821265997318223473741914374415025941463830767124181552599533874868465001272654312089782823599644643045131785664348025842683781267554692884274674259838306596392660341765796941207862961383703920918121463774126645402931577065338041732671630541285282997231568877004046927129535781998830083274649624323762114542954331735628964730969437284691691144468991622288967610750726499596953660530508795992685237491968792972014213684451032302808165661298842553275385219749869842839910008392968698144811873673525056994294230092495303621444071770513174869690939070752683221761455110750477984177862397571179933332507789763962135069717175380632318081004717442472612870876251450422736449799315194804072411488620901165294859899673016557280641231515006192509089253059799921336116520667354675534136527868941442427029786257495286809780728839966323270297605872445554102567026933931561767925366788200482389666401229119797866683924839050720996956157926423387451659642526129188045538689098888737881255340692254421170272917252152984994784858847295913589471022836300705411508016780189444511875933747312629506057781238638996072053653902044179013525184869063800179644031664681818552622306621932954488885617638097255477077077255671864707032038326368221144332153190134053444258752858720583839178777596689740954297527551370237835021984426332450514225252555712017146813958321853399336101571663303987768582405168472936745488414825696004698916575697936733501661718626536684043769968788335942383996628090152837799975777787549481331573039247651200060880822191916061631221875451854877262875407179544310486647932851420007378117934877997643674533086818191102629336720103768846940970464794715907725323244000737720098602440870145056119310069966818536238180253738544190914458645796624637382823492699573162769214015872166593754975293214403701301652641468854333712859120535306951216539927003561197876417713237546437239471149819801126449351899213891412984716115556187267969722190256392602104909905419829632859838582017790098288260343409910363332667899877429746940333403543575716085490432531456422951872789876495635402067713934768815430803006501608084628153704972779378397661918392102543929282585950937493669840210373980166061788848272101143169602848366630606970761097038390008965145990171202309043618362508444995423975968539946908391487720859903238101728929447001448496943890852135403391298678705430264178230086095294158097734000382290413613609120189516903884674091458037797223558943062605833141279444562652848385384142226540618775431534393767253060365349935590924431810025838481321062838024283701219606385301807749066966313731701589605267557103826493941288586172636517415760798545231054769660678775913865395855077358895965789391715669826537717767353319798844816195773591110374171005010953017762146812727064104259859782090832003767110256467450914099030971886842384782691249728023584303963274486536420082711193247864590808782573392181595506176022502603277712653806351278648744972021866131868600092238337659938532807296444338381093053979365913531325296253602506895329862385474703460666131616738417575374945187490458245003037037067614776914402680465767643846051061982331999856540851340264492703384785804242492603147083124101468154924015844040064620640537890454049367393095606559775562219705933801200995062233196819547385927052457108024956903384570067566697091252626792681496978311407182028993050992878753908194597732703031874754748196784800149672514084242516248263815156973566593182491196482959265781150453648434187658434168182711753103174637620754373769396372183710547717972302348452837251168729923605921879138180431467042989352802829469910099280190220416064465128744580224080046930964460107340635753520346059899402363273140359633170863045564190403978678399173479855943926282954457164847276631813458674776257484102988038343631596951021116137162743297579684045027445896841988175559869247855592602004242338581385269649826798383244452212043379663195415097195390603891009657729091419682335177969551166096127179483243716697286474089034834075778581489659588354892237505135787944025707545021379274592994545421146484975347767563372890071661607796445930457134560957496736722956072630828801310443333955466200080106459293935168817175660221312589981623933058883614914795626314506100194387834817173572839493506409645433449016585424296193854548836829022523177604918399260708182950763682944197755429162761962254490943450221701842288522220550597278737169355038512490692929201935033586677495224984194424686865132362804371861449970801940910274133222074703009809520402864583719713403359988962703369930639830940671340602565961304998574894805284698179198863773479972556251149846471570590900019387343672892116636649640905238053561513978677387892924462280498942570977351235695069136058356366983907980977355562101540392460509879846280973381754154474863890749830958646548862096306376553099019871002403959137087129886200645522440240805011977088815600025442446617678238199564878227109477927833468512051790059086333949165844591439053604462317476216345928387163558278965512890131696342186339655994126558303268920566864700153514040119828284120097638902242545409880866123050074558634707304238457466339157409066120950973453093513440144309977578923118516472708933056021618887879809117590680160430757573086629526099878560313154193612831191585658512858159122960784483824383944578691953252842219394013583903051808985432909648794384346956754817297657362674642859658625129160860822107311601235025454552424815146856531602805270236809973676853211647793576588250419940746183142807479282890268197575216148172438214658819862150115465787090306313954994113053815919945181341138574616408108873420671554736335345888072622991703589538297974693058525730827175390324925281585203767695309909114854719380144183414533469881570823353167544710723763343821206094477746322741114849980056011139717513039353782668995913853983203337408228750094294449907547445925186329689443277960223273727627319657465201732954055179641989523959966570672097796311262646225546840338825522426354747217331715947561509437136223883137088381146165314698553243560166864625861526196316512326619888029362714983373900110320882978244606685414257656235100347236037158645322837409600893424693752441956838643173633296817206827243422796584205164709947729562639897769980324339108906011645117884682149237954591743877867476415806564879002499274319748482088023878450633188745317372092667130068709043088193004726907635280089389404968271647684293979639027420568281784498865411085681381259476610590230964506097522758824771376060419346837521433938308329090037527183960384490130781084582045799599382959848802344872005827717703151992704460017175510477440095760479663227750432491316237465534537265118193186753872537261744366911158859741538161565103883515354812499473838975353577038150950631777945794939908131383809529563862472366367298074225504423883376392235885608577571854672822175136839208037757493399718260655737080135729008939102747257827260120206796263069889397373071525704343538409293483894731439005546596846137280079513611643024370680059172911784183809783916689550745795580131381764530954257778555903820668799062537083350650541001874274832440147043687691515118974145689811028541646514711222268378510279907310242579821946232433514334786416265784545074320734030202717809292885551101350537685661635956573530804448787748843182604917416242986485998395204649907458252871774876427381639004813704268784189350163411804314110395400761565684974022144986565631576539943335281293419107647233983733297876614087406691060443647970888346487323168038694023269392824993188127761383027354012872347931518556444390534545594746094685273207699309268592220975588092433807899764880411637846433750924267947447265277125204321587992958600798708538050096293581913547363733441119963682866632238285269470639059963858509823266157451592585234614464201049146179409502418290639004589881845281104985238392363932669499225753195845170912736544025325318603932976845247238286026494100922666741538942273714874050146102905688105023875330511323177886090255848056676080696742006346065005019351004870168276505643062177932563508616420738179596338896969248899444274438143619739675313665668921932846407705417551692871523544320960214469950123064755387911136789885693632457223616216451758844641941456798161052789119576847816537099147032838756781170658831923429445805674892558084067489884266168569836225243226164077131096241920186260640198108969365672635409522902624129047111252423164410351450362633090960359722970859857586230494847940389464271222366379302582896940903280288387857635013724154366794974962724711446357065479558799398785987064027954164121919652333043856624835902459193573323376993999526084320669636527824679148760203235136485784378051141726499701267943177555138782785569954285237877132579425993415874240707200534006595064044445148632071974168709273768051888773383548841321472166773695093797712773072481124482006129602902604835792708923070908700335639320397400730300448256412311643199972254707522148511449131206472250925677007861057236208943130192006730691778485968483309054467356817374819004466589346640012879629260484867048412998290553406575828046417433050854195869685577747515655803115767503904587427773353698659565776622707678591193025203843816502005694845399193995396147353235463253935963919382485987035225650204036756642133709055455446678446653566487971779867256121067943186996991778301962193685746831217904038765111613183516176371091562779147059155783956682295325845642639154846617331093259590411740456150353624420508908835711899941589151597710151007812814374720505790882216647133510849369805551887367265434299702831030294465424965753183315529307915378344559332983861817786869050359616652479177695532494218634922167437169344192868562568607165680164371218648718240830555459198198084815898845102161288225165604942477547828955179643662871119257349425885712909731514616197614751265212769044778235768458584421931956628851720629201467396334799077233481517125444056792369666821575579350350271784895063211292375457463216055752275596920133535167019953693322712826801386808720165180216878258159614198055581741088901838083886590323201849815511506185135827518306879482031227425151422323557835474244843820215511192649010270095365088756897949832116450760044159422929867835791410743295063095091746434133801112927142278232220490067242699147156110094646406460672549042161148838942766032249093857992118256482893845929309826654997476816532843696795057684609901517944767677365866624165155201048385164702891102089683837916118908173947536352915196544139402958529359065900155370705032379411548097353961058817479053102495815131209541209106771626444219806696795561654570376694860545838229341482602973690481566870111337289273061984628529054051089689748891791643299607722752498744470690717937474963772738862834450343230526602956854061147764628509490575381254694822940328082443464093540640758568532914715524810417430710967150855427438773335724062056756772324669820035744264576771741137033517943694494212442573677130247404573126042083505868905146219603002202546630082513952555591278624301179775050817997213728163087922616295740849044043858030494371456285523993942391119160335149493025532029089963833350291904656655977661020015940006347841429041563258266202023726833763531879932121047972640450340806274778634058638295467141867179891689967440582781190249868768715013779876480600742858494039755609780656329789837568433133558618532023177403490834340832167977904997213960650708061186939713168393151571667744000682905709228333898197295526805873349089253137330671407550971384919364492547649519922224237697937789004228988946698323963546968146471102229452025866990381689997786112245022656849743102370984760861093569860453772468138733255753972854818829112034996185645158718075354717898473171452544977696408595997347303382954587850246104437338558877899827972893399707722741857117223962418582544779177960956388481720328349362858293947261517873923042956881557056593002092749385390121298269366767912870044776180420834361321388668065147255384054350697017970926920477245159506893778528065691504986295202241813057009172595021292925064360299440851986730148032536542311439617853422589870054702119787772432619722239363770076363632860003068431863590146891255906642575391626132746033466184047384561036664745449989111058992368269970671260035190498690032743299148379599450410286700721930444507686582702665560618578307067772057822302031819018777438524561836214997374691470888915545996393414365959375658737728285150014412244163013651576843015470361731183175055268308497377310501598029355496767767822544563339528862504219579256830093842966144959934579880966726101023416912853904521087973675695056324523586087093131794691202728751228016370152775880798739195536188750930413740379107855367770146068978371638906356076841307992764426270384050416161484687648352281370574656286898002296330969403485702954583907390899274435257182242763379993241610320700897374541702942425935434157871528795296847879041109409694463281600043626945855835483509291424531076182871278670359759103190498278848450018175949054079405892106283123508764802179213475229142532570013334008851697311011723543862267387855162043265006443992203168312322785713490581191106122686706409690357388493285195813133328202580221758263474871353439984385112140412621060849872620776207979247610744938465343108052480712412422826856684763157463835961053711761135348970191394478886810377968866884795547677659970170363721182546690929556005103225368852937505065009248703424102378926219931995359769950551949636470233904820045879126461821981518057434842659468047655235552022652538257617684057418201098032555495767546204863205720239480229794334183664531157975841849357147081660392086427533671331243288803111217775526309316313787352362595474415192444419553699059643180200412657151202393842207113001863336375737738707414363826217154449401536970506779026486181945355002220241479295859329092457126084060572638855419904029551651386096532665100937710647887402339989756757602515527474011173099334966000743607004459081341186669622243865875185714885142406178637773165576488699908251843065753670939551594524874278153275321573018799806005366020583842251482400575943859031745816161103212519505539270403342916906022851326748528711742316464403659520113365177039273636976620015951983033933292504650004505893263840276815532037023322666578535043274902188175640454573380977681138595367691974625610257299366583212723847219273806876608645263459531803027002273542927511039133630794638357920245045855729224438078270676632143706794707030600243882943589127040200884697007494968469947727226151461138743532018172174672953002682960091810396597023810440871584544257295195085785858570751412752963879475488899353992699998409042615902141730713654820364110575104745434211614485115013885106330490864230716394715778336939603834968333198917152173697204356659007816225246233378389302002550448622808615042552216607534213447868868622983333107221404899720948751658058223880418893980466420033747647334571365496256453033175030524677369586225153603138789955026894578576946220257601757697264782205384048875761258165227872120695110485984953716484923814073969778557467871445470398730678351050537943666327810112849848914873577665269224360358016268259277346692504189728478205459133955874729039927503059477201303181496097874864234958845187911960778084220941316416355284994698955899152922309670384749678218536374161132363646426412039168123659431145935526550317875541497944026741464141208899853589500374359044065966648259485508885802471985974191063963708571291753500056861583381495507127248562118764412405220409265728089746157727009824629264108631988892359436446659472073060481422755661547382635425546099354627996007553660194951115291192484703359760626576217864004799817799114402915621249451743641437679707691701170047520499566975949882223309785605732993293501827432167862713309021220233649692431864544883754246341025182368108501747895927158812808807412992177412467000575443759351162158066956501695880998232227501544783810030702781495129000083147348878613621664101463646047497256242261935002849530174074344992748627641591414546538116121771360369294743675582767424856574266278487248790395382914406443739802990666589623326895553945454114785281932125890671468320540249115773842079420905063344222973168629881891152786847563247378725054252146608060045991983132595116742932925573257743101626179401409221552771708532733481660226918572292998032159614770289346306002421173531304556946558150865043135519269935275830411685384193073467955263565008948733625089250947551216157240545773727321815418202558181870419992719746156172122900599743721182886704315887102263860083256294954496454180022773219594107827960930024589320739952128035954985468927586637356262038185018783039885490668069193589167831499552599995668597990621687394613609503949931407081009565841047411859377647053987889373898477513499073515871914304174445935184902358642523808072150683276372091327424642786832373375167473613522754101822647902637324178381850801876520888153478376634763884276752976609178159066500644612362713881194133387214753353807591470848266678304114906378773211882055899680869464454390253608558916997317149819370041653086705611354110663587783202089846731076527204378383113311457295763599066129846294266842198477915286294968775914751028034833851618856694383383340930532101891142679733735985974069795042734263334476897755996526150665741633026181657839064028054492256476568240574104464913147918993400289685813375685382548317146359115722125647498841176704785840994552863659560427048140891523564476428318442288092033345633681574576935228618375288175182756217214282359657797018497162458467499449972574395083912647436140015157989718160217935375985291735372800732363271461728648315492111040598751867430328797848014934156487466723086845255450386464426700434866243264464866734969607474859983622343910359274924633274803953192240837742116454322651309556065235994966139760419905798699343744213789794965160372898031659701592787652944773678318708727102287658696323741296805384334447448552523122792903968638984213612596281612032991490992341414090821687849009723801146252725708482987614098689590938853802795598046403498309363406233384625398986389903571735711678980458847058652628741073378756731833373853344110636340642076412302534647298820444379178349942195437130444827507441164823655998547956498155733331770168942230361632613291676749121594482528574160647435619874777077991242318974648506057430053287021939945543894976065997293568372584324947972366281454670453673085502397570710635675628963451413506746277057097053216541277494780346690126091970089419299648929045608506121258782742207704112747953372748370836675608338125274613102351674587843268044337767460929752223481939421515868708412298910791073612907926353998000980756891194981622792427494641281528691730881121151101575297452655629027206841435627847326816506487481196775795184960304155836127474030977400913564249635758453504876279392749059586795181158368750349155996913664046072165648845575404152798292116681507535754493849317255691422357273358979513241136401328484130249615967124910931751445145232832036650681456915415357287513050555502082041048977483293937770164900386667363241278378091995898084258108409535806679231202838985322988332603185665972579882170726632774980605357598614593186582955074502519425943213256320659931341236551442730596684567281871083123845834292358129019188963592590599613567086048182924477886851084971451243244534169727310778494080224253034786267474587681323085819969502502218411029460847630928477833912999178433962592277683062915594216894070974945480249951469862529296532285019593991480589855423933294532517836210742519259911282989525486130537710709691089723732549036457054247232967905598068719856000783454465877581105592876257475059193143066876088409090027402769242629247016965609800686467875004514607361264980769210185392823481961082747892060960345788094540190750689251528688447376432494464783686571173657212054166804686620787497263949069897555322572307013512277027966040662179645360846195032490268886497964511516745340394594440631682848246667952055005967289673242461417964297234672832958885216561699090716686650680695158843044518569698361782540612195124342157853340895291441480640337756661273008160612175298492109741308168564529131238658387797654500878096446004967875653816953813368039484586799215109772540197633383591586429031080252296239493016110984726785338413262910787595821828384242414372930852380541577592886302902957469816518446920912897488389445817163515094696753559169944848917210053404236182588968925000805285434652208812634116625595114283045876417761348242938154535636581540856940687484985160028565045523975796463246085849291762796924775296411370128208619261151594578876814799853050012342329144769607297998684535180517136439712147104937071206928935971076645701930355912811489021912082202776203363270456305181942997844441626458863946260316944130912572990492943698916600174408838457150825947665674894668330763482613620280992836426411413056914373224804253973043131981810035600333736192986893341186561624050458856965622471703686094815329300344518094863830800794723843182770651267941276097901601349372659091233758845145543481891112629366720607702884319089548493261358196528552331576471744663257412573177744615076904418474359776854139391519229900483747971129784943038014597840668344645818455512529976985464674063749060096287401393333401800714598570047120465560086010679095861260392821198909938554884275788012552454198664442436354795568490042806888859805341111253879414063321058360511337563364423672526943333575893015331715296232155142434623277060020172328824404822138133630398268476317865268834922538331295426817176432084306574852937165739181983302096917360213688586508385118712066692875916062417194609777012311422066667074243303784307259125861224017548534169382847981419096094071652884496040430826321687705271710822580826411082512330026302360640755730400918385145742938746788485679027002579049465704135023649020517385586185515532255503945579969605589923555061896416817694558764236540264100789757868344878311525314035968837309750927178140937285893432753073248503830930094249210678905511101679296017864455116651498764497441223345778773300600691640877493891732535252539902038448727047679589698164685146820338488259982929957268164967524299681686292171137882588700360332963361917880376672497667986005106154418948259635632389656537477537080833154610895660447709634147254550244862306989732702781558245098417500934934564061870275132446049615375249602584135544320790176423537902364680030370021756129426346554489481187133474709282340359658884165625273680264705764887727890275285026902746037493002059706097038777756793329410764188178319741675477800784414799658981830698893262686368551636591371578864126304109597775309318319199299966100983844042790148407533857199595456234683951709165770719341880991633275500933751899376783970825815607894385166687692543917126756738956443503193700078430993858313632190268085510744165360112488314938685018709292502317457966527218004464965774541671944757237039496703170761099654085871407549016379864472446183709895854420829977313079370463789105461295885027966255634068226924713479163788633091115403428462399217070571670375147180047876032360482678459382616359443054027526362701851880902309272083357251711589844449914474184996086363891229899355333252582193917834206860692569641435238561514575216660866359759521521371761502993347558248856609970661167752604557229724111127803964152445565476999730240644220467986130912967867960448131983959250523683518724384563379814739010717286862512511621122223402891251136427625144424847283242214593203591810720076548609853362937401847974423097500210912035320860466542938093699851293553501070265007574462870145361696998101106276811941581706708868305059775033596666549615541960004517538378029969472677275096819381965506376513769580701242309852252640037601012698493520998800041040566498729017136367248658363085732412431141191139578113046258597562091373186905604599769751319170479041457799339730081020209846936128392880135930602343127865464759326253393157318618222336282185293268726208695644618484169291866628867593103185474821762791543444364497095398168337780564743639582726742519550020022423099893492831166878039799948298883024025393586356277755367281553595672308677599103337631767420770780553552994973655242358398234601688459528422185009426847802287163231045713523232885980048296213634013585358175209410053609047109705581429650562227262738698966730351064174211941504351642299770528838634445377344458524670565510237728098582669075228303768209212440163685264876794136940684453329314713826098285845142854714031045945546263198889756927975002068476383984926410099189618317173117824983421929831693109449838978358260315570851160955848622448458346195370962319156817625025699657757537368743863113136073157499782167858167074840546063419747305742841538913444553171261871175585926148459673697120512657749349296985413843825125564631582270965343905721797178241783953818957138059755207979529816658202868860381512474832823665415094387581875634575087360756971015762815164135700973546480748282617735042091396086924069340462868987665485536779618857790621049907881406278273445492226932799514724006123049442653245647364264956690648885488157296299184391087279017326917817719386785692261437815810286219198017985734326020879150602714684604430809230996532626708152007948577688441535752994788012688865395573260827233255488307745705838753194063033751257810558892794069805891827076532345586809120211739377756305613907633077456907837650421629528098571852254417646902445297108857822128350565011893646484977626445243033106521990116017317920798446506946460122088382400114640783905556661442000868791819170961055845244610698884162791337207969035401853488184188698918138454876284040782801847701171700874196146253949034138579340560304694536650029860015700341070888353231884627322142301947848593868309815461548904191446594942885588572855058853296921185560615280671068034300837880966824040267259908251483513888015653179050494647262483076444786598557028797261425332564083962401947172192619685575074161113489090997148779797828751207867215581526549318385592332303680024535201129798853017206743595810385832228942675042888653665645853749441853404979945061586657235867892461683010536777574108471397116975912871564609120243354309925460383217867982062596540226198652113725641933462555634251165900233756036996078976568048863557396855817674132311298353441000286851530221351315255370477694938194865732510885783158664623405605586138634034764046373089983229039312276900246971412847464729533999550807872125254253844212594955727723364695261900994709735998499197276141057582862680056581342264754980884680440012724144124188097932400450607882851697934807696346968368901355564916471126992830648777342856679233071154215911618754357180978738165075512128933914676001718312640320347387960100071379698265212219791018329632174297508309409340684995832693156620089386208563551655835221190215423934023624397680442403602170058241552800670306662136022449047283291246382849002010044496231401193069203110271295011286131177103270436028096200511957956851227816448960665735213280537037189638056776378844272825336761547874859696311076775034373642250314625741544370585850547956418577505877485811276245791394070178642673904173168756887199891321762740629473785256591906122174412757471253926589525069278094618707694366500964183004281194348900844713527712837524215962223729508487585430113416025775124426941715167371160363415163774975682476011114633937797694994502437231908507798170303018120642638919674649061419364099685913889742859386748867139076898708798256807985784591800683727592749183283163300001409870884124210641921465413829538280520446740460650191441228051234515540483914427919082072843262745243861376841070765173410390614622220981573371938962979294319329498750333289608268475797155739566237453834190671412845786119622768155573078788802202455548979787667315755861485197702405623464770391943287393826105857873659523051454225314176893017807632593770828524172205460336374829236329337864864114191374561102238118221287039501224913797877611707041469065101261299335514386705877239992661129084207437743959555310030610522967412569429412327626683593445597117937732390553005383683271729457118974030126977138945349471564745460347096511938864693975559166056509641207240153798418926851798559912791489908583201637505703367439878043179524136787318449918544546550369392740327435218648654698172746505739009607592255804510129558057173776856923799407143165968400678674595529871810191656709435308301839965349387763723705638460677409598668227679220936586117598784582278832439987169792664082751806872894733202950130091497236153564843015141194913010469674604134202604108189467839691028120596206359808751629872471532957201032060229751405613576515174877573085698317115798857995506036060082000920715895731420121108187318497115972062290086371047847299562534336355757608741419826801211107809819221028578144513200796811174687992188251589292832845062746766254503463915067033812961806308009638260474078641023657964904501664925267078549505037099748140480284294656940911832285637200665720597344072526925353932495289389816024177785956636268252475962257481264645475777899792918601399448715732326601130755085972139590834506748456106421284011910239958687646742051086541278463680469999074564298857438297091888105103586639444596462071745162878915575779543176273224304292534152821194194869401130545609169541268235172555876622172098739322020105465881698138903331255423289803790625568202243260944497545879708700493708565005737363422302658399882169668768244917348162109852685489647548175812461278805080869787621339936219814030875822507136626728119229583070049980367557605784570385218195291253555147738364361575104623129807509180357617586283288838611502569013891907119183809351521159366613615364758855681925352343353125975170538954212754549930700385130613415046034862961001758176205887399448228545510934560996535786141000223800182625223656010912263799967096674795579282258785484401247599268088103792289454709809446230341085857861453077529993863649390547254673539694069303076736020906001032993453905177672050204069027316146690877299730306557886294463496275562185423880999584991121924754517276868375124319921708781529315539100401417911980869199705511233883293006762927340150928687749447108229442545234998928033993191558629894642306728410862399658028437058933074070942394756761745868729470083037483457796250767405848765544246834573837570866653197007964976287448774226926598898033092497451210921908978556378765077519772651147895044575907043749973416295393449947736178101290822192913580855948579653929013675282894901708345934054824575792027508855855691137024001774197061888562663936747499934863362320682109525219698763356626188889737907533648346098778836392735407714706725101702791678359253156809647007596280328806134982269883068617451115046437379208527374396369915640111743406748891533543522930293427178058172657985182158455838144760885885693077008447049676767892342290945747678124232135153135713551574864195708957905014720975947304453952213161525688708004662165904112124706225331777802613193883299160775767599011835870331181279993648612928410731269646127406002599160804059459294227593880965086150731099773547220956508201262137252259496640265966008275710632468553707187380113011621455835123773719254545357009629081892061045490705490711562134468921032437102341460677343816634561322963558440871968270037357359334032019555628165525562264103618348659448104042594811306918273752537909908833415653309819200497470807020529285440786614588521467826100632134308052371403739237827887835833838832962216011331468484316209710010158132483913429595481939550402522067051172077967267065094920356978417837348926606733563400499559109413549043857885868001468088002775168275442275947427499256627199233140507510884539279895993478956911840899318549963125965724460771726428524944728338779666948487189500320058206179281008871043761504579787928128308849662757459976970676329701383983012776849583287003337326498235901709898206113382895146538915797687093251953167896851852804150124627322980736605210925492995789883755734111731916380316205673867911970892557826939250154652140024876967629495567800310011822999105681123490799198252755653469157346317957230776006007341335248204307133910585757474159050893328490261646395920565108527645792287448491014115822377068366357399713813506016159853624501934709239126874604654788112529679999523369937192944880899873660110229189313659194757368704525824676313852408953314170551859158674967771781428478697431303763642554792386833798570082928959562548356904015923767290755986420685574902683697929552904907733969093615830264648277605337756623922511515833863896889292915531165632669935193179303597845628372100086171337944245865545468286876458757063630063502036515819472326254900181015938174738975225434558948507803114826107972992259013488467565680095924215152678639075639528838433391423222028858963631062152902663705820137121765052713911567837061991782494162439471145346144032845491433435979956932513956049797431017161175929510013589422146092690056209569312425354779413020949435538320089320293216934203382608427667377384091499196603215330957539081805098181015813585393727119544120269249898169571444218199865042429880079842161318774974724985874189618658980749530856953794471749330456984284089678274005840899360212794852693693211291187183234589624797650644230450825686823863910828221019451549065829074469053313951801693452134223880888189843596121985060186164076473881484397689106183215938957787802850486419277779035046829524932598038510946415857446399836350353331058158678627517589086872762198733317642928072684395967330803233032701614418088270859005861115006546400599355570603120035544136484392545005026847243796518918554803544575220290809988937932451222071062619542516461844469669077021920863989339081042381636754540274273162063875996024142722523155788106489006240359090807002830602820814733673505581416946844057929338767544177608165138889425816774737092866207780195095129581561043132881374352998178861846270419077108150317708052067280987332488959189551929806458164501340281290706194260695782735390173988196856329142050666777618516057938396823932409437079484723738089990220976353899435654941718664447828552508752032154849597632552505358530168869337188671759046399555416906758913425451709261031183854488712314096528548060288253037227568110640685341665846363488099769222877995686044573156884334294992878457720406500595031198449449963796252530176926276352442678472730589326853313346538062910030344450181725176166934153769501658164559677574544127799894545907088913322099993583444039773767339022015354032700516744349035505881503906094912484214252253882668821753452577898576739728426458044666566969285096054883018122773801371444565070898290119564061747989595915189340282320229906647785878458572674902840762716553690323061763792503997827864562810847366805412557275889574325726421270498085674136775707680126866054654219854717769220662441557905660782968681666347554113860206473482078787532520884143249215127893592663532113308537527761955128396274449328449196936888052747949478506886724407156969234291763278779828907336796360025357017568541748500063790524090557647917303962370975195810769186919479184728742593500602377477093111126373965145561682263559947292524149369851985868561133694471864251224665143477735587541990713538908191136516978761150945354373736002779755320514281029077750707289013980124308236884994237490591767620015731543742234165985002939863012658665360270823185411683682227649833658512157529210541303406192572383013142473829360517474945634559208249408359868730632741190370286663478627066070123842288202605216031383343879628936004609594169780522053969249950767850956212801956381924854550349325861374029427271659312379949451292758071379896219215159978183687085068707909733767913654616344048359437081831898916685900876037949815272807735167820098672431110943360218199845601960413872151348730790391758505417675886968478212826234615076678720515005886692631190095661850805199819394142528337290393686895869859756710544395410772845830134890108835970414946794345756493751213850155616575382913386153926003628300862084393527680276611560281816408805313033522560249686541246809688050438348901484811607636320814706872477029118112695703691859978592399980341985206962245595582911775406756776019733500029244500639775921541274379427115894674389358335797337542432718366072642754580272848057502568343482387014081170706979942344615827736123085739709394415591379250407499261619598809821929307227564273753977746385732752746208109101015204882382686590167749264632798963630913266426747387483662002504620543814332369474989881412738090617665079634453284383664553598584586960660623213994783135976916446005694791501390995178182908500410480091642962172322793380957077922471719873792181881119595881618803655762590017563929042380927150653199934122438501194596405997701975671345582429729263046774206850715721078285917543701294610515183200134172884688620095430409165649536075188707399066734687365314452091964778747576317012806685743032564569090646322662995834786141365505892844050028991091384589026215571131259733440854130157201018403059271468395771605950318603471577876325087838326606718743425602965139990484041723956321545225367940234081331227349460458070843343514834128159097232390176333593273493186113158193258845002037581875375320831867806339044414433135309278332733355639850955060644756395574533674002027859726276529092071892181446937136020073950508861323396644370770097157133226209732178897167380147848105087046868738152103786348345471548863693428803081175887626342536760653087378042360488810826335383519528634163940231877370406831361078352235446162485187378297227677137217770521014822685054178164287404739217638239217315574923865098959332723103224980696113675893573978788589891252327628661946267294295742098788578885809142391209481424550638361182305949752104629919753552117964548798980978273386966072268504651228809691105796351837727169973539280812919951737870631304630451126814564519887515096975489110256594858084824835580243310975408725483466320342703640762313483319920019863824397545620448652594575456668148653994294432915329396064199932867918435695319145975690396533800195381162334921590276929588405913545311934566323833398336758463975907003253411696793294838133265469885102205403112418416564472384892527505431709229791994328479267610019123679100736631011521662784389920467175878233173224361411860726491312122550482784798578761827712018492737329251438386639831232547453090175353786090761493720826517525406720971634483368611617525094208642583387093614139100863377259040345745158437661832200177366835138912703212219403228379224216097232382502709615162220717742375309248340642368589329339974729536154168188317764062045135019896404352567897228714844747251983287475956435807124400704211670927171916095013397436565003402498240917584420480869674798006014212275193939850806397696303507874724081794793598857954581208451936807632043555017522098312789358033022232408537996322414757228829014350378561339506306381153359006408725808271089991192106166498454196704885913683474384329702969459635189977384977634323135578609901237023071387664531487276204272100858511585024162164898282092786877772775815740921575901566785218414223456924177880311443159789035627421725232320616216189270824739767700876539463067847651031269961572222026404312629757421146536022410434266688422575910664192851810156681812077418296128526285227942796942437062522213815870851148406580246496170693976765328441280764804556661277493175715509754857965837320714902792496197360485217865498066920737045911495011640415686393965424500827886251721743144894592667788888507418535572690331452648971747914436262385848281551944554375410214358949345777570590310944307569070298840599148886630380231325932811414064566044941737954493237671770439675496941612146481921882458543857932710602437782358592381435374724031733947701737376103979980600308180875339789593678620303183108061232457825600706442654592352826975704676808283350856609516890886160353116688529791758725723032815013566072651195764237810794385878913652208770126689753303984618762549732739155849414601203589972084077168838359629899124166779495593241874519931363336813464924688391167140091071528095856974106911152826354881957438018639331263610326506985634455448529113589190287909170784444456247573796786981871078861032935582449713716738328668003622330237871507907631180725122393559233276612375498413341753177727314703341875289015690300901144270636030588503049603046289488773070145440074788068365456762488215837989979648502240900567582027784191600957715195784241405065742138798258564259359100901117345352899035195087653543088935242056616049907747214372090901040607461163495970726845986165836450412562885882188686702810507058649366974258645702628192727086804120492094571668597566456235780990887650287075123200317580906783065187008967752853253475424435470365430281183663400381739172119699470234202615961499750870818450620652275956895918153389012682345527785725554239987680149991907872870585242262455347613914787342908076622970881336573282867021211779519917157181167071752132365577405288358501338065290735527147100598486679601521559477943250034754669332729872346245403591744647197392456288274589193089491277405758697960618738574752885138608442869215669623085619165146738638872054506704183044945681099056845372072186033386413633835572697774808873994312367223628949471718279851603809490252265226805039954232627639133088056365803936047240564188342766015915855346225495801440805006414561998062354502670600142023802339316808242481365712881911628591890361307566838236135974446112366648579998340792364081440482217221335344692875166627868677150155441190773749023521128304300848465927914744443163745713220149360481391566628619595112033428034864790928823632169701695727620370616217196871202942252874988538403946698529169557378464736187539797303354041969387077237171595681893091024623073117421033765414958818563098500659778794081266171501417488593728805479998342811826588971208705411696848283266521621585547214275411389523306329100629283812623415158689182070164172142364432893202538573107642539924376744237314421476370316337417482533596767544826294338103898576199133881547141634147408966991739538840596836324176782674013460321589928918731303866379209045237307540864123131739804214405935738062092746660622190317721534705914504414405305950201913551630574623852430219874748365656847605013823554777948154559498436171508068280371885381844267988627358704847426860852659349252305038306829691045477262898642228257350073974714036706729943259142868611970184052021736211718195586058223656349810136166088908342975987468459246348599934339394443472278168976345032459034854478448616928996756006497857145879632976837848987113310338364636787944915057847218089114753645059581014038962141082379759074109413371090876993193986247943341192479794601105221590556757693502380300515170690977880154290687194377814472900884424100397490361268773801696542116062849458120826091760554113935479186514877020985699805363758587918542285507181195424730728512539682622621513988192330038270019937375447765755902019587911397948528548164850561638616711684087498908835280276360986842178683448586860646043898302552818533008129757690578350500040977137382056807410546684585222852430798204686368787283093345710979772313558767039757698320832737359110998595130919033313964495430174447353225737277002963494739752243987788654427013785769967713297248002902309819706265593751405155715620000717364430406475414911312131631339854990278351959856000417337000090483847044823578785973995362611942855265900438081458403310622049571852800787477172585445054017867502205926045095751425931884439291500991237005346735675049243145709743542199892588281158022454105451909264369345469963770148741837305693421372624463128902179395360750019620950077101986382837020053946810373637946347947344335707819199233317279108024888740888890936044946864329993323170539987972833813997689404912627604604294339928539042329519574287348699248035392290175271113482052439528982006385482696117405845984295207540942161272885804278256330322700920892420251804959453071227045462944342223383367525035466177216413519585115685066164420098826566170933089424848883391898002631374487616913038817973982128545081376710822346102362878669372579402677804172690673434611308415197719077948742822630592737358374661498181973707134844707255122120253781438649503536032381212127306366618794093311029241076961406478723680458573159992998537318187938483227325109250248951265391572049946963406507574701602861693908308206997787052437692159488612809223882153304148638732012424831740108351187557102569983715796714256208682250692021872842107607100309585695291758937751570131304568202223986967675842010672048543137318958442406867852708256690899858658610435785355041311362527773175703819710036488725144684515070304973400939183625653165700698974662188735029300416708656865309097133393127642723021397059019689733871223240002219271600562992450268445231957606321879012338721745254032961661361737587378568177474681509201765290547786408040638479938898029354551298922055922140516756381302186969361390614661720085528805987226551927179949037754006323036980138116047363317978348131235079855794982991222290297709923526711300676894745829762598897072927298016605525495716833366647622795473340365688071828446219973438089653231389356233289198171166585438354751273997767195742623723265014310444589962031468577713017893590616884812234256393344560954978708998972100999058501925673567809546217692266351409300901170893691059776684291947189083406259575705372687984488394948494549769211400292799559433220501732249359768758942679638027111975008908477989986685349661541168606001444972645787216145550834043981179599065540638405757780748452762089996076835283057992779517592405577565323110961031755820173687984273057950918853744244535020065040149634354785619869726889772470349684420443698464708274173271023010976966228307459393751970819524467508594687756883541553132304245864915207219040745434093613079736112456072084336212697349507974776587325638735551335795788745267496754619420323695278798691131410420945416034995841864559391308510702099500311327344059078462918589690131184828546067123021429002904708141735803773165849164736433589757633973653975136784265446548950533563327830754910763271973418367336237052570095812407066876418978203053301581019824763012309736059740860819818097003261885144569350862787541092554529559636232158822831179561466970434424759222156647456149797370266295133171483455363058430851030677068422326078664339834687283500759812357047915364366697643640339619115959260833897679785937100380107691537940858076150481683342870900757727399339085908332956204830906785936747661640117992330971981226728185076781276297140993942724362969540197161339353462821164658584648063383227376952640734217175035305025525335821192070476320912053129976648884838280626593932436780371018754561233507679135562491429935634307344408160029240527963070065385546116176267075982688604651199849299775386964038721513008625068129693560428122446043966692536370138205498417426784416215482235077530218176248812886441892020734676042844348070937170266120874981172215272875259179968918690621198378045364026492947933386724893300126397212059573168570872402811999247926212185292825038085053241043819090057076055425223765711903116538623761774093925711908310407667336170604649839978055924047551547233062345341492450426329989165275459068346764048897631692533529002147118027285856011898095113355131150651234040730672969433214763712066626553423200934701151169566024844631015243246110054304170738876156697492329632402862800752987670652619541800889218745099751353950747421235114382625455945628224488200180347829646931035204926509758843362353197846427312014802330560626886776377273081414274065113022818271685430219356855132727558657992334648246526012785170547183078411708830755359293875008280094462512563567304837650736553126620600667258311247449243255945218671455856638722649456259867542584403981974130174900221234806932232413479443314109213765509515784081655913183315524186681337555156754192162146554973431775904050020483787519900363979354170158376350675512595298018332921940923331575214071803828929788068915958166894122371026972758166717527236924198261253533654157073980459342142306902578600441074992314745570438157207770784703007085103751731297248095866768839956408157546711398090267953875904181810223607583223924515752053986334904284170353282179781898986051843132157178093896211249285324529075958744772438303111357813885024832810179598885557323569531934933885878197116975486756092241205168568757686017997740121363344314844672454135165655835131390420716756362908297800976625505913994376511191018828490995546989328332408906743464531125880140317453276145854252491321534390524059588999894833545822043776234599061403651553805294650712799847433553859125788766847274255689530251525361231596081412002602293369813037384016530923899676089824589119260519049522425903473409375664651775004177890014694723592072982315750617692658797961480177528971903568152396246973061018778018552849403314044526950988622775445281852160925231079047190376939596346887723042008934132070977579061055983163977724522150085411115798840004079737699530823184025620055268291494041171033595489267883866232043778350832636682080057485044142269708373662023072252812220266034596803524207838739198529309671018291690398342548185976196455518485859047929085164917544361899214968270609844522699822339107139152315945620338954129902173756813130132134478394811268703735715823437143454937221636840950372963808766176701376473697142999188657289265863861841739248904669660791224669910657704526379611820744616163750005514593794877031770904219264057425500950830109584800224349504994091155725115500590107851081064045441457860896979430984879778436941479254543445436020360178874573413030187218864928151797909077685907011677120668584463826699192964133279568364287705748032060265773642763125094830072461029827178801587684931584244994333365827997969628733230138128197905705780078288215381134227183908167779234609068807866302244112545384469056856163327243467576555942846767982607957395830339403977680507035054528391543596119345491675440775658173887216533852007488305488780795290883951108216730449444145672329982209264539547996400361405730411159001111859646364805325514857883773402987086247001054638347137872005219387692221122649451581888683128650389246806147096649577103130118623772400524408770034427213721804182773482192442105588711589169886313010702642993517758599365332447177629578920932165949911729514692732566907266348254154316936522424267059965251580550542184238908767004624106775023783799229364144326485538902508523269548377865210134718708065951751209335697928285412815903742836340838949812318014176792163440541602906392144259780125740269986800523374779733212346528412481535797003594440095727434877068081807840415523413184626963435147954518070033884780923127168405448384018494503688338912329169269593225906380942556826199383388362436569018712161853177229504334193785145077234130000184310774620096268051258749040609695278521399624531605338947949350238342923332054279608775802541427817898473758516214071302781271510793524207796895704163846317227679281624630213774403020413674553343818583419056973966146805089331283322136990896315988142930355210086225876699264291770706910885678235279889626243019021283545150607968298357021996090371945712000807114680670423806385919227981539265884566452592129698606861675493812789366939618305260239319213832378578660351924351362351629452617997673572527315999164347214696428712672190763625406041821180515867376651523855221969455565658893985452543481693318727531162507172965519686428240569536322132644515518480071597208918064774393842031427998092823381915829999789568397304744528278579438919451653263169322994812511107311965707036055045590134894906047615445979891344417056143747088293078593606270158966031865434727458634058301588969218514589094150332785675958363069824783154779285034141867436624867971976007348712569632356920525579415311902123046072814261330538917598667463045716935632794508847230553458998383757265618045927069718963550094951847216817886535765637536998822687671918047384124836981602145609024160998961305786850930515373209467239984758606050484058916585410878249570001710447231515248437069354143562637212186506567582759642245994048861532831790809953707145083456669539381978080867904658272552095137526895210796413684699488273570648236645735354864617460698150141514085507268118160325849582775139711021851889044950864550827205023832259565851845777163751404286227806044344362415666509028291725662732444645576539098051777111652661955479671763960217296764588540854567219888007404286721221290687888000213313724674856258129592536110029187408086770359782790750398153485171322562661166969516784173495133552844636647720721790591020054886782124906017803256175614141291337517744272499193675008468174642883866326063316084693976524742383473906019258137593428290550173740343367711705452195304928431128942781598029285230481083834538362875781651815044161283752378638572855560645479421776002771470439709898670403166339051747936288036841091213551465652970468277860470916964989854610086259304331788041946045529597823604662581961174100562109368573576366520276797040773877894145847891462973795572497565564738624468697796168640108930821933957049359548744854055936656287549054591042643066733673241784486422140900682819464964947075938434398603139016448269394095784968726274997824584106898642877338996426947727430245219807633131604500853029739762381382140927262553608301300750543322723623968735947551102273005621174346508625360786239166847867306141192883533627300937486226392218542714441466747129179103207771324610815664434261440804112463460863454970228759644063709074416611641435549510159589374828301549289587127433303317048011416214424757799481979261411794900184833707806448389997895379598968920115223552545754369962906891515680585906280468695839574592438813249664511173277013505384735757178827719124195758493609189287120826128702858803531752677641202194271502286700739421892306147275700820644160256683277173254446343483698489789566637358507388576278065928826189835558883419124686076289862416212805011022255630235412244941213424282033419244348409471231831859677910873656391782379340467435446305009226830308013713443119250302975473663902695100119069104490921829158328223373528344450324568065707809023758522560777834030259191863306449954427013199870532963341765379788792633252035311851618770049813936189319431768765846573760954123129938421176121201323098552209936096520123624876027253118655931552024969083802968357205968393909212022689959413481837761519876321996868726234425309193036136801261157294668922153643177564568551151159814784525912670710815279236311237030406051348137909013873496838933584369154663911370652468549947538411542966300686602000026032329213283344118406612573720501015196258523093077528559428484626513775474373204636027053463731354463453167895686945829063050585634004422206633227169249025383814339410492759825730238637910835286114880884197791087057778686919689387926158239552622389909822448281087091242882281129234798873696009909109154975599317552325889261342657675904296957248799519488893398389768853473727829692604734981593776098289171971431522312397133436017839072733285086781173468315993637725912957805996390686337512849093365167975775271173680130171841770918909295322858541090562683301514102706810942769425074780776603481053192918676159487671091238179469332090480186182055579623504558431452110421844858144004359180870707780914462033485481102243961784059979508083866674597229534303166597615559983266944155777699417382738373920065568555835476101381984170855685994161337463662567518056343650733865330561251655797967888909494737205611168616435260533337155097944847848582085339382045265748808977249172138692066769270481420773718150379260317894744393082999850181301052046615228162518601393915606382474787171793757787788795534523654063424663825678362344271598621952647742720143102228290419567671325464396971896668763175207747621768615657115867771966861626903739174395563369100633431100487026483135380766604478263223164633846244252883254851971692172385201044929691349822795593194361305597227865989727510333537461512255772085647488866191705800942700531598464304034206508113060508070232196985272134990776965465850126733708926997088295819495231603712779754971816616587651620028861091561057598788707859722319383207256709240831373776783514133552945817539274169972049542965584851186423960058755027118066087804652977882955218242034246256852278966702344752349662231111971907575697368048457854227770807883486777437699123437203913009933892718703949831747230749897593905647294479827413108861598711911842002952459725832210472016245727134943865132342223706162035622432898613321389189510912985707572808655073715762931330963129135488896939195953604632895993878757131630179972899618637981724957633723135177043846726965233425322161302615052710189957897194441603992862292158331521594017933860041410725485830940621861874622596045923643308413270382621584023019698135127407337738141519929132421486451059335980766943648398786519206802778402977289203968521134254021623946038045247455785800924252282769372138945902794888474761990274131107592943474077278779734892374467985006271443606526207136997307166873148078875096119329216069756801450400551429040629952099930202314709040059490833841174377438732084182950691759857217606627304645018761818294606333987789471946981356207103486377823199004257062253581789258401855491035012063687336890765026112175202055656711927163766319242623230728955696551214907288604091242989627819449153698371654446136825746171954741734939984196768186021570563393478150044322196780772722475943278690897997195313002009685803101145051053449156754161931810798759638785176348176861744383872347782649845581838737642724117582793421763710289597398679558349603837677905760156259400244004263937313266278109511575197237725270164829113237298777835784437471036841372928424520518163273011723168929365800032954145048910255800130280079985887617943849934777656544832008825153686506293929329185977296933784625649819563571093369706800644625800541705166238576448515286405372888460525926371687526058537000779343679595338122943479172974334702664054671511303306044744931751778687204967320522009618525568030225092081667664972790943374513356486832018635030766176266810879550288937015971517269247145739653712587568023762419005320639810776756991339944921116546108001174993978411434817473291553658289390224092073909998351997587771364775908463936297622033698152904913842351160648394797984577672651539096180124447436455952351752091682819856547468436054040976247065441473373269248897961268906275573639956854828532880173586341915148614043621740267537613489735482316996591870135920313164914158671257642839021132279087316346363582911408809863837007085458205415483823796387369705340001135883873454024257893692558870259798190961663126892290627103470539450324503082363217187386319202057748642760335149569382486056126416029066467069570093556260939187646419640692482423613376605736698293366079790110919821433000230724391428393055587762214419699067850553863975140087306156062656695001089187160406667012502862778371038069243521933201111174897770070563247360293003451193424142205252641880231120196456491761693508305921143533149697901569057930329505665694709912443719841287606580802915133219044210477675462647012233243988006323365362963657449878256377541802597236967784501199275988147841400758639481014079783243650778830981080318144751704477747414367142003471810604407939879079881619146016554450789998624913565638883926202994696093828584491513336933368356599539853858057693620274086424382839850888489809607710935589226657207569097447212189749771224767915461094930202967167746425439002219329567492268923521631565417195622272194428215996428124318496741319696112259445870223488361436655092778029382521781076669126457048411266086991230611676504598540362716027957915332805424188467171674226967038579227800838951762883553982983728747770667996669417961947481546082055335328184900685430394533484781279376946529948008586512133397120196828605017667187003312475626041714845681338345404117938737170564121299297112570137397213158169429395097326164910884646534640832587850835281163418468158779899955023997989018478269890171736270578048218234934472935057086766245530344985906538909037811175625841929322574792112273303086733107259222044382959358399597200803119961236143861017940390251336218521886603633817646087238083450253053668944304988882877866144956205217131463437742990806635120823820700119336996010417981653197546285943526322782011161542858578163835121977935376851346019490188204136349250855652068158847674552879637354030920250992258513695399128502638495964779313883720215882051892819314983042998368647512611090511365272489299969344029663534623813897293545462189284044321684062872434829985182610023864236703019704824528359541912267911214446289547401243333626222845114512240909268851965142368915068471204325739688639383984239893998050182391046066140191838720238344344285357910732736204070939059771961790127869299547763265809164607119345716012642126123772194889969585555651363922005116045566313577596530070851512926439156120473978643415677490536714514347790666749984050075429250598614367783049086556477503754136277410123048897766445110858480308624832649239881529151032927356232745854549440633082111744238257635037127118721121654889815956231646344861413352859169435693242322791086072921803938717676312645433269041986135696493754063502507146260617704302432577333053876430652129480808759959338080100395201844010055490941882289912973051890046378163911305523453504721680886553372097444263404814234759498706778352484322032355212511585072035829891654842216213752561393937839669971008293293793772502534714144477592881197493222655456117965589908053188680689627189103451328032030199924868920183014333816018037661719435868600989423615819644734643370442913515531994904765448347566582943468798218736774586672567743767233752245929689135388825828021930428153681852200091354262777852289351726576681718956739737603525432183467127402568920505864866997304654142388884074283266920250498738189198452377261378195553817079201558951361809194990306593373757260920327757990290779666434329167209392456734935899814607711687249245993395376055114956699401743496250701542399027322933442256851389560773494152196803853207861516738080533883290255782341695821494067261545217487946200575604858882060862264874448457655254853148420873017533393664949459497695816877649574718794524460573489047007928245553544599198112518985736710237396915362822440251008477828931776679936167255199069089212497555048011668734418971947781613198098728045647913210101826359301356822550250360429608130721814281984248316901264495317094952431481247150396287580240593217553415412234804905303452030724839020118781239956623131229702035146055286984911067359278534242076535507849533625108891797569692259050518322033033884525355427315814171107844638263796544851917588674017943539873400819477630102594771960819221690018920819249090979731860239510594534430183701829538344166740872258012033281846521858265837891605614269958425460521688106483408399600798648559993380015442150688217704225036020290763995460447987467204369609931776471085031756109068191071845925898909443263884709188298545747951486293111405356230836872892027942095094229081185306452590765322275649715627408035524357950706859748326352935465091178647913581367192650657537754963380433441042221059352334062784894252115991371411483726303194009907831997745655603837299761697736497737375355798441003932544728611875446832014111507212873318034857401844108607340164085043532729492105524840397497630770142687093777625655769481794653788027905193891689414941113982071589685640928043920219037449845270991515334169990013509526157769152054459865788883044440902490239538180364580955891021986106423628351578911235112294316285108110075763093442358575533753893997866714301442769404636206954604826461602900333317869276057344860021796795671947621761508752192970137760567478174418795633659155120871349692111908537602420633699658782506017695781827822072471533174617908536010429057817583459296019197383166875900935987528974228828570842633808599252729444474582188427761718635410988730423192101874214113980873643511713616108800587743466404425822185563051660212216745956346887480682436205020365320721316988649972130806370829723949027395116862990788667945529903839193439486137888537377578193585464527994633503616303644924233187958102496279830094143625071132481356914242547036054322880100392753684583847645715707363333564910597859172770399828745297359733496309136051728691768626757948146950223289809868115422224672542851249677925348973192297786376297168273400304299573577648201274632238427209678958981479487598683468820716108266564217189114680643335907672897774842771197732772714758501017084647553845928821557488056091264679294000614704900111423882769253459838490915030509479145373684095177908553780938564487356305252206268321827931558621174472030612414802370126911380892634440293573795595311890601868526260874020426605273848633532753908130266055023204758938485550320205255754661671910594397399442646069484221485925676380169880631495682601673888025693683968944702235563810490626321068527982693202576344556000036321011406788342928019757689273867227421291856168728198627952708906575693775679503024175703895391529311269617681192129683217273992011101550819896240935538267718607671815712829313216899904155650129687280866871521691634708425154559580969272706144894303533035421346381266571305855691201888728826531279475166096622057670481026229769659520005952152785254458595462265537596450072905957193008778470735979114036651193086740496036356933687157803594928680150059886569604558541371039804998785699179365049170562162396865426433519138853931946479508347944391736121118149686552618746791091911456629394961127850667247268903330514035909740779417862476146369802409352456020380254782794033865377953201386337619985742101362553017525321309427597412526998109444569671473871670880986426902497359720041901764932153241001948953976609830157270396786879627207118592990740474410332313003251793601677380441018408987611299184932432561156630635563138628056574313154683835179422575825567621117572702355644984522685226501017902134160621961792145432474168514432381515887335176052886305585735533723246874419665200945297924523048953070050507229243393249951824758458012739693883451413513934436397648566407032924797380947055368090128870487814228099756063924689434332533558419344616877185796923537390132481651145079613729630698428894236951538908086599290419181480670674959632854357178979648449759369846504768734549439524171802305161646956158615356190713952061898212541576425948280355861484930814633488934700125395827484329881102179076917565992539358336855512620375860642681560129139261976017110197972949841130062238940972177380184671735952380232065606381276970882835907330688065904213305225010885630654873555244844935939292491059964570228914435874392105810230553671654362977839167980257855613780793437393840380787859883193813146092288147621105046236949915726424829168124759039583002874290860970734157590552588668625415852899676366429718874645489243525854197693849252900426366586029166082129484565215382875129338605480481515874479816870139336336758449755491562392279300329160732125083158526612788231505068817976590698436910677109147695888675611932344689813723768656040938901396655767501910793442104913800563575514840011077490231252405847852057752389011926642117108920151400751110056693238702391187330535683311550568185008378421595941057452311406350974575150900983265104898166070705468158001577789543126825453445394533641660763366004005178237909222247644747917566893592379080409390793467607515535236235373247736961239581668297569907609143769801186032710866493063442968837386351734841725207557964238060078327630362692910905299896247063916490534306409754476718293459889297344797277398059140093018739013964849375865325011880447199930270414791175113310561478747085913062097216719695087268353441433037303579784806633934637297691094668187250851401637456856071954807573332689349385232239080641454328758131148780152255082719055220390880561899798852590884025779189410204632167685415621722968928568853672665743840644636177342517136995446592652592251268193624832839124161852681945053277207099731134419335373064668147168258565987068650300577858602527823020810189023258366609995657214677604534492969310700081080088947970290843743192034708517714417486803757910802068086684631169150349205410303094438619904221036061063673030634905886988261841066216038128028060668709259091569493732837958216275866286066912288277042851062440323005602881160340867415514497403535320041221853946034607408412711173532616007661160429479888202769051281440226707347566779251905238031878782042962190511918836175952000975698055839026423945752892879897026436104381586855647354840241794282398936436650996289835229702958385361420424648204569258735755595791489785121421259444560414866522469505366545036561666939948437697639464577093128832591255320443754435079727406292447864490248096488473387305107772530576283613875504723316697705412137843098751808493383950418314846923830110155107814418864859985591508252288074201874860046289729357951169750024353821943721813920928380965811480677136823542837998957565775180530814752007572137807588908458473846450043567871936623953459906360284122283894056428755811893367900969662314325817354882184586292789693891422946843757989418449347402323949861284195822566250768130898443787298499047773974551996559623234460605700618288767791657148174105940919777703882898901789752378683810974433686541093613189466712510181597005778550953371639524883262962336358674115531041793419650215007913207988744890957718316362738870357544355042593626047875354945661342371921797956786321934015302077687491914927042719684354656106321112488020586545463491581447696626573976747706151059780664306024978128356937856854155096330098668755857654538293953907237471839072433042299958881252611418377030392675649318434781863544800665463007035604496078718970713992188373539638670822636911853292207034912446100924606534273681266329980320741230565210076043214882490225957893147736460638713482780032478865525846031162204211141210355001285120164787355729899609102005383403214398394585849275497791997652883910927440374171029120337506025466731569211048418197584769392371791372027142457901369221234699984556593037394325551496892393660644103683866095295875131660613473736017842702531548234621590613632902445652664483435707606391976178852797339089850636921623416314151227896200584297505761653498886039528671079806963771164708785961909970714062333355213794850536168348278575576488539237704842862699423187843839045916765647796329262108306872394759931428460490848966627871997724050740128726680126004175512855972072272766011497315515993379607206291470497944861093511630168604228469938270537220766611141033963495547453881385348527891165395079318850532822366753766657414198315523346466324407093063204497033828364506396631318669136702926380847789536257352370265135462385343990154797645023247289124222426093103102423013552342900875051348155393083853613349558837205432009190113381639143145026938444576848819580336777073214930675631268691245935929112738135764250121349805406205148788361028671697267564286890105050809590800976827896427831470058027728518154525607141132903915736649129822441890843815622337019244961154663243246045496233778472284670258903933849381854865911884803261124916749021772919751192242734573130651693893342670500775406692054298089528259747216939274041811015059611088708894287580394453284895940098857420276219533161299542096602936259959309983179065864230612419372430825791631980802642596718007505437275981334595982842976536555070041046974624602982751803315331962704291250359369511748492030275486080273332073398700802002200891111584544137826299086410805524734304496413588835971639330682054230154526906389283880670364121096344054656584209534812286361846471703845016298796820197694925222906193717165615326132208886155597134360386672576164907647520296750906306002050639178867997404156150055304470164917235264796841893989619036613084645847790846314575879152215663637080945596442992385941904302581138425167978502207464404451108057784365181688134474007094539908223140110217422814687925568283166898110588928543350772275177742951176182395321872119242937344418867268714319568131090948016223683126336532258291493482558114640512606467845351994179308742512326978891844210274506341779370983083524811383868195008833751910112921940252308715606695834609024880021687503655647583195595644572965573843413602773438127680069948010197047631778477425488639091755217455425648081675797573778373109526629088365156925334625199572901667063017432358414081659069607255143937011379952058960521725983699522265031492378881551951135669392891216516367701446644480908326060527255310712784768425381822849479143997775290952477108853066473094824830129623169130255109854963596672954682717108372180262160277406247015186030919573831975855327430689447132752986470278969378827024266489079059904866832376249833778271504497967458926441722392861099762426339412174919191521469514059530091235164698912398999381577215911331527682531330246305379834656450323819135951254396009210860687836506091072444633299485799953486309778855697994775016424228148935512509560972631398848806229079427782387938317096389574952335017357194548491444784580729875123544413333467293216748975086459740466765171560572320341061796871669114896053873464557822599124463774439470862263159686791434619927703855621467021787391711105544670434685240604417269385085186078170659257400490648425801211133298767444664881612823363217021084515227979056082978986538132621421630973667726833482122053626286819726977834617127884624462387419818883579783942561821717220403453850981461869619587788649171900600055088779662322380216567112329850389562375535840614349977153839405670692960841789730454221353879616583984091063542207288577763174459261188754777047805553934051368327916772334325544643308870593555416683135097311993084609571775680127140718716600808209984947632877312661612322589043936497496846530822318187292053451115375864137629113233225663500628313428862822972508800667199434044742724155078669310043455711333054849984770753769271942783873346120789020088568675967817826472086270841628092729780878216063023148034574850707899599061864874181027847786619271382293041761099006866425314138690132779580390514929923336018325877224468276498936638981062693956377254485484261626675967829870419160801027750190205761735464726908389091707432605832052616734662880307320109808839195959461204606177629069922031836582125596928042291956644965703403967561783127338998690243581520021215858977141466477906177090040500558741053690177631646626610124680642729404232893990220784006335697361539026106535575103320396237822954747733946760193342228330950649490512855235949802283149738762658668332076963434492810316129845552945241642200432828077893166219973725803419737783207132926649100302316496034703455491794631696518736893998526279558060976156883423344504036147447746628780246453987585390208653132330704917649746581063839265910183135601625784279671680395897764004600276853607522583875277076834314667147850105674259443676405282122154892693544979154810075097405813633021234164821925924150357294832434237921193141920766313546161653274470889048405280241027561854043234310736361117282183346327986567065966177897543526143144589914537274047444603299737040137815776387247892554119757840554545054215644528768490236340220734263769088567165166243895052161325328885506718757762618419944331219619504850731569284310693966739896059568871135197505612754369550455893570648516561244121414854644120635866091217257181052482402584083119314933039764911777095493442999892110069852396812335655817322194507854167955718376102260600429420822793184995266574577122990692560642803018631084816384649521313233216858041528336783864986595601855661795766336351812681132726576157323323789082534863479368437326794961866251472307055026393755574424773683832959287529029311474706782625841860530889961467528732925636478278538062269096925546980292808379028055948674185980599150910091634377075585381379819111808942776907053421419698607514923210976854459818162704711676914302216450162955785883350301159382155877032125309991983210459677537282944942502400066465593971001232491663007407952382863488189373532388591965169692063024898485333413475092201268790447504792679645502187512197396736244007925957719030820477727284012908118871435323635772817862622797303861776525615406752656521555482965490395850327988722177965806282111643186074296807303008926431942355398843398391792069125069350515071090099610711576466490343521763768961990384692212664420119507224877636136703557088695890152648146457066538294224513466562944326636195663246946863294279708658761023133903512748323165658331373816431344062920585734450788817645580993890465711379399896853483551530848752701091149710500761212500001084812153471730633246228042538655754551001274659341439225669708331555110230571009697110094426365836536039055532094624300244791165522606730817381687049538417974318892889457673087564923230706956223777113998682959908033179326773450035030436931970187951919432109325629104725914021792486908541819843041169655387856890847851288958677538433504898884696660584800339702226016614816071204627675881033755404886124916567621595471188814211017292900734320173887162016862153675653209582098314636237444008839720669794780628526425222500896697316747828876637798985161607316032357897477183685558304050085654394777963039891294051245004151223871394444382504505290359918059647067593889249059684953573936734764806131504588271645268292230379805775424292831365560958242378273572769196465596401800308548295842316976306996515525202325821705386110610138356720171990422856277280475454080011193496959394513081282695355962463390565729056074960217755197402596427324565180329185330904176814191547984275797858133625154898291137617590154211194924141249050989789416520992530352073294983632698275469467682263542456400446436767369891789250048650522556510323727766058375892139871342961389398476340814431346932139807266842052465681568451530108363261642560700754592262377452519614088203226111245029670939393800969518841154922717421996316908364906969296239061082973210037802031323030397151983234640194623342319539328410107476707883819685873532007827591205671727034744068400396713743465838386191142026960888128413329052811646390310686301063074627577057895129937063311646414914869774778141620998436936206617393102840699267887506660495923708529172457730760645939135310560512981890423706885299736861510800763592536789652555629530831804190818415972844765245018114897675578495335079273821528293610709553705151865239231649979890705447334855492880727729252370066288144774854203550740288480526819826116062028804823897962761924567743569964718132742473240687217811509076728647822039878415420021773990489183121964579888249321047997130743474294378879776120100734221419471200758056618864446697960007496616790314552106416897017437996691488877797076131528039835104976463767982962807990028428230796578232260026088432294087367356651053608310095624397375871287115765865336588609612260096622194059850278687586983701233177034987937628731921105298846497383018185953246638357368173371531749734113591626919910351716771836556002358534179892130309086780914007124664857224451649123841138996236113839147939713578954634253516352446919342156428814835880983963998959219025986744491775659771815011758778566973615061051851021106101975131321091795846906333808957795912482029060226807664637787763556359301394319573070735965268208443326035862761058302908780365078280236780627956843597655378713880853543178618696590985001329005199815208812941621118635267312887045425775545263664633570983701374128929461548883057022455846413526416264764253184425615117637603568839004062003689300117378389587448763162217034060694869376240573732509845012768938892674325873197304661903599336817483095622975852668600510606487513424414520335469473642143009861463092948917980902571497825925658356905918107397398776622304015352794805206620342246324850576411800991582668577651354189450652004824801918385336422609607410277161044080194378254621175923862915497198164704295582581235525463249022853298500767871260335079820546319080821959579078799539352095372141819115301053491325609232205389915156032110224722355303527379594266367276356713965792369628241154472169276560592093476926072490425330993097714481046688807109545779136196155271145584433666980887208864026683019918140241263926070866471708306950250718516236303006988504563103966336382571518722043202635612111933279465853946214719604730590986683340497361707634948106376270824450415745959694332160302884694097578597093112046673324997592291687030135327269079965312329520738119223463745979554490771613796255017543117039891253476458511586447075499466848737176951755749902366282169662811802824411668020940183508851912285607881530283500882461588930373165063881752082721257578304876495385467181285243986505619201542492908918823054954173117078067038197100013036034016519617190380019640130352722196406013634327911463203850062000525007841111079303679705619155406635459315747887684094440309839167072871486946482371375293673886550095273806263415024309295716437201323392338323489459873822252043218568482629391719383051137024001844798519746054489879689189091304559268285811115606115191813860238853002282509160788390964141406855288520151085654335646244956223123868249554565907974882296642155410069481859364936645822517576839903467557001848745840848969486711490339436534590635523386257666495312952640149144705657514782586022263082583025511082243725591417657824269381076111452488948850086870597819077447371974509077460491593720065333121337727151679980720457770498905149455429087487141770024207737768071398198292517608810913919211049024294492809153948798638355017716385644023837001784755337712616560930265110214965253608478983134145966757687464302219590937129246420025628011626331790410910403561148410873886748130295386672137458325236270242969415628690270387788893438666736492386972873763946961843534889304696064563625314621965746792796985625323117939914245052629773656775615649799900151913330274179384248891246687277125634687952344636792246533604470240997076112389013625627389360752185413258289555762804760165868516309909015530628593043107742306607434059073730356102629240094837642193694256673340541921607067911167685210007973344684240361420568608836489087458714546442694350943815642564132122419555085824565776788393283136201747845170461004578287729246971251352204330722886280525105118604137773336859800995337501414220701695594773302870751078671335683636146761953429231489977007866104524408309758909917634889412616819201680972639947648197369860244660695872100649008265967330378415166586170453416258135276656569672653227201919842093168324655457952276337301585432036984562513092953018489604145188829152847389250055098307689650423220548860042771636889583376471732780778085075567516486450499280213893074571812136338571105403198239272758192664571955239932340399359435255380253543803123827692828836397892070859716736112211543708854640468302816385329336370269635589907446201660738357693410674936145318123355019662255434960079904509250738898707934225346775183533542270769213546871981328520580948073545786827545532548353484752114298340411542565282413040368751504584963512024926529342076207416925195464034771283745723380385402182526611391974710933224227175996330281974317071974914747098639666918620029778556361680791542439025456548018541764506106008270670406897693864846794305792049342362776519268015474743996053596995683238593692548069310205087455082201197142310743839565478304583879319827816069638590197687648359643799410520239376597298513779341959678614593165129682507485536615144056667015274481136253651894025440993238110045817670044538062116350620490345116268772843321527847213471903155719997719617287123486173494405168784252475985184003375271399288482582088450448335587709803893122961331851416395433057448491272588688007754990521108000181222823912811249870337938069940068425999918694832559572744210967616341978590949172073552532828784149143992102530283356143155148708894957176131256101861716387837724462893630426687543352991418464545606764406992379211139456869232372441682860083707904056617041515573611673722518005322311824070746024490136833591451549391008378089683729960364298439875701708899981182229571851325406648314141754167861817676142765009582976796098729400975341209700878170664934312793664207429458472462157578158325519026762626513450903130909183517104940186947526071825032451416317193848714815413794937669903906435754699031743386939422373813191908849612652184913588314967442985132214571017591054225821387439125887793495582462086607116268237898284306100040401386719586023827109981766972431914743298930855687139007290140337645591675899894211171569359804899140013187799924650493058879672235241702348852285716457659114669662419883905819247594795594187292019680614044975730798891730093469090788745735046070110550088341778091479304762715298824046260481030700188065558548895316250821895851955688415937086164506788845169758069315751532580291550256243910824339599924925449509412113275620181634852476598964627238713348128306702518479052438796667795416668936850992314966348852415297120054338878639144555229109948650737160227949873462822539856082522434486912273019222700734306077868466880579577397210304147270074695011690426627478089175228913734762595166026280178434368923764179176257820590218326571867790328046879079966216318565432047729998981517337932631656388548461740312561526346342767193609811930739309133331436643707180348269536417310729957427381455322851598700948773553773591540074584789149238147564577871187843404841019432543163810600584074679799494868708914966491435916816780630910994430199547236122541332518453105544041009407117427850615851989049812987375551764745968281656680719131926553976613817695992772178812281234814779467914198241838346359152976438451087346910090549337131358368128188038384556576334315668975319009204042346682713194367488023597955182617371902202690002757777947802738624063199222129642708338151406023176515046105292901559623334123587533886886599625749604169382394060109856561178306112482932856136301714299842713301868493504167199919112697176804504416424582566000902747258443199691876095457125255942873247194242655121556652500940466193345586547245226227622931022342356447409206927480254156669879117516684162552171809940473666091995384661754808661989525778073301811221252737630589148455175672535375816338249574753584323269623051919431182193952230774526617791319766590590262645046051718223388043906687289537149380986804860466571962911621528332882854546010803743213909454851207668243243836100937354454998685442038365803042908116423772663730690334335591374022628266356489151540425638809966592509214553880337630388792535043903546213382858724434794927729526621691860091092481870262168336918155187673943197412375242877486431853135671827146165295074934364589723491740747636471019948580924359876107156413902948600561047355765636991947390231700035203767312565503988587746614643370107627859633852840442913839319279036939905082781788060646581105146581169724550219113891340184672363047973751329341985882569771807086476890132737789348738891353865858846111340746906468382243972607403221019515776456694246374291879455555501952141959239297249453776347569324983243654726863691451617297853958501680014387897093787222832979456787861330095818587900902080538384123408518334450978619737196885310967749125033491493190631305727102567350516086972918586207349719178772804631694627284877206525640732411803869771369550693782250066090926323932065275049846606041124594821349401392360479361340716446711300245847604850113168211467796401172408658813751398451642252842816903833214037920751775191308594568226602825332504616003770720322994833155061763568125047917608820713090646459885411169643770748901332774239593163246197593442941328957495493735390163068294760001846388682855582328040297078487683875456430591661186405772775333845974440284891336058446791121058726470462103454398907193574342829243136105649509887032509052802990465388082658064900857277126365800090544009838278363475731029300393270839792615892105701181588767528555720960621809859458737994569714084610649552387786281956183753924830294437443300399906826258495618684258250143731675093979696273784649722342421618048719927046271703980492213029677791277374497531138995857129223158695699585796727428937886089092670261325393104058822987876651404027837957264354166708660613799524472884111448797878576087880630646926915230390405651258700752596130556926700456891371355466786251036944751615642310389472929864952777623748389649562669718148320440175421392097392956464001242475847945124525264820562826839009260307784607027312318981186284988185442959963165623752673432071166480575024462711698062596617655034681973747373592998017876595892477341229068508233348028760860490604846626845569842630308571659944678126758351245517937728256235902429162067590958500873933718644830500836333906506329139467437817642403862483004628336588383035012425057313441221666879688865112348335525213847201324092299555090553034567631203177629391433620302791789320977515199703709297755525772669387609999376178302891286649420335627974745733635897951514843061318609529637578247375257942942168184842720422859642258453382553349883032335936108838280136785190345036619436105083774646071255841220896643096083559311207284404686129851715414638404185214135102412484309726384384866482334662514863069408479768339602663898814013587925420036611755024816999229641310304990814385438568808592770021886896228401366885781963899721960475987572085390388708689938278201543995875327379084311590701307615539507524439290154220397143982914292498391617117975711821703355447986164870937534832824485573027737627231224271725659167368435690103813994094438976006227943020667989565411936044270274111041821938344432919169944547619154192197602380069398864224751788362562259052680114955327274466912776937831617593653681560128144273709481302510709236617472118343488831256771489502742140276597917000541517978446201572450952771946118190935382763726470299080688227061744828100290492416503252779724396340077373359203782904484516622321407657797733812190777144657724317590147892686659487066563450532391472581536486743474861361940774597817117140898020906605021213748543435151813370057251092414374088143504500489859826564967952652609331088172842950843485121569812864765187643280977894324894940262759805442441601680236197968920799218910447272240901342686309599029597301636785764888621145617402690045038024690242964610325433873558619586027696281466688988648519709831171778898789369772410193163172549480901867810216310433498035553384850981515932022029557464392182273149062145031511581414700937421458541709592271686448000224540612632250713634212535535692226980799920516040018733169095685751116778318884056368300337725021504961643858053729406901855217729709557918330004647233292922207968482954293154885977688788475467664286755264521671573815269610509088957705266992303030958632680351538529754051985201700182228059383250413442987560549015692224943845497460192029606234479519228159327031633679025838767441666230239964745522685950377756510643408760969784758357925681203485017219671082509300130776663358504993445563505198883431974454001575628041592570018274451891364942564314079770722396332182060508402103649218096380591568553537176667386983207520055563183265309207138856683643189294177368671169355338675557783012067163763630330629392636856871830380949644120476820370027525641329877011869594060526920046753358568326701562247417636665399225255051274325206227603874490874505669490191032046357120187178571603195434826128934262234199292369588503194551598245608056593028886886264047287750048524151558937032078809394259155456473235954441755781988173749649340908902869672401080650206860953837971766277060071824500541431150565085615744376643012124709580862697679020094681594126826589587075197603301317566214074800111975253542749103711101768101218575803061482772533307133365916566400403074755025023918665397060970675796501583341005911061406326844942143892447117868977467253134376879019064298726546922198924740975886568397755698665026069701090564586784243416888706700873140349327590001418816470761702555805504703190035687481866499090849773511499392450692628054473663235774434748287995986935916578308529820230183156961881325524714360684246100687467510891214081698216245405177667072510820120896208614126489315159607914660107385642712250680335085368156061097574177601258500056586952362970009863662801490953156303886739725951501624534351096965517018554745606292188993831303127004224224348560938936840617085344211511959909892073342738252874942247518831332134723445823571573901203403428424222538924006036125598534249706032223712769902328214563310690115182371795606654944275857889620567218743448379022684260202257851450055408758518355845674213731335529326393690582196573295624013662821971662565031087172840826297746709710393031291909139884378007906692140449483221284724948273624008849990022648970503879076823371091070246233738584587516527457180597272400594686015634694743657192820796670274228903597725804540444021444703395558404752624696812596701344198191818618350750662118396568745251853228755117512040343386542719159890716848027331393355346200016739292696904435126261353704726482933195878184856502429569570107212310015803433463456659028632661516562569878791775458140398292313866227111883965632208359330703527472722542970141252713561471427047685403579537884062164295015999719504846978872167717038004662874663825035193542326044323225445445040342460954846058332088978943463900601826114536467744947780202732257623211528194041072119576401083076147748962354408709431071085213730999801490744577148124757654670802644707107408045426609055615347604460275203682047833336181165630176500742648946957343521845329754813287964671332558209800867106738425392957972072667956607830340118905922550533883706412249124679060011506094646512439521406425474318518413633879121827492301310606925199867494663703540725597651485839662016840900880002573652725951501759161562974634854216337668269991207354920440722725109738561208110603756002790159789297997628120066117248418672467382878804024054951867602440797443880529407220424263194104913687242037438847213251135164716594115606433465004953759790066956282267227004040622619096005209073341225148691757419871251260998116496711147421266012572411294416903521367485827964104380455029762022578785028066155295241407243301108724802489168418266592354767440706520258800980748775558207049358232617814237356474511362104250166487777431550878767645638353475467712946317394318053902117324343751210960493085446489099329447448877308348661479175455860611364625924108069923141402210231847488892710477465753480924771677731318413424958361195529121075242929517741940765532612494225360040140787327919873300262689687942920043219073533460964944587537985953155422849037881726882026010936089050627500070395887597928565444199160425655579868433048425922870659863308236295489830783161597605210915910463648958074872252841008750251974076325291363117314188879990366717786088592782541193825166705514228113653266815429584314228943636711272350855430521995827626319203877668056462633507255420530371138495887013289564146934509035036030411087976041808305683778888877529889950313964914824110426481026308817999071202111674939027134571123345310417212883472392427664810363173004450311844390655618890731744159443028693591987670103930102445275293045981210269993316677277097301952535866192659027413657381137990323962662814359520431186025310507851293269633200973372989143888374018807735449621846238888762161981405054781884693456893677734090152280220912072326273195404799098807899114604060821127925009979437044676357723483672238420642784302007096287007233417434751702559298409142762686513459356378094187410264077520056381376686111532976989544906494827132639356033483322710401719733857674295571384926791048600804737425228208116460995638152092105124200662343976809844490290300143316970004704048236813542884499051283550424553939749480256966805438063829123247607766273597482869237946735816554733008909794542891947663211642299622551563885777946950473464008824913666607009766664240026193702862305043599234909018479567849963246616007767420705488524750789270239408876608006299211929385141665182606278822959629317708381715208651908640745731931157785057658962562102431013944252395311590153392574452542077409128503271984040410954524216132000467809075356223120960336100654309855338882248665959068709614378887851027244458897191481491700169350293330069321262936055454624150083601252178541226821963727860114273768406303268157925535330879743920526632508722840844092004182053058363738822268732171370966758069977374044710136637802450081453367461514910294564733057317374723900652232030487484060746600361334769534766275620017571689338216544268744779452635267476786095836267392615430301952139655022757486654066134137345156660256661268390904823990725816643415383630327324814026054863469900962687704776596075527483395410808943991531893352424811128384062233451594819413397436905626634878459491455643387959695191027268736240972835292463691821906293172740866851659755861792165585142479020371411269898777113059339013990719990346566998012493700709612209389005441653882418968987817478045572477003829560876342898884580371232658613266892759342340159515819465845868464945076478097768013367801923403155851919710404133570549815377172243801025818773973545015174584026699460460892035856459759890995883960509859304865434276010206122434706587031652381032590089121968357063321754825403662468286062233190851444623866705679055414052942501299870669054776647220128377746836352434261569385485335424684032672858865539652091459428773464888558509111732975807232196366317246416305566777979501084471839486659937071269750726356927707187413167488525442076256913149375434519580758761401639258353447509242634677206113006687849320110542092837456710240007151230920535502085987138739129842352301124660320718380434264198673168971911993096390940977467268426473626198982900641749791027954301998277927121491592744043680363669249350052197781546502428676355250200657138783120003002495883626898146644304408971069404656357715180311115837018262331042632956006694920796342523626553158661069037741918645926406511788338961008469776563638418080480089186852769270162056816159695952453379990230731743240803688977411567780459937156587798108140132181093471298924693147354169567998519445670528153782300902171478042166666543664588214744133482196350875904460752001499308443882075509904261190786014668214990827477626723713211309893343949463438197048593734753105386397724867984763729785573679676396884693171695784993031999688300131541686296384999476911952788643547987476780913502182805218693675162461242287175575537908876372206818576270394080536525045198655528302342106893967207956093701592836465404922689910931429018989018602686710353812772065061536442894673709277469630663225790764727278183507199532949605011314046874216071104163772208023628442830709883729045393301593506910973820762918478608448294274356376512375348708904249771428169813291482674280065802908429927354752240207329541400390206643105931203171182103982402450792464149242517150547831107511130944214480764435567716434924406206280342774209042943000004408299534004140955639183980536682816272305653809716683555695631130285114484230075257193335055306705470690627715171990394412798184192823157803237771722333982190133125185542471395577794545620948886549841196822734877961268035189355906705878396893475371700604177084976077283329460853042351519503715750025855025758326534359098792086201464955715528753159530999440612164185924566900716311433865000665970774463601387621758474490609636776052701065570856168347729452457287322432049465887594853027016762649500221534235970399451822721364528857303282697967264591802517210343240680113741048824826269229475780475051080437151061902924068076609619280767413379499242796381664277938632302360539381251754899387080435718576199304923384729319240028312087692816547443724496974431846733597510947189603900594325633229761252015286028914944569204092402940291355388584546924252875645767459651561115095576714155552316963230576746095119155214032777684645781647283706896913666144489429996974122960640555263399479649519656394723198071151472832546590920664760899123868721586886728729626326632088178402418782280020093492333955800009284437149575698024119430421686107470103442181295061472038622583439332956030922093073357961790364354041388015636301819275610877994544881546627850870247457657056934324368106403722788574600636615307365714467066771109969905495045338357779715735592479305558236898721578778832492096434256802771974228790870748616017297551157048359832836712471173518495729786766747770478729881486704707565244055639212142666606017098231640342750587593961049659645211385511420009394200272816588229576742155229833564119423315964328024939731119401641892828010688852894498802383129289284591768588151225743046976948967212325811689128645501937402767250622021009511050929989954394561737465043414509624413025430530295272673063301702550476718616165847161750249467825736442551214701438108253161607391664250122438631014595571960844722285732394929384147415788315426817777366593196106490937274754335181581706102157915388293119139980030923140272446520363290012913435364868021626880332563269681922742160719297548349505244555788597363343578390655005030898733740319265605017113142447435880844642381555936029592546739711826895039575522875433129669403119808670904446420072592472595464402360447898123583168702583641587765372740505785748416720573324227832686150250768158728259990243638987269209496631166747965416048576785892500228430277690135194111960599682025570553832040989299545626947340171089055216168906750524865327949073795520081440122987394800898485579991281758738818648735724688096211351779061181888681196041838266378778411051461702274194610371485988159514417385134910302753499385872288270396911354999417208431425858782808921700814595755873962610333594291834322705709209952611292538695798961749758878348962992597927264375564285376376252900097775717769204242517522440844479295613230849913144231487698188481963374471157421304401156043928054161102154414412104868163415280658912935815215295268246476746602304092759644927312749543938990088527023457208732562343937807515173552832813734085407685710841557433662324521756137732726620924227431730110449093152064742942465306444560604339045822020408448250036050543421369253793869552677819600780794199813691800331994709059172360609023274854791212058480450236599513022029289321911594089323060569783436545456323253747914440538786073018166898773471414495298834723763464843775204454735257909474569167235355044487014671608054031773099063080817773209794606309824766154571828451369849529197733653233177475165627849493005108490783793240215707620091875310691561650705874352313779020906368818151705821233437596697103206264056679599793579055555883472396951747390397280444967905898728241630942098559876020839686450504748401317862848885699661650279651120412654745782694870068610666092304714521143688493951048075547946052262531389523119057271273657905635853873768481664905955874858640083419719914672218530322122988677845708608819120517817894103118860348032721215252193424514582804696322166620638150074224983266772383787676325862064212105514200781928623284507443081636728883162518863942621259163710170915212210543268525687924683409943527415792231746231362442478913577142616421166072915588505857256403425038541729500365818875338615638793715065069982974916523919596091410878652672989359547612074482082567843297298876351362976112749775118005681432076718192147111844650782938312464774949275176155900016365426387107140391010100056590696630214767954655373397063909838783042386849428493467944425912726224927793311825893287330307443384021641861802345000224725549694607046895635759089986328291111877092449012302356624458632440125715182331070759365397869182341070716814184906664005353057263872348081697284608447320137840162002080571572143381911677435304962568648988205338298810058744430843620570680154026055970919953805392469040369428406824283613503100355463083077479719916682078098964199715780624356561482417221148002832006523492565897041593273236225757952780368333486520298837319095957124350645740333796475091699422383566248431643487973592668964924842131565536533275704824806622447396121783611586135794608485179295486543132397485421546333983962714784285744544262491582254794798568747159218519570272124890648035159892303872988454423770318505444626077548018178179348198717639869244778760743537011682798082866859123245555919577851294991760316548395645634939561392071953404510491380258462900993529780118603566183080502724946012719758418685442350154140166503492007211824161787509336171140613488223802119427422216403323410244907533541191914024918022589679248613634660076417181362098962069497404536379028723085209164513704974917479783795716169696876109771632449666336721186073760508221728953827847169239154779213583154630233274137450651106841632296516749202790591554766041357663492907808139996610921695534996856811773313570806499472945248871093456248195336878728360875160460486660686291947101131956831292479541841131981435223619208824349528931221022166900248665207092350765932810455975485352693612296853145109040396578370483400922979336375132553031306774892081901971805334254570953195154946820087883260899516432288254001483730730809020888309899108988319917639445892281050454333708124600395924996083620723340695447543488695644684120899803340807559025054154524541346442117440775230799897213653749059589627457364765789301238263750883146677696210693074571500498774740048881475763835529738218761079457168489978679252820473205589146942169646236974441811425213879368340952257121747739996028644123227538441524076942171786135140906000289043026260515486842565186024689189558464412301945839516195671729075092510270433509091754252019397915545152088237033544776312239074495000563584990049119990591405497041541718553036752343160791735150890826712304340703845862567098340509453544835481422066426102570982396236212854746750683235596250581335765751896363013405012554938581007797980137742945745912922358549869322666317355355689711654925773336282676759103643400255478843324114787262801109940580574765057322421758439750514248719305810797271000905417897776028206601484137259852819398490758488237472583721847623060977903970175272859542693896047224281094703606846025032349963786726708854673466493653903026442281633793697600855096886538242075809709823529288359587985915841609961599445867478682599043138781591905509144556024897655347015522073141495363933441409068826764430481818548521041066338592604433267232247226339760530144909896912714342526029932534191246482936846465419645256618112218438507057811744871970390693232981690239342828457405731661267752383861883315725211433593129256441898059966507504302479611435879153084387891597665358828912203900093688052517912053974543324480952196274492039662692914297631617446695275914940826565417777014973615358506519039561803750986463583247402335871129951711260884395143369199380390978652725109816593246998604354135604615282464244466495506921202598051859116017767455786450027197645435947916097958264731667814742252430350312947142616746230183635845474420698295025951697437800556395343091029500892543141480200537512402808900390414381247259984702421844578386101806730824004088609633069115540089484650766338583576340543737038355990232956046669467812253853441324815757275157512322125925201875466076047992768079724132902908764013156901133226353020563253633772789296739390572920688404965888078611069597368571067972085667774385014392993753211897926439255811285307694030976671874696314489803639863808937404025228970414938390264086416220980180220952958644600916455041381665992251486523921787971428982530736749527559496475909603214402834163752699128054621236990283173276895360056364100176753646339816711412791455651745668420576136195554471111269402240168728004791666546560808025009735345866996854454261727579869647582993774045894043936993381498218732636224483428793043716832437482813522968018225954429354167574174747839864362638764073607664964146353467323080280854923608471322142355155237611389588061425017973231678667814681781114162798072127670616079755858047887729076094060861515258668238097324824765954093908602173340802871405203817362057752810398763228922077441849645812918700121864171362438793355174874191388740406140933133819138058179006102153641015032861544837928712502650759827334097626550044193639172885598019921312787318708841226469151615993369734496323453367990640680143482013876256370012227184972492798544795299895699638611621302992003082751048798724661685744938621355299940299977310456228169647599301936980370102149119741677461593128010671462956281622230144442389747920505399168170398294732974591027137080105707700188867100756615065020195329944562408280523058802018411957008659908402763692059376641384029933972740438396670715149929898015420346393136896042815470845251497142714520633840715321032583825851884178871672669324669434824276735116323169215387319568295694510089724444304164362136760996266569568754794203962397721861980153579691628695984046629674617024538593487616156906926812328845601601641974531895102938993162016142576650837879637181344345637007164768151123947152173801850902844578519688664505855808779593716559484653063831103808642322763885457478550577992337713020655825131731638386566874788503681313833141655577945514839037305753387389990799141535959176693878584618108879858005155360255808395000551353303427971282100526208754291949778845839110985165650693469960711816723112136679507636809764420201844188668163765527974393244810014944249456044508277759306618285000365926329080406393503152717392656510182583086116315440164719324845532918918430769656527810201821583653004234653460448186854671786854910021412776903315977572191268524750857822092968425570786005925158232779595581326174629717882666977165881331654442662548611630805286396084030402174795447165462218621364021538621488023334544732302204788596522221448257326841173545937770916049711085548947567086648366903794768946746264560336856980135516690586717645904949825052289316799457253183918576298943760546479377296709616556637655233850154292733087563642872250112838541138379814800581522218103692461636747950662369041763056866268381190932902644098397529654874520137704705333755357180050545347358445108563882105709423690441872886121660677645684133402228995918144295603927917363449569843734169747108743752411225381159591946027903841504427375520606412219286419961202496737617969550500141519248548082631828200128949550479760918437855735879697541982598119807018451092377381977268901137373405874520833945339151233418726212461627272201978392852036172719662700098115525232478320686004139687918385937997661564175436261333353181859161434415360908237535969832029500490582567251103221016218198113119357043111518816556643106445519683344310569771554121753906343868077457856531644533854985910358873962632709070890836182395089670726074311417534306010460134137910074101557510255446431579880452397398787843849840386087165820382429937570242566330705495400130667546966933197784816319763782485782591885135255339328665027639826094214661670577334646590319744146003794635655775610566192075932676837594466323303629469973555093282039650999754568521865385989303548756769942859378277537891920784530055813174532359900706310559435518818962169249482890384448611768858408427324983585034684404688270869226346604541693436563313189379552144563624151150440520255382557634583169921064268543281159959240702856542762076443487681386288809436304296398443343150388330192313587918564715587921418199738335258847684801565416910350577207786250993255741319960553641885223531394098770584836308919576743921863226484664738828973355511866496030123703192815133633456704439181322574370787137646392912140744761632089571340591372275607592287637309899894618897487805891863279623983035096258178500583165881500990839010873879569990191642617696884171008619676070312856665908802005554763324184123061215941185711410372312320350662055631006144699440369785173687506480899493939631757569056740700259227969173529065694645939933529059229585987366014489490937393100146976915827081897800302289155461673282982495745975722181285687181489160426371157878013726904369273863683806851724960292382063190035968614599404578200256953125210228472639233849568384430821921496888866743910055139714490492529184327656137158393294656140777393529771911173079015810412753826789374622707693202650763428673491126785182771875798102470164854559289525647068182710004528123150269338402249199867041388276340866250142482129209410960444997794892321759497550091392007180476737138620810991375623292980065400604391903488498961239942355090891169111326280765393427565398264527740704774693435416437231941389176768485187031700187192052395829180010941260776987026840883438372254635098616480865316875693880763033798463889637416375187373260067871251132225012585224149169402645156496615894902144236019921826359392527427812640303351587084566758643747178153443029156110762833190558000490839296568562782889562378621311484435629303759342674282082133020796978193829709634420633853321714619862621829503312808584785186830264513445811926109837561050733451250211896443914225790081595709795890812069633806453163757239774358796553230964005797611289979653615549534179350587369482723610967322556226507710582675473550149453561718178178810691584275628726097158117614316360161415538122743283885285715979281087770201289900277697479859812487975329847645664081399555338191685952582515798835463218996371827925996502867246983267245003356603452621113910728008077974578418989043753921173959732228059276228969810819871120902019615572558385377255630804350826628541717662072584424505149478102510809577926314465005137120785676609942341249464109233333216852822541449729879899268231702170182654338734869912297654339702947617337751628176156421831528031229641184498000961601669667546921853729775051116547967938787229473146063933383973534237526504471283939807488823294274469754387666425156688668590839045490143132964714059751993583617689021964665619580646578848425950112272493544365789050877236042153941652576305120313192130974545941591679157953886476184458951641823405044065264222807529327586949600740804428270270137578003360638929594360828001479208731630591272303591284104816775889947563208508866602454001964328973853682923425235988070541463483214107497342784136457297887649479187207422895178291034804137921377828064440700982775728020980973388930731192790027006515818807618104772286306998066330238918890894763283528032504248724903452125039176887868726490726304051161646636482503737612534841330229965025171485284859289038375350213842007394143407106461875998768857181685338715425492684172894621143724604040443867217170472880029582072698716933535472172842392078405116595846493470871879154653449959291841932552602835560380669086398009046414181256548315434191884480801168002665089044198723130800302165475356616780544647436608973328760287574301058646327461570968578790944928774965789466548948754559616578002880558067148759708332138920947421375670776315362324002747874092480698182337812557733806393709858659236007669411435085420886664804030818609869732726987426420019247759625788994579691603213311570978284928197838333202025597187509282788592498560978605166569751962103188556749681539150518501537547462754781433626738858579691980951177222330552502447763696158046359946550836873803606909786624409813815257908350936080521605359513401984013361612224032014908554801880326253281294487447840862203084365776184933964906915170388066653597203357500432217341518179616483615897956949987671691481682778249429527747965008171415337893964209980018069102543012428532186624856676839742374264701880512134646828108459277732750893197447631567404135660651839721845855304529157580202332382835153422392255028109497001856818207080456779216694184552213546825515734785793344696877926346578151961797164408408003366215688168286905609939250577168896176782326347496687176634951628437082476969748996525301735974638626141807793119099784522565048708377715084005697609838694092575403795481712680706621435417694911874895688140147022978037219100838665038943844002113435913010669313309586750753025127080310709131343763142113743766743478275153615156448450642456199729201335749909502353178631501670897676381909173484608866949191507295701048033965694239927065974859136152306962288460634507867448138829752563574743882118248460738076649696806929906366865620141057646315601016327478014237667420734520487757098390499908173765405880673060088579227745439971101249860283421981112441952951043771781527069589482736682023291948388772778847777602692068589971317909116374512540048630209050870450042326735187536262111582121338777137983759578095036688560906354921300284350542805653169577792277368535874539666288197158006365328220606599556761253433974902095972078475037541785573385653725628134537040915156975940535752983544483697578819662449388032002602379669885297324598916728385227934028140797080419175550390704616221074127400220051669212355918229824828491841467653827773692987142799112565417550422814836726739996051776372085700020943481015460041243513584229499864166858166181636893253230704399858108335937938240641561410182875555999867227465277659970970316947112062148372932698650088876644199935949088797099734532912725796585777171558274334470631571593038713973147101353465838829550823307736090603717051122498398235044984008637887931199154833129948575986472843639072866421517814683291156743429219289718634508709196463298014779432021256184269934502942372069310937212420065191920003075606432710034684515650704623854187985519834058184285212334998403126251582764071819333116984599453698410719695715409731065127125737546759118959691460106480359842671729321464920663891452477557692752595702051862136930408409904464780074375814078097312352199598245785228912834902466680279025126066711181631186797412266551783037710760993818301163057729412022718395222404098824145365164372420805830925071025750314736977086828914242227499901139487250253722480790586766538262880446202425423812900052153681522044341540415154895244314923939351130992193137262074261814955042772169079855807406807815393415064425749263083294034541609493763111471128022286216029430280307929293003194567919867007059586904191589854758538673063463457802578941615534351576358522139343401625658309272892862532403203985265062637390969090520239269211277884235270654369800291850891249040039643976382462405971251985941919846144419323646705990784949638727144695142992323032022192095946657294614606993505480417070946520251783534703830603365312167062723172237373455605139150034817215886078680060904902864713555715927053380084760018887036037901035449208537178156728302657983893633099911851808223725474234309037224644749129202524709658187196718957450881678400219716860596353333061808662465926823481013659584960304234458662448754473305589926328485142885338583713958526926956809966685637609924644346212215922975060912947001513311097799729538148953852270333341433928346638096613544966863911630441625191310809358303850103546315486610430888748901231035767644577294139463040916143768269880673196406154657047836647030343897872059463150853719015919947648418839749635562377631275250713132532368919899105891246198774448608824524488592146580602739528821239516371990228704935203668534715253707143998369052338893840188063886590050621909498794260305402229086002682740086403380564467541326122724081477395756311916904865445858203209903403079868588980222368402504057377312948455544135431831726186420253972762147509043147545479897972393806102018654718388410343677001762848499202382696991333502402621127143656261283996799102720073288739963881484296767471026801839745882359139620936355350719329450732874818098672082351886423723337042684580985008309525868040772159570979836094595928332483793191876659473052631012152418871087182247274749729398817174106956454461890471084748820043831706209631420963104936642377079308096735206020263011605949564782444741578798125626708632741060895218293148080935572956550909641489479545400185031157789493131903698221274946484929629429625536185381939153326475297083189539228392248298113324013927658872333966241013377297045838976510228799370080869845226107765347611206828994399166914547694379748519253617730562502876804461773452540742659637042434672923395606080523240850052515250399541831016794844398627697404475063870202771122377097003227594124181122767901087679529503220638812464658057582507593634113606295907388057908649764912552400819560024873658406489379747884706364449707283411351574288074280460383116881278744143118984910805821014249353043557703491795496495319528482552929856367006893239260121685270454238084944895764160831280837300917964533626030619558071032336169380744250874486982623082846264595232743241383925526396126562103950918495861019866123417190921387383620240144065836615613732030758774811832518059947754267396825985856383618073805313888082511564364795219998048796299317101765651681267362633681700865904517760380584788493935948647462782903420563254570497600240301668228925959851107413976577477410376781878023195048248906285737707834065719027583086008273660027547631321996936098006323533239236491791995855582401611644188366328564082979337098623688792325780249365850070011813210919098642496148113059706050335368668220915455326232706313778968842781481944901141091619927750711729617372623701927489670499301451318409355959634232874000977088804302441647261703721770278426831148981205879063265000166005509933205028470589581357255287161816848759936567551738189074745117354923140358011356446074678936277632894554502480071598910318662178325266208492479791800962617469398616839119428638130357739025807985399332106841397687748183292159279584665279802279064164688768351277899686393845591388267632229040807886079576897065474092792948013782202274933270132507779853131518230109489642046220491157952871787512547485482128686124909332411810914470160834629479044233784003413789873166351260937383902607646859412539647437517294063740698252498513587516962646695761237652373529827771182940248309757159184666973511766601554096579719536834797702374850306211871404112395446728883640074253581764327063631567407824509542060278269581097628596765666350703088821925417233743873515433929938035292435631790070732166592398464672159566944925035033828361432632812468002977911588815510675368955319887656182205304286256098161995644748093912860676541602953533946077272949229845081127190292109518040542250022806116980047348688706935424310830097551318993090137862100121275246097672082628056936315953025012766903302762498547187170283971689969471544149203097756216109507821094425794160190105215405181600071704623675641573579268601547811270996618282449575294614529069982910783397579172985371288689890606303397890501260287021782162953725607191502420825847227706557158667999084609328173478329612576628328926195307258413615188860862602630487555758885342455139850260120616855330957924531524359994972564827069978683148747543147083866060401023389671796195724634926120991572351485658586183482799339629853435195478508162824324170207631643588943089584681437847542953078541772104234780174757390309417792487497449315711805881146312988356932351797335475759561361073353479248339168090770796235824275580858984041889916679343643378866065555050781213404422011550790960893866795876784908938616071061810277949870895265391798185149312180852623206644510580582541380005833155336335719630196838608241194959375037047359673473432105642156307197730542286946842888077791466543037678770705617947922195406144189809969231701011141245927959504647434717247589424721794519690564194099532003360608561803628312192573523209541283510707305489207742509816911012771706653397067984698261278749905926969262472368777568946132345667406425710537701187011882590998408982822298309000569915089612971575864948229243925492161154591005766802190104523918397585668193525839555772815900701759448109942183605924796974027543413106736679786233903805192083038827855312322806581548652843791244571610834929147305527722773811244848956300642038578996510806809422916312869473857866544364596247808004035379542130540316750390718586778892487219281641149258404173019904574445410162797330188423088967868293099985155995344735280535797016281903464961220064985343320494429063500285725863837867705125624247989520495387635947739659262902954285283454988417525924233753106868662967005437020575022827795801582433274083507532078033977632417265044091170128817954823215966475806437611370946427948541630918612902956605564382625178140707175136894762370970707145672434258501550128485297443618224104963295371651739795899635473800679660577115641804201250213594998711029902134030262542228049499575865298985674923224589509083711182975049895503557332773583029507369275519811304835614906991272249250731604411027126435688262292327844466530220235123656902941758018565577997083943274337361980989413897296661206277583072357332717654334034077478574051400916045191842485060029972879775644511355441089100729752730737010821016300214942988779557073384864741267202023984136200931830239094172251029528182831993488524402992967674116856723605378883409698469845670807694964177281197758012322638550844638496760686294563725972939956000286110672699813020167704624320469214122988082927810247744835138741853472902244542416988161568235661179730770337319424147704319485118335090713627832553573113202051737213108716231360980160777883274121932731586824826396428420782308275511346279189819902557511533713082314437874772281208406851392958620755960154712327253158942616784265505998828602257226626818893409644232526927650273744199359826756339647659498277430586830417318365516924708496160018097228381754400281284893207987205250628426663419912046271714306366220453892818893041231334589761504019375873268530295846165195097703068702869623613925123736480376341728912784484778965860394029681579646337752322673216906936890870329094066656315188547704625765404546203166811956158849744831307488612690538557198767598292120942922979310916244141914209642973315115496935846823101060979026097990509555332227201750378677572673697930729089677266864411825995108607044073228458262845957930071126092644269257122923673603893127400589045446348892021799478960936672899581042521495192215360194289191880671882467643718022001206783320919412490922785808576463199266432190089566067853897389814772465711442137646197690866277201049961948977112826855849723956938735976896213302833343486147303099277896563336276046531034698471857544671027219587567761473057099695107250760567739382137275440873540168165532294169703462917501258231416833174907620886383222402978372063436766823691569294982617698917448155817534166266770988893294279914396722020977190381010714559393329158148452752492529760074041618163568317297788406000874838326864763721369165965257038826753830185754354429589430420910052810781221324960833600401947097734065739748955772053675680651936496075307221747005188108523425732330554769820278038122779695287610338024856382305656906181541257463493799373747688528374165968451455445766601434886329178562703740281052587597167771563034634372410848848928861323254519380915356071282978204676991500751466673757530514057730885245618367301659547490763589029908642310449208523103275498989399007484541625874179812139035956452174791513340127342690074010652280346240785897097600052430560574075330524880883983156848286650140255379674088830231552743621529106872985713083020805010113251772306126530467932875531492206971307695745213096466876137792765459062611400266142656586353766095368433741092663026989238286730770301076745127402219896898414614254886738718832521236871439673692454465016853031567698049917235570999671534165500460345346272412567100836600780987044690203395115976995628180453687345349336078679234493038284748195866313794412814563056280570711489340471876384514692758797350551587075984753508977936360398559043104568649625345967114101298488522206364994054736680312351857623214887366389187564839095731363820377662573330110733826930059839349420530556852605830922603554630885018686676539520298464005117014285307859299287308661297967472432860139699944526600056412569448778644283034468742550751209602113499538575797214428771201116060106531107051763690073811364010068063659680517073224072499413157569013806765923791020737588653223911358055837428446773563035894207806079584717190043726408748776901523923401023070952805930038071949285888314087385194864334912262978634492536395888925824733498271124090443047597134041693547591542412586912007252815474391064037611882290818561537485992835222234890245919100978005950565174610095195467592709160129099124294670712300432276709876227769542185029333238660873286547147249568650390857874962463859589400975420529192778267144986360810609588741680756244441222901304030681779707633342012071815644926646245061352658296442869242535450145779691239289921990978696706073267464518138729277343467712235194869475495456539084938952221503818962834256325982507518683680151449075686943848539634181343671448675123632042794287968709189207587875754770858924683913234436825298076656172246848922241836247868980519006335095456126817460336029566139622635280935371994778100370133419566158786506080946646994563047449797267697054112395283862345780168285357578475656003592982878506784498202236044394908963756368358118293713678738224682614526536653666984263520924648417630187009295180234979086570757209352845905505064477949171167325023513261002427863871438905499592482277871476850565765843207869798264229839378263350649734053577763690559136592700453449612817619633438366069950940486444459243713549053765643387329586952592765028148147981830472527146132684352407375396203072166007666483948918077032978704964289707209215632002045186740195809407279198983226010640819727920064264565114420116546751793505854864095355397593583785693320638650209326608812075809581541546071265309460345096831097231462608257787260867665950252287495796902544984263391789338625663185965914424329571567098191047992591371594648006071547134425254622863883827553460139071851015877345665388714851984995632460418042733306062732859880573607300823238736373985330411190852908036431585174194663322444438453873101023093307158345198957517690333405203218076176304411268809420098856866785018791789324959900182578742019267206119817563120906465629642476727048793714899098901039665065407326744108537559460728684489834632200684866816243089199418928754555143094905168787422040577119724891546035526829687135372448449899810351865993289564525654343574173621316627187423402110984904368104221740921199499006963241421106420750580404086740394074875999220019643781804230886012046512379686748392725063098654089361193334082088063073379611883496140574013811011526069413033150013930809978468596200821629751816138643523444937605309058506511473549516844154091148925237987343494524142634094071500220861433400198089408426081666650727828993928314552963949564154725718368041486043294824246122271815292322786307647847186140230867719200457948370199991645519403323137493530977682992295602915636828370813117528224646133343384770107124931228663041109437390814444574783377251781163921855438374540605790736286588439233698715017772899498594625359078157113503667635978104189524340492450309077257838346939588465202525091875426827709635629216980204417603601628042154228654491164147707816392854407114686769028069596224584532368792304234673099900668123228667006909969458406239572447494091650100854498268772121240805894064720720980120370144216851386188931112239800688047635339047030524006371874590298179488655422300097440518971373288779306919899886681346801068852565851783466491013273419034966266260243760981711407217012116346457955588837815389261566243143623235961317970658274543028266498698804819916066683686414122774918771901865449196855206288684307420534910678808054951259358298701241899203341173523213906209364729248241179942086392903690149598864415029873315384870413806707639881642278037511253562485422237280170948335843878599315873200669213654804491829167035136311620999704125994908441736186946177848637048794954545439072402168060251550750083870144839104363569444744100568172185003819353575610213906797060129424755335978382076446415619567587705245950452918263639550050121880447295997723386128371643156631539147933766761084642391067741663849765071007151746587417927548152685952241410830858531991881576994828208578625454877862316129595312253628317170649347448812406588359122991492026429022191176066713667680758204325396560721412039054660603407849069958925360202609203856050079466273078278950563394772503054271007808658061811229988705868788862155228833773358200124878460253486739946839639041497882554183179057387127261817131104958617041566569343033901672877047968149326440413939999488277928863999128811745097502625423669277563332852750795405365710673288884567583307241353006033479892524944675338362270010013750608388232749926335928127579874573731756831926856355117483700240011940784797308789070200220385172672938165818932352459134332316979409807748788776914180555146740289441177741040153157393676874084789211400392282729238143995732797430818567771988295877148668432759808126828164161817697515692161236120156097042757109033947782043704124729805538675055601709133713768518437315987315644772201960348820704886538460778252886417563219048437415599108314629317190702680130177107176753918126692908507088933963699710457171868307534914906863671928002406582829592320335449848092919605476242877792928902595178696745253214486182552945761077014453647847698724585141195928488159309246407270909239884444767833128481733457713432096888917865275500644139585130381764134830448656734382255504256860831342601688957239071981955265680726477353398339031752840319815662262577358044186685639864732897437409797683327922790461057512748947190350510669749687299497062287885406161220672833588476970938957099496803421652472594340882347971877919824204306780924717814697613970046578176767091364365160878606971648090424811321350233710590431399193577677888845949743492917332326521792369902540383911205977199285971072585331534154046542888190165611967575900597184960270496095161646231097645157538139997235396253952815103369838249117750798587939879316114711516151747510094729292850962404952370484393069268511963894460578135369000779128992457985309307914882191502605282936100725054784688736638850347270667273922889966391356100119993406415803685285906158427281792038856916617158679829124970469971765508931825675827653707931703761887245390183614824881034013848147057327597211947606850104974147151346910821942173064714976310985480784378402455344711862853156124016482701377824834837074597269661842373836501026211683164857619056678043230511487869891076591543021371282645707631105461433950430974500252332083239513481541794904188722141328196322276482128030191826818689808838823381190812434716045910616040569116930225813292470280742667061349802949580035399092867712771924254991474756918752529071423483989607179713837260953991473575373542083467270179209107341960891782048177082829447368386208240528454886276102099759440798522777730241242721920805011867591213048570739045645433781706209039970486034143105143097717857137188800955474443835014484770461146142216300307318519554252607763809241098186274598676394408193812677169254910914267824877028402215970962295154098441053818690739018477017764474478916255843558472670445685529182245503546193002244660546233065217646394259326483070325338332094429317075146475931034553063462095965417722532538891063316778462933174848286102307828510071333504751569957001958225134143791369015688054029380010175129151825820228124442794114448365473480806244326130903211385152227859790077126373658401347871572863873812725401296344297596692201417543334361254055049467365347684439851511191957889567481465805280532800627353661082050435182756923846219418914072884339613918206638314320724214060537811810794613609291778070706325101890335339197678497101566206449591594654604314368039231163949015742570787590767513857386876490761881945666829302597619146964186609948241299160143097011481301853032532734474306830104947231389769230542525000726768843623407216872728123788347583476731168957490712905859013963974082948202056284553723403632179996901134010487027017361446361473784588755861053568541716178523330675948623430165624974717482931332586291974249906571193823056636492202574858405359785562423839288466781943882133907547677018701998712601827100224290014727688867474122138084459796217435002255988917305375024561834612393678397570482919825412128058428202821455287079406812855929853583417503617023148231662843001794767956518595116769650500166576739432339152778173618962632657109990944951752815199936932844822503769995308928631955276992389493814581398419729966679455572738720521522783877795061174313222763984808421939894106035115931691281291004512355475408229780647050851726863455514450368705062983919569447596195818693183304322613436749832679491107734494675088806650008235099907799386342583291975169234201810376721444296855725560654985886716353513604523913396936906152656757606646241391202988584510040373536619758866466716125065956136029874430745128470634208904593132717032098923099780757414539151382115419285015757474225559633616591696009835704381227723980496258961436007458465660406015458152848170304865155013100519581054968464334226346422197869532939450211383997606071048053240246531159299621429232913775543314044876514986294489574945348059096861825014601806144424396147306916895204420320434601789342546126506988930400102554581103615067871285404784205283762048784466254017301831708715363584026804116113986325121448038971194386362097319771997078276430963859268123218092890906101903820044670183980542968213952088330832695949980715925376770609268494639124628265080457330503818582047602220767091126663469493367688629624990809666140702788119267713406313606105634081550252302019365682682549021388602151533759243558432086703187770628195468331040278052083710000025348090800202401360166086144056758305747523452377222350448529878978517250665194257191776402373536849930179869308416114519782882049790419686882330946423155652559346989976165746039826697162164578895432256414925413435094771968504088409603742799764064561203622806016231080448490214735954631242189949642990869265065241308869573010725808715133795487977647737161503576039507502250517639824270573935561675140648354544381032663655300995013053204051941143619859062556982184081024417784130410769727310654835838353441866847234872197202645540876462645752790368717303334063642634367910155496878780070904778870163524483856749749383860580185834690103996308852575468637244761000775565966411092714991640783739669830776706058252712030783058312761990461733403724016591071132561744182360753621854503120629508982939506211260699904152830739470677202116969973564685239776589893330894051239623060824067218439835793378625465715837431706763504911754759490394596395593338339144128864767462864821930950363899804509074864583892906895581723034711856060514037284576315990197158795698753800911807580803599462835166675994738854108494483235468073733687364976843020348508223840089416766215457402956065415587867350744390187891720745150236896545048677637537130679550398566843425615704098718161793339539679706893186999973317392925101855985426186688903348562756442867081688059961497561826632819260636623929305502239438858388277872562962378541803355713472112222840246581642787211675931404400691305140645011847783415674769157166003370212359589305547577687931648807210484547165606882674320379395911341888631432849718391953900893039187876094183964134407316143071656960614345040748327440266581094554315899963262653073421809262590558308056362966257759327518477062600289026515251031628106027008370029739432146810586406253002827139375853463487219232987137947847808711369887505121991770249195797035765041541150436091821937622628599893956978785411663150915865079067290831275841121698107439660736575430903337403365782654476174960080456557959447248428763709803522133330057597733474519514619529369832970231961926907532423984905846231168882768433568676346895825866955559379518501198873735526396514496319806425394078707673868137811979221362342190228543176173982618303211670345460874538253494449699038665866129341342818897389071026139356233098868230928131499398423378447341129974443124908843504317104498838147543714867838470683665311220003615759878866798966924393151041224995854577622452360212197929421778380307210576264111376803882799521966002675655813016794933265214361158063244890531277072172961415792154120069661152651072279622816414407800526240060437360533662181273380073678115448698329484495988807996395211228323453540628492223134478618053038178322159077790397005381524879852986650703378346427399139819732414880173757897678803957166723287523176751294407372394414419409174656478524942608186887311376534028767151506162771863588524166310552043134348231505898367313085086544104702710021132330465818067986825511179571487637156830389305088514875790254750518292365235023674101237896991060139025625599701887251944471547870234643480213839256791576421963098229682166093589621620345924136125394949486688486870220656040076284912623390446448924173181997142526980404665426168195134329781700208055367036605866201908470778212108496442277314689635977933963175076623773857460589972432788392542444322130739731773293311473686277097349992126439680757402594278649009197687150253347098140833340724336048220261870829889450714904055507180334238463421468043348635911870554508657248812290670587630994131613826757458975414759256127469243603259943364809841348641305364869398662822354054599307646422722830207773796530769337900579813806491617454975291249738134653820596634579262127788790562815144318954281746013589403381422476031367473428604541090544100096025411003796250889301638411748387566021080341526292230668718139358849543902929458291321357281308222727629076387963219494916137723394883965031281313656902013174125088232536564425979015637036989280792782741257896743360917810662712304388076606032541421348484398989546208893365413731878756839659652919338241545263130530724157862703760516825400232289728052749581319455863557909120040438677129918499012401265661409669156393351993051672836790250702611808429111980600676405349861101173342110457860633826706615405569883717358319379717175440315186815740108553582978245250275440710900201924653422634983822907455319390101873830023953676813046994329308828964036092607042135877540020136897958749019758079907307700521934583242881375085570954182132175938158688870012992219931654677833734309953745087039026438142856116750400473665663361374171803699174026551245659361254561209128071734663800795203248225352268591849328421723171741580936090719581363341184934600064581899848727942132496888226753468758935086532006498954731684486373429540858003558653357614197480582119923386713921159912743033871762831522880692920334993255008920747200710057497468748156659422504349890485388187855979175370590166582966916767553229536073987962583000452416829905530078310825340366369408679755490915016325538209895236864534966789409433585553541286665066102716226528894328013917897987206411768941453469196434306440020676118587784306050702152222483296304489093887297904687248650732255801507505674822870115659564623301951256872387281857964134365049057675940030757369929589898113944373397959336632238407927633275583162595113890469000095413109699870796408055473702139460352109909686175878524536399012584381468287249553101648240707623142225402632552379222604153349089752201946026610142155304378571926965237932767571744829339360232508150593523650558698553252575480301414627519975253642505527486094142267619525499076836196463816081017380400705307241215047699325404306285094769040859390315436107621872355960255290318081714077433012995140441932162173779910528003426037841792365194440306211969737342717696992255528779649722132680591204679289722831619896914900396662247341408839107268621053401924062204520930170845794488787783014247003830459804380893579298774528250987895157213760967418917542090922313200858746653605416504607090320154363869968372274230100765145534577406953511993351871105700930412474124467934878504871827792457386132280582238575191917351509078867798320510443143931008559719579150293577232487100891203047088866864386366171725424307627063580186678992701265483987580868056701907591471459232611836164968255273136793490411464088784985134777527099861212928457969809067513047557408965493611439209637225195310411681283676355907385691216900898158900407672435188148958093644767630606438763440795565168251442089300895066927620192022622088415554283371669906226252097152689267969712868567839532596791398647155790758346227393173916386209821323059255672556532378659686076458979696661998626439677017635083158762618057090858690731876167029568093614447038538248151157890349844441160082500404871758693284737431963146670214099904557114509151623352591584744784372588588225091709304964751015005685183085318274893263581527383681478039920388008977496350155780819054108835767849139629352904666820644553915373275575912283080259848907910038563885005782579154619575653197645072671235002666597544294705506141355619471113803973841494541697275451158233182425864183166566931777054467419172438140412707173909928580360412376700852811151829359692474742007740633435305440877908861770823633284124364932097927024833007247591777449996403918459940508787288076725670529260975102211767282683964094470788131431132031162818201935133066181978324622848877947094033021366137057794009463417213013990685223009315278649216088264664555327420456892403930687656457331719629913569628117224473437349011783686507917664936868441355371854132471731273367723997234689963577701812656762252646291506640166866596182789833073363844076100450845658937762744026525996996323525229916216772201769765693903535328538187256871932825968224714969502014135645715093698526268700361628396133227246966912693956360966274846888477120892594425074408902714875075437352220739508863667813844308831216583305044327682562266833591086770244597450261850628168388433645376831177537839791920827102859959198166793004316158945899297147958783866252763091136821977079391975646700189780325458854117063528025479170654184613253348623892995388002303804520503269341607929589966332975290566470821879912840862206980245967327507385663923061933008658138474878105520939446378517701765312572559545301049847412836630855771170058447156344193518339140304750582661028304778081416993407384805069428118931922080794743657487635849875510579078515648077668826756666013641331810717710024559740901794689460410767883820949228682025415920107620099513305659090295257450426238089215395154871744358582339749682901337329055257474341437814541916594254284315981361319608197031061618926383787096813643172620746718479066771336168281917405416918080791498838941088494234633221881138636078640969410255749631272421058254573048893060564032557585798067004039731966209367255440901455284607429155873323693642636904930281305314444483275387503704103763435152428051237426262671416821303972511830248556109410978359583446864559479335182531599741844232924730511655730306964752063277591186109213380418809848426907083634005305429280914705487799138602763579190731717156088648869539476551283077687927304099561245421742337390134016344228993364300720175813805723307307660649619757810414122844953915548261437861298126275060193339278889846723641000035158825133480307581080083111990924067645325655992409041451796937411713529548443399753939572834185099727992171423995659047724193080179392560833483212401231754385981301456725693980891987504499939038281910552832857163989873524090942648784547370948926108108954896960273495405757906083032498150816925896543195842378327075839907271187626762530568288113048032518172380101972453051542492280443803686776241765781627812317896011860951132506519020304090890247811444733691536506898601805466492600144853309759284777243296911515472900359131473027101883710106082385796968512925695999828506033792870562210750445544295945927288262731813700886206621216180632852604836286937952394142869040088062292769757225920217877494306742118403679879500688380574517416716421557687637851868517816498464352428025639355587457780368597941402148359930837070634040963199124428999338062503558700916567676528121465690772378272282603621196203095550150838133149899084942391924134224356352248619347934337198476765309879300881822808369264843977916517807875887235689271917122306346263183951338883969197621174141411099051104944596347743821267999696490939975507241704564240548790830617921651313662562245266938939219844994096825320724686011572046677086584466212311322684150368705603320004834507967519872457811101200916419641946262935869775621718179642090174719588030106693505225857804382630181924121087350835503411778746504635305962283983993184406870366117430559232633370634278726344312095277693474573060688036083634341158321246515174979699278088929209271174190500589335535425283198643435094109486844604701475981466529029982690712048170104971929386454661259943200238051004747158029871627629022377825014897330775746321635090133266432579610539764288744526254275856720059567409361863947442718224912899545138190850620157640747499372348933095505297857306617904833493239248472246347873464415514049837108481203514125824444982035651263903607498405566029426667218452483182696720783745689160479499110911744080738921983820516700026869272526324784262786846803255928183536971623097083847229413071328820806074878943576971566538456141992320518787991262124337846581260164013490004232558486118153511162742399456415757710314420059331093194092085268585264712746285950248738962743034598118857407169452427250134523522097126959778662682131955185199224293884410313405021671961980244566079161391583798765944009237576905298169315693667898604377779328854391363266832092760578855365803470353201698164192988023657373661096902762986411600805584729246939866769093845281420866540885173901164237481904792850383363857809719062434962477643703835493430028835232523758260449575576517978709277083589682002737694086867054884064198955589821408544762992884762639103031506964610234453498320681942952142538692142656389050403750968080988675902458043232209266924110371971038925261974237425548406216165746794691403804483416266322309103954360223861717841809528235371221011778003832812018833752526489876380841394261461071860021309093601209737219600013632344707619047925084480055975248812888639763875625506652983402203022505628719043927303786249549530635374873140738557348798881205370423523117169484225895772330603802796051155517674904480123109328580262368346616351792132229540224089314388623207381062014482234923929681520101055465110369378632865747171427613207912111776758672453292591360328731783819142159242135009155376080062677480320917035015884602545466674032116215625315920107195056327045345470597385103257688605047357072096479962088750651274041697185165298357864722873309661460907745599538604813151187240089488929264971897388965116428681038172714863756621150514459396910254544736326910004537175838110022438503540863253348848588679551250486354590795203682220447373865280064733776538420182498041468363132329151717135141401236811063627805101212315675605759450533734920361420064337068097896970868587028024831613501799846927520576520763841070559302269833667423551233622884680372598307847924655672685751521749229221069239001578767401454377849773849741814105335821697661299840618137604364458533269562020586985914564593216528202048609105892239482919991711593584990336528419482272425041559968371889539800923701564979732572050289051164896874145921838493801133152352911109469063684806747019581833716814383227683760883581814533297314836482539124217217004131912513970514872090098270251787272636231671033913068320988558680684999598554119101627736591119192952049787969888714836099174311456247124603703566471793531284656306123309019132497197018375946379610137554237605593392546543882149059532804066547092727963524053057855723222772093016172858137566813206522331078917803359021988653772061043215865466205300053669669229864949323136436659072086651210244922341705817700157762852604204608288142067532022231482315819234200905328855625772988615773514176057811928271497801008274035681416531252121324473675976091254532386863177035245287493597931648349797449295370989704990103095588713122625354972625630214049206911470189737527727242611972634472643736885169197888864928241695216261293254894058471911089899510536343402166685052790650275267991559030189252137849167908427288624216038209917157580074391505499036251125042793252091675078323069544518571351309301065768461773848515779876732873203925500902318029754522002372080199522162252636209531123188705641273766580488711427093376645624187897719334703005280542504757296967113324868531307455430812780653552786000131783360321917295357283936923914256708740158840822061800141376303154186412022967078428182302155924232752008847938945188415946735641487766312013237077595682985865025425377934879797706788670193886468045855678465218354802217151670945409518767195354197570396771730765634179959877976794229266724708035808027629264200069006389857067411444375142111098889837206757299756583294147540874438012559857247463553960995546542200037993851212983759128561651927765399399016709582548406225526773881060216073799931206412138121777394354684579533860452846097203045246197906397978187629387871583907873117683993776960357234101574539468463278451535278227476061728540841132880322563303816396429571896040344238564836851972252008825518441865109610590263063356481670595617373071542567077544241722058818031325521712233939882393295760437768394301057094605814921623929903037307608249115634239707050895738301585340062777137852951338783144414760571876050421518778307132062849280813723077764561554474846775884802844662980219690146929417924456948311087055411612299276947065865146442183497683132695600972363820969168051881186133882744791377671944262224789968640495063105005584172412598769342684557803766639136383642037456927316001806358139041085124533553030664745807930136390996973196040243026132123236232118467227494023233967188089582846337964611193955976910536729530455435875028034630389690637481376722634201526573519132224014590608130428837489885321446811364961564849869294121212385531838561890536156448264057045682148094738606688463585505120274093051237120032665698212416859203221167883228832221216791201755391388340419169236098073492210610378895725741608293773527536510565048827436780029921105640567967221154710501579391362755684274317055252649785316911538706469514210722446960922443258835477151074148751145446529793787878129789699153014468051162493050702702878740816465533506232185505539577427742677553428079034632197744157863036729443284908534109805174883928276642333313673769372865486133474532506067979671989305962784953798371758710734290796266201460090674038687486765193013747174667143522627237020698304811236247692093250346175954275131443955572132741585197075241597769004947148626950312431481437872700802029827906407929181748265481199043031468345237718225408195320116441635939521007281233019312396607611463220553779190008041396301851462093956008798705721040774562400368495678482666387624470366820406276939510901391356704554575558599168114804193100709766320217804286142874944909960355983986511200448637777314008492443843604495889198256556065582167240151834745821215156924810379166559165699643314041108788186860906075013947679053869261569358131353411016469460342739870533016516171084901176149228824558057287084992266463813711591519470958389335895764884005033447171041133253372076552553918013461766541706152157322317035912169623810815438736792863096844307771081421586510657610929365316353841184185616793671983461659022811046015904449055048635917658848434252713093168032822657545406377742371158749073817526443423957730832836925909809949764730485216661387664820001463899380054487414244219071193711149122944005765599683480790620652909966234016684710958665252264278604931909537664616521794382725045002054724475654311432061115060860415027395719579899010889960877266389549127472861100728534029531866838091731607321583686899797788024316601394708835929479392659508424990259255168382562994539622379529122811474357041644883432655249135435036542573307295707796564688701782841197990548210593591571173112332048874252612487696249595826800700913731066119445639806749639659981565236926403295728155524528901532433975771294803756567151472388532826677234206877044348726994106017137895990085437618378909066731931401980376663053916235460860698851809767441487139051916259889319587122043744945379654052508700672558683783379945584686027122288435233450177151309699706021151347951180986895500328940693842749623823543191816303631609091050532620352246990935431958968955384499696403423538281059631824787182920823157937254746211168256413608639859192961995499678091970566478389885635528636327172651663817487180549861133100400837127147863258619282045833343087312242696149027628381972385207838873615088225972686537158921416841913181780840178913000102802238543812095280620383998607999851489240136110228375130921940764694054781209571111906057525650887336046544653562251508735620791268866944295377319641088243294770222729731999757911693747598350403013664123157953856936745170880166225161902136560107111581203100549629308670896532216223222093688320100072816839679083290010810132172314333526088379931203214842504860893260624709693026114874286028858612123978448942109018625773968886060905148958766121979004697753977378720706047754050063696695962371977891091702301324005851417447727946721262959574444939705049966010058204247193781737643335721892690846996210608089969469494176686085306958345000815255902929297949309750500213704961177734677336705567384455921962930045442337791203462330005345616957476293804697696280733131008963889565003236447047879814708398546575281263604500419532578293641521348457788830730263915436394783121354182837909546544983394736796090102453706556121505095908876906519830109403932789731300869501286769284621904910624607126670846129383598385204591398031544372481178094543855151587251056248456724364820912932235195145349975697690036963156737209820858372769792642856784679674102283536542048774865739377985225240908620315399407327929076431308277558227156081733827940419707104855958684662608065661794645649916902039719349599976632702380133245886273986511303435662845828444355493246161366074011329249255795601919964092856745734759278900563134530931126228042861503297999585558032712036050538844528538755649830208022892400921540216041831870203844470883112972577007094979960242334472380508968642526563230882131527978824321697460762807447458156423255155454942021768858930648579380045346155226939067176919808001638812091906465369759181921548739708309636089665592264167453193452970521197560242996513735066754971967399765974691282959943980524908180863113995833545478817065555925505109001215529588294056021793473348435032719848024491322237357899945128891789536177295706859722211378322409012764715619870644328658435216455114062373035598399307301982067623378271313271560967928651165738885427411775390593413810113414454159819906768828785339094184889313991546557734692983200316465079820402280723865143094713588203905523947027677267731646426837146906289986026475504255515288856743537113841774555074703777281533909327655795477038411333978405104085538026417813316673107263503011025740399921976754077886585918947736242133982620306095899200934886541886010666051532793043176032510079169228639910441979334235103467098927202512477829697295583052172678993691038944409611218178318727717568155737404292826032018184456202664655807713011710093442325566227196587440265036611780473002625060242452501083717619982569037024408924833343600600579029560673591245437471172901633444363455175125211948676047380666867116044817414901280992203526602921698262907037993777650010078445180456940597478713435789086730659906919817043623891972689284542445504968484539187749812265717530099720166139374222377280111680053569534478594856708790113555108260060211588009541418174792975274550325167773431236934226182372493724077896498537955749969166465275198380259606179628487184143217273686324943008178103381295924825617556418306348527205322268393929322069387193733166172019243281164959613177708469343741253654399165300481895234402282976109682759510308119973416462250121971444723200370321512332094658465359615186360580969048703598011198703960733331499356036853959025673301086469610498424459125678872412629107086918200306250147371593602567225955892826603527307275756879577389343772883133674853565430231906224968751062152626364799193321155894920923693131838322439327666965804767508805777815782649507649569333707172023024129574290492087897100807967241636186712663398278075070999324742986294231856226237282305599423655378735207784315742274387213856628561978944814064342735738574017870013803084720898060759659967618694655869799873563212636054913042663537159922622681775100400320631502240833058690899947225984910241820847315999211556844006059015663631904894461855464857832119197918825767646801205719309226703208417927482337957618389540538529378886319768541504996099149025937144652125795594756604312129333689358791448232541512685665005253261963438578618559219660608156999727785877207818369973440929294102906459251797073256252694370036126671210537796968626866343779302037917381315184774380022270868138243370111735588272484749614619698675960815656348617972999572535011478731064792541453995513836409122629436473751274847362516642747253087057829395756568439510989032284191607905045236965079790917591527471698009056693959364917211014602349997005636823152209479714119899613528106403742477944549761722104549203723074279698184047567875712578499693802058955911421027406193399609079662483791645900715677980077588930547520447676809467398635958274373847507258254058648977388486630916041343640889616400124053292711078035897832608048583306375031982370519864818539028511417788899723855004262506421998209485010487583303468922576090399036897800185044476680126514921128829882677524281737276530720407175283303497507458241518828485791693073095428922391086525241357533698105017852713635523984968757059171109821621920944873887765360678073869603306838677711883253055084652544852635447721468482642298641011562873191481287176128790745012741676906718964337647619278239617697551577979636012638124805904665946959086902836115607286003618280703190835070685539707820544704773753429547655028559437971090193014833741734558618270608392268611862016408957847356894362377512033397557392169531292680046048702854628980124421900993280042475378868194625622576585907467885195594873197539721250896389295995029630414335837185553109962381225046188623255206898774563738794613510311991259139029232643680071724553736378993003646390994903622846113500179992915456651525055807744190370599894302075816351765175090250225472653952341416194865705000538005172080737135249976919351338186532485797506072343286191322597294801318277075631810569311609077815269059458072659058467712110757180052701814708505467939571174779786335876240415281051709182572126171430407807089544341941240672264408971466961520289800411543034847760784228526494646002428054462420134758484563628567105554938814479292772208183792238957672378239597888079850724296771135946585059490283610407322941705727784898136532461010963278437569442927177741555257703373872607399114290395167117489596316528407595834483453793738865210082764894750670873820231726726740208499542797700108918264087472014421864532492686833837288564349105550603163279055051324491114278668105527352117807819086492350402028782707728148948476010220501414108574591878190531159579059806036163840781544800133864600709375420729286884911060669927100997034481334732996525900848196582065523709116337967593003669578045256124934894213210014884653942191423642550476265533099682747786472766428665882625170883091762647639486746886082844574045978167836955892004820155296853324785398347470327846552916096250398391732054900097716941483645519863361527010366343839393263589409012508128902733160493505479713157546028506319146651036401362977164429580839369049324401796686785757269990656418562679107275192825730943361835248391878960651784018953075446012851807951726077221177306332539154756186228249383625092323105903521346270364353833014317955585673423231265159428880782659454307491925720504864812325844623945183627137955220389138521022297880233041252507025478992799813017403011720489155647005096641080477773425753367985895968429123376027011327214184756656624812951089585642979421932973907651045491741298526642193617456142901222594636918104249911031645136748762872343240354859141520616072504494181420801556441560815156086171407173943668014317039408552144131750793498488457685785121643920479418238207422545674957549658205751175262255129674346636241790666280640802322181986032882252462185478887019873294952692341095829891892846976725762606959143633357276704302623194936454449248187986041221666292445012172300491759393301544961564803092596180817129189146492413934321138764059869562485963518610969830596438178950752003130667811089779558338418796948420729626104990783718311942360690785301024609703533979915978398540539162594924006875940061507808021930538934368732852045496658482684718051566124014250082274432247313064076897127657792040437397478256163137091640799080229637383219705044737500543968533575063927420956289056039344289147994849933416109280771463744782012842571430543081806995581539971766992462656780445978017948637625692456285172653615013725412285900482124197073825792990965931698885702259165256790919132829884660964824454457332744343683095565733739456594230492659809056388553121891331693711392187832049402932768637141890749417204749778004471308797266790226105593370841792054862530547402296373579113255543312903647678903702729084244302082793533135058972199677444311817316727987231878353715938791248715972034020829854770801139579304446230405642645032827789414461017718455815304785256185351485237407956240246485762660850501964372983443341770811087860062062985181467770744889583398410080030797087283813009767299446796238922840032423712065412446656631310062261771726710854279217620691789958994311293277215760311470178387631253921835075189604844185414018275506051745181189829359813294066289910762629097908030810482879672438897765330838770241267778410411193285982623252469098531862846032639684683916564298207548194018809087581890829509769877434927880050561806790279164269682603286166159922812369818698160264021713867477836658622116163436713538008407914078100383043412296958643035413100578661608303528012378992666859336414228305246759661044006862496947086755990873375393352695158763202314483531394718383419553479218610754499542898190512760116719362296992314578659418101286842654111313164633816566405989374778489008170842502715607551517882712589277353784013791077348859271987751906175246605201842648830339773872146189902786698966337592017254931368324327430900686980536105834634255671365667849731224713029038037735004609154862417484231685170667878996448006456294614560341954100638632965863774575810441779969422776125120810730309507955674600502042527568298728957411832032566186072297042219597988700896834462538551691233741657712654632779621052029260460540720562915100444814404154052217155972987819858233008937645112748059831785148472997677700056478441926334070665270062506694469089172925322232914737442251145074105067577721107657994791283999594254239755600186420573566769363463022372600830612202059267605968242345421222540828330942581928469360549369911563820708123715033782776310811705589052163603182200865806117635952119292061171687207846349651235812001297536787094702143622221902201633582412205008465765440810170286130205580626200918042677725406796276255032451856730396616810220766709833921655317796939642926268140446028268953768290840358704789968949732112402860040908407975312344341154445344662779399319219212271419667653356796200249769099281735638418437006421045292797268304230815319782193108157268911343007144139851322968124381735698582466560256023004299360204422288832664705119442131705305302748064640411734156312749181298402100074222338293665761408342991246443785181242348219318939643612012608290947982029285144758267857298500330267170234627486161321034044380296348868657738863363027270520665807124300669502844552106600194121643174656413274068871359344360072684222993709403661656443240601023601209233867661445897510539413601352839628326307130621714231802682185254568224420322693663131822817464245576836546418267745196458770780694486782476287580587132957126611937162763267995236895520473599626309714251793054287021997777844009213372557284764761494706594694876338683784434141499498456195364957585675602574247341884854915711361117638035270843414617312724786890120162200234307328329868242131442576494709548067564400919793456045974147012729009121198981744041810544676462483487356526314617017856341033632336750373177023298777781642113399798466925745259454223187095351402581016918758844233011787565694836783219898081286902238460969909643153174109048807788319846427676019443145329279756825141722425928567661166497601473182987105072585243847971452159165743407757598775687662710027311212593250058304101375268125541923782935089042849436764325306913843930780292627971368009166945427608471894915141108829393095411571096106427231907586078997384819166166630117424534683910134210478689392515303132773962268027796141723621262452354384636798556685035939417070940453479343813510341326872688376484551102395893876432387819239401758199586070339216282632721113045856291552322787689923464734854897051371632011822806515022187820246305554314533997195175175286851430800540312849146410860377556379164356553441867020526689315298379835601600484559412728263200339470622746540605118608698370473472213882311430360910024309370142167345000410764783446523013795211024454388042634185924726308165424834523006123368566645294260596124417056408989878508173407319180057941047214668444660656228793697158154140498404268756706797084805568301058576291910171786799631952596804355475156699862525184023298179390227822105334957971341327387413863231772792189300486879855006104390886728968077306693851105092670357036540631060152568146165545520430063437717822594314092967613772259446702297230423431127127963502525057996061269751896981856581369548101508762335318600400448666009059496982111849802780257839919569603239167155985586809479537588197641305592134456986749241884648824181081512889625664122230980365591624780092642745578474896780105852726839257259083658607296336428954258133895767461112879511494117529681323432309269909321690808594491871090328342170244727371598035971649725781415780495766005127232286565924870150797886622746334896975257884509586680937291332293690924359930448293643512723679130290814298102637532289656047368261280446156219091818254688219035011627740989260730148826380915237930715015703138972117002502034559180403826361115451464948286320148044221528283566166114861671055790000633855319888934745981709561848757101915502644556289887124811264290775372177226157156905464952155487762285026805014726115425257980492187605804072341254794873165263352497605930715720238286339928112642859752629872549700463413944999254804059482246321313434244435861232560267493865575093307607718722428706178909431866509953198930248413452996392059037182200434121742611411799822312088365844636107800792823199517521148202857385235120033201232963095225968778329036412965547659325012609367834785564137879593383582697589285480927346988445351346714250055855434938008163992893554741575960534984140295244489856577587722879612458004151355356096459203919637382332580668900371637631925091994589964778165788097781654591308137387093321649506729091567545539205365982601753384393939182345315887440343544042650321541956137465465303873901206126189172558350480778679752138135079667462196018131227989837249134610939889967641279049519763540047970281338406141793471829407965200130146542673875700328620742318168498448310596111371225677476815473530423407426809804546172753433011058271570386706841314672941352084635049817257849767375329658129397552315166058134348791566033396596472625482482447102861431137472646322128900601697274917293311810387993957054598482235507961823518686328709940969742133848956846572311264906871404771076592694172474739802749314976226694116311565415773302818914418782336367526002818716998608079858231089620187902992645813425899993142959834900261251381278898283013839432476296524065522621987123452865704812316109810812379784855645192564766303005607103417901014774335978133666716459677776661069216515336437536512224016730325854456104690960745772419867855156869370130523732195612478257836564378248635496685793925714593098920553795759080890653774414175912373271037774349323867801561954907590328796508969196117449022934146069385573454670322892531354385957418766763994829458317354511628463671970534023246673383323601128810297099041086222842364899965054237428482908390185765262921446999896142784129867040842679330723307187526054394850043652764381974990754306266431056869083782923997130103464052681521288381740867803857971093204254568166335929010212857781004764515960569073839946276214926349419980586563001732766356299517016789424749615682627382199579628932092355097711992501231570776833161942159645161761384793397634443881854479568631014203569158470020191771229249725172952792167963505555362560676915503942123685952025727844312105177927393187973131599837379480823757660960031703576110377738732777346299822837898289446811001160695821508494168277534756241136445701076077956149909094863986079730829274386091922929263749179376684092476688031927134168973205248335061866343061079961483811339494390062797270110009839510347829024906736960582084538354842673773405946845164847863905967173613610496226841881161603947239814911590531125620688254970133005297888724207518447118611041945632525014195620494266092346607717066085777270799817287325346347625442189509073262498001584484096289532503408819567963671172637526487265999842349622976158610023314393677046691716468209848775014136324197137784578164015910882481077184538567565851553510523245198545961462799368144914498446049223244728257829108941169167907384597713430134932999650048597014818252773442644325887490960050362007408794752372319212825951203119406412823056832366902206095987945244962416864411805681253680784281548597874564829580407408570704411424067049792479638323061252697962494353968620972262128752528650204621435536539973995776446373795081258091575316714892171082001354063929098478636559632392830952940045329612435923882222163332622183118722039604251657507302676482074650558560146161906271666980870824532109267806928104716539919293628776133298190742307452438912044425879876343190737041694393279714503529266775922483953387039947637013686598086812408694913250748427095455316492987919710017756885764110106169526807888391300305504945345194571130318157299969687798365055038814649080383803721085049030049043165984205480431528049867465156861331846776975317800030209167364778638143570104866014683465988550133080776952054150757762114090097489279327190718457031704847427891561863906192505590151652781248168347143126131867576319251734791974442919045334844698062776829926489653453783902354674428960152528834524380905974821609843436140034719527453409097661874546250419664132280109483774337919419685268837510157921024927663211442196269525556324735599681745760606604216877084337202612509627656227800979185846479995540789215266898123751526304207415635315622009584216327895043501710991783748425952157190263447047121174995323974069317738123801186363912505969217491426821572822215717682135693135448673939633712080980690588698752139903826223306904914472834113725163246124624388699952259206639561791730452257207315884038024402007662130987550285366636023357495461023847712477029589493728484106271219910123165163679332997477546306877064487781168215997870442108316921595970593393777780822778317544283454349900552189134639484166411705721908710850300711752268525629504051861729462287367047515179937940464969940859666259965764530608058383997959884213240974821945663573143779812135995582131396522332072945908089557355367010211596738869199048538403013207423059268862931274513957090675635829956497873945654333129195252620383468088036170038390439139975398272971099502948040741382074831420177973210569458395006361616880004667436956817650346152048043114544420414921720220787310206805583225036071380998757209637619680256052700101728368255288326268024467935957600707223329096207489714411973659901061778295287528612541703848404619211777063888259702751927897888026209411817686904502292111128662189984677322669327806150413492055068262379768531911419796634968094842987267020662839644437443811586035221092025534585310345638388036180066475729414126991426194804829484206310702250998878911557075882809908088280289798920109192514511126234005342614655429480052634921682441113564770015485183797090292894108317082937032392255239127479348861941123401346144434457160200328453259804623445609141150857251261108406054546852279196537805531885340039902496489436276999965669433147066451695345841537901665192038253210289955120021285831505592445690860429439385948630745886006660011024832126010762844404698462025766818336134521547141830261972176454479627055372023167367986155908177086716552138515795004811945392467977493813624532628824355679847738223279180366659558261674677247931875983150756901499710091353536054578500339465221916722946162359845107892311701576935816016286026055281309004230950870328796601328723736111977274662339686946535804071608502181378460875224855004315881295271992903218635610865484885837290693238548620642890155075766626841573280880980356923953451437008137020172824451728978973163863345683878529846608839177176717784074491582824473847744702872333393884920177860799308869878754050443653189719222201430522416969094307287260783736610670520237019701016444879079464871227829400684667779558912251914520634663929888498144739251076378859849002793229384537967327166335231751612250448977856516291394691776148736073155572660677470930920204656340973213218716035642829698255276043538434504716790612583315530050396443170523902861769699338858852286031364090608984234258923378999600011860650117183149074826661803142431762243857709864751488898699168488844536801751928623072357544727342802233805554257921671373597673837574475707880760143183480740976193333724855886458925290266871422252514759144129245792598707679579999674009526468487907620601807514266274254617164193619954318678146224274132583530078571111242156342543100597608520368367966295595441826550720847791820498298180407612001091330702535403662971056890447053832793075095677282959243575965702365523027043379177851609432529019809683505766153885645264872380621527756192612480501639070161646636533745678040564853138650095994792821996895188194750334979782512562601679723939232292609922733351328902732697886407749534780672122953204048816252064933480344689330782672431871214784795215663602191592000883572451625468434274542309341658341837127621612111724671892291781596043969975936426338455952333651202761167263963028923215557837854547768367485203357673538950006478890398091323776822311094394945597453684401348460088670102113768141461881886034447553279676427066555408311400935802403508430138922691218242478339520369325541319398710424181669475488028823702985900385295291616650352286619995217134748668351767122229945178832814829379144019217775066141826926302607658195653994753729327600902730965163613454288725098387094180913091874197305389371537669536868053793530735486925453662501568239050739784522362465662994498583950242798680139423468392707008996952088254423109911675315297620413070614227970380906924345769492610624793652624276187330724969971808251480976552166618907676510764552129953404970980628373239069454062086355143121767299135726276382283527012659818451453687122729655650523848494839281757802481116254037177948825476458696885156118585444504489484824308398259638664168987410645865822140643814434085919615935373067663828210606958813018867411935738852232034959530738768565716876682091326799502115539804768531055128533730061868913542160980159238286893959646204728805351558532249931459113510049048849381991532581791102580063022049380761685958309110509160853572271183470324121008714105551639146600395664488008788196595021082869936576034107032317530650939958409508675794665129907303689573663620851167275020464093497462266433945166415877472193207424493714380053501327159037831536783977160748326653676078953024586159188681142007301738114203657564579400747896947016035813338746219521205595846797882498427254689279336290956526609512496066035732503300492748288643640231703772121969133212078480310568060289240400513611099158003279423243521845645106436423011792961889901864182288638991744242957057611151857380318358867272632719724983532768470740887612605058926261298676275817468439777555623909548792096200876094621001515778626095316635810117969892536507706553240116735710670341367869869914833870122704664493157493869489018442409788167524988575016151694339797040591978181150003538799059616130410519770637587798318855906360621618347323149200310625927544347361186287427313043944913550754875060764160050799036190120105140905634001586864914120583493998351860577149636233064087487939103159600789170231334559604927257281534815432335625548191910371949763778605066507969172257743840195189078725352824351281055073532827608466486979294345254623040128122435329300649940481182914096757051055699722123780061951216550639926467935193948342692688676233230175400204991233550715533174480648080650328143000245224768288740199445500648019089453368198645330697378517687611616961917842655174657068539466630469159784504115206442716078348866680817214700890356571390544698269757014308340619575793935975113904368367982605140486629361817944681857581449409353914489332389738666133304488661695075418522576902031030745682161513940385833272909484098450395175110555305645046252557528130523451845282605504911359444838349158388449345277450998749685970077543593231551860670986822917729881602002038236338268651391040648300025920061541776362377448211487726847434388481259374921349752000432882637503233935388425885211233264983057670823529954797998083384635131099555775829857633292488509786150325045050519392018047215681877012135569210718280539325657326942203054478230672383650598245521820590742586906163655418213741933861357426132889389126858124285891786570686592707625145363099487766835118888996404742367301678622923412653900065261684545339680559835436377898225211834903813935437074364612395906159874422294885713323449178914936211904135449653639077382044517855845401254640640109002105416399143637687808010537598140046121400799986091099189557940686595834330455646970272759981413848124848964718785416577674625237738204112952806065454136544251912959459000638836859841877702667114092747064899309347421295262024210439238031577965470384277279865416290267224375657589430039143779531859543604854432942879210239158167393056989744678421818923610250181358660114091703333951753660734865685458072246086535472020484483397231870220187511527371399847360613524490439631036494840222781799874964637350949659200760767035760117954872734570451307097357597512594595709109634734233765460199963929460037609548837270220072418069304357741650058384381215905618274007247453603753677882995827699237975354318707746421608315442234302809986677904499041328790785859127546842312986409556170600138103941533772176566149503481289991634507463051062075684441351429319928128577279047356168055100662789731771725445773654902939023885469653712004022864891046272705916877049769621763388643126296370105217854034900944360428432645235479539209617033954236118362150055507432433174572869238258181613262444658921291571527391356942770722823247755914300460938133452061597636477616694601666986478425618310963272904730664977446500578590201919636140984950549513559224920197337876354968773136315927476126523960660493718622918353137467276571668688688545169525767713577009268195230965537143368323296655840700459562363690443876459414473377746420008876334972135790528088828362088246355482323767242950702244061015707002492024920244370157853073110501578923808002648567417516335584644357572774286912362728307202411325080165015074655476068920937852751326545664900713879482495241923882223662597918581500383703048808993358185702237751270865262877889064847928148918257332003443258290516417772747948062179454682581440869642525151082555478450163973419363008909793913974597673322963155320513692279797554293835828217473877377891755338765029750892403015936103701152117379936915010261938538567649011152897228102844314152769487160622144800638071746610703475875071338697230506856164496461824387863014942074982682009133101482515265263722574840829861152745350406680723483629870572083259176793770452820875909036357157453066324590581703868145762626271526349776160966957207466531764986144092181076484209188111666496197701049008278472517452509883859348286307855977582403575672018895440705417090528829659808757500880729965600095286552664201533672542841121087584530491472268022964073022940209272048116251349901192356025973086777300508671224863717542974111090340476083750085790486762175604301855694919647204400355053323601843001270267623222451015786601366365213822225482868456107883069645126057655481656656438783713838843584655902127105131552014468021472191742875171557286124582462631471207742657613789879439181251237919462859315439140730918947658873894105020645223396254767709568271502752947350190737679441100775324052595702241497623970949751134738255998995342357508681578731155289705634731942711774194515157354563126986288745704337970805941620925349253562976832958532705754070152100592924328456157332035701722357888671074384812588937177396281129523319264394316523199935566817326948722374810760438713358855693544579270285052785655879399702021095105743830432761809911302606714399696952955325122730909987581716948936797176966423337072728442497592492857309242505216160748714870728525585156551710908157161475214698543194217443375824457653737623531027808027928804724899690725549131615443920108712971122127502841017199374993293582836512625890416990351199824642553720575074847014352359727215303918304261445871957137958635860051950291042357200016890495574467281180511262150235180854553280429434591654953397754034908650021440904565598203806196298940437352577824319007260400847282701132893120427085035137680702413994198732295876364476558769670606652261038017257888794614146283615891112787999876698113613686625650833772221096562296635031298784199675973396529951711133966544583217995277468533187835813579970502682682458571530496763184446897526470140774794368366316559240582191113966904355546081794445871469102624697532310778338407876459540773175199848247814891521940929365352972020162071000336495788837600247517596173400119098737221708766047361266182480941271634263645915284033219606880519761172457467545116789515166613607185995867238866994124970709864865112988620922908961126398634330638265071688203418930122994225131392630134642732847058216175689131718338002927102742647657255334891651029896872779170066373693579511735939430818767852905397295473951254850635985959394510392910572540865424289753638050749946284203810755567662291719395445305246170646012296523267688581415501527802585875726842688104653161804169277835058356433476472369504544726583170940346390701691427330945981298207538907747067868573906554565557303142067177113159742278496258103326029127322425900640350964530608731367488466307683118735643484778616753567927139346939705050452970137899404782356285961330177388697159405265789915068992196952244837018967773455748101234590725980614987530825677528501923156108495656284705297267970601898443020398876022517935994285937144396380849851158503318118574998901271738783013010040077696528933738046422979134030012376978271552600158642252938918211796744282443331926956087082632392995212348462678147776477218652860858405749159659799608501569909110147460961412527888693388719775734467073390864797822443826576243150254447904174094192888592041635821065593066129324023468470972767353356779175952663799729260783794782613255334780302826136528640844388518239157083419195784504568029968259199110736456676904621870179652217361549422158688036806060900473605975366540385213968050068521339837147682981311216871604062857678902626068274049782616251635732272837666766072469749095225812462328791290784083488867875286482123272210686749152907402014846533046720221451969078241855732145946153163744063733736542705250246833131059321848323858424123544857316476894931432265473519591482669780362809288052610857711407086916797697133294101344260257879509460929285777873170660951619398705570972703643053312019061947485851037780913617430954709803804255455559443523398569120586926789939266994753284020444370218012410111945779895373054420519725814802378182287978967448643183592017263157662852625701190916638400338869416253217061530685749398671618067340367924153693011274433288047456908104268190416419679604135192153125994516167838918465420517617487920858353298694059930609671585055195260051388104681329013215895205531126497292366140636355090626335919804322281415819798154615863852562215206305783702818147569165048099193697298365620937231835784060107015276925749270682888492724942003660834095800675272989259203692000242489531610966951402255415399238173715343221676793753119222357092023906014441356299781518487530535471215669339178033413396887108346602080050149264108159752401574687063269303243334493649164703092049250647117256961404185800458651248210445534451080937231255649275025315418268568836418135394308380295840274094556592324406740510246141068599558015089074746344906972646333399949486690178097081591818526152752625121337657604498110739551403569242777649695223402203287031888116802974226851358216895617829001021559315500063636085074024686700249063971023732569236055035234319283919583452946645974332116927397015482937078405059067272083943986221800264592459481755389138440006859470503877218950558598773789578431749340995479179236002436036821813462339968509707539945285031736145884876921995059331434783556380139035846730466203803972747154193899682353381064173967776423740527909428558185991921852609717410459393351308752301619735656161051999752370845300298358704657142707262845210398754920225254671128162294296922103771743077630883788002730029140586178703868263823372684223564019907926274889639092162804794840463755794303565664830190454362855188337138625182204345526640258474711351223307763174476765518641521338984349058626702220610952477074533282947792428945238553862017530730065906255325247226635138710647308993174038030956967603067984437495263146418344452121839671139955363168611399556732713058384205794306932975116351470797721211572854037513461261297150100175222247687495880335213911468937057780572020013908773086179066454398143396236225374226265822328025969155926514121447938790708045744021641792493684208118195954214868070086723775835276810503145172906737827183920816855743878460953791419437137882822659487506956771895635956238590345228920287910352777319696526917664489698199893821277114941474703843183079670003178493207277605356825348771514946792310110490288237958539229713600061081844982831379920198006464276287324714882370583457003663663389820886911913670060235788294640950588068689149696683160415109594094264503147115047837286332773550203922516283290589837906840310017740102212438187579496677281839975334376677139045190136762280905086032353093066279932157225933512952502982764941418346677008104324516319841159214213917811863395582375343305128107143899965224178509155321891565332639453838545619120488953091618914940583705716257695410646321368453547608877747175849199676346703616401215489988386363515812013466512873733482285958781798101771101451860295016917156088099314595757396990315526861849930885811295970269075635517164612695674353208670085245710872538932736525453612991519250400478325514547974501533573153079991893713562255646161579232657339796409775742338060685271809271640753371541212039763189440365371095313517623109412314185979697900270988053486302887055314390703021064693336917621945432640504059684671562684140957731650804830991849528871927697538159440526115974865532490160372970631051472074982488662944486852214934569144966579093536451924466894625928729662072550650431575345943189141646511795314174418211454343352979447333118491411224638781892437010450118615845222494386098775553894474298960040015704781843996470034536869595847655315276334892440164228490587718365368739797750141692813103746858638353082930415855875499469980307969637247733195726029718702618287734883073707263091613816319565835497986131461266084809361228888062983717903089540131193551133746381216253071915548309016406126113045993033627871048128152096793553029524568367694238671793241458671342656772489252864246853871958725093238228529736495321495655074544620393936345479582361488559942819896961827377173309728711622153514146692186278736273786378998932788808870602301286786083523435739577986917441622411169488616497066464305856806158284295789596043132188486003001467456881245105714297587828664312649444179383681057115411942075813600520126564191764740228943208065547609707507629018281786700532920231021167774102296131613335146682147846575531506887120188010656403571864302712029705219312409270197209090154587532416115471994193539897590440572035716959229466309633817967505409948818641121447109977646852170877397395969807326225392434647232051770123070011059376928385558112560503145367916999209825623326728340729476519691595341646836748007879578545431382871192423247074715579862962165600350957232384633508690484836602999279849998501849529694198123369680516492185313056008456608713251051432673053850735747356190087956316932319261753699836961910777237699880569662707424488455513694098720671160730693323834178184042103881014143722829039433583751899659340181035396946236247067839218609010535610830218948636790653088665853452208348284560186830670578621948714802045844892769675318375032863270346919327335531480083433648626986295646946494261799188779573756359504707069649125570451363170995374893194564618313132804987162711478932434819304044789002742915739518108867141918610534359829140488018627708248285939870560812737722124294605497898670586515413485227435795279852405858775659514213516467369675831413499817348589826753306062740868309511555803801088188377065974201289755847099474943559733364402989481354821850259785076867707731209250541705083671324589385387817452573399201525733744740005696456243073905073189928796169767514895551555074922408838471521893407881125002971836586213776003048849119004006747950582617223777079714823192991235818619455717617880584750765312997290588714371316781041865352830535923862118624906656600311318386071757860125820165031071954360393164097897762242783193095847106796212543684756040455502978142753895801500124861705199334563402517417919218494828927994608950258917094516191021282602906540154540444014818618828387886562746781942331749775800691380279071228969964334388018829438679206433159348739268133292555374146912163356014266182447930406032007929065948334200705451138788436696293457474005449656718003204847074657912335913897089997869683825624926568974004988842807273396141102416574544418165721119467740124063120320267485833289430930889081083542059552281469573742108065766489800863272629084963673591309341559610494951567644196343334761252064200542350509855362558349555495075703434369439863803438434300426057348822630644473739766400228981433608999886995558786570163544045028524618347541393017863248917153511547670656098002876811992130030206443194256829935975655762140279468436550861183270990339715724114959138177119014154556826282884171941031437864747979216640709947453070432040458403166103376853261117303576916069111243523346848458190831986306378066010467248034457206248153210209300643474494788075076937164817955401626049442466770129419014062742544526723885650683120730236034637525982494487624279965634892270397202449475013982595500713195764496367601512781962251831506308425805541450280307336112257670201359125117542832637532214401930169812646489632631931781090642420804041425502657204016699534520179107137124974355978919571149449108307304659097305593048425050597510493801121272715308129038932180978064902332804080177101482061676845416924060034003861154716012745412872928798102156807992634396920387631112679557940235624413152139407051825611597417196728477748976467242461751493509096528787288195959373414513649004010223136828865671621551386891207887618232973425708245177717601225029066292936675289926826892871863749316802634049865319608989690087430230323318780210659638767712204378027495695224007824815553728625161192584826714277133546536647870745687589132530834772781479801194932872757915999967105571405261996118529237253013131026307850044721455925575515394197713032802707219565870426382588069792945544384968501371108181805170494807463408442728670685195194558849338098532233945486822029843611764505968209202826057438708625842721220426161823671844985518746157678709818807100031615468287282225464034753967841174779859905770487432321588913626593254232933877975710967923261171431846486356167598557558776124145486457634173051616916056899707663877025146866527338582406324985962066134809931360798100885587061995164211800888758965736884332011804098419657615364304975337300195011008757070896309364358153148764364466851499331785016808677242127860423142836637460815858614258340431742169960048871699281751487013449200985169892384505066525659499542007938146411375940086727790683888514871187135852217986691991547657319986147857590355535662891113599950179595296446831649673109484026751188200628003562342482755413807739412012134440092780562443936008534515743732874293619462784825293471953410040636612581693871393792321559744471470383399155733970420626445999136863611034885969589420985648063979633549772290613150270442379336285954230895201441157000734526488775260942353400690222139744899003970995438814547524361262012071495922318053568902131814176117844967173918996823625631127874576446024687518826567579175821906697224099910332797846074832462997777404135627870175089454681955527298515123280357450625284986795952160371554013565086506806675842005243635742388927472375395479025195882366713599081350664857532483549056360387255190127715990318131600752339509783669931920064157877177399342497126561603455777613921914133368052117967506844730733803667301381016864794192229714438822041869551630849467442207476657788280919636189219749898454344823449374034218732959163533110478685654298772949103683637194111184266053123301871603633609660775852439039503464672429963737633494962765250787683465625616330328795405539742432817848442169033979141132694472080510089061518047485798019452476005013491033220233161887999900627594994198113031029070435014696446998949944194689704905647883926182182027589008706021828501658336095267762352843316669027307838260328742864269042746788243867649031514076640162833340417609972780894977986613967334312740362097540209044841980147938176340009218741426021063813052518021748562369779235979290379600657325268728600519741771148847562709617266941057688838293635090187073513744088283628932687578428849385314962443134207406305515686375138605206052880541404756869927023155195619443924392926966950771099158722643607153466635187806123794711793772142754105166557469952341092428817931960309733278845364023950568483832584818128397310300516679507926366601489734806997596560526969767680177745333700940776405246246293970614225496563516268058149443547360471943186747225504988821894735646461958963951762291036566074975023759277326462938946002964586956105991422196782071738897771869912620281332788819758905624089625440174999626471092312824119877445662169771352298229785893302741849577819473720944977113486825933922688580876542345632159000535778595209567392984089463618165320118102645515780527264810274704833915681416757274857324488448105668848242036343202988157916568460785107500036063207846945454820661452558082700530424150364221796661619998682333897083554090846109235629482596152357337420421036284868836210744618403462378692431792533446366476084481768521445475464553693666103999560409437524681355525839497985183796698183271164724667348375910813414374001291200301234844368032656687623734143705262826828514311536498519905194907870803584101243499340155413853273501314824586970284439218770069628857810489699261405229422399733383598199857483829099869397327739886299265238150921795904368231110458729408484234031851474789866229908694521125213607204578965929708937500697377760112510899625858066626493147813450351087950512535962100852487501521803219252860957901780960019515170434556437507304278596668803646926212994680010669866747777711951812970213903352233547111909958033015453768281274554536256682515568664139367742363120329178824271452263881210629122169677866002700262270336315666658041915344485728132472172586146475911917917880414524179843082578693207165675821622772987393163666459406550371268858377249780420889606949549857136853763782832724342464799488558955782728810372461351577526827993391241277253658823884898894232574423325796229503803257810668725322321648177117258056234891750227288022744030714491753468025036457975723256725162798245392940628771361737556553535540146142912717614361349864262229304614349787184905392173594068332400570446830392259840868572112245587827786664932122150824078491285269206417898291364770277803933427809652148220812300346911772851761646592621888966959814449627305167101019263254859121893256457523680239910560370542522301524688945982138377602701321560904479010458484486222233621016386060041513931911516570386603012727986031109890310955998637425075661526402877387167323827740091879922431941861292563336351850891312969267735171880104617861092117681567881894417589997613589733496810457517139581853311311287513257968474222799937140119848890375871478784262442433970660322387456708694353412255440957220487080806557145632507164649238767674053586350145152234856183494156170188867834050198898629870093663743476867683007558901547184990905031000280881986975641961128952918808885893124265157803526937018073378818879952402520334262655454067017885066755295370838876665432341366340217749113496875086493056389724290484436458715123890371476564996053795488396604099788532656572512732600645917956293737218163303399814275641597476771495096592794902025798860264556257256074656960169321653718739428514100890407741445730562843713308815150140736120707112355066147933349355394628179272164777224845545469690319059360706642181389545313420062054077578562475928978324581922557805194099256182584133587376914322208172594884115787981057192252536680664830254458450874723535530581452429171499777456319642125070810811125532411910721195303391236293610671137818175171920504243662371001059045415290084268096468356229770738193107411889810197616075406420757937475726977124436472251265660120428482481398724047482898316586537432108655045635744902037296306210573635020808190180265597320608131942185758097049358166062858033511352579011897157643634661148244388136169732417861665393794837466011822424739827484556161334133602222158270872340513810011299426745425192711372716570667234250017508050612256687672380881282861925601955733342499662137826513704645118626593166692928638494841066310113812116017491644178513924382421733582214903143560336652243702651847997814802305498956849537039513776306435733148085649427131771050993693693067731748792284079315762892073634250320896057409878877651094096476577488027486766136039688416665108031690063896240818859821364294345406244531592707494645328584020734737655192441348803493842595168317601812129176636896424931514093096814670560827998024164781321889862333457414553103202419159113887441414486634390957999325787044623684848377088506641807769342977653365785506171380123372321925369350527859650149588334181988553659674640434071975631093115528168357943174891045432600510405852083543767524601754935057059712913268380332834929461687614289790086313693712663824450669640665438825058019796896987819121122486844499552620122763425859801310119174802673186048479805325775153315274865623921033875033512967723385518710035793254017719751898552047433037037708866872220767520353752965873533024609830527721587976245850797579126504983804881937944223146540004561119700066145404494971276004865702348287720885918879359213345634288957307361220262087895993240444682671068378312131338491824293710546593465856161969355451902297441849401759023871959429221473889543549837023130730299452627672480882796091252252741575921406188497680984027376676544638641714711803893059385786721291010769717578688111507324676280993895685182879435006285942246484358150370965260814673896978451708661959472842543527068158544381397087436850105920531839679350116241135889490228870170793755859440659161150175958776977208426160136550107756325133276203068468173840543765217985914985564976147816325350668433017544560250028083366229110760439921024052955469364981947673468810524368434852256794498974702630835438294605977426700547111556189347158711226818912584792207060891929097204255158126781980749140298675706944646603468103256550963150641065039474474289082616261824768648212282925806976314757980390175020708340783550153720640563860819969574577771587913292041889473986820123916006206832546947385458616030175706176120813781723738872615174497593098366298553429909760047093459697477916561092713694798782360077818245051146274229230799067257751950945440622461245646937475876504019292951331581218867074904358041261115876019380203261929636172362368660298242841204909611097833218472563690795294359891786730027934215618496205884768735933772717459805298852374104291485370575682170254110521101149299072925479372428151710274910398086535157462457652071512780941244149557200408658515013978415308923580448370717509081111620383067308180691084762137304125512805774862016988512091279831316008586004452532652703432536665080413505678885670609946048028620706169145059729102985865467702799457118998847265874571937395424711499014985417392850261604952715765009294245809306467660760180847781230398347006680762669913557683793718587928162493775450048369050672057956203666266499328480101716221526411532223863259077402040084803111218817813520847830939063923517424698284445420934271213326780677479292574546434087255932876194557815344899679865883555186684301430460558120494502175432922789910455888165750232012903992032289158585304839207793166074011896388803101403904243447713175548781062225101889008258367216879087190314963102070116438365210660562256462387908246262978045017521458687550967439325589291942149834787892378386206137255454152310689763691517978033752840951935558195147160745356977475377548461737867320149572798189787551314855766344162409547103747046712669752588708158994577383457166218705469191483736853640917075972573433367721309624713584394434918253465686550416384767350536961538070899611521172328289553307842164203860380334267561756573891604925955308529986376529090938202377151042139702080549041075969110928530019514567318804420176586686812219935968132623840019615936553871715909610323850045689379396787914517572275048852047998580272582640756799303250210830554792988161382293417779927460636153508573709731595613446869145285469431965612969519382851202249139227479964571810393114000173757544503436490075080963465692693090002424136603496140362843678168720437182041761694198352257703808687845839661679821745348308203757019310694767278917439296457103547610136489304954875203578331523311844412829104146601647811055535385836813345098428614554596716065091972147757679304444892317240855100977074863868972497764418554581212702833979242177660930470766755002870965910021306568678800760443084490944316459976378565248420187350100884062674402131135280427736764731254377603586084019115666344922217024168899514009376747411373504184644515789215451457064696287355616343633766748068852362990000812109944847135985803082463468277390564507231071850870685996481821371008056587063814641651001375862539233892262418744465046909371349848327330079784329738548566652248992311414196155772172906409769090839538843278843077721413534177707931146529148111969093200389183650246077460698311869701929232131956290433498633466801086391051053917768924803932178493994895729775984709930099387973557558236865678169111247522724446951946291762760073474381377606722156427174418204741744706070076382838317253719565885829021254584357775227778596859187418932532227224166983946722763144135187842827206465238538278300946071329948470747407638707370335858899388957985373685915448890167845557370651541520283086562914525334826482054877836158277911842080520800659256294755520904450262110058202225112628722192370659939670345638080736980860155825412286811187364109935508973258204937021282290609712361884789877207589383438058440334478126857840402444361147086815469519926794143924112247665056347942685404015226651465803217814188771503609620719671058569869392961906632504828052365809523980440772623268736818856074043942122589649079736464834763729529568145627370295665757775059208061497896911922524281643918332568229552031119860150309224761301524544059824527149625249824540399760691707295450428727386000315699700892190646701521541488667891734364858088375115848397037669752984015738037982910889716701528336630362217472686186019581925411292240158445324205405034608408819106172925134312818248063494626256935943160288703403616368158855136625550601731980541011318023647421351883009962312714503632068020200752764987861154598289314893627225908207910927023281620577847296800591285771850029817717876652155956150864200620635915523832151521194776360443846475827620040432767106269724909572588071856679770710822720731721035556107990473217108621058895971759477823127189774268681070087647143321535265699053231030807752823215324954130901797276752713873832711530885215082652610499986387903488619677489257964896419268534899301678363153710980148778012103483932413064122498371351427529897908581150353579114722266414772492951742523459326057766147952917353026227522032611942392595867680092488248085808955090109360394292704545526817840899879367578295074498438988731572075239238466094799614941691547414116555753541204093757884597408003001966282180695189145430342320901078598631995603771982032120151061993746887014208853408167009091437175113338829082649096706912247060683618678365641225300136565588274291231568471860001326778014777765924528700203242591708348647808248826542756757116192732718769550583198187311985549411407805175869749181011005287232157296737458541498296002992695360683276781038797389582122977997464473888538024024423753917720993336160306243143240015315663863823035826902563714909545492151899084643829364042289276330897274048611162361960898453244569856289174158978138472771834313118578834093166645914249033070995555147278635676134071967025998927050927496316848642344430673899213396029480394206571176541054921928839862928744197989358703882483752898832096718698528183302190535909024791713848571721602467323568481388882812273036721820285251193503179043889182363922630972945095643766009637568502784077716407162001095844968422568953702485468789243744286332317676793847239324540635427830729479393780223758276549432117822582066478949973775634087578068669595946981826936480901749284995327573043629674666773695495314997048557874558645587907263447993533122388939687524877436922963798017429929616824983508649226728345194652714058356264132086485256556566379282441427440595486188190642332120960438715029619157030893048181456271198205220633831606703643029357773177887716798365665948998755386281109134646408716164037661877333662931561165718012403488782658273254226854303244280802208360564698194536762456816132652017395194863807582803490064208671456541599041967583660009724092876123133021511973785779001057023923468097816937551517982466085493062528280549266467462740440366264093449824909281041045971759631974349146781632531391373662011697912057401596018727622397766176538887793871792844944953906344059461639505081389472401769888073983172973989848085719503439373283300734579053795529301198949382410982835689014102106953956609506489847212441001798049627324067066558215193046729026800254655443747253008299833370952429180538878523442511225362258804363280540278177573112434559306307234080441361430321435259746534210483541488075332960858444517491636687003935279698506369952564743476238472112926339143866045340440816369637966087223889620197394695351724464091582080480387824258538208210720423512158191383816924435176478861439150305462273572527390443490673926292262032287988918983237392511220114194927966881323379839436239271876665976309311823723062870286928656978729256247653319765046148195615777033066308706416421152167740705547145654753509726465365246115093267686411307592002857340423388119690649517755214218694390649655217182234765220191580902577191529427000704805192073175736372113011255030523984505945591803202899052314488852461357177337081233850497718322638007922321611734615092223453753997794241530558984077388935946606613072827465487206220765750017971106293933088065687143238470252244154028273707834160200113335935073776537738643974089791708159206089858672272076200621502419353248213255668442139853588134339022789909724559334362917365171624736098810387752731109943728313356661893117571580790535942555461003614996359649551725974140920930624996418501305207838659789063267402911899081877788151708589463736088610932507527041324870479212158673019362845681952263498539732225905549579808367940615082315456426642157889415538450575222666334321470344203421445983473678351144681407372086637458406775390402137432647162103237898416438096485897058902609844743220609422179021248843897923653466457874214177909716973567276177414062142457747739861560207365408958752344434383417726342682865206111104221615542177137466734297999273362050492836608929077320349414150235339133222752360042761665643565833894468477324398915557536326613430584330793689576259541986938968299100918307201736315928108884185141770728511125530911848847312190752162191042997807710802827552048515589313821268684837979209033038165818389824303570728898670434263661390255988294740187060884721338449171213818339375509116663071135306099730479259453930558932854020715103510145902859486476697012506783265935584738476908247968737093007105557332331198657058539038836709002731264063696339955334426755120098678350434000962509388058598591968174211025845580413074139012915186586177367529074417916046379241781265541562268953347465141355611238220439605651099787139199339673835920783925057567296812079438569986164676627118080512690063894949816952155702134174027808474404457513208088715046060859752082372881314345112227365448854112578921277142235038538497227559135259193867817163754357550170832777068444812955847735778748684863526439911249960167470952764771125659458859355905473193819583966913752030155621712946086694873461461655169186359429785602841074648967959570005783885188882023644471872862870046399082814619850459451380097740078663570139459111002642848871065760434583289531889674785760676609378607847455760984611712343873313521579067038286886292507206882308368059860668237663214911254219541133436797659198062646911366520392306219262469623535370093356041380255384814656289255182534507969093848533392171146995049111729116975113879553113803954873540586914063357932720806988651367364308040405507894882270094223585450686541660148621946653962767851467346373265390991499246583814701485779761663271085471812213845896142147136500355577371594623582718763891475379311758320362373653127817881066317393489451570510209120524239803701314250214766952991021921883059699233652022281673139998826758146383027705095477762043794510309408320804193098266509790912748797072640491160729382873051966471650612904546800442593712612610978253018994394324467556564000981429631835912292077202233166371964692024046038238314845591822701287934889187011531929252675832056193456579008356248259818827279073759075418592918234698268518229750220180214871410265475769098149758660678050877597714417026327936503867788588435868726920049403366772475892933595361886183283597239450195260741798816977973811680281668485658724991893458755073656094957355173666759082255755638783718350651236166589823104642117108391261076172971433904984165967873907133863023885433231813510042903447632145081614624421533641824489191794836376724706613168881335264925927929124100026380412499137407180512155183647103017685612866105946493714453877408462249431779793063026375735520403518231319247998758075293112506634289968576004817377155600031159923848323268070476510161122710191319341293392990900305929775906279227012926105322884129955308133519667418157886058986599520521834020349731136307534790697584886125297484361446028460109293033613413186042088001050352309282142799613290166125861874189722484575388936484651482258285463621899580972651161422878728866736155949571701613598840940496140293273555316012149640183103008946525410312976777653437158893968709603145375930099767233578538084338113655260153196077782134623552899507199088924489191715016185394588051504415061791810530254806279045219726339518131690358094330025402468906184890372801780869562593601070027422049355720983394420098350412622615840754334971954370470598830828510714550646674686352379510401136072293474463300080467916006275863345182330177380204555881203665937396650280021752617117398344833246062454281012558370409587840185224169479595547580551821506203170678076085506320813289297900230468935024869458918565753682803400269504164204694002507171990572203641768052012846390372650160816366193171562152874667311055176590839174117481163068665741124618137966397476358221151483583655769844791223221185659115090437775602525477859080083761287489883167743270321194157252683773231311332757249216061195774071888940041084637911564102472617786216052676793114547701513291780237195432196163387808478325663935420889609213110760048814584308088139612421934354324673728866782295138647088144723277604432325468882795463072231503876060304700487090705960564741656918774995515745783536403736794867582620185544279395998485885399589195779504831981622582767516423231047451898935220778368362735680426191257158198145555020062082472763884545672712490918402541366538286307088405022959379899524670496340182152435603098723013850588365106963419275327357451524201375581621313520434648547886612126080060438364238957121939537171683506233270481604890953261483419250278320311188922517394683574292632213777136760547697783891866559323170720157347267707718454196673821133529414355565219313351231125644376892038145333123393784814278524126601726298731354950668282458266263743663421464824739014198770661731421689331397696253128732972274535333154390344935111812976359694083939347865973371651767012539037875504901914064614740232609107223488504569332919484999539282397313944085610607870691897028225648290196539695019458832708434819845838573832404048975679275029268993840467396069393628999722484390178910750694921126613109418354056691586188410236106555955792140367706086870432723763552597628112788971280748639982170501818894405240942477128596386635716132736564493477974716638175905378171536200639928232629206391403212253231675903604612582854947378017877100877891335355397880436224029346072151878253799252885010809118738617042073258847399268187339175226839996946833916444378473138757719460857973611852819454230374787945272505042676543831975042543265779941442684004027321569152296204234644068582794780849611206602610970485108436589642076842664442956681151182666525755614672333139682995024864170237782484066496403840576284576137723154383682305415645959041807087693930886926860408136223004498334808937573347458888695346805983835915999861794942153820948635108095909719610469313679524962928276632918274092429505798044838510599849535133383155981055718975120471417108586978353063775619322265643683777390667511572303916630941921823334007380404877771614875067811737988169159482162846564317757814909308345344605547056053869929305505317083769490208612497167828103284530271977853199144298445462317280047949998134234484282367436094710679267365273543087013559844884211459289533440060351121732981628467239556992882386092640305402580713981780735424343624621124139083650677500661284248887183492746625709482499215417693273991522092145527431828287997283711677655521375015576027918040279806372354567384016285912469521332692292945512447551321190248493437915716766234053466650434168247215989355662874289348776759054178401039177581300583164671683732606095870914731806582256169891323865761228814130842362583210559734457374335882185552754095867621714895975554123724841490968375749826972367778753181050929194322584297428136657618247295679977707158058978432458981909443325520573760622411268963196987007563596464951642101520038153096743626842165828072808604252049022552219413703474818765539260040777978517543365499015703353412629751327039990712482828267639309403013638340431191996683225448682047737749348485765230116855365034238215492195646504427945758307020107317260792104051745103943624491662763208974866764549645572372530928234399453112225239894877078444580580818521568956058612775202320133103177302193501254510424896253146687366516903429188477259766130361170754835936680493973642893792182614651973069070436719609136080278731682672077658565516645736294896142178470393434313301490173748600924850608938121768596840276889932820746159770854530134727516517706449748270268030539173134193019033583298533185667696443087511518818699598913091125339757476606730979030210709600309578739791284077406481987752688578225390465910056600071790044909936052938722394613537495465762540208519322058273492122380976151955542486360232335418474971914145729160269869898104642000457550845291602907062439393535504543075043614760958807516980952815114732692846408291473919620067022538085773809881839128993253007890994811049620581455510371095121837833109153879852960594359410444248955443946574373209836005351753478718383196140326142516294445989677120711022951351725830046089025848124380193591600448750304231453127279350346979447164518073854961346451560726315591046137105367208821982466446015815983465921510898394420971100748931231190728120973829662436796329162266097716687960404152558328952938851624570976001297084750603236143955075390729076055173138782870880660362102260003480483918826620193946188171256502206853780050693947667616453520133259595850188407373548580483004181013214922196843385797720356126617867167910936857858976043065673591560290126614308162389922133734264532653006052825058719541490375689139859581314088167370783102817220612083682743215797916071637989510842469648092319701855724893961148227936325922786255983897038785835304412108254598362951221672530272123187767142854145621102044534576675013324425331190029253837839565861476863545252764211683360912885981278750773642160613669908843032921813497889443002500281015894651957416034971905096246439844933335472006880877077258843452885359514113274865731288694751829400805868608889637799826280595249227254787189513343530043738602634862595764983636422403740281552264353031892322136525762902850196567544414867271982720712317829732943287153452547869494689760997121490227908485214036865872547184973735191520702616171902332361367743133359663360168834947749516665952424697381488131326886690325029230796075692643599710912478541808219053534384929937834864118316159202091419454133406980858848864693357331860542353049216749162594523992789868181536851872850333017143802099984879955398954706791515163238410946708553853341668839052494267781649625492868094895370957181293777132089909862191748017842502049028949770058026406277142865358211840197785707104080393439476863809260978934081427625544203613014762064693026900087930649370788584488368475489883401624813004209979109830796133247979676905835497303754464514047954045438578249141748393547861444095928972689501454453875108347544406315515974318813297499574908366486071994449740221715299816931225398088817690076403455220173471402122500251406966627801136187680382482627394962510210922416022127961447526843924966109457241905271892553358532135372728624263172673486238747832237319538311252069962296611891285170313595132476355729286080588564723808892296073500235627572218540806633224496510811274034700132874584152751651923656756903475851652452734226607576239105678821945945321125643236930883892008334228778828307948082371788849983081552267969774737500329389211152583705026029556536940937482409903866572226702483568630160277316288637193437685202227407248314000378467606704184038821133239559134445832386007320331420152672689921530221143688425852307610119036071285901588430140611214687289866113456410682651748942837906580832670806710369654850179277584205297065611028779693052077994331248501326039936928275374342475424625755190212457624838373943004419251296157744188722227579503060883812556105726168438083699686833674412391504658775590164902147518535983310345840018033712504850374135214092186281078823315995177433540834601096025164870340837060885550655825654269169323034107724600981625579055278230886851802679542436396741339338379449913345123693297930888205570279283153144170126998330641492775618613174319683427298388266016587333341089439703014180137929020195140286914951350824031250819601867661611814680506143087424093735167863139441827223157540865787690748517200758815798690831950211576335792708875245468632406537750907345018241990138447657081028801631564877560440194968247278829839986963199162667630907120457875186227071312742385301426803838706533151909852737814522053101334850901057016890874265787715636294146331123973536778756205475273971849441455418906542191421432596641234137836023944032829262129846908479196794031016501919135204218482267083376393834575314970147144602273170108257502961049968538015679323776313123478018880204609853563800896668753626454505521022527162757610474931443314123821835737594336110718390108266538745842542243326565408353034233548641167505552548724581006865542410342754797088418186835492585364345464409784367511223991740420566717846568281450487016329646996307691684131028366554456551176450382555042459733196408776275549775419761014185490466018217433258940675782074966553790447849088186127608311897010108384774891113806459993636941758558776382202192220899145824016325799965324547574787640941830637543596219427408632570052415983943387872521027143784903760556616045375109833701248021751992208665341519281963153971171036355700781667575524514650894455506320673252521295545563935083541698845925617741138705048109988568424792037140484509348528514610126912061882871409901307886334904846307356744611217718360236195470181141370172691868850221440510330643964776340683930430576802735958980264779959457745485906458898105214639745767616910489322975460512260594739901421440516286606539128165841090698036836935570828920158972861124329716280521169634595218630669140388281758835875953234483838532701211867421743963984601281651970962474514532603574618050913602458876180580271505871618399689868076150284149768794978564732225021315863903381187901448549541827003105845441503456663156433931960146913197877755325785814288968235369606868467791106967877560499057173927493248604002666022399895408007443087906331604937745382252847748255189885413533011226921187534362481614658571296763511955754256913403110637042833833509327204485396539070093595469888332870745955344974835970899659490618984371952974253110745540942519394917817316077301185874965622571413135506196111512207050428732956516233439063446790756282793619585699756578979239112568401623014658939988814306395731053476268859256053657758589272209726253810405523719247053590265839284679840543914314650056516264969777476029777929834183959349709654265257270459198003368737312346494915667248410734182877974008136566842377548845494726171251173376438447413035600445504891095147177460223505395098771606231301015613027747246625864188661178421155543129772463159827064222225593563744067324636605673529007797523574645883009350353419957103528784795071771814882965273024827533400105530453605878267720642815752714085348100578127595310643511653142096691023333856594759681849974808527511634637183843860272038674088506445888788948419562613115185999120240721509276152081986096884014486189114630757317850373570661153267922363602940198859380215996382896165764186384447937962229531976045090197208742961645949622232954675021548927210392391086072055850260378727980314029935737980420158983685656362646203900494915978508301461048588906341085626150027687854410421406841758005639233771101149536693351180291146232708453516898728660924551587305877711293876924137061729649945761389267106720333854265655049613337504583736184855558306331573461185156172891516161088935978360141960455595257305348482624202711238868342636953473989878144411875409564899284581026006249992981453248032964900971256559479370920959276255682623689832824330788425049273098340012858248071756030113566441068502757261949416790811719986356066793461911920758369082012804041203565331004874754630849236499740783262098903399750137917618257613906534894942121600942116020089470083662932759555618360808547290045058750947920413040934094681239154580038973466764884081077813037264541423505887761288794553991899701052692529857566790277757683206271129573173120819141420212432887182128205820204842875465739118316394866848860421758295721970857477762993504108181432676473302289874733892030668143432144975671637710102853396507239421534531945530519930473079658729285355317464307292827079980750270736711826487683208687118459401929536918270495064563578708867817435226913796669611150721344878787080146025086166064791245647102111162435130847415529305381279285830226406898316547579213610545788040426285742139942768777319292294677534858962762402078824944663645829316624836840540029373618555763150414376274938385025420801506909195671541704439327872401686123777078478453980328591827685469185816778608781359521440406826768758479540849187495084938878509977702643107126492650106019826393554186380614683685471894289156852958238781314345275824327668796126064543377630102766779645377558723748932253587794988957579395317693064199819374110643897856496644050704681819498160127644337895232535482887627491243468863851135375431525370892450530879926864538975292226368877081249845455068366784257936562589331740500378527718859136773114810366095279536273198301157419640309215411076300797880712521086810487806230738664931366715528380597874727954032692802659983083872875517048609985073949017139014104566731908977953053531814360113055051896438036847654481492162535958963021848250084468799950993439976039195482296576735401853957669590328525726220253474205984070306535696892602982940512104604768286549193075098100909162743794528027007704702076999234077794946766837379952150026717728461607453109276248649631358414453973149331303836376688881615695358618592113068422491438950472383454768079640403995155487112494896323015869390247085975553931872095322145860754663868321237296512823393054241681944231367922495762295473964346288331549024032913613295763167324587728018226249399105093546039007331984642811366068978275965776461666611130802105637446081637366673163131377660773388592841583507227833334090609157431932572128885470449884561995398225322307029399810402152174924902439763996055678295873993477481972339646167236682906466324700157439756354462973303498806267299190630783569117329097288950926166514610705427767652802096694211718918052494849834516712721626791617663491086445779675587178038408527695238395967206209064689985904746627372079987107035198512975279658124171174610482955448625610532420474962194126932095798742290931432752902052683924881048940014828685150798777933065392483594653567920890632333614096536339833496953139292250526272293175519020940408087056041937510258639558291512565964424869389362058596781150852506276753011480465385650812442371822014159676823355333962954117895704749642298465675735426934162642655847715315822008787761506769336726779350214782476531422041568042096211269402055070599837446100572878620051159408108433605296329236782201938045564957080492101556740813843609526005663564714293600706326972086723452913464910824407959031226674623761199124159081103008269501501392252321586137013828744948005819891661658239277968852917711854274382422170828505609729248676732644615047033859777946366535030024787579215345650806437609733621402245776287196361925935100482157045987981414695197573717439901737015231787078257504495544643344061095949858233783547449756120568272445505460086545069215025754888120422720288107985134431616773123203461873868432279761157138316259021164913898416531651715683059913735641533453790889125398565289305530317281001126839739796922257118932592568703544613279903112709700387194074596250837147972460139735724039722000981941654174883679351411757904342236096705072695484315038647364933319867109352938564859689053876329855547181055470567546444769692347344574637301996652218238125167652217056743237666451364243684058590685440807267722679746407042952207706070895292268780129989908697435951700741313478764544401632426407563354172692784148079071826884294233803952511785284509291384547078236242522121235341026919898246994101694903954366428621943620674291769738599427864233963542576174993753534722206304236224899755347759850292702044997448793101456108858773829189518007379193944034325299866014059782533629660834476566814450337261004574538113016547873802848735055978163368065579471840688757441482749086402978987470555609804715073733220247070245160311884493037892822470993826111788362068307109880159960522632408759218325769048010188412858862463042326383030327733044974428817010400874313181995324719352967334083990338596216954691374416914299451644201746776671532447909304298025448682042749183907196166195353047445257227958866414397612335437425469347053740364972110670972391014747851455382669189527136121360141282923908594247121671823295697208808904463571259419846709514431001253554448072687643242810104392008739579406266311001690245752753492077399098580034349182347807855054400006172372862784380893324614476927603538775814533679459583531904274441607293850092712420123278627458825074228243073805980234022836858401767286599493281633916303628173236745099344123685303210281333475668492668819442124563615177088657457133777749953685199749678873197744728103685779329988839765986581747820586985902556458035709189004657460575068957548102018232552847395023793197733219272157837481523843763772467466168294223618607050820767436900602352224922734739847371563079471305198754145102377608903779873543004797587406941352827644901654493441070704988692537622385482615040599242037420632713805625005204174283446338376617735226719477666685381982391923845957056392203579728731869716467902110407088705833906023487187286880831780785687551098380103527159293729262529799423111588373837104348151877315847856827047958071842746420168767668549916328313678400729845933860811025485188315127271199454215538008747751696841736484135302207064411026536651409008792547722482184627299383868336440206805274186300232003706162868496875693235819609691887063241100595814583745235122456128953777510875364989063746969503555001278112860831328783427391084095503652443210097930172545877189583107147161858039163719511641257590300598377210129209733815950244844998757567466398559155771550197428965354584610266564592387752491693997578659571270901766756202943374637293481718880435825250508651453621070905855241097665453525310236958346728675692877449604241056643971039189160011986604853015407059261742202870594669773190283207173611934595033358546494620315449963603455123431603543730484727295085085823654507515656892730589656336412544190421904171380535259973152994821401763802645007969913461414582033210027735741463492487041374746472496026875794309585504207525129608588353449301532353935247440273671258426006695116248210593216242655492960967321752998253055944204906503892603536875688432671309604621135830771894967868462471879216955653597404377262868350497320138995428932937680568502361823805341487435979953656142314816508635817393142094934164832045709947162588548848932346440910417331308006274032119432901678575680908345871012117192416891596374492106357083738324481188705500567823124557461811072613331882145841618103066526448359796990644127920717287128723750965838612930486276803361459347886068089785638418040683162732231644589299556061908082985980959247170367985302066885407446283474093494757179979014217433172749472610457370262820348434780249473663106823544639579361473538432785259734349538051782933080291937713026359579969869459777866601286835744887107228720912790348250221173248225695510232765468753197629489196268580040687911465306562731722775815817615124217183312003852503246945981275626367532807996632697937969787611336250218261629738534142812386822019608933917714064497678266372932095009842207076219639830524373310639023683786759377131338485240412216022720685085088282547666765355404017501212891567360542957269548825757324704688135061539451429220733269963474660523525501084386607078620560397564302417627877285844048410970154379060682040967910529202877853211104440282455322140574201117585258899434122383731813351388835482646244891413755344809370308906043634635201653502395323019809738370218800256838498625547306038090576432231750327528056663384274498693801427006749427666442785210704667471258452387831222658751861637160956638385276665118255275549607719894673872148522271753768809764060937767860435985361726703100778782285672089763924716938652604867271297362282627326943412099544002808417635145057902600838794137039082196069409257319259720350801399974927389044019837697016369833107496508403384777474122206222948587659223592899634594775966889069183921910746338352532017572766134906496452219727205181039247348805752072597190587773395589525225511431687596505880437233716882171722211991390422741297361599767773249311250481843971263875793622838663215244341738853083156068019226896427579060143331112582745096449566696543286565860026263462534524741775718977808171890293976096476045189141877160634483548740525412081942423761124957216481407763925925955314334235077781464226480982789717995689687306999580519516383007466835282495405505740309349263015794149211076747770150913481863775385316678386834838126645871426865889254077289221958621747675161732726436759435980946738096056922584725652210431578210870649387723911128873351732216513116978999411950694870673017800394313278275974094290706632774447533553801896313495687367304712648428831329761866928869809659282751170149935476165867518298660314240136222971485016032652251616018417962725774007726069231033043543449130923753107674407815752641879282707243347876436366164890191900935060044829337137304931637783331499246244597039116606901350695671670652473752173084307596208664892921006645823641416955464230175253036958768877900162074595451105489723721063507611006791117350693850821418032017409460937840301430544540655606397801733291510226624125473845676565462230584534563949969689233211453665922682459828083756633110280667681551523572551236747020994340475954856929357374309721029700416993507577506098018380506323285000032609653477945134235933928543151210603259566773638484464814388704666968344605724897147296036650080252738040079287949870993426418698512091790585573179493265033764592235215166528744725249759824662892369494307036238746431497470547531695752631388386347318194543129133331643141007149875572921345264425653981398472880829123916644259327786234334103152159315287147238886458472608196542853533900306227986721961500798982267847160716743309139943143052789625754602615770748403755254388987860712662338704611808854881322171465550894876064716482910412032471847682932634118201037656493414490464499608256671089095163226493068907815579332241467289355082692810218722159473856649579865643755783552840972001306732341061877040082209345453480528429004888901288701315153102088004263421417909902533524033429749954986947157697246938207771300162644081668475911585735771695027656696604793564002405883231802220576075352845929968804555412671621902585392215298864511359738676880489782950857400469834741433967130604469223456459727393645971429666004376412584944552564358501694614065105582278207305346826508488311278548186362039335964968646393606465768789342281318263715370447800461338611286682093181852663039698575566505298242189593386022483760417583468741952601269787610493094384509559345198610271411338000137033006923527774895206161963556311535342082643579125348310539762201273639342914555719456843995024627182829583917573065587551588387571536659559266946185851551839420672516534251396974313057396936796199861006594901174798751664725193006626305197640656123721146450577521426845401025770132986859908828447947608841309981565534176317370367140737934193718615241240202807197330657914917962132922262355479264378164525688847538929255819495948926838599275472341037086813515881080795171514074826790221316464973186335835793646877543589679410000545277409492149668852991756416910043152452024068502336178235259265569977942814745052935534528614551642872936144148012837729025422176970382987384766616745155577333897096782536953732508523513661225478434791234998835318961208945798779015809312453065746390618227373724318247079425102965407553816445568106247951261482323293631609361791423300157438942631677946998491707204338326069491538512992944194378973348211033725289471285076833255307340299368643466530555069514896461541786042019651998459831513970088509613796518560912041746583573835113325782586032197170405717114130234084111324295424978527033353007368738557547226875181032545277519200221753218514968867116578643098221295516653523336589380687844622026944156922949374124549116930309808601447956705748551480309737166212323916517779972356676593700336101864452860547212347810177705241947016035773653579751914850195741849960191766042758912880418453334026272727686957455039955108307020940261496656676949108075818826120821953659770385897295998247244864798827292784098082141138395666056680204058021060077858777150798159182904122761847547740627720826302094333130613197011852724654119828539756421708971380651677371495315772962177706095827047867347518297564770052054727060196809529597619754103741203894241587066389188774200573417092702435542388420521006715272328883868127396684040348705982765002512379176927031415683305440055275606786264550419206723240168869486372311070439667399728600118573766949346086042858962798083028991840730913670927725647687722131155382911706940392788212847349588414179017460642972147506057951677454989910549830306983159964254748835404010457465587197158252408619873734078802851300226353083894297430735885548603249081631958265204683829905229312107454839560519895488340340471341802740091943272778762951990809056873966076111427499162237244551783238915276198054688172097510486599540970473400514722203591889543233871311970962435359669939751148805349581775199120915612259379780799832403176943217925651246171041417028843307623966998382847650998407789632342447107260987429819074022515766543115798037348146263227458098103578477494097170691453273892850069163020296792501987859671992024451204146952015851574993908642103666845526229235258389714158716427975829208746663187761862113704652281829171508037259427407562391196029084324430909759080770171453132312375910235390182863983712342021541337035458328239894321942655049608858265237929055728626124264020198627195535541054292321004185962930112349813601141425878484046800313524020555700029302233372821894420713849833620461636348535542592341726168263110525632023901435847063383926725792890935563506444387909089130976001751937369400301542451742377455054248705521339953399206296341256267085947357427543213944912315438411986377568627358030976893080609063396962699547780583662523739293444975017334618689843445843018608932771082547358950545953576714357899541663502402186400107426912568441027636099348202646061087841196187558128609970028154108576161425280330717039973734487155864960935366108792999246496619388170385439967862858928026834336796021921278025505437202538387731448706512010489521653645889557218981443547230141059253869802678240006450940335007801794501885047387332369740133846028853492098729860596940062140514028598842851612306752021577101368679342574656497998200348340179826417959106297210593012886207096117148003468548100539765084350606807179561247838951465829348809307302990408075659503077203278739061505236813667396356521057026774738705579733188834722499022196865002317408096366182397364073532841387268611634950927774538317273999783619933741887131068208972944955388633995930503185841573285826019673876116076390694544572950568964196456899636276455151041346642384381723176901800121253258227294866771509573503158448005197732161535361466263788563735253568193662784973285229558041912153255655381485356292182090624740106903623585890464952636864420847959941980572875362041765020122986675495234927624610475450095605210770886294647306296761147814382857829948414998378013369305353175588204295836501385629830751313541691801397147385387721382811721134624403292114917099362897506102015350443482880889954237234963715966918220833081468149785111610791518481930445820472732680943411579620958890203326944727961912748087662977545341231505743214651667204639815062147438458919196008142086646381264183632153985398248870705279853553740452202886942284779324485666382512494741195049498099038801244983193556193236470282126412563916548614337984403903094250265705709942776232219867816030911139177935538925368632963222305598959851175923655684652869764411319807864541141095474087405209666382640642751490075336703233167985404983376690336059856818919444514019563190712960943073406049729879943251853301126297008334434989444991855074104851327663343960870236653722413428628223687632097691390776295236215506112858511578841909308234095454291024337263772841894511588101153889873305811363404384547306687119708704838799099522441907813050706238065284180397069926799221000840596686957749233716222784024236774322771472403148893428466903853951938185666407967565286435013056023385351032391895450195305808517309652312415584647785074941672413713518519482168794420511846435605444167493570623173772584486998146191307764696554893205607334720770484433088150255795774458567108933897646671571363168550880344735668596491632890362575381438644383395544119103451405235111895509804126449044075124913456227089861345705894452609560246947649597592321255988345035834257647321766436458760013392093652644890735701764086084170527851253265864834215087434450108928968951197012137511871702039978042017806278265808860094580178215941193960225287527939608288992693014164130152608892296783950979291738845936986441375730789787846927814252707306018199769559000845238014948958909113989810216089377745672450992198279326866051065705801311830079095025443464956795238194582963953483636946497170578158673562964498856608553673133800530608321198052360179374263341442883079244898417952180371562214111647291783870080706784543310002813755142820165599638246735568994417864471454578596659188049399902503367296312149302796311041911259752408470361817411091281369980098091229818307290845688855837856787669179266090863952077897728167347396131799531167718016513875163153938490062270239524129990811767247688873482981308035587668635798882994611646526984708712627311572252667228273212192018323655844345421274714160024212493589213470722538738909363758869904862302406985008648011203883289858647498463578337100485448928376374810501074553727790830553635647426798084456027447882022451704351123516160343082005383244556616270242581795255241222179462106086538287224556410158906506993848972335641600745307666296272888696567246019006033183040602639048174550828767380494318805879632154613522280120821701653945673832482856231774595576323444399259186132663991298889852305822658112956163338324963377560404342707000383967618190980070634804111556087169502615282317089114455398670096929813796312039008460920601399077866482123570299417467603514029190414984812313684919125911045131311527710035801602749349879792296637619918655529523731413312445260551930792545610957751105638119006688690392436343654093284794011073096032557943486823161045384242425066126123379463202410104827470604667400939906459141728107969541243297995665276721523059615886307496359427703069889802292057846125543107462368778018029148175894653240347236345172901837769050364049549553188577138029060713100993314400060243386496534064954777040818966050203928556157113949446083499022701560675796306466654845596618269863049759221906010548732169292134434635865923531139338255432222108691316896041094180856783961986832346580498146700477756374654453877927569960737812796238715411626689422581372384271930366001546863312798972107599241108168306548119799140900666594115668936757125162369697012959639922159757064069695491917454375579202200771875597484323923053489616052024733309234441503313320390585620227212968700417863783672655632628648424705370316777891918564068524451100571212395027893823254126657247506984730165563876111070625829877153248816276322658937038518568617586103345969987726135342637541809187101925523453137151727566896497810996212090759564990748780570989447287932916058508446160272083580856809259729127292920386373942454157175608828291731329697110906500817433927579832522959116241636451143470774748637239311671141542881593787173294240224909124061103425298664682106422555667003135668545783072923711486171177422619887684831934768999803992481825379983752982813490347072806526964200893570170024276508456060486559569460807734665731427893359113106195258387683277796646315888207102996247251210550983336440025200081126687643622840238134728483860255746233832952912491385781622169020315093140474445264179517470874363736298069610755333314806172971443561919706790617936022718535888846310708530254575468118500319062413902238851404842929681376186063976158362345339170242144338141118013774762395845916707422069445579526817444851031379637202749463309990383877244394228924994986661937675087591926666001068900523555290305736586843581356416236724091035581999930295402166504037683205726166012435822046427538502948708575901199633901937496279038318786696576767337339565520756214039299949297145337459495738425484230084792823393634860354707636340927783350693441748186404084175255369129374163810620956612591572527727060256125126971208953440714361825036326814516702904311656659152337307263047653475820158231782340095919904505234771270407371528189725659717970002379321839173008937051790220268932373393784222934795230208173102078499584117806267765843645111589361328586160138068568855643637891748624372517847512086033967496761338448142066664582850498770983510034809132691660992055772984216845479551113573128954063403524474787940459366745634838651140279508072553589941101702100132968886893556279128560149574230254112379908173615311773144591108799331829987164917661439695598969855823077999412503814256628808869923821585182063744573198704635925341470163840868237930994615624056281418700062905131282076032807145092077624053815841908919250284934386089379440288237177784050376942827298205322403889003294501111524220806949483564948248970089408216485535743470713210895382839981605375240891651830651678859924699937767994143932729750258816177963162218868409539807170086353591660217146467755880554899198642387635949075126341761639405688111091619117624010219841276920665301322464893678131417878742659358017233478541241142020753303680454793707534352430540936421656580153212486559436727319513037877313658738187729429367241166923819795762047130873610947437858051523339683943956532479635520940713886557974546331325408513897414518712276431658675708240643117861174766790828894418022649884924741958260523645743421912093466267938019103919025642596130809102004805167789209101864452831412200147436255895221951813714182068963272107576115582153291382968431059537682915634381419355939706350138746717290610019043298826955753230638208516593562800924607239471545636429281138270202911039061476335054453158857965122119869891868766475294771842791083020346020533178906603157679673258260957407740478700100605255880870238552247817770122019864994730474275665486450681575580703360969497661903637129371458838766408542660643419326817338587580029517222601150253950079321939481454976549570521178482265294818902535429591460199610409792741076522779219482476737032529504850476490240241760033906811565049110444283844091429171575478988579110237595440190215944730946788586126651604801635505601155537624263073038669942523770668472739102968650537740934454501193518420815224173297429899779250979322706030206222219786721720851516950950954788776114355846644379036192284648307462212885807787135605522082507256039274496668293485786602131638020522357947162532972313066173851230918426044361457213579537276787206831868776800726159790244766938296531057878466371245949739238198430723535858903110279247478788372180845830502436374350767721084896124821644903170653493821326618576959677701027732423535112101287537342532160134594596913127443520461505900054333851719300143546561877176641740970153912385188927115849898910345554175932539027927790336727699346046258266525115686196842291708304569239280946778252765524474485844367738047234492896313245768211649871976250708916803996062989437706407585893246073423215325801346059897956833962055078870631981963384952583442751795689141533272421072227846784437035154362971833631714286089539616831098698295897370889291999760830340503882316618305736322916529717527758503459635653529180308538944148232797930493689421680142708996084672153590152135160116491051149992801226476641362053901738937395674662644471130325428924197616364529824309226372921281308552259413436556977938469467295707155352268306956387323933891341789544350649753792008875190686065106514331055397224465348529419314834096984524547204693074619263577916097996682798709550170041352546106701341345204925103214437234691204487999203418367099669632089124065745350702416751560421091933691678128488569345756433494637841464124238437296400749527448414294089827525338166401556894138163428701145168682948888064216837819827247018278925433336634527725190946327169471853006223263138393146381352686264161050200523819667517177341659103644173480054664814029851684108171168807541197384109691942713306280532142177079618433578544343555917717340719017702292944089502211860345072556393420138518561712160718679611158572762022101219534842465252893564742241095517986358879046432732012748366524509958479517688285067813449965532031869468680273260987164904369544535061276997067005074042413912844456315340056323711423533178646988116807942637326722056493232297101113389200849130548121497382517683801926921709588766910226529419707625889815537549562499622784306333177778858367805434819305566705505467124595364660067451946389761596309323860966765697674998076462283029371717678189665629370187225475316866997400912706903653892570210344997338810884770569964784380165192659375097158671173722656952238522702292727154412674057505430339072754148533494291618694595288583914107349748512256445963312815141762271045307339964209618918183371298139346533834505631201765696081887162684741922346551084434362113270237170105517801575758049994665203347952897816927574132824876143401994722700023921352426388298707915269848993943347796198103341854656435737822317692234926708919513075427096686308768320066373572617610653102444352454324832422896040908345649837550138202828051301048769065403380049863191650792087951308105099933806516152388603099077050127588594377974924303612081540476078653179264142221355823533429584094327716338878163912256848657036157914275485862577785183402181523448404889680592599052939989390183769544836579890927578695568104191179000933713406127630070842151826954337682530005069306513804076529468223140483156865179857199445338078763406273446309419595756391906845687779359549951098407249259784614718356978873852290034219205235098768011757096621746307139511700801200785829689655237907392428909019334954268502699244195526018335819777991080411126239580345553368199319099024096589764743340976750685738586844564277278036620206752678970600469407160630786038769882984317698446515485766975847169225189798081991300990452198281265563316784990535812641118597817244886859405107140637472506323815962428285151479324199982627907661643604012578566613473002097374533462980865538700932390475483218341257011382198690948932249262187752189523038731642127925673735334844967033717724287211590955471008171003406756369518100294879885922947802085760807135298332510915185640961585795601243092265318554171972064649802470620549341634453018736708530968196835808604977497071919150617956083398513145614480880871890747674834476277189510961156900401728336470291033442769383060877464973618851049218343485987641255120506149205270356711895478015131155670697788521401334691207575842507766279965563226388587207993025818020634664089302420378960189439123009270998828179933986096289140866871779060118226010533809129583561213468055497085313992925879633753017632083598412808982653054853694816505605475554906260742840951985599416942112803908838911833272762850025727050052081939474562790611695128806028388383036602344323149081893148160536701520582858069974538248986378546425620768185521168714698920850020021605004682897324983214249555122494356477343080792254649953963375960901058247068544780162715260989688736088277963103374822081651443131153796575766672496217617706429564330474239627053571977030919586482558150799439267986195499766159958838336712277215196009596495374132746264330072757588647817168967157669084901677544857562914715807875401361219258366716454869179981009297921242561709677095280287167488445615264009844913219287668861890567354896579487126744061473499791132749774308282980402455912942788144165615028482396368885491373720355579329606415155077984491413036214689220818388375771577939624188689556729118203949294926322520749335647696145696856754811846938446196289799915628822744524879889079594663956132366836187166347403654820302108190393359629591585731092250182431815899168082564337201470150182253826199442903015185540925913144886522051234378883367074634540244794468072782376806574504354219345914412595478757460203828738032793072257105488307466884307983894284716050421455613830238800765008852041927149228316979038205292229622652551525687921297233365089342400091514610332173281270872597244845253288317979693244066082926998403009429326055435886042791817812785691654887842863158558859232556530258482865818711862190193086721832504266137066898745910415924312373877930393261138321583565319166785976043251828991119768747074111583234203789936633443671588467329667051246140770080025688142159320776137642057540072333525127756558072081556936389185610583260169417959942063103423931757434729229773367964177495983843734043681337056530783902586213797648771104703300232886497679735322636755724237963748853176079175194682325171381366883268465246089639465433228600648432207809322425968574330406025281337039897227818338857138223260832229289023600601553503425120658123316731621266607535172200012237579076644910164945985834088824635108191108535093438425431830854237664802547952221012229857295506520892114814274302966859321343437386995373517475396565488181351381323917746974033183017036471935617850886527486999666783683706804705303222946162333713662131236492973545005069568105657969125929801687411599443091323708855197048874121773481970415274861213772207927878566460159137306950631611419816015558631852484503898088090534963336582329755333228529008996704216354886466827270459505192499451163728214659039253173328051456056193059973983672109977516505683325383050839785149643908793864555277226601733756523870738088990214365773666335398733959436843649525139921706894170063491341091462673014281207330981157732463090679102082155341875829440548964557637613793217357847944607987002352464391602150609539487278396397675012085003527369155223348191535973773656842013131940393616742709197219817293946755727787509146334387546225871469806947658777851059626559903958717256058246337792174339695279530476609442358438021667222681288312854913483846487588398378400530319581582962135222731101508456882544615379056463132619190206882793346713279615489636973309568334125809106997687103676795952753389431072537026421292400989066202535563547083926431391861985908474341824985940144405589703255046265856009237699368909840589832341154190841087948767635129150291019498811095092592816676494758802485173446658979495515077295347553379542332977862678788793414531529246948986462428401595776876170428685799204380105203786198510646506266109442105510331181894586182595401618200456594694126832400624590529662091292173195492274220084194614807760721701070679204555367735661331168060056294999549943383851030944441786617045643603176725433828781620757258100606018001059633476306916493342077877230893701283954228026369239147042176095781723605700965100823264235523743428385145675147254632771020133835672143144874730230653062876244473843792558132145120149124232496104797902877463789147076483534678097116867832082102254982547119511414762095572765136115695225621038500710469972549926811222604168123348724910912171892095679898951001798910634647018551565722793483111227824472911631013445835778779719857534113915604015824068773109120270088331467341971701521769671011768654336989394968960316696798495390988801612383514503863616232322177471137957899126805007989214203369994360258684759917212394560357447617238946207950302553164672694622706467334653623663320816691767482247976784312333227054316015586549474417698113253133836910506353690886841635825353662486059630402033401757118682306996501372581990326673695916890200564074554861665748395514150600973199741925473269191397503118973431303696564742885180697377194507507720264070005792283775232267301691827492048126499332454837717662080944256159651563666636861931997916630067670893964582123351837973698135445173837925444565807618868576133366547565291522360324689670914143424467201777391204123706377727650563842893786068482382346932863384905054413225994482977390438322929561236546603977815080071245077950117307085301784596078576269494959097934776956653009707721768027694982955205696010434311040188522581469357494908656788470297281411513519228313245679299073311748820138676490010030818931962966544852569249039292342566973125646974529898367291256473083504352675601795507269301403503694402662213587624834699654128719587714269481870057761367748710278431083891065349879154125241191705666474858003798909863034214952852435697077498416996724386025048895277471280932608529555244793496702875948064447049209464405360834160541189351778448478741154289370178197642515915449359012507849403347386579642503033711073320618591168063369319584901033340263775683374786116672755449806303465652340184397195575922489092687176106517399630835399096874378162869841218048119174966101296063001139733629469942314409405380408406144192596791905529709687187057204532673497057024366771331412198158077052314528267754720604243430082331584841596275074363055921272806927601954347060104558849048813481655802061968916744715820672469467154063463647826012992868184574785953770673003803427374667266799850898945162774111401049228363300048099806955965601033420895044095653010638044536389630835918027792872996536805645580837747293537713067511166677175648924521286347511874524453707876820204029183726144194769111553668084922795485901620038607530444730593869208608867074128825132012253709240649741478289999087004979887251900782586045459769274578421789145103771120655035586099366757061267677364784034005691391702896715837401696976605543309368700427800910142754724480447676209517274086129117762205129991531509936458055871529662625180837358555760294795705982769035049514157657844157496856201562164192189593165087463968783601093400870583989203463847733033670093829606287313584375452258328950506563735218452732151107301398511964505359188018371680275958109996850532828436393220533616922160046664131129023211832654791617329146036875563264434782472266748713593853246432360211650231808756964172012673289015435444177702703092918188864067177145221591502292501099159140550135299498350661334450414415462739839403464643596944206988808216184355170206945169599025619458870916225472607799025607443863870922926375931645104728829874648637503483340069617450456125214180006513012025756803661227879048726768703044367888124326923307383622504784787840889022536752081275652326396806599868581446731036803066223357935135790264352776183927926150071513757703104265375506615705571616439397668894410517588534217386323547225907680116768329596757244791422897315189611537550709862963050228280796605999854682864660592776445827038074174386391784003712631837233735160050693241266278414241637134845632319598376548501262132795933896272778873835374557553582415771098428628951655208077952135113795091250033414585880233025494386685334248884817178345959504018050087132765410101019563522962794162214994629406471879670158680389416824655478425619910500252097147357103862050088663100203661371173244684028024544794724906574160752070479540385725889115458536324397289045572403891471729335583629398147001681482807597714076128920831868395299921409507863480791585657100150394559998021118449916434805396100499216006567279124699115474319495276385681580711901417589041754361512138091973882337313879715061723842098921056586583103275086741040273915472540148637749629853530558057627856482600486063643729669625525814664879618130221303368034979844032467851781466164142305987278515953208643580342232227268345745878996962107687785485071153538299000727351623365451417046019871070064126284375839995655243512806449211155133561822475411163393777636869379473064634937240335786196721501082678171412822290434779576560965136428787050846777787474057872998617769809659106597078620129555383465387984615246578953199207400619280906571611084336863256937969522158271213177166992432003888275945453854443204001684742090912687208699350353086212787138340361907571606292431579919786384262489334645301476259998597921908660806870457875682536298651725402466264756177501147500588866994401899658238245970142844119773384642646071328903067659096543006543850381858451201267143092046174230377347780172240350967944936644327360770190768523657364363194741669533966269755046635773972106278937815087611312527484740195597986440783082875631401347570069861913849965869908126244017147431904193083207647903967301852720654692641901111794120099809400670266286290576221120349063721661127667401601672446642054752246173972939621055823606638353414391474547640321295992600743199753744084017840761028588900087862619622050967106985760881330551406228451108058078717468105848488573885897890006218421995519917780161988839419766956201986215202615844090033877347224195607111717565038178536811979987219611356407062052243173263180389278046402600280195070337455894280184225249593173184504920940087125853973642171635649745702142581630179069097180353543100237092125965259253126497101085239781873171977487594180679447821167615809270434083675228375987675088879565434267445411148825783256889100928159298317704126431543109621942027440865803691808275503495453516140960344701162740888379773599685358554424334873137198135815387041914795981782945922493549071292822682358259505766746262116615280455755979371815189270739182074225936200100357805826403142895749157083570407607565437994102988348417127997046049174665885050212712520354016929009012840470787638568574970556968272034488297780388812271982409713883178911733520770580578754916727851225719243569619587473194626545699912984343962809517732915495803616036913598248940103549229643621240817634829179835466898890483248968951980562165808158238968851855875559333866551139160243725427913311165726578384298198683299882761292047200805933160820365493487942449615677590869545114172139988728572525803220202418070896610486362592857549785876535724776619682862662703498020672062822290772132915776495213304594215420152613716555072036870376068008661048593637204563848536721276912979836317649427146226303529255150209015201304519600701572151229254939992734396056482235214892181711008077050298100377518108883228091201398436028184221518139702588153468959745820210378255716160673900391490022602788993187576508119207646121488306020412128956352376294558375373107020202012954485105816223553147136245294689461728126696493973692590741227469332393919353389809031771896864537443820909427281010858690001802300377884222460026949067741899571390582561751148815905968610830387566569258741054071032204431217413751868314343926149585256550350812948523750111104439452745730665921916330005413255157982398155603241151594025515236176970847439997463404458046825061065342818011023470206965410977159433878613495943496342261595847247284146107872972694609396646044120126837303534747051899535698895083872355060431558302611849772990705892548212175163896697678807373034157097857087350535911131838921831860379815447136495636969545379955736846231921723363373098953305009835521662653487991504953410486449919992027979673066729388592020815981187955601076963530688140271767523102503027699588532268834631970910036897828161969906116280707605182027302995947211070424817239973160759294567456997689354657234998609837581579950310152598101857515174936744276224188462834638111980625933267031933727462460513511859737772817796987514059994443623670432904336285285871808926584822049761424974741258885245277110184875306464590634456441454210473048227363131291505346646707253995735415023744718639886960312617965613916969034697816421367986394293805731870549589756434708248535510209630955918129147887206873442411646537971633394364182342248136966858069569634614176202069849573533066505325348943343211952180802902606149149125364387979822571401279608918410804562648242862184062053164597424476547154778960048180050546413079029922777469643074611817146228766002271906716880949512209741245688763001755513319007457234125024653056873088781373021457089863579409862591083793739303112469828492313418728749288873380634662132414878675447941712907793066160298146503682465296880546019670676809543554837647978433717201604038000188496274678845963710245032926417292940933214688545965217963174394090763423009464305522537070368380110624612872051505409295747090381857274798869687913921942894997710457817635703723106365511399587724219043170777048810524344856054848535483050092014819299118815399607143921976427494181837809782906674658477827110659960095716600955392857745133189923455001217190384909673991926790320289231845724092817188606542902617813882372842405522408876480898556195336822497698544540474244643769509641153615502662797194049143405992994865806322608474521121631174784580391728773486341809803607794657285183123509072819132752368609965125975907145488844030517397443276515007753351302981606545850217017509570697290255807437985628160096634237126169038049250970712832913146174371823343366509814466061653167948802141023053132059416233313745414735871325387669013461376458555049914413715236006639760047033171155189754396545347893489467071361368744924216861111478014211269377906180127879635755027779421250676611552239470028540564939360484649144824427183588182008061923219358357608609285441443850304127867334977988563328630337463557361906681894713890551000367463631719202388731382141850778885980363353097862898808560239929302413862937293176112477702868764645579790052600233873376518024302888411350203499250325629306330501000248931185947437034265246359323926848746897319210143306684487282869405813479042938512998442652929273301553401406819301587816432899851500075776914907827849075094045166668569774174353003271278656646412470846639945743218524359044307849075700392634265274428461630336065065969741098057509934186810015158423785493641363571937401418188670922943750086001283623486503328606093230839448471667372296402427480381272058529020609974585625387037198436322567138563839722131263881090166000270979846801980462256751770639313648154113340731892860160591516512292002713516788590594527369167910633403065929622000771012972562589805753618558394430975970096229009659156224596585293320159020251777077022219323231646826617689343017499917772095323200121369513869677942890057251563587571310159051275654819144098442741845918931040244332155914850519675834540525252246318316438320313745514508727518979994200245242623107051214462940692267680658554159866193083142029823398505950916384014170982705795307230806788971335477866332226288266391973616812706270666661003149475686585155476143905510553574144446606569183383663101925865566362601135672819584984461656139279944297811455938079896337536258107142647459580689258890214102190577103522811918840604269394184960565726307997410234074044538418134686747544714283139270113587161401240213265946824826167531513036165610624814843943393392978360073342696694050561907129812795325321928462048998898523243750148213407154109766519167872250595002583475047495078625915844449817902949760636238324437571812182152206011782565355779897518764027917795450404674021313015149292380087695714811587450583811451269280758270845457875036034384832557924220617533337372802392931879966780721483390659809259291870372621508067104471052779162251393807621165338632943237025060835391967660708819056921557297066804384329235629226168762730910703319931184558202692497717738521629877294978071587896183651841245824119882620667696545697499921694657795816770630975253897149136010876288315799577903337802570333548315555632453386283554282172940601906446482727320174099989098871546278799724795655603536154959880343684475473396718773904837369853319676295634281215171622418940424837027769787467736492042373593982167782464635607830794190905503752153998913141499531910760139087262484548538708133735983915314071513689198665950442101751533307166680666769592127147396024682761678298269438052693649064488296749207833264699210171202034267765845046061396784490256083764639847103948715589489164011670411276145201680591252246505669247246978714692703315474259636702487240147146570124024814830008469517935135015741879002734741928568536366397966180498641989541316981266532041698935004096576149406637950571183106279612337580374385541645354435495982719243275920049445205529705204992353053443869361483119782923547706642258033212822682980128366396126474345274875806080425748062001483753288603853551096758279418520043694017054852925126120664023176982839346775138010914614510034554465842432485104259282514642389492736743595329229329277095279182465566935244332559477339809089521132493484603012118302781482071421735699158045132920367580384815655988582748773638928448531409181814304414744087290851512894389079140429340705834410035361846328314411150892312835563333975860837387827383503747666316143284207517155198908876839758042581440054810384840531921765534894015078341158499807257880328715965562820061769631044928359553940424933769971859433805950411666906296326597766126769724172446428640966039710741376702585802920431311066821051883442178965464978235278423770945254462015775708551281281364830622240930539908511726834199727056089874107345013625263768328122883633053460315981582759959700578183854031065755590421268891842999198395485963545328040500387220951029565037434990502056653512276960880193071356445400432705718920435055064298347703361348021464977999629390786232978709355342808002179036790577109073595279554739423557143534698731041604171416161331163069617108034140387393107475539429981846956995581688533572457823738984425199780840757752109773374146086002336010417411650049532416256677735296253086078351040601869222190808572611256212932270593198200293011037133951667582668207175643594676667880387081597980523482780897362157397128864576777605100771018204891833485703754390328324730295480676477409447554881007237817771296345420525447646842340443487641039363226324132450836541039900420445248654576607125110431417803818760113659014599156760858301977421034104516144013896009341836075621782973036809856597009848697912873323838274138263573541233055107354629330864889473675968651893299077348365919269156749231570773998852808381355611654595634190980507443640626329225043394843464411000658769193972342340024022932909909669539738669022659207841848318373872933894443713079383916863276133476404883000786499934667601231773552629514007435597118035567794999280114557564345499853203411162491772597834359729993909962659350768955345836107107987169982938441928793669883627316849975791643427899856599708344723111841788691455656024311687974385321026606943209980430520227765551588282653823660725849573114315082709354937193259735347414781968951740514249909964615213172677515140186986949160085756151953315770652990527692931992319050703838800387654578317996540809587927543379479327545279756498116468194015873171650997649315689823564803980528713382937309262362958092679043072263960414808567968182082742791267169439834354478706739407329857351320593184954155470631748427647999725825212861301289373006853096034950751412681718758191496117975989007203136463957904012530004932322016317932316263493066396153897265872099385489351468845897997226895678137220824339155441577572912584608180993775692857994977955413202292722728032467649531265815893247242062506114629117005369759772919028117637864760873479395697107853215362123052358264553045659859233465937863648995403658168824618185193672786799981180767024159424672855402999604943411565590126637293939966174011879235105435022380494268967236165588761638552492691897198539651657660756448859601357217519913042653258001212062977183595537323247784834232940135290841902001946938213864189380077288266682560809758596129124149541752595097115819450606319201502723876760820802895771760893368303474462329161045459184980976832359758523416326183745201982350116249739352547231110333391904478075505320742629367339587922725618735230897656811281298224267958980626611785037196900931544875354391988002377064404867899073515643709917531098496464486128285748716948642074017471716436986614402906341500739145162976178425907567692047765364026325130058066220755271427114374606936065152248544231041280432439014009825129299535469549550396471804971870677085929612293510370272137432809857858922941325169139443534097655686135530523691609487564286348644816174936661946113966568718417483512235647422804005433468183182621043854483459440803428798974693126595963840669355106767279595854772541557851953343869364373962294919490820104803842213760301447177435965548877703176773067007439046386884998090989899226542151547893252017111104023086609587393815213059346536787055662566459190131982752585654522157146672321248902867308568730021722606422954142738511716968784551661960200999495234839720275556979364534855567765338826933500807882875189601396514139856886321884383559376558132144584260156235991472455104445456007421046904909398045894904567562895203950287609781100713769974464614718987948553048762696485221922555842362698125603403535924359939282019210221484993670042069652813857119560888252260517230333396012919330882830754090755252633892409409399644888882946665079717491294892291594390448151953524982727570979043772875288695153818922800754256912566931732481592607869655391198817648786840049058872604759133580401140487083788399717158248118298115278659556378336110774898272260330638608998476407752595720653363171084985239711925224453701882751736282682135347347140887565085920078573488600305114851264169262427488969003249456642106534299822909666911738710430629296563928644696525320168529903076589716216481399058178587136035872544394716805725320937332069668925958315095994315479311275491015998173832927270921278082634474578757479283179608457597212077351283865755349662896206027543133004442560361213962085096343199826832658603495956090305922378423385355141922702550176983615109471500144855849546733126789065232184263451210305749706911638765601661774005600948127107621611496321299194777875974769340566436442455800624696997778561377389085472319867969494525054382580954381144672665980173655446857636345659675440550275602366919799233165929625215769965334665070163589639860110577688841004715494553189473371533171710967794113704201255595981404745715628218687933763408860444267675134508349081288059880322983173635275777450248680629642120959099428349618180098448350861712424161963580012459412195501868690593646221027116127467524331831931273496627739485890834747626085959785011593138611186068556311739698013671164443498962262607613365383499465882764446986165920258671482663472489917506066722840299335126504156871205086323565697336835264482082198870397712898815823572545003450809707843453353628356943749928636748551508543399014732188312278365449250324704440318683614156658225658616485874959662175432746261557814050997826237366488873912030219828859728635593083052990677303244533196014387219928220961325277558008496514631418825026251679786412423271044971011130244464288993506812143214354586456168161958156233847431426625817872017162930821767514794476999776175594316772743105222071510294815817890505344371917717437053430728926448623896501199669018024498305189208830109583740259630322746994333173981359143450646682453569275163493048912289164051364844380514561388295238878632500108063697572072354310619929560994811520947403519884422329707618949749565842888350819284144806501198594892886707022610762990943108492015925489122133998618151920070485455109956653384548896632547826585911965309530079623403766285897280866797304954835079972905111048101085684010710047592933031481216853961081800209412386010388799784185175754985075040250592549426266617885536927557744536336715616171251119442110326571278399753617335265922588851155873638818028795137302764805192492486772238633075325010729972557523279211449525257019878101760907922763006025291889018988589358542346713362611615017959150064000094650722559223802289140640832700035497313729112205704041378665514219606507134578575152659990060545438705212837273938192835320294012033292689431957803943624852442261826790317271285366140588903540118113963721154940373304655890255177264525460446434302835950188057903575845346389171299641064588996367185841437790540661047712943472150557226357524876621547512791319467397120537632816914876939835157464493413878688593432723285064697115588633511716199442444124126363262182445386391656594277205781036053253354036426509443402095694018828181549730240421094791263787918281510675096587113164704451212943376374714159403892753463410916332463412690666851625114487412440994950540447250847472001482433538020070027398463622099602228079869645773041751817022187253778299395579770000460860064169322640117642539404344035028315219502602613256189366681388110964259222878651895729086069321180516575020215922955200758333834016857904778404658126803849801526364288184071156146594391360003373648553585386929192465813731774667373115830618609047364521624817535680424467887210334816756927242108109793575414196835508433373601160413554479863790146029120095116320667643711608825686350273377157687482341889385007972408868698446459298704995870534199718848327166630146458756430317858735412730523603982917467799248227769673528476184986217673932100467169074590313723957866248459947112596516908500953681710773282770991059609710363387747512302779394054709129718463348706631268060678299414076712422744350836110690601469549666669200692998282057323191833428732396413707541544642587916218372739496414763641135599164577497637723381930432503772443886643450209558924929474987354043821057369825056884233037243059633404498612457841306619433690283645488927464980552746655855618364352713150349791752976805608082645943127447274956018986122007682796027910693623106565531100490690013880391941433821679096796956953926491761075907127909872082976547522489066873833663603688780261601310699025368287867272822017628346681713029611846532760864134219832042035319855633119385101319101372244648225612842970825209261343752673790653413936325178746309308806027581345384514923263077895475920840899398337336979482723303806786210708083155890803976904029169749960330672085074940839134424304758040869784331798794822846064314428200175804488296573181854644319216688063419145734227102507360247690248536493842286724046660987619213279848616906800812995834150040001058099903458366123531234223905084618639734894704272809581925099466748589305021058551913998591759877587524058469374751807994508470172905659990768831318934241727664383417374504442297697785015972388444298928948281190371425640761346680431975262796691064886499500408635676141076242232013615483622488665446226528994027579527484074283515678268362935944277389533937268471296368879829415983310101126341331206476136482679714215580367824595154494400579491585647502524960969698035222314845841225237173041814320261659823088952492374360015998282058289316260590147558027074018604254841402660216712480153455013021639763319484494121397034747282050599939305531616305759043518230849774918356500353339818241958059466898062520841713913453794758428278807803251997444938115536314878657303336315673169877903771432852973747909159253624353632254954471302041687390953067663081937849805631430676311868220888407134610384824875798829502330412605856033625304078478610855312288376450912956510317323523489245081068783612352136077568335368526733037243682925882229246426417643645381223607260373060605413779298173493610063772010788504665112370363864975918597163101299068568880671145893611711886051433910623484231599257084925247320692168131106862452208760098710383598223466854572714861939384176568518278830654780898760178165505513240335193332271976441071533137806428520034434976453603668838956015136707923697619328335258663701979349735540184573834105281818882938914914678930560624358166157844407210574064691673353134261356788613340610441314629774128206393608213420159685617988677869743071180959047728592416919568141388464956283188291049731429439507384440305240721803793976023774442130271833588019816742516482026155837520255566823836682494622575352144607614472106137986349511621299571687445916652230277418599175322670765463135790558293135489438516409789872191425565672776002120545861535297154519394117251072571471878431264191198434320491131524813111539648169306100856815787557638996600320533476048633549095738941231981797362408342914688677340829864551779341061912319892421415207139478691250261264272316403810243437181567608619563945797745017504372722076592454269210078196836873358327558333049618846434737811756838792532808223938481713153922025850880558258947062222671143733490812629573035720973692676640937449122175535100728133375368465048476369744596731617433679824497994672765218110599433888037438050156105925617227741550529239020774003620824360606780693091782459969529387159122254297100414981917771753712367658541640545936722733454428794191776646049477279737660023367421750157754843292637748084535854160239070726520319585692611555800625383365468344734801740057816030588402532843974880234679703402227612971201657277544053925436980690331331487126470562215972385704829455899688060926026672285085498272252990887515214549979871020830491846065688743761692577840812179254568521855729009187756532488558200313395304796658777424840759932561509098985774813170172864609499486072322259403949458971763755721069042902078251780247121097992228335549282926826730942973282266409142653093035730258867460193054693300129750610659790401041255802706465299368829455033447690431046994878433537736288558268010597734041453009974422384886811772725966734301067126598771747734307499957741143337974314607801555786003512395169252021090142949456418916336973064410452935141114430452865857098823971127422713992193277308896592889693221421379628519281571067714241427744263088624825042869239854740129655012657868276336055215686932808545021166774889391504138142708731709829501590218402280545948865602368230288083563853578243331414289938417989618866748819289805309054876026597701906353681540748174973292971524187623162491312309635623536068164559588443708237446467884960574268516759036181511084338674365022587385355386957866448206190650571113335622085725347700134290130428577817162770150560272199988945027421388053529778464608821344444357410320962831143146600551947318422407112314977386106458751805098054180844711085072756827176877354172050892348429415033243758675312096726121297233303781393710536917150320077311552735865402874490945558327703471014977045508416268862745747754749710006990024283123582298092179586647031293086224920286553969058407004474365866117369077225917653398695735597122781122981264697894803741896872894160957532985945432198897984772915565465507041982490295407829609066508278766779675140386747478686386742858146103596363800142772180427704398420326752346013426076582342727106174593896602100134897065122013735884247022924481995995981005974387359787782673436549583832255820037319192803813956256689838724978287350559226968227447538429046827179534307533734929804519569921280820004168635235397044574694675337276293951639786912209738647009628684712631348835907887266225314936832242829570312288589069935011855004837746374546647810001535889328602585181488686139224710912015818238795839195819210623730005129022963564970403626832978800269557728352845924268838509376262467600402304091782027904082080082870570752696829471221409419876053721486807680280940561337883224074896074311506093004926407162772887405464184770054698826663195405942799155751322080991997569786919876987770023544186872228503194049918713727758072428785200816915370701403048214563374696589101895045207169386606393395610794975834546288224306963036363355353641699811436975759781730640647342059971876545283906274288348393649830512640131890546628345182045952363738858269263377570477253841318447873310088457791720344311122369849018526745395335981407606154399464555417041626571991861188061446179886719313593091222286460643837681893873997905332919491782049452473938015132246984481099305396692580576296601167224766452054226923358068483223472831367572763372518290437259383118660681553873206212932393456585122328760968991660679857719788025732947942428979788788244459402899330868867650150084267304846705249894017184505204165327815563236918686342636666491900977586857245808058333613143335565032139329691648094541646040397202433943644224794109562732528663368541699884520396858972905982439108126537751130118283332999105188232200474421086373051117553898176743111236919840930258699426514673784171486036433339384735933890369310106422904990705057256019028995968458807571925853564745946323494373564153242714560861874893665724950970830660156799943709567285895306999035700289825643047351771234382068186003946444534257523464679316269964856646851950859002708991744375395044542583635646971587421098053844666503122495577150517227461631788179771136886480527761985183358356834875008842159222063011911055512718495151056264023965672487757605675513098309304736279572923057159577800370541249633991826808255631453514823901661570970540365212974543866413450564771379463204992384154514644221633614301981506797760882062168304683447543546246288300111972437860575598444630709936140966228282828288284941384320063722373985773241707122371314480558993365607553922822550720403556434595669922976477887773615536723738608990779011604409191342373586772638414173824331815008560687450149297883967722468846703025169175923466235150363927738610266383423863625008720737296672397858560232831333911391015427496805207323204983552826621564279613716467482736338429141796259257423677510022396453327954683618476802511602463040890179022991340272456003448023599281544755371410413320012832775939046673893117125980513108254162853086053853530841485954818641073994477138673119071506850924423841507329899847314306072071103073904302454058863451582125799246129233820591122553258656113452991481243640891539001941830218242668333563595623338346869807261144736290685537424428151010099592047077430087677198066822125425409304983000132046031395370497063306404047745979016931262489143442196665844668267168122897120510740079072642283917133804199350455387850600804882443946448887410779457824198678415891022503689952844835148171396105684005119249891170389142310688288684778753123696526584042531542793612680156819502239517222375926410380041729163910712106797849015232146608035164725021473270201617686419496057889493018427382607459044084014277216430820049960264078316777188084939114868659995748579395724235392670692776460403372409835444038826394975319010519612821063585253511880412070455994267341536526330113938134111569982700177374282927279707397567030138779911506361392426764012814074109176330885089891884454066821626044098510482796141669084768763025156669019047969988268988827610295417284666662232754099014121228523528229288713083864167555879608014282401775252871588027123160445462767640704398327573753931438096350200495547163612550651205398652494617799612170240642249209579934074811165079286670493203600741403065577009851130162833340036497667641431213072166436704133612696574620543036629791638811969914367173267220418377457006314236698568114815403442197460975674511158070599805780708283308354551767531468374831025976411518926390077997250031809043418415185075644114266130307615275808757173488957505614594496193584450863791786350577163573572250119176615910681029113924022357861393327485622637849987998740669451512158566494864100606005068482295281996103726674366772994007055782789768679443951210084490015355141528873027852372620228180296057926783613621299245308404825883672470132529667300258959248641567273424037653912043050763608459592107906505786830965352912391020684436634880998039010197978900507222905528045449580469814355990069717189788955411358432316431036654971654224499420883403094843807240989003057413237722733070452688648475778530669726119005693762431281622506785133588593859894310863694020724313294933361196688655658477993386149845835235102757710495713009236804463006700665505900553229233007695161529255858216794302054237697599114545217324876021984217270094416525711769587018523197881958809763156374009200532476880760429855565508642360653667054044638796423673045606770845147588950275143232596894486940080727208255890445069137476986214800327939546072511903227642847245062883100309654250548913193882713215822373946700355076217504905737753746206427516355284796417857020578499128903955658978364380033300973127866191216289888230736869531628923954900346298033883594071478162584506816975397216993621598251693161993024573710507408672170132920050320776789631186997836044473459945229488844426210041646378262130742230151072696974166831055711795253214071961092129189696901236268950492321033488143192504481251530473734504214961876828118437102709539218740674168717923323116884016674618681117964342483789589142008901355263361796400125056310723413900294249513922087188121165580644103477416192910153961845969752737123141621840100517646872343424678992238461791571368981087329180070787840609801356014449461601201616533687951923683896376197804537137664636881651757965297699747063128338770203273327611303461660278775570336910300062306045326391972939460212874791545669782874335093112797658227639347729225836904555615018309203869271526865172370007348848597766680768746779399170932683153980656757355673532088917235037247816313416102362813433577628950927672303422177206043084474447510224290431306992744468425594753640590941647150686752065683987685178435687505486019645858546737039977918991123902206451553169168064739222310261514980416867545531030806653365975873062154151844958234805936010914361710882716660071159282587755276937408033222095902383771711081869567900073536194726917156516895393599550228676960806362137851117546530809284802228623985407458889992796488232953561814908866716423635805430750399180550394146631582023337318333202004486626782785966675761974441836168001713526865710522945461310174665273598155604678861492890888447369443530240899094073021255995514611066728924430430090950896669843434224747935102181708031705947759780632624404098205973810089623699065007862824602822848433970875602282772494130072335067013236085661676441797520166773506073903963708617315906728411216631822758138189171829538661935849398988052505584730688022336602119169404362279847912510313833304845522184603289168688186707385473210290156574783886653202386314595470065612138155438938468878886590625800917510903838950985612763184882303982821071831964117730724265312537511624501408448518613583620802911393611595138124565633320790094199453150486626401390290167597264288019765606715481117891838821966886012710566787430115304698068502348531337117569359800717171296888260484399394778030136804938845643846253902780394472055508339358335193711166676080963910604330532107705876678569376813085754230751203697987577657059383336279310302740739305434246172248775489917680008994635127530930681313869037394569022448442837963898214826682357200662815686236911817674996371618857179951615031080959485048492383407528862025949314084593870550270002332499600326127330206138864061937320342762225469645313545887333508502667615123299015192706276695396479073069256743313892378866912408491425011703764167978819035102529551699373657997402933149330940209795859448703485924490736432872828054942822219954204214511593377764362607066309691290718468671287263184633041780797217214982736812389510582149551644609629728878337227380422008713474335870892457168591874413616247838915627284217575002817400022597906227831051252907891106926658637642855169358126777129142038060962767614681526734524623687725453097801410308115133811298626942648715053163060255636522474259465976806195867878840275346502297563954939320619182215901555051154945343172800112931318220764376685626422559582902117267526914249040242020467492395411584862903571533564421334132317593107867249450563657968123041805473076357913296407682544520755977213038280503210509362247432091583526608692789686012715867785426498120289644156751125202758935591912495818893733055060216329725459891696311856852879122028562396258584404383258640010523703850879226837738193312645773205381578795630784133094388083342034264306901619644484497248068554534221828660306376561017086597503454037936151589252419369609771411343835277820360378862043389475907456284628992533792196947505229670391131376100822982469782659829718660573937396639585093018778861516038846076336819394753323868002613764739719087711494215113222546407218744545961020495867768134878992829156203367930925580583035438065086575438401238621226750743327683737540501832977532993280854669209641179553399898663185233146239654799941537109123955143783914920847563659103165001163297487779528149155783616626024906578433664812602778818278092924074087606382635018827362736102981122215284508692191633108752473628497188084335152400625385686758724824941617098656057073347076356911600935024911713405145165478405768767205537979451180107681693644050519502047375084300023544298213746125408892922172579220669475068409365214143187329085080910821152479902681102278387302151547460320031385760690712226177973357640902252459039125213869678375069413531261442748932388947529736310832912542493655500499912221753491058133180192755680229005589214026160715712354329456106588613856488725687527336573841253191575900595542243362192341597716544379818609638507105221001706484242423641787172632934147832320028050258154229786970545669540195632891433345868742136353379164382577329227923047957386807305740575667234997527844866961721477352787658530728811988711461467148818538300442521450018187545945765215975148834271586356656960136647826422016438073563432632941808528164607921531218428794076493284568589046591142835455222075348989859315212085879695602615657074897728907641728322459819472482213580004328605749447182006477489754800212093507373016912304350355833221009277364881034422573805009149771915175271841013951292312656417631946377670231736778505915358151993628914546445985085189859679870209749344676541991022408507639526921482195347774773968141763946903966349635727795659341888618289726560059027518022257267435942382381712667697153221596702728387601829524842618620867224178454404052007331368195371281199753517974175098966652114488897708784440752201315594108155314673878013433092363840130040463099640433133993598974922055747432357426516095463920440584067098297942754402757666733263894347414352486936061277866142375608204409557480255886368720419204127699380242336640679920422017601134399588825130323988712427161612235530341838714259810854001848945095044488660130379597095321911747191825273452231937523276020764778470259955914422963907215309571011311335581728782593362656836970215187799230768460389291804695432556061047552872925345788229735982574821214081754588011296243245615246369142245562880674863751962800194636294360017214166826245613098104562208623641800710545249317503942510471404446751154228576414899633474419220460602674840377422419235325795730385778199817437788541852474962421426795760858745333224428716536179329268503983314048811415152902018826896513443248309694860627545257309859920037975492217371952147246442738084927494506119117044755092248329753896096566845240709388574943841353290711121579353927697430864856961144179088104470025628030516181758124749497484679685476395301278911871429458654045251810197078164242566272485120642551956564752102054574040899204744926353829074893830509285407191057360769414710023730606858983509296291284221383237106169131030115357021523571339637725014389121171364216639551008601148306672937894219054124774960676711065139205812532593268985498168310251504858261925608988347801884064683629799092904182247323203674984282207649976398407983780140182145789565994081632735361031028023839768239599225314726793497871124732021194698264582519260314889581086951673506697204390069917621812383435286234732500933445094834373637013627621523902153784278899262275427269444765604965679348809495054811287480835630412658262359678783406178366631909828411874896881689698529658599024514794392161260285630591283059104600702007760784787467812564312168071374698657115549102019467282515880015274098665236865913356932219811049032507226453586297214659273520724608106091679758532623979422587664904643844045357770249581284541541031552791535886682608896645087406329743147612872244722591944540051012360017336576724911824300957469511187576526913446138645330888361017085343584776024711300633717511655829855275837224830220813433566457923917630452646608902066324569980602765058677252051366400521670846879303815280705004609646542054056138341717171178432271415336021334381700719211524815724993928153936770756806474928995741652556590447868173756236689923443696796622217740101583288549619405663568233772861090889779918011697075344978973346441195921654101666766059626451681520984501143105026852979207485706510157308278230076826451382489564816176828057818608485549166307136972957853554617105552315413161139511272316636515909369307016384233259848186340107820738070267172329676890483595668484146483553346631502756937287166406895453391116048034104722339136451953807155060511101912257452122706939333402716104933688346204891981316916204841863403636597577826321308818859934375224697099223086484751344514167077709197536919012979922265980396303385041066292206130711703064950457488417198898484297477069943205479580229342169522352267610346457786925137292216113606158438447256858313010491703607095795133825126766160062009801644018188138925626814841318016124212787878979869217117217010609872908932208188383376110172891159065681390374615603408323026989659786617236876573406031630364691463541873239913016897295997338075151427177735414246492021600275224493706064709325359370468324346369507308352902421130926733408387896538566307224634741923791582445056186860064518568738894916800932954329555954824412540910613020784053091020547021486605961288894857638237918032661955862884539283813353971701042184685665432340205726981570343232459556979114873351158795260241072651016924427506869808760712193398186183392059048362516199451088308811608490432515383141440896993335965604230328941288239046496064903629265208446778664847301775695009962894470401476222998620083919321378390742157061541796366525300326714623212562308588694829039946139846758484817350893548853360622288230193224723286445566177245524462099399904923344521541977039259019702863555733193508353508548793447845176815358540219074859842402047249463159973208407815587606920416544100874941317293109681333552044245786834248658875215797216168048010933488358571646303927897566322249621508496373570113433371391937092036982914083014981928012982243168399647428069525099472718685988068308059832345128838641579401818432901047970334749790260566678520041079395985850990593652143239806765680762842173238983140792002792600166588682272065105894299034321169396727051247719151385625335212780322031883907718378697305625774223588048028223786991582336616349339858375356108711738517856296153180160314890710814533668767523018477846155394995903100578558649366341928647644656883666032655744967634816859572999684051511281261199329036130802670580621152496697503233968343692063063850174154286877443441820593995000494475109527761701786370871934483023085316445383637837832271057063937219299087966987498448888194005535869713411621963296002454166771989729156760899568583397747723196782673212512531309477476594266576854890426973593123102896608526173199091017255705892118928202525861738707527428812675041617558029484719916776794039340239168194122073067190855753397692315330674653311002063028235267235274427611594056004384504911164289048842957829970360450694052893566186081551979480008213024979941703075107068972294016188510953078959373751366556793958818438670280489905594918495140661969163437386240121338087708996170297042683412518200462549896354819735776850672714781727052107629476659695954828259316766664236875280995847153743653863268399307311750647886388231331238791518470258259393929158367879911371131321140508929738227992364569585588537080935314993931661657618614577923932019638197337616782283228388641670080654756374835019836657606272615006411824407322651415304914158964761347029153989741004702540306347267546516977141602280263394867592407877615959998628089406080860280987471413300989753048125402540305099008512545193274409410280891756938675925348812103557046650562577943116314074628779719047004170096457757878957556212645851416273753569712961933087527112461644519441928408768665017682964564886184516800919256140723901339216983862880526045325478400236074296647848475522685536679910774999983808594431992044517196734031299947510371424217117445455123392190231581146719335928506788236259805367944664346280183475320222221314256381162365727822645738767896347831139710104590080779580145842661460981665791177571494357837855155656650447542897442829030785731599385370461838094471325472272795587240631443866527904739610849515066157056195905947014503801946092025456178498385906896063053316473532867474315686798102828649739728995623116870899228613045951065481115081643167886130771528907876771851384850015986348391532269909785515414990746581948786932919574563438358788531299853896762881117940469582960635421323616445764701469892546944665556720230119688732691666907347583973333035257153046782306186859132365202000736916674197825700526311311269387600489695631308209143611589829159504803538501184049510179862793677909616591806625745530994245919662158957857783142653848982160199461542915884289403774324330520368004895820121844181388982574267044899981461075895869943916901200431226694188264536726703258394453475808758633230608561338742934831167791066490545777946168258849218978657227499285536612622981016987573333552779213616647312289794128099187934670283900206676667186622712226039407237983497818529807816693085079039488623576478177896800659424124570116418856907366422394575629062659759480223243036818728642968451009825129448781259461287405503649442386072015798894445933484241010212002376219836228247321964409250604182489185543344271146119622701750347157136900683314133336648910447794375261189268951953795420323428274012204629378043552714201018890741789166426507007458165461198138430488812132893937152900284945407537250948199402752261814019726032457935920684511157367456628491905029678005763327770465647125860197861558322685004782544346472663767576917643600192210916112172704848484894989192539157035519811083985889306755954288137436486485819727372509854827620275516750759816806618149916002759139282336077494315789516818202404216071079546007376613098312999889363296164432834795937276593203178208184889644366279940402114906644284741493698614968092459983207882345624728363782311840562235681240058736853336123098850121509411058493437757229448061853139645238683059310500666284051950865230852341652069865895829286509562907306995372727096736027569801672139045211639016865366406822472352143664436256595293831816352498850586120627847457701072347335764481818219510556232254480936355563260983516463206432005028948900023248812473090431106501367538000664182040152486794085682614487876289397919133793060946871297016334417314296049346727509346693223398384406443780070952889671585338884191250171936752786694934771117521062469468158554606533009912426673244818780796147276064694475030407996893661821875718883201867044750398936223634858277185592353127180796240223668791405754920429542112654318982027196156223432495013633165093677040513187407616348143345542750162067086209688271024683151954152385925982490306840341864786162769869550911138972768829632160994834921321436234157906437480768139775820817749379104125670700866412564815485265466023267062265971908754129883573366241171266906973989461044128935788306228578664117645888423409715000727704930101820802762713553189408905065078721891201534218209752987925258552677538064564640643090226235455838603198969330457748965208575410291188901829347100012221184612717518367187023143275216863262005603253930334009649172264815628109141303171070012549087252664927790687632217911208293383834553413636810964442795206578724899182023092875132686004997896327377195230114855921711967980590507608330924510051243482137232351096226830028926046959863221183812378081500776242849190945524017300596205836273549886339822482054211578340814741623618026200478600351273298993457869885950018553469284916570588408579091372441636277515195123178110145052542048588207426940754748877527280851448173300087869074897058222495091933548496924887797753108612101767548861897648408520562346602201958038953739126755164113919835996476566542572200190529204072026548376687582394267668244411473667851798799467008833307053202109376090095397242460867607284715850200178430692515950434919648590505363983977527871033153580731903654272622047514924697948414642861747737122816397133956332110068048299176054689270689231284684240916504798510353172959931740882740535712729907376055583304930306257584020639062251152564809893532248383883435951236043936198831318502564693050367185516440598453034575019630720111307578032069978587138479262919038304350755327444619081717956637318667970521521403179434724517246888194529850803496463211428606987608832960262703420652625715488591077328735720752865146634495356589617435968481896491482685039919507368837595380307296352664523928994943388310560000489468973629210440021796066206213248883573561458205730774727310342072967225850988765210806642460423071419934246624504795538170793696859263902258862830281252059073591108538634365938287091935685286411484868168068960547433319218321938840082574280313540650388060764637289738671304808764190493751351586217954924613948622442446282043151723322111489599573061205163845541554585638446327808139294469063436681942091090648436637720121557597058581564330177851596642166381851620409474350673604448491645798831135598484444692645467189566085953561274928406805250213424764880911910666260447797052467447508624133257089911521838771516233256895494983651617285299420193000968225443311063958846321686086440713464029740587860079143604655347591833863349328735899915685358486251589839651388550808021638450984080946435975117970202121490240211661097727199711337602923046043512096189102886569406263048745398144031950035645190329583302295098355442694056607892469612290327357250821206635308231744093658537276461391730190592465076184620572680553659389105080669506797252421130390338316632760780145908587159027072411791836391646490243729450508567374248408715265051026363849627334567020954077069875817878638180147500955496183749916757732523366290159231040528643735662145934735136846878322824933872828806497010060746522437071636254229653250203665301418545837857382162436607310617390432035523456176268371573952863910718965128083865456898852647708638973796532529568334891550462164194594987106071002756112781190894904344142085532324710019229845944459144023166390355190807424388464867658423468137567377283667461784984454368087701064311036780520407066781558216229194478795764267051004603646842226091175829863932465633389612250699435926263371266777245705680174588767169397064832154198162854150922446991860137148171552613933389587590911509230841237670613165559935435510724675843226718551403610406566341115699333971144802859200417108822336332935057803405470365671887652632787737381889879415061517876473890922072068444419411895632800041458474357120347432940763436770115979509383919013267711734702308801290980360623204652815568701604968982082799299490782844918114170996202742542659414551629609491995601788436391588017862461588100332510717089894687132577482425596485676051607788831118015389022704882956948432690145617058812251622588502478624005388555469537117562142372615659176007455400964874544230159050276973793090418273624510431590516519413413387865864581895524060422340244095000566893569731719650006858776483536864849312920213084646993795376415296949079997432249023889110747714361384745028603811606455956896249813523528170976565786273811057232896123400008284421928879380762146016492992176415047896969079384037735299591465988672760005842812807610277569734126899768259935808731079080412558301812770256032387990908073743155882342455283956192973566338106252587953418506927814436583578340946048637372814773927517765930663872490767385709448025672269548073633977666795071689248233359483794679710005420139143541616286490506345743933248829194297863848627516955441467788842602231093878221617534694512340293522776913005136862214500114459977800546701668557709859865081644243036286142994412550173454801829516192329779578973096457744214841326463770890947340084366833613843065405873160513243054346792287264111456931810836675222890905143281226132000039494417896644781626127238502728773366169897109719869402126722812538179267399671218675983435746525954119790035082676934240429429460169067185335186259921872061544807820038950450100439146733314706201802993451698084657709394445457657202832985546349124945824821601116502826019192898481539728110987704792531985814199450858403364564413227175993524394570506908744626597022590443783332797800775456778182188564042004403524570044620156421935050645063723656433059640226016666554979330703374530752526695903258541925842477745164323446733094976737684704783287506330258607502598952852059834467653914355435067264269009179978668611857572014320937157168936846843437077618883007434479814866437947243989779770097613495859420081810509666722968369939885540410468546082624397530072969453568165178558489214326498672111547409045452017481032935716521850317300493421148438963684338565778871643625823362987933866391575522469765678282957944046135607624915798475390549129918767165744970572481708604408476786926922557832694597500308873550297625339684869759377176697954062411643533771480082861757084953825083188789890409837874194780306561261943230719806859952372674175608608187792000593741434463343162827665902263223029261869783163240506097835004266335627744821671222365676602399171136321617736474626801489821703928384961585494449425385671637573140761200193564083870808823525727401278673532819214852492279927980267024359062346969223987671382725466827938381988544101141182935510051813912986257522106562136334123692741076564271032237614484049366845325934890160304148927809928635557864824668763593725586096237209537642172310053987718176318101155324901253090256588973505664255626713313788504681338747323749375517604390341798514259300021725383444013718513626271805411395831388687864909151596693167716861906066161537356807640307688047689501970761531778735740429482093831656878667082035000142052186433550023992150189209901659307570406902242490076553853402269540976642266259329566201539504938243820413192539213080092685528441068871591214992636782285701084769869868679134198693940061475876759410595737832995333141847846535768688774474510100361739630704873334507277206076205388864354872976290135454564659974362156667462596343272448872550690917040129589290087521747224469843903478177346870382378743675215907691962305601707931747774481317600900409167902862293528983133027590802547754648554950366647649535424748267509064892713925112789232982973707900475739587070475310820999723757896614788560356707224731420001525075536699926839903626004731139290682445154824003188605210171880076566821380613693815418605274220808576358184677648916635476271458717803399203858147013654836504998691891750326785449118265929687227212133035018930753466523844805436821563948928460325793463113184598443358434780759441430409817883319705525930638113391228400214293048922113836813734881672336089837263359735694514495117139828372412525210620509266554631401531539931561394354347492442499556131086220967899530248636949410760276883913616694000016781901072511741074535447129042342125858539185583283848029333268931710077080562779655291767388210675750598792254895706521047986060823874852966757649730868409312048100194038004668690921306916879933010501890265610644431905584064346341438251802564579480449822830141603655437030334129170822899133349176885314209546813349234073813675101168930148862605968470698856619355590508387234855167438938357138979355254533442936200839534630452612082518639099884468434091757585353838243818074143233963339097522556828164741933904439278508707096995227593858014938167644427526491460185930170042789767932566587910887886737114601148476738270789633043956224500500844852309246521648900808487553117443632477611545569501608171240154813407257788440176678161207782329238266576221275290435854064015600047193150465539491307669335771380947934580425875794897988708403607221051855227831330411881674187504742130144911929914415783114387273181731229369763860322392917525089130029665706137690763437639195764301955581060222428411751585120622271558689308350474200139987077677343207179937057359647443412786360642649799139698968840845783304800787718709386259290609425494667373017976906992039099055585104582158323385906418419964096311146875345882900191719924425956596790505527647957794161339089652259893901648199641920175647750335322995589876228443969977472313931203489814000531515632978720980333482259594398689226686145983974542258149809219189259565650884337182716811957096852701881280887520523226216954780764381031437547469600148772817448129452202484042392838661232344199237818787587772926289289830747915478404227207362351562199372963541021027833082394262952736689686684021415212501018414296306589442178633273315977478796356859630824648057199501692955991922415905825231676454034168749409108154722671037209003782044699682934886810054012568654511542773042520403812576743403141240216174680658559743967337001437918146931277869795181653315265233361135991769449404094570094528660071078231601310463705993986380450227803284211388445057783860247189954283178159305812967195645518585724373974189213009004042526428154285976998088914935107562335338226337575260603843476742610772198653025339590958216166243653000741933229915668706292633616230199228596970912120961296466176143077450017822467980638901684572122148845660424922596072578573903890005974100984793927129502845763090669035396585593738829560474767648165858929387674649877212110236362223944379516860756125833896188954796576244313095703383318623112335081357716372506186431809237561896397037739149460079592778640672891345842948450697000398273843442359325189968963402618276425055535283516399878970143978283153276901821151189862511200852688476683952752313809203122229187921025215586929368815937368310297127102669340909927389210486652034780367635480530372036057913727573967166482954216610374544745868175742153292037819252810746635188161639732970627636640838750894148749843839480855832611833664608664764464787609150008246877604435128794796707380820371244440696182981404757654466191056032723652914226427244425343447802927111653850728323298114561866391383093099721540788734099975809464652948918891541254834084329639133513348239284870989342713475654576333144900408220460704596735120540944688148527201368308267992168868139077181920770278362440993698170742966474003208311436478352708390036031573619197816501165077502539052047605165095247813509168631261235971670256226577437728164688573121444636042985097034857001239451000371056852091808399150074179075875560607766534869706564837954854397151443698279693282116373533730136533136668169242989495909414656623333680086546437373038901613143109406006143246914262063004697830156904132445630857145476228116137251585331930296470451039336719498197846382008907336672035077807602029610670624173115398841466508291226736638842560272047047139682764466451069897339250276235447556598431331715646083371027276131284219746147546338998146829268497183245984591891806440803817774877035679461925736083967921790799645012204255250053506172118076573817682917462817342597105030517726458072799384498039246534496727399074192796108220743850882424097205432616320898810183665849839608719402724274479525661815810472312103120539004407355202191391205937500763829768893561669757425139325027493243487807418644806129961415119790228081621561144409225316087766817362641513277685158917627076802373417342705996385583696319643654398024496528401809573978625674082926724790310812549498020445592689443094397283358432284852179095615806804084786532763278844261526179260829601039289164782219540461120954696578841188608341188399876989596537825381919934706682022584811669709234372379909762248939661116299043545450255333161900878119817788622582249763223029908393478642847945666693734827695751676274193922104109914477872438020068736224919571473962194891267313235856536454389495864835173804855904254732936245901109485111265771180483715383687014590234474478324555322451555475157309594156506777135272321475390293576507136451127355175683738651060023602647821381511715497673181885047884043667729011404845382714910132526365734601552919608882014641622014494935736069973975060813649261478681000208253128705076568685796466697442431879901677590617213639728777836587741746103564801323835804936530264497498768185547684245665349060740395988820637140894663984786958057254102749997002968187176100089545091980921457956093548539193327526954660046720457702952162643204166614140073920277363369285049987796556016306174509784160024191795863673232755563181935480237579423196028056343670447058311438627570577369352358652561007288670342576560178977987899305515334768987418499463395999489941240364987547190242216058733885389523249620232873937358105214203296015326902391421457529880650730213218089141389274050708597532740549336324776900003840077077647968739218751699991232382692833092343873945280006887728686516704497472834339704227359794029628658972534472601984036311489986094525442737287219234960643510274365173074419433146636610716842230200892210379548063814917461591148079711499218691647964335679132672964637444276876618734256241214074082593324113483949859562464479220018229724385074220764220460122090521796006066638058527442714418718501825839129228444104479448934526323554020841848431148089403384028565600991008310837289300728295456359707882181540680463425195737638074582136880780754366728586617559029736343136616146113843966681627357153039205623750853352662022958049980979941025582588461949107271248586734056742197201487427197344259529101708322415921344745669650941874306318115030616176518123712955129411921715069747267669543422875496637930494792761285726760508785759929995066719616477637303769033583531932720460537845746563978199163647908120422438906531925751245996930923215421413459870710180709569455661991122677769527252980007587602138818161966026210956901898382893102724492432758616666536938127072085851001711898532972152114023396619362185172526139370917990115463208692352984771735754550489332643421983346297171517649928646560055838918849480230551075405591742670154098825914312719344912645779380779623544711844944290714856629917922914969980546875613264887160385996445062075467873959753632987502263883229633409833253194268920150878042867796985747616412772161783240055108931761940343523672943410696901343997830575081383869033913319253544964786365218094903513480199417501625233778275190617126267131179146739271688678927585070485823718391018982593300150161769597881704307923171020932226693879075591382166316126545610243495901374743236687778139224040808332279465908491943260830273222063229267052856017143871053736578644896133546137651745223010229817530222904233107570220504106362259772561372907076559412699738787830106519719863873381361418470002429984910007603085450583470902360712574320894605349200730983408432096465582267208498024548671725910346810604536389464513782911389662505239092141624392063873967942380132343533073259203030729931624918013482981957499585045914086912372769349984506190404616944806285982966801700454412842731053351762484528160556740615509053036230210083896854940133483254831917780068623745108532534984391574875014362195286778836745002290635213429751745951625679101792492846370729996476664267487787451718871257836714547515043369316900608143235805518496325818469309845167416528077759644091224121036429070825640511371044950899752612713825654965247083904665504933429442207780914567215742554534834525045718254391828818350239615745605628175213114134539492376584076515605652537776125670151960349435955222078067004645985233170553717143998358004802840527690129125680160905242073066184446813887173550405204835412419168774515021004825850799182733986527476387494627425727909161665610933033386881107486123473533310245601579029394775589905608602198898485822220371227680003294530345223300465068116810350077701054848700643572208465713089353173288420102560728926441811943558419787349381048674486722035239432737093135161229284003385272890237665706415587071770289215337253098533148949476103767387371329135027257854917455367932617532009817381165493876701966221518818990908913730567182621642333912910823521889214419391284514224265611907257021839511765601871001647870073081050899739633927799975171311213164536022001937428944730662718912610239245679395046039378551491204750846357541714878081876521202995298726087505097881968650505338467734404179944992163756170277845195553255149145148818257760951099160618771050401536594367256906473204146670983449887809641781511254832687179256601497046778484955843250589494780238794910810628054762868746939953245087266736344896656593295682794857890598213370048039178672549256812574555852066133040099427218828669245566175973268387440608646601711651100547172941602646143030376254431738641649024751108261558940799639325137602480519327467320708564536012312300263026857885046348319021443432143739246250924375979234460015571168550114572138801831227813647352212730128601131531873871543279394148687391741881286776517980674744255407654242224234631553115312164483624552893621714640445267632504724567644187823728778583952847035289736359474447239061095843226317055924440420498070538536185119638115644277281592567503874632544586601349382698720520013348840796724184846011827925751989901864932564403288104091382379157340805282834977117982641270059059111420671472078665113829190071472045082652089976933703109279277855982113843899351860125169400527490148117931613631788158762277058613676439725564636584403960599244029436268502696749418717916123541616442248416058267189066837758132258798257854735597167264608169753501608410418857618661990603199000120141889941432658000804834786266623634828220874932945875475173058286961329289776265817864214481550265569315349234953810805190897953841605746995311787523060021027506930171350038771009674274982070656689952816747591763026676033639393216707764488720222918282255914128867203054325055226410426913474258696379176395558438198028721949400336777216245726946737096153844908060878509419645380669770469945206790052521399172695451832929636503091693618765648198662028762126011913470214401395393937488334053790445384244315234764494857708569475918838523917884433480571812599353946285764087375316127859670486300187766248556185171830659321725732342997941449217213821942697600283045739375506857601061286480251881021211126009050761463439439545806020063404703060460193864932735841893324070049773915939145149545803272498430665411498072841795523826707937988188607170089272815375286798742818477736007440022835750693051247644420180621011684176486205150303009250305047605794857713217976313482533201900553823759288290246176540739552479407758308876490355826983553152191442223972384681787000274890873505933746505632059549310448469486523741022183384477679867026990121328259293482782866973795330107073449255247743049231975799050371918748190959148495056988570523436096142140322997698750498808916998910408520148961688406184038754235703481936578158927626992988723311227709640720172703618275217652435178208521507845389821554067190513530542734102744999054011601977897294389056200595453029622976929100083039151281458669250631311669573619629170324049024940786720901913111502469466752048069019419662692978487232572769644591843253178894075838802854658074350673634670875425172471546264158188328228546400839588853113778221248843226420762410828685384948792907759819191394500172802692376073050900468093274573588992975935310873462886380658719865597216791620907512183898718285459029318475330544287185771177386671664491666369904773364579395204660988950172615460746380639273135651098003052469897140349221817254546019895390918864215507027987485533374713337219813572545334975247411742226909944868378418143345123402730579752549135663813609198965652526006226692623936208777681075063388859040473474571145508628852933565320768294342415783764253632534775654240543698075903238311100689088161777223646900476177727104151676578114041211474741706413646902534346931287838475391137891579950190555370526166624575947264623744048632169909987717314093956359877649272690170843335093228944434065186542684543130312246500111392135778253678253378297894820917608431556103031532429201882720053981966392096604174694112841482292699630340949303524928168372963160465973912238653116082014504188945001558461031373691531111013111899362567363955491536969192633501505353222037322771526080199326016047915933585427243413802851752021685144459042856724106217866615627458940606986223811614449369898275962476032736001065604028108347177966150896453327541270854231379980450029288637580478331795438021895313350814451256541920544344287273606357829860721345032526589954435402711432785260329592794615939647453701093452962757932885223277402078807758537654172471910230876839582375631149534810342955305219670712036843680084644833944174232830490430238357149189484340503268815532604139570640771351838388651493756454030482562667579124265399294547155994142596345533608820454389137599153836926296545975523480423213655885280577953539322142964202040347120526343644310641849698244662516560434064616127681945076964457646022880287474532009769752258775487215611998725532762043596870040049305121341226866222578077693193998386440667749569957981880796050933611594986497282079962725171734379532009330861382227368986565957724811564641481237988821223307929700602731079065336520702538999200678043868130509617653183459788168282288182495035433026027116378861334708097102103305095898304015748077534114951337425547307132703194386151227727516986274111828544803914143419222270547231740010432239876189305292183091740633522248923523051540473771284832315572179583530016826015991404631451705985420967681836797472242031036781740879957286739545461104068160203512805395981256982985168524047718635581528568852718893600084983232483301927586639221630026253834391814964933930733961739175925608437873531998751011043587951345066943613913194249585416581332352500901057090392609065133356059195429083857543000550309547168678780107767571645790190874837206091225084898910515566882736541217007289805225495283085367838319879727819952108054368883373137167240516351359981749671195125976638548557724537069917905837381911291833099950308272295314348437627169270923168803206175355903636021679055652213647856284214266130279860292136097274673386986967098504550467625093777270977031788072449787134534410338917469102915837642394542000389292321377550395795725262643596505740842489280214984573367961909970773705481528751869785127536000592383970525588607707698822477482971105283993461138326179652333871929778917370415158961331724347922577827364294768021690323890597779909011852085874215251050686357646826128030777181761951300390186904699657486703683347944337079239687428157365893319583214308947290500319584300087664214863398780601224596113438182604092206206948265842807282268230548513296292092633326026629000261083221053108347805614019889784501901642802245711661367343131016234665535995069064282364080222556775032752217665514566826210687863457446836365217360504391587021391195586320426513852827345287272708030082981362784730462895553805156213778981581461022224201664945886921243266254416657458638691002043067294315034255765984691477312063278431253806584417109570278949394472355078040475310889235620813606299167345858436274827651085737221440270210775748534568417562520245513419824553526431414433902737785897256408309242690731954732484318774008064127310006883228770343349931723094266064248622710011362128963968958066588322492575921153537977868020186777479377022381779251449244822581865926483201078745664824844728244856552221784166460320334874801476233312132486558959737693836071558723873496768241544105960380846732696236615127573315893133108957273687237932784139222073752035327164053013375251135838073724026924117105984583822551628441372992128198149942851283344103592680188100397225932036586950770762147693688023629534969105020356162710212710381647452195077291204576479890627577828833270693687448615023758152004904952567347514124870399628491042316455785619661274391499101021366350101258275306549391697255722908729738590515502779743516861604882184919251816257769585813278038316649753477113113813552216238806316934207820063089713266768940717612918694021915358037921225955649693379382371839873391891859605557933510013177355690244225184572445479797511775368797494692115209809473606802211324906183105803713077845961798314043618723416294252866579991986907399223606460431949017399268147295734143480732307548899234866861294390762021624738872445082531951661592356505286032753482332601584577029221564045429025929479210607218363300932629326710331992282335413985615154863270453471718868849929496129812581661643951029764427745022959774243915197148490892990379808040261936381375872990540381210876525268506993181736692866856788180753527672277017790647707674286646697719855476835924990653548035407072402071869089351486177196163503573381688076593189749691433891382995458073325777041040273359798048370028959075218604593797828862015706849773953938927573684647264896880469162266554338082751603450828515640934310627345495279081005567045136590284861497062187420924068036436501290643000480040462118793667344465023282283447884327743156329014738743144600815538028098238434626959715579677514263270760410253731811481997389144892955701403976615866825660550855205553984846614692281739027434896882732030132916896562223814836322203193525914366813813858607625712004267464803641291867775141362662347905106068354426198286259273823977314995927108950089917812225119480029834290416986210036595399674234682494098534964446189830422079013448087622628075218351992167479607661703288276972946318330335686454979962575918950216429290662855443859925721645468978701641905694680525535038172957123572317979995300347558688044416482210912189353768616230639873950955039215382129644184249280914816124184904413681434831328750217650805471992597555543870663523218393291887988130276657261173738259191724570320469952852583641919811698707654985915814774999748291055406953480330316019756080490059583218582902579254268193479422755963871379745417619997151569593130398567570062648995314691640500083009206642516734501204613626352870437088944431988122057353928288061180487014235862477864503677827897840523700881801394777066318484114515356944948704204968490534711534134243692303628320354404056069709359218408806194066246460640371467948481062157572775576209290963502687375961038738376856215690928759248282972679219427729611257305883103691187715486242906476922891494629433757457100859626401756459693271283031393898502034984772140730891906597508707316362645192185651805018277346890399607913687291041238916369680754050154512596263360036770516553029470596880781972633889851922891881862876960759944673579010487114652399014902190213257277678334174982826353595451689359887258341185549231998127682486745762830818070230974960519255194355895845894444638649238755926658982041099048396763862845993631309258914892523416445073893520436172527010384483619051537172339188210736489155804254679649374772585892596714527921955415370137059779386735332002599089045384534013922529876464887006751423978209749095607770844078057714222191742600028653451100037619529717288796534421604406586020635293538203318548309138148251751295102816127167017723962332502921684751266906278889401306324719536856482717390519962156522561254979893037807437582745932897405229034617146167655671463020227951827122360974078927516108853000919215042806003095749712782719994639538235171399602920543586083529579178248548936152538608034516426403098334263122731122610414946570226850530236035660361764187525542542470713647949790488916742927212908815336059744918387517495018450072096827724790315580193466717979677523106149459215247065200752506494036327530646725596495164941204057440874126381524624847544865196746574040680944010636707429190408629749193763316337910723925904682125242946618535363475956466671873859236726222834168814549643904554196017386284622895964642251058379945997092088938571606383549434007208413212660327084599646970912535901791203730305199504582054490376262822903664051888614025178439628229322734884640234821552486561755094013325642245268070472242445673577756612446064174659393519193212345985548153847577806864615364103805895011325386655567212223770071930533245274095425902667654282779388775526528827091204136277469497327266556112540746979934722996029691931440006252600244606289319577027696820520643989932962118310852734980378129018945768257464142572716278953554069810913278914698736825274728586815892069547731100403774612750063278646613519423227349594465549760011665275175513601235089104277514610639363119682509341811685492648897049088356094795055380238641715817794609111149502469923902753682551264654933654359349692763659171878897516848014819366899472146643133460925481928319834891902064087875012615839986981851454422791356764095893987936546721861567009133775624876757978781354819522479030356925891539030510074391367866112403622169478827926870944222883253457053401832303665288896292252659875054752975570000669336663663292344945882491481625266155010723697657230280434846282313603115548938876837780786841086363686788420249066335726085027037322573478611303720014325777024745887897898380075693585773536196189314409412844680167269975571725586715025740028861275742020906897205870225136976592675080408689715699054568078033374893581741309479781217370355079367654249427660809751545079454389113907591652804247324703387994598380988121452513104438857578005400629341945200518726922547399648286732198610990147444899613346544824282199086783395705763280740637744444745346451285336425380697237084428005258024611579040536827113348523762527792194515465369507323946241103958012586554701790909509956821212859216749328034256944673303832789099863690722814936805831968171710551915781885420542317483059115677578280812364495262737693005606098427843199306948404580222582815363932826598465972423570350771558638759159425767159845782572930219902201013703714221433143764572772027296258981225160684579863758341223596327413289690309378596738695886751861314867183965649494077942193395097630633092841667088843275509131959040185427994400345477891066344110655231122537262928403225443718245372889590895731954395297409573958185340879300669401780891065990601522464958894218775103277098223641038700907382775244895849657306697603663201274635816047241631032452319357277047694521991808002395146620678249562441216197020691870225064158196160263608926474212985455666401552104320022639250924355098196687385281924987403436793816466592721390154805123882420245540862137430693402279376573416666653240422453638935137840398404395724783217922519329794621791631257097772309055542826059713181223573203688874417510612092152278652051905458275048137967326004895777548995901805564794653455983484502502495789606093800934422150174142067318157825529896206109142972142878937800268586908127163369874944893894474005028784668984937929064224751744594728120581792106588252899257913269989688770840718308365340666279685397100325454664826067367474513101622619672478183321202667457072538191104808279144841464255690408420468784989152535560910166802830963861505759664249703658752256833232960089581990133112114571872573107694581033884320721976247241335578068614618928442394587404590470865393018014921561576100721908863256534803366759366588661162847405404850587339413925499408438808937496973065003679987641142165855428013283728131055050614695842452650241047330036252958666700793670626098611453361374712662912086004537530387740278616536661519964611706839742128568568954990378103004468428415269915956595358322998760011112004757123335121812850874019171593289717972036391641452715523703116205882130421902269545247625238782626935842791788010651278252304312319718426216571203458110155205596775811608078600265470912295209495522564051066562277631894355035666700760614360753993115914609955876017397759700456937111561126927688288000851587530595579021893245272541076900267228050045782718935784234984827464031361165766453832560602275078280458946839982958106965783304773591409962395258663948491839369639535321088149093087903052045218549103798556023702098921086042822796007574839726448740426382879748322934976141793274367308466495247756238854354054221034212262227053782225213075714301696627614234173208423072602829967346300425966813378116427740938429938143852544412695519496061805189426577605275911872955460383559762717756260198286539223246909018275624908580628055456883853343632770940707232127763232499711251693694829325130177442516215766564806166560983889330362371676902491058734116750885519399704102903119015032537324435012852222594534372926769997971523843844933491954662428779989192315324333448371084303001759689097034913310175562133697550209134070343362584417491844989373085514115432771287513894982059147013117344906074886235744774261632643528676128056794495925078825779485846058450176216534383220756736419935711636512947027349294203755219450750901047285445311704138163591221469264129481337907346337135922827271381544394350701905280338923672409409637837852472340223717078288201187277968117615196329662111515810422356215231140395046297718702581255266865777141380674917102619362731403632274922871614921713702626422783428794656907932532311584975147078522303741630124743451902976507964748835169552383794624623118571660867358308074036288945011369530705992217757389226946983827872866159493902622003810630782416547613345196954800005595348319312419321805071069853272785896130371489345467015842845166979633339696274925777305465154952744505896752569476420228129470717324979654547644307317666326737006431984098515522198632577310957433210920089352062620497049452064679381475161787727293804746983538274139316195010919826108162744788725661040616919581398448820943453364800050793646313212739051901329440636363216267970940664565857080159916857561687591089881443554934408993367500096355639050311891332930978584080615518880021746203524606385265143600060737927315933098312327295716726260605893544088089851702753814777771245606354940242583424386238670513940829194906122445993893506803259139630234894458668317764566290431355590015349184574340300727729610506385294192640297566844290770377970969804158676327979398963889833217761661548616695210437462581525714387487020815103136227662240844428218203470530558823273082182966055555764381044363227044793180055362074592672093194093679658953136199286923752146272820823703229707903432788112045812340048908177924923400940693675982496411735716784249616658186054340708798531216554799582608983202724135169807205778632862955292700000313373933371928351769090955046526103474979372599750228020352120098530948235002324935626771916239468986939502064173150905306901276332553737994369625384576519421029937026408423196470217220692505515065564866719826081531165286427457322691775414001327627949471176281666309270156133541719180359911400856880978602737012981318915457741836102681667575605640175566680800023368950788735434235007441465442928096256679425720629470811193884681419759080572120933936554092681996317327129849998845390685152680589618852769464127163714940328365460586272111432023309722526406722916347660843816031793190737019266438528446747451520531567642278876479520610282398073387078153959627223394303288769314232474754386139180610007631288195181842250374020213453156167678214501522261831967172380191148144713976257827895113461067604454267917226989885465408147288411652075414889612959243659169999155163514376500758911639189762656470124018984143866641370918140594871848826376465944350820358000639106585401285265325405134544185374560545976941647825379731792767632461079863696546761750742500878853641304722069901153366448759126693096509600682943441050040581240983436510311834858619447639976305083932414039854618617719254431589401594275829312084711983255872427386744001635638171788514971884316704894864817904325528578914654292529847344865641977689208035549567516025181682995088448701119080469857377571909815344865165381824787350360535922680430638831696473827273193592076571718593156169253012598875797627582490215664821687061034427307164076005932240377182096668473733639134641617150666364706348243621233805502905717980493798227644764930085017775112786876826954347681335561838028008064312242586131330555486297623262586398147370912623477958943144033906773271807955968948751085520495280546578188686854067185937645110009071747287621610608268865972124831431765235271934382119197224086050152817782797283440578297814401064805983857438535115469907390787881032255025078787007482826070389224254634218892171692279545666357678880008160005805329369044321183425217881950341966602186148166254685935858415893053157221641875343046379892440473356054817950594928862809555294832530618663328473260057895800430567022023192950890834611047850461216094430511955405820392210104487189744508949948894450117254683366063212846516000553504535299108575890309971127894009145680569447419484507486463502992799009280174005726436105549088302340410739804701384046833597151781791840395522057375066423154202239344552040883652555252244531416329926499867251679860187197216325646152712565388212283825001439988698496573590842241595904873658876585312023220597644157519768076126262543119588856298078457280312938823612324433843559094091274272871913074327584178761432198505099950279719524385996083603382042452533807045954647722515878854522752301389289787071216340025185792983867088249532493507963648218092376820694088931776148558228070520188551491126635365349564256696045104360324645808978965139458180858301124188497190549736102782049539029929886683213787222899411303666779370427910473417765155126119171797031908066447529305495846374798350193681549051095410385098079973007006025901847689212878849962428628988756953551881850896950007499742766296314473799128140255779462248202726666506787435907425785949162772215231440348209561305951362585706805857215443034972437593911490071763533968803332321405648506157230177743162566436633826530140282476137896962971930575398820918616694980371787948944712422363436255431850581138132154820062835382306206094889668565186824832947350608544253042296819365407427139445037002490418867029895456701255142508881211165794080290101497289169328525482771549997525057864680532341194747498291589571663010315582611035913308823651141522219946876087321297758817407476392207829605206340022582385040404206576247981883640853665488755285940932194858033603510615980089520766825369932735892214619640095874428990052963691250806401160444205907136990121563846455808278367259919350533264825091211500730987143282913443908660506334921886852083886292242399046206701957708709526340567692218164589602762363460270793385531344843581887581310072488296193441545551930893458489924472682015055234486229006335497000574263434619063924400644396474869441796322082116029149580631483317737809808948078340356169149420649693252333389599584063040982455104129462931643866991860046631770432689968589032056007950080615503839740365962959409217557026653363067800317367835832889257330277054714396456393690193904001765601482837804884247297419641304342557032481551297868481750434150589403214565067975066707533556531155715143397526720913145229303167542094675102470193588425496941369718022665024681397546250300400378380594522320722763822236987266188529307610135763338080049395557006787781198561020107275763833826397236599651830646049667009284788691841466341081629936559579238891093359399271052370323821738645132154046873233681589449987483692313748395271078338398986819432961288042935324441734422002676118085049910920159665496934435862625591197410834877654599272870146873137951545962464439493827285525511748050081694934675303806111756715644628710858796962016327909115293161484703972242322594391068424601324935801819823863318789723874370234718021907930557293388847638626584111946137126799166070080005880063118065814317470992402630882596020692470638613527022914970019724568486591112895973798824848255616151875126813601291462662904799480057607669386118207619206045952138164743529901354778894741726957887606615504229189230292576227828311511928781376133009018850963184737924726303700346534311151191798376688922082167273988483013646671165472543428623562354897236971430971661892691883795588337897935348018381830695363266903116661878313304987197707400265441249744880215282229150689977418560519568256571261668797046671850004606840278825855878249469291384155330302558154034906072704517771004747518540938581893878830397091277738837789422816311731484741063766756467878672091608116732243791131033576875191263892966377781639437798239090274795917237587055707140406377300340530975023080098299155645203577583602537293847265439680797145017593656620083067943153462273725842850189709468497687087208268455004617533777824835812658047837793336878770444995685241668552372454187905556736539695783708264269326004412203645400436277401919070582417076938513633568586957952913123266440857819523441233457264878010533940847058966178988524352697508266870652939828983145058999477908721734250158889756197323201435026333215502529234387742040866228549670078433824583006125808580976720718209441131514058877122582983577154414106192318551421731640881928027127903082037252220964875520359444385620935495347891035250732853340086165753497442984973468516896652193108394315085012271947524037443177114008819572814948316490791370766672136187765235632246650483551819201126651482958475365320740894289514003319636675291383945963657166375828693091644277847910055674189616114195925536339225787869131711802615417068576594331261959094466488010028618541666072201765862251846276983043704063261893962326931100329034679234848693764059115917365391091768843621987996965701416529324866733051505541540015644323351422136990865664070696176482297966614082315029850645521019530496551842005048478185639516166509177959775379965711017584020959021104985155903101774575773090688922916939711610877013519409693543499052325544340188698891528916364766049024846426722596903021842725366701476877369601221154792099677428886387075822245431882918354936357013863625523501578164407282307254566842235737734661774513805891136480731211725069159555345913986699248566607556517907371618982788883368435654154096222247959404832581403165246381759685775606485032202861700346207939180130730296741121690561609488788567651722559436708816334272419565307448305422071939341806848791998574797863394026381757489293117080340536134535858136913298622241857352135936302319928381711905622386262177539963596440004850269701455845843209541270957831579557070273388295691490273883444404000469051233252631041053812027486732048891240867458492260427047639559849325915308683209004518316332340181984566438069830408954927129394290688580977580198127055710157328779798597263618741812057315169550762298868439195220359007023190944496482314474802217022313605578067323216085312315860891731510869764069214061925638524546104882405034200008983470567393957147646974692567693069699942004348675968106454859008899735990503447677609341818341742249877398266167125228988329808517361447612772823629501592177637575753182157793983837789160272304949964354019061692114995485265526748687389635037046004569634237662683259933280890991970844833513042106204730959170343064245240982681820351133397950492263949214704693474469252274157022288221029613291337296431086741908285473500782567655297109000578370880772827998896986826210512589634273635852124537567635459343993117919701844894575530736234809595031483859507886836649752936386569668438472855258971391487148320101726559857620089496384276922046360040754470607029367235382386116703975266938899922621850599761843026614380530783238359593560418409215297897069486557328923874584880587554878205615542807145091585438887912917860564844993239435151045307095502491474976480201876688866811912492474643628284429837461007348313514674626421061551140634271058074649710710699594918990982153424994971729607274430100631751500293776119939165181396329151112163714937813966429378580456438365415987730257383164193505667030844280298540294347852007577676597194590017063616446876457382949041862390298661176106046658639325601942012931040751803314452599009233987318477190287487932328480808845049966613639910263205488340250267963256477856470808009564890685966341160423744304775487094850789772075817573048891530480322948362548662438765913566344284506274076676184062071528853155363062032477908697189619695057874188716252568578664826488113662253476620522113804356775219154292702877626497950581141332783143143864074118113015647243348513082607686615955340528229874876246322830874080362625737723100315341111549949131307084737525439447548233651524000315377247667659319501191654794608538044953531072494435316643019020556406073337499875034957088652266912301844092917600385281442670512219076816930882244613080721572560385760938771662090417197928888102767246515955780856722419405308762070923360156580421855656737691563164443345676510687912589100791305864752124378989019886330153005947781745110438772000794090959062643092536182599204867628994055202026900042848491117530248514353535967605261249319347023838859197257499398793570302709191734615820412286294191341222631005397500568737239342570743060911100833552972979689360207116434489092875397933677248589062571157538918029063530605819709589611790617317970320120692772682521729094186134358597582896696018837024972015214940035439086950090305711001794308552494838871064383208871203319847538898230348510362565841612880438678187505589386920116960425209294266335623995195780123333547765291963489301109851238925506541804964214565908660441820402572744851128410543291770444468454864093218484760196350881236461568809885456107094305724486744741674529651080585977163507759362017681485890331263762345343676490926245613420225355332328489691597629141722642574213430052032514727666749085265090699455654382501625896206019231337084178373636316899942046207653349933786652626013890807987742837967246950773252185933742329988729240833429816870313187446442363375285910996462994303109937230486856656602532391674417824151383969611627659186583899428766883098239967699938415504598757727750876491024788047241076861642548385405167789576337468210920844294030320917722038348418944093427697787512834579907598927817782900230038577937653662343879158544454217710162318310085812482957650703810145062564155246883231870363322573879536248122879974429463203242105001909149193940015467137399771074721736075065372556385938194777742336509479466002946426805677516509175961472747290924275979319450919870467360253335362494254315495444411026281542232491298980493437812027506409825930363824861917482667971115965843250745681935784457829666454199252059319304356635506787479793318621329193873285037587832607924894027233136620136889910971350389532312157951436192183114248888796239961192088895342392645238796682659018267600772077868997287346366326478856162756823154519897071573989754940943785598989920082390678800861305720526619180108091292221914545759012777449292141186047441406178295937747114252229788048414893221707780771783555648287721363991462803343378294529674316053941174810470175037243668056566865872456173351923706413178027992817486796701995614430543608131504836335515918655675501699079265835405439592167093796874523650660795984930514480060368026431477288657605929159286172373820933962108351998581469172610310873037251535013491784013572327329118821828627210145471743163618380726519386357448636885588515930637092357708983997533818622425596082839669961251098998766589494499141080678713330360730837697021951920336029450009882674368486125127296771361411234204535629477248244603722134926355565379256104378804182927525680938803822989417097851610449211821815473903350942048465688213015717542921207179004185320123282577964539505757193330102340175982161616757926247122944624184730917211575428736150329561228787728469283175195829618952433026783149077122579385844706057108467823673942692024111664721797479904914509100383681414770417395160796265227772684911071604400560519421790779898518543321698691572379867150144870073349521643893280045222190361354143101190103177233017544588441127913346918401794402284895158484600296591616338480331084611747470664827820572586716567303881382907829340180778547108602346032426795888058624121430834967314561814610238181251448759251818333084972251356998839468114026814860043982605543258570274118298100517456460136889985381419561642969199534566501681474107241997488451885741632273705357709983532940913762824015175276945084444904571345004354957138177812314295999776366452655827481254023355121780673119250533741555688230877799877515808159034811731941989759492294973765001491366162206832396088375924319199080882524023509369553327935995637203088078897399269921660028656652500756750885201244656010768386866617997456487269503679628220006931651802354054131978357445714360193737021931125664739151026506807949830599590168680603189256398073670417666737505532141716747015595903877975158218451405760082366228911698824539746413253533076117868632096305944422299843346138839116400192910337089534985545504890196954200331227865852136998529298099387165772948580320459017303892270864776567265956235705779486333660111753861225984431401009962795473956492822786421751836682724543583469186707252855073373987455832535033958010727612381283358935322236544516646273928821324540437257154074831532056774839858943807356089819813465816290928194341378783116173623111901314124995220762130258018139368092228215043506581365085908606512823621408992409970491840610063082611340740165785538152424921931073150448292498574916754596038764696299414557475443580234222683943054617983080948129613189463641598420612904096969686627050835824080636143735160662207294418633049233928223459357219050696160218777896743076127348524218102037485988708833938715059485190864634105579560673012107395400478489618784628639660358702525788699011569799467947642258235829933203808846841527228957271747330651654320857301155999164920750003380424115334141418552674074437828904885061926031553832716417973544393758325882941327012091485262740318368628148894674170974639659257319508149957074215183853581978619137151884444778175726528373186812154032374203812059280893782977948965643447255407250230260849588655985032350635405766756369530758004771741819727209261815595637798226484159987281711769564336257658230823346186918141602921361777012090926315195326603914524125876224900337903350611132055675000386695528504164807075693091971786294160105625165515338202206519908512189756670707272485854849682039308234396899026003395380809035334801620557169898864540374273030540301813780369375145682129795286949114408413845411455841405313299580855294583974345412163026597683193641131518261700745642236266918224126685786228946403400350937131634744478295177618676433649171602879917581392567000181742708774712312221780922262384157955545284149791695445040293448887726314894699011110761637502045752335237991477902361026418800022655430539487248262720514865925619468475323545655068508037810919464979841498254224310546606368860472178283966829984731035509183629335838853108930128244378312766785823139279954700636478110460113629973032981265766064730109475151467493458548315776012833705056405768471015482758868696661082577838020300640915427284628305100681152650029229418151963273722985661206432028656719926152461759930183258496050841580820854467012591515375840939294679038357548641008636670926964183608072360895113688558050858811236370873557385922058835343301490236215624541534600076785078737998047124010795048197876949249270236851281089566173060259976094066591544352735476646128050859192035353785105811668637161881512094983435638843673308895177448278266411987297485490813715113001584041827218466589013198131924207987788653404675419507887419629761265423058518702784263566934380285529065048544500501036635508292301021382294406109628681079025938989857418940523854146796059442287162185635265638180024344045935223839341979750169854864531952765849696084798755020965470872394946251617678198887577681020649566386056999702915875952006055358261454235583876666406909988027181013950263528714669778584992620580708155653512509042312648873877982514644028765397477087430361716869746142664252058995135947437886045481785147381311241664378222864947730990462592544665463772075065496224200836377342617034601361789566276559390914395465119486461943825902245396066307574313392427919246145328556767724818949477569863884542735956558449700371312696559189251434316783875680620804458295239479598041226744930875161411485118716575069552940137074113422825886352255132163851805901106631899283750635583934245986839068474485919242926761377250678197979014452688197795531979905679515258422467310335238335470080428299456467297685437748246413856623918296444452650941171084667222569972625058670549086763564428336276305690301349008054382218827747729040711725309159885159692007064241608197986614803946236440088183877660357432196109709895425453938498617126535878846462865068358695217266178332112561304878699075089257792373493853676493820496503073368582320903314252641411388598050931644509574234815795366663198535334684101862266713733679068630374913421069573987275132851075353749016101066065084372471116179140763354396926923597685791700882483259923202812578833553962791793459636378396331407097448560483805202211115344378212867296271903853183329768333524503393469435092068005686419253253379471599998084995635988729474211827513695026812045509290673398801555964881274458255338783860063248375593559916554668815900804884101445183003507907043515809949847207441360583377911560586298161393216236113634792860785952903824628276528080724661397610781105978180811218339591811419665128339914746961361142778295981937025957135009686963273588276049130341296617826535738866668189103889275762421919818209053028263904975045184625769550414448742651612987422447217057004780310264666839281833976096394178725676353657107537638343128858504444899648447599007777885417791638855561417208646616582922715391001658150803272327773993809955832053479138607462253183758544396497058876558069872862843446733949321601037606707446595544609243965237483805800969704788870151364304682711339749259297451483296016884556825115239194746374316416059648148704674452000164830346866733459633109242161039808786952535641771991772557677477126084567346294078386564988554586522576414351354017044055388380870267530410142859338542550174650141520590585729561291958398083806977832149200633215461289445670485203099447700528003875071536768786465671951820697227711867714763437399385417990362265766964441226526867473803675863356488356207681747528172339009274837378176814380489923262091434200775621436704683709117754298270135091707813521233470127044239943440344364608857704507548763377098284455594421400026826850646472274825774367307534071492559128761639981220222246216400084719366321436450910086471775284186911211355335679022447758116853975539973664562510140281955070986110624922894613103144943568948087290983512549064460029199669420848653908401207050143519899824062337931233167098421422019302135858299206739453179710168425484303450948274031961339562444623159540128999082735822699033428128322208732285304477868127889171917048253635404417563492664729636965856728484969708579845177186643902060001118697518002371341206170151501392634231849663546333704468119439915335473339348092292632603254817560529725221324632719508375796463467484206601904859601096730691186017977957586268261622819834444591921771224626446798003587975393830147465774734385674732389276798651569078430428045492991578135238442272572863098706519042035109685368353210408850662478763556059216448738951276612074397629529532690619094336286229372565026158345637667106485146890866373019230367257512018319532312823872544921171845232869999105957275631461416558649865571675197600994927345970693672248029842510023815541017769071223273856285540079934359728748355110885763498668390273196316518862367970096601679461738319282551707382198801178621648573599477919292984094608353633712768964144818202632993158516052831828336663927599218930575829320263668072729696585475290282825620118498943303345336897119096345112072746888706125298934425981202201658371484033518433783151485560688067974126958244953342561344522777237655390502203150284051100887430639874336042601303431459816666303483701805432425609940377175190196775677662105126175566336325390068540218601498206375327069170148883314094013613244233358118803183079737651509492290615821135187103848805835995998338080086546518504062331974611474971776047529636961523409286403057668387378153131470426696457792679724985886574454793957953561644692602452146306508021923804958118279781056787566120619464168700828799445839315665123260335631702734423334788984200236079314949306619879812723424047532218223269142920087188316239658853315520631542113319954711925932498042206029264907404394570374808442928724524718092989145988435274649713256229274814126259426220238803167090100003809161392984955516175687555399548438720297426519003125950778995836748481038668636282498906344462820743447755711978295759322505830258969966865440313250020864605513236020614939848822972297797469471094430072915853064648420953789694908567063168300191283699411568794282550197008968862815764775251919527044185274600351643910129368396452524029231495551527633026303167658847343383762314519821151452958538771389622185151018884578577524729223881907562444236651451638200202143617607402326321307192359865682318376685908022150015325964551988154314953178642453398413960589041478731840531095599381148522815742370662342638300718549119675588311359608948048836348038315885844277550743450075079041476332533636550744252499701346234803748215512335558350489244872186026050320218780695862951457906365188621073230919214442655294082137367507263438503609088525966397871120204163674698837014901596971297155614295786970505737499720445214388789582523982169515823991523210594589404170699806906706453323190930814302086275426459247488790572664870911913088805130150018233759482639500990224984265529722372644212383511209127992236097063269581510896838855565934031091048528567963206753632113931822436160797058285199497741137379179905331499695380717344127629718025329569166911621280892867427890457308885229806063137296954448688674848775345451843902493764838908052657173409334294844729586578321974974675479074979507097983484345130203799502358466439879541750799085856160483291089220488112138691991578119727582498654776613279466500430437162497116506709140062934059394711900308829376068248302501401589079871003348558686277158304627287447819967822964895995886219177712164183687380003517044924958617155022673242997164456942958193804426781964869462774976765505782651105081063095906945906663262616798135493529130758106921773361091940153465544566298408569402222497360511014467570306228429637462288994360240470812874346828752744622533886130718470766142841545967050109651213570924434703356010769260064658306242358099110803916495867581624710274666248757915417219893099373232249522977824428940377380094489040528734324786184007570756210091804676834795164688393920357922852557142876262045118943259648114504146626713217943041610871016335124533370592840497033386627813843251141345706019389434741074174331343174065210834098054222252942945927470184013392128036849984502769731126773114595046074784564728076366115015627146960555532421014079490866431811103939933388787350960494974763406530551393695752390179625328957038890861890821105179350650527340875091225111472988980807634174000247379371480150409107988920408992789892550979055764700813973466372483372748515626245383655892594843752313506111128288893152841177552057246096394996931948227635680306623211900862985860637350113649745693853075673199065510227002320367952432929187995649248945000227278377232094590680681040302967430420413871490312013821708283293365508676850173105429329473439175581851891152119606223246643566219888957143894650315057128543760410284183485750782818498495894926739138078118542893803734025530803868099190940833393620318467628079241492007290476624937137125789155018672518332004010017232555938256925600934339264314168624433712907216384684648826794233260805743914034971277022957995485228198796601553646604848016763671575806320675277327107829390205693555374532906478158641510850417068758564444272107024163739895138096952423329434183203807216122022882698852974171130074674679829755405489786616949548075080047025817668668520298963306319789719205859993675416746054281101504254993402532790391230031009385686775756907365684029886935659927085130411114748356925598246036814299256605779353411847317213228884598758341530085559257448061107681571771246384208692194030098906363996893453231280553714195248851516081198238498790402521770357561406416815437002476461233036299070263720841157313890472169979378988705286024344437285554995236086762923609797239223798105709233989533790599491649800736862772152780064904995118891492626588691398967527604160226697270010547519409778445538014558643066024589155176172765891466875411209321933361461710286668301375911195318154356343803954215061548248072335312384109802486971248803871906884124516368336718666549552872145374256124529346703000702091861351642965532632419073668207730437031427691559878281322180134052896874424461661624096509602231337461805832712455078154960802040302910830397382901425666294320690118842040381272635159170569276339316289415857038532397405341140053517444102875436405346590967998317749566249339066704688469094656485655573051109555912279650591015298211032645754831010732831451696581860805681730904860905943546472702247260596652070304451787933428539414495568031375498213846955571850667062014111181074859292762220333756490942571312785012727582388215428537379841595976713240980294402281160035889970475935161104819101492459703418349431589374544923780676628274598815184798150354649516656674560201826809140995655149825652516112565649897584307625913490427823174520615298259159599865538736871242419421581025815972758407333840171860799118329003196217102377313462977404898387022953803945123198537023849739208325249736642220684819746860101672500354744412907599877451880543525142555520641057738492982553326810834230869420778201891671482749992490564908018255702221075790311699241500703310301378467145062838730278708888192719181329321057749626350909135712216918381515361916406636917631129556783580954938956901326430488314232902799766963605585265309525042259454558475050369194391602669278576563571409563841977282192198545705964020420817065228895398494446337359176334041639571443211196970479248160474296860387795972061481105282579545675170984606839786648246950175395826587829672585194007874615176729376378637332782782924554219513563654616301714859751971186566651152156030098088044159086282461501812560826762864229141625625524748652566076408760194023266528671886235057218301106329078645632331188162457603399810818345911566717579577605102936171505757356152765554715025043706224087131092503753041615325780377903148171491853825764215993191177253736589563793618723701779869842053367572963932894466249111151706752774158200562086181768266006588423010764000001800179337141244368231064750093013210594420654378425879599333945270735848524247775940647514898018403135427932778985794473385297649553100183777170660730980173136119993703070097181170760306743331875798040624583734590285852655381455248579665371959193500787220282899366910655813475467119005904501639269533259896872299358466815458230809575713874433502135247643298798129242415291138768596076941929918977096020343079556596636799829630761373194400275926063265415657850530343017405423778758497460641485642587142304034838498907811290738287128858279245899060446186842183734524511311268285202447682914626684520805576961054127872985652371137813877610616406298462168520762947648249820177171738240648181823205326753223313122362027130165387379317251174866004916738899147627147602176583858120963630696309812755975674626169595377175322893115237591468747381648781309704571238011919270938844938765608819967436862782763935884759292273160567214721076256169553560886281330852985862526787519489997573031239612506766070602355612667409812886897994384275233030626039698093174225478375727885787176739305571488467237452912871587346722929471142998843897915683301049664359374904297585601351391535305191625886896000928503376330491167788675752555662035527038968649015924120598393884222625154309685012726879378787075476182076848609640605269870850349417043466013088997062930088771882492760226357147577999124893434634678342562740460617025766476405293365288970877875184258227761464024986909599642972948199345996438038196362441676780937018113368213929488773985058200726836398119504057362892511836354330219292876461249779389793610506231956558316144097238417368228708744239808809423491667604285003220089196536549265517446238120329301623527180065359267203117177844020786302971670190197104835227110710682071517976849647399119121823660918037818756262126246416536703573309816115229669468040064507753510297540317343174063160001948957608838129616030544666087576680839667462650501053672813352918964755652742870466104991944197835049667481077521578403143769837127460933464766919418851069591513163573257549857759386248392845706973192520922430049909509930212924209772125223536653667199190575285573853524604858064464204723311793399972618739119550138828099027026174685284464749747154801884340142916423632602737011721344337934647196373489388522070103222279459589895795832093046105452080749401790715929549346577542417757661961098207076259435871127212476502296900289641282779502041958503594672987809855499831127050047963487689678867926766287869080210597173271860142675551578413696234709585912629353543661140665846688926228755942180344442148360342451994051065916643876929586429226044341897505263922029236295021056489327563014264158230202137391610596003672687268279988437452445981229888034309152841524692343467324781729532475784682080593637155587892349277234947608300117812619637000234675504618488600185305587302531046191059820971110807362498926935766302281443276296479950059353950965011205751294324071511566599135710468927607574486366158219604663473641159832535688947028678056909426085648142379402118010388265447424323162496798550613445250547748782252964085490621666060938584726830293747240597046322666706469910068954703858400109912634393878494815795265193209923924187982932803903978922377462125476188279602791435923705877237562530530122637964359313778554781881705244458842986334603260127112207494450755080569141233732595517934498712069791827988808500500933759428506626416695447808269018656798703580288554887670371985690768491917958713277688088716070186613678878279995261596894487216720541648345230828445233323037815490618090653009350897291862853356022735178281037482135657571246607294108323145563508189324774300809414437566942637579762851007213609206698736171767630096249443775500470536354846584864102690441151482726155607620404509793600116023492645501190754412866563170548145284276150983757114053981684557710588910425321890888374075750663581105309617475335557431481088970045769999983840896533823313251684962313338645287055591579490761031913516957212800330004774427386530382296173522405180141627488334101831125515976435420600253881342708500605784346470416389172585765313852452045822091757431130678109891094181803234704311360726320740888432638815011054168797646121482316809305640767828999140617366762089387164014704239240025542747488913793519503600584337557256331093877274048402340776332021232632054858096487630426530927025300287510334514220585328458895067468840265485761563451699264395378962071133117888107439006792113510067098434576226136847605678278367923722738427646749220398778809902894830417658285303510945678341876977954154115618119215346387066374904624188044676443879221690479894189989254973851745649501205524474189609650341811590224629476583840742914320421433648183955038857845664208669666106761072218695107329747963440445727150007113677115504144083601649971732646221369496367312417094795096689159054806183993593228816512219496117938059588610011718109482847421277547206145175562333078286003808986123857438346160689127482907139169761764792779755053416397861772174781406067077236562404122547564891896017027687509169808705399569085329981767480376373100294970922902812739538993486760082334720092562246687196247690685493975669790074116334500382893795166350754799993732932149321539805688632815060037901415644899876058462282807095224745857027469545378115084511548931165381151735254512314374662169647941790924841653841571554429864849957741452561216493060998422214991997360814019865868799732387738782073674492444067771857162797195025374777210458783637971417965943142257152243106725290346121460235686588792657024661614606367357030520492308262994498785552660941760810528785033354752312428894740654609719551926492342885568090508203134042364615356626424140375431084946063331585719521526599118814581417332897602996095986608886013949232826393070895692336159744513341732554831781795188757388272016313278323919912864985859800060978534934574397245812601973988074766612545028983253318908872714786197953733456714934162451248909409399622111060425647226624437481768503796216785579772725651544437551268002891358174031827080787142283548958888814352018093881313135828158173127944442358684625636280532911442257567996577078368184164201059189144028717005034857845804899445559626126115155660875959978465632404854694307102093289600827216610926358131496902576773613644332088670123343190555366241057135906207430938657869367534287727351156630394890009996091018822191512495345227410706568782977383344935789389848892686167900138623414704028200542460639399194839890394848318836354811682053362951792110187403243619441778629649581696973714680137627705931550510618216794504087390798893512113782301440292213420363748123438039496895248502149547111892026559302953424074965566575735909986599761173827776742778395424395558485528723134889929233250422096891366991579817789960920537528181386814493787102451054246302227782791836763472496157736508595627535402172044157710070183072064954976027099873533825423141657789732280658873668699173692108010510979865370190810795012853308871480608976261132361749704170321275823399493264572800114614329128830087559499393852399896395834166340500181578744300931076942773040458641329952724252388115730133188091365117341749566416961525723337590653643435302578672290048010394227935725541422055696419657948363040808468846803207309530328912722182096373394073854851209787179349245565973274067205274200154526811258308166508829042720451526695526446427324341659997862676710229807168145329240632618923267842158375733275308281997837518557439105501214424331081674543789593889413565352287494638299116939436730206208113516098497418347296567402826398622455181542092208470234739743773301885783200496030152142673940696516786181315482880274795937901654010484804863216496908264170372994571818202807563171104921374160719303289865140328245168431668229250578254913434579819055359432181114129254232029685558210965870411189611510984627667053796430394811476335140068762416850415719988019320088485905548677321286322248480760358185402494940237250207069916487079470421484069990475200135399194837369187144114276812753300207654436156625187660621014026907889623143096033847849286187340743720520638429116213330452835459233133962883089688234452914447872064744009350826277494740510774170972090833156592958879355985709696058570822545002160023137506130598235925647131952960418380519032881301632524999382412874646781162986371305097394270003017038905061127322039934171816402564877494011801062107603652261664300640755126809964051418672054610118912347864217740217545431575156475005817587814568468033873240949141979802546484035158706597801255043676880177114691579360519601954298394965201490376511669872563124585473390016738413127589466669528545397783186086064725863257070723090717880648022829810631792919238705508794400989851153572179932281897713772502030692842363553179452247544437699661452450653292311718863963440810554689021946390179986579256354332810738196687951534414085958412620225016364266506895395863755528237826993084488652869294485869153742331471108511736507340802136820891212249714003632303968093409858545905627672606848884110527906512604193974995253674531317480532565318273911634632692122316303849518623178008509321791672075865434483221160137910885205599283395566631561270184245528716589932738640958523281050046133000340937652264338147730449491182889190377637313957785815457814527390726738439122415235310574588746002904291782728428353241336441784513786603949593748614210523970054314152320759824642333334541490665108641513963410403167489719044781643847845702374190306102340103926161220382847965106594085424879478454201062320187321057864724305492879043360543752911488880186473250151186551686813973542383940710495168604904826032983945441050608167106284309245030106482432656626053570450242103402186894035094828229826160230482861098776693072603113352343478343430940341178731414185451740346960024435720884789427275067939146095202591486037315780127212868845541826959368865011258594527125399380873973510335843743424087816833784470692691211460423611292019621356058132433192660529364102150167441947410149013768571472149088716814622253226460150795376426943545121170541828144605357972557811318545059418486860459491026250178015196430733173474898924574413789235912070329404141776719027386310901539709584257186835418393240321487617802878941909361906813485493961099920717315391544757201882085497809212123925446072235964689864712843508314213833616028605902107789472768484952540661882881757396294366677478245058080536365016669298122416906366742521693200789566408955131503877434527945644585035528785364970176742677546384563760048128430219914085671904920796811205310923851574690703304236682740881219248012152843851217133505945662752791275138902539555234662426883122348812402336935257096742814192161516591959875911857142000883536348170397998929914516270842857877461314202895317788143488206679334357579874308874104262548722156088268821096592732639486092021665353581360242448709294402668953468028561286696895922258747280279595044102257455889768738694739830210093763131811086219448999125205573995096980446535276724842382776545340532586721505113017861019661481813184074550504398050385947836677887392479544769666487810997521511655424302923766384726759401894070812832129786572235000237872027112658859653847526696009855858483248260797223519688088208125757740135852034080410267868684578136662293451025808158867125703706203026109090156974481168441268648086935698468693765003840090838657734054903285092987744581425155358372625882633291237216700705258628128567853659547212388987750128152993278559826261562278506127972037898386221648230057270109757994267178420176843376732474707458095438401792865963687009790998367339449407528447417509171325863741738059524253373383360196798601577747816005088339294242186464083672757705278780593053930823177564781365962611175449131315029934414152901341509099493397003918258371953013143317447260061660593147181383598637014492769913623324879217633135718576382754732289120441222348870555651296516424222148249432258978398990077865177124223566015731195850829760925648761690769294020940877365403972892478477789538990948384330045920024344793609387000075474176360875236101069317800884848176682300680525261347714227157157196393904985171952294618210692184106994981287276271117984179431419445325901131022871592630113713234535316592533413931099780549613941241336835697167137522300024329868273797636115235508637350958757364494148581315549274190917194450203824370254511095111531400280327193733496537238948012872599866914061386149675079978494665021517788573548211743893148771625694033812250813241154370306453746861456731833465900428911248551183824487858535904742306463289703616343340594372202882678023675292063422105380081233853990504092392066864539347181345083536435639793134304726783334425077741623100004429340627067269308586199758800567279107909169722906150296393055822970213821123512689656385653625107932270222990133840987987667200064242311339456035557219769872463501103213385872678149805778621561526324288786596483504829297170980925867007215189195872302050066526374662104239655956166807938126150111863674768672891171918292976598350031183843119479639273332103913080646812241589983926511279685737482158780246196646964616445580939422354151063615147390987040728293890434824382949981681720078881755592229722859118311176056113932867495806614746194464795057461641123954860133498070972652766987040468671030991175003625941710883980988014537535794463555318595233651660961993100613669782912166293317106853924280193500814553445418117083832008407831951736532687472883232169103642506907447132548420161267685550954452860270577510265101878754723000135789292938196906358005192616890756899965846654139319948271816430284259973325000458600282355907117616413493505039847285695949971424124229142564283875409041531854176804398776560707194174559524986268098574263730917647892028561343790223072576119968753010151152294496573487225725164136294576433538232616990729866445733393272507945343012307249051305153084227883457386635805210287105656200565559584312493588034514087632727636726755556391461313326095392586053654138556387085816764087304121766977629717747633685358342097892596487998344786706568043908945512763605793488588545017461713253189045892119608753681625294974040960540597771889689556911973252932939273191489946388059070982591869304464573699989418674898208751236303811531735713140428640020043308913384272451620467464713507340100385817692035468521753209987902946961923537958352105551532230104847254820872191618149627368905481133389034486135482768713610311489690767377819084165008771079103982663063249828366825154892457321326121892582442685768522624193738211663793181546719018241853257762804893841764716136630531616565019052528657421079642613687940357427156882751855442999983170857374708468941766037484762465383818814159692504307807623357017462829973331673649217335750455524326163230383280310513208719224315622386846562766485119764660257493239388227265665224045237137952176909321504176960617319755949162947469351528751261498633364383099260612218124754040735425615292356814106744677953724730006489805115772384473615707276699145007663301985652584043482590322275098888585021482753870389834344447910506186841450246729217914984744513838750771275162809239288448008849612339159447135972944151922361581310937051912058588592046941901529711996425466345439929580139478113054045444461967103251921153476154940658685734254020781387148918650179754214026844315063601097689025194847532289697104006586945923507262879323032108213495567197605097231336092925156354082258386228240063694313245006173264621976387105069506207352664237717591934405318462947202624996607276319619759032242465427612950609689379678916126292053819249068294166665429138467129231578821178176741068031841774761984198988060993466631753749006387654402945043733236026309303362795895947386148951603104568753002836444537256071216582069579673067641634518079037153345037619964406547940152920192020686869553284423625776535516187275936080710163490697606500915951413258001552016805035441783458034256806382424703819306208969129657274846282505131459789089517628881861431945754104781708036477763978437221038944217181305026486884077305616573991540472155222246943124194594944168518960922533727925271168477963678629194949745274202526909218882021701588405104474902856674550424352870802897134553639623829781557286935250039542743964106398581412248778996697182613348973845753694256020857758536229668611191208586051008478737207142210927307415798207974095389123127823673656753465515693567771915312754815349461353088090827683351147037655470986800051563602251401299606057068752439373057556465584040672281323898722580179219981456615412451348306902551962779365054022290422527423739598882508256639437504703757395692183394773590868225754726814183951614620193749334016606092639999730631560622584797083378420179780580277329097747314045151406782111967205638819061056577903740297738717422643259762054013536000904546748449563860443078821361044286973293875692786450832466811175411805624530851738753527729105888836417039329446791086162818042434034870427479033375771983145519414546667576301860990490866089012561000884389277172443412201470604508812680232034679088278667972240831746974454504940597554056384422727776736962248120271097866572144725292609239750837756634455473161280517167964483105691524526029239033172892318295392887391649779734347866444206134265249754262962200041956328730398782206730862995651015555812294123869071865042239912477279578715119454563545189576747580464475228716889148530494503326357045228071871335608903243680590330807423430043398518658732204541405525960629160184975944377896992401803730118877026246504023221032471765237193771728514731501849432709133045823396087601088461653297787630050408326478569462703135417765472038278041605007274764233256227860231089422747696454256419941168157610559229427321987447455446635277964004207625055935148249808284695064177107244802125739166761339721422941118879289445697063468580454434761152404973635606891080055316930081704104552560424582496410499237944520304558457606361979892372566033573929366474657746732074763453660614768988832123811071566537479997964329169310807314953357849366189381222505890657592268066807994508516438308323173290363765752713097996623100528915756631439838651325335685545092330005145748463035531889303428992590613384748404759986931261734379180926159351692918242135910347404203804183272838289207625976145723650692238793963758360638866049411414431772864957296851072095542942201318445347494447651191449702447313716689137073005273548308297079367273381795098852077855973410431383789639757323246345935082482920409063015817290305543200712590391409987244728942179734988946062555443274784221489764027167166190514035558059143854915195831122957128531022873438001781208157777697580050332178702729224100248450379536449386193584521823916963403367678494028422425461294575694155788995564550817200172498459323994427533878778675104227681678439372571818050974117773917840727056585776734039368844378209399214306453149027028703707886344543689941270906969475812054419172576317074391987665217545249748329929902965915523715864495938018493439894222224097860631173444348317142035429003790338537517587690127483610870407308354459206712977748344761530905246903660486457483777308835957830951307689949682631976213649870009683188049420200256116506525345755527511253922995626710115072850238539357497245801366286049524373878939843348712277395301452435475885446608425135377786619843582110209814473715151080394445732226602822653553689437867546533004322867899883939007282748169830166043068700775635612322619567886933078205114237740791540026911240718738417608786803684442318941287644411314929318166016756784527615063717228953750396521297232835317410619291138453500515776540033712174541272338071212388894316813332016250709832653484420425883544955979958513678569559879513066388671306621309968004004852326177634671548361811158229284394931439579454117496547023078231164093842566948707866870896011277782275865164840767689825361610557969499019554133470256341875786679899955370141798110896776773897014909985677562105634461477192363004738892977585414636061611057429123607399108627467471142373848319169160383541406343330801889790031013842274608153870879314561126645473424897041364007482352618256315481046409872599886174031993904828256244471995947764597312634877160715490041151076721679907890146610948762243505980579577056808705531515499010933309076859236570061135569301946765031967207772800488534222903708116432016146665277730760175022153497510257416573299713248374162805064538962018721154084699292964014949600430591352250339314003151160583015280404863737531377056568173738689625572182973904584549869744880290683398923156489710285000174381161594255019663394871757416901653261791829916329944424022761651410401801950300937596649278385106388888009470758666972540637212795915207694676753022936626273528707616039804969158511852024632724037507739841611313081450271890595280113323607803621068697371806569309668128674111536754547501860357306296614416674111093454913202142471924243891181644156513226135452185668564185358430946410987351776991506697422867395188146436960477721181547136373353993899445598310785834683244563214670248816316448113724775869662382666357573384895786249138073511043912702119716848737035809891511446045686584334036289600134251142731913205462891861965508424104092106005381805959107521781336492951980601030964773375098925673954972450648440375417697411267986169726302311221167828186065852943276116172318150984572928495049783774773904495767876272535740824377324661559466317747598273812387658548986474199052810083294099831445321233014195608526167918056344395151327480075919798853830128160648275498458138635745162085920086434596254676955419521173965369863790026664451911223051308533745000823273561438648449739188780204873529377229773198293498859055839202426440062009899401823048324964304807655660081506494997490574649528078263723810609696111088537150353105467328691776687835627675487959429065046752375391953484866569084258736982671643965822833338389129174959004096059605772127458199975469060828693737028237500295763297423269241265016948295772160454049270326750468285187883494706247731422048272749254377865535404386897199277821336089338263775295057564777808586459333242607687980047104113000838991499366841734628184809936214882643226690462070828785024880820052590194104210970041149650255321410201718361290189218521887975142921193550566441568376343628632362356987722819605404553502481341686529494792266203900628807388956183190227951489775759780630373806370752296485781281007332774263124863012451754842068475449971754630976801746307329591151036823206999541951131445646691450649751641922090476916211771015799106103929576827392973750645598600672102192882154111536187852938326889554404692088714409291565113278908556548720881676421686973149853147062629688854121316472053222660314030978996858193757434479397892447897015875385463381265627459400898425911060708015300824462454820472420784363154964280880357253490545946057760140476672464118498170261652066296264210740994340381632690466831497978435212220799441584415591608556201808003456195420112111452166276498926690118735714828434183982374174271589925542571940925125614321262588224025144700380682601757105357211836267425613222664675606976660952745500974557489997516398838714120754463369804801543277242720130893566408354793538269928356016143091451487416082489325400135533224033013847160523922249569337385168560161743083362088019405628250516720671073672103187046749218437839437561659761043047254383120832704608753930761568880783989393081559251311058314888670107088629322508303173612546309332557277775155733709333883955489436258447446128351653800940616470037785339372516306808091808524580856480960351786959349283336806613248940273005725910547239889196650527947001793903849854132128598629131790688217725758447172757964132753142876680884511584109287348280417291544381701756768867397493829382780761694335906026320076125017856243530326742737533119601807286214204248952080455515021277573897218367992423648910515525990663220031366923021907866673357629512946207391063065782079066602723850804588889867458847121135723615244335322767131920106227281296959179085218078685839492969817231651048580833135628177577688612391877748780663139014360682178021223185537259569825179577605086136070170107538668410370456362870998079968919299663574326757036882378126573514863172627145880308203197326059779209554177880341576987967252454491844063823364628277930204077981465849654756500784381983877805128156701748831499644604312850414562534232376002156083129694306451336356288729429957263900937816594504926904388601270021273953425802531683391537706839419972069958588730689640192678640708425057781581943549263538140412333693167996714478858537118187116257259639345346335015558952361833987919239518323270081676781777247322664869915348790901383113139758665542492915378133855907292711533222267053742481337846518692986731387757224316157820416037825422318587314116288900652252131600944886976599511232455104406835209861356517369015124764356753607354407634015322166250603924027199723184334492584802446691406697286028418826314494850173159245686523386763886712652419493837546527359201461749971590980464497968091914450557532890896020328312512681727557347061316375761482238677716800449475522488607734637565260882041576142893697674476310756818948076045606629313769587907571489902450685983541980969342026155621832365884776740460871128083619217032574679514418654825594396618239948148778741012534646480652087863015579978960061675168404219154138992791346629222280556084008383048348812910392191353590053880885439187019495122713378366388286191103825324840615242796642436927425229738524385301963535094742530601797636328703348867126342996805915962821989607717895533895860558960343391679738490382655234231093010122522209304732526776387344689275984561015942917906721122391966920983907962740857055472370102181171245841087826524058129589450022782783770914431187917399090683825905597661651405117190056671016416940714907871854459722879268320952088553677918302345117873652280645894620131195076132519499408858839211253237726888255464279055015315542840812188868122304769277245255111765126548216076295371268375421226336011928908510519134893140547786587297648394287638646955228300034277829622931819553594512774174258030076505174398925037849082579469216693017095505295054696272819429345091258419132114809483560173618980971082828023669331488959204491331808111430485611440967613891852739648291893497376935134883581136831509202601272422849219537707289514018808435460693261404041396049265766853660349050189283846238504005229266966469368106695670571343600650319160148055250386347387684741501605841236158371307405313624932045060166708472937605103969918724163438130548534134868195054664454206216137010732020512832980332493231932429403991306046517006016825144454530631365941058621828934066036062752335162244690928209007793317571871814300122655986639710605792141080867178067602625022788390283365388544188972957935488687550020224067639292009932455701798708194810633061742777633178746346987838896743535246941577810429816211749201622747406424444905556660076905003582402468457507379687236896594684141082552907206913358782189868455740305089879187822168453173577852257436800184365299116990926232016000306464510574985862494303205463642835628774518632452139208087619294391188254223531568765037707298700755425528160464363941685758030228958664923674021322182677785940951980076408854890891639984618279305956709064940347449992983476957450373720231042304383393150733869792721027820581515091516799558998707905916462423635037349949844414222073962663908894213833211260546890137280524898675544954103353249958776924500753998334918361792424741555770532626936705248353959431825285619842636412956274096864230195295755185090261168737572071100342128598216086584897186301711627464113017437858003535731568510065776716464397482101647163528020813575010239156154842567341675164986733891123221344987581422555860545353611679250523719734504745156347418123168421748862113551595134911800279132613694108442503989723992135536851800267053551690207641477141380653701944839942305179589761610414356233926292052438845724498773730379069916298574037571758110300065002509885172062875837358629423551852328855932222947983732667222868421341424189870006957400127173320140737015408745421323743231965971629170770922011974787750016918620582720388459821905967185261003781439451846526627508788206676792932492235253729259822921064549355853582186526271515812646207587747863236485591776048650545056741381191054236049895120595348337311204327551602087043754048013381952897304536801225584908438001639706990024551992215392153772623701611597934047391102454426434729719604584110385872078742890809602614699696688216875465522486584523232625076153829808524531243866214439275021348618615420472191107876203281740360109754773288461731638245915400336543350397671111277217137331663657483902888690611948795368875702185424866638201580916331484757162137074221834854832784173270811220940294131249952686868405513406278206150519129666208611305866334916677585724246621135414519016801062770678623193709079610224898296237212171976904599262820313093136809469833493539280301775264419467772797160575574353496356367623284564596479610957913413546834429981968397144036407545626901644534916080470111020052470891375292841164476689996720203380751759875586383475508738657845054794893959797987433530353300593772721120219872524343351289565530743406805621111745927779210468322099149367462066744640237955230491236599989649930895627995752066357804800437759235084408116006276840569881193733107521910276727093876721004462393451295755099506931359054279265321584391190583520880242533536422228813569930660390189375213739900514716783247885494942102712449677636442677894948699698030914332046684934840750155577477552854981289740767513614887410964547753853758815881658979728338542068385824325195313569229891782516481155455297606536701905156148009953573676332065012607285856256506479077558148858369383867500700615367945980324665958714223484779064397159201920874994905138957077950008055205543957650745221138842517950494943225671526412863326127122142027368212276486295038787412430954824129255192722489274149072330792675957250316721617810141493841834179271893541743047490698657364074137240333433023290500685166552814996601834108743278569694756755799944566507119838889179062053830669508255560579307687893155349940706034778760888691403662469967457189223288641422253994546466204922927340413208319442472365263340375545206251242142462920933095544192605114052806553510777129439616647112522004624938043405911686471012958429404306039141893105172425888973329768089766694326236569890344405765246384342188705142228898910978841265646865474025566945623834622981809826614838856019621227829310829452956663800686001152743377901178404245601346097419274745248926066031864278829700310737995882543746720701077302055269478802554741965668361250894638056656069855310222380512754022328375120882968552214461071872654827663793580315757722387759947912492468350051154918629279233263686768230284183923664171867938873547716474968352272935146050163791049925849178556658160508175302439824800936007428347185022606554069333083154488376870618618838059998163655698170947548908976459327631233452078223087068125553369368607014265124780123564318368400958605285832560254775197156905813421786245311465456122428118102292316390837556900535789025459843103179148502984055744262303116577024959116482531678517882256358111820131581154484955349341850450342907937238327388099354209561272327069607769181139596330387856244520007189145298507485599605725636052190696974769810411707266560456631288823809000774784571004463364765011463100512854093662648157566089194309653393381745613802494301016735040176709655829242460549571070306785997114067482373408831612546983201636592795797998489722879970809494452398803669832253117226915760768629713116790356190142560976308151870772987937049736035391371628852339671476872677647571471037901212574291082534539651017298925403011791179276293347785951306209402954923559854783211198878205627690802525195552097558763889821215314695420874228170297723106805301726993949958232295233523940477897336762399123921860178876127971839982459898778543250571205155249471999700627851418055724327943513809636015761542559511381830299621763029132379851925361854990423080624095070418470103513185727219528706543667336649790518881042520395067424915868656640929146039165531885953390760414520350439522299587839299275561806405202417591443184655764827674526789290315798681531981003161885689189561684882442688458207657530754212587346451274978242497559721481102190041068309984309285692003282426614854309288958870161620580420791165347517697796775453726382436494054190209122273996014398587581343668755395684186236856787509041764341600571143776164432473031664053943955639218491863195174600336685620256406798389964334978173824174735462846719666524102638019367218626971109456196755689412423512992475965160867480936666946839995847855230056419295706857516549675333751090251355706556267470865295448186870389516218934957865994039133327297048334371846802230393213077970637579187214705294159385503097906707877766318246802459693356235092137981302898154597445350632319576795812085555602140473503731880067859439264505313986414094907400727451419893606264697973217141295826311923313357314418456141480201152606351699812242603587355357450658473774679615779495828900638270074951262277714402369884585014333727365946983296412001596054172714042800809133491745267547242993425648514048761098231371072680370881953135491950698918076731610030035734918657773368665485239598687827009053190047123395399621977067692285295993392548899716048835933982263431472821606091442491598825488101421447848891556842263570824646929093056249027520403533475633660879120189031036959640925254974000497099876686734470877968730258113485741261401390734859281939513262987638631741177627497095770570436066481238284490264022781263826078255512850586384639124791289852660622906269779276980265302159656243724442243094334710643488855485220846067190700563844001761198253508035787031475856018258026379436024694082185508714362752852047670030497370508155540809044850453680145864899766476827963947621364773477598919315443943409239452365780501235212565516663005676410815370603004332211201817769601480280851503304707359054741659917865255612636329740000559028263093551928593240451624838260463621139248622553485478711380237675152694666699642383589352754791471634049425889029513431625723970551729063423210174474032282255675020827783254761965687270698806007094276192450914410938801602103234052156554406077761746469486293531123203297839253196103691321250451603036515791304491467860271308364547062687102285815967197765672913228309031479156293505529562952116793202023785661741625552812637932644546543983987733267397928673540521187965204773286634948602982080965128174851046202833368233837627853179727381204725237612615972310586374782818169530943755756422712870793917844995181136933915611874215345324834194125945622375957416551077059822419279277922346291277621492700583830125254046007403164900136861723582291996238481058389903930414008228337293748947619068155927622453065904659505067695556387465742682012113505556182303599108635707073984848653661959941525058879427962319811788769484597130179506237587698347007853924384473973345591045586366774844665702109839057373585461758116527230375301388969437628571448538367222598096306178001941454955793088032811707021824569382834758187913050764273337237403298057232165283812946954360008418528539931487045345367103224834677459623527960408549531546085566150017986028626484542236772638076788296853958803275570210776551197550173056520203431080536760706745664868461575440876621216048867968710638420511736057887790080978695013290024782902743145984797583239789581174701482830255777457130545349016257485000392536686898530153498360019956412977602414913998480445161764021554432464065054703762318133134106514432519142265895342443998695862497337453452611478154956328646174851612506648017939763347649503227418326689941433672501134624065460696156986276612915214871509084346881092792867898219910203948381705394511590475119184964789754474273398051888887940175641538241766001039627963024336819978412642461808702687355524395242321773199061966891462339946603771940627807690612922791055584626976623913005671582114858629261347155947228561351953396651740409503712247617703750339779102782849875510207754932235357090781898288655783966438372284473601730250462272323445184819728848865785722720078588638855473504893596295051705522555329632268659040761502786718864196644061688160751832889652611401184573594635106374514055189703411461824234282875400707709883717340508959316844616845113255844645896447861442610707091538476219659560387909468210751604286496683926751430160533800579090560370883658584263901813287847195724687017088021891506083683075801923526194765342075380049823615093832399093462839878882431913400001738693503694517912823921450873432508476723800986594481910023449658897217840449170301126258691818630651702972510990066089282719628055048751314064828091841230354358644494831350340576969317765159679305503030701389016790736591958729289703194540271078481772889872319744761041039101719801214657575559562087149167963799038778120404235155316027779856578933481217458741290841293289378921618074486627207131987933594096537228641269239211752668037179113429812144669931291510934618597962545996572935788792080870991356289663696340012082559394719393451532848664899938412078219536987467729658751855742169960550167982649038026523199194996966428899637657031865932430302056676278347953115849398842666077162408425674518156853281305585960570147761687658950066407262062108594841624541858530959257695686742374007452382425895050725403031760088814905234451614849720998344540366309897635117097756829953320115836298549315671019308718844777979279666186984232477989713855064556312896547728975432726111263879373175218275414121337681410175873692765503322151534439538918208565126467674257170402443831329426110552205088652148719373151576436567336322977175046384184093145384606518522123293688459206368622879897269148997295827598882950360836284266006352665914854575278552690742206603832583235063758020280524911210758736849406470947640747857966634045042309774746948117594170715957479220586168074123945664281832428391911439202641574305583729037885068288911832630835562928111834382065412874268040932732098254496484685086954855744325402203073041816379993729772596034194364199470524921149940803124999000546458740731103050529581937342438192856985912531954609508784611121980151856163704123484149442019102079873372496858864018238377349416179411478547322362578723696312790201500923239160588635678793532221262973008561901904290306710257162959194828095295522912675131610483898301490749590816153917203944668803421106542932597490234718691584660177916441526826397746638946424028803683998921382152469708062146774784908563502529699702549673265115231620347080239268108113275649752764316809315983416345498716746283315340669623794183338435515952003657805971090854628897764798135803391198167973211371193873777736165961220221855877095989397405644544163851337396934908010951039795997230931984037232088941745154223948015091686954668296958309789383349688370705497780885951687388604000628066532408891580488029035222095260629985969220194663044716865237458887177342499606959841876990261190176590772532884513427214979314781259172147254564232411140634503834364060240692512598878442818426174004602647403700982052922029604221869148151238459652202693980444327767935466841583229045911405611221508302640394728233686053682007352558162927989034431216746416576688664867112376207521669393169405150666489019675596552939716857192764629980563510760035703706567382901382548884663985801062465311591962094583465805703228198156078252472365993380876446541641950890657691858913777805536024924803976328515494784693306133672847107435783340028635802896184588204999488364832080809394649053250526587945604914092057372858747182450013441343831250294928768493770736602350156470177167536251127107593902157729963634148906640912463344558211765903472108392083361107188451447299616906049350933377832971895588198226894688250363427767813726947441509559644988839764966635114533226478354565437045460157362825640783748126728402018193890157396173964845053302585385042499829476460914654951811631077190049522101550604565057703541709194240728119800841372093603923874056696363123729830636365943917319182162767925962260993492759317696674300343058466296263490965299827447888498778319260420534923821727671252854199690300598181088674900573299924326005568653568878862938358876836131602257473405144378770764214605265953824524406219884882844160482952123240901904896009027777001215690978484089544259602248203350618291939937482830034233564728288018972160652097229801134006444361869606004998482913699800489478078576137377309308970950186236256391700248427316778396307186425032811775522096911307631258088013910622403768295398053965312859222657559476191828084405900684200486986487941443129305694186318066652787950215086928833523733352060116887533290812382507457758345004446726080411874569860169572207515643423358594170802875662340540974436890834749498324053079082231914008647873251248085422181251711107801548803801257628518073840301761065765780538727679766643629456581880910139308177755217775668542123880682829544307106257032580697410255888323435277168864540718911943302936395233957163408462874045751407542325160508434376861792621292465756080648911951049368930991079164783317211877361859164797790079990864482979850106750103193064578749407415115347299567566045178810221528454663914797281152908542799875575089263424031633092830062901809004145323563102178913216054021150090103379134413507422964575035250586795269073639475195061734328881103401177344092666396828729080007428955531482921790435806628495255683639773504889492913051095933064554915141321011144291045402724994309923565377838509920094802368106420609029113370818242226314341538175362141205676957657396276456501795801384259628352860448134504959758118861482608630228685778840895685688118984483785795419233767637965322634560688432786525637946971566621621464884036249826532949193148275327828089643533638977618780316218598796702246116255395222680798550090653497517260640076480875348596508828635800962377710786719935969834701447702567159622002677116971179750805244620170697281824357213814338372219203374801783294601002814336610384199055998826397621366349909974823946172119088084561518852377324032226707365112442189168208012738083250680766330882795053994828387451205540436500573245406969206016424773972456345362856235966553457959282937646307722760290242993567225673904003708356231447150410692275186250187228684880322673674752001907955788743577828129284672477347446942915641415593262696043625763933796210611458009708357686879520337929566081852738159332402396109571172093045357036150413551676917534877295807391095249825105937201548580736456913966620610285441318305319784749268626191839137248547523611689005023385206538251044185917795401333056631086757926157483044270923206211143121928873421042147280556639685370164683275316497344045812437884778638261901677992283654738099787872925391893996783176749734070528427673197136235208809495619526188122154822260521385593283679152470948532110769975156412913615057181110764879153672417979443450557179160652267496516937215681727452154515158314432103139472026510857720072866698438448374154643052185606569691231011469414875624176094348677603799407788478501068261787281985059130349649457129594792030074108027512719238736731496187994085975993772620343359506213410302094807970532093764444300589614755137570802897295663057063289168531859698765711435487204885661280326871877637182317774165877974265510591296844101734694467330073321847333776317874012775258803910062353298282020458528842452735108992794324944382363810443235798783697926730296695196654073760235121613737325359219481151872444306451592752081509512194921059977419989770179405328054387607778133833593281461301795315297474049922963009362961276401592943835559199603241514881725956422852767652749014803019023559099507890141005231152911034780270232050413665202921692947903688886907539449480288874692604695010298874088662710494299206752620801223887872545184051769649829779774963589946298265045193841697880526964102278067167576104621266259062333893351012221616886729700035852003883427857130019220387085157565914632731070943549784794513230791788784252773541314639628215921514684397603760653809039737181378904103232449674475883455085103087711726205563966400796235796577540404352367588589248489201824192556572328916637156009696140791934109377587955854145380914441525944856305642497184698010487587251564260878136751129092897089717700627231576098170475926638850481728864807421167651951609018547916493462247157616493073952025427411910405888279923962731775143368405061506433428532776417950461654867232248814808579080325785080400577082778428652759814043204782519505678202167152056211451648945730141393548642184733272717808257290766603477842062130275436303497752846374574186314687735835020643522688359666027478608216516800206341925633874508666864131776886353914180853042947796944355867018627464875023576146100951776512594315738986060199163779757746907978821739589715135954009312265110902334518971639904625636498916900846695055279070806205205612958155803065634422951314171591092667099001011794862069585701282275311144196244608012368720695972871159906474284216808689294260047230083978702728341582262036349699104508445088243662093329363839218707136501697843423134743249139396485454775005200407863807598046775091959783351495933025326064384878391669821587988344557854611100785520903947998145020346105065040301939792634741946147827089547691099040169364717318734771229754584848262404001654327608693641931603639515391561660083512275472183987670997134690063245989672930737266092452966815946110066212852949852001099328499848344951951201671017465097057233615265880208646816720669843373029987867561968219500841049498804099876308799500788740721805519887599239735818735442584658257047856266568301435157801797237475219495239830700038765255076006959429067546904389478534117846582725408817476914619307450162483642563890419339071177786854876157730435482642086979569528589201873337188464440971536582133476799964807364856518705000488607118877207866998994615370143228728237775466055898326762277007233023614330719225182620356148874018403394347933916059508757720879353572248964704335767234393629789047688095781137613491579408146956545305598672123178492122798671460844671965905269561034430170201061901243458742757814800224515529979013196331626473810988869622137462438398488415954746869664080627150083310508631664534372209074205394954052005235969965940564639892054949463175572671335375507940170390589980440959741197966513461967829057456100807160583517490010006725963559832032511959913865442683135417038705637805169921607852704079248293883040848472723402173506283739080548868268639952850779409330124677038853958229429613170742248390409263489778382639425187075167907825542673182902861963612525140381148892103543988825146328127844057770066422493537593339485193824397079638686043040049227909401013930855125165483074197386965375950359868012989496271702461567907091955435296822682279359783077525091546166612994695977306005535862934028095278920856640123684915085337322275698924674680347104512630578020922732807272494244460370623150819184443199862093568357402801078781068006676544714987333757945477024002237810894063925804213880828601773197463512112796214890717259884907565989037689718225401740250940870319059317398766512182037458388005019182223083283762403287022067675821964744208099215923744859826606625764154878313162561776169552737011302224939682175892001397191460791479757864911494449385196310446255365302787556288667914604996440935193859413788498260354587862600227848499283175201997994670680037593759222679738722472191951816408101091502884341823212978361444286515039949770233597601917642293249320427386104563721544719293516571318034121597882243939215810490223339552116137395916533555378792400590899784670703024120150502678713967472498478738588438721880212774476753024050271071675241221951072094743314445788944174365493011985237830658916935056191775638711951102919362067039042282302098815887422840765343886021278741309628448885030451593083882338599246428064191194221425021004463149816635183336530265601488705449754625313978362676363416464148202514894345819281133811425964496734595678291086248306506187670874698535840025723578995584126041305612414828539158216070693916721834724876113072594663437707506042685230892801452163572551471242149652699058534251581590876890162173246045969573748623165436136938908009315474880573643919065328003621524865012268274903334260971057197523321131132962987897990456924685691788312395951754918175823489138984260590395248885597163072734447155956023996184089936410789826791596055320714663210395504481521837535776186736940226316060613276933319846387113546275919074782467269330193135251790229618661882201929950689622466680221927156176937389055502807551911153307399879581280907220821763896258382276581428781688733603726640187347799097124799846774144137990211438562514573177016141135450303199409329220378298483584335092328386664726412347211303296023058324805357399359468008958472781054064838523806668356748239028531597175104128718711114312902021142164193110082849156200993125554283068730063626154884552785279434692867969212446628062143097810974123083761625538628285030590464988720625069615545670477837447742273165640684015767379486402911087917172923261528105604452430981983995003826663741684272580598502615954349911331024819967633751003536142474035053054085541940150895735279527742779504378085175923866650067186427908170689332267782620248662454529450136086429865224404671869827269148228687770586362809981226701395584800331343850032345157846327492387123359935560023992611453325761701157348405853845573717370193091272086061837847150351779804115506977752276314632636018405916229561710543890960187448607896504073182007153205539206379905279333072645926941325791707260330329887231508384700086576147951713031615770830132157159878407319061592019055576705071493270341385402090063096827936845721094421718032115766980042251649592803149906854207670527240814424512832062937852105766861858838522704880716696858272734124116980593435637624725815992626726281903064209130439925019990637091532475143296067963208811891153392143117397998361145146309644121347914491877007737991727489426482767004855267209380904769495247683891890272651587748082878389736454059257263987570508459113543737081690202676151178262655824682072309292885069735759006869909624887274738378437316141294990146930843712842510586337679409185880251657000707194004514418222493379034781225971397712409448594533288089518411447097651102069924499736486734596717590539214719010357138042475219529417373481459548647796610981799288113649323097780642067794735589113939343870063539083345352421019947084572674725227911075200029937163564083815312411274182079497534486713180088471550663684001080958842196214211669911209156129114582407791870172739382674452768871381471082428774949460430545934553878835730486783158317046247348364917449599029067993454289638078017460744547567896327243826265192061103637152972121416913744788582234109402466466108410360309862422507396807417573481847180428957534382272778220454272299315174019975803820919162000929032588990321105544127687765422141405747348665123816691356908378525861506866862511139870551894887670667540434319685458248620138498537308639823097420912752523083458508549251051768863296687581355841796750521035563751437920630530262656067134986231357305129353125327535024986441174075233471178690560087568466532626825981065155835240715449820010687176534169906892542883871082939910025787095067613175661449928806754919957218652230991629196284284162486533216191199109674054081580925772078878096192881574115040268953675658081672684023603631107163616548185531966418690900493553911812860295495061851020781406124945775850896634748104685067824684861398301312205364324846097284378187838662636084855493925755274053217343774386100225934522031995303636405187933229379898632526959149685814770485065268400313233733366895109445759218186214451013647536767738013485426741878162798943459542235839735535426413562588981471085058779881591178985753453207752232415840588191830130042363667752785425259832742414386545649885611529358938493166058172027465431688710136419676817014398713778103679930560701596792182550353925198780002419640603499161679165014145247513587247005232299619463355212443671381648127656618891547664150710978450300445320604383374754357337180865105484263074226639163577495770916012142783469206898348898036922642425696480180138704570341690591890809878272775329592652018461733558443591277507594683988864295970369353947848738809094490923321014409690671393261866803282800946360612244167856714685653119051644729667769942419892593716150763799407190476207292703997350240025259821368092684109837477089511350426040782304471624766593206634116267457331606491782500090271314768836015905588236255369647239770743690070617471072508839311109981611142803814201108885769059666929846413949387675149558881300442049694282251260579513626367651259555219499985290775136015505493802899034587090699531086382627276300201631616989267842768341682689383989956672829974840285446337966062488677582423037489486020800476389726076789948032639295252492359046559993564514502105021445144691899172593055147807076931925738059710634664896278520453532408763295329480033248741485625796117809079187922776147280267059701783892410592863333939551915138785870720729735090680560912994604338870627385373687823089029081033119386592660649641465554076488688047346232515794196651732141048749289491604896992315321053098510525364787290887967721708499036934815954550363777157243856481872475026222831006838159426151717793446592436756584860964973943394003247468181178833220501949058545273040468297213189676294855688205935660936590054356064481477668970830248774269422313784504617147949373773235788099816579617710272240952929863513941111459488753255776675980336598157045502095272343515692985300291791149469801942227970186188132469404184868272828321930664917438687069889314614830223741528618522618451071793707374066415836417280788853038771300685132307739471385391699100168886464505596013317378002684794580094501779106758860997114408114578964802735423280741364407529578075427551513289514008674128401355364974359110580722692663722231258639662733614232452440247477339727016925068841821453068861137893430401719730277587899785173339176986459336731481799246233093735630985625499961752694031078989502129899326280165208091836939196978487537381409759189507214419975883416017792379283799128806580628367581854884683330342358896783870396876871702813951893364756864606845044240666280986612472748473757927837579864133638051114073633671074430492330653164674734504805565087386510602466546037763071404342832155536114097428007355637986682118216912548280438252183412153705159893800520821880404040124233983404531002827509217435000609682009150391652352388758313628509882994889533350666367416798328681050486624997282190290676011308170756161047391320348970161928711529425370878632035005015425534207855043177482070447445746894960736512984672593011387394936463114140169034577763098017825764317460466270636342282876680255381843974976106536216187442310176794007199461819628789755931764208852538505826692880231483784956268728349113962648978308133339764668272250756536204144758777449743773530153806166447681614747686064033599853589164248943669701148547723188399567206704515290602086374564484825205157102205687893663395095817581212103566509454993711056371993726297842512595759884595446145017311352193418925780441338783335049515140543385649837351322761698450627939993514591943367310230446758553798803766990606696755661686098972433955910224745610161114317074669168574236497337357461922174698569744033711143902230897847109874028274807246468032076351699204752020071234078384292428096800048658541254882333093778491711465215226262680444682533316513980660118110458629013823395049884936528121556613498301996153623832587188226090141252553410390855860380932024185462014765903868039739430399891099245576838982044249487581746176557657899282310093544280903017356894330347479948696678582410972715274264668780497598346934166729929245828922105890919262950971753538736683726137229223760645414851032833572082159456963896815096278974445694028287349741356424638311406513394193473036076044095883839558241306413147634207320147642913921338846691172394961717709794978789143133232498922940048058951770861163470051195315321634299548277784489787482045699474837501483822109213683189772646408162004940164436320968682231900057154906851554484461366356383620574920460478381740820462992331602199786748848330827682303620086642327613547552449091843725071734460895182831054689934473636019656632971127308657799664951367490136311147324963850088657044393017545770282270876194085682500918568333666051096474343824324321939493337873425015440849950373312236783596119825973711230313891780946496635279122403670598111375050758851844108875402368381985073233492220364145705631816974461240065178977513777009696656240563958135978022137242453843408529319107233363576023735195648622913446292937448456415439842700370900590240675034163018873046138986421729167983985360899014986309491643710906156182801579534109146504514050936807046537146665256282902947972522402812100790866357909639100229543673220787404963819300104437997384415576178948609692055346619481147640976835714801392486123974543235923850782711568703943493664963287109177084810138158373809029052524909591784593333902358494554261700936050587351720465549502078364827053024072906846354064972967979835723172778746269679508318721343054432374242230236674376787815365618819205157444155197352827105957627149933661084415916330764254737085382923781271745866524994216275911668254942608755984257400362851030006053667531034198359604881563046752995202580383254567737994086923237169843615377093636190573657865881447647070844521255384273912627370497510522092154509481600764159285719757093886715389388199458998447776678402712137899341829025746633195327895865529326027179263852720019815046285006602410061106980655049997454173187118540234729934425461999085139708076593311161331791732119625279865858173597450905468754372311588446102547180043089145350807084694514678359796484738822626134862735150516494759753675267616454420948559354779188600120170571807499811313660443184101264966684985749481539849615803784961479439527460139831299973312714361840806636009401167721881692657390628853975060251267989460798009907924620909591547157809436987356856142057622302129990357712803221459167710093317709485554634237593940857559912259731181637337731636208452281166158725943198314176732123488655311323151171085682227377791255590188758703147079687997963484044892852586121273734703924078166667521693114669839037433164659819844701652884141460129803171933510294723233282396712977893740612936106069262759009576387472130610055907398963231502592828566933358536393813002166592552220533355694993555054518091919305513155763884010088454825453744335221631099800574599888533529748954629757891248528788205318021114962945783562416684500338956068015148980336116344964525204533107433860158895418471163273217993737375572696779303151151195259831890186175199602978603387599792265262052093407208919283113778836248505927685265329339096287216698543626965550866376725107914247279652757269295276655443526932729141769756224373622050052381982039871595212296255909434707010370412018849791382044914766209580422563881567546768216386223902098991036445372570566814325830205370606675281602196675433110578028209991541944464788695478949652779035272858568834548501893540886198717832579993038653495164300234076366972526501459694812783913974305081909508706648333101506899643856626895038115918275517471424858157240865629949531012652441437337720725371710487065893761633451185748731866377907585273871145923578100488553555408861558722748161944039134546009842652799324584328852566637246580937526458279966886893601291867935758715603519001629452676990726970555124112077769039630070762377321396377120996509493685136464854424600616091723014458420605103998043331723671621211210552833652790239602010952718183740233295068190007024014714905347515208414637011035704110199559652302627859971361755494983235662223244446283863751731694364109482371605989848918261418700295544560321656086378866340315544302203819780182646527958735118199132246583249500141812582085479001112897823884276496722844592779090744537638764100069615438294632284610229173443859910464530579329568204056787829107808375319624613775439181693011720231598137810384383692034176748665773199277603943516245458204975573711139371857185530543977744814765676278695038500088113026642557786649060570036645456172235044614952441275525266735911856472602141950568556290315797703464879233226913553989435252903653156661826019870921189320639875265664347186353309021216024400179287718915057823878754414783806759733819516604317992563150985193709576796150992475721666821390782968558590411427697892295941370568219953351554690734745813231149444783323305115169681991076746142179134150928255140927295710423252318191895676153894744001776584011832985065123332746004778117797693246043008414973067362384463473938491164938124570116063310429335488567423901189046558258420001268902077840967399590708225165994543540156233647049264476113290955996583725684241461100373144635909956728048225037829862919461138421794528651705412345074028968425832611346894915142817143180214756639991369897986286751776068241307941644381416854784674179459889869838238612586619660151718082883322365647847629968055277114543164570985378761318195582276909704280073472851951626063417483131432692712601185015053517615423679302321035563342564247872882826857809962198356329313621848823064093985108605446001791016312531858494005350996643126839620603717007083737596035691643240809085210358830988813773834269359852591031993940342634708711916603462978933167315018754651418649184383015226171783463136434340017617955044523973994695407124611861836591143128125532317620719961937741018591010199279385454090819548790354632776432618681933788267002702426068935288150374024477508423711418367016119470737102263353681342366330416699814005228157114305410487293858754512692152912103608322326518401580367310748612359027576220558030445449606464613517028557656196269929676155318741345159084371935262625487427767607367715817051613873356641768064942572130680905246322666651383834727478675750981213619853967250826103298978780585312321923445539011320327184931946643736760331322686210847042867285574955304026719487259616231776073058450449190951482892149415035501353842149265546440048407796186569622820932352644137097112826101395711830976069292259302272328122798587342858315907482560703762737203085505609805105030115346335889041961361634504589248720204428376601772656381254096053277444334812251920795026719043946565255535448397275190127833332547534701230413947535803267123155580334592136587452319675197550014027701928887518756981842884761343244604039747899165468304187134526667209260814482184474172918941633406945835260136745565678461370951841483498172931610898961055081138559747759724949216937265317200703930176145114377917055854690175037436806860766911442308060383545713539029165321915766917715757675249486966979055969478912085251156216254709341924087009759695127624234647202913745912847658320040200999282282920980478591360698964380703512238487985084227937090875201394368647087975867407570316722869919823645643038272630312024243624005315494305300447635715547797643693933307868486689988076182288391220753249097676994399710138681575470997486544477695699086629077600264678626007379445845942786671934948103086549062186720712816501338131611862301086495750362102490848515419219666259902685306711623613385238209737241292990156484760508913466930322109566572632271375498445360210752850414948433066087908812690517476157401949540270262639534758060368434534793479418718377700294014809593897901663016824566342585969696580506706039159026678803605259838814530277843045664363525758459805037283211188152001817054462889087780194849498768856223578591501945284385641196853939620358643400893651821144197034426014597278621820252739728766309564831853831285225389532783982995027685305632050179642996346703823695428155594166898665452067665039925818247185920783510850864554837250753320204336284916907394138160597275476029553228758937181972267520142721771930714411531642513176560842884660298856815838207995546866401483580471934451378058835462265917501379899843813369047390752803988558990891820432911897447536452412624367560452764881918958166138236788007562257486585972910858217537183056513671553469042690382369964054887450426709582436218614527033824101395300383985281479561583303626985029643000751350709457155374111599388417012610574965632042670307089184807542076500555626849482778994746689216573281075848924165565016677091976858723603716352475321505910530859030422920149944585914420021998778889054264212932574605425739332728150410961493667622520287267770318042015543577616756844905876606766416417887322742323437547252844360087932523249316075368344053420349762442886162425664925707401493992085914805929868061815104977738613038890258508552671668697981113230335444871352252020663153969032877687855158702320375855624931232262793166739418580617089885732044983584761839581216689520571065136213323458680860295664207180210934463431169941824499891612563291524283729839309199876219486823673690381230936593646322747235981811515098661761731705816376878491455342925118937768089387930007726331065883012406675140539314483780308124708261826372409400313030799396016336806004763028294535110924865183528929569913623536347173422196855956336302467558466607919576797425459175744920891137686132440481022094036498359997173092702089545616865040737367938306166707942671354117677474104267517575657483485454454459715270808172835919776494402097861246135619969761600184570170651779991250696182358987461596475149040255319882685814071016897751664427028047955578848453395582546799543088039348714499139976517152398409941563298404297753255710124629847933023298019482276264358076370894388372079154759077201195858641764848003467235340967549780485617858454724077761615840361399373330770991260543898988321608121444926057739842688020146583505882884393316175440172202472532053886523269784551031524917637199409347938765284467191165855401640358929660178549239090370140246565455662112975501334855982445418390339524220857751925469756439756987577938131675075717949324325498688682577348919506087520343210441412020360254976242593620648125551148059409009762438751239249475660298470782289596482323277446559383147589507274154055065592753019252941181625511018104163592742492398625387833457793115502892328317327905643366599169578725409772491469600956502711976187295247429192459188207102136223409929911698815273883728814757242580156465367600389319993947309393868624211438701972645030268382232731424540934982295393996359991712964220554071168668884488897995652598304574124722243166431159256328636728422436092144812839891720483232293089968730936879068678431262754507527136926107067369335099817015913363854987380350373469895418605333441507251003890210679919497321245917470372992780081118072967171235576326758923860657616282637350262626394162807478098443552664592653224204831772860023769166771846217462363439893765019805934242005929596401528642592014061605352765465274765939198862178959964185209275090180400125306061831255975950276276956994631216556348616329656459007244853209046527799508166384490491124483098238788425759254577114521246906463474933364173864411458238808733241187737714118899336660315406803414585223744152721624306438526160944662342042061279515990040830491155040875427868046638641365879650601691942159636124946242630860042782762956365090305708646625105009133038522214546374757006258939333426179837258651341399842375832175619507423101158132180502039685856218677415318712014072263810233067524044497705682380568323109197305106536084861041816235099910942281132942884561710897316617252407140890448951172747783385013505091884767639907292456768737462443420286828486581815492115608612068707018895506553141533882934217707335341274519718398470315214727401227185637767288965205493968767884997986594030535385650823687143724981434439063066704885418401067014182819804513959931313789676731664064586001769784067821938678102049939819724429860822836980732752583442886782523259370530054302908985290295844508571405577343827824430268836324165788955658269506068136941629411805877440748597272220057309312706468568790101331905159892558294587083404567149596822582116652996720542739935276602489661230958043476021028588345335990890534831875549604629394756101806944390978816097350876558001266260294834557879651128485362371255931366503606534833996476961926407854775082138478288534097182566510298547303832072654894838488636289873838000771124870875280774498588009081511920599098688230487364150367762929313446112700621010083450878131320510545520289787332929317854976546384060577612305705645542029306396201090647405675010419487532938740274226808160292488450031953552323405687403398991587539046534011059065447234640761231565847407392051177170250943762338656065756613190254036817574049908906400682138735302840080541572399608490746320324043814421228400345613878545024161481265525495504553091720177802893425563587067232254173880355393703696288430436373053456700042803935955889666516911826138367876362783795100655673629641653633298690923573296339033773294068242486939953412559525034608857973991747024030771018178176305666486359251702880409303170906604072393087127816529324043316077871430866035637472858147324137438844641552731443840676213239285393712424986291241250682590261996705040396819794798033995846650213578117238359179226055659881956672706758212531245543677072685194323409586291704857768044415268498106766475852749323830815134796303073929022731282160929728337315001716254839803570704257594420255505625975035628351227532347677998579293545109594864632242850332637152127166341938019930104638054460961394172236781744157705292561160019773997947600770483434670051468054243316356323586972736901142570978115291615621830752514316738874186648488006807437940494794471650928050421600666361393138446246291029011245458737026393184166236818313282756621361821980310083627616295150051892014445975211931578314807580569090564212452921752830030901169547733205593670473493984540567384690150523488213295620119198263194780334493180735990033099455846415448916654931622482215997900364536103404371052724444135283932542198106990969987288006137170188395057495571848702765967032562762353441678426528173775256432031543269541814699479756227855629158240019277802951627543374101717054117189056865498041897268419615142645740354100882994089300970886098140978078752443516441903425005671834683295674467577502502438160084112362084629299382361701286277102061092204774573007765874304468245149949919823723520222692650563847292797041229363041505075463606265473369104450463132853666555799919401491245045651479474657507806256097218693598666268799697239557966451319693574955870304871339346987746088920865219223625942305104028067413289048988469688579036146303604234568699109355618122580954576781039607445690378517543061101996290409022000222098361262879590889003590677143801906493719402779746145978094644822879631447125517517741892997772825996723108810675906110147008883570786309458651098607921229968835271207144080982084571757088255116817085211513199745964126056323842621527458864939923863212825939145241088157031687522925217275778662298837141734645126570401012451131347281859392943739683029502304683510094853794641484730757753586874605925429515464616930437855912573025890785225289188942851692278508547226076305237898378767215752391792735814777051869597670155970762700846433757550449564932596357651704714753439583046691915585196160633197363139450193999961782023228298402245290037667488397941042891728337474958903827955956180933915471649227246803677821554268940044058288883464386343674127492236924956222008041265351655914365327957261054687300770812653699272067437661237564056332068223678218516267686881652118160580982968559862766572230438298763808683167518113960932978245537273502326608926248717338265170856367265322167068290122204105029505859683107471146246790936797149646636649338561887794497727856449890557773133077691256510725274177703772096150890004890189946952546150405938303404009787919345606161858584828880986576089615476885068271111787777768456787749522436868988977196779230879886224029927424661185930922428130651308773026446312809043272042212644671188186311072956539765403454809289197422659934818272486539863359098169689943649400769348715572926858534585307865967405788949151810450651504620479261579878059180391694510273567902765384183466617119721175080499718970892564380047519785817327520767927260273769922468693646284699375518960829086665073380193414626060598263254801901515272137476171878222539962118966102944846231293474033244366974177176633232119694402971892066259482841509447601908772038783755904734824649982661314814806322360670199578840824430695420356450583681094727026961401634650214039009871653288689072373148303938657206733432937404747433816156649919226985903417553976111161048467619414617405069854977834751710757895523560918385654542583964142391216669561020427906162881608649677578995595691103501359712633570210120984780232574398714745870339998515985872996632278430764656895651460022490988462894822829450802832116110983643490144036854319009093051720150964859380393008660983180367809991860897850191799343406825805907926159054645802045151148516667948096257567610541212835529111775109429456126505738445279838726086663588504653007296245575580340451664869062635546485384575424290333854398597343783352096284761936753862891380415290075393033827930308055676344459980998063888698531755388819049040533629530067060503014196155713519427605323990656879284148414778863811894712966290547872984391003763722333598405753378124896134944534530296802085717878337892961842217190838430836565441105245364043835198400392803976141744567805831357762112435919336557040123830936955511408342520161372402435135331628418344641594669137651597432604660967806696002947893123012340146835770037950343812518178538497193458300404869253055378083855942590697012733949432347934043586687250533178102736083233203451864236557264078534079030576890869878545031136846291712906296767771712887277823143341385760739569015749778753711939960720836275453154318589788483739156804934930032243350994363708003291840537335685703848358438864633710547530667822481267047827555315611656767193938333781556562308009561564382410233154795597204576451985687107876458169606973651699943623660171882869102076509195440408861171118869468638054428932352775609325002386162769806574741001019284187087727724512835727908885841263650594728337155562014081914149421961364274215820275816296622880960705179801071060914750842365616539778182544872365420420856744243896572946281857462582590559796136486007698779926894179902036832492618460676773200552341005259654528506486997100605637951483819110354502560597868631967836802028370195617656915019425058836693990476604854598439073072616541111087472484478111900783816553270983408393984421136483103656348634466020905672913507547819400449236021278648899964836308204190389961823232977940261096957238821199192987071975678704397244699976337194779719841946859228074570796330426439374223274894202667613587716674526686133149609513354069828575009494013221133918586995608220124545670871684826952222884299028524351923501771382722624040643282968764629182823237332739154506251549184502459460347679053060456710709801093371282857785822688826989840382268502824403653149565712956519050942182265923713455323635849910193198559510125095015155017491034733394035153646035326214544543123282165347222179474775923691463850028689064300761483518343022663013310683389358443708047653832795643282032007401750698022285901093298489788186426841640139040822169149495147903678410534864275183791265007485776988862362696564703323280937622951795064120368284330113414961400004113707201765530090932401543059596495319381085436648434385888824481580644006728007342281800203191279910463591583892123568083060432877016819469603068646624208075748979223686913688509539133001745496742363132292611249358960028364385109145631948266608793175783592211618289075879666569628896937367381152193639515893515443267784961060312452965426697940121554803583122379055217619679685063217019927003475995044747965356799826024629739385268544715493266335761033425861277044269381080202747538116786350523757137820189302238142158928417441286719522482641151991463530275672058795450057430439327778047558598209750560923561073597980067556854932807675323905799156181307938980445357212209993218933190472968400200960496057897545607829849139149838230062341933471994245665598747651037362364326268948101571122463180460716061957388909672934264505862198266990306038756173612208532637249948935600791933628358737007124813466205702400284068649115113483306757640041267376759755709438063676031623991693031338692379075633126095419420996490286140273566335568108628658880082414311340258557795075781300308870471146123091985341193193254123745934249673712580074353031556399211104426827446219454816458230180776810737373035805746163884256109805845276151260659763544655375935779289446371573298304436467624742530934433041481911613211504728234232317994950940679483350589843483890885008385429186553314949171383848873265477623474067565247946257409781627105171891060418534667339138509216689803092286007525148625032207754317273345476206893308346717579424256734992076375824599477705735828692859422748882795295965822309577762210376835055034113144921586750039285031355865864798192199855597801132940155772125770757275205325775288459706376212306420774841130668544592604956040178223794677287773649252281544671501543295037706462103623509289445447616887876492494109743007658277384064343161091826949822258266956585651446428528963081702478544969016595103668196987847238509579656211276567407831931319890785524843331590592560222674059553644792065173866059830868902049774554337139754278625207768713675208051462511840842720043186030683478815775732751270885444796680552564184682879963600870067657853539446652712835475712154649931440324755988531603934606423335283354235793702582408590808314971868147264336322053758636566653048813903790937045713625067571990775169443882868917939907706134679522065807879687754250285839011413195926237544429283213283283367822170391668982875251768884105397584451572011298859125608850075909734032090202508976499070726103447160186169940628654939115363857922680451119180399495602004591699164197644096890562736063025453564586389449446290982427898339507746173321201936379478771769040355479606432194984505634791808824331831702342824314404363457702218486470340044653283011969804548609195885783787256687138771263768432387622473121506533226391031641757705992654023630374311370206501808281381358627125236736458703567900982339999991996771378041559389799869142243598302193015797218265280748531745282051603798356858819710263839747088130137712840943960689066112718117168152030733150267329923751543048180743325041143036979694457847605698851666341929439845589266349939166553429229725475620677572988162309053213954485724364638341343914314692521307016295421322658054398212836433638343258131688223437120124160666928448288827034207564797330072732749147117324375445888295010786907271072118401395856330971634740414143337730917191656197213495585767829153736427601790587390725387730304239663655268169591364306117851547374102112832201965436018896466792065332639387017282524581591420760454197243134510914484999192490691953883493180245696709200298484133704100657929663169865135633107279742178321782932648425681690991931786074912944214083777355459554383668977862950996674211573951726822248225342491218984912810446757240467914708339180229598250874930480621971977307879879386004414996206148005700005513508685010960837211660833991934878673283308660819620015483693701523433629920489642858808498608330298191030297088217141029273243591620805975086155412203387685546809770671389037701947837804287800068963981266946901157377489840536231424813550074140051476541662085581472180352561125629026472416479144516994915693017417212077280034341174071545336985436848033962352545950930463221073665957889040694757071620507792341238606212525576066682936817990350519410631424008310705646855234354271357444616960593799101917528782791152031260909560720297603274245189313943361068222182826511394164341736851770072043221554289259914638215987043852511264720314629079505699434054748392992576616667749041301298303026696562561474749533312188383480727762965646499057408231078857325746787810347526133060753079588327806344961611415846455600528211224097567329458674396863149783300908869802111910009560566697343624909071656080768919354255269620798788135327204166655112631641343234138221096705260874525207214618550763746149104115589885510135935330620062401383425118415911724229801176377291337197567224864471556789634343579384859528282972468493019012509458023755992633857140996611116010060950743126493160594210248337424710591937660817986359134284621955026288894472472265995742563164447100517266997226618002929896321575976888736251967388500048549826981791183427989827542790788882229645503550735717677917270459166898005038441641360560202155971604677497787972563112550569346510455779708083064733288513857135456029188111860139398788058892007609334144152995067568634580302244043514920862413325624964116551555979822084760722547027433065674397448113354110390010064434484287215980770028739603628592942432436573576950007245721931743938288864369318819128759508679307313819982707307398240974767799452044656196154546225632242639440320548761217738590345395737723392948949512923132985650751884042601138093627059577775443377926170977996484312834371762353394435933081654234231662361873060086155462698748528161522354739379047413497217365206506651384965284389967192598644445327822104809783488582223927666110363515243086620916900765027767595340980600284978553267839951588222817177226493009247749716867923106663233671910150341662893602149035075243248713510735960958045278988347595454894578791753588259573691794816476921663269423023118879616898339381854502713840128931741187041100481575812894296590142122769895553324701407924263465937237052986132225537809316857759629929442060713461445963956290438000293001313270776196597043881467616383582867388613504221828115135475802782494536478045562428722323062440292667489817029152070233162084593821822850839197341679963112972664014493553387591162174961490676162874965904600255253353242143656933823177476855677689009614266891773914713484303219943769400715337661163942118022825938768688847868300858131752140067288121813868534252857420329933449020876445670913844761870008782967434117923940675803317399529822815260889596487803942200707977159230379445574790492673135213184503591445226624207682224908023596572329459050399594122626343970456692510576474980488772854996334564133671874403167982698549014524808343614961337526179004964176542284041011758299779827076580756435015499969384372503972249549683899958186337570672779631756935246776353938985338274002630642779766182729480385449289442603166209813624321047117036507127944143034582955940401753293952374925094706327470066707380511245145832417881747071303349907755340462299844041375247977478860253786009151833567445677388247582313586158809611866518216875368028687401763037550125498816416485056462786487701837804637529471872163339270578552804809422432129097683413037576957677549900541861724011616441308205847382074489673128500447007845276239676883401835788227395075990298243659419881213603247249971269225910073433689270008829983344243617402742413885349174532135331292161172142466618614588195078066387187005018935382641794814382069209199008331973840181692031350463981912247238198306617869633352878145144090959925480512894014317238898630077080114740662752866703748230874913245195961179300188833857621872232270264076355336772790968595318631426803814487301875730726371940043966729490925606065863400162041732613795508982292391331344284033201512742593304668821529171908139460336827579790424513950972330699135847045020332882876901507920819876871077541151380326603159121455463772779089577808115251655696048157113313262833787345725305756211802870762491388391741451622552977820335846469136634523264830045281043423621311677360103591291395209039345460331484480389346029395917509847034350037605109998917156189177532777065147490661133035757857410679953574219585983416249616059680170665172288414633708643371545502310990492388382774137585644241373954641525814423309202792356275040841357842926946601359828793761015246612941574301502298155908598798038421217564910893378355106723513482587566686082820584390126640218797635145760287919308742408338836234878846159530338921129062469213415922725012866762315387293403567339286834889377046147876153734978443826714636164194073432386109011529294682593821584176747385437771553637572730240373638196515841463572808555075314048720046238540330961231293843581021674004436015695482755061376157780938113920817566275167767427543235791508621644435040389718302429102364742698897544639224192773495913394846061049456783153815268210319272510328579669835145970323181953912547287582177269207370311683805408870890353319353028849877519429085195274263327066612788109055335212543135998997454112455042272365638431332236483653884466725666627137637083675035395916062668823471590752912616293306682589661513373296445721001379895032320051305554317143912140737453545961651708195845791323504729880428958355702119693533727945369008367840743213005993696651041699053196397917574368117390118179025213171912875421527720801684771891700808981973892777332751291269975318148053267649979336467470775020710604857068511575296437348205639971686836400415577895058335969530481563662825287792903893705095858660854662806493058803594766548190350128246988694681946350355437243105967043098407703692358810441650465413266129049323464907590441904888419247811817115331344836695203115160706424104364359912057778709613705490294033713669316519277926158634942693533841935070361284548295279323323761228243498320662397396326817943375670187850004801610911676560348024642063115401912704288554653061172040403707565948553979901134114434836099346554090847179343838010773851871370314474080526335284358527980215246265989811071962496177448235845864225920099964452848906348982434754988609920255875323760338273783428888337794279788447381604796334637033523155426564843800729005326068350146906022706871274273576339525918356623432623113353182669029454210350815329823492567060436962806879621963982055945486518588400505853664593049060404062658816118886542465850435482607456655235555711343475285735922508413044533520913009369910857074696662258638102851209371657789047780849285178490882233486427601089800668192649447250648630235471498685976211655830103109139656645118718712829397615421695190325266942543747881445812838740905261513762629447463150728947945164327080843100888516810984270804929136468182064862338878800425388905221631368625285969163922129762565505877474004845366220785822540272737132903839582531964949082548667168960522234597626338565694822460341985836349012159224871897544224751858123895223212876258495541044171929176688200759757845165689776966859127585662016449849712625947482731272266835648964064693351744630110163034387326897330745896744737318922755089510376489614626897087971933538632196545256715288167389123122425343035201197853670109542462462237267585115022974741613797641992134061963121013356036264855418345068366742133894051741264585929116992774535701829343365555510962691472334258768538972182491235881307641532247078569336620695434192950262314495116005658564282718157598719667923632439482353919980369316018519590673619692254016024917723844169353263742630252249552477738481622156493206330038040853539127713429281158457051253872852257461763522033493382909599617420520079255313695667957435529701588579915072235253323925081430859446149718366328769308321012011196455812257463994532102148718777136062291065159676414817582971100208245721636564027234632969171041667305136925514585291607286800745136177070822943411687971962644487052061948945011218426186615713303694625807561371635825455692967616000877524249724369604913251765628446659780230569018858581110911850473657383289998117780381757880840160180829179257671030235277259042906521228784468254421363754954641107356494238531787883992875921540421768949996009429201122466973799571056649697311667766822414177466918325553473079330277765469201824984499223581230869205518715586301740503307048730232113543634807337639536605810159454468526579209612889444083414046062535268417174650477330870556152964838761308067323167944787684735454801528138495455143230312583141765467132076513552123957582396988401455302573798063968351374756685933907914887931760091862378149347825833918852317801334735747341134038027277706169677071133157362355772169753748761018018569336412030211676315672562754545886092779980057675508953143644007727840536252643384249497594401554582225644148884631808462118299763293791537954494955203072119837803725859890873366735359726355236585095426232931402888000918106387098377360411519152620239825565856921721864060724696639330814796036610471601705129336129801794761761407661938783354727431280802952164664771573216377815019735555564239286626146914010066336989604406987948390408107258934161024717201764335478205472896346604759993748778260015628116878511238214958469171328433327983829383594439068988938499513951402592027024797987290226086625621819249097074555853007772015005914075535521540270988301393674721155987849902985750771247601191964752347136544312031786569261539637193008953750535387092406230283173758068599558819861576278651614711262819996159962251557924379021109680755929356615976067955805508856916908053756790881524556800294007107235777444765782074141342420734030959468502004314684251839781598239879779894051358207184534302288986881118579829738861366614013764789108698411214589394151691675872745124254703490868363301136659593451476929714048636369583324545678830255828623972336914403120433314690333458382776475158855202890414414609882256126869330613292143440386914232800202737205776941313166304005690141721127339992794907541080934981792800988380804017548532490654213468707496819963181829573343815387954570099364075721297353368964378081583639398585081874933383526444316479796965797482012421527150547548348037414200543197239937037067282339654005387851838414745454092508034928188583614514724265048869608147647918654301399340072468038746278518374424591833005216641764996319240067162601597989460715509272745370952961471791679934876726850061113930462649632792778713926801053868742969896446236375053936487709409867853311296798943083135936167334805477267478242108925049599401043264947852006656875604621699441116674767249999596999396653115284390316202396480162539939715278861115753047128586734749199738843614699895003073704186891118065779094587947778979108602775782496419499133150374957969465490018243576403086279546853156002122923038708886356146766160614525236218478729682635572480127733073370228614702928179113396741196212025763108513157372196957976061094352875914114100014065506340475717051326488040561272007610794016236289135618706129565410465390732398568905070464391831156398048557331579282637882966746065581262232541029790607766413154616477766463264932544786202277775697029254772457067593839249728175797530266350087264520008131754614545488510494385213715218340336864595621566532937128452228636315077159381813960561281492084571574505209736491927396086353439220745201295453852086197573843200399002347616317588852904544937057910993049744737326697857999780963192385523292747979007975331215968626682867792986039948691843161884603093874771426775171896506939916616682624494759518458572561590254563774843794553718746609864688307225379278890297964595594179872788961323777754970507010319511757076152706618157979286340797400221250512721894535539326470144513202427690287350815062486689863383320899554964118355870825038611274693334153356654170893826088025042328413709615698751603612506925406147363614443596209013608713077051868853190682771085749347871596066390482578514488578087595905361210680964164846762578891209443315889717889890284294239540011169761632865785286515738310430342724796327214335318613423752518944266143327337766135920682003527170356412538611051460443092284538545918183001554348368722470391407946535079171333571728658184316976304180299739617970460172925997097020378228524491436994153473621934530753308819524375955872682348364178090290167079450019681251195453248873276712562692799608383931102593278957481261759348340374969194018578382466486015593435429719535331696763988600934012567380985768269552890344299912531740373320213670520661658978977264992442861826183404440851493400562164632149343140983827739092850150851936790204566288012038344302363829766712479188559812161965620549092478594498849307819117789227285258001188355307933361137795363428346482827787800917320678843449189495063741950220275111707793098533956350004620715691721664485416851380800562339413513493780816148714769219935467910520548605102141236778303980069943661877204747595617884577650976146732483712099824252319801238750297429857017670399071387746926184590595446877242942533135557725804805984570827670904054293949977295893989463463744715099278147718307340074331047440968450284210250246852115296582702442406711237560567174536140318547967903983300747542352209697286581205958653062712313194425210923619260716847857959244416935622371901049110586820409148140491752678432687701107550644759915498770614958520802062047265972440970878643956727847643165314624813992923719534444434229207134199983601263548850028227022916624328000998856613048036880398899599358212732129515034476003494710039165219035113542135208507486064094708323578000477568948734095048593799078031474281739213462375322553068039247654065926238760352473261615383860910163420745729157815886957936233618083608092691850818514697121469453481581650303640136446883942207593942254448258384823937233694094576661066707677279506131627831295820610420041433310020517468537630331700495225061796754750065814936640080598526704605300061522577429504491088262773555182617983611345957935836346693166703415081386506551113492752721535353234205719488448339775118988646155023998432176947085962732345799526080813748978357595335535586476253835701625931225266524511458159804586488128708834772850214921854605434740531165521530015138591025215285425606865360905799733844383479440491600946818839094126975086666596744644704837651676927132094554793300222617569225860516098859525842038331580193676116329333271673509967888914384557191082158351340856635362813108750702883485374248317531114055108171887760708172319089960336265941250468946728929629403171812522056964376697530356273847035374446039519105297914865900437670314904542668355700767107463128402917520318355931197468276747752249784368380853122689415474811795662146093948871385915926205433656356580004607915965069242917472128912617364616642219444756076882037507812209513441524903429990386751898611425737081080199349128083462305542555719161941194498887776299701978616878461135845310850731737972183879043262094973834907140871877090173539252815308423792737779449528289309266168979253740626161474305762601281862375507095071144623958787704165836118892548205258434789499983507317998061149727899021944151136229168173989334577407643383853481281559076898297910725885542946584383097047094414231531568963182926325727779926176369697791655794344770772463488430065871417772520377592665946194329716246337252758870766991088681551049209824469650365373532729088094606788811327615524556817286287817283869590365112174274531156710715047393151451020628097008059031385066523904220808538002032600609627333756040272007750966488381552618855023284552320404676398275886786264915109163099587771630726356080173717297931988547763943410580595738892329909297571137906977043621322321291564173330925124306415822393292640022748726083344662133816260267587694785681741024242435660512301997595790881339779855724497622099698413712841247385161153084572206229174907879756822246153050168762048082368178625693322250137709126784047774159982561981872624973351865188939700344797637702154276183701960773154185862245304714172872793635721037544520514448927927006299682776059370041373433470485400947984907367519414281163452928413095940169425040179788936088947379259785016676663164077509308787765200290003348596463896805965114699696858756880546882995695051227339121891846347345220795085823577532624066395305825199625887961865941476464485535486295581652250375144885401283047622448326044153074040811699982309424448152138856483113605733987064968690282693074443158560331530956546606787293855254157251800878712267724803069993939812091459129502560147377396512611298809347396007329066962248418063644311387865486817369026438682706069946202781693055208929005207636100292889560986805015575012688091672441427144095824446746124058834509473881974171819180705869501102035723624448577956502244430250874696774830433280926179838809124212782794129538951945837344258999682991039779950266654032224872256399302238813444879275317257852918669931819236327481650971397743281309088441783793158183186494997625849246169922356808607172969669625675781108113037408667259699153856227967451835680439116817235169688714393013363611787831240149365358264236515444744613429262252184121029600829642993467575685476770947829615681560134882573849550329153650956771366400325965288598264661476102462552966667406592677815719048717145646852350601017118663230842590180156871733946376960107194406684581855934964252697245484078438223586333811575043411257381446838257882720034041898833581056252355304880570037601017275450815646072904130270365138894945987629618999448609079482350001667125364682779286544556152891852131216631200247381931309562522281823026364276959870715837982596623369590260593115781615401189710149383956091081438412116778695906870553234980253524921760281111772849041460919756972306990006902849069842344361164795362474485918427117201986797013028140591539872426734460799907476613709118373658385816176061220949886592416376830917529199682361934647799099311109613855351790451758365569702368475143389358077555440127907355446267240858475936464404710191250665887348417890304053858617258138145078525689909550779702923319553311415679509054673283280091906492108160950195596167111784011624434258314606907403777561108682564929256784952125151619929812934254047098291863649080510579732159588548942986485610429735475809993495074971387067263573334931828833863339616046307203031780318953556190505284944416978183699221037328465995011418602793074431281074069908831590073923708367034602724372435412192438722135673025070627362066210245696774608683413058872476373049062763928622153077091069337029578876640564057204668241305333829742171326986819940453763378342987837822440553444122166028758620310833223258459044630989122870276535886978690497305258510985916280684740501982493500262502628115420609636630651951320896888845169016080113039634402988569215952753557962933850785038806944053658388483399223525232619692562032064773442813101662457740429035042064990212906326746021095055968981756840341322010529277961526103116942955708545438148207116425324044746944774763061904019608237103136905255414612239776073028075048198154856755469786106566658988287496123586146290677859551067008235610525898309995141255843321157638203521596286504874522336739429110264002916256581482659205838010507613329067200671675008262129030072871402861854010249855194250915940589039875695945877714896638366219659843862398336178319231828758772828590546202104824203031745059069214438808322686353833173130634148222306541583990994219019564012977794342015994397818061853462906298795685772558899418890936418409945211759488320355319254536873432153883114893965986534371162240894499547422616923019337198978490857234952530289042816837145059092364590007867716074705641469794668169987632459954018644983156022742550597342279722423381750403933492104241201714420563576296427327756739224664803933516963635397351148215291475269487313941900550516171206093041199981580642877801735486079972676792741550719065327162727604330434274708720190422496529305068993529995475377566817069307163165730634640964206588351845818048603580298361691407990117615904389656340005505249485235330672488121420883005881490435414600533990307597689722347292297320176870513916733120759883968852546159314479743243673267458555256516165867048893478949033713141113771110406700770662949381521849703578681351775639578565569042814720940416584933522853385727755829027137700450468460777820154255907471558120008810037656647017732456095934095187202182813531285798111581467441615125037279684202501625653332206763948714723333796491698505644252216997335599887195122844712512836710098535034753013306671842478313111951935972866691833108667689437438896888410472598397253313543835461060057585135026641359600570628060541421867307220593610569425227655784261098851839012116518046693651438417844566421792174504852744089475966318199155690347053218267497638012427248638633318267299679105899878425969360590175129559103624824817227998345011265540707489489370839668980408611903506982306506559019587899536303911066110704677809225449280384224236018672051940007820481859937938202120909299578374779545798327806691816066738068689603439026829290779785189021066976456784640837310099150853461805767392805817492283763930123954872194306625988325476265567757851059789195576168891791012860138448128252947807134128397231004797374510185582471209531188828590596866191561342487241131277637206637567258847093592140775732820945481288581049118266895054874088843052466700269796412938806929844822191270045535807579598555373547485801486409539083737873148399716071212023830311347983877360624960369157985742565357915784091095576773493377898494028622708302174201457666492253832977092074081846286999213351045007187741458204706402842749634526638231991942978126457177741970114558912036846583352021925013354349764237616274851498491015829204942298856794111361735405520710731662752209964490336988379331709450345744456144573580954161339360013751226071630855356256021909833025193390685394838669764149431084614418896879888905294297574263832407213618031579064114424316050303124002408598789770617704450005103098128970024754112425631825076755426518916050903630185351292217287263103352948122108179132821805312173743045570797671333792079439314700744035018223565416630387283545269708812501097642776779693256958503638702865554025709253175600979923226613630607722595803546671014406324397930588673678144165772307031884148937355393094766527709664272202971805979963754564170576438487601093690775662760754635658924593955859949828667901768824675304573878774390128292815071083399471579688316519836024329722969234028272609645719910114975815774522852307234087799128916707094206459594062914356227874943385947774609888166250019996973731155728963760262328277311876487600512309922172140869965787210744849632174251578514886432148207959621857539840969419214787943561716996523320968660278963578707242400206388162906106004472155827466808570529439896500399101770237367899518948561913434276341801264436540457323103558207741372098126681264191513384148862653168865797915139402650056544385610280364960756897309697378004720914864134349347485243732192374373793748338761697548843479788761462431265136519319438171981760384214447044083641979529985099128074926100453374427497259452039821182567788719206721266233213340513025014947697415424935366752888822695600754386210744547184340434665871596843650433314664578736952308342136385240194655155398356626770221183551874462834781338861819549208386542756696548264849613125864777113732930681227706458867955479544736405991713278284715147801434724776610118835793775481296205840718183161611907162358304156684339160131221098257166251093972626203608953838549341095789658277230065934688596874532134773014165018097016407266826251456161420160958647587284467821425682366371296873570020891822835657046326909359007176371770234843711139212136871155267981168392736982023711878609663151829772353556642998665577495724510434950975531779366879493264383949005551650342396261155020263348535557624047501178288569909366902147731719747777956975604288120606199331901357324590106618372302570545654975375020984984975322781950502395529917129221112929164447984356819305621144988226505290486356247582755855734283108722513699773856645446567373769293383815641257869201617347674407855018719208636568772494285988647808968776912856841097640281628042655610366710099984745134631907979718804933549504124804195783681731264427599308241705878314844770238403988228924451609404575138378851892257574819887804559967267260925645643557872249184619888352634298669762242721156569349666678858181182921139221928847730152887095933477585027499012932370174886389590349709994261287879012324322648077362297996049186955332230611793178498525794174482769407348197382861333573792123719350762923055814116331494117519689189495630072661856348207394017163487169294724693883945836418743141607419900860913034466497829154952457327002611314608703857461633562033020930803565162029182618109337278270084770894439711097112924311233009198029991365038877037283375408035092001183640191401724721301731740045272005484389263945001685984432845439881214012541492729733408042238170628378184495539144313412783245603536196860982079202268132319417215114512857664522074727071547473338400071651267000510626569953848555813783300284226540257295983181273245533662409317628693160559816847916189030960710822001436186992512017731471978623028881027626116249445864799031900752080297129725272317086470288920530055224007455030519219529702896531473945058839055849636804383755925517242705046412096880747966490574986877428542125173143241876021998818182000114729498245227249806196483005994135495272811228156782404305443515945261520434626210668643812482021701445225250105950298991564555235676368725142708505350423543101547066103569503862029103038564087015582309774138193325618681220513397816073707496738784326185460682916252641793290844861765626550542330239599945837715142214882714641111088959532653978243303222327980472724059516469607985012047678390254397400631683868686947749403333301994733573767917092557991606530108806175605591762800784513283029400239475224855884675197349449121280729103085369211861510407597593014862986963352776762844403340976142015540753324351289112663706882649363858183144506630302080747775125676362105575301577367224987793132971578687558254958207834880048539937367394327799493011631032319355632868626982281715040074614783106979274345033353808936561245519264134864248179766043667739552388433293089633791485376236188333480736870274004883061398174071000572208007320497893835655630336253187919777017304949819744944697364473046693799988341611003446608313975016656383415318128656924518343456090508066280734452231466087185625176287854015121968010200210487311621597239490790855393429062207820267007097389516135472600930489316816616743050759676826132570268883298951550560113963992931563643798440834126143269507054549225668423688629578000962598099042533647831159984229948742878268156687599108482002639227228652958917677634693744245210403540906186915296465815101935566832925060931139041546502294373299535832234528710323353393256186139080849426826791273984310786503248448235072724912825517466453112817080324183984445040673481507835909046854329539994866530711322069244834162258638794642982785877169850678217940048246414455283681443281328240298546938311468848028592208059794464836164845131126121385356817070894008734815257668849217453872043732867018121739484160627022727665008455174665678079216318260709357649400310804587284453917701447142301463419837684240267944503788977911037284266676293862245081882297707218594662872763991506455576608215287177171208667714469125711747314678231233245651738272752962131495491294360564030830129949407062429943844624234276896766019143711888249070096759180461395320489481487220417451398940889242781764606284192719288321543889131687514516308984869274520939198512224314360831285253713018170875148932479151929529341175006657706156899318960707736760869838243302201924933301046155773932336117103659771252713485105231517963912010326754008538085445916724788445206221760279441965219560811815142280407691458553708735599528952055425369215760209656805571844031882079934092222848191896176225806557371700546729230509991881829873675934088112480457534484785326135166080726450246140505192888071051287972040518523819815381392523170010020204389536981963272621634597096090679895986171744856478977331505506444170139595134176684793011384902612638834482544281736581495619586995905176881270551402172971753081348809414037361093237327668312971288256560717555128989208332960030998102852483243410680206373263283531393831869986969410227660283867129671929196668088787463747015353546293553143057506907768165334955920300387324796073633230970458772867077450217418044626699017344917650700875012003303166973636899230929427834796187699991020350020469944263355685384451560521680939949407724827551546190520777944618227039456961444596112949615185870116993165304992172092161752176507431579813087034123311929808216660499030201151962356549255784734483112980225057032983197894377730116763082582184781786078536622333333247409162492385672624141141835446259726651736857834549287077696832207905829441452887736432017951250740086267752159495315169845697490775117640312727562141845270383701276686303913338404639296526323003109389597158713271047964288785256799217932675682338476993188935640876639459925531991833946398349566747789776827895234432866580257902904605097793360354280768980519893766157530705310625720842070635102680912187009105206380694314593916456112941003542852182162677548775467791716615568162142888956727066001921314838191290035995028709333428858203325707343558748747998997500512810825085426830691902869411749171242552766694444941977818293024589473189354309715419204966737097849554191619321083085531065924187749116308912773472901807189094113301122269416376930782526416107456677124627668837254927827224242105858078892759525866072295942766622263960857934629266429806348179480325273448669121785359776755188641378649807065331377598224263023536637990656322673223275760620231698487668846553523274497163749980668736465440105802979969316504609441842705755737857646923985247356319488117882151447569552849625888668433663364104728514631176124816920982489622423346143057812394939603614334464311085686016925696018032843939001006511806150606498681382319981760778919499799612929619904199046820015887275307403896527221596160851361128610404582255875148004050024434963075414477318197279005468020462731418466450482664469382580343166519789577697058548720688889964896082750550558659373649959693352966671418263477390256089349577973017171668231903396208638109536859942015646206775029204882180777174233224941207227300219128946991002932160238468710871449316753963128025261305016038426778664121957137489266955429479298359842567561110738948931764437456668507182356461604481899746733076341241184641184764637120829532989878818668021323863787767077025936652791833476489323191364587469520277847535890992933777616402616334356117572428940829902674292708462502038377407670892050066764691775680122467020334019438502295988540671344691069332678150449137852498256042403938583980094379592908651799438358545707295647913760603670008181465677443366821468012927732917795077858741700622031534041121015272117799487098054479505107188535810184275866207653766786359192062804011555148056398728373745365570711338969899095358003851099494789351591909784408710682665986407538581681171432348492945569249702856376949052938036046592435079844179785353805412795221976490697010296652460319800498150911626513465121247251792335107098182262138215235819704182108632899736681977875919099520479921041226477141646306080887507155262512880275752271314582543002080617555154833000827201101596421794065944896745625939719340359439747344939815105101162133615825794673988768952938882171880737456695642313128182801633303409812491240494580486145909658336104619397083767897353337218545493834882549331308936506821744905808748771438077069504533232178898670082800858951260210975070229410380131007211214234443035182759214879657521581946218616699066898144617955972332152388417606763266016383587702932805027109260487535435448879454899410692295717807242274953234897310649109261068318749533871532311253789208911102667382915131513064896465477672410190147837809418264608189161571166984494973194540139236868974654567959341308014801108761649284709081730198082434546847979037710926158396224051972839119909480802635261761381976103461577366526934999641331651460532297780981966749283511985343495884404553233926613734595421287678294379208857689326775228746402214604364064723119300883301443796404237214517031783501437834976335951449371759518246057579091019698767942423622507820698123518645033420248104904932542867238439892631414802413319034509556169929677498566879964619975805755794424208414733354976231695358052852311061730113550446242789454142358445015247110861925498592471490563391677166791617553646988804550497006406313816864927477067214504859120918869323357090859677706401307197507925220244170514870960204798890559429429888670776189456245540542740576465489457027663710348300097858270203380362216138985574311028939538585140852581883678973443374933981449518944846144443800851944694573783196121078282582211100719858668831609366575644887606905215438486035922640301102190554579102746421440185557400616284800508844448685852969536404607616082468056389448214876222128905371816526021757558966592337551479346373821320444983012371914871303246391620350303092958310320428930070781025569392031294104254071403419972495866506678267299959198827213993141433364973635612884748852949858807982051425538428491484877145078315235721030440971749690548075587012134662956894247573005016745489916521383438614304986135306483318104857262824100449527092277952435509955633135838318196708965243930619916444157939807882204244769253085468894766226018096688698749753725473397144494814194264804039014621524315702265486910092039592482337637028559983555706506902935076894602997426638137800654831360311249530000301143995720587573270181241443039497885881567368991326437282240924418579380479967384374125457522719795351932975519203130847764571346204114753105946240384058451324852789162229394064377181985311657265497178680578038844657130329856496613283086930780318651170074503455666051619444748125716761939834904426935448492876394116976536192620341104029644071848810127439266373206346518925687650778303299548608218175736530291947798120538611637681426296905307137375253646032552687851467532122064604603818252708057488885668773359811915190993654758128550489790814504657770376144555945654996875528590011673732263960248319739590006271678469621626574553878589478542657773020390330808014853369707571115813950316624815621347405343821032633805053000290698855571634501450562674411703643450664094984053685311988545420977494085243356616883585718192487110197170141741092862184163256413229905979266631080047011561614044733635508879876944427394534906770345622500887882549591754276833630464831526501385648813500194429329463303960343332922730629463086493453708629432208859468840422985933000660522175943424694734112642055375560411426607817452984706132197606017744751466785735989979396962827798831082799687865589302876036134311334742560754703615995199747032762182914796297811450916942944642689751091544977414323509473287823055594164486295577869621537043413110171685854432377035624267079308642890615656449804280861949906510275137779254953524823883652137596508528459793318619037375517060770468609524772085384631119238958647315646986783313843862290424602016854071539510467287281615814527117782577334950568866252478631350212870715704786275547096326638356016165805893430055979590277580578165420528612082203625706216357429470561933909816203065913407337487297500333747068685868277486214814007731745434654205878539909148544776760303281051437005004117822129458758450558638952975618625807627065649706545557501607924138730747080160472946828424261344001592354626089637315419376624879874465686221324337726028631782565734423662454666189807077185300868904952917244093593053779564985511876220183959562587944026256437218544784926674367322057700223723067229936444396409350791657154845656863609216272583315394027079493774648109788392188686020822668151384237772577572577580561973094168836436161977494221972269626292338475189787597425346044949954507838885087440574940240940630824564966038354512701802168843501746465602749465505709995274983468422979034815636038424952420704574651363732344124621027319987044394841736383328754302551812649414770288204995941561552219829977353295183267133679666368946998606711473902719527496998905147269718855057164425680162484657709041156217607762192471923950071066280389696496469823257122075975200468021446657860960107826360100429922972676384080190149092730639156414343767011454863007744187653418615256300664136057148893722144344909988434855037867909672389006605237444787246869443862402315522594890836085855734900181185822942195718117126250831804509062662553707849881369522112581336700825235874356597595818888733452936813531353690352339837132976132675125928890661552510774253698124179565238923643394195158586263069005821754217576542499019908122169567335011560889024223083921996138262025179248972240945634511706768472904574272084055285716023658485502483959980298682189628665354952635790294841219389901929751216848933048358654102852019027279155387207703324893896978413458138313305215753781430789932225854708319986166715467347105477074497145307857112769532572715578316554022128999478371223323384006136181504115394740381344862181143289422747535617232135758774140765263548340081317663021212271696673090817053684170094400967617069301538449656573330714514501287185789168017019896565538590569302822988369027000489916609843877804012233087619796306171398620874794040240835956049079839885118432183318309915378885986666922878758610120935498638578009025044041250667626095467498168891156840366722134057603815840820926746729062272993468678973440066869379821471123586183845053950107899497238590352097339561508056928208857149853961817314120627802017942246863368845901366842861802193606023037428922266107671342915190876265650728339459482697885441086147159109252152516835696952279126157371905154519992356819757160808204592306658918353208499194969080447221645238844788165001752875114378000453131508193206730674210163838851382099783906978318976769024376416941246473384276560343286213163645301824602156513239162351663872205783474639065623857159317728534256064903600665455821579819025030673125275312114247573627215338153704645820667279390541253257263750799001656182496506759800570610309322719729084667101035918807211107659942530315089884660643520237522116882892395487366382174525253432508058775484725304150711761294938572081084231799628108010696254819155359793867188817452420010756980133370591298415443725565067900680285601314620619942707597231654473453720628811858766772184122792640516069168779640501912170203396862083332291934262190371625775735416867991823764553813152155483329454820086966637997188761257609027740037737893532061014207740838036355495072836690689433583154368787855279210904049664390418891552893910707998047322149343865370866988717483422287123302092251771693417734050874707977663372063704687870325661019032908788123005553090865247060682214539651454439817330038592355007110878036634075268813937262815959147126315065505303100086697820646012959287728827361885315457435927723950739093234342921080553319379319481566724242394134010059901020259267990384611337473620235456177551089437683399336441769653459420497702354659387527581434475555437661820788464365298995165263382672228695189740516397735427406502410843771519110115596110350015898666388178113701097583502442439582023279444276194168847545024673740249324780174347882272374354292511033033939974320131435322461312442235203790708118888471272646294324854490414796466296864191200741517568340995442774102412314202108865513233423580829839625307426914557336013478641463988290362858728045954428099959404473574410785141401182657719814091521836818400616105291609587129279469684236708963313355217224832854723794663315777277312898875983643068448264946600637953761595654841874614310095954725772834817302869418935431173602608714412502263246571464938096798647500372544276099213075590463385071188518377608945689654831714365025624197195530747311916537856248402223153586503345779081496576297134096122150491672527405885437113420978428112979696612912309714818714508593926958507385913751755970539654447112347586033755498073623118316253938730149977001280387116452059339366300166787439859843282296410495366184038825447088284539111189348882016969772219397795570970442597719505504628901506167931343037606962096781567497290929598882166297714591683333692968640991353308329758932735578215120535100675266327996139576835240854383591830318784235314074263125381416175770641334901538223494621665658583582301656158533492433849539387212229703172344422123967283736010421687127929371064873572589511423725720819802976705923370874558535861912698280240428366632386150087156455459493868695960932267106224133741429333912370235208844088557902677952110990436547007425263096871895032005705506176789956076476384087432920373478913170313799569602272301449438783957507683569219186519874875563222655261471571302619286431402917285613255196301541842843372210139585523700135067685249732555974385918082692693257416518273756818587154589312053625823811641675008944266145451927392501670212328474067465735323014695484093000934315502027895718089352454272399587463748865026373722487945876001261742050137221717824317097398290874534847433203892446414262878281583481560889731504970780510947019280016190859879921915034310191678725944391942277898244149814731436858732535833702742318287869816072254514012225476252536917061338056507808600880386341224262677950857732073493044099201425280809632858543651138806207669302474528708658711597675264258569431143945499762829376207931789571692662740733002205392394970328999692947769030627945357921352919411162835555261424592768519902384166389747516945236353582702097723145940548015049647934105207346943054863623055234600276837103800196701650491729100282291620832911063813882495982853123672374744371795471422456626143738651071496241673204189991888848303668571267563594118214581605863297879073416887034574407498420945391645126159443141217882217601139860617532999552302746982294760360629689998701991601297953446689647490734958972076040370113653672308858508145788940895275828523713822330020068209063755805284900624933941895135222691084882415054943721946235832566167493557447389779919664965616772894443260953209701655713927945772940106716976401733775928530908860303410383814334177950472298087935829069863014476431438648447523916590404998919588923287999599016014282346701258877145811806683035472631682742637127660344320278795653618751252682300795076744380939493041314842119701308212800453674901467412034024941656999218163412709555687268773047777488506754065084207864365532895122350917027941732237281066332108154348044461880326915067574537393884573810106212634672081218343488816987994785224354082091215346664785328034568612698580101586437239598172477903585967040736552460928966731255982420566199676451909181479594058782306295486494022196128949055147685015482373983323221256800749684587109422660055638920846284497347329617447101143425938096705141106573016287077796369542870565317201052220011956275303426199226455320157144628077929437336895931185931357442475366050613192593321434444592793479135642654048434265968106637532637182689981850110950964942594196427222281989786142321255929447141104890934926009810499716841194209520300183132849899647271633141800401425393076144452242068604824550594593586361014969807493917862722533767629981559760255851938545465021905139824155536326293631101403212941023634418441785014627121593364910859409867531333327656003878458981446253357481924895933765571282308771997686243983813541258474270591832929834347760846680538322808477283039206132949899176793534521712711796223612495233660164859175910308470216049398884014166990197376957171610498563408310219492464935287755927103272437753314348728845181489763219714053634486658073034897704427442621960792343519015620435174650642988713510290634825102621761149079989790740879182660204713329601315215318608343808216158853218229096555059613130903948856026537874274825874658868728904150765178688465392570380867832156522642146670350116724968971106083441621932039600839501244685992178068763259690598311355465865446961727754873956028072932907479610666590561135692799104160913604276767971996043338482811016247334176652820881382513581111151856933734246975574552068591497334689079477277802080838805389951437490067110714356344336125603946730793745512012673431955483445312608335219577662454602780007988770979471611642675171554170377686562196261769916905102361643127515402162012432632760887694398020948465526909889023383595413649380167645930383036863449541605852416448142747283499693316463878735363304122928284629776647703337383086992896388074551257667929091934419202437137220993976286620556544901014694191056636243760046501401562979370845237510296649767893965796596248833231415811178908605796772475647091231569063234582376644495725857770710295595527670945327624778648846945104202476612945846033131052768082646265396418054559548086088083831722495168327675882374141041536304470853407610111936746484535772942740759366705882749659023458606211129729875001619534722949212927582304743167918566177603522065940071507612851903715439945539057155426069730810840985603317240062566901720515523472042635789768343875836905643906682072079038544974309181877833761853523129352661739547095625398180007384214942233077904830050567468078949266416675548683860702227953211440566246308769413421658945967360802515164620526631853267482228505346492097143984107592080780419671559256208663370854067878467976864426471171873683466463842215308357388777011262976416434581994081012930512061362846598389287901685116009712313266179387053642260243632667299026974307966260643483001301615142527424264558158849900946426664111760652879393582439053997327296936528761309157799767687260442032249099330675672564390193147941660796074295835106541118582597261236628301425491448606394896504001634297316392507852774592442231543061448854461331022063586595010023272682939773422672472974006941013039397110412873524835097900522068277797731362193485466942555131574194633046476716271405645290975200098977663951242775160408959498151418642625022777159493785862259221119100299262401210430665209381272367369441105209595330961278392850756328991198512406130364648213955446527145084391139471956715212383621857477844247085277582923331219345141809082833054322180295608200685284858995161499070827775351346626182381875940024147385192068041996047615916419168875370936211950646772537651065681610357236400243333720512176860071163778310816449565686364387805014689137241631972318527539092200483616219557002193302527921232887766908024712983530929932077686138371929054945736037024368103215342903502080420777563042622566773649469298873205940259649317869405166860407345929321505174100145062896595385473469425055930012642030179617007282966599693032773564924090096159591734204470319855332026025944069328088928347407299689710459028698904569622590099449540657911961926105778237850284830446381411483043627356008595701879788378593117738081304079415710282511997031991085262991595644832901224314384237756274999983122330004830324648777344800567248626752640349060819734670303138086137525237680653226985418564894359915981487654892939333940754958597647574765042776047629566606036728555373149440379136745459380276610638967394041478225524767307545247974749835060016992231200270914675617711421326926687869281397738003699394174939296504508903250226444548768631486742651189435362734980699693359547946267379413475369727429660480864220370689727966670567263692625008009756333249259328482338672216647544448052067264306345880214189562792835465878803134577440789463179079079477574416511965954602674144838362572448734042876069719828803022307053694729562153938366526141799390197210630432553526764880079892736290270900855276457885923087769992907849846797414032024395281267261871049425397946118688171189321758874072934026521391329496497444812210240421656192714687819104308496126399433422001615854349721830909333699953798465204549951797962592218958426084295672045002507821753849957244217786471914332224608756814867307008368738328478597645279432553147472037458899716427375499497164899341510076046143286418076756585931287221808446543502520725093568507226395247164861770238204396813385173666197008325412891835331618681882832810625285472976934285767059308581969948390247515620509325892162546079974463875189495570059266153356278989553361037970278896242232206080122024458856590773427933254028827352279930937043211450127962614451632611791337643021107267167546376971114515180385804090372224644119012114013316951961949198488897418718996391940852997344059270576872076758392776742915329245253678514642324967924174851723523372857021857975359346503800651961751014758591422339653198818422713554883998260798509725894764670535229484065701207637825807745129837234132700940272604064991900756449401778967636659097771222246389639642876199259719824285861082721640422799281176916482838610108351061943719933928944124614597759733747746844959250805397981504861854702054890529738753322062817159557505193564804264493790711455515233673474988245745055295055437473406290839627120417254217283763552861332971549987559033400080822033820620836850651822238517067254914811069476078439870265638337194061445865798201249645770355249073244800947095704346626265317632249760703343372445671972490829294738214102427999086038454158452497104135307136388325071735099041736063528099279417168953855847161292387988779876574202027904948814707491531509542472769276857850398972623733593803289114943765352541646789687816586287677104143284004056453051131242317623980628852639673336936101452991151953240909987726931034539711343056357260476224434711055806985575051457825093272316733574162797136685078834703433766764476910574764399713225996484631538501428295765793982296395785081460799826606286986613798948543939418983269192555944177081206970971983642663329524510014680959457594104291614861076643859052377730744133397656653871063022403943168440947461201790843543567361386731719757564422993273634677773384312881379644463026251385546463297263109389719123811039830115563941927875807759510176171123962817965451080811856444209341025508111267865734173626116225021430761198095506048339128157858889599853745951242280884190226869362534697841072642453438724669697749249090746231766672284399005789937964914179609839694813873765319442955828596441508469316806951338840892252642630974496749991010003262085072248193029728504276829534188917044932456602412157414685725591339851990394877109537742071634951293339314630533676709044248284035250085703012200380501961538582717549216165137564580635111074291547972074582497886841496331305644199534202823102450985416021526818817520595185968640135644034445556080659578275553020805574059356130866064141773254333684789209671051691419424306293382084955902291766937749281398323871298602201570504885042778614274139791586500375962940249303934746360408936344297952506355907937188044617145832099495395555649262134076040897088459004529359763265131075552474030470848420504492437459960386932924590849664234165515052687008085422446327531556722119981825052475416840561208093203202163038625898576517442156624046009309430049112022723208375226808576842885970825691245982989494544153778658010379160354044745922616575030845121669759900757502455100275655028602666927531853626350216103709746009299333789896347873782171316109326888130859727350423143497822352830640894169046080112175153165569907284046755841342334366115170975904416758913815378899289385754383622850013847428586607224835171488516312341945504167267302947546511956792427829396375908369869933800039243973612115214889444467689513947716561306264223776310499386222975330177016826117387809373891207142812039248749417106485717445806635947222706053965656046970688248076301480246437735516589392031435910846641492792106875620678326222944963593665783722821635879228492196787689670852114081386962544351734600732801281883407101538547606378170602125458102681671157812846064558973373571016349291356542311251685279468276769040701731297618764824969482295043076578058979351657129875650340911039712819817829683625491791362883587485883613654590363928591863973783952862773075477727997136137285366531235093409927967425374537014983230266635324240831923003183472583333358066433802528370259642558186450426084133520732921475669260904031624040019756625469619564993950077367777090364624673594990592869582440805184100947179758824417649909396235022141140861669033136799662583891249809679001691010054759287078662234260097420072262726716861395940482063856206030005068080312991581321238180595594357297423655212489545066141558202368793040357347269197219896428645666816987805381922592871578123931215604835109862660121892556680751041743533103239350611907622261173990674053727049174991366533956460482874719937835078036992888194418140754559034203757848377687876354631372872579847540958682436695907243549689226739678205667584228525245384520960114181773907887385276575800877689537856431688661217006995352667116507984525961036176392397960644747653342476446574522557119491203088551761721535380268918594322241158780163553251470010392616145458749218201877070221327543297213459014745793081770812825350456844954585464831802749179453394663351666923587555328488493272458525110199028802474108759482812252215928025539986859536281211508799553306637995540732425224651733558154723426819062691891867010694327986222011068809638459975828413609499249237826799499413275872431229974400321816869496174102219878697615722535545583149824415245740139881809914441336342931452785757923009578826349275821739431500090962348879926686556097497202466203572411515762650819858291315875249084393998684193231968961859049223953389916433459898792434558571730033120405423233844682681007783145038413222795185270533269361396148945848798350085062015662347893665702028151177042490524463080292353126081406940572887759361172466907238373915680802170322047369351289736105610457883945037899035238206955422446704118914579713796597028074987384503701815049685102059936345998868621154738486815091491109440973227241022103019852174941651844745309733394175767443576218235440495980185527849403227044939934142172405702400538277689466567637815024462772907504018150357873780845864150160802911514322398865236299357121724394779986839082729257543181306656914123310194403819789888055779236066883581787503841027402249843990670247751847460649595303073363590652608746260019296695529826960360903328099439223098545245260972631906486738877774313073265497541548114535666016795991509524661915375717355411345754601857827894394637034428644867247289780313477667784225937064983774008413283054720889134361873693736748715221325774760012512377137515334524400451541595104212989988264680890988331322860357275513693808019461994874708369390412100876877194194125895074432212425350056299438760632981126076027199099381576487748428573291585176392435728291254645000867478674877887939948488905079696041619788027876393382805607738506049860743253216113694618116893011908782256260481515994566076079475767936911320999001671764493495725180655242238974374421732810394656785315988851331466381390008822589770601587196146847424062243106834472610220401786386292210155054096389388398173355850634802864857640862432996735930415171785130572089228027694612145983836255147022230429723809919140183701370645007184266981256229657836024254797743082006026077064716497861665743240589769098986402972831751953839273837467466603749850779119203143707834678287629392915998899179023063926249440724106871781391422874001331630422327978514531571778912569868664110924963533352770712380083981284239209938303848311930055703307393252405888421765637944741159821523747242848461844090800327704955422235836711071390803245724685271363418094935370163718986171442232926237522361811765132707859127530588366012547351698446354092278175052328441089125039156858115590395745236173765276808313497705983348723211530003848317403618056874941378290138267749192655842676951407424939791343524636617812375962090993088121225882439930739842732450614340327708971160628771397778108609909257283737478463318824432658890769640574724333959688237432257321738416603378206734433154105653102430158673624347788040854698841796120989127140515594912698062968097488691493761689867893988590314908104343708670300170989659257360309064301476923681999594614893200354974252124792547609201433468550524708084205825396296468715394437991653609456474241500891541214480110863161051044189667311259455605109258759272138866069974478961000391779516107911153569425949407947693895452314383256247511907051174323653474839234698748263892407610649649190229729497044010686848160663437363778323602335679722573022618111288487304480018458496839648595463206188468682278252217854653501048877462729379239035777531924431014493474728674151330258655400599730777246185640057045661891127968879811623408406193531715211657860305850623400051412251890558809203671104228334614046074288424003053353002593518512428761275532686387200857606146624859493396834951811274854370941224128865997094545144712732715832557070528480154473127463044446049615368041942843350891927888166007697829222342035595925204878055893767732534168333191550871935250831554169864466315425886708081176572974671056179649540555871796834984375666664978861936749424867380690595786650413002196530293955471487786423523108175406146224028169298247504343276945671000246361938652185089909866083110168699895017056247300603763369459052757218897013964258723292640559659118732823364232844056716776962847807152393987459522484451078443950200421209959775960840347735305239217393335527004678436505684498495984026067986943909672958771275475018267492878945581344542137323122565160285796839237558572366135801651771180278580780177030083908368835832116305670305158472993881036803711538531823783311827877126773407825382371125005233959115716072039047559599249788247902464262965983385019422693665397955467679774184813286747149997411791568659937076502749077651879682052586979130042321076044163056929503732812807438160756612523258418980923647600566708589200592632614432042221333941618367265136693372396737708144437658218122896962752173903027032213118759403129612228317427332259692704952436162397473965169277776370144857816417890472464806115754186081921039412224688481177567605217523862591540931885145065042650184533128729249484092369395070853351357671324610720146538304372182688384596027219705728271908643273535613964682753079259219806081153328572917710444912149876181115169225906266376338976808757671836307147572304567396588988465576495137911323626357657231135648184704066284781899363502893981278962211245659937755866568443769844311628499157513346576274629752805944090055928064478149182953827955736378613435330608733155382690575250239356510558681939489463505387451646528051300224402459977771124443066369177330396918183482894528957418898224714407130786886672586861779750805336747041272263502470280075355484626962876931045545475563119038899936096798430221199039514801635195368623812720731282553542405487754666359500349300558618344953543541227834808562901344937236549987660633458654504892021485344163804816543520600660927013315102744290952886595745943114829998730852680227638209277535405397822265958724870392686189954468956822096317215405016549497263840198828844524267618193426595137799258910722523790052835552186122531985926276466192208768188454890583852472485523816426830730422907554256667915672976786045394294730462799715829026657805441655561777183305800651033673674360470929661870396451005931842671990531140135602003986095335736553773905507594453609252561133782681850917994391113498184394109235625982528665661333364851026779973737884748651536714251900747810306513093886229835445129664634433340069900605679256798460998609767697707047819698441643889215600326071328672907749942446743161202137362628178374892438794491658125306529714662141592947563677416116903341380022723279006878561361601789070728929092819613569082119267799649576134557941603850638836375979315366445565445185144621988171676998776576596489444475359359054184568491876606994468210747355041432736230803061520755316214097013508761147272492742945940844134632173497649625593917770052416484372161825645953742319670401642339622787490276150733554554542922825624562732492240164754594406985945162666470374066947460131847497680747085424087782373518686796587399135217616063245153484983707637938043547393010482518564580671476379839343483629344828189446864942492587104158699415308425234298860428117008156051010826206458737489578415704282184825017194096407586056621414491951720270456950373653909490779934094849311664449490381434410166081232109166793951444413000037164760998019188864931230714270363524176011893390704777140779580663560732057700403692099163341877291762071080989483989435337634568327901439362492842339236759317541313051700793418585419394609376877380718010642587258289173208952359174553539803669684415233359674934557886607636172431988495625585904708744989881489214465858270383211086671117054288772317500550035412348370773176144493417396485576637448682897740987177228521939531712644537094889927858554877301526012074141576854091425374577360267947354248815519480010202894520661953232363198500585960054012208977377337707004275803858561207132493082828125344811393553782086070628445179269047883862137108384180902206009678537538943891106061941795764646671285829112306749390976649717606949519995911192134685875860073517302617482915910330343370778400612837178630475448867860332898039386145992436782511570831572370832322721694550159260199022411918434248099600996671698349212248296979965545805289043886375541143088608159027041724210311249660030177602767918956555865408861144565249724436394732887735120538997990794507761571410729792854257348647932871944239453711757440435733808976592824952402536965591684633038562355652257398470667969402001244349520400875527042751039947353336944702479402655439545129368985565304089042860971510648693485818820599300359761480905866384974129467807130476454569990319457691084287040423029700175866348907788428085250576812312844247201693211899671688694837110106037589214332427580984556593980855745367334956118047507246037178162111034295879118113706658526817709886489302533186079204150476076405704423690331486075419597093938316104056884757320539026834185664243444084886407730324982316425761485250369261088268344585747488463244948596619587024847099145140536782988252878633908138244248147629773005206234579378461999739859966786432857606731548109822242534037121573882579363258364348220618064805109317627722806699408648649570390789491605748459435047561895185621139568621339029614325798755394421126767062383977834508181720103885823943887727529334662363857407016804432406615150358764518834532649550859336653189356137319846090204147067885049077998394349066087676885693795048826428696670043254957617103468729589094000881700869941094751294328880975627409787814398593149506085746627301945622388474658924443393644099845789153961780277701903963250694254358033969700287834069065808933750346055100834946313978563855610570047472699220302400580098739808259843885933013399109315747628544688715805886417231231562439394376054682840286719090909936127310230098346970861751128737237902824823264581037657788975328159005835103153963392700399128565395560341348973615388064469099302337393639617287080009298599507922383925225062357781080366405048583003105913748721231077502961796892513815204575080843458563696084057452342835728234239737298713497025073307091123499455105151196319693865637804474974909964527687170646249249854345633506957584757511816225506258958611762933112673038523360315303465220995682293444023411290200166718246892243831867092428204873870471269059129428150008793814559073738432102299189495414876158664466579787083041050268404877519885095973460051853363490435861988169694359618564778434587902090306098020198902637675643042731225917124336839187481066679312727378418255093466363390812036946253769446326777938282702905338696203618989489037372714145436741158281183662132677670385961882933450845605603899445387449552578037259597664705350923637050661811685309589957652928518228818315325630362452938569322005840740664533792878713824976367739482011676008984593874739123030265778008366333493042429205089772527849374997652962884794906896462874899720649615873864295167587352318850253805822128245368529731396120981334577612214897235574309369863822654901463739855113940867309668206216020691085420276806505344097967720298371898362859750482852297141844071814017704786901704497236236055786085369522989909874166930342263127231879861448862009457858391624257329623880483963462525412329759792843092381589097067388884111073371780584438259091533889329876661133925026545949327093992011271329587639255627836902436799835257715316975871304462586805122325228393628333963288104307996994054988338514002614555271580751380257072788582007174497991143005704257961659982991465286762868135934760433252990843005345683018756136411744542328807318790135009027549702912378517151226375178110784464244226306980807294900752128664758543092025513319871136522605820631912245222577703708099423475295932889083803645316090414908857339252642016456820087116766976681542624036192395712582137156788976983565308351073742590320765965610489449666850984661050899472675962226899552837690502688676259986430901307031976896323316968119736334492088202507393891991753093957937609168949127161932019025175044021405413301685123033788111111841694962753580663880038281564085736837671033419887488084269805733354355816925934197833440491894677300823473956990621225144025896297915454314866872504808990791916013803351154685203257835964990676590084154755328166224075775587791200742629431065008265875666052006584902981531126280929412882252122196227834967285508751838544108326178340631023593287144141826757850217392745862852721466386114750600526361648371008194580628576242825337904961680281921199733500079879399115503839745954784210119949014442981561196753175983869279098933217650839734352077292155963871143611061281313308761711611604957557865191220287204556648864004689932400831691898141409426916880307196825995779032733565269319274407402054798956795011825557600389543616654719939521595332375186917077061657481203754410640991764240316273496938579875346844778099140981107568254928359416311085481276483741698947004620197605325614691066243272731603954478597294689714360850191649206272302844050586411876988918682306981128806963193670725284834532209292983559171385433152571293856581289452244480879631274414461291568902010227475532734460872993275834000207912903677549201428942651689681750266924287974616671017915782383738054670112488783148478508240213348348970507881469923922498749984173731004556450980623532721433582779044356518720767290202470666449196097292549028142905190806519286233443415635907776469855640144489110534833506551855441927333197944824883498628842275076571243945985035808321778964923581285944816026813549218216798354626254247827989103071150799140499473929214286366525656733441727420600931732110210942261830915318737736488410138144927594271429621219614244717223277743768764754497987661863641027718435903944532127629884038554492979601973805036996125101330795598392527011909360121875304231344955089091775098754107099038173189800582889186882027619429736331422573187339760493464264156338049575154258135077335456256176450251570310711604729618411755422747668278345960856099596748228013565071482727935806021727892577808151278024966858276280062229850274088511096726613254640674818681442292919268916244546775324216434255771672974887819759180482180109999378182557182866863222425313890811505708922205899681815829817158714651510821273186588250716359848271996443110254160165746576903797193474179919050178293147274761850766229558431040929883057274078429716987352025456566973053836030109403264024720772581743065293497968840406238520187110760598644512867656993737812454983024054406875655135413621645723151719550140673543207891446828175734342937439315812158309243671722284579229916383455732037004016525905368705180669501017288609860645022708186281727475770892552438760550643099290041881057738489302524853076615907471050205159967552319644420441668295741177115733058965339234739748207114942049330198418644868303424962840491733133449226851628158083548082161577890411103533453453386426180463047241061348096205038298189450414611045064658876412335672562610833235170825009709791146795270459063362427023483364162265542230037534148750900567630164433539963685922737782840988175245171645760981104282849082630750665542092330307754099914484606314310743584519642326385552377865911364912207116427297813674434932682714246024459755286237147718099587473860419714799965018639997370129071588626620195738833534511969639425193134308338949744966686382401541949485339166734428392131835042214761648177610946738789171033553757681546613765905670077360955860719496309823835585347791424569020472753046303791435970116693032138808474772596255288649662478023444954853917013573833150388090244054321971888970866219025783933081953862201719842135523005491625213119392762147042691590159468846899111674948149686576999578565024917392854760881591721670098817578321233321816110517405900160503323985366128969165504786545657474013535151492655524289057284188965772375306950002739182584433849893214706913194006410403179593257711609506077604466792319654743128665889528914761246399401145306621428995005584413316112626174463088375858573559142148591063673055792831304175998238948665821391982668723620033280333487979901383527476333774234926726858519501284126494918416901335872718489006558960691855362263197343060783935797476013026764624160368610444946956130206885962383357983819550003630350836972422669237553398383498928154579536498391734001864251382770741904934777117425735128773081194525452910543975091889237644898230998533429947718412587357872185962300596774484304408247432044254821176739970907589847168439700362720363307630824772351759687229221710354030806762449956597494642036039765574754223338708896293517763355459109054361009576017590973343654476345760664598204936056498638300999417788958714156055323468014041637331102301634485372125929540714580081654878702297929737633121417066627952436240018808986794631019879475940390765871008498628834009241757126482714376312627865166544813674982998618766605158795413841783247343864581483260223442147053751068848791977992556859469584893088789167608781726230763811488774884117565428461525005800849177522300490178068300729605448010697367951643450099767691535379008162529920856777376762032837914126002383372569365732417257233754675716698925059060470535285241183277409057387102291211502405224794746555255408250645060242857963676902369271778905092472003661419197973551592876913148757981824160054448403056725289954248112305297508820233206066923488050370307394103313472291483094436670131127393600341966142533675880010134661039662444993429241420782505225561172839537685751693829103758333001860470909002695025426002666955714831369823097491773271245614958967319828811731154654408730883177954877263800425481381185007414431138975285411718150829469261928118728001947856509119258116184744951635076805611721806556523252197812198772237568820868226831876239437212504184105161240012413138247490305637793081817032868510286312944077412270062558615186299397677414981096836132506164596829706776510927884058808199767041598693822696698321678478161182728479133863380084461443495482855240497825223654597660919186834082869776091459332376776375568460218829524833597048665204042038054396828287082749640038224926586100654362101532696598447964139017235288748493414474114155581371909492049626427661976520179751802812665732814100907230050907351154042187445429711441890272611933767639509706465943830313545048973877431755114353981967343895011911168575776816639895650998471518631309926451577086913886773949217600163884630054708460010673174937987629506425724199933397889336182589584961366406259723296438875901003760548269432512760706624460378446997406091773064943355952988778791235771587943872966511316856373966153442953981762200637579804022709005790621733603022331844712753662020138441182451402912031580560522690890757910535101561273892613250644454505577687994269349179091149240262328860691373491165870410348089175163116999621515933915418687172088861439157420461282493048773266244772579442002641116458815123277391140896150950025333090119424989844180238308771125349608814391802395486849529492211927130605275038163596757340734126012412999598643172093425129858440593292098989477560043472989770240948371882751047724521228157457090004856704981758348902683771086744815376629634600431930596013279655455577667406840126865170772227205381499505285263158259232134589342148771716036241727440319507657497109834381116843183372229002941694546139770620048613241415271871853764066824436729649133675821826397655542060002657044144532889058341654750242912309088974741775983953991242614205301084998898689161370665102252447412546233524998677754182392083608093500992204348837060852635520987052023500452301593436339793529064458445192866145358229476406051814970319149497947200884338612324390831440229693270023992213581413112530141020210458832232631493118558269311568360244358507566452205014493704998546624860759651854335501991024311007023465899986187258435040434174682830430790044399699936472035037252637081204067888120773052629537710145348469754299975157794292219909079206506563675256530253581052270572014147863125143811576600768297174049917712830645108380390416862273183481492497956435360235453350330684404478635233788915563285787741181288198819464563896665711995814828344726055474236553789697952075936276972493799452189015904178250059282189348609058186247703273410416675026411841106082493762898693208488864410027655691581212860299755215141652298047803135542755696281641396918399083777247167802402152069582073961976953868038705060397773750300774096050288006694580949346865504787234929465289406896540167926196450255711852395903938845495719592751430300334603716768849440643666904925769562284564860611482701535976672296232559943720730314884796612191530149821839897560252905736439111958058010025782910625038701240322869151724040603380346693186887832601962956255619597734098714205979545187828681580186309623865157113087118217661504266976805525935149537641913507136222442414906635812794334410218884692298929887609864454485622910414168610211899180993973278374811356711872490288117530540823383563244537370956841738722267072551132912918041172839571540949404733766261891235686983318687000300542173568292249163978488628918304423643769053231174580865348830514707697847020599743048967885285946362371666152067014649771987156818384641060721633891138670310879425974359745315957812032425714080429725088350681017028466761161443735345000897824687951770648997657260457085402068611334006817062524459968103139762290094817241316623165335943741871462850320246281138617152626986327127209938190050520720899384569233354564343972364570599707037141470193483895783750234167800517326169067661404491792868943754338109792410577621408189270845731250987347440107673089981583092557171901058230016511784760337041717779172092789013278745344021633970377058472715532952156299853693619918138157302736093173753955323877564935586774165133640918893215688871704800010145453263134506346363802083690962196965939681628300937782445206037723103862350808368869687453858753812789689973871798596514403326318556513068276457383803623507621182105814656049620441087460316672161317693974449945238813854966034155025477093310511754273127615326735194960066431027856370189335578943256469281415962160534939802032078401223072458705152621671048042666374014445077648538244809629911232347678984409108660544859281606042314452838495331070001722601741386018382332243464604272636489421745159532167847800070549698523134262766051153634419824945588105319238698642637717681458501920079960292763142012988629348087434186065232026156631584475594700037568783438752323491856945571539418688530134672473394647530446806468282523269414715530218343298413783184970234129212091110324789075070324147872388985030987613026093751532072608579338766069229886257594241469593176742002181265164185418084030835141808986152508267255205562911291701085153508222213043687649977271241316656832761890825758856922779239474904814182865533060851005663657977332612723418567878040154396575355135448735571370223857718420857018346671996570501795913245927390817873092411261037650623283545345204392731422197900931296749545195275299084903488934331365521323961186862444760880637318372383528662845298342865784736849227763237641798269054666285047145437968264158615898064983805301236154173782816501812815955516585743417547524533030885716932710669401233812941536860699388234050885134243979723377799482178797136542434302754582422120142648718739794789015481164107444874535641871035129267414665730158315128341296399365479035843167405510892984397079128615511255307668773014149845519485603734891541535280295580597989681649862294333979447442179938840138028340782178288470892751439778893544303501285603996018175904406297416012775738883828995587515480128946616642807908681135795417588983785627588598921391682110949834621818966982516058262123789723325994694027540805717539676361372335962265451190226187886634181464978694364867998625904896459738431629224754794497196863480280804077647223109935344442599429427613166060780507963501846068276946178947079718411817821279044004027067843228057902547842994582106199675090220528905637166322479092980860686532650760223962750739337254671056674819492681142681963766442017775295218776448650151928447032732925426867377126144568908622789712454184546194948440196650427315435070230689824561669455583685021339857164794898176796170624186094322683034616727010745437352853079912059635794694847840876093787700005976192475986791518380405639851532610922006985723337974378261713299489152691703431868183287920923647548307924925126390610374430489258185224436579435419782169045339758282827130420811141577731077050961585536921701329031456589747161420473179636087119462002420694029551375910637347749324241673625718376922509158772298595737475692192605782788700492674156367051769638468403815245097985680518123683786693293888573419935576133286001705043105302700159883467088823820839878333463172742865698162022778770490888682640626034402699395488578787357435555068804170363570286067839697997257299737925835133276794374620961594987430776127817025059579766174400328958525636551636138741304515794511036043030435448405590064852858276428404604026111099510957711151646899756362967343839897826221072177394359074114895918438265694467831064446293767108964949123966880083433343545968266484018093704072691545500731384215999215279730250522652705198716242323843072778098363074502921067040723965256385385880194399783025800204876648746924329429533926781022272963702354846872508351470540213636693602391709118599185893103876222084007105161236819028250688329621624140471550786006454177387197261145521843431430744409743565085483014805131725525525188796725437531281977981274044444208041535825008501082443662135309489441748090726494803873181319083572920814562301689376716035490674341016790462414159640404044675170874592839419690344464808431049443389445129974875146549697252631146993419880632106852869282621636362800087672030341350429025524243547474693170051795723017588112540597975343451872179765259173443968080600090524548344565597712696953088695640388516896651869375744300840475444716137737567610589658363161687009783523757159768284976219247130536232980375173733312295895629429519217642234935779584079968780153581822497618298253115191317271374443365393583929150374050154404253653465361213635664733073339124454297118073258498598813147734438350573372845544730755858461634947970301723936516645854817495279563414851794971594173736848720553990929709996054283665645222874057527565663998056698830044572457214732391434367084012421714456276874989739984034831947084211165964576907107852543566337162624825141529716205255403467099579326784134172232025933098980310009909294365714055390892300182418172958913881958541267910270393956576678265189232869370585186334155528677701227012087497604572247282016077606073992132728200864122898112407686746520382077983845910189142692125430666604188937862349895830315648240093696151172697027205597069162701444002045710074093767983025083661393646856735540671870085969692448868028890516641341364157372383271133118202583358248562845240228619539145933523931420886962028443025344518756761351866894269746653337335486154708062769960889336744534192175245143660791697175052068710340597654741251176382118678538961422708024985955262585493335204662417428051018942226852973953868611632882223706479138515705326017547301785537569428302231593020562868484920477735179992241931213106615924359912228446298537965564665453671186420376192950974401482170970555922743545792725611479029636159308157549354324867880280699565771440622099507225079709239300468408592206240402086317103445616461730548750000608696115698250033404728152112413405496283992722325983599585283084977205335678911355945365700190390581173508483032620668781500541334469295834721501321521285047687685863616838523863946538724926585544137877815041928543044268198787808533654302623579976447966260955263813929977510926368752885371684242700664937202518372273449945731972039213435487966240422771940267707894126110301821430947643328645462198226857634261732204504229041722861148755871907083220200582872007170322046141296745273500886576339129958514672291563839455226614095292080388629016294659227697897338917453482552162217042491102773767369784769687232902183775344776698144119413868707359068748942482025879966922332240465849285265631231206275702270273959278702396106393060929040103042739425845607534326626641094768721270670087327917359142748660669977026218577215612780738856823791792961772629810592502139900456935840988561303309878666769654317060599042686962965246368457642491797238190847145386737968700657232157138304616417015103923987414868557925350951164800646180866413827621984076323532410747636922914479424714200245472637114799871123486388318322411553317022042146292784759477806010825870859021102701788790885838538118183157066490338503968658148531294062253746480064461210034460744320594848647597066710462424149696635753193920033921209740715305101557340735791475425648480145649981815941143340345292130167213277046899956594713994490917131114155830424604642937339721296782169671120311776785950603631642727471563135174084748095718185639647405867987487543777437050280689720565080927676235163655545455650888008611379979355118452848066148564039662716075509775422328490305792511025017613983398231418212105314014949510557795182869050287356835797689578194886106563124408873784148412715687462162294488341149425256746459075768850750981219650104085028165413614497042861191132161093658147674726167274471447000064779789730993712313346542411527998038399382878215264406055246516708549919229123560613272546629436422198401385191763865216394409611297538985650633908311916207269297948304506494009354025255996651158322912675750101496195250994187508626049410468314080556076622112865670603707547279412605167934265957779007963828078200267165861514260334778789011298837346589757379967566933502907147869954631177341461929398422515690505792210292669256113542433726580372520544198235045756177462996560609832161140334959941031010502289216959579016754757282625027822589082635332504689935858479473426053215005089271862715550776414432372967185315627355651450322787844422320346682694816802289030550154008992817397601504414175160545700947743655832307487751278247242534004162086484520299872343616421159648667393019737711603189002859589085236339357940383611123088378707859454685509678846254054155356758394301654068552031217558537911866162369965731152229129029837683282160896499731684815464871846663220056614664161814074625916709712847569298735697572409261893713141421488385701715366403071780193607179035769805624680643533998123788645881752663854810865992353020220713469608543369413264952968858763279349037416700500298152994494808368689920110901132541117878286344638612476836914071932864767390049639951544769707763263951036194447596901777429979513775549028598663734266369947869871776257601279983086234889201489201324293698672492498258080621803642730609576600199192545084354666443559513842590155183370964832170132174388522276497539646874289350359369839048197761629375110856677280743321501327600829816153989058289698742178023657482419204957701716393025994092359719895530422828480148001072213757587164883785417533070917235161772490030320807243660264911579500854015401769329372696814111206649046073111962393601980923686161793426566324235275976475496117498597767203972843319226966481837112374205809456940934398426276894739083501678896701803125480389411259603493845559427734508926479717439427716529917739667498342978269696284492393833195966759283377112948981107794659794609121135017309824074448918641436018120169453270715375690871335549406277125891641268373331631090828742214307344514299000496640474891944980162425726856514289006769602149249723480389657259734536485922116667930779159480250476336777425232714713174287444584382731757663715827473398104606991764514017348317636027621423343709946230646795623947886964978967705737682616253145953103049217283573429367390748054162294793300994764836906627850887539884504321903597374945699736550264793676502189412169654838444542167908257683565516166530084651348983047553067648634722839281379434113550464191348090547178502031421964450097802204971311410315227423825755195834122824194358411719712731584083421056509525883719000845925046727747587060551307013572972577768686790720591578361225714891933904831124292959112245134133944734997051042076799072448456341702725557623492997127080108777453419621358889493070067799469915430360768881188825876744681057706640634757136819357619914158812929217746003795352073481874757571985039161975941620608106166557709931131056775516351823084257330857806896832882246885615068377745438398692691466521030159893942644633609451079990607924376946832681351264817756866770841510148067202288134541326564181261160316651236315337919839300271267492736196564255945673053384533247900354116088794183632153214794398849041091282096424501706877650880170167492028291714646422920880254920691670392207904747805913519826495954741206911021978777985272833986470187885977972321381143458344375639335495383982642090484199993590148582673009272364570567842636528963005726177654365401211043518971513854142907983182938071435963913237751544447185565213369830956946482506856191458841540178701120744171257327494142023441176858725726762352138886364841173398185196958284381476575638412718965489530981789473744378925378904537530205610441298518063992290290316946158521118783026743523549440498286672627240875856206036930312468930235762214903587707883915901572850797079956366860641577127462182535083084687988438430350608250038475979155223567902359859336461090947605165965961219951629918603710596940967349470354323976161689368102917779513895551105703305469863580019151693408437438838658682104729515362783198451299496145111587265324737615319058692687433614346621239780171246415358715178850734305923872329741469104081558289851569578823109749391295662264519732544669794554187912871773784299213054574175663581273074173502198645428468177421184860260373950585425124522969472277006675534219776804906585354013903426308897698346552274893804590060274971535070329126015486649741911036491183525839968211788987828904228805515086288714355515278232658624191122308448386817737988802646847338660285347763842234376050141694755997503787082436390013193444904909364012817978376914421546258987887607441221536004545870021136565464815007695819146736809274994262599108071773157165598298037574221114451488360805012333297701472849070463275637781443946706090292732907347317752618434301720528812075398929164272577702023683149656333932323191879840394057531512687650002274515203770430704153224320089239459845879197422571227552737960622984923732341140270134092493604309046295516477255749594980184630039581881990254026304257191466518396115540373636720303802710306387367743773067580404759616272647167191550372358913888242091530003675073498733968540787546569842203057229245946486935087893008904785852342681120743991313394971141293301906453735637270033611644738997411423966319941678073306895349906851976980678781468738513623133042482227177450498053601974277933131077995006253556060895088280915337646008763128944871876050634448323869555903793395309580400083672732284579563251880707933609177733419794366707066546951919048108309918148671558396322760251273994203241759161365572458719372076657976163136633190398820928477943693635463475594512686060781079018196265409279216065593944915229615191657414990194145258939779566704822456126974111310485593521431271785128052724905613198968066035745282478377349434669342237777954939773847932279867254939240642915310365352510130258909453893702311216375262578615905766402021005157318077990351240194263362725167535567272673134451899522119818766169337567457034043586734313697597204383854365577649099592228068730580802126902897938529749716977715908758493658603002685573934843214321280476203821519037802601948320062274232024262076454179003428492980846380070002834402876500344848698995072755158634971841437611238210897205784793785974309114578230687176625183422978321153060250459897503349995656100825041115686289316663169926857996510691338373643048851211175584905912550957788640881352244568440352797684649409514964316441724074596507709622647840532150574862252175732693832820900019250223489067498347434453420443147294499901105603104819339654997366785196888468216897927148207328044652660360429363658307088690814685347322761031911564122405634385522863024591822568659912996885022348154863197417448524549388035744025218977626915602075987137566499823886207409270375878788572877313912037656949648146702936026971385669092922941584026346310998522488465886576350191563402105224143743035829805628322386337244241610476047709286533914859502944893956508451625298698467093862354591709085108523737092901652980403362171519183097974057012674387079379897207973516046904064728943363603481644125256768539458891632346075712441219059032749507632976729693064219602093846894406542240112617841255501617563150989151713271303774792705234272010838957310235885881821074621363783696755488091992579615309624145594591979960193586815716567867619944946612246715628735683261214699782226202350676857161277183566601192130898546928603271832588245615032187554600402611980606505892057696098677615623151945992528296067517941372894043928804924520417639394065820094403556515499205784667115525237672905610851146085302132887072512161643859209580003978612392146290935356619657159408921978067943989033877604368755949145363772627703226557952252912835144412582826339148484285062553401221112771569800578968145945888517641123343277176904487040952848339062588923022447673184355323345719834512629360410500633060218892882527038134018931399235690414950966821272697723631465612963721105057982449212116918881477564156069955730956120591394275456235881856224040126814516345539010139121187599219984143687406670043267540395568394690699678833469871778771451940329695203685963299796092542307162149750154456052693011327334240508736780054206569360375639539103481869641294113713919173163746964822274315618451425605880842726803378696911325438986783350486119697771526132659410369584648350260141248355826008245532347978680741055656336648701709852441552262639504238624375979388947711664813484417910738989460287901644056499367516146988055031308966804913717998621837251987697702078468281670612293209033478748686363649762498572535461514429933653121017939262822302433527778567422793236841961216691530634085164597963791312837338434258289365599279678099971233074187676223044271785923096622239030688042475984579964927938944205742045334717971932945697114934156217194463121133763932854544847101082247253636805367647038556855428096188268551906954465131679502417514485535028746489953958500061255800489913936812168839794228267848863296181521420742599762083104470912144171614985600417897029322657446706588567992554708946900838725354158986425812104761946844044883796622478423186987947132270805371084095584356576205560576527564132287669478284941606659319548010583106797559116515561769246896202941388257788646433740969759019908303977873809255713109637869987192117643102187018257373265696987205866918269130850035236952538159980414450302808020946915069596473364576642478985841120009926803318251886467827222692497492690731329122523121214082938432203354612675632436282182312665520323460840436478125929051837339538849702118875166770670840734633901205305893885826624097527835066008480659465856420080033116143351599809344129876033925037222217948815755891533498413715107436095293796077386672080190386667588255828109635655239269755969706937681546121142803496201801885195010874843820003623781731185088624186629532598620187706303967052654106482581471546918665719362792479414932850808760192262750460063451451166378818126595730269768638176162537638905586817672115335837734327586446884581335061444499149369746579193155562402576810876114030793462408169220949344486774014047621199028908039839170761040847468054156768187763412765339420370286418385654499224327286497131006498505328497044153687287931885802751188997729247527038654195270136239444436926391154866369168866221799368576053856079394119832491638521641079224014946358122468006819456140088248555433813484747320009397549412758470685648123416121846702839896640072544254125023938535131628251700166723876607974184136992701899249755300202238303244407674012542864100167544545460316822164144993251794303998033991310811608909328368223178015904017883602795102789771198224802506531333186302019096651451576307096203096756379587283952024636841307072135733404764423689024878004635690834304402594192999506987306932393657819819229134393069491822428142659499359645736868138630566583718595200647434650969545916473556991739279391528471460656666522351568311307369560140745791378888987976654425284628536665926737065911466796136719015199251725821332433478163710910004293136353005942383055184593005452332883784904343319168681091699542451016195280184652967129250479173280471668255995719384910512361213042585598360008186034936230286481981920214994058448575541720131518968249040143741283235771052380774027419130336776254194551683799998244058172515505464515247412636425400932202945599673968014803109093481512929047383034445236499409356228514970288121423783259285570447326353395488837230472872275102598317285324325018126521775248489826245429662382007776895550827001815352361523756919691466400827105007688836042902148772897167426686474971218584226710588578219374281995230346465235474465480288773036454825839013117953578947227281132060712782599096642516015481271713617530397346587240688128532288941296749915447675597131074783956318986755129737354176782248930648927025895955574377868039721921453067752076273337803074183509494382970615186204768322250266638509950125547892865623434158951877337745222771521628988565603054992604853012662663633797705436654701763524279513180740637011467717454822239549475805259739742944960824200113753161291454714728861070831643780313609787471005998116682970121629674649530750193094076746022925665707949222174715191397051108507402783320861319285107638410730148742352803683347543608413957164194598918486672208539887782262331974273586984869581264178174239447103331772755800011034715977386115436993962321897791427329853040610613342063291561249896110171517894770789585617592479362577002147280096180687033629829901186714375928669162729556002669889820063971323032346127034735625840904391692430506003521939168721424094354158279560154603733870030393776300604243963038095108345960692184886317598696591162204264695806495437721764044905026600477344169805902545783979264937892483061186521276699700425378134801215300769955197874199543398754777236884067867337485472327473044960635621227996554372106724829751510135889755767136921244351256468382472870287271450746518686978761363376697869165812950999594454208549889455158616344741802494840210103004404570099630009700994366347422188783644649924579137391030113380785081515708792329149016401301266451026524058913017553192463470290700511506696640596881554447898993013062076536329520399483778027914973092325720139003428209404935936886015462364646165845835191374969877384750255883203828280563917027071691683849107818075122958000499623511654110186519541297407525133359746042158888494418071676712207662756197066084100459525824104325352160742568633535091923780673949059921643053334780063549889477612031888273365938692190271397242415726710591773908360592565720285808629481039885993268840966726376795234050068942540712882201502676166974988141744371589365535176713324739478216600177813116844521555727753920134044439627710529578853970408811778944620198191255975291849441698317000676317892397505994596621351720199593483565604011186318286905930147288361599939733439575818449442370442173590241688431113459218018548394952117866340365059947677355245135888108707929534578224445121012813951158945913111123671058647056265243778039492870355529228280201807423370617472619703195151273505763989373618805093243932704368005946676024915213714431143170289618972198736973287560707944000366526347735045572858462523289392938505657419864878335294799283863405013209374650266323957912698572135345950127631347027283822243346488906310402074712965106643247615628369371702180964707705256390422624635579598024908455105407885003731371968530569453198166187721127447940399517584680602307090030890104256422802633428629504099553619011895270711133311542234966520381146005690847672526691728192537836311354437014299628818750428876542766750785448009247600593168879286648768596237877062905771822864950591110213655324334466707475653559981377486620009384717036242371369046372904445319466283695876397671863705653329694032712758447707896535363253915576465286380958632243334982996728959763379722491285770750168693725949601629564752203877835983128169869460087944135612730080837049265873771629460841441161911998963207267270502539201945757092625997253936338425349342089859714979657072940504540414388026921051535326831703581111314332363174283669912600654824684020389856053370491626360771568236075185116112311428280961347191755791280874145824261814056969526945203900419274837355421173055162078638008473490190202430433584794789379901959739082395066261067631139649490567523593771377301362791755599273109939507765506891422343017215211705118422948599697597793800162370949199776105091890613343559180438872252320313457099355664610251665434195735827093800150749940344421602461964833321363377008285719717360855134001930418324304489036102801460227337351839140270149079050418946048195796412005350310467287719224942111096018175892132053556212987545346492466565176548184472264500446905777770232423312622880800954669567696427493134686528752838113452273171377259559697784302845905107643311876096971147586049166015909472529611906128453136451567895230180821964580028477172277255582641935171812620009140487172096072021488918554039136270222427373642026316437453939811990126210346207672627532473637119208912603348932529677723478679309446325897103298663636321581494008148044926535439810591839255508643643262480333308090835154054714904608632480971467737338780145052428486613590473569719612892390638491951344380542792363666546927304675549076808000066122044906187442905595815891781705593509258411485701039514721710146911733296700836164921981659856909351953090450522491419222127757991312977172750850633560072972833226068699624018082578482558797454801841711096501699184766252196057570300414269913311829834827277905686790398320691266284048031746973218033137761597194168129019120304825029461219291530237331256165212979225065484414873446891508944180473925276837351025468598388184023043633050219622953675066954799247822848737116981715411419057931329215778708130583719525365513250864190830434092234677147539344371181652775110635662993747651066707509172718782961608777417651599021571279889324686391895502788293415808448916498380511039188103660090980525058191960530898148954711509107109579487675817561327757812187054473973964379589257372687752884328440720556498905645642850971589182266228419754703396574931804793597099802332219879348580776973200583206464017753831606232686800576216991054549718360375730766329627110045199126630070501386920124338241958927142146195391602124657186575234083596645541621743369122736925926459684361833593216653467159805855526007802672278882645025129990409727946037395666381133509359052076590393303152113292196231018707807868248261438718711953147432514704507796214751920334572247217321728820300581649519386382580813826175421919360269209043261702741133637146317854304799343936239621017588151014603849295265811950554942399516496446503241658095598890748410950200765777858880293017199086236969563741355735279382154927039225038960472820522436005776617353858086479349191352588382090648233119537623720278581570860870642715438698144946575069615706003890012527170565239299390587885024014887162450529705911665096233796202248112560778436433085658345080837649320416610677231160762486511907362436225514762512849116287764681716864113075202333815501574469816564059872513706412004530883149428355803481341469635813268998394673406516456864472859951429543213245405897115844954934144509941602323654307562668235877316787752924388181548404559622208107768927517183792417425048613783278777426241051659781893744814464484357889448184182850631138392023656916128783592064960415612194429731551580584929444139921913168270163061069926896445842361024278091071250607297302684285585793361683813965353578236903342592662431702527543855227531913511945307794412738783686007673112532332623051927983446702667418847077722487693815771720735264404320319444649193509372536227217258170123777707377650984923934910831710608598253231471930740441598954967140349043029545752717426432753368287703014319749756808429918906576006556098688582754088512400038851968649023613201269994263916027896214918024491906494331139277960747784219612138255987000333509235128923475989027852041478398219555178527269945382626562684025810176136731401318409299558291650090578688161288499840632485457301193335833224016388559935062552238654041605738679266968339789034758740520065297684340674511063995412578172606410694141540647399923716250403808221540942070723593020623508024444020286084972643548523786600330606300729401993174382485049350759620299536220346740477626846936302198853242707850845907939116305579930262824214070668935560822111269556636639613708938055323893862965231038265278593596860033361586106014860371105790675470177711483930358005850367429400285415459427491539197580853147442688861976423381542363510737209083231525231569262113605775307809323096164985201920545406629271940136424660176986211378150552378646859491154348521383229439159274926070575235570046832943292457771968970916980309469444159805934777216946534554778588921974637343240016609328771078550499642225099344672489919443644166109898310464337301256820273760939102788272770527496233334053300313756812353399637524707844905489379427451791447153170247686848054340711162671993834109594024586512709276367019512966530377973962239702582159168722622707033202470546943420130427523477959525642085149676618512050165365589541045825208911341878722139343256109166862018333140659399107514908045127175825497091048611949159427951733791958974756629118688090206764242560137718170683743822396650198672851247777646150808133557499321174328174223324425404986037783688148159945694416581896719292903368924026777430739707398935064838862394802185732264048369383071529815742267455082785484676471497375475514684755187249053504936602584109267696245366977254811991016609215971337895299681587706977977056199511979631003367412063228828094339105100828228556612772654870501510012095045893943157352770201732702727608963647080908511288732641313165749746386993983725665097909721576663859309554708824583737150491072678827919668851561738384654854472072903905943395073685523306843404717130590636729220540374940928183912883772422601400832825719855725128530959549639790565128494784696627705809766362095177246338084651474731983739153566581799138417578947832337982412877920261219924907354516345759298003963569134157670309923323126033497634052535235988818931157195447314627659042336084630432017752025323597818699661182627864024394032022113169394583961726468867183560133283604508682650813874279153490803875387653344104337911880532718430601804094457497416444438913216740364261127289835156505966058883032811229699522841616059584475421283497315416602442842146210413762937809374331567252552439843263264102245080616914372383634395628196926371195891394008944576329442163986255992642941927657303434005851446127628931971048623094495711181932910996419089985981221339846552767068177434336720369003718905915395145102083199147813634478126163099738463059167140284191582179627304813785528545712411559621326642307835830161830927179138689974210295486003235067289474634807135990396536943912932153865529425585890355856384894905193512539115211378498358536571065350592440516672653202218926356603611007346304357496176975038885050441357448266638480328774507096127994867056064719538332799156980584107424784423544838052570821785098210356796187014250413621098927116671363821896252695878888051928688763849057736651701034197102226358874647650411911380595403684334691743126584101585333334476030689299384729009531521686109768284477234774716756627291331352014793948351217693306412909057226582314471888579650072039122419307383739818823510972942197904016313643353430381541595839186372811571253963461919179211134495152816216021467980331233460431522409749787545319805981340163344752218206130381314736936246631807350220551234513842852922368325408813839240293430608961434401763425572818779216126098712568393168568494055977872263378458629611914619571620152926425386357992208235307815098670767128167649097270326988780198981616199371079011071684977674983207774089138327784475469558390582675220064254568037174194050732270392732715133955164240247234220086068882541704886875627286330961305668177112769741705562385804663124541740569103764273797873497701595586122184652833903469208124401289184781366848036653228778559167192871514060536820383997482528405949700339022327895585910747684115899315839383654044763544644829115116313087824040367867425528914706609036046943374838673117343063234436795334375561325155504598043095784784287797982169461760674281454489506963544217281386370980127999464685383973732363399266394720870586581871131946006769629839452195941607624504283732910972812135201447517599625943881395689055518367572020650190571569035501152338459061125470508865601240276511870341728957245220685105469982125461250230522901466826970693239867077413941027665521764289966617767270821397065656410124651579502508597590374424905820215619390706455091340420804631475463956661522149270405031665737289174685970585333006817958013114943449413405415990036540935046947143563007491637781927719244991908418686162168453870771562428821130637272164107115091381102910411107904965466351971982180856710151944375422379614772614484046727709309051060731409155722289618138858005610905477360675995242795007601582582102020991625771041072492288525503463610293251178787358186429071445079821958404912452719687691677600789878001547451644355247531340468341551738765148949657352849143323482790869285826499309233533875679898622316214993737060528179856450650564587999252467627926626593583609373542853074982527833732774923566204806841462477150037828145574500022535111649418674978557990800621646380316198931253753677575626249851467796870820867258046601714141883886934154314748204535089634515485723324057525131757980421500889430492595884512587100927546854748630910286843248479711371306708633132255301181268682095334329782990969756698768895375499068801453991143915905203959188364089114277880255808807249819624006396848665771537493475994031813236684820694058105254048502973359188599971930831481756835250195406423437926357130858536836070421227436722877062852325166909173372007738172088307085874450610710080172254517771376924381551913089169131690035682855944752661200953488565930116433482662205040012951166190395105394236310178146031063599809632695131330514881358114401322472167790587993176652396561515153538697575239964537891728614962349073877363204647642244780502416387899817002173078940698244534016665085124665897810921482161382377671271953408208254779449529147392346439891771453788895895787452023020415293761342521685270644595120929781720777364750098416635926279417888317729459496929020043189815467827700588364796434292763058550477531652117827001217328852731292228964819831565491981508998451266678527109900915706417451380223096616058387826497858766274225806523006443172752117796082482246332643148319808414137691307532763995947001100395104393705478132296690545867282602600554723471863302728047763817872170209704839638177421391726396337710816580556096141531475576773390552196425935027196142053396552970062569866257200253202576351681711170257413264451452924143406712004876034329109731856275535056901975028308874487693851985617479850384588720823957783479762878749931627751109041693735298958676285889161799091694413534579317010147133659937025362707042137678645212503129315696881319534864764064477843077828382400072151025021031467054190609209858861336059873803265335710828247414983538900364252860435135959304249573077082421566328387453493041490013074615590413039675448058884135900626883037186232837282933955706925753051188421113011195354844271808621055899625273244592484986641536679679865208536754451447287151797169120476538868617920610046999244440485298593627381749907212320070400657143590983087741136973870701102119046570206058444515383557958940392538914969016654387300520565006505544798067018024788689118135656132231284437177715351269537120594698286282907830850538172907505769665271285882841200857537561682985526125930550454911817503961220922687782997206071717931355353150098885283801842345680373781213619556747358894601450364556710383869435122632335339584699989757502024080865049288573934318632243097093352844972923763984621078492251200476069149017590660214763563762133217300146163579192194494559472733005715428988307434877661940221862557880388677088998698585806056715679062798714351135631393045704527472987016826365552122381108641322761810425757279210456979815943035857334997428832648866336035941553392371535228211812097082680662048560136386445552503262731405737536024499442413478951788538409623827068601602985650052824748884826061358763782053892217133465490435999429185800729748849513428338015955848215068794906274986303926520086421724964108663275964182733716058695070671537747542117558428485816105022541392182398384948254519497155500036568469181535948219758961588552779273870506311971493945716357401397309261622546159536440886631819350211794792760858514711865407473761156978025011025354636491849081084174690005444965031861706477052335457385303394757840838889659220647164314800047587073762307286582985585454467630676511373912510763172311881161972678157194898997255431821088373063651097082667874186228206688048473695959661738744462182738347791105111959282972693604447694620613936717056482042356935960063724799251441109170529356513721120699375036192443251145388516749445693261803705213458804675467135466387522691464602156875142590286974397365852526237272940942035803012888721852737769458886628849602526621419854821756485418228355005056342817033752851782199440594436595163466011254422652208479227485834629481531394594148652418609350685441362014390485814679270626948780456744672368858155643396324514028029731869254013023348155373955714257461114209418118771806632924211899202337292851360731256164873870510275303404039880817822315000980298230004125208319498583520501121897128989899875179115903140027752959840224412812968500663116530299821187808455913191424826902069426373748836267828597002282798163833448665997953165504617725937970110885271717397310684076162581354343167563264718064450917291969154654645611377782007087920787648957323203027968995275682422846228988925070986746934330433290508864729206298838214109088436783704411780519585581440283983605155200567421416039323196625831444765842927160517783863891082925785681644015876617881653193904144295365879437264395999156783881952949786062291206240331715085154346155800537740000424207561937021133335971870886873795823949689199557523292659485366464834865979403111415543592963056022094972612199995599398545095611470976588918424642300885658150071385902060040085632440005262913685895613280571872265712997524831425788217327573952813569736043888850345897563017219189663744782088501868029879662292753297599028384587174046283962401727835741833478993653428133782443030051952460347026395872642137711029132192909718556462215763992773173612478324602448001437679659811448505025033484656273507768984121569808849546964761783458026320379095828346967222184314321275926477825032577989427017731765546080212790785406907821744765602138288503789516696123168067062510156718540279795731950069530699606628702975326072207917977040372382292733260294405356676707333264900822880378228003912394712374702670417631410386448309644301298333865494519859761344212938234526670490331645409696398306686677213456789394837497977569472053376354621882859022865739237264489312434855178406643856133597472151413065779614314246037948019105718060548265742721588034073993312516259107424830904493992933850824980719429201290739587125307475957649927101660398948769643492148652221455045936402746478262714233049984831595932457872111797990734993275560031245577674425104687640622143886861828786166077194399136849624534447063301027900175118410863226690419047781439558051342219852372262317064484682059656392948820574351991238913118927403436060525876033226833984393566349537713678376952438708769144853419810208157007023472275935802121963587468233063377785879798983082450376966498613893246116191529925439065612631536553242164960553136798270980865666317293951636294472521590243072623071455711230129908392973541806416080390560121601226673745013863677802799214834333108480464985839722266783895362468763994060497717780734259163565379245286398176289512081081922759856354087922997581916042626762829477744281622366392125901606898508843441431197563701034819052141547298149480313192867814286503253320090542073196409653729215097833228887076889937828943925456022669396022431342759039636742517449676361837272584901945852682085446577879195789255386035112465423638544852126073853538098835183196300899122022190746169112891162247866429197672795580301644290085877229779777220216432803055442789493099732520023661194856183913719654191789372425958768017555952576575177118507862292370329473918106752022771355427786146770878501696451088285415497002553366829437308185396622748082933007951393032874457109554047488186392949829913580864882340136655907536116823168618797500690221367903177246748738264009207638340162199118336794749900973307679423850764008731313335202367446554561183302382992339962054363102080794753027628729233772303176182002748390506271958111942521068582705541288195616336937724469976356088458406501040308137747484854220061671884735408976925006534469922656894470706287604186588672429410450190132385107296713651574265131512381641098636990043270917188631217406121328175889159243836327878082086640955967013485335668163721719975884840502787322554162990673947342126674529485306267123875142150488024732177548176700815102738644058908161237268207319001395783707499842701185974314486579162977437537623747213307379736908862579893615767119086755371126216509523725117798238465488284596955933729355166074991639692927189095255959682046988662530976926485017932555741700683597463108780833578083707559763849477126833065697750664343559387888389490612452489765544889317466994815454225326796396652986198731880897805205580016209086175358839109947821289970588795940479418764094611798879741845881657606127209287959684833411616928384586490185997291856320142702600422855085611093013488174510962634605508105482606879237979184835524096595900475391513260013851176073493314824321713271826740976424823576595408082265258343124372547545415403644197751207657791434981049040936613111914779480708252041087008291284085686099420823242785628917279937493367875991846028361374279942589021953293529608790167480487193697045930199493683817706607129007235382386350428432758307905855215165316830573510459652667733873544229665695856705413273690612744024831583382796928747683557270357024541139133561760571641773120592344695986549987573426531874055512771798968395439878923944036694942531421246245263586525178151768321047969957701609990745374893759186448742996471585096211439873229476769243520725991294922589956358169947367422162029117028310037065913652698532057279654271756774876597631702606837352561609478760119611156398917924784282526627226916813719258735599239218836755545125371804857810469402191978272039169329782981791382290509836280064106272110143564862994006362116400212361433351735068343264861207546620786546295506881050232106760045420159697577767230256409163653436653182116949622974651382678411671681327201108255154377904143136181271371313754702171248684161765588771812639207731469519898822895302128780716781934965411426564878555633419512868485023116189356586035580356057234023890998329852109069051149282942706058341597429069327010111405136881508130001908687206870313161624951891804496017530433576040312047639422725491290779774852988891101495942592734941585348468678089678128410065438175929256355239352224162857964997012577712635554361542645950587645264444022487945659371709222734483197045590907517598950917004693790628372505761127917906730381180302375426168932929293425606202300413587762484450807564094470899066747278909339390724560859186482171303436285779774569261156948200267837322842516736848545641314718178577239689540384176335286575688317179719860795587758995311964027237204361896329300640995217347880149685638841951323257542807238157465575084317324424546097131996604435090942067896638938682915573520727757501048580835181097608702146166551956445323253113117869902793707110512452457160601968333169135661515359260810602569657188544809973136532387586913917986150506524677732244791535488077299676021344546538913539268874771500088878671461967099884715901558463383942729354745415061690137240623019371920232604440886657325762939496968296342650130719445943992338167419585540461214221126037360715913408075500765455585341485370057703354464582053408489555611581608748453322617486344484921032783445996983768152349159687797426895286832205829087541648307059682803905480032182992678321534647359068109402077344863497391277096598949601717904716434686923027995374241043991847045379984165312886593146816629984269970012906312402424422809303644818012028050478744436913202012727064138090924967389022791392536196232785061164688805606307091076895508523994867530423594107993675295102484885027490593031906788299333622498692393940691636388635078159526164446626180231781639565548868926985401059439594314198981473626820544615020194768380883362031435478683236153886045476080170060989538436842547086414904518353751846374061634418169740752128735091672749025534631305635854578559095405114528288006188352976102834660759728781418092594319554922011289162099612662408597170161582401020363798435363313571019623047750600469265443598772375771821869371158984047584275588738432017601402964534141635508652667964646104030004218001646081539119708785783778307218777518957236469447014343515633953321908887965057205648416574688365891581756639372781959479052180988019692234697012297187656631690750507176373459930417307959623390200602054152685660301138720398571199447179395127050445395147350142352593785361784832625640520287921386602127490480463633495093338057226646418288254302945155288599095960020568319745946674075241362260779012641202603004367701587921469649731321942396189469022534939439402734465386100750961731423833263762574165002568917072652803484964618991808521483038695213045322712983028347963125145526622343780235203525166804996936141894360976486938686859249894330934261569403630572181492219778278011446504628474417657318797366540912831571034028844276885539973148617852437903228379347028327361709798479030463846590170897919255100421968247402151900989633123782906929789609426073040369546582925787706350176875877293175098299394605530394191483667174977225617423349462178565034961389859140521555398884780565330880610054012839020168582024404618437896857422281467853076640881549176422940973369541626035259565080428472459336672566253350486709084881030021375649440969012281002962426896717002603224610226536588629599247065650290789738276609822051492658503157844421928019466904948277219887592677897384813379447831163964758631971461954557068243600058834499739688611991179678150729258338740864264548294769077134355463088265898354202122509606253760667277322071810689931085837122194849841580133459290692483164282095077390061813745191417832938791551960776637084789068271001437719256683112697487477810855301305196581959026179467095018486341993008234476430754869169607612521756375781642699118657439121688471933773636291004107325289987401079748568008162492517901485192677531353070915871336573506387214460115934537770473886048702125018761518143904211870458630075666580901454128652992990547771280400601417502981202115228429479417340068751221624940064204095012082435267683207252821546056920113450136820417649137191592136007562809026275600589611607280028580734091375372396609661788291564275464582966019573908049495197345127579233588290304332342909480903738672767495393931543677849415268179193976261842334776860882043179731788305010585949536870146367525200723377620591407697846237324049549330598836102282346724781473937017515271251243572495517825808792377112490440629197904747565305408156599325803685401125999934265122742997253657169080798732413484000817801282150529022933190041363048418559527480433926893537118783652971332970132291152544303075177251385496122612924166510685860023846292131678921345281838195120575055326691563452897441953064672698135182088596662051350397011294884483903717294529810390091616780335009612740139090708578905984346290172693073266661073437077916516356514439121947678741735684282709128297759228096435227596821584298065944163151818082159766925025078127658232043048432754322826558119949036637259669593060131885574231870188551477633658950866366948353198139395453891630509679272927417292739518010545598611517991308228459091137159462564998147550743044918982059322485219619411667697250909886617477635393280638867899306678088246130737702928296290823557009651524249327513028048821738432226302863258902074326109418990873417187737353540667305446331432038578708158066974525269746624701878652638888686660363832299124744741978281991080524160535677888804574962609382523415309621036051192376695619979292779961920825284882071552061946456171642566621739642019058774277783115826826406105880364675823056768334440078890081848027833998115061557252576763720057699895880984622642308687160584390760984085763080463774433607861319043267389871113144576284898836116893433957966633799992937546281554095881264974639959331539072146414611061144948093582413589536660790896786171989167429581541933429074738236466473146602970697993946355731947513263191019736053946642952188062442959681817111557157759718341082129916816248470974342762912085741139714398628634645411981280937570344568219204204525906845828942187725366124496584722169453963320277520450892739165099463488655254658698197924610372824137350295314323816763097115070979100303190777081198517381194684222468073679141536181937506461372706262641637584368509499577458639372864847793083606808673449340870767413489184057396527870604678389211305433877096549359902709504977665094337874465074165046283070198504813340279635675189068925660794837151673040742462810870433682724078564408210671355568372239128345103149978031386767461076314661675413567184409437076134400416310786243633935632900571435044438664185664285004278624318340878906278741448295967817457604639180796565687376102305994232404144007333785379539202676068792574461337605529442368935429524497909923301735076053971065638479215885224419673629782922712720221222142940560121661571675104788127516191086969073762041350472049343055390717040789134177729312213056661100684225825678484811613665283138528896157053170729960216191331598092773758644889244278478256849083938515877257817218981503857087580165978622970207744910914716863926663524521660506883998396419495066954694574673243707780057217823442752174017837613129538140738658736405845971288906098207382525448184386126787455537726870914187511677100153751557784337479362674014029892702316776577364084341898193580259575952097848572309653241252530430950121752003013027427155210678325750232010730841942401750074905269605152867089498029480819181206090466912553695303489978338144406365319997894873734768437965882363772434640546166381516569651220676257845117464060053729884871959764493317908469368843186623764815868631183173558452244543892909604823714213515199136054719597369947835241586937642291385472751536002801877227666072335909391940081832752545951285881130622396658664026619932284559800528497913521150395866476220825955615116776788899603647743487707399689073861697522990004787315637891279741722710711936895124759461479194967024873916229924894215822722707862954310240948652856904371369076628176941495318338308170114437236117011886569187256984679634196402648812913586142950165298531982736134412914852959133376100878158199538893420769026214671869902529702007773510919515041777956618844677359975405500603913943699705358760454410536089458431276115315656547188362885273471573341614004381534772565566981283578727079160456282034159113080314187561868005939205737571977538977517077473423060344630139891642167379689432738239571129818611643419289116736503495608542099285836304762585031651022861800653845856026663595902003269211544356979139412607323240430771601074547086910880025304239739314534766753256943651209229914187658746745363773034821413889165184139714786288478035817043215747246343144468812188397322774612913553939531190925309813407142148061660694660551739582001560598531016166845214300127980796232541056716415167785993056994321940612381707044464480192362496331265812101207621852998460760452383056660966637447804511769601611474958871235371462810940019436569204417048951698094506044114086533421745845432118791154659119511473350167065907695674881675604988098174399393349087962644291802754833183477246430254300096098721205902974573966940351301365219172749666950792393640260135926062221958732336887209967531511059488250663890283282273711063361361174150745627619158423549834381488442770325392370999686097689574467793130081821166942713251476243171299636692980835638556723214927905644443498605371156994665491930823848045666521920677510138532404313598158368537608865210380052373028581305355592580944678972893739893687478051952101671573364176901052395825409868710832896462279237617067064098011158838770498240132040942897647345345216154368479593407697382486570124333647476687122844423403464430571654017262046745047878757640583040803744648316751368149995239369952942028124534591590976021031041963023114526348201382009532286761655929937392938289460225856053748775044099922488420390947958349511698401171308373737438869262527575225655156276080134932909765699175328555069928986682293158513144527544634247325969938726433636035691153959744180927986007676179740278817549096835691550267215946729310310208613282340544853652771576298466360141919192936381144017941168612406838733745162648751132115558550968054796355846234882521721772437609516597592770429283357801267895000559756149388763750262539991538498127137959186902522460216863686548750941393474459184785342103310214289997178896336147786923902394867380131392472862370231837243450504778656086569026181619555217010605731433122694101054064241180764632882480209857713741640083112962849024274382110830125194639862286684743975008353335706675533494100089734315379577269999528844329523670608007197281465597802913191611380482450293074975591223746603735330100990438087442781738775399998270053064027371224725511083296165072118869278971727940757271786510946118057205009413916426158691615453475458143290676496097137262437505772353161917831660280622115938153135025451162911207820700977202233849216277751832541772565630061780367868850560906025557281656295545535364574672880541153962663078736574853701051956121784017013079045343716114411396962955292100806129286894111902137205255593872489225311614673029389347495179752021218832200198289028247687806673743748209738913271741768014376186408062417047508231519539584341345620711708322220988160715582018843509290016211762818144203682475548582400007507839177948551790896522689868270257449214605086493500433679407155940701674285487418446889425615875113550558217601595015725928548236197399844443228979853958059890508325260432457475668965202345643810177084301408225105171290203846624909177616997748765845938944251712880465853656155586375684327004818214410881255552540374586457209920110891806621926293255384893146704330372414198797629526709583275090915833949745063767241411531803302461064351956402374675418530666687749753772320235967618562633356360381213688516728107343818948654149192935659242028607692668085703167058978046177187954352274514723747018625668125474928512121328637475757319003817314298079697771345597244147849738215307071851936721583664673535632142748049992531709256689369867814354730541145725117238230630140697740834466559065210252950332598460295171055475283481795066233391423608888006097270339555932177057913979833067998471272976494320210972416986987136275574204355411015991654573000105998002477225570068745610943167198800244715791080081314789594334313083176584048408282590816479858179898024732929813667228574817005212356097969392682928974772814275977520780138530714491019012219140519779762404292989833961454162469574152067320104193680796583340960419695592918311535390556904165402858115348802812666862949240040458590077938975896275697405364076497096577521288906681143998918201818400817609142161018695583493913143360720091777377233577503132046232960774863839455870349091579934508834916334438112335452999844191779150310075122069743900774236464616645763434091717560296629933059226205580090226765304625925682391851754298604272183391665074523954385780936486397582719217158760330551316858091414257631518317604501508691244592791926842079586732800775917979527278451234189879748490293402606669604972055353006129521038187945259816436543455087380785904568244985627740454706586260858607206142168956781175431024522288744872116549983659084793345809743572689782858067933221330671607880455331094708888696430798700279769866392101690440563439704650736775863916690436132382164655395793112268446232431002853045346399705205681576425600010538450213675557900649028168793907810728440574366779714221808938073231263794403173978265714606834287411485480152951424445267435024798121742745945413388020508467577977709306689468002555906567858408907108033806133200516365389970648362418488633151111200056790298264276649097969058829974101377724963655773922128413202906385632523699589759107187161572845615464234911368023100781526244884453071551297581761146976233623982679093470544652528176536968728517283807053334568009114253929601111318499181890675716215462049822821404835979392793009920298116675642555452679216780297957431020424832145717298283880767647837781543845918417934872812953282230694346574133604414274580257338090685966664316401466837496758500888017320629052674254043155961362194209379586165935577493389574435549663093164012632246698279177769347426169177345084820656706191445324530435610418757672805427066530359742576347300057275370560260288774339540814021453531292303952926282971261365484853133463179833211838670988512217688621450555306902066482082189330828626719533061937980536765503892341864856860882360946857899001512250968382271344142694728561289637825489483264833001517447191547629343875446896352599818200077144542295530785376476897044824967964854210027126179131013677979729631246835386949734685676598142322041463303647602868936127342349579302769130660583774113311938024671666446028310598933491212663517522733322327016023272145583219347299363288459128244844804748993348350919098373134804634905152032863820500516287251678589715767438566764041769038066640301968779950433527348544946226361513469501918088330129649666996192748456061239264059763011197118456327510875689158999215189170149088498958145561634109017243298371248324890334905681825464911001041110482077384559320198870488615589919104503983202803719848438347179785997130258951134759430938451550375638747008265049890657228938993933578064918630866025683377032958398022878972131427371041656243467208689741366321671428636160963476293877200932599144686838666355867810693802456060055933260424125592205551475826818047483365555609189595978042406384064706227058279108838439706089902529245519199519393906250197117786460728930052661020894073421056068375190211666252909628222124049490100230595480584088088571653170030935094586424257871820652603339718048761709140225609176494054120270926848313184566290442375283798241108586276663095603409669240367253826291405878223100639567515552231590493512967697766178308498089620781979056712287675005653872160006941113721167693727559844539149197665799849232133069620553525955359444421766163151529698251224914395460648845227922568700645280643376799633391625479402527416009203645555597146751373009074187075646932320504769371010242465780973150037125723493584764424175435140275213106676165001659330944949408496835572435807223602353380512579913717902361880968888135966115695931709470964167964595797277323296625652119026629580303803981211821073386741334544932847048407481073531115139942482230010763574263652268171330526562892621409919568584297908850976918390359771722754262760288795200850203535796279445701633574498957870400150169561950084330870779758807053080910461457405423027799017511715901843794296485148151706905750424265955564002792877341674955030612985566626441955264799593118381955223487095928244547300277512192206343089397163928048425964985568252083423244796184750989763884992953866578936664715125006027820076075826091458111862137048221990645368524325838867376531360058507789456535510555488026506767758420940218469949286066286725489500568795275240457129579122268507509451016182568034380690322995142759770955886914520520059320884425897514906475759665030770195730130272109958999806049545960051841498712822659147857778629233998496366063279527638643798984441011737662410577114032714544660494783321916140262640389402053751919849130417259417243625000367114374273019425173293866638582478187474158912524123521822416595717047328700568329018681141315834347680183982002029022538354682941325590850281064203260623585594296579583398154040872638914772229409468089218403817520657298718967709600910036206541044070470002830766755168561565618288189249405066623608275853214524694440823189477940244287029048719641467307971458384980765044187612568108291875888062351381425116582612085360039327097809088683984771430655651728063014478076662594427541342127646286001618061632134451025101436821830784630883640787637323007798800700339547317504250061483723738574677556969304606189530717895425524989938546227296204370228628305427940284496136764217517110218407559845955191942791093458577152225656068271885468511899451736581811035832526845880985290711006351200299684213326361101820606353893004792633686993455278455303983432644940989340758928247797627684724762247346824009019598668301323791904634920775745160275489062773920978172392678665029333927712115440096981812293299279061947575734411934239952657786215377379240256872027182630701714258889984599769167652769265975040865659959309676655279507436807668517544394568019134193159694642019024010400773935804101134297257399362862125286709142738792181247832164507441611672479682512505872693260324641021350259808440652182204116163941099460940686752314926557938778293487778592904880115615668796272683860397143984309550969091170019868120216561829056794444616643318091240904194287130594140518127581418066985596452457799922702951128926995107798790054432626555718667843507241434743981169096814390953183277607197726849341487345961772040289180182099638727542388890837804165484691266237956497239121001084389651304028562929101295701530454776338236586540676616570265517775947521944839581133858042154288444790056589954392954840770134968410562743698619087353847447233910356722422135692964742997369317689993206743418455166794368222344851875864843799797009983980408301120858069804304582137130565215593279982037257626255391282423021475864843390247514590843766591932228018542977505742052870383207843971430233267481480363327362577252680479174449063376340518311028310616829246837200917817854012244403988222780885848162953542372794836063699912479732381080396935706563596341285316321532368890370939565378858126272122031955443991899183224480793785438686642280803420001116065963409643182033182446393388233497423033219017189708460667718403462721878328220938426426059468253385404583375702721383771720008043009865244144211572400416106103843494703936378082736326438568523145796709186179353535001857412328324645248096617197616593418619327182932655115788292997585449178541270411091824637505851756912903845947451091189637057607540369706479504199972894001204426811317767663831979684233229521364564288323117032640615809060516916043797705048179345973222440020369784897047268996223605265624355054247827538706779278976025140152885164609768016472980273532624926647455027011452470519061644739149763143895156175888749612546910187015527786091237064398483808597913595203117088245246786832657189676846300746022684925597758069566872168501028105778433356181672642042961239804648190879177919329149547350801425206939207513255562936228577568699871094544610289899523828363148111988163807816889549222202930894820115875773691614643715726964761060944573082609721864948152546245356796756087141549658634428201410383880191829750036990326914341750766939506532691783615194431488303982059073363736863156958946022357685225729883195552156196064128378561203627275608974728901446394340089264774170814506930436593327060278306112001492473388817030593444857807324521294756092418176840744249726580441734839386048013769540118858908810026959776766615479695862116757198464619338435638562842482376078512922647472738216485578895798499735107423747386343065144920821526502495120362735721361915691318618686722050604971207678589697285703793171692953622094960297170052457613885472825516114629682868717590753458588907855261648453258272992914613704788405613692528203062735166625304882835839288470825216649687037295847163964111798229571649874055495423060165209870939264317648460648194254936596856176297941653900931669626792836805478305363454253896631486762622657248649689596504670891290959798080958418016051241475699251776805321839532641602877660145049715026317404518504873523524983454977897159234337786708731078156967918833878033060100281508972792867163567352103630679509489694503009599961190319146271751897898686319295138433285088262650118725510579056528676274497316950088443828860653036786575967111682896006795503179744956137661645489372236829816139851977587776135344361250705559258997274618918620751217852480947727218069598558874874657686959338876484200872679824648147248813811311780747532482968090110961783869263988693791749978064281360806287260923295503178085362890371960831889335263158101357810023602377146805239582634181366553446490816677650549804187968496799411651140589642070154149363737678412705708866032562399108157605688331938786066907598645125602829851166984192552461197358011201809518640507877007682003957722367214087187448707265708100852567857228425227076516877786924248024590086020834792811068387975946640121634131977422096208405519840286450984798466326601397570998075208254589320626742737933273525254357034295198378562672245565819220697730479863654353990356881309773450609112380541251359516358194221924289593764717767051604424215297931455740704212577062296602622023734776390806264602829127355464802991890790512391947123532224802566276225729360455151379379629612651492552779173839293547127436746145115595082655825052348635709588607089731933512761086356999738260012658714290176301704719783121990613953233492078535067306391997270068016025797178112090222668556114562404530242157813033703635850942103051757688180470780253815097524511187149309829928680642096591722282538955278499415075539118845717516635451567725945341300444550085716079792860143706894707100967241499604272908355411829533976137095305647117994323695217484684876197190670012129582006109499984719651925215112740020863156769633465486820649458134212413851659040039368188173815719127420996648055722102394153892923745139587452301244669633222551489349174080823181990381679310929489007304604921302705931351194302368149683642620891271519843614503162341680058334345932469393092713395833713941240195163637229968126089604588672113990510734219605509224003059469784960898066805554719282510243778802961313971587504303823131867611547717354061702511190500588124017119587837429013239882377299670727420573485697594019334121521628063151781992713229417993242130479659795765110677978678450545438898270172121344139191820303254834118451612212307848183013987500013401674086854105111676616831081861066885984030611693194943129736963377433852726131643207608688407247694211753607616939294878275730343457867317439139804941351277570675986853334913375843515143641566789775918226254968330577791803249448148945632435389742277063306744129676546962333377619984649449269563652902214829964331356301848525432128820747062661272712651939078024959886901665071154487493477628641195252986979236741497130220378789645970028096226428009108211662313805673140012045160194557761242010155548591990527083883909083664953052363835246656323385475634596805719332111010806322789402635293521843010826233557304978001926398693248300560866054725258473453387487076880083819871540053902548650137616944375872223101941340501692546995629969975026679218077870528609805711221642149717002655662381175593223756431431575118911578901074842498509688377148367904047735680674789523129958151829019612039128606822697491856449932180554612564445940238169275747677763194866011208535047332178767081228343369743619758409821394514534320731969174903929102169308907039266172136495342398988741859590132153122319503427020044895466130599778980314550170654222438330285776325821633931696079083203734034736816202128362243521285457759014984406084255162738981222661537294073977932824051867430826196351354625678737417011518150872338944356517028770471484931248651517822264460527661596796178480061239552303732123404326421378291096473948563034368290653834183091409524103055847019240200857724683609233960998564750889076742472258006636027519248416788568854550820500425204897204327580326284514853945946088740966836127726675736489160641607207519624474139338332425948181226771808741480765700965978409084827945311367950878861917095552938579070526665142499604495465042177605066697004003996199442043518496460614059098727783793889618158791874696475080794792650328606266355033069051085638604019126960566019322067642038575699690611615571943966947377009996280640275546660605293277801695850041905312525237325532886878069985763350691497714472271275347275022900630882713241654522937697569102734196405826112459944091286084408483530184720686188309233366114002904266687630328282981201557356681676730350591328732428214059643891743027982295874722110590490843632456246298821445287270498997109103821925804991690923197297994739540887104026040203838030393986197922222072522344700359912727643276755699284840214373153221001912591770151383820613250367210373751943769586565497745168557330184961057734799961633960622401933726958324288368875375116970700552050551345891065983356519237493335957991392813205272857320702053629263481216089225476082176518857456606054540935552418641504455658573342107146941339428880893749546762605922693124593936721050991542610390743214028114086130624726860160172173029876643211356685133618985837840818624917464408557207222253606563820200806680608350876098910424320634916884613045743872432597541094461267799589623079572996102613982118159521343869757551180400501802890768685255289543873694079445700639281957789960272505853656263752039673869641271525243546911478069149071092152168371715975980181698350522058347358511495731052503520721096382535741330855222320219652342228079938628770548359782027647608026270174807646759363046353898348586089669037967416339512393603244678202750699664313690391186120915300635355093312079937171711670353613088597210452985613942814567031104990369474196787477618972351085684566977104255991894433833907782334801607557507677512105717170448823771226343912588849030957146527952203262130007088225721016016528182764126078983025732674001218823261782570049535110968913947596221028561538879879223940796498042196423052304906925186864610367146067442559456609115222385076569034361466126626648150065947743190083038618345027667201534173450957860834146509342389111913453146801910566478856895941408350122888432388145873204795667118340975550878794877780499733628994656910891645582419360694003119111306692357886907627472278686179469817747139086933227262184524488324746887805098678287905909248508618355804872698809341046213356448625067161787490028144795656282610164473244562393050863890716147163231355737315489629869768508865429156628627587615487324128165797623210873228245545301976077947437243314999632537708032585513369301463523895842834305914446510722075669237322709963793567478041197204736117914587411993565725139560515151998101117819581669298820312563778549873034135190574953730995656035466621315446832200952628803978607630589499065139083737907130050949440425892468224187537260979847899140599734027865002042850206951587470903081784499334485776891846283404699305932057563385754508796560266974294188140673232646145143457470268050840701127516725998300821015145101751297249965881661564010366168357940970449913014573438113857235406798848744418323155207457711765666669753365186826766592738548665080724084454302521972137750560623069057512632503915924056210776259044491106165078572714200598353172772882132997396394709114342630769211862415802220657363500660572386252069901019509306828973447153213540542253056166719246118833366977626903696358856712510411668837536357684512322987080407182340432202809740535299725460332813283605115650208129349108059999230930915257086316547612271809300430643695019987772073270298977669696252116376260964771663635756365275440198359239745497340840928843358399251819237603159533708013917811417484104242651323624006986240482552430789739778901827567462345227366005158508618096243389148184609203821085213974496238513455581225059548672993684092578337198160675094201640173279757051470030858855906704965656600645014126686993504841231855748805695047861855318722082344998544853716896593003762307336976890511275368583263933611583852826618117959784987162695840634436380446128529736439775807516073899932642614054048271404806422241510224756346732581206993642847073085251809820300884897105095132311229297376547583127526535756040463352547006741539701873335723493735526228968259906644123727258426194728438358978643857104813594519881949936782574855608023318649791407903221439710864437742514464759867953921416570821319836419791062876179940157489057284956651069071001020905301071440584022985579014827859097548548079841667859814581917389088907220581730637650531508505603778091853953584819721074087722713344337134843888020590571803157480162463977198921774956405477824781723390233077287399847547021234097288541967174306261398481779529587047875727996106762766750395055864713157279015546857235470404671515835431133546269054269681125543414814502958712685722917100717918508976645841556901118382907938050109432299590660071345616915571870539751237345418558621246067844351371768108815231124646480628039684993080304374345135225080145373595685427934764347100936503910046734996712697792765301527795819829856180652175476054188606324399383632329451446003548708708546978404834282085643544170027261963135816666160181287271830206027514298209817340682751541740251441247824529743652203586483112726365563539436774559049935472128342997016152318515359331290029727264153202117301658313400080022860651792616782351461289633058912049869059401991751207095477546207961295119205241899464105336578201893199636426513673803836915364928010522266376726437585599324620037319429024589453034139646271557119232830347615334848680261615288197716739346448157192958922512811069256076820106513129195322371414017543606768232594020540733734711877156124479196125305481066481773105135372729599466007750201031952125291402177181212305725993569446120009770004769452624230153355398439437876157182894481519655533141425591400632452705349175526546525161458465019035962220771268313223252274817463598041994114407076468049842976801232527616495022186050392254611395364482329590097374327455886674075996218018649512227434666597555662082391721144863598129580613710784744819990121128788183037508174408986643019094037940487737450121749648402323036468663861235829850866179291150391136655608525859400598921849180926913456120392840691967077226030299186974598470906919165652552205844103327969741041721789695416008823429176083773280489212663967425645996215617141723012584482111462128631837867092390476429848550235806986447744961346087084462574889188300936044738959483136834419880463093754963066655682942496561330366867248633560085147257244040204946669796733579844334175727419724721340971475032216764097900014837358046348778648361859398009050242152866178935785911269419699196673641299916383262436892997969716560822261350086870065294067234797180863547709965212031189111519131542179269171549443986781274690198323763104666253112060481631566223987285643302212448782330583282826891343647391734599336928316471675650538076298126597063764435810880167036873292117499784756796214303436890433187053620760654776920749463059677276664669594976178068141113131776155703574873839830992981859588732956139724239513567777837054876008200749644147903196620677997724907190560332766255165322166008978282265145623403357602145334532508645637087284836022488272616343097342919505884095262342215111158735369246939383659293937883151921510474709205962704729512530370570903092229903984422913343407118731501432102301969100182212431415573737420594468437106842427092663246675704503148594291884240900926681274575535565013444188507639086473195257366280775121058361268055446750453571049040914288459020245524544471683069777655840916083666048683994680849498786915241727404265161115934960621779745016490479423282821571038649397896012503854903230344207284416841498603460963137803593018534330860349765334644179880657252035976009697751731137201686439207329731801598849364245956087622047196835271481385739215034543391443333050662383049186275678099994831835635219895844770933732112188965948393876130937544978027364753203612983423565768481739696338568662632687379036611790622059515765959480500559416888476874755015146609670099810175727855567896818731965958460228362940089064185062247375172964520227023758047304407223491816112375487607225290764596332663048150934173850997294556668842741419904347436599433666610718015373585687815162996333096581307571152942371310556451728772340744640206939148594740199895322783557547592417745040175531281252261984117109156259476089227620317029406435266614973486699604836713166833642121051736206715498287160643321835637281946355042811212082536890846284847215147772044333746830758015841617809019267786882463572071805347575056790893448136860020799825131409534364740187205935617337001426041309466846049555052127041282727768509267625224850014214317253597371253354462526078157290024250399443341084909046602038572051757194884593283859061526889955973676894377751447423818115074453002829574310602397963651780299546097670071495353076257442591437494151790409702782227741432867855556413503084417471830258875529092217366595806102055152966801816794066887089421203147809260962487760972684610550402364146824974893680387562418299211501222263839037347866030137075291589250750855623200969605718420135778681152138267678902990527962536249115794472369014307848259264420320038452880182035656014616387169707172231381434885553898288080511039195390554685037602015417301275642072438990502607719888345960256613589924767849044644818593357526251291105612546551512042392635159016081877886731854726634149087597943866720959024605479249809914274811539308893426703200847480578240548353704484335538907285541135532948031836939448780039472617928123499665872842293366305253534284317140994861215090158039140017567763909042911628160799106264234984431511117893709888007728632848355392116824046439256026230380833656177255370138620723994780426015245968783684799305042427856436311705762464874472462514576556773446111198899540661637808518808676746384914716700697800263399334136534690030922513624178996706640559867567752624228679838027225941470777642781815748079820419773898843440018437678743275353736994659982157745368310379965166084593261146589407628269470827712467060412222162372879423483243303289931564138596819107541375295755734008265681133487900097254053055218985912783336775055789414583585171958604595598921000410571120826021241382749971659206918764601604993302732354464947868731372367652653685213910845035545523825577225709125264022158605439612245985598548651911190910287432994623576946251560849682299626431907301547794355675016758361108985858156951100512819716987261641028030093237479828291152456994526270975927188688978777425689225793189573111518665486390582910475444908638151573195255866607005489583186739659633878222604668002882772160234698422984787327100817591869419720806237170592746063241191748151003712306770953805457835239643050902307515329039213398443670650280239027470170178801262743173604382948968467085021046080493411832805234917692764044527750455252668036599858664512138745433490844791696330865978626283771472127263953858186185538010733330276715578500844994826289638083791452090350191124225586655531141002881306095291958779091046190907433811946260980583161878401558083399981813475708849641509714799971315222010272302029602792030008925483511921773289139034216419450833867655722622262705694989017833863937884853511389700575069829563874037638445685675331819546103112567846676197642481971460807377182034547526026480724524258635404048554744536530253079702843108981898852766329502500612666677929990438502253349156963971672871155234529138777193076818737648252359810577169015367240929209390926024434352965638895178549706515951878423478462680073584971890811498177562531618509755039325919491997884842841301065996830476714311934563616733562715488869215906996507378584437300127159592344735074168563204773048076626318954360418066349403204513673429810519751861364472408198376802179695923210028791739584410686511774828579449639320262064096553175673218443877643507176860055737102181968629457718951797994965497026256318409897663671067370273086810402399820544120588698003633484970251712331619222014968810182541299927540103656749890604374217786653047137358541698253505971637366373344352109752351955352632560912341634990390972973561574170347114317276295520791850180457392083420143531371748238961251282853031004017909567504616251816039232837772151993722329043320616581904937866974690079509812433942804218780537968416457559368369481844578371780584463137204030462272980660713939507974922443029864719548520254960589998154707930535346438975023375697751915589029047389802817344158558096807135256417065479523593833674885045891504107525098305331855624351638117890256151048599077804540952218439049411884438382419760858937108927854405109098228182942891312804904481400551642388079864983708832431266123409378725558927292323997911193152122938323430622676905425316487195812500284352328733875030206999455261035338954317891803420544939304655939981049539561471983849969986252699629768814162321804111876354612001690104503665128444969621287945507688090107671392981513076613578763180242318662304134571722713177589593423113113558982082683102539791394260277511953913870804916490031811876356871784149949517418225659198348467295181646913316059535133316392315606639208852035218390405118237930239150741108679712774721701074249161318401906218829298763501968206824811838257214605650670741691368365374993894908072427162363446355605371162025415009423453532016932984690048588216237966375606523311386574011068747784230905358612200603603761379637734777276953305412153398996965820049831294700280560308218631353620557107275027083362220689677913457829995238915928139229418826625882081111653845428591261275085308984556718660489311323284196717149282921446320638219356362806264500959154076842570470212053065192552156297516067788331345306199397144543736156121754975034513062074818620690875720847972819158612693680068766765571416807826557462715299516488083083224199694148095930782135362374225266375232253115600313538502166019318878475581900041010291478312043896572527645089903865063425304912981355090342293698138896962021574832546647966778927030712420076898865613970511007905798740192518899757965765258578907849809164330359478620399292506681608043874091028203813866763963398054533211377512342201853769088246291098435460082075366410941100374203843499429918505708564041902698404176750864306684390516050263836770095453489651374054200832781419325535284943040408266065558032487266305138436336669357356310338378399778939762320903617504655361077699675723266799887579241471012323125215999596215274606149012621845225545051853568251495556768099432084867415927276042383650281925984796458741815935475558248568949392493820187127600449349610333202031076303453609386010417268743267915330998280105689771328551110714674117153866318531493555117450246450103529879096890322104447290802195402409686575911460361273791672252991786239926927577963352128280842082046782264266448701791952735103198991883788410490013712910233547440678222093615383640755918210480622913527987849378740103613255575777263740592413042821879375587263587097287670793600393646191615853970099513373948082580666368016164750020659191889274963683064540577964928672613973191846368852522925630073334413531140677865456768900031927070038668339179809428166084151157199121528379117112424860952126916368472145041000017385248579647059863705265849089404583099014205725608206528572524749480754600508861418535826300593214707019442356168340815810988254227390344477823271970514560055633141187924831422417110540248478373155467846440675506523067329783767537630494353943842782858626878549157662922023220130648876328590593497455785208166860324815108556019244071353567346130392483352701792092726556707229918549174574385801550852060114870996880994411709475592572713444017851003933705347822054831522166183913103101231593965576125427397890200707793908995822454667659387512071065119578466564923504383122451009428114516650496177083894551124310083053550133870548431458930523543848315463784373259100933522863368376486191863981398862332938845306669208358588744209382905021063655642808289666199997891273889062435788464035170416852104997477139638756604414105588727289331262822609763926484731349595457081559736344670110261385751540929075888432000874995171178888441947522960925256567524975854515797122546433352858597648787909893410538359739509012895457411667418336762328060855666077470358453662800005475577660829367898709990927599576172617218667265944555834948432355230541409324689299054639780587386509583805224831764314396813685441187265156057341631039197220896502047018771585039551790895883720293356904336423327482531316569934660980110459485706713285248206645864341672773972631490858386905280568100426407745032896028781055282578619020548069448860835778824973416822674652908777296625507520648772123033256040539826147773346269669174781929534471947299914881466070623001532627065757903976211684182969586195893238341113847222724631811280012834115417316396757512993142414976747159236222170490616559945579502487393349994650804251449830759002819618602195797217001468308471634553707138291702629443423256486503606637854001972096531611572465121432216346504488315407220814717424858986409922951035575913975619448654398434711632661227357058485087418670239339755219857902678384711468416567671630584174113443270396339748872930665046978326358792163007089580084223899638056434206189961054234269754845203461817995588242826107246955823990153459408933603291326366473157439732715319606780519867896773194872728861325870834731053803354750788207781727424341468894557752459487259826508298435166173076490377501168734989580368126164853325568122739393827919808910986983441675121644455038762685504328842661935088945725461218811280537903741874509285799205823102197940952004509045625944028938681953903536816087172578034858802138726090531186774997349305120438525647534624108746009642120588604026178280202148066510586040149493453567989867334005445666259142929297431407419134192950417746577306345150001547374615877218934347891746637395963607854428255261896124631481236013967353806574106314329325123332285188765246145873124690253672188628375305587522988884146777063253798296088477214399758067606627955661938040785336303193249023947669481575815810682205221710856487250531449771863629004980703319174601732673907578460393413619581018901212132936772958998026726864952987434435078739508093494944855812018442561903379486017524290196484484701624960855336897254948111016142222125457515583604755677928896526875320614527952425712277925203534643790641571946732634379709576773558194941310047130534801702229162692549155213502006102215525807414192143844739440346357048348957198824082703885163555866238280846703654669244151827202914122382696265356118677430962936969430785306502469230715916626209322133987868075704815263913098709582133969238750521632893815915388184353039459163998263670366432278946575298567350924885162771807690685983299739863443104255671955607785420586537366355662104456664361889906102053070731736919318235638414778080431955149759066555299286988060758340279593474231077091875221690072704286997567338013576585919759157953008368197271992467740480802309051275553295374898481909795563340857070567305563403950645907387506093743895996711266771176847704508320399872265429012238702423576308355695757055981653755493977484432000808173405603817454292298946651957216777280585983789758513088418994047959107023793993661300939455356202744798581407218084642834676985769806941165792038811327816868955335836155265346940040986854188543010164165276705766310836614274079771641091366493523042620126152768959271280085319039168303696019131572783798705134592625420053682379676280244806189518519100564427449480048370817337872235114719538691742440594425230525225248671117622964091243264205081417208023363137915661393974641818830619263345096209965156469594460730584060518476987877434494310548394439946164144859997190046294954978212163131754132988068038400617371209725822297508837024057025124854119068466286225532459244483364901147658967828692685053741983556206434634836825081551833454437933469978855840260732000739075665058138755798870454224368043567453326454704627631479277752947029319060905043716620163055758955166989700313623987694662694372386544992817741577382451304784807777430972338020758519351272395549597122763148007568476003035042787455989489899528365102976796318305524997099360008438811344006634374832295580046643504815244624066543262862228276393812997108535497335672238480496455442364296513009150731320112698298328879227204435868937961326176278885135923973714854588752090867441391167659426833029829761748540479641235988277939837919529324471965737464953885740758776014652244192010970108994164602976227251824558265559768137572064925963755980829178933771821063785562456987449631796466916814702165684982231530688146124766616800967923147163557351986361927700306100818507095230913934269811036512367234663022671341432145473511798994626253147894465285935472465900372426682909132902291686391749376283389593908480477652348770222578116813655014409395875832494890525095626275637855719014808015857289967201703502377945297590734542479521096315683789086317316099538809322367948379493613721903918683787258354560863170953235524641285865850753650599897817990573316024349300545065905839977262281652176027462569819975015362734047230531670413466229004016422109694982001713409670343567184207350600103488990615720149411790433294191857026985243075734674533929702818921910387687366963217068156218072953676765715829148802317785190083879108248329664129175799922322058301974195639221232794790055574103728532271197078916125630550408736348099517089158299074533541203993698281295755279677702052007198964428883262749424500068722693432769895838200359644718784409460012339476815430694654305785566999838894476189368000702953134738477645899683995262945757203747043003555740569619842579635014242680236473357236922543327319920938590705953651539795436428442713271247025399342740272949246424085454434576205588932143067829945619651487046953743144815679373796668231069387632258445933129183991798015833406793505574268908778803555337908040476739078324202571778282402457704890373726468930664479416128699449845867427063352070430534684504652277920590990917033464673825311242966074596399210171397568095472481298730532092123551866211557968575791687751577749454788134136479053762576158109611842324603291171193941754324758476719731870220659582660634806990129435608841888412178113831492686950554020875169219639257038862645591897525703910979625884996186513746118073342520524224489797878553799702344527421492989078541477083176647523437063772406242422841135949729335161192203407691987169061779045959889013918103768955515861233063496720818007355353744830307437675667561729350604381834653978665823967303348964755990399154404177519318052470561800694108440324010815307277947967824564018918207657551514169159570636549781995124335529204495227774973725594899481636560474750556722942741992052253230150055880371123616491685248983433457142358878230608739934823511551829732929405154520235955333549613826150380260145046432577034390917368353111465542432448131819978433121167158201721958998325564317418617998264080077184654058667522083026663495111882799843149082771197435364641454406086410241352381307606012647648510460024237604966598710625780487350428692070704483980878707984999904350718515541950727063256429545914954853892393029312097582383292501241035698682226125639367531906023758549708693067834175530243835460335228110985745834387738497487503577877390259827519828263205529368506990663019250383269967033945581276596919589782446954258741836935534266695000799944315084234591579631695007024844619763202087057081617279909916796281635672533545727489563701914868789931582769355257458071162453177995404672315034731083903513679474278793638491457954701286667595911322453158412870925942226226366918584862691819591728342958805342494558576823083793401750899809248518197583156565790737998509128349761492950618394205794074886385016187430146395649235857083368374123359068093135383062574677680051059117321520569598664785994807304777499353609608846276874761651390052879491275800230612263472713450152456191701829363174441661163986849789959411762218674488909544587705116053192644578210832018181966983030933903243416637735479965811281753030074689668954315332006530159420363461870339206747208348174026310962506761922026948410202958938502238338257892734323513603338331567699462727786856858970303073557870381855268461462103692435138982333714461294055606991147845471143581252184182612847810398881704474960428798365452544151854445779062452704229192557398355154638032073993013327982517872967617199956393789814893369053591336807452035170440959101366141383466675339068604377207987230756604952892327328318829600965832191373414521846260447491300597406552328390095992991516958829664098731655662712693090577571333172125986874100004828941129257618033725790323042366465981221713670953281975390862967590759109436756493062400411086674297143267059108163102621334256217154873860113657739685266478711522246235212418694244541267677246932312805456337667664970103496823697441222813870533228675508582054518039177896181775059165257856251919063557962976885064950651235366711309300827944351343828868969838595286369092168208934644281881387115799927465809507218850184829915206336229577516317214883839386574522596012203990168305519505641116661237929598394258352798426745862091914729590219238098807711927260608579651325833535622521415263975455322243592013356695269065857702172140946791919063233579602009419438549271724231686056774398973357018776714328853520820976905629130738950937687437529192636007640348237992469677353372646295484089006428830684985383588148402537041524158496943533866028306530849467136122681386846422917152585553340678120951932377207080457322568558021171830365696359333675364316771654616325804131006587893673712097286417939011613332287948464744005754275619781825261702737720123994345317723656564849717210126135475968827906680424495742082391062491802961466906536088001794867108830324088849159596447860363074087141881987075141265736762936430053274890373596415503512805190481585596369350200174503323613473071228706508902018671442077163347608416756306853424924440169887241747382524681826306475162610463930842381350602811982250829132271591741691423361971505404055615425490880459068727457009978548031659370993851618214410545414035605334378269272280332750895328653219235199805144739134775230148790244193577722604713411345814801014401200103150611313487247232420398992026328745943554604613356506725087916750936425489201796373438907676180866311981404963244688296381801646064619603643981131542115090451241160748799363142314729051800791795617335083799210871676071957857955063899603037909583184576596324643593385141904395056810486947873962715652912220466203792191449299660392139997361873564927081979524977933615451805337248064675602255650578956010725375677768249625487828070807294421989205004378898035641226666472817245129500649780129795158437903310655324315907875709195957447392934141712668979436039264428168258729439041072058930416135711358233049362935595674845019185465485824702491265014364096407764438926096539347565945537535716495369870697586041333988181499038650888832701660061376698623468786474440300885759074064148164796530891903693672137393946601671612873734968402138878600988069688432576695965803189359116842847645046564667904475275181654148226813457845518827526914719466277170926379731936646079900886202900283761405564754873457680078803404706145693118682302712154739742228385817455293659215569739407730049735685342784936013064567524917104819953695412699794773963956389381523806982053446065649375192643329741363344242740675634517128268205838017151561841989684744375249468016381443158499924556476065646922862189415546517949222137538010085655748369674650323313011083142453450468893057813016842910078278928652874171559119030837610996467001970458952835128220260782863659340677567313448024662092010227991857992327976751095209111558921664878845070844183004182228033867138535020792565933349641539284940619434743072635004112911151439885994953388878808300409683797114057512806163249635450341463540627567168864521182202649684425693776567146125403997043533590528739669815582511599496480705768943666534420346950218564543968012189379326049549407918456567143773791331634764692733070207601578252479310065196888177134895213310422758148569582539135924570408726752550622697833027566026288776804101230738865938233015606348841570345062224052993768260986223486778235836411542851675778839237528619732324198493587527749549267520501931461919097227970180194997482451120093369156105066589040481161243806862739460867038953294321565906660946153559285279851792395084156279675397947189179461539715870623071642630229641292999866452791415384082510234707553930544194568458239730110237410297990661082083650426686965846951091230896546154760864133455703611634598280553449147188724969508818426072731397690353821506917352132024587071528324937048653911599985535416183523519629569762534592396624243483005722547380205339240843964291775560476218132750149911917229820583050618699343318514800642115758821845902646986849669857164963103867395968683831511020860340155874444370410983929172516506808247923108354179106493379873024071724723135341221604165332333160775499674141409746218188644940537830344605738232717464478476451785303765117160496730897969702021285835138025804654039741497973966227995767249877286565602137021298098069398455955103232608609149634977371768158770137610344397666308930369174625294393406800966211507431703404018836877813951546102731786963605226250565070686472538493140553210649216694562569224005744798214054151180487754114056833951147489325833154487165346895768623371965704554191282382435790738205001280533977362708071077159353415675292847979304903497210517086080657153924105199127789693062871355256018239744463355314003146815008644115003394932076071411692003760132796716821004323621073460336551778136962901598531835086159854755230079512189911736252409553442530149180539897638999020157152997695100491108945318736319079914529189944937738565009044713737294749046285227138456131592766693042035711177436363451470408232658322497053022653590570088557052821292007514835548101579723435339503983664898869394165707742152491313133468599493628144563375285649890108246476475079113605282798730731057616511340653875455136881465464919865148209120930168096996801152739556089395904914087656315695012557938566127673802723051729998969771973531554353643197527215925810070743649214163280487546784524813072783779702891232962563834419124219699836617762363407099091446087711821219405288263437060233913350046861343717391677268504640100316810327098521217878016492822965269367790890343795986407286916063313365956655241624124606911137579490878379663723821229703481024255948973373179788743767222086291324618780042599711490369532273853653537950570213001360549170007381655968943518955652812467539201705764147984538081847865208829034032893872027195116352263981980287178878141949177347190697774321274188011483074482484016312478726099683839882904172227288856796755551709920521196625774014249123800544801450305397649516555114784266606862495401311935310432103501038388969347359582926388012056627254131453302513517869192266240326111137766334781863051082027898798210210865147864215499539864289800734969382955126664572445673429361849634779530844752829150172841832469943095394508883477388930746864774817159900373355373486001437510027930397932656128215459970026847768567653107697155109340052181125841771370879409731778537534497785299010775172902002153985800308888909281809849701185242069477659265169089108226718862897585051967715854441012835067536553253226779971208876600746179331929707768697935262848007865888782230315274258044041594698415917153202478263580611060487185822897974351980385710502955680265106024945683599277121054926156002957064987412055212097846763122382848564719942011476404634570659807097091317706625560193319477836401914082682891796438471226452119900035132250243525262059851304792315642957470566024608047980296231939628961519970623444972964225162310338950295886812253490471481358491910892215539701711810739663487384699912574910675956925666855314968655720502714257147759692664184629185791797787302417931105559690687740982676455774569846191812218269364869646324700313544556152402585743615670555236349138514902508629494504655017035910815934601422175881745380381734369494771378811802191856033002990786995331446075001939924623452272494414811268046013096149687021167255337269223491210971785577979212033954145376321889436279426672661664732873034215889280544597235188786776623981301651332710801550950540601899489545961003621533382230246972006584490393874568800478197308776267043176395870945328290970268469320243829528038076623440091855771605491503857336006084939537333362227803036020527219333899627124863992835314046308698106747380896047289169296389156537333186844271200610060666823976651073242374755303804587622317093192722460434895206425772204334065783546655486361803430984608732464651302058675954361443096491967760609497778696790947751327239991070429320525579896334690914672186045738925720021310161304123551211754765334290498139646702741234180636633101414149252648681170425533456302012334454275102467029995080288763368262662484459160301768543441755957816561253144917974588615463603579904400171843778466786339594006885175255058740405608955161745090195110729175138615989532091725656591627042129215822426763719236586015750465609481554441783377323131791888732085920035346980583100150088692376200251856301236731866557651385019266415072097377565916024365017973329938323129112279499691342014763820290562506728289227383932604790383085776498247530216612064307604250687656446721010495590706368555432392877195664569315691747362487827439403803350533327536190401948400071276379281111688299883175334480909900373621076992563354808357790322790235866298993502406831880838388178999046798521928950390504190273654191604874085148365172414216163477718096011644665955901241970966034231063021111574581599364838545781985580912486671432801241356364083245930271165233636380498979744082326650661146045362540744254854983703466986348326246530170329729797421380427277428207758894903226413836902507788869506553497041247949230621011307258549893444779223701202255105298941916142596723968903843779377568979141962155604257349711334162769789495213656434775939962241151272099740310018974843182129375345725791894132546752327956500571938263627987845337370709733913190119309872172286872311620524189554803964547832816435193959668185199995569933692840195771352402880242797333981592400618254930119499105829243310250431629327755690986226447292304472271024144581757834235216094166807695721578899459986634240839190808668379174140092142396240151587153494793365071839936630862854695162332646425344406037360153363649908433512751157460754626493446527668634399660643207927111095429711265288217586375191183197747382014709217070399514007861338860815480600992110999143873018469996741869643972020902538864854577425254590000564035591436526431843981224055910707568864418081470324166864636742883415864381319270447076974714672274268838906287327674539106803472647907964006637980173878387357250624245352788906783315999073217928596369181149356808967361049219847750435938702616187921317979270216551558242155179331366730200053187719560859885843479671993934205497737167315712469907033228993987504189713289917560549416019868895544860300603025641088173690443695260352503866971884314997390259399404117678880882764892220924623701924220826019884754137951363702030676340734777610959914494942689816187204849281982689097504503250133594630296808090553960937989046477951215230015402734260459088774659726135137524430278795899934112370043274049938002574875084182212476616003854170190748419499091797042660886217110849127066938216555393650782005681193401740436449273439850945658128249545428035724113987933891320475486968419990628448684201111411807119950972979394032704730576081390424962330619866688642626032992144457373174011983329014545627575375260404647915634918704218189328257718879612234666388359485135287187591029472728782667305868374232093311284365691339705198735393223192930588523696298526796620166283073799289959836097602044591710583881812136941481020400455751291094869080994319898308907861966922186168431612409250054372205286832394252722924416913128935787697809034899284742216661094363754058705377318191200509201152930435707979112655191463428702645973185408487313867966273482001313611333897723767970090098496737885570329515334371644612364465435046989753777374747855345792898899684437808237793174120806805267388320972214880964231540699953912482761370222784983539687456791493575793993549508664839168126411541233162322691288381735971395459477329304857122723067409596983584771976451491806826037437868594860988078226993948013299818813247773157745852064389108540838356077106480936498621280975482956296030772055583765266942806864591406307083272576694961501900073370580537349285074887077408574950160150220106743447004749682661815120421335417324493070491450542567987066518767427091928968650083831388127503273828323473919296530763996286637735321022290030830272073642401708362360766449436205231347680601346714451438739829657777968999309291109490488791782741644915576203734787705983157204823770949657327272012735221712896078035624472426121383867565294505222836464579941810465498640908388307303395636616226662855619282941984758972911061711061418934451079798141004901355138862450144213371767989129396814184171423173222265210157474086080373709239754604892112695224816107148113693193675605053809752775219076872211746080533157720491066968957126705865618249135287923952163692077195760388984551478957802506844210333547190031156565165783927504948330661943759306416678154269379977231509182167847377389250571128692698996561945093039720634520491557894938110993087595708364387918713541089243461801770293720401431192173575757443274788809235119347423478465555604132583112610080665825138824070431873144974712248049066152973270024790796059362117930467138955030991035545716947668829363780776122842877925037983891390011966593757943257595919973553566866808952112870377814198558852644652375718602801765827088997715675573119130264078521018838684277467575319354981777925595924934354576331540754747231910912549031816347870402392986735013022270231906460933713531614789066063281391617862374520779730325584126875970137197226544668992321690708886407783004502580500625910989712707573580733883741409603264506071230188982702909807543835803396133021295615723694668980550242825441731345216073307911703355885814209249307826689190603981063742980471670845459475642371915018573209488016585295228788131440677642101689934385811466506263015744918262299577563383353692507230637343281658050113475451245080641628689281722832172145286973870411202999108269967139908242190485925388978247918119589194951460008910134217493271629318816320010967421592496936671156895989779032729642874341782769580627730615726867943786797628550457649582574728355405389423386109285244867727946458809600036420351230206319905625023635557278816502113808895262763827925576243089685143741103433096391761473498164916119667086940764787153735582316549439065790724134805976173135150442503566517590608324129418115832541542318023223380502123430118229933440967973443208879892839215662128642798990195425432032423856318037997900900240553712486453685194155916912794634568834339460469195900415489394712018592995898556943553275187201898559725432183050719557661324529719156166189764051471187554163728155252801583261018277150012719956015699075847842611848957456722125663960017324827326704054461425080996838445782948167225044315386171703461174209963081956861371671204536641172601717033295148644924879572419299194568480588650872760563752832301308721831573973501395530329700253299435401714943556286273301826623746888557004498484539771466169360474477625781227367899977357841001417983609483069981289423627845218093540274547500266444835090127114648469531289314207934726932226318029412751884099391905578278718201057137819023041950583794886561886859266565643339591294599642718831598699672360969102199245678037915849603815062799376044839500680222284987598167899781740897340173698779533156547795225669082893525949957879631804828367384323718689957061549767038021574515664006655270568874545924047963252669376383604064201317799707171934310741119733443092483735078117062882873162416437265392916667678984195589964436415634542636351858346472771696774809523682720937553114703882966378465449848908894421640338091560149939423257052808514280570142152536276847525211909636112986207265095153907592497751180438092087979452808889437139586025525979678986335091453059233975656993209539488800074466364221525421073732706325812621296595704832631922927556809797530311256697766196958929892642752195625594471624683349363571155833543625002381162630963413511910363523647748543673216196389536480092592192261796703831030884099347768034878924303678585860891918594816835222033188274234865166308932072959398592904285298388960245543448663349199144149550457054774668422173882718781686453987203020837026527439550539994211228501827017586835475303283083591225924348507017598888864385574318255292050845548398099004680958088096579337803423629890132894189516575263067835246570004080713046471173348066460594540759062737330103988214132052751735215666838997936806540803913265423962860126016340791708150230720709210079494050756985794010771466744096968126011470929404380428292473984617486916811411513108623205593752101231653560733348912414301326839597498946084827231122670641014230696920693701715414457847073715613168011950398332707703985960683807708863935334650976610944062872374915069063702586231771812802842994345167106971517977720811010104037378505389004689379638330529404051269002587183311742302291059810606049271339846868259818157723809293983035482317725657280949439579705816071090937555417331525266837964715468886806882812341278945246629843356685401728533812119693123926339617176720440030979416790701789430076512251582962956469147426706571617286086018160509945588575184179585872163930836031339691950883660823327403902023806185014276077147961346236557955883489590709251617431237138911670412121478346128143544719151915321674688361954152994734869178947071673462028781245223573873620158826233198938520397437953883779561738876065403008615163872572852637901579521101570612517300568222765062519537287852093606704012329473478993999866847547497343685059319013544739756620621841766814456324837217676444190690251626091166593931927061813552918669614978229873520568693354017120208801093809145569447069560675446272832740106428732912598345287465011218530810505137054054117169561016049336051138270128976980867880052877419093772006116024306015846203129690489185246610322017183370257935065700330672410242054118289683840673249809778881479470464114602841923445858186174348955482640242800430406093692528053645492102378802451411827415100449966708147420170607423764750644379835955943026749866161152156418001951734824952456434015257466200782614808600723862590337625532594571323880988392935598129461117894193323779733054952053353128062661136468413645619747994638300468248187571889661348970614765546527149048244346225463720266058181897951808405420846286889782794960796341167993365006389924232017544003534590849551464341871879312790127406785025878531399782542334145099287120731348277571543124104675865259934543260932057089212947211203746815337522479495211763750549535875084796391706561887162227948698450416126109639818544876410465767733295237525560776680970890468661106846981883748033483834753717615312855013432047701526660447520836108187979364693968433934928854435172864010310253921031715394792886032596146050870662114364501764116216218269373571318994106860647017929693802849697085603708403771544679431126410832616303654790656589187528863572016103503047332621106933500046318537992795646020926536399827930999458992917215537692758329767216656210142992930924168956498652194831831215653420646499040700170242902783718748341837743525748724375784383108680184394975851502284778990914943891939079153377347087505662510913208615278998992343173836300183110823249948538737267523627077935815701530138495210350501008674396225872108248999425293073625809203857428124454552202159718910100618774460628219406965551017633050886781731031580062199495675333637884560817801950300226299659585027313335677828693592190698146258915667090999038364047173320416380167366742795695918729216316244780884263803208985041404155578892624020873365977293707536713699491499914500800960281070435071307888419170619536478842514753121700769982781535649805520967092798889299026784500917376319466898808800278029956116837040957438482480527963495939085381265414323819634466554279571424903119262777614323439637884676986963720320366983707428861278436751922145378787441126786121118701651264054456161958440564314510521575927464680091730983185655002649343094445099913985043204965040597873812269828456285253732982286299156738019687542768368632930950137255380570881992661165629966168573647739116363300907787102040065322162584961654744927371339261493474579437031846300484323618913676166799785432363584387377592495012466507644562615302540618029163635565761139864136543465957415513431725971802762836101000977308209674404960659798489150930679807033351212720839722885581710553601559002016602774375201964071974162110263989596762934205153625540112649029820090119642994999466634455242585477760523465555626187045429276619059958840457660224871827925442050741943745479366135244415241516537017722978299296253385733390069202376240982798933241000333338589779434892814669599063820016482863795674227251962087506177461450027801450628921906424426603468362544349362455587319268006304313553422301143143970977280770224189537165397409464986316328945568475614054290690901511432687245482520357694720783404497971805897929890846136087027052542090310609998000306402013375395032171140827819570439146802997909173382297028270533103713921697130875862671026767118105673688122691424906489485726412732861202701255474220377139357647380555471325122123983630173328298667232480397526396813556827153832419773345332320334188963496396130831828246386176069177477945843738962773730477866512448388280713877490163153022645312870470286333287527055072017952647695731934100119385215957475936459062857874188929858231546663847926107998913245316348912445414402711657651212683257107522289035908440399198230975810855338049521771834885619937184527186741756653010302355968348230898791321967076459320780818336079918373932437118130864357097570232694031475213624354560321780307947598495317302411842966234234324845443821992126528892083902425044216383764232099005128147189827546793838798584194549125981035253423192388627542781923729205688603659572916211775556535842795501076451154810823539804583893083238266955439213579294593361292106379194680877611896314624476895943539093734131108924136457362335566516402011695973959027805729692940829808573040194806345632999916589865079447455309865220815797749640573780955502193562363394922220295509479430460039468725589970440683278215046251083879480941620909929800073845473132805485368989693639062872185801524257631677456276367723662606929562103424787965606731185086326321396331374513116089696258975697465886492796297356785245737529329285920958162533536517710757871809001454947853536663524113052055511041738502124986181295035179749129029588909116325248878433313302743834899339802905626253881508116984230042142191830594373322284824466671643117383147208418203931933868570830414275677516753826871626814394082590712972368396985270740760268415633550204345862171670977392847384167381022933423602410063852130795525543611738082199969923559222220093353967508633409032101492510446803080197964523445082632417606252797119487941915038784054371643528986673843125910412127314892221877717946050491886643042105994468912063604733547618339546105459370864160908377959079628349359787667890153746861636613873422119502180660287724550839862843780014289941634234569347128022050184788897799195054327068215019227268937197044983035485798866880052926786978626431648462158785886090353889337393428978229871836881328263837891221817689007141371899327690335622887929071158069557997430796526799076651129906386929452401387428764086760660498693659396881237037951879679901342181046803793785193968293500534941607539578976803285586469289479610823147945298856642078634603894051016707707553388237786960086673451437095621313191848605505524376449048401020758369602085768307987822674906475969298112306633512483192094546143294524024476461995674555072507649904736413348978777950471130783656658593533703800342757279766949952183057814254729814094155359647118682477579494764070432463884602238877241848749960014126808024443797252571532807859447922836636436349991597356324509042092244400175703223137427863242761425133106831429152042113811718369742858914593485726285754109896487960278341345347218648571159083815013307123197175639971031090884606437024953776961916470974871788092352862474634844245869434893631182508081854907361891242936631070218258658502196681629517648459546149615851867327231974318207079125381354331353880601392325799695749470593362528420633073574295765802238957656263553025799943117775273735780813441342881102190516695826805708107029389246588778546165436605275842835165744513433086083845455085903685012166609764948288194319148828386700935371266793086110215926840080665093965775159209129950550152284675428457866364474510987928968862404500460142652756988729503659512611605820332646405647519510121248110841432912581815468935667849068247976707902992562063489346349866133626310774710106547476373242057308410247268748432887170079118966016202365278442553230247279861336459801140426302422734812090054502277522290730803088897691698437324872722558828074126293592245322722510618663177592243205108262311873048952176382087173259974415331970317393987626520065062682075891045405001554979165108088213127628197390171366844617845465489177402946173073752328668788993781028945953499894487774221625771810369398721847496835928516472935687087577650106255141846749402326410787870490296929720211186495401599170759311184550682902949684601371753353892131207334644624205855869052019447430588260438138683311530406348804534567029801074044502749014364187507167597515004891889358787210829859649294992772228804275055179652391682034312062720629871031630392037411687305335934767001564642570495440219860126937606240406743380330404300667720717094838256052109206360980329658085463802576283760746266486325584721702903403321509297235206054519628668679868496119740256832763837682282704652411985510315391993375663875534851570683813828097507053650530800695766950219093853911697209429084760596576656885416727049414924552597647102853362978863121503279326329638239054285721329732740679725901634592963281300233469357721526050473414982331184585048247461616589859508766754569308441759559047753673839307876728046404611590812561519652120116264747372573414797544460293259311313059669659175839295452665306291890519015958117649388345245919452264892675654954076269913002681479316535144594265815099676688981384843775347807197542918942239452796178296128593655852657194781599768821887449145785489187816545699042646240440913105590339186508171791004404649533525589933935794312104216398436860618128275446648126438503683459277472424809227339254929896872912654194947747958851963280589235180885621878476239974961668272306646142027810948526715652364361453670460156058712831032118923203741368013442307381043241753089164104090403336186746450948017054477978947452009674271850075718383937611710070663806061268888958401546099683449210722034998301897805650690123430684963246022934795721807721664744673310183173238321015811882141360851808090904610584080347170063920845070331515070895728381266048755830761424575409638340873712602808992340086528552750804145976661623502735005013992800798157422967121093240228922247462331542255171042335942874336747085205715858437350818930030053840296446789922909610564408139535422322528163288203975431075931247112936686696460052911114250170409406317548907917935329302411106490922370527763189552979317855019232714223677599849959596067445164740927573134739017595648244217046352544423243694623783409282830078982050263783611287396357744674123370193875035791910925188635134625067592783461973914817525157679103788882667611865559565967771294891366079606787553554998785371483817378859640388932102079310279261729304134907771227163665165465095502042454484578562114438900581264873271391316142102177628008860250600652912649531557163960462933693461276305471684736374229644403245174437662601817565081850498457605230168831182289677646534191045189808558403041703640046366903393781318958319246128914378473286566345840115994518766434442923616440703930704018099862546924655932262633466747352743832594021125553669728896858115110815118819622767972273762017163224878765472937879942086846039998237173381219101431985670797101432840760542076555423334712239530726623270935393991516134203667918407641090073096737433800762358860805286704902613365291410931114059123379951756740499123923342040045477426506731123916504039516221582019878167646460332932263620693117036230066624473018306669937380266107165505563845498299479013030045628404577261847149170662729694080326633155666806398086565050940017299604474332450089810842105516573575466044526625222705970999324315809061045082230314928893201078283397276706536322628514537927582623435751894429386424876824269304413510045804926025290162843165552499408161412564090642709720029976187707934664037420532159234380983731188198363094450135314296727012424608491603737216607264309328461126366009055999557212962123766171610323540242971324612629026807474333978541702252272159709384450308220385514349942100773088202106115308688918363387137271041451532048569300922737137000343312986326698678166459901686756734048368295634536883418330382253811126825098098707103582500617169174342756214721132485857521195340167056909886301398539219267208430627341759040845278219518597448917621414008581802720484507515144573310718227763859598760277725321192063620934024579753643349987286763889119480308310299827375937339470596702591406166448835302527162110903431058119963388446157408014006082348041070339175966453275114203079926829737799145972602670524261987264910925883182143743743330778905567647126827901995837533643371924773529227158599043007040510668446633619169987545706691365133882572029149566976838172900404656904763527985333285655680434331725045740989927788288901716049637411374668059367541833657537436552290337481169762215660905906378848466137237304896081568440079865567192106016270981108947021639349078573173046439943272223340155795536711666239830974169709817197006257292490576001253219662175495408711484782376895841629006243270817682952516009630723632257768762801450828128182707812671200578455757723867007592009769081316781005314359243125296439715196646100783590929148730345616075692192753186444615598071078256022942863078247382114016929096329712269631891348659411356041935312069528646447382572785580141720619457285667657324371875500447042838624305940845716208290887905682252720387361143819272885331394331895421622820686588108830684922461444008319333838094289275026643602371984715690781770550703321156014838909526803066059677657159297790711616077821109824091255296159145132501773522113751744470730661469692173910990426196306859673171613328249254297450557665302891481003568027699207175449436570122944790578753905191724061152110792568075945019764169528842187495614257281944659637449533993877406653151932499376839244945615197442303485145451681499406255073641481001628814972914196988137539935646164599485288139953692028160582920419001331139509577526774997897700273174883760492037834484458293647919693883911134988683004682508597316220380526579461780612966679831404752591192860782922681792394449630260710469840935098272690618069932170528252001049832227118523736081175769118798595454848090039968661752041301064010910511761224984160066835443702851610883139225392194024678529705916183115261361785579824211004426993385075878482514488292577293252918212171304538558429958520518753592967071519663974624317644650404739778964804467082061359002337080184638879880724152451786852107145332803046301124591206303644928212507886174597864201035537305691345681965825756971688982836739468054742487280642340325730626720418409253032571105822419599733533068423526206830196265045540160028406782197611267025595159469424480509940370313369169976555253154834185864131760709975252062489886634512849050034134282280510777315736117545986432720554733754303150254197474866961902148292172854648339339038101827516785703573998098195164588409514415073341745968546883757920500894231306688503066701866927043204600899528395429071052613366325753407369487878964678158575236226564118601519543570008264184254612962946186527273857075247234694932267991995320819954571253760934595198495765897188122691159368468538691050565978483600956296064450480165896497204654409663431583443127785864932379422454498658260884086660748250728039331897319561298436950331792010072723540341156283766504153515812520447868865308159784484604248033826191731481360545414214421499924988149313430371402178202408402606993651165940812123824792320081699929080495054798986595073579217017963709560757632409439949047496377656378547584098648066659128029504871703313276631942544657651775254836666158225140839769643421048596697855290662231291065921501459573556570782396245618810169059134474392928005652439412974234660410560986606162484573180847701964143943930469187500408986064058737448112416204833712604038992971510645170024208619527194456126353322527534545958296751671334117369665099696700503924545643165109703201531578294448214056859716442900436816052703621008759105511811263275674463650119459109240116186718049626548745595501178792976814495836921064295931976029327104524910045198131175418922762363679747689505039556900204377941080772767696515330075687136067706405979209922416616841701093892417806972242385619444998135002788826942519003279868732611337679748748200016419165379117654689370803162201251920558820981576087388838876288318048526410202626417491042236538513852672596350083828306230013439691485867038543149597318955059146173401057332481660214250432545645220960435513938465865988921674999620525937323234382233888721541667230919295086054414253000382435534446533297092358462433673010535957426906757046481818510591993605952243479906766777553535896411969386030948590662525931051443719341939328834328133801088004093489633012336690771107728059577665036161454315773869727151311885412494057099734332075239459467599638608431060662555886713315452884454421030507351073459937207911284267134862351644261742586939935877192653607400519422768540464790405408689718608400180426246168816454678329574115863555334061166218664936906880323424299697484008244669188210974602353547373102275988273972524498379802611430689451464179391751180492188302512959087510668583952237825444345752428094408230334408758565256442781757190119119016523835821260486489410614825928936576633001050985035208764441110583513979352028280854036954025043921729568882729620024748670694915273344117167660137125727642775486555091239170082193055622103081112388479692410941784965077971900425858600207904562943287909837251019446110205234019998548705647837128432618622145090611431416106030642272353252506750420098301849502438842690503695711433673970943065238154184442001229774468311433176832985962815515962259528472662529593774884259044220378560565672555555167308312521707165543626874197937547924104752192223194507350761924643244426397410414714958633303195503319367214488372777730842595207832954352776436908356100285042408173763582668361491204297462428879941730403299353617357405767758161869364262046793032603371627662578400270600510337442154228063112799956087293281162620654065237288715786520748536881932508722472941119034529256016061512183381053399845746821004036198083387659482925449775850392648829218086091231833231492686541558896067744423425459868844722303348391136868440089837468064607950985163325465678638407803803024451989410000478606500574325004651646382586434769316304257449693038348231481276969970367387414291856153035067522873397221538262674236003924569181720856604298503364660819821063881877352035216439649464188330541895574461728653011251838185846975045793082205385338818466327918586231411437909026110455184251811125161618543305554459371002576744596118729784286174122132164513558561360267503216690364459061937773647442370057737966273680723735656885737270058244672329423341565012711726400994059583929472980858228510741614875793774906591540698789622897565048239899572429674308233090353569154294599892569359357404939078827814639593472931100980779394265427865439121133328446437997812132392102584177358856695740596665045240498562148175544627625391915917627458574694963945137706540783042026360874501406561123970627058797845881524356664521403261150171053738542441761092681180371304245542857358966725548979924622168147051683983361907868675950674760416183892393853888786772044632401778776356893184837006729088486448997657653647640799556438105365798512608055259810793013758400193276326653868253441903894503888985088371474222680422950472701850331144911455682035823753629112441996675267733556046608268996458495371164210146003004367876039708899862934230070182528954449645029431035154335339786699983238099108113646733371880711349637306952426475022538227373736593308555689884299654780519195965209143247690751812402968450624485751391649054173673164815022444511113601049487552867311762739551585152124230828072298171556552987282544050514490234423305811983525802807530186629604942970192177601384757270144582053355910164530294673368467172894672443152862595471832231738251757970084624165009195307553359791231042801963050785511089531120324915707388804072395385307954560015154390750799903151157797069907142371446920742279023470990123838264997500425893120797179617504984756139152225224418858530191780009853288653060348365037539984619717931777628484611943764968294224513225757712898520725468333707448426802139038163775200806947989167465976077787667605913844944479322506375208254793760841217144111686149290760946079157762518092821180205951976752754656026669727293476295863519221718226054212169760389823057207687171984633222466347158433301931548426857706385952487488922701597466380080453882460600721251504945667394787979224241989035844092341993732757193330870882136093526801718654636603130611598262072264613141126111167955200906078775975717626454222647383876054226850490270037757791454968169248632664963619565960842269138899108325536336755231076056437838257374454654358033832498923322095456379675045687345870413151956469893994742224817378919659546421983370711390172431110306300209248042511808374231555302367028040270540981618279319929286208083738678499434283803593177045296655258406006117435610049649968412836924269924026734554625645311308688198461294020707385511981918654344677678525166768625210524706822610412245807066825795779678807212044336542650371015052605729483840624098112258894013824667352673626999013819812027133728701396394250234056567082688973416871698630076945081594981510038011143198627132584821478061039169731041808645173267441265038608943421213464633371215865309183153701218313372054713191923648680613508278159554069548392952956681671633127267539371597502218402238545173259401238086947618456094382414828506118011754809405774351196688732955353862929342403745541184777488464230252733813315436534268914020950967445384920764295948773154004660269371922036690863117806146376543947077317665491836635110662629093682555966109836553899017747718871346314734215960326010383206601487566483377719440438825791773996837174829938822008502020923326200575456535100572485697164141983227181632262915796662624544235196422437732368809308708034748823269965500199092983129063593533348686945436781640094501678733503724656719857499750290733465857231595267243033614665383439473479440360265797954151133834829902740268913663985591927207655691969995489848631080894263509603433827136776543076839264017482156382548534200388683791870108150415437777238263618433054404075357883546008487794420670154284738469365095483168847782141684986735365116099582274647348918873549148418253084509338198137364686045176304132090385094815222217496329388381318913942895499844405717412669193331987364860390122512980134732717532559173333961319766318491782909428575026411541617909343436831508191377438328292397077796606767943954266729399436455783836145167791158916320724088047517232377665992549069326783501613626441921098246624695339343280817938074883525043544083040814759002463082516486737448242698335275461955164817561257635119594435071629368707840638488081859202730320588808701007857534250968272881524851726848901994294395982074436024542784118383632873815241641004584468902793089047402574933964653175550402359729342971946170232785569878529250066105905536896888254061350400308700905384935959567126507077292430780802054031120098100837061218414642451724648986530345562653086618512637383103994435911891268756180082981509219350584392692383340583004141683006846817105518699797530150484105488420782250169311815594352456153741506260011868140083671614382462215619808300140770339647715906838122740128564849462524794076835239221199354483983446045542830718383988106757849633054857150568579008147822163399584834227671335122592070534944349381943358423553321001239585350214209873965520749545845855902414795525984523142145572281648182176598651441275585635046919265464157706363936989562979216436687832196356798121539422504037657392614778778453768137566232772638458094370676169603308277030709320807789360453789354915907708691657706446862862502463250668073511708569843394283786759508804409638051398144334089557140411899725403312698915402620648733551087009918523553340639678833925681980881694528965893036088891728230071745798247475518953419366571881579684719291380456298331837089483492714040012326489309271444158499677032866026767003256130016896901628414674440308201730424543366573526032638367649127044828490971453771604521385609162717447877257905345973658087650253546013372433915819487785606174607493374192230634206653530558595336425106306002281147991074837174893106585172798240493579655981959347945408858053655725073350277612837015701735974252769176552049664472047640319777269806937108449775379773551856196279213364158793525616897404112422569182129100653846660526634336591623465083943646757949503004835408225938340898482005166377715735467470800619986352009445962462391491434993325703490232678332281539199617901607772820420313554423851721951788774705408780908413430314526428408640663271103021037219781631054417268533862316985088588134850934088251585592959199111936186513090015466554405494480036035338598791089527867918144183947071384864979263113538674651167805400218888392935649287047786901413432474100570481457027793933338064189721499626915362230367812801022073440368533393712341229764732697715281586270557863079654922452977892729598712247259143040186756309579194815484074594709811146435457780064359986293041398843696052661561804530357805948747866284415658944383901781426308340012597089779073122010620892550488616145982637909555769087562621113415570699971056301582769712798983602641749691879142142424963128782097084508168048615459080592877136898973691792017641767258929213328140583721406355868635901185448433935768452211530999999629973587844992541203297377630468841926433439683718511865878169095390587796941106427087599855368995095243091318099667327748136130014125749350307780175581338893029559061664497613562384697005630721970340223883688681174447986856811901773902534537212137865953394383519652747183465334488163966247300869841605473309418838287890711372235261767131299594664626608422223046020760807665692404781565865609043266270495141707016927042691286236097423051946399073125143113028191957511365732472335944872411064608986671843515959339523327805498338923123572151887558393307669702432079478114603512366313279696895284266969718077787216692351717251104648900233351486385866945811877475676060203802544383507619126998301996616640177886219352611240044128654276653774003162271351698163291520445424292927063104726600366915720364176882552785546084681945263616831226642864661030150788855262836163308369949300144754002708335751319317939319991159646344292176977953426357226603215820941058119421175881111379599696894502879443591122829607607827405501604769320259353630683291328904386568024260868148069119925713311383940386936621306857660064484562167016629231210649933213277514399468109659255862164998708545394080088470875236818153645616048537432120659997405602974450583510613409231169286042467691685809910931362446727607187212227844382337322665932188109799695951231763319533673658601361896163508400416289024165308599246841907903196221024148348751778051313532211144852116350661229032617312830181719656862926512987372304393264292584379832972470760280651802866205284602751642321768181707247795329728666677283954166595793563596508535564976461291159756186425753965956517762223171844099868597643481793963483198833119792614359214388020371614514323696531621903089788359590428149905613904288463698979131689458439419189460216765312973384728856373552428553328416077753584405320930705450059470203466714494726426500217353056840983649838930206620418503338660063136904058960268671010208603396373663822648673729625940297458269775196482525168843953156626750901654381624568082173252854144214747152590441808629253534400164300468190562995101772594907194068675518682632535937443390834209711709455505565101536231933909267470548140398196515057421118251063773806033267879447731139107435357559167677352003325373818078737406346833537551970083153442546896194604395280308425720066529026171211791017932673682360349545898299610708014726338134452105227833661058455941858473298545214543104266954168584873345606895527895897025911299143912297940961893711437993643362952671979554391748242765355441293093723365028791462932317715981000504953511681477646354307726708454799727789636165773611070880347549320242938558752997152808623101876115576613378072862016185174953690303124912696763877882697436723136862266352445556756717578697923417603133504518807012321622866353259144368398887515270929349472918784258416777588732063629788925240758646574516414732190304034771304992878713720757099089821981312412687339701344372080340256622354856395322711803450348760240186110182554945510525362187143101557630797802465585380550392971651115221697782778235646909809337814564626699133334104511600241558402815004027437714630544626030646494904309270690255242999715362785572250988121931235448482364627150971277126570781996445909572990995076133417929270300048345256093589264643842114620146108635793465166999867848792635249856582763845533369829220152824259415769839978363420112430583497307304445285695300227271008443591706616646633852120629544889990218978562743672969799210361289975010572340015445656048598838077283822572929969802158555662434646273465214050513316611910878425989137891354895816369202345792459028062212374746034224249778768308760901202010303959265673749566197199140966140420436907477077950453177421299600913510875967074233704595814067679409904963865709235345858671444153852933096681229958924958157803695526119459922219183755832505859741899564430257652522558259417409636267526916479760509300754866672018027057536038253801625041720926224437357091117060165424561352255016496548868844908576056320444885397107842051649180901215237995222618697857273321069987851841847942405245912535677340625170816866368205039157971828375618430730076661544176417939412511024596013463478033099467822929686855099550753319332688728992462441986293213067916321718389797398577751645061218030122194922356842007531793415513707805948396637110623089179310577407304642906313406291290908232361508264634573742066518141586745902826547567616605683428244160466486646026653655893298466846272960171927502164223318594721049065091358158134857467027854534563869482773340155443997500153894796143911499324201269810860929141468955816604838532905079388626339797714692640892796156416217595735143591310562506719169422291000458861099662531819795499394264258406018004030382811473152918431068747442228965246806475849991815020148851236852080178175537663469377233994980538157950489175543191115452248484037134506227998989572602653226782462852235623757682524411813731934549463255359714865802522339359103012655614331160401982643018776714675704783290573071327878319093853701867415140794623934888067608371007418845855817857671690556969287408217295668051276189296638654156393844379281558917110588398782179967102858652869896732713071019312945860205868446250058584187068108042304262477867495817949135872542524203662757505541959213255219560302012404119801288002478453985519680427094015945688860319734163786211812327907936672133948427669483192865308164762977853874561161743588024372903627812030993195902320533367887451164063504512607222344453603034010610589046065201298800673760587980125322638156075098606005930774132654751925781863624484340845656627001629403163136144037329556464966561666069924565023515420685440027103594875533749756447564097353641146950583142119242657478367186745912014433237983536111434801098531228112835527167699312581442193877044523305063975110238913079544207052284607451867276997782065449469574399337539214242600781256369872703877205606008661637669420950985926141992591860168659854528028031285719483306257122614879561818223519949543525621281322561175734834292970625347193158875951795153131701202974640173945587238882128119042716285070509351041912759792320126195210327926453963075083440739787831300718191469425167736214683479044989334720469558250464111504779241200150966651930528202538900697179414328655437373147190967755998293991214312305962933042897726956482540147983339805731521136656800805178092151237781701713059420962300537167638962238579579513036504514799627546624615749283012520622636750917694358174168400530692182910353715242849341287929856476535461918605003355871526606190468682560977912444380645148681795171749505864575297583070893682990338305041143767578619064364020524168824393163037390908446147933198612155675785744721319824053899960641262931139886541485428653811251200927650510677761424364623670980861204255979154670513405118430795195366658969833897347910575761112588768164948378149361121729076192499601573922561748879952437083749915507274490966294926927547327314674675045084980201197476883207084265759449577878825547376551414050538929200879130561780146921298855796681843266256377819718675795418486500302571803830092525199305759999478947325307730581843288704104817222802249118604383807160937507327661396800153048653937451514827074849347644970706398574964768609652785592763625192343291144615868052971751502406570050238365082382442055015765358343349336658007606466351747462137546023578141392059144379651008810316142478650175913676580191951662975439868842030848000430223960457735050328459569332701762614186187396336501642863407652189299687187547577114361749710014019857103548663506047016778116605932953511171197094650490623097966712400027984090258305941205260271676353988218941480678597686274914226066074515144470426475765187449122798961940575479428740620371455117792977116133900554273221889107381181002511407761274010405174338621856413935564814020743169505803129598692282268616283846896098319137409371470219707207238170852738115885137617818829526802861663106072478194630978168325442802194666872469259756888544438049849645224849457334159656298078672983576836169738773160178676880555272953707949552732122226773960459857224077853362668136120656716718457876245786635126854968182007847833212662731686750951067113960554143371950004571296562796549445414197498402041985279166344576054632859303436358017600359155163247737592890630636916071370678178429939828610313202622720503511135654741081031891853534852476904549936973607835436863523667188052744021226193903931161522200111846551151521486551556574792890996303501766068060712185397227893979366114629357497227820689101004753969399219279479969769319830479000875838137548420379596211789551968472700602801055675484091845473667557819102613209175615080449279069259620336075273246724033421969408120306470166316001992758441583961845486545109383486614601532272577748939590964462671451694063359176882320726710676847718029662495738358822119982048516751277144674349105239142932064086696027236163632481368385969608479655397185541960149754882062268239838071220276667153828228335399996313049946197751370914752988973885269531780670492404033550088560027736862323279737748190651643272218373248098886908175997930944564670490505356005715037576700765072352920396784728836392028304348767489696518549891019918695337871991558272019934445650085857399217680552048441836511557988489379834822587242347721834175818092390037285927376808211284973093279435589838053694485088119403763693239279926105041359655247249546309160098236009996843022592578325730229948621824767240739842938420669830709743313516112558042557022132683592588433975975895534738491484672259086683854722703290137261698458151892953167328864448303580986759706605947763568840911821651115089754471253981763196552295233119614813388034111827168363446480473464017794857296061370497581200254370545615693447356916414826413855693490679291022001673729679470745751438987707085598040149115328617166397191061466480530519115892141689000260134065287589537606956750592291429492443368917641978411700538473022330758887417694437795765286933970465430286919359948620010945319841700538679747295709744664193666586480239674667056094020476528822160281142986354666791695685289359124321360148314543462556003083077323909027308244451083732413033537264593892926869006062657123200652957421151984738630453503369115038965385773381560540749542844890375579103390103479614433049303299491617240702195273127536104739085278181857371095933151605103307811110331419906322735600796528781029140120031201871239805853157143762554678662945822119709282181658770293098408866366145642337720669456986208643293413367253655691924140717677064657029310968071947658661497732617206089797215006813186062343869405293497862890881755960896158181527777272283754876887169196014793907291586977251020111582304532202049959687043206819376471934433238712553925332150593810066546008662837529677565387521852432113663670190636277118784555265976055942553888238316634474903004010334106389974222710162749066035448358635126834466772339238023383949462312330341198372130679874399018053769315420290087644008256539770010889372571889330621845625274482792622113464571618698653791418583141641145407524032221309471118982447291220721398664340935841177083036579980459693253223257108845181498118449427418753162420983971875299420420076013303092519475455210188349553590352086090784077383736479141500010890919485344328723584625624991428728543939163933403788701903817715565061270797925323914261043212137229564950020007183244077982221301058127552538569418220253716809827841133502989015058239740617880469653683797282540395432861711312570380192543143924943963766156519030128224272838244415611581317326948990448202044936629401315242025069620766329837976075619373664192854411131605215928177892461163213394620213200315019636261864165067963411380250198673351169196398842539282628840296556756943063078658812032075688217808035293669885151126815867062042213535611725478530774855303754165799747394080106950333003229643652164912933678347528307074521799234090843529038059086950618844970628866072578736607653780217528219112442463383280185203441200601426860413563698408840775774473504706300090400669652137611819491462002673882690752072129046115535480123132914257163802548031044524647104385008686568063195889346445312113220636106468212095306815748260379220481969947554659937920312656399722980009194838711944907587577487655556004029945824279273969897555484171773764779763070767879793033331868803288365844199145793657703675067738869739085955786136957275489572701365385154480950865279283672274906197355966984996921732613949246702882018227388387765604516876139688319401668068385082121396924745008288500054655472176460526421883209831157559465888677301244115926046820487537362452965220937507441778211341975932351389595082211248705659045526162580184247510397657904627952234975085724943173243614351827012909489856126077082037412863225525912257355486591976718107903839111968107943135511154472632715690565772257584626466081480098095984658953407405770281186248339708207142649058762998187042124520408959641001581951076495052088579736936836676420068380035434405575915579064986456033785803337346130668534297924890274763707087498587198217939751673150002049962442325764014658990093393830568344526181977985983459222570199648633792482469769618496474310030453262287212048684627531027585170353133476609397121762049621850172829053526727022307493511488772525399169310776380473506633986924038740404951333718562517195510375279543234018931162684075011683328697878881394350136697137191696030732517911863867412880177660460844615275277533260074283281234832509999813423962727982277900157399920664291584020084486028302738767981604690499449622452137970466118539126598219229210743127848334779368582102560386160719406611203423008670639886983288665033479727941550771743100740231084455338696191886084216385675008491901340442822364261302961225952928682096036673806064261221907466954023349144806247980003099863781162157939654180964872254854751972944744818971089483391334947204595948192322055685675561903190799437280568486410842439690707576202008428207078907165348110327664684610991507866781133693619178027162170203583390072117097938652452446562491318190008607675480975529201263407144139272490808490161189387975813333965876621152947475476646950763578390269156052746799968207248548086531939621702210695379173609370029888754231343165267856826620148188576660305666260732304434268102843931669086385340255792267184995940021493523105623296598047424349319182116610657221228896334283763409868584413922524611339818217569358918570934507589300406990149034917291553638778748941950668709444806152620062137407054506845722478884051723672067841746540770141220520824282948269073051410539742928884558098182219930820221475243099129277421228698407172036936095935456625438266338270681642352665366725707755256035828007507178198836390672443371382518966458972785478045031822287322407422605873674370532670915471146787483594193516117772806991970508926431140084966446455784193978941711856372484218529491338771474621723343911449586266563146421296952870677768177600820268004465181531630686919173007844854534162485595876594836487145729516577985595452285933234514621907442924215887198117002881964069687305134357477025180393254223532479461210167066383724252349307422203664890631893773327295665131751274490838787630022471130846499134028046182451092132465457911697549412645506448802451234104527530920183597687601925094151186614992803428055379927238619265852491537558500866280327466893597555816514708814332167653315920772483016400365002772855535101638190148312206420360725663045934266391372484297824338204687576136787604594735708375187332123702937918434632898088955268485188213876753457016244849311701772195017909778460368052100561724839072776520089510870084309031593386367708766979180307645869646574886985798819500388397868019857769093845206973930340473618852664744603001038915452452976973588988382196901074044195878997793795913525513087581839085354547117201111986387410388617775315515458619981323314672426086846992364341769290452428597029409389306041902450426993187392453533197487781953412066730919893921037616011973098310337242845532980335553858040816747218468471425559490218811695111497510305148908657960034136023184979665913412410010887826228206690892968159233235603351949458084025388136472882081955598957014861542500618717074885843388313880621707706350475885321197564354620146672772547211425179487232399079333610194728215863831348070919601061070923839730646470049132887037923810358638700750369365761755468449903301724568193626869787113911071870348228404644434477260997563026754473774736087284269737846056559894088462726269671118592913398629485139304157619776690470856931066553034444210058450584013465158263210452311746615087850265010214186844573837613168128015926835740174989292398960839720042535375934525087165890563172941760533735468292140419642845853338585880366343910022078041565219793650343599830023070279636276638990695585232880969349543601472646599579974129337290469242891782335744786310719241546717477220402906935178264326908791559518708200763168286948807886830071869396810132408179833969745239064085478416473154377551397783961134332220347646111380726469369118505305147294961141797514101372157761754653759410941340249859583165745678820049037698446057000854268621816325246892769592497747578473392282427085507095288551614835736214108618152804807738863681243002627332675434864309588338151836389965269286469326284083415652096480279787092550101890874780441713697927013332705474443311153900606540455242319512126759120167649378705841986592422021692458693848091250964312677923734511165713395456239665586391583923716434981688388774714402347301525956561574927223597797672899536820418718283394501405693860988736073365546779369538401639346321557983998953458642720756868248833147856915924516190729927187521577251940079444120814674992155159801004294931604662102510640899059096529907872060216588677789533338158674928811581359167701426231686417886213482615066866020798820560822083770383394605383280932101068175255865066978172263968596416675225304317993242951280399763951522688700854041232978532531881603327417025128662441886778569194829209914593750169843530411475446124224369043062395305202677118391454424824862475288223352195482272998711219074032374593861138297662150557050713921275976106177032563613711135214689288636693876143345536574949174009427651895650838740389811071009541720610997804851950697526155512592180957922438370325451597686199293412455667881649773762134353603713733574007166786077824369085017921884376515407686029775713420365372255330752539611620388092859546323298266824864498675257866382341273079965136801608168842032369769434263083842635117223307622850074172191508892586771798952427041577417203553510259607517888256608849442434212710901899506174897473087218414421262929526791512848749308989906087586252517950158599939317364949075091837870711114961707001418724663923720618451843113345567726091510073829418417070176020175715455311065921316894525385015855340139504962085525522914391117832574138409679965659585002775640039795330854678313205174119387675507948805766868818010762379272540193885011219061111288290359963169171934800082155603455739272723815539167853648828180250974621422966987267048088704134985874496364837758700155020564792192305446021226352387647337069859253511468392969132547688285668525280851720233031116219561146954052219628610503416383553550907124315342765201420734508319857487930804134377378157116448882410967262674719561506420414438161551357909918073571283396789090838224975370693600247159306651035691432619492890657218655451881364379209928513402210279877457952233274524582836233653106202984152958949750538571789512901575195200538790132526895765052587052809955956487742064400945652139311089656022520434576973095283467037009341026655919636961655985224416618085044435144943252869692018472022363966821270299455423754379029209805454727006165819633162045400056424311451467702453774673499284436272313528413059565392574703952814822655269687306443905830488018739189771836028580581282144666056086595352305800506839018531424886156712603629397294957652672466360062576750636621695632025142316157297928689298575925831167758966209421164339315043380534201025257694535210071986329529596941341268296534114617714475463562524882269165673367976138565910251943716459178470923934120860296177307045507266670285095649643254266841002926867968336402099336114455471694392036107300465891618427640069754458390801064060932894928177173293780354154679526411381766677404821488648248318886390587999375455197374436059506069470029681579182316136877263019283789061612550241261244442372619322842179785409720018817683092690320931017828036673868175333908541589632308254838481196373182924811588778701785467956741292551893939246712846836237777569512678383100742533216914874509038718718720682227003119173618729512720777739011324847784670670902892766080105235244530733857702567753558565115344256520794040934966927131659232286667190785157021041332758973620953561592108070638070723608636174632985341161575840698505476209582954043247446203767842976058389693785112877455871028387969721360532533439915571617949729348080875719450461272145744975906772643174120767677835065456975072268364821119439963903592209881376731634798192023808366885680883189053067819780541217665072025482551663699701784821442445978371300592231275873171970140446529090077629707713802202744813831243722081922533984601270323609995248863783711073362293881475194306347576231360476995502561030086598367144815906552020318061843420133185469061780933226964882065529256809341818217867186441738623182790068638491987140675521446097970554875362425361887165822196751178144526387493777785471284594147805343399218031258849004053166416924423945137788157630904331534063197469947552957020204892209925668520362095442720364882371372506723556739334078971164074373023133796752305643500057997197413060547410802185620952717912166809185137785527035751720818015528662645280604090715636139155631901404868572350897686036458011212629989153878863773018925418770185672075926697223580242661037643007487113601223271782503649158717948719242199965476149785005422263160555634221676367425154578131858969107873907140264208240870274249065608920623711667458730432685923771791650621670002049940060532351703532615640687499386446481559207189747317846811207588916217663552945832932828766067314836720080668098910046889110851039739484514940695898602340429250227280718947505819706422363634981375707570266748607979450725428575109638451679722242910722189632819535181976143279453096973730824116843326921064042167206530676392249923382904256021724633334548882982743459630344977403914870756820028833152634422915580117454218839525366370511341646740692541491983695227082907630279412631633897703117446571286466776021826541316613454248854398834627215584501880824233813766633275615425994670019765812583184046671648841541649641824922136803930609260216217997493376819866475463402960146819640086327966914023058855917844454223549558082613923713147394454940458413568356316321688204845811380988888220260090180343182227065546696512190122066268594226796520031537736168168271254748193008877119248873597638070633276151747137101082383771425765359011112704425033635109984870841774379171332912503789244059831945541716299348163342098403433682744216982559479691579191250189593031132034342457369138474621028158359755103838325784203003754650121313581423427241127847183992617903410595368393874386138761509098928257636804944994204447735281497460100610282066484690221906350143564001460103484790594603501526711355119935367603806076610818742076286503036537516273758048779468547374886395864961565043154950261382936141090581334573491954296475090642392272023381278488169879896468069696350885330280188796204420778411486814776905682680275931990894765126862294549016600569359687690692466471667544839058363352227766451386074016407599253453920915471151341667480710877844194457417600996333384984503447199350014857265264025904954364650762562990452343300860547641877393145309646675257958299227460112833960281934169129245333541865496177520116154461499751552315407849029020537839752946603484076169435217512249716124643339653292347343423865550346854879338426700900889648420251843303152567565561188551297719072143402872391785672783899974976270897072768390916730199167766144211618272730558244517182202948182227729242731827320155792821824623076239103160501830692960187998537260979505786628836584737178945505072764469145259422377874984814650202735303219604372427355093027334313749939916191847272559378056776685495610725082691953365397424642481826869623087843889524334569085850818733197590021969403601043950580557163301397737067156120868183840211359089016553681850905547736091585534201747630666634232619073944378838832228776922769640503200462788858464387639319785983254389195668860800850615410329883660787588221315017509492361382879820144411606589969718457375304714453218713446501982783511524460053489116351358382541227603055506479111107715439102441784689095927360861633916537036819322262614888044670338049225742659301633714285916202635912927305854636848139624649602846793567122415765559744916427222403768432748249397223195249446835027235724475998613431875253334488784684835649001991325163108854201364393813784251265777737684275168696241906809555576014261825248213561311420293636244778727342346125588195635769175930640656242058000925557862497503093658099086242322120555184548127106337401608294946112319965935068589547839453122299915025771571062340167647752820749845959744709866964179736451044595628430901522965009321552833103028511432914886864898159565481985192402734356322651515433837846582293985823832338509888638626520221709834018822919754910288402080614736844040448407334109916379067561314210551483126241505500148752354655100295300754901326754404157207384941823940102512424896977025513237066638916143668267924853009124751009410560121513404389764305884662965374893055545718308429540732406531240047136836907251121583965619540282350410069781538291318096653138242632298909331109152947592262941815379297174180621314422772961945037163251745169973102376641133806027129943540079808193636569609849977708629767961811325064494027208628109185554763243198570832275422717035667769068809877049953450639878658183199063948544236195695692434774333804244816477603169910879852738637593851809458615627302369377847770808995117057497145336580834729763200133658499882319412608077372594049386882555144737841969737472183580652886583534662515391739229485839242165063423101017256495034149358070199780632586212031417113651805164470439431187539101924204547238757968260128784094987341593908010841478632522191514362816590084962007419342271206605118577105486279025750946302137241439469289698263269850800197630864824851730602608800306790975712263242890774130559391089894629558342562303922172317445425651729283429839944131694823249704369945353167207690258347345216378216878455640248775463875907927164929159066389876007547036702153446026401634719739448618758040818366413447012494006992135877307934302873580025574905073296039518669495901647436850817719672042779171381670245103160249141906490748058050402242192025129658569988214996938764197916600280184105259417228304822495684459134385211278333353503834949635036240608590705062233877785410415897498501806115469867853443538145619058700600936609342671110018394019956357436031263580227301581105150948439391526730674818927789556062478222650756652999369632584515885185361695788966324624926626209593285616342543877198732670448567612416940500577962224019816032435734033923740058083240943922319778202561627944285164583355319869573149822324975051976009138097005360427064604803385290773391553435172904895513387034892641969473848931255751341382810595167235673720707259093711170548390166270347358066805372707093587579641563290472645518588071087405437360970113379927136939088880014286559242247009553829661085721366193041465858313521578471304901199387636890722290244402124549464802524070171399230017907025262138199593823508739557014079942615017681242730038143218832080621565593352340915247939241388739748840307531928317849907044654188823393031303532733349512985060066739701017639422351001328756893571604975274859656332654188268239135758635191421977687472303336675385395450050030092075735885492820338371301395952799000965669277621867264763139089915694747376490603868844395133094041080261369997309314568746377221610785916684907445466281133268777929307755995568405160188879219356609737536139548788581028391305355264665970928007524790063125905614769162279076943256589084545578932391981910827210276556198910299490165249230853648577709179536141484364576785736978615469503941576076908770311281461393546015574948904046916329601048094275360560578340957904008345225174232275303788095147071205923652117615841705196982201969113365980794663501171235698022686573157017573598996972723445569434072875326223902366616240063949602753952612680102053994806792912282083886555747361129183674897468390632832370339820550641536574508367247996894156935911318215754227167634501681523982821345850746003077586478307922441831969466789912856750819689202682844324271301085988398293704042942788427425998484289043031355457253450925750139354470646981892675263363412863390686797639642553436580065059520082854143852540063105267041216546678172723226123666579453162969024578046715522367595927204696245075825072190426909353580401772446232237859198709906346876724220387468209589647329518642415047520292334707611111801750859287077773750588600872623362166122968335786189133620559050221132608234067739921659256793059559351545165456984325737171348878520686035420088332948204578595448967565246023442003954252668939095438368384121190277566068415988630010920617719535322478348298050292647892379778300129595414064959118535762146490764582203636518800855314072696817797695226764810686638939110430464674089419576941121178393003451635379167786079904874828714187143363576427822917132011045559527748725736522265097883967571741009540226418517570922646969304351112386141630683834014148279809712952153980282721926096615359750339409544663307498898612064505065543896169090747456935285598228266117446744074547487698578690431750929773588070499485814726548781289067514996119698384015979556465527772723351798482160849986176670324268346864806067202030436871543005213026760404221187926753755966655610311085761137705643514460670131650551032595011780029136986136268469164707936413713166266943263001266705336233577576425664299710379219992666988176374827736792977895365145686035740192241922869727089927273449989836366071271291195102883136971755216852357155520092016356693999952437158504603955738760032348773783650896062781482613081752669565686530618712570606433672795787684283079868459671402673211297883084574771092422345105411486562389262196615184941369594663292544591993820192016796286601610068590520201032933876486543825169400040018568985525933742668289701273337556389436279397278670330002044005972159745105163452414376165507997187718413692438978067632915405312845591737543102713785488814496466377729184214545858746173889134246404986252153709230773461463199612941817469016362356558277082117073638965694686938428008542160572028919032242048271542514761395445091731419119012396119278755659038537727587933218145762462054547443599455157100824721396031111216442880323205894939916318383422001579198032471361138662584650641901152872900858304334046441790478892343647670471988945731172760120601169438378335132226332367097564419172494570960767074108871803198561075021745056900487010980627631594091550519120782915475937697038018078251464791358502321773365878239404602281944015280360768898401651908498131500171907714646826195651598001780997931671932843958871220052592255854424381134197485698953600948552179023407413172583003938393768102408099491828969506962851909462925770540468981306496248941800926985081339667387880710113740405277081692064584546480361971701941027562629621081518452149944447443570125219426787925606739678350229473961675577172548308173199244279963382025324474755630675728210594543789821690348176647278499416459028544506771615417533463555237563761667468418972628472909123102587797813602819371445780634125515814181718848622533602800843974620890689827112680977850815462813709765981623204501797032049960741482689229989781851830731568668937340815024073265409008476347870503158418143263130517811036123558917664948602434566156643242085707938266411116319777571212003232608325815304654870392628533439871479412946947047968331315515157039881162470809110260269021658786334865651874432975602122746421004966338130325883187031537805946795007656867322616077881227869430307711525446658354513659960137531796867577129995581749849987076814776687830144621303996467823182503097932172692505747828133884333701054381355355401681905542004775699716628132008540764197668949433886994566444273509489593866060415345069207766470287191335742928218565788397600319945214690670009318522162723136966337016103333791411334909511801019576064646870631603576809283500394688713200674210922050137103566193925522950485865541950742512520184649912600820053837851918557477999283605682041027714797074189438240554648591907751357315044889637991205488371726893750698448267955220769762187378472889619708388694846355293611657013913263744898644739666239394434154406524250231831602256393336697446360750691862694987347514313623803833676524433560942109103510896404951490598081339317681540085386339273444526332798676604838952618648191807931759396094415844158262551262154627960550930212535477555082517354103411321031843337798625061019407290290892974757755515276754820071941688363772517606222598345923045876941553035807790546649588978647368189711889040492312243319917176515030253101417757455750316238543021647668157942827162961708712324874493934511348455999994630428891564865900084675844643917005631543303961782701928355008350510483490640379114075097403786158621711890825836412006269475894826385930086689024905165773116998230029454839716008782797223305432511067947957304998223754733325204617790181955701435580289628992560879918099123544057005094557718535247566807133108170750669772683430824725085321080364204619745084484658597257767627539435332696983554722239006195617014891140208046373124945629894036832226932202288252744273746646422345847914278624963249515973750247697233303491334462792550962179471900034280475958418070407260052826268548786976093923200379034014521536046963482460163890389425006620119490714982563834843900248770838851002769966995962212712137208691961172908169506510550139643079542970941813918833306279725688410960767745922312848619732762053334120873927130037626970965787362052432829244268109736749962789154197668529137355137193069837135164041906020639201457306815068922541990771547969537016700281273885737218128108471965690279266543883778483248617587036271960356998668441259782644579354257550402844096373673681299345448919277078083368771811871124250157013948015312716679394943013547992502521236243124876663401670741961558425144719253006392334051989530728668474339199029529075788942951136379231453187187823857902237250726444449335043468366508794187784591564417756840367079306385063850499228361284854819678417450554240858433543834627325421557941053451412277390992078859620909337823202866169915139855240251492275611789980731646159515765648428910830213968528731262808350392952013041695832170856190182115433898261076832848836504249218178558863501300768833300907629070691281239353808692826386769716504658674116557351629112046182890796290859649526117400465211878493168649257300134975334590732902558768185980344402465708740102833363661836586716901089067439301465235256497737330360830395207848782188127236068460285768270849363037218288306893823844832944281524529893395569397949646539534602817499443020468302744584231008099411780077124605384591459258688719825011739541485244903885120865026100624931585922915791444647383368563289024942284959192030149759140676349994562363446758417376562655127471428251146804431860198468521302956451285271635010063017011869856315471826422817939002235681592579475622048233713467100217730998374407559804133986658143249169281519417659075436800098114706673565667026167621915789175187146757294695419194879194555568162194662897241856392059968749794722997026320486622865024532228717856155835690900897876545113486636921530099961747830352559982774677808019854940900032909135130359379837863096137508668066055472861168121988906919013211056519349086059265695599963396699393784942496035184724738311275173250977508926597874961352373953636791989355585294818527227958411314450319761382600727870104805010459901742318967869800192610246483145454094159956336259336394874223323297024771587080877003294549588881928159509122616931313038240520282858408830439811495897874239326570234647560941629067052263763247143794362167967588527613278093011682794848617452507729269986230434799540862918217912301212764253883082225525944384616962287485498338795017349808569015337203844839054648027455131116740484678080386149658342534435715180093516571992828052521977738758810544358640221922701729493340449094158579296897401862667575906788482383603414858334414997666422896312946111886052503756536288924464509185885318323657160155670649307392354348182573736773589498860964653285933789889632678890599475715838924534084353426330863102433622544703792468564645199116010353998511847500253052080503460034773011826749472478397593124624693264532082178510574755506504411183415368891211456149056062317080366077241431661919557189519998686804724417758848924871602999753339689040341889086592648980196888048539456046276795435151448703176455726311126521176209825786239506209789795225403626769800530199041057238109552485608307067663518159844157139379868825380461782751318885157053059957300258942955262872056948267820111332949707706455617003433967702363970314905583972918488184342375484572356461523625108029245770718710051323098379385784696464647301393990936104886999519108024164592221822907895717577287183193437244706523462151770050552709711429950554014129339254818728395209051773402325135540507025308200671341133445838011537594812832611007234067890505788051070953965034261568147957347279273658861333768430493234231714756193704790179146462486432517442875048147625422744893769302718509090372767303229858324232109420770324945894286825550171897830727381343895537472584211603093817290118908213455960303406773249864846694618888384026186844773846213617328707889459624249663963991257645236645655162233165998247725071177642049865719430166050334701215417404442695438028252291027114377299187933886631874063615336781001001555366905276578604166330445627293717838865653414119365718508157832089347527635669057471065546576317017407106497938669482550468126703071327864782481010748513196564701550703143250817416256494967665772677716858932725356255909826655278800813095624945471112916315905279867999195509147469255765593602023040561742027980814036366494063554694525794328084726197555106125709456351824790772349614312213343507253012283627458222545772621016224746193189122898297760054585725539883060435046901307381241937290646756296610622694074271348138294294216198824058542068245547859794839484319519098915452752172429447295211661303517733610175909685251813480558187537526839466017004721274477794468798448136469910524553708414443180531100943563959329687905993433571798696405922755230792180262544464320878138293047058624406695407376190302432810800065049251082595807655004602562737342198520948100740438057762817857977900802063180782783729328626785749617151018302451420370774213305950671249327394953035697552825980837967117841161965220176560517066249565897168371826686607448906560850564858944140923022532500714352469389673599599469104035521627805640382019641538489971923964951754351743894650905132727254124107151539716383098080608337058401963016677182850863794733149157117718809203290147534201189554137454670573797245425816700804344100692502104727868752889908818205834788126271294018515511953630284967465843865706694477006566657742047246810473770450729567603796550453964396396470125284477392632654596067737928612913663746343194648313947131399162242958653772535130079870813965172906483256751618438336515072814014324873150142080692005093266875095033999389172956743950001116825445804624205496742212835766255631489647392434675702285929385190593100515809091290887874616124767361720803048345320900255390634956482010735590200000323377974529821790550732208919341644959222977132283220956249476965073976519628684965178150193735313497509855483481978273872590798016982370769328686828232037478836882747330264840113820581776988172472627123971259916551019768003935663303450803533739066888299172251827832456418374269695297321935872999551128109953872546334295183435272865232540200505185736576024921772389529461055549567623691897334802255960480306433963917382330685890463893633922664051397526778515277287329014827233339811323301382456901639522294208488852236347523330009454191100420823972604181560159665116621468198691237231773757933456765598974282053086027116038038497247394418592390305974659635172434076879802322497209631461610880014649688029204439960719486605793739508715380925354050895944085646602209665243402486306403269794362967583842209995889126188177710081086408992919383681746490466586045660601965014253671139924548313687983918533004459961473901249143218727855105767807973406709808885666576723840308922961023093133562807722081339508428357307781541853033136163415356870479334447388949519838003719120136631295561326364616547094395816898737460809628230679435341002582523488914700613446915884553922631923849880354656701558677002690045237050930246934979886713986422246796425875860013783380929381170487313446565846497267755633951547566391517142836229764491333550381868603626568435765794906073998744759513549064000726233743634572048900725795414714322486071061618272519618149760521326625609536397189676223329577658726729290272853042260248978761670260575137538155239950402512509009378196208866348830595296289091562607251393279234763594249969999184567323282942707782907374879777096235829942276802263400384005278382496481106708152281364876442868041790008149799554395152535106158131837128551562207075370423347665534491538601738684624840981730006531913241681013983942233911112880689081913468284438233865640721598828745968759717839723453826246857540365130940257855502622358776225865623798510652493894047838631664985200048500218257448403966306416585750898534061389248288001627684102611693306672782657967008557804521148845820063540707082011639790481278478912680564179983375896141330991202120920692499016257778740790658630269721447941275712357840257019978180107868693483932377653640396265836617009131053966919656247180090157457910357262932449748628134134464585345003802241438072734274733670113376010634824606803420031289462012458410395395904630185702993344476167143959605256402200774889518063811870352473000060724785354816890984283303208774954496621342904598336163651887502620094048770314027578833776997110034407502212761984945184801864186596664099848275352494483898093716163286720366847102537130215108841340615221900458585206737292596096425269486628602208453801635133622656118615080365118141181584564257830319305466987430101497077576182825371153289629518879842680211726034930846270704513128869465621853734370691591553463208293727464653830213081971720918777304922014829862358672173633161296687456655398690489019881499570160850255086696751867796256817831619005128258381647019151773163959123844591638340344828656195733627377871281597626306535768747993136742834893210108171765843373409951709502801498009798976754102995896357535103489954568698934457692487051619922119184175017132704467129859755228816365583712921273641536582919726885808210908811244773513643963794153971650231988142593237250731541328665810479179896576608918226952780381265693371012941021601573970614832575949419365458992399588702580061166211838799542941481316906157925340235339202013657394599921565506876258076955393569381897412641122202897103254981877254459803296631285083740098423607172145517237281374367321829914877773806536695928047133291276387321792556103639495896680081795084771762624581634635808710206790514256925280984120380727301106544896160342622708088583472573757230410835668866405099879201304060519711715432129944038569359045827491000840613455638962015422134098982599982071716158193591864607001102054976032413734135010483189160271521159924657594724057498280898660403199696145195485711799082005819155629582529827636605482060874594171943265187221649180750476902695527445189195148877355686134314159870532514598668108494383653205930792397993712037567771404335444391152952819691292113482138043179251530535351179558478830980717079725628601771785490152097531293907722942861514616607568888256179278076057711563736130762505576142291875654202915052447811774364576926510761227663740654464890625510609513173608768332437723664215131708905998179799864162027249055456976766987048731111971497918776051164427697218492005462419376429701386403433330208385616509267358398632234506361855856297967292741666513349492439187264030142034743966911121768361753520603592116591436541718112317336276406645818257124843598763930298348023669025221622509505035172231508424285522367992478260591306652115312013459591779430084545109772595397144170931344207639756992660842090791638513977371638078587156621222254356071224313634129571781443636343924860170274454289662111783557541925788361914429284041541205659031566306275240743330848390635126384849486606839456879229582728797652548932299006234158309513890945903810673464090141324520966629853596248681901340215086952525807770756792585283980379007576084483561297688295823556300152655820216260147377173084596004876995220031451696918381628318106063253534356566931386000633926348836107362010713857782635451731185338011708091035003910067256591862365001351235031503422986323154906223842007320213323672565907641444650442825212601946553110283611681597858796783328469790368041884063564687676890352045527162863641638024287063074722414817818371149065564037497873066174581848673264252647882816160209932961274608182665852768118376989369864236243289993155542750373572795777496441443802718065741635381149892063783177770352919375500301455569246296492508348666566044090626866944584458364027386866690542510910522072692254884210518622217906523113501403435868286166967284621886994051735120082959690756786608716698687028224620098494177878245434977382878890702178190667678427287862958074743561493357767875701183744433610221262915033772276275678400346194250850197363521554007057898430087751181988082964095379205373304833689003080853340821950350773594910519533453965614125851183402252890531843118365708616240952452840818549866552288207459074640374071673030486926924977315432996761265882310749106796444286630763039987548239875023712541926544099061719141090660592934471071159403669578140701951948870008409973266165699690282539243616034007517374500302445969617779272140928165727084591467070682145113202972244853958389831100934641560471929997927940838466030674901204239745098777225857852793194665712786189554169641979968374248356822029442626883208571522707728976000583413410642543109959383343626579299316572913679304371377479188114187516567143400618032599329571140862529510976778007211021533891365685466745050850569915712534256039267186191405582986147674179616409030299844373097108669619633660770876398326473999420479215833768939543123506097100567820962901369725326112943987436545256939864373809843265239769028554845825192333900282152077536708462254374406439510186929121469878321154306274751082059334948546629546942787789218596354929036078691452975759165362983724123991530538414389573899221282061863676042749091311116745197147414052163632513197219774504921177506745469419149182266470742561477574098208886349745983388982013999643493350172082189327663886914041039025062105772869288580119136017295939866443531487489947973958498754835821080795893986898624811588405856401487206005543329627660265296332994912146652985680399464296619865066437328432577278217444678517564590937811684831957747103182504665521748939011910383552171425336343534626736189533556910939574974093583183807537328101597518900071938946907978647002728862917492007190085571901476273641501085411786546755383983568677721084874483255113057879636273041761807658969802942890051341729220168523850666469557375814583661258808605283558413186865711803639657486202135167599458826134381021989713740687063477773343745533217383563079776822967113613477327686222062919709852100240789733514027996581162560131133907266116956165531855970789314528655472180775947461363441650965031807620621402283789492845169396829205647113457496012376836767579064511354033456256701989011285000128695066273604829721717379951441264187944733670077525237508142037726715275141759125391739433537199120710017195923388051090630266537708421209162331886129262666633725976754437882628039839747621671874590473240325134090991528346055703561258047062932404406604642592976950581663117678839939192721305870511846960369885934982363024530693391143271633654254141605683819773871652566761192195659438669616161241536170865266173889702687377889598362897368482182121542631355937819409090209574925787353587150367200182358221011579869664922643014667151644521559406140985413286064421084886996215850636767365867838189290019722430472262353805366005551782641985172448620870724234371921923422641492857570993417375660318597715351661542624816122976810372842293745931482973875286141901807873147271203317184589121292339433578722334841890159812892383755036850085587973101545786470760814657139395127271394955920978328316670719952340209071706646713789921852091388774071315333875830018650610487334973191957786486113607077481313067782420323481277264322740885912337168920571744349145190505277466187103358940655881394291136329730950869435795694499855976437751310095510141405705031203967344112549816993786699202712725956895638741727306304910141719749044338229499308785245747386864799014902282529806970217967817677152466780660421630598176789771403901099689098386499727956386586897098917055366116891373365546639297870675165727252220100401488356699065798803484645766828165618735744932963909830274339753521954189328331542977440512605245488358122646459803070202199724265653484432232634403145612811232495671664976398922218713394842549647374659308117352872954501919848314919154577906170873802814722117195044224501682079382877835936818453374712839644962106671056616595845780792030122621162099720453472809678679521684343139888556591024159703880574756772031699501085002969888781118339533692229064760267835170200997025445161215729836790759522312150918900559088548659804670501961899805658247420067627822344549871438912693076855993700105543441211691584665219794205772187891686168861449713367525473875739482617574795204331503443054455245308445528878105146890716353534938489307677920934955894785594802948991291479886437976815361841772932243495256293734301149566728092476691554243210196091496913982916437467951310874846400042441687281111839129479764994299516200528858152753661630788026437408991629255308721796117162828777006971442490947261618977761811951902879756339483949609588036584666271438422661741913520518098764311899124648143504843255048187969267213887459786786543041249686508187321585773705952691498661719180143776106799295509673116476303658284135827893559236483448381666280530459768195723551777923074874920187654272321749751126407975133401201759201032132317963947921694447179262402671663810395699242593140752580799379316157944543857400034346756599452008223703780186168816631076754982086654988954630616380887193042600462900673604814627111332428789240576863100487091936544663228599653267225440569209816283464911831884854469101520455972474550840462569531438245413687214245829711813058987801419978807726259946248291041921454634972575268121981313944456086485749344805273249652524917638518364624728637595981717535432793262937195921550641083699242115307556153588242207518313594874655957416171876996044840477815555920604850149477311653306565490160738522925394759116604620836122562675638598608716348462426767016799017243348771312074580894531313477388932471249831260907523917900937474584826541524409998225426730803646447084555803934826820632796448592107986300072198638249666041633771227640070473427839948651204691882327124743092054060230964574914087392995156872696035985644398161057063426008053362898488892767856277927999490886064667921368024381621530518301378630828846044038866920208045732852238899637091433826417881571889728097391547351901651774661115051273358293713394534365361302953732640166200373451640720434535794369852869097158930142574579135152546687342058473996494910823285659693124923763965657387695964523899156158967666125386047618915888272545543035004440490830981334585424626933704060404383252625133773086031068609633427898495962305294094368986721535822683374870387602200390343390276522774038491024955748195213567223712021159624346901456820072965496958562049787816723653890512292485893283413813879016104598230842201858975115154155121385128706867926515069770501404334284617410774315977775602903089277947903588089378598475763715720061007218123520669493301611220816321288485544481723518958763350013271448449167065321442319741706830936889702377324884874327793510865448471215411076925248119172992972022774793129773162494424452470706202990555857346440355482277642146578552671422787638934725643280876060171332231091074715991363717167718684797187407069504605647487720847373868975717688040782969712834478298696458848744416042220909074763044668806942342359616546659032088471111476649105124703069290336344457938982763633297716811687684758181993811046776859245219093329315068241140452965131872767394156806347855411128106553332650327863769884674246786763142171030885285791682253277031491231295061959661074694449071205982400661202407048056362331201302027481569958543433477393296930146034056199917693847927291303929232107601318637844487797407109710873223865935595777827690712371025816501550570004340783447287803494493562814950911474316300905331086412175832728540114008763873973066067034521706104380454253533520300384199058547939128269568018256294691854738313381731014941419383495398292327921764291375135259504133202357799268065036549464903537730761789243727647012269866666050328880535223325194705411949263501424160653983244439508312545830490248346614913907316728441027301556955662636382073591324292495449752427736548142252989006326783830018413120905449682242826794289108212531960230907241554962935043597455662557973276889882476212874359642931858456040632851175351384807792551739917491246465931006390830861807103614689979323628617333506557342686638819354441472306316415744037751980509192031714232642831157010501131982089548042153863513730564136783321645843484260460009377585236720181933707695954614755988854272478613011783003277008850424006002922194060364201690344505634294262834041781321962128006217985033885652621730484516572991554553815696800405681414542050374707705448598189420471938747373789730360477766857644919922290769306611414032640983304037167689570289997794933307903127048123480046677819582908832264155853654983143844307530387207459467016142530371189872000539245880318438201085787364639810070913258995591080428254752588433636901030031801061106631337442167500322535808745150007337839171968972618662249401332377285463041471163104803272247395297620106088002321996113995493682157872604754244225081039796439567525974131454299203993720235281098411418588506360261690797914475495240547165547907452002177801294846767864507548916636712109856974577830402836111917318396615787495682923772810380235770163427443886990284544238007430840495024621100857043781408929004303476964305853713679760677284711797462092068111815690115927075624847526678053937157970209672641227435996348576306776639116325326026462763221771692763639854459277051264419518055201948134212091779250991592336738005589818464306693597265533315882167538288151636988721703294901685581595163916372901499832533708214268076635416656552936020907808392541774977560444235693275046012136081250436933244986503208157229213914992203469757617431535179989520773318582305478432976348741567030560046743608653358613164505530062146193550128029733198643949792454618110171643235348476874596921619528480201595336657598425015250488914645164356140810583850753791752603740435701977469870765358917587391014766914706924959603082441704134988868408275564326380992353509260093273076004749782807184992759560940569616073487981630517882232671624716666885581660773005828578512851564163931505036451666324109361612561815631389656107645138691592811059044866800235024585918181309279805574574028349882055486516372691925425958445821406489944103077797100753710826669678909668420149114829908797712541327642642351489694829926868873996573224528872235356523886777348138112284307693257424862416048044575447267811671995938796603303947841145752269111442449127696847415147098419505376426366995804146970675749613701172345424717830080359215167007510228922329149406391903993605325224301502254924957971251903581696284890002432845518102696328139786478842772407417700520429153885649312095227836902588464315955514415578489653234839165376383217394782236512531080773391720382054540506327062791028494888469297392879972785698655680657297021714859220137346552415098206075900931956183728493158010948404702914956356042913274861906546708474655581740061761223642537887021294870490945942397516661134583730951047789740764417292973894784517490256191335898763178766434875586043272680491614379021093118280716856900735083943445061300590919986954348458086106742354292616584271310302157056342978045999394136732810830816270211814147092504887798899938494177176166984653540015477867544540391707419499883030568202905609190015861306661903852624878978341298911916856494586584873356345541347575790751220841223001292810422459162343387227275570142305909730302451623465955105724621690957095601034676647740413004932358861937426801823573649462198229999678921227042345248072626885989895108683784341204683696485232015689990630744751236712435746601765825440201996610715260012036908179338668541711050434208250129963495951303108366419953518859625477425194662753913010026709719651427733860202306670760519878514965011695736800656158843638763174440784082581335540877171798934151369804813114621729823880790786056306681751655123443355893224033985448451629173311001591815439312096219747716392932285305585193325005084578284824054183736294745019832439342207740126197054053572857299645658272953219575087876458989749649501189425496300885820586867355581955860509788542721158754598954163627033585967192843782798671129935815564654206091186667467924402710568201195518740293118950008156582132438965191220610243614659789316316652204801372954458626637419538511461586048737906168487285004795339734216762795484846793618664144250900173048854410356503338589733269150852313452771450222087674230190681867233785297826997173886976828049154971742642296437532137974294844662375666485661195722702335647664882246793093256744327282808635885510403415660275050856858349733657950991658631836930121926245526111228942732910467690947347624098275325819879852278142963229478460686828169159695979575154982410456297807054039784581437479023029768381048346881263862620197399985529082514631213906824586915556708367454994362182254910741021416290240136187004911228484790584628180741618563469647468922324442158836383273489275246665611194523134806124280905870857430795215550102771805158382360205468784502462420236402822576758624847098234861679751851815083825806619167770631743616387184055401524899199200013501393400348655715333604281985932620811946333400403488835378160854808731955406453550908248374109815559792716848299552475821004879557806714227184335191999777685931121823481694168028387768514723612154639927610917310755237336917127729907384896313137810029271457751297392197489401520210640843401600177787835348641052760650527661038928130198998929756913687899264746830694805877980091383710705627069848002940334829025920770636040826181490821564866340829602460494364583099173052635975313608746464687503565408227327667568072362191082043899155199167297827839690584996576263384294191916578573430551704585556748010498459616658676562000944872979944864254793747248627240767734142062407595285906695601190223627265870263402558001216085566270909320296834237641299429777450894264744263473688254172670851874688686824708015073138858853781007164131560554682107235057107934561940237790040236919059860087260619725997979441138060048118945347093782513862219769669650171624407674717492851456246430467877912576902105195393185258485913315715349376836623257502728160949155246683902695345094186448785198191121404168245954275552233432214417453974577973452261067022223754077494551628187813587338766879897414205293255863006832358084680530482871793430704635489496615735977492257337794156345899559841128109268201295878579634351177883331718930329502886639194248400566861757533742218656551788241453418836295040355761106155587909496040230293611856050919016069803072221115155220223873062302334249863914875696764644942819483956475508570796664212855566750984479275296510464692223941942283946589354247501931610175531914132725689694311726514399339999199808020392077875070351028719957082196863423005060324742735109167921589521626019275701539669613163402581314543011509423389735324811029178578287867214566526438069703218926002495873002292074062945424867540152599786192848048243855385639583184167446012582210349518420945797808532311291637540284266761313151444706536964495138122269344642090685546002449222829623298911864833285837031165655505968960145497535744646375090671357435286620928157909523083575659657308117742586027821609183549313196239851203862020309199924425902658073556416095089100788933096468266163173332340448006356843773258844946660362704705745106382591864889232433972836675137063749356503598453650432924753540272570327917149142860481829904197790155893261562788049585779204537812851275794209660931715188548134064312146090760889306563632158469860415085320104152708650031769141703343134078418984168467107776042276578461277670691696366334073764824899805403671329647725084614006649934732530013186026939898735149205665213064046721348687161446240782908553778456939943130282411494426872130847700383615042923563866134174180707413413685125585556956300327590299079897742514943674079513716777295178176545634369040057076315526597040799618921373115312629549272166153266648260371318422220007799862566504847952935158760556149421369943549968422736946757596779787425520581267421614052201686613373608158032043602458746269017545856123968574214399872071263404862968398980609921984761135006136493884557548880599557240966004919555950425259587845749537036647639388650299680269826319387163721384284989055660120838331444520819458610634344075190634544141037185388529589430551249384447367103573273461924588311125413230532659618000631094138896805078853378810294290308209102808458600499820193278103811195160542053197762242184735898837262981598909880155505051104625251781748601062450237715892650363165546165646642414852278074103744273411368505995492104134500901742378621693568542558005251490445596168304882688007138988798697444849764607287141831875520680236896400016220988821231331268205029601860677622016982927792407289537930499838529891540748764920885994743036125967007405386487424023144115226316110513202253738443157560038788486365856432240075348245768097828164316895982481523110745094175413736052647894482338140224936927801200422426001393017872033047121934821467404373566538111753387799948851485982398272953235703499470237302643875515870914233353234828937579100723728322570159035016820693159466845100487382412193455743408337578823530879550043035395551424032520734258808167669059599199434141039077417576631039048574757432182236102418101127495876955329767178350443791581937176081207601704316525108630093436809366751750898578216955631545621518258099438204101221737310644063266117776931578512005899807122840629376876778984210140907137257790326080944479909194191947267742844922968223685818329815787745361742522490960172614483864749921499802984645074449478645187394050127293817188550143058215885948909183043839504218024611791239669938779692279882763188290059297098754869843571290442664373969049315175231279224443240514549251536539432471888216698341129618342341748556564354860353440446816874797728028035578740579818357285272152377835168935780809326742310712843346007353135930789895657373891509710908887815912121596121256860708415275114242770673602415961651721958445095296868533289972383370805815894584522074109782371367746645627602813097524912058790595685837314587468809696364058525818770811819456941014845077217977378587981615231710342169893232153963678138997877920188922071315499926186197424615670975144453777741564118527946598231385362274141528327427169481038348386211146589489430980757735504696405546795600748562694221644725568914539073256650642510241109790925020656868916714504771322578983754769843653029712876984943272076303812219440574012901524493394141097266476156760459658158090425262944524884483402254798333859345679509737207052809763208141009815857081087282020767032409699591094702338011892204877382543184439959736911500138502456080436504416589755654384369084069614773460403789461750072307289307472832693408264902023023446769965851175118410482768915761453653645035956374161680340902605329146410315383596245505134344271972652338053343540107319062288604215984577617357242186177354262060489396769592135658152880493902272010626262092696647615762134023039119451578446479283325232930058133958376813273778792143795594334331802675322659331386500590238782876097968802133042625451764725000231288066380436800889929234835872405673529008519286186391426366012946710479358930079499277529167245699931467247799421773474350155261002370713086948152690913278732764516898490788121095537613101488218189019771621816154539557418016366574973803306020158434131546898787974755193820183547751508689302783781283318545778379397608941050096439616691998900521432613861314040533620587542420865892743181226537533692503036814254839926447161396208394309323695896419286885381305374229567775031363909016930537395097805426172260192089655416023597738653541074298708917520940314170723110966171438483053833632699323962409184102183387888605754600122423642101386020056883407285110941106196050617480360016572925176134465904555482865510154938712912184246991159235836251849967801511298061332272135697146646511894948015999839524232613756808417123276160178224570033864876905964364902298051330353281763716538149970761596256238300620479639502769678035253719964678511357685437011475811200607389195790655304090424413679716110807506078640149175833679665955354008669380886921501851048513128164758524169885058203865988855937333533910371788912925442554652845112570957942127418962752460062204828041763419239037134906534731604695860373242979514667416504581000642292531263328906946229103277859733140386118867385055614958196393054755215614106807713309081795539662313957774238637492359424704515260471697349162741961641108440452813959504757949572753137198420253257095000770275137822668429127046108297500451885048221198797769267268523337982882694549573239214378291967119690438896205998471750521066668304560412114231474836523355411382791639734566685112889628172755708516239021125323720774261620628092717635406232680778995834271792855783531967270446750337074284483813277403289472837029163875438332444928953397396266980216092390702762850487052774965891293011422572385034319454906753204151847143526431885703464879473494408604072455832288053371358966808614733668017424397020724835209207147930838883428908447316998473844095238446328230393059468303524449357724369470827487069952392965575685178972560930347168911033599763615653217029961515926084629925995995448681896871301467390603983608817995046206862293112451485910865997308823579531947457525274813961350099071368175367667219379844554075880865981701493137059106311341583065914416895619262472628260590977118559271969237771244705349552548849618994409949498192882404385615321624917066344730083964862443737078963633614062811308722056489623270232736215481226395527760916888629803772348692568624830085807335844432085869808279035953264639557484700676615027969010374169840108555037833669838531479859960425605839683043866800502457781512135589303024758066308521992905118793515748180959475530205442710861412844341045214726326493304379015703672633266512811117866450796632510518081229809519979583704174192811233563412104623303516776305642076259601909387128716822744352245896376566036526369474063178912038761273552581142115547008808634394876552211137165211151074373009739456286925779003675772744750887898662224211263399094467587480072258864748767170904125606007849656094624524598477042279798540978437776269813531427359948353538178064257311390097063442286213414232962362431296690738518048968545428774839626463595687870501168462955969456113014987488641695161166680055743975326062381499960916929652996425582310051181321011586111969714631145737888035402307975472538036613429710242376358605181319217921183370976184008877067644122433167823431737909851179689094555664196186761213373180418148593386888916536811714005809154406371896908616664684285782392910493919797932739992401582720927926380215618612411833392016576896080319828525346941592357588363733210740238552783805907809662379980821460456687063270724447272639511438534086497661640085414924617010546010455120377908631854889376681449014561920651133923560487095024483399371240069332514403984621318385404156711271577049068017329167482287243570511358657901525386353240568510236261896566574192348751434060084338870520040838691427371935459244393018489313799772067661287829150181078896914107377034235633684779594118216787061597487628853961374473841772657419187574576641428949490136131555827128336220871425918440323929411589966412174501437123658259290552617179513590362010733998681313821605023253030562535349613955961591416627281866675125010145964131940265738106267714459234299301251627843575121053875242042073719386913659483589715588022924817580448160204631689518924997220381296731181053220981862711354409700714558459251410979277755341856389721644534934449724773081517194546094890856802279797948477971409101681927445978237788190753660203541639121828447329491863166647725950085319417302894090459041776271343109676298211588010739186044986755128206494695423374662496404943256721550063734086372118414831528699093305857127383273869053968394239354826961987637991601037758800546517259554127398614888550980826722086483140787722723548803856767178898884648143916105587206248310042058431226287766965611516043508044235874506143955562965830715677378491625099074062231742098527448773572007945108045751749464495311781927096470764352154040354283516660128715614640571830285320188579597164994664162665032256283749309264958763428056752917307660075829431975614602122793384249387355529414542056260617495400199143463490488841035572122694156460950467909203359474918382778886557625377585983757789084797148330546190645217246220408042181605571037502996177698279993966157714726183909078641971736086497238558596529808220695707668037422881452947352456192755369137170406285192281757794977785173812173271770618594423564295588415952321349745356159147783456892163011046622236887359787225654733454081440763565083553388418433617591705188124630495974524297208967053503760566129068773554455998562355576554311789819008062586807254358027018574492476991101539326496056601502594317177841297036498716303319721813864094280306626801716699461430505589764817475908907210375337242056292826257274252770162768819928327555226492596444635366345654513591123087738903531588422648986783478702496808487850427312739128810027307824768418158109394974719867814700918488801653980376052006824604274514035047518050258164695582572491412632471962685906536348764321881769794131316462530699692071845104459682922937851898192751353206260259492108230278012517908498316898866145888658260195861698239253928292092681393607312552207163762611572718887496879826417019381901413716919565957337197069638548890656199572906878292980331734091475693727357794266147086756769789865177952434710802241690559585126874186768808785093318492995227788879850117002764158008156457504878451637795926390133309530193163966030381574690385101177639873511104448061090585831152710824735622074286851384162533564056323508013947050299947652172902292505233214135957067958016776572355129247320088858182969231985460938780450716633395288235984729993606543420993259790928708252234861217742867194432067417035920702232005889324696611592585289503192795917618673774924427021270005628030933551242601869231354139776898681433353414842682945525269102104607442398545257623814031201383216821789807604658310656127128531553284456335860629645835708148883985798512997761655472536238188894246687096803027052411902265581034088361605079602753320681498951503427544092847746380735524021134517244035520530568651884293295746444712891720438847102749655290492020589494562409296110705764619499045041422225593568318827014335620216165629379550988031060531111991658403946288192269341926207870769244850285327856305326277246668101846376641213492957981129561076341274180732716171019600143428542448662940718023718879883538238852448950259397965337220723322926383856357419776955206360577262691199355702215115694987870630983560923279894616474268417608606445137746386951486659149409376902097541231562407891458892542752863420163882369877647806214193955238290919030845164436602464203870278343197850089579977959435171186110379566592960562262453169672274798103980294014599505551183645565149654664820231928154417883091677714642500675854905782342020781412517896847729035356623638128938952614934954355810745948397044086761365802871787613368306725723218564059484557263506598576620043965616749786850583561147724485033110363408957082846768668277373732314832265480048362589707031586470613333001422045161001192300596335469150976432571693680164555208398892459614457800168481474193967971923541008948409728675891884430004295133974759693169664409975573675211277619817699933621602405982993265363290406865001195924953824412773235260495718077679189840384207246189337798612720766476826527481691172794463685246201081836784689289495732424902524191448346804860957554645423860269553523861645073959196246536697539782192767921886440625908867140465417875287449529130133384622150460137070661531278184663762633504445604756328683209732577132795178587846144205692707907788807534284331525171688291709951485414406881993928813885413428084710331318393662700344462304666623348645659038017432273115884270400643527916782808792488503732368330983256362731980886383961711517604657196295132053787724101658461870423651846228335333909671929051581333993442858830263187517685153961102471865570865241885369488533300111396814826147290744437771638956546659724712462547728318099740042336867616560406985325349764733701241871102347670899117786049945202429678575079670039387311916345087013774729177198588513797373533501666085044352493356207071601701167482576968483332460501976557515431985034258867998788521063348420863675693654728602873047854769979985929940024698453869492957691808399923320248690045811234946996313743133967543513017412653826395008250848016655985258836629215182984772300461867928635714968780878070383140043073462556106343614485151044602896461897293405345940945552464258426894949944370264485672134789279781656195245760252540602944517248094191615946814457008933569981986744641848392890685047024482125781365443033725680818894593944865779791345596400669194105451970290281357119171103093072859144396565060402670025832518600093484418627038040545268824792798191223112865395004830962357984041790549284698333649105558110149531433225516561945587097805900823250344800019726698905943840197835084869987953612452758270491546926573996064339237561771095827223579966631071071711153854435344777284304627034879712407552727921166894897419708326415838443091354427405101287263736935445094026707170995260275440839624662653907820112029220041545079479426578699418274395175490146995677330619159673361915512122941820893382487615586254909601062952816040932034901950874484174525010611302032568147809574035786265532180398295623891016156962397913804832184349230583154355806302537255054358168171477540989623364082851570624255110745502805050640241463785193430803733125530947512167316379590107102221437025087999975179878623036010318264735594103222495050615307256071769823693800208351532583830229697737518465235102254491726577269995989466575454500567844689460668321266224649067291695728800761629723750271505514693088247902856938100183865454297237359318560929426629446114268710976323033646541865363062892078308615786981611360538478879937384813380393898132940945470317916441683961405566105711813951387148546448077362331076362064753911019555482843792550150888418347542495910095065621794707948183151040288456015458533925340927927347994667449048620033792040524141139772751446848016234777118323885145377030888360441500754819744072701808574900901532729851552071516827360107013987301171789616848318813150926896337564773695228684253966724429945763594580122025641327295001405332213896078379465057670246085277551027850150785024696812696187250327930175410143793209989832592947659113734597138648193611230298022009529260541529461036079367364002128042260276780562336210315263465918351488763436771176042630754834817104130807523338616402061384819104089151057787225847217392970031853039218758628348924441044427399700156688096047858226457989512030722192198643162183202427332720719441134469338089308519402216257087787880791799571032977057639847877600039592182251265180354823519533660899204978143362958389652405688770468503929271161575406357695511438698832741507062347940748911534854192351383257461724039437849369392509023676412946350110037472446613379210371168835663990925095621818322142415915509101821629359621829724398281898404853463698465893852521260654983331695406841432008264679531915040830930130104475333068006412269936810471119613701596638070200197661414587563101420122832719668344526412767784753652628950926206248170362249960918772156362899018954091081614695164632428622649478516489167693684985123275485193733982238837433430914294171204053207281594191057462053919323150008531723460940218231480404935183364735094584843116783554136176560654506322198853623092423043048085308421027273399209995829016569770261805909924377791792979721818834563015655549690862594618303540418391310194482863347113781701876026593923803964006936544574619741425810420555174817582606237181938417748417093872592060809762118141363178287388458835295342940897501696532848094850974940931385441841499252247862924014486005943861235570918477240625163730345772639542925601826731208859563642072092513508729501367503040396446427970477800696768484121027735347297477558713858425811524891785238414327408690002294433752375888813914081029178808101887840390370838406461894797102996507811036310075290923893468213490248390012579002398920019416062026750103231078513598001245146875708090436349170441629319111510600699523774462093645691271842281014257533359876850960106289438601991873204991409717588087442113507562363749048886605687822763225727933568579420658662559774134542090199230543709129947481797132138897161765016547188023414330071833597886862391622563826016027463571132815375601528578409069640894580900855566347405551600898182006279345323413090430253792492600201997963683730639804947116046623120240248869843980636120601548377182498791213159987403733031557852394597795674463605741172422971798397933269435264106096072333294678956966529401250793833747347040722695373579008975989278671043411645620636632789820781460293210630299790015236408580752190869315996178580615628870102071042170548528917944984110559590612282498958101736849169160412765651007518702719718006601203505122974484092365759803176045123819910775545747393820992700519393203735959922874271149149144511344339383755109214755599305089333155736719702371683981871213098180110138572528358456154679200527499987461651056891825229705972470423222848634195586363431037894230535679099925881829569067778810966659017654429729221033845443885329776268056795301614448493003881337036443291660382792734847803681191538863519364422338795901880485251970260690472437263283559988107275606693401635617807390716399677382551054094594576431333150427640060813536916009588724399144594748063459238130987994472962235397632294117328300200591145089149213511912527786531746009078043692623842748049798335965466843942691602086942924896367038746742373737712341227392162034893202590614076944015035350305768667678673613002177568291970317082492015659846888977663547505608331512805324898444505510136038451993229932518688937831273199590132053839292995832686115388342802075377033433460587122627359485126986562386985171356114861689947502084596690989883821899893995319695229319918726459119292668034457543848126589028558831512037295478387737909977251398751854621668731402242944532519440594532561173683688780258946908242532490522429009202807463419464424188929232291664884798350814008279539606422413443590509065289672509941488775986497320495896696256400371596245532280266901420655396317753278870296331253487551908499939131578124611609478377824214094324962395107032980638865368856372466939970101168007867974892374803110336049649755280041430205866914728873298265480264022502197751192925611686992021634102059479429440603125444051192521010936235181998771226003716062353659949010551061604309983667016923789519615631702732410210177427077720872266369374558767543376315310931976704602552819819211306272472624302466978944235442460155600859949521356108608231783164382274915707711545214466521397799213229814835334991561945999135494526115166401057219653917634011623414621074121508415743858265113697880326507606381685593959316740881208364311253998667101856545722482561774795321998002781076154831916903510822291142376100727523336096859648965993912582459810251101654725060860066416790176064751344493138207345016301397442254066375851986755049694924445171316561814880080071904915591114709362147396395370090078107729042323192674712922928910373785541273496882177837876995504329590710924348093252431493268789230326859413864679747678053567826273211232586906276832055700339827237122692754384975410403980447278856730271791687702201772612148606530054727130123081133071473108204131709572556401738092230363227694717319601581018923109775824630191429189314179453155396855133247196676416852917969748405617502868875934623441562038747023447142025009750931814122962240917604515954174692905170136134980662198939533955381169511324299780752953195554646175566902051993675428516567999589161009054936161106149767526396701438187401735708390737344506454940722421824345111551059622168658379365090438841317660256062382366671302597789031765415203796137315089264238463404088501461221669440414671927635966474256928426883356685001066318922864190793551271464136107469028325648184227450833424577717953660425619380188515154513235641131567524312823031919084774080362877603445756301365995150864307269871316776047755074524719825765378119301479033963904950473897612341256502457887211375432484987074447021780793076743617031684288648829988257059179702011085289154218493979370745026041154675608617029958541475144708538741653474043776128753993381008832402950403626665770361562985892296191525706100158718323918739321279342667752041333317161034108840028796657385867631431406210839450193458391990724613685418187143238431811879539154870659542099083435759008353715490283090403947319754218650630614371638853925202771575150130887385961288830087807772694769803742607341670521810804979378889504052466218351195997358929306271519424649748387268457333433615465674308931041620680879355884264733040314351275272337525026329492469229832796627660312997718653934166807479492412144313289773712080632896503769858227703227720387038344196175423716886919152531806635279787446222660509948443537937817588370533453396917868998559715870833884629447661816751137313376046508648403349275783593885436469744217789975676743017300647554755888895659714357742060123650739904237676668134730761931228139886474449393992353733597945833012506391108265081204713252478651284582553772629970472697054074641851407014721693797329955913675775557330704517681999558295310687059477187844923558628857397311251868533771214831134533407117488734683867285536286207605832876815654726237525592807886013571617145649631513183747443050107050597883769937674788740650379002248477454956608924605447212841344427986339827799896558268833753884316125441137796727781671396714235974459231997257545475444454433153424995228668191758346740640517858167111221464837980023396665322606391173468368313830515785501242241041631510147002637380130255198608914589984488334109085127764690310598031997728397399434186236039833080316253056713599782959656819440970754494534524587993140624958241550375826884335654616092259917682735750426765945179048795602566367969289258597105295689656403120934981099224985182460594674418239822173093080643106683945837061193563121449790531927809957157215144457395947760748753526673414861831613638599019209991911805447304953785890262318682700802405293405915944717819159337485005036186456934455449231561019768842923481146563360261711203902192001616498595557362611298018834214148561806578449214569310730524364780997811916354994670131217097936237077383973524611876351315362615582680514759704167102468552707074898047336849407289513506192575897291721859322842533054817164917133692278960449808574369290440928566484105459306360330859391368323955673953106829266724733710559537928485493445521528038224570774109311125416736938947237100846095114721406306713832358652196093069849452989695515789380568796840529092939849278384530384086587196319063103179701148298926135240627628597410199075636866018005648585602071180068341480487859026913934305268092886497358271737588129890252980894448315293653505235330790595484379095497384630340872818112489144022083559506908507329417902548051066398182630635950476215291338578058009941401413969589147340255008800353349438269008074078733479975699013999880829762441781811944734899588309283837658453655302258471877406736886257631689407257740975155361863633485352520417716836132825974625194076029953340889201513917623795864354855230406057063998507238272887911380218963771719762003013434186456833439854661884331947997713512481456489356729229503101328745126871489040281762261118174341536175558094890987562320302488292079512556314862168495327046673838263347779272271665677297498072568914217293303799065644519651492783310900918233599447457294843176064831794923847996901483386071834511302079036385755983192541625116824186723167596643789673822022481307032632098199271377629167271341277806540442066644621455049187542117403787466849918575025552489408427579063434634872850808255378282152964048122984716646790233826526258199825425845345501633642602743561495063195969981423824523506521518075287652911388423732941832714931913691126492555747902329028828395784119157021904907411545650608777306241000761146227041927413921950694999535094966382877837125185666306829578286814418139292358027105587085326497606538272731779624707973406408965918486893434931540722367331417063310933843453966280080100610011547258887114251003924275885175100329352357845480935124508471349238140819317815465228649621821489892154192896090176889362629650795118181717636146903795957536479712145942239376714074930903705861307171578385539748953813721711012711792744255898927907517364480641158651944223429846249599055887348262149109903659943704710100517893007636819570604552149718628672523417298047273991879673377453373547264632755828696683687821973017363101453667526669043915137076378104580162414873731869687163526046001135970223743894497671845529156030429645162610376617840014368017234749435938163454498872778775204084827687747322259284817556893496139974081422091481144926617700266546538999531849882400333336193735641576066295860588864147435511395182474595890620645232623754591888041452870356287775671383033517494649066870883220111483998958849740232156602675660507589295070558163211923182922938580139460838513374873047516831612727656612975790245551368722027257175439907302283018726678476369258795005154359298143481599111022765451842754558892795695853455481847258442569310251499375932949038762037332729512832650494085598180337230659153809440911229070945684876452509606558692009956869525090177465102923641187873207383108377710425062366921557531204927577280657430819785515019371450319169111167624767464119827551692789733563741651893375592242761588120550420670913606822086456267825646535668405007940588009071580370503142468730217518161902500720164880552187237320570743508599015703819253522185542816419279281416287864007569583085005254299427301619893535842920431217490544118121153808584162496133728412662782765211960227120885669205096915860169988412296856494537522475603293028210889595307966652766067494025521056033216478119622677475504843406109952944204562296946925216444749876136674584384957247494383641893325389699856605970047560850577898296272393664641733271274101584631711298524300727329106230973167948965271327798240097392224656861105237953638742063977613429180705945088758376431891861918631741480462995969662235092265341824281807137397994762343608919831431506281309183561928948695421766909882537011666864864162104966919201262547341763626833676176862484086176303940596579326712961098354551133280077692662288234396950417645815267021755697545740541820539353698587651453132171584816719567031827634625155109860999321126398543153840891368349121422653196963385474457884516499982926838603243162495252527918300188733305444328007351901002668204236223801111070340361412621078496350830127100976020558642884592664568873897152875492904897161919316249056397864447347468603664539822631766211271057944589405779261264817935257233347532794783366310208955997870694228177498764077466159040913300533877739568628202100087390814776655419499264559124455417676592188666341944821652833278486548889536850688021620497780156278361581109130357928107975728531261056268279419435363051268763577045932677935994482073847992485257031681034691586938798679302320783621370767379743707682229568082963963144860704912509484421461920733131933254808069120282038589595909899545159669518144513225384937582563749835762513453810692982454153095833369725309623118256307369132256216410558414536573494050379240700515643305532990801090276122567193030976169259654349207816980210614643353552648518552647298830499622419839242912623361960442659529273945713412827086730600097807234397667659404914528531002158204489867366071554007630388067174298843520970841581366409447400769116556244128901544235097689203907210758972621564073349982231671589826570596588983716901841979210998809869835303247846351305811245003711254016351148805177022046357226920136681567304380452638544770217158632729530849010828696409071790593402510741409254108880273424064747108873943286442600174344917121246419785375898623704351790623852963488235751221721693388145497374855789654756897037755653671374421822415127578086303974982028280049491740496476415084538019267120698161436732549884040723521092337376561448966642349904470129366165405844060569410328194004425147822658406209019512767323488862847053804013087876879085740089903296519253604932475133217820805572566053788626240204565948077341240659118270827841950921691908815884796557101668142882813043929326007771464697472555376746600421288716775395357193379109597758068292681609787751173511900785503173322729578847089566062477780027262068126685748038994638883085118808753076150558422583179319878066926478222658940309255984734036259000927728318090125015763653898613627626553699020186330481990928572781345525299536238206321722025769195679566620741397415516913726055505433522082754721204290326981944043563453701555085220541356340986947246053155183895903206315843278576287265158631146428422724066879512975749756064640102353322904980003120396283699521302126191319563273611352229609274002619082987232590178167051801609721691890163021524272689301873508038574723243397441025797510761479619659545843288004343056566196811583989794414507857702325855071719572546401281753080371158203473405390582576087560095073313298207536588985905847721988029523111985875361670856021316186590569100764699259242511964295421022350380620789223530452125893349774176241054983074979541696635063784298078454300296571546596523248416286790054944938141264991763997527392635855423954576911367552318189545260974379284633763669624907846683109123813913862010875459898075024167503073792139297148549016386283454548188028596190857577602288940744328317452604036239338552392375500746728849237563741976814312175700352989491155255974770633698116296036892435751872644821313164101193326273328498256070574996864502332252474359982533319489214916262900148795023668035293330022654132116139547054459928578548381437556454003540563827472978962158966266832210302138958720582639838175615152051131405223949762840259911750171171686867497666308968459394236472051954155739955084794261782063024975128742696890743555326936962993367216202122527310561221656687391642687032515572678618639355084553793268633256531745875580600801998050625874531803083777260763644520823027429955902981737189023930499360091864712005021128795508547560363427616399897083827158701848507033655563119142215257555260255944223880594140542872444796169586074876192218931275399035960492774182045489753322450707877345338063679689242146334077401353770260361212022591463728629139138945720490284288295555096424813042862175031892478276119592597150093844850852804723925682964314871385899705624099501921424527044458107427133436038818544156354806588672045806795969697743340714816001173858735850413615620618225227104253352048724052778609241689737470645260428083887493405413349715172504474309380015261338642686535633518330283790313002148876640945946026376560392400341394372442782700637814097980684954644215747055056160907439951831627485531112588078041312545452440782921971375938501440666668499703088103767654569112162012134467542138312851548474161309725644386137546292091452152389668664421796207642219055127500436766351601292340113858794083748828043044399702729873355539670725836626397248745060740592276109717429138351247904336215375925817643261861628551463604669988379816000896453805488847866589970623569554352982917327278565503877078065715761571712994175703032160783053678888575088095275872773554167361711335058432088998412523862512968168204229140462826923601218636111385572568254181621392597203062557292616618247735663745746660882304337928735164062753314959682789186789803596538218488213425893218356635993473839852559137768551209152141081720942939167313504088732687281578609663140725306197940913111960334161726811538118135209507252217563814783844307524002158050366973849830255613200857192493808142008514521201907115010323515109738697750363485878067819646305615777344562386262938697803655953568794082237993947281729814208909908501767045621179608272069764158933500511774605956713600637144603747932553764152104215738493247981910536976510338910981693207671727903621062827005242879706423544206514911776146297852474623452438774070027294223850216908902505102131122725101892871819178365654808986728474219169880418614471171525688759799924778418390447227103410239195739551682131136378501398951641946928325231571371901784029905451976444525223858462990239658113593749491817096828641078596176897766086902558762935178586347259686635526945364572505583514752176071828854172412180622472789403322439478712711916543307986555066943900991685301569274155465855148449493448157879232358195681791766989638964098708308904185188642904681063946751982550686605925531303923564822921551673901232056897443614122438973487435918365807129850370969225473097868735604632137859419492727978774315874746697593744057158016488250177164140041323067554250271941119601739976761074902354534370224990748661261254018339898541792354977124525685288316271658978441539815364542672218119304670225229953153764963515085271276622121189101542210676492624784856862350547983710648166455681853924847418092009711691012937596097023469233804978223461836514206284790812848487590141161027557032023976483473838646164603398915699996576918702116493164263934134135664255613943681236879462986869649731350659116056891387204027047548589281765049440814487519139369660687826229182886334270258617854765146494518609598057303388409355294610112958670832232770758269815612340820695420939065806687726337664247356874277884333687956888212084219867465470313318038096857665837724350895107263264939265263198707577191116860358641275009133102520974547095750225593858830180821828546587875243311350224473868835428685052665333803804791244349388270919698120748709041273858015304883907069206547697717914105472064617829498081954818060806868027969684550159663983687103466758401826209867822488369494075640628074321495351296088354029483134956154519395409090310469337909393386779709421675316239739079973474574878193353637825087821627292628935615082906295366672070827246554548339673084660315436675422565548555860833912336352480837356114110282132844835250365536140576167583636209615903031799624816294386723346287821044389942760926132239751517823787909828682885744471277242371213486073697673150840905814341189273083660265633201240655910173849802042861869539074378665936317650470714204801399825203449577760820748482361888010950336076170319167830660421658150566098638363841268218696788149110037366254450790923119530417062714073587257457205887334176675353249946725031940056328868325353056988511376526568595135169627092276742651606262025072519915305465925851524538366888723854410605504050659861346496036514470351540842691476096783863144240364039156762246320698535577259624799057786038584044018899266749359088843888421317663184573744008562015337859744261076535637358413367985232836632068907983358013313988195859762001613629997102801996413765559957900894838475948794899479895742489840044076604293779934650842790816224601770027820882310386924081508327200880226485465554797989257540605565940514995509837565605701636738284891083335925557340770723184420920619635649755715231233341324174013001959442747111610085652361227360149683633027898269358156354488311650332141717900255015505969412028372029964472612799112312982419126067994448246714307294528015248078724127387763239456841599041209730333901248784822282034936075907877365037242408702233318049663874176778904272449365847238940600953771683998618209947069026561732071858280487318609984396177834529643021356327979092294511608208663935861031451874431565627832295348180143847573354877762717925743547423291055251032384596122051435378065903205254217161636985230780902867821380369152251064505877129386891509947427671805067811119436553456672564351686861190888201847799893282073470915125799474092422888393247763525670112545224013302177395729616530027976970430895907220653904431936994303306237201594197497641245680750424375787257536499776016525688919743238412654505220426138005654259732550881564058341235852628189838426265588773391249591773456034980597415039443281758218909044626858028112947042196267663157136392637500252751087320859886617126286432669761777172564294864283683996460626046720360045944719407696852293955397796064113726306384628576775892772812235478068239305997422537397681040800508116766389961175454287491164656625893770764461132159944938441608722199691275667276609511760289700958777336856485273984276796309410516852688534932512811113978877374286641638121534358870736756415997460619783708237434927800615432430886412424628131744711068410442755245749896086447119035938985394534300594550282230353338486142728454411406747282634105334502857887075969515101384721511884981887793863033025326901086256340308646860788229015263066147863392135894492993908793871340602641256057255284756544967984634694418487205082857272608373022351577289699108504294319264331170184788003628875611604090785909281935022835728941432171887532079404252103108605251652731616290119778715696287984561458074314938898201894230834072334019239628363316606533259527546663537971363211612950086080617029234741375964161258988916312797436172374166147893383091075872060408479298331518383873839370933335684532483528851684504697791387667174349491925558012026920529608893661912382373057193534303203385139915465362837910684192720459443432568131680251596623061705487573992379929480584441236191786961625239570767971423376208993027750161049987839775027471780949617978239574221488288851378501622416916754849835627921240389037796492378735799693551082673969756293636566324048684484067941032818698727113571543415369607154818372270327067493916026425984105858249498335694628206611318507167100369713348255646173722177279740485654789054102391786423890693743811263038403148010629030242197283908298063834862628667641853437689031643460550094177105896221760276767227239755906485490420570242275451964622792815332438211547285740048173542317706132464018937178712947885553566877601430453843719419827905381052971943302850029776024565295161127332946267528547537270011136817037905190462672994327072842705099128913266652830344129492048998463658277104638278981350507792898204265209223921651924769901386001737507190969459223381858766270296886846299950430654516471323424166104555093088347357114619241814877285010790852356722999200173770739019653241436846349558934748445253457479918545900915403155203572518984190229977706106239035190400689049093566977819400822539622351664168620667137267406995217944672892727399150262464718364275450455509284498240650409007340623523036326609486135656247975000272467047067422424785963424542662713282297750209108743151932247197929158839027847264323031111058497562093173546554041741285799059795382946805645511693569813432643687549585345815651094100983205492351856740836724900935765844885971866933063153016102982886988866816402085187605785388619357852825791037210052374608422597885882337685671459284150744515624556760413184997015555118137656664403238989288603234306838476342463526127772895745794956227913393851874970205656462356919533029899839639415911307764405411175395956719628938386162286469676972994846072740969270466133172765346612493358984917244670561615290594284879468291680897398133640497492626442075297544939261481705504115702738240011256382843207272055387923693822991972428958790317075770338582911366619934593085671929921122941509616119149862377453864236194703992954964465538085470000850625162211214546998651677675160518514107325512990926700226684084366923839336294441093282696532405960441007244762385812557098379881433228865289279747892063877904446304069361016032244746268178789439429325258582310183520919252381999290816517716715467777989437782492086358837521410033170523445829467203201340848768064844491638772262569943987518626945213106871711044135907007540983183019241491376182968878712741664718054381387830909607687710721350921745746059833576607281587454396643724131729190143275096700633909705584194042567397003377953271328672022214423555203973554954033008142855473522210599225612491700275937360089460583604457694523427834108512573389697408426404229303820216622264830722850268333294902539442854864723124773696920818429278515176658681601923161918712846207465407703648146218802979999127860931756995452836924025350106511992388665558116410997453129923678695154688969590012467822049022416484136372502358214627289725982380647009468870897845655777400261458512201672878150465603150999037814895345453865753009870995500780228103193285049554485720573510016564771445790567901260934342645362460024067884329973641958126846115654759492723568405596403728010726591683436905793182889890175358101881462929728657154939854265016936163766183177167863539112441043933450059458938207037570602453114561775524982758467742789712320418810609171622387506399881139909504111682405420365538123173792878503795784279223796193562764016702078458524451178749000596325056387438258280698230111967741464311319881277271577328148202371240541536268233687326155438668116485752256205161628225318122213938933139606969506525781192529083234287328217633745800165340488971537094241171845312004348052757443133719943371321426539249529576139940305671364315565209535173944299846896786367091444154967907009012139996445554771224938333258843234385441210233116695025688058660149553711059372400633417406345280380628292764940318813588487968104991033531473530348142407872853179861018524492549922214752420437980695252652008666475952542478804839945726130797817002934289536826661645183688589180851683808541263341849740837423721032249181618933120455777800042901576581355760317570350092192233396431597709300515584835870117151735762132089992955751394991002820140072233443150777872423036528950561460774871766581008560152579736702641852016530786264114373529867538965561432453645069133922015953425928361464207013189561725849069685093739611698851824916842249101202603513480359885319585271825817400630552727217325767738073688857428679834904379320539673034647717372841856264631499148488625127844787976004099615552329513239202942934021504070821025911487199609995110250045512776440918084942258337649896849622704508235658157981512430138235573507499130690271986023206461678133946537186421189072561310804896664616156075245503870051471494040174937310580975862487708086299664716893949521935913394306850331871499553430590857747138521335804397319371585138133366751572320651545515246641945825935991950820786154735459725189763392865426872581209169460411895182522866624065373212315954565135588272010503339627066849186325251912836017812784766040656229118017386042418441822208667825127964936713267137515053449760813222373929245308412493295463627288953164853928692192323253628526826818205642500586472663556972859606927675186444279003503390056545384607076290435423644418302822254383807213252701194877568373606065779323304358752707769628185212147341661509347804283980822744459454127681453569550663009583006167821502843887001966343362288667355015228423516111634069724657158209669435897246455294872528953055366018084677546369306277683572180627475860145153826976401637739372719214756960839292912974518400122654984072890934984033459694767476894870156705972013812048675320841171271623855740044859051678561246676157271478590012806309094656428700413803700813624743902696570879834447974127752499340780044930198127435971223305820767612542824899431020346851529650016028569069107804268008421295065297350661493935706508375223215862875673584715379409781999773708989900880910063810192521207624375197549306905543284766805443788796315803503152355832840205360107625701571867275513931359488144840904421308614554175431503934135690733171482419233907280383267630126152361567762161585427584183655183749673726122038133413305577515673395971652253618405632966439236274752646338887419825499603062096331253697746298319065040638254037419163783804107445070026463444036782736872552518414539873252943860452471382019325092431205414635199676706129268929312799129250098194254136573360461392707608198442085261239298473311696370733352326658080532496933759039230481601968734262024027962775122430101399146612007692944990534836459234258637321187632993715977060929486189128911864519721836235956589091957016048122161188833067445058793024589744354164882605817609954980818041395664586740180920780275977154665426912008932016692044848865669990628015621513375685321698811086627611665456731170013845641309913500551140370258116875973421557059485495356903931031692265231287389680387677796768918366745090017643171143819134581730285214502208342620651614987752789026264980797603392874840630177661233539234416513997802395472320411446675225133156757525997655784497513061358160618231466350316668653137902998451410348201036106079091143485093695056694425220918840265136734202898040655279747336028946628822522051759079243558161205174743638561139395467654264779518250027858197308647082194532506820410766132831212287163155760367047373754183124744071006502535796588411814452241980828349405481127554144310485193756892932513121475045048664937887248113391170682533956477024916701273161983292284060886358638725561388598803993361529465711521087822540021944767813652548813144592249543807399914958946919149980146444969638092957984847161361147804187898179470882263360154217186546496752726955296787450344046310278632037600582632349977207760204921819338639949907992068437135865976366648827262752131396112187395035243123892829202168727260659382925704899941374812345878696829190380248194821510695484325232886541658708757579119808116377142788040378366305932036044251885029492169454012257411706518015528231976439014100899834969089221714662853705900704237910630692197360176758855071136998090381390745542899626011160006239302414281442106754869896433940507163170214748949623403780853940191734745152006656648765076042481079064470310137697791717203841849797204996925644106662030766246077186115244164144622185334599817975595968189035627655782038865437249669409795541006614012992890782245740104012827371233019483844249699095257040667783172805780404925324574726399453205639808511236979331876519017725569524018068415229691980043710751714703308592284257643218959928293149552857324903891524111278541641512107331820293527794520281948068974868297822902349230688487156959921184601248082297259113095777686166698772056688509675050900283377777063977918634682631644025463205309640490644690022078087130301591960091307797658051914864438922480743323557521323612177772881544013052688074625776738792639824824571477761687288564698052352315254357886615554225650659600827021796403413720393314834083092191489448629703599053563777223100387930868612541845272602488117962372212082500185785836067310312532468229127095704024753195601670302728230892708353576637543597644022635217669277276566790817259387149625426334709243065485249387777788543144859430635874339664328627367916968564655000384604047999215318488782262274387539948480815230298792220704415912494372125777915753490233222017528838392128315527403658195229038357152135762493989614271218742759782405144678423603203553221032893646813522018631018427090060451211212172997507129334147936912472038701163660723786804180318178638598578246275792129398739186915054572511342201955354599915475901414443401087144541865838911866495316070596171300595459681660527513537053130958280144202615556154084375955526652124994079384066505144864540805386398866194265133740062887100724645881392209938117187390678673528953120662509181771440922352109089762791826505061138923500627619963580066090112715233527288214188227494251861181966433590085170756083083974172225534834079066048852537054715463068325708710396328339964233458862552664918211837793010681196432322968521034582861095341240485428015240937064137333265662588652393435080233509437192827225913323546652801279544624884427584340308401678712525045687772490379889748651250383991257410713690933032886455206073538994707555431530183377375655532211868499107347939797735581282556279601970100656478731202875790705044961144440127873238946596344719362747968589963124874813975720719119723534958963805671461677497594417410974742358619688820485337105083147485454723078891466521557504765522521090214905741906255899752505777806099870674812292674462104190660368623544280393240244839763845201515058430818355315826232797683301953612047875194470407407282476102876590194717407389108899077719221078649977409304458000565012010714313384878367694518701189252752169821280084449246787915293920643918711483151188668696006092036856225989681095218787254414924557135706372980406279002772915930274018580222202003353949994424558174872156277296582207957926730408159646580808225483664236938803277268823027948227936609521294200195338983856054140567961686028171210592007076133686291515130795674363400973503443966832978465401354754090940396712390346212496476437696172904710033517592030147703744720556725763078093946970791772015431516138145126063810186542727433139229820282619346825289028721465412364338925548355957286713561176609488835250269554665929456540941540286277524346461436042509923668789485479360475845996917055501062294164714355355894157429523416694596030598302161586659141080491973570355706896644239904387127612223409289232527012341484178640358628158372439497706369815534898675490231924278379299000226655837460598072782127241854419780272524191292949743731847686286119053422162082207870822542583183709405390760784347763554650389219911043840884186563799854605359104006338319882426393041468422694132207067132031082987147143386709539056617370124289079223120030456234741893293665982284915544471626340267537387201521306616108762790429744404370502749461685768012575372296611658187220109970627750880250875961955146144144660630629201755112939163779969211967660247431442064100795328957412876360771473392182581080212516269789187822669407165067858138290810569864816159977291862398676991111433494738357294863574006274909973836166933867220346747962512735763109932150421887530695886897258480669370565819264329644203746545845525849422420387965238778396887321342497655294249519894867448366182269744581791466441561108755578799356772756619105899686950792305412236494502899079873496161726973044055268823893304490687553486784735305758274225074465605386941340833615971009193712781086983185098772654689667045342010526591116869615370828267175496303932162302355616765172917863871237031490393729345445757175997710862687099945441805103952338409634071113621638446177192031140128757619145870445503452308137960042127921778071918404576195853485544633030515878072953956826802166932242819152706077289264803268468929298237360502011288816950944346097998924773264474475724208389594734848463386078589579451847727273636630084045868234493229656387689206194052317086541729595955523801561135450287005862367780624266043650704894463757362175880843456006647299388545291255553194816017215990303412356529475119812288772155993009125071550462952528771988495531982524324450201355381084583084421947969216822130008745593731407713995015240991903689372822064498015502359361390597174801349045642507764116119809185947248422799035549174828907774262535239163077883885444032455599696232993342722809177254857662998930315645919876489159996008242418908974214316740249177614917215721494662170860190336305013423081675547729902667999414975101618037165845496348193367706955206580322620473795629981384948048845078091991129949431725463407995929386176644375983221931509029283263449248225235915771415635240333730575489111006911975612701776991902840204027155400442669888910199875289087728280471823154360286412456394805381344100779747527945979012172911200411532772779559755148893362309669777079963723452372137715340139917407528521729136302339461713373313161568456182515533004388128451746149737916479078272789643029890854885147225838913685214242260708884889752310018157995794852134420376001717549630556910079889723382394008677264789494903405407337974167581974337611966269803321708854717800722296687093390233002413397940898338693521155550930048194819213785770059076238234415500468505733358506100440418635572078141062004669363377833766581746255887804237292172286434123871411651913097136677131158627245403270021298060610132328377644558234353197551843179274949033914276231308957109333004822699736233991224959443101044919256648950762397422309055209952862244329017707289390690217597730284306908047815299325103766457583538478189291461204894649658152444935888490238814767967910430239460639807891791481306238947991298368690942469342341502951240965406777667468028879063881007927663694399021087427416267048476315207924981288184714013028026839526048456288159180312028654326510267591052335019840577702602569585271896587814036006392995137542960169959537002658966425365505251191526841522398896843542569161425790190546114997017840944037254980214766759051718663606355777291411340741073318474384182742081538630256772557506752842028633599013144993221966917717753633357645967519635323382048119543361462867357396874500532178294928681156020498839389682555401821058303815314284721847944789834358445822943067968516596909178763230213639630427422460553506627845598758633535351217876517616586757983994531038894693741015540276726808420212822873400876770622196997235069546238251327276960518512063793646539675805539108510356991666390255737449289484906619487974224293501229598789337273563079116792234787994990034506282751954989284065695391873032063913084964245566176232361211517873470882849013519444109404097407210121539097706666565958260674394201694574547521790043362054225301630806359594998302734690687758182409386938025586342516321948324092641437320595311643365020335482461122667105199251376146456434753748759275090255987379596051354566320374469367001335083939065591389293078965886163376601961673477238274782548881349830222733369938632396621488384418408693687504846548919931598867722959663444755104038056205858988077178953056891010844113152682415436938468576258494473216642941228784235175458436162055881673614535553148275263582298922414988190334481199438403299626549217200855181820253115300647736290073538255597214673865553106681431713207330585720054975788895742785562838927651228548051212828073845777758295591102223608914264485443763989977536508936924521876044233698363310038289233847833805086218839719027257378656662525620987517960032834952746521244066078355969553176231952098227821246013345527443949807469067234208888654137032818117879763776065044423077889072035916688554251897421310705769284848213585366422431093514743523543782375342183818340764062387277736815334175589628275299547543071112635089958010173358004959727537141867877841344797625289075902320369463524846254706815870236949211926695318764325258607529701789917577044458502346708403580452591060899615820808717093882377492465265015326544313645720985634168883092841170181191506074961920991403211253008784514414031363459362067772939869633214119860561592117890862315416264948741932314370987038059963754313120139350285055017398583495861771636841360576376645839068984258150044779385352306465634539960946609710889344973178816640394238882804695712947702584668804430988532715637545657666266590701647217438589189539309297376644896634045332943200868644113810101380194957133740234201909174920720368565460250586376902579620861729053671639657742025606083150574717214363829576782685787134898406946364974835832695269608407089241200065800553229182109534122032449199181806521263242721216452388501010509593893357887547304959018025550878060559295328940830884297589351924395866368049793254429466677782728310817861564928792981512203656392193604131458964970807128777676939828868669709574537422969692762456409249772855527320571924147516991139532622147511504654055872816740439839711673034588910010906403097120713371217520893184139973613848528206681151665180050494108252801499830832094670477006711441546823680482613670965917660646389300916008981116916674098923314929753106901869269886981432974917387202924591778951065910955705146840056838914984400464642002434328006514355313028989118604994583013017866417041693385103382204514322338092107912257119948805287079174579373573614130205329013907885323503481810831063173657712051725672384701104693449509487518154499440054735885302263956037650195896484550291587714879298019688858594953127025599428163555732366247586296210425924613066023529101363018442760408484875904424352551550233327944031496790695922822495584921559717952311865326721731943740254003044630444943693692234531238138479900186380196634712734881399850189302082729751078780906400927160756507797762966284869225019529730285041887768347886206133701308646149965254274691862543807369066770859718641667070488997644743788035389209793564987554212299881457769015598307370067881536516353454843382924052291606704212020316218528540404958509491810003205978382282274673937708264739464045007540434674838492101257696663346057504415422405036546793982183898795226825981791588893745156541560242773531143912083612773296437429364521246915622282543594723142888748816325118895733129313251699207996675363240552143579394335608571024531353409454087010317668573988588559118552752340003439797941732887885651691552070885501918239466577076140594041896789828738446221110383644450422307109537182050224298534955609197585428026712378628808423929742365973562841908418252967308079774685115955256994706870876031186159872719307700111284950381360201494648081693209228450545004850733719413060989737701167238328773079226399761301692158760383780660683341763074100229726442498248443616195262380376907448423517130203805263400386977270056225272632105566266523987782123928682074587762429278202716889353708114774068460285453477476546327531141006060764498075173725773314190417229557746315054108931205589459596673709104109130363394693877382388769904412433351412680399362258226940470484949527534935481990083254763126802711962224442853551577868182065804375996701534941131659836145278946870651380712552050485937710322787757472240169029733334387517833809859497491898465154047323576833656422726928212893008275440161075979829052421337137772061998364287294630479328822174238046662241558469830727087760249113451852920890859495984971439748460065207870868745067380844425334066935370382597361826029816248513982435382322326768197542622785931767880494773682822914508264327583924288274623717690406574419489118910007417799073354052810788395476378994563250169184220120487236625898129902477566725667679552939517519395159587166776413485748618251807060833284550622490290905864587743813171139491690736727871697232118590261817072785440651912201818924035758713146837950831550299544136229894950726068627274599331022804190443345426730646334590285662240368858874213862465329285449920166893660980574498818558826696789395425363507575815771699196653000422269274720968032639988798560084383936108103174817773236958896484808319859827141161265195146450228394676206866824942252379971746202271973309339761152020570292210003406178388456810958915471488399124383193244982691879419814077727625135154130716205978537253100671357403405931047947644658302900964759731079943578254194870185772413955627573141666267245544155741922945400671419408510633272381986937623329335268837998917294672506277470549224259101633303336733958243251672113743786702469624192152524828006534740549461868386658514846024512471180854633192204838870894989179227139066551426382781983356832507201725758632234826291551828772543235252372320787569615701395749584680880878795330534735391300286986567866788328365299181190850571849356846432420017419328720479997465967002883268105259488659516936154108355747117207886205274505273981075414430243464000511493415817112125725725372353204860661332295329117232111448153162856917299623588802826725950683297061444518015787185140683920827036073208653516856919270029633643853034390708307284387785345320501339990377638270488860014206093331218753825850786671663514667227617338026328969602159061903939431862550324668328391648029893825711968901484508511525172004927249695763800725014359521586661213333715778162592652369834215118438378545881353396533826129279021610084442479139752600125279342847285766878899196654256639658655061230212987214897523071955154245204052593364107151823042001573591958751715135857289645667381268430179579554199497938104690660318738525150608589971628004236457774302867706506180561321787319906255533768830553087572238046882825842615552387252548269247587865565865515448168301697178978450178085723421672591224713268072742244516884739717405490404283845953944136443682780943337552579842177847670866475325964685792104464689518674323012512042980872114830729334378783744398410535412605857746445507244360170430688960510958672179856515150712551575665160801111952413930699212324787873973168571982824916731628957175789420496179958820731192583053261009902089527024713903581704165715301711323239123779844823802060464752465222633637211715040811822344973140266671295626193877602385372639305396218454765480135352246412627480904891194908502264562421319096230012833557934214537358489835402470091939982787123605695912086579988080747713330864708376589050243309832216878844295210560723236470657511854434978063600677443544595728614081626000087179185619570495013113330662430551108966280738668165629358472280448727670040924198585965776608235181000746956901675677997330853995204536722719317701095997553248838011090808783082861072910346936787352831613395864056220362190167495761784874423497921805387797185716518399955164224866898666988139394517739061108828464479180417229514580560219573287876108228288466900588838995195112031337790413120421560834969052547847474284559283240949468751161728701654302931766516328164369829918635360182340832418436081620331213343213146476930929581613378632018435046627273904011349812591429051334521677259337869323754874524897713754522707960967746410622393262861247657570122310403124345981177077827622519060563877420409759020029430749500140522743609766571830269173074389517790549579847873450939606751575735847650188085213132486772502673506754428607644307905907924837606028476427571890231693107505722753665989809131184514793252660460773989745266090021407610312086609698202221623516237495844734315314937777756713825400320651406836744722885063540123302087642242104650519686539856765837573746365819544164909099920440691110210030804874332204040333978083293242371417029863712892851528581243151124004167549446370889544857712304250571733260138617649163416938493842618799741454029259174148378837829577336939416435663279307157209053740940068520241337800246620486910026501937673909462751031566007253026027118070576602193246319376075577633798683818037040087442449279629338609046219082457423726115260125699265421918587376635817309132512254344935193366628962197554805950147132932513851998516825677545472950705072076920993323967671778233499893277991486588977241834283102617406485208418814225651157489843260569973661211873617139223459686771860390178629595211682685935626572247683990881944975100788028827755949433406856084626906494246487969916655316528454739900373301360771626492838986745552744845730789716963637370216481197053852083724488382451242078788003001590073764365122732026562374829846934522793302752195254457329146089080003249144509560611065436737972623992257156210194798274002977128065435165085973643446459756245023794643094282805059827774502469484469267337637028599747003730053383131550552963175839210374393326807799456809273761031962501297772994516172479780002320381352821508710708666241255488601817381499708797643442381382525410119181536286141011545034033008506880439595367444514091173865198050475140778174308031277258225776804620891782831779225308214447895777042913309888863879864550483344365191652135841914628899446694300415658210290477092924508197092327553671010148686981370379729536880477564036075884409873911404203256168349625106988971172011684562698670261096723624990077840493431440143827096424100478442802830223196665352434267579874948851357173068965510073328925277984755611885190609127467568067138412378932258619500563016523417860769377944371297124816647366212524277783008469839972240443587683743066760463484342604049250022796024156958052787821149458343189033203018820876069586850093801456837876984990444055718646129863564162594398629306772838336994085397808636954516983448938719996540458459583639142737341689997749461149822321956775043587382811374587868932672574064277197549974169223107908548779281622443995876344581749166773737627652811015046215033664457975161832418798417397447000241586894162194044651855483989591081904670436630075669380714494090145718830778530336499585373358798315362333342596869836023403643264765909119474376858606740435017831624241131933762374453145040129798819897567889021947984458126429762062596554478803453613516309471925450807886608488416518944392362473193923438550500041864004284551302234655628665194213084577282662963725751991388003548107590435333600373571130177467867653529740300872110469697644268646113080161033627903042070091046734318145441771676077045733249789835012161904620458907038917895217185287207051849812508092019482155709371316645271771329720586948083247196063309962420792445230615243278978003945078280887601908899262183513995714650992266413560876378717294533014968581491403594160014164771530981085257951065499291038151428685186135357437716070347188101073758125539828781251845706036035977816185656116905804165082651114265180389759881917005430703016705289281437498936198012593528920292919124709083586765838758181234691687882857488847496174438114666974976879041261122961090513078227558338718646567693802342825713017135006505999051146879258800645852297899706770931092487219644528295499229505672304151488327567830795575361542682702463504730536352620996488579491279602195021281268843660081065890879321362228246187477089808438420973575527329671683911343921685225894744042901177639040511081832860707113967379766778039005576763425540334964922618600345950664170572381122418323804373930097355516933721131343531445030316312576000617798992914005513581435025139528960285001105478878626713875922666039041624831406483037014431663242783709962419530585468147850493156239869987665961962735564463496383887422878215954413537465868475248446923480778431460039674802667797278427681377787215991253356768512565249406714431117466935585647275874921200026551375034264361545384233144517755087206842128929274395548520857238161196390514068894107270463348073183627849695221094511825322729917664055093665551534411500197991204570442145830162757944064154743519288885697113017707501599363723606907558184314016957838337689652824212132028402295411880822199851929893294255694200652717661991919219896166657013935960251258239957212721825089644891355945638662718745066071104677735358263392335765610333172478735045721311000423022147650897227246651768030257860235899136299414477593256027426000673909165158870443673143200276586574516194742081520865478747235023650004061595002576672323634250811988355270623152663544593961983906194408657588052732759194175457513380865256283432348353645514158297064312336691742575480384700759772503014767284809941422179415246733620778467329899679087613529136953077032403642972698689083221178896892457025759157011990748645009159384739209414418446261014238753422343449785050385476736345299317223983749363933430301630377952364296670958266273097517286251192109916041561927026281037574416671909511291412141179937599422016096971340719153884750755489530508682922861208104948333945372440965389676975836598684262012192159181753571629163394557194363457232308005455126695962446444887150689901863433370640369404926017353426385770653194528322639578953342543640508597589558351825250032774376946345268619507916860149359349698472847112329379463719358533272477899907899340358054901860792170004239708380128686831103882176695077138930067602947371562422572634815280488276661472587817181488122241509278601729832195995773514999065128650973239205507356168110201543820725086253409975958222244762217440696678327192272954963950118193775338807797435508174904425133964814252065871380254556076156801635924568631553445634917969316250088863130744567342210654678108288537794987897330235600017311394725946164055919002983140982172892133509348797755725664878942054929784125857614869027687693743588441328363590338773427950475357373598483781483892510636966390476839389770775106455407356515867130257486199187360538786327378413418926435809913234908914310520379747568436925909481662609150871231304551802182576026005661616883124553120929809437280827801830774011489601792822923044674795644877746751338928394445336776464944330125044576385631938085194293153042367748591752950101380033493290364294658059086836970773982998461116449620855042867881134690588876906254413331865914125067536162442114672968357413252774630300919481731236185618243170963868641801882223587992011307549581342048634600287770515853520511558392742211894441453385661008336552884805119437514143659416797200678923563037770334722336195027338254690107881130866052863247060120352418613091862970407750104309145995063038964678804547626787393321368815558230372891795357729065852073062055995572216696813268292101534106353418302304384187733944031725901969471970763800616847246476606139819257472859951424634138462382192184427135124500095749310933170343503342602448491229510126842237111920312634537246765918593038972238802978389084887432733195364116540952440073016213244684929241980528040172105673074140243887591912777737795156744840619253315779964624489030032058754779067026520695965936928689223126208472695858775482242109317861665394120470651405350204027653470434281399155271424723459104340559993353374628868152209129350200523178164547314798100246356884311246675112071320363831562803545229552425870940406358406538691187753662952211267049292261170215629128812282452124735087643024339857593065657098760402109847771433663616649134250011015266579744463763498581657796477108406662737228329015991321148624446411618118687533634709279106231485962863973403645866306668058292892122286637150190555586562493221559845540805076047410399867027294985431037452609193019290622773988642131207404238180094508108403234171601753914177432083041029756366288825509622789716634212772898050576178317809417897679917887877870048786078274794464964288859907637910769428175024100045651932353432125735384271826362775911537490754960825017388553557818080289885309984666002432773892525175303683204665778105174697151509239970728075715512785440256182577219967660788572471331117374598366357427665649689498535896810345620974430490462399994259246364021577955780521073688415946163523077777390628248245370964975102658158882136495701295758608932501512021504947886051729076316569341107300284206698982547562277022471058492150033418871304559403332970005298332109471879491852277867389741006711870693211639773712943237955326786555961370621806113122625603535988156650808580599990399036371502393549599521751856319186375234697133925078342351645629938891435615177059121434084627077646907579702763459014460251319382288721018498186209774592570564524594723692576861641302868399974721948592801720904489182641322365247341222564294152305389447930162045481639096681647468072090070438740192742153372485997637363396433245044728600879532574801361817482679790370271991995934955424419029967782849249110561754181718995053328172509197629160995953197349125210778107597600586209445815138502969643447647045087374311407417443908358848827841612830317641652431062351936086709405309271349178515370250473458438369406822009448496906008578844071230764196408071103976918599886962640778424738868906081639695287655143958737289713886505279364870927756663127668519770254613640759533859580146872724516011243258924060264289109545125945398385001033832532210080208081661886636827622562413394419236114143741487718648647054823164329641917841572902297375549945371887929583727570893978381230586875722532290130040600867070073743972582378540991945122610524202369969954695947008569046481471000110495921423480750101789231041608781733478961724776697135734847286294812831699856955190826551864802408292380264766125850456699335384410632010447542657458353393204263736226795169950321631184850949226778285045848348485656040596825327452587056433759123646037144677137209103579124862105960643111296877795674994286740700861913457316477511149313295249327459700885038747202468358962660791592500948224930541308830128120225430620590021251304123749998623289553000776175347448663579998137268028207259758918726481540134758501775336017620208276315600300271210033308906004419624469240418687770324139517653596069025493663397224262559582630376134130708895277944354772696450474406779770136680400618576309391974104189088284370387877676579032462298054085756013136349457344023275833317854777860896435705996324472986722848847635637515058927127399344644513919661991961561759919984840744797769238756686266069290615709953174022537390681146417604843164515123278158920603094816997236141934478119874817598570226389806132635214088680906113422291190037286554222232514538030484730983839474142637153224418755807403530455673312730081272063452390115378780297305672846577894409738991237373438429635932690285232685981585911877953571857329230387803793386264594195466667374751308965429032102358055085970201567800808013780870223759544073226855746537123324437890842708433474633071057748099428684537623561396087944868720901692260629068587917402548810002456665134693204366604542097944845400853472466479577719989169363758087771992274552443113739869397378287108650138194551409173013134539484643817388742712196673164122013914541321489357996564503918660704259150684244817544786005850206366856276223472536496877261934679346581817274884741747379883327067733148127730354761425167781848272794803029604294427320973803464846739008601837199515591119611645523085159042509657297441505250245161855772369890544985474746478973241010716626850376069594219169812574152502655336116263471141072793546107371238108151387539901943340021110382647617293090804823815287043722751343694305850684834548612160628521157204195704372573701183373697202997194546735675793134344620036384038866680797821053589775987242752062931512165449383625936871806663862316285611449688919947338205455582227168404830178721192387424557537817476576140611992081850474566362762631867679491069829775173350123524619270105696086623858433667365907651351359143372149679245484373968382114231243287813303094879490897220413155350063706238670511095292969373874212933362309800772415355452206183117611855372190437939159171884320364200375382691136532039368759227345792149819587454989766225471999498024015407319068574174540586860526392053555300011606994144545543118575704309079357460767031383775344652136052093418155483250058616662289462319847096444992137279987005095125970877028830630749975850884234393746267733417837332571219456654217540839399279062595851339693169094873644212150324786235347539728510812004337912105576673544551353967358856420716167118998079350734608457353322413910380097341312247234192244503546422883817121193934087560829618647233054102905820688034370837785434143660003319376641251583501056950249479478500551039963486618931309265402871830783812642477387959734355891276757443417192336072165337592878114005120397620274772860517137331318434971445532532641415738197391623491707146764175209551193352885106072430347269178798441533289649019437188897687883123739447765480867213560424754147815282473792906595597996947646492479249656092629451454636515283861991229037756202664553438009225755086324739718665010430434410424369805624197254954135899178796526786668771776839543399801004095293479867745188762373435058116631203420495135799717965455411392901510702773946469564254615802007810594155904701145979285793263039971351444876593731359227808767496040549457353332217318383014050345921088538716578946366379270413271803436540935289397349909965525099045849498157892507340848053800000479806017417838392977450361690646031029773209828520471702326072959399501183725993539515226093415841645715956096446117147726755469114827161553230202367246231533282014621935102416447669140669033994591066680688171258562616749824624116163119221555374514320538478905892785636515444221438004904165131152031681674076325177957547063968293704307451060824370559477316499388135821370343884708901655373974317506503588191794644045025793432843321626835121396741439473186413763567555942991651209198240950899472508164501756089236617271159902336425779865471756231614334650054119034800609496385013457020761244684026389647183166232608770410793526483983904454055544664020085747595845228886284657698675510966824255251004703184531895218938123604913581743864325268553734439710631284310477306821533258399915335274684460599962741215310940014630632210584340555785522112671553537266191619555355063988254159456397902352402643133509564692651208746654928702124334892634050769495903955706616034490948993318720857868150737760373117109097184902491543704803010826683626977758949145770291766164954473687811170008414374398555851935578866642375423828782155727731032698436020420529183945785928555575918864337403753690826915820839126130872469720564778692032680607562322265839610634088701802924059596483371167810079760413336564319585706577910971769115429670401516800297599887765570009468018548034483201656200243444749989362184157373686195824441608686553920026405902541356690837731657393742486311599204249249889666007872934338582839131873920760671623813948496931910207152933460781017230160885827646744263834234530008993960803334285356522753748499048594421345103628795077034436669958784911154718794789590904330119538859143887321491371973846844523652032648038822550884243988118539780353376569488270136878886998744482125897633261264722885998284511940636106894168490723532263397538419424442719737230868473436519148948485761218112591205292666989939432815885613457456612366110488196236975850474097790832137746357614430468104865286465508135782978900150767634491027537171793465811745750393572662707531158038733792679411190034472522698053680592990515168445799034354812763273042142613035240013235449942055583397888648418796094113457192338133339297594854135874468047171829704308556412764621052410486582453341987772447823115889389557643699862508083578305303872194591294177286376624403077761595827588924793834468121381643234492301508241478112229805479709319373473806665201074212712562045334369140512440991876259072844764017928363147411591272511624494312678820691792379409695922779029078391192160994450700949451000847268731312951273738082251132777960471614896808634698711035251554533654812202321799291811898642094639467081791391430023161303327663391610919050348124771418515295537728901662159545725205126706779924586650857302194534504105688492584384920428414095903816346434603676406639648282287025265215306550319686177951718851933574857042917295680527631553843378289294011774895138820068970733291153693644406558418967715949523758322124059701252037332719632290258559680836776245092017585301845284717879352997178193621793557222466209065794222050768572408383670997905582294951884421735804200517894624142731365362836991284736216327452237403321768555623641529334020908757140560286700924275023135500373640046326154060567976777526543068623000912504849325251827165049668079073441542239997768262153400084376987272936212864301428662694992566945494489632148471280429785024790620483078869335722852679593030532298250556915448381986322986735010488191761687490869379364830526960727406397274865356273867367075196741923910998115156332072978976459724852201859662095104880190916422842300424258324796321481498330898332845421865315500373811598551672502273322953658846487856059864272716815269408734400938849343235406241920002284971706703273998956197536822216457852213401203186921696320215852633314935320178520589927436505415090302195851909398508295969311524260965171703007284003004294619385422685815560800217175562806669154734275909992492572571071954482655326342556998969975018485580817872328922712421897825414440719757740559846675887619479239398817862185408708772674316906767461524258068012492522453801080394685170140353970263838937002453283541693714215302931783089476429643996902037384355032139766261309344587654684784176051258110382028772625320492829343557836544384454748917558451923163925647895472135736731502966953023133466932624586916731324100780429129201520919588379622831736607497997252098457932872857791396230009410948764673404319160938393784363599443941577349996059331580672122995411213983353125789163506615575982323286285087624322401828484692905330025542973911753964577011602867472595911477437819362902863377090429485735151383884190268834724543071004702801947614596369001254584247464139078330192789406092065669638942425076315512777152011036050645931629737295646743209543102048126168388040784447559787890022884897072875087962472607295422821813040435435935308263331657180177026632280134107420102278053593951888594867507055324829385582838248712524175649157187637203449598242428427720223374115932786149787797460073973954323813033319590324640544723922975346152975738766645158930725323671617464437249061171749601574615208443277149540561847454827204350176908042639751514908576679997185875128915346772126791663621562503768753608350717799398523365442140660229523543882703006120341249394802181192349945854019665308312511065079278012507978556272370200341561840628806254196275297648672413023216996997467020004723503461745377626175481753821008797582829708316526214620182567835704938752447189100765544400165749191943414332051766198025110969738811776621966548003524610231057737721378452724061082967814938950336157763028692946910068423633499677780321306609827535266938306832822030209766609178283440271877705959181362812345004195962455904009872527446593821057447424647674376681492641356138848585591260555198290280248859295199929904287431703253546663977839142346151317911840207942794432077496262616184698412305842643946573877544832579496076207638112262060809681035481801597820715689322212533527045749843238286144244649939459092559545718552775650781378339635511676100614072583677834771618952646049978978330546719989293449185303801988148950032824509889578687979483267754353886477617505712824131516608285610247592610083666163023486703054879022024333352566105650540248942241873113313413108554207138578538800232639039234767170072130944381594255255561479904230625286100306042961518959654110205928196235036763182696213787798264884685073930652950286156059343341125009601930414668471523302533360716337981647504286054049517910746594687731466274318840608341118721040145657241260526186752200114141190116117063113176285504283819016279063560446265161305086118776035721889018508064801046192087886531679418500176356564685385574903834696532369114727772253907939834706496060756062154256577821923462622192560651602713906984478473991187604646485410594210544238630204094924550853432105029037816014590317146003966155075320613156913605390624752242757085873174179588713807882354989335265306677040885843134660685522654713402710232892560268063248517493692609919386627854111961011581324238426387783365661613459330255398588559222785568057575520906520073285630609619492175716603805708849266679342837456126489384982133413435831781461687443777887938494208534891456873572050872419147897495657371970391826026754301155004119724738248584298680651490176515398858113167091427649701419658067145809412651573340331976591310129188544836383145104137683985375753806587683178249961246673118407849610838223766669792124253096694291877766828865097363655948385749865508432920374857249880883099807682460812885205391916194164612732879325158430369837577055770781215607985134482889958271565504206080498745594180344679220271822313687455025793267334993545944407352202545560186204760335079447718647758880613592191401018369631162470900308386628710467935999400674469922272021750389161194112633465720149490695017640715399079131468434587094126913035425772930974643180412231266755661559686298358376538420801735761555628836665078486740096879573646638053145148361381842208293857915621938310829290260496085287391969866883120928622061337913026289495557970060898611817323184976037807219061556465646376047588403691421597905155934489152287268148633459280424696890530246293106177218501413349633331701347142277586541054693378132775674638073590399919411171613660144185315315282356757468201361072239817277188471785979709439630608076776003116973484118077445761341567100254060436033613747473804161013197654165796461619622293500818618627565049982410248304912218304070091028510376622093990306275654311854566743320220783589337857460901088656495495018851835314696567323359384487802194883614464775454679516243790744253582983996475416846096064491307992585559804262987170556754089570566364280583407305818493202150515622036610142757822066905776277826794465703435043705704070583933551351887970986576225195285220949349792183085977039164312204467322815186375953927190707714057463966329330185683823462662924374368512939327192369440281788953065982909132208754118428579239848536895893149792429254443616557303981965515506920755744116887491079380948847498197408213934239901293493649028191895535185861248553172974078725654471240491427023064366988240570741927748579718573265613656058683031684430863448032945244733306779188323826457339411889840238422839400297137726933136891606627667439683871121585702927465619195450373054398419796197810997684563397404439683274322355379467408118788960225499695995232775108725768198786649628444773887209587040549319441676747443224634227695430603322718289890995802023062712049326231873953274133086588073874552204205553459705539835195190194394416220103437091949607321299620002230081974457972650173603874802560967351053856762532452213940344712929732354052222277703483216340773517686634696938885131067660307106799372344308185840701395445487869413885180686818582054876355197426702703992969506401191674956297569314511534115147624521596094764664388012615646111201392134375387566832581760610634567249798409940624372060818765691010070987937599960272676184706999261532485620106872376237043266404003411772114445030418488316670349219139847237156948316167207617893985813049012005990818495630094706446850643871111813057968571410050770121567601543951955539877955894445378380933677250171950191929251108213777484617367556551535629637225683922676977677750221915247820848393816872111806469429815987099897961185232021760431585861970150100170515758250852952307738895670490636364255998795292774096267693230157926593856040944001879066211436380224244969138839406527524116349926986321791157842597123010237891702765299156313959931179791818900509581059327230928533888925737626829760829567555249207916162007216784605338875563680067390667978185389759621160008511683471139135925292360829016372467128574521489136181778811516199388187199370459255497144347348149490151906902139602080218145321975273705697309858034398650106130500189790625968266934670032543246522680302250673201078797267593534447228336038071355194522703117709936018910245940748319248754353932114581752602923917420176344076412941245535334109280082748610463876667628762127065653383904765865035402070512610435802487799838314891380579176608387255451684739624831385261412301537030376206534587892014270615813022893650631751311389527334502068893445489397437173134300330620241156887378295073917785004385648216042658764830822367899827044483217571256614004220737497899130012395768846172261945730539173891940058734435068050010672397319915484530645200606972985502039085550673947648106366383810352875535545255688427181478601564950161058907135847014683023048009254002066181520703994150907956610423851762850009225664124323130447573572981235654827347177227243166528198289625861880528039991390656334015530112495336046084525206026553802325813278982985375641316511482941462925294307845024936959835121457881217064642438260389759398741757013979817214526223563735937850410865501621623107881412053384346140161741620687505405172551860831753345739563858359489927354985819027429643583885713364150040229387626736042267001182178497192913046495056365359931236106171175781860059583816723809803819282002254458194982939193203031326741344466439303109997726840666544076926510299998472972050944105922498755848216771631105749645965999698616373733081603117499417454839895320589443181264782278912646404284299361861785363565877050265739755020964605592332350513587364568368552558875343410121352249802040397525991468616556124132191039395056120980972467262781742280132889470644191690965857789190699905931709763849589194252041450859853822742227272582799539583563278126283309526250819369285349915027871782842110502709502446009431130306273850882315365000638092224485113701877357075001125833100743311731287018639830201799216329418276590900843016747495426265736722013830008608710077475919750348304460525579355061160499734277696381626028811734204417339717766528363825434395230782490152846463486229672890816317072400494311758471658957180457575923858652065519596478218003487554234365061056312120110854404078112439908622063049067468386800918361919369305445000544002168136597257579847094342077917192587746758535786470540907843341515974020028535229543224695865496966776203130572428507471846254323125753531056862849769394168966460539374143961469160714859932568655684453186520011944074852712974494051055487709309017384648126738064724055517749351140903718700651590427232744109342862788705416359629007028520633555539917407324213577165331902133043232943523592141000463065133700186466415196869371707275149490443781678006756361583114338926900311724433966156540920810617259073512411227885396349766154843866280337104929957655418633892602270734766999602078141293235841369581849923511947056770707688497091099958777159386909157275722412607275180141380280492704490290776963571733464207678954374551558007185683256907335385040134833704600328210583792906655810554524751458787292386695411491170674900933740032557083033630047186281021642485634153388282272985704138619344981641767400654642710712374616036272148613032331738076523520601028713775187678247137345267321122459152893950529797808891219124032322854427114625569702200453662648883742407907589825567435061016409979532083584073292346932836895947132410652079898370731032515135224263868891408166786120880948953791845258015733250553715687554163198251517044830195810707888224654730450644628728346054981328021190271669529551097055723194288792212483912603627532098570703423521753572502118717727994625159746594765522435601590345395326229307586969847101639972092375030379921416646816767920451644488414331033798911608306586392372697971634987268658438964196747607741305050640576563100938393127321792328190660610304048120429632974002113981462960795325309360359731191256417183437768414498836153014667138392169797519435576371024618785327016661828648695026908232650619414357230968374098678367306775207570352042917630290197018046184610343631129483092801697526877894647134456196870473004039544665056946386209088894827691497145194795533083756272872311419276126690964905690013778603279280238954411028711468931172430177514731283514395054668015227730432752736692341907050729846631818646375950745204937513707911356533905102043171703598030266867463996367552238281951525716621152024665651047844227550510347733198552729893176419271552860140902276565557690154457847704408353174895177649554546530077226108988825886184335481240405659561172805574320378630441539933487406020612067630678675528904607953725079352695126682662497834790210075715137896969773348728790675058167928597328884172002533049955788231681434650586782136803628262710575393994996223978480204982143206356831836526603529583619141142994641425951803265773005575239875777918737390566677809555675686362205870789361553383697732371059647347036853276870374542656197451006477711371804367664618940482518885750099460274319912808126375059521866924376139871922275621291785756716998306656096245735753895138476827705083528067764464491707675840877592490692068047340923881727302473690958643054125220878026854618587892082010901346837938691597994621145229427785882016582916876016192181142260013772383780982826190699498769357644700716144922527658828920293937044316815364533018862332724503294227879943625354911469075159756456688972115393092943696630167055004702808299526323749129987933230475703500701192397589783407685621363256857604156139935662841725403021936351034843838215523286272483572444369746351877888558249306149160861457523515064573750131680518014292838907692945833845178301716068687347448972772211595293928963364336172011350448960047366503850765554268062568219654191917850914517047572511610944159376540943233930355779193456050131740850615300155321529980868074941182119082104348505459882736507294779424733262725987717733443917882623940674463474099024040708665230293609057364547643741603375557044278233476301003499501408539248183239573977511062970073111838065022962527475003095310173534275037261115472133409260788542421727683470035274348959711928431185003019282287120357566643704027262017298852718064847016973753482791806797957731244852868694485745793993767189795339893592310878215609334925768826031063827761137809479517965222430250863690562684284048828361071159988380893201818211181068481196390941043070990302247988325472207157786817521735588369785648089440926325194787592040316087886360217718917261772442597636602609289910518021821182197689668701456659860652713519645116864490031448244448837041344043387928593632036639187235932054741067082245375407864198539888216469890758837409015453077788379194766424154353018788837118109787821807754630194372890563150970896229459174671921155940245402260825207967958802185136818919778412853242849805650776659982547022155015532629787518693292169636084224856886199387680934487031749149454895317093607937169785514535285315807062434271099065609750063566760430219008693571382540605829113309748294267503367346545479526238946382342062370690833484097842443749237631879022348797562770946734035534974256152595985225231207829794892660339628213646388102704113229308209707754900559378546934606208514518059212880069232428283703643854609789624468153656946137356040879091281092221977214482508805984613907570408523805993933470854265298710042727128287152072878424326083037984577341564175290051411159901260028540395500874394704999516007456176179361870758275540091600292137387932289449137796223471012167473681012324915651208732437561347613203854490275259774556587441884117547094457621592290762630018436360215108432103339472700517410238956583295757331885099940043247161622800065440443437587778710546076111562189056196640656217417220464986961713546897888284131279855049486505752976666742680225231543271359527380100190440826437019590909060579417062384467534600763918884443191861015788760947738343999123548924317297261550451084781746102207358325400828938123106009515249729888601064676742439260822935353461301699424909765330566122068263952746242002903089613446803591167494525716687508329075176989777834848697388721976173466419717018547557021615246722300951754099335231081555159928079324463440932660509235506198949667234335125415576477996159689644148368490285922443873167535255754976217216418596051562978932917264921531296407373771483150442208513320211285945947890727572707196016677259577528957533240156261602829235478463163441557479383842634184538513167274334460179714120783052193831112371985190996709586413224094651496441751959595308939180507677515966834536016867163326294040266526066909087317696066917584141619088161859978293007154416573850644578242832525206957797599419620303715475317498089876039600460529509090534602492885670307917563928346645104016215136591465310098020109835251677080607706646015885264513867092262361632385857397321319192862489260088725313439059148061316904023990914590262069194553733017512287848360786395394020677335059525415610010152540030063803568578408062989489496991574332022605809414645687552255792863711657603855886189788993445289010728710952919031751546613079145749754060389512053130521094099143632809796517744546026039597905212655721601088164461121412833754834496785113646128577368052258753884563095588175185659708786519389881882583494715650579058208963748065291451770628398762580193689840535885624138531185690893217103657329340927304044226084226143807724175316274542600423329493971557651722526004928836831880254043215976785657079440224247999121508724200858257999241335325325043392796539199922014697945067958183659048373825315448269538377512267598720061543567400691536478563776820409881181017223148941416537614420728276335963644067527351395711769865957397742421918309699721707293387874089323111601744350165103190987882526769726849713179253590503381420585373769307602068965743689960154322148019561755675073279146229928866468070545065868694214075234394482378927250483571485706176964214643365336159940495528163568856082399025707960811143028560797513969960654611728695854538374364874522099901123348496818522082924921379168318841795552784262717513707065138028627201802068310497821506409974720779082917095343772888340191145284425452227643730111125789307510127588739567934481836246625918066056920216798042916444509127274622470637086433944975728616813948712432586914406209384516402557256612045646946909001641337188392576603680114737270754167350297427467786801477834891880351949926544652781396518537486318010468986247547607525210998686789595455935166816742474779788481600744940556647727949691373838213107933300028000127022030118387409172331716057933738464235823839055244904962013626730359765577982339377060814497671124222835362286198678919798868404533327318276472014611044802510964776344649395426458388014004285824316028218564379473424676788146781430089617922728514291943862944529312483564465962183686902218532685683371465854174315776759328394699091814576673638743292935979760379700178966086176831764672057596081524885616889971431115436319868353896064977370039425045223711124322820682432571532156331502864717850150131976096504857153716818962316895496212552726177394271349940208363398790671908582902814406541179066567173497666820885515360917472913870965895201307373482982643381595105084139377527586166884655600417571961601280940862408080395354964059093833494592129875879869037586039428208880652396224289042959421538542189186522370727980123622077595642048338930477773818574015249588615534741260418168356804405810629673741436602176432352157755971787993198341297091189760094080827654846506317589199779257078380354947855687619995115571243254574529032576224434251144849142540559760393885207260087711798532478155656138200636641363663084493130938517173978551234091805190791740165089323526576503542136990669648179780189517349695474103249018528311526206924625651007660140352718546088617708758316905109155138247600799779350696291787763089551581843503030266768008394041829545091433792530931661801719620379359377556692226491967188786672727522015540019419958490632560107331620671083844748561270604957685455288845916911400871514247980758280108955494755281264475495688989791245758965667492044628827617813241802448506379792378243663163263686453504042501160678986464370796151145764178127677618340229425549346315720950517256385508534543577913505203221223884775185470320143205918555752171833975463737825315928008554437071641832943459085673410200484704553150287128077266326513248700187238493305097284587081951723293299623827015053320530249535848041570260107042869693116519189174274921247125863413630398078135079139162661739021600986471597768532742247991526504150709519656069776684935535241745584835870690233862638815588276038953257929659866779741134111167759500022850585896280245347443490222714121002247386954874671696072536394200769051901868937774363067088489610720091824305784625668217775606728568918971668690904981100094324795599585273678662247041033379229448129491748960053447050201003762448201370996340304263223433333006992216283730156359987475010033785030439442219195344486620621903433578371647973503247879659226704379840478901653055884280334151442101944653938529250794260163305222498971239810751906507316589737961870504930172669393826170826371737202856905068805080387313802878083544914560752648678777574456390720895848150490261041752708031694985570916386723545819671916610459002069524547122056602059084514589829109313431520633793842804509966585715235184496270538828781181282402838985656457204904307925924657121471203483527363174931591351645736018828566355995638406729728866836503967898255078834578762409329302519467624833405959899241582513143219048277979155998003695062336418603601875596063008574461465100293331124639921919604055056611905636730747839824980726870419587054437863773352382879712991921178034633338254631159270515437938466091049844152048287024684473955891173661866763518244412967184150518588656772557494821274601873760055128321855219107314893857346586388510856393350095528700518643286326168743546489804608591384978949622935911095232050223802832636131397664274723838254405182929326245836244307344622917661139414316000623087778608462747454889741418914178125277314684931187083643725180767888631741758414100423763125526570548448107413576124471980491166771085262362832805264041784604643359798099910636541618102695308535184941642648543408489818369605594935281010656952446208203335358953437923095390929193074963936078654082320252001625184078769397160107054273731815872528542292143288421243560240952600250649463649345754591088273712727520632252067216344585282484559152905104816531243493151543692739318665290981132324475855939574272730762549935363159490627447376082381763516124792045819351795742901077208172378834958405495354870193611713954792499166223270662687193628841031144752408261432162963231171487600634522460368299561241547353391228432354053205974191938476901764713295505170443225456399553034775665212834160071662934557119712584822703718347797991546615983143189119609972865434039668825283833926751956555385397426298512012701261449222281361329993157143804342934219146048002171153769080220282968421257973979912506563403341357663295668340598109231222534382038061546562984135048453336229705672670061375407551614991072739358989075908572922470737068369217252344426410856908957565623139483118728635005370000481360246078822057672956726995387103231893743618500516514945126821641969383651622317972531745353931456188237156461226054684231187932538923126170945690509189749306223316188895949632873153309436318643185978802327809954004572052082016221911328618400159222702630728431663631532576597534572635648274175606312146209396366958157781507501776795424232847323685431101271502155473885166608678510055881991804931707584476202992602660008502686016873919981070575586083579363441079456633926935663162729614879222152279416492810238589218275261467304632673746220472243159197916832376384041680594747006647185977794850142941965752488857502432533912008619003527412883430128843835728359912043447184566212017306349003346235919112163554290203603497169166197208126301275089145837554061455922470010408594650541443054961720913821255501183743137283219650541742340775601129549162804652516094256703074929461591108773215170787478885842963928453615118070553436672906293640843351026990743166501927717847505788578487418289703030708828666154444552526003705458510725478133876744018066372135634796948134209780625403994838876709784341283570467778591101765489846455429255678048221409689648024365606058674111098302799109803915326317203161359939198557707832847460163001469389243638664356567679049687804029966755124250734738159503156780082132187630051816158454201915234840567167694787140039733872470127628128726886646204587562913090982256870304246078536062097494761037064909198132624082802606021904539003360273358198006938871574472756586075656624262578361291949205336339053234970438212786741816175449135047785547629646716499844213564286101399679625099953446114641527869249707715641276538136591821479928328936916307710372821686946109996780757078474058296037572308735262894697510100962220825357054474826342021346463831783354940617030327151984048387908683907456029846940412353559846156388271918526338325600566332002232593686309699014467214399443637859101304011487273574268444805599051561722305661428348557502664940900855390904723257828655621690942091143713131351238744470559792419129919847575481378713776560843577566065555412866147803506755747292212488642856645234880005421900780242192331817267808923726031975308471664134851353838494164154634144834565497428341567573036903724263768321417485447404574282628440854634059132887893721833998455523413185471878131467378375331090935109514298541605418850215966367429222270280362321328888636794891445060417612238218578567305384573468427608463169019898864657114724659052337237577013118983879497021061399078138587126222935508106627176450271813701302407867674963823334474216931151596860733317612081745177768191525180679943840416518310384923645903033850925619791309456350472677372103716710630064564980722447511036396729875699596598451379486465863182497244249353538314196237165486615139332987408236410000543478769851489341051820448166071439419279401999113831853117597598007602673132271155125787050363296563714581910410779867711317320903765592420536884200677010308706622304222550626617145456408153987409465651889770487878328143247563869913254972265784466836269417834507512252311148452037502783833278113872032308601203960628627507357259629604619778039233016056638420572711762317265256876559109930744416276198661187612922198549205963920403753128293786006424216479143836316060652082772078027676419339362295481215562172415394172232120047051426513157467163928519216132406546535564712987203677291915220072078262009814406770790453864945062254373346450776857619992551621030398812905983778185315542743447642365530357366882249390686654131942818614157845526030561261662296170694561422597795715062129036520041560972985220823052568137978726680260342544095399291519237611212070625278014744574998009669991563565962351276899411267254013092817981420370828800242732290698300023917737573535249690016975737843594539199119956960358653584258150629055480979892875799089642721336449136556458112287891086313386690451736879179320574345585461500263135553504348933354406842663405776761939724767885188883144690694207560081429895348795476023608988417215190481462770984716786459262733028770504021144030176774375572621170448361395334240532893669950559366569119850494996035654252226504596306368116670020002412904327770977833700343545060531521755120853700370235685927442081585165435744418185486695741302207520745120912345498577822823351457456125287953049044034744908982101950003064356327363937553870910544735281640833874916982217470341325059093807310036200847491298706837509259964630910980584520495278797456760554192176258187053422268666754661418882251861446452842007243335716600341175463652039433595124025149153755453742738698758072456585700316848154534901754202568932513242145136951215909608378516031510926914091895875345797693133106395741493799001953477226842463932935255541364262663426954561083554601780578248667673722937300914002570238085932462277884791413344492733468688836620890596943118514135309857571509380541905304473443033705923427452433033935641040039361326173165414339700905366300108644312246981664283339575647595546146599517930135388106559406193673269318153959069540765573411961741269806439389846914886263547415825381857304837191091876303566963537480961527836746053073416572030969230498531839732431372982326879270243554755716251119759730870606491033999245418461459751430097458428339866167788367421242602810740616883121898465991010007645761792449123383788618891179573377426827391953687800578366837028558377581605786965433767257626741879947814986354757429503906789548508770184414517770225096229162347833779610034676606270689298693877170254177168282848608704367595828553091299517388086849336136682534000447498042402933544195136679334359770053794140395126411478276352985679063872260354809909812066533670462658760844558845567847098115010512079704575644379208900633918910120735575486941442421516571335113305456392651315182737610162464842589569534443918553477669301717975339754960792224461517000652955148722034792344564758429020877064915345536595881589340490227391212329276005870111908014438307172025169509791052426663190953549298526355832307782592280826078353069565034670044724518992193316099184211145629352605442689799942000098467856042177309641694792320237840094642080860413766138236256711520648985940064873943706328859558471791647136195484411979409449078107117498622501977228794394619335498583680758760818552966113186020833777977422122985302152882095492537621071478902227561764639389623858110745389596686668368130744017734122341010987754298341540288070627438287893292190011599299576568186595099976291932890166639066321402791361202976362711979863688508247592821967552381430652039486164316902806997032523200886304333873195036479691389666312500975591929185171482425320224925793735402027329048177481163770304147811824200075854927965554212737941588912025038195486588005267649899313825117541986045546785049157422635944346152254570660769986968783771670627734579023449018289347548744635008607613836482227182501123084453993843792172266703517274122633160180366005598344612642510057274404032388783856559434590328815466195190436028572565216056163922920583959365806144735415906837578290561286482104748807619063053608911619167305891936831273455741676748731039635741725860547498413810308929188720403693523154595996947533546810496821178341496054178239741297824491850947292442690976390782400957991303013925319392441583338620186990871821986077980523565124276312217079958785165291053086814453833639144403011021489211208728628617090291108811184193922266384317333032852458066546686446898461224815279729363795444832428267651241586267281391741010631174417122908080005773372146971840712725855807495881616350666402872508096078186389892051670330591713273045899415155255683558938145139649923604709494138946693252574566803157286148411162021929408731616262165251063387084231485831768896355444020237506662896132853351468909683533312924838613841651824258189325829874988484146173025184545137096279519198854452002828404977298099618632886665151703904337020074917168328989045725186269651752514604753043344095334857582443075609656541784020293583022609282625880528808901692286538349912768014754050730863709379971309150979890654935283056897545958760685557853504406292369136000125486030468528186822519777906299904475964105902345936219334071584963988152231022156908223885654881221576950451699223976078208768553229402245759764353578695706063615183993752863654715876916412065565150851393128114528563938708996533087214964026968483774660450555811910482650887711526814227977616184203461912429998984309725831399669334349400058393613369107871968990402972432252629865219792246578723743112811145267123861178518246228765068734909738618202392805076791243564852847545082919092802766204326961910511530671240528159077235938180242727771439822730151356169943150950164582406513049300395156308990563608720574769410504472574337449320500013140540684885769545587292205636889535525806922912597218244841213431077170764738075106314138369131804357543214643278289465949544557254428873518091517141119674109973477238285962874314275336040962637643105166460854067177222809622508020641550971478470356230359292558031301339748725748459841352044009383136080436166238171664744511334001270005864067806974596891782985590192157479516524878954805837801923120632924597486857804010301819209397226591699814638848714280581674507529981366264027918657294721580460314020181179357073668348405473568792214521272464781456430935166408370223413861597258163088760459655203833021771676258327080537820143528036829406202180188857120051545311870925295842175833375860934986037184562493603303725516927544767639468516438261453950463057732628936641320962195539997906592524360069016251126940351196408494933011655575303082395203750818169521382674089645120041296268839728493521425657574057700476519260413389248101606846435869561256849165366132447615739884976852535200200167106041046166804870110838786779232026541691184432825254378747593999939839367415995269179018351178993842658624412420667197999224692869708276989077191427079246464163466522466855218224624882126945453937123735423653473801972543124475722988575402170340784116710484791143970806161604723336591613035386961507425495448843376119989508901928729425107231344752998451667603476858869772103245334390782976206944753000017589964248981534291799996346443861696682670229513371759788277947829409261559260416536239890307734644477411292835652021974035753308608200645680376624962775013426743237586901874468983786691156477018919676636051025804839274137631254601754322683734651581989237086483557804507619607412627578333804444906818904259757652820639197339531270225775152498179161346357688092036639474861445737691105526873614642430693044486219537814174349490931060164994111856016759326725537672660769730474803560414998855421876484621168784711110210004373364556036929707919950506495497676183427362429226381772824422339100407320592755319026545059637289582170653826825631051178461545395897607437917188292330574298882573673485572366335913670853899526257704321491828984311800083875774227732472526098059494543508418961359336345772640308727266498716639127036990378248923035824636068202679288293605692297085590682748099413034402267713643417962823356764726207732571959287752324376354508511118709330590462891908317762011250801699811348191001492475142153526849983181231783862685496409386559480934988466697354360559909654198111823690528798609467568910802148498429463972484953790855468075513617696630007931785573396959508324986730584124684709822386021839882531363324531669460719702161542762688740270938357991805390196361011459438816123570545526428372348187475379627779283432605191619740088738398614723793997331458536421986568114665836154448998222050485796383042001716518605136517809107522532153424342252293615299178990684415383863853195824022356084983401593439947532355609332624810237669019201492878280658474803535142894838827538171663714664483515568132770878650249488743799641064777816532860070233843176471426020019536185913694065176434698973443913123182739799734630614040281155006829036417420436455864559775941336673182288591142788079003812985608434941257605170152797147877124859005628934314397983827466838191384654360345074182668264883606328907513935389952800429777710234097597253162907220109475058558695148208222530486270655429046755804768272856978630672742786271945697442722789623759360438978525676000948308365664001020287756017344878692356555663100213242138716596748198169284685144153710170742960082940929669260197453280537342662313742922261982741407957576096901855657906883452660883484343924029478555215332375870972776146045508462134289337407759280682083260903538984052070950349665507037354104475119399712487796641760717375221945602939476177569077902487281833285996933399728333558789164166780900937271168775397296058196650356470765433851119970273037873845180245663408099690498537044162218955909138353762825410657534427280752579402848979664485203178815127703429241023097793606078322804671486020874096054815125237975394960264345401598026983019610234513826373200195038936376782694975423934778302628868646494811095739634190750768527787764968368773668718458819231631046276739107514649913295767466285208543318219147670501879458733713317769969799075010269307387603864032409411134636663534500448108217938319906739649366986177975077119184235593629570763764041166000577302923141755279630141768943290654768881046844544747440157938954752570847478401716334991429110764618275449567998585754520053833591256012155042409933411580922861578732827295590513952460128129631591051609691381707123245536695998579633080099501891285219817304389443043820251440586972870554698326675100974865927632123628277651022019781437417851835781227809487761777285047217874215656619520148825873301161240798649319176299513571109574371359341663075269298341026147191588103632069403842132950918449609877587842652574955385461103567715187834960606370793213621949038724683347901994587501423913679646041905146107294561894963340836568540166574324976078351895034217088822962628229148310077525915714559271040096227939992280808393560252850519133784012027907478398167308808403614033397494413404415488908834214264331898110546616674926675339081878032458178370346823525010761812707420109542201622393165824627800824455405624771777362232253038067124076416942788430699709118785192549964132242759812540838061525455213925337701910753542896348888242641382666234901856479005403464191520017717125406930958737364986497256778769747924615075610996536093160871210665914564975487688708493703052885163265794839944829707473221299711575365179839968872032706354354511210922916067849128630787359342927057855620539275096003271034198417460726150807605340713764068681196888819779983066590041238561262136791561666032472369488495046352398244413340438522515333562570408655927169742476738153104716018637107640589599551868020369157678139953504761905183778239312971906777510115458846477093743192671225298659584389282629227027890876040243372290949324967885463367034467127577387971259954058421486676748917555981192795907075415009378817137406311107055122175533350625575867230000433265686026957761118842245554848158473773574889227283879421711519750900659993266821316998364933621444918099669587942995329407124234862409500454362463720021691516164846364847122920860308277107982300331120947640246293431420429406838646243298972781772716583052513304525675632023956312956616779753765935543364267123881532998081223624960629558757438112918833101040645672379733862104124978026974024235349037654742195663676291753841244430038059970255563409938213974208004254403163878897040390168090587259907290823188676976014827824412251742791306094702159455046345398079860514820249883526724480074195841718084891624883559039678361462352618494085756057531413487679672493666545863441232839845100227876738443677010468413568446207693460660460797225229361909653595595254706387371101338922203695396785525024762120444601310202842486742856544917582881412437690177297850056538023675395232101067300953357942216175463318415836779346924177599323781001130036408469541447475091665960628537237129876847545101885207029116063974680580322820400999627910126639912530270976890440554956392085068628339126374493517115543373710929609291700297260389864336008194062647212320502258684177683939686453888928305337969874122140112555296450765693866363380159271376237399742576488974214165659485031707306690120496388817418012343556099539274689053943740899297671068676107894829442412451091798380984304187965494040462878458679512946337674572447893986300306859203570574292352215106180097220615341657002998653118039470663760069456558137478388297248361552646568893639182558286578202164968441494086511227034302105221341251915772251798130662556716155832768877149445069676168945776761434546388040778961176380107080157819852419721587181373575111350645541133937408261475333107506677686708905098147024283771877742082523756804542521512899665232981431959367100053367827641632329643444411704268452162654626317756754460737899317101169436958995842829800637320128327445616031780726340919332588305901292464805969379273507138260111541049046384469648408241860477696256610412505271534696488375126846302105701494454195769885382707818117035992544255129063188122885221972982102555957169182133368346381570280732687305002221619392157694800205437373027480858368939501686718205529840534405327514966824177649608801039342244424133863065275377452366176209944620521153307554578361743584331760378386934612042656693947357563346986839130899705125485061896698207862517270791972178720364030024317800094633178205693403768040607080036214875129418135963856130128447466066036723213851639475446612799669732941422214792781738082309663217112156399477967424470353176892467704976451258628410167370839644731844146009338550755542675285072824628434706745637009675229586931566638646987099017847227173682497114355306307694406445721834462582267890016197260770379344119589554056058289213467115590955367818230856192769259385163436719335045458615274255420261691424097419907700735862820560910998507637857167067295851166354197687703781070149146728637658085616569047523278563905433134106753113959935757342478238084775236008662123272485271903882839758174285952627076013130971730793374079246270798916335570376927780848956914454102027607191106168029079771606126178137188422634804710159965124677520773876006043900705924820103446804217723596380019936124573014543190314478244993689956627500228842110606957919810323782241556611755768090651812546224766553036928175871355725536075799521899203344378975040156340144442151354048079474787156557465916367931325522822464305069427299091320376381411531555746297418404350451951681580593522726499541633503715593136539197510949635597071635089057198794335653043954140435676083493504335067252317805902279557548458389981607342410014002004721289055217525120581706821439116733326763818406979491451476422306284308087612143244773135527224772160918006780882261113005864934424251714018913316683278129615913863105107650123698350633273163136842493934823581192986405957246940094361553411476172310688527949398807098068554992027450624749196012300041329854255466836430965604542212322712886760629167814514571683821672802680113739429727428488712242033857591473598136759954128422477438524567849848629124295621156218386521485297037472593728276182707590732677376455537390386261559895019055667084959125669727092904321073736110702041011024511077720219552535712080515479509549155927563640881435484852873086817314225808212514319389063289759658790347176252678618692965124363666140715273260862638327331762261253087462130378043683289395064195156114276778902936590315442224158216009907036107990101374326665596877183540057485788488848549018878043165831461541110441426527890658895518306774432794127949635884005166060671666602181792722168539517594183964183024585484484283679522291498812569224522544563205253069283358740109687559180904938181711521614635645927148145767071016525419797979752481854157173632611047983351343891401623261488501093386816842657167744305625460399266718317522746866020314449539712200827165230108171261081044088264063621797901717705049047628758753909205222832922653026038587958208088611706401488291672409353548858884553329977393976327639811307585545046633533602838180375553120349714001263887078991688664474354422011854422852577409559903706894771672891725984941607294915681391243323629196989946843277056026205195376571181756238515787891719971052892094465621236963638272784148798302995664663232091544608421622105928059522876599144889362138652730794857130005872420449997130247261671525373987572955137066549018901378628604197848650335744170067587809969802970850445849699045250702566134306414841055503430353629448186450052732741260404261930601018047182781326950318662628672177055533880972757552712216110218906565061723760234068253751755607019121227183598464650524169300834599068153699957857988305769505373685230812358964351220862053658736137160707885539727026295923699857597188161421749333419158439861639848651134296945117487358279425351765915913718865223112837340727335344512693348458107507626881917204993210076731668045929587606051824728258992524143452935350612520925832278649618937446011406395786116472859384519510202722953580412679688420037043108636900451111251194476589318355889006034523887436353098005380899125608488672462104458981778094793885053133771312271544522562969606928458511658284968425945419497961962056521843868380801957494359643946590460721158035210886603838427284853497747109047331546976505516603044108891828936532882489253429796814533081275632433473485945175049482659428617053229247357203671307057581377719782087300031828946358617758488032002960974491585891821346524002027789778461368843928659253303450158833053046992041756999367160717851543099214830548511964116279107864600304631315386690612644973559898945873446163938691686503908379308686995207914751967900445001513492993107458896721929497078743042146625174253039997988465612361151837547885616419757654780504765479292178464936488273820911792238072869343304780245834456338459999153376062863146860960247283357735071558087980025364967335785266674952253639636909145453870475365443014316358881335232337693109730831115590522139418513183156756708517279468560209579048369976757053217067865661534700913687908952691214273489105223224746664295352634055020479147890673761313654099159334253905373779774580868441399050190066190620917519620590761348399012221075319496361094260102226599570296117245411360563166795898873527498151540293848585045158192168036550172789257766205165592440883850578002371765550482847144186456177248173338824110691171726342593521152703845987528700095802382785730172028115009045410691987554668627435355961370912865416982496832854870427857834410125382639334472772033351004424264510699690085246938239896300558092486578870290990085165494701195261512225907270934276562982046713838721936495313168546888322196418572084622022898394334605521753457257814365834202001262663868531501812830239108018996531954845794317066695049314366382571515869105513371338346258891817166350320340531077274573271999144739965473840947729280257979891472091338408416801432116178912258452379242517684077745788235678284253963722397194992463609961163433952048019254283269095706176198370657234709311213071303504919585945477346054125898966172910182828734773778552098377922956518238788924163470772988472865471837613628037900276164841880749814362318317057972192788843287504177834796377631350855238446454099102718974440095786743385020739879855618865199755548916618360024766453553570363153233266873862400668096921451520985901192282370617346839681013854077728208920707593118278854717922156340477248747272230984828488263335467778424395271347246730953882237287721785240473676386151744700968281043046752199519138621730890253339235290450087479775083087675286585268393425664023270272583045856138331378867797795121882324191689310147830100050553702270397318451811002758488097448342530706792704518659598156567051968572315335709859513362855658761319213668862047595182016607040809873545556602911453233676644476436743427673911662294005735753453842165906395103948519183687775356398029974829347453645972494901094070714386609432947374274696730699834264223857123255352954487662172091579089132724843757533169098710837286281101463320987543483562957174166108689654270795017521132561799872718347237372213198811749115787748983386317299722599233650262165132057506685989880044457595038893667099047795459463180366248636034127666383158252677965709942934562128889853098668390497019431071620387907320285639441907953173565579471724942110624725109737973246432877679428777998216835185624835052805413503266964165559103881790349249762556648187062365322324896897438869818085363548159431715540083418820620319722855992215137073217703223993228807010717888072215363057588749465094436036482989610279384561010531635164680798659324364548039540514039920360540141773280915303176203340692099668440355921641101175719970093942633386202902722670524636002536901313176439693970221907227827617881543707776098146063233240468388722461482535028012086081358813107824410468806547434023054669252108028275296945368399304552912610155528398980041452450428539558430023618013728494165157395934688587133465007901843480363632916182450470609976676934050867236135868019260342124540552322197575606381243791239375167196798694393963906112092405253979830088208107927183247961960768597335274707983997238804985574363600830219994552718560791670353043604354896311090876116104995377511030685204340079335445351535089031174988213292423985761553819777809746177843368013352340118132408462161944072891392722820394711521016806089981685935336960559959115521847747828768575334203471781902911848111506066680179085817145119772987411337949907075534923022632764526583569946063786037036232082773038307464845459225133647315034052725497878598454652483180493807628425265525079893045777203822434130872550411166978953945984894121338962881446925317739370435305221802104662286706094785528768223988397848943260423959520761599561447991507226186270787974133441955365006042529943785703053393163650695419084382174178569219762655798544505379074865011607300098126637454499991104266037318215787864383873580918962560613306718125517963703997071103312152207192803532400871947867655706984663513018080941147281278141951688122302595553123061463466109710378056140139461372669283298530673063637715211026469112790637288563853599944013520831941800639136539070881801787639094695913023663254249679020431503984856424434469933902866700125066998468068499493731610217890990824205122685741614007921697958361765033980793748553550384875393025415042786324287130940836112957920202952387835641753919812787812287831038195858511686614856300711246945682117985541925527557657084855169334688119678286425562109752301625471843441697278222234885156481708307662055626619486440306071870640594810593258932512793207572213341236979894495196559956668256408694471433258074087371935435365213173435031809809521225339854802260059389383737534547475229296748697232029621571300288568350739281625345760098319321640619978557470872253076467063244858332911456516383970635734459380258688752838599844341010455687765257038663147164576303309715798643418069275454651612277558287727248161710598492534090766390103743675561143350941481970043556862337952961744999440433095645854645820647140453702915997153267955088600239305921818701574251019190016476897740534334977093881999528174850244149798071796958459361670815283974130230674598327003875303475195705538099239242026463270499101109249017912681119750344847688583986983523323644294705623117884627802449684369999444634748530143958620430776651290065611156335302296756459953760827633309623305651063702811257719355681070127063348858889184753033628467534443389676984048280756068476160882624719475009075134548943991814842687368565877047495166775974942399455014109234706534863959045998018099368526773719530268047542130469200731409275435978553751152435107159594153717972804063110332229303412699730261670901850251913152159568352511449088710858306757723510010020938477818724214497589608358345355107963125688094220786283175535759773408771468539228130492947456882728751381214332061090416044844153125461794683886397261704611645563384366597095002801077835151898492699843723741007572643958943110198975693909116137929749335363789416421280803049302146460647426709986529047052747098980228080545684151370877167201901552115984198916560985535366743775428722437615339968167623869555876850666953739927314447757398227822106969560011761742757964895361215370229286504949016454789960726303181503903123590018101763134140862936999474628711665984589270233612355979590917932544086339814578683143349341851456545328380605353413227906786636007167304203924971798104431237600592307864904737256161496005127311928195318373833190544194004415450101504356432148572640686947838375169098590369761690282846504328627840485787547370748749940128152563683659171100147250388906412940390270135402091230043847430525788011806986299133804212159620803559582520637542444304003325193792419133920760373085672722083690108271516028369393382566080432732888105152688181708662355929630387101849841535771879789301240011563850426968954460039665179082059721741501499725770170065344704370734301179605408684977892109789932215222864547933873964763638994017693395525872638288102745252831388451705307649980126423656652978413864047062579427436976234009193036059890345398850384797842379326362590623373454376398839564898833711802394177050290366797021674190180493013789652946025710059391718533172401168861771819031965300827425887975591265516868052414656159606598204713822345329112909297125919276812049243711819503708996105064832923233269998055102455610193124989005343112867186249799465264072143134789499981522944490070027128197518961170958611797814738574954605684863017376161413802428056385781429975177594156535118711208198862604362323856378409531044289469593954768111467572712689024673152286215202260580923931182592141363416864731610711350827580702296700998216829283214379088871228213342962513107129957269428968343658067775187817597926933020613270236039033310599227688494374382231111338062104852932709713288638750254417025533147455470844785664927119301754971278157914329719505333555141581762955222817448412111921504336994075039707916315730730896806145032939045233768486805343697834231420115014890924426391567007918868984289714174179718300668141390307720252675883284353584194793726283615229758699295759331581649395622621353677173128000430160775022926136125328830234651293668207434222385903695398122575429556575000746185691598848593389202604333966754932168898052940362633893713470426486024586657043899026193789610311090786840787303511191237240967529091903560434390623593083507107520505639720935832737975522326355396015291446276632695433345292388865033321340728789603864196880476177967739363648520034136966951521670935188162506974754882539555449202864168931584267543385189552825662498731984861056927360376414183554205053602441948809029410321061970785443796781142373281471079808151205894397686955534419992139230175971961329047814157567861007484692707153180483808976176013468679237604037539072004298868762268388842162147013845830909391415347442962021380322088154644999702695147294621524112684646423145184861888247345181579183282404615333454695449294815045210344845294854555489324320644262429822009868268852471430425940190320061362817705553229914300646024616008904090034922730472316026600958419092602334935841950017224774516261565417935667748020982659119557244684518980435619659290670283640106663724760032813656798405193959448094373204842905704986706408494960490652752897838468011537910030043357799345151570105038415904744190417857669753074900540314002290724115755897053815601776506519724555735789820174391354639246618792362890755833152691311018116221388149202841301125609288829459673216608770779347917213580947664017295362737075887094100146278634860904988617762288509132251967126788706711229290449497502231126756893324592495500667421974947112060159688462137896783395605255852729102127720595872457543695642372694890271746828263325669540770690540759994590400588034184872565892595078525056401674591590018916513696757361750610017555198155685520204315944164218039072770607716290081285127234811869479309286003110782202941824350726959020670595275966031083093809473164435672591702064524730593115546675528248039857796115347954164871919791310742940720746158928369830924792970825774146946550518800170899932072285053144552963743201578003840274928164262095599215624311421434271170013398928042480373141618666515631804596314367779207865792255593865105127511698890335864808518878104058628560940411641948777852162345480240042654133480160877222837163458531961621209985040355461998439563286955451364268656174018198007809376489750601285952732007240292430697590553798730987886841473140551936905274114479688643590554686564434733427455656112827234419046731980716864980659346653152109337537177304870841423739490474578610682579811110779225188813778239849996660787321794251243933950086090228987227875317264532695232891110412650804223674528026924707193611156949071222145537876703978690644318142219853021134149014603752456807439925872859471349119134024251067071799599057155942686092504403668467837578413865806051311342731501007929862928237608227502036736596531765407007053940570015901677139510749555143829504053229031361655439475410985899578694243099475556685772120893554260724826702036347426054376598756212701111800481922358872516054435704377400475941639938372784091700253260435331147750814389879138055414537805468581579435357785741277721550722620731394164333375897350074493996590993466304841869573552132149636934533649489660800346777341499283007260822506364438653818890484886119826751044779100216254096739439271377241646879123487300151120053086391921916574139623982820388692856506820405260190303803215343583645095969803868268020187123562339086291171287752415044879697874221162172420742648037992671800831161876312021024744717029586487605928770089415552929369891649728842471178848528576277323893302919366538431863023160511651065748899474960022374957652470471631253868029943126371505839205126072235870384764106436708973018792140551230520544692316143501252061744264329088081180431019729772183162433310391557368754191560435628769056134437118603658904145635756852737194902580501141428765945076221101221762649345163952850366152906819975954088649068515538227231796450667671060659684014821326461577048069168196945932143138987900328194096076847347618972086890226932068080729123714840379566292494653275638092882833559916092214847171375989065382950494350909072123124636362038064371371170027545093265063231882771705274354664930693746774315635707314269411753113277545042382155499887630238057459026185519153994099514989542765743032892623660088655099512550753865870824635681703355797321317236529731736064944003730712047406918798791582792053328087901359449103613687651056354957670793500036048522181933641706995052099479916659769526708628376657984433520448582980158985993328639601739130896854283926282752352423380469417339614113474936530844519477734414295657891006723063934577426379028362612462749377257163293170790852298682546166917697687643772095360069111518382320105933350381561830354322485539443226745307686591189849571427478211591380635150057127900215486076638541380503508324232754437699285450270242589989183658333201020446882266551057082580876720522704119684107081735065611721667099994704183619342124585240708047842781846062752215441316043508098465622409929970175647482280176650313680358281922674730752107497122897135509139862515199651056202991760314661821209556965575531535044865144439860998836167539064149174480499479542922738723453358081899583131701542541127766628945621894192890174247414856851468073142455399454565240471631643012521799575722652241896785568377255572906134829446004798030673123097946936919215692789694058999639137252568638452418413987900787596367594379348265286686378694275714298635028900608343942821562627626552980489540925377193588919371923375446597942635564495178605479076157201174769764375281277281277291084385419290859615832575861183724006744743853213649621961340599262676107040490661786101207994424673543513142616401088243585206077448851171194928234677507117364047521375789381302755381132638639609692114374770302562204038988126099331120168903239620738159225079933679396264887632266053467711451849856782813549347961074968668750349491416987960667851515415994970324684297010391723040320330888171008719516181734658146776728004291895706330392094500438124073025800335753748544777525274726853442706980926503332309489129735700449329865285050057506434798938174897901921806584329633699486175064755582632362599150535242051761134760352375962202464495499557770837044545093620245138285709484715939745898670712973994716347761360909651571909546965608972357373386605816320075890583645920249601845186643492360356002380605302280815888166389054850390795416764132455699034392319098667598579754149692272819153259035540962110886904769231552612723511037788065430121872610480220879310104111089188566220868187627170904274161971323594096598569613686248084589056330311134464928226122093199972674399392735637325181548392859262947634506537012323686199571891979482534264357056606325192314146547288175973624355640611327557314357524168472289303453027797417755653314157315957383270766779164406424942776218036388269722296534096535676343461018756758805772461358688682490194452357620585472368673979515169607220451775445681527146796249292359071903401722747091993589606913413898932124233558526603575395845855088430172974139816410452459571710781531937759951109739336490875803731905224955286652208034086904088919907519874931318666683314545403314661974762822180251032141461018682120298339100492533735581880107854634086786919190913024060309728942641192547638124414986015433040522236566366126753763210418975765779456433541243152184521643312661340561733228495462323170207411275222902795757027954649913007637750546510734072132267289863347221294488430171527083380181824220031470540119543852113774197012506162216858470905247237128673503583281863659991928571438078783405445507633585023939648261092552381759703398746333937017806414364922038714043081615797341786129761298552612560205853155960993431888304058415641468288265568944019340383375148183712064946793167268137706136186987501804828624568888836216842944771718993010297578311265728908905125925528698269559049893174539230616312968102655771604916996854408174494947138681053890496117831369742686540763521539461914757953364881692767729579425518439125721945027638013112794132579374840775160776509028631221015168006460172366218598005451103366629012442023494403301388103681724150398499066549901898455873357643345209714854313358627012726064341043981405619727354635370972470485182390292277654539587456956287282437366514622585805247945200250937404460301797602127568885611309297202395002015651321892282659513272645847779383143863384836503545671117693542656677933586153156299569689852941384096659651735055416938926064720461341700674210858592747837792633853281790326642234679053222252591640283454370333578818798914187728963818465800195750983200319358818086922682080799891163993233337628473469663400270620683301820403423532217063751306445948697067861830478665035956509578196715352148735414637337242632240861937854839338196680435201399140117900096070716605511042150347131695877400608006331144787660026105795788587111447428646350615451066986838211009228326807523283994092707927561605442846760062931938024061174396237098860565491706846271472245815308430722842587874116287519946431735149206020177302720734325964507278041280891939291340075889066840916589439749711321257795845950688178832228872088238952140942414880515367929114360859158430376480087291012696610651380481945969314343364190863420849059566452189945799439087370074292481635015856816775493379866269665592147502254508778085360249224157450933536786477235608508464570779542845945448191368911344947618006383551882961259865964588968296209847477405678454662065070370874432799737403628616290933448723698778059411864891119339475550632442910775687143428710345200327729329187805190922409124675868086884398455973948572283643734763223762974632740613856460236880638241823366438278101810581349486124943065769155352342760892436489346977588673158331856338936382268940045706936229538837139460718936277731807670331719233776218130318436009617816622807101024727902717367538034611339781071083049225592143405422092202182562767372019562657894666454534071001790549859188535091687837435632646581536333634557902432678648065538644479562199001522476965007445145007830292104563713449059955016462004108608813808452293381400150646474690484815908256001285298807038509203561207310210950555462450681366313172669315167359360008666456381851335142312573952695564460044820026116841830121457075306194174792482304921537829073909041830768085887674517743090937839574579555295163539303290222571972451873957701686767111298368199585259038715597090213325203818527143555850318099044164361621434155432387622918205033850331645137558299651077927457156264471229385764941007654773787602540762387467024678745460498981324641844165396579653049609223834711007616219382379104850259881038069491850465054762912230148936688587198100402858116051310398232458900298608390766672528983983042248389018440814187623181930694316590174537272963773680831115057546785459685550872437942855598854197676588184788922113408021943977490502371198927633766308646391147476624693437556543943364462893189611977215400971618067032167614734923429804223389707306287249403752896611617719229820449037580560697644270196915532373906477703083422049199357253234778468301852585431434319134890225855948231679792967521258533522838230651099690717108656663893099328297503879291007568917837269163633458829748839314345547420047831314729783313251684240561461314959745688029976609698305386487091550320029450582262938441907819538076202122314646789139917333560206305393264781761007309607921235803881450537977166612577847471412091585086227120822736043814884200472387260841419421629020308117064973165004725850329340981426318769606043004512596308932792338822529510095968556028127190350470120911141766046140430972130065234112653123423420055434847686248040040539534149518131815936141230401630339913490056604397524152518408654061947126784496653484906625140417819456947049217516388912700684272200393454277230734514004939398955130108844775540551901302561510724970885997947027746072157653771361867101050632300151455041170064039028961799341749665269389303442538746907392992806711510051986274704595336763117705900093113893219779632973182049647966157876826957083078739795239493818357073898689058531912013371915398604893027395941115198783873742085978108307361973597200139769075353003558809616753959527614811958501548214324136444968712904063525775980453610140540184041153772126940546457816297162771554021362872433968892910415832553635281354637203255159128046641332646849558166793629268458764850169514307914744487077235781136349492981950234072873056723742227916431048807761512785588066947098320382337779991006282344572602602666753401972145304585626720315411467424097211703739361243855869749899322061504982236562786972047992259893292847153541291424055714738859000083355020912901042924099894085593543448322261445006005264828633194695908724078602327725045698627452644461507281638837037326131964240379772938892362849456651360981224420864136426120102170196620333738777157452583073425947597791017778980058776998494352965296365303537121141477722611278612440238231974779914277254081703376259901782572482024524720877330471576610589427480670715817521776917387288003270358423443650791775656701101384241970298727759496169059551769275434858489925609767152660685898325519622025427638545484381104250200131239109825076270975343975245689188787823555394255520113429116685138558052896909422452195398810207428327525173349566970345203634546460862550919407866699755856355230483691983295299688122880746298326809521627847373776245968374650947148703698770192614791253439822365729314536967638277004545111921667014061255441069907924307182971337275430599562433970822173085859019565939852677428643410357602702047875034230668797806870720853436875772259145426480587884205119031243329249755275165996819036278422125476263029117740657783714563351915853236617076977283909223886132700185850923936724665329773956824624763043255047972246431750322686654075185880065031150199730383693637775892060458322238112621861208259533112792772882452783044708628686020278293825085531354766215006471282307847166680754713967325969143617521566088372261885174171016796068214344291869209455884658938348444964770666371869732089019141837364868057571664691670625245694626651437397958545480034197879768858255708141625929810869259933933379809652396006198788277278351230250421731982958360312879096421472300514225967786175290263356373829779615289591397768216684334594285409415190563012239221847961257957127563027057197751993524291170461362804645374839073264801500063314759001001363719899764381596413613389142914092968946609762920654176185344000782403300703394618716357572602966297858269332667819886599902774337011880797643215926478347694910421342001012811108305911161006527557504742008009506868581990949060472040644696535700505334990755607148466316662755228228034549243298987115455374353184284580265160176967488785000734071245048737168363379302104207318700978565984656945355398844811241789062774864816865190835836178490270228923262648295725581623444345227213877644107788856328127950720430864113905361994307933171679926240702442853405423572697106965256272744092874062895383631065523349094951022261657962697401657215138347599676469578647880602465440838995929725147264400403610836157777767493676605621097289004174163308709180310322065070890866656038792631674696955065561747208323045450257502568826127592552355955650666403029244196108454449528725832021632876710064383018193958117202152940786685271966850169278130951529325507133971629351438970590308092801172659706398881840556988057092703044714631999932024123878032380322285099793043066392799598542235535354578742469364054489989424645731927151102486035493986828407776990224767182515802950666183450046428689005282271008340017020856813473684751576541082564083907334745180849958080561615038775533630328264061229231261631641478735908931251369799007533056579366119618164829437683028414349152955912637633317154061214994055019682083864674940752369776521274974192140371201030335433905584105601350619547463509505538311443059497721922260130176762606301625173562016440779473933555016352449788816907284491251473424853131085887943908370604415017647170347233926052620586409682251414450520837747839160235818630088114576338902462057712386216475085471581363139140132690834609799108129159872962507834859315224075091244832506681730802549057219626002074488790129209935083731822872782968230032113720288332426231674045014970272782711208464681559002090088428518279714183794623932114033796074275582168251086141711558452146385513473078786850514770174955060139804049417239216659167609898709937747917524919817246990012937612120240237913978808717390004732227400963645579521405224228190059187566333142324081589611820184469754712796294805366925778602023533382454797745586350427945252453163411577324524074778019481723785641883273335611089695982258203952737257202747543952808788964533613099067429874726548381558325292002028473038943047605099492128446275309202435893131397672250658102864610397055356192541468224547278476508598056784207562004937163400000840596182497675037460426519402285899894461841683933932327131606536556542869157808608641642275836417577387348784066074322185984249741128959010830786432047680314520841922609183165884106779727593251415866445584093290012649725136072810039556944277877173430947146355420040740880500047424072103178747791673531055859654929286929859109622334143202227310603491368791304391048857555002789478724708729800291324896713840765948347024388691409969180465846539416335677037342371915211658489482070756144591843196709932157817817131047807682138599635206294417237450119809230970812393152683855641178381848572997527845286467741813071255962750084152036413876522163790162329531067509259290738921639747143574202864415987118357978238104283788711799124263990734040342935132967073949637025509105619486522854220224630647481392362669757034180901221955943460670939645232035124490194162373138800022479550560020515376608880447892668213374797280163610948353197239603458983613289919619645289849181977883365305032674081291670822196873253576956100345692730975485715178698087028616832447906952915355168266688276740031126178224133478034117731170686492765169606798507148067306500632887755842693113242781375351660887030469310334466048413268247526783550091676349090316423280413859521604598406916737598215111219898410908600163876935722449233123764294594511845657514326199225629567188575336357319562407699940821133722669382159123512999200451422351427455081520049621132551667012130530909524666339102998723707672801184216744380723656722254509152839597898617133514480163409222338176400753796152590427539310552911647051161820535961912092413413270338958397310407508782659645298706516767995843793853832060319082971693976314003156967501706323135959189043593154242567360722246128864641290125523924694399089671048607409486788535427659439302538761863020457819609615709800142333108316759470022981391522926404092028875095299189873891306418135257951605211829510078757603395783760721735649900461504568712871613203963501310925071075480072123816522106938427053130193401571232521169760616689110272194255054983789195196900291793558809762946123515122037870374878299086877946143111057563385797264042040492520774116257171871338894357658645480486167638717702138867014518669070044715114670058666740318311756633825955446117133330935613111977490580208488733518090069504808571700400460853759197021515719868233412774329708426877839185157936011731237297978772309673684722277013185506888754474840962258085511744054720709996429304954390302332793089014922330536636157398026553733545919307289111684074918198976435728369828605233967777496352318075955038179850292113394263435450280807933558462645133311274951384358708965592158797708094294540521180458847711408703240634964587158591269782936894345898729300509525037114559354229568059378748281931611051253396928277188261786311186744870458711841310697641282975270185904354240280464393467181335039745148028110928249520674785166663855588792783825365191487693630309110352447938202728108935140969603738970596802331771662755773022354600255057497768143564820727971653857268934925740304194419458575036911563358048762832660070644026785918165626855282754544957411883226422854246963287620095426391954646710394892771807420529209617965529140070869576130625062714395085987395544961688612264953542386656139389722271405474384765102831039225897502493918742401259411594295940412221724823932387603268044442602316096177053452266749723574290242592366128477183149440601145828577795224875090181416364466212844620217526131447872987879672062707601463894629810264160558665557899424816538919039414099885486589455172531615219091381315371177136629853248763211591239320401255589319389798441605164683867305843942766158771137077228843623158346811748531576960446664072801702669029899807690474533631978613913221566834632975398108901755124866983706046882107272463508742611625610524698742402877694133563383330693362450440929998883900722921380746373637384412873097943770784759313008864928010007546328611627411742132415339872824573527291781340724585918919737017115038722918250068006047586256250697953327040423351205299385561116732629218076507855312638047135057941915157691260193159290411901739647491110703461647428817044448313960397828098500542510424424872968697480986203237508690502454020499132105060475441937437914518920584181365130646465451567965596968465316858130496603701703553720758330949745640066747255074174397378296170446685777566068271381808151747951424117920015519611085513578451733185908387031472946617902305132435993878479529207618552746147485550249853835529398006316503010657610857013334168366880912270086112095993656149960245557629197339031496843712635327069985955665800344302742227288031605798662031591706989648482262418566491110960725450945771639351359265166255174881478535652466691772199090480275104193138661577587110395983510541262962353094990480239536635347843599001654859286388845608250956177223764745540022787592627784010131990861333582158361092165202336244092354696315855948615088237835332497613991622871093413813156010727031784238366971896218944114828120650662622879009809219451040209761461519254314707524638357495167699421791360539234475715363068530678976817014849372957632940505490243141333945272059957281795145592527644384424595169439352101515992656648483037832239050233462411739972562433722355541447144280263271007567424125891862055763189433940852194485020570836786150539455569204187508999516232870594569245926674188007116632400020538755950367110203093011335591749896000776945562533710995000402842308064530522960251335003322163228630778426741364916650362443832019587129500195051073550654359097472198093050795337876919021655497382977512604734763446000097093526542960072050692609742757336154206676919938027235632865806312864117583627430393879151133115011753601612018615640497179819844041994798126763807107818075030173990557836754191939265688907045985113779905195629111100260682386560598886964332276430704197607441758280085104571521035156099506235830658527631845940542097797411097907412229304156311355172111775576673665429604751016215390092810488228543728365106172739825703121070738350408746194543322130279429506018863236727740829774703032325623455680270583109116675088302179664016935798415224836057625839830051012821154804471253208039621869282414717387209728081412831560687104366071054497556886082895204934205659942358659507914602005902400838436210861962788687549380899300527496234510934109085477114773864622663920907666329440845415685793181488484670328579284513859316177359767342608400069248841391422259036204030173136393065838840032437375399754744511320611261109606015899486876009065214923931820470521224951066925899788860661791107666794004132052722834400677224407765358954987396270405110420683750886693353134719875736542503805224867058274078983420669070406912939673790746858520434750129444310818645681795197037806115834965329786616922162360871365904116725436316535712291957805773836746166716014468201149249167366563451619794907292195313602868996354487043637647979166624940174892718467070791622935714746006395861005607451294043245729424383716309421059685320529987741940323608016481900486852345319874242719661035447142217837377593509020164945295362325370880880951918123066388995986223480942482657570995674283050481261203565727805923854839846782272849460859807952119412743735391677694671742120779007932464897299321624851489810601752470524253651256881961697646548685212174115076481942197667362961752615119308672212178493551636384321278685704368863341405163789141817362133399612256418069557461916170602838487725517929550386580318648814546034155025428308329837930993522481188145805984297233914751533357545673560672593549438003804942252418145443651365770238993757500962583751778653961804488396177725224784199154037781427627310533435954402764455891173265058893934264210906910085889369363312420110232405170833674390544249799334588821946679394333882172155893671040861490930201437652457289830972298537277725271418859429725699835643728279149188289372259226384907418858352746737690693128204676296747323024608882451021480528228697985002357191142101545279078757716073426228181715554929005810715079831398906502632058219501570386745530583674294927582484647503814810510505955799078377017803665675415124023883580961409891919780848952704033558899912564066161838957113313691486955817773055020737116482465982814643241758565062532409454346270322619472986362433267820518692988130195065322256974188002967681221096999595718208747994964832834447293739927705210454985633385363043199575657544839997818221443682240865003684893976551233454410627311868516348584911379273669315973185748189582225038865134367136726013689873112632106258180132860128502027635136023567255630029299703620527388884431349107146294237494894745152984923591928787813614270496722571285065210601865834919149665491804164406640140692266942917214819453073712259075187537274628899858408960216152767961731259665470409230419672951148989311209426119630465632658290611006037859418913558506222127708889640321417484104880734372691057972116918362248537744275500700554755914461753499144393817557039938051739370159273386344973146416819494209439255225562121055257152366879367186838289668407420420181148441146516311678115827024372111878000198716405165057457199928663305203510319248210860402216334608887644990498464591046437182945726290724777999977792514383681091570604036511947885287074673956845058520667090578167475974893771235348512272197531914214608682118646293777732634250658728921326210617887653377406396759017391404636580451494631325123507350108270695368033534563462061775718579627848729088909822005327348043442367176651323557813217065054666889201369606186155776982804561289198893880003489213212732988714934726003004774901957623689783872271874103710134520970569611702974676978958071987263407096609903264013452085999004437919558633962155706697937889176720003898249535598938063798317999815634441731035096960148925831163045990046590850158941894355241606931759716263592651162057046860209430752646245216525736471831066073574560215882574638215909142866494925964733101503438656221374211367255386134552889095229686303225516617257353784686837259637059976777359101288038726881885428336381048489694924819784056403984848626134341363672044934927356924441143814837179653372484492879884150200498437856405836319450103733265093972161256766717957149761189894156371638781142622950301307780169888544470165446288566565703421241899104338908946985830861461208269682696025956921220734603101763031972904651383713988115993247724894817228991371156382191694690082637693118145678903904607741778520434123220521732131280693664071412830208277183077672502944331569259499849889928786256361327121566211630272241614915176102636999083427274735210752883432660159663681487671417625893345166476621503897412558415896059651037976307634894002818898886696691888127608065393667692525342753943085667330666714048164271532307782085011722089627762280367975516113928183341899875672764482633394681435151187428391769524369585512297250662214803667639494146427273260212506396735980693703518484254825460630830279216461166596776219642341708472472107471976076002465662625960484119710127006344007325278393069791369641895596218498572870045653641274579173157132350643351968935588320503206977344624248348882283557238590212856954366097587479833549147965519245005234387548215890061365926983370491100253938186715894265328037255935147801276321004515610533779319281562714993522062227392708340209264691612788637810528195937780815038361700292832076105450502490966555750301173190793627327094408684519204429120804232161797405612463325121006586747867343079665378473875033771699455529848100009391345734385894649815938268350146665480705261845753624251475564214238149573372926206258260259561874874712597828707873020740125419061765622543015182736440597789272463849761373832153047352065949180493583918420226942625728733238325612462554135309208578947134962698701083815666676507120015854415907058786749064848452790639202747380734971267443607092884495344900468065991519693692947529112904152642509480000385556326527749297247722297104228455588775981194618396711495057029097789346454853438871854196211508477093187110739423014868118410548982637732154658007262783677885207155752791703787954803140371277270843710785561667791293678020407146798934776620776984191890201119168859363616003149881254519889075380841176299452524671325229821775098048915197808584867095736056874082398124680308788082447270398227397398841357249857515111972164473537144575459062248916708963073376694058435147696179497286457720243359279454011284781912679828171963348735174134299842598007372797185442025149777225535047012412363113787034214432085077795295237821882640679079645117194349705222577008721607249202715079653362716393720804951622823551685807030305443416531834242366291742330835719290668224640160519131064944229729814857284227835959573121161497986034851388445118844235400177868919605670202847688467277466064443411495342456482857265265916598522365226686938743032803773336936367425910460121453378437515772875555478559188465521915635316316750725190866860436631968457846853859930947409730964332881163221907474007828602655923673293263528711793321872433955824740254475125679755815900018974205457099730831906889639115446801371123700459020088171730937536252867958197602260131579594500192214692474303717151836663376058128703269925561288717655824182122510287571012552924925655928282416428337628723156637528128678476965553725238239057998827713338242054552375329391389946459931617648024206017954357845257138601229646713130582849257355972150624551531883190283292997049268477770896743202656935795182538359945885175625898180949376410506327140818708251444856626660183746036118017419851213804416468339515595942030522766839063160495929320017570405039376907273826597464763811053176606506146670551115006469096172786250382160272438676760480443529335187590606689547707903681636112652479902709646678931020262304451828553289537781920996193262158973576514762861102697837396113217688089349097488767136020660330830148666275098297219285868623588689994319050651687621131516443704360478252844810000259827165737376603783120630532201805162042200640319171973610467529653160416975410536798466361959409326360519159082166301191839104802959359815562717507603641816421747218244357443028462174106153897457380839208028668007362139831579989758463923049889551825018498524962042756876637742175819363068227541957727411307808822134486114177226785491264075226920354920769579614540663715834748191799029799340151251243754838261238470193238805870100144223819622708475918254902812011080113563434686688828556370490735974683061837539566368475294550349457176874696434388976235081890465697913327631251268695132865121688645642457359812737003862073429566933686311233108409709657648270218233078142457753838404600466056889562858108557145137666318645500995679583383111531984981007528085372859718746579620148128319311981498654027976187424944274953088514226776280067274083263092273181326304708911935845674444305122567861768154179976054207186742894924627000765690691080422088053250516503546101002252043665287194007797303646487841405948811881379582202276857981781299282065648548893072000640890583391245928346966065652056305047597571941688223306079197660151472635861631190639290541951171855716024813003344539810255302103207643474811164167303915933519508797052472605541140114785497690994067931012950966889937289907075176102628166537651491503225424312480659352384973632892059426849396344525630275550632699521277012976640834344437002022081004963701676252013153715845340490897175184016267130599886317832279933291656382811908063565633535676984980412489284902488445157452338148176776900043413577882223174279667018055620331346006986039748714886805227682830069941488800374377947729175981942479769023696049775127136196199003842544965088274660001432993949715298905002083430675741830653114229775899573566946659116300043427043762657658977608131058601497591591958756541399324214117109234995890221211070893329695863077550236603648505775829729657843821774107189130841049751112455747776450139761057695269174515175582647619335015753833932984913280810720516921489308947589452305070859963374971614144608296217421626543708391022811399279519166936275586455948703997903301796706770555714547090346952294506028695550104334314683832413424632108891916161744964778335314548193928397212438635190642913283404620026018722983706474246838589016240545380648179556725209281293244494679814603268413418941131634845317342320075206265445802792163382835583791029958379021854457252334787903430792898712947449366800953299499752660700875421797452376492813730096883069003737355189030140672745492263412219875456642296980219197983410336515867814676998947663073540858318608893474330680601105560481854030036628870063845503603592407544475883248414187788911792847509529504497895459983171238905659378908950824978720327383169873419516399814822079212790544538164799410239704104739756138360375695106241572414452457479800613531817937698338997623853877853900617893149786849518528875620371234571368865319656916611370087224194717691991806412410332561698663189384700844046469845189031066977810299018534913874136976715907004694462916572331904499906356503017421730885220561988250517262927287725290499018336472807434080371256771297374210784048307547978938415628277377975413232281401044391614023804346367010394674647809215864307488079768220797453198329875915128253816116778038756942717627192322106039015067237390742351173653851603550635617335423633751170156481570633414135646552875513788582488098189783673926188807901770254356012126723153665491591009837772981862810466719034181740614215894427413207349302391942582329471063571190210639495629675445580650671591755773089957931918909245458279901709243307114635338363158563163952444427938033989078003193693579047717032326505341071085021730675157883287954840956001075632517211584018774851547991346602361138882379786396930571425393102744728883989399762607719448051251313301655945277384721866230272337571815059976016005952467278675478210190901843913607680248292488906242018420417908112014699227740289613793412993274867295917304034708218095457054268318499280091962277971416979476215650729201887284638812569378906385215257997902313018863394676732801680408565179274736411962384485193897117716509212838003333741746274246588261850842562426572242539831714900420200050035446559983790401728565188485089933089463819644497580690777805348161112904932919132578100709421077475479032265160862235054826712507006671677372143757460152555654384599223135498765366800287649307181871297504743803489885349024041545756561700187089615282465513939032211298718664855281150948649680027087716793215555225713953340585021308693104754712006741782678376391514545909760333863497059153738383974611187461449414982307023601637128162421266939370623138776751818036052012591517709437536383136883362486166716089799153805788163200259723882355708940112428273798467823121253516352319390397868541404083199000910653882448957308817082085821165820647874640033159714535663588920105491552341087023490113160400656436406222512466369569228002856963950274574702821441215205856732471578733243157598055130145548066495520846875680147758609765315975814231647838176046990235371758439942909725424063879848398515144489691350707389379457090429128222595180037043420767669943434195619323238455205827542302449132411577302377576444338220250956118292413251137136928108438849682406668789220365343412063075432553783670691404281471588329999787222101081536751418993196014604014886056233860944118664853060926908719600220360698655716827711657668387077891165260721139956948487486228101362699497923000628154998879696356332224092822411886248912908284132382122434191071180051160405267954047905402799956719059609184234913921114733168504872418232096900278124142065111986645568948344972699798953743106781792348419066952378915386723184336893575833100255914767105591484488019092691856758075051804316077467504172853245651446760321305254754844729795076134853063858823928661560642667044312293416759720980384488452201638809581426263332935283481859151096620685144914501853803447116383443430013794095201162035504504947088522345584703303215748646454044473290766372313105480572885041704538137570567383571060829648307283337319967143594940507168274151940593926646157969092806986958062153128526946766760087701853292731153091814005006265844732058526926594608852009812484148474449209661420382456404266187134254275142996746357908360837879678211460174048061020274643576371291437785871708872310313281286564023065562087632002300654693046689758606170283295119016572018672672734166125931233816836837628307853802396795434890570458771953859325027960538848631652767814822035486535046216953221245638002672605830007395968321753658238967732112992168240771163054071967810283841059080207208867643771438300264162913565225053858344745218920452832483269985473908230611404769670352089037990189259434393357012464950155327754546764376471607052126417750859932424139466286879765533257552237294454968114163720677526942295650558893711224525671730230842193069460540777608401522830678374354503595296886579866120590196522697701330475618839009357797090473635644449365376578114873848379404194066121375706246047463054879457224280523510716666648256503306186631503688777863504762589641387393703621162946035273016557996088588719888943767213927237108041817988060846645907479767946667184891570017296079601110219495623536697955938276096785034073918827768255924769286972379955357327026746059631832592748595087329001950963788610648709859993188040408826928320769608280674698710908867688853990293000327296740359342016849733731760029949353523424467111523640235219332330855112627360825063807254825113545165366044840829755625056975650983951817238291640389522390239086897073486557528656875414286088905825194071239873538487460257437963585016293112329024546652911570971381367439984230462261240847278009668556504464615280828914217420573308747544984304837925456833830801485856135567402168572968318609023053583764436935931952208243246895738179169428889051545896076576555552246245783504219252727056252525910230912408366731474838536974303920044897737734029402186319200182504195431820450029795627858166983710457930429736219364931780593973660191471823772878083327623128542371362563658337958384410590609629254314282585149824846220847406739181494425759270638596835626652624944528336203908467764372266374229036768681811551444668355601139992110146527232094797154859849682864703828675181911761686483594685043402138644610195646974193707503797724248600341527462340366626494464188092482509968354586870491072237703006697719119625907605757397828317005222360046267118710452395424914026247281201605636086772078489649578873840496989989670672338654958102963586235814100992661871294378993979069334214099558217760386013567074180690264249861044873451192388278631874448792192498667307325032514599980065189224466215640037597011067009068395289852328019385077252604693294652599770267960834725893754980669827904362921223404370181988995304029417184114611903069700015432455507014580905091561117020726228623247182320027566456617478566553420961282476254472432524243826280718124731029757964385134320279182879747787782499654310594210325902866470032381373088461220792913794327534339741776109678046559591217344581230786071684232561397608356958272940848702385461860987369228890726474013950347232710023380516530880076080028039167057865786767285294860064308667519443757658187834280739384957153073213720430903086288902899749548969762192645008051491561338453355103664614748580359015931841353295456758176362469739934231290263747469860682445352294400483548461097994362764367119389758822793396193629626042497590763211314054109301892877365772100627375850022554658525823516306354431453824998819321263732336698258072197374782852825368560221695635625215262157271314061575253365904839219083282505888926197010719435234378864931572273982197155500106529965311301090170282054535842926501038603856223483886541473961509273562315091194023516550400322722288457879257353622273596005513708404157595854831777848851139880472818263874681374972334957346003629178481987943115356705830466073394536928493323498450683908042627617016263737899825772416911452720576084306716055816608960674923463731201185740542670503802422292035196267437689423978833122612282500545157021615613919067950763454961810694698802041066272182032772359701597107668101293624438570759792396882447556500142835617714398831612628462258985161249623045448231283579946809995528406387022774309922913382596561318963417718659012756338565790954299697267681161163259165557286569913076590080117373663640349106763959369881938786884654073370369731667624098122038249308398859287102060732122510026912282437810543998345688412720840465516819975072151456150992590590308622597517423963657739771757135342785893984835866074288367236158082992237366936692335548259044120542521438849107681036831432733868944100943320121037449564138886645338218420928179717562017480211920035583423518411809489455187787747603196828365962731793693252796629321595816588727938472035813466754145057465545015467869226469873305457259883293978906712386028646903991256633785317875327567960273896639138339806192164073027390065538681280354965502138276774406847127121019935180290572402293271867612599862106377129597210394250443260810131914003311268138435260887964797324068588318109780149090060541776030188552317223699341088022000559638960661538292831825667859444961414358924286365446545868482502292457054956392251364026070503451596973977555117512937391272703088839379663187545264305229124463716160198353791482327203699967974988663182849908019271658471023887052292230169435549312585996459652816872579670650820648048482246545836832575208192607023427546606518568227346044726818119852523379375917792847009008884604756823074470133387424231953381953096609909462841437691573503282218178531419317982893977942040996492112596239167206479707959783484597969561457824673794741788561871479091735818857419512711626141565745161033649317174597831990120064575129458754633109929975756920177423764669997166935958689507397237983963227645906452636335622455980014866785075140005496018402274809916656772323848795946551132652465842066856761252046534593505071284902723006496603364590881682019852907735816897846679890423407038768050199477814027824012507765716156012990628153833244174110377257797733480989221964785430350207922987930206547413947629133791614394860421833755257329843418635750417650673722629797883905246106405155124921581695061290106338019019717288222326841028519936494513469330836672947607004067735359295485509337710723971176887756298215869380820008369772882031873469767913031016882786907381194608484160515392569203097599486563898965356314811680227906213905871472912873201871085888269743985242835103149167054341719456411421443456491120747118060131772538462100659440111404818733666691751961622977457692804801232727881699299326490385807401569186265359739133563304652666473499361298893208720500501366274287729288989783900447343692783580462664521232625746373452399367501633125876736021502270165322110604103434085349587262844719187908143340466740782817919739807232563735450843135973748746145536167726822500966517191486924436607948068452850758032249271730353108969510666067618150099951879619608007072702455459447187209618923954755699048484967919791722456479681313800549132291419782202159616269065791060434636599269491454164497289619060046113988510728467698954881460574726320588064702114822344651126051757883180734761712861820997370272531271484818478279105701249941344969260276023066922676051494981426210016319255206938539971775434705815715203866734081308090702631354162978749230420422827385062063076996471937325691396918295803628697852699647656477861603502813196566083905088481842977376770624591497306641193048344438073539403073414814946275891136634056626823478706090450030045418661690339221863894536621654380136246929384442616984628994945210351065602537442019392601748694405453486414441972996269604126521185714985328137562413345819896871723685142199198231156590726040851379028756573639460440601260356524719175222924582141525309566727347829089611267728951430783108210876837983216744886353692133136923519811037077561418258017254797313894026624079428994272697318278176212920491544879564351121795967432306159424212070419964936280050778407849761843516614389053819247906996563859709027271979800253880053452490744180180961673754680104666013181411697392077964426418782588857057095230719510679545193579321317180864255423210390632417962186536706968269633353658643804907038268199057098144857758893043253019339585474192806755887753005101399798841700567130503101456860320377550558349015752790471612821822292504127126683038660066409920647373894556212027218288920579017155107604500571950109456041832065102656338676310348266366009898963419731539012086453880804735381153268777825112591758617327703652965722665589379668467584684136666118853817062618342135876910186247302196264533390218793783108041798269932047095631239941467344264970993923602948080705082610568559732173635994301669494721883707480944822944238283474453369589720345765045674943110328817831867730230004488451166083187276965528604408897040073002397888098632611156786255055011561940902954088099644742903931822097884197962734807876395133045330559461714266198479652414668018908467329367496767501498665575356458853031707211929579908936885304861354258924336542874499234103560875102646107210660923663353271892313484992021193520323016517137270160688790311543133342656354613367053918345183145312420977941917068538883429105580877596867040856343519546252133851759091045040654128062229530587805434230931525755800955486283934505297970867823115340545111689121616400896030886118132079432561589426097323155661906990709558273412409221089739817996680598290842929237001158426175225470630293979087728835319652575391335673407313936622371722942611852880892890049202191375109128829507976201207377474038474602742733259410400852268926444226400872225401084380108375872118900288820011510866769623720574986481560657780109432300004269781196878507759465940250765814449539481383036486514101157858470236660384159777773595856120682422706820163424831880282817437125562614887400630290985167731536135300470561073754127155551873790211976587929765559096044056685907814879197311254028201430177011484320394706862980762663402899525408363993407348421469887062833230322911987199081672348383258671649301064193521727258692440269220494842886330744073742992726088599593373767125889085664029753728083828272209055562144764872541949753316047099572986198669576952488443309085348680537163531387482661734815006494268586617843655830907442767663818946294026506887498313637439106687553988586907841016604890931636751295372695416223784838941853938945782716903653110637875889481594951321297932941548438924422470263787031633225371606663830427106115678700953743737747719859336233250147075561583586523821838943104953847886466212730049264049636171203920521711263739177306024823986131558196919103270058337264832122816916789250992267273655132252738857426914159455743429812500142043021119976270537896733445301611355918313621238971945268055323015463559715159685857395949025802499929182104459679155092336399010360523516189465706563119192620838349387777979995666471333997216478449799949431614207921273381952382278295015110611347417876734025543911357822213133071876289133580979147320264773939871698160427748404219981030175855715872721073501680711566988628955434319771740051443787911546264730787579824365601151371590117045754341664337841879804447736434053838396436251381283234162994635467178314359820543190712135932690449556352533382856409759242407744250133866500025173043238712705647978840930136050754483702198832026943656338322492619614608424328967675718618899996819205450253908045430140289732941059184502542222231677200130185554726810138479390817544615459006794499211988013833163075603857807188597843694387944345849087582213396399713155944961502847912845642424826532153986175626832199829369285489065434492726201173703137269156617848750914078640839300221540894627453595998382788065529253566692636829352975516881943151821458110089405036792392924736382044950107515680029934166088662197787676475023024906298609561697783597699087150997492913270500567080740239875736387448672005280707411295183656584937265027110946110319270318993214063876489022309232150224130264424072901261366508327852850541250161226180485341928830951733219377341644430541420914186351470538349832420927456507117083931964805719421431003950592823273824335179572335857133956485850527216404246315246860962013671996334715495533558559574765505344106754341662449402957832651284208495516438778176569745826176856737387622088148533941680976307799483279795337403566337369667074677953276469613968033508807589959487470563167103382096237930603221523531179802910370068738392719732868808602708431933761643201750603659714715351432706462310091856230713624100961039849198561384969505375483663228912667315196007767319259010630593298148451131635426907534041134427080576934432828235545821802810422521965676604789525385082624898902861243964855174032432088706924054528738473622914933852992882196980510164787802788901915216440131057410366116891320337016756248094392693082456403713142480870385772736884658579712233700171698465770219272582651803066450121137941365401002084315555852800584826964760634328669620647579853432764415862685874610987867406221777531451258137166566874957594096114908413980957807460949505000235913263274398268038317232022227751736930699021081582624492550038501188026082224985155064946788217943697794588818070014646508976823216388489682784138436026593701503644388749440947026923527152051820342991831801951011832322084375193261969024692133024512928845241062463915454882991100253605531045455269383775996626703116167863305777909536640628462390251160329857323187641196152871998421338086978096778453236528416042511964165848514225854432016403620946607760863590817673965445661941203074841087889836483134086901934809171597830631454271500073300966340266451264968683823916073631281372063009518121452790036811875821207342419286909267313735557800134613684637727776677454411777062415162557188518228057021249076379599642250480300376250298886127836101004109022416085928643693540597302188842454978637225089640066006779198200025064469542750956896056585623136024897816158366339865504203188908752499921619628295708960771119861614952051535005227230167979436207904257086664298315709834712447270789711360460955115716218070664440221103943037699349731651671674260657216126991052448213832758425936642823106590039467727604721664801935810553059697047760526782689602741088986454301557334526992989982654218641554953347820687095197350973518877068629533840006544691752347772252007001748042225219173928603074615598275349241231899442560496961568294943373308367296787858264604665799632862158943507533425351690230907844312740053377275587234091182577476309942266762120027229049453936030882086540626212046772512959942593810394884975116444460409222687352301731968354244342555714183323750138302580172565266936762015334362569710746528125112063464669586260793923261468192046881988071358648830729115440324716016435109975031334067810107938713336594377298492523790193588193985452223101541309620778438593480181612537112509039899883940993844410538161810839556689087477016415694330992254105163257077817603908751360643207433918365574466223192743055944998117897900114936363776304262516630780014285908789161294657203973326473998170653183413825980359641005390881459184855578751972894812940394729331178494431573840101621928992830467498114408978692679854559830308269245653871429127615972110048595237062708171764243328531789794355906365191131055752701834675600918730555283982145125388912883615457556174373507915377625324364061640620235969430344012649048878192925404739867273952933363442778365958034617567545619789431064812406289433853307330717984471952669335269915707290927210863610331460199308566696075430326549138483418349105765659959836187002870224155644769256907321843380754853131000397725818670352629679835629940439706309762687406857159182864798247296643001352562599963170336101815167578545802949968137950174887011752732923292684587327970167097619216365319577002413579875217107608385580115749531756008804924265969401541623471574900691936984531269178577929050286479165368626465810634155560484757092833272262260879475329227525237294739805705235856376335218322647452917971786220720198666075428676757415285679293924769795848586746135375658492775653613420107197847993009485034460892559188340497181553828864006805308061006467891060748160028827329077397929141858100231149403559546079565706806413152290363043898415016631666394588150201717670050244427476439141656445913007521047078096843114236260688710646029714367758745705516341913342042416118338284377169315535372374108021635071099102924681400003476936245055429073519118307555959518673542299369218082295982958022490825253307435948572998434327083153074184555391429754553922664209806897673655321880324589947456392440454886434663857910072234420479738326266618961178330880087128803033806303821784323136266261497837900969356614038415169151429757582177959457613551742594045235305642036085425161283518833893549607581432219309796598605386965289303107370267139792713228369757892843936229261865272560544922153571698039176446887800135632485852151702865163291980707899555721618255298570147466796535067172041654373839186396075183357382132274651076372328493893319917478530974265732718910228800790876244889866544216112464078385175705622517003253494380137137106576343310714043300434567183069645392582141511287647334762964727176304883480627731526395186346841754323184320597285135815896940032239117830922668860322174525547222729223800867574518349826626621639477046557613281620186981634602733787571435282965356685390701458022748352284915278194772712706346717031340299736979344233765174308406470311620362318112498371267960884950779533642845785352207759081075178799131748567125679414486977395801674779837251270180101809913357002165502092421296420667925416559531205536557317922191347273327333751679863980294278770132825802141433690338145830447814728538044447255047868518716743540814519368451017985574876962191045836003199284419242115172204430320417994481822766307713078655372126277137617803915958750148076401845366136160106252999163020434602200809618488246945513950795534000232720263850055064894921694180755604590182950429355912484164291078296253148862212517463855161255817387558093290497279710512680005498519870919665453206196948118347224511296089030467517218099380858910833327203807377215707444803741297728462694917071736857081432321834928052512095859741837357547506459841405642455184338032209501354461883072797496339773760013968530720467928405572346768167192213597492449715606557935037971778279043973484897602175818632634127497343106665135396360063653872434920564481541078343906822315249382468039697516204269957121309771366909359737385609856806283468914363649182805656754582723843401440302914564226565487457247262140945867215766591915873508138893676001304859316894735355748014801291333765561723122525378625958099214123865428422422758383205050148690858727847881955573628948492722391126789057093136336629673466182620282785537689226052686880558757591682680510013590609190806185854741993644354119095714157295056248988074750859434970175893359138803525143693661427686517841323437547744071423682567758656185322473445486878118937559371844230385285433816686698713974278328547661121578537475810600739158828160810564776448334434882416468794645822892148456328346799351748639369575808527926680732788297732227456763341550332223197591140074166854381564251485773717626203846269568864335347423064825229685142053247075220064134360006508382322853799896173775704153064976206555262704161011178635754689169114581320283208975629583222610847265230840908362274248585760533656966629426390272902458599901131622241574058059983288943736110073226358704245691444352017261710529629459146679306994494646248976844829057104928222554726133416871887474380532426158175531462814846253963410818484609619981074089522727946976486309898226372167227571761851815761345973505125259092018439569598419260153700047000602466240667872725610095021631145437987503809979462464979843479596585067157260194098087455783792258727426341278361926491816213393153107920797815066291910312587970258826512786762939861917965315760819129615293957314692491328853538344458815744411501736648585233684111005562289115806693588463694117410937478354468015467444959241187515266402777238640897659629755892912220362364808343941918311678855020014396472358362227695856677386022881584995506461157142673667425062843886367468292508442376714757319381766559789854980562644047108803618777606358732542900083256587133055795254868669232092597738590434152910865000630667031996205308714303816033735890970394622304245528098632393221781577776012189921056242380552672998399433022810759884965414950248396865070809379069552280656281052285261050559867560687538212041511930281499457406018992690161776851605872860889723833738480613245400317886968680093411879247184699302646878371239813645142043753159465961582817462951214902803943057107981244985056884210602042224756710357462858837838356263375097506648478002433070847727069046312988872794483130634810554525895189122748104821019340680563357712950223409042954314128834494029116157464159496296219956875973289430689563985999259462225941868537947305968185685739767838821636865270578532644993877786713771568604433354437793038402715576767515537702708468588217871066908479494757977687165339884249672472284199396987579192808718545460348475168617570818163415347594942870636200158222198738298104299267608137170321207666084272442789507030441570371343752075342324805589697639227675540563327694736825250361512315995511758849447625907957886830903157474492053196911018062072593439513227862476689498341216522345811548906625470891935162106447553993758074305375363048332598821402794518391857556876333901364057138611372024073776063897929296048197986519261092583321633114204118682270311480060535510012822153617278607127006664700783423982242415903064068589455351908794835813510678498856497815567495304100622622251397597642393059026245210936468061058683580749539452234174274835690163151876120406786324868717023450535145572756443109387275829801736898221833920858283471901582970937095674875187949872160594960896537121021277645241869105224402273278349713729573085516076334442210458546014993094417880991283185922259109968943031352189208275400594141199890497044585580236646756744130905833613376175023456960873159977266387098632232730347031332760982114463443820301773660273927190025148332775312471135502049666588188016464173624503198136970719837312559072298979626579523946677160216721339176967782524927105324686257363118918285062373716279735823110481553666089576259579268502072186986866444322412225461558739209416815905380187703369574103101838338866316482841811305320679533549863960805577372367381219018343290440867020486889424965146316825353130640629388770444546697310880470035756852078472446821468110529270383644379098364828462764024898717834653448219378524230513286234294358571897240418214505216160565970814025056765029177271067274167450043364041997060715880710552422866573508457204596808295927446979603828623713477836118853539242636673083931137667186045726785037648570968983225702572009104824397390167577750981905342073614757011368532300329582658102595245000657836177118905885303975040352852417018025118841262156025584206266685664675233799714060319487793014827238011577747330177895348419715085484341490083321127076995921187538502765375763497867161516172460097380151842337391736054436783996853552602403276209973681393163176918589134619047600863867461356598831004091474517568492963066605942459068778523563907186100571791640090394340523229225717862717709549560441354564778445917807997356647853166037839752120939942701071156552105200930495906537628845142094924012799191504696196258125044171810982942590330131118271112113882121251937491625861589812680380198805113286169632282363575984438994553045454044193977626197157546156876705326658904798179634369794914345689810650913868451855923243776481292937874452768729056929655071737843908455648858457355170564710336257688876086620243189329438802921635438358265921081572972215822212739408972077150147655762316359582023938434665233279643076253298459914011650167357323145872934532603562322299952504092286096247832114424248078409953556154022807274802136764565165182449530807782810837205720951885970358028660396527140116809810701946756624813999471046324423128307610633816348171058462981466043755194055275148630286537462331752612795161593384090005957552745218111181868760748262886108878515456388318413867951691030322576423203641408081365665708897258253936971674407349769858995646991383762506990224516796733717162282332429358607123551502969548528009927893970141574377651542223033829454854786101796171243080407166882827948631531544433444017442501879235211525062850660729190537889367432976556820543885337312780817160756256018054508645913650694540419881199390583508608401484705394037183286307047408822391434554668320969607489872858839265450037506796389100210747073324320980836785392886028935254737626824953342563748804485919080446490502427611807487998940774379571571775384689808529046311566907149605202049128804923445750884190276540249442204617436968542649397235895219999483248666924110683581921693361118362500932040785597873125389638154999345670761119117567955792412397736680032007861147262778211240852448113577937148338828503753965850711702143183367639764554852590374645014981405513207641572771729395491190172697795653453425618835331387987673320429080034906970482883823808769193626446078110765325675223419854754190058661865181008515240014168598341570968080848223776222355597628342177526227541632715222022228287321283602529823494276192076957110188630594615410116111131810714395031060115925097870766748120373673162971278606840021762288669249715075435143905093742986160331601692933876253245534132796907524029929729879909728083823735606449103239379863097987096785096125835794484937190486388994139399463701830083957021699579580318054220741334590661012328263710286420856900596543659785092279138557754180169588233877888791565021013149230897603501913258176543175041003816201746115507017207545024183168995887278287961034285282163860735409972997620811443931754150061021446445539343158653924030291664231382538634811240431328769260581194588540538832823325371303995456978177451438168899956922884066194705852537677018009599451869132054166564001650975827897182476111523274929153905805528397540288722117194396766663831348563483444427594208211612886997233194541605033418388272416539197882170531329536799392102556161882650348059712136733650911065611635177824720182348678881529858167129265457289610073146673694841703041745287340699468750404893925539731518834836266644394588390903966102581949019912182157890589797339646688708925551995902561598082788671170168424513622127777480541065284000867434106184983276174249272281660258715929825576237862434929867886667477622564516964074347603817276475313945374101990769562957130082755878861685727753043767034884363833278311531050086392232037716108554348828774025126754897078831009805683431816274833974995322546248750098972883022420101203015177234720639789095985656714802646198005974478900916550621486910501636767038010745330972937972431541703798332520584199092895781569323400743773398808561311038974511627911840368915044277775534385663301404038250335712909323624001049032292953828675129307888670309801029513360769620207842245973528547517386214437408913094668190480978146279658178031081456876198266706047154603011238522156386218311737177085712657171293187374123873622005538431031192213945906933812271373706578522205395919796218215022213585478110524257593565824247088846839806834956623394642613260763177146883839537555786973962144126834006883319087454809740991675620315305145407379048760082518077201488323068531632094490408316615999394195994284701756669059195166220670945096509878311304724799564983331809617539836349135212313542057318206857029692555746567811352033754228802753421608293795534965040383248211098015849118053292144073859403886926683951765944859792965871708917240144894304012061253340495518099836961772905631339655643085755112699229581824407263100583842538382297054808451034221274220614422775927732776381362888750704603201974336501367756548492373006124213804579495023329292983214490649777228483025346810175324381727198566566560013083390811922351523749785981429796530354900718603694724271732779690702776408318158768270570680344600850626993763504184985587005362228555727568062235206895030715651657455023982805898433236822479536263425370808453337409747720824315726736678917410050802303953017280375685812448093311504725050874554121780709046123720331783643652016664697482539962603035133632092770043209696606376158067608098651389030920143463283259603759056293288426152378033936463901973793521896159906460041877565833647723098171607832336445059218259047667083285852551828364336465050927617580557163756412434737320352427526223045914344650503314321658929398532910670286901936689626194492164982639738718049075657214689402341651440804559035965268565631387865417046474648664890134424140602747990220334732332824064123987111691310001705546469788863868176322094004963006549679129863187987196030196329590384089781085297922233738999926595472072037468897555885496099058821409672458606935721334697873136602843570008996901288150013030748491354371682574243249368804750808618314537540871878176611270725346041587493361642376048189285382367454167476558789953711712194883984426163668839772918069531796323941950139732734189081796560631726473453710478948380921813197641569966858421580617387026115829345410623481771210780304065076511989988408480215133854513975156866669180470623004847353656714249465265405076383169373709999766696931821916733757678323964342845015525874242115133962944109324555071217767475075029873831336211369887478603921558887104837481993676832385773468434466775936953951919221054093599828335324614396107112044225494518616393096215742263841136345149474150420914930633991666884893717191433315750039076890243622283936369194817838169142811625936338787651373871581214882413929265034858664989224949623060692330577750659077312115468173734648295058473995984027789033783654466216471411548735949903404861094052067991788531217745003993842708120606590961295995832306549343270171859089096829621458605037755990855836974299206295751552625585208546578128362209474254735033389420046587016127498645318174527674362734028230351257335199125953952033964871412663821652715032863864777964585274782860243737581673053216801322408496462245426443925091529143977173722166336746808545405896818288781806954493921444243085146215152463001991782651947755448440178715920230161279707336297820469686209556840627891049486460422859696918750562073117108492424920946883173623805328237293724766367547437160504226820393445682309827494993211305722911791457490966369490919028124227860445952599739119880954518065467981320524909705016805688161842444625248857960384938002494001399804150101518382370273512520911963524683845327797763619347270505112144291805312201757473045352571804529871303848545801537274440618608000034049368282371289191521961246624053977715725946727600444285253971839421831022474048500748182564957709236092223835290819836316539373732804867858000050728608752337214538915832274100098816685122666543328350675147166968320980597668636970287984078789027395073141087054691107748728016547618169939516853047469669317961560779050257245326393478258528863304914719259656856456217843151651261740793054849461519942897524100442146474250763727098648196368239968731333991441569235972468006129489811949143274332861535623111843260321742337540005799610085299133102176104637274387931417994849550290810102438845574362977933210494503287864820052148220041005766149509604683832986102929221114305851983403742772809193394668690444494972917005370577022037614332813745995206548812566035531436873415700649403621802773908978482636433348933666960477831210885490287478875361475864948409030538387301218133463088225360955226300342111540152037777553577529189157133822668740382513883024674046047804742401525754846967965081902740631381077612626591298112196747767720461191771556046149998540615115311657090941910395444889962494063896688712699896556358321707605287816220539962977689721127341392124627365149646173550582239609346913565213278933910773552154383045484050649060610306989287289797008246651791363620037734299574496546761449072821450110784437403277614622896901263672006612865765421779037775671815887718534494502826458542590271523842523006490166448537646924420982970832389517042769819107020210033513074530833602221417537994752671583031653833403355872473110940267229960908125996236486648112314813663859636741530918182222455074296556997073424079844210444689118053144705308652096443169849810654409306229053921995370669805560575569162271247984871380925369980931859988577838783125209675105358252296622462310847109925266979954117917849729376163017531242840236625206119797698534337631453079246532597695994423002468549559368421890068764340452040737791185115003091773572704952708282261369795458449281740699559612196126558079075823627501427697975359277542004157634531588996539089093243208111319419140560383494937129320039734814233871792104147732258997002466492471071749654126365307788108752471918846655029277570749971639258880314026283439621509160165412908648963371162649480525651956521503916177684749599094973304948536903104578246034202098192131205897242041107462297973585227401735035280226323900895060035632081571285047798017973582460906147106473478479096114170298340777467917946246112390135760450680079223620946477697681680954117023456307492746304722769645111182502082983640548120615662283826704340986152879005174455562845422836456856549459409691521193360195304695756663675610876628224443810557443580901478953181825625717169929571596301388053698633633334063490302756638164640941401780762055276047399921903744263194669484754270373978482191596219508420947369028853056989060489547510924011536148039189215233165449617221365527958828331226321863740170520458558942690494000394411987992666381331473889317548705622068617270913429776260503107372322702006479538753618951147938913028702771707836061759930547047268783741740049680150976841101274448197300543536829394215430728687688112271426813742673618918758143702759363230808924868791591359775847329306384480272288312369574531852902355961849559034179854834943567050910768439883651694297139049059450049834687263227557027395596333985486936613267213768511992038559511931827434540605038941231240613171600126376983165557908301171297848930996046732988889288716273359097804254867179769749904819054876877375031534698617165780838991605963596112231683778202261409031519595760645007527754410471407900113783265227792658963845342713146681393610259837532177591857288957595758877229014341125956958585690388010316917468257428369360572369264825216113002657721553514581920095691561539130510112549448306313975833502018221791565690711439906909756780172333139280868140188180426988406826465069990980270848317055297102494029599054985221959970278309436025047566708957558722280133991768039682595901111631943390941651954483550272613580853491725138146552358889300941072924121722906533089993280319873361199192395180685848463447112249344668701242683875476710864153486094401143763337336951397878410816762989612556511018674251295064309045932557931043008322364556774117450055886675908957600884521898904707804467815147628348151305063112878224071705567076426512364879352449970916173052468099065292898400501139051836024818113451222307085206095449519458801171920058434120634805182183877750697411081971020673126554748011831704502221640200909922848664129817665156307916049614119106938376771208451673812562133307161567304668644761069334141129706376715109481021255592483573347718218219022065155814165020907228721892328609250790933420123954319487332658779861019560295830535737649595069878322589623353641441316272790072251360063788104294697797780286187519851659214111329440594273431873475357052629646766685009066519938021138032569049662389750081018947311098274261338509205763818742283181075040096106784361501979106910588877320361803675330010958026164603367915951807510488336713220432621704358986831046208843896800361084269507969655666354828486065504384209670993493559652447226394314840923007937278342412091749691416272574588498880806007683694999498596858866258705291803317619151560452459387795830279210717974248783746210776977542799340729726366830978214655758845767882348681881424766554454976512110510115399554017477750782365266942316842469824859390930448865769812134956745519142862677679420396108422883915700117434208982564163887639352923767292287894172788659643939734647485484261421272451753315453721733355912713179666028689855200505920532189263637265895666177870440654706635080540132078370873447355668942136337015798479665186906498190621786666170403638396177715615953707832636039675190564005722324837190993045194357155366630231484768391682416910108737138325474157839426747868022942909530144723631695105872145710817298788775258863060461349066677984581460032864456565714826250734498315309434559886703603245220556890649362842089517713999199971927759913063489416409075385180693251894902937705717211932111551569513435122645015898225710920085961087034053467969398105245402225662225827317485467073598780453729482308685001489124800193004175934954092652692178947306732713415287621747630530103476034904185524051884170001255805739451047777502110521486785458060826471489799802918021716606666338464165981319979284302623262061138061731510825832557558789153109554134707386177525975127921427990220781264378135644038212490642858448522108400323778709051376868356495230155600386523601218649116251879131753439438203533843877670616857955024145356433122563890832835996118032806978431733540586727516156671558918033166864697139621933527965117562123305175169742093818630539797593497245638030634938902210743405564989105325487146525714500992955895878287574514386154118374345026377320716217175168476841290816612559814401470221938573723466947911009363101492258029579744262719782950380891085962778784391177902445116446672272515847855448813015431381248290597801085214328052934678184942648709163564459666265263093564764630292270900387903314817383578530177851004756127542585102572871237330564940812261548529765926161773372546462817025732114143282048469647343689047365603572540952390007953129956538064267989766717422840507421130190487702874145158641903412117222709153641398718490452633791814369998497292881527965764020734855924084502934939279149403946568936736639445615983918822547449442946908884037785642626749018431432249464557425865386594953373727741132068015957086940278670784616778328674666414746603201969828328504313498399051124477795397617986434180405225709661499018236200950629816449562449186188754389517761589158399521673182104599646165222711005730260529662332483452342326270316003694676262355990625731477439695607134143712927442214866955056530888349632676083797931615276620751361635613367282186492556086767512425595570127797246390844795399029112730880568699296699648382077063279594233058333865297142290158121072060192417008548152497353819129652194804701243498956667408850560084268079420583963018026504244855442119718799222658856080053751654277023397076262697089158641955347345791379963215416584146190102445363189010449453740190860573670415902120462939730376603635038988377898850898484655225989906640509032476007144514434614717578360641172867430151689395262939061087684905512165656182478684184428614154300763979129502313626572647245376020392038474132259467884428775075973327318019331454451380364777602977890388405903103469518981321745284324451917163754882264420926689317564030855519202202154763130230152916768125225922400302520987680817480988347895376504637746978818802641668238783992889992543668238820978675642430237931313582510836147004066420209282772224003441771922111751385499114731927884213878251797127850549393113123369667334509406636144037309625154770764567250024520077932894435036862745799140889003494297042295231029676011811942374730965810556741116731304105177719716245662182639150744105947592551935832957565156801031167839198286188007267711921667905696192217580681154423231558909831212235292961386747371333564529872082886393695323657754004413620230055151367103640358571348954837545567206742360430364253968837287721040942302793334714239801297729874725044474172071440520917997187949340871115158553632817212987599308596834574372427903612399244189807941535595258113147422872595039958105427247759472427724828460595825098226431818310703136877041121499158877408023051370812689197884478869706635196865659030635515477499650065024594429495693407827595144982062305517566309738791721181040896282679362199928916840700715864730857275791545893298694372600176327832230678565407126765665162553244630244700130863336984966694851333626164530044685939565702238904313968918157005656850691259406414059561620134109220624596894878243613491346813633649663597883692759208926717666462098791528575042484825371230872902399768228652389433125298593448845564739551354641110576317247635635759022869813912259065231540303875197665735386511936396090768286249725631066373197054668202959010465877194468186258378236514737324545051503716264449434977357248401593121005051694457302728289994010569758145150083101474236817105448047323004637403257759895514902508534891139388408643854708637030051981004854497357617571677856835022364373318952608999566586672091721695809831577583102162545736236947272872224376417714909197544855065015622604654898792524855927688332707454545061947296132280715349048331022232481893969886750735213655038058935125411620749449822599738339256512293867786337975991202158035228612891195495079230829033724629645670529275819335511852885676082478168039505371825838188082847252285689606362575385437641156785422767833695043659449522847350320971399171367096709516560637413760643654530202953284647254257179249917406343635766671934657127612023030586096617028696435855241696131924530558585147279339996796248582835646487543507745099608941326232423419835629166168173715073678884794590496382628101766876600817151628627878089142061100123787215142725156906261937419150518294512702384360412286991222024070730962191626021277302539021554265960325439913007901714772713155584611910150848981610596091006696630186018445579863808346274778143780906004185472460878245417325175386633017325571460277330963591959528214640554343389602538967105446987669481429737467053836640157546160858344649906822209282508552916683612813098395424882173934873352839760762404303692853636640453227379322556769198182953708970915715812280937202296194905604472734735419265130534830670282863308879123329997047095411164816505997917354177529609752881098073537070009730850842632393723886643600990852240896548193164656886137551118213953721734469458353121575305990152684683107607525614199160240407085730566269547949954830133557837219892579414675667728237897645884996898836329428029881458247377850869354332573795066158517627924922663713684228100945264766937929804781683179247648080141803882442349214590721513302773150331547287841098689858207039165477089150310724713361395060209744231684925038179057363767339749319149074523381971981465850153356702517943639196766711302161082023992185496868092648789069134617997643868988693385994056399256464121425220845953787748560559318538100479557285400194990082217926621036911213494724328716438788764937196367866418144707934560329458768767718651077823800318919767009767393570694248583463911282687299473228805770197204809705826306588962250519503089331369604595622254891489911478094209698088327790285869640392411783368224312921558088327401890194593182330166926929228382654868027072126763506052947302314309291070624140095410875783229279863095657023763329248822272224807340978446979146007511887138096808241660573524343184407160465960693700569165150567460462411497780327668393422146543984377073153918921330396422581258150003810151301929948813008696993320257540880274162920881276424291510618450986845741277592352099936864524008315903067772235223338525051098848536089615689593388931885092164522393959649753762562648533200437278025701702410980162651053793613389830105889854927496180774087906012612638119517261110922466437451053183401009058528130129461151835668231864911407507453116718164790275090641051957070977441855929188095811437903933780536109307577168242800034963731107516828332714380241029776997973504605022561063085748463930917374601659108244903909960965186060662799862356975342086420427683699507260649283697742903910080116977645446952490503059680041470378574724264987869461913473549941528297274722905303425205156785003214292271459948284718174913258355144561316893155153467761947316938116108073999788963733188303712335085900772654285610060748269826759293629615691992206594937819923976382728268062740898370140288136838188203640814094889912684069833121797889096734503965742416122676460117177022517544986678659677913409864471483952476206761994029776897929225711981683775350289190658605942317786099871464727427210168720763500339889724048715966783614102825051499148819148875919219447279982881771661532704683962954609702341112533756282635206028785361750727192846022258037963867912776974581092511645301818568074781542078653183644641630890991098344115879908117760598341705433827404361749148202599941484912585985923038924390210308199439510905232857682255602195290502406108794698139630126390222345664514550632611538245826267328810240378072226073068132515012762383394450481404983890615155989750740680422851962144881958338473964989390212595046941052244893126044192302975730771651911542053746093753529912824114011504425702868176967376526924591756956588061385704098439531604574118526249322750676570038879526989745368948870456701947663244098305136725709327278130651532950695542223072690414763074140383774631096149441321604979275185963658045959543491741031621179762848550827052590687705407163860829249403700085109469294238203009840218341518751430684397051217518714775042056147759782679479558665200389713313223537346806523325589811989020035391732324263882677745926540907391665913823976709595852367356804923993109413802927949321387347501530410947434249266624175865610022535044052861493902286756541626786251311284985403496849970202926633902505764272839046437375890867594193469071386857168103362428197998701044458017122352618028864096759653005325569564057203437458375346756033025783774245374768949715899990098717483311806041207123468998165829668326485817647454781997847977618255339496252383627962103223705251975477095555765147679808442589439094062082433954888611740001763949543575963534342012664899216187292208231107796022303636551588530165575306766410899008784388359922295431059182732829137363419829750429672624692138311681392043828854819623104319142085096832899243728524127982523167932845553248248968948795636971945050992084831782342628810149104184293462428120096330227097764649025409704028371206386330258208609623086419066314766274282740737391904203862953396611972030251639198403126649625135988586823792847497905044058583741174713430204431160758014295449371859534653541526865009987572061368923256911398851186471006699802052087009922228032352520429847514145699117947028005383422289110728497189880157847411378647487576309369767798128193861014218454345107406033053964551875818085337306030210502041245476091249791188837528518559721811508732814365549096248582771675121964048152567930699572603797467904531776717225286824597035637661259420627709799632314470234472285695335583186891745913077883909639685584896078499201130407626409042504674313045323285049228481023692061577155077534619104580380233567609260065787797643100115463936493125695758897953872044830361555336294812472606580885992968922464780380157605349393614656314199626945377732157052154616890362309477311037947194516349033807562879304446426739634296706655124331898321260676804107437679763274211216451214743133979761661602981779861648381507809151150658550447420192124341284086190258858184689989615464537976182564117096758390826167412783720238900815585688205641715806129774647326364533587652381213902260340191310073785060214478257803787785063368619888896720985202765293299351567413745870711143555041284127205592738633624799572586805680504379383971823216476895974217035925535024858989028513804912235537273774248186711396638993665324216852906781345929830231392032877955334800040353685747850976814466944256705380987692551331120437745415403106423026390520962930477968353039202270531637709446688224037521592434057603901650854557206915454474210555944023949136211735337156182456223176794566462281414399531374389143061182743154006724754857079338769739902035104239264200127219038950147915430654854145051477136462795240535928451108052487723389948055529618293325764331181541829310264751489056464821592465453306673852731679604119261303840587221072999655231924125868508207674022999586512964528870486453052178205427613939933354966464661016354826132069281546273596447316715338664332109635227829335972587494068559428538005528750471814211226444948771381161502754342677399625503531515116809765961307825839246269021241744367819807656232801233896310714057480402353589592158468124243930606574603259765485789262861338239487137684958520874911675887529788514107284716892137593794151103565091648752255876518979892321979228405847491535999476381529337204141894619153752161975543823506378724393633157936128558474444531637274016408729486668063802131010133928703433871612681978333835008663817937484687964002538616154792393853159787607645627077860164131025939519178590060930521287737749903289240678149127218014815815916995082577019068570783016617836344975759858139627233083401548528532218094528815991634208767085376090535439579319296843649451106306308982848580305768632228845000207691494072608673238248964296972437100883502391421939192246920851081439547152038694473150633966475664648715410334280822400231238701918381948061493450454549767317053132614752004836247224590343563273009535055869373516074762236754907028893581794725186239898091834239714315198516013305857173966670865158201094034805087737081056194520160596522931880408919009720776231500522546869762216425050953823656120999425296576569973582153363873139461107392027951477739470246231803490671807203613865920932833285611253954347574141342066975484972853093158477220890767458458318827612569738226467646168357371974729306625385114171849915692812608596562558343286448556772317381136243223166707499878224614794816947292508286878571075158137750603181390622824973906355605362096841406764130497459035108687589346508077768369794477418801536599725753933788755277908388477779393872668595497786413405836903695528312757864275452026414930267062336921705499690351695799441379322938073268636251725146831192941613668266666543870810608993065554451370107108463213985072070310303407074916433049369713492831146538063513977111505485361289264962219235379402074995843493185679656863190940418605349399724400957529369715355285925683068043832897314876421078949565525887275630190035882917401161973739818170987974738199396873227188609365824596635552235827301848397401149416636461217573681811386166210745096810790472406120235661980515064611639139023959321791590878023254480114621538110617073319876478609789837865430415329335767401427583070615141113565207512554655822844998674781051192906083249420607164570820297473948982283283035856033659851468392687670926988258837249994000004349233604373869216009644579223367742644691063437316707047650478129192513008025372010470623288879572203173559862585161138334943277423041867539146235856928681991688568133369767996303272230347131280122348850768764596156820410930274748220240399028898209038974075035658725711615840053592373154304908073105532957793057251010495334708540785964736750263947459331839192237287804973440368063753019922471640691011684808151059694398226508823604310704518426177625710309791708511416841182743301889091302997641780466947937826153814294898846271187873833043868528330300363367822952603840398064055357846051900894561694533030109387773453677393483983597372086752752994195724978438014832151120544904488569307925557081100455155348028208719662725747042176118747689079143168011093101391332260546530146760028463916683548166451089701054646948072497386460305901428501189510068895883821193476544787129430793943579016283390494604046251833445880775432219108214869444006745542558677886028700339445326158587890896683380254983697786128798473415422000837967939281065122817325017251862487268327646271844445187913762836457482909732217042746679523924938175876005174539129742435868984160278792539664207885509870180888593658118691678228831617566413880567393891969253817924080002321255958886083648900560282423220945994592548479653984136492607202075554923451972906304576374052422912507060050058499584582097288913286249470367364690973871592763001998117479385104262019957968416552655620688449039596476180208953630819908695384076659109091554907885825389501945255280277536150110120645719594403005523643595835105315972353249183034098138888181048162989547652381805548593627787302615647312674959736571760018292427109457586030507128291036501886524104780267529705943879954366492484863008074001329417868651421633636528575639417482873817068459744383247548934442891183046154904636902535848525371254477755975445586493233022378276248340385871583735955199738904349344414936884225328444587147131713370854906350200554071350970427562131051235129645595680032155984846992484654460227278428737759703977271617910195455384143656362628732658385319397606279696807845580180279081399624241216459135490171187466819293249209656540432325601841613568191030848587243890758916809997017750226691864313649203383041934100898538143480201419449345005796287396125986686444498521856906463196870856967590482123455906924858954474973255233752442175144470638552278493502608892657062840035217292247655249257969484636792794346163385415866759504420365959541627442608054118456973825793737365816290542977314421237235535410596618712190746292361847067602434664117054131145721962784432445794799451751726751581645683556301522827713939438820893491624027378252526556799254852362937337454389584103783007277940504898169647863210810577394058217983216402591273631400440953785672750492805764987449706377866497827856979321411234941333548220855380446262909777058440510143934842627583872042654754150012709889719541391812367147529966263504668115601470836613983631256352438661265972697490021044516720078985012654327602344544550164341906482766585253310158049559626239440904808843261368544934374423071445774778293857711805332526315771030003158819561244262500645242461570142832670104644949771623522342171410513660854294118233126309281969270558829385084568771044568311711067523123275832124495781605519441164931490060717616684661903107468567687129149179689692063401300830439400601853259716527186888855050658598278870453557294517366857379924763850380888521651266958900956712624665454928827917326267371815541096017122502327312263172083721153144400591130189158992504803240528439310997331834563926863066017964872418300066522655995278053944370352513155625552073415397197359925163085119563665685433155082582429571846680879071288064267886251497525455466166517432325044412806829146926083372377680374913112893323722153913608741763956714633670169588357772248453680913037796257789010866144661180692183896894223524362424175960772199644347870877218959471997894730087300239894157443979046248276124072128859802537890380051908371587953197850347167859456304924122597901069344124850242790600294800275088090860445097261613083035228424522590109624750335396458247016198368840490211516396946611015284118769691186828701617141257669343626271834865254970541624973570579514398001722952001340163166637939712119249941902059296525245041649294608289546127934445977569737233025817448320934393738183098351746207019118447514354099443671495440457395064875335765926715443356804159942970956080308043808478169601387440208079279861850219628292110113592350627688185930017559593515419721772245236249150585484272696466427226338761833761856858848060181222070208613898011780767410357633873105781248786204355504275207917354392417050666497199535679733775627029636883689047718190545406003150495329912430513972395043924628675813909622061494255082035493227684063896615696444779947010197478807315287795018031376676909769065077827552459112645634371324209218195389225611064125860792414360087280930734903533480866395955267690582420445947977297357543517596926962802962292606625693305195997918893296828062814569773357999688173442914219925578723517633697968655965139328483394175769913100686604327644147234457378934659100804004031723027596784661521416107377340520639661042807995357474218875981842171042229649928791812874028628296488716506956463979367701838989306132539134095745883713909935674835820295016829664998539439708867893789214283336208535656527133183787903404038150850826327824808845329354419972740384371876698929941435257071404225633467312488156675701312582578527078159422914284050515279903836563265969203380662320332082601467632512660239126707047758718016996851580542142900162041322697071960993772238479157939894568904797551240385094859878254726463876024136152637344064856785585250365976896297758788196910763533288144665528915780257661536040553205702905481117985273805170375382061125009126786974192812097709783150926144313570824920255465297380154711457664258771069819493512552639188154832783174641505993170507663638001378042258202400252279675496763491806158162286685850801461335630516830159574438675181381333194248244733082735885185359633405025420330288224888787595552585452021254140701949352578808003804295150267164967189850119872870551698112275714384522423166686322711783841620658612959354231016808502086625593306297090755569221164816447789983433933660475396218752516499211289283833361011500829161669755049411470000489922208275642388332509725216497489039784603390402841852654094138381413655466263557877261411927758283935948213253275972707309040578296371303084788752424160681179217901504447365047604143914691490571199883955185623926056436884055721385249816774456079146867786879195830853895914554433879603584530538285927936435012453990769116190473465153532486965765329701804872436098943251150022756353079848880201949808509195563482399573022580681126359629806411092873596792264185361295462679350814360753550076449426662475194777608008372001081234021223314344864953206938688773436472959792950759469790655180605943170027356696891673874319586704595942907205497553259724861939914319405765950984742578213007245319570761167473507813550972529033523538472107852316749227791498325685935954374227046752805073129117730526169929529954781925446253847680834999514640265081893244898455531637048390794805054831327795452611371350648750878944786578677304078586101210660432303849053488198796351255344928594618354830962547960251943621655656565925243815229856713632705939244492586263009980448166724243107008149735077487575730156671052612289820269164974533937905306242530528492173032447154727484142159120548247796211677571696150515027169466763673701989294151421146991559997008294491734861296340236876733083176901086419373931831766701623355287209393498645975780036536982096527241160430383015426946196359091031672660905589608083769547601935689024475452598687911650563369707448560552887784429932990657392116419265079469933604821422098190038796556484257360550939443388175506421330709745485804757044399259672296067227917629436569324398201651372771693724160610888546365164680536956409990191144355141549320173730973518771658476729221282716696927860340454222555393316849309980309217069370111972512010282303810907096099914582481558272209639804380687426813326048647637202633896063179451925461563294595192608515015557988035053533053574638041798361271243811925682219095983441294584443271523565398954470940781625704798490040448530244038184424710776087058230125811704870858209279828715319612732903054345715879146462967290189242329076134930983722164253703072247806276371447664249144920973663554583468409755618257983799156899982102490193042634816991839582124736679182494230938682358575285672397858137459566512859893817570240774798228919535955322786633695132090296301049731383905594991098530151499435420320299005885821763732751805164913453151481889639161715278370431074638586766289078640838665658670060590585779158442168925544997142989931320303106398738326015164072352161584852647120646522087025660147906741727775780050488129123695915176393627095364420896240702395893398710893197225763814447877577825059025922236641992114367068607928287472139295866592050365341632379477490875911194372069759924949875089325169166769805888666383599776807864947441512423211529422550912118524288338825666979469991211525621792260363309376921859754000876914765287894627776018013093301773926261909529870060267145057939152085842386974764697977175449143469489447160296899666317834891306429095859257279828514217691999166976968387243095430205973424732342860537873470257270293312162963616219477953040319594779104890601471894286139749667328790582108420219413089692015299211467019769305483196389866809663082651807325561520251441016705441683928176695206006129140083646973301806227180877704744214214643234388131178264611303580283917651860731141658809524711576189641628536154384775866963471761189965247559143851638390292538141740124480166396366493334894180893486823780347257984802308891671603107760257180537379724119080497071423590375111954630935373546726373316840709081473313075725157379517600895848630209181332508030627261427294999289304981164989366552817461408143720178932136970750376202608064757822199188300870502698078539061402623243090464641454163326667154723888696992313374413185139018384891955827261030247924152194420655392880359406229356641020121790650689356283156471066520050934064305410890477453763641764537646144731387656737859938097718082851071489913828103419374025691170432398683228111172406636990585075002350350358299894985335302491060763736393329101940277608100086555550322677848788865353007456121006211542300625215139461604428231509740075264393823982033798815527921741633571798138076476321246902814717129366577159843682790636835959854562003441714135503557490646443985983853962461161461776589216230154255825478357380392843287684945839056117311939098170740239630990335264258703371160750562402868001972659266681696228997302018877044896323383458152513358179019606581417821983178003877170438617738286054450948134416708034707813941000870680511628648605616590226850191933333935142297961414524918352755232112894784303209057097622232585547672597156036707862671862893553989685412170225809388734893223533490996741401234048936590124968041025487224281586335574304369470620653628612453306094153120256153784800949680596212367063944016719540990387369143581024944658008402041279807362033554972199492850499125264252245094017629509005821573214742038977945534440366647944483843812883737353532327027043922765159831097858035532105437671454768927739940774854832677713222874786594412789901863082550385360181609545515487101018757452103435630549726291577713620277761698698865595472573459002384228306831360506622409715398540952259943849560565374833064002831054838286396654870916144803277924788211458406660264992088052400703958085282750054334594635081679246230437304291635829096413717675185580669783433884974137653585081258594746015301925911458294699613274293493029291431317580411034821106958403471966680555511938803146227438603086785620371562310084194072207827564665389475626724557949034862965782072897860330232170583211130090366700604897794726039680687743759901538779418443822312324106470298971717323876072409274970441799445007546408032223063805414094669379602931582859560240872476309543027088925498498708070278988056066418284394085546460528083489651868479604966722675218199670380190126731583343960631942266416637321977473406544554768050892609680460262860873379587285976869329826386618565101036856861387566198339506722548143959764055179806621526685671480789274196717211709126327543359993000929949278698718247021061546693120822240861276116040692159148030490556962291017553830129417544374792463955044848551955817469346258430482207592686898397657480602735358797803727078527075402333641407697227602392173069830651360233356905704290648834439270631607518094157361346031144922895841443334267647980655599032816299731021468897675038103581884254420683838523450619499951398887891066687133177650300839865273956297922434766344438073220272730556582171432051582232731173527310828648025367698071270928397615376311167562774231748395356173530693264663220516276012172946540477053809380418487667982130317368228931667719276917557293189008295890856187933811621477176436687600477992423975038955786583761538680978976631569714381497273428869938579786228878627897191441470953572075180280786944892046970208251532046804756883415344552934149017766695101281096833628862376602947860228918046584971847758925342193126064620346511289696766379194662690092080822599723585829845719864192537818669937361904198284119358301305576397474721287914712996354112625176450700441614321435871671799278680399628061739027563159953343022001649859352015619320947830679894834678116765117852277312043259186475297700136531376350745067748382855478558301428918891305877826660808135181496680524895504880091984934965724753265922236068773380933573356953974726108577524642675277782187245580513595709408825950551111109406334551977497051282378226285380074768777736283128819401160986521629710814065111705842361284943922372152652610868760682447664756275134634969852717174686638502316410492160564704857600946063974462190572968809017107016676168594203704799062323377558623253109154071577260093508782951102103826045508852889903049971484724481223159620284989032886553720828194627956564466288989207383655249959932677022923921125032791711334340027255507818542420463256356338625715601626650340625137405788403844900497340025846894484834881183034413396458135458070263903679022678949819762551821942326745490830107766937589028541230602826325554544218092282039862776648043767003975082185038495175966487640084366166476629957604555976992496589584019725759907884376383472998750534976696244604759838479088174378484274850390413163422281253332217533066762974598187801881910438044319550802822910623616149899160173326518876147318349210430724862187508135840293517777716634084990802742813495176174511939673218943710064739687642120490819988734462339545140180902228216931358677656894556365751460748777356424672488142882283438677906729302288802374316728381059840877781814144514437211629662835302747343561384067578274286885692671235374766271482153201437730574601263616835387735659218826724600368041762866933895921655672183690660591610320036150572656805711704675334642464616412321451892700116759502566940027213369752362000020041331408565327307947977743293014961940800960724692390851608336898093888513704198275207151621424678078609851665449508062132232463289162611635066049166248992616902564777060700077702170695143448948020379306666726783774626975617494917306529978573100626996481630664630248714948063189479206202024000311598413075292343700201003534289877874612726810431493406870833094257927187962923000931081450746124248292988371277541861054044871563080473533073944972382089990427229249224008760797237722444907030816862349449227222990743989458815001756448167984587001629079428645773116878125636657804509493328166664811837048173150818751965130538820899277651160566315370570981181471734745589432509924320571358616327794794802263781103088747684640902891511057393697029439174355952157809962821088825291928828662947719954638954989606509210516402603041345727259377307900513897449528450534083371384334004414444143900496746592802155862497815493765193294451328724809382008528157910857102361152574666438791471476350614921106263463028878824981752110413374588031891554032745054945003941168862933198444513890953557875265834133036723220510539825347538082217775760228664081946842055256314981338662039480948159342782784670904593454363460624905066906098876841236884020824286976303906384306661051816964035287248878034862141918173834370399268353927646395907672147774987334679232071492069209273045416428347095402526722187969554530639234439687460028335655725116261806073114329071720914904681292020489504762496146273967079833120423057644783170061127882295062635958460122384818311684558423589053367847385275834002013467745994016819941281050192793554506062465558692569007389933671090774655893714132043660402270834916576709786344325218320024821093064154209388637408775381383261503925308340933688623347114519529113082920263300389308822930019255840209617219645500186647855318664818623753930963645686472864840998744687463356709062160145121506028149691921469130208840568121939242274606946008308579185380190844587706067476943049866756374730160514821566870065368269626217517366704564025380123183942151711695493718303329393520048509469470810612254028470346483695024969640732057288486507525897557514872617574009464365798828086534116113620174657485946537808402627618521034328982331647170828803351486918779897506504486192822181881200203182357167139897059229750246130750061096611274125300302622752424316442731183196923885796632070403958457068893338364314315045588981233513831534560424213214070642533566286783984916608866386418172688871092750805646743228007777820993662916087487902308469212046814163676661776200480366306855154309272472600870815756216149797137167943160434067545830545555173051825944361179709904205213820902274362173817948875377137816670474028399897653525969661654288140718864342411402668863588143993603902225681933382962085611378484396463897188576782944012284806692895481911632664554244370884105390629069981061090274881757161044907387294609101720593808090838701137107767412535822377358335431372751974181525487742296075431713081143179723644717894512455513268620576464290524979382895993731454467864180300171888764345423921127518003109484959461508962576487421852808825435503160884829367069108408250752979557560040173673054139905137804505840743060051170739927154154844663605310423617529062267624990021191314498337917046959942257426721819638416842327783351698117007293832462589119622053875100159164107116791676677175929693861608211603817154465597508299487999834465352325349306279319849656883681757442936111663193182352382057627715066356780962242852916685963267537587982293021292620573185845002921654536993699357441960164190488665179769097844770650762611711066411889465185250274160253077600358376253054969190975705757502757189178779531255730425817969837104257458105548307729066031449355097514641849558848406463417628112637032996008666240408065355466157210388219253212552053270019181521037696141692618612549322404474370231256361006472728489715073633314510839909394241826156595254756680195245283827395171736600233613651466345980785791611054794310976159807214837483652175976133588415381431692230108427728276473928527414518090381710045642670814346622045857689508352118448961143386155823476194355831826119942820957551163358544708739645754837090459900310396899420720863743341735039459968998724126449845252784912031335049825897615369098735986033592871551497813615689346841123083907730260470983056637468534291371648360070339158242788459747090683652455343105118968866823303608887013529922543016409394196820184307961122145225307780663696153029354286676219418471510444445750842773305873239743573368351918878198364651387549110669501946781442299051505943053449628538275202314101713743232480370384990209973911610486928212460718917445712464267642347752698860974863242717211972986433695588762468096019589096198594323679321056830313417409853174743052230398339835693536171611235120688112573774232845208984674847078848339003171477122130337294782448552056979606534122767549576897383845586036373864675029034289437847019779257758916548915547871982607406306664045960247810992631427506140079148326916033363875822608667098641747305202759097295088688473513503771463912063380920158788196606613754162185641209885478433131925625944785695383039358047927511920793491012355773051585743634556999746731458172103626246614941356977522475219160084372829508396916930259721421667542532189427893918224181845337581358577399384408966203019795824304543892803237689292602177336104372044205967119344686228566377584634717795589636852052260309028732860073405994209271032565405409265687324273655502453767742514539429669848948610646229143101418753897845982068446855905395709317256796601245867139946562461700460687229975595710737275755403639906359903786614614164928315418865535836442014320939730053815433549504052023590910256500308975708534723720081763112225282918722398340100582864832837970128628690671091928243820172050338296203843659773318467691732784343423582507303767100673833502248619750130834437241940671519650650584683694805868298057433814338127041620135181759636836570737857385309102942508308858344777579590358757684403618706602394475956994329176556259818809870142771188087020164020293905050230790854425508971346328901133993395947981185991955986708353904855272069075951039453911572807784535459608543825639989812369585951864437966551756169991541755946191910769557042811366865233886855216466693098832830038768801511518827011933244615578612823075195510044777948448717887218310889982625565547972815534624511469328437802513780757091474860265723806226421479078973062494990833111264836787615594775563296870929065950207333398441027209852515572885600591010995497318415674940649429785471288859715520025613039725522225235529457725854915264704806401089729745853667554667198502039382634791712770621778650818448185781464212424472310891745123213430762049002885874454150376080749025173382270734040335271047020324467010663109895791249865497633858024033694067172595621548454370523887106509015930563958212018329570138324456750770734967572535772590244991849598982906696260340806420131684770469341153362639726974846192648335322536894252430567907607887104148259022581598355182255350238311770081763319460328690255767687238399283095579419984633872716996506878935105205217700766222126206768566560858222051089998890972501443103325703670456516805498307150382042478538481888822055158365192626063594719514847364352811210694355534387631459650921616354138411680739060978056448272541718879308558527063173410832999133294478867209623257210611546263547483614327251255384912641960764649910633277873027178937781706078747146610640754081058442126432044237739345025420914759241404233706970657023237204318651146029410471901405697264780339941587875752367760970335011108830354098864657533292354673574860894387670221514633586226628166644479661907991211645263198998741219671291469404365665658163199168824390533782538387683641761681961459702028960087708446414633024208417650007436112044562892110695191398407330276930672974268129110293704781116139394317747546285910116423706765910486750144047557275479522568198333310700979339745166210139068068315739370017506021238425659243085435168935471628071798456923072998330188217182780604921297102708284323678926079711678133298134077380496729184033609061678422188621572468710579632512813286522008703923391732756185062072641516677423914545921102239924740604465659763775824045582311235408874600435065205393820285854421165668689715204129694099843579769222343726522524095560441285065299142467023820079602568829908296655325717192689995169067921557937556857007635658278365333397136135518497985361211838352797850610254867464401505192708956603774773922240111168508583992927284361398559963745564337782618621114777773703803323222690475802621403981804816273440516913876925458424866511349055045995612443220575581693746320311257421029244682259294826820626570968678176656236953822957031522730260773381430837953563187879236811161345971178363705329374296846012129909674121626608322741324764586086149008588047214745596976761339217763584075337843254252962307859797400469458952523734931826240390244196566274851591817541850061134326533226081496527925250646411437775319940475078001101946779138556896325027412872683125903017240452646657216641221172121984868550394075087252524945692467011328943148747996980624363022911690016211842644345062435447694670627080850204454322888336133000422639831493752082239836709710152311280720469924105222409251625745916636227301793646031455725866000279824144405560677010793105496416933272693987783468852023535738589726394709945093764390386699002245589150803122695143119270238188876499821069662482008907036053795748306230740456988220914234923921439097095401119374925961434431018997949832215489534385821598254020744578493264006320071826449908669991732201609353036436247190786285603248331730773584527068646679030967138424485416276219550107890068660568717614691683602757813048872144909776526123816040265575356430712913282097236289456712050819992738291877676787472402461543490367371416341950685989834101016564791634994031581073448222160834749614676002545537474738197275835746012230934113622704201087579627460419292663514101484874878034425710673300000481843925744620557662083335240190844446503896528806707424127404540048518051010593443370641221570968485999790449882227179783288929957128125846148346492761924623974118693971907709513803608987336399442412978379605416966416939972700254884789036769873083659889047791440395826680902375685179758960629738254457512364564484230377796933188861907835379548995452508149123471951501888944555852379984592027036230679010309582855583391437316655652952269226877302313167795030097003912127067278261213965266153718583196097744518276571919965579206507714521917659568763450708453019432656400788104254835010368636968280713140064890122335870675662444354550618569963001695408841370671071913367900378574099177008334750942072162223898956182497071879831762258820632021957743629877833957245743135546516312542788618448086424747701514383095770806888365748379819127339935237994076162098864818903541513776160353184147287605022351346151661627060160713785001541345341879498567087342745344483576754376542292449899982907609622637142415042898854503451858054349743522161138846023057125209391722915931802392202055732983404033309607279225519483486311200422837587495160114163919167628492836622465992272817643503154029432101865293071725290744997112843619653187968839412757376561043462022957020764607414910718103695685144385946561395211243503705956395737173825581342614422853658843499883581361751311332397610654951305909453114395227063775829238299442020904923430629797250482039955770941230797356232710936755576786168706347338240368359383352624165837903495999088760337393853167216981936728477865764099018832336881974112146858556503307866831674721868391210048146730019674424960832735458130923051450312629133239466795206722060053728409143368629967288938234498905834724759409461772038285863663653796607325715919828995850937667339294843197931312172127007124835716026548192439641415661473388895998794872383324467821104883762588104341388940028363029414991619437487651395638519583608510046719182725151550763617030011539120164976251236275751181905682948827443434966410020354806785007829215376269589883474355034691432576144784518926604071796664323635577316056870688293783028356961536557745357115697752797202302198751209553730064671924387943414876269542339322166430124655560406730849125433649889242994079290984749537579474109901219266030128878675093344618757682546892425187633759963440603991279756115289679115147952891969141984161947494454752602334392941939505096708576335708136858684440624446467661078676487950732049841368885606301220669047946771259008395572572957268556152468894984539601437829650999687777785408131676607470454665854814530182642009014532068221890613828792029540415507527020301034388607029159298103936772454318332449161036111819467905910448060520608323728792744333585452154386820320616629452937773056966026474638483624098343739910683150621583637832338676048485817872513133655009920596767951419539498920642913953165410731254075829495225546753514378602008179768276051155030462601654387023472794701297853191326758866207018031019527031707744923317974650654685802596441152172297011717565125721779331677650192270321295984935687605745980783411544860200021364090545674797101795482267899135371247229626335140290526036490932796892676155519732703053339813891303134305142829530843500459417661631018160449446852469379939332428993556148083385477237511694184518189662120693834170171053713601634434865878393351132679000752574814844733350201923848907949522775037658153576917056544906693432356153346894095675662487389576664057487133083211749929384780625644701721925366799261754131410703271817526228284550967863192563744579948092356760399896930977578642705749826913819582529329357233250326473417842955397828640472853742410712225348913240099020069799331498991272853659569890326458795733067254389889055199134204523006675326048794235279511837097486633219714442562331341038020291879909755578020410513533035553270189901323542716711610430928776967099417095796194851711461228186600389907508670934570256369644677575880850173071130735079598604122686749219478356298417255866642572491370174387501080262672985302249649349384857105979835077655844083182051537389897970516410874130949111805556497879561351508936088765486511053062750018008867533471340040337973102183140558488693450229413384792623484923263509266911224020000997318647885992605460676660134044918809614156359235956338835740828839108408993158267612264227819103557387192704648867318525358926331187190952455654159267393583619664848108250061089991880607573760328816074989692692666036755270244960740932587402854360443064088927366068666531607365016915286590969666706782569208809371319387033310472487084375322732929833451141676391216913079946205638588434095927920856269215765840321634503572225567734644711190452746984684498250583272343515853174255550081288117089166439612814865164996700971682130716483552867688470335496132732155671921360722538270127196548492966782252199921151282812459877751697170889252411988322314939566359282750767304018935021363794821495361936934722743477622589017629032817723284006578543347252410799887331388715404669897541776319045380595317561118828766646461330385110470326750226331129323658738478347298002754185496884725430307086971970555683749700826865614372953525631679772989787942505029955157686461117654820293649389483439201622623428673381244001050598174622195161652335772538252368559933228330710993287383562993618763986377718290363048627763460918470277547670062142758425864978665686321178906739912668886312855503634557383013874009539284009749473607132468884877694973569651288689927965959823929914371611376354231805464311146637995270284215456443988359607647950699136676942273075080526968265958309068921831663135119264725789080330493965236035026473283080438236740179014032069355976217976282764418458673029053658099838348674868779028446185226417441047133072730593361801534837272455631342080509819054866481293536858964011175776687442471323298416013633102727346221404228305581672348799214468809340314473366927878052249858026754611715003359002998790428654398540407923426234455138824511073425924012648417984624176797244140034578026894929929477074660491541987238710448249450596911881120501791130622034055633554367421473830783443652335317357546709469599001110432887368589798577941308689722418081463683427635246043297263258974338696682116451803415979814670602925475336283822002309419766449091225380468640772892689312554993997969268838216178755468210804511649277381813560731428249368674486296188271898675431401560213498693595662280375648208960496092114411385498815853629556473825438087273584437366868663572548382615627073586790552247133933050089347374760973393921120609908978920203847070302089140511706229530883840817512390387534229533391949503450574155528112235826369832208835754176386519546474536942952134358448916270822980976716509277429814596068040814279493550363207958157129680761773390762605148015969528151480826701656970715498371489698664466604334556428831134298837875431300797988527758610529366596381833372629784300014690891709242679052127826071731779586215622430804122393556602312546009375821735072637563446696304247711720079672964432799619031481633998089967052160217731641267556800310652935440015271781897147679005384701088714712169834808298320977491749436950496200666492725136194950422191652676767446792352073428096665596713746066816766828955387553691049072994174339587188059136262941093749776263419848162805806410583619246398078133795870810080903610041045476681587857378094236806369257800864625631646654662048701207858182715427603976437022541492640092767509854570229631764606421336196348549277558574948076911037147131459273425277863934657195126742014992757965081800908289266629854240660356616204124979663039531808094583135339325392627208969188000661711307465088964795151873744746258950328367879666418909131127388456272753616841586084652961592558617649494662159315782343974384107321066880556256765921253137695824588698326050587379481299997998926094338985877067519790248622452349130707827708511994872565709696582253636881824965440691298271529086484603084000188461906769118171267352863940094859036510778611937080106974579355301432055262866051947043248731102418088857469295778654006562721726043219489551182006661082833212317365034360366515312832769686781284395371126430441235526765094767486594819053462204873161683921446163874587063970144650299100424791250608934156315757714655692311133815442059673921571057076812229446732263113826663927768493615264012128037260415739528780314580443624464562969871215892012283759788505615929258614288645343064145237711772305503837224719545332440137535849151406579134915006185284138902779814453355453223733410466420486144658753388839206519463087230367100643073493398194971950730533999418422468691360905857658498868277105489975575969111221520777069354076470495261940352748433143613952668545865560714830726625803018323523600884649824919797822763088778026182860234604652856073815423553897887202562337299257271698445456032750394233959490000535427744631920096982517875061016711962610044550514291023974805721960858358058230252524134539855473193577131560037209867077899812766836300603183112978487391195319149100149015771001443619241058963297734104305509655165362542753018233386844167250500597312857598107866015012080145682271045828573974975544128813188866166447964773914602751800673217303132124083461756203522617703119025012431086705840637019987723745076179186496008822588599671230464692885636594084265085148182206272692821207897624310050648260639945516299105377744389410089843336155870723034948759807440495042956291994591713866619299864319424159886611161528760766797149123120362967571001867040446757563385225559513123134055589601857585423885511646991016484235736190248900657815940001355044535113633882879684787106132539304698364052011367902458655381226565795760839718585288500359674215401385788286241224171930454984521192304701286687294703122986884735196195641944765498899147863751028717222260055491979204211884759082888060512844718719228178053874951095257494090303481204877281936135205924571589937567109005949313853873186199302958561544687673018828913854661302622290467999935754865399903794881576689739118789312329106453578174921928058879791620010068534050682796821942249240781534730659859259392044469137111424840198394327484402329884759569724992201076659985422096710241553666047075221110208400915898482259526946571469531259847416265178710121422915043303719128896390147657456720470695114002339102843856968941805839047897021053610611612243366768686625063681856158877326188787985773187531747039130122606139832358295662614649199987056276971493567390567478994690137039568937097695437005412492732529416754524086760554524402059390095683433606241161709837965599662193530198104569459002062323797328848689515173125605698897016474903184362642414706724194431305306719283288598689193758319437500470938002193780430234948354197334966893906168014422827420438723944202931147091437241033248324224103579297514229890827202019613544613718533137071464213598006377486402545972521941688402106130147558064092342380414382560441537930923797003270784534196984866248896154327153937642112041403753520873639095571117372346751218618377598120620814525026712964310838975525230771520645504761239117212548337499622424164118305934750788168569358017219478018937919435262681239203292435772060382140511482685063544938437643326086477307332398223385714691581159732584860117655793994854004546321650457231165212898569735046265289365425198855017826166857350239485354591091205839494637284689847108909638085259659451964704939713406229760253514916887172874739955983672850784458032283803771683952894252661607462697552490926516691950667290435617107997034483928060501108703579044737173106602895934659031856938246434611677876868435603609833264689019146215215699636680126564271876450460969708575098444729574353060168593270497836818777686350589320360573968048246653015669957228101341026179781798171501451424145090077528699160486835256010245179432117608715169990646681481818495086694128151675299563295986676236432737735870332937492418666140748153383369720511055843218958435896719702891057718469727054835300868356541819289932763592883410767269550721075734868602032471881926998423046050197527945755448844970206254892556804059676850348373635531946198936883788996187721076481475300529938856936235892363300735929135420746460084466224285295500039969868044604824699167815408053366005415258003207090407472075361898508494537249564717817367424709444218310569061678260440589863071070934202069872028739650913783451373432689467262507206677042329556068684187868923812818794059026921653199125714377147196560979814521711870167545846945204264786739087185432048785791717601343106166260656095075922962370152565761832093050930547489974965481267394887968364488456930221026377773030703328112534846477169337967964700043541230779582707294065631493283595009158397612620360179330543565400235520260393126843279808336364084737541128003680592546606617247854391933461586474228438024655212653774448543638547108978535936497238208029286917959979552361994277911380765088638452628932167734064489310421004884395656994410661499377717779369790951285158652279739279771117467564744580966816960267855225757270871125098196674163497939786512005926052066121853764080020895267920171658320625935022067861307998719968200043705119891432423883513317464168278436268286029915453792485960388803839571516025224449841513287636191948570154266338347748934971153080350962872822302448722005456809768030380210638475918966378424414225947766485429121167162830469278855953137719484895730122088087686461578376919336778844844477522550120218800672043202953450388441687458154036356551096521989503408284534792526189799563605224832049719539764516965917177600579843209927887302572888275210564929757570608953310137820228887833329053499022810408593121915542000509128580396661820508545251153119829755357100180606092584541552552788349145447782178590670698480455178380479534041099711520485208199212250128440705862866193462696799927907308043893697418854195279182173890551490205676812328184229094979217559277024056220873517363734879870331677831851212831731635215631887686564617845996093390543343999831771603044659522636232146657319551517790782107068902186505547063804864130350861509299892173468071805168855734579143146264565399531343349408412055595884563124943181177281808064123382367326297804206773109992051567045439674107746810875714706334655772790548422552628503578363943937506399235312242325178305573837232703948810929880069172707999782067196922408488058124512861109391145733632731861598623584485454633594857571710092115164449974521074563740586028907002615590681618751805840000976443949403604319087292969916422246864797275159922705678723881446700112902104251543031850625077757335658937023726781451845579571195051366379125450465514185899715069563979373822973927727443450458582915262762088889909243097205633573173424594677873052139593199129720914836015082119960481551887130411314122154768291960538681546508151841520767128201855982994424149906043514117222480552032882308191874684366064135331945523904838830168919984140096465489668490591729836800615228138719824006169171552674786932537209300471631526729303604003712495406528234563304352426068149446820579340228893546233750319909501359940947355410327340383952754993540282745416174343779645791176446509234026118115012414657595871993760980227144849637842041397976197193356490075842005771367898496178116773276670292045177491362797886157166690826820719441262284456832958102350281619603181353114382585686029244690702846136907052544694469153335099553242609786253968199642917518499951727379985302983274860848780927542877142807803088895965679496818933349350277716010124843921158447878434370876873848081819751126582835380610891916862699096947930483470072888078804238158569466245791922679830851009688318120307073510848954428882602490964747166020045433125551065285697648568111470526440783292888944332063914002674608503297988489554928811184407884125331498379455857809198226676653257825364293552421757440708789168108375148399111255388376357180970544756077984992718602166303156806702741966627608295592572249038349625524101775301708079222645165407431263614370056844894046593863647403327757885331519506568652422712830457524349348067020677440130004426428129425974075011734307231463442008154499872471350030592177195506009437987819336333047599401420354648258706964804695621461544824464238874836364951835073022864550084606429362188471148098882783151026540310512503734205217566043801960898194643932137423742686882792904430244012758802819705252615027512692991057741578383940807294590097860801914852730934266950026716560639466152273680453485423239968120435580034053928059772025566529925072096440088504573281075536487278398434499791576099392732070673194345442075732024397098007547138049528323680620135158931876635805418755781283830451186147882165764691696933343227076866762729189668102881794960184908040997750570087917655885858266475958427372783255564974096561861770248367869958088725275623133056678815633719723246861628559129981353437329469033825973495462693682103685169437962528086284202440910262331742427335675316840872345380026555567833267948527153241703988972126031282719732181333860367265515247681909981771979593458853063748490725234280017582457910046698832434697725195920752413702585233370927902725844607607396586109182717435603422815679804629918079252709797767057863317521912124003265097592061314209480764027231871729372378652693386935130756592310561519123882695630252052669803163352200168962793317902633338701674474461818828947564358555956868995131984710966974639451375541815646625379943451326072663476230972214082703947795671287682833455612657162222883035941622628991802494804243797532759296396122056938764690266538090873546749013143275571385879922895824961904271691678318865664773839685256734844656387596294831983583883486631464040219991455139887406452034825765335906195172518354360449965315322031403950325796097419616494146163539191887165830154762018544138586872274439066984493147402158273108258326954320006641153868081142896124042818788488915288386585295382828897222739487918117780848348996919562051155598819127655676465634483892441878132533493253768503078705587651981085278698833632420898728955222338329083968424938762879923676291934666507207816798030187518390769828648123470171947032474460261303960711902875483292537360277441879405841504393179076466201565070693060433087509277786912692124874275500680917771004154226112089624720809819922970190588050263865267838168671240682744867362690296943826513831838968635268518285164424388421318886434695081141182498525512546997290262619820432830391098203529351041980671863953995476746607029291726199952341654881042915247636922744894255568395780925669775367648340623161733326191286956573912749548514192934484068412168914654478246265095843074745690351581730655964242894605236124716852122096636105124192045215588064340926518974693801144510172584474245437480710527458400190358820145796365721777012748456765488771499123879478417959359857333718021189405686721708586159854056240008017106147616755208903093495143705627272247392762679869183619305744315477225346792473911691039272033134063529247833509595901283904783089888983146790024481622799858409734260356413696478744233026169771698083323787164629690976826403728101205134279429847672422266040487065702888934779346903559954607110100607033599303047054054844967731482944625879597397339300370275904163812758359979989020893166534101046682777739293551261298883059991382617842822127621684771046371931678672561099929951251249579127768765300981330397022266421412551216747362534174326974711234579981826750408375191525598387707440414429916453860847992145526088406546987654510457351544837445946091360373557785345939145589711809120630388541484818304675149097743788862183924255409696772594881012607288150287031604511030390078762651829382588649167224578145599921403131867163414097842206111962872199392507673142776098193171736520710228114675521631026241092639532598205823833363938389891284990188111343622042178670249637682632096613211967380788161042413636279383109763066547853369701887017642694873630637696815984802114808812845037289515037180009048508847063082754690155645241796704880903129425758837032380978129051948585336763605958049059641129135127653231226030513044200323452421183594490213686070475968820049751956329120472990334904983422870226956622169040048650810844663176297572056767808745481705699874399268709008100076985337674271598144436116866121602415492242911437479095122346228419866278264291723756082467750959705925332597234575437698664843948376311781852218266707213549958038127873807370828527926472710125143242288719126571467536183191277590866706167732575622584797772800077121209554091187955798573504115536867741622954792269824110342976568608704902097124913398383891417753469772212870888940764597945572926441675390739771945935008968569243552168392954143389054262431608838371251213059542855476383260301603701277762040574562368688964147562940205626908374873031762051470514960283052319171262654236373135088384926745259489489124308950853906467644412682672006134265970204368376947942686715622012379476165711151464345758041879701930850846509420414641494161207567895397525451811073838528219415325698613542388844328276234239314213006042897701334954858570786446353245601090328180252938194276654294280840410046964997885367573731447653914364326468272830328839182948480747060111666446706708394747229886106464296266638122953331724774183004962969155896626351327340124536896477788185962868258368944592613167107494925374814400259886644467456475554037911725314728328346899978262503360443216662247433724441239949957028092103219114942752433709750910984005832783008833633267515685060598102402009924900135489128334514394304052740083723470522477237768435895002569090070743688711584141839217637291808908140014948475983754489348587100720333502313427766388277699394561795108856326111782059697951469799649576365057066004107290041785782351018298780947030883467995802321278205402663085422379739715356025718276343184388499840059910863431507982529423300705861632776263633547616518906350512916331393760786915988102816445425358406099703210738218597883774955988261680466796203649245976743740881499846843847646180520391125747272342740821557942887292957439833311920668167112646074130464413258931365574275750110781465807474966089138222763413906541029989842743993712917903061837551142272363729641418649553844788393815687482108488871492173020180799911969129649110226292598038374108251597161506487667506491013462310751741851704706276989315131639750804899981202633184161424153053072684447840823326544009333985976120190223131878335323911705637887652481906861027465641647735237612382673491667670968979863292550250703202725369282090721070562230654081506205090217078533336630043202613212592273873229923680769728793904818644340288494194345870175176078165930221572650817789136640654851412310872535164531988165944194444308346126708403070272198785946690290498168365465514232541833412439762198447823444998983597382010934428802693713094520833096697631634804831449497247332960297006836716435673132957107298168332771507924624162264534189937985430018949889198958890565005101289048346765624208089498648727638756023709642075691180438102323668983310673406628412894865596208333450948036266719613987786090692493453393274958205753138580925777940736898854633183229198500385354170074407872274955751448078096510969718473970391952257981556621929525557196380315990787597897792633623801528373946629328457424969932291334459554504577953158694002199586725195192319632620447315178589123872893947654097761745361825453837272292528454663608708254414052181053025503664843262224802402350336857534530411119859510993058968560502347677435423513688798405104236408047523894329680028101585873468342190592230857429857284203979766444062481888207778631718504442157038725469998846211043590149225819547853932573039669679915210594292644074796494875902928665917300533145786256291566861907127277254757883177332538209241860468362533813620713699990206246096487954863167815486265805457045701897626907922495074492523416930761437909728730482473147033366846199280726548349591806376221000015427666206296700734164860368274350758724058863938353135216452142288538646270658226624543853707005870129452340226921445160774172316922534865590984038536151085960134056004039713039451436282838060740532915386424332989551021643088523227385090134173215420686477962766279239464984327510331593067363997337288596481110156477783188498392477598400444484237760671516197816848004486792926852832358191145322456090286385376716939835661542851524315477990573702116266880818872746813237526693140316769061985459041544293640687186196441581972375080846493525621845729642020307502006611755487177326842754200671995167747634604259055589592194295289160219542020298842829303081309532291095301391078182832610876873324500268073107797905461513372448262779241238016811960450420026927289788913591413528625366980109846303262255011475799023894656781686348791544181178020579866498576175033965859663730217237005126242260910428078749294881800427320238203237055501180148796107348028290712008567358563179328722632903563833290920238142746563742214905166371051281865832988647421555613561858711613207549696083079716203586318108698559959917131592896611304457976526613961588911580807654090170758047635024452042337501272607804165040454064494729564273869719033823275181973850292631566717021889833977351691672068781183200682612459222504888664978152323444328233300185526120885475504633678045264471931235134708589256897094640323320354435918223419220329185303973740244266047076915966445016569040082949718235325547261096104344744912150037197216838817754175366014320462128585799533755551309077110618667608039419509286848608604529706427240031948508855644968357584361814840954542600625928927267308941263918083945323686919838635471140200008082589189298591265600516740421692944063477798588440358339676391153178548073550951902336501850435994374957797752607686231635869864774401413272283181180772927074485571065128405001952452664897090941768236797581673748623668026412684500698490443313430760987845302379308372459137251300404627838425958437206714349512876295524058612906311647203567314332005977065591354429056116902210207501317954128298760004909515565915801495576841111082878117668213483109072040847671038093450071733173077677367544396781883253564925270565803421962618952502168157112195926528983976656343111019565860037240286750269031035148790274444278148145886365864751148344860776390729374624189062975123426049346834613336756531995730065538389900849968973177338637662906360681873403153096790962371813356852902732310095757064675692433143437855281233430052154115701361743763616181657399765276165492637621919612467700643483556065627367289976216799087703378394960383308650979204585964521503049786181285884973367210316902018219657754863866012557569096910470944826173042909152870791916371959132817810484601791171261937777049978326958913204232083209337230945425298670317036397699812810007322307714273477360776510652579788036888847748197758399733552034012423032664463028803264252128743541953497608707457311544584150651525394251832742796228194901540840349361264122021029182149731692582680800112490957080024624857104433099896514729495786432382063282939479162642618927862781175597093828905647294063502408754503832680966837034566183262254071286786053219788162358809723921680411489549161842631824611961203868938468923326044450806442108722549043238954608401838576906212819668708768390056529276505697063055973152554787198006236663148037402992638099138034886881812244398983562962360095555462811367526393724693834233573002126872009677045662905790172207535439268566019331830556334927294342754762967960136509838085797867280210731072145978519275515553648451518839902645904028631947261468971677753822414514481610606761287692820959001540252453834920594404537354127210277475883237822992098047423216189370808525390862271727478472572742964177199919077330920489721150469859085562879660956115795880849336212210318794481050609413353452694729961033746076894958938231106145340297222835557123099989226578447521943836044806176838504307240503266423807737079824880991130650135319675796181600476772461026033773351721969110377182089778966554395679999543779727970513034645779178604135718856296389137910431375230563626507695623104710871257904174541866741648592838078903937113842890227698075803935100540761710314918987748690476265199966895208277249611735702900637218447313137700823717528823067119822725918448319976462921771256725081566209329009939333137530005922605741945852333973164133433148453539015389387344040255622677406243706057239951964315198882009778779792823436572797632464631543962255270297174348195376228284131535329526550529166721540627231269369397176933414299334716524754482945883409257237955239652708262629652558248183694509244945989325601380713138833834154010849036223762165681902912460954668211140989781290917970923564313110998774941144591670435842852786517682415254533516736210349544861731876244712678220927766928916647542959559117394893603103584742933272923847163164118805560740750315495310520426890663286426816594556088080676170347806002817732351103347983590496457993597810096948503054898961486584327747997837193962308477459116665163576488241505118161047595679432221277429406269680962415357079384859200689506109153257099147253569966633318949136924255506723287278768305767512841414336589452854569108794101443548318291364924920092588368379688683884234359173071985775587583627538493621348485882244812280832645692811013786642655227484857745560321793480405696481463851000625801254475137159301654311198859254917044648720667340661091513822411868679356441813207769261680781588985628048010589521316786203846715737816584784071142205287488772969835012550396415957752597268216360537367675777498153201388666531480334563164036612231605558438011965562535249852023001074738015023048154946179478495686844036511155122411290700606952344220222163527574719053139020123790774354583305163925271118845292172474426630502609052809028952972056049500705706494405184724965392856333913963246713911063104967171050728527894257259236071573695445014038963852665887402555758392795793314567513696788097298162295355536648431225537834330515532993678308392253509700440356753011126761743860674928086952615666197765540994338736779183300529846066489831331641689530495469142794853464428892738713819078153759653379841665613658212165131562849803340573218465148285340551071473559676501139245740843883928297378480276430565100291527197722509697988995036135624901188797790066136346024467724524710410537386016306828266718416194139933489452926356679152307635033965581418725401264542810370307955481805611995578815676729795652375852487293984631701983795365949150278789304727102965820022645724716582208038224679160589610132920240555838471496415077042255115705472651386365956509806169240949313673636708320527841448254773156273005337626703683744622194584312482815584194092916092069929548016992386685864512589240198004686862370304384058998903528040677221027225883793595480284363346864693715632917207892215869133163536054017169361297370398795387660575514013259668873852394491694034627073313509427987598902818462761189747998605448697395966497497122025441929529819768533978366258303607795651091174698299917566016605383183005348083162628479934705380088271673895745383460831380118154333999148938647972715519512016167031790021544595255914071210474336948248872303581566017701647666433034997036180905076303828127385135755911323386984110296509773885237984700100897165445947403278818078709101482029545184385184025215189567970572033805430025655284786637329471658319248841290128034794505412542315950707177198757395953161569695301761483438976029813367744152733329758278021759414097016647415339886854295925515727798892780692268572146266554015367650304907725152702414851241449601250755945802533789226365654838217661167768132223368067420542418024302554241603806350267044422412011737414535760144044350471995980309476899394361652914297566773707340744359835003741922946646983274778778311053145613367378770953856637934884957183042150072362447382232815990675977953028117564384468707603339742165553263473655476950326189432201072574390731394384563301108204618662417359780997488183395867821882391929317652040104196964167754781595696343482806916738093484367073243902557221144509348835269155541381058496405139021003965983903552890618244234288916751850365397653005192940900137119766689659512626275126183126151774102682853044678186913962196712892475902324916471021571260407515474371720577089270517024569949068801059084774764335776333732809565016338300854981163222096443900152799422817462308427798247449866865910947454411099138977158806128572747221946680820173722829069051808284638295172852452246210333329622092834334317127675684674316816898158095480419967434392158681191353034998789737449135238080997688368100749342259094041060364395076059378004977306703637154214851320531098930368400680313996035813112172458452356813846452571412776246759555055749603397371523623593692815117840750293894531943871483859809715863974187608508164122350488762527863488943775229368363069402999507061509149402648560027457447788884268547261101678867755413360729335818563945283070117390003767011522308155106519395533096004775084350578637720648354688472509512471079766735739742730546432976294050328002498122974810057869280263756608807650988580834019964316511779774557941332828436384408565717730794809907572713977294419090022918438284153690096971117096253105794638228260487686203868760445234384215222564221077931748628187989854224202262277793208859996315482777561216860796157279774793314018826617418140265131071604326115815287110048517378716291137438377278314189475002246183564459776226257542480500386077626124696035173477943944442653796628861509180496458213239924481316685343769305023669099316465100030279284168689469278482523036009025649028479191318468103180910776931245177140252680731337213092697885323850338187035098929532260099905127651997120930591023739035459159356606649817248648081104145564254254361589607626428880029472822699222057595111657124684801627559813835827773640510703564674057672299906556169383153372910319785817557944838734359499572348742377817782735769948111696528448104510256230544640055576610636124995029390002474784895386849629016911036608095939149833409064512215765081941830883695529239014587300216191096386015641797372485217694832262938395492191317764724011798064208211167561195102310694459445970621944396034308168105634327072237496554659632042001983184545596885938821413005014670888062008594294090036193841791164209654681556183603775487575437984817592560970124041459817660181279490744523871095115199524222852732364319835258286046255012310524858113623970180587132018219286002356406175922271586334216417457819810607931886446102255078529383303065362872191737003497447326628912350309426614444779429037267455822611664975335222892891730158992072717165160902046248329547892689077723101312996908149289036917877568768392261164160303868151689385256464156749705682022586548067299344058144750949280239913707271498440414300493317530225390744484366416573207854733147930302469743406472725189083613853169360234961846243812256226784174821742617797469629110229506835999525343285351031968042626832920146960413608430751882470243294047118134505990252484993476075637865383156728563680652165072599567450802530676118907464319951703151265724293820970556523009314681053273596673120507932625452135857241852141023701668077451786461336585929566832660439080352629501664341249110018522702677673839717794266258670759341678783615583864643299389612941819339109493897504933317428971575968898404849792490961705024395994521556856999787993922769115993828850257858375818499313670836832117708043690756369565436229648423801798119716448751639496138236964541585895834010416661064096877069357458811959033410164257905418998057361166464774203652665582201910317298081587178892767801190790838669760506042102639982740698552874191242932640024449883024936203447259172204071230413778894700639891922279903004889412856990477207656448490102327494907857482510712237223853475972737543767671489952382928729818722980809407251772748744581093475084811260758803293419449598195719099452926135769638306567560381818731411879854560650048536001522963964099440916789873919153045508039204796828148186096289284808869801633919684774269350241583870623392407165285843483269504952733205692710655439497891460659381855387961534587386550411489542042331897863099150756628650901124294201979634790541081836073388054720521628265676199838540671146589483620115214683561590383711104971472891816129097084360650321793300130491800296568650360575181529981357291830152731586265960532571820268875507407689003667296724523702851037424618926438995285559279972463951586788013775087656207615598197865769919282412553015345544574687929475282386757765218604141372676587342124594825238746355993634772444604271493909606970630553876112167866772542004904252728083957444796571824066332584748668813284989300775351584215951040853415757287354219352304893229890367443524450165558973145864619157720427349876254882252575668106982368930600674877400342928032756389326999539330692435946875379174188645259351474672496359495576023970223519016070843651046944014180762860101897425855979029475323834589603960401032288886732600160076428661987840799907749547188168671264351248847367076354531200690883978077177723489667553362214405579605429749838998885963826905904755864512974517077391486536308056587323686177262243463877866832291531973060182308198223959121899195164333825461238847629639757598274190453344752521588443527700516933768190136105837852034908688029225085327672965485383437727934844091208148411957043042123719281636555947499555936926302467136233266297976790201449739181845227572617255001324588365055862088394307516310570166810911590765535376221652432945167074654720079971286188031614106742489157532951220076126148937110789226244911429095976863138584352799398100342111496818373049092055718603905780106606247771196014079299029941509409787956473169140905098454653448396525617046178301253115300661020045906405359718271505937080149393178637682936035572288256470608787002284206627312832160108554623703511287207736530780919936291610848967551066825011214171447705310929933459368326726356200239730383027538325751996853090460159354284980250993307473598778523094335195259579510312151596532464898193108212865946976443398242698662727420762669366436879879666634231927314276998181288775490446180178831162915134293177932465245895334485840458870224963879989378574025262618941401819292357581114512566582633948446300991704180385615743882039940366236586055152775854958619282513718340567719767679558579928138616347896035136133854234803692820241725340790347850808918180362358394435045002453624552686052193891103952936618459036957955112009562495340684390789527636380408368794612080351469035048602078039137950658025669843806160413027303013011488852584082670294907779302920067939861889945097015581167246430114775457226948355425453865387376195505791773752592163999679261038189002480962494536189322806531105808605217325721834358441868006945277665441786956809471831740003654986725670225803178630999900008192731892895108526900080645343265737909117763336988364098045790413609470148818182531124022542419058422342370656355212934069708199195473239769906759883318793346160352540946395631277189012652337626425402313774376179270528025566701614401392798319821297891153644207122776934220575737499669135552260374348045500436272893620518074983202597987683226088136959055660245955819046382728388769893206664295102304550617856010171770555737327386245374317759147468071546697374169375161982353003094877684381075566245183357745613664628107994087816148165790790212363808142006972682494283812104232648371894711702681128923348147078926506553446723029472836617065812582602829538491431070174991842821914207475075569012509537790204216706465562455456490605241731705789793493844243768393444768377368554471240797754673440665137989337950739951527640594498053264405102669606538367178456475087458869531333365036507349041338321012687547844086648088434601341148921773758895503747666511617067057439253578687416517807371152023503885700849156463079983713887760257873994266361407124626159590395207412083359913768221893045888435701207800754837192603428804832078232825576329417250761839987370031194271660271295894105744472135591383459280611673122212098009430845624953853139041950355153637511676583209163823969688773668072880596395999592802347946507670942857531445518622283499885259033195238250052001542780264058874347883786932087517986917693911137865392468683385272376743141555131001640287107412276222148705922491487246527532546175714952941733654649017728926154336525702914904808981243395994479976094978067277892081290241518673086036715044162299523701643129977726148994730911622301995476965317091455237776833512453470926934880140825052159256338363802526073775983856268530473478946822256249156866312376165811274495976487704533872199904919990356873631659430307677321368927928054954147046671217372340557912079437131273972091636763585685510430435855038250275841092669388592013458276944570330726384861240813360877804896511581973221463757474547614337079538045047563060054547384939114215711193816414420767669345262377477197720011635728277317961258746816121187518455612469575798649503274948418139531999534807284742111628234860461544121215311483324125823739083008986535692531401309970403667905019868314701951598350321934188218120481828090127732404328724175427216807272408842609814577495937679820056371157585765783940200885176045753239578924346200209346969236396743412454199646322091779350062853611525963290919582064087646892494807968129972068831481050847784558279027398041333807328730527758125267741906890938305044089615279690157854665881582808657287884704266014684624659306182891273443484443717923678563517724125773965313601229902217574697517420373781412444508849499404803515842223284211009105607495473833355274269109494288746598449461552833962835662711902657522906120952637003814741936609538369819140790446397420195965597771480564296437481240968185707025568722309306056658243673144718248744745359588583037891979069241485941086777074444928758148031976644673707524816732712426032398776822830947807844129474810562348216161351945666228627500965695556205922918581074467957830198568770866368642442400212835680124914224042710074145965575889852125549320313096309492272081668027316108118164062411923523229843768667242226332898162451416754023535497414792724891844998325937474239312953908426630583872804103062700596346629611151188164951358537317707729729912449737677813128451583512725876052722617173153426248917274413411714046786888424387967859535605955178733456786766037093030848102970211888689584565207577245027129203002599329858996150595441542337613872891756821737958543503014147461570357944746585705392712486674839122749408450969201854940462873901167743169228331434770074580387683741652604418353744518752879209412166593728772288071870706259396231845471132226627031292379694470403795140766950180247244784723556179482514683981595725702901282970894053841228404914099011681432529399317745262234279139895432770458231638547852802865558672087878791884972192958280793100870873970469426494831912385858201792067316852948356250039690263708185351425757559624658949808745551345229699863136419656109000045803886641070281887329273121901488696493329114277468223118233170053319242490973560200227905277055250112105794238027919003412404846583669353876029096920526838582494720703240399013179236791536096906441385765242318955559439893019379468215021058325924105786792128359674258075451637841724199168992037355498478156121286519004643201983367768086539981912093841966503094711577911481581673079678764878316722600910172749040796156305971839697247496297765180750360588046544665358803595283437472599704883642829783376601129643137775179135385452187572780199285606713180350500704070251743863786373831853510595134152239463181606157629770698683780595100761629392022774196843904186190240213935722482747109999774912832886805858788695640721301753536136756192792424451433179172073662346819606001241426086075979436555179278806319096210318533152034179875562385995378361696560388777651425979549182740194234002167127666942303218405439671598061619116062003008801408861178830147119115359251588863873827044255283255620243294983065202466538769446397894646742223594369711645062989766993992738427497279659987794318655967561840443681349546109635669940795099775339011906442870992115408459962443846488026180631450000526126540129247713825246529875119142558396201496510474308187731310090956302312215508117687715562921571755378006774721301223393823465559347353907868201233230675004050870735340371171835311031686585937152244869922924987509876206318759536567359607543029153508449114996586314343255154927783743840127490681020864209023209241303894116300310494621513396264713975774177369310602925685199769026123698853209989517495814453829802715539974269842442835087894175004270803498352357325430577632923388064467860826442111053273523706480758286022780510841890065844244036710194881482905796094649327075409943586605976136512328105541294423210810305256954009057951056373044636798823208526747664451783042619476275272253823359378288481920671528822529024647607720795954856734455621839521770309957581976207568321042581052808319893050369846336567302623020160985526205416061103623460663022434764076822939117498435842247520839824879864327779402244914653472253105467006206399402348410325656049846963495190185840804830956266075767796446197508765628715766271888084210736317602200518631765601341061205801695730266051929880583543314392807037802304043965861331626309803273533178872126190640626223661328205707955723898762121421197184013707984067200908973383044468336187782771875042917853705455968060864956169629650328283582232599845008390559921392689737603944202883365348839200017997919482438624801203334420620380008889927716762833236301870053682194572344958648124450759330901887510387786535480875019180620449823878528483142705991671441732397783206323741471022274112463743268151926216789468169390886080286718993962655568334965719626087992760863712364156192589430181368575886994413392990456830638008969564380457506865750635272814424535559726108440287417200488882116789425640505357643569418453821714663991375857064767769644726192883354507503416399212132332601041932689426736978747252128871462108092373952399466239063509596815090369105521697372982556283573865649822014404255634199568871399567709822365980937569898492285531469924512839164951058804832000113527444732639053391550394235825217690608580976133017204400940695555841172549472294598543312084464485002686092939303969732336424935893990848457246138966145445363966394494767289906561419544995875611603057327847688149267258933827117405312755167508862340393531515347886231940952351806063865446920243553876769949217649260874962529192027914823664577501621031086147484681709881676579062508532110063847344703659566371816112548459503422010012044943817162367346559577306636954373304825483836991303093396386662536669542505924443921840805792069999859253403906333397046677837405047204996545723515057321765675743955037504740180378518467390739014658560475636898045048707763429606325944681128397261169219011206946846254127132379408643505289425510883252929441310499142957165705397704653347171014124324314993286048350503564189476684525873106362674917027740359444243793855579126829563978989538484981279909183829064904022207914394472474471011121765337813280008465577939009260570639527435940517287371130832377308709807226778224488433501578990684530272135583940451043925249505886732264669258524973836609869116916472069989173636498118033234438690547874640868578438641435754600205209241619893346134474463602776084813505770580006842935605911660618791451139305559694200712605974531981045808385022084164958257751510354921710848145456362452394566184015512357540799284297510721345326685843013662219917507198533140564553562561489713015130219485852016845779371466111201891278984632153958532569998981812682867724708300184393045535613116431860021507764728592343904145840904922292197456967993951478111731456947229366940491528325687134618062951982791453333210694904497428318114756731504065629540277427925081762840981541624392239104031992543850007788408100231782267564565996250914611121466601904517262364636402663837241188065796058220234299087482844732706529560859374391232972311493562656571620534189123514935656733259204378597524285005248671921744316486831571818729189031485259524681266215788898783795398207938468839730389184695975105969525528610749286463236670755752011056160063374467556644273706393047552989526723418674380634176032429280083843024751799130224242770385265893083653679874819974137204870464075229330095029047382140322673434717754154324596952080664360228189841213456488888575012636972880214793892650993509998035280690363916474655820660312177952027081448047873459171921274290139318701138060823704691031548253381599868865307490266169120888391810320774304388191715152581363483278732839937951180570871257774150083873873624880785481845380043330823440410607716916931458663813463129083837368595370123361499080768534514341711714293675363160600654912898702423115016193496203244559474842848303950426725312389791395032492413692850956498988966297933994082400478913470655529572815070317360801714609218932931575321526954346912397068013753303620291033615924539426623546867973658587568472737597042297032230822949000763767170669448946771262030136666996633216020848037692718934166929820765770432279845249801381539275658740511423732396211599173694174859232404434415557943669031320926518945794154622255678320164674048770644585731483355158813632947294874361835736815848032134084619751730714811681457737338846913985958688936308482938625369144683958693717857008888294687954204292897702445855291210771120269686912860571993350741745102390310007698094800478633127131600936476992636522147380381268672957260898624598233303295030493287365238473183324367116331253189351798475361811783228768292558290591336219165821534005543430547328045411088554582403543630412273425331753484891433452062625574371302055927109935038090508465751642529056825513978075477545869999197841071773999053655736852024860729079504405591515431990178873763329818353231118204698193362298599350795708609609080350586075218232810207536154483924703341179670103288175662794008826858509330811283343128576962476955366350151099217051748949413148506390804909993549022876347183365732122617822628748075338186028048356475914932043376175832590105712075748006001410655971826607240408009640295844048079414689557491621759574077609084247038813290113541696481875921713084175054483710348976057648196484287078867245709330192606499261447653436677008999654272169653737383801085612161307282301554811218685717533714297700024157025466682944434870308316723629944384877042574365842240086642827337433198639805333326984098539224572046177989767837127786966407808335410096026257407306681340319424950936163874491777863034773087058801319382343064595386508560033353105194854357731845413404197970299637017463491094030675494299743657273622307941341668509292876440613755512073814593302702034982441227325995199142240208062859979950940011734906757595758439485518136881590463084706194494138810249715839055731792941819405848405388291326086486820726819398317499770948366041246847756474000641177955559308390497980132067799801054615134541091386700727783929188084932627138046798799967659409847349312938032690780052833224281519257852119612185572526782230886020769357869610013259121336772377384062446704429129576685889493872100666501721469101451284308530519979764955553479903040559514892762910752841070350760920530414752744075333763225582738913474947412153739353235629206951657853276709444857418140338804487809585095379895976269680466680467624209013203380142566889996803021718077904463137409135580020200509066203357547990266729396158312745945552588491419952368192312860563018834815496697358550138916481731262094800674578199220516328121862094378197981843523447146456556776395412635725007350787514853725303447891535754200266590634156265728274311593471737227986381858040162562086755075333448588154764961396175428865928820419744902237653378326823113216052631339835515742220340696841781124717944555334512715177077123805378200893397474191349283389314698648799718237701967342203200925210141541403208509538099852131117494414287052063672190928325017887418128513904438489162611973488884907240830943799474798581153373958346414052556688084706735567090046744087789021395219292577264531707245034548085856151004886010410501732913595132188841573730127968671032777594833015290868955264822247506430140744070013063910925424721271912516543709322646612058814841173975395881777616211417645682685039486443654949312108818277544375494413046072112105353352753328746967804702005214436414429474665487076840673314115807243332433280402163403269518829309309489872454732189857255005861828031290073252516076126675069336607067625652981775490606475729234189166929122652188786683985774997073927884062588706436945882212731888667654381864256474716444653847926561719858764545351564804071095330170028904680580087439145238337469331499982515886263335744434685711257124057931936906083629417187089539188581504036728923091377952597299755130197566860359659996168096764679201423013574423222834560294387579148219595336762346084325398936204676955923463796585451716881644802877834103122821431653760187608427836882179299418899616544712112862259359992176476245336787632068236845736483882059672202762655540371380420877175675059454013365826541250150462723614596049939025716052171160474898741827018612709767131093961465108734830332027994208074431693938713876629362599717602285719701874176378975541893766218048906934482475074834530498766010214066755846864247638719012028815421612354717034675623353836042581549711619349723707981639540517070938466476003829327607455187233868078825021771267266618896060412715165767364497830299631599760744284813860806126324255378061859298060659862308633384836272653664889937726388641872420718885834633418512757814167004799846926109542894110667026184970180805732079190516906291400390993359699729913373603231325743223180977170124800141942809368576912632009070022757586545517918909627642266996857647289704065910408717565299884480615239538680952531262198865313128719232253488027794606399668207629251612030142666167942021930563123096798444747303040000160161261964330505315335586234827995865892500725482844898949007659084688070237680125678918613358609920307579860429388485351387215779677261501956238669107310234981087861238204525973329885890564252433313813528469080625743661298962268497558800960755950749512766705224381173073197243854180315552380925079269588747158312105208681865132159330916005032406628942214503063075815715789528737117830992540078066959990566973279532942276509528550762651236736934834807288519913403330403473260991084102790840000219114312689735047474939559340015156150881651462373816819005953042001419743676945144908939506706947757164001453564695504189064022194872429462627856921318386694256619204148167373084769040801430557668473015156489061538213565581409152611722478992238416639787968730768775593801218496515756896966556127364929439310852198113343545184301536177915391431801645569209379934045564884762098422822216281465205658358883770309302879385578504474839531318076914046665864048493504306108707648114182768500392106842296687932706955726237730373208143367459473067176653759187155775574258395563925367541215653342906362632615387817244913248045365098838574084221933634933001785385491394551023042556578198368790588388912272593623390498829425779146848847960230696643495390226763506104142986265002387683291782135831790740240355167525236990836457977509550785117708548548447687457300179981143034689687513662624828124664248885686212094980434816287818245805509537246403160280647595171919391901555297701344659440226873317333989724904857063686052042383515946529547369891344893159124512306625898142843553209079046004364505568339358739073425054792380803647472904053098938525565705129854114871065102982357874222618083962197007085874552646026542776034356824825555140465219503884017308116310467533843997410284514066623091002950308431365791885731555574264397983352282142097606953085950620299014204795491321774820397360577413785701974560851560406890698891054112628467940237111143366525279874319695274596026515057591275663253917850328993767000757139742634182421362197627278571097968105676547974271102554588714338341643003173677164776887070802524666008542508553611585904216619835214890016473324206172863133579818917831867327802112039239828717116970399437999853843526216746638539583150595650111025113544036469377095755233535999354192870139820254923620168690300386207851023775455370869537721550147591530101228827216546660395639350889648006796893595778378664054921837979793083292831705988191292454485303413524474899354279171220095151464061426711663856949650931921292363796192240459392277606088501685832361395582790917709113616743275919230707166917923320600373260324932645549644680648830505687147007612369506266236624077572270150516918769391432693216693230542346687926435482381974768868846897482743269881968770799839323983043068284620050232657109142256488635387109387487890435716216613286909159866441912910701174867970660702021997656528242224431806708639799583732718876011228091476538060155364705480287560089730963939899868996523164646053948146354675062490856820188762516073178092606386699347060039340760587635237799008799495878817190810047501173702983536237721496859948885483902135122729670352667155661361070703325045747665786559631988071414761943850714403778968923765606373024541757163049468687793886935355145450790068800306032325121248919938866451215072754145853284339086650798312491221470992141032322067089630552951853507466631141049912467494426796514511115015819576951150209596829752948731366707598718380633928870539789341904385161557973829569140866628413128768702186010468987010928420954320255170531416939675814297078920607360070778368114988835328105825753946240913709031762111537860203637395056558138735325052019988704756814439250677160208310907499151183847623774536638250114588886868201858484473685665518795913385344636445331188334748512600251100807031020036114152126910847801164407144153577210796840548731377980017582271536971623785159437361489646780720245100540801117286212691172640558271144070912344461981536177575107509093887118387785935266786619096190906186211600200041809168186948610873136301189241931987210786641755892908989938528397160387549743332370745786834268584470140143840955801546847557671440796020520948108993536104057577613491711168770752592438505966820445577621397238010397001104016989052621062240169803873621302165854421887156339587417514288557148624884822296953196759221172995148824271347384038255457517405382484141212451597664543536767125396485783541898679146476409025758558850986472050624127199501737145713188133124222122817351219264786457147547770031257610761838941966498973362076761609890851458680512144721916249996040415412803633927529690260534434234104577205857160511231177239011334322613538762731900832745224048279150412223877750852848165040731076228940871299487980782207653246456360073117722073597923964320051135957527818441163753911140605793457882854126007495663077626134957268226610916288890385815726656979638842540899379707272852868423789180570393060255576322349077143789129955612870828859390714994495555468148326049709366146573124616757581274109672770878566494720713054883564743994730400411641989262860177307293733296531444860598448546179687953153726531711176707346340556203777267717677256265367026086495720238823311794873778329608156531668352288569407225121686834892802139414858150700597150138182036091069368926502489883408786966715086092472078452173688173523842399567607868408271190756842670397808711140271120321226350684688480929315806255522181731489944332560808189592863015980240401245060821670321937306647846095958936986854170591357432045918494216946132133415647714541514852882417132653453258070799570862982478884891404892182415298844891048827308760110950656835527802121584829847699971883337677672507648484023528533674044308689026645083025330936934178918420312989049968007031415795726578883173442201806427367818537712002351858325823295707633579127779286609549714940861030030714064312704176812253066501821451584938907631269068037253658612209669651418721367538281114593866975316343833600128987847104027990618220877631137090488454282648760319656649801736337802762945726786998917333778564082693471731716512392962651977190155684094609502095268787244603325843985293500285836459983195181540848374387115123815438753437455598075318752157244765198958056981844160662015062046642827042568036779226931600386384322330255008717829759925173077616298395424861966814395548033435324355167599504734063165245771200650329789517235007949878028929249115455373893415504114339029736526531807756066616438418055207183372258279458573231834447228760950164116645615390350436966909550122817995240087604035734798535726311459003997350105561353569615195009051503382102431613966341451231745687900327781833196792558023940383136778262403123971773527675201165035948875917669944683265879747614909225867492279712636866405702355113623132021253161657363338546863561515114346053413840729478504103557554779662721603647266646958955133375958782269500393661754255279706895409012424655171118007204953310194553274012379429894196844210672105396503820840045656395926074903625591435969833041056781490567100110347771862824825701334566163658751805655900814046449849993054954080747982788119410276548949992083537560929215754718029315117826616906998158114239445934303139400848353025119512183866348400699139465856055139326603832272040370258667094403088749518829128730778130213607408463030055475182849239134271586083635057106387891482873667039456831568221233553178157756735835019364365454005473076537086703669071260353365651840229750576656387559420464179313540715790207997240128777148190647547721957223780248601523187146759783549849108444000988695219484013948481686861066991722263765511802246540809797925465816168267617105895983927824161503022946693550918778100202421905345040813370485567599671607387536023469140284845668207571105372251790255383179431993562431804304918506854829584640411724794467936966434471224003453826501898633866359156673379422943206363807882378054635206299090536814789763119470956021528983527427983589103487523171387392344198826003982417400177513119243291708124974870311062086829138980159043845406480438698692487620338906236906304313893665339611513782502447904576696206546468904092213044559563226271664919448690760499991006910075854635848667415890958953068854454003751746894258415273683389195297120829411698269208019676134574476987037101053125225800910489268159856862953400032190611269110543844356742745688594047959822047992093029861580344120162363487884030859135361316362975523732062936204215047143456664313485712058155104153261860468281637175129323810378016361128054788703717880438591523639852455523234317122790969894469145428150092141076628955265082152827473422338941382885715178764621889733820243567805455232696576620327035498536014306906653152239216064631818603783229109153220528093364706447923724782458766853964380044214135976304946535290209803340257509744965320116791077334103218961580714109735775829690380838767085725136577886563299820406385074117634355846987780069932552316590561361045231634274989422026445273000494145946287610767635969190927579088141270418448520754146506554301809913973464114342176497762141744219241501737200949178951654353860693720275067228250007451674710938493533209824496836726748280606814937514161609332175691694704712032555064771934519326845687204605097523354006922364050021992682012382076976660983332290584702770880315694361154034716029165279154567725480615862897610919488942944093778858089636835206301317806570956137547577983299741857094180033800164562694537344484479090270796975030143146718224905520881874257054678402230680323926976446101936092785062149786124108663837804470519453802517493491573209356572461559445839188804253949076088214961463271668246876789471277972985310989722753878808871853494517472429949482415950690391499049173478418996111918968339789556600331754198223494976669583893076275412496889430876313313112206518353275729515135199065362252721400983890583981256962509000165827959783029065769712918839506223752729459811252455159703118740495428919414199765009045337443057396574229927372692355078053437754643436299286436273655359918891466013233950895771861845104468795152523882881990466856996202834500754719138938653852665909996887201205799345954228396265937056975234760462479433524183178079808834977183666141332471235086103929447768888802297247513242649404015063284748822999792886052417660429336112412305368938647573446137152745320256691305868491496099923394041614698773479987217957057334015103038442485070516010499916097420701883864716163986781720099320973141581229628202099190640104727100838205559569073462969516661637595084542224711413579830224777050340505122222756318165247384649707536791423521390447982549176862392388027535398098814319032922981722818642051556276397286806727582147142324403915709387511219361628565901657492355513442227652219477262259985779596424237985980754477041014464339364042374651362371469968512690504773599835046501736572189319328168228470169411386593059830379169213598573057035494557813404412294391132869246877554496168467447425397053306664509159055782571300167010247507705030171287253915082539743097470452945832544451493588250243492874881892986280350046081007287756322338543794999402879599626954806026235924875517615231489185143694085794765726088544641865479428058447797301282163334572805060721740051248945040385102561216848651190441744310544812823697893446722247188517804031494090619644293981656127921488534099504274670936967584177131459118597325253266590410834301782456810576411314625763638522764919696222557579904546774385583830886670212909628789702637938007185857087645832413231725075203447185962296148381187844388242231550511847502056218221684968664354083749136962048050420310216432686136822895522914824568903629997045433048652245000949909152406358044303490529356142826144873634160327338833870040249187550119812025399994241289971851549385542775341481091026203074972295469644102793679734946757182575739906943655105934987920078182163521637567585422980242773780435331643949176858689032927635709536078146059483321416334058098032675059193020450409590909537534891973892985602965687116586378920163129945874639437772027554635938005134405327822568054913564146028195138005350992592595134263373359597392728633543039852269237505182279661455849767844710622100664292897298350779242912586789326146932801332303274081620496324029964537517333788583320435692175644213532090290846407206345658202175389538870722569591028245025042607568869768445091154089133518699038071880578860564945811691211712442931826643492538506364748671303109579039582585385301099580282300089517249271271212251013419226479313289720115755759025879565006341412378011603989458007446129082405549808139426473065434755550934255027110085724426183155730212229330008324809615778794354489061159068885722504966739909793997985502522961563538854543297516610342357317888575568014126466305057639649273944147549017990138460775356338758664400257062070459541491004033663252063545725152052662491017170309304686559292604088758953096749060586229823795422572337597943267296532251784122073861049010188880608054870490715924834391904664987409355380048053570102858021863623801968443632214343282501324018856816029208009560917297217856010753932323614328325581166232569291071135481862509406627432499037750279103507408155669089702670531048977488290987807511937913796019125968582062061993952910281197984555815025527855972470011979262343742282436023353670156631683145108493909301638995902731553102488709401506371401551460266930314893106010683443080953738005194862684859607292372207491432822896065761045227281485086675232325797486278710603590706805457393481897976687563764766898254603094332013097245817179928036740791539623395603445786422221629366672760923941259212058930802919645384554007206131587413465964437526739154489341015889645394723800887040953180193944364627750914891709857157711034009310087619682247038584524397793523117103064727181793790788476680399232382220541476124122776888003131556190074974945905919412062637560040496221072095273900320614798356912369980239724699269373980084222570528956701957292119134869910769112756514175138935623931087035940947251576034982963401603589349249589181860193263992803734315229737686079320937000544571556164909056066448517537603030860523021220026127987047103327414003539883304896007186914251731868219801152749319825754565199072051564928615248975278672284895724610104688982517065986670767342676782199231667392902248391919487295063474469458589749729185418830406593204206369808478868016358503588188227919720950576521199175776275741101716228986284584588223923035462733834502792623579500902455123725526240474052645948369473288651089593435248169064139074327431872731756832584091164523754107470711457625336121851771286056997314186412934167255678367204663741500748189573033134066610433342376435046454922277061383165055745457914704689252891979311879620510480775031395097915897666939401744549879109188017675102974854712656052528711626862565787661982472216143334792492275625460199019335342536205050085172675586283754545535528619911985300538923156271202533482350466400028628251608546831137300914875238149883096539543375822575624790641673068051728844603660429946664974956043563825222236428415776931372956278682802221944675507996268197069951103367857355366134024156132792718425904707747531408482947290450989371064781175334718266331829959867038635780996058391142370937126109214541457606950630488005635180557029474739481747614058104655129036822057181406652986232224429456346436370763595319085559305115477456174586775049384407532657788912727008227170970227262469991696060862756977344247266614067135217649756910584682179597777632603044857125923239437918193328136299341312996572813270735657784202436611826843549072739285140129037367080123774288242503660297362895984613592037117530704287240400890178823372903797207449965840431774658894784316222158163897337288481657277097543516944772492238492806933995372951393152447907450222288701582142481920936022851486914381362547477374601587033160816461687847253545239143089673205333833241416098763330910243415435309248045985912964881453140468456139831884397593374898553093623179324835802325443626784868009004325372633206273534608077328442766406482200422663714859553969583013428609189458750470305228393794167481478265610542294553517388760077006835675200771037028306412074244769008484374203244097361885478138264741616655956054115535203838136470958750546628528708218627639050301133510116253291488843781810844557481032750691047463988296624166873906510375069779436594017663132677815396222836976979456683834933275619678282904270130366924298309294898907213944875081888310423293325661890149683875113328651821328696674222812260280241644250849291613757421148952443830749809168910594566098570397154275700560054418516667364095686336865691511330725925732069558389380867324182358631190151653613219056405129595672563176871505045923409849214102249565140018592581740720680410195226499414684983518556254179194572082726561854081641246680641574084566658876533899070679848076099249393282736967416132125462620224121817464154515444814102153741258174032264085702607417607660542079033554124846004355144726205840869052434962009031731827633390609021045204912330286772181186286564994601254827024235614736510008162540161719955586937813354874115376923493801549686365435305982669409299272977370884154172332327435746295000106617043180296932910857529558044424885252068403673377702553739320449697591731711580082632264127266161823655115142864347638636220780602378580522642551858650151445935457708286821000105768871534089838141997812172798144703467714340138835812337748115369221758036865908526998153205365167530082639469190801246352537703046560805059234503318635582527871099978730549289928952614070924142028827528041776079542863002916553933864391624416871501424455489326154360695658665318450733702839996614105858695460366010693142241241848556774155777465232713826016790782393392056188800730493666234178902942503806726015979232435611418668831616427227406098688037185238720875809044214352335442665221100359549900674995587359116603679691969989101416291228579479496924917210331524313761435529404795012026553951872133090372624401101269091622154145331149696439173674643917775671744995406927327979252534718203311835436650207841050647638379508820482630655807208284323893204501158011916357665948299272162550885310303613652464427735809433678992329232280693877346928409424983179842991895795845616268785804873583151336427130422008277597573431615065657954467770051641951417722675810014785924389065384594062087870872757765743095634750125896909253371306692476580173702662227289939056499206976863508128989410883029294346774132396338470276886006945992272397488763958297225062986632528883752633930579047875870863577874337737034841926353041683058140055528519634733782007524754767165635128450260025020445598063973938801220927266350722360998710877075983018888314535744434190549902112178974293844165998212757689830575208034573601342854301824989864338562384683039905555279940906784494849115059304334834557440416181525547568471019841847237020991930473276177891001954444945500276593856522904013944981926876146292120795775877465304657502737646665260777787469880597316588083105315996897861929245452945783261603145571553560606776111522986421292571013260203466975039718658092570552886822572591409670696133484153822704336050292094109136012497999338693194946061643672424738302504263629057662292105492105208927655185475357806726707896011306172135809111978300489049375406926865643319311003795454457522226209100738374444240648712223669476354543702554987095230046857325240766337446986347000436510757687666476220345418883799720798066272766337692343017969222384191907007690530850896029436786031500960399955286978227165562250734078911928510774864789130517341551687113151038489170469595940174509699749264346406892258531953781307572544954528391545682278885379954818388751694815233383945530174645093416192086166693044657026376352300699715830786172142454785703556701321900310431508359109778364146138885029681301974728920288239634135935637802810855614782575396669214865744483303532763468563149024777813413770310445343271050890763860270545339682938609030636161018530345405339679708015291941453734887641496637819484781030737316057803724753126198673077131031868681376089263194880882970443891221749646955402179139756259394200997070963755310056335340070313451051596694962611623654170374986335093748768239699788528206898844013915916263115661333359052770915339346904195794181371940278049326751350901219552176656256164699088070573015974495173149404261911969294522644327961085865234696367074078705131063232377363419707836310955306323943955675088100683462493367575305331499503983905726346135615740402833095850190470152559825604464848346349565038247158281435301808792701621930640660798685768961880964995248941689445269986743244651777944696616776189858809465824147559094946089873803393027998005246262630695984680402743398249397214639442373207158273616660325020537427332662598322690750574348468920753074492687884888604490895399419257070115649224920937973575685595598528656972502103325755708716784809175206609485751678867109054122536522788342277382773897817506487679753313209165572672397699717431421387892596395663657438576277194320025034330057793321176520873887601885061797140484674647042592911113178160604348506923964580961141155423181224165384027499203585362562819713115141661209233324543146356473405192847774968154009048436779499680283474845376407597021490374857370970535685961603813083615445684680498249132915904769571853448677409082127020633885213619792814838244147632063758727257846753793122604243513065489377404939145769409199663039221009954860941988090646871213537164756079846986841164146482311182914736571063376408235884185248145677447825534158969026674998565218436514240037999909052739697270918071638854142155217747713452408668648132497272458853356856258771690612747495856505186453635231157885352692002042532323474217887803554204216155688432056023046016912880178146451053313283795344202551667126940268010407593969152943922800878096109886428074861041927536737514353111598820490647969867887494110125112650585537443582695419827794502156604065820728780562833731160820363214675550075853779526450042779148457144625797400028808656982547370515673003573769901131227973204048032239117012272086923126771636963321853781115353212741038180324485038852961107555881741632645020218090000181941916240881647171047249276977301226723395394140629753626661048090936521270205130994508096251892417178446551502052609127724232577632035989903797061024213171369442401911697715506061756942655253015416137054190575501586367103224928879171939973615418762344352246112691921451234220965777515560595892102626030498431060576569746345523702716853093205089940051706443401115901724899359918938032242263726925377065022213922581353915036153986873740094785449902656395480153324682676182466356305495682430365966828967727885048169209083069516832418211214679642059294778203814810225366985572825087464595561468219768811760130101419136682357400263990921396405961945037109251297029976878063994775485850215519542773844252150595683305276882519104545816092056823674671172845149954064690373219444623611103876605653470417621015589010997665322824443371899635957682769506717327419110151942971648806243590889054826930808301908429616493708400041056476100922911141935267257608745524587950415088632351233325881016529690776874741944633130699425318925080626573246795767005170258744098292897598601992150619850683128821954051467856541049720213567710717897480030020960927393946639742088260706211683452587868583913489941692023611965136598936069423557072518108211764958057956945567706040457508202769476066964912620061937329498983599770536410439838208410980452316144024161859203675371938941336299326908942913575733585318834725049305245470076464738820025869202727763432637501614145785782102522301508942750725328348320184735696375900384356285222490907636448338216454783305523446123401251301258065474319733848652241105887257881442924449435403809866866440944262887938787357039227810419473886232191309604415305840109334313812623532598621956755568866155412668784965190037435471342899864317116071552467697536836548961132874390558244717590667452671036050482071907380165531757004489450333132566512780267394826902621451308742407036905949800382659214349783986979255479204593907504080944195039080186474908962488724665582557165023347642882759940436262921009361187146778433402659309283910975618984990031683174910199941179708053289267551079237230858525020595135126747802840250143142117364396841901253401999763627392888915935181259782436946733184856708970140085103491520844059274168127939396599614104637821078557823123030005778469955573100868198102204159866157902957622680985212646714985044803143289207484376729253668800022185672544000358445195008113989237937778659917738259208159026204230328586734496561450174184139773409952455913178292117762535515824607565419971411175876893024190111013570293382616450373355647486767755769213468661651812237081746253257160543237711250768193534273707031619606679244032721773744570221175526635833478465436536684171197267692382834135107499931780341450295890767852901681967245839871526724667811450042652655831013357904612748912395150769104113899056041364992632844831817872697465917771128826004449886745731675062008266853158571418824014639806022303078130008313848998789706200910372666770210206540953922699083601475756297662534296359162806245232668340162091361896499984903633558154284877189356676140430729074384138419552388608067868374727755196745534751682110930153536841033606766602747430703991305495330287950522983628295381987406269388699972505764782552977172782809057303944395546682474119353950570502770399355374824148894654404128603294990184636058092617450341994572950555690553951833258394683127109099251714674053501631836015198890136643870210299407303187488778609211618445688298327588544148699836246968723800849934031581236260517410413795305968392877437582998063721361670807032947034332392285624870684572578172234683411204809769984585926835039292758736029809437566788714614857615551438947734195596799876867553320201493746457877530979828888257766078312919863407972227416763857296592563896428023697392471224486727326348091028386210137300394711394643977410420016155513160153806480141538177736714745378677729603796067415799400407999325264803780809724167765478468376596587653976471059578821048019931497750552998625333100086444198472364198979024456554958051845667354889019659296876714056685611395433350256350088532564416580259353810182633106111596431707390511468741130172328083752960473046243871902023632028956207330758537571200012793796052943038011186621699580602682991530685620426210622098072080500996875523993176999768582455390112672455099003156052257089140733642404139994698039439959797950445398753729138185356697808248512901666549649135367793118950962547818501738095532870932362305377560343615312331187744953704142472162726147592707467835738839180751032982923619650494938642832829645399297592742841790240889929216481582172173495735423855516401472615946971631431353336466350282031249638762878334534110931439439266748121219510803789437968050271631339029400176571904891908730996356989369164203586947042072301256108206752019876576890904405433153397886597385961031783848958945602638415169869165084662233526559185472136435569695533189702646705814201227388390791659160818947992288392985606957255799374003648064502364162695572619032399909944427808464149434771105809118395346745720994081606966030975049855212934430874959311703458585731396978200511997097963861577019779442014926406060627189993342299676480763597936123684719558267698667638507222190976988784234978687731570460042478183498800493991589480353840736534909118140716411872824447275612826024468049554526322854559792169771078243856886545765502501604958373607765948987369853405415271572300498853745247076732825171385060517628845400995340390061341086886540680007900360031833539237065074892898138026492089496821313827117170679384623680531612373497954388478242720643549207776239600717920650785065641093014836992609724221642522128695092958292851949708335458078236737660157775862949081533611987241587662824027966955882889604668336841138377190805405404172220611614419595396133756495922517381630526277908587799687665142237110847229135696885708171381845278402528449285929820081258188115755703570184660651218817173021749392377723024932530635312658858743654884138194860816969263903866442300563191658865604891627305474317716777263694004505011786584370655111324703432190821435832934502958704401814815734418481871063119599702851709178523334492360250679539025844611864445789885619189060685541970146230646856357135135967525429215880900224291299497433252154373211616594689157665752568619650977298865643520361235887712388953098346340271333946198096354462196066046770683194777377088340420844033778517822312274437761904883176155027667922168215159732961950764012924153555654522654646152410477451619474809306671974797670255561781317331457822037682803184333052394082731467876624359700140034116294931924104660825074360796120664515698532170959204727180687990594655711639384772568205488658080999609593956643180455780193178873554329008120888328776827905934383049396230111319426861237546078106556598457390917803388066668904283788555075695842515878763123766817912913897129452134871830649015811258530599776052268336006084150741416221332565393862129130762819899987518462587122257618614969886606819980199703827002723274012545026844070081430572932458821692123303610424498434768614310783874835069465986503603712840069510919733754945846460233523271536852770517790312962431978205529128133002365642017190535543414716516737702644126339849623632603572925117920365647548990483786148870031249119110767336938135596936723476737233229736778877604936922250135565094586901049956867374459605560404069761253406773535560048233863552646855334478571572776228336311522571696155348440805110969320216896545381949276991681192627648107575088615408329913255285353682441819858735016079479705070772399698816584901154655084400084993244294046640532657506028168826139844121021097338470184330489110071171378539832934910784537699502556259711413268306763806789443712148117496704962980855753687741543061369328660228610529097004416839360718948804159249580598514185782692440617351871143703946404416811433462892442613789887254826316322190706140939326338104847915022323437677974454496855296869654894476449820041633515369035098207372991682546331025191716748615137421199201241578700617354227260700179752233075717890995487173034086572212629675416240032846135514375333850149256250980220278642332852404646578891440980821584045332111027672701297112926871701188215472563196222073695755412299258067917769118614890987439102961625739818778365938826224397022992937999406025402190719903696367536660966117032058964897978839729439119271523086064274798785008091053469013376060562395357791264141657179628330809479002719593437664689013479758984219243813830197812375962426762244244575650897241709979693400562789632104733343828680372076345159332043352103825397097839171432091024011341051977316300735664201081590207974346960546626548612719468669296539610788270930692057914738654891529073468916511631200256344540835571131406255809402416044821477053105517526999838127995703422090632985036289372429499925290351667643719454105729641050703199205777900040933005042294453081396240216336074238591994707805449917528164104670148722230017604945852713934342731613369631574251292419157856436923735694074749630949449908965168553577260732950589850856407435025119232835419160592337948342485914927560856923534725632156769554416461791611280530991601536360202133704989554221217553964159124029264635013006016031566179482167086684785965735603037262328422470111314053529215970404813438627371809733979643737473089030282779224972022304349577849821546936398787122430810683630802737847552631730567545970174366019140755050067455963790812465851827929367959922472331207716654005158774229395554050447390479485110310829289446031754680577393834279373675311146501718242311238950637970228450523726844753790815015033450066033909463215853304094150831939015811971674857568705311048707511118407549049540287166875672750516499289827686057605790892528920789679634994636190402797829591027156384305806544462230075005172727217627786822613547833390849119198062679303064301783717656133930655568572888592591599847440642353029774850411190092717351294238507597691437942804301512840092622671523273582517317736768374719049286632128886504148215491632704210137597125124148383861991140746111722935481909910561952706824150640913529943243428848835191740480506913134696492316286681097837360075351231793907056747615836789175336500524961542800282088920321059233772975703845322966052075267491667062281242536211474141060972789229917000656484251464502940422566822081255330007107919485024920747964603746229603435678904414393080113354750622408734278181406422774937738881412290218732765185695337776267630779210509842335078688679353688098597748858401458582154024233132605514332242206856162829044980217614956741088615237337417249633363588129477593237327576103415894688015688799001459648884364803205460251783691693351215320616165674341950598466939667770803544957505848203822696777825532439936373697636908669673055002176770905433331118420822171310181831835553202014048292949748965442914751081010168291227350346972049739314276788766689997290509972667307325249877607550206722396655952691116960829711405706804345935905348299759819553963751783325181176506136252800126701608277246394730506808308456171372887341859858291949287989520550316107641025856940060058867018026116576360803376363471917202954124642940957302792328087939867910519941544305383725329289403608206722741861037012656882325127450977709946863620832210126446077196591013740974246034834183493535828381316867708645000427422633099080771826425563644935649641834135626220377776297982493846671681165168640034874831854526131691807745843241723389549903776151140883412103630573041670451493359227896827795417091818625480653576719876268500591416352997273258169685004631791345677653315934255003484685242251938756539927323717189661091477476973591724824473265982837333313907322312659221729959235427625696481088704406968549705486803260261917350352415278266639740076248234995557241950646913978460181925423487341587675249921839510910924689647763053851988870538231752444189366053540435526064389108333883208130345842145801958278179113485026996224085151544511682531178769641980572417041081572961751496791052791630205055720721559045571804228000483942327872629486087203300671391864021598634388290816438811716734303770846733352135286599094637314516307184297019164570661098274387886616521939247944310559995009736726724730826968617117068173967539994973865515878386855038678775013085466459326788741346726698224558746538614280153310912937047521325996547934125889729376807200986046172000338499951926381946683038262522392146851209941224584064447808096479059095079328481643178959907909809204606259933178412498299336471528351091510139598886533135386437943968831964259952682386978667386980213749524733442175789096269045019182828949350405961516813433034486224812740339182986223073416926964208104512098110858192687764795331151653636892637218224093471000623995019495450121475591529597093851566921626393337035748566406985869591874003712471827711489149165445410712118658856501953970849388759850396449685109398968593069313350497047808124161378780558252843061889325981238431476750686656882756387156255911458854988101181567032232481811778778703478099988285823067318466604266174639187301380463296717740294403083819115867928162827483230284780374513724183697272740060466216439069710612048175841440611775102263818801484682916541884855295950037088275514254808758191124440432053302312442949914465474688456023298346912735024261841054080494558294441781739888543989053315234131274110299007382001869408177670697289873764300453899011899088494081725292342363494036406596008252181456808610634098634728335774155150568444794966288467168230492322938972351710227764580156835403884916725175450754589556986441176666865651886620086274511679682019775734511044015016034731619270282022887641944118412321324180733722988764595704306606258010391338491251053781912223601700507097303224789837074073897399376393802576598082835679972034009156963678702194629629538967717892720207313878686421350677128879575789701929266832742427832011930113862737654712430298660133074777031463998591546818651049354114583853791967433968340638795114427041890138121883066783468970046300693322999292639513402476266949984496999424603392903792627334934195417338557792368782517487893136237248411620885547607804883372250101946341055596554091147197132539916118367395671747441912649908706737129078509644215138235103751495740495431673234278130852622879820749014336063164116250657844485995524561102095252601265779308306538755347947566637967409282938863011868073441722717318655737475832935299102576044983199704909466878864421533697413107211573850051919958645127717273077689254057179793613824624777391631665951274368606824247659726581475865937304452478655022488927162868953572843268378298844633318654788602557020159294673819250494011063513681951720763863288028124351829924401734522664898897971027946065806479920289276456566520712720791807456425703872331537084602848494882436860748122967595838558016405857773845209418225848633482968986812332338043198940132553972543456335494382115829616850498366672537977697557114407184348242917129623355305360717899477610792078418446871600362348510755594294103182175902685243814479188265636666008116666706332836776743406449357487826872701807622664577476906178332234435398980244305526041211340751707786069976085141593586648507198657358747328605811850563167006138557914500609405830640420990046365294669077802070897307055025141516242569669583388348789802249854163710735960632823765572839760069968422742998701371737249072789659280456057076856342193885694718136737052413052304813695057861202070138069984008515000692570697181789172166078641199320793461897257690376815124238904747442696266406544255720520983870962932304938596637105803987188389732562442857149705180166793182620483218539840973847291312709486164668188741458758508179329273323099067800774177346997852947839705667052732608352720343352297501562376451528199835679883025338128565283198703098622536798290931601671009004793851421772321204422186568263328036887102830897215332258175055034882101931524087245014119795672185890487648414453991418144816642860169252384563906235887639430027172877084337779039546186224112480940746872396813981065484586951934272749795253141540801041629865675287215220416524499329057949295298483119697728196292498170566983532638519413956165630667575474518565493887384834149509877042076142781284561402894929680625789856722445001613682458626905352211849747561180692067802072139135285812694184920379386708993876725110286731381243090110278258344472660813824755920896911657179471821170957143320218415685646091624567322189334167237172863070471291533690868855583311165283810559562269511431560320811277416577109475411223969657856948689929583285474255129551211764304381420694481156403662419280933429317651002410011913154254680185729674584729099531539141297621571180415211495949751887978991117728308501157409910499823113636536850321679659546648900108732515514650812329425576327821940772460360381968523225856375274296159186989313195437979336139778173878595827756174176343528600143084188248695915323797960442346063713482033219589001828657606888238794029185250293366789159115351185937151157803035605574715200461106330364590856293738709807955296866683066862639086674215569986132855253332731818246676502132857582119915634499241599171953165519733011681091690449018045540630620595395299727168182005592476196333726477470826399963515349135648902157442932763487491039226396166757211398155589580460810601269756629132893895726684587367703941431717601423231199977994731206967519143403554081150801160112090703260302066298232977863597450925622738457685220843432286467603372176093063903036741792240372637182697755069804283275471029285024588057816434409137642314250834734020329193339647227083073258665373881522253657003914970817604108616115904160283383876766277693184671734058076173953090369207924615473597045563452603578875841183219422552178745830143583505040624439848191518840418197053587982349763201360054759776345593004859889386408180525418147239661913756050591837328394283869526014571382201002636276192484723541891211625676503407175742273567846007335301670690992710095189399845779512573924145568911814587100567743331459996842626580126909782269064970883845423169734069001733361460696565786065737420700570769162583778363384834133206781843244062889320804182700567900823232371861091515158086921432888755106908172774670271472845234407257802863488800301541276247224852279969919421770309442266299182169707804644213927497916191176633433368171683413277896320644157331421685867264981167716006081589557571854573883777344982922189109240468086500214867897648230461615887047555984142132201711683816467831563641895545252429865157255349990831384325596064003018723048048046377507198292786580661030083887427037665684368526991230438836031943905809833905754988927077253406344470486201928742930337448255389330551057472492532946581723550520667977764767010568405361534018740068881782759668413607312101687321455618004810999787921582998543166250438941458280093868464514636129914712544088144159530170114886560283079263104639746075955377288616409324847803932516441217288862110656091528708251904380563287741203689568900558593058400516820359580206821700189342880953582715287497943638266836118729780616450496790534687010814981292292467051507548838153006388179484867611216516383636940247485583493500771176787811808491985350249305565994384611991944467602653831581373387977892774907091814450133956953389634726405112224949927888956853354878737258138507571294620770954544449179705251101515850449271984917843494489641285030032135522461776357511875041017581895991974530921955239897378282711270181576383125424497212857635142663573504143939422919307807875470568864025236336899838409914106130572798569494715087907060332294267152841500175153999893810285030014208762365939152841396279343203162292665377538124090193791289865717068680424530603725718055830888934766308840415473058878011617477767916276843022901356449282970630699484466815032018642393133507832383011261094877170953431002307122231261836601907854718279296496635814779233089252366637731437761546480628867755851423309613934123199927560671399108511659548700089785127245487898757327943109938600732962094420747833772273869089524278365965488633868891821645502551726379429994975523111221669934956130932468562283321349338423461842810422701810692696422609428328431370434265336084757074088079637715118730717262391976646464499240456362359839816311602759581685686735471996161640415241720042366287667921134810754559057726560100029602737366627073073779639120065235658194793654245464802540061657187852875757347542253821008377679501296158041523591061295758676263267739065550356208819067966988393748412247550315834485840757606585539464370436355739817996030528328573085977185625657172232573748474767241306226595167833181477515987101119284661023787043802869153827356924228220183488020559202599727967780079176699496019957674908245924598077717513147243190294104132000564036013879663295642029880348076459016985516833724361539596250279715426743248557368563123507043729236423949190639254240827028691315799623529233329269440902847642616451445780968838963634142124799493482542542227685343674374687001780067777893165775822516959246905939081244408976063503493247684742905331682811971187513852187982660215953236540382165764511935460205276516010055412166260769222246843531264046408572062570508660057378879762911349504780961506419081790415199149088621206381382891221284274409918138213866298664742912247952915708892514851218222871959341139648261490433068493955295919771158325727220336873021763106184446539514335112567893911640441387916224767590934586261577599158493302221895443841664088207962796666358089520502378940189546493429515563122510442591982017705838293807292426260327285604531036919031012545790820162718271943812607082136072320515712441065960917277714865312391063636074566474462928446041464085963151249522615141729688981825395696624787178122112187035243651761468423452687972843232319901574560455612183242143812484192495496179550287989231996938164781272424264167872151986863986672954894695459367325489238542547540961894818763426607066411295050677639605592929004196962386990713585127790103834674361991964626217144737609028563552360829248312291310834677314342530261840410399400777753460209510785672790070206683906113965960172320356841080263160820212301267778058533880584857741672380059854365566018230383991845831587132463404474460438439893594129409155672898047407969763654192820235699553761837574384759663203920253811000082081455227769499560707802957083648038811195973119803450137335859661211976551360572273262033039606102320115376779179453196947781758410384650093655291455529172349618897626514317945716099020137343778781702327255499572798501352779412784619178308483395849298734928823228223096677024337508754584572577750235365848014584283386494630191148216070083922646554204354542185605027481254543441135543580400647132529508453617630939567738633237565454694647780090552284578195010850330533430738155074783172086773260684165285053118899887017822179491888170735254682876927726251620483220393525239409443699283086157404960202523446622350129817677936350088967022595021910575072993266902557398800955798674694974864144639693137032928472422839285761554765025181672005955492168407277282112178178242442219308386075184316131552746525858456565030792415302594752717382577491585327698239798724756331123125109306984004801461186116631077594113593781489274339613866503087333445139588975185454011707112949208778154091653442663175856366017268784328413377589485791166143214277539989100697137327978398567563580102639395490991777693686071803914347109392041781767159799214789385906553503625881045759333598064503452971982997547845640044807769994671936006593449079227072908110513525430181763527860165598565027255203737859757653684032421813850591138051809237945958827925258555610666797275097989898869971728624772473136904377092572606737259636823699474334135854493586319127258305996473235017999531718794702358892024790202129931736208941839469049328300492227162438302212123519294995281534264716577524294263535807238280444030700480673158928317298982648754700820472202231682477283727196366348859621047152369203053948178809074328390404034060860935821771145355182577042231874830961997668349603915936009782211088264506240656677710931640690336816035050215205157008029594800391127418355559106671688046796393381582773692920468037251125682134409572083547141683530927632219432318806971816190082111178609405538997875876676778051540482056441231711119464719379356318858220288992026658327549946692944729752675306408715032196155697558480611427284726836935944157295756518876839692239089711518941435609016772663377554939379161048187482549318285872431839515114687204146668599153861183660207515089816077866107094372213128852164391244446766067406772783612489181677211263900349814009159748378107475294555021517247050873321053176591212343915504214648506105319087933153599919911524231713267995278263645953472136622377519119609035669877267374088355723338808766762637096786847698202223720201403095017427318628138053790866427931601935043206484252337628030259357770391492369103989030718720474398029644003276923848912714390748167536058961044202336950339236746642083425369377192252036505012394621939985734321324367584826494364262652398437637186004944776394877780042236151576971300932735224811110937547110888089336199801260259808070861363547884533497533777360095045583314993401947612408692391733675125714934804301704363797113649634026325135276976733282328234077518779513632133731266334700762897190664777840017414367430189553290347703675384211040545900467911522280617671052331245942419100578443991139881567594755540939040970948362791862075615470110664388445034056076909544556214820610651105444433816119527971957153966223813070323098657455428062079043439006483772784572279052144858146325351975457877270646606420463729663109487933470612653181223252459046823401293549960361244161148948041910063625169237435842660941460901045615696071886766668151618945653045715397606050819043122842759205680094283018755381383143048294017841375213172067588196400149856288020125752261017040849067230313069627961696422634804175299870423074271099089907468668788832218039863605745979718315356928497377727418466439462583916830472137954060025216282169580686537824007107379260564687475298940055767408054526479152746401209702290799416528189369962013108416629987359504605943582215726915560406401495699545173737628397626737863429378919207669038404696617181691676731468615553629573516509194130451964085793050955344902125957281637292485453405546036571060038472098884777060072717743265898292785321698885382429684256162338875826927715616721604561889050791598496962406175913580434107994397419214639815496664558144016018768562395900593583727255432840255079361398353490375424609315881617959347235503557019582241974980269674760995765675417259960733834508865979912324547127993970621448852594685890682875385262474999027950316942900485172608174400949472798732488475689178220624993879426915506997676422293385697703289846198315203907412457882052458958815876647508848063256055825331699916678162951715721376716448527095556121794267905226049071478799264782047676630860412217026367436440893639028668829389453286501349534028732832516152158030827799265442189466554754773424544297663969108262896968084460906347279507452273491675924899762813418975646223878825096779698409534907225321847081017316368883177456318908339676306629891000430236866232941991426322083452538892609764993679883781360498428013004998899171467406288797561669993159476595608905977216477205141469794775298590243526625561888943344434397151826106016173707163699093888085605020246651320900872065113322333677728194236649563657443380478375739484439067867531542697469313583243766804135516595504393767301882260082002949793248292070735144690501872670141725028764191803429014478042033615363196168083415519787835528022261975942144955493267400866039679547392586178628399142219577870582513071081441136889577611862973971550921724596656681537802566455066154756174248607415284346030660513678884733988472516335271994622043856119306101332328407448434793486166989494951485975595139340964112533682156508578865427973924086833853746407872267604104102985678627923971117828565368055602014985012477162843084455721507112071622238665025934541449490443691636980031375382829233210594243573018543368886592825973343877946158210072951504140735401158995342522535778277399351126755485646205708682100734219281764944758030491656041209122471577198097073320975633120183560830368869151319140664673333216858027404023843103505653812520389870228581276923772779427340819896928784983062554841423429518067710304520393709828165609436744193225814508923576802317911893781068948109839703722245255549746608131573120093527181326761338631316817774625205039315053151386996309035849413307675276295911210888043424879529020589489343331497294401839429557700033267558143704791603243164123758361539827791198472436332814831651944512288450705391365683338068128559363763767685003336849776294009203393290840946728026929736290080346496700216268422396747340712142593614528765815998609248491645653138669221280477225207987794268261750970345852796814870071938173996190041933476976286824580010654131364681561610186413868009881402216960711466237797865206675897215913125776815888191109200616902450435315829231142445499371980286906144367958597267821990926065663107579281604551754084807524938094400383645917238034935191158981088133057473611775244867812444566416864500125758992484328355206338837099506275322547404991196547851429239762050669005217326854970153903136157354725026663748450664984472206013592325645692456939196446446773967038555529129157846464047093058971519002453113331574083426040908175263661910912362744585090752918380240839464797753297715992906811463146606266379474336511889626619807860117156491982466109958504521198000067395158560921405906293754744972651897095064342222420554281809303801289536068376938811566984884619399605448460622048448197690364634990900959193830422510663167052472497893403167191298851005687281931807136353203291947909600970776847627814072214322626269776962887688457639582526003848718444022884634083508301418837497708437639071666301772280612361400573031502384565609500614304891993983029492743796403002556877348289529868674199682704935051906036589437474445158304375351893202113203603665163907928933726158289410544507316413688053427284338775820720589772185587789964936058206542196049901449595699963678601322698230937583153973246121196207933893355810037058471608976068570097001324160617957285687494935771555949586193901370342241176751043658665583872860036047079571691490586934087382009142577633676138453220269671447222150399902716473736089051770367449387199942230839174583385259622830970157698744265691578897822123578259203326846512256801111069546730917781537986695954261139595141651000727996653979908652549102164268334968334050364775753644583022288447058302603812970350026361963893465243167049604555791994428881154715002568536832364163162047320216576117995982414441289950340665605857026357050244360522976209485464187730630906982469988809455042135001964581150170094261779525938002355215012571718082487090732217917202012783299542915732410174819799296047237098205693816482380490766757848182286748832505079687370522377052991925994964779014606296469441458259961365061069720992988179350566021577045805013063619376168879348318808143940920318469730775466153449797856624172598715296824475668935875982778085371206214633190195130742058741206086873540360474701429776055783516052404809100707394944748714360838402518373372748017825089852549625215572643798106541101837144725100217428825434804642320557010361588928601685153776640949206881248898831226345990297333072004047780780339886590227123450044776378914614901409539315255088652761531900914860707741309137927825318674563003381058598362864600387767181006908252017774793401737474972194777694133144220826561567711994942346969650980763284318905449864768948022703387088678796693856007380953618455564252558112690996135010643496704520592652206019754594670748876220329796758204522937569439101312873842141381172416577976641114565952174658966416760386199712999119311446181742670280203972602359653071081382599940929483242016784320475617556868346630997890254262671836165272775028750649719659937045090630865146157647785517043316653778522618093718448761588329284914221876272439178439248943939609810088739797462126792207605400432849275692883127604601201593726925200199171922135441021713116641347530986914685420097714106604191671467207338608361489958279078969735261890513643350376556073970598014383848555663035552538896138143169406950989170421400806085081265425413832528270900233297468499280473002235000137744604455896914621878741231490962307005305348493696505929039845045510147614563283882626711318947027158187072219713842998184801325801063490186959632585046613537609856279152190687509697722124786207876688695965057660084418850231592835338951008520252930103849609140130164063709837754127219906497722640853510200231223512736551728059701345316820391873721512465449904629944038680043335319624906317757875012755503357365692777738147794758343991953021668194593620493138142189469742961518359233341995235593919595569890640444099915574213914582822404635516889887589197173795599137710452207524076788284348861147990230188563939711546569921606799478425040591483118642924742298872686302497177928109042038506743997161953301501686012590761078614375097115140755125244044877028825370339718510582491431529496524172523534558482627356563274095558580329004353265240535081264080814304760788127433397399814651675490857289780494459619161904904587418629604634197779610120077959743802828053387108725820119065729103146195141823937324482228687843415178123853886135184221500613295631044205996570962308852028298764263052012980990104857987998300036261653805638582870614339449929815901016248614638327102834260540872352525507679654798414623689632163714532996339149832498971176690382238955858808434565171320682073649752943511164674608391186630607244886961180001624156205731295991627758444406533997351032470195098453206700427745560551937996141298435861728505807797368398611164269350749852303214844514620930712098784812737378449809689797548585081267267944069649751455351978903684946189804687513632273124960552723627319515028495917165152435255559474306251908593919114690392731049113446150747388525522458648436236645852562400839650715181306883830066822980779078859438702555108826729002154061701987491502191800795377512829195912580772915794447796555301624690800122546244116651041007805853190639018423168341018996354154636546157926810727585635642576094087012726239302536979576666004177538388199881283797970699282875130163690454293944111591221617247038183924344836654772617842074024954964108942399267263896491233790478305150483397729691299475485067494242950367089751721108394054659140889587528829377290784780891902029270009387040551876200128286887234622795054511318042970092369024944540472354635525607204528532338694694929437100455765161399896028172914052933592915072653358679178465089658587136026687811905770421684164556691679947389706011365406087598302825169011546373453579466774485143934543662315719895455296267111648743459666142179290930518057596409034668004684612544166206878875002243149804508042708169815324779073611607810809158970419011546035343734071659753259040422699020463202795729080783666628499365051768917500764628075450243993073485224309525468038758798509041860730971200753061534423950429680171215856263643344002666035445066949180691915914903024718840412288272939235508775587265088478520960715991538962577331754118301613001336201686165821068713187707232648102029444215335131067900279652672443635495620297138671018359033095216958737088899469945154641095754744328695354648348300364496100693955383269295235078003502958744891217797417192809767003280350878546923030629173561724567347067029636186357369944017451029109184996329606053817992472628410497471754498531095089314960370003482452175410926649261910574761609390813969621472283270199436656532052636126040130530040121228671145630009752853920367354481163821500477284235381234167854150526614712873666729332524504267118252860794147563515943116214196689412578877977564504434407729998285196829887513553475757970624185152997862288017447227615096480850911804606151978933764962891544915374077985985297303267383199866699557227239559264270158489512934096036758657242412470766563518663019094327672211804353983064136737017882991411989579115360084778774583064253999675723877618417134606451720833330168346427294409441056568733442698282499118438670811184821073738526703525657514645746023280248827033627577552640949745510998028851800171976949890455264857022716788400950517596080130665915764257865080862229983697522835011256095749084556322654956854327938877774764568050596322700850978961592317370045492025076907830981833491852844002373071502431649498085785059697944246435440658118579032618172115344362957664047671327885507207316056479514497342409137626805524829213865955365105265432008852746352312900117020197851260270342856914230046519508579380678158816168482935017795040452856990307837870659329871797177167925996213068396645065584508748085748513047199988822720662471505091936284506268801777539050621606201165390448456658995346295185507314177725189876027081979613467349435205698337617774819266964654934395130081617895652149473460287394431359820532004910643626340832962402162211873059692901014822071820334838911119711873943561861376622329914205534141760576133526233375467191635817625321109333576697757318699602522852216084842532192178771440974678373501954437947292235795409819540502800884352007845887660734448682353965746344126798266252742021718538427249296348216343693927485344912928008748637624720602155565899990253885706228044970985713356239375813499528404901504830679693704350351801473388218117730933266963746328481252368054718726460451343492716708580935842216938840341745806572269636992830514576019026406839197619737985263157593184394455287766394350849696174331110127682246485480987682681942023232251941890655754426288666141458121795189861624875183782062537501247315772173210981665181175315289402261429950747497503001342507799853232714343296076814153536465230899128758283113166710673008216692602768621557543386783802404242791716237132021324292225443384863911852014851706680873560897776760815379306840558677192048378603111069835044792177791385243435533641389954633699691059345958652821122822365767952898388669794166832522722513045655885906469540128093355920160397068537168019729145773750329861512877751175913086465257130056369029212680509859655286464894516166182624373287896720812865916031189144575182485540662589382384125864943110854986094110261344738032237279919912733783726631647217816726687419544193474841294284836609705175978478216198060211244591150881796741717194667254576499796002130055044513766110006664984133994423601096579264920796420027263100803204411477283668983033713238428618833410800009585083269407130148297990396020675274067410632238957221069100407173920769615195024399368667303908302801337820441504073201375922890234718447887059852523662834177280431276615473512489681750004117104314311906115143240720786963153775577897795969114116307143919812762716757944240563456873458347089259722021649991261843743988797504950626070786782938316771755555356636448536919891081315253436043268440641512558591159351414336698238993883655624532340861375532624801309338317709879597164604558641914164162477050669788321803139277279501988581793969497325914619562161770889739241399678512785115968246638877878438908406500900410456391382304414338723945439542085728444347704256280985701618894502188771000212857907894496745020431092139760328194242226336291712895559959135222760795634632411851109968337575084096729321066116212313542135697293739202907365779033335648862957482946666281995052343809670526953818777710313924974777375239228561801684060852069783741799267135258350080105441569959452116511799438907907497872258237382789668558362876325489380144516408672846003667205505789267983209094085404828295523093672808585333192692598799298284698179491944375610176698044365758488816618223646900807942994604760419372303306683081479134155959990565423587569868865162805226704574832034863216529603296685901957648756959244597902708324494189362228845204737883262257653073959134135378652561672834002659680882954143142865798912113643657302049140467444328698043824465639126746190466792392080162632363185082187489341878389125035702247062817199883587466916637518506126034545087707419976533449691926679989289918655671041488084341490722239686418892974003496924016737385090094506903371301437244533884857526074716452894424748067540158955693686141265940580351208182302331679842002048363676827835092980840554773947872901226034369540074341126429412221063797358621784999916400810905844692465191700237039185218108811958025216110371286129202095312645376328477015803450838299078307282903028071124168379100302505009659397651888287708082304201666602374158420756606004322811828468215095427756364299073721070132230611957748456023444146580517189162338206269958759925866207233783094910986309308852761052401272399167269653698805980528914706025836344282989839350068495024054746679008540246677447336572928279290086495382590265873718098168014092024242926707171032547804629567740510595572026523383366551705066261745728520395257118122387369195261609039786306275061498027878796765745269466260857570764273983333918257240520654566446335050205373528130677483271977275027514830189859276550440677904232672670341029973043655722101708997114342765153530458722465862935374995706740197408161147584227479734217680178358926753075293362372108170846263079431954431566927404027529663922012050066081563483610778689780222569724537070431060433878609909496068697209942327310236891518757889328556068813771025876551429103853425238981681521095004750113450646000968302969169328104393792037675524553752202527637835970999212430745886736755681996199739674246337254268332372269226562744975248234634381634805902829787982489464437679824402740919022420280980111642905130237301310579773373875326186509162113507675976574088274220421648984861636917292368952782595290070718702285332500208800168081962341213131208312145414304063569533892815235094339396477585762461976340165206189699015105294971672714095890765808556672890051360649151149283023772848046129220355469606656745103810240229493620444083825391228093210187029972329757086592887988148146897360158115219362619333291315011764879953648260149080185785039922971907570628809014706584493440113776060811607935682397581945870251689570938922298853219096949020606122236401157554327466604813350051169558131822609460228204851123920850120952655805975848710298358783172872720869544252829511278962081083713017022804058618142527471637630140505472563694169708282385337390756871276834328328578176503062723536167467027037011741665497818126351426365889037064518459721160343473504290566479571473548052652074006044172740880780281336500026090778508047102171079960135812243289042489150121341772187011900005629358404903070006117478758416947813084198950307113657159103474121952709364108215545821249583079727278296889248908087026274408199039541873227533533476309349584399981943104388470349745738354103248188362553975862037752451265495549478041833438284864671099842774050766655616280230508918091241821321957388884130343036616787074672525701054173309860040964782169894468126068672373579035557037101108396144943281828108779523531861252485369619167854905589876983131523645846678937993133694749938035303980921750075557440417938928552977801303652319695169474526351707727112381584100766445149959407733583265849598648844433439558802220266334609646661175834550257961384722547667521616159868106418086550511822060737859977726622978515495169593491592821298656429695672090118003489677927875885574244656580866206864233523543649316592975255195568684979210792631004424735572917347854643620736913004203503515728939199389544594792925695952975619258098107926222800052267398392926563278524579017453466509738580586754461674068528050179040688458477160884039998353154047934606736875120972833793569722541685455557007630142556762734255133957045942114490203717681757710883960254846787091709641880283643302132549434174451760770271683733411811950076110161272324549161165702434066780593294568192309362976950458336991814173785315608526492637669182371200390175062847505073987123877194704663169832945230764676197720885304623325163841145679588728443859588780504553973361126349706437712907763737316508422367769365431252424270754313147366352442473199237694187621870982140424907566200532599311069410588955567745547671911670646076077408721743453260983676126735436729114882096850129126903208785660834588684509329799601963532700150285907078046098933312672025157666729452894199097819415021029694610305197579952009726960210468170229308402548118031984059274033909738869166764503415671441091544350939498279256761002448472123897078071782665743079604658164067572189102742817200430228549882732675253516869907091635828634296541955730629611720642425248046041431166172292338744335775938387687326480719442827278181707497905073255357814217226744053773569952965735880242502498107412801805421143679571700476439669261390273119682499246446743939832926411313683308258904784197872627445526721109938993954899126059440673190669606989078703083724330143347947082609507145696792397653733654776368264786252493238047243077553096989681497058064204378679836858274197372600337080435954239353462426330641456328447914898790315106749184339971488169541309231171222022579958957640374034338171750875784744649870899750354842471770394714257637724309323291578072746649390831691314421785157971641477419678835051589139511684987737104111669152216096236122447091620271331633044678528852251375316738940504433887146316949416356481123970231520845202624312190510592726930880156269298128951298942618573983886108097812949109970939460652688985178330420190258597166602144365952921009786540482672979772934124461459018821655676591032372835341735066208432390284587205378700064803355657039483529201628406649420274404830145840148781604610868329988591698108180398534967534594446773240812356822038839343181855535287964538090145170987977763966564604042299141472047279601342000003701091746735756487188988864090809547613295879229211949957910016287176375518113615476064084991639306325638539213717201096488874314010237518335425711097245549478409844731206378107372393437897825471758940953566031989555233691411747084185240738469832850397560282976832979269026839262331762587885162468363618107058307135101169922978231254477908784952193154851317167695833265696826334253953328004772939076183610037431680127538977557768482300650376617229441934263749119295326540065628100274803464407361128469319622794929540098455030827571581851341158794843405358171120729804670512104798070956524189173316666488042033525759655474664278730075177323890895633195382602501501577975091051532304731410766277386185213688863484576468066191458239545968269343873304550881122845881546704254883879693795281227342581559789370788054742568485626498292080339357481846663255635645682436082984490953117921603880144341043631550832189672329108222586419890059161424755682075420086123914538457543502982596734662314704209171725937852080502483883389875347275816406479905514677569558154039385954390752844778838562263971739558442070268821936749120100470257298314685795170141298757387397258450241346118572289529090606346263819412484256094924121954255570630339849638421808707585065103154166560926785016729408852818540708857238996139635448459564349829437282973298384184092706226038405413047448628095856592412737934350336453431558445364005958918597307375030429014818233218438809322033707680762119129388900229129923383021718800982427212204418006091495653587315963822598697988199974954104620863683823461675263480642107374393053500181636943754035273955577034168249897442192197147356640303457127896724218751916445273245756915159749863006307126013723614166885937368940672804028083846191312010681608007094268788706469440994526952856538542469511548854488503811902254162046629110594270815254237454627770902527838896786430563122710713487118536621553694624046585617404046026403981088292438681771157047952126441228848803080020965597563253874142861083423512507197310397010858100165820106441256691388286249953348459631212460439876771564547254919240600445795226263757543082795220485620574971175953348293207207601307885442202125078564605181211246197147247405528955019492790260385963549679488352839617303911786982665479465052991826736752775099746232372959700148952351759927969336769355062807978339084225718193834865479832253244141719671880003527404750248174896824225936646554877081841507349627027287310688623379598575981063057377739677512421980878286335774044115378823681260359964157674943110361955580985883611732324477845131692699982145422664716716365023091137077271499578886294918757943581778011518069627662876824559235563056319356104678521263332136837841578590976756275015448075812229132226401366034195205008103349971419114666684813487229940376069188352369267289631421601038071379697709008343478269996911593689695999611030014245286813634032841671257283202075852277815351328593891465560122983623927073368808838759265362654699932886786013956411018068561224662354843511103882170948063911228597206013803083748799986351534973040530137741414339471652939405127892673104395614113199599952054664211828371973639439961142980254204909641344641851659491224900858959994539781496024148911773668840961830109567749384277886882546591438285876790907333266075138728957731146494208495884560443397714126816044963832382425853350908939471416427411974235683764122541766853994492615942713919932742714410660629470774181269437981188089437886738634819059414880096388465746390629625857866312171057890239208655617277699904881296628681148315893054171614737039278225639160204017506179073163125610353556335786445223037604808807996829253534508972980786604653642120842470361279395831685022033115191853268677606527319520992422537705035208953653819873626519327112091827385416997846897859143439561341640142068765835226894413765930845210578727980657345121654415011677072661603922002037016712606123640737025212660978861568099174821205702167419426021157973144650564584085258222468518421697479780986476713266191523767085961310032904169192468804620520538093661993104143857634484631352819886715421052679024180658950624241945458039482074639323446785934040582094249168992912318665267806237672673116995193390357989374059687785786523926712826446386515693075121165501571930732670537481285528058583906098997077070488246408711097509536461129754921994681082221570809324958145735580374459226790982614809764763147056289952828162811552118115319415583315381576324692183002777151942536887329061410491411144286618551234989951192611602337824992547664003666450983411240090538399935412295312901748280901155153820822413095529438705791939883808971485269318416448313580703033890099475010100165622252346218860468631345724436879025425612342116192089057280623960669967211559146017714642142043383537529074103245915602969149822142911958820617371755442751529133299692522908123082762205226240032382612207066752217245601131257232449017136969735976493767110487909119210068185130526934320446397125226851530115771857439507819635044391265808263672953932513869467504021986020479732595219491708056210573976753704776319387622121492036630066321297878299561423094250373804058332842180441029120454741570947762213905639536002777171936022582153715671428322716453321127552428450458022985311464118682405372143021561304858426561783321795040182048429934695963800849140211232384709391433559193005607620543248630278322919970457793987975628908700459555755866938146416595413222654954957597103828632057351013324201990178324935634649944420428574726938845590957663787063392124174075770992729951712323516760870137244557906081277573941504414509293707771115065807690711190997610348799068147649000141266714222670493482270585126685370807763084751617143032318228050188028347791465579784639133150292494725059845297205446205139915089852386530303301576584681784216478635079649474020109467499226358399094326517448275058453806467680520267499083277078401549534665234969532925559619313150645410510241185765020245718426714705016874512173203645561559041021258708375006147090746849307075431467315003104593488329595651502926908258057533406377201584148676905881006553750048421227755444757802773502483787701992847845696489444137384331484036259308672909212971127553014671596539379403901200264438011121269617545657160213805324207942784813600682385073174328061021112456503060976135690236440492809775068012177953820456707162282084004981666860918889790850933652947685595878213092261015221018404109867479000629281045316204954734260798116042954907344630869134680652173522785933962182281666790314042074549810438560572571814876747665282268606284167518225088276199329282102035098281551234661410905342861294056810884063455089482158099001128442285795190619415669687088116242353147018478968066497273900453092541604593873504248170236714987447063512731034476047268029307923162874640156576150686021133223169495387528900651810425459435861339561353562397008744715922556473277676484402387267076499628055299789258733040956487772174988864924425481128292185931011298974272861183229054687782343605100341051439987450688693077743258625665976767243342915806834722648296824047534912101061435493746676483848589623142964143406376909976991406742370102860603993198971626618099390947982553335400351050433800159959780125189048691403360073087734353793246190221234754496831520018618271837661401552666320064637411619484734407731663158831514961025783477511061846637648003496701860456643438501126459495417780044105955167800079094290909859632300921087200652339471651282705591594404854278504541649585407034449546953411410593041297886385503883495820225484338398966588078428849210643331357642394771867150596071441051350266870961125970106713415766382540390426219365961638778585663121202654843952125862171311245148996103258241187791258485032908151181514230545144471412894569491451304686657972175421752226416719967064480503891834510287626807165699083743303749757009447733479850540570814461949068448953065916145289880090209400447495125691923096440049742463618911066695499538344777169366354674587452903160114283064929450603072783879984817159399330606964525391249139060172757387405761110143484292942241720589643500729164356073324239406296122550492248084867381587462526835897924022527042195728590557753090531521906773008411695058457072818677600525837866157189710863076944976021116526526622717535672778532812507560166341801979962982506600787127837086919365049154535068273412797299035783079307547492982285455672225520408841694848275133640395980914843478872189990608402507663753163223563887723362950808175066673969277626952770390753726029776457661027677116011030572716542859105309962639275989056083269651467383472763496177279046548359752225290741055403472589590883106779299713985143621370116879530777432711302610103974906428637802398760010670106378090361785352394074205077960167126010563648434004628185058324115694532185680626846473824115136276787123916242496155952380880132879690789568638712281123498307674594080590205707839859193436853335351655226933862989182523798705928638792519303368600557046331282332972500336863021536261093404450693307993906088912892022490906139857671751395842455829218785811764375165510355695160470657038324862987799075520665032194160340553788889491842439124787975741308077437382904162708991429413520335542025836216213281219833523047455547985053012412067962544679390328729327492046588994424154038760982265732781379708143604355477801898336339902798581584343337327560813289776486559878184377301196482807951983610401349456624707912126851429805537169467726241193120403053378207784098511869268445211423032471125968156094605124393246837483860682857607379048060481185086176253448309806938455829813170959156281245695412327449211287969514711257376744838887778297206004279957669261423448734488231521301104990937612381916831224285668725445098749994667233507747393787049112161373215047139463439778235091055401808124404701410089534473350620066854719009796840685542457866801839430383524826119526508505306524801974393301757942377293195267503420451546235918856317269537848086600596911207430740682701349734994891112011199629466382060054742348680760879140796777287258873095183565341143012595175435078931553241575079995754025288175845353892968346182452318241335115480052008532096063271870920296968679507107759242501769201402666869770112721978668300446220783267472922598779098415988645947448063370398753057986035275412700185550022070059844032041764287103032853273295391630722668104369769860141477888049179235254700370718919097332441384507530940056761624247395047678559034262584932004750032194117005356563868739704339735202910164815231893019602849868078163859658024155093927398590931388273380763860799620306379849781390074650992054945449431472671464938176633202105303724468751657906616074608710658778346137581591815156446476130327629353001782825413584655782474896960970679874803621159441726822365546611252150737507005253709979198353367203701138391540768784185200380892710894572642289573264858844222419767895731055717231971128930217635024284919806278484648866179171669275517510743382492185059714247545493548196874038665914740606602638991357336954561670636692525979136311494751588515540594471228924863127237088125518506553257398026276970029309571121572157562756120583711565669954942800338219444937189147993679417019318438249605619763138067172144508848832528111483078705078105812244215718650627901081912343767646901460160796980149467181669724374271540060305357533216951200871778988581906030782156582802528181063928377426663030601900442726052015829879705905155020620558821314550047725076456581932924268118952512518933736270862161583602579142217252659978272232671471757579077144306562895402918711341878664025290865241542411913112685605580545036970039733931446113731969913538542950335021798352629670345649331414285639373813879210414580333928946852061278365779280128527830532480436159990036955582717385423182416597440291807543708730383758133231702476367746472580604492256226822479037434103066670991113442227876861516468881872815786084221559350565543104294443010124723168878872004151912895201040732895985253329017037992975111684751582586668464030788625492394307559993372634961833427910746250983056236428861631930835138776429223889104570400747034041655037273224016541333446420532781389858425115089622060530295533783262526435048119463651038789837552503913030601447105444498689394114012868849850642183878174230555005222009054881449404726396466296706629470009492300279014616969333630508169449904997576273639264618634987823652147259050195649773804294679905678012088273423957350149765355420608701268637577917817797794707238374722215913735499024340059549366587800186530172116049998497076229015526978250570817226079375016306036986436093377829081651293455966296917367142882960708464711997401550205963030249351664913149582960170314662538872219415332671451344071537484134024565117368747393355453211991339309338763822018018445437008382348730255535774951021502155936807537431361815463480324546312957418091417868567837332313783234592546299367036361743874530490226255746491646453690878590675451994744948151987881313148815886691102251840891828845228957534976316025454246134736823716536313747076030843530801979631597634535379239857850474407787837200701326695709641223817275718384409486989769086053973214205475497166622895691616468389721074859364707681442526136676626350033270678806255696697256715776828891208611692050079330898037656772251620529943886809167184655647767021219353913016198742504431090934336103002378758271641820305010723967093459521993862947705238479406143908157735821107399169440328076405178382935837133780360667804475721355793733229332297494336396524855701140654424957353664456161641137576107821431981562500757921322195838143467958743029335977996211864493161822161286211504946179024045785649881513959786558349355122176948241951371756522031024820933047432773320405100819291416142808756046448591396394866531954946969410169398839781172821639728802058070566452264503564472387787934022459684276976309784553744350060809771361093671796200882235247175149740309731322863837384142815989157981314088281312114888257066385301865173755045299544048531731531634387310870164987949274624386891424086459579893877561321107958521186063999393657421534148443754859321724395790869241391713572260639951305508252503571288657550511295780323545095448701378797081082387590658815262113016239856634951275663696888808296347244128326036660821514314160965542066823021508135054964495146287246269815233899787591176889675578463434979760118710636003031245060622871473157185275922746797214436145542531382563043592964542962369073836191052540583580186193576151100023158909885566179071006594482071007311940325403656796037806859998464401799740819230131117826690071739621385038869178752916907824577407218684020095421393776179838878405794905847708909507165171556774709143263478166800018185058952966354803410445479633978357675650309817874761174195602743835125025496024124612180127017690126422703272284549443275515151565523858694828936848349777604840685993131906341772218402303569918384356206343609369376860094899122418336270454942738034182538147250526964196873794966529522828649073382623794366893133106234417613634099554805813965974559777841947349892853291402522291255366544949325627160254388176902612090813372887547871570944473160610324254935280859377518206058079974796632652908359016220381398877046321879455190400058845978756912224941438095359775770568157755557724937752071141174969777496480995668071863378721552120603935951595110502630169607753647915875820540897619895338184741279253502946353391794278985391959228832107207922816414476013207658851439271524022765610957210690270529766139382482782318533908356089048041270845632404643940324153620633875592673116183019360756548580436738028119026996068598967640174716695361474985594240896690637008232386101926678755175010669996047830026294943919500051969352719865699037467206914695128293359046461558653769771405542423104844681539471930156293617662884626991996825935634109339970137203361404709946660313211035762717042931470334560670184122054300464149091929146911895467237465889622645450575465782372501117752489228355720285169935757513354560970700699437169655308493874517285766451059808395836763704826312081733183454477103720645292949802696541684657128455480439378425852909553771303979135932261309014353514371283170873166056627167015340209740849135893968833680082293140624587337779827683441746233599161857216705117743128164598763640466094840152387296691937050447201573890990262436329910712171937352420525430101238431518372749727000223879444718982137198850162445294599725674543006274506523884165570499569965132340380758393040911656191368582396383709941208364685240845644884555903538616139268693377241656146897184655333255370552503606019307180789623562763096650649403037669950902136622426138268968065430966103798917297388239740907056897255510532935316626841687173266023815310151641729408216188841572881382323226516727966600267572750023414181389164030833324922600035847781124903503306748019679311758275947296755785270555219762482538107398099730542037562537222770437460419648356544851763246998666963525428737754908700699965474944867504802643903616533230241298734627541977587675713080596220007415441906958170242501014507967449437398904426360696159011748065357572594730431864656423768549964930521567159524395921611908039577495333533415281932080607738632213726273213116660320208681349191250136508464706151478858170449917318756080775260137435016480815017385326316957563601800169218595711997587967852062468577578212172443892502988201834030658248030421421011882279324798139383822018668688026253338224698924331199768617421739306434643206855241557788021769156480329723440658834127085264458542149011109947556085211111419742612448770134888402982191912062666167318661209092206558260748228869850314133565066577499685587838203862930609139478949819741057021035758816066810777950902866340946609051513492749974116201505531940529313204219357047712151057734541108788812797266731126160745490581368440456565346417550124278046955919291735607924758091780213001497205988891907579173221960729703962294149241342947202284838837640158105003303388509693560080423578020957546906598991784079212837374069605664677628037464349855315176237594731646176601224338346274231578086356639999406343772667097656680964010661061646484755082400717157514872560697053513676324456900672251896532655025372781812798139102227851451722908606113702412240747665205691835949565986092491903152679482578327616484386426449216641616811593984886939949137183165053844346278370954433950092578838542522175361171373517844567253921509032418000418419781595590115654563660489206244476834149433042231030703765922966707138227930888506195629959383782398147030389342722397226112137444937174718025237089966855130259394611313981494528047418011747281548443723920724221779558673963890439877118306449120893759455699549242017878589345493400869180907874300746046773762315636544714117636608262521514417020736192671792284504264515979704532030821891348790813226854783230615396456222746291308812561685112447976925703919523415892072095680033757824409806273567451589125252639205240027269368119529998703745501789697476486552422003609517768714328477342649936486707876431176253519480093125242298566708894129325343219166343430589029819400317713921887854162268178665696731964812371989093834553525557541850759398671780086082408047492933681799458198204163852935269160603545992687285564854567233912701120118773558994283857137882460103029042071953294152293673304194529536401051223019922893549874021287021923286078467765567489065549665670583753220260281679945398678491498086557223272107858232984577120446772658437326173078559700372920084520493270682050502180893870671583392476571387096901339988474911460321575542070622438143573090307895658192410778470977334766667342257835686936894188223032477399711042186706155750085416681023969343757139386112645158081919721604042323568839917529881506012584683563097291131593690403471384721723419027851327647448750659811043835012872165341649999884897856208887621363539701407432272964296874312866026814755924906166770400188475637620487605663084385569622506975160062448393234199652272997994213557101848266766340884530625052990562389099047625348439385905506519328461504948750740958391689511638166994479175168036799775924097889754730448078371648956009778733965507691132516510773046067105824284211413051358053805658668917839259542360934134353455007394979192150590891284955309470142224156280713102226609986287638004355352329850501474577566684793867237239423143979917899376480592664473344224976565962631246280368932059016214651479151630320970936480450683685734322129031132848164865693586997796339163487648585727659523136987939346966643057315211546628774937771984113880197968695930334713347898768047007180724778426058723308518788687871389096740798659507918768195563980046194455067158465742986015239193567668052433129737267809556259040511535520338179033288033562480710385441584698009034546542489954205694949645829752585079616964762989215449589642900698833767405146409143368526254638495125398591266947230680333168252860749719869309695242293701167037806991035743069692067447049334984245888097053766437714485864056662970226748150050684963463981458286669303301113194741698971651611340649814314768795512559893347141815523177874942416582741564006304579118127755939058406726611851184575170828128490587498227762473409390237727202570757050590872005098148593751739036559791841680531726448055563975910414228733544542386995624503000108705197462673742900562246239520548376791612658652480546184646990474139196335075726578566401805881710871724927216275075431017053682109322858053265827594057441576362138274943227248107839718111919493835730169779019858061287745236024321311401471321036978148342361811020270825853813636513904552384786481393085988263087051685120106626174120696399736688945749880880497179443263351782146274592581488016812605725157761251819831667702607935279780852788947209707930471984330823756437980931151122490680894546793970905831630377202579873487107592050927083698196410074092246073855336762925785749128513366842522983009629763181766131301499206860531699727113073509800144759211069291291234731763498499753181047087311461140532530668139427488912905074022287450886796665736174694842429855451501253831489336662915157287084394932853619920723594450179498764502307911829594763837276044683529463852103774183391352350282422037774319466020761349461129142382997978942536450629059533128708923022610476012802349130040409415477849087687483382392468795651227338552007286350726530644139330703427579703399413072456050591448828054781202311106094353049997361236734457148754822682348388696784220878551537721681739805252267781286752330932839503497125557314638886096019164115643131308320795131797690231987600139650645244008472489233897646184790746170419194006460944734003710478697354706444292197301830159912520751720863631593240167252142372556979333125907007555831686838930539273269051704733431759973621889298577877245658403783753314059814444412308077114922558501148775407117034155027259772664033764436454409293536540873864102985766988972142236784406462438469424139365955051374875120778651628374965642195498335148957160895288596165847824736405978347987161935969688879930625651273158758217588391205165795460329999848986401253318865456553764041398643127950518231208337879326425272512564821898396865637071484339907226927388114346119288278316594604182505317553480396084904460601597473661364729273446025764984316429167566789978769871740592792702531514413231298802928879023876291255066553619931185788817755933916023206383177474055441171025942302660139574688726576818234346961705924363062984294805436666622529767152224557480408326504329697613747433585045190639671370398077862616778744058828378455120586756359498601166169150075221426014730608047949390915240834377723720521487979962298249702259439972279912637252123314744244376405393401773182103164353610089596837380144538753751752181421468882698432347721794035222133658982502689728094853878637405059633172021243124988777541358605362178215274885074265046225567826247998055801781958420022210890821782928599417602426827910140991082828187878777608679854555979966433278805344807216452056166207477792487351000762238498890042019680524279744815071993228274750963392038747477126713625346227693126489002713541256395842179382245642836785283482702296804214211938654153701415398393032210231809988482909579662969712751862170104427931869299832165054733818041391546888988052527352288446188345175793766038721602271883750244058775034485141959501377554322569528451492299870881812978988217371423494751634543744295955600978686666162221552385365002540054603990590988052413319936507983015991999397346233301955071875948794292168099511229614891738379343277749624980088996666185684944157905621582817598874122504865327979547185012141294451954039449003342317186165401515023394304938984885691540826763003255123908755974598744585267507502502638758517652257614947127163240982257847334101738375496248755591754635538123803877792843571923794879928889636478854840418246931833018837506019725162561641013325524598947136252629451439611874901299639812838907870152265950130483439076155974381945413393265074651935910841496961153760099345246232112588527270851892111382557149248300946662020902221806771833569395418610151908107281179365060787235820560184675044141891078771940369724115076293330419284925601772332571086776138889885178307213707205157373095340218284151393005943500690027728929511121208589730110987816365167717662128252457090056738829793840995197520644442299942088147169135533919670707819149929794720402979197309483382834671274454805235387732412931774082400904913541212707909577390792383872480375834470675125351778566771177593140659685172824599390099721881726340236924004858430514358675403958156735022658925734314674735548337375245499569605927562459935416726414962536823698043916477145990573566752241971779870830584596743570246187327360175114340651718874708135850996433905982659151460635256399526376601735459840054703041443113361328098121818307836993491043646048373281131158985245540909051769142607340098608404138085008026969345371690113912424453202359920205593461815004568705553830718443873206663945670552288041105259979971191762064973661970134157372453296391329680648530739679577326737343767332085037116459780959816208276358606817254460263347033114563655977255531457514393552503535223742476696311040272542722215390199530295150811804111145978359425567624989671274847061423478993847886719040362434343538503158495777855954292532008761925748148644978597136932377341219011602535040638400591334369816650711911201159802912035416404988742329092474746527783528424137240720888874950767828967813910270226526491235812006124273010579362345057367524008417753429914927048827691698219399622442047539269439370041254166824720439653001152499003786872404383046337874707352771552748138397966569610941550154711216726198723200338508248302216904606213220038161608760242897500839039229388339885634999254120091511095689176875886671193440960541488803335190672210192022484860688514787265462306204089972663442419411749619180566254439772210770521943963653009724373438079073876056001180255392581583239047074963171397154305491501041388723138272983980012296797196835389561738004296821498526325699065008746492125153856403144837345857552082310229814705575898380470768687200366900141957891158923785188326615815560176695253719949207971436453690708169663281333558669760160372550771981386745789517297601997271260001908839648138106526267110902213481894801144153424493303085168581554148525662182504579624118287769089808800265613835763905767167545226359502425304840802737644045664210923154448999074478682573049691632295177030673381589303360382682167537248199271672912808099694165268209027983047763247637125930736551553784647401531487616367130080890967812204859573924539395542128083810229861279366283688432128709811350238509101036967249706150788565703020778578478933632790363123502368584880188438840621091821481887241294685364009099918425437454225482970439712204398507757946235211843867620339654313560873771330923586532358958208474937632002097841277147354618144272099632407324010201787200481278610476744288705509749274667475377425604977857545068023463317685770523494979418442349872558107894691407507621396788652868725796324324949099408210522597799376529835598788587441125579866897802754149434873825062265188234023752231714528179901810583785231971863525246202745242465496271573492549293353467772819258560506221307863214855934225607802572422880407756876770803852324460003970667472081672626618201544911753234560638877309307825774800680217111483278993816316992277045016185168693040595174009392706978382983596451067149302672649611229052820077525939704524581449885252619149892924507507561372704866281068699581318000829149261566500653449225298198570833034519805224402375577896756932702776711763250419765731610211366264579956062938652413468993824023566721990020635160000561562943779308992823740760805933647019424609853608566508988292835509246054799782903691831721405274288028352706769317122019912150644771654779136498009284425086207370278217113247032345338601438095432542442342935487959231639022744664744498217453315153297806093787307157320247388215668369898915462095902312203871154871382636037985432760656900769150237512045264404407834641295530400548663143417350581426984179057749466782360661770757839953854976929487901011556621866176921692178337628182792629963777359892250327292145434810242093806328951920272734465675926018395884031885300715171937690378311844227746087258970457381555435100428980235835883886559840041712984663599599656562510152419384207297553818403696915805800360878437833583974742104065568830006966315940741942751678977473434929108027029088597341738301711064125691811220886614242953934294953861901289798578966601732303301779077315827014887512416939407808165403325979851079999822422832404118885500648540533142205955299483185288299745959914164727706656676282523658779289060546238837053412356449330778973975623304812854482715457226184218814343053657897756718325376484136831992588341253168667037609657122419722850180208696816678042099294529097592352618822798031238532331563137725112984630027152775896137143114837831178215844093998255418676541617430647442827595997322625013133264664491990806904984436126248624926566787271357330409912691848607781756798685361652410084490687782331045207740063536895050833926105472962412101958317526533538793790989761993381808238119283221368313194802849347646962858951414333702264181596098073589056801505909793664316476814128817526864095860276944466645089045240356107184891514735779795084269552307918431476970693626492469999869811380059316068491691184377419496939073451051076455253530697415959825102738409369721985197094878966338969109471135418934686258267760939151701936005912439905988708696986035855720478311371614546505483708038632569903588183366386197641526408633826610354012554296851207489497331089550249135383413457628300668446625816289592207761868715218770021290888498938876967509851602484696292666202347456959139285876074673737956438705010167935547118757828857442149062811158313051314892689522933597702454452330268406894762362448914731405962672526290672282407066023743384352988338233423218019183533639242862561917448121895648826243228215471161135563289791538812464077715358058522647991363124089328327392931440035608093502915126869202247210825421197348134222189182724727228024906227433757832261474376807679926071477460362006353911634625320475378448776307769771318842633326702260200101834786139226197005593478365503175820999142088173580618097054469061396536440698098312147768982932263452959307193486112684152961716968596245285281685652446326683457373188872834787179043233924059400704202125439498466271522816500144622143755369196529502130672616495741412284378133201064466264598918714466045695095129918598057140932472700519121763919513228061755637726614191435913808054044502029858889952248936943739627844676560855959116844594203165914330803666844503574222615260355192459863889703434101656008987847160239477060515962947585099841720912657174436842140041306573940618864014556572435447974682688313419866980323565269808572553937560525607107779873485582469167856466649006849008304532185283158632283883049411724238922793902231676345069125125522924678061580389142716326558067245217042550334464882839845117205418941306290418877740729808435151806691296209921947299377257108865108724283281435844393440118832369597444593164228313559758840573768320345364207350517511059926851997489165008316624784971424995429022847390542275423471288172631545225994870802663373116579155237135241539466541022805168698685940357195015302850215498563654159802593073824346001855850510539396933385415323161204652968521618064307774538326263837952088166192040044272700972797675182125576662989588324592067871951819567126395511183236563077114187887602264871678619758415758117370066618776691436285275982850973471783128371408762940692066087664315505174711554730758038858946131074487106581156636258880266246706698841499241968369586103438241317438454448567524110803065044283709455832357339979663100261356041462084678910471959637403990611044077395669972913537812747581401056565175607614390960270233178807294006607425841769508191510457017683335590245002231469779158420665341082195539206321657708474848006877239088189429101033387452075860136695981811074228057367662759673577459905035538271357035880715104461164748300470751359243741547681758163446292844290547018444130207079748319452991807697809026080705169969288601452723110626510334324857482037091401788825434992768754135027518500388132973371286680434327486874309534638304465702350736967053932307832461721356006017642287059240318753607814811557108767929729792063415946443885647990373713701699873364426727515180533537019926770726147772926137357767346282438567184748453333387454615528020126286013012216998052134202300227077322171480034519368378526318307621766078482950294120518031415953039754614722199866717008384148272645905285978627042065986741773319194983451622713782958798364524730434305178045231379499228014026617745185608097305976151419457112567085650213010674416202306114686380096425578942047966713649646703515192174095002366010517559553590919759687771621934256997258312523253532862923732086235927241113343020754614262329718439865713387761765254265521272544509868038678492231520956708341358900563493732238515096267053571639103476289879752972254824030482476498876172494738652744137940883444026381049998804724495136419326437144662735921936696621591410846148357085936746780582366331707560209895209700310058388051304536471477640009078274505976840271351977116806241538532285265983254148313910602825179074092240997451382935919356094759363879192050234689520756177704833531503040679722532303493356719071833197183917515261362155201993622954783010240919997208210540356242015544510895149885645900557205444569308991462398985975103327663439038410427325172176603803938592362787289625363394444756455226294000588259060054562859243039589048798912051306423563314938864148032932215010150002253841903390749998067182065624338005167490629159579899892480587451839329821182791098518748082046711637370664426802155713558156275206409947787865301574521113686527803963245887410358650449132981315022386263149081696640525850234503618045542670276253340007534343079679102558354224918266045067130212361833266253519966924812674619084988876018735031483354703252927008595828306786636959442961467799076202791935989522277522217614012499615940754426716945238335901007918920260113602785264532102110727765579128609790874604748132808161317952731742684936135175604687770675244190071108657277348502832658485101624385044506267014992706512522576841156005818309914326892485786641551216849761043183885082469703217346717637091185278472112216867159345704469529079761374381077564807702644770158773577839413572094627567417938557852776078875133134882268155298261262920709947242447343207530223712052391475647187449450665039033667455630723792366082772271083771405147860864678338625127715621077411093754798325540390129972660216577992239134015599628744622707166899899278643789324214540329290535202124492075673942095442019380787424925951243750539778167573487765410806082126147283250831374334177518786650528264067581612715297159543181532961380671178982234072742485175680529893932020224706544167403024951768587427130268149658905849535957701136305623839862328936887243605243404898524678128052102343549807256822906958064464761523117051075589757714733801948876719261698987501215281803616917758595105256721380183694706012277381623476585358604876269463925780670935271057340371003610184487464595861384385442189695440943870284703610048791876272804999029349010529204505155911052328289861377376931956517442427136661268067693558780684299071645057431461997262226235147373983890790372769811759663868175413294011658601122964204915898651024431776400821734243984642467117033387973416387707922847603090902982761190146693712463354897168328691587055637591582271297616240252643283786669056156508467907972899245908714967232340501303070183497900322816256324199571266944521233283133987053385916861606066985666749425656027525995186668838744645248707045108905833407849269079091669908299885126638105522432421738416901061487207020568941955145851787551129919475713636702542211552920625347509165845716721798584333423682221814792924363877940764921312939698363368369852479779577596138725052901481851801092174166715525575500348904873335387615535112862996992751632042813659991372299424547301272143807324399470311995425688926626445823941537619902716104355564552347212882203465264182453791625768342076716730743803601208232544869717359963752094019867814480465633475034801703035081520761194016732401530643387437279304939568824129581406998962787975247144087351690852948595071976672619183208339953832726741603166737401082234166473529155406506600500929155825252855596673493734068115651535489114442826854481272842037690594305522625384794398955826170329264065220231309987866750213657777546287572008815950400816093999240314527687960335112276038067559451264924663811772103953062291851961270298347707406762640192447813421629656762754773457394588780777242996169294855477430850330288709548000059514526136043322671482835046371452474252753987212471773103127470731830626582386239672237775932956177375116678600870098031252362490764714161708356651245171197342931349602602479969684282258694346180326849814076215154584633834398630267934658867721430562947643686051836525986334782987693168010168881600765888162073403793768782421294999634568169536943995492872682465843932845906121388270802902475985902401826432220455098693473159364833642598888356534083323404552423377574720716241029616309867864242592465975638641986092939318875008920058805934363936698541993035973948794818062203712686873516283783979891853327131708900487962210252530168363098046169009925715000410723531969817533018470651783161216363488240103341145288171036457184729496136737939627536599282980527583678342837622725938422959018035737240484832535247464438549157961791175489543151520778886549845524108099086110743833434287505924630045740790196078675551576665162070775413325250181331546839142792753683999803138572652525994150702616114413200966048135675636143346593669754150640140546121859209176524149257666495997530745359626455039540768540110178106827508594937064612947151150997944940187781768563678127989576995149743463816360239421557002106104816954787566688011963025550483735090641030446629340699307756439292575126368530301754439604874487605849125647314763523472795159853652895329282592118739450989212974031858801770879719531825667335416725492083394254822880420073503943587336667276860800433359363121054359331010318791900864651130516984643056640743760873483652041099550473437376386665388626438299425824495103250303169615590187360236645439676868089193619207731137801640857862710652040022053408931312129592312821983878842160956070569900107905721051781204028789742807368544183134384084109703814220401116493928995618252081421856260924952746646443775730703855787125466626068943270747150875126000355694219029242393434683247185084415293223798687641752393649203057749355583422760090482792111614598691328030809957910135810728367881285487739565990443880324674358525891310723344517431942857892885754561015197279132576633177788450814647067129180943380283830788519060920637277457792898020785470070348413064653746576459343515529239749330243934303596015661145739246156268238130772571516321584090398985842070693232507121848780532804678533677856248918805451399573493182498060102490201302626390670407889253396993044401017977558930396108474251016004622555028522905347161700111824313767827856867988031232204466395219042802507173961796581869349361063652359325570579896267570353099797938700842799940534067290647221696273099428280196330853877384780167277368651620948726599455520344537146083935280786155766681557847357282401087572520776552717102312485564474011334416871810719286745129621258550893716178476669896789700657322304390244210018075162207898844593876203383780210975617425601562096586089413157110473023064867955658526805644693828398561336528993866804036756137270817922109488637873858584906696699214730909147228370166450564394133779447280380093406061413738623212829574496000368422444485781791095850819962190099454090150619970327032694436314192247434419378124476412828182997789560633997504573500739768675259662164483055455422788758226423136333162981986033656228683305190457860975596605050621051366491284384232996065661102083711226925942903000911867225401078705842535264902913587346022399100489459851755251815155441653895195633982265764265014394674537377486302375632812719832048752131988519784596933830388952698320728443829338281494594862708943651266763247376580171249315712861751659969020276962184922364608571983757513987954594172088828325931248180293390177243627666157459191254882641323413185694508295225720359444699704638653652204863661216573273130669432031896463355734705398571968072772376336721388985401885831878293969715796519586882785242411072610613040951251633059338978769172016169926819864767227534625641612068916200132325000041519387385823240110845530031459670864914349286671636501724595442866102372952310931033070375830445106536599310342010077073246782251389884618724987565832827121819462081296974886494135534025936648150907330421839872993362312154806666716066426840473952352288759352670657212865577069029159082138239161534294838107836786054884856812141922373451971990554432289146330588273114172960452097113078060917604919249899000019437870366522916265166701767860907709803198852153377491214057233849859386317469417284637787968028413031953320108060794564384449742037847836404276798242705734036538749538359539852044819054130521646694888628401424553702519993091541941418785878440088612630804268841992890260006315493083756923697140833603558026449290250850068984918835879224553386165520454387602325464076227285906988778267473293243515395274281239820466992491414985406253013094639324704857991101613626387475664895660730121539813915487680041160055051098337986397362751824281877989953571813854904343588659959592689367016269917244365690682023128610638836570106503510452522244816488484461625248318181121456777321154242489645322601379409595054766774716772393282607119472899885284856989490385074175247109567138570531954770367130337891544402753391647945254863242821093040041890772387688156250257177658403821342133127513725492773590882395254066182924605086424348127774363847073380190379840153710504894372537668500843860872029108561811079916277865107061476169751817424583073321572837020132987774490841230996570256834978772491223895329135131528252929545788501070204668420389309563875386383998032253746628283569198732199104795870449162030231103190111262658120429542415596253764138333442519048983771246151192430440885318055533328532515023366599385297925062390888750982659306199424780822390587378094559828812078211238502635943298604680844714319734754522772915294994091015145879285094810223325705466949558108038393905933123215569361197313225037831025591596010920190501417261185551534784094383133187398541543843153151452978564764245583519029936964353342337908222254497956402143833781806631089342179803044625048831766388422641412166965185186580268291271078226677993814655788274300037049477545814878554756120945650330075330674466412680425855530689875470905317386236126547996664214617431488332057814928571741006912594592512384659790866400778965436352357474911059512432623003493293313705436880191915781623950452826593009313524617487567948512477175446276524517204220782272559133768722691193637190258004532277908783522970733202196376348287875345014004917906988626712653255247539522530260422158241484460463969326901474948055208792591787984982847326969650610677798099325502968056882223319587173343172346520888767716722317485501082708128143177582306299189211887524361354103955223383038123918893872642561939952186350550329088419869459985978931725608282472407389170705922541031621572221993206384854073538883566490733672867893819049714097248545585817196175252965457047495213512800237507147486953080595810851108361276365743248126301098627749626636976956332147359706868428274735612054654191421535393907667992499507383100460380377646221482039452284814389283671453748176187780858518931655276147878590375382317090186514620561215809082944736609150361738594026711051514906011661691591270358382909168009914170232148573208721308703489959052033555903725333042836879137658721350254302876522021637108180464660532075183878521343515372115311176413244386237020109060384416563295768950498370301627609475227628501529676181277120668840797963424269838719755130116194720218774838427388579632542558589952652361681512923672157437432847855595357683563793386451586752694209133991368706325931293334822458646426045749041968679464401095177007385906154601670522268206533366427541485011595245085058576626587251315534057676052272753022600886887074018346084616251073338902766090867799800263199184141608903551790389807606468707685775861350237979524438983342379205549317171403692970251718759341079799121541450883122204784566402320542607309381164180766991803272778274593471962799766545713930841394075102843658335247255648909437671261852494433385740891961393365318731281373653097402268696174207922774710191137924424618132609734649521602187674047478644452899009619942380157403132319460833717727730374044586736010711070495226002706414374892662190946299347091553043548306015747136763647462027753229130565159937031085408475246036944718260426091157447660439892782335127346042950841461017571493253648354963188376019107967705230677509562154177755673004160844783900559309665000664503380624464247973127615539110317939259628080059091357431385848438873191378253856217490010005287185290539444662743629242619667233766539416019171539373674370624479204694314617649517052838394733118624025884831116495772507774792494915856544190890419056161687045315287924589212917167803258519251282727293695081370319944932823782285362462030985885328294052862358770295408129902259116100154205589404458142282550204436346269586702531703891854601922637557401565363780125847904826886159130110056531969878945189840640650911459444828049434315136568270036123582382152674714187688341484869960005123995315953798267941895529186656061057624811224997199772279110729451442058594580509458690608138697226781365274532728477066808726461459102885021680465806828496315748036839183314896405953247807892581007882304977397475612662084473001203188279440305614233661664766374600214541823097015493663412947653687348232271360451813936444388787034248988300193612882583396817421785775370996943879020024383537570712292994087090916734526300554166327761732794608812174082556020726630123329518808326590711723886001100110157817989502537257334342971089956745667980982612047585699289320598217036273988264545154819571748526784187304400576303294601471913271846221046443219957165131353404455695345497994180241062466726847080259417406991440924247433340284107795507219277081652855940726283872012500282201138737631700269888850983229590542472669390963007399097988716191941470612277358430392432586620686597055497661764424735091451765177931210575052865127883991866983668994814392899543201530954062782271700010413519575474414293289465831907869899037529650505925003907645415345471193654561019575309192434353915358281828462098654737661177830276643943645619768564167811999095808001627690265595846794913391036880807549670179462007952768039240173638647983468118212701110151593905913698121357989122606434242634525943294833094251553814700035442474379563943241012489638446218454593627297460305567579316294791804104982759256719805183532887052342643498446677684056488033704686221200105855731437188065680115799845684451840913538593118612487840719373376074227586383880710497228091066622056818650686680925903474373117317157792684271172355859870206692849366572696311004147527018609046593984406888085199581886142785972519860253762449764089683007082679830620499232776301252183317333545173513207235195284852174624195769613912159095807061781440729656345568804515159887891965953424804406010965792296525010822788593439077774644579355685140836817282584339746535832302282470452632486619534226935287134812544254055999023633723673657691225741854446118940653655713949931110586219903754726935372617479845494135602803338274333394314767862432805324663141852153910119539636081438667540052935826755605331260148295828607631147507761336109214480331454870710880761590222786420499669656613544149122002884167821332878082926976180426761929310551067636247795186338360074391167277811423010052919757579314751462537531842046771775506493840029964650513080611839612871392424440076988818630854130555963580290392433428402834904382420573747556734080692365567833216397932155744214163103867411022594238338277824921549931046182095062270646666293286065656510677122705524110376723986335049270462054758976557500774460417301290125211972963891961224164295385363484067761445514392632797809771245163430552933771994404108464339715365497379263599565528468545925875593851405125945077311472392920949824734012732578866089452227309150854256738959188384477214868903919195879044341135528180162965413853963251545866075802295366271427714699365337654837409783486668449985545415018955958649518086797948337967708175399938990890889841544102875716307768691887051094952184060416620853074570075140665853489663146245510586292464245855080916983313413046409673680952717757736513547804970426454344020348356515411784452291559962749764051536851541878751971237790651420557709825457253077368633925665887811355814746030236714389898603172548025142867685114828873851785678507735067115157448314653204094323783232101994098187465220985202068423840721737223076449299656529637317603472021217194450902546038810691146085739256146707675872894600198154052691080028341788065589778491728788099171794577844400978026159968713309021993901146613813846144478841542749632251008474826366599974392720662553335042002243801413460985313530549035046657145716363575817429652067565697252572731319351143465323757903695794440063579716638947037525681025889390851243112634301417097127804708047441744553779664903367133264703884837469072875561721381879926406623089945011085077267011043406277160372156966345318205967344630044985523413415983362382540136533894105017479611969384904372353872668296773543036965478703286126305066128142988996568990463498232053611899478060006017175861606000374305363085283480986742075732545707044782536485602353127980503870783357857143960589276923817687631609553015734638326930624602097765607491408707595709035524227216333102715729594700774007945781073184667138923700750503347322928719909265051756200587142140468270196145472737368619821374672316298775293050093742524358234371307783645500782925715246656856494113358906697414514116207587693552091427501226878647003601743939808555534951005445044646871575955841148552438030880397052948017370354984856622184745326705474272616055379796270824893548270671367816117083345238902724918397282616136744693265021263551447112891192536123841378316446689565985868638945707187734716398482159976673899379295132950674750710224960703840509802403198726432271483459456783205768099654068507757042777565996588980872569315042095916389165673963395916459009003581794368018385475335684838169692796674001672071697227769733305903807426032486679492520138392504608170850965729001713895507941105771764109403134165250352328505882427891113309036904267911665720330589370996678572538100207574008961397849120890861812149120670995855280204790253247991254633086747156393319485804078684115932350892470137572763680305875955398821153339314643405597026224770045638801533402608586210713308741072607724962798220564556588050541597963668933837554813437444423817839397319506629032887586339770737140557033508615396006395000702855797426833000084453994490021750093142067945239067070850660955544310788015248448335264768728014904835419645806230578210099821076429638789459847098137947898438068498161120895195484304460153160626756524667664988434490647617899125468224268091674014559437359267835843012364029516716300077712474985660265611899601598868583042513245372588013686971967807610774720871781006989740439688299695227425254678856175369586869567822689350163981171063447221261653423171858313053415008869304380649009823401119955393212068895938897287914100513593217666416133277116069159921640273097092254141220073392953295902789973572262688446303944392557288678450102985218147365668157696495823450552782415682244690241372732271788903154465247433376273565943453403107226805813040670870116840364067136135368578224708344869068133638029173758767708236112684178554029221323387084540380095626531959703701230901293862937713409858207071671108280808927603240459915224566834301412141729545798719390785980783509611564321379242870988852123724326615733168294646202516877578316157286081955171922147236727442704229798059139607816269851316185406625978397101106931783194740281862819754752595752833210316694886480157372342763422965706993577292139497809887873225266529455771042839053206718995019410598491704007162493161623617677449962266804661843902880087098161737971704347320641187010918716128542367037943636951577299899799912400951248801999358905008373666942356810425826575135043353172847638943879267980774046550246763816532351475896505381173786565608697685252745022105286453836021082624951395470263083847561614290521382891795614210944556934586530412909102931594012142748009734555271378597199900154260936265478841445814574483168956926208185440808900037431502560974892797127887707305415904956856295859186922976365749857016075967909307842477545631002201974174964250708032424299382726189518274060366901566893884013898330403378556671851284194428865430438770352296298154525165583767204041124489119392340538864414863045544053325815803492897678363962765754853510117562148967216560622413835406042222234301508253716519385186046255600113279582828723011320205284996340633721644521121662663880931335558222589214779476025690857536757228694031741094705290925404529707636494506454176901235038645433744053789185558779247680877557284736055068414917209618582673121671672174831801915700474846090672317513476567341449630778263982550482260470232531361732399838513149934800909625821896211794369471675522162331068385184322013257686751588762812824513412675791806852199893604545283900077572976989858801815749106761504166253861165925580065250100151191854776089972171284437673909520085357567959087517316294736582520466068233528520072452539181036507342279596645227486471651862557111209465073954288927067557191382406707976083992288371312866613568735750873241191932540204470054101224155054449001826486157754076602909487582203025837435529940490473477911460391863694775099195315594925843404148220962116395577895548357550476371785564420866796346297418300492172125625157839384886327960207786679019860374200356468661058557193604636675880080592169420138642714190213521667104073205143716092412313572850824430287165817183420713629853644764449326021574421198091203302158033339338501259309376726452846584417005148505606719287738405826951773646536120186291526513080668701924418435281774147928097442072733065592418916893302177979371947623682215482058298872542954902747170641323810411596357045936753515671582038285651375262024890349407886443957673001219189248703302202359151093405229643158800534421014377286967314573229197465960694177811718338563140878547069784708110548959088996860817645476576078552973926634923615488579338529150252761904835606644367774887496781150265597044454110479475004797180983195726148907754636276430364345791627611291290051941217773635211834736849109341966571486748839146364551464141359906606050519636621363072087913650256462275905544532225725302769388592900031857571567860121173547261025341785103844013098333887893296382724677583736833320183015087086022603536999331140265932903110030595416910699328506809930866944816180965363319345217664466161266468200748570138282689501132548011595755514525758560339780871952822723550633087306086915883173712243686253036143029483241907793832577450713534497975949713824414139996022776427634675848414875183436998452207348916412324415618490599842947106682300445535858537406061732477239617703712904440319110334031836764416018461534075478611966830790806603061658143034587325719455071995252457563757194384146445111589108677186633234510459645863862680006581609132834951553502874634496026835677453575668570701335807542557506315280422275266859944886883838914688427762129239553114042655822457746716229597432071876873662897203659865701997232271860160426489558623383900627514978069804251589339740979628431831501853341088470076213237461808716126775043519195622572502864904410479508909480926845906080472064223711858029955731759724719122157836832809691731255573398361140561173274928139839698399251450137586760681437564621054112427425580560494474547924036648371715228114938332917522509691294147364897585654274602388022765511465465376021128033055942996719040931170331465486371364952118645439841541401688347623476216862906023118928824930903684742663639900091564472016469048759918026173399877815877895636413002147242195775502383683634504510125552939559727735868951387433237337384171528861549964083806491088206620433239821488116108885505125232241494603259402250645309705239942779331294920370554817032900391705375598919707101905234800878154518516916676369353473104291000475412764330785119483057182760167073585817533025230466160730774907363389224188018340458739437338760600202859675296795799878412300385775667827983830139739367348151122106564754902670288212390931510253736706951027454456218177594721882968748936240873527489669342481150802754407305597408119214320562297362037476656918207246733555914818524247115675282006544538475174282943995650654550224308697909993387732809600277387551440508998826394065304861378362468667134883379356425341276684349171994768637110560680303884177320369522974593067250890447281350711000282817583803902731382696321218119867615406354673655246202287150290464029090719040858915817523550170594539601459142495480172924642677412656243686371145412030575077198611321915785023641645728524620430282166847244564068136329958608917022549675034924637079850079671697140852466922251873560387221387152035710964327585408677252079309671953486553205974466169747899633276060045816195959219060551508297022530102751151195229496670822298051694858971025293595992924891575198273502194681573553008851073911203128904054991255445334729421886690997991864932914716684319004476440335465606348735961203713801420107416373063404407664022420773781987566876002798913503964615973477720912902156187488973301247674959811297659042950097506467623234104920756483216061359369780294890845477948927080438440491932807482213149423055937682652921759349643952556029063601181497331482968339632126290046281643488367605894012644799854632969728203065221568259643626314055304174288299869923693655090091534636338538596231189381678484786617629088543993263000030135265740901716888583437126330148319768568378818019071917323039433253768637012613453367739902647216395703661492678189022131017914817204900102662065886293578184841363558913905906158128007725171049926673472206326017219586312247480042254150813129825843714530134854332377473830576570232668127372710553658517084622129648884101356904927148617348602135565059706679861837542753596650775408553682645536339880231773759353919704735784568634099935654810269983624781277331170453313428889000369444435543601412086629333669703233461236237018857607716547701831243028615013453474957786120582082684465230432936373936125659310108849295832679338720424520762321151404952875251656507627493302753289382405093098810387095946470316618692139953609206681382643012484831120713433752719394406273465854963962516835265954886218387066672036467225859489560362501905438222459553809006454543226789663628364547099141719592013490239969644929460118800377230275242213382197447771805125367791550792646478320701393511362448233938860890691132196804451921400851315580098197940584703958292174794776760127441111120344961942317767330750339738746501724176896719788842682296127213566306814689376065273637650496906674312090950484548298142635470576406804250763189634856124685241654754753460732131321682055873957995786265992881517770651131177102688677275450739590262953331425350544395517190935000076099384476437656884929603505137773361717445985069073537202595748987972243042575045554896503363641246301389147775807389072057964147287299466427678149046512975178194839542855144014855274437004929268720186685363246132869401643344315698793948789039538844758174563242136997993514135392978313907291971295799047994819257238936412605278161303718977136706237724592086144198306080403947967623296259346188193195434796445764856031487578855755298518656793348329738441616612008274632019753029616830349880700218004481290249975671603380602579077462900897200641374136059874454542560641059322291337416835116832433359863632914055767968164215491345582152727098501267845071527573130730757835764655353131157119753639220346732645209906389648422664490325385673626599824872121068603494472424320090537708897423587054440980095514969338558700742771919334805393037285433241908121113444391066732969720872481532716872136204869304113745310300579251962447206090328910753490180600475348625561566551957313369203131582711186713914985633849229620491964606458027562539711613843471630162302021370260516567139195715448873972000027670943292694237069344981507608069704005505945085039216202054074809839006541861385321260382200369402525286694592450712169045103939991815738773955805417635929632381322878723412923386794773009680336173084764056010785572094553197319247256095643380060475166332690483391026742097294146432551943546380072454979031381408513980912838229861650132986226997954529200618314330914529400314173330402554523111584214623486766048649682372842094021240915592934539096306966490409144567555921582720535936273210577811803262215295060666378250588089312371170693801438441984904276904247636207003216981548709040175478298967932402713058039380526523067069660172352713401905019011923526340600510103990701858510791826386948837274577164339320067720386679676640434068235680463318411073201690840383477000144594196547569323816476828272793040376371413370541270118168366734114124645464991453792305583376527248406569016188577048105729137751991001086260801307907041076503132588169567700865013937643136608429082873921189480075464636563428983994046924749367212043207172239651524388955307187866800007663396646602378625640854258728278478819337436909072405880806163693471552933351723046967374282167111048117480130905209483089097700411618927369341651218739110420812303417878301811067160790525619039048174570021710381217636644579968059150132634101019460208309265174676377135334107839755916031093154248010612606177258349506551098091840195212613984518974561167087161455765780239131529411620947992896669463175428058604870246711723022063805747821185307060612882758243820044484120752180699921152070504244832246161581069435702858093989637466998177797620807315003420790531258741563911330148263418988215798929664924282238356578459137340835795103645637150304744150332860943719648987081847847597749382291021344651908192004571262648803396890441378290989175534810920390491819626106036652259607539031326828499494134218002623793797302561244745173957579200156321758394876922808252167568483808020198945677855474331887216650443984720631346640976247853793176072637959683563288244096773454742349083589697114690519933438913424600328701479026883929510876571131585080393867176431452734023422774051037052134645537386512803677769666729178095124195725261290122067894473951717890622895767999369506876429419371935220327970341038124508160542429869199741407751632121853045869357457806449439214668908888704344731728007155934870544703524429438793454831417296949691037952800033820874322279060760090760974806906272461403051054933802379731925457274921925352696520729452156449645776667014722826960391347816790621422026016585106523206794037463945448902724715719879794701533582718938352720038432842394883902731327525640784747322344977258455826307796422374275981777814383362207106870318852201090182536281960976864792884438618658307684439084546073783406114467765844663140134247402736488753464174845442015155957534015347490111650441451077395152023990342040637964469664611443270035024590300862744254126163280028149546323277416357046562063396390206439856504829829675701751922696848196473027202667586391280806148802439468413571371619456898356831638525209514862517931601210416937008622451440538396204279718225100509267720722324399451286598911743471732995703248845001975533144410587349218397630643216334791217952071259505181601027506699437213373248103676084587928887949572300704645854965641400703406797685476000262148698214644308706267473501316093890922290340191792799070531958814083270736191520155519886708767966913792638477601522529417369433619761735564440935936014144890463879941427641601452751882728329067371470860099146225319337889500081949234633347547378775807911947604639053775526191532982178240383471862159738711330941524589947011522799343611568347311846978425981699834636872840555282674364677161532424812081891144506412089225828688699285081922680846653535616270261813513946851020798919757052450266582808388106283961874637296049642245494762034533423631423326361053661939271642353650493796011140209015766346928513807580445220927784945594377025916263947924047609993737502814779251119742744312313656242287119268959634059756660309172882273225879089991515990721192055474070953749493226163468786200617846446653316850814406627372695828655610575433076360693707129502007591248075179321625897363024731622562360788431887168821262639776060469674363076890824676286767886208665100735178204717432813789927046246430277727745521543613339524201007666287181231256066142410787721614873429158193197620920064020091850643876374023272445239151722378720858996888823279067035486618873105753377886659439645341292098128564012451804498370613766292662374228054444938267838633050239816208855260321293910861456483287341772438126749132379118639071013708726475805703544983545510447626527849569921896696863908525348695874618746550476294405538444635321923834801283363430908412991615801164375650775157090050406527681072386099539742210318595581346817157867428507336531206849023130970878973801166595057660674978385594727427649309350518548835052811846054162490215252708100482799326777677609706372702929301064462862063851055542302493612772465246657429225449169071739810215907880202977477493835321778964574177477657261630159598284366098018849907949021288761223282410206540198599940497355929692891164053121610655456407669670083724810900618367984533787398794195994248334567466508439903436913453301421397100990673490185330287622067642649403077528500693864775934986935223451656966936390685134934353969362280950078961957815788149437067900005564878780522511313411087068226115043104687483146843203816809518265159990808661534965035931546562401299125011917466263382822306693974604348830384313675599618333491286588759141016140142313438915573197702661870939476848065204692693260420528922384118144072553053362311195796297009039882399155725366101394058567575070429582743078653112552651743649309834834551815888486042015566444930316898677289573559209653509515769436437414736617066363376847905815334503576575454550458352163311928985128082594278278897980640104302009012477167375070860644642566107654023861481775147453164788931890026411687639002965943663414993908759505672326397428321416693196059336635813520068490732516688324496078900739320100420033444351608169250603444046272921052184729257761519760250133295761941906498449846306048966499563685790708617087733182803576238553310862853136776224019436586815020279033187264151750356009339633947129735398539275984405488668103248837721481234973085368600872270417317265425361133358108962929742928514369204930656801339837694771657979928279069273552265230185288073129119668504632284990021029738345589014657303383885360539199910782583585101334426840995786093525294394024666317113021457249364229238060997361569158392850789932722280581463461381091029114873655272956535021577078615909255380354085445940449007383198325083477650274778832473350775399850638491106977853956086416346280494844403118019254527285285423042856604951557086376332561647505149603969243308668680607766074042089048565855361742731731256615621078861633795395964951887568751728636199165280626792785426805883565351524107547251255516992720973737384438231549077222096405030651048905032389736941548548082564704006352755997560142118850916181505810240992614280262235595989732548897735009315930936725402432005268435658953007758587972104012844884051016976321645558007187386218344541200002682437522075475052942175781423086282335786462874267365857683483564367685916976522039022832028629047068564884967097350389396606420441412505167629168234492211338638474218733069141286905688589154131603448546149779549782269753757445833468755814083583918123350899316520010692174021386506360362755336965499563479510792117045634849183792801178304045910693528214708155154538376082666918439417549577664222774397182141684259110423164825763327429564752493817791425766552133311866464724049962777296235461533562808903662573919790960900188914913793108268108837740876514964877971604198191944959040408131494723035196408914368237629836479651977778519485712036855981517999157861058943706114679050703483246308866964559523627900033664028484721037081064749075690938583438816003974769995315730319538164499312469931812783189940423966269798488925923392376826812199152744156888538065386610380245600253943451899455965483382744517335646039278168866864718303402394234032771645254683507000756857615792138492412054956796636223012950636336599061113342237093419761979532776292500180101655619082458925377663370345158227412469506965592061098569119180161451783360935919625382634724773295696201099859094777727012976694001702290964307648512505014169729105825871211292084808482479122675553070655198655787042567365524035363679981296481027793680609225696586605914521306009432995665484135556811370258680068215572114945334629356706582637269639994793224717740060717629726580093772238818172912785074591362921933539805887656188031241217045988773442505161879172626754198842847690801735579807779917030582402680956404054532344560352450477439355079382975510685175023127980618337850502827196275006857444421873012397709517852135960201983923988357041484927806434346736423685586802157691924169195860878287752413917690739077142664905602729750264366164018703202873776455933996294680025617508973627922016067061439423785765607164765129429778172322950205308161691531464858511216156232272468620567289657180526980464040455629369714291200558986491898328423157293122370624128638761520863203468537298975361770778021423973794052615745868758080504509790294424372310482698717856642757798464943256614257686464068049452248780976590389583375242762021357997415822030954981618075654743218210627387665957312625750107206018435935547661154551251123446791546089812810537682913332229571180843559423570149249719714727196055874569566018255709498165665815991892716920022364131851440147711497345495518059333100967601622962717486291228849696083129375941904482649282250452883467405969667487066595662396414426100867212542084228982036075838532638157682715328545540616895874677142292450700313452480763983495752274628879177757864229571595072855821361638896146908866663391174780288813562780693606906378135265640085941305595420227107889963860081698619735200562133137958419621513964805096149635935332614584521860612514102770703608166043196159695897454879848798516180645585854111085500699672814336740794882335692582837004254560402514690672014620451465003323549572014506887282223419088108319855706247192928487292265837059091422719412646302836451358419246015743684032038416313843122920254131277464476491333009221189802304830796492278030458797473913706215964763767182534786163488452924922312088158178861189944473780369556807151602275515334119051752297127751207636379707093851406728797743779218567741018341742914537191234771561737249545614443989120756593742468554791017780792346861833989013713782826134354930001521234129817759148234041750173347709976323793633639449172586020662697177014737713556825795747177897705387954387486900794411096850897253077902459523816739399710406049783882539052806681078164392294607183447715374693136229856630569024809900844229554504544971386320378606826710467589045601253427498368929937515269957318089540581394993736017178115422871243001729508472441549171449910547591673654241640150287453665848209405441152982275139167154105261352220268380208495360785412330937226681051865736210547282214507854780739312835035308051087708178595282281418582950495758260530874451611172395404681707817391392325028501588870713282507896704299915825843371463303575394526551093728597020971644469609491021722646985887632979901769738300498438228195759556970149284693653921613886634402479327981860214895961748666838238547626339842710620016142434965815102249478344056344515032126006858643458065819256229866592445245980085480323210556895586381577395502326185926449631132128181537968453738381913457462788441258232373661846866777652504815993847559683240037408314557625199236044820686264304400288598449579546188969244875624487204958706704652168265812683150355471098408400874442119832183018077511405694698834388789167415355071472331184284549533097472672471735807847323529653180703579928633968263194392354008232402996167169663714102831986689456480975676362364200207032333243717708339118190626425657544384158539600857759580404167101723445753946062281258703313153125495573680752297052379106675895948342687991151220849640983189125195886234669072525300521850221363401601299449954052462601142974917214068296947301589909742055370043766933732512393301218362214485889560704827506826658098539143153481795379554494914637925161673666498112396779251675063337946338698738636526394651635199410594987305973289817856457848025365233478781183919603011852631500540695930979252513437009590932466777321598384194277086240635222319365045837489447814477372204935876075803941759091608752599734622130075316400851744948606756573483850850832026088599179517271517794162053779808576230982042180197287149085563116034068918465373291801635239673339163344648351857141769706479662010218818572840418124364562497502184127979829930298836330969973228045869415797717995377472167494005612162543365410004534965362820143420839871793662929554692934954832501922914048204526613958752588390247745179974696808576905924369333637418631294507474885820108446120165290525388637636775748162882869060853891624422110967456400296694423153675642791495613796565862957928095852820113180145769904190973229874528167021626923101533437732831099117487945576928288928421853611834257707673468018728864483995208791309661954164035230142104713189831595826978693829005889731350381210656819975557682838894154335484378331984651242859970063593768884037390193280581881717564956866799799581954409686340420130101247732305038801807822907514877262932859682056262781856734913118830905602547738439880539085387564349991523614739834595228186146932331408577789991104033691051717869151871348436600336640166384277493722657396344963504149958192560775010226934952897544328360335372770794190275662095835777972945912271553675570698225952915813321592378576734538127242381191865068562586846441100224821463303846234756274879369728938126675645456249960478702787420612741247068923706799741620992711630432493435550323347594186733773307675294458113926365404772490519199623358732337606556713503888770377724041646838783648710275089051508682909471366972545199566319937807238489506410729522634086488768278357220711004814584785232462320291243569043281090938677974962319981430831812106443306485253942669731308378789532800597740501837825149332415760660400384559714496854645635106245056658216164019716359907195240313061189111182922510465893733533726970688222470753119895506812918558518898846785467491396558323643648405615403048435610504186510549697562297136301158616882001687932353064018310193889189990246186114130102374236149737951113088578392836590386940356493528682185255115098295853694186410294578676849391752131501499223517386403962880224416471761888146985322985279371036088164117126427361078483688273961324323741894686571775965722380857269024191885977878001722970435442523633487269380033852623458408736431459583240996944238834253624936336708142545418509922758433642682334075892990036642180067710817472282045454180522621094770786960854372777698909850424648113671080504084835547107932019232295857728251173912259158813655664433473921128682168802901548531924748522312052243225078344806375580284589117457156271709922704266277499327202051271870556221152461201296561331943319591032985836382250534821360827983747020730234059714765526240009699101655105394740487968365316770771377114463000413166829531956308379336766739820097755024014555005323656871087967057799136454168695608746507898398962271640186295300596499223966721664988074721355494949384013599220574186328318846040598176731845056159380773911639198500633720073584546417019533109183996451404148810329989020129479729007072962303530992256963470870744572757194020212909857701582813006116968329177644732161827040728114749796185901458000427962248037514256769593160066752020142256430965237429545850963698098576234430673836929918416627158068825102278879073543734841197518952798701151039258158748434602021923824835941426731867081163638126926442156389903659052925846076258127270148307511341115933838327392166252980375063727563944879451607694830513241934460477506453888434977120201111478469772508204024138128663252546388627445897691273030962478060380670676996389722541766090303231893456369426103194010782551400243827048790058780429571450729115287753461060088804612261756232640417171075980247934700182671909917406835023313941178024373085115036534034798302232454202615531501789849181878754980432861959243967811671078758726283682544412253374942524753237452909091845484324821818042488352568468356913237424257267636223237736637480349046827604911689438941786866404591233130364786776982973799226043412126606266367210593563009584572599023871779886390032295246982359850976110699415530649842735206374884371834699224408730641891201366281092197253642666301331286417423307872071319397711726215861049853084619322996210173692716630706836956252568073158104823562672561862625601751126135847113640599130074745733408667628606816957071884002599520960574787862799388016299346922805545083387820752433576531065325580958933185456058042034642376829385633276209386466000538715644074489128580516667293017055204779442567570057105426699230810589376172322457507775610294172563392304879595117045136550499232105722135950957134687117341496393524521292533297121874315525367930848157738550448281960548112133292201007854735466114542587070662311472713639272536298041632402427717972430912385785691962572014631538559503037154901835573724343081022759732152800892815746731987516537109089896240761784241806091561445433871210869402261134697032133933261170029523143501447005868426145920112470551932360577067570925587059237982567987439921442607660519268384303589118628358478439540845081752585260098465151885063339600210631086674651594135313745245208100014457175783251485348085426406832104265474603907462750509535835104449505890216598657641977648578258517695629351260249688483206989978757132378966970701153801005927947730710121411089758227941050851387910740151356219538290168852496218023991546918503596438517491981571513164187344707685569060471432756758775317931212072278567030106534628161446327204686930282832141794156974191231089364426425889911863314412551802400974815400592007681255671481499426169750089714495740197931289683333905642846366533987652574058140558277017198834380336816928671063105388146759576575182599649065275130466682604327652574096033997828941193134390195224985666206942601114519713455038807784803303178097122723268684140035047332283852638751547395426219468382888227360708460904922806552256245447175877867433447951713760366695824111029997877384969227386343196170402067844585047296073192290716642947220403986966968885626787710627803833865123647181158082163602693483445805267211425233548958097493629819114024667438320688888169458013537165371559967351000538271322474098749804030043907355252568830382899378717994617310870731379637151622886280253340940003503013173498292709441973572325047185977519830774604643708107397955295007015623878929228891295895558087489771592375866321025891660285169395269659165179261836142819381434570226814411229170517147654814279213801283080302139174287970219482512582021693415218627211829712073115830767844856038558223634497378780839090438541920456526916652279792145027826682829011093266967583639983664729801063178946396927788874099112163101728944496231778809534163431689900223913265231954733045886721837395392382844485118416419031878243377308365064727803831637022494191481573904878589194168952991617055948358426365167317825326042755437007992210742641130438882765656916147369541244191040379926854243239030245616230857003151587443447694329633905633968488901668433873489491300825675225762185854192768923966929308380547960576023666241542990820143836859622513640656481790916027312118638535093199598263283053432318942409160942713866807820553778785826658303974107113668264704294638774125375095445722437366126876473260514544618348660360658037375570963949353821834541926190450712408667562926824564944506617836946722036330565540193509788354338792549808566958196026749837650155779437267136080084919860691948074735338932601171999891787473071680425579557085333298085554313165954338758209244378971063639004720484619146596396061021802495938356768213484839814289155468277974174036307971499004133508025196618143825628261873786290439939591753665986508475549535841018995366687318848577923546135739202340871378901708860046155964481926938508260347454879214059201743847092011146946083019012654935684824303503725638947255808303398221449568067787632893309878004599564111803075860985134518970742350452442324864600011925663718084611696134167716669956888834509904119973851061495667279575903853942002363765821834797434314154918995529580544677098780935297467213658190187417898830946850249936412639589879202178221509986935156214900482350713168954879719359163422522052547776056013483524500429301098711408943327987124809044906671925176832632415510333697995948292480161121631927502023711411280752927209917842096568214856080914435075082022381385296018872974946634742026319718826672424967164604891430409933832513878895121381495424941959661243722917292860330946393395382700722458687404945168900217074987963686491298326910994196972588471315530959864436152546405529874575020827003086679465105116996253339148700723412724950203482215614257297421586129160184832308279547059720244306638039525981094682595324380294541021244046545977751394298471164687390286044584909651683329478818978124144654517431888198072009430917751291751379146573760050377353113472181842290036244034162897358862763352612313722459432963943852012771069792040528281564653814269459940943785823272884749449604933470316248731604682870808730195604796099122759893256471166441536286891444265081202960139979564387517020924056869782214594402241936820304700201232052181444369984636972727838569421269938799552150522131401628855906347152227095808635737542594558861797486597557280507472996346492685118024007504196986303714135563621786663848141732359976471460057534404542863820603915629752104441300871067299053565529283355557974284054997619509131295142869894533786953973921817986876232523970206155494360020927628446067338970356346679018889469743176534505080983122621463924012895272387385063883589230318946167067656735772054465226629167517725945816208039830547622441153660591431433668414607847446862590787232191363917200949857092774651045046379174475466749563192772170058638167091688010732786247410671888165412289322451312066072222144162626886164913623729323366558364709642301683139765366041155217721939108898114619991997763450451496518340305831842432325439634174666508183584600197588200713901381788225203102682407711804637037484991179329189087439756725784850717547654864551985149377464142981512650021985927272600076996767949031574867613289848299039720644228535661304827914682443475015323645020263537624512185453228868750635633827165933965734817376129390112941107459589617354229941832747662667169470792597934586675825472581342417351205498698363732507474135009427907667544940967174218834504937027521892102745296683521222274852940223495569482165283866980953445449043957505985663196422089752474094262248147246148720262143184744055118231146960794517299982821931161942825127581203744490268931826446591927513834108357181143274447507315436814094481911682504538064199950867574964768982127717896521639827926341880904211783228398766173739616438076560422676508316132094112729990607801436914291659662065281247768757631559243016760586985117505847526821041109460416751487617258303509844698554272820611035237203959257425342416108829190017667542640739582751503084241075608709415420636784178188815073387937480214286748276672149385267725405485584812798272370633648497836016446348707411057639349260232882767316986921926678180545666128558158186744468437223807672255194738121454469556340723741485682878088619887550552304657061177304375005047936783464687313295549689187818041738341512038933141771776578811613860867607122232030496360631065956390539988021988033848502149244854916966601035437874649570960031502196454507266425776224997869416693182784975966262721742374678104723111473814832494506887586602401961702393588497409709200383241839798096718063221644329693548741513907251308153674640449625247457930964352495830889311764298700861985152381197770590591786969919153628597864564384993886440273414955187673417693148317911254626726932553772517867783653461818962370111034659669745047464051941600204379608846588279397610678856665855514439647953256797239338279762272862589734811712627055152349032457713258091854856200253428543028696146612120866598945379963480478029889425669132064646522146418782786675749234272438606433295194874433483480634320178769787896836229419605970068793993906704536661871160250977292435414480442502506642931045812806664232549445145985105893252424540171604990615992556084393938026358112819216634261082975563504418042812131557985212964816214186616140605297387678476416963484803853127675643907604810864791769906715262313965220023844494116646820897255745982594435701057857384777001798574707489651887147397198653572076535589086632305161953479235591458996005065161793785278639224951725894596337270504257657125341267387373983512084899632876858289095742408504743200738928097150700862267266602654643865434277045222566084641813334102749812514108726484488662320459418386913252848757662534695755324965006207442685240758858808957715602648496070345165542629370882793755180165039501440621940300651112679806650092201207590201946578171592135227607028453116399410480532486960275300321294204220342487325967635421223387025821019364230261344203980092524385905940092518477117149922397008896522607639404862414107338763771539196930803959004395588848931601577207796187628632016114105763095202372356279108297401392222320098449638583499645690893103951698734584743836936357833122328865618605846085240860565163845007208977000962655814285883791089952310318314540870935118708649817904523267725755229337640561206686481708448725734016651794359003923395259017436210069960027108395361041724354089389487649404942692927461821324393221473418329145756978089019272202481751260126996260671421749950293685786997115935523737294497015763482634542671417045695775413596374388459942420413771942179249214862820020151630595432658746952844504476822722197948612751038349909710828929934772897959932853819067074671010889229065064051573609357481587898169491677660219078825227603131302793836051264549414214612163984242592965041473128111323943293523397466449861621859924808709736461929853582217249476971090433550318090225292529718846876141582963483200346275648608274580430708151314902996481711192504115720997338834682071992812015173855163818985616799919105181316908552251844516962736246851413214503568825702386989317616316204650589260437659816242304894049760204636048873123500084708053998122364600594690273759853487581739552317747413144418928510917858522964730619513252640258677690815813008771207431510909781608726950071005349983234812226567340820896330191404477914614579009031634812217341237465829907997830979550892575376631929049345425477486553425273182824286196571213869558345861553452667522632184464943307547206859387741131288063953763556100121074431690405128128856725724110519184688841794166145376285808688569023321078380924270382657977889413026869173445503053145039701198158866207609592894477667701737695469198426592978012228836488625446508513814726004307760008706093921555341238080819581176396747763110121313293509219076014510586506727593300299533286008485004737454124217390189372719974800216702606019720341949839385991131118847201408681008205662874014255736128190217314734610553937983161205358192192575949801192504632609868556094572192991606572771063434132846248169470284707902367118449103500508393894634607699492921658521904884143786022870998783452138988885294332318668847949335462036252725992104821446390495228517196422573849202456319316592524779933067897043538509373818078141508071864962781609991174921526935651207656297613498948543093689765813852008374374106773639253890625368313649316556258179970363666786047677739745010866860863585617816924172770634249033088471482094933105765972585263040145478626055844329248445360637354367858087066096214522621877459439151002432566009816049854330838204141982507646151457655193670563279602395040487072220519454453352714555446029065183085994123937090563226353708082089533289885375313640343772130153932301574072951405014374945806839350545494002450014816697730253144617016026559822747430816123857089784180215416831611554455979204721171399678846651021833691031511260178171709647953944505535101794440876438855620317262492994348943947588317971244498032002757401644751158272656796797623429759029605451770664083700105555606238556355642705478913926083384658100639412568284923478819164310490700191269298132350488504538878695743467780572306956400469270359267930244414391123858560738036683322986008425032423817356517669859380242657002009619798330745814243519396495600655200335719601345096806092113252790022567642947359878367645161516884170000500884262252276745059623736289545991486438486137834874378435839568100342683173610131264031855503327036489047450684339605573414835441441492497855759644196750043580784270349184974476207076988875708320573339208225201712544077958098174643119411164155364212007003494242891996992356453203784529947160629776957865621542060780608239829902457981709624212526383837805623632073373156774725058053091548051544222998494150704051793656757154556003490331967909867205430401987454500304491273188315648555937612159295194075932717071340358734710091071775350615278749679566684939306425468480755124829657831613856601251400946436154275632838823332146022619907098914384148627412050536703071225533812042906389752708158446684324923231176295185907042693330102497101708238146622182239627048816053866963007173536146394119879802631206969744570103678145641021221787411914972256437484416029740788392515658458602905493075781443195022851688385365225051074806758222345922353133802534079327560233534217641044504126487065598042333852369694538868400300114727017340136636657218666780571451687613989794964348147448239359725890079499411230692391663392726576557878644467526702051564379557801528264168776579072102791692212676053725916483676516230356442315819456579660918191029675936536066199607001869386318828818231123089193894222493563533458852807723685799411395790572626875557423905744812613927549616292095927862656212760814469681253968985772932465108582094308557153892353722217396055198507911663029663710456499387735818848339020078781067632118178583543618133458706440226017062857904728826919578488404240816519505925239085262206451384496224458471586651105742715739385019861057591920213289918660791068235291017136661249910842989932801233340280361331294895036656965303665034729581743167757417943621741725383246548596246702968783186897781529241130895778235775374458064272319114036725882480573567739265206151151670799162879956613056020399887293881622714164729785505785955295261092380244931983360623009935017600883225826114596727427190617536598566623449093174333117357300292663517429088514833223236806925200985050256352677775969342401941833258938325323124669031039112678175520276197691609660868747714761257793088598050716401310794522182473274617462042569385556734459668939710007836625001348268125341913732808737418310690887159195702656875017480079188528915915090127963681755121908067298756574820660647705881845205017260443938616591160367250418642153623462831044646862205707876903855227602502254745498455237742630809040062613956884518540202875414884664811984688380832335547413139401961632831086465843283210990106078637401101022917954450885310456810758944024795674725771678259361818421847084915658634854528413374872789981071386219311346001171073458987162099452188527244408627994353540593592004608695007657831978341088882477915700224141251839250777142038042890765291394531921861283989583306673049362913435627962051461980853107099497590574347725976073963743483560887152005687760287436106310697356107474462537886004010154482864498008374733654403060316315713539435233981500327047910395364496562041831862495705515760947340012534756784986260898475744556851263285780328833512822535366309772409244581420427278612884012465189863835472648315284680189138667340750522645015820177143960698597447967269327460535184049250153649203804257000407917353262398386801329009542417314546628256407865727900051542808306932945397702327500048910317285814303877861195940492680846027305969320887426465014250970186980006439984097617840255551568836331167774570398908199291154657024636588545910934767327152569154724272164448485375949055655468634174151077333876164602464124416908423793625289872722943080834777640557341608863398226123368109358984751833485587169928881316896035344920272060363623960441683855541381640689129398198588229066803782671424826864319511500213276882665168203361144298715898554326723783333245639444859706175800279472217171560862716721260500629092645347488036419548039402788774486271427206789035024914092959824609584795844470218089012561977592809124802314984359655464715487691388394150678235005392949679751484211215217710154175684114589235422854952421085555227769431731187020892767589802641292251245010084418417402199705336549094020244844142690439383364161625999446516697445189331791295062603869377989588796631655047947980403613493717689204805322059402539159474654443119775728471946067720872325428949615707701051949023608426704979859513802101354228681758463573520007100548922456714969082195599726381758795111843941933607283516705805571901146039961919885782323690591988576810563500551976492890919645974247374836342407574301328954555715478474862740620201840975912180187968941290952528149196111447110972172114898021587517776160998247725000959797458873011821762767822234826577411037180307440818609861746461530198110435876574231601262651425537545491304318829548251089665038206515713871675910335495536212181794778221124775693137378376594757904751837367030846622459433094556479303936133552646998292360612798140733268072474751321607200592370530126244350884656914952898536001886814919601339597230641365557706111237710382005030389445659114297712665437706710828645945179630368861582564949086677049599574680632579304786161368018046566951649409254483771909501064438714259011920922031778701256431929692249709765564263480371256344805054569351225420662902753036147031580885213454332238845500329241974327704309725503829150507492864947565277041078282444654239369220689279473923973083296737156572906571857515038660991886206452029420414647127635770652232969372215850355139308976140993204603110066678780653908622662678607348700543818686501246876209744855465692227244418784561590726493794514643571661213375515267461143314644318397126297140488233226973657025999909022266456931037594547979229255214767901200572239896871642171634812288389996041990037701578511892691157250400424031521817699495588148916881621807478030337930098973436540857220342506934059043538458106194545314268468254900664411167307359720091689486745041058950975968366878308529116337054226233872382584792271746643821855753056834289309863200573573476077936218526551047363288333799096548916819267440261641211072690101667849751153683011989966688009895471068326919689304778032815258045845555474500340321324667538585191015931133041230153973661683110285380345326545934740234228482868166104956471563079548348925630305029887396387925275520045811210977145452292665560212529752374814061236337382059137874853949431050138710940010886924688006621533808477064349410975511729007569754085246764221754450221601193832353324147578594954515458931299659979717442786253652218061873516822948893520677753166695966566991067145046361418452621064939066237769546523446946766533850632611192450248145815062846262365170573853415583163177024141616323400118492965530818110558367786439554973366094518614102731895489579970616118752651852102298054160195115083087731435874129307857810036253053229544150753817566868415229518809338016982957512015584013610790995446036327290429845778877530597107956429645618330617804153657401682298585853500374418269537144714414905621067041017215250944624008658585857579810316295824728751565141226100898650154622262726205846457867268504033340275884784148950193154712770246519882218058361112597185361856003872683409349354723726139894744279097475816804007127961967264546461455482856633989575425067352261833291043274878213404219892122677703859455668203846517353517714751845076087326017263937510593092097605906099619330727056244560491594947802013170520087192720674730770832529860329521223189878371274800455094445888379913310237658247246618577531527551399014627879853946238813912878004610028149364492779350777497061556217181459043720010741093987319359070441470713182481840474161713773569310049527811477983038906372085755019932080212102272670823581555426956974350584801370197179583216893363211733936590060889516795180827909519342214924636891587673572524331310221551562513757741241880109710275712540224014886767858497470740387980392146450810407616166015008919687814562631748445805367214965146465925232511750250386165384216267840907651812487402684752819371785864551701724462118533298736072496218659063391369372916819591924964235709651136711443253290550103431425843788617686839545449459087238353835192902125495218820834805488420905070492393827489582127337331755903814724558292907828590717129564566137367426261762422824850504434588993830846204417860725937772425049096359380183678219438274419562153295936455612436939102325255779799338780927247234036262019873165530070688317895486595521337668473923446465294321993322556051712754731622825616888318995053019733171826264501998632710248238447036683031624841651338595411146903326755203848983681708591492358067931564710221459411227537271158135182513460966685526089347052211076157955931122098396229934340480791726464980668530424462113300423825005367810848401307810973724368023709516496199150176667573145251919655858720106728465077339874081411017185353103376489529108331598537701049148014725892863082554079544655265323609092767756164130922597293951815371034650692096406182147814778395290401479783721763122981044479353011720477684381408707329999851706120142550479032761414280605167432219584910402914600720037424350281417721863691133150327600557151403597560882577191356626423011053168796871462530571243495836527099602633278075352306193767921435563680693251846361069469233723150274186800037046427201252782638724828982645648538706676633287599699430640964038226083297881595648387933075973739608551139347616805138666774368692706147834665846232296727581522232908000618534062715255024814572019403235859547252184613855686358020210478962848513528658300875791340602831578248872340091615306749852643808276528065447264748281317903261752078969214088321973918530553786677774174752829901071069353962199133832667278059831142939577771655255444705400749174744121235555869183183774173901873425267905917669108570087855149452999677673870903642303406098296414860768821867006616996639329188455191284538643334978287505228741252822497260156027685907235400413247552819342392993414258939705215066787792611851953179363583882694604940013212375365978239229111710911887794875858670079912238738901795460481975298901453080787423936467262506241277494306037941329016432853732486540282506780488788154080391140350991274947037814390400916936552177216120049981182971494094537037682524203105212248794600865169529325390577388504069029215553568554369731921762615715028494304875037307673545941662129653122177141138914080697143053868687895917999655355852928280749058329661524090774615073547363259760647581628922279348263183554293712299736148228695642889667822000543136704752698390951707762848569536184441291242387064596054575213091563708335163817546165281560117219824174776920365559576080510866244594159375855098635782377028717641373376508252851281304511539637836691327016474939317563996327985019038021979430142000036015155050129918155718553734041970681777513889707287612351283076261852778656785646984823465990266580794999768820165920414197134953582518976421874409912653025545848075153697031959314574268357611820204015865257430189455651780622093356857430806798396476795720202390712760470921670254484651357065201737136740507501847824919497105823421113573570319409350387795297087164256582345656609695513172821093554607039719506870599159679264527417767146530265614973744214393032722950041350580596034663972181474237681772720288243757875741199377033250387665115121578972211095568191601543478628849826429311846097882949520148737349935023310068343611799358701931045960906174663581644829805886207215315633187973944465621271437713561084024379343733522865461029971344098522388921185146657783564396136887492881837085378538450915005629015605835859300287768353719615628799547824031658731484550513941485768235412277928614879989450163306117644282669532722046129353850528307897071439104228163717360569703225139780571547904905992124022518443557630069974263635876495393554280657452296813640261379713812126404506512441975708702248483563104413293974708657284243124618704010784314939668699286877685752220615579611834068291622870419018302528243172931486304406672829389399804372540916567097553503141588476057863022315758338314798555765511991670118018621284108677889776002802180000319449912601833593052133911326848558189508070391740618827930376837403980519263644413391889897047008821696889281549714601893895095465548650113174715078480547613090900041506817770156866112768629382294688690912865366671900454726773972863309407544705413964628980176632425091815690629907624301402318805681659374355173114137672127216954150812098299828189049300884053370387313884755063764964563754942155590651883774007860235624116330258453463791036838320998524602474071667002346299272342306088873439649948518300924205001143665339553208652402073905810034217337233347740580858536234490365910385582227402220553581038602968691257467072241855998633292055804605615473936884748056203054905230254386219210591877747620178971021303078203589940712144008512745309944385656528574372037191863358005154683430214041282394658704331669636385955288654567481407737839033350813932173264718626025206294347586338564995515463022072204277048899127948036473546713250202305140408547342094628424598829444805144288866382947964168134314029534951456570052394034997133321887923305693177832138462376796504309074301997922405932274296287180613218167975628211375849054107004081746843137955249939139452682445962510113954418355317736760569867148711641240001711218841146299423429273601713393849686923725568985253541130431849503067424301568913269853605555998853623981026918725815883705278808582182574850231534960452745440626513550733428720858927081533363813564952151644968309317118910583722310677153807804314479158627245468473529173540372035052154487538501785357504253630643184925924481709170587874886238136136202640397546400102772750940787827051863423777085993281001595464015356764441072214691173452304636560609365031773295091535177023114960985866430763952941549534144405432021119701136260160066707467807999020374078256206712806697625532317118775434480679037615155635262925905613007793072328185412168176865182502658729450828677400221064678903180813630436909976139756399115827296811262857063237977748245530197606070328764217860043729929734125129185889534484051100537696512229715902099977152324952986607386986912988145658078904302812355212969814776900497185742548415022609500207376838190184231310200894140860862952663330082096500533052424185360528718772671914613613239895729250771767185037514954581111245532435759992309446922314056509317906829208331453315035815802068101679712453380961226799655864268324321442205546549948212480264014777093176099181375373491258372348240681779204615968777512485783557026579773187069620440615289443810765345357609258714129367008592980584071122937131474378482530689786506765190849047934796014993575430753515937329700506838737206548132069093815146461913933413312584383258691700248039213490889984340064537181617701211538548083435340753785616716668923021725016527804236079955178884932081620281084805232613322280594130228316233645634718907506848174936901297946693735890901226961824303654063312434702655411304317975146499653342430334171894710807379017511714197183823598372840979155010367339406032420437760575998500553831757775277055451956991456343954476608212526958509719227338141187270110951808790167562216864594450701298194536573255479771288962619667444952524124683103581256001110396000116959562113824782544767607610871924891567173436040578147665983513153506815165979513405420261424798842880445221626228535230480908302545161571436203684641173998389260115017759273793590827309070720190842648741354537399847340559201371311653297253886239961150792110483695031463979763258066050182883087464966698371590672289634991339979412611869463541055032100223535334705505889581990661674409419265294001044089716353885357522557413451820644679946731438808773665428985551674063730091141959247226999103640122522227423437773835547382625491417147618253959707514742313109473600031840725608273715469933830619732480129621583039197435600836542328736498602123569414075583817233513426665048703232343794183037701946088981546949181059311210636513818391934418647090550137628773312785196381746629490815545214689458787701589477102914114261721269692827733609905726644496164076483056116396434644436472920451559212731216404660094153403024904284394464877716041560374263514781193180895140719398225605390103265780222346339202018762768127881592139277980256205548128826991992030072920827690568356382570355386156590597803268627433060941147253631794324704018685444144115261023222693290956092050687471214644888976668423304340716065506575495980329819198539046282695033596973945823308856080632782808830039522588243777002252454567634448570351029650301056171733442854216957075959018615487426086816274428212745987662248513721470319830877186915764772594508774282206661913939913161133164585982163473838924840554259144656143226090634886085129208912043435448000716133806997839182280057435103944874960371355337319025396626998755509746105649545116932980731860506944030855506233184115888804724812159118170646923949679960021287069885054610216045217686032651329251889188191607220598783374866675101553185548699395323278315116295838074413161769059447287530341768976529543415080857777233861127651076432296073924134096294332484007689887230071726656184607036136661475883589170707936014162414077398566264101106322456834275809703791405651939993014446343195282698601232051170644551211602336892950074360217560237737605350871872965969489818359993149397022645151498516964796993700192967681130472950240070265449239738700761648611574686662369637226708739358744393636791482683711824255002380448334461851143209210750342182320990498690854256280433920067776181539318982065545350954688514868881578095256711460105335464057451814061409950977429808329545293393885587737134688816954785601988651163579631499011961608180524971063653394402424042120851283710343221274136141550696680342046192830463096366071936520325190768276803116615385297859651830491622645200017219783355375415691957219828773114273155862746960004702039355145214190552944966029619847749272776344831198416882243176999448728986299030704515038144297522560809691193248856988866042731152842250296982220875785529837114958446902851125730752745720363301732584983082960792874988023884881012856040474970112518109836045844989830395658499674162243891523670677375998455932189901621138126671946353738046071804111873866290000450752494603105741077252032268729616808364883908599769130520627108883375910100769254036637535804174817145036069938117123968479325919542682197321117799105903060707555948150783095205210024457715044848577085937740032716965228889261950766908754103360193287227427271916302422725524457553148262413026599948034501255524996846910657135822945729971920899342298902027686098388106095800717745584265349291210555844611546638862403501368073422590309197723262074068469036218708490949406359878637948381595557485243533811923022780278592347356220103433052698643402312952092388448050575515018369436428388701848732012333669630871632065763936489533031947737274687150953562993780288706281057378762610594945387846795773625465157829543258633655003650862382550318585188645734532636599049541320271889580313182438158949667095009166736702996101317905073314226904672038087752446423465595063038899104172802084508200275171822067213611540857848934752163712771186375181132460665804843576153804077781758551531649962423399976930794281588759947573495996458450641867290978688395626338417029931462975431424761306614370816278664108293203861695435556383489725846176814175975392289329267639467329615745866938538193755303603483981627458642583028084618609164797786906559734608005613394370438152648681329449859897677587910582116643151511170683165523622859856465290136096667201636179407151008312425973712301078444484353544040444329962126877157628872099155532207963076862044577182430210853534632651237929834858390375553620731912788860388651171750660832491343726122434879545600723150927444651920976310205857599701864343399251506168864476046689017565494780236402746931732186781494855774887425299702018708889288221321691056932424885427552041322894913759531410796056985414978328286401516743438486797303834541234457087779423319472433703063951647949174670427987716413892482560682909508575735694621950666800529747742461339963618898831697009968700386432776195970047798872991720313910656451487512071252111854103437517520882607098034281486810426375222618231767474677283311717672829697781716412226717236298218398149829582329873626868963947797563138311287484366759064832928810072200700798052408390025261204074454413864406687154064616829041454481470309280015623380930384527309005507277197320005028490674555555621227542157922141216198499566123290569064893504765154764186349219837368615254326384090934089869158657991633077933622720390570628853373726767155907906501216257986720682627217363221670484786012034807861180660526928257566090602733146039702300639737967711239868613691784051558175222421562406296060304376772762821508818222773340098901881467789026801353080335907538619102071034155153680841935840277310002140111660885716565606753315532298707076903206040088083774614626210343069109452170348881259934410881838977580486874606782909480133284493646320080842341710308106164296974263200449539129063267397319354286901655204977433639995125374933276422842514972774818061650721354479969226089539237413000927679489132674295780973312864499291330540701546362267411137664199911457662928434962946666496588953634327056759443102440669428116055579851502299486794445581762609987875903472683088258460178314558143946164990322139663703427918904072477068609244345434423745444971691479492267075506013647358205250332695977655171793378084297314317689358664905302257917340555617491946485973953935892594681825368930784056886188471120636996232555812330807643293952412023051107895796736804044419736460052268563817474747382884559542700344801055276856824428986938692637854459062975385581979325154058905320092668211677057672950480666888062518877496223889607861641736582122703945482655200850467004220853630284619106670734767313139322198374665137545072875581248701328012692462071130390312593265704251175556906312418507902518354628161628799213489332640928938943619901449339470267904709564787445938575320888641714488866797682583887206000812506581905694702765550920604962309495821175285298619954952485300323785482215924751694076543016319969693260249231217556407047100695329001880913078969831620938046284209932506123548871452875383338038713332173857845132774750935805595312787238153798540811643180095733739760853048275684880779510963263202513266560487925892184178398225632221339315989382597711364176901678365012630391273849388428917200054282776217241350864262310325941001716778418866517827650423611792368086102810922409818143619475379015869188073858033415814072117812076944558118864346021651144050587968287586131117733856650793219193601062818311785375704050855479958255730545594778871320815195341184591376092922327921124806485684377601858763663107742764737252141094298474587485186604229193777060966478257486344613739056650804165828829117211361610501881823092863042783171108029756355199760775777872877193227614232124272883554849625453185332683121897512732188395953716215327534960827539895738121403687401493782229874967350081632401693053718857600309241314539199013936839712977008291289145929765429910324753974737933126674097077667489605226936575951386284646708050233883135286837903707647597522522077155901051314606117195199911778090794724495207065846149936563365885123164954649229765827648367885110786687853356910063755061338903602587015352124222716233934239036497332110044819525842850097410839745928136954783341138274612319240524627844484648020501039940406961612165280929606875477890324354503297483110407416640129000758014112073607094794983274041758991659296454367616497336466691855313409852477887105932828903631201908844156744875178295543644152095123507952879989024093086871285912647193960806948655989579006211903828601114681260502353195145268075578009418703603983783070338289613388887311113610193667462246530109781757041916845256019299772805060073407294807111409988980573565377024992302746558007286427932953307280279229770313586308243109255685150685682465953084272336580068408112176078348156282314300683594918262803655621987049858832408117200603090719328162474474816437344633303689807373313529989180154769909520038698063342020064895300206423093830664203959595601313567847916097889780080438601836904519089896833157351685694864261183211101824416420408513345845981539396751568756600055813609148537263810941542541577282012290967845063903423168081270002933038586007968093555911617027227312546088443735377182191592540580909340855722370139521187023078863710965389061642314021984369627305634419863863357173939412859784472563751055528521014139561405060872345960162589917112991124539087311305864483149900639307774170045032080174951975954909945346993620126053709720909562066796984320744944267254391841453971342010138322203770983368724880768239533783376985711554446851774989995256785593777838045608908002639653770041491796980317817453473962148516197106419915697183010798044707147846897931254483333774232762474694700479508639365843250617583791203094216874865010615835725261394444999083243302690008786398138150621492740380762800465766313700884794812756602284741482759464769252038250133540701020916780149728147604938344186696946240593495917999460510542203825800283416746510055514370121739092298480756675041664519241349902823132000928980901603336595790106000279840587686918736622227036781059762153262193276300377172702767555700159975997344575999337357477334886870602262995822721740728462090685144393311924222896460263715417266211010126203112791946084662529001353398721437563685750309710898753317193697135978935065041476959063270205374909112862301834111141590224822156283848819160481195925160847142508611150597484905238993464844038964192642904670150241513609280006128411147075815098693631237756725282009051129887912498743620981957086584232517177816912462408157771088942350604656596609712659987765844973550904132322975642820681072205045732929860460747019894621251944943407522153763835301969940871472092757436998623446304556141430857551075777236356186863092164714498653611859882402489236147938680078997260348752406179946529663786590588021391353876755815493680702578835608266646968010151673603709366022867346706147653249882243980816195750901100777689060149759240751132058002698847401051852791045136683031091171161075455265279199162655471374557024278640677718041948339086338690040664159783100607217448014836216949336890099337757530829162979966365754208803431750476579133271171633706325963699261309097703293865600341186868467713342488451231772666673267769701347037391979276467452290940100518516438614668601930553464861005315674949779299114284671179420289159684728492613770904963555165739606057136521230444875287359789883893382259690752513083322780391409926465618710405136274260610983891202683290556176515945602990369180430227145200613363954890376099669272705861727384111938362790337457782150625897423427701689633712523133675129780817074780112104074993388983424793956031434142956301442621358199967798254419610736284113526962561724556244264952802773290312554291539429657205327125177665304575286431304056793207232124865646727272846543878837906444432089075273206341715603379547364935045899325941066955609459437078824987232406271914865188074241872172563370199272217992917967765546496077239196784882361594765414598151774701391966141226729875889949085709429228023302331565415245450727577600000601706533251714368085690682679948113534333920947324994596318474430088323880982224628695814366323610641481899067786783580510334352429545346718066895703676727920603224653062976888582350005500384567226167685825717280806170693663539679346045644310941239540087010602150319441692645162110240533251920700218695016044403292917533988384387049128691668331091861173207810754343364641283058215538639191664133320230229500983132708472547189008477371852985409623513403182994689766778752958110018683720761960252508045293618052418709591383051757130210791917516670866178100767847275705799629561854096544846952580322271422231081081221985990717350368623520027626060861134769894244904771478822267414901925336539263432534240378257363594988504143489024454122235687580998093108953599590998739905874880758061607242452889225483085805936992302245021497910041910173584969131948314005387963970569805498865933202011515709073800172978985214771837633312740343430299205187108640580777739308631096145954025360804414541796255972344102699408204203418691819595966427157233473675798110670055301270373446891818333960969597294280147362487689764948349589910627521583436899897501001801312994689152353982276835547642889175103328933055972603808524914393712964197414346009943967611138930307930087734260970899735013343807410467000736898023574011091831930280492216693473505714217949178685813734157196762991824036383870623484047914528500898877626922190584399657222073934108184777960303511978207358279310466305074761954460084283913928302583712156079861722736382404770932156079618414878279416694215085962550998009650344349969244178386559957730684751477003318548709861028983335099983626212039772953472084527976666848634252270609927272086422911151323334844036124776587789612869989407214153467704661630489222826970571445720875826392452973457370802121924176080252090692650905767702552113622502160780610959301969999670586076780354144979631239540441717406559405334353940613921484245112529259913114135719264373676478068274516878808227073773918614600118933168254295603512413312263637856769439183727048858076481526822596738176485310375881379477275926931113162562443385569686199098322319720658216814581022957219777972016120918371782982497673563003944499904605720444937234173818409416481838322005662440263244025821884491579134195118293147848929324206223719467263577102694473026494790574032379720452357772796132574312853928066692828397095077912049933235173268126123807116325517209168612532089122452388353439778370800443610289325113140109565129961148545338611259933544260364742264813850826771098839552854735623339848780871836215991480884729968216741130739375206501615546392731425120637806718948763685718733700896293424251120410788168078753305901385117222161148182024356725201527940199631977225445695624237579962760656922565985580717284985103093308496558997792392804605634910861479659514856894586247347950854673591068162700958841221952106247558949840213165527533459231195315444938558476080669789409569931192980474346108650762007545984698894117575488125476945768782506221383230692969992956572127208830937112277819457186237232402986580627928839320648232887162466800111702981861038675914457491143187419920123303931647164144885928928776289271902046620771982305733278514343710698432630433134944402931352757882430517676841756634320625344423959348073734988379147000715376678154485352308327122393488846093296576877743335836172662907825910563197120475620369165191810686645861747475397029562046342284463536734662660406489043218413129581616524642506683381227629217912860789009457182828091785694508685733234071392257842537768003354719099024213952480843035593641030862270031726386996044206267109215458286700294222942928911654787875874189975537689362283004500099433209280440822166957577383134651535464000955953673869541570130484045159055246350555691295096947143076102541054993762081530101725594662832004285912291825912856071202290594950175735708672881349721505332262895818220556028190569610433587301903873068219978408847268021637461779669015786030720709439100813543386587324555848759748208701059495744253154895221654490238223703610565384147335203127997956850433390743343471767888621559216544959118459900524454843119837110703213938919380320331876630122630037009343395893378085750313713746481164234176448016040778438547021805295448010201563948225674355161807277834654938513251848314098389554391383757619943708063635429039626825034708897611860369677324267347706610661645059479485533400912295652174226474238649442369220128412639367127912337270828769994434463177629202519330351881087511669368884029059413853021145180510283753838988316509297464802173556746472974386088078430038425056799794167144461852508982537653215464315531878513457281253296222964591913712577038285719877609237983645529773276731196534384658766296426082447474333096103407357319415164312077885536734690986726858050567802013647886807351650354074282738361840815889881411899312761716062047374238769058970497077872569900857390520625776957862228008628692588270836264238629702691376120918026364158878015604221695846386879528756312981231551743402857624762349923140492712233695107572806147012379740799819344779156883584457393928318197905872462456686361575708315893501035280644329038120597877851428340945309572509605358601574986422705055141624333647709910430221986007398763518064369662696832806540332003672591316933162373744195200009171348921424351902185575294170281883729880516553295249322144874916505885959444708878484774456738507941762294840684498953910899285080915442128658795755232400835853779026393538039454618001530993696674779970483710003607679342327894024851772375464626579746804083742675130301429634621515335509618972768736192459717139275090645902847496700698959805897697671574404461340690997221856983781743003337994498066615760795702138152745016730699340663366140316464759471884043788623301392015049813366248810524680175939684799805286622847677739925400430310174303473296702202920780414502243760694800766832004480952980033335218180331795455290799432599048115364757131991957166451390855739826698122302050391915461357078780136596362376220653951666858032598101214846222107124431275467310843876078891480763336260533566859696797496620913082240455971569562597895676506229580204826144806774194969727011630526600580208372142584662008157772737381566650146821553825558043084972112080384520637164231994611496500640909693864145673465894028412937647548286587210331523251547044816125217670901885743822456446622669775718959875306312628620696470313344175410081094631621458907995556171440660657001419697487604902091883972694852128424981769982805578698417484089686537778860139513649953076557952604899263560419205455960082279000097686141414361247106654852413280865664107280767605229797430895819968784721256248455778688492636254479353370170989418291534703940351862110761917399639848784815435196047181893870749749619908871375024445161786373294445288829394609875475939863692786923885170713468082902587132658257065072078251137269601993106333686436936425293001260154416840083958162782791028827348930098670169320778329038271051988690589749274953377362104130595245961909375059201741432402915150893849309101066570819421697386805117675489900830229016340986665074220490422505270426176342839645058020903263848521022130509233970118387443528470468820639688693699632863916887084745978010006251457923123392293221866913532593480706359982519494372792512864696531778977234573552448463946756962873241084885013831217806046287703135261941582864528410537144142957144097205882642088081429906215824571009216705380099267052400189983479656480861181656978887831448115304762195445140466538056161369886568194358720151245514171670061674710481486928129910324628481118037586824277239315513619064968870575912801496817039029344591304925636643161139500022267678543212809968331250390590905213824327693371651949609659736712798758996821804357239409064745765290041420393438589963538195652309053093184394771427637066045272704414711596259608001178351496741195758912554353060177021416665157957369743450997737040023101521886452849059981849196295126611244847184058232033754608970849746704928450189880232467154754884716059250183553713679299378718846385330813011906133657817269478014452513888728399699715470167717934397928106598303757358178419456301368603399424527028058352283014781962560966058642207927781673270826681095124199033010421115872346272088355421140828333885840714304995389661481866560087859529270334621389119745705881759814287234182114987373030534422873969623370486348897686798609194583766872415282206467786985951521250064096278924631169303166668462629336835911663505444731404967103766840696173561903873026979945075816566523390302397013905772846131115834499917961493445628976106485633522486399096473178928685556811968610215958487566935138642792095872316050788577436776149837431024236344605301325131519932298197684136204866634785029692534950773656292332031327624461826549212363563454781620606116620024229030032015922178993187986116306775402582696681112103627577690641434323206011228870430169229606682794366804140865116895191754778884393925302033304371876354186560790286997727340273285066530738557152148746965790586640123055578135822592179152743059789083858559162461635355715095158592708354046647149000713511538420892049432316073267495304434449944309596358081685571896027561473441763047203671298792246958267537700684858333999162809320298911456594096418333113968060815505593594160705509548198261650879351041834525175673281611358209208562189061426793039509458551996444211317597403573501358095005137452815485416438273811352738648395708746010200201895243538624550020036872233928692242134957654776356229255507854006205212447019567865208131302522983426239816892267602971270003966292843089874520557856418022390448257832072511555481383559884616877371129352558022921622947224974810878848255607137024492201222683705504335164340319035704025191282522634116868711947753910762967925990852285961021269330343180896267693431257699951906939281064362065060366194855790598659151896594070869246817957814453308346695179695342386073906111213077846822350515037213670634214670482769360308707479833241900561832770798501053689360833255962869685739394571277202985646653006975282385874036829275257697363098972714795049023690421215378363884517706910098234118615270351446373093902829855960210168494853633036690632876863283776838650988105417823710186187671214476560670650114622200886530272689850270161198796688402497859090467319733154017185731199142976871769334794244963198293560577816930663893105592929705806158609270151816630240898841516151769150217855887446014840392840605992794228619414047781448817498382905450758462004276060071755905407672689931361133308983946986045837162107134970731700164512915464176145137442621597277881400074319907960525959310595621346755245652617392351702476266715924827487539619269100307066056525365160322898150662689856943658788057854261097090115342070165119083309272646058425057979358880421590652717670870188912336328741291634139295293744218798861886266212345464168440103908310314576881807952708565098403547820559279930960067500451965854831338102193251564796179386371678125051467149781680338528342831988118733912417303280266101608151076287281886613318640936502703945481583951255058601204777826701714475977898231996018797382144677198591335479658947836637969334061455146507721601436976421223381553382198014206219513292070738064047094686545180405313930659480944368936780714158519613265623332540243782516721247386897461209413677914235452819172455575518454569470834618526101894920034607740066477253201717340048413269469692901888676536299823150140617580633812325721150018912829214275847919321530881040608770881675332703209325995263334423704220242597058264039209193880599595774149148824833986551027104663651413490821085524339830789094433690455978770019368922065950811221840301645756268166230032665714441051583316427710115423033575022480857377846985330302072850079448045386346988690609283838032076935169755034677899196476935222258360138031449684662173062160063869324509213121395008194418593453962339488431212844474079568855479262250326062533430657838365584849248898443866776533059738186933118936833946120406684454027486116553458958178828372851944741588380760636879992059579954550148382260666983718385969998464080569902474536959618184758996666131729875803274189701853392789517407628232518447917184739502591706457208093905840015843085658849537266129396271359305989768247239196452997537108201033838030258334797007715207727897011838737926516539143176289898001477302472847140831313482133984846155588620076478251672058179813254656397879816824701795578744875002956454878392359423014970639881752119546850159152566466757078688548245976010761499831464009869799226904675705024037824946032628044647492674049342881326933921755741484476449174092503374009433922263774437310326006478450877751699281005888470494810924146920138824321009533095733021574668740932174024259406469596934075124960993064372133692800695747153481443107932443350976305135828131913585884020150878324649727321285761183368365475081495009446813910365437381074063710926455159507692128679503069278273568399385251808905068650573751250767104557744353762489912419391973260449734699530247743545290243746101930861940128529153455756344235142012457213476902780111174495122783671330032959459491148643626882782502037442455579085841851591583223476096666833287506702353971324253788853717774736898782731691249666765145613523062126112750166658971961506119731537256631244999402109296012761965632242002243651962184162202472098799119231104165204674789004823401461373146762496050603168313406210812704970598682524534824519954686995272628642800040267659682832191095840119145304743462761271591949384025615092424704112269599567860975269227788159512362421700494138099020127588290132042678726816737852049594823884265668264128723440451721653821244631620438444819948547917531217155045659078333086151684507810033606651964452941006834595106538524379147571952046903525824562324642120579289315958915849276952155462930453310457003754780121099834484490588134812639037587818955287157913016406144807590177518791870183992813248257145482669168571907934513586541206497042996233625921875872340131822266299234861977161192040173159882712602281527128207974851210167591697943779031321419462225367418525638211924514200260385198050326643875598264267401694836880748381191468756127108577124452097502870840170461128682663713097972338007256717368779948353929386892334341801240714361558739627579519273462151131425223893852861672539523591785791619644619301621387227543649492380887268369679376609569979146064512089685604440094360269266091189874121059314506952247467994797190733581963364152389386869653063593180622582197710099631988512827631328593014093662781716066213012154659893378483043781501948286262255017562541013863159653919363129681748624847932233708925844671935435795749666426542291709594750814211237493309125939046274381035564177697725592163713901652100688993546703509288624842478181606012233838266346750223553658867695056954777888335521793911062492176660027956494165829323519081363825187507813793606640717707625620255576874302226825645188551307879461764638755427860521735846003594749580027725015275851109929112921110992604502562051549288091436019263591116643999783743918326221939421698928713114185727941774203223684603378539856516995616572103579538577058078372214321448844274829072837400049237073968106804149109129271339791682229352400929011258571162605184614163949829794568049822966437341365474810674748198381411766360531670925879411577980094533887294459121211303723345320333227600691650071976632867107149659512808286823428476733945406020164825826006488377958765931519242155611319513222311686232420369074309329767472424172744786007420401668753965592033835094671086580676209206106367454521383297800585631889630044301923612746307548589632373929157996646022024264077012499941609915413332653855373181922530709774976343141543055174158663355452131396358226609956673642869165456306163301538278752444410143607060915680866671297034428810736352195102684560886256955339851428397790330174020406281250999708572346128642731037409893318115985271283567623872244862446543099232444091469106084110524129932380954310996136249631214224114605038186432859673899162167232122364323804567272582110631636271250420542041465120324964052988822106614953565810957590713799354645237636538490648671475135315587028033866801244286262458977145982337007111356156416083904090676237235049391419969472942701233259527838781302021725779755588356485704256855738787100239928345793513842735716047331626551643717315410844234471981079365643582663999098763185637290639795121017672208301822379406167118131246047535889493725011762767413185634677318218402667109098472993801827794751366237812404918549726663964084642865041246105928092442301649179094170357680088634086221826712064354626181044743072640557555609421799739973365804883499863083771359231680714378683982775500870721315979899051129980589888049161449114103909892637528522816034360418576048023406781706407382252455467909150989781968323882742084193018825727480006067457528982279848299268479527915101086823275411304204489379366969795510309078191523172857479694935355108976864522742540196097957782771628801053290851008275746411025040847963454552493776770031292978510099832874965459040151812938343854474458454519166608434815903457015288517236982633993768533320791997935936715179941809956805776927184649117060778695961370672573668162940734839828427970231849165306053968194520693595070024108523677553132096724464375401876552389716022323619039561395607811433418262376002828835462002294064995574005743936879513894694257677476813109447311544136917365086150343457304766037090784450450922307559751046930580508309340487591336221529944529069071974107608389342872980409220680663468358838549418232847983199107543413017378584817292355330120208072681663519903078406864094498489424111822539765100669498404782817382428726476286660321395732214958606172915792923627834623767470814085871259672995728914661409672652727533783416416400593013545800346361507229752154773278324030086631673465479543114934267351067192893490466660905160683190691130603806756974662892212312140659817150359667553107838670363615804964186518043791661769256187843065112434513150719133412629334476961065452052645199662808255851110213070244039916234972943319994964089216944695148479025426961811966016134506506929382739168906450598644018003341009982411137105611478045865210994875950852001282679530797706378778920284814755088915798992754878757230938976535786959236697065783227555798308130768947535274921151039833575433081798530566193658355651146776678796637018006326011034565185103930005090017679907860932866178392394182670675510584066412366840068311039868044162728073733862815041986560824118266346396657705224614385162314481595712723761016641330083602477427163362750515798577329446810325939866179376419610490082797312317899337670135944003547962972584330832364353025990276181065013844318712078603533554313913248201576961204351606653291005443913130880667097547535558008317655203023134340835995669776880251336587168816938628292182191667825381984766127171843368911960273172015983915961176048422569176888770932925107676900475507055893156323903394400403692134888357684468196219580101349910475897811949899359993963371835523506793897665825713526642418653636043066359078708501849457703295545301142180802539369783713109856322338696895382476829989582434585429462993659946210470762947103539859409665717803201660373068541368691095026789887579351342970217802334064142726233261114274939232517829587166682702794070374687057824595994260101557558530557346129665242735596754071667384682706064837678700884477804702721412558416723809110358087213746756706489410833434000437408772072700728198666723857938223033216389312574936834850530061784266557366009918167647226786103444858330980550787876301790229833729652011575890324336388844928292064375708405021229194580931386325788506947635495735176275070305805257936270725713292584854622757197560963433108041213651130735289744715520605734782150807587683915178458008834007039833587680508040486387348362737879628179679058997354807958208872563898657699614838855914546692412266015345965064741257818757544337212520903309257362383295162088970757958471807535279416683538166438160669662370494612096735169568923251872833480421386243035706285264878493657041386845639110972153037225027340413414175000937723372633149377857210630200473213862371064345194349441255755217030778756956738167387364827297266275608638287157973378275839368286228562241116343461813551567511414721216696762654120584334893990670172697096623177419255366743006434467758260104166116015435733158826178174016282576348333354915698424491752334538309542791970600391729655721124895064879901443411467142150548138623566243847161493971507598300758553575084141686729981709155953861381869783983836813224557307224407941191701427000702056671965239112033126940374154199416042943308496331802473531850212393918635809471571703243592512103360313047633124052617883965523903882513961795297510255291483299529092129895555588852306345666092888694306247641136686204392815137566269606602329627813832752076989427166434326525413306244710752034724020909761906922387045619388992357206964398008507100391563683340875157486941191118627193291582104666208694226531124849387595900352570160646151647487918337696809791661027562506256166586837382470765588078909962107984763722143232567794912862141637855135229922032417701539944711003507876736041383362358219033776277050067026806908890728385813669106154321838171967344565956449120423137735874865131904936214655271669348784139146194675006662964816681485994885963437041708201868383536483264468137306798845304550855903202477057873970559416311480595002819927291936165547533532697756745723922506919581705716750843159361883147472483568639973926987198514029525197528554585702178602418731117918452960192308626414243805560591183864385860706927948201014491790963740979434453130537267586673624952179952249100418696186730883592895177734629041774431059660874541101390742761557911148169334050821102121966259741991661301565305910751994656824977411496426963710855501525842064251950222019774232691762479300577364724913875730400649262375460523824886497286407222588433668845722549463548320597216839922057174060533226394182713867009342920627162466423126490261082587278682072954197536491024108727038252904368155740204796831859791891709143145129897152355200417601469640392492563920407865913700720049239507559621341000067450825491491880579909534120764018072228770733980298893937861572897826369532467355763468052019440087849761480473878681094155944200971714134805414964210663991268215658998434437560792891738202508097889763204509866546396367917510594531259116623951061115616768125337665824252898209015345225207899037037953091502966782296330690055452402135028393987133339122409747959530063192377786327413432452370197255721319765376886397531620088426862739918115287362511629301194245844189186093068988779300407674908020729968604679760056270804782683508163155225468999486830058612467942366486198080365462804920371323530521441905634768760649381794770043955855853493325654852451487132928333303457899587168357789540060260366802030126375918654678695209867653221209876260113242591230705146894887479260370086853908699999174803934011216057057078662213823651018453004071531563343750263466787301277193266766146618529038678091816584184038283729243300799577202595423509517760083323751354412383625965691445049581056356819046412223308663543323929724577718241929414883499025403993703858751692599270003374086914211951678053796347326357492201804851917208599620478356110328126152916356657936638144373533664504907109681039684034497911652095746258647563170993929780224275141631798618393116860079546575402686444277351846688767402714973610015217843003447478745297619541141502401662397669297507669140801315833347723126875512552339854615241957151335150297874727407308022689762509090626665455341185365950729915568161461898088498969968359107782756030675906304397506085866629592939762296350662975434966622673325522458489708188902341894489663518639676973182145572202331596127691473408727613669369180596907859770324352538882603207655220629322745794079734250872124970827025235737950898880677353913483595201684764180460939256254491835382726575692950385737342724302206599421537937278254664379536187929733140128393683503088059505546612476166057111247208332547023061121739000730848003648096361173453608609458462300077286308302185067408407296112357914041661591409814256406042274041832794225918763007821264413172686334346151879386014587296941682158756304774535313793195004816136788435171531556177402516073649766587238978700453833863093816401883888213801768297361753079356234520206964049752868619973888296608908768059495948853069936722708375394495295531276700527829613733690038526301988840667503306659302115329871881588321327966425697514441346347947703181041060361791058509800277093539960326767446842343732032623140896436762275024323776715140830641692980467369610213782940999568503243606511806770025476978243450663835279001526703857085784045900559207177537342454588771780471312646343654222351122473567334967121227958214752915669779663287222050848155228929903670705722091744848678236188131262483394326066532359653424928076789245853673003682786655576603485598553090093187966793270776315235973107434186690158313657972186574633750360001180036628833784141779108164328952694885271450911005922201776418642195924659686265128921337396273466202615686668850049075488390517524785279132405779187367891794530651559683282854770802769740615978679566700465288378358656226931499413630855420453992665848454091490262915663364951817437360106244107033014086525935896493238377510549262393710394929819961197489933220258720798513466388215923444198744117755695160193310475376659080017682607747570145720358204574437556923776602709489712977833644533162608858760657379846581035098502198290331061657450913857571070539442406851711925520774056008698398669475346394791734595499489509794812467175409589130398620339792298265392535011550679671401841781448896108010356366925998671764719811170497566615458269077052298566291058645456754756342568196685150280318321256219598210828545770387452642114626098796383757242350063851604260430987809364644957537451952275066245983815036561179192327120395631506093814120371852786134030410513208111172135322060749612530135903547799184489945212833162995130702783151440848989676625276248018856391674702055224517359155058463461453574226668925245670586821632818791643233259856611621187044726533963131703540841282481549050861210117335017548763198453183682141941013737840046784176790203398344999150934467979803942030599153408471294424969501851623960041893273104343503378416444812332878610718987956893980417225388675384907301878861767939567442526253840918582188339498424005387802235291539988444821747085776049894650244607427934343019271162632779157153194318102721808968012485302317488863184365316298286883936091582433855962093833469822519614752237399333767761865105201084202839117240168993169247115530810738932059202254472309660954554934878211237817339503992096625488272466282560684842226042898171492906006597442598381723708306293563971294515276359669100462821150266583398101650790478153859128388955586019538069039139531598094924894385873864929151347213889882426109449105532809085907459056663684131023625979919703979138189294098135419766870955238230218709381535803759453206906762880411402870521095801545122011684364462483969806225048811918976345026213463492911169363441261912919318357693539358583467668331119953160226524167239439196864939034212316022628610532964669898208553243801550899868210143148800400572797038729266369402641350013310968947952863195557386395423669344724741709577361654541546410067176804000180642911670593275545405340100253928329815964583060668797054611860644852548092552654782405288224295379922614546211267392677413377651576202652299420600390072274234882583903814292486228933961711136395617634658092689764461371900005704413949495230330515950516636312963772537112246651398888812214122951476962911471497121932752581148688453940611362309552687048930112107806020458066549444504346240667701031234201834221368014302206971165756731984432227758695853770812645506426276283059564659423891364821913466082591275695033206786438144925079363099717758023764436421336586973032738434144158021236645261971190899764123396928015707942519140846138731355971022247726047844009680244546472983722441985553453508176719494838763412720725279588412399759924577031942187993004068344853452583952314656470709673353216266157732672384512939780559332787797009858631938194690869580828353912517541141032106912139979730792551570156753612823146475518456039319851588555664471351889028610600102167991189847007505851652039072798061022853954140508775800419406083404911714374175820968766557842540664610523484697156098864326952940236420119762725719418090742629142626570022015771177893685262821523127362595971170399737994981197117080755292658433564777510188408101405920532869115841408989177596504010492658588631551785851387095863322802062493507076506081334807855936780462661568593192141511224493333507282204124535139736130156383441335233523544113119754725334254957114415867121899256494668502004806508251415789141135432261201642633476549054525893819087361849544379771965237914189444856773388180862751214802798046672516245944103328034364620685882278202777830150475110220658283991200929271425587611130127353253486815002162513874638271530267749644508527556393268333322986493407221581881157644697653220961984882337431548964056776739680545565064881481641652074885697127257005959024427072267219581000163935342643330606643469321781327449622093375891958034672967525358299823586612540781381042319173263150588773510596182998984828823270720210147066814716226207804727805884509072133294508575405212148042682482737448924941029116844515475632089860738785412642569946425641680901735672872888347967959076409158326827229097164060008243020751306100626254476201567295709981398068205572061400682893459977559907840110370067699112996085691997041365137511551902759319024895861088067815811864726780274887725224420046390760902304397393892283195185467917098769364963061312660961645282743763925658445616480142296202014603845928261250254211515169823494939662650289337652890676911393866948605040605679010860723677595835969199757981887099090558991795228496271155040913566831050773412505866944621868889670982528385055529774936829738065430681332119588733620884261781306762783976485843358559680730659543593272501386616743347235830701971975933353001310914853583928469544539044312420808857032897278113225515163970629244888016430047911414722043196099090857433921550539880235273341999464432380791871771400027957176037215345878168550352059457501722531468917948246542710616266107336812380905326839547152805234454325373330635155954449547755906961082536857308216090876854065900144530650150231906727500689179668525831513792222005121791439801826408909662987609388907058639693406885197615305741240175924392768090312512167582255684673944513568320467269336312760482391876724369103368436734971886876849181230629353693130048302576304140393053314889290261138440344790656096664161407808841927903603065749078198340357405360866540486122176813272232071293912774186043474654911288851567730417442440517049353695994422505226717005879346171394946841922597552535406092844954766752599815635693690495150884581506449890985035747423014772265553047604536096182364514196734178426210532551205837991493162017635428979072522956963243473206048092709224908947063673316536965153853223765864117866902036976019323422274268284706737038683297948863083492064192004980604862011886618012831082597414173086477652276207979152549858948746496588225599924350479723511949628333083819229978386919264952573543873544423640295795557503091540131423017538766166582400063350456804905416137381489231501053120120900817508951713140518703607582114700269406256793880399254382993304927473547674654232614888551042609511625898247277895897315142381231145581086991617592412882656478988517451208942079180430115821595199621604337234412553449271502821343086307614501079265780662893277970013173823282929188262186740870242264177571677287558863041503483128020313273962285179500922209035045868350101231163852324666734774832889607194934134840073955301950557184034967582474942405754285613906432364351199677204434241328754689467222544003013836809795763911229804536324384396382197967981251122381278587455687848615763562413616685090969072132860792384322458526590339567439806314392102426568980645048676503972094650830320574462229146942977500510833272155188681846578673749974299378631098616425122223504904561522115752512649038913398090742053347229329688040368435096924602721875545627352407046409280825402022450991917684936929958596605332390549723093155750324179545201402305816064638156741850803794695194337644540655302362160179720161503297612593329554951413977410174593946428305625573236194251544304607288280452960351316767365083492468028150657008855829005219022340179349374842301461041608835468766703572782054875611942589323391010541235267442473987260044587964893631141523269498527225865999677658751513382740711213744715317482555388408441600326299887365043862600325027927544085285242804204375140504438810497353971825390579248071647172809370872281941734732013162365639866936337384111207496942774320961130087060891583888530306648827912605405636777168356408842513642358788426998004488381146262858125714999806614453012886621130498312944354424986229227471414592821069748433676588609108395959178298987792449466141519285818706799967874473178702826847963422129814057536848443402017409003156381032557960457885594661699292853438128599540195894383616907686162724507964577211957133561117917381209903742519820981079501012496799088392436759615037858988089077477608457685311072678884123824638517269501607609506027806572125143214465920723072497180907810794970014001087908058761840593088578157591851532806563468311920171570588494938812837720205347022449583331536125186658360219767618931172509578197397643735012031616822045015653171975646779623484404069339323069151650783643984148154020973481415900213674997728624244077657966054862573545240909547333806844030925056013573425321234392619774587900677790219946671701588421940875278959590106412858285341538750832344774480666486385520233726758089517480007542165909295222209594500843274377551399047826270271142040272373533106830747235592019308808354724942101037758972014604532025563317033545891015109893074509053907410427451672791372256951835943146250155057813270600774283680514753746429673770931431464132514296971872184433794803016673023754210225699036659519885216940401394207070254515624845972537808591464097822561985647405663867758834205850556210413300718996680482595127462893801060382085579078336567959628131217023467059432619874272979309625753891087826359862027085966946304165326197398416870759905769524888644561029132303739403383305533962423182890206954783881976059515394303778759523951951182791342747160483976920358518509339113903211345870482701465999081772275661066979491438188098702182314382299397653033822643753772875064018136252259963775189253608885226560805376705400565915693827458450456718235540485428334535431990005324833312419716546062596289266039412219961337091923214682047407785947337021611462892238788852228520057840551043623220194266813699826920452515266232908838759608239405896212386305531698951328486463966477132180406945175884678286417763851512087281884755746126164735987886137734661492576903479540821747677092457262870637330484272925107430976485900004027706331669839794265772836457162773936602103187373730927737469228269834745925180137984111568332170173111636187641128943941827415478716495114269664668629489815172114685529930248991317132673472947053460444775844424620243581952226201212575356858829722871788597218576516513595358157328029617649942724830193002424213503298658637323067127134217890700854204299180143965306075850254971990364291935282516343197533943237983158127871461027210455480058280880687364531647284659438606675448980019814184272900311429046516014437156975498421485926145611873343227849249166918673512595209164339408146036006900169901070565632336269644077219761381606114044096766101733202177662856404769900042389385754454790636395643943151702135286402747283771149439265469207716834107415881150457375088927792527748895931876694088639047223235397193832719511948610678043452985933173468272214235382628906006737789501452026948264943816170659962651490056434843603663163802323755634491515374348630650246264191098128382456915359513691825988148862307991203175178050380616842756428255623393552709741040754938139635312554925358839046498689718199049772555468943113548862504530529805783914672644586735940992562934095264535401681773458893010046084486026184626701726687031551192965826399739222968685142818344635988522109492740696954249710312782186137838794280520653021376439501540855410570655533076931009362017021003419901966244053136373463571444111080888634251390715096823237032481717706806010476253129013111794055435254266153366814455468218167399776972091789129274059757339010883440161697353156981899237737737782797090826020326412758396643795541338976102693352581705046828182659629689111624493452038476715557448083689503683188313965829557252085007281206900851753195522727383300517343382110552515073644009870106203489151844893646342765354581397822618387647239136682673914313745235192369979057248925089626765212491993657545599177682346502537319081950316972720879151693574419192519349598841408222718287522450325185630486452751398021821345419652751611366334585536317160964054024298653574364297576861465243884721195152556849532063440534226382823525687053202061578659827797005252330125997748596154764972965058478180467617661378317969601749789851212049990971197579983830182368140533971385811222891509358180331575505303776079999472078096986247991024604923595739782652748801167814754472132580106266454865879748562475747504512056401268426832779357156374619698192994778197146368226980054181527169568604370567640819467796495578252244910215958123051664470824420967190621057400612786770918526817180165463611020753358947395909797257241851918390163952461441530294119150104854649121631969886419949318548082833012479415671694357915416564393753295200361894707264686404814849124767335147531421376577150048794189578058942646191823533972032524812908485609612000073361343388002632168845129722708536083471074345430440507439516286575367715113589019164761484879134041584749871625722964980567730934118288846483851829508668015488571294337895020385126190194356305577892084388420696143888924113455739326740598233721577641691351141947293814859153394597343322483492167093828322105839718773764012521646261350201272861779857172978625558524558551042879777583462151749038726642405201882448606958418909462091650544515309419269022534229381366948868246381365861411312778649870401049061447236960335442492215917860097155852764708733998768041037240862888886488933677556230521437868742843090206676165635026702847869130711293768033249901245244626609785903068084187758297323564522387867664418866382404594976837738599591549884046681024738557212472362872701769932058203004653077123737216663899434708796738219361324781629123285068991770205635702544416034499970126898842892546197573279557558061590699737701818027703403670466735791794601412887010591399396880494879845269568136578212770195033365551104096031516192865899390237788033839931796814350996820932918934015209871767104558858400976826571013063321295566380447739177531679935823275303177769427468783753401802945463812087466677072228809207106689071238263899419895527733816327494647934355970109589709455349139917379098955188607624376082261565897539481361198628943030726310429326037271389774198266217123226130241949500006848945740876195810856608556443131440719571163480826870030073269861074652671299745425760023599562904147855635364427369462233264656514165073853927788688025631563398890093244930487239768638304200687358970940664092451881939384630300067895412873703302121558114003744084377996859162052334420094882418526839894887108022327140078037433483287473975406575961094093807691780580793588616942624027308724444162148831021931412947044324039896426620621371267566846997974760341112334262431320399146602048326225622311466504513378869561194445182660578367051231137863169884094164488026201534330734342220017428702783335712906975394732639895221450981679425164306486517408026830919641077144472804255414182676786562197773215868478191045759944814240601325154996779814710427361422991672593822444421734580713961551653903474274090959439995899626300302113001162189158601524749510854714268102284552108946389586521248506212715274963219577019053473804075150963327833691001082139883622220086964714185605525302019607151871016845075368835199393645367872506975443894366591415586054681198144078997780322414676348751157770864721090117968568850152900613917406884867763414851744043031552412363417028774069037161367592693795870182892186780113073897155547185731737597312575762575792588281767680226041695741044172596036279307043498156883837821980757274587852738566113942153655444888777931369411071569542098034113777619916929741446583411571531094377896416777304959631673277031440258116257970950843485058722352666446570280155882047700439334238402766920956737617875355878869275287488413190240793480341235183714938434520244934675420283590679094862706417352117566832599614524959556586646780904311617702217329693079675927537945463727762602770790283359884054141511728285822380572438769683024415073863207843492150149884634727317600031992011496011599018534729533274701458953820522857421841848333979156648272742076915243792711328537832266239801185099086749585397653111266314865921298150673510743867585941911323714301571949799881788373785414650406958021556658591785502772387862390829935569954199785157496784657267355318397222383038804056169029967343263273580157229544521414925010492932651452994012179469644390986029263758123123814586570427476904176009661371675757913178150022813103348526029077813326261168686824858408655226130467013101431837674948730169406467467807812258768868865191999353082543485532988652475988537341448911956993671585730488516862317917340053930677248064658136468542114679907701540927884766702642013105822220033220770476802146965232466407924366762207509790179780740470533449058505568631567783855901269139785891690472829105173221194786412089325175901219320045498029754962957321773691328612130621973391653001273501703390276068172278558251350008445889614024192361551900430965027144419756024209521007616412499747003408247934374502210456288731387205556968441593369944956196048851999861959573819931108831087219249435210128258959763023605809721645462275457757429311536467953306417787558420639524787232596061274950226915960014763590356252966581879237914375525318156447931186269817003251300318508431106878630910423642406484748958103773254346452287291281242638240940322492204769824786287416072031279560936336736831054929932620824813548992020966088257702085611894133311150429922557269559771261563315223852450803957378798738005061114584992568648148724713186105990580354434749135906250802282478720447453052162463634411613200915975027773822574176268068811756206385528890435288429427837220767167409632870662995740190312075070379847577614614512598610631779701714369008506346920397346303579598756946634604566176537441807050757304076945267165024625897787056621855780244843406636952609826749599791132410116758806126316897362937029554033647243834928526340847940052231114819935698985008703367974933000921106702139874375593541844794063270964144806571234134539517102073183230520458914314332582513423260491669817380206869831162974692412408136559348670393400538785680594737020772080230858372296755643911523250260812288151413111971019530342983667174822268266332975405629879761732314590566017056860719965013064130829689199605155889833049970550796656519069123597854430409088544072558230956344044311932497526647110361354036469667915636674328359563086476217012073479374156353340117293382953290758942704861028901179092367244212678547176385759074867949247018245635840485661808850495572361467493365741307352813982512645483244859109194168459227167032560026621478022279116499719408844934104575312233042705447943554287504175015065428128689752441456884578988379414568917660999138842658325317259786515134896549227062838495126876936476966204610229086152939995005111102703522974113212373413120828156656621589288402149055157003578926390476281277995782639797572943950827328524213991310499105856006410141478611726923499565450765364345103004854235506667715176142071927806517155973432949221953576472342236572902832089251431750037845011370528541125335773443449598828925535508377286331246218674539329181259167190690796967061724684582279708930713509641145308016625314917480297611051490596113416098695152208454924173941514706951949333472483366567368753577834601610490102564644015748817865558611673044141366997978019353193350670993231986670565656665238534172704248356061966967806600540717179669961360611998112105851036634387226524036347265026406257798674480218288061651899662394311012950082037228648340848454397888509286952841956125372815580898110967198441188636728082797180604352415923555289215048132584581514524909783787648391943013466466219585573296097055251101627831052887660238942149575677034001300677572115344552495235153016877401096220358721931747086554732654151225149642239669117298393115757507653039772893302163563469753519470503863135597095403223002956622654811660929980894383077865259162736731211107572411392678596162771440175903964776918889217810677994402438060874103783041919147763836260230666080584922843287583743693329591389269360531894999494294039904722235523109790331743566536807041112610579394198869045748478954224557820135754585041808719640615516625858277171722404389672570145581448948535884813154953783963807839231115330415683447117490971919998726810748190359222490610935412311338389012224266825424438085169187137368812865368169471305348562836712471936717412549079933158947282059189939962860125107195571083963441760233805936043176405393279873713091124926763262795184759433963492914507050761449094478042352109230922730801188549123542067339385997381805408491374891641732129366372358724749008710065590272708933660531075261704561436434951572971869062014605348350651945314765210436297467292815728749349178262177362284131770833375526313720246789736469468354364334285787374967672062088865332842090772448566594584937234040957996665804769860796722586698694701992215550489713371219057665490176232113044730430987965669058542573762006244780766999744419256142097186991197587954397088440562841698314320712303118065620701742004942235457782256533594571200604308527823086186551750232505121021764656818321954918651311619406640347188707498970649822267614675091900513051723519457500392099691230075034923949788765290738985270066461105173355749233284208298886038760076414681705577938535795270688308268563160329723209866082101242976883821419809952342021932105795430877833425139254520641846375860392201092588099203708059113259411232129025496655050915583097577937301005465317818652259147989842687543000985724169822936457311138183222012867371706544143779300915724886226973200464163903420588496008076341404253997799470764541249419176500304954557929545666988168412854111785428643012104648019580712492148314822113109751774137750775688163708568268235883748536914404084222898206013205960214040757909045776489920838240553225507963759033232104782283429035806849824551611220120731725602504605582816558147181103891481097004624424554669888495665238814021406547656558360494443693472869538727550830038941756240715995006279592411721226395074938116774979377885614235281141450690810123648879220133778273952286140552015217937093170350300305372672223445888915086239479294532373412448321958611930315151446484791997522219947193050624755903960145132065903602028904731240849491407525408369329833786815974090069296681052705795697670104417221251104463285233740039824085741184053892779367504316319908960247315039578019641211031076259956306083327541505883360418380620545058306753846164601235870252862832832634169620261041367295987139931317903969937157488067686192595063357948677466983192846024861048379725848234365615809589374467424970570467989887232430630847741322780570603656462393404883908955857813529335036302135551338024229236367966956986209492928262360177158996735919997853965387120410398898795878963843734163755920567500727809613091597065585029138240244187784027751524302634478546581887295647559706443504091070622241674424383506828130365779912571997558616605479605447684077548330292174901491662912760098065848258814857724147554922961170716743042535259504690693644934948850425728239976351032507968017133457178283084396349268804679224396330209832436076507147364188957972031242010861861629208264459756133964960260057027611378822450348893345501727627357158072917687301757373079496504796287034834257643760098004689209255611503532261459416981285299495178369002601783329809972045213373444759826991986932265478144900214435377218110005195692507829663416991901344912248671645523541319324781135340855646095128297150806660947468395165544415793927022152753668820177499164930911212297709668743620836565478487004007107341958705818605692441665914432125965315060188330534974885929335549172888580862901026403329722313857046866454018536622528809226256411350100604638484245134263513124865213181336600299531744149216103606380302975364626435579137920155429756397659131029595356236999769536916025885447546782740016625589820690988662746809511072899383370480677488178551741192722386066658181815499385192232746304862470371429371042672706919412702651229637893616888783225496772918732759807823100627271084002775596145592830495375757362556988969278087032410588809142616651938232770230524740471067392131241759316822404188190605146097527825698970354464805115601652551218241492877091722936738894277888531912043789875900603438288544979326259560137163662441661108473747311622763701044092886622116523955858010475420050503086322347509221023854118736834179772803587972927405117145768171542754038395044581233290500527370020108186151445993957881708414278155435896404927386346594895215778930919186621246422355406639922147943470076194226694207935580622038906459869193964882145352662992772671888423662026242684875799487911527013782994934737181573448213798744647005176235180024161921762280773578857380768173254289074059928581557831889875712755493896410898228181782990150156488988805560737626152733311541578852313076120062785769071625133556424750433080692855598036999833334888599754275656790380064306653274623332636078440968656240617519619156513535028002098012999242982974129250348408413245980015828644162990154460050807638355350122458662951219785844445047649794265316587067148636487433068917574037513080815809760701840757301788436692093979712496896980742630818498763637789268526031696249450281410641033726278353861417028801149521893374961543302910933118048022872449039026732524275726665565888492991202472208889084338072600087027197554733866101711126766950083513794194816620706366340201537962028109503609265475620957770461619739850595410071422808889860052688805541537459389087614926303775407090544683676289333153401806375448457318226344323393885865903484181758813637685790127288606928086155636893658664153243399217509363845247742096368441159772151444827599504978583009706201127831408287073874370311395863785340602776712091137247174386675966311223101392421167392339571968048499148833598066389732665524067929006821066761994837776776118002514288143161033465142865362454300162161695970368960407602137753304604199769053462946316070251268806991085508933915443552749995740345493448880552044451322932238451315141084147208015814254864900823307737696016752302550212966503236947103687029825257151047360525738891316897058838465465235158737254898493749491855044765341608663952633693844606788800370461413728328092886436150421570154338385924870970259759973304378770345643596604423520307207699350719023194142782838600348014896286781507690006178967486067247365319149610477220010319890459428681043397676465841625956281801914871965410448951952176407180093363306630156555774217602022558076425431959221212541465492272241611777030265622971828588107509030087295809647971627028030480086324793011652331122479068248395649911007561506840665028880013918860138365515053275889958013101841242431831434831539495198360628668052840689620605470809210405981003953304343038036404847255326747622732194770380559899553864155035282438094990598579251714869421839399362090679775756675348282416996038525486256080688069717890086576893275984025690212730309423314977947491061385085977298253121141795417892557772077902412002533370494285117525722474917513918762580149087390594549239824964580534363823042324426941853352340439862807101414793251157414882983821465432735010908062877137573422095579043599981691869069231857310680633391550344773656087514851858961516637096535870282731044410020300159536818501315828166065706683994123929619198295032658585139897924030383202217704104370009818219844843429859482556257391368700664382430801932748152883364159368287554397418480292703594470805306072826761743797508636010525874691027955106544496847382910690264383523724281818170694626216649963778165125113177336230150994143681593064713786296972656097693444608993307881897712116815294194955977151898917301708983553522911487528428423539364163915480385631142596765246792204783122413426368479372859098133916459572438484702650593684468641673212238955612650762702237379899082459286484909934374370707698065373312064715479760160685327631517875515016202708511132715963640165393626629582905395251033413307544557071119679021706433497502362302782150144678927493719213094555391033278924598086477969989637260758557264649240613495569690243019821221652166107821440702822333468626281113327627879343067309861512391564344909572644646565703374298790575421827778919032259141864356936482106994302726659700125824225434377500638797086427763976308531297135584829551440368152958011355828552647932037726333747805334904534282136005149330815630865082077347524198112930404183193396259878436908073946548559166098939143205758640960445497442460062420541991122408026845977951405149836240997153798893253566379247350856630562539621431628329688247179181698657553813467131456236258497576404961268919344840912427646811117087105173477669689577997420563311318970220497055985581487476491952685952594530642511196975998834953020909614887584619236069016297576903960335453697138030957365779870799329884567955625045199649446522635309597369385849349253413697006644762785660544530588813319657251107097031587258559827633794625087160866724488544376761860186293657753043959129058392870676686134137179495512782504037898380960602991126727597221921043239092042211608887184117545692218067298241830728667332665466591527986603909666823281975611380382299230696934504923909874066193286864263737065495243478866839158978034072684742402959375093927975553747625429087773093817988547311072982248398849192664583347584161719206701335723877197242982623295514418911392960958511213376445757936377105497774702175896856781407103861590264592626640594302678092016214664225267193581657148905864872335834370504020120297767875591222813991989880386561295219039986904556984861789275868021748122119920526176944788279575448732159957966209204986823690606135499889081310900010808412172769480947604089119141161677561720297844225134356490002101998591541160382335281398206460789477202483793956040190307779444500690060076376308998106807838019354699764753046559124155927943616285518043555947300925847693066796089785960910464435895186431921081875840380798305563212157585693758129891279281155349536728076137673892951928501269167316724746471711285612693089187094894544112935843196527475219652505418434460008001202662405229267366773543336690657353807963920730335793641297454039234038745059607853934832371866597108519414396568519119824768821631487715693582458389518580097918796768716945652425940902767014645924871112713530838297379409574962800057837821704432996546093638793912326334231628988876658834435615137275308874077200340507048124266506930944761050525328154965859392266096415389910085760954934218683591982713779711753535192456970417749336376565474232157879960908832922947075309824092877661822601691014369060885482552222069430319479540337887294145326653922614800792920440761558181806863229173435957300151921400541304586865148899514188847874002839758865239831134857010841780281500178003247300434615982700063416418314205319282233063445326861753515443186990915886121574675055125048028049662710756093282101242160251216016744856713254640861330519046008293282617216719307646294626931043819178894727977039347138423329258538939419083931763911245184463298899584477462838995900953814362073850519274574217039798497959450875580331353727232274968770083164319372460311874064987165928683722702922061158235679654815047964212913320683916756634813525669881765287457492169915700677055400219466294967216040225808231998489268353607621303569443889212213849727389090758665032402303381748342032204244292208070922137795517130371904435257143843692172517788738746457280678145060009002400792199910682898381322963040520263911569814910235090510686593010673342468741168918493616650831208424910160280019202666814024447244014949472886877300534372085647356492047974988355873191323796444575934155225228210322654529745445119451090740230037260406332591204754979422636151802943083451170104819461353254972683080195932165789024971461960237147494130560213972266091824425509654262857852158454448006413362684390576659640483557583822053044621869363747910127830325669691616691245811357443794704296923143441811955632552262217071633474606690416653054540046010006958019010361445200634815475154081617532933194144224167044766588141850207991769544347454630974346784957401748312694103713916157998819706997710116498473758232253524790436348963555384143865672924494146700773207645790792759193843753403138364701268484143997218629362009846591878220471238027687821919988269016323401556956526653705449954825611875210506066173668792907249147242249749068203340178756614787706283202492736191805295890151707004430587602312430279299504890478006683272272076533186049470785346241169318412828394057075117761505364898331976523396781375528951733987889322088777160389876897276404534618350036247679190301131266403446028513162537492416999004307586496939984244037289718492398764205917760087651565049302961882456582158920881522300614112138443603564108989439981743664612038259430342841768329690758831827232838201182760878186202715012913250549633285682425322739873456470988228205922607171319438931704522436139722263896405535772048792350692950049364794951359564801032991839930252173457892597769502834458380779693759841687042303102015761545623718685594938240382599470109326823399781726565183230780513080866482204370218086670583308405227282534233029154599066290000378687865123041048946238919144870251394055201341736424845602847062735535095693731773378406839150252654045485240262568735492426445866257139424051439184100604971015530547409301574388044803404189246344056575490866230360269082827319754136709247046966613424540309595613834303879456861334043718319808350437150657753178767584759143300082545453988375333098162891017332612724946534995454356916948110398824180197017643356785351505311982851533600637102461398427618405334163955319377011047874797098691952643776263219056244215827046107365665720757010933131108838322604574678305455368411376075878547931888335563858997482041991891697762756151810549786701889795986900649248654415029997917356657377212692371777865307778703575351318334645518105427342804475912057401130092818090690034039677909204107693488985637581870766957895229173776351536653478204492271740100030514136461581955031065601382772440554721005739480526995594087308474363590079518021143570631256554873791173259225325508316703220508968003724268430593763601064097471679893813810935375129124423142616823443116615192998158765049237666123826804861055843665148987828617525205975268499915408519239996829626012834135115106152042930582227137401406346119330610568150440201696677896218396434681781727868803753599539177465558257623563135307108031464243616122235197557557277094464422881182150261123287449467216035907963958054250569090522636241716946319689047648628252259929959317816049042546836093897901908181206076044474905633022548350716975848578628975069275327335168878157513188976476541870532437208061403338315529995303869616556404330589776607924736298754949271607277726360924785923870658855332898327110768208108579326544895093290170498767965095493274756025958510465514492821984873408612557823312322394127757836951218749580798820790610054947064640821184802154385497838044428249107472296562942671968554552755517449899876622859631205394237944476924176850958986422104662279080963508805461894986642642145866679435011535244494686627044451355366525019157961354617070442090743703246751248941835356592997846673558895518692611065720653716702422036717356025677406562364698498065368243790667055966891635653941206695202517055962510974651428662834850707637114867206964026947512577934814916485294688799577939577561864150889449134267538601045189394661366897129397238614874214393279332076113133083146138389744893931890825995903008936378266679632457535508601411777799309746274334821976852479368940401948001672763880356367288628909816354550558277654001122378293557438305357417005156546378868210989259246098452394686112780619134582616424644914909754246769188523711657331825471103501693262281835215521345398714088951592601513913173071551534605504124434213129066900488883389530365670442083040706753219637636357106912806493044364942384923199476017999843550802828407994577806793008570051350779692345510244864217618439324858913594374576164536970021319032209378371703189834457088798165010326512180452867691328210645317235278653286563583892142532416273407790758759024031874123501056324031936306957014136755093281748677620096001368598194480181338361047923158844773722109955735590366709992277297356887712028724110432973525703998775665279307195655272944614997390180939419819371973864275586421050635198877811695376729422921734325056507359655629947726284156335796972382785034385030146260224900161264612824145027211652343895397232037060011629926690906576908526132219929000693948881476274062522056224269499103953307762124269761504656666800247826453283233080775800222159958648955910598495976551423602885262153280204216504066541315323747176526637883509025653482752576917722452008476809241536954514070687800519471916720927884181359875874134958187761151737368277754099750187818895904344248838962476493694353265929174215429273510850201333993438187437357064900455965957206443880491639754740866901187071490723795347714041928676680975150525810526412572149184219984677238187418447784150667878002075643287336093598784980597175337167107333084763659975272595151559232959384086942222164885918486842085059767360056901161457397248547134166557401057231697560284908037245104528139819009184978278203217770519379016884654804188722560192954308637442744907258573501212008169192844724193280892420607091451681565342455790980783678556798724498374227219140562481453944042555091853953818186709684619863349883724812448086925709217034648309558785261999380609641652743089477227171997969522722588307211119639059262508603768021528786539354189609345814679382972126920304109049586266014821772657522233405448348323733175379417786398984242530329459753146352048226673221161362601900317597124000329099310346762237171718324240026824059583424310782712048996184367041085492442325981468847937435751456899704633084026530882232421306717092392011873234688525234871556266145527709022874065535296433622781592266357835223372989057546912743839662584878893988611845225760439839818091491256791893603497351789271073918551575208851126130977408171519085277590905015843442460132011367772828860763886756509893474108979196532646991811833045670481575434602403706995390026391854423705393728904196402002176582664446322201954843213075276516203879429384576133361240202512631502783576617921561015522528083567241466564633218281321157308342777283664581172079244631178407698925830652119571662340979693316505268634362512552100355695468225880661820978315099205801463490296626393728413409066211086681829739431390170512821742479574866219270971068448108878978639340709998951530636887675519891846175073809799350562841673004122329694004256490424972988803720474868022011827720446717354843920026600141776054863270652887849317622788135385429183833085499140449187458694421132410065052704238235669878968655478776847437117268500683828216013176819125192653244720428857416661121764052236747170460564538376592309251690281387697857871936405655475841163858774179363707456121363748414756089204998870796948355998666945693618144762513636501352118272927761281868906015539680433720788444746008750948486031984054413179514597348423405254301318325783158197253506420185553441978062049543627801277970853279676243440961504412892460217221019140097773897776486053435891455618130703138636027273599528113225005371338027813902916417753798853907192266440133015991257145022498933212639220767676059186801385351858911103839139734128514730024446682316255259631960093770284363139808026675865479007392512018056982818456491976569844893929661701288119416484665249222169547623443425780832546765836596219109849767240594050056206790168181713914028273215159136157745001774582479119938807707528432149023196123458931845413950698565039486101841677401197839074876302185730859261479123048186192165613634738690155437018444201649408356974676601131336726264102762289004127748216226261979537149444266496850440292831687091220486255539378719777297079069500102454443200822575858122362486168448902714566993272636949250969007409910420856993850570557211640422892706604476042467420401966074881155460934269898059710598941185447536184013836347984058331943951268841136166941959176891485963805592949349880720103263888319732143442741238963102032480312540768177682242645706283269885177190297137196474670740576353586031124068477925555234167020724777813431335722141280683233272040438693228102228848192956489809567167906168326161347145890215982622327197739870121985061999325730304029447083107262856135691462628667872502066384236095622865206569193108533158936057835278411843763761687482252612729312911509122461654623576864203815828101202530766962353573382622116215566544709981236015579012315444815466974586235989710700204590318048223653807168149531352513795467916972122368794008921943711655093298752827332803947399698723375010326572856179507395713089256461022897748422009672721106190601391508808637531425764794200057868865139969088753855913739236877778769756621975033728453909286454596880592180132278858987819391127803754467837287902068557975688654497349029220995248858491175420140272413167258114303062975019130641252675818758699579311705365280307278164563648161096511061924868680395599132588500773131004371694657173531487163125440025019021950582869347128290756563911932006166079332579487653562981080586003435149058099786749309097275261036810838636948307331270447922702271896155822661859230179784272935746338597834247768476610231874952329842212688622657687809681319486748541459621929721838547254293696530957356999807363948154619395630689646110495115832968870290970308626208307133356961820026196641514136329431657610645863524997357178457453404865603362780210255689791611850137650504374075916901562902763455192220355421866053403599235294169006696638892257998588738130191313522242631827441776044490236900990743194788915964566676638703676418234979013883479094046463650599073632627098877224346212591176108453874314049635104674871700041288794156826484785709003948667536881531621415306641160216874330779126932368869500162142334183993944163799307728316598496518582414397725043496577394253155895935897669787861049848510878214906861709803672016050717675679033053301873809912489349425974071714209768123980146872645314795054310866925874342907248907686914073252806166316315613080887007535299495322305854746493661181593702272859099612798268273027204510691239960214485504356371215367826779847673674904872265575117893769307922569577753790689912958797257812203368802288234049804061650176719350646326947019562254468362189504982142683097910713688451113357935706775541169717890375951576003824699403499119708144540133519396582396922408329915725192155847396210890028835923120644943341784331290449854837484278045247544638068077599133278891688882196025466873356273039681054168039419643152906630392111443422346364899980119547256805930653382905634087937352893291273999101581048664004077982554846989652320741744386989907278586957251868432143478467988809050834563243485810821064590978313693898315378407479845861586211362795739313215755182808443237139560328525746086551000510197600587714093582368602637158310333527595940706217555953510659924467127027420718689561466915767553284138602980915818128839197839631452063827120233905370208817618893226993672449407958037056514060599290184934564501614932959738158452131485777469289407477974697783393294372710177491192925719525820236325577298613461462191695646776682961486166943626944363337991907259396275135982116284897662082278257435974912868654036968416511512835729340349196976105482841308282665362295537407506674580367904369496260031993721208560203781817186435914775205683800212910891571090884009835539922986368629608211960509391674898822993633473515670185004167767046883823432441209542124759919187358131632627349870626946723626717174678043364627896951208174698532553657177521657259070687531145992060717428987739757676417169917587774128991174714723301838390098482977156559744089180569257772022808345149772408185245222553089254177190102212085663670971311922987415000841470770631061829510984407330027706881837721825444829869943825177286051499974229659543640064631999600888359481280251868599435235193138708168081904409296711060856040028219462268209856370573845646126220861191229415383236133041805900741391693841725057374159824688288388366039337821990488652154028832690405503909018956696829236868232540305479591048147223607573467556067700961826705819563852464138262867338861885327092676767490655503017700356469046622479664019278430119168068125832420140823929512676940826072928508629945807496221809720702356930400802508844013127303586849832218225305416984986253950427302414986235420498368720664499841812585101781612892685536271193843587939915730475662451451287785055342643307400907630361333490438028199336333480426162988931911678599611242436278917948050336322642574819719990485101857134635546984173523453461502204410836270736506021875291242839972125878749297997549025832721152161184764534868577701459425040701413389185643211528452000138648866969655205594484036758198653724912909394961424305951197159154357224659731282979254478137981090398875831785434234974103740468528840813288314772546693471989309942765229623823832963971582989287848420960496815801465072040669332114962973359511969472211168073721635526444530714534497522950228050567120782549787549228831088871791707337919089232028203162139883537137296929709888107817001824741367735493001129891769059859018708373259231551020207687401965915836533699746061189023628685099357780485033108835754004578825607212190667712635460302836281235925587110996840009590966494782747565491741615304286290029654668637203960113640019882062794570927951600097785085143660972333128792597867930897914070427809869153202467161889445564064099498312898974082544213135597350887454598179678392005539853665473966915820550197967148897250637802208190670058416506646280349577594375782020425324861723838903698447921348254633785377242784415432511569668355974008470334484032441554739798788974681839628455112960620859778039744520181643865470124438687586036248001868570336649594417830529391583960816778714710911459224372758899735827066388579227176309976067525906011219581256391389965640322195575234763907416063380637149446804279964795167183166513374578350155341493622323306890432875732960559953693054237721199302742686692384186252862885888165608189679224644417849383234827988806534769122091789417080964399938735937426084176634392304658263376811663370017258511497943479719899207220487565058091735873311175632640528336491392791848406593989683877811066756015934918735331702487873228921567510840033714491784517754609382985373831005338193744222247003580804429024118576650966642461027570703645584268246335853015624856069150528592244043687738989205720295340015835423872094208800188201748483359785453732180037771074387366309765745363031889202507037732282688640881877557175139384164747803384536761434715430150320809435611425003346992077384587315518964761897833345165122584246582935223783072186616163561748303880799834768317777400705946064184667953213198324325741394857710604768057042724162578274223446090520116481946414678523704951904776787644642758763125324955288845781714309862938817781697940313039144217070497092882140650862724628025609811646077987899931558607120472255840986483503931779936784584254541033480734317006656266466881082140327442796825375496223186667384685279886463149736567203864126319664455717972968151009333519917125988006447344758910799650803111285444518662005044212177846132058526116863495398795697290067266781735797428906239595480986246275591586039157391026893693284524823101410318690709483346067869327848944286465992077429160873882677479233670499906828555849700946518174263263770279859879400508490247604707342080157458001577035159670510875931569916358245434269279411992016812640790539553914651038355608418542637623250714004994271329501357611662493957874429172206274703437481069629330038221877085171849709725559379451143044583561554688815072761584636610178969949197057231794532268457088158738026201261437841065936778098005125515445518593141943619610337713936586703154266026534190959499006606642080441177675140434957337238421188579185154369455383772092967867514725522368626050378796616150506493439120151291473865106714139556310490862220645490359316251912206463140811413447534715950224057192630518860925043949630445268694551760444872862696098353350592015724243968896376477284761124624717334613229698279976211854905894456838258373539319398407306506548940069988861790044319641320159689410545817731912932833229334442917327299218529481649995348295750122899846580828205903722560565465715046820849927824760158647690776804129118683371750125207677082657792788370482611176663539177909045790399430167568192220381538569675584687018915293236780854576028821774793647889955082175360684084290655090906007411676574261253762033010000935367719249713422596446936186501061192722883794622325228246882321734973066993784801222784856252272250195090460354128816477988740449709028655435558888493390563397278884208081152472896945196788140479515136262050826163460979234906550556684493232322680292050944927147031063901374624062137112890820773851076879162641747603267801444912214526841851582861026750172784307702473502138694200935437722845008873016566063560047922483576250987249829522334689881653466606742040131321619581572505148049787041335471557332651158457109327750282331655011586880933522067248225411791804596170687354196952018381542222228412392718994955905996000694715538975247045013120584375725219390544549459303439569540054730865143005223522561621149569857656840225791955755018205397764969432324855105688753924459069659235486930896946165174579608379241343767372910096028999847295400811675040139379652184132133875339482597450511048953808907278786780735370236580266316906204624475492971152630256942460934518124685308569765318858442206959251685623714861239930666702230889248554571175019093452998457353683455103066500952183861028320264613590080505936747969360973540315411077602040268673013264149869050467589954568169851030391394907711091280056865448914091276578440112042667418579456680408624836760878605444140356236512576333076937214677940382667917092686862322951243188726023702731128102602490824139037407342143710175642031610742770224205352692961687160507094668189969670133704767627089268901401504013664871544232202047033828799634047222138129638397646670331655681086242613001046620800327689584700431912771232747572730093854075620091624163301890909273787769733983286999060903299593314657551363332165536865805971973437810630695335095309641997004856956904486409263052287927979127823300001804164675466924735659880594886850905009354783537228185136672198425154038149750078598009859972695491302933144423304460000887820653150883564872017229720830017281627186770966191955793375350866996068311619150029195546231959442045945618536145925998279157639018133468722011143107315119365515941176029009796103304724543865406774445498174997094802376259586194252445886444441013100942683257529607208150074022505781887735357937678278960656400707017101241253217143668357384420356296261508976254038565812950114515591254281267867080231527767544924739539867461298911934269159711986242056571789220416297793710220712298994831035926219477139618605367722906054571342619184980436962161181091220335460202971584143055781494870739701863497111540480179870033867606888894103712005850408700875354140327822002880171913789121955958961817499023807412430301408987883213679445950485098705886066517809604251709971756532795930866313652754595438914183820425741829335933260485943479586488550424236536498992298689409168223069294926983130727518338854892030877248143876909756786596648429134684404167189015153967369123385227599200114929661023866078510044840945798136501169975642998951255261770718999477498164131406621441286511549299800931196041156911258765626904083718060385650790243135440776429343865549974668293568861952252297386913102596962500962980838406088332412834100254793894682175198560912341301900072867708518810711786150682631355234088199047600233248366147300753589629334540256265660971426498971713880422321157943570359819322884789223393059678432874725490729527041031042986832906204909085685792823557172334130243489808462698316468150548417241083924833304590115969604908936504245412488380436480754949765193639424436996452936022004696594233868090716976135452884329558311793069518117025739249089022636728986755890783075440844439871666485379504339036417654639137828725432314360358313723570133729443344613024660743102836259021344344943253616145649383855923623381123170114694507236511510567311297765328174520746201578265269916521517528526788958457575076180127180988308064885002477059841385528655964861685766112670276738521859611768427667881232461903704952768479310481167846259204232623891005880675464927890769529679017241759977611366194553812975645178771049020093058545547045615256967254811273004061357559027209228000623058377478223310525279231593964012399740884323243501826086635067783842505891321623312550464206764447495811029272478526933612100041024498076571024640318864391416481505436981890786351828349120885458059019841073138599138093094152806172481367352913977540778612026782082086274117532153057508987715199480455071632938485608524004751421734312618013505861595232747256203733853476399598268501419959689672457755171545506810133911067839913379485943871411611596526965932014865501515566833247418522613163179787291045565367518263474507294918693743799368818897222442614228782402154164327748655112570290873575187013010905192076306693623233631755051048079433816206980137858005715817749189225418903341592816923457476028874130989927808515442317201812078512959548904512053144212623766569014716096511461304941497482829904951389736794766749620836401873392880280711335753089249448155685530287137034296049225500269816419493269903376254357320002880255418338062342702480041185761654179019710484281500584059958487652120724564857320207664886594789016768854879955658352321333473893299131147036939484382334913813064294549629182054991294258533371113253036074144889989279140315887832956199802040791524818618968683936834931806317417746295316633494778904726761946716793154099742759233494739528169082095946794738861205362659210916885448891471602497727446325581756642042406743407024638307159707553125903663060487958953221381196764963101352750448143488541188870045335393437817982500953884002921443179963578724757965481553040745273946692218964259338572541506323013727912529974893825312513700746656213675098421772756875178837617943832829899792127934195337014136883711757158825621856816613938701073011990437721551136155333440297394135194715017048941851014537275430500676765717425919123452737809635878762526689146248116065661256856868950730047771737491839827917437266363159521671211023458077730070716912378167500853787464323454199028085332635555113963705934347106195093670147347922475572989519760857101557171489066407637408315336940408423614366657085084686400238796037874160663638165447168589062371752805411207360573681180484703017285406829145312077796284636482696806605196820142903624238451779359170967981877490688707932887633454988759886288082653415986174049386511632599247796584566749645329048930556884182849284450010858978440467698684014133419522014553707626298802448117530654260901030244237732665485198550160245020370963979889278204616225677449916112602296106880585127456998146258935297608796906179496494645295899039652137057545872943374591554439281045954141032039870617506251512312912460796568489596012581678295574209724408367599709844582987237796037557015034233917419720724096688718179384491989338583925688522214421252366076707555724213869845065157575356542016426624881360455763982337707821090025920459189342026968369143182944741540287621197060054605522917680583518359700300739497535984366735790877330467213424427435445051272049006409157958737809622428852152685574104332886853775609556713127097571445691841387995911940458342891629505767100640696227831809718496094190669520548150738343908481210518809036429023402304338039742038146541515173496914897053132601181296239778660086368878524338391142628837550317391625814359327292450612228598189956654326151534774973417670933794485037445778290041745487060996801030386628733518104740057310259973871062978186452363390158200680461782476855825893948695991191763240437547349195650244065528612861036782246741384951642307351803058624955139487967169417693252520908152299688820985375790712492480279592831892686167019127089048960139708861920303127655087426355013251737208684585139254724924871978513850602054663027514717053880848600642459797155622889357646711432664382958811016024848298365765894342874636817872816781084900340840287426708473803939678573995829477707710830916406222777716795596068749791011750546717948601088761246657863661472906874256897217631213343345689309121017701934951073266236300626657107125388637715279449839709493103344064809340628314133500207009665832500948172116974365362242005166419183589634382029761413529459979758112385804019667259395944912700974700020585919879848089021365409339344946642890927296387482708734166049220259678303937135407489806722014274395695774756646420586999469867251991512017407544956289349428267615408215263203452571522517271840128523328238188415917814321492462589902161623693201667682982054922750920199866793857879004474423185461423061737107259461652643210139104729088605337071303226071181281855224163188019250292026918612095604843254935280439227992452320464596630136854214255182936638008153845125666165468511953659814066520048520235631757426359712356642914993657864146919696516008048004824063000513015361199402366868105420601583286710086261273766849440881788747689553671644248484067499177907966532810593330188576227705142058460716480996620255367439379537741874097610316841722940841176802084451298385084298861110455012185135488296690690901600421093343768456301020471861232206527160253261972061145359092880474900388882907186300147037678783624856261819442866379970646873851918466039621843026828611394301208415738170611068276561104410752695977628440481633295891642727083960450540441156088250149308946819600723681217675811117655832909781260419506346862356586022151044655187518817142796056921159102159516875976892227278205623432840079611412096786505916807899247690444571045405174715357468277554431387264737977155823753702515141500712585402490572860194501341314375852382234524822109419811487668916572722483298649823995458328378943515599273090759286261480276878186785844931024715606699390647591812148609244119992079156292705329089377222335520957361750757025585044297236972592661247793306821133304347544376079154803292226901827290217107023385585578218495275889816758914133437228181827524692770687601098663203202642606121848123916061202359525718120205997318873903039454287522900992740598104380686517007982054489901313155142072529131958775358547695208640345358791860357863296237627180929035066794691584356928163764644013024486480841171410138308994839944109553100344138303384961857895943551700103725934245003727805934396381155848069306348417517854397151516166591485449893103525849029495715638726265498252933291870634212422949927986522268346139271698802898697664644081153382419828682760026304914210728692368933606579062313175139702840002432332823962895769191136411780189162695278219549137170937253934216972282391501619474939191673725510836403380979871352460335088952540355853720242312620545046885711099100968647307530048623104316204192829618153355574406409376836477423687701808202811885313601847652886750972353263823824374384741257786553905752994316284509722534961706871897778120311268909467799780824930976570945045056282295979930816987250591313483593440477243148891867224096254223512597901230830767376590356091767757186770832913780381221750260831089420762810764648588723446321234480642862774153858805603790480400324780118877103940300742712071535726298429407252345579151267180718801126427013309829544333203071501405334272134773240979958793910430514945475455956419112009166660178024087052031985676319337823126128178671989016054042120620629496820171478328979380319992154078772556614724919124277331293501308284675024820944371894397129309798634655076438724826095836639367092119869251466433521302455489085128246438555395319711248152578337785156200704880973051724009013766524915368925329182990656767615088669534777324098422624605735608903369052104266104718588485524135121425926595583752779068469044155527171711918156108951384104191513231178265635531620498406519994015429822874952821346603299291688252958728917348718452825849749319438800525497229678368799641101049727136337469128361588993000494520594612490881346803980860821595400467948563449043560894992175860275417609458784235209707075822379217489855571674544827975921290688085195997726825500192052648192996525362420853469717243020604956155711024169674616035453673943056323556626724827472144760321704966589610635465217832672631439078508719363379851124616674982170688131948070302306500509549617296270627474120327631546684911668850311955238070630631171202271282113427195732085410318672671673381870470691005015848909447736262387397275093832755523878408339734976558588563258459919213486674496213453217706231870672475163275775876106361069530650648870629728355442431725717645991039802983478043477953612704789109190840846058051494294047865092677762223492894990786101013126255222475768166608722238985882578997814295208423133164515133152710829507910395181859875229783253212831095503269489845836540365763057142128300469868239484168395119697061880881825366155603468736504731072326461048798704301112371728625015336688473267894230233997738806523912508429810037120233070340958930723468792664143191851940288577844969582478109963147504825053812026188153152841521517112755545503943122241428616929942787553419514533246762229740456864647767498455143698445803262136769852685716085924527049571278892982365746775832451671820872900656919776535819193972215097203163393381014517756963543371252453361872537479379560194836653434659310281423039121046478666261661169495122649991757255492425462609391028488956822837594578490123704199337508289263342947165895327207589118645710508576754894535883879098640844118083223983105427325433871408159924415557635373229150669227283079281137772963660997957559483765652787051841906454945005545805747485447211180910459859135418959984710925457473374792654226063459557618500592702333791928173187838474583009626187306424735141064290383925645873703451386721097698125273293351735538215114097825798529839499999938239894099796561368200897030679805145483048446874497125028808967421826188160496981482575153000164949995778862102342337210338349756185435550037206731852210188688149381122360871195625090049419717949218469998062761487998920459913190944998999846117788561223455429619818125341594061712621542317839528888305738992877174766624476912841121676634265426976231162193544654638750865094663641661482389241836764597394402881755648888901175330099906820813390517101134861664589472972685340330222766497528198588543083148432014414332715889505335904187534892660770203266934629897722234940605801711505545584571152220467135719978578012852320617696444902609714899913760436767853752883894404054098461522331573849417201335621356658415872835539133823762383396641749513890356355410377913994794888092632068618315415457255401243532330485263349074459695768540599279246228518283092426461557346303338955881874541293555068243291911313152374391685364376740754143438921008258630218047111462111644954270152603495450546370911607512382787687544802651052155571416994138164227139895558194001072457055957874736328616282433320807731326791368220848556178078923734026086504302511320124448217197488375866849467374681031540437475478855143524038116326883629099533555421288903874721887191018441952130944465721213848784242801736280772947660512237490135721103203414282281733148681318923049565386417628198541704553459019037448091518215869731806436762733601352239902855511711734425693359674724490061702334552112910284748004783726062221347190193644636248569104978266155438767400117217356222159778308351878226568567561373895302377910193606843892559524972283448318302350747279063254664410696301425793965673133166018194467214749296821410776587190690416396736870621281712050860695387263299777600117202218020479400849441524827364659597374607892390609959077423852853080218341626737331541055449591881297300669083939102380200906606974933019536425779371551875753344288037759455139579517780240931010725825651540284659432507659814450284226038628528987983537514369807422795308687867760542542159102222720495904768631564481474131138760136314510480195794679508149128827614699574597249915181448816703168857271155443886633289316616681357188031782221799799087764185227280433820283677131220883506774132442002339550221162290493883791473390487192649348832836624226294524486903267695834400396503709824788039795639522183376818090070318598955830237963702558219098707267276803366203308566372169105273745290732135829584983193408738012307107490314491290725906767380718710917763746639752005346933580636474300527461840643768424335610872185247948348041238482543379002272772616514551149232127147377170430109378118786652663426537018750928135288715900005496242718024849037783957225817050519529756743455412142376322794210466348014650633140175594768500194602440312185010600783062489968280149919298166046310385281564173101109910184415411653661149267682058831231034476666892840652396615342229159189145114999722406775012525124913843275984613081059300034066584370474104838332706882422493726300512400827760628920150982149256845913523249630770061335599696472989456239989121134180683542301355557713580452315730832121089902268147379448845156371357232797947802704505644116263740921927280740609799036970053155266989639220780485731048608054244353963002973948417744710751092271271996429772334453605065095547660691828415398157083176322082069161313448776374302078652440083582937906216198710617269601713364596899255580899946751540570295561690439310590191425062815881796155196298180954346229649854149730519725624824884126563215910565873434462934734980089139221640954912779967756011480220873301195221250556136011818694935607805771477223470552979294704643999574169145679768495525428177273913394828008785372667638175190303281965123601481276908193308102124296222500433972644174822308165678570519478126654511430492747160752089492697518577488899293530311605015223386012600766030205270815566199654108968778186914596430491807074554407550815666528377049013568299104224665896203548915428133090431835606502138979650685747901476365489833829665731990673000912433511113795620974011232324292999397456812615483658052292660769529277142900694896799234181421096335009482122841762817749299261245862248113283923160527211720709484430702186737386046053564255571846789226041799811965834438165211261505075537046305405661546864518354237770620054871019173370778722840630431101858087457695092430887325551640804461986704299770680516856996162610873981334919148355118141905005321031163065561151853385392568065150360107935325064517676846989288809967238837665354860689107922823361224474557786224761640484791770260803507907698013483011905773134835730661498873686087149717824642078028413228857403581945139801496723821413197375274407780285071241094247093755556463633488337872995878649352397970989723571033542844055189981153206731034780832428712970007716592840512077725431308521211065406795617825921892834779445785799449745700332680995078255445622327035942153505653955566179693144585817904954818298323294693723770986739662585431821892205356694553007537409395075279625073378052850208798358084241137613135423000971069165835238681807298440164632635277838090430034048721904228794920257071448309199057613063200402399949760821531099910276705378344979427784567483154551535770594928765684949907455936472240893886949886103291507434075147206563746252397874328787162048285429502783786256864852261164002474675126713071146667741543296813702076684663323392613956185777867672637020505602404054473233540363116349866465098785273556827867253710124183420859983980882457005502333884872119581740717291454511797401539293061121091781430390642281536323053532538700575515055043933122696637292834826232419413420178277049551736286806194002833673707694184213040013733746084136574777094834178253353406829816060268868834516812963662135865846900858843663841688932421864415242125369346267351491089330192770589330457983402355660680555549135596334045331693966271008445166534814696179296035304762111127726573023168683850918031348225012392492070226019348351559292485433449419752373088049824141734148103217955625670953259066502584337628068717553434075170025048059125806387844422677063873125141466012592624582531102869713279557776651037745541707679159741881232715845847265586164430778349318506169624636371939366372629441553466615248843864456780635320192210696393215229107929625407824618506262654113740847846031796828554873143401322791783544692456052400890640114240814527432121635990633593257122594447117550449492499255192675061991598599446935940321646713812435576974980149878887680401676754477558284504175381517495577979983294373005638450349559079311211398003494464616620860850271711763475500606900630576652769884640014568599743730359014090793912190228935674396621393842152908677888314782051894635852630317974838727539385468832181340901108700485529233260096512028939948092258867665672884924018360141394114529163235543101086333773455107463409025909999537855282327015621750865197867183073751653935706537795096515876877653635131016958746344357699225453676017141106411976820660215897137563031414031167374857538398805307211182812312522369673184260343120494498819118895750058866767210437684691068975756578553405043642428426409394044978832090534243871794647102168174890172498839910249390676088970922800779410640654795249004204662540424688890113218288894417870999214007882291569896842622728395386567319018835122609344354529494990160084527844914172180819032268817820334288758534339468039791498879999468804267590119206685291643947705834086220135134969568160449594487129843662306137093596864662400619735469862867611103071610919833965330063017030041125251482347002460252076225515371550210407481173668965307182067886531388857885538902731434234210791648731035302581901103139460050277601753713564153505964525515208464828273680018644197923045503024232127751831608431676081105074788289271269074862695875173073655175608064292918315877092235571036334947025395737093142611420763006624646634753902706464856651866812129328724739090369701627991246909015043473171691441706516226870859759165517737526632955836140572645415403063838578261648901180911218426694592154206164628940067115823435559870497509020752177144661047778846678914918281575016172140226327451508530669678021147808986960634282883664026833956401887316650759433626903091939339322987131356190708427591123836370013874165180994398055538177083798001664810662491515795993578025027517311165982279435349212557015874987083203826027923357786582418071146451725272042602597983274420746362486756063448285357242766633919052809011756905229550872981972474770609836543929709086983961939395214241693103111587380869642136002711504642790109312608711980413852659984450873760473544728593864932165257472889945410603016804632939159438540113288169943538565535661034929223221437978530149430491771125143926922525344281187742120108773219119626192120560451981602101046761430889206969838654267842444472699620197364346938091069513872992581685458615310733785305318624511649820676031020620158610160922960452705832692919077433529846868599878684642195993662608860505259737617179408722437631217187787986586594506776955384073144407591617124728874037242097067945833700053707298674496776624780962239672789908772025065434179712352740882002814571266098935656758853990223729673615178966294866139691551724018234709704948800722028666825078081795671998617158839256702165325612480314977825486081177836856508982950819016855393932819998309310675034534723388587604823603264529271278664288988271109094706446116565017257258555749691057309136189395361977616540131486897785071030672307724778676686884159390248786172326593472868036266032405911355196958602881646328706540598726521186697066217729293521180676611310576264528780295472409123058785890149868936934085800909506108461111501097695902828903717269985269245916613723791835059770884144318411879904850014972229156260006798043115857695061902773564272224494792250713150725034370179987873369216266261107014846251188197466223623552118601327711997942616127799664249008955956651794863177717240189638820101573851041724143868477389808325761110535141199247696244235197994300674952039360005362919634556011507049717930454287137472035097289253337938908543634668561670909465795718346232961445521294453580212834946693581043112172880246644032518158411878636375334617993070875124842433055324449200510268692103969767662751880219452169350978268851581060821495866790998642571313379632524042182845862845137952132320762407412403595371437126511663968980966365370361029352337083717375158663362420438005121220572114861633482172380375936241930256225306749911585843914781970088201050348436696940733301307964289409215487059147425360000043160126655801382526719199782186595209263162783458193173237889443974481392724361174268869610706911855452222518846488907585340571747596628614873647858372598703864307217754817355819379523759622065872227115406420799353264019523950197547636965426843509482415974905592015854095880136786716890448907542281064926082426328011121437096347690232225700976063506334134840976662714212047004283142785368027657223812816890065284265550126423161448401401269174713360962842604972239878363149906943237503754506252216045118905616131037301956723437308326432195285891120825548402331796806689863808585138685155882529197792532426859266879183840254651304735449250225933523608989793067616775529083298678880994733541285444774289538005768057691298279239134637493817756477940316702587549399767765868962191092356620820507500512339288148464872835635205990970912432429273798110261769126515898888449956026670991426992409525686010167181431453375688883562658219732904071852910231274783667592312206545842979146324235591228918030235546697752943646133051059872695048657046882415762135291404913405848363050404847161055708791363596892303167577273810391968506249759384689510507439156006470843110840315265748074102724648474787331753630122642102465196536382442989140900079783668534730642156607530018346078026061990861222710635988757706954035160286719950977134999400829295594098717809533699129266640864882273997740732270444084491399487096631376061662216254110025283656906884722179486484011726061795123538673570721665225757027247300136999872178520346202301970031490522796162954334116506587036396624346576030662755871088185484914846194092037767656256482817308316405210284240134201101196546769468260339766426977619772837457972900767989833600027507853616225915175264235837579857602816272916028489141632706914833329687294294030541602631913594791937799546800265279669263355058138056993915620410308613253989551665455144819715844996328051480932826346587279957074938759840799058127589010317970494065359803442712169913533524177226244938851651047336489323503468418136046798484264088140878467062834842231652302649190287513429103285402063224997764771804870959923722249714474040925867125974540548246890679022059926320089383456910257797241490457525882772588404956431430262774555200449593308206620111949828844421683654184235031039702856933132903675319371168674163117997731330672760644288783224010629896214935628107115409852317473852701486587264121832050487633961658290568160203379878766195640447298669456737064635660564072902397097850265266744961400670690201127452377687857837540048316223342242943225492647569514947972215504205344518499161332315478175311638189552157644205452291045729078530733827668634540484919028793028904003184121618821589716179711715194145889775441688667612438171019789371161347320646355356735636336218940564892041355134862027559473531313055041790729387911094222283069801422476612290164814652674941696420123805588403564185619726192916092123235777459005897980930124453374909756975929153589156069188794344041769849507192862792390932980119326000743315937006607712947291920930670331293805133894669084098781481716897881909639347866753383147499096203244769158702265237445426093715711999993257146260968971783980438963343469062757280414495378646783206097161726163431962364797289756864084086588132063356955830678675155944063567396998987222485143717422637158673494853121741690220470329613532667190910143785366420791481015378916354690046296916075419890153540806614025034928874675824028228280529680229593581311963362389824820551667993009023334370018588407396561899143124064291162613399475000922117429801839747834594974411391977847727635444664757603090176637506659224194857035113082598564960608977758437927745141573170090953123668609761585704730990832998932364445189238009202792272761563572083662002031303378524560935271884342242214333578007242683237222674849766565354610241455569394739123855991786291981407014491686599093925992754163991629956119525843158930746419938970809290922020720134291666790351819042132715441359757641041018659055665480967030505660414104856180149316480045649028367854946411606410267822062160550114686806130492657238628876209437196276325523531618351704766777321306465435062991810128662490217539356196070606081294929783868458685467022076016476756813289894225809608959896501519068276212204468746702055833084375567525741974682614115121599874407513109783491935905101981799695384978447946904670732385297599985058399666880131949102661500283947688465683977447349336262340992653214433714947401571010773640100986201051099418200705414710603166061948554783524162495176715624760204598073852934124018844751755748763359258687597520447304402100568088153041383337854081063069652367526769745890630614282539449468381153242355641234587576781738115693604422096220679761252663319370790180460826072244327142386099598840417083714409315278922491196180021894754272404599326503679990262271328091109630978578078276233510234312814585117347760790615991484181650564040685970243037194699506396673334867729891982706573858020688061124340218458735092317722304182064660491885309857169921540809893516025310520211942180506876790466887027179287099466756401605030128126570730918912489677314049087218277603931351822957209613665696800846723301619676036189548432024643290835211681176671897945522772947424179797539053279658675776651748644118676339622129721783154898645695366064518837072338282680704809596049058448081320355327481910425984392667689031968388726201024156411072379354354892670987547394681314565636383867240696171658592758071294457697837137510459855547327533069705772369253673387182664664665889619463393069347205274232138532325091573318673448007101756966190971121867161935985702655157733930469929507754951186531642992672589243366184385443989402066152719253900924259538883045474642069871512528863771303738852722720889010432083040388422556225087598227269152013254058471060264813207207972904233569658452417304209644369492214423203813231612863545962862042812174934929693707962996474384634542171753558688396587438349943490478222415854886875629934973226155805802803392576952683445985696489575465482389097433987516765790668945849916227769483317419780831665473288546284721628925027408352366776088128366313917747516457601533101764120483175799003985618974829904928344978797138864829711159351030176892694731224783253041765243741118337587280997375575040451377903439982900007716608985738828383799693650145861644876337774119100548359137261286392689670126303016443645203342828609326761840975730643865733427190841379212971282735659781761970999476781261638806041041100092907868658395293371141964304666770850522965914379273573205227613209485276006762123540684020561956584352479795450648232437148939733609225399494948025515412416902517562351419206115228321292281180431292767521455194854358846067644236416781902829521895983883689847453603974069776970058558542686674607816143469601350517486293715446969977221011793860492055459384450287190236254771660858809154455035386712604866356176781329346337884565196844257784710439283134573985136707082662684896211451677917518229968156640070733675802705108199069923788365462183739751821471747588499882627096972173829825684357571706277285073832387007824195762860752431541852958138429125373498756099159923253394024697920564299916873992542957053459920906486620469071034251482718484785574092393755144294272861594290791799697729153929662455513078628111737165664584058828572296683747776441376807548562708949634573535554206343715459924220144592314446235233539206613664538808898548344954135435865368581708082411932868929303573865236576307975324634805631819765936480427552713203985692821762743028035566807916807895582342167600328326980477882812263065331223984403738512218221717613224599640797754946436435053669653367078049523326586828177266543838211974554694487414200816328010317304983310672859989819982185904437668479293618835617810861881621104225524880269682412694353157585609459868020799414771330745955590609027220501554007512072275514527650103257822647351458485457792883989756630854796255454610412086307463820127452266885765125834005001107927236935653363633266683844907373140566592068615937800835831414259892905606774096001195746758942297105593976649744212768917892877346994046914696694832607300638382717977999478559332732279975104010577446051246859102206477602659506909943066499928778063046565646095932379881205014914814162042250254283601509993872908235963493034851690717747879318198923983028680044591283562344664066420649021479978534312857999642490298272309510763061204353966263845104447664198739583522964071386268323100670626579373467171378206364813381917216800797971316296903586924784414890434065587323792104348322261561852139298691748797409141609977971273436753451023609115080323003541659183262888858697604721035426743811517706028248275575504805740161891720163579349548588118477061565502961923164406032368105131770771591435753016657649411498396305065399237410854360639562309019905519959807919353855718408524135339610823131457336664024573152744643982731958038704941831486032239769852221322579876134492707538615330004229585946482815930128841452313018810006209480012705923059658734862111364802670836771905536066457729310157171428311957977463317534672156446577369990284769771919146429731684934716249914581767372655976306780782846303866674235035625050189196278554195756288408019519532864385418573336541636480922584132762028197666738829340608748461777506154790116418950248272586021366306690204695156323328627558730088299108766796438540610161660425824108552524032672816421387932227885336251782377644286048591104116503246592026299614545641778093730114972738955705735037322507544634584675913687466104368645567149019751298330886168578370631201877874258378013165380771658882699625352636473146672258793645900618813197104958242832176605255907848467630469822148444483510973428255051549478196434651985405400643222956322315576231047102352536154279341721091469142440634750916436096555191361774403935398054908668887143904850736172510766830447557804013587605975656342568467927845400726373909333251212368781913872428331514316078412805030125502009650292294860751670086132112694007945026843709806215123372421519626799557191085439189010202543211966457219315079224426067655230527449181427331531415857605651057128671347459318648807816072188789296593019862187028260658168251183279976506962202225240955321639742733297042792674288741638459014135878659851410917420933467702074235590840767803684686430631116146474181419843837553748369837442515794794998937536771386130010851099852103323986136259314133204179008759716367983123882704432595056934972308812191426627233435206841752979763199585509146253878144994946048335463383500906871800206091745706286522563150382636378893253536077181274944319601334236563683786260634169203139699677836413364474907328761012628620153085367737610435560305968400145509429852799753627864775927277195495375562519157671284077894967698130866608824964579685508033577557715147315995057619001728578062928887844019202888800195272207638627961783295929424823287541340099608670882550343896125252275588507074685890634094429139250931606505743012023469741887136986876551217517106459933188300058725386723354003134787852485937523736502531532416117435863283067470365617896766388128462037891215439652684624701983735216645448517698448547635670378180440848357554624663636083406325712155457119607424357772375650197843022843120342586656004239592173749745797732873014303938938290930614079848488057612275358445257246142694754092644733360927443843879211892597136429077368601329011295946756148169925056461437479444506825186849963312730423508972818602379499004366147951714750592336737727584070809961198725639178567676047738473971981935046184416195313580044444478832742241833000981643262523123384044450554438463940598890719999457618949701360563560146142050166739781643097964496959999690386773142454277987822841495920392933998935046008622281863985924178131275867632463707214942509293937861083990410919920349158196875882499787645851470308700460311793050091804947682323619988044020059113848666160049256732821416224537247517832802752395982376494631982938520263246617103203804132520432523183832006687694344354267165685431637630912869871766679702050613955679509950313110585100452795833981445303225885972837988447909944740685847477190751914954553217631228217649213844504969197749049437907530550677007861699174918681819601674666613986706485287603664112519387487602678915031579553026522469888512759221607085647076326893341728291447904812433298998825503326663322626254511982679224375142441300851544625433572284028743242921035572509776804880446889402069167829122110887250529123755247846243778578347191884483197866689512227012298173598681594022081259546628193446101101377007517372977212071730869362535372000876112828658678740005998823625766814362083663022630962377772415618343627295484646711140778200106189402073802120726506335467820578644943623164284669753656036265931287825153736931779929120242081817555484791131144314854428149498850120761073642999539915927392170049507558469034182369110511517353288502154023379783407557524149639025405589481898707630259486676789320803248699189034232312499646305715113092483821912452312764953528299518774068186886970116674516911951035956652720442741566082602989762315669950759168469384189565593248278535144861001946431019890471575172296485337899109637891879337913934322793324952966300729241661049015638919843718921291714861441699669357401442015492808333006497316080845592068263167168663670594484793938598330522604736038971927467858320792180664936284552525716347272034167030911780660297184148088796064162578795708975065626618136123364387424304338188636436741478903555818827570162611313537916735188852500437941081339297610153777472267103074040559110222926900344018703527163986830468158978830835182182858111027167225230994752788272478878098900419365650446785990039090142715079325363400110202489283454517160186072220271779771698712775195951830803813527838038269626089694342932428306580078612585399441426410559790170725054535072003879735424316035327452265110185859970427454365104547650473742382588340237042708189993779774924249878383660710650946653724166639591937695793065333270996750664197872401563110575272858899087192314645635217757278007787636002996607922471256053702118320114516846053727851552630253316083890223348641210449945654312165067278420755614524262008542700525659009938094164137147105167980717095938499314488925390521004409768159597990123360833314916340431056487017578320055026061597361080297423720330407902179899189219745750510104237780698390226814880297855742657911701151144854774786894305024761330200268436535199473409109758771565809314907718645129521070053515677564979473651618051758217718798297155123723197844961893460313710527360942083410893915039499921123359922181508594526178660106492327490662095106939819748621768316269649864379635532611400186011637596612848885800353932802961460658470915773543676588787803397711042805014889599230980803266530715634504714949254667266763185564358588089425362712413375331228621244274825658150393871451170063677176810863019056263680098114376209314184944985183976159102608590963492666443120552195365386062362241889307477344727707790111074158120998407668326353138405831412049018980666430411700068470497751004799079142635799256504108266590466860166869061960392587963705148055907342955613497373669475372159420776367112992928312206286414125106875134359457607342986161373054215361883459335585257971641076017674147671582551794461544449862628995794440320588012071312146052475589614811983696136302371467981077046955920318527223529599081770313069869792381654248671865649394730996080398447449763795132297259657827862959993256801613245171451311828971338799923541077017984136618579643244793654352347664977308041616928446896254780734902096755923261647723710886915143956730804599780800472500265376897099441261297987500193783616381969216785734337796764478994516233234057258434797800140410682326553150520834296038156530027795200572466592276194080815111770290790583835480002703260602385975436087486472924278834608283477601099980577776492646421127219488810228724785159574360514696090016658493853816455249182608226272565727043262832757821538759940013297805636662872344152754245006509730100352641551187325642466271444397142799616335421656620229204941048781900947541570102731811422675307048034979337158107804140816257793795963870328362154646104408983264733328800868523758636576719501199230376431803788569264877279869755412140154541603012423633194048930064182389248385980810971706689408267396006572088933027032879020048984176428536826025306072843655730262425412786009337669630328866225077193292408307124795282703746046408827679443066597130914368524644084715135224632477794169402744775174223867805729064215959148383592219640615928877220551864646512520827456727049219276173768808761145123203283326759232637996256267094916928602994735385157429258218302994289972492842383580410447264116765490711146164709315620959597380164213784749185701125451604836709386790917862139536859505736827365840334978576842371910669459811821399740566180933659308130171828757370703803336470392320512395286695319036910521074682526645937784364788464105632718358837814706372407643340220861900154938789250940751211046751623660988349583968895098129817139938939015820667584693228566810647521759351985003520938677815127641626459973112276053584789322382011996942093347385503033554020449679368694465851816366715032642136210659160492756780091919607475205939022713425850270087883034073097397854827759832127318517045590952326279877292696657836131065107016016268513899992712566094302630736910895684196283639378663996866962226858979354547464052780236556185046451176138121491358438113092060761939518845269795767404581427331080471400695468319571053551434853285824780764726931587955455596254443612049978264335266424310512389873591377705412550156605782525484150896767610323099573823145446816781806910799284445572719409248598959898858928816095873439543484676881395929967768868884417668276002047001598654796715447811148707311227270679488734360059570812810623036045191221503895286132762275516269180320900720619880963537809165829850453877077639261010837718647932589535162113925232074558911287431128323283568734003425171436328337117364082133279156421612512499246503936608742426553651997640563167310102195323465701318654707818387528336209567525672859205841400802934152186293879857004763753295097221816113821620034882050574463137031760592712752262943410580996843975709892554498825046347824786046415517134798575765070443658449997279182170438675252509039585565457881830604639409033881389153293043090847986254403566096951950743889909769236437719798138100983364276812052880781460308387430344326222315578246212309055586627647882631698003750956352538219199937181949693995562065258407952864317291346691992326827441076873508384772475767357286730164048711599426562407401252614849540670785188953601758627087661579620437018762075717637737861887422766082643599745910447569796740471305500403940288379243201486151096394906747524774269968439396128638776215413202544058311025292336523234112716532953596889138292537102057321038808083024493727202249595896925952127159740013959468487559406550913776907526851829741582056701135737720687331811767506468199972348314285294420161600613002897968152480885995102980462776909371224754822505427081659081450479557019209817369037306150235371228566278476613639000355029248027817418365570905022801600451396818976347371529537677494851244506057785595240715942475665216986276573992345260058160407597393436692495129924839863022935786109592125436704750686140112793047790389941821051707995802676263850505830663842179918653388777332164861706650078143782549752316242034328101281875216678167065158941928227491692208630593119325341573334238761033635746258820650271314900312898442681614900179936210916969905884777429135627852955690869361358401306154774067777593662403289422242864988177560802213604002877547489795719084534247145808884260374127887547124037187625639519350921242757868804318049313628710582569410932982130275771758346866154335143789783235860505394181254842207451248703730819395034985543282678196752367866938566842216162943073195825837134429433485857076304039451576867651004649764323203389811014953123917151047282188412348833329366048013896395528536879510643006104522520595223423911294741780322115280323602150729716837073079823636946058331268343569443672764804078268342662235200886867031001434533585889721718111248112068938309758336079565160754866169331268299677623046247861799461808583594722832269090546069216522591959758898517400244318914918232455186084465006550035567162557818551508085171973583691872232465035357526901529368166434227023115668495788550218614543535390775520173395003767196615328352159037087785880436693434461535313232726163759608089128403550625535172182797033369792568995333464193234760618609307098052875759276768717167854288395129190690624863772912931614256070941917821921985796504871702328110329387587866638086808408385513336334574451257264072449013252623139986869870157653278015683879489337092713475797208010648182473021140182886273668549887694832163617052080059325403406702553170073783100179674263349782691912083211195190489876997000421905873570424936943346351789132608431785379515896790104859024315785186606940770734443227332297470603828563037378245939085800072489249890305030485908686168220433074622050544724864787547225723108808012128856391308808240113850854456477385107869093992886438209089306673557146600453871570423160371973496469219243530003916567713552650640846793991864405058874070522813038377874354526108954083432729531615247614682795376454377972015687282088659986354047715230118463628595043168956308999768218909847511059681959060703208935319986137873663803609214828163016468122153374857475500227687449076535449532490047232772646801547622891479695050471808411458201487685651801524636912213561751796142142367096823146782729729718513466554571026830046304742843800648999918669233273201996398030741297879272440849539586399011395207760304563243498190073817806814516681115482051064184468297782534995041733686434265652338007534997436670322635978277406741922229533980982658779688718021529732993858875886200126210194516007622033637723286163601608321712386298047940398277863392254482915300266795342404013729945448432555618570878672972654550933797843317954875887088948774180311307057132987415544300455379089099201438053596135503897259747074184073589950788539641108154344474780712840611519252700111709456292364466092762960878254555617308644564619067552938746830917194965542742408092009723184608645475715820727084806269748155522889169468214157097961765677235414458685865490574845680449422175747883451811011401695915491304578181012309128218912014068453411623678989368489678383948859065937490030826761915066511429479738399238940966699808448167271475283893015492597698019469416433981954857337214198627799413996460402206605702672678955337757907070572179961571206818068619766589197753652942016588633414307222508574687289959211946825358764260627655455534875362575228810449109446231179759069141625317441342370264789228472263276006356288024143948337183671192823811214284655327185597333866759726506390324259959871979891378221141126868404514392999237532942950323519744001670645335968469171294109991349995751067795454128740013793658560283468934255691450067323889940203540128698876648939165385991752811865930148025783008016938984259215131196697283928629894723272715007060043857212656789428337703693673185692867842470437275349099808847795163112216947424461268074204269726608243713239724144753791264960681949720861147460317118536899242221498236057448276157815232711581838873794066039967252011292378993064547002699836347491044457152125772111456924864906910952706864772416978152897078469108966124871636410343093115342790685917630330803212925183793319652275155928184726563907279856136988867847430552221835254209775517746496921143078003355567539200806171398126051792768020991472820011626803462270883213485878321822245729908885680785624273768733669873034310331668668763967591307513875464829928048076227702132354268600768366694828635601303900873870948411301107119637399306959326628257208549716696031928214941239052831731699126881345563085161943248138241531960822265252327038572960718732824815342705283676005029414847539049035749587988672486922018683804719786451792756183524243824294337081314274569724124948199925673040211714584404249222581410017830064922992290983569291227404340517480036220881406466686966256782152931176153633389258310575980825617909555239057879393779301680237058471269011686900075638827193936986008002837322874641491632682493826674352621960981609056668988020765038817353182495591383177824313712755802884209973263346237454712166775722382025854204288307227765072681622384050486121784803299218912732836523360047242151123064447571592286642366398493934495644213425898706989757393410560904828476605753883764240352832594868412895939865522006074019805846928882759134546010049608022928850024982340786814023071007747248960244484165135072551057140518919350684332314504555555117889386742916622050709311082363954973159667007604085276906332270300625477737073494625628090477100835348641425188766559248888853565732783172934166385754186038851549555306558002480113963421829702387893003050219321362596695620057569732131140145961818592011285503328626149443796553489990090508441062929065906788460661613599294833681730582410614470127995289884193998086765323320345564088142655414613482386999896791853767083447148909371075725822964173393655231887669945247974677684933077636289663770176880214704330858236874471927775784505569478982366990059697096414722896662453281268199717341630643501743829581136708011103770115154393543080220815112607987939497400119377083602367941288900530176610146882740547678817157725556745316302676212823438661300135884247178469959311337091849859028472820796836812828649144476855251798265838376962386906957556846260421565773824214496552849604990150104343922190238188360168762912466204762200369723726962630546597201796915713421875671432916617303941530185584129653687714774723718020542002842798623393617488276644893755632517214407388754258764449185148585398612618700033050395763021217121762883386245875138186618796321969103618443850258129092268555950338202016921817332206205061589866557863671359215330508729317429268477782452814093402873074832797337795390939473479008331404994222835833435182980693533561389263447490469654476308816402882709094920989948727561059355241386045136011352546629698853783877775222928247822363764111006600376039653421872745264658129968936270957941073122305501516871196019835318924054391494898423516389195159650752808091921828600744664629209967564324552928400755467979773523513117913537810158862466870033750669865471694721273041196353879691409664949590771236689265843310924669471905831748923423198441284627679433105386237821737312301586134408456988418388028908526827353263912360288488497028852064975842619730295284424492079284631837586575678886542655921944930198316259165305430720510454543235480772803780647991827317521822578059548023627908903959593999441286594320451082517332477817831321468766785055086846809092934819911643295467763372937626534691310012978555001716265330372834245883672122205696166417612921396300623589578608860240942617831595721282929408032326582978319839107536168543295226457264800751773219500797281323237024308391932539217862889725959047704924359453152133210792899623462503730955669332882501524419078447470158552457608396328501848329066550947163253613142895883612402911772508236459331834509204471180350009285915182673300615368226651129300033706711041103879882406629758560737084810974306092326394784441021050873466287625649143422646674471944543750972362178943062096422370171058140246751453408561160386410267634681749221125564273328948501826449080749381168961916122944674787539568390437367098977028458133731875643226852634376681496787861199956303807744374473736640196891024809162873886472422675047355365299127963811974129108384082996551748228286854241267661852508204844007822355232531476573373342804321713246484803262609478576470933982810063491558557356637323715262094027824058885822809426849460261509288046312301784645466486710987331212550694793089369918328304344600415419528305903093858147959381253529136458418586062987476745846911745042466327560721749434175616071884439534012626490209653469905006394432465024480351421132186166697246250424197620917721372350822232295999079684080808979326221355225066372366282155931187040832827332662769478516978768924838040807971641739483898087150457224314194578903243926993848118128131821361119219396647044575697244309411678728970957195131522594044036435745278992348935346280139763003260827920676865789126708000810278663603184157569944082093442547037088145439082259178507494166257949367516499825500884437972279577850743887188845323484998062196940772001561398487053074139478783059648632336193760157777202922436820496986398283417896335455275670759850910348937809047356752798236800576470921162819833752490429981699877106687877696632147185265840416565868092329051239151977688011535511108241048623106982550627100308890600649525559650369328724347634173006584524363493111170917134495729943558948112022788013694224813822201939298570806615163320346870614142775386601235038737125090538433342345262191662298821653224574276129176094045427062225508896151320823129570708735888475657193010496463714911855154347299742441827747350373031885926614965776638695678019574557536261099902096965691634138677054266764140823774343447884123848633573948378095222413447028572592558435804114063576204231103666726561579024602968303863135577082852505595771664514356769181356527189476001256049732368381234758382248747886842700129008023884078077621873193112012404911402091900016970099464453862792332675156761222270194295953670353072964814206261708700540562183010832399020175885230053059692582480928774130730481697594795335664881277017150518529666552330928924853895166603894637512719216784106193729641055683198461390494250046290529345387857135380924051997706123731366452141718441311147959320088794221289707685520667455511050257722246068934847044659868491740240915275071596912413796672677385129828413928133195419732881430850058544669457163687913227111193095699969413403550432853517653412412126093133937667880019645788434940645644648588035800130652070944337465430124436366103944376020974864788703574925806347036833803646793270168103430979047627917384075403950055264264061504259480006629576511016917293546279003493082650673918254901665638798544692638398868141105782854982510136221548462123415596871043337294566526650221484226560014728628874353436374759230434564154559905292028885955444197123667234769842652047787839471488199674515919637558575871457873268728171618449725833197613276992488797367433709004116202842522441265739225911041400427386918162860490582282085339333572545935106082455695140302689207818552813811432189385467739418683502596100864159865816892278932595369420655199409106151501533354484345829710931644889021508405642481746059231520450728349009203911987548336923006790243555276076010068094012485272583336598534551707762686199064529966090252786657947857211230628973130718126864908788895341922028043549662337779389662286891349841293266855102737662514039092193982197445900568348386919720041358974260565668292191815923902545178907510153547338912837691748327843360966588298513443466684256300726726206830925421912645505818257167888564251087552199585217678831247431284004891152231653524315498979562691732984715268327503904274094218477397196226981865772785585593277393291858867339067083099356597011888047098264532752041700086325082687809544704081816293391676674513728103770011302654285597977446580102466391287895318209998390953946475272758842715846581986326090057954260771684852702746631779765348482501443123751230897056725810120324449764093077805575821627260576404035752215085191970409054970182985092305552405480229057203965832400624611871468705932000895038588996564979496110868296975356463229381565211765527325186940032929442830781284864913113554288188588261531881020044550387433113206410741224294421558002314725047103738724612422993693669845301525972562923992447019119980485367635666990068835411908442983303185033700232761090395054474320648913056552004118518708728449755931236224802557484707340382688822103243129133940217231584583732642610235827920845974564890274898363580259364725870075334127551391659420237335639633769455976585166342336275579471207108596287405397014075136195426239320544094000097214542733647881248836869246009008527016762412582543759954467546804442384247016398008981106748078199564248894833287502614949720776605929188092820004040977155589442515768560747649278879219659090028675855462933489756578787330951227024107482203711757880859493037001040144464215707765015965198800988568990069980271635881478179620433213119065183498120715803034080029710058839107465010345897390663234377709251862672828960047048301816477690655671514502838134726845369364964274742836653543170812243218437625206452634059105816367293219027581784683567130042651268632212607426124752863730916252993627033929514319573339999025465921074391853552408333422048755878526050817771453304729291479836500599872038088829339321041388989811495384748870733566240806359140771378578308607199551173349096905270034487225218150921017228063758340264799713451182961672479133119705704272317074933684143346738031706664861158059183274554763940222090592959863220509433177187828564430804583136001720107264021596289009028569441074435936777429661872350508901497525928652092213939885201951072216832531368865950609277153729136978076248736273169204101912306815717699984276801871817220260467288440645353524091614510153132266828839061487417105667043641840657755832608789682549542845403389186315352078583870484048858788713199758416566248040453261672189596696321765665998500164638897657654142962348702554136215992966808090451565880653465351800067418692302785239017035543442610982974025220163489798446304100957215394885529715703793390001521297844630837706768544975480438370616821384282574748382248543184821660155097247848628964269389990446830641681580017442398566869196981739134364496462398184570320192183247872540872800789455523529854048544395429610192663406019347556326335935616655455721729098039448124957223956873550243812707167610194895356606755829151251251988490866399285303998287512589769817436222364540562798647000449933246849279615175435745301903128742783430296300260320516171907095369976697971993310705786104359156178692727361158283843766062756779051263261865946688393341423879775762304773672608333001681780699573150663921044449778425491117296668156036577263198059803117229049601528522042569213439294196088952256252453143155408201609447519384253411834906232444069932806739232164372376498715765245029175403038847244436450131489969640044302301307565491116757389886096393791122437695791040959902994067607014411133555892543044310457089993632954150418619735982421081245209600631721299339900851868175109911958372216736114883275765687335035888831266318966094073184286187916675244239796062009339303026283697549377362828257171119853985441358361216493028009257789179712126271526544950676195722831650355202234750416708997101484399469242948444806423401626273380519507833417957827498109900036120786105002725262017776666311508914563450852152151031005375537790845939085909117218214010928286526391220793027950259761656535573279800417503516664238926051988480870412296090579005241451219140095212044014076807492952500811405802441722814994607316065531114282194617829403110002262579017668981194772805069945711600297191916095517990941069669302202399330756879118952474518020729204146152730122275262047277145648503813317551377421592479229292106775109828579131078621519731286038851039054861141245893362795671203678927560714304232638630392322560330084653186041278347130184047604264687329240495063527239709496058634248087775080066618527537006985129111731099814712387989845488958553818934088975348517239921561237390162835177576505946798857804590679079687270240830722574538454349404439551683299931401666579328801865829665509764214638308058621394861320686061053547918848067823853661154995079287488927413164350132462682185505543476128945881203378612866804049385742433478830316114501377277563772074837466486573082317439453564924924738765917005047449003742440207292852607449068380638985166155674021351968062063288234788463969819036965224108013276777810094300402095016200900654273321223930937874169753441600854305917262744963576416400854755027935941568104006371174450453100096325707227225024814976965445129261448483306118459470270903535306691764741880117551393434205405660020013019829821145809592139046306138928189939339537361259223394279874246538774144568053462244446995396363312754392936874246852088464744151682437528321506438355871159643751721953714068186139548776267132390738962605158580199106076309833930834101721348723778747291888381235649832667605901301031837205228867216063365336461378546583304390541487087170876590502570467640777701706881379356249351810993318996949782416794696055662570510821595371062736799956063969696214568644211630201233852609075042307844332579930761713523775745223424188179890858102716923330836558216907706998485291381047195327566001772366603174332977422903835925079619804640718304869431523741284920120146302750009594671926137888868189133582261388111609367420227693984752238282604631501936887307083990212182159045429846539782472198819861625037005828451694663710314316179730111541642342484333523512627297601219665203632760119767172226569852939326528481900383156624207043260246192258516281647092508744622335592130679923694905716797004877281014424248786324682219743745406986121466814287330219038180774012471557417088644421792514822700821026528140813166624457244047397746256734436430830676182154172337575951501357323850567807695220442069664345287402373263273538543591657568755728522451026994811672664850247699154984146518059295903725746852705913687005615158407257558230737811123008051971381441084802136994731111725371611165554679199693459601030787235351222920712792143343975566241023290557779997325153418369798732619676384886796407083901597907529812726966409849941459662390905121285599221408755784312811191371051376957642738741145354237309635311997123063813999096597290685199837014429485652312027457232979614702715176817565986402554131335798784301770860742583990913197529062753245140148047238057397299008013485843562232691996562857961471166142533989504453299952901480525088886215515614226599439613428198044840852626915579877626725840390126282237354376819051004062584931222791936628889702943512410580522491001689094661052593059141569858712508948025578717285178196115516300625804181622887338472280556572690918772551931502451615176492664065131971901281470850815758808180061879538272560138060530285863844628101436168504839822602003903819141499095926476448055402128326608628281369133717972869721513633640538090011106984938887999009475039398582312300928255125061458172168791538902858990931783530838659537763244107499337186283140437982029275384323783927999768238708322806953861337644542516532371382263711403321209555195536809948908021700644403745071913199283477319223422155706757328835290129389052281251146792422647927211664188971051280155684400529797619703113466822978734250641847087713566508896849832186215780609834934846749187864188031010568601112909312792430038415881303016299587902116049778179924002519791827574500912813006513769395028831070083671625622498473662762194254562306745221416004300556577946232853620229614225955013686915191758068452717044705516154617927266753013387103702400544942456969082598397316600936158951270301703087247512374004160025522098895258807102507999741579705660798112612124303711967252886050702025257824241297881402629762021726772065377514842711487151312154532414068617796336107187180940683564336885086597142473011181899323055915743118833652904618531209032748949571244688018846329625822803419573047788852551929751959366055218908294495501890286541741304787464370073383357640940877953030373717209970266654180804321121675399628034253762485179756638836355914955171451943159792135900471778418700248013528039216987284551710557592973389794831650584163682704577563576123514246036637069120574778103670310390298131788003800197431168014741078171212527632426155945888579874976158685041497727423759415732333301609559806070944952455764923580702490089242695749909170976360434488103407101430867163113038643375611184329120490815022289750700534355085039598375067609103704152720103291390878993719897385308561549612241756650027821762588471920441977780098305295979658825803995450403909365544010653701641149224643521904254654428444123730483810822798497859932546916429131023497947415254622020204464236225399877579633383813310320133312099236181659052734583871445411992554605686271324854574793758535525128834987101452340280366690114253965444715947177725155126739106420902505921840411504940428420611540330739323986867924926169687363990005505032182578831132593820606015413626089149422776742125976055679008908033734646369967686662629310610072221313347158272397364993667714416945297996784153490605837774271165915185735471680452808843787659332543032227014433502753006484298841004660019016685538900007544002334192635274096023743243408623914344454545389188589362032940734704595500811996668950587437411953536962255255686176069336370602951269613859573911793505742803308143798492252877299841844513722320899867149420978908149590782506071199765029502939723825574894394704481324247564710200319575846927016198079495502815611642913277648675155176281517525170771396077003876533836453359283903820917850057245962660547154440900513091031054815889524891181660419764794215982880056675249768713403220404387866157327473124331830315508837810249792899740118993033263015845143941290923191944385309873200405297597989500548597074497157578000835059097051714029162286923387597012212412880197859857826011193618612692683626210723560703209270659219386250030454740695314133572616801667134904052544911904695282762928437242618372628492304805669149627288436483802239721136614276579856540559241375614500885852937495774195689590988554623459909180317430713419114079582398095445189234219763771001303863092532767169194259866264975385838473119219313100450678780085851440668922873755596561198887068666416841682729624582247971504877524638959390326370666327457698554330719831304253948084217882262973391764415164187593014219506351856444993767541350543705623056987890027895479529026874114056193399274468272641960184901902535158735458559634634475348093160160670607607722829321910898087733535557642196814191498217619897908064435812269796822717233633887552137780953352314999397120762329072432607514294211919457873804776285992553269711978927094164497456353261406407639985948128952983341098265220693599012371674642342712662516699460595939195627273769779784618036508376351767961737104103880360917954538551206572859803361204747836737148787294120053939347143861242568976755521853316627563713147981541364501612281629594245687433986786877152929971733469680566159002425493264237850855936616222519302790138099689185974662317240243276730573131119532009071343990147393902371136126660868978257850418745449025861240950268762223828252976975129748532672122839731188989937609531351266399834178463693342498472797976900241497252177573209057734832286857254255171048289441913467680766629723449793595115933389528432201736541639095311074367537475141532440875917900264197200036692814990568257552193560050068879819725332726257879158534013638965023544811646334745366246590167238098013118929011146021123797914151896738253673922221786894816689435657184198820235951178375077329375810854500463617758881174111492981647325151392751129726013036597668428131836759273021127975689747883243161907589521749155495999360289766824459472334109415072218253107956482606255655817700824088387622935170275466372448820720719206707856637487096613265385891320602594626771704633630567015115127956279813035592644367042491371738330819813975666311692452973125933090532974342051056993436776669803170745724967103485623662580363894737019024662172669545399596464273608986388309345511118534473557755605286734080149282967842696461808911924259000733550837760447263443432003892211733353583100480096901728436294245104179725430649786307691012340827442598108571596767933487359750526208105229101745231606978755779789172194152052597662546343670775437198739710983497869530415670524552088116328623024052034039250168671439647648227365239737439363103079645223061314861003363101704923113125509980110951471754013597429519570703372108261895080971695512197241110458899534328314834377380523897313769343614489468098473533830397456863424922196423326731350612632598625879629964462281715060291407150519813441801682430282468305916144671988626754673759704616635088105997436625032937127644590734054655533710229380159036836781616573072612598415498697364766388258004222629732983972674835738666062881338158773517822834631399930284500249854665598968983709402643334743497515024833331578260775025704700615260064683911200474849674085439138846677402182989524411869275078018137337352871612563904455813800582616396738120304591590973559095915896692670525500793007389669089210696398650794727780440624785858513658312384320666426880642248967360234388575394155385634808859335042806215244312781122287888166639264750092691101800372026060112769048552046322566009473661104620808486911544136071163289138962232422178032770768858301494017689366210915625657839837504860317631848466472744654593385178958536907093109586208493327916586477231256293100014520386212784497628019538886781619065196272455137859873248254419071988501558805847134353037868734288829358297342484525275651788408604688970349901130018218904122246271408455993159119538438181597620166046638969782605826098852910393051402022716784502812150291804809502644049029558727659014504536671335655528127870874988161880138199687819713835196373699266869500416054272661366420363079116723118729091185064671321721717002196917351273395326368181112413451205290209142431922201260231402390206362847634347060656485074271493649844458647996115844343862647642769338450731185008335878551475202333530226637635578481776875264499501452762997517525442402966680272318762101405388411018632564784279518855511175294360058871941316459444973561525181943608934977038027870913069706729557398243798597186988278783954449500809838923344851240856956459963511173094493138829215641764618684804120373752991818765924598274327230869680407211300582573542216217006035176210096781157028654835145991639352238452414995222104755958218027402812215648793139439998694206032456284716896848093509012982774500096066869006813788546366301257893018191297375763394567001196353213739419272343330407448414732348784789984164983171369246605592685272747648867555806933669797460383520027870844794294570941905393485433132938176358579577342120585403048958852329448250115569056157074267781723887187287279738553530486262551738684879471068533566297553951535865085402249981952354041692576361519951072949457410437567735308324150406462444044164401535124865751770256041029905148647356746884237368868679973028814228015224862400493234681880418851511555546001451438389577162021515517426639629662796734730506671717874437990840307776296039307072219883497804754665529903164249311589413358128906921619898830321517413161039083409140436573326464102042798029707834763733287349734984625049504403219009829635844529842636608488494439364116076267189523980745270968989568998513025788133321509074481330927002471197542761459022106918662788110257404339255715435361227945636137066508809565717704351870325568146592915346090849910668505833875155955221238131984791396417481677095591798293547294404641768492351426785309257642612991845100222000980012708375017284718186904237255311205792792147959194627534071097921549085715290748538157027315919052527906983138709926246444819681172113777943972754736870670121829657543751363261740481753565380505306101649995653904764223386543697314125033390646744538830863215531780193311472436469147978580732611099607009652213741209791870299157094090693942485381709304318600060420114780479839036635183149483597116402415832235098745515961021949976852123858443377236550155517272387341057387485243579995949026101538432727427024054039215818279724803822700698485023566391331360843319192725575263206225022217971844588138329371360100890771955241396437748876829875962531751205814254012348289864496462676746830343922577620099050097321801510572180803017582871498065296978444810265138261827197265624917274207274229211836367543043580005367168386295395453213501122030042638312588454497464338596622414268903487380202571034047143041784794467325289164870540725615669096446658811708966925879677932589357427132475620569611153349869521721922558167918692025462330193006371925176648116721753600766995713257244210497485504057072815609304820586670223605054860343156011153858484697297582185657341337552005105483659796975254570297423920275675550122712212466989180593429278342424289404372987395949886789940720603630002250606163074289182111795375626023650637236184324299078796348210736633764552193502953675898065984821694976074075962865033887520971351010964509415904039300535692808186861630938521329875035092740508535181698623698724134649380506523667243508551957304529323328430567922626283135330127827759019342412981471312374619206262271489132333063291115656999922121722541112034633638920337524969309073941975741194910380125468880001283005061402451499318224363548992635895076664168943628586021975022356636809978511834185934877001956297268867643313020400120996918453303798855772515697766188501669201683779549735299405731450740344617953722092628627515902493861016459262854184284562717460814277177145060397603743118591152566216484116782679367115119838721684474692619587264313453237358791067535393905448473009953956819865097814956057353718683539840535094590755531738151366777927745085569575280948977917237238633169345094283967718410058128598406931457382091109546998518384148907582372639637837030523260080135172697020978715173919208329069977749244675943010014158799644505662405256511339357936444552677505439756359034933895643624956373311800632172783338225805583956575225355112915368046407843932537212857742316828090791038869931914524093217541687642521577354778764120048989639405860544723182156738137505269184548714469936813618790560521029905500778808054160672618143754939141690143158704497728335869859736732496897387175836056992064149678744388187712335698764308477102444049345730357145501818983571868050095920475564044871422039537509867352584457802912537127559253832290689694739079892365063118289467644009213114806465944291846521962845941717167688050667095002548484606858823951905463024942427293580663480962148713031439023986909404482446060977091149431949175354519363673312597685845482829986078325530368937781201371383818634982029958446232984601572454239087920660386720073817530670269306642287776642026186005616319892583890558700229211916563052818729781979278574163111716030350976787250691809259837603900646941111703295643185808332732870329834128419410297159843259502603782408132984736644705890515947029926557896110078648058045115187990587137810011689875383543886095958253083802190795588876169012920176501169901148975597118536098231259793828881737717127464918945251693959342360399184447467168375032375887065941935433788812138206871680745860499999230442135451190702106873189023701398574490594400986564370214665423392493799192773430271149007217289981071516850789772669291650912743924679515219719498324869219133491124664892213009526290177812077260022032779951195286678944603781765196634517343225060418405482483965153410517892045977718682695461644371561875758963286402443952466608149140271618804371722872235828136906239599794748720212466851576334454825214535052146255599905729648366646000865515502245389739828232730056219255605712385206588163740256787133556816637006823257573250505225587576704308308207993398861698821293912139961146367939299932088652686052155649749788418761361638883745451414108424671469224504774461204958813993760462644403372636991259324484188980019345628380619336896653930821650926385260266470073307591600790284663888353493906761736125656252632870139787889779281850405660051920445449217167796335635589786710429770415226106971512474295317982940929358633625404060277851904402259836063560746488446647389343093531971313225203020169124481916708557718720356925604096693309092822635655538344430704505919376168888027209230060272230987788073132356668685111810723126630313069786942284403742026458448535038644208480460809569810944520540422602606874980635641644390154956184816436090702500687323055574650248707068419296555806684216243316841410345498319007537277770309685226028457421286086008825720776609949016068530363612968174109388383512428993328850867279258683458693711253372263583172109490446599759606388859687265735283321435523921227218034506118037765026920994346435751526127100001203469909077673868254106320584401935922571194491818333023967579245012227084600256146081247210298025664002752065741310854976107996157702849665300087870171294320028717884051900150564044132329879444688324410305340670953211680992323593844004536493161131176524171104822084320633151570574800264798332499457151322915167565236345644605621954417298986607854281285363489726469857234115962331154953507460708915827232929706506714131024150765307730402776518256992284365415062990402720391844588795686276373788690949568479506755731503196480373852040293151484687468853614716457810204958637386682318000348231324398604157294356609911005765737413138894228095850961423309297166870866569742288321546645312858408440997063845708328528115113698354886578729475802343766869343299663548543272769802978817639520776280131261381573143914784425456065299498879221517466664667376055130898263328657628060491812947778259887186132448029320628735446884699074396801181533133632036939145798362227049557410854193157553546325724275948396052369247324437505330333258062329398432677731800595892728221679579374358678801263518241339587837310486754518694915757805587979401786166130325740205671406671602596380696452365270618528994474363321953248702711618416214617134416340926825648418885532971021713090777596449524690565548497880774957106428797909659028784074710754768448624626224753188915461965848709577492428033945846130294221925002637336023261875782895944272999302263464027795632524010888068981659236063722151458347300434628583953803250896244191669390085406224398625058950670241815922355399189053189687757371264956651945779327507651736645656879903141738109825947643315172892969578907268979470157037695668891622202306131414150591271626814674006237430622796326848836250304818102056398413996553604987556387544385155981845798486641673595180491015594302863738255093555036432013854118947934232420008733118586388902706191963040210737996991023546489119163951911943562316972591451500385820057065828853743104177073336385251244976961638248526302122449287598884271649404046891931213732835243309995678973979306742716937530005765933801303332216895983092347820632261029883579480094358444750376357720305337921395942584175211136065924959531862288226919630891479448885856820110244088823019701331979419206295080790991934329665535076511866961553528863481895186588289453401484036636222165586837970659458456408174969873718327880563195644682592332335748957499140192424452495149909329457483427554664115238753022338299775240602330370559857944299290092699341254469368486673466526166642367501471597282650188626893864581806696596325955738746144564777200420534910965566994352778322023568298530439775412604457237004215366347282504171083168891154722021583347731402134856020027845803192744011430022708547864991186094356503980281877217076671911271003599203008965312194144589878129149333815935573732922500331693460032238652109219873147807126139442270986104389711091849878063210273849654881672294677265087027463338054511579113962788961782188228512825465496880341658085520910315376187995788223879999181983786427806797729424659586153808617213357309990212406764904229891867816621883077964989466771039067471962628799756382674023302057615719244244839862331668366795334847802519454573633591168157607307038465855940323795767051259991014882963426510603729193827065963604828223666254162187135327349209598118655175308778278752170155132092259713417410631074013753023559105719188024550704476779813805489304012880849077797778243392253342331073669717234969851652132320917283528397234021236392290521863160207821645664161428395090526481807820318956938523758416814041138505302044480973653305263425027314898735781189387314127245573237259704136507312109622650730453860729483316345504499742929099478001815721184992258909093545115913519175938055975352113968519602490234194951420944697381598516080217529180522303614501128286993717143422369829831460224195177710679371787026182040903932794517676434207685314425954916552297171744902384525377989085990665587344044145299961775365432007344196162169335354266646064291509188097463656379216738034628828356827190076142310271288206483198827912107717882496574043824030102942263712036343074255953425782022345567961491492670458496713224555494407202655233420499355753480786268091389304782250349365800098590541365825116819850242991889048407800309536370377149054050631267527924186651878241045019747035999203387091639885067192325376973128011582250426566403767053025741202623273505582789394819267018660958564883310769885213595980811057923008358605993259158665255740942264200214833658797328694470681039993376864140705617676199505752802646867173747872449836259100816020987582544362175832992805297686739442532352989383276249429248253937845876588870356508300136935293392488137782063927581569891777762398415067918037580090153435554499232497597893372455994089111804850959652274395300611110127453745852983430075683366220278329569408402930169943279922849591114184110274282559788633148904276388302135925913625654848276111610426643716747006186161220183638499532495492028676811230073928662687941828456486994973511562351719810841811683110191352683690984117172480161265558314024274015408693032915728570789203968750962286638585230277875035987162667393366548974584977490286223273226328472427078773031929213968037000059474537404793150927198440627821628521806356074208210475404893529636297367279225387386493288142647025302640540930497711258674145229228464234312033332298572942457662686619380720041377525511880549425573744928892658793708541976769201283695857118371884130876267921226035044404118793886533849716611761439297237066843447930800989021896562008708642775013414611856868135343208658938842847560788635516104051483706523462492555400016108730392273380243800171183994387671659159092777672042133290963246147142370799840514609092833003215132196516731695136181534324589422781842802839760757827331690209537207522590002755393533995465331143343573731368354938498582643348532033155812208806987839113891956550249602929827110376598975249993449240309060085285247829006678590145783968956949211894955799016747369853163323434311822756340451825822441675598773700768759738435131533605080083733647461466611109758189686538089057981613093427145034869523456003395134579151395043864721896455578012965566176873515176261407257977905230453634539012997753358247425923883903622267144522863813433845881331260412075563636024414316700371489478687619836021007559034926516880933466208935705236573471652419087728408876651421539785231829905301864349141011280367272650733515138566766053604586672500008985650923795218441131360390611414147462556996097228516767207522872266197183244818805642795324305077833897815568076651398286841709142231282674784622136428099319008356704573007742253271749859066996879853934308459985502623061019254597371282732945019805377819956046237780084135930464214885672003220163743760314913299787972460251026039142260951148980966668536299586717333154723488199773405642949505020793129495297116831417905882795299286182447057318987865685579988553399042041103738587939667896454887041369013249004772129382155535080681183470517613916720019358250482002842025635459835107468760192728248514958401634326022622218557825141991787790176810867808030335419116285971933817708144736932939595766826755939071612384635534332315176885526228471829324642758373997407853068582979508780791405135332606410675632831134409191153920614866181923275005052661762669507677106337427468416522221845638129155238776510995622102647787027712033510179755670939734879891252250846637022310652312405168594505638285935277443203117333564512949249680962569473379550011642538174178008038231571229561427615987905803619910063219869943452499892011061072753863467814718738688373442976354218365400869715552867339133716999986145660626449711163537831195033437923586550282541111687755630670401788663518458693871574898867476922370814748100572915676494955382026234309905457499819977596903619269762876155189495444048320963139879509714905493723047527215259793243716854278646854257131018550492519130613564116444729544259700434552200267501857926965613060482852993161277055528603855213396561490041069420140696409670180610377293557073802418636745044409795630181008357559759331535932257325878578086167050650162959261814246478669623824435010461681897283027751309428278350552793430681377765573353890791983406949976883985182028347023744192613303396976120688435656830698594481475944143672144085752080494859875505648937546764833710961874041386337089206869393087021955421830265097306743541270621245423322867001577737040647363786277864533044230948939004643664332199637385732625016706582580192932749001696553012511627957457841310869036070989467926606849998110009440390031564427570442271809822515832270856772372289063815185173981093001968219752594612341482679855710352464266501587307147200156944662907323404557295897972134487638462787523571409357527868708727433957068065801885208143293637589149548919660952320917138560322205629908258456554796210948423745132366396260397688368408307879275924076024413865991833364814775802908139261362934384784791835674621695819081693468724916173374513286702734941273767722704256057927241365231009126349392519417150047925420835639480704590459823117857992267004318903518373740079713918011973719208613364324296646119756063722336779181725042146454554512006467300371128150138295482977688281001334897040569817866917410655074427853736044797515045319359166925532924694015582232799079400779440691236355161240766274700075643735843019628473489478756413329333447351615898123264252740542872358778053790001399204516759315887277889224563179145110561105375450442349047664328631386156895560949844993134935830633371266449939986187722306564048490795717234013522947391179516748511284547548377280800588357772556192077735810329661808788550012817975591315330601042522151347021121834269946637555540645192264850435098207463219008377310424232244035795984313411821171687543565267496338441957026525263545353166091849234803394927083835343878789226319918585837262339913483578287895288977018010576412313557815936494004171388704388576989664085834208173874021651355265523713443698683596167385621226010382933493624323104197016901363850139379357585692911611571768391459792955047605777056845747391044943658187609942173801180801069519794699421586074146785432359355154484515200918582802784029517124897276852901648284528700062492551676800805477876585582504886266074565887723601702189766324803295456707810220835469810128081154410254462163887358375800291574858353700756536387020643035779271223517831614908444803398317055405672526061679668076523035688692636698209943483435380585606174544465522091031766748246992926640625727426541266901680112246244814871287409764819939074545353849780922327799300986188786653937005179174768882284248987974616919296372489797778130563232928666317625802343503679555361147226660142425166627678053243160950262225838257872422491538557817828238667831371987375721497389439592926776592118577890909601682983131162755850566472250897522858103122635556269626163164960484941072565868630652635830511278794093426778620342915789250708532554671389226094800877547568755086455183494056050604623647068609137442660691937355063449994875266370417886063208753085722952339375040830559424791110269009987368700616196510923473497897222614998799996057083132444577894464047312894026437089288746940544224098772441329039231536473635216220432847592956566175536657281267939386785667092557877332457096144525146053981889239099804377218051511967898642221004884587222841320944166430236194186028917493273949077798204254025757680078371704206131191895197905958610325973455853610715327107100962629887408866270850101160843547189866597907767316748534722617263803722600253969893838249855557589007044408272718822774925585953520763202149039116930125051774407379232689656385041521802781316069032863731076316899683283115225930601855504824504338477458600842965532838768817049810814312256925783933290807346729734386314677682767932568716623843839878254974199153956765539720449019679977761243700326355940707573246987318626480104398295675147677161334927709904562154662102511200409292507486565195400364405482970617594055076555103737547668022815212421174698156849153646245113398826092550267436492946486228820753257407557484134056715414256640923944965011485134921016251541587637732964303982430638143339053606596842130346740961518093708810113457987543743473594982763530916594192423602138008390224499549395148145031328573714177395568859866800336456024174970785174895561566441207854946862595191071674976853268498074504771192716117560896302346390737569622097169250891007750300131809957459880488946393638310578026345376775878370574147562540005623165135160273036652221310253386549506497002606854120909757698211539108937908359352800485288135757098255576248571763437760989746652118332186681197039099532390579600142496921340993841165476040660695628267308105269124512593050798710134589897550933891662560508294197127671594463953943543822380388883258351501818486541830401195168752036624297841774752808961894745515561862382651721952534157985203773120202294519628358496657374013661194198591912281241198824127368128528030717671975901976626063575964812668263671612146250252061684651325803912342280201508062612731496179051659270928254820927918882701575949752090677090432363402278260724851860226523364221837106852391285997073778337239485049754744269561955754532447750442548657329957836222317139141744817149689761934405376040171227420536793817129427362349019519268681218291065846909184675836274659921679791241676954273212637333665787326577624584075078544726676639940506622437284637550574942148548357061632512062830346993828368558977121541382427116272068033742507276737810441164442997714572989087871009373133951990349332395355481173019182700908843461592249566408434817666293814671446332089698111818408217536435034218624876792127335280726405908300908981737962570834500307324272702842984522699179416993600357824923926928183204301857060924458959656705447216800039423047581602575314404623446150446839292980813201767171497737349711257170525167910378263313051584301551619571341462709465008228700493423866050513056260005016541994783359462218144330795665060314260909270758108729963957350762510057966030172337605582889267404991249938595903781120974160249536890004723131731610345711501955862670099877056581677889695058717248470662859267926998453838236555286789157603660131878268042311643564785032019171271022382766290660112229948161993736344391297655658278154990456629470930324799675272478415133874572723437201763372100467146717277807364495365177601165888407171155882957106995544826383833548297162196838901279102826681455099786630300240817544636150571499089996875634337907696227725650643147019981180548763869007935826102938092586372439883011527869536832894256057457309359453189022449198282112730135569752083733365694352402054794244730349067735935020350567265809869990786443392542596247643852782384477989992318172961076913089895353560969904463925396606711915311234621461541166690435722274900934206606500353944937982841817935268058178450632080158003422075017340270402707883072009540730324329628276463960636259314324975184202441895562107596071346754491252096909804810830861135522740714979013677738747931395732710349231992059138318818012080348743100671404255719493192123875299717724500979439285686658587792311690900811810711142904880469528863149546592091323954881409489341111789882950144939490055567213850454314385728689142194711139085410261843146115078648879688813587788181043444843766853761746799550727289482239487457032699239201212033154603015095507099012178567624570752592047734615300481759123535767083759881796888587157193548842808805397971580963808311465143482969292657185280672114765780264307293632475200954178739383328586801095781233476614340367205005799868007095502830185395255690316111493587123154040418090517825357040545030797535731885282983500432502635607595791903888593511855214914651394560817963970116899879692377545067553670833822602459752625959393160002171539773967772292029112281861991680653774833078378125090872039784848704368558831252115069438009598894350515145305700390829779478569936922535465402101666913958361988782931061495302715016833876375506822914474888265254132851959681495619291794619720731116393607896660423865597853064786271986892960067238747163920672981177899442380009661295391336025556222508770084378559893172945789522775394013967717742590086738937732393572946066439267079910147137604351307807262176691807595192808739050295896352848649880124885912299791350079381881717356291135058019406816416328907287514861153698239881551669704628660541409864262898346275070223273061834588208286280054523578376380864434487250096412839250346156837217359507473778820858867236148868895427754098524045791231530437755140670012877650492800747918682920749522936229530829760036863376298493875618784256873108282215336038238628448816392509251420937183851729352622903557446762577132202653023511317619978368684414863313728875196408660177686651193776884418025579252574012348861855286692018677556632762937851691392752632355230725534530797979208384527286751783660477506136574601043555492868724955665897310685960839000122521478792201383048411266467213840135201334377367288477494969836974307566864052270602543092682601596204807479262395687123699229821304949253024686406234110027835840744324141837736895786918625381025933267373284838540188675858226163560577919102335508286647702791690965284853239693065204512280605061940372277689227978829401005211595580045078761015174600571204517262051464773665130517519874224279381276162004043436275728381213183817802910627146622086413749061144685342893137657424953836913374611399208370177916358331775821547587375865331257646539589229708754871280631247478499618730631152686656068096012542520580053228902030910592347865130937048536948318216487616957523835048643521946521900616017755624428841547241845025488348665501057032290172673860307081081745218120397911696850870172630913360748018678107078060006252634182550113211951245460039217237284916666570509356025399466586697580883665905852737727461453014923232831360973482183182906007720616271879232127171447679854150566818725013151401362510636214380629429380392470513747214777633835706236315131416779184021344869791936219241548677204389162025523939598665347341325582476583860000897469860817806179204891849395173233610309446911363886945635928753136614890547857831278602831165845129125653529039403214120557985018523722684464217943160796467967873132465006982096454103257430768406987222861690239310518616017629369157076452350851004434300638358239867818183971714690525381106847588653515635590101218796406232775331169941716919223534241492601839814674966216546593168619093210278504007262898297069648902999426617599550844783290304423570936970442924997007399196922268397629744964921169648903316950746484769520385036178688429451722492002763856058010965381099828440633866958101947511852829188752563595935157287373976512644305361955118126670892755212133201002833673381387642898154764069726317826689977059277317425892716414193158821466312013897538092211148414811062551879559365994619967348865903069801158426747242493142962278278274412059734333310709739332677112589074921351068319603343811818975174423829617258205941454666108425215554728106729635493473576277051338303904687038030023973597284108127819986479126666511833280909076030846009469622310557939813679538739199320314096203675920867514235129260173349155972860010158940600614421094630134868740484509503727505945942856139165760929499991165209290753286706568189632351896653221409713829972492805847075919342571957943754332481579868549199191597133219999154945158584530023455396880341887537897909793683437826279378775521985382292076054072625400480814817531828999616764291580546299024198238703973212843654778597381563361705207161681141296856200897589024215220868143951389441479139134789868435650071724438619495374626136443829650101697916541672823062037605939198271378707284073461742213685850195085022447555892419142371060386974958652476651339301002234220151034178700065334507382503064265306614248428161121369117868919965475940337527886331583908533064239598032424374092911007166354400923870492822231843865827341619652146462062271568831758807542644256500179679588764122997943879249287824769958905242612759197313550393702324811290234217532621469392438877961491544723330077244259975225199603631642715906316794907974978094054981383635633180945487596048296202884955267531209153412337558436631818143338683785193805873349241282321366726292457934920664040188496102534885703401287201479950473250093990739187766005110249575001067276871258235491664867341229470288836226918707014405674038303844185596271723788254413410178180285609821246434780034243742925839465229359844444293773582483085619160834161862603883498613924366925046122987960154077087934034286253720752096667100723668953804432942454278325385433527548140838625120148729706696180369993602845442324016331526625518363591472384418476575157958049324137641297809362016085055402801588570229026134430116773184371498592370705157001311721547876860866690426961593698955344314449883417802744995085174261717314671252876132327208099273227693252077912711752550333585591833020124232925753091690521524261655378225650457489625958770025660109916271803617826485994692934908303096454080433526700312510734448351763330631821923339383591444329359545540560229690011564350307811576538948727400483922435538320164082366775675137535546312183758716918189337849420169430874582137100563648058222091919322200946584428211564534982927735901815426123999440518129146111109405043020319002487681369457564182993149603640698467389820599702038256442336488568312152412032657171523938174505152446533372438123509303812546291700061247496292453727847093323454796536813397808526142967214367423307797061799791493657270054562377138627616301464896018587540477441532553695994975579223157468247229498283818794642593854804137654011998240649908702349624638092575136528309016595453599416540380245677599491369150123866498235157258203419632448957195200937569590362581467233762960658658221741600544297129953555328465720796302033977222531823779881154496697208574033096050352849997782853342803517617233856219972355859922674054313083158344195402567380800251959448992815416870505312939269446016394423040465964456835312928307709341206942113370341955559010756686566586743091800398771139377209985959074800415536699957335984826346065130347283433440984836449972848328618327383835740619435040524670433293475365041143084269376853903425683665408490741976657816472054090489457447441360118170364517431731214951302516648202957456153101995265679342701382659286698964335905275990505670174114096718209496485596573427114104879018668469885229295041413311297252583843654432387537690012643792370645777260050395862197709909405161380780938355480404072794667158379312685829389158464415423626953393588767646956459482269319556161812212280028684762299862990932312019321672636387843373127549700937334588055100326099719241927707505499900482689135965117687378968536641329915036097231645642470904327020585572269593989427308496139130746497824440916218862637176831970860980590655941835115982968365347107996363296261189561563961898372253425102913752740541303335436797105208103103084451082347231832442254049594929478949595324657112732757789957262045998444301597701381271636154282007295757020910975883490949321453274402281025067971071029828986912470515702276328494012200806757679776792541101646558643888877025272804596308577062834511879316004478915566812641252598970537627775780414930402274259725439095435441465856349461579578583494531726645076775760284858851966300235122317612525957541984247942457600114096977875223668731023584912662160532649347232454355141634634604642010237288452325936588537259391161520467238942788210422034575299742883618161761387054986630681810273536289270898066946787645144213191268301471637941834813242647724679024885338993325133451741393869465151982186815698378808298182608315613188292459039274268593898208630553320201017687908608725564472080767344453718603781377961572503406076277748122344844702820711161993946214859221536218853909387492614332847507778848155313820257088631746341798950044943164648635120344865516546071807360155436438530928856606528732457844602163260248103015642995798367094560531098019698367045683603621949283089256013700615164640882382927668998983246801958741461057229610453587498422082173541900525992090064455973043706119463776720379377742960326615084233045441423095196405132063213809451215371042317233519109564130361154260088197297467072984958233687434111434450186922085850411793600460879544839778828372588765606395535802116658942001925349018074801548885760218062693606939883438005979112448271054159060338180264622526166406122396465942835815730312348440018245785633904754901139352246959638450526588381547891730203464795708619099631495554424635816058031842898432879429901968678672733584554995294103087811808228934949250668364796968135675111450429304073732241331686385288595662970747813078112206763751118479626863823431965029030320296353948061151514380262052925228764951075176625697638990761067034318465652967797114326328314455607101593882462786939779312731645971655978379285637065984286511505623197542578218351489650568222237317562273020406650829919328854216194721472250322271605925887352344485899165507880765559774353773801320172570633728350440988619089141964690542010701325914337017548130049446643309232863548145179213644582872548611391663488987290738610614495997867412065738405160923473546711818209101203896884910350520484999965486963384061778468420304556732558048235006620986208834363685035355794388978059116843006897457265361005010956408980095313946769312964413421579534155487665096493363981357127527997220790534754794922334168857460707829241473406496635503511199190310530133933319799654882734287533901936025177129131420025083315860663661632495001851234740290522176286527453259466393636466561867886146165642443480509598554252135227215915756460650733589573051834972766391943319750057428021239378809556526776146454019011606545093837383312601795445154105653765355503426161059729302976779784906231127735147973230812754711637774205475154028938464511554961611844940910418025718771632864061251784893452094668892232213235250980021824878732593474973913039819620933491722416236851747211822714171635969461477375295101610770665527367169308730828661327518029037395131771615636548512166279848601835129536361596101838004915548221789185261874024218174673441748207547232123108922522012825652850394425656575025037693938911882646935233151324821433680577639478311853306109962293969131089405979918189797624036019749058994970462370034991377303194481938774559564283650681872294929836576444731680902361360546760868895535674056238760055296043651804791435817145112183824014248787366979971560895179243484392256901290879549435172347940830992004144296121415597100852427839090728003041873157650002614906161113960752172201473550382796434015243923246570874425976137790311583417693413897937481636152725155344024031507201596121730201986042222741710137275743515924396640433281012521178627028690795899823467470690270256550506931869507104702075167444989955431040188563524749554915534124996868027384512484836998004957942603922176381092913340898899945681783753382381156579148455886156517727034943758193817999985068870024257888747058492572280937034910292493770639669196862704111514425920012753913983693379947296697758861607915160130211265236865812696649631284140232545353702415107839160133436777001404070338390700203280804888181922801711844824292591735093930492365070789310714539007072018595157668743455448034875987643024457976282627364971817868690749945880160868085376127023200131430979402192478798129818914452684177215928875558489820289167565243832305819452299797544771457114882443335910020172039601854663540552329859432851049889392922398532636854917745090756153947289340182306724762369028669824433049483687339092223203040099203153835732571601220802604087767137749462079238368369808229937322983235138987543477673353795483984625030316755677421092162636618221079225642986090308514275417017092548344535072521673022542873197446330526947839529007375307399692332459321006676693735001249508983209025637352772371944434397031556266441964790310107438957538731763353760536076798009219371080330993544105393017959243027852575087365913500845327738262868291919915601339053513082042668330271088215362214809240419918391994975735884370709218460452053819382411329971345123228042809379271368850669150972605577241417206086726557330301723690125607658020360412235451106179696257390993751987519425510465824869819513673410499218791714854640891612094298115050583029581443345904524838233814485670889493547531602639313716044708986426751369019113850075944871395147166137482499324806957897466139642108802038437781200178633586900776354370253367053456779309748047793922082758085179461455798964756576525569192960657965785740907674285341929362021917379705579863912378364343929221298371441629929341626321695107475003348303664417462552586190126543779414505656146181759662087196695966584536080711597222972884145129247937927335717061015917991758475500049070212263846739430780133568199138636301122302500834619431133403107999417293116604448716989590489099623540879270153669572445601825478829860411697030833582859671779481131101280742911149288922086769956457471097022086779032933620152265251219813054779899049514937924726412403718559030173844815458544771893897962871502274480037571386012713257155399350930671171896822203759482876006467884214394933016814016117767066618548957513689454387190801102970103078997216292140540065868294405542118315846523901772212351026432865376312870806927671807489640604994038945361174620533059762177986186652500710277013765483843355770633342681386557891405244303863128308541741659057735320485670455800904242018991621073500050032281581576967009388020481533109878561349440239969006012223018953391455704970737868725252858791200443340741585123583265942502648444220489981453232295932901898531186918133994825567042396576968295569575102317594387189514330443632157663296675657456335728418982292975757841285066300910284900441619092078246878594079332589361181074089979902550955654283676920222083443975978947408650063413539054712230712820515591410238933800163735719233527271134515334252096823773264500633664746394043809040528452653772774046293027519407820534777936246816348251420837463182090809449732117194635852699819526752443710007347612915062963643753778047049204046175829534859614695719685978892645544277538001604784328640726869706161412838475560745167908962680190921236520671895597020441061063189727618002271842127957964397990662314725810945626129847510960408152615493181412182733085946731564326804067604588829473091982930150845157619715769422367880840777519560186453762972080790585123248844942274878196020897241227060837678859520646693310212716514834970181365298722131426060302311496973124510017198903451631704082002814783319283183947539996616123347504611761458653346551577299143277371232768360113944962743062226942566823879190556665095495080672592289836901259776642572560877541672401939433290884088735703710660225634286452093505633063162852587307903026002398019000740463922029596821825082466587989504547063512588078738588054181422010938203944514393959155929510057125489717365341334613315807705861568319887652320554939361260447719238126430584637725901626998198415652911819626300233882735993715465858231361320596574780533726345272343057803706414876305578390768179504384264783009720019802553050354181844361604345438282604550880513265452017571365364360852146101613893652266391035879138073724162555696982624181274794999211425899159272501897598988250536886134539162816876843442585436344129159557885023290352973604931773818274901163258595534789934213462685885031003946592973147317140312479937266114782394063073463052781972230896489519290445368688406448849672805971698225828375714201434622356868010629701989117584315623329092079348709504730118074297348717342653044081954236844931243189583011753897643534817998237418818345904283438374308973524211737270881831280878191261002253742768677145704697030455459052482141167699396659581550801429062952254062153271745612694371763815313183709864400045652579158574565279192586548913398184149338822321201279096050530552907313699790639477088318655567135858377790125924199558975689318978965873072925587017581222310163828707666027887492328568163523287860133653686459758627315147070280609489653015092748823786631737399705857843524610579422657930038911318362043557532518499800935084181835420847830997053883914154006273301733321110873915118171895360501126757332071917102960941220883328421964917177973073249200120859675616280738957303608314225388467922765164732938301565669329425719420287862661424752449905885541060860392367120602084402923423550484621762229502867699048551672298143246218493830547768508748461963640732153068830114695627167090126314197755153958537995273532237568545177334857809694683436888802547651189752303526489125619165163374494811938213288988184863965241250034264869853465220947639453087568352980914150868312449243970825943342561208723949127493877078386764002907097319148719524507578693278850633316549059289561405153588155247782182605595624757091925926491763855971773693211838322632966477744135388556384705905219424336753046336608596943282209812913046611398295836025238802712768283299964388001330997222082705891654476839308279413699401638663246967381585141102220101339277696463687733369012277390007653500851527068226864388735777941626653437392412676879243459809463858432265946126901511969110468217740203983075780696312322709673092434482346638643033994392251833384455015891851532260795768358307206247574961448262597291335925930829848188138464007708550021539570477236379554420495743297703625145605664192976062398805283026373652612698373826508070894871675081090869895602835842306459140893825045386377831673666235346778620568560093161605565357587552543372119556006788018662041304404215771704453572222260760328088121092671344325223072662861916283629126418219340426849078400542790929522311905758696770692677788938160512245880792834614226456230943511294608381922865335339292523301596156090445007834255954600835830186368716443277878786487126843330079882572137417365306865719009925811897018904613320903031970134754561414764994715578228023753940125047619291270998045334482267265792884743774251273407448982253371896526007437567266996765218808899155904845103994102652567035379535766819585926060095085564993494914070277275826919950513670306059870507372358095170766297656661624146895013982659946181457124898837748259791698683102815324875734611322797690562415839957786851738007100884708926611303688243991161333879249392419788987643298277371025490512989210331437380565585755718698345066401080630205462346829492597017708705980989526500433851973949646249739004348383321770776292441675430087642383628786449615595768309015523975916308413303287950749574012158773963140558081250101169468759805981043880158657058489680477250521783240188458939155441307835700925263854415062966429156203098541525344425326802062938770137342497115190572474481557347423652738423677881338027451400425190706246674402643949438778358513778117387421496027091757574343182914345757635307452288283266860395167971927906356846523806657338801901643201600415257752013073266790263373366103483241612421788139882649536438648893149439406886699776694214945595985901900952350983041032435992440472218384159921888248930857907893631260602954146222650319663055056221062181132899042375988546484677175325006770740223854559395204715068669114472017846271311138570676245253760748374715330625970663751715406385254484818830917539495558501351483788657526305678552662481314562274820933375675800332662661222557370967713689880063551872771907729357919042445007608102811159735317933982712009774175108487623987177649423264314728996891961269351763346156508153441631146764597077810543011456772229058098077292237825620751493648113284148415711308914994175695308801648150001130874127951536415508506063424703023596118544821807033226597940615018793111080168851975578678904960289124262896455395074813860740875594956720302379345060362274588203007602859174652419508796528669593606820611983907941762379245530321687387181971527467055041006105745220727500436076976054993837656524988492329233190011656132872839456545424534161619350072476361522372902801387064070290110980731820351277726863595294060974330845928588381329810890540353169777220928946413124406481925353074311599879697306855350239583620213405307225941726019217234541478407397719639955143355972833087091270987090667248375491778766309015416496590954510991650759949377133132543518260860731399897426821749274134633339985549269252518228124874973462416567062589996626554642864547699639227993217491488340622135626328760574313862700505100486565855809721118067492095019535818416987938050970219288813315326401406621615100741038417704289670261091898521832075052268027164520464501005429085014256216685917677348577601600227120816515853862919329948441892546486882078618099816631200784773099108223327708820732083917988499092234852994712834427790288464744654035225589952528333293495516850197618294473731053818631564547889667618810859364903796625115686490513506175402416016477879737441605468760281237555126067567466222722310017186494397284946658473652654262810486410540981863593421451252604613315452953824047553559868552579207347354454391593326317026540711103907158219083028273525067572573915806653571991220933058521535492483095412947517150471150493928116339919846559655512023512279160296694701202073695739397205356304158586725893437998888791672178402470671676772389068137722995090689060776134506136922145801121272558323608798776173800146521878765189568141821857294878528204090637383974103141212403221584490062217783816224921061751759468058186813926988473338197633293327955132328915403943444583980560762673620381850955187850548803767418883155658686031780894771200115001198625786291253363139627253740364742555977824555229245860536505255550639077620980880579999152126842672964969535383691347720520627667413420194172654440967012947897882381817662202389202397596155000165168299869357508583362897053375520326758709446262483164354445312966690812063467760926103170521001311369271563321943383566232312648809588548704156554784425148096338274406122984603054436905402902652583836349331230234749335064313590347926992038294549339083812313385849971155034506225810759645559565123598941850781200303855090589909021493104271813235054917172411045486743354206016862061970775706170240530200061398844718315316706762490550772543669912292594196353770090123003755129341915982374653574445309923066129660028320692577339038862265577554055130393750881279679200091921260882685901247833723033041362788160463635440582249363033191262485643277657637824518604475499360893599488733244656265365306024379302652206840623110248149655591499915181687280772549226549092670616639717065374159252343131527881295725978223971363615509078208058629433623685859687877015024501042620134383651269102475714087656508238565465608197767393343066614271496365098811153490346767662219381446153770692524060031099634211283911201284202702001622715269348142214734325044001763829415384852101482943381288854631375177081660065672727344676366001854982920953122861488709424847491353565175346579386141702225923993927670998115820813938438399966115110238727284072695062255616154700178543946524568506239927898627486996531704222845232553637530080283025070360418220447115334864809390237592978296279624429690028526827329608017813771361138757947384815223137336800411591448785377987223007554500460364713285775111090216234488297092216579530739767810539770487503957148592661735250863390652325861356638860860693178766087223253592304257065810193937903461944271502027412799542594881507889778404645621246755703251922458486669682196307722630478007108819403071947179816194606386933217612971700914066714434639754328080742172383616923871880217108258271068622323107792215155102406637221608799844477569614033585799077721100752055051957171715166418066151650507499646134522692695736778201291841044743738797754518657383434664182546881141013112244893519628257389637982042597770894519457881925728024019095453783645309585384470452079811353309230465815202324615050716797027994275055839551669035870238632903827124937209039352423215248764884000379908423512762332649433907667461378572474417251010383456192385341594792542470407029675248368372670471447162499322056063577240685571667952869752459093291486641040951179970170156723381332927832916682303083937867720160930749911599006506958630461387231491753792023252096707494397092454775940395192594918408901004775724998671575227611889912433449740748348888877162883131848308132395294140922666301253113032828501011032161673562559982538437468362731247433200475867181806543594733946980197454925996627463713951579422420377664594613115160212287935404204274721008978576282862894244411553210164619116981026254866261487969335620369091997221245554938618173423823150268450052576919729151355180615113427733829861820713537939127066906913966667099319711855876641697293739287442320732538729092338478919497189510858590899445884658726921208234481767399638078861835173771768666928228052363250281207735579570642959292539585586808237601352983706112389021421412686457840378135972174951068522326028824138026519206142043676904060909252939010980166063157819752840597386873418849462166482319565784449900402653534551894659718449531782487377444700616129268255916074895473119846740984784003610229111283171175376035135786638400326489048213106934692889483290169270247841312129567203021792667150749490656930112587953434933095195737678248343865116159148703951039067633424386003482555927646899936187813303374920834159690463434129589781120573904128556793370668131638259363406855596188760161336431844942669873855673912574616620317109216136667613875504900403279491638213685382213839446227675003079566660055506066549892339649181370518293425040793942524666332373196395126142073330354293064827093168237071414504793691672546587068026316222780789891524048742804120760121070974087446317279609419286224833977810310666373124696524787175348298983612835842590072750032969031396369888887023052596032134860990114981108938930024666006960720021648058741277256011671248998724126376939269209713357132406480180700527946338016529309132191850202752548511579617654393329239514981700442125151897736424483013461359779301651967577461257507630453878891053923634829138887612361033955127776488014446405913154707373150806650102941989605184513562765926641692414065230396648974043477150436616996634348330886380136613373354076629915931088874173835753577442671864564514915973867418290066481155430972064938155303869648991866940004936438040095162352101759828897547629605166809739314207593285551766874000247497413276658170851755438525469894816271621944538056683204074649710415474211561943289011133912187898785940445451282865076300615448613698425949085145112703488700354371997557701583815082242674533006061120461604394505719058001230813182498341023512421287346939902865102163296952295131456403695611782516275526671201202399404744008831989190127665037690423123829377384779842843587113743672930376379621178938442248016415970776335672078342933504296896369106644391722948309686734464498766396816114043021536256138554674182377644732744136695305493566320729221502121273797317368397173322843371473316886990138708181840833513745580195452881746584032282576068167893282148413693761279213297389581281199730256723279426798279047594153334571574057603331514246601733855958258348442986658942304445036779827369826842455246987577271977863213696517409308172313641467961304957418894443108514441892357226121736142450058609746300534678396142199028396701184635934209082438167863005768459140424551492415375807290265300375248003027016266439841546626029091284619987447176386211123069056005544309817916228281618917905650920957461708143057324251715072685040909358226818118759283336186034582231554874558052901359975171026415590520353483031739275537133710421747525122630809349476187091728742219441906132957741560486383657966183873569562993538991876009052618113761550759791249400032709115927851880014847961948375887319930125621819282010666761151513725486397103472306226312224455577721802853722082421545648921472617232359744340794718080952039436166613611343294592889734486128130889827008997848131724211273151371085415388503484660657515767159584509683512803135434061066966723559931898695591833565071559554370741351192285314743492129630222783224599804440704126316394066961026619691164527609906380832558150511576414114155242758538405689434121947537696662908343346224133646250055847121513306511277349862520025202303568361813408713072210316079196051935312292746133587393200168687033799177247958359030536942336739055486526139095870478606044921047751257364234698470840050849914111028328818983905739652482864213563588776402203870880507374257996042372341487353097755188878742558849477919405552349087080804286458485097656970053287674610324909197178441128916858862368421939360188030860105401924207208687738889757238088807467418547035618606415221834706420909602809840196941745153780064207035520977598453306959894266768510669118687911199073127712970007287910589416815430683611940439611929161712067771071714253451138168060349096479032886527220952486419242956095170806154254333063789726038533672655387910534559566313508323112605821912728378697153779293058013911035109089504519761543377697373827924273376164124532833744848303538377162738678435084652858391821472028487219702121305657474737286506791643898133038707636656727995112955803582636974703563085732634136234821135576644108266990994024023871540594236058138560272789024808251653912840375750825670986061104522700046435347509378347954859789819515713109187155383447175973256143578218714966507853691508041918502857233696206248891076790054700843548413497062787451546373618537801487051593170168705671292196570872087139016733238179368732567784260657886199296179634880420344938375500860748216524808783396399211448973072144871675417337772489315203695406578892247735776595560142781024566206485568100899375993896652531860254074006990042703863693210303319974767647637892596889183080161022727645056474231005568177545802142153388546219519672117942528532219903298657530177147465013943876468534397408941201665370100650268439943099671484981517692514729107924016889738281396439746369785733260336833562776798460653147139153054304502743438546858944891972717022646903269470947984118336602171181951907373338568171991664768656561361745958848045170549706128332869609198619533597542414848504141016267583943402548641423342087002895281254526341209527977776949037063103876512206881910898666901102384774784269674388468008664112308129713398024015500260313125010512063864688982469059796102426813255529562093383855280105378450928133563248869910971066679512105370255695266565913297519657032802347181229355366910926998211832295102215270127669036994537133394304542213398018700464146389210199255502755211370054213844282471833199303139611980557333834059261524661428200051939153034772623219304113909495591768826927021826765669686782867692436681086779622494635203925102219424711862038787557549065018326142229122477188627123903766538870309023607044804990159536896618268739838333259589884009571050601825561462859402340717330688676888592825622939531161931610846976938985998208999173092406558929692604087453124002210822213812700782121638877225534734128428561070466179865099186492344485237492759529817868268931962704526355101345673080829804988990707741987330586680955823888166011558333680078234529015404846994549630102167806630359193724328032879823898018294781564047690189555848096903137414065015594631376412583910507995325008264768959142982082618777656424576581429606099917224286665317634442687465775457943479836195792491980091590989603722840743106549993105975587371030868949421642081306799788932732037779250617144618492888048316797855111107251788257794300592010881567039707092183241654207420346494376797380753603548237721901021032966011409906797645749258334238460062266774478755771107385550748649601841802848312347354217597906166578096064199230941544837261954564495347685172204653621242021424128109580334989427262868743451861775153273747393472551296949199146391082394324883924116111941407072768515418291388294293808151400319928763088325351512132496831969134264738059331563713157534046965444085742888880120059988915103477160319756706732106781443119492210672363489576020699003690892546821324424193045125202420661451614855262628162075823806782251530879189612614083529765618053138801115514701891107175096759818200921875433201318351335405870393474930625872452646494000406584462457482928169602268531804532398461293919415270503042770665988924508913310166719570893330384861798230651292556348126277934534887786339241420440882485361252224209412355754801364013922967856071295490865039801626580241299220851850552580216171909057401518067701872084664842812556208606846629462978499030017362818997178318604068992981486258777121861593442957098279547676847204810690710207704720792305559367675611760848822457376249241971991764748091737625948420312902188510660333659496469266447474288481032270718588155444414846276005241265132430504302052777144291243726457056550615655088457015972847408261725196921476925271682897877412459561039803994669686227389408746556061304121856853357860227834110139710037757893439803276739985097362513638924567939336557015438150773078222332653386693652297228972433520953855633891916363809876393697961602572334894653567001492756879274565884464413999687339430068208531578748548581527927005127581434580266644374447093212463961664615106445814375764740805524381701120223555464509878421875406320343907783261255167788876326010425478517737833995256716471069948419334133478950850477513078979326006468510990911602553130791982320899263384709613146603294375305179622590936540068259740461151167794152921166832396783793682184840953326838447659660858999771047620720869308204413534921987334863259046836263254683823326484141117981403523844163159028130040845301027177844508320954422959747208291292863814360791270222896074802041996971814105978706727168569247675264499660565707295529579882312617868428819187848165541064889625141196931560280475521709805500674478165916563176549114506182725195106817230402421290266717239001537248011460533683306984979910922979898754403964222792808300036902840309201532503002492066053906660722400767519364604833475792696393313083663175146678343355154099894038970602348684699524806981020010024462810779758622985016214833471530846896070033153117042186489324714187039995379934223367940577484444726330306152591864709763818248303851238960096656242305320148782781529295718408588836419688526433614504559565123383566968932614147057602432314468491972711725039540535720729322431065563649846524016640878197306327839126171545076116537242741227726127989176797440537241957640921359110507580699540304864338553355184456838182806361186933700800406886400510016624252678819777980134183236072473267861459764003556174433788596392396690788538328250923102945308634702337151326156090771533591618475263099287343744280959055888772589700848308320269968970314518008687141322914143098125696118830109980145341911176231242207115237426858636733266281301942149021420284653162005703353425666865283931589793113306824676640554806044632736521913056131101638282775624109659118496029908688532414381523904375889219394637731695779843560168368305666781992162882256453174918247668485885344958495830590562027216102445493033182255131115840196526292677003075588151964260980787318212444126579901528708766282859395621614731724486915098685701763213366638507675255572629685605202708047361880190627453152428746387253898693126520923714870863603277834420385722360970523421580524945622716761760987506208173701547042963955485272889993412798255919460945727012412896631558362204854175269998039208639910039383913715741038330197507735161782160135350731480645102707126812080360806522956553913859751718060361602005888823692305028488413890382067404018187575960500501955633876969895807616642502989313373917632198496460800620694126249626914849977276258600226150295404838881111931689314635745541567735913704481161907551804685123206322999063020996882828400247562988713165375809847472536791588790343648784308458388099597949893699717442832374811661403016483867674865793926462746338177134325870333611970152324884903288418952445270646803976582015915352755869553371869693070101060033955184056571602909360311666691347453651655847839414539735543678008267692367184712634015338138808973254082793937695630689661861900120769382311973102561091841574648401536913843806569993242609144242338262602007940994733143583991640907781939084433290592229658117837634710249698323600871477552422517929722862588957596716200640647506834386111823040542761582510755383457118600411655243553705000519263793883645973222063133828429771900374827482282188729978031134887466683055522503203797020499289826390202668622823924014130515974545898457634628770677558457303552587008890416979309013407548479887574532156668703919521382176515462214985271548879806731068216837045737846608748454686958944436404894004606020196033700368987313969923781623020478875967931279142059681814302565392212902312428034918693289307651848513509580139606580100443553523377429313461095893294642258513180232879447592867894882005358633248744170257241350316074562974929698190583718984392511344564124776264608983152397709368540993100522558669693410557478922787012346624951504138290610495057620586340633479298608817490743715774129826789407089985519653288602999361846710834154096870090754674375571818551589997934220377217515390844008548707850230513449584364490657366248363942456003667241461979806161747870479847868593507891824816989122011516084207457237329803078004552346653623473460170249898750716417397668038909227953075319665547635273338953907742176608507402993796768796444887466563212245069538839937209425569010220200219119017689746821913968307256457663059879891372737658609591300592879328767258067190627283801886885973727225648444521508362576487067252127350931909137564833799259287539621900387795748950464723126854842219459484144083771485587056375132771523291865114913652331652704747652223789793433344202097697400697276935125266137569255973249666072607190157606653940715699340336482145620842464505011737155832576316964575820095638194057259712768846913131546593262329280931562345198780795904913865458241947119282528822593729407600956958597705201369297700305293124057075114688895788995032647561455290656730966231152799787431450215962803915096414170395540258637987104132006400060528438600784507647540797268038706490029700987786003083500149181823141420866111717122056848836839652772916793074561840923857215882621197248218563644910802977787040624231267717258111427956405379587387365986374485296570507505191791395256316634805191884001222482313293450042885618621994651717850526472238390539397082563254094500111542091472362861359994038159061937796392170379581425466145358329923927666730770649143913962176747147205852365762968413742472960215149659185012704268116505093105145710391263893460181565452627164233408862616289508982434704975583943517886461046878266529938684705121015652909264547081058001419221223621976498728209520550015310477039357385632753702381519207210730603601151824961148360934279462072584119027526192667103625755054738810375120880322090488774259127866490142460030547810519308306629060769446653764202248006663618787455970959689482902571277354722941928348760065354644698932881940161990088626497196948117926997888016883537206282043390598420642453697925269785925983475202070624383511289319864950049932258456817266737445568095217997072263721986530494827224298511618919537771121976590462431449787911535899485643853016582556667260950744881928370781448565740506122361073364078552558141036618436465081813094836789189130420417103288561397797011369534343101396144783523168941494011579740952961584798795906802733033997791198752438917404639646504535644559586884136346175257861008275965437526649003270458012126980511598197491641872365215657413271841497402942910470782691047022571046249104958863834668493072128919509520578597763428953258271085028416540183087022973603767572693459941008808044064750403960626852057623916719137617455470403048693429020718419420922595243463838486978454478186434884324277404215061580975969095804714366218826860570610013290746675146103678382656444488766729383223720633175532952268035439451313096138158850301451333188274545237776658050510230329573691555441322555005299034356777467197706186820886032304875837544094647436115369569616977177757029890827040982852569829290765654384763169025581290253135213474281023987025268337068452124517191284934137529058436841617117220164927932430097003780624652822792646119380341760050713785458705239698396174506081168804302012471077316090644277877032898159681960464553752750819299537774535742220153509249559667706837495836687773166990550405046249686935155445063151820763133084797395727217598821607247947009484664997191874091971122511032040061297383796976942586092466729730500992190787069035706299489950721093949383717513291302687548381570227897463981552883614680722698005867478710584116979978589347930117729042625118210204816676414704789409790208145677867971368680979976605282006855280032960552009871340038773857003534813009173627299908253298888644269907276122003737498208304688474671465582153063493121402034504842526605745998855453415600207812370175487834072726443368922039956587955805934650760997183689233437115953313792024808311139921168724763470556226536372771052044355585941215455156879212747789691338557341937019454770632241521188423348703542965057671183041386930683239424597924305099056535860430931512227723256972068618781874296295932992370294880193225430931402775830033080039885656305859096441000136736662548073296125705747006018386095018170651332928142219665644808070532777571348820231858714002106762187547563690174404529398863613055867589413913381196792700655320016600957216278849491051636731122506562445275182228603607151193032932490842837675338546651758071877477903657820235522753999334538525456549826745608228643928144078675536549415988243423572781217472645229008028995634374035320671307763774916148205655552409231736360397422931564418335587805371893802921608755166225469288843350196864703312085791230560951846615296754569722635227640901778913266233466249131453181401406398473665035484013140139413447842200498359673308723466491142504722192226046061671988052535771017652224876455267031931422896751228750893294074223170566055391745653161046688964548088405960619040383550139893522792094262211978690935418740725524875125413796892345267222706367656655468570817899948018265753214958066786287695616580005492284854245854092579739046665223443964108565318258981896572449859521368557867852543111789309847545213372459961356684393873818276196367756596634305588522530339583170239012698927441331618685203141336556415469249352186922512043643155815972881194246878470274483293223112246528827545095749694889581660432761653325944271846474893576777361944770689105723776668022177063374972613022671883589211722423133628180644318949713366870694552928734292623580431006366887154599362891454452587251059544224964698653696789209115501952497972194034097829514128936559864853825262518522010238868846457146657044285005952898767453988324767003578417253273820763632711462086115544609476368019514805262027748804583780966560051028191700164363539936607305308019526760398436752773990865813321805387843514030010853011558525673589779648661275076352131085087876013609506232013751541167373784279080968815126377971536664985815174764711603846101997524700089741089915473022276529197763142399570137380826932530528829378843390946985426270808072989832037786870953016625972470978683113623694165662940973739171588008425330564509637797218614911798778918396261572563570930263589353322768120619932363600633977863206154757247362312306768041640123514682854733529876257274720104137812650730750374026401053521975949258435832605574651736827467715457944572993962250828172583923986976060217666633903534670180391511069685503072356954369675725753913098534824111949809133092118363246762309952760005977365619031321037359085913913900315725440280176745851241588534266199077330293420533829920275066251830533087650952867594142550576459959944776241692282369130052248688069937254771176116572995683136318674219453049976061576553960038900107385993645883967182083254703269861315225777262130843733112644873069719517488878044245508427232720375973891456247247941444783872651191458082615192760945088167454614038568029389957524524920769201839488781482263528246399655792684296741788889642245790215217711919787527996817620104039648380226707914487851626202632701688361302183341838052377838973038678181432265585798669316558606717062343904659815244428720405395335505852339174186730753813003735614525516635755133446837773276148926538681993707262615352665910594596873338511926625133188457597551363427981438053360677506791233676201004312469529659416675536958834881348260425611572765105739687334831205525097072527891767040699567370645019041434336601115747502411762559781421724040929836728993919915418181540529804523336140133565133262850106997188439800686789818279358075922392421949485616461015409628209796259003032264815569492144782716124896787276499894889670013405595010684660665610443307084237715021906288327102468375543020355675361726612967409111043269509340056228325269551205682302906229957435186870226804393521119288501198156359253657964815639155840818883648294279775632170847862304558308257091701340488537332491769297376602709169586961380792176372705021749114397220343921877512707844716779349072325617504977931765036748831960645828141207919410435471323633139599673379417437756732637443759121077553021981691016192767803363218734945473760641604462769725484961906998605665325599103650225947822637332275790977354805195697373373818199910774311956707306018663881948621787295243143820865424182965529769026972395546637985074774381145539253387684045211093057126374962240221769766399670787185832351937365054157726794860986066574944090638140558320693820413933777410091885230555154779969720448876208164220171299560034726014019007312599401769742921772163705115917678302430094287473129684228232279412014328102595140724912294696814505751696159072242262160744458556522339058810524340932046226460494019090753504205618484365307116916222576572027295204121878014133881843946719901681896499715280826553616758558093438906442768121907675175310127732178312435779795422831094685176883004228581981049490168941908048545505566822359142810149654668573332206030933572391282297250508304262528868578223504680051171957679010874606803325599717716838170223297524515350753402313548908113106653515110133145150380386736084038153553522751633281799818797579872335933289543451311479015002677317197935069172403524808819425624080326510523377087193438809311436579881668224335099910952076608373416911725158219993343001696801727488804769838232861366567162281460582062308130934709559070286419446773773138848602951499628740090264180266243549678432581536621989607667835583686304487455374467621920831763461587929127598508103978432866511691499957759994160493578352481003261350056910682391787837086670090569460541536550622716941648540838747653791319194686984899626984101947553088919231167108208915173181418367681961969552465470693464395422741352253714695884449950671572363034684854176836205677458608220920201508760157428571835476300972751892163109122238485215600168339022898303017562015689465078422171059025843260371637883870156730927728194782919911117777293701236374648745390148947634112460974320718666291922079992892315143909927298822479232549147231515755048202567926174357926494289288427929161081120888411535565126994494036901675805798963711452225890550491508616619605877452664153557746038983724526644928908734268448926992051624571196515911597029837162280104606582106332966102389342542258464250527697121133675603210035563595016263404840041029028877478187759262609637103807957008733212677470813064837119900337244173372510089109316354384732818261561171282190323963308905744882461769076561304872095663013380306515210166458595268041881970871119174763098970658832916256293598217989541421230694336706303749338165149267080031627487252619848293168297700304339464158878137239188238468760416664979729558067457217892725005084876419287548438606016385678335700748908787337771482701418933589186580424059393335541400832100894611975730965911278753020656274486485776568246552531737286506763740594992008945925692971126219457461188014076069395923054629888042887522183673174780733219165868889510179610922488215033373796794546703355738226947944805809020877927420192412534118061011876480001225271173877775588661002012820312406446599809954223717601307707514078723082278423500534332299061698543495625119260112582727270100360219604452384783281941300303689160383324979520486432067874395020749544053053905199985039832749361793777988059538899200349995077242193617138989781472013837601455134688741704811357285390737332242306708759222344485302610787240409377719399121004062214671871454748284739854334415189829107572610447979518330367269661180667626932195121634754213285504662764225306168315339773526073572273820495688800223266886988653744689882344299597896134924645177380999676287381848387328496167730466814409949549425887088473782395912199164959839333714725674488757995132343238909229454853042266987639758834418263663953839398870181338845548550203154755768814266840883459061459465769898240875214882347356532768691568529152608732788489031108485485299560879077866655117136730735617778040654776130211503130039205241225364866066299004865908088164030180028889645737885685280063356235775946800815500178094688491200612556271836545740704245045028293667434937802172499624483293819657181626179671619805767408522046454922043471189026785898548976257295035983198791240539163614385086273697855156302239413980373637038440177461108318901688969640620206557735645561842521530735394892780033884180351186722709475127507486868767910037500320011218746971012396254791815269343990778056249211955187075348143038747065452269336604168103517803535779972331073489552170279019494061582801582120288295462943682138471011613613119643104023099302865706427999326726760960258802789885957258715798679808546258771160942920836684223480114692156983255217948091897681133270232520579169101354068360488413619018329261419228427079758812073757925755602027301075508802560274097929216247052501818492796105705142572167147507387894151936753008759394182482053535948792116777369633919374403169666973649539362976252975213338553845931701260880343291880364691635253062171609531179316733966038155951319023420877042041920513934685326287062098112402236045879480540516841696669157816197439278997526147521361156984679743056575223012400041191173097213369624618416460095952477201442980254759844723014051976884199073833764292332728048540815782184272609662724554948165561562627898234744840999974182281268420566953641190765802794781464884494318130533390467618601336052064244515712727263772469076345185064041151626894614235927825195747343928059993372626049771876053744443690001001985907021655118558796119107182953429434745127453296616095598773221920455786539526526195444736156814767993682404956222867129148122085209881281482062543600163111688749078271346766494195551893650304854502021279446967228061247779897501964440338536421983995991663149529580263703017136478634323235987845435002116775111820022290744285836392425547385417062842568071889351879481489170160424215101052503505177455339607955023505701773830265784720864710991362999310487560725122616412241553787545676946078560560119347777039690904332931174223081663511744792223388054377716801059230316261745328875761114460429579048704951073313997454163210409485560389053899147446964771577407295213091487168277164801014803834536426473279315158579719535911146935088159871921593104355030657502955075459632311298911296366802086403312997344176488483390690770700145296977204760669498179071404379543446607915003797612211814838632137700447662929066114005711540489685035454536609160658378959830253375314845012453259411804906574784215463873695893388927899866524741491453988616130226275810453657119294843867029763714583378385326886909034381855589688829511946467707777872820867781426607240222194604918009005188800845746386057218090667996595641544635882334170668348851644814561619909743959835161333775338942985699863590837075304616229358709662680947250630921110782583085004136467731846313365495825377820107708842495949446266257796181418198322563472917415858934999544507456001485932372935122830228326471403460453543582547480276297615929652434664271590478482051188125022074370995575532871795394591858774456865814342036060970399953804417959441555273849180183834801890966075057182550771099199048451828027010776680919638157146923818741993690082632513204747336128613746886756295257660603332583439800221151287671754142907458702134865986888534264320818343514792686571619813424509162580109000113469657225888337887617041461794925373637420490636505102118219574515702381008010641434898362440074178158449935332263277358399477777977457595178148605990381488818127576822316160531082615390166605861810816324236617282227026716469460730353249156670555499942861928739651655236107168977667118932319461339405359682304335433691153461659007733375595672524965724823597290375442534602104965915963947762245663575204208693455831651902096502968258371574543867591728297073889313975450094704266524962624250443239594928932449102863922519530976807690468548419244987350720591394776371150046358129490742345481227641822095256968870436495617879097434967156782329234746438052595984769993485838961103824822476463309703212478653383643390443615129777342455862806792776244067413638529950738056648140920545419646242542825737242181926551969817668353450334105287700986108492893843950431721221901489338300334533174332243628183619117607311468670375326563878174974987812652162393849026734019628184370032360666341570188915213578921140532620260605334553017680372463183438327028626264474236745977586134988827696843316440676938974989797206641086012019261188289398485561808190772024252456583933427716752682958237783119174765156119482378236270604186333595797306384771900824154707937919853359615927166034434411418591612289314148764941024766235283313208783114815567002800381014059359752837598624051547247714369090265938659293295415209137561928636065374953832324089930834218606474934202214046423032649942514643106512211665391263656085599696379994517373907039184587377084524442682915791931083679332791818960638767749178823131183255229986908459010972416826270494985981132965922524157403731313349429318784475183755657996526343655892017420191989380992838771617538670287747792783964611121697788624184561253761112888530344404930969499259732255281951993112883202374288212897769085999138177205682021397105589805144338136483744303333430402917429677596677300878010517828787491389377292317266936930555747915102550019833180134110088565542653088094098277572766588464973775546716593673886137034234291811737672982522583677991067527905067572760200323317440902148721718168698253825892113685872289144385514164502534149049446628713234584540472824535425926833358189955181182650536169224321815222638363197222037517026640566717237747170791856385000929786788355827046538291882643805529402316873429111419130736163660427443213797656542373708113289282361710455708482407388048730866370009681455849145610172791991364564001279595012069507170932371958745457957707439682412687833931368564632017499784222781408032718804740232998362056477617936889459531961918692158679344208139742673109633377460087101147067070923653107200745808612216012793880412259749883135767112103193719442291516253229332776522273384393778672795471510784167973021201941440238694614334836521737784354008998615192465138207570001898658685451692634789262808847608314555517056909749239301384752110554486082452768728015632142684024554482855617634441942564168776900929879994602389752442892648385402694874770921153412127637033580623446068312277772465022308328003723978936556915107776221778908092775634331447790214999978378130008765114246243403258487892760982907260824696375986602011058757990380429357116037607005207859858611649576454738768540507082633456956457191987063614996744379861874143492661025771704622616714548644362511225337283359256746023968799510434610006237182737096973291122019010556238552819190178708199626729161153724851254337482457668256561811406472960779868864652505628915716337449398729010854390960251882013735027771756346289494454502322245403691986628185556500640360769560569219830219241680130534108913856647381210939207982668168391793056161164711128804196915692028709008261249705898077412977296881830299548980664579756088689042533325782812592001095734248085489774855057265566432561406971547606921313894765744622959061962549934566681123936009505586939794958107384533839877058196095071994837746254567464200076358301560633750117276620726918400735303092793593745268119508920473387913782327255050925184805255563793495588388543891999903985323874045552144163941070425078718216998482861765762987166201044877764803825738961752284308498997225596015356675633745332285551441534630401325834090700237497136616458269683998741792093586307317050932291495463885239109908191942376756468712845535343661177378658892270175624295434142303837577842531556787401384160612278771027409034733732104801940431098704502873855564459732600763698170072167291933430789457062177405899703838819112261837700324123192120945751889177436190232756661087667490013454922849894763725688994064361616792473117057388447922399374915628843278899989514444410786862268137486181467580581360517281155556328596595778569492223282948972275527523462034326683244014569051089933361449307864831234804103111625104531007799199007158481315561550398463874469166523268845770975260275245397987077982221994886732224409998728409682320680504465700588455349912413064746257541100480089572128837692164327140052981991771999462183997954358613581699263376552166703288654165064879016206768112140524414254518991413531665350704964052462812660814503517877793541807139529955723651847879553207943518853970799393499856648142928963825618784349418052707146208411384035541630232710064912577012246142533387580164499612959984734948774124533101953725746041685040626357784743446985240629252622174844607463932662030566216572917623106700283202905662301128190400825135534046680641696479876608814778033556741057718873359800661157915513051504455036481665344533337052576145885051610839165956576748944435599654005050245082140656652828202338758843202087779762218080782968445825950286219082178207159965088269618302529033206128756948651655913210759201808684868238723450869832838211318909061368486451280512685052513606155190582161928039125512029785623556836250777777314199176410707381202884104173304989745202386274690409024095173586372984106348944044827288698094121207627393637539140451261186238019777541187781486701515476359936932987043512268198454259246102386552029113577198903723065442209565623142018899787262880657532084127291886453174001226441953903550166215315052560238681304672377664576011736899982137101950355393062938120853766615561644878229033547505545986719387905199327754937531611043941992600977609726269558235033482409972629242269317757924735308658738313139738131705472988922107314778766668108945241411987348096191947061689409062486904647744507093530912579718629496018282952507025680544129044466049402541133320998908248048610038161003739619627899483692586082357770784200727149491297861285146902758222434343967041657718320241823000944950305767294277568041163722451255830568525802857910638846587618429367345449162493737183884611558201264574928966480422253043423290719226452764878983655719419129809963675761348531201232811457673741044054505255680609435099175127859731450233112121747331401056889086456433158372789740268271093165002310245802842397189862895143457712144866633294065835001627884286427366806943372911860935160813460138303026419334080548092466341867969554564686783863192312616754106485205055299213502176662218145838754838134395670595810674579345593583790193285157616347877699927793835405468417391022226215752457965464754022440445096929807199167531216292801307851202646293218929179663315303521330714034700786409551690526292824207148633126087194162139119586145888341331634226683674681551235626554798600218598068405626201729297172175701664819972713569634287850235112511311247132634494900841409690999683670859023874288538023968799315704650701422753258949002367543921720297207539151925635795619927187663812454099128738548547349404712035711054389971923750102816675926915354359749468196669902228815657738888188015894273481066461063248607142048355341648280677102742736424687645553653265533757618118592030205389072424651300216808338047343216865425521801793761417051434978612814942604984321191602377660637081699795104837006951404681537018543688443966909997504555384341989957223235729292337528894269375051950241883789653447568980801439674626389684942411073235689866022785878308511544600863327652002144747389461828547372387709926366605366383722234792778355430002586713800839296762004830584246292770441632689843319099225212326807575372234950481291993903387629309073988038200818014088341057164499500874830417546157522729504691602113596575520720839258783923224075969173860550561297702237792802558700935538090281513691935072731015714777955948955120882393940779019108172525939463383614094763389617439246732286043326135678333005951817967108925615434884812327223516869189405624126236488939062678471096749640805927742495562605601617536294923021294177246890095379759062935533345136849253682972688129404509767670244189852467271717565396905541138103974407745737804489436172691866916469483691664927497797539692510553851112538323497959556249798740086121618892416566128706632555490494915268799589921221239024737035456772162625747756575504191573636427919468873142513609400889230206193539962878020665334382455029550882160087735980892321689767155535627490642784228324820028546222820806415664403299969758851992092753850452593046915895876060846335657951512132858461512867955842224760408517376510921129299293989639946980066556305498228021502981551313143242314841834321642985391171387752261035254136273660173270768050485342488814790860116951356552560564762305544685469842243562072710436889369850767794201576185546806352177045074489147721541663168008147204660166030744213308919533854051318808443735294983034384924412198243352458772699880533028372291085775326243261624605561150531474494609685939983061022585720526952023898288509108516393177971054383323787879211529072571405716891692643470572188599901973871547279415795672683071203297214582407290129037955339706953188850092375330974363011255036858420022565225804997696084563629585614701274563504781208468040970213794184768550583686054922335293710645175283937010830363485440049292373427310583772864181040474803508394596401840887278955203224802716214209213293686023585582458601124667402167580691418403146583511127202132406582555877783866784336883432857155922617793588134318344812041181037118186768363936521602087734437472482767446739390412256381529149099990629155240860675940246066497774079509676360788663381162432190065539321635058526045639692861703642965204703466758512243014125842482105961777973330288957249299764008947581486039160168260956843674820636763918472462228199621175083633019491987593591123233129192461843992240510862473814051494832714349505600947422252036301580694910750947076592473930549547750434837869126613574911889410582841476755578576688296523277383857431830276996363403799748533438186736863522975501314124415350699145261585447301963584508543817030490674574916883752280372684814489943535188108271601759432772288822579202629116457861712369590933227517545332981784768056603902086260909756839144297164268841915300301069990345541152076066516197229075025127027432105005028267787852856527555576284558268176306253675130802269297780382106341977612162721593123689714537806333602262259361964350564255558630512040810550712230674062089951740881717678653857230237472226910052381731009688460243161886468274486271279650001872674888801730356158052825990626171013901257310096866589719856681479248466435036921786932666134121994501952011657134638778076035146251268216878660026229160771085677918314380838720625381265005173865721623995784537568625519811849653109989999620092531985632255172175493607444921520524685408672446450075743692699753791362180185057468282542432691506667952587855415295033418543214404884975202339813482463612043664870576732038871252763060230937072435008769783051155758684175150188359208989145929132983248628968448944991927010330756659523602549814617227230234590532552903045067609119922439242362714909058680776100086111648903003948280742498137800802518644659601143074878693621649117281091042686402252412123757107064287375387926232531773629690458614760961712338495316686213926404058684270557522965208965425240362770385568975675486576204341403338242341800300813547853481687097562805995982832011286395973473886888345822986722820497040977013415485184949661893753619581890132569821159650321586572228646584596345219771173483418043543437064015858113519336460373479893732454293405980726311379808118830116111038311946914318326138744726236306814139232775957182188218285422690812858945276428150311994813157662840321656337835186051689684033144472395958453105694925447218724894180166421285930090448385508219710471577587383145187953995614139989490135609687365706155794414832565055109576679160022354835140606385016646072531731071312911536120195837277333083030142944064939843744103943159347431732067186439410060325159753959162831463623082309806313342570364421809941237850865716150559245610955621977691701994659829433542428225842106475504013815569633917675872233515215154500937899786244350180481122801842009097288439085519765995023977068076110221494711851530773276961799437830465902183767252030995446228496302446629550120395810317009712136831380292562724507689726402102764785345575540815255379190040090501562830156058773938491037127457927728038365575679253961436970204987132559250372238954213888408328180693579941590657691138962909352860050509968527662710499441177248889474941443754252626179857466435267026884524276201898848233376490522575102480270819838513465160910938091316963465890533219117107005717802630603438954461038463317194561166565061989620854768981686512949987925419557656400759587211039565016115599076930999220693752041323515177366631649776188597669910374703335584209421242660390011529906597236259629389773134705612435585043423551392047162632334306194199323829538983309022207328274844633802132220246258067558140110737217298735283859167599097673171653023676311636819674144724428989249774818231079449115375024271144335643078458271169495314285345993904601093168664386819421829931201127982372088267363560061588275703811813264624222690000129059891455636697712571294096543423286966424566650879727879791023150818269989890301752411719555139349471931929831453177258587125010601899051893382852243327352025877310088955289550120845519517011233546840991621707067614949748607563167297722399319693920943462184936508356283972249042804037510992829739384524578914200937640522423977915486403216334972805495840106875339719648391452865519758352041958902275795537672683691908389295234993492003963076890273399549708361120204195545690697684381523059705148452109886866117725856815812352355592637101192563236012451916382662141389646465042114816033117807879065854281434778935838135798636389896677322895256511034000080620699679542531139745972795751675966574374004343842618732716462096374626904308009307552565397552941312778092294551642786043769456703508223437880875740717508213961323014620605136360700101137837106783183433355418141264193929663983105200978692696858401223593983969927287390517786498200085557088141149552162611887901616107168259707226759388257772107320763387071503464929737126135198039026690654678049102435576066481753241585738538715256467568029298412896330504707880174212440300984339322377472852189740935641855025831687657952612827358534160283140482239414322194051025281936664577772672718638590870875729509335238504309559833692625532382591972792358685489119234301803018079711436437330273850460273843479056432462403794190672922297006375547035063797590316818771535555828510407983219226928101394246807200997197875972078264892985382976099839086050371495363567385941403657852974610910137161074135084983171625473115118632094430766304850699972416548844420247648633200574222672208792983942913311434988747572386413198487080645750511899105643369992930931502203354288425406843862168468548922701549049763886673902386218498776293839120719140168136166982630055059716439359970940089664326533848584235935252043275385809028417214434326079287052570688090839916301045542920138990346828611762689589780843988661810059826766037633582288674713305114795304929434370258524327390399934325622372251155827773179600854203635218218023989499020108518737303979023397848788591691735253606815529382695413822457008341923871169328083569536619135984631066479274310717124443997246775793825651716679604692526944388587044205080415157491985953178521305774267415569417146372764245768614385375598564978857495708677379296044879493999859066209240188696735130225511271756994897637720243040511963121731478622718963642815532570608826562576205474518604579016476767435517786780382196929812334917394704854085324521031172344872732763597527578489670468217099310358877655088817100554871871508160402953617137737436264972429603660210545599899075019936647746654089885432671031310999911180471089966673113266276281006172742925282644436126035784743931837246454529883016702966262314461592375252023114520981556828257255709803452758395070453737318673975069235958310267071069620401881528103770596272421862858894772313871394842643695160395432414217897923666635636795050987952669822948041241740341866740280914180087947708655163995971494859900962465756610585296895195372861622997801284497970354168610984783173881822422632276393021303798568256510339805561140914149160426555126115817196842138549617692492629180318935738022681176085977375143017213382630631698683140655751545746572009506205720361197677429448373428106376231810823178264249040494678138220538796499089644462662926540533127643002744029927190063391362743026246686555855845642827378132279081013564111339535222483335762833147469888965568868761788006101858722192827711478309274556927181459122349892973377833157586518861298336961184444888473839236378186528793295592747203527507558681702538597335135352433820749400968627586598157757380666509100725349379576276642822044897740355682134095322975278321213224749729356268374493887789178425637709947148579953337245293727962535208113045713440441743862348551903061416394509405082029995535699771812985543885557610072716484377955561962750118345721744910357758951843884627470773483932367388011794676087949697476733648060308707813064368703347211361738614103020902693896651550889381599909047342643046430356017859035159851549699997783694426550820088750485351412690273296614466049455802050560553348011875178583072637692051503849570261529966770476399918958239173112457942821754500355041668046592165224216431554536987142469824944819503802976890748148719721443761953552605221178293272373456991135041005520065537508381450034176425672259735857957177089068501225898763235328238298107504957403394244907723426379701200518167868551688486630023508752415493236418683255580384517058012575957471187303460900285501067593911545428029921592950166372003040269272736067690746736743612210352751688736310515562073273712894682585572279101558779701998224804494561615144214961518034454622323548908482131174332526491560895890758984660286865787786784411331862385413632283081452325432832947970716313959313436989208909219530374892256351585119941755021892424414662458696514317163400685076540648473640645386916960640664540900314338481301058340703232603294275091016173860543397906032034678096093469026729841165347673719494564245983221629847597906649172746599811131039122475657532865682742362396043266043840069150281662387954787358962316351426187779106813593874817516686290180968914466637114857743793924385658949586694550318518863649018836074838534707611891648217904413926361875429514370968182072414610931341628818098946696859287013801485538100486661483659740836212193906857880859184618532436496116155874874338420275001729537453379488674534224662820528389694048168992910677124024497333092471492629345856573377569093933388421833947632407817520504464935663517263082116896764935689007596140096709623664659472258916727400332388777784693723400934546429932045434697799449762531944890108284181058227455230722247374097545037328284351072793702845482911516010876974906029655789169913357534236721521662319789905723582443857573413599867652973730117136415048549863529097395357519064576160191974811850404427199830648228555868833681634647249095457164061723834485736123470826269826155549757081593876280524626345481660450097211762181551916935131944537803992114605267734375678701813840611459997238990603036887650726051713933542850682140535402575097485155613566453636877545750378165416300343936993384989468933987042837816279514884131748263669478694919797940147061457593748518360972918650173403380759539203136628748318451293245117230456394066463798938557808591306583013526084417307303361758731651945320840248037416785743700914805669222542940017109759046014658623323992086864317541906180141539186545104975147979240376719323309894249600280164154758399524547907057397375866593354256990049684940538074499624074652864080984282619864180436764781134435822458016568772256789679206805541141687940027984637602353311958413115642481967611711595080940152476301350131995862247170213827825409699734965489334609647666644451422668572912546855219097166431090829615379698339616233747263297166078506405247357228786233821438649438823781584320987060120319835592166520810767066384360504143724507390360591781155135580831367384895760664035619184045324904960996779504979577693770037563991111973087242146776407330075884202358154413779209970692732296366518643419595183559348420105501381520967441699883246524198580920769375189200067212469924199759766626700696241632835077954418066445376860786683903892941984900004410476877579609640684921628437520600464967251537006815805776853767017773244447843498668048638846760976359431908641853978459590153983474884562834166174840224440767677272347938440860981069737232160833881957553261996118831590844133055150716853685713633316329958768986792069523562629478820049255031778213956802801847449330448250646894894934379639970538936000558105637685850009368420782893126345899072809538898271283352429217074741710008563666475849310768746118137490309267602945136403923666668242589932231243820045487974114218942020903759741764060464834671607018538307510672267255029954038239462117227263922021681150510241953688609273375714225864053429540184925588472287726723163172957113435092335598127129863929485894274059240229796637324551245134339246904549064110225266919836279405435348046229886357391870636971276642357209439282295416935855541280525704487988797268522038323672715902370699199544937280929744813962918539499004462046145492070750004130817494815212938702466225252941059855936712172114965336357176000451976025273510162584293385559525377116441968662626974205030293600860821507932616146946109296336157866974142692727281596886864024066879940627241799983312539656146160526358722823108480112839143599260706966593427556262837118833521151283955735536103624359850276530844341861238326432028711146125980324583144567938230054556299348806434819390369894786653334439794907294307918927812609505044910575339893068980386016118925872380343811949225266483144477767304625619805056633857677824210046646232040694832035908454536457937442482030666307386016208216063335669955797463561711238030145269757535584725587242976969509450789085853367239934196865987578233430126642094482831322857309511431646380295494056614743972178290328529401897103620208161290170388462673109219298773535171970481900718314403766890383258316020171614057794740649909096285396468487438384457459939708408622406529063924967579231622249499051737488057671881926611026463344050506881787108673020262831170029970372825458093998014842107761418964050079615852874360395954680913689283522975002065295544011494390120760629623969757082465814663795080211362400033828737576074528027909092827824420698571650830034247104118583765690547584204204748629761386912946821325125368286014344182797478790848963453681756985068765160743450493410764031767347131315890094162783646098818186812531944538914276340541421687342542976380713445263079633310923928511843162996977623467596890446347956021508374836931761033419939864605638456722866967254416740012926654625113692927623949142449086747703072678120960760583752526811924559590871375993207744162506689250898260642791613755047098594475506997942601503383007853812598721199387240888007203230231613118896501544207220163762360807616534535208491125190245359805617354023160940163317574234281988392961194070895454550016117387223566587894493868428532183915814280069178850717524889639638739267740005052770574243842296987212424303677468412603713477583579360702077135719972416477709200237789289700686362407467921449003391643118347409672194796671380712657146741296048626174093610561530224236600265876401738185766144039838407868015184438289139900055713566403177870455632625465257245222465274629885190307978635665502033198799205869305327854203331481934853727971383256496708131570454002945836458494891373517627388212737510027940959760666328250067484126537571265997281050602344903735606738219312683843729195003130100314361421404084604879982293560934487511621293382969434152972411677518782825163867727526837737701439531918211468093104460241235076936281382998529292616728889577442648201825359770122212403840707205773979095488823345911852184183654378902988143109754325059106779431598111806017367439301896896003511150334410507577286809320728926848444232550945117873821594299190201819183980789094377738170082782477915189548308530753236798818846816905390811087718899811397237678712240952076237528710234147487685171649714596619759372892118015626267586110799167899144934249918242526210655107892823532966505756617102670517995169390107906168170774064036346797397777616798300563529399069791715813023463495611987457836109420212681710868635523951253820727452370691610993677786852352968271694362893227896148682971254646485893513506269534172354087904915727373763421075916596751371815687657655963207502409302808963776603712952554108388792839860045638591431114338110320015480682313003145844105726744136446683056574803384037903600749881269557162965742647910278780932845561555245191300720316336925493276648251532338948552022202697343545448754365310654608442138793002406275859906976625760747353739261585221422870369589852349308312187737592439529172270519918007418997643083960404265217227002815236355809382402030561020382092861930071313985421671852734512018195847293550218627408859773433322682971118141944615416296363475593917608685153170661261116938058078053790322742783135606025324294780759914228918765397117061260360052704651032355689665670518595508332407974384313253485127079552814382455794385670154530644488893084191190861850464993269428448074417563486114135925877573465472840738497721898538568945839285234057452225157524801019616515216887905713784425838565740681227077983068341647857198641218520580200451959431167187213321479992164240452042617719837617215160236681879562688989532886162344348605915658028299982722716324688207583302505838077730281693984376894124525242322426844565132235655835779651271344743056467734547894293330256945639070438090870854788871717137166087469367884469090176859837988035219503708219249950115876267019058860534557598923906906186922485759931356913168130906521464667324577805788736353330760654726164075577035716312659132922574341306326653988961710538359241643216676196686696327900791563099304779319929777642341303017229410374137414843855585958337924799465925459788923954262016823490432523783716174837459886602017366858059006884482774802835225618545879057282814861827515496364638267559746371927496895515399882847504060102180978762056524779314506043616532769879318585281515687582137454025384785250957668360132484428284692280791011606922987477922850814346478609298267846068575636569183929890136252388021241271441587266373037211409461132188097364554912891175777195982755078475791126633633144041723700558332745239331825621858348485018328109025276698659770507864201788222826880452010068078267668971349310102715721069549009143123669097197121158881626361132126686482999151578172381407529282550222584664983909918362269402151766611972072879794850044094805023016438121979279802671589401336966585751695455228099055919829768223040071780444210185436120890920734480378868387904457680312802565145821105873861124467786205301076136981647936977306174699544059615436735272113499133539805710240774198005890685960451496952730857786118837528525670772011281321014960742497969973443325847257469749379235385810033035467397498238345136972542967279499644236937720748923993926173515682010396053079613927154863203813314657885833235722166466379238444700184494856673772442314950667281540325870029904644456279695692410724557633691660602781615134349171953199937169107555866450732141051446266309680281426444177278620823497337258379315033970199094069490013578853901439196644169558095407988086059767418376597265144213108815981964579376489711336369409016694329989658600240816959688708093191341063873129241564569644949029397517359335308390554712542459615128961836715480557781964798099399076851723224627883109915302904569604105382394402246458087824723622384721744563929256992990516914357198500035165323292623498332256227466950468443292486080008385980016947611947626607859919376932155785640352254007428735729037338873655548318652324031474244990355434169072445598383559646657556505902392241720719657542491406227838467432825763958441620758819302550360405138326383152261644664288109209995948790144362078772147034751062761762738475754619249968063416330555331375873154587771091888916198998995010106782797064381006712362528244153583937698655123080375943971897375591739002692968023406694022848064285550334744303986914691522654292039369324611285436595965765413130578550281826259521924326697449674651172817495515690930358235637612633362924442786880928427645816668959612022404767023785013038474156197361606967765818628760942685691949946844112159807384827985721949774539455897209214158161796784990493271505019344331207086596169436783307072321709142889796647100232033188146531577638684033463414366403925130659039090480768046595406618947087753753423927934341387136895424231900693548104279161263305109380211900084401168191173504654571541381716947662004462844920309150073621482342659960804413398453045005142939073070386387124097166169009806547721889587402567362793095230714413588270491578350770097352253274838552183673203075581305196441590442181099006196128350979608679574232525373276025096000432874528817919631046986409211961062147772478964577626018377864471376843640110210108331073664416840598280808050192645532364217846936586060549388412544135866814989665736813898585219949715943448462940252869215491540889360750433829034233969041636191687137063043080520307571993413858552645493075955824194144746367015039310386508293907718905888584176854561100566467313646758214190285989331903960778896710450466356615289378780581628007313483134966033465640607029304791639490147254442778721016571249362201550006047411735612355894915504374365948509491742990694208484775358803737312966250683904060373731070783591375434527547500312590429312878392217558817118601769563444589834217500234441218091240461157335653142567880890361284578919378842663469201548953688619656859028067050540303452611930567130748883590137609219767420539197634468199707207098569972622590736817475599078936657470102139383902097149859063621649314757601242822692062725123123012190533628579440772424511092999665973713660331881690398844142390014274208635352082388067562301008500606924439818354291098927973910972632144321316272564273676783729672881621027917816082583377722589156390365036565113115273994329724187846038754239189781159196664479357315551817757658125816020846942202524604080140537829516221441085652189941558784190363347857197745002550817350092646859227422913375673554183990898512972317686132097663865422484573005452400187280443943711319076982974990994116250892681716309969057348830029084233299657544507061874623779039978787080480156757145020836072466116837331071789601994628435943978968543444692767806883427111928095673432715604697111095038020881703727813764441791174015455895997389134426931871697268855362000179972353614373084893351269707785922734089957431202567332903836629597465929677743090106775863476977017873454001157696522455907851312192235273394120242937008790735666330770230934014700454313672838712476172515948434158512850820103225220198353640201634499820584440325278629528535248192650414328743166148447566219168261862364217276200251448174465996054008012036103989388341495149134917891559683735441185309986405438871829048564030363021881338266959844484006566269020685245898903242143699658231089779945492781824378231036341193792683858076465152485372606064605448470275029777040840273147879778732572371145286123856409587045449111910697718563082309611825364980072167356831384955253690611629175790462759186247292829775944126640240505057627597367281552371210103336561547700097710519047626864071625753919782607849960536880220493503334625679985915205121914090807270023611066779740254565824499659454321209785534814810980834459195636369022611246254534838927574962676646750371467229656065076325370339598292051421980809962327224551236744731409327468384491558929103858656845490529736694041886428004098103620712898622031533648555432717988530665744027643972472134633286332185307915930378285112099448038903267922786967030757903984668524640524934973012469007346245288437851689285931819337456340691495323502850270335344945558609526868117757621659862662956615416120288722195438510070952076542937520764996477780241020400927752396838899388169819357871837293870145936176128747986067691240851468609700286773628456939300447538656718577153607189619153199849547785248514592976922861349882495058195433575883035566177924417741350275797256297187234317060082011797449484143325539811742097818615806570625188797289980732188955900912149315219731230631741897069226527457241141536977102874514917966236326624190265184628838210308270924220456163634383020861528055303956832157992146546357754979210411698422705929480072860591806550234966441635070241399285772676450658383766727058090510107485445539170165879393353588892552946589318952291983123865046670452336970464484063548896073316761190862382259570025193954102124266525374949973971744587365878079846628289790468554536405287128840368648553892738448738887298319176974744477059051989620013108901522297568024258358860140373920209750854678134139881899504738268922589422496414091754037742441956255767396466659506919786848236382061789191188885131966415961562736831395659316931416293075777731438881949915370681705676074317105026837796844391718016986343458218522367720424088218682439052839275438738403002943623944678002130409994308131421774552977099241411126151397585412251663042604261834074808225987660439570843445123731804168742094553537569517067226364487421246221444696759669923509764094459423077245053335578947526998740384151537459135579970534672182437621350428951875402185608248018739866870915887812171078440372984338192034794827705807088971593116884557314148184447703763558088665274059467861104602918413405557066694463087935022894194956691355449436385635985528860658185249107944605310474167381517443464860017811383630830286985381520012893895027830487886995967531089653580719180887911829470358535440186823068853995750959574116896749074368596806384067226581553010303602876271072218415508130075419581914336185753934695812902269029211226616577144537488705928150951387084482642158675389465815413772806067698444374956050821784594655576622805423289345163562206575124511611780495691304812232192304428345182947683991976527397943244019347283248712847040392476824309998869378708729683549825397885781008187637648808683317727330966972424482734588750245665446729888841496968509335917009066547514017944370347397911800167213681891253655340903103181857409724597800864034185384813396477743937622591452699732220277295297910341677393981354305662014825469762691869644386496902221091541528342282338509359865107992540043959826172495030383495599704329231445360414971924088964998417801582055970880480245293193565474881007137483373477271912266675111060773200366802605977238596734763279738464797408264955474756618286694205445007556710104505347830591875449489809992348632809253417935788660317183379382750510099780197411879999268295225901631592965483080640004108967211920290716581755150740449924709404043408398851080698388186121227827948720747600621231415679141964968458371256692242199122208753551266629709948699248877774098536039938305812331074060783101452227796324160266721473694185903631040329363184462312982603332105992124439872895832139075255480339769573553184544388944157626264489923002693825431205638442452952207159313594717613579554637170916442566440129772015507895576657896630842366587682202911060322679634627534999803879389612196775509485782365007672019452945030679981748414677346207986929790166553533223559442275417629470031367499829305199893260702756184130445246000257184868870839514676086989728968712898245234160244250282086608095391431498568673468034152193239550306925680827152230518837996983565828050202633004281480657965163413903471705584655232196308626285170490241852648698076201773584607603609241693785482948976480739900763839968931320898136197861761415898437563709629684471071210049056244041049371239376662515798600769284820500486180418784352659985888402271521912686628133721483161214440997844019622209885359014532371755982075206101186649132662649969874422843870073621833051613071574859601099176212043863684518684968775639912393003985210560223010331445904244864581140902030732280877321166377984680478251782962601156736750783913829837022192649955910932924840820844355044114057792783808143495931016124052075962980234087127125533345686967791351260079156990398215012504375799118100220359956307041669663387849982742166584923502478335526574797456359186856738024076297590157716679862242257048504328251232514039850163894731570456899263527548835345555810413045688617362770117953813638760755769439712136649487588900058666847702721672627993030359654421485313353935243426682843593992657495503698010441027769387790764945891117098896877773216457055913322622387949753041663895961458732162664790513721150525150904734799528750561674639146832960971123724171241824554915320485693602394537474795667710884689359598735502595932858929116893551678102914102024283882022782077702525519078338955025056087476714431896494243383346382921403647465984905595713559396873370777109577920688852020869341351702665966247555702371942906747781532606017439245672636803063145761527876649934427847751189064814355892625962878288070747529770076425830582574094112171127627951684031525587203744510248361425744063657879243238616970412056731809609915080781645655518854136732552056125676136374401005093495042829639018716787230733318674134187587224774289868091832772704786082161506143318162294265056580081418073275330249157480938100107958323522154230958645216747610835274965956586392752440721134905438589753585998162749912814313745660495715822017657897864743488559742733238984856612312849245170714331657112522311945194069356135143736990952449563330925620343748815441441576095495059913383450409235262834767936945419840133855156917669753276483324445277672428169916359270645796712595032236959322620342738091860881508379447510594859305075161048956888750552146555561089600522999595548985792851813760034539963124436988186321260275896379870862664342212053383008620920549907457547085985741388345136700751210710436893293669152885867130325735903516872037224504308273946704901297177656200117093820400070907892907908450367361646569596234553438539798403300803823630907641691261138491183636077151251488070500592511219795661520875163799044285832870737406462701542750078918163620215144838223340979442957406422349089849494737087257558897131900543390727142600584381325358542343300349274141731394956724665087485292414462078248352352615485495085102050699296164019266178984624852703433658176398213592926832865934639533227822139336265967477872145188617698086605902819358380573396002542553346320265717609560548451136909347863406260482888062501017448521446650726814658944270586357316998159658741229539147873020060172907159824821086186256123676650239103018227842291609898707931571211714803565918032529989867579072086258564587202170062896900239374398517047793950837662431324088652034017789124580455339509153135336593274115610434995042793466701260389225653168277238043348216929986845253700049339128316308952514997327024583227137918558319576663734522320470006976186632238323676342463827169364688911276395896801603221142863428698290147156121136616445457363777313577601607460447050754019937198498477649599664149507988454628170918833169248590371164276256709612881710140347973517336952641255498024180877510977987065685245943066087342127279657235910683386525406076937021522430159685621926752288523516367117889935402970139873374346859134744713364603484367608123658485148752095327308331959663188157462055400312532985159092733840269441697874823707347363117633225351363948821016917744420337723766893156546818206034680528386170210943726279404884585191759451704105888042984448823880744341269949544247239164254322812926177825781015521781454519647001735967522026195637785200645627391221953763442378121864417806997525418642191620059383111942779399449046546007465735777478131425807221328944006464173222181287678313421846871791340910494770097834764783415716638546438444929979500898795514405534480156297293881642421407884496382784452111379054133501834030284149681178519164097519156130271590385329984392747131422975555103746497963291603017929981757716356199879495038149655837830143650828491804855807731758970948450147211661044980977950134910204387517344074271595551104414497111857310245268056030896654005888397419073245993070277876638043633452734025745167754093042668011574265270300423818192328964046778439941795464088661267005238272628249541192642250075289758508552810172842806236005586331916437354664111091141569690014494222401441989616981174948833919179845581579481560278120597459680026790787819469523133096770440801382067092327941181161381113444160414291249506287229004412286755932255423467497300892304695193855981955326911628176942287194787374483544050981280777455564526814847337424747538375524221252217361711870564289611037913718367376020923322053815181587099645589642784670596135099192631044163395722355633863992719599433571797918473892586422655865794786201168197630152501617581492335325128276891229012440694256850423623019335846408308898973050872681789818540756917972727146631786688405593337715561079649281792822732885541883644986181959711215938557847312691541703036542031785492002682350646870055784142455859463932074241513520866402489868749090660533201583112562481886558072239286931118081674923293989273488397494122207704943569145641745045311785056137638030209213574991773149740145912015537177153050918468800268992546497288319708510374294788971558560563103924154383874440429750179358608922124672163074345058343317080580745453595967441538150911060004107444249884162386824060351492866560793142466001042800308515162159545037688858192599313552130190166839936585310934432554547220967265357832075342757671346157702638967600726833869777509005600804367113725453106791518479887673570429806095608309286962304891968864208446042130819206725795648735145026014233022176706800874202028195207681133497014161416865116483325463883361199574478267152656273533114032971379272965295824914452916754015310184700006676219106694007226372066877083713958399702143476939147073177129696252657730050334437387277400821049443832902592451591887571957715248445911418040361538897819168162254314576691978687717968957358667042381530475259902706237163063307410155553442304498044852893399443600364252117002535142974694733189277702686121514003580589192193735566021195508198038094172118989485347718757261497690083062877119666208011581346778645448067850433488394314098875222877648341480397280813095297581559307423102489289059711371433935022805671363299124287228877602006454506102446420398569778770734065796982501878246223280577614118684886814200169344017530032424036510021778397325126504827998731496345870043974926260259003242557865050177985811662000616580733476682549166330555373533523014802998222112740760889487999379600724242122904761126442822745359360764764482635591668788655208100492560860387791200211882693160822327831463324851603570935982323471564008308056895651571839468962982484626615304842875535902987110316111261399950578658823821791039761091228516429462292247183059554767598355607156705007149542179052627299186664058109065533056625731586736520374765419143569939321258176661141831046684356285918209867494764000483935377700102447855780006973883315983368655415411269559822265249236223999446848576385175855688235702525139444127618958356084603419742940060694426760703501818614451856976214657097179461506951056106896742806176689413820803785125865422833230167795099409070831965341709917881087018212329635554796773855964747617466121468245214235992524265000542501143961615157199678578170647109716014280100696171485987871202393909505989587503918361054072969579744279600210030637439658184215832940136881816396503591354354511787897089439042444060388867818469194967189442900066811144329360693896224584866290163015520888268794916619023243768357775148320052622584778250574786066878092640796673735267034453733653990520464681573038943043027876702566278597624432390522959221639674023047805716418087909942694509129521046351892208326234157793750964239219841359786794584486401357944272984630480903251825156334949427863470870671550840869188218855626739433554063531873242951895486005732745121222205925655057441950453502121161958645614771778726210012826118034512943216636275207737745737270517867738693752015828686456590026405729561322994878285594820066454905802456853869283669796474665238850347754773113365651729109524749255359009969349366207111824747902285272762994805268087856821645423438850219713054183276028280802013080922588682163353137042736673151533329572793855575531608074809376946400206556444874054444857147800144522393098752642858382696172928545083480844757520830090236607513109525611514096566328039173135800336817338189726350290942140583490539305018359634054747341442226632703430633839019804610461620955177979432038640522812703464964265209592149471095916518011260478616632434924785437331874660654767358336218977824977512498620852276020556235880333865629583855355879096359850740524483165617836338090290495693027259526451605386401785502718167072879426290228718505934224058515721802672025008238981778329547476895630214848089467352130684130253374795726678262137144554109241912645020704161150086433891236579097844122164563590689120955608879656270665867420973195336353678612303011080960044060023003251490378658436836667887172582636117444501529566708897600669608979899643411217506590211935320315591559774039754780935211407599906794982052596243344442180228074313488833910804906512495827618522476474716770005642963230070146471379968848912426649760392088602222660902550876484059137040184046670338948859033410118765420836717083412893638287874435686114282267541507152991323526825336288716465539022575665322249901622045233959377023833870715886403701044527430662803887901501548254550548085734486710179032789992449133884653373621769489682127294036499631243181726486158217308037536394693573408713028900785377028965961211549711571657216034167066497825175160219198933017025830618129820817537281474798860275846397661243796566143080182252821195629829653002467442459428008064507346049888252369306240841628703644679174454366666780081126130132676557637640082008745900036329563003045133885745146456542208986602436689535824560745719012008559910197419497362217167505210087255398796648893344097629883643672325881136408469899857704320489008223863998278162335962869077045835151980353926187179908022824578801202926384229895300560948396755167200010951521073029035867152935489693868158501934743959864348433040295080497347691469015106268331106423173778496436377478451558890094802301844764901795257761361310773080879316436038441182307363883887470769288775180102561684492308439170229208700079674879741914421126520573920284898276742176840809187138369980714947955845932483176077184031488022047315226981419806921080027552028585457576518083135602718672594323167430229984466581699419115603501083625717214540655827377925532439419566827133137803792431953164749843123854066606857613058749623743950370824782218386201897107062158780013526621460143906800554878593821425366415421592055402435223050663031368274757001363800770705391396750079021920241774062696018507386570348830440711139424803902341679059117975157944200416958436659392701687251492921949305312021304077622364672330582622237922410722631530682273794700676805334220086165934782025067257013309199850645298017800555640047212920825157351503535454804681835797378306946812130169732029119511115095019400401722228098703777806372912167890161792010659368146678766397396159903582005134329220744315602626291930741646491767041647181157941987166622923058392494475542223247171004059565563491709948633314838354380282446666365652613385376771611441025976997562638500429552127294212699148507295618375465157786724848360126593629479030607701300659639065996712438184765458903031819375836369976803668743400310421412392698575284732559908419155486906573333563109716404576371273132170135613317863244351816857131819808181618383900155694797411101053733821970302797555422295022254390043115812206434360081231563930720494750904565426240227699826037277128246436165140579775936915246823347006663677587494089490414635338883095196689313645364399490723362592182388024226128407483820604620893898052349993020215723008476773385853046569222845282333270606517887960971505101846547644557287886346952259050658402282871403290064028864623782977416197423280571255258076694646659435230033158139747938772039058007747899591318035572972926884871607892244486806368286875747022972534647857638290949291905907117219231056030380389091686026843965874083113859113454332143828001263616141188305479350510707980878004314476873198081365396753248429277144735014751461831817464798928674133729493320523867043985736111527903146957574698856129099307361473169987384170835385383855879290138782496448969628114017259938601323770139269186525778575151009543457137370133645405975296435375489109775527271270889819959089163165942956366025942541540512423083265450440553142935148942437862924156836856900385981197274177913598509347977580621028409364562586356626364187776056551541780861784688004771172907111678682579454672886900655880626338216770422285162420318715950057586711259307351388481017312506575303429854920687537831182900668665149831259869214872120343056257392458552821298646869605839854504216900522987127460203072064352801576826822894465828457129025019045282623841598416709683951806317260255297055435392960587810153426921018122990057650165091788632767086230249017797452225165691672103343387046864471664551949639501816809389385695287638494372565942092638325236963128196363789307577604702347822800172959965396476469737172641562826093404265790377567653637958462063542043768981776763707692839583551229804142085060249711610125244477264010153219570060698861383240973891485002302769912119556966310787985391526305488002674700810952556247563347421270005555337765845410471529365337402212396950858395644326746195926941997826574099940683900018167429086396845570154181240180976304615153606736826966814891740340687454877503224769745396295182776132471361503438000997339976251813425636740927206982057171421361152634951387081210381004239920711945084661458100768405841453250240873900155511872412198312543567730075183662865577984108118859922836198145694178517213928136417891960686837774712747937060370652466782792457642395901227307770908785743481475802065834924556220856203228024321447168185670147860845866717476957274191506582536244642234413274017735756859626294789845438987522885843773541741862136212955781351232693444947451125457946152872026897254058672192283625696726852262262094551843469614900819359954658131830669705788161712635301974357075118976792952330788330977072905441122268854957406850464535757370515939771774140995738937346933892347787414914299264993654795978133349097248486004042681365675651391423392164877412409497413488442635888052352474622898993355540267948142086080218526327534749575027979591660202816176339463041875515687520531146814759375769250375232403004333933695962665337023108398021947486761428506743987121335859066861963402751791438021835196105724706833969882155348215620937698253932310670693616818880847594025362257600127316569145572802066001249408175431818328277065065447078505231139500856057827786102573523852511070108157101335733668498228229128332957188918705205081276407105132433110325143719033011203154977317502974446799130275740678664631043174396550350922915578095093965535411146800204748206820226705887112430223452073397960320559347043477864562653246022774775118844091535039612767418117496447189264685193718780492799302137560308613956902530763863428436008808621482628077736076078485850440026135427804814141152595343187131413834113664251806762340460186598504497220294424481562370216008826199160749008114262868050308694097779639469375015758899037183622689921611354839446503857118116578195647420259733671548109222901251639888760962424071819028562538761179961290185615658086904407248581521148255022123201610581618691674076093899705313312514844346649291326633231588751007982158303958540909715277559955693706279560607780414704077761694811316988751879314233214366192839834382753887454665804080372907306232057329498484592002717135760956931968769635888855877452279694165364917432296894360197024795786769700437287628557235698244412495443817176236560845107303974652920568712791430818180205216364042787080277518265634861034403349838235207544127504881999284311395812876018440354354758690837195709400374210776551539017720044204911789626481509666077773206703649714252845875400315271158438111127328294112811246352443230799929754235372251252493279376373285932654714494586343541068249898817090687918105633522514665688847581902019749045425870442573943255318023202235883580286194280631151177934154708215064371250937428063111777388488690111809394973181541594787094630945710910281720891244286271494905613036111947180836925732822969166523143924333119548237594274010368477970886410902370039063444294417918841521026981841906274320930654060160627971043204273235248786375770859990428983765892234288644155845026539058233861557755041578990760755389102144115486681215692806387912869304545184812575276791473136319000066041537825615397768473169661808871514002451900814016565019229209551743727529705041960682975382165475772105923592401248950636306811240815192254062835609398654203633675238610993628398966783091063499682506945557533017522517389501823407628839360896290807062441567737395442096071884898171601397654579404149058482661339705354204801458074661244263683101057508026940243921657656959523876595721160903878883474676945793887291503207931210452843901162898335384404548365265179122339810283611378975355467768007200131186916809560552376204109666753488819041854826254810344557349941854406295717820265894342506179704435655505077184539049082989538678869194304341944741544293116939588044811926272360516343913171081111850608355949759850195992534492394782344044264655064084547766412411185809819835184631578241425930677178604834992080353214828076370695728936280575664235676721328884850392420982917600786621398753928111527966065624045480662155596799983547234065839765145715224919298704287955841932209120753460279622049738009314886596049317024769816108678898889452934294473056429869517369679447458169320014709871601243992425428181121255932932597166312939819099129146388778988277701783069466875090364850917885478911566321884385166153344326020288789317612048983205032439912172483995166867042846215325005734124514546526805884559766915647704618249426691802755300748264232676370126588846671754525288643287899142121478993527359774848612856468314372904279202136557901443312067947786530634547113239608248815505363115326938486661887861185712468235161202940741385361517676086569749443733916671640212875903593516991540712365208849250714374651557137178422833199169405033738275733314473790020899762541716265054642038706372074753488872084484878972188322855080896660487278523494884510197658126973248758449461795112073962918107133087868772310850906211655251338664397903481430292820794985228622118383463423649683366812775784158031871406292662387660718702648041610993900220380419953143486579692479037811560909486709004518881787645660187927978992755370948822006067039628314833546533570274347953581666277622800333501466516567182504192313611488618186995365873784378382528805779656673600002232866512724289709827401038696893804743679719735349436486123486575160717440532606220648642440312006798123605956945038959591905862652665293984380617391420956768508352800370747412754801138347381463137834253929560962246853328902720309498720961461902175222472825453969629656266020662182045442800994673427477973632628598204905309132357749165930147434455842802389746386121532790438648506877905660438203467872380410619180812953614706349408086056291590084525744759809908969930116762412282908444980385614327362574398936769306872653531111414724922114477691856275321698498092414424777827798026219535689254425267570527581533772738145706276063391140984843147675066531822958650302096161567887884455343573714779469038205912158560140613597777569026946943447682100448743592866328255939911201601249046119550759304935944600411101007995813130599181381907677597211342369829786760183139562849221822199826888516083334944394748206817101998104609568420291310211322469380338915427309283836889426776421900923795501324605610017692697048881967281857519388079829454875466169815825125185582978313068446844884320982567963850935658055236389757926815483138577816853151260602864482952314647080813870404069778427729662357858397675868026270908163076640393762176316729389364886372620570504570075211343959585180114014009967308867051066728582472324210344083162947931126691216786713857254148957057507970658636042277983218047946688999129414869582221952415942706713295084406454514265013177091799373310578104661335816084135134338773372072456904103135491872004982328859094262496720700424108730507519409046757252824784294220703972819391162849312919188156084310879706997067537394813216537385282135396979218261386003707716425776507323114124237948350039313077437787136102909904065778379075940814181643023975006440198638882459779692556844135242824765244159924282001093299647981059676986842905223212530778994215687002344214125563567671809262916071133806232372949857584375947327306751324763677529393709014126993217242805918139643927265272674146649384423400474932118824759071353782475099717665604795520529972302458445840087002798931341680507650694842317023955515592724771950934196931135225567347880440600672449435442621173518017240293160373926164441808371655797478630259818212091763083325745539161351314809470994694476762075624208746588516876127599992836357531849842708771534012197128150676582717217974346720047158985845214515631318072906644734136686279844489989063236718927721599502948480571315818685891774156821708854264813120894581272523476555933140192230096609327587835659431783258502133125209322624985123009312147612066822530952484299543647448593725217159689974256049292509211648780757990506451593708008535694234681725951421874696455589016684953246073499754635095809161804956127370086028514340539986936364754750684966789798750161494073425345536470128522512020613862820881210220413554031618260435852729421335244440430480529264076079315555786515401353124793489029703122040247547623793662774607292391037310148798950497331495864431697708513071866865955946456144271171347204229521576443036202955806030463170280494257842406130504687240864896777214903304592655625644941433789093604008789974877698599878588971254722162796617225773924974817358782164889069272569125911641783399695263651097455319569052991945846498625201485930869987465392366277115259280200584769699302174837647968446145816555171965807129189304185995756278033232822339248410449351124670139915346643960169596076117559975306133938419473143876771953674873391013348008676121977211143964531157378491726693416559463247744935278681425857117646520978807291498022166680260046141847011700296243917660737804813861099657678773174895343949669623588048598210000088046825566006361546645797824124631699181780714355337592461154328190861476132909272635608614163754315269524205665570191303455024610030643861498972738901980006614603067873589179315379381927717508309912991781662832022105416901343078816659971423429197287163557979473695689458581096508632713697780092055399068891382397996000586435013425000545768187927377874334417994406177907707169488036469308454743542656809692834017336159516741251939351834143550546648393901163771846909148941877587670582550682531513180986614870371429294025081866343603766104192133394277365963009656597486982235411241708740429116419592128552553974503927586071940353659952439729583341720274939493457137393679339897368779461003250523009406985755674213316615427716874368049947550338478361264463455718548994678586199566906176463581462960524312947929140441418571762862735088128657621068245043551139515121962567309027630387057499516335789672902284669622385903821084877146766346857627921667187620221621072958784221473043660325121168196000873765872898439596446700403293723951851302285969905890685320012730424820058868576186975419923874051710881914005884976807563831408414208797127343002926926091147934640255120566042704850255013146451831663873159940593928268973805386371723771324771937611814259417607245047937775336415698042464310445549442078295640398222519646491400228333395828381509956850627287088938362100852877667303305386366516159334737269531975291471966352830485001265794569149229741421691782406098226892715452880826866069042855497448104097796963961343599749684604005670961023406075066441073746550329657439022363066571756405295766298439709412442174198253054533189220992163325923668101284691318584188767362401460305922264703275527760764721404603985524632906950642102081962259133872215847330602682117744092365649382565142851737605299013911135700188776581420435742236553886881263011342724512952230919336064233463425624797971539681893724479183100853781000463875670588427560066259066611858390083723642652747780913474531438912716067673069925413803947842830499143667016324086134585732258926876655271911192016750766381658137315008790129174967103903697681626974651076049155321208053030048211004882362841691258578020480806365326544777713404969229153430497551934625970955920210443567674608595933993342235723769244947085746274841336298763073130594950383840417579999932704403119423307026441031255808953086056728294926019443591645044595285420309670893907930264926079983464210761497501760042952415255567439089992986943651606124158746469771510066609999537360307003556208488880198349664123021479922709721395181079887362723387506714686705184142474611750441552722558290142728042056335182207673297217285192530255339887280625681683871662422662397878251162358592172668424256453125559291561371710991336330139452709817881132251798199196719639553592624190419790517188035463748230262046173787386605097388259535948882337562253090547816669374040150734791053510063322518478030897440334274084985565310046895143721990139382506913594632300476857054956477185161220027301365865727609931102683059506932722406437260281374062578795842482287302396640541217334663835262100556944686554563555343456857237685671336587343858493541615965684870641027071083539305466719428906377710955562138915537172047257898107494121969254746656360523632963054826248947681937941350669276974538774526917777134351970393776784210887862044454573227659774139098956400923310413184297419934924879543715044758359373075792520646417275448746993505437266135535674148317715597205653635644843127511431849414424604082887454093220187464668838818344745014845827974380435402790672725540131941926981303512969102751543901247405489005256285937920853313133126264712424813418535066600075954068431503791403817532756614459460496112837422817144246719188849689104792162852128487887844375080947031318640318796278171042632069579396493823337829589857814652637738329661646288571904248121831220713748856514014826906374995039510618910111956973223140108450377322248227229382263146781555309656221913338938169627146562892447964193381385123450127485632130956564658762531213739966335819005369659071075913131884917401321909740769013038742131033607229693664751552180643359053434180622830529186507678801864190763228584662364715919966515676194388108281093880181059206531523368126113695395653250993929640834564489151256922804129498378101085375488408969450153390265746553107219204711517599555666979235949828497868442333757140055236126915333590355051727940563795843373338475321571378117041312191138300405070703917222338149130651634757379167695637781181088543890314688131694321249442574138187091098943708674002796475751682230036312180605199387781936329945985031385711969054805186780713761986384342782261695777805090757264283453883411374844124381851512472750864448711423816954535688297365457904194759781566603039944961951226381069741951800094583831974217487418418477221855833000819513538062907221474856937408578999684904450601006119104488093278308912125102368380508207667335380027764583475878704762558122226385384035444077954331649141487286700458476803438948123837585842829600362263320711607260048116043160557690777882404308161110412592021969151840596820035712509342200191490302297555795901699869583251895918304870917855945006161110921406317597872491234012043484232406490468887132991168806588620802959348846477411874776937405877058081569657210450606441753193384446152584563591801462099177897428705375153606947634781047102990001226122228126369517995544491415458892477637614624309643042341532127290768157940699878232652672600222686844907432179878248591892345546181538558562660596560763264208913313371058313235768710323009974479830928056350245198662394085280202483098616638135982068565866454657620902102759349509482850189026868835942243903208838827644421065723445504696894958131416807715823388399481868775754165812182441876348888600509915631712017678080030898645692340576011249816219545841751208823761551204994457783228372737184835551780693687707633784812000964261727701323569378481440884163776416707231478470217154281589650989566356360912637073718489813793132168874725792502087438110215130771361234118493980309299251052403052150280417245179628127902271820885894956750298963218970431709975435215210538005147612435688192636383615795186421234840191739189344866175933605740766906069868420790083742381794794450860505271230148650888443705468758427411831000009663288662658443926628647474479775560274425651921093901178860274661507095326961908865142830367736245056522976574583181504702452268563432736044365598546931717886150717764745864601155013353226312259288778870143832750234512132328737503486739694103998995853659609934481557692410693781033298596889478592730588711533853703853438599050941138001714822192953949566075776640028591027046888204920066541674887375263440974047462121530886168543880076037070145038817828624034551826956738938474154925662764189156691391570297284154372463879107474074854142681627986197645623663657723976820192059991707883559766285090392596399438307241148894857794155688488089434573225363443793665681409890958328631388378719865560912355714233982056108876945366821562051757429116389290047840068007767520187770387565827786296137683507346847117719712155451191408177698262656597364763166187627438739436541866471405587382798491129479038994030137498338084140557659516623526186743675515767869689242157121486788082623915013293377487868606141250147002480070780086393539796061034543552792967082317258647723812046096137762878663887943325824769032905098058867943070195335617611070277023478114567260911679887343704845099982526889544029259003768966686274258651432121358408551221986637115456619630361465817474375858209598796789217525061074298049064002047372807578992000892397646252329214215284469564994579575088977989916322278503983085179052622416052305855992046121372186785788439976572077447402603535665993297391705250431029235123651018388831261336040869767677915236933303300500164351007879338007236251664861441150897567986379973458841391833813268233953815347425723917918823151519926939618711455539187107406387532587809562342060594128179138348441628780254722516778448368757932915568112781637967125756392697374626132186515111393633805147306703662558059326997178283090008186010316273033641090524733423316050923168660955616611075015390304036791584298287251128332330893571709368255351580657055283170781350655122322932075863615773147424517257057753849616254862944917080883847694484596516801459174319390524844547461923810841202790295529180527990448878991330701218757334478843809482978230989080361961296538630752742205026008138566448334535854805082581408568207446923572988292177459043715747006870309870802699758622335022407654842018826362619903598997124259290971791634898730666361269357042180085894669738172094606095646539390237531908067876064064994056110237029683935086492549283683719733064182358055051531834240145868970747661604954986163654558522695140497670072701188019123209315748375286595787925703346885671625854985290554330893892350399278851938698707613730419955289134419698694251848619660013704048305688708483301968710128497285912220665745992605939524307016851473636963912390744621436098453137918430966802638968576137682801058394751987857189675553295299608661349705418995401807145977322893488508005645910858532388056047162696699181894334563433461551726954209513796305214224072149152730208095266804894378740984533158260453474327691866798935929619327604261437311380382891045392643930434775947928244016125075794500372574696753250829287229026579715321598102257809990536649608970458252734101837624157084815827448870496505009479951552236544424288955669718012709252861906537472368208455057311935751814386813105529342305002681243528866500180976199591640305535484571492765348122567544000741124672888627434291409568682729209758415098435836448328825828748249767015115219232369629075422931978488071956928600917775388394312210975429295053942586625504654972990069245316817338915263120482483618298625822083101218640542280150557262184259509626171166370078575208245056292589873424641304799036976524047803451719523812295728257364425587023950683299306407796604325596130420141190791473503000248401407236204543137257091495495153612904142347089654318655383005479443404998325137503038536842298287478217250750914223356973150681858523659506341368358934591416434401542026465152766426585869254838788819862815823024323837697002663019549425043400218466058452509640730987666486228615792561471540607927470800978247260426584884960060354122552263674464233219877359350479141522944095258463704421526448055257014506723770797377067420945121033725422982975093616975956450892729195858596994259686311613170714647588480872295250920494492313197488415976186870856393734642206083807666502268320545862188103952237371837222663075718967690221013972444968580433894310410963015715234530749174600119559312968845636420311053813748582956242376937050730992456318879060922069030129670981612996225641925965561544176745097548222460949180747125552877948919228996122414278012714200465034872251768931792617639482456953615702024095346762714676635535482934070299583656637320336566726540909378804039721904148836700289876048386592544965737011961716377384768814280103440118193271267357785155882881225668965609449886759123110629826353629373940958197067394911481393453794924310229514143854564496555265158889879388973241712455373087704416216100482991438674041224626323797137056788773037687208717509792321257629616962452710678988698928808438052294655465338327036725268254128567741149208318195082285301724277839452547779232855436040321476787201376965821082559654763826055688186477267553033009029409051194154132957142167067876508039793086565226841752284317805495794139383687358795989386005010976027495724117869345164663242528946284984939125193167203646532954835893961910141679856063095528520502354225349207068355829538337867427592747371699558106660518941208157811390962846168425286918750121637147728597787299846359377878407189865378026703353431683434101440137824146905485687427411374476056284814552886818810121210691568113090440084917442781042213329478588683533029167038914570357436173616112657528504995374735472063828121966804871439640549522012260178198469371619690734018027651701167435034365268621512639422231603886834722687077189898769617847066209105910250549503853826334357139429519086433359246479792982447949168593503052706751045687561241568641109738815350172645887285575576095862071926909480288384249928854672374473525377918512869863874744646123463514403375257689154533264256852960214668972585511096214570615758402952966577068650567044751768296721123313221405145402585176395880099653643445334364402384225509195531753663411272134763405548440821355176167544216330704181856717039202317789803603501227362567351620294224313225992184728615632319001478734067004346622105763225344315070937228605175158893201636721215157350308752047786943170626183749779515060008308261104401356730987988702231948858585389451472078905449392972634660238698199819949532281665958431866606242754490007151459351762053372662997125430049302206201954545655528646624292086875507564359825718937479034201084592298688597007539033892962586631289626095677928772423086368463893037674325864386540158744689947662611714463917368493947892556089260384119433110465326393946471779716747321098086447777064339182820596014894735813001883062678912671695265400846906014190484600727749778989557077220142624856141154678954594199638951241530766042074476577036605699379694110020805383607747433187536727325897447767216678448953765129578316761450721773278271645767499570732336402645560952519290617166292456347678113775192727830358191828409455533081874053558804170265322212682292758168729865343423116510527406701799663703123160403552092589736758716278824687704682047434981556835612508332097113852341996270681843706125715613887726698127715506777958756364984388984949073819559714568556166894244268367716927859424681934976571399961979728189646471392538257421827839147031063659874814338516483440385752290605036515542203444177410204316396388059100071467773159240548430995975438270982514504286500967818074555086180589527822801510049110902880364511936537370849252212518301221079340598230105455525617640278214619150594888520139845780994515301151873822714826864327606199499449104671602344536732609199900503644347055553040823026312183728843913952824320994024029426602976669838034940313959343428603990679309025097678512610563784286626912713770719231147968070704227094864333392856268355297468034454678496059601896092359028087286709708706055720100051021707635827879981098395651309170725706170770111303877347145218385963831223082036686944046025558549728075059519451159013258506186665246385017537833852152068971098118468639539987387197919443390475827622223514570249838654542720388275719641673705915446344986411958024445183379782804904422499307493404417067052029794187992889902674340351091694935326735848955352773920788858040753533355513232818468371941127686113753713784623141474027150633290433127383377527343974807860831486886144368049364619507467438467083116550480874584786800513996453880697616811510112778630635061739056771269128874127348236726128670865326080008004469513625965599694676164202817619775265483161689257669932658063221294853508311034649205201979566805768345240148386803899790906409853831980372685515262079286856404125278974606569965386614280096745641646464757391548567542740707358680464023495661706341960747766403244872685533455257033050230271975748527252443654271800830180389062883422538415013268842961391823679863823208971148014797148537518738568051077319233727330918292671484994409081851269426706897385381107877955794249794029597669624538366852702822862355196715599495349375637897198052047219891705233525745686552720012693410127917967335156035749411026135691094339666987673963968228745759773068885815743287103603723285233976282084525421119585167222610282140577097014801949961106787535071327887923502515375563055509481132838610319470547118530228911793413751994018912652985866443377855622469021998986812091155847546407428585544782796634803225407732632842733045023147718510286163535369600537440425937004808499928716367589098123354905037147465946785013550955031128161477352808937850251535020222588566108153016134381278334189806096937252931811111087660439799418183574785823351850747641037841752006569374524190700514190755171561171609120505727307406459832868493633818056661048554895058961956717106216899846461945220144774334947482791069700134216878409704245552480034572143515942366213828877395692462442626644951177300652643683351426665317989656731934839326865425613062291260413919927214139453739070590195155806507957677382151378666579551529095774207945733677671669604023780583348520824288605163348589591123043910092190793903267104426926807309358606306063029574921417919380882096868151616048993832832353634766310317365392359720635937659799596085875799036544403210284784073899504655085696825855032634890886695793129642840625530321032733952258800387404322734880925683689353123468016024963207479915669706287583569263940264841319295817986594536348910913309790203590366391614147131777299684085922029765872839970261820462936526032589765169509876021740509883746121266995608581619485347225435365523094388737367165488151100552145693599564484923600200097609808538176883339605949495581040513301456383594300645388185340022309605802070059729359873807505887286218380010405363866467921205054250463351516011429591607845402296627454735502859058992633811818827266657109867234711559739198477074484138501279182238337182181975155576797102941925605597769854017501775274912627497437268113216917439648520145764167316104586343048364835795450398661898556184453564757407856050708614736623034595160369416552671078559268985455390680927012656644300269849417935401579833650114245123654971264373714309082673746574080968742119527547604117441992868898775375693591061336668934519097519122748796638692325839681319081850657911550106466866073623352239593894731671075799295357843732881468392195043590095726043495376488628997489155756086709648788563181985614054219102429337853839002208718957603754523843360655414193715959057744497565181196292822840762789875056203772418394131836997344553369498982232976838894528774205644890825672871092670748170434106857443586064191980220632564936931614147491015230994675214434738444559906873938440657112950723092598336029112380785603236877224807586989914994130076148601201883053978163742520475391271329854045737604995159509654268959132824182274008858727785284328099560367500952533973551394742453574924885278389737720324201690681212762044201420653207806635601612491108802339392158652901881986557573706136924894987320130201992092195267444348454546333333341822786734489691131735253743778912014783470185009898442031462446538937717388269455884069252748133910415588811237475743815461525215008111089020241299202226837876725597405302847595905354352935163613452914484083577592364109518260386222202837273193439582638069957024994093308996656230941106076394698030813772176317860751027391764407576525236052879180821223996237276842521194974706480244582526532039304881498118529963320723844864697751339123292683510318777212895588662860570870082278971074451033181481829267783385359884056390641133455258586329724166710338869652443603683374374930302424393896092460652936537882563279485741478941731053999052876493602540775319785215980479324829885558804745364078473272849261135058745865174178303161916612652725146929276708127631533473231385258561257528080364009280788780374549557154841482990976557421622984722215144855544294612773420103424025810076762991771894357806695428545788837198782911851706027202134789736756122808953538069711356864922673314699530622985628046187820655931062642408862523935961702069279658725596322277949276267121225457160099190804813187193854571525859999375925296289800883173257052136654293390597027908965855249133059881705165354861967004964813720843932009004380393234573147172743983510686527751850269658078584835787434519439549742252450011625910708175364141039836194435349143768670307105191466750435531935143588554182719690627992466813094052864620394200648812482418540297676293504754748042686295909184338930491004538595890513051550540791825924679983449590958546601486552851432461044616188698593994145293862351708628670922626188363984885691057396871346237594330695369066570774999348212283379291295722042655330666822987027458688828150425886394094242201128856377188788848661773733126823934062968604029104575980725829872302336952727646698439075417103563045106061464553894178184090442900904562787118243677131807005675304172934186279494746538517598649034704944727278996225216477617146112220274788883315439340062489468526580808546717800748874969502083642814102604029146762776456659031644574936406548392595312495124322860603679767353237017272431588198034709907295877695792698061291737905843895585987155100570446390090619523546241131113668092716917858763636534032713683312943782692965361372335669333258184781118188901292751443444837342677132083909632087100756097689116009425027234573028638813233987982206458751201213409657205148074766723548866350067216049609978241018069372777986670956311006031370047484683858096047150839743288349166589691386182190470482445306737614246871898019980488339707201801157018087420721530363949561609451655893976033780092156570991775360558552239195734774734263714744756729946328454611539165110755918179261293234559229252579695244819324917017401097057037336485965018135323704333418463221296275823959734166738822056805614476239284631664958769461643819787667067964135052068053309459173459487027690898283072372113012259833461617523870812618949714169146039409023013014663046381264366327424879284532756392104027341351120040008211567441556531699236694790184779273515307962755888013618979398647006540864083195299103439778599851235055863355172385000889575528641849889095851618492604037976757179800389422197871267190881863813315036555602287378208471192976927425691695294151873883572238161964665126886447921907122322484267397394336171924120322866309577416799208537424156093630071922935176798756297414412365723130480791931111636353939974698833193794518859481717295477384855273026905631206207942467595611271240509531787486336581691965307239869660930003616849181618678621692089346442788909043499173254619329623097688488569461521904493401103494526149802635229422153535428728007461230345728434561175966059880739611323193193614063945909190460633717887439468548781338106238904546362246114321958665283181753762532126702280411169973799362906655099218470631959472881235901926639385125258582323886020374266767090541804240586305339724093081858284889595829299550722062164054349841458044110380919617460429176105144091959161409532052524106413953765712927986072848410301296033598098135772530238319268803052277909920553249589252132824292016852448687591239471141356585145322185183970712003474529410623342516193967312048344785062858149269392899991434982881877112229234106525022892733061556122399973448149220678203474456556320863466774356019517933381247691721057243366470342333451651659894578600439297624225809591765924645616700172195370185795156592895148251212849406476578140781186937542422023822089527336709014327724050808763600018178342112002557113017664018704166822094732215785258315313537225124149309371511480244810616932875284222543685458827445856700780411753322436399979512381973264289511159925586696535491324352169342885245023519955653115568665660657625943849020966798516737139086794124847403454973098801817646142381582699932299556849165344708221048042238459850594174497992752689021207063615645063840427153927115379752409560959261395755187101044578838925216843115464377471815256694106536355389930304055610808764598020940579362858846407949082448859120962733665878345406518559626652818441561527468828639775596287971373509997285796770657814424011877501890727671925203940760375756996369447356490802959222142158522584643824574661279447423132146611517846312786938058042273181804308788840050137887215803222770906751333235229906263520243380188783829604151915373118089025463464808426019283416152206209097520095574254073409278019707467157982257960573124774220458495823982990244670717650613623093500898292655131919168660526281256607985553615411951774095590055741344483178502439163949729715554131327670390913387235837443170110472691416366122649609450895801857831256851412645802573842972599027022709035060320481893231800509411009343009871405623837752192308122564057612357623425537067132703301770072045358459831096544025105355701595144100123839830911143489155223522981278028845692238715270565705632292966057352469379500913036486776574110134837080252520595992492113799850621342282771961019810110862259616636738284668558614347050890500432127277207915943112406288868721507776385699016336207753903402258673682376934383260861177881127190491002767758899241938152396014724659264421406631453122820750546860292060973978931397601653096695626437274706558971227396487593248830218788785905301309094071724581990437421431779432219037442199192508910871052455384148396034791377492944493498761651551049330021656477092703483023331335924464817266782364825808156098442401279589784787981440931885996445002567858652739390796395477731625199125020871595832327036372457331296951360644060351400703131412654356272614952929570511747381059099039860732982809256145107323309038465061981175290161753129621112896687577675074145900745232544976627035613265597978622768490690255257318059011326268007665493890045874147056919802615257709912500598351516012319473474652184552422695836973754845596720773901330993608496246845820053399732987233600345212411034753447859984342033872704532535271404984578866153938282833599168865364559107755413978449833961796978813033279083226243164141723714246528608186315207566357218960776368379956765813363306437147199905909850869860460077308754722174631963170753665536413383794727712201223363444536170424469146884312988959646974881490404069776059646942118375934391147672623195945540019116171247255785761877746067655521187160554847722835282027307829338396146156109708899727320430517833549307345015604470995707379626049128823732085456904822185423619687440019983979689808878204816234937808263799014664909343318377379845881660397440624578606272928257427460967570182366894240372851239414364615332763486258210405257972126252049690585770848296785994535729025128934932185538385747277422525029838603082164092055202914304936288437083852273290873900847247319819370114034378646054843420877297998592521783729050510095775823886213668113890755641403173995826213952535384143227611417413446805600522773807268138320612761649110852388166773039815302907288101650235682405620178950638792509246542693255595286794824999301506517236360854181974725462630809846827062655567530304079829349241791409551982442884342298841159693610532737558508889992747914071930451244019907233738348973328363119715688234438394578933646993301185873105314762929510736573686771418701863088395389637736567032636492293397510208931138784644496386125492157714528974950052073953965303181984789365445527114370460956813107365564083161060504751278983810910079945613077144354265470892961132854915096414662465337531816986154485647045050642797841938138913216546846419952103978881574444140057322234800803463071373381380327843660312216934761668806855353335655247571081039996808354005026681556819643729999835717731271947459850479024007152553076488189162521459514708493841459858521039417913072778710744578175937227382883104593429032597897791728382412927285711894651398175442672899594881103379232302972328149303437763181649712821572235360752204600936049654063715325925422869277506938288815539894313416794539674236906406656734313687116435988507451282565834422248830372699078695053029242951795130044192308592110097207709644667131244769332621472788089566696761532159857707809309123414480039859311490694577272519607972253008259634680482484720704794164339779731643929981158500900984202858893718583231579800238358914997155603435773125342458284921726228235404138805567330366395711586366007320311572160150255526216881694399811985011834842941408507628911147160291078488761510561743933754793469449242447742746779825366806848227552958481487418365245312065710434173275111108234479588938669378030442717030495444479650962509523412734389733270262111218850926230997554592723800542627369570119657612653416854974079722053433792196716218053350961966279731989121283380817664559075382296883149503568330585588994618271874648919795472207688387634168441536961987675652451635562074385514729407525903068463221653931227274494596573759032358849884571867102731551872581071298877494076454176884851511480705466993943086692642232706719956930446484486855175037430067038923062221755532696609130159118547538142600994537559721381935998744058227689242163858522826755691099434288850395672591649256835845880674479850770396094134158435824234741667295657556828396115308420525472758761481139803132306448929736895823811968479558655149785929691233990146108787936532291605002525897448405677923043416048677216918546589277341011509799916473310306911201876438374012274171987912676614788991347676117874475458600145875164118474993016032675802700973028624549541944472795311861034239213873453715367651197112201111044457370053305471436132688121332234901556377948055577904059017647467896064743744238627933160597939624561319850875371493959303381126143042051862045522448710956465098959694600354692780690328465375624629940825439732213419963195967032348674608501164508561369055935970621974683918661866158247093676298648096854436812835860742152293746452919346877580661028520571604643628949070747240807972084483167992278521695825499408938610691628992701669428169593815687039646088439601239319070074912835840337792464558968006318133640387542524261164313469746231596164060740954975943484699837206432212133202331619153916667998408718856252320934295623197471673514127973303655846689807702942086816151775751580430610215221659983231852705944509904938610023682146891501843841779698032770417577039230153597535258095009194083242788651828030474717585023167676160740026592471392843256227305127593619424319091739334996947784121660103489631350754144448714569839038723034779766944270693008123852706929324494230539523161888817869791668273408012302833299486419519774934830881492541637762563418676223863689374616503526219128457076677252745508238920504710758234669379210402097033185237872496345833778606054103125880522062663978295337798574277208353936625106898615576598413369261963224391901752175222030872187734028170411884575604978661098883500395941068167523313068076403341518180047399554903255287314908270377588732820244358212373980064412259275100683373347383653894331123083235623024114692644158467569386209720205568149726825749528527780477703337853339837327030566217277396887493324272343968423404145228669609669580445110251181068744247761061913118065010630427894472054723965290013703940505599013485913437690275256045371783528175961204593682475906878581345229550137903601313270007411369080811261636028630404693978092944599892078135552024661853280543973179722072120172656555758585462079018599876818611255573511439631372795454589978185085751472143412580309146194632791567815155638888611250042402782261879115841509792663640874068001021282827003645104693843293485281488490551377020494547471245923074160276669606459168845193885261001240687429803424464073713661820701615135005783704216074410025893507127715556443750884022098019980053287503094487900053863655032498542513961165303253398448013736106354523900423366761640078523174603742253988226226575181238739842422871027855829024590684880044356271626611859102435892497916382721268003560002437750134990683829495162454978761502458844837373479516910895837863779350437554165486119116891113571301786769387690385538498780198751299193398862271270948331965497129058944507661939415852176525939449621387638514454405670663462501942944397132975494728946138457854120869639532472413899924655701995156762526640973743850658888395749097553437462305336204305788936175902949054095730358014692533905832723782476627759659150694844299546434455156846684298564787020780154742042515212299389157767425721467393659544415561558451371876154676268177887258000691630346317134491847283787565857297293627471522869931830788928180393461572733628048483825073537793141179678594040035299286490048817550607124390802646711177096679327744133500762757477153014727113103853904908366700436728853657894241780247573072495798294866809571305268870459671953431812881288121088031282789270213297993183091729967718786482216406835680441452475700458403394072135818809958973558952497493612642966722300077391950517633224237845275817298240497115854048835528198592087714273561610628589730256628409057250148822595184164499719840253081716234078682849304641664235428576133289449486451695764393446642729220202499022133247878237820687906446047783031588312482781526960600458493539488845104594726744043144999998396833256361961484136064993798268825091028253792691023971272763093398811380473015344977818647900475970232970564657743342870579988209716432026165715207960472980314092258457978837315719947292943047463055756670635540644778022102125547078078527696214603092996469314520297347183574524462874175532647274595661173371253929880515551671264859595773288025341167893518172309309850528574365005541756327074407226469180479328115594423909274459729442760669803628320700144699669794426853115865113099528764363479669877201261225562382736109028629322069067116320813537902297188856042072724911985835552317921058066772693897034154213805015984876640373494184327712846658308397322988766274128778753474566457848262930889900122188978022013909561149738574368682666406638605464187284576123448855422818709464824345485081194092774972449066608325088944810961438957746367460903428747753693071739312821346474700245025983158833730066039509105058447038246494322466504088648687558918547671395946363871884854079479181508351624764008209682512124222743646415905658494969820582885647768128113001404016328334380293954040647757993570865987147642504089694252987645608720730981722427144875685406777034218299299064418697295926293601802370043419244871109927009568080180446378527509348743517556135329197894749967349916747311997787364386353512990311933513328358219126564969737746957766143427218916167875044981016471691760587143119609296135624815283091041760469427322035256112315853711793538679913291423289354827328959690078848512829322405478177281439810330578992860925119437371654686389836650307403506973802419680070338399947563379845062717794849727271678794157690473810031592838405500764816556173689805098489940748545882123210007776019413589477213979023618465872649609811489933192468850787065450129267733399326559441067354562679537585149977939226820467781841291153602234026952579039674536293377485266449432369880598278443968767106334613580755788634334045008053679241024771177347641479087562217947019052221466907216749799003878805399954599486849428325397939307559281863370608052757239967888383300458166874819162289067601290110116892283471416519580271091132753919736234572610817592445466316165857845459279648821373355558575891595986709981269629314198873685564728959305744751331490094563955703505819310255321349904994759228879387555870614442058429525933453760898458430386392604160038815599318172401359981571540511040726958332583116683074673763220045827116513121402928577001857615997876162387215995904855598059532964133702908779768927079593235363675482627626996014555754832038239933584408109148476777629127457366428892073203498939926916668515082507986696866645042329308417464831662421813577815827323252373361909759983238080969376289965283536719401112884725772928875729260815973330063797137803562780738091049056241322291948442658429335095590277157191965802588133048543304486779604080334945617463328817066803107980951374788387288358944410871238218418525513275878614727321026864471733088718214409417733576525143662023535511327145573476695787549004634683908555727741816165768359586033853291090075052688958476798929152941340664371515652470189389510711526652030878750529391515431798503256747097463359735627991227656235019243555621233259190630032751960676452392994615174610775144298028508703215255826916136018596179903901062006161884869883151071356706140566116698158213584952272535004975117628335167849957981206690201677799928132578742278336968692787371477596311343213142844144318745356184487327668861697965808994054932895069603080569074946101063208259622686134331622456708637021962282919150877072724206720617201380713794914216413145282423591280098482486753959120236430528644309839274039575374425522242208208544894821753146567966229967248452982297656978106807166207579726301702545329673633613937697966668623589091374192043120230926242907618638550778817565304445287467967369403425713853691565143238902185885920169563678853079878056991884911905843452910741744246389761907228588655654727090824705683752387866449730339162067561034958410169283660290735248762103502310123859247511750290446470726661345545100266192831471131466947626010768050815960970116937749010763302221945771979227343578959130090202302740978974041003020101906805827384688111952116733533879122397102372585269489295349764974398439201526030277158341090753580726541689580156150237373394572714047575757964263507251757409909327558427008846835890718861638976935286080267649292693314734730530640453758986739581068192088871622029317477460581099923678838598792178828548768498900845178150573803474379680693560063764878645620631355660449076573167122598854910204755710896905303825417433736016673312333993812373786264159533554064610111877218473074588130850072024617904994944543685250388771175502006313440525203949315367908336249679285538637044225737711902489852751378571053869000582308794368205010128775163959805386352622323158875005559541232123588555178455856484326213317486981242271708977184996024605143609648961374016197083037530504937833130977663845389184114898694108452733039901401542021851315372818406403513246239763547399469441746221775479433138769129848225757932886342526595886863941313758445700127030768294747383322856417206527020125424639907002949647358105621049480897167878654177856998006085831954896973652183835478142649348584184426620618117451226228955198660721141703054575945310786393812119518155702469636872705119442579180871227418419859599515826244483495511343400459485387328874396600819041327765257566015346760840620370225246705582947789305111437782609401878211249263996610921658919796589443995602150336782279288284098378072332747557211049684406653154721570402405456655950696357265516162151743633504214891906510012337819739900472650434688646303562530414500967785321258684898749048808710488694839309086048288731278381006191582079897481629029477628386625234404905132944409505382377448599361156252955576290294102621771393462816079478641208071870954697560393548993301932781903307180836107378786679326617327631163754931909952845248798288373939920272105892522213585717896591800498423061568085845018809846339631468645428443844798373169057381409447788275144973492355622060415900008986130038806097545608177583024605575457034308777480614695110948480593340564473558005455625377523256881857958161467703505671224662706460555782476582390378318248837053313865688272038162709269939729716887862819873485301814991173297583418549360475745773096102980256412530495534838420654826393032825755073297346599135212663303589443346063404261486572899905682280851924030761394143202493115187313324010801708836417312261950278928291774843336111087231470063976883551117540287430692115504372843504134746327453907320528024242517663798865917227255456597226070849986894470230685602553543084682129594180167427653269134555964234229333937326652421779774878726724998157160342679295546416943280557699763023069884412581472833058373517275957439778698492225094567580740172997212974717063251076948275741311935988824680254052152632991672511540510605648922437162060203218577324803897495007346927230363683023295955007572173571841819320223850635760359963998529758077289763432492724891298095378919647070085342848747623734903746775833891652323737921647894483451408146793686514425618467621544890077099436181570662020119611595592250847764649185039713049434891637256861216791764264334417353286625545261539468612980989425361037483367478465129949142136957078227338793031490490327206503985240926239415313509429174748290032408732026620867826575110427462164944006589814240096035340801601343669020716789469825970392788893960734176795132205338565814289028656119935840831031787665051830525565729215083300195486962720857116519183976001025232353200346169371129227082157262833973318272486793164965402539289306417233572765425036363420020341049160805668303261763763315089634532104672363743410688265248759887523388732365743304478445469182475429546373381399003377601337735990843905411733358125637589363538321461839685297570838085284881843148980828390283536770829784343230200440071074408663767678690109337730174095908734431889392173749085228034203490365586544335603352876124554965137753709324720255645170417885574090668730585453358541549012710115073625761887905171571456427575027781215222635734720591318728734944077549855142458543543178979901485999894429305743283539668787262627674124275275100630020340327487451018879188608653760146969275493796310925572322478840145063134210479309603331779640372416900848280981693319725291897949488298787093507222687618096604087162784103016265711903691804877090607464240734076663442309429495391166279891608334410915798836109900394585280856632765527398633151817206029752419077293413335337734788010697454830109621922098415969409921533752834125182432087919019163673803613360082319907884257208142545689802065747196780009088882953357077201888013513566607267574515262606678462551140163117529097644329901694486770558454270254638037791991697072828388543279606399901004988927687177439548716631718491263539078409520992897065011995445956234009293056734930495411645964877362911620403327167913459846405243156893114961856713467207034553638385122955349679707991281718928696749493714557137425207078057584468144936441298700404478977187416448264543109718882061796173185851105270351187327704336497133476284542057248477200786659224401227782653195989000424168699108001146956008591380970233996075591979185507160856403581004947071206905416258544676254682692968483406360580281713030921734600278471909365286937638895524489985136726309843182907976435682632670223058492297117818558274984287435755758778821825171204587660011887031999694350167621217066453477832346545478870239008939648917200982977815345635244351600993448166981231463619153468599713292424956035586850482800840875361497245361456852132777909279398002229096762579573262004694390977218968816078194176076559118780040344278680619504183367196188169380197252301244414597285446171854588069156217866260535580124507041612781520908746207504624650739790542591728839940227043689581462228024208293908898687998724271485864280101602188790999196923118086816132340292398141605707376705097586826673065617480369954106712169538801800730383271232330467347558780331591765805732041806240470651839536572519076605385158166020329126197270806943731766572176979879051966303767479605520759747574187874711533837825815098098271047886746584311102425453838307457628751330978736839279391215816247408389454831647531930291503779013156351280042334009393629018038701221241324178364522756386670649200862247084673060865040427054377832442529972363702966299015950051010313604443678114774157698703591460620313510160168949385045882024373091661611496772131555148614458717269084167959482271249087140439523102635606603839494510374628374052766481664906088947080696977079805977447306899972600686962456418448691952531061734530040837609632254193390938690275176502100989149700372937520292209192479013535720098420424870947943010698738236502467868590106193551144574734253878673525773404292967592240636197892631517138710689526174757264749412944107429129072798662338555803326628411059738208269623420363071786257875572320887196742181365540348135465544700653677565234856556874467361982117117963176565023786794827677300698235063659398509801209826897916139514603320151762072618848166878899000971568159014882529209489949828976874082847069174696922557845665907728840229628103803279237848007345715490413314962227992661832075494364031720090915921061906775405768705597485253224481724722727242587435172678935210434194425227524733003930719637515541568639311510819456865199985241335274705071240775206033411311483065382338334291506516073692261935653451602181462843514238678915388529161820879820270675447128249408511863817342861430186830904865285467842302799012147237945578300008321792175951727516801487496809698611548953039878482354803469098676785003068186773535560138526260646139847838767736835040790765972955848827035599001496973093415730548048040681681293058916189734995341410963580579551595984413333213868051868946787561673002411291038483255554606561184872544076465721856884979508236658613455425661377569553617072460205150267267202290662420887359475136684577789321012741596316063887094988674780242537983993130097655615035508317259605762997371831187762765817520542864713043031229715299623317174120967958065443394672345084469791200272890337813691337707453995258001488950165097764726747383909563467898377032066447155424383520403131137516373123127141842863015446051805382809464958280576915210637969196989563330800822817463554103290751364805072354045448577357089804061579171242492968220835842020617315248508520916741144917096092086094513333846274200565144112625024652405687391122651244484740928606942042232616590830933165164879765574383789694071173376823845215300749680635753331784863928394513014549380941191761059716970468143443924662364490693876184252151213731148596530612571503755902919588491113163631619060966074173605245512937864528216089431503752101924707691585158941254814191656386434347701844753074242608920091205949727230494245894942597962285252683294669016357567667838725550924661585176290350216217813123075633961576244980114165416926259946213567857517738199980032709504150629425807861520114483942470185306116358654041935252688798449435322134904060879207361155100820477595972171410354450479219112238141893375695465387157748141730977872164115922057437026868144279260677479092689372977275191693857780904994264982103001178162948289436443706555465636200054249911535164472922933235902256024269765809619622928990673016032885254751179007392422846400622308393176576782410881202628343945646853523557780113381160715456507282287738024370382645545258840890564943024626921381579594139546625230277571804792719744487461495793365300476754534167313598202953033147935734342408439981131529488441054569410750462798174730202922496207249869137174157006303779472607108322339210700144329240994821478752632827932851583328772178603167908989589635215521074255255253406111572543523689261645036622958624030786261847659745513236608672777370928270151006188000477827347616718492068837302355251708673655986141230182562028165020156943154566401631410798255473684768856430019293207134934130200723107970516510910994739753258123925477325409987382228025045433545403783372894891666596545717295053915302491249631501962434336245491132570284031121782174825812066980648130710446879498954260524885890401072037351440418042677170220326319233742017144121387192011495780735925468798747715617255284487804205489718455232777395602868114344100223278185973230074078259015384418428660980927393215090949383793727142961042058849456697937527744632791819868139562730698365136658882748850643062765269784025105536332031310481764832175940852570410399570733075961356682144922761822399295333141943187653386504866121767401117463451742854809415838544972415001575002170753644399818595055810278306113146895407088302646899861394947483151593396965250289303138135889333572977206932245531785903130408143194513198285789356921980946408860668210226381362012138633195936604446074534991081109132581422140726974844624679579002205789953885156095913082257340334652881589797906209074817728726064283069780736678102595147088470307262562281713533173847361910645371768621987590706293745252581607759904952051999263108465403002092835226520243142878472548775350912724167868166502261929403107502354918091091045282134433887379432730966210639709577896607546255084021824747051139296499975935604775860037633879240914454303216602652118930100292991787607841558066048951210883592120244887028084826332726589328953532926134553887331414215371173206297444846881603975213285859189450284559393507488033814982753896078135699591633850332947172099029923870199617936621946789048984863906289546521513990537765497166689730302805180220073750204622210484734893306380849328632473828706168992329740580982808802162636757061283422307663753963287993544407200943826545806886619261054442249880552834140578838859078649770504581305166630581626821191738139900080709102842322962832039004495329902944445989404745857694131953862493732986773028600794465217714574293070450598079797477666529189660915024659283373797680245009243629918368059450982143784223809771138101524581410515402833636613771148402851612091519991574609496111416517951709910233751162253030128889971940188169172177534659233993084736178259793515871479756647417840300458883204787601793998545734698474581559900518717727157853342423415638851752011322584390201972376588321281755746131736020126165865467911828599745905158961439489903994024004076987125117521954841328095949939992103085540334040450061904282460459206612445410300263077617753338534296049571370588890921824261161690627131778812941388147962024208784887914424852534785319243908488186225457371723728534242536806561603712387239869652418840336692433728765236493048169942024210185356979937793911941852206342684833765018012889667590931362012043109617927769371808535760666144161494301279206753858058238959763838964387637098746280469155187235936398773419627389111759506820225398014382055958183710392284813846240827431710885713726345968471761299655163289524590576765237696212632630116954104911169336425806737019855241997398293361679979891807659291393443507924872995756815326838375756771566188136558742582866796784714804304726237527251148468417717611679250900374728683521627627624192997352877221617037629304523357737160687215076032963455483113714793415686564649939268554889453792191853601254319204978416560671131023879569444637947889394595047324739438874475221626410665674352936995313586258662821441758307397352595829994214201582217847212821116992413848038815261880279268837919188331540798592475037463320463166210751477591927715026648188978320507589420059662371352884430705806272415588054121319818134841722944437244759301893537809485943246967583157298257847200070412847576815713448638949279663520651399570593786088347436987988227332852673391854545040917637847494091354751926587463898163961407618120690957872473935037340164561043743603725725350432664272821871867078620328733945777528222821999581015024743082197765211562446296485170137650498522855407524472000753415794553748182153500736209552195859582617383285049100407118851498895438470764653763389145415017297424343770664894951449714061916877206226475469882574631017417521713689971615548017515065656872011790116402903159072757825095549896562431216530729683909423416227423992790071293634006243471523585107001440540155718993529985169721049803446142562373009450059902776406874227248817352542782507971532338753289742108170328937913846096411096729087883232613200163323870371552416515772501839554019121611560364049005438495840213985617212440767440023520863738510728441004720389613144933331687577001142244188894149161634898824270322014229785381608821456398839875615945994510859812097945955491293037017122081174591568750693205880830526647209399241912269455356170661600916956955219508365243008240279903110595621140635239993647368196981000957480032231672281507981891196244621675609993232943774871506888941269452660466237913676199792073113478672620496778012931019343818666169271551867477707782756826345691958478078969459779015922109286236570325224099586931477384121342904443530977705314309452545632866493955542182598300386989684309306544011684253048268731762043427635782699673062220256372292538614575406797966183545453299917141008321597984404856336438839273106969562956736181645265270312057691443643177842589202571080553790053110621528759157199330237697392935557207326980079885274085838442014810914774671947022329890407161250935817370120516968188590255035282472964880790450276357948446537053894776275195212710687069130226761896383978519479967464080428943036309145924845361915594388066858649624178600191527594442438655297382418627024789749044510274838936728090205127251753451080757632612276605280299758460834725853059726791548340388103572417525809290753488219220355028826792327239244595109902308552870507525408630033556373372189139124631317777027482548152651663474232543647457140971093027780015249353560790723164201393552721213992042106062921391538573967461121000003852787118676859092504969580842801975599558691408782347410433175554408157546956522149173401556967831292758033579596648611266394934827789287440246138277520000395013063621370790575568355407270080343852993751247787365906149978472379424385551705635177129156337866763248874039510861828471944637507034077630815050678750723195767156800303540857332480001079551475814031025174215401522984335950754916047093392355179509843378242200000624787656390456973367959704420114171218777931900360277336670122017180656870374649317177420454307593402582454409254097537463914685105927134899796697899051716600487700762999892480081138673519049345205234432553203510473881922679453786794341785498808745705615692258203350518049526685321065662451164668720755173947925146960655206940740408160640540370849328313451874477944284723731289635111002514168557916482454729652926825898704954793567440311648723449262804843644112497928283979346045680583592649035486282837879778385397156984122173580861693005041033726667185498575144877872482979893806312374468300023869308176578695656792814453616833953026579253194664141291920012847392031275614699310532549924366330425764350023244323633067896838593449293833568708182446113923064098698705398310694261472918971989146737961851858457307038988902265197388919402034781391168870420159117408233156736271965991591258166011021646827918713419126847032884209242893103435798206872738938868137987290482665200261001239201434278356387718700090902629966862972499676513757650212305877907699035263573967281300543301323489711437883078715628535111450575101167956605272526823389532513772417871927201257758795009004369621237025991784781101357053026836536448769275461794646119167869310970746168530044044099057797636102084224261139831641375098248018030609957673798545690025646507215038038171608312158802923423377043717299816673522872166756579804991931377225798107496375412454613826998409828995528624560096583551216608512151546296870427452604370278218754420773563560385015090098136025256750210424599923312195389122647239745794268200914487729205662420486209533118332425981717863501140091819087143268428160982189171914366582444623803987300466469655602957382275717537725590447385125592453218600252184657908590736106295147095654182568826340593902192321624061162729322095630304821008030832151403201977294426138052908774486156954722056670700977014991706642159847767668395905914840821005369472083097699560731991161125047221919789589618740104908103388070775450046650853673709504714071684144485797269543422050541678824703164456619864970945437445236369041036780438310101950577069633773291609345944362394990403889699283349436510683543694125197131905292390280526638165826811530137741567518855366222950414624353515438690478796595391259541650772181049000154487524970275511064352924331220078990515469957794146189608018287330847382783335577708407231133850379052979695737862829362880121439002389021974927043752638129487637266937018746152922492404826240809691994190423446166349347487963954803346915149238755174027341872399807925213529329164113687071768347883784139854429140909739495608914430530498215884960918729907684362359043668813520399421595854325483324730531191228904089699882832554638662156899626756857564097434535022613966370936600337364316685788931870870995906335999342559718624177211566681527286508824720405453143337466143969985153718004500018491436592698196033021791486604450720717895331922565390062991439306005921891624575617572623028878296921378554219545297170538410760591595646269559514445128296581539604207333730850248044441817039653927340779796715304750724407154321124183340584518169101471232410585942010043335775811850303816554605102948384999672683563246988525769046512960506880504172749145331111821179814331430207958229637335504909570790001132808725554740474590899957140750834670312712349651453253020199162373384953550136368045028327643933452727517331187391212691726532461350929795876461765346011584588148143845108744096835433917015394710775487930669464824584830122509138188219700166883509418397711955132420413334605842364864596456939768712305204274267116277471102399007122027921546271440568620890464995233613872960701025308161557623593651953984280454746037088339158677768419168079363072509960664586597437224670346331008694894989611062926307821652287517419384597331853303154867701700235279895328845616020818426888247318747408813535945837979484386090872779111891138603578388911872891424818855769835685112755739407193328232427033905707603204603746569819968211915386157369038164822815624167008546573435055175718915568369113276643703945089955012065684739247643356448396167813385944954414093818045599404071281815298053910393078286116836693801108376054862125283296404177041053447453559156036573680663612365907126955313113858405100102127973688372203862061734507786623698296846935168804049841509353972550015134208591654820154885563549829773347447374684008999726962863929732786971244444503273609879071237556741874685950005266660881620050208230942784309730581387677863536730506042181379099184560308640700107067750574014162461398103338221976538123614497757678051472419113383894037966439477426274404365777394441724278284726415547038218683685827701629398194557183081541569458985984537809532664276388048835748789925436295572866710627584277500614980590560587965021324700626514453677335150979112613279942451495334343440146327482492510195047904379034236214507625339877524812846575861242056703589289613224461367163833839596000070181085236730040149299466732172246911406529266936009926448812029003276157337729999505602201912315268424749343057590758194313301457922078431974770442238150984433007733474374065316087311183969317807193064472877957838342719901606944074238625080266761717479203959205026479459003127114823804658317773561445884380674128979291984174562740299264167303291114001789763196976093613857334053608516961801308371090331878188717240089678194080263899787598773915539857567583476016208493898477146870117815326119563124302975251861967555261287970811720217022350175519382329411989489191235707179141973948845018972290493888784489565012301517826630506227746461811809834216005481870138556198382491475239111855453589526968874051137131563906628408016376205738596412544554692203660016966884273199684221289486833159377560116331447105419010831240907422664497396983955929347763346178579723888895343653933086130205650933623964857511576520220486056516746315926532984785955837912295083258494457478327137909579668320306227563505195851742711189665100374037822759753606244794303054224281359118633573944499906427772582109526273348711390674227111205875397144509078352557347427629952208680262945923034932868548526926454119733847303783759322545834522741914573609287949216166092733006229098302121678323257421662973216069552200181582577086224483136333967490196241924753666554892255323367863495444300133925302866537196530776739656928149895782397846211522828173749722906227108826928666270156955067359295417164993148692111270562774677248947822598742771373346774486629302368208462272986560520258397807114136283604506084987113678329338564318802360982017730598296843509478077823859851387603862561950257039352986449161066747714096379968894053773305894025885050235935538783714054350649123974361909804316207106734333701866931107401438740453486594919545621778303931599249000931283774242438390291113772785708817379664260647125134271653339179907707460267487400056446640525619874644226316267504118728363321191300546741310135539786672023293062088193212113538641126120401695138588605880914322660596240958838312491039691997451651341554470878356823626165977763964569164223639184801592758316378045823704882521627358587757357824263548277598833504785690717935113051997344092119914134554610190648890786846555949098088197454941980415415541110179994372321184842529003690233668359380919069384274934503429521253255150438582180204536444328007479918665906201929144286955294160745902753103951850294471863369653293910116509667143563186840870178677304767534433041671851436960297034919024932669263075263036343155417153195323963892165157414389864228336509917675079325946995113778197609495086976703614326076367147990383952001397613641115650867085075910236065776818564443759479146807919447984137640895176819570252629800803025254927762996840951367760802246086378845122690457376931559044939404071558969970979400328152224639723722286647920081200366091713030609607501686220306758131582728476998847685765908606826444131336025695882035415463418529251399516832258634133405322560277933022619470193995860861715837911069812779770101854475245853802347709667295756750022971614788800881814793537530914857053908651704472817295951129291699662763296145591904071536621370950852526555630861656130486328198321967419421158527800949233736109385443574055253043411308879289799684144392390041212943330732142889844541995969895719526575219917612485763834243449087322134335641650832755307231417016838461460294033515439611933785370728393261259832457402395508791348893539272120899121588875002452049138020852298718285373375755054183094991338095526925784067827501394524938630589931851012365079033489401710013427168249217374354496786139431590063588466168388845157729345955266330769700573953411182940476114983379506838493565601919204131543610506528990002281446897146042067037748695215031596499654145396860652181821992123985619308608983446315471510612741234652268974730944457440131377010338474641107752162768636071393702276383190076519864030414818016798111187899220121950041123629326055149547521554862940336991322641259626860440865440329833050838416697374335115051395208564872252667511851879701300897172229690768369383794411658885833615720320656851793966180380712897935375834795727379859219240478419588584026477938300266823325156396365279053415973254805343792711651247128276337861617673221363452459758738445746736999511369571062162964844571674847451484233930185127650373711687232698238866242007126590053433558607273132335660648773393569104139176700627140679883341462502182624525841519214361563697545039564642354114305560023862078674503020730505925275097699243173394338017123005566467245853027306238130562352476778102819598250947394408402130354804140228292544247242322160398347495796241912745839917802312581595752541453553547703701992098924152851842928955686095714898702967255516915958613782357311065431690952317024538819256985225394442508999310739495020164065804292985786117899636365400322182656451535073816682664261548494304707958907774150213158187117971324104426952564814815056563895168308655398458996360936062780938416199427254653462458726247381927071804296201121223891499209205101631206499359645675483675905349078145109835312747360817676530803130225220671050440098863697600652159623157346454492146506103010932123404330778865773687641239355882915541085096059597526000204826556143707175019371314068331012878453197131138183043953568272163861224503295684821204109478716989625560902715324508045756859527602318687573534474781602893932233514794851659225318888232764520943347732905464006048089462659842251530549399224624383943684506131203252448575656787466141300177120949433578405742131639794635566332893828430084814518845489004627870847526022665111153190268565521424276716058212970570930110039213627771753532021661093144028219594899127598160865766683353062504471429025422089124923777575700779081133120343542077482056764615733150880808970694206553223584158812971165478263308370031662656041203926721072198008767451255762322698119450731530737302008758113166541568752235102749049264045226577552929173375362146032784140487930437231267917594668146146281616969070702245926226776141715326870316233206697899596348638707204380567379886804006153026991636750724939158539583776789718265251065823827814309524026507265086059702541983108377868409088221136739696358217314234672286245123175945626139942727009500707258340861531721797386710402696428736332601735011585274106427711317525481658765269943912340230073067078389034191164082040058843281745582002156755254611550250681916880222559487490857119426094097336864516687427164569619149920857261794260182227172609310408818941982341924438248177989864534743913957060324125099269369051219833451536416730699783674266886643139127554547215661794872163822657698202301431953310227142164580088767180620791876785591057588683358017750039288562062326260439533508560457247022952776933610262187048149685583683749949104757318631015208651414807968895182211856534898549005982843495620712174234047652765130077535605549390588802776620664732961675693134490817357862309562218723718891898155545617089181859171675055106350808251015910021609811025773247301754397691975725042924894591847186855210174609227279048152546790611812726639893118176629896140960988918203780733536603487500547112054466696533413175564700728860006183469984838899222421774250152899081406455174693513259296989703718832122194156881384236280126985909234815052982686401037586602488020937949058695399404126633992033356946959498752608762052173321065884768006696399092195301067750055505226253121741781782972493263368349129194062572125803433553312484599415982206859934977546690046799039684624194347971610638481798445445740266821354339034631077114123695267768573999711949519586152125515211717049078744467265227660827651416478984786333828377666806378750645832655199961916743902299618830454591859061882656384845765878378631904160472504360162664379120389123100890273526798578224910572205384665405961581128781451118550778730029014400064523070685562967728283687210167289761315363191133771151326015334734460975623900710559275019248801087206231756352163802825744414882241999246666100153057764063311809802734727375825352659436801631076937014170335436374482991546368719832229335183922939762652383714393023162307639552291582532618347433058089613581264519882225822578540733191757561823439956944596045286804048427077990126090075990926862281469832516593408047036445805988298077113912444016543569823314207306233139707908275506113012582489092003378990046613198821903063446619026964845739197995073146172934765568302896219100863454334184371084605937302407369891619536289372478469515682660684552753191174950148724957697451698200325129686098663416897613695507764578715935485564261660463166994931443182987297096108487667753863161754030195669275273169172383987176968976133783660068857151470096565218946749278547812902586949211612355392597110111967561159373086401511383055241261032268402730640821053129884988281312445347745030199118771807110424252782685858611202850632851052653570007107955951641611357009773086891323723672397451477991829255395505188463272830248676677589435229745508737892405048428354483746687430886240164831873249728055188803177433918399628879043049850053799455855097283577133183077338152662019220980073892000459665594426401352882971373074826203218329259406500450875492841022372400176977565868604925981826008286593132647609862309043490753502557245994058896942385731717798956173197934359107516161433732813772027541803477632415523706001553697916870301149577143224715327735745696561617851267062880153472581077543722018333695858304632349786623285546515851789103612657900124057855217945160851993661251010294853827897341002275079775793332272937331280571130340174688725038057115013826576842826459239789644158370104334702665277897518276174607818515248850642041727449266901634794989545263534665883318755857123346904165348154004428773883352192468128539886130017759586842702007697746330321024080868516664747516856781156900107252370848499169155783385403987836095779208938658874460989122543271555869267967514278649026753330522602855985586915223108226723399101106145666201464986910745213272239392066438932623549843222800193014113621644096868532669227546722736055782359513467315219167950877315915910434455856096611242554656936329162525313187635747437452318446699688349335732903042639262652126278305261908306261493120625251292186634310552507983787438182816516998580349966168582755134371556941340180518259356399508694409608200182064251858010544556453401861141187888112463185147048918690823769911853562354922219618366270044819980919844779032270371309940291412835764285574425075832982611362200880439353435821325563749459328551756401076565327562106528158083165362888758096384211917966093225346069265668235852571543789580984600044408321045015926114911402191068784353768482655786537338395277382431076330877808578015857019280100458780800442655968103723692617583423539010716029102377740130058628138826206791000359187035897469094478957619015304110021541354104316268385063930347500001966642579804949239660803789329527768333893724682679906617750923283703168125941755106744811039438922515088086743485831305477220661603824429160515818109058767516984695531284030448063306637922257348125462834315679017124073650531451401289583701505082836067352546718285649831453161071607361298961599388890901360557416420791391230817938839551116368999520201474752366827817052640027333923755963180056971431586342751528890203450136478427290846549423739006807857286206597874206538443006426302769244514954759829134797446191596311896723621849781478578987601716534618535915331890775123701293086396614870842316662291962992237155693778720438182037416984348387074471827733233786891089182080833062162336677849378416699781783317683504217025814678717893317945692362073245251335510621207895695326089468587147526223240522001013508645551577108055835008338936410478174806718244419078927026266111099825863824739766398809863650301400148136406136695191506123423721787080952893697698268151787800653830207737153209137435037934453978653710296478121368035296362056914795228141183800983481380914379752529347709100491890990635226571767667728695824889255060856476350461341464573935254565580099955565613609594737688742001859992029474161326696357256642531023313588440835435717990386294209446003109400812458769435867925420641537290070830526280159564853498533871290404691995157219161072217933512689126007140370262818266717259228260831586119984062558555929449387353452272361093803121285747613361360102530819024183611648826419492063316548754149524310271286314749616491753482570330718177433658531104194871879716983716920614118919904654345461716492880108898423302334065437599496649314770988689405230243965370145541238647601185530222484994229023705878061153072388072122296038148791959053894280365260346222085340673828182006314875542688014746768350465839306061536006792751308382132341746456770847839252138832515839634606916055971321680934114002019452400793832327964163313567018709270945324075956201935250642695980378569465042843027738844884718092060622184873084393620862096206648711055214936003310591930467031284979412882254999138200475653538188609106432228905724436831393815237114266949625676450310181733705386036771255031045000418627884969276436522766621321318038351172119423671138138900439614541613649805022646150460530812554423564430438369566746469781726664307803271382028958006839469253679514386189909017966828182691739097386736441206592567839287335309707576397243772957655926999333607012481457133707455205508452143054667861744907661120653584861402408838599753094311961728356602264163762392944781702224047569769867837798239640273610563130805530565580780359629287008740537888604491340592253769004698126794277401847216487618973946914714432175738769139905182136378288804054017385184438672450355165583416284191776668793957316292831763896279716658136366310391124281370913250987095839558669050351910712358134762660164157811996150067918691132445186452841925713318182139296416451319738987501697964450366427592313053008280558656465916465980631342323465118486840355303016227165168467754228975642020054844269325215050492421316136783812979666607573096125167139557720088794674028954815401755852702517277736229151360902490431883669500030935721650486605848867182134813979390348541252453993823274880990367001509889461429466232102997692696186426331669947564469032682234555530479354088317203019285456913313560856368975149486227086400341257898526718726565023677283117015101917691419120999201098496211395438703070802095521238535946184311081633167702476439008290003140569297280107574121222226820063174301220500066681457307019539061147449818474653783623891774474126927646432927405034595021865719127697012536874257559214910583305597606282747355829074905949402339813451584878008425997327341971714787965818348021057150066482033018252669447431091072079817959621121313437106531915050161105009160171326892963582137637067592775452221159547828378330718182254614331944129771648043374654013020769450631005593287732413341883090751631734844943033136341496076118294527536239436246113204736328741311350092557127361409096441569891315180762640569552791709477486126995989080681852902566136508856627648288634507687701746622568983316966679949164580985037832229194975708897998802576431555110294239320519325696600884436717583732478443637250004509471552198849623062327811162879841274028098129011888825949894861784925187428994506201841352107048749896267637889237670415741228792816305758671053033751175325845659923879393423201144088244479650776980171594534679196457977992099601670702900492368077000443432082842166037367759099731251319222953318891934911903029052291606347668780984880687679972351548289486960035910920748222155210795292939226421601884669156723214872011745990957094481901758809449859146819113243459872356876666502557615647274825333953372881938662134896293810043081009949929904393432014941669244851693768841888620390674913961566820900724215239030456884460548548037967759623395681910575732386167629053529785211413631125811224065692674517784987639796976918320051712774452629260274406350346552580667663024921066939752476151368252822732257680947116942952329750220294434607726850951724175238419116111079197245162231681839373111896481198750301765829665995865552340667531763050348614442772739217666061704647151006935586103071895605051399092316125085466293093835550174782176255751029912482083087269927193642234223005261419452773336273028504517966630178540443728042047138945317125211426890750032189456797886794549021867520428826087962550220403001383047826468395093889285747017624388830743145453905772015657899105225413595644863656812706621581728202825637465434793078573368307019090632595404040111400240760642062657240151943325798671523804101919786939328960580629510348647416670965503241648796365175952782110729821151457162903622495502570885584421180927063868346033251558125689347934371303206815364158882994392396952447722663305989262553859239218416674239290238565579966293404157274417722236185662677522179369688274505567565871331738580778798346631039904017477754736985516325715495081975533403519094969432017735911485049009297673994084541037618777874862434386570622926426820657803515522235707058953607182712986852417654508191295801537400503861370463995725334524237611088091032275623818612719569766488886491250337447556295863807743457666548772985780414154916415357672527830549752128740263038083599515253880197270366983155906093568345771576365727404441881510666258246812705372704793487507264435448906711099312382041332720671945145150774601186966811909475281300875017963207075074915524470092503727582405318248735913045269948774226012689755045831212669256653971059271260217399896244458384822606350190811108036278019647047815827535626344366791385461533178807564011207807498383853649413493566672140495775053893486363351544608078963278878127660363380809431866360404396034394034346953257125196512941698396226769268027930312925214234243111490536637651460314629850413646139299587568894043374258403460885978352325512526343496512246091776917751630088845945466274651995459369655598152688996089275017833961617958652089998509870037083636786298633308526885911428732679736612507217390546047950150762658271205336726092668342391935266853220916905938061235840662789273288463672426607920201490973319666411310491620528130693246981535590896874840176866259648030824857323182973377359002938194932537131065055526129550852181671815796184923396080067474341858506582686589902346781258782342594120013560967183389360014506697533920648297797090758091273728004476769463004554802108405551695049897722769956508797109507422643934282223889731316170532724397313588777556764752880627725945425756084468943644687204796435262421971443731942831104662512523479490914628897481380027131303631031130216344414642783858701505593522800551681477914240889105144394474565444592667093715910354193205545575771006103366327131018562383338003063544294879230647879971219796214908681405367282525042896682154955694701190983659224104293461827289244554387381197699093344484096041014187998346084523788427564194733780600943590223558780424708555111122747626529497021564518867463589665887262118065144374075018518254188952937248821583241644023665679737771871235914115143733085548132703154861329184911294861712473422673816373203851378128066201508637454345041270007389676246288259453780164478838211337205725888723200827102302929628328199429368234151212815219848878411384309240425922405204715201325499324291854290025183515303772093292626757166338253923553183436764353593395171323106841739833258338934083185478473550037786637072471514109686027170861260619501370121367389755874622169698732905726223787831011423240306390214933207626867958660586663458256476424252068593264932490281248817771301337917815456252167718692965783108041652897107229447000824276441199736658429895387237312160101660261697873620227586514250247110415553998829616864025733308380203294770085986513035227488443158931584081638119301539538925759965660011915861163364161524955996585227857682417690670853021865745421835747404303813622657208608466269446994777059060256036679909960526393489158925962510778269079211369149703631726345364012314121732786517847612139300803772175106420762459140263645933768955637161628384942266984459361578212814627319894884607200252076713859832025151520361882459058122453285615053136764530465510951238919539488340160427735094015223545183844095222661493546113255481416792937522316485585869996962381168008561730527820283207940384606049405367260758200518858696745876905280302780329654572603655076721875356972872548990791078250018096906929744860563909609813907504353084034108404348235746104856673634329118109188748031275322836082451152743714089797408077907509603792941534706459662459447429335846770981682380250620067350356604373680488023971264176317605193445342387683234696401425361106358728016402100527890708473454013058024119320576405307987048494529726054692408687683151362380859976462668790428553460641300932201286461986125247145697210018843461335897869923946103577824201634412147368542850378652526885101167118509095705298879312014184407140651408288595629025185070200944631735541523630884182569355763720550598767497832033366914442246889708078013399945433093424562961488283837299388601032359007256958349200615389509641535436612123227510854469302284237651412070132573043522849423139944574948381917553912099388471736474744624638212979175505760087682459928229300646037300904980739333768540580413609950811688658094720868436289320665920039656533328241915228010872574159499869777746194206438459882920919803842495635584424799565278805695980884471719416802244758171417966354542355039002097651764758894836499558320922746884847169890635458190112167317563873552009353850517989712217019035765332950478606638725669597743833677359273658067356925050094151893036334251613215409078999050529419843152955545256046569501434354142762214903473710352471233410965398147503830135402508576905306190277129999572776502192414736476575264132551448320838385189097834456561621220994492443908445948132016497918279950442364338460711963020349977165471179956094289716332265836094237025259616816086988711447437128078097788177720012771275389243148412832759010924359890854334100458905604519652654606352891023780570324721842240247501692292387149732125055627698502532353571941772909107115519170042115436394017965152830790111683895095031533024541095627598368373615743984092039432576384610758424069043855045757431435285381809031754778232680762418097343527756381188408963105561859526887287804975893214382918080998911046718221470043381303187194341377548485531522468941092943242658030091807595451544430815217748901995924256577186676567619705562689156434632455055023852781717412944131371664826245966871535585310618643521678833331655574206228789527903122402916720618745686899596155090597039863852077853996732542207776033558672763743603984264741536536221819331062212028285092430690165591294458427984733925245837585526469991044756682078655843884853859161261281281475334810654544851784619932937490810000048365114201226383860990325234755965738080753833498178522960880677279279505136232115525668993037332645118493510087501855178608313977143416575130052221486180610892830915005475195324788587542420956127603317964502867826412512156340014744918223021747490969577908898837083549160045159292812483116486363367852406951969130353053512805111586124593440843161802598140794068267543740403318508029612248653375200732355925465821173067990992763528897406868906318776701553062735694274094187639835499458748943775481645469892542878315969422543399895425327230165140074335901648809727594296785665529666045698445924116100174918346334219846397290566889050595482673439870652797179450588247678570962919055009473440041992456970701969113618677862996816229401324856093226563086579812673595753231444500974857271961200147983742441262756013694853661323107895782421375391302575567406143106105230254818675276549854955986519244423751255540338556682342259778808607771116543434730745515393567545844480349064976181037925990019599068711447854319452416796941186223141444612049163047924691507561508971498291138091871845142436598958569033461915262281296294150501918847425534575889602873050057253920359569349862769021476967136221682902171385094680161872527886179502162704279381953369607349827166170028721859668516251356941258251442812356641963456410575265044644110473953298680101614520087726009211941329868074911318631259725147730881460263517846625431711375897247412045016647790497222286899470492794273533725956729245085814189425125527611472279340085422823273771136215448371390456647398539184433376806169755673155236308416931537475356054104124441265558378764287053197962103721220399368968953637089374640472309808681853467677286056606777158948842780000962234945432279492320349951620610355843139413121736108359314037121378196579711570358092581490256661413388560320910795524858954793932834457627321616036945299018096558408228597505473876837089876958485756716343986229080202384559996379152736467470091393358415772891590435673270640470929886899532783428971067803901866690985922914136533562933972361819909099546869702715254403734724118242154094147419652701357975390867406455976836668550983931179978785168123827598154957623876886843692121500290477229446568959520621841980959388807287756711860383184535603314160713372956533869678826411469992780816991580576145308071891033646924991505301291587224922406170454642282788628736374184155808721487194802916277246067964918005313164505612794704930141811478725336537830552468736831362671606995123638369647233511881321585304065215534856859064088923262443006921900849053253993105276701300493199973524454535183017307175431917568933387468097257706530063934244346532427653673324153706439216868924597591137294417493221370126368662502495877900166086274436139341536725961214300880868099577504057211048740644826347924543623122062729378454042359364974777396276858099657988470875004590370044048813203986361394049610894776158158142522217568972789636585992502496840068290405338931158750888907560409038754768768140764599556038760066388026588357448992746454332590061681753992016808400310287761867106811844366641813946315164712840668085573861463037924537738317735142621135575093605658576286510243588176736048883217710615330544539918374603368558245365012076107531701538725387291611280100254328298316158843064062301253608138506526437457088668533247455704683369430573114858434914374626607982914969084963082919544574900440354054019935349349145749129711769660453482674736454761879989388342460450837435635827725702143335088530461088080432975832247198981924778693151752173757902329738616388168718661890081821726572273747327553249441593372695980666225505813575290330116712521988338948719487193531712535697149811893116849076696769169511312786754714827647057187753386982543725984268706045069166789381662375417707020712482456654941762414607403296503723648529993055502614101921982637794290927627381049523318425159696062097931642811726333350217051412434642715924246573846431879869528341237450006419488973161088170527883066136361602078792512524053505754999378570627439686603489938721168961079883959632199669251263792026765205569747157237963031320900780301170579900448907622370924488139829032308014438245729908579843828363379780943823688108582462352430166874611634928128425838091682806829190872025490342560817812560202673878582268647406529524095734346183966602942004020500060783044063702152087727129926814444064785286846574305630708171348672277673810502629417979714039969522771775478940279682161148945935839392661709911574200421222003015701455748713906975405418178302069146320183112291754283824139248015219633355736079593736997354691656520172051409632379717947513090539624282141361434938291178357287299732272775921848348075881448860543904253879333996746387030495700026146233218636612030544359511860430694930616576635739259125180465961070662616681345418880108001240529516255749027062986217683034901750617998636525219662559000493836930734869211349997877086143980970801496128318247083252466165431624667587870167611444468193229415346755249357725936220877464216450857799622219330170675369060486362281629815855704798727170480346545638169380366379154919492189646813657498047887783646081249587547389036061979710095657751352851142612228406722661327882763079005042602251095208372112402984629355340606016027050562415038777740105523407536535767491176652535331873108560597091074843681334540032878025781874961829265503969178158897164413240322059193580680246991574321951560918896059584397711202680434163642425348933820245437489091881721331913096176601948310761222698387336483478609139589616507310130286606069897522549995597284542526505742554062614216982508880371793387714298751763802639071634659967625776007046690702572669953513244151162371971283947553835572977778133910225619146692043435658871867005929157048758536112767644431261200737967976927848840938271639197229041069562056696979423967515430884777495771210244612898028284538909697387432104028910376275616340673556735838977440377144436243215998143914248482154812076885493674853227700303408791959612298036778691904687820455925016560581666402494919626621752497207257703135243563057353909740563077468382234700398651552390497796445682850897275108913051227677060312161441712678648780319058933881448188676781113323165113445759857017104541374899245443917315401956201948964064826590726578600614736494765949809734798503469722084262130735288143399932624531916443182642568328508506626086499878478228598165889727290982969866872254608668433180373975017723639587822769563441725708065983636789659295082848756081216228873002333740928891018849777873772285849464020143426147779931729267535364314080016630653245086404278801436673052614180582561713029092183572951250293865440089201077382051498556195459911568975293009439806374999297184293482141831592140790873895956291737173158374157113693555893727510701673006610922143462224513710510220750569527081338721188451661850138666280918034513463356486161257316556633707648736035879266241126144663665991782019105195126154578524874103830665240174728779536194478852116454082480451193212017308001299656043622562622299112538808921562559772284633306677878626443666936573498667798843536981903469652115481298338652368153809283579530025562149178815027080980161570240164075165200594393542390548687700734964269466555264155877749274045726681024338263554290362852867282756605109453684042537891619112365470353724411611466897619526568722576305201861000901059489791412920945149776219970863736017692296091989455337209368080445647893579360416622853409048331242424139453819488516220928200146687223678495520257385220248800584458779204340624759754174076122568876763339835147433093694938738908330035641774573331701080699938121049090783718782882293833756600470634686985871790742362770546730842436458358319679648852376526199773743668089006780463654982921747769368622927008608789587895801145659096783126475739543602506736310997312838593407654414764283902587675081163973200826709622656066092661429679900103728419906940820002754018073779388032764870642465190351126089945779397183137558312651472472429737521833761534972132151413543468886459099263122587786363632724209341680060821704884372463399843044835619865498703362330035398245985039126033373235422004685798162770146765843059725182845214625362815346981614137319439722387484683780628961318862028937907370528099298895695746357150124291104634120772521006749599194194482114814068287068780428484227726182841095615366589640326487304374471335535810528262383151676412832228340046334079019226267890649807147844976342463433049500081810950942810512378066521128990426483902909188521655887003747565763447407547100869030504090482580903701933871508422646023204758277971975454780772738290068438206620018947647084642782371015395511998194874015207062191326319275202457307359083247927850149000027442353536068026027785449752376621191120579657767479741414136256808721317984822298307806853324594045605255141159833658087848739329159158125150608944987593426677642329201091704795864222094025942931423537173017788814747328444569098029229351941418288712905276161701547102928902823573108361698495316330482360664137399654068480002153622413886681269708852114192457870847990517947733647184027802318219455625082083195810018807401012387095511333427790423059773528806516150834049559667945205025307809535576756489911223161315693731420433431850802307709153877709573854238134818997998683911841917313331070757685200403347798582949303357265654169112023759158121948701316941136017245958540449106911796833693378152858244393319628217513554279432867916019727055508311905856025015705517528698355680627752379857111273660995682946937019322437006897071041168543551510147106323199419246156800115084603032255961242605610964646589197318083531276458378601439802134638554927371691225890367645941004532235087044866164769359817325061527132380989663923444783580013974385583150869405494235142345180282190768603584528224163615763672652324707122360846843853965032130481824280533080145821423494612426563779421558745763775625224453305255867682387781609737369923144651577891434550432147459488295604531412644004480800143619912221767541008782398654787774736909390829084208310012693350206562200548643887285684315915228912238063991745664713860348074834716089428798917222996998083392232362531981937767748562148161423379807812323407843029486040004478905563018535043192155496612870045653332084325877747863852044135005839899315227440473005450000917516988866276119435688155472746099560896391818429083147884000499228252935638381200622350414103722462684165566767426353833055567929349061905133871113263726291999301641831116583254978297589539518390972223341434742934893904780898628165535854273272277766402086726322472394671897788513869493003819749111039390319766582766712212521785142026639814138826915533592957394193547423385481360836208965728647259343643374368803843575739843065922454988194749173956800891064811711691526420501845388497541841535778783992064855184892035449448188073862658750136850573556200426491000690403466005824294960559998991843928580602987590542839929153506851947638302857367474018261884975651490245014384948114296278089778891517554565515979041678115524800011970498575231151948911847469773149258225654490069031674086758166338652061230952413202516661469359925279563043184417232351894327624283719058574200284831339756301791771706127687288130474897654659117493172311998422460082497498269030266818265810140861876809030671333647019116252275597731205939989232187970798248764199920977267523261292642652467922514708037634688427136510300699966834118305213413961099508961142982183775783967118349228515238802101367455879841163124687486190822350119929132099156167081609799968098586462893800607292160817356604651140129132619631144235250813186745221601804816701884832919193587131336282021212744553698852022054540661364815302447453161205780298701379141358159227958973751845143253444853319421402822726106222040914168498632421462386335631586831855156210661700363791884230944472007566080282958599037926785263041193201352755671738795725589481865978241468983312843589671412976421516414997985346645164829824553661111389013809465480592249630033688031551839214063279523122594945505251212373978559751503565927384346800860052486730771188329566617565579414076375472853313579151952777590864204965198079697851719314184471799259404553555597971616287151516134018815126479515907800723470432839504964971566501880509161419860521128477591805674708383935484211158056288870753920520718215915459558114060187341528863749885219404040551015644353462358026022182324287762287255266197267514143307525141321121088522367552321521541181111281688764363766873878879309976464642124856768867140134202968297704413343963526295505363507454316797080819761308507748508708218540948239639946749253405169025003844141826785259804646377061943577472421614759660572728404025386903437657063129574153235815343513854249384162455006766225024290944973368120436281263731085352074155296641115429431879222592506197126044642045607693278283704342380048565727435490178154479257539948017124043411136479893578693128884963868359149849596100324219783462319949957680941577424229645774588836218352048806429771084326712900745854164940096533485287714087883442638094529344268156891713751197336129272935414217414071456534649479944038760749210038179832917917445120291975662110401442149063745591963179141466542116939720606679115199054557788935832829389897372710078262535235745292879229342726922248245124672119539077105094662583356970484879458123456930664160124799359856483179668415438440796737768542056492830220616491318108692239903020207231296450065241906507496990467764120068107638938521438594895319926565038283185155743747188036237607009427800266994353451840216352140799023664636442746923259111718449855952928051329000318162740314977295612977400352328154407862121632488543751843978800139144424146621586042250067495769196052880877289351326255005068003194288715057717128589599663648697615703974870859625139967522490984399416307220617549782581800456457517017277257448756443760649205933843773148192990278638664965966890375213560124506911818401096496488466195049203786719642327394503453461935043612865022143560913103155394593653726030045090031999885550091518320001005278817012749454163530093274548037227814191329574125726615750330162687337725325718670958817641824393354765811182021387818688565540276677883110935049197160302761325543701295268557292221352163225775953109336841188153773002106036419097127572715562977310788150327122091252101225390094892604420085718641664621651217240964337602897783092530948663665898661841052194368998278317530885320470156296501319220803715499417107142206879789967123890670817063585001196566588809944564586381139298560394449756863330854621384051203482429813616698723090877252806398503162001410068545047713026829864374108751710402923070087219843513669861454548093384170333532242728205797507076925386759947278490942700902078108697484734070520900517003833755573522848121888677199354688228275649268007074481775738884275442726070020916443318808454690717637438749238784565781099889783171615562078407954291597043161962381407011234291988185606506151470916184065970521166290390959458259545127353552594780824781234317571764349253933932383842824753906184090572874700795184633721983179750392847827728717327825836403691338192772589580537418693712118294249598170974543046184674167542139332912060191082143369330280455348232959115591883170061459281878808417362525915978553797324792361801734836575513226204978319295560901237766497763461362325076593303537489911657111680368293489036033856255603770251148590111349088885505046674316996754781597206729375953451216312507001175084207050087504279179825742622270206630771110018109038290273351386794347944007168969039423415470850730254585962949018039467272223910271791390271860763574126888767918727581094783866853258813804516785637387854941862174032857651207024677754631243184087406383744775812153236795974983013936791961745018224162916006367290151563459929225762630800999239815930987470016059189046618881766044279355706611139738638797322284031554182200822647022506586202275654830780736443325818090973639814837432122483550810611648030754310819839496554366116712217450944125623247229747652669586165642821030491136941535536990035358376467472051364440057634305615057171980098956394061094255408642009189325202409349997831349686571377108942880953565761506769042232472334173166872807472279220175716521837740399623000479514796732760761546766017074479647005845167830945562354924328569087185739605027632154861993127884344650712056737333948006513872292339813415769852832605489160220200724598244092678255155663802949349520545479987809764508763376924285328249828531341056104955342681916755788815714292148217791141814230151930955869522816596809751635948771317721638169596150650894880226916805243342857720959615947605911813910817356845873624696249345024723813845870983807870109765290742490947735680813394243421577348298495336185776096469829001300675768207549452322852094448506086316613267988550906923986603037689547959082237385337866683295026233287443582203528413481391670834561041809451371897777189792469801239906479815845716136159065321815914044415856615037344405547267537016074179889968064529151147627840045501698796332731070097329258532743091718236785618575918900873887237278511987983888771490261169984493791659125579196157777393913280696954930541332651776610200466023021755478453481408929085323391245568194691491247782300517965145767918431070402100868708636784377478668178076568470282310678386999255968580180134484710650107806603212333881038628435843575137911719119791805151130997018550935734008949669875456857136333524949036841523631948649485921270743638377879271750954102532096825829256010049100130268967261680473098817245941100330242118521571618903082000531160061174692660070665185535994139035102163609547214396894673291770590117441254353989711023670234856523828436133015241336448126128449553026710197623516942328325165634482674832229666757043075577335745746075578062828054821640302178327643810429589913286761657136750324567305766313079769570263422883854626234156373037609302399062598544225709588929880718297426704818068298097997689006440961467115469934604135146810706853071224800432538009501657921715086640885008050057414599808239356688081920600817227091411845091289276166261869746261866847764996247694296000790247355733767279700243455425487702707641634483272977954630809751000429691066680864701307364737413970348357706858685849562198976781836734152341139560561433662349134590933104736661731413955187737163358194089877898565059530485647533165344603590965580491429079031592420067398831741020372366318983978150276386123359486070764902781807031277711235007946407560976127576371525712233889569196630851940593543541159178242720019246817769386629942433032136511072414019618147599640161243279907420912762812013753643464964929795786740813028030327340141008941116595891569777817096838458534640451961008173106105423759384623281333622388633275374669411319753371153111658418850854550730458392390645158811941408445686168765253470257491109265159331895220127940079519135656787031699916696750941448808958364866612198594051281518762710618172394014435582658780137754745249808150420656874079562273033427991896549692309077229673411990987899783889768963351591335074252137621758268110135925554899618992554468120452726194196831987636392670062962870781518875917319617692641760244539937506399608186933293096689461337815236723932575599899562293004922773530415251167387254512652371087387436622941977912773112765407354221720606399752463999082806003277960965713870787424271670423411491828014592370331232001070337535572618435382095461342828761240279281152439935208436068137098945312459805640051251894776950915043996716782670869044304997894654785806031332188742998399503095669838624443071011154661649112358291233600163978261384544798750224199280723543363196546511055418257818553411155508111851036619304719022953584209567887589144143506812668872761444306912814219408417767805610654874588147965495843983634973343360439988856555761253813264294511858235697829622173663975783877982372902388029603441570002469761272278383711075933576503029791018443805380016399559255569368876824103423494990030563758104912710930785218919995546277069830487204579805981255114751388309673085838537507746741316082455518143570210727342916518436966569400143756562398677461828383776142023725842070264137944051838126588656397147035683501965371816685318016348383675517753243601185086710476230610634572995127960474281485728329537853556148170708830510457163209343693679128363176562527968532229284896138555012900541570678900249555094223579272220317364433991708200791117615057011033090053097114360368507885999963081101161658388992439759451986381578561838682074822176005404014810604300944471497972128464929409766791001680613821917028220862738372825416297400871642175368838984351786829742016717117440635058753873352341398899148433446904373339935490682951487388791249457116020004950782145199156186690513262403087143357193581046095986737698576997880131604212698319491330054985467167233482704421695399062864314889021968697170712142252510056705774550143938593543976172708082506712797081438905052048320444176915748776028136902609733524904663181348912607246044552382966222584222586785511392993674047789678258850833705556898142993873932587822168567175152040364224966992499309026590555445096068732792849595526790357396891342193466677145186546883030089427860570369169605404528675320032324945105270885547924169164009029383748461003161488479983321191085750728371250651090820981487526466033479718962090012980528457905899238377226581063159595320281634420754455233103392463493685312154465993780924583848405445223006903473946784674109812109603938216599643159419438096223160674664156416063749694932635479014311888910252876634942676925306901107053043836667411252920282188288700091246223536057879202312390777745930677418843516695709333142327306285006742467498644725183585068114752723579894739188728670163382318784303760032899301689201030004662356703112633741161887084351291843896838310259644973044782978841859734265277459355719042328683668558730811230080264759332169930999917395496870214053393048395175653117843386027103518710634133594503289573421257004290089127359795950018234718075385116046729664086683344485956469087677809256624794284156624118553089996903143366769374546110855503235643683883356040038530775066573937498145018677758091576172765533858712919245623117479605227394306792425750821739585433306157175821691799460654338122236532552930041262238378479051350866747381400421226529456023899836567223108453464673517035390974277624462139665178810774413493972373047750641005630387528858757743952763115299964775131628439412996298316645939841998797974665926446622580112220184334082632162097362823347068525711205623832979240312489478252415400277824206214945417145464455126788398056854075342256616637082096414916931452356720804848853488746516888097429435597758704159968404996190521447686460515338991169276983383636875420448596588108713711163751054168549961828808912211057614965674805495978500564675756751660304002409744668847546264300800644112055341608454868381712643958966321345692380389627192718105792870288847709313871141395816272468584699794946928289074126845669065984019227003648221500173251988858579419643211835661193133987626607767145890503433373737190413791027776877450126112086209274699227403828441993714128524035258050858065544951942446320317724789556850350238927329979581611066830842439359507385177868160193432411412944856209058304614045285873182352832266720296497037522067105931015490731669401556458476362562549201529295884172844468593422172997780689717564413235694512136804777659381724744025279010235529710384586054557125004471879122263559638808404797214889036197201467146748586018469110524196182078162758945790485487906431745776747033583928865405726052706767414811910220512736602039742696380180325896068266987075951510638541553870062824329792146669632393430081481673656606081410547124565014035423278313703199509294461234887709817241869440282051126132264095046740386220646664112589486769958735077036331606560583875589120049608095398711246099349674589467535982368657727666038413132292120723295195992126408236047047357636692171353310133063329690975300116777619443061693081877877882182105685055854488320221805944467354400260889554380873638322450809103902961957124330485497423420885630111785115993655265451917618300209538517106494157370088011425072475518154890789376806494477309014188954534171487944876964875742208112476804438115863757583922334252098442817917282590271230233679432179567692867829236937469062222556176340988490934644748178121791563509641036510095425445558523754009913578893176469733947681832723050811242771085276980857628191603902206491129891558419613748199643305905732990733233007420677196098021824412726391201975246689324152947866607408634597207349711911635006278893805041099652714322634327359010883877479984745213984148600381048628336682599012606630460426499392073509896607344964213245390102656716774211172044240796723633945092264804948378804635340354836388796679974430477616345020269739912002811022212749369833908485569505638173941513186917386274889193629937599614571931807138041120508962136852675181407048748392043784406755300008506209183116231435377982793472243435801393085972433248334590180834337151973268181429741367984809541322484699680922486184211243677862007302094619209614299431165743440348703093943802895970789954110994355283671581377940960520355166538293640529903089301422853616199738410757220170033707684408312036275725635203479025360460991444251054876929346546070937098651093387049866457087781681258412340784741288952241738776264980539988411363960265622557861477777349382433298152104880655216564282835613842455280123504636646288872612773861752119696299231208444667919975970807345462874855826971984489911160673424535388246517251546224184558078142009076711316117982669296807427270060105844203000470980179881710357828760783470614855754862016040735037402643430136549517526985168342988745593528604799451544795297264249475114748406353737700848701420964107495988115295034412148917329770895446835697098460798342836901859595365386840950914087412977578973643106100960516974101868022023471912107554716534753681487898922388209578879579997991458011085283034880198437757969576087253809684516041188375600788194217460214497591901652846598150836199635412509923486367935206248756245048895333220955031862052737165423918648372436076598639953109801062184619616209327589503726059739458536598387454248610098290142475424894200550426282525760021640802459257568452777420001105822121101467403723507524402299768537428019613006927156837111180277557053727721974686829063689830682406658640122829947911761105387139424122794678982720298104977936564965093735992051471834210838389322906043011442357100528162961772124337715047764970373226225362695946517593157121260676283488219600367863058318961001551391377811874505379813458625364293537045780084336913786944482517328418195024456890627166966172081354025225483661118954561867528477870180402742445454057961853528270327551118604203138024122034322697189690635298762259480728353058842054602588483485885492440266423647636103407985752365821777293878328316815176214009842011467352439065061464695382770651624151602307642217886617423510997231862787882467192479423190028371613647787603629610451774774274212406103380254340819246570737928374940029936031475457196104545942837151172972833898726469438334827323935876144867815514359956436150834969145505548434931612938743262126606897802218850190421588523371163406876258585629137127291931586252180300867672156228175988440447807409679624341094469500007451751652527912544591843762694858776801200553220449977554914110761863939385666767214972203174749769498290213678242197327835641330706993571506534914905378532178547248808769130474112666727045430279621045288251126899546715322827638559242020671241478263054508459327556889798243993689773541900050104771687700234917457568813951472670745524427624459766602002626264814263246813584964892440711127070570453756338129622644621022948892925307704799169924963747238304509091234823291248041051141136640342273768377956599029355836913574507780957797664365604762811978455426281149657511834733167365616659406191869047718503874085363429163816189243864280090553200855489150068552730377508213557745851891873965107210252925211610820554491654936069284016716481218451812365152478832861500617257092159055173167597634829975488957856172167633651688103069203342585988339084019105107732605236103112336692571175070695591402004691982174468354200369572012359616770069861447092033454769246127276692168727601872170301275436491796063834350074069232567810350597548190318752604363258861149077510813570563839726830505139258344235879409653768727933381018392832959767914855012550900708954844814604034040080373666446485168795436608968017108071233830288719273108779422377141321036805199477993810729409955545377617693619186284180592883846956064301816082399536509955734137488830363598645161700057178297992139844982038922760743507544390891874195057099929832451905984602998446813723986842087553516203615903365897976869463290133369223222421693359435449967116155655327575853328874950627904303869293814109110832883616037417783805171798105644560893705573438637148214629161073313677212614138759716586029071288851695012227885219566273631914675252677182769278629555630888107216083712179231177976508329241466157230239349990939930717844277189862306328638493936924510289091279398092003064927336049382174348954883886081429263585874717779351647481989490318264429508470370790757709917434542452508518056463519337850539544644769833832647155455633585373706245175196285147332498852586855802727231816881408163544160690355353551482317161275115222695276929684004876701231609963434089085671544141116494494952705215364949894816609078913438981620391334982976172398802765717703471221965925655710245274437474036328923411518326698574970439728865920221337923610483697779194416782050140759432980802037060514301435540767462935166195304381087078676043970551089116060730492798926157720156975152795061575743656809273958249493994620271756315300983838621680629165079026645073428992402852658857338067058706445449239853690752994505101669482053079823034364785978334524323638184353507005974451063947517986829508552814555582826702373427433974274858094718945381661397817234924582847947515691234935311746355501565551200037664621677416890028320799203333829726562903605135192454656871792031756006014763697733107526877325569936643660839490998385834843653528949539800026947399733274032443229406618001181726876187648479627374231689532924347206278941409504048944348290031100751817723732988213076939281218385643601128922606784169377649654413889426224764601807769435338466815821350780416082987335977324665621208604202038513649765135170748450896359111076848617241523532373778285239789531272063371363173294047112359531482060945600274612530820063013124824905232070712871085852342001515818179025233489274416374561688575325328494356601704331768072357955125721253572745729365408856292712858973368777345646112775554228386337327768658141887830632558323367319844297077029670111525275686050950442934322042863274018324079581733350930918360488860017178413055427491554740343592696819852314517799972108692137432204325730767926906798148851100852820476334707775062793250557587514266117727165172502447031621444817246412645000256935814465110101945601810175366553049806849915148317764378531025310849710552376312850817519843795531641099317042553813770702840118946565444828758736646975610568084645407000434771302789130464813281753149926103143669271327255875402443957257864441835277665360257211422688802816103315957570026139971735103139719125073072264582523206306639098311139838722144498215281479489694811327420414945711708535756161374689587121022728223532486819523434919848870901286391936795668859242689519728701482941837360965389310621868819584426805333197137536575430142001630709411411517120520746297568748755410136171425953477069569446736630743453907345557076220583517239617152791979109843131959840459626185788446879928701608302411122564463401417910183398977039715022388180838941636718558511553940854390477650533719639749683368512321070674160165778246308486355635002053083970959801503601895091991327341113545205371513954312270337693395856703259118947031565878688878502735402926247853146560566028071521483199267682434292506299778650521583315913404391546681703173355048923082828089207698838777377187318864854413042328078100198508181676773254259319270117324993677820504306987601118152035501100150013925761124801348755722531940372405858647816440603127006337122222260150112058741277111496938826445830768962300790495965322496502881961007122069000681424419192342894817020602064158917391356372316993778268202806763629988136463340748783843877231164417524468905835933989233266621277259893636125006067019359002707811676381624551266003022893172171044369301731770738961438910353602036354756123030767140916857616077656051251209930518400064129853966789363223523281006662883926130272526110661158409716324141495952887847959633305267329748755890103998755255318423343990003818171034145522395525326848759908350282895025097149495640724715358345420568762844267269913432493766082715780160636898199853565182838987980718917118966709530923818948656634270210038512260116695094204233603111340152904841094389668462045200982267229591453757157032470590248531781340413715061768739320439120011665009549294680625417427987415649797965376472024263533617338618555419434345624892026584971281569495526003735632828715959196291342616157151127733987744190423659004481063239974574158693083953078857455096159943450167935367320084270606115257226247472286959192818020663683366635438568018586265273560030453985851893796770382890749768876028406148219709258816797452193395366062929295161643151037859657562901332024802379152593827195671761835906589259637754746705192386099423438133422233803350709297506982695081400977326426752960715909842069163910749940291566898889329421389301996022253305050754784606904792303896222064842726039400067224466791250134453628059861511189426898269962108161147332929671062264674806832858180478599723677867938103274404700912089877571104282183942900850311051353281068705303192277635627900289177289966134841038011807298870150861702984087790624818794901198309281805582968790266382131338716825131055787387238776346040191933366972897032628919345454574023328057171622464881736016747727332058884687540360873768787750989723625324703543197933271879983347997940923335064581980320932410741570803827200863127621300501557237306766327573613681587142189214210866241227873019813401902083354775828979645714167953820273215270308089093257756921972096061844542237752913259253991118644210197486558695811669266426367722368056603145380792779477036884884993228291312665215281835724102049135867764234010676635385758129861320028542468384967860296058551276603081689054275241820136872024642675600545238409243726219158039515424326965538571847853153807899261064397733408761874776011163915863700287931315879240400546792204487146110718292967109606280353213737288792440511628632840826293767813742289332112295113067540603751822708258425873928252822454360555038402939623183226732590014123680805698622364443750242712407990397267645530512087753889625796549541463146839201132284823214522551097287822048140480855965983645996582472572259172117900646184934255703306324162147807108770891010278466696756620482180335698611940431587361025097495755742886988667387790997701827535809081737641352013936083268897577045479160971462951171664932484772612054795261092540620966530907576310609242345263498562480715896678266991674295831297906237778186047630754835875347973833622613650968129404968982925752538351287788500275249496369400116078777134504475420661917885363821788491809158012704156242188413057534164805649688939059509220107378702094262005653145515847435925683460717590825480160903660722567142187265474990422013019836448958276321667510057198009172666929438945781547070309895614152734451145718510073941591298397501828951744666390034744471054494312601969793386178439192857175351752689519669222992323386247515328949576341278093160721752263853557934239005672916631154505747106028117934466659279111905691349123816104797901941790666956716015626580730363241964714573330528872116609842913412863085197319064101969208434346533480272941726104692318785482386240332035408471950367178914672645631385206518105650755178751648202365832541054822746979109666137415040467620229389376968850205142487579411297013512664314132126178718505901306063288108428391486828069625437371942255000202049750421449132984321490426848192603869437614713618955558288223347123876822348796038695423164851235874972315338792868130261254631526722413975634094289153201298756306858559785398099829635427815275045896094241666646031436953532078957496227427839006433385027637213507521882961796128724311666915271757490902022259981273858400342189989742803768197204781122395670465279770276516471466778142956900246285450197470164441942947692976201509093418472844032928882830800353375304636840450092199920924978975938830877193295414486711790429157354382797517503198788957505723072441341292143939974374178983797321223054499664148592974120912301525252954280914659256862752383305477963038049596453122655088365905361315072960838644835998273300468201118919331648996748233564022767741839098851463328396449020583416740113979483965081637439059471627157660409362955614394103439254864829699441327212859487964401641581184952342421873082854388019911211889959432980420068072934809377493928292001038176658624955790905324318455504699547795271882826861824278280759976417623149747313534317539614249161303795367876749878156527620755747817213253678356808243107500447390395446465305225652306211746394652364786810030585834180412308718903900275910377086702621644090802903896435577119057240229115614100352890084587344955095713965532750415272632071162953473825098635649252992310196410796621710427302487305991171872929185724257972854705665190158485660942728458579168795688449612194067380892134223381617798197895295800613254392797057849461380716047392007971684825800194986394903108406984700040509474088439745390853475292378718337104062638055576467690489251868270206426673452509357364519370128761910269081302285155164852399492137126489221267075020910356052696664550090712403062823948749726212700097625946067584963313161590101792060551953723685969220096543950294434646629523239554772774481736774183860226054736590434439181946430364303977318725914432975041886005964009568853720139743893797961332883427692935293348488853146703659015988914028477580390745005666666649047083463198408704317574729701403725802804052652545339752529946956555642312529437096264647274441980014113599123489079822608517351540070746731204489408817855932103829857826481889798514798087366604802101314707804660522679158043624980430490923113263478437519662876170144365182376950466738955266640442457678083989602848581168869781981001347018624222453022681343373386688748439471034730543513294476006672357860282488756973247132974889732639792009033501829236324279100286735559381123420376233838399232585902313720014435542978331554535979021687749621136702275343025699757783555556660989813823210455123335026346501520608910659793130105345580581735561161940256893157640822207588634792598443959194995769697923645829141219519620691309349310044491542533065964849501932124365639258993910488922228384312961277176860659188838580234109629966221515299159029269882561209618150092268014220138700259068314181082421429350312283526366353839185588273388604350127280421467208290765406199525551380252156160125480459223044638813382465929289901010440977741035579022557216037089459038628484525699659709148956425284816014974399875347641402263208010281329932006343707661125476252220868703195958826713241278117697698365247239345966880634736910287476543396594745864045940604810558831812933098893982230394111095245981256139902692447819810311777266643246206414405285844356252409058782773343418588551727090299842264617545945124320671801882397370158653798037546433340153769913763826265028799466116832801953112605452730373174985134424195702235792437867088618265028645529481625952550335977140614551423644820422930195480681910124832105626165845952568281824925796598708677138285908162168430543436105098596222457103248215400409702378208370422287211347827496021322576518997970553207265916669168966743255957364489421234384719772623324713850573841762453775336508319867841861415446144925995272757487450606307898529038566805162565143817158101202615207811857399775294071012062113479988596875438984561058163456688724770166632602039714113185102267765963034062641697100047117905097350293018636008159421484146386480698673975232965724024656084932303014557501669615802638459847474231420409601085439212796898021559703524331896669849018008912633472224235571426118153925112792842547257720571320377594195953806605531686072689420875527236848853000200927381258957814530782763805561626989429772049667272690968965505723261200129386777534019895698749817606506537782953478186253186241600631663512988770441907835226963210454803075982195362333227004052197633890495106557279040684214771413923424471424782923996968388851144083746945469996767708375602949444130106155204667276184322601696403232083680734895387881430734370015617706146343563651286013791496220999267079164705977246576557450681576543220642442816799867531328397387595156898669175517763006521810395667644632722011112730957301148664734048782890336223763034242180943665672430162583924391793975373531485008113160667500240840208572429693481532312499166498010361218661019330526130045138380021589965584129045433961152698402338981411507355531242643309682409103261205226461448795589567079862488497130530047424060995307624424110557278053813898610154091033922812289278795090152683229798658620369558872710187143591813729203689359200182978914924511734893831133046735088571358604663132899049727634862643656497051594869959911775404254928280457316132815700642281736549730289788413912205851480384312731137084722225576686248777199376194190733748723150194780906023283513053443499962353370862497612548705690661879012150978692051202840033628687974208594726967340819947132963732833982077256604027685279215588829708759207179669184883270233287290442586888667281457846823527390459498975901666702124646718088636752464429614756167067507326697244309012055730019450877414612756157970802949474232446255967777830372684937213897877691460873259334389462482785457331180743384386475094537472212059784640013637032002364658312975707713412482547057579203903308083594717054163534052305037232929069316370890217839507707730542211013618418934732429873391465605414735012290681879900827126327810408640872984378426998832211417068282823877100300897500399870721405225591104266476480407357080981364931497412287499862244306408743841204805894732074459814532499139322679824726033859659764445303851270931740183870419236726949854117903229750118500288022090844825706114654116910018227428269925143436461796393187892532377732019599685801256916409186654840204947840373249156561311838032610601921325816156698209642861173370439809639786171973716226247155040066520215570423729106873625567709218241499528869131821542337428436504170381486042058926123634623421271757830857686119439028823808083474190366097334302533460997303384061142573547598826740773385982840610672111389052486749317871478738130524151094078338775393861737759463831669805531413395102865399237816521080210457851496854903392356718236719056314975733988225419493375611549975809376975540753470963547500756345302574361999486671838821474523045156696593352803500873692725437154989666341435397058345179711520475441003483004944587414124436896406907382479558380486990270146302898738938926555393236911964476849689535837417997115944049188700196914597379142722662235430254737570028045962158187146759897627107545431878992768188831346917475936961089190495432794248213792074126948070893146768933173505009231516498113132243814645723556513731701536966421541413006798380110076327420468655791269079417716546829907995848353743248700781818689884344327322577333921149248706085296632697879464987074837173896307427263265858019772481096456693151309840090396630715239957508271460835510840572506016043323683732433977145832640798930962017453769839416016850563631733528136381792988611504535003673523677187786322822124271837052645049831712182755263375362600092585064304971999877664156917403646936491807540968950528176667809482027862485836422777547474473554494081519157093766766011028748848280949304984991868446370995743820082520822820352931793335266697395863464893110780700040104705608155525085693494560300743689317361777470857907666827352675684190948708826812169552787099969387951177152835795112593665245577760416085318143773149869105132427150020187570781437620442526346663831339772290459631637059519534982926262174742443552484996606862383198206106558564324114453222491328013224662482897021298422239182632461430238847695161904796457468276222410804621159358452585829434430063560795342206444642600013290133074064560600782011100945693291489335398068558932380027271175427049383717205194289644428728311477343010345007388114324041736862529617129080450028439511982158315972871507208100059284114203601174611193970208058693614604435635870341442932864916931136865423698049315094566685471381144844167778763154828741086986790192560137685342903137458014368343744925004694626018235268924310010196801256508315390873555070962962179370012736058873718480139319685349474238319095124985133447465717160075657446002447852196245819424406400679358527391181014650950194749806877773457900628104940753166971063706396681187676880213307030040726624166547711318973903176660565814834600342585628552339363319104894532538574910062369966303619443610842019539843207705890937731177266468678530332588787923811590310495729081585695935170416685724700798672355362995651637253007860488099212647658165938157059403315035234726614093694570228721965073416357185574290124106000711900142433917611324465063955712743867492941004616759899035103719600660358904558218726502673815185605031190780746812466860061578710461390925507313152690233521019033996338302051214163285619318572733400907716032307937069773324460327687787330749539908626724340094796034254157521663281971235907076829154039990515758297015067645465959584689634681606223756466164379240803606351019474725383845108370148933231549420725432199898069412795640206218154579562522596929586279484494136978209363275653899226199695596991747513714917145629186312687470455337964830977541300385791635189278002744993717886665236396865164385117087047101705821083862664942169255173320386368335248663391948118055659248410296246339556683853518744557016795327449074858878394123569107974336329607274896709425967623966053086085089202432231655976016134065562620889431507958248532262691501347898917070615258860827355974068161221209074483554933230338460159767852766311974261438177598135831440126252089370314269683536320519121934983108160357695908492029427967562983073419172130240965311889063695289910990541332863224007065687646072817190625498108045700286390475610944117084123408193556663236788992798011505320689566381248420320654100930524017203117419687573104988156734753357308018634095243747381679755136377862615973283227706732952281661943935685022739813002357305155337624528863382313770521887299818034165607469496955183431699872617762123653611770122440355087533220644868713974694637510753875316262373914697308282790776758319577711894110595628928372459502400037667843961809267908045604897973031705267858998811037682156246902180506056580348568258398577594051353169262965241915119352536243644247674001435046732885814896480324451462353997646479414169269303708847831066391335652779498295808529399916463253482381393777294570629562967103922821063970825931815847236689743745472315937048318412914795014772464329706082983561486621879727943442850692027514456400065659568140233681382368397791083410407820623461121690361437534572278649342656598812985142726263444906304953054781857336542291148078265263561778130640768548470185863435695173853026614973560383937541099172664462539841354083363771833456652847942815877442472384911819133094275146767929948774984522666176288260272707375019500059583285819532782551603143884951623612442993030675012943869044290081816016560220428101331834352580918247759573199513040675381747618572584904024699165620303240577803759256393996047391324037301035210113245906464602654774553966092491415271781603364138344579959347402072098156384829751689094606951669614908908406714078568440255715890422333505846865324787603919967621612161576950195356578332230700416062876015122854664167575553071396914089731270668621331531276515668225484758767489502330462776167211690175483165013100622956918607023522732210745703870299477989946123595512583676553483050581322468403762531352939946642991372539418639376982454553587661584804483147897740303959880813638452684024656474765730600791989756837734653799249308602475827435464747153043218768032718233551737670004324936641890088592477736277694340484251083892831062662643214508638397098163217835787463023523643754609092444402173208772401871572171852338510571646766801910682468948412570108182572327026847799843109579881778083599064029724575210830788827741316902045403716646307993873779693310069599485206685962268120578042222615017630700823598764194081383439130295086103369059053760750165468228279278729352654372527050182693271120137959126086267349599247887602499073475888950801313029963860161297203688177147838739009940507056783064019071984548787245122972646780268551945058686126123152650855331293212494362667590349641916170316478611281793699610923783675253570686159330062941478269976324855156006089826344313475268398856562004762184277794712482709288189299195120080250587160007957165727858970665859258570690381764715272477495958231443413955744456409981593445248649360091406549549195881154431624328480981347843922126937601966857951806389874753817490188338288899346609831344322286392363573001893146789783873208670251988052136302755575111082410190216488215411658238300180450660813797079199873050950382568120763084424436795435041041800202489233522523611515290080875905696978427720741362101747632032475818021453284789027467359390266536640553057689973920072930955033405446498356208044759019341997324304749016270170008067217443000916977385836867968962495540133091222412888400311794485637120400831728002249716093902797744247411141744915657005532097223577606821146742001783555721475090147452482229395992637434513379323865804718746999412273442783452848731535255641346924519141758209329175291698650022552658642906657318913417666083939191860626642076652229863516373337154158186414788222604259259228565763796541587054610543412573421882399993920740570547696195786195246731870713284864393474447689469910207504032172913301716210983051245612870687199066771489479739447377228246726483364038781515036653753291545194555510031316241582277502883524993640892294115711706663773217480068087755791473415660308904198277995710492905323491158989920775842573102362060644335783604538890838933456313480984571970754041260898610182894774872203635933260320909339348589215447826599644630632178127138591513047765867968637190746781072752191327043547828799426352435072089863767029035357247749902031866450955244954400385132221047264471861714850733838073520382698442582732881459634791430623622827659768013665085010097818630402171753843265382899525090957712803037751209890757991080466606267440834205902655626859103782114046971107308126826261916177879504167705443473447401108945182625700514887481218070992554215840470581399884196119515162898913883584023384863954448791978080899863346894993652815229826816029371186003751843167132126088830446275291351372684967763185884685427447299141329162836839242098711825942030307988011888934266573604135065686540042791742594667700835074894860064504979337301989242828648698698186163248854849799779934187080439289858333285504167713550469758203057940803467743483118469684132070769312406184493838418830170532459979381676028556142956516878433923095969848709624306618561073590497797056684735239515212535353407356017417873523034770529378388238608611417571913432735571164472016504080050065354667179259767373787171349818707841788808898170566525437501342951976007407367317591537029690230614208471440641954423377179060685454276642122537998881806267623235777044220951649479423147854536292508573828790653537759372417268415546695548711423901944417752046327339233904743172240660776507944238123875214377112245834263157604435724947716142337199552282743029319388546561563643076802256824071600180518130803727135124165902906804541019347251511579664280827359425851263519400242575264790962152510253441059244228317065701784300708113422959840291562237250085084720039035354221324626313398951170950177726660141033284106148531166387291261868122940427461346774300606613926055858112842874411264786799545903916614276750032009329986483898399525605844915280181079124951313649937589628918065798195756610335612930686479253087499762996924667609521686506300429119307203412906095094990816340457940745987127795357310236034155709345549275986672494600196111305225822567531530818676034421654142040587860675178529876552421139577852131428529421657833993048304325326599653976216335000114515273183844598129477734590022370540156022957222263345886512752734395028837759993231686749711844545014175266296658275719142583408189899819021385821415798180921018147823494724597766796362641585133164034780291859538501507339648754994909127354719589627950275243407208990927637801113619326922878662106020034743676066737410789823490619806669317974377521613773822880386277765597601020169852895490871523270906720467886990753405598792148696112647918471795240099733758330867608045090096171971206582511301569447413371007114858959905423008508169532170598147027844509607220925186386098136164439669144215268642557172521750248225011812424271983554276864280941401778652957915378892260391841070632945947025353816298040723691086659691898386736664896230520405258758002433898261484851988345185351099366257304728293109192647342752366970140654976775963542465195469282700725559733268145707481018591449519657764807576130517932774115659858722430195850098590715439700058945888340685353687407862891972413083823128874903491811591013679685839186284824394592257572422173956735411840413945908778435739874012809667331470230791793345636594973972870191293316127298312972680772358026043674028317266683770841383618543705453141464499144645115523396995194628768032078772748564511960105775450958946950227266272882169939501480903711726700918430638886999582179366658835588628576906403032792889921621351547270255591011959504203788319123341709954090906902626796619573784211680478684528506039659472806648412370559187232407047522003604429418810295888218509313939199814561904244276146432716547191620003750616396299828882870153171354638621674912283621601738621673320027482860571906941136717340114733176170292927533342015686493122219697926103992635504007065160779953602691879179879965842543946808627881376099883840053887306449203618293668340070767824353037691430082600415691444170771757980124844418293025357111991920820426655302061548864242408264721615403710732659057299187204822301454450554167523912405342426705003142259993573238936955932888533085508701858626461910940593177475902091059034144147484200630029166899051239234789102383632193576913729749648970503634074462866842738164335602830783034197278743775767313121135866705253966514443310925663869751110542316718785464429234194363258944173025940310864613959001436874119585292733012319354750486591214866043569442741774529621429078641727185381214779710369158296630115126559482232623299778358637063102534370446762326121511638869164596369230028288923600287568835083254077460795473728004120762701003064433702564181421258426924361993161262632348386995203536751440263002992448167319817696464864034576589749035503846150418400049724730545456579168794448112858507619737558607623634939165362109169845245739072211122272165378764137676337323826997105592528597869644552467228986392107786620736962270333069976753283535988204249342775586855452957826446024242159152957682060573671913542109369252245613827652417952769511326960635753287816929982056203111248993041654733909229566827824961612087162147507115525565404861540804430317771840553250418976275937718694098748400565843415156056554174065513810482885842495770380971733070133981174014609356224192299878315052303007063401075767378525490597969177733355189149982387729666193416394796743121037759048046897760269615393890052919664221036263977315427632558263040504260191132964849249995540734029683990724249688351298344180939043403471300282438281142728664021903866494273234230746039578190736579519020128901406246150298349683627219167908681204409437952888804050481760352181960725948649102474226325596205728683055476585015885730625587372423257808052135489494442806435289470161012037138486339410232778050205946193029891851400303961124511976821589053548173412801765081699079211050236071193064165140117364134801352384778973080753540138254045699116508704388760377105302953474064982282182765207525327715538658645256319059936610069471793657812126798748810101441745785465412454653411149316387534904442377397932793153543457046559631803249706863984471417772796304532934822978336893000780850781258966853160590363556248286924066931760427472945596762162294661397312639009536779158048712757469240160776873113319123874715542590657008838093284794043006102938943721931317016673458968844927852511275484471720502044610945025288721126388154207295095610912102643027719806538918904614367730065419887589461985941513179298497311598170209507090974511427296106568086915161992894712455166764059846255457555830535629274309902337278325718314017550581277228555349731473950816536248480522998224718753455537970704242810898549989897961586029747160255725205321002896828124488796801700133218090651781940706981415364810308005773180289075552716398748837700751694346728343469394892045098864607389750933941053260631753959617069308535787480522961005924967001193125190867471817121661039772975090163803698653013582911340733333183186737640747436007447892149963243816574563660254489216950667748715495641873181010304489606102690661373893745553692199691644254182659401961550067642104084204236709441728526117975807543751812356248678469400659052481809577476907663128472329590165219236526407257659106487987946934852686152635329315821745917219839568977850119682837084916714687302999000092674223992244880007554902702968518398570717278568674213900059927591905582769722152476601288716059323079214604634527518834103915651656991441436439865470159740849775272726864665487665513415904605305779926050950422020401564554534318033639477819652405171873516973704406473626287523975285805374414275196908074077688133567286755017718316345828425494090790258201925699192765397013018831754640080816604774645535537294792946042456045694027647106039214806409998041362147486370421661226535323916433329061133637626233075685704173178138821026139113301601209734765879604329683606876832789041487528690445380499784900329823841239059441670976456341594852725911567421351562997446006177046648546035490045544447265067752006958920745546154353629899135602593681978221513102278169160600845625142874427566517354538908600129232138779703897239737334971770338283181666197289349883965314635883903553506242452613665361091672481536913476136952664017236677717369686939308548169926564349744368163024405238471633412728049644059188796173817542531050418149216835825534161732597466331680738066587461324255043889528623452655502560309932354070840549843850540848685406314366020746968531263402592499816994364681556869943673190179658822333494599462295979862113204308027845239737059515899163171169594075563750042269084270867524948433185394514427487766941462825477605861047872104830580021136635534017472791000691263783691207289767549199787638346102999165787224895679281721919205523798111169271868260356272586558608813469138718792542832589746521432580165211191994076881303408674490814320795459504051417008708394604561305680672651801360976415491323926312006611277618354893757145198503645597572687255797473020367541592220067525129285373031202901600931023086760173604470368341946312435848274135236807934956812136550561140029413347265021645686813115136674683662473602199423033537198787741483502693058941407780322882859898702331410242447080220890006775849001934355346167473109207431441328541666694964365980312577131948113002753913224930210073540225514727389469604196004077822336760747490374853544404213076007118764990609449305124667850303534571993203577204635380976343715760005417871044615274919064583559088834804934611589222357150206859562584559734996636612903687965394893426217760716567468548430584844630819329510327419044736114400937781595494895005515094410119110654211156534175463822982787114757784772945809011089864710857709794435000713717016227441664898890751111492804280260203822141217543817452129389067990953803171517889118283378635407812554272945982595571424400961558983234773998310740224076008657771574279968254093933125943192495512135730269980727791184411634617003138980943337398099649153729782922886819745810433441152695284739200273805606958962885840606444388997119521814049919387232977254321467525511280524176813352049312350743329192477950970280297753152848591171900147863680217095498296314263911174583330322163479570646493793663132490418883058678274760512017893427101509512522962054720843108824348823373176182987203780765457267969701162087455129707563022158069751424548182892202312189553160692436019935258323775673235289526416023058821811896213759342778009737658455171358920963123685789736440606055100447340364728148871990726101393521694792875984370377776721592334716129872905359515000433506970420350794042766148978164112967673394745773518403260676414791510736515803437670743854467664783321141137307597394016907655289655920779394429866524795773605207026720376656189895650159841246609709393117228523227198653614737961849459239176033351613979763239992511254917039460443909306266278144451115244034672512979218473346350689284593747414979774413187040270330706301323444292003972148429511531709102674454032868197809010717083687646177873792068560904291911864125777383706810119447756995356763931438246961047719641253644682207857132938098548386813500851778654451295220786146345127473075451922456999576506100994477087419935161209793613391374801437947360941795701418808309082012262989639267615667582376750213646166134173276542219139795611724628877348562513280190889057419832681336658967523564852783516829857748511900861338419364951503422262889732074207144010220838689374776181091017558890080495503546830376279867011706655913619154983137537221307761507741531723186590541783740384433591215520596638416320451392964375044120037134767203670864250110062816409428528226689250052138486752968780331395406078903744497989994571914945897222534374660439591191742932524917113880452760703104214575417350916916220308968558003882167226097408017763331163612808692971444577895595357440832658917616788823352583857873769617561463254135899677453576202589579013750372450062828458677620512041847085015641611355881289425886015558156873442827015701136574947417690084964050686466646035714862837075194849214607500695047551250183407712355946401870353184666675475820825301017577027784005814871638944212450863178485803909899851393109153847355348162882535994518703000411463717199455472865777845467754201628171223807770441205452199932864109632814480968535262847436983531658995210373065322945628884746722596653679744016458587505936938299538016209981198529487941280904821461218581271674313414499980925182474549906822059198677840169925715591550557862655820528223181762043999163586704240493979326223438878871515057860112836707023388581437922544182908521839383155192878395399125324094468955492102369307893305442939436146810333680705267749268278242573855726352637585645340041193169873859905307820826484464516708926527339618199383602595144831549609056688622311932524666530954844304928854060559093284295277113916507866270704296081877125250017153136189500273033703974964524530319204572838884496634424414298210888260646323215993096976040797281707586453402861753788749569275190377758353589519816017565547371933240386787519545785034560943871940867470815384831482328088463348336852797041904864376763791811974071392622045815375903612204963136266285687786208291200429742491351366619995880947231051007190493047441707469560380155896351997432351601550465903269450840161796243049952605250266984006260173921227270810386486309995824020186364468870113120182959907810020638149177702509539748996134360021371693874497919877017757169344020825600440044558020266780791627670895978089532244637802036645879785235731282900696796636862424254516043876896628801442638913035487904811631906230761072842730989324505489258530261903304009316973851623781438435841385170951468812555811266883358204020224082224660768275995082581739400329908788200607946917942184992564699547655209260680273141481836058706221229141069187003766548571534772253982520201664644056884862247927764000476450033671798395906701629283935072101166482368990585720868666944607345065087618239223698636407520727745009189553014929796068633808613318383292570805980589759588290733192466697149579771161534150207413208378099260211671608502064459789276681666816691135818906399060805889758960694924914636237230353200349146907346553006834682697193867369383051363638318340734722085784975915101088577968728239115439098102599319449056140009763440005426281442968702948362931887769979928705686659166268733728187428430710373861322361997743405678609877479145042564325704874404607593743648947832352281991065598426655650516140914815265778060838640636303697770687352041768257458665846468316378938529803678808182213809917638912727988072733147043502328580574168314169430412937231098991158519372520449632843305941963431264698691588283590376732285362915044376822459137169851568814371746243434751642409735533426494528049244177369253450143386431803382224311058465203524486216603809036379457766878647828940947090233357698323102964967687907251103911072608781349339323602366242299899291165535229204193652354970852907991915199144524888098231978064246100450467369878631565909856640662914838154719369496645711592632570726683699691487598241575830817261909870881325847691522488007953140369365889508012873398501115147421511318823763186708888979413414228423711862879425842016194581123173692633870250405851544538927670997965104774827080935751749383161451860032402062079635484748879311186846885603594221229217978105794044679863357147969003076030015493780361303131502645169898056873666129306736878425940374526242280336013163182897117134875735948139413979006154545810737859735543286807126982675827221076363019659852888843807302614596360362908661595739103364392919710773508263025327883873507426495143330713950024069547209026942096568626852331878846465452758718409320966959900660717863603660877777728382471406877076021885007887208499944484534863155230205904874017054933771020832933204303139033962859452122678705712227347629154276397539652390296015993034325257128036463383117368768698789048200076593936231798777426719825468045736852246578394794847870042052074438113798513782423677731725256730251345130595674260336818496073156856108118565797923792659323330753837426232641820032920734094249352813715927263795711275506928612733492374853384836028757959531638617405386519069648803521031525102187428782820923580617270191242756047467815388972819079315040469822447366776945611876805810605942856404355825660084318023600663725383697501121859784906520411270752490289389749497072677019538162569110029537172255376284034119561841325889585213361220186942249512881171123475251605239035705166301946359777205463628593100428375344423242185861348626517992389517906792252850181083168888165551107423152034530559149572295805323648503848587040884430192626882673179046237684356587809769932558765290625130155520880391914804269175948062077275250868783290379830755937976226899757533606158433610450402733401623012000588009893017267656801608789318752933915825414843623231197602663164278433702291055933609306584733070711431900313762738538592269770385828759386809731747465082572600320174597971702557339519666982355900199273071142763933612767329260440531280858554618664757063693390105324481384532718356342545901455664679899866239002257560886771418811857268875129907456917525840506897090445716524869146675736350844841985928331811123129560321603367326223754202256072851692636176397445216773006543223500096739129983601083927749020512498200408140241669398651348547813071256176777127425616261784278991005681325947109861471072564586116099650298921560852214388881461565556731443879840347770939418799859580068209775954393039450074285340122523400540651662982044265725400105585240258948456158539201512163234253577825072170097471928946371764045787718476781901065563227115831721451382666895280518875563329211609335249380363903562397149007059055195942703316163105425759572107807679667564750789086811946769745637601818277870154639180050654223067658317543731880999326621368675608375257126439776273835712303449738479212792365767500935098165431222164100168964574861432336895881715561570553325873892143736201499692957224631913423808937347076127827558012540633626009673722979466111761622324497320421563989180605681360272906880289888086797840924582762671828832309063320714398766779254021094650054833895354847602676227891867699525020199818121231388762219744861405824507154676386585998788913291425560132094907757940165387326143527502360444578745090515303113860545114814636591936929829908733587372151891155733680567916376462858491049325839687908023523888397966025793188588762865549345977241809239628051920410520627789774528819271746081954497619201018974769556293022798400342223063056884930755241621329667067532413667207871853992400382061975190526729545818301612731348049422787996191799965110621320608377215783614697565914168875190150304073969464641583187732813305117606277562482729018909771419120930997019785040112785742449746151315529129847072149929746830158322975030976236011116773954150168877246815097946132414531216883428719860616467063463470483330265764701430354760507384689483352657625739628583447442688791139688430111806215971783191892735316791595533901947328446148748757804086739079491788870910976910405932925591920084875515249300090059349361753498679742036444462641951296622800464455167932817892445093021019904002744655090870117671348666730170298271265823361539703485312253909538200434778499392856080061787817151000449145504497380235895349242656345504865973537325245698787124867807469472252921115996542228339567436961178964409786033832197656928687627453150128510302035368378235351808574888967148188538844425117374793684133334502181412062588970420407028383270501581574241265664386637117666977714167654454722056673163130928391234895885480879708111833649337474611444459530493738352329670719030648702438362610375814854613027963628467642374107954176020197608427303639108067602476522811040618876537790412732925247312312276809249668707273862521474793660143066148581176706340272227358109576485707959350087511372626175397936886076941615537909088332184952828872442096747072829051265563193260422269773469844516484612962249562465540583981352640132039638470536261431406954741120396363755130798038581061914377156688299089297004749606729619935344069445950450398601318663569684561724045670291897209651437005384859281884025395124952155650546708339013562864395776493160113963353411662897377257613549070304084720336799164602939363391152912850250718804453148520898679843205758576480946895845111592648903158889331558864486524786017917948655356648258543342172356542227704780837407193345870761843186352840250718922526421570766670369066461952166707201946543152498129115889921392697397258380906367167069681600920770890692144439827578933515523272146106793013809692806530980919823955044031953891191989914637531151178567172912838437728089474798151000836370059501534411404025299314629804426094266342609343216162238660226561591798454609897383170446945721009548631822243610720283813787676825314529205427067736607999352135924280394981457145758216395971294846842617471836382550790329149062810720001749761782833003760914023713086291535329697628832042173613064654364256239506313756062465096407972857182946259218137255401301828728396580414363727539093080013729218651684798579741482874248416190591296298130784191415506666171939761185603779152224124716492442133359054287709632407160307691443570977693974155878808910772629632414359316594101277364610469380501893272217773554728178676952523979734242001023086050500178281216580629034335982143964129827007596028564128908295108988338625982329855273638218938692823167818483605195554422740006357100303263330312475279704945302391030545806518921474562828227280343750503905702066996541084711091779581709639092789557844601433888597469363911632908342696526656591124435468794418275449973512800144836359034255961595103445758831348749223627681865776773553004185242772478377973995824266726131016585449835125901072224426082597243158351966427571354620829485345966517917287620394918224422926432146420150170764541362842302649510646897100234261114045628039046779999465646644817278098373450633647524343532384812376164378583326059292961233060676557876370830354826031439127755215147768829532846170842577795624115274463801488652926318676729997817006813606613774215666577333822133940869284248609116639007327972285055398520125835341717704687796968463449273073169210972013886700732624510956638581022923507301619295350659780624793251475651250006542658120469600353971835955161387857597843189714791456440515195325062528718974817012036023224265910917651498387633404942353954063258754925065265682160412497602055549894395503498228604981416402813255606351878305092304442757845924650979168875153183861857201739624265831087213840648359810129258110723013280492646337654807135849093447721424267389722754944698381405546395216965034398366681537761975959413646498824842107504491674241971182687011243138522536209651880942433955801030470086221632745547836269551691575463405849372466689893342622278800286250231005491376744776014482397874859267200246273938664504190305468134519652487984210847558450675017633021362538313713888235003574961158043109144700947464724115439309675267610869874093779332368647216963128299800852708029066169611475225777180095094540658746581358355152093716959977482646427552609648135631360162598607843346487911302497863333082378272361044676909989613691453616125198129543531680446869915809992993711574878020954234546833811182736477571602802674980216868203968683035337493863722657575210735443512557535665896791795822774821350146177057403438081276507018577972116138942419209025165404423078998704241420804379063043335361483772889053732540631449189997002358038727039160006353959688009853526293953504806029075453069443434182618326431380984470271617635468600293183712380117579214498719215122184888101251971234072402505944692150671765467808261137214675598221138749506458587513466523769845958857971644503808591169633014129625113450977224517617591697526013478866919524224014903839658521139310799267937008603242523570991935096224011488009405927682284950312008486437137345235483456214046514989030424691762921364557522759482569352017613153985461513083461573375387592721019472106419156317694736940644274572464580091879074237912000130820761422510477905950754802132537885505257456813092536144277739760701057781850590924231254951534306964486805430972991833294111170971052378894635589502945479629096137918387990595594904545665707697341910413589371787619877771782545398622303552719141787226509211546410126910739717823698145910361869021466434219542002705295391829009552006317653177744562191270569646568703149057287600884108872778513057597565272772178229665723628432280115580136282476657043715031495831704099903362689935117415772537445370347399575145069448044630146916831229556312053759841425047936100869457987719767617804544592121685275151556743536286302518244499211488007801913028779162961105698811982633412596684204242858399644552365581208252078506105373304048778531049088026181382999122050104852778483842895913400280286166552211065196973712712154968978519921433226707078312601640484832399977203444417340925378407648347385693130215411470400228374584529872667427950491027760428549077151346605182725141894114644585266108272166678167040528210786022273467986288877333924412071904253989805138335449688369314139695884076103534525944288249211380504605438796738769093580298684218500739226761222241951975434984607731509896549221512217894721492141974545198535158483191513208031912208396034808711586099965490411547829095798501373390555233886384999803583015374080791761339004578285372023529969803993050612705827456774582732530469292768830206489416621857712827249937187158788680486771215356764887446084496114355801422093810529236689325342661160300519491071490298587058713162500225718457663507245925175274888861141646033155483318370458410184287840640344186414565977670390293464265865430097605680784757371537324921900078157422810477397335246255006636573501680261448304840576344635088482054836062332204713066160473022849014981911873496575273964175441617767272529503551751786098148742417764930962506945879585855986843498411095604458026828420431115551859410740494305036101325602242205899694841338629211666281238527324098328357028854915939767484209696982918608776206870987008622884479894337816097322693230627728759692552682650127694765401338312777821481789160422257449269344044722292650411789878153563466900635356176627826748376979800818810649033310412651307169362685074828898006613778369208568490551020734155471860201580213350183960463223431969652720521805861833232096583329959950598308813637519085250540550355709488241413510952827895769159677903236912718316553524590945217503737771028002064762052558743488330890979127494453637282398220860421730882883631769757403217995000278910575978864152933865128411879918499448931096242191659483907173558792330220530222514762493295104843008079810822173266435965156772202075759919827147034729432847617930512472466945995354829603528413607815269908774078195592793060797437010811826850387698904614174374511117291592697961470056725338296153958274723687476632787042975282919087133961530879028840077990532314826045548814296744928006400952887482774123446778424783320824733828319141345397582682773718336074586959750181736908964768956931806742953435757146756609113286132598046861901740775282766598173220725609372508849036256788403816130937854577501240289849801349142325832724306481954052795921582432999349735392953903498387172212891300740124131316746873631083983094467334729800004761939859396187762148451525065011415119038057706545462764593773963952137482348958396733060293457273949131210664475903476850140837600978432393117476151768034538253282557069783983251290645214328844614674917527509461663316374304739469107502088593575202364131132813696790870627688749455697720526253363474289211939934261257798302448364295195986665847959194736214941642943435691770431675589177417199091729370618367937317559516757983722196011771081726611014999367186620047285329339416004310873035985832671433219815846037632168142668523107431744379709997779333343280615761920191222077486337226133748416385058844130753794410858741754146925155247156039376536196033653172634389952188991242594743164433896769306745766709860845024450828708079386617581711385468655560365341049724646036440781593138417542018388129572227312009428683109947440833070389640691217778971329591452597375416487213557440653150437068700021054632492452073673731991375001790401859724241177815619390448515951934681146360992408243764972775695163251256847879247396469616269787718093034029143841077570548889594615424048289925816759796934818951318417099576858361957959366820776317379757384127739893192178799912138119111476460999374034120433670378479797993669577720724352856137893937897201115147837683661659604527284380273582480095810443245681169191947842839313808536412207285224490962267979357435113887818165044751264787999151057585719301118398337231963099014800404509414971775095846399643582351479391101749215636555800378634022933024114126189489794358912159959350864247293124462042096241605394171661887519364393812889656431038080535282360255359010973239987573033984478187679209080630572395707066049106651766739949750133344165506935750944242103803882613244866076294463621817348328663098251703853365242313447665904676425591790756741041912149445072402328157965873594535972539068741963808744591410947505858293589109829774357839982875057618980814875587005867392945400716303107580917693114917588017155776311737372377283608341224972561097618368143772016704677014115774105591091471292539058081810257146168485803206558557627151704274962694108739484481534539618199663618098811022121364280031840583731631088652236798280826572143563463899086017824589493909669652215092029633268430365318385828813318353145827749295730346823979475269253111984753095077383066329363526360794414417937723108280832690680338162103421941681970066049346572515237980004953948714736933808097206222332890022243816893658569734179616454593143832260799297193852730824789921510289284607480120535062825949793757550201285072191473027273859374914494906915174939491276710075839968040998861152106236258875424862052519233331435548193010555401566932000126016778371019873038615828494651407994106505971962428791929658108500120535573023711183587793259403395687917651094508084029091232511884898216677282894739922008770107243593698333485969823426804195992055415600509616685560032175991781686070044700684889434739388658329499789279526445399786678272923050368391387141541307989248813628673653525585230162868051774806339447870627996924115318672279307234587733664705149292806752776184696967948792310756878168202639243872540655002178633494287189181746277214997019104993331107587750474932228624987770969148193825650571627717689817177048761355515113927227774382225299124948279996511701997646139647579114411240760666596716807289731767388510289873706367622970516414591458071710311998214117406823556908138480389774880640622781990537082490551920025941979897893684228843781221191813027243496009566357350877320075034788584693488561688828505978583735160864069514129059241613137476740203179035481469243459151781114432727794343284663431661687975152270476336080427970397442149714059510015274548090476964335335623612489893426220986621994752574399233647015624951124025515083133567706519877665055349802428290035488971128626489592767928295119472182131047492063608246551444236335181567257314677228492028759166406125286438402835962081688518750808856372080694247363237610110761550828914294039708796089608428015554272053221623409608806008294912097115018433805115998915730262352141211058861511717166145055754450435239752581269335098552806414677112494117555981591707869454061536861320986064362444685448425652778053901329094197254777800748088737885623320752498547683545723620744269648782345661694928763251879379897013219909425382948140258174000475975046416321540483496380309987966934888008961265157850922083421145534374313572428573592373119501284481408224860130664249005433871525634706199588542999212329699983574213724179827186041444133781199159636977798409360777951238199186321882199241777052604777943364098703012235324186733394725924009070366157996073419695731785636031255711740967844481395827171542931478728067495066608655853091104418556490970560517527549181050455325490704794432760731830913483238204044861504218955690730257923862584246095707664516557480321903756171675648180623169275365893846804654305177650369795064871200767014054767131045157611862987384930396305886300868963914155252568857199550336925403287643907695841263905155919947009558932866126629433690002876839367660162267913011473566991203024196756998215462103397167812866348709840814072088217120165593555547971397689276213966971032180259057851259100414839602435100556570502561316914262090499894301026026291297676397769438541489873078406510060149441194840763864056027790913854965207429839108087558423969293082539582273497740567214745845949533316161577098160987920635082931472817673379956706298539501635171750032727798695746074662893201331940813245246371186872181978968456218661408707793348522167193037139853580874163253943695041840156985273835118091301918377929865258565975872178199818374146273580755245066119794724405042247585815538210458526034836044024031187753469941357291404782664155717566623115548822486490781102622089252453664141769607144614751074610255971614895112648261208982124209776984740908962497497450207041822120487907414647183196582099442731206362564304676715585041120338006920321629752680550837656645580275873295706218319359725355835620991293249738910370951221585009529382634353197222694717352924962938203328292374237845819208867665689062788977185604918964663569734004597819864664395622817351263378573668742101535850080920012337874378875954601269397459293923128631687190679263686402128849027529463472488387092023189245336493116070581434330021539716665079199306602949997233691389131801400289150104469941210973037649822680811569856255431847911860909092856350339901225950127317158778509193272239265662769313225140853297621121153037188578622866153677940452654188959778355544623194138536917411696177457672242672212554882136566048330271577810336196427606037168338129037007132828406755735972392645915217355676655841437874185069291058141740520477966125097523835161210258086998976946044640450019866413092441747879247966913564311405071543488590888308256293715380204345356803229305302257688293514683861523862165345329170008896555761737538364942655003004009592876565202363170471284032994494547215472316691619549255402454195741182691872309125306009245901852476080514993762276540838745100917280867889945941638558649823440352023708853292760054758745145462981003517754576082375719446140472801862282622450364148262709248050786055842168748520354122115207672968590237815575993904125321310514045412646629577467487881405515465359031241458101032407642363844715148350247062312411881023853675971595971388115748209478822865155840150677146612106080727781153888703776916843007328343033766921475117700162858742444622366098822213174185135620138725406055848769387899975929759532153859318685015722555265779227005020469043386032897865670182237644499854618043945159487479701597767589526456069622625345314160626928663168207361218110575065182440966398673482298382765879651645063665986674375794186306350180950392127156675004566419798164134234250097003546305700269098086205803701865386033211095081511589618575807733690615681742606413751500526304966371557909823329458946505378854550603049452185899185846677529786943092502142617191826918178402549670132311142845869285934171842137601870548385607830993871633015445430013056310146506139616246513028181927241235256121354075677150131254236212977359186350605500825908559327054710375097828505699128067828434126623444049925019018627726251945793157253908203021231666445331754967104025075312914558575848948199460779543171186960768299262317256860720710224010535116574871575048392247664224645477352184795328916889960128356792609742112364090850589906504822805031535235082030569354744445144192269288368251846958568941872916458673099167691815617243952015848555508336797754639392501344414733018474927830685194692053626734611762520226428159685133080769709977158887549038769496461506780367228648969023270728486552511828686378731547348563263488851865016719988982847330264683072420688018282863966531907523854043472123701315993688874662314273557380878306231803276339312843380975523985294496377506241704560650242370242666324295975039947345344674025517512340939011780468259564213490829044619085537427390320050445255708030487317724837923660538746750759440154386314825943241095011661282751255085014053229878581000364719183013632056443754424696568232016223629336448677585649289837533628424757598727049273712610346644015277368742920157434026182816109357174759826008651520957556936399440191834027016910519244621323921721339699137734182152488007089728345747139861951294794094502098619070039221883654075700986385362860926173384431427468986156614259951732724078113456438195867532419317408363635637527086198087046886385933309259392129544631996049192949964251902417779314779772558212308688392419042604770277061586852198680666816484758472169010971351437096466281543364937593869874822840100636708053745930735475234638190748662231878817902529269623707645180767533711509549820376219145119218174303796311272163284684702312782223639784225606214349192805571067392404888015386006105149935961328831974822841292203449463483762066892277871835183330981260405051311760107609798708640819568205464380094201729908591020332176798654999983238511700171905905919646155651502307684967818063796915157899345526435088524083339408598992603848305512087471484431162044363039763830659597807730489979726090080827981178484463921575103589183417785237205763342396877392759566073431980189493636727610746336407804056483267343919186075387032088790721477004549218451339939537085289111953579998856741213037518006003339229285490864884491993419093390722353173192052783966606288565957112453524874547646942720254362118830077266161581167420738809369305708872287548920523529919558355987145180195518564535256286845149155234521942469548410733492398583063154229081512956826075260144686215817669758675904678655103406175600774086987285485708183612619818841828456169744941912773386659484665322670216285213432618612317773087948332146649500525855592906805648535303851802463387076838653964615507926227994025758686662270408965096670990007416514344714233776080312772077622099959647769756052012085028049420488686697427428380740909622120704352403239506679775473168727478663613114951918934689398851505449686712087118297266700716774097084545111472833669146360577296214201364198080746670438735873467215025988674777241745717179776310484437800669096984746196008108130180316964101033934663119703332908085309743266965900375340490969046520908326039887393821809163047399166201712965598070212060829999480310810572730707398837000350139315283099000522823149527667843223479202482817594333149802873321363387190930632497628397878359638398052778929216374764631696336802105728074658414871491486752123755869361077778767482777460358575607625460886226247339787306757269331935385875301637406642747513377085383642459077816008796180851966039256623776367039042751606307945011367863610275548215352945822848686415345669375073337205201889482531539379310237611060883322559044270743376315136788483218312724279345752281412025573677713244687452080658077393581016386865682276221969922248091886872738710011060174236338227404066449912555556150671357901058522528618097843216228419120375590788957590641464739153482025620715895894342405825777448940485920639811667897951059747093441011144536788897520734721006501048486332785780120890382536468622412984017751516942495383469378194641381881746578039941410394748328910198806793892118855894740737369598828641225073512031815296304761011376534681045805384169392708033521971903604699271781848640368292449069514076674411486702039707229769321551881730563133930171751648270112304236873963967323134519663279417030594219231418092954800516271062045157769738981003827069048262419412926493089438836663063775259987449865938094599093853792641938561891679126480710518910845423237252337108335681633779787411752962135656711785993990818868315794723676916037976686340394661670041732418489409811583034150141481348532736445789055296995871965444231273573527377062495669568989400361650684443025792016959658023518847239899006081499584771654433652850789756775711128328063264764805311395516634041387158574150686456031804454664174128537588543704891287815290043947042800884787195543803103954732425391288446276357262238111552926744998514699993560632041908531015761758412245111945373921280961906221835737645077277158057442054104121925014609452702961615684366794146230628074764951174066352761924790009149374796822261526635488973878832388802355861945618810075413323974694580406749292684240931249313723570573718505238901076133945877589215003896799663544572883995859274034702687195850590058592790704176224816430426667063084554299784878202270108231304734085760212053412730517943062656264720104984076495844382279316018359658246062616668626085092414475740593724703436096013105945723799828704695287749595889212877702473467809252905142583130096304796180360808716903896168436162017179501709085244393910513819767874366562437673371005480619330592896470399545755181338118887199968975320969293278104418775361860979742374884863358867535913444061539801705500655880094274864528197212427752894970260556645078788854146993469971844970830382621562959189999769062256412316206804998090363248391566244312647045562350049421227577952975868078582502097565914647632321626703416355996778225514901425214244426390361490110410111074725655245578646091281999604920833775949882719190070427586517515780725654695333413418569206794360124514981074387040012599254018198656438484933556173088009640189567519122292126190172011623489364925217406301493215908711127618606736692260715240376108677098324777953548784845846440953591537165892918640126076461253073566173491014170971520464851513402058263406603498054954576795567822989287590202800599084729429277545959762902522028020102735339017857344027564597554447208602540321994266479924286142915965288946294732683625074224616356355094264069542293606056233899516652166976428080418556365199953661452806541826612590090846254001219604901263479507110110218710927976910953058400320919908207464483920328694361877543098705923340511717001511684679003675911172653279774174706166011413719671120390144599502483309504969492944028911881064372723388555146946393605854656913092080880225372272857155369883323234794075778326102363212711821389333209629842567640802112610172923761913513924002078425325273920385738756603771237656790894623792910896187376697245627501271152166370063310220729461830448045585861390803693524543993215787178168051997944396861422373306534984430888355259568187910113345169367664354687005327716029128337870751806081046469921027635748327056321246630126827322041241239909011545779099154159690789809701789550523116974276013549353779697231059176324742252200541864630868569699510493503702981364999149752962999732878953339629086454135080649839182195279517923932857476399731811062536045388081461230362952551472410485392549674264629301291858607043763929198872888034412637982076113399437309318027540940535887825550496546080823969804940851372307569302181881203451916609267281024225404592373026310295755912356534672326184924017186932760948357521896354515100181063788597791569365115199485144034968932511125040292757620915357288858454630769573568368785799140102900280115813696969779832365923653372867478885604866431639290588488891389320198603799216189045277596437722015298612727351149696561581448305540244085981616487422415457007405631352411325447411622474454498046764228217131514733691843192397136449532340369581638464218116729917140627984099636563699238854936159237250805608032395306693222554970191481191462156763444312255129094280645084310973124656717008801608007722852397949406416242745659256170733217586010963670348286057888197730025656885616561852694989562956553815770825096274702332885548294345511396616858602493714589186529514259288747638487490271263443911062412244957260097325689626004051531938687584765265726961980895076063374100425891132568652529442913158021044844617297028006944608288715229599954282734194276952900281174858368581521361904542375451987342682857505685605464177369268479607061325736678381796491268734305713638628279915608675028010757077109971166562130305568697743264696755959538290720878409409483821317090027844417513531146348461839968173124783223152147499000702721645499551428059065533473921198866245263243613630942565657174332820671796073544563964205105554134533773047935777016220622033024687439438021455628436236481892506078468380002056001833154860385573795854805700821459750801594779407545158102941998398331243176992360289583957313711486742042555616338285276398379246533943661630768036403836371594945107550071050701612133978010209873803319931006678493920166586871458748918035154056351878908420075211538714588097069690564412464383377822341575006391681194046598498942553727653344761634449677318661016334320835434934108164640582885463474272300802347189515952457381765405730533063659832480786155544960403003392516228306981706295271012692740206703734459708784043867968553596854405761378692713864637006877425737271077851544089260734213640273027100891703669973174194341000605786324872148208474627881846090071448588199175394841778978117666557097092886000236131051687368427711805023254160956468333758093691350776491405825817724330506908481063382906685544519318896233917097020749427009952436468306779238055321941572073559289883358639087260476338461597838427502713040491878036910688179023075539183995927945553672136491742327997023034430529790142555638422698343026018735979594094068469409158978787591088192522729502289714030829381496747058317352644050365365980524993315854788666281507731265160083383962939381221731484874363284721474553467414327207643770565666980698890124247324166377171604038751397159328054455357844457066608817453741290705975558361538639535491745292380406411409991144159351860641029123553891848622080492613412901424167169602118782834609760403118989538990552355172435516297434140071318366519945843912349820325657499854058772310005125347453504899080791160021406915086762810025506112281784662680100287085189869347393538620686645176935065119426677122596363325103199568571450166564403163196535004716282612689509108247841748141737722876619578262890868161483576643243748721815390675662656148797660008931787182724169565217546973467417005649508900081048210838122070599130821227790406016122053072961819036119430554597180178318314972367293952819338965995642062474214603452866794125061718976242800290817763636793270057487013669740400667919241199730102662948152626135154591080423551728485741422548664797578795069888779171225284711869599623325678432465221616585155199807290347900028277181468775886838037379161137802708193430018945051739315499064064958312387324048556191920139996027720044857222700197527344645743158492508788651033698599885518254490585903883079574761956566662718260347649158077649491700555171172770724866125040365626841143034443838141250548380255712679318061583702241724546448276513850693218103229932868737665473600454922195623584354784252441397423111476127082444169504145878041092676400428521838884800859782209981179615810384511376844891616276537163806381267598254617656757559535002760488888284260818997852165579901479184369316786089020082751929295494512617238015675069743795184031836040142371430860513494306495775866698983841001308035959435998539935941291918791532916590073552634680133446226247245429708991383809764010642339215895335899584190456187611819199584680132816246205674469461230611615503933651955139310805608600587702110434354816369606823449181305302432058422676136327925283864302528519670907505342911318089858110460527104405405832420953824189539823703012829816267455110420498279534200412115927705081542470361110392756245018905151055135812233577567099883844331631724124596270275947233478707949273189312251408725338330915368432069737189521040827109459854992384630873214340032612466691532375232429832531298037529417459401432853361449001403646875774606887886548956192267243193262771930552667104309691317444160826583622683180682744834713543497746786249522743512624228959244127168527056700227392358822391676834281347698590068495868808608163710519785049949547226696472939585645700529179008542456137429873202193262853027867174447094220900894083726517541736757897957394395334338217796622029424721190753932562565704972882457766777759875689766715736300277437467380082435189147059560437465708043960207661045658395876617771280656079864179421344254510084010671302867135778954202837479865616239905127854964347631540388433381356568046466629195510797307969672132084747845491001752859676665395239667540271746606549297139002063064203644180637261788070701915732084662410162036653672335020705317903289372936101783058541844880299944338720173282937463082425360763890970703717617106889331131777982721130278695504208847352186373221225257459280290951630722096575354491898909230339287588257191938289513178025396400327406288778201487416013164788662154150791277470732449893398585687232221781802476167162855353814352555525621639274916086310591276271810848104729777932159655878917044866514519773687433916432638358352619079629000035149122652504358984493955591197416957238046291306220868796927935774721388867834192325427979372003500048533087074886220245094424321656922192181401306111411463845848956186811064843757734045238193401511608069514108238368945765904622117067504665487409600800426541441090345660941420411095788428814375866091250375280212174556255516764088925537922566192797512461575732239386758422452869063297758882312387369671755565427294784971796651212716894287443940369649578890251528219139346573066705644423017777820444736423269020540858285970650471421660875919124122478295571844490075985304718507237883498624118736844801428253602719809557448892828609961612200165021577643676280490674347927327708703840083032303420454247387051775589329301224609888386930507838756012309845526339903390637619711352693807399565294792074225025561764366244620841305775374116786247415657734846370500722089836225089025340101353232027825168781525318009752918538421572498181805747548922324881830343663276092012918072545093100651277067704363736430823765515585524297606745484792799090009469750162266732450975254053317288569313673618353392151150704122932403020092986581478964601101558172512822628179783142224707332963947598739362926259485729164075704705737550205288851230622291310531619591478119409801509576407829415249177160209873985702354764876276115367285445806931600802347529281454640413228246844155088101413539602152143340692606681217117896383664848374112141887102774481679406349728337963310608600195825212442260390833436750470624922527101857864728966014523980645125607925466301248928782686957736350681681850621275065175008013712191862801263376485030103628869567036880039202211738672732423943080865785172918229433640355077372221918267929611166061205974678582483893664923686960915884274552028289351815385117255643645558909361361354061263937594818092108030289659250266345047419877731126522735395218045931382947812837373967383436894542807532282543260885013572769670569958930997622651323969828950655508393749807148199856477208260989366057846735386768492675473978503411248970512425365902664694802138351268830600402309714053527917201497190794942173707150610701705733006926004539195981758722586698865499819208705651336267346652718634286489483616911580857991115659373047629530093869713049343024346366637705099292655611102420810662172663600590567002900446065624757607972207139245641081689648980242749448662947969050200871243001224960164719692637424735309629343372666518560942828273555805975181133773347404726406113821717236311187096785167241168258527220221541048001784614444665754990074458386835798606030678288219718785226703805078606585839810390809533656500820010241129427133290807571598558067826562750447869877903061286114439280422020952579092704732785164735217548576850301709174037509774880201826083986377425700346810549214011300518105987738312486387063624675029941450636411162170258637510481575506547981019027250100491509097138032080452662363930349161646083952339622539789149805546804244380976158434166007653649077391162423416365400635377410092083099815327886380071564984673960345154315705485009402388853061720554079872680036733711588808233007768393789867241761477351920967969649493966286137390109260090267538158380312959674512667486909980108043777722050558636858783097639113561967820717165233577859217774163752820346457984417100932488027520941797163114648711844820065329895690667684080081775687031920909982618909110775840994639239175978884657112671209226252912726143138149873897523147472211309979634713098400979965323762019612371029142193784019041489347834157373421274233512894074120388103625153279241315033414965696810074274534134929547948118913528295248498335283297343540606535678003163607830885810562061202728412308957327869709035491110890072309461971269992692459102856012835425902238875238784541878726583864390548252430792507670946256465988465562936527282286762853816188548000804024568297510186002218812916030315839114146451717108577408055251352398307471370226321973243040603230309334772881219553389891910438474690109349860209416152604406727083980471843887886105334396253533276398471331201016388550438918718850843397145814417161936093706539050572777393857207253357344644748632603298394241937598432543707178728599668125268810076513306394729139702864824647824245748257496460871616229584536169500866428712534671493172014577480894086854761578840106429907369178068677065845144095912786283637689907327805032344126619165765903326576232647630811303697580391304682930298761505813065886125825576738495708512116333980646372234863364681111562441004713440867033682439336831365946040161081288397310878648124335030959384930212795786152519331132570267520427417159000812708417169140707621478558741518869366107753555376682826336408271453006652699315024063674486257347111084037458006973947745564922631339742255654439381854491263360979820057218410741007455669360006035705292305498640245115097435305884288201459349973196262481262211428774696733315781213026292083806872410211401623756965623196248986323349660572985071821888572266953454031245551441253326624322745140828516661813415007860220030456625058931159876507537276184430941757564388889774992196157027195605628454730939295197056209958219616270630462379876588449705880037384489637815627404590288609881108840894707100873233363110446719623528382672362784380164411109030354862431005515625136863605121346561121117570875810684563709179514575398445874964189474164327687284482937631699801026049541731788399465099095226619423488211534313781340014469638865106467019806198374823446599770796773908153535677085771158879565768251079586442639148979068360760195574858819294204439986415735927869216302050930585023264365850990165575180502109037012034231547634354716077777693769160320994712370638312591440193563604840991513520883800744096459875376980390298220683717040825179622023550889332543546105100210575230664682823717981849434766560913902486633204952422357074173362104776513406706322397044021706667272653691112559732761135700656360510587086347137146437694521824244444387031237328120718772022518657562765412617101520848667995946494720667565230940668163700289722770427796281194304848596276625240893899030555344300898023131112062369615821086348766902293518308944609651516285523649158787538712177784140989862379247855794389824926419492364532890379126963169795631253480916386893003281070670222596342774168323181934381449179199422136125346694415561572097571982053549133448540430538430660483380373402007444997025746105780302514412418535340241957422959986453973030795081071384925722133923196629653776116323730923088745538100842510501682811863738338953658225516292580998057537799344303612350992963054147008482819015551513874544646900684548737802002040454364019907032947919676323415614686935024377036095584951543285081210036004455363837065826008871299614375572180888137300022700512677320604739321017774970422501879152034679125758727246028771277611379727341386321725682285700782269972284812633083746522521141930909976492212176865330072230754672730402268609144008532831167831884360750636796086623258010361595210875016556996872458095540748968346261838348700444956716450298591465343319745994856046513397538699382941898605100654461743304485468672546577718558819620996548073368986359229173931725729281629861455623313331617277243508098943251325854700043704577345772131213811646581758652757706624429448353923438860521098246530510227932279704855692043557446883199142358763475763953074282556099082358301387949435079127534269275886063579156008575062255189627202636385796215793753157745590133120797743717763577341551984013691104166237555932203937008034307001487243731458014929902065207948319950786985726451843905490762046546246461254353296219158867700815793554512858549814006329996167701017616074676821456425206957191345282541277590083733038352768269403503243210210034266237691972786308237797534591284689206094426616603875616475823302582155121774648189878877591799062877286475232934269163239426777214058744733433304023131508261584410372309045048397023473412175293927382135504769235874250479537600140605693405428100488267952314988051461035869457000698653582235898505898788417625508622617096160793937138028435170386341585533626582909385960752065049794972196879588725716046220340798641347942796055320773102542238333732461027405586173013975244248968111323010073058450970225840054580261670430088704105915625083153540849873752635562272914166518768762774332820119441702735148584201822256125575183429835550423297450189030262040638114139014589599576896771223688204020682829062529800950420750046225558522486896073433903990316526639961278011001513171914966560747235305876410968960127741670593856294334251691622675616344391248710545284723598702943011780117623808710482006808126411030407323878323121436426524114511206445026582171918259906604904889421376359596159411481663713798884239699206668347284639714367155512242676359814220332656962086700374162202109887577406670516095988046340971270942004632366565466554576542842205179206765017279573835192060707793941296865116438998041325774270384188847010144162347453332808383570034344920600396449987017808630950631214892008121293727247257142699571411637729489921033334501825070805061829755130810967085989821497695743214109944999128534210288133412869255710292915287211235448929719603127174021880083355718513801311680207273942152690200102731603342476119010185216791273664736475414653340504396251017733700513369738027494170365123096513226986815269520515736785320742379961664757560367735498506082622765441654214492413043905350422396487075280361387268717877218197905417655146691674309969143294615192590766730572292115311953598668422901841380873224339483282780353828283188739678929152149285976530996949158080017056252921421279946745686468269190306540746788597594662301700464849283179533922336216514432838759041566691051655765394018468905575110573337390777864570696501681321909014014481374256630418571632977786535293487886356567648971281725080090293357636661100882884022220325700428533857307936618654078832205187382735806254472747890859429955875584025481048540105016163211880731523187654152220238537467290269609776634002520703064741042447210052899051681474042618537364543019989751240970339725336297832213887015467581776796055878045791281862193450478697722726213093307629098238524488220456710907213691889827086428037605137341474858325729852741541816664264551034096547304577958528862391868087341984617098756791031603417676523561755577198187433577812123179448371385814783986652857447696350100616817173719500876579227580784969833506051775216359592959524620616566940221446274095374602328774512675963467517130170441868217928778230410876011615777098377805987881414405680256573861473713377993181450684970445242591428029464223420223823210895441781475957666865238561447954023031187582938122307506610640216604027632506533085134682619769082934202680426759506486651558982862660573960328878223396477602621742162207017811516102665904963782341406351556424171258916603410322258004083027796966694646140318369320663030375649024264479050717207044622125490061443370297682692472111852920282838572612062306015856866979682142295822079575614717037099689431137069960238954367068196845843140850659537943564023245206727249280528333179245442645374042562970702621056943069482039779571580875665199094255352062820282592098340925038540638100242546050031045252885085044173589482249644125424943819901854788015397171219293826888502096129259622048743041676097304506813688144216905554840468713600959306399927726443689742274380669127728793557058635600635873816275423121295633391525821473181025410674002888137711407881542429476952824442341566825423675268206394473963529918281798349726693491324732146253562898732532964340583559748766175644950823004406624619696429429210991462754145680436277003924100039117384212932653516227091657498220375475984788657821661497812350724128101588395555140453753407940709620752861039805852493918541406942547718332107422116733075035659511467289759702057429568820123389424135796114746965490595572825134478225376905206957663018182209758122520639679321354285178906789247149673387644106069575078070283828773445218734915010915577848008458604553065427345718579474012996262043292549987988199167618051063163987702513489484472599986145100344859132656542061459798211351754481835346543671815265443386248859056980157798986614296467844125801814058980150317406413947387956878560321206467243812584118099703406531331274059548621370185844602972228152102130283999129688399758854910474276971499155130673348222247919536374612372657126880953095750693288151431920661108540308692290364502624379245967750679202357252943080860037660557685890631463965953943386572105507312844726767170604867300781829281890375383244388846929566356960033108435514883123052782006658136046512920988848455323543347310087909291128550037466806386856140346453161421052757538477628532975935130413917246236726701336637582334035736804738188943658328873576903775287761910623713589584472480928268177957465392619225229974861208041029532107810037101862718471205075419792123055778882916826597456670158353886978761035445864055186630076747144341742290080741152513898365664249972925929413282136542959206727137614284240885549646656390914463891344424299092443786353359549647957737058621808303134490335559262068386444300722451396457319755411546717438038342372209899212923049077936005456288093580875370473095291480923480149527248361370908747649032855963906321789434653276500422644080994285197198588365054481839998828316699518177717243621432363392272738272684881835937911808885791026381651218698172206241231001915368669079151234952216036911639418392763406328392573612299413587645545572606047845411985619185987837829700043383786439473719282171314914235385734840456165934765530356991822768164414224841045765629023619994962555868737026188381748247813938521884856539901375944260827957974067138992018795366275522495534094051324295677912873350500675570079613542971047080473986883857276485636146522356457237664827382514532066650454835436319696805280256810294346621983961917821407860924254571276565458232703118570182707221488976916616337178277900815640526571078813498373278277452337449606594036018749235974318313100354108427327077373740495641684963547517512145335978115058798796619217824443659477110124237719174171317643503840604761909460261284001645664371569119498317960752790263299431235469727345527314617684560915018967002277991962635544190622491547015257194709638666544816577641986879327271495921302695506911267228238617235120805606643582883175974505553962237096980355812758812362575789327625263242535751372711196905974793197383741656792246914960680116126869795345285579648267812136464226145824610929444019164720056563448219317748859861401275479672997411737213386371702409629262311576350352443828328591736242821591266554208121815498786907045088697701307688489320432561077386262193251844379664282626267782773770490995414705868265746843903544131307601879914697204241011022365207618618179297409849597446957040451510856990012593396697634179673524530063821999581287161279542579870464855945827864472335687432337124346725347924936657476772797523751014053223901381704408102370172975880488265729823024878017927316958540198770369102314205471194130035284193896857345926812182618838762559820506816903689596520755259069536743789008816396080747474324534465875568310469861481756227987883011729730330252027683704624083885635619551131974420660239554049620311147327460135933686233887085523973983881386647380369654001166280904329946223063018452710141635026758378435460131189131079125384606485325817076709235447618423596771707652467471733289801463370490099142161592859969195114203825584916737122483081291837949042878401371684733023903758245911018186760806969997910309763288761755826064584099850040248862077786646544725825693048082436502872036468590117409071013147592705917185476295492056214920186160065997455017771897120773972423013905295983315711579487931629055681714354705066128911991682928120239925210575779880096161117095446812614011317761603998138389290044543962119102094817668216837272762771884686160538466691601669931695743638743363249779673036171800261776789101483121975241112182496553433157609949414725634509656025267715276886145171148119082228211248383526987593143243796556314637203598188764805124745011908767590748011793846158680159045082912408668745998450521399360380500942770400164628117497614015299265324653475566312871637245616097278234341729466446489290534650186732999816819326131242212356043217195303205059730875884044172017820437971479512910611131034262371179980351538691317837104958187009616501422907148745522061694245014832985459801881359839148651191621556986446715814015951973708625945113575897442858786484572667186867884697115365774719807636811486162674005078256020748541076920769890755090514523451984238339633800696114285165575025679777706133537773897454899737547206534793669517455621927305212581684333302239436773007405184318427837335767249977825669705383872246018196938826252916967422830282525133258851152731409127244627705377516268545836890700034720434579936082109255124125209226253377115689008527531950398903666714612365342088212238074147077697639268947076525172581351347191690276802637462327683096897443621163224988018648287906292434237198957136368337276929902144431609199687345073350603552245967092058345087425668576127472055848293045666791470743519301551488781509031648324324922938839622086092676997606219306764935122907724407683257390276569424815191096254832089348354491826038114481390725518240845858573308350343369883272148611960372517454942028343921325178536287944229832692792986231282397789862444165004058302734798472442993675506513353679518007435794476294217693141034846613982612451558813288471042281573163756682455064276198751703294008870255567445453308151317826357569520966326293221731379245660249282150562400393629053068549830471508336881074284695118056572235103987617791766032952902899467143820421426686284724472590543760277825246676281136651894051824148696238071431985022050062507021358704553461683281585550702595911440755851357213483858566479572674715330626069544475918823542635286468276748555514927644240148933813055044620085460208799698797429455178362652467372648159629735953983106465429591143105275839860573196470779879846689819070721704339268991492335740419195245686598604112211359060896800485665940292590965123575061555126570913399125793439748106611768676590155929901927035238997829492688147592221924278915655637659925035536499940006772910496476898230645955071055452181332750376067842563413486671638366259588752262509767434860696811431803584770531190821183522713330625755326041333659857440727800398780472664345642199467986183209000281792513121552607706243185631787308701360662692647841591518940663708448655100579797393928129638653292281321803060806907395274494637302665728124642970941442789374757539769603286017916713232530741124772734877977922920682745080641201617184075609957604113431303437495175399773312754680574115163758949105350388292696388715554371298353978932078632720219766577018168851425032504165571024206559497780241926428763278795230522934368390704635974179459864629346250089765705264088536961582351155225080228853668706291503674480980208844976487521729766678301664577386771741740830974763865203647248597580695982022352967940481129361367024877919303176348405234245839358551096669918453579514570386203584398016241474032370485549856972146643648216532437958163315044202702513855700935667137015207243742329222114255024135393976063152569420566201600086360029844029446913691942522604059368126684268974763617144830282871692653452233591195473424682145403433441783876635265248378860227895757943814037907328184429506024280128965560554083379930221099834608302718472538666200207555203163157901490062764994892462477253724152990774038918543038183645831756079409220345508069640556331782046383652831027408941172305771002772950887190306330811098791847075775403895414500018867119692249740378922020950270815669211623153270299252573834356985510071743218517961801039134857335973727297867743001775092134367384060432456595624635827661506612566186326784622179569796689273947240592915532933335351906571287628340510276416595685707691864408600126566278141234660390499509680707837796250605618203864410750675128405934185239182936185243424541662344782845499284745445125915428870902466421868217816048853361475375765776386989196777762672880741125975808771448913494741878512414215307060024995472988063287337630642604461151454523571883799186145042536948197765122064552478472791836962960928096441537657305942535505176005638824066200031523982343146139659649635441354893696420218580995602546129522756102438465483284906587770227179803659682630365471930072865009639948720539970441219352792068659205555973235569783288176649961231418048125082329886639033266375140561311660074675699804515392942963979102223616549675725609099335982736329244284317630780974225653029331698161149216289509958416546089786180369849661881081621204604545357565275181795052422678181448589122077800676571387630031669800135649099935842172969528726811512501864663495947063545525711983110054696113460850621400273408255907955321619421855560694868059894255224354661309240341611133989228560724666326017956785856635317963370684084499383079693306694068416387292798756786603007178419307329916355801824538301102724348267717553833407776871459268968649982148038291263557389602755857528272365018086299640147446545516161194814507226911374092251552104511435659674044666284813354298527674436281200039305762991092324184685671174475209784173147979324924954902920205846715961142260062354491049569856026881036323679280552560359106887995136808238832130937266993310070657230293516877184072122395361346802829884090525011097478369806035592229510139505166025883576965468112795603174543521316817645700444862413938986840401148354907336523314277815329367994479678310239625530270682305333547759797255519791824307672499785375444764532595058365013405243976966440274818516945203956099736952387260565326870836306565238787907759464823212475142948770028526496651589715924570324644158033404916256498589500970090350983329521570280131871111808345637688008829173638808304881525035685528161747281147241908247344442251857923528480427066126304915123599598749898649360399311259605638272707339261857051940816068984633759306599897543551376890666040809467463207945491660001726037276275476605117557370292826763974752459259220119059947600750158106612013180944316437113597337986568752686270715680361844678105275871856711881743927185937366670463072688659708436885781691382654344540333959530968287028015600683666222944055081819348160557477647076497458425060405740511694291511361015751674548287227035029712557992061685059151116306583657547542439615404667251981780656877658563933567630981105412688358988708941117244853986971829022869164357223108676859665697580899032074952864002542200840292466006053690477426779569400646680836431582474213103855901870550871334522459867307360093207213448307684767502629738984807444305569668060753005795441261574537379929940603924370575662261234920692047301053007005655297538539120040399636764700191201901351288401055248337364773581261333866116287687199109911177847952744856895077191018166405615533780969180532376234028585030222111249581900301431207845557303303405398483109625591760117300771190052098946577796211466022264306423059597858403122758757722298127538062488897643885001357171484001720281412934156596680218200862496378402682828516610687278664754861270130846142937346967933797282687481125329635264260637993964747862128669092650938945273414958460633497420902657961936599027468333536772468299189014527631882291014260185823361824508939793576711753337491239021391929663955209588039566703736273039036856051357155318103134689701124548482499863330101922008890541068741928461367206927110691272977999099264973984689940815444686853533870144120325077460695436627943518822868024252903507475607639180957968021004265242482628856446269913482226827850986328637997374731591630304817244084241783377159669581185878630632688552899938096462439285186507301460968265344770607618596725230643631419437550815148310127473328946946778302204840957952350034308564059546808784227856649195238197879655561262912168655726407349128101063591228578835623709832469975741034883689224474504820319294662175215164530640557993229504700243895387167470577716774124488903116174442598691958219292822504404934621327481246368939353578910116172764560362177982441831645183794879535894092429357595149818121778148692270600502055941320629438543682208561572606820505666257180399117131656945684728820350694865068232723843730325803580440972028639855589684043017292954861051506393705794551529529101180974993164872058338421053457050492318806071258323851125652625542782192879631296710939870573370229527871237246195558354921580592734767919262024680675020745638104658484608215772500093826788631270002432803296288733632767426684826961059701457282843873556011364824745640429690325156524835964868891403560930503666341872068642807103870274849566347036146184031189064012002335146030017796158597976395698328936397678174553570368943090986766253353474591066737102912899390373027759621677870029007485609642221656617612760195033000750280351977941470401007258145178885866259731839240582914743639586242839704636795314335786700922143833157234674589961559408188662164533894840143477631292832863147374511047602157740608273166337001760365086541046720562538767892302126927984751969435775094101655756434607365994629031109966034595367907147499659440899223201269170745607168813558376076479520524026088614893956223217612901708301214146336226053511612197143831856740584129752713928098859078801482533151414718893713694322023940802933275430708271604902366102876501406059857522267357633802520267029386221001550020228494429934596893623264542750432484093061478982495231564533261231979823135363690121116984970761492149484401505785592660427049045044726361246171486209304620586756868512758419006492351523542300896607154548454155771157147072533708142952689719458478416858792218515157284028494856784263926192776519499002055557751093390400350978026936243847126244574232252064234110080047883378072904675754033868856446659666767953753935576564294929520976574735383558959200911350343289269155472309373882154083149814587752321681079103614847862178151200678738827338502512933006113878455118386574072768188790677098692596838923913392735199744008833717020767103893806155151494543797207174488568522655757530677473663412174780737694979057628387005823654194199151666875782722695937524501423139485513264375292541655335521827811928172195820757964734888678549693160171244319853010681718752563684755191206019459147713382076542723837649955752870569917325716464177471576983384224240202935526813792170805160636046154750163258083468010088434223077559595620548934707963607654817646597715836922027826570522866467481445227351045708218246610807205982022019180472248380669149855922185820334964853439364976718979026891247126849279204485787079048440258787432019372601777566100375657458859087135815741848047448347466694474915553393069997254438710020389466187460692329479498802270832719756265395383301457769385762885554252062320383309370966670689109531498451902713591408034327996036406234725294422011318623088604626589493460631065338696541852465799567617001504291283759788696265705478454728084214340950126622736097970230465984477984539792519859816218024593687639953651842191090672416789209929663184393756983392205712404558683829086660269835369810058422577740148615814446832603723258326949863870118418105262418869116682569239950046963745745894529663785543000445361578887107933491886175508016482372897095632301870217573198919475126337093172661347445710761811318459085861660436876589405507126891140656337710430742244827239071406801668374221290774023471632334594759095087516918028847093454645772310928089354156674636177036913233628638014825914145895714439837263032300286719412370595993457120516872593167466349078550142738251568302888703308677025198540352053462992897123580525221586756771429688568697982207376443096699680274416677812783570709292749313671688751619890737154934478694242156622997020056580090202966355686026941311759123795313100046595839340435247013328486784652104723836806403518488299578033106210936029278574813655806125630900283674357232442905712058538071546641352769491480497345421368099009159113773307383984019790403362901994472994541089174122529229212204915072138147260161091250973021333044651771808080346949550922373489916188632831593756928470427085694429790198971418673627141908954983077260591869540035645630835404237777312490086652778843132725156567954817157954967071760576723167404714293060426648630865419906462766648183257893151785008983932596116410706375534533233402139915197434445545729586722337978815254798426295010511500946888275774844253724446963772184303170637191974397966809845374645414314584989206554567535664439812671710680984342160454182954973614153822184609184965970992369133476839722631389108295461436368241100570741187540282705058921718060414394770779956409186372171453572460684972589572984564781622194976524409800960667296843607270929096922637349830124312709556845386801915870974554798309802171249728101612397434132304831935217617591622440556337371174563985597508172294918003550655517898469504397550774010017716753317781579745444249166629433146166982471807621678283919240452860513200959277769897981109057681677661397073355476507593328915523458695498575825289913702600549694215772781248101023259958778616696410824233958499585934369940512236196794735527047297213138113812611871688599261012395986172248248979724802954833219038580377238565199913964991385343795270643083416880592172218219745570457470988702549502323575133967929242097357093950992062819849687132218680352473345643256792653815356134667589809185702960470519349373311125055550755266836420366776086483740692580715092250257469651091770610037413357328560393470727866914362867720921538322683270684518431861617803252538312220620017839656255187242450405254315855053551366371147767257376554625467900222341807719594854638138434117208781740144003934329178106953447062607686810365557768083687403557864898561928109930744646281533287182583670898182828269354509195253457689442943335174665637456701212203470011820223226628764619069779706803759059765374948772143424534819853700589890027790298005022493741954105936225502420890917860800164186169641847762646022609463220684341045907790753552027461859975463555720946643789801734678446117746275697459383669145605282120767576931390036507948753894276900056304688787239818556878353690785525931461308995200629788210374370349979280304773990767572770927456285414507655261853846406217349145092455673183359197188746161939747155830587618907225261793956269239518605300729028379323897047192654685664541459714741489656001633192608589778691650992635910606600757471913386932277102069984562188320023131030941792120818241967216775065811711124644808919922164440893524861045380948615333405811102232696320887951889625061504969987135713313553256242919291206634317887714065953303483805905846838949578785070467289153651246825216229808956203481324061024993247444218954401945495955449079798978563808337478338862014705672107887122269358092379681037889144718950285756821044282054854076732116558231073437881789525071609728085711534846419072924171198025294264361248307265803139140552475008364404778060549174970038093024684024841776047095076711661453325410770600373753065939970859780239154671369260273057486290931276053655612339782527428923427852143166022691302831843728716769500365601743224025501415231322119534870631490678382509895885806745862474426877177102033851442755649479486676197779453398867435211032195132784508443940637161960265853749157186544723026811359238248068914806099603919871737781745957248374185968000925501732506678378253757842986190900981016977414080182259314002698851430638113705235201975221418830176134599225529532605727965085254160454768860229620746034826831079502943242717594044138358584793413972686161451071493542261350860352945130446362419573619403522973514527248396457133283260879963274411995156032537425790728818421789489599408953632020113701378216434590610048107555193451060750594615521184955644062923068600537397410505791414580039566257260419199007497644061922978270708991243346544468012747480792124551711070308685071738565376066670608368082284374446960728429466085723060572393873971895386022863319681031607519764922242327451557496524716989765888314562546257555511427394787874879869099687376880385147893950124329535653735451837749528683319328865633946942383811184496816047246534911876086978112980078766563848855615705058817222626132799971840692667285958961162545399952087449380638282139646691561591130703919546169465831040196057110191054607436846754942802163682724028777181704626661233313144230373488014587370775529789520617702857309502732333010916307814560302461379057893076568231643763007225783536155381666595472970798790107129106692498647607015079814342345194324784637243134866060943380039693338192440090973529550856103191141600103478262085306123144288827873967135628020954869549549700243978579135763446335217818212198506572586123078343145574153362682433863577919356627650686510241348832615130025049933194411041508253845359642902134689457483775352813726785968502188987234402475848107844111505324687672035448199450364514714598223909886014309886231886847548676544050137219153154953111839636051614116855079132588590974530753911012060803170380943110297593386163987348282151544396714824548539290513879406947195209938089164404309431067454275386230751847093439877175385341862706923371829976274761663151068667507092519371656659550969361128185075046368874039163251083358001600062439607824728075336615143568396954725611870242765761727466545921989775451063520556743913712931180983534033852690951874955160191306980440046857840706863453761358876015433488770260924908226307394692316488959216926089766525036110631360461929363372351633439038830564496886075741268446161856852251058774932910951489429433775977751987718090661216952032814970232374438389561469322592409530135050838018523193846751745688492410000212501434146039669535343526409168465132828532897617451641747673993222683515839566844236179996431985796372392373115546703751235974898915365163168716392518436621346419568789015782841614621353669445070570053584679030548849531098441665871003461734686769187292376130849225686889372443427779786972167535619247930239411992023238938518357369437068936365818306057250020893555261468472746860007116112141341169286022094652241009295209557274893247467001214094747139716086189264476816138117395743087434564403509586985138363677947644189223103273420779042786153602322319329789526610082661718006547683636919249197148511129032674469548488621801020332517878356614463669968478707991567701510989697663888899298827030664100185656267452633883592213758025829921212483911974243673924927668963697372766444451977226699403071272083276873760164618004970461117460877031391570285503662153875678056305930396033345723531301307123112502167235547756469478446039943287332569101875738263941935526828583862239109562864398016132346604538383238680570514775488833982446553216396654349037884825604414233462902563478630491158307190306979815797327057167843539670619481538754780130835155766798793765993854960075044079145248350016822419261305572539224209045290022232996818972157523888022005167098059023879258762433990885970414401060846640088534684745519652081674801060773402914722233452165589629673772488195942686929265823270466159269355837750957944934486158922248389716549665750623570361726463539991662111980640634512445032674601521852571730930320248657310444857317735773972271297701983513228557034856858578456533675414535171848582942517611897339223308501909898979609133377506211554531371376137940302963548971318518442691069047826274389152713436605614327271161589858684560896524025799980031803089267355831652028979771723084741618198701785800744301012487614718517270605412884201664944431761860412628703735030646514928068418433315099485924832845062390670376733945690339008555284471463138826995159937768663448810222293158879956520666915121904122843413245221781167006302199651159999765269692376097791392343168104156527650325919577277052754904747138150429685370443417972609989667701237127520425638704288114852200459346222447776166221612966727395977965241728149104364220607607589590705428730794569780196486052428598494955850612583656980040268680945565588715213285486542153999314703971403649784937351661966450800719419142298153203786530947632910644105791593756511073157314946646838091834777193799643910316992320025862402171861136681458037371621951930243224585397677395170090654893050225903807259331109438779035251780383080409937407928582344032600979587456037137444590975778142867731849934444359670352804452272471646965394468477761311991386287056751357417933423104615887653870802540774812054106207702097470990122772014932900306360699024533486180876833906986918156929635726707476931003973179984183987592907512494715874938419961111571593033795846011552331538211636750977228408555744907797917334134529583193547334350164791382980191113781089356142531243146522469455814344679895781548483051404932555044949918448277141506073963006430877487331549104731712388340519491282640874354750417107704262308987114558711022077250683884249326982644840012996483915907783820030651721948646436010541026288706408015823972551186841118635283775565409690608138072756764651674462913029740613562264496112856200831086896790459008883608518407524619516078480341697782595323839350717385069299995600561945859125493852705943789832266897130314157138358295595738106973623898091211935203502848603871724629121928721099981183721022799148646743493637079623164373084522093081172824910501540526666849752796972966067628243072520312349813604329496251399062492630177938379478967895982273382798764338300251205596726316217148463037350319484995562408607752404091511130287247193586499562555737315922659506873476530611855385483088795408823286806369020376194778651600144610930564307593685143666012980205403127767248727556769652380406810770719252905788387785089580979044493870255938686939679354873979527969012256288046128095004374197518328799771832092498668858940971160899716261337125844775362266925255355823917220925880703345126156855452770362479043742537693747848230692608242222424223984536609769742655885586091113104741975947782257395300504027937078973412597114915005657525933443150212881499235134789634389947080221211054876209192182665373570386937482171051472240497488624473150442998756565138487820980147035182725309426795248242067358364480396879012249832844826611056686859327429939354547057554349383102756748611924527824365723925002243776659292208242306071050493434298577547771246048303757031808311562538115159351471600726184448533379562543990919472083871739342128278935520712877629783599408077797519179678214792821714544090465199383963195001373551264486276709694345822048488884720315668205235422621173780131543776535266917380276689170360460859433986021818053109378182566360422160246334079402417601514012474774661863560021894101465155501567459994902225716002405255649817185359927480877497849922887615952651087091294795544655835083134816054477955342207781499294160215247547583333775261242054875198677035777401621340982196105676127385778182394568677122976465989710334340747311649478940574256270627769804624610489685982091966830681942481273084801550798051369590452486014944111530301257670299316506924848020591810603148684454848848774121846475784890925632972986769919409023494825147736083087073484586203535508793911735465159388763811039211036892145491054412425496664363689824976995544225080127144940388209287515826843477225356666136729948906576882861921321021918505034613744775867823798750672075378017461650814876989557516687540709476720756318183875998631483886200612627902679249330785692505140644132880056793399652751345870540326399723397151884444104105526709469745027487445210462640459384403769894070108685372368142869766342855672445887929706396627427693730190660091026700764196056315853012062921445922371747341099780438442889829647807043089574051877792601983113378896124463317419430165248697197069537446362318579841466066405670969257426739482081185006775936701674192184841680763903427407897365283122831554689077026493815333821976608854961198741597077731652629660182849518293644630662882365574915959639249992237532691553491718326012351737861144520955353017467249567395477295877032461543779007070374405647409383667305784170404219710801362034229566541678868148201880906969893878438083334337903337014524638798538970157479051357708258082514709844825194128011005247266397018888613405502193947580421584854516274757125522793504464679757921698207877075968190684603046300575293115649988124446052995562231622819191104508278211825673784506170121654031829041692186363581326541568349729579994920071008253892721092954690793730908136106090891685736652098069762543846143150684297760136523527025731410574755895547303725188507852861944102611890695841568658751801697442859049785812484546906784081256531631398690336685213035378093919024321096199401428722477289646707862327166964446034983288630999189449853605209578638598443538553488388390164742083282028167759895181514696356474043372138823256662334593293987278177373398548784729797142232088025628621672707383646744303656650173056373826737042279870540801672376235596262365196653111268129632243640468590186190780574503707690591894222733722914683066261869903329367991228210730898678610489734025952829080044500845150239793831606929176795148220853283715751249510278391262321795657706253871242490643598706503311196209452847741657551608281341716632355983182137177584945255735013436313406570242229430056344638718214874170701003382629603230857118390430453692664037251557132208672579048683110204145510065341085868739906439880517013735789679402583087872815786587625009834938275651894335326371140644903890431783341214567754780694452634205758107471966253401829496619058433330266704495792573856099879929777274010726135464186015107516870534634831603019246454208202456160307518496208479575335370797334322126444263802639887138111005257855873944811845106764325848867479095245455380955758598919989066591697729383408662861827385277131559355076916425877569942106622617594521237724048338279246317510298240045281982990562371871985050199345948559775354148031246659425194332237722187088469146760841742624942105935328872844473680647420756874238218567838413567478716011948913257753380414088699466639232823541874774565458819170804193752581946057475993340283746336312590686219335889366185599991731019514980930678407849627920502537371913359800738281887371543945481381995631204109887137088392430716505103660911897358279657998919632086212153104430051426327792202635393627717170792343676027443640368831051508970852576811226441365922369257612368847911744739622377264976465223811237777760678211972290546505298352558181673236819884699784237403632480039091804931026447477490995503082551621526877598889404521743738358058801672107803810226510538932559282176206502706478068929643558851608172586673020861878788365743666026517968603715027658707704452936110546208872744325074032008669368641647682257932539058729638707985181890711642854848712523416536237194408277190453743082661327305910023194694558607280212599408954271374552215604026107319561999363822929362433653126128223764242948089666431831981165924408371693983565486823753595763007017218463603735676304508945253782389601910117695274555711423933454743012551091037620669093706417753360993526523863561480420390683099928760590683929894078548581164309574867570158149129002085790441869162663364426965266449705098546241694100956214620666975783005135134857526785687358290355674234805456691244982725832583570065442258206762089418979100229572773413037197022893341747101643218924293210235648256125004462140064683468573771250356759473087720863190604492318878242515446719186626979979079942944614295717339384564882821528422014053883710040961017881057024251701526090920647721598129375979632163491022690090988247566746172187726430790281347317417277256877478040874226478867190136948344158996380275393347879827886310237053389283120070191925781747716997552330294601226254681967548116980997565017646652250614602731126226520818693445403875166729115315983005377883078125204288956804796661134767936023043005208397741598529914767238221561587323751615000309377006637224123675196618837989128786505109730366992325610825163375380107024504690366673474738807407597623820874175100299568651164990543891253990330203860640053645641919524545471336213657352260849062071726038227857977848376808998650565122473928269797488210014025914546833779226065714858220736097287005251215236939939540218607395528943890708158326967456278491648358640672412273482351795328698651325472527888039455499580570452076694953485571026704967315572100579838151233456341930086541161471647376940049255139938543684417550766458726282665829405529267120547427883093259194211912415174933677693247285561329956104833283101355223305886156207395689586115492636409934844765726830890786236942778837530449077807938664457709401810060639361440203673547287787986489848873524392131643368429853738438045753497577611207518451496303616973649734915977948527298562366597910209797861487376055020542492320287162912426349850853525554527892750414730673456000949613790459359573186629624974052769872187875164470304601508681973938723664409055058811460932908747927810409322427457216617743558234076732101421525914180555148996069726989167100844539120982559432357344937215374423214522883961090071952787872360579410546039646003836114234408488751448110254092754420780660842700322706984365596926249014039789385562370434267485727498755564087408566594853988480080362555232334900849001902709401780667723414151244693739085575592264239668919513470937648810751554557409670934396441551317296594501972581969279662491672792995403851589640575966332846826638213502000025567763445058217110958976003303062842137221683253780829106603041401152947042656097199882927665351209527768193618194566958856316326041824745605659029163105137954514290788237418702808060606396364179953536530716493595731216591985332519675860134086305624384953744974130275991066993755828763801412210048004716428463708100655695257996026886611315125409002793078734485046956684142506711748364405487056395705416351507581965126080260188175408301864611395511928401687492903863469186628579423892822461104013433878278337654992716875847093018562519641658148538496850841385738861528499243653364626437477015608448943138222420417469676563486899813949657951016001174101368419399894079069842642533386786982071772107704777082227381254919312908624690589789656368038312461633277679633639190290193770076022917158295476275723873062185430110923316491922352296850022708112576209175877761160995551023322235803212293563290922305955397397312884240292824473630862831022979978353000617142057972148295967472739355809989555086494065049040626037144298535676771322727830812727345445060580153851850684687977099525531059166501392748350062555142172548036492463978819286846529366944863644626852777351549373652777259831272998553919595644944401388205983254505906514494410879647682610102045592649868404047476060680506346621419912655269055849952187740014330762735564583840342910977431096867171861339445531459695274183781842923078615848135231706361342966500093233715746452047207492956706129829856839103213338663176048211603734464370615749943741064603726684611735810048975141492181236240246910758484290704214035258819162419577723768429753385860564502386073298793741851892403122620506420171948203293243925241316004880945938753224212133794769808752007643291055268943496474115510016122839604231033518842391418024904877380986289145557936725843470819447691019592753905403840494215441498277137324753684821667897130769571874248904771277525047791759230660682209117833924864731718008658263029227462810724445260542890531388192560658899197180921761541278573507011254711133691417122559373459698158140779201185746086735353555645498228780685651928592718402825155822403776116329783031853381534747833250953829715012804178816388986352691374979315510637114162041235207427408611713827614490299867325510415721863434647417313457802539425596430333616426748440554150909498585370099444357736656754802068868689015247365532622944594504753607872457782506702910924411884286132744590735821632043118585666515906862895280520936757871173114083176284946322019088758252249532106358886290685458894763099649347985225091897119040801128627628815297005866925636878697365959754391591532159773505285070910270352085835966563048954810711742184959907840808743745588695937722392778163327471467853693075619094525785812862018827425354653657764452693033229202189892692053442675975471545752034656595251592656457160977169634468052364728877519649071738367699405912036984228828476824491275095151124170714967085917335705239615647263394920493018805305201538683732703112840464809711408718928224192380312699234951183697202374117578244281349434369326519773471334663913820799676419981768872218002926957448947328221241772018018162851386943676120372026579347219300071985031404072876180520826205710988714370179667785658492261147286765419652565579333151819245509433401456093522116689121302202096176005148978956714288162554317392430678515791130634338184774838437391711030053093694173854541031852568926234483394294503557952971794873046233904579901131928190948659510219697094594845338537717038927102745347328385319604642626892204516256958054984071177182579677125400266732263693540273436396253744840823577920017811430308455199935715422135035301014490543855815944018590856177300267793945628270828519015715797654646472683025038624683845756586571721571654150592163416946325743630105539435079228175881358034692161977735601036382062970641157982381161751387026287104982575059962093189802666623165211837452949982104056890296537790066149838739212371497216184709952884370501898873619500702808911253142602365853987849557272088579742070720216039798713940619747842762273949172003593486156139261245690239952926789679830314318962170196721814784068999503039859733654238818003845810496273895653185024029267432865459425705995929051510115118438638743748569024967908409642794352070927705821350740552478991973768324298002696838633262790923213358004858369045212347398154842825688259970877112751233314129581860345691979742620566981077718415893605225896978580394281052509822904989095100835865744025454118987588483046349659426505270153655535404157381858414129136288927972257776064359089898945066210777122484041638598794026801593955234833459547089589078578883855599241159570906312642275519819725189102391320935188160526733234199483598996412722784117641717273177497177415763596612654143779031784020921026478545508888808054272535013816382630583418834077711530341995242066397973658000407821193733518221774446378891149493210635651786810814041907864677557210127496588468600747102114475625830163771472683106969253876670135719538079991344708676386565317239922164987492440848326549248854032492631047902109223703545665887544171376981355497492006542052160353243647091810506576027998235541774522691549392369300779118389167773779282537169367644647704292683340519354864499164596071894985516748118162203651968101801523505314483395159818419701282469768313425790794353199413799605751084009941251381592185021527740970940870394019062901456958668916011172437388856473935514854912772673584596178890558280751414471774457140803919064232913413518884130189957974349205206700922810977058491950171362236632254397710469747451516577692069906290595315359217970028038982161377742852123846630938123149443327619260678043209189841850381792214958018421886055670397798659890186807194804659187240276311149553941502404376076979224871641008848346610518183403619820431945332196547491328557444411420481069410962050617580834669695670506884394411090995713954498097002470603855075422941177532287533871085966812448426193136957440054230811405678937704132110018414152902164885372513890083713886993213956275137223415542209132752411067177076002713007204152862774069786951260420321023962351200339403025081454842813863366754311496058565156847554663350241246402839817581260559603260563754478275318116965886071107261230115418603615957174355816161956977773078123674981965598237563062762140144242105910135933145159061190894404703425428217800146044593102950526544703724503403081600807902407183747292933713749997163226657908314355142601485437222882555426146391050746212076250989651920519405285024815912445215361981991265024159354334949420901894814899514748880366333767405829642344649905259787824315320756344196982148403055760108492917219061454131240998175788950680538797283888596939512515257171670039478539284146974993332719422408139352761841942291899252359096533401887750799579159694387737592568285992822589180915445991347550300445448249720745989559758783188069498144491221700765005154159321810587367554873697766639382962123758761048897807915505924063691113440309262735127224548815755976743288935045659049095879525113847348776514566212998614090639723646823129015795528902228643466009370118964642336331102967858551190473592259405500295546502411100580297817510105777632067793226347364957713381040361140302967037879326236427416991009813348746720008888939156160099437354627822852027795833378738487904238985318996778187686158617703974637172127608845096058647746762246769467894853245616589489825845538430064532442887281567311365610221893821572156991237266523794144385952628872645401098804313350582485885061910148114936691496249868371499509693212581596841131887451330729347365641784693885549607513970981206139932435257112976149513904621879095559577892869606488334808839823940222053047078210213777914825304230674709470181145831282875726220211556044113087923745248809912008317138408779085767070356418734284357593799560667444279855666639886552416092240915179622798265237528453372169230605081078883264731502304630750868276705715574082552554294096344173522900691786876176475953013169576934353145563109038452741480773468758921132076908698919425835663994430309947305886877413484509389616128719965301255234326815368343179755475231635528426906689263372184481961239270314429701257424277616161111090936226495537926016983764190581363743658395835599355168277470847372971004963266399072484696816199405369572370315791146570105398825949914675529577682450347430042408417138256868880472121874249101051352747060135282079003606247453451399486265917517104078253085402389241488643093004178002611400174780804722844034456184301490916673942367928824865059817600540878858857842400661930032383119264984857366296432519539819203341201862375727663774481081277823341379814754924891066439023664524050923231887473900844354907069013114340843109758612879698388797700194649942683551164915230323064226955432192882167605992714736246962652684561971068781016736630564888416488760486684526763529223956147873715262254782770159292026808883400882127265162112957220693122624136702337605571350163221647385782124384315475826667384780759116177388508007902259863570237002450371128741952943814091067807215635851727858405695818765707995617336132161472958332009014879647341490891500206699627430158524377610505067737523771167576846309598279869495899680874857666079370019070949991518980486114287386347962759745929755943012979165981646303041714155459688994652040967665746095466502954414319643850220177509214184155109853887258412744875814786868714058433402406085263925745529269416087190642052955389359076151686182324326574141412285584254437004613966176172781909116549983512343247290570461155180726707078097804822458159542378968789472266950925303294816416938650798550250107604256553737818610420164048092316930889322347385943355261023338981573305950069099883040873938841146493386496554141025593665223369178861666940402866287674771402714570653609892994069477135146699010314990945617824961047698497361292831478968641071191107835231723129456155074729951465305022614511322850931241464669254589539825065080036712645344873497521143776806637373389129272712545211800666624372623339749194704387356613973298259763469524355739792345716463156346257764061606215352187130965053097645556720883385407209365182912844624510378137221278703971533134248627093385525120099416870014170445205169434851760149464051668207564194464170609009777851326621485086479275091261943839426894263397928964126647770521711157237695715522167828625884827529649932630118971944627300013473739757794444916404249191981617653481397626215192403274719027908108258515586665348974561337925414646037111565545317250749879568854429812055994449269054271684519217508590910970805931864542104416152132103508953725241897032986770917616727767954999195702727765827221780427744221447891448555746007493359180550050823112760811704453316869064093333054204250654430562221396370405568195971682514269723685434592700843247458689932494412730465636532982017400171122876255795111540978484776989169962646298803558389425169831880337655739090427994362976578338738664243859610003444033033054101256377903201250674087039946583698873954408716463644317613022025176610132790167423765475363743114173692404039184969460111451365158506120154341817350383389498147009216804952979289123830688587016442856164364913294271653748869127043723154053103581711953650776752849918324449667121234769086168600699189045066892927687512982964060383897320772993055354408233389783701581625488555597219966729115088074168237972282424765787739181133042168648065810463678245996959697234348331603798672500631257233866557170637667331796960835684522555822110547571534761958741759554555127801297774308448145289031407602104863466073575713737306748806922012988569025719458208687663087441201020607888377697718599523351047049289610929387988904070330305025334188423777638353057355718890287927521826942172868852858166948436077615259734439195167345016806857753149458064621744287459205883179202861011693387758100834773437927273533346251831053147477838695188272667419077476201369930499411410989166540071293032163316720398632685731129055448577345555270532818131961991850368035814263473964317623512509537003700280712561567096332092614189651315851962604090055171979701828034466499547864282666025694709940042529849807273517134453576305369046136666071940195988952702876902793259917020669333576014138207061206083611112134696109239621786443707333415006953546402625443828941889521272337953374558001944046097669058778961360837220812635664995106110526584964659756066085694132685354711893489138649532552151255924084776576130890167087247333449872913749857575471058108265972455990474320016720965096459503660840893998450942532665772966378677669793602886004919670457142394117388706477609409285113841141950395908865441063746588890581639390284075343469032142399062123277565469500260671119422993983344867309886385159442538052512417999677780084504695919550209699233920061762727516493729414015743709041321617976177491634402642218104620055393264864735012237398919250451089322341832661658454156103718154006683175408898375129571325640130085414087177548149785491670911676837801262233810683955771079029607764405239688450876228336895904645561509572631054293992937640503841663443467436197255053229202484099350341612207572088059043777270511057492639128418533916171150534632244758324141529090864628516634396267737671012913042363875507377201572434768868731598095542655275936501822618950940083213676804312256299314010263129955679903239694245177694390843497583946312036150734792458091778247484360217904803747730903396741365336936464248545801209483077062770726744019042143874132443946383744932910864243776147268623163388519958174903709346935711194039616844842657197573683656199461766735954370651018109633624321628718826791816504378286665389702938769673134975061734153657985554913368378892440337681768779209844980328800289597077841809649277433293968439656469451407670055561472717661258922322430871578132992303018615058613547559624806747584592761528549468250909342556593365351818883638844344301368476819608560013478724668172020972907162088617451063835478621205503225967187100658761573538457950823087717384104705808415522647887656150968248486707633404770145081782922122205168624223186605517324976944149943682127244253873234041973183399911241769591161686693503573300956604148022055566887752440651170355720996942142751527484639692370640019592731421851867862704902047771935870246054774284212374631715376238816040467686801601216195162051772962545658210740720545361366591298363131112499855522191271161616059603759312483502917191460633513783598872463147059667261108783094672632245807842157158754913412034082917063938400433492466999390475605024260950489235017102446697073636452369592945002354369454745359301468175563671747109625221803898422253442593227109204479756007903066591227946099318001207343956060961390927630240936145436916091959335894710813706286283730836662666401053423746523506365395727644791849558537293367505694928117998464428556779659328947416741034790315256369383666230793720030379127716705361627435499587124211193179638811209818835234108408417578144107148898186849392004120914216875063821600010443349205134918779011185750225604296177593623769978383284213530221546266870521624071832942034988964594382937674196450772822848694892426484296183256399860367264952197136069066506033500307639744344263179360331963295493348990040424991679004377643558164109698401330470567137861296779395014510348367681359901495383996817713289042493750664582608699433771244701827527579415154961342023935460862866687103504698825298851809512236727312364550660929374818017651140831218593932114180356444108181440555071007552248645746003604358055080888684177397212479761921110453212120481976063269446312231678358394522262509673148865254247718475783830781697183341360017446957277187016904425490082615495741256452454582670446486298825363340888271559266547377759294235752710347457520039872441826123387653442415185472720858760849209612092805574742356813455223610495075619969557373860469591697547958498064389154318913718965766177250580254129355320360028322443571115783891532941644581093218398946263886201221053503849806861089221193869963373526736334109816954025342373216897120609283842951015149184687907326910432747317923929458795167240183793476678971883947016430541201452989603761161553146745520923497607657446825988390721444300382111727430910550176604127658588750622630481154481374377700304143489209465150724825162521210595737862486446367869176006356679711296800453896774969486613678137987417596572136976789241257680128008302325093200194226290406704001110695594657361067416290375129382419406887008774438264599993114001264575295625348157638511620121984072295305612777524016686977201742666513653172861582245874284827265426350005336948686498287123480588267055655870421827034335730443585088572535985012724507850268966013984967797221209577086243149860813418754166642141935297085893864334710146110167886722577276380776857538642282240486296306259236874376257773537554168109226520547772426981535499959898944476145182081093197895516408427357301528016919678829975868743122199183253993979660677224396199658219468305923619198794782421416646608773673532376431352931376124223078047539330201423535710006571904956569193198356411076773401646563671720292132231747910625821558051865123148032843779409405750199131306411076736501106946565797040826372819419213490016013511994470764509093519982994327737459646423433897396850182384790426908044091454069438535591155535464590373098874163617087737321899440705100419785730600870835974233901310155775023883797834645881935227253617528870783907244055341311747947234707447998249881290371584653316834153616102106157115503511248638199931943057063766311399404480571641075721198451372814580930376572666212132571509630501139161803886832250061620582199759701168075240161033730407140086359367005982786139582480710787498591059506308463135651866898720483325600989769587203234559619611041010251437464051557186421511869539037714235359614966473084227058066625297316358564431003616337018707109486684541374843032226411599152166800895895029610258682332207363122464687818677749997291542938990692571839344288006251894508704468283253796379252832653287235503554512054836823978360369704947083769862060770049163030207438946750955081773586915407513956995757101167056031448625904125400674412321883254283875156588346906270272398345686995633943501609046525912463478963740830762208638142812945643656596476653255320744033519190875227450214578414837303834915764209227888174906725743533411703744360580553616618014481302247406266962604215458928086193128444909883517949569100939564101944521844987291412211608680985020692460001487279151936272396480285665904938799395197513622186580276442428631672349269195242172253396552765919560527473861260380012879795650734907080310231516160768934526038581697277558192057210144619114621560147432512105913891738511517256319044842180683938365876107959482402464891506636129931338337028466475106932145973840287296251013839743586177043401146795088146537825453153302512794026599150076386164598597088865548267223179373191619733053135815343662876051311056426656438247492789726554291819732097199744798557115965219361054170955421335696845128805964871173531462477338052775178304576784259745831207248055514558231956415250992442989497130719701565769659887653336986870355450544866176320225895721042676406246046854061486565893394097083409990368649065914532296574707089255453087749939980468816610673276485745302022800935940303487017621692066506665653436475809161257724768554609537224539267953091955648050335980168613193997124776948179871386102188015778292651953745742176425338287501508322722227288667802862561095420387485052213820878833745244772591251534878043422737633860612122306314472195974575502377099737724989113655536877078307704473699365190889754700544946016500346208129290806763432905832987414202358560131789708748241661719163178905481253519994890736448967849398626178339200904471052128543364081415372395146243667720419073134349553056862620344196302059619686788559842684267302201475302006947518254868996119351835390363494218633592508785246942260573056624211795519334698980003881474753484195616150846616270538321477960260190202940565025955421265608634753265406037837309338430505810687216685280544767930851473239206262189830651834096842092309323739881878285429521440946559888092753538196371105647989638290773026134330357220976104256478094337377625435078452576512324441000348794169626082593471803042088208628120088567944058906495719134006544575058480398717067545211718780026306336996651943532780876674551074155045179935458810275952747576284696893036828310320721094470506332442956528160713752747653293537393411922343089885158400603778251928076645070371153593883207605212571568788566767921968491711621629731718352528294574030921849303158546472979480338046688076863005348725713449783199964688951205309812551207651015470070292820008821077427413869624521341528643436816824613041327448420145055618303037044391956949435676229396975415070159470726458029565706394180320452129939041765558505263513787664519849131380929805126369168334821203856431194620467036091213364572261361725157343689276740809916935662679661701049834848046565195882761897634561573409710466806780373689472327649738075054028629047360417939200552145973161729044443209331843049416839177401763209659062830463808952898820991516299055123723452217974599700666725710585160067246701172305207886422235516256853778349026960764324977043509368805160316663791644994869829135940643589927058863146986090880445891173753286096942206304741760609467083745519223693102296273352108939923399657416189517620209921819059502488185981144776668233663523102647310457570556040405796283506779170123001129252363854813737387211494741566571951231136451185542027874448019718818112774365086971017242896610058777784556094528309258382521711272397233458885768565500764666491314600308457977525958274328521261607416060353519067097589484811786561466345903236764170737542397130043736639482939688574833816094930486555181093738564774583010644837130931845908134420873967788494490512421219310856387740476857185488256201494940776293531445516798598310778279454813033345076241535941894693204522863714356947672788560183482646431091851199890074792393915773236600911611157295750819477555769421652915451730671983613862345037958411965831528618669411889760358051172114038705770239122821624115113358704136353004723032200127711075955291374339998996278911695696208166776547472217221449872739424313764601493031879679487858850603314309594445212698828805523871621049231613222374225240378182286585028652607486877472293736840228477603800442692227328247648150812483362332621307193976216426708524034417246459829339646767892589146599321018154722950425925097735619598682423085805312766816465056297827935350990238113857632024217497006227197873751656395317064985658895135898152472313601890879787492778174443243969210363195885084948266934772566283941068975055957587278541462184746483276000158455828096278835627168315619142105885540351971652865415990598904545959119282956694958760421365481501111039772349997567487103029908945471801033510466608316105011003172996396223029860368684976984892117968287523300685633046828171807174796171313415183732341148538669839515176189189323294962481468199788543421419644109715418074613886614846635426365710549944464172490581027949632572232982115802484842747534349369243445491977208581682256643883960505105194612038893786985691800463164931032730254917802565881579913625544636617319783603027757019197523761923518099303960080564177348320456562851629168780318815915407204591202137881093022653272000117873032626595523015108737876040870309577958706187473898259315842256725439949381746907139368842240679230542416479688718911177281658792282727290063490856139709994000486335029519176812909501823286141316586220177358917591728933179857380112874761608105184876715854427888360579772555368295408576645481536430476938074768207334644170866291734840084772168013273211812468877737564364988316404214474886284125769191272794352452978870492893737408907409182466574004079351715993968458188890056814109745788813018878591789893146192333667856021695104661644796671155294857340343617772708578079536532559148651831168103410361198158057417915850782317452440146030212210616109121371669981397440836573849332650790919652811472569819822155966822053484530947111474502898707739614379215011707442575032120841342859005889103117019369467363506906271704149386219391198035209243899980755331322220195276771473299338008972491741382305425476202553909809397823437939996632358732630099669121114833048947604848096232107281110776941765474918466677206440722282274099390283002163371444590806443225184768059794931082224055332363579668052449506068333331425505986711940616879014709877718147873841773994835892459988432144280503347310071970085253840417502400607296995222055413083990772645149095346724122495939464513539580970419940494818453732231965328426588191994897125818800295535088162115462771250581483690514688140187941613984399130247866810582446854272424669957793649540608946633613333555876503096477151305428009206353514474068339348608919897276771239757763645058605053777178961752510497296285560042383604004510311161727958378992645164589978708536665432012036761093838745534681696565846553507799174100039426368986671169689237797521765694861807041378872501749997991513866943057035369897849440221516526043581181949052458089535243886252178498114614034180125718136265552735001553448273796940757886927042088564721179984167266367972181743256901001259394495220377105384685275577413262524609473920633215298269385549268599157827008584308911193475136248423573886159181523280868740128362827873409642992869431817383500301519050648510905647532934302600626095224433248202677151334501337478717834502158703799270216554311403622248142774699689162668842274582662523943105137737565870696996155255070670510128204288279993363565572239696051421434284362645710173721579531072528116041438378829101539704290789585568462213287947818698015202083227404390852563334583725620437768320095713950200307901848364492181998258625027821659815418737954574857923976999122102532440599453121411674110906806918763035522836726917430023901167744650401546958301985450011706495773077490147870662807313456614260758478597931736455766021528740141086243878741978374267350511555505484096776118605863333195583434383353536698107763140457871963012535818122684728623754727347437482478663581325436272784848300479999549905827909858185127135899357548744078645968296323296659929131152330797847520866345380936590040454673669661777268690598794510669020533637573265202191884212382474874397697718167345319220219365199184678491302835835451531670684670358965635439712830384846311097634809958350637508840629947614860239227648407260869482030022566861469009025764253518226669593382254600397165050965412887026464322320174057725701727213838142194319705089141626071590930395351130382596674526607435521282483356440606385142418108470253238277278376964240258396906812067666801398514709264910688320584529778736230673483957479894247858999615024781232988492533235112350912218734640031001814621238488818007930848092755464265496077894107045345372876839048185007678458650867677898679365267127111400639795827390919946801557579960569837833580101822558335511296975786525806324465996786249381621128268241367010677658890043233583757171875951055177190299243727934502941554022157637680785711176141545767224630353246943876161347377697230922740873884004974760626045100762359924198119833513077899341740078866385895408394810407518636917180985351611250483160574697717472728077018234406809744964901841178001911729469109002653036231009485294269633622109653315989227659483934317269329232185849265277823337584602828734486685743472940560608127743110353961339777628538227173754189486467809062974370060981395183828451750776824365922835659739164628106350508217642213464561198626204733923620384999578725141001084545436217451510630193888193989122495471713346448143160282317738298017672743208921190545711071602859678600839548455060873464115826999536029518936339470815766248049287836089386504989241475356942481375819297555065895856090050690408950774580203343331718819574271057181683256311428945051973778413322279441924949579939737657844136804682667344808301940204101149957499041089679446342975377849603237719269232360708369640950654695587563082793419823716918689479016404933262543988768088395958140525273134347928642096162663069905292586514291942310231323551244154763408237099581905265847532030100154732648166804874179755533692237291322722382774436815900914117603373227815917706575323511874516469618069722553191099456394890839690247706269928121643703292298976641233671563902159972117181865077901388477555948999149603222824970966891652870247490395284354218382448960904918188001776326273367692700152353162305852460850455294230723661218320676673165735145691265372985580910211953206274643977720132874366360781488560592882332357818148515500646663953414618001750395659341387293807909063467739135241308701045877190305571842846529351214661548176338083025924369922000734841256175955218291142036596248049736409932928199609858894318982161729564505410364229123989849412982731951704277575800931657087767727477897421585305899859233478623458939211559864898447161669985782888432842617488997847842164492177173233213673424964483639094138297529372745748166751969903792877084330712214037967536335965241205474810460189190218851788231933322438556307642648733059884967116271805199705797143292899799415799374776861713421164947657445062998902093602370250977553661743164433983434556730522679410478076321782199463768077828524677181749741844319056680299835526599389302593221420483933080218450806377265609447468782958633592320723119528602397981968479966083029717958341922844923112955259438439425675434616147591825720810603835659212319878983793534015882370460291285437013314626774013406985734132045225921840492672099115803193751627344149100458782446241978831792353605145286664463409825599743120238669347861776631800283850772772286066216595638228803863361887631293158840823417242415288596332516385520514096088034280050622942369262477582721410344688417478975563057091197970918762644873890051410081197718633596073192871063271356861858911625909050120875963829508612404174417779891068981135750237962240664247306528315088744194951250211940170324845334492172164618697816414642379898643597095547641332779464329244741120832253858327462498028452700034128640828706873831045255490142881439293454781766293528057006072348553833456468122943583877721090064110911317909821409013209105376168935397251139921046464865307792006904117000821697131769451285573796049342528318448477291275678297251376404496345366005994514155399255998737258658192195435328476793741078223356792375357582679287313359932002203934906357229735277204054489527270694137171198365244105852018379441890130437185591818985291211601760526465044314653527607402143663008374815524812930056161651025575173824531999673925110021348903609691649600789789227042328560084092143069145715644486027021540053937435699251035573043900147358246291861148118216984040593396629775135488443110325433132955346179607793219791311775110836919578320088932381377749686976757343440714556397073073196391231491504990094425833318396977019408692762414579330108198267694680843664096277996438974952717341118439483919469596987963498786164268691344961474226502069194191841854734997295049978886123151352044472471954006622437649651464023686441319593708493919194306280624391316407932935822241264258313036509115681574643875135473663828902852785982060161396726312363844939854939538457002550123292617658254964147311370559317076238586090104335885597398054857896013834891794927169613359178055929837120143522539199061770801416849209642777959902909506441402453041740409171118297593797699206382078450067793946251349866571683755028938522557920728978844899266454396979960772984384510998540660385920206364440048623725551054353084574819404884137124443365942106937504433142665832908396132923894777410458900119395367355960271818114569003646265513847852482946198492854315920360572164991359471592287396248918079618231636044397495027258686278547454503306582250294116834086644331807249970983273166571647219984194627677238027095650786572890467716699843443297817989587247454082804083797895097027679066125183826385131185517281767732471366952777347717657098198519216062643650791541825252652970783940571505592579139096917801355437941863407465590823252244413071669872953267313909338168396673887081879160732066589847264977473558343828625908805732744227765114474501116969044479384984167028456864118794535775736102861011662283331513985009992621983931975269726252133363683559778812021280715962212417577690622552525072480929365967966585825931910812574055852520810510340541818882063195012180659493476245869629547153614821687018025052858025854468087545869078121415682294782292878998911141445591746714551835389068743917571776803031227097337857289814313541691259191791715308636391164062842241800821898902829044624068846336331797756566534995171117109628685867869899476937988142898148041602856931574584000277333317773791031027371664384321039202220944178986195391260174604691455296819213888206456883947727497519498311080134799517719367680727067747473378557476916471688487981944624661253553268587663500709095051198313394332558455221337573143625421623463920901253501415589638882702366791815173354108106736890299982045787908670019704030149328980962123107517696993938650306021202075543336234993283680875611931593655712012793331388984887946467294841101658339919905231144139515026317803995417281934766144798497932498738776881284913034443504402259527383890712870032936647536874420298298676729830585220573379463957961354324711995884875301205489780781899882419536896805711152211248479833767472655124295389430130209268922471614438894175050406574621572960853239765906025140829796035234269192651348749855490081943068460194688104273719456660646266936326765316915957103238746276179431773887799385808718626543709880996833673460711092983832533553716521841456499999593358827383623473993036954677536840898090646424637419445546456555127794841383088116336204452101258776732002794229310996327083536181018779910183283809460685539920103222280949014224786632693563222322821771736066776655374299842788237935350119739312220035209602203083660790439076288761236633309938507239238759431923492989507235867256235907442509055943611450455210198181803052942100369832803726647473975593218849910515293059509866202597138582223905582335663759179134780060608409754463968577004847839377806362003251923611142980054082722100385368629367040569353242952885197348898565740796991617834534376872521833969364044064252916339666738114361697632996016702849016450047381111449029541977296139631314951485193415982528586537970971249959581064683332967288687824965730140332637982497147541521229956682560818547412502803136362908524587403293436707064128563517052031078588764444650630988664534446407022185563758566555734990502139640311788694125659099712604583232323566766444032451358816047084979810639940657047340596333411801381671629341703596388462501152878320349248182241866618393686142146179367745546497967708109301205460586603989057681165422798453699647442724750913752153310234722254220923745331295076496163917832869609135392763564688285437481254287731784819762397216892217082522574260938686156532629527937286724875908986780066014524103933855616901565940792712853355441653187533250621176911619826588474660285244691034920301593296756223190580010813793703516655227015408291829999067920104240264795147364320741025952076603510122394375502778173310005887931746132969274853238328037182113478991509268526548275619301105976429106206340771135471013081294338422286755972138884898419633509972856460230103023800289978839946292109860086678811540991870984000329306884268713207586865711996545894854954785687720551288980057345541585629108879832917129239178252079316466333312774223916279982634197770453251363063129083032743719248374050333639958948566046795749812371957200019460531387189014244405599836214587018734903688167727749436204829723509709299174582556384216079862112847329501242632556345840594263628596510379242019990301950709834608720449988455654155620079867117788085905293985895416177603830491545870457291398477544713799161917996868648386478993018545545994002726717272239655673077816093080225073400733968638418414474332321821173041251828076071960983066959435393810640523401874816117756146157759318267087802010172416648783135722963316611398871889744728229796475425195483233992805861934813672037482150639987385607235688273737165331272828098592582807554504157320727738975887555507157971764889403013171104922661474175391312561471330529022559293408775463630884615999845014602935450263760994204014387171432617792303329256468366244841712205404006885094669576652894721773989208567352599831242692820516705967746344788452895321182959900436094811737112417109950185240652906154219880958783156008893713857669203694316482098452708457794144092144825249862481804939515103453818616275459125401796394378271949465160319211577325441911325383544346130253766466334313718683312354631705986229423923138181383354438099918064241516083635470498669846416440396336104748490719945587353629416259105668946639067509137765529290276898568627693342024751472084092543645276615291469798463629329368558021692090337719828708589633973637263891089097637294156230778206967852665505224688200520716402558199263724391261137270055474698627918517170962964523399350526030472331205408277133887891599942354979029924475611390382698440255076674314046176059706820040160647049912646818047339001879700632567794837148785359365885916875876505745983983765776109456766219006720219819466237978356501244060770747357499073209912493244386981358229341849349952706512345385313825436793788483583578023516362793711233258720354065960741582421925425678554344315475447586474807535884630653247094007030774564261948363754217211589430711079721873424544598652923312524369109429103505355376753797305226985507857086571613813229901762875798694548517997278506864637188443741053375301775489959726122035774442611225957661628388615120141016728525561343614697287802266237619395637554014622371118779277385225311616529813808497982045681094800435241645390948290261345621310117488765479621910404527987244758086697978929001244468816956913947795433434042215997835292000964587334663378805953261408880638333600718357672746655219586240800969972004788120652994625400009953400170145302870469014455464314183466358683950936980100270992898806760809247011611532932544174065625062204751993052818991734000445877256548297386811401372295491081172806526069435086062149126932198825773887273170026536017835710323164637125459538079780510667221677708965881206687093408987441235574172927873158492582243916134704041442446262959524283747267838565034160888168573162523556600787901254036913515751999162936457875890645796645819471613050776965078401484366014514920096749841790316344463608518228331281077853063548072129123600155142013338210225000796718478282283561891305309443680870993093364875667538829758268920453365507100414798810356847757690049977329970527433035545697531076028702088386403615975967888949088806515936788593611071200239902774822493523282835831538472012704917012781033968274751252679860427958789995922042015792039425183028160708280712662094082447854653425874409835836648521084109289291115177611922993304657770144151459966488407146307557840893859022268874488191413714791672197183071411773305348776682542523317676088651392903977393014517750013169415456915964590305855537704404813426681800657420028132230506551289956464351406697701460739120010989644674402068034506803387806753585393820371383705168829180869280029981324737506084883090667629889314977392176431855272448736213947109006072637617174405533058355931153801317762625166802370724788285538257912680603100855011288069013616246882804042899145013358587242983633205025536546154875310997946685528333708909308149451929226118172445736139791554148772138729641276252337053437654377439311487421937445251917913697295332665775031454566323430821197255012098153930629608696853524664214885322496430423167255254901589582072388981187671766661350647085738156119514918894732728106985142708883635911882729717151885360414653662913465986363198060486039896442923002568424951179494939890198673507434346810858744804772677330334872633635474011592339403215056345688188037388381293803790192448773151634113612318677305996771775701235852589755885457982948477978349757914890709740120181899973653131018880455618422814633371735887118797820310188521803619114795436083393398207949415459468981306140595212393484015590059510124031270625080596191799679327143741144446876248234381300250549040611339841021251792869300102556890151272611284327197969598291318834263540280572764918502850405146469861867001028617931207039558613472065683395572158262490633477871057555153330233844561227586917866637851114026199432147192120868867018843650239159990524141333303160756207622504427637093414328875489413257907462387664997505437692365785341979306090647388279918021022250017941637380466246957896617574811484930013781856558185173292427950302538611903152667425684084961974478599339396190189874049705952008422319763356771446654136631079389583633837988881512973165732912800754729848897579110516176071342383935340455148554360858927353857812333435462764300716267060271515006543871809788042721784167366128741146036766081003722270537781453247066077874893243410478103683285702999320617708797238328467256798348279087960144478365105775850355525790775304811358563694757536799496333659112896876821650705843180736380096045872657445909614463348062396846173405682961164737144928012509995036984214516986282858285778431542602421176866040617966025051375522315255247800714747469674425391955764971502477016546310308426073989167033732746900717910592442078684835641392572209645842463153667194503861012600188567454807896789842933405260899563243038568076429566429299316010762942305035857398408456028881236396871203712129448497366266106613393854831848748166211315106522455325822906357700350140713045743193725371588851178780172128995587429210307309585567725960359224885737577793186962023620310273821357084806939658759658963918314447265158750480280386131046777079414046342931193534000069210638760775937565495802372584602700300297369313862761128605838019421055560894447990625452593892067895228821278702019234633513406414698250548255814401848603418606812576462966202176058334935309455464024861966750396511434045134909348067961272640287107897336306708914898525617512373695071795617880901755451587626850792782723686362990550848771828696478093709918815234752408831668426056939958598241312235990341527081782119511387569693761094040122686887374147871168568355283883282639614118374632032793489695922808411947213655271282449211012541629392586519951179564987931856913728247038368942768844405680484661486976251058019009139483083562168869795944459035867774283964777450505058881931764219182451435528866729371315067215890196264188433759937467524028433103912187619984057560374458038698960013373677099832983761283900764255294632679485885217407424972985855600580210825013763055843350610447545844462445540047942236878544662625879954262499322213192179582967309064480550338218474442598735436524508388522514195700060786726997769315440376010495925797390797430588538573321982504575764509094567833386373045947239700937882113653536990011493973734108745724132635754836999221693675294454331658798684864009158486389816411550932428993198256795222724243210655668593861637255014512899570371037295723775395611275493591206049003991331390496618305684587027077248332512095662314225386966543700063989169862859552377187220218392855650720829386612923299123619102227120264529106538483084637217440249896824677105489483975781572168124787035859453183456084131687677085266445965485707788912682805349674020072058574938710929270865314326920237692761255044622477738916948824147600133916798520663267450988781593190824192722174040373799401492291559928904180226443977608154624895244769556953326812700609187452558948726659040816539143738974158579609276675409856879106728423229501207555393967247650765227558949255379209297883494084440584595847743972634542272758971849117719458052066059219374896448958545117150491603525896557440094139828659382827274538731385702266918128005378568912488823831775155020442544068439038711912021485016601118346824579477712892903054216241811707887650502152595892731816664481930081652606012490704046239300502480102758886168554196631680974822368639471407372538050916135868899397449335907469754453050626513538424130925244714141319012453356595926946653019044429412291317825736614445287949517138472814033405803016887592005280730339231761232302449077218413238281566601710271267884797965333042343054145318723809128849479316180733146228698174450085517230401063382899418214809895524734922283589728515242792857387886119193713441845312349113483677055343639687344586589271126196393641825789252385517631240271422980607380661599897629969233349730413443332021456039371369678635511783667862332150913797735235767588722610008908341108218739561318626683996913025124179668162055013843510820538176664942990947358256942789654274502624709404234105305180976064731290667419123747021481776972147330216769224102101598191668808049452828776896779174122701390280843068199999423223669821743939654794340143698359005467089390092267114316805135284542347238468005944577855199661892306953874690454671995716318179235819321670822822583694560692496527121812242913338357994512666168803628975651263010315108998868486902545450977267847805878381696132284435939089948311728317704617136209219066740090937134287909114654764131216836580286434815410336684011278937746406520592776109204758059739856116327339923819527796462769619259047022024111149454951337530761328128443197376087422819752550904342265384658142175791422156333317473168243671393276786924549897851170838231843358964438347570757531007591569908647154158112986669512004308296836574231413197051790686970370871065392052370520364284231420662665449528071006224255663511054325999349261019132728325172539243719567043795782779607020223717492910785043599604118561850941692481624023723840942694714366636402844100212034938740410852282930160950067690189596680661991384779312159124625931280697232138829885193068450678604374761221118712281381732327194674881752262264698987659705835832728010399447899705313376432123005755916948361731256425012631234320218361772736446708749321856092611882087695994082668352886752644511135371753087714561381849246797358812478868418794546432395556273781515020308970651599404647461292521152959321285653573253870180678732859040740736951952892514939526246572706269122613474036562873877436362178317493265170694974980193608516392177128472500277603620499340916324333429167710281986666988871155192886759587180931342606934260206522522187347581768395534593302272170685430890373712797830186361865787482305842194603892671688016516146161743976776732816684990804482818122265209785229357004831846609511179752192540660422354851946297539487256353242836683220817069082761111271359025049708700278714823765145346791461373363284705634795556030152185349020546615268950412985965118297838242974851692009082902034438216580832403969502749877002449481246638961670518954054192902685238671049117026486689962687473567083056726058958263864697265362625903493384444213994456027300551606213774231130876498918289287174797601980584387012082709442676502268993155892119588936836634422837978203953878134224263093141020528458391356638720283416873048491595952544543227853922271074702166611219927738317137199586557732519796482488422183814474128952484915168526935433624689634380514931948473814950275803670940430851827068823617261135947327580903963160433913705875967056729529493495368815259123725398725681664791846429824181303393624452508260686175860590285966914221504209220885407670585899757192532729426490789486240820812839374762533648538005798295387650835143089273316283263740771681555822387727714585962713882936315722798849590420581730641620344492686350256545194201541324240838308949304984273062345670177172826161666577102964174973519827290693071491681980880540050276826709089261387746913362457409337820340829361250894695224509694066345736322518299356612526460327782059151691873107655959355184013949319508045499840840430455700044647174628109780442078515287211939553712665484197715301684224303953012039585169388371937452782501328373414565914654386123097027107843061301003058310083872964487165242265911062819998512779153763859123878615702011737199245587247601137877808471716139048286061325634818637476653422860247417443028996980059638101293415370200717317994272251385027998687129315172488921333006397737968509426080230013098438908823547460574020442031592562330754623751167368076813154879581492325655900084884589110492052457834091696260119224721315168090738865844647261539013721346007168654481878046022613387111058180433219670641592292385421457664780734251343199259976628297619937224031250971369713434388243765082847938996697528652695991449434510084490184966092227742407798125660232399670327816857864336451589802412778282130177520219623917752929528340040905619779522054150757909165005753535246996349717563349280860769401705144251514259932684036388053853595510570573491839857122954456642209528856716524628050856641208655381745427791563135092639484766418575758195676859703364769551831927165709332793328140605417389261969886862374217280882945360193040221418302418674273773175653315348734935735539884355956549998474353807161565999829615815622837527388419127425968053358795154070716241719480574584206022021475727153400292217096066845954836518756073470710773752909446193146014917754694691546433395794618241955004745520062717273717046071286740102921712792197811274931891815669760831532042157076272610712530320812820403431920463946157544492486351886611304090199266780886733793463553119831067101960391581397579422748183208647992248942895767599836510144053904424321371666691832293199340956700564015286112801367294100237577725771154186565714426719435685673939063562534189616958222338899822885876515934333445071917832915697783185498195716869295218784650290372777923435626843052852466302648555281300763479647822680871761225109139994528083775540458123705276965097425198751768779556433128552054203352044964632825928761633649253506424578563020900084131147710926390608844971041399183040691616449778763652794038971838451348936518582316781417197878631455871649800444623248326689074219123630328576316122366056651918785863335505785562702796436426156097561724054843849071275883486691727629729221063624354455032319851711380063517838372735048850542256112524024170972535081234742337319991538014612068831942289707894769645179689748729730995710450527371461640894934764318480870025338756796002247459333826592885894622996522524752024144517734527724474680417767818223745867679492407268439094259944032545219552004390491460881788761230333830418889700838256823600972221394738587749763559326967628048099538774940414332322782188665112164594955239051464433054639558680451871166655310064822001391513218068922973390986048149649259776008546215339441744850002187830294825307726860959758800489846088253883342698511768244218733060795261851216327021463408560893903326994700941352442530626145836207195477116831263318651554769468659539006610015643976025073138947416781795952109074326495594454987521523328487411244392884269949652117913745881815612214208151698146225966420887406627481641215072232381023202831550968916123129245104704026753624364175603011165352788260315684580724460082268719130530826177616484873721860523626460883455012575257224466820690130695583672175430303809068392901035459633605766705362229175199658038757221765656326182083589091125779805983120351419391221451320242991631151859970934012211087687130043119842488339221840683417768822638135461781396048592713554370951022449985068288876784558822377569446969029844242254904508562726451765134179576659527376930261719095885023357043325226127296450789432461099450428682087034525920902687256314447390543897594459487556806936431386334079302344207694051956229920158294607770507985044097935444682418698947225213777165106600234199198065919958444217994430440940337814052809547853146714726802570205157102249884243962266003679055536679365911097274485069526724236561993610409773140992617589481754159647438669014292563311263175427169452682193088230002707729206124669424617401443974571288943250996664248640644178480348798132719029712476061907253131501635353360537376561682313622713729222897745537420033749395547037644790279179230851987707848915865230194993407751524883191693912369647449056547704337588525097974627945628228029875785502540914698498906726342686101062755744875405547651851894777239640513729363499914799225148860962530750411160050996497322981194342530501868192584308599542952006935198808443601124220212661433381864234207646974328789265263376037034501286721033425414297418473640046457477102309010731563771298438954245902670090531143766491721668525983679028406521217329143044894494461348816764271900303100386756714077324915439786178632878036451032699300977186111788992695193626947600081165258541088721602003448246635558360722715471966707896310749972177961053195589410622975752694813125289957637129377893677173604445177456559487847904318574904975901357373760827693648013009875658438752630318695706878532739621363388112864491937664992858040426742140845720260893484199667387481320792427229828823908050223503940559731514026572501327442922460705289801304662314803683462091829418602213235361957103918192690857443006464470363531027200694990343223348947951064447777580394541900496087028287567723800319620843542565135958879447617871497371685376421178082795704596948911620138928498008739491276150518958859064242151323604724050513427023107773015506427825227405064716095591082179861781983175545477302653091018150979890442569353959145853835634261718833629595819706811927906084585024942621120113037757580972618911185456586258942025170262856526551614412628427103830190829070666783402889170252934347538421215469095504893651567814740400943042670137356388113610907142738574497457152430974282250084309305344142748496977094035158499465132450572199420116844916021344588811212400763493898057588809670073877433391530236970789316440015635576130761759325105687809212224132510505149410360678055425255796792261013324707224093674474890578111264947333203700915504759330477657478535187473650189280532672683832193790198366449090920906895904960454612062017825204554793751332741446912096300228033239893518124334809111760988219379378880211778881218045947119273619951269836361914306507091561771034094093481293917273895182628682839743618847506536177656684474303718146711476500468109193755372911229268744634359109333588202872340760417686837335975811872792387575397560208181630679721926133679111347800945255776785521494049832085390576066487626988200937624690550945191539397190090379485646445694560059953095740665802373198829202850472429267964192624184255244989749977112252514143053649632933388789024945525516064098066057394311362177235120651542686133030747931866066059334295636363857630655754303074926019093455428997199257196777450987699454678511205520011917720566026000510481709714113072198203373449013087736939699886221330345250736206935587634255450045055474102540694947307887059892248956651693799930504200971374102556616266535555836899205301474457193227576104296049115214257488933173789443030197683601272266089137822344256293120282201832811309424413524118270164688452375935776788459182254924559066526702154879074809468524025745390453352971575939646756372814786871330703800116830709343932549881999212993610886685964936536391713563742255440017927414223540625446226453140071865643184504301844185899920034995897897241242064474403410745352264912727038409054215057116759664334952739334817579432559248569568498303694813988198475680927478920922314391384171260556850809545279328634498057407363470884389292433779356600238355380566118607562702955915553543358372643258051749923847231399049620156710576594777546648642120568677521951828365245922557827578960630171149733147292854200199147305666923880095955591329469796088812820714056612165644120211478704733897306924364841638414618054076075711886450346589352161243788860743437849671323107523137867089894567779295385029507930188667452572001027839287352445460352370816734720290765307803133888228988484461608603237674519510908284639937221765364288495835494050494823476808097591007895737573851211430096673790114378530559317274203045256453493082689674009174110340902310938709949867557942250653262131532359129447600434878096014345338890058029123667900594349571950535821708077830280565741284460448726519918669747631653025456232342987371203195852567219302964280677473847457164066119313735323510444934423511594237157061722954496582308473746049150139661544184280235539078873252087429294881942709576039822838048434353482416386094590339793086426432977799936191949474502304237875621423253097689656149817315004659366861855519098872876834859886347143199922209960130862993011433889771115636022373501379552102322960899234542667645670423435669840473257374926329103771611290382679150129907069966361275921184970735256492695603355690363085519529354031825178643502250376976604774624005163631017525270801082490279085452097529270608006265525621508811198739896834394154595922684032561956734162422154332036661949004692180271936170982372140647488113640415099941249902798791653927386509888408037172134200265902639676986447010715118764418790822999867101801405309015676710106035196861187452581130906262186563305633997799742887702570663308046967400418421546580916280651717455822846646556076830913780880833519184895238126400223215105373289538958949567159791173074095558862126125133126309573882770410319970930758594017596461729256223956132847550729679350910527590000728885331744358560742326644064074765763927620727908698669860465831826354748527480829400325770795099202050954996215939676707022338167905690989007999150421161656549225758948562543769554385237425211195905635902961094256424920451324263620902493532999533373339644036999617934348486767136636448097405779906018536721492006801246484965566735285657487134173435091437051022771428885748413562798110310712758245911257006145946533786014130803111974206611647053766994123208166645358416651319650538781424081670691482659931154815661542769757828843003395239401965297687822314361165021912345937525240288674944163432630834602406587200386564890127053534894469339258313356956553893853486205944391907426907892302201280756695135124641399166939735852524029684292733296687640274956636111018294831287422252574777617777673053172612308358845211767922876059497903765463968069916087689526196638407155230890964380269807510982735979826062145576534861687910060849988378633601933008432124186223328787652318001828790740128959952494573164478512800576839500696216143425018244550848108273290460554697269419139614998179484190737884169049254777612279526790877017970769223876090183223356905200486094835731696437169590098178369646090640089424194799576232825372464363938458465342239188114391535588088771925194021557669745758082319003854763130714827007736464255348129232027614223566257262052552592538471558255758126814631239967936238372885355557132962975970374969856198213852244784316064924056781221180339403572474827710802017163519793399077511684076439541900911264434780978342739037136857686240327482685592919719622008635833327990110908880607930119798489464178594609444147111577906118170254996108632242439260312241823605090935989749054952888409925256975012490854029276096736173337556444084072570163592957301829577012008954989426770463993685713453066094163914629184648964283449919983608827767417021827468707240367615518762174125912869566851771220508159783139423507303459442749792778419791910000936661023857416712759019747611114212402739008003808078486883465605613652572809862001123462141572303951356418115451132771174003741310537226102200631078298551751730101611591124233732522866404725398670006594144803794780313757672979108436179434200691764893537064816324650806629777369645178888132108033148907232097712679755848105723854846560476718342284899511693367465984763773625712261826766772514303232592837443086069888121898785698317919091824473863321492675728670768589252136907672286342874315430285560926595775964919373181326950564419882920567902821386562938951324229115142689681059618812557282171503209227563731519769841833917658961753843047684674359013261461781051287396692722378093845068054169763967180113868651769131379886922227030561908882649815215872961457159372007835733500101174473732666264244761493708988919694766988820106524403999482071890518735472129023022713378319395180643669200169475487008140816331051089872881471876217381025824046108703360333369778937513818348294043344458101440302624159631499592560573974084742046257435263608284586857966931910223885284608296911770044022609681150030906926409297625339930332793851831023764082091142476824703089053958636706780638085052091190599612492186066648813646667921816086458875109161720487749104115093228031580429488058793122115357968954468820405518943110877539582888099482871794913660320484784751034948070730935095780445176664345095860272340880304543094477958379300936389036987339423588846136542827308030580410223274492447354569745302113519328911572758204423802864218826218673584078680363964356665061429213517251561765064001686776658409378829218854898072875306981912862049161207674036100514105458456166413660556613907229629873408393716364295724057552658536979758313233834916107429501710280376321132024361162136909374986880117482965959320474946863119179530046794682823164630310330693494553519808556508272918232205690783655292035102947719895611341572170410498650802999938487536492312832595721155678572889601561349638817570198599564970399664016390247498760660436787420450794112855481130744631520891268540145870934002966705279937909966088209019710862169919594905756455081436286988425945000758071829510659470692693646635784962904682970912866369172808644118781595689047439591548792794693586808601858431287250009750629050283016200513371121359818046424313363732958865719512271526716138280766242651734244209958530814348423555422792197728308435573816522326170192713047662668195570684937230278485854370379359583152665279727073891427280270630097337984625225620801333224618448275663334857587257438441980619166204573816079385674085631917864396120597686360103814575620082715616418590921391700008142160026675946178836009229843965061735826311206896871794053416278559195030052765814416426940823969134609922736885473703178917952723090016025680593260196414232024428692337757958387456092263570334870151572332227467700686243695108130768044876085505592865333249786201380753605479785583226565357094309573299585101287590852191832907188986403375015932823087409011192560976302930036715126274652563548802006575854474836703548138515659365930068321663262072294961124702616153785067795826880943764203870697854106362694544858521685112178421653917130579066519495849669806958608253754916232835464079478762173979523749621455439909653426934838138678866081341529338030935315329873227740009981998991867755080485692325261752599613336317534629513254244822829801179859111940811342697765929500004944535432121908737500437181906089602559949081891788352025262816521421204136047606780668754541489074810151629322368305872132294567345112272490704850844963825948228151402903138083297722160340696330052936654092015953612704555166158968693700590113631894507253344073319836286509670260449964028090972540985317183002733087117077086741721391736915178968974089470652851622929714186165646926206248659928831233250292492574108764178577043326007682974482787269522303224367222867532148813849266173291873422714777735189990132555998027168950628691905917484705710774881768084558885461253000115572659079022376568052622753975554549930811862883785695877489348775115802200846328509781672599826980967530654179712858349957267891194349589706618878432521130801405356489444462847134185385963701724751550380568345731229219799209014950739784095272820272727451672112959475445107119939929194972885657290179237954756860110415063449188672976722785222676764551366305382026897047792216651236057780906071813214138170861302354363469074112265796852148011259384479372198431123342308192060334990086243956297073128331717157027294277398987239950992647217396493791329851718493085744039915135734425488388523072589505013222952696015474720887901453524343403611062703262318880257754902840915130077454220685063282136196329010328963428895199359255901610529135421741072846881285033427796647745464951853451895830620349817917002196193072176873729152670743430075268811254046479777492860688972347417968960553907106589512390028553979033405923989913832147535756168446486678348829393272484605776633051076780731896272840571204729458463568291695463686959834295664628783707617676471076721014378316880401604675047057586952838043440579821812645086497896699901741242267505383142871584992189899864545729415793287470084681399978607932012609981088894934709498954144357550347947299294971675486393872436726512234643622053852100435191029533499199519987837680247430241016461080777006020449000819338754231778821190427589707761954985090477122152343551893035054248835417531605859325746478020223543293152146086017537151425794248532439674456224820969715321211424483143091139163527093740150311703304111426248994027789541704979934428493334316692894756712665240336264774819036253568551648547562809859709855173923174931987819901476357357920810342656696592551151579580557010813985659870264471690388667270886547461721467581966801662581947007005692708090153310219364995361817206821124777538825494519203270226973235059296301680014207572049079042961810145040463542897568406025491985505533710748186133947663467520668980037183730426272473492192970723347441599537193669546850404634122172281006719654509976698024718210054796865520930081913975438737069814606422938278576134348348894697546885723850023265599826546148585283121755739042121343365311640405438723764907006375505529244304097754645575901373839449802598009546246838922502855454561504046938371439401502692604958424937614739805385234912736164751195724347395890711320307402297629868054338943478327225192692424996064503564883382377940909657849995084802593266430372657217226844636868684708969461902272478925090463377562425895307633946145581527954279955687979740971630123207783958532689615772231386369006048334615592840869267584462459084208372606107880934374345073366758952550451443819831134092514897139291491129023841042079929125759608713453588736140436919548472794632181160142693674089384490793269263979427456467015543822141152355757836771332498886768217676488837979335800209061755369012855576302468886065028576250229518111375835825617707502071939718206155638766737558394164691544160190459635679594099060806857864018235271745124914124176914792670676701578194717606618206287752271374448456853601428668441646123963960856295975254735700116226999539523399574302620045071945742132247395164932083656098689138004835676439361804799245633519873961640493483849666684201819822046595351540103245155321421628504934010531944251338848172938713961749825240069394415976619625738209619326086043032891974558623714133933077885620886020344080255864956087046125897987990516271226331057491608929359617368752092779601561650917823752353041662614578951674922057590303579124928263388677565241249913105280634033675717363939782433301446293047296049030910800415610678953854439626775178421271266140723546023970454055918993476706761559286053430448714754779018503380329539865025852052780927940715084390113225521837937245717014512990977850517444985382930034551320007814148029928310960575443133827751479128104572717003815346458006276067455128840877841050822100580652011154264134929665276523087531974512275464994387995042099238559104812329331084616406613789792542763985088826750774978195264918859933868212158762392903406226802287600018861846335738176607689892538257452001188269591496531749215284641806126635287257729915204862193248117264003121039832148271809301327575181609292882782742396439906329829607504184030745119986332240727109135699449340776287041811800712091167367650920473099553541944673280430330876905714744551128618264156175559461758843499838105935410306397781971026081235220401123434822747893061129681466104389364326753093435422167156576567912481335602494636646654961553797744425990588417661481946570822870982510170759713298986647572009099616578943295154944633308370566889044453708391063066556200610931016388565508706383909252907198596878290438287129295251326580401595191708811347206653836686948507008577526948648059304886998389630961435447349099426587199616239997638016412126247796819777719274593330428077385922662013247307156350097266652913203594807058989517199189275446422167458537230188853723474176671362292856660107612621919110110222436406784252034504459197156324805509592399809463837013935747608600192419730460424835992575215561289119541441579680751150923198355073002679568367327970737762126754389895880893528129805828803920123823148277399362702525478326924389491000333871189550223878646092010868838791811760564865250253314166544337803583376750188220909510574308848501488392905513936495897033011960292254721173756472888872783371713039973308251766460734937780335873281334059698567940875322481961869975723740877659696262950248487374751836779011858782930377704175478224714645388897146550829342139290638737549059472423940191003376973920453035552946135893298012895322603134695344209005568905298361853841275158269713702432663835494849837939103218007888097558549146334231682369610044891079858772626925624976620573344802233744489094912231275008595709546989915467967456567559991439437978776106638212342266363438346877162594834508534542178122360344689723442475416501129598641416278514910169992781451072556679179648057988886448721148894487818082350147434869826155622183464911056911029547399984744021296741836220004904068994764595551922481102814099155794028880805008955866565296724962877607732887513399128460156708740244434068533473255577096373898799373575382742090201153552150063482327150227388084658890847444919194380854813908355252898471141647041473545022742079170077519076017866023844885336243568115439015358132898431023831636845605947555262871174735538526807177800678527633836308723557876673148145774143591997933364138997694925107017139159856010081331130966699526697802158009378010102397659729093721194944191574195228715612783457308725983993952333009596556680728320027196006881495400835356298175031436462986827534880485460333727301535751732000593535930476057429745802516316719739462323625454281141716782697691492703786252447208458091936395590417234843504393446458748540639308567215182305050230204952569173779849495060364823125730321059272518275511059597493368553244122261934469215655155369136160649979854507686617069853063703719681928555715325108027060554897647545377318106402300403970813759920539521078517438303771652514520265068803285336747200746880770747003406413194410590496760576939765537322923782076799202585085054227602010792492733113883454868471550898196460031782988950865432018855246562384582014306433159977428645807992514239008620566284187750381292281543535749348769845733867217914003213331222225162209455153722024908652479701346792534443641643622331751090301630132253569794287078998709821095843798722610246025290889585824814116749548264571098755405605331678144730403191663417656395036529279576459893115295224250874096161698921959987420045397180075492857584764946949068983108653734356346776913794578981272601476962824997319086293311090309640431028416082802884829579398995291473486349174244179035349569612992040488550750694207658484854638996662315822971532935319382477266996756927587201764685468346957435236762919374591362523066583277771853344500805906617914591004134888997358406618517135056122394619833333327272598523734885067320371333642926135438311293314793344090618186705248892411014033151827835618643146320751107990448971677898374186816787647085015246694510079051825697173470619915482765840394387978222845886561724341519713763090345970370613885542625699289983350337472940623608435687141026351325788255391559821228973083356269299851078228316908925648761248593641650357382363182993101069580719657204501721919156192775688554937651316934049438070159270560970892187457185022745754278527162369025450626059597888935220368729094983992888408201469307080202317389607947520876979708669941196144737081823822322082202573878458708339507106821450704929817786301896329574496844630491631837683399118220693045086153348890099131277101288499067605570884767704853803901957634543548182255386656047459506107429062918984428275722638873724089397700083640128195238859135946695685068357682509724342681223315652321334766056753647051705475371343648282477525658911099288523201377090374441534836198949752103178567186447142116483374317312122047751807938199689063821895610733040469792818911990947215553242265744653257492471738296209871811545907966476756779959103989689181571318063686775616537816043602264516770198465671394144504798293339170312854761116080166049413964656842474077998847334853413556562377614498955754532915979135947986113725870534105232202267847759028714876194765880638769544945167689178487117819719954219561880770563704387012666353988495351047558210060242770391442209152040624696226094436517200114480842307139425499803457583326352624422624848285658211841986199986193523799119107002953001152202324996720548454834779220019691507197701862860750344558817617863389351445562432110738469972310795312597911439743420952716304941640024507949756618187456353796132144124392104591203220943724314240501495255791057193145108541289047637092179156272043004345105447376975345482432717622380914832435553655557398707251153664372108241637330542336549220381944010411207092446542456400096446955043556406306477845998377819540046859313872175307186491371039535317230827558749353597974110678805351503156397635106240645836626813126073008916449603185287619820700575212896601237580975017869269617185388690921874216782636616776194947665883693316165426478659969760427405008994113590933837174084613387446622949872157292250879891565993685644366785707736326061667825609157788391691564376569000020467863979334007621273440338181983566802131581491720068884159765572941237828560317322461743510176299298276790294790993087865973090966664222975515955584491348095916892926810013055407847107662730275154428259108182837207978449501479409957189342791423039904840754707773862373618108806486008318605905611424877510555092038993326278072577260141860894915381715204351330637216651580721883892186842529348003223629837322334222384724334772604896518907363795569927159799494207636731878783514955361449433851965000203403475722731587399456282388792913593547139340329490556044963481338960355673280083712677092931185769545425079092065997269982000670644433111439778546533583735921108962511524131658389899146517167602213459405037724986985343196513628387007684622335854596461950502888675277164991448199495619144774450416073403483857570998974936452560084472860598931205609575773613745060574501862562492238299398290580159433154872461522850339065951415402766443896612387149639788355998801968829724420474290228241681827665319816521610012410656651962878114517469132854106736983261596695116998020933831946462582151921148666380504679455967227196008446083388643552345500618548288184877508267385790574643225434864725443991742718068390119133865773366566373444600375423118415032957393158199237252946655816455977465923071954379724011611164570042960671149039750016521338043985530002520247910661845134332883194565169866489192352853887167419187930252719551530689589871222997271922662067400019817378031890104125051083444711771654949396339456053879765146062223394912612034581740807741537743476364340369733334928545146570289847191789898168143319472622498528831998412694474359576002128343787053991107801680585943532476114308533469513447540616726609867207479353311625707634374903386905285364537972639840156662073689440117656774395619668039690138207603344909857012053914518690383974126564563017129068392243486690538229782505578448610985325710570104950136658234278794787176603552497368149473647371719358333506141566774336655831491740286424865065041795227867805200569967665235432200000686382002720560657592466498787446376615165205702018778145045907434943346778779253385055841747995686558614474720791220994145476368455221474758661089252628351000948364021754812037063560973987551118907469685363729778248303931050873329142384176095250176701127078726915219901528122526340032494030503839499673990038541555472105120348815347016298246264885179655280034044274760706490175762949140837743140688875883908031996762673485897748474708568482305522680828025542569632902758865246489986375610460198134827333869108034014168574262297588049999799611733188698855220992971567565994556284801814947112234739602897183415783590335513738870694357656535008698362140455575294613382238668710632760014982627153647387115092946859762085769826170647541023637870375466802729744802649159046085532669513479801604368489912945086718271441639138124961172510033212719555780516398764964922170527517011395519910456299231815560155216641797867195737951943229073268474601287457143624964651791451782421670479834902824822463082207725950547433887310018914640857193335399606135345472467580948360739825111120004683804002288741808487029649004891483366948814393161524470653678654444201190788416415752527619162636611243169542919610886213781611561445642809355982940229084244277895066523711889287139669177972983364494144821987538447340656130819420534858808805782466076944199907111463887142117657551863434065029738047112238534531762992250251769504944922817170380257141592139984751239846563673003435708332748184312737834667076245674865029694175368328371590323843090150310715629347945562712685558367310130187546330259746986067292963305628101613533581067475559836153603410402669690488259668201692943762871239346514395094163575106248571212432562415063006654231323121342433472987471324243352485618121377154599694038229561506154320244991978123752243446434328875085078201352187765141616346773610443931462055439103558921963529599595188220161435218392357814238124105483022298014642002955484629782892791571436567255589403639132919472374553710685762333819404935995500337878268581808837521101743877781499242647492053385424709511811817956304101336014316892138427608127610154426935331867440444989958451123082254475665780640545588449560133342140886131156020530966185188210483260291868494861455532578079224996339382153561290158919176519519730283596169018209784326562934571626646482120320635317094187386464661604777878121221645022791743945673488801224402565273884075529894533725518324132399002626063132038693564729468302463839230103870481924969224482099571815226582728102662486519182547659504368852052324237054408850898780382778199023914844308911447134560443095049460609635053354568053326257223457276214652134946664868280392600671856974103501786584358165249880287359286288674119853300316470674184399933454203173756078782437851338587142149063455965356311850946684419385128536735002263754521595431724032717478449096743185975680632886913406295144297885067543491733292934280802674045842100907278818558290285950259786213834535448021549196033539913544272001327462134548924334787649097068784498106613146782853275411990587554541659790636978853279250464025415742025667919579081750014272855721021595368220815114397442806931217957926257950553833954241527359335562518435096630157268837516413580935501901063292861204395722184371559028313781118571111475947851085050477254606812680151438860069805217042410007734256496642191419868912295432850831150528371630430802578988323021278132602323148097186195857286466571532268381616348642859973130293435020908230733740632126785346161724768386726775284382121255585645718393971547661845819399283268089605406687106236955731510778911795223307549293507919256159836735618811284442387072075721565603016356946869941016878706200041895125363549122445336006522957308144164355912958620632019993217252171893381002567910181706486538917050976876101872142075232820325825211501516299250422435538539488337324757138373230721145899715330711077749824593722138027047506388779687248096646100652414491077142143423231997038476025053032442443278637059898270226870468798274537317763908003120307453829455589229760097914486515793869217941796163901370194612469865475895070065023382307815889828554750862718024090893745006553942600641548455533423920676607724441140671437160595834300241780694817426491965846199617186725513704604115005156687984084513775403685046609298083878979885179235536378368148983513394293892606446194078313620111392796041544879292688282825199039651477133838277965639897177177154676428590840171750885329337908286465808107290293112153900276334213257425638261972030892696886190805855093715711491304147895374227521674353433459251518366635470859772424543911877284089423583883343596904603092388952312622769159766835960994971368893712508786983257724863516634337833591599984323042338696401434142736222469384985315126194808264986580063222714881974271620951137781560472643188811326892936659786956200145309862258718847580095179268746953640763446722227097033580375517170459243606438251281106699874880040586186512212385944525939561358579526608240737835745021022852972373152438906913816159001846441183661843926475047105751652242800332479291777999940648627120855150272562235563156693091963705699482202166273851871513758103176052617366464577843275485679000966173766991877634586352510950767560007639367988586045400650317398490769096082601325461557222986634725238282327534849462884796973891444008905025214358192881601031096421214138763579841932255575622117387028289669654476591690922828177073736643856533996778221197108688576900204206957346583193227062402273710467009798059329534678517184288760154589432652927966856738400775869507960520607000658604871495111522686456877514535379484578540627828237323272919026191911045595450086340002078523070425239192480352912691025646195525558299309358948651110991059376811839843320372470756451906458924729781267972826981802926506579958980763343831694559412633446483463553235780056323915032117977729270504812532547910671831164135589540692990505748708412920197419631579584282729355200337870697166331965587142683815317756579404986152178697827634722983290660101203430340654565581263659765137801103627337375687899692702853341706245075024391548625577676757224676015201462088183529716833351922539349779138634532465853810849353565665845877353290230334398236276506715644611082496772584371131782811134346736963212583735064639224066796764852423977166388216681986488972738316113471639070437628905584535720442182561685591289391295863838357069314901130792894418967874076994978046811582591761613517952703998302615899224503289557012525133760547329097924311502505466079129266112495641185570322787711213080302580012089734722243556063140426473601417771618496617897189051136004366964667062765306037148300395431575666112019019357807411351948497005279397379342553866650729566057544844777579789718994071261713022319807463755056476448219176333065112972495561021808153995828828015287931044189071688214338415634948158069517525948491276443988123307013569754707212831939867892414867962354496673834841802960383246958922390084012365861603987640192389889489584935064268421420297191179995199620072230523244488876337424342776089909118910702091488817773709885948624629828377277203554804544352904523290344092756753028313427935577871311156641674219445865395918684056216887449553958064955666646756479223066176235104920789983099026668364897461505221681154395270525367343053624288928485416415023807008826476757237690881499402540844480061287910604041626091277927913200266924212861945174739184321108638920094343885508733065692561895451608845183569615838726711355020532963576685825871970190914318409566950166860896399214234595285630061471247616511461234238946199125000126747320026394125505147360293302133356256544509059420234986255905284963316303027852015247367302838825697228143561800720933289138306766770978971274650259171863034149196793439877512396700444894714134425217489760627493611925686951070701154427409088712937710713915506344782060832838539982579602559999700366274693332434734270823282199658592053961254667629100307127699698194026843594870960574447199051993029454645674879248932610260428658497868947445326008276307572501864862430615156665441018856527247784246147564760509233691582430929883696577960002662988680541236882881283885638162647083348364577847118525109070464295710379082394561430083533078455635186641160607725434816966075929538735234980637215850872482600786783122701764224237421655314179499236379304794223638506566114070301912848824044584225627717113797891926582547252618750325463274616706888951968022037927122720195442719670825923041526204329523767816718189485860086673334866026225402351380449656471520021794849904299684720435199494258413575698251686290845994334470673901050457007610911352310874024924380819990754535726211017517580867116622836058004899734371268737333409278840629287916934416406618622637585431102970736757749852898450669665036331663914003882469603719155107976877965749856607333838512972510245652149377907239281365558123596192663843000893974274562350218676559235883715312059586118008566452187039405940314549490391614000279176289356363847977767076497170594965911153445676483148392922640137046289358855302181469068467743210936868547239552060703553891437180305372704812847497550016584748382282410439218697570487376263268330205039100151402526058551455299734591206258394929271179603747490047221963526503307561953214544592510412269570509454872408591187076890982889371048024659767294789971403486573350595762466303486189737488869559913331892655542158956758461706405256543788099090433285313892746524453063581888208125613472941589327868882930533083011654008011356740921292838600960459232476228279946235042952093696722969572401819206686143015839172918175957982409006822648788096380822338462213620312346609841950974875738681838731559552306584980093299709976579049191920047499178514861376896283583799956559045189081494908355503433859014301870350946168093302901689081099685593714228293946462737861994151864107649007350218758627858121127267283289391365797602416314684753495154469123872016300816958484884743428113635577261047078724968715001251562325357620466889335188443934483480118873198165623846304797533317939841813779056296259182255474947485571687595345125911460347318046070188657377502181981457087078740730020307184028875539944094872284502727093094259895544097775470942633754539771238084388512223755709826212912937508863473659029556113643902442375236810731765374684310597742632125443560429871478978818079386437968147688825138182134113762142554998612676229648781563134144357447047676372575710018281326507365061568564423503443488295507913063660258903040724463067084658906666831729991085698472075352772029200325111566207617802927544886962822577754538126915314045440302685774780340542689554227783433604706237030063234045705545496847803002300355640544890909964530669048560639477585579437679109966987550607462564281010197223886286660528947288666633916306716830856080761565420096224065193136581103322331026059936480364460422074302438838158288537520052168591027536068051009693711423097514366743128855846265070501891775601427849393921159202113595241991538011883081310247978004558442377468334206810367283341873624822206895401776049464994377665746369618372094962099421695647094546575379931472750363368483615762183090703918516423120661726548038736880768480294249426775781828832535521084830673192204104846869230026002061300772418281372574378173051754071932156915881199100988299878730846413972016592635086817733581221901653952283757628658277323897801297966329148846376051669309652840334434440757769879301042008156791431195361780420769622632276355001782642971566741931353504694004311032240685753216283951382886124584040140121797767751033777249653331844072887497518214177028650997332701951286600830221477281062360353049974910694207076212426218149467542311215242349614722938042997812300481137496493646293315059339823728572480097946043073530637708869094858756347788645116824489981450727984583837273073680132842537473640845888670877321247474869224000323549124000648506644152267079661362898332876749849162518072134214339627494220268451024753368054903365132665966188681234222425685451278100390226713258570004721401743949104605690025279097549572957777388021705224081828878627993051985663580362615072977820427315382062743955335482104176641163314610772071194537337805480216086819309155061179451518274201856424727521067320220097046878333607901510904489008704583724262978818637296995734968651264987482719165982408072040697296514808397254759539209185025600856457225533718399153143139721679175078533742696600202391381112794585477659751200450211932390534358248616276666838786718302950094514188103471711102280514662602881718534307530705755985422805379865701968509759661617190195275414971116021078271710147896717441767181327051932908422545002495136750504574905123099690744990379150119209852579997116738755118347336836810319164687248727445997432864834093850515160586140437465004447827770795774786452872822094619510028617587384235762875809685025632151492683418054201275889714796633470714145675662964348491751429890257125103424643251297612392807921843416366892606387590299338809186861999465334230107272708274899132608209001804492415126773193985756217752844018158183954250607558551939203651689501119068617182147861816044418153846563926328471857431728915737119603276168207017961943365009312758273384296176142795525616815311411877478461216742542882179890984109698851573489116768246144586184929088555661766761088944363078958483800727819429309393207695712445849493419732086745357492785618838013551044583413883777818019653278880748619074861797374056678114682434908124652728732325852445723760669656614589831928260989720890643102430627286178245321448873197568426775258081618702336052021291008257779953898038561484061199850934515304619543274047580530728455842834283443951789789724300866269207795486690553089069478382004363150406068769591606407118481065547136183261592312464029611944240277443288455268259183393981808613051909360853191180673240721570043717239227088444078403313087276881837814298041412102566310515453066276535631436145746542484848918144313025143866286046495692019121989989144365261702412607111400997161444903151303481519652926129945997698139673326991104271611369509618750567595392589925123517354138418167699182187628380315630974914510560267922000267089104126100062266967767644332388652617605959884031639244070701958450489755966543988348936944856944000262622951059805172243016031729833333261494242142668843014604678791693425222684595991997269565937041579629337734426608899838080307770400689538247966312722367969738587402731799112515300705305593927677324167762469618508745004807886176029563715268260848680009579627864875045717523519099248575919385000216263039277702448379026283343042602754206848359156810905413545871604303033807028779179888405511450239953505584806420901717187926730418049088519287676399367886317405417958943076890470698329226968565031167833744022733573678236466701631641115764147249507354691232668082114998537065527765445491120169645905901074361087456504313396312714609340931217509870974365705343531181038405929421671360108917331575228921271932826356593156265773711345383481258419504568212736331455936433792202870433088632040974795144242740878999864734298171685830625842175564603805850005986120624498017419555571161267762795929364246656266917975237266876642798435472710158875643183698515907938869054585842479750886376138619181712158766110899754188349607803287253164387091047892832322227348671583011617214557672659180784059260496235665886389851728293611870441907020258707130266816965726265419807844914760649619446628231797791053100408273985048836444384450640482728764915856719303284696675108228226689750773017508301232161869071222311442810975697866336396392756274946004187518051064995278849563653950676246449604703656754712279280890788407388050862445878619174083258483224298763980354299827954413690345540023140775710282485382086757905963352019350032904286176200432206240804451233079450924181218001750356667396141812094440342920912249460886789684476608104296718113023819350930605352173051307646452529849770561270787129560164284500680093891941643560211046377149990329284738425239923464691944565648279353559074782381017821866379792931882979940227918943535940086950101608167532996458180491946370236626999424639283172280179001652154975455451633561355330485356570108472788480155025168049573758541618916825927619791253521922497399394434742009688402192751234314673131647658983453048524368141705012314237803901680871647850300878102062216880722744315958269860356955340227464668715309858741580724706988561521322948366101192093482211224666879508619674805668215093992132595212470600696704206273879855827025882960941157715515960970405996776864659092375960725739965882422665026544743584140507206917236104928175309746076396440768106314506358106446212940134163262165736927077921201181505747752374032842909894668650531477358028033837403406211547291270874382304124977675194891466990061695948870536872315638462860787015596837659472821465526129661643308810626841701071738101410453052973614569377214248866631543269449261020742747378008374563296517859927303954410929802161366706245032372827605290914584892046819822837008797663919476645636895741605558866559468633900083405859472381770343124038471737454163408173168594312371450481773920957367174898150771292330877513668474236421928005563612526605189366092242854714225562017798040772906541185195126623478979338015705198003586943054143152103844484319593170904622933671744199127790802628467546104812209701489152441364665227655955779814208540022226239002595915444434383575113386103386000836499766005017637042685802952337435787805112454685618454456023879009045884637211043323489292749589077744199292552640697809464628348229490487008018251763030369381279268536711138342881551767890155836591584609207328917924004329529696229765459894370458266586866292603065152589943605969503650807815641269193057635019030841088355011902803198167052298143657121456592178391438882467926430638393401905848704786347956677428406097807362991772913745837369284483474054347958923125535467044724740446268551931555387679357285747521037262333269448366456156605081440827168354282424374466672298045715814782751855389039376531159072884895208888929529814893489956024740747569602674571995725945655190776041635728740183922171155123546339691153990245725390321189705202938896435905985533034006034988731214225730636994787073686489234786729708205937505256689502032156410293772483597551789984587668691614682690636777645702187658412769651582422475136945077333546941676839554466356959524480306122785576248734209802966637420602548120700268769309373017070153004428320343995187572697129532350083878883556877208091514898430687777668356671519106024609975708514854144348570546569165051792080318684072800526163614429362272759381739998975884042028171714026196786298706683181351940565063135355444950901408394432703482825442338009016763408083081388478082341256385460062664947435507731070584515278866899138643978705825509495269230956172032031878375874109186031133724107062698480624452907214609224722648538650429798583396757441365959735085611103741065670357197864886689938002509903776710698537283210963917268281792765977135654759029914077254423475143318670856413039830964345110157806585344516512224090485424502164043765726596641683568221726498612658228349148754632579523994866398797030894728370872723151909861264751696067395124935069137925547834714746388051305038842055408296670264874680977472364236976027504559473499372091555299394684536948646292732597281812624305381300927145868487707465525811945562021324625705254430404406259278565142866972388141105698636120446083365043543155289439998035002791771983950109359066957604171679448621980618114930612608801723047841364879536175795500588470576808689879312835644590864508477358116667286537164828933378732943761486777426591841610314248458606302525848501352264297825801460596130337835283872562422329925206952095494845708163829867237482794544354309058634698350992063941548972811742100794339829871154111991305267199951352899477972039635602677564029236424356070505432627932608750877137469920651613540812841493226962008828449901152033220109935642297332796234469573432103481736505165374584801221600358736993655060112642074009870300936638934823584020118495457044137620927396819071748850612450143787200644836421992370883947000178627457338096273499915655630773473217224623649185502108468860989942001332514291785626677370558317108224977290256461531064159541644149806949052787986768533961465555622371598788342137764394023779144266460307578637030052909185349703341651325945141662810082174572219004081284566836786002484613548477542671921074635148634761636795818022888759101947259524498639193401447248312855306973947910624993735396803208930033740114514757377119550526078198623043096853061885531626656587521502443543965467750256343001846320490667852660366287562680458226685575913320559102149119791003934980273890859802856492466005627182233670763928270394401766332785032375273660114178739055204998393992832384393328936549798768402635758254180207264720114561241317779676059163624133079353587761276112377344635541434425534076581609450513392018707467259927820348487822185392604710843109223949361545019223534583096186103239619834491607631072499461040617799519972070442688379709946067080190532078520723778427111306333802974173541425393313607653964141435632994638847853196925785419004285065750453466198312788115866577836546606083633693341462422969055603735973124529072544470133601583978968116668734507128207754595144138241536047878510863811023641654988813793311616496214518156693500235533451506313777983876281210830683298094283133002014032130699927731836057696647193052071977081873015214961876985969310942702890651841024618288825411535602024096193343323237774081656271270968123259504599856992529615987479020729321077986124822144358989500930329502222900419077524991934618551760017344322801869003285535708301701780193641142489166335251670685526845180585692829903944839061674237947097499976371789245813754534534714157945734733677999088130127766572947738987743545676405855327731872179552275043899746373737702824019259299372239911229571618870019735918635482782931396550582784071403943285772276739008386592856992785921741339989940813010404237943695733286557077465080173900195299879887041233588994349603857967716891507330144254910392029979122822269891681574408132336885932653866553642982446376575401966262197572180471508590359178667175286884638041808655407351690185245094027184202761362223924554706798301676262326336046039128284483298792475067938211588005701240003741779169265254400756425954694574654936990232320707757475679502397198731442117097911355319558357974969335997653513578684212328889914830143253588752143145705012039090275850837448399712089685288447554932398486991871386752219355859314524067009231959133086262237853810214102226763191182580756835918802557731003096514599091896276699725943584959152903332969936352120077574744973921666664796865848741808690899029595585205942784141082917237846356875350420740672777599787511566402154770869450101882853527346490948827318972052643041645115321813339451531906891756476140673823514128965501778998867619333890969438537188290648699530529354745227480305031626013818324369785197151196656162268798133413029723386378825057443179457133986418447413937709199807013012294804438978733179940069353381690038726571735597134977305305809280484900833522530957559749134822893229677913611512094419721467509996259856754340968939101954460506079994480700920405022226899719609217871817892183421703684409789824255921084794321084145608102654868861012436456830795139171602562178478157338960998686330542438429243312681427067127091507987931206287692840026403807448097733994767366939984178241962444841615109366467704036520172362533553372500031211525371591221119431560816713283996978009433281785018543087461930747997439853599204259338646493145477539189432314636934521274614356733773411489567995204495743552288962182960745271960726892748665796539107012067838014143480999296311744980233330884004509355282449324164885030867599758232089169457345678493877209916975594806208838817995693219386292105079688643577759914095437537507087602794425813757106958729034787651884019579216386172477711392523453130006554702575103054744406195202151277467800985091131328333815864459852190151902765524183515910232745672033819712942544264946090719878771268552867774167112562050774616116384383383492945751235233211716975817623044933461230170223412688749530005791773100016102832536052103075890253834183266162600535836941531547103649018218797539639212735238354168284527396709911678958626344378949672361846762479659602031747731353753225086917029957439845168890888160009560820799674763664139899779041119285923385429823187351741197096574031316812113862047357792209960356286086753868392601893215058175019473367925777859425395398004829536053542173177048844289255077775618706449645566760546996090162628532289302589465532798788649129788452880699976315661159026249395365360814110866661962025119624528805629789212856473950624660333577109395445137740162908966783540710491600818660555402128076497553006338412024032062976608869028047654022460353921616113743292311239691156068140628993469034504642692634765042087230529657284383603171489509777029664722326672736209297160092299765064833319299004315580141494878355332807492895378045334867560598504523294867512264393167393415202751477303217456307317247079567167121486762839401507663732715738972948749352381180498668874079775292227491997641634269758903100923747912689601819000342492378589809385989509738989348011692034239889372796708047559590670301153332481918591997628628257938747389095710970674655345732212681897428221258562200720512151017329418193046238646239546659454188542606711656494118648443626583584789680700950285107471132329632497547904951587894374716750420146060002465788075236233200997021499577194187118355696170298786160193349728557024915809348451059287979202454878114978540725644931942897608448387446465242634853309201582853394942202556696564621219164310427107325119235432419208533652983456211243773357236871359924251532004753477609615304628920035069458745078751513180068643066753469961040335135702323371719995666943586400177531990446388954135927781418010077079030794876171659740474086963105068563860204485127663467146754311234623405914334421372793766240538413113025523569692889697624733404213058661016909416542314897346889235216186977680803558444551812822874179102273916659679698273192262720334305476616594040300616849438433043426175377978720500980189692645210983367095688825643985305477261753839658451965073845684196969063830028726368939988850421951717005164730936342348385023412473221454080092188608387821993428125393472283349954248151896087777479074102056616078904211721000263143706372301274536982359305337586578382421077333345538006112111453138015772034888197828557577448321795993010124722186329435279647226040836174269078421868405115686455251282342892817358067851510433934650165295601522536519995949559174608919164944820239182126157378399184625737510639902650287422016907565328768373638742636038120600688711357139547023572197264851687368706608277361293861135432497357373059146760712100300571591461398490125403081910506722731817491013027989435698448512764016376870070942917214668688538454687035541588797040569821064405727628456353325321499319980968197674891537025375443726305953065633747527312398773755749946278326415983767814786539165623078952535096344809793473363858779703659546529305467260375707312755767636500168848331822757589156660600030530408468806420900908152384641417480309069048785768791017576713345584792415145465468522845145926798442510989060558497770363818203438478535748499682881110123569916233244306420909325511553756320051442127101282225748274572971359293757848532358532033857385076015392211732272120634973242399779905373339132128701100895476332304362064857244246325983364093108744959467811718666530578071461164362654987252816496377962199285703704053565866543691408735257711859214795694291839252845396856862100319849844528932151174892574476092453014066380219226962149967158346175458984885358331866085088346566611965433612289284548009239953866699504460291626260631388221188749685181810423353547386428875852078327652436914156431956692374830260743918702212578476457885795809394470019670035966089923825402997960633702489044479953126756411159913230549085046262779350087235952762468950228865962701345337351115904510644426870213765008162484740676018418625059975211885364926042891433123489320984730443065906526923363715748677524223367418857160153610225711168651799833173493009878512966384277708843862777161165226020127435869920544990300460977865317735408804115907877837423308915647574697671796426570767903765869838506557925007192436438125886387067728380082403969066412858865962212918126551898062263784780626336104350459003280677342256801893914390775828284125961547475613813463353042696877597021799252846810553483042721318276165354134592999729324836582507184451312308210779377753123750127248121961303117261559292689057125520759200902947151147861651351046307308370585015283152233909361855129595803582733649658107317454457999774651456275737818891453583158316550368911603431195847250866127377005761498807323723795076019913589478119049751880637693021941833103545667914182181364962278317729283375745659257986215802987717270214422257472863793629410258493333772092397424737569912903527009527000965802638422677489550771746643774705181014567012008670283982019738047132009484429861365714339586115246504558162752112027306335593210774057591960139431124684794006665068748944576388235237206959439628021999626277933709035816805732973597522198738453797303290883493195391121937446528940814151024099933852312432154441701136846155313208527870355387580142260588223743085114886917893789775966969247050678332581695745525809264787816878007113102653678297970630412215890842523803536992455436151383890253667677279652751219920411674036236224755238152846504028274482422865098227567781007435290482762833326583953919002112718438952203443774657469474122329810419699993217518187079034008475811011843591569378668272622100779605296109120969073445742557258353309439942867545636065296555307257272514451639436236574119939393956708312946738014236547568839618084311354175729488147228669239757882084718132758428284272364727529190627356950450139854170857147806532082617439501941150695136206573095575404517558901207034313046764311733660695657383263273795634940883831310127677281191412298567754268388372339587567291585527394308876630914502101859407205525494493579739939378346491401310419759284212222119603475971660722545990121088008146105132748299593712609765607170236919075752792141468114043963380709112317321102280223864078822798600218310910459361686290236617168103815887202995927741584463902026112770624350271368161126504227892473577172229751933549896245049407197374352556059774661582299208695630998267543068757074333210232284594507012571145279780771619997890438350330476206946551222685823976025045087746787350944876870440065551756668441058544838595356460161677697772898149346867384304771802218497495148636995259466052364045448082314063486198340091209477463543012170603535514996844106325403950442034149427475733459345785491988794096390566946496870287234458328526259211635107157840359282270288507117507227383440975571926146898373610294355063769760387213463595186517807064176536983873921060425845972617612839961808976076391912982558911737920958475558384609051990623750212701866613025997127101899657108214712246074950125279480622247774720003065071981674050038187750462816624203336617277809243567146458812004554346654272585507632674204621878996228755470613050315977458921348602872400562715046598883788046473331236334538367540021877139704833457804548159572702081565324104842236405933606818951053928793379299522592357123109051413505879177380477477997276830685361931820750365375777142179987271333995150912667633341266199961418151725511677842067110626309941562122743242526755998037984168304886886257407352454637450428885412286267022196844513114827906829154615713191858144088070223871021432397201457569552415888476615650182620573297742752096279682410622016757180631481036628221400776703918588510445887572869398250077172524316426371518752582836194351995506173541064197308180128914122351117632311250863841901691850446721416563836807212221153362135030768226871783263472282457282337514126490226208298957035825064921513709160684382237079423615064457347162529781186541487438554420442784319268217077934510237683333606846652608378290456884430829029657671545493612747291912194046910733713188996755413432606997735392394259009363361584983353064996891694144183507785569355300537333236622331438862629050538001615253035320914231004504056120848597477820364998464265408037282200044576535012936415605970715984389066732586129788946610813986801680648035412108511619672072333274622078045149487085987510827683361737912877435996692718152060990889999815891360503956113495047832948852099188738461737495204183470001814795544707863698167330926579393799521298219230674046663275522718075073029812086578471340395164709461603838587402367446856679958050852149274366212805836357182014772968065524121791095725002392772688113514566167309318412430380214996840096456908496938383615102187672796135795117926427258624267024321315079423093184960122007351102642604330708558514119665816627757392466958208351777885551782176508249501034514460051604926322270730647148598045080886226506017428767631264658382993029484438239164594590506345588415451333762763095725900651065698501678931572147757796487736547596411111532381983204834604220674467133824597305383140320649578793230134196951801035977096933125971141058065634460004013157499346272537457861512420795579266931555146958988792593525441951584831342915092555588061091223989879800266559336838207491420346727800009334521920371776672493023307822886918177206450408594588474632718596934404314797140075532556594176549111938554441971984644193082395785486338939457353969635876861286477934803708608578127287075943632440147842714807721178761945469648221482278524956827824335215918142778711200163577260519371452512060504027673590527403704946389917080290798357106544269385128227066687829960608893868748710477196492733144537994626888420622392991410133014080120969332501807818221638565761855632254575697874780024154851474448421682217139617489793405902236141157221829447266171372064935502772083998899811809560759070639984447391023304209699785539847281785002981193366897163737851684297551843251861691623871714457702536371603215147873438973941439331998505889088254100308514150808338676446801978236906297408137538875352434262102944962932495616605609640333610047708462292199615961614230427228670740841251768335218702282083836085348230243492237808502049820501416381083903700654333298584339008559587368794068591946380628977735288681950216107912785106815337827969355888521168944875770641254801626620697446170817476218163229962151859589572831224009853756374020998789472096790211240024113268658002299327085210297568968300733003721820791957044952311552350118592496962675393967611479038742108786179327506672377480494979906242217295506359119425443491591959360018416059747041759824720689157882201413119569201602961921230782287563805540888989954080070859572541460667530287085515359997762347617773356391200647292567885288279447049755817068767775643574282895803779322091720940543469605963539994568675660757566459164054402478776340469255015175314620382991605838487209390974827683548855257308322028728620235511598251188128618160746848942686487086078925897381456871991476358045289298972080352050413004675339381281705565527684460956561635871097540252712793142051671297013135371660878379574598251014160605676083048313343375175735201237253466450809348083204935090303757099331334651894697612357339699247750182976149277648104890098180748677337140431841004899701754198232742149051985696083963397445125275234042045296218559845842648584704434944476395962231150120242553964646107002096464066463636580032490885608997613603522230949046991264720256419269601023529269132224909168317367171485010888434042472402064767256016766632039731882109801065033374481001278122024168216154717325340462908577595773846275589552472403456524912563000394793087470047200022366398385660016441303368302934981538266134726279069574709192837581090615324828656701210346067498064067944293909045991863814632681908446574246165575954864742119137572401674873914227594686572535101328385180489842603873221241683287006801234859560846813403172915070807514498120669584506554844058177771069368616995798180831613475595345319588588871784458874645219163920882683951237667665340520923357144865034904452525037660119550062029309608351914652856599874037652480369426041395329853022991224929104258833300300709362920762900440379348839575512789269404762727613413962960695471364327254434025624831064857035279261303194992540628761758747876773997210714145154824961370708230961953074134663213560001265741795599575540884449644076847491501092801858933018580187719439141525917620116728458130334725778558868867347096416736840822311832734111764711796125355809375218248650727796560621358934217146780375964769421477780530663187823168424494843381302441687909423694334229845301985603294550587137094866942565786994855053163439861266499447043962167687506994050583712882628600856268867557521904273321063571532353523310913211030398712689766631420910829488990924224776541435051553042574696626239483350325349444721970553910270157670483089783776220811122243301938630190732542664386478134211239818839854501386103074325908476193907619852037952848886624127923934088238692798538833931793110132969251868443196349890778133798160307100346197398178633364576201994706353431140791703780284241263455952365164872833278828380931719378271838422211073041250904745640016611619624516095179684203538877784251358779810173782125600873093025564926377541661447981202736810647531137579077122355761477877376618403081601653095864835026240646720355969447835389005076473857776798100131391344808128486031568724817115681901681596163839824707041327212765665935567819250664217685114425034747159052624623241704289513732274022121449574090926410015030244295618775827385291234063147886726594658587727650726075077834406166057568227468068011857818689318386694338720398961070162858645160828008901443438052725482178210785018745334128385870845987514762111778596096910880407751038026714349377091814180498744475856191478508183602211620062679878566121092368598551846132900053305542964046764275284475599930525901814106122485425893716792021806357152265129336239728128122387991710285615501343355567487496089844708527691263218109364856502084377896460721856264636282422840912838721919829174934972115995525484570936057944101436594872846405600805057230257288909196896773059658017527103114951862201396660994100357635656073608700002081412442364193457937600372185225448026256604146435560766270331290989945655968678304140337866563681972402466158041636883249289404982440694405066602686527068613488219760864688478333937002746060625286539488290547772544854820792814738177086334904646012396220713233717602628004225272959399394812487989545365525812174497931017358907087244826444930641699610455971324778337896956545434727323888679535884001420037241469539186505559678646047757304778431194590293137326573818620895662088701708066103566942114289105290457334227634844973916429694367966446879138524057768197585528033393289729642130724370505200533397475475900690879679742264779849210479447158432290220856353545834580085481255975246042874445000326699943427004845300591136153563679656001175033750291062217298379662546140294823808105418300784834118268119833011442133297040540190386912629388054774094495909334793708687693555007423546071838926718032487833827541002777146611598775812629847707005787179911012251196750376169647336508395607318018600015453100576976986843118621788707828724541906649448685145336491342720358221931788922796776120676511894751467171629838006800111454237520630586057279115746626109366333429503270961345040080342698722140159884564457482332405959121277279482033800498557180595521832077801437068206023342479475090772029318442017579968784700341365307903902062687926659386593939949675210752159637335841498625616691646457974553614918584747139493235961300908458056091552519176865194201910888293049472783677155731000514090003684877594118195185200260923845243121345274933067282518100038305929521816405292922212797218155493154346152057178687046280070116119907007199343071193955465745626224370394398024673782674673578142411142376321941668891527914872336419611439249529704104863712980200237559840733911163132841083550134990986565937077243929482461441341797083397101333887151590844156754104195768881073772549314647076971301845969918880940335820328129188286077153749686112388913481983765744071517958314880325190341499927574688292999528684170352790741989183055744863671735257201794192431806888030722097945743547523228832250291707698602413565525012460683584294142028056086615339479915595520955114306320058079180070835964247129623844578842062553642719286963978535302960477920018288406139087781765157254654017399224266124815339974329953445882757302063923848778255395062222633487603464727874509634456476683831291035459673920729952251194739908213051886585433315523064470534596371955102298117343118506638964551937698132879255080913432928149885276726880825810596028511356774275024342176924984496107472406009501549536537307337496918490336588273928982708828222981669388037205965175051069699671597194187829213386186682690112170123012416763585962819098980724531429243774451603297041435209025092886239038103462669692951295554503650379991866800697353592392148548465061289847927095707074653196316534894948731214068541862130618003548189362641835194892776720894988829372510410132862533146538143797955474205900002263105448828494495823068645760568824812881688410183131370541373794878102801525371270883876895507938154189517239162302172447400178899750303142891921748313786681667337128163303035900542316590251337847073377479384855266019672256629596858940756823158421638139954315702475755211922020199733939074442517526554302158761161967295752159619406004157284509691209852062571591487778605264188607815783138481033840582183693252352883138132723205760160785363345834555561326051187492706224654593243257392496482899283999849485315781679257572989167461523360775659335826162039453799276148359895903672666589486609556226028091722436548168351334728695757717202075977971630750343136182524032567442717105371252399028665662366067904819590144672347532221222071375288192897099880977944875178753527773381094614445234267505883973182920036359137072114769856503145900089569051676750329283890131565668267749246471939991703341110820768092977361651284809511736008936157046466258065401988413823804101616869765565764463414903848240294009825670911563552547095061700746375670645084335120132437586265052636090017611949749887780457977221136529124183489602148991000925759370272651909388357818146768943872831470256465307494872765600422875316969638440939109939542214734213578385878559740145383581480767945192588651166059101450407973065359255734514832875300809527701472161811916465009593395945661292971430812380697000082571903932039857168476256857161999390897069306470011696018445148517491308281197122608913418741678601909135253464744578951223823289482269994750545419139876433841205813592701347383843762647895570143997162868496234516792103953768098290128333107515296750998550498406648147525735901484724384953060998951001980233173400943611689284340619668562538485055824793134434404637979690891542112948028668279006754684852737383006490668345312575723249169153759187288473094326365193719580656490970104149674136522579970425189319172243927600920527859044050301012443370225919495060674725895602913824485107348932927606986504113896566095665484182011385274588909012576821334071440680516578386958166415216429194761073889466212649525121322138535677419697389692440022703435163461917798454465799097155129671461267350606987300548219718757937184514602889343460148862011545402526954195046397130966212227837545592958546646876188915549252405862509697153860415880144784136293873499220169003448094403087923377886318757568408475232744969473256214667351453478030348584136469240944281024700101180467915380576198846959869078949470229541992677032833823129426559499881077578796376299538412490925073303226009336592894870558363071969308070561985798599398783775988903634948034664512496343281576907739789288521758290495938000995050255684068827570626502347784164926622503271908239479704930315570186157377754190719413913509851863251596453754026660351215462453287599552409917271094121796258772188417689003268348016422942638174699745136964676129068453803740928724111529234874953833810543672597343725491410849501250044609542332036056452198247051500505846893110632088561472424699928485270078838705327125335173186203133521751104059305650048725700140869120248549997967082010237953350792612906271475339044282694166961582964957137592694489053053299351305005070138789889768931308357245872078113549973342498139971398111906798232754249647390971395634340887779548998996244458286973741988746070101428356626253355300582344018993140240916947949344916588731771982912302488175658286835520025836494138978932813354294522399226426732053516126794931728083076649611186537445528489614810935728768214412627865978165819318846076527460273264804408033790785876804734729283536677005298635707141086041807635263608439456500797198196030183311930181503491580483390937769129514889812641823301894396916655073006448317487273653224115330619897366932196441692018374582043079819562634413239898429638518004748110367115540563672638337844701767534612252249963079700860833676684423962573231125960777417228348163616547421222293797467808213877466838435011474737517082570052078997193665760562097809769624187061397140101122530508556380646387974398707773076469855084773359181255457540123028152737792856198208274942556277555513204891509927440895201448748844613601472126858764390198704476332027016212491107516492526035550634559845766342063516656230669885627602636030129940323167722955599748891534113037493654212446511871086439869820034180993555477698514278038108063562330496331293489013656649466915953640924422539353152752084470980444374046113408723690282768258435315073325548161559308362381687898215408060787134458783059307660957319856198983047633428890828889597483496898186854099832832565201404134971295741033425536407052436331572092890182208457145798903654042073824145937611550583114328451196451141144221953704590327952218460114549896826133578476501968349814160149551727725645084005304352462136980546195495992355656291026758000415189623392580570681902022177226632458588227638634235600733010867238184376965669784125039618546714978159090691436471443638085726902749292245506859966716408234278531312350858228489789595243323063231005464156431662064656450288894962507008082880229966854428617078968441131873671764327993858650868708825023275163858538840422761722156924438294242231192838438422008674515035480927014001164884803890270826576339773832986760186192182106399992826779732545755496554145705799964127346847330467273176938687931394848855318406905355220423139774286697851039109111733448667811118653007593413365386086593686464136883945957797426069128945492516925452247054446920851162245202294727763862559736264327796274361534473535689631731322619166581103306843311730589320224972172198182230072401873077455708869617698887065823392247497037113139169293472691328870908659942153708758220332100332380807477978000998987153200423851327536056447444298824063471762788623745742003134843281803723406231729713355767731512801282649116207958677353889373183712466552277305739227150648903692018235088581398749488476568802619640551945179477794348306540242043758084707245402964692746025928024138207563169880099445465179729292816725919931308959175793487823322884432589102370471680710124771778662707274897187550783592280738997216850623274140898032950608614207333023152392303308756930551134916205671956532138202941055092812638365226198088642303810511611773325508007616309898487883301847169010989736376600099719982684685545624206961102392265517736145046648295247527791522880268084120675349615842500478308442476633467418740056216472309011394484039657848486453918976284100901713439687264901867690852655379650907311724633646272059314662615579426623945179128975820809826961806014087147198402274447615358491568929554618517529004596093638210125684954063135418251810649841149531892746624160252367165226293264528659816551779650489802243980088816738469572505368865773527176081092102023607081578781881040172496363968184948766930526834745049176025082376227573249724741750585964678487859595920258911256397020924210946924378519919518721994343596345842377001771926452032056420954346768378888652784535725874430810839502983812176192526527709371504891512163244749003065267610022141951162247780049066375659886920681091723709328794475847106795869695540596414687144265318055025114149125576142955827922022840403948631412241753881054182852287802674485036108028826423896533342534051867535216659386246536886867753528699252717876042406425665784142287490322948758737610796774383159775610421222362688204819034880572849119012226241659423096847329194332272251664365352855515740257333556818837482836852921492579868435891966918944510690208800013805790686122204676188893753693732818459028783243469689357139974902402652549990940157478155406983703598770648876947713113799419418834570006162292920068352019718562088223430070756793239544582243945943598674095274970717107520714564189057103971727563683422052015397148429650501280678539271514589065399585057468832779469235606699430776546492660330042517813746831318350750709932981314367044456496638544693278201444606695826129317311961648780477477777329803958046543438779315391100940018431660900219830634352966906591896280920451112222070520476269659403447071608384229296504006451003401891133678811407633066941317659364313333285735317436574855883669789752151974508112245812872751573730892236483327291248335591199191490468982606007597537339040281498020449722319051654033184245483863582551912911479695717549055163745643604799457296033191633123258969478712958016267696991712929342415404332826508771351133800161170514245235249921780869373609081988570433879657565815545797300069264515909381810811232123302310073169565567987693936769633070345932307445176919510648736909484958598769799715221305163528945388421880167711396200137912557788581195216389466031169408513513016735620972435126560115884003446470020071103549777397214054031513186975485680451689430104230283466517790111850391357361047112188549588065867425832737807615303859475950710827249599856366015747682380379688386313496982426365591329873831296789828979230245819291014653406001677390913546257245253277242370412241874663754363297149123026760890377277531962857928234457324832016050831459205458946825546123449439433304695551962958443840407356725189501391584276306745043766503543584595858349748477717152310785232178030445321233755614057328691224001601803328301513540553537608652018028231466560977535942766194123514113749213983968562197767439356214392080827221972862518408318242868634587593448782316767986073523060551767633638644196528356348544375780522162923205573895468066385443965404749519132487131710661609625741679869634939714451335778622140073190129459474139690474480127672858001113962678557077536317298244858939808918721354917068132736548022204195781510866667825065486422293575051731246097317431860436595888973992819306255861776287478552470832743553521236659793271769611054070930397541302162929689278633011057952109181178124430514131214604800631681936052828262302428881504421403238106880826508245149123992517590397938169271663734143731811553675793946003814949620422059814087838722265545903826654133263954123649374511804809333111519245233519501682366970937539177162508365543938110614211378919882170488953325985030325354883695487780313287011454260281011751148908133132144024496085308885771015906967762882213292962506947483900915914143279423983772005709785459061038758220178133902896657356692259758889838723795650286186073414071316978786246918107115086060419440073059128793196599317295423279469406516781675180034730981636002404001641109047230668587952185334619278083729250390165971635298039536960453696523632536185127865916556469603041235539268446186135229328172836745145286707886144457211510382755399498050665477801859781256527624387901449503077195337362859744163125746420332318312566135798338028444796029500437522570858847147588295528961291153343707233278099556068006008899341901836029758058157764729512975791650475884202654122109684805911770548925230417703531310334180756925257701478549538923566662539765808074357738359564008814791112976454936656485811823198034519100853289928087325892244317705615076112741868627927096964671329800466384146179188892829074893494900375944690568456308022690817815792419350858074096620081613680319207078039930993805431220427566884798220847547658763525206893022372994027341775448665190747717017900532537992205860915018364918468935111051353436408450742934386911514433791035595113182853113865717434629889574289227295472397182477811913568466272155956756327005104159071484611430037496012885565310206401349587395599437397357475348294014253348308063859163441243499223461920472664106928192551389738580219693339914583079924602813320352286053315977157830799628889603832079073203899007382337821020997950580237975550202576948479412859740868778995775801927906361812252956255324945025372799035530466275572452670882365950113256945624602211440290935920573534379195050080416168971986717313598108865285909657273990432110512697930881622101280453592611533972943552309277077535645679567418313475505740929695827290745572673566459564999370615349883630492380871492146456290994579180054755734327225329133423768504987768984971372857187469922834193352630208513347997457447523310077448753121267592324121970276446850990504245376673668688814161591864159055836495852310030277312020275241167807641006933804930736934432545821444397977235903976261761515917116952716772691235146748345085098921285168250150513214341619947088708218780756310662523899387873356052410908489267085021744512842568880392132150436883240079386021105374761769232499925712252738638522210193562282296816037623678817981917181253775650213833370263300026575942931976538144405478273032866920789773869201878207457827645716575073205925231688479177429188192451128851107625650681717027713627879993847196987429132182566319954898754281132189557577225313686976844451901187739728270232275840182708687306028725494713071426225576920793461756440608950864457646540801720278566162459263174711512304455656421873467803191406606638091054229924788213964140957763582118488718287075073133443659984931446628010036217313447461290113786215357888903255137799293229282239123909272152819496995963286375337747730400884927594018243462751570314618352669140492456188484357386234373723334528655535902806880749037456340075584907451110691972185516188928503517035868534792893251256393561318278718552570953855473755370960086478879472862241635258902508573767659011213003418315486689769334037931514674573872146183864714525009279721399269554826119602145955430011239922213862662580933200253768247041759181837437536290360939762589055539655987569981593641459989339038267628302060577618311424528384315108558583333511491464653583583101411263024296612678947060108257139435839972578866313005632785263357365339167666577055115165644808003408181309976294311580802429293449182186214472776470273946788104285621100536155443161554487626697845650447331558320903811890221462118976930854293644917040939770673226845783111586994716661259141560915219953504366129170493507374564798502228106674850480339656866491725032161117806480078899276585561248157714882880416232682888864206506475913766206123914030765342835282660987009964541440592041980035586145108267301973373495152854190140450182354594497487730018744896689725529718098904490112578643764956258360342088568476164906982420465021294796006734758630656750339141484924380361863263343033665642092180269294444129659616043696625105737326845979130039255356121387783735853069589018256179232629321435170296105097643512277759419763358741625812854795584894914270304669605832365475643533180324789378231123522443376123344873907656254589075282592683337433869969092498584636639283401891843433797440620582134685399841382535715687943056727763603587333560380801709254144414871706954942307649683527947719281306342339116371364067594253488531701443645707584778078983224495403830079848000785474621692767402235836346963900989380442268322657593437006097603001989698534230895836895128510865162325602219308588732244691081244221079875007617909701698756334219731963951257959683068414290302499522600189658924677872168571068666654532964916095381338587844075894078576329912325230781526606794307253631365900715047882680766206029516537981303795022047420371803279980782225687095108732544363842301091947854849951608996804607344275870608187700360013063561681381082172312421511008623703103262840691862347353777328962167743800438536630577915787466080178556815105612279772167159016267364656480697646100571335796745696234789150802131925169845478497103137520908368527668002432609532078304634439075737852250682248498327706407107765561396297666423100761562115204757141258980864850587328206257288490722955450808992105937107349452965070833080974341943916982232994186307617485452909787729715072319027788938975410256057222851530293928627901939179432372253832804042100412674957877633839222502153940395991408357923187126527536044944347752161954203365239261440708869985738546505091593062709292721919773450909880226571026006096913547963436196678668886775348402157596158765173642960890668265375135149000720148462801337588352245553156236236018802413175115948181281090326929784872508040736717490751897588988038794540451963134653793311407099265089515553582380123262720191050614786082998542641960225432641628929361075361061153380324879200057136361812742016365612696716392812599258608985028033405922495272371011302284573740213590342038876721390409895073791394496302113541872260504825696791068866167757526504597658686992396823019283266139336388516186342605639573104985506909493940298834391639454669258227501089545276759227886266018132197926252064755773693412498323689617085381946327085630298719430821801666284649345786461315748470203730393234272018829724493836044940655206435330290023215725781964085433379277541928979688404262433877475812553459070454236772499926230986579324138757892652589665848110064379514240073679701761725881336382090634768613318711785578174824435056970491609877313518734740696975301573573945640788332122268830345370840393154193316388487511054167385191179025245150288630011947846676400040938733263425160528496466275659178959043826202199882911880149245721282466451158044475824588674195317747630922242092303183094159846906703856193886157379564927235751400364184337743542704318488836851021809774474684341482054448746195460389674435112243797205101208771408740431312045979060304048427649952781215611783690828063828201358779677460129543306100089492140349499615010555640614083791567070906846212510906075712994155102132692421833758254364855132682751986531820152055605491652461230340121184854370613001028997547011968916281545682828550565868716880881142016570716390786397077137132739454436568762647284816656863221232525194755976621946458802081659641162706693682825300227281594292707564173620631232270450081293317389678884142599648293511880401217295009818653024986755651180058304766373336795298382803763647345643170252128812995387203049043683858353764922865859808447405162521170285320514585545961323124084717321944075009680945690240284546437042693401286390815566369701118490352446111388303933132896185932915903903280288879839658371625671074690350052915991600661108472691790444238005304288946191838909941257985674891747574820594122260737009596871672880492570552027439978690941856080987708035247715445569994211936389650079564327860897138023442657724599531131013932195330240724682226689134348665057555854825388744030751984521437729864664991089702482485437662994882484909177798973360028893266761716459428270419972581203121817158501464147959098593308003714426509019987746039069690447910611236974254836353032553133426274757323200356379650534489283345450878200091521459259670381840849773553638609131701574403658300090263126464111020139424060743099008616706527416466906564085010753850150123746763375728226564195462272336867325361821970838689631197053823453308689208043789936445382604696154390522589703032257976514050635679952695678665704068819151204171763403041670081135687579238651860355431404081102716805681464149978110818645827211716127529301896666171464887410938056899512106106829847743687311999646813225896048441568962741495465336799505777717499078471595740187337185813447979556475722692908953060211271464473941043524785150947632233267021547753746108930058362290212356486193496063242152122408151846533320657887313755268127838784422527270267165395735075529122597707008466160301769606587369202917406364837317017586187064922936335856368019003272981898063946835278373071140626285212586965840596637062836406874566980680095103190528305721368423023485283740580814260265707014811345858653458636838535515089237563644958159006744670662171508777055445234314564705637434702801741066624488068876821829944613828189672182709326873730622161256936250394254897738743135663543438047153922287586665828784289426308356283865935189266489793620683388951588893382666105672565874820746401841057620137674168049876632563885016100542231633105154026723727737314357816732569664248425037259549257440108985004938317760777846595354200282445516872081387629403481391330962961119509796824770036416619911052062010848606147261442736396760950652608833693790695269481443197211438137851238229837174880618330980534356995129210694592825825713868319337767124422494970881789549968158322345908185769809626533282016935982346033053352196153177336027582796550121723030402095216712230635113688683158885373750643017303850481456423241209067465791493070666697270038899213442983694404393261696723059640691620245405000831844642339814800224047472225376656496001213503949616842112478147983894309725782071968057401696506838155218957476779899742435493389133705530485753271234512922892085485336835913729214699739163063015567112268990846305644973841430195430478138415492209599112466052452468694186311019249078358217262468637388758330179227974346677947284417239435510999825037990681541962708645758776733112985871390517410350956253647831600784093144685888073899549199444504026500541198234042887676583303730630872803534888948210593171645413105991979372916798898653796110874636667179093797772266819143098463523907154841122985165830276411677637500544330603401807751930011604486871362295261391824345646890753569626224636744464215454376375388469570079276081527069896056762576787729917863636582278359282221815071256998323748738049157998520768793316677144923343314728577204941090614166396543068525145607765181349041768049697370426220532689934525071431074074097679347634428667722849289409542132336730124437977094525604517604808618246173435337736073840842537644705407563028430568817848674583629104600841474457927912122118626550421258370763251473956841835879251015138624455549619847325338180623843296896935646079036517190716721633255548692998877844147912674438679529189749296998644875521034461192203902724220318019868048831210138240943573902116088852164513071097747932790596491706301175852594027850126032770258029413542177982316862976943736908329151196560077455196560226109219774855480190748490632903795478406665495160082361292196734159832222125684653465432628236740991958745515724636017311446361536221798882130972121823562361541383426094962745814760987273571287747176471751981035389364683832271215849439893645017450955465499854700708477485975573668233783847614391601078377574697416072693776966978067551672535799087480694499776507983599082709934746052294709584982246236009399470460804975878568456561293042901486932721352132745128331651383496000583172290100701087415123489885192767681111053859389419718475020519951965969915349732382067106052917884603105741638232325576210994685605095284864733438125940538682109273799628900604553753595734769440706910139005362117238898602726192134332385365000231707381756336993963547276042120449607897949928805820086836157020230197429831760166639385882840850835408886679929309012178503630317262843526304433511758328669045034506870366218161686105365067542346460476897726078565827475562912660111232910981192634544660720037868684173476020697910128513549093367209449426345223311577023294408373505372618786295248244623834053687729676038253393617574461493925162729033557472113600151020074303463568996618197415395485060468155267234414117529883600842524986521208236559599548462580327085546568160570431903651888286735180782619621590676821348638524925808745686725922502078985721693454103279647230308708604576214203851540431233802170336111861075015828130556257239349922566130903446845015767641211749504849612420310452704295007175442553588159834731385839351525948971871953557105083411383797578151817630220850313796833485617495186398551143811977686982082488244994703464760178222231410478623880318540512228495428003877467659877059138672247147078927211791111526631246126366340310857605171216517360254242815320041506668489769638435091657908350989421982604785036382251401515115851391406649128256679078299190049040483360727998413278261693442146535337214079356709197112979608327691567357870791738464521699002448265561989679688845158778144156426056977842958112032632469401118956732219081041322850089202326581941252088144343575830061885448234868755586889981107887302544345405278550920469677343432109202952320788139898439923380176710004865795245739057879601382262229982831472802309790567160686052725550302823983408515480279785833317828733529134694449298420021606490508046356143289171995471810909290198591977067217218351395982410442884443457782719120568975052413806164361451501239363445501023408724605193204570254366303289903834789336964078103994933095892269317861922379711370884050078264358081776675513430752061954069494179322086419330815412666594040343083853502449461674998802886563917354234728506298384876041098299190179695514867550037680264172442300236904224905920232357883655660745704499176598900260643496636362192217322764092069050589885882307876049577604392836859476398167310598620363204392263140966761249129512048457630617516906567790129257163753721847307691580331831496758190145154053905708879220548035730831672306976823079352165274934975497881042766796408123151251325628067083698769343512015585783000616671675723402459261298789356473329495343997263872073219209094264127263007646464093073529789006077454207088702920832077039444570112492550878948533353096561167218846368600292170686204159387006845102572051048680756164448428457026274342731118035824091278987023362399458970921072970810660294805635103950186368738203811511595408288501360665881659120445117965553344042461194365267770561138106949350356040528366195258241973270047590898468959860551080771824484068907193930250561505673293420427462237431433774581662484583092287839626983903881278136698295566003229234834205749016764862007172448311962357119679909777879730651702023539586262033239761786395161428363630943525428191944870722115730465557636424263047502403282428393471366060357565687864866004162491487773932242762683777680320738829226768638472767294691733134433961988643457246805088094751983293980089581506710448926124402976055531214078852933309481369460124655002994812944941173094966151106513822036235487205354319990733014061990885466756828235699019433773438335902985766074288354377256316410900953703049325616609435666910766158933839665136095173981950945260959603184843959432664471839713705141392033365570842715236969960533506994215103266979834117423869631400588690927491908987056980594670023546089010415870285764078328957817732525086278172967155164878073596873185604746109488051224346428102140769464655453222932262230856869995066002308417282319502155895960815682456560015371826438112061392829552610950060460366414719369721742281317995145590131436879714321047982337776532184602425189860285815323299042395380186181809803728590053748988261616718359998670155398192491421608123060931859300748098649531142251330068165796820598668039465130217467164355383069978647330765075202818938759579687090815692074622064320091738117706491435650941600103582425086190894640680687842838024581600721292997844616554110706641556015573961928822709348873303558675915312379399920343134247191586224635395222518535346297304450585910669298288471189861072014369018347370965426558839584131174262419511171064338213275180817511075929181262704511186977810965536299426834572874599251552559952081758309267789653799469154384171087824045050704771875529761428461401334922328566188068514110770956762276354386619969681888479577137271603259073733310509287826987951837411870249588790081205703734176042583813435283409999968290113595641277123062709692734776326850623040084484614376356888529943479695999133917695866412662547904519403186772628009749230592196649848027196437132818589499554656962729394683138257321312925656964225933138452726315982459176962345232924686952639939512041535704886521643375113359411124420823741412482535291278367006761350546675255988775801581278619784176400590740671987703171009499187856562565264179514676856895846573824542493693990498629332612681502245344243389317669871966369561383396240366035331067779720376214687243755520106601688981570741792049721662120047632644478710776277183028341560104807517474940446773410020322435040648420670404844295556388115827884332950677186463330162830235397360654983507585758509838563128576039177049862521939844517096511886536700206969683963877928084081553543944604747067578845740528109940223480530622817303881365060700322956398213054185780937262151517907496201140575049847290235118491804110147740943473940634945728431312349199096687180039935279792723381518010914815641867188239889789546081087118247262674650805543795331887636937952584856499579707364167046238699018939241567401812962662690712201877792832422789986024697699805567192830849990695004262424652122366145733722455468704854619477392470871139049000789206443461603840421335843820212248791767352350446143937062488497569227023465453394517335490539522804758883100299757532626249397054139123849693369197785151141019831470943007079867298653865314156626625723349270657690320605036535562680122591448825424068276502037640891862359912440336737862049230147458615307573799183047147765179038376192986433363592411533165476492732561582553266487916177779894473661399975720162706306489148799339138069855471052517978306725702341195031621505672098078038401620246631362403717440186657690320250709628134825624139317756515734189085605753208204624403509108280767054099460023470096924267985456028897714255790307809877540366394141066510701608916864941494230929500620911298401846867615739589927102740880118540835079188929429954670550935719721759374110242368083950432915606095593209917222315622921388752936754224544018125973131270555661347006734141254954251611317877717636204459382024309819031582227424471678755963267156838022839966427122634276581047800431874082057523004432518959906139630250064590966175697251951015791969692008764891309530735565735639221683529310576942643846448215019764004347107691489279216035963991237241390089635822733794758644218549097230110521527727192625664814524467289842526084788080879463071243054589897680846651094017294994097958251999817258436709326656340338026003451179490693515336679998361660190038600436286978017341699058082383416919983295851456737349403324628352685014698694493106459530679615867203509757344733937018482234394236310453713761930082745012364811897137801533758795514233241845957504708709094357616126327825604185486506901962273728341854315733456565457678278843863538547172390025316597373742472687947836148019118295166279095722482548076472941375770116150123084337672792702526804175717505582017816140952100343088978839714632086413784784725658579565840469866921165876485150994466346174981703278765254007419300139861552196268278392103646375477726911693052780870769979796794224812217131828104794041181801687564680168758898124481383624014381125943293155160713590940725001485617532476416602722841277200292003735707944867498428878563806942267555238445948740406459885757528600179742312462801206315739708297972828283616426637561059512390674142541239648653754216822783533846357873618166126259140322293548451848446307289311854447766664204536343103310442479019965858629585677510025455110574302407543716156624708581020007208549138417024907176250379388662541192971637474303487252960392104222459302166302641004449363249092026116894401421680764170373897306550932622087804435236994000065984245894057060724385483454782697358239034315071418120149982785540746626606412559732788281769536079823986244424366939814493672556804642180543353435655119058881451565193182441747966069278208428259292189767132825972995046474081885600422088144588101662435674797991081083142607024707305600723660054468417746054859532708869813158281285522058947785441371687492333146502124048415876412060565748637431524860803135792513143957168377141111483573083369685264567130350300667980713963482094978632120052409961750090517521290503376885250699560714180291956531777608766503337066397127667465602716781687496310463928777822391787139365456169896381589626084772200734253617296808563427350312928656881353786575160143565220204283976684039029680979950024680989466861205665128790757966948827867740381432181717242403650914296815862611067233679859693409529831249698609913794675632087433359765925608038673824016012106229976440014316131392558601066380141257339209073924060454495696170887029033319620836998866369574149155267667471114791003910214061588604731795968534171227394671144481811542015030576358596022444074259456045073184565948272580087201428561113602250917457894351132818300418191050709769097687367422597935453598360707847655245218129707515330752344177362492740473572724560745027187214707403542102033354693393436019025753908016148120943166770966751515886318828253471606874147041510442601474165815440378587340018988016606389610934281630567043777243591820616145342027929290243985989471026806281745133318095800706241169198568299883673388653866931405693112030855540383602591771243583522196370056812747264749440409239171723371399855743803825451000420565015220351580806322245109679883339028876010058811816856612223300933659412492136554484457388860688060435738324639525590947931073174106125700407939868782190660427020001746532507570057084911656001964927223999240256332291177396670741122964714584664180379491801297509772348639772483198940956461796585487505299644280846864619424619592534893730046583890618701438243992616656170921475828250913072366097560741969368611865942982125525880253550445493112519228989613128434458124480096244423919396764938175916239362046353711589188214825967085605218050478254309325249825342992134201056069266386175845785795402728407915061470994913013597453221461639982322507121518305284607634671367966513852847360498278665200644369536403439302441255576841541747313708915443854913551331893675704992973835061087472311670222060367325527283368116464767571831801204485611746637115842489925529176526310292139352695553981122611436737564451293048442379062468660335083118524479634646686491359055023297087869003765951114315850675173672998514469935821405334200893074383639604031825087352348717144957267918983484576244255459514104005408178389142354466107563797425321349349783382894177208034943377684898812084715436354142573685371946417536947160021178042300685709667314431371299058264174799166896850535408973623305666006938988734702867684839744542545786422938609361274267592422383388069040773002560022927803473446623446692900459112183852480460077380665195793325852747748044064833988569614401124320862939964342104178256969869489143291837358495121880822108019353622216041580688137039496892296680385396915580745804953730459254249932061590552965352516633084716015800066248642177989671149406506887888202737670175448018648218638315666092875910322321124588811694184960871208920575989348127544940804172309484822850044267636219401106285492180871124715347828665397349415800627949890369285774017102737930224462364065381734175198849292946079583936650446526676733582931405853801495607288602865337155526447445735561352335701563312434310755051440533199967491902421174725702594118898407384239011293763629771804611539307161510425240364293466655521067022148457896849143353291011034766697630505718012352928375993242265491660550263353349196444683104627632014405386668279450841543283297477375219258684662045950238571029767704355836795755114044692672966194549514718979647925149229006897537232224067242245282613441347247978727214090972327587022976741008551314845032634042413101652036714945021739633018131687491447156571282898044815208520037132370999108411295687227262428959719810001093877956239312795569557371053303114700909658692238217973059028674060799619418112675180381531051750699999346233543718089569592562470556682884646723860521211503304791697215243397190856606434824883711141233503447589571298548487486886786504343524990131458328540293592589817916790562989807643167553527470948742958773448313706306921332672215305727587034604405461546614830171610815036822501270447668475936916525154914151498394805894758242506948789020038495615764937109238229737278166527170821353616899317475611869246199584839707051770994494986481772039791439801702281650860317963793402191398754326154428707605053327098966296903191623966068884217359447608687407953710131586656737701647400296986749065703570177034472301480865936947941869531971265998245330139200649005333031809757161946179259084779994706898369307586829605139021178308062597019659688038416764330591371192363529782661818184339526015083329818071950571502745340217145304450598701322674430332480400590630076168278181944441434977036703431015984106929084858159419911385777525908435825021559923365300609611146227758345071347721708080523999061791895763168540080842223301374817689136759559662266539474136952042433837979145054833393945466723284918588762726523602908666352791224997128745277477067085480418394135530825395454657928237865603594725908017494933998276826822526737924630733516440267977975298320722967066007360282566600079748398771448473485364666099771232193968321372608707681748035681929934333487931217697149967673545538292461621984097139239566260747018088664111455116006920523235914243177465038875659251731461608447902366171447926480392897937992664960547504488565132647391201133116965604921571635097634051647365233741174280356880673782161796260802486300035539448560135410532247660955203891969554876035239803825659383326717059115839376866989313650067638871580944273460356200936245366311894958899532678358452378843582622804904319397927065701484305020368416354307566917354621864921134514084992127788170179145303600386342735634510412616185257965753121095313312524519733757883530676212386055908674827022910359245148783427744444674121108815795633625094717465257283783297951543725045433472488151052636648512508008493914716785695097667261353542106225255875504798737071896663855902599291874428930573684422247005884322792146792171050676719573942207224031097632109753342690972484931427965086342397570039799840229701793711063463593977270882024340656961911988231925205884477884350184641431992258857568772069723330871995777407473551407771535422498268957154561826114662359801260298502056183966339816015076729488962249599889994416140458286687696974156784959444826182729254801939838682087664772144142488552097194589008589084890764131598003786300113869983051664717201670370575331857489608220759939275381123383934328896006487321656664700071036695684097820586667077396309129081923551770414159301370726691562959877819470026248032634340746331268846652874103134471426448006698801446620036088693661523605772643988520663750029179579487877252028894770034179255604287150472585903040906727222969309819426652519673606803961820953614179704833128552843681948676725825966896280367497721293464444832640943869734241824504765528646110185232752535215312483669727092770811771152964607993426946656658268217564728403316496787288782740500592818663034358817530441779212020982523678249450094087159834034982734324852022793454290127323559443481683001479633385520310946032250306587275721560388726727903731354982239297830036654409654481648566199442558330883188448310738289967999273520806912969410285122011210299076160556122494094345653395360530788152196474810149763524540252615001826727472546583925228264434480580875017305693251773805985991865676488065662714084441169787114489843397910757295266622844384547318366668686161888560624531380091595826487653506736733734200320520658449917642171276931878405688442564003128260281630959974512998309779920217748107316831979281726581450678656322433804474892856336561742048115264801417715961241173287872023982863246581845998645365286177498957590317735470568979273840005510312239256091614815377032828905088085233151576945016573487436265577766999482238062422314063643972738031377418217208671495801626772985648694208736253645637302123338866884162476954058883636279508939419623186769690506903173103599171482730202656941403423340124080296026064341306638384612917723934366693863016915829691311840314647868853397457181217970604356606151733121003675862014625539912480992750716616464710323122376542186108880163208310693468395496775954305033430057044447276886018076994177784419385093594501247315137112224016376738236401193506549951505419726054106694805430742477825926649125376698464889155973197665271450862023266755199033106522038655227138124235273096692942434260711223938306418970182397839852836645177588611176811212945564033610522992247749197359979323557354957663386177359127305911454713413949076721192053334913704239541208871238046290130776860232643237055726887206836432327730895748698512627997512071150698711569406917805712653114477900505529404125578138425681773574298691100700227239918418748559918726387602501507989912438292284278708970953378270742627058773108794630177243527357187364215339965963121002588637962221973102516242584916050896780328467632854070908765817171985852027518550313409487295829857796787457671088459477093651002265960328175176030913123063058735279504914991438017738395522660757017981480627661991321792360795671650205065629389502597717395511335906545783989935076331783010203468518020596691200889849392624496842245016357487961787398919939293974100005170171939149672933883282138991046565118994333051520318082057104510308077744776544332116741994836763450503809707091755490063412276978862247520112860380255211088145057750136894147184478150776836708207480367181610422724543417897413753198100907773056742331161540722111557688378590511162332648693139108639784102691491874017473003784611452705826596948439778438455964711591643303580099743595383241758748910007157072153023394969756851092463130995013221806792982279512422824292765351098944376793113081580061646343486949491609272685034083625264413742521055996028555597582221207864831273684970189298970500569056186303972452263781214832817166613800115401068202784910429127736762542284767182049323275089164585734644097481882242709936512740071215585627092045501524203468730401161397993656813936346026555439758170454413679435477019970847852849613891746173801426513017188049881555880370488731965779850368218158972764365481325552835698358234076974913463611384098086689648822930500444771327567747494944712718091524584830978948071660418727260553794756616177461686132439839324355820593220625084946442829219056208578872872571990575982213131149972388624625392645459909644359948619789793514207706517945302946160913346739957261083209361923207749331461913092831761724980118162725005806001751470211981692794609638144442427074655174687539285319668891731341194670777347870371892721839263335355354356520387805288325469188325729852747350751124016210317001832684730760364808040352992044214008557028569010037337124485643422627807145724790824382119826463713724140760666154661311312737063359901979124905410089048729061113422631829364849119283636800922409831629260590471704737332493836337094411822073074597109331520787703484258473308809748806848121629590089245612545967879549171122305239044123755874352473224213267406678129299889050617803789542232285285519551753045090726607251876772348359235170887337935835248836597566076109149504663954667458082922553782409961670344295907826230858342653414579578685126144350093852461231282080977707709357968960117525352788640762197967277967302649393288393932987597507838292113662746124905165739598151135312232385447580444194532742689535770277038112252437435757972203305738726975703046094288767634374994180302538021663451227904280639120991686195996071053214618943809744726322704421251533653109877720137720599170680981876605523607799654415685759948332202522048646939376501611641478820796950757454216760261879239872698067533036011259887807222730898266834678213109399993856305879701204279702736647613008714051077551411522996299115101598400629737005712121357383470919771236913393676088506253013723672399315619308357488815094219425191291199571512509176043429832590791962724305394856826268178108814869702637690360286644278804621431169926771412556993066145242008943179785090248827718691517089803873376487808327307969528643431653948421340240677140051903501440969932081780811529069095471882123762843742700754124861342457005316570274553317509286589117127961388322117744699715241645340160856095533280107880419105341386390577401938766028763116904082209338322418916477332895504130567630887039243017758858426988454141031393158413374604241012434028775432528647506574041098085411621966970449310436881318201547815650344708285517385145623145888912671149736907784180343891374646953460630636543359469691605048534420357435034751150889897253079828139860567991249081179494499794072270641330809865782312908976106606903806477051939198233398380353595870198713341039222787534548625986643473429581903608261076694001731164994587215644482475279928480091897154994561514364757300955736197493392623742754545387386046352020925646693000360833803187677147976485680209933259690435581876189723879846969401351934827031679565429312329117386415866489975536190587731307806628042704679911404353080930049574762129271287893977553433463691833519222701935964109277923511476441057417640586233250230894313017482434589356231832687225070135722987961906222673144806531515542233892198386095581323521815855549480026248199022821023853916413156120250253512250024016686746715426255118493433641571336316736307850792859820055551353352684020682503793017294362050425342755385976515651018268908665781033613187056405093576945863460681503408055854659344555355214444502737163453773717423538258610162759443942599999549073450465096478366387122584277716159730269501289309763628386108563998479129943790337694507067178073025065712329886522113277726207359357486223929449791487414316262086994639250365624397393101651075876776992268420904477640482775435328736888884576520106015101402859688865888189470739459060783489242034579615727079878652403787924907775615462342478869727507315751027485483129342451832968851437548226845445755658269616078793066200286563089208260111826762325238602541875265350904918192496089612212984263161497237796876509855500637388568927593665043179772936974611697364675683614567888288478957955511807266575472766042320867178358933359486962148687304867801557027490226354558212332795377550993031326661645019884818882589107459532087012238719102497467144248383974881878558669524682390392680740149896836545705043205266753523632227953145819827975816250242009999102421550279025049380469573317689679724882728390106765184703091015824516711074997048528088132193894938933928516520641114015374325220900497191481201389679910914378381281025253786159835175760368577403482403262808032936237583452676802974778255932234621308987788966404363426744199197666067851317604982447591888667408740530502651243205960856789984919089788113818687629595937626990031638805329089130154111257646788321814896774201147964091362550352022476607524259636403207013426244238458206556102939955897004945269760488856482036763443659301905689135926289680983566544908731508724927936461142839098383921000632204257677449021960034593085616955350149343979481237039065068469756638217949345654658581360411603471046156440770581055752432283081836262065838714548906607920464783148030892712241967948654841618131954886064042280937780459288109518093180410680066569022410447557179502492164223459894660869295467744163094597279650340515414363931613516899214208881138599335172612691278637412741716321949773447942669736344757496855588983838800915465380054846970486236529053952381665271383520737660339307929816564191854097598858025491055525914970423258534269302732570283751730575397383985088859385990760598358079034041927503436044782057800540813132636689892508488654926670105143419642141547483050007892561330014862986069573847686171882718775915246927400535486630447102067954921127996517116838475488804123044140350092033800465982607406006615011333032411932498482308552532343976930863233510718862027398035526543715789276063106655184885381942034882528883420090309333720502702801140555354772415894892723559117906797453752431434622106690375943327577246447825368609100761632248572001086958355256116439178188391639712902596017154891299081652964248873637020547873883408128863042288692759566223121114984812060940195191574798255603804352464020886860601168163677556986067502502455916140940434168459787448514715927875304202299976716858489680740814565385965284870460523250461244696430155201552446167877620039027973585562107828069220277294959024393369424664920804481803155358592768992665077399837229529050283287723398854962699763055873865435796385695270280325278159346418718663794411919985014943360610340155979793908373294002662115771262261490733245587606025657114088723740832668419541973590850998600658092599668570003255299503015632820527116832045005969621594696605987072047757556754209042486030290041020714650430572765051797977160749921662977520927527199222644720924461680780721681621024289489281734741761965522186191938196326101841198462806019920972911481965038213193399910275358985962958582821281946528101829704887969288406933050445313828383412041026667742312196041691701432864008096919101709552138552349637273638907612978360911085452376059896002343492740084996903559679347770273388033580077628303561285321598888477175370811997064548351785148918660635329265663490417470458252452909945428380885366756374436249859123848781206523117160979161455803822901324676877671071548651635857675155540864923267262877943723526507690751510934281993228950810702380431620546802460560918177757028635790902524107653729735044940232729167849405367757110703803487264863649186884845628742157446096417683474519274206512576471759428762627415490368668379048376806986508034279810394251977263260939752970870314610075046245466040926537627526966752123921731941507519743299654609248943586263258791625116762198342349540080167105500073639308728209117065743706744956641438836105098862214733495325269214778715345126029223662275801690910247811816729243440460563078031461640647501740547312912410632009589170183653179094228218552673681900726026700883756150880652781098909066993053446334896573708173181951626006327157061548621323197184797867135712709101875173470163791900105266114188433328202684373118638022518094108230303040465004470739997153745962959652272883674275616063508932316544828471824982452675289485459506141275952130229783426164129308237062802654900195697705050990510983780151251736748715715743445054886478623274991491417508765687671362352613051564373348304053314141322973678637127822089491951885344342555738982371257862338552021634170193646510233306286762920826911839055958215337228758360915767823505699282916031510454759469545449180781407372585930503211313754072298132283964366928791285109120777576432129990508753451103843648575617360184768137112076090912720898136563927474702499459364366481567398961285440745945038714012974487180937524804496626171559727505867640788463792834181928037840047397557033371705483688398953688846267171429341146926607366038738055097507797728199200270698707824002448872340959809912849247431662317464008471395974659217194176935142600593563794775093693089900965093120110646145409983587587214692423580638310416258228721797977157521248607123575730773887554686979392899209444133614206121794828941108265046935259920206784646845332158649651823923966310435623607617859690798056626286607761237520076261491907276405243939376124112202623836908165394838559674641942753530730530588182550787705745042189094897987443858653830926556729396729906974593994735545328343031207298780630449455542950835090256090248732638035786362471063605679959594999760373960833146526196182796874352201848670922597647498618499675743933989452268741030928446384381145974474421206602280558088627775166866081271387865135193585145260131351758381229474635734397133904248835276488591389232000686773785468880287222332708992573097846158513128749873100106325182577966073931509879430005791731458621830126596476707873875067226103614965279760006065885618213692674458463536938430270892248423515167267948136655879280085874506640675294359874225764923821707135294519139003602228010962603307546857612744681939378762063964868483370002100410640732508932549918068780620764293813240890679056066291441261486899563767264346503068455399484895186412803437434555077827529590729881777419168784628504462453836373163978481160617940272047625028010226105733941603167604559607485510143987366146707298965886768917760147662557063304521615732276591398294753176950637339980411624073216021913040477994491930347787634709676077360763048867870170158948183470894215623422006883357554661501495846489019641160675972305079060061230769834328389339151795107629997572902658696365377866091880657684391614197347739919765272619647497515018423879957674883864310906594599942260201512825208205069895015087224190347223906741040165012860926182196884341009192263180795673987600157577723951169623268012234713766661418998294602320323131273717737147482982889918845184520588253428804498663104086387670463348131551197929718026431490811935516395841966872785929433809153098478857711892888771286625273432817065846213760895353626014443353529983416236919238682007408004188218254427033175031746282371680522390721986030357804832072615049486565981673257424356991269075976728628358649164555035171597077333743757645060966769880491787820578479943429887937789987162101818071690938909949131020323510823435872559205233337093850688541218831872138471957131555944490732088047565056267662321880721851425732092869913830888304677108942379139950055518156769114984144159316951407494225425073699451269966659892854563945560191856381013485993698060446686216103453854805144078809953965125404992165101265426053347439026591979543064643959592032201729383048647733232468164936029633954159403797874169593161838566670331951689526267907954514618838820573799401851489437620231397477352150686795000065959541294976989110048904296657051803919480398221332562570997825526852555699965986678826413208389355773964524055327092024332978150217422326399951384404812132115421750996477073276748977494360516091479656184109306968511329719570015621693801785473773782765142076791778445096448812928574224422484002435299717177984529947995868972816633885707701572598649307294548011164820906501514455798313294331841303095981231038675582272697473839299407737365762823237119723818056472561239574470413512537041742698261411160765183905813204659330677991531876259556931970290323364115166032704069831859013865089085326579274956718207866820629877722043467790319688790759765627138004539508425486144015795157604968218908529797493490704862304633527809035712575698804391735726546279636276456584717873380561242099898850253149475216320987081218594064671288075326530756347391844845119377333027455180338891944554033736854165361654233144429474120131421462197912648273814786127471830607698100835465542132824230769026710018456742661653793012636168794577630389641444467901264544363439362993349464969439770836769834730814651117969484102596627908244449206111258420519076897083909187149601820177573088295594177784671319457984704232881970575703039565964208447838204753300954081680441354411728660714464548959844777677196543408386921700111899592469402158054930347771244667496399936659965956295379258789378213884739536667103918973514558273227593690195307831121046383945480277242840812027819633835293608731587398985164878724138567618555434218273156174377546400092940167563459474248281405543888344954592076507283966409035917775947869111410437872449198776157204221096655221143138345922153468278761779798243481074291860730980145451446050889126253936153333724739140263359133831771505642290748517829649935713473195701835756744657232741959193707722163994253631120352103437225490780110220261964176050855269441000706537568622051727348240322032340477985456652768109995055922978253024652939361273581263867435865356964387425898929240224286940570680170029407324525985194466971631080151457985430825925795635239898232267640686458743107233930439515260188527328963084454719013337321977551072877385889163024203220362519519722187276558978880638821176773539424179971419269852486338107662700381353277086449515685208226687956488711008934045238065005074513647329357404011550335400172723126375917615902033915814485125539803706069998023620659069175633086053534611253050061404220919152079724172573023553749871389089769142903908700854649963450242602904370275950588282372637739482454001784258517763925364383278941592796897116466176057383365226855543401673291869555903727516318075603772447342934047396172128828727959893235515722849531067379817199919367177994666476058697705737907736340157227425388120991058377436892178784450785185412638174613869959419471520061853313329229344411898576446781203009133012317201465337113389668192756838180039923212051317312409711954409041119656634439381045149027194699828585634654030185602715629530697492596883127680042328948492965089900779181926511591217780507406756279307539642147668670748820283028348850903258046281988693928881398156071951979827515469326111429244403568722794255544518817902598899274113653177941891495262690527821378745163704146686837134103041015530884081211335961808313131454871704590412441265705018816131848659056793414971640386113443956666262937528012956353255759361577091745342172167244041761676701257553241169408322800940951129228165828497312021099532185900122184244836857284210947999448029780783616382114293206272414839968841675634702703792354711724099842267665624103669147445822241599077780265956045308907746337268470517895318305339794505649878896919444187821391566690879351822638248366381422781758740879574721517763031446928702693120937427961075560592586341902983572747763859844004142456047033773028214235492431867270287210792057096220661785859624118672186131654634662577148585997053254449822188858298048624776388532325620610280188996970765056285190436137529936398503662214240247155341084013803113247225660616590709566800583315103631837098914609627617821478905219146289290239836759127692300615454009636304142087817103901560933059427992110002037400789484176780047211698868454568706274015392905591804246354658697492734571457485690293780471178906653688314382809485026516532999039919650088864430177929981178619011704915462688746509216574392855947338723861522220460871451078155885200913981860183804809562954849319682822303306664454569293992739568620507997290964939945381272490084291167369940259972088774502500891843344636676480664752352503790217206581950775657996386400313167870629490556222509552470745575057750193439128899613970103479746708937570697810756265311201806963987794134318287790499908376960924900506775958714940696008766222444091068679193898957394609540449672069763792139828368757121374583579978314798550727310100554896042888470138676187074815056007348970678216131079972900669327548642239034925277770717195007153781357734196829173192927697477871408154252801327187612401930294721663660118889507623801961344166046705458753896378550849570141040356093252863246900992726609698073275534878044869783562964309678343905437513549774044606330600789714469023482996960041509454649761305285019473287264095134397648237221282923454725195510221560681258623410355632133302046447031375624461853743260378100406283704511241885955404800276545800511540880756634995417067850122101898836340502005361988448674522698414508430704569136319060881888056395500909346625065856866309426642790845352029531011529189209796605171588759464420020779834226061688426084351099978908380405213213286086527440351773429787804721380568625953235464892295934398727452198741741579443479929412943461761913197341092921045146519845389843691388874674016164382467523160502516260951369984465249435354859847920720586249777645184539874630791688403907808514023530590798393829387252699863728647854153423922967091213722215585779188315382051855894755361235062212173033148428648775187885714124280387839013857626267338246143056510630504284709977194320562118906192814261045052704635644131909931491846393868129842079406246222812282302677970715843442152494319685297535146568870120755574695586636374282566259389998538010499088970738489060646434754916214440000559077495656881520405114655521851612635349500159194781742096359427879130219614002342034399559739922013998609597859565862461871092887772583360051420416779949900825241938520829953787687504016754253721862771306861824051224125438130280494486575218013592137131202105343629046908228325598938356734973005957862442080929502152409884409582385006733784337242290149520288733023093094147550673393132999191287507152286731397597519703621605568349839346484225401832392889302920128919444110498786657469174371970723343966200004189697452224276774716760654880325915768413367504892017101236444743729759661189637842986227686962499686883903545683804072028989450768017260249308278701826462040428722305189638571902816228538057478659384967257104987799367030707439353703078423979686017429498638494668059539876830892858748313327663895237953380256553436542053979316077698465383743356799676563201667599753288131818020080594215614922043830922374349307037282068785933231101277588476590612503820669284337952679222208837563002603424591371175513891741140780777969780386221392508973818793830700453616732046953802483626776817950635379189199974736009316415048402738021536803722156491828519302791618409753619084267240601081663926027653305707279302163612140240919299849436728766937059792676290174151588417683047215084303513654991116983238266672767284535313289092390513078533350543123494299193467202511759617141983764200109582759993820750583963668353401397250381986649330483838897339990766546164966982487386738209345797172040012230611522660649639731059028852025199241868817444074595705638330633782644770137790431527812300118478695814672676395534077731490876895342684921502264983325601912817819171053820196281446302333613492425920170800373664008386622989812392911703683104402663975880887700551605886397472268268751599146567306009436524558784140280553789736605968832379284548051351771461695011779918466760052277947854755478288677393444903568140277480927967545766872154574206077226948404013319808001392258161604147748283885916360211143275203132395684032611424302161764655927047618605549867622367494394139868775990859324969920264166774811481602767238233209679710493801709332427259047008370198716544232439260285959819962479473222451109809315926616786985853079418971225899910280899490913160610797590396925685452032553499305292601885174753361297670682027433375159465966796782801864179141022076595412282042537798838233414949935707947882385351372467620820490729897137863970407997736524115980070370276859453751132400900294475473377427648661198796315574591913030731853959017301233883966507637648465205995135149302331306164196367810115313115000871590548153107974613415134760230069150413896488880406554321786649566087560389372556719011745948341308947263614565571448929757692641022373342497907673902941312983462192215899085189046599792631915309757474934110429355214059222178411696050484560203895005202311253832571720902596032112015261386278104632557312687308678782324055821890634020077724722759038097006147435292765146679829034809576609677913920861070804365867885532202321211752253261561157319886119218051015206991169145812254752894117402517055289181960465391055393723204070608511894682492395289519901926413822353201974510226139804869444755086137965813115226914279077768289646072076891805424201210588831291746428162999515932665764018073858898444558920745987955674568337653423228293313664939842457446863494950687800223265069697852511132978290238037875328726718414542812423979027003564064538541022671562752859307952189773460252660125304989558520167044474561854032286100645299896940820295428032905054284675619822428995224273530237642839110220716605472682550087455611715696060476915039231408859780640575669817717862197148712735255787355207462224172217407453864750639335734633442518949690724291591972872366431999688700123754180745485732100870593300023469515538086773858677629002694176787210071238348617041255319471134196688877845345795878415153035066360240504539945804824578435581692815636211677070289766690982823720920699168240153020481266097620289065695391829833405330337396789920650686462581064562627932073149453764773132782581772067697697677840038820430642625872290116161029341431638506985700720959798425308629868810234929187800253887896086239918463751303781889019082757773457624757697995957661999853656681881164653765531841258460769460769534237475414850614194407996730961731957040069643784808573885410426569810343918935507164562861703072370082482616659762325295338702979105532716851555319970716117943531646445068598218585511232031035059572178232131413715729158272787503408521599411155184437484256027408557198089914496671979700421263646802510574790369975675756848218372198392810965966775588976155032410286892641710018242954773454645765225130786451779783279435029159885219309087850986607897454417375540094963584673366750436656050377524149572075719067834589241259471017812312101851410635622103594394969862711162595349347001315607767701263376808388191573639597262907343767085176921283565810539858399798509480646104142957718992381507828337995992520272073763356641624605249054062999683418281196381278664334893659065475190400583888311583266867522703491955532981590954303998860550896613843463051968292746895144379703473879788193477249923212554897466165580652868108206494476606212553013859146287585323241710015034807857995262972763249779314565243942100397266634826374852343778516439245726101050860477452888712623740394967879252033622142464053166869591692231831973134721605750623082936823309212445866827070173455627281811668575532552468765084006385848944991165475572326326890955179298030445719469914330876741471151936486425411196014580057149113265731116890636474221628193595587970785550723577316469569035036587033428208329586483707861121583600312473955000376256883993266432123094577438891572770124993998776094513712920173177199036254482800879620507541818503156253286339104044663144148702845849339034207912662413400631781114584793519832209067915594093736819014274811803979921083347545784602986229902288895402606714415754444544440610856934407863180523512774790731787415267285496152775589785376195652592255628068551283258480943351299863678881066251642721571825624463624492029989288145840444891081686511904266798123101282173219667871364360641858315910178235813017721330229990116275975538774308552070574919967101523090683336739090842534388553697629473714044021818895838178074058422048954455696148951727232264225063133970151105861694203302464108428417839602885478933248572723958459568643570004113239532039385334263030155019601329127270984930248138060821949422113737404181653479708664283154437696679753601609971787396518926861438353202208632898003170733157773172064648614985904282657545995231573242510804853237002623495142731543127019994955017418829045723641861119735917700060115216567918020840153593470209328771642745267054662615185490540431709053311668289013518067252474395428538150315485037633719021721130697926890995356301132229062247712642753024090157812973644735623251573882232275683932132259979807817536421492777125909766568067895636605671900102150835252507439076347452766902731908488528802857696489718933556387015935455712974812351165637444065912942126421683214292096390674929990579136104179924912066350043515830904939065978617280060695672000276941468567673429542585587143406524360356589237104698630238260309874217432109577516212174405589857564706203761758896886981353973077525690499495954304478794926226907610257097717886745229506472548493283494469356960950877039412007921027216605348228915808875505329643018652916101457419516513497971256979831049396130791963552357310295952052819018026297769668802716533694658232755985326278131327047239281530564984790991557641836265616255135083238159966224561973380599901136065793683464087654464295983640745286050160032207200469202165869392441215251731197875924197276599124479690904482324187988099413535375362753221611601560477367357494419151977854225656066694566862346353210257387272605858993149987431528492575049776194189078262020510293236294447294144090654848964345833013878718725807462393094879802447932584455769116285528826909001145444495969010698146476449925233655450126591201445885928882578050479879020008266200863512292345132046139701299277964317953145614658221464066364731187613008980059349754307245046193337634542969753871586402671920775354815790796393697301727203274445705516084219338911574262980957706512751414004212186399140473355939244772807693776500626261579785185326968764973585946122730424697078859043833096328774143853022518542864870600147633255561650625640068029364211259346409449252033161822484914311371926002860754270968503302493486796031388523134155168231793134117387574459918918717019145514578532742629998304686124361859711128962914710467512687706732152174499544575822679955669367476529584788397218123412839800309835790723479075657734920974430810539625273770279736800742461650528494462393944399600821612224293855095422615198784772090388795365859015388812771291488005993178979810557111866991723023125177282113441240561371038123893520765846438745222991706567102228785061579975255777976106349194938629397207119038254503935132518534864969839181728459663884515233355408493509603984721662590867048130038664290488603024891481527109707279003296162732662934692518548367397544618738468961797661301661864670420958068832713925327748627105159044020490945159910299107109870202396476508934569945417723457730119254339197304855597549401881208802817528920951161374548032655396515595804215166311048372350972093577978370525495696014636346405663573211879702756873640658252876189358260165085263303630220899396243589502161392614114028200408637155550441789698754409111263302087435218303593088708809878942181316034886233934028359479187840247790749769899938522115417372891291131933126798691940140025600860837815705829030975606512548475232489129338250273586602024432765365766776228401474133867812212096354165593811393905535109353457500645804439256282857943412743514821546713988560433717790429310385628993857213517598169993042016674375068667857081230860161349489796289854331126197571342704634983832147247878217218567336678527031297836355922416286323056509698485862031460753972008569328117299787518321986511447157567766681073063011850691999077035438288783739215167205002683616949619484241823310059599763002001680560316310358616958722797755059427980239410272323760171204646549156797535928389079801693808453785645416410680485697024787434372532296799110514476714422685175645540185707244999403921698028960670829774872784379742352761547687435437167920379902349723056491173526553102385743966632777951545923457850125402820558555873476640081124961522132880365785453406867059373138920668055035967917742256428693178652019690135598685256662220027463565798556451798843738686258252934008353582650605362178293814604331769528691025909606202683689766831817217621704637762895100338037105595686516762060905222269455615455839087599933996355665240144394913462441957927879630433481402723381936157164094719261742507471343769620997742109420136554161813597676231867651566342733336195998473936320036874239268414901106864045307243216199098830335298291034341693553984534524034765228345647309369414077868978313397197374179209644081469580020605247135783724315269330822039081975456887907023364040618584441811061255829727609740971695031944791339357311164559192445138622990379283700107208082557575477116283251521255943547910172270420922125103632673125095346181068567531230150464614182912850219933963660918534291188929863889775643027155528394168901661475979802000499918529055081493605726630828490649409863874503867747214889297530427770035680130632909708497688938485162876177658801981124200987617569907462319590241933547425659655450444948564164050347950009478550545516894135019858804930343402231863504713520418801825413022639493281253217602624791190291538635586143370888927634790836068617307130446349674738273581676441271249629251923370293225631769098653864699021610275091079596665917081326361423243698010578754345604498975414484015504814911283218634671182674359046148472301897057690801062513284311464595366631860458701013702700132109797845177670856814357292256844253637195259691504605206554456212765584200506741989263117531538769612311876716311517945798056757074824933858828958311885010970389052223936544379909280260438737150115081551253116880401520859861805739727083962568097912290700262565515872201184490195939182289229824757828356585108417302673520103182441601690799815076920739174017815682512832440327918086930896909737148625943281752650793667260630810682151540963948016304020774210467718548573628038369329905426905435575849518247219967629130623643786794520944198165985339059292065155844907614264373135526686802542445222721039788038640225761563149123096069165241027290231960625954245861823195046449443046502621030515071061215726537733297835714384183479155874958635556339642124241112166011334990227883868663379615814213225429590943016757891605448141332401306899003951286746649258453175354748886820090234167636432047851450861413479387321573842142985402089258789986461106701321789758111950456844266272709458048393986095673467993924390531954194208676009028715185916090584007102138425234734032061014929611361928243467046747302333471413973618198416389299725622119097231889747746416203306686913023330695957523599913897409634201201258543781824107190873970902615079913673624975001270684729575095561765125014060938674611480195327736941075344210950876885273202729989326311782698115725976629186053303247581736485235496794591427937919493801342504214512261371464536972903252649446531143070564392714084504588513183283179862836254678536850821677115834672975071126263054062684143032566929646678112254770783679845824430541497866502447751997036264065985311435385273019555326732451814749854590998233714518897205784258048029569615238674412861759022126748504695774307836398730717872789456727149936440025845623750064891325729828323042818580402820888239574948031516548081487650147703187502146410189561009781357749326909835055868960536008821938253256856693539107230007392825526212406671219852740983416299191820175300407704014717586807131875248415273778554571913952086987141758750241814045818739969766867272484991226700960968642656154260235002499617506662910793031456318051378491955355248162598130353080258369968223366172805176269824140388619284885138765550161354317884811607967890631832551863746133939260134435016735690250839898018483006466351412386440487214167187516112050949815519920639240035221534809588692254760376884782007200398629951628983886982530699852338401685869503118403038876519998482039506237085394097377511947544887275056034355243228186464251186981578398148619401648857240345370550565138063611663009098299956458823483182349318930401936677248567519623207799992583428627198360097313719093592712854517296275910918186121020238364299941259634820578779693625370002921622680734360883969186204657157241303836687153837408170280968123389864230716206005559179320783750993645164883378492860173124836393652184149748874392633457379128919967496823821873882230872726296004638646596876883255896815993378624870039610293428387703484806538665419412538227152926373354229346073365932453471402126118693165673037033701777773187447681196274681738450492811542571245705873189974407849342721167668614554272704263796268427983559981198654501926272932806492841176015522261309989446963302650646528325108717299288358674007713762792680125795067519036709749319639560262583142189236944750619945979090724662679958342239074530551349205497044327673705114975234501463092836147147566415685999339901078279510765244438203160123186264820624922075149904012876508543028234193710663657881302327247589116986985679990272356437274719155516547832426004890618923770506081979049336781803986378231054483027029990435138246724181694466458048864628014636923773412996800139586209738582897473283656063531194165822266754779812900738664798466677665148527807886837649537076553616337903813128326337704985570445619489212159352908341210589292832203849020100756804435212960371628818332883735113005780916719008333483614183904569130631903519194235532693498399343446377410027759194258268050935753943316789752262493305080851754078398755051167976647725555746609066802975252503257991987344445785315629143758564519798232848843702537698749626397999635479508577266342718746959047671729148476331183105991184526234714213220035364759974337263113995402389058828489789895556694035079477233582390540918237285466503422665483465605650658232754402851287273207932969158778532771743258396170014891453498878544287560571350980249000588880450461555601109463350923204082550733226270599037392555570834233146886864860786112495751297417869733505721470648480215341482820465666633999987997070832076971139388199317643167451527533842567521869229192069057311422230021729208458374363410056641825846322726881753230636356934436195236425067301430149997394720217509928136216497989972479332328446652574223299503370172849772797114920031881318362587692549136289249628075767508364883992752882994424357524310278099020714106747329441229641191916458265105966591080947839928821089944107629033651622364185578131984554039357804808556157142364275420051566842727004444176267035810435194415184895252801999443727149027730796692558578144029362296387956364387928385264260605010046061610063002151913874909129425145644161202190341779002533509805216293504494062791535755942067314635011618158076601471955047105844100290046807698826452076710868261153851166910351335626233615684969929766486458162538630947332150561449543751823506077273577607699435236122455554296006521105595496938415634394032367679321367125355734702983531352170874417156029435823597480600281474518825629285752994223976535470390741523797010288725896927955972662809926048174600141668224945183541737524676556172181272536873297783344040233533466072537570314044341242665001552574386599702054017637613044736317517251423387855044518843087341145233503740811851712167298172514261650032330767554985409751609088184993941418308744952054992002909544115027840967417933753855062146495084120266529036516555425936631141409611902079226798851825048552511609035357601116742622144820927946313907208957892197560539878769102711071014671548745889561042536369035763497365517770862341043828065155091569700038161609136235633582358021844661104318642180698904096536646569625403906836626424076877613007710906969727412066549674956735216166341102825035709625537839964623319670473345485700518263949707374319533994886800950092524762512390140419104752808110256929921455451506728345299559213522147167207426154093130497774587949387864176643016420984632684918158923798251084432434373058473111550086192198825640059758478338051145362467801415184662661019446602261728562793218182126126885941509202549432548370900107117069944839239722827001393330410042617671405541550121112803875047806384307660576929704169429705183371882503763904069609804550068979355220353595832618276876804363342893341384622392578506189274409940571163291202388962078917151108007322061307738184903425810523820463345688952262239618705498759638553059816625301128249972588594613573018707814971701601141597884032946456598095837661584172820394192701986735511540213596357158215111287484994297613948310416280233282521937663504730885014613888681725093698489120306424269299209574168273522903428101647611589475946224244113001299780681598470925850811814632943054003706249291071383040332493496910134082097631589023150826150559348324252625537332743971806498483224185765983939497933865132331772920842246367758445513919284972057786452809619364122484826722345673580794074821762955896901710000960373903548121942736406864070717674496504865614479343884701517000661137361041771621024922222690871173026650221585699503771022836360796508864192557704381198760951147209006038226521978541229760011242102080580884152790361010483223302680767704161613486510733878425693260234533791377989535049606632775995618008779276217466634398155529994708258047104112693380068938645823024488515185104537451074930949714412622243942910830065590808425263707555522019324371449122904812522158561463194310509919312325696370971391373258882656798975932858407545462673704461551705439305204676950376186193406519581840002623716090846974160704434150489805087302679119011734533930908125620702878396732693657098242890324905333533689963893109479292256159839042550749316200625840380605458143489764391542142940796807510990723932612269677687591121790703144451938145568974671732354120418481441795977918892223360729477703121040300976812100356137584543848958788758118538107485126295992163670458949959454927301418856730520109362849592110093853727118638514452645948578431140606426198876593746546631209520682727246850883796820821195176745965158895887690565606533524870579504601070941894973547664493093764574120178859564687942069152993967466351843838745385312475542736748443646052603717375693013955399718194043525671636171141424786724930185882518909448655439621013475787548564162508864600067303533758215532883710882824137841827987297041703188452745178353679375186596319065746367696534753695793125062647682031594282742552766269233141397698206479267646011475788492942814435266460757203462222206242196006538328810931585751234322552491449936783405089561377885271871317534280543958696254163904611852189941223083898932853389789288620225491917865335967637353367523453763546472133670047923176985823733362114248224323617993416015420269619692445703446278019240852853128900259224537572609574094460611996123690846185965656619063847165341395979437646817194632526717620428688100530155056252671793393925148419825855655259328185560779217735398015245418263168273257878529529054126025332938533020011764007101396343549180178482217822084028269129164761765006799582791509785796895283041079366317273646470996786996091739979993830906835140796826825894972246971580071592818524369758025487802797324173380232852643581528016900129054081812472144651115572216024888891735709179856319982778786203892321419140435945231305276675333671871243139702961759771883710609234983377659718508217575642714960778462630867319851100914623167697682771854804929918190319515302004366368569210383009567720719323392086078877787272618398918011523684087179494124127273282212576167510335408033765316262402082885750548393256830975880043276417391474193399114205958002394655798231068578870419742838568902463936956568288039200187785561007125509739465625059416442614279946029058918989375155490528378705570611922809342302278012001123044310553829952950221321622910448024080843358542921811945166956753800194074190570701601373024011280004725140724635785175891263110102125001373949408554293943119132248297295124439561755338960354368104987390608587366141074085049905396404951879894446743561885057188677660598174060834384577305373193443695798498119096690527489862341687681076454147115533129081745767177755537346873735451550427725045656398533131443889690135882738801651720665120367061958910686841477432618240057868207381286897448976949285809345135642322808352412147626225984287289790215105620822587970917951966426592722939569188936016632520675291609274750568418420612006600140323389675661604796244725798621460198745744560205748864779717056907185609791892723520481911112720118256169971965737049894850777045539128521013542156638640894595069158967513455658317754406632756192471842395704949389243639589637866272979101811050693447309779457161204125655780193180466940316748771999485716453179927526721376050782745717461493723654578240598380182618656536357089363747334910723118078367223615758423131671112232215638170105539645264812320621155267378476700908725429157383111117837547290405126318013960816136919628474879301476560791071342631725363890108931051776540846324386852071477703459221613772589817008697160764256117357833585045920524600827718299304184422287374884769877734942610496032157386872396900312033253057826395969631912614947860723892905758752600395419837239708396571013610631568099596487051365597800808158217507985943682148134853213055145449024619441356427800410873498715230802162027882598327297474150707043377227302800143524604181525579709761039088460455124001317392159906216554430199044937265818832793280502555857843992373490692364257550944005065153119636669528990499769112390927742048676425921172808083228943628168174048329978520724340756449896028671804990930588256994796662400311871920468496286133555989162458411078930105780846894836564648657413938908776412381710888350742192224089273069080601561750713045199679837035781078456273812915177242602007850493429760174252043955750544622622650824999413808012962360181061981027922395591193642415919018303393221890020089153814088210211057106126358876265390611164236698093825858354000788311529184577029654288245342854903587267651556486204275196977117720714249632696963957478783349673404262370228996094530343344227293197442149179262770727691086110567057460563804225990280148232920965543790516093430947023743462936181119409689565730136378425334584168466849006482034437242266694425330568484926702312516352313223222269670390220743077114056418730764630596230951618623506751167070049104369474400421927652375569572653284693769732746246160253519635317197776614772270584837577989496645732169498264178997087726209902139866401500118235395681622277126369396701694864547559400077221938869376114694044902308757940956007074363315541329230219922797521589044529990138737671166170913559563385557984225137123162913080739888008530190832934635339683387440052896974714126363010917414541594129425269077386876218056638132162215977240423677926056734740099352865518246570980429803613009704880777377377253347671479580257314651639129059274150037508473294802854991995987448431016159716005537797276043497926278453825376580148166054456113728445496442866627780624020476915560510691733832597660216422546915677642465071472645566545787354850626703386163121981267586787903333367099570214991934641788467553944607500460572881132089907548131647702852202199057071268166459215723476991588977048468648975787569553748895880926429815266021215661889981887872598322602619717735655935286375368401091309830696826012994497887369370071866552983753737214778281165300831069405975182612035617746630090761781498558731988208033089332609088726654813642453965610493778169904436312873019813241722196080117201367735738572506442886759439471558072977735529257886365485904293214921697711163078425097943210234515722167946909780990513675233524339099887403547148016371433100291699711884460050682115780120105755507048828421347540227584503668283881456212600021412690745332914716583902372541300331860486091065303658309534538474792896409451695760995013100618371448113991279447181133845436793363109164351346323089616872985917019367319406581645286913557528122765489820514200006192517077437955520651405712017589385400939865036485304001938307880655814863064636795497990423360909000625204662599682843539058683771736248298889004587983679998662108593235252130455379566415933497696766432351060375476761323090610025588159633180330619594087110944009433531972924217392595352300217631823555620126264941964823191806213841910069683539598107738347248864488210157273633516056327514813203396948639607788977680689994171791681593658204957885337807905392174151281951294134550649250648893246106759431373326815969301447517060438562119696672727426083147879675375145195075707228520245453195015296353757603424584859420360848244782297377060947780822894163928299115703574656170963289349036881742176419350830943379653888532300287209086391975985755859115598475306565763221843987052344456263899632625098036025796610044623907207309958086206959135581608023428151509805867923849369365628802503626976454735981323536210522209929885901223666712087384159196126647931333406050430512644072394724467455037253728101943545895106866003994385374305958120009863902110229987540102022540182440444404277408504860143132209384163764305269494048879528359439022665808775412669760067875497414048409464328877885889757115222117361907962039616742085955464336420998835172323816292843345402143358773916292600498461720345087689001948051637064201834226933736814538244761480450676047675274258641973868842780496319218108363621487108484072440005831876198536003802716285205747628020016768450329287614359235576426948931510421461218662288085140889998268545102705395592370028017312049604864197317217463054438329358862359192055124048286960781935219796329750512048483082969511134577777809770577692726703549853295094470333733088601945257051961940611255743497010455229438095117252476354628952485592025864857257421687033106180307287485531327365571401184823873215500292927252494683586894545565596657808935303058922344150799330561560453261604225585744008092566915007420867163132108311533433726125764374597550272890200538499172577442878784988515358917099827505427920674728484652470972716199417117249970485929831169626789145091492101529056816718229213459618397722525774575048920617356919741902137987374616337803611040083428328594615061036093333380370415050052611999231362807158777635949246384802352677513194616018738050797246467339757811252448515657925487812627744077434593512185326170913854544502802867127875918967146383186998972096980972712601728453578839859285595799930340528638380807200238428237881032549959724674516553411561207550394215995299579985253541602339722281653468055994955005338609822962818958897610300717970542780576553368110794168471008340537579231461329317055947849608029072033919659690608959935249306090697750987471224693218816648636558331409506321755118225274574563270882698270557338327256465816597798260046257853757190657478918470297551965520500182517972514326550358598288435719252959274731535882243107435877031207370763502080724019103081523362931813092370180824374533273487250387355716310317028960899606293359702390128758108823242876744756023284596556773049102823985118753203717968113151316471038724017701664938736789842181878489862031050621518890358444195968595759760717829125377801153241813997131713662285271694708628719481004683448929329687910865560421774687704496577308458963834348244415248678144332002664503474207890330314258642601088311041979687670759298897558216125768570337002442104484656715479777740022540131150415337862307142635599876383855434155993305736743804007051687882730841261479994893560233311757449565761257932142844729224129510491429081728111959138652195804982575192148763627498322698695085711470371182567974039360517157506577590020694064641011392576422085415847076413301405893635431553561812877942360815262736120306121280910863183801902951163087410599068683139423490414904952616109600543572864840892514183699864479236857455487703573879404288501270318223404094255853684439055141790926137602580206529361751678758358640339572510014165743214713343113181812250087290726989163939705061974620318241007095927716728717596086762414025166197966758974341564257107815372999803909416669583709456276559339812407617639710485023807861737392397545667698848348265488066502591516783549378599105698438024679332854453277517027917864273395876341870789379127998231526812048410465699039013061368416206831446999953860501319094214609365988220023746695107702831805522803150929637388748800174487248827257244988108323125742031701052850647700939770413603372348092216269853315493032852928540206005264343392201040029120742466559067042050454799518820933281222961435037667562249458683202649420147965380649957020601956724724317460295456680396093419992498421156835621333839236992346578296156859496314485020152006458759773291400383663647407549613614681607606710304981007421118928619947295555391440525742695557050861637235501660883487588367556508982426259549681674030104748101226624907054464198984576234371219072975687650629355377261430841362239723771683509569208913941793065206922613763683767804865442776247803320340651874766571194713834814213316651027577790476919995014470841343508676569673547150508641185998424030382336686748654839580123668984933515990819079757817578399529805006818536487524750250467591189163674739678344271980398486654464541616307008391980181466935137609285163786959387468373451216155723967372363401127393002117895733690478270490662913148792770714788947053304888988687221959135503839852282390855122654861317247045934569960801372642381556467870020922360409643301862005983086659455444370150588156071932104531911318983636053782122548448541356550536960810091983150292686992895970268404079991585068867357489263398204910474995339744738099462757672929350476010998950749082798312607657026859650092977292837791061183839813921645452031319149196017699684006487752391088775370882665985448797615588568913583219896613938561399169123344111568824914685633808379304850917775474414736242738844217211825371533784122437423630494000075844814438395091970280931949620049245824887037133993608659134368237334437532476353927017095176646045822268224427345182262809741932383964296222355097124740596251805997300083406364771133033431386548708445950377286441830144564170520928856546299668955586560740807893097729788239161727573092283070439774746128633098275057267535886349025752903836813762548851496161428021474025540982339798206140222390636739987248082997663892979409144379486997360489018631315101106587474359502912384240511906306416683866721362347773532147696262902593995637350258372547137348717473039302332342317550389174817400427537324035436883267777316451548627400375983455622998212644018108463637431035547638399011607831722875677838258459380831602792023314403730149682756554192191157746470585568703569252731518062849529384734602951944250136795249662522768410730335303192185917415437560983280728759309635089837400938074868302938677175395787173368345036563661702519935082649952045278770183210119151623781719764396203746212922238966901747728981336799462763010544083085594879647698125050983656871150113364198023749257538536346920720419772760245962099079046567611873700309113071780485064513676318462984923805732164245492053710892873728386383060934957784043568747388327448721521871475892836694286411826978279315458705045282978987788777208791026796581100322448496150322219434001659513303406437759048729263751876125786170820208917287268692238796642251622308197729409957976883868053202061790584497338865147373837151879463279242059877499526641913651472134537215980895356970532636034585906272403078336567370157191668228642189540314649664227239445099852311312606436694405827385948863101247604863206367186348887729859797898112623864112214656766290202704713960003297018346959354014799023866436981458345506781205713972504724673322772436285168905731818689855667646230709799189444888508029690773518248460988642548961895574399763757588918995691225854638461269893175633343055515243248542105222211400055980334650795875307004775181518825334842035793414271736531144685350278080785624761870127555076817738681341998374295511046354076224638887111919428766950644969001732774009629731186158458912805610413817394448675469022009803335539089456634375806267228720450796259794420614279321096761958397826053854824906808399197059772754097348359868116932115356383274875289290961518208271487366158872960330550210802761964240163104460179216992562629187806974315169981817362273074308155471052741567314095658150308446114407339503850274969543256088299440960448443390927529716129865026445140373392753667011440301055053919388713743738316460337970815622338268260985808589977581769412967561612856309868930154930531614501920802979459122852235865212508130489534002467139070862631309030030213311877704135181387617701238790876845708723911673659776039253965537768535206353172811356198028953719256499429083876343380798900514601667407510795926960747396526730118570172834193202206410085686345013870564700046972754915554593260493359537217596433287766574305757679521506801759300676628047207002603146616649714918939010007368109089286505235586590070997894477884712778593134326444947214103304224315078271254270703173578923946579056148527522133825705994683743986498314439807811869988647334976685218440855331186896770822118572027051775660254380420857690690870212321386027569948228245336461668194708311429305360270282149309457166964407089946105800599136477851476446236403385508945851149203179061469880349216750428990302808340587335741579016426757364138228100268006198886432955949612131224500607043444789385627748807097271340078945556475533624153250092187964517405796610686455162525863501149441854015837548123283254163066653676395182509347686271342948763114616471079058291296800810496680687564434845851164308084797902288422739874365045020451973802674303257145735145879545249667388117704552099106593204387275706324966443443644480071627156492584277607504236579857922643601000720665051056777482601402554594965068434581658457403862126551661313364565760631571331996402367912917315846546556541008001327621355595920793965934586487470122935809205585367284360433214122012080031941516127809060522498972338151471283135035973488274626506351567492067516211738119869048591013473171781924329845442818093697666238265825259881308274837787925166961598271188327958267081866020858145991624319264975236297858606502480382048373208818628881363331353431916045028020396808113354745664038520583669303959054228238311422867606903369037614539388161056712758413650112732553555773118622376197505003118865781170087091849814498051643057689789653605196849342063045985203670608437240474031280724444538309193069174222085231572486983374143478475515679986801777770397336784510289570634488042040638505003781581427635679925843021002140015835604119767884698354404374677558417225992280781850633011184168801053492144226188146257993999502736996821853308089039635079337134168417244380049089816670215451481159039519253426408821872242445571283177339760228133735118395102849898786975723095476272502962424418819127649413092558109466376007001437359488920717354388712873055214111163111957177996675016267502144650723076987879120308678775675698926356142478474646904244177038032131537581103664298435536481575879969765204245258163044614173265841244976238313936219670992245638840924437576082144201485010054405001364479814743101905337178194053484972269648594327572406269677603958104868591871450387840093928128893387762750748585506371087149597485347814603408126606904251823962797890610294526907295298134424717753352659794752816302789259055687448213417008339178012188974087122810558574583096780091746358017162276882065880673025458852263494877842557336832292083452065496129790407855053186669181272765942934628130425152278629263926090815885177339001681525613666447716977714442854228017491093179583271270641795280764261798491777139623830082230057013810830806761647697863044986234630549064924073518268588197329461547723609937592634277345303592532611574739739946860686554212967197083235082088547692701879826428763771224516177867296647753488507569166920845300113934551971119788090214747214369524404394078356983405460723265850060710401425958045307192283628394411046685715402786428431759250786396280991739802198575978125927892294040229780492313646956840413605508078935343063575498837299615593353257100981132224571077260212300960545018141323210740913141363475549887959556346006817164485976203371828702160338466985293003869437456509959939029725613585938523193100512478276233353756758250747956416785979133755618812608700086095580365141011051410552230561122045642852974732638758962850237709532924430289986436500986238040904901875923970454351675092166123543480761275389839447926835659219819840268400336693122784386992903991959947999344995233761779122003757969569780591527007074050634635506247462478135910546916986595252447627895897300281483182816491844039337338514625627275485525630496876651207937642895612651841296098583249488094434830174822820995595237302544149949145999899312003449802009755733843044691073501984756652981568347840383390981845941967485204693613095300270202665619759357215222275012399542554930320711604247997715612629845277469790522129070810063655311253716948045788151132912807645447396741235183483248596331525993322959377822731037284002995556068613870405174164813625648337770412996880181316883263039407520292232182062960753219296580650140703581278603292259058625564210791923672879143320743232642429989774422626517228607846644962258534868081538786046008118656467773695326907056503678950983165807706860661542458535544895529314053109838452960605404017532437170900421312351229084381370514536226861213833334041453643108697558759935363632263759818838399694115523682064618983619250807366640720449719539515509630895557638547678484309176712750622846128419311938005796230517014860613104365045254216881902163769674811883525972422532635060606806976556596763645074573850340970955198507416953495302370387735479813142280933166816570515240918821758056491861329493716555739956141370161995371785408806005787640172298859952213731042572818163015466733555666241312103831230490078587769530657347451411781884104787771770086323505720136977518735365100406820254808122192874427362116913848045078257421801221660640275853360058323373746825038837320453609018292770473651906580570371889469208854216371805778054688233362027984185986132614827864611247732102209827463575058023182839136824753073107629761924273870647394002889067708670431872553840311160843733219891777185393317928085669910130269560866137597884928413660553578129978786504669298518380006020860775529890022135536755591932501099408693993648941897963288853651211157539524177410090442894071673860875890260205452132111282014823942235968905182904977274833882196444435629203385149768355251101079712175762500066628867658710086752263987552678463887922942951570305996559976548298124242244810436238675172148783475789117838063967297920845131415332783095341448602859470742918679439947868744272760023764268117412373866400926646255134386944515683237680384387712482614668836892392467409783393388655747380492657636862972649630938388581914475798538434605502676901294784846776274054257928314733701900886701702653529525195342925783104152228616930744970791600802778943418835373314324578736296471473617362307399697328898764948564525684018108021618042238571356138608049556732820149626039841833436354838796085142762360970865721813012277157316592297315408224278618684763027808153959732735770356963859528570406458979960452310423998453547035633165459521328148441880889990200158117789372604111305832313026582370650465457629161233474916410635801926116080855783316162891072299112048549352787196290136153670097850919220922572972691551887065422234885119744970061168339272025488423677924454552315179375726477623428094601239049018550984589072596904336060112512786520432871691431685377238228786107808648925431635000252061065210528757169970384508830200259779968290896547270956674204331544741294030572949470289481554803155956414850384489765554142549403301326325079239171841739957786569113903951083990240960849292407803166507425487419499926936729584299909000092806591170453555200899073978722112989274828160759111358360827305554085090923653561180357342977113178735596696756363857923009722289500818506475547975983164950525722832499925634070332904455601716533023238186552959234903338860178938310229494680949010392228459561777665140735062152130304632811546420234464540688210795170539387006439869049607051098384865468986618766189997104064271595522367232774718911385355476540125498979498013276591951298684652579454666486247507243542651364801989989592395187830932260241937418952082953956941530484482041042948468095946213455997356104026105612561597885817304148901794198800091686655899372309565646550588142459097928937806032144584608752738982046731560616662290431076432325718676759906797388028809389732429415031802976205673626934310186881604822452173660120370782886441759599547225476660070045452937349450348542572939460692775497100161291189652725978703819344727685131716814165418504382955524066035835584787857293905017944364176462259097236409547442886015880715015957731493004267617562214213072358124849616105864802896767817209917823072842224719109184047716701733173306146258748805404219483072467950508729427045725482060513841503083574446146834781512834442602944757897346664156747285279461478297911425672501126283613706447657121952335971693072921422666288572743952717161071227382921210906191459564425807941232028734078368676788975923254172720183583420131382732125122180309772697740863424319543860877030072309729639708368472550824480279405857918702380438584051098176890256624212086095604884518097991383127445718312214148955071886100884307637833671081216452584452529268287058732927291425612249015955673910221139675366488260772070183795183986408094601905530562711625588846788286064299558889297565153313687726344889512156137710906303507655634989085862021865686896485293685158899976553049866593533984401476288081346657870368897620946405481813966579796098805875972888419264153926361525081690084419017784394895045341102588489491824581082999216126460206648874690384153971533017561148725376657742692898360542692997187429566546109380016045446946210305870246054554530088196191201200171087209418777756554614625946826678204077990561925437838396209460479974805029824115683631789161725149723972799287129614736030470425651944921443201969184419188734805871614893407551899199958993889094589846140808914674398576514937943067912536487362994645171153870558963475801324081974801637223790857613526740725841515678955087755301427244960983843307219931310910520548117287450303635907647743987826756614012184291395718343828594492684718431180871377838366611666614294908596741750264073679760880679554219904863759786459522532167972238508588230614622059537419012609131079974179393255370842446632488809907949247875808932855244025246129834154402172277807194717786836990418629215171968376412045750215647298121249219273895983368072446189063254505416320152870533433084113367957988720885134802322188087650068557074060705636135165583977484477700181655927285016628938769411686802160848905721658678939554553621362106985243498980547181519476748654035896587192693029781229537411556478437785211874791683928725514317892662836826400284500526043441626017205071930229344066573918890088063170486797194587397127935366173341100825892184370609033994177229725240322434919125249885378081607416383144268170747575000399002464009774002177139613995779275673786523767879680543816613406925005613288677758402081927603425245117205493836663468766108206113677932431740594241937174955874583229440451033506176444091347065176704181314780939450050560646795696049778481448738891383541659062615407837867895577779655919592546732821872918795013857144925954181442658250842596314636833303317975375243128234592959890249390959603477476859820842993721759269373855069239099955240747510084144012900142013250043293777961282173584982616643222081394484314563664073638951109623540484259944543248667778772956080136661590934056657249141175330877466648141419496037915607123752650760263082855535207283317095044175667820056291869013300788693816257211982230856516624370755812751208103838202455664145477503700662392892309105589152894568838396459246437691393324654397310851830206054167272318372876848121848856302294472375642139869490315736422818919113693363154661617012383594931359322660234123750540262209809510056815842476100557818973855079515670278114038332651604835094875879535394208132148185520076758777577315353880008368030720213266652053595264291006986215422044978507424988101527658626255282430936506083756533040041268621393012694055097283299824663362294555870617380969934910450268062344737634104991002684182398137109645674747540753416357962321297133886659378699085085484315033198989865489202679095468358487354064649886009776191146715703942641877322788814586506150193722716818538942913561928412751334712252280099775986088463016153656438223425592884311495707189339689879860794340884542315860152354591847704492535928934913856802641014188654570449698217975844330058953968955261263850395501661669009758881256876676214852687026112900469711094371380365206694968017695940705975053545593566227273190489888840525288926483083332589576262417523926669277331281103328501380915443123326889983678203104093586378172407941798759956561538715158492675974218263615981286232868711362022629984693358826478204192248017029522221673868611725628132254188238397836172092252312534031402449294005081226561621046389829289017623676453854690576031682462586184473463117843933541763217911656516114755085323993337652514214642327981648246940299471984157346859344181470000577667521831144796071638934157168030681508041672840602443092081727946606611709037224203973712223386013390191634345945547328457785852315235836299291976742278878683847577471837699754118061967627726115695028586172702075020612126668057251553119781594451526319705650378856291507921244136164311704850548141269940303626807162530659279127311881490102950607847589570018630524513276607048202354800324185220321745029880143625617863501366898197913582115421295287934546064222957156422624371401218894889672644516730999904781398044596055427450464443342277960019924826842766234505756117688820557360054034985598571471360574260842002805065464980924808436368398342944608877532201902857763161260437243647463505723025195046815316951077048722036959127371682055435598602758619153931806647716336335602168686123054461948916856937934516117604027578825494496532729775337638602997158548478074425731440373906647779223194135423782938118609585460761918610385587076958853372031826819571635879903460127285423506144645985936368248721460872308405861227400809689230744337312630353693816890734595420866408200584622153175015382797072603715132481421905073921446164011422406628343654445475330362325497150456214651707993316378879560133086091587631013822893865861814991727936196743086860983951757014469968570767449753147673515332147450425607458037642236530387311018011960498589613673717857806802845556124351235773923108813219313587462983249971914593184152081331961253279144188136137133597449456776463353771084373540417372877660256245750787063141097624306860440810276076809293373958699868480383045147834988358863365725430555688796254836344380196588025578190956901833765522378937428875956255558081396306171097040143576116087595385515749701084255242419117640631890650155653585338057555635547889486430596148446501381319942102893267305113690044855962834123913749774368222216414063157189336399397256346223560410077085918009132323161414852756681214572810411602616508684403047833523072151326509962590882597406469038087426195379667695060464433027194100759578145180222737485524912071960585377109311138960963272283549790258986706879243244231583253218523869491277132389411037109172362938919295778783065350233609639987877465396699850458454237363574533133137307876666492231623880541195734754658767976075223360339123021857703228805301564591105057542824722103826375449804104942796858005150875641186169401315410596270113519941756906129913799304517009012919466264657450279948266435375018316634825892168082004279826768968550452992815475702141141397549106621771009463627247322486179114538675924260272247065254138888157932573150674710035197362789267318094898860357092563576845432083103431585196323942166601027358988313194411494633267875732191872158275310489719093104851000938459510511140919710120165209618857767534824305626365855600973335456900425701752923159616793828788818948894014796187412314249056069422213308309912709669064127242688829450860871678656212088615714032853461623603559824032021458984072084977590794822794106672564287573093357292501016239701929031758825450387961793874662687350479429935312033580140633082987627611042628126192683700025624356226091159177174245862196917429800906884341707391651584668502482649968443694684702651729036037156230275481887348347917624562971246982072113241911479874755646399483011922422893591118759535356382119111525754496862671796725787027119232930506263292443289001044203272812309337935295625499775641854058699585348825576795929799639500856717478978149120606283048341306664138748649113750045356814228942988000208913422233999907292100916828402809119226371449535723148182892482085536263971219123346074194687123253190030061545038729896198888328538838694411752974393789311659366606750992624400720386678314156710981255617256429661881238709912260501280143698374415528164149463648387708248188776680685695632070482418600862504164671078862589066507623568181703365486286333060343645336649226526977234487141242047370663165131644882531460490846682943311142073085567054662073067514213817992040791164620029137273188013081952237694208989625220704322413290617537567916709564348670982811755327923949711850983678864594964028588014686987970331204779501669798747364168904036253136331875725609311787555366050224309806168256115349568728207473840249571382948630599524040995069615481988938862182578857890797117272962664103806495555152365139545041144059917259506171515658117839033660774916431876347226703626933257543457291202725823979291564046834091151029653819823147947043912790115030904158267700362004313381432291767885784075219567747323554645891994279624866881193990071405893271718261428582864570481601567549314085276593890134568739708203754704519331789343873548817423179969859970875165013682829122067635159803752699862144501130838159354855416264966038517449500007418856864973217514193165491072380591854789778863934951177780736411396555640924113846900548781838327529495542641238819967966857588460598819624363965502623463931132813710997386086973395099543810051665487459444822303274896223042077904188452809732238388442546247811014363738494399722062636711011098851387383046637655322485128004907602980630985431486618067000708796388786459053199322470162832321747396846401800877775216008696947880211526765439150637481654549439820886827838562793766809911768190753638874407769311906182502624013672339155678676071747491929941713804221275255720444829486765164827006533462261490240452827409211990845937396584889644357302266358459636698035788528857628557072562011397799490619184365759473688302707964965207121665378598616368639050816139725636219220131532374118040079713719651656698213452899207176018552091082777217667790548622024396855200938269863473204123951423591739768010741979091557733955308399183316493842586518969950665774228070303197374169034984243674094792288550469875023775738132342501235248797608517592013970645866567783022920033172267370552254556476436231976297541912402978766123593935635393102479018147680280341765636391885287776489171047347246010431374053917387674610455020209907887346338905598517908859673424677473871160972601058719889927639762307658447494281138398399145202165961866381362579311730109178578353112222181754698032530220502666099065600442489632455349830650206720669370999446289285976874389595456409867874871165488591461650492245494420590171731244779183408196000960293118117684831573053941044227639545304689210554681199976567697769282401569396880696206671929587624366660026224023036673062134601591114637698960357303735630320530444005366901132925517498783140661186055862705908684881418185885073477190070574872235259553718227035129101248789778425697047925477325356561352253081124464953440063672039981766817159294683608565485585746651904527140577353540751494769289080447716308697364924962971371283817569656067630172286681962575405872285137208497527696197186701006536823025707832505511355830907328425724014797998533936822344670657559555947515251579614540290072886825289030821280178207086176941042412060373445587111658001447618097770351473700710099771769330510830154289926877487023842404582059036287863948997235062160606422517146837913623363121873405226304817986867865286632543173305186789656050832282312058014839168900475935792169269684741867945777261925904042009656514462157376102493879522274565099130990677791172449607246719307542122823806872868601538818971485713856552182182525506772273122523536683508305096010892827979390124109690067963427230234659525699935539488233449700811740357314436124922461123535893161541399161926751138847605995250758493043699802265008378845294628317305211698722691750133219001116205129832352427190732100317779731253173745123003791711669334354916259978459685463493660363543890183442603074902517170023962574343073195965651985461708547968066586435207248513968232700826503441536433105107974770220853189858246718725744615747430666680777832043748698946347487718256690300893789267809840986949689599291082934889304224447735222736860127946855810391341533316327499337317070999358053237432795637678252139455428740302430402294935966236303492887818512083124279318073399815122035353457895442074530174785670934692732434432171480218949126585510549639713016645604216264399829827925383876315791256127724577765928178283011327297530632321789127796130584477583729579062041281741275415236345087574977798070888642064083403374174646212645196699565426500662121491288063445610854270281519777379757585499911831765040380612930792781779684579683277897727890145885239785591775800013380079284836717733054423682709087328171782034691493808435673074164210996353151648597869773707401976085777275493805613922811340211333055639347091808363383789020409091925352907541123790833024387381606710283925988099845111161934281893499442913043878671452846027027417014965701736103627381227741648357624675969415728774567293112464815740142479904544379487217214491767290766310723720406661287038555551190920645343523079545330633531433922883515031499964668042906089857516599902607725506543790898163873838440302793443486899347485638094073589786036626824672834273164346436338342105681412774303889703912636612630246494283900676743908000175986625458324343810927064311626315885334590424937409491443838026742540850695582795951882387520813747003371601679351705305655688378847992071104398646535948593785651387867095374249839568199370919093794147362507906358028406409249671411511203592998622115286830823706481549314564544046201146382325620380448027754291970435941468040030767787175067996515134881533870321194292313938778351254737130643951254790706876853103173973173628730558872589312802939374103948107206042837435871862279403342667757170465955065414696943734966679607564415377877977908724409324390868404711715866611257409345110668438076139517295089747853586584285001994385461012947063864288242276055389276503581108814239210281189473748262924221455002772602193464957725393381090247802197670479540008213324179984612183009609881495992384990980989169889885252009587447261627013061832306859919808606137542680357445829851900957330531878731221457653361678990051834690681908376689165447775562927383109961648646426769856287350104848850010320751771181401029985965097231546895727120489393013433729039503492127153042719289918649202323864936231477121849710051478427831167693859988660258483486044864438338049405493020784526554699370782026603875673519347916314411351457699033125475549043511607969913176824874731598110013420635400443248425159881590342292305376177985520646797199659611966633307055004943594918719771243233526550157723374782283479454763104573666998478276051261353957940852756095251542512417219448738291241389995501531974157503584679577826962275707054112544501926201874865342516257590954755231195348428066486832065252391604280754409423518922636072035564956561649440187787330152178727850479492395732465599396351752646916332537105842150470941278305850451223927424697409603710970667926959048444434084469230560797547099930469594101213434068275250108440349417156593246009592901358525314176930882045754930005276959764322871648311911743218228429158716086554204823079828524483791923489676451709101376828359706406807744161169457030535247433820226025877885111952273439313314235005519969723656531157062590531460067739233237335743031795761386733138936372792690780968530907377558801734094384828535456965000653109410101187076653968396447758080337139703427588296900405526236444631831734904240786644936478519285812724475451889276531980619890180802807981978160304810512162852359888452373441851636892729975058007878513843895032470352781871864822815229560909451069271411272467842145141411169360537991700315430479495142809874688410922892947741920265257239578031279310085948166457347737439315212102685641186933983220649918949014344435882115836726332928053144325512977683634398364967525804207695092058535742602370752185231324028694626947778393696699661481057179956558722179338678254740511458525048787172540113230675506205146019834166064568806575754353906020820463732731378031821524322340035965411298697931102692252595109728336083591682561234747427564664101563964578828946589298769586548494140508917603130651025341739676928918267978685511810779277137813922140116832627276451696228649232533442582579379062653446188083075662975089468769895714965888622714623264070224354216632302979423966399310526191988761787056227473790886387459227777293679435376329432600315589486563645225367720765743541253213135134108994052991748535497826878308931095540795608394198639307939692363765182180690198785413287426249779077010971645242355624483084847064348435511962040167821290425363440462805622082625996956415758620409723431625073547405442212131789369951300536576072014007063127666370578787651713957010019498320202886680125849483212087978964337869402760005073059994155825399245596062678522415339833555795009062420410661402954826980712751461022588605613920549891854086127685377677587557248409342880004026915118488872570243119117135739880742968081423115578733642332673039703440846172928845248983701437989515452266714228220331706318668768324569954085366995851189876348683308097967475292570167754937920556044980319412992872348342884615711679880664993261981285480647106096309193999114106358966686438954520378234415057438814725343828342240755783667701750652045394794683225455224901581942101791718825484867258367217843528531760069118346470068469098944462527859416707375193234894088139196003219217167516504915788942203201532313955699322631989941453981210563005056062760163294460991406756936642930736260713848571492240002975404447961212117316976275256681237962158721178425414315263543739172163277680623296939459934997498277236636570041383404073622669128633865897871453363601389017828910732574853323750363194462531906696254923652849980357929267210585241280846821831819016244827893215837679016902192306040621930485570224810010239364972701421509162594306108475138801074989273350295902213268250993223565547392128999739465482302181752067823089626687349017290899811017977407708434669620873122214723133759494609140564653532684588607863236838269354812051145398922805850632625424970923825921450181784917065120305099154057955433824422198328758164072358445514213940100143805492806764649772096191852288366779092061321580589160882502886133139607813493777604680898555466954931804857810131995567564547145920293282969219621269673888217483005170104856568190385330269093603391331559175104593928220367766409009285229426702578085409006587827907348007668386859070317462662276517376905704584387987743032890628185636391181047352618997258049801132444181794673187323650193016038424043863287153706793993980636303996811996660075999365403136764523327952587112771269070394101686872970293558794596690978239568967519785903177844267992821801047838520500776824217846064417353569500935631750286271095321979699968250414358728058054600011713011638337776552056149849167144471250631004321121795307915954041647104608008474237679922338036305288008902134955350383473726726937127368330829306759958448464221825745203072282755069267481979854057680872693341685310082692393272486357674596356736871893467112586211501838205815323541753352421660399497306550592719177574595308418718081006552760932097147250951138960430169501401145587259536386815183025707733819248017878688096337302932306303478473631915170770488727647186929913445307721595153553049890679586049683401134445607220819676246645386776835772105213819005570851892911676218617845690986375501666686061882282548346731995219264101322198863982738062344279338964505775194867651815740842085761259750387944706246449854833001843699171633403667699723885631871313000933606159875348948072715357044550999912257520357193099700183208216570168725641077572238906141093943816490525050220639085044817252981572774065431185117350798351799537179622976754389642173211255011448380844999492175999601124828245078073444709171971216198666574459097558437032166629440805766542434573609530327230325555536332060565964711708127038676503462782604786316032056296956019800365746993204068638476450357004462677815407949036360868228527997051923787634582043071451432414860975955530391628495125820114787459688180830693652403215582680520975975039634768757871959417933927942486422728117613788485619023381822469843460463316405352931651384519886370846413208801463794510395305093258166150727371758119551725816594237483276616426949195153230941281435809922109605408566439514513293406227919983216080742064316847665028452598083734319187352878829544924514788062915456035268280234004528848362178753684753504921842126482798065569917730649290532628317183393208253140509593068805047071476302074438508381969905348341673958254765121913018832046720894948629120555593610606557299069404602665050927313577988187931923596790417829513139984916879711742345352636484761747839765918674879607331925637793863005316487405517789216719552220892106257310372212376597569937947524749868312983539834008559323860251145357642599793002482797672447139216305920456647255816641031520852823523349425022272756590577863622597372932917480555164093954218139046514447676581236457460107193790210706628315546132672940869936230438469709775500411904878556787441426359235693438183369977891016725165161171773955480512830215112958516327391743714325540411626473038002957122176938225121224696478270838315179088685641103358352201439774896847856561865760464661712445017064399003813407739258331647371538206215222094881115802509407413550129599383381034320198309369324018082024881953059381271326703581000535762822527894997870328453868004074460854672779236431745405736653273906876961438219047930887200717193163606447561167400238603143576614332373698018319705667500490291182493280216977842451026729084970644079839924613884457315664033179918817826512542180992719319470769703946810633820044880941733930708475349621429180634888550855539477603792883104955022150809200165247504866301658383407592994370647926032211790534620310557493277643150209468579609964928714389186411015197172951562992969560290418792750804279382324190820705070880819026694527692705931025595607536379722856646753562623933101802330365960897712797765861757947482496886425035577884845977898746138480769924431344282364575187780826942718562726378698461283531423835345588491137041005249159576767890643922084365585713519471210382342273718288425377919462767498128884293096916882418408527193287359457383143019478524620260391254868873793522977304530858795406707479689561017281624930070161016321754063601135081492554558641969889054421505064759581299910700884713967767748271184734577049249569102764455521434630172656692866871696899980540957834066483837793329499827806201364130834524986566335254742095985514460025647124664824113723882587519632068452714962403808658937930570395332734561593531503962320050853772841279400358709411893200996316402621805678281444140486500331370011838191962104624080908586895580603394008507758107978637263310679245319591666675856142842189991834038658214543778302474149354082724261411019971748878859838295246973570718268607832652157789452336479333497668051062567147918583559273402602520788560428629433025273280169467867701646527541778482702388264871392585525075236448817118262623099333755352534805244310112839024183907038506062626546936733355449992596503598295667929406169682960733533666575549391991298601864592735827576639130511478941184233682594987221935017891282453786944565084854164248381766016190859197440758405844100235908731336821071017053691154183340784065596663851164543451664653458339099725381197648553084732191766602828946822176628867523403913567840046901798291667572770287003808912915240388078186834915339342829573123929633381614986298114922333210701782397680757151944471386321315129208426221485500632052403556030421115727280635214205019808246924850175047726133601157401189075902681453296140761807811537782828960787376727992428774031090366364580462443028037244452476474650545559189247972171843326395362952308447200576918928886989990617615793080056590606047467221365569115586561835431939805543660649234318671593360468908478758792732416316442214252630246033985893175581205855608604995007239546027156770767382248696069083170372805437022341118129024303331696806607616946360897836631029227575754346038927649898850956386814800526000716172479298675623810840353950112923831917807226221118565515725969374295722204055100357079519649626815465239310131260414042618107368307991271485666417564979722002167409517463551478167435300986312491793056663280112335668457470054964763543055076818407187160543453876414349002916544467647552187119676188430161259619806511906579705389903929100878736446415368711938605888676593017114804747370035763053627450498648889753699770137851521744978461834695311448585853083512483570648386121472396284796979117848095718997260712182465781391761804698172815526268547198543566312912161985158435918686841145384186839135069724813891771333082756855074955513578962693684443967276993670587053143966017832823675290043790813364594323337945769072312391731885589457765828025997511454822731957070333645224719965664071848189986264086572637780996657211331066620975023830166885575181580731344672409837279573643779054906245359105756483702035533368841077601017662581700595858477068900995874986000012865423656700172372934925582970950000426799293328827667172368419492946430902090855745028572021779918816569781927568455856598184654880344420032003910010803870801689044798267906731224553214790275035578284556738251034685111875919333679144529725451438504599558591803371543937860295723000788848310787122534902799363421281466033704218225384550343086809206614352828599205170191431465295355327759072991602989548740055580948375491594457907449570456207127002871326054976368786147078439424374772242429223562766902810702187348065866190195010986914707171032085734050486916000047094935295638451787742884127400051742870750698161933132965157485880116167388668022645182014461239730628601703925079467311209199415280749019867957867911190860753907676560133396521413074949719710332533374478084578204866108585317996420169015540024859456954864048802313057923147317353660385489275671298252613630597951466411123239659309126332636666625704503758463946679523191647651818889876241061478348494239070299781260602014837490907005410337450800761656237164579950494829100915165573533561198060686970704658581743232513007056713404368234615098905194716181442573727314224185068600821917744875780005306897578713925846074933191558848613735006137983445312808136600850268629661815214684664218795606010474193735436253653971001073667807535549071186194299386048216459854701666538569661715341081591715220388042164045839605164975679244125767724710267762341006225040888912666018582175559618795493064274252976956367570214501033388896811049230987831415727828579943143727851634195924877408593972687996986764623715942311573738999426970155644626392961255094295664509271183147145927067160068964123700807159139404585609885954393246257297296017749420279665469167041371937467083950150851562350389325723901756013420042660280608475040739946619716546865550256865160605834010405828868115798335790486168395219811132908812083366454160708842223890035581817404358162029034230343839111775954480394807743988657554283144690637865547953277697732279780389380041881542642532270456096524900811073631968412976491803139544528152387780345297494378008721176516186966348022813720314101844484701718124814091709503799265391814495785844831635819398713967831848059271809619717119640109859254873913316624604494282649394042767855868185413756165367589814586964133416117710888559591569101911969014309745303925176936795446235801875705607572885528906864469179055649559839535702345509117782809397901279434427109069477429064997957836614689106577743296538569975930483860930164516608406102175891215608288177275910399967642482414263028861851300045862242164506556658061865167539752746912404036791671939935045766329482265342023254135741751939227107580614322623286955988361382618615424154503135164465782337459107122008892523583638092350774294028317343537850215924686584937181495427663404719153308670212733074808152574462615557922434248048948695035797220953448632722688220255036211887701789342703719627961467992779512351283426482150952983701001686187833243195500743355599439069889062046340008524773754132770479663325705905565828161753768612542997188692703211113389173022651804366706868233397237144037246699336492292993733937951299621969997750614702864560119800837802474117292775601384630159230190311642417138953940139845220737442017688884677474851634685004347269146479212304755592307900596911188801418166990572917393638918151919527656145146325448130179562886137218354222260749188307143242271611664486259009980828516447647478845762194173372936480934546604751978492987946128465717897580704724107654148839163974845072147662781325962089872096867589174804159214735593729156135349893755102873204738256364856322568768215617760109689874562134394628740014425860696360640325863820135003003368001121133816811728891661649496874964318208955498802332140358960767055633596517624787253100226129036508731777245138678330032503165616516484410861621948098890478612379250744038161858178674332528312871573775889662457286400950836418252323980495562356013031142530111218715128842809443431473283625776018837931199988438890899404009150764452377165610624764813257655502826091479619341309622809641292417656767249090475748315778184959940271809487256056864473776896613959471158784206210558033278985661158699785396290875443610019661131983820117849602860149475413197027845719303844143672909639061433194138844781073242306247881475488177356473599922637884871855623987597214431414183009156689771028287827904450019717024188677021236569299147180450998851292310465964195457167927713824343541025750738129095678822591394658538045238269129071746617038548450351839794339794186909489599498957580900258849636631726005573103436610479059070491830722397875647770235152103298576726713932357269232815388068637877176138295318337787402443266386501266899038600495672355077172899935979112736794823328581910374883266377674657212662446658305112114310079694120961677784720447776547242805144657671536957290819971817425430085836169302898043582949036645357039330344489240666663972932682905558586070608677158496968766230100037226664684205563943498833038426917072490871336026464856712297433123531609127490563230506466411523744059011929692881931667627576124374524136547294865569493618928956516043965116328997681314332492274275219771778787820014955560960592483716048836543532677927367310762797025798516066094265717848138042355052380912077638999238110457328711789636038331053393096909749685468037334472759503885660699724276975610465318063347100890853437226891796069539457924467271918190930669395019982258433978091931387100373660500504847194565066739223275134305938737682476960109063306070526676999253735354531808685312245704410588698659447947512516548703314630195438999010335833026812528825760695155407970303182137948983713832233962406640064613646174933428648746161706265759224944317247809353336099851415511635497068786179971629655857936995733183397340339912392871296162159664479010000592987332851976662803740105592482670439310921398182406480138670060100078248031092594319655455477817432629148982958822371834981948838016469548032884985325521207695439891004251823354138092901834582095759167246188409748831922477480227440944168186607365795907870828221349520275383273343739067461917316547487489435667521632492455481639026238341008493190007184614134348702572964442127675495081965766051931279887978062667615359266151464255657525911521085272162512439600109209586795928224962251447528748132446176486527182110888182561228587340755538970935950780644100654975717340471316105745176696917771417427465092435466687325643358278754194336279166224777402835451624062742635125541033090300220830368107410333580910754905356943111845888830846818396095168698477917556303202390014198262785353737900686076526568201404381732296902844692144120630444306156578754557518575933829623469405002101826102180560768600177536442612016830830303374086127115668662620918492352307604240624003399997150160934578561396135208038043073847110718223142977011971069516109951933046923940179569082197626044990417013850638296469021425566026330217572828524719988793165446116401041152060989621878381332776557093532215895217180148309401116756374178931182624773913240632085407270046273429668196371455446902891139223344474527837914215864525416970739050735654387965206060938950577405116808837254508854894449692299768336011578369311639809110475475439667542348355957319585062860195043183263351501111590753196070560563997365030734511897288580439741890135956434346768623069935665350904247713311580385192662312659732839898616460754398461586632875109347426238471896166168165373308250489060974522602967724005369406764303471307921672141522126416264026175852400109831395456473366834318247646568329982361757958026765834436636633834223236402186748042248671967810663047676376025734772103341724774564566046035836404152864577307796651300802576019679201739259114978109411707813153781359229510684409834828099405501912587215347208580085867624261283812129867141269436469670493588155462322650976928633082659182036992610383331349966722008020906516899406659409562718762817063656733457442831710466550349634782729857962645869674069744586321751764754335210838756278575661195216557954971932892869266640522102937954968577719877511982881132350051483080312913786511490481145431788751964494694609538865962429197042735925558756051496410951738926764311641438999649813331452553446592636954797029991791647440423813934129163807867043570680000897281532812611219789063227615282556703072323409625536048838429375740426953249932646442356176950208626656400261850970755057280758018476158455535506599883191622109997732352445211712208501918793985635740792615574348544359618359395955301515586486466129936244037484869798783289870955004027522583679938293155254220985854233573732281036282417980006512141053458626448322420902158339302370584287632820706333708917599075156828785733221293503971050895732468837112739589484852430973839300917683405956082327849365645547313245242093906843584194221610922641437768650806238279906077365446366924251812230479095448211962512724049060612548359157628080819207965971831876488051005979068652236441019759931683674840019688414076643792468679313428699484803620167464608857334203656991603756247618271405441522899317526815354960381622566876900855971765450202547480612833332182311740055781239736807110760287995007057394773191427339794470673044298030253631214266536162133330236873769122773189589164724532038704382110207407535133408235846195709251631601131043622349409202700989897359082182160193685792605203287561619211935030231430755540803948908356715606773252323679119024060193615191007534271075460598844073804076023332373811057092357059564354811064337389269974376386071571071399970356851651867327769409547438058691578591994522903004964408568232487589515714329243505799785516157904343936596125211097861691891801478907050289125022509798017783244524697484085087708167847285257905231963987998395518328000702052454365486362527139756289305986525943382425224746006467843591207243602008634397941210483811366899416991211016754882053310203096381781339215532426740325656006086506480833362496589632430075168300007339552112169656712198582576716590075355945154005626264674645332381593798905846797392256830095220867151803396667359227825405402273645795897942170046518827623793145377165641282239625723786537039728472520643998838986145835882287593523824275338369117041773946290665780878358759601208368832031970320833181430721689239972848527601950040022284481149822798684413850078072253063261730741108098840016841585015187679518471402661064253801206811097255660573674987373627892163906066790640169270931513802610157597869325019308296561037157185447821584757826020426902290980007475521288957364897313235683414371941448913654694954834588909665407580211336503896292334134296808957756059142169972773834652140646920075455040078662746789710967575171871117837991489851421885934900635038721365331655457772035483719676221683111137160596066507223013297661060714155120466396013639445105709641350108658831840868211879662350726403454825198217050079488853440649721522628556848193781488307492419665498841417534434451498515836121809100711933806078870137195542119535514805643846081354531117580142996001817587161852985221348018270833039966733048268661202764455071368618308239953809613200198710679570448561226614830102944322235988298113387609558618018542555269998654065227403471729927139899270519091671563755696004417501189970091562957605121621181180604998636058024709289161109578234768669876025212233060048839872411318821107751730153226967566442781052899832746419011354355804142091529808322253652589020052618298250773807457268392173466066705510668745953491956648509703571732507234654554810544726166881175547306404812513320870800600443807302461849063636086740970264477065978875419983948145305877642279385090838450441402934349033718939607675763286246226306534072929516528062115070606294022889506168906227817045269933346743695789929223990322152650505228950110152430689833019679582856122627059457480829843044914719347009608950037433877663891991427437777228234119801810344401329473782024508901230263570205736898045033418376976788254366783927380046571585929822279784435510051964689466974629923653501437020849979882967638714857169352535766553069921140450001475045220438405682660671656633557235119403895022655604283464903275813839288239351935242689170151969961412016979224506600865692249071772667241700498500477156213394042791578809856674023039191189208366416111800141130987665195090948910932590974573959024130382330458699956909557251639349328244251421584070016143631754677712319774738068436276739219550933645786825020100467624867208985528359880848840934967143465160872774160944211433212179752096157338703590063552831978014341341441271141402957307947883418744409780381273331869325355949147220889632941299532144080895462768921557167897276563435313734383334508309992176198016526186165766199037993099625612858916279494255568893783067385425493894510391607551423263675978561362201840093532381487757623368502996314662276381399046650560748232058309868626908188194030414052034174994849141738468691994136459704787529143880170811539385522328863616907155480305757598867386406366606547372220411745822108507106644468562098162322958987516613949497648750261290172192048362657459596843971571830510836434396959192628152639966051363600716004755127739548736363889376566543804848864435201280646059119523126542410135315152575290147650129210923552053320762049462548007560480527499691559747541391613494280172587385341013977417972459099956918336711368326810603264809420963532932795281465791135049217344631498294470939602831173565922458884084136943478684011164630100022172661979322448054026858613986662461879560045445204129637514466623087551984991906760658107457918617487858366815480893170446162497412720983219830648460190549928867151848339227194991720580216422334418118836483618407723942505723596793113830282500108292705293575231192481465005899044124110946088427319862981661490682518289812280841552269254112322950612640930335575141481217813014241842659111298487443829489710613907808475756516350688597835604913158612171996985507880837003051975740637964739195076896217562246217126010153269774862113933926095846372839763514247324396354573099799018916794257252568200455757794065947569068476931842253729212937639292744316883931630353810713039627383197680654730146891433814015132684194255337731519983618458700824382133821563868258202429871685362822892164577176782283589678604030661654927918288629751358481757137362488858797998172843887273383816967330991961149222559945643857102829568294795033328903314745508345910084987852746787509420214980176544582684016256164818786239775230540243709896862550790078563143347171816413835970177712243784256771568352563692792530648000738924699457027063800790698975702680064931799354383964404098251085506973523787402253635030559031031715271427137524980533023562789344885458299413894016172713563008021552144204443624048617257641760947991209825415236434630026405451938983166527571617013468183037687919108249378393942012905054991623336946909918688601177573629223605842818997495136710746815682978215328239377270194837211890341493701858978608470839508068984053894286879033348100618872720570858887791916548187487378900338867549922610931433844560722330556806830344443970209325712430149691960928155461495607633412456165017772111767525477538466054829507952526895476840309652385178562769989585039656426506434918127813765440131691211358836283888572167182205256819347369545940914045689403830676100870112901255428206013552120713290042139462019754857754976406767346185195616305209720991956055619954852448498132698138534189674129187213841670051338010488802899161436170816738008042226290939333435021255973103110316669760519051013971179713494110532121982977084733311163719985570231014893150190270279879479932579037339161301940952660182031848963382754877857028894292496690349452641760013518169613938895073086687786396798627116100703304360316276333671122604660278765439526836595346706841531575228652003915438614275601644576525777031108029356419693153366570402020971917397398820633761487788588898179525158741197438059018872891361668830835740838353219255457178557298831762045779391593422349194317989343114537219729944089016710800832632449753948993418117623268868334844727434009029881369733760342619803285006533261896197740016704967796606216583390660712337070919548609726275992544511632750327122068969572970132650126046466972373518659028365078291103207428409994767505087716387032728609149337194332888564557758203524851689039497839463520991731799256563686874627641324133665668661799989161816529112112587839155107614778356835534844090589436959496718995607076099153636219795803199848593285047459465509880200689268769145742065008436191269461916236945906359975094143918547062618872553016994569979648091046661207240904044514078799291157340385104652947661892407107640412119147978341191112920363576440167710974681890927994793078373618957428850014131181552373740195271178171813980086846240321668108569459883621817032301548498417145127501914524591862833215439435721195122212673266747838430353819437018783726370483502752071572039991033635603529370868160576797420600992583444439991212062873873471283923149043962754663232254053720083964255674346722860116983787948192442339084315211913750008042759042400294060608427983519095576058048100871467509190261899547098204813119638867750074540611266789478997977844830218593466864656766078121836225998514930914064702305306337202374289792756899762952801719626160899473455866823624337730447462633716133764900664182165649463296094717917912145216441249848781177451534882296019147641171707189194678395645893859283759743151277731246767599730310314673476443199747941698601436297278134758371072135399835881112485814042660393112389696459821850199953492363004033739388111513254066072734919634692229510458776083873074395156750805728945603161002413359460858236955945972378229911534262834124949451109981514918553023913555946804332785251389114379190297799162113416594885184905763733767924763476757699507743755443750630406830976329845437102480409801179756055107351653121388385137540992180300592160493394202138985685637096997776958926463431016698655851607460928956550093904142410968704331115917916951274782287342324435759612739117752278973595655396083636008296927562749872592374935598118772209261099461878769527506822655553296542095489090435912475684308311429809351267442310549308272535372206506886351333403396017257585164263957112153221656382015593745002177588659196135869043729308801990204384767009683756960978554875035458529348456940582406440247462792934805332302676716800906549480570007527132452863462476066586703125203267129411840174394658706716483893970887520825113878856558795862388487300376582109295142903664305646309999731749692034459368288635729863316162355006789259970661382049142685330647461627709909271449155571888638738587987447456165461279654107428827740528916278029128540359276729406556362585392410810631639841328663229048145946844777495005937589246061396697370614133089763171556080295894608440696471460540261958476944709607524213500121125329102414273151839657106921365399170602693738616707945366807058805992616038706007191472208525072993358021074882417847781203684465596681498889880250524250026843047019096051779136174981441502564982111500909179193612734045176564889861131525382390981315419125554778692747056376435462493974981586414241590925355769780413054221670491442679479883091986523689624923128479129312855886373584188100092083424959611889683494304754325256956266471339006568155289183570906462829163609892157335192496071985887624841180463118949579281436897177373671962087494506263764965208022763016585443559759436713838345938805257099917951705569645819313501911194834871123841289422958581731705759618322380052477365116322500859599202371845022043718664822033721542557664200661335806251513427446352133834803863890871854389110640181881545864434363804174913963348298136946182300680180412919771643705908772999600171492856719338693930105560395196345993981156586398901959694873535700261864951384019177374455950451624614080689882308303443998069804139300285330700131094509490823252982442125990283905612784401418457663793471846894104205153118678569003017640994154267841446750336506316288289410229892704341267539591223384504265403361949758422178269066535166598648010604075833293543189280363382891465172586315785656979415532678022515850607928813363375946495798018963576174325525863226206104612401603493746588471752139820253333863338638840528001161342503195662037775329713560366533274767425224839231207168511149608318585059600105916707597154482368918517328732953069836142842763895516266680321876590735485329890780212085891382637283994805089998074398229288796631839969459021790524537044216605099858690259298012405029613791621460873349950129414446409426441764351078845251736089957444336650104582647499710691565677702431153278522671005242801952394563024471629867392243780583068377554783320649575545283879967217056552566410314361598791646098230508018455640280434563455032044823934055065704628465456625014853271817342805191601251945016211735365965835593801086081420002084401452260287255853813535484710466723195359509856938028837319177463860511209796935838191638290844823864478093215153161512221638836181994359024049602667914816261267644936540554283516755275381239652062657126113616819719695588172399331732426735312222397265202243732783203140562614661462723431587087450663774792429859192197857012787316656607514596741316215978983618108617254743162030207962497858409725553616943574890052722219805693766411274409507753698819387821907849292435045441567511378707719549992458323377069572902495127296537063294869530935568317969926804992065494438463585035490115332111066621382119361157671002551731542326921739524574150936480213560744349179999601794177423969882898871744210786564362672324876558415975326063449901182939317054455457866053575551219902497606021397487716354631979128505883456647908647806719748737356084537605226151019499549885859320725634617828111644274160428259051706276556471174085867811362685982853488979019549778410325264248880296162152297909315200892730529210459119828972644510353124420956853162747431668129428464631503729264498287123077689871961289006812500441655125070022006169776858525995792804248511998662827239442502679846438525333480052826130445988641038254703810821724838335411694252231308397254871521374739080069461969498136153982837583742759078142796145315428824879926712440520356642939835127775561907352395702642028316820530085279940986975238508799454198946970457426634251804361339510877070588770405510013454550583534190002015120030157262651796926087360123747484503269075263107419580461692044078130715485992243525241122344613394544716463859118796134773360572000509559319598814140959132457385192835924686591236548804410249376924940884410801455259623542831735310212098543184626288926311975303924208356798093851381472457413303887194043434042729056449113270856649954470155882156434326990256313572922039474364626778146452141339705479081541556824502311094633069068427424902264250906831493810210632451041474366549317719737877132806727537507230898949371797662033930110564706441819592496315164420838342983935470752581731244922427790279874673548278743325598444926118402634166232198743876030240973264042593487874373356379316749876827247645251114572685924437935238172100598733472973247795236980119183022965314430676549010060893835580703618926150397768641854489685083950757124653742092816431067765488674900977440749440776832331823810562969051120877432643362168347519496332166007861595443055428872174812311009502579678468603290515502573869684823381215616978789790176341002589910393490236702161206155592528794906034694150787717369334777406422509071350218716107359826909991195987390306361688745669433216612520650047807367398766561389415382449116047257473124291276511451000482619995057968082519180123981428650587822379529998005357593700484255041004026259971521895471774432516840730738747597518493448507265136303162743497311381267783892281922377127493711109810849662075955703094290682575970611102900789591672726555518836587304754533504952253367419898120666875191581550390030537669808911740406898096808240837214513554158434106916914316486686593746383511775536784970460076414459072093855428970797091228652756610407369205547374234290356293803245592893994112861017728881581267026445316814800955368890122944391664615009271314478741935003527931992404691162456451290874466417262435832413719587507026311762430122890466929693971311689787862647072168247694663449983998704540048393999344488649758122768995251918049613779589481640074403756984974267878376644662748206402362859567299226904862738023267269172984423644595538133386588206421168966476431435283944912126180324839853364248845535654916481767574403767636467630425999310905766841308123493980492792561337463260932297268721808426081211127612397972639302834403023901608497224763636813657191064404819897709706085858526713437404804462813864989841709127982285129754327250323989796301185278446886264902156736895287393998561284816822073913119497690595503386935816189012030240138884643488280342580300096728238055989335891108867202143565386780493481345156724173545771892019129770843036975471364605482112911204105489075188072875503833108465869930122389624075666685561323538162106408549132148066564504751197008880253062208484057122210935656138219383117420997046991544076335983410169243528422666155557574006092381172281737237898803717013378006464341145601354645876998945165919478879034846490793717762727005705803701870768150401844222625115945047091611011111813156065692042805961715119872889833998110896564161511368146123777122322685563758173126870047813903559877592600162901459221833632665586638904895604728066881490226348683222426584498483013510486156497828851964174193707449311362381554874691715186144155763852105391279030344256672204569446119966451759435050952820283087317388799967337504825601110982149543731469060489714217165273241585429458384781079403146413580758735269519044763286553553277953962294661867741128039245506437883844653478687511196657269689848000550361267046984764560444452607099926182926487860085632181078859671915446990930280354423938793978657436071728102011026979022657662853271374326620562782776526477933395132072222533191124021857298826538694711793002017979115278545384030626588997040741170112856428567693862873510785051543426007786200821447112263294635173632502627926842254724974993457087459980922793210950896987688940300419283018677023604004686530446856757316087585316844802224286800352531725541866938630965698483522723770934055505398165667705558394628641012488187843317568825309018337577435007414067436092281670505418900195226982606442121943250882500693132408105566063144070411496116037699571962290778061680227673588024318665457812846124016581918674109351291780373170251453575897916354669863643477481737346771521698636409943877760719134232346626546676779391849193013589428457796019288730478226918290474014844530076769985258373038051174551933290431664839908488853455806852045822061820400891523047965220633834911174461975570998843886022922787421702564236546929190777983728070597429789258822715203117133671698472365571449119760260291597211437653152097222906508560704468417401492740055202314007644528123847431339786582982378037947829546505972344492152259934230936395359429256213336743033277431276819705653246250564420406558044852710212660110105196230239846798294800225836315010192261175745464405739232455526919791485733866213097812524156056730479670671851395438522996513340925033315588032538364383977068691527163451372265520143707687880146509397509381228810637274333084215191899906868315740147213766693520715594824124622853863971754259172897734975025784079706935931007270785576964546907855985437455766634440277941297183031901606583537387682397747120991769087388527311751467006894973158063744659932078653268157296165623362535728224580413533142531468996080238746415879408657182911053338049588029035163696668671387939360943315810514845549193963161785575340026133870725870786384782188730354577876553792502121950387511866346537697136193157520293972448297511987511893024428237853236057653549966321533349220170209322308420836114253922164830063309405476040756220553304951086368631875098635472356735518424401849116985209818022563160210016194364750052508541936913590270584754104306365144037220965617001277068539745320276664550358059650415008622369491325416777628479684551866299896517760421379482314493306982118567434294297453080016533106125494139651935724074117865224575095187372422117107771723984449914895225862801550404423061198409707446963792039740659104391996304179407117841728615032927079121064897777512351680764424929659224083899146913008557577257325621995642317635476071804789106581861426623933099910880592962150041117060018214714383010426198867916743837117115133460645536110268909705963918457485411508525428111493222453269109272695142325622714840770530339668014688774521595099069529856403788800015704066713052865956121289184252252154135909109653580030934322242276357601196443780236906589976557798904387794443407975807786396669814327829673461751016329098813447073292947448324496525300430363688526374748197959212702025905792085196281912400031432318264933457388021647209718167978329049867557195362722623914211695039372070734595143143972062267799996517023461597714905447435118713489353987745439426304896996021060075257707536597037206215288309099646239890877912828786597951527556948155604795431846198163364740872019388030671324740200453972065818555717170872451052422291557399517285111701864426977386739557878908900891529898644794978096265164401424432806167986417446468293354159370622301474816381948869743962419716618773075340914648453458651667100267063105799846448126278848181976455169540628667232231486698406546641112990199766510147505476495072995083386791324819154630298827050536745381361247744747835534020548927126126481510590378599238045709849028665296142261601353374959000974009279031812513571533873092704791142088989360313322784820646649020004862361827985291187549264990058232541248238042488486818770623841808967005992159296932238661982682723717886552546548061902078337835615728498350065839088909515093712052874032687814262506756938029895586132731111202449702412632330037678564326296618277620400137974905493909326751275863343212594983498813751269419673061781230949693514549688819434344525277575773970379214214429451969736616522402599731164309255869993571328411943480021993521286811359203293722014293678417411974100975446079465598202546562029554639133875354922443123030530844605493783650799495281755579958207782817795742552080814252724246899749145190599181994448411275266665127087925957559183464865466326945634999732414528012562046485639024253310690151498112883775197250822140224882396449059486349607625071018531444677663646182173950137872805553730611792915148779718779987579708713459416444739252529445156360518109167127744340203533504643726600372255155259408069231072829893750196397664434951183957074637699688933914381072259155488688612882545741543421090112391760446451122306133643637188756245208315664141013302805480449755561605897866136529511392749588098244832592360085382123124343920796579852728374020542289355080983026591935706517844708155259897454581192157559951412736817877653394071045855870684393066116971859400180388541438732512801168962709849243247849250171939536843862435331613055471513351484842207695154961134644712183302296761108030618372408078169876078615974992710782492260668211923223681621920126101423709092116612215342072666520336139403226516314123042939869350522302182700586253893884053228916732643322352658945781516366434827593451274513959279540406026240963799332117322524703486317754437486078212806797126783107855217908264183765986373972433408975764413303076160631964551814208565169412713803687695646592798606452510140255475594950275399054327823320995151774950102058217012704381062421188890632046338696291481191488907959973301225568736085159468933115786904171040125239202705277800400182875197694910271039090729495791831500680933474370971734116755723477298005164622777920181603937806906295606699164611287359202144070040910465350100378308057663473115867007224112797971991844639644624514916698258121915911572153644103119439725387680704750597566118713010592025432758517233739676096370568993582878707852576532888256332126528715830955634959906991293496164696244754205746625556788620369706944522498614050472838303300485666474866657308167830244072601682403708396029787889766905644459960769292593134397330928803209894983721431500546278856490696655299618474594059677589028502491547704239225149054156484165150959235216294053594661623731602013247510366572422705631665982978951511208735260446284793588920350332580101916723730704966322732926183974672703298885639473757672595924518818348124856634097523579746000897017011083501488721708245686936705725571237998374632897744429805588214804331964991746002298303113610143938461961860597414588665132878655635635352303201395528815063058544037162602948859287158568904142291774157647419536865129378519754445056026282787321111510785293537344471226503958247126065587303685277329212308491766666077993078959906231417426306818177573578109130108454976520303778403994317116183807650957192991365583524739920223946700880178989042603961815951110314441996558032954344110389364297468090068817093001457738961253452219139972268182760717513980857127178763014392000895528595364201407621415801373848283550361405363456027688808711788114652791390491408661218584275173736029102454387100419015071276449174113945906685776838553528616193325097914202361194167658263877559247196290808025048888138617829608391135405186223844444163169514597540071725844231851297389929725335222984226754119045232698476807072488490741204120676276222611859249524670200680868872790406227414036442993499797105542358378164670571201227934123350498997830045854933397589896078056201138287491126256463210794502590051767080855721509474647248792601624243462092936508617242482615523094216958265062099799758644967289056849094198674715494039763058131991063630797689468295741492299313077965484895526459836225845352020335734371253445110186102437525935527261395658797508909805886121215570820874634416785319801241571262651813695651500355984192106699445377913861820690652967427538699224306271279695584815848793708111991457507606597126396449932867545108035608019294809514397197192859123713612023605504771676297150031291206554285136168237312216125130147304857182007871882063306258606192438526736334633923886109230153011481681707464230415365537517573428881030010137576345835196989446442032907579623654486408156924106679695090681665246875506235013058781097215383925561327972563274058146919722714599861538380600492987561536359080296188031582165838162424963925404754835281788243028767242714349127966970823231160679505881368230623617885020292368108892490406808838854805971101535525293763660605074342006667942199633859397370426912336447783112821894025124450850894467489261879918435262820990473153880620817313472578451062214417723514392525805493281197939172313978792659980174796373874042771915671035785605433658687410932886400393329063274829877557401921747937140931753506714222018985861131335480529556191835516363535501778009061275863590299000764895287538353885624637169287587352518716709240695644008751008456613858756895079848636711098688596503602206944480948794441151564115386242767630991588314961686979617490976550764623028356153988038776541375137492443205564725886835401412460388512821361932582467408818991765464240373372060148384429647115066445029533109451291132664562027313904145490764371639368142176012223004524164914120324789341741026581115419304742792271986980138613979923789864972267061388034437552133642222021757700837353501429146101542676016741933060056018887394019135590008690705117750995715667499364848427581035537444008464870434468376935133154835019210528661578603523473156607434310374064178196237431083112545103889939800697355249629708089504902258465010689203250106733879177818879667642364546746794127711528196965272780274298735723984102721383709275337127439774091622652644246879672384571069328228021903322218065521659949315457028646471485507691102859652069254550191883834312468448514803855823574811879867995173944938191756428469082500939577983132379622139691504189895908933319559049145804130484684726400307484697127744768403223623481397739522953519461421228123663514568906799691602239392712034155571834203746479762428784100611385321114311311187433819906386180260288367421019774422997520500815440220521036933120504062808799772762354062626016885233534253576733128921133924830454501497071060111576717495424383750964275053774294801323687768670931508227587243457549050216019321572983762406285491149146300736951693454606418332688867582951279433159434273803070013721569846318499837042417862092732830340282603819254849733146366711497961555283515135533079382642471458872140105999075653168149545606933972145466622674050176131065444934640020050475236692211721571775270167807633850615992577405536649005370339627811823027674959872220147100465383021368386115493718367124329361701986674082326122467471368584217796456715230840564836957910012039785640230778877238129583669148753013960047981623794030376139958139178940602642605486757919737057876773282384148593729518544494617716635985515266333322896050096630971591075168863173391076623471284607988507878897121078194734724430076593607300408581528513003592644580077251744761413417810987381116553797413250880005045357728581577256717852675005246189755153589176784645410039067582523201638872888282320766046779235012288117500685635273404961035488018282475087277642794623477174831879450125929519759554953850177748731275228302096382544890730097850175825965389229251791027214013239657037586638088193574691821559949771566369418461172646214055516481716904143236334188005123988392427524801256148130878888553797455338510463712900738015915129914105163071144834099206740969741721965951148190182753270917288062144832413562315372477256484680097181927776861080810237903729699663793472061533642382948048481188364690685323462755976700920750763878877424494842066110887060196181031318051978238749956607330095188762217866086707756326569677154111317624418828042339683542254119050143195779987312646559954689989323388373301981824389524999270529395956286025374577026937810471973315414840057404098119072501369088618388562470870439847210089753911813706165000886051738629241521168515797184169416346723761761402964967738663865018678663822818323746189779015731704703122369437917542780974002910225188994433110371753620222055286296915394894492314279791078840449586952126284113336619983934284731526013306444472109522169211481486612459034938254700927410064889865626951879460817323143259248101955691448402447895949686853817894923483795826573427308858326914521330410528021838491075258791745744145838972339075342678185362492821887646994311392302931301194314809079212472985643495137603661529632052194024136718752705118132483684279139690264192232460087358912308327783983461584361990020013254244754478463664049310474176942919095114720523502375290543513092914431386177397149039851036975358404437435572359295297006481154619144233483569223838047144297178462643492193505643766155379799531173078713679810863761141712219688941326586130301130053832845743770228035616725086701816119019463929737669488437676795483965885702461896159386471285434505451510781380952944373585141701279100598221653326642295804539345183235677080007019041387372514015363961918130994465965207993521853302301129202519117075889455692504880485671222539476971277133340645642044714190027231125826325896957106551299992866858402419962173627091781462178334699375562596044001390905477813010607739563986666779677181389320365335487318347600699510071054514030125077520404883147207606379505387101587840162267700534781730082683213075554634938139604177232573039188471981412298503749812255029923281721041960444423611286380581236104047961838555854995771069622680784282795732089047138108293718137567931590966299996799505838284257258492982924331322127924437828849471475904200438710287253795801996470322651223381550009725266833318273466000896169375949679736760727952822903259200958175098263822202917360540195293686208605074020857165639262867430264571159681253780743789868034606449647150433117859338946252833091022568151188230653376267473970089395600167146926500994679679229467816853359019231900668745154264883883689200299482394663633636480858580785895239041146215811216764095423953236243264998878858778022164636320469542308069063715441691201139636761314459659089994830269425303888745943717752894541013538606673010397191780891735093807571074084108421828725899041478281669972519405112016786547233801134859077827676325361541117587077126737289876019487352671756019614103557881448300493569023988766884994650167426566656748754432400162315854683213329477792462882032520020273113282401477669678265021893959384994751915913066704233088442767704066707710296682372711081663173899954273830268203129462441471652917967962187226257310572243954055708063420891730956757609008963899338052567461018728570256186796670712265627330858516879461553461683521390886864708759177542213174824779313488314393438496001284074767013549830180470699984543721352304626307649135424959185402097581223899389642716947189951236704930211708283485672680034697406862933681044647340406370431535047613898521564132514935977446807525969248117881544562953905392453248016528450486689720705801596403341262973846730030771897453227976957500648306527600738204849139266135518897672118386068010717249569348437962066204860705786147099267889781530771888113469973167708475284785766521148350643580090551439380879508546967262630916704526257811806820991675864401638533849610358629094895059026524629847983867747864038683047949961636906519596076322138718531124106315758423543423018261153343785589756872759556701808242487042193741578105143844918001117250840294138946859380308016806448768871838459267300345081879230958347228981809645095003410284327991090217785970663631118888054436958442081688867734248635277024890127858905855151354747770534734653106369756849248247183366412527089471469898865346467685396369179516010753424169031109693084062329268638378735265037499129402583683378736673775829389282449288823119516731953729154788595529838584595588223195584885261369574038882824216534660410873361876659264916734019962485490853217315115044771548434823627595345036994466365269823046265356999035986859343853973750286196752670950741024002099350713740512475466887358002444667346631730198465510721269809419422320734908197605566680270458127747677238442567823821512275711183800041229658673664959435452297678771126894853082840215969128044107290614856783836443359468807007205091747388612001370600448321143867948193414642970635202945198938334940659670643692825456855993744163717488781387819959378843647614983165278784995716624877515593977486467406200647640991318013237639896567842400427673617066970807380420585736182621106648984228502358683593828112924309218834118034615043090170299369281110771107677655719183662635523340903439491737215405718908347743359866249464172153263483048408874125382415559523223873870289357695994431654848629246808083840200591479562831457714421537590440870998404709844160736037275560258801846857623402166722729716348038833026024521049207605712195414883494202226523680223277432860074476453165450781884238818113166310086282520309134098679472351299468293720887903767226204851339055138004134931264137964573314334546320295997691792402871473635377970684733770424900500845661233914552975096158964230606395732453105879590972396792193320148605056041341582112134183737235361755851718683266255074752287583820951207364430490207758923663172768895293300861354118542074676014761082671078325323914532371921433472302250743834022068771719217663718225565524979812655487445201021882013587948210350915971417356858302801413684098978652837281507773650124667656307967031219416042002600240481729080506003586779331612531608337118514163916085626218971110855430972076495125595300658389909957993474076201539086770301498050773819253381905897932143115826040570366901729767051946371676464943139515942125622250234931291294128290054911683779550247273697621848343373218352007726217386042134115419002326978074078188448600279116333462008886088308747975617773061828706939377883095441810338449818118214391033108858046968927366348445477179798993216768358556602511140830588722876185351702781982581402762682541353819917749298417330963756251402852118058378848544579582876773537934173053152900608687699430250689072192464864556683276710585549641277388628950570551377613064935016240882998651306902133184740929302079974683827499755044882760876729424971260842651103755293817742009277369230025959112217957801822415451019973599508854809962374341340710282667488624353424620774006405224816408135908938342022108700251441679956476031803639785768862659921309114991787296743413219722659534783437649337494533040713607736239134928736633568977315145260935490212624284685085279040969712337353855789345429516027176889450120881177249228979980239071802083939114081932572395734078136071847850290393030679366503556103660645351202964116533870899632932227225605208631218178327859677932189933282009240131581230033586360682959602774059821392192528459053312422498171667973648048605658393554857571367817217258645483882835100345861572032393070070322615615458156495922202286005262323380828072481749403161836597230924093242205874450258418176276263128186110275957864036147171691568646599499055744061733893256981722622229717096115080124439291247646226226776447739582195239011075485133637578198090312796741027231522647707926258511379753195038747957891783297955077230352541058291858532124688317364089702733522797181367412600048470162336973924097944857600840330637188465394514521449495945239785392967249199611192442051583164596354647991911581173687518595376770700278476838691543030122889600378190732331124207041140196329629830496295778877392287284966584852565770934151574008856757692141030872400364508828067466554465727099818981745286909960992669409465155098408993247589751252728848965889010242952517368003242939564042545788069009035482045441722879259825901710405304621395826180931168827938417959187831876284793341527258953443118429428688588689889629247627782589107090248777381591499736304496202987862248169177370392851397162379515719858186593732277233043026588245070176543940539007709468214156896236202970181794950946204755736480890963031100585750573036982865864988466699950276532665143898539218373788517796987255901295871719728303276657360517603168329492569719754363863559827540936430135169822371133251019812901723978395882513274885769760014379776834741770224663257095259496792271883091858032485253085161272688011435989098950962404638976135561816248250015742884025964638198424667223431430287052827658417668380334472819523287728073648819671186588727700994011281244774887590698419961527394400533220310433951876665994347361058458960992600376245607015229318184228605324035734525010289436089541853195528718027697342204406200158649027455401186801162142448803466719365206737032276837242462398539145281414258058819885302179020646522417640988103951334321762793262492621853708968266619376504162879918042870555924815130398552303703332397938442698109856187483540190412034758178685070645684671370050874157348389792475192070493244811926371400824983662977501353757925353014960052132637679725653425207031047961519511775549611654332397358219980335458761480649401958261655919429691777150153610362595131419253503206142713955025848477637028956922664415441164816431290564973953354935960756809571408846887356038235028387326597737904262127922668726755104190268737090600071500038272854456875528553721755544667365988084201518798069921405180440336338514876594264249691996735936508279356133746419104209279743838278577105752424153570339801524155484542565455698627180377934471522718795716709157539537809834231720170958642529557544849171240968003518961951267370225378512947230796470305886592184036498977537753138377415173129142907396797941743261992586443849652790980110408143915086783904956788201759392783261277811811834493247617360848598672988053348070937723690256854424566007101746028028269853412048844523384401881848386930811363805096659801559672765400105707890917003398781758424305320031976691239511202395034190547679755592136306467499044360244232740610242692502291659267321107941230298484668547739376595068145258591563657836106751482243739266645549909463455755771231945877984775617973000015527509163117449409030365112691155152817625996779584685241098760014353489996546706647928424663017327483232594633949945494813460653582909629936853866621550022072824181364003756739378096174457918667405742041596913029281071092910988428698895324580000088849798552674530173193256181947146527132743774719330373725733557181133051140523084468139197337597877203195002587926234242002619145665744667467623103034312649931162924117521733877316896197297762062232411784360830514315682493543622964237748279133562790252097378971426461654740316763717608060755939626152719095972732078951720258351510690705717824032637996489167863083293379494135249225834977597946487048894672727398422536871345616129908018473623831534777013383897152198589284839661476156545875529973251065508449336579353583007762517373594846613838064088693395035362647642635265147677038627400257174877339010681085273786005717479413676752972852142632173411669955072486991878599204220269215612314426350368279414985389002494404345020939917202432243042769762669465688395152517600230137368802784930230078325417099870383013895829133238923735170472489638526651290731301455735446212673906353491333791610659531988451614499288291261998432859544888829586106090839992369803410149588845724478007637667392893397477870094050151675848106536190059300761007063997323077394904499750387138395510292596440641379618785709337540038299224892564031303314518424403111693353520282562194472697492557579571969613857193393324983807379848050345746943949475668801878338279753653843946313357950167772300393795398660543347575624275102301124827848432476954970793759764094600743931472942753415918941264749898867617069092895464762584639333177496348473866440041266352290361227201603033418446219894637156855578259942076890875944183060035413835172652353002532877198274849834755360127990286264020132484643901172979061546709442831543391596632220316728703174264824123714133756598934950730110066816893965006880683074861011471892168933815936089461607648506385947176468653551051104356545505442921128374532276697537327823142454893099441010007717239114936527064940923879888557086766976083921299473087200273368112981004230849987651358936264514461909928868868906845994136723033477540259993133896966913160133649045575090706766367744497583764995390311125915028062332593391780215359637071662236744041708255056413950368125651970519105556413850807986656584162598329542307550577597457665498078821511679048640533919576199352871635867460476329600345658938995366533586097777213844719336596620065062225998481714732221590311521594204548327693337841674632155046428741815788807037847339463787253148330360975387582171834142282143624944725045397589474856848409566140280749736479099678205115119874356689625536739812771715495279917309360950968669949072688026187743156574781305700939019122287901995360384820417597847587479716892011844349211267314181968434561513405348136816761866262614340519641949476790233538803710123412215018470062918901796328613652889229715449758765880234534922335929819042267598744965299238290589793480507239353467052569143954773600061562450566181497406920207948467718435272614613696067473910392395201351864833023207361559236860359794560110552681832386407894937537974490648621060175642694571197731638322284652980330980399132794060204458926730062071656190496004006605724742731532684370498262944362639932640807567257638926636873369969613149555914204722775208200635567033533388125049056832827502940943771130632938213728836105880471639980181189416900063036696909955430641647470135607271151698737547465765550223367681206402698453757365902238867338150192309883158324995793788460102119889811848811607956811499561741960721783549168253348895917049191153324995797413605016802896196099566783940317462369345048017733545521484842056139992346813851898994933743137388650110664174752081043949071293536588858378497090304128537161362765720594065419192208042220178126259803241976158272622578352660029572740816551154247511228913661728178455717427928465692402647465246476522116409005328337547419437238739365534630492249409375486463382664822516052644299208172606377406487395134082708821181391470008359488668421360123451223602151519265772551307723348915980944948443712117330216551590798022698501304871372658401522493702987227598360679917374351335503755209913365771085635608980637264341489125448857488343700155331770820403422672536436462270591462411984673841581914868413934475266368036237796412757434604235447285938830415926057417353259732075724991545512997299186875493015901287708855294859574412742056129048288633585996858511437972122637359825585716682746284687774489160557147852098388478212074033161842386443384647222224557948880822373025700706316334938305251089473642522575740600235176699007707762575383723123205982214579543091340439779652289125607097582501980414773713931037083258335227639653371975744722647922762571169086071049254023717564258014690695828550890793362216916519908926204181216917980826549959564100002637324306936499202255061714039205110065376554667707251139332409729108905707582950176330900321875411706720608034608614740294017802112526899357563439947406259043193937130912975752994918174499956719142302673462689885213724264764474601708228583037885400366783680598021185772018428417011015849459301560038985786825219712205888184673485576547367075765638740013167841007099341912669374458387884214392142060490537177822791438931707705984977969493258309605391407598029111902806038897742362236474541731097104931843738267845101895559660800684988704230088370561017849315854167961451081001732778508137331170564614198338188957101155831990359206169117659326386081736180466262689231184447730237436647255747875155279029338498802677554547763230111054973372469535043238045040543402369592919571937820641062271544577884250474598990660263367665598521851875633913191870050506698921790926841890914775001448280941954120964037630173575761136781309334068455083725842556537832098182622220922420615889813847863030957291980243011593706542767305017337010724467123133772736170991878654809571833469302764107036065611072219062350147648381737392293277798641143479852658965872650807416934851411311181662575004054503106102099304670033587922695487984215013665034361706706384978043526029764024675834839180442380107399882925312982034655299898728598950314602477536681804824124000877331288911647364295144387433233149647565047857288894411612022915160348229363167900802325266590933114305511621266415137700442434865858180397624012070784252258472494049866625232738875982609862249804556226730194101704522631238615820262197639137360476597798304505904343674880901787378893140759197956314251352762114624068920537034310080316314832207955480438239084149666304335688631028832661627318304931502432944972725244317877065643799956268064704820967283312440979238415878782144009921670038368678831242436647017914211803757305453795727087249926618498975867274105141842143523531016076922511364146904098784693824137262187729296143844473132397209050566981197878993297983854404662476238660888996300742063161959484473883556514320573379677925147034466828207557419534702157366290257677082062023934875384605259511241907539867880622708634106697149363464486861647061026336575184532013972488486952325085283955799908206044855502477186566145560847172133641587953795910241842296355696035015243613087195730383146672855806870844443823383311939964638871630331932718214865012803361617841775462258663051159666637141048808349568867446157837710993736591972311225648222160669361532880838685178572602254630211790413744676406378330196708168252628183254805626405156998709244954986729331202844749593964135310987028347343624616153276244207236451038435773723318863957538121295964175045397644248646050633254809698364460633371133189042642554937831399298251020902469947099430705970424457336923026169312106385283277653691379830619867140072776547190734903419656910220888976233981509461083475787505975609309450522339639274974961193989075396911477608841830770059267442098266992234065169692996080585687857482603794748315531436162827428975340817211145974319829102761275786620057149584941650291810767853962498355103551600776608556709040274067516264859418051907822488918050046418800013833679654461077955779779771501901232762599370632555820561928907287195157768466757472297322513789225340614757505406426912760085768608733197376348559646907402920113552861468863410363820298799338400762463199637288338944257944220369029635562041833064507622424639293519477753374512053345344536845821771201041241379602502419246456745159974318380809832630271962924833604006162275527753086541329182749234228271720409353271660393449505207200940752344756828090977060180067466518820100710647247449815189811459918691456442783413851839890022591462138093704294836940806347827342835215064892116541584985752045536363049329767358392999989133828936383790550726068678215780091958864738843446495905097951736649887053746185261117705445598244120405408527740459194396198445330389399609959175839987781565870024239475592508877475968983208110339756384211319812426647509002135197635787608484864092036112603228415839532593827346136854890871962342732995156886088667834365786467824750106201040296291212113749818820309718235033038754124943108936143364666672435458758575485033871345500582686460541809605661440398558742572975320434327584961261595577818093482284673357789650040430869484479675443186460754192354239177570135360756996401751814361126752919367003128980060757261304116564106640383691037088264935657265134025071060163872813366572568850999916079844620911115479358818495697867324487399243634864638712712723814582229778076378561262608830119128566759214709280563319766699613269717497908912577130974331208193073922877095523102843285267492444076489889449528824686822559647866482037703288129159506976988423338660144223880849605953856153051644347922717977117024204850391462201717233915038293436139437182073455121799183231652387996057970760855397769532053487849771718578494115982497931069261337245365149313012983008762725293075416382809438313055411482520157179358293371405292361004636190776313125752483715646828452304129619100558234290373827233639071234150596107775225496745152844675093010115520630872809026514679553373927242709713219589251932866943367573470566825475142267719531307508317773678498345852691070290496125167720857945635273956803474039669152805681650310722295664782249248598828897409354917598853369923222355142524436376435418150347591755478668548040451581443719284575844623866526597438828050372226521855907300509709330126659528933786764722394305802436600886698503670306438302424759621447116256694333241514861201769662037418691136399779816221248677703730074232127266200504130566377551916704678038203925746536997393268121041371328204955532531945821125645561756264559348442234956711182356340426992234058684983549726900375230245758493758207384422755416537822316485276986648751535548413923886614397455998559193056841546123510725282507753933413261725332182427120494044203235816777379844392838815495162515801626945918660653233922377134819533972174665291709298861933317255546654536965887033669241310851464713307328010282014995699358538061361092507816659830863933460884053958524232103730681696424440223815678061702627515315639080146275881265218194359980694511676191494628893893940525540306916749700854534929302103321247323249853062301607199824768365922806753459179735875759560335213076296923052152688111548910965974864129725682775030810910236050657687311195713969175192333857551837502057369071260465439754557148427233337717909257536577414440081902074647282730622099613030938789627902792394109463437399098855251300618646277971300810577167159700812859504793442966559605494251666988732482749385936216128585281624752252868190633676198166330301106762548340833764177056818140849380573621009224227878400774445559471323132434517367197553274989155386032328308461208709445679305431079478109869703925531213897253168094494149973207410375972583480108946856926745730300549139798657873055306164425761079972205123064784393108539467275934590605336411784896754345390964160040592205222434751984526807302648635170407092154406298829018149599581016679869633331852809315741024703270627483470923604070598221986366961307649939669955133559821085898215300321090137141395056446115903157923683852100044004051007384049594155056362972119385383546116097938549499407971157506973749054886239599121313601403774624107115477284905032135755314422383005005597915668887725263882812244408754456376395582944730900178425191443097426145720756660084990908059360561707157367907504662148082716063334371884721005656549429026000566693712154947517169029318400349257187567562963726290683263468182641965332076139297587771239921171179490114251774116127382767163057652629377295231949598647423109741411659690524724433068337274728715513140368465829976414383694068213089632446151938046540931910451801339993246170752147192348771231637962084325204623246390539545048180476845095195386806391503788795222767566539429577827435766670043939958928179816108927974471885629325130396579046956081098757243656195905074035248672485546344553481288143560136263329608991055216293229900415093609333348096413612635757183163340060742632398074110391528938063992723935380518788419635580718670407474935170689216265985876890819480779487037641043727374527515245617864645296546454207104299807107643273543665748651800891114821688027842977570738084121845292575281583244067892472788910896807476574413591813806038466375032863558448765458688252583566480411565680318254265265494932516803183331358758957478175027652400876881916582859127328980105474975216992226343266079243241924665206279787785914281360684590036035319930932612320164440869552925758029282454682140157638678865214795229983905523077577046842067516682702196476391268940122070003047188822921056814217728197449640062992796310861259599326277660478453462725660274639901028044261348257209062335565260198769070284800911359203613141800224204182570318738299471703184510526257445011966396623849067141200413485111183448621114723763268310044670492435506692487747064248355007162876264512938022325455249752817323574350530543387158129776420687406618475842201016627060551149356149967242558726154863530802615792613831637211744263249512443701532692571586775523474904233689511532379128861254286522576260736866763389172103982297547140362671792954533916006344972701855492063910321951402712617995095768036600044094283631483555101281425958135454051895437626444164242946121545622840609034573909439407496342325166232158399003011767840578240012113665864382296011920559837701658132973582240067561067082383049655676632011998529709592559059825707203183622944075713339769818025025624252952712992966740407152563422145379884485789475703546548455983057805064274531332719350732673966843047599889964033977466102184208096442499649449448966632654399798163437970362496819881277117573499785960248821724607773904137494057781595198051315685593599653211292923053528984899866635614756434905690953727770866253671574019263806736694869584465081455691922665636453678136257894895760631857642345454740074391550929591185933878062105666895195031113757794730041723634485199067395402137751252439243925790160010735732688224945389023939630783975400107319601340901034501594801258770083126415793832801284146482019193781386195297907848598736745365869233242817297031862683219275012726276814718903673161312454984721731019013573765183201317548931943847921081618138058800577987407045338773460214602204528340181919983936628545506437310392051425180122700004566436170760284518961838060430994818875930461977207029543317979765925686435204890763926831620535109054384489016390028976107964943981365644259947287308154288635256124908535048713306554403198856437159346913072810868329581358919238316726483769958438259742662781895026506975175229285099603412833799296998304942467357006709282098986534610193941139272988960371754707560056223619787933911490261128933439314620865387808121192002083498117102686345910035386147051251976315770352661679333420050390366989552283421822438323578707261699761193876476688122246694559060712210325654224003598277663946959544300700884102901252667679278647667681156198511089037717520623998144485189048871451622849506951899899692486188638759494642492480279623013695439974698770192792548504991381844768810487294686910429631496571011853757232817617623917979276369352688674953458973781055866961054673502568381220458469224449861436727735518786144911060283030682071656068218426459278900642495727034886240827920295308526225249920231606729810893364016161231782027350806599157717363580941198211490248650691175018206909537142690998895824688774074658063014169372421064573058896780672752453853827550691506313213596749294941465887152869833445827024529961821342942398174179700865378217738233446740876067902457595113168413965912494525337929147260683950662901578881834817289846896360928339350989124699334746762618418570624726122169534975759772614113563582576981634786314909503817690797119428409435180726317101096342049400816733991000835324888750998857030556154606387816497550798821517589460181408660991157125854464391749280422758323051965468092651678967988302855849617852859845633607694929750268072885899095232381820913138061774814630193923276081875886833932557582763448227426169045622878011991295424505697144309127736064001202068483543997056398701447972639058961455876925303320701105748151864915169983980314569419471676104145076227515597352406771406122328801278287399464678492782220443477561498547354351046052118670503812265001183898841929043634502497749477758062893158498875911691127861414539942352939827532747741217965185931151056277571461810950243277096386102326196454341924915747299602184717682729340096151801152802314519193390140940026194317158440510405506555724912858633978233854298809096498175068163004260323673176237132773351658812971463058425861291665811965830960470283705822294121346338343069433480373958280744598165786359931375273223281317162345197214864944386695595081420906714520194584723674852500553014503602786387805328245648467169995356419878595074101035530411238535196498025426222172269762878161531403944974129952287868493167739909467987606015590657920913971367930754720578481647564760050863268247935553641838453314672002178260963338189236445632530298754051907282537737187678795890095061047363187381205975592667486748383175499815846732076549077313268927695083476334980971118610352448292260218898896392068794956500585474716425305473258898110858458696849552287783721757759035330593578214597144530652684980873089189381196846325918882333567885734732116667337224422405306279855165147956887816585103172059702082005309082456256676353394864294648010837288271309606631896143240956280317103998436722606308979842177954597993610505655933314119563571286150382004167220420784954555276861853211477042685635622887316901027456113146494859476725188257098500965987421316544177819287354548239468652095893643783163001066429400251631366435176187188268692653052426324840275894575186117197465501713204260800481513682873335927788547947136324277927880955531869469169870799061917691277071142746060824938326806892655963060802359714015222987422910157801701088895468930710185457083086305791017575325051969693729890540586930289138204933147132534875000098671033239227568936049416971996250104058382407347895941120450802216599338647720159940969199219570215083520308800858116126108734013501027063783392694948470623492200557876848201571326267659967044326386362822485676668497537921105652130296155583742905116911668083814255503798108016809136294980515009204077171621787068888651467135429961576692051056304363478454160671906148472694684964473857967719727763087039072420687234614092536658401401053986011005977753703536699512563582072544116286551032775598392512621083990899265081829365124303123272545639578022802722080063910911251584325302315772886013084133042560042570053386497040334273963768614119064623946769803842971124687909836781419351695434161742013884751347205892023862493158441796358459366652536820562418033585497046133950034743085785321445404853085406505059507508506528761016129893895103343463543824525953640573893786134796548024499839899961364073852837791131227187628933960871012628904830639281099145840025629042417321034498540449641675626204939998907266789460444405400802657402525933456779718863613931995169047654186271540645294267634399913244352946386034330310109105145132848921738647874912646572617640830865773722197565611927415784625874913819623925422159096175765241964329013394998546300999566551084639226272482332730640370822037478295459443198831954603882853203091020711252131028639731240045904558376544933261783988143002249405449529422818532106446746794478211571977539100334079372119569964333115162798494236306771796650379305541506359753558781114252732849334604550094166591107796699597408466823697141460086587522351413496822677259384784435243425779469938875054235465618263704914265521375316987945117350366371248766655851525832284580853827294306430432486866620057751614643862505307307025792016597332752066245585513710993834721092564127630361371487865002211847642856055103916356687930422962080464517671697726669939805746569806428034660696632164051507225332672638570534985613295136822793456151344536637118225012754336252562808687423944724179697233141103357357209104734802216508710886397883448767502966671614394925935816204031716190404273673760896105132623743932753302710966358815013012187370432948494250446230663844938910955181575021671409140682479822889580164178205589397336787581453286571922177810858741482014692206394824719288655725594285394135105040342253594706937016661965887437917713539231426943222699291536488602465339543011736159959458796585213431420820050519086496998714423962648130917613575059599047799437679327223944854918416440748224417528868413877000498811302432909596753527032842654471321737571154852072890339680251509065994725907957337960247437634582572765295360106318613102531197007662959069052021037309694905018016149220456344291078029623124789522990581080861336293855438760355327398302875679198299213705389334598451211547168949798162948706909964679584493958196345360818151041594113786219721673272825274781234770742465989139825651399815379703221232973848184001215332079321348040353175481198846927805509735723481500586939509504317996753628480985241007017525684674724789753082364542858063019023315777636375054759328623015454364561529288381555637200351493690255757769280744540026826398311622245183612491663541516394955599536114671880554629386808711412750702144460525146908640684424532382653298280493477344714081453596730396954038658393478470988487679657618172281293761114209119292563156906371762996580511126627085308931406336296284694585321630799017098705659293852149077579749290130139016962614215025299496502561197325321144889952888243492341099534240648202096737155753965027358721890603523994020698845137839606894709845661449380978704523378861673834593179136333460694457403382367873909433858941204615854293271281435839227175303566936597039906743512540459658393746578652786887944592535918655458083701734461609591681754414855263525515007855025585985110915922764461268127203591814402633072891534148798527589856634390626007359623001596892332975099576155006062343939057069894968354276372013948116133872540616197123120253853340068972348075763804865154238970920240024262744042819118248144511919909103088690135550491015931390711487368390469027814597560200011703829174673216640556422539855058113746211961345078339492358198956988808067966961135380672312200006338570732446924101640612883373046183482123214109224540051926030210173086197442538878348408947419230698224617389934427249878680505401347846089699440885900757354444429047403041390099284104793017151564502100800589899746203873601868554542746138587859673369925379915915245134069758555690508970999759646496945386215943228442439842068705628773531920021994940296006788355004602246688544678796481982568728488108154797092530603279871301599009218874691977390174516629237577080039520905074435400214010048787413770405685307963557721232564260651801137724946637830832939494667752187691800504241259823574477808006933711671596818026384879905416500923665685697327746482502524162148616288549752784707720436096459929608912248679825496430789871803257191192037449322933355991623469381470503240713910497024748168266483316590289200274124851345077018151953012667808476662235759848986897093001200383236027713317278527590288246529972401531947083458725057199970578099269162533671754443674549067220043378122412995528326604115408542321914215781117176853585633337687063236845005316560859538464623262810478290759962235822951140430761819511671476094461560366891115842780961292630725530914425926810737836270928369492361536680030123275411520163809647249278152106187210844091051905926162398718949708869408139177899195125274201243021849593836652398053237405769315929211819522392449720965993139848622586409774569936093190738875210374279495426874235366716852291491402112527738114179905987731784263350026390083489039707470499056846994052439546050158243651888341403125972561920112189147333540037745560009678038920402034422258396243475306814723912712377905651970122201520782387460673305300488752480793616353408256369771119963111193877123090581600689796481836624554874415602995310186595117659501094645927097510951034966162076595829387490713415764811959985759156079901008799508200893633206232411089100471445786010035241675641008645770847202105624514419318239219230142654415034305780329135789073634501933284588369806549921547034309635621308748679367772174442476378229876994422812908567111269651251692290978485998144190726664393680034528219857494222444434406453550173450573563551912651207228770673258767405996668647363740909368706227421191345828501565541877921009622923806378152280971602870539014915001073568287937910279335184110623651297853649763182789038774639499101389659617639521110455259145687547456471662605924873480623952255649099765950823505966586677013647939778654089508677012690617700268970401600590800301668684464990041480181572878373163821585518413431753903126692422847470285448400385750427944339844169031522831340043057731260261718350485582062783357659824977266252326729106230662296530532622577290953856518362987561775165944410074891047918570485050060456967356258853824236610557337491156573122584914620983202696723287923461302873638089179249045222488426046379424250194070598398599718132917747707182508488856405822152592501353802183494062855273464376201893552086045594225737481169324430118253512504617153921839639913964678008896601904902851776382949590103320574755906598985151959991421475881803407608808980019070486654623372815294443503692542475957619558381117677841610600012972754083839130314202699350373958074317957755837338201116463963120253307915037816925737120023488716398375543810335158308624194747877667846563325369787678743520883108904395485454308170432653956084447975353853312765776438443680387254166037547295780681192942931603740788686390585016263295031721272759962212906655455246814007553520619281065162399224349803966297895899081481014337367482702703597651393040891396703474277389115553353456002137365187893890237554356921227580641770480435156030874458716285808869849869310067539213810871206043324768791448864994795479969302113224470587648975314197132182119941012166565945625370000767831730172413715634882847534404270736097527715704283641406587610910673161311277184575465648150733487241458663392388100948385415963880736497008532834711050632265224134458927399666779770449387576284975499793968944817078481890342231119723282943932496183584574210503002650793759291554936654063854570790604457429246952801181262301865183568983967790080567587243039874510723601648674479933886856768396905196427503372108350321071994170121326996405108371306716280764612434192908681265901614854041864495312010505576309258538232448186127586817584240245002708504958366355003898603844949166197393112951929636698989341280054922947870849277278259626783518279849179321904718122293924543953871518122966737518798951014035859085207932896187525236053719598055704456457804319955514515713673136647397684542593511244814837417328666988716346427292284619010706926224975501417069469633017777746494777999043425687236923294269375627524214686085059648356406016236004909796633977674194078026064523260971992871619248486161483221942878808610941085163537391339677881808602460232031910961415879076382113885678811256482137893156287446607472698258795886299809957401716320089221947197814079075889228479177080136935755670315116140199897969317648213917858509536774223412908440133333382307739171431879740687932717872443110928751058746321635411307713264075144681977063585261378711532331835317844189707560904174404687604152765658954040988543536856408145332284247812440861693403256519493449070718861372756589748841535731427748955144338196256485218503194395304089981304746287604961075007871019533698266792859976118553980954392350747187276815810013710834913127948436214735413035495691225199117459180729306539550480674378503207853209299900833020308386809427364856409447730052144182462454430285181718081488102120433489998501176790379012426921782994507030853877242793676662133135952027242837664728932950289721603178968379271920943122591501686447128980901594829072458421183456101974031247395371603093895183459374079606881584347226660677131472943839246282243568120918309971893144089903753929545806427848048547432601586881647077325077878424344527238697015299244115782108034732919419802214922602184105612141015470871402272918971592102553290658650129241513640838131415476345368419987044423268671438852388511415840968844589110572176190446046410634451699284554790536470148976452886343840202302178935688204622480682221920141165146558109698156485179899840088797914591427066057127689304550244259033815784513320085705634932142541246787180042831045689126887707779509042245872373230814727765090154339410764575783658389171312160157731149817403631491053385188298351175729380637487351159818920010125037460029610150868052929658979801337081326680541591270587390436690305110246354506462324062993227592337757528922859508327543351561950819833593710950079521816088627128253236810966685615774439151672677265891897054248027746482800347709005564152977321716411185075881334866657623525790050421034905897795661713474213638624675055136483868575948765336991195640293640010502954087787395163319844535103065701249524064739776602463772350627979321498117220450191921835485648764223465598779064207655335712610658799545436485091344677578190129365281064918491277137684148924377013403467251468590977329595375709916033395485608422404497215217455700820916374356077189017096447476750522916166986122800365785917656787426775445665562307928195081589365211749661091949932041904460822924027453594232752671244983893922574902951002983397362646525431150939423025185535434133011278548223767178008608526117282268072222665926912748740119537523033005360809867192536564649654347833841018648262680633843635954646350053380584089831647703858252937165595436636713176737376076055686163748873141084234462122705250228848000435327994376679953025693802693877112542957418628016363354204168867919125671802377126296155433374216887801885468033238670712075642324881224663519485199635070857825151213256562011083046448959803150372478586553525419767890219418998450420951434601972106148719172649297834351353760977749348399630706739750524106010481341513494628951319608604456310152366929048875171062213130619767394169789682452874379631792165486909422183862389526958774255596059202811462046505311024243354669464365526398487637350338649448042237785853816352332550318034718510420683927324715669872076440567170853502650753500968317128817487080664979683749240844142689242351137983274561556516225600030500692713989900971782333459595082517984934154352776286990820091546104696236217726880802870346937948098502935064083436702411358106573943099728553839139497860267047988940314346976618010642290403444978132069407199828166596495429840043977098519916822098593247882541754683272073106310591719844333599489729541157576719757479528875931251143938703401178488795324505980478621575848337734202549326513752152108415940557643252987846137209870155598080984578044560689700179056493875981582417136444468963618156607697547399372833708956090484654168173535577375691090313217799893472813315809918083335006973013587662964282388438073492393643278145081903440263208981331264890271124348353062252467725556408466443063221324067126403184181320713487024422824898498817468185733801512577933503143415449006284415801487014249107830571549907785283484900849594402369602170553104701442954752247518967211774757734081316764978802078729967332303289603385117359462468627131300919094147641733378704441010427010667395904911678498442973549806212634106189245398048146545485197603570135498004613787411192130130950003373895501566773758033846347853736758618261652231523536564630154405362135038266976585858861964864365647184431608483554789902372600813922003721231054221534641423617756878062158533719292401998486549582791055245919538041158225119710021196390638833001528512702995046978598556246958430134980930889962552057543771254975641673755259740751834917358320094760958583213836664080408105889222071883330123310938405733142850040063167341631477159000768594944801878290604418768551170159692391445066238067061796427975002551173196167455689614313095007546341565954048147507505960775758266442492877422720785136945634858700146641590367253962812171405879884952733353662876840017364276196440230598214731639338207494517545472673482729245362863369808148141331841024978727700940668978717109552885099002420311151968878101433983905761553358833665943701759215498995207483763538793131594775246006094695689226133083797374108823012711784123557547217148037848776882574532597427197107375698200296535099107715667247652826294288135489491030400763365148198475847297671821251162555877354112894268839286860851311722640077091118746304914063567819227650544568396024943847236722718081721365988486404165214756883763868813769058823961361325855536770051882312528951169497847399363694975429304395026464253884530097358411858600027780005583419041488986865037830508916049919426622754677314478343294888470214312773686279553626124068119583538762438184089369960902610180918989599639970014143364909161714172830538198424628465992056993627407560585361339184410567828990841948075156360058969964887860827543223200857588881702580064521481093623157554776963094751861026491930734121255086399838369676300402074138639549124346131781142852644461836129107784912326091265546714371294566511833751793168630560498542203264204699584629004486215817059314994249150958058437102889324990096673593888671879723945051801928802651256436120286521110205865986747205856643216116495543051522642920106064196564012921408584516053505328896954980177696267626489340276755966096693537028360445814708955910978982663377440453769416419642835269022619788903982709568823553079861463578592864982688771379520929197170972352068944858250196547098853616198279797553808052752311537588557336458931185700398235702545063315372835054852407339676849496230193798456032536324207134199114427056087650280226829018087226986236946925405015328369836242588524096057581198923991395384664692105880740627369764390021982821402229605623428219607059683275574250866121559231476655658869809523106161947718990087987428912894918340830226897927278675447590272564561009149360544932900152517114367146130023175253598271881092123313292394145304261501054997928226712872799770928706647633173704510618153004162376300838448770108305184537776106993245702402195919583618922091771902795844663448455342042604730689739660953800509045013596368676616226829812690058440868080749122323136419222855502170353929319762831639353868759438740706145179734920626266668762445728231869660805794360084696450733374980611357487382481027623408845295333816538942883399407783262075140590965568890313279202060596140301792203966646562620949114418532229111801213261444787767598204067139353669375320931600245981977555158885228965605793497732244461054599998697136376793788332365378249691050020391043339299651257147906966779588782840952449346382234795260085932614400057721504987934304768610427501344611145912670177516286925330830953504245795034961766182528250322746217175013005621927247837497793045060216057245419090497793783135367542458068357882047761341520714669882514207180883150295343295127815428556951327294559572074311134157573314154545145036648211735369243376464231687167693989330702585885550321774636334140179082682350133915925715182092316766037027419481797909682898723123861993643187810866583927464675519722809213655209718592697907113299127598583460894159829016553157457276977994965153056702312362662835798713781422131375685514043093245333823389082409109741847374761982785767257297048384328920013199027838500336337670137507583886336684394300850243114099167091096818492236455060074130833373038210481965623481562221227486398382111689562995961840111020227171840760000653299551817943272863002045818474382781472396088109441280185971197872754783418886619359529316686044527087658849217189534320692450608957423954462713873730800565889718227133888669025536540350618218459957934474187282632084269458775694548586609898086544105481622282871072573989587051568720573358346487664539828374886765745728759722109260160340577961356445483271993153897403023197701692325764163866168530254689100230310966592195453121246563636332899499065110619633465887025151785434051621865307812209606489069339722102182493123382319860502781162079708840569236191716216047548157039594287717130433220397282670050001413172309607250290693912720357163961559836127286259139339178621079633860520318835156593061015574298134901626030488398481566287560528156587841339593622981952424672684193929518708971674695560224223713526322835808147914662852827220349873328940584138598591499811909141916451180046579601873447863552073927374783992258466710242636234942075486599601938560607256957333765123951597536007843886340941091588395590120227006431057055343221470653461057937460035179292276708609389224540836442570491558875656436669285580606493005026553562011870560965845688471514258772414039462763225548761476528033052469429495038130163604306402283939037298585536663073202163740800481777588019459309869792129892647601055426202949588047273402752869391051271785062651946153668256691147217609789470704346615939453111744185827152554022109693152336951205665214436515302237970243130869924306694928026313338596135209711676059952360629769717029029525411166030333821171428113892048477099991430293991222972834957376899539996427854434141860347174662529349110392231898782028701194183959178022645794221132984810363926642160803747182732041468104036733904836014751889603833197603789915688965691620543057667903728343223235092774777188635455809050637789091730395531971871262550835164117808594961967953451591017052994861744132217433074882113814200473880773421265327491720038821576502163862192528405273129773727349200843499669746032311418374560707588583139513707071313198207541468813379021851886357758377243728592075695668567346594381707682778934235280742687025108792069241794345319850300331971998408534657690590776654115537759273003633008188431748415447191515336621182204118265980628554087457171282314500428753208516070475711697606079964787900773985623749838090186084833326509053905927286510706133581541321489290470051805471210646767977456928039380349233100361295676820829004547999917442289859161408450493414180937443047101485203266175480416935560606811074351230439911929918184534584752869805327179421840066967270154765120383805354327757373527352027128088551486698740837066449415676579886705091901118669033109757454652249102001211656729887222247526082732641095925165842073351972655814397861869204670135145470828393896191288512711161706644105874193961378804467002454068871334798334553680146127888851859775315727797415997094809149334366966477020244259145329466261702265816833843008167251614613547945018798403105280313504263498655579047876004265595863676701072273413947727712437514111308094541644038161268986122210129683776382177903210570369888873907307377313613210094821306759400390211361542128564781025193603335279917471331229882110411570317206945259264805502013040626022197145658254901956616727058388237191972721481236725282669468625090106955740291483237753163305782343817092885397835124117098294738974122891719856803818582749253321398872855847752415717309862999654249933719443713039007240435719265710453191122593618769233520399634639101912292392286858416702192137170624284280923238319032387405037475443548103939825970661178558472884762584212193128278960164787633166365204159745377435853672109320846125940368426540353305904699656933287804112407368243154300959913571204684532050506825627244410994552686825561760287932082336769879658823834088880726800124385642736857748984327156010533712795360455579740079659815287103085410310889155535986416778969898948330299454796772681445508386072303053626289704508593868941104384548021146490733334407412673145858805416624004440707430156971641552638267519410500004230920312407519800333844980691237902671546383284474559453236625736657957844533852216138247219450805175580065224257762416058394877322480279717676611980942027374181682897488905758281563997277907352669633993949806464865870883377933353471429175836691417627480355575833048647283332356822976142816879417866933946916882856521694176689938434151292242500774740221408868253262442229760377686974951664970201782402987914483189628823498272709689904202472671468244532323923566136071215617626597392853395320494459964070811785366118499379308578461807310396144821248386494452362808357834543474083307185313784441733122837482094147335081960677049348479194580793568463217825806359291947229611114651765329749403758454416251182810407694551027560975941147517672963524327481057499979422202209729328687642474292751534868870070642150580051242410010872752957777515255171138749782191816195953599844853089631590006074637487310135324597657318027743116728784961789982107405191720762598445157263553951322151701415637974662802079976409690750503348845735470257987321245962088383966139167538115089642027571961966979490588207188751283847828951567921053164371308283120094971143373391448975552316508069802362901090418469530889405143341270224502548320616924268518244193703149589467396212352104602228957286146803399059163979106547315496271807707465716625620848990476375190122850818505845072844403175999631231825156973956565108150146321588646553157361654915048775399691065829363188227685534508880847567899471907304326351031028476668100349226300486247213164708029136855498337635976484215039989769556148457065880237558080246759188249995665372136220977486161782580243979979036166649674747016861872270937635917440430054206753675153013140499812700965029465433327352432998161638351343038276873147819917590706568830445444589771019633418380613026012233898607469670986347791970045887662564705632252787118461474286505047467420322135462588745800098763701708216800863973097730650756973273280291090429956322287857068150902789916145877132917698466236427602193722020088070496191336051320440955546673960169827633568101781750034502634930458666392789200698327604201334450927309557872694032950203137819843911624323121055324377820888192433313464049105933105576632401729276255438543262450281176186817120805988644375930782631387792020828174050845343062846591900109723501070081586203468741653377284851076822112431697638306353831190473562108181330901435128498952229636499887339637542626260692173597265935075774604847885064524142525061326547300792587384927595182969108120162483521426198195524931182300236571124750745813442828075058355151329224057424935630049926023093873466678088990336912992766457215510199674485854544851117032400237679068302434879006932558251942238148805924503961446717435555947310574546407185813005725413792981761807564917253471244867800884115556412298853143089531459802050805599012299210635170119282709907524089849273083908250325151943754423731466783692976654379685462478238072035483291687260717628293847600892773250800541692326458648102634344676393174929739991482327806825683116611274877890792389866670477064964255033269906900780274070075103564271260641895901581262429424650479551610885829826688372750167347203553805966337984983278054888794117194631610522035558961176088626443522504952451003236518210080973770951764991988503284390775789952116129659364644505131261641150839647270227945405228331532980800827567990011888351295669958227310235961360178632307101555104492828891026480248035503666858991533546886116750999202817571618824010978734879133346493952188849996639006899972632535779995585386250821355557842280314837488440305052285519804405460088570140946607987386321291263808062306582442766698926071030122007901239192242654439679597343940531832488343685419975379360394016674438524912754330139008711489996430846381694494609339652276044363971153427690109185321246438501221943888109691867569734262345738092998442062783403413652957602274141656985322001227622475502724639582734266054662265210776109815724495336992617371611999112557026031243779069599106304526792893854926709119252259354593056209176182730518675645779700738381313068643195792719444264251647655503119899084606357919213226885772343699726918063857638445430911460548491345179870700041885440112789719183195059445799410178858145042202878593561872873045598477678139323377476528384656199213261347853603190710217853387552853336217272853078753289133344139490353543797893177049107416391616513244372362602570283565963269515267241998522101398946439516815134325167852735677657687964747424837150941810138709814334215125186365349354549932031621495529833494505632265407520910909864535198626471333812440642083771073526014187073413178345114423729529967319243713650411897289678669673232495370780781401470271724969579761635782980363293309236980597745975518766941383564821727236224002124045859893516322863884121083867601232064997723217721753363169805556841154877658976775418101976098880692590591487058986933622632898016759530080047661364130916335940181632046886849941835820180122440108556098444359023151815221690155287843156673001222549713681858045410581510505493070139713064989682134680986304345144227481058909754746790551255823473147201718206524455845794894855780964374073521982755914421101759165635203290029380075382823860432125277335691041776268801710579463165545117587891335946981442185691036126481474850770421643764230056546262535194516715267209974284480236891279975962679061392627884364528995938622996279933549994609903668747549909563799622604499428036524302034076298426016541050294338430196502146991014277621224512975103274112707877876409324508883425290276899246954879688924721474894497195900841804457525404875475362212709720664474133561923812019395321158463389012560623947424434818622041465536850041381985096859629185753023142072185245829075186869391329537036160150837624844681508740717510916807216241215947725668074550689756440378039886269325314516437598477064172126506077001171214711434575866237069657999223778104609029255767922294042936678529282054361277577647676461703821601044367390373959724657913829485089746926238732073591222393526451488116881417423931506636601077871357110079939009502159954882747471804869487544607878849449750233080066577036456231650850386884366133973418541810602743258670873227040287318606997695468115536121386731606489561335503839767106020692063172504751624115638637346859460788067237380171261108953106361506469044992374819600085339930291326426866119180611759889679750509773878867495872518580286645587763629917211390764998756464076592724424641210934578365578931442790650123061791870034976225293929522684027990779200864253949015806596612122179783539630393004176171280574922907946127598358667792059403057753822976717095096689449017018310632197271475179921900065232558343643390609335312841858166157538895196667557763732526172657086194735621561066707234298255473061479082170613828304942140868596625908262854472544309547611850508419945516928819505126262414731943453966569579035220565655732308990696926597896252639530746289325037462618042365628313182652756116291961111263980341599500484458767288673232748966175198145808152109043173488400692254814846109834146210099114014668355805402457926732645484449525761191087009433389449511999732666615025665222104053380402728276606032094810067770414926103266735473533912359672449147314282533037176684475549212577263895155125021459717034769426696763530627489435659788747764222125205072018150272197145118180969422352612715294178625910284012506330972534082040885690002308484982925399266674927822151475400314007218409255121317198141237516733349237550442234356042638281447543678864613052696112897373880921091443738923493031144892259137392606336550973207995853456592499950862679633149467045684001688368124881450311620893732026140594928027912218689313014931139606958001484675292958219262622343335733857122628901441285794292019916261409625832500079173382767990733786445920281282851040641317739810872865373368099941369980035122113547939837833482663759154782298431404083862917720372025676308052333346778087046306185626663780291227185840975886097673205835575152787801526994521824368823458695805496472845553044553474616191623042293414799502341015896937275362231972356455515146005021231383310523079106075855048190390012739123889856263129055995857075873020230016832311521201697980350680164523618200985512513254930763895295460341060022094851723546492074991050134687369268939021650391104080249279292025500512293332713437768622162786173481261155960868772103391849708487065533370989580252877689686048818686335009198613642403910695235400097421199648692840987048057547070881787883100734361991533393338625578011312796159007448458227857539879058766993827262732440415839067255157468509569642420737793130350870664850958527758356952875805152166697752445333408460602989310923863108561192846964267904973466761164448339317590917375185262929634168014242835377518720297386386435148998839544509852898161485664943900772030646954840268952022181816914698624331041056109000380892413437583657628789553438781753642953699906834589917551266383653069831730066559970132420742473562180173935083966919674925147629643842214635126730620901984497296260250521529737664434906481628496093305658068587566014576870793253569935266716460839688621533894284695187987784953532056103696146613032772184534650581456743402001770113232624743082138545254811679553427000279338089207836635200315881273458668937600686906817589773474548485254045468163195590759734320028672074153781462026608230283468205568922405643543445773847733356879058356348601212196475449224089728833284093018588876500492707158989771409566015019797725004583873887017356540863769272516144588569392244632938261122961938843341133316752023136293925693223335920098876039074870156283835582052246018526151266780779266117259540009589715975999394855629999759564698737560059604444833408897955134283077544134992915948865922621995660814409088710365245880200686036893030626904715801410278712034283961021703656790184359963033245305226064739863049599569437263059656671961018878873478607222409599451244387215522966040193978066652607300893839530734570748455696309594869089153729863626990680878333920824935590439420271136177599917904207139584767654041320442903613675014696591366761691787845650671841174293483398869856877237275836909714654701186808283809178988694134852976155924771235245083284159786888344380438003108405529790221234307912703704527370410013347743059466038171699749225444970631781841039936207297781374136731879957739145927639202993300996134381472754612262447902399376820023328327337517772825444897883891256557776317677234871775455337948195805780111782938747313822454928931545944063153248803383927203475188213368961970947688216824156174161494582315266234492417540137559991874437265108777208059469986835576320396270397407372912129489543078166409127547914836988495087606890460192910996536994284744177289684619255813527150428381499455125061751225837017755358264359399592137430931360330442180260785812723021193725383188150911134813980262538081219860045824849868091790705490970788155134484745266857201091304976853391890058587922874756569115498364111029477065177502967045016122587752774517123511546838342873718906715025301244263554834014391393523056685586165619607807263489128246848217247021493990460860734306853979909321544130497243629902828638612305332117600989991900631547777373283304656245610504131644070814484362374689237371906350481339414286650887208712165570372455778101203044489426106082989922293145664867696589613077651407669775903490035961578332065397913544991977832423440979360295425950347723561307560069164477492900434549637741952037827891270694860437395984757493311727702692912488286033177868669921378662651335403458975816559906956128033042289690847985408477827388892469507644104136245581507046922774232926675628345278957525699167976441030865582408706430991898287924252684431865979677936573248068787807164466893785750533965578888777299742563273834677613435767453897560248928056130702774545151608065572174747807240780626027588687498909712282859859535843447556097650559066809557428643840551460148970423148230431112405034187986898373306069862529833506021480683820763074692014892928388688640128738448899659567363014423838102801635380620518206932713552405830476524411513738478049728039461108964540167160620605534051784091032842495398204334315331161359693843283643190300129149428422441701989695019164444150957846710936797631090580867263057857407464862618018171549421804402232149175966580817581006435850681729409960948492359465659035046278885384742211510375314573143025126282514024373804233662829424334070543615906153789040173512789049642220892304396719055349259719413326128143097254948343062488836242801360394237594057191942592629154154671067009678819681138160899976438397500208564129580273116564740433820773135230146668879590410910251010812124620697651518206406096799425309294947584130598953363050837985522131664622762771713638106209106271537185080388087796322025521915667739862914627231715455815658553982733648592455373113115374013685522260245644933495202255181905468159160173107635391724761332274880050167830105649648360543943293249651501115435074726417265554468897279699136121414644792923894620780212943053594617588922525135887868445533617908095816252877064747378533021310192788551600989192824695080154655367974656363438592707625962546092332635698094299983686198599750321258333698148459392651443968747520939471263030048097777676404020962117529733402047436357041562351046762180314403848414991807141105078585820610471675274586037632827372251089810935272559410685947652276828855220097263496766502626274755346061480683273833257891576211134245670315992615794883360887131411530038665564547154953738138600525899102982906679668777479049428199646753292580203482474581411266607968914857776337266895199073752609223312343789283725421480075638979016693410145059696279797916030108807099998360372298328590259953202753471012318480892423390611407958147151541794462469739903532866671910585463383792046027017829238621321525501693020997946264947354977902229684535873756988289656815175728905377002345911500009326232570744095971816995555406888900718757335531761384382694760720568707509559340423466282258472559896583305092148078070212647418032456102311298620169807313452647326654588610264943753053098373279454150380216092252552775472622783042051001233401597975196011962357511248906249065544136916056310703206090065169980344978032570348186998391859812906546519652882284168032458050014016597428860229383663019533786800019862722214667483663684506341683812760404173200940266962001662570161736336247467542733569855968790463877884878445680018839609118920111498130001569647037493858754090076168012105611361548736973779458497345007750359912764067897575792587231585415344738443040094857530864621929256693090320753727657630933278962248981966513624106242569856805764690296047881864311221202801988979038722497046293748834822541001135069076758108528475771378472673970662649128280624721966757116000340115643202577951680541183273363540441699685180522013637459515188677983376192741993506702161999811828876790037923788687503980096514793058292438494922373852925243723090429614263110170078507383257722845830660257819502828909015892087490447275568709347543817737128930643967998583304789023181420548811418940331742399644197929377463480809631917785208663915571721718167303410146910838611298631917119249268013664170667224541680061606642928098335696182857112289375642338579354121492401119415494410694015019069916447802095572034154949919975700940425849070685077866987368178831817525064702382996072705290870503452977254897961919678688480456876367109722666561062734322431110292442561645732219714690267366506806496745097931523931464922785034867219486297091690234107804831551432481723958909240596053990045352423849418306224783448965892631824844639099935972473072209123483749003549203772746424957563561906408835923225487641653683526676909786199999006547776979393437065442697747852726642705968377438504337349159842919427889597227187994304284400846214829720034688118464239061621608506376931639125438942462518035911798108867005057029175714264021200549918836732713739899261551826419043030578309941812506875055183536628870846365758278665251271430648259276483384032223360823695506425906976636242432675325219355756149780041987098704636183134890793285862021379194790271882000301909351842268911893896871006416769222368163071451555631196639591864266002993000720769865143926605273713180724404322041670529654083469781859179824203490126196783072261307042366234173309571585747391241034104812982728233512503102994714680244033890929012765684745840350057777899129159912638069280215112982112623993016571213893887533035030918821085432161780944200455834058791104674006454474111019627701431874306463573476950824711404689168895033295043427684839635836770831422291265686056342675085013665744950447002727170874465254611271076097869226926194471602062591898303859374205329002273513428425710466341148201502222198180125544828200461439862084515425113605716166726045717494439895633039385688660987706358140443946213858807632363618981273168579863240799279360299085287070908312279884587502690935592472102199452161442583837454216091321045482556918930193090902968422321539245706047476001007268935117328829731278211771192422726403855353479932370494485620496421708085601070317491537388572745204443997769134605622670385218823844478935166207394354991397839727485332306173321504670755191903773459123265556613113688322039294652030989749926608910266443353368877376994625529331366507067143950899587141517712124239776320049549748044675290319355298217766410781638314829233437091790077459261699990172471984790441245574094147999570879363236776897263758659552120578413460700954886296303099864572073763066132832502935160828212696445515247784806302201692008662965547228449626368762453119374877967459165946539331382208767879017890248112863715161053931123959559419175572165226961542836611637621199905963613788731612008886520327391251044364120847397638497156267457017867357491967047049058482552440337678729591244918507991453267626661325891718823438506577958191396935228607399221948640761446921518348479038403797722572449651948303940846705527991682677518244502688833279893135694525614360527970026366591415036026259237277189553404708282536200941742530217891080380226951505960638696263774440820104776494759571386085863927750345123046247774788211762391739733490484602048003880977608155096364850410712365441978802508847129382399839665379523473677085283085310965559153636300092123068125751859193371337543999181023237786198435756098766519452325012899420510748549030992390568895754173370186906691684450562353010983956207267704336574793559587006902815849793642548513120201328077314469253967514041936361274348762458069146571704283041555703065227938823076499317866664298775777627661061268252024978282147928636274799174144222536366963736524840036200890565267999567453989084656754175824409128537108158028195809415266688818524602997555589745394152574904898167597742075466926762794255505760489880921911451249613257580507013256106521668682563092600416220301710619080386870453560636010864617550868092154028742174844278318080486002389055474919735813458438766585317861955088337514935924960698147955518725456944683208431589656291286171299025553416228265985390845824301572963298256433606858705608849236421098321005276500780480949897897197070331723635170979962835713913817895964417784209016121935407641795830054646959282811055947994559391454030391420725240783011510577537243311812094031066940656153408380310716983022969305062258750621816763871901572000312598524871281262309884866762457189294230409077119842298123296808565069837038796123280532837147737058956139205873078529474404906142930467523513462935257885541555163670596788472244162048589332450714515868587145452536783229276997073072470143984194046060267026011464839650162458352703202147049774127223985413618725886594948119060012525527973160361803809587662026865337726120335253596906298598298979560861671984922160429169935504128673015648931587850044305566394746514875880383998399666782605695598052445559254166580779202478577713737680914227968914194390747672817966299953347898218323840914976921345661132190133875301804319347490080020105954353353463727597486158762430429534513898378730527212958714467612800021245549150113441789905625464272753836689509182858910481372299783388219292046114180285359347154300578549854432395540815971380258935063785472243308995632137850854270633685598583715253472441551128639033421373648486831293238283850554695306989090837868137115735932802146406359113923992378894389198058876244339408706461997622486576783507908692195342284554223761782150928237442377221844467285638828961587335443569341742409491015625826600612594950361253639302918519996190858184399046121350618580937488241612480171137689442196623649512442610490200864505958195509937768765418164470118889562963318531771969203287182547224479398967588781412302538557718129807405715649956397836769646616038242236829662680320237020982376295838798598434881195104196017167188168505352134862048862740736075987570169958295968490474813062222815201752375671044443958464490791301371435922711164483439492699382087968213489796870426658874862550448583574351812303648136584933176506552392596874013846697784195314429773537465233591681579854886592081264406148182809292943184001720823371503544815749568610328190847674245860459063715159079898714990665777389461998363277755993698759791450650795763562378264181741014385873594262542677731192287414310503559515772754303776940002651805316799495674640906307834491831573238374182405733767439505912003791043527526973745504467474490319906974854172063265121172736133992514831317765483702533887774283529258751229358749388910408354807454702449244936250948879345587318133712092541599816441248406036176470243876793844021623377972443175035293081292887656197532771723061964232095935341439489660084018049442149256819285759572881616419203998915319434796113063092507615060167041043095908363438270714629951882155047961893463670743347839285299403098495641639059002212191518996263832992657777404225106483654993923857822189679812411542053589933244050948663881317914428778907130139619389160797156797075357150116712268678693143327075001665599764333748783964435450177438791473137180358008228659077706622680910894327934565288067084230739889067849897891599086235464504042383994216572752952920230955535152189415643086087366280022542939596992040989745622041693868796448909460032361848310921815834483933550100577917375096329775374096056963500783685728696881967971371188070655377951009325772100706251101201364738580832370314658595218666037423533685223558498889258388246376703961156929590450702359915336335968613842052185966989153693453505367600609539347501099210663132789605262100828772431312792292547968761119633791788942543333967428843467322563416004349236104829990240285667140870253436827005420565882212791235702697891054721428145282233232967616041367158635938149329049253407612211311236204767520914360180989112664930113495277120700998637587074344926796294299732696516130873554415133694907352593966915148677608526100204379825684736747736961271376761177972951904828191932418813115179367318355653424170516085747255143632396680424565822052981794726981642013215485912085944521727596459000790982272121926023214329910918865350926912636198316016805887839830732365199988259016068021878773276525216824930643215345392284967565246117786629387751717228205099982545903556970566433348454044552804838323749645071922110996131066173528871072247776280407373226940618218369997320985944268495495176555973511206655191348107326428543592010807583136173859829176199249260568059877198878415928862300469900702528792347287580334127155508385517787084815979433302893793714598823752024983800354360683422448236825409935851307982082900570772407845932990955871095719721425702349076914172301490796246430552675984788028702144749608833294431140772639420685017951002937415203391304821141245830409495366239144996001198206225620291950869457000165238923959920202527720817426902303195084699810096704333831639918862439735490724453801411927169131750093867000535807710215172118917013520946905019435084343319672736749396135582731852841009293128321083021966647961635515086736078587755364019056249208081395695111134102602962495884816294440060207387224632152034858570038035758453172102310509846884384715836899908336607230501373453040108671531776834719690829022003419274573209358867657443479288378473227789783772805338974399557958958399871768378473310396921949691488158054699247875124223382438620326199010641788326303392314413322324352701693138615097952336217323694839140779890323493591406842405452322252297724947570404458251596284560690037026972722710319118554593361794832122574804444685416822648061908686355764452725713509687744721079766091131898498462574249165742298445058259654736013730420735702783541456252180446250682330936611527817895607342901269372009590722617618680170118472182068420564892820086634061292384098049300630304979834466708747786435032509764004151274827814180272680519638578038195616275542561970987033643211060412349561015282245401109553829791378389084860142973363663135420694744533765128542236796901071201939739143128835531745021541065525729306542660425347498601020885724888606924068681714484719156897887530275134189605032492404613446472855633303083798341771592126617612600174667070883016855996448316238802658515524343170381041202829636994405433854114355228679745468084494975382893956650897113111729971832837234726080208394499684752930844937088584286759191121004619686254798567599370403796819375765546679806928793178312753653047103179132645605832490085854652772621672475155772656849672289219158236196974043132185782709174923508749302329879723469185000143103498749141633201946723264572938389868739112737217926612184766659281537552529822882057332945671021652096624013626542181909447787174711633782658916125695743265818106830020203967070042247172776379861202833772963212649869403993483704776931292996289607503937141984657380746812800183776730023836107601620186596406581294576175589903321435796568931835090108907044701199866385687776541749473594830418314811298501462167628570753825639248410687968043133337879172004328241068603826679106405518938690466869057022856819487701594465720082640882831771154845372889126126233667569359732846562204330796238732408319260251815764356241055089001463217444661571768840774875892141831482398318907952056364497588545991689807451091533267017060238622555582702899956333836133422423162864302562529596937124061897666778601451649709788240155134691413689795342656721564996952796730443955795591407167425074374946420121696303702489033992195624443066668767585696288941294063677131860470728583241892220506090551698464929551241993249116209678787755279463206941471584907960393175071637462262981579532068381149303161958531377142260886513104149446036483300278191423049276454846104406939608763861340797423381179855234639707120124146922801780897298483617786477992305909979433607209309636399864831288845465306727753311807185949671447859102591002068787935490767127732265261941262624394291309739884009645253154220071247563351078060284117634290763717641354623857753294319152836311402709830715029316006312530990016013882396582155913421605236875903030261156331459681461365595282508248268993787260574976130409470364980894338306431129317335391569178834366838118177633499793529715774572507097646075295363920678182055020581180182886866751177660541922462441922599623856193067727315701893338265475171710701027983088361900088093918599392252558110611667956296875822114450376702519208156777777092214190698835459603855777736651972065387871501126796233561820329534222477695301619970356571309669958082860038319925912141552991802945300229468648158666049869132419767153723776765972821154799130088709283530975862971199264715594525920697653780935426138263646240214306531096923702206827469528031616831155691845949282139866684181136057073852775073572096229951815599182594468219919788943903662795989844827279733573695684991080754142970128975173298499544052089887853402988244239972145801728714099081850855945817322958690325121005183918386172305147389551397098755401863069103634039058306823127319642631190001453875178324554516160833469751235009932954767395677556908399300232663870185757773699035467891844668431525287661801991410344609308373942149537564029088858719366202147968278058204073746528892342496721928913526797919630738403528253733624077513438188238529782981914127146066423957156938649848687388905688252530588557385037586415583410517089906540726176145345204672662793189821632953781836260968154963197986201441512476105311655688492521209280363396002682710097303787741020178361228919960483448735421166824874496827946669083017274807093236418054172074834781207866232891731991835956582781971923670498576956690500061654744471180351979398234315046607371209233183725194855122281914926194871443929418635001215080590639657220827066794397004919539797872574284066053172527618435967992038877936338763997142080791106039910242133756619692612978307823105108468801625690794719316633250415307069305704172250967769010711736651419434739640473233605981665945564059831453938981424417264399168423420854401891811434426527837901655197005568316411087900122824848147926244218824366261624922597553145165730773787850972865910888642340380331447072930199186625499879734466410413064600447181898059343298059435798689007457566081568075989407568989518624361406484886357288260006297265453343390353460425459074118297644720028545252905856218940124292157724384304313035520716421709024637150285099440476165579497676431725649475962271860890598765472439332325948615193299248246087944081491415971164212721843403946014174912068909840078634390190246111026667999223735881289364568831187705078772438070773159710922438814011344761433650463049347190944458552444874883262964519452371690377082721705235339393856161002475043945752809947287221987283096803769045124030792551663881402327448432820008539412392225680319009822002632525552822079706525378523884723907578255782670636546647423693915638204878406772550329663149154959221722132935339591765812751141907062599173679004709053127710471806818767464310045087415151444948314567745161094259283087354350980628406465994826695729966029023987157760459291761281332301206770344454820266215492337884254496830877971203699615002228347142199945477408600356507665785840244310739776700321327329472015544013742293450494940076702939367440933149017548838247828245400393892645113485542403519073494308666842939260399262783375540077342832014614060732453309335954076955296020922788150673689011516831548667423394594608438362701425557641742785672213252690619020642552732905987137453050316497910730101665052255900224654297484051798675486924841330364173865675523427222438712155953761727363838727521310371324461316968353670247403302461264954734675804279463792924967050369881741200172080460717627926180854040994192052008874710509463698984284816921230392172778216421328027053313991800830104716398395762230998090466128001581994588344623896241008919462736950058049394212961695274442118956473352975666990478168887957503290155332457492457956577903797243986364353164237702115625339452460640899437947925261777036847698345404612177259688200853936215790991663740516262121984039299010118907562814252306978980019147504157737118489561773822358691790845248998809143621255787572208735873419303855305714961774131511571001217482901662560047509830557679189446919052683475504283227663648229662973383666965992579992999868282737984350389137207196798357049469241705196368963247732585789611148176037674229373239199365959664082482057727201240498299796394043779587645278239390882088642763411858620679922401217511059740814477378045696973303446504709118729831370589262757842230884468333657518973344536984001439266957717155448908772433655507789602632919330060496722624172212851152337040999698134901767001803058798571421713233358031560221609072305039025087795209891814049760751584103025158004829353724446387431244911409471109108434080766344021550095573880820624130848807329181979044753477725578879537938716639251721121935852866940251445791375211336307703253839509804365627888439877018716743725787085395482539902283618215457881481786041574148608537266119461810311949746718884666899862327281120170861369076380872497173687281564640933907683558196459902354023715114455769989433563382731114614992678734401738129270009022903356538041477795382803202705075491671733010122546871323508631413146681013998795219886471470900753547534539668697126136521413695369210737398466431228944415941783644889681917420139589279054918705896919786661706357455706029639761996563020337986949061583276181670991721059588331942768202720685717928145354085936375658030653396259367505647638319870680067131900891612304387891675338654652138523438871807965363260168224596396209282853455166793578350390003653942390388083407047889289334641803664231232781403400655712115617308642446245274123479087812005114946074640818964220702964832046850987134241100969476130864569457437919979187128835917156477658014327134747631651538914432527226513233765047514353930032136390027182130528505033648659346949607031331463907676668224427739370742482483653418781001862534355290966955863834900597671936151136468388009759694732605856339474843852034292746393249724541138092352469671289902972496807718755806416017598612157137346260426117343076300037363568729376860930246551912928628361197257553431499487419260983767772344848987900521939082111457049175235434576679898444188169515592205193527890322594526634696918096833522692680648773477852865662645088237785658347197855193212627543798083203736831024983551197737718999706454220510198885567883846624617630432462664144500078198744971779339219304414224559086724318110192116819386538568228498857733681770606680231925552355688213696318099966225078930742761334052631274244778668893306600988762962907927333611837790597036295429873218596008021204218448426735479441726316464166855916767235458994180894336258005982588933904560135913865708337939952097563060930861673727350271215812165088190956765281963743818176841174041309990477630785901904779390016932738665625732939369688680457208530044923372638285081917366088769219787707276319711785033081633727908534306420721766149563938843247924720177722034619594906661385724437475114551986965787467323969544271714453998381977970467175658462923734626357958749288823470983426721614723789955787927597763041596957980227692200951520476627759993201489173017990089522867017317518017016631435193357015669884945579468872001396921622416223137560516642076118457823517259185612205398116289851398945548616127045702034428086614849142360195144485591399798656689530266083691356526823224854959435256406353354110492117087432309281944570997829606326503798511952451418650522672274705537318124942766283339499683533543448474714850848274669383351396697450709350632693911815937956531476612647024371683974114992696152309017901946612529503628676016541377444529165268231132261676262854488054228210038644682853958926474229142519891249104911353096112875004825028414559857271232031255588913945176015214043544887590356732157963389797317593905896267672893561498854890037712332639147418990287554070107202424933613051667542814149180830024073642860966325725122275495525236048383960514109538445472328802145115451425805806437867707127015392167303466647111486231723566669079396830424767294249247551751322427378592317092007798362644968843795346270207203362135810052860566995661270332215683237629975228953291795461105098436895505804134782501315249772368345763373220722011761884899252027545739573571080800935079878675407550466240870017021881280643418487587356413308811559286038549949268111111388078077317909444904838239633888907946174072977132601028774342921690159954471085598053653558592117245747827912083075846559929535398068571181717815251323588589207120139355753519312066407509942203128460471603383723684441174482112866836350809215123349532278584726341724053505072504406435094593467569104387611437478637114692583521787771812047659358004802775934033052739599438842045830173202004734151928579970674045245670281189716344611343461891295782496115136224378039655459440456811924643753206141668101864955352947450750034849231896220900207882013205098427893786396950725870243608638999910860412192283117795658699731240716302524380718652346567168829721732753361675227423108180216925752126059084156754322959913584314630224099485785556585785360940706711387253388066407206348265466294515312867293397990635458080189915363803758203643867487729758820592056074872807248200988617256548600964709317452773703634546321907463802579152234532471311767402060240491940350378178551692326343875193341393224137516420608153424600533728676905080538990190129875836814132058033805684968358678200553690677774934015472212850761532120442092922200868835939296483820904596869873812164459702743229074524228560981837778653757099765447135748541937061213996249370034463388356259805069947685218820153501779657954193819498067352856951954927409597597940053048040602999981042815410104989631221955033922680557574514511514450486448973925345924394172938364292301168805965404096790528587167352553962394709783747208140412288886752572061803179757148353940077584976145708566656126713722531042993962662077697923011547455264648803483280490915120637975958153423713023803289078970896534639049833047646119421789589660709486948121892997439578808625814891554978022485943350358695548024102170755838279561015931331695095679374478197355042256929080756481376077629433000342160375383245244131077307100349247506343484394749450523658525780016060845578731784302346552286429390472312653033255697440606789589712801597883372867547470949443148060529335696660879850103625356756831885175693374685346892528210314228882038638668056839891715002117241398947188009199929413564567421303631174077250169654327504353186333659413871908823864930470541935443208328146094540883419332750542883558365149680976431605214016121502285648691848592169582380778551001527560197808050179775768693066485851009807413546883172616014296855410057990891253062897216321423806361297092526262995243854608558713304779099591750503347897290965856825696439690989207359169931849954401760356557637958222108811470219496468565284798783903541968386500302655382644047040612589010977017922942906043335231870274294666384358650820516727404748569191435351337541541489592865990792313838066758227062972409646380206849850679287251166700328183660804924889436808937197481386427608788058406494801619814716776732405279029885771762825422723058888885352840254542512403854267878220671509083197522273501220299082405150728833471187769550854373274514198908718764775629644398951108229407397212213482412414614735697607506936122963489689675888134638808279670047898581591026483888961195140936565626648747131713593425668601727000442861399385103221191258868769833452398201857062409952896091143254039554123709200659201648328556186525402613473917711590009019484268928701769073377644790524474659681441078903548219033043788243678574455105399376683694951639932182794387114641995532384508159511166848957001053343728498514060399813022048190936728672255529240427469931438289330203811548317276179445838833927078553877327059838272277939253481049996170549722147629594736494871506407223480584830252083272495026204658911254406079983811361225260655497022326211487598480321276777929829402501994850470801181759924007883062083422251718141190303472547901042161421829549783451322406966181602772263051781651652986162115440642152334353663804328536882923799344805137669948601640339481680759428662327341329351063026473080586635093441983616549316719603346742249509404656658930584129793869035856830073371732089761052207473432683357193897464310912859186585226080124555539585011594553468811648882159175540966225964361322716448804945825612367052521275067236077089189325931446999289020957605358840093983840167658452647091217561243744132909601198136757960124207403752665536754019311028837417341139456435802628241346447970617932619088132022252960504630066358159858319486632634737864082631574644230222048771944722761973707957276479914341023151175178942317730376619737787956660639464074217756060390979396344248549608156981293015705887672894662817601220624998737371387560771647536395840345561311822489808481677607439344946158501352016971489900144489775971558462306623803622443715049765732979551051122386514603687958200730200651201005677945763926308877737691858513444063796284489548785375771577853441871185611681208761633024430743297936171077493771608719081158736171890089064570896327538486858132659045373389160325806483984090321312934067686756111959258640783391855458529964645184740273196831144835584320809844558009503625907483087825968275568824871562388068697240575859780008374881725166384505418736003442130629796423221584882445407759249169443071201711952745888436943027980404743613437002203616651914345572646657247445522165746833194803435402697829170478978278418138281434163300369001308849970902433871442463197014578894933260634463860767675081272375394825013120433564145645153379905609519272665425319145158801335558487801181863239935754052605700798945120994919835569830626065973675741240239551058279151671923694589508554274116136403935554628126179664851277301487084258804285727878870625839839963758600116988072396562946993809837770024835873134083424617173109316293467967383416451051361617232146842917622978561907342226946078579906848525107499422948665815678733976942632661168884639468084920674153369348935343274699302762433046787819050213234315360554376806529145444477578717247387912289448025862045469275698233823624335777381762632089380629709188189979178466260672367559750764883373164368785465592977848238970170192201211068956257753243702674939121270009001181806737812382664391401625312313256626285720043721604994860872500881694256954836336228461729480293013460932793512413775201546257745362128541839774435316589399190588354681051226948718406585243468274536017508227292970029300215364463407140456769244026223799556287052595136222852459197679262934169278508788981094726703910054400656327410586700054727730530438335500278457596885806521755451710316726345640441857917065384202399683437946435389425877487496547281939929254467610790754406697955109515824020053604495202241576539231689917226513423308663182243159403630941443387981548739715187065443618839815000561019282937686167737016072754739455173778741324116694694258607339015144523658851865624694117196950220454798725720814667673373397992089487812870009806586713246932416795258137708919018649157430827601072554832289251393356088748435874084881408123928217223927683782628532816108314722447518896628018780864102599779060624150067735632018171949420397615309512600039155100417510231685007272341832689783040215535280756867453033514584827417246071012461635881724391448383091039711824891402311981281723487066061884389509961148691458731271071038248046033083344277657356727583068579509974505154276307672301835900983005406571592414299540287128130777639027382219556862310118365674805509331373948779346658244421661148994166086600942225317215161495504837705836937570766400707357826965897167033406871865300522972221972794544301359330219977648488388900466723313642221115466289423278652911676016425711177618091218833910160194327628380936638798640350539622315445537703208118764677948627238276299853310339914439498765045813154698574295224740533680072358633629115973170690591855037828199876531389810487974970939945171149665241540279995529809774976544074601767642336300232667268595573909132295633815522907828686276329788737188258325781638989480138407190584442179757219356157153903620828345738881330515894978175881747312634618696937382482073832446368348218927132474911565912409265422069740303275342047040830260565120123689381125561198040918862808574921846884699185199049890558262696337684157262789913684713855457987934862676436117965206627658716681887858386182682685519474633677185570348373145338444886717813819453324144470167118247530508964935067559477643628746378801566278534554449360158661906225515621540867033706107217244479463438029124554452015731525716142207707667186023783734413857626618689966933042849847652464003477856943090173855503910405980867972789286435688197039050709507789170847421065504079264473694957737851372570362909965455933957350696810485633910641851855304389693245906179484552594005654432948452231931659197893372399931035070247763340424973030060481967015942561853359511527841612689553239971078296317690871008763323882985762800582911233988214735514533180260404224266154749878034474988398730332404927447633984271239550049089700117399509192829106007458668530025176064830499149438209852615129018362106958151354897606095640550966245262860530958651909736986342169100878963737070964516690961935206049817104446711773277390151295757358125207222880855986650221190094732545869394994171221530827536516627043044071156484088534484916620168411928022523402583665165125123932260866146353236592864229360521030165525883758258731820276898425063974890043978591719851722757483591765405612171870231796306483885073374398649267121335092007091893960927999659921147715707738777632312379250918808560607584765216320686357025206258191727769098023591349042754334751391469513658512779421968708541416513768434202067979212810678125872969698597581736180782284285729640333591851391224590545308929303202738373266887111010568550861256365650871880198030524398730336061295179585377493268672503298741184915648319939421910063508865381300470029413927323321852895718474274954915769835377257487987175994828962187372958790538002288435744800482584541152876430432289018457330035856150324205287661283689629471122998244292668150150805235467356362811662330554192425628759962100482047949039099384118399430052919849746688253716287383039313001411140816097711680697690031469368224013180639285372710173269894729019358494173792084546498783672661576511693540129859245244139775184673164802274655880889004478992324624592915926183066900543707020410430750036396705872569356090050377812281475790092432667989052304587037980674303483881609427126774974193278676601668939031973409875631791748246185772233968456704783297064443739022760222011990994987915107309566653353652388850040145542624979318871661922682419555620867315860387427270938822858567369459642833894149888669879478549846794029581149282565615342049258032514600714432541046598777301353184189985844607824220803620817926224602664877654709944310763618270889097752200694653336659675996302511323172251284473451039641709007276595050648859679809697726544823535687820529426983376938972831804733350569543214789519232279253121010228748520408668890232846927695250217543158738221966858514036435496469892281412472552706111093453727641371692662909223346644786497199008026907761130327399082849101884317755367212518829640343557617464893329376917788178247253100958355935526742797122673875136337661003936957891067720575933146109094671035558174958020672591328731860203449563472132699819099188491864149987806220744884430110772572007318058849196914288321858527023534477785496601035588017529066414179248493243267386404293493449313116737032478911769225755668379075272157517591968876336584006845670590687052159893350884907864522523915980332733813038125621635528049581171272365530484815502135010538533570562319494062373852355059397439972070551219756870554447213976864392628901452990838865690297603077188323118146734993153326004982139260085471738541371108421926801422590189014373269641959899729967761254668730894382216465190299431614755663535528287887069905806962274072324912356003761663288432013786224218457507942866698939442935208268284515416675662494746527726425382304681221793235493318038040921979306517891947095100908713067321346138807432595924083841906775175122973752038816842834358728507291272757764522459532803661228616774108451886465517656960780098774018797290942799909049082859392514373008209161571492002809841965825708910494746690382629028942998440507850969703763856954658265031124731081967453674540256097495302247239107004526493068398452676928512858144096982814846492737403309279137875640647885473610577772380854636225923240590964448881452356500257835869926318846960628864780330002321848702293704923835819327797868089225802350565114184911550269714701349723342964500496722481109354837984132533965046101598022578730025963127853209413980561993211366879745241425828342327451898298454302197345388913250272018313484176832161172465621869760203359066704187000157529971456523179995409022619792255165563883708553234799966728149150115064963382297843405073477441886897151310513976322444017549150076901645960942724143148975885300324592169823550391136446769807588022003091722039469421217795975008103723928802428290588426171250383168084183617066109599230274641155392702419022845732971008332723584242209963574716937062770362030004056533344974009284536098123153990421555357503871236811911512445722526181671682975984980070097327586252855151233016412085729421328614283905070427668427694084991539100923547713344043759442932068359354879668432756179254063328825683561054705423983796265653476205350897289703197862501042259576462433026556550464440717975187287351582649100877501974910462405061389376558101481695895678974863800624395237974058759164343587765744322461385807755999280281469471222662836201514569044092532555989055989662316030967451975524657361119242394699683312092278466276210160310086191503053997771008574628148189450987363846722933532124044577948357013942669906810735801094103647347364018730777712566593309192296672023544748567910985234209967027548135043036517575528071670846396745859713905904613004822670295653903010443947401616809234705930113371166921523135762121177241281433197144075856154434844298826661450577421283443333261515158574985724583172821273621905789127810834617472137228308381722452432377875584522588781665601687445666437448449030920864559974634693655041893134395656197776640095126220078028036041473338091043163709981440772009156509136357325774485522040538908561439743588179056954445228601667867194040420224151465634256208152320033345007179124114891214118148971014366616359900729694161346684831712229953889883770480077422987826528006563536398861989691447719163229898566481171640296410426205694715153507637597564423160928824954598919150939372851685400939764837900029484073559484177566357562559955128545635762899916003305117413759246500362636900303280544140091978404842875286668088468740927938065109337645930457128388711574388595860493375450101637723439204242065666785987067909739886233529183998090281353857117245359849395481449665573109382003204242586128765634750082116919178188203820412769350647312330608184069009498979391695264128636644314837066523954429611937383093000481489103287056530489424889337435519375416640868178122906439703460848041961296517622170052295205569043170537572912913713071914851628074029960073953249701821351577324906167812028294087812165511731924067114930424298281358378607153162763998886740901858319391095321760698346992013790937798430942269713963062295627988733312035944533379631298404041408419776602627029060889608429897491146804820752566543241407987496520178330094791411337980782032002544844168172795957759794021920417021488239689201933605542936119471555690168075381380389527662658835671680657928783050374499871821970985870885630974821193985569428197524618326087825877403068997091127215901953211392392556407530451629619763413439691873615788818211528510546452759728738698678462732381633345264176226996638117892952757526944093485807335578672315239827009710308074253358696282983899611464383609445936152596456327806288451829514618257903662005005594403551783442399075921978202293629009045745531082076017210845848381848129284906886535914213401008824475037641052337504798162721012484596405283270173334964518188307131401938281932232311937616064969736126716606660823835525345831124124026920730376326701601921383949650833942736482804541376365686974544585080465951037608510676821504085005855418713032729779961948269570042500992661392267126650901527800896977259156701759619479115756401219490203706911485860609577168108225775342757223898895271604359807950625134357708971932575502022268582204817118873886609517511772469648586994685356972014303370511599927443940406359901417310549507496854889586981533182557971633940044710714401165620558951123235014865170983234199945508972843635176703690898539398910618541908989775743723125341250154602299470552774365298808290009407401253313719419841746507093351992344199146738742496909779633068861917756658157264992177254068891204949400386096778231628781529387455381979392078344875269445948151871347543650597030584071899902524836182112417449511623674307512963728165294807399825524180515673214678088307871988860689874064867409990454399014320550039505896094759538913622067128130421300088880194672609614923944692887004204015149777571098917603250186456815659737550858626063120153213516477356532558890873339768724997447755623018580530021527660647178092330170642037954464477350038304930315988042044384514173588273312098970417257548347696271010698884068700078784235747983010935996157799607182582672770915476581128286624186455064497529331076276892719537291858244220447824665439730697716418988442592832444216306395902638266491563943718914966010299438368529193991613734312057291281928368839087384334766895590405622642284659014573199794107022616595828854635908422074439261085355502549115155176378154403676826118422410217119779429284729691272853704345156823696558511443113182445223413676824471339791138149729885591152410574140808912004265309133150950118781475058414792945987332801050562504973925610962775529761738702163554798702438403668460573098580632030337779025130079959703530044429156651188699448975623992727788883153407832563158549412246720996821776867824972257240662899607444319548395037088100249781707591792603201411645323159691451913487406870922411662357322923554777661191561973486533934479723691806770430030843201382665603312788107524947355264072235108088506197912892980547513997466778643196119933803707878692379207075844716744092713290124131808875331680935796072531925230283017902893939263637735961676553104196302450564191695551409821543359112043819384944292064803531498988330380149889349142715204197546884138352970109862211191239688319907237293222662156389945625562497948995926631393247649110083382626682848382209371791959499727377862471563218673170379853664131963415843729130734769811296943347587620819610010293263834203002673448630266698510736086228624756124156277562403622285495544164941394651646421589206359965863059726406818839208675166946026639075617917819316430214990333470780535607104867408693638719717203350996228927264369451546883736947415918133782730847075937637914525594460487664030609181631756779797098610146064217635909140030138404885058788418219784610558281713800975892045982660061685513120620226509960994051146269155547189152143794991818711332315937111926556023314302294642277933371150001675092381593005110160651433193237260295890838266253500292206725985517994038801638283478458200925730596908409494728111964122859254584746431304531507735451585315183841012622464079015884330106105566594142768319036622130321390112682940492623849805448495270124856923040041303303477151428054009186427336496198128153500836949671096308551302886817179713846511548174196989428072975424923911225328318369661170460998688859459590228048253825958773690655211767766066936081627372237462718728278180374685080016376536055987154647025008801237817540029404604422503038254466039337886153722227913106990061357936509836450434186189196998202206158001709268586389961077985749540962430713987463963366375583649740109912069819567926254761631285239422619301186004444206264967779155488586534552008141874768056172357229103682423801483181554042437123812151552403731307362831191238023667635626584528798146807880412930943028382745973895620730987739001208324835047983496631680097748449830090399569295836835519696039009127915114762067707445894300552798164458180270238560163702596144552224678661476141098206632174317395331757518576415370026850364979126779720721977155485453933359128264939303959453297001365951346497142062346171808464259153763751738800489533303934298660377689165571272411771917763804627993225397449828563911192617944664724055906189659298118700693298202678687597874849840215777525262131180058575162609375431952395261648725913051191755639383060712476034728033622421780272901820023637098314347745777717642417732136238498299817008902312181146249350185549401069613631334172193373477527435390709256775021211033782324474752507633396406507532286320599621863363266761167995512106101080272796297058423553144115762863578693563064375560807213178497039255798153347923444361514358638982307950248320497286912276018771231265599573637158817434355551748703285367872305336366415256190124188058613580045858105311855332402075650759293658009183359024797708841908540547707693255498388818499294357960031294444770709558740006409783510413833525927630515807117002627328698690895026397218764713282442454085940038671056088814640364198195766695777511578616266271670221433495099969849181977908325606833376644578073783960012459381109846951911779711377475093438818690390755215464083798175261920323513361910185676471748779565434711693209262613823089073990281601908156114094849308205867505257032152335727310336778836064775082876211571193724585924016893253849050554134844983838250792901819242693973289606719714881477146595432254519496571599384378212493748401957202072045419388193371095303014401101990328821739482341088369115576474733382568951133793764818342914416610358911360677911239742232708428471324315858496435181691050623988403883075695961989248103294093468521818358370198742126720490318419111636265603784720768798047988861608189141068209904489438354604296349402948981334000572116139742088211607792953361979503341075932431459335655612804950091693350697260371039975818591693964122782879559072122986328693154011046232545435409946033132554918850746160722804537362151076196856113402451352814192615708946782678746285131859763836707104277655951013448421484403187409877031761591445674385520972402929017637448876262838054976736553793127275686427548940437956771000255718518371699990865752718584700338014222833193789032157124468272374857312453813890909638551222987440749669940321408726885673523725338122149204582916465254038775170954894215710202391608287531600971743746196873131718148815311936711339465016668357294140274950510429402283578738505892046651593288258204739130056474045250310690892240868136082462582930629735795626018242860757964131049856625375327667883763862278355259764513770726172998085746684903942268952938767934234306333536432395218741113009546419524538080663084963930699747252970425551670675527199311495362919561476809098168932661010214921658425490334843388279765207855092860061663284710655864382951887562038980864848159455556343890499302825413156167756411129473919543319341801750117408748464347168067657775649540933201852620652689273257371975824840737290737865936631547054334761256215278237173186316590733426611565832814399881110907944262674834675235725948985100409406671054079078787651836460948355985335632387024765314867816026069928030626838218930141434895955445921479259263892771278395533982010308614603437899137434891265976713542153608359965868734561774345177070208878626159122530069039491366839621554161436076033027655200719768883739697022529731731075734401641483762081902170201720020078136034922349637799092083842281625641311283629657464966379783920442849090519145143127029469078018656180642184136596478627566519831114656288977157802890266879944926345502919765522222879541558943873359203315166065170574804549236205921790756115452263797383115681012764092915615331571760082801307816973757685579336828032750458099744377148420295282587753264371321398625700564135640924512657671298585678581314133697120007549817046152359309008538225683320717799820278146176384116708431023682480754428118099064135118917427928104693884036513558759100083002056273063489735295857903519784298551261829875225640271425943744240890191001387916314271226625044420672406406241227474269643510939706123133482513372317448014572514510477859229134985640402683064426352109420735643615201456602677326176460474233315095063660987579259275406356330354025027187553925268103606229427847716044643685960649189814560995921935577543699567083165621567519609592142100257603526679382863213709240941695838990408887878573234741090874003669900220547289729715755375980548484453649863246863088698609720329475474489577377468763580077411523874798744061530908666054764676887563663413694374692573059600619853495763086258496810888607221097951179230756716905806533599003456670531542225527120560771325560400841749083439269893289859507973844080740786269521931401206042107554517027581090397150372480966908707313801372902065582158376452279313917576882688628343145954637216752209875464097807335165806924841335812979878336673895634455990277273332978549223319243703675899447961163184765756763537335661873854348459662179681459326838536584427071701926406827330755288761458436077084404145579784202636745870897616618316991305323686335640829747043335924375360169352849927185400860700011022657541241792010970320667572162732849211584956578245330112233038438284382042032609250185209960558910038000524493904751793004039445131713334716539495740297250769863002944133122551647760421917552998153394378187197287877905695953377366364707141619933478965304307984862831912513958860559065837796716812124644426638579703515342344005613972324661257352022559935334597213045669144209240513165237057384485936246740863078265314411341546422753592365185381969373909451242159852587482588390674459928464327610591400830245227957913202005482817458092645731199386875819089850620129042093412627582765637499848489615451523274745134627040748447163996101348722715540794899568511314384625047443634731999801470117369209752998071729405431809821063068347365276791278272076334142791535530752448738514185078416338987033860723745360521005824347228885055308521673260979984259459509589152602586229732722372501326841512652361465067592575526891207901629521176229217870858236579494203552101206910675493473267887140302709897586604755929184135171742317520588425250232151854400459986496551582285130702892502552581931986320177164180029151614402872182305891900212379911695955971094597238574634682051426752203786504497596727903695147170194470199432173092856765680457120412402147996506606034460870055206270016574975660958779608758472932390576032146464241160626633754629275862620328635661791941070867836771280353287929281434283240542237867671183585389766123092826799409827857013694748425275603083401770968956752147750944843790534426601606051846490927424437948636023562186430591965049905990166001661628863914880924534520381037280803389323674543668108818267994581108624133173693515262273841425494208789270940145917376409200837236693363963952273177652605839804170376964544347985127824204801551817376672079009893643621124913862343368214587280849366491778531792098308708986715100068680904022184204451912605178095359694220807768229137591339497786804071499474571463132980134419400748407472252636467629610415969243439999813073717735447998671444742805579477603532287035135235469584479620996815887343916815157471387787428961268910785245972605097163006229764995419622808699916996323693000473020116909101447440358773317816150529301232857763208588378087441311043233566871324952066917389431192430798898461357615008799778359744715764932948474226126804871338550886281132974931315159138628516834968824882389251837639164333831065897789129251497149934128048299956704566849685339354931665699952904675716170503776482349036290917921554613135829554939780939115941341330093114714287329198104968114069515568170679653535363023716268608979430869637356291112238602561301006109532597586345387712818942213768060325094509073940177730297344222273296582296728192450401929288396605277304002812703778610894458385107243793965966935553267603042900239623930395509043138617199192056696757609588338295162855609887189242775758542670174979151250561774043007780808537748554583266258952395860846657591771894247453371455310285758647255086440023002011652963923093221132941302124235441254478331385866775693191522740678819811956120247665051314685603768994808070248178928903443338453665349440141151215338078694979249214902505297138480701673958147700951274908672768232272932955309605062370534353740057103275956242266818393046851437820844207062777545691784345931509390270463303003613129503346755106870343572806920714422911544480114173734825329246021272873447894612794829761121658466994699565279040974728863210479630425060685237357604956754819320107874684367774772189465476838282324921528666200124156940724157904069538340536294967801769295122811272083076059656419902986541621112295438598089062756120881709194345701570089556767030694104129884347053485588248562982991698352466005560007990240241852871095728057178335284028193234615225963314328543822206796847380335638767263815461898789965942137868938272490260719005390987533674895996482633126650184335355092606285771088677744421818236240987536077878463038552089492036272832423114016587065861415311200598629909791828108588645116468161352311318093068261102358862279104486606426390541411955075231146385191693936672218885282433986563376169641427490412431789534928853054932366888153882271125493990516341847564078351655792461069606667851284105712367573136272416376789780644981324768010140943826229907362539099396047714168441363666078005674015136339492034543635041441473071819434193313769634159767708122817018031731839572967044972407625450986157404659676792621466329454887106059375044803530199522607861842011328113159965641636064677488609828500500049473932491495875086232365248117898777701531706035113168098910743953899597472356317001218877828961232025041740952785017914000059896428418910445492314140497967194548411286174093674225632982941531404031324363830425857752515631812078320317365500861530277380696074088751629577352337355188175043846989130021433888918368910513588751330744447132751168552984453996248814940116299688844438597005382772358174558259486917536527531042064675900301716437600205641522991545895831018293045724282183826714806287169215105458366126443858170598863335985031779110541406548617572114359980334351795797974968375338713071141266287658845909658670980313065304527838407347016938604375272411002283093517410312400253798113599859740162464946777019976105557282319008378246890663713083013860330273401486974792918222917678021706218909394473736578417277591150873594901283720554339889655805926458432237068382049709721067129628246089517200268839501278991914252808739495684807930950363258262729534304725353820932849452997540335884035987705480516564518507542993106476391706290485467290962631533424894572291404198766809354492286153302829512633076255414882517538838521234120840202528245456326843412265934363814530227693558236742062932214513256946920391173310430766021983355440711189212984464554269370397286517506250708311071085907765375969339675423968383455662374829746090374426212650423567858849090728888872776675661086052199182141629998757211170079035336495463065641696801154791706512751275673383077994142613718678969309536245676844156463380314145633374897539551483370939093559415798191144776038629816899130430746794710221575818154477354251593172278491241191717949802314416261586888392404314630093450402547033979294094526837200732164823956428089424942243513579034766162710692588282569099166202448061973561407503104071438578604198812738692575871445088380000513393706061288396994408301621120233496956320326381781186695569836947543873540679147738965209382672954961042570145729168724433121758267269242207738311663531056326106544696943650335947420886961680300467155417479687414656754528321952341059488013839801390548748953046483087482159345853201108811353445814663832591028201944367475122252963103267489448348552447611759330337974517369107860489437947266727300704880886185309770566568674247593402472381356473711453234867014455475173018408981367540041771282809193004774559489239215329059153637368834064029336430981615617291382036183032840772168453094202386633909927383822092147706934994362393970514875633519607502739948746595409816678824096660821882855752370399756801187830344205620602129598289382104688530513696990968814296285539245510217993560018939347749502972592091523492165697096455886675761092309248158270739066285600259600175057897696885368464525683988658846468671840855453493384985740040964988052420021508223980797401113945649314235789721531394776908303281451655591462818593785758132136322564580872260877129623696162083467451406535235704762654398993119129497261699562104864800336051171053321410912204414774602843739488360644603433795956039764626547933837253060237063937385548026486485277410664161233466335559227619121201989411578593131815699438360569436784098968796383703769377304900532141206701440744962014171188300327825543650802249132682014856936199324960302928796257241279591541242551325015264100999976836356677977075265211398981811883590466182941219737046546381758334188968364914621597552589096498236398501718121375181644447268701153716116129094185015014130621152732050551295982294467573170398606655745130731145148265841128052373850299099379692658617745094329969787544313671427914042398096604538819674807660197802081947973663489824576797371075045969202820297279697058336544446131294011004277847059317834782997274230375239491416054984782925386107861240172189970262719340120070832409564288035049888019559318929088042339660960608388401974909250552784903507407597654187532362664301028266539911741988976755024899464152232366129959026029535544162436429203615416054798296533477308416014693744359304803956212896527547582059538209981995402128422919252594990771183657554696544106067251684139324027291692201633809512409361432956645058832186360646057374709261021659053517898780410416221188614171616112850896892013481244742232272308097196907688870920489799155448311544284840399100387935210999300345147905171412859748666663900630045242134499366530316179782321250956328171440092731654261368948221625931148323313486835026615125323190964981595944102528800323736583555807075295281413920052728646340643569581079076337339043721614590627353057805421830617379964639395806210263215704630342924081955897085634026493417235250031066396314569471267943897168338434462846690972470259297616247703711211263073564073698632845289989054290524275050819610350429272177489559147502566590384316515367684063952392868353129381605718890078427918606330974765527673129091515965598185505286914485821026556530398466149560715125339825450117363848336658223739958556947508003117728662080926433964590204867035650853952692888035557349974992463054103187881071871779267818089817201810406018988402773867916163811928423383273601882026990630437557979695240724878342912642389526943630487137614437738539663064273713571863841277826208362973745997563734104640850928152855725817948725200525802105287652418335247191636349825550290344217036857756034207468819277466815064068781812561697219730094029886727798039982731911343632990591168877098773111397675180808492423121785247647966619407737569426358653686574055501184651993916007667446936991596029802006906316645811155263424802108664840866221556329938784867630842426556604978694048295556384042280893723605617859538571337505270800632818144134576062413380252002684521189801799102095017446665737636659031464784620754498113444044756831840515066099936459520144343496648779566920686806749787690294529947478577540130459535589675962677894970326887776675221986868427867931898267655112654461236607288624628148402091278753204122959958272151710301894869329788197852985166731507989618081427160657272264764726369505999790508344849298009238923342695333682478532138303062588344234823599002722888703946684929536152726749276601710415293548629950946870372312362308602064109074429123521796423025031848834457193230671203338596556744904865967786983034948005098389798192769350369376033045920892507833942334942173191546283112499517536435609354061504548213172090150299318012096838426019396347925653816061680478147630318677800013847481214744056812738631626604011076429332393631573621952172150044297559829109650122972645880058651214063101730399219133945946152725242136735584033923674892353472085942664829916849359480146431728504223823000702754818726820382725924584925421435413116534161452433752960090850194201364012914390728416915893742345684141984902359265661288445354932345589584572761958164539877246884939897331619549188398619756412063374262489675885303163449188576024131246130469205177297288761174029367315561378271824087586538387237361878530877241238385061834764206578745694204508641337697402858917710084911742005481439659868466335999689594460688906147686119604025616716901039749783414326579607081639640762858728761865541376550438513463305180576769090400567996183328329165633397395625695576129981190379961396559954203000013356781532999762891326406126617023201456062195558946597130443986462912231432079150875837828105239389024010664336542082662762984352361125880145196855619673514898490507363127195789909099393752052636550892056821744329437624159459417585342659092582702127616825919775186362525427557995113771304067642177068201661463371658834503450560654750152060976137498985545261770661045576480425676177804819943510972547324433768605377442613041739005226105909875962820785735255223994012393973926834135551841647651855146873238265290763658758832467972051552323939326047878079267354419468163165860366005124731155159660020793142518381915692522742566613317377890465695374793446160910844160463482919312243126808889122212599374340790267373599868873008189188279153634704944115661958727987631705049722946382011726561371289829212549422517808960258332533173823019620437694126596202072833979559165898323805502597790829986555607957480059819679188805812416302905321600307216160654792357733899993696430529036998982383139160447645720146087471263524551071278388961500061892822170683197530585359301602000342681754108813415697318267148068543409705551215863503462129494240425621219359118611926150348322230390150450782121646775936351687100897370104554122675511927400031375956166774482770404333306393592988313246496664962944106046415911709194065266873737146064864223327081676575120488360011109035174871961517016921215769487926983939267443662594118060323236183036250162923398513627988722156921477491701709964469907140822680000512501576695045315221076340958830597626417181718965015032995597865101829821334367970329488979043913298051828253143892606093954611934840303952550944044531688773450752233655152812637948475021311328860398287755704644057008169146495561913829711616085621293890655772025114241450767595422088603565192133666683291087073131132893800571710036978728779900815242256019121678227780069429997327781293954388232356160053942286422062146077077651367099824455862650583831278677554423522219918149075457402912427523250108057607771877732973376610526418920361945000288721581688374157273168397812845511590063571226016975180468210491384786835641576404122196359993429797169955755094903731062429140288741853792885048075998892777754068080928830269758382063055633814492818091012446671090661473011505132016772587360224702597852454844599355285961392440017817000045266487907678937854671356208084564836728422126911807063101579802437910259318955169583289282674615549873108918922961603132907483719663442740186120556622617068216394701509445648794813810799356325760831112277387732990041374715012288368495513021757851258650405216296135073347876174001262502382839349058122978664122822439505627762281997209640190221678603601232199953825525448252098614052069682592338052677801220881813370347267155038740089783326096300538299546710094737301002794555820295223604607189269904977507052504002162125906754046667958797707949327864773102534590394247055798439196713012011617766970707666512516343024859260172884765378845372420251242608334613511331390430077878974468687612073957632335055097179515075529964898418443032637896203368177062328074840155457200717399363717478473532401565583818462830871451952842119432813562377664730334476389695051359732525000511835668036618873546003100627374562656093218612688439037219889538080182267501691148636573554134209813317831310993555091267681238323454736951367556555836650247548054904339749072321505690425153173139551438187183963865121091986569640975209077824455138004446246339472610106812889800449770130257329935189805963664156234999360447332349693214609184773405636269886484804073145099956842329512841364034364226035990345231158318610795671019271322709685204533396564222883023838736170514406856424918262312734507755864083370360504018631897791340758992463423142891888729916928860365929377450888459686750572799608454510944091986361063992499095612047015562548438587184248831490901486595817609424464901710178669392630686751688400722738450281022742525106853149397969409709156968658689683668937635133189802891825889127643721365719924989477964974975648992288966252332491474307168565228730767662787353620943832987258394932955275160697614400590416606632027108897011612678317287467081132597520287041279372725749923115080602998039728649978832289162278698808512712313046148692014815495243322722837047435518056510428211332136198195217097890155277350180055576092626363043061367131535632397114530862750599039904385332966235803392367030809513577995153132245194995350226862907039485621418829690483040803526525915604466344305227270041354973796483066519982408939475044726431187327148289649611334584302501541969788442733001013885075055848122291590483786227995761132316892622432635552227786158520740424285346335856906514513189637046742431862676121653405862266968447658337630178989757838895851561330173627735568130503987456173189634601187778237273514807442340116505209754478480752764241488154146297937801456741339797595953815958339427407443923239734898242881039693930995520267808504147778768147201374687302709328355597193060120226155227157740117645609953945325168991232875846373083838337452997093762407199147114684513504987905990707049914697030173973285458981019212995301052693011733414648412089507625918164170673986233441725014609898767873829175008151446398946320175277546253544209666698382872378218692042695838997229087536114474208662773406299821766297458767283675599505648119357063156410215690833297762287663992805232188097404625206995112683273306949839595404045512842223479710919616920972482835039243243469327399413125043739316410213821974983036060217545755966476424807683928417962557877763868026362919127221625353496922819015861884217600806304803106048526101036485688419483410158621798768334743052854090314454844134260281876275812999354100909799080555048772270282602545931264587914279236270557782497955326324851911801507042409587562801452887327302728224692920903389669792785465090323940928203653247505967114443577562256745962818221342543835727909429846466314231183751966232283732409304742775854664869587284695988851611178868475137265846467277584350609521407727338356230262310354397182590102876424681992743198512274787860257031773983571574236963164279596608375599587004506657543838374335206104567469363036325841470153493855146376818077063047754224395887163297524008516023900258358988753705533795578461296488530368214257494765092215627780686568875175491610858374022644198533659086719022626472925522581748365710647389019635043771403173372756225582164192144464492808226949631008213080983104757669473837579645924507443635507805699000128586012743098189768543721829053828176208097494881973048483568975727609271793673897456029963407962554706843513392599570372525830026469111354873977238787764417272264410238927983294359693867804435738019729379334774236799782120855461254817536314844017294682168081044017213107091254335052607850572398739057164547543312027876667158984673275930689747474585960277112786095022386059946767753802653603240659443486043008841110459033230313959621668107109433824170876963540950674700587967024660946783729389170199791640913117277064346341732180570791411010355439816681190761216155700025265360639664930961837533498709019686916947715032868780926812748564923814477287621077067098409759747976318320065557375611162007641595672770790173089726633406272687365666301762364399083738994250830327295851900638924733450896048013075697899709339561162699732347557800280917632051915656213309296099010947880365344981429232641208430037133823946654779801647653922260120545076557383180997214300380299289467154630145687615275427481360679144069218068483691174649092096162578514544362230133310189514846605152772885309447319277657360736496106810399016911577100134967551400522788881918255193323459952967701235328711788145395061073991032428082336897750324161840730097733922713886414456376237444966516006678225318012871390897400752382524917583295117511281081706997651470378971700367001314697821761494190730143556359977672739208503404280141838902836029763301890606075072644362265120527064502284016355345790612422252269342632673372082711491313153743973902464127747916922094088117003310103861443314756757479303331566023323004901838419194661978208445362318777227754082013326071987720830137897049943406089150793086613067328220236174029331924474057456546296707064294955843089834361222513063256475352165101406121273500909925373387511350158470828610275693026435680953256716202226894030228453144776176803180565313888382013903424715376054548551321062080941605835124560658311793865806620549067563566922808885590048001214440596565144521598774120981236481799732377321361769816433097833128926798049704532564606874536048098155542152077132584702350035937377972527487693299862783303707375073455522006637555367609510245235184581326355889672324585932027628521334643926574193199390168341362052922541657719626144893252562767404449876276521902489797503579645716054501277657051655000165839834489031986798890876581804083561877039104854752691123104266370277088510434370417294720966605573859209014909004375998132869074073926055591626665894216028635687288321741352758284498282969158307977165223506338948512847526694955066827664970804003662241040639577806223524202618977956187895604558676477181923698590452006961247487090720350608565409868159134112949278708954073168498010272024564200733000070859737586320877843449831338874653688034135937931228424325678513214641697205844188510059009500907973746218385669760237134471587051212866101154809305047966411323341673000167669504142862980328986183131467790006425776903372808038822763619857622748068454861201800412020559884779757894218294774164944284764984998728990158007835014034190591980631288852682248004941801855910353194228825119846860659250447822575567719145272295742916645467955626226140555632435915062906724304363546674253167215859289722001290768848097169879038313095622730634260128735825698562507471910407646671198479391219395356558219079208128450830734490413639028009866098596033257859896912325117496014198302594919303686729386170946536135277415888273295662272495963125831311371028729018105094614263389286104798410104540695157415220646943638456356020656863724886281339269999052795140196163267580960876347457484094583093424362838259458583797905541622570095608648925855731357539780309998144119397399814242624972444738224841164563103056440729730319913053140418949675157511874177352803930605314552758949258632844156070103755147326259217105801485695422591116357492460282952158362469260799347900261401411154139362071327941251410795848621804317195510124464521280217500735423718880481830124091907026597472238706482500060828279515710129438127074347050131536369958525363266875608912696508676167108405143496384546834156653477785237969316892981844417893368429765381101109788137708110516620754132237971677753143268103135553042601635425129252149806037822659596643244469199324471742429309199787457148825777169572412707033041981017678223854377320918745592424685596366693848426289197887967209863989057384108373723863811667510258854158698993640627049638278763360087461028162914160747647724644641929271002832236498755432216831525304248316318068575628105347950482299084710068376855669655938356344451505458393574520368525890946464813816403620150289660667626495701863848717814088130987834381849418357120759515671044500823851906357385879960352104301546437630185041909933592077754723017490548466119171867592477244425412847842643786609141562353886651173225515357140997168663378430480732337094712797988897920571115903033199437143141631799430175581995652176101018841349577023761767936865419619480353801087683578030812141765849187713745022220182667299005017572302253538858712568741787883634206987482600149567853055427018104804862227518456066814930665414032240246470238834103553408206178153326717038132499056778686185682770314584414431223117599792735003033937129331027074333666701092709386112339177213993935908249918513411299565909678601744183342621547426948620563200414602193736694315051511126589448379865224907110855186084089738962462890048481706615305127604602485067535709811901209640163491705605990910795515092676096928292851412743336053842342358249213297124726614314835040190253344141314466987888802404460752507552160308953373391733306105566945823547672369941370361364559104195883327556388307611421958161085022874637065653868662400647499069802351877860798012940109308894881691027946737422950702357279985985738030934364002703746403536544798466736007703855427004463697250528704165128104592108923984338380285186216942770021249325438669875558458364800752406644272751529760834702194940854758343269723185442099615832273482791282135906687486080355479790081823484914164181288323686258845946593958314783391106212285249671403380854444126790473500677683903759463225363297069943720835866839412198069187560188594471386986337883017579006150385155080619508920133101938921813591554639141063383177805538339794028657016226902949029893665863711508879434355559667364937311687015447180937867079215749182670530997355878208515564949384640842276471466919952595501114809251183934638211683668716568212185429248955092808175084180861471504578268509253360907954909347617260311641948299030810724555191709492795394869818122203724665513655757254887828109272756793876238996273600710695585322537658761222916549391528494267964839579047801937623128736062323843910913846013928186746703950175035455395925091817801473352240846478898035714843004829939454502095602457171005438561848416882941040886174831387977718605528514397292200138903169545707293967927517780805630183152674630045887249788908764300864344117553379766384700445502187386406021850179424811672513202640762365705179648209832432763918173043936336967871294329361838854455633943030198427880234338807730041578346795385343060578694191605845395167810102608140702143219779848550165160766667415218959082625802905588251701371140711689255263751622743956002356309741137935840581227464359945577357682131686759447993674894485228556730666752023520152105479714697950204744229281743533646033448449086552272913649317262691031172639816752309276730861974084693241054080953956458940303398884846132183635242318510957634763644885072382033330427025141680774537537032813714414778705141624203729944706384343437782308432421576837475061608476439049589888562350359262625258114712423172443345240361553288562829791212490971351945007327242443296991733534381482555138730651849746621215001757982966716327327494954328727568663168722102164290049579707170617570398171886835433404005471357573498003852690630380868797041123866980780513234307056728045025466674912998330678987867381893312144257444615931700969509079892149297158382338078597868922105326259561332151858498576543622139267123983908124661931625162880033193349673149747958804297252373052341396740752872266043009784588577852352811656748164325718185032014731907812709022276159723681736237010379899145177228063532551683460734096001158439501610289264523369298740812493363058117025097073369779890867292704852895606606027330228455045151738460200616119943641248779789580027437580591142845554728970788158355952612951155904187764961201118803242267583058565212652517650842553671477764669254862382551087431661231997901973076032528636038896319180752548274348314761893975009910768983543622837493115924919378115230402601960963862082943706858446282320861011662600337898327685661648960998576088487285414990734881391926993940526053569080095846028823278285073304241381290358300885749748773679823296391272262362983209542926565224394546054876323485231702812085821986103409154722122115421718006593062380898537652397071908824360201531475898378120404637043221203061676419968382945573976113753533866399205345918609623373590588539845265134793968491201187649264435248831682476470156555924414207214086276636966584210010893601494989855144483465791484922894954750230998868540664178413844692745490019490061376579019890327440877755701460541924483441696424329828380596940110447105791727814422594050454149443991686876775398224813115405753002453172788823302207756183301334869014350625315467903691633878955185970215047904351126962140569061159559805776424113206649778773886035605031529846142422034830842522825765366146901743539577136027384104742956249677262480230953886460120897777037521459814369389143816868096331110905064724842520587541847102184268373232744942364489491261181973584807004493239105801287637483297925371059161305371487470997418162077365324227358614471197367407842746243578281396952924804923661336907894619407945810551291773806806682830773832864302491318747740129986202484337863035312758120498890707623656427110141133825470141117848369891097002488250085239096470098672657365320535627957545877552668293631550768337027216780688728063550143694350539581792333229807109539823347061898782238247715970211472302108238287103300395646338935470351083089846451042186159828899859830419951177224606371318471083996375976412886254369763705707041602733003262075322285311984228561974179541312185658970149390907351848374468766546710938736371223216425519923849834109327876179233072258276521689051163082167728938540728980179728482405378357963745237082552804495110582412596907217868680686041892246384667852635087865321473807771646396509656724390608512450066114810202069388883367231088268184759975252633057280011605405577168457915944196120867473285293900347401345079028871612958643721838429041454164610498379577350427002011031992007205203480074117584443427518206704165769664330115388144819064627176617954392525627105271970827365600838135833972201179233833715021867639712877438133691829369883651554746435841683259913506415924773530021228700388601255091095298300735601131156733985749199808620536493029491764820038824254579922874787986187499466577448603702591076248538183649350966196732457718490803385960844807123845022588902338898143474125733551182867697182193019188663875725652822009237930094451900028671964836393475429074784272821839703476631869646177060145444455934319455986709506913803770427639826684197544932132647547603597797676834772161991793591645648435624162473522359859577307531164711862768961069615109605952206966735459477915470905560573738763334612914680882252280763869238948374370678264986668526783142390304561617363434970018071797501834100347782863335516488919174241906846400246987150686118847593703141901893553520306597139213693546032912286729617175663208845678900878166486802034071716617601434385219006487418799542960678682903575945403735278546310889258849360152724656729673474168633655890435237739861813058921503597015287635887431210413980542923614323953542487942406605474777532624897500781200314319565161916987795754749320105213695235046344284896874766589547732672044724140460690761052269120188244327332054398387544444189783143911903144130699564647273258127192552684928965515075337678578610460872699968333269873639545462843876392455125097295098532321614713547344224806158850546664550589905911248965816810145193548625572270450294495770413120476303848213997511262243286801993033629846685503785530085418580114339144961592964678619744689661269116660949202128769405764918004918859717055741761992556817671021913245772243731848195964785373039705900330360259099201984846421903465949170383721454489759844788653640209296168380927943614596946501590283733537520866022677493877571421458758812298245672084988482803257949450550729019213361689929555608771840492810097490299535587647269683727878219900728733320585106700696738173735746314904352601725360491524443296790821740931652506503475755030504378543039697684821031719888469819078280807999257540096293594044896275804290414503216501819976220295988684725617742939202474908513391453611947757697345748431612708591397799363580925827595581384332203461145498646116529409686010897718244560053969988693465981506530545018507834095520808402160490812425115437279832347663080014238044650695977936239998619201705059125051872395862527005394770739436083236175313051080349991488239389773151614216014274750232111085804805324229893939314723790498614199050007292831088756658816934400353975135609905502472905610181522463910809147764872988900976577544626872699386689685179569882275464576909955101732832816163178945336910735654455608859366377821177250090287645401194400031182419654050839169854325960012970970126306097052331084040422445279710045747237560272694656369300065607162211620599651639004884747251088262218238557906628588026637672033856417624627300069611138584475957669796640361180021567785515373068223559436705709422862876541090972191504504955204768172303028879167583260950130717302469848854049093744115183731562600147655216683619859049086979565174111428051803745398438689799599842559817962169551636679377553880757993281283398851494547041911370895281739719051072830211846458519302778750584872267812855475042569177027079241228493970874506628735167068576842420866070874459301693649632183213860763721347469983026370866256080764631652654388089218542640041988579889895294621921444142893346011465706530561251931682143780112802404189392633422468349072774493302382447544175744058601500243136571513931653225340392874878480617432263575875737821797984749426268984527761423018380861467888021055898977682891410765394548998990919425132389571479320848651885473995989119240687790116472948773396155244048537427572926463318450698562569616510778951428775801850945894218131685196617812594920015682807904750379241175909395850488639242188691102103119999435824978723932136622334417962189705080462976588463129198181517675254191240431858122689819618001016318821447678017045756630560514913614070687907573763825631493865755266687215824575267102263235001980596683233875318383431907259386652502636826786231762413072617345435657360808340479304996925526392089661495471195767751658598232129394270701616190143226105732507251770731182519765193817895023104961541769625449903368804546983326508426231239859902907467081123732664030952444718635042271673541478341856463698361866224328207992515789400588245104252813492200142431008766224677916743724724872097639986416841953643413147865048057499559499546740702739622031188262534948845754576111160422075946246779401468503724118972171937377889054581569030369410293758886766868375172268371063251445671918508808490914174027630829587768816758665674968150939687845263917386866238960647534428838950850434717524643475188003036397231035512665179711211652518296115719365715696140524465730580326548609658481811107465807938663488713971794923826088985451610793168833796593080816420101459984970207962430769508604420644770128834736522628150639165197772209841044988119242641171481681795297910832078564889814819103644661203205607473915220964909758399827487386736409072205283145200652736279124426926230161499449340754319622242471571688497450518747297667635441173916753342280847599427706834932252763657536787146429342204534489679165670459850004891785428796948004954789327897432789284469543328554548541519141236470263216616364920048542359957612961017993385655736009096194560921183142914304636971695061576902362162191533536095872592115102347963031985676301175270837815080987236846752944285281087034481052075091794123816834508456599540531496837288330570972331181936046179890668475602703932290527638671437850697033144856050136939822560217077486362694996913107364609412951206429148087793567222457557940584426634131422042566614181356180140470514438761867743117886645221629936730632907968846161074919205475837649584516956641998742128705934192930608824846576093216080085045359874790737008832807267737123700678544759573521225801775105421605899915537044245792089243817837167518130538861175182078580241162321445544337760316654533683242713849548305375022308012319978691613405594280221162213077990144444013655224962083327377202657427607367180782043150361886925471751638081507494795289491208722127134681696872764560262975642771966763744831181563135810858984757077101027098589241962486457311091395679358216302717251207188425950209939590617200214091774748167606002989382141777212340915594778210312145415609021871011240793544726258693108963286345421251787473972683033616215230167941659357124200981737462510317129954846650574306002237901630006891517665047677023414434438482340758655965890524800607005687967883190344346882234125026170562993168306577231064907680961705440547379133508800529182003814644685017047837119235353309445403439534556941349285819128227567019722467356952821323782157666105410244602087459066087454513884994836681033605006786867874855339115461878393786062956020959133789425657708130167358626889578823707949387596741357274816122759632497663070728280564479408666428700531943464475852277714642801072124158902700632355015240861775808630914206617707531465572151258510745813230298524544571445839881582638528161212045304335282520439500239786925925735846785520527831506428089368389222003250083557090005394077757355266457687064958138951722827777753392910646960393587321627799188504589517031891022256013187031398708507740700169837812269102111240467685548071357087252225113803707419364039287884357426796796092966705487786311506971437377539353110675623338319730569566437245612225994927197682068680848794415592576543060933753378779703886093038018519723811477495630270550817804291214366335404977738945642922346229064420005719158737052675869941549506804173122163246466406908015670791031518805114143814300530428220201298275239579471686471031697074184619369596966070702996476770079866688784462511281767979716049301047956629968946046506456793399666616246950517782026340239699409986881505579547879162545891526309707297034249427077929635567645975599614901994311196032214821198740907209877136176867912282751121150503971999144478066587241969620913334164620155008812227223203534891508459503322185677496362891432696806104207131673544086477283595942966178811722851797857932621087978185702896290212790333779235053803397568099710754417384419114067398384638259887753933994886651107660343199699221273530070252458766893306781799442393579577235723155965057591442165356395882157978499499592377427232882012062930016138734922210580027955649222237372791995784525900189970814462277655376191095313515535536501626839365661316550558078520860075418960066037431765163875365363644361072856423234614076029467954823757824083957074340740947349102074487014691783090844447479994675417233498127165994685013828588116851912997030293691901708066942389323057027213481047777478629922690950023673377618406798215815030824466742599809835808313792244860409769717250272609327986663254200637896321523423595764042720004505179482030651718616262337163714769612136683505173546072216485219640184796624340134753254338717303974773211644055639201824381380889765803961138789303616760510733729164165383414701434757183192214209256588338964741047667953559252582976909064404521992545978533677445376724755599544826182937677547474148645124887725591223240111111157531161617281278492958220076351967814860834993302138471617338406619080747057910416837833280830055977897311481666917928110735039255633920636861903056557326610313194507077424639984497363181283552383598135028032034873317035052694299361504169035682996397732184889304488073504227957052239659872805113007685887045501741136607799210478899109978627255341123604494343133732366031760981546753932515932769516049562720380487499546677444110477477331967642566048843836519993956242714604411704802458796879637848609129026616730469769830716500310829029775394045560892626835715932046231091671688128277882492992240568062725453815709260849360727791309404749716373454979735093827937892732802289742177017650927783073950719132380648960246115297939980701121938581374473564787058153897331277356865496724346671161362851534326569239741849418623741477857022173845007192181361814976807471971673077512835150184745451820260410661060739273041998289185161380590165781468630865448133159964433363090331267456353696721933063906783181485992145353438047976250232554668961610722329552468221271098807353608647630909595439100003039302734506345812466141642744145985680785127543653457884087804392173626087760440043981526792148944073363598369130520704073260126580546853614168552240496099345583555229766390114568286119539886161384545440329765868181895194347458467037366612657752073020449365860622539788613590688833896609494742893464695075252553568112678705827708322923265369925102213941614652297106592140385973953489673687469300719897411692906423688689525524356493430883628980526179301048308025492441586876977285962405101180105038362139482694206672391387221301210422001071156019055600905617015992027090087051224681625428726955002156222102233845032213271582772098497513995559060850879243275878248728542755686897039745450705229931982802690822450375089085916328357485889752027962215375280699090905921233982324625273305843508962375951531420212734821826587525204760344224531130901945622649378947103506474802278671849825143314957327880637542428810916638256960849593411738506798428580064726594610168082146258608141550684777570642670804557132856367540988710850322926365398771547681093213729767750971745280004993839912844530165402595384967583369548299372269980987854494042937830882689487335183038177459970177770606463265612648904617040433657277623046748648245749530326644625854484721342343132937631540388342344582739131916957776764296731193504762267237644445618442417957268389437400972459016343193216968460862658018745075237606768137858117342479457146357478915797554724330463207092314395062389800674796944889868597783350284677510792940651375226666791453731316597107387752770180877337855410137555647774561017709772723865677482701326994568181666766871669537404491491628377115802874645723464954841845657500362602811923016519675600158311326333125500045367815013764593759193456141871665735693790265482046223715146132896428685078272966494463919561031433191387069634243027955788145849831917674515011732705928081762735194030573967193254402103897810055717921104010550820546805652622647071417877427182189242653603230338681427675728566099841267415563034928596702423044183442531905657217720410705239036991211367398308461438370984058576548518098606498953224296250725650127507151696155288124766659895961570221718571691952049678763049895137600505443610251781779851201636125596168767579747135140028959174710529658813150888365327336963629689890928555344039183098644701822861793624495632992939582964525944022396955356486801979222018659895797474000798624749360867093044029956646204470324061419247156589462664555597199160686986504759072972909691626814140548250627710648287601984835359871704026884275240018379564748615215383987818362338346041728658266454591274761568001111286060295021951311959980224854342100971259368948834697272803664911510078807603098963705031702587485834086245841887380460192028115587268580176817200660386582528238516947282771100548828371689526161356814721204922414490477811761027011185236162347057872157340148616858522450001727497250773055475311074439593966061594718196113005347130257805847163488416014954538015083264809604336793881041102731618672591194498609573920801396870834870020536033776569380829936482217942272030880866298919567918590298199490974664098907945834910097225698527496240381916803918172310469961013934765820369027132185863880372373199575443764638123603024490713422104680057082564571655675734427569857640565051964925274512679179188577111029334320922916033075339105594807629422590494556790180479883242636647153115837095306267577507418356242495828516213053113430496574279583123626787348231860524976984258022854572225082525176772099438428225040931790630600377277790685845421803709259201831585208197881397018470725921869326959773881297138504222668709934479272739011379737089775589424419447560894272526828169163606622148647167339076069758286962640587581701946058240367884271199804188009951225137981067265881406415738781097934960821061615265313085784681899082131803340458943526035909408043818281552265971813531209487599980747578180250662482315872694269129606079246401219218942978540254838824181587428119249119345683778591747072201925748013852255192602697417042344939052255600131510570281400424800915904904942212821002117126813207925220559644555300334307415438776001525366452143500648028724602688143434185741456245171414338925628990710773927202691973698355057469434913242191999316856437391591524728225262874037468819466358132013373314606895219376382129108466882084289412398516937718055138621777035816787742662276179523011042745769803647098912857674876101817144112167681567548054324322700261271059894868736333234528946192055352903265899824365391617489738267983989652464679126730196412772752742530819596594863787573640869467982990037767317166786204176464407915803150520229288925443120905300268529045191812762326508274198842972873903537930399741165205483918699812305874031436581112995686163146766700113741815515097743138245706395409475327056708746328075436598178244898085861359268530133165494944834306619112118704898469248368949618483172714150668524732169255674275717386344023491494837639739939700858657133115194608254877197572982059286302237982534999484864658273365880571769289405345281032852636934398406589146004018062397321656872718433391431454674279536912949064570527541442226619224450087459716777643607244685760186439604585842592851138151786560005505053027531316608965804866920685617117779546182308395106274618217271430562317147228546928175816830553505718215451429070661701970823556152222780450367161209596767073102552407826600842771858662707414420033441383763885767980455451337576951567800137533808636061445578035622653430325998709188393691419079945739469851311297213064029937711947187706178802878860223068932859156671991464050415317269894664805083768984488647758392515110156273238002783046996319231303693714656337167707870087235982421222568173177959272908443830415742681563288587182862328695918133246319536273533780044739882564564639610498245947346980334018046331585787573979790630144778631595622219143255008317196919778152039938084938402059324280979535732875571717985413701830287064978859089964831757690096101313324886538818487792297344096818003313917370080349272626951156749240888136215683098172978063942296900452468884203388412895323177543247238751883568927582948086514397357670387428345780506872857453307700736922610690960217776322819472686669628721270686660305619213717421131605040776957643245008226336524944180375959949577487521195869262939324054078113325757504110691458304759154367399328107687142469750568037046231875447064520462756161998377960268750777604600976572897613104455189184567668725741590020973187716736571752426373988494540186254467497006567136032918108210966800299643669490472107137835445836575524562228689140084253329852720945529237885879874238961371709382398560787186968706605468701270875087702711126788451753938757391469787848479635423559439296481556403888479013949826501590647647775832554103250384166758731537506858937923491204502218900784492969239708226020152775113702042004141349629011314054064589367865580874466916976706269922169198053692367472532107501819770849337194943749623463808076249485451655815951085964460728263437074993772662375516257235137002819774827648883443777372061111263765314279313173872229777790161612040260520606837098918490283798907986894474808180923061481235588724040856397924651958941289810033875641290498024251161893793541083267718505744541792194603613752729929301204563545589613030372708761933145556092121710213895442476172287309391512921642835727985263655275886789759780025380496159148178573795240717600851849529049155429309112846725902112623164639521559164088899422262611818283951726834002353991916841242765103084340054951440416619408210549185961937414256753696980644455671722899763104787188168552425845820484799015024342386365968066548397180795440472492042607613898520917135394113524991414082732832467582364104671710916806369077982377041759363558377724908231860974590194899431179358400260292184158821949781956760716854513424674558675585644002894916282672483375056610463926535299202830498074992911905242162407201365876462494396995156283912111306470507420861363597987436236356904636317523434950873254797957655682286959671850152432337655172565083713207716313460954797705002312030282360196468943944611903857364808343742048788132244811801975088196323407436320732141964122184175608504360885545238020069418354962769646833562643494254126150276667956087528800051798973651972400626081694542611653059605644202502704090540392536461796630033618675425447441231242279145737688205589823565795555022967741830615408702218114177643942559917688754341980904944273636373661852362595397004333349202591159983346288662541391250273565310854441226931393840104401493974782161234252100284849001355383429810978059162793317054154474977833823273047050626988738834430276212993430594019257385260552054248002236281118863177713366324348001568145083564767489154207653116250117338895073656998310654421491041474696886822662664808172557405472251486845202674300160488795630464340254468793399300396299799899730888957405172617548147861344579788579583260486315271923863099291371875209513467637014699999645019659305728114070915748849557422724184117796004997022066204785742022925334530844297016792724402314158610727641036924170006672148500246137792707806871651256386953478858315378314752491683201217357911802516828979735096374928880793327375528854591591522733141109546213372619114920953025713597988533665108364728411055898592126016887900711277541309727002861007120980756345554915070205911047950955782139602573624837947518680134790868076019432799388078304724030470489508174241065769550600616252255924578226970550847667799850916658219149773178005302430233370946820406254472779132245656877865599542989978574257394437648966085655718717719757297662156994541833861210869962716693701593860526808911340748983556444778159454630250956396247296629314510272605176303849201500712918097182213735552785671606409969366511086538394264357622830932169900349022124162815980727812899334798616626360497097704219264489567317183151159915428257576439478416283747483420842296043910024402589855027027550907283311943322083768449438384348381273446721370471945037199374800341805829966030924460746951345201535441967368919511435886826389974649440898739726010595597930440841563775534161372894032055648046459844900410429086682297355180352016232939770928220940609567476011072895135177793165803023681946316651314606657794660043116345899125808555211608875818971670671295431782898081507881757916097097585813061130044759682224148786714112563808049176570943092882123592236017608058439822820420376676797582241621703489132354904919582874501408488674073538741133509053199629064121034253240996449342744084939997449681707327019042724814476984047770151450859208195979969122840051063345468146090087027727885328972680801073191958214297818332738949753359099327331247008117518573668849313110488427728669774424833131185147263810245055274078251561939587527491501193142550197538332762341816965461589739194223786938921602559201148945209172032296552978038605337274411183848943562346700411511678803715691250331217302185557783419889508388484914505306086431517632206507649021732776038700877426734826693392888281105915949838744583296366851746810473463387483157253652463897217727380131403217631453994893492772989401967675019068709354076787872955549445456343422908980827715618715681211028608009245603268718945795589278182769701896524630079825122801476622062089341854655548269384657301586155307051430445080904399764914505946840720124239902161443283737829829427735050948708946466242403263627040869686645610532996924862941672360301854000812600280584871030914072946836102486079250836328555934616816333565089406488555299772493357313475576474328771581876734489839677726662095093587775607121723205872864584931854731173760514124597532169668703938724473016965130271169784827294203071064065694657074923706586386655452179225277717685849036751782399054752394803155663707456350554803244179408789361299657618749299236690380015385870032349547647498435474521550395403143465716641203828665401345410615528973097629777304572061707090072811879008163979080185587289386818834381783418691950923822733804041637677047732810475908782853590753022857665367941765535835022137250920891764738325940859231901973421343586661731736553550594324542431686242436384389369008228646271238739002314849098704850862065723745720512706768329175719671977101771771638761486353293297400292012202010839996512465712118418395074353148428525683937240372100227305508977891163718177893617658036213689675477535224996196194228145540238765387552332876632989674453153313111449964435733419540220673442614942058935133640153323315642180902955443138085721652630607606342737969519108431246232867296701532895251762511963315066150190695566173976748689126998109910754446656508773274785618551203123179625049469736801964773041488984010531785389595055601993401058863636201850573408338584094876207279431552897240513132670029278107584952852446683244408045793898248862615421421786733624934222636151589519037229272959676522222202464626516558543638379565814170591565879130784895098883451129910764322405903806361144178216155517594880753393052855860257595435470713518472122665904632004835627843007793886034840558391595791272850567183334639894889849327509201504176267568331512834463344169083046403838609459837186161569298414368260922058813300939768250817592539538772319910761274090362258902417261410665703408318173758855228751428003039040312134800379724157362103336196326610372814886656674710333114549157999462465010374735657979968730974432169355788229079565581542256944486591279737402896178434485412893724808865373870130303334107661189520735333811784928438534034177847712125736871849654278528418394266725076130893431902310339648805724510476076841829542365502311846496647954772072149691584058168637927492105448103969404988721547811101230867718481185965470887102069386881125981029983073340007263352099734189238169066679238737381296046790142082160235447783955892724339705130384585809709517699391029095538209734221811459129613371544458906393536015348443590544117486830209314749866343189297939982362591915688559198911306243891460307243643510884655018321300852690655119179812982744707138048439514772366832566741109858758896158326872200827252407388291979697666358313525169114023262478147173106906517093018349063613367186519631413900413418731066206518920625359612463108070541457555247592244533828700128146250555159458412883247806854734229775353597132253495493288040862049578261495313033896567857311463190951990999595173389769448827278589537630732048745794533973411748674932266031918422402967589182146800202755318606568360275926477373637200802796354082903867186469632642112550513818491383807685815988285465005770745514266609045412153617443993232996351295022959629212049225761881236165714564274387507975571048339686034155243818727575881764354622113087436774016161114633036242214145421843297590615578585263167894824315692640136197084343840986938305198347978612733771028747134715195893596572194003850843943565620493475252780903067883144996667765856954939602965672168279290510526029083985735551011938587270694615788312898783646206445126881193517308504758904830071803641488395131796975423478265282476865733433703241889654731082123843096223427423872940735261382001046421900451512784888349618498160828748483979706413007815890530299356794930385604783747188258194110192652230744555411698600330014587449618247946964367868609778656956254475038626163511774571721428578573744909069148075984500971083168827203438122088903527324287464868480661313226850551647982306657606643346443274259246335287724212589257945767445088177094552213020852762213151002247925587515604307267761610257356952951597757819887920949486307735862160853569879861204333530723736013422052134837674486583256343297647897899350999809366223114270836269805968405099340981136871437940741679562211456613765464285087825214176728539409062131624762846840483872806803827758543938289130866533171743448565597620124967622052158620738182336569589705458392498501148085028289113798573058179116204595530779877581580964646684526161766503734754919192244918861314442391011018205741746069940273057551343287953749638827527279091681269609633162080284179532932713580871714306178198775743141926265594801369108450297315411097769647284860106380485920391100256807053301059314210172526840978828927846579430410977501324644543369996503046194945072963560379666177172773110931412086843555277311838382831376827023535521923623684884581858751909412276717875549798328042711598050648325822212711682469710169694135379332710048793803353251478528105098527694533134592811700675713624830022224935535241329324335123136213353861429627286302159887950809054506342431344077839929454714280547810772082205133562170129546112016831511620788288241283438085142012095404979384275423972515078980381068379140705575100980406437925591785535316766209859396632414986156445787430117239390360013182713363918746881002646375778821085597707322245532727674130183476746861818049365008803577156160716897374211834308458971810712200783837818954012971820181083571267734540462918643813823966172260539032250810649923578367214716387513128320739929993005101881670016854369728854205045376542243838026072266963438301641593628940010509707639999334715527488555997787789345709918321803130390101480853625614609781956348510975943513613679598633052191265959058874913048457940670967558628909672197302310653967811184141599954744151479193420207196923027682398045931906692373258441552794409902156911232166829870961006431024401379473505695300008881894516200225193875547370918649470357626235806393877975935480434880867047713025071962047778916154990268670995289234459521892250147152824806073635316126261405595709499460880737326925831774802278069203385616431020667064252833095044349442302090813886446405090706063872230921521286957205607499541090880971955101940814321616081558475447754476896726991266141653343368347591096084333741105080695436177635512902930169639162561588401517393971878061566057711680612298045821017574613898330015911356294352014910301405993461265726295299412144210058635542417811591112576278053680989128910013808612507409225065134888454429973846814007566339284436644389652113484301194307290849100810880825508881424391304036857679366367570856086158516835698966953350096686445475606537051485615905945398059376398155571071928004178072565046582854071266511640821135693010449944955980325692547706045460897632856622649025513605311893069108314563080068301243431600506577776802912838764700007294065968493303977095301018777305391808602547206074851322046041857567670304749782302834650577284951871960315986334435220826821322284549882087735337084797984489581747509768092861283866612384222427876771538654514096136005644560705170767918738527351636976648612217347072194998903271420586896390508425856121784296346233463715806574985708249460360846966650542082614537507905498601958102969559655576114535934844677445357176280992382049160361124329950172927004258208546280616964398810677792825610575033071448531165717720442299897372848825657552008004964743699077076222341602619333293994643540516373764635625567497601695400090512074974383332466609384904626371263446672567893588098876470321748018791089245039732935701386577925892079565546104405162142797692212357304487635038413332321363224862306191199648547291335147498423710547652175601538331259551345373907065643482236951272162506190154331285207412999800906406155015149726378957014681130313408246033982551655157047301583312070892476269890621152122201676483469224338112894862839172575879298786125532805429786458141589576029613229173317650272744728795559872020143847867567473654331044602611876777911300828684319907630599162279936261158372072281526579517733969719898468021704308811025996925872575800309921918279184026515104079390947052506352126166878817717416961659205167157283263210286628913395963391211870995211889155729544062700478408573142478455778587469019629934187929357919825787096745582305973204187799776868870881903321957062146794538191643299573915729354732260197647724898106971839830718127694874433711381260371185728122380611417071340907197499589584231696491023126677705908446212114182888048051486623285530375166912535353433101560808362471704180577159466427447564831917760875520243546017661204068277135436333950026919607012027929737991511098486516120747128611037854964919933812346590199104971944689917005981731654334272558674984225425386982267745322145995170198155806955971543562806604065020468961303532182321520789766559748661675483628949980072371816609040807964736461861564507757187868195095631108176254892952571669321248249766743413049635380408570569795024756587753889499617276872785011235995857154877366603514936869335464713780929988374436537410889596711848500251672179806032681525365044064580379634057124116844502647455733463270247997855019655529967814875470916646688229460594124849878010563807890658683820877536026680353373803318932998017462714027307383718740468839875107723500147051683300577771987727191636912467217771421393495549277251928774197032378584872999297230781547739611999778620760093329055298711135388988477596827631238955243085478945185498661341364983832125310522621282211005025245580027437047910958916833260752926098937459300826833874608105837955522825335306710417325866193104357141436021139459810742662639092613962090330691839782044402490783778188230158128482686611470652346354499561306018287492111215300930554420255453186302131701990287514115608670503845371379746569907264025363980358786144714285244595508751484105849574393242526467012511230468093741033457136932330482829590315949591359796639840762866291723593382464258009263485965550388718172257960442895644605764146109530962308133389436625179580739163293771358100100239455658387534208946382405566096768692622286829568158045215132555500527728859473612556630558430529302830483364380963153333549666534318187770148432169021373792011428313051217165553180174594429815008557446355077983170635877611238719322521424502912322057664998978733975765113055629482006679364182401305493101265980764909126328126304147225145263113456107049213318742898622424486540693830724659847359286807831920799644886931814665426552391915193269075928524290818409810001690233723003496373635700141726930548503517809571847204432765031451987164976179507323593773780538485632251449994013949558618319753567153868851944454583792493054851032549099127683652661896051723370617676151137279445168611978641199366616913156809704110308684959082182998359243562363590874645721045295519766494382244219301967752057509704176225606570683793028893973747656929455722981041832188439022564068089599483185286677465653386684849893695214280204580127916322658647011264372963321915702452363063976477273257796248269255629547201820272055323849168064895016343334038362304817331623672228453983789524371564717282742239142408512178679783932819964336237402751840183506551979781725424579635066523637526493784363621981962310825000538555904193208174856638368683377741890421131031131425917781586528182735390503692275885298530105110439582034922467725470441787137781760321359851969040794765459327089268435414656563049303808371837953426272804429538534017051341361037212004041433253390775994700674221550565021494951831857019608503162092395705998695289730368887327535345780343818271710262443029550016879932650930721930061043205918584282543056476581696938034569551999425630947554512414782142100749259992108213094745292113548254129316746745048432802530774292659648847608056725669200027368455782612801044184079157062990830732349299163779530064602909084781870518555502178114015969415957953326069253118937140448270915708058719955835222584087159112783778610059295352679372646786250052379309756960894759458037501563557800850991509265453815143489124881672901150625192337530228169996083192655051005785112030004685745016788950302401408134510830013462474522858116236983997579645640145994729096332037689611405711722747733937548097116520431833447804789145668295935699507427406191180559805783185665358880774458244979554591372087362781789958027059364789825773796731845279977343845153601588980147353438456771462722859956428312957486031340459861205633842856615116795793558536842183838213428510351889742675140755663712380841495386292440743956936506466182831552956598106570074154648783951498898509676356642731600111946197162577660800709938227130109715406355249674824939789627912226786273377033393184312931098826596057701077339334746281005152717678657910896243050589496734685135634225152180841530999055351852197110208506793985944677329965862833811662617355241253406993217395016710821611370171332082777251530582305014939303235201955673984068641968226795208105749104994058377549938993242330141454854297337088669104655008194197013604237247791479225800026050618462006032285127492067312917768596172485818141732262226188004306331978406013956621773007956815578510241706881866720362400684660057216750029383442783081315518465619356415344205190216839987875405418173365647589881697654827219709778826836119485565090881793405250070255258698353190405444207563135641178919883316321730991958734785257201386125769914137429778786499718305392874401058619353019403713378228156250242581024125602540554553172341738834600095287273034035163937050471812323263379937091728119080348918463043152939068415078723725162478790663352959052203077879962214586635532918043143784745785411488340259074816524559968029790883202263821399242939909507946683513751908694399315805335114485260552673210524615348208333250433498691889229879933120812764363222168899574067556505137565391450595769832885172397052223550020119002425820577620930568337879209578983182982749074253706443580377621201128623619066847534802274163187446727872638289623073755524128918165351334682401749268477324610912078054028661099344156730134599566463575029782904477303468651846647935602595485050273935167562810158914910345312859818095552863118152848748942531645278898182449651380997199577678112792678253489161734173327488879061980540210111596284850871448616883992200767031613591481207553816981850949123900741995059199739451718568073119365112994856637811167032411210271330424582342341172892722145027836171217644446978340019876760165394087004227861520614923733830312557371072746102118098653562364592232860783197896212344352766118879003667263157447747591829563307994574729600680533995438309742155481583839661332130360513102103630101859323501908009295984975360828091211900711062125337390236529073900189721924779043943264734192935746381732748048974527242639062975661717325061164504937912183152570285320929968243801036358069861225297352803160035660703502812137155837090331514827531062567236549715477490451030515122799786100722262448525551605147121145013606264206515753651855742974330441644951160591309175042634832740508693478902902563687229467598629981409386907431748830081180021492669940738019200984116121892274839075164792404758071062821122546752405824621523997658841809880014997479169406966747541112645797308714640190091394516925283118176886870165734541157324007273531356474479658722233139237775984370256691863814566316227442859567798116575031354160023558778435812933009997732967146589159967385091478371661595756418460581170431956100401329044118585289917752147553849381365237388310872669998028766228993461501073929780107975583760769148061995110390528191472094866333702961950504898423736264764679277694962707311776655974913748230129135237702771110455843767250255961865136137908446873062742172785109678961257190734644662463352106483509708777161609137469778521651123883381734797545731774757933589641135805076821595249377519367744353053859944023402471170682410014989613164259495214299582280000064577631495779015260490094836981313868368484067141268406218413335316489438418531160128021093314019888721048195446953050693518951087135139609429419536481441729091330185106422498801343397879528162671241770206635499072072575012422335124262933872119910698065752130604240527797134891839516492220141995362599002864639466799296447556348546978541789757709808926492634522523030879142298025278768763483463712739270071982887485327125290283261184190920947817119496554414393810403779816948313753687642355614082656838356804682230647081380692537779310255704889541817700842671461532880131284882129044393802338259158065225830118718999725143929501508562392779126995778413253875101268375356338529289277866183768961955176892016659424716734306371304869976544664654047933319578338581601338299512499288149028809886827203704011717852722261318865233955012354657507791311844285005767856991847138403649541341218260776137790854206824948785877798134676364965029292794964621041836805554053309894772875101076123734388201049970332609245442100899949273539099054779881841437169455050933409164753672458165336248120378758849045182062438304499133870721305440180018574022254446716968190897130542774122069159289216939964068788475085216882153393548373406694128093022650010014321505643236086846015843028065361973863283516689790251700887088433689772273153795972021144288100482120539936328645340050004240056153785428293028592713860544915931070903886705732780383327289554179658314759079143516220562929877258287597931539658521027731617225969514492176925179260078860993592283525758899480510029816353685134009124825609828375023872401321157731036943962500811364016719809818736589591395123132010821292421949442047513453064908209041527425215675957237227881950248531095848929782436770076874354765667767891945922330162464430462201888280820990254063902680399895518021539761080893068188357877259435891182837246552517916309050728750845498689721559894372731384462107359530057393881051680713106240960706791355111787947836894005023140043684912224446262112138212224591671144993632780985570376514267648092901250825108964780571681665888018297236325020586602075701304284135869451110816146592892667702704844285435433342019850166053795853071913775938619182621427453468908434966083079863212974296201371480259645936220980542437698579615095086401790154382973627899821389764646364301925157005175061552994359602038192102955845380387119887676602093448350116917612530643532158690354158254800658886992804747569977337177385101691402810797469132805492952906723314927512397402916680010837858567708314953048172164813027577352808671218827120392129966498785499849286859223504902592356777430108969912734934802744640372948356275122271860253530858978417659792014299627581891415597771550215498446249629498950486074185601673585136706190061445183155129777076463578787105380401815456450677387140400756976591140785231868138774371672560698844482003043692289926302869707396627350911286547250204328472694073291766195462660764664049092594318380883769574116231420993323699568826539650847817428741264356658523248246663793791759959062510378851358549231157901728589723496121221480574602092942095232572245770297776721928168459630297320928410345905921272399275886534320143265583401901224990304420413048854173497727324279044815247413427188237575822299792214000963863098409989591936884427626541721480781200268504653860716287877720584356564175597386729306993751407409452750660436613466969352925291371616533554605582640710706118906111861521173226739364816447502234896314543111473185582910265390728412923929069831179315086424471009251680758997902192644970408809902960777370786641577085218066769133341085140576984010600395897245042705369884798634080585995320367645850059146547855397867974041513667019311521737494764358469494051745866232506876910136047325540358202399261319124234840100067315073338512582123198011548700329414291716295960996136569198799325707873325696140811131660617044851046885247811718041944546907987362549626876647581735743624223287798791068725790829613779649945206744824876117980036482255571877031891603983527419257056855215979172895945904374366426341505568513851827037764420303580021277852688737364874682091041563691319489213157578553131896978241603350351014596081685493681741074719245596903049540048975715461223856974464992265933386990532406767210966262679653347534094480280269418418537129178190109200194006878948599634986093353035635396898196238922517334044407138290110430243435413765384825181925272437351961527192509825389485628284284962706804198343347000798672327897554735618907453241422691444019379083034697380531711670479777551443570433467198660574325892735778861404813780063246405496736416795432282388384696743714489930837823299403246401742691956874555880278326198082844552818672750721787952511283089933209850040917677384968994552198216708021848975161039154057398254322766230453320051955280231545518946374841592324688974219136132254108954584723565100924762781975401491154080380597034699674052070860021796313090989709414256477648279384994245958222092433126053974367428274410932697592373265671490980894090206824795996740302265846536037985360565345646072239731889359916282437209564148581836632366890138873523031717814229101072989353625786042378165659144341027973229775751511915136451138257596379415367316673574619641467541125971416691135841261743636886917761025727067526724519204180375494281802297787173730278543583146934252648549066286832530999290776817644341087778653213025154457136478035837126463657877368521322265956162829148905859372478592510911189081506075973986904549969343232866376019817268063569265749611347426802106168268456330284287726959031191257018648192473578690870740778381151052106226619745390803040388531493821425578185892901305223972158171860473822698958712189965605148963159546933060928292653952600525742070506958835787313714972972635194864723052570743136446568517365175010974063229634349574813557266278917378144705379515335617361691478912512724870296794330354071837830644019913871854018929105233969505812472794225959186585106499501608589664193910781050903340687165431983841373930664782998821850873273237302135478968962533213211808626189063884996081687216307181426841645881311010730669327032268561487184765185103400033524046537060751309914371311332494505809912367662626292609680090222072896141156651958456571802742822061675037215934256874364104381644632624970502652481318220533001214331285906727299299266927887069732108814343452784376631690270336115270667456477413646200381775790121620348437244573600548573380690305403891351428384108260710079516380450245149481920984151859649573499748464812173321842452651398760971894304207427846840705166007056494684814274292490133348261423176263630539862911026343985307814466185458554842548277075440947769242479926777314080060299348835015888706620106484889156431246790297926678314996407163111902560157768779587452363378267844165248118448137372128495136247783101002187343343000323153274406300240862338782252990319459330195925807244992016883549460048950678304956731690723147570883246646043897233842014794681877785889597730723512083842463550220030444659944896065338968482436775640592445032008831844199871882940298087785283843564109566285931374254036115841726119301953207057251893057031059636780411521045277385712349147149837819451821030659103675664435354128569625161866214728911024425637616440173104844870101506848563349593213832886308428448156641191637066046973671426756140235362965359696920284140069319910040934039019047649367965209875717915472912870337824763244928551977389725837027862558612374512388399040095169336021181944170834787218151699945440721687558982829546751067642064541549526629038992561760932059517891136195819288860348429356015250167904007465262285238638480355904484183441370616617400895938413700237739184885322470733412940258101028168459765418893966601005937685502608654425554569630026561723218434556113439978556452536258088969833283297663528680343469161047791822855623391933444550488206947822163732080529290089053318959893487611704728161278216829527506892937696478752950872751473657900050458179495333202694005016861666464505609552844826964007998669486801691228936968677744750441128248038423819884177560781038725693990312404553627311003110986891245863776139043354987625500754729041780212017434206734669285677496659680672843251882193929643641409496858986784679331446785224815960371310191547154710744205283660067642860179829586992206441650567701015416395387715892524456252956241481286696375582757669486080003614528818350533270277811209706706878806549049734242875105556477754332038139349017726351032387270244325867715280864133558843877884216981986456117297487101674983413511508557683980502778724824571514657759194773250043018359868867765679499353535405938357961298816476321788136130204666833682559590871728467996790147693333246769725388177196505084076152120412065510127633476239482243415717301924289124898914085451609244053076324389361585195776392353122627025415999709532688398094538309624498235734960973059271473223751551915568412571646492810702820472155019490463744257380055777451577660539704559080407536917418858941015327916103906442431560045149704660067116398758437683141577990454426082523970390687744889285105310311760997544443679587737928448626360838779526279300898959797116432805005387184592456026525013108461074722685248957685248226422638157736384846882604702273519746103422673475662757675844700665665311515538389029336849348670921876438853775306930977071022394226512296865432694646005973705022174505206901750173828328896747836224871973153632872565242898070040846131740368213124155018752690822750216842524649335444848146363343565232706556336915583458415934337675304857755494916519471983674558664158404794145019147222290391480216421143092840622602605275598234146965488066745767111435952131082433517951562837536944662119469701724691195800148356578453403153141335941763072108089320816289968872555806319582888330372074359877384448865806601614011195483917526388758330763124886730904622313270549832101282711337169670572518776907312016852871869400378171376373992008250542328086654314065422529366186442602976300683127059306779644786317177200513129501138483986820208499830975025391007463118269783587683573907414443828940146002985096725294207724092251321910118713410399593540044687993697711033136566535174493175954448354539491826680366453742118687413708277155172266838180577976174119637311535304019569955339874286059837773888478827537763540551180858307698102168521448378155103998207685483465400403820966394819524814865397107781616583186165982037487716294439252868509357769944227169034261636032743982516928364623606537010071028111669338555062298018951683281838933366313820975939357353673752958079726287766591224025302885720113811708594078616742432531373653001843897892755098855511566232330116099095753695767989257745574021829429160347793595715119212634164045326663649529029822307028393021840916366902959012225190520600311754920270107373255516728699440959632105998455899134736913782347263651598916590041674350326802628191926286494623390100481461771545297559800811873306303368154303030590095764664245393461596715324379074373364594461575334400238732548620575241563239065799077287636705004244726308446749310567623563024620625023703041483088268264637219902353439294619481836742742201437108659783423964686754162601955260348800168464813799993307857139262471911744656821861818228998198238231628352874644932310932684336065257666854683353509821587684266602965568870122431565737185397120669717308231712281685691695322959232232401397139320913137041799769875284176021558349713731367750641621722859845046809239462168684467167202315593770026856145284004558968586678354809442020878088848778210729131045632289637558909588914886121309312979552044984962350923330583926215250984069341658373035248410903328667677857521324370664694343236519451471566947373232331764641473675202564622025241904827942575436503179301760426136313308699268682652453882785777431566598416702531631248005239113384394227414452097416371696323561733401024071472229533754543641525674708774797053261787652129937277804988564367232230819181573327650767276943900110745920016231790630775814180133426307336785607104214688387020014246300206004386058756731829665842648438837946150222054942635087921587701660675874923056513604990204936182763241490683472017192890255330168611883599542585759649834324707831983449034107396360463867765970316837985619617721040475951136152985844212108600280070101945553452905491748162674360886469776299404122126846202627668488553230020663711419845072248237623043337333160820187803429108639556034856611867576034577308715469697914815991096251963539639852267436592635135130569835385535008392098448112751582007474710771187469402672404333983842887781938262064186547840017609346025648650015904391755503974010884109946481926290603135576470298269537326041208115296260253532803001919363174953031285444968880681811576969232778122391112616811442650077629641753661370647916044088345036171646512934866468309170796245539001407691728550170575229959338117588413076756137381556702808249471065133575198218722139575078331615601145852982202811396096624357724726076566241063053302296401987843475903914564899084181648105297224698099501869694507625898697565303030037777812934765436237370118387159893367523391847669387436851053734495230867021511487022155166537029113100914783212375042262434870965479524238918977735227068706363612848796753949772218098245800921630817994528419579690041102632964151338295324484686145947285849451325478792428265394808561839661671972987076536241101144921403856057538876361845817801458968289600192462307049613857596179344328798088714444466720932663112478508329061437624183557560747063737554978715309217974835853053913306935299100985393754645081165237831584427474421065557196049862354905515945557049615415651308359356803153860932597950702607861547951589130143126708586201080613899071489754051922135508890743812856279269566283013913997738587766911349669839691760744071163803093277753037972295908468053524316931521192336401405431296694099965056771904167363215680044297652206378628945591233127369076888401505430721381603826480153712429503351122385356708397643801750445402084538030071875073504791336065849210838652920028317140681503490030122551108409394096838578445577808433538546326428135133894255374651679541604681419186690386848851651574312468132210002196972748917935366956922234031972969755185138210982036971799846393935242677530624192748752616338679854033176642023913081344482268180005345718334117934828370788538735667568541560713534418321521293965250652720392775888233205027460738357019810636808027642774356006820252794865435003102233690356503143133404489065206702108500912694453127349141415727298863232270037569069456960210688332188009199514638023141952098212635944060674563981824351558512294388423729420369004500062224907266335194012776930986513098293017917640780596692765179960459087674611374094387079834124555500328581523047454261541436138903611550462436360625906844835723015901863519364309957213830119512396510031043145162073404461742349569537907585380994005869443256483404153476772661247708328362420982670592139355067313798981976724651679851204179578304179689615713088084573138268092133003800164061162671296324745750492961037946101324976238325885536366465499864195724576962178906231501636545366396791091007844729196709327119325351639093956907306843258858499927070822022644809312139229982288608936447295568546243782876908856419678531476725502894716980080420651565686131559893768144626903300878840424542998118299168371666554455927244965411869426551095719051162232342180411608008171022072361415755819150021791256794674716997939840742070487654805747619890105323215563051131137084052761838706575747606636616867310684294519958286805108289253823083063798089051176758499820035096380958414811901160479011992143017512036104207152723510195459025495584243983085559401275980504164765708714404486210621604182398323637484027774862601508412349125604492296722004917908528086886678429212565641987267395690969830672720873820199378889273867856091825804395918480756897260240727872998287849113345315495893368705340211038267857236060799091505246108568494594863931545401240272115405110603758319129981812819026258169935532496777930807793763753053579595517834150879452561378787303998422311833058432986337041696600538888807160050720553177280242635589794137241280773245967084795798635132835099191444161476233691072392627056929202197235174739903261523150242173858486756241679726970334726703522725158841487983627694894461286808520485808117891707894986449729695477594624983375455921348234407403682093196323510626413140590874665643473552078964541020674054255723361081006929473235858595980160698954535151884619590430565074638000827736026569773485371265137233707000458995646164914542144969746716302721692581545671047492083672344555702653540243595673478003228104083420657579047166889762510123372455983280287041722043890122334887769930958915245417807271371639671474419001601541678751348426189066525939227417311854012855585573456706204570975549540308941987215047201133744127960152455743674249283120760834946694719757626296257310008113329745171982684246871190661105935232712224940877188386836240398738181610968053593166191905915751905864957686806416498251044030542934422429077565404655038136534568426880222439888922129072987372114996337570356146606766051902384864107881804093610074146597553845437757844320850011691277624482671450655142010297645513531401900827684012288129802027211837858938940582233895254985091585256796552886861151475075344101820646015643330551180008952322589053571399022778506851369615483882377663001774238676389897475262694979027586614771921876502722771153992867696196988031476117324452258449248027992827163646692632839317524798409511669997315333089693616154180821288927111314194016981506581718476145921728703674731896361005334521632057226002221577282228265741822544695849173472262084705776928835065929214509246362051418947683710765513606668046938950684997925497375844881071129727895722919649884874725037269227172283718085890293888228326666713216143498579083179657235452418272988394909380340483974365357382641663948827065131422551748422795209834835871884205891262430110892910286389197886490965011173762840326612238297612471031319035369219467566941276733660369876368368551070487568800010484666093684750030715720422917665304103451347092383744820970841506268895587467346471202197842794022122650990654972263606787570592971108493286100486401117429070652843577798433642808613224310002198686495373200790701485229597404174032753831982105489346050839502356529931926265470307756806287037948781563942911628686326214687823567507079107964233110216650526425739052815574792153927138502507915733565110437730356576455252505811041321668156746823123517468929061191173817473676087194623585359648466031693057696542705709422489007654961982157913574905499849875664283561799631824642104126025688829787259102069077648352922501843176809512260504739482276058860867797150596332432116654857539959622830641325631482686773134951787921409301520856038223329829532105900636754967034485894554880708143911072073960744182137586970403835743627272330745792697439345312206364272728672740449792408823693321799310425103424726663963954442438062129713946874379617376439956618144789045368028085450685785763539909926711914860355156966575082971753697582333396260486543429921117650511535319074741495735065806460165017727563322563732267990434655714490092362985394373391609750637004972051747365000676445002226528010701269819287820202277916336602291199485687512381329280223281915783549375901074460988642663358525912516522960524099271390768229392124785212201108224716899895528952725770966711727440880983217466250244759121264580450672305068144704374828682669892876995594319346504652421200063408825334936699428389501936789916729683282203083689396661722694796043391633546626084561733149375873948810324170017892493279377179036118647696338476975907093494139777239782051926776181388493621493648140091422422149780850109074054610584065235502056541986634216031451595212946039267296281728832883911003298322036032622618231924130440044520189625486143858770577833136182769436588618260847633390352414187561389774867436126288859780741733651931925715868550177841102204341629402830677091016613652836674345529317596644524847895027286129070343403245543133690327152813478678588273571215903036411012768436620318418195768266530452984583167324686191933843903980195694773049136191618563479729775387665108962448007529455287754905445629185771055810727619553136607100889500237503480598498513887902666934179723110886262488746435872928163153664064896926284642321053578123086677454391552639182909796593927540512747520010239632617928733116529100490276694545678112050710037353423684892658852985130793508423283044994076510388744744334780735344106229027041262511141899496356116734582680852498820622869135313453541492774322092698323067559489785287088598957309658026446846591560265209797335298143671838592459194607298674924611968950626055295152719009156080236104641036014136605616044886754502132831210729372647095613798735983577178710325632569438546409492612074527145361614834196304122076289795299731631045197874805259077090776568553434107328961528141059183151217039993984800958728720610195865496821113414400584738973296557864621321862796997663932573861567557478158732366133905738959511393709400959550262562330033293829473591460398483591215039052421021187120255666829693595431972628459430801325546020128401856503160614743835346183995216613197642306751498030655310371662521922927843175936961382752715211072742407147783689983905335221008799702280687436049569001090365428308413936430200838745786109863807107104365697702606569192143825596443297205881594655827024505130984396164742132590631482442930043940532687899890438249394085051377640915995043444212486299451495458264469428623116666508859566406584318216567641651004706943155043256765468168716063413149186607347694777568810972261171592477544882250077422577822848695074152489395770685860451484522114853550998980607266483169532673791249557452880582590233112998566289081495373390982473421620864606464130754631018839876211167248347835054289666875850443070035370924653571135912419176575732171752251076707302417827493409596712659415425125718317185435776899173177682209839768902279574109267552223645440773638242451430757658449826552367392180301386260028988930541120722432018596829797925845116165633269825886719803758635138377236279998863416117486040473234735057595670236265016205526525296389732128066299986428596206125795577451045847574711582032018872556924796121976699075118929530256480874218586452564337123771074159532733978593890174623208600210006972335649261515446822640367539002408616244181946354561538714443187502481403107386452813769530929521952765106942321713586581317073359149646022053019559644475125276366864410686371020363107332204067597213069262764018261127973021482374696987628746453755615830799238305932633305610958261804951686508923357755025489026951065833364381845942246159723585241157698371709611191001623166127296609870554340133167866342620090749695901379714583616907438339151698940266488513674412858821399340740164888970536522915175468986380189017701941650200727897446541341150393708772485487817757730448353193898924417874035656319912678465872246321471350880205560182265407493823067182563618332972789379893418240677925965885367244685501540611588749688257660881298931914540064520706643952871655646189533313247318786481893231772785366637259388602071617132953242956110355133022136931695966776247205079897180677793316347437372908772154961314920002536579840720902046905487679956823303877537059000056394467023636566555428530233361855625101598237153778943699534439503162571348801556912217421410495961519987054129013904623902087780293566025126700332913018564575970135631324183108918789883157000634400026082587120069745722564620069362980741970259927571323495633039613632534287511044340456967431921296214063544333671614093383761153119524614639331558156488177145993247165052630103457205091731919520810173457802926700493603927908907261678569099820211296355478010989523208500628714916941909307074389112240975101831844195418223935912015616181433502698538719654193113780238349790145800493558724675649500156939706128519579975491837300561388395962741026341137922266336367928284604482582688718938184121045954831949381110584519240271744505933749000768903183792504892595760721562409819234322007484094739001145595076639369417979026866652948736616683344270811839855527360875837988747894625136615515653688012267634694858802553410476296296766588939932924299724626406792978796318470589454573852748785531383564558641993386829827148802692630611933661301429912558681778110612892406837875886030829450193060251631890610538769431421271272299855429928783804328896249993624188754446709994504728812240718667478339042479967099462912814696665597237658153882923125576504079855992621144586663921335771451958992406849525999620217847751817837758697275821408803418226607408946076134423171795474935080192258296793506735214346228516077407510441671465516272212688413716731449511892529547699012276276377120762602493046423600709661878975804424147747680008152056978291901914759819343691786051213696578033843186405089871747204600485515154140074752205908542333362068898343807611998761787113398113738274243378890548771275235122031475925433452289501159265298660535214613130370771738766485173061775921809309827292317593415295691302120523804539003751347109520824311196614088324623733432032165552178349732596234061259952944432462609356410269801331179646999196789001927501347587584834247809303629456453149489954233809114419701010435931181363440568379016755759045599672396593848146102546609494816181366987609440627791549472048786491256996330847234641925359430786861166956912387699095952113742362136978309889238276357183574245714049684433355059262676264032710448174418884511592635907843283999924517724668434711882205807603350002825545572562642249746637777485716930204888348034103932588745847573028960763119477376568694894359701342239204973404614161999449929870574081702046404928671634555778730964583149881564498536733343759371716012587055881831577139780851979415955083666540404308017595557676813606897001369033669872980912774802006609402553159752996911745286691305247346022984177026917428951723841725867706804928264059073703637618339626427284593625003109100323696419752763202731509533741469990468275508859639929140987987331275693693156851358714660187841822232908042498929571061787242261048393112584467097148535919360286804587325293482948666349144149830720240127269292741868096006565507335064643587430378879850020350284524201189919706385242170023990441151614148367156643227828768774741929178044009816593857859747420082634516656174448909028518641966148753225625955092268294852878077813107128603163291494732229241027818798086219725778451650875220677341961550045126652176894478247426774415400166680550523566463800210383902470305955457632749159076388056315264982712820790881605502797010691083551311575819410473070138324477879758486860301020123827009993768176635389419047771504322153418841183286549534386907762283438884585930386509245359763228124413017137222704470908035364265321608316292038878320997533446787269412793819153276844371102014874165515478025084604123606337694164681791216066971421521449981406514523406448667611305024848930317875284639943244074780756204508624149530910647134783332704912021462010980598314921222455216926937324568228984442556632109398924701793765236389450099527198447284437428552748146583519956696405385459318462339196963729756875638283696845849983332048938616796453498134391898935331311712473886743176667377611023931951536774354148354149502819700041110544296100134066854493440139531961243352545819229206020978519668073548787941126513128439233854933718420635978318849492008442372016363221560384017902235390534466505863037989737218208935369868836148128752519639592752466793871110774545877835330049845301231395957474985011319803980254115480321216683421714710355197226345904914437512569507864032775406309089446006403012826907006214041100508633109525625382426399474424352907140012331555444744570912552255771043449505233764475513311261267144649016212117309796034260161996282819656735135476176192463784657235003475040925196411239317113099967500062584510938253431561658029786031277636556536630473289447451766301127017936879414713176222372308085423313009835378094946980074565024087229309146700201770061170286923650396968787279503176096604584282498377931277785021951414899435424926213358664164739870564771995049787405642819247794944873227165189164948726253073228332918550681020709468178609853684662776542818696383553387222017826066020990642015034745786342836764247882481865895182023590107954000112462254490091857780081762092521058981246642840107140898421931899663471891642411704782143014477601240784017879454176161809488756708805071719551093738879712349516427878987069220964896971057633347699216013613749279832951796466741529896375461971306125427431771407177002196855018988659663682663751790230505862781892961240833520835317238842025371566454417294229993333512057688241882777890490241075686340474089320364315826147034897914871565489037195402155115217987450668587519213119882025361748981732202324973372498102463990819886025044891134776830855129670665057973576263298477606938869980149690790739314118424789756990419740118439472348605987443842314410535578443989794715240131594451434642998161087465410164737913646691905172247337088755102881278169008540999751342161823499381982834705004314428466562529047807022355180003879100813843621182625396641409853920852272916914873186722417995639921676334097071798466805677207103315311007878542078330289692646639702808195497750894350608224044012610321328058466116011787041172901597537254019093652353786632436114799025886227374558572655506714887647957307433634295617003385343204573744637236381909300911278028481482294954796465212528200443247489441499442332132888017427472411798582864023726637291505698260508858710546467078595530822764410013967547201699435678955487303002775823670563209949991996012069511040583510447367506911256460424643881340951450246006809964983623298845410251377636071578885480455085796900040164711623595210432835808725264398180848594688220543830404222026546122394122322388251304310539190798369177811638522881934895221770044856238182366909874596754244634458181778500598731291304204226747290241294626599534166878954325696883604526641144182237517585067956242723650271790212514614299233265232899342616163620079666502447199844678274962975788057529557724765905866603880242760544830508241882820411480473509246661123056017078260084341906918069141002261427242101695103191066573738229408242139642387281756261984784788284654157622157121587071504113633714481527695649242534729585366055088486448433838026398709955113613572537716178376104283870505680624023718818295684295505885303143518884258653877946773063298657533065609810131737566390913642981719044141904225551096794643649804521299105794436533444521625670177563938497154576032727971675927588080633960676886986306900612936405607256839747405565369969052155130250194339878549124454410761431188743567001798563934564084038398294350227393222649774882526936225983407509026704455476096467616479960956113444515248176056471575140530287313684145790854098104522578518819570918394803156064129789492879700164108860696488552370901742671520731646798639755934650386492461893657726975616325900073535787095050365476837448196858946845819745567377053905264126062527543483536525771035981832884827036948079223315164502428400528201993110166259568346885146234481281439317991601733749534192304929336970955698099803883534476494554841917500068668256126767118192228090430964639208433853335050150084064300098188219463996492042743019854899130310203598778450457836763648611898408756514035586274191058706399383410796715567374238477138089502648084873828518170844542799094887474355355384835313652179938437554828191754387566344804229920188490760915854620660293113243901282693802776189708747826497569871197121622387203000504812810118814516346971162891037975293110598916289456155074821304999951515525570095088631979377013172768946323292160087398021792268207809470930446991095575916755536359097026011930200783843394306047397736350058847857283720040452507279193321830025847156723006035246549602500952597537648902351719568490143909413932156959523943846006459754081260773519321921784191210288344689317831212321141105044555342883022075457823936516453157009276205376799813109157180671391320292432828341347674497100830682367333232175528603616302137328657428489085268363920054674446958431764303815810698534655353441984516645634980895433265412693341225996940720870092215077696697681225970641948296700331642205628876349868038865875066905830347826242625949269542499471668658846826805408640546036858455023950242556729749763792816138566975573505474488242780261989863651255325542175005090967494912856113509381117358207225870462338224177446229744313550839193159030399337749225258656474350511899371369945467222737917048225900436002347945483628930170980768750527126414150770360690165715680923610213319390909836803598653372295127069143931782903755526716180178562998291547116974158078662622220419113407919826891262445801662469813672050266916170405474452529554921720518089739243826422562152171372528386951297755554162986916111715644706316924450224268550896413057263597861552845731111137983892245812300929841322114449603185044367336089622287234372333894665726450168530001357615868057484154987893626331975136415526272996259683157925723529641428803318351717550455549435777893191514188500823399420862003054908804128301165058539164261297674194727929395734966023244559102161801220122095021439349651514294835000484576876501895692895443177044323625062591384223918009834238833297405703849114227646713887672931229912623245662639015224297955809856891947960907064177927130780972205676082032485417297572416512508711797465129882539400675658093063420891640019290567545861781603815234233447703906519313692557457030363301895003169870842205523969771443314333400362130779110504507092505695045452526466113239060810669973989083638781701653465889279881379252560027984969603657545175382946779613301564482863426865770248562146611450742109697331205645992603878172724253741534355748395327812414429686138247452046910058802773181456395874476552632960053847517764274756664950140502852212821374319541633400580266347242911798849625371981141595782414441151509942551945709866100933405001383288736069292501423137890403083806701673240557358108727892095883290918409405993736688020912609220484883124881444621918509805357723417050822233346227089382218274584597780196215635251083778982253731410744400233853177656479430412447062581142273634417960008715730195369682086552827812486041826488144611005452194429222278010242336355606098002037078941663118600274899588295691913493877018814438156740800111495612502680285531802604101493688460686919597760014111230704542674366660905405299370771003917345103766252463780356459705047402942517322073646692782682868098150709477265337124934990553443340281009467782228355123100300460571964314908677842901555362170176876769391294031851063084197831485629132641549578866209538055119243956764912020656734477914091671071201174039934482194397963771513530898832357570386934269038147825430243779132732673870516977961438985022669685594957024970583273999417977558769892904478906391799227047962971906644712292198931564974876006083240073670071408186967474270637271711901184586040021403785926116787886140960229432365846246759918864205551627280894675831802824597422283350983451488707062987624982590324558028773531778804586461152207832612732076819057623838011436502989818181104414503254252050356048094231706722016411329718846782094972137140116651470534537746868626478309819837914918923461434719185028809394357198986440028971152675565528422669572403663898462059368133699791051135586473280356222774458134965301739026301308606791076733016181287744956991715039876916053583627347769700406681505652938195480058587344388569365314588175624403676467415371505322147195093464045093349113629223722744988156607444729181815799648436291561910995037494732372262484253263163454784819421943464021874591167378598587117507047843773384745375536526655431879809941067031563081624546960888443231606594276270523515532226788761074919169245565626207287200199084582890701095385663512223413960529612239811094952403395870259180698153729539857918744616590867290856865813074514537167929496808073468982495669517154929160673844383342812749253806971489169919611334622855472552055870815368607420386565720476727531560411908789250419056719335302252070436619559621123446048942331021757635667271390882090504122810437686103133545446627752697802154859483055305173238977288918655565694213037091787684167644224534641630093561375529154045359109134760432208790078677954014655036158198420519349894819353520671866986816310032149533782543826575621140105200461912635250274533112006389409981912449635371211527393626069392191031481297133871446129024860074507534568943516310128330414471187870947301966804311124519764300629023166561828884391945228211327261385269366507383353606047626279197456459343223455998449495609596838917316531529651396237705278854795263213784819227194999254642668186004533007350833904013495161578265121623187772057404796579217482908475034298832273177402823901973293354802534320510695067177910647616502251392399583064252673525346705255084724427209893298172772553428625459739411808985833387007710757681353840544827032483305575938125384660406257327086418209461724680540981904464453775379824350642201976942013011127158257547877717925882781475422122872346492162783665398084551297504264598049940648336995771285021003228254603273070931478225194378460375530011485677560800927144890207423447126196853532092447363732461117349671300599836695932389971919825238723791205060483358778725681918318014142965877715298561457717075774872377654961152003783287239747193868307048690206000147196171651641000053141025109271507148349751609205546507786645331654232718666873514990205809265179809181221346677378434539820968388712549175786997055767471322866692039543987131580701560935973017040208206160309194206581915016719587692516816302633842484413411589654173492658987988397422220811348687622095204069093349141579553930841681928360498588497024122227127766716154758234411592755769524348134882973813923955714389366490414631882995920854380035137979842733689494512383977517428553661994594516342390187231471510735554719497736607839897829021254149793546996860300017193806993177873602954040786467153353989996347123668500561068676902668809523703694195608363871223826006825799569797201398907691262355994524267407113871279512701462866861373269247584188383770084669930042714798528708667222313865513444344436817073618709628620418268144898720527870851842721132850800231325467637204121685293411783647785044130920237982953357737333617931507796916611286490366715773223568233361987794050819287548193131875578755162944320550477076673618910923703810350562380862482118995895752048713737555748486748166238215046872992504964450014655064016550413305877404297246807889969191511489128502077991140085428991864347793212954923343344842416300287012312838891179720024455556443218166768073713849906377765089878431385786705850843187493380631530724406167354366409847251345229368139340105449210971786866588617829802856335308645790372029667971123381353715766595597765508097293253263557951818756083659737844474502972407787723855892760902506839059318872903877582471198857637084891793480719224586925019170016200486915690242882975024507503605893282320221370695629505486173604897321366297367416695586712046156401993038017842512256910069706588340034825088397710877265582039518896704163164203401964354511554865444826637055130570327814039037037731186098848319616823561013734228761926508736490675517052813621861889088279824187298266159923518315213496178894915497447423238869229011382225195438368025502688208180051928130874206216132835612628381273440255264330220941584481750464973460348080966756941477481211168446672597038392745349632327424617973745387117245145402190134605155986558336197150149896898463882411270801079412970142528712630425510557192647550385993072672185681452266803956039068554869877790582357320773334420928062069613008500477294099588955372957999932724834466756816619704498602046215799458139423057776258320916915363918234648488082970163093395850962516120254576275995134606743524972825691999337023821521323753366981365439547076922470550330671784847414864138845501430003442120961899398669796612305627065876004381152330605062643130437927819007048941860532323605863494155511841390360916913170978573864075758021154807199839285299220761954637866499200136072789005295336438036152736839660967895186402412487416588485204192319964166661367355053136512090158576928321028837432558320615006409858887202962947357762287451779905426450596557549983901973868654118704336432877725787583772964316429208550322612731858647125563666917634812247855916816183841518392469453110447762180790859957118583739476908092534877479594639125848264949475143300327600632775934005247750160400663735257339880443689382190695465199148576189189530979138579568995992789860070196871912593787659386809962488537246143014402852081201811821777449679933724368962153692350389858836544004124398519044552459224132608271329167784534636661075130900598118584275048162849519640775650549111283586586351086459605772763267501602503921453811631549712726802492474214473641076087838129424900403253122590280782961275409577180534002062848976323155520817347060337712676855633637295864208340708222479715227906418034155742694084522562198858234418054258994655045080257878007890444335462406568289327769114092549927962200484053872672943447618264452359222940027446726575192039463194219998485658261690848239198454896143684667140724575905234815738492836867393495651700432101322181636122203909037338377435646772774379346256295892463047624834049967409941463876742134068569575909145614226881482797923688119567668414284669606476980137325399714783904390412766203453568301009031436259747348376241016998457698698913439162924467307170501681393312497861178128099311895208411397544545454018687014488702254736128822331410107193453422820528063126494111404142856988234791474220281282208499898602891593677224901357082334230697114786700663686302291123806143016508743485240014319057622982318037187187314602070159642071431081049388613598732926386500078168694694135786579855876103771249488802654118602347222641920092585483642983516046911795586449131503464400104040007722440491107472554054250145766148936519111727970347015293923895757451685299500958603457299446676543806591945039872334395184345212514369732537563769366584858499155988940720125207205819715774752475540766851281977029041219771128168063839266232441349323587125532259968594607189044556325899785453723757785778948432820821279103553995515276166554325758655846715643114290060551084806718866248786468250859062990202556829722894176389751094390903848052359164013867449813159706789619423824782885885758889748674622189907513612089868234713482401147595722223744056692326159443227361799749788481155359533260988110531460641070279770115162830013781930453368817966827638565438499988767405841758228907235227614223445939494586181800167792810528575258380015401385337121594037920263717642230853912131712592197013466352338467430654975883127303668295066836544105714771435285848543057380914901255148733206664900117168000821411416499660954318734035082624744384025346841575048149534984352034885143863294160985922776840695109648713869939714776354932820804006805858236181376061720136559781137915663032492788180629991328268923870501064470071739769225593281512738546124687403797955812419548847957625048374503398453366446054369195033138388447622299705550624960939589010681968088347744924459567176230359462689295646798357727795550037585204249445077308108855131085617369357292213170382337381876821833755175263302127460457484804074597672083524129100825922199073686603651419994125577321597607485133413837933383807706158471549036921406576942467548793385455340769248374775501646113759815150859967544048506781548649043207410855977438520320164926722858669375982452615370242574781460130404748057241869642317971183393887674558930877452589452526135263520083649699117714703330784445846339208282599307815571937852843531034272300113817021023850708434825667865933599268995367658453082241165303969785889652939307117084073898447399394975735466813242559101410891416472260045409536131455620674037375790546924152132732807696616229739476730031587563022662440002589445595240246697827304808477195329632232529060655366530454191603948653876245865620764273694797285452444077445931912274502318501972715687005757521911711497603611124522077785468435776360135784629803198676810075324540664422781013217976386822406697657026197766990325470541697269476934686328245129875411624181176161234717974991901220266721871645057175211567677719210866802016170066096808927360856222687370456886720707271747855935384634067539353113268660895637961193633139462917775485254691197309234707342320021646060682199274810093693167755175799141600212546606305987088470302325942112832697849299299377179026198864098090633751913895725721335123081378725667656960688948948563173455210091868106106716193194079951101086737673395843478316261288270599058141088245592119220209549949893865426100969839424840137034948796063968812634206330101639770756407019392620913695001695897550300542583866219881683008543675208972147966545736920948171504026684350596434186290987091466602365405617475153527170779639521082790026658821569351958519661047793185346809781775221410938199132751027198110051151723556534905841061310051966370268592157421563569399365122511693973065370672792017532954018784306621007064587608926929924117055692705728989807151972629223043214111709516432889257531469729382934929302520310309490576145840424729925631412838384450869588100176761736014161517263283544501794926024823667070224025125565948461660291192845462779808246549439809747831135389927727992989696113629678430674074810512532008230149401950270576746508745678082434747289994206501970085349816509534945067972201752596831323550575306706642996624798132259563096775086742725645348291842713207624018158089888374019128632309268850368688751329441488709948458028837698932492828604243701785733382038065600451280118643546649523535577772676579678699387828594228429392143213057211019747454071723433218511881716086704957164018662090951465700966364852911770247468934299242163028116382042890045893929495435794667307306146533675671575674503231337542111911803124336641517441106968797508615353139173879698213803150920580663198639772296840818335021655318790412655398791754295164716768519902421430642084005315020205397443103988579239285562377012478548772360566370961203224405634326977963753583030025109119602437163303627942699141596182732264463709818944127956875445859770477230320548062233424096094060636671555796130072575064048558425956067555829815611980336363886124091425343651971221043477580901996029823547851816776216036721196239462112610323222605680422366103390160123584136132557342965028539613797029403588338996247668099242893236255962478605740736603843345387086481174579080755784642537877358958262083234607629320698143238652443976321322661222507795566629680007915630996052673611345960794274067993377296171897014929678891334725454665969692901991343499590694185040331918224693748566367509491360384523526764164346340464085454042961381433593400314598615654463649766195395270419775667618077872538764769969182596208893071525384247690410513887034581660772452764399376309349479699740715905320767027916973152764242325040971333878759886153034371787418747598327599082928302099792942479016475194406182413957360658900607438063605862575515036260616543133022298633216965771755401504659072485914414105034761364237310295184698882803973963741812943570087907304291979627144038794874156372012118630004602525887106913920494689067408594677635610531814068626705904175802390979624947463214292411146315184128743591922855835614813243179748065104499344746986021344327766972417619466919789730654159246533101488064190187463938084141052645519897248817665047146471307405454676449386512524022857055060091193699396118280060707150757206266630977322557304513109977589690948804176007594562496780078079000458483945666440829414271624186813532971323876048965870787733227670291524309456468866387700288254180798291630302025438686174592525192209863681606827729493955994489424354707750741257373987332876020031224127798233891407310054803765873689557332922094069459791104215617406707416910885071145284905114001128823225881364347526789595515662504939856604228971687112962296469848206003338763804098238001387809356886067936960406192512309616702790674568452010346292317226846463411383150404605207239936064515192689313708452243476801617407552152971980929700466016888830667972678226280961781940106144020193527269709032118986743173739321397901790003537193034044316950148203296750816604207099091579999963599046080375656029382910249177798559196980365091664042359524732363589122322610684673337242722421420097173520307304406060805572796913858776450471596943613610524722518916847494654512913655384503687697577439473560818683202494603900634564924368451826340381444501609492877392573888244612081108869217038913610023002999330531870089582753433815678955390701762170948393104481733366266437310346137161695908850427552641245569591383282659938345395421853482489126471887150230003874122374637703485672106501044961682776453890176248948764009137333814171002943318008238262844780627617360980347661968834734629054876770341964824148987242659941612357750557558900327696723653381452633030290994412686123730239479533498419631848951599476934042108580111455114886774350409569924525185669832583939368213801161535605726478502393920981968180173194310364837284738345389215622096828658102608118504507503093574610295856021441858141569344138300886087623750449517372428374502054733997245438983475364616826275090453974224592970654792106430820801827459154663957058787708090632774896803279612839047630631963114710071732459940803727637525059801566841451573873879027907780244579031251098290969583523760434322827718034686455796129670521866801290905882645283405009756383526340371145349195493897736548368244755095372079494233586192798467772075189515328285384791181211516518660667405539228613994299650699592022350774077076521908556912913064484075775761026244091011707986703174165092132449965034585683342795100512360914140938998374106458640033614970217675026878917760499281331407445054576810821131820126857283249208338073364323145797071391011895500529471715393780186169964758439467840359616793942658613833319788701694952728796001599871872666832134478546191608407987835149233438995054031898625768023864968134244687939831875885246873897224228242858454335074727639334855599389269652254099716310996229830836837427006054233942443360613632821054371496516732650053289832516720849837714080796206723633056064411304407815122034733665510256445164319915289602731937781426361637141064866953880108752876428044555699023915540455947664322523373624107696087730015114671235841309520985757016830257197118694940436931398777276632887920018646876385665383074090477191865933085422963149871091091709876887596445050141581498260530590236094434389056657145529480664219800731476365470368723162676833836710796578570455926524470852126554912306506379395130838140842080167879877377586406271438113637342830070851422020522902841317009602774534906207377072229908369247054521933971605109432043409640374350290005539667900502343947756354235202191758867020289154640806231129062579939064682060238977161357404793014834650611845978577582129233545324899704030124466588286809426437142878799729172306166584966682259715376474381679280044061320856983645616706172823832023926493243353173380284489115865004833550992141751322136313609127883329251503510382993994382946643473265385896077912486494513393178115771676850099341143952906007863119557281656019070258096936553032905001356819304568468782809309181662777875270622623508396097917295515942219856644669454288112577854420220394989656248846576082372283329574838270480775479564472481103890953121911410525828940897364909615643407265850818486624151517815244776967582437900415745572236603635552027987680647185427583394466206541255638348584371292697999944787804249012430384602876897634395577703650224422337008807459018669853769715711445102792553674660735655106076764387788603184987827221415417878985580484656152895002285739821798847533396984386542813144087440897177945149737419532047473383775964939188985786402047425726984898503932543234253620511994062914562309257808866523255075766645590363576372907230251019680855875244017831861954594754126528396027371574381996435007820386545500356792436491805379450098072852976206758180806698581671864347281994924843745934426837660508069884163487637983351471100440731886278071081755526775147270354783546100068480691004711087782331850995557011601621802005790152252591164806821027631339192800079988896665283498662690503546819680126943186242258531611423082830378294206241940597632640749317447789986096865364768925162745314054354702821565612626866978211513110674595978468940693437471635438635933413342682437673463300311665498923030315965598771325501330449591261237135018741911807299016744192958581311793540517706935790241600941570161941134068482673402025688536398427051164504642355414575224484333985232562006385976600169492106747793121113608229370398729955361165662343430551969131551331341024501405725809579885343359982005120067308180330797959354636635021501876232247621766272140218462785097934150983755552156979875923913510630860721257052860524381463857279478986349853362614434040810269158745082048582547718051021708207220923257298581801184603952608072059309437883511542278922155163714129743682640342307245279054522008453586818992024076318294836322297574211291060904538325475280296766663382984127119182157656483422256794666191111414585678651302239196414942618606598863427902465982455812059791445984084510763059430675029615335531653770180481213778827563562939407893693516138198874611292071196782555532638463663546642037991065071403148747043447764951079702209580170673589561184197566493531441698096180982722255168512467264747612707453088302498163354140485245727966697250830510630288083011097524681021216969845721023214602503525537726508468420484796663012028570848230530197067179552584260988978025944896267404479879261753809461878147322923827001419592332434464649400128851288212007440310808968638860084180297332751370805491307386372639505360795647382067754010824324045746554965987284746030378763154876924983146491578766174253107197332349531100330552746825351740407257179025718612601217435070549230937948800076470510127868958609178401897528294703606245917075381964263597096886268161227634938521275269781960087119158486973171904450344501281160529908414604051481717937008537572762877824573503210212059981130234099343508476563453608301121744647451029841066614643774691189514609816403511694448724708862930314139064415351211840850890297170604910708496127804290268777579245736891442485516667831819234747298513779162165366103428850537452697462381736631876374719674013670216812161023861201131396788739009251670521015481774221169668687127141496657198716161514274048626820715163516135469440323463707061281000721800562473298298212636374750039557032019857378684931515109258192202553694039509949634349412574448413620793703249166860314972977123176487212907493710583282749145037847107873756106969479304076033048685155639993245961994127181181996711605038539156299076260257261451324170035138463303844903567031870007591826608399950766724144816802328224603734414377610920510827193515235842629196025917478536567637406787079570918737986421360153654803553977678925353250202414413046961360424427158401636917125917430296860294461846422277891818232993591816512012897571937900471427744206938085856410614433428605721789687708265101290607038527463370377903686145245343275123898498311902200687927799838093708580257486805044985906467406747356149699928005289998099569057434501792488493399925582927325773595721778351182098229107196701360651189957080850952730902711614048352938950753761593058075347373972634043228904743849376481340384232307096255459705169974085063294514178626109504652305969603721072344132654282534095804295524964463050418125205800980266393723827749930241949255474839799591471007740164516212769416035391213443305328863548105016868310562165197163299716829264857483851861725586410013205602434471778983348677650580855757671866869682720333232484857334264129637737101827752629874026926859151317640914325212132430082898338227723383190393135909658545343534704685691322695336207620252995939217486171991940068511795714166380087181215373531998837562385715559883858958961657861445245735953933069187370379237457675458402108599114038791181421773235892297783519246304728039497579824788093753030575873453739650688662524231174226075101593945160811237288088322296047603834150074506068184164452087663260295997092563059974909987817972759347126966934331161157684186285947225533741995994409437891082348975731931786278963101799727809153035196065774046658141196071102822304389336926833966933300849478606085642052654123735618040683503913746272592867066469426175632513454924545992041450422286575129684326875666586729988407825275102751544850101827854914258473731074553232729871934281253697293707753078207020405531490067576355828901931808128359196637930137068449517391681457670292420416826129431903206178552883772766867071316535404830284669139383755562867967587211588982508138239956323698245495020926538048323828832505458038378703722433000969599735733246791219925199102303651780455214892920527881254072163868218272614742476355263907237657423848297277269908376093928061080942376703921586482400197238231668603858766112129913897575893485876378435876851416037881911168671338887963307125126124892633123290204315712081052075460054580322159010662814485022309564201645205722194396050283732836066737473801026570681998249033467643643541089428704363764934702123693035355540966124899392088232128195452411926589049160739416636386245352923449594929327079284744921136119812413944607063955371867888902246069674136606895059799938787690103306949202530458322012786758126858413885745334388279727417341796412161180904828134164972161956499251495929162471922104222670525990238260092491960093784855302329340817555742926091536496608083949753982443811001070205005729238144988952876506947736722265695755254761172095212067944858947404260266085031454806003759109669683271291903143709030280689127986558814641308912826031238746367540826648416643847062529027223319653222664338715855566003544266166052543619841256419743766435354750447435850136890843734351699322525141824546465024810206328901319330473656699519176947454628142061900304378608892214084430778422374432913639274541873103307368292120857263083127573385858988262038445239280694302680264423672547205048444057068226672792909436104978828776935175326609841247269474656659837750715717664750014780310213191187352927206795122541374070858540340844055862027674292202496096845835191082096624647396263053249800739262638913567390248316839886460883253715151579330255714965668167596873789323346736956194263984519212995365690253030160673906717445626115391855269787834861561539970666060353531956615313418769396454208523784913466689686423365839584141321734114546833827021742590874674178087705137281035326940839782198799194969609268878114314953910113656185201239218163471850319320979316463361011951383200886847556833182237447533109504599652605218729719221393221219498468463713576941511090288659462474351509748227762773337669710754013782510039223293871649780676435821947608585199813534402036510629014394314430469954545078069315415451215070358005610738041882186419098426759412101276115657646876336641743934432310992905934292012545592068090905144642140887874176506856524449961266851016189476024830064786621572568934947388675963578321535342693957729878199353112018615891019214170505694844400922945562999408359276083921368643988833818878894728910509597721999551908685577745915013787917025885928296365774486006861736540625533532458097046315907046833816425872239469508640966749357480440415844676189273354941156002958837016512094835847917724978395789868207854303703048426111337967548134493973590650847173693416273313883995555920388022715239647903683178324879452108924508166942933072116914654499381275704599656564705806775735657112248783266176534049382295603899886124441368338126812427892898030009505746822942249654675294500663412311030717676560338626899347198546899017988999502293525288731495433128339510758508625263454122691794006852866240199174463049957747747845970448070785664663763494231040304345655647326669640290035284819273843133009132127920550220421011391888863746630431480664881658951872356311511419527813042883637180501943002565745970273013669622961521790262456618667795888007468407494905978855523044961438489704084816564592174719663402264717870188474952239605934776417277180274735079461902592580418500101507206537200484166042590024225968718151400817400654221747932452554721293010800792353608226867787105904336575785871455161049843013278286636459482614033246551867241689348461154670810050667058437428610429161523003152230623207364583987076754025795829587374104842342799691709388974318454587918990372409414619867531576463721602375950539940657455538258404743776549665054817202429612074170595680687296394287780285114745507240381444132780929560989503207730154411739786258227408037995994323271924770766542140050233717930260094006626293373344173792085405206228100257343167232848586643243186304619870996822765654079938727665984018805513152213303073527801588909571983007383032410490021357282110037660451450381536766818118042882934354631677253384624131629763060615133286817398779585775295821916688563213153137960424128894027868248816524869827804257390327074926847266075335224038293028066962327345796324726913896115920244302796936573306800711560671959450422028091484835090016094714370904195375021762184692279040096568434135568362836051932694621970190238444797666467556221965476733748622034555754667458633873653264359669251625934050124134570667729507904929010724089489326027054365130539639471181926812393017526397629038140142625039039296750567411874883457574765517642136433683820960630841091078489659673728880355573522594430049586512392676734381151709417946391560600409566119620510429753280102243922666662082359863576438327545174988035393809806354530684580013035543069179834717906082189629372971874036622687652347756994738255756354162086666892992443598345057217004052739987143419500925439344676506992901007332754166788495111440760303750099306138384466970203934680890558507562172463367490529922527149420369147238512829615557713916313913166546739928604149766771652297839913079064838553350985714954335618927695526725293125235888856152017931664300693581333321165987834134342365106755099529115556791936780799457097133140682353325370476252069868220179941065910569281301632859555401790000510359964202241142361775400369728881785114275622986468009385351249955934774421224603222105121511342033042535451291435767888434565744630977317147148061170633938957922058268158779190516858321931393544739110833696113093111021636315156037307114329165607490507264970097041818697482457961401937643591211611270345120695637933856171049216329427102028593243958547942277003068995697726152993767260582225713751396550156428008752819965621389581592544049925171443946034756575482070050177609680304322716992006831566936391777359864458875347399095310415844299971659150812338247869862579462259537192116352162652819127338733410205367475387390384868693390148823338755691197566051229832771258170954562220452072034944806468271244842822986467892631226603929940191046865298823865072817700701208528312030587751442690951609648019271160751933673416546060382655023438733008185926600331598876560293176463773891799529960820164646856950551163107833211115011675451364843166635757827722409176588186552936978883019424866474786993425237814537557214774029592545300487575247544557914668882573082611835749630390963611213251118047653528081980826211252723448294769273401439985491893951967682677358330064047400413548893281245325685520359985885199628540638677040523725268014452003226686466220631077424043788965639030161322780605382943615145612780315281569651417655575936717880841617641907348034894556120524853032362069415899658223594559127607168857369969037668966997086261127633132830707599243049991695910497076642814826256893865065646349526308287642994153975873045463035348779641654671980932792093788224171243734891656382724933475337591434412896611983668544526652915328316632827147867750432324602442610402532040494726500855477778599921549707982267764458792587712373704318472458846295373804654816461774256362730460930799477895136880978821465916860550143653658776319746783678515266251452431685834388927658967401695671833190640778376868828763387235558719800078098000321829552281281394920698915576004963670895827623478215688783872044544305814564867860180147563872872469570300206758462911528243179930693804679026493069521513751326317955137187454305747597414420693499783975401838980395677236646724535026194357680711779185075608805138069383941409301353027606963319655738582759316940375643220303472697863009388208042828069820135679846520125285587048058593954072742455177344148237949433228611181535942980011704386023836322633419364783808115878548077498038278704411542789341862779658059852340992972986702674356845965767425648993835663051343967235180982830091871125626299620241228815200889762721919007330384976472856092922361326119207000958579899142951157251005494992347039722204055733035893193859341716410980820904204906899605845728672749548326618930624852596646108564178327648177258108555882230504814666201438525274739459221296312807405866327160956183075528687617527287319144170315535536534158362124686026978288731824802991203524040887312251070527319587541623127296637153351792611307169221257396101746506396357885787900772449849380389197293663881622722324067613004686232890003475870514198359852346344333796965794000987468099748890200323532588905166280653935709581392361545435173555312156062601110249186113559041795267464530296200465507818605788611120202888487041000191121467158726666113711673154455919449969723079286614531874912204412072285448142040253644922235563241244431843199324455838950654479046394787502989479901086966565646067903098629944063042462787033025122950461790707644129911388825525441150080809401120112117009248507166530391318184220102400245652053007882906269621140665361150923562277016136091839047377974125661916528670559741599384675136418890719221042625847207514759319618822998825126278469422321263470435733090869686978478710346069592452031418447123469244442408891829703248735254740912086334076866444665661505002948924268373830143826451359355914024269505636673865936061049198271375467223893467350516274936731687781540720914920212961019838696793353418286675040191410048243235615547355030461859495073500742458638239686958562189662107790950501299695584524940619689154400864627849058165249865965343842957630532474532478442811496463051844953962172920158706639326147459767495405074479872086715741546615807290289779411303327691981478606199050216363714248940854060032980623269728244685415422052792724305133769693918567745930054023989940476328839009522980994091114066001456388038248356642717656062101447400178362454601636837398731168321420381215243989994165842582864508760574055126924696877873503315003027859069029809402960770804679175308059855204665454706000361845540600539668126173389892795475584573545220480742570242225549441831997864992366024215973340487530264903503627915958303340641496680425875024225494022395612102306260733229227947215548020040227367827901076779228663566632584704981378887346040325482081093388650316818176379437484054166631576404031879655967104473539753437309880363258482775173134771703867543391642260829488241855765162338577672476735511499974847011323995864131713953992857533744855366766237649669473075130557402616819895035188678800120893827353972412846136066689041721903812809544044210907971503908335655416336671177106287104345430536953575392488513533304630117350869460724364033160080382421708674350819980854028837796687548667590701910426785515517689081590238601025357713344348732829610056639034557102194726139743956165804106715796287426479574764143477725381806575687032021676065757145694998154673444118770778153241347103071142977999902632573485096731278397949907382712092947258190525605785856570201700103948017368135961127900457211388944617400554538987510233486912767054601619158343483187388185867088757356623168398254535266393293312368632776481394974503908744646376217433741258026032955615360049141758673485893335009326335522319906359559033958947721269579166068873739938219166183831932521957239029205598694314158183992658383011474401182404769366176943763649543400379267535816924564245363951380359507901477428723450400141711829758076847903044229247910972707963446984620285947947564060730281555769213335822472750803758827760453802095743105358318172040208940620445372395492905740827664381919709569755003398712114176251385277586804186968824865908280697388822187081239871562060461493666892978841723364581720659399173183015918793627029027709395731910904091590853432839357867993634929011678499727328953925881573253637931611373926154790198743600563973906685981076029971619950220525345793743795368013107434999482949019125937247989944763654617546820971869927700037505292878732361574626389806805139195809387053665914785551234795009296134603474980206509630969504533777656071528709005688278967477497349937885372865416554075090940451503077333301674663710181015904400024008847786916462272032160293262119449821963701398867285409794270390816664880187473560728401990168556037796891160213523689789770299793565660914969224629230029443174216767669176729709712346626731222876959167946170783456629646411057770749356387565993975916650926258902260351208201220292363898283398941428680143633047263557932240165403557547364295217830356453503725298729408572915784632875871967657063396632489587928679842927017682226656580968807723191587824311873360888926000136004664387843495042641646241548530521478202296535444763883630127646190344179339049090318135632677836482258047767733079801331818882181577768063104199986942524691379409715008484214274424568732094194237959271561756000681063335912775977550456243750462178461947709556271290617042913353081157434484641437942448688301388370525726440788127720420587193033885875846302346426174057323279798591308048767171877562292014769073756258831890262076214901899495975637845273698505445368497142396099170903191658065426708575342255275533158374168233638840103416631292912357215458186392105411875233801226467875544189265689330585177005776133004759462989469909285158482494498879563116944335179350461550164842683381947077373281222044341250592975749164185976970003781561950946660053807415959910357688080223838894154216491576843755126003138070510008271215436501219135942815517786558146900847009226321182653146843421538991818538822724159010907903007491547910332017757834350952198522998401363903246803403851978499902949186621516311761956366462930677450352190297876837437230459223060704735945530261251285574311078465285112188570378954170347601346221301000490393889578208701609730432517604663442609449568622193516580590115005872367115350575529463693325630598013317574973736484030997051346912708401487580962375815285620317098189036648248574233211269721933218901748030201228213417681405808394121228870254761500402572236332839412197915500715156044586170598100236197798279799587755860173197930883203152381299537763953082770689005072814692919774837906829444690872758805804031665014559439392735397053598384185120766333784816709613028041614587419825998975699215732919245598016737333041530397162695165357880116601669665972918477902055989991937483098857408770336055814672375140651573824968006790357115052018396474894256060823200372924307117779342407481505551479439852829780026120588521652564088862651925369041223317982591098792812982279086572339993176559740943610753114634155977561958040715015112685902664344462644280501692531675568369279733450843112268286382643112327977243536124764173080442983305088826881971068490004678264297028536710471722513305251736218723790584443124168722703376134002878096738660172580886986976655107572367949227942791709021795907770698484026143486794081087511739114426533104786094662807236554123775062867850044409532063033502581725315933932265643389497840002033226083216433621420173328204066068108530691653759269467312111661783173106778939462352977403341471124433001864769734448309670426249422034894354434864273806372393895108855093401670489087521379581899947841480963321589238647553720068141280751765257762148332767784437648495873272488439326405758823178399042498875435988608885023638870865301300908491512095331247647885172578617098135925107458583391968968478829153482031818395924644753132510421094524090981979834358950593033580400131049109719370481312702532608716259545265405377150100289980072096248744579231034254927125191660958678478384594279977718359346444259776120104407527658838282511533800880754675534902235538016523457963723591639479419333664799719231474880245525088926731897768304208357938288223393926325032322958928467858267837344950347194445992310707467799353452598733251980398195825519082990019189135786921430188673221625983205480655216336034111214249869596333267771092377428219036332752405846119900438621541674240751598889609526768077058703940452265849322098690412294268633695445644004872355018554792301003021794530713685973711689167417985425658617907913173746027595144130861710342248240145387258758706098621903612025434027659921338228205002817292892963629099844179245232717578154514746352467518540739791240595729305628587431407529661381007937984486763414018987967267391497829910469305687838096614514811219887799636185303179811814606794439746658475570225771730493965565001170877767145878757332269104173995626968089895967149957972318934896699152857989770204952985615796688323239481756457047210052107009496475991389580874548729225543187201754855251838572144994836395460198180461374935456688864370748393958286696156064279980687801729894898465370714248047023354744519218238991807409655574152131650728088180982819170384829450516546444326714936870367148962260737615544216193454382160900301235677356114439056731165492282307950160995027907127539711786766521303171252400050110945421135175090220794935549011642827839595098849421235218818955176972486964998175890667237093664971298670845051421058638305007459946101179873407883918733615503731115112084250055948826273873141164847182162749234513437003638402561360021613960628738545409842691583270420367350997312575786150248366317086546734292752512996572213619515155802439610742264976601639996456657868712007124784743155440038099088671565548306913540024797063236880534771238070381327556305782004625773230529365308975368488720398774334867487771978478479370380338666547067777244516057794173157464054416141284731941746958971847855765027482302174325961943289899425228311207704213224874397367715895289160189182079017129086937121345400010782414668256559475104817780055016637027647239102654703239318431170082352996545174359788776158748460824393939663748487569289097937917430804539973600875011278631600146861380961277102197643096018395036353035232880105026080602686236429607814072046070074424016060070272701397506803575882156414343957078397712641280248227029747863645522412034231764447185118383642505250654031109024216072752442002224265212198721613132404060052353464183016133921205221371748390552592582286379966737180629202735493308553052625581105475047837673194141741441404566606912982447261519297640264534383288837729411236151577341327558990531784067399608526281924309703810797989630704802026122926471813165499483521143358711856330582223662480808618667864470654882269903009582050996778071585155193060143774357644880714208556204099975998482793556200928346671740846914551662537655754936675067849980422669231420174777995903667996398807585932751967128657329834957234736308219992241654552368513142305562980496117260283602444182094131789494272868547778322984183975446942197645451556524416379258912444485785216578283445468614062480515061183681162643233496956131088728343761011204973394090029177947072275115993193676347449674807453437700101073303245532732234123667954392827053126418359629559469349789115671940509645026712031765253027942579174940446836674200570110737073593265847625743913312602345510050512958942633120905976965404454946523670109344749618160983567220838569517458025889706820298309848343277868502371618294244293603892307534497170262318023522684460141231589235572237304913300844901055681880697183688501160931180639810590767126433462282663569301053250770272668661882889978665210764345319970789916795386880854152509775186778979013865170558864172685884331998956941469872349547252430235502843721758514511337567915393843716984189347984729926288407906897496633394285669643525223358805828930100179248773409145894118887327866418094666824334136615716688377758517050363087629704565150323893245548615313672779787617920533161389267213248685110515795962279872324827581556060734730255268660776918948155293524533690455882610048581586653638309256043237392502500476992776829623408147403346402894419571537169180749225058164845249709142947546902708695833085386392587003997583385412061083341354568811511975373280315423787991826127537497640545274122577696150120119142288497743041403034434271603807507451098881108467477365484076313441510460783551906631161282239154596617149395615263298162187276248524153449971123329558404928988878377604974698650641448852795281048312684052783826941184333024306301593043945646858114845103862409920408227483864873588064928463179809215931536645859649755279802721141697422649492290700773748086673759004354099669790817755058346216989281047155823866904395275269985896937497714506204017296165454938671875712425672168140954543064687055349855353780218857616354072804462215541917652374337245507229188600878484241548836288706617907463773203579185450907750201382956127003196536156115882622396412383792150477514155298172509345842419888428646499311293395237358560939270036036777271255130999620594279522267089326318732584997674903920907133441695136962732744697377236009466444132114304945099886310397997510769471677398389955881276489014546212461992601030013574154248456142897054669642533514413467501698919449893173424557739943557816091480172700429671254013854257448309003126895181155855736812718421152477994927316156837079977114124968425084698067350576650929651137905116897702041943477672138183250510320146684365556591601594469257626053117299347386188068970607252952137734981676081611393250100266836093461718707863707399165230451924104803113895970985325515735051672770805997324589330339291159619084786647382935403512222886866142352337179188934164367973487288185753169113026026069190067107131461948931346941333680537232066979965746940151246405681265799058284091095996594946157439438849516839402528579626559252435207686719727739185788882374492956189758769499538392648932601567440895461916828355718551683434046536716883052235532144726916707197677063812210881230626088672787151852456217762504206861973576565164042187042287003839333995268820755837785990942941387877855004500345740360742987838856068903516741982830530656851744365185367946359519462528640151686178183623071936370952212061799857825949538636773440262858529032648183445401137056846661231879035069189127825151383629062044079257904363256215533932050860670690305641880152575753398458017936352554188223685040138308616826248385479155884468106712236923659798051274848904816456888315655283076612691297658852636630260941566597397593808323243514519614790882317160335956732122842777055417555190555881805377946390170849494996743742181111418396916768369595154753700866906954954144462928513673446685775021257048881387194496241773641639372412812528524018419972544539623581997151382918149853229195520452399797918852770296433496805607711002711143735990701792392549713670279105263088209803222548913062868141336274584533046836337924897996888217877195930268734402685537813330035230654121361754371706066397319512487267285559195338267931909066794759893363962498425471405661119312016244095640013869005073128439059510604517844895367829113735476300000429743012018089107871003671060017859601443449461465636455805575308777627917609386922012295360580856765321039087675365540675370955480457876761160714656269277821354707451972119491739062259652700088131002341115363194519468541567639229922555776112455843188571811331583826390894754448013383911801657416302322643385150418454323552248450642065047010817358774465083050805118380050147631110088171557824197353244111032199714150624421653832084386489995832472810829703437063730603751371058464714004081615089131518454329758332795995658481837128354845569577610949564407675903852000664327799673034506921235588122182880293558389385844857397490611688863945037174837220994088394539698925546270975264395011504402422112117406378281475121333536242063895759292333215699862066204981989342460060911649195765736350973116303014339732692782298008823493788627133678510894903865268733774578155388796060430770501690207466363672253667920717952919479282483774175114512432327843147744004259956971754053384411627983057007015367857082140348370134448397513135669632794953613352155532906187298308328794763483960485861336961718296854895568304841205796055244673167003571784231319623445366281035024333768178876764982442633026602468387128071877152006656320600311949529315757965703520928671789288105170635399725915965937911024241234639052911591973373823080718786516026824520209736613593966818841379602571660910019986429775066049085741432623753827666178239887423313143301813050898752256325639352382746305507110120896995949600918383504441933899721731610974849631124375688712356688633776181791861946221752513999368111454886518358214889680424076045132336797330052305345824469648275380214412904812906203779855745343465248636381068873722543288519679888005267416561494929457029871684466861448198776109918586677786953663065885521679573333986221660021388335002041084016172650872582464540826354715711834031990120298673466337684441694665996037219466648239885863875608167363806079896506544525050798440017737226852707727762543420612356140866105630910623133130057173754009709621372941529591856341689442193066235043152853309079520705576481559058461975470184772983731378318580080685890387785622136322403565035436072012518521989563118651735157947354654050346196331302217542466286489096783266133629991571295147117875730546059426387137150712696061772314498472661066201504020612318883899592356922918711823664031235854766562956780328242256767486115861115205402948387084850783980502481560642007449691710594459816282537171502722331699245214562422228996449770665128654706349124054888975258776134858404108606976710554716608386847105488235452100962082805691697449865341838799074690853260740053320728636617021252299425518506391620187270915895067842614868929006344899382082187897059515481270266831692473340328232914694602627600846481721196107043542890325600678447271897899471669757165709693323290188129955934548939405317071217088026567605145531113973773607826347056075115214526368280752756465294628364382511097381720211273342384948671462465341953196461748396215796194210142461177083332022530511138141456412687225733951335858930363342094309187771905071349122746574096979723751036752278424483531979347618658020629479031385447880700612563990441186185259163628639153912180973642197249594395711612347563603701585862432183017524021835915449559537976823734595853935555630178757383666192892011806865654239882621268576739548034751649254679591527449519244906966365382123027449040650056815002928099539376988633098449563482896691798527979411357517749623508282055744838766863692948722002223500172123396184106246051826117032245674674098166010341157225081672068845166437254719295328326432274406244444787786869597818337210275228569201411896848316898986845777414725770712785098849981446781441527199352133542369790899822765363002246232504182458920584569661340604468099489530882605720817818518002542906548591301115654852426819150060671174116752286370043385719292888893002788964571433212800855666075325951046147484925888360509813328834739878244777780076362653085606909306682706830319063762740058207137294373020970979496790207365129828875133020432811076873110556135817508013030268841811638606581942762285531000036153344323362971713703495667818530980691736611453392073485179940859674954759562907452726220699065221506234800247613175762871905725320156009884226303035188701850228142071586919816333129466293804914192707343612712962908753069816091793494003169007962704015642848658428577066738133050743175933450906469275182555079158299846370714038219046583126089047555331362204560788844438156822002072923536851558819671256612837074604800892514756224948859568020120349320349121385722709302208979750630241815719274596433591821961730467212926347411923345136496378419576794312122332681650628390773917877146666948443821022308579000248409524972453348175132012622433770439716698768262113263553209551197805718259552818720976129111691699132526826029205776642814822065029870681995306887224596890281890462930508968446411813328170671299309223688247991264498692775363692182045244810933407864290433268564255714619693141602021998144886649642313032925376024257270870359120147109007339324695320461231593858217919392236148726880621482889169624845072217128543429049856479812246549164905227738443981835804371712159684764212637816757829625112646001489734114989469775026430745623459026465259691814808897138767784581940065512848161127088100526725606382131125323784717219392312248365959190872174217896754427791643925012431642075385571425273420334225155966621364956056012022566720544620332563461939205808261004054963218347588500789126854904069851694871193315912639582060310122191563239245237617899336688526864814834800012853369194002833659012908431144282257510113984472412496273536179715151919837014235158423990305511028037745570216445403503313085266389642963413563451491758768997357113313613451482777796355899793908681228924297048649125348865080122507983142692033781858244884072125055775722271160474103211482357575764111214675502077632791559326985407333489390853854089252933730509897061846974289647572135384008650318407929202803958513636237183827120981927770329496101637366635138643328090360136083536801591328099433272247258730569768743363932259591826696559442113368914150051221568952712606226711737368937055066923610642130292641560628748805019348276988411617380068256811930698557299334218800303272130067324318905898210850427122661427022886228130362061657893347214701529168924411177620600443052530104235696205807923775164697413429526544761442660030292563667674565878020751540027519771517453216867957485191101531701988802100198365480493799871477283602829291250467323729568635355161084445324572877914732944178545192656336830583187023421565870991923344744587154794255993166129540524368778355870036824456540542560678077038581335071320471536430118786377998404834519738463855396286968087021881610223198343106957886849710216081977585522801841462376872120782984159729496050195164378819117349887055074905786321928647671647471526276673696764802408520528581970335316631620228195083689156252296590685125987489922262970090018414800787609869759691453918860446999681313010089130018935417823127655368619912927279637070069213117844816157540160532620438572200919674363523389935092164415037184058005170515960321957097966310678255239561866043492910284446132169167759474165623785264394181071819382142675771868526102878076666438298754171903370492247442085040441433105214288454225150012921892429668594887158483759433985962700490157190659055037976871907992231549296042621421515024164403822328822896128765048586849594679797431349004527450581141816202952881709258305939715756827207242523439139301560504170026294512907181549327025624328860223551434064883725823164764260528494063297260664572034885238412137729710058306582181373464066449127161139472760875619083426175585278340534136691314318587248983310650978579221814876564288100555278718746880734766807143153267537519360140905655048564074691518814494451208959256714689658740140341392110843332086120795229406950097475231040349097956557343171292889613195561266522223475980500382770595383686275418219427419478305335929737836720731749967249712150468433254691948630902783877254504272169362092430677917659716424748680060161862282069808273371333496564098337503889552219487617538744552248014528467248050442748620717446381957088459770588510158502266714056454114617280564428355553902042887958240529721749332139718626796469391472751016948762298082130367273302236948402041055049042546404873586485143258010183781439677550096514370154386111304272275205446427894089041059237297103770690830317239268713112661952954073914835188378635976297057643312636685713627939310694675632508161455014693408811806201474612000897863336563618607743799771856186213958549250244415894014098180030217599479617962418939560922333224558933069164012216177132658182636946155477362540724472573067617383592934853462607014358485216284278734580896894677816211428954468952533502750169516955235508275016725167662515748908939624620342100110902918196369470859497811136907328825009824803324412699606619005925212246359515050239186417894576835434740183145691361470412189314340304436651044628246557501695337605816322170325959663888869767626528916486764577824260011693198772305116312172005885330257071974496400613297208555606562475660827601134635632300015165865639596712297318004091210503913042885968870248386072393678114373710102987818747216622243636226647848063170190145917219200212496955027637295522415473642638646322080597064721124539392497254508091005576663705898925659174370242356787743532581797152134059263879328442746460612829723165884168905147829431020698718073970261345285632423188824826462130444345450128316592583754904499975820543165067079478339261853132761901896678106385238320989333401840214227074729769784142145121847423095524995006011663825186052213878393349679351883502289568694830916593894611101800410999421008850901783533078970562161310137484189768437181105119144378406333474945449326314416083335788124156580591265189340602161905720803198763246506315450124568402484688198179691347435603166162422416366700816763904100796957293416037617466409492287036618413835761466497326128132818702662064071427840105987811813612689578627206842595797609200983025501451274009715907689803481708918313741847882010999060844236122252196062775327201817713701155148593534715688345409144830443825610007638618810268785313252354223633963456525841873080509420902384289545305895295655342631343264212597630874394833496651813199618313718224709157768762448487199265337688812246910044393406745392955105095349545521957487460648200071542179027502912113104901211929051972341626517751442980392033784215524400478414520031637294391395530569076710974842089478003696519894869964324494767750268565021936162478981428290858991233921954086727610904169859129709396866439788771890160795588932963975729123939260101090845755487315795857399247032565199038494054464830716115827264722363542167271838807424757427264794782193459110400851957697190398741758353459154342025495273671893285138091350718351332780127822357965517068126546886466843895981832510100326903858016517821400165331119347229328209205246402904831823332923943529573010390644012091169689399544676288152371683354915376884385318419809628992682639382512671042784569035563471137035346081496610750271875634490585712170662771139111323699051589024808492298889043564764396368417593648396268333977539418446157930680854643945802679859510447701162725614869929927387118330758466725115561439148812383923565204981010407145755985683415136716793604724724865887634136011713695643932940155272630145754074154462230637238221169089707483109171364805110573736372725619392373543720128613684599346983895141048274031721500169102660618849122304894170017165499908908185033957941606465382224994444987693852058852537959298370836881691450098662718383816246965554185014877059882064260071339724950984395686082416107813334557104392944676428433550876358042523045179454799444835729653310032608172704196827708537918644672474239638990052073062521243069136611190896257491180993889538506685226805877333966790126833795179818706217805940115685814498606134921620867900263769911830209126895110651187861643625572537797495599317719326919993569781459827203332188418744487242324963239002198601764645539788097515921210629063069402128190464735747012084216726632389175837465145357529136621848169927958687289060439989302433007572258175358927431160592757420313732793350675103060075033160958149293524961119566482524040697855723784438838195606781576590718515114043499958253571978036585991389572137898886269094291145099014746318550219276989220675274074466602294022688541350925187602935626162548159664860679432902877689857819317969583761734738059012937796904948989476392787037685321643870122827572988596691758128055282576521509894013274981171323844609847240755055326191703651718165769923633061284053249661677609091629391156255886289184249855029015994881554170417189436316148441340521797546019875387325857142270689765072384434026343984137475998961677029605850387797451990295449927937881011733790684791591888871874782685236235618172846416693049262439923656452802358416882202147072398446134683407990938457081773956395761320672192747408679961856728586314083073695191893410214661059737696538127147255496949824258266411953003544539679354436518301663280879865373681942217694365785127352244611873102270490040852451689676348228573917158841591168362681860352966755378108672473922995583817630467890893857146480617178292148514306636718630889125133725357221381521597246470178532486271286403336073510280443456700187248925052171826914382039776440212812387490628469324148237412342542423852050951048686648318320751841593638553379877171022564117093015907159242745373574547109096369362113008925003527063578153693421927563464127100995335888527195386968116906769868242438799994164293208456882754251676805189258572650788883657767413003519366376098431706546276538756647922148849508862600390270021389493917120349540757629421219054499771129631120956379965232271899856683072938123953910858215237847771989818317350621398994877020374834541606379174040630175485095862384717520212955288842214535291195856809777292692646345868576521642549216456737598949941412889582020876583707837425960267524514775904081718422510374862215799291178463481177159413973155171264230337266241019273317246330941641276672948838226553513810654908733834502706110971783379414503930274444835809507375589242156586692663138407375049968461571498381738047737873934536880213996862532579642685537096788855185762950031869426564565377183897888024783592463688053709613538188671580140720676454971029994338466850364946430722961907668593274490459739477144214813237677525077060736385634444366381878625829221318518720222233158114127609018811032008150395734626875504181767819551545637308162710807365865465030123535729807841511585480232756193152071354152177064469884643200444734266357400474973267852914340608895225752264084848093150694040881084382861879600545733765757023526019933825896947434705698377042270700002245616631489689471838299111887061206331103700009032839521393866881525890951329476769087669627216754356710112916934855216195524097832137505565767172365379726651205900242344199788390810564062621246196067365906674473831650041978489194109712683744499715967050469667555711965679235710220807485891118901527189680041687274486468347330063195896537355368985254058094517765657528606896166867472861411562002624355330131516870778804731976266002338492042125331314636989199910824901718592827581363662728302788258799526022819223883990184725151943452643061214318957854250787378014397824564043285823892399510396245934453948733379410707305869649176737146800369410108042722363938542552230395912288090143714836646161223354016388040059102720762851208075824593443184893746602356668593011558484877798256945858853376688481123075070180988345899386853131086114004428033473092850916194589715506622781972645704074401331397203366728185746784193549287374349048675196991896701206914159352544686842508548985122815295486246551878092793236281530927901078259236565763681156801102141046340240326239238580972323634614242510282468262549887375355205696543845669266507450668480707612105812705918784628303498030194139733473243348127623339843969885738906487497275786819965403773510308611774719356300989644328582094872721854159009432348401060995975790768835290439713854775522116637778326484664550131140415573605282459516995348921681354640737074135184606979078790864136896260126509902453806827999906932628571118681884896052554336339265359280805277732395985062962257004537520292800994166833994964887563497714164882610450977883508091715547438210805160739663320766832308124814104518321515969994066084436949525690783471245076012806755984389844393761800776758707324696508812258142343242445358903276852945850500918497545843759410106629026495866812515522052450087389344641473974728311394866822155032217159971181819806000331472830175881349553337777672705343391903636721203302384894485836671499675119014592406217988548195742724362665297913141451288037417126419540665178054700104022990241167076340230569443406476753684852518942929824811885606040621531228959658433650999338552644709243879245673489253755421328570170567476637054546229973673422733716898623435509726511169611851019306949090053119745492487549341336370864312002533299148516684679082060886365864092646298453829265163216250493215111956877671190802677927754318599549168883216293742914827568162627250865816152633362583980718079407655797473368100703242975562281052801826528986933758691370800392539591915503385581417072131616821061180525336208787797471925260968127060508264042584866276373817328097802766723846876021448164084473338471720046490148768636488814783292320616011112135059415233628630535293517663421978449654682992816992787143253726577491339851516030392261811225052325352029578760176674750256392381965159776378923849698335794601139200903659994019458288784364689662123534099242780248019179935378970820073612340329423158390647284460850232713128888475222951530676383319589846888968270797741847119540218739480765916840903645435665225241401349794189548945868773527230997960050958465383885439290862323690949402864214275968445811765261649026021649239286667632835260421499863331672386465608228582373663496509187076452086019150148817093061910738983019841214508055620958653524278483173743331265618011512210897050922103625086363272389025462499361970428352379329654666677273925341020281958236588598835386438926355623440233476866351615058398159403047816645460612630607963831085051069772889625395301532909786542716689769623456915420962291071683613928744925126008273503400249386633966399715438471160530215407768258009823691919147380094004474518780687556698685147736221762690729040772858259026915300749973648398260695635994965463683823189968706719700213106377869430348228591939826754296844345385716018459293054298198161107114770341643011348186223850903951773446732549234138698445055538699804256154942332061846693644700541700750964111334797199103595928689243723320373577636518344127996950654074103301090374553344141593391479808428433204747655686242224458254268551947608063740088072357138863140824870808369107615622546427513265351602753406723461128669057122609746380613450861363686820029197554637000575367246133324152742113530527107274634293542753410184291199755586018158517017536285208762035930115192423247895082262264926317443946123533988255077122181619067152139821397916261252031319995246252021166797332399515507872783607316234395302808011162219627675972653726003214439862748729577515200692329148375100082457415298932271224424513924988188466210872825170048653344637043370555225933516787377445001403357671535939779326349328364511993450098258442348433817131645954458040348937087364794307153347756306428761142675880209746094364942551525488921522840263384109724134127169689319461734712224887003977374513888316554242850046077380338255703144420302879365368665549370850837579566228506593353170073075083300425920750123386051187068721242091740329584926089810701661560254595533640022414841680912873955908846684769946231369872619198333626547368043459109923712406086012873119560414677371809579989117317070409726667754833103474782343347231008763484149324982464313359688904322604388988924036464222303499174689214893684860263717701838848544243295838557328996642348757748933111751756722530791744751363632699874338683745644068596975324529595278579733112013728938924252019405206507578761718049934887448626315831168112207699029904144790899984582692224612928499467560472919733543332501161926301879334178011099708483200705483214574765882713618168476871192816152816336532700006583252379260963305474131820145836557304400533979731944221427962643359032888490394186281792511079426626718862614248200176926790445631339576562049924298043488290100417926928934778606751182994730778899520258184145999056765302770990705551614128763191559919797665969240885494989600699921935047915662590000939941214659752963271430386427885748378000618542429534561582486815465058977359079273289397359280031220247775726009306289462440720374537636025236150374329935365882569225991780917454334325320389067001384725877547299648636609537852880272287833833333710636493933872818316643632725034457279564347237675516528712496853445019859194541169721411028380932978054668051216720028147696686331349315685314197686640621130980874908899415455557520233363784253187189342522540491174391159006056606389381065378347601177026294223781248237010892660059165007127107491432505976406803420007631850428118513218572658294918631345754443901905839985737140369742981609028557688677690025495788224100983433958026702885189001268713737599454567279776092959092477445295044958343246356307036102255695736729569957425117684077364842634227991925983623323443487103920149322512385801169979133614141262876315422991797249479261044427560584817670501367866972131050047469102300966649834750407241352892266599994387927682509288428025972347474980165045352904472759716658762991825744452438484949698982110136553327881963109880481317902409395381104565881378102007120632194442417349889482229482779773008574373800720608791788381385614633588257535238897073990938844506151714881025242290079319380629229082541127593704802778745845697310147271557080248926505732249644265913715358177907164793139096989587010206828175711037822310445656027765718358283462542974796145516674707722881385012472164607885208038304613038333984660362832919375173028095397431294318373281201070726630257684962155524855763568285207218001375893073039201755614511840969167338819604300662932491466163030764596425954356137371222255902949994266134887875622833263128230865098797059018286151373649043888463717235126258431895501822341045916123352277834179192958169322814643032664112344724134089965581512907600821970062140932408075048419260650036142072215800136643072110278437091839020882328360613240731649400773510717587809362775617526322351273817718092705719542271758644303523952849389772995919410439101453166798588471932373775884607993492124011870147451046174575822121583677442304232183471070838783995221385332055304340438639981875178512680320141492374321085200302106080747718741157389127965948228340018752994157614801551625280706817631489989599978493340022470269713495816896937871626944398862384111882849837640060538979579243397374211284566961464827789330128116388481168720338519423231703897450867413598945935450056239261455514666646488605698189569258025653289089140465252533969309487830459940649719325731159734922851703565198209043139944315004095620388576261450589171650565367241105161442007439611406283288194442466132256327172199536583329499940467228423986139027051511790469161155222906542328923871987573976152303188806742091552944507413392037824476311942351001107590710842433819290964407737449108898776049123993841783759692619047300643186999055159935233274264236610936057992240124096347916432597185016650743462293320461715676183260853314284810348102115941752557433397809432492118056246826184579783928049331596530118433118604787674955879944543121086693749629471270257244632339427901566932421254393795391673270000304197356696689984411152900248020119155415072335289022513416541097506091674969697235509064572470051814121254605026282391254814358588169259000908132554926190316494388298671442649302722407919134497862074138974887839592497644488135338906788927648498846066461320986262192537764790607329841995229159936591947473570929020228305098722222935121543177999843200051371398951042630808197334834789826832965891053464185221117248089068612499694670615994369406590592263343534324130863444118843122452680968822639926951950546858749036840687418365105855724904661048410051911797031242530977547777752863649461861504842264017632828128620262151315514864409282954870712059082181612494164218895396829260437896908720890562974838011341856475748711961941746769271679974992534090438136741877220081328670645560691398842460245545977345170449078665388751539470862996619627371412011144778503070034506465369228323066734077030204630367893131656570351097931642516228806191595636082166173880529807335599492263556971049348192079922891616602853478334580334955514704192693121324205309128984224437044102897479605717794208037949547159328857406214389231403343650906372668115417216746741137658121032567343692724777455995737012579925353600569502526875771785427768710723481349335961298995252812138390979650748720399343818205841208730973965109567303606101573358299074626893938704223137966740882961829012588546089966425367028202973278910910045063724031559560316293616920001740052630010440068797308091007974717153545708797987338165760302444671740670430291166757903983564187243451521081816819255809570847294675785805046808815021756156237525303113015880385433128937967441247347803129878045691896291471827961823964902259475899557887514529075236274833086756287967547113919441636576081295246611177955305462494920174805575867509647039641771692841155482106024601307813876963236836428645762512576648902942812028985556868723767748670712586479541066997131895939766655402515674567337472566783837778467077898775368810274994157718909372043054845911549590649665541942374981174428477949630778014949681881243403174083700575791884685249680523298099798126166673839250051324988066899826166200263215856893899248498824998048982083727928747078427074273557554086982912054180761597571566434177897123698860888662444614741482278657460433871921960989430414412733432533326318346632239582548194740603912500027167562539876144257019901230626744779228065301692950144544809478145857524913428954936954758888457197340277761544334513248841062284730203376480438858676067752520144993682148846164797909546058471376571401196761618640270835798191620248876632007707210492237908764883940135108194445668328414824743049489937393196183884264487140426528317854274615274910066065857303612268251017014262708274090618716195542163991662929207988987383758425106525617794289176431398606459616968991627147376018209651012663570298768965317811348106158810104405540188079565415927487419441444762065236750848652578437530335332680047856869130293673628890505101372496315326273281527283058599272314797546733270065648290362875980998770252699421118290118151401599698540629660002314588391749697878626806431144562616542215440631117495300093785825457040735783593768320367222712232925101807059229327889527961981154149434495337840451149654001786132748066124926042545503064628812292103028006795978611615713232918612720312453077162079150323679454837642186305534246738108062893562579841428287336858473809083682432537293553266940832554468910708227191646753829000479725692439214508787115575837339388477541336269145584398273586798403351235737619647069354906286087194798125619546102607921081074713337400622044426206117424883422137624275110722169442005765450466742546617482621654494795354064758032749136319825756339178403480492302337827267149949074991556298250573555888915803176242952845537534652990541335735511302447240152957569229398966540584402015731915995715936032936389535622452916245597354935083412966975673860760638251795744911106435657709380581123922200160995642777419990542961786424474485401411973441023509910225756841486584767919862673443497981295505349140229203481939594004412528732321328839963115569559397352644267104359623922489092337435008647938508971693544903920369791891456826268653149761940229299447126526160338786578770992633237303059445322529186914599982556862406215844441800781879629752086833107353531375075806607089409877001790107537962998240365713836326847616738638844081928555750632193239768874458147906387316702169762653873261187086965884177335424134118955284262485395091050354765701383931995390658368769166401163824913990561159334644451964315957257047531604048797136209137559062645999102131775794214538734995822763292421368544093301876239438960555460081458915243843669074426137584370778729609113342637775788323885179195219853756329403733494981884656118926549074642404808654716209708153470220627009794010712909268087681531754344130545828554403196169966263780957649330399846603991059003156086754697221952984579833129075564432372281307704529552078863051769923503466460638190287587452797406815550119348963618099727557841255745676713604280625120398513426317408440747444616363344127293671056454050091924378374424565256597364060533121743527373439056004798585825285535584734903011976275352685848299690597072032864439670266297982005589823973797982353308670846198536796108590614885358722214138118393491536321222082851754877889743451815814407059654527826140697141908222926129778002048348930891413414152512896257638667726483910257112438487170825482248807764510785876440488251907225813566903182092856950702791002386631020295880992892303100487721723670002831635856124961492112073837456176215699752102849697787662081161461947398780122687274596319276583465263144143835477026245132279226301336208601720760731326537382468378505044161112503134040481953357977703249641507843498922209954210445356410195010224974299556236213128714555799478475993908117130078097692258380087189752146342332702335729034513176959531168286264422913016748281449598007332613407790154377014756451984178702309068327129292877065795586564807566804287362328595522813194249996221196665289144258147950610788546729152283813255240522548606549667292061989014874680596858076410002186592040356581154935225282145771928738818096616619703817431702849572650019513891343831600877245711201891085296616166701994071687273192164754659587957769538981576593527257041160855188043346868892571712676665518380015880215229423735277575591541220431634331659440767422561429206668094514965369993059329382278138737827472362112698421129575040047759581214212851673839096678278311262059021090978001507464572992916965633150561179202041522459487530647896811293852844195293514788118603327895426319974231341906519354666858221838179148649467673495669168907441514401703786237897460193326893409979494524952679700249850311759852255196261305883678266021547245674077616522866464208872583572623248368270499091070734075696083012446447477271098249610486004221308506682526250812441038343278142626809238519083481223076844226433872601081840448478750344225398135065914073576849175894178733957229853886884132592855684048683578588494808111655462652649801507543767353573206565059090453951690518134403218352696601856132260370910265645845122628668524258159718453435342871379172505029440116977433720434182292019979461358869815560780056943613675621043179356240236727127129392282947468108906549444053382312272495110893516888280924411187580606016273748473461128933482694573211214240592240858897189094518872886145892517106018125308252013645058469082412605424466730670306533757731933305315218163080818221146342483366054634579570389458150151724520641794641211214291283751977970471190367901256129666466107054463808706993406432274407824459302157623249683376885738046068664183688857239962290514322794969348883382402428995262405938672263215503022926313156418339701079562545138269304335769679688880094184483015293136924134931979564801622635105766539296813225222211552398463476978218816756215095874322681064169530200163014600754364874184410055351676030498871186599217604642266680693726824398793790249653460713674584443641209216336704984703871133752401316825816169903855834737143192691399496470266919102407385922589823576529258172101838556013315224986995205230289537813006840488442096424539433297949913512781869610461052781472399965970109439173252626017174870132329774318085822472746164985414797723960703376857603113515824330524281052626617933126890920161371686337775552523013912475002469999006542865637707280346357603680683224824786177818316439064837290939391346365991762802964539330473947156710497442892840911680329872090481464715842440751298391092669003248827456518316033493614248295046057174172277244485362884256714055402660464782299144978246733699556541578968415327264971437498181558421877904260566461126883346161620252015961150965861627528427179535422048639164231099264496677554665283201394443132827395123323883716057563654342139566800815602763136482792466540743662592828406324361078547798867506664100346076143612955359110642545135122769590799903795331136954203601231364822752821812969124221114023039154812485700738466513861938155020006147314798215132234575757610934490645323968612378508680327405874900236785027704294071206848715689222063244254175442355428011193545154169331362693176090333994899360816553490335968110373147492860138086074672997150157908095053213713301516032843697196260767372069907473749243777029285875125388492082956405887392364680182962327596079704360941488463057619289689097127691783328511612659399333944181364146187896684508667771858359986038746274385525841847801304269686230057944835720294101325114058726329170765044002575715549290319020305093319819495416815013990461743744404678039278844916042983236358726429357456773624392026148120569102472636054761913436190481311454553838588592703482103060970624077689648205854068458420744753585406038387044307687704670017860980765011433371198483475481208938382513387504296473383044215083028852081446379392448913171978215960457491830940763054297600515184253251656935579020016676238858113371306661728556034996862664419970025543043320919625617346029796769931594199963466431530731716431729097810338814381978915832937060560748616019038991148654937452217086580723494546968895801431804886950959373797733618748671613569210680596456329787024178054005085863634742525292727520102250862266098538694977172273993319370238021399517574431248700406970522789266534992125080056707173880826370910130106858247872496344533998880027925223610885395552115609812822197421057967191220146483998317747181883135531289768799393108183913212461514535420541930421177532180582356415996754437917206168788986094257303868282572742012318861633700867778066864101001367771183727080960954891145918903791647575826829228100171852878107453319602611096748361275244043644823040554965911252058411155908386402332542584000065996093642382952616342669574456118100728452288720452223292822868089609465169192919963968959611560228012784372447771549709918157257601963320925322684257797709175281002609139441030801528140373110008950459880946718139275315837994682704499618229694927535192734816534222949257322446570543326761979687562323411091058827832612212204517586296009608709454187238812250133651950211321614637928703080302008985618548751841478575917629948348283003873486951366605826818634196304266367332558215547263754308269393470056669781833286622629748864071335636959490954148332739856520085117540949238904324073495506644084895220322009291940320632612313454193736461977918719666110054772172097253255166581708024367513273562646536066772349187802017453633621010074061528278405466804714449365444565606544873078196725921082833094289878576187180072449050680431347427691567528724930270137626018645309226309083560216949727597766146498956295192186899247915990018943697575886763307835508215581349918483894309527788363508581761285956241723622163198969945160182373356386213883200884321150728617548350979394944359841348572135362441446764843251536674635552916998798026032610626916679763648795408790363740653074308922742925711644550726832249470231821740426114731318711395336368095904745690491133998502561928374404134052369868320394976017364573376763279188820057665312246612924271896092374127622997811026520443093122128374732324300931410756476126026784845748524367790894965658167211706007393124722434298606809468782102084469331319472723017913164381056470229829001348786542963664659517782683074527382082445213147959844925107053421384505836994987488412958804192671934641300477315005075411376231857037116284169000272100044299395682576194114188117243232455304659044981821905766886421652042115084432289939515015637028871746273210899756929914011847626169621421235275353633184528032106651684341454863933694770131642824605253007433835711289688502284543512904173700069176917187227366280777350212250104070717797068031595371395723302351919094015471965864046580348554216026652415220963946399535794301909290055731620181879691198033736710371221364734786840886171035238544879138882951348412882849995532998533201616464163805971416537944144732977681255189446655462865743225740193929355517420442417583635699731737244166603728267232122345850590383056684027611670921029185174811250084279833112810399345479941452912351680163244296755401649594864387852975093975978694032740055385696166802991552946540213153406585297646909598944376569247051939826685947709987592738332481348284473214893154722244839778380259303779417555919999209553085304633107767674194027181064063058228002841149881146386216511699503263081151316557056172528635347947512243600646811384117366234340193123029934851368066737145871086056884212139979676800118768083623937296189952466844105581368836474230461537089251990879258955821884315996799199335886659829600086929420777629552535972176078204359584684168290430728550871939586585079623611945339976806310602547307782125550938680890377678019123372903467335383715466764759005475570628073779404243937176416211829744075207279903306901101885252305114330914079166660781576838552732720198605918555270074101008693098835385935231579023743784943513872003193948595005518916414748886151634483224171515149465966679373279892302588346951706206093762022305053302850355204435491977995503976352773236916383212940036179868695252705404741911536792739231219531721171469063904765909168044689658935822047093211269531246995721407221658405650821959873861786789461998563682487262590345143098090355434511605566549315583102789255397175583749664820310203318182284431663348923463175800750785711977896446942188527251812623791901865681879237866984634375955463230256121424580159131506719530048289164408726232714755498574235833763253508952063317240911458143788716116401649977956207283286132481947441274815933023851766731252932271023285707597156795414951574245380284149118581892253169024558038459854092704424067433307114644694091483431345228772023017151035359448510148333495937724751824761062114242064947677297512376882443723597571237735243316124675750713084450302295033998907785795552624667095875507609987146177890827527563647957653887277531589608736836173495496559993276533567201642859200155417461073522643022431799117169967586080920158557763353803252057944772106594622313258543615127467693861541368126877568682540397973298757850975722478588386633408802894006328917895830608519131222991830616700116709804962894911230388326856037779533100387813440830361034018353357682866651898935219073775869533923281229769800191589570231131890503732780775155421872128745490954034637514742768843600254043422887725135176228518202598932897208351598444215230116762023393835500174794833213287959862591047562116254956905073346886712242175154775485762918438733464339049198266426153763297062469427410095938098086280995093481940855482815008735559265174838355921199815405094842638685116139270851519532502449838483747846228702235598056581036527455532936514764672001996127485766604245964271507338919665334116641544633772784394081483461807944183303222132008020312033943264601596057333661837886462350074182390415240666249727637991560299805304708552143638079015454465396536954894477405726314081064428903358876820741110440133217159066502284854203707310616524456677883377048393650591029408381537604464501096617947641486046046077374247303879357454972440541301991620366933612244775760896439671565834410618153463081160597776852221591856762320020596570616712823700281287102160434537375501181720136862680651057474931231076924576995946604761348831454012849352235311038536694221733204893946534745371178184115234531412682789799542076529523852162076513189450863180990093214381523911382950685237076584537001693612397905640680684378905637866239336496790492697895391984466869193946916479743590352269250800392390766037305885707592483611505724728113443858498268195335422294425762943618719017974321806777596118392083412464512999955970264434748419617651745905469252483895123962408919801192238382766004558151773674434084866972711928430640578293898486489327546302274428298115457071109930475618537216118135696176270120935243714787843543134486733333254431223844820974718401142489567813399327935987258303159321778347046620467079428128387909618149301794699669463820239836000161654311446275427294855950674654793528172769587722774667901854195209898759108209966962255528022534489799462543777753209210165694079484528035169696900359480914361204439866593459081043521670437148936303939924827306364411756491573925674344767423896731773483871627457109922389646497853107503265039175808021838913166428131045779847803522332167822135150405009290222998079426195894495117672991615979621437868759252491221736065731422278197365194016911506572492615914738275312927041232463052319027612218185218930493611771776811140253136577238318992699795544163725811700815834659360428437135281959265405685570994686920965559660940797790358828670598899720907905600541469945115840134777809281843040478245680934211868737340398735201658940515022782695452459177957800213008363008636780267764211810687055573221992816320783649753742338301505397106382463010670351639776795600514599514937116732825556084845096661651532155143628007139398987422505817375368751098604370016388916861696561333107511437054063766599253498344266013027854980687793905966953252356929890902106407908610930954174289737555069659279799575589187557064696862471692159128788670368009440352196912887305706424395545477412095820560999362526005740422505540924211904127231611816421733145779479430428682101722980469011096913146652710156177773624747103549455819412789717059490721404557693972208667162028883467022939574652453783960087608942664647741190730354790239237311516056728787521660127063811430717800688651304430649033049501525645595203015255980094892863515594443547315421568802249653692717837792347655426144503414744842803012298505737082152141618735802527051310874412326042750549628111059249665459682513887529459664611633896255960015971869282893246453566538991829516064622332443700849391188100268855103963463258894106876308045989573579536161864420922944023413092318250227171889678370565714696379390133856001851726937352072789218737485272235400759894138113800912245763315795219507890255342285892490903356787590652289216059382278955999428830035727623407832019779507270303027555195199562196911590191322439016471954134965495998659591646555111380661576730054173092162182770574577138134404967108278773407345050166855932351601867264919625406940397719097937188598479541925511792399724474216238306190393146454661613953479515008564243422436544377649614767618385307972813733107878659240995349128385790231597374037385876086616338757768831668695041589812218825308961509863084890716997200241537645814076480488610302920521463201137324938606372228471609955398506174250772494690488095389553301897605670654529565780262610888737322799244935577344079977126967526753890617776460395102648089113547843292291918663786348153150740723028613251255011398777690180445092291054324673265662538005980134695957468706690852253439341849994499019015638985217489471271616028967178537315196534814450106517425558508062178954730507839624089458053837494026327062926130082535665857918110961451941165045768595164258803105712025667937760145641154223968356451642970034455299102061265258264443411733354731126087098845284332116307228204092628611336042472224076916346183312944557240204404630998243738068325610908129741281996071065115733156576546178963439396280524315559745696774775107492619640276049256772756355100383986741613743987565188918281927165750907289475722800905273645606120918920030951256863631030001612852584401292217255928273071344216755330550248627788967629038754764330449283563340648665186614459183559131087462595722159941761472254513562902044310525688360493926518545127927779019682892799656687367029333553650991771539131518417034337834269903484516045002423506186545989476774015983380973949134160792782983923938337511406962702613466724005385217424768864741625459574506513889944467643358616616271130093299419233400775129484125130638610139781032287275102199011980849963673156810925063326777108672237429351463410607958834232544648862950235166177307444578533041517735098702987630807411781180656337723260780099317179161999156225334892298025411913317713615966912475580186928656126675115533912080244508914531867088558826968985618456485754503847033190113343115339021886469197346136434409065603049128754461708177450618401303378048105856130272799861420411344039825205764766106433542132710927258239615649923213919602536744899975204067274518976848010014176365317173085832682092906796818920793847629336803617267675784903833227660694847729898036888440558058395578890894893369152871222518822707893867242604911751392321099241721653918643371695792442436051514903487543689092202302409138684720018060212042025697160399605651338334612231247457369672209989174384085677352340567298213417602686951271309981191028844807846403812092722985954141529822124574695368654333618737568617132145111711415574379638957085073322056248600513296505958585320932057316772600398926172237869602324720193862026886350769670124128693632329532240267531526493531491525168258036022119218329342243250271222879821679062152531980107450400895226726891623002746067358100047482155151173812377124291319932585554116902029310066303345157567278316848147397210962919304391293175765280849799511076617379841630809764439528264035507178000178947787941615408115623867251842379960555845976137672751203155567999011566787405623955619200658992607352325093520497084995497707101140100890751204613790482185516041792100957582697013296519193287095496546206308740774258010263789556946615624282956045961000232978174473938511775907532404982424205655316965599980246789425211942987974211796666607546907832327367533155321767018646099829781931388016530020428568869776145998823890946698680663200622852810372504230798069407141026167973487165653891692852239608917699606624676635822908440223761086949477895393763989325767245461656649475786835220320671599790551897552035583196322908229500358821625213850825245821587080403133433858260097750403818681165903630210070096677216461335016188265741691178087952731712747917372915557225408028057203420448372116136023474207712143090105460632497844133874532012712863472588476567510466320373177031327108818615514959112737888549251986407426097881414858403883696513416671752362722884210689951062420090614442877634622936542111259980598923817759109055862171112460941148620286571239754111556992295780229107909394457427214849818598435400682801784842041804581068235010862720874149146439231341944742445226598567023184148473655543091703132855907781664843164785076120172139964390614184126014038880036913348698082145280025878202316840652750452954338728046509362598554025692986295192701559004775934674226945868741373289609112421413857104309765395214884855674358912754040627706264496014116771732280116884918411384419176031811058983137334959854704435866459665978209650436795459300786875920326097897065262355637670558345270593334176292106519719180085079678914775116544642109070738056917083373074918193153692665353726869811263188608089750903606916806559474376278423741271690392762660270644370418556768721889918652759729605973431525209076569657413081913898795371967374880633115653366583478006350984343495531379150232345289518597155955912200604535956482224131188858905620717320671874222095854213372697403276719132276472504597965339434374638680749118364632439987943979547608532731539019419935069044827259397851365731405252632994524423910062100690651447367439719122934661074785186171831739572382266091478544380000027945189740426364703346766740540043771714005549022843162691587887238333057963900548666846940106212745770631099346966589547788632289152635053975675016986397324778842692650230813225540632951301471961106072952594893632291680499831515397086671024939661911043536927862617648459507610875612184457813043873254197156933563106882944905674572149543067345033822501529944640461551792037729575089345889760665337173042916769337820807779928841597132191921370214756826394169149719713988354512248142401387541156269581747879147696786513981197495759092222589665014692249588547662568306076991080451142103810293169565140081225263888147414943906469915229675245083007794883066606681151034733072826876083840108321192919706878994522804001283113531887555231855446269748038209539429373762928672619012772506607720358075079833418496007462301817076708973975918280066539378277370830990892360065485434888914875033020755716822624710838708792794094590027833131606811658227987276414223260928024072421575855036199449295900032773480870267743280039939274764200107187719838587566651665231352987757517288918051311616794100640259404592854158461708944721923540029542845238871211199952572590871514781558675532280288195236044249726749240421053381174451658346514604450503957999056831108643748338517477730314874286275851266118244513770982874318722023270706659026150870657514775976612408832676068452435498072621186612839720180976216724239322006561660028440859357185747685402982160801669600076826874299511408763626762187201449108856925546013959627424882757239520348888532636873395363982710672569389498626546849397803714466044255066412412393069424778894798029995214645641547073709521204662047750916293202983462361108412903612043349256350955688170261398066719751166413792508351786794627973139657626394980809975915744965426287646243952477674507531408386128560471186549317149445525504841370367783495913840420506457633355758332483055535173549572399062530656419150303610507607988416489104972993698349208933275352783318558852334035646041982580822722872280701542990938903342973513413410429976563258157249998313584897510028178861906318289071471085427757472329414907665693834510636614414147162825553868950268245540639795431712057503948575469360819653283969770710467956796924268852985296176924044609809528976157364449969835734842280849749000214600482431952242660654508328340180836622645210518917906465804707870059272916024943293647275910681244585010931452480349348985090314258175414544403451567787475468566006742747069140999130188251830949659790504242707357924813080823111302024287942690285756418284656481297079330182948899467706441104577428923863622546329701719014276098561449994241985013576571619315747853443497692141172340905311127995843364276814597417300893838999519313131322469404244351104982588712360905874485664052881341400844007871544396591049158913012997980404766453359282420169986360153012042967151362489261003316973547274420300656864170796687839816614767837554490397464265671843819563076484400725507435864027829683621680321061770984080147375350126323251073683952473407055407410829956753129291588087083510468249637610993456088228849667339477237603967189430081641514180693367095320560467826953448205557871899923222028394906566679877904602624927655345921700155699642914115052493737097772443646317901381050777573005449413872861801351870069122111898144371474675732068280213607000708868117856458439277877110588200970402921495079278835288732664943676593356896638228456868686774827255956460093728753774208408078525728139784072996747923138314294854687097718334030081955534467082884625212363717704798301460958454809313350953048170282725313334015690420576992807625120487744555933011904812819269698412799904255637090399178946332626962258194209064771959148370773642234277591470843923787932155746851167796212628161085011410567110554585405127768626842431172961616454517667086193135118131208151976732568923068011327466454701713544736911440182569231480811707688802208518421930934313185670186682031906629560706271941473152786296395482419097823961162714613790829927501629135107633880667607689608524268225792245742302810879412781858569674434360435091896341382894062929424847512733359811510275677468821495203879775948513278918145918184913144491497230848614730245300615451390933064268999675417652736324684627559299821926451933979970030270855467172943749951434089571355972221931447297598380566088791455721749602942165555665363763148000780228499934732964335171391607865941844816553341766131976048121243801841801019750355025457737266780610621254526617163308903685301209601839309802099368663335903726563543086288332151898048361655894502231781811848405171195970118033847391747606620613977304771441372351196104831951642478694609430009848263415208987160048949829271959028918849978516807886625174420544511094338206007485585227963149447974492437069996324484222386718526054376200380282543992599407547475285392947415608035017365338798467309027745710665404188197820904250983933831033437475768385090549745964887926837412640165795972247902834500450535266511483855091830546828454026839600579310105502881324751069236959735926747963797574678892897324208363334103827312208547334051124735402055379589535936574668263287934951740277667818859157779892463250038806042626952006455997320401727389361885108893135652317632716956086997991506114153692745656494283992558340718501609181279704830193898474439226276281367266649267213485167219858663195808367001612395505664772030333711980581791404880059957061176775382794538706414194055537114756712388568929364938602628550293569924627965527075796597861277828827424938852846943860927591140472622281696242343807952670251938081994922215708015450286720003026053058051335059881283369033075613677646522748880668806675478292505234135525211109777410173052453051687856012726581838187364824896606427524539997485504208152096932968730000653211089095580575390906044714593784330556250611367666098252938824587929132282108208542816246958484204447080676456787974813191649558768980095009943392151006751090819874357428815391778773937659572383676471386681110078580235235807303638930296573786143463029182059310804308078956887489600067368905753679044337783568336632374649602566413310285866738498071250015308339657134314189031765669375241446313710941265730032388822871938508521479487415976353777739025669308587904450096920736259737721638260353097884249588375170264345498005564932824604112867038494199496904504212312638521951668361657377565920094504962476040557596411369151883999913587406667993514969794945855403495798821753974139485047457370561220242422301296812559468715111553709352776298595280639722426853725136037374852672694123751588494532026504177987238309251700459738049622082919874819847725606297188322116743877657088113502083476156654764840280997504212203643904900886320399688514637333120168472366854425539953673316956610991392759487217993713498055994328757163891318772859092563585967471233845743203750857732313484132640323869316448249232269066095341852831002621505342298334271627119274396397292944325617487491785815997212246187005436221243547244000201158923538577749200867443070109436673252744524728349943814162231394378672749904124222021148239513451271441553212250580022005082067530149988315574796878430750087604172729715037791060478431560744640757426942185952548074081349829872434502873638205199002110870533671609897274174969224811124788273764519242689022496709436325297108099297604988856826580774469839347540156416530931773351795293724871655143496995155029272564361202262919863581018065246679088878728423610175818506268274899535259641196059049088522577595197989845695572932309993301907059725893267533312330755138186695747258534423201384675735940452663951511738135825100554233155774068797965728784705896321692737117083772454179809753907589889580859426997724352775441239812742801055731230908000862508307282904087378621283502958931571365508948298567287338681406826018290933550960889805753540540951686129483256044467934261663307787745636305481720672033735067926463159012378900516351382652390499066616842863070499644484543909504850773061145959634696346805424037825997169190329782480069915362963260829550232151756982331508062586949994710637688059715986408406062726134463025304368694668548047808202980166855984852165646852569195217508602959475916009445183632995268826685303437480154262753383900125373869624633790737568742510894110997572896814393438643847318629284153773842098046752367878148492058623371458552160284540523494265191067888569931849000985837808751627425829799396245107745160401352920019497684456417546620408717487250147513088820483326051221499442961593940168573527590579245770839562968065548486804947717702236248141610356967313754898604461103955913809587852152247096680839249367627743583267845852451170019581086410269430022712227558455044555858109038611431934274139765335245113179230680021496612311751071884018268624851237419921248458155047392097229328450598188215437467581402028919507231107426556215481953936399025750049926208774418445066763514381215422739370202525662751885011148518255663010039791288759838363288058277321899887742369805540225375143575804035339469004863300266040916750593809458287830795650911824225849226287387614978521214353936241225133036459024227536899414897410661443001656698515203404497613509607178108723810983934284864197079404581857023575594959681816537477759370714898835069415141707075961066434115401492324485406235594607201981358000433564585097192164819978002843154932178261935946554959075645278126516658097683502518101399603439030369585244364867707453579832806952383154022226964865900277467027173212199684240582897938485268246657823518462735417281163214571252192618599693797297723715854650326513714371646301228904712342622418139836826164262978345023327671861069299768579137123833460687148830860469845080999316113061654152407559559540629646310689856352683342940472681862189156727059137911063708459151334322158950802307112344034502270553068808375820381896511143017304932015208284636349667581225775683503647295469323552624259020752307305306727621013849870277360933890940991077179756323001191647701315180111399138340075560034047510131765819948483403130296129301231904535888440187893737397566027309742350566210033325045802563612249088150705279407774423665646267662678711779984426182773903302503960611156160750516446603638205283772907155980721977901422303380852053794137707261312452598096040235928948491426683534465955675817840694202845861382830606321232970269290693103350082247865055947543383248629660307976387981347320281172015263271842016545162011848541460009921191102160183112895689655888509681489992698427101754427782850901868414556523953145829066317004596074012546146448361194073766938703223072606666383489856173009549527738175809829689019034594823192113535488784681180377919172505357505188416416850273373252097397542051693029761777628080748260782288299211226244895809164987855794617003296677875421543200757292825872989389558072735707795678037456676381485274233113797163106182962651367067373680160219564232050370553348248802238907477883026753461123943141111176007960035552935367361689048839279836923514206662856964210405285644441171521836354220026883010939644562407130171718783747037803136490551489683315555537894467828828706085994589690663132941308578585816380328103709686329833093266575793326482004839541905047758492219279714823368263017337989178947607142082433002982713181574407840431200776907867837032996184496941952054630883439898235284944921148768597905144682259084703815706628212240463351124214888921388983234532417080040914889525178329848463136085567567307587938017595032344861392998771316087421333867830009588657028436401163912951855479868351304292293371692092028699724259804301265602416988701663745294489985987126475570161401778347353311941998540765784146376858923983893246884346604844873286220715527422281702189932079933565067094685074052500731650444448742594265164541380604902484201479197058040163360703585031741455457265986648244308257779880242820444011019699942888562442364825233280980024387289394522037865740931486917873434969890002429276939950986533392684246663479284172992335763175175831349446753701233006570327179680037836957514897610230678434636054041651992640117925379976004486611789955355531256172465943687137305413675319061785943605947463698211799459018485410801946711594451086818436047125054734850919334842976515203513648133476718321084971442140336186263055258555930260894409137529057476367802490912682238344258333771498816726462864187830480803077900487513192210105569930416868803129863541380513951813319756242162081428071543408403494096404009233390969789197758326862838971300717270722783130670720825531639784604758957445199084765613297798376929355792668240794681430232916303256880130326698590382318345292061094162870991234751947942861426128027072903851528820106417060016371508027874775784966163795315646643786386930250776714652881582213842543486900325439985832477831726315540633256353674572287527454872233474771912339328714111970109385412193610438421259653113111972964886324807692328332575421958944930983003589208737219930908494929979629164645477375173977197238590285890163543748169670855547562016766725914502033692098190661823486167700740465550012326792024086692633940690651732934683982865634998823720831943332907357805849150618160799117113924665779973548238801591193801561682895097939028227107752004759422719248755724256194028802359455244941173844814635296381211564240286968876927016994768691664614260568598704845952471267052387946154732343707007132355776227604043052007512301097210752435957603896855592146117256839190575576758438938961851138395662908190232933341861070352162899208953082269927464069620974070229465027979128455071044014492301731028222657542162839881559612881972241637228875070484890310409547565833311754187614293203616913824259150779098409854697255452481228540817373604045687539796922823577430246236322424794222375503586573736510575695803734217427503362851021383402331296778038365234102179220531535884786671862816575067754815909863194103812932940677845888319321081485069288993079530738318320806223659813800681072953297693627323196235704846879325933139316561385319867594713537735461428218915353781305735001228578496162320040952145086828005227690704663818053836725488387180713817705312901502945818340831773401661027575225296422052579494504056721924544893337664850160734983265936255722744536474963960640777067660725348662635486842008396902912989074316761463381576112556952779641960446948707434698236547159037211011996562424384434212889952637438181623031086680689078533130210799112450444868302236845736998954485554286299766658326213714670841947282453008646028158092903175778149283890647801824888534576120798876622019433631677803309373343700656056776866617912283345485325269902642877827775534359749990166352616146771110875612390658002713597507421876857409166249914717797743604787689914295500379000202260696662592759328310763231256256553365262875959368961706132139358472286355261103749312754334846627527650238847885574888882461407298019835808843540273223349878820568409516835593414048994186866019721306791394951768476371639026188487879330524069555981797641178825033456740819999310102611591530660517073768421446809533837667958454983980048607360506712039757043220672732102819374175644829584360297762574146715804869168420277676226020958338240119303939320036200377264918935139455565017650506614342431286629635754891345211246442221537366192756663189969269200023782911643630239867931449655277028818358628761794754635433414934375154554612711531178920443528087897522450006046582015280337226991212795898774797900560374000969524480587865796988330737149567110941454716564433115363783095889963337178500930650401810748004662492312431098610008316034723037324826440304800761231194997320427055884694110637271124055370720493252740925861075862314813427631974598401400491965426918556671908045725664355721916380584869157087156873604057791848428884540184050520926077158682908817202937273001141841198343060376755331518029632098344448440762293986142719355135175883274316123921288219490026394475455376915637246169222575246316283189646614690314857879874686028617368255397759176438974644678449069605989517022148263406833740586477101570580726747565294202759655287258495239881085571825556359885213232781207045792420437897266761936351785891273943201920288573395925746061046940014651554164133449112029089306669590009744985641780935410648949510139706798151593549357679071110897348745621886872343807276140000506429134858873510695855107609154312830725304215015722432630943468631564607977495425930333167256228993145415886411372912466081682291030170572618598479495750202327232905782091633132747461336290681512702939098965563920278479109148222731669074380793573078694806289855147057682354193266742571852941525352957906557949066822045367848035395002664741331903321439306793980938566850562964937591064378265112678613145985670922463648584891830390694704820771956523561851284212046189701825458160717293097957042734213604549276689518286283769560171938841233540767941410352848738210614936502648333952458010731372761087279631156717274404279605427006826600852510462815263401546310833644274693340604992425038975881529845759566343288771539833825688326733751808769831490490504598325048246441443139410645453277401083645050061971943280482527756962006847299823737788287136964353448522674469404621852421618447051130076423302900181681249290095355608180243649709825155521556121913081563754665885790103435773981675002783139274181459215886296307112225919598810329067890467714055580191716267019544105211688555773546222023003276477405838898692104953744102542215557743086829340117591622155012561196510979860489607321081786262350903664691424674769246108743594945402761793511859830112502721101897910896912822889299682076894445680135414339352954828387847734784921340637600511280524392394784537183274204521026616348714919825395585968396097764133166612518785446105454013131728104233081427356393710305994260475314486321618416121136848481161636494868319102298497588292115572982199228856633484885168222968545285506683246799827914337009319494520777325299025647576992838110257318613894976091990810331203579738809482345677035940980341453127128302714247293674928979339319111723733631679640593316659056200245354136547076866603796211693657183321703412167959527318865068460403759380175431475950749146205453981297318855361682822358819347189500268250852471853270046509348905704313980457033911450825004588089673592292593768849506776818311257686197604482423277843829716865189739328103435785906633279002669186299885421296224448697755331223582025455647154290649300383427172474169718243198780248419158499630863354753611600887908003569110527958564801333578811680869466834104619836112015642279905500196712803567990047338508353462403801183285957622492514883108164503620295008122476443976046228261217369643949095313652281597329477752318890512792966738971090461881092058186342747957426203688115733689611573537978451210426840097433224631834614622297471900384865990825401464507904356916739113328578940222028803562412006538000625776957445023206495237881476694799474554256476359242752463298196796537139103975082015657232204380238026447864348314262454770745873993048005313685885788846042195537078975795125950356647152453813177805561678094515937779432519130391821868876924554275340458782593813410738515635875602777397484610252672644259389979270747650300244410011933473500958800174235528459311304844311217113712622570941289540140242858394696089855288928705641838401253690518361326627249199557760630917092903262525881823045403773237366656173092021102409488682062911696243184347455517953515426958116206856694068136841016296840878834409100203346773484792814527661713776113693527614810596653532270051342876106403396663848003790609916975753727697228474678495409761390219750663016528122316028467944033334264937473804396344331190083982761409786160368704510282038774730253111784689141216024330412111257326246981286641272625395176778007230378399641493142676449825681826668708328302944645566961269060482080412820104404829290383262710388561930855821714934083109307234699459997082010784845719130586353329214865599172244779056319541979636034284852455009556966206723332020700209189434132067385191059234235750478292555231135340843314568215513371300408726025753578220496992272373674965921280060167620559553224753130092600858656581162904952426748546913800855599600178305291591939853408454789711247484426545569013501840966172889152356000988320997500682368244798148427202386833064345160394879664155778621435032342227415180846237091990859500728703406941803798640225650721814733394494682863714097617217549323763322170710856360771267898669867352701440671765838132236078380258982567709426296898219388813123580711265221908504727996211940804775575526523844134448797868664980074746182077415518456233567537736244192186365388578585312551256260613073084400880833025056671882999554694362815052966936146697794965669732364050244368981491617988019701161717626765671007782718784736530983788604962055183013432994765135003430310570126139581491571115979932315926170053534161182104721017505512329664834325076483955583057333826267978910158985378782106625908870649885654172739864074161499517839883877867331511960420018643991406765979797263725075007951943102430669193868700961122891860216332731249437029226550944225321150737688360131230686881223396764777341798203383539630803398040953457131857366775195153264201538864611787075942874685174537126842111870164083808165064675510249055182072426715931303289846309084469313811828812689822089262992907149608423084143459527147703497532048192203701373187910961536842938417152075645233633158461810854346489278681857225953352522537370294873497561330454269156717469189831579322247136098173534986502628723614030320573439049515947440192142671706212784830881811502802407802390284233418568544320638739872836774747272930379986017944970067833273040462739088538990476294697356449906286795973880431884462554455641505030188566177115854107861278218868192305474978620492081068472258352101888170774252343214294483110236327788456591507324692494127794186891243323055086293730876295542566729019371084935185965350978809230246335312810713898053215448402007903994776452627471430404589614975336427860475164661092754535812138370087236248904417382257614996679837600266976177809982762438035728910806892757665915404330957043877500385446477138666206413134366639336683620614565835045137904533896188489786910334830550051403029909690772805937976503771518525675722947544935128558220166764715505055354937166653597301807780269980858052457837441145105554515753886143687410226764054059074804083825946268313900494758476486637126667519264064530498117559216783068440255384748931877233660805547461481281443951845171954675497300233402397333077656122585374285161131129328610370877425057293149685987263993847798014721782664934518491319427509948804439503935747781847652757335352111254426977937052003454371704854541167650499841929955882294547865278716232783233971842760002602118937387850580991217389648957546318437857877638325084118324385552289836212479132992467633647424694202009841867210220568318170685963117893746062524650175877227907904043863201234830288203525712606959958458256235103013843827246377604367808325291109787515552231222004704373238712765924249604968273136752313448452318856628353341680478953777208093800369211583486121634793293443414721598628673009559405948874165010050431858194929663650756144216164748384248525884910632912971048030802517948697263759211563624873649055914954937015422642224974155699365151055292307928201931080683022299673343069466894558138895748918514188274984643433994133047752712956825314139192705835413033798020555567511122964537668692670552492222850284330658984683051303318610273860031544337233375358275207058937117212157162185588060733924328781905932326907769575628575899497835953860753480316495364997376010654126823182615180188972955538475525600598197649329702387655848175080033967816301866484096305177815990170246992739251527638393671091125141755900695374883742353040581891229427107801369236679183807804141581568505543048691209486922140032365442857643283097767100441691246998333682516929232744272190997505319596147893239629121290368042294623938223664466448733337613070634042994842898126821360423597102903518583914044105411400179058224614174226697789514039196372717469120465654869095967435971165496545822671745313337936705981375997786315351184013641226046116675077559234972798492206901135029504203594711113139677101563044090416202747942252480733746888295058843391545759837974469470125210736289156048940081002611549372789490672984795943749037705061046707197120574208518377228642262992406113856740316129057134582137069041419756648706000666570252206115567658403201189287999679583402386535812476392113422998307261831187034535134889735407317119111496677266196318929654899223189243523131927252888499200741302039770213930598337732870217789240930307766213986839369163399732035841303341002573685622630154987351670076726437331409205220434126509551524817740245957647430517198017260320866969284455401078743129433174798354618716566180279934491205935773664443805408955401313725218728927986227158573782464879685313053213643112133076509803847710989092263629327060941080716810263670922227035318166466943734040533608466246993844080367076261637116837400701708154302178536127095620287636347879798849817834872555603237763787126761795538327750747979865242562329871764207794575855092527392938397181079446955498925570787413839514865058697308688712163051428025829914349542059345843848794265172519943586687673050926605986339425365719953152497246564613689488071198877960833838888411603676417563425279040762697733278819326660484190393193783265900213586442621081038490555614574918497843614577660425429459017449845817331196767216800626825713865557819577799291302829904746400091301495033841892287668996895270699006210570628594701457490291103914016921159585835407760739878385205723375402284706348224445462623104281566458824533048705313004444174368934125712346066509702403305930017018438169408409373484337968897433730516066946859692587928847705917802045526867212691701287301371624589100330763585019147114102589017039711615868428032174271211495321934973803951542423966654830443718968773094836569826064132820375198686720590863244182507369253944994550085238214925049919988036383048042325214028297664240966260773856360194262321000868567404357140227487137993929446298618148227383915973524342339983454791090390274130570583605244589222592254717521478969370589317111029079518975789351222553430346781869739872582763860546208079048275551458584510364799842045847019030671983904051866884493195827715520728980890917728359938870339961330543539004610960704276969914839886266924459436000434420530533553993471990173359159678337631353684853848673354691360681181361789183843843067327856263304004424437473205906301512401189536580698160902083582999487801095780657331330751010040523002010886771315484954671768740107225463005704010747799597283190700952683832857445454287409988504162437718521843761035354532078930606581752624802912230516034111976474455867794982913876542719018100346278590496416006318643114458382301318424938858582588622443129859639526815888445691781095140163542463695064698777832668203615776958169180214260122625892842973487153825729944850379844134315593480503994084967480594582711663466989950602234145767685438743560513301546425052275051215030150899706787427371016514729822813682332155460123577086727155450907395840913531288531360097944684238513505365317601501607646957335731400534660740071957085510728365781711145393195262163222978775380609624573782046604897009905307385304236181450651161378591748029737658445585576743181854054821958966384755638336571461532360518737633417502618491597526768978675675963830611896618814833435524347842812488903289803492601881622879971041463543704305845694944459572324486476462002508398214886628161927506651498441833111250119067923775871553062448815587948042239169661584323215811526400161751650354026407932948008525222110423113765857774332926398569319690917420785765190681929895559446321601470556949378028436686548937788189290778745222689485450936555295363293926610064492084515346191824839310422270418771141388750208019070331442056225805522067281759720239317080076956582044203021587944608629004679408005049696930396196692889791842638138890310709396056536077217134650012800900058773456079334068435810303481131079887029152678314286946682957540080379567436257932539038430253087634292034304591220782240191458407198255332969034761585964484242436150985682654468987456522689549728695003749341348217149450445559380387954313020693870549389484978421805902187074916121826888937000663877893251053170447661959559808238413316218567847897174541125781854804807231691159351987477282894029877411667162322829702359693937052872339606641183218174024392614923148937761913862967834346737511705691201658529731370009801910930206996677434262232234257143809470006038660580439331851928496322737103408578072617689039321069156280203327957423745471256010451887297980081449094563815335148871627552688928866038881867275263755003780173004941143021918632290321959201652902613311413222129741381204858833533564135279911250797766867770638244178913863629877199776974460175808287163639780886628867013761737933535013832474750051490911507198495889556905174137688595199166473042769579886536903704638126548334554192242918682638869744431138593333064399030145787461094267879652308755029078111484397574234298252632848715263176479804943917231035415573524509907278751497599158223910395549939676506658036344650169867195859273907925516337088100850545269222506532024086997019221037956402921736715681132430813577818796811129659185741017048291775397284899671098278860032752387967390188087845112668698478033128500263325713858458744525644084305916754585780379015343662989492824013046183230037950873831375991936218349329323639187470237018129839735523968650338691664296937357332778383747294921815425686654474768762500280215730823707287328671179209357369491022318414641727361225405041282843486448857960016800340470066810060687133864379075229711552583104198391651920961370093554206320475736174896226264154718627044254221686631800429966483054578982260454802654401759979656792064114337098870487038156855462216335609623537522028602133071361375797372815993323933394558795585202194855680919121061579336868383455753462944502544639917673135226410646140178621504599042887245940022407899904197067541770264159188661452782459973220986953607684590955352768806211185270699795583576174046372774991161091569477868524970872232566635310911069645739852201420563285087898900826633126805314166023106843554101148151972169386878738737833521405496742961555991171531312977318134728831052327540491727332701598599003050221059641944329720725265641244611767709209361712198510389291614829268092128740610228555179829505199619324247710019945828807520218414497666291415936779676366606631698086836713375943804433198984673241586401372880368789762407369745971548048953685246577539525115132403506880405155331519366671582489430353099357488290802876336277633562919274909081618907307717584049953270968133952555389171008528786577377304598984502752977198824839224675307740943010415770853042528842982127690607631602135097053259331236008128149713364920600760257722673835755254337293724824282650792031136143411524925973243610971006158362908810753160674085986642395326207860361064697361827667849715324831210425548980524804094263562553571640832730154071143258532570104677029185256138138226509150822695239084004710398376836913713638007159710872022237026193795855880704563835671516161733512975793828348133047826610248244287134130078518776091335782197115793149305418924399407734613037340050768427516091465211939543249655719174233058935158951048062767827060790757619196147831205434811319743229159977700208877282253772479309883692809445451348599303330662422364861636359581251516987098095189000394076725648583429025229442210911023975877195208190214031420802931602424838644813307905421932295505821602591705830759548599722715559039266567688991442716949848974719125319978762509822980466430069552357691756482186831856364362885366065318863701962014592873528357539399093200249012702856643478135951726536677078436737363985680547556795942009663007414887788982083159552964744282968732341433367993806939202832795856824164940540114803427936077455397581221870483331188969444858932452979409644010492137107859608327832783315590011008024865352218656476845278312056967063018977173659111880309428582827332928540785940453520592497506391912647042355784928448692091801508822027643914941586569094349959039048044903150979965655671927207870360193163210561443988407598719271932235781689718830804166797678735884678329386067388463371812518786171250198133844626726119682832135225850881115208998564813588123722476101033206068965155347613773336269291436938896574199433257542469073692287561296824883027099102912620873440673029900008215307655361265037357488416368950514307364129957643225853222165587360475185559127240658399820577263499435695576837468659139550137938376217978261134844675001284250508382228771410461103123436211831604920407017770240006941972586954866820057595846813068279768102240699319744764970339037045156855777034217531086941115013502533477974364823071404056412901429101296627595522382667688176332404009624804702655484659075444462130283276799393446180834942036591257083765014181694564191000129616535546929653939389091254651084270639867875689951557563139448764458581842141192799195968704799394025705025200139309723224010329722404881571698996797222113359211553097289664269010551204859749548955220006228585572828663914297129825077224565291927697555760322061633710043947864595812964258919585232057367528857675794915921107264753064016239556657873234603321147941194066878139407004752447463398254095830105823855565602440055340656225982437105914675596269865651504281020232605984399696930348725863020369206767180550449657861501000081232581453020122196836355407920482515880961999562091147952196413271368417272420648884921657295089323009199052811945818178382022744966281887631644494286015747745248204620350987284703617310091370982179157839947295253045062146546814893770395486632912442220618073293992673905558082203839531594505101047731418283174704884772338996162793780297990303808958868642887755000399401231030191661202541381210033659087899719832259883970075393143220179012057534883429237494671387305637034070615041318418669998221140712925482067586228562988536926371154953462095328263808905314865299538415849119462433683275635951869220790421917081850587490819126012321146276735222484619314680713119078563040069094325482989009202513519289684666009211007204717603917968934133478411502020523510640042087465859173895633397671837997183207381125685026838407270193644779705179509184818610881365883442099562344311453044038448539149513681920012524193793186508538657183979592378383958374035798866449062024827786281675220919190094245967443568146967393668515469612975748681185064527587285792251215208025165213962463381624005257188413199919818212355930830542063308539885310389680116313591339548277422262590169095353438138383969684171560524888892894259208235236234472265705368098342162046159137827258685388207635567575237672672335564797233053639697437061333133939009820949011557388592158256915625452409585453890598455044535365000297555777373594281638319856208653636015414789920314644329305253496401169932918229707038548021379058782768473644692054075611010806879349485059346751106229584181165017843376197523455153222977046327488585500375832460742576204277897908067585551722005997981409375155056415314323160420726808558394995245452925437851578837727526830357595843956041729013006737850400563286276724102670916148119929911841846333792050673661745879059062424219756512590446565066349909528046463708574939250379975145188061021355039425689185452278581902483838845463122324473537546937195286732983480485166527279935666682977773080131159250820160894965137808297853498064965954220779610893851267711885043178451443129119940663215865975357759829901993014112491501931644971158539275040325665509656014343802857269509227774514296964204335217006383172168105280789686676533778536717767677486421333439228153536332666532085116525576842963287802287450820792131667096896628178303149552330216302585039248488154463475711509563411913422503804405562529162989805746536850264569599174825433991919096020198379764862332951457197252053038097776431871547434781158390968993509255319034860577184257069218238300170365127349541313639610800185253012240687985436334129350233131103791584421992432957011585849711495564901462261108327457270510786539694976068046099490212053119622830522546029173417866356486091931464432352885188741596282240153079002543885357560134757418849221325724655246216282634137138611093892522274098785425444090254866514916687225801460760795113985756193500169177506573694045995426923401183027023650229720402759852649335851808524829705944329784387582957660076072440892919389514045296515362299157333294955779196650381274274522233663295997784227298053384387627798980163150599352057193206606140758973147829537290267281859695305857123858828203941750148424842440971228848809520810111452264483993271070145519075321557547275405300058252393439663153036642892036175807753865589853379046772912112754885951476136429577258248900839395640523726869989268298226153339284352828360042777895932576982145181967359288856027819221072770071954910164545135720388818809155439872220224289903632041756731803661294787178639656614396586748898961965947143873575984109482581846594784461876418596064293819402208268992477825353704863334011775280418077079419443886982819541651327990996601140623401977495315595895584218987158573166394737243856662129805489906956737118506014054887348472475497792698052118690253253061807645784492579929493604602461567583586305857781018307802257469399335505472192923659481527941835812811173838566837353584837115102533001034224933404301009523228139873595049745728693091496675107376980651278544908194621782583209449460513036352183140665806106648131730039290896816552952847213250467549221686473502227877539832549800296945398773410681057369961337851703041263675069661905401621047127405246978140691225147503139189817891374447504371004332037820839386446225494165040203574146099171619349879706615349982492782468075896708707918202057402078996411709978829095558946239261330138673907533534164922134037817903435842287976010306669491243877063987669159162962606615725372957157980197191867754135555894517242480161818601065607792296743052596362827570526308617117668554338488169123735953575062504371748346034887982315492550748462026892736057552421175679911288476827263773978604692525546504850679012371476342961073629800985459733200761674504479032180443443583117463411164636115569558659247216455533550767334533981950216977205312926719390274536633014111239410862116652075104245032439166843430010435285808902397185215817419179161161669117417856770789916802480576387359395427949808565337916255612553498028514009446512397451743150038536092288467458375692110431486771075439280255945807783890254007224504554461854759621949141324825149463634008247020982016289797192066452527489565805089695268322235345715485580471206752637136632769970800165724936026996620267837328852118029387155154749440735824140362352598637219765520242387323493208022178873959292633287759904282746322839797039748541660588500076058080741486649562502219150093700719441685217127625962533489023272128101681753940849817177208813926713945146335835067265318495046234775502536646901114771313380890486280022196866810050208946614289864073759987229435592767476120692619098985114398774231566015513783897977415164867424411039702669048156040257062660467553216437359506059054183223392811331409866647438010850827231595078641131881333626305195999970397958839471403051076069539758830275193120567753945602338360778527654495161301407024468215005502955627653011583615658929569377614633138212045084684752779479730697175926998299777891117618951825532302327146269396306619120954096487592718205772631617388509823689994021830150508931705632549444034517854133920805178817044697159450953339675991903469941687092779844180802528795557878801455517501661779981382291983171639437154237420165040215475805145817094843404644907907967123473916189664932331367084206221045728359194949315747812527626464089291053630570957181436613868045151650053519414101298414072365526102909864812011966252627690526957403221280789279475419074425564827994423656612187595337117188373536684142630046897636918459315746277183424677834132638652819097901588929414136635415241942010344518428003536505146176974346920674349661650251376372414235318887265021156802405352387567222120805135951452942078898525348835534688939501579176839528436974452532332203841281474063903178295950792315941301063387884620774346411045899449331525049619570540013870254069582471544607722477248750446423758254013000720672824592659994396657882091105783813627743275015885611700030042560316854701211127372538633044959266018319458072254277376112353969152053715356111383822553778541155906862153325627349744403825378285024842274177091385618940103255934001228531488392731192113921693348207939809963481555417511021869430067520413249306410181099468379159080239080072573869601289456019691966029420565668598986265023952625915918574166546301416515359231024210642790097944685516130453508288104148014454473899178640607377926261990160924331898182801671039061515860770285626622040544043317247745005501731003172094677479131385143857242685930104817041481145328401673006368189967466475661191267968979612900933274729391776224811054128422361810170072539473906521946494835727689416796330620764815694891094003229128585017570645926878518823977178369640680145523295479065481747214277813070177104921034522958589663319150513240566886947899869717741605333064853571717504359226300596884258728494508896618576021494479344560294680343871311881819484302242159165611772257359967724408008528482776591838363829750393371086450064410435870538834889097412666832792738881872626158982697496775911143579958939484642771003019152924475632690014964884677079498051799233623570960286392324587002149401001921414575133219698466975191717654248566646845785889915718356448565772442017654248992222324783786990936923797472182255995765208347912743918359541013245929055593973528971046870416754819574368037117185190669451237543298387369779374131951592688995107551788612995959675327847204237728296965194090239255166323074881789934545687457591581662072879516188073927938332301705225765080991322641787134691711649703245427920373970514138194952322086667150575647243200853475415490914145527004353466785545781264241835609565416071177231504914011584116518735409270774868503623326794517249222501732929052780146388616338239472118546231992005436935961067186263833165839517156289511236184314887712160191751751141070797826012830979258668665640910898341695559263893367707302341924559032682487925032191042434552839714275861143510500432780389225991497757581386335044354200517670755109311210294715244476180563894909654870592814344617723583877998265657408348369905505677583258360016198295984612959682228783626095376170850518698168019627395171820141281415233483551651906460675453211508637836829213989893545723308161929354609106131700399806215489515876863147570729801279840383077669157334721594944093423476356616612688510597600257284752621236040588888871492930819527534935493587705182011471859494808369296775401457877829394487648824333922879167857244683497792040549703007869193083368080458817156619455430188145379736636593971087860467759459288706799777872442582788136791944541674064623817564070595864868527428922445183708294938347912000848953362714650350426878429773195324960693080079109197365928066892332900203135533700264879267586856864703407078545235497340295612994273158120463141309697914742979963228961242106370876193506132439156390662189258967886137437285910496828021868057452297087149820166008599546965538454350762182389718700350927903849273046710275713459228324552011548859459589188439585590974840716367949142903916743991890906194677850331249323953145117073113204654435291414812429344658509483786240955440199957573434808205666282004255169040545579767042116842622471903723952328438043280359458987477279619723455472131980975421584692484231643633738240023944358726046522904062295856670395736322587811254239654463072879954265503907726957380360005563537512325045265630992921107269199529917756655949930935564371446571784012772882315490185478336425440946583804763086805267422649225929813880743212805212540544734099783315808935461736609276416157642297686616864277233711235222503837038157359900674560406042361332714608664529623159801343473935121390032044569091513682147197892881509708126820973968222477305926957342562579888201391511022095218933772954212014769225628578175169123796624731203735473158143501989468307503569590006170767414841337274824382130550390387980476806981549846286328432397687005611977599954387810256056132627857765181349445402360332837873928541586044513714941487750705939768998602909552693912152750298992541757488013317088825313871691946050670704393472450002495313165614607069811851736465833748352391280597685692498699522237084260792284095033189160080923406652578529031350316952938317879196589879135147888155715944803887497677648356474106771380265812849021997640217350556639457769482752318630344837499942549737481952983629999161471447610913236756538497814691087127087131481362035828649896878879639070665186857918563085835262215480270242834351224532987528557267853916408939791472521621758899339473993075886644956625583404344449151924315729601901623683388230329771306346487049468363071988789562060397668931246508653288133920379064183947512537209579588562002536289246743224980117987015809143885760725671745835738139045143725023444465125600322505980006005646592002534177441088397415190466926784588548413385551709064466126373883757196758537370755703614155556194663158907923491618517305305766563646266670067272853090096538214646873752331395288364675573904730849282924853712911350651223367274973825438263598677610966320485837600355344335210184679576481795429157049938373522122681648243493243186402519125491222831282990416035723650680854058233174365719536597390406418735654625040766910041109642903650549988115440530032905953320744960596979441090239569278474214825724271878373213144961674971904988210246513851705340982890244924516865992071222170431898196195961891471011233915706029706932503720055571764616251381295817334934335999190165468098674140621498030399399692313646742129685609560300612875559332506337572754426495281786098196818479616822675643396172650703661938124819718073099875945614859944710939242298477085932535891111241251719960712255464053489782272016465935021342897465689504498636930794178777765373111434991926014900272057490279947242567203162238628450092986360067037241971329367385601853982460585652769999116318278125939882660762331659548308921464795588068130930153372375574394793237860745748112489131287985740599785456841764867584964280225594759791525629135065939451944970655471260579318188793455755575288373653482694030027922051054268077883724723841658109221304904249871083811207977896973224849021844512944300977459184180012855259671678150633941334483760513346998134675361363997516059142017966504251486518531846404976947440948652764482662402144435925694550961486339067183119267074495135512184050661013551974995488394470827905494486452332364179912049457990350584250208346970516828845223070650425702421625877891001933398455755131724489607966325140762486331606176009355192155759016800406146186383273146100853384032674570540382109152812431637505358201441401731343673140096412638668429202214832766200645856834513891762075912796098075266561563809335403822316497244634120055391754372517847622560838724814326665490284871229469773582231441473161485812177255137878473219183523970351440877517681955323077318114965252319774048162174148754900242555549252044929933899794630461712089038398063607202520965326327842642479454013688905212740956994882335289666178028841505660434213108575205168353252730058175472572790065053079239642532824251600803488132081444427416305628703472175000872715630357766637736142690474629784346429625665865442949094813458752312518271913249191494502273874289217873533138534558749962626353340749722404259875325245527903702005948165740613875499124651500465627889384348037819441754927602051957686973505389581427241569822334424954548468474787491060062025070380416323266138053652873105255132323574711161283450580813651604948106650533116213135408294244923631797593163703256756834855253285750822562444236442853701969139562426452804676194256429184828560102198897803403031234132662281704655664865158087913217419895980397456991441531937371953029896473463794231730654724112012522082722250396942403146124825554985900783200461455240754048373527165744726730159614830489921826413336424500480006867305359696121677622010883412012004583580294894891602959542673063870696065410465997612617547936037420104163528679625624741486615247807876293317599074985224684411392820581308851839996657321873031584595662332703450164814716950723148636505877118806167807712602912179303814084336009844204670525786087208239860797873898907975365113884981031623966927651340331477281285803795095161458956846594202185018977148042297971698759228962907687831917506795902064574816320838120137067428299867436918399496252570086016337591186362474511439209683722633471762705961787656374680209756433109462909795985112137633051784350860143454191374719827915429627647701374810257479461085511508998187799093073993736224647832022737880285562656634032007563819354362624271465160546043539415325330395665782186474648500821651545077596268539549085207253249053904173696592563015641121446564873755661297534428239921873345783628261139099242394760776572980235216654108010349566132776027713094319008506192326710117624361918587862771851090751928904506928795987142095136408674688378149248474018537294481036582893231044330672777600087934597666360059837043727459729283361129990911976504597274391090384488154209964560010023553282229206653826700379222486163216497803105657127847364158185260525827689779258062486658729262182342705490803790281203718815152755505664390502839261541496128598133554232721626839416905641617429748661427889521177080799491675305710866642159711738405676085232824544126099620636431873809648297881202409560990455254036553708287132176334001768859624767893017080808889733696448104289241669015597531923648303032674081529414522457392626304976074494595503911370951216436024651752054335636551110315221580881848286047855416877706894640738155439362007397584651107181470851755560812697826055027466142659967791786519983747020894406292885452889175577653069785132850976884411208060747856549287290766661377792915326737792950683410557356612473183498915965472878431251272486313034702483507468493700256864362594938552846660988291009261440071952721781117669423574991006865314936085600027464407026914677003811779686393950353946459538073655559018374572148090953316604516193489428595372158495547738407032955922061352178946157723955872476350977874904858764222175934911123178391946829398290368918329270185081821562684794209574748179596028803217895251781865091387373764446678268022785608020384964110081906390122344491739825711421655611908239389785154760248832967119398935191937171157861543856944547038830006522012615962408181550353161883989429572556177211559406378608137692261651292470478386856233451877014167798355572853607292448348367104374784529068414255584405835026936626217250789112884819748883800979394435912177994115206338360404058866227452134879024023216991590347155677557582070628971281236828762784726223461713115905847282735916569838710892462426759628023925155820354186758381798633658094011307443627327289187286796619625944060748000943440713889405991315405861159965512558703311396802763605903357648102559596586409886977892542599189352892062082825269708447619365328945011251886152420795818671205432541549202692055283274150194025869062876531026333201428043970140012831504301515360275385379768408675153749224739737181608148356762478521755702604208723968506528301697621554983885445087114364990189573125038430958373835156449859067686299936153119190246049950350374195102705463847535785286384957801266199493726818264355242178484980365026100735302092536561601430775356715898041389543123812759040375016492154596126287450976879618244022369785372506924759329549803595807446351849931599669029644600726535164158611257169842306523885791677721680093951791775303191934514208901007849947883740984047713768756241265454210702275813334726097206330052276850851656698098544551648812102571347686950820269758376770208088576229935839351543380685699247500315740077765570463779517647941673695016634410430834385001205487003192497535572133969844066339619895906507907743402589073519989805750567919415436839175296281838044631594445518723965585296950087233850559443672684688979284533671693506101246137551206483604812755700930678332174363505202577209442676226320124469999235171358030700281133483851835264641827386406377765791646960806522271271840619829213610820427152078299599095013019141382839373284674267606760110998785441503247874593818159587961292711433779505411333582000350709877654394455527037702560913783631723104968581304378578872923542169586482830955095123664919608630151597228610334101564434848703354826549814163997411520796380342808265757115632322909456258328755230460852784270192106441729120079032830985603377527584492630268752362321693944546311372039408309143928146221579739020863714732355312371584232226382629600167486773822293387402798223664891198541026587811671445256878254554218984336441569521799859235315401686379856581039970529527068465162912404787835169251447544490743952437212167807994213311022185751893385686413117789905374542728690018857778917510965583058035063878252358156698682412446299249095839136407332622204215192562093112195831480425612316249203731266611815491732175460375600411911439299099040033396528057095823407371369749127355774829410918529793800600423422194506198257106026278718777859121122344303051425468302435034589925271896096716476708710260862572596460278704819104521876692896859540631585895290325596788265635839840908675696412284013680960100504019999302835194000327570813321127638891659481157161598349964490879096499533607421918991163268765598875619489080712925225064103672185748972401128969328411088470841797314307585804607519910960756565771110542351409593335328686926268390495562250558098572144480435709625439143067373089326097224165565415970991864007388285133689386122912772316433896581473058561065024969343099711226449040530432783525736847385153334633155982741308837547794377512799327009899407733803819217093533720979305909312178944064162957787008562115515131438515331711839886283431443683249123076909385933432591498775762798279661756286538186885795764581610733549625813617126362128438362740323338178370882761849672565115700423188413738163559196418874505937402375173869524855931973020527473968518144767336909186027041272050497657506351498489324251376304520475761537827346441098899291860874915208872402625610801933870571990244779945568538057082524036316213017563327701359167799999600046896348946028725555088389386970432015574030439353140991534754045942736596713041261668120125431040009964287536788223690646113359746013052960191312730047822470933864442040494456265482837196337208080408360282373724146447867346932970682333389284376747104588735530166976209911925232251139385175746692758519739714558510143230447893477090366995364864027315487173172764561513421630139435406526200576338635789932570787087289950641713510944854064492468214146560000763383994141851084463775877630477613448923817343750661232312375892912077108366492946813458689633955475692941570468833627170201905633864343038095361444200579016312276684294413301485587088577808969494890770690509378223346340018852142535171756919008507491935313723935035052676726139849025107038120406116163143821152049823165147730628368921183086825407063025838489954914453144635263135117046018641734778229378860111776095862484965483092694551102511739982164181951071183209276290757025410220085149903333524615747902287952039742345828084652130159182466294108458143629657235549079644519772773138459208600191275570389140878828100151775987739848784286452770971920533665598591400430717731883695170602330142573790403014603501704579122886998066334093872165036893544266778315870306059026433905830095372739266379858324746407049149337476288272657736710995665886422247315454057598168058264357869279328439901089628417318227238357547568006090600497658522481020247124303421068168173579417984368209362884239506749458231212189435353472029527602232596546622861904586793425720290756630405872938747006451874291080636729671649252794720616803918439995919103182601724818417070591664410207641721700181066058477639127994705296854818037950100722714330340874655858003768328280739956922422768420611848603719119750792599208200709743937511860982460079431487524462222381974346434317710332082857653028723746806345979544856694672716421341904368471992316108159710826841493526705145739210195392703594104128733408170208106214639421970934903528207866649630289142072926279040912448446580334640361160994791793495499350026581003644111538967292208827879923549292961170641460482291103615403857109772299664410959494744232151373076270700415642600082840818657642197013780194370512255829378829736774368019823024746190923198987240596661006881857056509779479293108625317739435294959656573941868211297529470917200006616361487229972914364146652726720803990480749583429975150799460538903242321154766850467109493662069015816971090997310532810581803090998933774522214799089210457201297176412634853866996365947362985180448774758180082005345256326248939012459060495409749864569712934601030101895731423915439935783417722584248533911087413713592947130322718276367857824763658142767539979235930553692110572180271512826058075677566203322422798716690959449728181406464398949261324099124135684053012320376482431448029116942532315081351363965871795101192174561656588233261082154949285842343331112584415648317520483785942287244286251849089345606654459264123665986703888560518323569631248372169557887834760335246073608913212909503399661502826241132283613878844617245289619237758365323839823412983123679587766322970115627768034145615051336434005621929314407219082293370574668371407007249573178874734209073271033856951096499627342998583219325165220981504087684161076162493841296685143942313481643432486136730010037288353678897609590563159700331526257520188034280165383622803117238372899156448084449760210122764225517774521000723152343273409507020465676204087091427980972659671012911998952742061455118133116848899913822993732851457661861484776254268692994380134174242175418739512041485907110283874137901040113196367241375849108335617600097933302222884769315046996604047565166387138901887475954674797633484677204208191604449684569167546988395421773784064644141484940692085984204915849071264841058027188678863709793885733433899609059773652686452555390693347363304467593608004992180488920627207999018129463106814842662189222127331230759055614025783501479776295682155686261096492466092213274230961359278989783419371147507789726716415877905995154678147743817540200568004012519306353176297794935868350216890089297483057177342149665821354320654016758466261208860486158886409066618189254940013675471861217762490902617707508950897114816078528360498048153370002531881300858438126394059019079811663090324710479034144971581464776988992006440641563006400094720246988288387009941834096052229323639523782712227365703540747546318248220748047875434502789608409585936910149624822592396879498385956334312665487650539021721268875947413877039983194947162313319306420106181934176279842900216550096034624744372862454505852772494056317967723020616469209036286742314082935610655579773970017401387039793692629402544492163421893427595957833996134575138308891859724736315945101887869661891129852441962750004787115529668111471892988105165077099059871186633175304601128008106780918632960892652430839001471699665072092471493373650874237223943600624788242911589403564411405312823426876931161334810151133804108307444855148864669200739834278036828247836873715942748779276611219053563649529201206684687889406599844768949568652410346317673873596027751728067067984724562605624519017480349532186942507288589205451225412660518331804148206287065149802333223665305207953195211366894953626264698361833606071717714589660450546277569346150988656804632320298765295191736550185239689022135139109218951032556099271462070605290738194742522321113266225268684956709254790249892923485816287387123672682918954544666420997085014333041063250731352750995378466943041145448111808969082256992559794484305893872204054065013870483293985886529419147160866639344323484677468089034093303125340141264152950131603883649790258109842344090127433662665369744214536705880127881407639462641994892041554811191434584534671543339753380933645408282842863395892643147313433629371285584841963396232958952695734075188866353924904265452125077826289576916511492455360136412978645638614501453422073426246970236553546623184892007191248079361231814545632369182151088518193656804157115578487092912019803051734453015049152985710756547787029399637778676852971295994157308844793115829209092435792857290612426475241958747878975362235912770739356403355276366140849148085698324721800642339374318155336556783641150525304324203825999709226572691850069430527727698900276436862632850382089682565634114367832689255206917359801638041400256858525863453644039213976532452715351139341313988492092323804282132012221839600994327532262636520926468354134643230049696798966424404560636586267392493641525029852839538145278178592588084054865329563556343015566845012350375636237787658127022054853839573079670537515009836018567799951445343054711789388918023570953913086079651625422468993005782712751286076276843578450496481708240196578510218430977777657736553235948421133503033829381000133535696328223207225442528644615707655894061226169967677176638713027069103636756988005795601909691344223978709260117227205804826204919629605231472900092551767638441859515303177227090237086381642090800765558781621885443036421233113765481575371566249603077408853620194571046039210512678011240441994111506939386992504821149525774772995667868917012443095096518512217952222431152707597165563315842566517773837556021541504879880756469841484679173790003434350779665732228069781508380379834778649822268125390762272360873870727680436976941057268961934391269633734992174924369149936921310731280223818106943319501019409689078397894482210301018948018861676020405913665685927063647574852160722387595311518278225220817704094567624080154967225637683887174551065043202455755712327337577332185671468894824625568102936928623122799403351252227714189978289442888507807974699214699226819601780203839763343273101656694061190508548684142177705203196247771435097541899851409687823980453059796048828964692224499160009684633212155333941811853789364085335621365123895163835769726478017790450368154508913211350537719815269233437422999448763347274018119880402120119627770148342087073973160434966271938387857048427769404179844229442834066594030989091365918177411508601633966843416921616872734117028181271492420355169517254477253871891983999889338666293859542672776912397639881520452822622628411060780797473616587431315228687293032484804724300841285482290605391066258683302441795971282034867227063953438437650033194578697483454978128838363675161381606268192546003119402635495177522613519674342650788514680257726268591300646826034909443992606404395278278012184669909247396863756926480504422833493934108724264616615193098746847223840036735852996848175735941317955803185908810379385975376226009359502628794733527330048518727416819345663701135451941804181157064832540673707402012689118219218228345954522773081908742602363751478792207446506979082039681959597241817484406024472486929804230386284037408904462732690413790333915374787450578864928396381599516838436853658345967147900190512136710514729498522221236384310360131467116562092209071920249368729346828165622186330369039376828033404454898235894586662444025824267131278710263483471724890504033435042445417611734603737467428550353758988854266484135514857150262116868330724723706643683007195161062195485606789366745630301137900320666483250231230549853413823788090861082723787329726862016364372477080738842440013068631330839041482632930856240561327711330996150376474288650906716483950092488847465005406177454554236967950436184205926191746025984042867190831856806772215102998293099869163774834637229128559763112203381144198148375890487872632414989250875188021539433869633885065669141613675661487073539550250965417259443222937087246018157925895689475211098635440291421836209759497855175231178157967882577399892421035169686935888575989981059850723426227744518307072184582480414404598688598690536662506233910576932717418210430519366936989594629583745650761137339673191779179017069661464536402559418598971497657317529192254490835336692802626895679375380298395984891893932185410945293675344349663302709154012054997554878584074228050770964058845110871816826954799286081641271840254697461230739637774750430601714667594913235870653644690188729658402320298493909270157481315737501246639542093513413251973569821818033507028497160787583644566617366769648322814963149581795816757761043803154972734711169458328193956181902141419566350762203358919460063674836061912850765781241230101222110607238407798824208667360625786449567886805118722677228698714610590059899752551424764978512252280200288206806623587633857113120247074664144532457872455904378151007589269300776671395913309663931187920334156529069644115617228330544739832273539818656234648326731649427241822021605208687747201464267659352063900483954896299165425656684743129137561201826467632611326106836089541259271325383364413957150617469932852276501179496278667383038375459044124884459341441503080493894865151379012982965739251115864285021383608736769972911585941915481889845854457698252977887159114799661737321152583357884811445047571469826182565800959502319403053522897566961097732325356067947815829743578895480484256840733242087925781052576965083873606914285470925922633710950802528766852007371000768606390595229180972544260967913553980150523877118958371303802615317157239095173390997331129536841795890047370270704930715345910063059918533682792304943045195786215411936321531784760148206049737463490030427890825826163306538639099888814855354756206885600761403849050307321557760492986836376392681941831087763395318176392904358638005862575787569949031911763532642930001926932316978208500292843121262397094605080042454244030219760397699276619929983863483282194514591627918147018677414923802970114361778418360134190636149224737289607227557889280049585405578852867801582002328195830058616570334398662920925807810614666711861730740201231880385053552966715763305446429659718743485415549312364769147045409682172605789294288815826297913836960252329509297591489807534143959923848109897079786494925599207793302783059105391301405106857510323716574125797378921370795280052234271259620407944272744373856840859161506083749250569165545878653696745527977034941783872711342670069012577146994808872105829407196575776007019941011200243058312037335467796903931578137793924467781189088505705975109606828973864474543650255261212318263148188281629195826643910248019218571193456953719304517341508890862713843664347832257487658802637484436622267793097976971848162300562866279083905131820549829937620048349920457449048406006804600393600754899611275294481938993690746794197240929860574117892794638037229947872825967785658560265532639181245169316146554182941749334098822589018975377523590602034038593314942858146336338034849319157994385380426230355825907822973436785284797029529928135919085960932716338020152143108212503308577130874624498750685916118024015354243653313861827642552191031816763451421380693163016240927688473039864780217400884736255229028529494997550373227277429266778055504917501040500978867670974158574134867223522651130629368423551188475148919923565558058265925135613516290370328633900552900393318355875937218724105904204208549029717023904398820469308310831692155300682156647093512725422234059090947042222307487482741728395124561947183682771901330053831071028161129441880282594667210018027481941852210146050856141760398875050309191835746252338941914937899911883964666278572721394555590380550429372855991136269708473679498251911107522781749903195807609740752141092313759537035651250771026224139743664254008663065438386351204092813334250617023290747712295123916692712537832393500718852625543309697577684493470975972238505324502429641831850397212002662259468600142531751099803629632711282131736723024472724713593499176209127026454392374108339767895120665574930863896710988784967087557332801045856702959902895858453718089698509866880554483996350443676728057589108818466450737699649561585807713368106117586657913576286056115561732993790047981895383195624528914346487903415850467493766262186116978518684809692657707667356317071099464742127824637778887372841245740881956361125909477345273341232212860413349302555565129723823203301179222607137175316987433356258010985586266143002872967756070704450240681961765893927239676463530188970857719253176812322770767273567057740221996885957553818586465682481820882867190916578037919376494716348021845111742652691221478033236478098515703446515650742228990522799231933046180936886782912041830799529576985079313802542063951136939558107464688559093782648627651520167226884976942474508620391138368614891386488223542322286336408648485703020935404145170184842213043753399596267027476962483022234566451886153576132834811708529850359492633807572249312418006569090654277107122810754743585714664717346314850765889859493238014742260242525003225101599599918743987372351349735303326165710992190597683521458546875028189717183067414305715923163286613736702355824220534420637532081393200896816609720520059486566789208900912681354674864186707264939670105739359439614580798092467355831796457667760134377440477157124167472098601557647702239416474839545728032282711340404065279987727554604173013156562078848777104045436563374923112409710380226414602487744221125157058212843889005178122150432121532994890787539472255349002638646162894734713469183677324156058914584605998112304502170573980636794848358958252911707093362630491346705475563794194971674446018945029438275030018136538725659259524060886449356106103217254654624871831495705675017053469985114277145285571913433389041700602434164477638456569326301271526508298331012815789776645994758585009139710116607297684922568783150058507623421538506730055597254518147418714153327579357070651012419742714150386496887395196723725936520159064670294896163704970214027952694350834041161486954821063769147713397666344492107835985322136896564221970212185033469605493181473783370661747977382159199598898095067925349461677699361667201419180120464990706202778024978322901840033963062331664773271333748546501984914058158189485060477417753726150760227064146778161333223133570953377507030855489051103865184637842213807509006461771159833668539131020800278875469216655144919912180545875521231709542694032711203649126280584198654612868273560267167074664783346715235115524480849958136225506665173418837581117686481875075899749127091088423983108343855514584834019734597779811609745899969615199418508008361464393242790821513847639389306670415837796825711301523574606263790120961977489386576583245305648308937060220268105529087027115922423758593266190361527400696423551551428084461540528454836951171781516800744927132506853426354532660005517730876846241265709073611401823729996753192288864440004287314783068160767655394330969430131235512226713299397624485344457002916850996429195417884523890132674343277537145740692221456237532364263715422790944212757479943068128885593835984053096552423461066315473437948443860880027977898147024198523888089025748100102656225365111214057698852344841995330622793655880776793070773867283488379579228113116917306248831234564991791408402549931579440037644635857094234314497862032392594389075554028093428278746630279881259952489832735175157935690938450535539815176124717630854262399838946913902049686247310798368822896019330223114280317646794876571156286051375206517310302852510790928466191669420942711401412383345737321669802941241241166670173289619790417328889322663362100715868478075041808050527959008271570850754071146145194935757747687206321426217685015649323236155826400381279703500468657779036447298401816981743655835943152031719386257361214523939362113977804607770439626789850649255274831104196937603181725856689284501497824206971627031444920170777964643230709507517462717541266506416899743612151681631910688759174107289943346020864855856579457669542805035132200249816936663978487820278492501123614935905627670100229755365615384168742687448203225200556039447621427746036702824719450279511342967452525538883901648777627155042866274165518600921774698625206656794691611914722466288731659045244993940108555425725942984700902316241020701781061425861477979018563964673439199886820952607021444903068155483165984837154712277582593444845056106537985067955734994866331578511668008702566586611125868206835778523363999919129668387792430334167118971198031915501425081825399368354855753198670517183827485563482984891882474441688337391391027641234294719793809207148929214646232925363158837796062275085845839844540313507721406450509606037844063398758223625721794146932047057019015900703334035586735685913688757434489959997111633087853967389821007135616938371160916800432515504160716596764707339682887748490840117717157725079974876079471028378158233018207039578948492409044911399603849650824817475052765694661706209417438491467198790037679787409426740742057089068180951707594052295417342428613201350726449479514128710952050613778497628773209926004573650454934982514484689212770889340626404223468423036221900634111655165972099401362571423372986975927093669227725047271762703879472283334113186382953798020082961666126467289933323476167957652650223537902038564103235126943535400605095672071185309083587545136390448006017333882078867688848172187854239303390133235038596580033063110495163253106767515423336511731502856525551474015912697488117626801485862554511277485498591137336182129210559632835997653940554644195434214661647111687310119646588689953666503273299708908160522959029292124225345427094013900995259090816030456367438326076438680251716427002699110797418226747751520970339799599564851796370373200808454254736351752227350533822552137472358531082068995929706110649561908898448143306306977170318518383781324533238023222430460538615902285464054596122243188188181012468605052051332481885362411411784567531556044929073874570297703176285615678347403171563001054326808424444701007033949089465605791485230318538266953104216286553071840719633040638977842874510948611793678478743888383578087274067478207268867566898169712610078609944014996308470873759830176628152336043928461122340980343664814817733249106442427161979404607462901270799417051990523411524230134571209184505593195335680532690020217467257942697222335078249691681817590987418242659564405440598303353907479676932330049673123852201511114600305043800723461245162272405918642501244442067160782838310430214253069242788265447962779438189100764283563297860442583468677593124379827195453693408106968249973747907351844470355930551600436958220767475565083524578528132662518013232337206261220974075063974097930175069996291750159773163147949423611721212937730890128635817253125223905096881927538218657623462225521012345680106081050347371113490263054829728713178007514932859483833991559355518386587879265431046749721598398795721688235806318233876272409288520238480476421779552273023567207486703272973047112163658166490648625346831507667218226240094057549189185286280103250446856506359501657151210601392863053541801706888979616031274754210573475332494106953389135398738858030797144262762899905943014991648822547450386906116687138659937094876398954001068296518988236901078182296993681352339209791030888324029715971345985207908536302699910972940436754703550591146838582450378295753618807404241053979136780407322763844416569178004230187161293832686266520513758928321416110026407744452255475723790876809887432324950443913107732860388525392612120143930387216016898360072481310246317186093028612985586582999038101307214146875596384252508905940000858736126773093870691344023690636721181857273657709574569168393988187357985515203056425988167874690110739138596680844780572258088037822541633960677630917348395128243696714067969533901537502743454928286101890497220018766781150692272515003960436199465728152040793636522881977812779924160999142393542627768198359923919008392793434116535270279258233991688113784313019555101862718925083049210888710573584642531223409125106392070484628677153103460578309089452078500810256025910064452442577976033333131127655573522410640683058884992471441907660049887738768616523124620812108423222174982871502467766970320712745270966593076896618744378421505695039949272303033780992134416323457805433991986765357683325491130811703803732646892750061968770133284078259368166054816521888464716305995073977273537447720164784525423914666299148844108570228396467758535487750932644748798995889750559431973229555209418808877896021238495177599453331256651037113537822263314199944629303536448673363864481643106844886051320217476238945687701748933321214966363603465161705579524680381166671493740164138164646497436110883562375839310093783743473705057974876776096747593478312381722392613524147453992882653278115014393590508496419698216766767983307810531675577815219349905858421254945366735545687554033921680332757595911639543935516404719708866838465736118947968927274448342168971367055326674335476737474847641913948090923977609687746449734474796616396905641187249000308597546749407875384869751008329355622340875060152801595058239263129117761146404087032832721261986584733928100399498505337351890804249704877664416657725721381749393682983192412585930751466572568785531626616695443519331359254510382378403147788855494886846300092724204030340385604671250704082959043711379367215085111551853130871423307964416758442608504105120026282727321219675039841116284756612282918598803488677248232507939307307521061907269873099990437073229364630388686466184570731225329639524167939727002172719338005683088267095801282699614896850483991986737441229344226236732211706620380277432804288874988270244165045125044564307689589643584751064546667527370057399302449655529357191302352850661530805853377140385982525149968060704825200290149496489089276183184198509550817906442904256150450537747139432909626402540532197416692480601327056350204171937081312760146889626464534532632625575505353529381674194179059542028322996229067590482285648596583718788348663395026798765620039675696004675439998253541496194868069118651729898419031132371166937152992496840069809776030188093371946437916652035450033105744994012736927743074547355740727172177281055585433915609212133706957317236643962714560591770405326359344320557404169978887203127869976938302123315010610670099650332163698991243995025920054116511011624609046342925380706058291091507226218759878285264709789482930239290040844110082750121904086650125493318421210776655488113907333013991296035545173136300874461319711290919847230192928405729088556495635493005746576761730218420414982602619211470318590164614776241803543300512719736074553553361159679049142048418064637998258515181455346301064704893103380814497042214472580658416126784474059278067699303421454520185454699583177428063961890582572994759314672895100480453630710167806964254764518301065202647486469747699762307959766228086548064120883128355874926075725904695730133075107718493775289418078866256680552002092389989501423415262986284153107153536525008608850947321231875328519235500986346792627992617983591897905620064820813216234892709468323707131551320773794859849089301993840053749595883585208884210072903038428196989923074211901900909305587368200760675049498590910018984421483184487809450455602343321640010833363395989980603168365269328378624554757023149459161658300206948862186706603306702688366890320038851967079245954869541613545344248269996213715730306068973076679848819800782481766745004567269193803154308248644335039417656234696387624074251020296000190152328276791236685277987398438007624995305595333532862676597627593263045547594469288282579448149602341950837489758395143340139180960421598654291331969278746965866663755385913157684741250221445427216756514520121277403742923366658237024539978037844295013669222581917649564640614804110103957660641217775126221616773523273256334226790019841287350347123377886282418533910456123252228243660381755304900879864058497787634914476501262803820404727388292076492736833557258267637062499335888791508771879367738411371368350942721566806600817677845018884857803405025055762865408195807151976342114523466421650947137759611366013117144208000730618212480850689609864265608546785600576617463303765801717983972134010323169236529306780872402980103403599334982772266957362963808496233460151034378279166349252956585777669844969377308659047153255887886646423577747196020106391772152050350161365411644465786383332949353429468547705323454708196550977957924834028501568897424900564361225644066409727588586722189830754423210818519110730602271720155977779388074192133819498834741888322610974571876730129715288282148090707103603544762088114390636828150557763552504241755300420454129815979593203073015040720053174624724244577280531490287491212546461876942629131258424930555951036373423639325068078250164375253111472595442479451052046163843448218136216865068897815829993205545776963118377571108657617044089639988219581679392255581413544117965494709169146326864504767733747175132435971140875648287292890938550147961782764920887335617288339707644305103287290643928578757149059637432389359788548928654688874768793019300125915116403157432394811757864319183440444728489368031793276978606838352413566534450862783993826691322863872652167576905556280137956748107433236134472762282643235793697535483202524743796950493010916483701321301691199155860695554747933049347062547374148915961413777060917679054367228696735480467640190412143805351585856861920453979298929487584132478611544355219634859072902217540921882196388418750701101508785537858746880565606114874591630317586007846050951782467551574187423930484364756484435908123637252120101213124404582917403811417028492921828326394256614301665800027995223523803409778716951770292744246309131045395736757684819853449811536698943215177540338963056292932196090348803075539029087972362175929419699222019307984003727252603090678529145605281476815284528946960827238726308085258911881027473582035140081722840822420643797764745677697775464120205207970376483080265220502118637470677372299362976167000410883182018734015558082620421701045339646845394577184960321527317003377832071175277176882600156979102576416505912431605335442022560950056237026215475763287435478678793253296971204751322998373395030096711247077414696611000152151628233450926894711380903143570167722663533867207597131709064510754222556624270082285557881998607937207440271178805815895279323071089667034887406349830428970070044366214161471148775231751837005508779748220475783682769344004890066220192448460713685748687903893283565913011473786867880597778887370693277317687788947823986356722511007067738075329792504275658016360770251987782172083354731637401869407998064354215414274481676114298431908137738614699117755693055513998093208573551732459866239934148363942351247645688215598421506418085227384890026740729621871804342795847764975631802926713735198541275536236954264998788832149861418636880457092227045494659988846798580381157337969680489394805179402170414189145562783445509467545420659132819409056487803082658601200942082072863359263126574330562061067844126579645720571716141485187976639960058118687166066049781707093735713246888685512607012880257190118439000213293365871101696518979519571193469092691628511912674609166548876036013438848960525604376477009058678810147485155702108877023888322007375775404181712593998583436456886481182934596486064249752468847940294280607668604650150577070172191965491608733772827992108522627899750097277979424066278880869515624481950474087812919077555291801860225777945546204868251434545145366364458746563477197243427241021100765700875007724763256769768813295027484652743977623639927147748906680227456257860272263733819825077563822471097466020411214908000551802501385139523298320061611144192734055534695226834306209438245344957771694390305987354241250920002189593683069901674328421040994918635634379956913518729584130576099942137891679880517323959910214250468399099093183289234418193175706225823629159174452028474031928259615722489008827166399811807809056745538714884591912670241038465547456050368760407481346302678418659716407600175472647841749106944610678907741442990886132989268306411708544504842991398111155416424391109340775611852101785507872688663620276180424066811764181374963083060599443595219608930578679462641564189233109014843212530876548433521564702703154467191791370525267287897509165043998070316202337601634741393626933128218215329740500424153826231358530658719725234610381339962777281777871963030437960624423279127685400787815622190908753536507713303587916842745862790462007975463796449722168726019530356977143955432005869645869764551586088884228160486025340538292946463913571007531421547353876244664855830311643583022621996249668381822071134613183874543860666981542262230358844543823378198640780021906184373180611830113431192306245013244676605146406317907086593613020870765478008659236661107424965244147270267199518547599831346573621321852479995409507806507625107428126464001933094862553158243889194329938521077330554700691794389431763252915849689077863027722192544246120777652879047997583339505713602687009229796075485879833861639844214808567994929500275890800764868180052588253302764419303896060216147979505651247198742647862921601508458314669621292094168755823150789208042917730558917481212872392375709096971991750555223258775275554844311231274002228815834496503723138094291828839964799013641149348340346986669966475075758433365020711216987865081214195874661320484869071039271699127211781008571455650864156431988570213739151891148904830344501046265347376509661730289806900584353247320540657926074834024500301461564927265488028085299514734047905846885005844529543425664300468518282840728663802747597397073634007395870035230105762036170921219109092012355335277801428286685752857265607668261632274123258377499059603155767325318521919013006115013449167628260315553861651485424598990400571728532314400078723111684955611643713511211208719151752994541844111028197436127360301121148110644326942073973571961610357931974476346189464691644997402434022734477633629250534618430730182220031267813942822277109749389902320460708093025493893930146091402322880705909816048609213249341951544413628028286570493287308663398207330713390736889643965795001235724948587483634441041590527542832027742032574464800467913119685815666349158923715510388259172095293325633385475282332309655101556016882321806077921244603853405605688488418460738758472353494734072860089341629354218415917188108828036722520269743884778765553743582941124398166511119173591064411790891476204296456030873408918689909906759990074289393585758277962433933098763478659409583025733345071078285017136019335469153772109344036761513779363492279828195455857226164245347395689484731836443159171596116975311753160183446989007060341546054139543937854845749688943953931697852886319732588706549594429982518263822736114358276100024400334718419741481670855118486203913356960019777480135448802960885243555873200008226371343153690360574260903157415685261430769342904951950723969156277637988100313655154563655943399333507547991285414614199524618436363573764747625750552216800852248218636132772279218920131309146171923835225911928891823037645565758029548793431836819395028502765245791411877658665007532562905342827768170932699059815905385869886328548821932090544162520296212411202512773762986004130035917998124738046294265879085237097592344592246608592638768995467813932529188418693763624707164486537459741688686936084210407707277630130132175443462649813555788658527675704346665935770631721705606974264802735080905908837116032521358340295724071493332019052260313484698399868591653628263636668946383457691617565380350240182487086549421517524814014129672885497298196534398423410634856316561200211141887204688185550275156101300084625388910844482695423630624527232155147024920605409226859594795578612905603124249687362389873754087958341200997027798450132832371123564888959326714283746440988183655418821098366912755703911164410712107917090186014057464838403658841901881566717694160414353235306508779551062111413853587766183730818733592097069994983868967441962754197681493620261696738118913413485857456762488007232288317787676953492512895276258753592460518427204399066033998705158283941672085139687896134537413507260533383093433490324581564982678710539545779314340642916147994043125742723197308729180259608891917502884454751425138199858586603518653486158374174178810406491719558475268795232050400939261959337252211553899620509976408678354116506261745350742456113881745681312509591041258505479241337686723011448243478293553599135418603836420254657547604880039347242232258936425191071078823324675802281222505488365650009970312378624325862219162865273378294463851788497331359752969943876138665279132039033871883373522840914229691801656227205500820680704586730113000968898005902290751762030503774622855945559388175232815945406841412883910113040898568017114528460958780715177132533957077501176949014323974978111501766679014388468775216168882347324583982746970605372451438222400598224347279202615972843668962063525326360293263541233422189337528782175690932799887936604296041356084046377435781264454107749640914130667323435138084370276101444518349501489031604567375979130629672145683346369790503064506880026121594081312221440490508710627873392614541647258549309018267465625872391331425442637410842205433451444067503609115695935110718491566884208588156380735102843637089196791321420006142497013675784088277107997086794008997044943353384043418736846707096776874998590556199960999565091354564733687899509432642585432121060211704239474331533825332097567702269335843799111988524325649714688527687654090406449636708054419074861089967863198255711389128201774874349896276023862532621984666933588001058487994409974097510594086902310575295033250344735300861783045803173801709151468827340523854463633898121495112331405442197733447115790683405009055584011395857137595879298055648357382714289303640884862917887944979701486855197940828533097983601496916268565588381379262011766382714646071933792618066077828040452745057102418351426251765572815276880414005801614494244194639215836060081493524537244490096424748147130259729439561240010264171995685870706271985134163788844256024548332096615905741660630233409343174699118716542074820386904796714077841807252343486121746402150870522809193359719575773700366074488112835680468763609521628885789228532793771127583600142350925608518970558241274298712589940516856631558025474524845606454214517485017150238397289832233540151740933412957330776013265991138182042817792342152333320323598865448250159302140741080239262407782579480001437812796749868765920044817845912638751506591142309631739417387341450805829321040700509601746000493255770783457819968374291057337132585520380078500120141408903859993978453203689032465536830228568231124261695168236217625835280939949444072897700154093617484175119472530850316151912341996354386242323872985495993720404061648927212895838740238093023549594178223627440401579360107217614515005613875375219674107826625679430377951553637902527495341067470094685024378336397017641544298693629423982637652816917724213922622301220451765489277230435462880694108631666725048071028547159360455153025935340054065706649147093210989365608430859910078740519183830106228527623175059978996535541729858354595063438964951953067018494658263490642200612147982997996213656667234635991244686748377866746262412418825345644894300005885947071314097856671040746512618341775107048680677981810288798526487288005283999685924762604657106837326016172330958413965763528165846361097761105186547205250843800250592404955271716473623145946017605978832103519775500280740009028572229903517538918853502982155861692584958770065908178575812111006503230376143356347912519331838677473878502368579383343560894992585261618097235992802369801791811738933435797067914669521621523092755112028276982918059591578799807380698812003099381517181535858617629401755438422171783608697917180249110745252789872679993893459870588988349625311144543523459950419648354886034620661939147861222169799563495972698908507062402707222402787326594845033252779896084698070775853578906538683667917986211786572780788039514420396365786003180767004838092490819126908561987307338025335671238860602228219008337787595386233581660090723034961141947321103442943032939284095867844926818471694588559666526414598913831483374124762374318182919792899950655123617491362492528444300643664630403439256461551568408949208892681951812882004403305845348725059316579573273009604322854283931405920791071292151217801885397259203467886740254300949732508702146191395318397249078577199524658045521421617310098589265041138218709137863410174390121476294932937491334556600265207498817915997057659950239730565545256444475126801271436948511142241440354813060072513942504112735782031877854659460390675211966401047860293602977029456253353744431844176228247579407278534942247816444185923577386962352816894003978706844960343073222907604170669509940936954751360622267427035771318508240205717837504131520249964658927229454416417441068284244102181679460022588042923034534669604657509923570775390714135733786441248645016502692612422767368206645184564861251572284002811352011944787160159923711157380110968134830399053315459610634861244254123914822078609742441518540685543815805975512400580588329135568531068601508017354188097585418912685311030195354168672041859113427926697205661869221737601067177864962283449758876947619319989087478836251719944918023975776008895585146617379267828674973321336853008399575665600021264836568548230677317488416305026936662996741203849078462904027634521264526620928683103500875431198527625286826004049567683519764339907257069695552456788636860973613729098082090489039097632549853213775647202515549589126108973271797759654298471227570190238691834350818407526414639425345694250068295044655083446226309518368593011616579573760960138907761078354189700472616558989837988413700633157289533389152687956822651186747698739738590998299326555560984201154817884383908213669956522521788056309256117015358457145242386941796534948606250801350454453720460075789947204958788463652709664195131934902267692675574636041953464700890489037925386473342486976147148299818633553973809972353796560976246822745393849118221989180760913006861235577166562309869452717036315251412220383646877299221851412668974835292096550968139251721352569996099912076510241817362464376350358434729865979258626362178826410090007177969824546040443444773480668256409820522248068007320696797985216486801517454998704731750890981299460508099928606277822488486249768757981654525516591446340500197043164743133541355466568768567230234895741963330868184368977162459484186516141767299610001361241505984854560716683375278572639280671126107815157740607131458415742866817364502511812273499453423080590777760918737899219119661421046408391719299924932078489836478058295879286436977301142662350875498675229787918404413655397967074617534654613347280831891694681726562282969258265209044175567217964511341897597728097872141242793489038121678182646863830531028036681253569643138703402134247045574226002630812234205233408841208863884826066734138526321944463699956025832793916852651527968471073258662523340345669557743478968223046629809552311227273078231911995025781046498776066124258080925772873315591073839914642078649161983010955175658393012569494608708410334439247028770686533179570753950644339429572613328088543052680338818226751348627654329110377605404156081348473717891221312114546392688782118583198399667920492490070229164642373033580751656205126635280202278653477096264072431249504891662206879298925636902435741895289242233788772535260086110802832834407769623520676912150372361705086671224519192956686057559195835245531074964446432239162726146441576675264059885808595853288556880387097037406863697002891526925792492054697333909839907133591216648739516684654326777895573394825363781697879382702769660312359094527445974531673857448964983663081433205590544474895719823196428645205875250049775873607204527956868185611487397156381392927616787589202171227305094570232616402991376615927949806403393319351953413412870609850225171069047335294960500736077255664160149137369486165816508622342381056883986804760675401839144868889531094801886500152367470894033879347183997224625158611312146141829760021021953475991758670303972007955730036564218163269430181122435686881992546721281854431936669500795166617180644871252665648366161776491324643279293414869859268029161772898884675084727596051877311693393283845238311700605825335322022523960267198654107271135142101968435384762142730275373348197417318869151144112701243851405155860470851074575334881399183715891858851999458408635447698866625444139805717216299659217788028877066417908606946228209586665588849533755613499778361842268277772572491458837578038287599141330169258535500632789903343791738502890555609855057404603661092198625655487675874689705523379565353089677991412092122935020864083427122807371083738425221473919455464993336840820101978980270993693973054015298893284699498372137637214432235367587388757950066660114391496008572243245064143514099907601116969093903622544741313840623780584660799363132417575900268339085438121655708697967721285349367061864843625929729408685121914161110753185279714072667420425011687402332661532719498164431244107160944845375557431836990673946992299198162046117075318577158740179794623041859233124795945737471901749605213420011274832733708854959907220593859877817719210516091556827716968227909737169084184678427825195633770256519645175316938315511450458628469634177482904903376479811110476516341226655409013521409382837836749646318670147633355099935746372844800827412175171187018148030305877918038648840048224535367996694690914494368708600998654245544732498128094564664519257313191404355718913335856670957177664086440430119681039441132540115234300064279817186450336558245663450472529234658357449243366136569055423796226789488254231813014833546772110204986104113507438741976288999071821818844223888051259032980525785828644243466609096627786066903671385340554133632797543926724566665411532241259140160767009235270553114961317210116897829898715705463852243974660687815465577168348866341953752170839127048544265277008522513297038592459778843526874144801693431110182593469373613061581948690160457154394311976419106185548415344707073893169540394143843185967464174193458394747908973225849039926037539972334456294163948704997143566375408443392056283931015594110282929270716425744658975459198400448318662787426912370830198546704266436964402654985644694217666352435891172085159758867005770206216596119081463428648590486935751087797702578378925164439792551683051151120731427973670068528840126259775858905157646230653332527722540173094364830533817267123496891443729890199154184779831219304277937222328152311727549823621546168570252388566856732750089521321035255017110544791747955789361477979285472997012819380542298905229115371993806327930895230881027975374910027697233935371241025453393529860551514942504531196466747782022792161902283112238574233198889358350614309060954069424603662973027408076407314326966493704541986803682673761447572230658064857569134015662157367217731582090231581721994696062467311984758991348858019984950115989420255334367529403418381028932510541124627245217780706186266649988292468265131515582361340616537160269854173947452373330073912652092381413072375587145583003668574630300849624472758870033386564602083619973470290115201097417042924291893015278470561739139276699583649050553136583658740549752858044392608530908180063424145492741291829388845447389479712029798154287051213109885317981823426078524577486506906926050843586481164694141443949989616688214006405400415021362037186929193026942876413444348172016584835908170071095933306366686037275214018903649515602242059020615116849059231197121967090986652360316378382835141349720238790436639927554119666998503065832457312309758036921766734089413317793937028913891800128476303727923168344743953941871076567204161794421386346152567735845396939358277551681195788147231906714466540408696727387122927788264155918213248183507606858348941219532450283098184493558188210714623948633479667863799680233812703944024831648939559186358548147283738749475594632925118877737221410534284859560937795976149474922308863514993661237292839840639462165854472760054380290191161464027652220617134612761146458166074079111399750604264894463062645216234609421888411507204651131153697072111969408077476478130144379109377121271929059335392429955668197836237354954337329753137175388129491691613419314473874636824124653344115462979925414322828754799975621175803509048568937964890021318895737441347390084913933207163054649071339069657922050692886335354375073939804532966798578417490473682409430909280242912173016342124708581882986215123534386002103844278709602379528501193660603771817027679130285943892409863503071920524900041576648785315260326034379375621509945747357832737414170662502650911427754372991125530480047494861205214627503228339764368140528532299325682777915748600476143764517718817748433213046347861650466182781090613760478894016292596408866560001341542921407213960277956963711349064915772714442075484420754435967511892025129739364493198906243622312889709013190158826900964089386180720175189086636715647329226721062866195002408601372725970738220499732846755143607139084626968799322320820530444083083895394913369744843190810144206385558326599990795319518873345506522265841397730686575230881355629693089274726094209082765693981837999016816617272453724218889905044040494210501911221624816502971365101974012062726072938185247001500623910519206143740911755122437091500312089957259619261829557175562425224484195728585017270649702176322575343033570729986780674789977968188170312822278172133128264966512487907290451718614427066299442789549345501751037343758654132136037054975077319824430651877651706125145163822790142008680556742822179381684359408357287360844834395667190173822342283693166864480367965500039734643181958724777967030004199749645108307538180132052466689987281945730419935785273686265047549596034585485649806689712177804652316492317024586224341439294357889242728315071107142758028414970929801395072831802580463471793375485645921015334537431197637926926632310356601056047779962024977397044141442650418559771927186953031244379035414831621358764447195427821380499170889196076242716682513081746674613265666866212293361087915634270727460688647550909465556251936211613449214415145570224616976435921742677568864477404506595659973109493846380732836771967732829627952544184675003720728964320904075468062212747254142209754796698468984314617175286607805740475095065911595629011366854588497239901200236796394578341349536224788850366719150891590992618506770832512591428371002950112217023808132874269922757199175730727233628166021962826888241890650789432977730364507814664270006460859069616553211638506018228187593974415487872537282646640446753834999046348225562941208762255629451569070393394627228378405313865516181658268049950904461713622145395242394088125792077236606392182335469078464867188168081153134799141210523245179978562525362404949656478957103891097959873205470142288854177542931582457991383213871008374493312410396671470563294812982227191385496332633189529459659200839814979235987450907945643951685523082102212154326591305199593582973750765922293134842202942130272835386627272372366926356309657707469137711772744271446193440732373619987879212093385636860172095930128284634790971272244776955291875164461080405353140570200130077908725326516462630056955219470927563952794038865015687553616093570365898925775356047459030702232517621606384394472885611737976104397178742154787627543538619113625672802296312312019137251872924541944783397739339495957153106548370659447411740756507408390461350155244936099127625200765499658473824549113454890529660168265499884274192128678304916233315368034053948540077951824162886910273893187201123472691799055617284233103886150633460839917167065552672846877862658636707900467055819399102123053991888480873116813788842467399722117172388135175166891197727904409034895924540093792111612637502851789612308899612194918613519653844373246644781908915944246163363499029823224094497774319603313319576862258516513788477930855912801508156498753695989319280241936164636744943221482371119939577140609988328304613367022456230574006686492032698635504751727299747210903432797391821478407220859511680461308436601260215557464056235858905428926606095419755571946163139102297505842405803170758973762075416690405115776482221113009720572306763123545496825237251791813168126349989776851988572107179479178238145615947489019444402869125614958923512952245937426057106318306740241748154900934451140500769432480382446502778221621155939516783412045496777540097662371534447333348132061583084991106161586108216446130102104203477641357202518059622616634794080238449359635643390668844962572048897256459700847131693297032148725927638001571601416386789027418609405199895371864748181709641094353206909234022039994742490107848692882308468458237176718968982706509878160413353405178618127369850970346573735199076728877884177020347636262492501024060909307728911494611451238402449764173059661676031368770155950915552404466331714139541423555830532898767667388926111998049145607026205633651831105493859543967229699046168451448431357011996375380848920800868348593002875180913801350680886360044846960167100884438218229365573726295788877590054559370242581758574350963013295706861818071663152515165114034922393499332744061068074536528047518736923171450485654755776543149183170926008891972152707988103486920115989237922382835876869572413968624566935671277393527591951484012481046629544796305363891046006361490664751159250168940427811272229947625110414491110653738503918639452096101925058279372422681479123481090700859476800344645264329948029989392801934155157739875725317619070359353632056943005301758258426356120520412907585408598670318411246223862871871688806646849330748032114357309962931026019784940909055323989481202547735914970433047901324892668696863628260390363389084619183106257360751189585216320810269467034099342339339477459786533108816888302634555835621654804055199041903270503292600002787927530231086498613188277963291171889873220100875701150413961499497829759113999688416130148679386738400494434269625358011067205764119262022774236436592112802238816831566237644210523627389135935209799322932298165740971714355522717539880568176008764357759303703539888745710756297511162144627167846508351827342515436188493609406585217457530899942970704602452537046263105209180483365057958170778299822656939307494514191533760409277514952651572155275179009681606158074945577565228050934815212542030992580737195896178978654939604926613180926106958438423563585089284569008586426022943352268506177860185221601412066571916880558895290331928672257335036156221669718248327540142318570535262570430009290798274411158091656552327095053272950305197613970010758602660763817419863279102978183366051638769446175373518417640646292265815167718957746176409374158213421134880531221245790590144442128340634718083494468780705619439704557515480792126539601481094132407434948443902529493694351359626403948331173129695268968970046240514392567903934001494874944501243508506660061244075750969276274597563369335313801615944347840992572697099562641604687239703806568879052762273181118365610699496836477652204875620594224212862542746145850677401422119739585242205122824697174104602765711990912758450363715893608463334153697919722407786272167273681667132769041205786830769375302842632980803637288665620196799284060399051106111592170318755119770974457644994181107505799001003448580454731011600238720234322929522448460146916832327849547722460261682301791696116902435419838767354483546621933585797423971620446200492323149888316395270815033147688239526729876584012946161137021023699352282646448139706948129070900182457383697338385729595288799617498423673005497181097751738071653351508836582926525925055516046143588855805179392505726293311656029826494480203945302933033103376364907218633446593940958404226445275872951441872280538264981540261108139273231225597666018889660552222416221131207976400148596814302273860385214201920290955628319833935224992086902651196498376804484229225293524849089513498338648795218884659821625249051373698369666249426734234004657526157269549102923941252566798878767001209957217518118025434784057663484928424690001919903546304913885249219827174583740747162620088488373058900672482209315880708827785175202484179078892226900100686349346723044634039192953522772086449370567686370751531055358411823796385553979566056509237852619310688565260522928056004281077217603386876834555768748601824471485902309017989941524611153791844484531962709578748485324328490439723567224952050298138423271434023457468890073621924784030636127735557551595992394444350564027086450202266427832737429723954394433716030625045211634355960180207417009824641468008013305604861538261376709517126157376150676764491343985931549248486950049854786364243386455480429493968746933651787758216911231780432898122142588860008131310968685815177372674861606895663836508177867402635100699056237915230198879977031327515996326271587513133796786857415534522732475619336925143610119716342599224733794279715208290420883917345788001032373619033063813947200813501695447742297186485934376222945189402603536991685360056345976203882667722780233379263930478506599835321671924846103219609804534870100280005902509305338417778284086234805316128627579066720919388904479042610606115638944073998441925451008745292971929246103906165964380319924608749516496661134374909129059726942734901588203865909234896942906218810413035513624684606432700134419559293208755817156583849769034615489377928171659538333346728761150036420049267970624805105062172969198765745402853138850000672529181403418879349052718379471402052699218265450730453218367331036904702604251971458106806555651651326431712398895191256525253082931906584186456495624806600637211495170839153345211959044958733148394301105589014927517024574382451052510023399814118345836447621424467551975150062927320347211369596456349349230793197894860734219512895762842531928129438887081519204097234484324502800859250967577586626189660306684716774436992624206970727570850161993563021007289829713553560923061403266921410989139998396672955772890575684224210511284231025459539333828158350321671059315020872271051147828051595880153128731216770803976577107525272859400913137341389789769260948802813137068544049720073680363256724398761610102566027799403512677488330345609559056887056819159737134604272305260117161002567227831276465782110209465611180118642108889465097798532436374776310205456452388128652230624259927744710974746578534738575353607557747090358017035269429974147138495587954072081222484741091130241682477879608276830719114147916994474788886294882367830708629542375056460704794838965543462463447927146245370997175203016554677312482827200576230297842474337697339282014006670062497233905310361428664208369928420314727729921004037903596276705342857823588576217188338637089510291567157334930944374044302840220403140157133794597754884576773921285339841766389425309090677005520525685186930252269914946768592867112663816250904576027803175273630538884001070800515143370019555400770310456243739285266703045943229261894804686202048873220557670049167630898165377437608008188386497523702390389052992032533697443324084795365212354314854479190758406850582552961393284315409942277991697699621997272444192864543335970883643101203040737367638667116244000649151755148146458241658334183634862682699513090916028851349221768026030587981061060268700943524620459135110330607554643743066249091724582618195771002882988884795191712313610291456459417163775762849412243852043513627247423141001894844111794399711017121804598863544362320172620369654084354256806142752872548086638460230585307886838614451096771558536477289982389386899383235614167874259376393126362304385924654541096167923892368077069457439054909096594037731571904167926797267497327095601089782433347839728958110150728709070708813050598562924293498059870127714376396708115878700429331758497800375648446003358113103097730653209442845847947237009158215424858085897410961084040237900933730504179692317956437718926571363426904604203678685683516808315092613103424579730438636963000542354308489252995543619651534509243638600743121873132698860302627555354113450637575236333491694507945604275141921311214497848258719447013499273947445470981876686437486449650643461381262163211872348737225955204029409458508957630693057809879488232086722079413185371782647649005256181345876492889059362507816060546022439205776072409752990706840080905277398228818919898255326063032311530757794688305843916574776123558855924579618287695494745275006125125552817289183697727391604686317965367394579496802877514896078547821620240707107911489458742500433901287808930002402349124474137367530974995887776517149656116292377581936338533931353789156338414975301092896601777495583644820417575840857345012968560075847758038146832284118935390028051331050229804070420719762162052169205637281518753984765925551640440630922635767801171288560918093309528812150437769578511869850973057391755804959537393137802829902191242128963274330067662060840054373036377804989068203849680489036811154920563206411445472117189258081832484287172229500770551724819907104913392647668302791710081336906895647139026005592719764117722665679721500530139882687874126358601985462718420716354961066313981986539603507999954658672530580217736429860233622899846230468665305079371670279020144189164430103160537114178305794401842565947726267990762168128546629906969755841535165723337010465184284959044741991309014119797003219035004697852331625972669200335077194406017909786563705645225463910151905229755280590943097568771882763661428534996243964555627853994546807227860358097090156777652153899506965379306773542127896055785210084647111901396292796682647168673447338995705910526385426457188322340296740398266516665925286554073831281989892305491406537095444349247236262725511499917946605262646344187333444473558597194244833683981587817769542953291289392585511604783121234079465351961203866672594108406240266238232354366462013514604367209876669618076812191113686146684873109316600168833649327544291612339453403761851089083581024767599691873280361462504821311613299395213525467672636519626944242374478708698107406117919028407120546064124187211297309940985949088441912978948327419459312093212404041377476851683852853614218316089618997019662554665396699056986329623044024804187605565041048138983155718235144503369231715996727111504240876554296083641294495606185303973757900715638280007992784465531441636779397282401546518197271156914819150822640236141117666208849677250283241847164639587622028746425906259055679838075804917378487489918642565556725923532239374061017536741144436500378380783679894025048309231142560176267267767529561083378658363563512287590025842404811934608717665726232673126513749959094750252348439983674086014452862578345277024377918696406851239693557284952845481511989935675907775395773163724987067551992933328469841547610426191082299669842487918653309527984231106277103177365514877433597002675857345611542365973252773991325677838131446183113472044247165295616101489868043697659136725072737927822474150826844918258343049489286121525213651408845864731450132255534552966140988046579730064446777100203821999554398518933925583147850546950994992123249195649999729496711808192792408678201977096419218823647774263408703013406523854063227279143874026861414333699556383777231964245893453883284568634270353547057757124435634581468628587133863133537393440875287002721344453718279632551939378570316203955335317171677583822241788489083449914622518298039552077742323198825048191319640666688906914317417351801937844334134438845154990553792266755520477508342084683413186134044893771204869721859005479024625595890960957554349015913709599817750337993015609375458326922050608762973305832436633488090654057873739741777321515435293441738487358367848421020952779846760662235889460358770829527851455015752271190484429790661581518897819978245420639846566474400141061666426299209832879300857914726073303964399067993505824169268663284015176487851805304430138496078828201386684892274002523045002771843175038341834578518506186046651604872767226355523120429485465214612695042309759135945201299383758802856045836573602179032511326649048810779234285871024301451863642499769027796361674545696446682435839298733296717662411975047140338062537954352442475040695255999675191738457970692438363638974926903829043621980584442715765660360695497669716131472921067726710015194108464876242504259614137581231440251275748808658001156968423858930421240456491674126648896954975932568278695535925952855360099636912990335456481382349373163231341702037177419618214880664413178865772446838578607905253049702476703729138280796318566473497796885965652304018927528066061511415604572077395086657513482812420210844380954547768193391797596954978893734684517109165215659687513341789616923878971768705774291996307671865374470207392761539890499588294798040749049239047126367652188329298644375345971388699868281902975714348079664805920017964692052116124382065612832055043291677156316343971620597620013353574304842724808171317251131660337541616660138936245106896305298327787346578629788403205073955903115079236456084562299735667317630259426691795518087240787603195890536459899811699398840229861116009463386028384159762457695548716671530406405699880891349937647391635388019045738302339131951293455547597507602873698451320048832870632200918446783658215506066694093666614435908374649417689806488861350686660563698295857054399436727329968471664347337895566029215688242134056518369229829085097339160390612869886636649917376442578656823410318352687241706014254035980006073573147213324252990345207357911971037546309421273216184299938143491140351408885888544434007227032691918660611824945120821853501507409782022404283365210931041654245964834989006222624392824852401050318434101624017263113808355497547296285185091432746188417987768118375411222202994851361894625027631641320840904300077131530521668449587053994384851021379470500409858983368217726285863287697629801754740905233932301008182158487823587489626112150017485193559905246276023539983438526670028098895707178802587721031450182212843311080293190782716266873608038779358324675677873665452130091809177054765490040458493486939768585911565236208394426471551025345962715468955938098770963006084097691490171863145621558451726244627320460647483546619225619505831854284146351928674702935250302441618231313936851361375196193402972166195685569763845402722260404997985263268037311115418287451748992362945348539212345889961810540126075685531754404207796854762933790726275593149704201006634430759549529372959092899383316835656170949209964396322050176892380167615756238037771950289600169912704813777627941322033882507006109351425268448096528164490652346045857271641245647718673361105722967435163512705544791087654691578048379522864173902240146690063310311560499811198244854640297839737088592237325980884580900093001462414583470445633449890444402309783796318380897336068311805426335941181590675013271038302717179785298173817502682966874061204530434707678856182014058382858953772943054225007040305296638893515957841933656138087500439685486762140520660676537780227084749576359919007545043763395610079772093705770479712245045726504612136042943653238514355677354306461474147270405332507306785020211856685186010466204277775822435044908957526325962133495462352620148141817054018456668923164861832248336794989060493756574144311624568141552075604380329107815213574687349996243284432462391573425485312571679473801998950469137787637729935056159843908153161319371873287801171123282410563723212548733362139222601044127762253645997551427959426862593281976402517012743383701961133952292992763143785447033908991122190293718474705884018015279204825933114392695547426716516047006493202144863118929164849158922360647795665617979950491857531343869264436933283260152325338257956056482331959303588996072476891383848047226904668571987870727229411106464796300785621863515047552430172795355083468506372047954878305212157321374955034205178948386438156650992902970589018714231194557428038503494182832827641321680765076168249237099394681220816264482239818481518595734132679061996742674467235446258066442696517857411809586095556715643557149593922962601443069002139197040706234774655530348914444068351529742926554949228946919895822430695215437839902233685488836134921585034820770684993133596719639300186761811751964334985528027513219724290529958472888331591622403253210192625061834332670323011946770321396192192215403621582717231061564520233008055541871240905446563764569746561647446253958566579880506225579784574442013171207308721013606060492087837300472864765608004340811352544274783688278654281370654585667421849817821602036825092136093953676429448754401543001077887254441624535235089755660495168592666178306925430568470029044448561434799228477112302393317400629783161126708797603120976933081225216831621806613937237214257722821259974372348261159950630285485741043765468778253284604151485528756193607354420935618273515640763024693211766665394486681811348991276822477494308612668021029249075487280581851487898440275784803326798210587675588482516839625230980327786144361443541373287359671532902678049746182909198160230276073668184897557839826731433020947945645475532729263383863396703094778684789746263327070761363781159294058278969976753351685630710713293125032847364450545604087979831975025975998668014715369297477165451607519651201148128119393055772002743868962688467039935317983732998174070002938590359701526551668067476052370193195908362567322240958487889142711914058151099580952824018535730557424866503652436640897732483386642538590635566644070755716442501002742841410195411298386812046029531720601977341194732448986285613570671220248244305808482454654716117041380660367192129870020303713434888955881284581211504228780754564049920648878938159041025570189319565795673552362891709382750099531234291801145408068255097557191888687293327030712816697860590726900209666018568894168206562154294424727081994530035131180963482928220294110499887447513110311792876658681877259803768454311828013521426204678856064802406544989067091338334344173410615897825679191053622075209838652484445911442337808421562804841129177875974268570763510424640496646413856349481240287076788841071061817385386160336403631760542159304075089081112843629919715844552609550999046359554620517495214390757883567695128187028500342530334313211505790695988548746367933540789711700606298874350496927439137066449068155966215885422295194854086774966493075894090342843638430802306670507022424374209574160730611445795069282153765841265205985940001919883015860909186665949487552192115574699963448814990177915103824317225839146588225155986716041944205544330719427529955251461006849222068716082312533618431082417080206221165098297580819867828310965071414881117950248525684373430211252199282462158229981771945407636312539550050428442519684363142899577258781413806240807829094185106203624035553213243068585343942788750783796192001338113707852955262389812140666815847339402347159531722641836245934389839704769181440088221415810006223965144373102584784015257651458245363473402697359534452230042001662140205841376402063005978403294437682414073092384421734863720056517276777855502398045849862099789947763748441101268117447922483239596327110271729937579981613686399003063208750335391113270947569595302050996076743715117751837786042960567264280293008951531723366159933272772820851761404341033851439401797829956488347849953864134789473455237459985505866124747656157575013281807371891226919380052422399607404352100539156314553259379152737127618580964214171318080112527755773982962779787296869714085786268676000751291521779546471379743367100196066170974150404813825751147045583355023040173465821295354040724482481511172309946557007367603695309316437744467011984950628313778333710272004337071825696245621671561442189186022637402147623152194152496128593728854592245287737492454454712075909324019188333533836460746707192944287100816708427739342730829975858622081163165794702603712277316663190702217594540180082459841376097322004355484122963085922726584449046258336749280097374769519666486959943910423992292973249857235627949439860976692300451535515675019905865809925372288726192901574087572580972600828656948720339133167001701969951010105231027879840599471177238068346657132078254414621087781656727084329518697839160956346949041673496406691724735490267503701993608000508450599063093078063712500926017625461468832756767861827509467690622204061491679781316691964914435766528856143521449997852597860878447149839700503104109333448438300413303808767656168948051098300399548047191464178018377799033569128436752016677125978775495435519989773645495090182626643353361260198827382347544255574045125600993008762933926501597019951358060712206917793143534751657344867836500195681689220432536951938583973227964358968392407838518701251123768746097277873129249974599856591707450960922526620638376020837520437877423675704845196950873353869265540879208238634983004273928059120043922344870151911890048735544266921718633493892070269586961704667789664867298990380644806178644853079802773729789727052745945712346358563617056074447923557437270794814706500359844302408073884581827160780406950666394061813109411979300760334229449687717768779769596284047578107228532382991681470997353859797789044504507826923254242009684147459564386797225380329900460878547528012525711395088959291571829720807557935010087901507051418792047354460376178860164778464916458726038462522687548806707347412017954080318653043339632364793503057976460079929740203136716622622499408357075056933647858592393186654048916712533544762570373936878388799116757936679873899691875352079825189729619813853913864127612374034226286737482275243070114622869699742566462840504672276658937591855238205142456362404456174606659621556930349180971691269374519250766759663960269979015617045501261404970281063326073083596841544993509157972554726364167801057893009918753416850074840363239265614427677038715088330734126939933335955917858270243287202007604039496772127966914279634541645249506308827284857167086997838979660939504381120353755025425519260006831245875261566361602639415438850312931686011962197145500470878871165362784328754586153986251871280531979870150126040754456173130837198216880574617471768644906077719387102412615643213238728893105837628674130328583787815780209685344599027866673269090477344863240809698485525147045753389881891752155700763253037064089134752155532944569818432479868730385975009374132200942739312775344793158835314548830869200665014570993706486538056660848564544605720439779254190220208302393087207209981794796249742098542152433696491914684413711868624720556337535963274365239865488855117516851495925569184048674828374718650211897357546217729492615837461518572924638029617244240340071154650376659511710419579552200068850610169095574889459261693134815655103300650281110211544094936110006389830138061353410712607428103221714407019310976979086400657190662947894345656729231949004999141147883113104986830002678886968100647750610962698169638132007090544333171242913301081834790415790932804460759160143838682710061766532533006137865902459648096869139762844586090676376878427987771213241689545693430804875703607344513640537193558842570010677043912278024596269190020526286920995454576169298469069355892164811338354915126606059568190658789781031210129281633245208068413143392931897528927390012423123135347597271405065714431744967728916658325920334504606843592073043856508213172315967490215131063658121865884245612332727024010583631772749628874821496646302700578632045105727755376588504135560037998427886531275841903948107784644857670965006614143665611070665414243273213717612915200965854409269376921729105612515503845810217573094983694154474809472368742977122368673071064838223642694628430405463572070202075041600282050409721531164372538973747319884280021294870036722164470249899602641147636472746454352709379696483918158199597867620093267230772938818548823893365195448452373138793037697026339391772998283750255208833592521016067669805756574042690362256203191267371807829389011336200660583587420440812255712106677353160681459138088255362933824816681851209908642462372697161358463197722472959756990644748677788226028019065275095499209636669956066648972977544577121045177080421221723971918872187650130956995807233338729911962480834007719409573082674395702225414330134286165007837029579906849410895836850409118574380820734242531383481521923134861746028497312454444257765731072847953769758523676349113242957752870026136574735954715697047186256138210574098145355525180637646688429211939520276495041931545348016691346222972324927135149630518535958746161809247860007390732104508485229505859210784225679898501136614999109281248831429677827216901196134920602350981067132017181530752009831284005473017136668662020916619917797116932001449797485188504660675513151107640528242202419597219379185646130987467612657669764275030915530111165631722568121938943738651825740095793512979348205538565695848339500194940403183571944090644006477574870232099482072666212025123361212589994754014480926116110479542966906254342080066485156246875106054175416018915186393649829317494197171162846204692711708137962410248818879128946536144281463385177430681962449934522095562681973919505751370628787689501665523513185483031185109565151499088642623120153497809006799114761133418802802238191570762945453479108796757335208786105720443061599381929470063026597284544834291117289569844440807875925041304127884186895187340949395139960631801019420505298367908200420168027288508846085785874887397719574103687471668734829161875366921456214165010597382354684774778059251564263947609142334294871959534891635867594596923790978932606285623572155921002854687697255380599355551757488633565839286871178415057920691501332913868411104837431471237992315919523821882589379416530657592524302469224615387227554663702890055351312767760937521509286499203918818489075758510233641712808019857199244011322972524332395109009213519409422313653547873613107454498504519144466684587169564419096285502984540907701392378492693171127804608445643617497948323773926096859082445719857652890851477740357287705343468356296017811767794238918882755611323975704582619375657508997002585198104705292499144352917463858101278429593502957164732215244991891151921218951824240525030890715861009094347974751521507876031663461603241721566603090208360382895545876886914068757912623925838285849506058258450643260007974228989470016905429858620673371273184041205252576546558923235920091822076503033652322611836400892027506262445153545747248021033179639778468666022169259465245090169214815234988619151723484499948447390751874512593333295537461194454029369659575178313285438614851295093621982945917723569769241589146314054729766661325856825517062787781911220779689062277450720768167945229996262837203713744905865948618001150991509997310821085687808443716517358249966262392047895525241917977924029607089450538347312503773077470711703375160358717133447523214525192061265041339200182772878748543776956637510970697508094811067717935247650551760599392695791200496094697222265051367845874587709343681575153956577426359036314762197341687925249265108747414783662651380284582416309340328582025526435227968358383613721698101628223205976225165021601083988195624256817720690707012040893066372763443243261241971065772818155155970919929957527359675471903852259489603346421550416986407530539805471923831679626758417872911854066029745150853536267717443526677245806622014906010789627112178271122090181592062788190753910594847755005725785762460480373821378569341392496919313787740367960959259569407403075353494447412401797753183349341204795610716175660709775664705276070312305194241627089256587938632440897446359156932296156006993652390067741442694276484152833664684903209305253425538578028128297935443609547451785886339630190993270316012124652928477168128472500421586248971490109579801348363992139486010139165153434618529489098422253791238146625219727071635529912868530118013352110859226375781925929781974415241272667211867387349001413067628470620893956303286951723142361409270073952055688229510029313620164203370629274090316158851843249780476697108559428043625808384661496779215590769270910882085753871507614411888090250645647041815575073571271056115517976214188340100521828722214867904722327065283581142650883593062384017481967735428535732190571857728151193061426617337079940685665802177220129303107635283765264535891041593169067809943447342917442010293659455073562762444648294466185505300108440781278250161086061556246809027364470942656342732200405330513282762443958217559096081386229996363664738127086658291155449189700657255511034302120944548110596209643074516771612158627936890181382520903122615100642454173321900642299316850926307445716102057321336250171610963023334710352107560679733790425186339608601623238312375191510391013579468142910188150729138077561873560419623934448786109076223341030545093556939423462657207908063217848471515599686970945003958190197575644979386882093829019018438986402709004370352252068795775619538818582270132532194681977268895886112986733900968335056525630123725394748419154914005181187458725961564468731884573511451146958557657754069352879203228347064108375149395554579753668661663804282478672495825947981770453520874823013615085019798810324696891897745217482919271211915544568367970866472006921231250915239812055840317338089379304912869793798727396198316317934522908258895887086859980583664284931676699944369317425723780528457429518702877264062940283297947768677270995075530420774458671216414924582957456247974128851950084402326335456074652657672672086732286457564681703602566455048427643486103220681019961223490423725380287720585459596309286763166270499412343619228282356610158588439175421420515382446040178953810305804679041269602100783905602446255671376251397565614908852480838543843585491276692716256342026046499311042407827887146752608860359556027848650107760840974597288683588441134818746851969543865616131887825915985161358736054704058114613099110720304319773538454960623761567175878646564388812532100434060687711974479635652786892446452969985053301255510292527950381323049921809724352336339453792150555184283114343230048325421581652536684182822626428077067526730739997188802985990028827944479368135289458747724177386041993213806743810645180721855565103651323172101837746147174480194059151577274626734416881509258603881794866912036385005064609425904431879396679709738648652351363728624715860650418460544693880584968024266673273719658690357853351977905314368158890246669242627301096561244710506471611258161847827446159320183509576547569095491384317660062083711441376949727012610538402983390696856829999236344088942222681783306768543574702846909377237650410169983676653946138585151023217980184485063527172897796871387435210248695413912119555422243931814726410368344451869700093870617210734975262550976990093516933792847636572094383890033277945100224976962901505650823974556782536247659118095894059590784520965253369020766643205696937927432011393428297109706008986051304219621561031303825709743645719935573711316136546082778762154103582544616939834944861843797215687100108843935417688192338495565438646958457399706833601867546962500237971472184707117565832491674358666089122082633685764096091064992892885891141041872323975033758544323892334687586098431424550871757257069938182788326158288691983046314864044987436652946899015753166347006862670765876571636217494589090350868293733178622801653657156284334362039097478064196507752544150374248336771707906390680469091629452043310467029761765142781466220474008622265222455475689919109948838377142213795213341840612140811840804290975874479815575338532904579197094392383760223640157468396072263816586416065570465230931263204514459213937218000586839062752332476935959560047221245330113711685880863856618550923078597686324700528558679931646778725311275646275309168569611234463688035565835970958245550925083421745705156545127395277582211018160373905976977115543178588312471913288760920454344561015486517676642830669641446475977471559339149258269401504806804084271528134677914816680387526890490927385660432727531373588561158033064994797228466636545298047848192830794597392059532764728416426313397985906414291522631065817623439289484347621917181406079995856863025323222126689921565045526104974029627132456775425053544204357275809031826063952349094076817598687219776036635549445022988751401496487396736477639787912338908444292454238939591750767781151204444741379565173032503342320986007796810034446164226171564307172770472007387435278173741901728149530690049893087236684241706201740834995985848455238765753708101099810751473040890404030217025193661034708118751302902118460357240299317000966654585703599610693418300698474907695881511739707451970151737210491512591128631170182396249768340035933225831014765827609117987686174648770618565323608564245730438453726438030449808960950911032991679444128306320184883525908681375966558660430722089455067728908793466221342186664263297598112316340342991922542977663353795690480121165455213159147771640236140475566037783157661087321794332525029401308648597393237539645164993558263055214222053231862422108882172668103802344014257084423537404219471046150668705508184372226892573366564042901108357798337343600099036591946377281079019043560103087536147819032327662920053474227691385761388058506465410027096468447804945035736567938579043071293385062888127303551158007868914639039205207100609362473965983142826157731847152779002343034758213233883527201039411177458142443564284523969218014674849548254803362294371472711567461052031193440899199365824056026913566128229206391421606502517649509297476842886492871792428903308070021152455754541039814283460784209900690353322062683054320234071443520935243224614144774110265980220974353934719161716915712313901672482311887239137461960024341383521722306290819274095861915443911095811847560638535998680745868097057724789873933614139367743970663674084198861066174566575887597242211498652952976552016426939473524059084484984817941059787566563037893916369676821509845201043165286581942917603844165286831838642242565053156401881449981829457524191713992240115683059632820146030611566187216456015985799314024207028134220408008656819552361673354609932432013422702711111642797414586726911941816807563655751614729642441139321476500386010211699859010257802495924911903605884971562325940243104956620813556782751469437137041230716461055202262969362227450850989839067618942006072787636014010304111935246424947359507980284669523224505681606875526566429556520949766605345591950474138605874583829581431900730864324858639306577564857115730095078392270993558697258966183608817829949445124260004441963983292894978979310501785611255893504014700047958797828510957597008709612811997313366266291289085558680236639673051557712014177146924001428195954513282628465088345442897940763555367925042966432651618759839942661698107442981218802450614105982316282636125914350619203956516537896469802240820253939637866811054794610659692311969498391548900684380095616462433708957316059986950952754345523557096317620970473058380336336540373819900259586167582307905989623573469349253263922287275299705844082905829001816472591421410059351291308010262815262196854769931196299406666027464729225157867877182484869036929598429380328692477594465842817547047011240461043081307854477557099619903526060495565896515236358338471063376882245864941407306198409112637845393252855508671833278447340988561361993226101768716253856521999855241832783176767665824972145647011658594022699420481823127723740529658174537799246407416374433211829763738199531118261261593011758126679928752619860985897679839232804756900649831548370958217858776672067340426313844632945352701681089479759048277899129275367654496448254369247341348569983922413869428600290581103400545029761302137418191940139358753879202153451212133381993548322474829096834588104439096194806713761355205822598737122852128099482942777929665267968145515643555530159057160096627911012633106096532656545307833637001090818051822819338061039280699343292372238982248836631037224665269003872383716395730499790664145049797746689711956306830755775655551780784907511130327585782334063284764760171723325142802055870784602622460519989942872044312357035583740104763669607989675072144701920365331032412365578438430631973235332113244818786766611021073614659864165599416403428689422482299124105644541224970786885646818886974775242245706280526022684352218966560916346177400824904005279176371172955411097737187355227793898183185531544811162343114103716932434210381278608620556710489117750250056428766596415906637333068805716919317851014813766674336653975261226423838949261251604905984477902371907368746852066638050599856772487585348109561432256751979515224904130972825261108033017113538812772873334363530212941980757146760466140852775166190408745694361825100179588492652257567445509350732940115476533908326889733990545174118670654163883223941954616263558136257417176693939585508361935432579595468114321257381304976040544621921212785239109591549862967210619123574280408480179331632414256802117268918422766749218637844332995070123282246326113049241541694194502192587556467342749641226237094903087617754730752811210897660772694472559244035956676192420244416039309596644994563620513268464593635833363139371821853705090228024529679803820502413332800582036460704030971371053384222811473193445720319246170972644293190620622280513308638529700270056476096024962390339877441820688195256369065138523219702143393526732201860780574150145050826343356137454611638516647107539016995173672323343507604205593040531095085404959308101594274627380736606979043406827724337106821531512379870034592089379306419010490889397592055971289076445084593266572234750317766351834810599559480790629130470443376341883784275980642216857466440117867929961991087346303803974518095357322759784762573467150271772347569080127920050785862225365711395258049377243831778656175451005882029728006540748670760359975683773047796216791160833796866765558912598571067398556267472621139056659626341528325296557753713840043422509317989544186378996912935322674588309672019562255983532394735620339474900430199692594315878861491985122638512630141381245190804612835036607300169748491267504728336025124594743132395260491937753098428700228288390123377328020392392090365484534798651541027125582060303046231915872078344210568041211911610968911956906297661898872535295244864040710142297466842948154137113163005461783481808963877701105053912998036357318477997585179242207295252818282419085572926791690025953458921931483935691468438154735645832600826369485867323476356775197832382260304030950079069766923935288636160984554987069513231895133083969473617482649266628323408481903871911966121319382950651303340641412485456923432451300527923946475992678285654674954277791269546909616821484331126375044445067853201466063937294952107420138831402358926553863323600334271476694659248699710121628483776904377547084631206424758794591088245032578735047653436234451424798274274267632974652659197223084968696777320704084759027582752668344975927947504233359202746036109519323947325788647519240959872300550043901361900804098154643716809969383847385666486973500209138209008097245507542317012761289793139737306945430704346224098467715874211173916237727587215558471331292333728169292761737793325967781871558560803349841172658966347432073873696413039762039556221799796872902799078676781515180711227213732137425636547137652465831965635964240369928463565238559656488928121495976508217224982839966947953138771731792947385738442971237459773078461736278334168174961870247061929433348949818860108875571528484201948250551941526164182352615645102438469165708452376312179226870569553487414556948542167116512733783562081859523711897686720648321359828507443613460742699753294616169608269839263903285155585517993363590269148737721139361393770289028277399874166992223469433469997852234093047282947062395990213017837326554452892544289599090685103032578551912969296233231189815888540444250022905670434778519373717645021380519840657344040782840176619627436677889233182264238258447547058313922059209715352892439197006709311128287200320348330918969213925548183265862967566277658059762083595630389731175004144044779161055785615782475787487279035966772166794633257271774720893092239810967224453513313154328791831355444802763857669699162855398419305345543764459299807007729955741210966636205422586198653955235392803782581637395998614620747571834998829326369140688740588487950299688924530354426755940109025251539113019172900891698323101467914365801794901977204178502602865049084216966989117589252525968299252998185867879536937217204748101963430860023519858789835708178771151754975063122291703076176198863616717960642987847761271294950710792436880086205698871038518535459004379645652693553108522467068650536501550924350861534234645595136723460361867090271764456772147503592636829868634834985882179805209047639987927688646697152533889033112875916167090297344035011073496085401166534615863751740417796462495000921732590360946853703692049829324553923518187516151578592225926885820208303308396050904916214878384950825406083153760233348788928464493211950281975945061473611222992864510179418365920319307219876023723116586195951560300704744934329319753925696851438222870304273238499727035657073089011099344624267872563621644620541141029259469088970889586581717444604718488735339917102497958547011546345689696190005721161028992139707489096448067503925260151785039731177595800990323015377779483998520821229449740241537223065362790055429824813403715922635954123964732656022351006357146166471580146633526695492191555714024683564323139593578483346893768669783895395902700580221023815019954299918384423283479669935522137020535761557158045091596924006879128825665986564607636792928997404317543067653533286297892553564329044655493679647038992771494935135918024399384403936899186423672480245767157008938056162051468962880122622569508783643965401557090987541015613681178583193202197219176668577478131066476860183873821239433812571215907832582921459218115276644164587798300834291185150133419175278725608983267856497496863672454064024448620711537817760295366300319120384109936826837076567267752969524794281576593020436950937725788887404632484554004842656861326754619097866338547824225019435532554911887254179530624913413946168171569865530072074818317458225475271419294024787852839926861639203954861658251704066667493676900468179806748609380338796118293929032214457780168218953523673769305425605571771356969080810153349477852641220307706552822107185662365716718604528915290219462707430783273164889612392157808395971955642493782205410456490625565707814697855022289020484149324468349705109929610179007350527663531077006066257358773963961488332779355938845666528946892621239900153225170649414205758167200600978328729020304091022236306641706696982225359607942298567262466964508552417492154017776837314917951191154974167271445402299487637974906107224470370708703388382234881728923359584359176348923284754133139191860332560070273413600926704796036707339866420685233528651001866717169020441001289182104037080485836236797942140269672859251952725976661515977340355888778285833381840121026337524523176990497949775645534080364999227461774855966271901814443942399633402280178061657408561048294179713193928986434724670733549034802763709524159931869637098130824390590375879976266121128626026059967103263586709212627204212481752316632435486937508827753834489856748756938018747207832768708516311711812289345710107622818698523291634369387143334029042090851768586611728777326228267766504494429616767081633953993003202246982127256813656869528665334149815605186285458792006297021453498607172927791723606567151887800081057358943366495997779122732785790245030087710866791258754773812173718658639121205183595204098019536540114730912092753474673453059981190880784324920016775526594093859753458038475124403447541026654625861334636296716800748199808196680137066907227815348825098861465419702786522346892379050915520702440144218116748881403619800489879597206097972599700966876254881425790257655614106067710346349708882534590235856512234879742933878065423972736099250685887554648846798922368916483535433985618389017690336034601049087295500717367366753530613476115509842587671954655683994868270300718339757145513488848413204726222201006381444951112149602364886771722761829280309538129965709509385323368474354372100395903186521267676889131678495137464252792884888882130500513634270160247788165308907593071387589742576685241032750181951472091295651112138312251157939928910841033795201875873889028910861369279063155906934616508381014177307474761125303604359371462696843895757586521541815120032319459869171918848037365319868923488412751592099826731759331631063480179521846167326715235395233469497342763077455551525490458056851355441579107690010651576074148770237132866926051036362544727289336565939826465454518699564409686166972233539034961895741231983324119423371689829590819651856505709004014328703514127452475422391960183354159148378413279559560280646150133173841603245807772461418796855183929425400872271687145125274321111146310940699416734014764710711859916440312482421769974994946923745072362527412420067866261956406005787449071698345280451834186570644032128423541511742513709059343040737313506302468355942200630920515567404000163852411876610007804408570521400865911613695644218035553722397040987835009443807823367019474946435685486645975517448173262838559978427179200474093498345509761415697444100950269073499265707092881479904741250069717411770235863295220060084492354435938798263673284223876427540267774101414923095638216460512247262395403921367231840087460812159432989966344560715753593988410323924683783799115786583970369926187605300064448885240513401888867443164055285174341530145982575233532184875614064512428603392048958325786299004866861672600331520092405276472775137025343703187090645631838884145232135464465582669561635883920532461149144826885921881423380339208328591367212669005598860734301697862159456215425771273814666687168027074650606166934352694840438067318625108737937759537962934519864453986671693054034671296372651171677276440915929545007656210613578592960731653758732399246218682920219366121273974301456079789419958029183403546925520344827573521709918428117645656373093096337698471375455808910260407157365729006256366754291221231156970856573464902358631529453723257037808448788518929602886236674470296316749515269338167888748532859826880233366675285381671194598109548194112374878173130253943691803523943703637804771272095200010552591990508182369657313021160468107904664854557992015905054613038881342459333271430507462009332397765110886216491770276578072306815068088574775473310476034252927023365343835640726255880802782865892871114619490585751651594274967023285917239422280666632837820228936341596235739105935230665934902926949820616242265768751053393952197950684723174860743750750770271266762247896008314032884094069535869735359669729997150965920384384757650602679835954963662899672949242040779853826191390317728785997019010961940831695103919111728578970403150348965574367773507817518545897307654167318123378824835613101587527003992701119354042588546971590766734259461752464457867611872714689201304552796512992000032929506842586533829213821766785292190316305318485178168209253275119948908113833825430862446785010933308430871560437533636358046885174446129283232949883724760312228653327397496016746439608644477666057818074109048853781928578538766912242308174543431775799414061514153513861683253450130735092656339081474059576964528028646422906006854362880538055231397011996723686917731205091544084406263159669367512709128209214646709278446251986642488334610319303291208643926459325310117781361888642476407269337755764432561140401201950847781889454308184081120933157952734795527841865737507109473487968013169348078719853165683881284750171680577725859606527331592117421531752337251968031988529601371428040377457394160311034847442770949469428858561051013382721738515958743620325531573596736515859300759289938519206497042870650023258203812460830300034268073849493604720711423596396214584003951957030748915525434448589217141863276232574155987347375944657720016762253293390546777992253818304541493835419657915162497278844813087755831769404170399585647843716495128296826987967235480617462683112917395413537879500727072524394857967827517864302559008275885823028650747814003412868433761893499381818289811387635784228565988902767034280022513534906803818079467281553214313471774300803335755368904138940930792426974447907852349735971729247975630150325736084559804181860993552906097381666473562945133785871009895802527246852875339447984072785024209381711714663834405188760270481289858336725649581856764476352721906719712958393350427370706170212101745641205771007302502770742433845339732180383643411357081849875183647483647776332470911517844303771316785380349635508500152152754133387253104710842554862986886917735758620397086417341394636510785911129331250454611089264010203344229185438145353624236924215106541089013695822744870202634326662508410117763060942736104400501213843301575723742816484454318491193534102765306152414732364244347991966125953844874231330543542911285487893673760928364942855878272338890231226159828685494067334153533214073483518675437509025345039732308877611769254972605872056629792927719918799726781402903433097345639365658154264699182402147516743030929214400268373809953575642603160217402079690209278138528884040395238857758951913094187880731783635150380208662415803225806348118593248727675302476921646082411117908745449654822693335675623699970423285060130048059260516619683989991184863186020330643512462128544347628488241807822742442266289390743232488647059126447864794242098074026965610980289125439404105763456760008450896735142061409269640241509864993083797262555573310300454646003638508385633067602450951227906326669025564885489859120698283845126789886856394955617902354909101784618829789500723969258688289910266036067233870657469720383095233019305560632517128304855755178172902576001859152892043177103807432577086753641253996562916729386749734173717167427044905903531283048452908458226720875104862268734937102912840241491112890175351908153413822491934256551865309996891185769658304620650721899458285648965215383100650350080561458056833950332378132290254095091366872618872674809812890035854372380242892260654026445463690354419916890169507432120307001256018092758137408947975501772497715671563742452546360626923580937091623228917470984432058983140185071509087264023235345621453672627437868365268871796510554693496016061529750865514203225480755975026005613167482070281010050942513215959439906786985477349741401746223444481028035045701545432336705147772290280640935259462500910645847194871579902631101492757808397868224888442475883252014153323241855500106448072941457253589091428136481843709141062983191822354187580956848376769195932868719394873223547624906496868204999445579298314522737745121151134019104664141661217451900195120006531002602918393330256904524317862509607851834637103712912654392815257480179768134142532009743544137862037190137278529285233553921119282472591329238032185366225566860040244614708772488245191254672704107086136920226212303767540213276623320580126945345202992789265897583179474718949233427897243776141020685026706077940546653307948681654571110219915087453215163845569836856167761741234521076115407071421024041058538923651197102282671150601800407724814863653651816033333652871120150275686861845168070723270825315254875316832567262162908821977131582356738763814589915489372339785276064004744688384807903114408227083273213639266776585770626311372714219847299504366805036607265704629057409609413806346313765710466396273144323538159454026265188008517161940965212293311105278718695234561773985600897843575366141531852628860151925250415700912396013954675606810319847210281355269170268818949276425542836664249086474925538733421209585998583527346581464028542196139460216906082292318047680554867983197742929991616059434423702453098158026754778938672870627371411452206480125729638905864887443048651837394601440110443058174368049486267936179680279612787387650255431917900629499304249236409915165190061587335795111544995133989568541608834155401255597014867085008543145290311242699664720712091713611623902858652786167874723321702454373634374882965046001854183314442595579044006252359807373718845843135338208288845249197563201885777367864712034489329486661125291315349546198282277652430488785427643931096329796398829913386891180768096064853653432478788750506456424914426559915930869404446995328261340796830181434507151905271548607491463796073870704949092740562428691803307651570055287113699951933809983750462621473933197940225361122691262291909926886844397543121828383559284977199563324061012259153072301327774670740879963142203533013987182615565104660417144996612592982622497389666953753301262347570685485856716312972341827015811973220602845184563882429164666675189944249181664438814348923277768432470571009412509550003199722530582756797114900396797325127950979647201678211619016730778388640993050445494956264520832674744794759492514598634724274622404521434845749307539323886406703748346079129779664394411693485027737808375407752443900449830008647126105070693539160769630761483890239276719820800304114732407981084760278135921029617965818367841148109848294233379228733112348473125405543797735081731107863857854366013190770469687208776993378870369379432754098054934446281688187266280633731138561484777434816101508502441774423411269344515405632957655072420448961395552409932531788190319744005647554484490601942116201129433344323780035817250438605721586868578276918288937286303116893342679680198462988739281714502668830152265538743534850932058117179219307899635074471350213201196592124780575709803134702796589556414660743558428669255886861208247668117377644918611806472721147102097845861238028394436197685670855946207503177514839414103116363785392427528395877606754318460462968378071776938868151139804023008828288166159616404375179130709009698711337821011854109712016857023951757538938802338804423448161797725398452338543363497026000551910261912292312022948333355966601644708787619896117531910582998620724077563044942987573687910099914570253090475339466304967318118912573007666066355991125441652037867898061651193178023513047561292580110124347342245992725208301632333444708208089759556263827144276660449459146513261375190973236363103283493464692835622734530670615129615815252608329740632888871426229575693474901371185672123107970793757928579359376800943208487921164247798022465923775999348794191231701204115144554498153140273479080661811013688009738356847589633754801227198781773841560199402375962256785644492372422091603158678440060105858666914751342425729963336396377710872840692553680078761716874644361543016892843817880754810566697192764269864110723397452478358751038573605916517802722982347898636014351030771463949632456315985313376583771973105168753607005216650687147249744384214229756313157672687394309845502311899845372628346658136412192256825295805963509892665478565642765976757401232928816126924115074443635549018855905194752891585584513061412995073167364335577761402688314531454551295078394865033604093564538580859901127856808474741622776574317578911254132926788590737371262344191152671218609618829470530800980476654094541924080458912811290127010636962379542989946282594131240540155761033080529430764824387521023594068705921900937177466121616707971277084479990576269021125047529543737383014367498217188485382063394128960635825278662181819930508993466384291202788456214516914130702044287107721175483083096136655951772355816628307055000687510785196139284765472193121354925132311835650648212121526369099025663213477361129563517763880903633698156377443647173476465052813263752614650713878018277835237231121971983886094381041910111179786421724022177649403568781553447909823637741886691934772528204341704216832105982808321128793180755294398429089270860802129956074155174117503776724378674869367804253288115938329897551851635949325790523419939137360858627788249393759648971642528788944710094733533701976199704902818995202663268490047129935672750331166414486166159159498311386038962131667007149915687779539408652194820544880931116086490375437299402823291018084013629863535340634360148412674553230855520503459949843199868941888713935575124477516523950839746516742585696803831517131958522965128633986205336278535747861245583823289957975162823860396804836722596817562329647316414088008792331491772084771957970898221450924628030542965748632121246961007244331933208604961931610314199632395614664222864254322423080255921294200660656788784192606790416751575822314929208307851006328631249931226136611038114545525327965443348144882259828486142738877351661432470779541345434848304190312299923552017544311279005962880039928412986569142913448071617966565623351669546698406428010588764308725273585889762195498797770388077502606185984741109578659701105379548472408583111571080467041088119484836818735108474991949914870114030444986772600297871659567134470146626688793953235169548935839424826475425958659490905595245988156107084267772570584069759778028804057375666349441582528976886595019383392834069930091840648440570140427024042038513960660194035787245102830360963670400070888415428123252836805322574290858514580896797978115230786870468679515672816209345641707648194146129527675790293115253368807469087301065578471715730712394089768679007606292737015491715831448772682517582013727555541578191298197114513733903399166089367027753928782300907935550227891707796950481517527090011915911439146683386315639170256630176948721286368967115482636187195090063090414885729179969832710394582874361212332291692902812558754012732575794630342306721744263169170275435365493453270913349902906532777429387347570652670909744917315310119068533983674210603979192942355638419314584454235739530173185690749465717148660901593751940155052901604328881826154808699270680215579130108930843725461189286584163515443448337308003494829387335155078414924334090022756289093905524371147245659719018749568730613885835923689502636565070885549348486852631740523961456348000815756544723339044188568600021080558954642858537165898438767160943946771772863815042204021871566271485343596887798893384480794577225951296621358060026905195403003873552024829716252403014191944922260840548937309071424516636936378555020781125160849717552028424453045020422820333313819284752620126110418825468674182834479504383738461531209034860429695933259849324037821246068844616991456755987276298291126653862572695115158680396829522577166861799263886896660695359229435205469370935142752504063018995235740890253429909423655222228158530067243004601388801193274970104039320771125395475109200374583991433718467918797153126952755095377242044001146216606436523023854067366076702531468665537098746534416805659631328234368496207929271253235982920682764746448905047753327177301745882554662266436305934602284761660844171456308820501210248445291272101488305672789429462550383732246512699880455272150902145730152343965029115058103827618140945817943653607779167589166114228272646359608266444878046871062071096644538811872171626747336290558881536160288781250398666472512309790243914949890427226472354683209146777372089781747645857602757216927164062241008655912535973670595018267678457506127496615703832735212361326325934284398414263801782352032469462559568516911972989377152710745422882245607629918982304799678925762018085268749462943662498179937266498152087319167893617186525080739384694465751382318131891856342101557573915640957735413246719318126282709320893170390742590108350403932857270435351701445366041673733068692409025366491512894810647403159056064702740061087535512547584657372663869275093224769535348470168153945838134131265160475407937584899232404747795795858697386309457430197344084106584299866395534799415265253730255925943697058537379633916081168367915307085356486547765390885074296338863633084211357539185706898887111920091798311806116611428004967025897230540750455100449409201588932395660517394268398613415988474911386924362572450304809810071453044701593386955766104891159906813788513334455263446639191854397608764636918665625633269708647347076932971634021576385720737088079564542947780734823739270399138543672794963723869563014672315080855578559071344034443584961431571256616942757543073559818191456101353261485620447062755633319677771139345569603474978962073623951571739476113298822446596664073160758596554645964960556928422752747623616499795374180351380785674363440285776103224161594096473635523555504894169475914431725716329921584623487760481786882962189693356401751995311803010896300208913751188584284230167099006905637476822968325136872950708042051820383755610451564153289875711012095699591384268304798306333023380698622034260549684990635958900315819074010101539733741134880283937603252803290660962028804036337069517917506732826573407608825632251395069239658553884415380510671504732519821079787228744599705954235742050877811551644091415494108683615872851380042277452771895749392774382598164149003560680209059228466388390327764391880356920978229365470366648153036190621246136950413351695980956009332646669455837017341103823892814342670440881841759401323042508388842790205276387433572345569807451582598665546976399868933449162627472694655863957115918734393762936000214427610737074240273527901584374056569141311576251566250588565755424967059527763071970322690640574456248737089006529946227757509884845772387201249335224153085644589558984284236346661597757587138624272747013726033361420775447316173862198224704992772210088883834231969779616598032830647260846224496595372123259628727230641655380294813476414698649766604124146289768844098098513011261715659158974581069085525889258518603557868326472215204039211512022093722809677158821801285995788363960951747630642787489679796612894349317847228059098149713671123490252155489605577387049835207434440308787829891517886446075125712092135229195322524005664486226056957099362161072732797899963991835665412555243135062590880619776592022909443438425147519148600694500165401941731822015973096032885516844325502074765049926038800852645297306582249801242268878122796532494690572799002197788375448022547058162299034804091265932487403753960786973445596123875890296157556250866001639122770054691616153323468597162516321564602381480747127989170753522244461805245217740581166029777059151359262001080179036332078082179191132243112172647733137600759499011182441261202599224727233072637618859788848000664820733925217331768293597027201285850496983269206054769066725762350958299370776853395508218531553882465309811058254878314117217500580366452296733666337102117502449342494578769121113609767446526164704661466196249699964229773515851364960390197388451353078624570642091285224377763109121885049812089180446523519028757076091932508309049687347495269238982756505487877222485834508250568557099755596307221696689471430759160490844521265375499619156332115181507729222681862124778001501613951288428666679146018511548877574470327609778426557447138361815425120676514638880347451813843858359029548367917601353006492577686544947463550635564201836240295664633592629739820893466753965462856611120504035561764558622923583163119965734563795326378936008073736893645086605514631338802667933534105190049834907126026895767387140650118513519842228025108228410271642350885203966845955399269720740465006960562936434580921385476698055073368219788117919394203705910818695557920302204823574685158512795225891934067537854972492917585324066207398820851784723973564588421727009129191311941623793912442879002520166551333967967372113348738973180921513864952321565684091916194073552746552966788717938056417159296358703268562628501987535570074672752094183347396712201688646091811911015213712105225106656393275981910546520444754401171853014591249187131037698801310382362908041801379783692186093304901020672324866904116019835949709467261468768308290826997110451314446355878275996227710090618368105451186518351307074416832646904962090239255994937088146547832436165995213124999483518694616435277382079660736935415223390607118357451140918709655731767828808874190352988763016943788960626412199611375752230891438226743671593874000924162679534520330283973500454718004141498326895800426922142199659733119758821426777765913634937014828376417612489325072007357371470458076413920702256982971378089718370005085572120164373848395632971436754127562752666358841192062427730642037523280611756044493715474681690253540906460122475320317699322724190830305410780109104999377375120713030406264862443043735558503018637975154036108862112802005674896757459393773274420335840782140215632920468296973708908446801149770230678936756924189324578812956664755222998589298445406782198824502828715366211797794726523755667271862854476205351373671230433349524842990974153993232349945338897842690546699281222808464751498102569722343977090828416749678843116694018722886359001382076589830853485617057630209336733243700158263678068060170881120185541010766235919609136385806481078093568682841379195854457332747518904599558223647102972574089579798993458833700289121301101835858670166114555663628391418511431637261742777699640249256279159887602892985886330080431061984148925717756025685758671030981353911244420117126578540051117822512064574918365810349411466449224189495304002147364327265180233981943258671218544010775891947921719589363353692744920641164928005346682059761488984748760945163634222909352206194092868210532128240541970272021164981426352806129164024611427295419642989464503089606826865388555906122258088088001664031192128512452926640714395047088799952695242650211243850651994034127992767248022559168606702670478866877083359722479425101760787651774358294901738554828970101988721749283665170516407940214850611877410731597656913610986314521687482918340065789464974536638831283440724007418176267468149629177793044806944168361497925156065211507305744285521778663256757828210056150407469927764065562517026382967744985826705688388203082177301058426598130108598136692371234509439010253613117249064949920935969727775299523140664816492962800949680555879260171393929299054539300970786743998755872524952238121739317622680475389613693988582855917376924613810103714994787278492833990396666643415045696978058763967640917875973757330573318250378151872072458493980127483462803613818934709827048800001033067535226035346146008359753083820053987468256697220663951909820778032988543172957823621996016028239589939604545885265243950251091437792714537283352962086077223358773995917714453969538156979287984914012665048784455558880701122976550355823357836335794061483843782199496960760274327434805029409476252831915185321519684367084429963758597711179452734438249351999302891878328533034726699197316733031378721796178733230364807465345314873278804745969873392413461466160258222839653873151673141499206568949404034462441540827479027299891739047421432622380229727777564307796416784554955259505601288970344291241187126996594272872944637217935836640211332660996703997463343144676047371192695422918770688882073172826311821822912164714089570298061068366782819972686611882334940883511137006344078506483871861736594679048264436842284648949771328456680000766946797867691713037960762726803351226861163876450768775195623833815590291884601677640998392533127042745854356654533223023165320880318244107732108990846176465296814569717001441709222928844048482449452195661968734341421972923154541995715280457736150275016424755291904878699655884413180030111261209494790625774183086058168450047977253547045886854288190247641595661923067772033753123967849771694253006943443180876623135602098844686083098938561970467983142534603115412378966084253461193025676670954027114199787798737370067414634328468996518151949581855001181952687337326014762652052877833986328629400982950750046598643778449620971815340908738583043866542987170736383770086010099836933731390460089952065211951508297567100387363158826751792138429870059212691676731504247974563325256959674741112449404614761265744935893654823611591064770654325754643326476418705074510525280783557991426360186559961887221150457943088780354888482942591853676471096010718502647507607572657589387667458717857214874163564173153124049701510619853284543093649265333087387632109327615286932657247013758173600807265302705791399943489300192763196043469919953207641671554756148136104306006754096030392923650206754072836945539302204563610205522091570252440178086373096962882985041567119227803173437717062832234277711614700068088138566301947247269001184081023500573907190141723508549709685520812336618133897946888790637006465297479730637882781161646930093005232707566961117609851447805330353929795903993794159006390882887140769030203010454619397576724798251313272614871447251447239112152144309962456886015938387857186966766784994628080548542003066742759739418772206019154538845892804389658608568258144696382022676499375552703924284684217987097134431709405983289284871983203457403682929432629125965151202202354595714617218383564382657162666382310922790385897913506691765877617480352738499418926830738372593423393089123390317018026145008803454746294034036589650564750052742678831601729087972320176834798792506779487407177719686719760193499889470609072173257692827180600671081166431995410711686446467497318846446983508665594698222023259048956024386841159292802134058281677712254916138272855576987930508530729044947108367278373357281731733384236244819000371339501362622897405205063778531567604244393769976077189975883124710705367030580287947831107746415533461789573492699361903437104340883657887756959515835498891776539099498332656435805609948122068781279459436595130521649046878366293995874829821681409851371653207693226116223707736151699342948641576198141808971828102211509467079339992750385518071686631146753842850592359905009188553483394734493543531582834195531991541477141546618463542096962005603526245341093628523970004789058813388159119669025663962394228657488074164527816266173280980976448422112306526198853912316572707391971773549798433117571906054428620129680238516933532776801228245118262714673609721116907213738627299296647781207526034024296013657998003087971705533330831783502095511847572939410173320065098413997157822787356517061518715521514579906982628178537687424634220672397045920590260325406718054216896832657324925201868804577729958248594090880776201205747492932096747821729296396179487290073360786706993213418047246467321957487376259417044409883067629765627950469209418722052480470297697385479580549216152160077938275706624241525330221050031845695688432649865930206867671635069985918239278236973959980551339758719994312048198218926009812973347904768775122245597323860052348714412590502081849568988308397023161592246939977255939837596085180257323942163013217254354714628549659086823220817480505363482837243627304812472205750764926492541053905165279260059674940047533784587037757587007377197637470119149530994812277219264803494047603910961311413210938804523635274459575473575385379680544348488138752051786864322416127760717869500453100123117998513195824773654997296332414081898601861738510993006674463070614242241196177144702315782655718668509352189592255917679711612407011842537112071666040426225333868284818160174254950096100572254864936041497306998236965914537841121831395950206673728563768840109077399367594003280903974566901110456033796050647120675234049399035835627289609811414410374569105535015907721464571820914883238176998447753813200073149801285656168002462875727773598169645717871242546306249764953175870452397310379144650288493539133552035004485344994243988175590331429503171805631137542059435017583497426710985831477987582375519945323287362391496313205886558995262296897146622242257601105269861395665861215682009517692758685288401977685261242589481998720168150681037524322105991507177124671426826548380566053049411920734054969009757537988172179384352653347008076718912526328705565445921615228547819117227073989239618393015830874618065821483378740120771392366231729827954122670411913947955662857604953895794296403695825317445534062859622278130294294503079421877141986955610172822565604209990043171952019392882458908950479225656766423368154989563595065860469989041008200606703195208383963689087360849111128699997384858063604893940412794343181598036946444103814169035169327819481190956596898359645861274567128295834941458477320113677789248853452830577603394557742278421564865650331519745206135946123110155548866359178345045079374804192008587254448757494430136971377074305868944477348702594230032537367478061210546155836834079716537926691367622198025498475939460088317760677740503075471088098323395187614927920571420320013653252464094599463674759963898755437240915219246420164684231856687991776302551381399624981687091230215800995833470715730948366658075126041856163841006772379318659750846440565727793599395305047224701258839353104713275130752677067205320784832157887462257299620799051822439056827511113190300406261376549786665978510041767254590050272577146891001306033461876382048710559109850608261937526588872857408056499137919345680353295014837557150156567942500473034875111182960388429524989641043450122183301359648901548080014847222435793548341048217903056110737600118523863941408365561285917874198763137064467539294242212876457243170474602001166391438429335135300992244893070580959341051944556250823368064635419109344433541278004126513942971756894654487427518205897248951728147160748575235015973874092385486423477176112155250732109111128896795894016008730885575223210769405628454689990536385907595247394740399405575993531682127566987504116970257113255884363711024679665303814887320388094002731490539848432483797403444447440108554457494797791918093588556232886727305124303671019358085419457942935165220222877338235445150661409711758900082858838378587361055640880484793599696758432368002816511353357765562694432443594807802699758997545329463622741160475228083385417704915718185127038086761315546144570814400485996815186854789677608644133268601853249856816365289480977944657060587066797866852434812081258273071556155339272305269696413900900853818229016038011128199132434877078559069963819243196505368173440269357408266654842264661593410507284995317570166203766949926146034679847472379479834109726477894808751110208321069741496419223427256939579448542945540091924877080214610545633313920676235206186071254899975342559778450784753471022365991800071561246235495090319415196649431406456627746971031410154082733777334042331006234354513483621818778227405763093169617739633479713012401253517453897823061886120932336480425715492046970407161114196815041267848081280984643803563345517874063685061501476147299719023216483340279145203377109900083679172185017447862019500634826926497475613419427042112746866422295919974383436960364781004154110356580423312219544126369595781062532333375188758347089612858274511668670726220735633985475952111569356829558631598609175730290134247210099232115416294913876647992368670143915489222201552131772711543219710717822330126043924355055320738776030975786454293720762973318098555080477024550185095640392139084753177216581869591511293076968968481332724760642884357643657862525508158418486674628378665834133125780779670112169405460405965998318242344104441444560499767436203550887266651263255893114294682416096902344269935704616909026060527525542865982630222146275926589790259201110029930712486425480851820550173109836348335399173278364703998640460088009907861591326152211152556549714901356031306015172790327833731955540369729729622206953850367867426940792194166888667694746712098890186960642632932106756155187546379709342574545453341414913926761287044370858406395841519993242683972150126865194621454303153638941296677438527223773883249567219320158367718848209198932648996261340618984424248673587988233083008037201360282160157298258805767134779132300407922417871093330987133372361742968534216421417648130270888771412766396965091765604942989424758951014568767215214900114392626131207145242690412932245713804006523011452925041288274644223000676180892787552609472977003641759642258180496569546742280242078995346961521632743959378245288434965462449060673169202936731610019470103769199356501623224438830627833607810010803043325800696653570218926270217916006616319518978109015179796464155749472944760328241135214890369935635739379271157231835257772786133179644634991595737101179637637050415391040753448947570244620887313789252810820140141758834737215070130703384220703768115421036772899853987658687443862540104186265623250168536794443119862432620901239262571462449201471248400829728512548739419402618608968813981288941811631677840901462642827676041132588215291439687009773044973278061361472021133224570897457005440593983749640172676051786619569499136671130149651105547362613605476958419500807344528703017721735679257655226547462323207385458019810953242876441227702326097438751862136984291154691065376013200912632115838366819105327470654907176383821968788704787653025277508649067224426303288588772753938952980965202660602933921615904374911242699368517794205765448951121274012335133912632220926488400170748666227946333354067373228210973272588576007064389490534686926013847354610551891072487323778668686021787349026056950030960431443624548337542020294558275780618003885075442387891747360406339651813514550372769622138885155438110662848073015809131464438406283202096252274258975216152297312932594443937693205513426080469941447847342732298881113987716162632953608172934710494094808827280069778479911991382444198929353604467442168759713747947142872120643184632885007003031281287203208306571954104981949449366140589182076716097243447261928558632059741974948415594548873313008730165120890990596020347391762846498960218382587973129670036079845877909099470856023858681892327243594083522338806185029918284882637819592434620625482876589001355404888927467322857881432425852861803961940992363375702090813931640994675948523687342733010855258245541546397750308429031683765887262374638461175263725556120905058863286841252095438180051887993272383156514022439910853749078305182658919922320589128601937590861005857636858025980189878389695169590678873551161045185203992217329714895837426203118992490383603293626972896286789158942430058555249200931089184820122018854928613331133805882860421284540069755066801887766887663377410987653630399486090566843108136650958799775037635566130296790034271315752069115654781483981351295448776661690774792825014366675706782093244459700378547749420810831605990170184547687510552801059782275806539679497666030026648360033973239847921689913749854622789023870299102743953940155972699538305554347298686176213263298320605943812325938285372669597301570332479532246642435029606450420531825274793519052264147483604865532048132486136996735755833353147235219169284098379935972462921259956056124395143409307815038696133748718389462796717009772459114934224032637858140896843772168791782500747450611656855755537701498704823944409600964330300661978881608129002365073686990781335924249305199171275967841952346243350429738158860922346507663343258291746494818341726820695606901525617220947472867066515422030987043291758608187973727694240651626026476197422302656290156525458822331157503134987335620399612176857881232311722246840236148879597178082201647937078915464756909860490644704968826988822060019522948806899602931270879424125473528715731066478082928726537698345448502621418123905907130315232413426977389708817590427950842397249260138173018920823009074185512669922934215906622634260235912380233529759425614366799414401152932223163419444455308724955990972924318594789924063284617707790248329564282652662751796369540389341567455698416992948718018014299568422380060135197186562032426622580756279380511842932956792431043481300547464020469989095135900460762144081303826446231001351550953397211334818702368585837048072601989772332047551938964398348892172532509250400610141259738241167971285083367151273059489798056696870385128930136208753703155734775724831256056368031975252390057211597781246297433210314175024906831638632762828616058751602027706791574910147879171593861286763908606882416858517391064912869511206824475068825148416277103307060595503892898177463854090519022426337886397909569140544212006385547129669162209616009108412398737936137318967569233161180192460896954713898031286415877285083390027950595974565051790186288021978716442513685097193533083024791037352235591439856576613839853877992258932310177803966761173415784917397981016499105711656186953305659434428653130140911080680153618136789044163625853958489092911973710443231078608546449168259078625909473898721786765439964550523186734566314291768971426298991495198864598089921924207501009885462453800118942887114232083643141290511045638423961157798619511911522737774437138988966782183073369292449326509176069163765314611679215185383941270227806249168285007014312925438903580418068725049650828287152218660219571363152599048569272185593804256004441364483533089599667524821737304805292886270350249368670041563535223451821184845547609121660982707129410721096949997110309106292726976094342840542057847869365844520741991169529544467437501962523297803670460468210298400585051886637005589412413208069226469004326486237842223643893707566624305993756086785976012555143509865189426560378804510773865974961856749357494084176274085795797524668828670458302719427402363360460009651701755147099244276388885905545216401241364253499941901343066140258222123865217506913346686544832428138373003339631349057718601821840779728517454702439725922574020458031376120794012788681240054363579927781261818735848980795317894086638740481809162632840373372559053120954254330766675329765935613701525982275449855061030800772606660400935690163800162314928857457788964584825152319819117147924818377679052948600204832984730337171302346248182083825211135849138053961343516463199364653517071640135168663047629487452622813785279941335064225286334060573665435967843656613476005079484811370861052570834816457125856397594872985715155007149497443877304795227599722380842154385484532972297431871561882438261119743860827740889496535019672483015339018511713553735553298159687834789157873542313350853557760551005654800042310232992295324021683823594843223541583661092820291419306363433636093240432319738871091955308373299213017458737367451724220421629286738086047897989206028789893609739582341549128569214438041867140898485205018103774323904399234392803112797151945038350852554723992656218259262079225123268003726137712774491361723198715044116711759406902988736727505759577332834693138042733072855279590217068969483854689300089586652690794318140954252948857963075720298075576767367182057798642697109263176028062479254540385170901241579459081986879910653021424423608729246279108800802179881248663255603404593626186683770646197462494116380757642321888730348476582528623165422629724553823780238965732297995726324252944966713873608026448915713348078204947028442500022999621864477106092943104838549235210534078340226374861588446290364841571878056732851174865650786521865384053419175952670855579925752773725591572803057802245622754328741887436852721625540546057446864464487665623678849753941164457634474728739763999804558770789124129241508360614328813087362801434631282253661645095976746095092356537914401774476662933995275073919736319834073186794586245505693624880645454666763208603457966996467812129712106746728353692923325723580031687737026083994709829127005074883406397648714538456340292025499881524760785706565147723102183054416281333443119957209014202418810810940296752079347764051597476891815658103808194114262312321571442320867127673911510147671193815837209278357337861063731925537802418429345505945212667527745905316717242426198598752357899884296005517435732206149177647189079163728318969476785738277662899089943691631492404391822242875082172627566188189396052139221797123385733512718048621281276980486425834552939044752717139186479484958101429977325203301321265390410112015525013365077385784889485897113581761861428051498820167986175948899436226850922759355707809392393005640985682403177792213059330196042628867692507269558285490229848275960361214374348868365225977004362721007396999855513720184639750220528773260959774690772927765500518571991105160671782397526240071060594765394461384466183116863841413384788229410449223890114117786810381747076284589525971321202944996336756439715577792953008362199962868790721220181872132415907195777258643728496075470495208541845376729427553678308218483637274252348667976884204034604582636733089915553730335263454622147647135742447268743734366295908587187325640985011044986881428226779645110545217204548614125253901135090545933328098948625944228759944489286849451162757664475197244953232424782246781179629272343009153471906749897958381954910422679910509570503628324061234476601856289507858036637070000156013022021750546830617336028025027556404071213095517670606469347435457627801823183148762169448638709193921656787609411732966697831115629347833070557186041608981002258393944868766183609638577841821272413419352869521703739670047383637491235636957712435289407853699511141017289825607477171739129763486772323488200293625866472022965177268296226431319086302909056080301408033193321971605066041096170043537943889237588585664269382474147793592109051964308910976227923053184096902427978830798726194902865234818753803888530338136063614513066989837418318667924284899482803591325953030476534435045202952959291982706028008211539080641175024387402573885480759678522016435869881201765636021059195287567065987314711995457804574538797117558187063143714521777933274982133046539774093110001036256268256530137269487323510213588273707557136403524833037706341362204617477955069358315874017600181193923459964268891785636223620344110494146446042181977281508593864469823845938202286387186654506221109770503479757868391584824723244883079204405054862430513058866778931199289176294608969833062654779195419624228793774926042908154397573613362222053374412399230011749429500055367272287765115509162757890503651541700720597880821678312630953113268606478464904239064958172784692124931277622529022933192069227817967721174342499745320787174198145151520377126072015960170496117792012497890988561480875433758565312226585888181650454755086754577425998384450075694842791859072435102615902193927851242268297272990105959458333898707600299824819124098301972489155430737748476717566751886459057178872678530316624464137846280115730653042828416909781475026968660445756069205715147881798579926382107850677828710506371822308393375325541032803931882402364613519476277375982569481793052533354616333933487015543414686924997673441957311810360064968421719646461557928376890758753307266519006933492354825118324686172568068785435416686829357366069243540336712993741938331275263210612219794644413942242399148270115287850354377087228100292118536308749010517017156603234100608649325862789777490524359191147011396734663779414544593836117608351222875285650015894747510004314202707089604614294052791299329911026889113511672651571413052197504074962670276462058687956087120996741755196030992364233810129027516414030061035643414131663466154259899855524808557832210427728444350524251579790626400227536159399601497244620964678805007261926760630305165672092822766215282315750079231988358947720064241378979815315102871488544714512259280173164200737794800411825670525407908050709182265526894651479118558364052135438785313218498308169176257082474382585739254901107297864120634052307695198125455127541774348409966824424316921663908106733601957947034644698140722031974136062393598599932758816983401104922683033722779942605917996097060445280026830099261065292682435179475800299762261550277839399323494279013077682529462848321676334724015027195674313304956950821533179127415221865442716976100436903450082663331521959623859724834367133036085545915332327490629043674081457572706435771156303652285056168511385662057520387139810646862404603237371477715970909999685627055604368741298511894641876530813954615691395725136507350502507300891782832376485735659595075465939728060165670290667266611435292709214322111017700572461044928239511391057612502241624130241026271570419469132611177617491802613064128744010870853914632100108150444005271112740498896408195515692870368260922216526581105373998082755708896295085530924763085807791579309824831966576567724311062582835937416050941346742697071202013130208610910441468741021141617397673846314473377046139441995769237728886131608961886431060030977934449050711281930426472956040539766792568025968969505393314989669654578121735186967896844335738179948882182311031156470176903450540326282613045994812436433360068634075643311932506798988789227069086762805159832969770602246370053960967619897265800644707017641817922774417194848723618728706064107006186973220607095027425634238429772183390264230392656835864457498143424776318769865068050432623190268873346416292344695387255318395854001736397912595945880546360598681724471398973803920356846485655986304838603973270409677640964707650248132727415271533612904297914034961574896634203498279100251002068356700983992589644405977749573170053689998087758585852687380222806001072475635131863458023641653875143705053387728623396320648488213186386818976548737874860821921009638259496663946154474883252085450784588702974828156347904034753654100834386806213329183588116522284424649554517570734791380677444491521732470792804723743986632811640051222286730925520693244637882833694223398039701288953716006771913910857826221327474231069322662649914595343222795388381263245227945585405950155555022629923530001271542009716178774878245894226457405172647444305077908820098682361762542671324720028341220883050401832919610249660694370535453305304737215245023810022426754568739071827454343396321584784893068812484944885102101652467506136108946389142867400963152070472894159544331034372074837177689866732168693175196748342595980493475696730541843748288022665592754619857104087137898334863746614299401728997876498458238267614304272082589047649611318410156756340720056646419138884551644771581964920586113686846511321695524676887107916319385663271530174780042675993797530214128432352836612024613045017117716772279193938320194977525952047439220818310333086122134433802086316797442961477143766742688367753649707198570574225325875384314447286550345082041752467072811706532401625638843770598526798426039190945201935608491309951421886534019370590029873747812656823132016609087696444786607124049771949117311663942379895309133820676964193232340782712732995255306764785382504625845904007539014838688958274930996615805793399304005722054874403994544881854132704412867644346452281998571032272257405213197071903791268827505009573676104138944011519426168854268056556556388890316078004662239019720428990605505570290313682860844867469244158991454547861360335101922236383037466921885210820692099604719281902092004639306899390683577929129151137336531446033835034766512650544264078964846856900847106835835588470635741013005883655355340667716768806694972169868008588614881364501636950919733500844779849868706201092531316680682857529883857812209717740788395242583045812979535316566762408775676728609428478453026745388137727789289982574946455455098494234613500406912140356295618928354194010520002277543217705611954257794020360531222437950537459147036828382741751293868823292363952342304807772478205673858790719787566219794020132467944281757294118259560272251502941028966929641800575967144107691309235975229000315244268712787552906307617320678205938819006145652861928045981966896309797542488728481546523893977185115535558875313739065929636121812991259032456289519352376571958517213448315624381595954568662444333207251782439522062078180181495834108758446168960644273264888196116440708551120027796093251263527169064859140347348954371030404935144486761369843661839179019631002297114584193088318977964273141720443745253943360394933879125911611826938136198163659575154943108509015245686888853722849857947074339902637861793214515867431619315505711095844539638544290106502821193681012406927339424460813698113438835272067831993901211243799030044900019942278866761753878965467781106903449750338033890634230649258852665804291840661874060060067611758965067765746275698566623032608793156215150823892477203646460485467054314581170641210406955209581877959409662268365633280672132835273059689297906399497544116952734282487665880994790478470421952404163719483714900718827247848671295323441142329446597287317033996264297100677208617091412680731611464989086319364935000540678619440287816441665640917819128552094598328694285502372208270369177023950581666173533676034294943310347961961980521166542225373421002555911996963018318693560641479483136383662618580167939186934940637701419466252711132801876005734756748772708993782848597589907761835277705839694598713708116618478817440763002705016988315063045906562233042006404308673751167214574422961412916180066666335460532729610813493750837163299519337284257569495459663377074240389993640044944152463818563962030662808465896642688702349631618933792775847897045227945112789374571927747956391644428268752783671785941479704236115171554242343828577271482350685432242325565354572007721129764810654313029838914348874216887510191381042741708827717768802493805872805787048977059029837825551401808375874915592455084651351039982132024445874699235393359882463932206249038346224654583007657427841610310604844785419275431949836994461504635751847898116297458753035567654597647888344964546420822794927204628557218888779179494878402336328049192185283554043945366780071395884250253424181222056935477830751471398143144776045672841204057497466745664169995484869176501675336212310640487112420647129008545837263365011632945019453336062440098015445876241591495833220898718591500583007688191960651514391263422462302511939541080434981852378231121814699096139848854786133167566808096423875360778913416293617778414435269270392886815505936390682110374513641345624294703135940534970961199048228052868019745651592561630613766285933764118204145224356053977096208781091661088442095305101941366866413167730471582089180927337562646512241125211934583163394018241061237528790441060667529959853544423250156573808056496509304115227567270645928236615348294085488894758015770672461712084051270550557991274319316102471731834976000610241485741044083478146814707722532915875752892261061935029824931404142223590320888085555651903815290159970229752613533196502114596993632729360336570692596039756296199341977461705765847477590135495886918175398538259982510742954035425368105275271931997579506770002971043646954801640074763474858629252492436748774772182370600023982630025366816053668563499656971992381667244580134670656912975394547362233741746793199883775367852132024661788984621197287924933556597705596847873425685556723149037950798992765120935823308889714318138982340442527274832101299154346748224789888927134867540445452165057554829186462712983220171396440530120843529115223418013981679203892411348793304292819767758271871869113944773503166615359829597616622085904619695689683882426578721630017960754931846517793659840954322551462950497599667249053263789005795498031734203191562194718149246597630811041389154440422385497308245146483980801059902622508269402174654155953230326498785280891186187060838490696917513991359338466745869714817889902038490706031533517606855298628373104923031435785011729659454354598115043787583234522251809840931919504571763806579114986459342480136420743416279626064356504083869158868768108735782931117589890013364102757077413780777513932656543713647404820680915759557982877020596989653044605533736793199333745887416449399097326063468761169694618427629610739386085347889426734493239645305395603193060784309510589485198207632785636359897773768561555713716321428984045721824755776316245331706017039097355602893851196027461176899894116757856273177015449425894548756032449953365158008845086397036972986652456166030685539803155094217398174200305502260386874695842593867171634302229142646779338957481086327615278775157479198892814939178475357264544160586103069640993002591079172345737564368410880012077493947794450132820677775565131187539358631338284485696772561073187930768666541439934438733882204866468119164101875000575424441520401818788862425344617829811121205824783789425308044692492885579995158865963166349557538135575208315015698593725176051875537775850201197353284141117185769245594060648065239705017713966398153659972278557744307388121049383556397580158228840658737575540177015638252648041227723513942112201689515027061702591485252888060793015230816264822282319266617340171465707067628655908887936467682979919768282388183569663859100293894356044064222691122514634074982856255936309281039425359094159210651068495777883429422045662800309113664732543659209850521617417369487267647228549513700488491136841077848243680198570346008117775491140985538908652596971320579925167302602489927983162208332148106669217822384526395517032910042775657816989882132736511637909227808951305780611579884015785817554868336005986349106011866604644275953615458268344307355702887620155549580814099664630951980206683329168973822799048939171139422544274868058473419994816481203458998839297234558263615832470728275024607954384780983688861949222085260007110122372285110235880247722781525897462261515885340282771718165747278513573972165875204848859281889211883047598851881150957468908969071868699000798321151319773452357473783276963901246458382865352665354391702054425642225498135938789871627081482361823932443809580671024632580234113407691790111816216921774241064674772544399492813377312935528310144359385189735668428108893107020046263393726236732274098908006384708507858714442390980029869626127527538976553006910890815725759303267530935282663931635048883276163787463806294840139504105133870592677275743544143608127994888888124235111053418380519975859809589203070499578195976252547491409679811521927870365306076876144820189641888829073012182874120803436932090376356449004757927598509411855011812355230609782817948488957273483548747979613322465637565182473557334642369103946297178613838451467307079974686167002623264429137776962574868193109917715089764122916090242139476324791369281735718796457734596654308784630788223061978782135962690692119205371325487490842359821652044713716428216685119304231949725099706372818351672622166983700370732297050092491082295748258184957338611191859449899375381673607443875556405275377811033430770696046312243382894204897800835082250290930894955924389528769023533463610675022431890192427994865912873426988083709693197746278277341268985330834365470106886910491813889015263504164414162608140127337305566811189927678855275303293341218343079427863544471250221284568711409447954181760618813869379075469643661354313711655609960587093062290082010595318245085703686831145662668869890072695598110977485706595390307323374146665605070557521573441044170906189721825542660275411317573777504484156692504135334654233556772208373872026357865798861558328519837083528504033760217491825502123348030377323245467322536589169718298804287404767380138554544487209791494018736152080007777003119676542596721047938662534334149382978342660276737843720600839835665103562355769328476401717243234831621482796552600117136689935074848973527408106275880996289578004454157150494060325768233486477557217612236796077659748733774347086826697363044336264062839132381110224947155424732679515082438357869749609236735158715367750276906374658168600072530467129728499630931501640120030724766711544513962534053635554442949726476915276195619498517551355907152263179608000547841011661302483097476385987032403817626959059105061579414323337132120304886419902659707342793464216413463204718403476302700719936165050537271937415073498620337370109767649914914914682844640971174682320552153962759800778968079005688001199566772473437149962417191175934831650472599474135919499830250674113760896944629168798097498276663727647055337663053185733775449356974094556030995396607603607780581552081923592430693417107509984737659249208096296578670208169742403245850453847977371812435961480929331942963617295895802968789494584047737005893697162646261829331302301166404145776285889654343914769644675502152101700821135369603863822636486328826554314624711810932856454960047927277863426084947867338717119349772188359519987103580723248997026421494619269001711772926700139511949152833458121654187122951896587095695006034903052690894069634576331686163683103378026291142499724903559643663935730572502773136060669727672678257744859367989895937369479308966396308807936725249209712224744497096467565865005161805164391014209381344105878382145056428712753892502360133647291246759117056946710901768767550837792775509192344270494927655580346255406692419307499251804481550043926138035043842540418312797323290991351664438385835336218683288736539178387610969150424826741476106220375107675250466365546831632169753986478311298703787519586797779260887040374127272783375844770440524634969081956784632128444905540612124692147403301428283181439701336484802730164300122836928121994586887208870867376796563394542650532132040116101851016420298476305616255520747768302156840726126238042705184583204401955219430345365022358732912828117833123419503285502263970846473149924288030226332731766532149910389207711794726608928040816257278555978102038867142705402473942792528750223958327006257035037190881650393795636195182463332820592927243099598236740574261158023967085494299683873763522324711814338473612902210466989676914256955063135023848521072054347311866308593042857605392474554676735576170396520003114432515363115689754082181824365022539154755524622075197282758004291376926986394925921151118874485876888979096617655852866720234147720729249737531004869777741230178587441751547100809931345499772276955007322872725557458923851043270829032494208325095276303912175026594490697485579289242445811120082898138565390136153372105744377183193751141478520397252441124027082490498405493685249174813123372811763990085155169135756066969892145887358487980618913061275301190117826619670368584712217570770099906444800144460466040096327002050512399252257345380866324458460818971959737645239079359004098004373998755624420814040659540108026335022428572331599694732963225719638586434435135578333190420826308828777703321523224010985337336320678767316522695278165735911374085387165130723463095795109724776424013995792794763165685544377904338531758145020458639757322396849930827318757930874501063783415954570432782551979066730993038211171186516384798290357027899819831164736923067549883627574977293043075626479067393792593966729211035900079834587956967588690600875847707617572681027485643840735695761171121337711239055699648090247721809869157865427030207901002026033392712315388025468295588581609268774700607517138045516888105868187997503908024180372958848214000829669221027238606980820459030997128527338862519944254157865839877638270889715695700678455676359577125060351686150774771199874166343380727350863384072518483308118337857257330575238883583536959277264229696563058151432863337424697942803139722558352359713002955336361081220088823073346639682339098101606387616999052893974976227844954625453869529215515185613234189002508407335147877051950421338837419149545616380016071206999439563256617496082149932795690266198751328138492502554154924233407011937942503167720801439782433587847996479864065853533820147096659481530028257052937104924571624565307334027454165154183805935339655849326730803267558953393623081380028557651803870778903337599995760387272536901799381361592165515093720508116619645886771059750990174457605693266037003405072652196037974617301898124244005716811338021349466534501112278747643461189831924906433454095807341447164825509489518096647333594906111409959220507598613885223204209264181773009865023578740886676204280050683182210768357840858722406894358960837255056785038244816142219577025615681933932199014240684746138417507399433798720953814628633932237096123270205232145473664734073094521151750825219976916615844125270720089613412713973659299153105336244541441275419601912065152831509000837943071979976246906715528089095370620752493494220857885165230894318812584828318714668297356023397714501358378605864746929328853633774822051468456213101077692960443586400116353909226376756828017432106047597281515057873979421637546453324042946104718638049199921888532652100720118607686234633068314440494911161262508511319705383743278358220410815498894155112155246450677926965407380237435155254838138319320472149942106848767083059769185969205748391370768580294881163023269253763697132245791948466376990394040697538443687705209043532031504934751105915048738960697379367784715313361303465341280243113142620551251799481268426896063665064892744916223021478867366652684290092338134977279273704328013140243008025115552999209226535123188949845249810024078711414065537173870178318754893538236913026827564682811298558718292168295207329287848697311414224347787887889162624976781948641148885264413750577975421904597666169315983138451527450125981430905332149732772885329566100185375602534428275762142464315293770894029946248424408586479395170690903086514445522093465642776165058307323638363839656891299990141628733385035658103660896771986863503513202783496295910909639228595826801248993931936548317248413936816815614953197710845504776191281973706585316180658443396819398162337493957061455921111852181935568938018457970644729112421139664659058374270592013148637948183224340311416497564368176316059307999240872561076624064482114593874343319235468816159506484790722186187411814464643671776907771617787821677057795633718439213795334611881487607673557954081305232081286112071811632546408756552041393261101941343288391719673641449355040602648505559131595112537998034733465253586076944982420410214769574369366290212927674777928884176941817813597335845988798427413973337769201250467470220325896393875938281087810792358149872499365254023305652226284570884024133856450866793482359563846284311280479016725687648805158840858613055730347641687444236032548534567407227605318183284399936541523088586620769627668236234922572648278640619078980718034719394971291449210435370756769064432143157432062855923163993487606414049574604734931825418092121810423172834071170732926665389295917468145810305191924405522190992630076768603769829794675709834151894606314457998410401555068234635777411035360626224570884312839665631172230191077216010246720541683526090270083606036222590832419724779597621070034777877325782007494683902926145752681932396608194719775899132611895419049548973694164692103233882370548115985167079341296745058728298311984002750569862094701558846787849818644511485282527002325798573270396686367313313922040978210435301330873808699602268647864085335090711115862224660140583617204178408675209246094851123112034610545463907319122077882524262442541717479660971676391699786823365196624971598719041126648876182689947894930635819890135926127835905728695478744536266633065805091722637124303233855100402229697914641444137110479569836794381344052085624802856443544192300915131491006543973727165120584749475070837125674354636630342788290423599276595782975981248764226498600739938954357517233512891575103450826910934268159246174669458142447293278554446366237302486735890280733248987777282143841246535723435189627960906696724641194162997442035179178453824431310666647144035535643750125635561247218144429992010973979680664092900017453951833844972078932534460753504927969036674491000697219578305645049413247360361416596503548651122030999337997075246438249504120099571060455228293592206046457017180242617805329852651074430956170193593097273094721361064048398580654956348492812986258507368816286191734637388231644048323831623224181889828978954364663769435586346078831969220259773838430049431046416433363067733776346550989256710695724279090147543333296960976514173831877837150080358814855641066144203780226058010196195158258087434820362269360410879564744229521025913356287790071110162962795705505318236554333045725167796890708025452596524380867132918507683390437835449573566148442551446658254086646849711362850625643800511734956411167571038292543863713441393281810489736568127705052999107076380648790077200529622508876004421435516770494914135785406976253273988145263128138549337366173916869186365150186005032399113558498032477713582834764447423208615732555733925368107765220233966401796543438518064970649857108086955891229822635819953361100928980442162097528780825390449774376005506628154175137057547882830522670266770551972949274374587535490331786050453484229087084712467721855402626545039646183535200499352411442302650348124911646347539921142595847536950194994931245749882502994095388880031828504729046678499143760177978419446860812020903625101264928757047708581991992405506833663119278458467579715434138142505776257863522735435784997125507610064678824734539648987831600474338855306798824038220558922209597232435700223186069228862330205246131154913960293788365993309457477751967671449875766109858750185510300345118831710534968988724291608471454287803092189394005982280561252157818419889767223386815198196757710229835991626152097199117401039513555827255440596250679584760505477595970438139061603541326513401315652296777298705849732598300635154497930362987871394399902399547437048748832714633025260815800833949006811141020163014856488012713381365255170970987499546948773202306423308507536916681395110498059489146976984529155077285597829918948312873382115978318201040975009924372380520876832976671802604499473328601696655524266164103494251824769706726052457928304303975331944796908139057152495575040571523295226754744016036939607581527243265031502667950194465143531284856530323721521010922226576870532629790033427256174417479314843009776808918390790984216543248240032105113480539685404172037118323872099543629573595423373672891283450406978917733917540030966145325173074520958650898632448671750104945767959340454299334649664299302801015591463449791563938613029979881244870504268083266512722375450082535150951480796330459185567087598993835696547130970142143838394061242716850408112731240018236564175817662612877163307768007197540124954736032655896282425784042497569543292319471083358180234685585413456140472530895291865527144712790709001738722756628666862902684908452726862161746237631952496241235178637559065657308166863783288708410273102186692399903914844714701928269848510169682825993015920658149563897396377947666135414410152343638577415955704079999992469799553173381590208906286737216975377712292873856196882690587265011618538442029889418014122673331208776875283715246581140340601614622539512193718817393529569701364654585826417264500232734554933370990048179016763336552939258772975835839970304497294383032957468958929361399886769781766033192873543042608335386845866885663098704353130324605125520023960102425898014491289667880778289210631400092334635428534826120175907034845986233963884740605048268588772769969006996187518142242114521841902407243441723036629965294834358061468917829343004749169129422234013020264321515524418811998610619906870256401295773704361529063430973764936815017492581396852990182523398938417223706948800767568296608610317788435962582714710215446107752418221910090938173012922465830072944900256116324114700184388355355367564798905032968973256261262094222667142557045491623505295439959751955409139983181821703968754394624056727107250549375014099998842727763040363387666880367834459416445802298727415864963994599217791257192884126862494914340978659521964513120179927965703083079875137657769681643767254397140226514687250194531553409061031902485987520494429820469862879461485230841211926757211824987789332703024522486069271673494302784658907693954109891475851805881532235848074818327531079899658427823341304154969793072962849448074177047573976950063275684214683067095376241934558330800657372822366073605258708398497650137929911550087752427251193851450257310277077683278995933271463998504911213500089027873095196366147016249508917033735674336638312430067689861487148052513483015751139522478307573732158874184639982048462108538565246029012716105002873850253979126948665261994037431159302052356825671525158377533732333568893297201304381596405628779851695264129848414507749295572401347171092643655347339012330272466495710059912651064875976666183512940161668240280060699170160896123839223680992632705562712264228698248235362042095239452075964547167287088415116288631858265213490603437315510244478648136914301481465204429889360693525806134033426321409864626806705795957288950673607959400121553554305611491454578699299371507294432169681584015021343759782981333903388488079660407209752233584760996322202169905478502940884191294018021684031439701120932898262714406099840330600478163218083457794048849924110389803792567025189583548393437808090518629686798408669551209349883392850596944106060409340332641554086900142018243334615574408083308707023166713311427801833460515418264383819226755997090662018678191548503192240008720507926531193614685406980139561105798792809375196461209474988705471043902943798189303593948358781551498915298136054780396471495628616715817641116231199243690625362683987495318032314878771640929803070299453126770463403967931099917481964575057787194114069592350283807791530551445563894645933743424015762910933229906353249724002762216322774525053209913179199614086326856714117103209474849135974148757145839470377586466646340854018128697532104116771109327536530138334355353907917325834841906941846642545403357700026392768279776582816072811436445201412480712743992073903905283403019169033143092073219567569667967952002129934957007953563333763351716653285862351872745379950566197244290270977345774520384530227329568525583885543712301463448108618969219715434814136064040555291607634783648414256041001140397605022380218914985901587211082101510591209181003072901204568204408017108711107421175660437502385967613369732090378184712547094494607265329636211242190140262312404414514367623181875514624089426092379019343821659089731173745288896278249068105042746779914485388274177273944768593513579155469289873140368469786058903958564713547347266728990103806622601623258246547270388212758979844737858956507561037391978349256431685980458384683474727270874687157141806297938409839644194992370479538054589760905662462639117496572118482862752559320018004841711435748644992860056307353628674427455935866651641208213436747632901559646482909173810039758299663621773100520640985219025225247186108233843595486141133803603681976847759944577398560591496641052826042955078150008377848153785597776508618966559284585977000684325119503533534819392359847651673950698663942070964636778765823856569911309948964981078263132099016947815281959095735766768918756239174320327681388054829765482643733402377769583675684927187422989244219895133639957518271044413657950749363889169392046770854997267082423882139334960137841937227585393692921561960927947485482069349597175343098675483357242857655212588717788597260482372711307931650619355052672991345262802261396945354134978779596636582807937900140472662124305238407180171114250027931788251306688560655653997486615929532989005289753849796578751141769455246893562416742201700830239138604968179370113895501217356339348401632148114440687760028157191839947625947020159887303294834995580578883502779826308829957978450279763167986212074132239841152402683846399181252815808138148274365779655348818976675684710408793465819742278732915883308652541669817474396821740922733581981915240123873266667808165246911334465478983219106125304706971447511051856842183718375161289851301341969352367202350198772689927575649322559793182306008816592735746600803688022132815880390667291377409514056450686022944609728728604443139930786482472438337805195929533313361980437076673657226159580181822247991732249569917981154422205219057154834097485384459973732919799401888609823705588436331397865464336920597893429050132778097963478643604797357131330260436166104328628288716526896133805894762099610279253139964092587349862447692674981143734619014317064011614362419585847897159403301428489238753663897012028121907632419610028236535403984361293548230864619075500630560565571964964629520810572866180810459869005839336865332578797698238628226121208410278843448600850338912006749517433175575967019051572711433960628322323966370104269959133153702504828671900658895294112126957552691358292844832794604009346605885465250792091783508907053284304463117052448892392581568067393054600194938579625732318414284673119482515910128517099189782748897553442011652703231583084251124780041824138783661863350261465187241993831329661059062840802165721748816560295533317998534781702099175434333791355927594082998081344158589995067900803860493764739292659477635882011512663734474441539592933506003909398168126952700532956061962929014229091200583352669939459640986648337910055696467692490799850253615528735036454036932826524472752346319781483267222638708841272539711838862196908861817422126971910929813692304372107977484719060860208899127375815321651113955291072410849897568223054344359704592532194640151989608852183877010329984774430298736285561991962942680715772200188561578291668277060078013795756127061170922747959885022304776163552337759233055982746119127054355609413827028802237424660589249382035549220077889945131328363519993332337720653636339892091064692140236597209361564548098044092859703351758458028286395799510791029006651514283242697189407986142284324932062505542372305782254605211461554891193278330327153818878998073846343899287499262179863290493566144258343550111662220417119352446637530700784369670860888597674127694772644694867699642239597398632220267590023108088489377248280632290342483737465974110377827260340843564932998240519333927895574877279576944770891154732986184965826744628805254389795698926930571373638737317740611140966659593778165131278569553882246833454859467591606770258410710671047340520739791065256195480253318253224969072085644235753398438400176232671661947735460596337015900617742597622052913268233344850574810240291558183110129604069923802361107607534010183080393801940805033504310692938083552085540605363370961719537011286655373783134882707789069442653087830532807162159864853772093834222186041399997043551619874560928077557448633986260635390172081963628210698398447233941256997795488836142062074459476561618300569996417706251175749790437009731811408666001957134750608480172488306365671472497632849614598530238554507088745710020659787293776048398151743508663300916712491334578213787476456285013228571203834276586946097475807254763011425338895237999011543336298313434017352813591487595521466608804958611052576288973362399439478253814002155053089152935860832012626338377735096411330691338945537879411677799149981695041816163759826966446179161465194493214639647655100637026758822956543892681482010488649602975753345057333999564549206957732476763676723842453063600445967337247221745516159044003941965502447517513554342198355129089212845380902217430498028150652070828231777587448269364124534097501389058537705749167306543579768278126159927704038781537763929065014276354073812116897053912413091737847861836366966217882652057918576302562831908727289874050311318836490156109049613988916322228537842938433647689989655551653033747466672662714532283375015941102429629330643380616944730960932130815761679246909180393500975219918811007514030594938778268142008896844729965778755753068212353934580199487993339134890573583877367355611135862877817265234230694883703177479179772334769312202541981855383154980093236770982527097017220721124341021884921008112885498540512916508536937722864421081072929647463378160025766432490885932049055575622829462881640631458871012283752033235904370899101028431071841957762083674948575917888011693503156512277298379468794212341533448822750621539544528686392741283344976929063243584868941751497641168428037409974276382518877113830131877926621469249516022557508053016327231246755406979445424871003786562783573060299375441176157478702673800660482878723796850640638079878389777960701833618938144061889255899949338750584618660691055152081785396939394165478622689600142957502805793632094170240480618544541807811725231514924553335769685495997865394724254322189488926144663006578684744554739690402869111861990630064167488997588903699259555603141267248585775086763529011905275677004210010726380177015469455083270381485986436772995369956268534236688394021062830843243154311315827759746044450781895081612264357974066896939426951513615167515277963636703443162315564612856297811757000212777240712790305078492333143938412624046722407431322544620195582797905470596170517086767210839375451345487817466940155957629982110092593087761527804826885339568737049234165383516332904150035593236092785214142868495028830695949135637598245790409310853943323909001261575945856502564962402618275231125630292552288167444354763757966496583060299877011480480455307844258427439270006489534668500619060643937123130890685129493068422263228400845856061708513073365368483822871854128410654660064395724659412032600072669139716734174516948233154695149515560858604641665506444572168952448936254496730721456445849972400498394672462280014907009215186775467896626682634804358714259432021367111849115048073405730562712977691077945097669285072681897132683817705212391929856887760925146150359801653668521558136886962750853806478270917889602300447731327600363524670921037752604687379925229020151690236953098335292609122476787940017374213177751078705676436527749050862048809863906783280398779847022523892115207622058650854182828779367988451732890375631298613261312354237891093748478478131794923805772593709928152305173549206337674296547504905124494804589068317219124086948023403410283916552180431543573651816562901695241505080898010687579047340081269244669500912149070731391741826419277050499829601035635995699141011192810374025110670004332094289279514345435952449930653112906675995951591042363067813354345867028256104617327940820868919883378633922743224070534849507041791185826656976731099861208182093165925122431576886110367555373621782324204821629156836706140429587860578155194462374205201056937771063300509434056765021128501198096574445648554510633433316044964491056366206507956842539606137266882498836053866220491827523341865000974186883352828241490063889307951752154720611403241623977395851226039212550750539759078072543980493977351222778121043345452022384201631694973389246525872460212706960001250373086680469814024322628770950629780259794739308560088931337738957477924768043747672180539061838651242520836936478856816918973737052839854817971564679322914786650151980326746207529515894777587853353330508115729094952752154465568463313894966997158575349616296468809751204030815850814955770735581352813643277458772611616981722957355800676985294730243422223308938468769725536695066002888635376092971329139305571155797871241502832927764345567289522440349734226077022825350466806845147895399960101361386673432431375097809196732845590672602948026600163411119575093587875316840161443360428904009048867349977217238958975554473014927148751135808085460685457565267412043438308213220212629461829445053959352200957366727986167088703988603522858525526348337575523404972061570580347771647049263901436212913712386372793568257611235376330971537654057199731967517869151149045443383577795957205583513631591064503748858495224347926416067968069666962806214590544499546624248265901573206970487588760050904499719871647881316770050836555242318654937452146328951252309431201723143051534520276047223198441652195789748188354136132237333035107289437368210909035257596244105283694406520241854958047526228899470439637678830533439606208634976009416115966486668820165760777518188334594890512856207512704258369228054105089935822985891523537867582796149810812087935336181534618035957802470258960449733209629011611139989280711750811264884008426809872244101616693232700189748314315244881857460294683204809481816697444812760867954286555950089976569764463610825396966031685037171739440558941757279893324203139280814372464930760069344462059500113892266401733652788544770043130289687521108030101229348165741699491002627194822141757652919931172751625961737278969221103912886915780806326049656912611024696815524482462596922658036094942453675211216475959886801104247165961772243691359596016096716861549474767061722406036150884348256323461099663805307737552870150789175313123481703465100737151719851229649032273178286863001430981619179350196664339849351365993768217077505441288691364665185070659178055020747461822352120180657919079973406614946155068812578997478739473616514994691956701820506713314689454049163359822498902067536147110565775575887348374926189981118006579586448483298663751550289681500317173725855134927599501327541723701450530199108442203260843016809318152656266455678340588291918499320847085623796528020355014215161405738483020905207452466022377446974620347255632730985058580065294575970671090223618990917473074250980508974584952791190757974914305571395160327713706301610890088926553688852833279478437825165450890962083498556413401676135392154303073373410288946908150627057478003431746801571383481612119009963547350475262592214437740739535359435909113287781095526601281944775120371260166750139019206945866450654478418853335530002951612393300338077672697189593392971843254155637145720973084218335031625065341446947188075842220301649034542518856984028651262837446230873943333686286874861722028333695012431175623829979852312797420881291005834963036387379102704350413819067800740803386101306829588841807113440995488433560349054454859657060802105767066109446006832878705547500256031183019500059694870088386190371205652068023466874301337536227618144306607528938595680937915250940647941638663020629629915875962835303282265691674757811910303929182803241278330528067440886681929960518104058701162085953687548251470773120480808500238570788078309437323809427491974428639446659635677808458514777186862543484174317490094052914740227250994377745389034731943979099249594830788491872313272145053476657984779176303348597022499233061688475283281152962842617558688078762530577766946038116230078585623314400167431112898714698506222461775895479442195523367699831814208627655014612719775475626545033569058758688770266559574586033479992765766848872373862861497351079995583085937354156193296712377651287567102406759628848975225233498102050671554974345210083327842004633610245749039616562656393964141121682110882017206179072319543920396752041436887056550226629813001855300245007795927375944051182857193736826690835555186498964568975052041761498371041379616259595304306367667812092996614589978340578118120862240336199150953374151261994070817243915447105344059360409220848465448720755077455685267291766525172263469756618061838010367216689633491317767626919381793353441171782402173091007774053564281991690767770251952263370786461569366981500873170839787211780558594023927547902926417122186250637065985167219258457376575948649679831157466028116567402149149207370352084595995346676632021406971567950136560622108107358555211669859911942609011032533664360188490126424049423815996456140930602538662517632518257691337311346162553079540165561181234528919750734969954592177950838728853330507922759796328842889366610710254793849427894601166624704655013231560854509155918091643200875040979002265851431123591257844164415353917579238961844693311769467571504514095115200947319220067812836959127295499874244634942723298273778742593186149702527090647667457210544499202013971535534618687490423880735094432631174457986114814904509152147669625879461879003898963878875417845192046111251391983882963149120152334705016020926229674722090790177165639212851529964860907975600114423205543590619197488318745888716701586379937806792355549457428637232023200708495857469581668972559320525993483841699182625075708374718772773960307085746120839668964822543769983062253321296483270953316660077802422407569706154044891527355090986923232312123151206590574042195731228566617816825053114110914522564870674926891262564599196158569222235176363105551562778178016548913529161281999168112379265420678440983010452512185607636921632726120778634991384657920058182658427619572372392253325409584119909261497080595530540834628069413258790449198203478714541554378735830998483908150152860516093509655855873789764733249713401102134678985912809856472654851716419854030576892151110747042248145259858412898870672200958146239386560188985247806085294698285519092722292978268362103111894778993721299352194205752810930108948372377881888198063314647016778092511100096666136750912894256672921953617526423146870056058617001129945043438003115191817947204494927378368596364103990241994775245503518199793706826308596695115437175697492284834026171507132066983163605415277354152945888528287909765554536477304585313959147883084037424576473223344685696434862878440084426496958111334610727609634635610742836101063188337589921800839770422897810867992974124435391582186062311759945376704730753332951502952347783127366233555782626332730350817224433979995073453635112156748044876141524576777383370807273439202257492854307904762930237955287525471257976060208986473874607020345689938717457100322404085676322178992549581305715387136117965414552303334877206727660245797378045155063039465956127444168140324754901389015660786357411892383399528149026097258425624103768685037162834323274346586524570422973332631797709151395544855506795751229440704487748927476831524505055932271211384403666681884897943994502792124658279232389269370575759040612711290087769244845592633749144582774355352775437051470689671042581616124976537273086018311627850149571824071997926875326309325117214075857063106960012323975998108539407764536266029348744308844537031850145047679025577327205080773660579496517222793395553773261946689235310492984154926779468106660812494686909843233586600070042684143204534864934115350337379732465811880179699362137222604295478672981561651324078056419289119498863800996776905783922256815139313195510678345459650543685020919621475282698964561258666299939414658236044391376480792305752786193643577987379253466938442627669961247718478761117036154402222861066606459388813251657682217441066953479726155864677734336949196566632330826250854396690799492380654590728646769073953833753448516854190550231880680098329632881795509646249788312013206207172903267946984099985105326079541769142167056670280203701664988867392214465300256993203032271633636334283422648594264535990972530059563569389206730883308708534286191363173994740240566499480176761002772994498657911842685791409789378204466460065041830765587871076762106854061239539115431815984700529356579734018217175785657436343410407120416925526565283689402394850161007491141472094820589302224059277639106485074044401520273704024763970464532421048747128698303290924904897904023383417349617052003615284362322891391608455925536046659711610633380214867851316637387553111764487210187379485811887227252164042200477014123589653405245998944038932779557084782250924066743695569188803227079062660079391788401149209326520613674442606466116176622167780435200035707271597386046834529015048834677158833699525373159846921599013673129040120669824091097511616051511186344955854073966963952665809041666385883205373100561364387002120592445800026659372257450279548183378312820591872004851230532107560502524707202372323762454157604284014961199242616086140280915693365325178963916727194815162140443785969052305214174985198607159961521187277188909822458309866208082075707074023372428311069034751970536430479537074208337950213930761176735488821144797837232673358936268214084152558757857423031042231260730604037630780106083619033928146642740185988881425829903608318555288935706985045919273178982339744113407339230393882170043149702762174922152218707494246236694082713260080054750434346304295515492711748409163984799418666536297959787128146031974439490265405726696955078303597863835313475536146146716677397365944218506070825229985163924890584532502899290017727102400557924185927474548340122939521269132892376652049069342946125988564973285324426215474806058243440649361580132155176641589227849936744305581877805567476980911920923578702008283608142719238167625519861313295451520817333436390241203258085120387352145458689278345050598470985899763470150170726916054830937711010997172462789963697719311528012443157682368382824612238359944596788630198721408048666199711280303927689165179931410526603658047561944970050943159702383977373850322887384238947073139917135197215419751301017570218209226355921851424375105014352253457470742738794895471089450749534869510094285281646422732142050776686639340940432838936765813444267845394298737672561651662813135207871157864339021459973284726894722283331226990360933345627202625817775573778549940290673585930183480821154451080361482922746836603573878806532801270094526792435297088828865705325964729335130803632667666845378406424803897219996159738937565894595746644149444848423576232919266028615362866536635439519905808912548780593997715324268181341003708547059124840199430639831115062673999107137744361564737600519278229500454777220576993154378952696534031808849216198257793848198269781245581307307297506530825267217455383808747347103476375619802785258239324756423938145562908029739906229621806211752346817531182550174576136912483498009883648540818506030454273735519555398830756909429810102955617879757397844326886479755509844501405222134934670815331383019466618523845993392559321447227217126688365044925319859355354950801277424065493292153243407726679222839659199040223333033285579264523179435908591969668137903566244255947183866682578147646741624215397095687866654870994299949653624891566211339976242196683727499888576942649909585808026635338291828290181045889411418676033908203549151874324426877679258340746899723258296227630783389695062285766852539988718513433411334754307601227516791806475371863165731841937582881207266068001628472307128472912304592779470956774123578122816617051520466877538026276782277335057350146218751603076845613037575726668663419064885770890695272881269504476798229258809848627046788888283714302723298571737881879181456584110598764651882491700613732916017756645126979862659163899597263762884927124813817617588706388949830346248613855621368173824359128109446217812483153933879674090550516350115077458604751612129979238017814282792902728353205984845751795013043896013854834540491829793636295938684042240629551746911876617233925340685115305213704294483811906341021366442355507340772787179162824101983986415534016390320568375704532686942657671797639519640669090294558645622895965851444196679556224687758505793007609856440512770956653830861622436473152389669437455050974986303188605841706174591116222287455864399407596928730044088022791686658929825487995171947968228660653373561716624309266026937441059752121182306727732308108595634181811764988117456372156318980749474586497685556685036648588354035569479200286135693636673181159427236462037555208973210353974156340807685188891377334462515661880912591341558702569367516662582967643891907413119306128167520802330691108007191187284205772864652629109339730165506614294661489796533467520080920015301567658651653994393949460366844608672921754619766326907894591743257211671509699362556588973951639682309922357746796392349536070085111603568955049747405605020070688762338814649342226683558712826872908575601253062835335214945546043211453418539335271310436416915846186399644579048408777103113382143184319018549558403699205099504611000530312847570275152374831796999696097819312647799638351539237361366604728417483812724331790838890100315227312271838858697642980833115491992972308245001981644475188761627885919372360707637062259388753126066637915979429948786962292336070043227158363260079864794039375728917953190984405872368148539292760965273506853850827011854243259093508001776881311910154136640115132739753842116850058244346709049666626470843248642277287276166234883563671381292858612917198101820316068428342004080099910258945467826677806496898192457215439534607963692298877563867349604328927383082604852928836442526781201323866238543559202348350906139011546721793952260626027143026043054774277481862733577376658584081117606672709195029185992434123542177275349916512563548946550243539683958402691851518297449645918026214310748324963447404510477804168912715822481207731186502271326692083166772061320325735839858921573534272065117803869442785495293006670897712826377794436194119626813294268902605728109306643920731056151339680849461799451861429279793089997947546740756775863923034527669312833894396564248707126620642797299304602674069864836466404581128770929111114883706531660431752781333966984938100437867598448684861515363046632366418226037359460803534339494789302747996889122195164776534928999479511301076409319693958544603245896193141967806211713129625714806812007756654467007599007671261191367192059902696651250693055012955287169381368119394759082987655023137332346179711383747827126934034947886612592321106295053629934779172903985226014028661779825214364399102645807128191567622257124808773127986782020684269680150920629808271115535291679769442031584341502827322861685384392129798383141094771600026185266926629012751441568079026653697678600783825894818638931594927864759041399844833467383114611589152881529049575744835231987251664977008668113187797506603324026146644593625817343359368169083082167330186619891346429272034226308450525223097787287288630733454453894317861575745467589891951471457707459069646719415823374800568331628370174347213373240182731179331000022917862781283763240949245027719722678176052231729917977627648902549954621287194014875707608152531708546785068533582055549130999213288283835189992783892799888706996085017580091177779285024055348758569756787102695490365571727471453288301837170007361208420921217288427312524092357136210104854852709534862382896530866645462248953022709453163717980475232113297602649057963183557663169317521872775511390448346234449174783199370693451834068671749553847703280290870983180370471958549460623733892293707394558713121641166320875639813884491600032849487763349315235341043570469912620834691885323978955190309568862484722821397948247735923852291166237204805007610341963417659817567654443066157823570421005552316045655329239083830545484711813783601103741413058990157627387416176867092868208922457834640860857677013071027915310592955420222045165571322247438448268238267719385869343997295373314842926189683123415540245948279144972163985186447070265925301514993959029883016914956135036532348048458441806808657746376404518936569766343997340802115569022155140601374053205235694242526224817240709255340363147061864347000342363256326464036175558251117914497893169782687329287228498416048768905555782816971252989683679985693081916499160547904503701428209207875353713215596271379886517423463323331177911678911327096728811609219723130015765298156130697941117743822048892345408831470146490445064261175813124254820044582450863704386330263354207043536691975121976451110097184394121996559124390484737188003903966588943135915014303497837126464040600352979102954743046724111912430583864859156277362955653671015429412190853614640591140479225809329529186739289568815875561939120782104516152096613821517190104832093411258755855142228932940197997384267055957166991035648338467875351546362984010755406085680595519501390189184526935033373775966089922348620678294664874622653990373893150417724645736960266319734132534163742749975062786055683260940237616059998822807136188554429170296622197205053376956974227442361504349845658457650666050047751109519262191979825390766881574189084702157068226026753615334386553817259177557061521788034838216797167764510281507348576236833042678943326963158353481432226045673872340938159853021975187907589752316879181642843468401619688385225657099376832353423722611915965092936823606844917972452161799924542511689474918278613572916953648960799832868760955993206396213307337001888931690696281041401070727889596600174094455500812756023034992261287607806789603846223129369606250864181187148528858523258330508468831022925521262711723011138288527131800413035744352873296746142965068923776068770901672842802306145193637197449538090680916432417482241779047934201605132635584027969277941591646824351723772157702215797601967308629363545886682639734190956538178964433374909098645593220882269220226629385134567482483488339077829747655391078549442628406526551203254922330538784344579990225607341668425016894234788797838133813696303309308070549757832187822729456800992771773109422076503563285373421396967323555531231432085839713854091705674241898128416299607498415103784754637686891246331143391196445333173969977545869919115347129856116112143670501868199262436818005972564269868469521691330285602130038164295812600537484593016906994401009761313514001635067297611160844605653134977239745922945012065004463358439927355292635031862912231424801865855960258642951564127584922805983145923060905766941737512198070368404934211830411197029244251930531448675363600920251482539967818503079110977064981343859657998976572163955369605618764775993736015876006069667352273756118512581062458792304013586236784542053159481205515084834433766746243568354032385370767528120174837886548727314724769574673054185032801063262901155764275922859737717214980196220982806275869659295839562985274445888736298082723321346405253042876138167255746573670042919727845962054295497402819114173661557064564024650267611993708005189232724549266351959303034084338470813379796943522162983384086621372563062309241838840322584157394207997024656355358262915863395470304237766327036670677730990193094687523671117172900489986531756300037413511485470028207985915630147299156389245563679542345372976186258131674778866153376924658518466183779193045960706395622615989111579572320423632361844412917305693292213276114222052686786113423116821800380898688162837057505834567510518347700379250254000286313327827938792360040473016985566484282971096412496187033507706595147936475213353791617427029970065195257393151994134577608286694020742019220498852211082627400255788139073262606846465213071793424234479016597714125868089184071834425128124515282772144800115571951641678129132743479584677110553959971140614226198445340118052927780361006424504444929956402034945223638851706798085878510438700193316925421072678909811543422300679083155728453408041973189079694166961647830475632325922304407633866988497276629078081201654701756066120413052320008349349739571909456097785749359525620858789643857611625609041343435964750226027994348204176719134032163626198080760309875742748598531048920646948141699406976767673190957035250844581992451420631512058758271762082965076615697752941682082489088956228978755096821907537860619004084863113645588175120943730027679727158546172885569864917913651248676665144579943962683541897644130451166655892452739505041132758418811597101713881865063051778777620894454566951996869384767182695023975252799243778158424791913299168103439129865015911596590230878294938366223656283802009509818004952690842915243877941813962945178025841290416734802393851771400244177563451190715593691634075409553957312331269915539068893162187100987003055706203416678976549117409934668024443464205090011353778386053082109527344911549849842404376808013121740848880240331979592423559638159346092496081210382012290460815012550085475235556060679457855640215500932027979252181910045657755226225735547255285391922070779357579992665582388490315739459034834668076146391889846006994604944019969433829016463625953872692541662526894673643710181157911397268912461500356478054801564144032674081438824587213252999102858933325418114071280316154974576172363500375678408896465251500399612346981998589623291537991095611436124329723905530901984435572257646638429842048369521720049766609621264247840171868205897237489870616846110031981744631720314952509296264840431386294085161027597369810647857892547594208745124872401761876986802155203540303890204936631778831599141441603641654271143604428454680661314384828693026515663522168024704566286164751704245428900343188429830711197097662867081444653715616380762888895263030451378551540217763908243407776306776078781606850402238791382424033127366316749428320493001173949976809695371732473549842162904480007599530959401506797061456447020227032014417350106029879942614593814441669036063046570882221287604947342961224861612801512705771227891463746841098490706583380021724432051932065270721724404886849115199209814607677856155581876969484804143809338073713729253289806182722519280836114814354654595679739476584368853740494462411048256098323820872891500550600571150998342875194476168352317870264593437160220795768103642110697532575218814825448389268016747479387766272602530790262567397198888675805061002437740694822653081509333294090435382216643279103432061322470881519546170047273288216828615227180147720261445814022702038698616316229002535934928287480527812711221262342274696472103072421186049965848664843857859282499271828754640767628472427242167664900076489691032346212924583846763999043374670443047784754670117846637226699072021128321022619147194045953386283503427725314292473219813835653367096193044202308764157219993521488824736698976983369156315744140277627450857102217381019364158773011693631878794749038972102833237885996535288343284800092138613689693494627302708718009442740102125459138859668000399783007284454341545173516024667000479134779409107183143396993159612197180197125950110504614667412099728517699418300798220999042624200921152155351811688029380528805208986117964324140341165420077181395385187873442368896096025304087703302321237357491089013206039767451392017731244884707644863548999548216906665073328183451774527941794196331912167141437304411860089002177133297103659326253703189866657486494793665036484420725337944236965004587619088392581440473478139286234685974537817075484530463807158081021921978538493004479495203998926044931956480600226869859280484074952844698598677637367924299022425869518721829788538729602226232532964680430417871395963051759628724553191239356278304352752683073351730608439590615331676221050445565514501177779598972654615973719541721409956462644694956708930476329921784498893482329180208084370131694081304391979345278674258170985739306494888614918744792965641975627164699024408008577521278317579270554148485605165889069225143876966153573599138670820818456545379950502079807286808502090429189784443107640828340817203574598288627784170892765064399387815535555016223592911554350687685220089338472048135685682725030910059445295096756778915463793570842785057826949879173099127214848568913197257403975210302362155423629287781576651451693248461475945066744041656219759590048146622510162711523608195833476101682039034618299185270205491967257580062997466904296945388768322988688201803936892731499547246638806199128142920079187867476605474087255758066337443835998136505290658492706763001602473939871184686219645848041557642651560172655112912076385367094249394236965425066543159047535307459758915292861122832659917030532299665933217113295492747237468214746296920121804136779724689707662926808319455048718176776038739523961392664644348170680277678511656061227331488237501844496717214992845774707745971710251962639086282412255393729313820227679934897970095797444000666254284884186944965596430666885698325974794649424818725094682941600409601702057767056157042382685073128143649814039520040266530950118459870048294605254062736617051323825973662707674589380703496100991504238270908341780674590915732476278831466974012502022639286539882299459281707192190319212908474536522776403896647249151596742133823262523610138823996091726962787590960272111799331499862304220474804132477893314426243297724314335273308816545947834788615895147829605070601565197172559089792116812129611477847781519313304688326797116819390974453760669427094596872492202406448363554558433383201508756641640724836854398088216767579375724357151345367145753520104903065554089994210044103403718196414228090267249969784311629434870752672396059785532343770185341011887435362020808134486463039646494328958962431648222916479930987402530253135055069450245136292526608448103626465868380777323318240876502323908787458677390991153716016941984052544797963169059808836366930426764172054183375833368934209609838462848410737096805404207502811511325195587862067203605008312008521732181404133388044770459323519768372446579345482812057375016638990637142147806188466417040321467213098753587184184511037866747407050899637133592390265572648464948650670269647661952595532180098570927697376827968354914630432084498517548851810010847161903139643817469306677748990398958607492404939752976176885566935706122910970111488696777127827485217004775523598069842323680210318524179238375604239125988969091295291746825316074502651101513036334394416792980049943919128558254184481465186048208617400982906287720927953504601903974740756769072753178172054179057931511505293452150143735927145730470309831447925592793050198292128093659894991180003338988271425243056473333225471436786320841400815306028580079588260759651179216938414808712508307936064702693908280552685751950495126433009041765977871517923137751808535882459756462560564286566036711713960507604835143685241584473816041251192072774164203441781102290001583974924558841425671941056476219472141375824072401725148246933374788399042619143771317677022906758868340633079546185607151704855428719764550821601578795571292113350283948733776352714440211723785216780330927766527618843981140185887841756716245711547268263744074036512625911843931567538302839977868334597679347491990615534029482546420635271398960028820602066705814506629553052377575679748899002480367705868094874447474410546455464437103193229722733030201322892504995920383621247657436074667939590482586494119036369413344297532243380431694346245706553144561426571429566545874700725148722534813935147707454808375309780093121704877044451497570315517207900804301767171595243461580513018993383135725689164166330233157861587186403080274514696718142874362532258367260499110749884798791380753081690484477914537126624303412180607969405106679155322021031210909783725020072001226844543317435255109332406889000852042222050062752878770488945405234694205462126882827037549063201628685165514446976854217639588536906733309032636238977982514823636797197469689861786138081082693468889509302257134699861742155188354455660427618713948096278474843469454633459455525790849772164113212655257239236626596692013977935830020561326940824233092035690271829919381201309290235577628757333111742303234737912946100366979692558858830730779295686262992499698051506308174254243281098113045322786789452772633808343595413873847954359388317244950623392314214087955568469754539834309596925762002795949665225741247019478946528575699469066252517202832822710577159821036814021276962656579530940827625283732722831957481755432589396280905873879500514201857030141291605872921619922376866314299522922583103119126696591625926114825922525344907157614857628198061668458854081840471372363999843645145110518129666178361733532048858786465239286243507445354555312939457873409575530686785261758127902539476981241381063552003804944663223772273477413747863688898425612714475596363352082346836459241018167642764363476224455064869302486433113443665946588206326604299032716407213058191483657480517840292840773146754456896384530082825084043533022110115797799193870900720680845887877544504567090186939093926365567674932173007738003148228431280247573440591862411663415386605384702067215858646241594423204139174429534915277459370941828478105810276648720601237561308427906228481738692563366276204468318652486539377902007305676229027980677095854136939866514129511722558441011665175395915739602871018992796848108333199484319108702446988228050215763633850142643345475047027676325763269749122017279132054383203162466818066621745600921123484581143719873002456908678182194953579251325582930729966498411389566245480825158651685380353190540109621091940567195105157440326515082629726569065084006369530253801080703066177736613069849242802346230776075227979719734174997845558969774921019254565113521648883100369880208214838704121818686396273299275492301205345316961554804045757987728393299541228017684895217216837315806319487223064734252831022439959696453638842548223523868644166603690296770971783144174794777387098614503152607767021913629366360331091926704703022619040001974828628509742693025390966629245050654801147358720378524696299743693616885469071189146385565718417398437903358088194214394970245372520441353429884580295694865851025631131895821020537447855790354842508222374748264926117010452143346363887125694050530703171278156614779645595551171558269481299035362072156021114916845018387023569563616107787952324896713415195172071939814698053889115514448649232449669039023427841664955480343037908835254080702748837607175744221675078241031016394839014298111695800977487763051992611715093350220981844708289366492266868941089828316056733996571052864921836804549350670983289151487986948631420443101036705430392878056085020117841704816914154716397202708795365858716107789762885432851043360646389361726364218232437791437909340296161269681427362773267778793070584095174438458929388035055804469430410868102292341894811193381091805520915506475994572981069762631102339855804788066417227415752041335114826322546986203713185390870719961079179883296625413521187105897263144138578942371997114539901657765527874426955289402070066671141321056455673817513665356571768639835535171903389643899518878164200914802058381482102723729761164868656842794097103562950691888508988190212567364992277034932602297823661695473796416445176269346100435304021540371953489734363979125612459247046769558581174211222428323710045436932018789880724285561683791469346334041333397783675267848902556014804947212123547725637270081522997462221844030183419897138003838390415094517062285995890843960097917242498352463643587499332544318665986401196313869322242715051800148390708783431749038543604818643232194740367489501395956476011124807239714377653516207322725399404570227751973489913519769295668664397051561487160315647632624724320075078379503426567258802680074673773318443514935416216266871207723194397732779835072759438423902340336485517504824164612111331507452443630218265304844876326911589260373283507841383496331354304640488398040038805791524937866938192370571049112969838182451471207232424852977909271054898504216304149949897987573629719765038775629350390920711784314917326344234500188285516992845225065629805658490837583924881897754487073270171651581301774650428777214330129630853612534573231843219505043516913195353881366989956676760530496646749236755381116048644867992471008085237404381406944114815366220899901220172572171956827635716782535523566021828624644836996061699590814332766209715336392649789976327979011364652801237147736939708321120451963345831113142802297266736622530220599226935779471806254198454435969426486874940419924517558997366921581628324500746875148641618993075507635902331558338125108513193619984328841063701776043503952950504192152568189194841421749692551360503274222280878468952079911372980077408192381162139155876050967736567961996804266666108543646201613461660227305351916834339424029294578177625796059587211381285579407433953808772577897345477320888741892682416159983839448880799811900162937116199688707227770056035494118674718234875381358917013905362763215510287329581873646214938812421640818273461351641558461066970717109344545362454624233957321415347675857745086679211140363265104426863902742590932213714337401910781722560749791699925233768737823311187781942856269990434682575796084040142008685560298079069004114209247329702321718777393879044617764863636364187207658004223910108579768015059592335774997876138324418173723385437508964514798523841276153431537730626706006696622193775132281866078095205658522019330252063012650256154142202605523821633384528764970348037543288298327608117216876402374755472442336423008294105665102835591820789557150978684979507171695771809612618542933766129104460112822270291256309399844956139187258128175211374015289441869822795440976972807415387207632241244339929934226160111161155388461187972601160350961915830407921604878148538143957701465238099903005051208365754282050084258941452785764559793047281297751594929560808761718880903410745107027404768537814776117319383994107008381533035163647339528251348441067775358465737087712902750646309996868027824447112550835949105989410218708981078452105911404256524261501694425174346511198067459894276866612921417948149760687493257796564950832924346802631291339340060132949631368565281344032156019924591075069902480444530820791491288981272906490778614859575032352012113962343824709037096961081724559421934239139303485323865706078305441638934444026210362632087944220603414477340018771479445342208630941278288937176214999393304776677299031580023008115469112702453011943367035320745726052672496628330746705608520183265561292222981156104305839022688211968544207362236884110633930354347063345085238703568480582054742649958461639022375835810765795332254933456540228876310669039846995281919481754608721727441698569695387825563707227667706378892818942321272262724251914929520663654304327375493714574156365855610831653552746997641346771921088702683811284113802771878919974594800494424216316160793089186451375366510929053228205974320508781371148904101975699470029461084932473470400614951786554533984468469788731703881854225037384292204530755987289963959290771046129035246164584516921848620324568039253826445876844049196294102058138453855634499695736765326765027634087146896085042027492242963721731254458501791753145061379926541615435312497810277163667343948692414670082966562463801836893240421833290535419901383842088494907691118777889922392752114322416345160760916422634477431281215200295651533922267016163697689333738785529466365646557493444437842074364938736891483917869116184476885970982457020381691110449493791428237604733062355941930940108273553890094857335063482884911767968141003729284901150889942968937439089133503313832778231661196526174789803900524848702062738403481476806536232576513193394547017892134443945802690425283653515425143041822946680457402556983557090076458159208189718838876463276222009105736194590320709101544055567566755546321247879902802965348321999574654305265232207656620712732654436458907877383264188294410385243879064688299819791887930583010216482172200098767447157012515165590719799224410179022503808921944497364013829451850912632088125831753624728127024092415182649131020951376671821192767940550860694738964672320164617604354055069913301701791520819333340125302270398738732715711937216247798653073446661809311700730150734562457954843266873389325026525059679348950819800637394814345706223473394756941230156524429752059872119651198334557578193590869422092903339691098406128619596777344369889007124791305388381645701112253506139738592849305011807576483776569996836385382273232041805275707953080366707395774455645355585799076614064851386659986484256148456468774262423674705632914177453610994403572273083303390955929607950155603772923572646629869027873711855492363357483195616701357418884896745289796051002252522763630332668031576461110184126477014482376317692471645212649220908663311095141767083884734275004569855568788919377227495055006206940612006545985330222662410094444674464024991957343038285888589261879611531057158234255253295135229854145951568648547561918104915817742194019503433871986551087794533369958094346450475004360067620102608838339258344820348951268372483214595716799517917365154702574676968010153378351525362334524432709482951671883000628848826217583236228620705203322517761114964058878582496701507212398790471711308580024453346439141706250378044771148762217091604068895471674181528529995712502607643968474551467054663761774109912722707477877153951319587257052175923036763431594143796386226397444375224843420868323890339549686327571088942669503962951449772394504634271579892698639414353385952445419644929399782610018457424830738373021385576110770951026001660425969371279596862759246527941923917669259096698829155918844417300367647063126779510017028056194002821005795547082201187026100633516712104233686134250885883320964626610671007570730428529474543752693035707310060041970502228814588476966205153807858940440670094195647894368397030501754817345355081544609687733611225251246808765799347518225648668262902370520371612389477882883824267389527658846736022542151932405958374712603355812287998209887654624400873243437643867719942163201139051257825153217006849699440645976875132145097541372660335968020683214077867879876319146898397666200748722775907701215049181307254556156640432533411893403082453965233854468824336027366803905520037951862479839150858763873843033286156954821943790833524242976478429652735232326148060784447075401810893698836501101371684778817914703696227533465118693617809820711952561322017893449127003075691306500830780347537437783793106829514225348742220874460763932367939691847556260836570026178520717149308455589499090134813503919272966043119775122773763379493114412208073702903111616097513503385382262447851135604899944388994192816852216362224397904732028529647678548310171998395063238547268052784716885049802753637330412177029415047921690004533064052234688368714600357008504929543209309854580067505372027953904670951964575084382921243108090269318159113418333769699656570536226656561654140499903756637910288611603180787163806037357954561546577380454376059710323500795758372422517873443255560303813832570949220733790037146733294428874305068104800207341531216737648451800577064047410381283370725611279683711145860638039775193988377386077933215089722264598865461432070987263882816158233956235852242180563607391215994174153418894595623073290135655197377617702824887004233008458413544651327071338007062541136792327331658734852997298149911816903282168891327829943536183751513698750803564795301980211265902985486143071747663944585951450703780497260753404265995117703594275543149247344045587112927755964390296304098250302609047246037359431035977189247115905113832364998508231127165704352502058413722104981303082468472448827481994525301841863757790024856983859306909965867919508661225184092929705969108816662555925793361567882405214184302707341721834063964511596340952398917110147372662021662991795293761743602534219535729723274973512872862629003417478627277131813932995746251389101056777738490989189524476243947530977553025306937345070023913402679589136530629878229963319222853887295327992013588681444882186008172161978067335089392853792442533452386215840527954002351477231674592915059324592460300044520512589703258964276285077648175629277994949339570776249485784918572995217545404022984065778577997344397805606509796804505116876702745128447871986226666936270599555291266567385869829676815038489559249138068052681602854403649006939383381719453324242949377065288919371066889787402300984124579409645229736706333868784130645015362472259281373333552051742901278634437973502354357607018348833469780136814958745931445123906159013126228282043660729382485446785934074802959243226996187353681732475000788296776975044998617801462448944296714137337584126406033548997098118309249799234559714019534542119341761369105836422017222881080977988510602994888511114340330103831865861942878939709960347800815023489772270208892389899283833610530663243831729659986899867956081334174349173014585980585755201879160430793957930174767834720526162276965298041742501098402938955542129181861859899828681260423259380587608384999241985485278880860523539865414663283496585290862599190557429187213331349493276824766516820863186855899240555103877464453883451431469181794560419963172263681962856355086151409458883177696176569040652967325029283138231408553450191068396444851291451120370857106043355264910403472725160103767230248523211306419166509887548360069790318845078347005649246018143039317573566120356585002816602043956989652166963546887506494267447650145402109688828957741133073922245011813660808599498980798727590244849938338301282242474863777328359926024187978637017527565674622655338064536578068918687403226169459818110903708786559631728951085553569155865721284470358661688173348945534632032029622018115609329115183200501593705465868461877962890063672466057345799072241179778466339135318616085275254578866542875569004360144579013573504296130826946943050730721438194020954095101758065422207690149893749602930397856174740113634294571603666336207729917752065701821962367152786700013071368780814541153630160521839101646156180874832887229934108088344314003233622186758845958876804609730520185144734727792758226899333492559765672229910952482523316617134218726956091562171998231744059772296013534396958340184216866850494798208909563238270589716100954313418516120149341385722198106619965892420507057912721542062116765759446430444790429642076432638898097744512873788619756401399634646280649053577054005264602016240053435678226967088624223123145006726696670687605454674168072426597007262461355870557147325306387242879479091465700876085692679799752885379154348003368651391063706424123153024887766516049338468498913196499884865920414227824785936002351328095953529401273694670760445775487289297397639742798917373374319352846692573706027265155899569111047509642587361636417667457829196305272734104263522655659474137801158035866308828171573666537775398538903719717719109221875344297283718842774471770590810335843581887886528425482365818089455546234548355129201966785070066557147319814197026413758060268800717870595889297667760723032863299532240563739361208221589839042749823967244307146037209961611747500174342662217452930219771007531362301684886729461644280125341479730850058161718448577443574376310873163798391554381137455329170147586913015172822167863274691271354324861888538843421212618803749622264449574813629212648692055884505114126994121720122057523758406241084989249474182803738131825188729516299192537913136208470925770075842848779998036736973838654290945044853576762557836583130763080064765820148651526101097294741402827061714870497318042865034884902921644616329980792604816140754553085109849731817947156816261688002377803986100116464322149903288773145707545948851736575683915954068590092896688640969944044170848620182666939720637095923696360936546029267864940204565429098473406101925929541854243870491370750571237578771735109248871971176586624715949890781486448185868486415402192481839377769609441116305392552227594500296524796432744661863258155267451613889284010211540746565575221929587944719594211762814648450332499237055737800550151418182961859811264592227107145914907648000450783907132498312717427070626415744031053182680017986488138329741213795389465526895450419812880815291115308360999402590530589196012693538912498488751919482612246017572522696189198407588453957536472109005097112599369669212600219876922624303546218510475866827715559032836701016818858220215609099641178856175499868291168063954023118535709614483290100057906510975988361219411938341235921656677101676483267320654685412972055705787920533198942411713705918465778391699122923223629074711404863789710579304887351991280451255709591754210118546464177873737243992103538786782746089305830711292685065160009858293000737961360314262358741355593842726092275891799026969149230399043617628742302926129454740115065283693564280668692396339564499014865115020469601457136138731342691797495993684040085277341530174359881602821616843309330595215644870716020718307988813851816826291282833341649957478519104422202132328033601196044719953732655776256430232933412008489718926450774293373807314309885245886643580882014830769655008981458075834649105929555868875236701361623882458918189817295361193687841851167767930559561284338186839112530064195234578650036283698121814428435983417878390149690049447057866751506971122157868166923649542614662398270993798973750030104256318741347646866332049846084933518752150768537269823911151987260698872433221269047433770505792780619192955478233063075930872544988792823636709629469878004315673028824386436025654273664961477281728859506871791218953187718041560872020639476464163603705522429657094265728802263733731194118169440844121179663841843228803519958975762164729119957130318332010759560743476481274686430861767700613668527526423588033100572431332764041620174415291570889354622549893345096250371891631141632841104179729337927074183415169269319313474944876212205574099907952611256656822279537137357685026494214533309549423590662583079232583362930375026294592662982048916629445160284774929402415013346442936237069487751068097876939712212737340163771893119753693164922499128758917018869753604994393161845921966696511547083599974676049385483694581846095904719040752370970600521083176169797663591131221766878449350522296015961458407979152284731773636678792679149719281385960649738843642768659829116837783017569816071123768167190977583221472446377014594262993786890446516872666041408112722753525471975314104920734287577146252288297530993416201957057315082940073596438736711976469319191115283130961442767541134558708622598570096673600342106569269478533898784575920828958022242770041970605252110718566378606486504861846783834948119102190979628592439893584151433888928355004181105053170157720833550886147534138207324884605467140918902162596680389412595557151479948096645665331016386047162303318648614601025592875659844587265199374927701924231972108791196613413014581133603438495867860906495292168824309248068550547327803068351864417384885020205731116935789847489932702627907919869155214071223852621613299007346922145031166966344552046819805891714708387654902823547639717619270340840920915050035019752188964759396905002999800266028115390763557085479338540224402239929681377466214426222953570366203637141481107068111280023010736411732287340105093268160861283948084230507070090261694121205659194491361740414592926586334264292645657346432624893429659445004001442730520441852782773615092958709815311567876901849023633468783841136953740190598385608664418299748998345769615473600999314260767077531163854120608902852472301295342424972010350364139746848583334299256013903536531653402239560618765028854149304734336971278864762726599732495362968426675414632707899882214818705400565369302105049006043136257587750670491990834887866996953185124516350330925753479696693697615370497746165320275869677214692369968840458751742920854876751526398201215769851308508205521081002534215229936294202063120313741455535874245475119964638386934938127904202954789298404961502244672066430898128231996021699943603483412871114221378112370358208466491618185559825229203572490252590154548134137501892049375757491830747564371067442153986280390712783430777915667140831722015649971927321793494432545689427025458754147491873606677287681474326431622183684894216280212959745326332466252442592314428048635419970617654173918796372415282003145616741003903283951692972045436103791677452721753610944017112713969240126126918770991715808667164871650269377069577585879063818724386376448659814363337169726897848184626376482268778981242284058514961329918837419888984928122084016800915389635553075468082918878886628055823706772065361722266980597976552940637679985346920175148220131466047624759392848858419371569574300782371616536760685810737879530317518028567620743209010794588231205908447155742032153416984253076996103962382314509769164363053032550683133044145574332744492991738911873358226078006563961274279767153920657745619655626503222311966189583112340922007341806645437576434138736219794267158498960234712974454373846284321747133969244603884262041212962163628116881082587211001867164100269172669928843306094810131950923791201815318269352236920713642922856970126585437572761080209383352125404008460191323214598772734227715323827971236316404667804663660043715413833593593101584324326398597943730181410300147866977037518149691592887202563876338382917729573382307926334759114457759079959524823150170201556844423976047588977263458055887727645930612499856096651931762325599803319906208937532100481865640276879547724926244686561352269289360314179958692636286158144923553420507577318404815495551415036824987959186800660859899740389190155146494603639055659509803637229319365828736094462000634498123955402558912654987834877695120194275934023154258367160607855445606359037569061663057066211893111285483410501027835451849918608152734431050568233222175378846116211175225398109096253019418451847671409759026588289092538907058117176638876014764541060394683805151954441241156210315424593885113151612682418515305457989911654621668525451596585127984510981690044343219402571375005386146849976129479153125129951174683784418317052441283776360163249015212765418501335886666973265008675237192733136527552588213492981913294989365157441607595037665456828650651438344002379354837389564288609936940388461452917493033528979921696177987680366200792742562103016909256617997448660144677387299507737758180361462331508259634801173237351129309579435804583780740765455912693466421440412469088860352133608726477397640702685141329570328845893224531059940228012030986749225150836941301341202767968449019028829439051231409081822842865113246343591289001598792083353214699977471055105045636629138152868578911895389320597388264083895975889716731622792618472674788773451363625511771245965051578712902926639964326450573983369802085420603667131721711574181903934797174285183220596199832364986891511291872585372877029041982185124692998023464435871678197827544168547927587052054599002023469275662147862552617853591029979432460224022316791712512029768631553087163581377340458077303799427846900659850428433992950280035650508009067342659855747245573662928686080249861716176712873671589301059439156244035035947217838321929420586517437926829328388061972240757058846503650831399801844309403672780483437469225226323534990785601378789731466045309114776045933364041711762209111057691761016210309207320522545584789862569461649622114149573678523659130818137803051961455676932820068248040945172831654862153961733764685608068395858548541139377600748708223684037879636813586363723285980590424606637176945005750801024410325988537375705669216547334438070749831970521407299638630447654195994949631976421375840426704481019992097563401793577865454305004256274402029837783077001291832135447329426891118323262827177172881446509242547715707505334910619980998004733983809862324333072770642671833345817814529046232226626062286652900991769623997510489546252337797373147402930338525312103347917970072379817637290283617765545451207862940137318606997368734728870306436715924367831806510049827945216374587506817421820048133188656723049829875257468049692862684378503053253889331910936875992704864608203908548221608709194332220711394778835921622771265691819726085597857034749060962173602843290674924900712771658136855756232182203713513835723263991735203295501379410112359170826252496766592833693545288733908963334842940004582177461834624238679755118450000494991772518808337524590730560107354808923224922199053523695848734641415493693155069963213888777708823275267702733992321220467574295060134864866699279539507200265910099124147780946152064851235558575278906574483576946111770717740400605337448520233796779374259261398632746762850407161647035118632954655457948488230002246484924497748618026819787777562200850392755809779069473117916796729100140791255067580107698049103988652241146590359392314175567533128516636349174525648152589713533708552907334832300790837441880840839700314074931843535856016140724963366242321022938451496145191719908005517088855849020865185192947980491876118713092543842358302906318664379409578864358556928131065549224360597186204873186794772647984293891222856277867243737345038996881657459949111593370683161955009201006550806044352326497208010571619864882975432672173886064664005840584963302825691502337308741100873854755910957787206825408801963079839164843542272601791579624694638898597859315543135513159239861765368167634588513074378152937907585706319964174013756656438575957150585167410280448010556775923098803385332760317823968464146773109181287301009336091917182692265952033785047363931776816667934149649161253517744932033240159347213759611707101596986542012115331705862435224948078499079544739581094470089891165469621187042626307676236272105210077711419471104599812785165038898951144043592404874193546070614927291101962954233294783813024933003630231761839179442009332633992067195278236834169749490239684917880250269635460126918412563301633260254454745032311159160015072649523341078479763969373114733039000697995086385145887099047609789102102831796953111543840544434501119597039983267065601222294387439776573124360881713810249945995184920033834324924612789097693311018496361216673097109463708606053330384565950359210643968669840117270156070545259133646986426887647124488680856173493063880105366784332521730871544433886804076181893287559974295261244834657676562008007196487760138078662427187453030578233306371377056397231426861752002946648965676042208441766801682886808323572813564344908393300823165161229795392732516522253227113415082112891701138589131982556905563341383320517877072257025706493877518225750059672456391437741099123342385062292647319160140450328744428096426892637356375927744844619278095037102905421753362218055390484188180542890532340103531113296120068322996105407038622287488978579601871567400514144830311071558329911406541522488484353801211162143445581710849485946562417913856923904191965455827119439946921367951837620655452011007242882275448911432470444067258744498294952358731192429772889696705340894742315274122151503208436850367347044158184534483284467229147389458329571406833441497667413835112536695617416103221816996694021630716176691261223221661397407444911615117442263223794969143661223020722203170856289935642719318162990568011371849996984241409425107572744353725652534513915657427387834649756702778053391471872811343449075822993428578718087395005759860834973377467238094018800380718035266293284020308486436226175002495230944234440050076609905962989411439493375572365694443952954118583674456704541424838920097840606911201897151908697464640858318711475814211616249687662543626289924308088816721357298360853731825614300632965540377451458806212814571062169445831627046260380079720525720363218403386140341988502039050721859136551496151932172246955104463539492047223015223828492483182668981952302307967427476613528499491225911334551473024832789801709721611891363527067644043867462489692084367421129731935212880419215222998217724976643445772158284637853705503162037930563502935336653004487646530305615223486099456808849426928507292588493004234743008858759060166336034371797849195826711159551922090733888306656519158794621197407606506039052918058993779487130485964147900025334056080827157726678897801483462191942208114870014926759456930638582285524226461522742732265257051462306221712602131715536718152129940630890425502724931974466156007880038562517755810206259900052321856403522409538322709041609227024067406329262448244547126827275448747374975240336402061610407595354121631044243538392824451277210302525318481874830959890929036801129213837921292499778417316150608705464874256495758477595022893756824472862095036529493639156087463270280322435930901427973324345247744740540431615661831899162551468026682123818120142139658853923768522485559864883895304669168104889944217161581168983638489291072138015590464833567255909973085760352885729710876284342001283945490977285412854134462587835852986735400432585302662799713636850139002525661434291102424645674379456527094575149713729404516502307979563545155698704248307666145371541082599758405156461626867101384456354860356414948307539039374695749709617241306708363236062282597136594997270857844209031711853375635040687890905264502817793133787510211868264837748343388875537381960142938437782926345805135293783818553251976097643362962290433010848929633391342468176667682957363682924845876273214087448471127243196092629426573422537263961110694310657284675257501562204884489836842590319705094996477890684618293594870596080894260514261980672660686379283339440961768117215005522256221763153193244325987749206757658905178920457189346835738192012357120408114489878700686147438878206798414995424456365188937411064113402007375198559658078482168630356335371163818238807267677666337214684367416724512759888555157841228485201346864779516454031443768480094291374408273371834712857650656809190800876335482028303642975871354324010833276360683932344741948728465150435644750921624089854375585760438066679788882434701040892368285750786001336337044659482659867436316500999673147286556060089706047546215569274189894106602923429397450860836148338777127357151551321815585892039118734854902411718165543984198908014434983972913297390955103961362542979432598201254295697057168374069183316489242895599540777860985639571425253523716532084413014875625778586673066040052871793905822877384106016901555814670910125986539817898479036750351552079415893510581664129722614268364320966554418834342386745480956240877880383764258805010754946749438182894478165403561573177744363100532716406194319972849490181759565230909751695995888618269631875430707321881737630516879826528965942783584051984995741002263593882727800034900437238933118537559505743897518255347582961309483989637258366454835741655374554221660931770306408053451107401743357403930821654527732524865943685210712296317853041744913588805750353013328519445298802715943801070945403287096988527002748111458308037201076487236505048864188180016347538305869033376650343654083350312892994991330806961283492576299127321165192275004574605452408871817301904704268100848003970598210990017058719415912181745389118248552408568123334381972684760055330294808772613757415902532637134846312605969123483822937634548466382316640528151818171178700250804279759811053258225719247298664241436998171407425118666459903229593374233090484194439236538348968897470967763025609872316885950511347263395737596316718478216685661891048969537754809690652655265381062338941373363763495708306040555092604283518651561131765699491620506528212270940786252860372868720470978375975052077240889918217625377841619336831072033874212479225521996769357140543927600228947532492187752484920505302397072935825942445084056955499861470911098473073007409008837367120452182685603219178538373030637798838062937124532376845073652844101158868665610104318433151915322738066963586152665934005444012685886181383413794295523974910769820324672989532772616205409338670274460441605089185194963379697954497954916995812221414633281623540841328308962165217879224621255530479297287687119247088397197528069642296488691464354386003603080085387253158645092682781776169543080980542984882982908234968103806435935025071978449734259608910207473957186421953120138181165416624183313479514276291955479025950849211168477488173892265941746707700588496886405643208531019022541451884009726864638641023846023913413625165770353494733263750509377094089406836881952796722833218867667558182112829890836520404078293162334556929799307677007795079537010014618506235406757575776051108859895939488611862888634309949137449562188915822238328351965353840944216124572024699126265758970282943704150796875728404432010807585278616462983580748377825120045006863728716601366165125028420766589797175038682361552710535799672631185055252889960754019226713712584346205801180918322814761207795788743831184406315679437097797221709494209942352902765680004807379673668600638414432602493994491977615730612549514290294206315028166430539622291248896861247555747111144360907185738453894646154544256172318448616837618600102557456546007972676012338921681057160774639712626670848352184262162230690004118956122473151600168834554220537870620173964832092896334530734321596271633712583431425165967552501449487281956396190211504094467945028425587634873802776602442444830721825581961005838031560081476221904368666735264309441622139622223094712118327364050315698265612148304012475927771604208001952653372997555252437460997544691878977773619681418846495409220668768095135450615639759960055070261311559797763458044121445532373904572363682063090717847189304791745898597945368071297997162685065164625822482968412845272615071715934368952263646616622428633568457943154901611046070704676912531774945755700287162685946414071878424855371382645040448410120652220778824083020499203766279653233827413597599323761470422583762710390574664983589278061087568520138854654185182618892078617457388873245765399528939318450400582128650909508010469406365802471976038061483193547946403247408359531011556657412504650975847390506947039644160947469916995376497547216747381395687397063216911779888558475182113737269211025887939259056810116149547456251659507551241751759091069035968935528428455480788739475442797762041843425989210127244453424420517735357265247352531449302210018603000410232151076594774899471130437797815033263854480377357458985305353607486955246474126527791627159001857463513049838569712784886033411138082445099809084410286190260791507243509836468506390381724583945212000074377893100944264575597248834379172420315477310131137466362066434060502413479978120463407415684603938677545069701076077677543078492079518863240204702394798361918063003972870804648717695668089553919467510913639040755435361564034265307370691865076263416460694406919195482624616905654569301676635295644975021061530094691629751522902346221015392956878357006599533766531521741853124599486627496527092496072957898123346641473129578506221146358441766816091560880291824084329619287766884213578791321533899266245151214762381007795797244298113133402238286718411339360214964447609697539307625783731453730270877096008340645824115015428003699807373920177235925289335956890617525990178682763710978187755603290735940294808730426950714809508815924141225754600605411051452558333944180878181852956743205531981958304027946309576025385008994341172698509622578554755940387447826129451007158052301894111994556638667254880112828721046889836267030352036239185494762516220472603884500915555094935003940880957536595685097943866642568209681685547164294859990942302832744266560407979834863422720283645040493144134140330194376189267677044214257851162879237906080604588634079511495655791873215514696172288892787255255019400852553402885873397141922408539742784173217161518619242286120960965652105728964950366444403733488551417427916644923461964426949193350513434785614770769805677280650952953679253728239345649099503534811101762572434616297672900578121994287274488840695148273544543486831686586739478338436949983558101896550334714635043133207210021093555820020708131913290863295373952433555031555234366620644902103879129340311331640750732814822073689716592554908415214143774083345671099432729054392025571834240142398013144553873874793585216536933175709373940411950527696969435977215272402866181108189793780616793797833556924078506307690059218474885096356828515185350067567527978379391611294018451718102312456661662917646199401259763149528324133565577735807536017295417830477648546475988548414938320812915433642183601186396495898045334270861159091966833556414772449833178648325861909962931397419204865322583731537573490554366428445806089410066815373358827887016331163590027467912589005719077409681557859571243964093806487631416929898361118665563854054414062402220619721301579950275809877620668897842924407050313425433737365424830238126204305583885607804323272699553268366459813724823821867882095177533031179943595552836716411446094621721921866728466615363702102898847715823109157394666945693106623710125599492400172264003116325653418933097751001130477443808789352678621193175793562135212968312729760528867363672494462711355947740158146720786901258516935225026389104594984606734972833686820334796640467437637327528123333833013424611276515578674857072115518906589314456001626530034594342179737415959186908335811532049557743864872478953296066454792830278712076107626330771305869432371400725421671418559880359401881605117162448514866675579201194806873483934565610602779834507358718002405925833834097829696575384079298594312683440688978374415062923784412298306956215836018802687340641921064209201245939571204706671019936683819028347668149136395576452701707426429381694739216682309702316922439737273541443036234721635495281538275518016097264777499888163181132949181854688669805079105399048422340684222053037542610383801673589504541409086638361662824527767008865547881666379117855873401082912736396121221278764008275669834115690995242303556753807422460289321389731782660602949257921602134979147692668196357135088648494586043168082224508034276881017205521559878667652865369843206965286486918751905133168811391351668379495213315509437963856986164783712846303115704077712109070462340343717711853429345700407492212477665020842691234264976811294733145727622828130862843392010304793161124867726434261745018763946565678887812922926191550383422959589388406505503609565361473241205938875768760663238687037674116948929550653337974134454223964090546503006019065750415937529117028393870778546681902795728316429366940390526697848287435693043822285516162550770443358075212300013112360689111659299679999410663812843002085012928506006724263400890885273639423612430088906613394137142177741804097184179608917492987849102833953833422212964998681073434931719887203741492649471127407627674919999732010411562257607414115790373344498062969439476757144780137703983733822758047215837417417312087971760677676955312312082615120521512972425462084602368647169696912124117576537101963803096650574785890526100859017273131824959308990607443103113948845861801118672281097447048250398573067742315291829240459402228843352755018565566146761962690872845176798336024727779152261799452714852055460542453604688695359323619442530730649617481961683020542616975880945283344186100356588225674102829776747566752807987805596291665633535309402207167449457009610902538771579346097638416417152135409376031114966533144407980788111756935263829361267324583593077302160569326581366479423947836259344092046593526423925788419597891118189624135069989244615163467338802644875322683749386521180076817647457912424452331300396779938141205855278743163502869497274582281083653914857346964490034719222297240439581591565870619183833907780533413141080164841719680052130354488324176129524415481497929574226314414277988180037197092364179035979528878967525987714344748805916691031338926444250525936137098706490072173876575090833881026449219461865860611251652032857704554978670545271966440755818152538902027204429418214568996873136869649230755666358420855435645302722360491260240104956711365566536233951260069775759962810597033668794895470076324145212068711072962098994971103092468355029208238380304761703011231734216567413175258416052966503180268322275232519853471502785289461011180733480241823001798015646789955751106820156607063266615386140139175306321469407165664410861557453685690975326098645731097778408708092600401134266401989150167597578154157715229559885358026445744831083755992888772396868067005827050114285532357604440740155363130098575078254626398554734509634925670626348680862459637604709710008248761466347182833952328268855840755700050880041820655328616558970292316302681461659138357271581538115390419415075170947701565375278087293804249870563697012361349647380192121663517198843637532932194382030895656038328192307210454096285271670220327579787347560918095457880265999003191747418366959681335700805651448130236344416191463179911549640257268123895519499358508296405483927208065729634226493832558253821143547668725048141143935883544369995231947636638762462019079853666186358453852336818647252053162264605232785566371063765436349753960270555890978342085917790173986540852703597504016380914760531423742738077784443659539447246905340287930313094593737791635833608562931833430670566274073437135885619492248531985003096151434592160010854005219277106972493223534592919326347559230433318183670449028648973344329954241641354121541344129481291172335005375825177534841453059287179249212409355767871504264159789078923567452176343208647038311748580033467425802578498432169643304820066175876133079518277594550129492965579006308671418633859970473328888899730660125491881721670081836743467461946041109501335903403760714055140889495644401430044962426015035658107551153057138733102950032528847335191843934970115546859730604968711363395874906488024591742751559797205620336006086492934588769852464231121740204045855458974659044108889326736207848331990919685245374036089223307217082466340766960189311934573919699370457927227836671603107067317049726689308439946803771190766507898911981911836825977155017160563050987188582842304535620798724903374625310298104037747504679239776910047806891215594962606288573839518471285205592476545011242701903622671553238294281390120795810674719271233004892318744861267674709696922025169547128265453954225693970765692563587805838452078356609999245819206863232157982233801719048389472154179748857123593324078209356171564206497632148440092233931169313199435748616932314846414104750221994715650599407374045291573250442843702763146203973064091669941150878502054588495055733983971997782322221432509494991001188376147303113946848773138765042727744436585549585861468866590216674999227224866410873817141144339412415299069761632165469085520220607535358045210201325200917412442479366949890945834340631224940627856919219938026531228686680053079582786120349329390846120611733624945029914412615473159990407095014674914066335371989993458108140748644478196834770562535674115074866561007396291169123712647875630645859571725887372010413139943777551054884041161549407923539948632692385490531021198355641609582217493276010130581400443039001305250019152187179573395523002819502734609602788866670471058105354273461365079898174657590769344733722553291999489702710862406823527755046556208197257225861820660029387748632930649913068586232668723696656390753742693935437011713897508427367203381407199863986312564457236465730468211697961952864067881831483417681311072722116252842419315593543782578586503276655326875065641484485118361758421913678982911697684143000537012401766439345450994471123887330917953388224249917415386898765216761412638464201333840691732796219235554904441502334221224293079230195106723280024724242429489158779159840508501573484467594949143974499854750386396135836170074641960537123088192204404470643392352572221724905759758360052687247673591065396301504217049172977518678900190251106012154202133726287171002507742358344911640388334506396636681097048584112245225140852118337918029493246491225544949938488565301591309439829531814347033713432601842708063587115358208362461221098815162865468745713460082994498534918859928133178219555753791537809853563090844665745638031634501089203499601800129600554071875858554841811335095700261102493352471578825479394473954949487472603277763618944193947241381323892579346745525430894471760549821975262533119776702854754934235088925271594188535048933110675829036207730081291251204491629230577330877111397762477048719371882780972290902163443563519543665001263509300607527083316358755346107991110466695696836831982167289928264285047835497611624706769910899938194322240130916134225636464045018474923964723798330435626400714236842665127094694038254083651246854395888822287605937063511900887173086294849069344512569633994620583970609997424400255436934534920213572725048531857213851211503621684791661346345109545545994494531608920159598307309869796203306760853209096154099476326962629130536410336887889623880118631633503392431143268195323015291771932281427475541191648195646298864448605307303539146499490346252193750865196107310707381168623142785724198573693579632858750331186838019954136679567219405879201070676280304836923094758969438184822380324272459117051237389575985869309824272731040868189613943311493197741427488889470412215887293396994134230578542927309907317090314516129979356727941408193077770861632329090719628005113185444757695361153815406355522645429128230612443307574435552885086169939025609931526152548896287804674118435537897628522977574268132042855288677849083063066707718505692404989466948306217511812736946543396019889204625432711154952689726279589732308978903487558711382176580454292555962870920762506982365005328114200412972539574667771316471880321334851658004844074197001493140935270789663821896343151909426954484369710131284880671303818056446576000961625477833422969019493111064433898993141869058768147698637064819344563184383857624037327244795903194941922982035130287135263731663652753680247943821625421028760392559717274014802137499355406891638235527314108840160255922757975729976204247304967360688781245147699103650870883693426923390487520229482113137830051918284650563654180694634103887017764907633082797040917290176983439558734625831099706043051031661337354895256829903883888920131364279763017935994891408711706521725332474936235971972535708782798754176504597868853072402136795889004371407391058819027115232314266480599905099912515176184211060541836534687849982385668972760843934055214568866832363229899924156220309233355551323603001315761736970152772726366132072458302894287634293123845456653685953440939075832108090682292610044052130200267289513177199972826500777792867749292777874577938167461324029381816104612078353833647475402215112360966488699767181787635583192111548977999436701954923569920554919035397566643120038831904413544970384769995748619369083744810467633537775373305850881647503603338163467272949708246913612429969519449179609054324291724013653502784468027886154340939766041930248756623739654198940100373890359627592779310573152533552503685843424696919496636774165007632717441290497108289966285019468150455103780499313521587453174512922684270254684976663506175976068064226297290747659368887412370588476166171890249814817642041395955050518835324977516376996126730277346634581875320079847474733989835939805045533252436323579652977108205044118162732963313708032388922351825688567782327472722345332557755607836349379395346059862039623061224301764296467859939393622833855793256269297276938532167349173159509171038842271408082831213320596199003533502232198197181948186861164462627124535859003325851023353866611949241446835143702209001528994604137996815948728634711639617238896080242742956688828978138197250145059366095315819499345321817277115317779969042998966297519750484268895063299144160798842399731084529392248767605862738129012948248553676004440584866936880289877953558207510300605910578893012571201338330940222629578654843947481988045149637757780644553467904899213853816638812892258308700163807777189452255473645423079532284094164865315093102816511211553642890431813242468167950934907578485955766555982089102483532917117555336315758019628050671119581652915218839260225670243757732738092074897559114104035896597664593868658135825550904624326240897302340553636650494807702594927836642528156694428616825357194658622343418645011828074691388551685031083700753354432467788420843729144064858987779115118095248748859641735150076673988183155114327740899168615093861919797244487440245823595835840304687002098353752340998208391626393427209333369652731752518355407002944418572373940405054192092203322323053780520437843795192710266817978769797932483207198513830373220893796608405211145882242499405118318627501009092672898798707657038560235722726595030502608597810802418214520388461257209753617907679941177075532574058895430183178575094297333607293014842168163102394091259333731091228454858329695945620049474900354154775205366939275286196890216258535471308890932754209165315049591139897816356737978559063806302680679183225853129338584343921736058726574206876009765651596831444852896567162044519608739711105478196957978696257387968125436122446906365876491895230637452504189648206479744845427315983539260145604833385965153440016709211101875720398723042370830215490547350555602499372610934192486782979463569812092374738680706668785660092419019313220815414994988041767365567057917332815272631485665166099355793187248715888821798436803588840109680002507147020496284663569503293823670753132035234149085892155885910821869165403253792719253447483274667447016397870388899038128569913345830242726512872072876342057627673272433792117232889164180442747860537322987842478253676800342994554184209031925373222030520695789208793463235288934852503893556889892679429153984315695585709393794801780525570571431807640958820269620483891027877558575421701803558639910270620832318220333211751594508045874861723173554014124191820137254248431397545092672040118813686719139084787763685310925470161473123500691227687260025572973970177727868659447839466585304938464097394060919982865718532003664691149105431778088669071978719128276077629989138102319872685331566918536569604226516954340003185599437666576021723716380922572595383578911916586282765599259211802818081214954080254732946692796069378986282194810866095672432970535733587244607129685909039899331108101968356217015208351115699050570495628517750142752054099654409034028762720551501807897672740167394331201419533126595531513084739649848631608785202453603663956183502027073049072854051575984915019496765360875207952018263130435461341455321969342846981741893830999467261330788404771404526756728530021158567691613801148991538168775395530968216993756934169385064588885320070983159079799577201888430734352711994994341627438551722117703820018929432365610465756109209173017859472303238199472513375229098719139911161929393020179052077340909055309306256846389186757353708959358992003313906168079689690348086141831326861226107504439706889919789620199485516188708167126063111851468632371749644768321168816895937635864020931802172762822714579051597497981633928288268724312132035936055060600544230318310636831485718502655243762153881317565093344338012736609355938947962405203356843022841015033595765905616920492329237383835770027479025501529837366619702409005214002264479804425977743207022930789854249455729805889693631207882468744907531602208571730479317932078399177632495199985161033393853710216458663359478253561445314507588803650785153649526162050812202365035309442916197437720659987729017244221390336274146961357322439380234845244946516271730796930708877708966362017422970714303981057941308498318113331102653687874584644765914621139059289987446927090031783091587694231294704519559495191029270453279635265252606060160277952411639445238643777630375111165327859376976827984019941489120042386465793458800546937028335444898229831899965065057878580571510696849943902288769679614632222427005609477479794225014220501218040319499895225763585746536894247189027513773177446923906719497015012810241718396473844502327129150470027179550233404806952338091579480548869297105636463992203325322240460668276462004039717272472936091754183785489864076970303060337788624799775276966785176239348720515659508743346062099924042591452267665467748334948257387714810082966900562152710778808959102208133148166638538729279472848850024871610236745563740129093728817260944275918673720236675392853230290540829908629877826966069230024870636978498557449043067857221440810208845863511707960568205831378598813642543843045516445587284835624418136223304461560353857815030288700739276164452538501012420967986951496327360600433020564400446235236169149860760443595379985663783426557264227698636365369001655928832003931489947225166553157733150733400183855337653218740239481733493638685858224153372204496510511348737986233758836135549861106680791793681254968520158202170011428587763265082826527246821561606573967693973672436794795159199157005824353004269851205896936785645768922713627965374250138374192202732295824869002029926325699960088182251737329455026054155101886128718019126113856130855887281174744308348425929425316820953794306291096426741709173303175593647931624818138909689585952135471970709653855205368907282755053118533916718078062441621735375696836003362798121653098723661477462253368126734607392448518816183913647056143719820943658008941347276756037866771930084421106028505530126326776846292382917546145323119181468196239635168879070679766332412965883129134674765314209795417282591179313097188238115018443279719082704882442150533596815066503962108639363564048757858313024288929326790039253543197658557756762413857208926338503795209260218665820772078276482852437462879874537115095519798249272227698175853275283231738535605932132460707578384085864567982861847212071886671379534331561529427599056707078603032183224468662862511199049480102267051020842443472842864001686983733069467235849499917861320623346020765139751438582089504385285799291553309525856905579034710216139270967521466873103896508580860938320677602312848289359185422383069440379777224937616442351897806308646535656320411306787762596824287614138334529404148807016431669306063320545496187339906897241714934634038251814257931084770801642692931082015499946188612684764478300886265346292150693084906950415017119392475897518382649667041965819104925664857654117161939854305703668259928351500885646138189256923851810762214347678673090804442585050127886310162526181747385573095912714220123855677527111877345430497591531254790818280926255179053249462091830979406472484739818102103529618571965156614356083233638253792674217028248571553420567074598759522289024995005689908560538951355944347683893848162745819256110265960797510613553175811800517752794742163155966308627827828768634565322030449137893257521785262891412444462255692288096787413066933549060909342828058628269694503426571655776418857296093022389467947389522177581822134531085831400128203623388915344422760841645266605327503249681302336843481986235986921685804781793864005226612213112539511308444776401343035973571878721071207238910762132717263719718152930086668477856044569300342596418911835972995019147955111828327344077810595743166984669532366170687694625630032516233121506208689833078066955250105755021246717313458692840172719351319429289160263906645341210373618600834329344121145446301102257936256493621872926346238736756414774015028423969830685294910000955212317767598211555481091695683205126996691005230697968040769949843695187083324804547094770247913826545168406023456848722252350946571288621960377630809683736953226810945268318453259047672931860966230576823029931111677008919893456635801319474023474033707514129827288288514289440016534161441364563998420349769749375132009583958408472319104668893735257020575383935113041591188798635165260549031229135913298509600392152498879234075055338250316666176925731502182694238122086335634337951211596949854854953739133133520793692346558664259317049124130310657397468206112442397176433148547423101994866391298634453329570091902853193521902583620018654551303409993090638789754826996970102172868896659146036928301703599255024489647664770751538914388922654474658132767784004541275559962899582007510163554953695833216278705792078207075687319188052959212677939862836252135451186485145587920904205856355598701136081824604877884679862996251336298775381694067460548143269660685581561808093323916629555465165016230973744452196491510573771264442934944799417021769547931553402100667742354632943450500484865887149900279583597757564032557456950076027474124523477005124197608900362911701668303953251272664901257596536550924755397411531686788137887073241983780667445113981650064886361863049761503752410893605071533918549559382047191195101455120053035053578272938655935496716986474384861414135056748548176266063428487281871310881438371700807562888346586362895834436436913862363119581621929036245539513471367742259180208019353842163078344573227470360109876909634958695627646622293764273033757855785878941119508025444982664161026783275474261311649583948546591551224471675760293257274263794949874042503781568939313926760086742841734290076977724294006017190026881067963460157084337270258612931022247646247586264329127818918640146668785189498144075375974431190863227739716971839596303345399198234809798832958060930415286594980496172940572690290853540130309255256086222308069607651859421633347201934231328938083361041974712738643466308452300256734610015859732200201910699886311066457904615440714195754597833843389600602223948173468462209697809498009572053071502324757371163570575403832798530429059688044423610481729607260740901761139255412601125120520612249423842192597426408195658327549564566908632610137372986613996315769547973852206808398592289729970628075534857215166184981620691865306738816746209130419972110793524134497956644922788714857004571218883629233186220511623133727462563014804779164809262360581487085226712556414958039842368583150339079835853849589873102069105085045472047593869602388777646678576224942169286592317726884888550595997943641513319100517306477256020028147555460556015502069595414899757676067233550000458868545958512762359793471413392072287318821704842701679899060381809575454094184604806251497074039599179093009801187703743357049836169804668582012621118144775753687563697660969608559658874562438074611339474520823775987592065947951386363763700348847397136512042477677633779044914758570467409102086807692805794289888336930298741133280335312832417271493608370333703292476974116331322075338874795837902140230229974752777087251204426960884473818077665897501129703111637879883874957473748628044921570804317159458986059385120593995919830204424889141476702624179313973135125361617210660330634918413511180721876629412911942816220850878803411073648443228559777883953425564123465881463798955092257740014648156517666679624944369079026865591321383905015623145449947145548237473440206661022159783809891470465785051950358058774625343243695813642299341144312954548814434393647309437097649118225720590809821521093511824888541423795900177734377352730816739639868505732893489180060287667248680634601301484761912107986778684937634534461223199897687021831167483987722751474702396566278121007412082726228961834660190293356896052484806103213188310351950220243594029627092139383143253691330379033079310346441955770499805909362090370571332421629552093780188202968251130276197234207537919292723941773759696006264136629414055643865264996988592180285033383429299263748648864542289652810897153928937651785444538321710065405053860877426222494689249893934330547601366680810118751217816113622508429423706010625307688427255156191066691483684967528530967997565319798839558750371895995038687303085023151727982647547593818047478646400742966518672787254186076795533363096439937207574448614457059314853508057489417872604956635216845097739508862456373397606335945463828737934118081688234839884048958969484629553357966125230641138178772566710501981036718864988795590346268939013623879791241870984095049276733956558763488572005605693152680380751647797269195443846629925791218625163337102775773521605867032798596487055294847946981301980775597358515639509158342315230670859310365903901323329253430432585459130278013589441810475507998729112708459039911370316121442691517550105552712048057365072496230149533383096345025398391271545541898733389120553430856023577638158522727727096846579188334647763577937022813254084915798371890072563519628428332096272673042946461113596599843053388864797999473397689535207162658192021503050535188010684829525444504460223299245268679255889290965874149485130405877774914284472926347073277158217646161138899449824846267828573219230403535098114915423730347034892499659106308314183012233029983137871263809889602084315082511391977775119896169145363925027195124912672619848814670507964338131461398628025363148576815540823334718841756473463685538779191738105570086587410824456459186812792037390317916036795631563145718251900649740666805468479145025619957850770589856162018066675177502097809561628668976923983654056444453361243739208748545906382244576148936004602956887838436702700075868014021840430644764053353194386600627684198804302422115059993749054948174897105158457160517934888424197884067674986742815288829177918619400828261052567823379978827146159171702526499066834035303321542619959409516718142459047323822983642318795822613092907086055930908342373936390272044145664779702410675189908913860423517885532151953759740954994276291306818173705268667658602747805695061767511584080074118594562570971081079623466107941464944495104707422868858467202124680094889646282673397252527880191728525776466491215135582161163851424342842432708028010720852189535411866714463201895964071688965491625378628618502246784957992472020198434462932204716190889677088774229294866994662812318311913148856990246391281617304744257389174515904256682616379202476364086946347817683969285723775978826362435723428706750155577314891531067973671834616922841433945424834298795054137388788941074893261296136529899419567183205795392421846714717188796330614057124161960129215722533005220307925299230582272827611470431482543526690014115162238494212467757558874079976690114740711195641363908128292806597993637702304413801367426707244160935846931043635344627469311904095283295723271482880840238184704167403717122228373499322596319569048774385177418315148307914450625409475486954214068884765361974343406104551970818982347832727358602444356760936812524068520869846329449338162193782740302125758842371130699607617338401429774328699721199926834682644035418224129456020175307967901397306816940914283535141617261210971832783299475926492945977119717643454480880574540062491573464238376621775986064701995719283455518628313414423079727745277122560166865311063740690299035051398560098741212694119070624334836261926787088105421418836926073349819742589351805063057944562663326862821060941537139224934545921992841952008439639686907838332650632252563160191445867419880507976506357828713619531121556156971408250268984258439302273407068155172453203667235998500546397174866959947770616411931368922775196145699809015155357986619922098581203871739048357416206286530794009202991384361367598696439000270355821579255117024751975575970996717915277874959780963266264077848667631229428704604782005169321762844865250372275909793494955935042003138200528003356382772173785336244189553305155369885981070179388857163669399344509722407401690410389081012910443272390191818408984763627404839680771416719525039279271735973236505214297732569118016059236976221964871306928565805519825707745007669290770628725246453014042464595259670957673191099850251834111093273280560040192485248412869690165427046423748215811325783913318105706327256091991234495711666881043668127594599712811696916705908329463599247464837181714176569759336837115365045538016871013926654459866173097086801645820827540339685317836733479176826265028725923755348782467597385807104841469021043645660503347157866548900825948795085060226065887729230470719688865765816645788880174684408177251857463545370308409079661896218939085652942588887851241793215274798700032015783963310170491323367390726527764297025696179656224113880073623305405233234567746362947671854343335564783217898012793033469540911726794195570913111680895863451131401853364786551424323678087381286234290973821403049770082863414524710791304478043595858502535140543715897011908293509245111215437434984654929940292070786948123922669648737843650565436383046462108151979191510416374293631343873601348702168471821302768556990591110024615593574063737529975212930758513581173226248209240919064042258013748971038121799257942593495011295061426896718205895396830154973114946255396350952465345031276787551308366959624412590510674313819984728980327237755768697613827939320181336987476226236005239656809091394318172957659053319304875011010601613100476447719824353901723019771391049153157512233552745439588305352612899107983955370606453390005689115405377555561340007552565797306637575132451493600856951003932396887188641211563608880529989562535914228792941995956087999492402257989249035504512586396862227293089361254579528419701542797311953472784243778062936020604460744038109214230843505833392849383732572509151252589322365625262522049887775456083749232089390206200348226183195589080007310042929608708881874977402307970480849678152805646858299767870733871595912718846393655147081085205194525835309447868985263022872501384913167562681429079615795858793336205919454597152887263678596669199244772365042362034327059830610083511451110416147126387060034941645377076884271230330491404859881409160937420861595529891129249199136705416857036254653505124734549527834247062241435780971417594280778624235184494323496457973235095382536095181832432764468454954785438565643345664667379843600596789752072951862236325323147368835984777605912115902095275119134906362382822125802240721696013165418309555814331697470451860415100863866163799134795562252609053670339818319018017749496299065324430868383865063822855584387313689703061956347117063332488370882783715823229792280294459814492669317360225251999375679502389389768628219207160619386959935426166282440220096895644612829394215575236771574960702012999668495149583291000989433703884224603289295419357092311344190652910936891429012567578881690760120127808728162293572370042749099178488906643882683635414997248097760272248143548083915922587337036883922044529045275889169720257422509777231420940666079281184298258594435884264008038357805438717910553821451389155666150375634917009578544296048676099409415481946640314303383813142528596317230431193722899873059252012208287995196180371931197665208411313795178744595420263716348558779536506833748777796912565405345332187773804951107650824236362226188824390933523470026399253070024554810749905488078930170884850782172722565966242021932965385780261840498351182182262967473350911928517051768478620815804697332766614908074907386895688547398698416406879704670608167349579574691298407606564788799971074374537800444108523907855899988165036778111763816046128305389853124249956063293618427177378589834765205231515994594090855340723870921479785956090022561777912699042399883013581563201068681247451255340165470622127043615597803847315367094810986128295286683565872186745851552607712831861269284601832388142030548496489904484398437798082026985822092885083938566700701823381635752860472784443040287269701859950126182857805502556290702224292084634088801804613119728250166620093392579353269205365522944181122940488109820627391186817864203029591820890792957727307045670776954237520349709282571204896897979222401948052145624773540429471163987992499506526942221702174630530797322081781392190234777351045866263998399236258532704878976622939231927899395660260820221087871694219749164842648803362845511232344840541794636490979658844320219594681163675332924352354323610528922744153838462265914213561248721578812257976151029724517952356501712735144598513423530601915573940321755679468249558423981086748265782275585399449376737473319107097678693407088729048668080173848818704820039930129318640910568218090439619480239284080136316372589680213747251779167245160973594480186990109903127219642409238773438116599777484341604088288752442833314481604076841445691925584595254430444431196998366642757268440202670392930993148681167265889972466373221751729737708649876388160145189794673424082528065499922980568991685587971423855781196644890994552052902723175309037388866913421730405824309766993209619029817134153250228346192306350306893627574717137975553622414471895353475709916448859403276296631358156247699610563277954791216395058438695852896631946581558964508095566109678734692157729511094601473292259664427352887347814390548787772206780696092008491522191741210771934094821296373263830962289009545265426683049400083160956685837587248256970570949372632067700475103677912978782353104144088853296689556221355327523070956322495066810301736222760841402533521827446191308599709316399867561201743522553040698741781633712508964840558006994024682940986099371597586491801041707550795757799633004154684037258289274580542909739927256894753966355132145353328717542442981903538296513145952896197459688743686608070326742661734144344093108635029429120518072637827174664842498723094950099474432302349920021079057669075932717810673789093467441040999267301781766870337504388845059496838083011393601929404071771613259042420849025004408492320124823142368669395454514667744003018697060523559043519008099024821310420040206165862498326298244180821950013932289934164345559939816610868964357820935368264813759384027478470647857635298103137017671009258678601558973032700638231436744139929292426534926842439548617566218186158012917238338738119376663801326429063040731145227498717577283463497635350112140003819297723518609728998724844865048755629275732551453885513906627575603675232733211117799358908286380516160564431727016851112627006880253108619076617243510176201998519922040574041597825663665220494253011428901541017566223073437518575579767321155897233081974275324183747849546132248631201523274677310919546564678430911094599022140183784500654257892509716863742449506472126698747172005421561288012959395556165315187881440238281086608674213755854273725768089025145193188517793527189028654091093833183383268135036107310790209726176338396587287637211216599813226599045384684823129835930270877690400328467298584051930876127813301926473237403303726969833103898517395864658489724619931645294026654184460814227409346258409145261662716094730146335946966954148560127982429582379559440229971681013552470563494521349873498233193781669472908097708942479236703916967711672628844525421409351637589620166921466140496362601127702783003102700754623271125545055766068458078828730238690579989720652165919064354202313949188210274778660785125345879214673502284749566997544704333939270169547672256366712929668729955644767234416379936880088970307941351220091073662208758043932214899071754559709527345036700718502777552351938864803189784740265922904621947743195521151833704498097437819975713932556698024133436015164404895973430601430871920485129560626087466519908114617572137484716186055575224862648161988586179694362439281559304817978392248892390813353717866214832471794084224489750066802305157147459131266590814089328854280613427129537957293349766355033446914298162584647969358870369109745427071780904494214470833112649594413264644378026756391173406643622987443047381573320188901185957084566644915011675651699739844268981153844197533216232435676754871682308185214945513199390752771723902834596956247683186481755511002823545803714970872832114797903870997709432154009550939832319332755118329767051665289010362471340389029783984642562985062940118214976079216064818502520474371106174991878239343666107619832738674750788010397010906855297940225311984237978941599505587980786134073371389273186490637570132991081889971045138178523894874314704660416608142134405988359561645011356818327382021168093877776243036734474649858626801605953273540125978132736676376673126216766421359663361011420617755818401292388512320310793838945939705786600265703899110108527953666852039281954657962210636316371176146093274479880515473102206779485586203422120287882711014385895757952272222884138341069334526542007915536688415185909482426518134662261547917315683021490772250934555774960761217174150471330921788899070465929936022239474380603998597269649284571292702881374341040962055925037002306108598684571171654787423942043166089758152090460849453569654082595429961202727693299588612410443049054983832606493456621514658470850622133415851823044308619111226152483774260436617556655888788617893475689737443268190491287109184726636582128789872821595817032368681234310027696205952213354389405680965682471160497083885435309764859174636045228320119676947618102005137133230187515916734936234938433625019941804492418829784881798964317053160859574779950444447113934828940414880682484885617794675021349971408207266189472993730519483303853061327405946972057775707092387998714848811919322962925222412723868276696845851715054893197427992786772407062290533794290160185206411905649555653276400326704725451516838862950491473517092522193454769376289961266661063366098621917201155261329574567639661689299537222158635167586661172661402466065879829027350427468001955878057076726782401197572228847578400046985801914589030971721332641425984267196212831526632173604153206152758928248493774611984121767281683670255367515134483298757874345761133029014094604502701573900875610291636366951069146869482808738236192739096753900170988430089611399874763410134591287845580761068996644050950771604634977905785814275347081643498028116468507118570348518296587262920080778624901174868554141880673651588897093563832178645994152991615828447347096818217929546093453915729827783817813875738316573244492157336462541681191974461488159661993318433212082741540499820994912221167615761518509535068295376398355641339787225514643876340713559381305095372350315815120094124584557133214360025204007844651974620646922708206012909744939268625055238837577554520177511522006003481089537503907855885367201084279955311068981479646089539767026369330821530083413609916364455311571927981478185881420352538224528248817746801584290548448935200946512826566696889279110829756792766490108385184652555079521459322157040194761956703165098077928006242404431799403835612010801759081588932609747622983079551206899824617320679419389200188501757735031577438739878218348071567621716076340199539189151582872970005247655485829495301646091415978405678279851146090563728084501656542491112597413025873122173043966857606942185770816965848934498965804406762322367250051549178264475754325984859712470725621380377479386382381753367687685749076668635686417113689390732194407509077017853302661043248793627039268777981465295476188051683114038540428181970750848583624622673237340458045461127196548877943201825978259990655004741526026951004346059464610850035007151251461705515076128478002929860416992436148501887856326634349914963090453513576487452304132373653284737017056163885015441852923751453618594308161303527860678979881002474486352962346996257395230727455628553959218717116772503197188321331415611376790021266883005193814633117307071151181750587093484441460146804847028045318288830851964569924320283919015984732928892847755977516173343088634780460342942669422285095838115956395675953991788132197043985182419611071785930312466857990521638274099184875649929385703130265861176295256467577080793325857267494125781474966789790174702282031743022062067589146695745157808128937463068040243995272035380606262707040264990345570625750625128451387553115609207865966134017359978810877250631998358185402109838289561904850465171607218881805778476440549303922544200134907660142533504015066411981709853860809658247347881916791491138308358498847699090433157508902089104188214604849202301180408715302959409124999733939997317032655376786643201731839389697595289335292808858327819000712015991784396319799717734754267514020011748520282301554296293613545245275528859648685012739318041006983229441336038487564437051322229485224806285034941836558601514678591997139953496777106012367436065815401541448077017590144303824403886984732226087548623678690729115202862575857842013461470058647814819751556917434109303995114857747864089463817941779722842650378639500035374224699100359163221477519795035787556851266883636138142023882834687088009627118475516310823954611429488998308306420598446524252299333447737413570732452591445743046744241776391280464684586344496252356543853603254202533350714434723150505690977598420836853739321363083685144162743797882952403961632818894056799104603809068785131042509537442485935156512041465250744625918487159420345276461508064028614766363991947105788880515163937498102509275713350438340536633967406685140806531087341423272695441181836224820286535917896070578560911504066397425282152731274586214404138302945239919870495879036579199895563133374134929915643840202138811443760478779055758901687028813460779447728032596673220072696497343021587565307020224535707098077924693537703905283610793806006327339538907382488595053348777199277590631244747733062333505229800289498279001863661228921663167788904174336386691636419969632569860435591710347214173956279480335269577209225257895464800457933791726205023724312470106294870223106952819526358354503325821967059456000013774642294626674195911725461622362093654818633533637269376697930679000316607971822892277233370137102857256132489951025441281791684105097966666944631252289176972227695990991680239673830311315527154590222063318473639966818487633805702364376086574147613427611095757424876496562533413536185952068583703496898241286363144781230956033354384569716631978940282325422113379856494926248465134867703478002517742875335078270755317340114779996059730771111223419369546576903122489330538409024053049485840307583630482979871638625288680267844126422756870975944197243165943721685447238882732148378726100696061189666373315373750860625259797717958603617029037413199048399228483093594358586750196397074029721811249124025997332258756790706321155275063832560566047800257001567829718997361263809180173631695144413445809461291581105701425664791432183819118567689306906609298898150923044597257898646869809762155868621329572130109402578361871212621734843393939926818428796218982008621032880287543385969333062607064830666931736110857726668247524153754326680511032558682577430586335301837055376940909174062939818187083820635865085809835995150270916249952578771523811999656972819421279588435067129673496504414478175332309105633908634888887841445265413485582748098248245745238400952453823481653608681782707455358897223323911855425604672310052690614129344937183347095358040179280414313457510268667805870220853931666430044885633955513756854469716262517504777643754171345284887726717633858400699845375103151810505995621266331453110624566686510229542980089493898644153937749116896037210339292062347792021516914684416257527955849043519205941012697735035097081536774345557815407488799707803474634697711795507475538191450340449483281049282565784320953813897648558184221252147109744867906991382736601762978270812288404316147983389282153606492641850463784723769223245541073804573082010836974192976809801173509448994524393266174228679807836409222191944484867089966292031826970456511482585044088880848939919423231460286057846625563290563322553038595625116784468579217148799851885555635167251614068345919581748500457457084694406610302462475478100369826601129597734605757036405961778253357640314979717586126137117091612128112419067470943016834226915025731622851919457245203975205831339232117431240382670950289596427450328212670236145843682207387608398392663962633767576433034273031613454533670769355231653320060828993731988016415174335288466323130127720825175993610384700193633353950057212176910454778782058266319336856687303043519360456882088255688351524515365403439201963754425314326394545481372056414509814619593110974392466922807991144693092265613538110616720438268827615672512714350939877985779096133709594115059593475967906757166958604960398275902340549113387420409862104364310285630443603815411397926135024931321255690344697516793613713924488739542056442957122780788398525302192376972200586145013557092792797934952486212812624691637972768054370020097305709909327218346276590792733183337756763286014792041865744918797843921364980826682380508109426707947032138277232274225187343879107830572259545457600104957226838322439774478299029161586008859015044069594439614556536633729095551295268812134774924600200545837548900950179389200301671130595944628403037507859606818535678000152854916820384761923151606978532593321675913364834443650198383969928792840259446534202532103764701368055393414012746789755293886015980129459080849558316639473846768685123946104980907764546803013744291368587955588674656350598881353007157203751072504068906698081994427868739507247138870531252707775620946991872517048388191927737448132533302521971656862722813554271682346894528579188782147926414582325346582959425224790322559788850248967199198916651145893116354827738274092254458113353654460618511447993754626233598140045856700885185023877531090045307371825907177125247287131950658599939055081986452828649700533152980912130379043726308653775883800969025541607571913420191048079018270061374890001729331659414045352927790651740602920306523464927861137350722230503770749031583720321982633621061248593811469385599552160098797491253794838700376898091519737991082171851299500997006431603686321101686286076510974276795941281413416707658819440507373001966737518065828587632637243685561235130914390463019748748156316749988953845106267595946355823438146830309918677898329318387163867557523996398077674212225699379102561348172477374796911048526210667719490510005082661714615163886342528870012567738287613818899194693951853765742818070500510486689868058629783338503445475557129020615796026361623143485515104552969660612453452279951234879622091068396087842539151480711856651582080541707602211706702010826387914061011437368492581259497231777167716366024848502655675443961286748261115176371523871917164388321358742093054527104313935372720936044465093787475363199244566149369867118240113243469931349303115410633555568552595027521187266901996787618324080429659414360798121285983425647081850190644693939334789884976544087921675697222643249892939392656885733523283408399151206020790650625113182814668287897496864202094739180189371581875726156272456676934448326056519627442299063508816222850163303347133170304617842842373951114754104941720965508451171541645091244392982250842494092695133159020607507392748657680948178396934158391046672173267261511198406051175292857006719296681760756692775398660967243596414852559921226286645182395611680865453063683534458186111502669179594059125509162304421078301403763586630807510415112897036371148376456851270615262704937924548768225010754525496262159973961390040804119611065566507967349898948991114322200009924050176255983418242095668437082086111423884680299650027972030517219029640490765854241531757844245126297055804624424088513329015200201923754394220711110439875286876294325137257042944906653852542563417342284968999037619048108518018421837957780063259462789160001620152870850975533254530432634897341730148009712228091066592293657337738161515408455025003250301710849672002415416875285927527114411820822224686967639061183390712390535244828164387365390595696571626509531134864373911566496596696530628106499484972191651168890809070859232356520952090723828510689458528424452703607336503675516652914643160158388546616951574546920998574713475286804138609461425197416715231841229008901219147621998663670109209188965524047043808995025142916094563901372560275046291433862169881894545411473874428233516080798880022933036424134269646394471593070493621008043762933579690693890611770250727941623130166034712441881715595392501630323987818909455817532509753402260677633766591926500039096426542791084918354742060980982406198107274186626736489148390610911085177218803488815031449938057281928168219560882592577530065355724427972806763782358155934313476582412737341303568695727184983912049480541666090750698842436630071802496242416689172589400486360044022670967307522112126433563007657403370353806894431710026354054252556680357783127919358229892630724415003488332014849403724086407920543250578677548716991891105203269783714891238629814528627026475112437799097112110417132640270083336875995933754686511960998073919506269341218524387418678759855703459224746643291124224877251762557931905790427388821141376612537239808239815059978745878819175473101953890109930233912416844519595080296830123412480687994047791922753081649791014159158379967483244251898502765708291514038083197736703265497931167568550732538376458324131398496770682091613257734635103251473236485792373099304426803779432558106512493685346919209326689063047162824865186814331751652956162787583848301363524805518721407883392312274547423644718565427890882827245308864116427862821772253160716577907899789601071618948463783714099928502495910520378240101069031750354751539704153984753634818163149616162108327565534183952324380959963737648171511769679418732858810181763413627457107695511151186401510414937530439503186780186099044940059961988397948064866272102546215553019823096247174306909851295834379310732514204901269759066622011936642206407189930626558295192757596591777591855155342090795601938522514121114373477156225821104938803950720320869670645448875181299178505772851615058013174095367365797838191011193365924000433316534944070072445218846308174537530607751381495043122248083036673207527502025692858843951069940519453157689242019780019147701439584694645957994925882330230964697784439124134970447410835955171974660158496158410694753838275572123573259560460409279376305470385287715844289483427058538817443764214008110383329287361718550850747317783725843888544787294226810146931812639280527635586702415976023382448178383465610994285410826298200843235084752318521754519883770319548800147160198914192192495245577887417321068679523785608183073005427962132224889565050208704446075376753230102863412668707323008879459491808395358538449475351061180182990213161233961851382467723079534285281288239470187877936585707365455463639089143243720919690617608292052859173030239477182060251224653641369133518999738413622048052637649641229070352100277523545680079547312934645164928392990995667827984994047731781892956804643701653813688875736013651567327047577708291797603338257998412616791377218313423575181491940156004859176063702701150120636255380610948750868043391890670733878516140859456390352032539661093535887535616285892220323792170396393425978268864228563032039495795035030219064442111957326096639620323014517469724981611705971620517066648528944582628138517554741045186823198679985293161865765352273392985992780122050891777972623511145470081304873099007342531572051216008771697577480044135161143802920461683407416624783441823958848713288038881800414939189294786162323451010343385599533869518175046582914393827568516905482971029697152462222638756175626458816923937419366991837230852905130255754786062189702736336066101283526490012999874011962624882008390741193718522499267332290067952355507238374550976806379848662983753998641108232207068666222518620952787322438694154593334747532312239404981720806965279421551794906723688605566358165193812259707768975601034246581792615330560135114738550105913534494417699920956491729512155750517190831339207762423272762011187285403333313867814446746821508844087849135857531502816367747215983912271412524291620930417862051076126515352985966601158110486369611348184909577884040663824486267502023594109485248690909277734006297554847980927619766207921934046569020801178030261542853742807020149768015010241277273218988444870440436453472752261912257924532917387101493151913399732561788403870677652936677716290294047547435990512771624332733731113024600466532903609511724460759029817985134857546683575764444882022709081934392795891718161459993098973899611761643883091661436250892415829342889902944051716406493009732909183631838380592854553313528185956508689075287407636453032394468075840259170722146252727985814865419001614379255448938208190510269734311179999299871753632439546418019425432444447711821856550813196536052500855244491898814053345058747404710837822987004232058094410454472624977496991479014067510249309588031653983141989937440134866967419646503470572040108348471305291040722739689136181066655803537734270354221822752325624132391272078798362557139257783466894789318056637411344342992075306853043826667200775374064926694547894661816658632186193044443447286266619244807891767891276518219380037950895081632921789984762444081071217332599151122038475862136810977598746762055946744205890123361907226775969939280825397871603499503102384859712086028608722931234903488023427371723589476492258310379733231795187205513999171181272917027509677298811789122524694031613791338014735860081178945093708060725107484730998049088549002232991379125405708982218702552437954934247539091014939263577524528245182523600641534564735551399708153648055353870117903038942234122973244872393246104843820297400970307154836597392837195994952957739283753276399696426486498417366884704468740013338392622999795697166897895548732202911093435125291551236206917910142407094175437139766338694660126435595343593375083057022127685843094766065610723031766120921624177055479231915216668366944858804843266960490430366265490630461986973392183916776948122200472811149553294701284127925624188522775077859622109462164959986001818375907390506717026317637846319971872984868827399344002694546919541356008896247854224416628120530009286191508564046922990290998010767717412862142972523137060910841279198696222551409005065920834768569766523545513548779567447381332816303527525556191384316162452325601708438342467996181186540789672537588736213025732195038524876370700097115003042221878451272446783266708184439385725119175370948983375681002367688690147056360807458276529435666602259585222970168706784499580546128668372990811659908971104160221590919634627576382646558830986938413641121144825527262901113718934349862478731505533372066734333371974044059048171783451161130293066453104377115365462267569760498494584901534995922490352406086448961713606209427885507007316342488556701064281583961800719408426711083739701814139468059432950542271938571841670083774666475047679707464081703523710755175424721009688653449913079024082084522577136274240111090169592678656137493921904507309825686977526863972913420274273455097128501507186279498381667853100742114522132470616649457179325860747651980726631707331227895035947228439398145713525829314670248261023256648590465418092547645036468625526857916342958725711675462085775558052412939548856298199769486262922633921152116728683808427286528993495904795885164657839113376115066063220220225241739539723981267800747189267991012678692924615108932675592608812349678717679483148382092280914853750416705892034097326059369050558484473564769745850254953685918000135274315010633006757317352716340983857411418114158012051102004986956680715716928919653828793195556454720121723615608982175645131255786706376505348090358787850004940109562301791985290240053121313501530832741330009832046460235527187318278091657022909719551184569858824763920267183278672227167152464035040794955793516870936046018233858145336676196721241161302073741664300962589144502318570688293987632155601128898904340490700327742396343007169733622736688341201601394568315029349180285699282511749335082343178431666586158503400988896381551987900762501179283226140618298230847024916999097606978492577164833737909621979714940365748270840924576240138671375954051482907236769011550510247529784963698679349402301121978350872101381793960595253839024717537605835207066662804974585792997405588674341000347408197943138903780521866974241425270935982345388236847005330161092978354680724153221238304968842066673908471826971075157551090343858199256134602674256082921805269702269603044496551887880139473596836114848561001029282395477033033470228138092636291429008640817934480759534002341202445895172859564244020846483587002977506969220793612608944015236002617127580986556300011803766189396000606218908108198052797610748183665981965891707051219900221527199619240356459393018269111634652762226774830720038513571222848590639417975551739411727131432989248198753936953315435942893649492510051527168271781352079276956102930178378429675847800824012293747035567120922478146947287770599991673143667915863747275621895319569118232704514585385680368821161987900265137394047045950847101141037777088598899080542080546680076881291617415728435600201224670080588073983343805772904766806874310479721908894084048184706342756653889932943390598693735509819149632572892615897954084230653644617681490319547782004634256935529346491259265234224944807903120119749672523590657705493135045213936674672091139994611919374563401706385002453561767920703225097512320900892918766250271786366271276205962825189987755970999368778178939729890911649341365497805452260737716649668967613472133714867781431460750290937782686032719424042610674405513834051267898570089706621241998202888109409140212823135626953039238141558586365689796433799811160735205866781140156921995301663378497843086799962283831514375481300786254747216674773129069396444424299078079991153112881251067126400922223835373590171436947684234632578399166492058505413646090462689544815848583950133363845020637184337470873343366478631172931820446161280897130306227730763361927001566463116926471488969129847429910751474422738267788897823364925227608974261007690434228300650691683424722960776803046164122804424617402797874889486380687661448612382532477084798165680635002689339431236446271854098954052380376060089584605773319771039214455874901022056961068789591335585255064992261808788443601384196941659691977874181978994177078969916487386665009448430757526502622570406670654771495866079545378079937588702015882481432961072447540369553769352312966391970442485332432047053003047309435146075325427178494999458052715843137570677565526474706969138071818403421349669052069807471388832592422814671470675761442999596304965460756932526361091868556077719353415410077539123521693250599962389191043371581664743984444122659137702763093710805345999608911550936561485215642941215035009219487628726905256679344177239034191429357700366063717956087547309029587795364729730008578419811615335269862100973001326109712465197964120123845415521682529684980554295128381797421484242356910764285209289871791507928154670016567594096528223929298163432203338003074884576888828515057115394263767737599278871741714215566939250518455599156697995557422695458197718947619278377156367416759206387753452435292119352779204137280532374894229052567934142245413604116036536104883824285353508826410112064942766437083798883959626699917702188022149802743405957736804120422806019338202125720813170116951721079655470523824676679922469105792754219410729737908777381007173935488939551256534746036010354917153245340692457951230485435812391470549110769209983277531669336700955697686632828262654367192281194768720652793949522027355333442697248686443532270153276099311732147085813275420989966304373806399307999745932859573505166780393828054563273595511782361113452454202995925032866474618448330668461855328004433842400772597818384028995198260920637602247529047138708623589251184434318641920825488993113754299228483842382508688402529431155912527600287014436344687931233578331850352293299847612161495874854582202607375564732447713541609060930214885309680931412737845459872722580555788911750669587484619604176942927322341166344612944093985990438904508866578850158056411814162501973313169373987062553250031225341629364762187745043888066441588050703416172107277228790263098219925117910372284878012537249848316808114843314149889820459793056168490457633603596009534348663842809029432369000450546234810734924814320941569613577496708230915546014538815701288108374992731179567453844827859927500098238969553566151232780416827078129729688288441477671534761907083995853400556522756872986005131532243891672353979383800324355367507703480034674254476915354176166733071769191976940669214882294258154119220389328021808398303263950771591124633219877934487676112289989780350737709089695729797921579511342106709186185073001832131555808681040449784969758286782341069447018009308759805784198880011892139901142667041207082160251105881865764515740029763492584284536666232780540277552682850263563096159748983388576739112464169162373800329548756014493587057555344653705081289472222814100165892829571119699798338658106028955771117263564000501571663499349834985909479933300991476453065203619505390984905527639291814462855303009900828913306357731695305807009837530994291983043039685932507324065932352181580410795423181010115446570208817874490728566940976268917843657466727288661433980720930580525561516247599177757159177254627683348171378026189582196646990971245678776325659865993668030117263516634660821238498978482565513368604240354480926685960311395461314118396315189596859592408460596829430149065461984477776477987839603914542422078691361007431186939082269941576387025162323971570465264473535759847213272909677718655618313364238379252993318411323106963683188013226291879104948615819324719723753523912313629700809870939859223780283063774347864627969267260640109818806863142915230433116397527177166453451746398394992438663196138239617347653972202964736495397209815858665946927367499845941194416539907515810146215622335846980623269869545257617575358543223215012585194496409376256595531027010793223216296365733029124944331005572009050427240069510611959343010575345176768819678688986778039265681590807625371194836868548109752924475523172226527650749520300292955979992129585951776980511960717343894795226272904503691270498923740593879459639865808777401534301502599349310295277274593361982095906942603020160617564529389911493202851947440726901752985599719198992764887149460455014330357623543592379951968250149431584926130672355387442838047756247022521699691313689968972461864734652583223514868868766478301832871628673584592701966367069622040019033624103381896973332627344982378535022244729431814636252101720496966769021170585113809710933379862195634781706401038992872997974574296800463709489841947046782730975176011108510605108761341913234394500966863013788897552066628660639958749523906093194193911020133178612543439692570280799095038014509454120994851740574742226594409803795196378983694674039773550996860608541014304638437722389915021914786672433590698290090784132119277876689251465998085235917934159868278259829072686211373255774525395161074471153797726202769017561661330169911847382596561486165826568381971205712178399249816895011840035286272770986799292081867564262287936906568030134146830480924953824051025074027535992337057842685789712055401325288798655862859865455750529916744087421719989738994427078903697164435811155270822560112008459029786015828445932925847798977119727181189833983412980506368476292959013032794271050634315842293346051341772215551984860654812745422698026588394239456691265338202544682511082928080887974882772066478116517571969281375776369855703132362693998071883792030376422324700858845151543147290547197886521940248271235958291661572485436825499768511135386344696511693971104035617814868489151268956030486999895330495904917226160680473477867289193603297510891953815744596970189431544617013361771428795330028846635216160239991471523840008637651612594740183867238148147739741578273860761190595725456089725087658544626449595002822464264623395868689348098030563663483859057284591465650109697918268053831431915986660203462678239451153932959511972306135471891144842803343123172931477118918036222840927869764544701568674643901974922218600573120326989199718423260459341235895028663914833811974170568930317550751261197594167796907074838120074591424418960044458096637418993251226485323628386223044240475765200676530499398651321893400264281778891951749142720293719917877900562554498790196306146303202900796784730673516369236497639535058095482550889340755134920084355271615252299990691723377421411923091889595848121859459427727483187236706808361645694633934518738327074257945770163012598537909336587611503008183555920565625909088876749441184816530911699524881254278031814592959238670377441263170562149835575596569260402185158685957038367645652631871520257949643409056713949277272624891547243405728561884440637015807089437396983959673748773654167789565321232713349665690161119784738045025420624067055218559448760039077554872201020154813603405755412812939824195998203563835485726040880055754988671814758356108241701728035126418363261888636410742062227657656139702231990180806814075836411991338052928076825603535575652686536618557910406377176320182588392120668977287399384948622388356096189244626599441105950871156689152329090195983025895553936925295534220543561624000889252584862485001118730940604949620439532645184659133427531764935724050717447315224852140938753368177978322446514114885719355264460202233665602963168366065088461843182301274532362660544340225824065921644446938644698947832339514299083868419229174159851101451443591854537943066282527392795701937173872586527064963669995858847962057076467837467519745912482816618275965568960090169716817403981241926364522774793705684262717574213057433349083490699836758856580285135289443011645950599210903407180537220751827322653442794750290736217525898065068649983991122078560963378076000242112333302065359449379605155006267281319687590610757415398630694276203099988908542331194143123860182681820091920354695463573404867065753015563049662360598207570395131849366963297444953257194946824469082964897938519149073514566469510618630648907699880807727752262828528536023699294685446200629108183251352209297234376713757918555640097966342798091094274774464614207919891361648046285159413600262993956187481153338055335148829462830323390132257476545336773519626575747564791855717005301707348225122028691654504554576365349741889201917018413242684647220864298023933433231532697923872066429970230582693011011136283761429912706415020136499981824688381141773713483211963941244365239304472677845619868181686663300311697902729899345437883973461655688820583796601555963532698867473324450731222844867224886697209850002214441483356185389464069856459991325203198532183954875370597174379432571725840680886186551900017784646633897712001047784852086858578500803225989148065477780217209117540735189495451547119363931426848861384652180446158440604694250582306075404338272538915579149275674519047759528736219821627684904651621027276275682583438072270825219024803153001272348397657602375498725970722269521754596198264098177969304548770481954264824533576367203972694039529457196620620954907310756523990043837728594547781199057481644936484372639403016754513415322578606760852081170794525352048775272414924708576373395286737692636774477075550062993349462756945311318863917473696923459890803790317824688393878713815191520419568215678872383441017024756543009265297458777708788463520513970914813981474775219228814446991915972746804903014231364039837982684350111339601715934581359737544846320269676110314612289991316057965125964441538049800286142809668094686167902911210826552690597007171331443957815007377055049611677252542471069493657921422975493663820673320110531464582156859187661312921723359062914710631111652768620222439821062636833170704882780898806745859377191497798623789879853069162286005074583839363678708119572494799787217351853172517176825568146588172889903474481411139702549750718110308602204085011281384860255697147699309715579032494181126500791278236609388557414071535420582792477402592144800590103916740780263019985183694298559671089130823484211180095609323626542016242767612688652670351539098026580262315048112743448724039425209220309550108565808321162869776456770634848393066915532372035885989353108661870298824853274142336654645765396124021764775358259688192068556236539429683594132713213912635134258746798042732176550777056402518476569681576429861926205256154770417652470735914097623252500266724552064670998864448067828028055421883089020546475940922940123441742671907169741462355238763770089621080395498858062449464020061252122653518688561038560746114557841178289758557314466083119040468860156306216778516440794614834616038971215143087030048067578880877279653390681251026811920532910826805634301758289319675275085345360768104802854458440495275938812128768279615971269698274432734701834377307118952922063394794790997398227433340412890898232589111000301087685970562920855798315675970831448293856337700885274091941719573638728327438435322472755831442303125653908724329307951010075800104025909104235485017500580765848374742507498298690946075441645835467073487488881116312858238027761661864788912192526778361192624489510165606662381146633741006294247628577605045114374125346918031371472944139195831101653316035597677986303762574455109855325028680145975789605613012802487449124300143421604231240685396537830608409638558023570594594591955280932416722413757156465707326424746045615853045238532552272584825731805680599014110827142897541541995256930414659858524087005204067142617733765551730729303811966979884311629416069354366107012867225594663009594704053690661738135501878869276160259751041195398076668608606211839276490048362482441226756141161507726060835183403960853608114765281178237496149503368971144556249392718335084849790525798498644579382913794936445244160608164690937296061270039792542584594520325907714341919527783985730480414727624920759132366027109931292071583312700984744157668069728544702833344969040315038132184118371083908879692142459916364505083754446124253450741953312388607846803688893325051542314214510421274879686937765960224378791376013790699949676685736337729439767064740578707653629040457619385613048446661493593311617419455073787094230275137319354319543434824850722015787728560896835440921451964360397399955502761972697898937886324585910855462422220641502461140798413133365782357144338882002931353463963476849493068453462996012450934516450008007356978217996036680364724514684906396251911862400420006935526593571190082886388336765125976184380617723368010281664518746826397611226217101236489409304013290710178163639530876023450178538874448555762490109785898705021194960079603924013966700200747127233983818226203842868076507270330197827452080956749007355365228582976318346075433069563934082749798254290529737036902569231796032376183698015989206188761168263294529339185531704640008745276020592255064823835754902066284473542868443080740661794377187209719453569798516518422283577415598607883497911046707140754523113156845219854037951989167744746578627591916347757832677318639070433218939086549842315311410392749282905357600898415900505202220200484916505293754442412510401106426194828737482029135185280043068178794372365077854969456449139004657715985392764392409772240703667512601162432048539800079773697908795480069519427922980771825250158866674054469201334618669313801979791639088376723115472504380476343357452444166653298703818494587805401414401602483266127823791574262451806544758254641522514811362720342985206514795515331367284682248241033425036085998749386072661446259209322088217362133959918533871357270985058935580589328674117440503777027661644753786840228441116091040171268265778751443874397329515690475641583993835854496515200615321736013119370888802272754780510534365820050680175247682098956870239400205377496042623398569999393510640444658515196591958680466655733378854971757200702782454500512600358736383758192069821603743162563884010439784781786933700481827015489538453590528548566988295988289852427867716933764273485954482704847793369249449141012587562425936894867871017712458860590954355279736242995064401395205004461346399497732113816679396358766259487431163247994025473658208534676914800881846420037464016012809193173119872344989314908589363876080415477031378447507855828980840979648964770993814401884983500472403760013310407603429793049622092898885564506267825621545625143521455882881749532907343288843411478697590929816755026573278196232006009932203414380448654920328584625280002041559230821637712794126786515941062580115828432911664262534630197383848407215691336072386682336409915319083079658944505189918680304551089333914203283253231360414056993604835682954756948847043558597374097542350216272732557740765648887109978334267273612470191302851394884969911488423694635412313064715668565673569684436582264984619723341211790878552808828648483775888884515732826891262123517899431154383659016736445821966353661000259366335405734445135476011893701886098294376159126404404831268583034379642352800350310865885702015584856371038982068030977769550356049588513925011775250122742857292930701966953389436377608668310477062565347120610155589639633325558164072386373813525653665613234346741146933423250658288454093489323025414102328592033590391583791609410482898504846685886618694952951304181529480700386909513446880643346739540598275425722305658053863917303475071458264937703315316835813729611826705289690976094058038831214224389710400755755008848687548975182671800528527746262732956784125933320004848788922379971236788803916028729510500445856787335506455686979315286675390104091637157415097790835089638084091732731676392971288597596557915139115231509594379825016413567886847057667113183129579310158253429366992637780001988958502615621319027060887889653671479235072097261349985313790458264701452255944155736791379856639576289768551425519707082295148368803644517704382472328859651260420000764930077163566200548823372311180772682094732569288722009923793636846316684412285119055061922131277380745368345226404329821130621917175773276875756044712670844161330739961021997436694898771247519354974061359488238892689495751111040232433806534244708512763563149637237157221044248398998396514755498462204429031223282169997139151263285097121075607758607300488065718219914822972952775156319782086742029259547658490478803991044399208832104129369816640080336214614994913368763229848218477539089982956221056053697488296047287170623554418806496764408705625837503388598707434825905483564177628642265225493097233465071181518781458493857909473352611556918932109499795089766057489243155189285006727686624956175463694825351021288950681382345089122316688381694534085016065387342717138278746421200342269379222837727977015820256849151940263493424930569001275827809345208666096082405793828864314461615091762252933217915593565250881911309870767707102379575572823737338867104888295266134106153622374660559052496682512689575514656584451194594904018165335420596578763646050552669983417956033343722439960573170387445276240806756222257956719064557600258603944244638896512462478079435985897973260137613473901561916854775797685791290240454632132323069570176750974362025540177512710869658107216044374131421157895811005842850592802360283270101717235841214658408450929651956448430422519289783423495619224725662051534584543628479550314853486776073377398808315107609195309984226976508749232610614333403570633703660459373562663145919105686140713592626566815865770553716618724225282322438737727179897011958372845967488665467508477895991797235189311587313758085336913866069320308352705280718549246501785733077653768072716416134459170728176251301733724119007587971695299849525113526025235937576166113431475591410345836055243807820375362219357452804079813927311715878499700199210076524627577167300529558906829580740091447613053348208219612968026568103332956954388041806950518238976149607494726939782227119226488104838464395631546172788675760591528732183970303791646270162241492054298817602980272335383140141447479014474972169776097459375466971866680620806462248861859218948852290299489240895710743657592661400773901768893566816277813643624284648151156625763490140524471623759443650876413466483144134877315784663645823122400596309554342296277858874729060882969747096190439824001656582243831728902200328443128686536792417449843438464613414081944946248173021617689883922024840032865613072885135715252443408622341788849823804092168047966258214129244289372011549206532070293326925604287153277151730907204423147255365377078558675952718942756694971917573464991442983788935922660060554660697716068369608623678654192240926874484896728962983748141905931484102970700561605563083810396790497486394307606871799370779850161941819502963055240912737051505856602227546144214428211884102796112300575688306986645146872601146043745437633046273653314895398826823288913548225448263151906680856375475794182677884492903366989338170545578784591172320976868228559077768446365312944550721904400983944460717887757670981099293935317662581365482017664226101412816215921005152156963491702130417011861163157875504998888561140159844000881458454817384793375209654221366872549919811750183423690783907622113091178154304380416091767707055237869444056628084099061525993968619998106909864229826280667463738974178610354089725251554455573441954227031069411033851032402052608852884594575764702782961643373374419712714622614727605309457064027561656356147091845050222723722015991262869701511054572223552239155359495846607674986110949357944061484951089105773750950457946469898295029596637661163165573608127000797992630754632812734489573077213013544914312401667629432030804450123359114039141495588941963670258737724771485482243070774596737377654582837642236380866677705364469179960970045395381589418650750955304123993919045138768995913895894373039367307725409423616797963095398997723090140361427658466892740531330956739370356129631806712523580354426636283198742713143309646788530707268796323451827811491609639460172761215000053501372718500175633557688789075204606656472195056370380778201082291222919176842899746712577573263523205809459792094339120173477650569303664418367377749394668792995627205115123205753769850131455101864461519110050919321717536139226503726477607870809795617532510875310163702751668476812301142309701946465624062574224132225264892693607037637287290795808726779980683483543369358832476533934754714293239427235474034544903318102186322534694998014918307471178639508451548365452416902575285131732090220112225043100872617838003818348772588480662270422226818119819993181477283285708421898616320010041424118131966306588379334381040712758628450491896996194004779679462357388419142269050684055037479227172227810433677105851931198458738923761276001844167096503889474980100498200466202893419329121033772779661690615332595429640303571337375243046661360681583876930080778067145521755328413318184470804839548077790511420392026624929603707740413522104358848657355127640470927594578062395694415090446123977603590701501339811771347809377443041579900716190700297129388366865394375905369962205979327782087277142559652533083254926409690409734989127404173929771002140966632520902956906854568481567324065946898428441127854957011705941817532664455069705804485643045868838197855040732158839013313162832985050624399357053413598886726561123529670512010646856324371488115970449901830148951250362914239014985413607618307943345656513740981732174605478089119032311811030483614381243583377895119188662040234677664131330299241582947576282306805219988007929911737881520611436868204373048416228985503134292188282674739170252412330181977832528929446557092322258253308913674110122079360045131892314061331477421417859764852840643499864577598528694199041329480522904414772060242176935183091211529628499610480288646264221301475956449759915073408135150964653646947635242020962309977831921311795105924753836487804133458161799892937597576482782174255675769714544080495515213394506389632071620417735095789260115034428294736344306625546395941161373845568847934001787908270652927645485168328666507007477064354891713917495266839476377002393281168498608027744748309047504425168362835448668742851850625077519633880641722523585323392985613296605536572447893277290520256909565542696120123355313654426674380021763897923495583704444348494219593975982591023627582695862132477588278963102035934477958134105797206106894441675279148882404171608706449502726848742233805971350694651776719305514102485666129762178503398840518831571914296769678451768583310489390120547707661002249924900636279118606337107781116260459167980569852532240405730670434886570766840381400671255530377723434928730818386323273888768891441363100991396361290550974060914269765247550117610638547315989868831394379164342574858312297555577804731578561073109473337613902853051280194234726358512933927255104086980270672893388896548510616911325128767505992723007616614092755375197188485307570897045343839114664399881310980761664674957530080436660446484783302334529169183065875554860030036238346941322056768344085325063957914490580009196672786589033612856961614877238799834461632058731339901196278591878822256282404155423691331345534085491701589207781610058215671517218692478808905841123020030993255230146190788666102418764638260142994769740124731238488420976612591784444427079557522074272343071709137916157143713973975913310232977086064494298019427547342765395169161443536038195250193524533448720066198518680577021162675328267630326752219642325095934689249270433199954594376865700682240058840400164317123947085004944504087407167369198222322217579649506946023965541229551337952271070542557265536288640525666179472984403173167587127925959594420951434580075707926164127946988475413078475651815591455775087394859664474694937331883951400873991115652638746626831344015302911185747881635375142641848977507031778140911299972103692308230405141214328761625823581640426832196701250200847673527638280220582096789225046579702402486686528127617946548011732396864023928287489365529901290930071939823159075724729136776666031829486559456041571993501099305963578048728462727501499290242083272296199536072030968379153847826110421537837955144027129883986601602783000801543050718109086854326207185342894066117001243019466284564368172565228727868011102126811091692694457168736313155763608659965962264708963895048496954015351377485668405667428552314807760344376138259968146028894101610633311953826272414549035418487451072081783470850124536722447641635805167850594586170317117092859609948036748459396851048437510440456037499591231989958496527513541761082904302850075100989034804373593516792742432856662719329680591075917780473730331165401404170305442572722426886357370008802462519215857807303731226981231196682963544474860966285844531544799944733941445440315373084087113907167590263067804563306134332024263890467550186349036280542679270223308110710603859728271046117731063669702755422115855584885898585825427623929691913552886490624143895210702188311878008428256184652698299647274177646808549834571888185542437813966238209001285747512556244458527796716517949304231721546058746612121477443562668491116546299537227167626150854210620302199523235225360638266381129661855520069760123649737379476063785580643832988427802929907753877623632712252579840218553142075288979865620823763049266577729499019807220686145002647499946650998226584181989714950936113701433219555240701969076652257158241904039417667231893109360000034333835950158392275330466209959435695555773514908035145665084050111064518484618773870761325722255770324165088116055797590250023425182659783842922172621226935966482797608043898038401318394408837827422417994940150619370238743208769729870561532475223225840369173649572063636551991134950703341481045326363702108514122420987712514452987466746216126472623898767921027084547533946508405532537583960166693089384880062720059981774317828468854549051301350574564967672663027438141539850046035475317149066235128099975346519623228358200657327503605556134495105325346974056286280687475642756101379146297437596447464509802253880882941862485357285905621767028784527746663345490710932459247880950524097470599547617326899377111194064928129779306778530763207133332762822254388642461404958859492941716644467645692505858120735164089438757484464511747013237229601200790339147476676232409666521231916409116706956406736798339655198432883766674433185862142944593619987613730908476346231998413361134545041683284761492851684360812747799567013471142101778575867277815101217489741650224777428716945081707907298553564780716186398297896709498691705562405262019872618757026870092978605344391638944780378887607892709374515954152197152091801555600751587970761484165939435266510236927545025048309942506217730317001184392571138545115095268081999059220449353309168298577109570344907928262295735203181737500404727305883806084500162973063651953447036787838879433623990838640145450990591102891760972120689271493236092713593771613276561588785188866249735085904436739859083586997738756051824860097077237804617497086803998100461626226456605192437014810185440838293956553739685092123727418474490218359354772080909039566460484043416000002437816653276578170967871613860208680120984461844044241934534253592103316780663252941603716459811382696161263522126835451839373450873206434303718182253004080139585590642852497844492306683393965022606328029022435597067246859901520949514439706016496890110339068895366988610156979309960883727342216531529393206567279757575386920068524761040116252144587507046889051994217729932021455515858738937062058275344030118312034767649763753730294266616480935984505868743742990210877045968681490036370529402093935237200422242904758699190285589607193029568959325801574166618837785316707600134981496322233701739754677145676445927581288413312986733256590935128213148415300246554743303964258722545652153940767222406144212755875796666448939577253052564709954407008918466387135607832154512615243559775990413668766742613254618193026718475618714391701552740675878236101377047089930444141716796934066379802435548396424676238729627107239768771917603666531561054817289859288693998934336002323484575811967948242560096169492153426940458157051041585849639299161427029763243316464223253983660670824311099253875493078679018307810804022165613265686942640869120569482201081024749494335198725301502247427930344185476655809627379444026715307045248519744672352970894796799908901745677923862169325923437491635611487454790110278454478117159715609328114162642839832042908576979751341379017464967024723577533208681146827203267378711339087054641026092031912535654907975304798688488494358123362815663803387523593939789555088341252607868510159292152418594839532217019794204646591354489324811624826005336704069731775033510329443005317711952532318577398239234373603041432901600968721312748364075874374259682349103570852375061819392530987837154267178049567786000024223642515834180145810206003855086307898221594910548069657159670998089626230083219630862370128664656370573485170382362889092586866970955926597709341697945999843941371247199272510913095476146737476755787050135664283981101470615235736298447411574895909724766122538419211587028104325218001990782051724403628427093116515496747025578868559332624819917111893162476161461092210886991813116391797542108548979095442681882362359339436734828080608046196850690168121130428038344789181261800633316196704805968947517342814404154547507632449070622954388892729118853062954957070950506183396238133679412822149087624116368065729183897427688189434417523745517439486661231179804285377693105791580844920583734178847822431695946158136751926259618293973365362761251412047088589023508525367407823544059926771727701654511135868549976547267947600321666923682727997837211296051425492003702064575958628539062104443717952658559822158484506211223334642976819094041726559000949715961354208338902344089809547388918027840573694282593879550199455350310067781136149246281336814288387970838207664456522704364683213111823244395976230591004623890887776595205224837999942163420759039151400962871854556824409386724040728148099555934428296024899449619322221894676706578160592819714409265483183779449459461224452688560553946249519326224599781098793331956949631175212512366378236176824274766905639874299812757477693220562519775025735909320190290781548768188584660834386368501408685108075556160771655482268788055901989518266838140016432942482122674630362226714589472839418272935116939623110819299652633482331722656551281837435540696965797449052260543058718180752948642841028321006580062699702199594724256540790147394406048196124970959022349655922150222088713388923672338168488515377349132070525798439885045520118158315858674643849827438790930610591375752435159871806528701884323115192861117396483437841776701778637989353997370614076146269788116133329427490786567576966935324673538289841730639597343491276876733943428489507666151700600694535006847424208423306708840405175760986261714380253657786276101565870205807172760478327671160542846894850861137314080033952058262008789355620652028172504674820105605348406123905195987114177319853307448876276599960860309186294153835095984777515309179373243054426523566536676277562206140732776954577363272459900495430170667949329915380613427989404653720506167753361942473615017109745523342900792399525707427011564796276323181515688618541728239022710083901922303808784277740056484135537888654061493448388392892054345392827509560161841866431215333361656323240299546792641503144947859776667519851865116520817349472204615968609087512992312122121579382426795302608959512182181214591435892870493853375466752815573844378926595028062461066895978546668123903898393583499962035991453265233514231401222203394362875933988839373872508636134141168408767358517019319001757109105166869461442727966214980051498212941203694631191597030936754972341700766893984114357881200583787000022532127306907839449052169832879925572169374599321199437463227559983218429279840971437057296320664818113526488496198462165755278136530648907500612205557394882700069526513194516959068466864824494114348432562664721975325216317209489766664123400751607965724934271646114624089016530753320409098502362368662379520109546100078355389874707492028236959662659875476783830416213215640052772794757763673541622943371907606745702044079486702242099834922069415659675629610643696559796772331179645471874065420550510169624833306522539203414273947064174812328443808196126894965926760764094279464025052741600942198258256568036415960836314833679571743519868608691527297443051379230643867037549330847925142731496087685629173528247969989990000533382115665310232940644856745427308882255626154084028012500549391379893943781287766015225969181231859393353118371710070625363951778553331886499255906821067978949480367126679793166999858150023635753356543261996982129418990535805005219624331521142989955099973771809281043069326924918540711314902782299603154552606767549085553747784049933302478068979755838129261043064976266553619018395013283005870633568027109184763229070932221447404424864060156370149188743514859719323215977765946603979379439162555943781747540925462928823092610716209038771957240215514123493943329388720512081219055591959153670556631535315318912994473509815524241695796435739335535310847322543191598035064016027822960000636353803330492838120858238486607747548548029212925577841322102095539428843453851225506471795878830213009016939801859481886165252035203493359842942616710621163724631059668338876021096132221013482537499717631470747978521692471286214714782900236632723661814230916680538574680644122684061425536403159694024418990915843159279435230755806024929360417123687271188246025380586483166537195186147498999725467899640411187647981954668328875680261609443298332036947131008304221494444665241168595702405321202558126175755637592000196808446876565016825833506587926579938206682217087750749813074879783458961857918755870151589716781661010841020394008265908277048302013099686975424146065335324722509271716345387134106583147038024267380860731141310526143746736062545669740798941508583818546698930128915371031923623112492200874216355443567906235528054695772337065433641910508276158588620229810806939694439381045414192148679738120966941731214301598089854377162601766137243037684171191533502090178056630752703870657217317384038869261096333479080160752606102866305934694982730779071022383455593699900382696141128688944447845546774284961837267342259680088589141390135074101626214376365484754365391002158709625063399168773971582232714763829946115949474696188983886359464828403832066066999211443529629296722844433643608157366006588186387131611833551685602563303518890641686991447747130478167744618812886408628236201781004317747191712407326237985355669114703531772985878485126412212995990989570056222174428474216435167015436648065423804240592090359461369099470864365811971595563947142072334567413161392515752916014649165778804696682372908441016136180008679760654173257455013406688993477140826635563848724568621246057132424534324293396629180686714154914956807244340510149240573477006997487311348031826161875413816885765784498697834365825586837901274601982358111040972062113880812500792197294718490136589019077169631187050767293952580190127543559949005893697773466655526029084141701858124829987643347192912515830307928641287118956436475166781119209636051087212684277296500098946894350868847056698422336675572870384738367719438843463245962379096844463836629888956299253077166129709889742659236138847211350850661380375566118055835606307805185373674815994551571672084440204837580881948207326794132164196872506941404461707010214938134392453694874770375924320244164171517349435389752259703393808766078499102099014791175723133168951220405606224968014972454306503924992551281051390188461349257592643935602960858304062406703419589712468978597203283296927809996658311749067245475910335160616485793492614851801471375200995482391837005855762993381680082139619629217280494446614445208486418834889829375631092286956509032833202392424336121881009849870094919848983002398599855647746807279164790201567630345355449069956104124337089933156423521983485302786427864178700263081694607332000675456903072216351242044757262971241641939404828805113516415895590834759701987216839692267114588982192840969870463986566057409521015860705295808597304415473665351598824620069037517296711031477636176209064385945778876777877055910657871576888136636052708656902841612202005561424695469058926032648892518593177860926393203959508649748543343090978210054056717911505190222948564885665619992743060601390666818436178396417091134744613299609460512803475222608011585797572492839050809856141112520387847412179595385785120665266545127186114955198379625741158835475026675900367337736008325465161545131945525438459669657261957036704255249074235808601108422450651267508692450240650988018295938308110325254022098110832498579338504105538094903816578305661578760115953470391725574938431954408759220269367723885056725457370566067818732029001602188925699889407002892922694451950539040130921560373690276513289253463009038772003050473501114645125269647110957757311092507123749777047979043887926998360246659738403104804037631738325141721722706950743414457574144479436791223318004720403445035492673274049158594516679289227807867531974071129581863047131706369983487342371435460405792291356786902506130301911110192697311807362560803419049810365971478412588970619186607776030692565550360977095940353354189486999925026412120346982776895912390868471386911382643433515251822893680673998268993917747239429115950297165551892699079202099142989103310663657464677677132660045591760257674194041717124072444711137413168279556717875247018445308449961577616001466425492071923960769299841888847961075339684320584541719429231759065985189759066426388644169937154907289588376393689675247640218936520211115718449770757003463345070825010448064568324725780320080456043793056059097200809584804662772360862573676829348604439508025272884647793319393511408784522301228608060316948009731741818470670204043139989343096486705526168640996004321033398702953665791218850347967010175229240376317194936217147223872745313156791095807114088316771647469933669984908544826340748098185584387203346888833903137938194777703359403356909996315388247919128477629501920607009409626687338347876512979685220065397063230027455166748946486943072956230023068889410978149577006687294947910146000176468029568215805454337003582140175256157684090782972681636023196140410845866250772588095421409435738848561067846645008311654618396372426758835213459098954923153356574483365130954524172842065105841178157154016824255419529892722079790527634978388794335479792938302557434706831037798651178510581875808934794967194998194035239485119298248139504892521084543796282635053912878828747830428072521625197899581889596405812646055258208756318345578199766982866262116751951772136530814548610761459685865554124035755216084954100258117592381360100833448326457629512812219820577013109954122994378082382597508062315224734586597618618385715996854647247963247660731832574751024053819290080122201464262753009748419521114336638456511161928457814514313285477561152016112825812655833187269221392383158600282499685084515448499324093186433619519739618263656387545922930810260270510529181200921695478105119522085234170691099097490469537283353398167476883497390440307625205215801969032891023280411161613013614029904836733775971142280664745634591999241444387775181931226053345841367125611038165499363975952887224763740963901436240772961893024663307765063800712212156717312890446673790661818888233776820593316004783698137565877951962324153324851978091966646569317527423660660420689261624036372978598957598984615727487019129571955408355601390966239366265950269365764719914639631699675213395465961614780834352146195345417285458627807568696049111820481878007813800502764503249023164811864070193972600100736226319437457615482211491703880360335641781261891165316274099947287519052832451491521989028580967455621604151980875240002219084489806642659389936219111901353100797805653223712730088811301964698907471248747768400990889205538648146692586452186725070212175943077833250939509562601725700464944451676876597598228798281310670562877726460074760771146005245740836098506958605654700779353265005177862166423208831185912709812560368753892072474311957061420251884016434746159188263710867012418226042579199452563456291234205159732207273268879123244844274008053202607764694111467195207989552750074378250959477518354735659531765131277110011246138931759044599823669064036756428892563862799208473161001409673909780641487113055169255359921097602831240019830834518978903479982153740789271344541891732937954650675986893639019720299241213950041061501109255323131082339812142306727188192755970404882488660883830603744717217124423449186321869316155831040906082875060031958380495045861850261547904856756717990103650241370981771044251076987300932983066860324882583363307130417181011381519535466057036401012521768300659173564788956870846901585131027632935730132263978770487565132675109623021620138653555426517531159171686252973578085382156266581646463960041431773688693779110421254344459219482637763704998320195485696684848379369898917733990150980519413538716618973160026889510755628684264837924811902876835956764819177625653735191664824677733225542817260266362357303304171409264172643304938511598421152403317775821568311794724544473037554369518058318588002123984149555855943363309489040883350356653448169539338724072062514212680041845670538168106169009230969687930514875853117610142251137035426445253934954033287843652764499812637767687906167545894622919710361461571830179822127369225842632027603635025300943275599119849673922133817509872241324080043986081004471597993867630718886150974958970026622371293804075444460666302800467219001411277991956493261532271748668867235423193521189810572533590518713693265672798576996849033350315220355204435461274512426536880007229122243397302500880696947403884977261491667955316585307267559379014805503299887004678373032515473755328886631012915095910452163679328047703619844313230837124267462609477448156197684592727175421477407352446962179301815866939157011329277060236655275944685296019736106825092333928913625220230803690776312677158394626603276618080005805365942321072925388989039571320771362667324681732576544787908941920182572816703017368021248636787340103233819292769231049116536805245130939333091617127431803854084721223268021889861188397769579518226800003262226484088024109021680473215446621780418884717921939344817548767647987704149054933580706977376371656766127503614509964851883305784586436540163277095769035510559252690946454141755416276677204397594118071567875287725892270050687396365212107184536893946688970004997795806455019803930554939938921126157937844937155021152666445891714449947221628025083293400154742526954198077675243394131891522458462838162015788925085026693009674950152720830563956574640043682866843520968058759117541936403287562598723349185388266654389718046843578990290227088192473444031992723491136080946197527344238715660893674064543953669665264400815085619352782262066868085917868977231395555092826625686794742102429447186333958374441533938560281130026793784568232624076598054223404181895284576423122980739508763745484185784710257984181523464740888874099787744734817637939589913167799436816034179728203779093189065635629513992370724108307004722703972604337486997493608566326138553020586857624264096819134915048828466713051775530063619271821044252046186448324532373406598117146788357885426506155207222172943844160483809091375611478318534416460544943023434482119383596369033621679383724369584278660783196721554741204857842144857398115446204628389231514580613270472490533809746700064509774470283877523937365766336584344644161913744453926283382256188946368663757310373482592756160780347797937535748422040179545631050553856296815958887677467968330220648080908661051544202845903643269040405518006166575669386067649765861891784924185450018725486709474726188138231771714578681069394106118592680110997790156545724877301648636992546127574688236309427718017416436799378581406059395866908430983740721974416264132455763940982515091176776078909442451237325929926833851059064114383034425004497709968705922505843122340365634615171273304954417641824612052983445190399900107707239077137314954199458850433143876613130705380719907202999798313927419208889676450077024944147217850403167299487787304051194759191798431177701466214066977171779989910293466753241157263841682455767137502579912455818168461049887132927949181710503872320183991599236534028512394839476771198780433134213400048585257976283652940366007027386951250533095094947293788865432395033789354931304690703889634641646206826595663085356540337197618482052260155677623067121026544478198181724141162706905278894363333324572536894319450437052407909531577734504824845930573835579636361236091433232787715443118449907709821744662113385448231196665047020205701454998247600571943846517208522995932462113787303911673523442183922226291075325426883910060700656670028082748826266781173244080947799777252349140914799076411815848096253367000349936926710992751446537334989007132047120940621048975498859239533027606252607741056152667560925921972172305625689944968469703859029031605403091699385078639427913421199182504555336167882583847130101862411725824025604645448900871117081910252847678586754999984070829688327416839958321970229391287476767045349613715676803946503236703418802036239877124537665005387730844262711629394971898155426393983711079086240206477671253380266994533075781398688060463350804554036853218050393691796781933011149008296464246601501518106692105180412484515284148394331374365306545706658117179816116287599997770173588130082119615074043167644651820971386461788431842134888659414734161630401006963669125001179029188113495037015080839073802141763632598821857887631196277807021137894343896472290813731332195889157217933505503405109229357852396342460605835285263848484700892450292787340308518622019875072730153129136709661044612500533938218212245304343394299895119524598129837617456673751269181973876220615846063725732346038203619978130347942553968115866424284643645657712286557866208981886583028935048474838374909359272186458007080957104375835961200690014237692453788929405355370887673945801551749464232516219158268266377344518670397154370605746408081218112869932282084016711675167237858823182597200710153451023008436948164243913710878300549738704658448067884945062919954014704059977186422462408726161171268231895827482390400393659561174712328786495617512278271476391945489689411555004241811098026340962032879135420547020675256751809168617455520471467402318367953938924692201291314132035206905238966669530785598534308790853076147538019389136565897418615354726389736534520963618371601324913078580501940070671059688544687747488238883191576411104836780328174708354422116713425583095998790028228266020080985228882040053298217184657316309967718048249484476269997060144375262602304543890226950329821162763878001904463490545000379690806124851249290857210329779257465323534902364569071785872752157941036877033835117385567666177595585506295255933823099293007628408933468031533262271506760317852119810214488297977512678268270440752632444315236891553367761080371382440484328913735446972700197775482369418748595267656183004817077679619262086197733114659958223285587303223093782759625171437676505721800494451085902709929303998130344835871990805925248015337639858875393856298153783738906181866718987557393201026850193069779772843858974794235001052020698437647395529170527797528394110745403035458568213820945068625786424678074018633347434397355625640692400814770958885023431716373977518394488342511685926584244259926680662482114713453583988411593053713244977571215019340451650820881824623558551037364273399502464754020679815421703690962503511735831005894710121145316142897100103656604093250704956192900369768502985226156096962056903184941640018776657977438063778718535341400740081140292839627061509215723384499816839396549497841561955367919962770705058004945435752840837082626648949044569302986675230163658060008273752521966621244592021404328144571142637287563575820997916727105779356246396384402428306053607644314079430192123564154886439914954748323706660245179836715289699882361604101124577710683109803185749998307472440486409678949123271516683429441636858860464474182011518570911946205610688403653247146985668542121288553749516564569705290834482677186323981843264861743288708822898941805091552883568167104015421810927895918178745284847324767385770825011212362801069517026288565391127771324696361734451340000356329304283061369109253856643397039088762604363721792825554552393315151707797310260437508238167075758327144335721841427368847554731871191726020579515010296268591916433663496697457047333125673793571269709541584850007363154605949527929249006285048011034431218487843653504614490488501712208080416355915291953370463881503298770443047640341286906208875638222360603764752769415467993723110233097693139283097902222315325087425045290106696918980305296012760832388454086669195075942562516884915986285805053883233858633283920241495267981174150006746870553775247471745803619068862574143660850191482154095272309675301249462998349995648554901486050783265516429498187415884639793687563441887430628368996624243918562172561869169773206280798347567043016985407687259682577268715390569894030904901365883977057425703494679646622655169662159318109430913429798060072981491360110114638923341293673315226592068504803715987738902445696925719904638400219306159675748479940802130464876249890327201547405851987888522173896981997272884753966035873618892238569765390342024501936293517407529810152892764663130419823983914616462491504619859979456841559376785316661495359691442669059848213969772867879663117039667242176662121137216006810380660356384235627565566592546285365117571073242609781927557578245210294522812572569135826299542525234602293882347042757490530171826120476048842389963204299773400820802339636384856280729840188824076433921593706420925248078119427635186712300328837546331786544019835791214192821230530984196204305114404570659321588981935211169907009461961261175783489229053781294859987012611223026398502000885680560379654213384870691302416685090374702608035982557772792736221198636208280024099134709725037465789105435709575671820947189030423665569035668704832234420012302203650416085352419828016082871462024452429650847843747721984446553431200723223849226624624617827913590483379918607681212798832692242680148490953222463855344579709542917704917618177599465234718964391345280497871018744958894942918350791020176946161266912915391703782639330888252713205700128532584690183327867459977840627432240662693014588481456774619377123425033512779401172916629585210081962134738895598912519669350770131419680005614992759430375137604478258193881174649595996766329216955811090815940416772481569057895434846249537393373849703583158318403596243760061611860037064849910426248339056869649861874442768733788999222319100553459086030085673053772476188482853380788546001672896794790354142954470869832799825952004856677741099517513695083144723511851076086471209461483267075771848673321527266957905134157115249026904196064933641826860628304670167399376870873566381032669213483488042967700868325541548827730173808413530671709204845809244706727572402111833374033399958966201539820560479719931092579242038837543286340663550735557863264499607069750373830529338113498297544432107879120217157213591731923953345783239403242698119021701961925897319931007823163140031836964175694789255036821079325548807846032671877302506233036097853290690853947802512999789694607752521384203214180594775400522158844218794656385941779172784888473234559675673372736636293609131170239250755933162264090203576324983954545909079307826947285585955357834181477681003970531978277945528284304666564515024220902791938124938351910526671403501833130254320322019958799013469231040381470438852197341988576706255571099951536244742633616530958045128600604459642973009433155843590883930009310870820308428385217389498940112024900687332546702123323876272538452955731432571458495886567942332929951925891545222315141337061096524222975174958957964045363019170441074899154105860784825137150987098925100789672818725206780065977200449289100757617945114995943631028412870599503586112788573970765656147193438535950637042629570572746188119190919136021003158889492866760267915075092178085446352612958099749829711052371955891708624086966314985080789276194700594167205445174150658887879101526772219021162244664654148824904349955114338051378406257416164287773830763103013604561616872678034425935633124093789106477770644989544852341922466223729991235937737432036471397588861994073869318594995265361582943142126587407578289799077896860299395131860817827507393537798136714745723379297160334711658241169393119534642532547977435637821735212544800893898573953323851776241513010652167722272566252182754812539068960555507890038541482302129171595719784736315040766549567486582103592708148221828872798040371969786737954024950703339553053432940831343911958251501632596982524508847532076318567827425392234605401717256976561445535299989267418796889151609402704782923023165571012710767279217555955406558536660032423548743536447600913878532916284647171229131138627407704823420263180297758810436877892200237106375358498564037683144703582225518215843160099373479317556553028667208651671870789645509687311357493683586464247644282427343586127265937067825929150357268182255836103653619279884102864199607066786901577852153402056177810218507973341741169139648464938726158130244885684379531169428252133180303448891332884395809736073612116693785993101557055970180715881412625138518086362371677086001083007754790288088047431890336717983226037151680672937841105728461972050929776046891431682418467949046821217461531680633595548810086556821273471611055233058182007206973133023743531637969530613567823396832084380228376190216949380033339492659611413653876103477559848568831536512979653121506151141103981925084195224243874828011805192776800221959910693785511231332932882213576341175334288573814051430320718098711286183143239140072153618845022712056955275227605998819243343569440045480228698174259668623047745082061484680589334382966083759610618778718741052100600522925844060997418642319372447640279288079162763291146009794067960320335013934953320635460394312190531289382404438314575483748701540615451805077047588628254128195391260440123548632917111219071817690458618226014579249002985068701554896120044939632436837856093366628243837372968429169444128310628930238973299089485354013789149589549688477614644070970210885669081299639352444386092969554824612811633707277497591562030732923429297427282577675117452540247923514460636967923160374546097059423137166221810660613473763433686945915323072061364103747549507999233386578427237389117319520236647679071586427738255848542842108515304030356621849967582182198576160297525147384053757632854688578090174059288771956914690148295751473188896095069933440744151414555212941426756712052033046369045998372285020932191543115526185068757295353626402082486177603183534024023563781788875911080558367784540948508296496862938597472312336310864544324196780425039328154633310799755235337798259690383276190514541184054301791220130129201559323082106639988847731663379865275807619566327296151174185063110802054823054170729288799666198145150821290573146482476912742749957369066186031833092546118334218168619490329070011689083754907010482069220248139120672125954268485103191652729883212110253861782772339899525884024909658845607006118102135548809461804269799612633828988406572116452256688198102497316286222581114166289824853393735695411401076109568747049334721526174971271520217385695333162192682047594567083776731354231645802726781043661806693895409974082891850091524376214732920861463572116223941334329507313607706451949442425459924893436606850504640402103645627942903390948408695674798038906641757094627746209093881528851091810655101637758653059230821843528053280150989398616857389805099806331616036273471068270376124735429673128307633439412871617445942004739527981457479198008117064436205414464850860397973868738234323286159736815860660190896967462006792673292329424210905445721180795869075746986873699305500127041082477139414133936445516058023960454990424621720790902887478052003239295465702933465960553981640855547105315481183111703722908909161948252428234934108168097554757382291827077284255638046333190306377334069130443781088804883847109819077965040143200747460797883584519961072580189076185953185667788998055949065808303345814583239818877393362221046190281453097122428314535492942449954714436698746936992177744191104220041166313168405399238026169870364768017959525532574166941200081736267395957327237901913861136775779335801675690157399368491583386621386942659593093873937836507078117333814645093957429198976564969073923834667233404162579464165269924308155985271936350404284556528074947428224056298682853936600689870527690838545155013227552940200622223289809381381474268087555983934437281740025171351057617973832697198950754250721194915027201530757383881440560198076860138892280492184751751997367768767115943216792714371251050980908501592665115694531267672815309795878300375131351014445503078274020335154565726540978090976152620636690416497911625247104895829805496842800630851062621738485019074729599856057765066924264969849346567877292294998538695798623342097354388250795234207521380430544744975351553747098768739924003143300719132721613220935193916925131695154213763530068298514597501740035089822698909757998482901788219942171646340959870452254248855948559012232681489789773883704187643384390918267029916645394389432440020432422818016764255670339377076801643416849767956257089789699163092810771810821106895030056517519341874628502473832692684242657522775388589026959033169038700594916730528110138674493444045237625593740734405162296728342285436651237587612622694432322329480870745263898352061334097479774950795750859881723685697671270941255705562119102364530876349085021910401060196609811602985566533925045997667277059812464931903694150137961411427383421053806283822536972141703044669188021000480581048096140057291868078554235157897644634039435740795878479908442457311483267644001496750111110616375988592073600789892305233275319084025805332729221223781759376910335421953598411847607240193200183920234766274042259700755021714566285464769571078545302801603925476750323584118621289112621646858962645462985092748811089813399707293473624630027388382360048047522766240743245701432435212222316632248169667419869246793169548388195810978921415283822917817460949036459801248038683942197603957608660644710368375220482657909934988427180760470515212677761312873878128370602124662784015356563138784611347884092654406355911783327823058514186166808018406615656568214049056043699474038043642464635006789310584395134783305557907874750474400824509437871607323183505928847863377415848448368250080031641447446929927875374460633376129169484484513717955565896862678127327554511308546025212087699339798601578544400090958318057286121668467534763442142840461676130389744726213989304470178415787864704115952246210702746877984698958388100144349796544980605747381852513141431295503416348054761927960591424071569413608959601288894014196058655013495923340270194128923562900843420337317743761868796936333666493475085007865225940910191465322372587090433125311595568602404046931456810279774718976809528417269295067373041199410545704017203846805404781112452795755267586442918052811645509817994339940155485214650765482541593413644525601053532767993197436687921369483926935027091782389029328557493863837573535399474112250464307286238857363855572513597261143438863029971640025717632990369189590181762146552223840985681355880970268344250036842329314517223082711116285605053194882909524881304098729473731851363643846888520396976179575815705879818243535656318104229066719405259335745549081263206259051380875851032908558129131094695850847539231878802804895857199308921201570979641080884320897340836816028540035563184951028479186829975981636882361545039120730691626029875396959464522175898898722504139219826417507398726985325187651864000418793996862090905964370920985039342870231567781953389230480249330335777284162822346925883942148537661509220542752564256215128620346304965067206516831755295359881631849036040946359818933308932077763370583984810058484511719871259975525005254012004659232440632750087371588082845250603998480851892903400306976956734615858630822787044835779564346553583211248572997544733609235115953943546127693533890889896348361080130110030016824635375488678731750067422340607129977898589556610359126117736570553140558986944099887413501976483151304542995449700794759193229416591444998611230892241139174203924523068925733901043246344567146574569686084544555993555776357610631499841915974671138705079328164169696185323235993975340374897067479086805384561109485455606869568417239778555989225910187356933678444219017486835880460169203475339644297465526568682785222294486231553800215462225791636061475592330553388264154819627727180555030904620818609303836422367810405582433645238735909553406315565554805487223181907888074578163705301953607945488062093315709903284071938739118392176027674865833479015762529099824828897973983571798857631765193262924629529614934789771742458661147310170379255246652562160094462797843286229820841539323604627371946553084425036565395158409582954625189679531765794893662376750457149642717374481175149012560743708493868654122704378174083986681189233493440881540704722354136070137276389706279796813401762567133767880596625590703385419024942604739868757532810357193482548916673424671392601039172024865297653774083339193897745292438521293270218722611990890517112234923543562403989421670990696952469976338014304361146632101847251834471565958030120020518551960721047850665720894030513977873797310801646032151516369618024724445730095749012991149327461447456537012986387679493342405330400583805147159937978847570799198595177694152049106719272827971777383114130526735671010213122532899883423005356784180595019036744443298306292114738179134354025751579627302552507149325969857890373514316386698276527635692273649182593940424066577746788604823850809324565610895036265159266221388498677137684453375904057787969555727376165034759439053302886491992184836782663515432403802423530278210550853914582498635282080574264028221780374876518428535754499250344659801231710287961556306404284607709969090170863900981860940262693321779419114116959855271612618674817581201484529385147036079944390868251812572650512427886749008315252997755838371240594865688166336802953522535684904375749891295203408766536416118815970641511383326482749812194307485777012068073659676370904449435676014363011197349779814572879183053205474466752996600421356246182133465028044110805615043067426260651182016747767776107538094255625958239400012415033305938957312456448789607433287016417497886231689730287594543855720622457706373276602780434796166895195208040057603029069444550396069466635213623828586977117186243468136287817558100169297589671658415163513211677543739166435528243883338496972785794893391788764397647492009261719743086326758275519366797723128682754864770631614922973661193397588497037149461547271840444769228348136203254078152780808260783873213313082060328259113571524186017421312646018649597921428283910161626548935996923141635723960131935312575565830642469489308389149334783623451591292980782329054456293899173355308948861741951344408021332737998153197134681175996262204068899754509112484027835096319623678360661438666877435587595073978175910124911676691708428657789077447473828333481754295881661712057105488881289527443386719577178928194377516721937869883524596079720511341406752233637730678029108456736848389120968448360066496124086313254443097922979961956526228697161835901467748373129921024044723065763433541484634121092884604976776736398497866448317660687466042589359613235246779655247169410235809692573498351838735019235575671328073456177523724302296273547250586807840766750747247163377188294378946105307322898740760967254598801047561271344048647258921440189497933007988843941875765906547507549587976964180302112950427634027829589759476720651400145339356666596564700955966523546666473913084990661591249100911158011624980168679862488770941601800333869200652391235774059926426084665341721345764694420661146521434786983012543488856138583487404858885613531931377296640850716825694041899942398722464382476382718609815063329797604511012777457056713690596772380432124462869804323647450753821875493399973058929967833560000338943580353124637866984995211679704366012718819358550311872220018444824610821406091277982207293842215411084993048321593037096439712340932168055404783997832125641908199287246559931971946948994245333024936797252252503278750539438268567231854172998567312579045750219790100201956172649793888669456616939329931048819426183903471702993140848401432344536018891915465570736236320688747666129132126670844181856789189709321634015277689970121460225551098310910231525985023426780111775611070704602692791350083739731542997251857586355971320395470469710275670368471166758367778300751900519271791832583678333913350046467077281033622778695638882884657268094160424771856031220697869212703714528761117830335920235275738815431823479894082173290199652066175700608991066092743646414490308879751346348630040625674462443881298971840987890216988091869506992137688263271667419020061046954630511445369973397131734693682724945148580002885121645839960478318937953887097151833615527453105721888785537107993723737023538997190021568106486940790254767566972982007140840249165945550418192029885243864253865831145704329257686398450714473186859277434733258704749301972813121808113978788372924285104155280970371833976675678738906806531368786472156572962484687359772658455985712125620181033660101984729794391262066162285964552932538833193154872359699806506612851365610185898428590335977363211659454623562020361307341982983326497285254122164744612554674382166906616617618632817199460401992962405564349922739713308950550184924945826109676733573406049937516521194958569105661958310095002088164524040585091055658227370741326561517463976860483563139920780374695499015582360147421996158917456293881338815151673334601623772398617525562241878034089168447117772353425286475628275256375605748070244376287348620106965841695801662129393491351596795840550551771880302229144885563444623723362412910077562431818802984712007715627856904545629892876537168030159538364009861754967002981947350846354256779463831062175842001654950590638441390401287533643711543658408039864448611134990841633506702806086104917595383254653020877308974466793555629777658896749794917435705741661984636323651613787590593451666072987454739367193216672442475523124455068832133308153864803975322431466988002622210845783309069313768031603197694862275748838279949109750670956934456153801398033091566933278095756275512415860484058392740708610339120476431224834249332294712235656448261665951922404952968983330200776774912410123848779617036857507216648218863041853181461441918022248411166115889541274795650898888975075351550960713730945320925135238280613125421172191418575071524075933889161806430061892521864627580035336265089038094510974038559643035958725450020260597291240281998150126880490542505577055635225637644925584858735829063403945456788786953102301895689851070775324404084203711079757744181152400196540349273004988702875702637295664715508817854940607138327193918987117631965785016665494912357963351493998431369324457342010258972134406879539360619439442877539128770475851031113529418233376185530942899532006045085626371854887300144034767669507814111021046809633165693684056803004542916053462158543174640083571149349137741132968213143583812084992690731646528443062988727749103048469013386179007635099315591487704937051980823230504814622317808862943583041992354438323390968334785543001583924946937763074024405674493392745601457336226457522496677613446562319304583867166550934919766566942940933605924991119082575715141848578685714113531818146202965539848574777468330916562712525143771368108252793800708682079996276289538207327227493129957628810129130238626453880766856978075282057941822509852016740233184950625380157378286790024979051177919057120718267308203861781584067876953802217140125691560455442070890346674310448567598595701872293857792044697575451895693937934729562412982130974305336993455974021306240578649433208316857835449344886771867681768244113295995061381564240487650404367626046025687979193462177791138646114927125524900392254385215617276539335939408318733019890634250714486915175281891012512788903188070382240751351369198110779997273460559175168470205862546116128811186231567276881982812624504735364460070629331660397589399777852398939083888205103247432902799048026904541333195035521399676470016288855927772176907422966730069015014006617913606437307417099624923103247685629774558500950143713085686081086623307772055923241348924804383585338019014480759225823232660597670262661972369564736185521040441020394426420737616936063997353911176348741980381440437749851261605696456942280081218911981587013452038872615283538589696669803949028013069692306150819062810930532375098574171527134763273363893350672530293881470586744323089091015164370028092445446377896772197936578529993259341338187782606087775383835443079350287465823229771628410735266081471631553172142030194819061204355596942436530719583242694377420552243123640423580352781263004670010886325556019142008156867694263860705709665476685854854392781803130674428896433838086890022493250974787814114595236744531678236716182183904165510786742588704786384139704984593932074974392661436385562886177800952542301461598109663411571804923346991318795023754218435303847570547412315776377013642213041705747339271661937799859787804092268728344252236091652101483737946880971714169156979686250600436107349554067186562231716724585504172121270898485483031410349554602783119354979385555572141283978171414135559200719978875867419324592491641406591324780442276480826041861965812246782736013627807374171645757936408073500650841747924947929789526230599473069318687813308236678214460733865934462701095884001322702602151287011767783133228342998692896820852567170695062080107657430988382123581683330440379139946124575845938527304242243372353294027422475291993455661191909393501095611009080862819315185052835891079674634409697212312516401229700948082018263437312109100501874274114800777284517304585456964840695894297946188693587219872895439454792691241317894721532418367508430342875145244838704281966315298902513819318638346820758081290241917758167101299602240154690217912105494566315708574331520473463438686583360496799213390029041659703667052003127305286190426794221003379785580818898721027576048973257356384173401504753890645967312524434760441686745175782444473901555338015191000389881226501050620666916582984824681107608897531085054299650760584584523048767762520475899869549979041092231177381597921302272918837201083339960960355178806201779785679854221795847837886279726272121988320722687948266236113430626345108065260451246562590016572343802295829721963519463248444295929525037892103252694908809677479705720753323871627400434626609487516594601500386613674822917754817965838089008181028550172627797310746741115349173149536110811323194832414852324782817796162515521508627738065145535261653115654770733064628542515746889328817117613068450733044803853821916204738226380273103350421674156743882994737779124974038685516259791968258630741880227765508374274763170761165044570274152885886232722387598805399436128488087500719462444670835502445895447244008370358788977487758433822617419911087527964201113127353098600885302087974637610309851645839987545781056530580473682976859146216883789975157772257162134262877113439850128394298126258251294721494458631045483712524103360642007023872075194705833149720861311337855268430392651350526181984792168889840735161042459523132084906313588589191878278569377614906350123712998633163787361790190734580840906315444032912165741600106010983111561848665679637498201699152645334209525882873084086408572071044021758361864944739249473286697235095405970696975264147932708740484544108491344569296248566261315379914389665618576163323932453266370204924685133078481576834106354370214284190074712133657212432870294227668666147112587234214288845648348745389681357983467574694957463342489853370094502545645093360113543223792372571045112499681100530946319363831901078237583816604002504156499632612218691530700330572519109820180724160572792955793007911344991823208182731139735192769219001424752698611672536417221710698452972549884881089553912386136908320241984685527949130609368506222855234888136403538627360899098332393878535067182644294221484555114409465855338447328676422826710321526432727482804323776332249251193502861225796965275224710929463835893864792593426216207173695456153471419960199209596392613277734110155272249265722853244934245555328842902324645169983855867612245799113129602132636376712190359181226100088503475081006144847734914793013326642981133044533697583369992340735281608183024321029650042655484821854213900048236809643986098554252819554999870755211907529863974569047695134775880083781852300890069378175062834979144601879752488232423099472774771418393950292676942650110907400971828725431130624770602753702618738094890760095899956449117368201336894494477576848655383746077924963852282864655842700276258882069956630272704587548628450835627266028276965723886415828257966436662943776535026346143258986285950460560769185920789580447050810278200395112047346657246150834442468044201033496798471584464405230403777379818900246886111803226459887680744214165446410016520238428921235377192867035524587878291412881534981821514432887726592155749323541406971502030850375630454177862511650600314839853146475369548043734171097285281088638248030552702930014245010024138705922157824309430601290026563181646610611066114806075329347287172237985840074899605727199356415895348485871833476551811909524714914076881169888149034604663544494890112554908045126247341026227360613552713690032184203005213758441421749149783863743426152842739807832913108159839677373683439389450293912687897152261596257000761558099456392318082377923128364456350529829923944407118845166610992395492682308032987491676654619754670592889928102096862364009863150929984071680550155296625825151905907337003200555842031145755250883483845972836390750167124905726394814699921568146565621330122633591918020466059563102169865886290198061124444729228759075472300839003123162394255610743945181180696855921328900863455033431953648627847516148089965425655365798078937152125870327663784508298962389215520849110287666354905413376312881867643890179236267802930862258460228320211670847058425294727352334088242258455320883717828528492036210765552101291052468328180200424808416860845885337428304696146285987114180536418803687310860356676862532363330634591851159411985564893589755244376100438384275326922378171680988141508953698867870906782079794669977377722990492468640956865442747129362771288265725488926862101233947809228788301950917079918155122155149178038341751894470929020232013706622396222389359427004947291846676038434853109111448526450511984396034894559115938162104238587367436352947787595199612816632800531454654026369393604520131217819224042883564608933639957323910988201653480352038798505433324027650179973780886301107003999860949684396652580404997059300083539940869380431725613421123085170119396616119220212909082075372851732492869158173187437726351536770477906227073648660371356823021644490229829824642258666341897758622004223625842738261657320565686867141734405608281553487562256212108279317311109513006135038341512605985151152895160231857921036034356520117807711070243418134008679387441126736965509431261220681385006623360538493978107593948046754951455615638485648697058686175868584531889415754171503294378939728000151202236163563723811750889282198147811778634313939931090967074474377210335489633714183115512313617047957225770823007524399860261436068588618192571898351839605300038866266393179369415039051186197053956679927501637916634768847257159326168736384122702727515852479930371838335859989183888241464076368299694437487293480327876654275769651191353078215372010394397287231324653106175236647400777256270181993505506892017517735627365291255550723207341930098652817121121217005867418316971831393632167068957622005384726178528164596762711537327410688017716000402905850474422625927589838718654501500362658692281169602328297842638039351916239118026244054139111950829350468647607228184040404265897210178421986748613005666884331955957152587605667183057700198149964183347456033512102956554367315643559298868268195838875893682385100551173243236569873816962082683455561733451214878351230407952314227824040277827435975734015576433775727303184985890861848067915223501464071477284824433120208803945989743840737782463522416196799495420217356727739628232996150701513762967842163494508219636649379286161905129947037397830547587322953010258872375282075884858681802218946243818743875823591827877015484549355510112204312139046587020808103843209742037340147016817180006710787328335540649510761129222568118645124686174061071469084917417313887931422046519987795326245939431727833017895248393814176595133714834222088300148061848540467058228269239714869717293765858056970033008460108482975006700811390959127678797300775622609030488388442396617325522475266428282926902304761733979093821184044705893100429545855734762725335706321180651692677400507513289357126088972272935892411120418975154329821801771096247056466960681399113557012847445659892560261967948833495582845303892207932138147223904726442742533747505731608937954621739077596221082459391802029247971791927914788688531450218900345426986538072697768818129901995223206232173985941785019227797250261869170203884254087776738964134776623621017775558275051665096437718251033315672406389439634282788374034880118039754659522910000253653637726085044063525893203543760679972671573244848417662226991981504992782335805166046724758259334492351167328939872340688109381266025467213941080611956750846411177992404919869448873474635899150905923608338152387226985026715185881724841512872277918424452890324236599634343645291116465555769942547825630181470586367091920240974526059687972285811856004496653621577218709281621447840740837009252457939660478090528762604468238915779422312073667456737329065783013745446777458905716260609032807403672878203929858029145353722542986983122870428025518913240910611082280743307166219194770559368632545277465491921164660547533786789785862065382301118187326197522744736483224296427883232835219926108395462638481154455796980880968923074910485388264175959851251703293534636665894315030294470548251986273342976123339585026428368323338502128193350544721151290219831119545941899767533887547996856715128623881125149588946199975318017765792314728273879967549433655317710037939722042538293891822952187550789081690509101843758088107719689530171344116984271331112754217024686999123173194945795747697709453617635188648504696139159603634068957437482721136395676848620946278443454487445324594170095520806629914106363116390288140084209122787581131171709159831383993849411818887580565182270866412128954745156411037489442394633086180841411119906550952828576187352683208044403862019788217139658390552785395215707685861502761887686295303701560775518820886247869676819681296701880321763182842971397596028916682478334337404048362379239318396710761089271288623153097301388434947158062098770096552626402638751093528954103890154718978832245759738848115663821744765890162208935400787298586078373622580445579393153371626772318647622190066327151263798065553559964291807981639076294012339227199062031351370333321465535076304702689852738633856223082092960553685195103788238283996877048657559162534229096181354898296598642432892905171355798357885988758013117020695572903654533388710031113958495012661568327350548592032982112706982498014149819235188343879117674480388810212314685183045905873462883467519217849554415861644272586313917813882120124597358366163921335721071826125017190599062573382796682273086267055051472123955641044511958800503192711611046209769365952166246367999636951987752106647777957924984314678580535500416345480821694735290146187402451713985111540787437524836990709184076965548064712837089248786456782221625075983928688148748751456607759397461695573563513053577779814826988484537913294510250812088644710979324474967048989989072883740220139817777852888169508148677876980793569063194537338637439606089825704198338768251219000877683881843307085644680046290389224627521207772626299923469540938289639348052838463559007487092233327757129690792514083821291680925938906517307393275306080276170170898453742203168011248840292123807341742015018285674003494035596986620496438928322225636437893944341953280196235075025107616089559629551178765662911729739029878178195523170852720809855038165769079735267225898966418476900834664776966198290315584490218932410887582064273777348729329280477663306833260619376294937193201358655258114911474159596767549986437662855621675338915905111218917022348493565624712992832719007398452142040336204715464433180233481963128207911709279246870367237237892378170573656781574240749170249575070895677427241006878309661989317869257453346171488018068602351486833536687184778506291691475225745435614348746638807368540782273343554950432864800150008898565998009802840817549073297604344307240195471992817009922078019025202596779160452461157266059002271595720624624052295876954678512118857400007866986354309870905165715132165292606693001639988314712198621718637771600408518992104878432801495232372081078730112585382535210410418350934479744838961208265971546034113945242184872333929632533198152392155104112650696179658253718895960197115172377048407496376071722752094448939348403438873028445533004932436387969054943203177652935525034606007482500102406779156605392724207489100059212865866657629137222041995820785288744090013918009221153892633826877263063994588286550737636055248505050651574187138459369065994804090270345123323378188355997163682812217597670015267765545622130092263155030959756645143209615572563611387473220735858201190736304842480774196690601298133326283407406869576572204506397707866858640841902638198722364184952551402722475749948173323015064285822714617699534949731536389737100139237003654075365634531546077461034058923988523995867704427713638840842650530266271849159406598059969639253887589644603730429648440716809963619063722132385669167484573090889431200237508775621165747562388689019626192672362212518527549827144669973387755927302143665584066613109685088030142636979073492234676339708193058011788436385507876451808537897102061048863262653384506544628244264392690229069913818735019756450660875810970760396262628281089770496426509981063579399899550925850155168772273893567503552646665922108251530015021350893086916369843964147656609753800748837263050414195029963344100623758083308350537045261391581735433488630972963420608953914592204835493751555870539015433469914308703241257377292468386187286326455667785761001426209638184022388451575460536221848998546138718940025925209108037811477263805224510651230873284267507068437088211143893123466395062366999305880145680579782851330614443809362675702249507818803143018180403849902426900351408444473320316601842082584594930125459274771458871604533819560893233477197453984606046414360303136058508313115276707622535718681070798072067992864976259076482466201530686440604595347933106311437628798322301947156651788505938108004468952368135770303940484113864041581325826048744290068900159679536839681693142420015629981380247606548234414379016367072046293454833073865354535599809617815447135709086460050487406029516817085881101779635270850816075194201710410849870791361029662401233475726171216227707569054028599389096022611869284993727176230400078450405549830789932644173419703287313275826261151477146868987028014541027413211005713310957248529760185896702548397260638069226828079141900019372784390430227031298750178379895735379929227332110895123778760849415895097506558657152071406550324773530741214659224616463850482076613256535707358920660713661901417126123698078659367284603456671003264760872348070479048071626867984720848220596069390254042355670304448809157247502012156516650743185632675370098057824480665737599923001091436112308660939976669266611306574476302861057214633095472298374921891764543409294580404039171372768241267693918893755916281306637294908068036149543542987883953812539528578593258548736140712114974370146871582699897520911655286311857546691551137654902363999007350201631735777996831017843968268223875681090389556600115403557163184624616513985045189737727660992475911125031903613227287831780528222120940987038189242954432956063761206694844547279364223868434587913423185553567355314199428378279717416935150056072440752757121659080674554297587648007521821392462618208719489862020155908945826854909285683939393964006736310926931057680979194884342466860424090578813027472224745617958255962082920721197641555125084648075501925939282447086078313759722003081187028597370004473677752979233854619939457859810488580482014605697973040712942392789483907977565466520260797779911955929661188961529439204302011997383168909740274729592989775867973199500100233120531026760800239456249240883483032205278591407651535714466891108054424096183780150652950546158016456707124418394578264395643755741688690925254998947225308824268885959678736718111401926040251363475009907255119503172275911428611958378950843384032609248836703519402750540164526147897560136459697319859615526659302435395575010887539761706419636436299153008949075743797535163965868757235681713191833006280213123970573335539323030727065947793712132955539192729383178916256916910866164167517985876473866698928048528657890264309157530204917607025467748547185822299196882550457607777721086196383879050132985977379802056538172813666694926303424567322356603754495322188045675442463663667488579003934025243214611526898227284271380689952518938512356468321811752385482239700091928010143142169444532245857264619351159137434112688013114854637312647633554876810820689209124897380677992028293655253444680372795564089423324480667616837331701152203921373765930573920939134341823282490330796408832976383816093555030135196170070503544552272816527808023343447007070255118544629340015673029521220007336401011559848536240525737023242746296906878864649408087302558606636869648920623422003762805345199497607427015984184071559745093775448850907889765672434893652240421781788827794630575817139281472181774502471893379204189932309251106467035523884813114599792385225977315564620049378740071863148966472458215892347683753205597861078973140818144128412576881864405204530987397525737128317871794138362019208824686922112812588759772095040868791947306846649834606423126908430021169339283755167778633489792719637341238941546732532826655149101718236856467715586122775532279335310737278307954995260309594143433630035617980066057021109171394541496595297218983783176959332757275813866160618948581037067467698090330161967623876296711304238649687377249054118014119999457617348300426542338129873915109191132052503446353975985539653453028309361171461595688302831284463894075480907706822299982798031868116043726689373670460325445519480571543424498982819824370282944334848388303991212639200835335772500640934972732945381712622094238717270680597624840920427589324360217385346049785253932311472412690500281601555061247685929815761650301206275457653906207602756971284623840448596069630651806049109190708897230788319040683366742013769549115550023692485517196305061038107845811544598596596520269466561886984242614195957447622138611253901362799244974127148353768529440847263803517280676027775012512963222863076807777010985219338053490638637100794773966489449994380018267231021346919186532695829234924683500672622570948543624773028965412402976130317318932415684296496570948883298452110500715761218653947617520984065214389968798619559939928888359248617322837056813570198688789800351134761740552842625762128867024581295265172413886735342822137008804358582997504885454016404822595428396702064427260690144271228124678355538845472118831420848355667949585345940377167869763230122344203968302442580396677412574962011101244077999823851771671284357209653528817832040950518166772432219487495421026507486963338163751248068795551886093779460799640062682722533181882918500929058081090622558887088329388586449095704961638211528726073556279043663252087290169446500013639975357079383933510413119841766619345506265211503818659973365586158956721008572550331339364348877232447746730535408840824284697112141575163847648434660322160510422789638548023134567784582504860775068497771793249868305468430791619714370736190910160251158157633117131723287623694993072473974921451830280862934175823885325838780678633918200012409846197422652006579384397220326016823408647041403417898302719816470407147291729478389766371710106642646697331049095827539439246725929461062131576893021041024205334234661886974908267975575432359638432220842045104270754658706154183148362496268635265124244300190288197235159664091456029351707412497506226959103734279141067476570564696875017591795394631295419885707330656431348932024299558801350033805622087988873041448176150237794016628406079363861008902128933795235803916434368569324625009238443925149612366751239364552402655465127513526064340341637889283640199252410958306262789392836983430566254664433903942862501114115359522568943799315599717146335023542855484563947023276910394543689655775315299426153162822986973796451803919845488075236969939043255834544796277014283162779235749915610624177375761536789513423756366248300689885716744353803403531935723328011987925440198670323874314821174732954794697033050587139716915894547034883500253879863458839559891551293794429328929923429076773631372303423741757755872017941963098004007770765152643838514647997849058590317789743435378086725978914663300729681030760633417122376868045096549188668760915819731194704936221024058816853508701542914182012040331515026924690001320797989357766474648460646645735416148683042906394395577196603663455926785080021103119715081749609312293606852677040255460677523962633219385180982359046827480450115866663010258616898819989879506643783982200058239577105722248485287864616306551563527106314310323772284072629577850315284179548714491248783049182374814664321015913147349503245272460452799810347658447044306667873779581969837115463134549219952724850810365217994313929352210556893130486319521900080661543133131498420230313475828979923110249449252262574890706885445219604549273717029915485757177820364621221415916866714128708258813419180453921900607756102414505855401424703546617340308164612716957104608616972848957436945410191634280766841257920746159994910611746520810323299640122470120639119236094945189969301867028936754831659263036778892551799915770758585203398861732398187471451760247486846779629788748573448110991544721120177983778986921812631598841766572569511120154766475052465305328039383054346615635167460706566556865795823367696798394155879998939156227658975046608900680392493912174701114321868990174083801337687903340776659176539103134628489495071209446264875362661623790175086433294234270779306083647348076597440104110429641938400762446386768073630874685475283643541941529112642689195634396038230516229970448557551567226717556970509518463352880533308954962023357198950372948265900255946022557517744969814201375908059433498378004259371915259419818273782606710012443269645852235850127826360562127024689796229180946740130165014134960909132636643898201427169467089271634995642379054230921327262362332105126653724798878421121860622857453904697012619020211297767687182588037310050741851728746781315787475115341348327365531258621362965930551737316455313010781670572544288731033706034493204392311172541402068039133537223193580129615065221914086170910320956075823560720893490093484449321242878910734629397288160694610214551201382168801690852077518156756628078841615589004048568600414443160227007238870533954417670662462527068685202149640759027365318823245886471866812692754046210216662853094058244193164502241297954152786956951784362375022709727584178096461529056463168030938511170120870398294348088952627072036084073434630638581268587853259235936673066273005138496419751948840850612889066193237274670658842731755992859221588602312357210688103053444494779470619589653091395214955938808546296672721088658634524699737722739427605598926614327119448321403310616039244655024452017789516544681569676060353900068044786920265746864068551982159754922577841329010999193196129591483539595194080351637311700146025017049557823709812752535260077551411547034397559325277009541533361904842145577696310671615636560586219802814031379847698781297215397459185804762252214523501999078820926925139490987550750980454274394368066899940567349354747667210692669355653114587149236540687150197911750577681727564443734538433660414243840362919971739347781039475930206873494990301524910605884898506273104771516454600795786892393499415666566685950640342301934273408323421485917565742778198273138679936336007824965971642506512035200223720478654574385052995140655376138824246476047786080793853879118223743633015117812698359571102380880745549797054948176530487865970758043928564087707324194572123857116098667043796291287712369301189199973365408139390787023465709666151937759036823472830679913157871360409158053651297815749822888366861526299731030471713681324911126576411167604376134917160004669524778943408282823569948361996591944813143554383324987605937975685308038683317705044506910847423263489453947152889511446497192126104515114826386262898886733403259299268729845738731684880883328378157540267385101466455973728131182544928525014255994704475233471321245488735469274722781148596633484896179643796644042324599334116539505316200639977186333504643839452200810170833118145907691163561134749851048178075469289849544344754546600706896817159510477388614872968715722166148442050360446336060809662978501363860522347501726506529897293657521997093142340364757656364867664802833631308738820164887042835200643675879479889639123237094469400039662797747252879232177106758657459659572803963232194400854422931769841920227547327303975625332207628693233738173277905994177243130811726797041706156793732454721787460691071027456515919997891484818781492355862232634644202079610770851095428837507782291537455894673793602770345530143315966685222058428533910468349966600105045098306935459765015291364117666585228076383750872776283840810148405582735895856688710975300579002317947974836648939299693117675804026745440129481608461601218085439694438922678161005820443053759498919022585418086866549889046173941545499933940075832868632973750973823058712627961327707240766714836187328827416528595488259536720485565010493856605779754733378406120939989039987362768147508417410579923815042421308803146957244820925926226797247364950891914556196729151339755566273442515359619064706942929454803256318272613771510844715959737975761608794766791710968123768310104868815053252429541815492713843783012482592166401447417125253492870180588283926155917326261913469118745434054185558287931936825521843657165217600154035942680522511481122576674851681061992711509772063144338739010064064860947492179994013902971897471819679362122799340188285904822292190480797905183958059915400850639968208421267025700153390740613674152097323038541368907442129465775308192939887957208428437519506862253859395901362927693367820719492197101617227136004014491620692229400614086726276048217463504187781599980033365156474972927796002994788118054207378966058202749591208794179770525074953592458459602372081517753578556130234202461523530068577336973722930205872827936294765823375930116589376172937164452095613245578599427442483842592114966226417157280835940335605215418878718908489641904748278688490256337842071058565810406619470390220151403363097001141681440464460649368350086734216915408803987315207192901782002021331599465797072530474375435587542348061825546707076113142495321474915483684020908854256408276443406188858204838952570602979093217840686711728821989856254508517603087719285483874122759173574432050413453509997109591451006423446178013351550751380555723775361420861339885847490508080717575056126884134364071142406349630507805757284603767537498749894704753289822159969507633362991893792428072913440461504938572686188119447239886039689047605916449815407037789950510762638489998283584409320952313982407686414573234138236281499743022736583654095556654243151997531377735145385529782102148174744778492119368424550067629850216001196051104953313889063745872073830518580644909264000557091159913051599675383464223088490781572860471154152561794237531144838949810928950602982764730575230509326553736008934536535360496900213900258156197041946463210192027829429405721824129850687253602939130987340975209444377497781951773056437654243318543515475158700393373830154405297766617773862685702728866930663464235110567627581500880975665048737749841003927703900884271950916746790257168202545783189719113321240638286099202132800279583670776928936194693408242428186838543713108831019972766304539400943053773628329672525280924986351109175185494756379023896041604178916466407308514142347272745058304827633777981138404263550307488657181996293053638655394811436238678451164832273290590882619717190917949817085031130104295561934346923929002428926594763401937966520267471879729556941816575142720348772164677566028229675109616070720166692630163970334036892239158283084195864060666833649566371234229915113787274851108450445700875605409010752760327054152100502051592031323930862282666135504211452095752378292684685281384380256222657502063860301219608082359910565534211715064506567368021976839657165481478134860306151538958782372683996299069102276790882946201318063067866185737098597129155431618304935565653869379897851309061990317657558756743798441714633005730133980628476225883660529451506150402474557907957935364576364797717626881765196167466478215474495156869857253471797780247633228681845705562561276022999252636337025023955742069451321430050386080525019879314643002492745535641605870487214154059524914565908404529247329116400069423293575634162897668576961249356128887682386776311441302122237878534139638534172722664162250683469197147461558313645417453348140217824041558135354895133795531325526537836040820613899854205085199370553706572698579963580644257810796826131506689823757604211024723249062533111134816592585455030450820746639487449691230760426133902584655199876304774036690400404043948292508495496217970667772276412453086192144577878085938135764327490797580694814067866450453408297217712205765414895066613844983030656364425622337406158243237874380134974889289844409218653695363641131004754838956949873462760691486938484034963279913665805699566097272496791298973549993598978891260478930670922873967997752279492831060790668580412935887394928285200714721354529948907783503557336181924572679340963530565303326250126717118055503953175547052022980198757044107385997482097352218096126488326682886008714427442090868480795766711517706910199781855335181520950656188319718780344163833430131874286553895559283768425612701395659976535332167334555297586525719425290464817850351487056330180711973567024528886093293678743029616326585760253927647784275312913160755130234869475835957625325795428442870482316769116146779058397990908119914567322354871744147849521427655580640645663559742757142867677855915097147234549256259766498729680048166842529112621251741791159615934998597172015943594670272609292155375353801246857413851672496363264621633842040244260449590689865279613423355534533257298107975055629087448224336289956527021062737614110616008059788382459579741588631610616693807664537949102958063411002285416938426116275280552168377811246379709781132908150619401947021500619914409717470309419452561847415045044903858345728528670114649966237936956007688529911308429266667451776694801502913214152708910526396146165245360819307219896515185199859886734637249180006236122675688283969294677336676105013476689421049049818710289099882974714000988251198891454036869184512525997311016401395702481255016813444904863149087987999738475471449818455579669186674331963400706431642815517094431701329723595793625836691990800748964751444772388679381187509743978793059837289289954176199203543928355194609440416954600126402443590083384725155346134699004363067994034570414913405598173777843484132045309649810196689331109243585282218043558242719946590810979123108271140664751004943740331503259591240210081025321343300421619532372038288001872690922890116828696360112291890907144337558363727717597932898918004791433472618038130335085799743539176605697904054080681239198349579863553985128299408111578283894901484059206660058265493940112359287455490934472700804340711219434741624665680850164956952531929126981494042715634986492305626927226329247164352226232431524823796267446312870558512082520921987672035846987321877961211183689898286512938442679434247759800954170515305547364757294726551749470557127235530751082694972196481917052170513165927546395687001837264923097837435152202845919054857001590575072223708506118725578441302425505200542133205829889015975341008754104957198303024624727878186733874206953395787546639767063923256371932145087127769962920592030227815804447760635983782798479071566728324376640152063335699155410433296442471765752989456846097121934775423080503642696933840104696771217951903589653092773554309337628631186635579781291938751043708415143078606360003280980321912566923791218894750084118173501205425684816361920388481351761568569280374435634238264961794205079855521097603868277046358519575455194678180833433738478405792551165389907197350644990166335819016760249354880666715839263600741455149085265688248698119743485602394010653233637716101643049698955231829435098595660341009560836990766563936055030205923757617027918306392787686232044723122145480832726966529990880020348474125987063096177104157464225414050278018262586881316566147873507134847044827129086549995580994605525995173677876336586004866143837565103568179220589725642569084547323728278786428008744030090836205730264429486779038007824939078706923560603478962825064629555934268765716443552122356375706319738728730011708400924658908320104361340013432338839668713916727122757069237118039136532741176430294137653385578178616661530921004694195619779129213730293177893676679462307239521033173458225351938054762330053186053242517076006377771049190302124956613736431143834866920800724905541852640716164086717277427357495598286184026101364052240584995225297455652261229294865678446396333948204118849142543727934377155121646468059267699280758139998082280333356583910552015966383651889515305495379132785792728693242600454127777564681777893590857786938240988186928961394332391315387729956234345887199745799249032255144567278084451663124926225191957643843116430112889327728702438332850808734547799225316751881085528340306437342965337418720066138961348730206971248796204011298233041649986163710994717318995459074864600850162134716422758904836926060324748499066420106164799417436911302494879217495970857210716997635995665994895759342699053883731576520915326761449973770127004462435207378216162165901878940790883678734052651979295611525427077246899338913981688747133050653692547203853911254359273697715776524513670273761644766201287741830019006782977492361259734103005225902440918270712925219060372333353573895624333851538795852347044542431798685288578915212926109039335869416493314745723761620831249679275600957079003504845643260462529726879239645052101786832243562407937253899907572701904831016379806095438988938738841120182168296168804079390464816594322798639245774317897224048707901083570662444197831319244868607788628193686482054858752113533541798417654321474008753811029567415456139866424787608634212734048511827612013961568056436903487017703224425337622007032309185436950886088389168773733191522684205259892630278415038646154854209328756982374956553510086439858838985655599004754001279984842218032049247378791755130060940814641499111300667376429179173850171482534375141604811750806918386562739003482749940039516919851479333515552545151020815150898875289716176016077570456150577285327013769180955981980607478757199629804770857973933139547341062445071997232473684393768405260473792396983708583264479910380609757804830590686798721470696900431957179092973604040129569614427216134578070735676889815594486324725913275264243432361695919143943162628294309570319008621298962676655466990394664570428766242016905534346873904642852008631741689803111488307232247418122595758872984691095705849822301035509632242319555250810714782509614735544062081972384293582210997758361593422806032351600843888927943605870333640319064537240191065596869846624956910299635528174348073098086328657303683166536236608264460839729241115923589306290534220685806748767446506671163622163077941016117255598180584382090256189614248586984562736624441956567786701472271134282977731719127362535093633234703116918794979781586493221394936254494904885889379760821624138064219769340889795399579929702314945738216239670658003080800176806638832471694002671236846034029127127545130275809701470597110151051432763898079352148117338484274045543022258177344210518614106880827385808483382565854838636314998305780567420976417575892079441348270484616274628458107913771702354932169178316809699855174359798521394807260650306471279702350247588205631940697474995061817546633310575812244097142547197905200071433875387560306489405455174056010982553538529602538135670062751812094137077448280559362503756417893557945213636625962154044495465443469460061495312563922487381368553657151019218509959259908311510147220305130887752635428320742810678038781170796560705246941626740429048473091431697103250556587119503153639430133692791389186367584303921253549277153920461720092519776787301141854982260949610234836945274963375750805796633457854252794841000608940831462276636956680197808189364871814057969815558067680178757401476077097595217553953881409707528842239274533586493798326528039081602939864467782708366681202614373116587697519941538964196204673592569573930517247445643364559319510295733288790494842453656111870026221619263757780343870563082466150405417698791466285040386670113675503874888949978230413829131157025402092041418349156543818706893909776057623787532332143846353622700647660978693052950621163501498853213141136058859201942700103051383653795224171648093512764531902642939165932469675608499444970505668820584120761904277324318253443577416957673196565717474769909403644201732504754417817728876998900132460929335469353797958749025672177072941609300046851523647048949458083287513316940568541109369757335923729189919444892127664602015278741205914223423051997488268241240961360525388877713948199819095752577404205968495699272280696642442886571961100620872821489495639579734928826163656859227602419000683478163015099917008822549292174535702007779200160098044202487851652384703896164805092887981811273985946371228929733097611837150556995278593798751797723558171558874077840415043011122408265359783074989151172296146781985208226755523554715252555971403021450408338810085658399305013866653892172770226725218131622961474500577546911394022285787306906449534359216499593796155683716844315547223364741143096221406232639079475282119342425597125236365656416631782411600767222685488203478508765868314554081372230888158241118851339434632406037405219864315374674308256442003342013402756233161036594107275739648886463557229832775458792479203928280236880164912200589884949256091294861333641431392225489018229725095275819813046585903648619832746567751722541890814049880230227091348375475651560769000876095660017515232957834792912089206341383975891430583520172337163681226418236894711111452614841497693978789672878252515513214653584471721768733546784461639141483773205703513981403589633823608994218161313566790073329883829439714704467736253359097036067776048742471756978140133931198527540292136326981232655560388203943966461299643259795301321390696817048940523984295192252691377539529870083063765712768454932269861445304135974347739667072414532680978867603426236555967875476060386244323814360664900025301335443654520079135322697164179786195804332047708278665130425225204402483598347687180624188580733962852958702137296903286379891150092986888953181215798917331129639568182862603885892852602773394036506445975286377014646696596618438714509419498283802608705673480712605851906057058914349442898452674369121857207608419585990584666633625905352567048655844625929261128765026887744714247809424027859037172989802727478770855104193862067833241570529706966236732860159879581865891985035616016766116285417357630362262191214448277661030995745508551631162004055379785241178706382885952709959739142027932130137558206894287088621840715769931758564808799365762525997437745451817796825647268203905115837321928534228468814519490303888812523087204193263605027716657487237185403737420017476320365806225224836585643918093782366349698654580126817763542719745193146922034005483918413365099524840432673873961865099473842462993861569962554491325289901026604714385986100652199690436152754963922891668994057891540037863747782016104397939624857622805999355433132618418480304890164290334606798013453556141431100035829121959741681482335852385397245662735750799634761947238986617477624721570299667306913085818922089138491064030580703761481405385998784539782612058737310802918379317686530101312613322772736148046272072400242329794150294223718031027825909750819951308295112254655148498303574281338330342402658807301048890176472109767674564996089484208042628106059348408830267816114206959407869606759427508768046217590103497271509890940770535710420585485191494883965166624347425445799831753512475958092502056737136711145897579542551268056711552607838978848255662132050696900114907237824564176491189927695661645231488181673524300074019047524755464984789421754789942390702834411772424698611703962208831470730899090878384553772501612542798020562338292575739895195730533735528423391444765069500797791460052129985368890937874690104261213899653892717880901035396683494987574375910062925778748217008119900037545768975000862495233799086368775353539486770155911375976813410790150246767159774135986085986649087262049636211519095259325341142971269995821203610793467966159704139892948713863785207588789114044063839580296716089912915400049640105547205936276663669379367707824232115823422477527088488025020820297285070969536468871481345519851999023600951187722080460732341714810475690021698037688464609134002728081033913048152397589100182694041479090654721412027241730862338021856638483460036385249070435171463831746191737249852639783553796392960073005310098950434271815428087116536297943309502698574371549945271124545679291053303019451060737516155833882474778632366381152110400885515094987484927424952543647165252111576033544275305945738276616923243455770289297267526166399038977551194703180071637749142653513725660612830622406384096672595554839395553745078913123526999714181822357513675559539226963308287124803607147497052973243708483451319912996722437950654094231932972445458612614644677070251685720371206710476152415045558444165812230022103110825466468159270606306822680289494926480251811629586412016731577710936092337273533708274598161437515710223601223537011046531714010473003899804251072709227885268166608961996445968361389997117872513246794907140993130633792012405309353636727332220403562219856762157467853938598261841826531273637865876309400485974732512217499523119789513011647602143041457910691658115900479645380142397055344414314092151432388842821429161043488987853071221615518148066828495534786711563590680295374234761394878065443388041722155328843702530868977318850680657117611844115813088482359878408431752551366808038684730653148641652930101022251764664917013572045988858562959156504131133752208918190421040066308511560253259057978461418680698493334194345644596049614911068199598962822736829501022494224235125770047668618785380394098698652624683314021674500492387160767105396822268076651173889897505525179635936789736646733974648461374157386262810917772237797501226492922871585475863298775956696729080844316435326602181404307402853254845463955692373836148587950427408757799675847855929118247093465405885089055063203351118131865610025785531006880242367095583548797317657150846241692488547987441909088230749993617104107321257560146383412965920641126112365622333873057179032712046783604366100171720252169906464068716572868980084438095089212904294509034271073578466641349418944702548571967873558006784707100334822700529936228802128268163750413322693295378869443354574229538929498377480311317113622834643794093797649184742075736195275249751429510121985063479107520548442974241331055823105550618562940435881434045706818780890819533039863983894841440420137842915472559991787760506417676825720613479053921969940055020342332072295811849747586932941957770388294698699769623584886110444947098991588989439410067639050060077535617870783463213280587592141241792466758747671227118580177720203142728405378972166618483217244543359380584420436468196706810779244807349167688193492185720604003380317601273900191511119581367520607320065388509610008763645176931179049186692277354066952708323746289284336407863788044536816824466048556863526338889921316860322163419645369307422158465489873533787662253083587344273379851197034243058730146814274851623578838503608118772945232629133745248861428058153787647029472258745526614941337437093645761079174006642284939174123535970338796273898948993161051896766198520795760745383510672450806516725950831107009105150518441690313765121734040656986316482034633586882468121428756764433759148793798026099785135935885280592109506804819550580824337407507644160258277487782890861182267930093573464794375272728289186597327742905531793605792962186175119949586257026061581428173557636012572017920948226573609367212773165498734419049508799474311952821413993521257930738748250791566984803187877212666958881951526159585976287551300317016112554955438728259613969861430986890416852384918051744129486073359767577003559912709632936945335658892649463722084919268781404867723951784484994938693511405933611465299409639698206896652440551601099530259420518337029404451809413312586792702526916812627537180854974300787595039760744189165544351716567354569866571662913571791517608673141427064615649206343441042737268816344736436460560759745340662396178871668887073273556127102712067061367178400959952223604604506337688760683873919051248331684030760118243914300139601139421600576026163523256470684320460247064984140193701792939937476622867589051444034601177441630498821082944239513289638308641345568284102748038242117714538122246138301143858343430325148120572449009764597941241788475986443897501141910461276122078855307742091398452492536718642149717786891917730713128886227046570608006055373676942886519486221715012648516822253802503615717676523024809242633602285174526835960201250284253425714841596580114455625627353316067489233886447360112787187320051141453027464721408693121172985772503753367022344593829774979767500705187468939955173880776446236713762431128829895042632538360474265042377278771569204825836272899579059015876960522534830245731099142205763670131532873993419731095979882060228600251174934162509327459615862222857781966812048297896112491424951022513539170823153153350350446711468032212194078806535912110711663530485748183439834483051737846917245876008353241277209467212771816699415148550446363287286069732414152233307498346529385900659162888826899751801827462249956052614329695555180269762106861887652620995473665688610300074265565074714467884677437147153450146639741290813011602033626044014741829078920810385819219340600821300625514210704264030991906537729079684616205046866023018442090606537043962688433396978536413597945745296552646961204645884854486086745973743805602220096111231718723181664954838480133282957372457442979165053261431726893850045735033923560273951808398687860915504742950810762260130343864869780898311865501724852482233923858172209996518715759565284046378353687244547575115217649137787510572969926199436387176336672298068359796262201533879087013354394613631927854918095841511508370956624841832881008747543169306894680585402611766997877273980958044809290063706395510710348403745991786204399536427304006938330501837914651249556449394263981475196370912935983592502844562253664008243610129314315578513806264208132704290521420398211427345177171032640920777804952839569376644971075356406965041965954732912507009124496008866290141371329041378276563241145649893817049199541377715894669127405153708998591405093873366627629562369171743795119505401704384132155202492159241904643511353216183452991137341226954391721335130958234522237492940255811978063003130730770359824408262682366462109885404922270676801435774701398136556094660979210808388315970281164652651449857992464149944120848130463221656654507990502217628950911780001556183350279657862746645315651775407559437975492994759807705661056704893434995885745326490500897327913690645807849026475722822481638916785111741718710344922098258690004850000072802181669006760566795791834903013616773091295083449105686649392812494291682228113041664475034708726429614419797736846439331979568480157776662709515765631678355609464696337315181371929022004221390748279619292609422771128609447641798275525520648741145595458810731451749679841314825026364536028559183229145112594692919903336492449035949438992401640811865556298625003425874266769248786877197784269070165584788528617309225329522547599955657003834332631438708390234321650458823744084778606470875971181566667629347987774596065605800297525990731063434584513694083830242335164320654061610844580887439905200556035912937599165398516297176730976934295003495134824565397682871415453025283946231400284040289461995084202911232441855509367903252662518031142768589359366162327658015128985120531126752951368550595779748651638113701888587972580455194109806880251125475009120939188730800928043191351918382718205791798198872937142022164495303654787089478822088951814731042875543380393807758730292446168726892551571633469295347739998226146194250546768885700366634876385519280609000721116691234487633042803958883838126743657110905287881905106287845030494686412637011488981824136813367124293278052710365811430974036483813021428089680788641275781771044198577296284571811838038085166464112677052423934707579280464791143025141597366893405155815530024352455901448941358041456646758927849035871159308199950781914556282041175254029309157580746549280580673314489994462866291003061847681084058959498633202429306804789283670917388379223366236972266526562368826997392846150099501380876267921202416789349864907605873726042578562190729306356464917955333623388713450388148245607134663974186029345788276957632158558221489429396754725459384223396021254092978303685547862135020250442167788495938773397400976609237707172738238927332067050283768891556416430797589657667818735010661729089012611621323124480894660227172812235435653858208712255487809247875493953850678259043193314399917866697948529765640379270977539255900928151815964698737442107462007909845540267280438728683270487452401895172862311568263095821366166216196705503809431616191189214392771395007660892489474348838735700941109818187861055832972033019037689408968615566322168496102508037649708445567753276416443209800611658250103703350744972378939804831658358695403487601337039302109659391740194398237859265833713316768857071298771021914574404846617469250026397831412754617279734777544184584558959004729777858313009934932197403007351433602774512412021836487585244348983082721566599871996932481080347522784782049150398569510567845357385313760906585039398702827197099233212646588271746591641825031988605966529454225830063195855033114662860573960748375891605290125554877154982120608131338308532631484656129016057052270339826149379116777650370006345667061365781109515213038613090742630701240700051221678782756961293350138608989118330420881386171933255254463848132076908070823407212184715009772293595352240219922153055270091834207467131246977088044274931336606449448119849419800730137283476810941833335180747387905922018932042391759658511542165343473857106291857531984718180865019809688395490243163257210565417185603612167604549690761385710987169405679431834852133868905518925719743890596133086530949944422762274817217709415486529038148914037878732987105589433408415485643406422833079461653404451040324353780361784997352169194342887957322593610271700673018363587187307616719126425022517628959402650663486630684490475373243959905068046475712125500568279690142980431577453041826979177256969171727752128814665397372250462583326070188149218710742581316712895075618186422869449539972339054209866187281070345274890902445839009012795637862562894983181987367775568640703627972442146682337352796163491540193354163628945660573169608340243948704186400662220351704831376911273491503243048966678630668529744167265572955366291347425239912665078116512989098340249837122506664842973896808535572015278134417321615968662708399695605879317912907999563753127048397159669348434559409545219999833729709973690704918747092042524905214734060945029244886768292401576316340737860672394117300566969021758273337911920300311814081013091818568205658340834901753467130887134929133765648050207897781197457394061030496224782479198025847603138178214316624699041105421869655822480542799368833870923664114744462396563659692732432020063605728999018841650498557493693291067876161431996675566625681521858344388736206112886649128187475323791253246887364000133862266578082366899258734931443636755299506796148654889209662376979149314539141245670079462288187415073530008574778895962608463426007405153367504831949417506471950239958460817653911215662683871791709874062671029876278635962752350899805857102923671193890552617869744437100399208395011416352494160507248946326874956172677531382233241300557445632129718913771461564938502182624548362221981884535025365336286179978016226669328758549768482565898727803826447343052358433715503379283365274195047456252593128823595900158156411895201156518529746860461743070822761425643542020431235821226618532499286085825394954277285793774039340730946430994523710292346252935902168876600304379915229429477469720070801616376604458164309269052222404177193249458567639354844249323144547219474984552570044457750451797594464464110983096616696028761358511214867538006162525973361389100456409815937359180602472082663222274292474235912126535624198481826329176941686736298149271157916119780694376194894205285028260311089674708672320056619712863514684370653195643070420141686451684049182346442159739084993228924936193915228202578849236704825202100543758008603417215655503273930697473961395816181290928123164074789499883749738825119859490767856405326763884829072351218171627606720148150038734382710871540806209038429451908955461293176911573835737651134673940624174987554533839606481169380710213559426303337535323391921888224963801533966648489188721036753679106330016985035822165496481281196643209899208436061859075930994256848964049098868981220377398152376450639808102546978992869310948253312890458870097138522774428739004526174741087452076133210050230541629379366316870913986702619994290827358364096008666382452475162327062123436945384187247434356037225478703942425252464539106680478853654302319090376028703267835047557456816236809937243653672892467364153781538882856337374111663808478590753417993415296830716567211009464958356672995843429650999908588074498611070053023546412735712766480542369300420951185735966158598047364874392674473636091780046389832005209475414080238661913326518973252867682899717276922836928362684642479303383776960426653350956945303634111277341356785511939512695593674030050312909998766165172852409587149354597951300783898033182374550780066475155083954235170442733078497979591127531699734957713782231666348213366228955055696996633754824932046062388694503279703468585985699770392026192053659563180856877818781429693448887554452727959088537634830785247293899254547786233660889513550325672400406338560436141707763689342052512709769315156282806615385323171803274676209660518564239932553836242481596190371977208660586950363909655471616478777583228679284891398030658115684840135852705868519737038898499493547018327648726676460498122689399120320872135986844246197762498023497165882860350678743322074363773367077334447339496380163932743644324741539492392298873541114529841510709581581700303115551645301563768296308814346361948993994356849661403988985181057436740432075038763854134910949876073508477726834711647565827908710843019668189834564064310769428593533594405940512025202517249096229144114784172740051589973259185222413683279078307680186720830927740772373992237916485434730818465128084738739606342290149079940571834139979946296839328766033349381124102198851642381024101096323557696135629530235073177122821104675911025980323973186623900254483692422671685382426958454960373801059491396782786007700263008627540923876150872074394085441960253938752565925795140539240109131040330709931649802012059862068402255944987159370358992878023934856749503306374776220871932420205940719036771755938663116637620734667983032564202299021789628521186393512715303373849889990752561441723211245205546411862383979114652155722879972998134348797249222165758050715353593046872416471250061469521546443207401926124472055255015642796323061815669930013027666939541446315537969405264100321440912599154843861030266723960975583745129887506444829383069631985126753661501845067373234818421017612530142583219025245404396177810458338094068725602922942495863435346739611562741460063728390339503424607671702057637060460682894776640244591184192457870796875517468110514013213896524914937254028416498873916159680622052747150290272691272377741121382711361150098549045106183685813938127271150411964492087202274729831092631182458144669730895476741605380951334359746871657444766102640511270476207532492877816562424291232814298508893488235427767768881851672198601978609522472684819154441442482607033447680300583694215890218273222151943349246814149439993427558657059538346513395395378434894089891155226061208452947062054012612275100890168601366018082454611963263868384238176310040561734313098877100716630059495254093873239061690003330028525042689399781025337486091512005910442836355556654692552371550817161604181157190127718893635761474633433552299587403088192756984682886991581659884158650986152194750622043690086623778720971462911659273232374195185224035560749603797611594153854070375807097763821982666569004031316210211396743297876512257695588577888030552036068957741127744212471369030451999619289094281873661539824496335406668688233050333993464242080605516075778459332811247958629439524807086298820334115534867361808443037950650328194171843379492985467382090870042335540753625518088645254683391823175162615389641592202410704608972651156139851457560263040029866227772591202675997467099786103325828133502805047136169115435833839543534736919603127479825217534039671935433895507452214906136115279518409307167897719914127183071129634455625759283429534431998316999071873247098557049804744137162747350947036613705904932173673905066890130447364800188214319718247003137127237720328560994103652094230982035323656741660529231662020166179039056748844471443418544159536086818950809281731832642718717006182371449711521910070171912667044264634193386428133004306691830863844800980125394280266640385640146769862611798051240823255074060049426557549317154487654184565126714381747879854708220168533928282979495083959412095629232187310870798654725240055883641324267397178488774338456939697507041525870756552721736215129629339632008746316260373147393090980415939216669490390535019543620431768059602437051970034054613170301068913741511887922285996267707426667812238128661652278608730874424389914407063610090173915069700687680025043728053104957329508607134439026368326868840241710649528346567535477111874265422155547151355124409445690441477700259884679481572169850050312824748490823139910583714844367365777225851254817574256389700993023262635987245706080123776457510001688293828783637776723732192148387598470871108807299212531540197530046731768448496516608981432589061815943109387340445574335184413746631170487959535432207734785596317548920027027177039829580526590013752402724027390146390057804506283367187028135882835758121998215915588585156174269966384760286418859579929712990959366121496018982211978327321831662454151304877216406295314305970977973394582348020803624749295739289313730594153057865859913178788036946310432747520650894863465113399896410665275691666023230768366412454711880850854470951030071947134661554211088076835154744241644919526711910232478719368104443878062524746403647109711157284130052540984611225408530568793452909185105396014273077223733530228300399833264967635391866006359599815926566673769847579596898767359521570676628821540491448558873563325982734335477045271130656244582280540029907919587664946510094300971452077454244344168722361087140707647958602625646895725924038877878941976716527953034777527351066516086141638512268108602678144775951375756528057362368737977042885276306502934389403787306693474654598339284179930735226313066994661218583585880615075918115871753618171669014970390230973747978312499308712923265088520158741964497975462261615697228345977348831033519283208020218762952599556001610702934967204692427074444122785601169980568228877245199349381597938731822350728586549137204493431758699991258957879466015772516540874719929587282373089720278165821223426701712595391696728291147379046723063169722965834518719695986648216142606978172186235068597762529462652418599441341509868284700195259640959913508673429093239506629854700354418534166532282664800152120927698098221094560319599236062977382676946740727572009042705540458404192600687997576130311703097042311152186730727251059407015723961052249331272656142602639452834163141429156828957777496770645912100301390381015660427449542109944469788396093543535587845982184875850640363365604454373929668934455139389659776822305933498957913548987217197875520162770589171166414658325288914456885054156553416149654286152597941182682895078100660514377075000262081517222550519570050428647779590103414793627190164211721774486462816526259222376861622895769826648170076549123743273124649482038257545062571448333418320905699758050172226555243877957544441729066172908957146385467454345069626353298020480208972978627341891576087764930807423183011621077651948425931140830125768016516627137499449388524306017176014808632961837395844270648938878528990817804045782923139587447449627728113096310338347300027085395321636736259341840364107315764054865707560454066025621844560979474411332840297399587261197380207737889351127218324963404221355082483988930295137767309253140689459761198290564405888668098582415693883808622410012543883656784570318101321042340761672664128736384605780648166536507306924582193355971511264390878260340928199636781814947735633680110743795729609413249490004757479630362719860364054418800945332862796008049780927989981376459747481158349240697116675243050092448911736916640095014257582260157755850322620079124471113288970424855339232119046667961105809028200352213619410329839760203099445798873875443845411947272212958274144255793560492357765185313338064539926831201039624219712578964952833023617759721739608130054258679533924304986859803401834261696740369503794259268549141434343433336784834884058741270871215386447238257149102025092649498729663677707509385913660893059253830173123273277611771091065507772121726118182576797875810921050360659341223164795450271608785683963766499445652939513163882315517772328584627498159516510375044110281859860889265548232501389774357733390733819781355812694423725246574971184642312945804277429626096005253493208088345324850975123134509751573488561895180515945299399285066254164917192802489864623769557448404706148643814110214316462418913190313616865350618959427892387683717446567799875434582447372157047030123235848170697272000265101114401830039382016939804976173217746449385647687620630435871359461944215914933221900878596759759358856098381429532132917533899314241809546180888736584287273295021121414961506406655587045964621379660831777125633577382279841360977790671488437534698943278531971205747255806142112241214274406653892338780476122078618050255177188128360143386149891776379279443040792660861654261887511113022699472291317518641474619685159407071871638900806614840472351807107114021628199336847842904314268013798675800852953427595925002119433595620137460243954314472347271388301242110393245552610149246285200485222048704429499791928205600041463377491208924302668009087867265771690028450801915398513683989729462355720346079710367080940638348099810423738776503616717891414538618761661200473742426019358483292579433570163274347298897829330701194258442104632181293464284216464578949443609116823405310752777312743916779973693974800829286100013104751368759522250145365075944641581954990761562342718463565467242791923507913992871586058314389071900399550879093445118229832931435344610961470826539885263624254937534382866068652283250504464539211931379665619874917000674187165981874163542664524798515616485883348942871086719421582401866363447578990642932501580091549814251851946496764165402068132727583058682129660510482769306048055554971520389985875473400749840216112823213943735501643560471540874223744993922989049899103035263619875976870742056287640199948235844705611578903149644340244003550019708633960795246342677245130947194026860662102353574472286933218267651185759895776158145588106938489546327234003602661604174432092298601265524671095510567818940489019706167483908968641027066481545642140076062255346841018585664411136523558922518286173186885637991873432140954803274548147151747438096135516941759964687088900733570968015159345379445699859845634895030202434497819761151684035684464650027335348936226350414647375431838638184763134821608181292797504510475099026123363859598522069123597371715122381327732897343748180952589709780165179495289198906477355407648506045978923369696597407925036273989065460562535979549804239493829596284929746790783935431129495986706369222411812787054295706205335485119525059790960759669737226681967720012156093652698376859689650542868633006506364842290159172193597971239418436494117639945217352113640789320481142987339739022859634211817390776872044468264785654996287020669650267414989439942498798579868349898016887185936298845635942253541366841034726054226825274088162534064396596870238381367368951240173041844849748103786405577491994975692325179844609819539202884268414619133471306950911224256607360188261975661875154609754201943961649634107794623893668430813711488910205628612450751751278971180636588115070683464427988687824021553595587315014677169517962163475597403680416117764989329520255481685125095662947671643189911567504539580559869227722895450652136628385369567074293468552287332683155530300093043094366652867388418907641549442109039136808809506792483336242900779487009749829559762163155116171294033266578485350646308348222953953771559594720323818348689161754340487933770834678687234989782162143694407093090787709218027696357820392687579953000577733697276905357845905077680982887352153101386822178230398768501283545960814678342704629691173057643318917949581627392867639272356895046430614721678406880237857249342321757698320735856043849396245820683420137569985936486733151003191126393730374563069821370075021308679217922327579458345814356954059216385646257451830615908986845602939063450115647909548550793554998919016498027324089441059436161644641236779537087860621148055633200906277450860054303102045787251591825203077994263762178246941498995092643227883403090548653364235628791127450757487154866941510112776063275537434398169253410484401735679215813733015981035085820929362997677383028449010955268375884880395160163597096274740854141613210590135590597125219936347839628349986116616794516726795871537888022002130673404407320763122310567186499012137532796685967940850569461486250203941617822837524834910293832204700727443537199787422300464553960315934001098308411477574860819708478131984566947197137431419820919853801587645365507128778493009233471799960991212954556920021059605693803506611620182327671691797671632144004082591219840484365418265580732028422131679759355128178192861022017506023733311378131445674128836605620142402674596185182243713771130250269379178626738526297624069248136503078950975788434251981541005705499716331517527232643407255464197280132671835754275735198365557239605989153816709506357166847059002865382231383644434838862484570504450740627748871800059677263463839881874616587836341957370612271208086506066868259092054614001015847647528931583120136184566227493454821637769667102387652310229655005074017560679614299924533513129580444068403894865539960108419931058416951743639156104179345110115908436687782467441737417032399387138199528203147879564293178194721514652007527935731117504566964566153736236346933989646451763653133998516341982048045692058042911553733241347078538378835202899917422562263241841967388732304734386976813398642453851095493554645719570816287986634874152690001754365010043159107183444646082248125781932990946097483418697928323816146316845824495701832842065152027755557888013072440309403086486826609104219317193439300881012381465546771768836759588058774764746122693172954311455175537814399060404957731833327177481915699252741187655530572957046609687778093573742332872344659023642711112634326479990619913721591100693843384501149652406229850383173515800906359760988957200335047632826284274470895899517271930812952524505940194267928564291791012834432831288313522561299988394730181855674507234614265226767872317188139964199305250636169687791671696427116057757975161348007232411725051369605025437943394442967157291428806591021277264140447873333586491421060465249624814164352252352618184170861010844902826543422413578951098983762583419144412512375348510414821393343632516618801603259418252286897248834009551322254081600121296732407793962085467898039224125311636489844074186269504781480544384616640052529522407482678741462535247692019072504298319413791408199845222790090564398205713320027812448333359537117176159444431546584106505041876650821904517016541786403627095294809989488506504704439529900505055945094143245514103439716261656218656394252060617246073878666965572133548257249967470314618920833395280629687377833703055874530567593744386907053055652206577784690761014492707186533587428743822705398428845476755054863700561706771276275120308201678355598375272736982345134462073312346582733161914115254337517058802260850308746787498561527952667532243085469239334140757554743392224435838934156677998574413187448330426702258857228605723764033790461391157495235236305817319483788188444511786190389966139574086369163720586298605784434387165207969296726847127701897448277315927584348033501450675575155291575538330434663145573109151089896584386845144108773433618199201329881441665956362383848363069756907104604625493846686899844926147494216664036926862308048846954979862868068290446569269901380487601390243908017050952974545278936602454225835292488992943965145407720781129561396975957272976762982351130571837100728244099731170272169740768000354598260595848892462674110873007636825230272155103016350103856702895775356943768578333576050183983382143782627025438870080098302740665275775092197111624237199995435879439248091332924466345147519710180755512191483090368276816722199760116382114229654304108329727441091848543231616638879447554970087754500204969688587135509028412968052895825193730341522051290577961893309047259913137702745364811046741643329530965050088933589664632714267677108770720285277178058636801676332509471397240010153269438131379560769120787550629971760916240080035711809579596537319364331997470156152590707364974790867963495307204067168867517346453182614854316975158468853769707597470345406876139401292568693915159928182484046885232172672189335193702485643929052241989534571408430517383358105695887616400658523314766864367149755668003095450175490010668048018928124053914512349584090929251034501015616782670973027293477727535281991117244858727010903682874961784714581173543828199730725602939156517985941564055218292492676375817100166887111130186422159044083376701045322537765854240520489626383611520767371101077389430488449863607772210799414603325209174841381878964923236143468864674092365372665036865740641826952166675261304953911765321080094685156444560620103594516059610237025794739256496732056211368568898894714403211099289029313159124070910544749167644566054230249836872929315357302747779078734367987421223821938107335683862486169384284211992276868815024840005200171657132334738097127926674875633180284217907257097757482666103694740619013511391355537274695988283674318498889510297363163138891645798617221288278759262592483155303872749382721673003722988060680847974194310387454583692839443043075995022102139517459167291674948171905715014500515266458960914949319651355631931144459774023541794341150533924400146747626672035640724591730484441559488160539223663838813223480385034427521192746872114162705387240307667604540355164255177679838439431385968137305405882146100258995340496184617836355600981756207813754863639973389782524267159778881563066597036896946959593239619774606521166272654394020217342123895734477508769417607759508160162456392645228396687351006928740362548982634644580780277387799272750687717232174528286936659750033536106167732014867739777620074086286920016154188988055244627396459437513742318742470101201381653485150020353147206275215546254339272588983605730217825063135711713839203656433807888504572721999951284799583712462493417892062953600212934899909454923735115607162715717005946679685539582823477105707488083914093450406329304791583694251539727839360332195978193880855311817549141919391442348360800281787743516326321358744967452611323202499129167867334207517904331300201544996129628523237221329529621744906581061234872359462129256658190630457506352285332331491837715045203325384512453787866687164551115077409381935122100195345658306884300469517307915534914240255857340258855098722917452636185644218415460887831643343077349284329805933192453757217874530665046460395323270089015993844061516382905997204874723413600495197094664471594547072596102338947082348356622778031552097615610074556730211588754893025741624662466128686304013196194723538695450477893044104566769600822221470708757662569521357503881863583107255017865164729603365855906914647924438606755310125264479928092178566807300267022699497163723606147376462156786127533641014734604607063894050401405279915793237508938382016138565953689177832167463716060146498740924674530543170410123880417293464578190326802012105395407008464291160956773018294522657552037598507701862145954807487736666925275340355217594496824745279638821359811792398869480960550162431866785307493744030225726419401083176836158734959388347932749378490393614162497001489748287934658541553449196465254381777878386732273672763303865851846258167691955576757809173308552396159856533234977576259307748075806154539534917011813632995111147920731335176662840633458373414587649682560277695736771502233564295099708942598685068702593282039622199466824244674122633171009695587492387009695786069557977761846985509941458079839014383413741766318161843920044694548742720286445830018717749665065682586609173922255299912033840064724174381593793480787859470905828720136837631627799397524099886833762024520461204698612974754168679946462430559102652676407377939042504111805081632258592440914437850017460193797362919041766720501092431760182159560452032458868775746745061983526989905475190360017777403908064131247304420166988563730537226258941290706405832321198021474973036327569509950545671504416264026688420202662653606310140370381202908885035765041842889848983227281750195053280410454723663481882275301548132475003993012088927859994918926242762258509913051054598840043469943358891505967088660299317359731504470442719202316048428289101355091849333694169313093970640727803832221632677709503712574613482606529469994517828994309471358901405452858967402609772488435604244953429183289021542260970034175414779992407818098390515688336023001754967935813603237894953150231809361095690447919559997119333408115639474321635234650833036343205330373601940315061347592027012583811659570336689486543899581333840721859918925356319002625689517062460019988722678384053213905706912657491982813444963889778391863503606193053936655420092802319030718460162916454478573839068420950889088852774383817504631184807203275263405313673111574924694207851269385506836445020121394814005079086121610116273544305459124278528520418928939675153715551816942313914807049693243617486408096571057292097728313934178561215845586418691299132532808298878580180720382733682055045502129558702478849264794213740016390669444174045499395753647258463686717393825312731556296705145312541597832260908036449012535036981638238098389549443285644917073842503066631060187430203224405319027262664908267168173753983273430240564973868649096883593827359356499527175347303188707348220762568881734641659658549767102089728389233913856745661649157547030945255557715582730285203973842826493300151390535912253149557936213903653999123567898846344802570554803915234604364206074647058991252532678745662381560170509624295110188519177337249401042943021739838875384931245302533983572478441278417656284096802934816905532229731787395200931662262686545139390445018058585015537344766957209593334198000777978129974817918069810318364650429813696205133591203964927805792718990007435382526700578801963833963823308513137552185405662463009455240333834206748995966442466804520387734588506419063089770752836988473928970834439781522138014952308590928016262021275933786634417903289274497588615022120036750358167092033585755385061597807784841035672775517262475974122354409260895277589925812934852695799588281453465590674949373292056114999285830826368019123292412951037482612007263980042178402643304002136133874590211157629860838503454863081542201479798562297584153449280756395595048547516745996027148292958058931103177817557086605893667567782277460862490986833108871129875450554157436298455173402636054609431466988118297839625621287401857926585531857329318740282392823947653766328181120081179702861936856468299075945177024613732712644183604501124851008315000928768282976949291714616777012185383818102413210573215210314717000202113212653477628815335136090833344752266288613354153932670094736703055142589946860363861943692656202296035243685086848279890017423788646676172520934191634639865950855123730793685102583880780872906908395125869939545064621562942752792471813453527327173670428251768420279271883895774401518450630454929039428059839145745535019812199053477474230773296095624247671647552275377561508947239574783138480501163978745215464374121090739367697742344691302164212291986394461928279283487255565668714302276446893896749512748902282054640969893699945171043419376765050034069608021512946565933510652490680388644764046585365598558669148731477793405274810484003727590830652317907499778735084781631510366082457289835703275159318904006422283081680465093001415204903391484438160367343559934012468356481830755093464051075016653010692956747625842935201849337886361218231877667760541310352442954220639864216925130423460559322296222557051757148627431546672617080905076949085516675927009021981781119785520109827609432261888474598288703812937133641216849916596221447117198055144699595456587682031634864916030058941503738564589908807458444300502001619365004568002184515659377215001805250526107028241933744362586888456383757233786733474139025907721239576632038969073478039486323153379199349312241724142206943498384227272252338795261140043238219825401695960674363214121569844642464266392178756971555961823904371480789527451617299784246506104362327346777615803909631863959851974001451322118401251869406831454159348765930089615584691142091754004950672202921088740579431981188848483808773855037292886949570063742681711762688465544918007184319521946354760476600849421853248968495971598752029782694173850819142662788999943681741996456710908086887931175709252612791805175807257582039978089955371479566272069445567474234242812015491282538290316401734355508627182542412533004834352241370984623730045830091717137438643142020530115204140288174395267164229602063648963565666725562066148335877274624281152942597688658600791510913316162596704438593555469954832549966789943469286976067305187058465829579638403996679683618003004834583906963064368301439793313269064538127838152447879952106867234771954939896922365152143702706248257067480433800333328300829081963274039668264021678906071880304556986636145184164414111391532505337049356028258562286614625629672991703765677175439316655330593234771854047284360440769989638578153569072917770416985859598129114098181273396172567630351593810373146485345072780586253588022986181459755128131788682811941367078102839491291611282341135050991565393913904480247127721603853938918776611859622887419719755391089638361356006278451144737043604494383083463060092757603291386742731765862535096042392610509803946995167835400936898102660978687177885873572280540546782922718553576485201600033855231894416200684168964294623103832979222574184053531871758063649483930635810052169401562345311993987519015078731064490401576340540772218100483198350598963728142244545332692138900082999148693251156781207850975247464657066451633058456236196814470950091004764698402816459612346971905902689090546455366927470969509078537707858599215808579017787781113701335972613483474545087259162344246292769513837296302514587445654455470797761117089727183050801097474465746937310732134355080938649285811289894949537803261047622182734202374157707850622493004869369726792067129901975663261985151019710201405205243274359113249969878911806318457448693280028049605619586617331359964457029390968141393611959547937547687694416567378779374347355475824527029113270464395563518897701515886519141397079844538843508320718979267354915864819137474048646743648438367255016840259838385414260549559409245712850415634651126807725567928714118358693780633153260079719493659028380988016951705238265769168239264897072505204858063632751789771667340011961455029654273889156169074237097937020711598235990238500903725996991212623641301330051102455440044867098565126155695612967237124102811813195686793583506763962032808691115757469347646002173970886304392013110730046972957811271784057387216812231370988674754422415529337687463092551900698604761541267170017874433960455378431276700482884097289814773777866392721565308984162708493203190797505466607320094652859359439765444712876130193713500899341879214055498899474084228595478919882891633223055931766729361241249647059463622888380227266763931684541882791742210832822500040110648160007113510189885855030802938900916849793763406832941749643957274329633995530563206498344317076125741901128404699486796536884511108330035092829035005454527678924135911603842868654539362815844834016514343571763013996468955647408396752419403539909583722298965557093460735854858144008806115259464878776538639184030956207887205498647682378884637798549341458946390101366539460671490874463132633923288514338242133105286994870206488561942243642592550220975407082678565601861580836393606506243851658338245514917954023169668292356502595012667243843344395692632500735535633749745067677089155784293110510144891134078580022234437690009289971925811202655241520295316934015146542984805153599374081442891099008893794040495770584166741374292799118687495016809922991478929502996576807636701140672337683769252899852973987446851132736988597309563835549253287484514625634809741005246773183838161814531335814140127014072828233869743223391282565344816619288314780880407654236196301782986322970237704104673476645077263897593785652175314641277262689402128390194874264069176406453560935425945061707435418221825912409544654130319306277138217013782529629230712264055844690468037023687909245100227404309067753848842480896739816888833737443755704502605191882341433727744201926488099488167232809342563016502296423583196672362756299660243327807920470180692195548583150562381339880922192900643759538863229793250355315872130447328880581477781461013886602388043181304077937408368426189698121845480722579166344399023316786410804103506660821444213044517082394005978376252743274209706011028164225200696842188051560313325613616067087034608437997230010730828835703081847024568200396376160018653459228058560851848476650666716878371780395400731903942174666847277973609752840435596601610256365461183460296138303369365533832882509781644746944427162040364673864963359101527769211895697354861264310564951272086803591582576953218487861367012704866350315980189271476568692895693870947059627842745812685577457343790675253557714457353401973450538712494635926784185900098799913807852001916115809586078470828099873877843887637272637042706826618863628236891420381577486108736148934526154161869457198093264438137354302626910386518823192758846049419151836977412422503216645712882777096121311242198279745332240398414963851031550506382324911086313112283752665694389642245520831741791294822045236200607960540471593000817711318504847494104427772955960773792946956099285590657918390224640604502899752593000261217093114521096905822771219003686359834750104966042023826994866784343028208680907985358942813299692247800982010031793254654678064602551252417883601444077141056076823674097439798310414775137484423217025162596866529605588521395076765484064862289670408739658404672924470733177092205843676014891201017833522103275119420756888379537068039331270700993730914227575160695913313800056830436300252048162786121381899403180897492473649360470915454109020331088271508582081578266032928306643740511213280189352775523166333932165340159438919524319387306630457923676445285359643053408200758368345635378263008975828111841117751796343901998571439765205907415188183131431453993999375692688526940340112329552551063557174037256094068521549124993750379241844447095130398334931384564994374155197487451679226303222176965703375167254239687111686699958879972843021485388054290994560317159517393058070066492621626214854649931289894387728075087705622455874302172996700199839732657288847441894356563094700522454267360238212016277636699568754326791761633585129944653989372793025715815356469167949344863924112439367389803510571712340511353549450630913718022142814804600954851665629127872625160480497414744893293135203975713915861268804749225944128002276723333564964348684522756030942866845021085689865279569613898444875051375908559474938230224952616492071763217094558380025800836610691090871684488305748369834902137346224899987028068818959768623385855357021971534519247777087626053285419257476648967413730443444621693924906161651342290111909426192964045137506107000223926849498255606506243349936535591008229201886290383530135967442602484544873018018923139982946543815483519952416209098276955800068502980793577338746521372693346523299079239060009735424312617535186930395047098389218151571712531537199682145062375092622528544885717605351764586926902235669410969669649161687662473051011089290438291495314431855734778517163690854141645103558881057944966246558754102180120280173367408541344188796012816563088502026920980593938841515041320232452766744675479413775674643436523142085720250105083864521996440195438553257155292510704774535797074192782576966996658147082124265413895577388093100470237849212914952528403920801098202033832727285853809980620187811503174500698823164651159872559352542081176406981306259203808903823865811477030513492615633619006366770754376711328325688321585009813991118554305010500605215928139609912895640614876487038794264494915307140084254176826163729272067339435993478329809389363903139497050466768847988040355795241362285649861956728383257037427660793974283233648000737549988279702069278896222486117657576053332639065591498336256880259729695352177887420164339126162833272499796108469276311736978569949453702774756685433624842090156146295582939760398413429066783619741644380823023929696390757120934109443463389603700437067981362255073731865470606655214847840718786515257814459918763545047535130202761382972313222852871314833062464058726528004224197522818064226065400598832667539379571015240855888373238662413873942278447641486385915506941309495675792489759076023632574449604273390805101169438647007029579735725820825585096639970556966848613765301157808216608285228689408929466488765528925036373902508813784691250387163000765536148332323668067195351621278480971746637399458314031584417239951766853757792351749487149092386785237955368040262189795966588568847778618131159217147128946708074220834321865143210031293329956833392972103748327735937831591905891355728320088749490266279462850896278315937421998849945006096541149833295757015839996841427871165638144617019484311241995937044549768103419174695993396772570165758098584404707707523084900209731308791322202161730285895596590472147845073651818719056448244379820209971714808188443451296988936387055206881679797877320450017225570080185392863598376218432284383125139424686131140993084849548233893692631056099992346818215579166532823344450803372460498025625445953090678093257984513640992235147552228126398292155790732990571103884653106884877379333566818695482538211730747829617127003878179635106714185922503981318674058731505210029473592325582095772297971597731140544396646693393798925645218246060431694827725166599909650448476732868438260909322201320313242907353059883168580198491421781053741869950824276510511581179111008291318630150597642385791889923763757804470368467915608331587841108272977466758879744344553517015580134964126231335023449506620320847638846553882717032084336461570788135509454942605294206343900794863959061183510391531608948169526142240936571693077261944133231649294470228517934373249818170609692938045632400835102371834670446480756390647217717647511339057910221265613828559731670676836858251003999260972280515872827805303475340303362099031129834687011111866148615405551933489347222212859545538798070608930980309594538612641531587865730375143439006990725019605923995182873167318196163778774249866149531626746937339664315104641525559136727746789837084265705818468635972756990421822147439485587655894172601335975724446112080393132508323730123852365898311886394362423785785625979651357011078311981688619319141880183774570557084725959412018326424244710992001354003517342826610165669033212131185405716809891640998348142985012260986132018846758404112147763206270964886798551751379431686447029863330342619741987209957305872995652573838990267438651782371260521476139791222730948571824365413816273411680125961496808548300568126601020908629572644356135600688311921249483308946714592762200073626130779169494272555423663439668742894428277234893135395574160602518355368361516541604519967147442342331754324819920574562589479284300344424699571899502248956522367008804283058365449905101395818029908989571407852277474477531706244713728044634862830540292358407042826011417603598652666226875022244972316196596322411096338394029958336309809421307075038181022343552090252945359134427501905316087642524941367650077281598143149145972108116364185911263058332046747302354473156513147411920147400938331779638622978321116443162868235097440932071315099090708614339179073251742782400748856524991174339101585812407880785243477191330656938772484645001175338456390926962984250589924318785405495303238642942474237629314137267037647710788326991328388598379063732707814537918995675151489183037131578132423368561200226106933474864265410509094458065625276465319194630965612542835518892041927289539125859195753067595747379077806891410381392325176035351673937872291266627416952870382560541091498154432826316484158414629730002154086999371909405171501036080774713975157870412779307812769872667103889267544125789420394351047876472736609459146895282196734647081252780237235406603274294558740763960246019967141237261012319474184939813531747312147390537336466810656513543001688285404801394754998503787171720131929322390103475271734449444765743308903404413822059445696249364853226671322345516336259468884689132972484218396299936377996362042414852325450533690732492915106822030523904218548725782718094753115681085246054361690684744047929216300999716928753640788653406752295137047717754272875672086935653435424933732961160418993762596341063318577945377155706877504815437887561235299628558407316741402680182980419934216921105822238095985937251762233789933571171180224058756362173778494410075751541048442147208566928481322333029430052269179980090525802892197062837287899467763398059778823961454098462025378502051734210323529064849290912190217085556685296283868901454295264905034508342556318327103429335583189889555684774660303734850856689146815760085336675660063426067526871922990589735985995983090019145524911023204702818524376801214563720483032272459436274640754623608617990796505229984341885027335690691335730011219261644920866658101062166072127197830207179951968087064459722568398809070849622024729000933085778923219347481291935863625987539516709043251125319141776437169130334201916377908925901492811978341517727548985719968266019540946493326071726255411016465331085079105769051729959840607569593323609612428557291370402178108474335810661494099046226538719416206225510064172958557042446463561892332876903550797077105526139187252006711154872951039774351312800630049951315842017483244967299156603326008633785260183428299472060348371596114619126688598813147306747445950147718896071325585606070482670934982223332947908430463099341884587471551440119612181761792257709565982593420523827477877225431727727597598656128341284432860796281672368145153607980673529883044555526651166024957746725139977831429476903129092808492325962370899203465301721035540747824468747199357172828262180626976845092174271095257645774820989860825999569327332023833757002849990323985506400606789501504351637259048065466129198647321695725713403926214833118102410817069023927014888414674112066031968234124905877043483188609255994537647276722698313635427194266365244559049480261172679288439449894101400445288103273533216846486845416414724539936543587208113911704719804943045910377103467426943511232169212149782796973219970282611991065144822560981164356647825104911250221374256182019582952208570905340806710490856368400113414719532489607261171682332650018557075505010207412525451536749003773957805170595104014817677696018939107158336399241483838468107771762259431729584654269754393763214491282223545908391671099186920104540514382559848599355956939752555764146390560974621442338973254422380806447962430663660951533029506937673445765471801380798818699911900670631853733117641495602847431474164062768863354898380817528845029212795288316655896726767346984957449808848491554239522518790651696647945706751915669373121176032325125670602842891141950272609088910805053008940511098713419997665983925879144149260487519853845178673224273713932077633766120156666150655517583092907974549825793476707886316431931483616974058531941324958342468102673915721554215068570773895429254652950901371949240511881750180433987854922195986843454562773870518293893112036916763991044501126861454224747075710692320953559089879396010483057051583263407286916276759030296481226013751263425391281445031211479173262662744554692432387010619892273393511173510712059220501784724117242478934620376364848794776152355314457615427603403519191372856602974068469057854120572457372500269063054544136481169148039553172067188371544965088966335127492859852500075893964239792888342769067123166225012818537593547007567329932704293137111973502955698172862309326660639395110574347229970875878589896495574309554866738554974111100565164638962470908260245428205037550954913142885234870923761310675656100117828310028974175776020951707209508890942239960110628500189347322232195763233178569048580787611676842223905331898650458664657525104440211957895823828163158444911685389695951604772717149469270416335923659291119714641886164559704883288629969416824048054344374717353096585398802449113540001068814369906413654402233868687357930526535599235685608107303151749538982565785033651153427932990886509660142800629836339279071600116371980535388258211358080057878878019122478689696801922763240787529545930887334455712187899839287536217640496966460333234909354349095714115164266858193899876334737316246577778650800556525073313735981420423576706896201164322119472979167065769380553875620654220639863113146775030314194319157832171142076253351479330402204738537040331554156192383184133450056610764636043306854517167526610341588263192519642371365060977216442474857166725466570701995050879744368600733313375712875776593854452390129716146695770167564911162829205151696071092503032552027470111760856241592052100580166711305265762914806764445740210345355155647236459876155102122181000215655199924573084284244813910066591721286647603006437271216496966338399771320248118720283360931571655799589735002918254124975181485368457764410533147988795662904957819070608215413465336558789337018558668784856837339169482227830057667210241696339397600756474429923001189710771767440826846482855164065329008004960314710773864493757402944849621572261554190129413102696566720716833497595515763327682858141313635139946459894854013729919725444501251964984347981720040524641027698568926499025948005071027579042819490011365630280649844052479234311105510665954249540666924353293132843109442685640610897870735741593386306311697735268079114085846504917299882510575669268936351578651196455019904778571958841641793557338432542957375224660516043506832113755145074699376513234193783445975598927699245548464587555689176771260340526729952895064929518270803244181479521370423011111022120506188793465015501343292758797514357945787047934409250775842237926522678921939515787047586005772181454802833711012243824322257607855455921197431811138272016806998788807694285230620850969467193869824227041165485467394561189092412317226470346562067010875145660899996160493350441237475662998336578080223033486302074685223544981693284489902496711356321235013888833202587034203695177215282075729288399752170724230433371675230355771071420787895420183207458766516117080887704886983814911049489524012100079893790029183769894423978469080535646274913104016279641253196038249234002220651030437601960940840873981908255811719202781376958701200723359272456848684974815525882419997465663601463055344281992162685079284584190872819201255856263931317554133619653008467745051886052666304622944713787524515659142252869224477303993018754133719436903305022381007509150179038392303526083600844255547412166442310468540700341202288844120597387332810081928397526305369028204583026445155631786348984277741443992034955514068160548369034394390079916651507010543568928083676025265111486450535765807704705898113664035451939127410755295506191465120846570798167382903882354705561487925652099473501281831727626583469033702523881358463103781266447132785819449042589098713684622038281239677613558145555582209611852471097096826564108672680414298676589674085597214574699697987853821363729531659695288275077140606889907940149517261607360824204327159179867182091760411073832397192423435793500507476139018584179758966715080336080500374769098715558025723519480357456133507556366759951921360144554584305913087284871366426448388799132993457678772242014505279629383614256155940347074125617546170204624737489553590260306319526169469099732347125713846986299500683988840168171664482695944601195026211224715833934530645695867222490880846824564383158471776696848815259255367718233064234970453785152822955529047165492499845932182899799946626115910274136855967393777466000799261728825135683272244323776592271934308467057708270800282802577250322606673554921845443199421762111972417773784804864416450545297526120204640360107984177812545411692311383918055166260432883394600746666135200089141292463141749604714980274594974441846309976218567676511736418585300357464586956002587715687455107883836095105389799174805527250250642849332135860369796691644813806580744412534323152444679262315791196363389427727968394970464019341948694749875603733083358024257370000590419550615195281370456727237370469960426447831965072440978472572852992525294957072270373102407616337956023249846968564015280323693273225050538696084637185234862810762014528111364116315249829027085181300978816994347725006225244257820932371382418340286890405723516131238718312234835383578953259407952926593347726742873584990847216662320180014064174334165849467409866250418534159758237130445844962979136246667075485777721957729955718670575302082370753791998605329993571360716144087967943449142093285665158023378324998668778649626407458985133340753228985511096619200338137521317375882649428647768380766257721001971892591257020580614373329892231416062846210414715592473452231190182470303035737709778519775436804130601090509383764493337093458449703531129299690770348784643017941068108432250850655115805804334856705627339611287126246786063608370842346492980093411371870530606581991918288774002677301156533157345806395827899228748196715796765901927166719536836396017191945481762965375477590439716771965083755972670569051072825055881190801777662115494069422220850092509543971545571609962946420557489312460100184435703420862291443668525162639669493075562792613186099520701487288541283372665481178110526038218874228266376739215663769542652747312344890078267809651527164728648328404466032535635040817925504977574884510400671435363840116315890024445195784065982243674941025141677124577053046036001214663099332502899213141138359687201583146045901731852924597947760829483191303820796800115210627005706419309285192383191891500966480282181867330540374281657324973838539481592343838051981296058000690979218652671476183510691481011656543867511557068919299069547597260593119410355918706998674767041555068907965272277264039707129047350984291942866014298157230600111664908668609554859954963199490021118186678349084457872273823454411818566712478994239671500972358192397711585872482472724241915377649898822989991850547399203433726231120743956630538915640653995565964965313034908506761178741237567179479949401671681759284426815006396409131045824598415972050845104465751288120635456580483785199703694571047243606307268508652971014070598367725783215406291141921001151899469918424592362656236622748058525169291011675584792480601203858111996948255074506045918474555747422539381407417731469299609055962830417365475124506867780707274732580691236545252438645098016275845922404867103899192359630940939191005193974089674363893300299477205920628446166391337649962097083471574192106748268487421852421754592035977689769182879294875340601747222997293946645907251634148107616904275488392718737146294115709213633359512500958892627997424689897745786257351180159940582661946100277726133766732875740247451639169164376089629392394401111297761947999953307020136850198559864879654688551530194595127161847600053529836322695833233128575980707844614294613098096731123248622862632964191335712069396023038646701484506643322551576159785737739636300233223188215629785926917323485607452828547832659487955601203179308294379121199562806833184577559762409158490785146222488311368279223296071880730570192522218697060861060106037051942399600227600777628225093882373199347788186079549604675165682512740955479042327149651880478060139714921613886420117484470577592341053382934015686492240578563044350714278785859900172101230628537070934998509619960762743055177101514018190758404829161208431679095825249098927010192008279650012668707279799242686791397920750019777055600468811092453086963193621697128270039228361866639070827068624909005907535979435711748194235779036922458241925607201945272743154505959288320401018967938998401143028830454980153511978944350725916620535102732918310429500903562246279531454121098536475495387739508626280468918063056537902322754422300275851051510366547720661591116649918406933644457943728919816336167449921538736545619801812074663831027867337099524689832967495872763212800629307346403846077685186759954564722224808304894715634795049657814924803696487911353961079959030558135829645190547664821401856562495517986548918550355799497015770869924858480842357651716308029834389000222214000589108104207712393861667102355651800303131103242321553626889757545409085051292901471929717062978615371504735921402127894591939809409443830615439004578497737191706553255440549721525362840940912428753712084911189406671873576863603144924727935698079042328032673096344268137396546597433496836511497791941858250432083024984777434648823667738865207016943915415667503753623772452867263191878627189737149213084223670398604579198886573374825909849928090573208956943202280939792104037482617547110124963323182251186939911955999445169499936013707051057739207064460996760754081739536572889836397318801386161683170941747791799763088424741739214468277108088075091209505754293080043960870891933045381273289044425844640956533226895777629579406322204694491522350628546697126010428218183486679053278888099021726182539793144938819431317682881025027774770082731372345422804223319657339637891023742119039733324865820765103606309454391020833049014369126425666831424381681721574061867150120516103373187065682014077501627424212210557298838266131931428194639238679814132555356465755644940548774907045396771209475584670817908485025001036454175972056779904836766901912062125557214135814169958108527780164401270963116337475839443805879260862616632463543341548989022543932626290154827183083641183420072672934584508765588474369566897298156932046879188708641777160678463567014865801558600089521404185007370024121660704853226603160649725074927430939868439107980805574601259391461901147367608405420726846720623376254371828519408393673240998515854723690069897686968461321477047366661365366355022789337452663933219079058341021573003376275899434432895607408818839725414204356060624347376692113175648495439618806110744338322763361177812715280651457791506171449466561763087138753991425459697340284504042337980898262864735885591769364337452613264048276170451997089298457198706953414883570729105854454887819007747580421402702047504436559341507518195744696532468475925767905589540529166859222780956144148236685064918102600934254951225808317295886472189420451428828210247278147037638007929554816516286148271821775061855851904869998630024208326385636055663804345470298736230885887928546242322643898478408046246283756733715390154480782602843902958888115267582529146730026405327643997943836311089520043320487256329078967300373021919321729917341132003747156835074795308519444272706403692845406907258599779763462649667993222026067177575397127151077122441112889988558929538197961171882844896010118599595695368774838406783757312107698175684386687726491171890116128550214183352182321929766182793606610787247809941069827900527785379602231482792941856134427888474824690229638370768157785287233392671659562290525746940158554446679904300789303593951426419947165161010005121447993795410808699669291091756282005161768680874734255839234308534852983169953161777858203961770762025540083095112607256273585946027915996673149231558741681190471997937915063783413445873434914362346099301585110096515845456742576645163406351668898083590451839743996028725074751245247428772985963784655852888410921212611578405407306957666579788208363490828883147409067087846749242279861841776577128522144320512006300556884443364753901253154905400671733434851653706190154694612157281338122662668375392853398840868663333237558967167439139622171312476378303768313845746719082256945893768036158853114034528690650796334657653488495504022254876133199221489110313020496670763176254714639940801006455073334556484414612913017781955785155834087105801128388388101063159888626735288277845096493475866758342798630247606485997092915919277792228215685780105841207531110744347118753036155912341261614960298136688894676294092013417277266163226564631850795539788999992814699637101258812052986734219614738337418198099876035466322871921326896783612343719908253444659727058101326112836703800447650343989368046549390363418414761218750290504709659271832403617079524964209996946365954852177652482433563714600806708400987766484870355336164444650533584645634566009152274437628579724693192327828931568096757899451915802846051647150454627509190020602848419315832971169455854664582121215791337334617701910362055229167334571114814536398444147481818534436524713594729349952921511936997564848445824937809090055003272712321943147914823943849164321799705110886309721100385830971170521035177001975532434022847671257034546268817624392916892077320974639429641951964765977672865964652994079317980233757252159693217451918352129055137364226461087673242174901296291105736714739139182382901115673878102478963183288139616550898223746691170384670338590773033872010482461055218653949777993921630963491108714542581570852370034366237630286571287410074788074080951015595012665920199070906306216743367646208268115951612771454966598408188332479155385556173253098184969805963154564008080508083014626271669218982423431339754600390716874048509695398584937996918222300284427197966931874145443638336423676012141023046752440979728627436414563906876447958663589645755038745481448172883024391815574780806210346627560706154799088158705284473809257100343330770348601529643582843395355644734718479424129905084659799839405896982709080910227448193137789494323535586330596767405902174372988937292181004359247942797773214020558417704533631983592353083915948374744673705130969415464032090857087879443785794174605092023518541892682453190049308063014123826328649482125241118631519009648380736996119300103547361755992051973346024093406478215747475203203571500470371236875946381439498220600240780670597820955919072126310919639662807906971821607968818635911907794538507219330317942748898663623011880288177254312932954769820848082540581200378287545937916718505647994783498648487751232432209597298730418710967666799402516739661919818826057468995343158638838953996457268841664436296698680044359312657536389001747502484937341338349918406477357174340832306893781484406554580738392663304118547073873540861138480428569604591839355389584942853808323756640307180051527685990427264532143612103159121558787966577143762346464531978537389472820074414993311598863674068154582351407541889216810682647164279606296885264063420880503957844385318191239158191035783743362235630931913518325067419431930407752205963021542685191324833122695463899554892514720597198892275560880523306516308017882144870885123174955800852407918946317457939745201554765321812343427575209548004888394512737392551291722722898188704472305419033123904718360492335251384536268845045287283913151723337426967165615162281380853472876723793622730283405305811211414169292385638726179791731008664439324549338426001816993482265611904723988357383397999035141229629297059580430832555046191777843507964921517528476588444376071863148471701333721659607834294088162853175246403189745456377007666981939329036417429452657271609882746441985352051712398925260386879759396086604295722285249703719380043470538483883464526702213090372019600110790048318164512059534999359396213708912346438015953271640378257460352062091640647502710275758569324559072002123681033027929788276786522826358216824577391941410066803065439321204333888541580922553165539693903581415091313954571593858786210983394713702063111381504756816096439683808689367719635287025715814895337874274859442857905322051334887609856568061196356364931916846153075467449520959565903222058182551953674729600342261117335033803674140599809777919758510830195646375862630214472520638465849950014751777598010252752260699068010332885875995548628597250400808663725991426774823024744807653773330868081185090631572056424807889540905281344621093438137211264159632818336041378902617001142157281520928621844772011282340468080879534608265334201720958819642418774942368137841386200578867902261017339119737461104558963301468225172271371061686089602898346791769491946915763853690080155173496113455712486881832948872766539443424163994434118249862508725501960323676129800736381405774053312407409554630363292899471405544730489802880835831020856658743270867333707948991458886973806870542087309267600325468652847428023192636021179410353284955671952753366078794983252915981243162801828652614695587029774665345622773312375489451487197345623497082963453772789154190729285293215501685836014507423058997369096392270902349663078995369484559191086041039576931029092842470314457178071040110833832056126506416082491564027840079565202657502722969156453243661682984913438467897951795259007653246683430330567179537993600022085341152382637318923447474544603051898245734565608423518946881803194119316639895503462574325570128070146627557416913484687103158285194210315283708039945960787668474705511704819399588173015590515973552357418117007858976261904539314924022282975823707180085681581329550989758490952915311360189880360905800701070687201801806177789792578976362382202100612748646801358869457401846223798883832219686764652517779884136155096196710264446093500648016916398599994522648009157776604682489482818841808581696647366216088021316798769661425114836856325061403216151753973330221171352526161925963668609024079840045199242256051753495335360606631945569554145475907740479036870925523058318209285321780351430614448010742053416441500543859529454778006914586029139921926180598104981415704245949374402467836400692917967305542442982759865857376310374670096587282215115013160634358611614259003343688882291358078090870604062313727581407779620116008514294575057354880021538598646960336241215907212949516819531685146425621493514609370016079122427510620978311094930564122739639489678884052317479766570709320757458716184609765275267927215871598867209174012573595704272744582444720961630688980067130916722183527952396876415120420267858053775830640872963661631206435857757699220758619640049773826007829437778163279730205517369622352173940916672770346369868496274607317807251226651483803046611368926775717648008708105640035819103390364107482482392645907812434747631766420209762246698173982435240876657641267867785597225542820435699375506807604298519481971525395629462297323605276621795399977449673250162378977448107297186122081733863712545044816530914495367103380196275361744724893628458213232953128459032479635453357981934850764265333613152718915284251814529343276711693404166976915240896951017903192237570598751364726185736149396057849925565293123072439638629648019315491969222184125302176754302633172733549747343040603998113883312698461065568143919873572555601314900751153477713165455494805102301458861402945223754189775767662170314352952678383817334994813780003734132870896634810755979300028686637589228056926224275157613216743029917250110471914570077083477999071501235347054882114142353879241044841003877763952117110895944622584194870824230723990202368021279369275488933435022963647362371429455197074680293204595566975167181238882793670279356691072748562652015467911242285899515743874697196796528973287152354483694407893772455329025460636706750037849590267808784297941533087397010740089590066743498293011970237877279609935572599570906382608010292078108711393377638234257498938392088710906837836977103157847231270849644938972460937420234040474107483250704481781942742904215652978543848662953207337834690767616655120845180519165530304920125510587308341026917132478843685698902117538868252838892748639269174624137933806669413860461247934366057254361352074073840199885976030076839152400503074739056840854771389607874795925237774523283872311373538676599410237780776692906111882711162541764372178752089175642790580608219489152107688893975644218871392918152654885010396418097434725067131628441370320587616332285189869888195662469281385352987809765293468183943780591737630760782436146835410145602755155343849237491085699021958375950537153322252729215147575631930036713610040543076447783559233593241430699753701643766024094858405146072089928685735727134198280674227143328239295010227753069044000205544248547167846152712111237370427900892404989566789094320000722198520923516188865201203805563836302254315458815949017112227140807045054128977323989818785885785379197525869707594856137526454232772386824037062749813379307019244554032942850090825694472275667874805031056136763598740939299298483444545522796292226884341292940485211293866667539457575759640371483096145836776393184971132205615833707830384590750770522139066680194738089991595822067097260029387586926734795416814672722286971988779695092665755791635403425283681010871926316862412997933610196719247690275136798389330871660698860740226404566943671210866828543638717658362349843712245112169584025147449673671371301826119639801437894194440737032932194198885990312596786346752104060594120294735429263131118394567133703112766148557676885098941143429192632550847168700445988959071943097041618396498362384697039499859136839787823036483816106647014272419057330042336680164017905470677647073093256995160896697948250739782903370668971671810785026291052228522076272463813425563010157570603892409389825606224433115195350166486396643962210021366569000006459262272879502423167343555968561380350586895472483031184526156465272707614860884559707664223571736184135534848702350696127351726794814094259239000327249975664421019792707398376619124172993602769952067641693059847016028382967884767380315048205127525425476573603210021025427914887658833448825520794675976380552436650463653844448652683129738397439124834923557063055820177008666462668703378673183811083358638833301097450791632602603077380853700687467024884402546829289712142417668112245483067963239618851167313873703171856147522131222272079787457366247979959839661221298426348663937331947803967442735433413733897420727779355177739461667147059939004088063481486223415373301312081702227930097960139235482944123679795430190389316609422493644302740588050163917133765805817601306917731246748314811079184719386102015303685939396441501799080964323787498156377698018823247311737388191932196875106133692095148540278402543340407361438509397287730069470263445003593456547692810289410677760935991469977469975218098827879357030733401558335887764694365736046833549993637608751958094476131186759322740102065479240095785193974683823554854432704257340259578507412140828284624187856170697580345760828129954112391478557689902047062342273725281382161991147229777914251966442434407719190867127989954111590890814197868857162542913735305396368539048444835167161900022185430301432690069191459420616885379976201581625470709603426378337797173548798821854849219915727390884534617699014325323821042328736361644308628544550831039098250924300823874240335305313054474529995663419884270050376528485920821301458563685603550219068236861153710908420041606149567267905922597466650844317739323619370687324263782285329181730765122792138905562270290465208566782501225681193717067035111168577708291149461781823046952753755443745838846754426665681036618033733296047343070693803569867017406302849239555080621463149380453952672678105785885166791436033463910818113693757643030778242363040483853879162206646428601501250647319298599501882080213842029753025357802972858782565643531046199014050131797789762243477926915231556718653254378693559406514617830853930458757967574178397534931545445867462286304795800807384460926881080710381729615296075019059034212003061095088035540450578299010158677869353785741316110486413149988248804714011756508935029387712509080710027708664789803100545843525961621040969216937552045595235343712118606317371633659523213808718014821722566043955204949840647071393892125784006675557736547407284222241554917221839842420875164914915231077465663242504271167249927430805673382929090912678003669234312380906182135354925561824445635861112487358647509922752735128122256640955510456978123426962002972932422489050560560613324917733706255997607124713255595361706549281164746136187249374180488630530119978037251219541471193976285390510312333209425263258784004134736059033319868893103043044438764777088291030285127185132797877565379684410768539610404009433551528801445275357560040737919303554100942232537620726128248776526745722867793239169976371156883425116860431035847149308990114158855076705921225572282278048449590982264617124175927307093616938714058580686542424682672867837577142971687584181665716809006438563592549156262766629061619708323749564422893829482287162129814205655298674747102795829442995298293598391567014001241230820212563436561843960692533225973807585625579710427736341711102121423666845729455904584781104103231099499265995539514293007017013349032427758225859693045206846672307257937824551116003391056756030093028770805732109116551834142975865193043668458260449269751097391840928479780908396367292620116338347137165965622093954727604057107454321262123138263273826453060453819681344207104076734664578936777329077389685012455995079248134103983494032636974805709570045018134553985756188182088851238554331770555440956730023451840714532715556071386091592865851706935435721248241708294569604083229120488636285936029191807061491785164132404958540857314934292345199725659221850836039633210381382975575439620583726685380064539887845252577300774445629511416331756358043542757479327514330808796362547749396304996203965028805933749136073328800075709629962490506925320741831829457101667764443830221633331314309106965592334854095273929432457211234651962551083176689124189511507208376296698655455024177339438615062203287321735200565245178057107281245930351574747015453752650736763518133339657886746675114849184058839783826258681804177805065729307081654893480005163546150622144637051155967134349925912134770021930120677916934232279969665884187987438674275107777537205484168648890175807594204377742394781008930104812067358685553383398935682808930550753620756470222507317039713697936770077919390280700882819490417465860725246401560186993037105944978871688850204488869965068177978407246115756159818446136743581250555774187166315234729156314019724564444269758681476838494585139154455022602598803783598583076735085553183270761404033605726872607468129573983423977368694040333149823766879528513420671243303538921832563676740691092423444742893307999086959014148777938075374133511998851603047753690315077372685947324541343385407963316683852020813785359745233602463622542147529005336804925990688480998016962731266406124219838820887837059732499491019630301771815103180706464472941091732834160590472317712246828054093466069064552186255860666778638561544921889308489480348417423034635429864573308191747508376670797659933606736538165244909714326308654908205306273247119032608473778866336982356257546419414894664844002778854934582338532008531812154357925604271562660492111734748750376550165799366802651455296614804987528743287553541193156769973600650739191469537692442004293790046326008567543445054162968805655567059555495056086509596406033292413597721966361738750956582491336106514172705763973406948513185491833973130452668611003225734562463210523816094369434117298643639081511080281469526130842997620955315424839732519201439022053447012522839643969589355233263366210643672461716479550613570035978697660511772635696515352731118791348103615257355319032609165269086500665407563641375393590261168179896149331487054456527260403985080448263432169534408489308871055185254762965042927672060276671597710930551952171402861068769620807167037003039725305393540965726381629996124621484271144084083589124601987540966936069379542681592208994762952052211117269341161384012654815380134967884763222199108472250681623352905133027792101558101894636220658367559411871223202244953373559958967148117689652932785695640473759387188812907522688871907250631534489141263436342516557412880620194830305485739162594024870008736387932222101518868734422374939174935425958275251357687807980479821009909663382476448598017832507336634339734186546770497254386271015842440568342295228349818053040521727456322040239299519434129763593826700704587798055408526995781171577702465099832123655431907839563870716285513765597255980415114697602480050384406194851374418086716841294879603472243935190023778169965016940617693142770427841021330115906860371838198787317221616555893898766577603531220389023135984821682804394745776793620064765055880557258240891694528789675279478944261849771256835706997972864743381196918406036151663621517437555967351310839683334023209245296723282921871830039636331091541422420744854062075856203075007687151206040477208024910270783724180483080867424913238170027940164548967433591129673052219864172608243090879335872545286260764702075099397063657249943747664065831787636736248785964862352827428170145025779038370047492582821394163716126771220448622656802449711670681316849025733187659165169268220801046139027853959587775757109268194764097527515624579125562890632417890493655920374364388144320144705081589751650451430714354238456651321230434971598591597733979269885692708383816489718979078170505162589526294878981724072793252050761256158625429114929710683096671558501024562393253817852573726429178496982177836712473034141731957873599031814117439590177594528907992712014295755868125568508448546865846714663423819486390481549613046821524276107302239575389054104538757668896020647757706126562132084271667123486136586906789751642936688266613353018981680654958301997904131915271451475347227400575324175855919498977586790231768111119500190682369782404029316343994728257804506854335446454896245032455626308322296693575567313525947910547019755713478652889262796777648112217519917947940490667603868387968961621434386776265192590718973440546206849590244362259694821978177768439269168508410648949423161078527138200708689865605730922003947371644583917398239708004664259212411330288515410119344810881370400189492028352717283576329545446048380331347026404693600393268311206752855103236087215378157183704674538165482125024609899269443962581138446233582810032986093510585120364158127562713556189249059486298477353952371524330730922937110546542998569397887778156871683133826521600709490356956445415992147281198147046673370511638603124557158301389749891568365051555152754063743964606785303677909098487823576748777989242254433975148989943116832640455958684284324079101054500691983794447333314839296751451219508942261177409427909925348796928676487558600691322946631674909140059442193595722805168154573515726902187569725092424740814673166470698635864763116363761806477059575946526948381891459595657804994644654531694734994522746889673646722628019112210431188202342417628285149167030072323577658040496210466073165448549596629656966789606038896537165466929724293260195621453044321817619033979422283530177248217121437022101738111533881936282476447029108929137694923099060624149192568637832041848225874793779164634820415479837172123800409598174919513235614381198930233718420665655592824258988701450732929827559677306992560674947760687253202341750436378870473730215314489979364303674774401807499642208845953433338692617717940959540998363312228418357866917041897107749926891322358274708107272956700531040304352002172572515053876196582576929969734989046765475258232558144156542843376003837076351353104076885749248220313955298678835253463686741736921537448670202171973034453494025438416172794276477201296103650271630294237418241427003133455137788631726823849221723145663558450521803098169736225625114703440244923852222883137803744786623139460683985069466796997652528534914282898468511188316331881182537019020749843152377955985796544205459653827877899894075887393961973463258139988242830295867034458301497011913294004037435052849335198446672467765470141376031741454673101168612057730537411198928006134320127918349451967245292722976632956000789899918706620661008548313459634486805627860044120903329899609909219169020506750806035144776819378278402741188504546625727984414836638680879691394130849273028532538250659715608478154808823905924428373598519650854652650999828002656685513091639978790333868613484140089228617415913817391949205932219198706463434276047439095325196629950500176980310058455212151509602649890038827141193364563309422530590442664754997403292087464397547833143987920977088678889677342602076840937406482253643351746533417380487793740298319270711109057098166952197389974805163918185315485202562966389214197982428432800217470741415749917046346540307082256739508637219550593271801519848338738206740964297125926214190000242734823079968936691523699304612169874035035732186081134109371031230145275804618524985239255472340807911170597007438271133053288952150424938653166022788895792968610858413748769334550017030444101586368076260768355401264385252172520324076144234243707471555209907075134582306315129751801845664057758726881855645031117542877259195399285107275574021334112657059369638459084890449805463074921930872674277221781148714069656190321894976104692923438057596253633113035534985232921191450335927848405640264077978642765829981504721826020331357793213881145698750416346501491785312084825499360195795853721248547763849557341801476652917736367451883165460283799025293624282704555119640559845929355535016957029065723064449321053429884032856346187025107673202065444955198081156634779927779938661940319561517414562377799277756332247320471939437429385048217422754928850007963312682099731594872596481638345312277557979921028668580483183166574577425620686498114507403154719948146043639459742607746460018886031726927851616448937376474054529560441368883871818564029879140226420542857255565780402689209848705849454616016976392882361422599242105398266361131132232354344829108866907594056316656773755759031509391282484775906136756375265577329637846175476603920688736500622552071686329185056360187321598508049660186745358791420274467413500855817714391631077290475444473866555528345537555864327460706374251399549937747310779428473293096167710961738431690957185481347905905192421752019838498518957084932689936452329825817797926451038625012458384045912017984256319900022639027194370076038636537993664083217403717050760844263063920368661050421507078029699010277613988876408744456531435291102418898840482313478570596430316541118788349514838781017535746193321416650936224253316003297352140128607768839448142128455554951149919569821726350189352238134126751397213047920658835284917746953627385817788287292264012041377233670459593381884283157452911433725312177146610974950417180971526438270909100800001957302000842345076105492117651689057126970728283204701402989657959508261545363832750659940441891152748461178420428990415095110316188283199623493451391578244035957892229521217989291809853141125689389740025035427266289741628322459474911643904723014982961836287327225331155998688030264934902392278987814191798332348062221161360743383983614259879957173000114816614003082949282633691308386673074480427355692329612104239192560098208781257996534298445259612589591295849424966792684265825339881354662405171502851649726649460580669457951928702646547140704390586544412927411275666990757507985351676047313760038370939985349730946600041298960758731089790846003062639521610912989618151762313321343846333676835837070804307760011265871864474926993684924158543837124090196331393021300444780445378567050976931436531964143343373629518261601350566774631227483285169063485493685861157465902667001084758507690767351883288213668608873171347059535876714359369970501177260942040499967394627773741396987659531731993600692095102851571264327216057312141958303911313700639903663554980882243906044252617196494100304272316648360974909355397801818252232774869476292051095602274621252196440676916955609983793888074038332698059807788419465352284050082025972049848266117634695870651820243198614713515517485050363915880937032963918327001792854011723367025096285767785643636329388250388567806914027345697955637289881115862062402074589381774175701583193126128614296111040863927053264932429641498045439253643389490156251882534244787810954276246470205142648543654547601400472792678233203811607599808038842102224733748206313547460636570926432323451695679816304421604546598201441621048488676277059863619950240971593854614824709005707733258814395047704873749649486288529690396852492139433776374099350629818212031494537620089571815396983615032636392179113143997732685855320434482550556270050372321651833771558804961664061213626137327887742191845125942085949678923669213918659707669561086419342774723944453198670402483938843885765780813948028437039727263745938463597468740081574487297132793692457383572779136363445500898533606586602435409652984782032054094667190599146571809120769294816774339761899260392658911207768789847243442840698181770027493351640977807419103428532670674596672373164063378881076013411085872915072972145058608235526904196107462832343924229276374947681647069527559481217264123610237221551318671341274765179362145535002052997540005836575849046745560346451111941463859639753317187572567320058239668621357365276928130299795638002539218096250860355699694019752718609361875576180827721298044826286288044271723346414897537635485905829243061647628759577840565520012207675053046604064585102343583376868947532830082976376878466190135682120716697317579023915444806457017986448819043834972697533115680449972496144128311296707700862629549995572823574246554381813033884426656796329394277923327698435906441222408767629051820606070315668898948265096582345808722772503145144095235455217506993546765578666740073960062494131314722055151571498501889104074484466237568351697489725537909952586720540301735509235024614006293972107412646808589662131421839386187966291951843916941974969366319983607891829701332593775030655023376450433914401711544480621615677762660590150713768875005808074097061849422361990746120959071346774834893165863479924768307864155414019472256445380198770455243151097567987705337101621756138252060840891830408502538030609701416411480945918053849853940396860289587426351252422886539035535196224504201252597518102030465250506581277585993181080824660344796477322862935255136309798993987570051461253416722321811199839473921999956422673320901515761619307296347246192234919224143485957009214021969414393510313960958460315488740325075278172308208163643695616535643679445971317067186053847966916565195612400724482966198228741774084807412860306228217802637576791616546029561877130309121709289755364905723702162289747517132181097235584185268701167989138172898598993428161842124938836597678783974937081864163322336384177405723111470989369686038181174914202027919464875400959721635446054843401608025819949272933718545006776090197889774438413257293279481359109257048862771127968579896844471919316278852993503092094407761709493632405603652104041856862478130161099714499118095162535380748889822353465343303428930838890914254337823614154157088105605040536557579920067588651575694993977416047981717840809639598001665715570999099244625255076369652769782277815205238613225968391918520770257123753019914123429890965082418650107655441983053253879924832146725225595745381922075541267071376010942403464129602326244343571876501112851007667478166090839034970119565772906439461892075378191585335432532153162563954491487786554533050395087288888532199878261854733995672420832845764144779039930366618618888886833871866232059806574066140591795209959029953662424146560225490759735402508790099879143875801641578878103820138797882357932329447539150623262264211523403452975774848308930545228874556651608409545127870174033545805066113715619098746097186265884436082152663406648732748324885775371104157703453957856580867918935404117699500440364294416399715623317254885898453973741020393813416563607902419132120037799289768940409967534504962085622903795904246510971588622179553214421046160733081222153955165611513619194809497220271836808644780898434621520887436744729560520269361358538161449274014866084405109637833048081207873066378612409750973542778152352341619076975987477123848003497406754727126792357080666858454608079690616186285723436271816609095976047090250919756002514838142344623506864329499677306671142483886978108077204604753984530620814435210471986490288537706350520180242524335702489066585106798881599958720012696952329112584467574246101894448283886240931248697018409350307399179209119560348047973348436233408593576472210196511696542852475589333241142732987243368389107772270963716838178657817212306300887121697569697456615236846280411708747464149912916759818227598311951964462739309723541560208233472844214670311256734064541793783251048949184132400879191975578715042963442918116199473810749968931968657054220085589989012602184908646589792546244682691691905276214161198151639302373322019017369075575398226818887857341001884890310838118338244192313378759777957512882256560125585386950485268334274686947754515347423922442064236436232838463391838115490534289180194961922835445019559231322167847317212708472805544661458182792707033691000582133925775170652366899132875170796183811106506115129674124155303258535807380853080403936423324280256230101903192631585684582587811559653128695096205979778706607633733699632665747260620007765837860030125201348608212294563266741910675657539638809136416369736781900833959938158045903971201664480946253814136838247155517435545873759643180485012118260003540374033259041737830977218394577044749825974080780971806893018715899721833215618381368623284555150873637125591621484168098841783512513419458706769370920976393419553820206625298980213566757487593968397224159775532702063469923145472297988998812144893727575318492564223472383579291981136714936560204375752674042054570134854767246043456805755910275915109328234864888264430888876989535531071697577682648400551924460364235441849856568053920275802078642403945225641692060802057481423744895515457715279080292281992534627405987184921798439400629626127813024722165420990142489946917969049337302673498801763442588439430508501446862526902628613603281866961577846880028037936408692976556044664498354845559845430502601454635913866265814134329378886114465877962031776129827111059284331937795362656741092214679037097098535189131861786191747545916088105850635337439551627941196917695219143068757125769117962818983530136509500632515799485782483841592753257992997971227958454641336821953918749877198873862209170859269247812051482381766763284515092575067806355485875725211929649383507554108404184962940730907839524057840472530292113246886767989031202852451026857059707993818862997987926640015335301941733827583118479486496914410015300480930236496887219902431057670845304072075909862833012835978671400859906876809114601722016033511318691511424219592866026843791283397017203244483078230257138123459214555946473422374480695006935470291847427734274169150113650041247692246858733875180942986074994304185522853528080961278019117600997613580055033440684565387879311023970858418151081865041076254038909096025129957226389079575087036346446081616532426407458843362547531389533745835989890435900216482117396534955085732159358282114571719314207318692422219962840160212279673594863800539840406666499774099154899308761659012249845332104974523587555784203420272009386847935406416407040514186209173396118649171304779152091429009389748887597607720730729827344656426508337525409697042802399514632522510413153985730979024342908897956689189772757180910040687580433271241694942196763309005687623142320804688357312591979015076488937176461217089065438344622742107603987998930691927747505946840326183269483985614373174235087994423953030857759232251015981414374380415748018802568275222698220566438503382696111588691504739014658348826126592852664432602298398158874407634494909226556830371683701696411973150090995176321309916543609886451855177114584556518969799731088290321211103204514093981977697561695937746963151676361330867928145605490450081926319995779065702673313198644030519253299185371994029350638066296311402884022020150204565207482248719826520153717908060299093453141860370935458606242157885024054342749911394968623713393179004851052440432346387381631191671412425734476049497310511511587540015432517248235334093727849335534917319824375464921239187017729416542315492238873157949064295816180555379139323908626225465731754191918515610900688167988234272564938962890350643087579160555620087815382602177135292088077041326268752819288204344394474610696845712134678143703327338490733435350255625243835310904395500944635263475480112307388412343296337744512383166166010224532994406835304986182993409163418661978530485392027298102518425107730522383301500969383691961796369815406996151021664671310190029591840405590119561134056023379897482169454860314272086457874818992920547021727367296645127492594556741031163129547405428720259162036746318465811300305201833062073112387204065111145876076078530691809472563051018764602852669356467845072404418418547097263122413427500713771948229563653485992054598034032312233676817338545582417877908861672816881060872001084686442906823468312785010577806348717047153836304862983837172303769166860462648279121922236326285631351812147954219777560078905156890451382879383033470741732093667278921731756525725191109280575423334987029152318571051988435792901109403120076418045917731351356863608218611679932486067157981252055304598141609241125308076799491527776547414861098608656943474731832252847608452979197154956407045195266710365814781915925669505858974788362915292925433831417542233669805971452371396727981305431499309324264992922802028268723914506135602351676956343495874659305876295833317807143886843380529843005894428826846658913154964475263001986937630808339958500037882154587574316289256148810019355692264736091746977251814883260879191943125899575240774471256703014832800180873344197297269303912400148285670613255827269512248839834015028200577308052801034627456859563276102878647943465658566511563901447372811215240309224793068826025911971364501038472420505147825367493025015098467332975299628943651011121916252711091280902292381183758367931329385029884074270812635615698976982243534810027364373602776637902055259363508973972816390730340290419408238609011704881693542270975055165604882137951128993879567500309908533084980719330695637705536060545909799221013659537210435818076567070887311038504420683709493876958768967774261353510053323493387302289287103227208926320251984562118169765492351237320051912183272354778613967490056970840294426948864031980475851775140400947488223971762070615632237937548106830157727177243853229987704685535009298742020877449216666644544285226448674531025485549121473339522962386959148283789468632530098226484201128984134564588306906365625600147958482521297092676663799203884312193437174199842253806805364326982516953860172675680205046985145241033490438527171792582572443322402717751565902210632369743034337523606674003176051425822234995463532959838788087616065309571153923729219717812191764557510225636768231187814974632678773803784906147371821951562607902991642924350918503467241407324018531447979035122919022372811075480726147256917278370751456971201036602294441277577897304904891523629885120944546637928136761251533408814591338023095478470494788403896798973039221478916612448841350269919841388148412773472940457013284074777110146458010005022507187236224074258521014026841583291424223540722646085534220469162829116160875890123410863942462764376964984241343565946310009544296222667277231586980765228164022465591313849788620602099117687122832383957914832445803687042537587929188596518767581841804045816586282185951509675460773740693120682602620364188208907547490213212877168642512168717496378487878877188757716748912727052917098912224426778108781282263758453509597897033175436100090264372448067390151175544590180984080388405760420996498695301782323419439098443799058296123313033265812200555037735907873485983325387280329065899073170479612175863437945250426072598476869451001161621047239367889303584913379122888261955712109678950796352986936419331842906313113225896516684872653623712446139131167268905862835882648825529005760175131162899693528535727457686137925978422608780916128070806046036155213867285063611639253409917695601552559046551551431784762677467522399566122835021239282379262801462306510100082462249859691340687263555945579019486148159858248894256209729501226506296930453961478970626544484073802422136062529985246049301220100542881891138442527345934814848368586932687009083876869055945405405260458915960792455528213046654164623932818096054727908387728282309906424077036344390392073871742740418585279006453883531206052312665128525132072241807128436694168727628418313178860848075162391415053910244715209430028108662104192722058926997896709113789301347091291464510764150947836462686832107169295626281772204180032519750105601102551670320214920681120848270047308369739037948705972409664353704678467301154073367078132077211396018675862576903812542637283591391893030215037323407228578464860325437624450259140022039332194595532107069376884607462797424329598755239964910491198671670611203005235952750242960372870153564334268374237841042311429939151593610513045922153911137853924406427255114526306038302922522659711894364455049786330373515547599356080993154247087045759088552126517354371400304821479730416519051533579769385291951171649702734251430206905678859347989563721696014486336340108185830401201517044095096496175072797183473161818306862933815017941194670345287583006512995837114314720611860613052896690054628391690463091051495995168704287788776450130146284283250164345669442998428712371900744165879836889182089523514732397850722503605285695461037126390788795861613483523654366461462437886699257910082184637319564744406495383914559348667596430429816400160771144646447376132389558680162428689776499437518653568221088755540335880178741417057096180768744307471448459538312640025956313717219060596044928585391401967650522676228012963941578268381652695329730962213183065824824961116776220103164586950399181057035486282536004342199493239290030459233346404583108334939094679390441481987785212491873450085259820590486909095925950427367275288701692280598992034850538542205924372765101853455723194096818228395128112079640642842547618836983970853343515720995535758479674735571158910651902569691543457102005665171063299098455292156556892628518741403711037573292759540294460234159967442379558843244326985327826296147110065191113847256714277552391441617896759148205366647980044448367399372399407761754511967145105463900439463804993138932296384578992938564003850316238724741132062510475396028111711620125776510684848866223310136971285319841122333831108755576543210708458610919880947971624209243997469869205592155255872261011931268809278343457299011305722340736866240880286956936059345692134834376560883389141013707224560523166732599572994596806029898203866511634784219632451629975933066465190788164295910230131537616143486780557873358512908601040231600877544991878576125046365225673112934041385644966040473492490283848812970974409611599094938212178790839573797950704786843109740734247882237008836779568703465217316997362522414624651236504973334125134464485969127483918861880457572647808440307852219657481618905225401830845402970088185522142807897549226498687062818529489930649126214164566150696487178477350244291856572938929938053142000382943540920689297469959557747695597561264329427798935891202676526714461968731157047362870637736932379537750096651023939411784429025759411206909435464305213982449446656661372332578516994141051082132477776564180613093004028672231368716745090118711183981566245194919696199023504130598486575157755128241333062554175438789825052503209998998576884872428542091107426957479296474002933639018883543101479695644666794571645885912497566115474760789711630411816841788170572452075599026324164379595975786992704034971406782432437296681870548088612982555444666599796556041820185886683187530377074994079424284355253538164380297398298736120948903212717862634670380141963323145567287991266344598499741826979553709162536360054709269409877966851294078328467237892642504166258526513250322235194963507558158150543126977677723610477609252713503717193795021263838859989634131874832858109123848420901185893197518246837780834470970677099998641936260952463967320342914052348858474215231100538714224169058582242060675382644709013862076149615925521489736295963565166095294145364429966129285570418233583791561928143380917736111503793333388310561010984013735046472546807189283819627927600047671687154344832025777758037030410043215526048987070430211326705731438307390953085484610435585600695851394388272370061294254374942231015332399286761426715870180236179766609497558881517477537517577313415158664871519689708832276932738507706912135228025147743937359792299973613797755260940828598384428787710070711491820990645207876413719949053619792864357861708008967400170415113605645029429393228590127623048622793665876117916917324429931423023856027054314310627290407284797677387370285611579591283168705104873500120835926276478869793575902285400697190141979926834866832767162924779270405993800889430417069138357941694425884535795687881280957927338490691079191109119503071269545102359679548954460337225212750642156253478896158815294618975769082248186791753530630027969771507846171557132048801776910032059957094444497199324954902201441422964339067690534042126553290151382478382540436188917063631666076546639629703173490529483098354031240447462001216806999860293890031488257133733064314399090284139653145340477785370209446727301040780466540769777607570293793476380002651724519130792252895393364554388917838121671793633219971817262921625258946941373001883952334360891342782147310614650913065698378963709234928886252203307017870435066501678909835248336844418775449515945653751484755222268840453700210219584723715159855509814346934749047329117281316435118238103881015983449997034249111069162425607471157517213386480140573210987978121193189852220929113415197542314762227362662575562402275759244954632903839275995093709201796935134802835713994085372692315899196745067973516565268251767427065898841289973728424144052677516358799058622537745025402824415353422733051286373723917434156326514738007449827250714686235724708051164373356881985128753620275141171064002964128438184192226529132809291535674596414707410679432443579498101954601810081827983034040581144535407339310411402801178121568684348726677755510634419894049429105050276598200533009711955570855776922332302198530628359450193921608709013221981617021374026974435878111199135721624924820038896401436254653251306091042928007128522833456157508785903064041614059091460970922808264703027847127992858432433328237109852121030582063111877639755666051085429702071260954085613154342353638200865920704894545123552986216648302794393939440559603695810811882832997676902858539722177286796486493871283407459938279793371573896389004413136055556166700486100219615551588085357797812835459838320113022320455006858997938299776608723230739073983467203140939553025080096638799423084208352432524187813840840344426878709758551029439528169416609973405025895375481041174927151277166170880097590056943001868251753360034889970459559208823052509995925379433669491310581336247643647560997924215483105328112567442212362994647255260031484791166266520391011480910237874114615852860408355856179025783481972022196507311701158695879343551430851743911651677056500048271096441274957396677075211422387865933260782496090315864322006068809725982963586131946324639279818757785348497551763605068062151806622564798757151948277130304573588972875607673977736177028384585405161626620263437505636381980486851211781921234027925180332501007403615290911074564725815095289901203583923315108014501311178185961833938218279375269301009993337212254368111165398778659243754376040186331307328222298327890766243036401095771479860382479917896574441415910187450980233076965102588336962446295026371453642827318561244611575615139011312425838009953241882878394302531407872774084961840314275082898252632613779664782334066807913662278053907884024318666062782937225560720536709193270255432388676042874742560716370923388448153851878772583749799590874465101917459995421256520820283498681877198920950794792712111956030540145315180393898518390038058732362835894485881723521548152147259024095635114005860012659225684675205167183296493131038505368485799231099527572389230801411439278686163425102111774636483849932064009089590449603819865072498560930590451381219666385540623549313526542108056601821401083212578322311802011927985723542630811172996094824094969563803079101650206738966146595692680467741219940458073463558953125930232079499856325252150958897764657394870894060505055702017064779956454744003597478160776621417998223880911764554684539640779025314730487588901221456784964443260417755025238529675869887063571573572232911700296073734447355927956579536410913057541347545488600833628776092648559061097147986580117870345635963330751502994977200283470221951510121378945540245565266595336802416173444215355395917693488455157964895586040239439130267469016204916045913688384018560486357940721698687690286160866229015255516376407465911026142741275151483483517088420159457776239606779787553147472397099555687547188963398890847006225777990361272927351334851404142106900028409933617348613369702128065911841319881255480497958578927703207302876851502581286903336408580533755227786021503161542496773803730034633546135188653639610091793862080711764643517522551000871633753435647145236310196276270815457857893344155830824360521717250617971132481859908750766280161692378415225076012174601915948966885513306336779260546860086436391340865539780347939804708818629111451343341955611106225323731794518172260388532675673842321501281892387984565144265290204579800542036985080633203509491666562695976491166054070123460100579701057149569100472461923887735033254032174806117383224068159360087341204696611168383501853349289560091683285307789546783144251667117121157983917527357712378030941074240218448722354831115039576444753746456902998012900032523480996606779029268886866458379182828663527394710375166675315190400264927610850623011761495870163792060492856936431512851307260278752453506770812313181752470557790462240325733438831407406438681884254030703513646812267789750865081162888942387800427562266543601805764332762263557869574154853524523205995440929845477106146229020342821465759183653865094249887861982782860573447805230354138234573218187116101947436343219620346123287427500032669428276030775381643243615176874357763146251596813902885275357609506645118778891659864487454355239808493236449000765556140941495766649740827695079992520001431674971027484547736364440250597567167788127092311036680223552576778728448353429538854028901606081298480858346265903331880589449645678259138452512273064358020592228090802895279259474441331788376453065152189392690460260074457021342823984231810792393495455418589407226348342977651894889724097217034085793889595220957290213508507417301881592785585534752282847585989638136998892773730265433144716673676491926580151083618243669980784292403295044451621041006659965992154191354291016410076170946661133578852490907634689307716624904477919555220562889735006853429867205069776367629862855137564404510708472743934021590393176845330832941246336726360673415606797399278901396996728625260207680353563943924093226018325825495219004867673153994289236733627508066339209286663422519141458445556720069251894967162983149604323354782933733042154453937801835828380855398039647219778032866113086267494245653175481394549787413659474468480155979054533308690204644307563725817193414892812477986808768091543443584082045119222598407939704932582083626616648127650397753881153741763991702955332860147598153672622244373713765387724553789614159855167181793534827438624850693521597815873117707553782660831549651720038681612542301966731789340344570217695598912274141064689066573489473239001549918369298895492422194439053638230047383859453856805319095124339684518949404394687743611981270522640410753464503568634625982238824445990311849584588108039604819995819864375903989346803397178914268271996436003228725791205977624108600117576905350809826924850085766149654553892099504681833505684303363403726725920870731678077229985176279564755661616525033371297696502906498586992926582867679935616779406637661964949460677290370410120519284531652107290912282550875239516854299795995351794213225070349597611022809649944948975882621089359449074332953253115949035017574343421757719785126696302627314981101804338191418273241081420230473220148003108348369894834166278806415651911630377167478582949131426692701367066745063567347932611120473228506362695069165019927806483279985596377630847217462623739505045411521869033924083751605063875173071958945519478316545801605850852171545041536973531992437360148665410289362797391251548470606425126328592584791463050194127738215241943371864400991725957537052321264112184442039097351738933209570666984926033613951199426686596976475288465442523604009343960682696319212297326964114232313217580014497653054526672637339579690346431723116372652050083300858948754320694155401240974790329472325527582445184140615455815424620800803550128301141000299784152414849160564166000143733722527362422299196121942065014895564484625721186791437519718232667004163083698339925225053698348637640114987460038999120449619211231458450400651408585399763995394107052552392250265065339296327746570000288471178360168306678408210145350829490814777437387805390192462551604552065205216045021970706862381625927740075457432441563654536206458498561219468786889466115899691978629873990397985225375033565544636044839189638564770852049131202272505041025499646049303356543975987042151899848972152464213391971979401262081967644460901031720506561188587783400186177978175935194046232103406943670131465501110944320277725382010085215885109597293638141418734251548738294940071991269788042394343597789947009912837380586156827952177161587443275391074412645593076306280118013880820914530276248415515172000937586832255351929877916390186340290153213778677126473835104596601252656903931754135885278462253708762207574108931542607731138656965067489439848519943103070681645053583833173630122789185299407005658101158146142085611600958697932688253661469755516683351029509346905676410280913957729085794544714143434668308463331420391214290711970840222872973011234296591111575694390471013043198996802440675876688164991685241533546619449238286631578846636959118580069318292921439839700465769014614019065655380701826487706607075445638111393212738235182290453569773801367184109558188097376753013143483485520385400400797034332453653661367192480644981691544095170504402071018842357842845157086787760993866893102514147899276430012044215658700716779887902953590611200569123912930765255779843650092548800483491164056912743987453932228469877639320609761644516390753662638821603159336971210864033393977047344097006516302925776414073370276610902191698167536695932053782247228551530105753130086507052954176830402499439357259563307407724829362655592015346678420966336187668165103706477867681428246218301767554775031351506143425062078991372173384186754473536772516077738948583358851395686572181751747114959652342593416342405879802359850389236992281462041362119250690920874196014507956143181977683101019483819596083016526298601000710735926954430851222902813548088310699313296729470406137006522055038450719056474353616765269812878994301055626004985668641294600598516545648220280484850510011136381061571892025008338395026118216556344069864744252714432844613093850611815143049778624660899479611484527556024307517600831313190560948099502674692890997736154557737832714418435662900568229823987646380630426866198959989328591008973792670691035550622354270991482007896502617850719209376365177745224762290719016464352882517405980467223650520345479165967508474194329614629212812866930003437477060230808991310767434864335601157973581568654825699128418660534734573635922311872740200710734963568897513479242838574261330009966755513721800246551904175593976059555677662463693369579546120840958745499926626552302888865653155837018027544740966870210873765325189124917623872520534990229865207516037957959834519777988535641434686667487122877648404766995065782229017120731120468464326384119324070688172403582951096499262832710602517734103234625078539794253267304053162559068904898953856000129949550587159973484778166951084519235876157480593740773915955836879796006742513600841790184270072845141621383254216846532625331208751338226577711716376507284625867211728253860852541160068416363739967544833255883067597262667561976258515985582954660079126196425283294306242090635583161371973230181611311247642477903511305826791953388613474765376616571004735881276971891266749904039235707905315300638123895046238037538846786819611871656985640847133464370973558198756729442384970938024013623040900217947099709736728366371336543195132582151776153042533063212483883871849122005201678053686321164192927739252717079656568545323690799759253621002112631128949904124346455931539628154302907573622318551711122380940309659813523397233803831919196333466748045542951216032058076117556457073337529510215820746679164164113559096693634587459557201308109387292148924432995025077383777791023819162337026530637659046037560593129632331413134729194401672999963536048645533378142445407296910022056414242693130005995309186169800787958546818898634835859411721348271527746102333219243013711552327977329665311881276155147511549157970017052998034696467427352765791323888741719594397340007589398225267714678610059117182038487639749386212495467218741096776628819848403524753405909369823149234856545685189665438069320888402136763147484924353147337450187930797923970453336240708889766667086129515314108890634760422802308497915035211901879951555925316290113113513454028191335047924747252761466730785577789350330307775586653394266272233785112226757997936370285628426841393368346865209761534621128000618935556310841183362512546119434129710187853735810347227229961741459770718965005237017407247660471429858515016203780320438522731164580296217109220975220356631809199669881495662462571813249380504063850489558089857755112613970616720623739354131670623164795127452034425518008291513115542177660555495342361737474304994126924913508660281547164937900022033559417534053179569399797517020919034075517581680388083897831071670761795985213196381488340592579294832363014234046433081255860473875142272522019475662757246290635750916358423145338271351313504900435186104280310390751431150669775668060120583251872227622561533612410446293020083905827875496974609360805503655500340479077918514578914242560081208130264825338337977114970783079409173277691380132264969296914457088244455162293866669406457560358299770396258957496448096987533049421311545765059663563809105811516049171677559886691878593057517765328775292008209019917454655800838336415689424746230192522496682932371153491448713006845632425188534739467766629437141960340398096345281983003485064524554762293570658062591725453294211617881072676956101566869867912911590431757290217694650281040761620670135197123030693105594482943007802718046125464049355902051120355478035545484198703960029334059099960503890800065645327602648911366870926502793649056608649256805360147012815558007177913573362116966744023520999917440627859770945583719825492064315924632555442679102338746685534213292779503342708977582918041234851125503874586451309800680071959718876911643998053745437549587094700869117208383893172857890913824588050612929068842127389069147154263842664883712102614009807629354270286892546916034841646723981611820302283170990085431265651881225245300581158779252117799128155174650661056981020215041561853735669436676215190876767921525383621352878713915983820513953482113258264502275446797031136326880413229804629300491714745956471881220809227237492822175432114674141054649502134691262059083927130681152915234619044578168234688929925021901219221333501313793007358329663917186340556584902884451055021311436481616182161102065326799133273687387107622899015380747538624297195626730675409159932721013406803665872749583257324767969206823860807006733073837973441322567504463706968082490018141092406778680543673335297532857988112236207551754526679064846209028773325376448173548951738523243100814443325848890764654650872077243997513565924600021173244009552891796465730210767860990069359946837472160614157886834571765732298308611762450833432309285447684647591213041277839946556936418620993172271929675817539131925851724445771377074376619973760637691957698730979510790024499975887147148008018330986833093218601897944466023666716482242292258365077932483180669971604123613292348759570454572280325360540160159671680754449126119598518523688248972251250951497684336023345163981805392953889816951559488950939482912206130396564376547302530989637334616602970058755804598364513159454503471330645074313413430215862886802900021440582920246290013478659181534707272448989318238203077084567476256197098729765249694165495028678472925826201664800764191542018074092027442206883862085578828434192736135861482034752554627453370134527880937939694376025101824359173155243475534629406383576034228106073196962046421546867851270668568474274410589258361131832150241064621527935242680802119920476766491646312958973024895445517122155866337880822376187781386927287496634561049114444146116244772141221561529564404546820315446366074892516544697970620463886892529120547886878902814776438212434413728326675523827891015286364535217589911085017350354681885359811512215224135969158429231652779708725720068370744013982871857923866818913795723738383519759822709855896205490877652466341487535993431889639827268073139877789267304651742493653522725607054741391001012099330756667913192054929935391865222040100564299316134923468214368914950810601706476612150347007947363546020949916918536734558258887691152496380153501406668646405388952449670235607727309925626639167022916687552187328865533795769490823208294068388062531716827660383186517488042339711948714765127976687503413499027574387622142776789145839434857313059582903755238777324623093831240580736508527955836317578154669204727956496649159605368530070851672030871356869681116572007100008157965291405099455965485362695883812262689792100246974454249137390044731747956536122099169055894939693214459648440493684849019152849140736556071283360619139371287807747806842776179117882915264836258158106417767780808243304513996761215582972699463025985080026475196282650719758151200681981856802283911237122919719736490742076239952347671605352206547493800011643127952812642407254747927862626487702565619249812844748671133530374179087111581084541044837330548420764283946576470298499351871722029182833708141643325250000258526894638796001910237024703785654389812824993256414656029495997292932483652097251950910792747053659612897264863966138647748651631889409477015764827004984860655937677863461949899105238934902826151421419682981420957300952957221693021362109186436726697455543557086688027434113386497727202242948921865247736415348356810195199714909432394146798671606320027576771111702704468341713298372212928854574865362205737755086881310559029919607727240332283359829083340726077177153916473838298673722261040828456340562096193122347398118691469867536410892067207789435719784513378880482814280261048873732324751394973766486402827346381086361956229834443408394019911170813602444588848930678374839062188862827503586597404794111552589851994196771013736946984573017247404934544961162004245368221060579835896429950455501812308830635858563019712208111165375470565451359671260880926501906300470006803963466394271826500368776155317152420713428631146971853013599515093367191006853684929130807901446926145119791133198327690483529179049782816468162669371910291952030260425365249147698400801824089695671415957841383635428851667023431104258078164747056333806985092918251046007437875649582441551723144270213710311874241532019274480681380452888037658465845447295388504013441860692742438423491062444200868420161192543419454741153555606333299394250511684442053157199064742379925590721292821049627296779198676683436724753094880979568080658262492070337984732723396157589409707995891769241134420101120422007858043155252127056608100136819026320932830676104047424292511808304323539861248231525977196886438232583217220650666135123405363701244309839701314813046087888023424718882661974177429910089618725484307376998521674637478439191444237084621384107621677572951056628078640147524992656049038297384496601065026741396220182315459264818238113615720383878232984143864498497645186082244235806566519596396044571876690376363286915356643687620463543540592030679004811059503484838815606628913751206627614827512991696409106061324332387937206623164779545082405549528275589674475334589104946613052093393467505872067745650790175088584606378965598514897838215130776446603515314727434749257666158277243250943486551502857026436342730125135836891067528263014361264003508173141544717215770912778935144132479415094773567712384976242345011058723975146162609579937627775679160165390913910909749537474710250845381610147145213802746994069952613493504592556363384762602521372428763086495342040948199814674702439928054063439348818748906303743294663756958402911919293104168789406255800605979518819640331955892171306769191017476592053170806521608883972774850029827410808833983074525777357789324948055003126390508197103020182787767453030225933619688338053701386118124574843866152425372308201884502584625027062159601174853482702309017272830475960496041521260174873404530582234740723064669422800385525143969684131231092145368016265890726880276907119239472595541477045262768558205680330751271062315182672914264468647451209661310899710130996106272906330342072242442040550723433419653200180822083543763354158987285160728703281709186106754944582100082689024530085964060837171003585030722482294132855299566044429491331709821002721130300072436686276575135959621295222370096945626202518247571633943547466585043551506501773705463491339998361969666811877782422626522348961239759297455028898911479164336330872163641814205799385093731268539555806060996191893638810752045127181581653727475137004092112678711516678428767527608030139668463893006636493929303628283350026044598454243653863823633601170607023811783434257605770680815308923977647408031278615493182868654124809926519315588946388963862673832504175019369699571788009643690989536748409628574303302057166332743074186925000022475074390814969691557002654224945612242971013292847883517607660358237662382424944006615761407685366630765771440663470950769780641929727700404049591587010603690726746013530960182537308409141412575409946332303357679961069622098856462009393546658490455610200844508284077058408162495188757929139315817226007475193715682401431471393236944930525805553525467402262003131647062199349814173918987571917036986847294514173876772914925458963576853024313183945720675593317180403444927764357529080927420779249948025187823004811479160089443292994506202646262041513091535895351308001523152683731206354045512318397490772257592052201574250188735863084739765941483118834954446104909784243493518015826653650719484822484456234861019559870933115876562562072127077030380676464898120370178714427451950342618949907126589161452058636184644567909429544589889202579744078124902211236099807401224292570614747488464208666455628929812356296926254200380793253385000962238509643398346828389877908236024955134246857011156448102017023323156155386758242208325876169371434103585451162609532051475414181329935389449857583958316721988220721190657032851745039133584087740506155143498220148765119004963538386339013131147515512678333985993917876408530845537346296028107458421566297847433867772643205722345972433765347708403123573581908347170036078607080821459754675614995978869145176136414388102784505096906159012452281484396076790856840232439084624209208405361891837858669154953576715065896765232939960250597141328232599526867950425546455195611883983117339178831742928827869485209127320687564730343484284173260340314413189967325387187014321339199501863051575189157093147545356431582626749243471321859451822215117175778726535813890436030332851308382087173889961031576138779629998138875474732468411733895875582182167909009349810852684439833467097054624806820942583514293930543677098762946682018367359524393047584513505437630851347201568390725733207708627922452768764751576538829271299893925632967801652088549734481396318849671104112166976302138073510701707940766170436277477663489005044735916188773181081699215515701130094695143552011776493910534575265139623143244261260932781479697764272034855572639647529724230558165527689231040860596779219879726855313246528496274980718500922979774532821851683188310336032045666162629248461156919864173201250780322807810412111471633075635422166873363944003110886188382687935932720978666171031616780735544301378388892573842358308655514652417619852431339126210840845364919563113614426124498970368362634509735346677541780315636982054585514073838588776770956946318000672258150957526851095839792568419231994440019307670812478709330257662242372161454572854936526916588948026901938092407089006164577484689342978913306494201808795164272764322161767144996522134976135717030639102000890661856959760666499482686497515511016479910402424351855085027181990568114511494206333510724783787209696947647390566029383856255626307269063744985685928954505215100430235113950643404384923318039774402277408530222692617518461756185120459512303955584201395803441295405862057027487438972084144817196722653687641438485631847548751647316742829351859999272869649267719936994646216045633858531032197460268551314674730195960350298568062251667171695288695165008735445383219687119041025075571852430059805235939800426407953800516541223248195720779574271622450332579150907086573789079289357710496342971061161635048579851991850049448275697733037049147646102490592715321321204069969825505425225085105078158123174730653449962902976497614475356178497276434125569516720953250501188880564653869674072001831925470968990595500620705386999819030209571746748594538532897585748742471765361771314718402184844376890804137086607454887704018181439184241937470759994446028955404650086829505347065352445667684552759237242800007923938228527369315104723187951533379009345621676828283378013077780649080466437632717242397230657670026959527040369891064274613265755566014802170408117466049259335772489197096604372751462620315894472016381485407420868319502607151549753889576398231179225761962929826963003772795742775340027944827185067099914099872988513080229488825668535332888493837985786101070922870971095084329327814118285355762590245902954540890892902443236426147986923789296619264563855969402627102074218334441882192408712689119417584004491146380946351280001960324788190655625604561728208853125998656056832263210956598001890395143756051563554967448664832480402874321545817201449948238995764231162250323144992356963240517124284518049673989492796295014827168187458993248050076419255964263166718521623271765238100297795694859192360633429708401147026994574403278919621612642732702461284853462418831757097146732533536475248047442934118596951180881497605999026331547106214084205471242818267529671248717656441768814993934604295491051025349464638090306239548396388400951378004968528558104420092433871377058817057072511304812525936819252303245000514552372839963135556113295584858922643442392172044035285675172825198118115570311428926237662427049020940268444206058818599080118307052186841032405721841839766976450162195976410088772487054407524454688935000910801658396218699113975078082977809251130494772332092126254009752049962079466854577627508682161433588966795647407765391797995499123860463840827669825634538933305924863420741074806995190567192096826836549547806778493193338635518411586120926596521192459633852057960236829922714440466234217079752500076917849329279391102497418911705076607578806973823632140216739469206533705176260649910661627340561391506920125501515241719192494911427303377700361783474084052817536971745864135047947340341703713937678629430926610392532343933987831177207253092312486003404040146310660938062231408578876834389727461906556075228192996480723251030390349771580324953004559879383241919753750690685720038447745165360956234099387592766824034534255390205402363182047016121270427089826140899997447144540780248027407654505787581044288678819015953064321943255777338515376446880552432283065703010948992837840915743163918004982819875587235374760776079163338875707019010275073513606165986973712863005450220835240055122300502619590668339041402260159522203358365445043187404535041727945402302279160453144028852559175481027462063276961434621878500170855649707128606133760092932024069114871042204865504000226752477918213590033212959928842675453523172051499810130142816887139532915731786713309217974773144029843162451734849354097353768725248460681868119958769257047818231288687261046822657373270213434458744868793540397992064906815987782600177087140370107253111946915195663884595753114579637848539752322754082940631912513910482137339855598122321635047580794004494279783824499378260850456294094655443776996285439328904075079956301473056610112679623803176101042613750845865112336903079831083838868175786788539068067570900924349408857444938468282211874303915980065355220763328586505821265876986311590811229923202554386102409943059615138866802310009838737067825546782307947320828477343648506358722275201354788721801764254025196337352091889481506372211644048151570112080426041951788569710158693720086641423000036317686944023999794738324288606954645580349865363915962196426246917597847546227314153913278123194641811045519540175400191871131968117571815301952598501493154555564295188130337361905559327087892248348548931023618446294605661025455721586653344731634446445251673647824388262623465819494434732291111510370841407515779891455173928535682888404463716047035872810426395041956241294281773460340219207608417924955856352481136317000667771124465978973063112862186156867020481524514894354698168401982306900942272443310626900343370996416424828710290625168965650851312709815863915065014554951452922932585386167811212366307990140834532743623253928579288058810863241143345465200578389575057793016544237658269034343567151492710065932315875931226297630085735771867429950951793076212919006339275529243964143365174622309991152172118822062756620688472119033988229181756493776195235003678934358858016119477152927864336806631125983846106313223624923052057010499946086376017515724663802229057953776142941995183036763411710918953675140217090747164906896948262576468805794023978093845852269057364392939398593471894885714567624045951307184699454422504303525621916826922348918538009958567792009984409713426395247142955856150424844769303686140344776529457458851843250278085731194908243846605589701840375374206970190103178249975944054278228314863677669223758560180597310215920216115063027564364848427845569173850945252663398029906393701690096075208230654248691109617077552990497791827459502273870771950231097841977865577010329554805649114406223549663981810817082259488240025380777270690776991881226205813819316174752537280472047896353431395486233349107344240846539091621691353430531576985759651529350015107943494405227256875797920785073057363240361230102435941107615181619523320493801938956032243027125126699413572945898764595038270665118883804032895273537890002678036855092247124382546822162073545835133928253007659529272989979790946717903336280570891299525034938739496708098577342634490826791020754317752523539713038018639832939229606963734237432038394401356755065494268175373065594290144125283287979159121859149482934359713017698084566108411261030669276809796126421211884029159503169020247523531657996076113189383932222607043962213544020024202173509262784728780443255211416371229762904585634119264314915838123471551910315710658452337086906759383734290449854488030991507564122449759242018708440409424661741042634321401295520777141506240496238136452887200951739142606771290971828607711900307528763810387561049697944816262122054368559122123513199944765123145706087434268135741032144404444160662071696401882157877383556251419139325389927406852834841410382442602027526451539249236971071316337940566080898921726710526595928149337686997959480753847994166645353071559588308408603596781691448991226118276146755023120890032210374422239116895343650557690778342078094612204840013488032424690390806352552646555260279829685635306437554701977382893106704928841133986888482679497157993922878747498473078994867514185595015650079372792489716384719389021874538892560571338907319014355849051550164780627652288155496502548455092727302813979928940934772473574233436725677061887802335890298471947839395567928484591210668967613551678980986240882951995085080201941411507133944319144675127123720613136044038544681031780670166673260648860943684911728616356496030884404538028353900426696227556444725700893390732209690789820594244806164933943557592210873922348278229296018332279972895639484458611031910677528702667553035008753849469463474325422616824658919928514140061802287559895765587908858505835933601475489268749683125924837008953303151600742459861743845569630734687146236974241661722171279995170856972948121643286223039558278104719614816258825692746566976417675464302208192388112348362383007614885600224485804739401096863571490957281983780768113908018441089510332629730493678659146865785225790812638945487940995020948112099180531638646772801432954366157817615136563249395628817653012686825737581748939761381763797119601305203766025035560628654717954777398268834856050108902242231249524100224621477029299570933598919839837797002753911012605167144360900815751407426520820855128862855335479060644461635628410475620617459961955220029278680351165974292099892305728937968699251791464911785362864453566059034069317333051761975257573342059840535074522985334566868539515962757621630018078592099573191830672323544766393984987032513272040920051123525601781647796622165304791838516018978827575972439808430749742703138350732295654794238143334455595790959509992401486670877435564687658752111421913658679631061714897905010564738207134602231168710627075638974021482159238489329911988229627029396500447203147242368786320471738103039373018663092332773125533353203172525639297509257479455104382302049437991688159040154984586648322814545976495815775976599005758409811781450807126586223049870997945803040097214267501645188736924366018389438560170834704935464291562877837864442463114047147180714079958180042160305942587930241023761463222462566853280547761131085403655711853928783069613182709566216431825373864939951642245652894110204169203091775275947796248170433730299073561722390919243457518109427542288809099745356609400032059831115537621387067027015908276048624410266909714196852276642761060329682414427498739972968026404458521506876290021914251787631685126853457054286962398902117507194662998564089543986089016628576529589225453339706967137455276020083064378344888932096551261877216752556991093652146716231204241258684470867502546034345986826067194875070981245752164988794047261757849756881810574791034105307431438954145308846280583392585387413016417888849121618810572413312837889799267491913446575025195962589447002166859942672498156075128620609284517670766032386619618943374869220656183150443348193855957136595815781909431103261329249985122305208034319803658751229650770647578676701228418709954540167276479592156077914714586036780063083673816270530449030333838396321962838843658632358257812684597186574569854930333575213956704899868729088133822437986500588628500706743295357266638060645378111911120302293818378412062281862156896798532010908485841614450856644568399747881027002803972276377628402651226502476350005481714185183874626609692326644242113600582916299767708743242588762298036769629289304965315281894098044318688159993479041533112098044868046072858393627669222418365735952623803135888217263853858200624129619926800490040840410272090867855749600440135375605773163182547334371857400231790579423407692969169372908679618534683983856975651951071372862460983366679914403466662638128328086061154483483033677548208305100897131371168608603750446615339330943209740750329011878324871331645714439040199143097536986082374846018548478593982925131239756636284763294155437757092007569313712116310449041317318756201755274215227431294889371943644845992317471657111003516075599366601890277000746286012907108686774570003346112064790605756130135643446618891293326743501071734809122852577986722126436422102378310348322343344582141017519415806948501294142628083515183374334750229224501976316659515902406502044087646043782901828651515845663047690626410593237231956777242347355316599839018629924348015895046783085566734481832759474689312956822330900496292318717462876803126884100062165775306749285309790801164787129919156441610964910935442497423323730532894335042182759698894952927884396229890735965048126582715485937827739242358705543797408678096046862678343078781008812544348687726426928622345230145121421107289440576535411319436649475457529673411128828657738393998044160133478132156423834229887991272840797328472787935340498869081825987293503233704455741415802584699277672262416381758991483127648597262745944451828332114979251212683088877260328098850025058626530536881301951693734545351876411523155117885146805889843225648292168433635717281395485612484671706059780052684772808827960597333725457404831057992455009575653196643009861310852389020453189141819029023204582679612136627528961360863920546890694522859333601692616103303687582552767698994018273364963248280331907744677819767178250109027249045913351829881965204544833199210710815063680460593407237684303295860227362579836810628766022442489649852395204971747697578766988557762402721629810065945989568179362881740254473130047537857981247835923225634506398820170731714040086723130832511201598207961297388304995546785187560106390887449362901438408297016594062580604319666780247550263635313995307515099120587382212578748746570704728887994597511273821722197410917932224525590144736983914930897884929989706421446639557217221998525615457255538732094598450823201877887852535465374529107380261754846747703458628341079332996868506297161991117981112199917907812354429755778007408924783098846792909517515613894236136113142031286245941635074728792493814239579169753942689749822268790245277958281528473521632286566427542216762098328403481361937152321199615953719567403828856263674568154344206737596038614638532119357522194753449980054009890893876487325134156612432750022588817832105958473599085304744339663897355485207805099792214553790435513806578032558142419058333822541630239810403427388155576407896618743447092499313439813612814024905483920474704474697826322389309070504993356862010120637768794300494143668459150086506424926680031610269455543047081156625969359315555714842881833955310514800772767011160829840142956463056450064303317616109105339765023169296409008648809986194377601960176767387432570039193505712820746876064155272865962640102322340186901051981081026162793079618033957810134325217393624429561213804643866708728049816423442112269218249727859131968772375244775685461497735192364258425102004103581902290979679031635446975006260468692163284099079916668129943263069206131929374590970472215541344666746188685127568445375752066974307641134531745534236671962663238628945512602476170447577493104900327000667600610890937873729367876816863343379776210804477171967081193874460281110613254734315513075666307454482344381296677506013977251002974144554255046515564463719210825301886751233214897838290149145509245409737623363834855203608496968533019397251075528371472419459561521575908050149140947059130635452571615417180829061890896025698032722825290511122749097629879640769119523693191315204077016805207560243402067857371630215174128522056474159909251625043668835642629670026617268787127541478534510205646047850449916628426871841391292778478630593342809475601151358447230795345212429382128548841544221384894797131488401587007569726298615954564931124172168852490780296067754020027554448928286259577244508466266575765055963575227019502031316435168091469309610147364384030572232275649770949268281686358449953285344374038686206747462950352422982577593500537675656225066024756380357892523636621507393455594427466863630058222685364106949777972578817234060158679748047644254429060763352761535238095350048308534827926065880193245271506612218955213302982227796094711726073494461580415819581071479196229537129376040700530180672818571664764539434005429686375801288203038610197592836204023299358397960114623219114076296184519124142694736227530978986282691270317138842242736502085792972966382895873605923517452233919812931298786163024235709871656627641355101016725557860085365310102258063215802556202592321298061115054205845357639684730494397559963695736165954383105635717885598041473291727995809626426093805838646519806670190535310232408626516904784226546571818664259976027110684628467465491420272906068673399492054283679287761397808483673996860020196321617936590522990323137869324167443013714251246827763680133518942896707019403313913725841828019390304506640304889917327943499389396892945856942716534511117130978481406385992573249876703330591186007544620134058729410553562367576710823684704692823579521007738238628875662159044760086887726657374641679162709487469168782761306878971875214726456436911273382278921585174212429906733608255247112629895291234042719669294788537172397236122789266732432445376860949023565087746867441545392195184989783721647336814410390677634344523534730126057166257455734896725242410252551643939380297722937646205432283994969625489301844774704181145897323839354267202168420842855614882126816871118560165924615316577582734701473882225553155721138128579556538239268890434533858266743066168290570399082699525267725772923984403870344576141741294609239926133776328963799786309819611797597448811945016786146204245532255046424905511543647678610821856042548885325178906107199285058361564540776890411686688522365101679036180642559215995952190207359255100045586282946011181366062177857680602187545438334330853688050180574310241087425824977629413452978724919732384997735552510957275906156898973030898720642334944985676372773295267600612607162205212056784233608922707174389710911554086149760793750687268520520187077445463141248528289899627957164477508835250041845818634723234459116688466325014368791008807456092107389409479395099352608061430231633982508199371979550228307192415439271502593251551062097270121089498910323527814770256882792265282575093896161575815712324511351878858939444159224941485981208645666652644086137042012635089042790389337476644815139720310072150202122878336456344234435023284448702320681484208993684890052537791316623113281397250832298824628670370310544433964598771492960994908378226692602301696859945721281260073620879878254833744996995045012002591480233550490518572857479592679218930498803730169975499298391966169124169705047148804506082542021262114149501233878885523640695109174183505676981129182678148246992952744911379542873673845803038492529361352907914087084583175926428385952554362144939700749036486870518914066097587919099401405940118370264308325645309460145514309780239990202982923659747293704825399823334773336398809154148488281338984946274265113683710607036397095527173257401455864399625058053655229519950930579910287214241732681125772012080105376366335147123148046056329113219785631244637735150554136888351522895283013411680537079137425071421095683924098411674216793826250680046595412978401154024107427331159420509861869267155438160753533212022302317012380087221467200653256397769148467990412795560529588357849963088688643798809807322939600683455671427410143165978397202101642396514657196235991000781678465550971752836998839364355893638341159186734784869799045849420406319808461566660428842840666628417476579030911350112155711057553994726434072618452793972620747044365756714580641416907499327604571916579694266686501367271739085891374390222493219680598213293792806221206898795833503443149988548888480406135539137195294851117330281074925602230551840558073952854646169858601504008985119928288662909285573592671757569635143604430726140073237386883649630301354504613942831148252566401798944578827723692522855597694294951546445403334321566621334195598428952611130253796386399859587182781865304505181436556762605828662420546688781019485261442365731174692215674689849908399261304920619368949055606662898299375379584326790919663670742582345801911446739508668789058036028502987938022933148830174776456999067527707156080329517910798346670440341139495448150881923847889270982451237049297220979384679321182406288538917327280859660467537299652660299336555837689438633261999747097754540315456504742497458347823512567441511358216612604864965727060258442014478793922424594130282666238468475112847303907698364656925787014736423609409461725871585781004564665931697792970682884697344994719643051311522574451769557782045136459296737478846336091022964677304685798233601873831700182700543715152220944184843385454974463676403254363236075525820243148924072472562743091822952534180117192314602783414969493454345579799715662786780232029016310883338739178053876106600851020080233514109631249495082296636829649193518984743688019337717685942031444116903094493254759026332030108551251518855309355704078017967364480543887679395234303501885309163581240118837342051065511299956416898873353114468413250998123143810731460563960436824730942468289385778204863855250142863444449234206560868895906808006198162121656054300558019138397353828427433159816929492341850371366101752650648002197593186952937530089140764589950057278062678867323529852670757198758803206643945971056467994152291462125550833162325757683793377403178205414106613896483166800668858774825633632783564466041993655250841036921268123360839942768385313763995465008063216993637189578739943893812729321050122021999344826314003580370319613438416095365925953449537286074062680893416233516958524739360117717384684834520017059560695519209632852902795835008672963874534376309800086131831466445583153965626258573455050782826825117301578105436015838738154651048352589849765314767579838516157102861688071322907561079109221286317735098976547301130810193067812165968586043990565024870179767175700620483464336610012557347147104464888305109446612760333099849229158751418416493932315565281563947811828194244345944615074979527743519655225778446716096062513945057001200013030107397307151602219869574916539272033550006003657054309966512056642930710335977146971630776258635843457589655032197515008900162763911141849430594621219282743256677758375187918291468269339485122357673707503548299043909540330924925208603595133180885219364013406264925087600119794705343875227345316562510179498885366213042406663025181202954283100157960668178944115514478589142040584684658774378897285029721258712859005160943109781439794037530534846896673191640388450493195137952908301117298428394012215700133368103816145365273214845110136277632542146246215884609467541562082677268886137769665396258510104896041789185857124586319920160457935062205301372640049218338956493022350579873067181209591302847619989096242563855700646114912105668563456456863789470156516538620127088753575655721452420120224625363680898180141032119032891594497463126148649212290174554506426438666458742383446827676305603839090008199426134451263505331499006187144043213396428169388163308960990808132593016101377365275121150985183678459314212261381240957679146436827808075305945512783189642258299976087395681401271100938253638119749686709649068619659660647239456305118544734378737634630982087494540051782388249612713556209484745796340481019003102036115029443630499745201670082924144987944208691358049463464075044943093970275979271319451494127754049048716354194512216543350250936312380329807008740518682310786829779028984791557774179095020480568406910418607490941039773183767106791993939012050225674784307789922313317386892516691832097452984490362302604317413806221291562486384796606056094427319024804932065781785730650190486755178597835291571772751389336635721824707007321527175852535855724850335617506034416119240842089877574510128984222773044448503543896395512609700908886529165515207335615107777023230568257924039870399222559223322385411548265831198760561923723915764715830465039943841298946438387950650810335114861793399735586662157191339736013660776239243137577336840393794960931734489334124283159633558907823118566847797751558869471178283968817819242570426322304135662406947392389941002575390228050197862585736567899298760578718955712200693551974966337011234294003220882412560152289046173426012063963514313853070702718234185171533068719916156457131568055152430328809155328289730515439568085914304791439137359477230277220096074348891811469515212309469553632990918003823212228780697508401015901395313604052016597090462939799901762492392516241487414303219682540716392700219216724870657291091992518840744137202239937170949188661802118736842937400013186029708666821607891370145837923287686762480636462808463789357868490325053172867121028953554867026238770483591680362736430700507654422903563884442546258394246876216018225489471055187533894163848411664468547013102695255478210761255044024659749530934356368118729245130751269685911559214000417753559366705572431373140855591844295369979796872251874099009673014421193610785730808459850643158737065219361352483354756959463496585392673568342783337407308292441258660219562514031809088386603854834806282031746933845283710603497077309570995706016491132543757924622903495633082439557853376825187294557232986851413331691400208318597184343795099292318297353464934446345123274950161818234198370166270482983105417522544106712572520499771552479848030144007841645854559510813161236164368468873208562301781298156579965638730236596155037055002621718575388666430870897591865365804685917465079247447584308189782194606422658660064070444761893834535153568069818300656123051022426647657204685479073360157690709719008329931846249932319902454346033716534098169309627391704624431150107476487907026318448367898372951041601147206791638526531439435279536808376321239335007399794949258261365374080054175392906385917670443145256737748099382330962864601757278443938545026098115167857051402179375367074745773975675707499559984347370690098611837621276716331536443820654674743618198076770730263730766089931466314234812595831929545083334565520705396142457902150341391359615460523733097084015291275641834087271646632973372926251214201369015365557855511975466734842868936989662086967300501274368953424217145845547153091448323475939610818195115753316219109546000714503361966118383183177097073034494841393170994612449409300598652174684187300906344339076017711659517821555707072004534681348434407706084414557048909961309965618962055265290170290340737114601369030285955656482420073010187443507720219795135282866354069264898088252704827583261100369334188474667348925406115198318271919224883552850902248914494223564468306136333218445619426639300223409569782188689035591826330977766196502872570340673429816559001744800983746024729037863356734535202879584319443271022817138910314993054535029661587607025367808297022172218717308462539303723413661327089422330888146453602164967122974028360346092712438748124459526803305243086224652866017757324516707640302342815319619892944336602717609311571387520860158877985551113930810470586879816109020722731023676537104117203384908866281377506993235998630549519006643397139639405924061634376637944373857810377537483065039682365137907571251928701568074371739676443599360002441893860573298249523703591059298522719033409027642374338303438910137663742901302534874361271121341110126038718664341767349951484125568690434899345505745362059189379770231929809857684677163617421767702779822393081870732187597755656226559303064155266699603572301422155649964238191083095332394139430856578741017093838437770173435612551786819953154408424497695392504061026456307804984756749363630122819764900136819933603337395174229440656659687111764248576025031105789241934491156527981806840850769939525164187403599828807245144104250242308165429029339830812198699209442938965520006134979592118752647640335068048236317265230386202061868425340163434473267106841924854274117735760449126032409207692739744059338018013823413723624428661740314171403455810213011028124515040467355786294850363819870650485450322213337731928909651805666740281370542503057765556577695965332780632568201359167837219302174302012305704850845896061084803042420351472894254789491722872135705624251391101334277328207132384751314767030335877622777481989516127518822756201640670361824643544634261607487636793615140037161860966308152316336929233615134737311999349308762885648657243310705123663645277563892902922539301640611452691216668034573612612789238844468795319928895377642876476947142811025528955089584593911786906329087802887464327317447319446021906823646800244509815677534922629068839547383853935877501964820506591908827234040898458634478164520272383615158556172792082356755685222015315406805573296973709559784431662897928422310852553160820744864545208782490341469951844521419641642737416298795558257439833337247053703650469764887043596761604927970293162598656583342717251315396339150313452590685136737943257050362128255136771745413961335366963981482138982086612325209045146566297418869570103187459692711124283894437568641307318064545787585055600295930035728482357511736962860516683457827717360488526740469310547580681993203566850272828100076160255200754565498736849594435966857081345281615920069639801281691655848602249069656181242721918688179855403697680580742813310446793081639128534506664960706902594021680551492611424170386733648796102774794706815176556026974229378377544883692293130661023114220995471177122620561668038905795789955784261677986067846510743057231994395827892531282276749461209910079387402143067566470518800926974642926768759892919486272055432584200632073192319508602547499645083412731808382258282213103993286210178676114776024974506453740737705639954570344866160637912871279072164956479448490257374637086774711177952319403008098966984280293867459179159892623990068677317387336047186861311391878344685548630295217984075095871927150005771815812002671072195329806287447462947470739025781763779508430636198237067627486673545482701160169231857515921542983707711159218160761797398941431098236764620662196556059152919998295263767693775373034106964366951052437837754198852933795664886256220523598002505676514121624175642403077113981947480427839894264442237062044854624856808537653893579991538923236085799068954878829118300932234007254441564474248295445861432940794347630763720558515272168713600741226312295814164329091208741306319706051501373690130330227456144619736852368249097900284780513312311950818379914773250049960997157343107966770483663313363969324134717415675644298204216385602406206696843018913378293949269430711448146972843211584104060870358028541447143074006294375666339459347438638139354799184786781359634107679995815949881840355449050682498066875671481569114173726792463327445614102576610431558956750089794540378800600129837944410904813462156028213108361953143831913396451383772283566262914581488273033969720447170041288779186968846472239654611855641536331370672193471521766540709785863299315869900396399404191379184343393379769772128339890269876425614764453300545367357464106003102581232501515229839363243792577511318349842155246226876368311317618618172947219795646931507918909737056747313626443578434220012030241972120651177441595158507571217099971999355423583974743285192186765926525055368087772262616046459575972137890074335651245545719276245125924584887639767243758554717870149919415067818586706621513975978550627042248778033569460732429589904400314793371673091206984707324977117308943946210562661362336280969959825432776346027345560104133279189844031554727608604602307304053484680017105920719766396354813356902540567784780732388265966804583244781856362663223804864530264405272583685875250005871617328568888700874875485372526252860487710827053685004669922649284427485371274261173546971886023554554500069974624229528789142066255911854958943054050071813256521403108731793469601978292125482043292085175938444905656904425946951639175447237263587737216274238837953388153347801178795264345240966587780046529380288284288078559456270605597467040575439873477429992537028499265584212255494369343743413132688063039361317328768001065546880047217862106570905708832259965550809750305837108647634969656828064117566971086945557716150606279576421912312657536262340613761195912828436059119715906228643886435100917307799413013499098026343635556282770216544961778626970109598522170958622265466784793862230743902371904049204574887499198525456131746817761220464219995906946542312676759556274687294235750170692571474228753130428134500049730405165578540752993924752364207574951276350639334779997777258449588841836627334625090412612367601001063076975745390442421854958201892500169453066885712937203740660161462060913580407231908994660931294594209107745307513700380698623500631169851463270328809934537510244778137477191652207921772210441736560931620021530002845107417468990888175940265587258496109516069536137566006622373437807816209604115786462940709497488429488165227657717859186163544768551162565249033054764433012922735836814404629814839510112664801485232140062087610329309590074646767527789030052343824519483655633330517769785397685268611157215712156948330777339152551101900622666608098677352807430012696839150393461909391133185715914928598855050114803876153336280098487343794993673376573087305744831210332185882597102792133875670819212265648253976570066194730159289604823005919582459434004693491290795306358667368922910117378635648756425327023496793138394270427205192239968695455019551583884627685950343204924090299285467455676169133381883897641617607054584922634214400362716673678297271214670835924042865538443098213095017842642786099091044637093263505876944108153646674524401977909648431078047585383740586293786061616845281961511424571453895590739440966379755376074272936606961940040017646654405467837971683046417285425938462668940726962797246778311422883164873133992761841323604815386681455189441774913480561102481946185521701072675036657808577332688293516584431944846538421036331857044862575859397205498790903405232056935169309981091219657608866557596035497779809859219607704010296209078092136719129485424829194889549276580305490797150891979912783315695703772833961681177925828967271527975785876806843697666463892658345751585973008390646074140548898507149819821764631334215172184802264084497917849792703659902791200167544062053684713677392227397043780550276636195808218448816090517054476872743282995245068122929716162691424567454682593531035761341969881795399737848374119993034536943733619321279595801286993355901735796660127225633668179748036910643722852490493419174102800953409102254525554515276722992497536500545522252456256377157465744474456045914480422168815468174337342329316666567455976333892210814180025969910815148471692953848570545105994613963299435254017091229540019225744619937435906269297734999186819001290714991999928824349348498225173953105670467524641659721830119257548518395240801216430076864064200055584314318270989285754778946078246009072809367112251324624862045418920776020639986215161428383491995304809019192440698751908899556823302443393503048768644166551982018422179828071548552174426725467381241156856844683327607793251017308381503557190143650799001086892135274168323585926673762510959378048459215256786139488138282386553726436930681508574525159295894138051582692219544953289759081401853841898671454029470203452627294434373752120713653140817233261912665420540288729655433836956014647347863497934358526708430012254736981091629871614843003628296893521838299742841706824441992651773709275491253970035672022815308840124586443866688193637870796758258588598159833279474886633323033636073352544527493526182905984498087379780529041212137213085895309939800088182788004882487625944413852484909948340862822920659300902728330383616564466450880399722005757508478088320562580283124226358063552371182454181497605992521338072808526397304299810219499581876095338459513997785608907472538484510962152136729659596475538391356629815252335584954276792795225561649013891196715686893603875119762023373813205924784981743606500997297488050545288484319210178927298966736030684144759843970050987378020233512540502682099272847183284631496879358759154843331858146075899570326923637282492568647920775998295348203546160463873159489343599560003483339327378617553935890230886883532079356456207472098838779396629991826536960002402063548120180383847287695936666181222126384640538003437241227446640494288463149222370198257713517766888544371271720939058636237548595500566785432965052409930051427285164998616075860630584022594696466589909893901959661512976130418678236601860171271672898539279060949598264931691530133870437156097566900878976905456279696181812337141909768537261310516490398067180634053824958769401819526991243325233996955318629659672864496168957261234634277011440382500523428426711222688259086537464128745944743007345103957712743857542133061956840437150898315602877921437416873549018276090558925343316316240532034729392151346438122363183228522164202218736469845334436028275973774852135509999189949056720141414291265024017972438847341442421621882305103324583075113361353674977459020753751746900706134307458333525233925490569914982924060502108130709018733712060054932515058210561112127091706209818618693219207510849930183639768398506725452556048279717935377584667457257668874847593077334236896356656594752372232195773612336229635506768957234820488615848240508473252354965144800187349989128606136660059419805964530219435234888794627162387848096881553853692359630479219912299864554157674011219950606178067938152211678935560938665132377677425413125995994966933902863273264298740508467266644797263440886733697919598552495082554872495637017369799619251838766100860992670193497011456996342013166687410080149491605052180550958588284911035195473676436305780837917706422822927755029752728503775203734465181138738886631158203871692964650856145277830545028826205016491718584940799349863972129957880825280091183135185321941558844976939935994003749919355581210065357293252433973531287454592078227226408695310418879312639188245417581262646538934893815236837835648208279569528236520153780062415459539630203066158277869704451665310721531513461347657310516581330147723808664646863144753348234137273603352638445673661312452606539855146605674816921703092716686321473975742332892647815831050851424808988003351565212272473684911300015424808925604574663847338556162898863523695189884742965679734022412580885375943270225739460252456771215899356542314463766340025016513855708044270051877613243218319907577327212027308495396114374945265667380122881530127010096946417629038580985104875287147188752437773102622242145074734651779167528663379214927721949653077491003274362617263813683042294723162736992083911089739113541357613782566345363957046818452621712377327162120085124185539034147668745627695097678085599403106931012389211003947656653060726003221881717437311808187968175130937552334581075725830310076695047033089247308056369257967716682138345297232020310961148906309299864510615188796009020460220933340547801968552900219439998866476457483575419149843466974175567695403479647941860992866110756863859346420290195860106925154400013027576858012567761956772815567484466619993714281509761767436683938753114666897143414164097388584968323970616670757392041088288766233072090435476553675754392693857333149157024234204510361961617090843556716613468057205941559564340859482272742837043131869907341086445382911193525976445292293782708285921124966034186190561377117077901823828404618982185240204769583160635788412989975782922863184894461805567535301519769113167885795613165039930140487553884008465473552703154424156538664280771535207226343776455161246447024805028753730390209621078720511305107462589888541454155971255863949749410147425886871623833165950062416663041650726498704297881375189750789576420677264040871091032927752917667637898577005565443293795775591238543662759754299808400417143012797229634345122013636330946599719334462930362866104889710749493130148633034622114905198288653875151017005036848435437156415439430129865761515971291115233248234488919718472303104586722662188418701432106511701242670000877696883663149977085143136711545636666036101851505832714509651756933310680823570882722033048801771658253816421739321421352842563890251738740694819234344914516331363956394877004587731904535951773379102794944583099020104945695237552934002967877034461069980598616745879069957066848218503888268749801913401096594336211823473646012131753427682508518479271767633244060815246220714789091394444211946754271150184539579814249113015578413992103236627032021589300667031729371652206998168981810749232581334582235752705958137798725816825137190629773553111237165804012388056815243335964807601585592271782978292307334131493741244589201099234094355753188767698996208183067019744738481174363348637444580912257217282550642305455182013131707420217928738941532209846640907954254254578492133897845897203504640015752696823667020831475183966515473282468129064586533400635732279274121204666381980941280584959125843041490208653301393783889362987056099298821502392622458315833079070533978784744736082997820926768800591205139838561853634989371272824470124218420637872457477635928783566002318006172277775571208193500392014517256838758894147579607996250182070056743433471689194581198596294769089318605436172139785881161216799488047211680274869749198433527502380141008941716485837215799412651720347108804954040368884710143342305826301502341535939566956602746750434656351178143627225037424941032270668708506402439886574934136896379557079658126911591744981160857411077522668576849734069287006072039744379798917561333674701946546940115503542172918276705844812096086746860537895488809977225798827151586250636528080031975956555870395518275760073662561080484133470957870132766327893544853524575839900787536484490367609061036367061317580759593615581300585138696242629413562853103459691087677967367159164773205526988914503448109085501126137107484650749449600858704705823624480000292089848119411760917607971394351280583567156086548443071757502815759650200930363772231044030591517725224259673839732484091749775858293132857688811380070701846516854216699222373460774424909190016186264898920185978182522798952169751391372388143418519087930464766551122739858767993819547073903864875720764678585218534621564142394899772992722096322146784404318114369599833209730344635056452886855887957488941050832165914540713505998739412245219818525166531582695753366147612581355390900382019676674460129313768460505056543046207748039019948657423140523866694302854050775702505730111032663517193488477888023991022645049792963064359153070771591692886502195191906382517634142321055019177164119131388210656541240446344286785705769258787432563306354836875852051500961995908126332506627090148604091772217404351636728824519151560957345733133166514754165751364718328601397936947210936564742971550525393793536487898338580007037233152768148725646984846042332697117605682408078525449538120245772221987486038444525597881558189073851486535491697516610676181661619692585974803404685785513002312966268266748302362129623962811053380813319494135020409698758786700138766487242408174710242871204895937361101569841525720563206053098843166325822886208603322962124642061070212448356605900157188524980710515225649105135267739421941400868039681071455092613385285415879928050843126364932902110579843766625781597542862324589689916149046404521239214220126063266929340110233993226227043713505168168298447056369418610359154676042327615316897509498794009558817120508061864971998483915619624953929867550743000176474012923545207814091854915590291458543722177142508736150412024569347598422046120639783636726648127036459072814504284811146352459890497625831247431874367102153387392715513003638456762888787161035481269365012317770462277899014051815728415919932809355038885568712371756498801879678432050762073959049038832818304239392425235953811917245824338039440282836868754139608367302471796967272287899002332603987027508627027979693133164112337040387651994910899103925615869004755872860013159292847929491017496655068887993069465860092985366287689536011556529776799661232915666597270592042862471472795031647068994263333855436268461039550799863893322219112558211561338849844683125047928839735203593373047739415358219847162292772176792901639034682306811223096098583793621327682889453563660912004468685238655686322258189880550671431523073516477203446797502552689881185564013413081724467382078591998507996217663912949677670252486104763028650058306588209127451732107700736193121098480410851664517524515053759064697587965957964176755367596982850899288871464687709820340141681922257316854488244882478034301739082179190727511557163459682118370228113849479917585043566357666399161548663927315260091334867680662014125821071442916269551793464060213097402268850031047613192299954841444457480924237641559529387463390546749980016953424774194531755666400367445913723202448917545120736640371782066159849019872760168130899235339642720123396227246353301632527520399720602256907725197758870992040455269817047057492141273955137071411386981882948617601995278579333603738861159617341681438266842926536022615691226570020749630626977058842239691284399199763414096297743045895052782221329926248691635942268933132941341034085430839138526202625443086799901522078981506812612668815961680975613761363418076624484417544336892216954594941806859257742937557235914007712434424088363811038384490645914832848654397396910532100536560863103166703805947828282941645279716796569482646934797890230714376848706112366294763719375833882118821294310631763399854788795438502212374341799291538100588260387771313297180792142183597182129826399105418073652600599777574595928346494407128992394098611982289579479003186804918570543432092942325218152966924568300854704910076764646651425325906379140237663280080225854056663027564511390913491720624328483764346455384924194548283188895806814597221023146737157675410132793335797508500761747784026332483582234546924131097362433181239490275188029302501653861521614007194839526945233396730275208907701321740899746138540739616822890201406141504934740785835511645888989498007292907155237965387412628259508666821428060806829477670757091742851367627398494355715415570222807696664061660885347613402107970919708653256939571498202718354748664179581559965738626684953906928698395351824532751468196927025631523272832403207229474516032423829766791751389014929735067774209742523406638235078464837873936195958735526094433750219587408986266240204207382870740995802258690755606221048889093596789473438650230249528973334277076172867477236930333996331518666618881677917668235341372811892095770622917942898062489034864757240197022081080848759581024579479582446361789173552323820649579085266321531829227045235005644988512704198251740579712094778133770087898197925042501831225089956682079326852779528694873986629085756626956057261438737229479576660361694562903150511902217256890646682739386975604435759054979978702671573679682127901686916440448225599108513443868687494223269118664174700525666510858287217563695067695344084900415242753436206339353275052957459678176030100285966641939430673628313815459807720781899981323938118580532967433273272969820203966166003810355262313067277144006507819281919466668758183149743790033749459344031171247362972479820715471728035602037466190678028336877933093433544439774587156588657951537548897031685533249442081133454803062029299190770689755334537133703152249007392240178667934921302501075522684842179805595475052677432145580595379788103889216896431083065060216044481138825019113033661293467598557927189093537132286495921593932880976558438482376455819983599737653879462313999870782715572187125811445250038508904754988129975530681366609604904035236472765654589137294200810157602911675165883999564000951004265385644288356500209501409582076130020150079907426913793350793035948507075646200716464619424957250724531250195364307842120564019661881108462320508973369539338380497061673774587029411529260740075838540596094673279703815627265813742628122601540704569586253083708866249854665040532027231248390476024535675275646185384962447859194823428678174425373613577016630017390936128267518201278872855012591588790139536318719307278122192955195557997660846717749994463504968522405674136384681370632719873571897740263592567012546896619208125966346869156354941620633116476869806716127498953399517935409533391303643181576857132077314517666695481026794232522486109324944464358604266853497990033208505075734152931876664725458413182510966556042200420545390758382605847569840046674922131993228864506349942106328872226605254556681085477059286233659778266839059497345590373195416127263000216635579182790372690080273701942967050356803854933054924100964960485793660547687853344624686278851928912369593835545010303704707129889641418884860101130356794221412115395270719029513569179999788587296794070686497019530498994887006413276846868377693860603451117930746431964013015432351999959509769106172369008316404146370943476598497556364518806100772204371726964903272697628420534482855011419952753220688319622626339251448850874548383508059653930376257230962108887131383844458149366428645914117585142739135357937488149607090352312993331645216533056210340017473262939141117885053640751327309321653568330564341451768728512576380798289098301115356343530633059703323415586955392836776819464437671753278996943000398978843648129104075317924462000391257666855357067170226183902931853058245226803482478956848103494975383788547325198410658472234245594726162967369420228897095179274613019820963114937851147802503537531123861504272544907166698824338236947578600367548067922966669984451387567125996575834605538088179130555446491327692106825261735660308067686921326593339194424795455173716157236771727708954362218886188121306923390088714215194218311379051292520447462101141825362310563964768421537364841358222087822204657364650526120228238572273819938924879850764622919328085417040191669477631285189200825129293398899497269113595026972287509196825212381512037628542724100490981917964662714320138893814436742842459333591296217038562658321945306987848416054531071313118427476596155787676282356010013307286160727145911268186846668295317861556562949158595584329684686594089550878918108588393640254732755016337230198429976056528639855196042250709550022273046044959354350825290022181437982191821720916450024285996687006683000432306058363152867040126298132584006674599711505128008246849448793734437233301238742862190521902648547628666720717031074396282771376707067241424120022497426536104490627582409621033776721887842252241935278932511619146649583234329113017623508912680735091197161872040351271658638703213484146759044803162829467275273703668695764323302870738012215932594303646122402426075578466145869466704158576311881923971953274056107354238914992912303709488140844016401412331021369591452951433942077000371526320411000477648910560316048190328883031400321193386954473336522655468379531324736931522858448043085258391687840439871207214250110083971033189757255595344287277297847125546755338185670628697843154992886435473869394741456389356941612240854506257978523207829149888534066707291732706237548703149941769421089120384070280006286452023803213741011259424193030845928007837290967428630438765620897605618968920777005284617214575758587529472537752836200192223913596294453403033499123256074185730015325069364168572368096791264365588145818368373657846511451305000236074369815291239733858781805234740540317975959443005399200971541943863112904596869215300452695121318838462278830963857812071459957384357330309122302451991533158030123706257072905971795196030090004131928001325050470440942243919449750720795547445423013444281963803536070939967821421829290642198362731572349355453524732816405803597150732152575163567546531256492749001740068123543025260462336885640041360596195489943319215471820426962039258315441190727014146402638295151204040168192339887565136209147740607577224250225005656547797524248564075077626699715120410997900365891632620855053786065598184447066746742724848258586496529698777688843421056050321911338588202993756065027950178353079426039714886593610651814427664459826142300676422804802522606191266783300116340280728563608664693654829381495139098065024612431858677997993210866564424598377572614734751430466410733245990353126500127135178341248523797240367657886180793811529508631106166037581017614335536565878189062012721229899680136642074594795310371307943853255023596306899357320462840452276955868143549043253214692100832672268591384843600781733424445928252248052185139253909346217680787993698500086770000151661202298868555258814194088363277088273986112732043917908808791414063692057822142077048394554445991396427858999704152634231239342949178972292939836726037234448160978235172577937894903795420594133828606318636376676782386108596118097491062531136146044443690938357962837920950032903789884859559030732581699847567527092989991496273396477936807344068655297690788286322002415374008321762779975076461720941383633128389892326881683451467984350589171323678527321625704289851339303710170047223195033731737899974080722490620217605616930170595455642873496046118697135605540095751071774007663631051017703501160055244252830140255178530663478442057776637900262808070462187653396768079851682718821802568548098100220127256285196856388885469116309456417080947429809570308167538525292987814778667495106429020669294405384610114011362615595171257426708607842087500731572489633185278921008028930174564086885616544437318628342765855236316641534420590566350578080239895537380044097386392553906995130880440434480622360756071706429507730302553678896409772930891279032186209569985804366030560073521265166248780944871340821328814307936803899635181428344901879561451382899104200983904620910093881449076019683990422166129318222241556807341254067344835447399403825079397375177646210031801247561714345380510760217527369276734898362740519834883338585491130917086289320815949641634032360913409351481148052148233942015598767445238087977757539111308493079616392916595209971828757109913781804120267190729501437920860798865227369498425322641767573433941637572960480542676851293088816495480588733781319468446705388445168868757152121400603830391835179336997156373594555100166563639173346322387957706324993637322208435352349583914244294597765607087826357526982412096475569718957613743261484310222252931942840193394862236763845223609228128509644499955042439248976753785682081266453571585992101539580037461467934105774381137219884962236772497862507724977939871215985926723489933893384212824171820242874374445475932762894402775825677842792538778923812243176885562886027921857500616556218510850492791334967780761227955442480520892671253948792273733672373552196439098642346201361392990759197529209702602036875918845750177636188633021766570581268287132207845336991307831242913901930068860597583594394200065023146665965535459519647303263152233486109330147039339469716297881435362691074736111627071547453850861721837603479881064842273927417092066525369977039708986314459845685861724428945376619679734267867784182613964126043840054237835555079297292613278245616906356884982606187486691622927977186817150952337272778320295540565926864197506961179498519366685572421339792091370568157791994393828347378744570537920845837003069822653520424907234568423951962305934494307631502148590537651476045994635451690692646840494320413040300397600678922959138113226103821839585528777433078242329268597945559674685752970485118562131180560079764731144296060846786529887825975699677309683348665101395988060119022630749816957281258609566054394763421507979522674874736088520254254455782761415836518520257940159772537434439359629568133292032169997397760442050295231346752588667117338166206815298176344067700660670578563459844799600802275745234766158469338872628740780369746215302361352190936647241921550692795530671789202368253560542484251872230238279096752127987481264239737914013820867404718702594305633829498604231897016250648139381802726053245232288321647064646456923018373278186935407777278410411759274568436161767097661628722499382105094372638875423486297080070414255105891932566702873715892636363013891107774603414358844407861848567659956705001686826378667670687783256542505967953765400447440850295527108102071335439653063151077004621999566718667376749459056907011386164360369343604998118634798177797082701897094158283127588436605684063469887945679579635960764066005440874946033607349033802057978545090341618243016908798749106525889004009832329557494895480098309039264933706529898704996420021128700680593489050619635257134669729125592823840146080883556493743486876026545326428338496580735918591543036500749109272821795829228925350536130849575948729186581713659521948765765928513710431031214698611218672267048822248204621933328539500296515513419305672292194489620125646766295825252566387632292064711678618975611302227949019058857910321552344349902016566671267623842522229437819159912452000290689122998443189025975009812872881906516856137202080896051993934107971108827164721869220884975304262565629336403626303233298696849379578616706070612162207134426387900296211089962141022599382551157927188035953972534279888800216742661208828889570559165770303901349700914705687008025365025220808309337850027323778511342993485742766770334212977079924400172578339659910392723413857302250946409583291642073183514309124246785327996884896423388526412873624132924790677713139781628671140849919168850086926728900498246813098499074069891317946479638851709926541843725382754442880198099632871199346854135762431616211356453580192793035116775591049909589196374229276456551413890541035459583656072363498569530134919821427616391216994208605442353173168144699634424884718393874274937107663218520814995149781412110285946471427043145179880064919048427893324354336509287350505653882942260869972958313537185810218760231817532971913425468976337901681886185007301119253256845642735402343863216274075643796077340999085388218399954684383599609125317809045805278604012121916493096855642834408305222280381674557681055936255303269934678034606458263740414691869428630559239608604322726392597542759989581543748911182714112396205185208476899775686351491159579277172257317231261610598215767697115141821122101877212066374321677172237493674916082267702132438916774769523282053261513267150208643745723107437257281000862758975778170822696650109392672006707810525438487561299807917211829607207522644920017030221180835875377621496872602943457119507407413487640858165582490753010868618080344645234189401140964307216830436235549358379203036569929444005310612826694914901357600046177433625258288215357739481994260561140094081316416394273055029089879286483012798451957207082789842373829809267098833373956801729869751252230056711860369756605849229278182469707845252255238178792199374688293933829988409072428142513320220819246907796310138425017906715356393687372054951171140204488233043437507853599379509416537342184809338472423418800951712259856459247377910506425141147307357964575432958876987005508742534789610895384830874161720521325308881608316111882822172426564880510359396319099434970289475490210364327236591892417479309142001974146486663876954938943594044163027136645812324111408834511681180591787980425758661463940408640025158324568209840004204535936655498666409283867636365208482259033820156623549814943902771797293199929385907154356010756339392364846825189859000607944715590011218315151031581822102623839561278686017301079673289501641453559723234743237221501834296092282592175627347976252254236865922748955546765025009106982845348756430505733863671558808593328373132082371744665245315730224615293268200326578647343167140140583682080645885953632031260298391750705417409925537873200983056466513325400025226169468950798032509725979715810213811666001061504011973817605465296634386343410421119833819865080419527813513721936181408330482854386892950860756430163076659428323358837167636779786817127631992479368444392686655909779268378955575228126601735599406301621632706478753241579584827412938806125640973377233222653869158893351445070247944490117119387356774612706148990097600462468990354120207593349617046797195943592686014546061651397522710980166360547517258907582207085178244726702405724889089677639131548108994294319590839084779037398960679258212089372645506487178227108018168114902516065693027005074553871716223162472108774247634461115265016369217341668702289090960612049439985461522781912066394857495838500721525567176889954031509717170480713936832507383507270651634249856800743617836795556040538665799175404470608978969544145475763746027473671920229848943250889928770046755987177790572206821053410804061415621933980972446420261946622235162598144695141339068847248616269329153032441022635820884880753310186733796757915068853430636901706997535946239938270841822943095927409444122564456131938759697468872047300172789181725981627904962944505453565976443693259926001183749490077940040570219840151257547924864785823289151535050852583949923180786812988778912958083532942949402952405280166458608141508980379369320049620438963272318986975961787101476153816757256973734288743939156687758961544593799958775974598075607423404564607754951523561409558861942340899286367809642211818159172256187078915177921353782828688960002461931989993870489148987446558090263821066669705080087224971581039740877738590712026533747214637374272941041223170926549400523818567544450373453868850408672754826851695761898557482027558037152894763015239078804690994907020085179500298377157697666873520292742950063253299169799804477016339761624529096356584348737237059420447536030695378722554103052899083476669270407868702606305000637312925623936351490944150913980426478068588287224683547935770744306527757179325618706003160456390095831620350060260181640033236789884287871695238403574165458896324625554523929331490086269492873305288012685087573297434448188000662032686757195800018176130091927957092058305770875201090486785097237271435255797300293118423075169117291290253974288197450337043064833639659529282150109626893066681901788184766119520040211538768905779169189499858428537185226940365468161953857499159725631216028918189528975737797402737661853584105817901963472775386755364281132245196162363562374652271951053992762268811060328500536467536033295012996757398160707572095209486722352008833215957544120008049933957392415565009614483182378949414375126640048253475384426934408991426309963137813354360062272764870973160999737356470157247206524015202539009102458710727466949960362014609656800142211748826631714676831869295596361349107188152252169279226165724071106266974591137872498330056640239647039773252872649374022427926219113153695120034810705051242302996724034601975406650312072814909776247350951018715374240918769417763514079921439815224844314837089475641403757371910300467993445685819991951630334905075120033794168445574858846686527152347299534294920975450296422153214256433845991225988494382538800950175386019443470821123244029912852097426757406263565042276076383454070355980331121614118258596958284712993434679854346125152748236336430474988135161416458290543147383916484127138821683414272418229289395662205318773327331117439183883389433228185406169697566452195348567185954347035116810477303049049737486685234557591509948463186974980123784061444781465303638369162168092657132092332796196294082366946741799790463949006010816241241242686129713842792462137544825104604944778945638597072729382742175354576626881288853764683736461137305192515406328632180629368402391411736991497772874930877668609396277698070607469873026017256297123761605899284650979393046627512768466905018942389462519850467682467719472074431408558536466845175447947928349428182702379861877354557887769965586134969083322714732346571804990133003631836675695164234030006244824586303591369539469716090474520411179188440657635164395522850284549173018646340399365775819587369437019482413717492570330753564614648342271366619313202549145158846249687054706207589340253742686614428641458670472322676915409353654339959968815101504505158193030553653109845167953990382835537532798952695686513394685589658015777825251005611150978443525690889143992638218052787195412435920599008974700142923224841811832698376535608782132515290534106759655091772838550071690389832001885846025307924102334803400921572787309813547030599631896285319964312655572120761705822762649242142317138943166771611676091713575020336271767167836336212444305093108595956463932076952381540992248225629000915886071977160583781778406414773629734455106537318591852231621097195598380655336571273270379622553492117213380191572330349480003207667079752819186811818763341935510226296887608797014525372234261802098029464816325680276785840648403448068376367685889412727361326892127193782173609665272220642365357705236180193428907473889908859210594110983280350739888531409032534868163795384515634652496862937426149598675949749963319119729250934656054923734693617434673683519890481325108887347429575247396484743579370887599853587369449442879042405874653227142044936913027523644577020454038994607183208116178805407469217737166239208640046830491574596683777288356130114526903005405832361556313643780548306324394475798838040906417607461996582166224879791687043204584641852524090280523077054120002742896627406137826298909187627465823745326677213029747427705229845589432176277837826582108936075750868499145394486115146116972338250621223113937560352815865946897241004646943272101449231545358222803156819603858677802004335673543532873410111858492462207621716442914486278285043591901590263626771036023462241634529349964409735055057747006135431419175906780143559149132308800967937106795317284344468930377472949075707076498737900581102493030459577244236644854155679076984141981409959092968877955528899500291714077541719408449686634703455157218495625215136990257405292001454603249230605361356773581787118589388380459132355675116364345130605564701506835474555929310953058394115964152611182922479182373962597826941498665359611933667730587789358154424800316612496493049195621062455362783838958356221357024843388083676284698312287265537827691140300597084330197154719630396621419432431291211479212137811422794937240563137011294802531393818338725186882307831723653833913872146208141715893453011493365192528634068471819967215902480909830990867555245053430989734968843112072805809856561234916447095156513071674567914012996759122380863519280653573602915443490373835225784621030343421268191318860835575502894884875893524661843671650122564761686295028272424829733215120652769282691642334007057857090233645120192926771681050781373703530735717484099193305106088322569473195595394294334746417977223784153620614318842863501296926868735291739855436504193163070986870662174678553981117877738032228385202211827978008295908315187599199347495602031368690684815765787206012826748998678024223284622235413061633247659096244995710127309105297769601686108378873421765412124896321810467380690401480238276800534360751672723201789433483241603360008618580705182923449832641813871730608600339950708131017652647306630867697313800290189321295753967612790977758693085280087162926753778071414299905231452353147908060458408738622535588545258256325982931685444902896566124635955112425409206801979263074464657271323729387066231185463443961381135438539830274395072368953162313994853177774980006262661369994097495829640169279924503399597960000749063069099827410226226448422867885675311419987620131888843771294645540478875842717065883505389740811192706296551388801961377234973864384238216065464723687002873580941810662511985782898600099434786892711823294161591913788114135622565204277188964450018741703621376329278635424824321339516556286449283940131112559286434134313483298421737256783766291035467189448665187284797921380796349721111473246351940959917739460695107048126272411385293456044512425473347623011019549686741159295680086848236833796768901193442277670073916173995567452821133893295414572677972371839227862122270462801831336276869795493220445992396774608829059976190230639792557984045472342632480154215490437999721318291391279929029147156155419161534589150580330106921472812818999288405281321533943548706763926650329067468655061391864051102789943990334208857156382557627755500608041702109934661999153689341344299329219087671512908483922007464246451923373639665255303463713146411087067219375116184915455146156566854090441923309254073485600363548081235469743306264441301127620034079879778811990158803684374580818340993815611627143665868203287106684851969126430598107341672948606528724288317973720059908669995215869339989350613879158459065411210452145995730004774808588854262730282757841696452809170065599362807160450440323863670131409613968675657181415476769267515976425982772670167258228094827090250834891501253064216905865656540819305721009886671803199398690856845175787391142001646768599457584412412540491573480730761464568047159300885647168290614968175481913350791520091337615092375940495881354799043918259497381749490363935661369570990580442167299514902223625970274674631501419170612856434109801962845911776685523169304978394606549990586414014459247979395615408914391607982784322895210866606508647311241075372943839420908695437745034065933989243408592459228336322492630710065246199364440213122206303848688276847710347454111168631988680121067575204606917761056868454642809613700449991717557727117481839036908597018158343541593404829324774438844308317597256724268325156399645764188534792494075555739033849666579141847022001438684083767096892236023925198532716943244038893041775809540208805645241790880663588519008387862858884239401338661097358375098099246166595341714966073717479953247229181102009670207463522643909331324544966937234906931011209300515836824965357272215991373029208842435253444090984378407434931177024010613739269549089488156839056679234974289851918163362928468229874726763557215226636456042522879023939282677459850315118236563834056990599471704221914959124298713464873651041100969317182924375374046361798853441443452775604436443634756210288315115389975078163582089055036767192760422571323094599190803601933824008402382206145124176630812957062718822390505942293102709651466812113441050702476090259343330691253801705893158715465325783122965874944630111603416855391272046094747862846404152085370753208543878028966675556321155870879980774938865392735537493609704040027055488235056590485866516656552051013883595466630019138806327914428792185690038151952738930257882793540270809339330030298453134226553697769929344864955609678199373080450185045121604725032695547465402415483065257618781861979939758239297732900869282424251276057038860121008902471187229099756761669768038376083760278922090366355108550368128929347179898558040533845143644706955265415677784877562571601061757172587764915878701486076675897079872186171770571950746756701562310634837725371083620403492760187112546716132452691958223300684180337906891093429399942806297031497243967916267057148433818015419719442386104342907835525723085366171239729643549424815870781143616330872839067203954099725709909999239354109076328087858763885377249485606320764602655811160048192579293554594979320178390179514532152659918820409235914083136104656854845725102474317920330647863342043382921295835659255741523851230523417845902391801185719551590183756571699008404581667015370232722624719987427889952161796633945090804353673778468567864086605993547334925435965900600587263491553058908903755035550501720379871498499786794762595245237797641352499636007920114815501637857280814808794224667258446849091620168658907630003562278482469707702488463967099928019242859433710221356622301668280977902586774605505289459413453692142653071774619210725724882983704000517062160573071970207817356025627072956834298608333901250760149488050956045534459217785545584359210956969518900639884974215470719535764797031635175061450227146716956605185277260340066792130430783497968764720068056533090940145516289512573793755272790993854865524478133027244409095914700971380112575718466828804022285982316920110957462865652522466090688463142787523274725667079114829309029524259249230220409609337950674220493348134171014308832079708612997881743387944546813263812917005668088565116294509028613001220176424115360872745569245985036354338762032905750459107202162972343022007533705797623332867952322900933253495519992924741107785389336798058140963517982528214075115600064399639486535457255176998707936378665009101944325648907928485394860203963298618912655275884856392626815540476931919913166337019868262343490860702307673725281365800269035150504971297441644256975546021729702844269198195872748250560725126359367767341528560878685517971023173328016801656791412862198622661076866790246758273244392346665831757806734674574196577764650565427857953696998562190949536251175628053058303040609199280570380239705259227398761843825121223342651661208639771363009073206419346536116027789739140267157664491189509623294787283409057587109307251671941661956629099513355727722178081766678761780368271723008127538483602170130702534099512080292223049275154693696792907897848941052845616599557996292300044892108461605654321136347893885549830515534231276532876893476410534507823458074226157733431317278887298224775378703645793886605700740089852401100220020337522781467365194085990994710433527581372655983033639968732375118093554753990199858533761141351396356603646307868154884639319249495980189988526727649806748022058843990745135097018290953632786726505589420311736847046252476218981464621469360135643283351107974476292043475601465418738550058788625666449304514407332284945380792237653289544784385789410829637805797200230788225013412893320127004140128564007561792837168092526588973671431817507480529490728994400403995988671178255943116368571710580444317818115296850575810574839292810500487178028594729553430073775420006160680408972924424869903184387771266674232447704677216073901182578892632715655333454372722734901016804065368992748130973572250159090930798027133454780855851402876215797516623616936421997929919612798998128586333775596354748409260144651149269682100563938990301019253794800352166890334193194581359886971733608777919697714658591178156787871996672208261674092467086644780812751173298116727121016418812749888586522449969566523508313177796133772488479852656734862802422275011324043126196744354283467711435801101197045588423717611205710690736577513247308074488920749993257880986478375843785572085409631398369196439841152243144094785542304655260651202134263652203865083157784646849382541348825034376107361046486063765125372884139212037070835733054266336095576575258995826711705233524550116948635362887715303195502477515313273050425465505501282292690553672124484163704047420941636984430510663343434670346840230535518016673770108059595029534320576911955302257040036063822965203645592892948422984308517370656166467024204282631447473131953414154375885952860322560254428138616953100934952550431381452457029866465066808128815186501270710841520411090073973385162063038040019287263310300197206976571121370493457969983570696055431472363206162941549841677502849312876696266090236237422521101448372652541613536673095430345458545596999350126407582636342096350885531362976113115375879005022860508923652068756876822851051029616396889471084402735228312033631766144109312408150269726033239564080583729054723225534852609553940304119894984703333817995263732915539246001025116045111755172637365548215046745132519858375801355254028924637725436726255676174298478901453801541394685543627280655408726027987024305801502827968144853745571107519751063518918330763778289281912957644748003531202818681375775737252759039255091236656787808739882902267246627282063157821747286491510850631306590862858466266267719690317343719341052260610272514448512210585096207526691523675792353658412144213785113400329206025387263558734022992427988421949009680044250672228667763897971681951230013634409953582270806777507590689249440080012605562970751874815201982712711840574246193528723509096558200584288588611269263267617437581268590658226142522177629023266489155315660890078360656989503289742422346513897309058497686166079333235299653674852510759548036629315817719505316914213463884219314528352300084916883581387596760066799995494491857018684607807318161253785104983687282641967932981205817396000495357021111936970313926013287202834722674384453405312745516618601644712104301656879107701702153343899208735740076961056400118733678321337234091178793795864512991003612709859595714962684614595018384511154874707685812023588805259084757351133246155662224408201072616210599907595348279033263858415892324773757812337040404615191704139147216473602451115772922036358284540751141618018453783040659322300063590935878338761543777111118196621052608073683389293943852244476465380215771085565881317578799280412798934768110049708541053526742237908542605967972022464183169181138802502921119827307497311560517679023504307704680180326366358658549597247291281246967040584761711382798274077320755593973845413441619548344294025902899424448970715112786849433473959702464229119067125003279787674608170103760483703105296397223204631306631289377288620941905778363552163744679178121342606117792680380179671030111586520951571338595772648950149073122103767231935070542398357194257401193508681382748504004104054275203799781134075649020372542082370125914979990867459069336663721395830217121147952601318910197876414312064018436979257461015774309821642720112325643504873760281290008460704615775446438078250533269278625590780939954791935747942743355630316618362872634747478077992906953064202089776924039587478570934934278410322408917159965040963399400554893250332592851481515313616528166337277758471395307668814218842075525484733274298278013820156372804364307466444273880266554039458417466806348307713167422649072568061539232743385340746628907454362198711722573707440494930969280212327529644094903166491023324904914337402526489551791852802174308116788821759483549990653266624271418737811541694630499914193990388372105105071947098760339607570410455626052100063291131802004961894140907652640107421388250239227128307675269331761547096849273337200228227196943315457756904064131799423820427338768061709959160494355446111512658072624852951231881095991649953351509022409842439577367806327905460966038002575339811462957897842555644602862402512628309648194005813608299917397642947763951340892346780936436037098474183706486876708143716329873764238331717657550965481365125348609243923839726672154610272178137501826012831804708068320803390141999921296575423016442201896762299642691314504798507196384362443310652846381203699471457416736209639411599579723382432418438269262163903821731522212432450323095992618596724988353827466001274023716030334756564856373204241362764641246222173806198613562040422422234376648923672422696123517020262441569062188726713330132412953377429919774655086701108520832790912369993399132417850533936902843272103598794044375831179888635576128605156815279035462929114030791520251306355760939483859394175911234804421129710462099953995965949735268931553138541077385314813878045165768675088481472030615701969409414477920709243365396966224770736754576990114617247855745740043456062731415547254025137158677769437649992212806533839618065358101709976915409915113005350192204877841633460623060961260002862578580698048736737778691605622949047156859161637437539245677422647104709370591711327174167732935389620959410024814929024104634501385757959784140018666643031903122019732524822906544957583232143732804175299027899040555217927664640180252049382576851765487820368397065309844320855799376113743724253995352036851156558365743752750357440485113258856981307093994467756590388518961415149563627085929298294180124177749397812890694426391097031265754901785728534488754654134148903154898805029595184947491415112816746213576856750060995638213596478871342283765893993585558938451178126710546029655995857143930268216857712506279366211839912400223695281218823086170046041030690674614135124862448517270129248059803046891118401307072377093292040596904378202281975111695266272097508776179827351028375927218682592306330054162246421354496252555667004546120351552616522838238429519138238228538849554781031750770294465976365914686164925145249536722612653083491604233633088190863230407229962665136449278551929719546141032292383354464674867805550586861338560057338533010269628452187009832115872484696022421138940639921175682587970314750249896896389257149888754192499752971982581212916447538031089583733707245883376797140983702488683433451798008342292673327042614038992508882654863696651560884361808677077770230798964898650932043083022648756207933682244085829648118010347685431020301292812933735473789706365421030310453559361808452085626857568602489337739880539823054173006176432079598590360828953188231753677742933907408171717476189755692013630894946290238984928544218259438079677521763205064621707804092540243955061649055562172168043291031167789702181557273639826586468116184922514671688207690245471134605215383761350927444853670489131384565886679196223593518385961190705855446197453718236896098461415060735843500953909127175844988344690710805070928147681422730213047244539593394844143414687297660323790518705447804926021471462084380375720089645464050317699048093286919865345323460644741294248587147770884244028179260594591327008066423745947701333299199858253922070753310021740494003574956311497879749482444663824058540144458798543738557141146122414559493336610131996585187820277664533337949528550031751819153256562482887747961794447350857308641389945346247300680630337799103369450987583487577447764291547636348168315826005127727390187196364591924175903932997539276470398402033330804767693653820910821974269038353228165982332355711287820692102382411471152191152092405536237884315189372110294854195672543641139042738554953775297014364623621913977253667838149277800333841143642374510438401550790612488144417528021297498717589385880957395765547068928960280386976538039462982033489220828977961142903522921426689600131003043561548372950217116726104480216821858634992405776893014477282075900805058206060450406025840416182307518899052541552365130154378968794301879446702010827421636817568070558565966222861180597272711631044106821088759552160319443782317696147360258254520875393387382724140644447992595620025640463423871994884746835166583327576546388948586953852150086077074629366090166452038714518811900181765067062433027868417979142394240270463822320897076159211149011527392645676725757407233596218786989556538088264603615168038018027840868149953353223334749156472853978416723534032929506896293393033830918449698902444629651340539075625353672207328796910799836066130124986268887856703424467046051562091441716116731622076491238110550254346080511996179280370010228008444275410041738627941162549479965999241308806982176249140648567676989179520841882030318582994525273428533705853040354546094829572739083553384717685947452558623801923784271288953619917675144971985243146245847994846632646162811120332760346982450577295553157679301500675439166108012900449822353524157431690113890594892853165055493173342766749504880846579936577052772670520759221602744496936727161031417080685261753160987801232466160292324134596899767825622359342788988242460778790124897689253167019056289407655462229911302631076063964854350262598721031894215794605343474088013317916756404230960769135997837315630306982596199165873008888005402429370623035806222294746346498781660866020302184803842389751999506971183675913692363217368766782187574785226955765416159482725925755501589419179833430443573483146621278675866243091905267438035647078108610380211985182700872538696592266266946229182143345992562114576737583789142434416334438535271499391884851520440609610327826274981068209228022139906806488943170075155545627868179695117761387508533198543277792081595407783542504437174436430392708485129840853737110900522727109603256338223441367338703138687787536936542179122187327326151606181782154081432030017233553934252282431087463889275607830448469254983693626824334881913367129606387193059002128387137651787525964548310078576373489161266116237895859841004733307308148855899202596144279298334347986739164309516865756569000423746569576777677141581865539321498660399548053751964383687626042077578060617782541955384841877050509298619950515115949786946204003462713459178499947467237852562502285309462609749664195198512523372823267762921932530245775112151817244027635565013781939424792284036811825004959469459986127940338215277731555679419213366771677289195243460716463881926875931881862334683370892224601234531231153086440568653371439822647442905678795244729324889260727948272174507250894300491572828948035973726164304054750847066361634422717299265171215549650036119106090575309059650249148391222301507606421045593253823160123864533917125071849587362808859961830252181033810521151292759741638997183451301382462456181123541472846114764113085717652068727783317970538174336310033262008592146075630181569463863416391501070234889578332325729811572340968837244298186117224501641355830796809096532594521171207542464004335870452396185055892298645435286000159091046921669015495865499022639554979552129721287774233566617612828297796273853836342614389528191097453333574147309760369461263508235946172180194816410963066492649201153410447341972020507344810644194464031420266418687411869803592137109790931655937330002137456477617289816265855882556088654568863513312675715329084803798910535621008649408194333986871961250323604399442408492825656326366492048645048089725561783322013272449973824364059532548047817205228184426449718628847560855644810260306610722430574442645169426757887981890633512594221841505510783351066340890597305820852241288406352109550512727276449576497460741886852854849973398178008650144372825112085418693790890486638609155084791728616648790871273256313740761556990353527229759224539754086780920166222760802227467117079281666259481839771648171285393752510921631166120881114171822738298946274886802400509462456167266142197791592463713117052762643811631530147027255028835970134124594872191168092380127837505702480280821096161753262489711650257910164109442767183390026686898684472173153602549656112582510808451218780226765871736812428647653633230220296906014337636069556618212099234104140590797972687218190611006953867691308343093773851733552694856197975237595477939332360359437049752814423510866904752282599065968894560977047793507866192730137542476949026465357280110820805215974855733254263380999083912117782592697611654344592940905483667890469455798135598782482194115207405841277371271512910472840341118343152089361116069578255149470556519671228784887725927598716099545228674777696035036244921422262517528482117430038642518729758167140245879596255473272837866962724883076327547237517466269841409489148735551325394364088783226449436958896335145763033504858278253110568510144273392044266940793131499993026850879492108673887129189712079441052095225266168699153607041405518931722992478151866483786731680189384620522750740311927550651094469406266616185716879728682628457143676353515211480228520988384425742625468935751052916534441736974757647056642433688077355308829614983428003754254220367098760456410150086262887247961310746835277320280005680129620068502730295693163806659962094978421966266678380912831338429250078963376933524436504810445165383815016382796265181820902178795476434240033434658239180171631660852517218519835928238325030017216805306085951473007767647139670691261727771626726712211372550772600955185967183060401753422374341310756962262015964968689078577294089119168238944265397339893554173309219200875332529530591930643427570476042251109788557115400977999206154149359999816392245050740541189297355014851807525212802711726290506842142908328194884165200851775827682237071364608368616572119656451683852403463629551876860658446241408393209771419271164553107331697321198347538865247767019036617498197148141704340122160148434203115776720981680273124234306970548899400855320812011767320028354231249275658119095104031218592860900297745917595244181851344167797510792616382277445873151205066839360703817204637910340829513656823973290404438815952528345833028837987372471110534125868476100632347834090401718701135328275054288494553727546026598996428019404261478484634542823495377921269269548657390038823500872177617920500060878189793401199142014270093033426677922329033299724941813253256188556101393785562435436400587930980031449881802106293431537546013695270965946766993853607658149850490002759993157074031571157822966930747941759505862643505593827755810814843499008585701028629106276201078439620583814066860042423698219536335009165060547443912161258866088369330667593146652452225624595549503898792285435845002179160707054670823131958080388435199189223450656520232957905112679144473242547893829295128778137415127282336899773368185109349935799714143923368815420339611599182406829736760868346048591186356120296058057777822158772038902101215382128463608338546491775875348414385410167932047907149937545517766592083421564224477854143252841810941157466944137776884841849578146076182216728178620562786653274708187661312281872842570114831914512935614491843622042785200632539974558482435450258993037904668950765250635165271678353731544440350728433730945065718449157970688361990255240721889084688316192147714811969544153725206235127108199594095871131292366989612304741342464917179965137445283923086824367806871952725880663708026658003917704781816428395471116504842564780947169200477162907116031269130052898632155638556168998540453894777245670485918694901957581694212005429299717164537854639650421012228800842379104287341099281696957172109241541369881777738248939494703226465266280683574717039878647133320164422017305911624885292124868555864160645950828585400145922655474288717654867080102280542629795820587133596393755510359060072537567141079925162394491524225806179832384738760971233766545848910877963507342434099665771245290834052092790136364013595724614410430621558743795463802648471825761023321534445572863058826339145088456346264834569090811091631012657100960656890287178564548675243900363193412630311788745082168176416782825242825086382946935260593525361429668640362772403182285389184490665707076142549377201320651586606708556202043262181136544406122290603234882125968113436188135079144872615377700195313438469382497236032872962524600174357482569783281776048248591595246575726925619924711620782771159021670033385064061890546086785749985110869036974244488724018853269018421791053366788013196499548889392648832833436356778942300443407381958686333840955196220801006004173355180186753390650209880835617899627901090501711833551362293870414353678236910927155283365355192121765447821516597437052762811866301341423651716050391331767293643340115090746705295162644847941262651664901389329304805563346306301820901425446024461123524025145293994531241623454377693156158995631318167218711860631306549731960252819916263845768099029801912630757095719028934844887559267891710906749138440835737972758101205465936565080413307298494453299858176466721922529427366250061299014534732879490110060956654981643791820404581616028434978253611810689329689995477849197280855838699350773332889280147389595675521157576552357557008577298233108428819401437884997300605295325229816699556187837538115025015743781507974848772097491557174201103859282234128689487504465910091257824954684405935956864607877773555458876331143930147043712103454607152378240391746957406098484060335902917418213534615742420459449629552885976142686495667100608158863923184208488538293136157674696717553970515346188257939660084520529213196310731006126540436666183552350651069163810470726545665752235559694450157327282731576899095609754927035122156552131028158852732952742981178394750540584369868927032516696220487421848094161281350414400440127982044161572530606607165462095230228920662804429885413874822571185333959452811799026371262837447597777969211206800518190605502237670907222329368673757871415779003489842682086976015729150178061966523062164434133745830799518664838795140510926436333851394826919520129389214503086722334765110795677790892930437785990646636479962916315318684004860570972802243359622630668590701509042542775571761969270417209847748187164011895717836321259941601370797889009607481440088765569743645588610169640359503657599028125627360098734709595017584341782709856496159702916679059795843824859408992453153415864785795125856662211368502557468381928414506497016150854002657056223683872232153904496482459174432804408365291929790676230640702196132728204986854684516670507184576957676820815845249141124779436722374154750531553425097874595723496305352704772439977916690203904227068796079364889140344500054333348213014738867185102836538902520041385811298083432689939375461122299840759596927160454192697027416562238926214312007748085106875014193817468339282973074343584071584032957322378631618954903369533849751689183425270063304421916723601312946560607606578281109809884773851253226393524739289044906799239518179982708297475143402906667990062413628176187366849662116020579523875368073501602215385500971772970115204544278434231443315052007551238545858559756858622615073757198598548935709751537449096403433833256101607050301402740481606578054615901147328931864290371914591843435065197850564083142181054975974245808884095997624063089803997176764774639231234591930182378361511529687623161432582594965222223482860598109843547755588839099759716317404168616492179102097707144141949518698201289075790808975951100062094341210941850866682637191184965110896869019442586301043394962016524640690990478207432359757790023663522340328488048732491216573512302281430167826440383068627122937555334783551976168589108990079792059573082247561288229270535265759947380119392057342685961843770704765806945115951316795801987826140256293519745537453560738795379134017190656778081008228894800361573067453096937853659400049963594091891759773537038376598266762109437576407091186631099202374011599901147573040471785655374784448538555264736013578912818971877073400907581874351490967291021865872702947372319988671476102190412832169222610699889364503554090839786304009374328598119194112807411965669679053539228290438050007309889675298987530479204939540318354970868122710770196628533446683294495631561913800641898946072722606812791736062081915504302752638681712062578171870984069610137385017447106912105376548776230946336992142791427130014110866531721582001247106918694370257173139849009383369566565196531844694832791409827119704016379338450256646087492443781948868431165682931140897311428996963665343156745014219095700306917576215638202915392251244678222701076166154824445793883799907987381963761865633758178047976165709304714467840548668498948040079571987035742576489236211990731428255911638607489823394368412107647620962053967345797319264148089802344993863895262976527970803764488326374528712614037927911805062792967321068041811076633772179598129885789106393776422412952005973122946468474628811264526412186290587585906567944811999725181762658458778995137794432022366800826074465703649772756994830350499970035308586409046912536882269478633925497927795392457181838973700245463532687780424777151323141331785928170129841815588600167907139118554141315268162751200149688073000635742963292574051456070523938009105849608622730767183587546065464015800886059901043997408783864684831083304069069998364007696518623253531588219097335941795879561574066484294058869987392452260939816313313519822057005300630776489327194552820048108681483873391733075310392494876262982885109341636132039679968625883306767519038027552219812444225422627182679650787065779350350354427044603140538239268746878057226781505450198515160546320857920860163968615794482242691033311854637546262681464234791645885085192684536673883488142996615773749291840608754764380072353144151871294154969484488692079770905010041831244233523795113558799688863407779686251162014217381981806166047028785022071106205893079870607949272307800137702719761705782637257006020694213400302177186812509053797322524114637829454823406443079855321030996438613697654358136579542437911123808736445878771216635919351132163811377890203876402879637958346075592301317828935592731400862195503072016899054833155578322719626811974603822098251251905306378436223505797152553102407914171680400557986086886907115015245499424322282805549063423012451290717353766415546283647455315401129807410892037735898175080225375947691140493086077624935414627198225999051524761068113398132940900016225788496686170659926471748170805816219561867532506006375993407629981013567432459246928607428271578158159006432277534196498316228936023252753428873563801017529584479533745319402506242648213288076961837088436469930419468696783932931890082990818697850660476949542641831848792466451201325300443538608929547320188510591072404907561148022262210839401681130106464916307126840353234118058350564889096968774723454680244031103370448945617115016787440566212268461069844840735036060243508781621212162126757266476341796072177560126706885926611043416348906296981828230477975403456648965726511299808875504301858529924040867129855482728836390445857042586384975583733796047370133512728640237843624192853760321374411706245074729571356732977021101449064750518608171909693586637950357796246191487049208697115350643695630362677980348414998785482119898143982728229834227115102868727513772768832562782321812167512625303198424662933473875490999771475141916325574058345701040957980635181499138625597546029482392433405833029862908149355416390523752606216416492211725264789481654782338022831346537325079290072064943336545508726260164253971931521342733203683646894428132391486342182796456859930172028612238892330956263797408162836612446688389786525414949350447641936536739536183169040282018772318453082197818419218008410196170394436766076568430828730388530127391188683978788703682305530357445656688847326068146218025460660674073791258215972852356414662952226887418182895813696920943437523087771975706826951107339689927430330145631455625390821030347267802060874405452602941251295740534093392333710824989110385077072817854162752852816078889869168556096370069507863231166762289323209189451129846793763657502059497433169039417629453639976501026235025438538910088971771676238489713588345169198740470124045147281876881387911700677099535190582722409371922281074175030797206282785885534708598116110572040646007687108327913267764208075136876269706006373215851464308774103814354173565647790720646537976563963637261124210327270099947871404199513666996595732544928772206697450883506363903049499856304901881751345807219260226796420733404282520383059217217358154230580701117708330231406376260011447703928281630311960294189503202761292860565431639920598527137100383555348515335335915021765677563427914958201021310325279831320628909485293335498578890879744235602356895208739461176608573660197672509783387441735683881560412707500620722794985204010307395906363271053436290070071927029483303031094016902624027179298854932711196341405101042826093234033658736639036697076000841277841083809179328314021564442597018416347588604777210210030076163444579129828198974671887231926037400499698663681346238545302441193706573258385264198876214605173275131021957780428850847662858444416237234516037333930027838306861131908666826663132795318099665133791313087877956555763367516002746397994484803076897555872600228946782058759461259872410691662946467744081136861459775859006691118885292159128104477432725586128336111653208933184981823625005306140731107080461104358471560810914483058777357332315440702051217427063529739092154432228969429611075839781085014152810405580604104889731237015165294888064396107840381887555497760445857684740107105029193530697983037190259230432212199239652234299590821484230729252711541726731983489675240770341261933463942430384157275964366542928215109577184966887955554708449371371405688691126782327557323481733713617866811599107281639209789306263467343558799173278984884567036750394199461468257084122393631638636135999720369838746726741228347279515882508737347160868783255018274380863244537385096589196617906230673247933699018510556974362456214571400346472948506094449696788063450213893559440141629027812275173739759873769413950608780981077930860826525520742599966108866143839428031811450707919212646627719568384484436197302654025723393756156282058230079331496908063637672231148225806084293298764954786238560167446120624773103756054287476093484843209938649949627223759582006482130409954372566165088988558333595554220092356415122324568029994550149205343167128675049265712953606288611449546533010759742473359940339033610311296877981625940842317064117076503739755937751713726144477899919063856509827787646589313944091596214295417170304968385214118260181612411528675490741359795335668109250914210492492647883709957542038933836805823617540651651579639938281258996426189492883013939664472964852322515671945629538038305907174797523039108685405750208796213213700476178793064172166932751595401632345209886180036964523933552671958474721472117938082565566488526166584355323620066126117318818199196045389618256708400835864696435209241784897139340421998970035865922819718290859526630161872756888850775395978074117867764255687475835728383295525978644247033953252223891323503618619011701982978833828457175938603878956983609721232392734136825089840447943676764392220488903636425842630904334187801821878037941246206535823670284566924478650375402269502205255681716361488478720487780837885489509455814892611770503190286021137774649843741447493690039364383593019686599630659366922252559707930994586617005321906425774859612345563733828091862451892299349015802721796571499994697882958468619733962967128687189790979014089695144201563273543824755825400868278946069568803621658791467824128894198098771662485177190644998583587654663392282138079607736685312578092121356337794326907133378428024925464966132340488608199665427164670541112776388026349913834237187015633991674215415261630311599172285148188735904571697271592577074206439601929007378797382642266954987622032646275372132764299263410634108100548156197565221869213458530370246304812771652773552693468318165587819871075983816104374067773903074703131229459189268778555738571132976649453732766430269051509847760284640256678781941546281143952242249501290521450237756697088113396301382028648434355971468407196781773530173611780249447353960670722209389819393927717124212041197793223396416963801449911855141901196704469363394664988570018612517972122821197774959855851292115621374639924250998791979750830566858777212049873140868864314918840562254708312569461256552845080777663482862291108318302888620148707841160086702834472288881566753099782580488184607671148605346007992237419154308677903813984651331637951955847470188328341661150169887850967894617467394801435006444585097408934582932500366980539249141663616956537734071602308653013496725894960830897806911450685898710164923285779294157144727148284916447569075573672076384799809992088665068313405427215316616837892647477930478357175616578732093484940154207358107752676480111146577677595971416051168282630513746201922545060522381352258375346226756416627088764191592880173684740996598408814336799765201686382448950147178696477620158268468129089319342657944326885798915900240720734522837849944840444707866148294063759020869867360444091184937754583554601110538912446665335717637731059610740267780076251300538609139446221450327646852454466047318199640055529641642578349599392083281466348861912162705542437346537402582044070585537516103232357328364392574993471082608157805123674950684056939631023339787060987850210353951955229995486537714950895689589299251492359566586895876470196825998855391494856648890024580046263868778093419876260294247871418453121649522976196616285146794003786703898665133472778093909877396723032906536593620846425488307502130294530475010619282629956733836056580910136536748322629419114390894281317862550152522911009413374444258388200442952331711373061036563230290390562885173516215696674256609559397256226316801206415276407057815789378104892137428917434766455421934306965203631464359891672641428318518249371882177249245498843880480731673500522749460193797738710649437178236320360697052798951247264031436173997344996557621397770882668838049930619804949043426033012232899233220110929961657656126197416137260931409627528556316687396610290172803397581467798989210684723700037878952828862627887182319759252828579637301644288764075484410647340455799735595533928256227325769299041527727227682063217533692272483911630764047568085087931274345972136578663418138199274347859719050595110133947379207057462876842974406030545179033574966639308307852824486235273784310958229834457254542339306277064391365376137437100555018279207757901991407746751363267474458971407284472072054299931841942053968987684528344560012960920665219126395098760488627796496925610057281116451957703415722077645652114473051613887084418330345707844252018917793313089533016381634514178607564912140648434285455019878984331290483271409466249566813796304198944467564035999542212817608199843868611436864993213262757812950992787527563935158242966564031281325542198867461069924297505789417108251758617809346900355386475750610625793803399786688791774267482467813456614103166023547012994729515819857434942968503647163887258233945348174506291116154431172877179214211919178213404427118590523687047136529048412905922310199016772560058729918853607921210276924514617273383476272649462116247243321238719801347818389849251805461191097647548671030898522462557885727058994011414834470863748706075695455533928951467581506982779737208456009195928165095720723472475368523949369599028993358066637398682905161367723723731554561037688420499688106475386432261709733106234693835744312581685118699779060532745062350181139863698312478274263591084803337381877051022535105124555622935484488112935631302993265540174482888437523073310109952276180265625745066638776750171896913396280236492946906368447155352473718711918203099281250079562336868190188570420224260318719854264530835222551101169591745363625488474993237318479146025941937344008912737539116657172070239072836777867049666753408656650835278742139636351057631946986545327386542508745421886293271277013898156711765314628360190294502543912920532993191849328026042795648855499875185586289899055575105681752450214130688066674420493366858797149220425560158927959976686195143039814475036914253483320862247001262057344766050708782243668262142371987979593282875098319834698859701300543481249488219797955659868800565490336677638147499911145505623830887153845251555715538817251323486154440945287594962200262378380347087456571974243766796910896077213215591033588668276705228094847119764814690407374504148875413218859152360955233163718075511473312882799750077085420020330575165176418174964808127429793319297435572498660870750434307561184009950597766591240893642085848773493624224908190532114179409742413366833134727512370526428898647826301145478359683128782847854957938547336847086024885851163652663980699336957743651960048877275959085192409037245896275386339277018710203427570053858189594109615815505234912361081306921593608036666200783099244472508417124218663248138499470348636291323046540883742307227422037340753990416275494105323207507936481786601920354028576443749466121781825364064675291786169521759640305708917580638166978757422840460681440679893656021751162675066926205700053197955630977901589377041243017238303130561382656824487321536737601920203735387512170053882104581318775622803315261447021748725553343790264737430423245711793073956914253857399145871592861686870416228996374722004281220462083107675024544358709032668491625859943122925547698910295579370653743716134832218257404880035325222240685258666048590350843552997258011133637122767958254011467778732973637718367383065322740545960896484581851031621105512682044984596033625814578360754981025355258391841952361378556352514843008078333716465321974428635926055067554595950117915370066962047552630001252012201700564613696134126135327473735827209218636257687728703232939504746030825827349417739627433892984410488306842136894246183462351307133101652221034439766300490873708630179264158377356387683365814256680470548170110054411094519360763331644213419240920383149017000510932176331894878494634623896203628355443639897503468919886862684973850540486273032035463850737921579992079354536138533989898482957705832656769300628118594632256461260689807328884899562186235681760337898986122857421696910358024462526858318739372806988024432994646308337854143744238754005177284928374392301967649952514003600227707647146171208743231633556084019956100091482838584971625538153570640580173156929036463341016534518516592448574718083197072190614732771753305149326656009452371496323625203926152884445129781761446941413093664906784334229956549169657128110745126929435031997213185445638979900964393295612947275325862949618747606117418391323477743186105580108720640794337770054174143629774303074536520200861518529949582958881254951846886717703543696636031452873663020484553114456739981922433560015523539925257081179334235747784343698990258979600600078405304080938851175987675569499781383188826108585120668260398382002036641333871230201395721783505936228984242469434384758127081781180761794353806089467980558278589199514554051857961392868025832673580312217270062941692453897171259251092210618635296272981768217769014104261769210314082841587126709730906927310886555631452473069808827022448164482801758358026261045149160311420211525932700557096160566571707451371739638402138772941234756380126844105367787729870790145935552575515870783828095703896304188676688053482452631159828863990795009085563786833903789436049364676705599525771505042382195784157158294294018240362309187737515373061594667943513735818904782741494030797024147464341618411116837815337274278793235320270025629180306967462573892542075323758417530322198048551156556217348542805902777413671980491148209281288498881958364392146922405253871585745415605906633557957100408337776142825761190841517686574075817391175108219712049201028585257824116745068307549707433365038737833956939505841710882325896962573743740736905006106652025549988105804287910423018475125885653003902897843376956439684472306260801964065223248831211767213436202694140918838002885716629103554820924469675115252225823799753276702647436247224756042956854750327496093929621715501122377226294095408037579004018135840871242361355260176168583346631720678874541246484719438838117118853040236686853162535199606344568789672221939136234956887933885787355836019086538999755828095364733011461283234085674934923572189500626896868072921983030589673258650982030966318040870679803649129110443785692804463534926544896321719499993225829367349482337399555726943188618563783764094006652057740542455931958627079522504074752147173929956423493029380058045659079266959363222419966034132330101558244829757120274021380812650496452279762891336527099730980240270442101093620535811095019916425362787901446895583867047681708502525508505753377492616677446434756025617217264034519728424318098428559881577411290676193173365571812250567348030264019191183347168988916505482298004642032940987274139203725117450043958350386593279789650319365834913994592807255204721304285484830305584858021551021869476387316840972633272644964506642764673284163513224164409853032016989796847373686663699013623200272100617116087345983113499640201612087517353688125609923436308754783369074263551528004547939868916786506368332096444884091306645759678355313236105054910222563662999204158080527544017440510611308683821462902420183686149362540485996177246432792375260165914752236477257262745236045909766027554575477610390470502985048359722075112756976402179479892501235137819370561925225109797279229235716834731347748825619188781136747178091864631802855668188584652777871833453095217027035268839889654175783775298217836842119335539006770037945735314531585676064671255784671491476248511298899973103984074121160702811242426837414943668708669860226446367289855777118966865967490831076221026625910450167285262103773334068271837206964809074582031508563734679368892456511854981231297680683166822475170499077015889996914481708931491486508451626235288410316554962115840523855638044160205621695250852804264608938726837590881650043074938042392188007613404020239369921254148506202828722444227006242237197804827170221079274591756631417958843653951184127609246777494776984875861482729807957506488439783621454248392984027138677180594380445366877410459729486430686297725350032568492637092928980316037709823494327064225160465408965059561944538696296434539530455842961616181117285220997235104601922030154807325362661326021606737732310681804542000564848705384501938101113286431390470283634551633112224896475881438930856228305028536096375173188879499547369833689775512855885562932718825391558725989462545717930013524177901320334406838026585923901558432301386637743971035966731067700264801510854486806169619031398713083165201309887206231392458372077533309937195465148528359483565961286152210432802867940939915128967554447339690593933338642026758061225550245451247466527395838153592272408816295085383158706944974578690459105818119315396772601730841461667584693555143670032738283789988022096584120212803905407370266296727317861993986644091967577352040922838323626853142369569487115971702166004515847832592287085911748145778944839986908386602682167094836368030465403223838955458592256675780408206416579734094640001012439543098808523287273065072853979437438060820343930595064950099673992648747324988797647770766078640779563457730815025402906399844958552523241702100492311470305254488430923533093783301458673958380891759345085799061898311204383804666923543248760205434230654966680982064032546769247536166517360835432924047257908762526871241096558800569659559335274322945310109387693494018265258636265584805807978505671301140057034845573179436041034205907632483182398950158997167605193981735952458798290192051479532807752744063611556047833725750710474045320956648291632347042522769977166468365719476565082094092535004637301714743924801408219974571602000698300263801671192703972402744165523408647276520921035418580589834201274090664365258812338445183455618037795838073495612103962960569640624551560481878581060490546166266166678368611098475815585443212751341100624862957403637390520954971884013313150178143223766759312730134526266717804661239064588066676988901436876099708661871602470186076872724403882713599666338708408829979613965094707183037405621645508903269468050306390051716528619164301096117992672681228594321878710077061218705884563832427909459963771914229905762777897106796075129351850348624896358379158378469101612439914833994501245746924309019591648858463089840949849782252179243941799095383014841375849815448081145224338582090590384885698380726977058298384607482522897858184506476637937154702797341174812688631065414860406156915894584066714636042701032651347224202510498718457676775864422716057694441973974802984264231068433784666009729384590012428473123102608128453566990284308707203756769726206332975171841652613354778333643558284461206936737042913888748459710048038761163126431887162201047523784511695559257509757771473218149548533626581754189889713652004653761186918367731951601206004462798067898625254668644097937462966572677455691277528043146448129304329984338799998009079724152376140874995963640108803067338114531469385267956164646847411622888528848544683665606648743605059182716713106476478203982293158486871453282649612444900555329333807040208418619565774138942499189200560718834275547401933823015350218967726560557401667047147469746017016296753751391379858554688339362256871326330136983123349184665716457071593094012714647531343848455705310951667143446148520737454877350397405881157230453583899884930235909569574975771875929048643099487849647870680140811534335288967067619064046469014277667721094405538047121617490823960434894051271744532232806104479231454089963649667745336054961316465400213834689630262996925020515943986562200730533744649061385878344600677203914931258711100923320278379913111468378321860358538641166103020588741448629706816203689578803255958732952911050812887370329038850908168849508314475078656790413602482005563610586680340617431086839783776939528880171684993527082574333603648964310836879295877661755200291953034041938053442777349760510960675376512564527575959521321852851900963535214947791013720856267017728090178346203416265707564246870109252568135228226175193127720702454680602402040244607596015452311472659469045145536336057017795054713303762307869567361025953372414840259458636849815683871502949920164221445167726318153201104814088028076407085454888657517655789728663750957250501276882086944873864681044531202371225473938328768618092901198116644279315000544161124709084084486635828150601276300809492412043203256609128368718862077698634689736346460366615845595292348293551590985866538461558905019217813074831881080481903616692471243802216855348381735739659110377666187802101271089082863659310866614681330014822418534157688661726628367820017286448494634620579496789515243195642154841247536797288905650552538750478544047230402365958171385096500581788354588260903477232506198330802827755307346227710569108909399318535080581580750249872650361420550999568889470812149098128792420531234774893680501582744295875656047416341393242184600540450290160815708609940136501596534858479638705922261977911359201051446475545571192344641422612845048636437001750868489168995801324364357609339302968472319070731209067442640784947996585354877683386823304591597307273711728135841665712705929651323509734169564095375788336163189859467517735717753318214132665413248970429087706490604933765324934543215258425943855455514920676987511961586531795782364939973099455552583877895097540182396128214894632640695184076245467550232195154053190166714956912491588260130417114709282780123988248096655962562766802290908968795856535853358510170719878743996659750291350377498368527158781476701828449936844628938691471962224290938075484130277620206410391769550193592229082950792380222608937751119470464944715501580165516391250742059717575224972254965461805994089615314994976899625467098439283603850074757858365750216428178042965224298903826077773970953690251321837271722020934243967220996734413871273634051921316006483823933036101284416142716021107768015410120983150065455375846597797409307466696036860283122499828360308199633801963710303137754427313980175331443252284250788347610555405705915117699787531607235711904687842166260116404192093553189980188900070482203050917095891012102428810301462790033110658030101287824223497956789207910208727748168524973165467003249459737520294400841215196531051330492314429597796679656548139273828720461328443253137659666527426380484263381682983687875626725636470782560605201091291236961223251370597495196343586157524332778952025147826715616467981367825021246411143694672408235950834570985559053005530337475239541418298500954796642601786006577077622834931138573048796973318926391179213864171773790569864992967810527694500250086508218775979386573207186580631748021465061742951623866198280584523202527704150164159857772954672579332535650561362899088244381220302332818600338030160739471804543328243844524098526134125756468659284036996008807516255134958855771233836997602802586957113165990351656120980516115223032819911116269508919096667397487992502944460326018716251525542367506207625039917978726960908174607131845089300734789537632978267049820476513664368012269111022567780770852302878765634941745696806453760900474820628356558892069075384527697283252006766824105161778527566437155822153522925532807776385640931053312544172270341991034532275921646010404649450943519066342985822350189847347563467096965748596976978541694948923392074731201393820266485370895108927136367175696448747447636550782922783603720663411733538195060997124667253109943438372112766806742016779660061664094397412195223215112134143465346252089856725407784242254636523786057221592339381676224077406121243024758898094261940478699602455704411062874345234169887192333944695943821594786015976436667604065996329583638083079652666709836470748016436479419775613263727126531326056476408346056915003858224039318865027000769413097179247076202361855260245950696799800613373631110420535283961839069898152448858278110949247871884435883331772602534960684778144650032782979566606611086322854030723247045457618572875733088918411933212287241146602234329038426564694147295978384155964633099658939508246379666499873080789668104419177262897293112672859812800409636487061483090868243632772833026881258637604408949703441443925288055270911529258807414162542631217491037857103791302792223450675270506270243529058381447492859761612758896829192228820381598119979103617906305747856866725433386507442391252737589780110365736453758776084946932734745061466163021080846449301629673028083272675488942354409549068162046401611992222508333355871824356319134565217420846936467564556363469773794069103967366992724936132244712584465030910493751102845833775019117209232481427360612075806779349922750211617240142701181390938616127632376746039328689646704371880469173174040417609623042358776629680272245217375724774819151243364018826812787604520522301217421250022217832157171286275630357039648990108446246484761132400666229450308898920779781665549194348987298378951253271277799214033039783693969193747584818133800482577303662343657232300180212783614174985375125583006631670321070896793802693763442617959431793859364897446197106790692676758212529871279982726956424180369401292276645043691113940623021232378084512416909771688942048450011195628713826534476921315736273499745361157028545337089586426073513864978636727084004483762609435168701779943192246028371399155376982039225702632754229040057339652186496785946484563318979223555047219157583751449694523678962456047660376771706792011921630310904379965355149113396432670472708489981056101168433670670807930558934563432295901114195276453243726881523289170489736041223096836297582289573168730448746884393696030776955220119911277650927278745572571531550749085360507048050362911603956915896747530191107229786605975830658428053964933661044528802913970438470228745150930851236043716409899519592699496910259665326836045466898420316786686507136075413724999209787626510441344162980212070751344433942597125607787844412405643868596582923725167706484246972803597618126615057621395121677179375788655434958763896180742943049281934645154038466305744230797494107545004398680485367033266287052320887587086553410311240125757745315606087627899390502421295346290621892996606595634335468913747439049292037608464497365248039560126864200360008214991171573181515758068237679344162778114509117126802694103741153340412452034274043197406134517365459483851118326241456933165085675723037534594939844773697801331377307142823859588425619780219310252584348889760687487732972520360459483696658826220195562519697883390115540229161252051596894889376924456383998697477622261508709506864542590584111135061769531868624388944938588710921845353883471170417219424967468130954418206838630913996163800165899756393668348941347996968473621022007232868795006963139753181490594423354256468442035412473931841003517362114657672277899398149172554895227772403723211676594472022912543347942820048092287251610009737815623579901906780959031711246927149867937728368280302778893457045992154454162027450719554974397250205290782860905730760809469209572259002102397335840847990029809186156549116051109776062130437875993231255018294873959578657581009205636719308557915271924614229029777036820447304933737687085703067667362993700370373706951168793125881718244092766236493909899370233442240163207179670929898541189806746211674755168331579612403557274821679717319634166017377183831744118128097558996255979612735857693617738108502172598707108678025462267034371423441585285984309283925240094646115267418280927197446906852469288263218849026955095412856686630670608725451803222709141723858211138981044738970869197253341579749848940848933615380957854884368129918775499984186451289040393980543732905265079820904900679029852029883202299958114239974844883365083078244556799736748827906409938358865785889514571832164325556941742409005905047657879250140612343787876282577268589466297520967301606403005325137440328411881260551876216800982985693843981264043403072561745664369848806611112130439562078211954188355491053552857430133530024266048454228020281000364171511560831986880486341967802843740902339871190737467512042621313321987872255951034235426716526117513896032258630156866760580211379638632670282029610041386093020436638940105109858189583981365360161161074013492963672046087880275586359277339275512119585209714693392319087695399310697821853184814814315689935937615687246036989489759154111799315821385957352694144988127785492288526667595878740429789403081555926105285366820087978043084223575036687567728163807222055486526286004431395182512897065350256531875829859920376150788447228691766174514913759179938101462711886454054974262362565932014442715566194955846979840293710158803851124386895953006110822246660304170135667165138937023969239840467086284696043749354520464449651902743229650214281950848828206157616082264340724103309973314764548448452607589286255478023729878325900599330903323349919902160240551814464089507070775136016965565548454023152072212243824381299943650009370973598404401886615962436562333158348673691084807273004777526166989562502680848996495220807415982052703339870748511119612662286280985867508433042874549894236431014701533272545145826871847765090284753598586517066990264564056501292838551041222533466154799471832199073016711287037338304183861996620391795112255498401447623088291265629612392085027858233037920204522930928090362582465040533066492719518464192268400535402145216915142133098187962911483563025603251193345617743017065984006611615964631097668608758380223925452930565025341512236935320135355990982427784659431967428224509816784399033296134746955231834030844083626776014316299144755730577506440294969496380696019627397854515780044647612507288514216239873565018496356608317373079493779467901533217084528296771330764730630512604344622508321774681103715702773737476314609282031557481484966207480844632870922856661012181474022022136171565598377224599057491785068993266140857643126583909458292582576138571446106243249405334862988652636889073343766311525092781118066994732046110727400005278451373817057116741160892195748654987396964790825512071146345557573777389043232077155351232907714312902013716629033233282397431125490984204486256114825760824464666705692279844414917728612429840372728501111561083733871539310573997677118862684965989133930253622164506552609372845100229196838803938736131478922161908929617486028626710695544243031053226230657707658984492264771665974173289303230431164024658313049629041558773858240251349236014845446420773615413789722632648030932326860700431165052231470698830878445444968154751267876853851724948602941150004873603725571458065733388031062217106455447841589914882580199687039807622057933360991819015157226030558897993025466432410122027564755523700856453636807612661231065338261694726117329279020400624427576288098061722915941086858658700345152067451196871900973106876572296525685497711196412174945378228250125967822764502929951274475653477446455946743491206923538119451374923024244122121164690860648976681346645034159859146709227695228978327629308405429399384757789499063401729788859186085290238507279116407544112699412150701417182096273012828346800511299612775301663784948122210924834016560566890292005456389087374476301540396801581457994955998815555372136380762513628524462999440236007625158689323621009483857094419933190052144982559926341832800826886639895329585993998517551314037410765588631485964679279884199469997665899074583574855020999010644295772142745863054077342719307529662620434662085035546648868762534379711247038075656471315900792148382249490462645040949485608925112674091439651245322970706944391565586432281816824426676440295264264981701768683518722337131566626779231019266763552699164788223284240424841243635834930494132624051388762114509217714836230984681846141377482725343364009741251681056054703369965993151759787437726049965583430201191114361417552685174238122858186136656753089796018611577669830844080893249732243323200962706327853666402509135778078872418157086995493503101542268951536381376054027028911813507796611909897943071324081986904229956475361186030449466871900963689185574117266033342848998942344039353264358115844911355351470593612934516782201395060067812041601350923860702967168959823360950362066694464187019500500663477362173616042825016862645210708176318529556032704213946020735712053590971469904343903743016726888741631060596977537132361895888496533780926572013512411224188459163083735980553629855431890960403353782080707099068486432896880424233311638047741169154291486530580591930576767384920732136722169631941933456188581564358843482902785833615122670952129251568140689225965180852893073909422260834098187246575445925689746078755066438045567509495752052226162689240535263891582770227828464310026316763879841747077955715982117534125642688776371887927689292838439702981770866892234799399196318150710680835509551889393895607640760907125978780383367695798620868806715950802172788209986696689692770463818094534519383558469674589295558984739791073285632450461936610168897793576391777707204764706272712557885381129200708218000755364509915832775883401539113146321330755229127912898540662865886943730812783610825266068791674730769292390880560784673359471008563973710994512107654472543110537845505876970357922183992441534705517531966881810370607406764422673454882470257452857810639018353603236874238498161540770214818316770020486000743510777014451866669982149234631422433729086965573686296865158053859952733833684432255411958906058610625486385635232545294529728788285645467802821924422158768494249094104356102535532934810914411489589480770643941028207608032853224032922308388488247775273496475068943996833669259575318092918299195215986308689733657956233032922448989091238505971444294580806833999935932623070101812992953997623701718103154401723735071259701003084999761710711570617727715571947969567909370609370522875153862453308790356282777908025221228029663408516068501759499627559035114966272748482094231680442602161235695907386452610272949399051497523923638758711030829451644168154787239098805018271623520195886722584739350987882817914451213068249861812678725649152618876544744778371193705562402743498832716782975666465900374882154390146745758563351259852284661245185887715916865270085329030738408559962766689387368193724245817322910767621946792619312410611648537875370025075471128548924717240945985466055961636200445542031930661939844264204505335215284749846034708574359831587828339084265360452818621479061143061357023281909654462826083229901256234422216098045677589924121903917148667556858531758969520804905683935781058314378700589361863996230800678346937246611685971174029597219905037094154686249393090184781075489686520705122759829129220589940987862013573339605072864232089565960368778982366708024376018524619588396056615946753257956778836911984098338046763200810988841202947789874297123633009919762585871230387003099251254881593395464815499158212789064679900241458169736148906163013761928231166585860500891413186172966694243016732434113180103844310342104013618170451651561514923611325349763535669007513406381650186003652033011358156829731328677622300203951455387078078340634331819515521317767048426093746684310634278340312395220248090001889840614387393220939179153435120398608656950226861561072391971786625780104265705351391408305443607738608676613639907333853275094100384867608385013898580404734436241698326436592962849385652649067417346017587802637190585502816685939793320439117461728400859944094810884015624870632087082336988397733156911893047896167486676791825233864123934997371046149637079028367006774606081901326632429316679750257575209163611050152439749343198785332879652624900424781184359769965297877835213166652468467041311682177398672113891083908864373341446644047847661525926964842368082801870552170681593080575803133355256103453646960207522727751870582701973476538084049282117710166860792226516411492071688024856899133491342224263769982234473962003322018778369550160114697136211733153074645270017819012555399815292921871195198507838122076577592616894776294805464316428644104087666450885501428399430703477433079522378526052880791278512326180828821700152157322878767871046766496896979230224191597837333341175375111524054608272218297400741765823090585683923698975663321037831888781939145831779201544132717948668162135712478674120992682261701646793636624832010860399420950753835630589053119045179540520253651830179897100074262137530989941936883644463551288530445530064796199021831128838015728278577379252771670521392250588198926924295702921478552288833737017103759772749059146446072442194706507473561992371558444212702162456595826030524984801773852587573806293009477369734682347500969290254438049842150000937958170767963603825141268759701019695365927885007356357181282637508272464906013853422328784119726031024656948320672711330192351992736243306420322881729387421777258262177781542226361960474761295344322431071767240141800690650911700708741585511406597898681640688024734887491163141464906812468198851524809486138876250837522160316529675611772671134268044862134913586780501622124073735867338624825197758198515690928266518708984815138244718241741667972593771963177248099471911289757437989059066220602893037763002587514656109678082433165063146213865779669196180437922757062930996446175463165069170291800692290691060083236510280152795204459262674286533752145674305338179139419156052062737466973781869017256213978774678476608415946754297503024214811060852770519442973169800452704823110247765844220233043653400276683637668179676284510697496101988350972366671836161280519419350699093942423954809787577434387815474591106744336161975931529660383120076733598136960756403383092090223625454139323184202913634295989245322486927179896146556984168790175044998479948136060062738084699436374055882629337473527115942458323126606480879239044810155568718601107295120651135344738616345173075353218854459936154128826803733334259152518316148300827023306416178479597647022238991332774699737547221632046195203776960306233050761304577860177657510975612811838811733534770167531375578938458455577628428518273963837973341528689347864166445948167635596876041688518432429086049010435066155966565201332267831684067501029377920940850016664554131390660566230978029191724053648927752843465229895542730983275757917441648177747974603458045224124505034314597814345827797080036305219136071945692378757499747847773131916231122006432017837638636346772152284380688380468124025147541570574450643808533042195690399400954232149092767494221275013505314863957552795960494295090487064825208283760102896907299873583415567129976588453430458911478412764997740983645814858907606895640090698310373967462422368024199007683986821121361162812562318822244308519702658948672323066249736834839015218590800021106079614539948096575651781416849081349038547012545315569990334847960943312779580488401865490259244788851545806156142204378166269580304146339126744810228721922480534698878799197292828614293542824786411283503148394540778505752848531071248144695928888677614939263759505291030902214169113049822422353782086758660058182809762026776323968740183008461735441267176483777000871953272244001623904573701733490365511737130675385578764133654544852584988354916861453600081208147807205948415417045354449290938536523563239050583503813924035458552724590780704202834716101257964582815418674088521032263900643218799604156115128738652293792038729771944439243321284020813459817265191959565054850211491731396813566980307768545228197011031073661381385137189644892214842896233033362517944599330719895274099340513352742368039695738922089617010107097383311783699692790887923244239326242261786728669238641720183900241228610131181297370268856582901230124990409865449159383993610091297719965259117595211719037270091856622277038034610243387868081199980082692090250801698548523389599675383196985311971920985248153717215805364637640310222004265341175984650501408254701426118380919970184382977100608031757004107564065052639512118763050026008508518947156812370554335492914611235939059141773041099404709163973790443941447081236455409532343059253964998980961553444374817081002672145900032202116397131124831069186687508883841071709916795181970155019006032653318025553136559606799164450314454722752005694269704197928844614528809316394671251969093696350769075546107184659243879459867168358913842965627680960823284042401886178399034271338651786167407337443195041790382732579858697221951888843960096893157634057964340693065547002821422608476919146129396752027762603074040162973332812561471233399697794717948060533901187562477849993469685920045895061242013202333029683811928225813485632380720364440935934325620968744769122501147479993322499729004713647915317856027427731953240605274289530596471911699088891348448348227729562597767326461373418388484537982660846964180374243390504459044679236008439631360969272820845192295165388665582303439884654429883306326918520949401525559414571977550171680794374995128886785072139106221776438478803748771148900975782903971311144662825792355879080837899149384534647346206498923468996584145676694169081334693082856165703208638921471628045875688467270261797930083060706407374128206541552723605697613813802645298601102614980093974674257185602814142411840028630235618780858973750493865112954723689280033928957491790593027957107714862943725934559923584322384583752205606805222469294557689833248895709333543793165106448284495016271213769174235728593130517186991434031387228591860503704741931675671097364508567744533324724679956607939053401782584841149619261859876004864029825659789874743860118650596728304796652224016719134755400047643013985327482886529192781637603441641107685988200720985833058837271537699917543346167893512661937570407183433758950635386366661496262026284698265323610284204091883891148660579176980713163215471373410133267774424013158452067739427636672400994460797758663199187356100818574371884123654345320121876069547573678716645893580541005374936200453804585448363714899282236644467881765315303582914596364338833354993004166511091547735192415751805907670675621884821062040468459126103508225602417397285144201883506323451477096627312584873715343827347304048890075847186542268933726042052911281794806844712123551077065517867300199503660288850084171398647271501037811300590827202078368392033312847542633118703765964478371943328376357532535838460839025181264606309144548276199473875742349490973764803580621724016166658253659947182968467782231787860735221036658492844405794124244925967945407346086124848525284585915462239304663632770443932053093765101599208328958374124630305595431385600065094679107358643333107978051966704959038232178494106086616073662540283262948590437708041890869236824137817813597544546956942009741632859405477332779963337441018779579862579768985678759891996978615180314628416597730251750509524733494861526481122589794252757895249274693801162940517007213189567244181585810160415284915815240474058436439401833131753670442700203811496680794418285576509355982903618697943177690669186502803756804390697226855619646197893035148438350985682041718562320094550923576048780662979671204169170493669080157529560648332729468847304352176209738465143066914184803209750347092496415863492660296858674393507115388605123866276432292708763410287162900032506662962316580041521846170950496969532176241536533352866158963106364486497257032366229924391619333009622647999811015932578132475452919563674742009095514598710454970506971492284129926993147327072648852514167162428812574417334722708765284995999924451672340163396284333903114421482691353651272964965200749472309723026598997421445160825169134082014678852865787004871947091205833808596129747030941932669939584375401829201144964674942704190116768472036702323443433886601295450773203702246499543293579785553110265008637798119673749163267846056034103535848479084581878070361292186628719106773532538981706750564855614424646133686520359447189088534209319046762921469629844224195163408547923950753809818959422465207331602108026155410056865894761596051273265938966522850209671745661197906083100361991941935044385501980985252034907744411967712234253139865574419211221911457716579020928073076191349236711267826810024350342784313355783989958141257943048059241267809918385363601275453355061073352363191385323072384754184436350830180726029495629641787952889422659000704666383922665437812510477474555030394740324210038538135106567169377531848766568762574742414139707015530562155630892717186959062743665114874108792094903677948637434875953245008381492260572111216862521373363797963973192218138119286259864871218167418934760285421847656196808517471721925537860377419224932380051806177827299732982022317356416275655358846416475469500854589544862532891664575469980195746853002274841495125836714603125223072399324147987073322706862276123725040951015073986205353431512797163832459811980296668149168486601409453405316286945651702297363313165202948674545518714214811136956070073690861412217621593212884183969318904099432335279162862647738199573143106360337720687473337024088625605674249917836547528443773542125711447897798356517573073559133477063355340791552370711965074161490897774737189445683066069328614560357348845337106458768795944804674927581751451116959565123621556708588070570559467051010750333422721358933360537849191859786814508800933492640410426780251121245000383298721866607751994902552769788883179164026544932703098947360060003757219462918382507965941728522479376853969118266424316989275039561616533477624372959353218678777709659349813838484356531700405926414333502237405625782953975345481845897403681187587257228372422215956495935569036890144303857602727597766716495411969332591404613150670498570139173798072904225525264541580749282704052237504497641150225862999822571110469945290787669721140985254868775827072485922847882667327559202632447413174361256633068841427443549443947940871817135906416417747333523262064665907575016361015805524528197664907159077331384124004087499645690460233926864097404945405539996780000752442116641736117079174776452144669112763215481616720986552827504059104565802306082591245806701838213349407177306402152447726564857318755728327394696262103370273173688599566479753036469200221012509752490240502767745463090585001944546891401151594146951259304343551397287018957201044844533601421646095088181126840026384337034206503071008220297398863568952630838188801496729635595369125142821633494126716240455225548759183342098545573425415348413481634950685177143171517532291706167844629848785936995918081615879386078040603278546223690597863593431670992058734320682393484657473904178380653414060320238344458424004870216593229051704295194582755688962919370864903713073534381879210988475848959898010904894794846402490637984482607366603207910334498284868255280845914201647721215431632338319442175078159956946797793071877794165160320309431107999060567132739501282667515270165810485310488600611730263539237527207085703021550069382092991998760965319584532249622865174942565665852241706300083623471135296969542375616484042613339054597160132292784253081423117814078493479982562074073116164145895693080747172461599875983628148418390765359940401760598028491050891194952957734645880921412150675026286564308892010975533244441747384917973712270054807150234249719729146648976063435956990430328162826828880014739789813266388924531768413884186027692723439952888641359755937371062549464065061053944468959858241193632359842582720377711279995410687661907994077814643311865001406580274020429765887892630598514059164068484505167666562628020626641514695827674916943564895443674076263161911796467014342819394675184705482793640345979774852076296893656208648657918382411430435572350881656154148336948362735794054461819310255354647665349884960411660969974230309733974375781886460404320840000130107628883289778159555447037449037534818503102135567757592617751738463390865590452743309264745358811135305407342950194175399991419799606082058983438366901747039265424194626113436037899550786421080555825495544312888452435965103780072158645140967344856011496175444928518072259999857366333673465886772726765443655367321637935004236884376009348439300928268610543344592799624872317414995411702316774237291592276570643471050656702457382209251808615474753219464329659013675585490732303729981884224747829254836690146705910351709818206821839160877546703530315905961726896707250403521831405638656779632692107488613975411206527633479404841219777843127209218224725070427595157949562906574076758641414058508898462780179104427192935865432950863943378780222606660518512919054799287386185818122736693186102691886007082090186118289865350472836864555153723459883963708569884199419096751431360551276882377726568828407340455907398606725807763786304282377023598798361340107641340996608783530535815688434307912636339372665154403522997290356840505896135411507072905669750867430317094128262412152273560046286055168351761107543009103667410089853682324861275184225048099161053923623085445542976256395472409765061968955527406132972134443265269678106853958940502686557598171180448693466998543629389466214867308510874288500531231029869918011030351875420044528154747776717311625890503920231137452485059491783227158117035747733376077809283294195250480213255990351658491571834350173259167396605638349423246503938569733522097242131982643119026546111452298335911863530988230058209778787004040436819414922907509182020110653755612862513704851441254608195579236551061849174294000904719251265415853062264811101851571198320886473598008374968361891938563364473157537175152255897321503269563907450043218123327117906363654876391857853604602457294099142756341835189449547963245334559701775295998278194343634876601756351682444294598184122016868694371213821196868686028764795810487806421098850262709665706004655793562400787747081600482177053666107571215749834436916591958121525347244082399114641863977552903948832504279117234968556752150353680596095482264047917410613446242933749640991024444627558514985727498427634565175943407618902720444622903646378457696553052322559340487975060668681954965086284967234709692491811550938156147344010505911203868002211012776663052964103831314202356931278845628876925705813207675167188270229131745134110229678838789721674736351264620811254746114476890125082938766095759815432213715247235362617568820456502865631205187071266003766489207053621846294010956339844712041497912739854145999998421731262784819779818638312941671528656953343242802313436131511679857663397701334057744382936113030233959973545886823792110068731822895087983315276748410864989741776376710718003428413360044049250152194798690233862164776494161882600642203626692622288358821098651011413519269953741408360677296968003152756652321327587449669323090819926224357762193724588239467745360448647551800792931955195230944622168000799437455165895488120028337555461691921093153355559240599869278258668600737096067217676605771272649196019602254740902189523281133214770472227226951640408821736899856737166361930639513997940994556550350454615534488982766619777881382847872793639301853493316752194811391885641899661879192532743110755454480527564494603608677754851407191466974326117366561194776014724327941099930815009604777448332956714315229078433793040931815194162355880147211139801887575468350945031365317233901205689687478148853267733525963675962439673089946105110305135424105124736036371791598296526277746464351023395295928631029644540933401771625500164245906576596740923378200862469947604819003760777353469261196621273143795920568412169171194715393630922668604430780258252779015311820275259320573665134473287853781743319082189888229372504688492900505278934364649195248005508135631257858384175955423595080002871044696891498420569618238109655394894166272739852848520770183569788334062563654293133328340394848669394702188441119138169923420525327008717634563602206638183407947751360226445684849636358243858991373253101684687833724195402297196223253767676100868866772196617788395022151874812011500470973896804898638638220094593220868301083536356676823115807224789110043481000044908513206253803074617719770973633531416682885458089912621396292480051426302395719979289773762103121826628328421827645741741628208304823887600814032209424497265727853554561878450115316527344205668859845217721846269584351814452480613745427810559749653516244732336893354035933009900925507482617484046030879808184835051762153327566445899090563437083898302850320603354852753007084060711212595989395580541617297471621530830421372511349950052996255644251574276996419622249006543055973350986368938958044519586550257764042078432775314774258573713256493597909512168227773035821584807907333458397704811217730103947854421858407755927981219660775294705825161110109856834435759833074626360824033402763268426102897754009717965272122569553991640555738310735174029701587678182086469265587867988085879895271903173002684885193490768668981454635919584982415607606006669155745694779655143422377738973652416665361224942952238755706957373013180175116724257818450121880868139747785647538129383331474288353528025466819360788386787463264357540329606836593911362425993213975896200838592420457203490166220474789092648021653362811414893742415116899562139126008742249666504721690525208266679226932540511779941114165276222290477024348331506872846413643829306841994807369735151053862541804497709178448470852964323799153214849634247311298647032480409415194450263375097492818337963044185807155422970577714795127949404986119905083322090947270161501772319244201038450185960036077568851299808600261839783195684518058090305250145538383118691667503117633853711686465884450338365751054439835543118077316280777846738596460965689667281549641131587022349073956507251158194480776767612355487487137654221307631452515804928193940060029650264463211520897479746997378712933774900916162114360411384490715646165517123176645457846380964341808796266894944989219220626766520392499440544376204861511935526415582456327529612473777896727368106889222360541324574800125780818007949294428328560703674280682505931052812516822132606043394923116395879111774258474158739069259019775574472751338193881736446221889859033709761747521029101634752538690438290036330505892920537180753777581202945785255008616895299666592133982900880019127833392395861583626869765258746001149208622673712086315679939795962973235932483050080822518918578477962499254158822942895808898870576074685443093415017192993155973779816845207819318912167837881561743621682750220484277809758455718801135054276995990463046400464389368037471970433211278261181528217393984461806319462299532184392666379855272785834925524784228602061442685286428185635697147809841563581364969906990231528402229017754889413348910080216028145871120708357632424238691954080102594548867118974869114694727635860957566608752092589482731173284190369580607340111064428173081829842085697022895346632405058087367629312517585698043491448071904952743572572799215271426244749262357662632963938396490225736008393066094915781764469164481576933839891036289772284302725079459864083818593503635542272666811871708320229225976954189171338596965352204335361188328374114527206696772425011712707265206098076966542350574576283190240719001647380979798910219353775955443929916958518076703277806545841710453750742721147305952930167282833334547133867556304979142209829384930368360849956461344548638734642837263453222762339472833687004098140006439149904475727621567669430076598499551920017256970284135052496817203428951657387901514148006929850939875451766917752836865509347080672049153750685794582443654718661570568918693029482807439703973380594098157926335325330091288940142646105419664745528257247376298633417429843316159882928807035097771566832683942858704122829223560863338444105861578900686823244752651792584248501821707904269492079505915272717387736848486160886820900763390726942377342808053115205750129201948958028048290884497519873813154394200819655513820838143200671155172167121541648615795990143358757932035255420663404291063362875923905319221104076250134195120202355160017506088876041907400293884657107698467413342345567335589307301844589537841792953515302705950080998108151101769179978106706824988265707265533835148862114033088972890291398438143316250416026049059690749817620019945739580166420707220622350430172021700241525217691484580676936544602976818940575127105918554401345821237698538629965556029745764199420201119854754212945037046463219679078694171145736208369726327142338002583847748399096514728603175542958195795651950938551197161000444373106836743242383066816161221403734463089807875803952133241195792970308138417538947529532169790531058082631166382606942421061625886065459774635592886345347171417420206028764360257280766985994291854037807159568284779863833812953176711847935584694881860389137774174535417284859026340998564445564568910832259331762985748732955210324039519389833216299693480373063531021706714311313614396693834174984876936485325902665067724391807923422624465636620444048922727618569572918683350459282416454938518677741122647003713074457201768858036544255617931208493888601144797489103108934565686946890029761590303905380038313832434885569407829175199841890194067670568814137329366522128944913397514430984451974567875923576077998119781635398609485961802353347278129589538288084004115682535380754873412149663104292440740773222903414923595960171485448906833135688422614591304816161908899450498276064090105419309784526522809747137812714586053969161415024051847255212470993065108788767525653099799369271415045335982882955088705321792293696859154891010187673917479371759761528264302570795107325010033129126878897170588822365743539736972880643504291383052584854145205929849966114264021535700331229434642993669088132804746703337981252543704343224099781413906766109477113420519102135293174836204102388987846630142057204974388544737702066631200281781388972126705083065532949004656367113110251786704272425721353959086067085574334520074436211049752784638975285605781239739165347237900420277487169060509761427625513978028564997677344120763620968544586700383453339784837877607849891562311672179058864922299123654260162212440625205238134781317597333212265036160768868626312425157360206014387183925812737851427958531195183999035285078257770934933793405119892223206322094822750249205289543182866126052094023965371593556861081765149332518055215344416205315978163671941346579348677817341735052504914147873524705520381682400367915503346156230031736351317170833522839636457091377386545443132073215793061310765541101091996682650091254504186550236522153310292371860440777045598432262340868639636772543999344438749153784465509295554465745220271867882111457154435196495109746458748297194881101310263169151557204583882266810232793762106173968266900163851828223832771180036095001908332439645783736408006503958702107476983523367067592438174466811677342254406622916982815040704677713465598629969529700164220126682251814079849237204961991995656514014514816756304151839281508814074910439607871982385771408624337098114831572835670173826154855607677105241970090159199595558932791380777560468765837478111602878892006155863880023438816287866187819026922890800959153722646202388509596328247716817221909432124624117003218983170536227836142887552286320046114293471279914601814849580449520805207611224991519666348090713141807393719598203378981772558555979005943532983782643629919006350738723091711723109840319553617900475201843537907409107922574283594940022932662900534835369371499526767843982046597845219578762506823065435731348286772038670625301982538944709591658478942440825076993926753546814246648170057065405204263982466317277181461363724851352603873374093647649370271639448498270094651666691567659677175214544766743807992364773340996345123958187574140896632160685394885831800642659494390236677689799651741406636028827723445848992624771641686998136129479846005829653342181336624309542275124495834288867454156090672556832584071503838166454851826452379935796072429932049079526118758115142324458471486418747247094287184587689144790119420739560085534348112155673749602293255064172837569342579697579302121336644037925685705117699625245253937799464614369542408384176730329126938250972973933575878109659816639939592349739318575329904722181071267079903033848220060575589046179605453698481749600808370172573331461862663912978984499884117221189902829254201393807696396016549995493950804103312315299473303055961951334393138734338241139432878351781030127897677133510549913842811792533775045114666686305972030548803503118380177180286886199061834745365047127864989950542590615255884733808904916495199909492908534274519859827893768689488818694515885175920624354121063695622002087081810221173135991697951877723869103601786001465520149820803215492665078144709248874878293179851823362482178272725859209937785247117409486522195150043004234290562259135582779324579067578511448700561579109048993624048325691229615345145999879316706640955575585628492520222379469439234368298037171570674586282113933729607557442405714028099427411242401567315868471326425345730603562828488056236311547376027459343425458714621651984299746052520784312005669218927271172320459827339480708729979760157345936751407203954109088478817768551064047625681859794428705464366069918523900372460059830123251823806967474397982330120606757047333257472255644165598507895927051217476860430019586871028135480869641406981942325370304435339799737317014359398091816383058087174795140979297876521572058658828540923907269090617634592425671087870105485839619345914702498920146425290085957777379736621502733387771566470918468328792481929698118294820247065257646502745133530536181548706149781861214841600383698035191792259014998501659304798286280591988931561275300586311277163851293495146472860486653206773429991425688456067024829617634726410198996799412134627053902689350768832135967116716463391544750048283459472198547870561610046228144014833237403520520940027977040627286475889520075867420087484471521091113283608230239946683217556677607453906955000244731690967844093984585382903941657358348917148725180477483763231278662106500695350004681849632253411208707199125116734496206913822756516062278953946357129315989334111841831225350818005092214376569940964543687797258905001545394446731222882159869624373378555657097725132477847678423608340266282926224621272559664120503570782375454450716309897805053858383697284870958940655234661510408618948855626391211690704392598583734345171790751273129763022375210558187478008190324747277522978377892559360091153089596599660555726844901410865688347526417891676033360581488879352837812040068185328323842770776168208199442055094407120779809957753540539648178714314065617318975290315847362990887902258034591230116608073836676633813512896938349156491180403099294962921868417139740486992278853657089601930909950130443245763997894515898502451645502003236655817802155396418205905809644952313143119728592846906167280070612718623657045026471174518101736218254283550999825490907016298796055463487353797745552661941963429296657950604276743124673495740768683288749785047942316569329654075817280323780884725027577892535599898405589298644458967916674860880859061355437066110545127883820652640166424845565078697182751312315883966120316161308801270735574272773602792797599809408227355389197930986969706801786720114875330455156780049357466654922291373379683859104136305559007824048663857151974189070384389964793047460847552136938143074320748019653063243252914492233961049795289021177716584413793302827654496420872212134440574873397523062147949893811347587297705174418751217045238161466375002062813209602983144113050001159909919857549094307439022842872487531716350553149116840012848971191272350491830495380205288146733135483407917482190591344227868296447845507307804585504756382525621171676579955601310282347539423702538378937282190450857215921349586830420876248127732552171352083580773659983638159711161834192990933885099345209150950269394624179521756734055982873363994631959544365829680433835559686471900778906093617286763775925735643071644254209585124478598186413490543737405778789757330824872046218706742422809368284310600686394464067765420567103424626226248509729786733496396336204844055836848812602182083513554754105689385735048923756410577204839689301635956455737034397945010109740370320542415314198284136696894370482790014715049724127660282082941437875966440470543958018198943068304911153778518159579917514784292900467536299088731971390975544102120583164582919076633553919865806412528978548929167869588893698530250342588957516909284990903980157154221392331200649566769729502861376742197193560274597066799767984088141371739483021727948238021866013871555766518045110475000720558181276545677086508148988855820457003409133342898647751151209740218514847580766953538735118740955376725607057577901254610741512773292931171824703450926208129751984634721765285667546237318926425182515551935271951385476491986870970917039500720364337704505968728914179626836958793295941109340812682532044494907567044669242810791675571258913488136414147243767231220578607339219087980449005580855203911702035194963136404184514669158377911568102476834327579809600995833609331752113565072505565419995582091494989403871252648411354558795160324075120839621813370200121294641301492660380051050090635377078088495132815122740214296604206449494775472593976395780354104627226191740238715900542975437735216828471061506533656231882503394171863782829514298464423481387657543911926848140653488628724497996807056441881380858535485305003852902355354626028579039067092701216092453946965443099370208895601515143506352457695512134140220957312879511866829738733094220611199891733690965530008998587814993838591432334691530705222542599315334484136837416236876246703879704384034636862311305967342681626190617731773926518889872253136208795205283152969947560901264915185688153900467936486992224366248934167441318743163495021409663343384289419342430036651394706704615555985183390597081973773828751400375225412417649898767039864457681257129613572729892727743825422200072173976977638290698756878700411801334929317736950423802088513339207815702161586212323058580355566255244370682814627069234754680758229979709415172003710711740218549185730456282604292261621777348389911759399071439611891496497381297600762988300586235019225532250234712763959934168079213734768158659016111262383311366675519097657504015756519249251824792610736479706114067866072841306842917190862776348911915699684404970261093923545102263866422095766841862014610207945349586782378852858686022686132681726465455519239281000174147605086240332885474526548429741507749706928487744738541157708683664106980715298776939695729978996124960849890714655032311898760703053852855218263546205386744743973466719113568301067854746100562529785583946860590473594064301791952122617955664995472892909477366571633214657275841231620744694655271731692812347181363902164228860912345855956664522546401740027987040433845346815122463229167369942235656145141065312127074838182757745465600846850387296862855150326090054768921278523526715933579476543678381362168771688317491476675054726124180283257382618850863096423128112968773257956424504766870235129938729679556335701661605162391421782187332990370501267295324688432973363987979281991479310464674561192048504191140751257556486212118730448858564137192805326610015947826922253904305260552808116269716094773310961959031447161212384880516223114572993731220522939103563378841439163103991194701382626228920520845997211919168057293535246626797559094123073201907991500102866372585028243569222168874717333705891649960516431256838527480516073842859016754833267670600252222277651958283765613980200308933806389083698310906105493304401482041178060172391448245409268638362184052968767004233682707045875578119324971663504230339114770687810249199784065144423200553172530112500967568684951416548248272007902356294180562511696907788573400692860026979718431940863049837135435331349395669718873930958802957530674633582246125223822566718105479872895986419112776760393082616150678472558878789997445309741750674622768707902699653012767256059280467209181530851938155411087336549875254378642904681506695622757707782560988739280538857310444446412086574909228811823938973123321524399424472154114770780831517124541871366894728325507400972694374675875536928108134726765079625621751274799775950796071738830702244831570823614401281232293136309892810011957822475133388112448835984786102246464526705366423620695690335144822970872000903351112693635815170176416013758853940911324696159521596923094364983541778573355533766967245011982136788559286633930358002724428519460766423308610788438028294422131293860228557500624664557216746765959695827685281435854639052189985930792251964356749419512041942156996704444895977786807727461923772488523745255964952047199289371819138833232066714757244994080439512401716478653045297452664844388752882544817098557971575187109758529998269373536324371717218272599623661681412522436011835659480912292920073604166575175570474318335008621555614185257431117379900476283020146953727281770773312390454648027085143111814988567533991240199563534047749427235805121864871935464748122910936932591742255146999168789336438178699385009478293316022798925480917316757964607618172754138677090667665466138541982217599876874026149294344833551845522919742400183983598239018215656968852638509431090959496106030420772013214184246984684193931088380762265185118368768982186618077422086781901281422942308867513539600234427390786966924201104597873205400336611846899228086288826142266911017975481425292917488877250343023685770906719816719148128417742931531270784963277357702424303275244316099406124331492594094182775949274953702502650016434069932864943134111833910017514023130014241965111006411735005712102000261290034580303004884935074925493737070364807945537247069522481950603424291167663387345467647796109045015588344698856234112832583202535943376089552560740874121961887224091943703383350195985635578343682269569396071414143457668898541914941581285793011498690849565856316875313170046773726536624426679215205014863535563867012489603205034810786460070319745124421518568391963573600849136982270912495836560087130742956150867912155078861163797156162383902656960909699820735563322618524810091565585632122096130172930846897809236804845987233966359979530663228009488459065044754632970417551161924771929510205391466043560554351243752573490602147487022523274229607755749396543819528136348719538095306285281480234432379441210789365052483270265524105249941635512084506131042060705503119054305974900525414218280515297081290682866205061216630313031036533614733742570524932070349341418597230061594249618633066690341885939097971073980580851080131193016752077008498341045991255888410981126716452247668720403241089129691569149823952764119434923311964458990406767965888781557594467832720180709248578354118432654641086728253203658608086981227724884262622140001150612370117552869684401492327362368916505872277985168887568123529872976586831539043074709945062634248359045010584925246885799713154561247261941711372825475201982915939371671278793698261597822335154047991228603014467134238142859967099689509959027621240576272899616066583160145301598560926967861283948190413449345967767852912297150032630566826905828563036494186136172058125541948346541504771747261915035021021741903798319220941720451887332866851932965890286502573471700267921924449698670187936529144950085137090579222474010042530873336619355162047259991615833931057009615824551120927396792963957212234303530046862071785253522793396090055525090632325777204932388805654146937923879027084786242050435262972194983897615654416292524906936542220774454523909623557383776413791007135039185543954400190038791409312236623306469196981804608855198201009575967271537122809073255422152224387175235285754860018255567680912576478125458810219829875715168180156371458862606891760290810985944412945795115508043442432029000288014121953726741972541800571951560677539432083716000584111676138534788644762825197892366615325706118686265425334561334260069226723917795079779043676444306131172126209002013784212819360216008806563877568249750492983254320346973781091191080185445681181176872263232238939619624211269738432157127584914132662013328732543388299176009350525411668998397334516836468621200734160045320379935797834939221024157742734322899757513143542807210965880658557756918237773869591431687565841830629439947597614259257458165614748377158401601571892594315971850095094635928431946019365164381349684252605206134080216234251251664286163640978440560195322750663616452696037501725848324736798548361722396896088893770146881939274921478731222216356497502285490115549584251476091385003383576562927200918503358122367080733662764097495947742260653014982475690949256777397135623130426079275683502461458837636527385257968573132430363299451897152788666187528293038396689677354190603782421469138900874199005946390087206013992490402311058383624097604611383033714015800020677311467105451736650160499748601799155997402509115880966125512640174973846871549580317056081771047037644706888797529115319080083181860479584434160074136644038960489232123580173689430722461554298763402478323422115903235295583762137568159295848437747070574353677461750453955522863613716172664414288794461498892716041266815203028476964353957131610451151670406748087093884759916835286230595197298882529660003923785352164929864020343111232524787526555279819983689978608877736941905212831403858370157246205749719182964574921357239754908740939447288077129547605700963561625083444657566502103422942476411425976997849228966507907220796279956220419081521626116954103946261326407668161598571341501866523777178293809343276276658419080767728509089340773536805418464643496218794127534643144711710726264463244331817308918170385829975016872044871684984641079977605205374709650885251911898611247320094743823312255386524965307111083850864556908837316695502963036341753239344314599025854019808036092337651580474503999303758904400378855102388533276659764756148292860606005676288335782924262574562868513119432256589037142818187475218784118385950200731635694763797098765556127611350878922115480785019411666578819130063588044036818869219607653908858936942603961367755961376585582744980555444859318847100138605515278528762969960373915703034483956219181354169927807409948831424614965082745656473017843808473028320723852026174047748264091802491591893002035966525116664523687936010423831782065710372760718193110519242168404705330503274609900096895040287242209886055128688565559976217018735799770379711995639579944336286634070056900976994805265461990931288527925998551576852801228918580143939425140454163227007418948178707685540066031467468465364758568030301210637756059098585890895659670438080417295412597522862786305308379537603533286863064411542068970656971254599484472358803459974989357374900421375425222916025931590040864201232540220838994228446798688738817297759560779277499521636291799617456142302711097342509730015472045094751746028274237243177525026610615703930945314319259507501216625952869929474270534458750132798453513546099985451178276546774674072659676019106029283617738467932520474254708212987534338175811800988196854929417790487796218185253019559430022506892605522968736476324703655913330825796887251240701102028003618712658820076693045556892090155192113430113938880714645696171895884094770510994817462821619890127039786245261281182395487642548153719347215028015159973260624101230842860952671671956131550881727178427594057964636681228465320665230267751622133832114634920739106037619088489088342938823643181810048728496796223652827238235702479615901990357347190088805075969054409748161590789353890136487734362679285635433702014962409673300432832641205689286633486899977823845500623903042752576488972492807706223091248490452040778270079091041294030913536162383327488396382617330848588348092631336593695259219615010673937339936802351530358920427892099377223785617187537827233391265835589498302728752057837526130785814205736107480879035233520855622156752159381944837425742089326138104947152907509713603058912278479740946187768173456126011969409348375043619041996479530084935803906435313873358522382631223726662556917814619996013209160110092476822667422675396423431553633557111884191711071009043417892068856869124872180497888096683161009225165809929093573225208690109656801678400000944083116126002350492286486810559119415616763481472120135199087564829568804246222603123687529862940237147018416805621710536045002558959669603402357135868866996582061474826438564271780517032769059471535915342302593548869495657450253154919652129362890440145493287414876401982924988151751424172903747205519846814636865353386392999803224451935844393722848914605350876448002727695696921841668627736876811833666141128779086086922124656276055265302851796413336210501037977980782877953899610970502928992227304275062327824262061536012743309795734166692420594948679706513337771825128577147627215484971504955360532056843195213343043503792606426886558528236350911415941235709589810925114049863280487216623840963543354058611556644412624537366499958302435072338481552737697518530144987464721894200098018010247366635785306105833977974025929442322824856203766081305348467626981974298350926078929301874075805439479466937973177634591546301234262019259491371917017694596007528091326042059526037681253331071223421230553088615522783961955944987027862720681432016188663286168299074224970441993099706908997489763149787081088995560157678487289299458877882984920302288084028678333598277755437932448700167741670871475576041876459184608168297585272639814218667034889877643507146310126045176975370443468915235574629354324400055291407893609904315481435906584818441102546379595659926270679759074777140174508403384163822575009130074043447540290385888776935422535237195951166772596831938887749394944032609628804505193579731909988926456592361607698709842171654538763178922185950686458541683140080960855929475051724465334921194566184513361588328873940587216036526359151201154472362267939925410000413110187868684372021571935193884477546558571866268999864413207804676516818166542094981103116531358883968007576936894381391106804625860428111437981849704864822730775165439589933298063551580170789067246002483057161611447816761773227700021931903597059143422464915686092427598111914249698279563455069860823296496864043813117170466963282295419041680921396793513929097245949114949471937739173587150977835039480684239128180975928553292084757852216931335167288952800467977635035581201065706845430355945230096780415342567045620299287830657512076014930568601001185726017207930442870553306708996493491303322112243102028853969370778034141146531999080940395183023827890751334047119653182041291139142027443071817752341590350510071757991346152901889801905594088204268453407550966264688089748547105767164375702521790891653849337094376874210856404963472786718801379682879655185988141749449277586206296384249481868273707241121824685893107524490847236811474124399453162135563237441998501689964707302280462385701363461060342339488817835905766792200740588416950556779436198444197976191659133144551024491088605777457325803428469976010084338369006552820184744316275756626496631949195549967206463716164482919524065479956027832707230604898034675539370131487318996652954002936540215059235519768350240167304723945083164160547108873489417069505174874911957734955981433298606645821806940634903327418856035924499652800249093091162293583916929447638901001741604213487148535057292754319071410769622788532981679099478860307744423792862235743104306323069322184271038573848231456714774050489281597185744512322359606136292687480936690221909899138181807726990194382358049438830812297345020976033428608277117931903142065069244204526833758825746706425211918967558283355656733154465609128234670598139765860417397908659141120040031314421026482117494755669475363780115895351520565711956908692656957913804883397924770894384967193800352507515919051795275858461704420353519975138310778791499649635825652089090877815389686267108246836691725156906796306256926088106659221701071123693107982864618007014687039856514712139117776991081893365370323724013290809574063543818048655262123150624436761471628870131665645862851120594877418747799163283140027086323362517068130473392241659167507398168904647635854697107306495511549371868788672143488660526996046754263163131260598414393321462166459288905027257324515741143368938277433327819471305957783263443650954854545790549369594855088739249494769361477986656066062042159684434972575242442226660196287416467388672786457304343183999894278823982197366342248151911109671735263427035584730387749612732082054632064944960655133212120689995111273580429094338491636169600752063659554125646095379220669024158028600271454902115105507663586241998350566701723112365551948391627756453307721120170369069222183725269268389199512539906297517045735141218495998322950792074972589619306189982720144175220466163444364767145123309844541774085201994409862918221298890905588866216707391535605555228316375846730398019211034927495983674438180535389190041363535361800639063029699659265799915344306286852946957621402620543014888381380175641943486522451368578668441887736649748016602609017431097212673972785636194419303416471024762166718718867023900084056457237877118371091853962970834693234589561766411758352050104973366907808432358154557975084266071350471888994923233653928876730359317976930015595316515346646828716844578268685951651548618020118342935360884706260272281097906424569597745791458558474863247403383218633163931784024970416397536327076676747511333029441403379462940847164237544681716296256472074276775325584446955113508112721853590350490706488135622784989396021624678953042210327236809857291568119561205318491829029699989195336642469733409885838935938414113792392802758684430494054289706316086871437059936114031374378639740734545123555366628172806552497147981874310000760372658367790077575073086810177015755358928209149234994618306253723148219912314875122541779343929620520256598539143102898187811111617326728029704199433432464729332670470990274538896740905505609668592202139298650677655796800564446501037263465026337585068068595946792021415585949747340719006350678521391719361735857245852330301115100463325433137450685175693853709232558603125673281071544747890583118106468744654826039607730667769317818153151337277972820262246793114734846569918512758517095915009299029063733218607222758232579986017169017682100421446474753040486187486971128411316442674522872585865981134095910890284740680602920523892229759289001084140446670095444361360316381963590127289731272073018585166200074327687884748845762250492137504983562216299343298778706581476759352156282248992031662275828715255090649579470120820009419434651065908616565811655462648488394744707231388555282340306455819774767149457560341376918563736466928784533618781702458577883750059696976073749367047934974870699127433590902567956718084962182239347884221330253614400564527213912721645046506796044999380571600041303133602523123743240338053154458031747228257280557572391439932556929878824308607130853825653085592903586271145254295664985375121460701351702187917957736452273133440695088705119610952086827554059088473704481417161333024348044035229270643265582216127671556789699035976105844181232640349749500052083078584019371027278805552395365940731829784558371656946321814307517485543738029868955829316581808444200871619140046513803295410027991640608853756545991106999400938198600568318499710039058492307522202641371599312605650961396526489572537080540633396467716601650916550746154980222340947974704119693467928392210662054088552457307494364060564926039715118000094987445913296881871653941896500004595698532924530397384446169016344231222704036824802629908184255884098092907074699284630835438829511541615849064110584936868464907245836080747585403454097074721744242307192935878591996217700694699201618373255993487092345185464197074344639387460293844946625269636215677391058283034481708599385905934437217251784765992309908938081210430575078527082546266273916526447887529470238429997505703226392376925023369507916389866335177970838407242210130800247631351916529574868408769193156916147229215180049651986206278624599611405653274669103011685515213173263108867770712533976426381763013123524027894140550656171941909000252224105581661670928481146627219744573892347443729917496070351290139792280374696789117786367596591727060906450537175002876682053340312389454731408555294411269544508973285888259264035349247473320330230503574348566557125251096155865206729182643243817809920913322724606414637859637196756850949097194276115272622146037505658668148944899117975294527572028752618015570021133899576922563649491578265850610127148059348240281257874903787729977373099629901074309813053872802178120971439856214653436595610810135419490205292594852232966954598382813507224197454538389227242905653801302504451508095137803101486600694643202491408800380086675127257363777907262473967584329716983077704141719131255327066673492218800028311564583188776286915995618081326616468605441327926193390926784859786787898462180367390682214413821128611934178249034064758899840215804204297763702484725337325125669729260016919393882213756753092004074139920111785987907051996259310659310977573104524837503319702087810457396604573311016594293412130730256936386178041880872220045003390534739271292757146028881515604958387796369054027729580744042062904380022738653484207157066620023282621215176018273920809232369325305166438374831635035819421335818795725498039401157569304400598009970209724775087673462459397927161276220619507818244407414777692543487721565836665899068810582843063193111145868511289194635217232094771188617793603252988652807325409302310635809902704007941119674652569243583152890269808058379703861089976290904292329597394022866157249727431658640307535375306199561494783281557861243931242539489100449698512116507858360160585316398722555562973635987300129336946087067926646381803474870478402757110518414483499387401394362276376786742086636928656394400297785282377365914652249128063874216009529833487743831775009028141259904893590047107795541198587517337419675901721986306022752460908031911579137427730997624708965274295450105527252219434845736079167023563978066941403372420396438157459018687197772127072672071386120831700530079446062858135593510830838201844821619249100046921146905490363750905376830846586521607062812885769142337136156174130363070894320096188260543263632159124478420853420088043286201144022469898772223723933221592062960364221706241940402167926813842715470461611064719065060962530802257808187171299934081786421141012089873197431577850071630598814666594995661313819655309191466294809360098510091005676247591253399343490930985979843772444369262712258582327559968873658923486609803406673328595330976236686206008391231673574815609024726289588170935057307383577012219653367454699411536199191127936629887407906144452528209406545236347332568309285563708493603696478154377476316227379152021862081672972001029413962632211757821442933002337997043542343515810616150381590294510715884202034486160158940709266296782709184444513845109407023976991639741028955388678596819744578051705935890857918396164403798150120818122990242155048290985000306898183363124661238165697789151514137400313391178747450261231148189341987651897867332385082647276675365041953995522806324790755922337215224661998867785849311164857758608030108471849332246992605286461565674771614128600045648791652030160990367645035803641637108137947208171062208956010883802985380877501160791893188060604633098836380388572699387578287334309608311750227230708381643774285732216853848026495687573927046348568405421850229667307532720121423776909177921628533066148089864688219920415423899115554849514635058118199357534728082122106043188759232958503549048012079676538374155237706292215751356512117266162141161339451135560283535056771622365104665637823114397706967175338141461856437379138148934616170170944936608756294350166111300615060643192691569763907252094099331001511520911404965857336004674910989791350750360385199819811299188929815065615554432277626907090609418799067081474414119801307313579176174629482434948099506980740015303712942085714669049534339354845801002482032458729745713320465650468245669889065602735181352594073899853610868897019122498322929945363299896068005475428371437498785128112436051184983204383936344022577487834235253319970024651162580024274095436787218241561516968597739470445888077687635777873744392708620954100992185870534338050202186402123755701706969526504303332575313705399375939864975184747389772341032656445763085310891539067252784761046922802881988497799167473432224009711550217177196129604773562147904395230960052207174101908048066669434344327053251431560330977819694616345401862970661722033873484544315885615800230525113381926453960309319962000594804594829879379340802965966172929661882000942869391798340357215007015849818695520035473448347197746432901082359087763959729713100432889247137100559067482220250332999146990762780364147276996919804220104511121868595613099146990797926042641061254689169424861698406513896439538036228385610433702618494190454530007257224106020050306447288579649360984188171294926580150823035172651152378079789779196988343833355000349847256889267118161453129595567447807583117289243942272034929857119735317246194927531201267820468513868471967885907094102574617118152198488796443589410050846604441525997035938979862298682893583093358631344681110976361745495799614020013624868233050571904213380808212317485171999588340766002311572230564602682870607149265904647610834088152369477920744614795197267486959741159752226488098202531692246370693450849257058359165502255543173909095536802721675897389916741915269685403937199841186910398213505299045906749166793430104436805290522446516367099371376437205137316898294919180746947637530490903479834004572134474070155608824017618166942636650965200632894156308481128146693574793821397261993803588260240796863227628136044091824580766960690806849955759793555317104304524862472102819939799089453149943346674042370056050452678590983721220492171743352837199076381071869323042526096316226286098016239020069048208116638642218518653111557082040185166195444125336196953179416412297822388841701355849463131448596171421660900932045887433637516799435529866091868755381679845779006227251417127190074301442567345093905668150521393036242639614788459647732452986920969509390312772626224329552177120673754446882454494268089467076166235141372134832536185567414310143716469460847612279406001445816253829520786838408958763738897190436764615653480038098893998540382368045992556231038713736530107835355906770497674354545704458859501971835881078874852392247037294758845251671290610684951016813895475690560009574315898913888071052185881456522249983351568234394181681252625265912782758434412006784422080260797741803614211380871366560337746665674057358171238744141408528852429624374462728355352744687723040801747715623314789503800249189310488492619939204770159517621824071790905153882521492464886990491855371495621754843201994190482489820833019610345839979133575551409950606503067690174593822484320779948082808372204364627255599185717190175292665582828755255485448642334320881799718784285501682994658569892558790869236266043210122027140280074836221789053902228663787099411145945182866434901642393455533185388405791574790919959940046277857182199982247574107014332378781639047857000018429219541917773495706791833671642778733450477426714353220736725921471290006694707381374223041400676953077874115107568543497125684112345118089243844658119252906799963244883729201492198098627772049886612667744719437785652252846230112285523823744010050504873516564057731193411904221943068006865896707103530721431447324243635722578363551537079679600294799987505830755811423475422989235450021012875605619803883510535077452060541542008958934733922241689572877919071172961486428529661086214924299962084633116539400503926134194503384839700957135882658831228956790295185661654389845632961774857214315971621449025612957711181447275536108390273645331578802223930413987341428128862249562519087243740809495081445410700494666595416170612865094957403645387361489023268131475959530957081548705514744294624145199947461435513806277103411358011198711667202074881943047326924110166953613117847454603070240353913148780571999007104314139901601858398456198812127346662692566506071979905973818624551948243941452735184918161567982496491472708127660744248525371255057899812857051769984351303184229897503876801928341754769226060449849352809509853750698040839607864867349204300553632914747830269775976650842340728245223886396458936681579190062016860816917086929684889017825651398747379632671590343401174020442444214892504556498775299774699381079828141960603029202694600032348662991195153717351538827672071914996942501154425026050571311035495402294581247541676457683281175388741120605161550388693384730361776723281218235417589142629742628594470968203801033792955279031997030466056685639394925748424544866776090811722614980222179579030796970628881037648874769284154676593786702118327512682115084433611917466451813371021172477149436724763219472585187995077121098860848044157120539801243205955823601729219387923745466940953333351659768594924880983203692654281975517036226955728591669051843366303633609173845403822552166105643465038321396831608338962140570261445553519449668799103353494331095555873265185939120108219928443688656526749638846328735977009005515837737762879431774543647937672764604435123101300581071619912030008453174792377691669026440825111237718160263660569239888447247901581402037033997377614796979298907415655473546608900100894825987166646517504743920614412225366193432254718346286927855272815260784492418137237269707352780747624114259988700734557194718370129417360687970295391867718334751968012110102580965003405910380354747134226666901336931838137350609239336295983750432473649024647694764702106677960530719586773983412012947175722117103405100686557211771989064706524605725691805192702946505863216523296284823772035704095346083229361200772556052303112442572760675335298547129083780703753528542860646076038076604180145792280881145325136960115725555890255059900632608406440852275185111458467958292542077306917285979764879347060883070659583294922338843690239714301935996256421143262116621914232848229297073422159679391546660720702917862395324123130809428383022095931869029462067113931868517727323415878123279905868927628481265031805780953591723672762866371697207998675449118954167129315489922671268457499033812181315378269282203696804057530448420570833769900669646766183991871617288673481211971401976341165786768978160754893980290713585963179420645122244235588598487194257074101385326140128411240761019155868778417636752086637199168524799751844382259209675980124887918292118652207210564095146421169962575270803592565572154946470368297435713503091185858160090267326947771355377666498470571842404645990700041806626696681284077079484508346221217789720596129658614258854228283649120954088779411215611509416864706980550493737939041203864460809207838423977834543374016282393842723430556346222714854480154663398599159959583271429809300929563744786018395319771233079831442376276354036158600068040898466781517231834349789998524592232002408469812514256763034485263524006537355109001070579990695571693047020752589556048724746878633740981084353473038325947099254353721238871324591698238497166903897225862270216552704600332162073797915241152582350792917813482058754896481446396643007650950610221027253424325989369411313443146225472540590480213013009622859201084628068047838750422806710388701518374929065343719699542789894252257659286380186076544560465539945667625262429598357526033130286993750927160066883029280074617396206609031347662924298129009667498468051485263424847141533022577690502883379487103534337584542874585107583628203394947294075602070525021191277983139168186790697316017645145028368726771644679276828305234957428969932088922616649406453387509086705171092918596483513735728148972585027276040245798859524757449394433383619785240586970524827832318294246452057929423651899610814827306309059358417820290608983842531595706509033528165685327080297358595519325910717970808668378655795069364831578782663473153003688259797331869139989536883858128469540982994226467127788966135216773007775223353946761751444467924393850838342935115934310519225734053757329808559593551938547121077577336070655234372083380094549278630079755072901193394035666014509068612899662337311921553868603488794121453846869303582958302717447455187688952071041679625601866507671982856494220916956748395618182943010551240564343989806385962095162458625074097311664254454658274255633179946845059321192575345379002711841057233827022115995873093855471394871592508418157990935648211394878436462106467063860031951672052222157581998523685253580147040694462693311826402440875109657823724197142734903795539950741963803785136509842431563088126242581934925490626373342745045584753940670220842434923512358236349049746524706770233800309658721608678722161425391795701606670724732101811428725297855191705355394801514057135896619955745541361978078819744323079829511941482204168106854799650664966826828478961893592627623965944453387371616868122736222157152899846722087725840443626474444195314093177684869280152517947472759747977195361640903026245511962440943377853452009684249090061588539556558572029047238974241871383112192611218340547394234129596344811453982322790164489861283564723399984801887823432754087547024787923699198115392226258667149895345550738466614458814220305407888187562483836161358492677295888909340262067325746903328802408585402363817406591239017599037051849469528544651215621136135167029978714906384273842221463270975864858726128318799169052281691362639385906326772820784197663214902952411086322042395551673008553718020669975713629080218866999330991794367333387370482714416609884647659529288401648050429429286123108784064966329551065385110340205558591230607168503967279664026130422398350810153279649224316948194367825364704612052163540486399892459040203167046622626179119633980545898108085471706748608260553251394760425134715407334685806204422503130943600442910926792715716125968682253124561663360071574133901258805744201749056852568620513684043411460327932382488759302890814561358080902499693541148634130572570432550739110695477694658112918373343206154928056928067115063798293682870224866031370891263144916532648578103953314392591639597000877746594028977909293090111914276651206198358026040246033757484540848228643492643580002412924058118553121766808817223952174174017394414670355640411606534735323494833543697161358729452159011488933327209863195335801686124567074956178914446016701846718313677496635688539308773014794844769912415541255433061918140731102951780071468932672889027092850727245299464358560170481432745321531485144703983577215218975710556711348514652833280933529870582636571622869154124757493245724477033215184425425725578525640602664946007818645512155654593784818854409825027906438533080805186847293317265465490489181073770153035997392746775115399940726913644020285912121607168393839030151584257018545594506246127295584621316556542709667378568726954625144300712734054294725885167623471271574338446168368090534792012395649084011676761571369420337589651918726198656595762480576745713818112070461070945220539554505573909968842974237510254744852434863718237811816659642867376472932289913435755435329320095845606486217680896650306484392133848909207680973139066456397892286678957029794369795254107227781862793861411626214041495705354124438242317236842323344571494871350223256314356832560521374840084471266513023354912155583389994612053451708294677187986930747263275348685063383838899086079056960100969835123995426510015529949510832308399512704723312759003608980438780755922207836818600373849204024144915836588959306129820098894780622001101856944739444566132378424628228488089254115720736638771676439049454839609358836650916105391214356987215942222647008176225945668318399807989616492809199239758316265866923946828736434954384834388591785956636706503205880020449617164018039499915000017061083847640854203449787989920805791308403473255031901507028448382187356699399971704198543758105240919351678510600375898820924252402018710734126338370255903017497590783814281926748565232883831763115607314009946095424077149213884688629147459863359599916443557149310111286159532127871830418644917404507886868944011403591514712892702074448681707714185191663713414379891660113739196450145640172051268570151018248648229884403994516374662565862008172074120008651179886958937942235174169706543387880383130057373096066795003270084635955683124138240531485194231245537709772698911716543382703039709173986031927722216925660996878711134082623856622973604682074162952885222545307098474495150145623670005198399577136633936895383150655363930217749330856097594945888032550475392523214253229538367108836900863813232016247321109098419805467057982504969722941756754917275777392826837378543722537020961077803250374838794396293619616940286448531999722289656975543687695892327131843651758904752441645007764352118608172016232865628274886739071527700173882593650115744839340757256388036071442644443864801440543878327142351927048180016612164686172678520302867906633083166601961277774332306111180012982865346573955707269161028286161944540768183997497345310751650505435835124266268044296613293768110224500101011419719074852365152223762306090923127509619924867633938309056793127922847150026382693457051641052694434840788892807206133671033446134367999735139903779747557896296912057159583061334892047437379284730896816025563414637367127386074429109158532690711144763284996895507426462427099074197494022514312239550646253046820302584916609784315128840817435134721507368829757433180593587438605955109765274129780657507422572557370379194360059765153515747069591660865249824631640761041951565782244859719744952757587536346020427655512412291178052656500623806019126767705556892147906795718133894768140990639765019266787018302015606976444617045783258442563626263428933456226857073269923249664493665945170150668142811003931300307482485520716808912821929240182187587304724037152513026366349852272626878659270863049900038158885721493291802789250514513408593716731538468514990260980852689124804527633335564611192901020197757104712533156392110433805328794507597555554659664395925251522061297611797494559191589171210989690330543095261727040079857714473017660857338972833276999379735614224346953002322656390378425024119297631365726610242643750735026402591301095114980742976378623449379488833313610056643535395319323112100357240153300720657763892754871411182896842725427334319243285537932505882585637675409154750532011644394596176238597591250255776649705347938165878287022652369088610254301751694768498150861416015067325650224239237497303903323661513605074406685755295454297336285194689625247268502692469682094636547223989722009332271004255447202730548409578592006604080304003628844283574065939116890042400120611018953432844218840367492547802406857714775555647863612110583587108085867488994789066431779603517059801579164200584217311687843823160792761767995818446247274983473708237029511804967074877027727422457838166008414545244738135829821318469279397728989256446631308807057547005010784866950896290313431650876471765151622131208851370084092795480190185628042003075130511777513169054418002006314794504640918685461379599837492020893588784713281285893756527893020926309395628942157713862194533815053830864824758965896550448039768685104023275523465346077438180236444858615816620203431860664461248237168020167707123762488515338550076986126945664164722216347197265009554637224431612259000222651391539257400661554799656258697406345718691798895714320139918570607064148918745924405440924538934075093128671690130451766927259403647465026333366968138822048131849578311275476953553773165573400796855104866161065885386840335742542578459997714687439819879498062239961129946640207629366554637882078308573820311484512584291484016039421078182089430529801099311054775726729243024690451431800992175845797745633422861650685595416368143955607120890241142878029093226012592507179439344628713354115086996449618317863349537506110298052097329460517699721138467401138966133447967125552543886329404246361781330821271417314960144198588863317917459556815846255478690428773100697278889016097937708664862632663097554404749891018364912849338479593952028728443959611597021627945637273642767639295909300986153402019831771392393895104794503080834835417911015666819436335509539876689848793236274615346621272997217259384730495771246701562472078406086432646010822714781449075835666522174696986310757867390067695138122591527968927760290263403786888910753095512228407068706881610570869738854232316016028235692332053113840905546003130683863720976625340932064727884389005245842178419424210536848292575719698452430570582556285405240930386740699128423474811094444697457471172858910405562724325929263313325589935526382549571692414212064375774890273356366222092516893232593621218351465158518070062498661363352924042154298977944619514963994896911530317493298716144742736023463511147982049840323259614376206823819839753558158950639789127328542773976601826391238048210346883907425859389930713034007191469697169801379451641798783584498246662474522111879053789325821570671930655930216458104378280085092993463471983717303416075502910838856576351295014241772943134062591196969579637806506147632418657955250750429115493593743108510670122072222545254801692100152349631499642435952103104712649328089523446505133155677351895389673084844655879002477593664653075566094546689572777103567376605772432822733413392924268023679123325535845315793351540643666947612354815019804507828852424629463665121819220078975470429192850059012093084197233069046914989232626333371023116689611635119879991972469952010975409346465133599702143187665903431893515128288723128454199929880977782154348770318550955204010847458774231883880236522997522207203856544943170509688823222536509996965532707134107882491823577346085346753147932020344365042849851124204906847114505120802107666606625125604141612453353797749181227482358660569780686826658340730314902654550578465018831098232061337607091000096099826382918485634666830711292397069464785222852516787436916915548907525764369906385370524978042818682080542675104015919576635289295639292125985270479222183353335771555811265699501562221908757253230335268048538747300601278856967703665321896308096217681014425807325181296004041640173279689477129969338738456671836387599286856483717468915920092721518165922440075900138171422523503264158873781920090481737427193596908370178591502893854200795658043058416655011426713497470628974067643761146837028593530409771757349952837952576731289631925771038631348216099167384991418354525712378976964736251410266510359259114835146769190700847802383269160052250130989202782089426234532024514120676788349123951200477864618076284606130075387870247857666570772775216494660348489578212049007128743284029141748864162277705921226134203717078306977911722893106091901438254503919664499514593457947436473556545308859843042242107860352428722248804668804333527859405177642361581269651474823707216697956868760255967246043231000119479438572395775988705442673227995834510165257228693220468662719695174567686557882430676948411871261795696878854466415912462903176419205605864359599464624730304240999192005996625963979878435284331891244944424274455001844249823223177108939597547710315554479906953443036938420470893339864694285288768584595350774788388299887890344014920910380413918041639739605592480570228249787498197506820916373757364757837599562485451447721849388782323370272272662965711848658077530841523539660831562615970511961371434972185770345955745037479483654361584911431765686510073767649302861755608699469430514349411353884331729726624606645570866874699362783285557166592793364901291540365969979024411767563843799428763596185449257271253550272332634363911399662165598320318426530386290698705763759099864812902674465643013648028808000972592648086549887655247344941683430634007949070140447664769856107956070870619368113881402831166956525662481014899806103220669779958560871753764841461287877981803728689261172195060932365722309498515098384670011012175425910639476160726116050534291022945654933880494395284827433905751904818260885637690319432096607799928731359869625566431464301265757529171796937676000894191542304640578090055130417031540242754478305172627701607683658741160835671392850203379347969915260541728391509866901247378454891753786120686081280158257338731726072769786038871670616500302643117838653621238609923098090552030134855590382324649340052843435436282321064789114535754690792583069234279389529830926620629297487574184668519467681739998946933072984490448093612177403596738258855684990261948557369648138175974706937336583750161904396624329166879536404060936214709068709104555795419475120810465021800677338643179712832301869003735995615242763980633900740860642847779935988307309038837898546581042629023748096929100139017158492527730283652900697483593112277156847975072262282334867549377024211612585959247428149758000412095680820302593958508826174010282101973556837407945205614114532960018666018835394068680540383002087424270507408699566996577322853345089694484677411148151527996466547824899551080253813062613082802522272120644911710484789760502165804003166683047906335088501365641816457637472713308463293220025968756040877083364277847127649710341749585269003130685327479092399440134236797403518393489794600608916755327490555538830261946567103910000103157372985683355812538845202048425361087647791700880835395347466590379904225577183474848561944686539053454248548674079840125002712775166350063438824747848785913434800677745692832805615571187044070315074394442363360491559532356577913858823296683397711433286167463351851105951719266795419823119722785895228986641115286980995952748721120831710290508386663385697255760585521768645063653901204506935950360412720502442108357934946392889140886100516736708659995992839015394835983335339801142450251299136186803178263660328817424535558320913852945846733691233280145932472008107629538874648780438141512885922662214620756640390357609558443705662208629647248232661861276292445488939777596053141653091827499748558773385191830390360279605417116938464226019743990286214233069288002406905473346208288569754572286880018472845835456607117225234008982318290743318057267046301298678235079375222214794420505147501758115765562534267484130435381885628865446842539900415355016733657100569158202619235856801825685880173375036295570142009370840615532953404167914978269271527285872912458829765637162739965219953017479151286514069490278737028321040399971521659211364513829800928901003454161832827874427787794555240149814529039804013440487746669171332415516318082002502196316886982339210894877348906886565858832888887318261753118134861730799670803652969980334665561457373218239802286770258655597894839201764594494702674257155558106564472867682882532405693438560107128843576717634478739498666980758032810824546814243589118316484656747990762761022110519611726620764752724728888841834988743661728546878497806559208139285477414117595165030094433178968695287055324287665440769538953775983965227115233713047305524644451601538529619281938200724981470124771746487227462361489367032228061058884954938888750271458821965972013412911434859125520582298775210183558069009125441226320997107466590469344101304716831212740185917698589215290596903997305017490182480592652885837330907383646851919032785672135937341560401182297381445350967871248189496691135108008089316537253763727797313739690182166054177950773903104246445069430677012343690398579079894794935015027398887257327581299827555169221901113081447432921314799563530115334926603713182689311484751458398057028527238075515257897370074479601429447711731429572652204801842199874396906915572986034617883480741084056365806999616488662976280724498088935784598072452174997926919622958088973176097438326111696073714915329113265851219098363936394280953611319797069698810152083521927538395920872385547951215702599467719207097260755574213731051437654132070805218923032237902338150696618516741706454501520082200077567539177992144344701560795849163359766817159436501008818507262464717619785047773152621050714894154217698860090699257856937240369276712156077018743567639259512187453672705338231710534678748722654279405716873359868961555077988889226572809499319273975095288066783472347669969844842400037440217897039139346920521978157884928622916404759925090653354813368137358124132347979570034248894401469511069591457374110717629361404287941584032160577502631004638452958729752335042048269209211508567994826482527314537741303161604702980031612896123291777353002654453570732184854399463675500001739274328532082123966863970754881041610233145824737065497469797655811930581938417383307728164481344448614304727150882496337516284150852161378605102581784415446593997571119864507063335811426232814528161477388122727210689774761078981733324543844291298823743491165892567006637497548924981090822548900258531945625048439251270814124482357668132989557222270779130140038640105158059263181305069963923550958899313870128269837498193286632470914442266797234931437080370564501126763225068690588553848828751010725778961216158267879707730822958380997147657088726569300927808094274640916865223382239281847267317213968597447295742193627689761343478797117875222756603414922533120446309322462064830302852990786217058218388712013316102195406838962199750740479913805464631719772102485980083422279830181777169061095116283331194722296337688924809098854451427148887479024802623801185524418203880815931242126107865155736794914862765831273049805536562264590506024270796175705343749465767759612871856341760501204117536532913571722714374716958308386746120658490970392588253194972873589053487786116831789847988903853298557885954987285218044105380634058363860949131633696756107398922784001564384156794601443950076284060221158068090212686007874026417186917399635984944435030081996916269814290579044411041600429231850176683217426139660001057533231721752231374195323090750325753728552100054683421361133303374162219902055533067189793469959397985447903825312884937651029808017769530693280369300504228755683556837204623736227016839649266806614209406954731726231998234800995953635249046989259744514358723207558567731687879183327801762184017620261304284482610195503112913773242492952414222193947845481917560317425289154420563267264349352891043564073789268818890645368995144996162017002877707703201474629394793299322082704354241510030425092330980038666544913969086320338441421471685081054671854825327287946773407329376314093451610578379639657153975027625052299983979770527632090583857248199399486258316657217285883620415430593601030426401024607376045401430193518959159815265565689201896177951915188822703004380878857070897020507441051538904645450917438001736965690883788039579041880076317894633505184218797712055778221909038048623237505704095420670335181704490705799264412313783850206196014960037761212101783177376353507286587480610208400394166894082525528278721661321836592913477020610990657406651361625439925744308770170653027196473122619277029783766408125695444456704626586600831663384214511977784985606508490203048580659889939948303987711794863437102325603473772709754565876408613210608198991219348269622287653767081206131338286030751132072700215269749868463648625821931032474392188363765426897123108270331169416098444764084763693774436074386501753971823840802902045423210594589962236010427508354675171882123357469052713147336431396593158789044107763162829658646238831124661652065400996104101432764627311327646778385662079932042417800325710830201468862978046481544755638165419702246124519965042746585941472384243025240943147980405972303852924614374162360055088637718158903054971190568051959770980475567920699342956308684578597441971998022604101178580201285401806670411861895757758207872783080471416714686547271201671487647955993067135402339007061056128595031248705308375108804272981476144580374363029803625088188234453141594109446424105984624749902435105119322302096773037907932570914225933273161189807919626093230940145839278379810955066540829906138430400843145887090672560926888875457127230702665217132247172425122993971574596641100056717327843161466402599201188108018624321729369303238577220119264872039199555604363942933617358093373197952850598287187957945809659383270498668792852322642575201435926506261970836898412508450375954020298944950897739109626190084001544471622073990090677768708370603999898227642239056367702490062863686453686589595347797116486904486090234349415706841396006773231667811167900641684789313773214222383316932393937411046503334723332053452881840802054452983030212762836642889607188368270842086610575762962924224394118457056456332255774566860951685797480984920617315534067327548277721055842688384582174923995297840388402532489090918236714621651413742553768294393548264473881633973019874493352360452312878070230338769656448026612629108923169942615859538718645234794818492287208790108030055158272650012353278112824396489418280765446419875026062947512384820750884707552896293477444132584382036696307575360415895227394614309102704675572589551332467898354289167110886362868957229018541144484042886699074804168388911357624077294324556312765153012887626068762320505992484561798148893944517424618273212448824479228451034786823350388733693841261991262828529198294434032232672264778306142759512247511981851148364816089396117969284539632912813342756515117064233331780031671754074014169347611420616946359228597649466402427385225262032762618204832275120909622569892193152326820444982852315494183400828221871160180589373374189995250152803429962846497870156023586851313212926854522302995002642789334465445813639809948628338325622900029859878258335930930051685074611105749728548661681131755827651974493586448537721520828282660996233869123351849153923325979303935244868882854187335347515021124835816530852008785305200779515552961695155607018903807627633757241558834996191573301163477362952430455814869772140241618895831106896931053475191104498455156259094409167298318748408969238084391917314365860935308785712877468468623187744582510014512157794013280138708792887045358114098656214447305910571566515311663960345741419642965730404490358062602482305926432050245408453967695749166468665089507873622137131426133037692175575147455408725626495595664232692725426382308575242752866610077837979156875393886940480016127749546860470874983623275298513496200162540674067930698110333762211678714147206697370814477405194970073674664974309023210330791721861030745785233669012096932350817275886365250036879105803076412441155595662902717272234942652155545988879232808656033634013551556924036161803989014478232213644684766105534880281654827339462079951086998710005799927905667825608868235536689056669919287906978131532022628891453783487338610253432937206761349463717506421117518523775193062485264159918370720267188681516766177620039170767550833616387149788606788891346209941207044684090814078150711857046648184655698763055944477123548733479346135954255442152286197140492503144051664409248138804734488977740334752225647803821534301844959875186348616197299781834482068801175840366130065290849256322024678250834555128051909277321755597309647129292562581908248172549179196150969819644854211863968080273058907682426827095873325211209726783475423816185910348450443535991049683673393930225596077653153955818439664211171773852187043139567975425032999008620705721882414762060538085062319516057865747249612438246734057907860432475439610862712381091252095066371641201433343586692550301729864007399220433465422934847060416384542050925756694952853814093665807439521999731966545439626480162280985137202361979651263512812252151285553178234538756717449020372156941726395262726583487053879908758568713166969113365773934051070708875785230217283600522707486761718338288483255047799881518547308699964402341759333310675335552489741486559803221348117992547608578358909698543530554672214386934309706379187184175312798081476782776780566941047691664268440565518298951055077402170761896055461135658890923489142641557504989452824283085703863034375985839250918622757430363540708255460943778799148855147492265703439975004276680740508900151037893598608554373019547269742627050926153320194124184586836012810940189828374704634827681534250405505287875773624444693672066717468622336727488658527852019656607414543674819744320313110129085903833760646623319305096895884663244413719644491026354894687715560922903174476797436385099413679126995865130482150679178461899164671368607506711345883078133182041069216493811058117634292764405715191608964559669385996085905185866626606044479843199737987617463712415564906228077872955276863228477930986887465885696233852943892404677503269641051334137734905057980384084659969893248443344784416117088997443518835945398445567675720461913733964712506165831185208811402005043510785792478421607474956119702979782701104717720424911532498041749290680442006248588388618463954386936069768088328261289434218441033734112015680336290537212093527396833845895556646055987697716454265732104755729965762454798397126039818120319640378945739562690502378360944537741640942978859415827160792514599409860897908327347164184252216560050761172469326784460021972762108322365479465620698992224646569102516034565520581162845441676706956484967596442252087437383343620801156173736693663081131097907167386564901025188319132152771470574186705788563294852525306351091301014828271229501795479092278944340698637338734970444325523195407079254592322794100905819225498257632804249969490166301123282240687732788487057408375536750181858240214924071090303035364331928291732296444556770734965147878762829648294922400608186728018086883990030490088387587193811123565844226022718622832163210438242451819588116529231973724573323629520423320613432594688515322286442939945239970329008879513301974398926338418806559537216344063448784864048627325023679657287896418752040132498966724172568019716012859508026536084389482998111435926082418719924186615024670135878011727597805553445735607261667939968572354857862954630324348656920746296123521374059332123170475797968598061603800163063788836240720898997478276567375016792766162884070724337121571766597338446057459692579486191761432163266914760233887948005522908062250439941879689162856538555803765662223274465102636058345456367326508243883512556443894474128669755415452917723409303888948777736412371229706489869749596982849285208439234299910810455380470456981530326962065321061325740723365713964737187134930131719849160200511061535557923660001934016729082187965484954217859125947566912955581118262849264796503413521008893948292692328546244495513981008336382656830974293460923938457469577658833085409122515234821348053808319806969889645232441323213021855251992789191902257019889038486555077512308766374501902492807054262638248003456830309083974377334742101982406649483779311828702309182197005663328057507209942241086276021131758759644637550433218438775341720187366776559270296049028315323280430665113263294840516332997055146409993672178212171957754031554186055674725749262889515892983551626435692802686917297941650860589668824332051604081170044366730967828109781134529569005420282096791793869247639783479550421302520507839486463819362185289661527470713831510908625221332239943280721226755759242314552772246130110027218643137241997189410976612381245947875228123679877048075858899973496722931594981092727074043001336395238992655739347081719469690912668356378079942868623987905182617128436334287044737258449097726320868354428089277506320987669142541731941556882151418012371907489085122017722520854093735213220271874605690593896253004640182367624019102213254186207956407700096106643049364550575406267697967085382792673440767274830531808395793893156326935247065823555906944185106185590727652530033227348917943427951166341776137391699687715764077275794806743464990573946208726900559336215553261692862473679795509418367944944215561806700963422851882967649293666886922682991052039363218024182663303299268883408548171673562528237678709527451377661041967917427666304373513607713965822554841695155142791241423729355969510589626774914115235254917222610857266707051567699961080155693806872032944959747614020633397634303684023958070268981893291590983538050999335735122420382396574996350139591387016617244735570597572087271557453900743790998085753756580068438704810389837537106582912659240837252751867951541297819449073679305614022335632482903795359873649446363764633960187616660289383038455959855686942014867706807380803124189284249080392312799410425327745181757391892421079859602154226425965347696259255476930091982717851450495407636601682988169218709572647999197888992655484950780744223244412858021369104177915480969463392479475739858148637141304278625692013789503806647718025885982612739698738739021526559456326612428316216512143484183548378574144779743926334683342298484619073593221132674086160718522199827165375522346996191630997158467849047382121534798304349827754477895322221417313940161735827707468672769770389591675663137985171629550468406620867573898839767010322787064904541706252148029141402763022721253926672325487900137466548250042032188718661153731332533640183376355447284759488647149132349706088392270275580615168438144959017188648283016980377787188526307696843771366372715016922546567211525364098850026953518131599125550534315867026473006156725026375541550312956984963803692145515387426270813740890619643206372288959508389858650797557343290054282637500126109113388127543567076820158890647109893390823112838651684378838261359760136150886161067304452486646679044883944994387703708177919935391040527161858026353041868534318715063783863109504112717882461157737282605443927696605130742794518987250733416074222650576437777015630724620002675932966239544774307740664401025654462213273959156331945151580285249724800277120858149523457829344444742901407437512262397240186756443716352701317786701345080306717133011197393076871150834011586192443287467432670383123946167421641765338682803662831887680768729735542309675571835184489012140506377202586597896171102323461404421301064884248506887499154954101705509009519004092778496238765302354478351877168392526195431123773977456316961240899404530596537448877764027608039340408884547662157288967249861864379619712591702931226874718556123889102895117658620051232319839052611705818088603479189317577197530793439466697127776867099320912912967500340803594479880303437513389518831549519265400412940992142536207321479346677973382083489251415009415240298272708994558582930559224127355331230141859232140438069141462526826351372674912269288368033371280527626222404908347511249829920887191921214820117303777577049411216427827099362866078091581319214757425352161820028742229987791670177010443671974474998610189934767981041951669395693640006363372359213329033303976620820895469842006940690268032480936441607741209251191124725747643178822785714407466392121152056327785409815221879823412951055463321904552313920524142350099480216962575357780586241041925019705461503343316291959650552451074137446475645989564590578599059368233432627149920925363689137840932780108133113550487337269215415540849539495379182916831980292501647264242895431975421840092114538470421750330716192178978251271671964563702972181721085557408492003865517299796633617790018548855022359873847179283654804173615297267599539476419333660316822215894239133570575733227153403993099548363842166008017616327840362368570477332771800634293779709510756533874911403076054963249049844816088830988363778053745211301477531945257968205050624018623078377615885767423696103403455564982497561133802076454937824276000309577014835751780192588425087367655564359934510954952001215492406437419412760708203387756661488770000457907351804886412719558499271672862540667585955015655669720342084547908647568659631089268930315643389646574702806396410449211434579234736685690009101538957001586521223895245646149012828455221742254282437502099172521663195175101289328711545590082499813343973799087307849890018257193339904488356827968100899071966112527904022100726263023417687632848664065286968385626906723459547012803359177648871649762880534556036746589724364991054298446516144677060182645983250285925784128781299370558917128470909670102847393289732617142010700959036914420886164680173410557978866806413697866749749340500475605708646580198974057959670951366514465422011027419613123046384085509387473770159094186243172255969564922363344014175474891735473487029393000958794510577529172084862969959523009763894337157767701791180361297238717603441600152596851990787545022876991273192662093621489618438485782566244211917443215422870046204273215541346781153698664589125453074029273393179617336328287101165075669152159169096513906581644518258143965959988841288985788703829241200468884488962444963613169975671783583032342651203126752065995200854744678729933071139243097741602955056491507458242501325857236334471374539879825799827106075350670024417397847310682684739820670951670029519121230380278285292242697549575208401866448992798483594768620749981336457874580449819594478892054456745222067237104854758151494423175574718626199674965375402560213407522696529674096531957230288453899433175638173647923323195784217728380655547113119843155109061235897471021798006916542190112937733993075739334970871151621213550326523678271934606262015063402014765631182126442682778101057579085561264625169798604588983021809068518985605761474275951331317663963877388061527113912688942139173038228198225102997960490398140454429089627859272721924308189947689694516659893608206572533980766296065549644757053748676558928885083747060482612368291931152220559049584406423149564480381376048422104473089052618549247346606822570372036983584813836670167800565858805399654927145584655829308248878831304056760978282227917432237833156760349743239964920026628586278459142258261980990461038593616979076242138068174034275440003425065479036965507395283950084035312975782240420393720627459131247115128001666059550579764455891191269219288562726809565858213477593505107337021517261414060386663992516534723442915715268962010587862642575415378584209996731876798021429467135601061737589814730392192767116930509805474528379231452238773418010499793852699184845011242060692583700062700066251555919154853342274228061220172633524787253334767757255660828380454903605813610022887004902552412640217066754195849458147204920535622753472271185655428002833004825623126799275258503145214675896635459051770167917117805328653659752079672607708764471190824147450092095461141685235117448957641398788587612134621880030576164913036533786407339527921960210367099744490281292262811555168268755685740306297834707208211665995358389342932084300061322842296580960095053384600519055631411380672239412841025775850814993855534984613560752638081019684662981685595422830457994970114704301830684103614398283395065700574154681297811360995417201758370043346214757750652626208887248918087314056401277374702411015190406551535730560176358842393105888935033890916815917981199921826168116912927808853120458183460799666813971182438311228593775718738401949504514367927537345074275968650095606062217397809997970992593288739034257502928323236244852718745084848131167853629935140740336226912491459326629933203221982968813231770441953202924826593789050265810834647392181622372740390687932854967335415838254138018046625361963630574264679746236975061716671856644232285114777535316768523676627533296322484488378188252308202412993958764080197886721352509660125988340687277429363121100271412794695384116563891876714954059155674230649065802552124837704591114194142265543467551371212713052671847785551252690843326378986035344651144493372812054622014057374197563230903904111016301377045069064077825993138163164936763704274812627240510439828254984390222946995909388101003341020575003942697074218714891057208108433270332018494752596679964853200539277614421802193855925292096421877317319624638679795679230620141068395694813138053342911158007510122340369004745724959512815481547729440184996430305869404065347672849009464584859672011347185996568076506034919104435377574656756130234735292159595344805429593140997328308912057751826008464325726380269088029180747579638395105236353033176313845724211391296413055250689045256107272680489799192014404927919409648398540584774691375333783982861390675317817608471306736722502408864807447498487396180466424077842609713211028306201722977124424065128713201395830889119900534445363994473596991771777785996289456570305697670567425389752509968560980531484936317078172012440262159360324232995752134286967617560945587907591570498245310265232532811798011809331487047430477265011428441000202546533624892524249346238438801124302935879553528659004987826285426972730848566456977221365312314253537503023845467813667496459392062269751230967734098012334032988365919990426643143852505634602667586157350881644652348812813528909140844307102620051052351761350198143996227699930380126713118912248381165921205590000336854559688901047638936720758234610735351736169586573213197046991630980161187440690980166448806865452493134407108525654511570521786424016496793783434291776603191980415858637460784358856958758174239723226330499089947061179445637279766025211867996213004913314861938390317419258990464164133669904447870290569253804371473281275090185854235249964200935185506005833579991230766535919383272593205478111317438071873565678963346238721789754385535945833990186364624654080438280589485062129493569612236668832755403328448806898046355072688181158668009213378608629729769294226778116039866856307689522032708795407730073727780824316764216733752757324341755273857766544843523700072525191748604185027480045022159499660617970753621961403515121176870648512265004951577880791923115192889242478937170273252546260351129737717007676635932324785256195734620505979471602959833534407270719952284920474656272082300253969068818656596346335348457725911994804321788754230840310899283044585829442143180638264242948771582914387385681597393304603608162706439603044299095211410476754377620701328557327314296404840145356852707954622975059721914940757744585145244097632527496537732881748478969570844122140687853241091832451910227060334911138816596605674030085369680401249395725710173167772414802815638672674932958493485510051283511901604041680286197248167897647309431945272819715021087678754787201784734449545373632963377584917828808280655822028012402291395833436913429376438421824013741973582702079229559874851001268768486751773794978890113094229892189393423734306039431080801373373352417519068955096856270344690936514205054746256886031705449013193242340327143018797052671971269709091005137722801861908498055262706147656779198024691762333443952105552686224883757114270325778633956164013071661140855603205198565888141775797134208021423353134979587923045692680819208084293934057231551371609835076138188008309361185741796784967438508922164508399041499687183739127955572946807039914509323832077583805470330637535048102178495715933287134055016359361039549738825244335905602820181423573481338023392338695480825230049746470775434004863251899413956208633166489462548025690949835517136692203858043902386520630648225502555033120415911557474672824602467412242393873090905769273417365870140693630218621534871347192607204164273231093563763266012729282732850814702755484461815889692654260600769435000127565965321405663576089144368673622795016552518955828574721088670468694360400769146872961470256743841728766986317813819854897372034939887846205706911908607787270379857686020551567994787892018004165255438573122733467773586346785162654720066033834093897561437222466260799861333091464640157234894350824739638611398677238623067413728691690210122708826502976932993372271429190957597552908334016143038001151137956209587421516081135466189361243713699270826847454195036472365866988157279813423684646121401128474465351902236132397340883500255789772663010879209548998253039263527246835361820270759725077714844244830807765211295892420495958485196733258797001183731608865354984563670981436709393424470313235444863780151209534246462515091401356745406667382456161567215585056102975931445481448710855714827943870328474555761949740049683407992436095449182760372298798608168528812977946376212278118901070464793661521483205927357803924364433346680639238574872645819617942605214954315730444814988900045519086237192125146832022845640597233143946876430191941655263320102867429863068224233508511653692775450994527045797001538504194670316532988215525968858394543379228631961071668219917786899387954593419066270345964494604523182573142791564627671076276671759075139383166528267603041082467608344787651284621709344218591085305714244980987308456527731603988046841045557304515654878187219764106872895606411664045725616261440726051731751691375036394454102047517268294729968970612936906171897398645725534478958829181673563871142267147918631807096726825691354876476729350989832521380399673399499150007375708962374337750102815818979836787272264488210853383069087677797368266686747864451194090004347511336421282391916066238147436883215232811565262169704611399448161928436075342632973669288594107434722207701058117834579800599147827426117114284890588615466177781202362353383614897350189344672864094547220909202682218157195443404130411509045090611692507948025115251648399712504998376477184513941475076873696458511923910534648027111863778620250970542668820661812456729414225652908000995012684355981709204311288685484527049170452604255095673343530261083652527472680253239685829339149683647017866422074429995283656161083686759688678234746975590444827894104834650137301448137225454631888371008636919310515316325281579316720453724723378831559867937903990565018939572838711162735428006985621859745669543122773323242181740553631653549288467251733681592204830608805326477301673915513543683852011923854698123563075500187616726437934417916417825677297169051801635058633116849277195955595693069343299111505481168170369477563111994279518075813380626332346194649153353019934082403967715208733267609855488692313180713192080021675026351126788652947962862367257847580288084601990297556517503748540579424392817161369473527741937674526846909192567373106805229700308364702550345959684857553203306623054298870429961777060563996053686800944750598873400495661632537619006061685189888763115758997282723274007331425746421185034713242166338134160244301515891436632792393433268339979264248281301557788997576623751787537285380785706510946066838691352697637657481172834358527875756408457332857272659491594818442209406262573619962500924493312992827940010424627970880001849887631193149617394493354699913670928976816610890376417254631944956460536589823941588017212346261513231139486832406335727768050219769080286392275425895022265224702855004513501733130795941804488368337341470297349680730914181201957991318384737441487235553062584615580710315736054131758405941803110985187976310184999740459204613662538140770764463701724059978518314412929422594956874679422693091191330019271501861463107356320688594910484527165384042432657258819400462038656489577497350060912667620789454651651055186549117242744133890141913047676494588142371573032997995751821487288608106766589504783764611219979632612447748072636543889187173501360774433732372492792633704660430961880188873451313521940131180434239961050313193036185024929333854167105597118752036228398525517350808869633396077672275588851168255359559282814660082718406314852254930615491759837541315245089905564129466875787412668159789698616040245472435507771866526204406514543024826780967023141034692286349978357388894807331615972749272262665727697186190419940744651919307753742629984543266398595226331553223527890805543221528425278290123613041746139015634080359616099257841261886643816709240181051646993802550654302105150519312258195683140884670457478904447469186305204096027630299239821173568265513802032164661839997956849465506306584563932128146260534630521208819234872234293135355018953794078828073991498853458617907112481811063072118657562643585121849327994472141443915072436645214901014071793289253035389821841321582448702259149547018387740329931811605932960897031891219988020095744378518508388530593795918639851912781759591048189856850849597536726317231587010279744390127397060646225889138889722208620511950687874332929302536987600682544532263495021673757606813545340953557166474872483783074348119472787340348273377431185078989541318029316523246714888772418914999101878639176171202908723746928129230256874767284817308127725377303534061602811834040480274302489474834554564435666330092918265371837276438355576976033291437856054336813912189090369369064665010573371612004600097840783721976375681693095127698740319399091916002386023015802206811201272010862122562033366442870835249584683516420949466857254163727544232145749844515104570690207733646449434109852980752848555922487294799433450353461366186298084796871380920211267268780808987163946938487337949314679449670377380688013352772896140939870074973571808081809464006389996107883330420619617905944062641988148555834499635275196618560175907542802994909253279552763919272389137783815859655750039877596525999701830689151521407248006731793224575607319950792107500444719453591915339355107666421393176000966044003325800693074360044919456663412086122798822256046317130215108492604440443828144433065143468681839919239505399781092009474653440293751136524176822042364212935613268685501558878797844667778958972151571461046581062292918542316667834079212104229383659102480631731605293086228371319282028879939532574909636368445239602219218399463884802421284936307850790325720419279091787373060177759343362930514035215670350331186586628342684425018660707871717896033550559286714301772534539029259854944689201467205585607800590073432239242339960431412379545009459956428231178090734537687040483475808738380347482674581590315084037345275721724436134436419630883554667989392464931445468883480920178039639312617939150690865218276370056569488000206591859742981712389283168352301713200500835170846423055217799282019623094129482767227162586404667574327334931376053256956002891248045585140283318863126608959223642516204194088821675495827525972201936118096177268678558321087237441341964775214710424702724068792300584409493806476344118598679167080945033571877732626012368941302645946963693131965127543685616245434913632920297223440781375018509655820704991004858732669741690668205951512763798425660342659139909885968103670593970113725075565014016546715579918946566973284413836306579223187330311191287894633213541011541497108683609273577208987200736238950715179930941186338160305261368575254906890505593806599533245107463478611372674659566342594283440942812650354083828900216401252729660375414104670850264873079080687826144371822336521632181310625299827255406844039628663123579740872547917765665678945029391386579208154755634690879842613747952486627241149911632244891422413036819584649043832372228946302131548300593881038586288671432604041027650527419689261154901578492730354911561975278566105722009912679803874030063372095937927074601249620081786150542350880572861116107929278754563665403877446082219335420221528435951626008822683042694696287227597642877047030483402164694155113198478624611203937485396366345719601045557824437911921206007323929838444029853161615500156853977886445270556013529029631331795497064500968957503706898632424293023852356552003871229926531125324865461822453232937535312945421928440385110486250158551393965149375020302161461814045389840635800093992211535194146741422683788589977241154048437340477852539994486386183897792191222118318530496883040041039195383804089888256149501346705731589206234171438450025976433300323456442487528369686401278302614954768159853522270226047159431196379440374570335733271289805859127954518603821892227617718641015549832817388210599317713633586393862491273092177732990520865558888316040744525774073019461974925674109990671993782169735044416259546145450492851523247021748300647246273817713347485840191049785819394530397487050118748124453985604840545886823070481164834024421470808277401455236325014561174964693321375472174303381677983335389671439076939256520680274033407976809562388501576743862450127716924602267957254130055922214167690302580281804584762291704942769521791667410514129623480091343139121281372117674619497073671363388026398541121162594005026784702904870142524758484947056285605212853767850943070797379331293059595326158598849733180418613890411120103710511655059589673817143775550452980839072777760021842760671996971532561954269056337423007753491220570992848343007120458123814026092606835140099022246447994452581331894729844605745973344997707439397459472552643016042669311932388497978675594848889732740744350598316828251103123895447242447342483291705209574157342956989505303221328420704945866439285502277597669005206617278459774613541682212491840550481979709949740301794694884887862204151572858434019498760581824904351059521712988683171724331172980876996523684360002689132689690326638529803876699065340038153830496021088962357095255712806162970270461306895422690874937193654238857603752805998689067055161954882035127903459257545275592094773106977437840918300571715818999329097993776849302032482432818603721955167393854721868480136971437420941374686378576008038400889476516896930469696874327661273796161809666517508530393731397536102299840770299170572448679312362498368301771664295402709792296410342603561067249402642793115592757932528891361848384678379175370294209679962678544479722751881377001338249877115048760325598255097109224998000158012775151438494914237708288371904653767843626628434785971469207207347031234226826803565738544903051867772629609857732126994858240951671799023144427540577695567282050576077940813333059649566094947895161309043006009924551825552089960315692293485069514661838583412065844406157009198113137289573223763401872485699773216036372134181706082224951316215564287199203626577686456597762135429843996250028361967778554334810562310326662628046300627998765315849300298234021665249070314090654460842817181608542693812030306762840964034398598384934705706370755478622581599609439072571584652908999781707826387158324743693927644520097241844348965570545100401248883299988955823249533028452589881649894559041551248569502599808006956838412133118906967188150171609266621572222819817113967586340581212600552044827405048572832049651595954825215372115072327708574129196970605923010193727289636036293900634757620059951676749043985831366535922180095720584477268011203400461690371363868833449818145233009401138160316038294499105375543039112212685556063620426535391070485957713090957471402178633926257695536285940713365343502739969996632493754900845606139603142314405741911578169851224189645385081401643381995871056962776079005341432233398749576724378757840838730504307421165132865054181797039284662184436899073726076444158478275925035345040231174180554847536554912191783798558004116836113964417262600566979141572569091470959912647396160063481125628918397580900533723584382320104681558188401299165654059553708740791080760774733431611442892487282590790589533123141784330925952644172077051254728152843100478747630722212135994090098236799006794136168725238345099419490857839954867516282431361347950166975824078806005788638012684541640218500879940109289592831535062216140770430785440988517599296866673158671120897546267331627166316088923560226075307471998494340415659368584876911312432819426860154705927042587556670086561997702952895308360870454073095616405603093037415083669099550032889665016904278351410815768609857869170958505552521854484335527745053891174710000829208174733548059404997847042249530975553244795490181127089339381031535091290153601377226608333286320712213192602760643239214676911310142487094194120582782737038425749555931036101946601163694386420287712383302555928982578219629513344678841844511564953991646988888937636842702485513746018898576852059672061136699333095293316775825235212145006357985598128365102801374203604547352575995773694739441337130354099914614648236598000171517936282241944136132343942266870927709528813738073237733272633713698268987898906454272562041763123669915444683284571543073969382841297476877489440076007165540983839484523853146658357237231367172878162274496936586903260639848412926849530400585184221441093915120563542233633019851463230804950465969057668492512204758391514681240267737253474078215399738725830291804555205220994720081036601960009308186304373291960236531764966030169344844669241201728947687278216306774684765717282636128923702597390097595256239261322213259522405865895939063162057569040907343277253539884030133520042676270101407259001453064960059082501422690727421930069111936540322259379214512248383565318577772365253095686067209207337165024807215728789450681664167609731326965177014150022851875212544245976862510636818857213157574387095506022277456554155005846932007991061606251895298372288138306946745338763789528659959634649603158930681281640061685979176192908246147226639093794718768444486238821616511833027988053110968919073568235537471784636129443926658926305221204228659181691001182733144826425429562127667323487417975601534073344801945555275095802481354479603101898039235039781497522162056351799651340064292833348421614383104756949735633478701634688751080682313145838051394827064753661643899032280614774805357659911711083020692598322231597282782856436080010433792465547175576009828144825477104003188710176468797783230765478354967665967595270266096346792092170018188126031733396520101740120380441321029708793985042062379797653663416806380749209414585528707348053865382774219520776819743432255039311304690298588884756685652543372564011188302621959191243354231020050669465497268136634167933211789110494984425336560532080727555739262499823628862550463439465081959636008802476206522424933159262480519144769107327262919311856610754608855115395719094667215053319861826785631464178877426463373868361821476493280594779911696386880669499277373620991243393635203588890343956855752768161057688758789829587926090141756763325204463610376041488976203754145164810971612299201214557324651196343213362257346677023757725450179822168383684333729556883175941936766943041910859175218583261324404109258208663531168669017987326304450084062403955157105797292808430011087170646384956768772849805854898190826127437826819919177630485363803496087104855595795995271346898527608764994345245703906361527925605066685425420483698413682134239460920929702359913824397441798036724077698092599106285337031184313646993386546393039449556920608907986646849983422760734878448165941519685044465300790673571620977788787062497626682611154341143465844136011674991709348483022937717024145919409778463263613124509454336708633339535982604011951787185798515763361125082843779691245898983292821420091843602013128693398628549591208277320103231553326623755371486411404207257320057499201093447535971416358335350963900198717558582826422853962023581112023805650323721694010096871763746066104439042997398852603421552982644350474554096408945158479807565853170412198726268995331725801720455904566737357662045654470435391198683630813223639342719793664499525719989816768265678905489312913409375722382965656799419346568552227792900873838741241099083795271187866001685878643862823490664889411282921558109314127127993047041401280507965932783081821784736025359035698422995250649999873675874609219670664719536449002876366168503348388554683168224983624843014682792260379903983484028816728042150032090374547584846663014690759485499296991193247917643220410994506191164439704253720458160554217918325382726409580368800152418227945395970340340693179320927263617772762035347078188109115306203267717250784271874843721793191006601589412597455455700731374415937926896147146712358609177323492666565364979158214552868568814440582946121646081367166558125006528755869208259370246473795142259681489209719182842249649278989286105385903472264563291872192832640370396617091011679428532587969026486967055207435543769963656851815154002888656330516501753561287886732785416752257869672515610794973982479787504577146180377477135721631336442879610375111365619438462957111011912419475961398198444668872642667757414882535761159052230919109261937851059438526046415981666140465076562842881268547605182585110962694901893224483409330620487714707154293754523197481990990465699848176947950520880580037155988579200154023354106986190027653456477928746469121619582094093428175498938855412179181386153024280341743929563883534857206676212006230781106567708848154610572707771021948150332409442422307320234641562499315634053653084761905787994083876063382259213108756700807549927663440416564017493737437859116714269418745007470675686237596934002608913218482034861994008103211290728265602931380259175758681006392211420278770743600715394797912237609602516249825882287756455328698192000863350070363876372764797273387736388249498683501971445617968978886543806903962551994678987928207168052182091835355259972292899649297224375473703158700615346592220476300604942091756783236061473105652780809041511417029237018814654808799946516089194227374841650557115555709546863352394442455558845985040466263008104699230797355400627827303595090413819780126811980169120474813752640729055895260116712710276806865209611077460849331529231733704705758541883518414026022827225109816906722866103300478120468518817487721347284695961848754346512957845391822329342846526838286728042149955723240689612210781381296809403224576666714333994947402826353043386768478067189164806884407819571510165166859783150863085121488736596689401938067646603495096623585276361909632769916834122152997691802055507192340168661281974517286979457222179384388403842442065002864080420608995631508615660862607648024833471418338886331143006929703363061672585610764115204894544451536167588204650909913688809964935820636902815137363525036361799432501584328947376586017518819152635541725081703929955477227063086348443222512578592478046932065734963052334872133652010361682187924648120820442462341782657025315529091483662129264630399966716569624304395870474383559800676069885664712481918377837134901181226782076302073289379420983728780062963168093534904057310896046492157467164277688844048199133792296064830435992798804265115612438108694068871088628619944920368889763733859455219300703287280566255676013092202373542904196299088718075799794875449794027788535896142747691126235361270487495412238870492012378180741834266621330779240005012590410348514205103172724347357633834272718221380361392477793468500319592649574247180850039642667975605779948222962972275911173016266437766109153936375928366037493908216313298954493703981566855050934716873438402615682536158741812682344476120619873434522381339900159894229617640537997592925368315617853318019807264101631729333897811963659052923320977455003060397850571378768874280301270088776647175495236605394455550708597045369779732214354281272627838682656603523139130919032596390105997200713839897139454880680262349431972514980458193444044740384152704946205986154323922158097630533897444432032101808171399891182693091712291270116252765834840057781836814217540997098401812376859587768327995729187727916786991517286995661306930799753256780388034612768226429903900743473981603376179035470524260106083672979821140519324126162240912767866063388795678529010533512195358566470041666194662297739610384035248675499450703589511527004171107221815802283888423801420923698104165104190090398571624148246260295161135994615229177217090198094959427674907178076945737835311508166995187194396871241420236639485323093389458630161586932736064720153002510583841963499591749149837912659498531977436524807022453796685341479597368506148316773932786901798822455634088503186023709572849539560902339691850511842284650883728174882315091893069695381795113253190277138960691439499344818941695836483329222913857028729878933184954215911271620620056008896741635037073971588128619297307302625716503772232544556691551106992575353401584595845404747020512587716799512586129487295142760603398479929077433904240669748081603582213741268517944234032974374357719216375675620238963564568414870878009762428503634282799535134108465448069733681319693760495968884734651178724697615535927524889015087403775442621541743551952740862147073777137626780329004099074223323485331155686554633606919330089057167559624048327868153086842381415639952810830872966374051572857904964307603329411268815674454696731210935557904580597012201454351644897084065151805312304337015455890507144000184413020036545905080582487302620018754935875078324937965321051966818816657925931468915413574275917546346706519993521049838098486366045418141177168531992520956819499316942669570921252093115051874814141151605292787190978972296065587956794996087695740988827917357744566921845156458523965808271855924699833953320137511579702783485531939878560041194606833474144861667174694931601338875701849896916423507843885523476526684333957879621545824272781839814797002086896215325203016190710604266834643804954650336091267405798194754764686642116018711481813809174592430979317261798795470561578911757995096159487784246914455784082459326711308760145018129336958455118152004609016559489267464246212666983009564801229443743255795314114549431166354310832151692112936441005108032635771057905882485617483918198217882082575508861796274596025516928329090021666986222426064866957543174433698207509297895331786946489924218412179646567726190940533196558044634411059934118402178150497405617353988262195350135760009159017976161533684470735795109950592757177606162234694672780506308039766342628067538968257345381393799521515514198908946304269280684022286145052719587982030940477436546117892795373439445712068977030626673775544498052614731757272998173051816709864063300792796269251107803978054056116532740622201839647876845049425298580998451081018159878578326603270723134890026787552432109544520643164725161083431702891923121083777784106240412221671759146436592842522928233008784195657183955937133916828050882523766443567393109785841989777342748216302787711731745317498118381991068174387247376873466282828968283948449590372295495671463914720359317650026304659933233886252590263372560348702523148557140496825775698405386287545975709974196524812603318292459426217267403373491307066081967658038976981366056658336826984631215576111846143380489510096213534933077451325585727140447429908316564691922117772330401725321414840320872747519883474646607904334923328278350889510684109035203731211858005855346810641241780476136368403377635113090082108912453004653186847018590464615945257159273241985051552943562580607428840818176139010860945311687093278959479028276596689921710501210541209110826333964506763611786785028457023626913818311004164874000215836475103614284160079105134835155144221902425043223415404350305753105679483182945282000209406106257633262492156726208592658187890709714988588538786780470413145598737159604055723491507186578333164732537094618936032783125156111103845046026946892661248982680054773596746304169123044452244874243136512431177218137127573795784618599094615350839712712072902505421069865297424479409920436307373883401445148808379220632188990775202435672881977542099708886680310914246501713286766907245657946392223409722080757835240495059567646815231306061909623095291436900661289751558395079831675453614492565908886496836700948751910672827608564927003518327620660403204611929129193817551581105345549163813712858786922609124302554936509130979966493214318614499701306464795267454946884582491551486300782505586625451500595500247162627246889467267690218006557600362207413271749733863453304241001634168036714580716024202081793673755364871915839565830224426545527269414664294512899419732324166958674193318639929819430849170891017753455356182728602398114436399147802935635744224745235821610490290168878464728855551678226123336816092432897215559585052703928072796335861116551592929379950243165463392257282079086973999182386095913863262983721097096825127093023702110707880673502099519163781938500601298668595628108786571187310756561935169534487398192977553617106750732353119652280286804537817975229440211537584846808438091377648556810520268463152797192329865099860907277966274542177534139860444977783402190977073774489780877105943230616563114423935284118769312878252787495447931920371486520764743516088526889558625132976009866092634004675071460494004190405329925370286798358842376828551570009509734276381746628896924600884356806886793259624046104317271643158679568262954413642730405626171451698309188219676331836139278202425011657800673100970058480813345821931081807590999515308861652213499450724484842541780497573091925831179724126492952062068384986973345668505655505690881910424603622841160610108500139752447070980150135365749972130476348037429620856581470304453232642479092638803406744011722106603478068215171772994882631827963898834977415314196659401126047670706373376801896654314846128856199822107023209660013014927189988055138175929533877754227754861934100123374934333486574092564037451925329064374514561637777023140763050466531601157118148713182269142094655386830471775608443856234616704175402380845289628453396151720584847492191242579024629994882932541356128161538209681866156818792711429910777918085955388823372460255942952430612476626455676404903769429621809570728478690060012834248001630405733611484640066862287282978171101367911581571293855661858267917373813323909677803544122105154480414925846709058638889714942235442127482560166526954919882246919905941882486124368036324276704914503806554635793993617005950448179937382003300856562625019441655333367520669409698871678641604147566736244679470138444103892326943132572756919999259732295674516232389440266402676226028906667656458552789901849396341844556605033002379221656352455583927553442426906100958736220653245672217179864021006877134976747268053933089404256843675266975931330525172787510523100944616342900389751387329554898997606552813564248357402540251756342302573569236994077427944785742731348477481314192250849374746520277646280759613455003563174479501100895964585626998347019474184048468170573596986334945560750541235295857069172866164498526098300955994042836110555304079925750106539723471998305530242474531877337906801613943664133372704085715425035813277211895594981632454371847891840295075976452682121602763020102487160532879699121060349409098830937682679487989188871694029431715869376514697236336744406063712669528717769670184511123449430363089774961499192395379130780258035382627240589550641510341662411598268533105337175031606124481072723651333699908380022648970542246949942025113178378435642710658988854573565681879646136727926827598474893563113826887380260594368911435981335007242702763014099756317048801181528730657798210557821878472851911420981252032918108533283403714757393944119599521761555240232825520268370105848082365443731014170592796416639611392439809144354684371434101726149749787162658138999356702137825445705440453317677243859272910504147237247191447637758062904018915655161625210821780221095736105711454139446416096632825681058098249519587751952524728605987027043031484913770589677552895077752421918093449800215735526809142500648378064441066820303337945415226366582304597867295383522020594280448127656389864323938362576452613742215514610141090593947236295027154167002514838173378887480664094987741578256590368475796913454990562748638697206245670506591032422355864936979515015738566118110696872012285147830115993244747780758407352799165487275250080506829516205505277805504357519311578723345966615655709234183840229061142763005008156180996208549020653062637715954584982573099450144421757448231960009404891719828914645173915000645050656472898880095746122372087296055222285482749848367510439345479600921574344616545633468038098801833285086455814664472298562227371945522619332670702514416389662092884830295962947460926970079289334935715562903774405756051596625447289391552020620613758313516669549483241521457068144193373682646064015367002568277930785023383845314394690975156801992213902449353120909780691411811524804523245990750597566567485888822990384562377876935290479261349149983620664639642828227278602114418426787372471263221553144539776943964666247466522736146648911601252820872460394093826696508058350096498565804532227702604070139050226751970368685956372289317714618453854602210605681059144382461645700856135863068420772793462184871929775261647865958308325320567787141641847210231768874604225640186685967766065431255760964145701514798662100269614891696644319152087181124590709652903897300343638917622635862870881994466019044865859882027133481473302550661109158354309151433521824322230234694552705553198900332639659804990025903598816379649353747235107556216013407566994621913669910596232337404478386565384712543295581265453716027360739135944417128522992442589747245295036197789975138182251915559691338590349256443657328589359799760705220260525540192184794873857486043177739968693105941263440762197767767899131675927887867551575522704594621842331453277494087046797400003381526005955147260431540404823395695482050745622775947990351641810365392174587838998788319050091828575454940108210109234384266825940307472012178605988670633024694490324217946266254366626762940796848538050352275887956925585707416214265109728441609759351405631508525617771860721411197697512385169133482077306439067912151853003221666935314593865483555199506574726339723396428142730252155761395379011906889960804554697311226958757575192868095331103343584774305165315708744092917273038800041276538221530202006364671258291076863070519360114424388329978006083596339397421341983978345626991665083343043489826327344183669029256211638685994618049751818176240778449044849045457407063274270510171729202813930769043635105883101122902139949438430366821288666664775227978703510986970985158346384506298034004183443699232298368478511818272413484208254745828241331253388607189150213051570912421589127607459159096188293418984235287424704903238269851244877945782071562337201933104484550911373159977799547820735040121405300018535022947191054193102997920868075284382776511443675413881317768413473992539362099383941247762543909509438976757997645834239683064390375561621295648825964449046883266901792914157827711645612523286138528181773486293451093955106807964856695975344263783906619560471612608579880732879986841577771244006248485108941191463523224640965485239180533437600826470198812861358929353263476560127768448008321660218448597726571304343653222100693414485213357870627898339983640499069298587412014287144626665662029562714105993946962140030698374494164125716265867193479751718716797666365298717379750742762698382519339424968584251822211103658952062684057795936785140004452389564259229006031631510923854747459623731666287346049353462581644288955384584218312200979554979622531663003893452551255264375864982833335056655255087178092866161875968642664210405721835199355407126712220391953988128226873557455837647200833253634800052059268437975840186982569932445762889989254624430821985421022418334091905984121511407213461002151919043088204928398377083645205266444418144843767225412379021895974617944656349703687026315207342156959294210356411892140625187453753824265064360373069836811300772579628329886146777524750768558278779310866359984011918440673682322075489735406198947919420586342826757779481571024964309559247268478491605290143379711688001311926455392232962203337239334406675925143990952834531485538548634370431331164001214889603342519078283126958706480239905799500809977483583191930859131106661901294230532250204545370175912539487342569917559173211648197897091693760007327391875976114854061263431697531088696608843583412734501662956390009402204570020186763376231947251954698159971708832725313871869163404793476035246040749599548346741275582343635841833507058433995971164069944006658456763717687899624962305219868679355688965710925426128695306655136606715241813680126584436729924796323523327512996707731680026158449373460750053859398762584302858244632466939544961262072243990423139738934092500927525638059617016439961991773672270404447831700590886734256874560571470370485724723619737003893487865739035497825283745082181012373977230492434320628652900657214274016711311061242014440639066641108335195442420890255329053209359616655172681639999495234790891652606391103612292554382131076422395599925920860521720000619339030528134165200837820984256882951373643973095985431871477695435449658826957023407491229486652642561913979551699784997310897161714839187906339334361974386659183750329052418321426126733077299379704772739714980994767249296041286848541492127679557170506118477307383324199445583393677329928441332637797340743986471805390085614078709243265134304815186523361156015202434312084030525824511148953391989266856441123443330408221725092545905227366565818296967400221517195456936244081081624347354883861408724101588626511802207138953829700808066136898659856181004398717555539234644211612824715261424865636400191249187934607804385264556752574822331557030347663080636079898585986299621492817411975270069422147289089517364941628258382192596410807030035903949995735384975916591145876573206226206268473450164151680132996195379178193472073601065021925052568047603652353538966717902451123675338880256659137616985146622791770882419595978323592819168140973655537702219089006507281648921021735836345757387361785435575004955725383549655326876081898471187193692727644492326372273682860133403346739184438409131195911036199755086302219499958052025900591617938293760582404742078583220993783126251738516321405639337872242354137075940445075823838425368360797898837241392542753854493321094047710933224921017431054107385592159872168964721180048917972884649275631746058526656888531398507412389714736120197126867086282388070775446442189612431781606968471660221441445838410458780429081914814941634202863406560134438789317636153862163900089414010329167194839093420397867229972380583451283407507698597710301410837322500817871495393827046050104589586672298420149428721771217619843289968906201595838654585949225093315546080913704929435680678174876384517266830670802818341327839158166674571111455044995915987511684413121430237354953664245281828860407150235138935097171250365487881781850604286389197034750492756491914758968172586764642921780505213664696728269803950702373978498697564413012308280972839510966781772553700192500681712141947256948554816033694898629697566138275352828990679962780901863065071194167024260978100141552161481499937563683806450306792425842378383601118895363602793779989866083189541800256038562637535558543834051376033808290492087914670891591789287920165716015600416494368276924705270339397556831167220432409747780849777468041923719904615194480311776219631964587941344682390770007299952308333719534330703141259841622395311577364258710449677748951254054498362706008073088806286575219687727356822767608830186530388661872305739649150435730480685857197490995861617674657172669428922484917103853291428500514836887728447196807690394012673559687771894933263308372754328815889907016637059505896165146467362128404578590528812481220101017177705782850720967683941106018892846879794759742600781681643691102709409959017246071724333167786766737755297471920933422336957801271835758673879942894203453563182214432215974874439278374101617915033763356533588981383448098851658421142292471698565956673341106581293118752715626075129869497455690151917739847847809220978760571070735450084047751177654350078270366054469409858243252688879849037945309440319744293986859985536571958239227228138582570144630417696344932522626032756224075271845204475457343755868854677292592732689326242759318249786707895471082913445375408682623032577307613695410545187784675801621043023583792734360938279045031167545747077533321157157885320528331418060631796194182789311832369097378469492492817428116967040861701489756256975125096683255222975315293518613641431028309659071883879496928915354161538004045141523854451459433334127507476771068083265497631102174399563064734789236970933686387674169442914943726409307990104867004840442213936894939889442263967453173891520508707752668316111153771198366008153719350553957565248209926265469742561224740127210361873539392949310528332460511044488278655874120724980830368383332410081630834162231154275782814859163123411554876853859558591679389034588074908407255529851734840397985885762053238313625273543241518380012193476329210208197100852149262426791164644335446725797585087701009561204624801015170262982799660539345498068620090304117651508105082765364767878303891260368545667752897170712729034368882136219969355328079568297118949451899543153216391512688902279874101492163236963445241800095953831443765889281694421366043563753505992445049301700089861157277138500830543556186053732097939592780708192755129734064168477926073359040430492254505424851945730590976190926129352581682067743674015360392294782437347581589268592375199794171658661301468370161601341979668189636860044433492153856227902068172177264327020314970170143443431467696006409012221280668134298424348198294809531482620008612741948198866801672576859852368143169458642218752689447856403630630439046922869838413288172643763778201057224677670439818531386768418498205846515110664738704105004242403643034373427085738605789727629038722229960092880596695480242399028395283144845684036370970645916000835074962931868781567809502173911565880829939594305101743968392521963148200752602958130791300084749513491214288676092873471434948003329445419649710748035894320321724435038599271717168090568065167449053252298499883567267560077580057280958907632265282464185317447303386662369436582087170730230123515300646133213365089404579464426152994751967268789794164958382701097635182015513572871941893198069722393037545155506984972782493660245235887374499120778921467619677630316029238546941158436397256028679839453160814772375710067072662306103487818987923397961046096729604511111301771938264312636561248748420961832958161521981062993275588947089402347195604638056107813344872043286543688129471257762651118659383000653706495953931257717647959100014344036384337938730436560281000005041045390767964422520889664589010603810463264168033528336472623379006000880165535054709508324562980225994225915851698753045723557052980925488934086888563211052588412491378436781862746526322995668376740572116815120261154753584533747191081003827801979023546240287619856773561461135262740304354711758150489729820877154688850322042518432834998592711253908402809450172657882630517538702624732004461171371356294360351380561365344051229911676403309082959008556059520966316024363407358774281130072936226821650856179251023940315398882636667188892113658048770485542608915793091224377395652365836901115026787907175324448337581296102348003340351779870049942120953717869802615199308912322116032908237712387647272220635832642662027687084238766732029218258833944357544077200225238478960902453387905444809450143495259422117938773103117145012003010704325058994530723060814943614535183957232698584211622959543818995943113451765518235474131898187963023564376074231777118523232564224437553641541870955054453387572108529101423363427348558116115909137082889377015562778356462885171636791019222676132716493401782919257631522898518948013904462622244017026296452970940723890377783874978323139890175076494600877818117717155058763604347420017432410838677770169870273774042613940684883601191022833198025313026062151277238309492332847745173656842071811454485582828245563090611223942258093825918074018355124095623695246913180997884209606219141990915960778729826857827177556097444525886495264352891728872578408683688190127815587513888965812075367364423637035140202011104386308677703045024364132431021158278333589898071037562835305034274275323309010590706181098793777571466336590514436932960058485421269136814941375555449029115599802567952984146367232046442072304411551351690001951191745332376039728071722224920692489184601096077268266388038328801323227234577568759134793155421893000043414637553249075596134777890763559881786796156033057478898864651499511300806784750867931821003708996203157145832758378217143440065901835009389950579373484613907270337867999777853268839664038678536996402942388443097367285284441603100067942104174492894170287930960548227209186892652603170199305666013116512417126579640777404335282056470046162069054155814431504584377851563149750306690091194720474483566519861709294019663313637585888609590257756890689207036845113535823492202295820035995213409895368040836835794983663156474063791845012665652058223644494481261098974232527672034004565508416840516675721408462503515356981449982401301138403839017754480178108316176644704908214194135510181676013235309288034793574572049036183047831583521815768371101312552325727348883854213417742670426107430506357141830039680113247966442056913556738396637686264833405765300117208064089751083773808665062888971152361429005050254925337609033132589759420291985802162277844525016575682516887999651804489332924995818541550229807996852621816999587206702619175604031015650765630887849555747351401438793747104573626865348631432685213686868338867126495628829926710820092372616267100072328304127032820044635349521151311360868057692085105720146366262376716687414172202145316059738102173816668221419295655828001947172274802074500674070506205840076680758301501561987006418439124317869520763064894806323741382123355491139287375117656530250191521507535297949675770531215234735239136166036077017068224148012337457465655570221136064293424812048293544303636033135478336533662511464259218425388871933085130559298917376247276876871721579515118764847288017783416823219289370811501341781560929527462687512777710970896925105990092839516506683938541472725817935205370514252374215434718592569162630408291044283393129194903748074723596655459319121008796451207089909979650877537239483360105664894103827565847323554738046031610785269401042100729026263602254496280073313847272821130087129324298093880305600624425221369747188329760228816186011478562727371297422821723224838388848706674117967737231430086119488411838759964504353819896599811112868125797554106414594182529915713699936554797584562727400377306518838542600436287726652456791364201400648372701402917228954469368046166617722105953658191941451156747171130714009944384507313508381925042920000304107844835586580402695079086510015033468915917294348414357291762018136536670103744941957229002182379488016458293840617027863397977008970627342078698409427159338207160889716706544767052088938078884824960998170089587881691872341202074101141005706938057112926146471881194590705891287454968232525715794466076305535510321388052377762257352906710907727177975223243418961344284665622446085536343577955598091395667470952000734563943283912420323991605025371113161705950723277496652190796974706293543042509506241543336545123864484380218966038384145913244865514006999372184617359056901024829112542654193292546096709619703568284061977230378760976746726481442296618582147640927155456832419342335063072977349213031954937511828406064428372679769179388581856237429571303242478036731640997228540552725050757742918533934783815936398156467222972795462037305148029809981779547074153056119699924907612556323939465546438024174026334251128883310802966371425652294629968384909382467611732960909723079076905668150113436639486243947244355424371202664742617746118847069574628232022148737003253191940278542274004484668649899841219938067321313935070306465752854533153554600248159136670409081420618916288665819818151967493326320944915341119931834978438524257501380722060487206237259301102500456004494728658100170640011274325464096982413789719538601382157159780040086421959208292642247223590409136563411231887038027055781964481584770055199888243214845842216111568284149459115400532242655172739571355307201376791829054348808821546799791812644075344116121868820159791748972228459202281913049902856902154847603557008176705170125124799818302449197169922643694889196912053375837657135128535946441374574641028916734800678445004385450925890064675653574099099696489068535398652879845418020972644725649251577143293886714598288332671803557590829610771515259226937125986753093965903403487131740636903535776170711379574327407439748269132224020872526341102262753843511868741857499926739526291266066370519494301402461183970021664103230690550488250858270932842038855296916862813036586626208621005595819430896034679582406151704720973825579661231468180893447458882066926252086813925584299452920008745590142834330368530961800894148098833536821133527103308028794682963815312158567836083468926790848535240123745663956450823858209839083995258071462465646423466024863889756989192907650687555028044566201505098578028473135948798794595296701200070703959660230065282663896348797127357870345041638963893406173347431748336216988454859805569260027476144201418530684052632638761678782988299085006014880232063737293805711423201082881333485605494265084018083381504430396131278014452716023679884219825211113908085753878772079395826492359279033752952501949838122754526376857461241026675747301695565305349030224012552660721511439758147396637417129036597338048543474373785618226861749597326726250587434919653613561444260219038006206863799516665302546679119534952927799520368033685304926060113543093076735528362888347554858150397504079144547223820411733536369690983531632505250621561676101100143772697642995759638340506709347734302054848865462592486147923248951660835163007082485933449831250892340111312443058588292506738369997565401696702442338720039210105170462295738056105679732655899735268555625556445575666389367925026968275531973891037950409535832359460646865568678052198489488345101246396024413661726545652318447823935170104149316631381921821186056315210886239560108908745510120878888859819949890915256858699348229472330465910790484225739839953042388218666613291234096413332091736441679646045293988089727478432193553136996267194706370398517509149208589485553714858135869833582962551222723044567990618262517282824302957003410921755654568825319128769787778543788219464297332808268144953603079304424884466232133147729011009989905097095822298743276663210898145765378652909503055278388309357671189423181215152037984570387351442106786790444580448550155982513600479531575606857274769795651015612877917553166772903515402994578343453589041215687455147295738178215504570385007441735458957679341939539191650709666151310693444800601361735738396787662668107779471313663627471184704326713295825569527649969676535760306622993359864232596103553732056546644462161991235098206877539224953185384334241318679134693928158396981884068502178332212748709201154563810611647246455897833816176098247754652378193039707866068765120249669763790102246184522873350164966694559327259663904954266082925324136843608489137511510720379150234890474340764972229875296728239085332797519934705885444584710308126658398149511432978137214786459291749620511481541492120252217523338564871695624979346383306425520044245338426082182158478422773992452197294725568581222719991485419827771698224742757458915831998941428118751845876141401309351420380851676232613327065183616123540939657249350179939565264138559034713997168915135500092202640398327344235120093164414901958652264998317762128509531963618046056816461952839057530641846509663640675853790047951331958717499305354679774904881728149774215490460120698217730801797783823516162334740533662879355533407316956829369419951278903256057859863837248322283242303215732199122042030523635408306535006974222984650813910527743322050974978526306394204835982212929754823360678808886786525746100344910942748772077784834910034955735434432822665336897098369421404199855445991099260346441216594442276259127609336820300858626074982766129604450080467132677828191574139379343454138016773467266047857513190473056865933713236099304416477582787420454429995203416026915218998020268503200805435424615577717538762769234809573751647592200319379678840905507983077123373917144899154620235488508184953757101974543446226527160792405895052581055623618057179330887714912312092229834879494920276662713441409891387384247603520967831848327457201519938088932652681190970422408644131626243690546240456638751016280104093662067898763254931888361351221835589794629405499935712310247413251948678402763383436295374948539667210519163303525155153720274036290685958877964601624777286849814524834546804228442634584547148161166505538011473699201250061078142041491655223590644530010292236524625589986785646028844037758079838066823041930675631653756534232523097183644431057936305006047875499234625069141484602012759005448565773825072303662024022819193031025271177080646179047392424924233155913158885732394461375810645761230110931385762983513409548020622978684453769028211258876513831281717755768114923911007809167103183213185175643075881774075247310871085001721547319712460900583176649433903485521601283110304911629651472848051604012396713190748876117435818415521635795318193009529600397871319423929727229745262995031758067210039592942893097830505184712747321958111949355566701424550897999389554626963476047578285022353812072569426284885864986834735781256983675893099959862181153567947844280208102812707256063340151779499573011718311559601589036277333532368980541342512097893267145825779267494306799186367685994419029249331727762515700347475865881031475619576517715405601172657406575600529187109156366718993994153138968525418497344465148343060958413005544472645114415030601605469460277131256365138233507563977786629993408072639802405602633423054399535085910709912366607254511576096714902857155710385618833130309299653316453147103554396963980182393722825036065910704286638290289245115247365428674403264763719628312208205218810316556513524877722046218049523167246243505482813147628685405186924289486846503532136291913220203504334241767370461435758018474020415921576498323804659208800517011034554680529629382243381038762753607131222907332457366615410231108598379846380152630057628080416175077096345475116538096174489505368154303767137031195750709193294138890511804962783904565190658340027416534795995103942333132270370081422739448685969938638280014004374427065491401467399488976499544736169884331771795401842014011506190655727532810970109305350832272014386326109098723535935620647893449366270363438483289826322431491819912639203689883876826273729788286692532106934357034929604500644482631084928769635481948741096994522109918985043156288025179422372382298379981051796900626317471591716048574008371948103186514981353282105500377663363886911772371727407021652651452853756183084671340826640246671445194524382699426869659689920826218769488925520314352731120477193548606553026831929581564050161711501120217905575081384479104185214058327980595608911684874821770618024160966298221558725191999209363838577933788479176978365720471478863128490386195010430432423819533424512026185418410130463887738726483128767216170159564935498577681331733789486700551095980062762926079906037100984710721605965017656178077547212529262797718938874571239123352846228728338292852146643692048208089654197292229319441935293419902602781672662559554708913824534934246662415737435663204440187051750179933938093799598124286947662664304924459454857011863509447921824202909692739207795475747421625285300632465334462439168428410379663448942989371836575635100552525257449703682777130915546239506164991496250052350239815452353950484190511871509685624547149206466504168497381090919929322914361991088791243714482176356737898102512603685590891698499846853105387675365745032868272867096610255718907053787929217336813546990964873219576779073269044849093103028155552666830417270990706731326917417109578423493751554294983539775959163565721131437476698914401050668887526161540802560293773708777630728846041356071924932936086031163358592761606223250885370606043865246765574450504811870726356542688297100131004712106837690717770357255186413874520516284417917718302329355916282380715325710573471170182622834541768998104547055083356009263412428802921113067153046020961830590983915019164401329902854530204736002185715338818334280262698287500384872701389530080443983337818958583883537704664005505781225261906145746540085404102371294407087653201088247420149004161256566826042648523831116281633271166602505722653634155466153027457455585589552251612503323871271270694884983188382073769994935769378037494507966692871643737120108091127386415166604763357803651549178769385664973091845735660302511949607657643890643731528836557849827468792653643568777385520530847099188548950842369854024985804940549177423276395522698923368581000333281241178583796150662625805944535398688421930461400712891471892929713944920337428802086725981233695685930776161523911909186196917250352003244272607763587095164351995745530286444296432177882184695534885945924262461704514741701233000751961624679303039813221012446654070328597666226802807676843593925261766868989657382648444453178972473626367093236713666119148293538835442899224704693010069615863490742024915590710153784697979107449770398807262933967717841492202798227782911689903373373951600066359236436372808661953654955426923230924304591815909967709545953604752534553889198477135166714639022592845899894121291134560334645140419125031245178265349271822868549251130922369695287671385288373180699067793090027474148106173081157312751109834797814679867734896129054253376584897130470093160298034264227175673599665710282314828878708761951305297994976803759900153902372279524316095965238329538146050806173963977050257970491853316771700796205003636944415377965917812365029569334202949611028429549020015901571589697358852722832243238555345454316620472535060114140085767477160754324948456208496776791432243245401287521088440423530493959344374433012025711341632642491407966337399094431997399053121591146326281651233851679382055048583405950149134451901283276787685998194121963327494956878114918135345371581848680611271441147577095532329888584524032044769830159588517847541146711303251671819805909789217552380479421978425119327810025013446335320263923540520752055265221153610489660587987668897425678396784444004043422289627152557892487639933901983522826510217713973993989923017633005123222044502052239843538254932670190144780272448174922824223464766291531281897514688909710552215266199022634215497538100079036604372480528300731138449952849134395805744969261395237233797063387657479423794917580318856839155539940793031651960000528874673251558498795977171904077004506403604265827610340028555194978658152203286838906473190248592997673345664796905860637135410653194056616633391000869731553573190603981089183935539710091088479152628488819943501892579753078293630269084891528663495244830682935985421284607801741466360376876991238596602866710390382182932568857374015135234254119168753396590385756273331100665215426504470673268246437203263990862043423325854010003150944577360162645040757662925256697176328352155495896083504502756042050050629926717967164331416215895000771300356797881871236569593733438162178557876723681119852260380455550987244474552125652549924227302669829915623569633761312188165853351977924697650911009066332951790446645711790175615259817805972746785995471846172085305642927022206226766346148595497900915526635390788136434291865901956535907123182081768024234244515087775626742050285968885519234193392066303587193400656647637226736821524793390194369076491330461667218126400322092172296873583689552762793397196617319574868056852282476049362073050565726620232253769567427492598330356350527596843701095117022707138598147741986058676935715036923326961424708727986736895617171985420475667824454475129110953245158479323324584405763939836691421705841480223021917955763382499719716554526115085456358573978935947148417428142980649739729493360821348301607494486146602633383631627266376137023025119299973153513856353578869946752163391242007534232404620135180034900793676277449036790503734834691485855686857070152810739951179933566040607227228318566403879702344161134313895407719654622555219523636055368039780248909406149948559596874112020161987751687450677566138750876021983503030641216220499651055582850129654108130458111869561340358727803466465063202673385633969782127882236097337525592803302292041574439470122207785702793825363081539786469943641017975472941935027847766194447023245146375974779251664498376563132475610036527932369271849556205682852646219349244234257849252346576770356637069585085621523408915640424296409643958864748164354644979601622221385242732380661768434322760959023990293600837248396054414322817742822100700613348270120209968187722072781038212559485740129108804480752672852559193613937844056330966892612683698029888671560712255908855258813189762275242389659516713921292518898345457663253408431564112777780120549246444924749327334544371239302134006385380641175796242353623686100808172669281770233709623646038169284619961768011855964886753475150662707139883996699153721544832255639915879442337449449434214096284716758416817360322440116263262361532775602871430337881111894937099937189820148325333153724807516937817396518474263581871764474644145958690199227785975037028604591926554448628270759926330893105179043859197175382958100847504850085425167354005617436428181586958752129409829132540834401734663951113643866265410181336967721684308722746701990487470015643660751240278238181639929653486947728656389476108584104571146088293123768819143033343827354073699861019463864777593649066599949979873947902689514007197739946484367840830727957648875271933822747101469017590556846248578220664363237291695713839705864216081809144132346445416138052448966205729185635484786386853560354523151949283855522064233751029836973050881510006667372018117696187952054839737548930221217964114985903846250599522685474227697593346394435902596044717582455742994493291865344753003621298724292376532049212949150522467996591040472587215624595503559130583994235531254344874734480352246079601638289707616250881513540519052173411856465749140458214473385430022863570363024819472552361722555318509132682641528840759375748696707833076932866590243679191008449841146854530803158915608794131964785898701565127436082673336795563999108778613477263077225217567710235586717639556312639454246448645918691967150213960303727975219888794026204594812167627092293450304990016515168715723649693387173269564226177351919699939467289298286393668394219212208709628041587885915325391827581564689539807537508195231793548680235666643614198328146686925533180529938968200326784135287575816774882346463852982040276361275869209514806557560107954431533771506546222813073557700865751607677130377052057355389983307706021408414275857013942382692052893332659527892226497530613353834039369997102243094611054739819856753101775358591029739484975017921422011852681042762563115620403858313195282899282852093581406505402515026931097733986995165055334527636883889441434357500310765665707840163692717288558898559272305468291097056870288367832824657157592494182572845076694390030430217516188038467864138520696505142872793967994108822037311133750937509055657970800093765692659586862102415764090134849422218934221447922083154740454343606251424659461572179313740545499991102890518598519555396590461471696594771460642612525489226651406362866533386526101795172568567069064120733086315219125715184256599049225164032712206924097052819252852764621770442944195321000163312344406823586828613827617861225386672415022318465427608536507840205836428220385128254834842991729940008213762014478590082804373299775795814962979410493011453925873108172102046266730980718373451771583716083358379452057682483178084659894988471052072289658900191071471214908297087653355680846622258567646058013979104242170780623452500969179985503421497265170610572055541942004422861377088723207166884323869255052756462032783413649788461265858517890672682891696635280136620445506221001953805465907033725148306689849647229321856631490175043561076680951102862331901501919050803297035069108309695753742322228186570348783807497542532188356502869926814428829667360730839603738130288933027350855977127978920480387692549527584029657873839059030284931575456760470521010675183699096230620344781790975542731458411964059740890331332300546464554946065391166019564806595013412192509968664826005170628989053451951337073974560241182829896621731897292146256326561607970965893875061396988696052779486234468311651176029171499836357768073834280764099709432240795586772422456693564039220972753728155841792487481895163265810455561080032315386992819317232633751780278593461057508397367150735534143384937570107574574732199490051974679070048890751788399530586691719202865393357658296489346530601193246955013304346441377447238550303422151694858354037719226705412638999493542339969648399315090955470841316827718642810646088101198935242395279613832343440612480895153259897719934215892207211076505475786507423387968250424484223179691349500043849421071841180753492734040275495287238128517849373352690035145237655235839069495536988728623502541812623355194711345087480061395169927175024020208030937960255057007458704866701751692892502128043073893318444406249048633332473871976270243010773502611479919886766949027224200771218336009856444806040547594931468169756616803887711687447355139705618809962299860204370018750411098403124264832314474355355904143843475901517617316604154002552425837594588670978025482725907051238737135132356475407057716872848209931561173333317724649334139660066615748678490549107568466057970783550915706137678697550251338791761377094481632036425732564085802780902154901170548556032751890396251097854780739844417401206574239381379333578909030145524740423232569743479565357405307601689242654600813253625639002561008928573511419783904526814747083728330399793402236807615234860755946800726829299230645457384474543544123287314785501127891559590761883716850121899836253288709471052718032158773309668026489793583524249438593648697468395146835872546848037658799295267039619753818200655257894049736636648282519235454997287661547247722577952830754038188163668222071287005444905999436849667702666765542376300764522652425655331118439300765922673245602538946033268735413175928573334288563184685286027636112603577132250284372767508658030479667438691454532970746309575432182242763222256452877115952866645497929917270504299140612854490888350281821662533551843428645534567659320567780570073269484581622240302327094251701619142935038776433183479475315657856843815931186224554607748809419504520136867935987032288025167486101033786899699239055302779635296242071325985391933150185648177547163125095010104518188590366808815105904742037143295380148244286310063243958491693980800885201746733499025321014567572194501054362488924206122556039772946816330623553293508656849814872766596240493527548682900015286060252354260153471736619452961366638448274967835753101392611087055303386905900225610442976157634395913999339558767515356735163328072176649069520702825469068578803940833028044536474839312751026196389690091913822473609542179242435153935564029621710365524129246988534976620775702230650159640501895682127993783201091545288678339565249276645831566114524242348938833855474710242289643030146761286283053036910460424343586135663898162581141263352417760766628841173228636897525038228644640117754281005980547640240414420667680892457686402228794156793811229917385479561528776767831740551555591049478182338685733564162458919361343777409784458669103109339293443515486068377944799001602765960555423279392335366681523314524241593364420807524159806240734484133925775356575886639970555873312581956402818623465095282103773988665085519148506464722028380777888089989300331776970422279667078774929164967709410046733710722232742697928316250468174679464866392821495723401708174342498620856914932588881430276288466338095409734313588391136656079806457390194544205902737084444065180895936953670230653807585606172632692689814187633335075035507564585533221025738302573148520833026533063259926927459480638916868220356615237562598322006215593265895527751142071759536089139487459295627890574888551232448506565227750836145447787438353399119168826385409247630275476287459684964216974753137426135023732322646263875651611538119992673317185381443198140072832538970158110740394087512586959137643613103955919774818304448536113217258610409818611960038858992854047606353969885286094704372808497283804655867004203787524922913556388026390051135927509411263947962112070140839627075509659206335204310928225332180115370614936171151667970248626193826430087884712872233814697177765171702833708371170860680667201087615823541549456923365286496304882723231463040284465180145243546919819108242944020588782492456914021411393210391995798957649546193551524898206454739721172959929962693951350293000690563374973445816315878555938709753701798024201995960308753363059353854458673045566727844883637468140888295334545032575217491900799496829417199144321716283041336932515909845515542599087239493169938666577771418876283388714639830294343228175745010857928520359138106608338116359851757397306694508546539731918086876597892380894565255974176737942966323943344314640177205332795379294259034554476446635872256410486904883033103901786228391050762209235503975302119794272948712177249082169973282203328922365453125242782524617441172603951670941066911849131859955716862539702039548048891498684855226029495715200786627701283196942874033239593662754723046965858456718645265920485568101609835534443117054609358122190217975578898306990536399411522783251997483408231815892725366303759753401494555023824585470727129840114416755350699612650005555521702650207635507939818366947576966651450816659734627195184106902605121601682581501969131668405051515242498549842260529618215900479932298353312548286461314521232877456755344322917549594794073108380987921371362711491357954078602407553531716018578722930827031621673193869156850338078604735882202513369892235977828525608226010619996816647371764667702018821678107791988081726957657023111567558102802047901601796385052436884561623773361933362514153761426987713593936550148953561952694947335142217349066267233723602150626362479580171427498559777927703433592236492236888005425070639644783372148434729451688438082624467692871095437691796260315237027863844935141407488977384243325272328808625213674542304758061345369447761306628552391755139416257964893985484937386040915747499287254881808601144113157586725213766004385908177319597171014132268499025650332212433590805122744671937093193416843090261699768971502083985395615022725723920178521073080035832459158199963225885853367094814180431350124541086204859089210629404956447931835936402386883535980291281584990974211890645418219694026934005502790509025384982241309567363965030930787562526239582612899762623744175826911891993025560948804646412690306431153402522897225629423368300213274968694561444312704028441727788735412983042963242737758294867285537842599113590907080500080148088841375210297820297912544977771327741461282909784198933134197486365861437361707400920422100795730894298527677352427286463235563315130687709820681836351191676007590844900584094050297031582498754863282443328894764858769692121519908689205342601156581016234727525763748116526696073580907407376493462263314392457338308644977087468288765191775708200090016140176112144879446507214816571035832712695771805029944491683728536956576581918531302397162029696413929427166694022000455086337344349142081720227516638596011794391994696983291735616233384542576732484615071484331856593058588018798961624389472070777030871238164441265484042689493238399173408850391902795790236595096609321548775502230515336796363694368116059912671363186937026730339479352370989371932160730738380183782302572602840055738997045158473848527216951200628824868267330067152649291566178005835044906901725473177242172485094476628814122772268543868523396016288497754048213597435298984646316525605505521692993036894242356482675871393836647970432456907705589043173061972123062260452240809559028461329820005002496208540085845965876385934213649752254961248597069569956142705879612545533117297100019181848872146982023277871095448207266036726841113795657896058537041826057890455124206894657695760071650813824265397915870883044744963582118782278142006611167995695736620881174427733453711044083780573039301520895907571259163447674910666300822268295015118759014032785071303712121421986357739074492019971975916822316096160959570618633542062483461873403770745636496404485753339394306111254309105643409795687356721464062069651511325600305461066837903662962136374409282581885048869646112114262937734140311561143619581431258179978049485270641912137634444591628010477731540183784930027074912471620829297586127695989211709947073513813331672279653807561533113861854749467126245646098766462837019840830695290379875685597333044717424491455496114243526728196364192957943567508885380031047630716943500972444574109149628829114313922995483008419204721553989220018234195529391872317779424463823757079476327079615307064892904767626019334611850498288417881077675107184705462450843793451343537949977073463694116378209170216490288512919759247415137894673323474221973090475738389343287434922065125487054257983022601068206433411829616223641784238786945151485190728502587140410665345510831836916056094242147271189709349169519083344203708097395701899906211661415000829837005988061051070577078042120940965751161406708794183915521071457065573974101314458157374556066465242883388155213580724446605757286803166849692407201464008343337639403864073632261965063349772658390972506786189847538514517270594924486191161855934562185436456628159158761426201941195504144465348087407164259807625260751643971290081659956325766621913879739508372802725823485921671085700380467710709124656581360688226664577673343283307370787163569595807626471928141800520001676208005037262408889031127184510588682455970277343516791738194527497203667904420656136446791154769585085368293504804652379028505805091133246542999902987539217347677958974349339575808750985837399597840689619629373552885387338253674082026816812496820215240919724261488462968287102979119280978350832284870372016949724279319648097082337161542747613156424456455077070792803796695629439527850808370222895679588790439454484536357138938198821414787108370928845035722977520229591886334276418505449000673958199720724559258337926501127325178890688807507660091664228545295583138860529582083577351210089466789386778158753710797612184697200067966782411223689987843360898220312687438832962499539814583584231689914253718530783491783621916016043072298716097499723834679590639095574435214615010195176785448158311257381128760413372423833102801933189421201824208607016054104606846846365090393028954047573659583949115829678965823495641330190993386629084852422083451762356578593124888421634387100824719972167818883674944756190663757307021637396157524004204156358254960393200159299674309214090591970624142379534483559720343134323688918003580708340390557899985560481638154134019257675658494293504062891754722872201057833362047019275172685606876349258607178243906888811317542111916568383745800637335677524764175582978703087371940614225835107430042181853934595525022679977566444588714855491415632836288499254855563420779044886846215588889102822848262126570423567644063876058776093109800608579031582830444685282987575794765713946346251136402909021326485137974764320215578834701521688857180505246009323984330778800145020336829017737761738638346386751779255931686804552015647407719152520392932596457615550934421019267456645998669199972145844878288607988901811394945003390432701788149701590153997635001042983574848439084207070734102206331812389683599949239550656007214914500731280627240746874753068148485072766308620580247019458752923800184666618294164457991616069567294769395835929962028041944465347778297838249623188574540249272775737489748837396948044297210278838264116426217723529286886025270895674141971638558495277855548639899226384389071836961505463306320755433831413231792846414229929713127026866195151264458162320653751916587147507913034355084267751146085975232461432400589908743890659541551046172339170320820883990637637096629907005800098652952135703886993480610125966754668692984156060773245633716759936902256277969984105408618988847342917587357318339952522303812751901304413381133429470233542774782541142898095930916872142124973366768849775709610098537814683813514958265386278974317870373973982593908621665625490776622244263128579997665597629792936442724790653290746869555116102374102838357848372420766146558748357582860585541326443470106776735380451796171162418231894747568181094376855474832214563969713375419285203722069779995624849601188346772867454835233440974375955427286883708516356841975836958666374734508989534139136091634519843664158883540938895535739636711487593537105959182318373170954360459076389727138287444288913374835122915210729060952045861904187905604383870217921208421091241708292993731202394280763956551826588125004253621010467178409135731392956176960512952140074066688734127303548166592772836453337032155564275188646118716715332034340850977932904344872587699856455550419432511754749258046905353124991113815344920308802226203494244872639152435690382046712125991063685350637694342538812829237776707438640604035007509132743276317537264523570595537515106424869085233759466853810625785237802613350751195509246840968134025959147795407873400234778411836270416750867102642087964359760011558665133039964794966794776770550735200607362758644774551840279992501170837422986157329046820407700279536896562865525812960986828748006269177015238085619945982595933580892168496456284304205731581174863472808788908238660428698486943385129573487621983222408443948337584523169373784415146949616385953558808276768469321756911157123516219428620047149556459569818965926574137801144244740968347890054129590170962612204097078585797767489216349455490415620215364439930321131883878677961919321260416758558343418802383725836317409325571714959706081702033468981996172176997359935262458656552483704423668511512510908091952183731235090731577540906733670753233654516105278758705406079752529814609973372096185841429775912424603641348047347246146060737449150174750758008173545241421190544777874347623997134795434697345229123029807760742415632982862528222337686097366538789902775341925385263026035363418350862870226247438638887882221664816395599433280970041198831246674644469357611639090276018199545942461855776031689978757463319063497931393090219767604190922098872006652296864461159723781832675013547368203032018763476240724380187244444028808559003607005570873060950027039362433499737760513277442739524906852676726540452833786391659640361813830589460885856151298403645439755862932448274534691186880222126253392324420820784549296203986147639617587093733918511515493288914522696111642005261180323671550955375104062396457588203206185913224785780663728066995307945162099309436271723646392434901473810080311551337847653408484138378754654159055620494398563730484280304734132950424472443971796796317026085698276038543488017631491564592677978823970821043986950261972929068696211604716108748451616882359653301222532225289474648229689889979801087089706929912554867169544547189166090463033750762336702414107590201744594564526228727427330084825860956512527445310865041273386464192720447786167770635592281576901636844455237593100302117388642143015036123397164204006053776612635941620436527591415445209742654627541637609171895906575720369914270761895540977205982828903736592074377414144884573066865091247461636475254386947570161775482423275837872992053149644354153200100376719437803035836866756634321204335960445317155973421256762635132863825512866074471708952320837239444756153632374496200133027271687486252707385508279831737151531461519480688259133258761416473931400330860475958986731946850952135276555333477296086707606540242239900136282435595811418989583023494089869288510897075303592736827376739000447787584442978571640539960966174326920039715201385419624694244227869416579155154446513436758980920242215698072419905308340903593295830730647235872814046420265203297784973638340291957588024289814396782152403819666087023709789661446678707434210779850138813463550451440418250252028442720381791632679943813008201954907809008546818742889262086679506694813923545890122618879889213866337760602342269170615775553853150793564176240227166822808338701198726111254749996772065153949659173184948494641218928917857068884223715133028113474027350966016035975131793606514179811038587783396949783023786538476920607428760155159420363553340986482429919516074659883434249815926103028255776862560121320086374655658517046243752887141394276725852242985242487742535823957719664946285341691602965945656114954562066170034840984044971024953689844523437967104989754259761235142021103740087113720264845315783105803978347789806454344392034776248613540124223609512174513129252502542351802270680298488654712698193677280042071860079644597667573928619242347017937447575914285983669893119901712780151209806875616684486460765500451519391104835482387098067182685558624244172486515706226309529660915720700163160248116849801134847493926390113079359680011616806433421946485194713321897368314562085115197955367873958208242043399814174183911434661201883367085215170388530868372205244494120566265752548299676215075734872601087073832108640066276663452532083096155593576430127403781943055153059017240348869043217829593164397333296690339252835726687602997986833735793730502225370923818824234711050679704137573245466476359319205708537195220512285152361389680118533502557591861474130280463066109452308753698018451009299902059834801425269202086377667968054773498190374909206129020788590537444994975641581339163204501571507615302060735759973242761234485898362436551066426674549406382528029825415711838519914610889132516199989435484878274756171979814928640582212504344022751559943484149395344628197232853310600352296701468685804509226324515778741298127953480464396217273050268312081744368748710703536923273515803403012502695315274872016869234494930656137129564634841921671749238315229736861389022276691104202014238982256994136680095376592588035657325968364239449309801031273040643880668729697436331122200618098823936890856967306277351904573300352373690513983373369114528932434686114121832884750976198428343784119359710344685488193482208035033954234267564467867393178567731212243281511904011984220122149357591110735968310841684945890803271599565665911236304117094493485505162159113468654989273282756144239738265996915481888991823731935178037388985379944977435105582512503857574710422316396631749479075706540885513046447209940063248528072312273891230706040239487726564275287467561383119493656581221580777290448549540242385469466712878393101002389880231602507062688649305878404907384534588101945267183146319989069488013978810955611118335670642904035977713686491823347971224925709271905104624837721875678241263827475336055532769822943907774177799896041510303776727673216748682614619354035475575461116127527100268722941235750154013953803087876513239856048238603911335750148372002657157051311005833729010563003446849727607233088057653192534931466407511162647976771582384926719856954148736886567550500030569427096201065171105641818968928020226811120948189949731254551769810721873486694353111559206759529409225323889467644715005713928888296301629155418187700822458056401288018155677516317418389475994222873734160984530464426026864525697321602705916583127220364150795179723931806541277749927766581892126431186373673127208933513874670165759157092099812805204159537890765990360488741885518212279613552039018916554950285110709553800101030669928585271411419529486148652929133477521538629398262241184750474886622284479785671478251823100227024961616432211028468594893048759440916118817384198283669103463203690936605703553695812371817856791927436882081443965191304648574750610029807186852750190597825105353668154827676760480811536902866757498430185483308333239443613240422562043344488281809820835768754519753796990792716631318526657205819396688302480245630744465659800823009247224234084401483986701902102561390863598409682293957566345991599528557220302410017576700749042123133394486495245294065405138434566419910251782195849848659537307199932532307596225243501083666183205317711112505327461212471496215364082876547410648006243689136202018848634177074314877107936441754485530121731788569798329479693762908142284791368587520679217223097779960444018100027392327555648566138242354346334123974295982731626527537326235239507358918348691313159689538155217200228351339194153065824287837001082246422898712014227847171112973729976602757641421766656736562689330371160730389980225910661771708422564136556097792174113618318338172069986648679152621895033342321806978991818508111990049869971966039082521114087539503661233991782597642820132073712933590192013017323059791370367533017966074128293692281156939446895483645061433171579799059127855534949059969035158939714299618164362581286052131524789499537514911275947342643576884415323010782530457119130294969997056980630897065993119051682001166242073277741062892103993075871473827111885598901483499762696029026098999738406799136477972505679036399523659181894123109130017431452140133691654648926602949570850722009337658244306184322871019102331129190948994734451581375115167848931806974715168594275646302282298465007721538703827570380716502147409966723602455535295333445383313274411944082059457207075001670916826542379062365453100067711682532124110323741383778363020494805840329483730305901909430098905785338322116470849296060610271416657895062148706427389782634133064156833406266923165490661944590172131327751898754866591576247469798462798591940488368802173721894471637353969541629251654836820806373081288636417290402079215565507993035699342447413646890586172968874167549034757862017615634668729693603599907754094208956139121754818601503691784785043476680298966060989617473249226041617948348391533401141427027868491896963976785262623522103456014242058433077088649554463266250485063309520273842267853639022104774916534302331042957264604390356210919695133617746464592324267377551571564085498830826127182194272212171940108817985978588572252618841278145375925843477215661199639836231514898014815822020591044955647669836102312594580129948027128820501507038957459653273117231908472760381761201655731083097753720913011794840846948151380256507497400629675619861196815407991682073912474300685489733692730868223717816180912972378695308707141121296013820562377268785171891545464778796016598344502730075385304132197440091531383457649707615511401183841654324210632842141124606867563036620540961559462342272467203654329130229425720497931439419305447116171975225439618843634291901338583351545135756643287633315920393912704302033573313847485623217398062794269293615936114715879555769261374239192198479081596270742214265039238680088578951345521949218530169161319694762907192663046818349301617660364310421821179996726749904573433519751311041056506271570770433872397535656544553369383220545456983192050145669812271432569721326601231515000680667200787652949786703709622595301255136495154773075110717825662381334262318544556201519325221594224564714738601616818979752163031711961131482462567322218739938419045069504140065574763758081381204520877048926029462481906620332055816556851030224517747858594537278322530078461380203679859439990186174001131985439098696956850425625995825245871284663513453449391429381799608073274854808906088098029121554976787632214118477451298246092537679369313841660934352789814872792258485812646239520166716994288020488491732960672673669534854493578706377949614006122581007551167303466475309254237393323981758951790241700896953261530281597965882202069741266539313494696231781490483190547842323816529767600810703622726321119519899417901442517313246766537852091998507097549763588258118600138020627833651346700556149337842939191875497049454542834839679358202312883061888213789362612081391135255746899177315749464991040417820587685191751420816033088327030154289007712780817959332881623299437218882252111192556829343874184910453515692576334116735238450381592250392486978871182097101739336020314392952653228584562247467916452882167552369274314716220857154895523378257122636628930682738099897168211811369710083075591135515653029472163488356327490226826682031695536636930295245991978886274407835409599480424753935817895227997966861298074527010982970180034258242288204083429874292545550259675965038989407307573253926949325923089843632538862502726981894202839080420760826422802318212224504292690734640058807267760101582713716494612677655962796914363199394037977913218909948994336343494456061541852558017431788206241707165294105611751380693626793621437521424199721223327732456503307737279751639109819187562216120384745884012102216387665310380181010933990262392300870636396223977040719613048802861158389260680399390109106484032109137137974387505665996985799175015563589610154085729804690992609639351066454471019316581717581649914338963094188970751024896028896252079801939103747439377997942892756344547388534090199875190913796310942306823783103669074000093367432975865693639966260278989276611555210271410873787347050219824139407548060199844323379014576947959419429486665373932190686110252977324458511139720855506310405925670719808396223378255449594405503045857348410251044260404039730913394819456439650031305190034964776988571493874048452500846885473772336090115170851030015860466926309311671807454267924386651414034160673371944561166943860649798036742147032179472888544135932089017518781047629425635099549503779658210358678250603310403383861042000817271563359282822141692261950260361434763965011182269674433306127334190175940200156336716211895158134050086165546303656161303198118290251131519289446418266815540339461886737843107490887953408054516401660767028271242817420915308299257634143083962210767124301407716068691855115673847773210581850103289177121771558714711953258405956322654579513103042053695417717766624021824780538645850681329761678678157170939728857804146335989753936554487033416113480308367255005389481514985131074300027259120427834873050751585565179676833636775096824556421016940955542919737635784243567472526263417065231058059334168497465792659193426331033512885076001877550673835363662406914006452705550715847827894591689548192292368153413968028917553681148666173441755244567525067974734386818079134628171629517662256069866740380290509999058224242686294752654383215970692558777723543234633111515083974256739796648066850569619107358503199044513133499349083944340029683927812007356683751367741890569368200729380215894494388049257329003360011969271956065050686658393347408496115811100411207437318762953005480232908115022511246242983887325051647955838208917030115152143122214173516283162899129038693916480001009987770551956090922168490537303109406747881087682093260196415939519323486669869683083399358493061170638314992310256272576292656136822979211354928013565515886925425519931355432179183897794651373705374439369861227732757490211336205910465572225641369465106003830577814842252954372012337593621945071760388393235827050995301387557778212574155276461930923403041206813086737044761231739765884346890740272314536448072040135676490375078755534548181318364216281940922639602939777650930635987347595686556431200741444687828465773658689783075273246529177040306830017022421247180518767919721037896053861677129289825050099056487190710277149039988183496614265666061768293605503415845315015064701016856985649417720538328524342083625316186258617652692561907929839118123317911580964928422517959803060178781018398579539530598783362163643733615806504894191464904929740069498668442001647553202665759569418966781379281796608880304484303439751994861144303260305595026534197815126502210887160781786465874342161071138699846015790471195260178599006946287399339686571774812267812754173607275657465433228372924347563752154536481462719718595688363871277746170246813489426427523638377050956279742299653525318195522819048431014106884003766574777976771235214468845605367841281214200660398069056034370714629055299057987221920709933499598970785267763096879800766443756587397944749649585168433622011554643250515270050401397309967077528600309156010316860090192059556094960016247306750675123571634687833880245597317844967421683631355131860710856841290174238165434899231933373637351978294512259422885248725811424660221791159070280670542943130278282997144291946280604855662402834187790085187957075559693673353739033903843579754058032888028711830032426551086697230651014755557225306998434900812129935232006018614552934779219083465008015576361936469999306182202684587269706111135385344358449778068650845743137783619029823362074799554681544004073187621941974775586375931181036738271991983616714200971107318352869976227231789218772658588982720960807692326419342079313145102192440840312936799873822617575986545144786125010160250870253041980818950470264901327414645149103362990874414781472096477947190898832907174501581752727569655398982791148701692783454158731998128596735975916522559998023243906615805905926270372826283026407473856345475108477893629534584624524959577832928473345003856802359663216671892097082348008952788213122377710394611372272032920100813033129264179665564351130830760763122431879558812518351749680294821012022007052447836488729174962148394603555268884963296273162044067946424440447694880321311258321161542925974245055194221006649808373653064138189603292251354656540449955813139784922400953628926974095907417970306001699009910801367865457274666119933799378629744609308765467256359044603520320490833953278016988146974900458729476684467219265416846589544909747863743567079635083179048259158325625591303385932688652363073421572933646765307538347245416196310065483460401149084799058287970964788549839313046486658864164145222794746248623098164535068603129726168631857508551580348809550413585595808882777473209487565183745457267688762489523283590058278035784051515321047543362820820843372670977738403408559929719551999646900184135081123876666533784779835703174922238141369696849927320180073004136376372895855424683958490984962650266921071596384783807441600313159385256828464587478186559193408487748344616106173168847221491171020431199055372560878165941507224476247901832057497552168291091745408140830111193684807453190924518746710772532944141785476443867655656137527524823624472855276774009008232280957826927105780252150711873359445322083458980425221235302311000753705877739848529704649789521474652673692250837232385051457732210351342740601542165737100781687811228846918264408783960028400903986612376784257689359969353865589413009725833689233626741038050626751519433182362500328327175727055238311162416355951435286890590695538049401658741286009870352922706226172925742774175109670822225111278151949882282013427099702279698757299791907971526140183727170510863843839906667527974337775131685548533195481708942321233101622258991422887388158840911928422873687215063162373942047460487708027937883031293842138238223401771837033267175035839146764766645868489002259142290747400888422282916695877489047645419577734190680850128807786227604401523190513317947140418689555584693288797407334061484042188647053952726715613007839837936405324792613392034514325354033841297006323802643881644058513942000565847673270596671213704143709997053209785164758913631921930671258942909102415582247926507361389216608947413912703050174679373074633522252636331832634472158988003619260650066113213278890444765687773097831919080251125947609199445480733786207400002366498499446960792991894578435114394814418553567459733738589885287464294412156137299086732318680557811355467397217123259303345313988742332299836681073373707825095775631250936894982012199995242760642173326652917271558883134199477808366325789490286728131265528377993555951599655813273427207607513207245496322081102619908658606628526694948178828739468556780154546161109372359339194231690897773396878385465229548025154563915647974914748439072048811796207473300598775847631485805206915932404961833542554798533459046352374743985285272222397886045939910953650222834314151885562809343958165359486808095961009152244096978860579354912639961662750344431819833485051524294073631691199121471828495323963910271143806413449769773897463142725735857550368514912371303744700316097177391112972016773456909492706294401463614181436804750918672586709538706580975862366695180325998380100393821568628544321397747819755251562658888909387713660696544997562286497551049494903015041170998060638286866309303985445534495080407513880743077087167219931461426382085878188368079709420100761570504055312784006885011973883505914711135142362081739507087718360439355265528527178715953035711827555403335134111296022998727371471761583878489279016077818802074378618255582710925273383979035039927807911281635756979427645833439905086860702795962948214980824391068491448565537669620092478371572467058408101245435335392656585974047301657245887837889914611899542775766225020373701472740795815440826258469165438960879121413960044189834749619698792577833305191819577962741319559618672643480538179082011403290955197349852218340085810550683035444336977371665861342017397663636809497396964855415291999447142262365582052936221466686231442850744068388879576664144945991454475422230174751257191495119631833925098374143720330081059517398798662755273762033274719664166814786557170621951764746593435704446043290366939441999264562624565797431735709264222781297450313201313689609322781252634494489552850840912016797664165815786792106747854710544256766828991952785297453464938453031544608160049939444403342628119470866407672472465714150286709250706614745623193279212253480419386552606244085898971385790842801544069656101333405410521031692654024518080859498849632926793728718972390106134285315887311873402437414732885928878456504299398767526155493098047876474538204579187034457780813345014055243414527029509121800000518060229936667177285307614223943410460723287312354236739833151920043697060245786572580266452475506840802155923366194887913425172791200795498015587286509318079923830999729661080382270486202757855828434605100077816300789728657099190872446422821741590972047420671549501273263105419006479859713577709731207164529478531123396985682824930943698677450492572407585880015074993675559578896682756606208315368341661993525487316450916359118351197066054297720603132355921813507000504573592281720957414070879612337069794034678505674634494402497434438075462742154908564686401797370396824055454988402622076326953871034474727023767427047433748413736151331020407605731572825255320643317960043690874813094045975444962161498872812674100378659026500340743921676803221355667656103713020267819946807669164519693261442149822912059887924013071357383575911992044707444858062627987161114223574810631326066131205183816005492668687401916357018654429932214837530618027540935692858700164178110770012410600226005436511532742546141875113524943256802858227071547203430750992373912672796632451120516036992009557391185356211166239127512029320665912524359180958715038242091337182955477883078505089842168234628904578510144348938695171008156539530916736441296605493069861704704992014843159928994731723573510310735758293983828916905475773684292513398080012604875137754989384719047883128127248049718552533203689067170841640495330078007628684289594134008181463161607834520628556843138585804931471500058621302419323774346661103451213561735505103523117956418427076730084236368883308045810005089576186300634795311396871008498025378228111581245154798212135088510407234419816669783499826766240614265116221833459462672568926181603986395962271000306492976871194733818423769019403339134435743494843202274277024454396353772201914772150315953461012398966891774740121858168218627019060369546735581950356485033673164378061530490179782389524777455101163450823634928022172520591573056006482650519511259020731848343847217154064409408600278891009031668890578511509674286759048385417823471076819050254238821829371342433529841616066862130735877722652495309170137330237633966318557204007051275995586881433196073428149901473132488126555879393786497386443316927703561363164227085228390436004211584723408056100743246546354752422802681008974471588526107083571205515371522515854970671230042866564280682571063591714607360185703221897868422563383171095062031286593146974231476001005066138332740036178828074604542462921396365405766572596724963971584829951671114153022824602350879734237024592207850311218988714728411335209045074265972368753231238178038683142398741588049834506961255478352038875030049925641688075227724243453757524321383003085412411549889097174995042661946407262768090969252685277849998677493549915928012015869546031512371233536383242433782231226637374251802611346006677341914030668414578208692786250436003512460877835687167165657279611051103811019352646683404790657157119609389601987135614036781075019842812268091070481446467088143710126420310255322284054264814474426384748537222113659472592742500249526872467435224833459652418373846508907048645201732062935975469510004509730648719113614048494224313892270566623860613074385620685853237388998722875841763403619116257273683807407748029285015000035070269159402544404790894135964127996480444853425476752039906418485418772717883917900980343545562365430445885948509363277395023712910550691446089309637928659949623831891432624515833072664780374758000116413156320914854815572948689540897703144703403670249766094193333195188364313443614935437219544061524173371826730464698876527839439073207271674045101221708832584902525477846821110517843401396117145769521515664042504343126776848182107970120269958045799939098637402354865539018920947064083938825860303457729552989779384603084062522365564190719225769128502988336227887528690681041483891809356322714456361761311861711835068709683898285211327188858764242202615770024369762689978492393340292565993585725338964725701828995048417381048819055887569661595176536467350303703257408717850108528683174519168763614724307905772068067121045516120669567188387651325651685658949638938244991730375173275676850462926826245218643751471127893169791326262164763616048746938725490526109877030774237127542455536872680956277185829394484936865360532149354778461816804497936362489634690632259686586966385223653087080558530652556958110575225971118279934442021948819435544972448387745789020038316908463085227571998431423585394213943338138493625915044570646851386319255507819456409482901700888956926694189073272894545999672573487738133053131925396048185857870490881393498025860341522265782789908509342907359605170378559693180259942713696891723198770072651742735998520241638875331231349614201710184687672435624860443876271047773813441279225969603971381150236882621726089485595718355873203906161436614781432393343169780265663385660050960769771001616584497281105817926228624332060652968750447885878481519385000474850917471302658725316186515453603120974107748488688068963453419653580418800017424313147997437144375217184384876242234755603532313414761201507520704044389666323497257482418380192636069979102982618990810034138923287355981937218200390669416787459657299024855368325230436458594757156425736031824168903172701552073169811028051010287564374490989546544339361221113303942652033756608392958345235778529903204799235754216863774254337075851614844391117734091471227258978502914732844668521292306279848093087832936186163440245448920434936445057540742735221004289284774199032299206918882048566003488238354705822961934191574372335162976185946085395553499010531975750872593248075912103511034227342923087052144587033359821136861877154093919776556080491458355110185924077840556144057545428902479201953220581429308132969483160605759036693287273113949098844214637589908767054744256820326062997008678187716022664900466774408837393410918806644756200844653314332909509694417840720866230133300175305936306875725638823129230448260540001882349593114562789523827069235130222064912323282437630381743018324589099567501108715171352379479578696456847179162639648297381558821436745728418912753152199985001355640948473914725704490013196088032540843209530601894177705568834852635869258850391932000022600214519731755045857557023007397520573062945707531544295792437144062538407315012439359256726586826024641475808315620221219408728212202725733418757656914078006636189142258741986779933457528932466759896740128708416886385291866659482660544753560264298978044821076389966484776487588359563258138145391884961823758996228201943343035059390243360855992334385052843365410645719770301014544903751007956915334207720453553816360858086765428504843873850037413289485037862996170655634426021998884226862094426365742760012036078460521826156070533803441947796581628114793637234397802632846447701430822355752272752490464773338404639182147437261546532043736100717638225028781205059891063577422707926757886475055190774621330144798805091326598930327277364054135700323392541496798985746024826257043117112416571878871836661477275600311001695948208231613904001950906784752415790745314749993099059929676694851056388418216163449099340843339175009973892503112171969752803142664149768815814469236120613551530414985807466815387473405444281281862364797665454025555981801647052956000869591964036174206095967503718179492933820188811906582954289940626963930542037277366961466216298808398630883436522991246908320655879990097367356369706053865958119304121685725306598715658672311687998617191362407237695247349742646745594566096789486064185210217368954241708693926399873946924141592927708282235832121473755537165269541722944908847864535817206336300068729353238832021047300944356268312937594671455969814677005846867492468106917742510057040825527025786745733254973159148178973965183477135517413219916194943765602216376882447521314192437775467419234966942590017273910492779865222192408772345760693172190786633016863973549010826616394561109531093881165741485846388323613816660086068408754196335786397035003570010000584269857278692645069300142958885152659588963380529582015711892543351331945270197736702825263989212331095620817013057408387462607940014938866224361401226985319724483569716955297229712321297425285570124626119071279304718532032577772801870256979681056904088122414670021769515361593051907069230637561628064220789877231444603906343462078703655078080834233046224976462902899687678703658733427487305844255429916434326617851002351113561328366789025635680331048288804477730570698776773121085798844718022727187307434146382104258228997360363179519464098884033041979206560473780287025916124226670572737152225994112060314533062953646643404280376069090137778130548382310677159041752262569981737143096623554977055517071435960552459794945363543685022808683805607104696158527038146337403641199937128469108199710275817321488011509659929079658634949985795719582020406041944303356350236868306808532960420719919481714873454899195091047327457227834833324619590300537212772270659163922584548442772012784093983439457291146480895211711409921077342661854138901427198718589256469590142912773427363981302908555525377641901416850585033959037600101586632741715324026404814937590612886942926753583608386057889152304636518125076397645542566384305457330684408004629967014815603759432772976455320063059545144246327117126001461612931613691962593106416844789115635850225408027882710990746810034594280011181539164933719906594899862798862024649022047650337866047039914315185921883100018824732065695132968975996871830399912366043557437046370925021577991685283318876647760928789467395336909253355978048331046200077067324143710020123313669330299140130291461363149156615926118198458163462696763297770216359981235237261356391722615791411183225930161508226235294991582493065422840881962433343373084732845588377278494341844580272522840728813089752811454908704638772253207046159423107042921724245959522282533391179821015212821861204642381344805355693343733459158253182657228921785538397449960277439605873091026949789848914377483110381240362836030461112440157702678745168338845657513485103001578542718874195000953191293338446450858080015099485633166571251030014721600952066432131762876310527373085825764302405392173128706475207710636166140132154392250940366335590267119000152955988324652974537274459338077984207505455209797797942531901462838397310896580371690706269024135372461095174746010842470816842054123955662619423940882029298031233457991151751479561561208587031375664703597694987381729720872694702467393743755542433061268821013457833673665698660704811017872946547575337341281468420113913854697911041367240243906544152132047922842140737105587071512190309116376921783578697686607795936124993447966198790270773556437864013047763374717684779748347061598775130066831480073737208778991428988062422996618679022589940497813382982962587842681292569756657268269750295156601144780319568324046275931485363176432127838126858337769189082841262910358907076417244556777496979396661361296451208422819650845846803200173267862118794222605688498730345341449845974573397158284287194814870702177335389922376731504618159190659394454298790175809092873871682833946649815715791563869083261839492623045972673207824557541949079521222413348670890081297325262746901129613550243758459394831551375969002539442226273418509976364788326709486433289022454141240705894835253885468912610150562875473907375209346050890011616035794059253375984702910879064586499692358794181055725307593685878038639133979182971168970581330204998282191675504998594994706442863115527516624149277790255040533509135568506718289890754802409608436259683956069983008453954604729603112277513732749102048198244834382204667049973707785814398092273225545521438204206684630545391261806951471933259915829279269923158744672100469359762634569209656676746794677529523532662422806405931735927686771650176881480711482654729862827383906570743333527453784247494619980674385793105090160620154944282330059764276878803902895300856113202962302732018425373392569230061153396533865445379300331297507464869785274974810273144474603057402171213950420043364957532932089566070250399643392462173025086939262503142744091122774663915798668708046674026377412439199816863677785043372904670072324576843045818148619979189969064515649392453428836188226372047671080015498150316841443174777721493126092075794858317251569583605191295092439107886367697418665862634405702391625443427318683692748810647124613193191652588524458320491224080765889318259956860906346631789437894674169256663298716053142100012720679569837085448547546663429863471132331078956055435299802383138383165935336694914606970198455529463010052064404334545470158948196330665538594600863068931999548905864344682283430095894799655361696386264894054749667159457275875792597528746810982512646041215569308847735386620221857759536048413355970599241569034273606974086898900859083743521178373646113452739485472652347567286780508836757044869733784795296379125196404394941889058393389045248168656745093602478307642127327681220648312146426051181808731529481783236242775575209207358742048472157463723964568881846741659687163594398575123527665399207903400560605529874815746119047540734478450251554552415427952473616279448994161868085643162069110755374634592074560818489994186430596342883245302634028693987895200560042033020635303177442986718792299845335138127633528797085820920587242917248549578037614223696907205177588819314520203334558701017132748722918926905769376850002518401858842259096043247523684296331338763838173249773176074418483498437627328596597997788837977491676573336031270007664366853616047537350107755972254739469988821587756337782832481900732581910799288559330453415710424954693384920194848965449513280850213485158614538602835697680527137785273694928828286409204027506905295954886139781185866353095226787835850903389034626591365986991530619047707744369374243399974953778781483817694050328502358506460260215581344711068432970241275166574506814118259602469467961869577419293209635503178140801775014982747982277260560584716272823822966131506411317764742610866845823214396490107932650667648541437854605438113215604197581411734869911990200898755342233251413365236325271740935695121276600240206585627059742441671514659740965810038354617584888404384441674181198670038019967293972218903457729417334092203709542433367910990191404186480644348130452379947884224882367284828017934254830966562537795317322452142980365401588212068277955514834702037152086190613931562428152638384734405205509818325385155087332448894983845578261451388645485994206343214534861357975213666259122196477821044580999413110800645989277015372768184992413973739905794882508673337409877655205311089910482825564552113983820400018684068502400133661302856177730475940733010547233721766170882214214698212609950183309627987714906805639082240343975049610313846848045759320539049955513738539913839683535877323435201608593247089441200088889363955119953433622863498849744985743356860937657044055450892591239932292280734854795193565710136310559783326531335205792342411919134261672913610070818145659850701384020197512626562510677306193499550965119343907361049792302797098227725825207823072772805805471554502283555649793359020920723351945946745148714799421511609818591048418360152607422198920057950345346900941639540902926149479602096598458953637639199422317389667032866331300124538101033258808820143092429025777581529830142221103223171091681556955032119762362153953486905426506939240693602517272214258351649114466488971122225682087773589117422441721904843555297988511553552717557141175863041683934717196320658494950440457215540152573083259511506002821819603105851012507179031902166018331532076476472982757928138895400791767297932050753124802563913408065862842224273086822554273905088851739758780986512127388106888092405602728498317568348882423437111227762982513831610297241491886584582881920501901354481680001111972688101836172783047135405811561938001769985418912195025492509716263347676515282781648158909547126665671274457505046888230983701373067281862982074375163824853557310904448198057513006233858947663727085951558149386796126459258379299168447228627044540493371852822166110710960846452086635970628578146003671313460540092088340237153959315721768173306487271792861352486836432845838829949342488166578205304411058945761877536965448458777112621953526879406354527812468914083672254602373481769398257546571712401391807137517808574221229943358702035122320132177725261855823759934975847018929973026414019453419983539695408197569529136301477852606178968200423943163636556220117915923015499779036819699324814350111209482078139367657655483246496970284729667317862931347291876959522663164451531191117283607965213801673596083095406647681801426017668671886621038851675489270073478727392883960335618452071298760764718151530984325857115629479448981397052490013991507454652652238987727596423095943497306098993062365848194304549414029065481783607907562710796047210126083283194465027065723045743554706526856296383212121488817804857453419193632666130714838068065511811543974915295059432368284869751288235186833988446823529264206199048542194094366842231030651135022003712078812839842493346229942952978415089613662828702433993094355568471352281553886304730810389391261231057600042978195656398521926664837612441585954298777518562102904895553818717354326764053738126549525675393382128028047021393899926968935658139798116838060823191787317658640898537457293297631768626589499613073140158949056806180247536538163489319934606981992731006396166590723595673041011156153393241444272308585678645787849056513348059966263101191043696934266070383797717776228481637133169981772763888634247705666273008112385098883371126669848431459407271468825737635114025354773243726676363177316450177488059088596953657760170552286943907639544488394009333825611154295513330351296553664046740631632740667032403450686451993785474678518494913868081888061743219771569256582469042587510080012639623052034651389120469626055659218628704130403631443764519640633159924274283042909628193299026606566258191396959902751491912168915002929408272718729169968817507484770178912116226663067921964140197515199280126732510474868338053279029299420932476406167361986977833614739689834752154415875890758869073644992240555358372405406994360541235546695257717937399704580866383317996077609625324216470941738326954093356233081867663740003573596683234780394326808935000611992549432195474249751750782373266145184303328736529224692730880625638111655770581219813474314277721086979950315685915337396582850905655683537614888445225605505295133446168646086998773813456918743540920119838573692236655760530628576943530624720435201370072951074549392667926654378811397775708845280144683766331935039512540826853230747297880174887132148331335195091164209759398699960746783771982538996184523977320432743571541303158208657804283042472980644777677439993821747328955762426659233109390552926996914098249940438167476319880355443199121997323830544989582641727929083634882266750189668436477410500739911498926725993087028648487224922504345665464438372907629876339218669915110489948445539944232882793522468939338828577595849932400094041892615669503621872151782928691071467936661788095758450573997476292577005326138672125345226421248119470584245251507476745227825348419235523295973889218439104528386731849802204558920609924804189337807235212792028316398299281819984078915309910196443210083692069059982248860891082194627180934066338346912906074228518213097157644974438057507594689316194915610888617865538134429910732042647221943972545712062189852278372310210407531864975640529658063063014193979417391639530742684140126602537568759287316015313299924939575495050786733481631480726693055842194139177373503838838353846246054703836698901746609874434102744607520399998790054417518891357937811850876287995844694260794849730515625863003156911549851275338761098666998194864412587891648464236330655272994747001194636405339011691074138732589328277956399720312476151998549164462431675875320530080929361436511354985246135058062291274011249476472809171975764780271198077011618689860715959114299159675122777929440068504611797061999433413144153326113769175308630327997268786332107816214053039598328238504042390972623488810351384693812911393799673631755067832591418401757509844520280033639338198399902468257297863249799752025181147290015205008744457058130917048536289494357379985896686705121181766829956598612959977101738402183774340550368448841160885161336055992009536704843606394703733765477952695898582195499808117684978492597738983054067108210709810112496755397491068833565821351562269332932096162546992153360196562228541754393182783305639251208611405811650288400462144557045892045287502140630523718837301162496232597515132519716037979045847673140912305090395983560486409807858030228000838981894981494812060864351833346886152036476639951963013749993340304704535259238982169935459917340267783250003734812938958506479826719661329310042208629100216225832030958383516965006685299767000100905478143768515540061923038909195390446399110371197357406955106266039493883743624628451887615525798874477172366782401591711532340379627841306986740301534653309708698550648695470272349502473630641112407384415543024014396981590776019246400746494642329583279923603846764139594679384519159012281165480661424768863469003826184254798047889157418212193493587762343576131301264942852306919661718339056189606970200887582130783620446938470463646843215755548195809295239071803855045956721308188490799417425116927215266621200300133776816045754607211453631849612184825953930274962823066688454491680633813989910349016071956758725100088836061899607094385810992437608702305147353745039296757557551748989797237681607848796517968595747546093922056007972294836920084909374388250737988578202161925501731485379869216610358725754454647377752982074726875224116776761697235638296054694971521329397081785430748311018753974924308191296099605760591019711497614743070051474530020369338142407391322584016768600442603735432809111302062670016454591577101629760116785305459304488679248734764253151047920923738121051008148955326409785205656556727446052091371123083313082614755522146763861336961581507130729380309706584357617000605639799900273512683535860199834099444987389316381186727698607298533466974790584249366610315033296685282760434158249610000060212936136012951672609005783036581419542296376304761998929506314471544254953228224921159924470743533604653542517524326234192444129481017357733903210496777829919110135710389615011821923078091232949606264645466744246335696901509124213588241635318453787894678670485743381422671944074835734981048933372793662193460293798731713431290116378125757027845625117102952134705522586660863289189667139369261149815838342920633132721674283778309349231025375596355901332593844223881673811052964946402123408236134516926567144571209810693513342968007409408647806893393682848968828939290095223284065649040558988692668908951568352145838339635468760273466289661162496306232851128117919783772661529291124922120302146986050153633960317699382236282364824533544219804709863269391857492562382434443277876051104557576989051994024972710908622732837234500737479493432082250580038846985007418981878586061410785460915998593357372499027090113215354866813142494546119320389820229993520023763160631378957831852208330440734605462138823651537905051120896594739295675080497692574369843307984879308622782481620691269967630666831138957746665997217799196346425025170424390829621332736860868333947749137586780038610616037472967059680903432570367175448391280424026970193860246570205093077588351057803550422461013020408339057499555483921304760790327677818376395167968821764401160258267939356863127073403082379367233697443934917457592063508512115826842677735056149654805755022972478485675570295847376619800243664988446461403953423435136118924910913963833113048006098818850955447606350673391828200136292285974352081981635840895064035883465355482212004229679682404673029046213409966105779502206466402994314237646395610481628825151434135625700497994287747379509803359719518238581768740441636924535956283571340784455344595449370906698503712177395858099154001999003974414815383939531467362467649741315754616796653194620310195108397210374171666541205859801590298127818527381266930577356985962543942195177390544853363625771531069563929266569175072158030589491945517833150586649447972644455564701133258662259443144060939027205245327285636260449643490540307793318913813515192464907396667827014934976355253200279005817019297279462076537500584706667767636132988458732510996191749966823911506542575877703045021008790964207088729924420016008134617973729960497984891585928384910205535015475555198119488263200949387647080410060035589366813930327469676502783879542437723940159217362124687763026983611806737680845276247402192916618751646081348764283665225921226643624534467744733250204486147493908777950093488563472261820133172492088823267969684225936363235997319633490762558915140202141700598113097678968292872077869441524454722505375463512730430748336461581566662668630990649306854714226976793389417631441615075636657508379198005439340895415568784935513673302884580117981471208900054933210325828179456233580727799364664379413273617205255036689750386249267010662686449517677518209501964657144577757200937494301576719293789907630720899029088203291247710012786780131298976775574981499860145769250620166612748404909745675289790172046541341479772932436275649594044380136594700115237628846615199488930972918997281874393468804073138814654920542435178841936745926660557321433927388017526460466932113145957734962363887654976194411724060588634789674039809227528044512290826676162887869634855357164897258136717173858474625858503660694513631459296691507442603671140714249933384559956981683395998195068543419643710693809028244190641294283710686773935763652398375360148899752714470492198586085201739913886163786143346964759089050075941133483377352241167673938909428229541385770504523884328418030220847344426043943690138243275689547549004004638746193457092248847215574380064243502624271860285433482264928311247782612301884975535745323897727279355998274062431757859967356529917200415484244611337805175180866668311895790733254960874729326353981478774181415449939936506626716703324438765005064246216317001462816282927840124127642751143464607558458253321598085960731000152549637729281575465399622870321262164376658847586543292657229570900671119787100523555887655685297343537759548316292759924598383050404627725132579329636557944209005507137626030849365381066957216174185134707824309916215820896571840653186776204284490170390216072659476937371338032474983806597073599210822508898717205315158970601403614602660264362996205091901870007292770107220699043059788409056935006260808128409514446449067224820681164414387623219934176609038326554226094840285419456318920312776606052871267409668165651384227583673489390973016181737931981820148034868373299895513736190930963982453578677778159760388931033383374125152742481071248426615656995940072195481311888473803155583782886022896796991609517432165212651039937277504778883866218733043930975296363300610823152500489125665591814646168229551423540319921390776889615020558467735795231740714599727194196307651443036052698632983103403263632558293750637623255736317349076254756722266212831497813095682034551620504695609763393816589416668935982831558234236198418265898335704403988038672320703035783748548620925765557282209789375118099531624040391047860237603605829929897784487810824975200456911700916872628685499734176493408152189278805430863463840066069226845313838606734813697554546761752423286216336971414247205838300200492031590154561531878060073151778676597810048469760029498684015839946130119034538883974193111341016907103390402029441961576149501464230515207692091422535652088694023518100207126778729514521212919854815505220271134425082345797836976430245195588441695386435439792696322030729920481800256501530488749006605718998565703258911802197166869547062272710340128051713758083014326085585096063660024453833512808460792789411491395933956520664675762430704200218433030480055587536678482005165636309023469617234116122680992664559522434936268825677763167845735492667993930266951201499053521161844013384296231586658639329521670007334634374522253494494319901848032828003081688284118242728017023631453040275949360372187279885171067753177247506135973757134172126127694464131736436764953994634933992277438613816880218375687922110841577875387456542498033398558118804320124024389253282309122836005408116079109296765111030854364548745866073672479442435842860446700252718086810439624289011554709502450218922309132759842653852573598973292148509764671129755914229270216770075649878176071112445020620486770821423614691152835109692372301910671205470380202838410731131288028365154876479554276365931432427268581973498083353182510640200307893648248206530210475765010797652923040580453211700766700534445629718596727672054136098398689946762971466675187530730790836262135866082714023417179749242141198232164425642526821219441023204436362553719784672458034630044607709389377032845581244280475022506277788807558857842546047545965619269239069820333936994108009377219077076636128298998242846462461715464482069186302922112720363224427753158305545788864537439071179739910960926338480634558240723794449504819630299135432880073849828471982569004660850979290313362377326099473597357775392754522636729499792456300413412487853611992122369813257866383151356540995029502968741146227415722874351587291827640006827179024143172774697263147236060225869845662770922184520478159471915261765690590589875606895227712035213057827771821406103571156464160739961642661767731797653679809588275619403581907716197397850968956555912313492943766114683057557348635134390945708694066153918603065487047147611502226402856440272907700053949749710838240610774954223924206837949917183069347644644076280741123826197940486588517774676719260207003777822043861986272886409219686180720267301857872772065188189264546415735559851253173837667050909138122605660820254342444192489705776017751659216037984741376104840010964727640308085037021190687660473126746694031677145516417825981273476835573595651674910040475529679000858647048341579110671450090181835161046492808031802616452332167101138004473518609886847400356551507261100888363904459531285710826098722552458544118990972684342736630845468544172177423381663355607971345227837015046477215900152735859144761256215677856106958722105225275207697717372640205064513280245615095059141457743263582386855836740614300475087718108625531303517784968686416304489780947512515392800744549251506480420668241190373511875559054367787829347671152017557525776387070871883044408299868407142466709389612556097111532925390506645910965932012579425967958158156097699726743274408467899515467865630659825771735586152733301023862261660681113193633927341830652916671628044282969047583956151507327385315815743033008852423344067015440752404681645101407662711158001633983578140082823495899688689235491545056434486205780002628417051789491611614715160914426789768339176162446163791636501590598770330172397276278489963325109642701832928644283692287457155683356158057031373487307498718365589186045237730129745709550706404090258280836503933698149161439418816362362776283961304334210191980511236874076443586108249437311317694615993076061641868923306996236602232538492609132853887428247301027839645231573393130085750400926656137053240773590806337321130887550607677689467852874129490067143318790029624408777422776509984739988766867527540874837397877566215187365868749703128478052329032172417967662208269803707688406732121320273330549186491649912504489732414284771750283475221229203851628698219619845701220208900894572900220794801575539079305720341350635739003124162651562395475820859546839693482218413395666729141050612259948296352309500214929086636761671014802641846936449883111946780071303866642423372314373964756228129110804243868622114600159756481522334120777260442731000561661180189121099216351044674056918866959077573829546480717725068871561658604425661918101839893665525792156300169861146946771980907022635052132897400464326811123208416250729465376082415752882954196920905124112269735628297457439440619561905759619757167112252868730794110260931962165718956998057976374392359078739033523064622795572245753726963643373476989300706830099176742688717975533932487965141258864981414561411315260890200896169100939251582073269216120724227211567789863113458866465679377015900630351437912259769359156800598241458494082387651496106371195445627116470754964534791786177843649304508666464316291441817983706114618246435319429028177398487201493723857976613659884327537503065349398730768011001130321069727115384087218159838524135514565516418485260272567706013336439646387553306300025884197537203740227243186347100474115707559889618954378591263303149082267003327990063378339089592456169975503557336230478747045694102473790209979157198516426130622189092225675409795065184121534316905594796903602596655430748390028535566012984589202290233380989138067588638454346757552015056809213305327115128969501574603068470056115918309456340899491337807177578585905028828227210363869378084194536836304893439121991623115626019830720045477306805556491889669488008421204380608323941854863457410535309869169658749339101655842144616758012128359915247131830726963835474375516034787095601958815104846732007966618333763229056723443946806691670106142056793252835633518675753739803837064653542805818462644559640385068973847947783328988804449508464918588241281303145233548949891765669264245262555179533447238542923087077391736559097565213789397724058881746674924453304436869842524803942689921552456038347027928507258660694934251478206353750211052107945087523249332576580081072963146980098050777989151002660212206277874269321913098994923827664928531699239239758465672118043411992161712326418129050996063421844677346413311117904203632430864472882701371452025310017674920845359132356420819647911365333661699857366149036113851851891628016799531553221194124201814463480749522533982082466095123800792753000696975613711746808289396251476764252053957243261157985065397075185851698486108911046758272987011701439203499323962420244889066044699729440769406932367946927779538962858244349811193074221923279168525575991644296325077033630101845406875428380630214564495912036973425581174586952079507668908087003932718474533373135196748695232801707400866100360325326631960296287876037016484875002223614958356861292975583753040392804676222145557591522742455728102500017937163557981129739449839811602544253542085138742269035672002608000382109278853597703341030352810166813415012176888947697231270472640174008559394709125200661548663678315311059175441342911354903920528670508137831993956946292549275877170502024217755527100607656477619417628502556389270617149297384738128666402506252573480043004691573260120961428650990343421799608682480761298744796634820007923379103654154310510559659820494062824117763793529101716874673000610359806701001657025714597122520861523292754387243556990024526269749632615835086530650010164584061862621525598568411904761891478789776533409951966619949733670656677821534594839208458873526344521809279012104368218943513197833248612767435651232838329855800509377461570468559722800242156847884723242577182454866192719576523540966830842750516135883633689549420415244111923793337248338905536182047995634103664763418546693991274880746642620101232380434012755009409854649561501255939635614159144558262297715859573659697658650696592031944732680701754634245579878186780761067372948917766411030135982568734316716727499600318204236949977976971763171414773903646732231287275790087909385068666754507546242790807176800618403042924512196159624624616587590943347225121755553365904713879247021644640225479029821856781623768073088244120260147524851345909417199438841776219814142582872001790859568912482221815823145442057825621177207307114608535764243082720147500346980272137687001721262176302602831307659229214731518141169393282039484979889683852655234601277047826304753660041099823197875712887254044784857629096608359446492372115086152927752307278745245450543550419102722698165900749214194495721567890720288713151810965790801785075499022805523751039658485393907126438764495994184257007496978479220770599560726013300066485303305070132014677141947796805133081255067285627109079167375251428326018983543384719283690095237300382731198544280900185763417895506249272304737768834204017469514728786937093513552584293625372652075875967490446609321945862107388197777919486795156781089301741608628960473018518270006924804545577494709379946204317222755711692852403155035276778096758492726619088068902762341373648376537152313161592665116546845292372667092326056989894162645336580352593949933117603838800705610003175382324512365510860784841056085204198574207337392848423732907118719213699852469713710306810790106678649017732282953304933185726478866417116405938861331403498864723704908040584055334217326890640820706616579244114215211529602411250315206105145411336677958574335175281796100544080804237836722966710636863687645643490695599278161315857471350658626639130019848915188691958384062905294506426321137610927181423220095659188397283915617173530327700977877076992803629184560753696409507008242522059042218145573367183600101562273387478542105786129692615402633644606931816434428629601169811586159405894280886186247484588930137553682437703186830827350294516359662125473844232191044706462054910272241006894556256217192654996234655656538806091953181874777455640453605090764226444592725787943245097023258809853604385458289164463253245563901081398425765780195562325635915560216179899232312995737318672149549760783588869419529360224576609918913598950623421574196926330001465629143361917577962487129243296557907712152137673841524884925896105148088492805454152411140594645130529304485341776525698865300826020963770933573499809728622288900025386849816533758976139262340356722340072650808386771679616222043610056767119407023666680258114167777426339204912698156920279129268103624081171952110930983751657211141847723123587562089200154697333759513966074317378480079292192471798473437517896086440841345619903693869448239425642536759919252932219385425492992152167654511026074655459936071644641895600684602956666895668600206997555144317309692531475494395589140913962717079900043423976832356836249350334395412112023321704600226740356361279899670925580673703463725272067200121861363331199880485177743549167599728643442813843191613842150094659854529188945814474027890855137193769203163817140983154016345626555455740480607601641104032309536251317789182153675080288561738611779843429717251852975438754416994408956809090934237697445917008506866362002923237798135959155457946226365002911471856710108687201801539759153891340547020662008583850807333835707741356597288375110051068541651717764950585390879010149724185747312466775404361920987695764997572840087749165057508283259406711435505982495306082140780907514575109035741635298720437255104155177033485805149712362018224764060633316685592788404444109185313311036408162232996763743600691746886104715955527783448913229764555101247654764127711542204797027928215167836577553692622949991894472849330439117023325084945985669904182520346202162178731708282417244159199172765502563967460241100563688758922804233865688357304903465374755266999474346901877636580672570310089769003074239981413718480013253477643960017425301436365402070657107187216653437556848085217916767246858572021185803759381007099127838104642213051702431901556814805209072132010703815685364932399731042447387391681624309182967153500040313747054477705542724107512041943827258716591825125649702705156488974636610162681027377433884440080077752235605924233396044861383269269548473871945846811871197659011723748893396533507932402161261718828655604968513258580488123268744454953752101338814857090865842646830244938699201320112159571897661854817350810630486055503881142046873603561174760595892005489689457696623195565093369870293394156453075427297219365256885998727841740673603970458515913559443506741428717374448915940330258231117633831471496075859983140764011543285437374709878569333386206805189816210673214075273162210563207716883618548912554951956343860816630523968350826290909918894394109343017305018839757844811792719622908014972795888557321430998507069364254863718265521844915149877756651946306731323958628276726558070330800555517860230571895274858067781112648657579071419019184176795218194119843410293414739741394742996365635883152992783469444971191718544184510758028714021124003639710642265081758866580731338600424644652347567978075368514035722188471073361535492947786140050669529657398181351243100225445135817311918509373411775854886112093013641493478849855778629721742378865187653055385797526319032178338132847068310474924246546990852639087678373439740295143106269713392182157641342802229845100594103829162605454030008843925116274562252252018431490859634374220352112623253814134291774899445969578985566221493163607530723213703505716345249064305517716474336754703544758792845416379877673763580312207075444621033964306860460617554725714300004641705535442513606157285798998475698326133866762553770959970899528915620090713456255103266464779311630920829492072235972776414762312736412455880881763993299809536965664661168608685064274921523942279785817607682121288284622365094199249169898392588411590587572012569623454487695728566240356778805103015958833630009298380250550503318114851970418523522527476100773358182685410263546139825181812110232192938216514859953683032822788407449764239175776863415657406237905185888338153418928711812384159538194872406075431778795702358661796531683956230097955356382939562338851711348744076595140214384513496292631846299035673958206980262615898184146103569522373723831388090475072212673860405584077022530755010518925812933714528941352000532382443994467080352087912271019600811554390787173081835546042094728195871386318198702217422437857916686467911457013079542721190284840978374259775390911891584360658147455888857439457372217958844193129585826050505097464446698706598132345731299124580749568032520946317206539240778693288671183544342666043458843630554525547503848702251438537159775134040875512034034462686440077222597843047388342478717357304923387728881703043909578008414959200735996606172187303319974657738958558464063254797590756942909751414593805437802058322577656233135199075919453821178331962581501308080451629118343156636116709601152942335605300068287448010454513095706878387177883598275068096776217870393796584297405099571188426936736944239952935457424095520029560278399130058255881824613475317290453143352538291827599747384008180857485055211869330902977416559825923997666846035978840665538656320390608735544884137136100881924053235859053753074428656063763492953526787666843064575942991102921366877641247932711992529142916506337098680745495847508624300855208792123198336896559529924424605553763475742419192070407818628816083121842783330019736108809145194382132090567262106540175411979350589206385354513355480254008456267849692550414654739879898290225415273544372455767620079214457162095039718307715643910813360217236510240798080934062493622535723931545364950535692500287663313407404888493706839803079375242544359787805272915577930335469853886178005423621886884335566184741352026826741654931668920729147059312800574002411477102406277085030243459895123447430075951667295325867766120457821496872015874390204356180391716477636516064748350111124139834059069312246974492172770454551395650177225372324417291759323350115590577778718745457936017768127331701037857830277444432963298371174229265004284840727289896243376138573351391501793690660048968728765385252551789554099405068373155822072661222473563207827006899394222679924850135364211775605157589888990091900061226876739095765265263283485123984989812278276320789979227118026257428090363567802196141589813867389038101284837705954524117788965136669559285109354884499276799915480133866903711025269496894560815200507525874886372305290793741891003946126282128811706264168225181369934321828362242043531724497275505763414507162037070075019483707701166199231189268452947261648074560376375851330062869925944047705073305242353287510004775678021776651330592087037533300569649568314274907217589309923446805225081147605733725783173705194534888563749119938006557463506804389944075635420540833100824512907124771007114592499850550634394617258036963594896654033596069220793097023999368165986379800763634830347320720484821195928516262488174268938565250133350329212122706521993356950064919271006006342015770864479511649775167454271142320347107433886028375231541312585698281172910034888010390594967208110340154397907880462747948135928622864384096112015006131825474431644794993283872502891224111003329637585488580511539497214397239832651629694359762434156786875846865867146575151248152239252543182692153408696252415665363086316405375097046804829185837349299768723785177169600904774967314198898044255845119686387780171639308285857663412859421453393721296500008590938431886884223711989521337019168593653847373251351095830552182874905300894096839985950163440747361396841787857962038809627009394016536862885697879274179187662199198683052456375854635455234962768076901466873535029234382759313047693749933468928010443576661520860693881936679940473223554320319752209859600858475053681938817071321262394458174844966154220606526076707424480591114359636561086106918458948949170977117839324099180248238635528961584431005065191533684645878582460660528505563101643942932165353947155322278504445833454545113706149380056167797323797536045494702233694680759230540737095819709759008473787870525197585999880771494280007407367530691152366355534959405647874856590615188275426030604701873750417846045805040837232761270740536281339082332665341047443299481303459793067074160097995609383336591997641529286172234417381981721380441783948559930393282366584302362616770006219245681428973202689380968960950204509068600877690804584950832822847558727957804972650555522184812529163424562396464799826559458836416908741775933545196816904286147159034835892206797712731584780985041280153007693241267764599322335005878847995362420835982936605059375873691404939400475734854152402853954491178803513754629473604087361654180389734799977385814000226564547099719163481956496777562541045495719368501396515226472417633992057915665611605541783502052871708984023573845828435436347942773974001260163916933572510711349326268902046881083389983942194371982443784432865091651850918143059757543938099906237052315018199348837402215806131376061852929871597121361470342135486290736473366844432133957564542539622293442141985483927779450417799818579856932308115170277450592881308848655362845720972181215185571814351818360301883161824845952464571697701555239851701954294348923213522011429453128035808555348346902884654160325547218119377059513320550382280510954484910637405419284023371157300737286982788198686111197679599609929797738869262292513086860238402547849007559234944816902527249287062780351389574234648609426619034346969705770258010583231972063929864065431522401705078860746608044473435616181287967125793642214424935398829557775779180599776302944293897587723734190247575987088324903341403016696212390108698729715424554050070587793030890859516089659399216125795184500404713134552829985314614463331497654407253647717083513383966138669837671220220243014192629411558752790282145120008170839147821999690586530039117343137171657675707611582523973403737120589676388339782831774762310593912340881674085723822759820797500096713068838025385201188664605980647378820036471888803315677826598116380431889252138712289160596886975004581004312865162717836203639455436391348915498541745109213844557144743804662884743389134354632827821867814862041127171061416149041875311145866149395767971332272890820239236450539269814308693856225936151712641071971754219828660984294850303979664973462661907024859818895205045159773417741641861735782352133716269763004610788437100917540929698234416468772871312954309571131995163511708943923023379580603026488070177368306379031321393163251470486169075058776853936642722625014204083359646728540709818245321563696492215764255193552239060044955332146950411314918706587103506530651619710267053092651260626563766892656268921029877369652537057498188190815181088370891308509704242354502494287293504791975178271856654636171870575718864023363104631021447612761469838392409663886491548353615728879632793191121806165996615833187330658745955469237720716367490720492687807901122194416996106158183911598715122770977722737187375409902667000718840052731544753969328477360118966355752902177609021788349220475493040509464875675807061244731019842002135328826981633310840202041939888958948284656963450214768134119399502678838587188295660884783286209706318282010756512125745263341718807302215067421650367441972834520258786146627105426022952408628408520741580528708836119144612120412839313945920566083500647605714252489920859852703676395577426883382119156338728411509830675799338324506185679015846583351640678947810052255420179958850498948770024632602348191348036994376151951123768751632895318561742675176804173657575799986666460909941606134185113150856205957376378006154619627654568357664924437285563979140519931591650700909400375328199144105863168074965768913747198729172351278533050752122201005572571441861616931408998257612019080152613252057417989956206938086450193546538076515104809384338624808930120314041634168101469367923759531671536221389415278530918499942945035523435810027986844275800142424740506415900969974060909305387274171774114107548118337504624856164778509668198554317380757181227428464283818416956649236076493726893398575920242937713560155796025154371774845241723001713525930034282594070191763043720607492561240605207273436289001977273643043981136025442243188685255231137977278819292438521599844599689390517180842810727107788780131748657805233674274235836415072556206911910559728544605652133984358870187712573180244250448737645655355520647763269421518343304496036714412098654486216262443768791045085978948645080004123610560656568098716617503681007940199798722858053785675778541327394402035038711606942764559019576478926873510004580862697676497542572666229328867644904433462914483892460433552148800016302668342943924086487311907661591396468999237155130756481223373840737305529246357943679041013983753309709953225719938667251758565535250817242886790165179956495117729623582574247110768340972928002496177438152254106536327174635575885326615312813662358939166424061878720848449087271243500256542220369717538681906939833006272013708755177385075407983888553955666153469896198047948662768407353996680175593820214937646772698582335620937671182741758672787240305462465483418200941980917336249306873656874337765501268685741564348821209438534932212026896764454417482080759395622621255416032458725906565467583992464379576154959378625823307872381655463621472840063465299631535624728572862144316042346134806785721432652927610956606867969698507915654609032854377149203527633704107115620670085668821309057594332349077703969602187428255090752833764471622177841975234282178113701089843340847395751024037682581856465137245581355527131374700568828685960587056775765495702508376133525919016473730408567667801851856552161241151843153383317816878994514684703660611929696043900428989852100808879477718445837793428770930940348665380304980127834942649365104270379624633453246076324113287741964664774692555196447606167747144732683479982581991984833180246661999767559695980612331590769959770033913928959803874014095924559101662302694023487023583363399579229717796927886537360994210249763981779314456960108846564918878916249549485989221774371440540508690961099140920030856102257851421419758454000191780134993573754068724699172965426354135824904973360111791025195776108817414811819477227651527168361078737644082658532144675396857927713062574596197769639322025143894463753846856101776445071667481528666108181711653816350437154064732817080263544935578891403886314225656313687030921929046397263273516731802662670820821108802821006698333687805542739586100439707922610670874040312694234088369622481765511105796875396218415966775260996883904757934525914506208971488033660587604826416518130906468517197540077946255859599923139624382390093464860091801487851076336098842503541791082808323828343681300943085586914196903722637311005349372932605290866708791026887912609774955391076949264189504536070735007993508726381303149670888173218996648859522109246931023334956107678184257493329254965628097007091270503449420470748480611263072495043432297479027749515760602185840893072453991918099991953537943279015306309313483559111044309621592302343716967944699908200111782075497261887571573706381827977648237174094540214119592895413686694707067540064930003458648512932083431563137941748299336254667612375443424613994094390276207987449479743880276533219727423046942439827866746618721331400002532010359238521033573611650700006421246119042026288850784129023269808471365194245541404347666165357046449109916369726321037084127751845672577089219088124490622719289859834472425423943396636810377966377279514099362593743012245964943353204349125185300894882424372185891513322563858130384115254238566548169691609763843632225628714747179304684511109338872888387406864806028714344611967556504356294102944311275943212793959227526901379989745319720573375014621824598604834770769810399243507448351949083425411478128776226743448136073829865032428124709038487797078480493735313636657413558998733296714659377119230329721397258857588897884057630392162439225855635922469920522267080249050279209452252907786779171033804809530363517386515206822174477479484220127181720024299918083524231907724591067335576114521086951954593355544510495483820074862526515693728491030573974348273089426325611689849147489602201310595112381700355873377433696515561441627027662472253131688595535754949377929402286084103324178147746175437344652933220769910025145061808989522516593837227743821209220036193411262004209377570290079818417032654157216337576101640656059547106361805520014524375669522756466496829489565366359128538381904265212131097496702268798894415185645006366070378205595730040411202250189005087461250253791869982875209679493176381846140634895273011307280136211236580597619983299606239455408429678409560067193270125566633476423077839736688206310457070622403471898046044065640761630081157420429385207522878929982129874355248935140590771720290949298394000830633925614120101391463154056324440163863138685014157588090408385369677464708487572595569474269445876568936538372482895744155094548403297114853140905327265276559275120506147149442830402631420537630404945237744179313641895325854080153341966060130488827026446070648048418410195340180476577079333998746163557716871982465881772939685216329042101107381119826619106442509157659669222768040014594014442255480230478065630598517206609346920179765786421958954030817234581198887032928362978679844199986654200522706381749780712240467739148911547928237071550536655943507270584879675576473040079625218877643614260752960586450151760201210761160950222106284867988928488315215687725488811716883981064361709041938469290802000358426225605961165997449378138382586212307990290924364212095135039572628994169529911640034328139263719849241248768071780389418504639964075892342609909407133074306036884495269086998908751659528157421043576534388659323220186421313530257277252134108499458925270322289511479938570967224534544288437403203923144537246891749683618763753795104949996417133225552876837989233640967404326198005801164101681336437440709820943863198838483934846693190401145836521313843239328204621380442407403497541151458863944454802936363026016632238741776828446366417381252455061500849716870319218231062516412177920451346387824559301914590957137519332002521222702502569052436254637503683284568091613466349739093717872934493809841342356474569512121693000269735772362261899175413864891104934727793107674945536219019663847822023067647331610391860081947577619264178352119879549027813289688962267471808633281030810737516880450219264098225071717563954659811906151108289704767553861745826627182945080621393342571634077288579385209967121593300631316902754553578652967278059488491554258056385522973578131631315405786162265991613845328871155489678324343508494556911154693293400633744638937662217993238342076687789880125458138076498785911275841611289852842816975606703181202556115096950798999049850443127373529425373419024486029934637121772335836498213263962627256727383492304544422125028301868641799836747879954783214846188060010268289574923952284919744651836405497288219033170410052723474427879351767387454800773941083719999484169835865424484719326130705212632377372123830685030637288746572067466024385075147929299765199800773636682603505865516288442013858581191080277837806889852249897445824345594344324833376992811871723616124885659496629896771626612262504493048504097015824409573110297276644509601762329625992671958353698396167289930155117341020578657894332648670135771712276875735620667347533551726897516351050389478918038190871458043177824224828573694473755236866432594223234285857598643034523534513451357107637441967230572990115071291888527714008058399439151493867366721329797557571401896096752320939275880138656304827747943707888587268722882098692091385206825382339236455394248112810056508051662464096184557549020919569252876044961280226140517072527204534027378649351852546976723423609272299263886846607030181384722779951932552710700227630520478843649252513985228839259746156610713801699084169988477384328568307665244148234094490488655076727176424185675491192335744698363813822852236992016421122797728698134889201487585132288463108028768192259456653545515138378489004561741004768399718223126803835879079873164830101597043044852723692774195008167429425125905769216362344940820434365873880369847756285790485350148163203717606279077062550785006123016298400458589465638481417597667071918443180614755643605758752736007104317965754513803041254694564737148510584955346199637041067809579223733455753075869132929968712405459377217420898297438702137248137675314657583059205922084989233242184084738896460205417316904349791479592716282146310265667114095608402790045035427782604746998432211187078182472194744390848451737199567317557986715182614198164168996515009529285677513992462370270349587651180685590353335155107848512445749512000682908620890489004391025774440730783753649676414261983210145969068295185529255544703243960311202719658157055916559003662528284203356914404693872908166831783203469959977467951531582912216768021663015352082509853106551952016403855727625567416483291325964709503454880941088893409349473296242790714074821462460937910208142050143677622139479619197265829478692528443996364695646678918162615967556935054624440797875000565540427144169377339430031749986184594631673494594544155418875158519614936979641994549399961928391068847477869153948197139312187359758027198500878174585236340794968666223928683364967701151994180143318881460139557542711769828626600132263083138372532257624682598101445065727700182244123670989467394923434881320920594085949415912684305092558987889616585564372266910253458445896527249371243318143205306060129717620479066347694273701824369876797376313664496263370262138746345242918648024518531775060516563560982389361982094341600368125217865919435552384996308078529261821631928572270010499879627575213365583178337590636565725310899524222315200685263871244562061362158230635807679174858583209718024042343679111265087219198608134777960871466525028689437930931741750603003178154216297791038996792877630444701694561355440799516629049799542524249664391104267833133114411611206017046436754108458890958439862524200535250754485188486864154173806365138175908599342052348534205267744821250820448342820428729362065540950047423945125291176576353022251975563462431969347021633025563819448639112996793698583033128759758643068818669567504268833100285401139326364407929791495220281733306618555398594240500007741836124740411480480212330300307780754356289383317604996369596405141530192379768282905515174338550473635744999271473781073272667657332793850141917553086810321083006968003425128577851262492732616313394476872830783517485296996094528439230641508111953456012471092587930810063159071226071227072233795572056925660817991483655195004830219711641136138941658664937054244866901269010919863178034439281030931978687009415655340202479195479387624963981604445282879047149878610407850173217842530090206053435377940348445672323655171969882333935435114189201605940421647706475245107567224925060927523066137943468823074933095443814439760487598153953267163546648648862455540938544597006633606115659565551847335292843319631662867038112966442255778905497184900214104291234988601173609598702872571579027742050193664943930341662369549397743706434778613341582890674493468061894363264328707484659237244212873867617481048744540849926287814761578556588121120884188982727522825900601960238717368880317543121810507016004491132767412808228284528197729025817109176139757586602186132365977009166116984165752853261716476519684687880855183119454153695426229119780387715628529654661568133731653796571104752143317278521855936198137085045172831641136102372036512821910617963275439305463154088978223278825175114438858725895130078785070138210707405030110422759853777771623731559456028070537402445321861307591032555704892189642690824178699647608776736128388083935975136644228438912254269054041992022039890784855831765831541611442509073855394670800837532024597311417259848161999842130617849701569725924068306610546999598918840660419354718221688912741058841413075743598062892931546210921472402476945638674711797107625142209171364412930312777466662065127695339620677658364607932804057934595965498033489205305830747237756559312219682543218854983837801674782647688978188330776151564070328092591877755467355944301064465898819525910713159696051771296798448058547073671398440860486970724662396432961588517672799727143378135385738324331526770868367940481576821713511217151262166485892878212504850238103093162073540010633744932173524277130072450385925923201892144966152568891960530122489308157836108632222865780007459810234625874916543790335912880714739825112206124309191224371555669417727661546327373058347168054548329644252766362298181317229881088069073941210500691639615983412901566290780681323128563883028624876145011015966255869438235439650339034876038042691162960428842706755161964671018807327069829512606822015983224229609046896431623292419360412408471538284046050053387358809155438894071753812351400363579188636966527356639987306842599731151596622324427793431142613463397570437691672092499597269962936897908340359893433464870883679708967361608911067781402793738136140321261569820232599270530943438372155449265846981794217648255824392249097001009415346341995674441103518673653459129843928823767657090611139908715894895494266793716181979604796535286552380054626713458981734616081275133782264505768638507369876911854228529572934784861588244191985665651241330909364300830951655743662909159385541563066518534471667456388571832863422437122247779872665521782023620952120061434471170624885930301607156661941293017013972741994329825362075138341787605088631138741147897296462368982714288951801867020941205197490336623171367485797859752765889564712234245625545041632102112825895003653894471548925676101406598109443891467683042775957487551431327957402893476164379999889376266973049441083736902121498824216282139374383537999272898407758910049589181364190901041397007840808796381186381458498239339390697613211999994661079772690461020923205074594957494536439348083019445146959831590609867596073003070375892813433653668527564862899554748345031626281464491928009948272342029467213711519172087337583573390980035048634519044912448760813259241655751839569730235965106236708061220225576278828806418937089685938196380649595677085576791981236029640215300241121215104119780832535320925854768872656376977977741927690619786409779309999385651508370783709378569233910426782306164149090870779215900846375077538068552215130588865760276177618336223428731435595326320649213603027569364673898797063348994999400201175894776849678827613800283748479914293210033264633292514189356440577733019258614801145681978637078602096767220249160086648055884125127438630017683058469218152618132189087349386155349314273447133060181702107922188058487488793505394436632849550126148929825600377565729918211025164547379009331286726552180936291002732802727953170962422966322503444576309084016334664686679282285909630223778688953964608820683082976057273311579712561042659295199195771765708165361852501799523319173180896638239362599135751966093747170368117432186532901543555770711505714620790284812868059563762814930055315721458902942457850933461723729028711011736850289246460217786317634055928369276581665082583890338749140771032352596773430156229849907315501732567191091503609383850852926739329371523910645269766721111294798162532206610741089564639953099724159802701614941163124933598492069970989120375848000915013968811450384167903094351787018615383511055900705892581605742670546358831622481447313784400509453285819789268574549892510252857750706407408738269405520384112365340495797523687652798832468643845325980173140756924996517816473868048897302352816871481370554527506413098419754851442835976218791114989634067674962100068146183516570030576921725560092193341433917720671855884742558121684623458234165897772379591810234031172334733467362326912413648710523346633559448778274804686375766254676146761154839259468805463319287291568860520350727732083470732919172323315228274692309854419350420667535677389855315882254138217054829601109936739960426643405906939848649847990742020161868658588145290117793402200238455262980929038550506853982563251041637239566902500004951949632600710940435350470548676855839912249949159260750973306571337877752064054059177836582960694713534408558454933754890366615409017750012574703216621807999611891644046298689381483612775722922060098959364974192743262419519616881991532174726708782874070057040386964042645753320249339555866303322643659525565274848709737869617561462637259380006937158144544592291436095786743350241609220262533559279767136203499384968808673485146443600526731023890718652612959914945915938308193202190702239520090107689827173443845556618536802238769838360824167509026971757090514082323481538366881028965766613867541873214650866050259817195066283481204541127252495692032343125274671199337674552120525770702291420077686207434005378797714213615370190526739842914316813419388931369230103294298334992704704991765393082648221726524953267542069901022769501716798971043003485883067268501702095008909837401334833599725808261679633151520106296763105242297611243709291068408264831340840821022157356053839544464819099708976844207302752860312481474539276979722062899477324143092745855165751747041973826956300774192816116058041720967852749519475346146982868608822022516162474103765182358292354034227546722170454142989542944396982445285474964696856868102715382889966565479336780912246753023480183693253717714070724463048071905533751191494872024519761369522462249077794763961744833275818965815599535932360213657444107439698337345949711654216578594675379545584503338619445541806316313762727910195818576740203645866233705180781139258979057229282625305184832304625544175532486653681140196511264173872513709229442594393141572902115020563986379383672971679229695924297265946639023311168920833707878746724929082394045334793231117733386479037949522338360349875490928288720518089674664281259476371894795977281344212396469387068927137412597764762189758394851911543591038638951294928416890058938767021305724705041410826156105318577714205691219084095311359877204016006129150869754863636886920604154846320986860868626819872163440666768705405820028671475085218484754472339549464219775510174652857035978732563056824502295974350830789682100085924807113116405793911641017465414975619298332914356938353397817532270203133450204757720588987193863652775685559689982806249544670931654999120361108442043043029394144522289620557010039921824920645096646145699281868258375950239531013419300490605643874303160207728909074403265541258023699431819752968435349467031189545822183176585433752494455163054548214573399580592428776496104689595788679822030986693795154705421532117261323821408495645186753965946571388588333447336756944911183185747607634970165150792590661330290925053533902825642767471999140476302504875319599216443666726591595033120642338126427216186836540273807986267581416452047331507155728362550183833228529602691581070305775126706664142548043295431881382764694912981576335275649216522462742655473012700402745217090153792585121806744803063225661825387381214477799013375212496655350699655478224904722176237811822456464278563120037256596107762154754652183433042466939624180441426366859839199007141008957655368922907575901885097523959836380728194762194827473166972091940690348036536779470063782247093812643933380396890710232119162607130259569964504189877897280455582622840365772341400373164895467062508367818201905795336935802050449808712048489187603697321770758233212145817525018457471969104651887620803748863032046383609993474816153827610512242494512617100900620104389145779602853628492717028845516034095420730487682838605391230146120222655003909197339431984979010969840313856253912223085565133035597997669852715010485128618065221320590037349003521441865028165997047214478019024358735650408197775931672112574088515710192870693782165814576495967666613375435086634150991370516379327581185629920323944203465323149334369888182824597260768727599964045402800087300521211658982939373075969106420416891224194529785855594930302652638495892522215126931311588633087294043816527133742976051345240102667527522064266703951306041558516019792461415538668263523758592811418400845574973016790174964285857660781307758641227198044877789012875958342446154919710462085735401470924453750375479666541022607588582825943576324254433062892968522835356007836878659722602877693894529495268056679322008618586036045360119682692169782466478267517985729736944240796310922301388210083069877792638565406691569828398107335121656218755601943075080947744493793493908215429805884582642357621643138838845576449183411519245458151075126383987033757583635962541905361410236860641300377203407361018079842606356175025710502490859190900711913017212899897650431267922943554924968671750050854693624185888045759166736840339671192881823418992642851316720324891604894814530589587457175778333717978984321678510941129442266141864312476562447139092526341072961071817698921246096738653317705647950088813926902977638038990758226513877889746855766544799079196834323454221808518561340144919854024510738796681906283418651795189953903888825604197984912338887665745337576769167165038970146823854115979873511612698405712705873822181185275152523969595187120621294510279056584021833407456980969130437076211456003129062725162359372797447555955610030851122085215909021672461681662963781548387300532498268908451931907614762225638739528278101107429450659510092205766761870872972634097786270872756295328308040313103872230464420669487202368934445059877612954539103914880021099878592337469076536727465179605142935429717468006975934085712342861246175644103019566610319519984509696721168138943284538078870569509129484018282235662630896723692554810273743983707518042483331562137617998841133706165428582737767279557489996733164881147187913250657012456167214513777279409299200749080968087309830906204377301042197040464951348105155254879264887600254776618397805285082488289204957666656929597427789311263780038960188792911324519319153342792002228951438342069075300826937408000723911857558715396646918163201860335977563721782081636823067285575669055033931463580649194509277346100935829189059537226973835433427845829929296922085973547824759322665738339881545156081944594033306965708770096988417305937585186939613867782643372278951572606039886244116331711976293024832922458670657275436858521737206541440637413036205738689004444738027626249398753514431899587629020664690046268790175197282075746100603659097831136640532184826097884979572528041706838210456863878137074984139666690533907561788231404184056503814438256658044180066774300204061817797544472299888933382633163839760303829327559424268255415029030226750972566810894051380230693594161240862909468214723160695713298976521464228979249258702053614072041590064441543696481857874136292023974277246222405077953754092731010733647165684904209523993025903690684719694816564580849446912900275396193723492312270668475307732242456093748506598540514296249697787286423490693723699061154277961702493700283567545605642271751875208735596681507579071049370153884348075567383468893178146584705036669147830704908010576726849810317870622899090361854312102237471662944789532323136113814944073620568271928271466175089295420717032055786585463226825114570534597004037050081000719899406772457173813271866983225924064421391803060032871370910577008812076384378768271396196810898098798384409549023497986589445923353009658815319955767790946194607782453023297967400621543556047720640723602285835136713408133548264695720414988538369884876844617470406918654034574215065126930738779490127542615830641522147047799191570626909065741854922048957167935764882915300976025987150241044667709462423873586009449373020551176480148648544504290413459102738532023491943923255133129376233995792676025761342527288829022740327513183782785078059483196781185658628945464194291096809896660905345538339129718520055725970644846646162743922099150792907328536284345896263744509439665118473826548584085657956472009419464147682960931203572940353788148548699065459605051625620746160060081083791821649002654620266222032431311514694615110405666146075933812043542690784776761394477420453959432831021379135259272417822827417611299039140595191109972276104472149740670438732709167271494667847755939553716112144839675787686788661199432623585721834573373449337387665899840154014435813763545368038802624136168531383073472674567529330017972845241031188593949562957234142129732916260385589048732166141854018378715155715355110147970959387897073754237189659091433111288952494428202183391446062602774035800287261789790249647301458668460702292676343046094176262947795141012882368968147619250544738292767661677672494082432621058286890702064206396866230409171314235301143084188251558783184299142547680503256891221443108547177616862084258536667234213535857910382343220384793584984490011014547002703614250249653885014038626688194416229553785137391059374325614553131755034032835674391404431771100549243529977115213496855541063208633108731308512896600085792379578813889620115068973087151473448260963019334296293201063188964436186025447932947303628786269965509244367632536849970337622427805238431788680703601450266415395370053497372374776703271193331475476773787507862558610684752020587823635828070962022027939446733434509537488409915927808402844755793042629428480073482910119614614559664175546572505908321469829141900864138371458305369086324260326097679764827111775969936150481717057636507949742982976102750569650858096177740182560764139682392641652991936867376931701644809508662416686784970323025642234889929685040521116430828253093490323632072623803923285741019145506597758606757308888136633690078532282618935317136419746025630258029792902564548946178886340546588695210692239855236525299734654059956508980067602991456451308493805894513129226694253966748792821525019773638377714412225845818125629417288154259909534414038077031389873581204095770666713983005878224154803208738196362023795274864642412864851405862990907712351246839433429143339083723526010239576433425457584190693992714788265340867396946428606458123265347636182650474656631190816700820829897502024933367700481276175387804798786924823721910351790577736424328254678417762167853449856184940982575196514170625594025210442216523373812790251668175562373457425692279137799130556915481450844672152754116874954444987584686695471206107353882183793281328941230040174016655053254404928301005287352202473907771512122648829632942118436862063782227822872675587164949721411524067023839038184966532154356618308570070766910121370196718258563591828950161828349643072042534144119293920446272636603231846844054643756199831829102920477587814561026931360733681365226850216055984253305334712861254221971813830721805518145860975385311341906105798377520721124854007264983126125015762456642753600693510835184047573105036572523062344647805101649839286726339661606858168268382347864685444042024458807238038917009910953672780038373053481635682620583878146784819548404524456455968639488426229776466232148820056709263015248010871090083030575826932865242921698350176170222724097674066385244954558577597695556389575760951569601649535308565690908485923849419572541536481481749256473225261492826176881426446357366914416217023143174375235178216772578802428988885446000999843552478769027580145060726194618801368301138937925854546863447991265980691905763725383595985415821469420476560374814395518988271414454192164916320174557209814139784348835164858227833852570829882872508056563642608936991279084661857996413081108395185314588344451395763557226195827008567278006679522659685728938137929414932924380714311071731327737705863464171116158279262728226190083847771335792516756945603863625017526954516925477366419385597005738576238344288095249362136847820204355757271031901202001064536462689108702016596882874202033404150518635155224481115533094705972407091721573699107580822290393754080930994516572768000470564512075960592849884388436816195353051465865649687140396034566285770274210769175156169445571703787413725792113979346802911589536308451684166656015399841952784629093771695645149496895460581746095708972156197334720790207472299161214838016399899521276774396988672317438231737761718303837486397616114436053253003473625942892461707418025015201900188360815391864346632157763821778486928394437057951164625180420577634791533445304449046456246012942711032816378837276901031460739613174365595459179460569536441583702030625891857497788744006068912815987431230494609836070860264974238442916214213157130660922645226164403483746089696466759711777560292579369405939924428954856027619082939461750493003461903973569663393159446709124494757910215905469973870634612788559842908845323890511065037737025349685565241670760683426815600518437738112350876248464026952769153681736794150484930061748990264900359412157676727681353393131744420191578095587566993878939763726784128800969444443308751897136742909549039561426744364856034890528288395966837215955070635311117889082276166083338833775621033896495828502597421534536316167820048242232039610212369052099735516677056755891342865315846823016661367362993991069654166008038174855282303436667040947710315622585505474113226819059810655870820979765067647768215103006891680584501580772261037292920383016211573141482539932069724112914555064934235424299594419351514502289931729073254077520679052051190455194550162834477315773992637681655427044332392862612848840824822164609166626049194450950460424776535171835211432631806230508309880790171440175695743919260059898214559231652570334610997865328873075766908513851141900283769181253270621495790796405585608877520840968446485675931005461426791498956493228375579956077764526449385912225165994796735606685271081677891185645318992261038695893252343722414247518268119349608928744133708532064082929491119560747837152314512233063672975049421480848815919265566415057657965774440548345504173494599241052611952387662801320336884721201810399910243629225217178322738789411872395525371171029124067397055216957607058101498988809148125027908955079408857375950280372732174673331564545807469354163360293054529439605894664116741413385739501623860860052126322794887815539251748208635197328337564938056082957276334537686304038183732341977311980497275196475114103407480475228068705728812999634416455895076071299378755529624627213204316547119158808381232123760018849541125007963411100472999124388011079245487840783306794058273091142174078742516404503217057083548057493095669989329205617940126143662731003076300597122620800836417390857830966938916164428260959825276047025273244080520905559029244854934295545984909701559818327857455081519874130346311691178257107773017410050052999193494709540543730603532740554478049618914291976285330880362683024127437901394148615705776997355976920877054027624245524366106486384059741848051676213299347520412903088236878300882666604007333279425311612853156231379945631886611365604549379358367652004700306465082589789717885449414261665247685752965869320647851088536068874720885600260654242874017410136009065088726402348480228464137933228745839605149828944584641422461620158120806836212612837147861552192712217252650526493435761546610558665369876507465938713014837988463455928445581689030316976992540737879625636421701635062911738865207399951517170094429720438373342951840421686281735314225438672297651621481260569458152402607212068162513663050397764363535606011476934294828666050552633945282159392234732909560926012075850180124097635733290814247308078043131027181038113359449241394194620187126313542987000765794749943136680543390741276917952462387488433255905374570971435211060124373160366517605597801911054352468328829111853933219298663987844346984692148857396675350042204947918597817020463440654904086999374246719419534816979810337240597822537750334439776488443785948409680291333608322223306582275528443854330053077328383045160575189814878169405055598252333742611045160523520102257654497788251324519184556214746485512147961333990643243797391514400298065435276546381233107553997392227925538136595111194089612755223754530918491502628805950772428876857919768302756639564889122344729183066462947393368493738345554498855442010740961434914900658480171119281851318015808534003377215728905387611323754816291410242459908979263657428741500395567990848550160969331968302289867076901680727490429216269938101849024701785483086668693601036889501619086583403928334402386009701474723179032537657208846608459341152414763472342871602696115036016811262303699928535333410317614730406657841535566141418869929671388796032150684999956050759510886555250404352262572134898834148095455252768480188072130613827610112440040817087851365672309588036840257151343146694608856750150615778992648117185809432282021675443042323293038027881038682495484319902683119360117083651999500253931342471883960805114427647736999779653112908727471887796546030154491857871929158054122562896517334897847389073693384060715616364185728070889604881400882631826935128987328425623395780911913870563165339510307567104418702084209092698473392669175508169240079448950964515173321383160949379622801714578462808743383392361927330119453668046023819052096421312142623855394892572024539408464355214504054294940816975098508535700014300126658198334092820832194502780160254703587183124788076920558474718593156072984001858743389838022092289350877750848283847103123961177316754512923175586984437673984520645904182527473569678221014797250926686678569308284577073417589707934304933958441427971357724485835787413904792756725597016401861927818476682774665071352558224358433201067013187681816227644842846825462874325438516449260560626737527254810196509386979436592445870890179888503516712372057817326364789551247116451475674323315553575316095576963497429703920829339315700611128587595161469586669009487367573114949786632666137838045373629069332476976242973156263410227474877828634629700931075341921401537852907496132167492021191498280327854822986742149766182769021171850033613207029401257072533578821737520009835985059500680447536275622499016350920040369237751265571095248024455301284865953642951321149589715539786322552483965892589961382587694409757749638512368000476014454973069860571755466244390969712307030213392425819990542864631365281386023717993846649233483071299999689247761911587693058602056485757627091629779285404187264998171753728082027733395350595170294667045097064195633305420730406249430052839397451691157399619649669131148399855281868289407123776218238746154433791781291516749928703291335238747304955377833941671101414957565572258448253924810222597200213599125942072553000890474423796412007854933235060436453542867457043414950249697639149326361874948785423293708797692545859576831960823722507896493698892124629171456631498157387356529679867350941327283884931213532430919549956715932118030160476882210454113054349486057955780599672855776649085579870218923647985687131010244384999527855433925549298302913921006450311070195490982296467447302714604839862000417177171976204417549001370254208095045412990958735433594821417653763665783498037137964844713281004847073695429556081306151926545416654825864344598235989241049561950723733614346217774455838430609917598131636123119229279543708026013894595357110457582508478627742924076828909313447979609308395457298182472646256365752676532118746430405531638730884992419347019817774266841302272652626999526177933750922275888420424350751341234031036231742254457978824105852059815567864397592810159809931806934644597118976908215408489082878547940427664420774514955273128518196639105607453757533449151685821926533766685082694981836110199722069145853261588118556227879082798742770436464251415553155894912477764687114580264122612376047157755944281365405416228932750642995965032871370282867803788460763842496332442327300049764797325622660799723918628597848296250573928265694186546970702966297708432183778212036656237189091289580373835635243323716359845486388497057053722620145513377199876509417993510031385902257727104120743707259757946680647622402436355802364796036344183602633389497233103567321044577549355942603585034541105188102873102034633406919888055954382081473844270617296418096297117784998481741286193466730912557788400014302604430148025376645657747477795219530025539423375843796943740298978223834404076088033712907032881096439601662959386590030714771923547746090270526038511881171467954499679399547143599589022714866786337321725859624979909485651997724176894797690003476459408747591282338712668023258130752668672114793900853880182061366568571318720328537841513671162609937805601802453171274293563205774268708701146020500619343748631538246509171549730257721430607396566131168628115879032589730710439778929928437260584498890109190025846859342609669926697063217363634734117273115842175737547483040697624091413446532067046728347670632945473546692265632422571744255328621915884630339203792711294822054587971148609438613017564951903444218995930882690707031071479654634794690537422159558594511881793528387711131111349163196693852521186121358858015098851529642665161953282858028072335560046495511862539796054325259295600386396517888255594030199616588717976056011433604799351359843528281914635993391943799676378400056785114762243346415787714601189806826141171927988035488820007714883571191157642768618031724659268733822735488082494497291443859076362986658927633473965093363460242454236025615342636394127690214368718971449363737012843151517006252939867042421919611902065529852270662317335472376028563841112885372342600669873210795733482445538375495466638823015059453320571050728822209115197094563813421907546583359648573762006686457087911303885655182472575256655478991561294868415189199693775625461044933632845650798389369718382433758526590606109426882146435559952798313872907775621839553224278542456232087099063161943130879306285681657012235547497065112594677441313024629659133058188182764898902405297666439869085220750394544869820992032620757023876809346337146345731913414785772745321961587108818418287820300672245003372032235653042501822151692069266359042109180451860194902644740354688181972513225193056286790898554569494733045810005445852598470655057483575951744135856182581865837828581262670663506820448603487533843147979730925165292189648444294005377587464181574014320008875819921099896076012628776616007645539972767268050787530678886985677602023949837252733370588633932286558087413033621795066315571582009726399675618109075415517197856985365085821082402243825884633486087978186519813408644033487793137284376109408305938541322878447412598095437067720388854856171735285468806914842132322426751704749299261482202350120305290292706168103638143056208283859112591309633123832024238048545086966614599895016031924160897161970318920128449932698942313413181664081558179551859506930396014590398148004046004084548767770159142881026706295532905561211195053384449321398248749184080270591179196921216375453240873840625579930784068621975696594444950951181309773425196126696413908784109111563628841816258999901606072488444946693266523519272160781568876726160603751699513385058993152249246571601278579949688458844402962578140890239762667367951354951294425480532526179523655085688588874316690439788867139438099586993058424394275121974201611519716920139566998128983740544731423850280641472606034838422508803843257958983331126403074685326029684963415998207115071374187317115796695656488205301682075868951179639197167721090329358292550269267921743631388551147091348640596465756902386498314292190762968449366404211362079676678052448560311237114125598470887782953038676909745129126018132481021754885467784746974342322713592122531065842341266762754510658127239238770485065116911790939469379163566485172581838440428268071311450503811465200719007147867797896802209211712224630245779586746312858673481274664331192544273563384825873527592546986770015347750226256302820847133274365891390432774896688019068409374896666076179213351067719000153276944063565513700829282532436189642042106179055134722019591899248411652074341381358969026147051304355221851307117493894212382043964959877388836031514044058475676673682468891645750623118918370386337507175564421278233857327816354220391045400938380957981821865624093544377185914801024704347907772867323873225090065669226553664829789689400688582618568300780682111402661049801882247004234947807848430410797773912022652939245797335579429224188406788224231973324187173730551489248164641989168903321242975023348911488930403551887152651713821247340593061609121378576598437605239743708386474460386032926336835525015999878038791156288628898154410304512389274782971188231104688028676755406421204726013442300531911974765349947235924892935409835258349669792874295247727817700341213698067620364043397872090582611864342605785842223913402328359460478227913621417359336614118298515885939497543459628538620083248619107439605901612246941247300626438477081227569422143577762563704823114042200588323513381914215227107195745550782162745498164468308260999317666165581305473998910108082344885672662848795550070104953194656957150615777887818739239225038176487966899930350550025492285454262484647872561157244111419199867442544900085903415984372627656634512932373593193234118792622787997618460686544052866273651252648350521807862532145763251506910807386382667935587553309616968401108099729004368629558356607501306099621541788683075861122716222052493637556294023113213384684887616844660879471659232429450039095714298601872581260042049914343649676563011671704618544894915149813023798649093697978607948798757035470341957329211171962502145683293753129589929869588768252894468875880747853298545336297818970687213538982293471290008983300951633547446927078857975438548788312350001910499436153274500336362711042299744972047890290000970548903335164767876580157862769624328621259908320854897144711378948545467118812306247810490850837358799370798673683338350916449945542993271832437928924834104441832158478542880007170315917056635511260578652563880560291541061052515111566968453601037806755124578051492212674382240209362830803167631890296957502637763279072869566157875058311170287727938567642282024561437530865440988018280665710891790458156974581003706422632760563830314757094470053159060648548448342111491143098005236269218334806972781132060251170383196964464691727065402560273186395311745473089904684395899686630100623161968861504569641585109626842783835985077269518797214642527898213986825325805536450237507752200749749867824586663112581063466768116826494283244808146737947422403129524857152011057304952873181467332888980731008128341103450098905200763947216313209808905715055942339004553940295474784582117637410850951197930639101471681315868832231308845537367194916764105593930820159128544086800497285854228459503085529015088628010933652600140149540564818271848055348786359498212247133280115655017341792766412306313330392177309862539951340254391907780716689668257200910707442747341017470361056955364294302603704988061952150137541811818516039991416154850609003906776173219671485416796593245955647007030019777345982582658593173152404684449207526596776594878081216077809924003383044045723775320570601305513192523145046067757797776229949744865077427109473231236063217704510942519539754566613385286962585534648125900112315077400284236570686605435978586006625993240499444416215471115161279401173769402155994369005595819581427913159580784863169877199992725953436585475960662054208778856032492544874955240206608175651127348722337728140873997997424410027011591925420443135731425221247455029497735793307845435951692396557840836681933764972821622827412664337311937314797790639296208737553928159260171496641211871104834946707125210545343141078033279037758701537314352266896061655372284945636677639721765672801293453516892075729067271007061356775626213393258839899321000410009362982616989149450649918219639803884564841751971902031253701231535239747275038742282906256339947696293806913203980756872550021387081380821034917798410644113515980105311528163358408269063903971309454676351278249447799843433898502443692143578104192251016861478726697951684234345953664539415569280042726111645868286652213712795489467649108726723183544420107999233168357638080628958720370317637761147535788447554315341951153184221543437973344791630486287799826562569471003763146786227731107869035427040036508972685923716899347439090313722989251941917186918171373815983218288815271820315423688923470070196508560519396054229519896999163410353580606655855738607977861332641626282863423738013938097716173259102211442112185537433718642744820672154586711722963049968571399353278910794739366565840590517387126220789738434711052391555821273024613169254545063434480308590992691273287407911057275144399962059365454272532364274355631296817956934309320568990289146420119099351935478518774000074819817272997890080129545245418117916377042251751456998280594385604558626542716856674795959120189061555030046795538570343466185844336232255725117401714642992997745777833523378659913331600540041164060236402003001782652954832099090947773944271273027327409204570924335230473474814397704056047834684307306864317630328010394214044263605771566603060289897606192403632732785642156131941340504151177776327793864213917357589326503646728966931335262903478304168252197458691228855146396520652969159410191957764260924941047912129136522037992728942968413024594198532586654862005922741850094974169706260409762472444108798807661072315607868982857195042875924015148662675901391795724395425338695174456803050961797432410796613148678822331564440365712790027120447800187014981901494926624417912802854811445142505804274704264111228009937044987245768660372053673576435958259850861472661256872190870072855681233818089047800542470697360192520256114232202828866494110752680260795915230687298873608862146039300202865186865885167344677602274113761594390076304265141931020970821496116145763810652403634400542789389997056621778214548391336310814294031601907924832797229798691408030483986849636043924665362112862457997726023051713119212416561993327995752846860497499215207616930111909549414421672979570443873930533465854560183528614749988167933169017703811599796697244146785499435890190425155398014219686870212943073688818437561377844408001509477183182926879183065540838213550772235006792919283402454994016094686298839489787750147545873633432472375719708780399293019760995497947278092330810205876509179443639884663587145067673782603708743931468850017966632818938885204416181708942070448674727933429113719480081391390507452226107647824823691565738412168069904454312058198180965922436110781801023218034361920957220036341352174452549710825539436424817991795792761012226040012292871285470110507042657792645390448039934318651928305121805128413030687794053276120157180860636181929869705579119008200445865897047859933381547725749946124747574186899899896577734540544463928263852238321005430247707650004939359452442706835801853142746589177845796022091998988313629890327079714441200883370815678974792895425956733745500565450781508301430646185424428692728552848913301981811647653657673746367369602251722506585925269243995983078453853590088554032812390901027536696481445698783574931639154696518886150661225205418914829552896757925462905271333960738279182328983064994304622559406863272968281082001386221164064564055094866096586438405830810049077218326817817999197184055527004958054875327703236798424086842468844694553282401844946385133517560922475515662131460487428687688900479514912999469793263322687969648157374159324400236223128084283006637027176785157175214926488893478482021656544024704669182567289997053454691912889650710073697298163025524756148443155895637861657628180691377379654520402759943682200435100804644858959261960337239017294267730503944593299875084673285316685557055030022385683807455116898942468417649249561636570391410424264910544398226531604876489266134841236950465926261249263850115110291583740260537716636447392129730774392696066794831181502390061212884719134207946735894769785931649467457843193643949841046828600476600147320532926950754563019297405048105032000806109681446530616776620338082317193240647268981146082035217010841519958309175213924684489786113961982142381773969988168383630467492215032991389443215672451170570274269483596291946057881427010244514865777129412481183358190734631601862331807945423795529468475245633430640377181165873268364782858408436944502474297537233326819881651779377379984455608102014938043797977169874163202352714249827437280968693628364638382352695997279638342327590069458163624118304984601739201534521729390717832380432719387991329196588722182411386589236552345886703755764066375214188365873949916297526419394041002030710921955369608546883577434512736509935771913519642453348176693382217194695737278769025955012990798282289427457582234985538096636947315892176114489990567780633666902481324943727133922911265321298819525603401722665046967205247628959539054779369771351972597327288647163380671206799028394368508497731583726429706028372578450343973080804704792427325165700134834004946477116233866204582626795403851477349648553562092906357892174193084585715545858524618777573052565747456836717756814851679680228834639449624359921087847763703662748139725480235251615679042204668643305355484552552740243353852144302793216110393988246372307957149819449328307322535351738426350917527118276248958090187421610412896674474673767458087127646350343501629091243176917425929253571669684382018381877184207033989478460691038080330453660736725839627491531738043349501197710288708191395816146743335975590183362994831061249520096069775326752293119559586903702856813961233248855050737736503197305385127501436655130929134419561290628575873746083854885640647385285997397657055007257191322977547399274658182447626024322236331936329549024357680130931814736341157383070496501421029575604317046201485954988605922441416036936648989074093333203178880830847475222087255016677566595042728983805343316357507346636126004209019995262699087004322895215848324722188832816857288162993084242728326057423024391206475793131865340885557494010822320446685866586814075256540308912487167392121528970329549209345275192951458649387205627837284882048259061504282728463977687561473894746897209167364323408080266889922915895104201733484343563447806287759639603708980852998311345543389222460683313609095920229096672389007582470878100425625291441224001122606765347646895414317279518900670014765312965472692486179751147643838847950229172559970119677369277968887129735791439327258833435065752990123014314856638740848039560318079334774339310678759570892014448717514036249313237770646792120584240826019127201646220058580914861487605828303887474490544342308023941256784287194468505573659964984179043729877152058487423472862214276793997269150497493886338362430979995481029541242359687599802667025652120044842661419230751211024781107482591075260205712731035710272022555281552199826267229923114914172556323463880699620313608223402312220639079728668183020106455092247261298880467701443246818093496537959791262775326982259168383514742973393810518764765743852495809803817037665164778461995096980420632925014326713215972436681006131013824641681358212765344604194010647136406772146166521474858445008080583262520546662609206077282676601862585236581742273606284865904672734943191963519463452287599962690819817616366096564976678536936288028892909940856879329636037122629650762235325913295314115523234228281234108511236364942026268789797057833278962922049357731547207011373045260605867455462365107105762302547023979986929932569644654965493604525615703304868822928173398220798211516955037084365331719895023367752107700232464754071328574122587144432572463227178386469131515917815287895955525541524604187910918012719603420685013868472981081183260516017165617881404584870894652317390324023126444783085950056981508635546312765903185553072426107557984871165186431911176153124176141637764380517577185097895087386113743421874346682748460770223127489335440885097774943567233534920874702279743919342198872499016288079093375286855317479180277549293293596559426254443020093407755136337785718930025434063523919812645311985598838707740445418415733859302478228280206330287396980249908748466991026107171880782181840778257926712701781675535022418394786898849296513025127319382482650902901514862519762800476248584985491108292331715540238965716482463638405257697038230295266771028251958518703050297052875715155302928029491388967023862703393889536267533031725409746611328188991861059635251298729189032765365812540496139506657254615337184434003482901648869805750123367337499966142952755118206876317879568553362297453819513439545310577985261701291121320835000045307120328257681511954795624746962719500153742815914786013374615295191223765666154623597982896141342708974492449417360499054872047403898332486393357401864567113361223828474317356483698695557405508239163965508967573803156553760915302563943688708394351335371254695265725854367898620603300317781976596846042750777801075991548199337279688234091673084304739428004036669244260967376855259989568630149559465271654864715212074120050794255421130760398299625872404725097104541116275645466858597966324818782466741589513941400086613052383405333935555917059352197450999086413611011742827608690580447411893684023538181190144911963397475951910335018240375469420303228334220148493033166908293372089503156313560012395559675734029283537599475032402645935471369929515805264433798348465671290408048438915870185482933070593620530983767449624330332154681920720085191852571755917864407080137288114823159274292087044908015729170125633524059702201397548507689642994435684276662199461142539771943797193510060985426941327589735603643929807158067219008350586902805225822165607405666317800931626673419581712411221170827360721577543025484591279572342833138943871846340382705733077209372226921703035989043376454191715924072688315653336562453902303125275947056337747368551324275296127248697675744245030042618011523673298002541260093064431276641887733945083488288630497351521475440824269745063479760328050504396366097780367145961280779359840435129493712505400571064204518454399219393114741415713516706682416870740839287179440512795374565721693684399335089396969149105822256966551864049017229758749350896866940800225020106162305402585882584832732309302665859752779972793151345757797635684511271579018382333468205360918021006110852805665205823008392006865006016583571262421350792003237605788325978180332691019189462483497352583168546800082551739860529089834399576253243581198917479683067992763739437614054319431562355045729540612410368172448333368008172739025051951344852459349290809783921095959466124435744212428224602745500553560080783064879628339721943688303287965893869656907334981605110468288851429904077152286017732310146380646446883094562105801109952307266254161317358833703305335255405454981862331999816220082230507775982728770084411866690521329495109044416322989126414900740703128953734725665966515587979321560986906146689752622921580842685832855374364465093643789981278331756880349152365887103161808728862422632886074499702542642358254352368994365517597904451916368118273860929578393997973205031809736040899666109065424074733759364184676147103665691828224041597569242261476599438497046146404654846983719738185384898782362938286585277418116613140285903316616064389951405410457519319868507758308447610957265938227187024603924654352216130563676637072425367922828095632592272500657945801891585765543911548928594139346250132402396603196977933014129937306903008301339457402102814258964629916461962130900099570607850935794171168787121341254566828024811087760295950441230934766469523838231816999808415530545348202449492339785472464336429108000657453616072103516101362947795939261243846564104328643844149625054436616956093309089078262611245067263382876676957918967989876102851803094952027569347122222340307615192981072072626177275950553430451688746818711290604689780466298339348259374643274387213059132854022401614167235089140658092042993727325652186323119333220427089960936998322884892360048280365948614277775995886949910816890681054802589677405675982886609750495269180045921456525921158246999733661702849263692895457659241884525154925503283452509751642280539943088508097064374742900265892260096797451620694029514319984081353419849544836611580051826440276994705978937235833012775143420305029107038090006508479727366180380656665667725721686886394380980828434984752471969647394332894429086751681893052976633595335397907701261736909083330020178068205105221156195979536656412822972819285835345526118532505244041146118287962094331272172794581965157020718064300353669759072235914745336428138199818324506860672006228246380592763468829192052252510829924681203935161092605350470836765863704957133528076139368503871453818451496967615169263506892317744266969898830042331174495950173091786797459488750651029238164327937574383209958139373941076083718104637100014869760273567999059139718746854610272364238190786670268557850833207895476415229779350278184760814885254884005166133666322458408023508726634210658737542033458227464697963533045937496636967114431422923671054027607026357492388604210214070723871455580955598330411712696981188689761018262868248556055994003353958716008293084444832821112439272576721330299034994481360130875568955692231890674036325550284239190749458223927322357281568388874734531440545754302731149243009388374064879902810792501188318787459783158230567407015183623694590151875079424400284115215552112216575281365967728338437100630929268687270759868105063468798167556322208489154814878631505857825054812296724479585648816358899797798392583073769345214799075370903560804191591384402331957957701728991470197916356713378842070355535889696927056030800700341849421132995843115022320158526395925029056817290253679827700353102816130271285776281596606562021240005399986633428817090964970362951114514477687569375318166347623155218607396335549174729217899286206199953914850749159332253209019493039252192988074776756717527366477397128768914737820483295854756382323459331923754689188287201186073193828929893991233819397406194290803564233825064388112615207460203873903788124076728258100960728850924339291201507730233379074679746794522419677652498102607079008403003674678847500743712670101816843930837905128493726340099057766889345525168644179254929872062423147337633686113937020553805782453995339175244621114354374019810222253137029162842297673576929528736991844385444941120449010244645394192763690440548185167785325098003378772429793095904723052869676992778832807274294333592263396338106976182316872149825577573712549228999003304016438213823775099301634509716699235921590429259898164674131035960491943698083497312435476328176706086865407785600696150180902788103122545375385702544477073643634269813809111279758835698392566797927454964391309989515729543535356015741147882959644083081750053400989904658132004243159891744528975375259517102788459396755732229119850977015532144204715216349341296595824209581446936838867931304589142351580738099375214772434512445364752944151972948657965750978287055232623113805401692818603024384622990626585890472017547509714271554689331793588239105802417790787867497422312684859813984732300179493180972880106126826648665999998921108639698785942345825711701503428321173182500776381425617205933960294445278653257875228625237001322836968238488017636571107497773928809813805239233986126157873694109074307088097289491516757671835401180255400634114274814475462882356917807704535401860466571740246555157269079025639133385395266819233758206529293238274504392424506488760646518412014947019619222314277600552331674731403229435839517968313377106589074847050666236529966500605812602456718454137842301614912112421009275288558744277169628851021056360463737618196638989360203391314309156175807381190604013408058250964165789825812222076989066049102652219967796962130237020450841202335320197871707525953680066319288417598418428981093418050733345599069719489582112321592159285022589644629782574418230667839285936237362466373590067669238353113060407053989410930970485388064235631697242945060285898883523918411979597791430843457269991638389469403585248700847397656538918435862269263678593225249682445606099970496896476172417425407154019821686150023507622111815950375969949083310407094669283495025427889008765987535787315710804159187387364369608022252397523146074578421946838197748500696328131192644746369453410847130010415946737145504817969555018391430732045831550061026552540543287092761581312700773132542069910959409585279295220298409450538190104718832138769454246756155872345533736867773493749335263448156698258231475103787377926192530941555711004748223253728396239386428380122837923029223720309811602174439545123607873966485539775641108744554887491356821812439814378432777905576044266377004483142019883347894305381675508530236337883231494919402496664057250188862516816271286037731736728209643577795911423730746531197766004246539581205794705458413922992047279271470364025918712818770295601621306356667366289897209525314392228442103288504328769217064826635564404452061725792497961782363471032267481118022550790770945121822102769606707607321103431797299758944598905459450076644644530764961809043926753130334020351843321094607897296942057105456704033312841874274194998790635897803091717521756632478575424601572277103080891554330704680441585403350558329955098815661796055031216258710848077507537331602998230615441487781250146453492578408751407025055321138251000079190433340930861079748036167792097987181781666173207541929365432587281955962555253984827346634174276711247498705599665121339018477087356045901785591747364610705017270151718032285105020559091231704322393658463927689459225843574617162886848791027554337849299669117056811144842638321932870632502556676188145378513452134724126234687050040128024631158476165055044964477684768335599494019363609875557957710432676669237168566023021160977479764419450410308712950566488250161683996306780218237000208028037634750459810318294982796589547991139096620413910665758070408131743050600998667857343073417599099600304543899161613964965870037272853683101702910482143764075159686728250702264410511067145945492763071535248612797155479647701806325036375686680385096466245411997836222318254548690273904919701592923165107802775909127250371629157379285286700790543595775505023265193537788099880123750584036022940806902486775593178105085230206593649626046721645883681621472303997568739397850229117670681490995686162868171381341775479806343302600178409768516927357249908623183155005546026123102776744381411814029096141665420220096343403663923496094026157570634110791809028132393120203388642083943384115677187508119193113215797609939726957668032117001340430061958752764191977420521549515504100717026354659045226240427218375163523381149375840359684752133280994281524289691815404575491740616862610465713208141651790708435531703609863139640801083088616994396513739966559356919252603299919046509634676014530845362383398470152121349341761920104324140512808730696659513233628800187090152263028345548309657342561746858839858026408642106037762446164180225875524280198732969256345404691741701383170607565447536496677663244065756253360693974903412075085111015296855759242918348972879207332056913268836915451574912548003857575324360321605353697383214059011631027386598238071044944029460746757541583540064502654708110661708633880388273707565205885322787951429272831561223274951778735028625399871200747341457701692022246399548185195529386999532657418176892495464178630678547611039437119849289455190440674901107243585311594737153130651632560163399643839257058955969719611706131492095956607167299302788012364676269613950746646794858226043720379566652137735638689961200271722511620534486455967856274867251906917797789284073307392230609486256213704054910837129097180774599316141657866418576645096963192809952816319056561108454669690375031930237381204117468912976199591864350899121798393837134321551474919218910385933384052555241008184330238412917586902448589446659682221178418259389838411118049577815338386810781624251089770692768198390896174470542245451564743643595650369762892404653260920275687593928252321294987326953346030002773176064642048261645701430701090142662337586343522796228603230201306580772776374631656879564796384995897253400348802182473464012639899858124767123044827904078409141259022384127410987802936117329601170423795577932378357570400575589247691334810898146002406667829556926287388664323391364350260697866003863931118856279150787817108283601580202448416132883363252517518184987132576744175936695542661459004896471522375502018964707337689798630308106999155813804976851193049744991698339441639383033522790910793243142722622747301175084770161611247355368715435736070487924400952756764017975539732273278787712728627496318154530544538319373325452260118278017629858052534158532075966811502920576326272160438004380356805886554517957348877664120096490560640189755824318224301775160826161913796956359755932894372875056647368730701810004785522576857481595866377460228298519190944734964801557460242812542772384549453967568756844450304414044015724248759692318458219445375911034094089637584194996198949644906640183636426123790354588909397404522668308705979938005996906676173242044092841891896018249619335614987586390065693964845190047799368306908973508969675065507204399611273827042244984006748892803672664414399562098324121451686920050229719201685364608519174022408163364009931688273463899104509647350433565658088194504221192406662216238058935913160139599436803390655114270266518982832431722678975012637427116344460587333581134872630960149903628060812535299087326267687582624135259970062126522378822100893458448578111943573906048397290538557598196666437825087031950412670587883069589106422174461086369690046129239548452219340224699126873944574086241137899635902259136473806851670937896992691723002666425031398327149185236420198409629968786586269634468774958480159986540927331288546254918380803267749119759950864079951281652330003564144347750746637222069008544268668281067192633752809928470933663868395661771898336641432163269980004546330898474906004003659965432546188946277401178046893796927697467971297930935860409948662593587242155323400619952561324423615342783024593866877358453789549062358522453862847853192917008657293383847469627806499277079475018266965115032064697745637706493733631873291563104407702726916633298749027695897176307283616042413291215582293296940796197747451164224392553495793190109079998019843640336153709908295955305000115583579195046059947028633443266943072717353459558255015168486221706250476652124903638621829186857093236479205640725150046907322629567290468667032056639290613611798868822096885453172394767818507237483938873965293089911711234602285483474234678179833409271023345617584412872328578088821159810659306486231340795093615748275553050456752526147939582624878756332527101440724230337082377407692493923539755526481216624173198005171565633981117044961658499825015735116962894978656209251167384384147111728180627301873397439649811994285836578840653345986298065860602751083275149040614293324992268491457887364630934065074252776264635083912740056038601819078003832565380919405005108394376007345659471019838586491608333148711128854538051844863035921215792267939892226885621983641617914210817965072574631879862935681367349397799689979972027230588704394518052284946583081289691394319195202935229705112000006423978550071632885815955058888144943190076904185098041336174580525963642332119530325795986935187940861898487233999942512131827284494003619929537558531220125094510922114854485624819647968673175953034509222248431858702692721785093850511579187491557284485815433994544750528887838000696806628095767563727819149567576937164090231769308483260829388873997592217931531168434144034404091928308260258251061435163925555439661223580333204998499968552996309226609109499874189247351236464357398796128515603817368536451355368990195938362679657040760889755386627763629202013369631052554113692155439301224221695204103208736006489719934886125590009837504546540720086866498318323954630421273838317982688691283144015192265718337669376968784192678728461367112637124343696421362665722754425821055831723597974067212470641828372825472939669374399021679660929022828378264789627770146310608451404656073410292016547947517925841218843884022407949850136222898801613766686449392105595263119142667234628255798537282776508945555313940132523884930078459991726485403708173391590044026443655329181281594564761182542701738963444172939199822502243180299421531429497152462006268619918310896249770418311031161916494057656331366919263647521819076303261004315937642311212263124186601907274745418357944483511728104480262456490085556091272818610046580385557326283592547850591885406671832064206056118919227272519484567255685851434375054189651870965756096920407218212882918026129387555989562617389044002083777715678541297660619000881004640607712582411676489027712306876940022706800083183357183307462452051222663981653354281860091206781381822605837910149299907287682593480574665739726378412497414635377354644871499195621553007921449383175376088217951202211333656504623359647138445472323438219035499259744531378929493995718675509349869816560083676204939083099066340963491950913306365153093093522303521989236385414920583509909271791129284039818510321537459570716366154176204169460654328368385650201304210117646731210751802378297790964967033175997990160126652678696632980402479266187893378343245866401634340648991899909395653383576010394048651089952644912536565110344660529320725291361377694579009011488267498454851904997155717029541997534356298795420268659728903367901466864222513795914999712301546283178278333942020038791415868674047448040231833597895732828357069628692802284348424982881733943708301685002373061649535866261428504656126273293670553961978989987562340334293907991391698366630490027037797104836708290063526203876104161276232113973799262924730413489533789707459726455399532236341007172170864183374152312631840023305072432445818296279669251555739807815716836252393527457718342151198580108793394355600901345279008389326319512038634154632722614732853850809564127795874429817828106974381874933025038730309272979345473553616895189392996962526217038265786177064932832084858986601339127003378672643707039459614558835330226059363793402311997451922659551775270597454926649185184588472520080133428377003013393124234653586989096821164579120648171829762167585818519508335789624520885890967983815926311252797756719460614538423341478103233023640711392089693756076135010286120142569190721935828629838517503502978632362343948093905732060629135711491027838780380257083103732399653408351399213494560226541975911820091709205280034875281144181826598592331259615322405992271152235423462826765974227839661381633551842504367397381987250807305563318847318282812612581989452832053773772994057136971594618593047477317146416293407689159119508347700528472573043374144951990109165279394102398806917098297243850839563628501440221973068860219511238638051716944836287261382105068617311313328814230775403791547111367944050868818483229497147917952895595820759711551268336545591746240676772038611339032677542917510029929628420374524428459450221565207736650149120432790892742610264376979528964193863332712514101101292691395625206656953557000212675058861017406662967686153447576305367479049919948778506633752759693907823345319845167071095797374056759605993108072253147906133102520853472376333373896243158129542825439743287074861656016933389143047421825139532719972429854381210044858732118870090018876907085151757363432835994950813772138677628802768348982754753395138606218213793520094058684184850367381505558709940441239434408809445153927464928103552223277129508633097619898814329937094679597490883947608623560689261920297369564500791177080242316688178642534726958949823825557658885164873666699185464149557216613237516521497287708449883233223896988403082864179384043032528967166535656198347106197159282090054980932472792078609519545339373767173344994182454846662108729892218370074883000761989879899995115449560023888811825777205612333220189938586518828525482279694232276702350953617798285662697170497132908471729034665181118612958219376513475432749726448447707129247246702647251030486498215141086596450168124273064352909746105103549625026773106650167678996326078427953618822211228346498543621908828548210452548403322084106293341444587972903198459502177936343927752395378338601250548708470453340207645226532514868138516990275615286887847108975816371666794100469274653937612421703971949252477473204302228746437721685608776047188299960310525790338705597694897255534669494400766334517302099162130001842289869777795434992853298079039386051741534738047706363452412413878589919983906056692710245952901284848101652182022925177557268474584946679035307831574327304751707851752793575884448867231528483776242633665365996382103340840937421484914776655496307013602038139155138959712352981563293297618108433356639919027613333567736185338396333684382831093344662840833638231528665924672642674919221527869342043883198019016685956323359902570796354280998644688124654448557469526269112316168957738114162123602493048905767684030231322313075374000514185584128006034546269177206196398203135103534192349999391152213883757244043552548718783755742157168522849615458227952803652830621612526042549700905487621962508502322014377993225629185144273275617667329259851688079785321220508377006588993236144124402254257219071378903413176809021175536513064299173638951989633455026745102752119920743836088452602626424336744017242632449110948665878374635629824206836009372809854623473916893558306151493493009200239832564381376027785176690268613337517530148271914939459534837869861965288934055104757051482250402220593514499953324862514665613363059699068408174136543281343589111908175943879706079414364679684370633963500879653973081710657853918269272432394113659458431058405230298608345214052775650512444618748816081652838399874440579982165539128464071773815816033045021364222046965575651026596403092080319444773456042282246887109632056043222205295107174308828750149088660360742500678305110209617859687138025929647226199750878990241448989861556790766441248973487871747885398997935519470554111852484417299973917787136492342610553244754849873592858801923774999710800216607342329517874034895720298744838749383558404982199339370845896969849706294843814732324947122210097556377815521684098585124181734730531032716049839871472035744448081006449422932419731526099696175773722540194421862646745710349970884700833630787537543854195431576920277783830664633774163175643661676157203703437180071425391464576497414387484530975254514666414207234221395557887667110823232153451253388315105892336992289120195120327901616931381284982652145739317669824294820800017166742513632293241160849315852430474288650964209094473291587087800810093532254094120646925163687208270591649812832685965356197938234658070823636752019318523067837111264080781765637481644788656216354663929392547711143995073435391600982486914416364998701361573668556935593884778132699949233523109600277246132916554310621567433772360192060351670459142978106518021068960084351944729078907291284040587590616136461330955019723216027453615356261832395940496134901394886457299161830157305729260342004055960417792669231679833430193614275990116382263369314818094536810197841229541903677577535980251659556552912116560509261702828683638432328651474921314614103939320201836929343830570898272159783190188225488330602033112425093477430072922812106907581188611017519610339861485335362859305260178913867470377963516757191312130491336426630810718676239191768933158751300608935889761032291325630569016745082905367208755754218581268506979873027526061428736736864202712997526449511567060861138909678627743862862791816638166600306902412050200362355007013146494917000242486003995799700179341138424987235408768474475483087092324109247643516129388844841709531617175085724427855004805397467321974323864536322332973048701479161090539050408139946640285233986061902982895205097924369431167302795990647115601696226478790869399452915733220439481308904235231235217375681840657912743232047861460109851752908899903810726909836315496133357774937282885592700878046969302787942363565040656963359841132055763558952369366451073863545479722639913627905054879126643261381057140300854895149345760837771309381365236610533796888615346904131116163208456410758342787617715923758469913928372109379065891317246024525483775050419302643215020745251326050538771618504544649220084235156752970540441000402301518204667275334628340050743312506372274899105777766579730533935701369464303320985724781714929732928023550494786109893356176723667972114596417489602435984619944846657546887353046901677898987943546447241757028586642808929694778670221031931593785107573130778246565202800064521599811917116701909203866689451187574226896331842152942793209571508819208417475914527737736046587410533583850171354504605743501202936315335389740073140146296631386263612320986328758870919984658441996292815176585899010427743826972290758019284414516830709433099828878750786352616981383205849034049094162252588585733379450003554616955822725129373032528300747995104229712657660647607168900843047474379226596451320486250672577363451368714121240144900204069706247774062859502431871944289687557595842859197768508346159997745572724527416458754622706093480112537624111944351330169522073385125184970468590558578420495153173863899348897950984579334164137063444410802921467649484172848817005134166630545073124123664541959108280340585873964245201051097409112954392022141538828049615779975182825115681140432061409091500405151368061696044417906208038928589870719401455789928563055971787599786298572532602735863140970462222084264520695325112161137126075387784777146998108957258451634661237200074009777069810544929093051457964848140385587083553753770676136192209436326867683498066109598209622261167450687241227937663673856583725539006125063870700736657703234765351881544850612275043900384213281680996081864278755215452336207798440263012806484030117641525457832265586904313606061640491038451062906019340135021937094273631488223380599826328306154662689461069339353773916848393411307834906625365812931877258868244144859597668804429054872817126630898298996820071954652288110565597086169148397880994282738779539896841643286730644280617153881774644813576387883598485889052159765041910963494882226573688416025787774194265710149870906782431760272690920541867305076957757128174821299773622761317999367967982777111073000066118725305016516464510515903367541038330916366258756542797713515989504000953518199234911587334329384955648379568145892571302568449527708601540647720604321289518317445135517715064527822364564365069354343102900993730463391593973197611141865417599679803451020994715508933143975204428405605785028424891003488793260445956125725289713820043074876740486412406533876467552971057187537039140161986307000886103299639504819592025517324439559966221156905187062681474723423464746417773803697231649354929973398876655483285383552493528662350697568726024839445229207582529671796002996869251787793174789886041378773005956355920977888210618546859958081079036741341678955994758248400283046343877394940363270297976470865893435518753359562367885026444733148379507419871585620035399717191030802378426739519622303107135814321326130046906491494797303973116620043005312995564763766984266894774185014782619251577243069873720813251885813387808973524859273148451914560016948315204559712934281687592296431432754357059244259071885823877749954606454833233080124683236236763600100756172938214449259991898710072565622565952283380788315606026581769708639923153133227480660888678406474703201849233757106895221992332289331238046379905192073915671857384725004655504307456604367995010146836252010815774602826927700967714142256321499444478631369161769779142658769848567216367071614676790062617505742183253767833932796648408158395983339352027650556025673217579207567192433430254864943437911130751757318625149875729137582249300398010108315846390381145845932447575406808930319752035729600023029589798176224856644620516592215172066201251824756087889358315156136804534678218354480142938629264253033975054920136289884032384735053060142708331114419514780407827969564290379599535385276159515997877584582480736826441321419062330973066572802439321920369563890117138072468391873707626142144386430042183745939366912774780209116641762227216723553604697397907082617563154566306461723605205563208969757405727206497499091804957028773936155509879591016108362630018514090939935507571519839194181339154558202240511589094181119849311460767633303578667256117192868520692666005958736531900751231226150887875103096763238766315843765816829377317101349578597567879736776665605024747029897422994924798103337777312952261168863949586652348604179903075680673426020675156957839471621768075264506183658629626874959353878335631741768817606783687601428665636426045722721289979441299460077018100095408265990967478587424940924484233998293223359670307415022123718574037342896776831296965707141791853458349778389925050298485906015815021701448409314287186672766037949025945898782632319726147069339252539741861382543145625767234848588065571789968493577320153404387433231717051333774698497687932372796422429971933407900796872004484577290325253657903530133580122667367650183068431287008955333461861987975245252167198533281901564988538765381830110065443638133712971601530911297726844572022569167817975492661562891644134168172833551513393098227631193870754672649599033820135065937454879761920313271517481366739112293783447021548455610933631654320398154409227952436107080718432283775202838499823960367368440801205171979137566753340716347036499285362443159918133607607654660488636166189822729556320374130091285308334657001728553444775244403325168815078532276542936812032965858752944830502259649432464649286392427060964489246278019784640421361223486128959049127198761768478632313782642100448434442805720489739650107360479623198195237326117104466616820895087534803902976268926200406526537411892699215962516011369006876791063890351016606157338358377797146317083610477693796057873035563011605325137487832724594569131624781506727329947719190416684611414136142478883388303762631268257733424930878745384730255012368206337591670131046711282643769954424970310035336960264062903381995760396901562619339807207308200160655986645514187133307964907712282152509253755782650733640239313298737267785403560092439765706026660849764790021072757079654788157491370842944936973802506159625977115256370457431626012818832864348343997446356152994379973692103854564037275691172992071139007279332395755654502245711577738599836091070630017041072254550734659499800133293351969143328576111869778880775424931297177456464089303548185384242365961168328820708908066177631861444321864590519457296517934772718057467429579387130665944184957676657662089616219604803171880313512146329674440284644695554641835978588691923980882585780186178564719794283136874032031451516430680376547691442411426067289416381960143168232367356329003341887086690041217419342666630678678047135841931430624395090230965112141419181852855615215335654530013881699604473437205483659467069404586544296347105676508259307609842176781891978458830041398375355600759759224026953412099820542349610840929775151440056039721795574015547730692007456452838357945289420947488342581042571814074371944070714063299422132787576218620478968617912093735844663530796188190531765957013138741272966774227926473664390823076062401629379056474439963351558423136495272427492480005682186759916118605221813215258012727928272513605048884594474825774840831100512008996912250745067993122539981038213121175568958427945777752597351201262082652070022295455531583519403990560690337752021499794001085370505185728264102948258369360224616718974555977122014114422236110823791359049024106813221369266720245956059076333546804008108985031783820308563600943304354589229286173377044644978609923657884736736716333110988124897589806536503676241582794504438617252073859799885116996640119154840014471045195909679782204870297626600017478471027094463974510126074674827182346943059388010150244904398744333166893305425442088016256379016639951623796158268113353630530042023166548481598832259488228235547742448106707518578704242380029172068451407861377701903417398232731216910680960156198576106345192273828363336719937282385266448728545937014100423341998491510290061247179243099341865424571939191313725155835455524250853907952446306226375548791277391378668553013749445243259878148942483040321363274730258328894461098682096079221494686652009869080902147728862239706004137038031995806937642048096433087447456023172404494853974045652039343733619842444629099982828105384967699442523665193803779604502696037789583296130293140276141073109808423993174103215039148144798148830909603438086310296269317046788842256058870987402012436539652849703911583001666549024344678234988243891226600730910143723335376455933428911163489311021122478140282193894101676511639862047514282795331208117431014901230306651478866908070337377425596924671875494968465073521504922698093556164576991263928485774507370864901166263938964688275616915247557866220703342049668721006591532272067547206029036748903334523906408026343414206739624104381711128332009761226791343561573157275514302353490614180232122636963910112107181579699573658128439582970569461627504268915727874656250822235520342556955381560577584485683165796018574371695491553104385150210239452547012531877381017711885164433570407575108900314388003224159216723085264822273116819685404828275421426607475166262185950807473417067297759531563378224512686048015794078360688957717787739688789183330873272150315029620743579755893844172291781864922896926982570392829596440748644126047872833755783505390214871367838070984123821666195573798610344936505267357039840583398163218984836196740544678173950781642285386264040180968976343148227294542608464158156474418189691311134836516761880697274258927978326155785688404100041974648526699894265767871600819016857845639867989031312514862406935759670387501384641430243417766181145770050171757377932187511930245007645046373436626098167190114387850017353149648466529887626029889744743780101242228512220669200588321146122776553623258153820194553745962375998729144038393982747611545618276472697402579086083816870052957121305987779588162945189940031824785998488604011982309126469211853193164740833646849931077772300644897816054045155996640241675262657789666744542176929103374621180898230743163620104150630065596681955841062377335772074328687878158012176266076731442687814754838152054508034294958754474274808745729222649805656959318743627215808423098185753131410360134044624777063267136950020086973011925350531224154553272277045575389073717613600034968479894328967290094456439029969201025258676959505649189628644233102099466206706307844919943579812178693110989206572808127721441594703909429208875348381852346176494368359399218331466043281544738373523323566921016953796153913166843588293485936510564771677926166035708468511216384813691701992370984836403037345565377459963618725097535361758754798831138079245686363407436361759797367115216491217336388057441508793890319782554784034446687099239460224698063433706629253299554232841420958554854574576273813711142617597023726872935046182262326324751954775131557395867150988395126758696965716685316013142998754721282964637812255319243833731279424210093791761493271917483855353052330189690717997649647837209871870428285148930138349195517605294496482179764008746510574149538315027750157782535618787899223342035940090877769057360766764584834216415588971195833955840784906506117833393131643173275641231787808250515688388294885672484968420149951761142191758624338643261018950752102617384871629862011183160082599622556213231257600178770003084648014325399044208784068953165503861085827609436696472455373134189119751932561752592338766158207906278103010306568383062356186274761958658830999820096389603069863237319126782970312885923787570298016464219922759018459397921366519413418847734761778767476763486727824837228724171924906036587367755064069207497159874117029087679979814842193861242354833681132546658044154954626878836750652784069299510613277599078445501711900450717203253940185671262536937376800522883849523850379494525367266345274151812627481176422902884108596980251168448460937912710416290707781056460327018836172408849314736655937422166017281946803458342505044781005761592294525967855701867418809593610749002914137601359250598202164918542936183316979596931465185622633037359522512219092932734555420206924486858382652039963447221386140802338046185878386409911615003951317695060363989317742317163849958307156728118835306477028692319192417168318031318640640455372879423824746087932580060367231018048351252810495751008924790463234257071663237424881636847184857808745675607120409590224801225027083684620129740041843733746523948291036165019241187700428112386487170829286122500184121845769740257046309442971439200762539414773942892870588391711904654078597494103358998378350160489900199248406452761753434070997791242939518806676320579899216454513242952885694591358888881826808953233379256685876555593928401263417407350570220130592422159536720275840227100718442981579481848376715938247067959074679739770357195010852722056472332260531615442065146161291946760265351869405987757724159539256366553346674853366878927065409278675979597669573043265665720302504096938201991890936711131892814402643656462697866121486188111253251677666900832422088220087107420486579676869888145604393817957715377233313446113893747824697734389230206879412041326079746691894288049555727310594682150979232225910190038220358759049483263376867330133443037446434853680283969858255939138564220133137991941916733896520252906963069586654191362349181937624705572254732023196090717005115318620596673294241723244885663834868233735824805401599112068749042200585362758926340025872413196099802937159540771666059628128846176564616459251481129241277366048061846266174268932079670656551124402739973148169194235404369728221626542875783169554517634700595087700118638730208225702667816806151991895760542781288951732847094127933032405238946084458202521289008719217997747237929124395640062351722373728047508347031491954359723086524365289205096574524872278011682317991369547893024787318572493791327610029905298091965519016149313963824347407540786551862643370403079815576528512695429225090670754047348521189736856496751334504210672839576765484919540495872799559877047532052846523882857407197284153322021950451452075190842222597059878527285805723655976867978263395029199187374327661653085147385396704572961963278127249367699183616022108001627511663351537874084650788940540923187074445157280627407952842121263185530252497770903504909970213547388286037869431127384968919480553124879869091908332908020310267393600739845219532418072444538812809465587807556958013463248509133697107071227423435905724826516668437120373503191957176806182113178134261741774524890364887705546004000957051097581808061836200941365755981095014362889489297785402464945210254809590930351243412965006720551435055035253135435139612802301769944002784019831229559219965224676157760375694363406239383974279356934128678430563513392189423346456116521303743415289823728264667246999796380585696929319672047633255474983291118568084483994353552099955030393140302040767597628970843504227617918263620149395576688894057413792646752031809060742207235631209298783179720314789451927506415318522088981127140462926493972378363168208086065608260467438238470303485949142230260834336511794353592452527481492648087276015305957303696469715055273266383181353935208820296883360358739222967344804865325805660068149424447143269965813360890963249155153644393975140249108892516355751986714077154276447249742435767271227374929104319967201111354921051603589573598072647258461715099511073632711355941482436307502649328795534516983227492131827236069048792703358732282124071332729469186021258823412600678188362642863212705663157242491046636819919357349959486442047929841788957899967184374452209240551476148094646054742108987564653852058173725904736430795925699275258487718790304658989811142772201690661824159326041147017282087245087134493189420773903435733753928008012599670384931420582974554846449988816512291594879667268789312731809253759081999174884572558519885161361240769151156288504422170380725826828663846580894948892290819668101806662601466729581848831874507326002437544235130368160309940540277944268992357505557666102479543069746533450306271155896325628609322459320888383972665476041060482176400795337221587649712690207890411226073251120937585035115213121001146424267906328205291576288567443353903806560830889430618516845501486860993892211666576821815564770646659993189770128249507243796746976120416278493872200182926137503124991188462256083062853032579077050335933474881565344604638813748424272511410270854587959676726452765166531591261652446483892319525631065680488477751453942850824420203595156612573373382415967454386481102435368590429845113132121905854359122265857256196749637291222085753358510240351666608889108292535804171923864301143175318031094616758839988196957988277832546904103159014947632485070139542848262749489120702549220231441932630268224539614973382095048764487527088329446191854412775604049518534848415070340079265803720669486641364294954617737495180030112369821779850528241126586603658218855183644391396103883458104966825763436526947032861960618150112973607388553262876216924448592643126963557519071174249997569808853705049654946694359517326850964621288977824392755747986581715486804805052582822867328376407770639125025052210483712993788073941147051637380575298888124247640475847008282738243360196051771205888912741141881359445104008040952138980163631589191322980925190632420658960635835418418820744865572989848011408852151469045167450065676397580079725917717842900916082822541208443396751721907448235904982707493831326789064062542657856979071675233181613767244958033883593142968204240745407155273021012637051138535102421644850533587675396247016908826278329078818346315338563487939125602136395939914600592493636368124368525105483484145304220548042167694763873727133102181265543565419837238380507911792935743078396145647076769752456573198486026874193980287611488337195910508361271877526872187509132275657802133119595158043523159493601155366629836879676877786416697538415530291695392540916372788170494683952422104129932011142848918571915514575465583111447167519375266147122520826630204408783338926392483840680423034853534324379893791021226066945455527869389508978581284078130792942507741356074299484908433728552739347824783283349799579682132238746790035441946242734301063233569016635968625493503462518841913940120844468962432087261771945911948183873725231818540572112633413068227327060283745030070601595971044944402911783764783914960490174575780288718138869340974190169722941509495369224165685856987764260447861435293157182903921192212885921402558387713968637901871747460026637837196583400761685952426017735440363372213174885737478841073592381559891016633208862218711221195162260043718409158135745881476101376724469751440879446059958834366139866634702536701156513074196382357119303507846370089320019447530724650004687055378707289858377583151760857237092025995125593998633618734221107431663058382634034509005051386521483213562348271453002970541748766288004534359396006730336881137308178289458683518953265276702581187987629740354829097974265987481359835933806616845135477158634672982054660917763628226085314448408201053377135789043271948380457715221121059937480733582305748791033582111334639181348282345273784579866718889156620762496922143982803823985706492529947954536583179039019280740741901546286303724264938147831851669493134929111980431229216917471871686157538125667676283707891018299052961719180646888760614425734795309451311939666395176447685027554748299980718533490874614267004780853797633750190165534084416526392462680790314350453205790695267068578218662681749449695647853964940925467518365601324348482840116209919043340245133075622874382683599977109748976860402976127124000438111946331027283367947797703796824436974640835846045176433182012750308624592826690769857288089459127956909514071484364645279050258046708424679060491602678650552416315650984138081090212367131621011025110329263117663049540095065318456785697728809988611974344566819564730520678586313736771788260894575477055921257314174273894555070764864250689969285336588512739595226439236807266900040788116705295232374680623047016189461728526717839653595918472291826402668648690277513819703085518023897582615037862796771374598253690097954089207527061552083972840264889314137499262501949108824263281958888864253101286326416538521019331515187458484794163635994408060380873190074196680056530408840204174758739326013477513174341797920635285376269949716344470333910560233827129938001550590429555581409434105012113965110702692689530127774133019079932131539869395391156712863346753897035955008961541890580035086943740813314988430724197846393562667203729315497900999272344424357151052898960602351240961112377438332897982486148620243288127473501778013069245932995160490770168543133374548211724088033935580658798600241546566995019896413657096161926595703895975005408735682552762904062832346119823582268052199830919769542679205757139707851430347648161927328635929515374135811458565032743360941518157664417314735920005678023566310049151762236630902725260070147768946367653912853646460587422536647242610325982082591198707909033155922689962413348664777679213571620537252375854273005559948785440710482196321161141332685085176524426924557131516588728154328952248977540386093810682540426769994737999232433597756218796175867836788778952684899642081984896595005130654024159506396083250947307609151665936932959931602508402121907960365589712665155754630295480245424788798037099911230990986849180312185279096335717623753669420437696256639577221712300421131064686244705227723180988354499024921175051304271370870222311425584024220111286917296288411569899263318877771363216484910916737571110499068598829310268537389459178709423000774904190888610971490264429034012492376676053159385422998200704965169102356052742960370958224833624928905565510917254457968581571562160917987663372204505392080719253325420257428072173875122403973330032918100657039123171221682462852053763586576913901200053851017061081374251299745768269536454480830434236161020379716528679690714812012221836383871165337933847397656891440038098353586158477426923878058811284195343103696127159625011022284291376724799259845025005241968421057932806495813877232341556114278462307790784287274429433977240877082764626025289361740579422075156358722375107596670940162742969545358896004742171775200531745213467688905467342720187029438190561720497116780570841868866560585750199120298621966064803453746716598446288715146657663308295261877830344580850735690962132719774259414388829567333464355606965698028874143738939842173642306217782774451421001787495016370833239693870144567521897328732361248584829205008408314552338688454151414224833443871980867273832826417652711718321482334871018258683748086207702545780208027270426299566523389991950681170622019617549674612884313176283702664593240253436085897629777477094581243212439515155165177279870347585797263581884814435825627475630384396814945096488843844029107013151221273482057819450249993998809599859547633886942951256527916655959005784857257514529125618873605785991299575295772154078038750415580824779391958901470897169056680374348586753738851815578423099669227701669674773240679518316072737835098164817232745416197758762167091424040849384028706297515782069358249872340851641614946416835747415642833194500643646754270038936787159728131189808197317147250945631640788109506266601285167964170973792562165282138715890404554661014596136987005599713729012445441392163824181584348668560968611534538831615035928907276903042017162490724994409383714089960827523666300999370142091995638208903618499655594376207236724636306432088726412402497932688851228094231574102762635726461748361397751125625978587222042939287428306545008944404879174710714587634608687593372083402077706904268774962914320833476493784983305579931306141557609136722444602532555343947172586266408172485272300281390109544394922697330945241070004925267802114911550542813729393919059843541738692738025117237005031978375366899512190620339487416907319572942846020989615567940893207858833751652979973879641255098491424183706830248540859530362175951958726123285540831124183748192107785828905390094318119300266322588372132279661694616996176129144726798566884037367801835424431224216526356892529671775795287808090337145332367692325560540147464980808988917738978086292469120137778376666295166829955035815401452227721659648557656407773178969880751757933354926724059084685833588931156857322992816329710776688626501647896780186379956685398696882294513609254850955489505719413944513432740724819799932211708331739644962267130590278786251593029969345297382023449435068280490355156348080912002885837672749224056155604064231890325606262479808134612839354336997320389714540332166146489782042586948818550264749703988307738929350548336186855485575538692258328818221538755920182432810094362191448588096703366732548009835168933937496965396594387596288827305225106452151088943493158210311773085811333989631874713489256694650540793975434223787659643484918169268132195877216802188132413962545727410615595480982105778364332483767916293793330298440704273363239114969197083471893174285884541409695544627858675726441844274969125802543979886097064463272080746747424485869901147195697662434703043325199957793616825738072977988654626472781957723100429032842886271528179201514325865573410933058729136442802347370340167482111605344893506309657585236999958244481429758266084393367113954360927406177479986696685690990685612058793410453260073168701633002451619923251519674325402027595508295482622146510550855344311956779434194437582181731644063905221279869101238288411272768356603005126205058872950223751196618305285541748322996345536448870918812802140679311311997498216444587832232693765051283347702993449087580129700516429055983775851482217810953434985463811811180946384858574936118351460008498391051655693195265632392061539875201406212065108104565818328929443862252269237501701447886315518389882768503579857934883097931694942679532171655832060649308100070257524075062950296631252204716735925702348227413872483436496762505476471882865641716702953979111615258913430863910758068705089373658943811270536348138251049809746620848682938140812548009439828892289530130827085050974487809072530761986305850128166728809036267078526505847793585664060839891490670229476962952460274129457022467239632971929656047037737561523071884515092958913656615473564960915397191055459473673644029214639711759986787328987294808011651325903346042076376977281448233467542691973402270152812537749983612461465836745270618808765808524476862323928373413547817408466924237705047845889448413966541795009409226572421131013652461769546851260319500154425250723120477753438069346223241649241829800709785231999589476487371271069566914882689442883509679666486817326109697893837112721149157157959987622069165916281992449269924884548538077574937673737357552122023265514458001064238650152817329985849828165796035378761790753223018142425433944595526969917204618061325405906789603356633165700650606854704119470917937440620646031712763127779852946947507732412915594637545046694492429254547869417625152745545153173680439548958109103355482124230645893692695092572184143623656017544704336630611632417372477951365260760268439798917090068367697642306303668816063143725345388875353300627565222410932150495400336743376874137627019615651967089290068591728201571087314310623464882123094153402966370069940127354108798084377896621630694384659334116526286973299886691709016819390817947350527971959643479688566777578068728588440864524128022747215847680677636107251528378916927844000946023091227245689281038368794640432024941453950757358308212652828764010837094096790560914490404148164078501219350620893621915064689219007736283633781177138456693606405621088489278389336770229289336497048759834706865857956918583395896323108260663811357926907265340507942973314515011613438846874969785360211439576353975852917179206378267609011349705465187956066711156413098192009950723879035080034629292758151375602277438280073498117678001920775200300771663435421581527056513240567688347860312818122091131988791635615603979944601610614321802586726540182901804541515658552231710528150209517778971040109790600719484383415797382850307718275201316025297414981346746371874258017555881256809386370567698168503497363333482760703037310938435941557109821957770838745637375171631228764088517062679489120314303956627650044876583555937135128203562070248110338637063839374343485565288799985520179736210895419760178655713318942172317804190121978529971231089179067421593708264414965478202292772141555655673871631500407056693864031542605655127217469483302248574912274596530833742266841309123456466832827537366651875965409729156049347672487402122350124790069067200052583123920398661829692730004760319430201335176404896464770502992224603511734024527225742561653826012472158172033656669622268356652623570546626129924054115953231338860716038221421786838766344933453773382345238378358584325940037556485394282429889420325056627145787717342931667130743720648791909017404255219785359550592183320250759414816362032591627560446279298232464655619399616713270804361655670387475231953737034817730173130247782279604370513193998087541674492402650312203560472928126076119981643598305561046618155047125715329581543765015690585399102023700763765960606560418799105141511085962283886645426279639913611060964981835971873122085039502287972646672058892275528915450620474160983073211803118782388247252250286296807803073908805372078836194057787821239027720997660205908156338311273192480729776551032447364039520536373236282951161218048245874700473874240865864293946784601119811678755173108792704860866714448797281048849833917314744089138533793675406274609739568955572243819538038693277402850236854449619704026323513006062708070063663879114852035462374718364749608121890665918300120153112568151846789381059549086345416452899142997365679002327813913392867014109772047305772338454688676083427638696011054709106025043870998470037688379656247219866036795508022122862656793557598433713619375982897179300626491918022731150017673454894697891344758206965587577671745537183507933796461905358409917155183912842894729657289490915579741334401039890968153094574570362544972950239113459573112413858706373909714615644465922294861730911946519198636871039452995866555096100426030131380991226789438034137250205843530348069027804472365086316518648905859908983154690021528454983974443359245583151425032132856349488851866900578550727518466215457907071341745607565617708780537647832016590261832691881003555713952815874419833025982022332237522423900982547845027509041884701551018691297072833093943993323184467655638552465387465569304361494796692879525979874058767680521495828271385222470977983477003147026496942775899764573194074874461273654365093424197692735635348527944988275662048007845298813457904174097868714639068066731976923114462890916837666411974485963569809244165796748799667349649117627746833040198548172956258575919510283116116030104302064085228203857029542032119322380063201723415483642752367833084728393609138717295487663814050985906388330959021781523382006753662217308866548384830778423296252431473789613406409387047656912161039709653324469320210210681083132446416005540608073823708822661156466398722952820800656797805956005290335370518423180508338641746145340666069629242980844370345409441708425319607060769178427596200820553533975585310977737705669668538758043505670336902727756984706441697942602254978074020580464505096607090449692474340761919225158118643436151718276966863286511673446962444768590302977615490716660267387349870057720919065476560093742967367563011298678256321944651552482277556122116873549725735439506279867095072126564675402602091924031130805136243881220531113133354413435066220566206029936939759638760182458737936094901706766488522405521743904147244351581534922661624548888744092355236324565688824313997291119900364777226056721185457008475621085441289582595066823761460999358462127301840448385312466566511333792776488029346650577630652722891126517821316578639464816247455643390393574558966754657135361337941244720055050060030603213500062094675154826408859639054625549403542242112994596663520605427026998160471567344353808760767087375367188784712043320732897484778028989609515639705272141599610875741106619857358273098103553359815911127947298067970526356253307777574207971291508945803450533106907716320977601391795985388509373572951357931618354460076243899947593413565773776463123134981168984826786069920328321155441911047733759829458992168657212188331577465566955617496281755991415009016287724310198461515951392163845111563669705975886091893031342134904619067728730577842503811310223204005267608437131584693847136424063987444650862297122597709460755190653249510881412672834289245180545573554747130619121063878961713139094048181193924363839866624472553090349383677708172989212164733207245294877763510407500533251251092573467323595349083616497955221318331562960223587316287686845720931797398208679979046912070181314638940821880165740329874685325955604658229765069347363624259481765910089533733627610087740521128731862063263611709574220239979209969753524027594716277434071585670552274349886270500417843240322034546124574524935715641948550417861497543431930127266823895148889229657113948525373025112749061382597766762904428114715651823757722094957213392719103560991738759781367077986619478493030253558062981970228106708707842670547655897613541320941472735500162842599350156417568653263301886885113648241439280454863027495665669961609943846132206680418830443841291464284187207297222454733511014253040677206881770740396018999479331437643876699115900754373895533638082767584946136156258007799174153705558530709916517492392333557721289342659107536531743816574079612089330898674011038867342766685288183718750010514908251998828045843868290353652056143857306613593733167727875522566600639030072081087982890511184695099701635270831065596527884513254090865588300081856100417998631797969702301551607142676362041196997559802094032833415053035072876300993274025731578336225799620319038960993262380922291209641700452964402323516904125096172039991403826858281891568974818962523971158428475683185249932689718886631623939507146381551340575195280694649183374916447324805027729736522891138018978051058965745141087583798446412937918795711802137951068155161810607392728376764919040595143052239217247364212160838342021363064979169206182080242655996633288403846520144218046154977540880404266449117133883089935327611394352903856806800545699507507676701584115911363860207214998550964654430099612082352363113008243130413230790112480949153205723818016457989873496354690797094188580271455359954496822193462215823561979284986162873730393766923027552287014756632077838960998604024701428880918192098583781665159371895925483725031877253571950923936309489704317072517093567030626794488884312380501116537638972503617112499541535590415243332007847184407667761174535471181089709261241414053092598543621955767755540906369830983292327204366525911521721274155100120774129075792983215616698851663852458690528611370268018656336151886180796369250565043007784828111812737494705324406004661819930440095704260143073158930754507094785656128138845469644453379680005442942984669549758314259044681638405879882865700315258106191019866944967617229903836711586845097659394945298965266328360795463433468119931593812332803546817301034894248593420680410294720982576442335190091012875166857360234787915819229584299475683807471304944173167378954803683850435120714773754640399430467936590317071620579566684864276208135055782279595443803394278559167916075957650389194996330943277540740274154871562462503403872123716609562294497268308573345321809709361085925493285245998071021988823534839639627189418520180540072301974743338104635661009576516054594671302358100756287372637781302932248323741227441152735344821002009774930207012941489662472625348324914056405416683817576832545940936053259406231336233258215207360892800010010554877314966985771884865031124302377626411519477918584389145233153493006674369554959173438047343109564059589792917936396287852701419642042262487025702095238159978809548751070055335010888470548119169656984352720413066571007310342463971161679633307089379866249927572460881978459979962907203965658129695245950668255955664444433416800213225289210099933215382905219426411112453050284082686977334421268691066105758129005740072236345229260238809771047852946228080775634382629958081564988767590858560367648624749131510742258154189759820206056019768604648880348820340834727944060893277691766803513175755248610377641937001228963326848554925345990784855345393224374309209486057558709338754787495563433556476525487488765823351282804877967184665864967486246426527273664877702401606490023513914968861671416587516910745514445599864967598807792393311460718271367615202621338340523998151760294158609998814223427624093711386573302700995085732319104992942768264015207425401493106890808541721699764066954015670782793679665765764939081375721175197416450986290450433917839160919836440952357575002754609431684730659925270723966698987636194358576196412846663137518142364382822678534779905861565035559308253472901317096510932276622555173726368849645084119977288141691024776878646673395905419824411105388511151725528077838100602277519938508798829161106371255050831558480028834487822311716936432846340217650745814137252347841653238799275305159794986894414272167457731162342608861932304361861161931552094277152833292728749325703217493639751223969391097503534315132395855664914877832673820329317346356453951056517327034946781523887540458853760684336795946710954755533903584127860526913780188271356731515841177211493391670519143904021636663192930661771918883123632593062971613462804559307314672367840508804457895055234458767475824656235762632098525281898746283160924136161209105832839901874691640761833398470732055494631500202266148597815900957982253516500936702238399261409466488575801154326099749698759338054381113848599221816405349976454073311331849352743321206496409977932680024243470277369360775802994332599772638259657045544281418680012071915717824428700024099242790701503572136567026187576030329414597388341701616711532350278980037783393151391661760674285989626806156586054873523394570477011021115800063467773264083256243769889442073034059702144894883698040341471506664837642290425118406606149447816592108669911825163982060958716595153566577639975532666342874451644135839643314038335356439756559603998111816280818356033418807405419709214967007360631904735301644168307595938365600963919709537956918332560401824288594307144858579974891552204911269164111099137014877330555621259384991592471331579385931865405023486865087965230692552326478078023646353590734998476517312986970290432692507093342440207467038464084126407295323387020264463338148503355575902653577677589109088986055338616932473341557796674548547541141507523546539285294621971303514945250043811951822194618057267581424027881595091214982177313884086325311309757151653502699942856523334780298933080827901933422434153832777642802395029691242016322736356222969006673660744015473845824591064920569961964982496797869551206693736588897087338522184480976658642244019115760716056325597377046326511608058283671849133508477540278857366309975190846266180652766857604961265806528061584367298355245037092857271165728472297481547244115071169215787324696375515090439316580210589482168834706978799724653768116762545647081656275956833713060722383239561456669334268867014611128162795709111336866356799361259134510566669733030862237014164689600909524322711256339541780287115518803312379163212175210458531173513734966011865339009158981882226736764427682169903314961550716158142905708218141280685074872011068255617647356308049246954365190968851820610191587939216934548652051245949674527815924279270100401195345603800486795402175801008169146329997674585138875805424299318598354896504315011161105505373189687184362065038351420873225472856512117700104378810419808083635692000644340724575760638709510909287095787372608864488889382369449752853675856505924617154835145614744875840057523958083607448197541420798499297048531432787175254556477470685983666370759550989497898292178927036373734290620936878574615810087218592747813882909207455363663068930283061236729290855155814496087971320385323466828697637420824395973734284368627079953688591528599133261949516460401062232642622050945082057865942491836674893229560986008014523637990063088227259106706101685376158992430722779427026834049190011999994304272323872072735668151315602087156073046660740254607405026905794045903077837481811250087048070812133370421793172668051694317653155729688386178562627044294934239695440956976034869191181627159235283632146439293458899209385044911965879075580114653582644568400233297537193286116967528879370693611816111227135162182804624857482068276715041472828254363999021775855396859961699427166702156466882082887839673586278789173849035398583250822966928295355293413972040876493097551233235245072666617995667720349550735193255794353928997944987760636913026561278000156645552691047467571691974646908079769387871182168983886073984640147144213767774592626168031142174174943295429549318389456941665268432789310962221307521288724177129278572499074399423791935953081833723159714006800102394806076047152520081406814374971730252353700714602550084373604307434939522153880777163893484049115096073850397445633283401619358208918189009762079356667058034173674893389665173701264819209067999217886737171353174357405175684687765147992280018419297049647549300808510845963787916262505647583850171406634923039589173615930335459540223214323551441596609129560122919132053207313853882147915424848341362306587498787699330164895159237878031578809813441074671028929687892994259517672804923813742129401039881263839542380967226365726077336010635463554850915285519592085734027483172852785080239821691691876136219962975651481213496606781443203056055249057838414888014644482665630202226146184469928872857651858349473408081186294378980129992197714726440448603607958108980267112817688950145684130006164553453130475695848181804390560912322409745905726568626961511296454479043975319312990729641637814249096236766202602985151296140974643996197088187735930627425420466995076415933878464507213482650197044797409946034054629513002828543921483843885775412054043880754018186487740156714225925538820665080404519523759868358892761272811829511499117781541954309071295945317935766629344556001136518623981030287851908351224837336735489311011452284892247073093870186138813947074247578545925560499594758008143586409046445291468317847338702468170264527293571542521067129946935886800335749639123422705941758856030355036567447092529869011285111928269058407767356642957601608294148284687306097334634464761606752698298985611644387500974545811055002644161279149784036576328829561200288173304000827654077205338951010660987459069966266874030259271095260108474968391729595016158880989468361753135680196842161061971266677489305470833545258818884604807442681867995778824136581263426300955256553390946701100544757406759223220401233486033922733877160983448767360575659035237991891408692870804482542950434404538900535471602882762701327391168391980245516413143839606625497314855510779580609445495976528510955999851582476636860256944844882159383840657571172157740687225999124827579268053555936523282683785781248567207492266497043880547080178129677292449449522152382014703395133622928189955311575145031324367819205763648277696746444959022762031478971945121182821567361379484666618961888293311648925771462098003479585008203173030730784754725312719485543434462338053417622189780998889623032715800410302605793618139050091846650064326286571902409555482296481000998909784259517637156433524914250390827673264750452154929091819648925350067464432232648078244245683998568355266169991909105060684538215415568611875738237373380689666150120249213371791271251657882037520638333192710143288418563372592655328214073043142718388723298096341361969587740847888922309705172520566213636451828270112105535888012115287695459457754914609488868358405615704723659225961560930294087039402217212641594236208006396708671614473348060364729881051830475509949285791208336505732494122876512151842381860271060427275679322487919349430367902913925228095010342685879683531309388354850295139712476713474243744491744079862073342129965121224207531664470734798981383534077253913855711600186449143696098455644265505112026671199244826119289326687801671767181069979032439702821654940098651678349019099019457722947484659509329619469911455915878899781914290464899015160133967899143964988689300553428864262252455631467564781096991301875073457844391474805666212462848639949316640653855790746920337246569016677321386647425871598782067557560381963868580637674895564087783874453964654239163245971764910493993980104405857627893591859738982530225560100841911079086499267130003488870468743575501470074285399550491451562769926441249268029197534295599494462994905840687642839430386781387896784037015472605728169297167446915179611958143781147541205942472100487739000031267244318199152750963825461684072664018256023546025562621485517562027125187823155581719626423145719007712988254530596284407782044580071442258238264298987684774105872876726553127955480509021000598114822129129881309145555751541987776740244474893431553409750944072796038756143879151494754267652730975380323486686498721780230831339439736446208413183068072051945601114378599418695227443452985550099463689091573577564113692837237085242656634443726273523953057950139817084149667687366340824088516021937821990044018542256559609165807646915369031180464856380596385359752817697089969410791933877045569883106938908962637287329198802085053269005993228805697278536956952780754778755453512013819464738255779035917461447407253875051751798726273528590769479760636370012915069588501356125788060141438979848313637432132934041475110011224741460584184290179036312603040703277464649686217439109254064333157541273007147220875503367008274732734011419456957473710950144571321973334460478569222579285773449698262997936827300019927058571207535585300802442215285179096653065338914674948349492312488812786346559737642295299685759949168097253713662235125785650278856111139159324495667652845393234890005211797658835068986151224761726363783095527563234949443828262229265305183559292319208222997355304737142286023007721243278133455800652719452605521027770208889907286014236880924790377635648543031469361566845672246364230174487764047669683521737453405143024067584373837844907443515581740653947434251787256674234252600147850481272529744697744615805259686328475897542036830125423228220591466054161818161138606955107030127382856553224017575736777776388026567569356231490153351394685107886712324117013042262615905786511577711091913087447252248816123771537993348214290564525496501534737036765515221084982513703651220097937982398431958068445432566840466646021172262521106950915548630406341943169799333780338260094374951167109692755175156741619506137641212904477302732001772303254378929972983651702571988284109459106503919707234475561575498654902827779643175283328855655650578443251156458774048198629981106970169580537525491645327981413726335597141970017295356806589573460179673036475411849988277565921564387327615270438514515928254131779776884294473985026113489028078216057270265889340049221553681521155091332965733468287048175372309878300326771157898660460573697025285511755427177907853370236110581764237398685595315380262668088502449421447161366418470794039492315299468476649728250768935202497932203947124292016425592066170422883507343522453665978489774574258183214958213799946994338103371586092322299049807012961058711502020040564704631114028088276354745976589439507334431689425824429258894231917791280604775331114882296342420268297249492922734093077900594031020450528929633011089743829053236572214929022542160163513257629236212796586454131984502272387973502664454918031224982128415510705747376037409631453822830024985012233937937314970369895158015990478366202097728613197782009942267888351036872270147906302728797132697003926755774688135414166482303881993345734629147994903978620182499153528151388560382145327266870355071734052329388653850282420795259383765220203447712836099451404680166975091429127020761530855066337171565791021219222348326205105033152022433598189972627327461360326164802104833738461567747204411676418523665356081877025756921813002400565205198602529894657477537519387101875119064587239965777919242240115237577374762212598294118675730211235478619323491081032766640462085062984269346756567950547570381485023164284589114845205178150469653446913782457667438433872899057831436281707598913579981265249055528892346061208393655308804640523220410140139497336991081204754428520558312776388653907299146070891728220470813663802670924872570160606344222743681017901586748068120356344786284253708307372272949749685971677380028549008038357008805181443782268507072336774943611332692701403564897348285159412035522858447248475612735678578705136919429549119744694084525195383658086802444955309809725198448241209819011404857828167289710429552714438654925917875730460889616027452569647929496082843121797989276470552491452743033261564248007381633302950085790008498128943264395288997086326693515259971923172255324520524237126347569169370717270248342668843383577902272174982138248541058931271561532089441519039604448272239772159835526283769273005156852100039716814178102131183490550798467764670699126966499038524723766717057780117186785722166708734989986662834221812066380176020746025798645998589881077690699545442740236951174948361054547183370996393413797382274196487444805265909213037111673574033364145660493502279685026221262215436429383659715712244179274782959033114667918394244128495459071769851600063782786205043844876221594285934012241197885356643083916329817937583821541650912014597284026775945797689976388167318294968798821677201682619426152314585000742869594995915002342723759041180352329254748235002334386245035804109277075931990562940405961567704274703370300858092434375754753983904841928643509032952974025515039501967634722070749454476359983629143621303989471420855557152254328269657748107480499632248946787870789297921368961092680407255653752632246573969194815210822117817230173177851638419291272779267993926653779570610090183543059057610609899050833643175886685680943961886634957444552425683783902819684592110672007039736311628958718335147568066107729031187612263886005448488107350802578625428430955243134427728944190223624781179369907968957426688994865365114911502338993086414770171598449177615055258117435633434220271609476675435145137878168171002449624462096308372824724045283581228929871909630671228434094272454754561399871885821902047623765531070038192977686314635037740633177384596625215301670511213814751478440510040848465622067180275260531248422281955617827133186694215737234861904545912635739678951397190138873547302230486560409736080205629980846183827178217549906152223013930498928689077368898953320875190492620252352044582777242694312139065640962475428203272386505371769331240315268350379671511664779577414045655444904661234682588347435114679452128435457652299325927701089579279726935127387554309099629521189179187724602964954368014582135428459153477602519928666852429771994316470615962552249910382702164980877776373752232351109130079653617971163968186246364768589644130441318069220005858221643781731664954999240766933262408994688077476544376329386235625151659794646436466795564632078979630738688396039930741544871725555546841527090880069987017387611517179232753157519248653091089572161442912146193331764048271040276564848229186416990513325315676515831204841570921900267217556904215346141020910892198409877728232792653631344235044209852974361625993145472977653333723741865395420385105611101110807590808801726118154965826183944028117637445868909971335065112508388717194045637650952992284346400901329368632000601342218008769681875446885807175038466758895089593664109381749934357142121250342019679728895162625368147907304204782340440253697315393876496035404643296176069876865650256309834845727830105823807763095951238577300134594963267862707281237553723405680370878195014095737521636271526349503599051161346299616596863508544996560481240132138267337924338176112050655086296145628614829596539560231740848899055187629195622494610121247689536984725878649555025714647785153389329608733373172422687543562798289023390938107706715083131637106653432882982238572137695445353128167870732732257693832011382779711418174871186614358702650918650973124224314761631484765830143120436608913024345450743696664935329397766772122254129597805946177745272716573345219500541589434308994205591189730243592240816261263878867235065838926593339294314875062245873137577573507681580390299360601586471031812983538528072876641394875466021245494612773051808061331917106138799073944483266501101240582086680280300238009925956598019641630824196767523914304343309484443648643214669477870517383609117478835995806367070941555894198018702844151686831984127870009849863526658011216489097368471832236923723808099501289535980596572584247835065357249336534406429107468418330173674114762122336780748726573780334064633885253363968015659600089837139981736972136628428854933551441911709041689571708386210590035099791574748635499099262985648036589545301673578065699183499537274015125105836779362786156294072141823029913308105177693236283968782014048301005953450651495396639030700216785753295395559231202545228064388767616717938272684812366233146614709714240851259366350416723125308081471059825403517504198294559390885735706248797053426546342520288202792007943908302640102317879354387413792682233677480916598065585353410864110708834231419017737917166111573874835332896401140024245904244675567412013332038351978567303509621619237031520294535759310619645076454549474785098611273021024086362958237665902453938344309122590962148251699551239174916511350343244471844254146974087416633355606244644434562553212710821405779648268391670696527366548294220632985859454959065074226529142959797731316409875087683349463760894192341879701986046716474197008777698937979426277245864250315388792978410784089452859776065046993948962829161664237267051681284932235988389408337315612693795529346718334762116869264546758452581383622269027677294602514118452319271187248113829580194449744055378871732178428426216291885625564617866663635400951241249628331296215407813973620795941804827863475669688514704445908759957289512060289937790432640636720421270966139772851954990230491949048929382198995041167873440551996962831252840019456916419051611227317408823203483976381592986362791236962716164217473303075907750887594685971086512224475205570354662477075581508371295365373315526809336439340248339033057381568429866563553129062556854114583444043030848629735370860287309216159821718677063084950084142108281028297489754800358755208060485812947932357320838579034875966970549197564793461229934946882595840641826046377191343193727360546734063361152003555229544165286703677544608704139424144581446140578602595705916434881921952523042557025180537034833293767227820041811899786016819529649617285374361075635373437432010935196943665440332603583210555997262011972958112616788075703542386739069549678575040808235764021027703308601988599053214439298065641917886557481774710194888640555489899972507611408504004804562659760469254289349463780463352106488841162019049578344129305988868196370751265499947096959133174704062081689834872805288485029093911085551497392860054887169507074113455512843795160476977618552187444488232410043970187815997229568613026396495258402894337587123077489647971265499849834039710077808854816176395764093598507147485363788168293442552005819498341900937731437412206049405684544730596147559218999105306851606537009762527442595547871404833809724012820585745817218471884028018655970135951889091176282948594677995889571220298330328622341993615625881797124735920964439117479057911923798481609457712852802393186647958573843034054883907305187685769442598117597966753028148885187557682693653364024656978345182980485511705942608343116057115971271149105863573163223149918943332379437411510026238372600116056496763436012918244938297523484442542845004142423476089295391631315588965103053488013815430656871013330420089989430078762484353296009552342357967574459521432817917487034596419992692890525105199505463451694787002617282759076686114397803928124358157262158199202396707859168695265724821322870942556964220729304738591586086787639893474641365226954348351145555172385955360127583369859125819791953856115981412434756358537243546487378227312633111513021082961100327975145826517312880634004568625595802006298492565651228787547173701761313494090491611984543601373633935035040347635452393447094257030184353751726450180802311179984812363971736915818489106371148366499001736118347136424309677218457276929486318825560081901757592946300064197593897495218322314042159703457894869220348112418793677878132146507434977852052299079491574026872515037877711727111357864398525196061239022412774969211215784079495769106326091339733968083180872903438203921607080139222423428178194429209009058101274529462608964838661767269714235203837868949976661044480573035101201362901299003419231806439180225863414583780240249058486097998369840678749313242446735589150341702070835836903644377967509658049719070773636274673859885960677299604682214727753572745964290644947109001821525258337710725085020108552392637924613472704981883207777087485995311714303759564468754900802857937531015866000129471700785357939758175738607131261336708995482222327611515085590476944080989366003714946104652984163243938794621963680262728882110372750839553259113848736627548341212935064630282883922386338396928949098445662460412109853822203751641249820195258481536411568731251767377226471403412523815556147632556205419883921864340209103398763455404709514480236055840840555334914667525784681561029370483764282011819504390397832894769645936360594870827860692539714480441972906583100682919223955443831172670165700813049757567044957917620476184674895641877285658176072481275606262833130778818903890018770444611352036639996017084405001024309392900537087997928465311763465621282189145599287259392893930869577952361813141510486918684307514477242306695916206133189141400017889489405208198736398808668570993928621214136018001376680729653535025051005506425138817084712687270245169832844852975592294787654371961637445133176764110466401786129014283862916306892335872182608131100384927958311984448490167330920221388877639203957303623577337964515434185789806955002232121589901422496398297650040750129921123342573457176713270075295895517784149073767370535460558323794289021894878151065058027936927619291906314670755302736173242858788620042468568770379639773311165714316043200707867895592427637947851530464165361938823592727099848325768246843356260769317919269792766264212178863935646952705492071172816637255396436953094343405437397240583447990624599177458515912713313022824270561410191038978418223237228965873744325099186943487848505237143503744394724854343636138532884373043357021084298602712422510503420993047360721890150780523665810665246757340072910871416849554134153687768923573358101153350664322604294791660613172103843040753521986110698840355461436629998039195449660406131221994377917189969671655594816533387853312776814938201693092307528595680613435048356537426606348597926983931080952324474867292523500804203402554897947016476444984516394026696792506657982373408639395235311507376068502485236516368860583283573058824336965363309343989876081390692933042252802156987459408807256630127495714697347082598544343020577290598380695158188918629480395220260065521182729535397534254367848558147472400194597073953675620797646701121347099080333192200327400433678004466642241923875436200643516740636213433273848617702354555907890961634039247279182413185661625857643817725578535048777027919056339400849000997022929010792946308512085912971319741308342058914820188730802226514309958380498675537564668464197381957681488860515748874409660349851427773526364759647699653986923199959346838372226631744847952682709806389047524041070340735388736745703110260663500119900203509189518375317189861074564243905353160118168299110792178938946126259199172869318575769801325043415316455612563253968347412478974844580077368330621719945089769254530723875167248497547932006028408987286542340700822477118095464676623613081535447105475872412641540232022951122313289566353081169505927598321917910017271907893941042879878606612859011834329886954852218224788378240213686410770581090375046111054852612853164085964033303807319927291402059185616365788671151465026868990273326410121232317895208409973322736578987853750095553210259539662073144314234140670051331134211028805751003589216891059916521037385598679069691815289786304713269283539772379454260678130997158705351484711747844982438586609103012577157730229385699109982644908964892283547349994450955441280106799801376241825854067835202387106855583731247790133399470427007129297451513593115338415360894007444711043008633472866079440567282786073868142716965932115677744207271164583073714973860577482796978561405544904090000959166828422230910568543538844557303450511348940315726220218678298110142440851063424721014641011610415283087244776014178069004437196209480989867365336422097583909642663616431601947437731927654073854593234058241617224621440210587448011096839116256099934513153512075053171508294258312705632006039266449972802409352955902480765308810689874397993031736265946861427347535992783667889350833527719008775019644935023304816675954964942246910195860720064554124823255486728125081418083211081703129087227699570218287660063869272186070497330798812877210568182900138610281398034616184046153742460445221523362368173055545341660994518212779043866926169041117395360846216307466885725308578768327667396699792361748623679874460863656679181292235580884459433286828669107505474974767347592606598333169024991539053498120174232102711909602012716555358930634999330695992094397335123907487264167846852331072774435272791723433173624914074260546877620311007200314705814199136421915752720683269965016382239082189656303632560945199849923996982908040909516257464600190574669739220964654505116956566249761498309594142564688202387467403280804873270469565963157946312932899009491457335802554275977155967405040344536802974583575104107050254462970003644032626179468123048524452940379358159585712074697417597277188543014420169585148981621545748746191609464512022626299271774609184804775587901088754741162864880209769879517407376260274570030258513209927579553027025575487052245533039633479274813928837556649995154480569412471049781663976723928032171995213890287968754563513464542007768194265322897835123411879174693274356815303999412141379058357194965534903416779891682501720484313052330094491365358197046430450276924084728584870971129941914935479331521845040841799722704118675602250208675556975131047020665885230758894003882319777497747208621097261640437795725107126098199605842157542528928008027830127356859949078803527747433233176658781912883775864488556469024132912649635694601388032505862764466985995467336058999289568340675360308355020290765472461141929022550814693322315148951740172365952702716647332075422045425231312117904491718509117892847501975579721505117410369287997029412174495038845779021435769256520401191499290549106470588715408214968713687912510395659764806589106001713427615829627898371501005863240632098681562562451979043491537218078830511687045139856705222572769472710127797388342493584645493883738896297409593244185232201989829228895237459593288770017034525860983241828787094059110113322732943791071189416317745685668079704591200993775573410330298387967278433807463175864753886846916402613921261060744521665657389176520743908413697977206395926757537798655405548913015069363770979983248898863941728570954868563867093852361207903117249359940173554218650006938363307327823571670827708036063376033936248807921379635018233936566366811376957172181270332450340669364221513337584849892970193719972315638942047045494761075849430102360922629436084826462927308988058998526421808511459764301415021456664971632484712599573585762622594458586901446623737319956714294769810137772866034622997722022142071637886534291793083058910429356143252286423261235090442200331177645428613082135820923492760115625804030109021433002949152719270678219492894912912937032603397715559506542981458694628951352704339021925899748327505918513818682938435935178026651261567801693476048974928459566762607533956299317617759904814981607757455422455303514662435971161507097052981913791545065645309817189241626156394748548557943619124386569972907846130069102681252611176857325547140985739162782243824414773714598114736306954063604574431953763511386956318957073690265173429485082966217232267489789979091638009381145476783442737900828804811487546664082318288212547691779351158284568578511977347065628089233520608077987396215570196191794427267248233656321802014737128349909559601085377581967016943557489429345075930234932234749457051330565939013046887982710111979256520510034525007114788353080422627553922869160512302653683252162976131788856969767359830318044786894094431202231413597972597626056290911918549679187948786784478777915987042793446577490167700725024718422153341852642841736718068655866912583331052088087277307263718247230238583774531895641370837911699468439138300130071037349914364821547175711986067771054875394342475218457684628529873936348064475102310183883502534631981875866648722397830416936498994442793263459615337510760354620014286698240636428990241749936463243315319744674115173533464706313644377060704738137902653611348233864021567165860342607357358052662216898392509263207030623039139732138734461903616477533614091138587713974041368294659483841131881803780576289757008641540493123589590877196561893547655453082048507320623820846931880020913202124108953851342971621835276481545563545690646816200991558425313212023082383993912366803322487323897430197997568425681624841929555764375602129602282576523727775492448901465071233437714235124429934148156304148306354549745513583681314572574382117693674403417606548835979398360048058539187278860139838180792939843218273594445625092482326310351311283573672375534997801237346153307771992935636913688300630074134473982982889145909776970215635172568790036701230426991277028688311475812815837553502986234430406088110003374100681628875729773269765530503076719244167266481653286874516981055192408285785070448311233813682457369991003632858465040793691716523689435140991093297705961236961380195617449331824497810017073923164509442144618233422117037407131834903512302705117504642260870807670038007909682849241836757282778848045732099916766925620994587548548111677984098525755155846714607078937527581155497287812622167262821890605541463849014777445974203275464037497647311618372702712979800357516929362869494113031601914619186410817410245450891273230698961024315493249112017886975295934845104198029708381536983335221520263048253646614505911123076955688868904968595994581513274347502197992807221948212054110218643935301521052996519157944031274848779505363376192331300030564828693497646330406203374895227746308645132560430039426990287243671357074555328519248720051103839296961796230165120320942786851039376944872850177133343611305866810567543483728920898187588544657968888726004441054641884428510841840685952973063159517286234272768109868117451905263158218455497299779988301356964055456880685511133504541892765335970059812375574800055113685393861683319163408180145503792688518692204742829499731853385953001578028832685949355465664151737455486131552382024379250993267704403179553747527247212088599430121723033887174229748710140808058876356677229856785865489743624491615699464183675581197128516154882881985663220622075050586148267096045870200980723932805187721342060953890944841489667558536639142360493867532671213865044179341387280023771261250011690026628135443308084041339596661118774496269446354126842329988856313033968518047341847553613346383574371235922212684821960408611837244284713028228226100594622823084859068024309648641954923241900919516818730932999518076589129143991986034565159012839276369541552976866503072725525378533877824169659432195260846861711514924038614004716893859031161991757802866438283712048174668415219314440442620702964706434931280340637952881068445617169548525929637521624839006101688145285213110471479892142358336466298437624200349679903886537869853217754527158469330690118544816130449781584202922237063324403906448677799290549904906260815014914339281011238744335670475033841982755613917446587614118272640146081187108131020923137676058708884871188143750181969068178162751069429860105275948879145145252007169850590804559911432515284683995093291435493436847414545723285389088250031528337659032571272937118803452276957187914561582971518480902412300781894941259409850679534730528440234894518912183993212551732920314545575225880547353645525174157948010357413062695768732799336351563345905411181856853125907114006982521644766858262913882606209632179883159968639217138914653525621981750009840584442066965399933708226159348608554839607621837504956805995573994678793137424377978259838825584007687268135973489743689793149313717205123079251113037513282049829153195096253695086445846791730664514658775214007994031918296297936252005186387949270036813599452246408389192925085054688154106617622034907140135805855081696347284000560390207243690449815551663348784157579847214760337563897880789333008320613020518595176551023970740280688636964195520260944112833617057334903234215629924247776115370120133888642238729122791491762465939764467642669822088634394110382314054910669947845020743451157389967638846662522570559651885269016625355955422675332546004789669049551253139778432725493958939056985613931526943615872366382365178786829897044027572515040549934846428034722957286621185044239024350439998696964594635084467549211903569251400130600376607394841134815628377442810431252114400119981916142398345705786055418991947639336112855313338650202916476823222182612047990338522504806447896339210761096041416518627920495460470345491745812823941053937356945517797412955402144393708793938457169536978770836569892486133812913089989521530170830958625549674905043519809972471840340966465299742978787246590974747522972330336943631483248088084215926592121197735357977758656769824981213022359795696233309598740572621054088375159059497506569576764806269031646203714861409146254193835856338748287658509321516445138380159542990400647237631852528876278223686650360401174299839497297321903209182836720946850087678772669633357553845800046659351653987213354082582498528858683219027465464638339242400393821329248914728058936540434827817197531704360946411036059031064038943333952487012777030167839178810852478285707636328830268172833132466582520274779202089784183842854666061300577558231560802932212198459488811655779272171302997585394126716643278413971976566847433623661221080576516775035133275257740529893606795813466199787551730174640680027324486266614068229350073633209379705329830269068877962171658717590540034253848765858514187832914567531294333955648857994759855508384794532595280809055702916481671958577899390545175252940383356544385642502257484995437358576326833515971819303531762627864148203542481475307128981385854009589259622065247623736812779820348332621425749635116708149978812613246851925229730829405009246654203138920672973223989485527852207955589277915996898034471846734967077962040257267498429573682428229015407640021544861218602451537726602856275141373878007468095359460244297276558257613942132261866409327755948233446120600373206212280500872430489227388159098763943388407102599163219361782387561136541040897228993553653465344884710779095935285675372357069062688014078323039929088610362191132689657951256557907203614084074759565199261298507135992701852298265159865446495047708469066772313052691772189710008143535837227673048522086472245954945989806473274767390874380136721648446684333096003336299864459310326830828227152399209665689940337210761850245646773780480812494871695978034810048675417065215753637775593557397291705391157696930261919757360470172437956250056111484440455772120381555158917707051745678042078190148386925008468806894839540523988666810170392253746206465470022479036080640761649527407313056649783624863220395469733918023597652995939257888667645833867597599720627139620450350317104445095126956290083544196802912918748597101593271846789617376317359325547705275317829764461903520199226596954400605752560008988211695748910806424117119883509141732214260409116402617778923060988792091356954177300070011455882142728457780259837866880771912293387123498337205432969040737401717004888888656837584166830734888322037686706581749482367766585088265773125623807277371431103620770928706854200447380073645329163002690954113805954562524679203826208215510097157152643483576328677314397926822551525155137834354734027717256028626889589897065641315971895132830193396976054019794914536139239639751463779723262920111777536329261919281088520841437038839209439781163596817575674623496375693391133885915629080804219818114049990947506846919537330621186937156256003244453943911979855175591535160723442350886864684480405167402889720813508972246181055987434274506628789929481023589016100945392195022473770133280863665944015875725845183423434376580720869662613406588701793753428378607177497022506915947319655917524285334366352927236501603799976463959294970778538485953997347904728220810232513557746945169449287837306309583710036958387069701487659141638794889006557496351228243999416308257993241485844801788087263127568106758539863629762972632120799251421796047945361601299454086297903880327158414821361622546157778518252582581610265578001522098055086930750735466610214252122822165873035324888271471024962863218667423031511414963155873033352280199124682323042105923721713030063426303195422126686686306759561110269161524689814971867972040832973452517834967394017908759041884823362433839857364125449647297242620029262511292275765290485620956968547172160788876836619334355964524994164007290615046983462274395714499364391133076267304642313837601557051627826637268394207438605521565489643342172464992336733607099691889115162105373484677871380157624074008729702191495050363962299185405890296747970410801949366139589490497716424204809880818148510306409226945595162240844067213632039216450590272993199487805882339704759595715125776485726457469523747113559362083356816627207961603606188921286911135557896539915516566110027150037993208108948824431714399560357777391514389281790559254005581567926965591842996122407649562150219706500159577592530038032957124435273337138849650430212133188956993171806248342528432784305690625397123122892866960979625361742942411971197477450735616844618074722245160523690279208625195589128678091626168740708267837290527162259900716157046633047199813865861596901068342283813528581435248356461954961557486718513864368086197296456132633963595356328896828712556556290777745215471066997205511607542909058652952601029501802272362000609741526491698181936830854775454365237797602120691799934910349084560437699622069733552908982761058636475576132449383575226246543392575677249985097708000844411351538554729988107977990655800959954658544551941005502251851173413607275107894751144791302286582505422421414247329437518250848833525464746663258516369758322323761846935376646690269583534982730756022757621350038954749992149874629261466246101495714139860163961513809854141735533479258903189772004676063532008406871867376114699987990782336440553696226606973063709838958050929796596492555088673241682642848466521134538708694632387324184225976305668885057502760117541628236681293000866305443311255813082142875809315972421950223306960833374481394355977894401430242429706434102930439903891681120878346843695740373996708150617957660156332087826518140219250854455397212539204403596046558323646838117517216565532744212984716820490678148940345751770584925224467731394479496468797251124829788423645038613962570518543447874095337814886338559128260353589696101098202683498943053360411658669745536199392238293389406557859080085139297204237963891043890740028266042199638426507402345959525469539266856831745937327710302014002682777284415516884626597018015159929834857329869294423061186772358657437168099429713342461121984886476453643301705064228159280366770610186382515215680347123830647991099759869743792760285962604389396799851327393017444036347909874576995764314816043334384915818831597235831971651232093990219942093203233787077239171358626461591691956727555002150960878104258597628809220972005268729335783998474332597380908438577670976516307782497548717122327335865209293137025487149733303695825625356624406090106956264850872508360927371580357440262446579258304555712743141618180116179982591865455128241854076169457529325033977497144672665280568459077930330463515983383091221665993627660552420251934018336812483330597336042470059832787283370489134536584824751218181898702858292371633927070306169698056811972569524838376554924278051064637519247172908770502038926662408371955197733776579763660771112057165721109513435595115353189600546704220189065415476925413554799522477727023078300064667404139980264022878144781568477689566495987426368877528752663148689806063101363765790620336142502671860531483453801241478703069195712767041339949119246542516274289490231632491019876954623349180505303726843293901653332888544854563895148965127708530095660687346564013457455617042517352063700150826952497555985434016032448416851450509699741242848185422252168621651458939144099360137874053977967487340632743511213911059711194103589731177793372204644642370752435304956451766289699372541951637796358882167156547034817915654553388467018474070988416052577285772119107982085810421620909333235118643666280198815637399836796181347132867858473379688485466294702387990905521820325690124783803606143161148908102329050961961339889332836865296468505144253029831813678250186117967749198872206057910020956712811662561861195768535353708128511761227056162902903136982111845099047160616743760627970750818757753756124288122472934574772933277130240671896581670559483590874621108638621293715469103579293324449444120733635831530880797446265838296324386351403898883695343718406199836562139095494377162664112808039885942185543119835862497559811037959606294485961669269282308964462194747944739990905123693376901016026406269735588074329313835170653792574776602868629376009220148484785785150829966956465980751485393756392498818333268595398171348724935424895402384906564067576578660325552759083292083340042186007944624211259281444476571415234802670036571120722149826526227705567518805792132044962033643659889536639494175829397844249430484656136320832674989355744562479742932635471518097686087725856591441217301138734130765889714815310413030354855298538001063355379073376635307765418822387246811265419803731476057043980645919590492160588859924022880721615328964206048343519124141837196124849810802914081892268071874501927386015824692355750664877828533882446425881313706743419774660587705430817663641760045512741506826798263634308804558321417235207938710428826583495207582983668177487215011051411029149247181551491572113350763732533670737999411337124319724552841206834421145149470583876725850407882232305730450802633539972139971196231943756844745562008355814563835697360125699104108336173649979059299365572472269354912161866516214558866397429095361793556845924993482131592787606654808633992898669328065495573809390822915209796775253710257913188331567732672734611087150672401789054288307707580000633566754559636724794028257371254621942950346514715441403318311027879561642759105492392945670664002994838618064712316827874334431247692357412902622862423666063750519515652340024874672037911544830446548863104689324566227684108713075620114707574001609450394484404050674252662077626234551641559891659462472965018546757655774821964831688203214471124454195297267314025604904446848959737898489677556284820264335878596174742898121685405876503808934778080261999129080329648912338280500605904920735497369206679239609650317147715534948470034846362080739035106570999993135455508858384306946858057223177648500673137759814642678698177803522653826622840099250050440923962203900604927894787583868211175737670425777648753893632795733079721350825830520216198365852607649641015185463901165018963532395964366995654546464401532512093313310364457030313127994299821152316129672580425514111875252835230278501379187866773580068411119359248549415326048348256808505373321545077497612852436338394094711979869958501192970065333112584099778980985601241094056299406338441276699869759756645356242929495294907809592897274832366798662139062757475717443118604224222304362364094061286276418275962936253142155359117001012195861641634110612107957469318898660253556570687723682576827511885919961829836243519597854202665632774875311485950999353004527397579781333128763344673127084282158854513188199978652102017024588205890857764823831064909252286028306162679384209683807011515423408350155166011130859365694358717149358704637476248314509143019595789592385936944291376951789952254603966193310329247611000807643304501426952080117782246767832493103877356484367997827165122530601433136366388853428384648893318214952217439076273354770281509591831889787745276751826957377611772292391234796209911023018599807777437845623530096378307207502353210856603628392131465656437702338442739136192491044967323748200908073951153700703317440341858698086786174077076195791699695250884022659778886666328968788231254962194963799101603993452067181743437720727686401640400272181268803696401039983296544940581626211941515969173541493209532733106194565264961024375886863950408218168704938903924879131376058976179410815968212125382197748569939583896582227164418061637290286632178164897451798300596797236834206728191770754714361029880861088535046249261722446971854436750107230541270919415247562249256193352129116383369837595500815924792804996710759820592433557650276467614204098995498439093052227759344607770881383082588110028056504244262907741839203992712287137576009620000941413019317316535026665301157178513965342255130075335120138045840975468228771428287173996754456168473459261751004160908533094708825656696820407378974312657107549575870559299512158320297910507578506560948163171448237354688812031633140319178981860793421142734524958007478672990843823120870790726079350173853247870945580206707017891376533852472110004812289986532126757499047108673206815382249831233581566165453921352097791886273102685965543724421570707090201106764387212347163375482829811489235385797701230323506770552188273653735556293043645075550209651801171011734026763028981930423389705742884698799973120840019573146997703277490225804792812841507864360025651202756547500406261898774053285885679763441242463022316941659252920934564066222147683260156551610143406336899472706762711080337239584708441396701294582675433222926910816512958972891194444321380995080455732745764552017362438045486141577625030983369581366699324669092878590752409872866946159290377619086196717427173909014528357085465252098352351658583993794118096610076895110617212734721680213604525647498785037390547337723574684384640073989421816609337271964366560151732907279947893233665175019280023188433274499713312919495149657768007386148156379883144089568579354602095832941991778000518941486347441808949486143103966775518035357051566643800895864407877683992449123136968545564972634414559582199211394386453613945857845884281798609073362817787434465291533456139132728352362332292215092488255029493470553798730692203313993854663305389763198749789138237855669599135649359583571952923396155610309115005654422398937674945276063864364312704338066398373271985339484546170169592579539384518755393161534104280250674754284200403630725118824121578691654467350183375827045333888589791741628060631581773437162851459196202016510915137516746909041968745484882468044149398781628152709799587005963366218401754380479865722188132371535755283660437236057738161129509700127072572567602829716490265866452671463402795536150055688459993102475810859633191494828062089236444911336930288513015291004937554356509669053952335152681768175039645008069509931016472773666253956865343615437654252391106698646818838540745062364886802420435893401674894649004477660424340618560021888515703938891547151445417361356781329993150661010537261569467910079006163030836816838112844869177862377606494243283620346498954744337832799815067540280242126985432228364415827382614237332552522597683373741675459715779832344795947027716101638036024050145936251791231237596787470981911032989817404510028663969016241649719328482009458047227294804938013394822927410938031790778992874929103355127292545016232676293300147183938034629105530053926852995006330626420473250919661432985470324643205645393472705578764715428813798271798839103870831267963916988827911529670381244560906097635162633965491712276818939680330218614708737996869667023586607713989778788852847047666585775431297796651660321097908558311831879266910369527960325786453044015129620855331375867659724559719620506060588942071801232836447537986382240465461153843736955252014813890193476886201470491751015800459744175044583840484352721938043288167769983073761337675769627522016643474892364930669046907733516221028010628742178565777146241742695473511331111785034372835738775419091771724851321490885671115962263721580878402316730252173614451219844307664613103337660498991614810172076080893408604164723878533299138603653453229724926318779610904743193562006251205175898430141138820236157062341185215756425377090883292038317512273185284420059854570867530216891548590049393588455593979920053419969740894470158802247373715691924903715464378332804442598605220278079704234308475426152569315529757889798676740865568049052535204014567387249650891135807766396928980038857902410941840623970278022248672400494478435306632664359322970091054634100129062462796142713812445738210109717075360478110018925360732513157368347729679149706155525706257902978368948234892119467949641975409461648233818893127969416952518153437506935859737103826729094279416085330292902269683787492290241730890773947430330723762615162346197162663655451790768310189242399693253270535864219259741541728553738334920148794814886188741344878345499451113641712852972867579570396763036800957011315498377626473159487192742608152109872938698531615207543351447322696984690796867786115650845075468960487538078536303944255951368468173645270962227706767159981266395564552699756733657562235846010495177968930554022661730278693376182905475752367846870754905850461596428697300418800541319735447587174390114307833495912242001533645799196012452966626518551367546837868826886880082168369511355572620419941435697841219704899690660913805763893925424451678161760724852040042436072344996563210772012106125587990369128046275222425227381797500228567627397839129598419629983407179460545335652575953248282843810411004941084137656444740193186165321930934535127196734330723394658281735870394972196127677381691090329494116733426479125296466431189854395718081078816928817646061024928113903332615385743049245781250386725330594935099693097264312875878083843241092359190459409143348692304762059637127786612384533091441230582159843877758425462752655857422687609136229978543245752421983634627510542908738123067028028333801410828469920135135167596108001374055754041986614364014658012069014952787009772374588517130248228693113910284904516683296771663358580447210560533841074485811029285099860709604412235427470967971744932543669671585607306635996585299061479375143537352185698105634402639973142056330055917362919991097299195341943079238360954494367783714036373938024701460646624629779500955785770866094827375837737302487384716149795906074179949292320823469397804356115923018911420081530141470916271547479103391714524767481500666457713785795060620400458640453164986496411260503232582172606383261974229287842688506840123898379811445161924034456499825267118189185166129730426568367539561994509814135153129599162849953008267324736622152543725919528857912291619335127091413612688030631541020845041635861865814158700524137418555095438062598202456997816871157213639968171074760759951974718259685363356766374235690854762810590543593995795629410964441717587561305878921709857729371854009422854927140672345611210939107644988634966625759187629440793287675894906516908636987403713846969060299075012387707176681727368972225378944118183666737141344524932649680477303184291438708122022003533215574330629639333200982347826480703309809930261386178048008480179528027369029745043897217089627193145193859740565594383839101550580756736291915370393896907032436592805360030545712508824491487282206253313352718717324106074352942317895534893853973079839279685548318093793053366690964553846737969353065749107427744586099952958811675681257097367528236023174500913081848714348539072101786675976620105824040573846246727899197678985163606707286830434458735956595128982890021052047840728064513521064657440483770389295169056955974919444735841926355357399212871042214831460441589549973534871596784323506489806837290464833750402564075615947485942121888345718296697240932990626768863639832419355282152000003182920657953858806667613418087068961878627942985835406462806273842575622160312170622477685794473040608213047737593429134379139784878126140025158887717749877211196348676463096335412246723386493507017100517367968131653208649226961434980323962670785272126005979752922243772997054354379038137313587923054172911094056516650062191657519094925590557185038299438543184444112609936344223710192546042150499085080645869337770721361762511810749516090819020180877376765657518976897204845903959889654502922055660252664243193774548352337513435937509581999421874087957274787845945456268104240633419648936847201484087927359893351722876601072048647603969610696438343133517563079287219376324306295515577607818577095203100413569081594515816185392825867679521567885131989649375341691738658338407007379594333013449128936126328694021495729990749805024877603472792048862922738253870431744665395449821303795111944500153270931366789440048108266134785355260916930253958654105786993089957745528255150300879360444873877999450517587077504188361232078099915864573004247784674693389590733425735610919738223420978169437626471936358000164099952731892362530741536635630295619092606180610161182094081055729005013273891291552544213454270117676275357436770077700352112486923104030706953347264370543628704319734081680420960539116075002880474567416241604573807342147592764911971875856309220962778304503497575377222216110220809758811423062852256552805651684521082151441563433890897250512797019061706507978164687234928138523974427659613554673216593253998197689174021121283870686640681311014382540868614387242996698274297024047472707948968741549939941302726499618193333325650236801365032620949127360892568150244936125805788526543467608311581266017594366660196305084178553279950183060531950177210057186703707495274022279319250054161502422615526059504516248111856364823212405297831342742441225145008992195363588171665902597636200845314101766678185408014532532964709595846394562766540933263594215670375802603649517820056427292278582243474890051257264572557339389258687910994355431089829790235412021656503199960769539397770773929077696169966572281403444020863802032707929772823253745103240566415677384010495852344418451327482541214282679400419678187000648312740454216424060261494568424107437410126178920558912271514663831909956148103044229876479118390880040521457311169005252493050732394633949646822007721342664635092206226315595221727201361623281358057298726012286345032484008839776683223566462064486525290957350753501556556343725840647632223452069325872280960784821247776243992538783080673270801303208442857059498205233114499673736243639129888048224932444944587792987306869113435820953688996829106872363426607862917907176273351317030452448551337340326997490863855025085619297407815679023524110959923110647229148773411528489887452388386326266478437837066339583102147919506707582835778774642804736265537779799429181287409509885835876927668606830601077808060241353875051770102161495008926620701863346268306367537137687021253683710330246512529879849059996389671067453522751411976064840468031462876566853318816556947086851851365568480548596502130755991635083994918682999581576617820406020426326513477842181811990043201503812972793859545436291537390368804144199052196277808683658427580640061359810279995116768635251058847348492897694616335332895638198656988668417599019799620755085027521977837350396915599021786037566092126664249113516183726313193689995669090417107631225242680568238775789454775822208309424316278506912793313954877259816449747971382069115027670684654440501805659908205458754709968887476763198563391449859583061731171618960211396664095496537884668924935923523725053895931366868449114875210305530494974580277591319917411192184097639043392047118833650301188881280116874923004798231801458602210157501920266960561593874045025999017236019107025793629247103144865542855618102408087404061569307202477743424744588325282475498506479517331559027907612690272299248677535005169474321510548237428154345284476488190355478155716820845298878490121569932065136498148488921989744138667281588539226912692095932696734364438803465681144773220535085903010034257207974616291462974563847184020784847964136020840273500171097439777905770319735094325174689665339556236216419755887521481625749118375658714323350607649356357177820665266983275456024778518988723251907639643213788364726760592904014398217500808114892136405896693973883632148388089277451990416028750093311880707702190611424868767516326055617272808223790060032533325585689538610754926175896573279779509852898508935794412852541347262056810948212478267139372789705045346147984297447257196890124464537686255038964118206683883836587689889589669382646763163779319709212458022407263290082537496434546531842531405023880402273367977164009104792840341120134929583642668667838215534322875665009558765941283282528498612626135608882517489723378450633463977558179893981389726899434241509201464336521732342081468695099400575069721646647921412411513745027824662071232646449424852849094418785135526336621675082606894668882262356551573870701319687457535344410248835928491758096157359878396033003874181868165825313463085640744315319329846457009429263871925310945340368834820971360801692812112459736110856080244163966735834046534778876423362064702076492398923977975265620681973376079473886227779893658165929714896097873336632301915463642122381850923152647299032261107549520290325553807674624780433932509249040131451439218420199993476177771611220390108523960407845709996527548032509191798744394934721996719947251733628611109171211099961905301044640481990809702911863910602485577737155568965389503782236954938693645316630912436120500516837630358753640646521685646383002182536743672481978859030665236927679059193266103940482028129774546285479745803381368608800622974365009426475188216446543408447817752949962770747424868043519389629916069551646545450889442072848634840048230438011953357387294701722416122118387724373160418668621458744976489682528954836520578184594765992738973738144676271176965818275848059369049988570079971285262079442487730025228517999338968500047176086322441934809431693056565091188653246413251072565808957204223011959722906090977185562155902238480670023748291074412122182959605391099436481648103272895502845061734509285836031399203995285491107988467080802492374255018191493615425210150149625870919247846200484648502731235276282855173340560313137491159929656613772072169306695496964407904747872265888608137044356414923144622658650094216730521506100862422981640298098308708488449610649182302327089796677613648000162351597903448569170339092748175272086262186006658902282329131884022763654930687944591615001490356619541711399193681586927964263902281119279597410683277342052050243275970830582638682097744774581187189788979200411955084183109057629991263568115444989810090918968184718796962357106507382818453876401341966321113811380892521425993558466268086106449367070382466226793108112453813889496304632520944064698400599372910486569809251008849261065698645844393625366108926610665039710066393766646289598570143061076249222753625383703122765607392057664450263084805217497550745530460460380036107447268953423577202975123206522250459621844295531887163989139848071089928031233881986876356998022288314122185185302276488567059051519574656519670277815937009254416562212047593579130705710968016291223850199971457813548294985472846008226706891251532538537400473414125912648315320842161905121914327139179093576822664180893626657611579898450178764412107894302397383807846467153200261270196534533149321945898669092034473070889512076767205471771923410119141400670919736290023200592006307482689423114348516386228688379991810169931606464576791912271963473742871111010623605274838106227490597682977024161854991761053684506586677042357194454209200701329269628050844126803580772272741524444863985174455690038620924105426725292560042456310533913210514911477031305590193826694380195259473549820613054113559927297364277994455815550045389806310213020418487629351521282359710720265270485295598917848263448681611899399780838755367471997435353970681864521842849148060638435093661107574142643867943291097319706922143001228882497977616906473684533300484322329470667907046045229404741883566856088463365291581736934504881807424595386814761976300140890444657542403293801841425869044617607536015194746966434295094321890097311079909675176140506782668058745962469584779472351682062461284541372657417554301672680028524345772760776704185782322289278347329704033299235621761959288527926409731611748811300943007809052179637647481387447267298679891461515136541940691214011413122072571399805232368489461883588005744146847650861078749474002531258115712293669535380835214429934159426324705576782908301548428921224628992464647580933378289722346810123300044265864626168591036519308947504652617430779014900023375574208997001584289290256687285977316118357130429521756129190482135076294982951893133864012637798004199967504366695488519404736769630167520339067580017240343154620884348770180241573211583883268780788906211946486873922164799133600364919830434574129737239440896460391242547751946436470533874827845404751061753251329428975512399208599433188636723520326173359798616693849961771484910582974624298205461148785631501190700783585205980589627825066025155005449445426788953133227451102876302388566716849037317000971978613048635727634967711510769834438390239112629959884443870729901712172890392999472498282933271420503858823138458225461282879971387683118769676162514283312984100495685659881534786845892361446499685341754002986874244814414762814833407709217530851035866567780118446616227612346763659796999443733847709352055166218351469820253834535679960687099123286583370121577694569310452696204377676389808370403916020841051204785967949646401638832728157838211353883136072144069658194175839706681231805586356150329670116571038914915004541164982693257694075630796747159505960658309509931046253797898833274491004135108012529163289054392649588856351623096928348792171850983354275628820982812779009268734492483067322317197684875542726671135402828564756494163107316198893684948892752763900352350072636690227997327800443086134900377015994010249261269922367444961345526827274981591959826055544524082234224101748854066332822665093717877792880052234009832127067704442280044242311031059230763455744009274869544311812188104108355482584950796186838013116435765141130900350500841265767887083002255454281003196262994485544445981689618173874042337420410588426967199956561061782838784357488276855265744657706095307273017285706327738644022055177571340067090040187250674566491640402414748393443105097555325827098330135829821502115007066212073881275592073147943964931432375828762285027269243688267291252220944685744821356011960608899981380815084048555238535724640739718766653887619472415735243894948936480241301460311698149459839251387885307335419747401967342914812171793293070563824351585583499804780488890435146251656507414084404602205674639144738671835894433383150238055135034252453810052701749369820176672426548638468772974021568904514872116474011863415232021870300684808783032718402040742393462876738629130776413987087214414510595666078901037221352281352904026516377468194337935764480080571625794573114835973898138031947144169675224466434680397592317533852707223887887592212503463432917845857920456524662126105411046541224910675163205263981850105877063167092243359390324920103669131577724128786087844264668763998992721685992992906493233544885623791927950580961855856394569186004534626657027196300499246388904315428371920188643019234263136644140482992240151669027736955805591710776193292799719229895080431173194178999181842380208281323256991831110951993721698867240709799158581890834724209214461471425504697432841512976988393203261483600003247517512428186085196087997123649861763817394102827961523184492694959321899207566719274175418655084239613695598956727543033835618227487957408229268899246268969075497958329690847292551170370023574443462283684357750234961598836818227178761530469490446692397453527826235522873312903166009757569876688453301416662552324406576304514091549915604355458309338417571613855799043163655293151806620340538394070571264535933158090454108115318256032397237775393792593386032728800620296131622076901195962282378583094397531742670260563383107829740207085686998169269513285086193885146607655113409749520851261848147309736174443873504114270219340411059986378420291756664670476555638001293786640296546311271605690329807622767252667778392584538256747458167562276651008687062572731864031442699312605576912458363379916936364988809096647229417714098518053609519282470076628785604255689477067653664672743323333196287178404090685774228377394188750922023670641659341350503745857793363293530144961763840545319145220530877805532396456657844241144857266472452447941224428633917977298116480955301663431456051308250658383673108903859095962364302391874232600004801844014978208433596066032058966954672164407400922194167857209167425947317559345181745361549781536501060243549634330152194794353358737118059259256702634461858384414599569215340005552493090886516248791774606147815040529269433555475278165961120541106627799758949059467370183116735941693957181491656918152534973927785068409922846412268056061428414707707557781841094325500789258024121620667342413126219320543645911808363360185152658140720473614728680235522113124236673265044553737615224714291829036451158547759609262058192411644380719603577416398404371761780586553527983167576441874099055084495473284818837943409299337481986530060763237723689531986421937402812251886266566723473467109069182130246299767388149108805730643507836579673898194604244106313198325716737597704733895855434573813401551940363883151467575168967246493554684670747192469656947997121249171928727054252762801426509054991426001010881925640131896732154616246330792655810080601870003412366169609278381645853087407671211473425660907312463007219429505270753719292819488110719341503951321640654566096049280129651900085706641136582041473552067684551750197890575519818693806875005363735627692681642160551910947706183207367240689049023955055499804189739849024912182868995532331839608310770574660642627164594925328532621002361274116802356187320732991416166988386160940404057985972086468261580703901276873442289549375585473213371259204810878741074791445960234478679508312131192370230486531809797644921605665975657641803571955295580013452009563727433899677170694704775876004848816146218100605816552730727024445453323495207011258959997873609606486055935202777370380642726657009785499379622444286955589509615130200676501113650972298983358562283852589889634088744525668617202129404333859393743064019585247100364020308575657636798668664064478851447177315270382322780754495200748947905939165767771158491700786578011744554762998228663800184702638863344966816503192566557513439702788460098437133765439853514928050400364292078041809504398239371073374755926567106086912656822515164160216706109536944346180955385899750443505189225595417362061475223691721966118003057763296896873934600261438912938054160020222072276744425398875899459699616884827570535638927600985990098352398356487737958155190100198457129278420289787547639029646394056745451606529187252469923833691590386150391261283527998930314731157842400036884881874290328545725990168281669663648344895508009163029840338550514552061233437697912827920962576678811268608198000089954837426684975846552302361834284913989684537196731091702996718090488306686896730536010451054888154504462054595266299039272639266505125853150226939125967465348503371061805539343715731584077263998750222126160029204295481906800015825543179403298250049228752127269024647908931892078249305901481268909227767869718595848754522631724518173609126442935559149534508514653852592277247428220491906359993704891283671479235430037285483695570976717748168965778203408896995431080842058919061201760963724461907992911965243745172282761239628585445017950245429356390719275151193541534142255872794966421561216250054331841353941359914518368328543052794544305578797828749317044671136409292473897594584207449202486920423918090553542981580538076192271838597813351630946388134170967442819563197557341971009637000092985475558272897038316667902220139076164243447296706842162849693897396008534294005040259399745977105697098542234545801110972855817284463223241886133134804739440572883401079087804949039032072983253340102257978295133500001008408186016907171082012985238672499426446039540116769972279406319059453277899283301967871202937684875591704581424839573749561430702884552849079674574462235578124300952423728629295264004950925455745174600476044614638813578162694319736941287452854813041549433508317570686080918118217986965955214272784447772227748753257636002538922029954017624944980648656258322721673135453981288749473436228551392021371600456548790982375870954892217462830919337279486667479272422004440275895101956281836249222096125075769959048101952384271500008436288439777369863402969653416388055446122933612432342049998837774030112457029530303835848934956943634011571833543723316039046775909009787786559640950126416318487910090299221612552092661299042339523512738864279091896772782502773852362266044775904689564814446971235848730093265921700266719511784376845466643518793400900768783449714053200350272806729256416719517873362253185590569576507871030358684756093790189471006931284851062095601378846103095400320928516077868161257431318725438215798712128996432524364899625184077586838695971096631877112931615574567205019302935025377007147334120087410629267810183503093809787747920336339350092185258469697061538596532722329764144449371418185269952529891992955305319687466691963252515568620940757568784453825343538465932437775013409806469945525621379085184027407724690067372089130123211490744692057911322303080245905462992411655136564202688315066542661731052266304240847834945666464298539942958237212614964741024706422809843010168870503800817317182472462946150412157664493304220114607229089673377639798441243334396819477425096423794715753877076878572798468805505240406509108885132106314180457396423564829433374688727152628713495776514758169438475990742775775770152043631884453461254426220580111719383492992102193634835473646628639479771762945404732702523384161448295324061548900301970385474656277315635231789504823273556902960474635143251303609425782110489577158092061690952544536967172322020377556547912707035832709063853027355089596860775303665188223048426871679355836418380299282172228107102337443427110078922629765284415192744340155144637298876815547876602413129729169165646935770456164944139903895289348384385732088972257495944264118393474137637158990194701105856727151954301450755126429618297321122424933233120257975696164000682328658872089697055887589155171332448799793680706928793895267759982765103090027130175315532295137082233741229841177643205754055600280412196896068167714709199259720929303819889796916957343857821979383175603673413056738517017774087024853081239798297457055921898491056710719963640265303123083676592025151408606376276380974494595744758443089795438868639929108573665374382283386222884314633000510391261199679043390273153124493511694642060615889720834657934786999017946084066297097714350891646654205888387421157216784434375407790503134494726339871593657646263316637589165503228315116769731169721311886475821846444907000911234928856816666564293326501124012476747892406085576151867988472008366464609462952342031756968958884645165266851684244105794891827410357381722997922469939885773702538534525999917967542447549323828279712934489555718170347252248345222409159181202626749600865439412796518866344101918788019124738168942222139724591723082149957246152468169391101604431084200597961839369501625325202832591100168302439680168027445493029193617253911493212336116676984548227084628362613069837422813837983558691142957388220766062970714135476113807058088314002457663896335980590692864597919204972238029119686741539060753549498430119608854646756937623357324370118996550238724663084092634355336088105503742137508365936740279074492885654512271850889855433204793358798973773826926132864551538779545063227308416644357342961055515163496073330303682000794873901937429872696476674740910384795431059101607615979859313476108338340812612375034443186685122899088290740184988228429063300627925489042259043974112852544019042800816802069170061150310374150850657165641252416522809203655748660146524636852311658201375443047827110269211032247609112414340440198708363685406124950558656582653801416198740034811035465054329015535468749255339980885087238262523274294928376537340387600810271351470969936154499341523944848099908711755490051759894013026591652774184354261788626436373308519278664679702425777602375395970140452006796897140791240018010327582828569923546893149723096152926676390969152621808655328787859716880118290422917557638047977401993672186295610439507383215234405296885450302338440311497732882133173385379599768425533873382024990829272179286295718096770504748496215135228330921475655367584365539512151713317242062107156887824268891922559375329758904319370374943504385882564217415613653762172940736716091921886280463273881108034439978656670583105027202593307172260099869472109903630738120954871493825864251006716479805963077495553022921077337201736558892366401343258172725882679965473522593845818480671174335487189171650212518667849635570848131312775450948356744186082864110093008021960778753515533353202118064144646573243441286728399509463593764832693534136030361919686685102711718636548192373288779552680358207721753363794998470823241665785881509153072524250766168944560643413629380550261735696034703929844345622167940060979357146300934182080405070628487384839016446557165309333470740313615644675411027836858323456148445626962217984334407901580740912953008198008222599766981223209046702324967221483523437081320578440827587995858009280046872626030251444561651466797595828648302428958377443826176472709430346941087511169465933990147109957554805664127872882305389270059644554527890531648546696077058976234447632341414754380544672931202099742852126855738373337344784794216102755682132229394913796645309638891680524993961649058780539281247810825093509165874217170021866441629280730782528017523582895121706874267146207726903818887704060394443581386003325619836810512711124307836292645372837739584868725241638933078308054374483353712961990144574285712386829218609416027963048451049995669551005894284782028393028491583239717024087881674132340253473389743686729755099416973049411270266647022339551775131751142161281213247758452256112784827970287462888204136827552214238303323035173767498797418062017089691387143350405056976765811599120239979516973743778399610572511367808081521484128640934652457219698189478859626091501531486179792713961530931455510563128924483072685210585920583069996734819142406961092528891914767121856690260376064727166832805190049567647015283036816724294609640231433065996708331975840543800720176798576992552012868413441317617496615248053639869979286491293778059264542395456635108028845451942235255916331401260394351144039235803214708053722231021367200026095009213228626455894831307571499987095274803548802832473605236989849753506077681159383729485720614632899345733412064336974344078507060349572346596415947753952304174461147001872588305961362176741455401695066054880472849661909328657577007754636998896712242937863434766363943351717008010039782623465666521401482897856150312693933226394778687270203704233920732766523566250682841473088936521593087992403069235187601259921732948988173751053505466341394279331808861071549256968189783631791461494258243038298051582488424575478912447726764761416161891169846568993406545896724936845566190051783304648710010992883318696338389106263501819825567327067049667053871414195944494879848867311351557411258960081403591774867560825445623846568145738708399317460975443638532552430826505354671925187513930152012049472968068681386700128636468581369802535168604614391460074934913984464268024767828445080554804853498046813075984500446112909675376886767457705455461694518492123690743381649639215794281339055607053238944252050287315265187753567330967589521151914253182254049539922321473014117854963544264276504062626859215367098821927729087500593803491552835373860118146414244550503039486873831318863083793119985173760023966120506136850874799487955491386801507983226515371993517293910218608633516433225293364197016111241723681516425135760817427071390715621667390906137500451817713389239265721491546691178581229577363235894969408749781238522417601036260623437045639123148285254344410974910452116007849690490771356773979353100334167300529048357613179475608186835811969055696198184618552035091251799753036570892113034036229151863290480694860990573908805288891306244794934608009297311180568647252889523636109199336606486103147910713787990277942968467479677123781864180623061474729683981240805339318695951648444659815066665572692101696489597751011346018841147935847177818020134854091554600746057138919643785705174736137375980582333071458394148245391401709052112666254498419533177870175367355988410103980933395682073348541739202772463858752826703609672243710709793490173363638253986041298734038436909081736928848269764474550113528785106354094682751908022939852706732900848200227043554535207125195500108745616748903370672706953030351275137636843828502193959311475130973018254245505139481192063971951546621342863227874165876859025366476694593036752572125322782854856983901663672141989271696828733402367552537247004841314261119667373074448891220787750034944699886499115010470465082503732597017194585117919816676531125451529626303528745456204020928010207317010063084127019918653718079835606394358361819945750612153640132275070120782665168403397684839157656937266864465955179724026612100429737543482716266610534622005749470228569846496984044318456717773066321341872640127493596961948500151336495489699546442892491904996552634240237345259600975912772293489773566756431055992936454248490448555031539720941500763028490824142457341799205426275787896925001363400221844049281183692665438445793976931142465231085251604317355970425780303876069083784477186187392249084633934083468521908819128891747317696606135574167186930882370645385435043790165915877641023811639859030395551646328928631767178089399920028686044591459229902764063457581361714754524928706589219054704738642845396500707327240801765355750159783326023737442178923100996010527414413603103825046200229584220446580626313886667477632577317296153739227990940881663125060361119784187343219195346512392968292371445795616900774934275760788190088449667733983037453463436074847414925601892230334850508669708069303287706718426068767180230537108041941005305377906318752565475694764606393813915721311940371395681414445899232449006781856173500975886376902487012110592269269078117596695592151951651575411834619102880675179498671922144602180683432921521492049969559250094485578054361182041804467657685972791335269154559989983406939358152465495946681206650393532455911806152364439473962759549129547409790162793869961253694731212562142185331698981647769177878197747017801541398652069676758703608814286743783395587934731679730181771320260198433861837123396147024503226792798145145931907482877333763036734419943952438668954631899051711090397101828388591266422897086288891293329484001158412870756290471540719303542390092095617934123960261725722708024468336500571105521212356640242705957906473960322543812179633692955757794834873421513884229429206025512371580034907435993739327373260160006701417045146420709832787281027912329040455371421536020675847621417025675849297235342955792598927017257874516371930594132193435300970246861854131393490719767342566441559536386520096729430040093732827764343273663757715456065073855079865054758565204666941858032792175078637060220268353411372357765528320355103506366052324232403276309599789047722700874578927223185389086801479031898899764160261274029091157081807230943551919074496990906114381716775894226425692264856003464423533979942868253436112373458472369826363702785825162143868943813268105171287522353781738627449910972436878892266195765106091455178533547309171827776396620641103821505659808442004321495713449135812695468604882306659627026655707146781866884399228814409378553224940652929985263713755085458687357010259823507033442113692425530994933510312953295694049701638120622185573719714643402538287663637612675048603085225606750162400454633139905666559820136574509887279329287267524706735862008194332825728317212413491150919957854619655833769815513924942264191716970306193029429656729330849824002711515530535699069527026637664993284121029791152286764589094679285005829456613955053269453068744075863390258079981758963212376133197695503662217806240519002210500746736749049636066503102700756204803802792827481755078694775068680792619621104268458183469345906543611934402531978065828404059383436047283908104313269976633378457468505983630400427595286142746735273787465742002181563047878424028384594719754444767025659781321180799739972537230008941183200095548598971789968712975443004715045027982846441602707513876293114164385511134128170438654303198345774967259897600221251941351629119839247390425011105315720029204958579735055620100772702691944415493611770617351218224907407334387197020073127190637239146561060619773199433118415181187234552861197691643204004676937006550706978131645957678273700458141375153276439760790552677415644102472912492112098228529161129367003051384475541686642658478420376806749387544013935359219455069954793596501626435245288529435563974943612304601225248431140778456783780147843326006199986127102346985925667643940552497200035838571759705298648165553321641372549475466944319515944240402859632985009728287542691328566321268846902859276048082285995830958826783013546106775546533422359690076801135119287035342453417186344408771403490901857682660917441071848002726704594546556443912052386906533209328652607284399659296107815142914124407460381137313209567562730347237426707510975092423461097081467802443548590115023420323128382326363883756701066710679676250822327830300149295202796226558300593765574117219853156219605066109221075206547912070814051681581040288428240071819918795771156378210112000829632710520614283195545832307082638926132663323441827188735908270287297086567480535551611192497407537969647161680597795264361591380015745223628321574197043289168124036306354699021060755971260177353050641704514488771855389096191114998276529437648712693343938202552600200985675173042593871177346690699934694963332015198351951925222443262945374705446434184138523886747008195661549636345255078315448292165906698191572161187440757970102755186660265847232853575739180386939715319816405740828795045212998692807099132978391563210780655620020550329527756417481866195158917105316160237488685335570852913497244816596674346024252098438270101075788031293947929005012783029954083478509777080132498959049017055923380642952559336874572195982439953997026000926236515748133666084786145982457823599989270049561633616151312531266668536169152899363626312718909005194270986767573463986670281083911585850398033844098208765823510694553197457938217851621200131729827980043832153012936311581904179008164448200228803401900868184356411731760217413514384879678342390893119150606365666079574137890296551903007585325691489138463700401501904473235266882472661671162981513626286878087365359976637022525021308493206439115521659948229476399634930863425904938293465452912962246479837342301103497332194707499367139741845093718099491920736067663196610901487642942277024986550469781346659506207622201552348680736666066629269939994630896678858551679546526817761181007035653298844099686554652969329537300025301712609468392406727756644172930017370897121426892044107274927857275132720969533509407365883516570743170902362681828669194637049523929517716381390539022630682534276885040844448248112276250999872477550139534439123646698578154595157724117550530732489957229847344464665858672608090703693347307059807930111977863308574655488215212463029169799783400583693174016751355335621982886191782975057873183811787859156113805010755712273158672178966957474733912379843392086818785440490252197537244710986981671647104445216779896134157888993719125118373463371973131691375192490349136817915914056462796518249209340963530675812495085128959284879141456551078168160179487785542909076866843014262916124601016868081336295156015919751879135263156486668385618057774964518377275908273746144036920830323390563362858424248233469572221899864898204960288942265555885562259667027937690509181879215961474374850720053953212189599288439495821102940062945474059931458825110948911741412860681399646439912875247549703996993030353763195968244616336209443256010809921839106441244769028422911433385693625000570219007140265425658083893313838407193339980048414031350256308985003026417932934913399354437317324352406426348457909300369408872998773039272329719315988840954600852104932983077212087111229179515029648378158941811143643442850679122105475974723117005592110807088739100527518993892829000901134895778539332201839130297370634422812555374796400622664704875231839763093042621877896300698617505901108771369577731937584781647241345704155820312344398836292974460676800412569276663772270252212275186440341182927234983045382169405302041006368778705794442757853545699327142852263337054901536149965557374189180609331630591497152092530110767475996180343478216895089981647797521019385991135737345839027196259406803237289321130173277572323522544198610144811432078169795801355615529603374107569871466671307333730642443488554842662956103112810251241172037607089149374704316736984351131534389906723706530787288531963853297627553862448922927063599869621025426878882674576179364713570710148442560719864639029185399545972121377545133666409081560168024760088962900465301662903667300308978413854226097440545659984934027387700907968459356433934290014920717328502569122253552262297706942100154618280732647872612445941507136676491968257195272505382248190242487228216733990815591046322276680256760646685054074014476200267353916598655977096604173317507504762813823990722087027429780086402465464556738753943963316840093926592024252687368425837639306327545307361901116429057133715254516132637610083613593263783878165490583006435336427057882356182287856512324752250300703962271934138366051597968388597431143037472167765453540459583563642402421585948673599010399423783677670813220486616006629507229649864884731096743699840538336604323664096302698672958237331853128330719776774504333279949209423701143034556041972589236623445203735143943660970309099677967118057854811498275651236770569708234311547275024137438873496360600651771280422016981465515284677259031260902314438992638555591571458457934189735111218593674491923117340145304381584111105808575835920890255572945165432539205557273021392313118976620190841685132867666654930699801436521497823070779123083264291818043712725274174127465304889821043699399932257323757045330479386114451869753193179494678733961251656838184877732637430073288804009021426481878191101763180040127197630775355369218757648551875409042787737376776449213086870358594137117116005455828699002574854515072982353235427495034443883049774219917448484486213278345637264392091220764517387130189242758423439098499323319332435244073563465788045672250205736070879774369754895316924651859984173948330458743614443344415078086128620864624653415884449021580610063561666925278891326906168678227171180756343646345665281412934296284039479307847550204689534872736013329084972512213728933907624206139858699026976797123658205634494216933430622270497479631531041101105652457454970808108742385323252529612412804137132959768982283569032160995526124755727868519533148978948644864995890700106160560343777676771171547265129326841727834597134005383620051497401020329644061950455937543974900482826497556587741945987776316344003972629514019015914522022302723501049271543628562442871772067984876281980219616092164812872301169023839150293735843140717293399646884846527606732879390198573787622330593779189120090978867044449884422283769915564254335034758333091894138377152443185233398725344968270892292842813998594505119160725812216783665571063836978833836460539730426971378996789984294879474292280686472532902772727836743241289355844457325740516501478590595305323643390382368989407587046983314844969010582985835300600644152777574355892361711845005523162287490374975707678281370798497406346322240225064580954917780594971532934804180604525872219398514049583508353087719281325693106923788427100470490854890482468164551286359715208597377087429335743845390773139694651913351059505593486683908831324971992341944550902515192598563449093242008396897146283766963403712536793140858095101801401207607367641287501739338711009486829627186026115173485179739047797904623095744133442040180251482916152529003705495702113953858132260049478315233738279163544068412887703009902448128529315163687732984993522054387503929011136299933914229334218460657135327289663077235803928776962007032245336894622543595173136379541599208030181132995532531352146077418747041904342995817072954566398152802054895744926591669675578172760795183852388079745483757038259555775724030164272963318526511798403289322854881036027077766364675485298961465562958016114776604361661101436420062236738337518353836747525814604955207234599557299865697599831243701393075232166221877317577844495496393837102501373236627354182416666715863921148473319272674525016618755715061675910860789828241312035626258389601993203337334301794210632391766544934315306916787389248425314777449247081130274656192255103881196544823578147495387032097989591094534507714545094337872284401177031833418372727669633970084131498777155855535087515470703908372144204610095846109814247064071683830741206456850238723900957834804694788056031879721077755702677413837662708463620374467869851910043763674470695352729264436168801639381091133884591746250103357965776432449631297862264308299401138030632283032082127960631327806794276684069570871469127677857511945371814234529101371947440999357870908951459790556625449321276988182113841940795290978414626583870355984095573408482654095211997718440716111969303001593890078143727291331144710266511818592808363385214030371155756166593327561268677867407950336314345371335291898007953305980829128470123001875182494292965812684758180054159947828887301458955442449943364620009331963620047301531727931597888428405259252118901541892752630146859487767105062031908313234848213284334235476404485806603205588901825246317609859581272323014894068419156597291822834602548430098759344215361180494099366938697180151139253696798758407265343547495334252579390323839411949241908740172977066359892761880711720235125044561408950009727042866921387441757616878208252097158198125126027862061051360250149905788898443810410890139108508939203897432619925784945438520146971491937131018723722560807556922771796115550725260166669471787088565136915693585546822114431123229617260085620317223355352429514031268416049879804331020079598142938427764895513919482522609777458801999373962101784278938112402383487839925977256218500198265111527613890843280431261339198730209533985344922483932537462936145285243069973802758570270185436729014362965693546953353477025781128552850993145150126949780585125786421465750637946009761816111811597879174870050921438728334080480189410389204977975870866757763406819849093365607622955517195539398006295837927753769988679222281603792616215121283282417955771559323334225058244700039852785689601429353437123669127312885138287481062104540675233498764999720296793248436954384792194323193393400157462137754117375627062018181561414690324823828403851703775080759242753949199603002342001032973005367366424363134436110953761304471463945094139503793864525729972243279429927651770175852448812424997873833863168124433464533318600447255092280077241091795034971157143983117953967933519491895803170345108141323103798540050723446969084253542564754840565636957846583015350036936027742499390965261814499136449610492211287049044778494063213768535468675610347562801361011929722050034954222957267325933828196082130634748330771320572850648317054484492856470121616154559556521195118119377423109832812625072520901795814801553184631465782106090873548078370179854597078210690291438008939758463122436542924892102997834745088221254853977504535106433662812870511645734001956221468684237583428395633767555729665195038051328738699395115876726608100476866885455874984227592598169877557894590922672572392961083313906078271247739104536947958913119001649627426674613542426742575485865396130201588159890252803646214429814600036333999699402944739043918593983433875804842269729631598179438148147950874593190903268468590280650974308626675323049671588575482298918046463354773499010983989017995869426067869972159303859626511479366887300443945715131654563483779412497610037503045919352859124964702859412886172736627961467264338263025268315340583214563321093439063565905497522630307888253743996910993854131118648894034822706776663162548059938103576759201024000384559612926363026202350790698660872307409833425266935251789366149133764593096554948972841036441473109198264669065020187177808401848201754274784011818446986298742299914025448150385612545968800652170852512480365645617066350187308965813884064808378073321410013223974708081037212777099665717962940682871059525328338590227470754801512490566878784214814511339916888749074229556004351034089420104306932726786151179934738481130124486514199304333281103677633615171707157711903902847211943803036670160939244167183233126320741204238778521710248177955206541844170929477256484100752339023839827966678111553760706721082453084462846226865231382594562838921155364089991495623541898767843964118461768725986944377655004997745434433860073772521107520953454788079463735909325711793835359987796117964013388552760991824057191681268066463191799418086032426185425204860439725582704411371956697294921517689015976732414140187217994246485138578210391424903778711655556465971162117131463485854154903539700860857318682644946199327037534471356385759596976435594814968902792352931705109301404858530664520268235992016778277870644348154708442352144103807219111956248102079905327834293570937970978854433244857490742191393224288922144237239135454995672901989655675093209805229580253344906508738069433158886928381296559418498310540685482521975726791394661579373472902510427614506363831966812975556986348991275574303599362762411222976198005066485346621303972421306461401774327962709503423076968209348664515237390059225907466911160686054123801159068992314371344294560322103959926512402269134370716030562465246399210750799212035396845826224145764615692046534964904775398705738632576243451086721187299850811340883214728702999549688808662347093402071563542600070801571444485255923595321258324037891179937392767379245796639453190331013505673036744462193135834627300400050874699940772797851280240798755675008979493844344892456805184439831088875391020158045031126689036858268993576590840783338869194498678423431663389439184074443102356143969383496598262714414252397868297519430828636595933271014085744833261195233691886666045412182654806394056954523854031703610001709118486323377069225801662443290651219403480886601283312602081141954023131391381786837553155512856550880120457880399505534081215304028649132163567261040714611682369913191695544466454670830928776824201478144845568453806164347082295309955153710474498261742302068182163855077459293380525104814885051281028575300495087658194611018106355222539713510756245764055708269430934993594065322549708750584690692958388843931336648610223362242762609205212586903839973394319551096826067642999491324435161940018294098119685216611208841341621885555928317899532922999857796928422423680917243108245397552931566019475801582644337640585005232071122052885034361837120838022931469526508902523642662314095975852338651634205973770275166613314877383208608741497358889662707474350841047403815970259758047262456933753332268219424627632809813392302476014051628597549508617935112938120681516565107720319407285053691167401793797358069040112331099440635107195911908708371519128647964036345862843104120783819981381230983917354353954401474976352217682682887146843897215952234499918342061916110637254449914405143101534786564221917070633727625082070927143482477339851224303374402933342214055218377326452355680599640238359509333732013981989127522667521378572171546290050177261239873584929755715609962995034813956539689960723123957176310197912974634578601935550271440462097714636821328077262014203365276157757251114376830193897479883102905779571002736931654514023020742595925098494343129913925096380596425260059164009629520972115044924910502745078288902931641693312958961692298498120263979685646236108144875266201322738858023530558961768460883782435416366435642237829217013950684076149906885780768785834421476685006157772391475547576268837498072045937356442202449760219562902395213458267684817646410175322887134488822725249776824680072100113818071505769102150004342430601282718361574187056903844410902652928944193040393018557863883985836076594913965981466992948791406140597001253998432039457892985682270802757770160170735286472970663439458499111718727354647364518801397655668558484502348913389700428290732795543351511662846971774411588435962610058729135483386797095564450655407919803752917953456598576500678783674233873157875108817157786993749949103319561398378838635409576257567392436274162436287578405866583554744530273037103515069603117596619210488220932264643573601331093297840966795112592752394199147814127467944510840873063361016423578336859226673478907810273842552147509497019617611282201885937100457193583084835489545979205113793509038485843400829029492068006510046568514229120539953776975133227962524608641500537993418100296125407393244343915523135712785820782239210486538802974314586001397120871992887121101619659504666601873830318744761580610138147760872758700548975960993266082248763904729804392341565499021338412544039003235254290132252238960721970545560325868712955487922918150519429355367486945154623492347817003357883557772758377643917262536767946171666626709386174114381747035484747853441766510311866658027684018665979160764708078551239056012031765789508507363479467711181245477226971376433812456878564984560282806675623525116658868003365271580372073196873280172752618386234254815860728694210219361976289643700081732594180731939619037158185264824671579532942303290751216133807352704525434500169767286142825491805393181811665838167990343329630095765353263867474491392168993297219273421848618089973137347622930704140886667048165906272949175752536850361784627506320717291605070022641609976288615086409030586373608805228175776797878213289064289724028403832858275052809486261589223925237660490306633900739661162910112481718715300215195269475948084341870530438894326145035559696028418822763423789774307649771901351837234645115604089493976059021680210504475745085184068668420222123340770339629211495205668169742983891172709930738392794125384842480643611161884971004370316289369538297516442199775507117592120053409111399655386792563834069680234423076035191999520404614819651863943560395499706804644685872915654833820135620161437694114057635298527053277450563179476939040596741619107056419194731317339673370679190788111578533984951325015799857852657890735376280226269697451000706523692513972878961849725959483170815317487445117613128253211549267969605144329894444679694217534553082181812393454023772080414048499259368333179166045418569021745910993873235190251397433822262465927939335592808224782261272778273297674939497980183972662797744374999609741535606534547640179546288279542500163477926305353923477492395484429311571704060260619576680715605356887397734589736826517971167340913647861258036088096434302449042081251789848823175553760324679291491930697903754705097437853216396385776752061961450788311081960931710348682989170836851628088855966495851406654847303998772361546574687636274811545843536471809556399110580663991811676322635498576882400911530349359205744909546778872991274326048811497850321548029595262302556576148188871703914093384648058340830440237960985484228888768979836875611141650546532651056025945013893813449482340342210280581182846356095355232982441837798329632628384062538766731347573693201887972809548195646315652258119339419292932447878346442443452406786308304803738906255592693324182160405424089009360003480565421626748923390817692121999429968344182243373629570189981476311747203080959610849055858671423651709493360033489008232716618972959174323140548005692527977985625463248470631400922167442345078037572375280162333333535919752500336776807357133602169831784228146128477345492820121791584260460926984126894914907683572053237691115636111733066226629208806446846953804311170018710685557884929813646115694273564640771189313282804036439992426770092995890186721315005131729800566838530564628382316887185945068488840584074486631766460096568340019066110654146313833025337467182258684621477330431138143095034584955248193247475322360782471787659100861914321933320815393400998495294384837527692700767850573413493815054765710608160981596274870917252886554476235157161707586397985065303112325688246111321066353342652519126872183751178088830639313943521437053455672151741353559351801034739196243511842465924569974403569835482059369195367211007207713385499626154137374293302566836986896983289175552886872340432203890475732199467010948433555812963530723125626206026926456190268874919190853278514153046879578388195543169729131558696885387045282353626479524229190797050144617709274592358533610488238926310831821597117089988982582672437873100631443263046459746159530553409146022002417177134929621176003960042289251894537590608627174725011425506556621249395613991907457566589961825944621545208445190004066643883373803146155865200027999526019624652798994482242709793449638065992758736815968109560734608448149004325026400460716874102712379011322451651564156107714159868704483098418907746178570874672667244259610156470162059670864332001202956248357654311892682708584590066772902908219399671803598574275194476477814143815701460135123404105479144651021774144067204119879484474024866635596779685232685626266421651910096380129592411302739031435257669200002643093108674464345706877828080978177057485351178715467167636951857759080483654332320301771200412577533499041590082303971797396954853996975991170318398264187679781432772161726495770067197263437256126650935713293145389258537169500803241691448818198278605424939161069572034785939656038472920902531269811673262844001247844419886867620610204448206894847342858353719219993278979904109370575404857489596951848286104246718562698717092406349070707175059234685383366689163144285802573880062998444907647010494700668987581543415172208293466608680569092935988546444855518005238008039305881937165714691645958215646830511776259431783976422669804271163305542515278561524956625004413266589228213770799796020078816003544665270712909657876566692010000163437416908191356450265886066033314242419190783782707132806983552488915277782687466430426741572955295784379340594140039444825036689319226759685409135827911232313457068316389647906958286691880567128835974862544192270329105408930727899376382008219517990305285751204058118282070675841581396079905456972687550596325636691267533032496217322743735118522517427888026035260344383781752204384165734541553523229445321573652754606962554642315912277147653962596439390849275935836181461062259120528957980098959497459334944436715559733886742600808897018019076605076434992174828361400864586581239970871059084963318353608055992321383156426456647314673959758787965688048428986029415241835080276125287968493456712852492239145835668317838525969163074897524626324518472449289888118688105818567013741033125632485440993281738652817149474317168552790922587527981050064767393137221637606829936341225835351648576194157156064865722676300658670818305385519312342017554131584847167549627395952620902848217821122649774738249312487630990309620345805647276538095409712706895068198563664605567301479116530541644575957355404703334101280712420159451720276147050083339732812071950710087088279848335817482009483435887779596643890579604769640302017494470860897898941245040491895645892370241593726924793723067832043919544133589175071188693156956994801777532340679140080437863698636242559844971488773888511884301140770224270148850279604838269194856467427728501502710721680628197226741338235296443057974087054739817897211551551752579800969836451824738460442634344112629265323161933187137098161498962389700911556874799879161357042977682495995801965339986173837319509790186955218476956782254515590605434024925030313079577334492317292883980480057406861626760015122452459075043665394301725032246122355227646951094430091338939244539390116810132448888123822253621220916536849835502737616102341353990587102950044203440163523010100200816639009157508359961724266520626951858125151047917906713809340247958791942173765970709086192384519459704167839418876802300078533538907081563744799865236243504953122990033223241150881083986470869431604888487097879862048046190784389316212344899742075297723193995211361688183531738714151650172342802279328537344187846393283573840322918366194946500605610415376374405893772503670865615870517669074542697313580813937643330789816557374924751306990905453305990379186592378761645224845891214449646559435584397440099020351345016622700330168659368292562847666070008474648402716424788507762500896149181531049137586438830044701622397189366305617973749989995182891127248245583117557643231993576065975776054181232355196173991319244885083283768497207541317285407984015185470207789585468743096647949868189942553997440339892018515176084196013674704067280688735915467695648144010733008495206180537121207956074168089502755622233175589241957911484053477763717631088641856844625961255381413351553704159663407988146707463661091612472392434877637196817700446136366288235032838045382129059012196147582535916954966454314342036549321557296269581645133378821808044871119485627004807320381419412125364994341213297807297608613097918558966887483851507104694505474786564075850438233154214420410419825174263622956720874153730877698630018259738876496413046560051881525929001082019366635745117704479846343193925283749711189196065806966735981614626678003760637466341649861949842345438200344560489018737629600065832241345278681630689088628904721789394657626250717907353329542635629527775989531737201249579356106480746079063778884332481144971703212164540467714416266203032792659663742582325042222296574782272539011033566224374374848252673286870142512297365692966408070452128960658810582939163254657126977089393074946924118901057649143453263306860145017151174780255889698599643035273531777217246968600446830550130698075210656584899417571767512257780738075691426347959070245056615339757868224492643402028621276216066537669010147548078013844451968261143579191359789696850673711249689635190327864561500034894754998492652946117146830922611628640547631996817245423069615060810639877676908685411138388572715080139599281585320728543103897658177123634403654147842428919029062325458741256373313856645045961982962786272226470157625397478357539847686585271555302316394474371000325514042337361941757092395350612946663099032579046854356243013475655674291800796324716902464988439874307520842095276370578742195717602535985365572317199989979278501473844995222192737374578110787404289855529009760172116779757972753562298815326919204548021493383948758750376896570284529852590152039496593097320799897310427515213706126575027245457540343770811334604026703702631007177654480158245215116629265534614568527858012603789200099457596322363588634727326098251423947398742900646533975968707226931487540368848412073470568553527635276637600257994234784248847758883717584592333284895307298385429523811454293757988132186303138046899093424906919029659045657126715955192872775593380402041537026155165317577364389066400271677575334394403657262023033689120144675772048060377584142847147447689693994351491708502337553088269682970878072443306485878169857755826411441709614331225925070510483937096741649788007599455776087179607359792924492730933396819571557975204497116769277460223792841619423470736264523061670131465860442389572975454545932785771183342710576345640332219434846546705513795195708300440824678618394130717340727646394195439274283504390990297669955625793400909336930498498471230879235924424198539856222689306353325584709648586432250199781144621724895218898233782260369573066922026227273626452217972531520982264338944559372435434765730895361649152423660472421112764466641218226289965936127621868327078205844917047609424007905012375572890153039250455708504135307511916200585757093809964514530134174796461617745150499959854448960646149019118052899919167276937015581095977832101309889108357395781230288198463640259344695725290922060494101912999476605922011548071435800896265790207844012608979510221977205675070082608200070127912150568934543056125753635204492310220602649762098453990366567586141094162115736137696041099691387889654727428434703316475370843120860943651788109758536454273789053446084385592292646626435088625355398773846987373313692281101958534309966022347713048667835828991052082458322931059622712991936389855622565566781288957431909097714668378783963312885576541544899443453877675554839608651778141048117280315616314155979848042879220235700152861754770636571641398972822468649957745691295579601523927194609012716977118167618185648520438425602546230131075958255314184910366059121492737502960416297672586856124530718249804233742446350852532662419391803436527667415442417068776332854654272302300713070525351829748846233288684136053489365979276700876023105109040167295805245584865206279048797994632735148354506745721303556473884663182060012331426185245807393220460337963447932808652517544933129670807991471834100569644712618258176921481703754311944975414434029403868546488009895393712688275350714510436581163238737647916327366999088177859258774701807195039752322215074071900521809635599978181884647565582407255711960143956516019880984485094552111685012635931969110812592946519151754546111416076206810331039637092859218779289471153440482927411882930013929679831687867878913781462473506461191201101227136978659318689117228979061220003640827704092662225177631708840479484259887069560248671635456385044518560598490059094993954298325910508250784964659189032755864341718296409522662359168737878317062158439894598124786001689045618776502432180824632489499365462126017463404931777690738368874827376302436123071115175841994801224925601008511837927300137861027021842874030692995103271224686293091433786630389016006781329381815026921492661428785630284760127018838297035843813995151289007268684535682309156559470529956178706564877714937041247135024015204170844906556926173964871102534390967720730202326450949536955577339577261388712050962041823974397757991082229160921835394736642249672866138497196643432824616933035251370920567618207558015894386795539192865477740214054143316385152232561213316365275907271544054224356019037621692968724877772689330123034770265074818990285486421880418277187280126102483267287193681786831274244974161090591877378879547416898150222766087715490458822178607925323461001466763272377032189904385376189102275297691099426999349858702813641308771500030780204023018974342348370663731322203530692489009506851154733994788188880782037410870472404557969134347014671007669156519440015845999764056004862811253985931020553696557652172378852079425213449585137871484782528052124146102222544851415854073452665749381381631783782543547027062837484727162359069680000767320981187570713345046083671342756961169528644671446699088906082154227851262753606360328850245879043329407768753664324542638491494435209565751326065540208820586051600546217744057124736222705966265105780653696548503511372815752522679118062316216689484876728906679575191989912942802119130966868663306922996660664617979734194835322699795992108788949841072268222156103174424872727029733276299149294637727198238064324851467159186065129524187842441740909563348939158475715764355355683532517976810687905095462225493654224855053802692834258276428620381044931055842850579684880975489240787095848819699353773549729954852791824698937372026077535090266495962774436013488454527566088884374013736384272777172190814257440706050131681464565583875219703508507740651052461987969992287287565279013450865565880857208562470681895438596669437351720174704359299198893944034329522328200560110990928624769427134162962520534542763552650710860410537977992094430577749129790641173406937043511115850260237535754666455856051885079032061763381467075562504589949602366533055185728325178597503983124956144273962364434404255211023861098051812029465800950679956426729434530576158813545109656850180258634052880425930875727207538694784726982895895182278928605873110196091277308435011535040037441759049593602727677973813560182272492951323609340692671695587806554234043001367467192179389595333017319419812274819111348618919613277159734231156937858423730508471809350350921146862351424061755636112291148080037986612997824349883790409696524433020988069927359671932851427467787345485373966034151014179453006989590482825167496290213459185338657651665328443275687874267840464669758315395084919591329935173199381909479065074579566820280587447745834406517093876930486322104811816678200106595709213830632569246125697141016158355348556399312876533670444572467212435670277123522330270519498756229060882145453608659079033202049008564731221604131449045075131942965438548774484496976382912049055055163082227561995513189819731267578971262842572871358210576504596212182742864649120632842023532468154422280092633699583969811789566857373827063370317605384964090263584032419333214648459119527510598026386916170928323014174889672970888915587422336938954013898391833351419197075388182480342718077926514199844434282103535112009349883501407758074944469381537578521906084881798994012857254477993851349117089164645585970629555391081029507795345211632789330347908390075224689645618277710351978433063811553057771417328624225275834845701917105749154166315855044990178638817640718491456114889359887645941016695786079542191723810658414613080153278098753302703479850020632686688141954150272830927044731415461379343282342265329920364747774447242955657527730484361562051471513110322405906747784777930898537801352783418182370778316410797870841977698428752943300154008822784097717903244588706950896402796014089606504848070736445635775763869448529461598386174550810996934354465980074866221729409613766764403538926862600608861856122670274199010906303148543691590895327503035196772931844949345442846067922359052119283883572153594028201678008204172687192965435864453589156321439659361644652382811710691786798748338900186015998637753976191484152986692231039620541139904184869712865852068635831792252042105442959984970218240812391226306376165019765325087691139202776843536474502534008697831390498187960452061521221407489061788528647769276410461544238183946687573988561066646834318999567154363001108126021514835962368110302016848980246205226049885635753021241026361479248859099758479733481776042864073266820915698491545738476491350138663655029595900987529734388737749304006494047916675468537411907573055068955417758141938286112391703392577755722787650193619251076664698742157281203084846038444561157334509462084965574936333171206610661349303003804070534247153669130177843745906167223738057411806400894887778696961734408324639097466720696880560374479982538483236171972553263320427743590568873175653420600046688121689383502485250634972955694473584238495518837352009464908354097613944014412487583415722383096009615909265017744859503781610700840227920604584191865428105417387429578521970893483398170871228371474258116172380626858947363024176706803920355229033272959712514781102516043380845139256574106635629173638110160973365159182157299806758416649304271511867560308828462137397524500869526193041269997448412509605778932668896512600936813543747445794405102722129406668929105133475195190891039042158395926028432557257097551139189655154035287919831991927822410434405379840203035602589061514997472305686882791671469631366124071408294541106869536116952700065914385409900223296349016245922127596669087659567999089988178188569285091615307084965920034339521193577553522409056400855373565476615037392194514626427004185749156951098208524914700032544669350409097448934741575172201347098818771392977750617046240258124655399342183320533604948224936752045980964667057297363395121531054980900180508652036739289384812780494672771029244809907179520462177206097027831041506413337251548526949888765150297268086567666945124530602109074452653061902110306484693524121562730396268865284354252089652602633736171679597518581646180275678106694794173143216847038255643181962392900719522673436849525052736606291849495478541201836905858714423933870464724849045659497215622601858492177535754310974827319629298657916646302700226080055814142060074892627726749161835032866675512312655609047000642142957484831459584458526141407044121918954160742954771546082606307056223054814235431657658393729234483406682859114628400948702840461493315595733390856386901474713227083714380950044924938146750390678519994073103089683598685511861891485356425369209591284591333751138994125369686108268267721111237393297507694579843251625279320269285533440628259421099095092810967415454551055975850512857456401571904798163771053370407667530290537280865227320063716928922472796367430261889376323854830248778233680912619729735782368832999041254900048316124343660612916041200504358157605907120346014827445479136063801531674159332062827520251463804417228851734882597264672632043000460329887006743889900169038923051560414866021184262848414799256393605445569018476244757887502992898571175188652311520162886097972679488866620735423369136218530218048556264003452758455711502532673780794193049811944067117990633216798839325649141021264004337049728311024012668324735457026159442307192800094356590934714660690980608150639061844536648301939005027068038592370379749893807258587158615004777740478085912582630930663672808019179725471614173969237884965029911426208345123335209749376435047263939329742617186367395532027782324801493836129260557802995795580358583237693411054150702696374037205461628928010241466939580702230738502883639449334721992745547093058174433083200401564599620305739641156896945507641916819918842340938471092749499288215242904143875440652376741502243139986237573520493928680495328757664480509935452937509583294895833425652839592660403150309684416544098962605472357552218306156407593773944481126478500704727591765271678922153752753537304571127794557714805458987434881555129516337775397552174579833856414624030353015974003779588638894109021111933638238702815541388550008645025555030796056520654343803092137110155252525251665326269432316947176421852382469085479806988219590112825438322643887393120536461322261067754616709826405948751995692174769340828921618081986243691377279323121583323391100729402208478658334342870861536201850300820394313456287243019843589468022969244964029133777276650303392889765723489206561385683144144291089548630870670503414190849934261220518845876346753538049203381268835868296544374963394951739165603926891390713023698131136017213498781923092165382358050765596395857301783175626617472030402754669656036836454713668514171535742375365764372170000799841765224272786135340059969039182572869353868863334064762684235449460456899732918531662468090142762592163730966289474470312362236174027508640592862349152503269954192614203262751929378300597251143787651022440219328565741394430982412536349572669542693784513929972214126536401627196220571267659868747182070406605826299316523617592672246502187956654344619249299510521977235904726233467118299716700339603662101485864052671857568667337171163203693814780314669503827915918529288192901635929386498237527513042542917112021400284703638675531894294412594852920520317487486565714202190047031274913071177391181013100115470556974652360371893234812945126800242535841837545656741243089865193866848323680079362713525531325981361332934585677293194955788399985685836779781670335300326270339062630099852846603857458244476794934357570422260890243462557294883444827438430230719062405684556332009576427589343753078860507899039993317949167962858284738905271363957570866456022506948600356684913246814097405901273233229317379877382403279908655681707814712632751895277136172112260207554916370145757104064580162653597893005874833537877258613416452690318414603699171043238374428685031631632468947298951235933823111090537456694315537368912846437566300079890821375196394111552152862959308179621042581304930799869112423890153883648257377879770988460197353007699718428597467331228370313429661452110811998729677457766305868322872443620663225441190944757777307479600413219639439569990703558939470465935764417113048980876665516334959608926322530330053377289557667469924702682227909536192360971399535664769879372664591103184247659321049297903843940562713663866169050570676451370338728787940112221192114606909258767612105727124124203492258542545810807397189900662909146596238189329746087858331887026344341612626540272795294875789160721852817120673371129445837408727808260589585260898494573863075901894287531828670788817118014813548056834230502713114711053778618113313214026243898196356656413694481290559744760684428384383527836819535899476849547044540101864137140531518034236464493725231613649443187112003512747947880023443491079440498209314383967027182708617008608306522730045575637203431335706283203709858196964462643643944120562774738121206084486182520089126902285715894061802327752336450713427449877623834184340413809580822888447371682659423806324766871231927981986811578710640611462399986784527624932732518818489486324794745892243635493561630402720574007684056097989534126858936410530878706121197427632492725413899128409197829592672798100922513031252459610442227034291863582621075939786975576063095995206792050495021417100727728997517131834891374891809395935164256914217923296269206710058194076778283012679355139136683988541038685914302874153197299497539057363449737218141657857194500850092297350221021407045979241245885673012354684585870951703472988525455007360476739437565216223696884421523233066399774098687066480097927339008006648875033325506281421732651255880653044872326206061961501629484382491030480271699111947666893373384722474851442082759988469301060685515344937083574259489783695908132560298252979627438898426611537128587239831752584468148369088371558152059472318204061715577093267154933496895111648816472767385048323562532975381114426725862690795530685231700107665909307744151880232399926251218450237623567988108278378659490714166437341103488508130827823855104388063557169973909383481390499673353753596419659741844518065680722226809010507864099349042152755169323313749009204340568313559361357690660525347480194102497363831809954017094475003394569425343502462462091650646402927357057045374493804074976505784572071613972290391327829540961950789319744269202523041624202594906654692933587025791957042642497520524625465960381127678213401777812742616044848492194098770177236170507872982404296365830189997209458603787107366363833367797884486871303673509919643769335963054822667727436290494023506529802146796295256701553549348674032701498182478559762241464715488183091518648907476118960762413339619985186613801087840908312572680961683318143068824716015157206294190079209279235706615790555464593151144284613063557440644595640656679900827384350730966501434838027802797962331220506017128958313257730766463145347588486226141259328488449521998353868947274195876221968769730478158151060830741229632429618959379167774566844134663904479341754209642100580660705840105790247347688007564622039884006371972723488823291395013503284922864390049416694066878264749605441176446252838066144724321099003254434843337383086048197045993922862862598394888300664390851711309038242108321396528368577714596683141179815454077501222343857298218321755149406064931778519735095922581344410021905326223509531088800605752564164686700014451917439918143177543331065766063259737071327636627191080571790711073073213811705975484482926502853092834609353772511397985509331047721809554232055503801866808532111483116426888019481981118530697868523999827727224582855986945533887671554007219593188205018867269136159639029666975051315766959780249864196356797078634065708592380879886424399336401768781959146881854864462383971969172587411921395892753372614391388188696507252066809116153343667191198174854029069750527842631233140428794020986007359521019379227412753900298523646809698376861963971120692634434698518275973850291295204970960347257236786932568069711524144037265800927117530268141466585585729937823729020954161652470917481554111203878224678259034338131765629069586656485307989360794672101715967616323774998453479516316437807453496273942139326865415708081854750946536042692465413806412058379129505536724251220976384033880636833394244758743547284500183460517466295339267020595486038161745039847312312006381267327533657565414357032980775466614925076770753600213295146461447191131638719714922636674462378024296522353250523814491069888598808366745146196943454397045172568198029084031175880662310179639011523435350914374901700017016270334241558410293680501174642497773562560560702019025687887119944744913376665420112417442704591658937465533248455613942930747823050355523329844890315796645244102639619691697709692721623832911313684491828353831135225915611515254698408062407677235184984512194807855284783234747639438984888003966356713501643813710605019561361027276996896323109752068809384136751242377566515383013656955726589756205622966871625036754748157906415302819826191191950862733382146721677603911726631736387666507277819284932214043038426083995552517200550950246294259632285284418641343828739287239906086147353238633489811277763567348784799081363986443479799910886173941486810380427370195001716957795268962581243677850678786480809212353881331294807398650338982660878516314849647814405200038244889874465280808306657737897116814420921931493171372177399105481033400709963901701135158744236865248855060634182354739173210483984931425891125130822029983349174571133236094413737628043216414207668693530772568585207807048565311809427991348378985616845450697776447622782822123743620403635906056779612787945414259506763265918884724291005932816724524582662664318442393710649730758724470147985032415620074635500859212966545830880692361329009890607095696307296833420046810994595671862287161603291994667179240161215054013206699682570345302079751850911499936728712013205301478650541993936095232785294817429346986652572060212805471318048005302230197015783470481883726945955690667578708463851851713100802213518656658211283069794134448787190022890741345998837794397280321845129108144293767304381652922701909356851616542633511791590135415493778473723445925535180548821230531781500153056962991736723421538390717004532061428081927583917697910145535284389897705240049333537549243894087564753421539133577047119932041132380488518515980239166778114917722157511460769281171437637811348846034205850653515830289644777475251223739683810120583678926829174286352950253925451243274496166505837381371007971783728811004025007582644051758034193425466077261691529008587797300863099214050663069970177283100306214696808050514763882130843217252287747993325695075315703622932692173244788373843743667883131368662020809036703881729324539794340436158265183543827578496786913684691301271805763161799898499801207768590956408179166593799450681212967436931943332123827521424503483841390330485595171264586826462382778506561306761936287687574384288930435253392354060753183264724338933977402542337894555280761663375255453302074294480719931782934338980921801315601932200839329713201915989503774151138700599517451651696072227304214726415704567867001744435895262747515618845123454312627419136802848296024919211223772274685680226756846353588515982177540684810966989132714719700198773314793311437730274953945979541680481096026006420971018628874898677726610750868867253808319150248058699141377649906742873378034585568072435368171877678607075224758867581476297135915067430350813190695531274101349517112546674470142337154604399591835823063891941204779210440434991924422652087382460868350621055490285820163675047307672183080293259052241559707188118370629189864430523213284126701602431985869474526217530818802352216306167495756990392693327543709679113791984143269378184739500020572497772540880083748383963275900372101902910316769956935774170935086414333075613110920955459148206620380831474200428193335999297212024413521287144228731250588186027364231798583239358399884597759236448757986344493894493111716169732122101539260665326021688122531029101034971316096867831335736877894269029818058198344707255439037818090757661565292240890999893002750247844966595690401218559857356516379023553920215507915341557863314197812929538305708216617963630691789631772073135074621408652065351978753091927217398873841553799573025610851913104315758707324659874980003010579240689475604494820616074999498866900406784645601325999076134962765220023255737268764316921472455925441079361157378617695750056764535988528569691311560165864491036565698268358449266178053163693705783203146186073124933504465959052733414073632385407850468809137832732746428043248985306821735147656072099418543200333595806686423959371011502634733008035779385117106057544357513474966759128598765174825585590529846445224490877963277294055182950189149948649779201158169531594003587896182930972747306891779486628956110058016946695033088625575482741902727796201077434769249703584165409249751453892008445075383188158859642842474258518329931625563648724660410442705620299506082728079118882820495603417907133049375556886078419557589791815058255020610586452892451334099874488268489063499449612172676644934840189208509298440129608435176976984406993841319887417878739605597327843438248061174947429532523985121561723919539088935084693793723644192805736133521282254276186973027306117705459516839240470337839393025933912144783094853385672665211790557590599002215489781449035613035435087688838701557666081558987103189980631510782496928611717429886508630471188122932717880039863751769225389482849221651047232520653751612752515168651106369386493243829508342235683800551517559522509005928630483352356940599133500552797465666578214159190677591116882340211316828612640651886615695219094926167115338649363427042856220581101699768247853992021928112690279858967845253055251586920053696211639899856671627492407761205910806076076732645619247585285969834394593152716841557955337830860671958668606428309837316098054001390602371388069765142141899759167620169874138468583949083317069741794847065672393669819007338843523799410756309888029327148619852713750231493146047718440973061302813602816505686529653036757553181110795334644559838579757685570042569319695285620834390121866707736758866357242376615410165373782423873581932143535040779930547344980547376866657647927954318279363057637731194491810676539720682922443210328571638406369630334259754288282873248660836756787904881485009168429434565223776296343016362432240329845744394786873912162384936705766098489007458532172839685770616256403033616905133592836168079568313040168428377188286342102756563769275306718996626199628879132652251604584860470065934322020933871437301938329233694340894946590284378027914765865943062698550926712383087770807723754284314578778536972551478841905488778918055867829338386973705637747051119775023154130465579125025680917795978426911520170940920381639003302867259188580572869428906640996951145198995869377230827622053535117591960065767709073583520847132983550794820942924087018447977070306993084223559161172222620075739786352960432823194407180345897321361974101880491295922955443861940649019205196348823632551773462404419780859788082808860801961329002578624036305910245824829738846808928358164963244221393536276910028680788478261502821995841173486492985558413358062008388778505854140175964109506557399116751317580039192570898487712412593152678534309871192498477596004103766740817525216426541503048354335453623445910962046612701671884225093741858595808553737402270528028289975925898092400043656715528525337072828630215918763584935052673172750607826164811246563109609365704828718885690530196742366593542217542027958913201601408047254370388658427030762442104309725496469751216719413429732098552596072554247797374451879016594918825503451546989392599951074547409830338688877282933724797435693750095809417955144088554220870628467890116972821840272976098009149666208373973250043566877247658273973110943068101011497150093098034530840931560803757998627028609342848919688577123533760855754203425757740152347286179872855142140695322279474747970753316625358802744911243621460463392934529060380378368297028869698029447570983276055571889823664732081613105624786878619733845195618374090362649101924524658171931964571455992243968329301497859188001008927546653987344374183940243791612929416506287986160492818612355818276514649073465082991805858008425074794474464202752034518678259495623886849889192471398675908985795375715069201168849017166600826041264683953728841620609492286243926918891939423057584870496656958764623225011898230912405260084471581845972209144890588035730323511887917606362010193562010864632790451932828786175191362525269052096740965309950325816087621470920866887191367238078867285076547991997314910163346724829487874646442591925773194740916366588338649492927240660723208760529246166568413254060323069312516673710163116397393798933256356737079637347088641906153973450225430940171783824023697793139184226152711264686242391022027364242621934227133102792112850733938251205957596635632808431585259995050829830174081009619801282574129935804238599677417180358174994595834716207951447428721343840174864466572146107390356538954516748712536122645334613774815394637542752444124085065797855458085504601504470765271529980554705377433929895388336838758689242930561491066780538134741778315205270362457757377352401159664436947937053946620955612251080753705505126732460584498553834387394275485846395910789952343525381644298797108224585710049623219115109105778742125864165969005042374547198211097242053935925392385055076470598316292828372373513198838425237733662270279289425109276574150659429826354718249515417386884036725477724526504879894352414710820301684987506569078878626751501632174694128370531548225170706182290344579265495733485341110814319850333267818343465026153197164526747527641401164484498327210019700346981342727401131348842174227665309052507233889596513635466495097877302954129991058694929269463788620938300799129896348471193050185175932082504900576132138108828773972261183391680218913555176556334539338465372651192082055920452612127848936851468026218951624952531693655204353961299442859472260573478593482487739231633872899286317988064159009389072821909195932330347941629265734934277034145939244645042283938775476599320435363581931110430295288221217292167931504402328213534210665686859392500506464936276911954012794581428211216752907519643180495361391639310923325609641843175471956511463899618839012475641379975567759607108575318447265580640312782788346119079836990638478772663155414858778197601598704870343490365006464113670286589077538112689012400352740131941751412515080551246534471660350990345884179508238546005864846862867742747662573082641787206396858168923393013159795127540233266446649443219012076341853040397487941347517234015259325809894685898056094580660419889159297676364195489490217771696926187760270813027749266760435241573599781743592884731541153383182129299075419002174715964567874751125438749723069821034836815432168172796038075752259804819663868006725902828217153573941826025991552402506624128168970999523386961358152466884041471050615123873439420507247777877226514860619558453773813104044004478563536896140109385974994058312369812958438097825794240770003381953360820353005029145154254254467169241845052719982437289508369407903326104878843034640719996141151122611437283867738016364117782659118043958438813928600729880082196406412203785808504238724682961695753097661234592597902925430899198622402406267922831549226102666845460836400658509169521091585896952828448046026404298974476271299000591731454180140038265842164961283194084152066587602032986827642891193826725854104668135610589347759015637733472823267482877656300540637173621857855316991202654396312091160171645268339675335378548774373794306917884280791511175236988553247427109804123574395912834655517071934928249214420102121890466680700555822481490649790520783956751652656957023519319941799974778442578647024621155526768188962982976570117194254126575804144496902158063586426534640142496911085199231993223172716611065190802396584712264748845337000564119980403433176100690885996693510544199683007128041219983170342116966931519418757253475219815409359114702295369484201158109958253284454757356005486956845799849831704075498957821942219166513663923229572836225514051496491008988289847715074256368016450157198613397028720214673117449278052308221779344742208894513757442289499828806009162901401417617186829970935594724156832211470256998473248335605966796021625489365906812702455680447458407896070352417764790384585882032866230512028912507339212136746273288860749862359347225591151780755264996451223062240382326781202336377612319317473927270908599945234325121210073822336836737276764367991802310001050034097293493323093322012283210307537874096872332971100251858741060804059190306985954066597281315576448419367393031867851241305385610516828741445728192390362372483905968047652354986063849117118927448086558377158727262511620560194205249552948559035257842855385034289391512641026901203692764765665133933559210361153263246375184636516135817345932544664184277148607263765357163313878118834861002657989477630466095085894690434105839226873678590962525012018988125528267581956102212299776962759347769011477971474432978220890397664484060871398020905806982894878090638135723961613952779548393942185055953064883695901109549727492386060139841731939293386828351971377486332550870952900335448248122221065636883596524881250996484365470954853982538837735631670101430614841397569272021160329782497631909371565026058083196822298337751212163817293961585330551730065743740077771455906700285806750362625285440179843607721744490470926298927277273771181377677509784695738708529325341255458714194411418273610642597947418407682866490959435671988527900788653765161115355505891551748153060706093962147278491526186909371824042686803286821993001069150897600938438529555236018506718884508662688937124020273596286159543149953756467295985301278675897652302290222759653080422708524003423962600430603091900791445020586149227572261040820836488378393391773999204093632425768042988995093080763054023073097834009594066263156820935814139544576402899423794539462845238295418627954257133381751579730618642827217365050053265507023878139182320176657282553573973703515925663878916744002661055942626350006004267336094925116815888286764014466519152026380987208640559602788269049628369199301165438860765063735253675183041240656580604812274271354759841243788472321619058886878930680518220648510479251644085954822770181995360942495916136233207358397164742641274189261378205323972069075579488769108775670504001754695174496666981781990153254252798209943684433457064430623019441648294633341326187630481896318544083099311265941978389045015730133223576133116075568557229335093039128501905603568119886817743940007688251387586493529077219346982381261375256283920053978766786918102452099535767362486147929863779740030455839505745881559141591030567608994078319836431105373092791598397141240809333097719639660307329020811879134338734133521330285698289390620456826002439254987106601183114237583398178877853108075522525072686672962082441376601363661502840778103059876365009019727172912472169481560929012993970485790171511222662893851714721844166694098494834054292123659323151209211221221930509299886147555802258675197959315307033402086538352674364708895641624169822313874357643368710398972905936721998749228503499305276713217042510733007771436549135436958362559754116047614631690033539924134866953721177766882296258290933761555976251168682641710079429214252866868184401424394532892405276215751502805761752406874368859186151147874173874566961600125896238063187377980908734775457973803083951997127069595557501796007303049241592011460539464520422116557262648980174514252930113441666378541624433502831417597793713811386502428346484957175437828926009589081024385412284965277721497906828755779588119312810650721669722162147221298642290894783962017876317077372108442190719211005941477821199607160420519777626457094696182210694921058435522133651203959681999965000367514798893777638627544069079190901129037166368428127795977841348409844825779191663061859729968253412454334299079835908094876418600944906374074504896176573724386810858451465656485314179522390385229462892259714256038758898326800413281670057833171851629983055347625172982538378575212944442992901908409645610559411699223928544263012963225168467405183385032802455208958263184867223880449468685801883794579474113409583828684989147830401073288599183309023173776178642775532243964097785720912905479226485401564828741419880822416468178809685473948590619452943778983553767014239861637057090505373774823696669221922361191909207195997241656774018408289252528252651177617983196106824971188368443546549642467488864239015266682801888958474127825755132966140647352773086810906121022500594201583303954449399453301075671007267751016575051940536709744243852693028068790305746387635979923761931471593009167308794019821071102540799326889725559278998513335787954555223860277299833718310385106550117953484388309337686690127914815395194596097245183931407393231953737475279762495737523567226322298129042231389423560887112018679036792904458072222022259870089312516748802218287534743943787270419802482405342428739786203292809185445955693221327098575207026974542635686896470778076351123494287312611230015557888462678618336866764531347659479226417450836057908137077536695348396586338386370606347258893160044944304226244394824836375352739077010639683633994881281653751802189842263679953949523318131732390054199988622953365848340644439510889343567006572334987565802428381244661615819502404830693896214894587459600555104799926158079611569479006486249716254804685403676177552522618484588495238016230715734709380235641018604310236286860826755356207331508341730903640402435671194996829902407320502815074672514204312752854815879577369667942181727156340417671304157914686009456059271017564700467031082154420205966335819966895467105155462127499018357732279323076903913656846788707684886449283117906744592949994640790730153829847690620888496206072608556245286428141219366917544720805922344605954659108593868345886581856373901572986129265212401900171005912926619329355101366517456107187018625233836361656027814763814735800162695916714455342625153189439487726743042716069323098110605380812172993522018602375072851563412139762373338392607107201080855085935811908933013540657297495950348997626497382980548410035470374488315929758318376479726154716210638992930321675501735107228297138740694515964910191275845095031608775499464635979687985284647038070095347435074744147393159787136927998971342691529342167982345169141180337702247796750298614695843148596603259012011098600135851651841631088396868239054615433614380127269348081859393458804097064862516805272224669548840235689769970821138108978938765034784327062882799700007120951915326471385789924995547764731351723745713827201715922129489838162047100884605608632503008800627064195625101740117355575596563029879355226367047395702168942993983039318893395705219700007074603303299333529813166318487221108798470804876134886288340671047471450897203681616729328608466791464746596549705169860704955687870851618271740689185632133550621802252363542348425435406851593007215601685110552186479963208789009839996250160808357480049645296880037531799578605805260269713817780778080803355939463387205040428718818619152194582987719320649175843194283232613954152232878974982764034066245691855874642684745327825196556556087193473529221139370585287815423086662163171163761742888114379142989561810710253385263539495583259782667836573138633208683918630689481125183599256275311327313806016029422984042171376970311265852911370512860171659171433926413176877191987324808117812089256623584104523737261796313336977815444699644138226593278480125200979447521262239679359042892984791129717606936405909088141265933105072450990294733158757674451046388479914003694294028807058545208190909592167942094536453974295764713077060225793598634259350332751733498001901619350788204873713763032068589972868528671764016977891289007919028221456168763576807509707037158754328809910420193130140619416827967831288164458950151659394703159738433007566629754829319371717657372709336549579944646740599812480657064658146124950848831010660745055814150668710394024217209556094513348806018583693306423084767638232378804688052883093158425451463944731645114474164663457506603114142993611733111317958282406501487133658649947038292020366440047386723404376070552834378443251320577376674275559576003993984010047550482574842361475798100427718717857202191785196958775645858186389463084534097879560950890485768565129112114558175054330876123052501831910245554169469934336441551118566477410516687273945508381277742560765473961474246217070780433152257786164794598553683583883591619824427286462602685794847830202434533151047288686843603926075382793732394868712997209975708331969453840303043716857201383496236229613697894397522808447940843931394653156703283444171259411579806811821166191305127439146706144060195208710314864868742502958639365556116329234110942680682571402851273202278746898312748857273225496898940808914313630284235550308227462145480421218177512907735085917333183809985996069073268181178978474093637558768582287711193706576406249908623889999252213970588393699217298045591467798950824962268086162639563377998040608268793827976064037201492193993998685278880041313304428596570962439104979766405016178070541285909688202305362318983995285769612693404835944455002092122254803029770911723376161998448996198037525968570571943549216637772024976589459197172501005369359664454176290718573842109835847398123788471922418758806427281237996104431668671272753775214666105984066698508322324858017530802040846662977643350121028868710956353509202819031396673672318113498387355085522311159800168076672902418860132875668472141724955519854974156112640596088476845572284434322970176169056207348711152961720497882101998579011875072412081106095735794308364613715101625562007263837607746499455256416698602719965348481910553950033388738190089190041109953360104075460240858375958800454148739043429562562327875975670867089002101834563678720407094937296110188735189081256727187522020495443507072878792385435881603257903130444559863709616192435641501718021967826920148426447220173229864020396565085287967910093256193361348870269539367406977580802123532239679191694275903900783568532361616815750436714723531645325116600160504132009404944378799353952999269564919054408867830369095550505548598548786188061071043312128306432297237915564523843928249026903057206612384333621554302221606243687348623456787900246067904936440741351087617495658741149631748977586288068176111700006688393141885120296351070999697139990335474074129301070870495783808088455647602745734351730563792210550955205508888979023656700708555997866808321364421668696639007854504462895449803306244053027586144640396980115713399495356773713007185428278984533477163724319253294811838404232673277252375697581677906890810914615658798553741754100987029395147328334784216162763194842343584437395088193581020000981653818744167602424127271893230430660289297149421142099196576953834020581169425726176325991172340642233378062090640709514202252944945382532075452919471497163541618948591796266574119150238262726939690370667706532634345779381914409300476111316258231834149680876179183975485051673304588410351378615881611002026087956816408742002013898010779272640346225027776186054256672913443385646304804209659039252437921084207560265488577917612573702677131372454062444459276805715367950738415751409599627341101437051030483026638201913474942203839225366247539727802327866196803180020642667319541432745841529825731932075292396731379634801332526286932979192898224923261897084011291584428975221675260553777207858426373234247409434796666663227107862451419300151239878663115199573073075295636106776659646438852303375557202877241218650947781202336081748040493716890929725905388034991603915066571427730685817045670264036967679263943139449603193189666144504407091639417965890161345935769758870969707083683592131462123959790282399891633993900199566217847337119186745635472824117004924121914544429372078196503158677931895670013386883256202740943304066058038835882098303013662333538734970283092046907041694984596396194524914227078342705628191795818487188354849075405914196686234318570883579372801143121987816539644717850072383855388392455754482906754878626390929136359253698020044294164786920033762405064869706275687920967944715664915443250295182371535291877504395697357264841170338848004094654586495317105783164439310902012500974906348934179232767290459596688448108853309349874259882959726523098020073169187559070042840115114814582797914012216941867528485919134228913038756931737806995277104442064509914523407207682236101341288771117963068099629816570809250295904959441797279802647781687156609408745838504142015674614741666116127573735676653502098450074836401327160863418363340644173209295448194037192843528958986409743528605905706039548875865077697414579562583555667282637341143639663661586951154101161432564836971598270899495835671478348473245197122323502589636984196170317490896553701946554571206856088187278901094523057781312371906932546697421006917475491736241524007619753414495670963284891572960541173573830236615709332115180014826482732347229250202274371092939694517308368614212430976293438144465500718333527454988880689458669321703778214421708747747875592757753712625339834877537032789911161226793632790268484161660881236926902120978155777685103634991488200147466145373705845319582992500815904137150399090511435882983806416038396270620101324584222183483181633726147852804281185103955949628366772289141566210987868868104489162469695725694839128165442038887670354403705075065970092599984566073442366404748106357238728207530924207266752149318299027670318905155098686933377834938573508553031477709468339192721433503459176784136951803129017925384163537443823234581492756493630179234155382580909473429151832885231195532983567283183215980789914354905415900163332427673434228934450280060160031733284270599350427472405223677727881315409310136174351558952793653568946495874925358414536758498372906455035799332695295081334295972270176686511703928505725491432641608789625976532270161909812708831238607930558671735431004722917953159379866661315972795888173213515879246815305296203341001765050171876397957431066197502525032896811105103685759953051364989437150804673828019732014491934080767722949198072336966529223461815587236386774794216286809393693628493885226911740878645067117160040836798874493266096925167868786577823961471573622609549526403344585206330711470392021779624550233388565051530157263909991580728696514766121320691612141591887222849271971520018864629130671743287936600475894660787414304765224331223203917182637149654955558226900570128512185616524036676641252861086539907870683070211073329962848656108322386549431815915895606922129276812706704402907486361323597624894133628219652864546587794129982316586054134910593945940008089506006839676369096620236153596333540133478549620708976505612726195334559536776920097446311811751815330056860118840783610753352238430453427915800906415169379790532772946857424207233491696885242752412407149113326087078510427956723657219253022348430558701760894564153710246446671285690637979885504998922455945541422459645171981690118698769987965764333335762333349919888276203881468727131675451818815861628746287370550327988132291495458892266057023987288731960784512009117244209975410592933864999215488578695152070018996006415831822690921604738111749301809282912541040348185909076197074436972913678173302698685189499114687836524967016789867673997939410701198313759209397577709493056467410206754554110431587182901620115375237482714945962888239898365592349796707046690578269910774241065280899521637859623555016092504980658741945897181393650370408645766068823152609073122424834308070455472359599002102021748977255934518442843970855646329052161326530270247375510965307111949945422903584341601676887882356271408404154538597095568699030902848240348036275519696969267007637642708784004907048324244391403720270963253836310059191068975732220046092154395519894501727436690613389822358906657186983013600189958182020457171690218451097114945672722145304968188104886179876681477855465251753306883562188232389861523738383654246713276329783031941074792339549024150222922511635246975069838435687254229747567622007167128897652673891552591651228966410575220683708087575198271725213946056783119723745885039363257726069803339487024400259541926619916429297213775888558377114356860362040342007451494091038158682917934112957252454264810140218979893579827626764214547034498640512732176553528873522177313551159935762447510160059710092734181587111963956866935412505658050548697854734908040647666756307438480901094080602046416696471028978770135476546406147998055603082523413619385302448466296357346943500139995702911622967303418443870833615925888285676049328903308628323812120492062645713207370465858006838500235748026864826900497994625863623889578559990509434607864613157559220641259888667704137943260438962312534783032206790572044896441128499325120592594759541289254290225005341756398563454227503788231529484163940548655495517813079810289958758545818624888470165308531140346004642482350914131438108754924697081157875986302011682725275609783898665854873470025937259291660131303181769257348890685664733701092627364586051111999710976361425990932712550364972580185327904122111464802068405198461990010889719321406406680074152852191010523977101570292020265045449003400267745730346433866775136913881096466426818857785781276886447254051111707002474611955611620259748193763655474092794292664854794934230894587868052799064968119761707812863691520932282178342489225370441651568985835232817261221044593967754976169522723781059993050098911683458057497929628260448426003819977509485541825135404423406336458317786088923833222905769948682867226085257701403987281189098543086477249875872044708847784376214351718182307233444293937543505678496913144664596906657706753964837552307369037672997081373804570570077927635031121573363555361425628049165003451288949973723447560146574462061539260324072132211224246054197966122294645407786162670489539067819747972359348433677223966837294845498612218796446574836616302521253008487279980137204844078794928909305481159939712031059347467517384666435304731476532120031381642925244234798922368708829074059715590056779305686753373186718040526204375407858311763783543299196295928723138019707824840946331948846531855992653401985081905536752192477323401052973420892818540719077072645988663758274471339907244695679397742772850044308377849263701799246666204473380389228722550307518927727853072043525047015985230335936732378660716240209039420534842370389795641157746699611247836512657381637841609289805888355121042927036822780816543170862314444789351892006120831885759947022767736512110962201085541321268619378315351764968303199356796529343108001511715723115557548129247998704452867495656761744662240147991666752223267013693831600570659489307940311731082070824716085351535782427495294112866390605633292753498936228943717365156462736706891498962048221726591028520404018349327169056085007744568065068409670830228532949377060611585886800801197595576370120478097288060515873059131310027698391328414210877952387678483085140215595976391303385085029457572361430209007392234242149128069123341995598029117797173173768550286867063953321246582753998204254868464665749610424568517228851148292365996870667304116565308050892300079950090640716967851743993680177093140065255596481864141566260627218996068954074614359321661063792179140489569314122932431141426333781416586545774527589625473969210310395740873751941047257176060630856953712363737710716193836668702793808666828285284350228213834908577305594113104485993013749842957570426885335082013342478248811527031506160246113507937977043221100960048481880085048273226435192757242531613756496372685605949715209137332278459139713658164389437182066611278868692672576407046449455824601234747959275479233000092665834225638432674981375218427468563801272345183306762158417510244001972919368005972369155132813313325972785443899706645203721833013920998462606426376556983849398128647233304173302478495845245814122194188131610286454866461304270066937393275641444948398871054933055553234632702868481105286978458605877373556870531708214232595002871346888999185825196243198849839013951879355968267022786690936892266810242002720261657897909052147138383618048058679602953684791862312287775126065865401169494433103418196996831658424170293369001456544382873710986923730538360404176208928670175591212977402904489754821369526614708087671522302075048589076804089042318577800293044511312329139625080844890003846835280074658656362265117422268377778310983833482172091108943741885570067242397332035924571205976360569787199902308779108735558356584719335059077878300951016179872063603177281527311279981136439855348015542356576925727123019168796343161635643666665061257319055427989078805975109234326471303965649426901124214431208082652502176868420446635566301565188654013710445385386849389835089125317552507497185580645292356024994104105015940439660552079279203498989766721024454549645040653340754725564219123112145288916696826408459093822241292770491429198712629281858989436836662885977988235093581788580730044625629173996789641637803706102054432540562926486095316822566284799776620450993258554605355091339338002696405639908688404852754934385892987752382842972197329166872911916209707698178000525167179774737371721654496353832090114857728708445596725405341239809970149816795989287634657452589835112029240460389264825564879924152624865101706880590459285171154809529255925248718500157661571035315386123217433657735165303321148576290218482927575568334413747868460078629976045208359736161974156996741388329850977368196817907426349853254729778229192838925900664419547997194858590821775213105474601040795849405047465872930743927499529110898189503306919013648988167066676599323775326352511668749479889757121156825019391730539746267044818475275118732418675770814203432649720357269840058800496964505982758834493844082819956488554561557631566963288248837431673563976663916202307743173935097753683477632467768703120645466540026056123825732168602386167180654251682231085769026004297365101933908878377760182100239235203890204666666860695825211198966734146916572464049189850944292939543713734549375815531132789962577670073316488729695345349226125150989235006705605284723627773076324139017700891865822448358923755601849987405855475349427443159733651610786185657935472930315155126124943660467476019014088775417623518410863716797970625165485046468965845533020488857734737442602118814255673797396931739666361559738744252703352725619159943369610165302294245341484947957292360428790052587021345995367958462783419528902954071687168082686901497964855061564626688579632605518268769056809521336165591332485330992273782627910261224670916755260919714630025881819674553792856479718318612402680131964053533258022178675739149616223333688784386910528438058057011493509044261356299269730723359871797076407115163008197055160662176787968069928458199631358204027065869041676220449110877958901343261088330986591746431901214547583476565457000740867955497717365699331087713323127752240719507953791353578911555734864020441608228316903775099652883029980440085879652238461423433612069678763457540682333307317206644387508212824641798456408601874061102813657157396503629950563434485282026013691631199991824296792159344485813818705665043428861821740006253545802091248941675989383524533886806636586164457494774163981613535970904660017266978495413999791419277942725330345022191603396063626097714318970763850917297350334284973888594178913867299516263320986790303994694249572007827624957118921009919371054525122356857565704458894810082787506001735871777758089806721853735050146101124862974705062524894688007617116528290009178905994676319837393499251614416051289081353937128663651919168216316671496157772614968920398770190366007964615918019517231797335003891215233553367005968393349692951866238887430267444560617889629757713710793121808327741060038875827744886622858112844811064564579401543298115215708841571879563012020251119482351292132865196803329510070467392850851721004312834249455373811540454401093633319921098882158398089123637808675124320592164119330215953790342311933018722660789785498128991081863357843473426619006553162109057021374298287341763829265054950653905436530877147296611672443865898613864293448869828616173888262879184137647171949266956084332429325455663082920357163179785008876305093155410279761425602189850817419635898629550879374423280466723577168536558479011755059779995215924216402486054398630440483610508946691202500487601688513291247146628809240160815468204462881860679058059069572879149608831101901931581399859511752086757733545337913114231493789668521027136410804546517023674011854164952543834224445423810049704467914240209589977283752343857224114366984308583821075171542014515469039997791594124578790587193106601166832064038555929899189484606557158639073353761108891250791024156797519864205511958000793838813728522706490217129680609446967744548166165899244253703444913685001573265337294017900687754290082156251689672907389663091835308721743261238368807676461810912119180793356840901444634520011388157177610857959409404480731117934748782060029242858388991094883468338644993448675363525314355545889781908719186759980474245820287729031895113516619914022669093873280080650630175240540970382880200611415719196038954463436862689048998644407180989905599390368016543068788940729465241852732915279447526147557492314475542815475070402222941608009105522387883187232381769082647064247167692583143909420517184366222399432031144820168587010195604211627755910064064647718573856975874216107063897657278967129465126820246560054010093045087426772076955299268633178134090302181670957991255173569074453454236630772580183396358435150701756389755027353673394312193022314372905732586731995764824083093818546684760367013776432569112451501153982399448367152017562111798398454324539822208839599159444943998154949282017201207055668179367311659056699368542490160055053683315629856928091420262041816376988905077522604610420125576110428292667130334716965612110188522156548604950697188148212317164230879711843417478204857294255485366179403476841122606436802095290536970045325995903546845442959907688402736211133651124249092369963369051035898579803330222725436534796865749480096711077098744421770715772449375118493115496189052208720374050238594881573410469750218861453372581087688411438433910671223106531498321970076668493569534320514659983683684410773614947560247894892344554948126099690897060657565562154595832226322186797845457943890295898967557279314738215203528075247434689334047833241894373028937638772344462213299208174794992639952948440742633862692587539248671154941703657074252914729012903254459405884196455140300984497082350591934207772693942774717003451429278281594182787465102356978458737265493056924033980752907708724975817941227634098286250267111956811399998173510666025006346338255993560239334239113371540641865154736830895185323028687632763494606500563696073913100447223753486527757727442393308821685379611817684964945542969690559033847941769001766511944822570041503233913019973380491557161318139959440375680621134851301637626463763887133119242986058592672905654945397985578328845888656512294863957991901522666460889935754656990030832868824941128483206862385499400922372181414825940034709723784154362295346860068838362507697625170532238655194731908591390296820681064729373027526485804413810942215796030630035495372399797091859677919896637058715609729130296793878603626255794351924577675768514526293032312406047840774154481155101982092215632174280184112029002150465868354964471340917890191298387102713295175247358350991760370896115126513703693280000126395322889843931488462376030777755336066172692810832309650232188826423516600929719608634238209481980537306162090552305971566282762346117431870512977392346181996471132791493923144823626038924330791400877237163451998187755662133401373708873344336901024975715133510996009630161432996257421761098691657302588907204673501022212212235992358976477455571229787870482098349262430086705860132135562090846282280589947549613268513043637006964111119317430997756228139661768595246825241177631739587272952134605620279775707492465065629820186970590419091090335536396246857595129915173014739636637502175405901088503637174561178983106484119804866113196829276047140222808191733581170004504932164080712579190049644901305734217082668031016486783597682669284381239164979308405109781279638745680138915177433810860893018802705720983505104387781812173363460698195839016688144096848668588087505303017497633779290308964742605071849088932685178361946023764792684643411475979740359906562461471211844825370853151513865534730671139326865899637387611483007243667339937528736732105683268545813092614737715497330155075669781450283781065864324724085233595589789661866297966813260591623439984787644511635741296084290375510902538038474596744315114346335349608430490461981402492884689570990021209436993076727644802861352252410720657445927874628849118533263426632004610141641002919615553173577230454135455331701524788013102683815256850116325982137075020745764140618549242341296762170122827485577794181662298238016668478979786249276448283744519167150943275044187206794586489368986476620607310300886926190322162627987370058694807923656482003218393920438411689787504872423512362897648442946993595939921426129828326593824815914362103362668477066017592099670491087185394654859870807069432265144866644955453596599506473273678761736835236716562848476221090228341434695647978338283519188283005294687886832012108047461099110230178750484656285492503894501537107297122790694710789811017031403848900281764106284781374204757675174971419104752966275354434952498246267815626588272285072370286292215585091652314179093933081987843006032588513028967962315837413462663209547605586793318601425568224544353411212123207729455458228191686141361805764465598083988004141581186281093167765906721476793822678737256263346390040512960759975322176259268554521088447056767079945151637052523481887598651395533515677790651902757447967088926785447816749578509800751785364249719836206876166119194187086586697794917873919670396903159062312499685118722843414990945237253914767285335871832339889272009964744580546431307129458178201323216059224498678785416595546345446939971986317524823783962307557283700510776784711795297270989575825542775268734866876369888227946638374756853937926256581503931002315309563777996111091339292861650169415920470631197420255536112414485614510138712408174117432846930636402840736948714087117161908461553937354000208178653287917951499260746345663685354316002583371267043857131426712948653585438938378646637223953505607843801241180402505717946624236538245815559676182263807661175883643947549591807677488705162831338028066711600437376387740870108506571889342561990390593489497698323382043057009408038510595576931864625960158648266466659043348425287717471666760374734841712840040729906583596868974112385679622517323856465478210437363668106942843395899481747332222734119993459031899256929904940567866428531004509569147274638833224817806857546321724932211260615458263274671263455837521856535385435165872310631210523086538094401419797747789307770569947953630969723967316261038056725933673439675344182846175503080601208969247579279374699645383836384339692148517748283614731377406304780826996651329150555041211738470083719025694316987651675003843829140911371220673523090142875910104690534420112001091213022276197382690785410073230898963949854332854088170029284983367382631939148164403378430739826405880061433013260625547529020812328080385712429433182824452865520802409809524115024913656682524037701057035278084524430550111012067948817097677138885198585175875551339442709726126506766211707017663840901199172038633093223046539668705195229512128118105260214068508191773819212437760271944248781903731951402720231763268944880339483240602417590455354014943354186418765993386382505967388962919186180653481893014955751961247745774052047280790380867029902329597418557235180674678443467259190725055187884949487161488182819705843050076196257434332570760948764041488456238934382940594833338290686214308240026384629289947982813122575477267573382561230039426249512787251356391284373387759976126207522697349710923402553205362090662490126430535348898451476345477756260709548722829710746309101525868160337937836622368455358590072107622726986420716714040434712620594663324936154986720084384930188500005255402126416838090408414960149588540379357288460327090259396564157502026125493756927089634519563363873263435422870841410071932639285588718593446200579660327529010126711266135772900476217697784823199059834360397528262887121166067862408416163071821982561004518592280326594644138313065518590920350715578009187569896663092317152155487086504724642077312570145060154281521800413223120035023499728724277185721313441542690076372556986368630415996462119206152198819581314101883391071048350713670101168761733869290032233598562584019442131393993626046585183437520871481123635192463430800948361287134432406049258348137707791871572544118134746129590895642962469762730220458057228596025032573114341768180264954928118018555525060405686267039783387902530572726562812533797833497305200905056115073655596974919115005904175690764770405987366243001683386821534509473468347085192476451394858393386187202055187674752181944516362678104527224745677320160313893171974780891690354141286701639153442464263427916376440171405821449002503517653362476166337364846719938434320351458302823609651553253245479878672454322957073225614879683295233232362709643566510024963111728608645328977584669073759606316661235739354209926753275988633637580437808396459418147489905439439264711652229937523481136729102835048621183943517078264937229611962734129855893498282990624241091338048498729330096867051366672849750618480467094197517902804412430247940831186977978314624132941799065850585169131866583475995607625783336549038176520182001928374176691029731556124299557248280424821533453824944221961936128728875095361887932097275595732902564296090790907255832592361507707547645425062743903620779790066085947431428381147311784385397106705929641938834874031961313619307253973709164676353304433041051501471477314948379858719954021681189858200402401836954001724096445996231008887334348747980424142063149781464454860928506890792347912247982651447986101014172512074267534742585396344145631375860830641492347471044629403952621581175534620407349549672047876067371118833117610550771266586963289021966918793388375735487213873972987389739045399387132887472695633843952070903378318571156743690429661513483377220717007728779738748518195917441892040671656387315472073486335393348581694587385892015098629690159781023569080563030353837778021509793361076907169721755145103759132968437243813587198480284852289802847928081373982741649499502555339962636629948752933360757772528963937455107333446106760424269030939818497897285116142647882995697825106286032837663275293233079334574881907360117631146548485551633248344611773023669402840394592118163932809507377256611894241095667079604706979752126674694164302901294747382035232472675636946656160703678239734212211617020189292204172376934524211859763142939430238543755593554145415229109184339386111113748359471841689112039822542819695584855470273107824178371678507863992803694490119419818284831659777204809824371589286900281194022000343323175973631303421614291122104562838174489191556252201225767165357179483621259356196870725410718387751929620546556833021722852200589371651941040377142029843615069455671540864314267488332014072119403424497446124667977603496539487640535762619870000085241795180196596175256344265223977813668929015828057779418399225409079005811429317533236087954011274458569800592476221084241080128561975221102559741649326276608711713209014178453910216770830617566750522185248393790503590090380001785181110468736514723841157059567819236897332865030330805444580063632271733176551315416382620067535478816533895316875086704355358872232926085613145766503588873762887176076693176211532926732345345479546684106654329731023087900755974180845666183923031080603919348013144022035442981218179352938947554354369290594371096515869219006150487620195390133534825056579567822817196696308860769927828259338708990407706311773820231290216488540884850274131075530177382400932657263767191083650867432323425953213120092978723771743688764600783164510683127061038142353786107128559390091656897017906107856519656447320330627668788776837570443695880486825262089357510398863750175547602722849822438046542870762984925204099138968149672686701691529075671281838666205281770024981739956800162627851560563675227433139168540570098523363822313933076176077571190948375745770344242180568598248806632414754357115227058322477606732968796463047447081585209833443030268230270526130734286714017111597253014346004933564716130562555334807934636712601305227169752118256741605060214248733753692731308985534929145586449781062323472517122542152842184041380677739442757468424457362141549182389745862005521862634559885124789249778517214990274113016700662518226835016918230890191083224146739652977934042512364202353113315116983761585208866105627033632804506952225778299887609270538304416538203797623991192505239313105200250137742036266295024193095103391206347953898194052542348259101305320247039337874710570286768843914354984495848065690966043834281391905918880638596043086663627530420926172137726780392881882044755783365833956029698677136222455628354657200214165161423297246326056419947633975491907452083163249663747436084688792232572978216962993401999698953443388763452012162100599811666165784241411028369007812028597835669956409313635896364807662444830752944542949739929469661062694994580607462213424402896578923495569581343909831848397722855734418233993116381886349102022633783714246402079640149463206005831850702322339886067680550903409189705636968634618099635709105436686221739666182699827754926685544541495325975907642831522231465583912411524414405184150874806463990484275482139061248500582366949079355490044677558528705049114731653201080023873377582151950067139613634360213548099685003239276612213064143470989287677187548807113447382230802207041477799594055088593297524924047266356804120355852728912855767580183798073498423171271265768295871418449207248201454393376773447666273322128625462939255578088996163395876095630517008694221030535237393684574348625345103599004403425497361776688857172312371785520573335557262953737500673123661475400801188015461428447216271879300904358900501401072987356473262996060960411162890809035766512497716103014983551077159856340862391758539323262747658249557823142182025838091921541623215738270158961298075480361726875248401278028466392931395731136415263119815699350616923645621422368194867433602934483296442209229105136450621063017716952873838375504227680737995943662173694101285649625608220686322564484160110714413386147412474432485003338469785872554243391542474509470372988037670530223972925586282420706986315702581624020112481867721470906273432583832210543463452112326531026531441235135039767718768593112698203513018331026539702852594271972841335733250054595891226057369862275356098952766215775855483406385137545472650471620747982831145800447170948393400867697357123888114786440013779719553980451685724001363502620044507655086298242327364112171081014311269395791526509760217540768019985614116021764003115773583345930408540097416453024266548461922767141543522861523371956520467383010714526771913203331860961652344597673487679542885701338436520887751477043429103086953180669962194282450320801601183639944960518036502275464073951901445768974444360858086458125782863728682363133760929080888512667461827779903914944428136312948787262031156889462485513744234613735781179929409768910105264490070056536056610885176319243368500386299281874739134940297565477041955343735870564584389112405211337452802964891272177482963054898647773472703542225807968250627610401836500944366172879524241274472555203653956636835718752640604333702994157075646236797627524888081692101693307513893892478300193640969190309493053783183048836754214059244442852582453539260199613094731913200539187471676196637921203288431028168638527307973846294301076022509855612925915025727436796275020090016967194787518697701375602623541417455848032996175280356444107352154922787538917064394680552353174531883438952638037946614051337798301852490865163053890265380868657990204980948313918201977325716123253206307301760914393747192629834858552805994356088617787381314533512344824641998998651563684641060318951164904115404727294857154578857514815524403453387064967806898837736738110777509266362146284446808482092442238099292718458037616277480098497649848218049102098218367229992547719369407553878943564287901375129563638353107643743233341210915451724836578850229855080028826662300910222906769998379749874620004320835660667897239395580753451474357726692316435851574627328358284642702755892603517133514748772977386369660512863366820586873362154239984059557490074098544729660624821069096028556164431180554730363870353362510934138112420087314323740862309777817416848212795468258659281255587794969740474996770899253557985962836629198288486579138401714670681336094884270857488464960120367553291716473133891008167579390519182305522473786788604343410102140079342438913792124283613344832907062142542540200640446368419827564799805804263031085563441558621556116258130344980805260133776895956479525393405803388183173414320404818858900980528368716879208558915697620595524585254192857432691896514370187715177227628061476204385856536324643366164558469636529763346174988539111549113749478060335019282415660118007069938005460370474039141991265856700936141820533797437105167121015490087751351375253242834508544410567599499828531570573424072229238877826082350017426490068688946692891135207173671604663943489904805115513550581804018713114830419414692470993173729268187272827818822949327067733713833660163676009300552600426133846743985168717799052554398624827004247310980464156585706644148916614577693821482617341354912193968182922665505747963173550630594122666582132268089733570464959533376194600203281941002484065602763314326405085526011227411647076759409816981796399370427795860243237964464720228044582827371308230966660471845834159959972434031546986148504787798503967116105456733702131514932944289018736284315377984017470921112710432576455977528977701154243081051647877619185332558782164792276068057656680101591532096157494223334118941508009448388560224691459584211048776181602273086447422050705136855913328750807410244919703168557442293101241140865177844135714256747225474065380337740795150327290373522307938281648415520121225515603311224695963926407282326698337505182491965765292227296777472217013426249040866440938216183726943510964134284338293510874130065887721934417198254084370384615392695649888638671840507542731228939978508864145705399853921802067914780209957781599421430088692765424923204093706083088408188968148860093274404998602066357228730269707345977013691438459198539198511947549826183014101550617271678802598486389911995410199040073736864511148404690997259381548632327591946169068782082847955488669955420991680660717797854692741905256964913323048176831636379894924151974601910978285938558955548723476103786326935681819842937540202480912710467213191798290843098022087789679053634617565187177370492341202599545437417272100086080715167799577791014806034868551618547006452812320658036281193757810589567389268314454220622056981761070810497200213701526578487796432568957563216056235671273532883221677980349443191716893736000900243562746548333991602314394377557515115230763349966404964203900095045963849966893773843301762919101118692714875196665688180698844537941055879633267342892431546713966941285207605404343361047494076456848266203646326497913780426225300850333638486745692066199388262281556063943309805355613872226061900108931298633721915354423220363741157158156417595641833088462914199406310289314237892606236417361563235410657957522117486619753558336191430676308633493874430201804065069301858326571710645178258287143107755925742979391016405724280788127863376380950519571223416001861497577455235700762666065588259724615322648143258786635614931293455903039421292982546183601777664170604196110237093235987977057387659541616279445520349180555672195160666174305246493170380891931820781623906115845656903300998491733823390999892526098674401465225117661006365553429253048683183917872741354162766042470554524899111390984850410351047693501495315207408602974009606945813850174350312499592291214626282984161738940908804769196043935777961280222024026075332832916579044834662465474357896457720239958787454293532853758382441416811064371974066292366219374003768397353362861908793006629844910901918835147863084279503843065505967481940685082866452361885047453973957086587934895123739854772919778605715474144063200740633264468987120376107432464196712663831575568140328965660569818144801567285482828581413356783472077561193427461637522079202412085297127513300646361664387226636932475478845433318214417293479845235318697409904954427501333760236360215779233229635114363216678417891674594332428541234304617921734207570577952027074988144673855677430283450424819534684574565585278491502821941952683693407880149007530236784173479015036236572457026576456335804445990783305152299808296920097347346636894025067985546358555236782693317420169183432083853894630358306757604609404367406248276675898838897568523101479117152096932465955870609987686735850555637707167628808206552574452109431521122763426572502746771488726421606665000619155624986381405624536300490244513217806679167229980403716527136226383078263944357734297070801863280835996831344839621595185770323372324866519212993970963627505856818806229728793891354202818691012232394925120824923219094338302945418119385711994424144659748332911727544381344276525475481152185953804766273048168128781511912341254133638842177814847042848813860200875835307382388803286289193824152604316394396563114397138551363979800754521595936744849164425848383014219648642922671351592094139653320697572472533552796029531249225684907019330776384637120154658886011069393829179143738952109488790050920357885880228762822426443446437903266196210233920922009051580105429120574203661812079243363695078692958210294558350790756829940217887852783748259552904057935176974782406286880503993760516753498677698168502972709199231439330064739153618458855709806529883249287668076221419122955571893293155967138303857844671903669522843256606970178981435292075314356234696496334861022496252926300158784751903757191025326556144325090309628674630632502336201047269491161449443722246986704284642786218794646264771660055138319945445839219580604693960396204111347554335049393380598499196074361959263385018807529660717742119566674539704332406237490407441014214911015705215213664034624311468619516778074322813592664894222719587078384561560967663824657125415439767994185791439658079570680898093429944753575782302639498316849305247334874934602289790499672355980327730230232249614237329039615170070094108095015595342765809107082116958076670305697229901070751854431154062706455691696483988958521235379039991080442616211388433736683696192057835114769713007639671057032307823641097387899313354435763154557779616539160056198111778404479321421946021258742347250956592484763008674676632384030308247563745023168409523904762154840214539538198891459395761668711302967512756427188826644153683936941020461215119979810744231617695078876717959325200115002714691805474948985164555539642087182516191026903846233645555142442352304558359245860572548694275989864387063833515507793325772678179747105545291372796683105686119758587484290420366675914681931299456761615982837836303255909120833409177424788279329727594914473280481215240821415226955101994586914440671956469825444718559090740434494972511672197418898323650224187773243798349015620814166232007193501515218918522354878090207046244583115528179136176146901979066782329552086400700054400316700778698160623356200922507838884303057441502195252418885394337909203400103493845179046223687255824883482847409617683073792826931980110269968038111529778816504481905281766889964973460210239594060835329547563474264613065806002514421620258030530085563497361584022917606644391523349633364677185381246827479892873139606414637708374118648686308005611280469581183159967953535793263706014029418784002031509390886164460661144999246972837884023386101826840646862305271868722449376823879948615621399174757885783872611138985335147027122375888789964627345306955491738309087731025187724846434785294446672461465410294662143995131686658839530192370381338377297347156165450115076793366348231377262418285219542920472016866163238109753447873327656961233482423778654150409225155482564816814453248880937241391280090403695275772544640096396951379753632362091017216413545804107553613253052131820286327852812061791227900111383529490930138090893001935049751669669794582464943954214442294032325373358402973600379536390412612198498297424143555218576039526836427889876403000867712735870106635477584680673969979249373756622537841795332607985032344640846095996187899795482067334218738903038797007194799868682814910647091942393527119473844903525367188332742681984289252604183848194664509723520923136021208227455047865466516839281023385433599744906219569476869972857532898718912616947751171859564145747065829041324957999120854560747224807333467834901780409548026548552464235218940183310847199388892840075155147265109162527515023874809066466839199132373116455591929440095051965911654944577914516614362004386195819160480130483212341846373602121165179139512042723108015372270307847386690799305881078204169587333422932939333681964838479817663540826927963455172772190337864501751052063945393685379458330424552660841973995550266385465936556748502447664880009510454796969530840968650158560349741613020949216367316242911550351162058077590005827964081297782805032647978350919090167802301273136549558412505063605909415024246258095805217885635339227450763031513944015764661816225615084294335328233388859136998358240013716849746942174253956612031364877960220045951330042201934767983573927195005074737474567051313811596755441016043433522455253313319218414147113150164870815275391617457930653779820468596954979585266209879108581399916066652053081160776537152668066269078135995776081438113723830785759859139228243316642897897566695680337384861816470522926371560284912274833416466519420230863828082140837979448471148957871263620592379928871085923133187734094302455190109571353117602949490219585806895605070315513829092294370610199268787102834149629985557381462079772160772640688923370067340096485659177244366513064971013009235406489142460957712679557910739319128646790027386584424478636291999205422508915242171938562461088011356906811693018217738444860483620810655333621049247010106817197948430891982854672142736207940103451902911036439912061361602922136159161695668419792544788839576284731258193399385787270741081043507799587615649380176801737000383807644501036898678107737798369864262329641181724525047952819798879941167600237519703953686842113157623956789537245418804480544349594735032884788181809555171643123360869043537750414862461279248133916513803104446473609872801094178182045251965332932855545883982098396825303470584915834769418984230943639190129322753663654739206686835888500892768836800248471820494460800761909814079452127362034240164955755020245653432648255643258336615731905745132627529103482008671475579795595101497248128703121697001343603427141983374834570123017774254178472828395516672065906705661621664199479184129632199976565515721738477627646433201309920580356729131594954954908935141087011859049784647955799314288096643393850801402528221589981261148167380905010878016369860188449708277595988708755293723819011762681669292143410113876818058799387872374361544466762517352958250459242303969282916301340499737905108390926062006666414391964127391880369664118222784994633684280330784657489430764834896987126031473456951278116000965221370382083814499104012267300906224019592598026548117286598787310205094035808807376543573605194249353122449504461082898053972478673574832149414348415046859599121346291982374103175831280094629364774863088839105561962243297061298695406475444045115082471212121950450385358367032874907071177727699899581561228887918614385530356476640148587940341870626623457073867734769456040720407111098283260735205482593561757723908863161036271781695661411959471933076224374101420493423934348877112986763903504965628145838150309244545049424197133268162229088120976069698027634506314876101734814500577091259803900330877709245877487634323897576506745427852251822441505413603157067406605700218956050056598334658406741549402052101712897413698986846840829089264319677151877944407190239622082317737557962355175870378777895886520416357561527113110206280276658626428402297378012412538296666955969579435671509184837815113270948495661509487105517781220757007304383414637057171893378101643368764403868329975395168197160694054978089923230848185434206424292170071528256598321346681813888711357504418929673858140101455634649852387365657121099197685874692457974454740670027344373303567465035014737479887730108653998748079045963555384382678578375951005578934486717644688302803742089270469465005263946217216447485508543478355408515205720573991847837927955884799199780757518383909259737359380174160006928005131779387346836530309760192648061064860235649951785284185883595086411453801568140606197332937924878988548022438832379767818212560281176944655542180284865796887689163761570540860717946110935739465235388300403713163771414705382405319950578464180215211819979481981776281633066361764283161984360371550859277987002324056184647588746687683526392466278227330434661237272207613895284716236797858247203740902297733620343191895242539184477745987537891156402090827992004849758273041684795206280348093719380139351095209101750048091130261224228725946237413996862672410158000668351343327519971491834399527074745584733018215984290559612252733008854666685781987206523268614118344464811979599560445054543841121140956870864041365446527306552739208140385128387845088810451876341468990345850711467388946839028905596537109459181684566415810085967884676610064834145797240919378931905170378106451712861978458079870401648968204493201798350142382349253779311933275303987130727739940762585900916417776647204245362368268255504584412801123468975786667016908558871724509011784038150249929403332716757846917101135897617082837508820444928606862885275478546029067481859271480228393230384153565228287058349109957900670294670511498297651910185974342196867292450194616972209843206278448522654080108555215497127669692499513011350911740829781884765830947799986861872963428059327578493509219601921930129817922422264232449131421940357440868300914323457848126100181915134346359163393258323118705256677314998813599718695361563999445052782032159541454633544045921443333124903648505647313646507811320679302619677972931286091773020979502040407844817186179779362937423751525967895840466082436666494212233713923819353487327438115142251863774043367209154750298553399950673829338797375538358709436535225212081883304383157357576407383120085798242767734380869972465194717454487113225359029959233011043958089344259723651339804521106533529912093444456530155554317879304501237556975493036691475546613946466700641703410383734426257249033769192266149061963545638176506120698834483280480579721225070867387638049018343751231982597618471620641338120074822620474609295758510869642038088896362424912412745185596659091848427584171950344305791528191501358656705448998872415549507526950750636978846314572947483108355540553400798361339496391591458201406770331697515384036826364921873494787210226915745246449111748122402425349736767882472330879874768714004989789719316279942744636030398542475252678800109684078747364023889446240832363522768829653982152763921001799546185301118362868592211617358088761871499033239737667643615658430322080189042180943780359125016168270894917229087476790306207316614138695717238743358736817650939937017872876155094425468071070381467528074060247132410121364294437092863784285701308298412884788304199921716984332939927647943618458254542942419667320292695141520432223485955919304012516006137407535062885767648228240573407687679481347805564570158000777349051557995501796420273766922709077342053255872682623990940707168476937668403366875108413951534090678171845980019800770589237923757681775140847771403936058290003973187940795883198558949135707266485332476573878716111149933721331609334972258735641509254277545870966896805108933242362331549616955581732844834497333859822384622553645522448826719628949220850864155101181001644036933773290783411953123521164530053144877278908791607523732204328705213368604482378347930697367589006858828074005151797052701357847887582487181970860954192568414680434676887558222836189176069434340716135965294413298370831236455440679699038026855044185179630797815223098700475482882358071569414094049693083360728621112442624107021974520714589082864400141323333416673664542032198882861864714387873099491396938112547319086192323823997859159473876982305319639068600103394532514794434846683040793871572575888431382597960700714747991975255747026584513938840096951026339849030669708089416596917207040789445489892985724460243603370215354117913346408000888000235389201470099316271399684993711357099846312770344068829216129495851602725622112177438616137627772396923122430806663733494406984328534498546600820041171598755390041923163796584026734316803042264456612108477259159698924885617304530407201702179619900662916028829938935484259751141662295139901295311354445203841579330597679758622345802495721179532097060247808885078596683051211545160916366148925228632182781656586263074796552394542393753916658370281012392168986977586767299628048321828409804999497181145167597532140931168672216660648977437031904392253718614726709285605300667429567432673971482676316785557478735771491054149142551845618562157969913512775869655602638380761975595128060723711540311732928642714830696457866697764361342958647325480290085866485820068725591023519619139065684139914624806190657939876372227615383664024628344785839538045616782591717737528658763760766901061645141781240117497905533156485783550847999443343429982324487675324516534113324744239177644405285582713234031652310020901944569715331677573035593853670253391584069301451058981779082706534361671636046857364211020362248843781731156756045942966565865503500182701885386586329614654244557182319230869472135568060285343624260432980197367681830093166511728018431233683128240051907879283107034551491244391732798655353956140705962436791893756482206782046863393945745276165011324578257860426837577252824152017026487579745130140175603173271391752783485561432914168233299962627848784560295745370144932136973607013881338306566281763054423730381932849189156461142383542335597441990794759159876386433781104804015156178163129672753017652539783274046206341865468335593195425159294187327971849513960926657561759623634108798219562954165668151915675625301259912263784470429867875524559357634506417283524832288528508104854007620615243042016430026835278662512850964110145349257199367387443506063057288259120682071873910303187270924980460509579289243309817988706477842996054209399466672952938248294892312966799623307358479250807656869238625572125850878488440252416752129176294680318372889541896587868197642773025237902157331432189171762840853067288747449485809103492267738639775270481321016321159764042832068182875624663154287027583448510729915908201721190825698981412036370254263400370838540041399028017744269349297098674782851392509860058184876215486093086743980037418289184736881303035032647297110268572726163720363993055672950998083054231367575635210547899205018608809253869629269064267958340793482879738815380321597631097759749622848931665053361491302918645331938898524517216412804196367068504504386699114859083150938626793939329616394813896218164786233203047037971968572371421028079775922039908387422387039332653492717465575524853438776088069140881034870994520398113031045934315736283861545971394501418935526730890272791572541328975302814196440737523748079974240461001493356923942034012225743620069609908326838372576415983053479300079498150717212601187616367064728600182841824484305570935968720940533981063681527613454082709226174220636715971750439273501630090494544685936146654282083297472438819685043916322247333928934481750251799081645969093439657304200818229509398684337729109959464796698388920368623841368998120335943971607770039504398340480931067528191456666362961462199200674488854532508048114395624476715871036942073712268293553007488811320800656684971868968772984814576670396240760835246347164468613890271213331879534653474746211329349935167164495799728051570598818452286167508825547944787198512527592405683915404759712153161378352953699404431173381803947159939321532850202442794927796602994379607253171690148176596038496028654726261739837095923444020451403536639812166393691472333563572654121530287803426927273984708914306257447410731866224393526607683365391980157929919846921455996525207939106882023214577050966730178552396956619710105450496682235892393912270933643619953350719444610830548787609140348241530784086245454461997850024978701340981653427181651546199046836421119203114237669311080439197779764560004649595598397643439639386743862544843231448185752447757409773842377656936068608592129218001214444779514043075767612015934784875110947488536538250846621246119322636209609387902412065351504536769925508984224599998388442722752414860888671540519947575601268004764837896021824847687024160524561653788292912023559178746924326972859004351995310391856156475561426209756703058003517087356213127052647638613443361502662531853447739227557953060897015824288636133114671442055284911760317291301861103316109890805906602562087545263243140035571264807823803106700656083107388498783541215079454237910516520972470041101026369928256386778447164573633191267516945486449376461041716620136252734222397628449561312526595179352770241629721903933560018106534247589377512640087011292632569158306974298789062385989229322930444379438405684125801195700109860649078470540924843755159583849619878304684938130914316535060546920602642908683126768557525473059260477341193105036581836323970034706880291005247675714034845565181445259374512125149344060813063768493174189091506984593414834366004354586867244101889646678064899978805797418449897025779405592100834019984123464607376730224633908028431952057912867343128046270797247806508819423384685730030756463282873994268781769034917873229865372018259124309392066644942097135705886637300799478579637232753312929815785372641794258467318544570722257578805004192731425666561747826379073012532480606401708087550383807584995815111267589262046591377212029210129392226589215616041531225653164234210036280392697703313298036292667585914290364048876950238682288432510116521235050054044778071755417345423724372253136904835823074097507570072787713626602209741690681234130060409479797641466380731528696669742006989530411823720082967266584379876624043409017959780943856126692515438220732504218160745099710517916516769695720936418110923187108762665552202409598445943370009280842229399779402933730919107164119179918079250079564749863572706931522910577187650092021789533236765464247085783364588236823975083157649539112624962324071107897246964178275063549004678202219016625569698768517026521894303018761292669040291596536650644708291155635508080018297762813235573591446123383333985942600823580381179247556163469169366872446538461883159475372576270303418181908094589201846822103686073548614112427421168483079969310583379734692951918843895259944968017959271702489890931376687461565467919042229904404924718523152751607309630453762191159049924308870437165688035233883090383879714588723844949589424621573316601598024661693850517960697245227297573964915949914161621494982535776175948762156640527050787976670155239596922654155926969217883220047004338048187109247570587452377507364543296480263440480933911183095502714917404490249444638193182267906765833800590806524935626073966289844366554685786577196398235125424856180019740808007618179405259556249739768167044255031440375660397233268477456917537005606808214861683284462461689679590251092083814623925164258658497355605782428812697877504956673050596475743149230927862085263663848741932796486484456609466447978285012901403614243187894960659245334476122035573312475151802342124788931885991573604432620367122664255874226126852941405822817578255964556233618268584357846102263906635807616088899502523701911591697572723437245147032016076840180513829000325604315858553303329238306731513425680454218361173480114932275665168667898115617483707276429348654415839080269266664983178492128115506589540968177139196474667123224156243851064406266285108532470428699835982971132691702066109961068755099936351423841038290432133718308949816434632803451869616862813414528806098991444758946475096084182788916251446426665020162384074834395005871294915994025830691697318462388579206022965171367185680634227675283708186854620114408490998488712524271288333448980420606480766091046446791581496163387897824650206674586450738829626043625268422110563536541824066995784418371452966253709693490345267985872048202308031736137629430454596463277666460657851844271229264472430832709945671186273485139573182625339299927237861615832951701843257416334142287885586745072806117778643784736687673323315442842433028055037291214717839508587671576939654194974224283737806473575302022006443563668635518369281528913158772414534184842627384341612926445389130464579941403757481831274743721141635209396446534052312036357957088710931708529285280938119905869503744933243174506831025215820583449237228847027898389716553287937312123827584433233644335248523443582198019543409137451638995344460527404629527267537461757391053160099634959617155495713480286762250141595699973814271180599747370313289023070237827763663860394225553813906823481113077159810587112199284939656948129137023751520401075992579198299895214688892461703114414706883757681957121850625779103913265022527809421228735549004258496877029982242833673205300288233557981315531910233014815924652740496393847363772806063868453431393953081384875968902588459703296540552548169098777754189328306686466271206935363664703424512255378876944221850708726131827266964861591653026330149538089678422240773654757452591783604600157007445980408051914207554504264818109261809195652919824017072613922011599596998522861225561724567722578552559503720139007688031633415556698125132914714934276686042405827704354926480959300770722542321505167740178663025847693107199262973719383478093158475381260435656588278827829471929323857600221311997020367417319337777693104054403297888350164581847043956551662929068983268339423257770969449820948321558795474332456951973468367950359550233778470376328416686268998741651799589754354667124915140878576080922181793096622550022324610995866544431614067644557569545184789157779605976303476131221705185074218317088807415007939117744295743251993945891489056432998150876214268766042244160937434139565640376579902451632532561491914405024144094410976388674394151583914710249941902093363290370010990153735388632324940685294466417199207484046038247389658596590886878862753211536298207625649076063481704772316580387056763415017367631079440311160473242551283310616029141112620804884831403255969204904681767260533865268790016216257539513929708271948114576023982046089928722901588697783572547430948472447428155932647605037982834147511455495349789514401217144927029302924787988845347040999693556957476412222956681026541753656603951137388380466250818545455099587067192727321174671555692141441236844602659384690630579076918298728396323466223890299347772410470675995191823247590576489275907119135127284499588850590854003870500400780477178050839847840329459289942997053028987442579297319941248281843298564975767623889471785370382007581786973594167601407529245128672003186173611876115241281140440921824910733574428215885680259518676108618061692343255382210536954813723582284788950297828318132358100450326498258574451066731905962741233160417988612895312128806703387506619026029075688166348148088285065295380825199857201240524122974071134139719506310313905396539464030978258060090261191930740732931878210379598431280216882154988071559675746795167104024687915349885930362159205893090503967914969792771893455412884361095946405879928245672134659682152308285171905027456099034350352451999147120660141696654983208196373075503478812469855182898868694378374616233732347750263978625847345845134305839877517887415088087321595541172000516451881546930598813501227343776770185331608794301692977935689777774778349230180122416093015521665136967683048844571613868669412896106527800147987537798998405282875843999720413931112004862310003525348914311977978221206053712859176359157247363820650579451965891020965750967019407418033453143645654940103567502286018942834574524059430070646656997420299416311978170174572005941686846324814912929463482816172453489489059183433454743642129232334390976798128362838229425358998601936112974856568594645228586901206210744014235471489563580537846715645388024603398915551449826207329317637808385683950536797094033286799002027605222784014637667531164005707008066642565345678584029711480612046460962922004761959946982057510825407609512956148201457166938536020971478553021456764120455620006909853987082902221964681025819452096737677051891050709176453318211567373106098880900236697913217599838187077893020880080595979788271045760380946165855797233765379470301527531781955472602520834443597866381186998506436629635282413674719196668226068613759880061309000899178295459786182049329235525832235196593665809186537800354490614425499119228095118541737153996779210498620035312395846659010475079062100828650987138923818666945006531291580506556165142370832593412505341350258959944467844104179843915653151541690649524533896322010021254805760445663741325570682875868610893014664116847144104012494404723242988114362674904122611811509887796047433582466809932252345906186856612582980071145465687309341114935388927492357689985729926447036930718538601177035200394718290916331565450151574972128941709398662205850943024483807894617526715463624685663901305089520536296277343570439415880832888802834312468875819236594179665991136101801651483176913246696145885409731566965458237463345486841685496270539399932624442861316351491108280989161464135513455229452391086404439045501885040561557292209698761538342604024790910243260574718849366711881561617601074726045004360554522809148719437079316075600473235112096437486259256800364899504512203300499990410428966692218145737272564621653218482444050010426564352007668633013761774621972837975762048369093130845366040584276789928597256713941660672016920261434997042876007321341691356661664316650216617800477194985610884481151099215787831948057257458460378611287593734971767965725962642645083319181750812808164843995738610337069339216260349262015725307949939469666730826374727543723925531714765482016145335501821479137678658821368592340399970541847513004977226518355006956999843717941778981677188973276864052052701660019615279081947974999087624683589488560529202899272494626511523532787589950822308685559420535463927912394339654413334489493156544037414446653062407093816699991351096975139155087082841135972283558248939648130378943899151232190120106613999415783707210200469164604114274735677845645415907360050958749449586978935722955537347157502088869982638356930155336001200752693651137958083380035270515085106166256026617643398402202012129117526776033182283671287537137636112251895718685060069943410307854906914069793231451792005902126844464964901612445208813603017934328239419670724734726624157592358166900285067453198452968824948013578788692397128261385097519494430960262428883612534681024511395881224974236451158244001828684433286901683904367520294533406423174915605253340189284579362063385211543003486250048520620992993774951879267972948533009355241659929681557106377571893180740829987819855625841304725112037120429388903207181167296915151729844796141669627154281279325689193006580461747961407388977199106290317915848967685906740714944134372760277838479716821846330299518951448149464979160805298875264762513283721431200103178762914985565984099270815418871451166755992998896397076476564736300225249006273399756421219323369912696497866785871157841221729196676283416860268708851608366956247548815115355573262601319053540806840988654023186177804444227488045048705668252792256676720590093423485159290788021626202202140513197349885708850026540023246417038902888077789773684641209222779893675808240355853585211759741667537542708020499717297384728671962160059961886170249910733363689293575973795755600484002570726281115797172734709774132100607580967689792773228929052379997975201070954593188706827284051446020968091587900570803444899552942620228053116521028263985898051372839413154831727310696137036418764974910938809550131776350681747605887214884404831519563944586039680399260520985439864233788099974928053349015152247143445281651425016832905304826664015565959768471013968483334812419924349801892266409463497160032007055028642373531941482209759975074496049498811677332484734657034006765744929966809482523820042740370940051561184790443585730027865400898226145432334558113127734415427007116997417479794405424379436648074728788793358822584489220386574813587517664205838171639866439155394197137982111593040787573481826473960941268030086239604327598291333588273245854399062282885525616250911517787724622366187261903789622326436377192366426947525944823095975188921407216672136089047346900318287428107342308532618976720801170504265952581468220080548913175725156398515751284831354325220907318484706670450643811983969130311234116142637612580753345414806494544177029031951863626504879891715284395091245898103882368893677845512456263035963707552066206987592450636827705761795814246721701725960966745285486031949227956530404762147186325195111002683962949307446695554527286319958467833731238750387546626661398948726511382948188357509741016060123250428262888978705258228706973730059534083435723831292219070483775868851525912792260532221276140229878422060509491722651179776171216036181641007696828509987833287734997126776895154913386163355805627605300609506667747403057022915311253821537686162541071413022258596429530064598779295385064735007415834790396976779121348779641878875883931794715757547887393461899337746174929330645671038533320483563341831987175430250676981504996855124864297045159738719342233496671675299247336919124151103297316797904803014868443057919628273393387045358568270519936732179283953025354964593374042085565456725195984994103487521248694152576502038231926666322183820352541800880369846651211432755576829007217657436015912567951357884463070262511472239744326177748433251886649518342446383634173450693898648299258512207400676977591840880086625799052329273078248155952755356204634849803320009774826194353165379092473985966181109820190036476166214918943319888879043895130964184509385343572582271979580190856127658107406119010021593248794336852385058590979334344399456416136214727266690428219465823743448714072154208607520309519665378602729464663607213269311132402156010729581948996220843598943094452010359871814444420692592831417824555975620348502557438092779526366781182954262214710062981085853658300368025186320102156520423836283315854207352425292336546725029460825645014620991172200868228974118094171918547239717831606154328099643426805663013222695116161129509972559552457545332026129101034817886365684135702548833428823303538532303813410742418385930730332626311901900974993251002982541156344311181097464701037374266300732405819032109892387946370069513305418570226896423037127740225398435620861188293261431255085322521405546963225751062863323592211571978655047173856322623559909830628893206549219334208659070595167704514852617019011085324513319845433862610905576236084552477311709647175145949713345186733164023355951054686423249068846197539855412171767107500906149437267320723354632172129731718674545250866420710871829303247817832716032339271459226536198927744558290666182721691685812516131906689931662240055753099583023528447645225030619070542013600725852319253315317397100796784035387820849351718036155687521307278021054262955393917367020094062522111442817083952214578131195704340741162646127790156933249779887268382246421629023036298731455866939951359368881754118857998233951330489313276698807374179549488810391863185145445777650545630242998812510812164773711277190667153545969718718085726324850932076698993643939795804231118890576864136451459031039391020912120767844554091151000359430977954746094588164008796396086955694715902853678226466514246661943674125009188501515318873273647476470490457214388414666414606404361283046752350610929138473668189970232085213236151397549101366598533725215676653691311590510395779495153479097843743386036766360043251999631090161718680380801620102200280113968875212445124297295994504063891475366638150364978493982367711316129016508533254909725490372308789439912086656638258424086294478377456816731743834815371984869819165633859147237817717641537966326414548497295716100090896349118376070401505038697141128048145690066638923221162484773179592019466990843648517224156927677547141723481935070276084752794395559605990355049536314926368408454502750838093761671593132174108199102681814598114293910685405922470080663897651440895792150939331578654853190673313572361264432593784451599359681860167306519777250938132183402784434337168729984908043808284286946393365705483049261403116566077771839685915986737427158820467388936694685731123765237675121164895784991579016893928222992268934825199769829149465671352282244784953601861347926235660339167624078414525557750202721346628898641870442728730658294413358450679279244808279820275357248799899475029680396463573601013224707927994698890740094253092376241151858437782038176734588050671703210407563449614007208528145184023613837751091238931813740158779677991275717355275755637219550267052302535469199229924719136760159347141033254369810102143391603696570373299212698815122285343413022296086563406305180335369158610533321004951854882080647947000724055494501234622701891776811638233414753511266076009748495633765677263069338411536670560542399809124318010736625778711830313157177851160842058563844853950338715517992057826369197825830818687898330028208586526456300134438791826110384498835064016188261466626597197208972445525652780533847370475232702752275261478634009777177700548882857219230387394174929179751006040540074565902189630876632376293358753704775861297444705194734409279451833428402574077273624191963998841738519657551421491682878994008768007186538817113557932710649641258135940902999568037940873967045391920803039250067867243547781874747319577591939779348037296698580326913440609809556122315567256734994857411227248217133941596867270209349399030443262727492285643731552865655352367612951558722599492801943086499835145324717946480488222464553539861915811356744663967642599314142712377513926497728988085054596378103037131054561996408165297742043328314944573199484824476785687270468098607058416644497942819820893636827657185079491632812906353365778537339065498627994811565563324631081600477192694426387659688318327846282607293536188840547986446101351785518097154760919878934190148912606475353603539731917969701012625124759463632258318246406337607147722620940376277179409472156318124341542473656459220135483711487477915551630315007559858276132906000024435915204623812735873572193517006226435722863084445168489085478908821192357438567617557969466960097462450921948411850937083752476607112179101703297899339880701622088739659947491000706898330787845493811453981054520949671603548474346059001831205000856911449530030860071580380972222024806291826342927178634769423228612909011765438345381812554820255787822325541479333621089033098101073362178392532383761576602154735780258382040196071186389316212170979720223825647309243920747793300605748895791722070240814231067686604878700561273625354706619367891422499264285596866188720630620749026875494509892639821307438157185232841499374461103048499470365942074439976091695809076758906182803703882262879346396879972519034854999464134551986990403151412261499288680857606975160606989538805746867889150156952567654311127746897250412679838494003313900191538218726107773321517748096699689412056346595850911580921410307077220334161569361485698333432470621607645925080917314940453123111306269601205170575375818078872453521337984079058417685655924176100401443862904149021010721847888033441593862519535729942868375764110090219535694547214043634290224383602786465026561672368889161865448790423901867646838773080330619537747738506369896078806836708410930790982617876936064886323903753930178972397655468311180628763986296687464260210700172670312798091601348114655733798474708793516073080363959872211923245086423904177736346288318474415820409479429855328919877358795343289710991272458043979982948359991911266798040695860566302269952426340783834381258417227792798854862380664828690409158321713128115901787869447904768328129943906742494985875791113002679238889876232432458126450844674921622961569045568933515416628868834879520223704621618384767063661488363295146428481126232533303414312891524636355091129276736633813120492708731986642094780683496486572854017079075286768719357222932198212039251224140018863332268633203358711600342468252638513724632146235232495833581677971911637955914766026030761263303906940437243025185705795684366270175056735687800236255009782126715569471316779370975879752939730505528831827914246191632729596290817501787201804682025050294487138094917117434459465662350171613366687525807845476545649946450025843787348019500540351049220447952705055864461914082163048149397919207554697954875585454357826915499740719168938403038347810227443447269606436835106902333331650262343497357205959399600587457995266277817558798510017193371703385549025014234857421671467693662042795585107816203160333274994269124781482517898996232876160626492328191194772465748624016356651840893605523284563892915401167754968299839559283025581314183149046632658748295406971849030797268540283175173520537302020897212811884078651042472374148370773849710586365969175609572045436707799158839429983682173440839954751732491444925986779166187868503922560989213928277028323999081884239828565637657561563960991799608889310894351605607438162585399062868190744086663368949477139736460355468973284296183562032007620435758440133709585070463544979189350577775929926917079312255152451022065012243438379730838043051598026246218924182704124762963935213814790472760948521110902304856731230414330515657264374744446271361008417615776728394741658059627651690118563700910604693833683832855482403051317035555821549337890005261216021175481624142983673802513553273269365722104596712150609324185500044840189112897858870855424221824478801889866930965189023845472646289028126397294098641217949330847166774525825963504515921778120269999073772956566472263953634336510626598765645454620934162518633853404692834663460864969720547286699497070872623507636857648075523702609787742708054801612878593036269145458943150667931913527212888553881856102535105707722201280652712263593920102057667639929845347050831084892733422275517262351276212427099973984531136894999777534358746782739402813877930670490958588948680465970147671943336143955216583271203967317693185539888880597984751534812349231151435072122836847330755626526204720567518227006668583960088415106489519353664700355856907321888307271766599883438993488912870343623773278187481465168551816201061462225785826804699278635110283594561896289604312465805212196706796341713852534692162291889209106124637120549623228539165635979519181183803584302448663257782748227435027906333904062386430258117329639326472447638813917515601688633897584057355845619822272745357454093584124117144494498817344737291522963769217160672187292518793034983516400531375751250996181419693389571780655200515540330276331043435750463782618458608509968237927095786099914079521629708452813746703458484698327965916170131896766922513784188643989909472573592555589414725456384163567148776026389597385414837693668237231379237079231506693776490681004471982374972514973101572252128682454564108188035209213826943918054471078692661517774707850004418810367650213172212505670159710658936233340750876769255192491458512603447857494268761381313897733442810726417977813434307147772409843973979855726513347384921521470162294769606576448088476809492069079999799665509476284566338704724649207037146208438270871227402878147361834830373746496883056163439288954734187260996217936025165998037911920057988431160092987549429350198300998259867389164625801011834638458990109737531303085211874185054777486466777114007156052007112406239784219663994273381632226938602181955665134112238436568949545255452056144615055996208528533975897623286956733103466861122369723317859314024802086920676877388478620811280673901925548747930811530018290436708738006436985941453353888605949722481369266537181040068597638086048332033548618701973582952082420677335325156222311551344516142134850195975484931057340501588061330644037882482074622972341839996053544083394522819034160208259793565812931557007841474083984452389763702251850087021045885610867645614792466173005391468525434710493296174367196102498077176953115061362903209839891181217659820072438878867013152649118814763370606387218863230224664792075940287819836352245815362151493582668006167130082138230047911463284627242639700960954930605616867815445469744166936148296793652269354111286713298864853750687209380508119758267988420788948240033332168362856874354578162254871173983938913613587381184755667250551353894393683170616202404004133264109732788494686693328765871727679865975859345703499109258239723696221279827490814555593733673413037260887938473899557884303265453155870387727396090737333906827157485503951650358141470696450496192937447854886730293166659673291945681768675581847127766642635236892959615547149073481830764205572131885372150053706966666855336393582611001087909538231634742321997209482425811739138943219384077407350816822466956477688768421643949245689061213701525899513016870039290349096740773267731633624022403430524546496142588805572095898009300378478666831055829913071582550265410234245896016927871068691890067633463004896957265399848521310916680527913202116356492472290518386845838827927664618014055305860341909185830089113086119310628606017942036806156347798223670706143936340475403212901008131333564467081715041067234363931961509954799603574641256353651019043694296005920965780204689347394593082179973914144038852430623204766528203740237855952219962547812658938547478577890427386874838073293692886771085057597723981380038444333650902024420540962432976725607620675530352278605368200074994556658619253218971457533544077134188034391681808541749388923694214667928841474779663130257997989047131011800097802151783922459105097149508711676976055324115195787401223670774486591021948014623525772355703487225429441377228536005561631646140825446613036536331857369445775878818335673526483768385915538450446894861144260226327763316532491584093594611204143753523412176110420413473365170230750389367796270177083689593032038795954518602625909203617222555373429545991296480840063684301542252970477516054050262352867423439151476904289430959914277502978224975400083651994198972017417853894019936565734417982330052204816375959253491585329700945550778090417529781012060072829093816648564088087943674019279953260243194330700581142012958400970640898553672890993186651098471736609009490082599776229957585958185902723083377041519803595006086906582370728742177951370761309626562405091460553627314507735740042115277936474961531569461469061669255441052391531997041371218773735451728086580593000508632686687960529218387700182166266065274080453675288222817202804387896667455562702575794332683992026936022664560867936429677540137199495084896840818204253770782803625807007439405854079747953436246646519962966626606217292543506090194491295106974652477382236131238748670825350812547634176668017594126902072935426923946877435688702212646211138581562476057062242570919740656552048456871018580895222073530152196818902000028823166764042825946636846218530227322163303990029659200575506593655911161006005653892862188713972375624227276406234125319301957336865418404369409380090867916439770816823601789373761832115331270190106145798351425735462021240234031495935772384320604745113645419881172016199607025315795267532617808045638741305946286798707393112741382704252711462365614061048085812043450049962341311806615549514331447433809720932909033220998306452939431556911824950911321109203276899914008660806233132553893632005556705403242208579362487577337678424009462261647930827706887843522018452620740212327468828130802733529537886075592285154461239666180501950620556370177249879620212745260245246415714344807559605412591724142002901173862424018271677397211320090070726970297526683754050964563982731994859660652877594328465247244268420163883265358425147206568995761216786439782410226185124951967302973693680514336377785897167338897786259809514667966598675839739185690973789189959708652918516251485721304412426851114834181051220553007649980578755626376702373954770692005785875639731423540790313364093574282666730430654819520955439638575495450485160899173174447830081394443109721936973917440796265668115499161571168439436033161803059660435515577187974552803132181613980988291528515219935321181471485855690674353842684824628726933231458200424745235756525755073501099891407883606303804306304930162111374248423968500731856799844663651448304162585281340314367758466483616543791223372571218054818384473480289390447037217308498197450231918101002044508985466463247648234432538451082056671874092310774967542479112920258282998824952011827418039192636219490768316344404936240505056648997967802631399696361108160965420977819231445144036079354013739305502431949726851297028980326932195161671944637334422679049950581066246885953540918891810044442099101124315158656784316589145368776419688186093413677112430785149677944907379004015283766423591627277002528041212491516550743515818286709597038315835065829939467134935803722821003235167253589755406230067544798305284426291951693406657462843719854948171587868467647764786616587225673376768872741533945085024873319190825742292125907941212813035604495010550843748308821459018875713770723503826299159692224671375678507020922920505557468949489131829623477392167394318428539537724117761722692213849877074895467434728888082755794324016904866918604911203432632810328632888004016772708256127153064807836195994164287307117094240892523338219487798836055412691598302034087787124824161822421652918783461471178524333932947264396944972841047889590185525020237604433527426666091502517522048687792977809685382139946135128269393898876636268263667107223121675252970054578352899391756029952254388443755589007579560403689074344217752365534509912735186455779425123074307521762289700882653029889738556397551973089118778161896203469151286319644374071277707829399874572020323895510260333378383661410657841838964031773857804995177818588509554888294587028648878789872200629950371928194000177140690575587087079641775644270105651600244392729017955543189988858774140407243469417553431034544165671659247842358937518454896014457114487263867081086124083291112896139985387955720496619427062047440460130025451592607821857315555036628391063379843670785189882191448354761909879024848234354658070896099741751276021551737965731193494306829368494146792706114549653885839685355347344419232111602054665180051931308629035737735321991285499354575009128983399336542415619849512978788608297074150004286613162111699215358992624774268370615877136724929279691340716962938333560484907479700448385992521862189256761445503880321869552908578954642765074597829410305011481640062564202795347764929655322244582609402756847392307022267502457633197733288771279826973302690112007886312322836871104759290146310506758002767075549789248833922544232345507668743980572161589353827430981335712568988010763413363834681385198454648428397110243241500614789986532089775640132638112619227850040834505079415879282697737973894559395281667949707451853496297028541380147343367529946853565403440142496907384083872085263931679357974323759235668063239210974983461618761824346298357733427232287905088500853499519473920301614331215081563472733036016159333345136018172568077895272740140917899393754665176794815067155448301052383776879084267199992271848605715018957231682263360284704763789099314780105728972178039245748491248030402897964462258304665325482760499304522629002844312066323781398193270854556273116110627399300424422098736380974569705671056676339239532071328340737894305644129244324405217790043617198131883234742721969272569346343370329599718418944637138470299297768457668604805942932502192246993619947152856715526287265091285602027649634985346035790934549039201151180435988372720813569074678572226734320485885629865968044188349385148733149675102948398595787494869069044864881340971950532858872190149112026430200581607306856398330621961671659068308127941873811061961204397051566314457101317051091833257999473434269963853297075428149649022931646911808732416040130627928452785123598338804160412549499238305134065583572250203220949579099730410835380885412334598977686128888895862109164729387359994258804471607786963515560544970324082531280328997582170693768454658331589734641691853843471632861565959526283526388499311611300605821679171059452525887202429554568996725151270075029209191502220671404396779462154416754443090116207305011895812975472861405746403924725782264786929978045444910474863921880113534038282877427565190016233598484657140518426552659118077388132543861716853935379648931099796286546383326680086434692195187342699239800109918261689656340876224110528133602456196367608873981509324689116131775168516678382577299349194543368236233533817585761230649744945853936724230431331404700531058118646516873815684451378598149098867095604798098233824398357793195734362737997735933254943545257039053252786655273059827022599382013210387794340949346156949667115641275825683655761311173111202586774388833032239466159409316573027710706272895829957833187597415749299168490234272582641667422025046196775603599645173155686342740892559953594868938140670131669156470009486569374715779275484372800061054793715506531592278552397719585334779820031553645702271485477475163380516095728217177632143040528339101450038840962976819088031690548810896538246550317013125185108609601289154863091337186490907536240728238469570470225851019236663479001947842447272555437526865694672170906154635949100749723944445462997628584079760996058867684527270704622812634527945864913838320936660214763225457734907467525798914605099653923240621798018725413545653987417299614624449701465482847112618455067592173626111429688564192251989169560128199958838832447108598001980766843387887269127891566925561472585358844509055083429161561888322810148489446717521171430313540824203921086612299752908338333452016243513107398208417497159457606630287731078185354450983667577521932786935452832767927183063016251741766871919849974055348154639850225262839588946092880033817674636075093805994397942723024155962140432268636020452338036482647608131650439728581874175948547186734458167430471117163268560013941145859015898027421392649941050197545094823708079860914879940774636813158037556889644941756970926582829741314630779275474205482797070444529325032461611728439610431723201867428858118732970191972871744458339983911407086815329639366676706322902966962654036089085193955309355972821781586475026558939895246540892578512475005253918075534546808362792513204399583668668918710512179308841181277444093511141982226575144277188024837667524769430770717550540763653727423516752154900924480477990343610009993835593761501057424601995404553954401542048551673056593690769664166426876637064267217000680928201692101769472825844041518434870763697987295580375529065981202593604082831773044068560028232964548847862217572937437143171362999522286684945365142171092572267635600379813836239063820153885281780220524685485448788068545509500237605159249543054030089148356639509025560437612541250199518282343207487950780321114391010025009362778470884024540619945061624643933788990727526169027457158703472773247525983248709209222046000460402274966057190786581905467482438037470073374655119646795283942665084646535458691748869250989845892947150499098728942676942738636220078351100470228521423954998560594686531373433816492647927367681777161888692720977725445398273732598831795934111714246003586880736419240510687552844021164062963701852169555474477350805542923572795351733135992717282607501418527345934592363183652313157333570973186419476135299306603689414438484682698664814631741322403847823119413912322440171899435103747929617688736729118035123092367633678030078695150698705556000537214530715492142288703485834268371889505347212670660111910477278083583808580264853681736174415677680308473401417938976169955539026452078194364979015494305485162005551272378123627370167600321602230379531531949827288448604373363986968377617238815813736115679798209713127125004389122900585472648694147057244015157485672236240350343393100190856711146203795200505023546034506951664024911124433676026020291990724059021259905410249006073924028368055520496008755723668849969141977233193664724077066354558337865009299931235960092058070492603005315674393591716268814258069984306665400307116241032442437605072386190179769284327557814640907194835959080562590430453881104290123199528040588902883956877770713994016855813332632386807333618230113350499778930577915649621797643739429853226497685094752593993421913374753770847180360800668979690865965068477267383572572269283967503551126304144433867120607549175885207981529380554595467809240866550476179397662419953191240436234506377506242006525863437620961401112831439059931966564513766154944978009744676122181178963113886531851209032387941894164787924337731229472159668571824042830221443228392540056825546850904774919783298715639593624981023367323613238672456970935721226629661957446738575183017629779845462725779672673550948961373658826780795049900382488077289784170639466133661595181688351643045835479671514011619687378219886660976161875920660678339109597981656726102965124916276538688465150419686307048768903959298142241793531155795728525663694918957708014187843197742256408599855094847868493347722230855210808806628556387354996571682088153702081308838446232082005463006381019589885991678273465436330046653343541048614315226076774615290994021817043157412810117711891587272400234647331509215579021343657706414149454546419678674100902442933248717971346489529674007708300682104833940635871274272150705203785411454630495408008923237350230168237429843705362796412364587708538769632446629324967826227229839732637748999075167879786772043788154542107824903411167213345651263274303400524746864510240825731671884340346528614341965387449424913785451698709963253668326679834989927403241758313163127542584143562377371875694598726743776817866881371910139913237348660778493967335408115681511081190526455543573840539224381517631283901724721728914859628897078523066732853204773088328009079661013875931569867242155542090468046242914499338835911966142169679546410051166403012232888196094497695109058098389437661753365246224116365787873397456530301982325555263963131934473494314892597532043644839293672810658378214689697847903683801959477522812748780323322350950727632002954042714269440067548093479346803840400276440508273602310447419326608604061262403247829886157290724811098194159382287211398387220426410640200685953312045487776879870540669476229106240636551508528237051644893222925831823569330790379222642395213921696323401146235189165300849454257317495869205311793786891993586445693254330882532840543494503764306031964333405411839259593803923085702503651533445757009802808685099290621681671895858661386022255433453169074741623467333727884844908723230257536495075934531836136673566987435729723581108407345139205815488857917390419920097304679896455725300094525749124036588290604493934852062101590691714911257656172301973862774812316567858156257182077768153234565226658375571341481386382769152905526205383489640215946181104608969170003281937045148900883241661944068967314799570142889347018131783485815596763678643987363418490690306948389565697340878716378252028378477643321770371989705079609240255333682419802823523945491483332365314008510830336819270978636713361904915507884398089858495411984342204245871743691027521152674421635990790733597224525962583823516319519410749233104043801161259882552112869798205845581567746971394951601767346506714227029207158955615470755203590037115950723033697965316174432069592821476205046654213841165519611049849588999352777943240440318703933707318343310853741186233032389495831817511399951894486935473376839745919587246753165268650508757946832569926113472520105524877035418581139607090594377790687733031008371631247730335168525187119492972644237184671206659445737036038595236656352922118931880206526138209836169797120669562229495278988803561078203698407339089167435539208804353112955585051339385029409210698191760076367956435123123698908858105503849761990028522659632465344580897143879334593199848593585748294035703378972966561579884059037107032759300800674013808194173190525836453668793177924178119779981158961552406760906785236273823967917917923586142419164641342606969846696641386157428752115988857898061359160448319260152534095119099524626522020623120692423114559792547560899125000568413064096563276736657139307366812226722063798863133317396298500266586529718835851930979968722319114887618956803604405236478010915869974363431325910528135811651854589252991755882669667034409485699414774177230209687123973599674796960212968413565244880516420512034211701278221208611948367357387638797549278096896547362611363843417988506647127328559507652868767032948980129070419265019072675148201888141754636359425232668488059162795644387933178648275110689215143876649602835413557781069992148729212347490112248090420108445115488373092489602226224658496449338944718175847293883700250769260924614595721012586005671706988725680807183362936809705005514385816586797029396576460699067717740669907608581848219412862300789344351061545070827395923633696308760845706705281857227792043847981628790680188438815246314456820411263070784841528838984160796403432743294397365522216499164831448117446561439970821242838735359390925689590055942140110055558392714824367708092962922241510631170613484305065522651553511393024540292561217546023153945781849811022925633836701618329094402106941028854609411947012626578758593713370510664384249927124091952650647423964161959689783496302388501560163547258503861944179495048180803391052712932909079452492241985416614094540316193595186071511927974765618540595532593965133456747626542592074993948524958429130626726345139338017202418945192692323149225473699617566407545655410089407551883364009495007995842317632716124222240453165395742280735963549227203135910264650863921337660423575090402825862663821680466299580653751205369410157649811039859030015889824665999575857699139493518131990555863795225184523333141262886495478557263429565820433481381910381558691868394503452391413568573012227918209782125058389877960274438651808454617924903378638624811120533755148673478847302664705813783502324154028083413142750454005924390472035832862766590293039273976283536409998322851824829086799072166719652330188384404625894638196660243111338039537294667160688755789715866313423269803565182841135493498593160957003525494362081331564928380359460069603726801201745453386083924713066951391091477310719037644344211523920931030507371562880051377723150277259176318729126048949345415666107058515451741816160651539256936300833120238909091759205695703595351708218680204619693854405078108799847902212656429927456663269903109792491546934544254726472466661697716832000540486217600131835722323160457212641431486059698739585323750199774873310765423775935285593771079308264124079228342905803951158004536043194384675150560487394126621689171236787576203015619207409555923706294497112778110178359070192866655679442292481903510141515140240597642116692983570366890912076284748515307787329871422088015994273830227870765636729607540638760815098296817521691653351118911736283544133147061646444083561762603088605775897382980865861307819165280569137645243352267282947791767419212358179765488718404176642352331448262428334071902429687114647315946653602570780514711054808351656600374654487001113057088975154399115942512554808329000067925594914020150244230368275658395256060344208702874437003134399084143776608272429085897890602780664665512730686909603623109325880473617690059276302348823175961790138076797680576630681434952670041822346031541639940793509255121680131760346764272733595408839804311095945799676502592201124243255382938826860031735263476031784097324489822645468535174727348002055757823342823956613796990940339974821459129114906941724565932600090011783401848814816057155626929988214011699487000670651315491646976142390325804776822655848824159904578007725704470499501897163532468887753026105787747421455390424093883534296562964977503588428968556965721396758153960237575711436702173397386144403771046322649895549274848451367827504652865181797852235565225930354998617011556879025630820997073017803961992544203067173282749123165606737971062994104529801737459064835465199849631690892928648743545179381213220509094019303387558179499695493602040264365251983232199205290575192052021543280320629449689050966278890237320694562613815864377808870769096408209170761301878471541896405098690292925679633455975980184948758164457606724710597584455352617516456147061422941541551120503094019506211142981349080974055461260291307422974664602970273590009249561157100552006397123008944355615657609406509352883787297222724334231660530687660171131833900483876108786604341843052805744524661373979777289528484505347030228559131382828868957523821141709502147733130698531977079587281268296029150322341546066977302604597972849789061434391199637012951677214468106564907312294403041747111388886279979022501433314719770685446859351703350137796449150103615843468096894115280830631093344344928284766185743281625585747814128573236124772108643808264630950112713522285525306476807118965656180925176492574139830137432504633539292411225425178494496547452131550925131280178544929548669363911859259446611100680222670281492870561828469624997404682175818527815823323658828015580050653267974467218485493964394094799980010631583104625836608183464048816941538132121640122518215947720651242208566170751307835714511917130453607868939289097203721707814780432852678450974243963836904654198371355247058938311011315642107112694542199874381463318329912663390600854904558836302279589292812726557075199125357304491947187830300340654209921431301878262235689160075523926914197023811772928171272427326548525807718781986359488610929920072559955997942305153801525251798271244860012602213053607676355413664862571325389341665701839775186563991105925243881757513288449114866957536602394089404946172347533465265474633030347450953628264117311177231206593822573420823659682409773610743302241562637778735017540571710399516271006703791558341014755837509609910476210049111249399373356864961711268221725157838656053198491311292706216382810470452880445228459871080682843024493685205462430593482805986670533791169512446258136786710883673554401909220095142915688231212568281876438838250168305569613907503453923675943897449964606229913595450950647536109391300224488811794873286730611489697260210977241222950670409938414866238575795048177211875641743254276710773121203912700580166104652410239883830413758323281248188814706297706265283867203498807084584056700626164441861983089860632972969327417627983619295223212512538350239355548373842577448004529977506816951700370785962973672313364396511180670785090734002949053478303122962749645391330696712547237182630422238639177289545559631106049609619972973920027181576789389218503809598086121014744584235600933910864737231292081566295563888697013569577802570302112527010849228187314039422459239999275063428238866271157629513210678035567605814457128734938214250315173851981786379741639551521010105248043001575537695815703660455351115462490031160266236998785105433583576121527375869700860874078469959560844854303721633643193606071276741561642965913214340145208526490297032201839690067177936754026268502663173142160680415006733834221277505802261813354388393721213062651055653859649399996565750579095104248514614171160043646561832759643419730336372211390125885258102735352465736516891801264915999878968558425896364555720451353727561272748156262616952873787946325846318259908105398066688752464179955551641871855510887905943495161589679223943066734923086412893137292594254623785476779481555742362044705564697135208982806415474429995912379267680988804891743287356759837621224770178014920430125034067406421092941517077649641040348103535596350694375315401288140992650408713907552934743796058960290510270965514533062192668731124710272057299835334523347311782691363152816457033284824935490291838567051780895591334578614202032230644765049153164513469004421614353900779589280591744462098088207184163076746400200055951285840488558927424214366770686533007210181635078096776302031536398215682824565300156090258832168279581878175928771307764125556936561598174416088078440014719852666818342693709694316636651343297279564752453285771748406812232359338809919981313715442731578865889198328175604761708128293757493637214090266359900763600907789534656837845935132009886032755761721823104066439650206883828800607332391888697936330773453655114660549298473046934263194984514763959529172661109215787890680204943814741048611711122634610909178372238280642596767077250745639143782536014919907853040471890999311765342616376237705935532327094849009178034347649582778682017823422468670547112409122305123680300465075781754866613459446501781998737230366155279889967277293121338649948098461799773881870889012820454068345377468009047917369534010703924095162546589782686829358768109362886556172117355315743547010980246065958918780040502815641581934153313023974520485449248333415028174462621127609033914041332115685781103964415449528927089598868096177039971119192916988270026340224716306084525889114375481661342561599169110153350861714332432014975888176703962316081106063388158205822703270889856175860967554212346965250917718264016394159084614452342077654200304198077750130709854880612789457826659842511744625600346781958787935955282637441402084712970585033816688074921251810882480647807203672119968534436731259453001662351783798543851351656830469976528383045526958774642925250083852651863744193255529314536902874511079710540196023129219437530811573972779496732598204625767632449295705264923052169548587710629696008252517401975224229266345861861641851114064695504467464331114307360749082949368283834519708679554495520578378808478039971316772625015632084076813539522460793031901343847558268188824974962080540040406648091262654636559901924586093542427054000466646443753952200692132009859556201049165234648596448094248916720469992377120094194307629256385623266864986768761917064075760896149124885886246246583887072247341562340033120971890244855247889955460048067696327309150495223646056836559403828546631440023422196869173529206306300740486936367427010379351778976014089984515562536397959656075492782447283166341010024838994556302644601596401771243433514699039556488635988798464446293938375041138254352523561693836146401360395139315247536717117004629497095276530679053753984845707845487535968312285351878876095564338381293850189388716772837142261172582860513079299768250431444515856214788163139450340943242667324116810870874340107409107897685334548669725646593844277193636782256921483469473735263964867166432347701136945992526681452453396962113650192766303088535185240874307970625853393770827629768855144468407801154742234662485390931135135006530853172989126215762208936262651306015075718320232961148621631123309228482122718474358703479832841498139657939466842461382941543528217225024283697360422742951884809170235374262358731570905405562291663313996648600477759034726599456663772016235109985554879376183492843526436105245910411676427879966822910083030370210537537728014082877768261426366781387805375468596193505384894451040953288295786196028767392930083599444679405153944061187822729278284670016028741714781520231948735272162872437629285606272430494396202287559583060261120999506355109017086388678763069765215943889914464731960788897581416457025126805003903947418950754589188164708028224646350608300919874405798237105518150131512454299664238349431045668760521388454333479123499841117148885543176364418259009013956155877466704569862531095464454101892390278707531554933228304613503126183889942521716775316758113339994501812339343897414542704893037788154004085501667884849972834613049866297700141233192123814778548978586138498414942961513578677762947498832295906632061013703870724377199546708055076219533479085379779522961724506490116031165956808980451224084748535180257680501025065881960924462229836358990334409434487626404021428243974836574388047061202023713506660153974397133140231174111677737615160067556447010241249370921341692093410405040311404012063584496906284944723983843768781915946907454459116032581881948638578979420749316686693255597122185559419101251315972905885668423294494468947196113588883527533530545201566893231050037733265322878652795552022651113415038653541086417581804176905427672479868847297980781819267225123036318725389934647373190824562738067840549555630152291523592354636560712924643662982187783318097289966115556047402578601352642758920684118289418332546096725959806321790906114519322450106936544340128152162644998844749030658308200464591587307359926715845311190321202773823430555710369835862249579407096953790218971288760889937498907800476166246119721670901882226445468350594651781189239685336591427793143886626561807032011322890823434070601710470650551440780180181698845572334869025464636114969021222171803014412652929248324130433495664113030714041756640330419611265758875201845656150676351218577079824660853230967709145785086178737220961704521809024270052768282143374833152094319142369953587726545795125907356526800392762229789632422393348156311800112985833281550697856433350434912713451986727188214976166409266654872817043586319182544970899901398173883938069301213844537620573259438855195964550620618972717930368960811569718361732881109985857276183008928258664123664992578143423741715552312408666202756063127589795312448827230538477223660280866376388775624609226884624913293865040113298620541504152655207886876447778798789115469639414205971252173453131160627914343513813317490521001097063439267414255919292031973863842307046091588396861148200727135481160435401641210089071486748292463786861046053046268553256573847841115879613160094657211856395975987192892254883558732381514551399928156622894961039137802258468849608515233251148831572558653976679018110308883631327555306425597694469313440672126074675927775562025206456379596845071140090461850176162632083479876150813513273530845711150857479204428747124053142067517486765774173176005288976490402618970057057558377892600636641913824161470091815286779227684985350348281258427553036573527537069771002219561647255643979586881597879322937021647637994898280237021951547879087504084571339657609127434658856548270659764566429194404396445588977011323416338282045974821343599368856986266856554566779244573724259497571069213328236936455611081190700974738367207515742332274040391163332638958614986829098444033335958052127636085653474910340059790564497804871650036395752025126005580863719591501284161947656724353107074821820289337146927746050301205096824825351077600848336759574180048957791495331328550849289243247339424562482576935488934997996889556611363615303984850665052710742195437706220167463915621441526172726519313036049106769924839685828831639459408778970294650599874112974723357475336515867261541896136767123838553472418800927366435618082268478967636972151579874897589507678927813245408827727680579241135665591313751830849823843456616416793682753595667050753485263597217723059859238250081050950092542828324598519132984768500549368635366731558695226606276533858118936614548775727376587519506799119222357854259418605168831715838123581411339899835974919983506005024945252581508801285706739303759851590762938845551536892007818805620692739569840332885836607336913566230090301305999650775464142763848305036987976034167602042084679716418247616194572603856026105848095404567942545934897138413567674125323674335511475680368921479826363985096739601434704956517017634635849270758266968281220711760569194082481747715204834980584853127455919701321833489486912333884073653536139265330503325383507783090255274761824112822865296736998931515956201822190248712250764274762622866611345943783482053527897765259538924638035876117833776890260749637754615606267682016795978868217547214966508725670815357477093181361724005895789307498939314014633344662499774476687090421737986681122854705650372130455890097411226129866956285535306918881016052360149766106239928650024509358783985510278147718192924870987048618736881848632327322565794859209225524589406681056427658564875074573406057531107135436251729068574214462226354340956183808886954522538933725920790593281641372298696108486447042309982967285231077282109754363649701899772598010892130067086785492383263138073101171661335615907311788844856955042394447852036610199201964124490855229793012695668590511786297373417671695644989721243730154362345592196109994392261060002188460319365979119379703552460177335516167742551286834766141117972487245866662715477539139973702093806059174902846775595043459298044218053312044450797261427698667969547633266222674208334708783185222510576342660551154472484440324250520150224372289283411307650127671071009064422495934215474579999821478125055197672454345330172491432066541867075395177684712441949781909330473147966961221554463992565839180958753641750538202343313232495168980766723193922946397092140224468383916575033647319263325194095475004686945275455803125477546891561073120452094101079888987590660023319215640332817344927285005956495852803898594449681814836041984270146414035976292341626095812513771224373089747944640108315005335791131200517569812416518967769196383686499891467265275055407263757037289411525103140369631320764139790568128462562358104869848463563346040910725943520732279318175124277163473441349244667686191906279530069846070965384378543451603033912714151778130360154312101785718692736412140280369695055031120685662311967848208610629978399367545974397312733032200596554899922915745269276949010774041011201627874889428571079034138777121402069140366558999249075115306890285021379764174235631461744669573438310731038344770416763247859315174623607921359633323618241720085635951118231656185540692409005705377230410487579876840376587547353430173074754327135754959168000232324426894445562605448396158730139165125489333387867438920360185988143032072760656177996990746410559965215884167932367298024690696748545067590243408373803363283633307036183332942614226899275290247023570355713127772634346805439702511919681598969654285305402166712686313087791101962659329532512114523370647490629402222790220341130030486644246888169720301007827812908646198332116825926421657241683793064658214668528948246424772458439048836743910976904089490024840763663251698311824594893886116296734390816732168020512865103852046054127769852822538666891878133739972708935757494929985403111617403777848624653763348448603364254326207460658045466261943672005579999962590794615355967922228109325582041155081113992521777468058051032781318154005903926685014947020391850649873399513787288525381509434642161432849941294661008217015264084624016263841136799001175994949994780069731077211347161210078789128714259663402186547429373827185492618940341527193495182171060050988535057542105118031768538293034703300588458199414569359797350700408953423569690443335719465577900413797934614664802809478333671583506282934732688721365649756931931815336230541487346885337912399742211735911142360160978811331472012375252124694373319563149327934091086751249398855259693826780194297491020525766431299617405268617569719859809770612439909990985425107082419767383870875795644026364424341673506232450440731622066072348280038232257925736227655598829862724506906476163265326159763722240531118407792264990354785779234083215529704781485113404127408192137907074178354092360565188311024177983667685158507261858200789063803381416255086019691508906766208307566122502579304608384028724816853394999837028399932628581986614152436536206950350812327734469946516328595129254827568055486971961062046910331389580326093940691809491089550270703123270804555443409447266075841919110139770800006785734429811405520523256391860110852027046952151106717359474365431696841508733322478336726637763177808551386510721346037060427965678015864051933638241427095008602929996830103628311906568265643725514962886258744410915846981031390170035655548687818689848668547057974892338993608945802780804342875279894457984088961708081938535031346802255313276963574683590399017159671527680185562032227944024880456369549112806081895775282848967312947324253918735945285457358985849976677538228856728063923335577123426302417039067983284826078608038448787162657302490231108361168305911710370464771548577108808274490181452470781775919405333664059618948941143222253894730062936280384237805112184786700004479694500658655502839058277666740413929100316563776803983548032114214979798168823087162833678269522568294164588801731171844275455196233636126224529360202369529897815472249542055496932708870117755881234931386951794849653181442102372219480001019356037072233632670747289580489450342979218370894171390400944510436486341089623612312227498142031537290765961472774414530075720178193164307357531476786889738427559816474139851931874853641824975955350369521705221816517362671440989414129779998954723150258709957196793148011847488330880784200221596662023148118853499224118481194015178231247261542124131297596908623862063205765796780701265753127128466303461474388596158403712156427188721699065467059725620389960611346529351830474956470099717751191892251398041121020407994709301567088819108885361331417227632521771463669531856194914019371249528915337251310621604392096859536397904220387685014626717646200289192955143880297375937514867690135409280397138854628319835412149419290722536808712170126005608237887661776509043327714633684305512699413304180347186920864422668316562417423615856149414627417546423703389869487323719987328175316424190147421489296957224126016990126909963040003948973659193959356891735638319520577949595841551282779054544538995397180041006748460904048912373308197004351411799898600927515273269037359895277288886885379694708994322245116418349953045303095996113218031929769675249730000974445049206499911758126481749979085917720221502031803536865606861565027861518666758550298902830511318005808028141658137114651757983992486610286008284783350887618913469106297040958777622884795116671120467268931960580329575274307363291816580573974859310411218946455673086814503130480668661166753717921640434428880895329348116529273988705743503431306411401893218954949004138381476800050362476972327072861837961557742291519413819617429544093557049947891977450345143083071901923280043914373086270291535441335984923414691743535341209504656098188391173875249284835990077708766419490690248508205568626509917438844686930164188841071749666214397722083032834328585640832537793780586752040411647352460409771480731461947578146819103314321802977237908392780498197715688146601852499796016751640854984762935279968690121612461042254506026369947291408835106241685688106340781426000772589126394566609038596761183464655203795718230353939339784392150001732749173299547577978215981025169701349103841050254610369122493785437930255955196675680778342127562951594028696190506427289965350560654262158787229519430539838171812603548199550917436953369147787392303448824921611187743923652254038956870793556903965055712917344288499234898944540842413039049142881372922123884866225189340804910352243140159557626172143872784017646753602003876700638447880998713849789832821303571795539287769820738660863869667075170000685429314572787181235314880478916667614406358312878177456478333742401465910578285324006076352820130748775982578414647756906918598388548516340376773963975517996729118158025151958190924934596701868055974343173467582004644251336566499302390142254058481823782954787809178173798142985721961178769785942831526702458329167689068928643016767701686679875933184248172459046011370425241829999549736761253759601555759762818267065218012161000860029185574022086336549635023822197532099615820001795994411973299324005043873267015991796505817964110257793074687891178841382184963189679480971437096024637745320161742997967028316114515999497069755475010709245308225954357739680107458033198554281239709604961621012686941195673037094486841347129980574497139662332858390456046480941664974877835349852654342971306221411702340604331946626766022676239096675393421566577665848503885850138673457144728509662126775041788168763310809365478264072311684344691657401982300259479218477097043317630029350328744809711985070819213714099284464805320843007313595301591228128313551445181084467204184245101846686214446954253727374442033241786260699159219727207714490420476254572122109999123202143075898997718329715006500128889300420209622100011379510985698925025577579802045573178939909538470358559198949428455263362107974938633789591901257417123272039916453440123176180702824273579209613643805029851926333291637995185177314771466228813867862323960608604228022273040710903253422859940172714859480150757701729997608439136021045298268095850671731158842676938696018980995589683072373164673070800626795547235580347101262985182781140892655857689124867495977370074430439917671868894362035995129133953144552397474726863957058414610839809216765117356278613685211404400078041271294217874856132940433836212406266509384862099466845345856109540143062403796179252643300227720080714147078796103505249598830099044540475686492224305763497842595073475883235917317444189284165785303751089630459673504036526072307178403636528556347014532570321947069521286729848536224687947658193114983963621295174849817927581805200797753430494740501829058656590412762599399353187284651327839383377718781738748598776721737851945906296271537814033434838742571783558520386836662379294675371490686595960544621409096690101557889309231177898569142186319202429889421016042701677282878819977002920221507373207126552876070753906644516319482292871259408634428504732084709020263286138861131169972490717845067073210139739919483540285002680414001520908346277463576053555815278001123634026449295312640861153550075920095360464693136878995437015150073743370126842310471996709440753922232599932898845600368408264312292445346685617031498780208925122878309877129867197923842256551942971072509933355554241654760714198111204886535578238208959299801336467087462530693722575940078752836642245668201867814368820059735652203376002579225140308321427707913780314553337458427240503625748481264754798973107431840588096042544270802287378351983332487434408982224663962183539529769446773749678837911888702815833915582953864479449140166348609607735874449508256156507959738698196601868646841158340650149513952433051246271408142782223192066441235618711639797102175624325217713151717954700519071588542354753824010222314955443542848912773741324243878560201084941368631572136786589082550216167076629772279906332692030896319197209685261642703532410237030771483314560380068823823455021950098992852343553760853543602148351367512762871326775708875434559989686646935363064630226799770416325864374352674966359753267530506566872713783921826250150726366652373043661055572180387584564209783202346300598626590188621682731360397470779373583527077105361312767593402240064358575373374880606056650967141731738276919686050589008119018550488036441780526674497251589359657971913438104833087938865279052114887443247411952880758059169298671328971976318435987096786461854602228771547848856195055057119728387505927194351823061007105886231562474686330742703559182804801285410110752118797721314752741435305853081152625145097594006600420699094946952340715737369449837198146702442929286333068917429281956185716880848547799597855485852226402659512326781700620821030878492186432801626663652304414034574177170208453588532447216202228660894580645539874120669068867929511226612891641976271219101416317880925664553357824357491797598436632741104211229882676617308298390560537141117372564146728349385982585027727416548241137869372385488162305866918461507367504990255855917191424693676862783527728724970530056046421314869356507391333518476367007106393087251896806202883227774048570117073055726566901686349867623109262668878397194814781875490774488885729709433634824227501149258428511358083671154188564154663454680641451885464065989579147585929168474542833238673455266915447584458423279045238229343316737595522011706104989267362744536674608342442176659527303111352353218940235885858106903265694856410038511360435722135560268036943122853091178692452124892500877077525834790327893100966340723616152719653535153629310121707739915158308956295482523142414703608825226294138689706163451867885587562411726188408311568637040393072239737804980178910273025606927856772377844573765965653498438345403669497233936402764108704562413879445349231716145076963412305593382448448598235597938240588238638534955595237414837588088188641018899115300437559747837580608009198543255280265139029177573297294149716504512337505199674497032150572464245479699231293194111948689233273427702999541743490949758345910916035025819599901797271461488435154778208644948277586073692130452324657652485092181002565721458831142817480685828396384496437531718467473943639613481038136757259984089873058938212283889240894425032593726493504871722110708300614330616761041154851868893624712036494007848387852407234656246897261620894200103488813971450408368387179072263275082688750748012631621551134616336109069148157202831271969322041341787370941552759105862004542568227179558274315546509055514768220696563115320007624039968598230681490830888018893253232087761830680834819714526646612535995830999877941002459966486624591260795138385180355288431126028794448813543842470413055713008673692822698170916125997991865321201294580780768810434554223114915458650833467120071753309728755643559055515291359088743062337517674925696589430262329701941797962217460712212775105850533259952637743475399353029380120070309538232924824285875275113076318927162275575987692028401130803565490198826661228900132909381597235713768426147063547344020046914111484665151578433675871802922879659797559760648251011899308060675271370811355693892758653380760042887801038288181523065065264826084060093410919315302369945127727412963092365527966950483030521736806049037796211547288205127647940482913786025175086716458696836799040428219171250503596128872991832635010965988408267016591268327855307795433293357894040367119349104577299477815363805556052160993535074282705484759531504849080037609963214049262689451956690609748657441122651726365203330589196009807006196022425283062020042775516027307013550876677540088203835722617244256381818186528981848378933967127294475755054250143379993850316792427203327751429228347694382501556183542858917095966902668369257076354593608439756330259965586114132319830582539243837855255589806191155412613081361586336166065112598626687893285121803571045849096663469822068033562911094800525584356075957554578461105451467071459920266548809926275151038032770773740256593330479134065433602826969904435864282171742317645944393217491593420665401157858160203311981228709789813070253457166580708494946413781637521613944900582044687833412822692661407250759414848283016211851645612624548620459382185319318636028630568492602881671027493358660910975769914462960725423827736808782469088034695420894960641007464113179178577042567766884937230866080427931383261575418975120325656443550622180116274288260214339302294449673501976918428495736213049493372445927338912726348139010557987457285001812702910690099607059309644539765302005823028729027101058991657840353759304121915640353853326220170872935635984875776520412836844975454461733187148460353080731588356566979864978611472608490105307069553656862004105398526783603940467486666039118554574434106139421069955584221363253276107618533234285077934930422423718430719179295308542081779537592769710927441784678992821761823349724753785631653619154431421336747023469781020440401232150450141811170864497362082529474127729909736992557965980704577590953695995527295129671735039097570455043135056547969967875515219590175268622817182919501073601960704186350093745898441475909984348068361219955820832904768425395295809216527201503476873265860893056904313275385376866215299679663652841274202827918320486301651933765772699660562340636390882395863923118867959820526888680866755438971835371934996498315494036897809607233838749806360210870916763076380352968568945997281514396674171583014719052254504976802623941587288405168433339844797637400978854665502848971999163828265490077813918553219969834748866034036283790912876649033573651233301106599480366584707574441760274815990794937609999728265815469350613114916353949939947741553064686954369036322243078588771605058498846954510767262544108653143909381124570276337459522262518663415258196541203126806226852387582127706884820315436239170041342711010122224835100791427197832867251664499800427335316991972246202253918131342520174293936838719264532074810739167998942669499799483384413849640089044763303723831647226499196979421879561746880212882099699615659712427519845428462036689810266202577851534586332055526281957010378064514383669702838156633720862061980091545510989013066451719725139533329205517467489902550988107197930952614587674078204801305875494174832283120335260832416046548877189527039898959889947384724221257443611798394398630398571137483921017163568396950077194618266817906802799903241079512875113466092087394736643841239590282186251912812941216273658730868527400852682116693202905033714587465650839989809936481387476544499934054081846805423795551685704183465946197249617395993404017036460936996393281770835680516436713533607257183679539084989346276192466989965551096662333030964706303391182774135388800814979030042075508829262570029604062528023808681964713822024387121634988070441477205626363492921837463101135497462019219014698820101555025795781186087246850273465694153369239541093393979490177033242753096854422020791854509651537587531524148201559751640521794169299640525295061963709503838074126561655024745203128488132960211914902127087222741346729708334397977010034759975428713463274123492049729105203722403512026939418187577741430989301094347219321283631661513756319769064137069315640347699341877726308399248585034162648889722994798648021718275178690921853339880968217210398292224750860095579531781282887378112007746876297388651453758505688571512929880675382878593404416876611226325361874437513874985296390137909264141369743162057654535099074037284474758262990790405735900997123065580848224632130935448464933729824436774920539532693681222863465864093162436091969156078563601670669656938434817385366723597261261377297347025373741117434802471541439242855188765298338004224075552270744403206344931818429705855560696494403420375132945421163655295840776960818073013677591852384736026116402190370382832679536920953708439340599052245858283421597592496731433765651726006065811284939327703672660681476856565184689338757128120195603271757981606436597409335945847327805835286019851659875833380762594659389562488206721849123212281614418953203201287162348497382736041273003872890529593754436859483358971100398133162820356606908074259544559876972348352428431603749211614531571415466457622386550142346972600883903186988477540536352350145975647628519258682886956975261635440737797877355781369154717778806070887409955941944970058525415292773193238378341907512563781857451101718479169838070450750519696347053141410842345162671412795591621694890396593843387011452789527172132227833184618290658435136040971967761911454258580502138756626064733966195341357578840068359051868415217772245548067574644194870602780165222833267364709562756075138125483951834940283760216058000159834925040421509884239406639640253084689808617134374441094795133247930792302702043348088085875769324291149111631256673430395253883993955796639670937965802774569133643986020729558888621496399247678306305592149044803625605802038572593979084292494075525199286669833210970107690597606639337623732095135459633731250260540062912319793737864824957902973290398389084924154513986480009816057908147254513649401499689722332540372954744901459196794104351195066694258865052862569773754273997828163406990246742539093806583599608138077330352209964022522431171001225274352524362594758013165910898225662012564736154667383760829609372286684691516178469656280639438509418523751876164018101584001817204081486151860511078763070975394099322953766825366227863695919848331871868933701553298720988695279197477950121796031691132064947668908770249385567685684801566161748170208995325660857685385874446983266448567063006589681830963717794417734493309044465374994650745675731541529819496990248102898162974809787602785607948723674037646630887650670356925120400199061036703020847463334226266025877833571485160969541305149686214052439992834954121941681194506266617537821079576268187933910104499466357205005002367810605811157970673114432986454051771497861991044154486802295767432827842081243435075244044349384686852177413698558316694875479520799230651438530553790305361547840710738755388098134335735301763373368375068266235119295362136152446142111882537946524252185794742164441530633428018994367003678379804000067788294012446882777787303688571831859109415250107167249735702695620254023703728531641330699031143173681749423149533634571888705583243506360767917840295281212785194876904077119483242175865166608745718167173126858897678962106376195061410903556573080287004737707849957276022970467642035384529932702090080215560683985698937756309159489091436487370782273813628026144403348304540670879392440274067944665534333381906582812924638744528678820841757278256283268956888118016088589493230395843350248679606214259401997488679407120345702113020704213730148992877002693447263794095696412280416239702122169554370629645155760782728525903575026735549852654663616010627477217603921643323267543393537477269023470295525798258907019588080274725797037736174096979383945790445756916591757519512334915332618792840020920393615508293856613808108827404978845302730871571716630836432863535530128353086148230445499639193240332957918289989768961210314466775570034873985466388863163788392369714603496364068391515386202855976998631447519364435956827326134252981960567822188563679310621067774007858238618788140945847628330771560951254961744331577023191644576541619028290509523785048455692606690758118200310654318690501015534999528826977613035265371843080656620691411852481404521405015168557320660826397554894474493344780537301569728488275987337718569065230768801470974778196810781010288832622594925149236226548751448015650899436247631721254974966516405053993299851130387702006263206723338446544428639866436477576124623511383866538928772476480277147610590516031904310748987171340057968880919861758955785094419775242445095032161046934405373830406817422792236657850429092578766009042152431912937131123824358773269373671901859979954080509856194103970266447556236550157549491267968922217526103659300721404022992184078638615395690651100772998488646556836453222065866670047862194592760749536174021202034224971926352494356970381954221571596584497224142729429857989097274330987495057907631855319927279984871890210588582188644568214647316192322719432769846996140033540018514922682201181546141508064828475788212562747173877504393972991359993450300460277454718335548631506451728693463006328333986581072637941153100450133241377886012406791462781352014650083656913647489286987395158353933400553547365198302210057819636267177995637413640459052926720926091244021001646211837286190147026225915456328190722646628419783393875688833079704327974275013846785908523011051020778290840866573076495933521410395632603430018577763302347925339436656581084178513942004835006305132540676983218222989108742134586148820406548257856631432881542473961945400689015132544252150931528922851472442051723948279907273248706473974313903106159053936864986757638798643144217022454845635303686807012579688271219460085844521497938081517223948245900098693738961237454984437967121447138722007587167255026478580818162647335363005699040268592584228452694477539222703753927023534531514895415425484424441545103469552675200697736966590566957796130172053372522021639054066724656113147721799311414001537833348677123338848678624640161396333876706298638765603029749960133385367724348453746201356000535659627914951464188701793807206852259032445961780828428602451069358566922516982934840873826195765414324014488779444955174915368577437934726019602370416768713326373189495442337961926831165911767993769402217779033017778648145115820548680084391854516341630414648652469020393393061606643538767357540564104517334007615820200473796541335611329034391542837090648047463943121815841159467163824346598691008368684846246476043347901264309853297328370823690553976526408545478076359662752457692253692185765652195793671818031820890591217247220484762735560813144582102393734102496013305169689741102444193096484122914069159995163664416789395655209621849511478829421906496531061559709794487575188448399472487836467375486071023318639239971360612207591960068876072831808134325085859643632735706412889817507556340845874842340200351283092024026830758056072433149315376569469827638874480446257304402446407735574423678701366549310814594591337081947079641693396967303222350979756481981261295736700270201141716660994847704451529521256546924561734009890014050848962423245485705277215957695243703788893627284087856933755356381687284297840408095261731619799631983718543427800429260255774399182610963455366557654190733920152694043516021307504786927112866024249308156382760385822459577342149591327195243364214083365614422622819262738819792893269434159841545110156817743897051744022504872186503174231204962273581564286071910225222065491112972215909553267972464497892603430293425875277555802691692522759586009229070065397421679042637783532221513947202596330134268512898265498499326299799043998184433594665111233074078241423767187885738977017103466533888253391509160028701840575723092855812009291869710929787607043070708044075403424690347737510800543834119268384269822199557953720194259420607147927205523297557545981158463186514011507641563760182587336271392677283686443570316407857189425048405338609650697942951966825249314065221868557621111951707420320110454965950722570220170907194767662979069989291031220862289793106215244966264078746469384773491854016956885993572478287625539055359334222519638489396998568557140658100650382038345465560579763921188671600923159283906398444369749208229327577715751350914549204973818052545790252984626667480291893930505736321144250563782857498283676000866256006917136294853216107115483547077539073576138913475614907692763965548729650250343400081037646011496682486091235976197722203290004557001516630496307401507410998724560869527328917905989887379143954869033083408200682302624884926388588773641104433548243462504817947530870827745941829135947316290684901225867572056595099875135161500692063061300510902497167957365434527019964360673403825309342316663469466755882838046883721306963494080010242579693619612829712983585177319545086662747114423378330255441709396150258928556189626679810558766294847057605414660468333949342596217263736903289459010183798511111655885804237423770071539831040255480540354344686185557034116164416131759389954078984834708999538885238384345944033347511543999492085358000498324767381355663061392633435251926620130087880344050112279334915761163846018270116316998015400192659885322502672625801581995290687384214243257354974793070716804922048949115108721127361101484805485949908074711637548686577915038710408588804413481906598225764696792336045032941849400963848461611918784352872235637142492334159786855690749182882887188080344400597158666361936804076114898427842108359334260719798807650947477993066474416250740148977449472272647162900971159559675442407522256932708730485984273724808563934448411813148562205134305256912118596105272772111094813555872867642305236718730002781277997534513553426516489896956361096109038119037836380993897203689537452010595807526008390962198333128162654907471437500455190842365793267008407554563810701067554532918789609395525350030446537013713091174400813072262893197586313203822039080040299291674826438032214595360950077848185261928120669711788799658812834060264962741901459157758509083326630597390844243407371690660042775035236554437899399545828076352529214918580986402376117584355273384057022644309712840878195037404820707006743342279823437215014819529604856347444372088453731413398152899459849265161394331993751709789465946351912341150994662371710370613783021465300614715359836742546529206536464745632061410565396219202861741977835702637919154607417204443584561742690710823985692261602538404373832654466282290254113644248532320147189319959021334993371458250845535353266782831053524760072848126953806198415051420290625269019224884942729861506579828129253276301503427145307751388961896262855419804369171498508856462947995035568281472243933612385196926133228575150319902894774768153380875023791253467653106043162661758467417687275581487535390798561562799812451473692971090122419166751221502851073386224621331733000305860077045085040102958980339657034147038583571318299814518837394227777404448206172893387160831819065870851142945161221266550697289055996145252736186126964480875975405075068652526665343286261321298884807437499380819863637342614466361722331367283892164271168415609441799015527561954617127499987242222160710603597445005291045803865147531204409531948074675475209237143828575247768779876111191976794616519070793497015425176464024244578674698390400384708967558112190796346380675613935104559450041757738486858471119470636496639052232554091826181253738938507090715446030812391575729881998666224468875077979739197777144980649170027470348340853695027919704215001197686144470219157017698575207195960930620262616702395934835436851282776563587369154548819961845744889026020775567625832791322880454220019968664824977180757043201654896889316263003343190017029348271058491148786404218630772992542684228829555454261521761473963249330697579960782943507640746469226208902498010344425289586594880004950192204696872006766731460825774209753678200380811457946056642645581804842802108860851913772492890818376366430069027931152862329170861893372111589228936604327878825142476811794500630691842256443906218688954164638604718907184064370841195599600173182560352558402007067211907814064995485742116733150414640046456582093768390203849230344019807577315027229765507213167390785857030426737467026899918129008673284811912395121266524817331857985726468256839114651837837219706644008599093530816313295154819420525636073324091978851210772894705243957437482207291281960219552991044596265661932401774850860607283957753792140153775229263676055599456886743315048817461198789296612878892128352841085563740888829253690211234914883944378838766895640100689714672702346370162685869006045748826444981815695767209075235104174326689596500072953377895663237649040295600396732138762973053287167309882268955378618507365985968931593460007023433024395054903266039318392031910117381206299966398083828911713081745359942754050024587856312471915834446972690167036223043455034235582473758658264233937123464186060526019340875407824879315985847132867949657571811722463136301183586098788061027460709072621596034411190512947344610744976907746305479215658728686233404971724810846753926114074661562413821386153397866612431579702004239341253053477086778304658858734738007497058422249295979029800853938405732710403666764414265838493585068382178425646650360407237254181867630779129641078244192385686008331589267910837048402883418340038017112639421814167676306069448951454458793927038562489393140547730716906294260618228690609236694908457975362576667693912465126919756046797497552631493768265996574369480862334228104204239016655190067155322488211313919408866252703692920253270630344513460395065755396609389705580696371656225890063495131348405767662441717351616157655631294276240828301169063489924081368826465161766126569423366574108620611732164947590747902263710068197068714486685294947617963117415170485665811469161864122347201221864688252111999686878548717687508748552769876171830080735884139287224198361343039768368129387142973967083541948412494190248635145704101656743979526985472666987206888464031908899487434899572480403309676698095783433143150646385202763022911918415146677737900900386892478556112450221980469364562470635477025851335143360197079941407239628541525091880571028330939037845872527492871666064800589424048650884179565685338231868231193303106310797904098833340225138414020924871015442669344572771246308421952232481351617651681069735810690866963460118344969548767912202734476495087171123851326472158763428775712434294943653096751759830470690507853779189858002340445148406383786738616122303082157861280216842644447479941562041839305337651824310763457421006827763044018870781671412672993838974885494914483106133400753355680337461757506037523441907861049579762646835157856243863448648370582495393893947992130634366420770998541053120608905783922604396040960349560174891027547858306510618344629608236460212465601704377629093251109187209737276300991784173296656478815054417909726609257501158272229542619253831048056859173918512650562174294527324964366309697521248902160550062245708183013146502456075069191379938110831126843440128558281533168097508085563154259354750703859649425163245422010941865320470971998782605934274025401342549235022231716714979751955541965247673803380423109393231638187062675354365645556506099105028804322764990478814573850359268350931130563644794729012189844337081223604247812434587944499356943023812389054874846371514336926915372122309472171398529573992779838579762886700730183369810134847025635563170449569751525864651018054240036696918840569933423632469375257460779278027930532642789115184941647801411955141144689261463060457750082333287818881001292967491520815616733350317151468534845916361905074057750104729904471756044631397304625514124655034633532730581588638157118333338494687551797645805853674110553674696449953054108277971449985192391045339972055320907643390328416295932248403708859685017331195871249481970755637337752063928769780683878202727529212023219247108812848738174990010345986362354656876915472314847147026112093154968019322677138448351687142518628352736464346224137460214016064000009590151676209832033570880933852085687519622809503809357939816410094140648355997738525740311689751221261332536564889463507641561941381954677012950245964116805198435702302557276467021741271239415650000239943857368676484995867286257821179124115029728420086319334102042124768478107346617942046956060325749882866249074488966362498360374895755594537249265972194558479072161907656523312517430807191901677481785033014316875465822474820961903037647888607509667162024740678349664299307496161390266680498908403648178490605469312333122244865700319990707628556466913549029430649342892966946354840463567040880099304632569755452199612290392275238565410365025920508925906032677035133887097417523953535205540010233580612610862020518118450970376287476366495395188651410342797930989639105659482508848294590167194544253190033993846394316186647951646827472777863690114190992827874761699564158458735997496045850080418128442332796741494600120485761458238268754219588635246422432031471336040924778260716631390078006635625010869345647134581696635598001263696204771739480092937157147940259465835648588289589210120208455665853625807237756220481097774667275289428241299443759657763239689904753403750862297240622089352647617778672598107675399331278634858881903863313364459651578510513156469191907451831336350930904658636618346434081479031711127351689590527808964082865559089177170859202823567472358473809824969872366805838885456433952278793430135471959454271814196878981749514378404351292685148215410288507124303793361386025888304867012621600967815947126686707210018653652249749904260954590864317433184739193238662297044019368193789493596737018485559079224561106004803294531732551613276625396001967778667159817421882184949610202479234724651505450418397466752694149537916490115868133328646657658705298168837289160518223589002497505461271835054540153753254527208742763928587627437945219302071017056352078796327766480153988817137580200499155630533893655861176030660066438614911733333488407974138297979842850887520582405498344907011573576783384098988342696743466876780603631148418565610223226666342102080760160805554402878770471393747396372681321346095048353964501054056807404706008438428658026412860385193964557306825355083243652924704022416771662287379549045929073056894790169481606315657404016950728718204441631182475229340058514425267396740550767634373946613159557851497498493533186407933712890275440127825624467756341783329386425652422228747026034214854418504901567456030777024568751285038941946086548120071449650736148836356127216854756925456957848730554509616630196154102692897241285375706118138045671321455780092198785716377583154932385800881923340156132408912329887283394606990641798769956615582868636661753241467028336577262473694442279586452068391111602893888625044571771236815863331869043792117876559435243915834747564287540452793249011045849335810673611469313668900829278641450317963932121228940302385469496674631083924706909718750512020635191909393310033675365351203079839989439868204149263416225580993404541153947909215355205860776067958844281041582246250308160436521774123719330725684582790881517104053036447530841212733663102892899884153160472327769250307804780386196546527610082596109051329101803025124701841142037170806857729029929949861224915041882983248438518176805896671835065840624448058834242364092343380085452571833048348881542013433192429080342518729926230588338280907816563732241751512986633364959548148018509164079441179116353646313244696053124332754328058781708732400942281589682415568488723233754672844671314216379961151549314988364388096321126391802153657384242257762589705146429398769305956381528912721399027163759302973395518956194498103011703747210721267040649259362158152936610582608256205319357819302179385315098212320682712585337929791591412216959230048191888335488152878333179547864589071736079764660263975610109767874699742216675980701223752557721990757299451802667269859679369418360742530069200101829068233710453860453571296377088562146372086937793367085504608286593490459960721720610409675122307965017851666412219036612764456919926765783971524882179629967547280015052270560447860452663010478993406965480078902393117826029216096940557506828037970596217093087211140357491582872334493469888417768754076572068031299024765165814019537098170300207581065131953189185741984808025668335603641773920186740785208040876333908403373934578185622316970052481025285811762673889707098432680836697499157136762212372360928080340948226826555561252728502663890842398524271893911743238908894820490438586480736393753901150913546647003814217854056686978608153984019838854441782321592590174850340738686993911566993713033534748279199119682059653806354314575722382163435712451382279077618130092207822359039903358261752234345295528121148778041561462247703081663157161412528777026669040602688494396991500328009887349391984653919933858304116705643945388989229537807752315048280373310398144809466079115181027904651308686450087234046847865087515367871456096827632185121476282040769896649120493951353162286791212468881934763242936173195051919246564391279922954782463999358179366887457949197239506992381374792021541588608921686139375949539181853102502841520955134696675187672531491969485719037582624372685395119539378812270647623072268537623650350241773313465096388770788991519969400139863195132387219303745287097702830325883428757714305946017308823089282527222116053457801377235667849232320065527432737556601313338366327025244612354526061275964796719383685893992306106902350691555497322545327424890998956072396318357944959238643148883533559946941056447070371422208244899755359978227780670821676579985798264484985010055940793153045926580702009865961489301498616390409152877511473379278040335811507470256516960134580768970773236746700899431046122415458452229094184747007953132030669471272277125328949431509934394694570286580783215574329700179529861921646748074576760604463872238790964375607224908948465532654303782532379643268505845055995881052626581730536979272130746601598810740737874740787527278694426175448697965778008142299587173481344484321959748350434055901829136095948060664355080719583947918316536199135921098124870069127242743604166033411320680495882570112748183682418576983827214624337214629784093950821170434697011348889426672231565999052264606111821636295614588996178719697383114263494676396329937436117663328065726785421173084775699223456738578342585878007320523678198401907491397442697782477885360812726027960191360863440582533897215423107443788839397561953962450787298523741871621440450592237276636157922405450706991664011045635770482846065498063885552897344207272062832260171440653970424799790557591799220232989619049295520849362423024635513223678918344465089016260109108860323703343672803321583046612258999485047413801685205361962804042758012111933154456358821754525235835060296306985415358169967743393932745115478593575013249535234778682775769357514443880120848651983363056256120786771421877450103685349303678914274371283786759317618476667778795952946474995010215888705688566428675862592703437431175343229478774684237618435631022039700201495457934978113768368183661320969301598385945991807343735757701698874196993501840838446479992278225997510830160548316968968549148304782464738476120022135861650043130278792090529663195194340170978236947549206307681182616910603191655457773045485378147228342488292958475681252532593989448583646322402552215472900434762513417679161165632544447148437466700328170960439553255235624786593742075474281697393972527103889287831959398380486500830157133042286783979145276668201295390747639283145868935118480890717734085550959175184161424200164966422408021181344630037808467157560781496410729860056904970074256476896354979795762486532422798807917862189125180441938495772807937736075990238836373344660417904917834661907262499221760049282456112961248841685281318503325869656319738721795390462321403688661293247473960508351671954324366218525532000314690099770055348922692298789200779788043994479822312436123167885218449942782156915547962483821906286648330126789272935990553716026597543454432015890134130736193916380765557186054408895989714171978222791284797337735455835004208515320616569224157185073280849250521882767125768411494436192446518317274755219774693239006330808149327773841537493041034170669226579238436504903307443416000774498328060310684833334525470431400114738876329143661469999658061311227799645658930097758977866889742049842423583250988702376948295558948835596193871888553946163133964867420071366488587250117770736405505332567422749874644893576972403522120295639231314880743062401529787152003737392798460794102907200621218472640857916775346439256187715660506384068094991841222379707487073028424282084798277441492117431662639953429062388037751251281061890756648515648242983218547227612260640055104219284656572833160931966376966820422593827868574568255677898406694545582995261233642242699048499229724585480465659046313526896934549660993460213099793894752281193891206338348953775219015706829037925874202360424853625339102254941718325745117769334533400230345805171939247288318913051910485196708868343770184502692219406998530777165741027300526610310934079881596439975908044696506937031641186925084334260454106323384062059464276592516864084401166735307535011034114654414507047556756768981524296486605879172158523916985710854983623086238448944436307014488212600587106980571025123729638194215576851224706109200589670438817198889191531400566740506705360912214455534640725541494923167226807404168128876821946372600158753737748194220744413037152763740994268189715402409741893428492834850301153987972795303886008429377113738809704037899076444622210110146398714225290760296260850348684088339213370607181321422632775825613202645969216262669443984619702171862250962171073804265096095282272102117816561052576550256588977727654552889027432486043344253241266079150363475133873293601844015425424153334450190098073930449076869750035447625860902946279731406452888414492799791000987907132242795446960430518944009677467184868073554878871562663989523781439117317856080298266998952481226644529675978610254809029311451512931663686337574336469671872403960174094162871765113965116190786034113357052420544931489544032000693079708960870120109560315294411672063452314954136463277429200485619367846252626307412291292479106183122077941108407069521749925015972370555879136048997028174541123263801717541348040889785092437125743029884827493288667338908669918731256184969383610094770901290883713988060778224995742782457507983683155153181229375260399277410206491995061705049185052200640188865444848347666726921951546076728360771128294324332606026072960716980198593849727218896086260485328726510918369474716004676750587661829591322340683954238106217905884921478472374159136660886100147968040400904912283160997011935340688206659721344212346815800668182547515820503273070980080251817175287277320608313368673202939193782137129600076447210628950722376018827141152425044972689833916728280927803751233283896075593475510788845129061134021628470217313478007634539059993354832818278032270140221285602319492679721544344225746074900414237762428550925717543613658969798559575003657147472882639226471818120234746271364000726172827595303988464537239415812255608932084949001218154552270949413803084645906212477355080904582717055890268442568390777978535625565461840017552083685334840348540830973236488998399027031189901302554001544733860086817264849121419002935275561646594821927013885175381668561069167695368502742851788943923500239229281102374689911177648717887285534533672100994281953920897479437546486186744074989006727948852445709344633421424125183323008838052450038172563146006355195155330228566579624062719725736274082599223769099063969545872621672520759963595953122156005097305873616240357003265534430367135215794839519125108132761550662629745416951399761217577927150360228759158479172680331806282391508811619379958290641326208222278262415322350576377651796774462987609865178252778316979167198428509820910481873326355516929059661945463122824719239187914022631016342246235900366221058571984922415277998969099025776464857594811300208633905935606445278837638946745679490118910654613852571754661260878239695598238661755437052326665601671635409592581521671759956805234819670140256813378828029114739113786241548331582241978605733370937914420112210841345037210875028022507893588829195541236686139070668910478462763347569409890989582786675293859269920978041231799389000517802850483799645379861556182298661806834745219713548779017982781106244787753455501101935060316832857851624256232155157085275308461833658249113492002500927218639783179008279539869262826570222410256232874297113314257495150345674544746081312328605000303670977950918633787826096249063890540572445706867770224138589695092393795080054800081897144637700573100600044846286808762682976063369807687238503563788285877251964518809459889264720465223549179414849230165393375628770640650411991849645069711411057419934573986382769807702325700938705599371794548184842420404229466232303749858535111182419199663563430600825053122013910126252375073850346942440250399702758611011225561075840186358420824393814877961386708674344511824504089844295226744508407125699068568950794358731748419075477180433667835017329715785248310177469782448985319158950424950583936658467882047638615152813884369189518706861865412274096589992835005038837034131016481155402614007781532465067877212461516617251393059118345946716696444810859224322155164548465877803804827499597616906772060736597926194193369148588503579939711210252168421834769042873054391328182504379339919804132157286935409381893240012280447849274478267703850920264619140625885715793268810684944863418173602540698684806499065752205040807060385533319265817926278170609535682736664565196200089945301766140438968110917858370144820173837643795087526532657550935623931208065582093020579537259201554111784919805482967693200079803070205632254559786582369895201868109864407454928039392021424712471886496786977939844499045014461944893209990690418561064579321461267338868846387139815915737671763325187795173830402692162670787563680286912945378006317184911789697971895659849631878870768637369724992167633042725433519980506976137558835400865656441163949881338850597205825737850412729261049744994816476331027087764758385098777989228709095790483925325665842860480272900511401340251815498225830637373744761924876601117369750874073114796336888799609034950887961515218589313836028112287467015857575582139859541232217242368131934715749698903504963634524132187371974658209597989139125191399880396061690307972018435018847344072770526854772294861513535927346304627173959611585815991780848398257343567700089091356533943497003505235532487666639219199274285186227769565497312339839887086681383941568742284742107000393559731893454148278446975258487733155748118079410720710973640218183418996175708112785816963358136624181080119618411399800391477932791375119043365922689154528351472855925412168764738866379450860245895830137973626879773591976585727914115149339679839152910607217065248245474090923059793293083317022785310602420803554758827692936001072948504366627240682936023327861626811881832867209792442295888121738642258441553474780646082467385310913947203351354757580995384248806213888248647546813427762623386202796702508819835553262258415677924358240505925678080793848401477668306975476042791332640181519936955519165404371601720019769043490602030371832131210714681825986669763216289421374819690953617304070754457713145823507460478648655468401095387125339653727397728331629880931939550202392404167859998061916731435458965468737830010163791769018986482319986198375458260641655911061116853879289246978898108312485211426588551415203611851560165952011992906086729784648291282773693929144307008957924235743859262945990126058547708806336711929344764488315787639439135506091340735583252784800108067882895094986058743169967187232083731100703703864701325477034855882814294723037739935931074746897206818326838594955035105765231570479944673018809645312780919468600657222148403445275618113519270694758111061256628078768746578445393505527119827524806502573165219151509514347697175704701088615540132871801977511419197206348747896508010170896702339344037662000105281960608812187713233107799655263204403320636951173815555004035149808069451166019166604358077673370757165939133475172261226772577585368751360249948552270808991454432179408710623671326819431367780986328684089008360009593987018136209099728544684769902199007563354032956898544459835474491953332039832871956538133998520281819974766541026356890395893922991028954214529964319749429461411723554559600159821338556879429085578980941300982516637022053676825734092548131625510533900463276464406688423392664758998224574979992202129372483209759034291903105283367102254215131757462288115006617242284167219570107811309921324836947622007115753114004196209656265840370912676173984525138609685924702971616886034777582358651897193909674726795868399363923743310607047410356741337605061133927202247457688858942048953106486247545219392171674827846839257084492449820675483253948011030881081689354240594864708738118774858356438791280971737109946130849674228554209237080868505580789975912438488329725007841251932704533186712930134490257629241454194732891783152127619564680323428481040973317401666952791454383133410289309724362838069348754011292550603561396904255805957656443098213840859404016194642786954659203580703086755775065455344101905882502745252799203119546445155336255553201388667262045246690714188696632128938206717548509791956159036639505427352034386056533535088728392583020271549590302938835298810320993192985972431452835022697110295063333980841419983945047658597642424979658091353818905962889970638536449942540160119389412443673614627757652796696326832839516441767626286423537530576792988292596742429074508097622003398460820218565266008868627050053647692437117927804697022168973054424069085347526404486391319921025964169483698723010131760179712870109429277362753626773704113931315849074106340387653077397892832027486904702907713120714806536275158023443937835691143537985717164283766621239861680223063540313424228489501241259791710548635134320784119446794407159079525536010003557694598398138953821064222685659618503959555938795564915421207422431676633213718277270166573677894037700122455773231892191417038972882071517803242654919445973666949818497003700037593185963895315789539141647015226928998835294781034154275689697496167172385109441271561747295213938676039499448731879559986912766844708985254354347927826450291529446487220265420009352576039665894082680750722611483006543969320516486630065441441649485710510800101234553924828353576030435869694653499484237965176264972309175459399943740734796678033819620147460417696289544637776992726653678467074028361583718386093473577536593475428244532930337110465468238997889415668472274464931470880081689861120269371095971746575626398138305861791654397516523736308400518825528953480418609397601969182937855729351809557095064868928992157932505233804302476916162289665680473514259515477351069837987915250798198110646954236990395640557346166480167450625750339084492679882695880962680994733719087550736608597329571248428382528067087215689239406259562136818831365273056800606906835261201085039540853189759370132822684214826957881984247333514372644878227867162139305510777649469054499556131904880233501112456339036779514579740683520837292620569895396954716353782959326204352411809409383578813143620442677562966649141524873942768829652850877662391196031394150827144884633649685780884610707218865877101994494379114691715112183727306211798216802042053665107835575096264668863954360967519792565972800826346649088304742779716499375677548616823271434751358969278453049243613258654684506413980210186267240228397218533271993749217957923045570029639142523359921718176425998126818907917726119928527599250006323413864572698091354305188585691612877683665106933129236040549475177936782108994562078284530827551324519672982671279978202967316099052801354824294068072389315537999444711781220836009725161170210131776367002347210663064805952065448269427916741775286880076416786211999134401388707105161267196358972055419597853003842486181710489779840166871702070164096444602219184102926093944298847804697088566033395116426758174285764551379850103350723411345685770427826800056321589695904771968632080439202753639787090814220252881179832952498853394332597462635080616896657556383170436043858360070037562432540405311341698580499486019806369169907050998954086725938955179085324466316444521574416492087210074041204357869935430048492642424930372387558457645231305069264457405399380015240645729083359604891741834651958015353744834562866514515251321060915122971728395123089607410656257969754987950173684459518860060909096610806067864542373986423610660665181410463030012097660212817728541576217607605860590426619640909975308296004034585380565803757320461877650174862358470915370551864939735510302174117416605053602344408989974611084572606388534040166325547705186017344692104447003890512529957024463075323440819111038425227761817073227667797291548169943349203319970099032232396113794207150758177218028647163203510502866677597820060875257828356879762311827156719385311609335186793114549294951860206821505449718299128727738410387760006092813904885402353385956590678382140946817264885452196543036687684863921419971373137460672067868678098512195425290966417095521882070921353733563550140106831111490911225186422521705420198466430507057562643741967894447630776904684910302135820896548178710675616857124107199374399111409651483624699450835548719387289348601810476616289630137602928017323812170849551348551499142782969290158464842821831971891466930388054657761468767380064098514628505604558080653669116529349491249827845455405491386650930310181887015283033218625046799641908350330865343864871270990172677073316492034160473683010628060539216562566769471269235641729525612522686984310791411978077675173878388807533301304787400211134607284230887462412921167420495869494794361714908601250304945055303407017133524009071137384033271158437344688803235254927365840085939905981341938001924348657813418208019086433255234844960811168109340185548532059571132754007423678672492285911669751545470959522069110520465761051458165077251631928304626330914185361383320657949743793872773999796856532103393790755923085374554784316696660961374463365098209310662436151838313266070560740223189068456736129485971692187651297269660227228676007687268938617598854112187338927571548219293666406020814933872326355162258737968863692806541479234123643503606806897642778404269202469040471012860784510879966342316565264378527964232227615287621586472836618717277071154926496995956434706690232366031785604746084153649602457944580766469464847038311763722720113021811041034650173858679691993877342967121534660878525651103711657973472406645260113983970515980206630118216835024985632040542490667802246134739264517317505280884072741076001326626224373321208961036433618245228816537867145743930424837734391220759374291438224283845577022753968262461652843461361126382442333363019670778200241440022252077176512644729583806702738521581098714099780348767444922269164875556046517681682140450314242258220133949456464078110192192805655631875992521593407957819720388871999036614312015105006672514733481135380035528122719953167560820350394342151544222604760088941471664785246519423670978080589522216136056217824481911599144108378304929795798017505787175491131138006579985028866547279266739056805179394867823482704168588670968089343962259844699863535041690155142267795298323248915225619168541662834197252802343057663780913269559676674757978411133694318689647503775882874147756415213416527120080086308748441351870146997811174184144763117327122039841721992570706498061376866923975877549244768004256362778570086649655381159351154358368455944186876437686726407144938609582291421178748205576309342795734448047004255638156250541969070515891788738152664603321297625588512612815320959259312431655318507017014050538910723545666513179297809158641171911125331481761360450656297457199795876843510148570800601644260690438110471169696765528245065650303825234126307588885391657989651087446546000313573212520899526142271200122876282496943056982177786850705261290937739707181151581898304330896028888969424481382503600924641236430910142886931457458935586187718830258578176851713381247880259835974525207554389996550729908204546373937615590225122636278710670311540799375735723123364631948722619007601133284205781262753446828278248811456661427757512495351955214550600726481260469622966600947658914689079859805364585688482992350429720471223693069710078186992997438299445610293548920804766393831952449829891458592244488001465645750584207424325749835950373292994406485538682986143452056464326462247823934982042523418133441873559602913141217464848956842727922651780647552203697202049428037765371713629757469313215951482310412432047155225496435956126193560242720094418823218529151396955727280421911233453309800730621584861408340183975512450425391292373704404321558610348851145084159187868294326028364243129604011318895785619539372175201853008169958306500662202438521201288009270358777271462663658714406515309993576829241979246413018005248249324190306161923365911054926710270937829454209420387907512188302461536867469334840906077595384778470319538442927520917279375308306411134793492194632438085219105020910724770400115780785166804954899243800496962385188713458682429846216315915955763728942461611061667336432335123026757489901974175486007376108787467997441122763151490412313639892686213958446410485698168757463841599676139053713509550116942378482325041485836380011629598313895763305001373492246616398678750070111016757638424859418843941906059996229003340323301746287900033183852888948631958178705787358485418050212757719623927510670352782582475938172282716856515781247946358394236281930610039351284193040468706058777882005906573791597670360625159425091743720532323812332584672231551871657129494741769464995283931748650583038070175434585443761629955238324389220111548695317401760995892679779996559109521293153012269652287659748749814037877483782363927293829057179410811585726670792793456174834102649106333846377243972569141966735655453889335978173235567306918737869882224179805575978437605594222298652372664935384327169527214147455388160918713118973007464066779844784785068190416618365719292345035829167639015924677421470329121128864249689293707430264701379255637638993756301855697593456251384942784530766944968802623772620441742899514967554268035831497653261919230347209386487047185165510717543456254217457047304104596383314471395513073653087449871762931840798971664413771652988913773002740108087056637931507502557452787664786542126944316561692475761405567894149091164998987212586055376982770804713985587542186609292665068828061394371710345376004128446986939567704863372270490460475094404023521747691400359489781747302278772133355675551135798450302802654157929127918531240500732180338484305258571612687541732348257462292182552131081473463991046391024800966535578539132438487902208824910399483794925273169086547309091165731341038050013614813346879562169812347586941051752334333253626320555462081335866473583348156686237924156730242593407562465183896915715448621505762585391960790716206837475477301258674057599682014373932019482474201162319057375736673900136206147522832182842824059956026475132415630954863724888646511001663995982311628607030485149788710368820552069818951155865694291694959697941668854797499216582256847392900117410769229673828290973543910537266067219875190099377469037451011906406454001730784311024297957712240221281746088392857545490747136688367470071621715749258090669475419417511339956165708782622402926049070685341573685849156146470437981769494138768048734103003631732409474122768021792816150100897300777194968554738489441682740030675855962085158632651593971417871898389357966775119320288620896994945297829379381298583144469238057606270699201093430385824031580119500629450375539700458478811970569493354008421628806106355652299498853952880954578519928253476518318493812804928804613614788786442844313387874952411499532022674401261306411930347873798084930163951632958482958006951501308965204101211654859690180083655683823671183089361873168842844129450068290120351564645144117267945135037403115983901325978419101228640415317210361356593250056733479074400381880622399490578086436282889508718446578422772960814336875971422247036433014946952627536776917520024274505719768596649779083156146007812380072268547494032594621009495624789953129802261214287100010610751311559329520892473908064581452674029110545485952127619541311097923840726892952984537955548389563483851219447064915404106161296305245297277784946792600928992410030778117220780661698331610933470655606165332388520502279500120892489870588052053333457115161969018474316665360529098917268081411937412801802690434866512326024720794142978103858911255471936536025752071507902666156806532015972729031375235865761898071336111176934317559579551287261125930743913385054925627284433460085594232563400487577564521835646857123027162097107928390060934652551286003597270789137714588868842213880071940632230678913077310271717323814549211236089543389763989956525345376581455114012818705062318093663971721661599100903231003538966369832953928820386614202374814137234543802122589988303056633676133467561568599341792986765617108935291046981230249628843954572207825087664647230761975814317256172670499756215833791638628502245333940733051774439200258444022617667801567432931826310832348201803286551461328889817698169506680531035954134614505371811477283065956739326756195706959882066999598425115425277357321343080012134258054303273568113319655061434521242414628106271456324152399911949672535059636534887052922562011608809146326430574633549071743100396996136867707382025613254739625424565954349564338907216847981168024992192244251146824251026970342794562188618829718058144965361027235309873287213052649660376686454333990055017832461681066183493128625128241795630986494107099589617999876334814216213356769069444372933188561703067606127982839324494462169545042785671411863972545828646754008594554177562147478108102633556602082350564742933704744321207906317407700871950916715003782758427493874753891214409943212867852176008206039696792436074796268586090127298801443596866135111034344773903162205187711762768144167466451342559896485037970721169683850452846130405222144706263535668910677170714210545118736357707713962682517419665887807258382305911927750628622384006628789362542899574006660479827964633110496064175356715453369343850774107700438771479563203728523615568218206301853814333810272608573196602787900144144102944017508253127307748470856877714232538990131081008821149328186061122398744409993512966404893433318650380013188906566650574858724931437857853109373617624577908371362054941552602370783023691277071047032894546551452757571530458723598450101438004455957415813195663495426323408575352161857208873629625784653875564545936668685463693804262115263033933485683942593647275726643353148261491296392216187532353886887930718756012682053829764032152444450220051338420361354994563568285284958028124943281362540677037528845695702089421499846247827370676634068634001708982920741681654399382137232265349163354813719212326628181816298817378255087866956910689606530989498569049676901245013580513236466818946370109986757590564721062835228389068479562376842448362050214925821436126102026949854672197121725626001133959944745755074225433312273967624437232541125136377286519184681396341726028407776545419626563907519294911568620343293125494458369397499552434367871100260001097051821656306326321593295239450389774124622888307435358304749680308522712984628366694091547679158634689453323215026154129973360956960443797484940197668407009570756731699537698208476202209944812131066472735795454412639908124155483701343994220876466124328491918408994591983315771986391842531242544618975936316929020099277327728271653085870178606279783295306513314480821972105579490509269616616720828188954748190393003624091093238202392251231419152581396340307895696855661611552781963409913324211371544098298436234808230483077346321262733015976886211463839041706261948793436214484551779397622352737526753485034967083520689346888487610565633967390244484034603078412119006525820379581855088540774359196804845155359350084078792495580083600849027147498746484883055353610756872863389569440162532281164375272737046626541596800403579147497594598230988940953364156536002364613915913240327500178257862522842553392439766455663972536366694140001518370493990646690094979756376988053118315849110870453322674538146435315807089322388068649649676559200570935455823462682050153366750593294525354320514584275574300994592069225931860723891681118157397848551755713862765635307144744748530571434810386322422477770982337598283576207275580523908031262612556471235434256464965264948955658998449158549947735654283414995934662472401377338257843807361714961398806812367351348759937305838547905872568317636193641845651117386874605984450906426839026283483014319222953730939430551995901979942017907435325774669725756121523952602516132236570142820918580377107256838937670216108071393815778521689788996409321413945490916595217783185492626121896827525548264322833322103161547250872974287092753489205481790953134166748036460956964477840068257704754897575595798035105527867701414987618216647828260291728236046605435729409171534293250626715290093843710104394621985557559094741373549558222653784046187030692925537021051764639602925304048734958690132549769019481418208361976217769230274035019884500554867837449158749046958187223514837222674754085944401605967530868854115445935891049826832658328849578319308479740272406716994645683181196737364853135934219944450222225030030087095478150909318163339108226903582135709957723384989726754382636853085226735059731451289676114897533226480048018112689967998851256280502925143932276534407378894945225128017186053707988095679677486691019783384202177649490884800095785656698501589013781963017303797949987131483544022563307394296830784360225466604308779438875305950525142194600818058717798265570749912481409800600918341580378079882717112413848759369455817111915950530059590611718444206953123062716590842225591568287765195140872624235176920752266326322888954926652555982298192875674395844252789277695044760975579253708416090561164841878005480214339746236373508728677214681783609540987239457019202291276390946222702521249013734643831803041937584351388857451464481867937450243412404039412601186057395801274135870539110193785537649261920660094411586569740832495926300359765770585743872092499672287785415899656137420251490464392375841123946146285142832203703533207963424298347807416776462684826681204404195028252320777793432093404237440932817329806466716130769663145135376450074583803455961670130226950426819114536574532474818828593775666328269066972192247687901507888461238289840713538343165766837957729252113755026836069856223398100579154885953448393555529466002482187708043233046506649931605438689692879482102643986246229076067172050039242664618087346657820407043464077870509506265208327315618470980916815520794983862896572279289278839192306484347005233634333959064574821373537301371661143582171570793477600135409628846965817157688757539579435282070632147578972253787289895714027528319558559694343381919378829528098349768431263210708317711454976542074134420514757012710865680391938046620871954905099518347446173648190261164979748066410823511546764384673448636331689435217039818991698439662221635558619736590490076101122966829521084649301739103325149487852706383598525711724566872747798610506208517165044524121120036836797600918519346487706933970556005297489204766971422302278129503803261920544501554597005858925698005039363491393586195677158317392478813130360723446321368128395978614959064382802930635764374465202681312542214342062717358773028313226256958091965976613136818902421391708451586899454368345817830397333398469501145920518575480857170290895810942920122213845790386176357096563264365733019219309664264383900797274268187379626122131617033889756932925717942816108606328142212931087365444638250766327945370894071574670400026167707105833349445401864115101203412062573674107949159172678860404795973882080032252409776332441510170709058498922943060916218572514734069659082437016408740989582467222037286023892847330831395514028160734634339835225089357837103565623636675368909874923258201769991215837056205997611545938972252543860266298505414404044772644890773460698190084126661948442156727065659960440358205028670129759393690092319594045544268767203353204311940011609027163129742057146816660739143653171197740229343456964929856241672901237224883428300338276997367958666868497596510679601804182730164244579419557817340450764113722449699052812776961524507362560893738923095560642086435588346693284699791005884720416844435321635120937855896686123174247435032541797471788446169990112732307837345801416631550346076667627033876805717385116651962479532170426374085690061149445043075697229802664024980061349674487782683892699884558074334662117044675101145993459085106484167837383269544121867235037941622309381431278793970733540813038548204344683953770414725256385541249791489529660349874921107205676566559888081711891232333226491507777049319578356252539635032246970945936417529977751134253995894416332244016934545555982521208587232965670127483578061281098343589983143582763542799372084846313627860118664428570487305776128836693398928693862080971110143568110806371761201111338678775972773969497029086494285030713948845401925609183881939350646816569979153491213621063276344782538169337032187229372119038621687349816386277560638190501599809765413602880046683259277315713478360507217749265775855797881615623917526347708763655057555731204565230546712860241286720908396568979366619164647186943724149994413510660543732234424061464483095316975669372014776037395171454871158646892930648601023191772476306919519042209515893583873859341734283765683608873346197306781078738984581024017289163928724188072780799880065309568161670480018490355877618339398852699985224712755067915202830647072957012163884381067240569786834863895011165301148364690216452232277883102168136384675277807225693401671640563562543893753299132854347158146046416035644198582129950339937909994661806403378820525162212108429127200968935990710305557037658167463587991718584983920227388466806517284963195616454381103377724132712038258967382696996058413268192438777979867416279383359699608733613442325519013080970002638448113294230074536545890712658815641102776082331238138677254111408758830856775125406004746552495921006985076721656466101225857964209432078930512718521385355832695435032878374366636652607436548541536487194528742076432358758756341214474070146110102563734876707394372825522484577613112069927451522942779167569630845893513843326671718333012517177566348803104112463432469967348117905802636612449382851078559243400704329293426717821671787515120000593622682859674555550378211037568268814574830673219072537604790899801213428872484098199132710133631652695272398569030292536595037612982970595561049005661068552542896984916142027598465697395552961451363303083702035913089492095420336620285126767026936050421932288288507512848055843964388280396095181194357962355947475934044865704277510468302011451740242435925122299620245964842410671664217329393661604999000007218189569196068148990964764235089626133080105668891864809126537701960719665601895799774946509290585050739334644720268602760844143667785944897502112353468836764103427363831000627095638270843853249078043529816223737261379949157513248650178369421119833518140839974404265664952757442079737171653402444688045164006440334686905792071144488644788474560458723495935372187505704893418687242805168560741264723011405476397645100348655625668885540504166575055646917933614808195287989599569336982520243668219902174060608311047743456514524388953787390543221710897526895795270321522225767258737569911521935264451868391667581164935690214464629188621427850846691143434903526558328189211000811001842030876305223047508616024534847810808589786312573886226105564816003699696998050955803638364537493668150005861470614851391074845547355595475347437611914568495495880220328156964274961255163421173402307799358746949332486193814867389099054465749066961689607812637604127035922039743260480209560725019678199016614532485839919528327568387951422847719142951814635773593576702600303241747134870975367596622202735343259901565182902897246423357068483509357131510299274014037877887925140386428501419487827842741298355155085255175087972190646633276040082288221521716266304958969856777782012753826668502205650866702266265884012077908702564331669406169499122494571744393774110735184983005293263089191409458460625746056267490432434552702284582671557131745655606802008829026166392809847441600148270313533101965188667332780251337608499507493965474462953294268912952405874839930110497632179275916448929599925264284780090676679315198177586521490795421593253591338603664497311686335033983181033016183086720970565571635749762197238654284208578277814913975440807043706928358728867351437017682566762523729256184250814093591320560134175490085786938812564303705345456164148263489161173639637135299094869892885604249547167389313232960002060505618527804064595737143872967604916025602537598206797794390584977084968075085393376550808428036465039128453486511433980986773939338420308048477139650393186366899466414836257742577266093586759136907565862091677025734270445775895232212380975135238305577994759738842288207202906407028126161207182663675913896940608883804389865840711432654964852077942520780022063096358292074363837117034336674546471122101830955501701424296062901883676286199040170160499066071545881994997547805207793635989193574537885245809110472097689387841037005217473391174614312849256682822192602205830616747030379400254363167845944467268051821263780504132032385795359387085314523220002386750620150635837530905993910101157588760585216023530186703230547380079253192574173735584047868494842552156103467871895640322902838339704723756353809265679721112014702407528371558755743049673840120013381937616597161074931983285082044425205160550533639237638962403066579715811553991089989533513036065733178137005748479572704117445121228762054779323669396431783695531698205516588581024501967410006306350298147672690343899778566496695299148580961590017836705274789173583437999238406416496551791507041649777657873976522240150375516089739796357449553013481294459427459892352061361972400396565481156922385772809265408065920407830411893782480313889671823287427809800275302899808294447136087810077315041444706926648897108936163317784063280968411581469551993632676823502414497893420901255536064132734714167256260039929625132712387202225998929493829768616218165903021105162269041579889933306006681875781399920446101339805159762665456402743062267837455411784340044834163373634437014781173567905079131106750059761557955950987661620911370581317978600377174707918224468194911494274854175421705539645982889143148821952491972329202614947579148053594239327088639606569639358445083182413194370072707587704707089759974432281927487353399891396345886143017756612168416911176329864039525167110886834809294503005746568551997514355625889028339722083508441160164770203228331761840887303546937932790187623846381452782516200263112981696960235640124702668482672698925897843217964899391376413255900143040351860112135012678589384256975878304143118342677143455926361020574182927579488786933498716405982983464002530285968115165865776518768159584671617157870574680090733239003718364491498005528469150760179821745228544977747852517333901355130375371501450780745989748285853283919744378063997381421234063716429629389025953500267877507878369279474389958019837959314820186018935983563772750252911821031786287727428247406135348661392281544301471317745582501944219122937903090020303023322149858229032136231581122633591721500241935517298603063914708558318508542907138832914226390533644191112262521386919463356235444257935047147960583038368968149623478373780333081665566856323064730039059399808727870244409089054978562530662896228803234838011332693260682697655102421770663032487707912795722033460578069198390532113336498426650780042443408273840558126121928168705944422107362756966589584661369671705802676832495934421337537668849467524230957210987357719934540431733239099270845663551596889972616663969875042793920948046555283060655250842356243115723008835952069456934387971930246395941611125470095809671926279885009503797696931285799435902983856118038096532400578703500671717571344842197575188431258330974548400959795943260651685428540533252129035253070822239961253528917361139485665005567609886440945008513570492604733267337374486407919943925602062408316255009465589337436341034822897594676692904170487133016807430226113175505015304913271498535994876024562220131228094424880671106822749839130399161162549025365112667049522175734537544095893778554953522678667430894074484373554183285461611808214234444659408129128293933158487838671924787155252979859900998746387293321763246797094097505625370612944268904213146688178210060724664639380167123149214529355121104288873013530900244665718901224906660968375741532721733492457026322352485882684599327637241520572104189295588271846821870103853308919414216814563396457415207310786215423786354353029104975989550587677575259046341171133880635650801017604661253112554172518896743311770299673473818834724338731987181449102389377246952013728001915590079826393802362043267206620357274128040346096656941399770056683214594390449679817171589302209886185258887533091114400887088648294453695076645449641503161037743547713146054205966774899952934044021456914210774367742072092928379787290446582265819242373086293836989362153393828370654172106596623549579424186665206010969745364632332329518112861381200391230006878650466628386091081524032172527308493481626285266168025230084161302773185541818565175961654032333473706013039558771900895058946720027321647347721769021018945786917459013189293002662214021389002293827103330180715753813978066940270018093555107524975824424069142645591613891342492234704542501493255152667049533502111793623676381396105415811019805334980160414412055591030869766125163981301974200488316684793292339157115240357649059410881068532728806671471115410699358458180442905550056654906977239995726686147190501856472509088725948185641560067046976452417708697491293021278720999192278757027087794093449759747604246480091271249991663861135090193938723874448675798035235256387743855418313844154720206265527766802468265193171669856316825344460842679343115496471740580415940799714767695790685441235147083601582671621795104896058396105551592565987605597345278986131106790680808018681398355937146648176134041177595375022362136303923064321013124372285909252874651939336353466931951279472591846189492421481819495767143466762524018723102849769683395350849058168982050022502426994275431607292490326832832246376820883678424988292790665979314470223786135032716153658163150547122674299246331461201711302763603349903837694306806131094599908250401926396841758569569017292564154226975595332409399171874219890324794642958484296009194012332013852545679246070860653404191312378145237120782488882750884365992681124685905748410861433570367309613838127096449926506977442007479007778766825994688954077248507013152633102292596195180922698241184611109360165050375002390635769849026474312393684759797540193510954038390900894453828028013540981868069126751494673380908239823462056198502022137795814422839947829615461890469544822224868684625630304354901745286754401910313704117075830987304370975127384261457341296548338141468655614508472178724815236478022433510970361402378459109804591406518513179819502736912318288414088511669400092886032153377829504415699939752162482807409912977540932741571719839332659894151888257111681949982273034091586783183639163639588234088980109746312635907922143504816567172396641003602806496970985924018622090523583345877810444182684521183447717083191233651150889990135143096996115164712075011781376793191469414897426237334204753097925859881609466781862358593331936314080353514264243018297654526794556357205480131251861302334674497182540398335879131101605091510055743622157688428252421164161508946140003800677630204776742028018342166701297248205392193207882838613886063986189321512443595811754143663462804319295941473467498155728878269820256865306149224353212963137876923296399409828193709332620612932173425739284617802748330749412126389974901388315091990747362636518774497811415399251349013475847816025148303784145667007023069602904839828648007394366024095564146260009944426062443737845313015603985475725985619530554338328754144700815815466331172553951482583849473103500191015371807517439714321708448259311642154694234103687340138485939451713206587087131795419130630729663049338950504450170644702769956783520706007031892578399880069178787732705443874598163091300149625764303962688446830376023385168919771310483164267109269197194750223422517142459092698053323963459414314465889990283821553130809080158619359542684747312899834975957264399113376340901621071860336433914722744982747499668729933139069816395084923934012936490372607787402110773944011349869903888088918332506721115992240744336484007219729379417684205066631357399069333865785400815710837932629755290374539900573937878185962801134143111827723548784171419535367896579082063678357681179687778789636912560256125798480804459375049346047273366394543850148749729827079494129645116158007043156726381247250347786903245155201683156690962173521646345954541949871129321158909174686363336171295848899993332716904576927384359368096163553021884553523590534200501312815474754440595642039818499830298808574101907273054140619323838187890592660312641169121864210032388050971521376033841485078704088441312735978755119019743868149064528031535444335312605319930771320605318149658432941872704516014293880276567851514549211481321514054142171544952649541210767789120164363969797135913072074058527479152210116451070501792717620810424263853040976071962426755608077968483580757385839746421658641563206450335725302086261876992007907203641168186844151946710502029800198963198819677373221124764286287563843693903419652880267896968918573978781278146685071886757540707626695760928176192782640421339503559964942535180008655995938401180629247478302401121280520521296185615322309831960092480070380109860176890177656290358636369672104562741930103836285896108712421027427543670156333776400868742144970793029295838364081554482834390500345568154813411336374117973064570781435583599929021838195310168527738474716159192389424669300623955458600418648426573396714104088451322554727852256833967419997393032528729452827555035619100631613490795531278780413764257829326814941368057985546312461146663279791858468713149040600928359615009108111992508786996313744406753763391805923912507818206548957166761412742605041335372445287729875757118194036752669611814870099462983324965590567917412150321947647628706029190346545113050938391589672590937383293612983486212356885320694200778820223405326305468624307719393769654756644931432405476942270893007941896885207795464571152997971532764382160938984975313164246007125145461977473191326363944436578741350551114507648404598857861594520249758933604336340647752986074976942064616720985921813896574898607411707189848476616249357507158232745436019077788614106295782011444968509926026853856710526362644980890410146629924317200269955938198040913592349465276318975401457907220936664993349751955576192009448853433969086771469751131131043398515378598962508445458530526069629789794890795039555099882569400985229925886177048585960375555394541581099180353294748172601832630081180332630167256092947341742219491292767317084979515646099367363759614784066694334431307065428169075541581279940460419186875408437266380354967315063507295939917330940604723573357127312039378422513364266095481431833553897708122070101278904310703441776336112779740631479224334108176781353342895675339098501852782048538588690695980507046087894110834971580554939597849105195505409898543218471049622503044517237836346728769142957941613601057039445195506497373045807471975934093680456910042704272991639957937572711265186182021682182045203461698519654415303377353152136980946823310357459915198953018707784837859829652849048622805295902781875134785391764603535883717398650551922689492445668166089950163057406794911583584040335809182557904546263930089464659545061870673495771726475688136943386729100893935698215674708237920742352542717719446875285017649513676429798767463356904441804447219680912063610479846189908724385944611796381725781426997079836832525559470617918774843243716584932009042025952494115288014916449808204469825180070106967244596276013213723711445272834345588175916878512456504499993907895104572533914538544805248418057051668452946118099021504066217137946383527904003428159705353821487404745229252310311185642352068206226506380073073920623863627441768268376283163947105358853229916377989144581643154875415356710313011377518963916888060622840753604242805162570771354160797337674830839329138356033010822014162000785760793704500509944900668849044592156471479842643641809069032326970818207986467402531484028377053482440216170448242656375489694394416262944110510778310867435006949622546908584859150850955507214897231269777156575851458321307255634835319500854755858386091159451513766510422745769493252722680170745787080714867066798874579964319967416735331664832380390108180507672058908740624065946704049380580510611890824824287145913275053946003994536410498849392762647322008524825296702592365296072123105195227911586425426735751339988831135410102966848073247919321527597708161098573563860872813064310045135215817602465688142143875359524632371891064465784859768235845384165804232676981842156824579631725016815146745417776427132187342565190197905820352797045531443716807175388420742938351965809224600183519613692848363246760893490517939470568256133381268519146501858231920794361621286842794643082237874028426370590930023670417214569708139032844218388112913152636751886373775408408358119395200030723252138916320320001501781846569381162394610783645815563984563618406227178704648092536858028334784177348455279140195301662821519512243318565058730097178309562861302511508667234076437634734565493023341352757190532740043923825840127744157598928380125317821868372113357241875347256202470595293012768492622707876018048089461599651271637193998162986838470094207356066231354967977506408327749424397400487075805370599626751640259035335259929998976339760362983495269771328764688189306536596411953972103185192654340833158978661106121086832722084891994162013615087827194735997119807784876952332844678067763678198661457674795945978357589882754024024041823050478829042288916174743401344223645434554684619275301432744864559762292922681126984503715469401543889381158307548143084918965710921568717186024768214552150754007864042103040318094945720461543259896731497094419493961798587844098409948043983040659386875222600086693851424924349466513368226724887079103110037493577447429091454460876524513639037870972969014371733010845640278675938479615290157343434491347069345723852365406701829534682886794715854437885954204652454225330767763573889281964463706227231349782402619053386140251230855598127427393354406543442654202622350528174869077418113044992388113260861302741398126217723707601496021107391960548270282302734174534810531233480529463646926548472126292805262423690406170104563999580088655300197432788947856563038272410322756040034353113356068601818082119973786254086975545331716863283807562553752492584084989063592190226001117411621345316956462391900451225727207944276762438705323300504086469515083929934756162822301316785646703804931339784456823274380801006428482063355938525824054028224691456103802302608722006383276775282408538991947977916320114865436078902758279336894304719554973546304508551379795532419280743628586706733258337851432658634785035145013677662119660342359384864839162496759511762006034647609213294740270209598714006357822444297123140849972346145819571657149465396991267580915415188548225149460966991297133049183374268292721845329272253609491061114024938561162072194332703019874173241033208305580624299818142251805178066440954294992316001153067746178894140452318452553175285997331333006077409531351587850909209426976274507085549692621650724712915930221459057662256490895379462753575548220050391436352860396311512823381838621486878374391267513449005680204193316622257826810911401633557758561282189755642597772283661932533573465302248918952703320796547420813893960068334238993220711922138388552290616312648641659592631358503472843435657708072413945120659182339612176737120677000849558306519966889934829640033509970299056094811685809863985856646438011761689118439911175243882273388661909338975331784414998515154094437899073283360524997382030496672645665779810500000286419250291930521785256287568896192628784875250108910692172232048660016700318715641105853024296156094653649702674968427047674848574795511142174054594358523249626446113028169941477333416999494803151406916728668102635374770812145988528512640575832002701026033339752164262498246248037787864979162625876745763384615018244158311495108405150882081845316107148037288114889751334579409941671838585794844634920097282571877451623313553211851506276688869319086935997549213583866802539774005046626224339024633169367926067144496736496607883088262804643703174156441226852037407777250317253461419688638673395933502255389564975644516283323530859055348413220158727536828739016248796038125696265448608740902619734797389522444008022493892069248410030898384020451222428444704402054818207059408019266039029146705927020760441249880825335675646781827561183785534433995724686815201832276806897671587203618389727859652134931133084290814278541443850479905575792434238205097695292202241839814345304518025595928178446165815990028755103502333953257600863469855998639205100400142474275444589005329714168154257969626645990953446797673940196336157101017910696831638904735467879646440916864409116921345229038167327143920673497112303130438647133942292787454200486140146303572050205863119239584628685488572784703211206618537999178423924566399095825147447547233907163495319218179401072669099300653929587414431221799167456709357824625610868416490293365626321498292521658441827205505850528153396859793659415428215279506187042383518353309047512528139593466730270627666082700952411682388839357947843477751289389464162948689433969344584377839117019194292129003701629574785692124127531074191840984365581849219232404983235754934183416195730989766782672990554641075634395127753870406197240183215759625997874127734981741979743072097546149173676129517576826206337165969478114168693524490323899101504202418313236985259312871021580708710404989663690211462531300767490480976461509811385143444273073140811680974096454299716966894433117646590771774421813635719955721618470382995660031012291707627212351773259224204145284929523626261066740022272045783357372528892406289429369421975280505688284397251039557837678835173185365782491408476399381560670195846678884962463821849115709471055308650337137511607660903234947035553359403151303608476771165026873413135278773482754109570771178542687940506662681041870421156998149058804844643278496747106265284213379424432723438178222889861718161358256810160732962955511860561765755770618930541981919813552200502875796798288514860951389025466930249624354342366760592050773863185574241005528626684970803608607618782588157366870662249075469131774870656660100303723047414135127487331443883489630176235018634349044347328590925738947133814379038664742289365387930105117746664108490378418425159607717927939621420215373177237118017150172401271155627269564750914016867470204072015445874956242054024576908826943883313007445857608182049556278189140458900028484881193062233033199524440289884515891026551587966185872141546929786955242458816057963996436922292469311913168689059514700742192541890629553381133817827690641835580611651977662271144460055579186620191796879169665395211464865566620616920134200675360834081739865226254721560728708106376365005306411349932580275886621174923399664054579567221802851733976983846695613962879701706395061784171741944996979322814823729956644787564024227823104745994286940346183922748577978972536273915581913477035874919479347749777275860739936110399335056429609915896189132554524128123212138910245631252586545060737022456337940091121005170431463621561039448081144333796920365582250306270308613644666998400753262134433914619875022016717355533207923406656146072086334453264779484462498795708704479079868097326056923050212798852914419191162652350633072303572589478416883028890765797590752302319655979650879760535703182891788674000687023379747725175153453023391435230563650483539319459618371210759189526990806615839522632897690644930827390722677098022333057496676891274147998146199489151164877026636905233477629989448980215431134315922592854707419961364769019313441290597525646131775274834182362511759464181452548249510371398709093130059491412631197494881928302463608946761349712017332381924484712169870579309708336382693283759244125388075259135999977007432910687999084542017780608066594298451685393812411626505030259229218657035198977086983119333453499703401873827319901508752539433408861169695181330765411068132220221809742530245820659679578728898247740096410913575073900966564137791618137568131002405755224415236211681087879238757330939695258201798218913880191661396787878813802289490519491649783135070091932886313417159073870004324263916285847116018419391182029219236045120548566373701724585730511610159499419177157022539605144301739556439867261427325186777102821303408177266259087719913681823327380652594049332645108556032398610995294132877274605508319640922959783986800746404286579537881626240419146778628592777890648971581391117724020587977422766602595934348589587791087702067364494095767727920651746447478992099211026458657380101470737119633187184996964001194235537334473213192902241793192168897034118365674597129930006928851768020571069857641220571439955609955638896506969583458937025057610879225392801716644579747698259846299985393126772768978149600839165432043051107827200224202843326573702680585147965547587007686838460548296242943246079587343612368071174909100627177214943946239461529553368918164140722854936757625731706228241066476801727936352700753358728746286261137192390085585913635042673538542678016648278266995375356442896922463076795066989410816730051980949550334516163304468448943527102914969664168064209680182249945037285319810615790293055277922234780224336613516847933467035406689867741867809630245083151833910609507413903840939831555994328831243470831962298166496647314267073320057625423674274553494550906982632398496936377025950406088442472515160776772296131390749476613683520990293042885375448516108320942893073464372624319682546366211156191841125784414478386359990328747521025586141795322424741243813419896353034903990677916609576633181276618916679264720395421695966625537302444088894857620286505119228015620787072660668230605546949488204892750048721526720502544964354726992362529261337842157874672929355615167565180338079344473300038384042052625979925445454111903321605719710160453873752461067925596177202313635465065599671655344195082061845936144745460875942940835440933705854128345778728084155966708647952783054429062177323761488872074432731543644861872912833744660043387978899636459795797506149529964649351977575489356099671653536444827790229880189149819206672292564654268088750560297316608323876873066367249978416344179380909194108631633938479868529993769437337941245543775582001904316823812183487424335251680504261988825272034994338494914493883222767318842022021407067789293844618081723832242220412687977848665710696221865484395642621529617822056229093909503256397265075014726608834728683626243109131602684427228098528514050270059206608327222738205186771069031741703237315489502475375418647621566405319098040355473556149848177519801364517713734750883751751834572389176610007233513217783037267656291888760245029225504904829800212915206709221680644592875329566996898574873155783712590949042241186624401599783609249459679662097555716955840288057327858256852383587026821660042147632950837123849000026029979340616921588260277455687450728386387789388348293042520980270428965119014107059316021689308874297179724639125912026081082591221594388098312129093338899664315754241578979528136729330569547403102347016587397169501339050561477314780122714902527572804845372864152128569180944897384001476438987815794852899361120733753157010871270931443320793676672202186160693144918127698720404590667814311826253807017454271487339860838112777075577247458773070454801859099789442345606716490259352531621689696995852324594883171418623163612415081536337787504187674430836999453670937691008619897473268967332963601670279969569378579646913806119120360398301761300216849545309484292434444839921739931633073263884790504555888759672467904001628584201709985063834528555351200370881429095225999649327416149098200137602655989287169971685983432008529660889060047945501720430632300692670697642658860424258002299179906347600908365601414885916862129295333871870125690933817246467405993227920442576678881945738157750047317508746056698589182581903457809945064819063059633190581346621037414681777457874405838768381112441531973744125054270886330314879725193518417666900991584903839431097375082023898460044746150604956863005720304363834229361537298015967851776100259228205522851013492107410481508514084994223190091046002690312789104355351911086475982107145663703621532572088386193056468197052694440555606250972326061256052641912259282579663691759138173555856912943319115014569064921834972363564539624721494260215069632804395464787523459450957987645436530509021171477097849362929520883115231805923352384622318684862375690287816473650259337590675340542826607533297565336389128153970439974415007979142819990991681086610347414211889177292624480028219481374137944213567386412262592802572260445609324537123705253833861316559378983962268834598663769303513003350384742875290480367078662870017640887606932657984553089572959755669664147659465025724528563504766280853196480840030468303933788958548949389203228076891873045845508734162852667066791213836211611297125974267805667879722756751182276996402502289562041586679190363835490356471198546816647539067561645675500895462584278772743973004311804769257770208733693336997668368699861923942176118053599975207761527747623053248369391176751022153590900895673501320689008738787760111491298615206845396086195053142094069370618299133959067706864433185190338905452011776105917521061371141980961123032746538975094606548985467521074693779196493754694209513384580709314994401774643317538606099859807697557278057724838121960904975125474560477341145498656946183814735938385995076148543629247972276710142236594807816347550837145687706227786712873226367873895165008936662427498571509661310339204159158411801051699601933681124963921553771102104508543258187161871961035990961537400744589806448388833805504586176581147634565717819603818112866938807271755128186003283844936808870654160805229750604796552372885983882557922508688631318336268465314736188255600883089782180015632378033852278432897944162263492848941896568754200071530433121149936758264193449821113938869264648529619492827216061407310248699315653219823768004731857400500901769762897710410305631844677350089519275088865009769028007044975135939583163756149879967168222108992848603503702554588891703674365183508532463924359625344930041047107411565873510013527122168122264586175634157976369408680653535702772207704040738848548251342485279084128257033384255838979839793763893317234553119583785341427144604498088041255215193683080513074942980780299283722798417358817210051035994141542557731540832552142000399235665433945278501525090538467419991639233730423894409191473088808511599100330546557875026391667563597496724466424896753703729744336840145203929040046781408743384158322450470409124362394660760679095770118330783777735720832596498439790152534991549394074727910229358041787295038166218740659462419681761983940165837252450145396759808833350584622981655872571025462691289462154113768599091749894785407518035569553407102811413447640741156306893988142090838858174437147831070446522058278158641889374863645439993405131835602622495580813609214992170158622948860799575713022354885636646102106564618884337546444637314036608790140297195096010845483326022460736617170961470968508514872102216937195787009623843132112692692013063058137446513100520933437352840645959139340782106818467915826822870044994640272484629098439591186735877300522359680438572513448633037212414612115931007525866351168706533711485757221730048578416656509771237842002551369451237272507756502439865663433000995865401535421423591445521070242939801241974745207994841621468533656598838380010469480793050498482461840737810334944717561144162603698493912270927499983348403578717193341491113587784375570567632099435714963124042465844873275564096693957487252159250368259710020010834897761675027249579767193172288865357553975851771196039960258043906873240634616686802686858521931052324110450933994114931734250084836494689794446309742130783333753076382723859134401788214120617728770002709467744909483231238136625860609353672449089328345325372602720595988515235651571777103662718507091146106090430152691157816947862955551287148908176301384386159115484016657660193651837030563935908416735843170453052484274518621852346559498913706816642107748610157548755840052873448681144572080486275948125768782693120006074212664462020275852564060123104290624926178570419516385860892244295227338626853639302842897063511223220671346687680885227694613924860871439476237111846604282698282847961825974827314702384262026896502456610684112846257661863679912428547905649864574751556793496837412407272222412822409384832614778831972200090104621490629883678198481304888206173697076553065568369413604564064244665643113212003348683964674475867538163492696312621065399158329368554491607095830157904169145832556739053052077291224049140771132792270137043576850565975564213867871157618980931209769988431634812746439528242894452930100441872452545198857550819560255895732210686201169811226881819092474302362340232889784074822555006335637779679789713170999213491006185974346864790701987360678414501126816334960078303209569995333060704535467096340361652815739431741981410887889679797746952960880336637208734724416721488263291665326046996185057280463338644603432272588320660133004041658656433328681169069515464506737292617659536428911770546617718697023155550362803106618454024415782261532710815380539413743740908382083269202116564061794902525096862566329471647110683570368135371457105646699507639181168659397149050285142779160530437055643260096889449384102031997117825263232767671134193594339782787775175338016706097977892671175116728651803589813335903925865936604347979388319663288416719487108607159394409184975905351842996374566841633196301666455188729380335403092469507166491334794939669900314674985324810318640026754507234706324302398465094257323196369331048484517888667346982528853190145729814152270721714642710014509075079884247655077109239438811532959902294535018757819430749764451110719192221605075073800395236775346738259709270768708289716771323628286549998023825840891337692790491637802226582930263049799735914236336079398067277169035036908576965886144638030844965435262782415373078541244298089274408056111317790061714203621069549219070076799869833169705769693904843077525662105816320380890102321095884533351071076679900940192315833492068740308054871202933323735674864575138260383144318159743775928905159115710972436575856268922892955845822549618174313369553653957256686661955719337308843109638792905438453477464422540559683909739546333172411495311825054797536772399625351922289084433332645202973529341517308783386664389686648585157116855650216826956298787188618467717633841955520524009052045378172062172192396330519717805035364215140496827606328323959824210857836011840366096524123483523804057701837675774096809719511017167066035687926261234391507759257714765178228138077148863110456478068133558255689847616384298302564214676864950596428999473012320873848006245007619362238048580330347674822495599542278778611891007955453272002369019429255941224029376086441288461941107965587860566860071392629272669271435458465914067074170921197771427683730236867419139965221772120852333714362848186788295839436945792964306104250615448981940842237386783096745773273610118686496661633390079968244816427297910660077210271833293093678520358816147807735621977544402674998061798017563160836324378326755269015494163143915526270908596429971177789580731386280701399913901288251587617319359815368917040614767294058047430330322496920267067704761537469452670448413159431237891038968457660978543220079860992764086383595597405170792579909832071188607469416930403636195331494013197064173338787740442112776986732301393277328149679500862405610982332256865838855174567773580306624304766663139071962241039057002035078059661214516725854211515349366781508491759343806409387629328937695108051492102000650848233042985757858441290821211607652395002648839778637828413861518402077667080168277857958660995374697497540255845785371419117433095781598477419372313941025731262429135083782193975141689780726080074910924531004135297328398161146726870696946483364249597149002620229066408279801083333834822774919356107059727705416731422224819979190933573391675992370757076432277838472388767870040027097209450973018829039390304948679487980155810650202166217930915888239068927137800347672956940827580652929325977523305337782690422515137101695475951618949442104266116386412254963146196203709652564531887172060483754185558889267426983427859799102706566795146155117231805379021128162615827159208047834937129537763036620383974602844933305950129502803639112168046245282642729121330380423841590949952470516033584762147397994623298591593809732025037244455077120620764379208500441763230315112117797274979065096944450380415505322759422024725591624127617903531889802525518990433386139514449628802563377973139444808606287008524412168607572394468109535691619799152564413234151459923969219507042383146127548338760602341676374771065430074816699314012053128016012786319533985278419640175704680178286303560917046535846107531383814867026518396454111177818155929807247077741662402526858479058126941158404556253188050652924610100084653139944298050753559431065402448369195606837571949655490644324940582362926143401293082612630837940963539638043098649047305470287256890210782132458184618829296014119614792100839809736101161591814991748510160776482387194748342149291130928370326494704356407696300767386861848954943425168873187861154965013333180354839787515137494411092280293385720408729123001421823942621705201951956997105504633848576893874742663335084758768949406710312106955993307277742918991200023691783958405259040006870183835765184764161145340049872391688761786703271984692841950744623445704886198191497899615537795145596701958913767458971087004750189768447758973646865114182762557274762920701830970122382308172237332323879826298479819606663186460479423567436550018034144153118000874207552222283653008874612623120914552341673273223068105566971422709990975935449061000059847114660405820429140659387042228283825954231944479048873592284238735831542463426126420128840137895999958830133132601897181693413286259922043687964793352116907571943278265414560732416970104590572011070282402571879382291929851358677193090556355276559701879414033005777091299190608608038783402117769463157524225898370014786698389837331129901173115319279771409831821965036166137324276631443784193792130134468586319503822102155550481287875275849679575995237557333223053547753288176591272653859932640767483028561505842982946556069206513677264757464449991808283305423526400723349253609148538953645005425967540161932971569430891036691439219270665953621742920874233672343310487337475585844457460030046814817671899790399917971009429203026623714818315088771990328697875211991845958096739493390475306903970481552129705457157430951703116441240684997006797526643081832949802336938367142787588633203496692354448536647838122243108871995311731129226310112992824524791752755568158536057040306612901318543407648269502991966062952043484549436307555343010685090546220734652401557512576523498506339593417307881025198070863790279370192838708862900935303648385581321272261889938857488120557096725721272535227910341734821138163501976321487612688177484955417326373626220484033419292459664739862447096086390783113811622011271237335520649106338301371354279901122138622485971057331639376639744634986121010603145959869895403337169207662604851766580857568914646333671787750490798343327057553453812623772977427073307758778344169498115459132037070440244811403440197730490930041702512166106284541458416668071361833605431167455035212021110956269839126677596332921509738745957867321096598379074381893645378964132978491464731399425693759681642506698104431325549820617988960171299330259432200576105100494395488314975521965680741075958949536835576477500984514529875595630107219078958660201204245356487937397415643929470053796390898303010041821043231827595273832367546750468826190192922212529025972652353778942003792412864224424133190005198287948402838601328121991140037351100336128499447004976123390786747882725820036249457516616718707797760970273033096283449102595570612236874825293347624204797592182729233663640276103612453929576454059760971256219763950081190766415867029889941562623692437326835624275331249551411320993996498779313895178303710944958508269498502075224916345299322789414353629197425036973479044443000143985947256582948302125720615201708514806374507688051616994076098545427350150630059182754540903507178597895463267303504148158948530028488315022145297719793195504424436924590387018281599356074588819568321327049875072228302990833195112381507507776660464091381508586261996268897823763349082828981411530671012237404572521497630528400555602809593886474068308643402849762230196085848692267371589925221680853724231311144182359671660129136649136195101617710190291005506527690343289172889220070602089594216389586827682732504643462809255641724754505980669690702225206807162538870721207631806469064302154997191090960669482268153130885525464760971051769792370021816602922534214894593229890475189438801274610230172831749785305016897665349522423141314813889884940495850237139038366215388644590223583029655482782590003911826590138625276968474085747997937237994024711512357132096916649277297279023341322957825216845798061005335623690739388075755792843533356006830499429036655101404450490791929786336976728896214809519625603391556322615451360862397862950436012902551584359128550146056352871796340293890688917289803598622491285633894354923892765718997128673153454064747393712747486780188182022591078109000251948446588608897899971534245699716362579146195101697704833865761968579720392050896027695617263637413337296395106243693274104007470510190172440818189977138664792828693113049471849212404334421505341658113591423456586979139481875796914224504936952684511673557853211343691886560318156537147507986024558340229318745789703155422399563604174221745987538767741701987671747296090338874629764246901946590199206532455161639428860534348042511730572459398950708140335141940376791398058515300089121507120706087873850661948209860426545120092869033033968867239360570346372441103168559240699428751169279510790405921862679514694034975704536489745498823914548175026532826147745826003825556862835843667650065078471096472820447851333116761355736696153279999276846054246577959706822082862951817758355227890734885639976586903470333670569391756492186080002322716999704489852180365664057425859278678216376496670964051299652750583674131086873466741873353211839402039445065226500347391962760513218641483650972497071083395263903208623505191881551185015378825465519456437419046310311991675009981620675728207360364003642399739755577766559626841922254744990246695509427450929576566379672741363494292368903047925533218714051675133057704836314329184767939574510212651724260927668514020996966679081876097706026292425147479304563161207150902248039300071375879017653889490687556944690471676417226136634467601830385023787381968863901294766719360866925752783646607375197938251857338540347103639646193984260143551924214089623762979323386830525422609941759508147063883215281145464548174103992831004515990047345624324829942713208019361818285069820289811693923108168718281894479931059038451728348858091365150555124489471139415144940606325430283872598209658634816226809641272959027554532776994303141338623235056026975555325281615158412351756541333089629996851839126969465274777997459261722651053504684795811603570882924850339894288985972489130668629699974408839721702792679223070864476655615908131894521311944508118627282599984905349416202997200149255482200523770779018017664238233845562868862820771509415840532055663857539974642865855216493851845209656880487467440955648930250024212636683219500963777492463355988913134429606004162587702772175529528375519304627970787817863588046728877718998039922454859226138148938115823482402596330431414997282054315977995422711849140410142464244760471996304647798886643144803100562677801496858099594240628865465016640513882416973339068828021217854378527349366025298926236766727615693486847690069218256769876122283416987667826955549912002862258298458291934484943285940332007043723246351518339078583358600151511912451383497539123357264959404275747883908990773145479279868199447911646425143984102950339203744883623797768401377995576920738824568723341816147863518989225125151776665850303001841266969986340133284906046143954987543948556880694393216181448446767265749738545516448218234726163491010580838456056304926231025663160857606299260631936489517339850017599576930564507224501634041847528074465133003267533053019509458357117632646431424045205383290916160063736120004235854746105946010336818044292050309237056046860448471453592030021070956942377663687145420995062808473580411407016010810524428042767047807240432203588522594683383987353323647031014227263671245829508899178507820609734218988900918376513983946905721043265763545496377770777032786194420048865575458572575749845277967481676635310339412414461635722655897089077049068721383409449880449288022574021876465065779982572348850116607244132802933987748650739991108561015278686788064545004611343326037767097480120380034305543764208233141593840412998518941805375466836282731291035339014849673919816967754185263901007222583520177521032130837815529594252128497334053711854186608187472354776613594865050768123001076616498932201715489602854814942730881606504751436018996847755919606705462974913925487798108696233584686504968471409006891187368873093047281432796535007196206894743423701327825050723684148848472165147312758900456330130617853402952194189090286908199201833072391480903163920863514021715567005327467018640638583610822287268805414941617089553889306773953217422778550632871368431857531453892615422437780171229056611611893032741176420965656858826089673261770436747954288463619962510740367878115935227186974639768887018201605845433855025132918994440935487797822850699747416649027949033681848218270611569738887958769706437523774487320668459255843959231212354946861215966340176288448798963745793731765709698755653088387481794548528460174171362601551902905294526777220690522911602130410421828041266649502001452255492788871811241921599129014620255106460327321054261250077749134914785957972074555656895772727228027821932261991932425401949959044343467217961958401908991648810490494557976905496766162483707033381917397842702241506324878519447594032062664193289635811608194843839501203523312646716590482382836798205532657394613687603623876435283297644670186867085021077158890195544648603435356353652825394804605520362467298190892253347785759024332380065708069312911119162169549550582273512978923875803194988512065373059158524333576471989111682934898584582198083250448998446088518113038798029310144088727361815479149413903796015240170723377875464776465945099345571140889130518235219945222226904093784735022735182851535726240454108209154477174404898593836233318114987565674981219308211863672458428846171250496471219969500035058595959923525388721906179448965448082713708945914074363532520777910847573950482998043153161369997316267450067088871293114530705074332867342047669679224582780278409461901959590034383908455215298998070218445707708941519815767536457335223402412749923393060137980199111427782932488211109830313303364226711300187978011316811656892177367254754403800195899478953062625190176456348163926730771547683653239084067425252547615944577045122707834254026159694198089614560559977373798846870685801840495315216013197361036867242382476344050481054252601456914634717537926202778576501307704497922966278592727514409131104804877960448031094248675165982507263223094449748546999664473290273068571362355836973695754364970707431291478657618117387601025059844853537727442699317361772941528053822278942279056638666924712424555151627379673462174521553527555745169181312165538106623560020883377559889252847052559943675271453641848655257595174840405545027583876469376275341664306277576126518922174704191059267931583243895476373659637492407233083769014057031577614656802124506019715446093166476961984195533886974492331876836828863563858640028718168562324800483233784787536069183081150665838707578462639687543545391596007104956236696018201485016734577356486571194576180656322523017725088499838335938710047201615764005482158283049563216886924601265702902779311547984303685851171458494897981766693684057480838122995729154244576512306182243819744788756269514578058610546605895427136175565175515312270484843379819419184064662680363204440834537672642338454456984598118283127580490268882714035475973035821323647708908466287705033847928363232311355667669053312048364707726105865092468969661409066740912620740632860456615664475730199776164981563130420626459534711301274940686791510542717701166086565914876300636406431653366837726173601312330382265530081435054154130980898045889650961750290542935064039186389681760995659826111692109705746284717567432217951330196917802756981487245465317627746056885501739004995908645197947782658051211754360706560235087010302170724003197308990925952823462572770525391063127458807875537998400123195885644973575151721150399984008190565705810151998775520709371194985077815771220953176318155051292791550301478631438922908117500004582067220678058392515305076068761198528588662815722791295227801422136121524088796928364024420415812937397743668592843845970211379264792584371088758643609852831483470418597108190269329529560578117386936569561768127742293219627442849557989830956692250905522673028386396387750742801689728326047362945512283853476030629081538377762747463373672394107527123372028783525190308714950219107458353210990045956460945715938034080840574436314415098022868563744336234897463503400481660257382471780887535764640522021001823076540299268098539789691371047903424450458488657951618986058207952184992246011574115931374693354972725653232024169163034343357451894934971210371825065093335166450495550294276383728617636623544525213879717181678595831518178646943996153428362806236537606953593796348192371767988742718274872400823923739093569405777971842513542708854287228294717465720039976098533150017510613905257193757488086094352562080273952151014328963657855839295761002049095233808374003516121023029521471985319904520602072690117765009706425524277080109650386213428691838453166338397975029707136526762361687087556302896203412881354803031055826049235206884025981163459982854067312525758095570915839464906843856486513768776836809246493646269559777818147071781561446532286069018598025658148867067800732202681150092037750982971481863855061975665226707885406164949811848650014548906667304238388824708586487088064392209550133804634605244057971875953695806810370474696849837702495796398740071047522517250479170044956418680112521637308339394799414704667751790694106507569029001230348048740958438681041832951961129465655948056435523709244421098299917326530790635931314258356842276017490057273329045668971457540648832891764197405666649124577343507516455529989471818649767794810007305906598939617348230908634754808654398075139784652384044286012646453391903672068954953443312904414521564205977866160526220510764146178320087257105669806153330471180229223818133462681045709685053584449082709626798518630489869487142337995113704826168593589750927192025327995161830029438162706068361433327803210460328485027532797628049142181176876879398769710198423884365619490659662351229333231629205774774340901772459255788666167296847334460116655682446460107330628039534427820627684905853905282470559936960988534217372276452907631855054462320421835394155070769754592035812189475915734778062977901295721581077684754749576268518307712819819487161071964682640099584577269875676696021750711641369056487723610223825572306953091141235041613569697809326824511438043240324144658973009632180403855824700871433900206089367255250789634703548379293278606485434998411280738019835795010603453414523516706161791757827825456366647374590328666600144525245256706909574017586321821672688494648167512768027377941381092021444388445643576108863445794241851167376529510573032666081216336690674203293079344122724807333454886583591663456985909204975516687085102503888931391139971404520925073530264360591968934689053956984127086783535873577583019501691126586077851563550935830283852962711916052225284762807964260814685332663209185195577380197933992467035743173738843436722968017983825661527810428828216804236810350500635678091680650715055809839449857039966306869884267740427464710037156410682535082794204513830846965541704743498116072786509276364085741968390363685605012623036724527635533849960855557504264395941742041473993010835065178447147473245635114308153144577553193620127905752557062056033435902190013071437524913022803242487716131173050917625158106511662034866613732258617266898616318796220085388801298915549129716198481866549634527644034834892936262682531547957027791005254132431293672400273857867429835754059634578291017812266044084055404532203956827887714741375502769524194901801214890149765712831106937452883323464388629640821595929819903024258194121165245455436184165703954839790709567755281387133147965730153858141650827255464858551272323899384310649141052523897854303606611664469617006469328747512901096013766845437822757735034782897005794195052159460061997863485586192529041953140687496941126255311404430580855779811174724818178583055791251656459533084336806187213943741460661806827101298118469306271943559339088993091675494392527523096345401950047454769988037397733696650552678320629864084079242768706340896566533880137845246681842452457761048818890167647229509309342503397921662160155383868270546671175379923863515356106785905013920428140587459397486534704425670139673531345357631060441169239079695704790109078058080923581509929745968931873450026781856755621391318071042148634036019582324145326679413375874916907939999330960160395155749252164668285356818705669578867595025813302010876165415798164052465152948994633777269121168637894395561452790697992332960812219771473142368187874264878996132667868506046597563566906597044429975502610132863508638297834434548777022258018804489199807301441717574452431123806999786743033771493622189333568054655562018661025828409520181231327117900453720134147982981510246617018887526423254005461291700089328799426540118294385126142545738705180814617691406634833136405865207902628291764995810656818481247341506631806213059548489403666361103044841489177114377222696516151973070678695337851573350907900040959498399976505770787535712019701877266827300682956590451429551743579212366618402268007224742824896354520528783329021800244722655820394869564219814564621068051458182691005730379837899358898321175909648278605151691108751007628071762800890732741684238545229159024251855514421434494169273226657272050846590083765043970995106791872899862944668894428175137177439892950060283131114080202202198185801102473843100869651236945282291758766248064186494791694865650029668962522386008371513493505559656979694489314604702086552506655844163925868441900101578559922951107148921150710926657176603514035699600063356965973039362847172190211408026421691987196696371875541127347976721612046722624015921093594493543939720591142432541336791074780617171087291101357321062753528183974023363368805300063183188153266665139906142427931222246428228858685193956659930660534619938889451368584146393577855155538480759748580712384533254475694713897753483754347823214097092307437291594943684680003317349818376878024710052467713184669096439728482710386280199428779474083577404542495390698855041534293592187482779175263478334099444509619011105501276074500377181027543728815501658551886087425588071569899133465452967793068035000892533835127475069138188974817416279256286935650866677062478076087257189398488337980880044532003802571114025974714990059643553606780145943692037139826848398902109203315620900431335399413481357988564799437365559987211037510411248671149563571387051790362660480696434426694708496951587102260088287523590680588942883400255719932965510270363562631493109682473721033266542012656254647834148432786257922601196348990697698681553304038028495411227814711846159210428652385010740308460638983570967583583370729937441014003530038287758106445282532530673979143203578455489890887008856596601369854135661884663459763418061917788990939975012492100547882407304897314027470515047051038017907022216281940719880768698241249958015474728182628563018120541413294359316902528355636087895026426130246414798501197114230967285936782767290594214496018350277647642486078177521395397285848244107093338711902264033150742401732173118281529179806213314314283501841051549787546054278404735888019264204903444535554172896897840772883472069350921057257101993999469682511205943088881469035628827815190054031304829574124902529699697487340094586472086725564801791563719141299358069611805798036004116539886419848422697611523485693470389010572149431880103273174382677366101074269344183886942117342593075432399498070455626524170766748041919548367190282461138925658816424858603292049088111973026752173722182344007013720239299645085917357519730453047568042116790748040304292479938528737875790598748814078852742997722526786977872500883487182354721075643379681293527240929504174735518605491948529954002726436345112504376741919167564292569067537457701153561493297779545382793485708998848216253880913493948759106279067813560097861847564031318499575161408522945697014799617230764855655732052784356172542830317859448734648671637705705112552447915830922485629348673972175663879060735485697207798882478662303147352917773040088324959189601462033692400623127943223306843257905071435300376572256855950889872865259861359570224118665434704947997664373523359722489024406091705062910771874463715997491961802395673059703031502112760791974819923344079245420976569667537260922519000009816738275671949486334143681947320107405036481655238038269350986968948069431094765710845811077995819025510570840231387959072694594229904717921144802909220972119797858836500373895813774985994108283463938949937043789806281293603087668901040326985751233815174853251804017150670457723775619054425170505687586573999341486050873891795482131240618669372245062401562578215528680914506097204567073057709255809619914142390223272205426270260639379594912855718112723633581664437143602419227308420147951006375360541287635808690542883735757541194742017141104288556102107843972437078783591709906391377368149891723284993191951503938958732256969369005404212571500955288071918760459181534757383536393115503562513721761485447070717271354851457001254322866751888479572477069405245327318343222437538010425118092222217981907659505011944993435560167541499320671599027946618314125824949430607061732028886853748951358619244570229900340942813001147966497954241842379802800033468606461138598829749966923182560476313076681610269689899981486710335639816025033192223480326322188467464243440759472842860509102290175744879378700127507514231760993872665571729910515068244979825698684913787941868195357696693416988885300517258599381163079057605939081844592818984979464563433955638529434414918653463173629422085857553771848807403399441845142770481738603264701897662229248610125668249168966047936098791089400593803542147091276441208232188332200779141745232499300699669881019770565953399749288192253158570954215759452296433789240094993387216986862974545583441122066258620419578628132042391468149295373016703172847893761233241661908135477294924232367390089190871727657014608452190577975133645330039481984163849542754710931614791439379930700834523363856695125716163437869829316847556626181723232137990807114070317336459006449053587994248866204698263613891892981404209241670520784534671304716458605020956078370526351043334418199545601845482710552817211322139961463131413754502632346371802759234874504966459974557333695647488346920403741528171451615400399712349755022274408930736498400502104470659316750914270874938016981137772171314032405441272693013648954929668869258902400716184812333280576589678128007094342360006171261468767256992967927525348929167799255019796142310771386755187967041398637384937812289705118697030119075610792457039385844003622951440718813495810425869846935922962035159646130700147290628500533921375164823900992690569413094753331819948882556054097538158196076254997563718843829011039946773057218260455972709167521532148667885469089660982561418281944191693383377121405956950512537660688337881122252770232082760162075068168507957564207640235663707125116374912881803304680813727632613211436482115609104553523111566952307916040011235110742110085029130982159070077230679082680767827364542874080102234550676388863315018497748316006943898075217539167273068296857181238723449463408571024964307917904134624609917711099388797143476428666020257720251001272964833977475943184980570317264811022741825891687195216210949651602303939977005643810458443185962550917367403572195896917012285205084866588118546577633063227089953913384599742848951708858504005649508411275114844147483952289421832929374237319369466006957560691903002663350206160847750967759451354375920044808448998877437675288316551314469689069317451970447784085763621737807106621240755713595055373647845707379326898937014941087788981393931803996952230759592747489089722058827902410600288418604824078018105913919525717918451495153724180266017381248365822372926640553778027287199641933754231859617599619831369101426197726393719567880088316502453635694384009206127610535798340654835927558060792993261713742241162622577505964222052177965165497165745591281867439422480398428782561459595514551567573678403357034707155018362578542916293006552568759227183543658148206344336950463834902566674360799202920838089411339583598504057605066813010534293764312899439556483941348387060244042758858379202835185069664353057296245402785252248019544981610091934851138698320419952206264042160933686654364752208767583473170146241626848166580587591871059023373276767154376877586810207586035516368585104493452452201066677235714806926835160765119678927246132498523025393712821949279771566859486152534186531686488446560931685888051459868728687635311557973548091250935988744109780500878695074497636040085654269403172826440439722660586556081446263277042269311162983626561264517999554600769011632052469366425678051509766735906134045377349067432946355187537354609235061982164468207086348320443510349942248500562075273742494399700260542072271333497635642509898917214054389111378722173810814689030008682427734702632184356139320679068243418030655925350063064880689231699050662483732620085130671987200984335059227323114260677306533521689751380075791644089069229659706737389095593541723780570182741234577298876415395951239698740037576907832728818357704688770783284577621147988495972431487773492556453003149013857520312659471286079916365755305538395137189178625948670326463596950832325871687254505201677215419311932463120338132852519404633087028691165493969916518284025332169223717012897435673945668691002064738938419466476420505169005235811052246628763622478470674926966362332987742320740997146157215675752003812466205180847018729981480450264923145360081251233911770401144569232403509227416537921016013995475686984051847900959739477258326529762734252420744538036791394224983782207999183496042029818372710028915527567480882624572285222352249380839650866143737762974075504883073052248666344979590657848821610145840564095470410603458210642042671725175275996722047650058388873781359806892076607425391247323576816103702621525389529054591823119669446769089340166234288241842356701103909265544802196820771951583362981587048829466378259361992215078273828348532946040796826553678695092721495213950950879427899652041537157933627436476748200194891122763761600895045917730878551232544168963588594361859659652603629117046971401766210862367682546253689462701306549188202429165520413115578531072443527594888685799711636809570796049447890702685965183435466853198581265497871914241885158287069295586892562594522506262061577232399288076968302192727238064823396631299579737442482419170484783705951122535141021080380364096642485235198960215190079737470693435925848242647170847769246563886735069864674457106979646101085846705713392286473420334576051168864563329648648225271038159448656429098300510311742692075294624832972323663020062011232301727687418719416482809840459371205650333713852271947734157142758674243507381043743579550241927423670032955919462339829049306608686005626206360226468046809297792603416291070546045384234770652383978484207951974523981466899166419572869358782256296675603291939638484775181277434572145039245262090216308844273386943211159101756276173404873814726332214108181847125192188676763538360308674069053985017310234728670422919568541778231865922596948685766251302346555075081435268350654110903735043333336174334088616387571931413923425933094071572216094640931585308320512119899362776977413722900829324398454188670657085422988887701729275026661668183599167901434308599547171279151592124487575687124007464341272654946931186804452694456238184894826688152466507167287669076716144311766988858448501454655998352493569292063993892315225047755569826075986498586320491797043713034682238740795821902654802260056472086726151503634817163287253253967758090500736651449351479576960883254822509216620708840566279416608448195792452869610545552519199370885184315506595885547434765478428616844139228937879810143824255039031571904908797661300056376259111511212022335164514008494258248661311451637079231726646351252865437240341306354006251704494849913599568312220410316474801371338653487202594359602103793713668783010311102980115125287499491031884945187670487411670710641080274338713054169816215243718960355295578812068633160567812794338266404209222389729057963261512096531547306433328929250187209213714598266721914303976847452005552958150096203926714346017944754570088629643412662829711644784882444008147268501623088255030510825534542894924929922871185088436469426868561919134195568343058331499936572267769738649739661645286519988663761405356398830993218547936514928446977407449539946908430303999175253798275942055540252952997131393532224214722808260147636448488200247141382010975139895856438294560857804029612173455225435024193838956339077363988524175403250473647004249310713621138155932345052383373192538783378261842413973378763206794813727975673757107496854058858479003424867890209217336755290156686484057042434618014450172165244408545738749613729146557863610859263623881032853236229685924728888229200335111063916972782497639161103451391211779012070237824144548846645230515578581448274623705022878749603316474351529768017408000519899798572643858294851565875948539798160685574959271653495920311430584382057089295682088301723249591896018769658064219631209812764871214429668352305286736767357008283408970307138045047206837900305641430177413969449987169243415946973739317840126329168087559725098276665668739419059041128037233725011217870438707405503793629792197969173641012531966790559542540007868510773452935152715239036262593249092668580991990465417927343838538979975057751895773763520863685105739334162925234822486041974778810568581719142419429124565991445350595215906780938575338165455845643928862403610395870285241888039142459381963655727947572779503501768743136306963216408007830785388993610777857353436719186242672502025238054709821853660537430140150286220960067839559699926606545843304908408546453243783060612226800610342924976332417630240385419193382052526165526038744241005419498296538063322302350092809216130661062240413225289176560384724385041485484826138753069416856863837037687193040128015214621167428265878045932623820951242400723628029865295073276161360102953353121019656107220371434180495262716112484496204229092378621342536361034414530909533505804698768947750094613066404821354608863194454926680639930045234367812072253435344468339738711009168488806428700452607858202545685774329677642985460744580747649002301087578886312746499590755589553974857511018972593668680637518511288796715354380266258154479077343053525355796132542917491332001598862795184866485206303650963644730463216232858521979043407553756539213192191464722936052394818995104777595904285442707694660466167453688518102239536127075828044883336739188846819591768811172219087171004530065455208775793459029157774867280741145565449775371792135599737856048604964218035772297218992643218747407299573020205749776715104755597180359898487290010880907916109885278156908579517464494299058069364305269436246252179015764479621586120211229508998904880663479646626456364329106981583485055088080784896303479652990632802969697507284444449158242689598666205926255493966519462231178887588926474540439480303393411911188632383072478508792741900711548620225342450316312833464974862399688755970228836616156165048976925538903924739012940446515290395563382115693996719487677962861036511811026451102461065757324053335959064251732671248180784682260954401444360598954153987557401200079515997036108997088573456178165624570553239395755834931660736236832354100104856899387455402821569611282468627507228118296919020309370495979279518634466279806465235929828406097502058959751766713043082145219749742868133479000901877037445578239614314222855801054854103124925629558064257054185892038327895032058771360599881980266243671490479747186502232113142586154273007234614027821265952051990265616180479147825192919612018227533487638083574971959997907093441734794273577586860525470247422852372455292892978051759318828268003004711511595249382574113321433455023926497517378517999130974021259799261007587684237588777802815327394848755934646890956053552683097798525484847375780610176532469352605837723808988781421605524946817645394611771268317830610197669774932235107858650533860687774000205980564882035002200101273764335989614187553045589585554127082093962421607584927378842979983676755227893083969163798041888566133837571258438401971916730030640505136909764511880715044495976872068128147333464487472601063680705762247455098519356534196917539055676061863375037939312469770318379109016377139279346762670804999137369437451043820781778431313460566931600667858665592563548968702834320855685173969744599524902154041492664768177640926944565768574230526324698029067677275268969635956758554398022396520674952220719400091528093578145056456806994436305978074980491908727270313479607431934151282909229441455181949122410615191330396452342641096366395290070409113858431161468842111680300424298811424274450311470847765771653068219522439967997090641428835330916515051375908997486072487200597990873515659234787728443664394454995560049863646320134214104291246038330735247105158819214011190436739156048871848135604708855532890323237705328658951304061631578462271355118597277076183634698774254002050190163129564512754923299210660959697091981877069202695650362913207095933829001357536232445477786699273632412712566744462988755266360991534751329887267198356569660198582403487808113872936737495630246628072338544386364728800373363098239589994628061658378753240214775665250033088150878478468973795340063009703060340849167617518054874042911006142743875146745909367216342568222992604864620205820031689359786757191119073532307994652398600326194423249642968743057055987756918458402470886014306004723369556947686619950604846997815605573129499875924476323903284822895635765288592776501488150605747689468599741922071074258851830929224238297858455720867072167670253358662192729707702857652171782524897803863898522458071112551565223484948360651684033048480659023646730393930714867412567065556645881647375555267094840272385209994461010998685732051020037638105926618101610172192423378848002514891069417270545392961387432552330393776716370130499561295764958988750651334230163274200331009148848998131687399919966789929803767412422094407658579078841832193404293833305184721739844024205178009705300872132426084991868635207665051370911165015622221400799362491535573984506060295181863970772641917695200533940092609691146795532678533322368247965403097239586126287299212982778052455870253392065483337347208099225249937158135855940873887748346813998926152617308283778497500616505060947160918941212900465639673551425694035078780388228724190551032019009647445704949150597450237319600375295740769162431484011238397253355117067627347013913486228505157598203067932232679563006428712389337518174561596062880970818768433968655594214593022453523319404468405804324789320164701726707666800887173942203315421381442355200906787483669016065238920151598342184773823959482523650976814352858673144779278463240500173061479838622294223137496710151401871638915535300164027981396599788800777753955620333061530188585830809649874156616764886443598160829774738562907299728961300168149780638790431537330361835751655693972177506036476379543239573745946891181226123137817251099192327115508399392902510619248497386107132349970869486578459535184396813577167768216654930382561911275704294410191312368550793991336879960652123651457183062432303710652805651646279165309076982391916900712565180349045511194460439645051718526168631395046047870686955667334590796611383486753631834722681862838260441424707408320309237967314580177273754977064559904461903811943142053510807660070356617527705922661525309394282648013384651340226978106629283101763305650964088211501005556990887111856849439260068769404383164212022444475700803973832973498323565089419883618561403835358027720646066648680030120615777186057949524875899999105001332887729745993833934521190797201161270962868087726610968632988606624572586039979531805985644660580668622489212467047552447388130586943878053874695929344195460696004346277272616284648525107428478864468004073922077414201017556015028978070170758956921226428006900001628893060839999591207293612428202215566176926590877133729059524454358302499538701920305190592485161528269978448274844574924459230740528654501092237317292733375877258862507278414379198305329127761984495065318270239025047496808781659157147628942183562295053255308861317819669552691012445436865101961487489111616859434549346641015696862819500386137417593052334831933415577625298675651101205544451231761620264058758329880863615910500899568046329959095289758248701399827390250396906396506230286452950941770179370328506218492804988650056876752262949612141770883357621866535166729037175699963242661775620303604705892066047567179292117649933741665051307463557521045669310231243535422486046353269318503895162202258034421123324139971731553970571990358103984442430371539862702107419289079093908171861889060830211761148677338922345368636471350351972456245327948263215792088636948774323995847083667733595408001298620725093669078339162153136188016091441565707930519873442287926530339758950825715390180786290609383114365026088730830309017582155873906668661453621060559103449747167532992743981420954587469421215724922980182676370238776866324064457318544488329478110685171386823389275057239959475990281742264679243974485897325630981925982730655024101193111534054086020181956076640428959096556241955038471936143146784566452938116638966280248111167550611445079859853683928685294901418152659288578103944649983780483385734952198462920376396639888960657509673604489980756950897912371770689532294386940685826527932764103873989742645335132203306874884307236596085681520837903649405441905420890508824472406533692398721120735501193028781407955272636377532114328210660760726169076293478299279913132114133265457900589509703718117135764599867483151591899189832255316201023791109962016013338777772466537994179840212337512719014642655615586651167443797441932388643251341229621285642627261031592610910634351169888656198901719441661556715656727819902781686226494272576725764246544254802626049903543888812742001524904208390071021397767169876168721374746447424622311231174264546924665641166107854863029008084432053767241832447886286797750673735425640662661037084521969350837938662077002234586978444761762963004861092976876364573306841483912171876831548620434669040347326687688894488607545704438402055584911011802807407267201070671833125761837940323548335349419947743642257407008644176117956085414266737616679105981462791846130288375696685422556004932544553019262683978354130683119322824916858642379506004280396436095510343046346473709554147745709503262352245268222462486847967478181994397880011743199130281189382143655958112312317458516121847536130514301076933064554265067400233626471772299751237393918546069991411424002583052032838913248485094330332187391975506424191822712653971594754955261190378118438548603380092579930985946712992276719557492524647213371827125431216313492411296047867698197222521858209718277270217234890116912600954567182593876294624216414099539135615290341917653846330312331365354083655665375967495817311460482442789847564896430125113365012731363442804635869834949216272889964937468194256619256476165976973365731509950092339848210128366045402638290831066119782911212305361600888731455347831673358979612586778977150142856338411275548616402825931009797774890670872577777791790186465631764164808273932620156818122492372295877741198383640844377833812206174383683566988224444264258100937114977163424298961337655520796072824720365937744330037408855830683933591759535860712220115105363412236271774576475577533157827093987543893829643910392023763667389094006832099802811631319346570354085352454841873177108019700242039411114951949862322909488164487848545088135255456566832066668106176201611530886850929663202610721591247983583967386457640203563611164744977917475973859067116121061472816198493410728491980028142177526924193155189537857528864603087013937170060969785428678943448783975486065124967049830047068794018665081984766700065329970454084811247946287348086397326393356931092003045002763994372562022245392619898099817746497349349541355032866950665980962160345260221519535930982857615552712427231073443576878592274541950736999060652486100439873049307554782444275395434319577099909263488259897628133238722478991116108341301395897018576529071224252162095313707711625637493128024665919067063503770207514663979353994920875286957133553042163998896350849028694583232879366460608895686686416238958644590496085305118957245120958773477390170185360524965035219932380985966858939509094739951567834646818723771586750761629023297582528303813854594308704029877323469029810472195203941309082031850626958414193971359796292674134163313513091604375859650980580668700489889482499911703953383593866297434146414731921704700587973827610609488853900782282043007405380039216363735088044755916495311656586068686549137800981726110130031128320972586505557552580349361209010691686436239134271746259223188912687784499926579852946849957702671430054167712410709857762719840499591707063236318438936026984895431637344126954209029851608760512319436611659821703844321990715099580897437297587481411668263913047849682352371905930788517655902400796366908108972652802597289352776185479325258414720095491140464354156212854282177636679773685900403082649411599957187082884604417176844950099907811295072319147243253666025323309800021496973718020731568669933603179803934164941063351608210190759986593048002106570013493439297525448668843642922089506045501132533145150799064719052860174438112607778914250049833485930976648528282416001935620001683339946184528159090027895950332155428213854863688475613054415757023369445504026592911872169776729109240272220547307008455399719382605113636474918642476389099048792487140998651644352913679108629003327962536918938464381424958012977679989100243476580419256799769314519885886239008085009942552951971773648166060096982603914746794917371191616716289977262003304415084451234152972435477639564489411989377922347289264522370944634045464498463120987669702433975352089944404829591166081274227470988673219681195344448640328865779414340241390564036874081922917671861293344098442587383998910204814827600197626306010979695019202223457873925423216229143153094367411016474487808171902580946389854449117689738487438213095267687197356457291671344833557626850873901907971290798918068957284730910417919714244154945851584970037950166990836933187546511955801927465124110540464880225141555302938465003011961502627577793162006065732137819971253943251383269664527793668842723606042443961845493659011114709703879248303356234804213035140282025693928497728048440190484734462089080893134450846412768315750605045615555810719374692562352133647832790245061092239117804961256398764897515654662747164533586260932487330988257987382718755112215926206888331899961893248106443870858025001898176397260663320719249739407809104384001437687017127635883959518330981296461280352772315595225388393785754640221637276511688951260071369819736482130800565555310148033185057268928071670598704485092982535342681284016367580733380834263462196116848432695812288570640745781031358377447713312954788546510905164222792994912457744954439147788714710982315700982101318757178097621314814462335736312652056087651320191434668298708277348647829031868888815892007320336774512070638784035038243449070127115854764584759029633614551254462188429157715339109110646839018263216454062197400859366801513704472936421083562770794221737557264530008477454369550052565148193351274139961752547333598080649443842853850989133203806145734765635356236008557154380079392443078894237952837969955189272053685417849652078958561959401625688146055859628671221367407639907024509479939126935758594331144021685804211726953103411949281423268900527072858282716115955751037971231004760848170319067110533615595614671766906951705869226180673048443052394747113061950967620183563567463123177927662319392469613392858734941664916198596056689143488007495174277215212457664492024918055415565758236643734822794825815668591439999336743027795879823852869146832752481550777418135193905867286728143887672190849290049246625940495300905458818614813918524984944255698695118730117471537722191691748641040761179291143641089692073697778161382313318735620250316502694999339180886636484166460154522437953654433345761186190142344306006729034171936820589297097492364257157649470545107867271907698741973973247433416843808952060117590047024418810247807983890974335317879062031388904988244723072404676065705015437873717353643633288644675029406995061263327925315212223782006149197044651498723598598988584752492712305479511373901446565742991465389824859541425429311557271351607485003661064530589342366242328118910148203027867397569109266450078044497660552859902140732659943329936409485814492453426005208122170631610303257279648424622760916865328080457525097494099307522169692304000456516014646020498340552562785395468968982184553348095454519560602748438980154828943494675646521374738232876764927528693594442762693255858378881203764645522836315600126482097581032376854953730063062018427813029813673454371095805525630470323328140550013930714682614711792295783746375637354674348468049131360739134254456927406761406622496711707132811052432483549520293088890184121517110409421714355692568061587779448302445564610783192171310856217204789482945841285955299411403352336307795414690400217960094355474831463584084617211592865413761272717957199066217973998811239545822945572023934645597934263520717602284667183922358842471376090457942582040767572998655158983100672105118277175513412865395893464550841187409230777355991834651662724867184223768125554623502883891746565238404219892791676842463623939428151596431674449171624813943954089837046987242982892794229395680005342762307646267780140593907161441212332979011756615008464078222172144902912740375254622874038717215688948491227818204598483371343018275900125426132304543581795571147186222420150387231117097188942589926091390928047160348854824825936897052886487799640137862686748572490714205900671384100410513224261825183525151473576986772734013705271893181703767557447591904113455592590482686308107867703915156747679712363983370086689940485532094396583966862006644725603155763224710539870736374898589795642239724353342034984971554276558100236363503996532085117214261766500330891097309126186525322549461246228275646980291150770978749777499790514158965712631543663837773631135730095054876834391943946807130817616370886468163118760999566086356399936495678269029675563282746345007055392903671444489432742044281074313542080374822794380729685938065158622818226129341203904393856671631506598796872541281041015429481753094310299302654219326844600411954355744565533795363176828736743171431913293855135635758376053858322629849425945884448531331563245210832240523854370679036407184973215541858823536029702457424387586239504207769423818670188959217733318413249418750440127849605126286831286141655322905953876181889358359915399689737213451741215492248967808888530647691484827061720473606571198610379624116063320725536989503444053390692259866187527784512836538237860883620606662331700414873307956285871554951037981724719420179645266614088287396071229510706750925598634599018186176188880656483094021339697772968352592875498741868820225390599728316710434788605892882537610084311301048758346931556025910244477766413381504439279775347562667877337752001340727761230292875221918187826376269812526030954313939338194141592518312770199701436139733910114670400079704216304172471011226132914990061045640720409893783299432075367694021175191799302750285327677696935205484815806664964699226774771174033505008739403751410667537557210791828648336152541433497664370876171744603304084874470410823889476613443817733127338710725706998739808153910170422817106477430126488983217570494781265830395756483981771071931163361858486662480177294357635896947296476094723760293320046021620794912886060314955205195406599168655539021729049356860683927832707543524260696370050230103168530450179292231920181731275141669675393112881996534969214502774002905667742065135510906794000816206414581846298016317780153680989024128841792121836909694737865152126689695079517006316232028698828979418170137920956539675851708964287803072946206184357550932797446202565973671657125590485903634323233831522941480418441506392111433252555370144164819593763341456475250059235517908297505111329189728828109672103303632277389273291842923599918641409259989340098447164269819340196314921796245104567374739410367958707375703068481766798422929186304325451296761099075504045558772829798751273740770614609177215518165319445132883165342684388724576028333396798190990610176628264388160813061323219028788925823139883161135826250441821294992514302085375134555883232391887369649186889060955003670314502105694520379696422549994829168182857679362620726586348691694739105678725687314607927713280375316710117991009728813979402202575266286840816588758200978154313551478482533796007654940051954797894038653914509780969189030735673838946121773554740172169893402106187435353640812828464133743332761349521908728108763208279915482640949983683462990453935469623545498055859480112582871628878862724096191610520844865668989482930907843115431977723037734153849844460315943795776588746488672599279271219456439968379800638391212045226369471038428756656180128577480358368845259169920870864225201215317572184888961437624660637211386698475380583642126431550288110142749611523963341476217906023976169045502563793709189373228837542953217579980383674754632015272218201558040637924052524290057229187457023445910365148518122999874227662310429669129950228077865379782151250653220598475815191856314571039520795202139839731750108866826580586116650854629553274622041220580407054979162545794669290867723970175587474825834739755049860819042615319581060874898043584755455812035405830584429663469852150474788830497345985047731857982873440883187366712204586500325468999947992396287264864993158885538633242924753572226931311998017345021242505934878977194752253595137985965986038604836882073793586791740223716286943782236491544624818213819296706693007225447931719247636865829318808170460461335339509659655376458560406922061098320067826797988916913301309075806668037601518790563805174838493847256297079294422280529228314571132762807523739174081799690944024956529629812975007846010075811311486787352993159017125248428750020520885265766386592363854968108189960535558565905014275831529431085073290914179053123710319603004566262862789719266783585426491502951561878347740289924381479711723062563972535369124968101498512865926001722567250518060364536032749895493289692047199404947293672102315820061493664170791582021082855789759143534547726398192272473059859901351129654992050629851149902398614571770488918967316192436447173202695765019355899505363759029651025086946158011296666756175404400761190730975132482618983619334624800763145373992310900361969008359404357146273408052497120689055686878194262589393735651004640210578404344954280378756295495511275940732564017574462612036199115617169181547311145170245959397631533158534686046811563310956647958346393495779379281340504631255638633023168584659479927737390722583943731565172446999402871939849246825765679123073014947513567777422885248049683008428935995788371364998397952381089097534021111342732620714146788790665363824110061094813019477102728053396522342367133594503055545955433566970086382378999191202149158958974969801367985700098656242629015547131325877291022720351322500139763475409097091016053157402109514930041507105925417804826796536526139286481839092376460727071123873511424515380966322959269803200617813185304686372607133641486355650921092932889079208193407219560419526527245709029484087273605126416227489738238896841206948647335896486676562167034414708560316359654608535315555510361004803935620745799268158843297769470751578594157575261087014090456199357179778685831789547919394605876060872517398140726672818300136093201568517491609756373964318634690211335217858275199034843461375441955049113487183677567735072902814899985436935715133726664238882939300752736964960024751275582813273001225995217842832636550462784079984457566630925858420034391636617953793053818987656764556725291801630063130774984721038014377471674751614825793233547315205810845032671214312692123668525097050241514125520401572752085642001480881901083028274440377050616915042253307116437902060567859382607845428529469613445398887729209432341287234341468273585176669251203484785460579719714148740898133844884670575294523560638504995303669470063288909200830102919385301855829148727993111506146554938156639600355517571207043912158681405428452968827333151392662626642525571142621877430523090975890552947291865758239407284561304435607995244722953841749710211203769514164697273648323097184043429742333313540265423852649375328119920538364152967766220540709301844629464998510543116872469060556482373321342022435069820755821261165117201444073289702036926734115687568017479894630032973476438632860505713871437059289072426258146616663657563732135949155485688039039627201305856639083145752674235075721057037244844805934767463006725525245585458673790318092988457843475319290270954997643406449004075299949213753083060898792017430732189937240359308815196566702207986598504345878579033133274837209085112193771274736278498767536549510623782715983691280797715316782406397392358971753666388077175480391043015972700601205259293734199954004961786407469480521741737872889935253859962377929009125979343019586673938833954521389034930971268200025812049883736617520417220926409439359481873127618017873258878729344603965156101475716220897038448119630493309516274732603387912428786833327544530256927879574179260669245744524714611928626963170651935782063933256823093660925022577911061923584125433732460929739788179135425050485788923984688306764639919960681430476273231167807173878245515636586390233865747606294930959482728654211560267856288682023194629146601442188867542779849319376559114076478891602032120557830250564273842337827709683133827787185397033461186402654880211177102284946641237481654273808144078879370360354446646306404239839662806189052785288284189163384557140795560086272742753758374108550478793321471003428847659166268984159478628123694526772623097352681804777041626775614992308672047850426643893592701860882258336888089023127357370893215123629791151517357130822917391400479304722975607919025196324539582795511120718317865621743819438792015836002362504355872895537822440233729554043795175990244413719596198713899007528031943395781899839037988116991774860882363161766797144169887169748847512306736503516723812004250774450147571333851902805945322994180996698172745653931965820896497857386108457283721771536866911620318925719107902285491300416491684596070772580660517014990681359392576514334970942334084513670220602288368166669452245771171099827078542311370621558253950022971938513207810662416870547893656547783891992865289188036114431200578879740120266653685888739985629434674273167216937541010059980077721880476248514334168843021749227620425947923556551041097434802602997908435215955501168063155269660161587935772806933689092188492816139682817541710815338092915788273364835127288410189604816287345677606165689690416612976839714575462665170750774716692400085740134715798204094761170081242034530380154653264904062416953718124847033056271779188231584777776158240592780266284560783398692736481727128889909161121734316997549844355461428277507516326138305851449063791092940937636936553947666752647273110342694733463996082382661558468770106560810941737992096402683879365880425505671184774630921880414248992504419468167442669359902479275283656904755184819745185353789061858542547101658931406305897998578372901543895146985364890079031707119631435476841041018121813838617546721670451109700943003033430822327946366057821899801632349902223688661345213438437378258996774754876955990037855297465199167499747966668967789717312047525095098580485615891558901594723389569570380925220081527342074340213430016090040089188004250840622959726348139624724402267111119603678807301025943055619606576853499740686597516338308859425831518380251090547686233680641071938611268989015297210314783705905357311694539763682363771078356358927560903268417510360289038426594353029523765593411438464521713135286658941445560902745561797845452773683246299696424960045572016741688261758694010183147365926467166633722053312917477078283442136378521050087110635891199139558457818092884286227365627984226930732002561834933222958982529662532363390937850279567609226342055797379341444550181492135767519326907340966427310966703123974009181775674575341736478490056940665387887079627245906976987092608835656687685241343010412731474292899891096816658817309430766505534507835094562396403887312790612168619606782193932435771803417029815792968281308632677851940994533742682210432183523085617340895788002406757541924201280910251604525502333196188872389260441412687991860896640033949224179962789578755850320152015829440940156403104212025783642531118111342971184443924021913268764102610890270417249113561347522018415342943570096796476403270230703175557543596861752533670364750256525297698875898691360198849645791658823509300918931034042374093194071492897617262485997967704983892711679315116689083233561829383420612302110386520115847659023190907917039667187935731752988593436039345128459774484317926785581764957663650808651478070009573717935219509552609149979740682093172461438563782143743727358112458035859496348112636056783335360811572162767229534785130998023492528481480256538420012285211417426030805259868049468938311091968870450721212477992559628338862623952244218598759484976739888744222515045277359232265591738014288616947569620327408154413515143418093480541427805911875517013252239932823471423211471214746396188822271437667293502629575589016542189335909611756330662213379942035530708757851724006964614354579910180792576138076468466725731037733581884840128814858917707239969882726093002352654817933516597028663555744949441292374482874473500599958609077804507030261588654305411944788866137078543247089083465893471148074609960869199974133674707592184735981855909068309062366858232059332992957965915183331009531558683608961936983968360332103230892867872325469974191468519726009539981551419670583600552901673225896425264978170844579175914447453486105082946772027459825381817127542705021556518438634623918083258355925678715236107758292345815263832615935441736646803058598623808221415211141850609875877517565052322545204421238482673658106699797225921175484057493256736398175789523599590521371052362177206793038933441742944206627876711494296405390276950320140402043682858462590219695311507465003357342386302410025306420997397887265540763609252248682152519468368261025039905541223356203671976961236680573889062266551474504144333305890303859615444578562270376096628710530655330293411773047390345309616598271306020874440198463627499634707353531249147543010015465059684589645743290187766775723475811911886236144430030432040199828797710933836107955016240009786071124417007776662377746361459034343165040491502681686088766300482682520177506084873888797471875945150835313864865324534661635878360281808587476204653255502756998912155868656337171157173409230986386226110363572143169656040294571635512046687032393484398936173586405732600403372631275238811091927960974608616279804108512910271527955968659146234143423567624010865777972079168280879486523254816034465207897001096956453919453976598551324314131564626102597459351354453179792781255987812256213677307953616099595661254116356691005538461491592948975281015583061704129528732155169198894900380530462975891819076709241501951825047209999531717518845812926946025655886146159806949251306910503854581045641803079749856074629239587074185910135476931301441880925755858816428122511925681035105787886447188535046893895859869151587136500440678518563815831800836465060174492784337268393288900135375734534320207542705184695778591329533752426163229788100966403026990125448910577985456139143801417335431831962194162610141036469794709480299048417193714662814927063875554018622489344703417897351855840164284356444299142404615462179111862046898256449060497309524762675661328800743423669320341891411291838010254108004100177618821189068847756018342306336708647537876299006427526201621940441615186867675689956090539338247408323442067139539016031808143863230710060366648812284437639748549358532263335301080634780650254389663320317780837576906587363888863572872825153468855745055357690620018023708676267626694855100560384163936093851102276547676932741100956866202540695826893160067706097931475197323104566070332314251118210448570864762740206174090010082425435242464985920428619690053841231557185315416232373768388355269687901305197757106041829813120749768619295060686812932133497020197982604991732812216318973189706862735615186467364792774705273543163910968243371490503509024787197669876782611689962915778098927386978289114316344437620627030716702386578232707581033836533232607630583543265654518438336787637458176447566741951204587799727575575071616390716181792445528930747206207776905970537167984260615167431506081540372046240110141440775553913988836084076972515471413549026395624604668448910109995231013904430290496655027158621763996091600741886258928597633971238217948380577979268372449903706729545440403431661836232051480549877616240534708809661275234319905222739747147492660084347882602497079519503294500997152471243511514562592809763173641958623515449453318685948516775181131356169930074132678375852891574959772152285642243561200634099207817781441628255862022629187484547765603082835198609726269586133589982387849887122889106515454813546882353608663203272898387436401184712354784557274371399626733145336003957683764865614128942176257909073325847357817098454568335876704384750608526839831930728269300024981014558054572027624379961912383684507691844521886726459036618986541057083606931930807168135047192704506043418346606709120497981708765558305943484418614380994755537262322207513653400824670807765885498354446001905497418105909381346386324839206689303340274233489498706878997321132181742679808173114824432912503930057316839274063019076673837214441673582694281012842021838321530152755385030149809553766272490306008222083663695737201886858209923629418637116817195890111566099771959730749552529645028111832941530974546339468210040817238396627231339473748039711235931420391910338914566180566131309051782861169066272971681948920400916629246753516723057748623205498183178542825438195390634016630627153955603623824727264765664243787552642966394873088767986238300270229357052816658479645009829237832955784811458345924611407506569276798302638464643849085735867742660984174097154569889504020708078051907175506631790485695181441212560297581189530153188125862969655007354484942769002050476195348027696295360908564736245070114507367843277576567751680084776982449780693463480409216267855440416028920342204761663966548839267547822577049636738422484990793579879327709137851210220073451106760957214465044953251490637553391645958880975778181121375541916748128337018146863419684479152289212982404180374126350502935589455025798972547445038830242741304634034587012807725887877230006361276764331165198263140170983256318911824016265253792485280226028433201982954053136315500419123552058736255740471226968665756118114503823520734894895275788407122243339544871583451238811732277649608295737911897321677422480366241763440513817944592099687995499758540753835547297528370689415746940972272520978103952729898021996813758720761499117284844726652814184249023583725770602582067495488598885545520144652089653702489267021494218928908110615070993756929321728784737566695914041450047549291056329477189184675460822135733973006850398342017625875370740649139876790494212836665776744401648854508838518076940364393130561749127577379001287508241119774669393609455488112550180037615358242818162799988723850379714425347000089808561294727386985211944311967747616215666610109545283842220266068749789389734511577006278262914429197270444250423454042691324698467604576687536075956047852983597344996980309797971485841211043824869427693041719179989372065690766527396510232398073413806306103191248131751598236002168554783114773593152010873104897604756270158650856564986172822393225546180385722496869046301036439134186705104994061316364381553055395495176710131939046322732417692791660635787093960008791753680799704248683937928656314148574191951817967465176314687772591825408191722680353686707542291816968507201787960166822041682407945352591233214543063266086001626038753606037503806598131177603929972302784294475730488790222379469965372263623134421166166251365270736358890477617878254316839655718470862591631493600110457632734418740982309716796845955399669010466647126497120171866031133943562781460426307528980480495694491298851647722502755783645490501577461359258478491687026147282847731310867083893691323001682540126441232719621198076404802342841874447966837300770153574577326331676688952525711957461296964954314415520006841781084827840146254840363675718319307264735819510512826952963982477375599787603247293043411896749534347244876902773191621307240033298767339415989171646752211238066082127083503021366465400424622286207777229570164111929893978373827512896446530010814052334716431818869308050907100876234822101460428818230215372488862886630872181087447034699461557981117810155080828971991027055278843866825586609724670158536074788335770432925093568901602858239646163954692135473560048980119363347562587217845476019408456417110971172907559002290152929559798448261713971528614546044826130225981729446017272729967933787167756565920338026844035110565749066371491124113279731804649394772546959596314856828995912378659088038206539918353641927449137752123863384566776323525766150069215664410939379938434288495721629767930801345907417287943817005270103194351941350356266370336354361726257826203772919029023266963307741221394376802004033341179775678414013320221976185022055427560497101599444454131695648835445986807424543688308382519709160625386950188761158814596362112935902179203672180801477878701288414708546820739205182450426749989537763858920088873996555891615038456865079317950182673980918736660253316047094258338850203938421551515608783067764830856778197231422312131411783088260095027222207940766024168122309277265467098437339051142037533743368477169704084179109246610994158132499993971451839310734553255803764303686566338188715204311596772714977847700434403900170090212357437656675252598856437120638332176112170889129952916562449058065683991985267410073493087224090255215693329865125658625107568673465159297435142263106372568012465110761791373207676986409146834770920149959873839340178925143262025101571402317556977227737041935713532764804101371264398279954282365970351395125170235924388523548454749000333129595250682352354635198329494483698465614964684087209838336896347453101050028297448674885546668431290771224931801064775931411216812365219471995904075710232453101537037050336889049289789495039033241625984063496664821460905898631510585244077693707078396734128062402797191434923592108992355817358007525555256474405746121076045554386828234916331848612693273198821826301245801672076603484034005290050780940244019245251132966596437551689467047560586575650801792640073543000160458350105897580034345256657935702099948779648432000570161832911039627266561324366468081582759938608794912144238955860154162957995752793677449041690510899146679242614753910270423009430111554156496033127595858951654799119579657585814973173052163748831761737432141791857251546322460445442320790619662291737124165908281797308625937700198238181670493377893244755281391036616529815999325214768913965487499319981657971109198823464386248765317451336904309069843221036600569849302104811499657724846729650133690401933544280343569148378361526070227697457508233453354764988323101277453252647742248298085378475484386953371579738076010518786029471271808802063802894244245722734790165705478191317905723735722538087644032266414308035833149761267508313761643624109067117407334484751736563394301994662811929734405959813502386335316665458356803672089999034087338297063236255927495981864555677774396087257559572772879697013179224593933147932043620341923848749819043620264572716801647242978842498672714701150194334366528888085324483644266500869799748687393282727292961474776199543689227346950969939913281769876105349175205990689592330297475517144595269598461373965848475368036096460840985168309972759313426678226556607837482204470342413868417325683533759250456406557599960299813365328188397894840066940738931339558428397365505934250020876976903321668668041346123707498823181803792932284939597849183388804190095926302089044109154509891340674472542993800070854321943047524932022479506876903716522416022554669525792136797732830723274917923435130140480234671625282036504739556656515421352792448388359735930406034204322944630761597531145274601825269394376289561621025973853165534588280977980484613473690811704120431506623714592143349375955388978633683132591367197626498491258860275778872291428137451773229033159151512918198122365111286777499777621517598983212057394272822836315340901830704428295387820844558193456348419231082523906098688247749518230943460681401382306880140283964428987423999445295513981320365639861493741452581042214963954040359765245344129045038824509428051632512990546905588256824641506898396978599207037055276572264330754361150984909831757699844352644528391596529505187607339961324051201787613803987562886071180931580570959471777578171381384371820221195515421008633167845416496116754667910836446243124620292171364907188485419038679473546426997023536374774501780280863695099308417086915070975551984241818318512504567395237604593995122370694666304706459742768632923118793258049675066829923521302708192106016487349271528462369610498536477143566581279703366719435516504399716779333392877529841430236412366740128737934238071041320271364105705588727747698062591625278251922905468222565887888386893657606579286525129005947807709584625862612506640276879523971780605573196608684268661107808565107873306931512933439043581031871043005475925309419507273294269951370773414855290113799185550460179844280880695974357944812366599424052886653051490644272575622491036523290240201038233371120559091971604139654308640213024803569411185515877652417773778283317228815641558563566699901835106634667910055434660288590374595752672610608626130738975025713918644554253169669154104290679887812104835344004003156301118668431259610992267665674761815276828513170498723943687011707513224678574647579710584479298176506475510705783969269741116961859980505108178428392202682467771371920964283728633687181652868727513908245782588559496760582276540673683326990822636736307158519738325340651295972992569621427592800245233745069067242116281471769727800473353838252629940608495159618421078139727547922967256806925597622292116787343017006006688762494380935023802817900300138302202582554645380123955729767670469128529299829298904499189745048894141459774210711343522416036953293259812094447359465982502448669484205235644133045979737710627096297747658656384345810685904233763214815585214564178471670920210831293321157990724043144737894990531424094911853284655695310716587761041067397276775810588539820507987177089545108607212675792296108963802375870094433969932070583562756752013284164577155457044149673146087176730206919812647094000765827579327860019386973163458523626716092909067644730345316628568711751657222262092926625421815362549177775457829363368471535696013442490956614793783946871912152632139467734355712784431879856490465584614295966954699888821821009255625745506583592884631561718757638381647313795108354878551483262095031959378158526980732034938073535040027854407232392082429338135335579073817979049075040434403738406498302166520001469002834891208805671648601315915279187896927627183055365341924207106308525979952529342750012630228952199376558912648560921424749711107918672558049349222647152737966824670711326601148929395557604115885318400324114053022703981791700950912685004891361660280668918464373585214827359019056229147439494048360392113330840300043621697484819834962036858562932141280751144703635417143683635028189603794584018582306703283874851965603268337745861223067318707559586360398881045043750016816451163788177794982780028661335085094142322424622041200122631994634982718426447341952543394207770054233208907048215529442502880768664085780494026810185229901437589451192549038296410068884476153009976422509922662390520280616758442266443551776545607372074952245929209579305238677062627146938019271376692373917906777082744638294463819737467601802891343420749230401255234890653973947153533285368051208871708310416040991375021329570659247788135491617257317050139151691525719056900117396560409439688574635505255858037496634247062393909914793903884628726320565855600617563515195175022833733537339195322322377004666701617334797362639363936514978188659040704910264499886275401343829769006165888958632606248628144698609275062973576033130968383666219371204202304672942290090492207477990521893904327239163515767670509998236129824490476984900834478095946622580923444086282973911388013752833220708355322325428964890432814815874125536366952647217488672508143597054471951699906066197158350903119119732056928618044070196527209267407948549261061968413966982821925009395205829541955841459847195246670147813906715355478245516359223964865417860587481211643711226846685746158009491307830539497788486114228867726133488824536445821909658084928800781458417346180845735879173993598013357257951222966765488722907829298904460166242682531666733290877067974768404246205344794079302747619090117946714491715739763811676668764378541098409498644383380045914222335914062306938235008319525330096034028016449937451188333352610644044697926242454769086256116033524081546050473027298280169942488509798378458316692344617408601943659250069861382300606970765205318419231614456566397073241137400158684846295817489111174991318607577144733181020575936226741544976942439200041089527537982445246981144456559606213219476646062193742798322246726931595104526142531853000884158531930122232541606676576599017207251055364038153216181947273443395364979083885293030575792343142040403533346997300186537551315392152402380857065798882663680245752471333171960366936676796747140591516025245438792421553029364042661117987231833168173145982295559587024337932068308214211472111984418548637692931394120129716862090602390777981343625425426019242710981318499975861642645525604483564575221419634740513637790835393311065158144148621330720092153268494166613420671660156288559317353074123303750139791889396229732300204783799247281888822541251152199592869371810560257364394735906004675488750431287634896397621529204387687201893895146873979752017744081557641220505008667560901628159935962604494183381655881452317378373496079805524578433687707960812840553088129407130288395601990752149274096871539273483847642947638997056515379063990951602724629407598862271592137976270828265880078379869280716700134403236610297430658294673336611562450988572051455534176566748197764317176371359051086522875415540611379728383480124488728659548069993186351634864406847248419069944604605566714686872327076224008215730117121701540489229561903484340789088183716399838489942848279125665045577883212954674979277260905117061573709945280021462903897775149911568580425561730058248425632927112990847096482265294221014291531699821485864116392070046505277856938275352426229638506681744948313693638872328498018777182985950342965779123387875612144257836276878734426845400560073436696981008071221778960247497022635097097702434725659962736282306366978125447537759368758416846194490303680146989756666093011174987607128373769481797125531006249893230986860330157749532711813497911666497377928008513255448049950489787548593044744286154876791496664812283847453883631969232214198158382178726812039012039229174471571196051791321247513458485121341576442437888150896623657074626938736264138936085092633537321295221648931342564637830817681902789579485369021778378237879837879217515403487765668640291580639012811935064831004607881794919266774641513511777681475241313151247221782356723441482697968857679175359247933356312284402647879832315132319096166269293303532388403960687197704334513570444397523483202431851449699419236055825086232446143568613490565227109021761722958218384400257879221270905227682634238813612593630295563083974067042868601525543983148932254608851054849593872070162691386108710888465486295224420047055635676957290464841753850870796016833260613655404289191561699987303413345051468653669809326311015460994463804779963358178840033722772953391318362056031493878274203415627322181981487152253421929383009673268696496559665359802854904532425286499552902531809286831103623153854069675297198067176401433918418024043184779186268197521197067108808050504741148405752728901324974203799782276501119089509103120139589547830499040432733422249800846881348750280896314376123987190611549351481558509245352047499549538931557935906339378982221195253417599906415181329958610180549747402726216778850134249833126921750706533890931822296736019741411010582904202787447165674042616787762229553203250584481578209895575305079018960213861646003547381750458659119539995606027104534988380898450294733581999167545832494839444107866823613177110996832617995301724814982194445920108315772608808031330926785437195988912254178484258941466508112651473491986936261020899577791203640190559817213170117911978797761593405442092039310674546915680446787963238573962322710957316058868855750402992537531386394799290905218396491184497859803982633251862500060737479961853192119887270690256476442781453854210759924104027091677257687095108684872575968440428118765341017419294938557532432618734597743713778648552598288260840072589433766311895149108687051365721050845309061601169377998478718629658943996312458642210694136115419794733931924355226976141871338591700860241940943449801046779055631270458250181972466664787452158101287234603179472334013433614755051542397036728247952339797619831695741953323860235660833614767786257302275029794222583396217969664537272072350887087020274329266016825564773918007651012956573675752219782399943459529333546181041715790023956302037943845951189561726899010878647225504840309419417896019560322660562864784271658147860209695372604139180999631364038733997895236140883886900705030180530126423785178103749973691480886262873008360650583756363928119226494955602490916357151617302662189786779576084897099140924456657836007734624916964754223397162373979417234656478589193462901916913392048619807417096033412439873685116528688554426322219960063028770342877442143490498797271080007409191645533851269297834124307345264510583329156819156928150798518256708753567659707553597582593185734188825781143958628046017054531729773916603676412804630247091656762561720806516557998574766881687311743014993906492203054713898406996090399001236709201120788427379927650763858106928068966218301584075447361399210544788358396021046303603910219610475095478773366309990607329833730916186036977760981762232759260153329490884626590589596491072329020366827704130240217583237736864187238366250667528918227838743070623074959628938644405933117519497473552129090098312342252897040124665284194811568825920718903819704181925071234718647950296625668202840358256926291356008234640525585049947220480384496513537684434235062864232320560193728000646187366458922445285438245340715029083315258545998926062968909474692615391070529467358693469716346220037919710445483213301134424530630505002816664231837087453454984392121621019931641481894722310188982644536363650936942932581340152572251330887651904065410046677238599731772415680888275613521383689847240197958113404879934158060214432628948995818574787462212070390111474587559504827566966110053015190252353897857971217719327005354931784212349362240438564214520368788988776049767430499539683995904235082864296236328896243477261091575536470004614384878354167078934325028350906718905131744988896071033008195212153512074812517336230439963290297668306255991003951571864657965116273880488935498789857427030383695352792864422140301230047953624808963257119421445815908812920513674993812461340396737624321159024822472206852015663106898315853159340146404127612557679009613531833632697101893018449281955401651295479634054229304544955881954291624462172504279723607433449874580194120441088926926953316511052184472406353573931591653713774335105434438923225516611962071888642649202029304059798689959266632517630728500354522269505384804859462808982439753294918357023913726055641990540105185535348768896328466831599932548540614524948537918765287389401526641753281354103454831535356225083350989486618575882838390813915516162167040551035082608199501062452786359356272711581310536834247054204090568329452982860750726777081017367205456618327233517636695302938052576518525860966988474334347991053808313870740722869589003853591666261200575074059107599371226838815175511143359407721904232231203832414897480996932546800842986357877805071612503033082687636654615407413820555151316861645573489642333515008095964534818025273087047229487081483922634950830683904288075417133545265057250090322075699745988317059274811931044346696584157361823979260726731503828066580820827289406390908366848389271680675059250123026076379671221629624328681967619422333205290629388174988710939608123783091229129081774952761050881177339657467969703610082845374531396941451275603620561326707341351345867064630536913216142686087977502423160265555346583894087177296525136131374226611706179991346731754487334243661918241208020358678065341508513304580900581166122962786905153962643280147479195277888321770548178635604484643555047742023997730259316898518639523133902107479533636209007876273573468651006242751656282008544316188223546325592170003638484622634674374453661377562351564475282483889509352620850097280636410110361513818209697646521484773289696558293022071530788211086270574358234598182295845253760977167119639574139073898943061772608440526286727176404661866665122240037573646666989322938357146516142626844416204878953327652054086130627789426893497801664562387368171652859126038110900806008553203920959391568881069554127018277623302709662600200574830530337573920295651742019221318385639358177822110198108301423134808325149933482702804988554917663778135190074334614037435610522192244374498772911811672596396708536308847218186976107914548705934245362413156651607266521311898864192543924991710542514598876947792897537892923487485035157932883738941628268011073372465916127886552051549850202766358423200115852104607983179238381892789558875618553478557261108787393198209233582031611949342597392010003611692344019320070006623325469013592271231061890506962341152406383890887609648359815507255310166685592310669762349581557392900321103254212422221845599385626630966278586712150163987634058248701468249046351316973986872167630464039068789961827628915530901525351000534674014962648783237056141146623283606725394444063523753584993159442577387658388602041007145933180114869334718486237136172357130545261226169587474161088150018467400605467126541157380414793130109784282430102985914876194563813379352643908335583923107574266813133523377888288764853029059130076287502061187669136737907361066476967199510355407957763336350051069502590378594920794378938988838754194756185383825272396195116606594673453765665639809602653118491198847439430969966554951390914195164688961778487392202288925396086725782806726846422954255257727326184504681413382934074639486315916010670702479952962516058452127949579657704099579715831661802418827620239489042584959578824427994266755910195309234426383010016517847797203142212048286911623551660578920141453670625581032606052262727685923758324793274319751057792779821225316594386276759571136193154910344486426341249720995756886051749530525157668029477855895691256849556111593895012179823056006084593150824223335964566614592675320021372740858507236528111515581649278049301321096465719398626342815007746183943143067083260608799935705179476793972423362807078095728192887219705683326542159030781171342646739012355255492963713359258763083228543785796397723870486690865155206478766555792175673634647505329544225548518730577595949487263811440569873985543851795825938678315404764464151026113871209662661326103395966991461721241387733689809625133003247053878626959123177789010127059180257815975145785504082103607166863329561610989456468048754754872104233137048271013196444585397727129109114207871527779378109959876706885439570706116000587927178082888956566245318695824138804308222830510798237320646505200131987491309955931272859134046142372704643407379066986045671221217634751601579602612526635186378139401313060247461954898658792776453147712958720407274587036579021502447772398412247440444173319864087435948551445285268065574357625065304718271734840833808684168544105348848800417227615307755933155951236197337719490251492821810920503469384920810852180187029742084397214169583149411981809489316587703457060113785807998320580082533947064222182326777132082181776893932264238146405558731197183611249341902180887192720252904347908094434318284656157510089107823095053533820145705741422157164650092715840363417040022058522418951971515124500476677896462702033414890738655191616667553406093633047546326878257157253589689595701327657193843561802691910850905459066067992137432812551321594813070741025359988214013378391764043763206268270677487699999504356046642935020905360456220641109489364633200970814059360917700310587721234832816148706565211692426360283487413208414946637537933726842982107596784552798765536279750785133612760520685089703979062431161793537356901823825780893076659523528469288489437638646426910922149043507458799487796249236119751668127158486344668968176358469746234264982747644336139326678114947107374185235022034483476746346459677615465692971768856391038851855446852275222303589296476976729727869588359962020521707245580184496306919197869152938345192477767031748711234510223369699299172603319659556479538007093631839515891380468800425329468157773727168191899203819211724646123362422264986135071009053506670346767839382568346463277335909297483208300181699369013785945786887356700392624472626244982237205205884666680916294173361764510355352722159791549116255751485809416109683260049243007536957203504016104092819189500200057779928106736454641119716569942873401079710629397641468582370451201332971930188196781674999945364769609955701433755242735993242200553220886641343295262308017611253915593001919616806856976876303497590130242950690780345712191891658283121826092604906095567614372283885367756392657449864303346226612837025036387339468172766797083914264495207888409769098761758236648619056838274782044934900314719988778379835497586872450976801839322731674511525046069539864045911376865367690779752362428296393066571043368784454373898565148510922033837869340749355272552850778878822844275637795156205479370813017851310016864124010130763093240712019538895331368595092709845123163691794171263626337151171894661914883205240918558703243090205051147702955318373377782669175614646157966111504068559075161453436502263925296254064481303460307980480053732520312280317614088556051004503158805544817222866762044296106492220528145444803020707566714987528817543037188156065209317846422584003371736657455221399451546061797431908210630904316226081456461950333781228683571015392109322672383829458462064483528711226144030454273764978563250682888859122996906253143154840632849901231828989352330902156378196649713535409161640944914905709758574430530246338089752056676614851500931202749879223083709998502414757125652979888480812660380887767662257479261427601277212113291665260692170267379523432717167176287066513303234013988151805784280114820578844633852285365718050586198785463312712952106162761554421028007289475002969458973898454474353922034251174181202094524533816181287118498638823123079496650627836122200910638619060261336626856185095214081829403491199787739051150291308238461733388062119662452997654571268052913163967896687037650399680602208484418886531868453415207016686358040208031713843702986124748178263039945678155451078559619472448404802565291978041601510158525346662686452112816747829950714010903304377271881229643537622690712160984898153942493708723395224307453757450420387674355227103511753482569303772504938973302013193257636974363809970749358373181105528756838295003230436617727551749522696589970678435080783256929003658506960200171882370026492811333769521417096602140501296939430275123485336211121157567379759650267586907370847186371036282007808172365169974643559462199528876488319944085555027237645064743465456576258468872242709146502096777809322966618023400324590619032579685249027158179429764902002176060272942173114472545156947541059957009015952086530326245535568418490874557906241068272977322232284934314700216666800322723484664412900272104417365397772269352323224979866858140756634385241399554111593056187419757015852407889081902934199641076814204867623567835701155829589069306662122690033239892685898497179077025213618714136019445126732117418825357650044347911653997768801888762729583466606445631971957808755224075441997771924673506141297164288439022667887791278601348115380006617490670717379787667005187038112407317675075361961410135446112322466561256232863739992680900312359171991439150361377824223603125180697687700822222238147966775806803638559301641434313589778756828182174792145611022872602771031542088347653975376496954918277520279436673395959032196331047288209219105585763500797125091179498916013280006835635545983385143580738740908489546286604098884224250145211744937808517985125201214255909178615034070644341016123242431174904645299163338637585344208591066651940395455690147129562582800060165468258869785311187684760021687721385915664170216624665765122707188608389831316441630422564992951754927590617635170023893333154649897522838621394045101723837809981016981725485326026925980693635573705063404989433898287419709838886714303967859960585593890951740669390708677292057787637020991049200191893441625276461310192902624456070982832100754394210342594773106057845591587357655069486459655750008384198220646527679264039975408948598490921076693712380371552141922673888351453193184492321441496237304842867009846298671938241749856208888874384177513380466602869631021731483273339833635506853455065170449560525422001089589167545396022235054241964042318652185748370560950728312048062962206003238276644649945429616843512758975397112017412776527429931432493640300516274203398505273837280475703702647305700433725479873254234885563952977244276010032363053977694396109268693963432944064417454736372648556546319945466811235530952068632986869779255962151285781559052012857622046042635799763905440022455218277103825594374584314687409894838292487288963057886392797580507397631198287245524756354287640830973754659330429781461551081965972971327073471514325831098701551685169767946264321051634820609657947924908799840771726565763141993282787390821406881375488171927407331767009699351193405595491460296744284325457952421689204555249500804866607471386602844481806263966656884834134745018683545316101462812245773363507973045576142202092260872110239868170170871459212731734967301124651051129425694129568331574865661352489749475421927235615117581415644263287919255883269443030643656902374671447259477094129458198064304317943462100594418478487015278012972781432857282377278437002300322334680212710350693086745548411892550455866843914039866643509277437735028584515031254136010419011885916455047306321496862832852631476134449838416040807343884350455567410936895303785862442972155490688877515718295311414266113360155677621736894081509460490061785314475965072690790843982967264587020887321292836301252635371305889828164272210561809857727017017354454496248639676586690905907566762334701676432238147549017551163636237881852156015368093463466249403648264860693150209489039739217443616968609004111914434865280979773954045079546272285307992826046226022289138206536237605729260109620636464917845997918197135684894087110386534510531426305792951549575326593540520705166740960853181073393324951803615221176673451719505017244355435097418139347206392660842965705890568256865752363410785289729253748862247554172537713954984068650548200883732045069979378883427252376863716609271567313326003583738773433991812150513327175986298245092394312010848607239261541373855914535999909367262350726556202900034468868817047416433503638384668115740987864718986818541561904690224686610088615617609069238451592851582081579150292857923307754121667439282301729785362617200867246355366790992119377785810999452196699847870931314686531338675777966547219968660967279159596863341577988709224258149116642655354148076681770270904509791548633906071808082273704796712129147170643591672821197742829364025080235452731290696914355003172107033354363546929378096391172673105378381413276216181497016179970835405694722647349088258289599153249153670130537059979483239418424683026264978186917396399309374597455775734146212438295251879289167329064761496219617210954046089350752932929285505670395316208979340361315403482378786844977597450196141927865204586063781558288775537733289378545545915033244076771854266755759342954750672951281925961422891949227800624300090538847287486427653684594293029012474302641241053696427856246475796528824345167051571593129059879473992141870317295479958345120707505374190733663693969293490898974446233021246718130793286538634420450897430644291987740959469343040976512235909355159012286391198560669994674773417215777557030293446620426105349539788795705962423986672748807644955914787583219869918052290427397592539993745510125462152285973532553226338414740592741061555928848265579669620535216399990929464573281447169551970184723081453185444691556762943286978242404783533633664666698804406424144935360010383074479062464869138381443481607964420872075438352584353496129688589439991163074649842562746472573355382735325009731602043830522516132041259040812886248424309817634747748277965484083165549781410715016235190383559637094126990755814387046715991757068519074638069321328278802624828830151217604747895094586307047672294248289330092523224102384638188389146108811775116313210960788193221930199249453479986477811008305599637147432238119656667965996688138365735825450743776641945906874709522578168825350807659709350602159463628989747713345451134748331715437341204330966656056797796771411955615466385619978046034766785581873547310415972769357428513762939710385052593980478556311252939742264159927498095369307819698877166373400191400773688890003942285107098853285130184302640933218735240938778799234789576508748767592580531973533569826551742072530030066447235147240711671698100572898374837301129409021368023657507355835509733412932987821923706826177525048362858594554504166266971763772508781139166444692869052477317104070101324062267751741488580846947461502078844039443027273588980920647628466668478505662776998097902809797301757137900684738916181522895036571945399518590529010305054713035031491258718662451916659513872703080726968738742268434492064213268203379263190404330468828966472550376067858706885288719813578409781508433233169867498557986139054470736463840725420642075310595475425100790528306979523052548098191332293570117378533641695866525689115222741605095895422504034075218261556738094187942582761393926480243213804423153924242416512369519002900605396458284338757151070073140845160764190053014570475766811719268755473394345469091468515851640437107793324267244207882640156050418455370521844533612256860755222091976404612882348696102557415839564101850544199037680183199625005386654148317567742363687748319375164618244527817105413871470413019251960107319474540101276714526165498688714579084018239098006904728215976335370752595951363493778392542735256127713540159301154214993911306742368975860489964394564201433575642383577706921308901246421872543300192373121835176722253852244863681211082842128903909600347703541414109272893084484584005379787623977523867290186749271476866911476149261951425070859702212281432645694611784877815111536208242330969970328629405034437119161775645108882154303906859646891749486587521068230276587953843113356200835166329421854005154185099788987815900702025598155427428560380043811453729786804114867034831081570346776720724987050463537771483231243168769163258832108309916657965359539344710210417215569016358657857089712325515097476416571130730457753856693618284967393389186482597502118091645263962235845943429815836784987033045556788444964428214499622243679876448299779852355870648751500395445060361030951231810490957325455837090827858151146238917924608441333232718190960683042008354788947359043912954314892815445160028087345166773332346267059863674909226980648561653662897743146881527121685096284029146303677137107478800077604547255583958426223570809716883960372376171606468757916433602464594983327196384696373830624722847536337337513503287901953943234478253876433381700414688671057993866230109061322765478389664007447739417706476431627868420625753920091440370635052654821888444475460575684328989044471090490912598077588667025522677209926451337554595051474682318149251855499700066933915649949360899059980759413432635365235743998720713750757258832407370198294089600263033849838448463230004505404978687700732136581490477755070510348358741452235663352424806087393525043062182448066020889795638500809825405724127468653906699784636886505885037562586463826963707467913411553595590885879551326947059350427035151181571343273259701447144270913478166037546979671137507073685080014094722603620239059317904755666604284307461235015059430014802516924846955116909932922305791712838296502596822911035201204999738027980881588191071160759832182687037126196847768208502466463459381588825793944226886743498500017394903791909833392636483904953183613320991301954764239046394147135853798210236744850218356682556880630383931347588816825028131019592946060309159787969600863526037323648093567218828037758926084530510096757991033229914134978016524716294512828961373529676981652839692309337844684254261373929733453517127410888197751373385823433568282499686519036682046322017663013673481632159554797717146679524405299453839137079822219001100465201963958032938183504827241732472832658898184879822269994359344744788362373810514275070262056842223208435173545367913410875779652136251761043038247048742464778099680089152951928985443839489032738916812959356069415384583643413552956504861579265898821227974756872460901934479078890136915037559277802427952324935063515207297508438650807842451258252208542512860283291748010294209912935790942259890940471648293293912195796440433344415846928200372012805379455752013733031191070465757048623369033431945785008752706374220728468603779288240585120590620289109510188929141300970540465339703111000135855890658212120855156660879412271582566206883404973478865059086178520122091602902122020008379975778027779165647088704242423690415744001691363607508605612926178231629644963750816299815480925558107185706789145394083756461667664438282222715767980307919478011466463726696669704259890916615266973685026410857276613763482978544929363213813288349156084917882690383033244133101354472637231790085372972795431009792414003406989371468825295648985890777855986075274397929351926307596438401513934275944760226512616297283003591984578348707374695560640795318401007550092981895612601598022776271168283290157619896854109582224524643464147495751005355707995337199487660888950903594996437167420878822488845191809110254240804019972020123232638833458684604030363077427970405816044316618852011876887782431135395708951296860868190536532085566085599856851813829211552903119055766989766695167025937830176518403306452468935027501636735940253661159331586939112422735241210825426960338205379126147867169763201032249590154359276314369428571843201102612578756389566666905771534143528210356865451546764328714939456894174144925749921733386655685961889107934530416541989823990013157614284272139805634250426919331293848963222420904079143624962164290827116059157529508587424761449477663750319870007318341660572913609249724675713912819833024915390745678378696595227641230969156619500651027987134794803958926552950574991705730033812386063873604957778162121588878083892850270513763655008924609082488595728369298048586974613161232034107532377588607055780751863058732369035016943847266279424980692185154068676670079218721606668241248073333375872780306520488256198612143415060574902877011352873797306268426888462423885815241390454150428005448421268079027890496266379533652479808032215862610619817131908206219634828226199512802118229242676170982816433860755441958417666941140334825029879343464517114768573118870911818746513437172243263679085528135478006648178001286897882424543298825820142463011124490161183874927708446519590401755052543005383592598017171803716038962784260768948560043625510904169361494068956167184906880964721819387673309841118648735173682342950573571181596605386533691458582474985189795150680547318808284472293974566439927007342444092686851250148357989586156956467436194965220402132050028883974598927863553844978573605082441157798488009482929304057027477440933824861728621621087260289372969667938630820119573807017740327107434920024521184310264431568326905450359632625263144840777234917858655687310341267017242291616555015615199207153614223090019531962195167464001338003007660616971713340249716519848208845841023293741442496450804795101626080425793333355106945473990376684787445283947178278705931315495874400705699629411973978851827429732436305174496248315955356882174021349808596505102115629337969232765326992548622080946455508327113380391435464135603255689492580803891131342609750045689365265955036175606107777748082713729688734222607729157780420004961819861990340309666515486950840615495198808145408917341731423667621925630276969047921655899768685836471958521104091533241523299750820735656525062281275959290760244544979638125462460948206736716375893279993914065107795172038550386915934822410051054383257061706354012371854058937228862023969172038353034599732210453324616153309898751773381476533673963713862416023502123421866786258386214175297180966439724027638470162401972244579690667589624125175440935687803219641684691963282276007431158715541148467197792602514928518340535238980966240821606622096677344424171905902530469070996588715959533780215017558945616155574047961119866418917834348294844497534670254700579112564076057553594214992020142033376012177742567246506254804776376316505110596615212360064859457086021168657389210920996418715879373653545705908016043957816857530082440451957834659803510229164091737926016975234873384638033500471392295967780661615225628067622255856316391973249302849321116276404453355814283390043738710169717039704320838518570720957298992309154080940967278333159103083503552068424485042232049003739695101808250330454339081336668694945305921955127651279316862058746387726075490085254998901567337728782998088890010889619894129374564227487764049091833622997699819114003303093956336639638670132585051574100409694155152707833491417995879718514359459938290714400185353069880533337033489455125789984805579304880253049721441071561074909436036448514048319648499690514819079279197440462576166489221851559404003786316393692690500547961765881397556667734408719748280343808114932800942896265430677993321647427854072379679782454018290440609013570670860174861163196960512110289913081437623902731482194440307510459897218789661025531380185311799479769861830503991754644104976896702205412302244561927962030926279768708568508295643367071003206883508045551860026086567281109480206330452932883543844460299831147589733798070978588269488813114530486676635765427379669012808641524828093646252784407246416034001431093035360327079570902271183240425612498274901278266709604702556137168895571951548033710347816729232220939099154249166427071916468050480904270233702979292555682203481271373038045425461364101734413930772852488180696936094483293833064746230186580681312541458351606289130559483465464341209293948913622568823485504652162993456975342273405134739036211713822472071899348538283161167370629249892044072823524464367915920977536160693517762988100661654082015538037922667210863578070979430828151320109860139393137052915343258287408950264840956067749411061472898045061141801954927246451691296141517523714460463031514009063232194407645539344295662275746408253279180581460763029387335743943994704568566864636691719706730742490575002021329784226505946552859515731973363926231776529039149748520118312367565632569167421292351841662840315936090704328780019923344982794646407952004200192720876278666820097555140284793409661908814642634521487747775061359344830489180950226903687315929293342005531937887975236333627121564549789329798954087092238001474292198450503818689950914294651738704285392799751219160073803244374624611558398948359689520510220392809984875482236907522736564564894346100030658858497499766263997426605344541580193111034062647073972663001403618270308875608371164562798230656652702612913220879656563182087764732893059715183717873752849937560253564072998539804728926471421192667554508275838236335926030013803245351309475826610878595519922105897254380354936831099996978954155747277499725814794410493694667444894267984083619809863699436871030376061016742825295309792446683668364053546671895627501258362267796519595639356635065052583795256558294693165943967578558323693134846124511405304193337097505673166676199125763634365312199696776733159621248494190133007997859707651304406098883915632166644187089471299247459303315299939153235540127349352480712082704299996384372326270464543212305362511720515783698497302462274745867925155738652170540426877699994404765784344039148368373619059374494459821850851659613627488277313533921047112771668503694925758117293953424362232440238918977251533978010823555069668366618469912440710215102915867281908815787311552862688926620380088325996445817643031591958988890866851011559510322754750681346577853118726470007648764756984554110962473931587804644564386318570679928603813947029700391169476896171815808925558103731373795491462834043075384364184191795233903411421180463138490769804645838279719509999670445746741191686002206790321230496182969659712723541180216941864495476538022627221593861911230444431668639301809086319574425362502888668736919426855177024578185236085279944748260247720923721548413564136109449710520382339535115880674113729493227929231372409138683394972935713458591138748286299697345219028376004210816143094063723288654634607755634619597456120064569412942464515791399152113348127529233320536410369345410701458847122565153968912690437230383929925115510554604293141524410616999340152883685794338352242387602568393980281462272774865790344779242499762010491300289270072395121016646949270081851430190768207953316243655600354912145204079708138729479693501965051347388352998305703434295525817182726231325393075480664022440541667358657956734756622620884249425985594791137854061666016353898597748279900161212648201388069484938433992363694532435953668944818306365958038373894781266380548262711174226392097922330156708403893035802653656023084251865693750840380610266857515110960842234691662690477968610831753967737699206838215853765370684748149000900083868830560892765508293394305212762918195038354803649795548762008802330854011907346359919825549434057914023122394209601068365656220316655430147866320365334137659462277434106227165568770208556250183553082809980237791630246745511387309231475329162718029834122135753746766562890217503601227236021343331873633944721628147223139129973897533860697709865742748176704653619049049771947946499078499017560715169604722432012489746762224572960026418889472024141053511467066396949918985634367902216309387806244369274837301184704659195342821674459996198656615291095771935134252549585961829611982476509473161892008992802393685898572254463620760197113860746563316888295360150846734591308175891009119884168136009262372439269279388075799338473903484788594548515668472301869264186244425712922223094555841568345559384847304890277360188269144661663336281807514115293913896767851270676277117928241486635833398030878967952747442376387779093785613257368063452568034431999277769251460711301401690363724835270637086929781530042390708700729542247901618262371995342477408596803573972723620304090269694613428443393135316111204896838940351515742610152651798616484853545111552158249116014289949946228572463757492833595769127100716354406591621306163796736530915315303163257839416940768925775584935886162405466330576565314196314419201478739140483324353234167894878448522119047036146678843152000688232510199371413502593745986293888227640044691801958598646316912305373256236250355058865204941634624815839021464745270694777366489106820441229421967452465976665037549715740248783360425049190397008506085909432168933756220863105098002931703047464466223518870456555522622964163247956823502716231114366406029901134728002277555999876316097047342289610513387735691474881491859447195896420091116596919384735617556340708160428090991773888004045576748502895436825559233173547572400625449545277608485498394494369973652477288407374248548674179069975441159559451375265252581415007786008307963072393726710893811735222132497265228883174153623212455462077411088152064132970941271787275611000747003804767850692150548873883713665477368744431915327034728017887496302583791573447493273008891402213365433727625621566457481833517461272106642241748472454736191032451415309191161696454588045070165311489928494730631600965489064288049481058360242301722300469201569333006109905749202336481865377556880124643218263636759495639413911716500187586766070451068948990187277838292652682722664858510585648393778969864524268515454823206540906932719670420690437161550065107555302999268779259174874439182895815292431316888359186170855375580042063458587773027023067211591538068012120214658334484842413023905249081543834652490219624957886318348761498370717445156926674101588236089695962397249624907315793414387425334660042582226634156298270374883920732938438983595481877968232269042102118528525964364261685852425999165350628914003820363341796081517550495381699183942174383874238685684460629440728550506441882943810954217395559304843662039611269430178691001321521527160058030649912646979459372564244295532233616855241867134327631543169875157015483422050915483713200574983721859260127440226408612192661180993145735983489177937582180802482177260803623417997664776342726198410888144068483162212361734724689705284808179166709393966666537936082644882311201761462223034563953242809690300889876986114619686674900146135924517457026776769722681389211761349913242770836801504359197471496171223472237324208732144789603087617978437864883809584535940615099468048800882996816246650967899363123980722558206355125490474921086719494332508266574030736297847083336876408217443309126399130218322890049762988887591557190251828051694683301400951588109132490434209014691394407825987101752666597074367214648213257800045393757277598663634334071006565171739148884641747986961566716049087291100586791724671220506464574342106292096262660661475681975078335232082995783349062595372440468055115810666137186285039351095515800357978093116238966687811722432757069134776991710988508365371129551763361099658521340196070547026365052589687181284931022508525535045385259176960193629018248552980124769243241285981861325918852606813363913542521929117819844177791062387715177624173814722494742465270628826164460645006545613258006504038378208653949045641886803832724464387247255803096784575654253326686519728316197936876345121785342248875192323226466492523653558240532750199389427788630849733683721391672843429908316552059313925589545396454036191182805686005594264999819044747117276268514121174384526248087784953464926146677894075703791917289449894323078389713378379431302233507820159743150336947891055374328995393639717516531182991000494192996681048000538539192849997934724444370455852378105260958819369783318402684437302789965063166182993079219075632265589727960240398146216769556285912324629498903948957890718511357122276546992186637182656151426652120674173758357061786877808539312941416013576184177352589819107111703268563909140882689066931977202790757924701848922580427441372001430270086097447688309024212325514814277947172365476284450809440120333112107826161257959795215793558207100772501668076687298882729147875276611319806502178554601690603660023951114422089915999509400692016124437120700181684771953218361020647273667820204779992832382773488719079478024089356619041873663779326675926411930056998873205461394447030800909650731540869182366917752770105456772898158658750435150100237214316143727119121003023466322794096152269617900180157059059590712366785041205813740484475601616113670987351798002518585508595045149870159609347918731167047776591891795930122853947559054626182026544107475235444129487841488676081205559745408527268315852898807767891797421783380134922990094905470688053119662642263949620095528135031338959556373420184611251238868396943323635511649725212113430001711690110046334323964559458359751706767935932556506874013533871618154006159560689780283531757547903982080630609005405083941100941490636342743054818619483706673561636315779793815059366296338094048477448830227023591392364383486920033320153854640651599591958583823995189077278919198980069348768740450470636271052549147274071057098973954443051936499752978689860086389667051531783249910642303505549393451482191474926240069869015351402413271124279023268417416665773024190192966241975858389878029363386743808616939204180150788449919248839774403145944278161418822673512101359621277047138551048469537475094565239693960146980730546612564689254447194097193919991363451246334334205468822977895640191703106328206869696869520133009481072319943246799168972479498656528609568538200063246296273798005210103707700124500126534053439318896000703820805052437965232891375064679461252125007876584100936911223307484369275256446718852409512169409752003091112400797686316254197751187991506599876174919514175018209557901245440462942380546210005082098934500486602630291798663978916731424987200832553733289056780718685441380981504872352810366707806243798883129896742896632007501818649793136205921511231188199774108854166525297199141936570333206945631279209790016640654197505693228372908020271098757950343150648194108119086899501260228080895962422072912573390121125158882984593914757500911838757095768761809649266107379650711682966903224854779989834384773211434927294420737852553653647474982528165585204642550242204314234088147994020563272556718724539805483754959354442272569043575449920014736139808951060089599680529519685149396893292393769140428941983821804276893981413666772379549266327626824718807566517511461273320173939336926926654554449535034375699578870208833253242047797364759183086744993763618427628092945744928678958834524035128711382588112622759125801202540287547430500748333779907784016840973533804823238768735586642805829999629168639069544244555853499511094919759899984179178142149590608301411520695977602962392762745222094415687443536034786855504106832408002132234327527935748144031706971320864923368444063006565858907485017178924957194397655813107968211869167832121222437692357744880531356598457757537044289526846472646048036713258501511351098047331871269135364256187023593348397336855427326385167953969009886429428505807109978633593574068821609844999069333265659166396229848649995511011939961899362150374387063444096338749586052319483804187696696103890583242496244016506500367890571350029947152798580788084505714384070555057178871029805898475220119469662499727445710242639198001044146650842992444245963663121013193075991408886602076555793989994360106069963586079055119044589728142245056678993815816531147838589984262648120690630827155596997870855421869240797770027312287571536515691610536652179328105931045259480349476333519246744207137916642972918847708067710583093642131394299473781295432090713765990356893861364147102789918844957381245072032074630013999600063208390151050734428357793044942646894932092092368809630925037585029504080619515554198432017392523195866080088311232716076615198286111862870124755180908770659146343264071006910535724841965301778935520745982921919334313623138855759089359413878617111613701128502483060927388723750874138913976710187375208305786657892312029670093224007669673055649482844945191861079352994471398162771860818289165677779641919349599457719880293808838999902567950522972273110412485649786016038144683405367826430124990882418272103949037135841485288459589177106949360067837721649759551173394382801996661146877648869994708064411336794525485885727305908083185144036918665914017818807926867972621623094961089503951388340752940253684440747818341140513443195179817287656440996428873139459280468532812827231043076084050723591944051457833254829563521490380467735203634893660780371674537179575539172624422627045009859317078217639812651320842265809627421189828842325354709339781325356339796222897035646447875198966654750135955993559047872878547005911136746048493961143019436604067492902810448076440065427004956473308089348761495949027285706045681788602495893742791668642205957866842189613191888182988893036563240738843026698714052283913012882029752327483574726883378066865433731597601910058150356375586904377919755153770008664911652105758852074485919015678421840110727985432343840153066044805084239704299015385758858762827206171727462602904883732092002768080281752183351480447405160385010795130951882225705298371966583930124930460938350627592467595795608987332442162252424743223929058613124824824923549609896119770434617890757647127138286988827154956016691860704333216729297394796030688719746836784824840762901237945560447789005829263636697864433908670774460423301984701720282478850461592338026024337855204684868431297625348238536973154509797912667637399173916857298803842166503830372071735593457347149938025273860679504152600864257597695025745421167722739492778342750468626873825090160135987629442677731102252229618325455799274400825367895631424896049679174695665409750911896184443313863550940969494972176254542514349749676358106499357193781425567589172271491204799751669785523069732101870888214543587173449475876582302561099766749491086089907912636375647900350044716561989751891764277996271310326325772817982659132790039335527960068005615779390785231517410551820098922617437114711620933012593935481383452466208672530807054045634126025456250612638739785673224927408685200017043890490906942969588792392004731767927206282354002767639514732868030084249140379797295231167210536119557831410109118914428116653409858507238355594888433664969731213346011421771482137767047783761590139775746032146121814748016150970941332049542977379427625303949702798077564066747974764733996191967782893156575783047750259709150435529092453006426358406669741398671034856215380616414639629652272611606438468324398464299619287886180661402855902495649782650030271909461930279069178676048382149372478084494894236620450460325197093669486297422914121700177844481258888349384400835406087633764019096887059738059761271226957509870198776503566248669296633069905920672423106835410401039291817895248740242950367662685275258915567392235925888965799554069773926445982057404077587312973160709606074971769117708027373924051326039330804628379884502275648173069705425793789611110366581068182902229459366873671834108588044004997187823827470346366025506840413628488535674308944008400392209050815099572232086189752558129912870746553522958883431220448341813658476317523290434155249550719438034566876122437963876487821866324091505914581159260721434929644744430945795484034453105468328411726543936099408989215013847606349612131186928707104086987025073485854564727698339890366748433533939817081719803481126719497760001605955988526146014926621404046853082017494041132246788061052301155616746623189837506569310852247704021369204983407442299230021978251049454021611883494773332687947867707068670973164968040330167891851741257132599248211056793460882444290948306141705612984619738245192818246671540628450025124444092358401685811179597815718097858041631186239633759686922985790759490538249485100910411609487956140437018495728915120053823076136122643380021831604541273381748903952150368773335608956608743420701143760495077383181092595267749812689400970535634166585071837213322245815406259554045721580515230625573585643880199354670003874034121460231786109442921149301504390848189017175979455619464889272425882585388966983704957105612994584769411834576843185768729905535383694118098197582484925328412475518426345336114898561066047294677547436742783991193833492971604242556662654389517106619933811135779691425753378455605806127634678304869842620820819551163414144441374834973599444887304348624180535059870435596424743176869244170517051487438273948575813879478545008783011793317998931545800562032844461362983968289562376072282288271811303602305816318561031141165162589357727744440335902544058157164013432553366584745087765740713811437568786897128240353378409868332217241419787530932468741222601507774225516566697927008502046706164531878001318195338591844925769740168393601114560387943599783048913062760019390282431164041107627322845151178987611115973768813052585123924807060308273555552882602151639510866786396922538614784592015422647967540166174456132496495466054656274487626841345235110066564262242550742084455885280910655091930234785283279658328283190935340514652246378600179125488266822946493632012293269515493071971441471737675281108803920228082412467410198357789593668905529387684433680742452347025425551467927438476425606830872294859087383316474736556170059308800076672967854299901241564484307397951340583322484640473236652932211370664721159493603426447642748802031158528104066748587887905932316763844664328822664694638952244868057698535758292186752632366490022187787232229599150290409625988715822491095845749045278810454056195909457371602033064015108170578233648829812501291618596779894977928548530783973061284638214257139454022868788303770578054341692825438758991032271542732845894683017675383087417824846611439329202106898173042283693535591035862453258612706374210362124068869450171671660931440237923329589319741889678868666755373246319606742913010876212860713018022095035355053435671898335097078053824012870790425333261853882312064627591577531775008998261113773019152992042001763316147159287665585746352589373625460966423039103486485171418153946606505049874464243262709278942919969477275347685290515203305298523432491196000220264885539924172371852337190691811096059662800132305152401274907620390440579534094942302406242053679996457638058896691846802169130732170845222957679154882755115463896543230848555512497935408210773588925705830312868458498691029237059722265349427358812789455700495338790708013203959370600429712499625298853091995262390808202782948406114147252114747001636147511911660255803758240958983304277807378607990830796247812131878446412326984165160107554487038672895403860882311958486666496671218051818774024440974624042864608493258860569095238140405273789038966016397941391574791117338788928394023872333100007272140533662838130193725422709712883267081965667315373985274021324622825509206324681683582278902537614509312147955819106979779566486001324766058730323560797760422443387113650302743424355995243896815169328798596802348817165496269621532820255530299558251501485173258670680820461356528145674379415722468181243305664456306653156459153653608524002636655494755945643761905699569451302898298972948185859318747434757387871173677582924585787705309485896907028586833070137523927641887603434063184241023920091129869966826251590438678830147562291700121464324058360543713801230846669197167575477164527932157462138845721419795151528336036032020090111572804568551995943953508611868788654993163740500099656721235082828967892221736386416569824665925111092601523491408210032107828591668217551836048912379369939028456106561239240861604820987707043595224210317654599991952783918745817632450267349511288816063571967678137470510845501943604379909651732512065806050171141695707353267220386319294464333329574109331943881343163389206452058077133160623301954545540114841752232984827740299233709484338726776435630122089801177125342834749069711669778724955869339564559301726196976921092240459091182566253401336342641189647552687941453995351061804567314324765736145266713010953065994693545142040548592784282946713402346964140812968813511170172700700292830833462380124825506538221885330214351630616049740923134180189478760242553829687930021357862960686473842939885987916451624973001937312664818499317323591363785432798254690909018190960917558006203457858205514978039290378145405161576437919920426267893946027603286238251012334349308458338063369830094555616014148334727827226816740228865560788941862274688407951389436316902825373792522437869148940607190836779295437813019266518084095469458824899996964702367638636837967324010186112888278854505602578770733537141869177746360779213223740022840187568324074403872691791823897322120471344633400144056585010508986179458358207973733363865229486332035558635584228011259754537319899861758591610011643578516842453546897129946102667489861823576930897958117861176225149187228437260558173124093988446041442852908172799705168829476716457606835647943039909800922139074694983042542296533596053035739704465220235386011684024441871505554464436620559357511804725452578046948315912017795968953437559333949113152937229825459797530676860893515673194362310037074400894012678356477581389283612391808468378474320743021395477591203425939231365504592923328873056967113676263423373340535049572202756408537066911308991153068474577723329763896838707511618618428580337671290105874851645291048358093347796018332355125875100230732128582330542228731029180879448270221041388174960983331687643842145302137519689701829596381431705778751399202890930093310152403821176767572144500339280355589636860284041909561438692292114005500320400450957392165352096745653486557607171027129726879447260347365090809000179250229021116790107450478690619384056060994196897959150541556368379758094289397964766940411778591986757245751980403987053467749807700823044704818923853537420831259626488091534941347673084316821089637812645757209295312757820177812186175080130517072530105569073558209672071261392188808218135535380722559327514257188537327266891331118669917461802415530834497289199593863930957332019748919584140713401720428145789357614558835944042563854470120861707522922926035375482174982240396043292659263459147512793432415421306405501523075834696008963839446047984789132017363164138677084927582330356062703836797528832655656419593620453344352289446770173460774953225224078081667068923372496830090941361379471399501196608646671604183442444020742278041936181549219846946279985701490831417205022423324591168074158024879162419005601505555112754248718723081861405948577819751804777124897401826474813202895971268073843391713934806605210672774681486096885899711989761608234556574651284099634501793227723802854417917258362964394755015226681568325770079103203314970306916440640654828225144713063017426843310099335119178643972429496798160708126765533244242609097475762334548458651970620556071796046366334598376178570755458490313843879149950865007327742715500218795378911282078459080630578703528156509263635710254978672831992235379834570700085599574691590077665334905642497323738348402248475020829615874857997214382255382529421765855889977848465185074910940214970930950778608714787148949350096935405242095588504153624634130497442178257403047930897878930823971121165158381726957665657777099936577889155566063384539865271026077268278904816665530790991151327662050361630427572753832744349736888227208017659922153779607278840892862747046870818934707688840791639605199862846919284060102850725323876140874471973386930830535825673488712223502004200014969346078241494962670356161216506224509393678864047079219009782023092025870301753724251361161379488953649575142219477490833411622015960674928072283503160357329067284502523039941163565307436248242294705305279375745920790519021601456270753496528133212060667160033184475551805048946891471624944322926771544821800042947591283252470972557499623363747623283161920653054831211861976390831983817953944197049718275245196608287683720018343475875185370306683340767230292353303045206208577735798564457497037962913879523335767133270956243055829742631192617026095029572350248245395475644941608210297265972297776055397609219102351703134329491444741124818705021866544384224902763704228830598624187113804062045363333797218704556822850994509887090040143673987093140018772056862112155867120956548244586148817804163490375328334310807869731885346987365710055510641968613956613635613524333179820585103267086936825951320493544046287637053860330934900215866405148373978966271090415245139454187027002416411272345442744460036695527471016992581972906625514863607482773510521986768011078249271877054409119736071126217925895797018067483068852016561449207220856670475217165498962145022715305736873956008482063788001591004721758768630710003168428692755755229515178837494617217246871539366961582996754248255654584932073736001353883395501799498896279397619210185283072360267489590801749787900187262810402145974659626430834777546178494629713171737397598537670678628909143042558212168131772193411924384977292663711463150285206769409689475481922793967309804687587050809581894576404388391683246875455588540853969887413786667699842360127559397169229798176865096062446033913635366001508023158342142161055571921276197007464380274748796260408866167703033814292608916793632213515206238375152413509454342270583819876759031721445282338370970752104598297345604864445725021569762758984158250905638230969366794882979766691812460874516909371631361994340400516236165618399624110706347459331150375487654455750785226739416469865800233360271846741875548260945051923845922162360238410096711534528821042959017015714340472942368700279126392588739096704899801150637825101543917990468395279558708830342094955656043891018906788563231202225698421806213693642213080499364573044400379562721458018644127761459834894405994716962842885175090386105749719730315961886744241863502606432045933548826132440296205159585309929774337578605319911191554953831251357182330104176436590750414091200953847534757842962305194159528950703674482385968869600543100718263496172708005427734742656799668013493093812593873142137908269109959020852574921722398549798940368679013306542354025952164259582584971676787131395712695684884554327661313097750974937725207265407930990902995919506504639435355111550676467126060628639845152810207880038490686969474619086846934944271458029271452580196805976111200123179234938014219913054147826942149026190442327724291037587771412860680507761912531818273618834854402015337209044974001491604378375284227349820036781753571215330980099124031299554741728199265433572214828234701125341666882456815727865593392147519554586172650994728718464056903391307943251821000036418894174023915756637411746481250157970097096916193620192447594252196754435152117916939413784688457250904565202807535620140603296251971025492222559100493973352960388950156576992504805954422141034452888185887101881779902833393553869883756936782990255008106845240501278032106413828992141048919654097965063533078434358008053637160533502909665845612762713845114252369705540385964232666538797615771677827538113307079850837408841685736816514289594722319433435319248330773547623268192542640553394777457796176523194562864576272811341617466314935928498570803408160628864626779418213902105204165525266325470183628004227712008653472495068189805353821596558988828641919364846526195888073085959114300249834756930626531109717421283216369294015142081283102709935521632518934126105831791019712978223049372531666529655963197203197534074249269892076191704075321545237312315861144287609029587190322589118218985657828722918097465602666117208715138995049442673130235773519434918038917359849688942721890251076696820972778268409555877340526899420854589534510286504210898320501078140231015350360633063600473895689189418697574252362226374106366070582133705691600400151374663389474379694054482985841032681738400527738113820923313433679991409843691698588351655125254569820208456772414493460010027108981789552363207815253599920595534816915683552169659561443394047248185724581945751992079251710476665713799216187351108385894311344374421450946987612658001477318702639648126018831118828824367535665837095872322980410949147805848260418202228204964615793072197724900391058727808147370213379930883000074174845357687374435360324313569039769946121617449709617304553855421890524969501580364139663341049136059028505764209796220632994200213677737301515246689025686987981241109075401195869328202932673362379398654984017899626009931039003248120212436144022298966068437738487349306704915993025868674549688071315550688601302216502996702539320617834582782138607118757680284278859424282897822190680030827350656670798338308226782184339150330648150402617687251465155300398626098543306152301151077799051074954112703870647637394391618707464378550383649417808784302994196970952185638991077658253877573680288564140193891430486275968363529669713407825474780477933629079401253442273660376080728331184868760096158519669229217486245581774716928457397349400222914037188068099452251317281146784135408199433061903875595844667051015108729514893147204414503470916642841077725571428562756682824377663453131708185468276734184414872017637876854961144527864273316473808253665780035826580690204044880138513160964287239168202140667295705460305936332717040293876647465930601794979503430021588834225968082765585963062130286874614730979101315626321359912541941570929552487636079553855450542549575812602261479003167964015087120887812113726776928034885728594451328542400706729702925013405984223518936665122837091182975155077835865561009520267240904128681975589467086751274266751794742445202097027540874490391715443114398665693417357036699587708045013902533861568471985616343389696073100354006219939210162276707643371669604808982835852842066859002709301629789456849435437258535555760476194902185931100417294581027223043648232320557883405005293892797751966112898140885486305989559489339753835284871328448754318306141880624358965417721966361679250571844280562138660288649135523411963864460930784863936713537929984911215356065647601786970114770096048461285306944835462362731906466537263319959105724609626531671752884098771109479309545393952428152516283828097971811542085103267466966878312557986247843569483884291469179322830625685610014327465668385014285335932630533156672391986651279477710413380312074244193291620908532570132044474887536751217694340646078163942275796515001264789192493887432872453024797511616720455410173558983302377712862356844166333460169616236087127016093691315241416049521546662540257205289560531439949427016931206166838614887771285204375469112014946004027631653660193229407617083746794255185462402920948527623478499724777255027977146334574969463376152876426069082423550931489219993736567376728178296000015510482504200857163579078191347424324186725936972991293858332065589610614212031099447099160743785172529842417325300791351328705766515225549179683449763870801392699917857142745556749069965504950931830616055262295049465136733134175929209044458946407143267367900063953495501092389241355150482014226379060793422226174477978013479811340579673662857912935572831959325460224079470979738363617267186252197939958631361709965024071386593200710320610745966874123602030708557013096979852086894078351619522869984269701764985023171967365115246712419496310952265423714673132842900511170271378512764584651786591788647372163710136684014285608204121037093999164106803576249894317123340299766254854768004062261838918385829295996696896502649268812776271785345209159319041711848785279084857974109683835801349540822424094705681052626106828518276709137162356237902097704151148185862422678734245353243425387399463998313825559684958039167158081501150546282020830857755505198061114002560937078665669131307530057446314641513188129991735049136209215472396790917081921717025505245982370688062197046836723221976860738019342491277665366506860069604279430141397262383554014429858644189641896165035951977157810690144713098934905468064764336922235301528321912713438373769592698265358280932358562751099802632947798280409288774554448025523377597574300426816738410005426455259816546030172638086028126498731632505395368297878800270272907107223245805652482354013901303979225850167848624873390082556831710396129628195403020749168476112779574312004604179743157849720207524203202634707915955619807373988932712224622922207004133832003155001160242612367522215571828502483794040040450426057151303167001308821529198994361682465917747086813566363319394069775237568454993673394202364678777114298343323947360759921075664302154146030248374658253554332171381980623490339431387690579368091311508843404140625988832104872738828394822976476126979825570538532500858471800159573652274061622990531347335871912652755718365408747250156263983595444353322719247262331841501726088796306670205040858303716514446285164615068580467083597963805767333116016134984791925458792082157925287868177992718066485918104417744974586802011998251461643643604310995825103178271233698462115134727428792568169370597170286885234793840061699295307703023669609014730658190517044517416525519258835946082155343071142848003379496893104395812577455729001044253804959757310772818783307939914531701628465037431403937239328835143731266785386905522692519786944746608224678626026862350075689925191477709814003679120857316835947337358241510530325042309466037421422906974789514674206845050217254524532905319512617438831203777589588996185979037313576860839365289896326130416143124333939194449564777225784247656182723845352518953441675000834911981626753747150756209634686326584829986975687280869432868666952516030569350010114531500767312931946812548541872233889120426427529819288292294056531480986340595670866481551819008401998725104519880054533518782621765575106104792987961943843646756887580335795416683311862230899397882270114339340652254079169842993457291614173465129790000920248334909166476378763912830440745941649948179210243891396568403562424387116539321166431339520224346335489258102623409130823108854761911459822358585015497527240603418519923503057420228373155599846196496370755199700344218617304789497542542840979281979974846771998097190387274855732839185094087611436405292525754561378425431088607810010580515688047531291215392559170090517707112788749538635307348404855049402464121959046414981840434084448213796017000930685570374525971023584832591022693429527972401114984905395422572071213369494733135055045014438598716974385032213985003171251236712225326032789892267316275441883339338834339747686487432830990269202210273940441744314037507769228618383047469829304803234180115941374412520551439706637314444136819870138455063550831817202459022564274986445943076537249993153964160107488378274775745003932581746439916758864675814923419122687090365292711864362288515856683855121092119144896264097912276365284592896356343916469185101298392153333264848058082540559690315523833705932854106189337408319965481248619485649477669837011268426218350564440440574492334927678065935679355220929166548034547903848121046588837968425251732791276648274887663381266130165249589844380325165209037864980433443678460613526980479026576412848491861715490843683869064084769267402149090517636155842230939911617468310884235967638272411696996584004329466194943288723423182881423947830623002007448626170999284634602857037162331413682679554261794424311867310328002028196289476187414269119448731481499699142831140675784807197453639067289447105656279773039644195405556914425930396103032383938194630793663017412055134268646141499762026074592429111068729622025689482605187519623066578662622189078427670430853676821143220002039083661793677034438425701922756380041179978159582487703212792137605109623144667247176326669290912670026270000161998773395344905126578168335295640958683486131242334001063593731233131390212900200733968398525775557482633829390539819714022662429623684047648914116080327865670175774239150707375294258441891319822617483231648640191123536139385715439811628030674071106922731078023770615236384026959020414306984265239955911435269418847270190391845642444209450893184756121606639409099555709522612126899649038658149065046451612644910968389816786840549693779152011987842717130684025968518266604330576803868288305401099174483918011188246266898844012303240478759842623770264040937572725847599779892540681240193972616465559335654854990612131801889836512350989382350395974710898480573111631033724086215370519465849921236314676740183440266655133240197569266318136689919309217715102442124796181936001694755160609791873025766538274286970301897843739240796961668751226790711283470836872850698834543818188175043197129387689856893655821718639165492211022188247460626169336127540167695125132800661592604094779410337018093385352684638241693630260399391313828620751278750841559431345555699867526822021793517468319840158762636167909049131750319165824578549435324239848598177545790901215031950280556815096102576910588956700054092458109610403138136264689419426530788043533344491234227079755497405990943422386010619407386954496427853335932918269193912347660830283310555644807384418271623517216834020816871682109447343292946900305769389489315372951552783099881982865262787013406204299416540297551718413755142734337696609892185384345636770510003468089252197059777194395032070099207660439769342229461171050401309243345129286176407831443789501808726819604949512625984929099561425536836662292862793831198296953010228951713091183707612279807437048394961034406671053267139488202803549513836248615002262453984153375074624646146371005303125029255592785218537434092345701792276020774257338973317123036643299434591082107088644832852033008008553608807270001182113329228269452771121601148090230044430239543843941948006292352302501881082461452002121754912756741346466481583456084939488690695474221313342037158954238725913935617456865958767858581703732537254946944176393389972467116897387697543345216774110725126846724303564888668363056037951470769708680068943378789277021603110438928826539045958620159229763351531690942085152122545989797072097130744833389597645515767092093069009697762233657098730807444401615613206827637840593328673396853293992106454015448004640019569786242423481856318849690462905080732208356518326229829008736738418096968765608654587645735293075837974283398456403682428216147541028744831532841323685720755574297756106900374693381008401367024730034146793789510227749167546884001639581279235125586604806696193026167957074337499777716295597020330086755931447032976614047912087874950219302168769500460174131276544328991596515515217291486396069389899010352422357561397282856910472020461584399741921280931748695586570538968173501307694065516839070272399579373902588284703841465881951440841055587689439098655639567170984237037592909202476293149304949064657591849533884563036934124442674453638347570631164925627277954448955339759074905344212003220216224620289896999803796168694236451909418624329753873546381215467330281582378884082602650481824091862848250189910417308559443797076338389495188348476483759107217760652753665553088618324494678146562275677441041718955420603310547781201241953726076669522090266234621197747505366131033339209487723257199384525539020101708697394079129562367048033973970776203328124274331908044064170338103233551780763872753293929835785454429336231112285463671732836706439058032654349726078945298816979252212271224065901136820127657744752221626822359261478894374162777444556541887113845704953710533368968315532689590700260689890858866809803353587750848185588037172734994920674196892218529139405432655777274518435708992695490862583508626409278987691498594648049092010807025493882769059330410739498948544628263172470291789850568043158901628468526533627357501988168536858415688824107596926166742242584064427204040064380283903668430909416845354847011819332400591847047913249631065018175619300850195450833115292420123791780055597296811789431012436799928453294765490085042631117296220014827654294630711819135172502941511414637391659719319996447297529966505301188033079806513974738052808581822566197166549116178078169824073687579791915564859793029615548720798402600995299077618468800595232579441409914851246539160402354358869345723546345139292198644361076664783064543470754004836951283212449768599096017897028332244264348422520101103459919911486806094931189778478472967423740232941329129101620417758163512179383230330838722856471289216155114240671888939619770527242976268306098305013458951794045714876294167844070463557355350665929184012716952645951727917719120582530007232442383056717938684786873841297893993558005064235215935565648840850144913844545374497299850367336132490001293322093199031914747640570321964880260260300031797569356590704599223518596350449338004295205805781528580272411627179218915925171060909961398156183756971045735275260823214239180547751456507060134778403372357477259522463330065705566252544427997189117379971098413271488389269409204481451657431368071010091537182519101865405686268177066265980944530102432494825520704649692379872278819407206238883627540177243958261719025309166263299480132545373379967741880592749972128958882857212409050404729908453180698512671506839623017021785348815514108044897034518261438242209943423893126524295608049829501556045672733361462477725354563833987322775920475371173830100459243777667653633354968442823547210898465949981721728095904432550194630022772656247244509038007002617958650274128578481107390299891250487016529526653674957046602365914758860131204762736120712397149951513857100380148394201461011119627707538023577997180071395768588046299896741833324843192946847343662143079169426296682760401371305631435368002375902439659459825046940335573428553319370956843218289003567560786711391523781043265288308634836071577124671063128803126999335375601570139324097154824979859861869306617256194726684814534385676142589979202423148345991344899161282472576146190949403957695600454216130584824464110118535564563274100844130914208596554250343132529074261291276326296841757822316825713826349047956678802967862783098263757799983208443656539108390207898311952782969087263552336314660282383758937275424776515285374626525720692640783588852442796670052037070637110767182763039500718360401724355411555953559839084750081173458047353915899797139096036809871226305528970939196798197642544814711489745264220387803837959499549303086805113053522928363193836963720648681502685199853665081526173217369520736084594736058431894623699184439773265615971839674240710488745059087887062929121285576781917936257375771118215140638102714360616480433941234219683252368912961182530882580811287062466101885953273371641528667911955710809451485268450367776932294130220316616649444989724956501223136393123274494403822529422319233975830279012541740169028632524154171801125522642712687312740304816048902188805490060809886572326060286546556926752085809507862092925767232573490259760290980342457973011657305096908340814794289174347586529245151235587230184111620167335611611000847388401190141607592586652550499310028432528337632105898180120110536408658971291879986573542916653442850330367814279374690588256735569084498491663670778962531448623055280020749360220262763696235722472254611946897733114966870677071256104218106987682439456843894153274230601131528497453314966396186638768717509110510429521605795105539925245509209818256851296245960544456805514063200781598095817755504216270240803497736324939946903847904192717678050446506191037019103959337244402991179999009788828465749971529929948453602971749410720709970402564739448822767082055721295147698154528458204874078666251832313521340697409349146191626878192762924842926887705945859345134239580989116971517531844185523285940026852215723372106628464802245194948742678235225807484088289722983676883230244135933640650983104378059430114102729549667254157160107686272062383711111272935089947041327545588612535225683931315493090929786464483447312065721801307102122277800658790620754127789894267387093149690009900405681668036357630288706171490398377029843191560294989388169839966787052819979258245458159345320681023956578555135860735912044310016111768977251184813351447014078637535322640323979640036232982465375028216413116539837359042725077538231456691949829304587902220652333041328542986049873191717938735554576860451468208860643317950653680647765114796717559639274155839357698420427448648840010759972287204239846511045959379986793823068616764692638527958197161468672415182788088858910518925452097746037305901714930439929811070716934039453000530153873065483520729712719746422371176018449907825849399736738372655527025117735703434224841286439464408634351400663476240007530358344692729836894570524583520021848632936077756913251788663251469184713843069576125012995144069063940784922432712639496657734219810682120049968486172699584734289304960607846231543405745392767826859541412446366592043535299260687059556627766737889096149811898033948187851173846593429725976165937221682137414474013777381786578213264087146462745425742175578097556000921398296851303622170360966110964383431909214458401487848066383533889386809868059837430300717083568560162881747523755720240874606999730522984970770452491527717561232422849247400710120701724130740014323524243578360271495627086596032510349377711387089872340302026104143137274009215831907684719753474493915636592822621083175855372182558596410571274861902897967339776413404804099189597221584928103698144102563015481782296736863481837172489436157754396421292301931071112970905933705000818558223518080659822123926635222699687959730765003274480291820039520417991103035124443713413457645634579969917425742199232624113380130406318063637212364347053896692981559228120677806811360830175077050118911043856817955250736744766675260290817268230701186908892284229159185040196261527220966279782218766153120166808372949529404295106331786878428581577323839803996427367980507770398214496294179944690953437197334483744714279932965606787426357962786510904745286990830814284501785189048644924248866643339575528771120038494645929378646568498600799541717549458352479718506277621895671834004558889676094174105235079325472535090867511815079672988616020346084340094971083422698698508688954117033123607088542905097632963475518601549006157976955267174865331346890672790278282715879846248164353417071002355809838334261419712209719038304852454615301826749127785910570266878547206939536865335985788118902923746122831442894857586068419738019630825396627835570633923422569723995567135660834148055073582925429411959177898597847936444069072731659215106072700167918225139916022552846292314323017175507463056218576587869466887622591525849158202589998761286241442778821611328769501849057668907378390359134316315652327841028013878295501598464181611497156098956946467454576873928211287760679748993991143842566797893791289122260804857846132250391589997907770183948807998008224720606396542572154285722218590930528061915717856874068514542157462491662016500647647546980893936528228524377280431452384739630068562105131300508293679532540302895605017055610955942214998492937261047667701497389105629116771475329305674002050830311435978174369020142276266455993104871684226591213240130006567127699551147950227032983939378981899892700087479440630195853519034187717677718761894060968588585181824938841656760769731318098901201471408868810179172612103683939707218557046241180343236470305566482663461123560974337871891224600474541592563752446728863914497373753683372767216777732998950209857403539541659033069237547454513562471853567187374639723384414148880035286811051550017784994385562879970092424771427149203159945020022395687453392964422113138620931689759669527538909171119343061078915855364275901656148973548392864674876989285541904479215414980084663776427428564250071616116560724262279470427267427742588509482196087874058380953202673484127944532207808296507517900099329304939340875024299309564434749087482555536559324689763250940278572492971559219757549413439975430927006692717740437391740247189898684494794461222094177502057416254715424353356586009529199284599206365298036915898373220160191884056649740447257521117220311197123355244135440134034430525400179999478219622798910577168743379100185834858389636888498785077877728973801423887352538623303108542248113910974014928008992235217907194029502011129284514382261369234203062112948976995802667420237595113106764926981201242340263227051141779118330596891267431706170008897244595611252311297934454505279946351152951616918025063592718654580593292041446857852987429718398060545873285938745510071095162522308231763120360534147482583880239063208446161870726343950826230076557869169615987398216385999126006503141145667678990797438131476897109279455490500219083045868286492679834652235055423285101315474201469836579450489341108816074523948074557398101993490307038194790552364629221127369202682336245418631968552650091470358745812802953175863000681724546677848662185314647003175201600685872013659086367403555761442648759105000108540335509778151378694882087834906347221280768872695791305523176942317863083888578571574301395783344900910959084247729559307346025983809739605389612237308894570524925061813545981698031573847487379561189518132695156992899122339757629393487249472296589641790430494675316864295773921406219911799536613185384603044136258354082372819090800096980579163107815521692608689545867575199843675794626212667908786325899018562975456885413563530830651823892453281246928624237293937539248216700166205140551734026919533761660341861541858624977377444449276515658285988809130415124935509748366317990325405679491849118463564608956503087810186464767420152529093783026746498464404520782492460867598895165674837400504475083426536490279970439719036173766946295407607519555549617815293414874633486513347481252613783398238533203204867700479715811663408145362996809085002487413949351737944023854649670073034028231090070068496795128437740299857003784493115288393754166758998725047619065351649696357813505922861937676570980559156661422407078899252375625242703546123988842505783064520853619173356081006817810620920896905012261767446367800141557895686069965639140560674429529030428145878851912496903739363948039544742762055822106505061596799936023069507044421971705929174541067072616623815419543542286323991883230040654820129554349920530037161523224348313395847794461141012959814548423712089948402393676724771176783639726067606979819069298343189982419328124095134435340871041277432877775072302407068963681904526134361930602439779489876251729328239516910965964578852858830539455559778422604572674485983719736576353417438808743701985527365143243753035606709359751158800093471307871928368293165846540157408751551136547747988610962863123763561238100461371200594567496004571025275278531142100224932071957959775746958293203533809883179206351330951413510893354425193571717110607008540291791514784692212268590116364109930146175977542324151642801626287638534278802884071359849658091790827267521359356140382963778569335667561417587709333341657692306634278850816080128653725095564179753847352040280835279209103750839081070493200184674482608418269096611118878949115218450169865856974203818662083088445531371237845780360208923488795302562967313866128160421684059640916577815066781981867282640145663953588200901450154198330612171777796282004857596087302230143944727249318843587478367210369411213933448010071725539976581388100076584426706422063360416942987123022052357843296343952377194143774027428587533291496904479637986246031763194488607509507568037196496032580498779107967967149372728266822157224400101733451955329898734679966039664629480702309364255740458086636846161173347056325155177543123212931241632863779963518857681495349595666773607734151689594701377913017723938975941334751709032028724827178549698411528753919343979814422927911089135062782382342392060133877485319076197448275304359010098435997435848254970814027764801819992364884237977896631917490373781627577806183788980046506658584627371157574077463449912407164522932469617588334110970105371565975948080312907838074580110701696062418425180147067346452712838945637405108871085680932586169409474262424744695918419898936813454121776132937045768697034094252795724572407872733530528081725592081378578255319774840567756223717255627052967252808826971311120626727844527297504493016725067903462613429908899604314256053288944538451195222387250368777189710656720141166926414650365967367932256529298896368221140983018313604067921722204550807760700802363159067082906633273120299359319816848481674234219298132253802396110273794032545028918196362305527709949895253844222122344491205612148971190407160255233409429695932947248525105282499959924879470052185487512639060198106844487621251565637750554989944826391040490014171903495987233266986470996872924498846750071056426842221252636318401259784510466580294777497507862974960222216979374876703307112530103707918082211477857529925873394710472400710400171056299523669128442723528460063658084697342726347276770718170133634829409975721252940636831819999184200011067268792938486675892893780317617343355732385740454897184844962931970820593006516614489423359594750594172325716058664188268380414219663003440790038881482132554215721752475068684833083343624941650357521215690366248957163795198894859554977142555919384354032596010774915456932494369293545091285329344192503353667777707352188099329311755222628707373203944423018098085499296599766026904935758060518573881526597312848806843463613490451388019001839512446033871024528789225857343830240002708733907706278005739265073453713983773404676253520444634030663119614920559673010235362430613755188822611969391058640360204870452769513799041259831113979656714865171156934350946661374951541212186975814887589717604817948901911924884227602714578100065358646906602243851177414178840296416113742900837606976415708170821681759226789754818621662579755306685379565792989135297347218969239301705954569637984360292938980774898462581508540074710796423665340424813257770142290324246471414355617565599522806902993904898400104187308764220159673117310863361954746100405319790569190346701649254684092844887967078829873446935696257570922784039029709940371772526652804679224901404630715821641646053098249504695400047219128014845648783155061680173571664275447551291522032227547190774637622672959064486950414513673801953984892935430651176174278057867989214449374805899399425612244990757804794479551775891426519478263975288400108464376582235456337553956446210828220256580306141946454381553964702862564795216516870545798548703546601098791247384191983462398501242926348885965668178928660262932711855514177707811378178371759379519292792780790643367710527629611672633636611133435081110158191022974313858804079611972149470726538282550029577699397344234891515020858571244061997758240479573481323525395832846805460980443562301281750173867266870661492664434704346075850292176991560936942137171081832470940381218977391360432882796308039163431773810981246204265374356905915534978802894356706112108439006699425809750608700954435121026418774692030883874021431125998779577898290918389999285736131335144862835452450117663363834453729380023714402776667250378692712397209271843164973657034627105114265150371004023265424910200799399028163967979029390271068599666355713622389333640031656785989352567908285218068063815704866073795848033360945532111131241689927919908857871996200084755335735204203288804798758476976988479394447456714297497632774972212612672226269409371463907895705833267929133576721821862015185392739927902544668894518853777920175879835832844734877513631767993619527114810708659806175672135140775280108688951171827955851246611449932003104900037026581931997456640843593843127089297680195146360540612460585956630904119426706845395930787906258001961351856496435283800418305219221494087759090931150854905874511404468514547757722572205937963843917730300860640801785964967883129654430013794898356800858548506231549774614889551135224810290851511672385226236748000399052621002389086275303575324811723403399949850133381627969913292713393569558033236637039348174142694411722482975655648131808477198538519917056873024241315426325938282904661780527064968234207909762835083074154346132025516403733575679095948618911711554492787535371127487991234746547233782463535814391211074154094428834265340722745738365543975497887658915179398544931261263090250433114939794680129063943289896319616821086746090479133304554803344754926493075662006107474229742169083498017353463527934356925817570219738313019806695907285287517629331017666920650271546714211016053164336184821624754026640739929242283437802028454263328427119127893095690670033974679983312608389765769341252571969309577522419776601325724685799447479438223769175288920083010905641787042148721053067336703656356054627383282948439275588444984383840698089272107601566503308451952427733124610190097657508800422462459902006821181033109638883991130144280490141587106047848206710259137543497958418429546729611317203210348063648246610398294149985550105796377631727599362665836401798969040990657756819267363807770219660730618741315324005210244509459891411089247501120803550752463694380352060548934542073629462123055660572174211857238789655788787054937026120864711689761948206903684773374555156454804592930521102727140230853589758247584136381829168241677195486300427535389807098393280835916482250262985771994481221429335700154727760209879732830248828445430865254139448280491137978802863224990610476712921596763552571358584879606097141721511207453208631366087126378359183226612201341658080441827434918042459813880224218732331119434501646440250510215888211659551454690784247881008558421940305583280146415813047354426707482825566622216630139469199801863244417849424879742154664916040346362200798884868249282280288566382767876301813994284855830460755639153805108367728527360326213716039152228326692191580336948364255490333300222578125716647493962853733740085134970666521474590221137507853168512258364296833225458449844323854466331064194197438349993200111380165524423756703414967627140130446948310239358452751011314529511369208843383485511521432654419504541167499354710985239216189432495214303465163317787965931967123537896956908892453007296089872978593797864668502389424207861199655787670640948642845112847272632434571555114055055077749683473119347011886535457978834488976706640558163085120917944215103912549908193905826438342618352252451325124451490117900828356686243848032188956774533313446097184549675038147597887910511465040265786141594696474417418148921417994003967005718826392115607676127305561435378365823701409774242678564115093132984704106503994747406975839242042838271983147499063708052514682763221674193252536290327276600103414163667780803248513916595265564605679238495279784803068563129422845319824755841210885684731831573418038886651694867773142603160025210414574452483604626342390120480709839723304314812324920722940204979767721570950942056061370460450846903654464116448453785959240237476945686399278524532272900815618657469180608187192998881531419817393736772164025993293864352861807191378587177606864422901259035782436771807743458817332032055387795309008598397465441855111748317622951081379943186523022215603487357884948574080436931642602790418931258025460018267651285837374567352905904890176737272775537747547279216272286041101266682770710645539778558180703159459578643277046699083893042473648603795783290823590470596170062068783385070719046330197541825165810395773897634874796540591151373217521574107454245921378712740353889541786671399267749730667781376534860347528917202738176224543202674288249803052962790530454154326461459475985247995993367927436981275839643117865904580941100696337848548047686175202690048844009442494836850857764981489825500584970735780577182796674887316994592115527238439087211801731247919206877289457829140279234727807461652223492418510325107023396720465098406868831678277042823319235186862772341281667612732125443594177099138077879806745370280637698444550181018146170324037891208378405526798067008334450649923094154214695485363173538291651833631870662739431118666153480140141731343422003567971838390769784806713013965728316181438148653582443201946560367712327166676717092665806074709655487030367305181986685111157740740056243405604588348535999598796091655159658413076031471657581032516157743337135733944578724941125376125461851244040444196301305711405148744086339633344322714035787129292762522846501413393022507246187094968487866211235471911358984971408940557889858882750608545379030319296150803850593723210291975308282714457915952497702033280554413522716809290058122534880369795655364414396138255068181201695336809172013509675500890585398261422270357969723291958008398600636116375215418151100152226889208503981854380104761996225823750432026175518653684333203676476883753647032909791786489997797254713182826857433422786598535080079556226987180247651619790021129448548789415088650043166148364056226929113310640233047186118497334107909034102947650871865025899304816500923482591060981071470498130445914512836211152955964012887063588562793543107432471444687179916654486499700973278077794951264926394225439727647870668767000682296464700341728010710634519884482990762818069781963226891458626860733097687235585368233360029001736774393744071728378276446130443420779435304707564930204729359196906722748500052844693490814255916179317224190719595791301803900425698942175433282279962170889824071180848909287724489672613114839404788626474339677956795903707134480218737753883073717978625081156431345246544645126080964719518764401587532646088266102635899189772389415755877372844283650677761783581545412713291814736163616742683212556636598646524782168207236223476325838149614714558802741578977860342794590175600775940990765359372451681528913825099307546616695525556971790174621055962454682429362819544927545809689377718524446167150017032026968597810338824506465000805681697269171616963192954237142420190844146605292007262408627899291518983498477284300828625341672697102331076135581239967880770970375753430652021940118620509493706660251267942771028289606773806943949787820739083350625231075817514024690899436938612830969820497097848855056130827866557122394467009094673430350083161412174789842086311358820537261820943975080508697503688761068047318122723412137728358101112803417914884294116387512787083489728123095180999551469160610441791642887131419340004633523640539644464256114180458254530584187600653551126572701360050647619376953267887791311514618647677020577437997789423123022286635041087455657898037869666312478147062985249269757352107429931786903156408165902258446523581946882235565003657487691844688930802396720325763635806570932391754280823164030687755851357348997482906444563071659578588780148628534440687291603593669001252248009492282944886818431807081821460421580773975573886809973531714197255039734803946279062324771302600112853699937927079080262069669828576840560583620677625532459682968749591938606622422248975294627840644058160858368206569548455571724026099151028683285955189834113974931320450727938870724903738421871421695965904575462760086034529351205748212929187886935435455401434697652496314741419352386547129437269902678977196034458614155505048502797135796694736355437490926792492886075054760764490985734528286571716298504008530232351789080626192079083466152337335425347034784911053711435567992647350850909108429758356275552045628857887539775192044156599798492253716414577848854847817717489357620357226926739658774306476542096246784664647265469935469260718623281944680093363108165617978067821790550265358034516957884676853675163773106929210451501855458066549064670297193961543970224762969373820214076257720870261844384892020398479580762529933452822573017982972432887487484133170149842635361541823189117514310539668705850295100948655234699654149741341558945527060899420033521351235066168671476820515598861958644002716209458196348934938065315212058597281516593744159093584324847118316557156014210128391720365328124176085481416831849830875379151938725505770290106151296433445458306063359252271170557662556067741860808275130904644293109960465904646795762164678614358360912822319754234035116242801217436724814088958138217279264742969088570551823365244670866961314434280428096413976563391042126484913772820290779265783610238791985035383262084495684845266238430209457392617653303501136744400535024541993841313203536572348492015926238601242676768294980436483104578933717282994144681193008674375018849367303863546217250981282648259797647776897803468410126939157547979019690039448396009693864452962566267278510432192696032132303159307925427211947475437476725466909322737877995953445029128844229699816486804612109109034587762766575168863639584531673222092791412762746099685553622212599617865006472051290315268891512260524558511495576360387254090831985773431108001531273160165172371874549856261596863581154022565022171266348426335541353905849850625276574739905314811483913701588888192533576508961464704429579912968204166892736159779919469382792261043339350061996460215528819694789761991671013983346375564034006259600919196302445848564171089521104074395273928492434476815886799870650615445837269469082900323335150288795993555988296953808564782298781980536204146840597735632735840485147612756628383552407336834884889936205825207119667135341963786216139734693030884504281142058111954928908550646724983781016629349815184072290439502304718145441925580682815929044907720023580702756076397824371814192941379741828803255271779004678846132849220153401572938600227228584579786881414217815033462739592629251178719710282268243080608288542093425987453716854457453583239731570724736699694290619570094001014376083241927390830330197075811302520416218848752584452043868809266686304360936498557600387939541178957974187831601882362603126035969609501621725805339784492357817172252979664440456424426171867885471218477610200939753587761295564348353032631544990814705961507092980568330981810625455339607276405215158806005455475142344961672234512774506763029288828601809011760801198822761153421500717039334795008356971366241348682503137045070878092682234417026898242008978107486059661968482729916309496355274982215734907260498092325334839408698238522451020696934340488129156875206223450813085791668297567737467983064554863671409403811198493814094139667191922387404258865027476338607686770855823534618545664510935123836039843179115671104529903609713924978954434699032564761549137956027501749228970751191463983581939863779931849620499632370668821253725830999391420458190133880883975744236568757081146140609054321374624847973225007221960557728730532130856641760320464068030446226118618692552981653067100634148598843823110574475439419873024499400604733987878787792732545319914504161904102304658134368683926797646386365937882760695730318336968430092457545252812156895286717119835022292951146592214374483374855814196542550159880876429186127678858115874977067675509386062726442124594212856164072659538384312981669622365520229137384914488120855986851728043009541402154801619899021911009442275910830628812420893916930817138025992170310508916750392432316429413124900967076016433792897535320695519698942841059503594327668872398368978734476111987523081036511225888572534639704452512390577660193059128586805886876063349046369370393539711124842951968912099684582030924448947006061145754811603413503013661261730294665717949908188913986448185811688491331361845104157011381398272979877123870984809695449304824569934391338880385001421489915674728705975459868800134335823090553032795514051787284442515452712280650866631431560944389734708150191475982440639263896694840051873713185806789530216517504472174077579941472465957455025308982358116540997237455212302069708571713237276549936534900460359309960818483768399206521804160318584655112047317832207208081479378019784458641977286121080976935171989466237219261644458093298616434418155119221996840489215200025910700012027918326425159204014553687884358710923703196005714308250134030429569441875878853474665658488723657272591118149887280856491406489120763555488123594090148233759574712236522148976723248754776371553134378408613933136845331976228421895804694272790287404942703831856709075446183603586129733090835768939346383416430044187818036461044077689055854202510814539679512755579525521194394171851631216342979568667305989687270667022657879847554656314301487845862838370966599762104198067113137688937857185255802469551637312969029756869384711003505785918295582557681301898402391034182551838982927183664843022988070957108512157638978557167155349985627236035297154414996712994399958273604231434710896200540066177307664282871965128915898857189329473342167056949564998083408553693277435442627113180550242365795650134305314965160263276509875583599715926158715441978577995976729700174927344401676334732447539088725511313259718663203496905012977751870246895678523578924634303698935504331794608572704752920169180623998745466032805987463977102942729496529000439668722247821441107259681893942184975158527788382162307961464639611696926842196256628336414042036399895424104498588042192757981876453509114087041053623759515211835344487399623106441790257353703764403561019641901196324939773402177229846983619109814000893497075414143491012821280258505660590980274169575484625778543707452557941730039467624205676800933089302522821829963009481432781329210282368674718085960984745948679206355797232568898073840408489034497487944199671800244214576699686693314235272134220089812357977917726828983263068962800378094676011842191443771184831523294055226120427025811836782947453378023939890068344601205007769938904074872734962921632668332512184134813684542552063361612620594159404348862266838452967136964808390554711183987553577007298861468677269933212614882918704190913311391542799459638932560494216827083006512339041490304824238114085997127831636790789759123302367747956678479330281868112213140437099441405984854172046499212105386971042057745036848303782105138433933960052661559986763708126671464139373663677235889031649808025858839124440120630075121577525211651682988098017168945132920490509734393629575710575946044155855749430651335181533596796257967062442324111837217301347216741450261046581042035896674277205979068273682654358870615464954352052452771998428545504434832348652554488317250728142864998410524407285807252756745013151962167659976118219938474715247624816396348092332030186360053371724957727054620848900657586411694204439212773065260905600120830223763501156144630333551273509158988332707713890807499028637464091411130768672587160920040539564015327364958615257659616952635272269708851505862555060721201849361770311533896273869090619513363337018539355877665356737539833481453587051476541837645114761009105209880541937917137252820457460498796169737598647589748970766502506885829770197459637227323795234364585491739554056646257742887319138380414785443247480683212687040524795228421178963032680452446921409191687157395019176318857478156551824328368650524455963705129747957567465744934519559854557972231908971321641611234208601039044973579434162921470808205067604866080209599136932708780084964509325999269159503361512553457109650480479604077941072971837199061723957723955416732614893658939789480940430670837245182221761516810343890734495040745095557910729024029104777946662505607209344675363043167472026215157930710561250035122581798824898919707572942848975787086813915383802863726227193453761751190682814546794607060161220400637229327607710800266033153320025313290622174801892970719493742739328882377224684334442912367593403478335950508411141276551197514856591410339503068642970084552633614576466364963035454060696942026593953460486635623517408907564090823354825411139290152782368074589159668344141695622336243093457618138304537939209415191940832453845467201630850621579455164214707715200377981715877864456656323184206694430577422488036654818211380924701275590157374399940140118629110231239469268785582496421068212592897652271747361041914447470241349226315639108857694618286783326223077633655840808605926073173710881601507999754665410289378576877165693930501612237754218994211816479382661352583585099183367172524505134739451935902006266990087293057859365548974960848882874599027860514158045848749891615956001867709982496887848198074628595084091357351461911730465459036646909733680847803070653376199456866308949709877882260658845688606190255323954419020029345009751618787326679228811385517196801789500577008813018500302446463395380979329315900683362582621655184038575495798158855909657594201578854436235142947569583931987257748727287859234110801350827180875587070558649861867617714887751828614286844703256627752767511618907686156636557141491151887100633236465714880282991407734850730794814627547608491117802365272795198160464905289244321366963303997269368879956249888646810067616819427986968867042585251002190923466017614067500132583121664688883888624666790715164329046110388033087031481025939850583793914360470513411915715419003129693843658706899505330423079402234708434846847439057526227813230783839563860069818984013023191348492922299928848219089614961146649309645173943240382070738229705719747396238116179663351239104279219073011440394004083224766727805342218128979532157983568772191622385810478080187901373400247191064538269899832317383610611900773544462352104392488396999412110973870982922729179067825572984006672252495793600563051726340966813644703017333449446236047505591089996670947324600251053583456375070929880437809331479409045152287335164733144204005327919149408176396619913600396827065003860427892645734376345930628063083731308542714836373955108547577080973353012769949488365268189183611367520576036605078865332386587712638261997220083239934582152679551184302320210323764611721235196000644060962810379893874467579309019971753495290198392401188016901056789527325949545396591883753756778867782832514371356111166925705160652701918563462424236776091905573565242665953873390068852991337026305061176529677377770073473748449210184923294266416954756832300914405495758490207369149712031847327652913815956231326748369637577516694095057637823450767217521890844971928352839035234982181189474260777244351341193835596183015536910482469747118402839211465959205849536704237916202947383697190654951330986117331098115555814337012691981608535570432408572116434727740137654337221149636099070471665416898205382896443183776253131189876892049692500470142628522733499049793754919959269824007668304071676667847536203539262083588511269875825331405165406317079873929246032051768009489899332932211497253960020986894874322596562566429043631228378635663123868472948698518997805560756586629812813734104213724956790555105730628852787449371614075099466073334538530407414304764534951042185682489164281091190876021775081996288550915679665089547910317025820684063510822131426172359415649678330681281036012809363518205737727855871551000475128424214378096159098016573144029442704954651953034301439011748722171471960902884612662457138790061445320184517271588672387299281578600646377280760696748211402264736392795768605237603687077226754757348655229274738602184682930104046077561735401413193446719568776608971933169960439488869776406856201835014393266387656248580499267475804794600527680150286207257766736407306404808431838578576889992193626135269219647812341041392796311623524889787149191165544434633369288055299068802752115794716913741405974498129956359538245751449438782333698141781172628781585500081886234014216671188670538794052257694717680630530123034094707469157219322921062100812079511342627067267806655567291428261976048513375267650808703824919414184326641888203214047058393316249103691434870819511825042915114480696500874994042207395996400512420915894302831572882211162736141627000019930619736515664623879614239642099127153396980159316475544420748615442569327441682723384189538095254480544796320207957579771335962098698769873868981184451431575820418215355484736805010125734931732998759463703815890278764608960171927469901735299306977614685270076715603489540989703548065578674682526933740149007435384745901728720446084818041249215361440034839353617243036091403793838231287380440807794572794472443492593091644068488219196508996316255977483921948949752591807763385950299662140059503648255108113447241566411273893635417649168381443294387175910308138609826270464005439912592420974287101504242007049338930700416720165898648016829608373346205617898804511653881125534474960830463554356481502404631710266282482668687693341841453901373869043678774105801370579593896279443591221111882197000053555348452088717933545635761190373840817073134375850127406869640841762976885406665462881728004068076589400027242174269395658559513970616233235959945477984576309064806677927874481436933939191337223458674884508627028102737551575413024854689696089889484628806940894492674001081985210750859031006865094371085055940766685491482889595643546386694063289752520327507704408001695678265466615432856662589258628132939504749122890866164753772260109842632737646299087662265915583073788435763026577484267590422862006474617633406995296588934859757062255645787837687814849915851609046074679670251275670080722920374563630769872635835578730346129625191384711173387820593201717029188250483369536497542202255764681968478810254066726650849448981397560866735006545922215336865922223164831412477927117584418856161068851369883392125729033566205014162393068369721128094049773101313412409100514996103168355415984418201394484154682642201408734136468641784289058832850148793030115611400879509163933863594294279138888720240083785629690236905008426436507025751936662399128388204090165082889320123776341730268997710417365336297851982431855178312056339472931543679577136379508714521384408879397476410621378728324351856070016472921220845582470828322481161339832253776675298263457286961248515458405611694832300209068341747486993448021203659857450808723227408630600533312822275587845181355902841109120808979602483106721719276435445822204876946354049312596478058569593788623924640968068946014162432307113300761998517638924738097108862096846628214571902569550710247651461880278479912541563574954853959239947411118832022544063690671396655263964625098798249917854370776187265792968644642328457380444269779527566169768333681815999873377601779297465338348434751113172913680143013235866619434654151352381169640596795905377419843449038889226657104836729434163350549123640294975102742941173105674278419906237549456709946429167713632643727987139451858675896478472590515968756260947216765047802157379205634027318213673075803674075905261420866935467984498562245057004480288008910040374430273204035152923698595507232718343839699085516054739660468532600435181332777140829521834662151101740862419865549727563913039195416671932520282756996487351713774313234185583446290229984307079832622935720470510261554871793988397792947426013773713205285373289920862991795951813399459437313750105983814689115061925199333838865889757376349437954723916278851997520415011819319431426603721995757267603303309220255333411721468509733740200412755124030626359477216462648800690603653333467448807087145551655472562455656190867340968141795623654785697660329154124062127777747902478397228052377933537379788988765106238463262864962783726206274879343549070543668194963904884701736453343323777793842874332545619578355897446405249920470162640851738584125530700690114272282325033695823771094046894945771588439486290551513454187396085971492081130149801606997826991390145758253993371836410935404040625966067637734615086620533203628865224386510055573685408483732486735878118156995319986272662455218826016011375767926485390324663226158816045793853967282270444786046258636172669974248260344719896202599044972008826404049185515320882133748400477211219714314197728358246509893534622660907086235678938071476917721023070059852176270115010485036667845179801432871446177612061854286858572898168331480302724718911673497318975203636426981657394404508609007846802648517974193014971214304709332207167468614132430923818124175953189880787425031818540769451130939574194085493308188587374980559874120731757859551429464947589245351914030159378292586793056695782875717564087355601057643764527879510557306710833153155295561161275545463617010595684647104885316634608873441939626476195692233657691905146491015306262562470643700307862290107157324733677062217775223890136052880575522035452867786596507123076807801810437788081618440779841834628042859274593707390785550182302525562513791886564346070154758261714692413570773359043790801760624878693105790191528282663886133918148213545211155796957597473671106824984791443371983430549479286985649463991945055486263514532315609832901595322244143473539878624602549860275345673216932982811774374202097063685657966214220954536100727303105799409970444108605216305425565815811272904322693126298288320435121711432490767112916753278445697310804500343269567620530091205141487610251639890875384949849487659923407131111804531859003148053580748236483350710498800237417931144549022598897878322512768674314327261472859308499383443275690109317827044137619314186441187692186595572942469011377178151880335454375377529829855760821239368388100420565866370361573436514470387140352609236468094147130189571758153717388096900445722440140016890737242766798705885808596553484523979189991154432013807359742578562853474379422187969971539942893208547609175688610409775633624438055193833932272322781973634082588029241634790163840956960321722763921062909008170623277777816803855139052056898626902492726844153402856090112946264250179731162217151462189352289739437437918905240417164718907490593005874554804751952006562825339551576897078036531630435900026584509903438949586097185543874601510396608878900364357340786022425988042866036086519522752309186937526068099150420662502018911935506982328359127570926914773274555703705926890562456130010145721242227579605582789174022655875854344116980835846659070621400798619039740324121941703114178595816086589583937608510833544099826020417023591727047989629576772411551738278770564022199783816047068605478646457319618725779943612855816809827505052204539534915378414541155124694151867037102866201740570293700556547588968839264358359003436650990164582242898854244122172732960493998886069652720396726587786204102335187845536364986405883048062552618013562632989858852066231297174772754702240788139997531080057648291011835917792685435952076792444937785278410351740334740434667582209193796113258546421009824957809099778198645782998697214678624286188118155122594445806150692760985363930947480858033275072122689120433991129024693281513732307419663181636250137463376646320594986842726327057558390548757912449637337304649327719974204120949414409906257105085525285298528224217343943859302532143050417849219665159471278174189449127900228407658418071984717641913137412572000551427200533519687122937799517362705179792832995360465877380232990687066431552867934783137810238021047464549088792509320129623265782001571555876507163554663247600334775515063798307725051034191847542705576563364236828299602096144424305516919415725451856309564459655617030632338680568690096691116481001990916793664343515017201051483320010944241339949588120613338565897448772522112801584098193974722840041560386963362624035646276373172368395739643091712805233688202649299881049747244489629921746473839004441036656002103310214869390738867876087175544678213211396705273917855109491833298401345835160135875917996345491106275084965594671772579324444003590787623313387771880200316594050828867333449047253966042096702549150924402265775539649632915800094936430780584967568758693209347706314476696306795185678263058892454718271309123034345158003607777705993363364720009665364827074783377156211804402943021360775276819178633524448736518493180708622714437781268855236552268163776459738785222502894272739275956242628702996502143815354727792510358948444058476107378293005525762285578291674991458277769259274821594652165388456195476719294527799282724982314770455768318501636284833925314214244085234799627732510545398930441103267131039314934946049515885373415341526230913745277053623423497568912243557008916782497620684090401615652892947117758965293503411538825409133576946802781400577857740670065852723025828193267960745768196217049553336899109920177950314235255062839171965396294121016096136944440900977764122242091942322535391654117740800563123609427032637449707940699117200357102240910495569983867936355930810894096647857285975403678190106825297038162286446694062973800145558323678624427040629432864236405605795335861490281603982571123133557609079708072080980589701347801220787058144647165113189323982883526384307491705262461697199082387321091113411844567641390043916523286456427124208783828879085653479016449765577177385514519050756431857837882645782647832022069716415789368164536286340056469645421174334025600485422889062063187949709112112887488071465637426933932123137357120199329437838982506311343438816074754099816697362589153404993501335663987929036609850242453915900702718799076055370726509027973405354420951344259901949185508606309170968877529385704985758430617228625372560787946360125025823662582785988299870100560013544829186137207427387927365541233816229406335210354029502629843901088212708426775283002390881778474020558502965055610144852958284144762669488711688993732484875930691303909641173985405564826272273526321054604953311504906926532608619648401602184626432518976668809388044853595589172313730085870885554696330871575664126216383787958460133663681689634239642091195888644242551990922989247434290280152635682968122294916346140126972380513602280715196411079195166038121853819417996677475692646463812222782453025703375015461591986926359330188009729732417374153731172185335426800047375004484831145000669261088305707796910946103422670865006020713497647313962507364589539676177959026238545323581046440284151212168550716978760936948615339470672083249569830415185514610499256976908464927446227629264364214826954795047441765507116726943144053216871393810206368207919279752248645566295660229631663000298730809863285901847518328094116751764319993703482303732591262056056527591819359770306035582344726344691863272280418610401061879960342433015766652931262453178550739600686620165850991361097359472645119276008211809282149799573083871105146059194644779139812593886976403519246331001918994651153055135442485759100672641655642753791931643412477737499702147577588795776748870849923195210110294144454954470333787858789377082729703176362967782931203807888870228831625138964686711265467734045851950177665534818301156024374733426426453550870310234708115047672943135717521984772266988331297254214015860232808747787355682010710308042621342837033308939247088018160096831487435580287628233904814145278347996090640158475925777471578581236369117779715958631179010542823746747411777118050458497633227751933400167207722010514743213009619713767524091059705908242163727350371228510810932858874515665954377891107549280678397408725888404042025685844605230772925336570186383188311991765405566605561009415769578612728772936165261419938749292228913447213495755692821891767849109702646865591024321079030393292950809685785547460836309512269534248671725599905656025816480296689621456769757994693899835650155674193979675931406731430253046424615080884214232372858708154287926155880131649093681720193956449131961771287633214504031883293636252579646995830088191756180579483750605368110663024694919266410801644487275349057398453185700534982852058258819981197338038387676618997315145798696616268506591255703326231828713138767640148178095625730479519985129662097574553055455819188829268701462177824477693263529276810498858402530101717862698036414694956103044774562135885003414821756198356784557910554583996629339127350236818266789206157744350174798090138843596703841300683738909336434017935941091076529394298217439518150197349200471340435606393630948493405160330358420767119653989842360333401533732844634533954287005706795103088211762565142601839349711333745675152874548388229072522011203417187321087188444188973062831329050575641322475145669460261909265667271105149369464541033256110657493547879304944074690112874685178863158045588535194734400709174174169005045073033294054720593446712571877318662438091262648825381444532888679331627140522706616635769540684481911522815837332309606463790354518704963386547571409754865957127691814556416190091331411321969421288183726692462482444655035030248222731461288262477181753109439673655257082163747697888495718742947748416330818639261867177865657497683932534277530433274807709458934981047417505109456859341612595655627691824418053324111099058218733341485117362002815118643332740351637828980621307124773779110267578768531829521521721651625805780374813089829093694887768230650436036428434098135284311089930810766130196253762326820208109092336143155994645351829470595969300122970985298618191991745293355088164556961978866747945271154190527138341303473703225751020460858099581487441709833602374777753633312005793228185802574437039658669207809028346430003720789642811956003712755870392550497172871826886325707183953259418277089699035027319797619278861642306993389767587463444186521177185827930854336966944338649924091026473249562171114044614997143914272216923579599012826011826410595651251433822238435140079506938301320281500700584829346039284394885517758030977496070835307588503064128888351627224807137279074964036578186539295639634039512240787887860971003324136673981894156495323126668168152371122333541955134455207135594077584333586230817462061081691081163977842270281737538376214624277653565979027640135192682501443247786336211141662866576874086368402776943138289935114587986733746085926106435620524711233114053384664906436655071432038786063537126104019618491540123241558648247543702868076453457734634496487444329886493639304279424393283288313541169041208808314295421320606139025055013581332163696276887766233362651947419764644359780655922684998723728352644022212075489202305817981972852127356480470657356852476021504618156538932901675747943830941027340191522837905420638901477951128350722033743914261061280863037703483459903265121028351932957721090602355445736744538121472871014369601161368937561396763237509250148562036786438628242809682209123175923814878054222613373224051787560257624775021718543001179984944494796500274369546978139478416247734335710049025229460562984027159353987347494853854545224754563219083634933424246904492408824577749621115723864542611497121028437416375519314885512618190165604033543191282479853943651608875490805268793252403511055726063186170147563417814088293061309020096190353139238106279839370456455380757932556995310401256114969178874953872204054194642255544777670478793579234514888287268416468360911769062729709137767393105115183251261089642985375537679973921037315518490452809610519307563947871306925719512114854124443063938082427445290416435034586823903835626850868260002757280276994155554023668163231522465558659707417561703728184805066783078808459216389781056177916512026653499800935693826739995192151436373067872241005310038512895582292732082435759727303941472040707707399922878548206000525877906969458761105018826105697116816318213798428954560386263062179476526217454664356483365770052107334029035504272399121853781873192255572045630685347089525465201978890601244763850619710427163816559268184559987372243317862803466522703548777411515132498083994030505583430202958546874714387991417658846484841185020733025032997585646603400881585023757062853583882737574881252229201027188663654965911405266413851574285320844126617416677665961878267488172060505955020188983655358412518802097745170931425903381842790215257156989801339874506889215706980340122166064550647822116939536708069106466365772319389388551575124142778038871296964594352720298316271633985276789838207236785221031910388026489490936994754327282407007127567720543660720156072502477443131122071178440806450588669141680443149721471443055010100096893547674276689574685146728339881450154998367366757551333140927445286144397009002193981489857358065188221984492111783272355057216828205550335039797750715967023179264725614491730032192868464179738988640444969391906173467356289735389211674002247308223245114132713757889633274382016125838032885843625311018675672051674985229350416076797445780407948556440531839437006976894295152161107558608601168397431306541211827951079630832840468241407836116106055071594758844184511947831614144750383726109927129262513426712311765728637176815758316372031470991809614922381062852093461232366051663270023186533833495939145885413402640393664206187383183824146560331021467745962950272868114641649343749732173703510401959416035728361936370435022020206986496130151146171647076634506027867670350434961680949389348576349033817223570174235295164861595322970183936301657825697253873079969790622742813372721237964670429215466809299862920369639453137006564327106041997009903399682224355671241234323011077381824918839861924987857804959909470957704190449920091831704217233487740234183756956182891326104078343895986555018343235697701463899859654756609515478620330980143338540868581786592517725062483314792214500995297043640944992012144077540464954597059691073021638008694915655367333877666476002523133381938837698311989540298883544338802953063498360198524058130181828384245089827651420241829163369097007639325241623039059507017752305320745808404488791214228818460502298258587787490598579198256868933437762597996562771816184491687973037987547459464354057902523277411378941931346126089164803812994791293115411389428334951658910496382254995178762885091890950494481019347074029756474335503229573064607858237804037278554028711181534999199079069064909736819050558289750532561037225298921624034145638577912547468350041825164823912420117945311043465124394219349634894404746575594419104907999987259449345604329685430793379947066307350863896362191138832239708697051917252051014465365430741482783979056256948705060124621705048708819476204115084598190073614893262718794293547468673544085631087473205112768855639968698346409389987099885689284605446252807950255566370240292002624758101647112477194240190988944673896454451723331672520050317833571544100334816622559803498234679851524239464031845991535528004842210726962672185888693357997054571970572929415160215587756358134494176522848522080188327568599310281696781459013730421214139900820643461749208961233358681177324392090500244790578309430918993041958294307798614924981663944860289008786802423635605481223093664066951501313815334222769055886520405140495094458253209253094857025871772483647214242901550440824348199039228196355197502317554144732670569971093607068912458244044899743010602662760367885182010695877890272155963419325890286249527416713469468565893933846940577006809238570917540521074678689108760205614399777159892884488148060229416079285238058764863884439939268400702062386437309569323722304110207445611487336093678415271266169055112036236071292959713881416162181312419290560256495761578847223807700832863364687000491076610303736444331317660869339983950546883819003672291491770784438591661612370006880443368557389331623493750847318802497800036760313685249597438137250994555679220594365576851971504343573448622819231389079667967865379190225331164383839155142302325810434068593643788183294880995246911663157632222240406656633245614035938173265913717949384287834929062043023123974259639108687064986129889350203840298131375224465798035424294872671838128223258764787469559574871528826403366801696019927314058999828253094837513293875800866971616640756282365169155169447803750858524817776706381398683940698927615103464880277415977408493331277444593865395235279809243139415215149069526116309904871595201798582206092524260171347267630261689398356063702879774084010548987357168752333457123420694673686442736155098264973493713846496074579389315146322027280273224035068941427676022482290521748984981866538747904501227279724433343625693482189565569693576980866126323096043962473807579023331370520699180114408496317463006302070977546509898206755463695125815709466060230803754420734620508897362213891535909079601400402444156982092895139126999785743106218500860831507676907612053342978419278825310498438038616404262989370523263867404606282264954812292300747748925035437847191625408363054636739358944869578111906190774416879610298044604005217753308059374467020559823849541578124228916965304448353905961518324086931117225133699463359262772634560373728049203848834929257736246535690947535007320736165795862621473889773640686233344867934097938859317955675384781513305982320945824182901550150615999769079270690836116475770301685073535553584949930919616761787140684521603322800564623676729036998396914203348902378990025944865448653635711391404899778278525170453669971728939076089021848911308619399174383645283233870178978356644032026767694897651779514847204651074516340977617837526399857721260927368180392382392716027196380832245686791335454567138972437106502518306741527053295407069562103894477069159832205832578481087630260049596178026830049619815861174428555529352916405852858043890879215482063390181831433061970976724161424332600534731591509174903503086025511697184135043421428958297365010350147758459040116376339246039958045269320003175803375991607413046124106988732568971157307765792585475149932910326289565427950325845997629015012283442792781130703997903168345876340225317352875962874260583936993245064227022551596214692677539018281378664034226679856071507870451958431618143934207742751632227868782512716320826345307578245602098182644724107646132015408553387438941665778749103246888815471106204627897522268721921387822596059644310387687161115121254863776723281763673759095107501638725601962692070094559231182592231412144741588829255984937011511422116853699170251398105837544214342088877116905136374703360122754236575932348248717510562923555592090551185709950548799818433625806343932511181497242720939569726651870344562322502985358464417247955358814726537666285512188412086723831290044664005556962183458731665083062312245785052141649594391757038515679615159708878527087399602192452361914035484809633009460778282133184186392008767640543323080243134585013189144178675905633488994302031435672827023091671145358017316701863638471275526210657460968490558242293230058383915967400821582493184390398831735121652227705918264888469928289748448603330591525037576661503689466877366561154057972795847185637961587991040753939860811504059534135805832369760352765866158556943949480530123746443242890018307114154997214824579012342405364232649081003686030653425453502905503792522261093283902822919380563672099445195613445257658977626515797016962723683991633045752865484303744676251129229527034630753223560186896290300698600941012940425604538986088324588822463036030756033328068118370372621954186938183918280254778076275494165465895810875502719947378010322355916097514995317152219215543529642258277233318502540210188982661916814550363736250427787270209311437547893599597824260170861060689639206614635244729032342722861325944426436256096268259517199743143158041056404978262672548604818902135478695652915380159530888858348484348577042139316149242149688620786697182661779986840493137902422671455828376045143201309212367484533417599520542077099491703833429777260140939846918130372272471759825436386546146810484667408935376766252289901272116029696187800990598537370440631646558448258650641872682162311445139856599415119034403891949999422198416979042334499726640717631622092821917643304402501284738981574662409689753697946740555290653058541501931961926499362028308576510650115003268124884897139727539939302360400788042283593864511675335681910704073650162954436939422349721155004178223459920477750266812401655550557920947097667648318183335331751207971295496652335888313225785497321841478870410690855902730339387822675464099822167643111243322281359689372767319550918154422620702561222428229495457231739835617716205546832431331272850993269536792805116246842242165725870156611733501118939527224210072752519206281790113732110331972973805524868741932063249107770284180687402691458368526870570056933388577045129663671173616835404002300873934757188438154854029593430603909177514123290444468914460450328931172139996452665806529929678407760285333877928485112374154528378684194864691339255633680622909155981117733367914904288870980636069430414162355708162508985281281736112825381839929930114011187471094074697260534251454914823705252743419817138658685657495623259867088098118516026513234023224379340730478983020602425449332429796086712210901021252384994268605457665986452299251769101692175519093760981303118272022801367897094446527355040031288646092178995666833682790521174479626394277452303490324115621602962070270359467155856206787229457910527075949698036050483735581492282374668254442658039065294600011397602882156550640197073203517403148905541198945834732753262520091700054663206540217984130221990099717121402472089229882295959413607300760711125914243578627098037561483576699723445016888282935989456958797210718492951922696440526304779838459073666205947074799499299246247454041023469467178635213126270366699646237166180461643950740026191322106691139798413879205480041450734141954381013712030370651298678064363829390886363185798357455973649303354464953922214028699287186771500078422696172433764686355450924095764022326498067781369210330594430123928116374609578144865328298095421718259334146748544530444416400717506635500576837718135505147680114632823584569029536602433851816691816042660396849986063488135918348978166792327232019493888204931445990729678187938853108303637173906515080075991451820274261219407582250563660919353835414522544549469992551102746481853425557932010416812205034023462412650871071284050168486976926074542021953218640117017348166910716034276502981502603424288874260894480083158317694971768541520839640105850182469913952040644568545948196286387635169282808240426892021222758864330067221760585756619900919556391391520481680659396280207379444862782973448394465615796051433005259995846995421376176408676899413322050168213457696603618614871714439166212131493619076830856388449938435322549245049047361372684254900591962077157004427010392661786964186823058348303053279958436498921590809620608506506233534951598655928832345858452891113322141010016773471064907774702956260545910752180062193401774280694332141820874196828278519895315707471606557127613849975354348335546405814648129807649997332387292235414974127756564942486258924668072406330533625143544484949655902524201530065813139534308466396855122094677454330882245846098989174517568390158147485371705008090120714234583277997925341384011862036351198924921514822828714800731041984106441792977451571109237217126212539269652132649220205875697713139788300099900730615016621084241235589823168082975207680178841696458121208605222029983457581155034141407647061115477527080865809349757946683986401181161634663784150954237171683102654552603117015361903575996643884279912041362002489709200106411351922312738882683611267937891792681488446702457378937661706036215386207626943365676524675028980421379298513274277187372004396102725613417681058740882595357514602860618246004513724671324154018317072928370779461461930404951473302851890417966383247209871016748920966858679864386821471728055408761258621104284360852373219379644617440128339230321569251175044480125543864890146834845726965417276179851607608630694906236446099547784401890988224664405420128380598068173466331017253186805674336348295804901877948365728954776731687116014413297373614298640006071165612358755893041184022076728221099157448807807751631037255719076588799247850198250473164045439995667769543535526559316774648144406953118762889603631232777051449093795807814939954677014354956497665522361038211710661845610593436244334937878921273181527362065093366150385198472777822652999263687126542063974797366574334047262293446613638585323330345561458444935373542999697505638760897941023588108977241785251663041952536885595540703587651963120816453083925082690961332126043975938875646026061076560846984061871835357030414194301620238076993237328158914081915717139292012372676847620957272067789955086240731249247418565450858984999501078879775336146613250830307130323854563740570942237096663540438821862970418436152814077057083590757693192903237747912497137251675252272726881352526516778975239007637417564084600912887566168125029523891554146812334892599422340505915292315157685603716480534255407035859403865585805098850619252591051122432654329078697864715295079116644563935574166431188733899949728470290779357642926905000731581063399282518884465978791101820570037513737803962726198781817986751824530441108457106781422726565392429797847052110313028709456230323310412098574786314769264165036551501404205801418162376666845800056967729236197723675626687102630379842132573598264518863519070330039539473035980832085231710398104135770383109534438057452276918439987787539626222244352294842028715998297322532171184168047065210875981721043343502666526042487043152858730130355600865957237375376082912158722985549809371773581922213438039761259641092084911957450609151497170920353577766024966784009247457426698443825969216394566489545370703948005017448849548839135224929133237038519283413364103361482107504147744057244027158002818383238242209322453595705720342674386970103128841504049126509755351270104892492114629188348373253700034740342539646467343908478189899481139640535678820087132590169416773948803130574450882344437205077613974715202711170899522543067773409824382680298039512776289361157355854038407120806383280474180459470103994489101047564977364215849960615064231537844987278680006072785138389359269360032293690329321035484264916951077642079230675861909521082439252510034690823699090837651821563319544800092106701206824224092962093419430529472604416571051035156818582849408162279461261084271789040046786404180252653151461006639863641421377369854458295499009705198727197432080603455005424107584340821085503934632599324619939129257232955807651278998721749637113880588600082232203320490048722445672552650974612295114619031994486230370974314911906490319854575518063082534962711177750202783020813394933559510112493549518157454511062573320628310541991487328073682460408437518268209359702502313978323669951556706902288521870083342147624728009465834098065261395388454025305759409571099523098295383631544864145266941824899694363074322819660895385305459719827954037216356504780702415793038694025427931801590773987821817722213823949259433938576985151193592718430630520353975727943955368469143554968139936026141452625430066788930658971378552674575335885367454800339302449979693055807932860399541266147022793363838694919283506190231941498174178434771252116547349031851814480834004192089197518320642178972708037362330114981241544374299329109983161764351237861747791638480829826974923237258940754376213471135668333766711168225080120906537277253418150812224852889122351497352921220549784722489197942510332983830343396791778546776229136430506710233552826622277712141576008960276643182865630838654504885762576468025133752003600317820916186799101422713252752628470264646756292797927843352440074564540144598551427278847637860305273225061040651158898134093825410935999272971105989849326066317292565934699790870118958636062145858737962067080892840304445251819148901999742724088304072562892542096960741603591690405365611761081064277350255474920380258297432143884693550627269074012130424078722831604261673092438143031508714374544509247780864900640418435380954934113534756741230518860122525072533410038432212230456494687891433792508107563975746603265049911025432947579810566738016711405595231669731022119056518440925474021939859757545405861385215805749793152536065409807003265790791001037633358414106706580718152924838978053132697391739497251258253368344489343066202146088845782470813123284012594298052783530301624954560401545295951921869852609595234413173321523772471027274478917820318913134592721706888539806698156016916422856072637287795523982694440066696921540309669157063406747865451664249488544615730003761931411101181377507149006153611409213058309106024415954298139628570772816141100630229272133583858303055497746831876303609251877051873900672166499296828414969777242262324939233071477517512208167134351658418057701736583994191742638280788918057851727758567957991681233671454644381666742242911366990918650483913620075939373539697458471921439028028329690104130325251650101647676560180366489631419675425895199534117106019352436517429594396258042857994016821231592957342410993996634538729295779030469707025622540430113079354502278692512949969963355165938500462172363953550327903524710728810406630088410200196474116128433472379125108268253164420658697880500789787882162499265318056429345810012628053968147897325464861990639084428185573213398793048085955270511784569103148982750404388291089051767066496423504229215463917665889243294256177699165734335765995941508387795448243363786606709979406685224683004364582799594854936974332523104617587214828014469534170180449742270026348634625722648021354014889769477848870186660845098135908842410940594373027189668275377948646716851961583411679419119434456657870678943219788178338937445624288577289605689941390951432334256040481163257607149561895829823365196216262214128786911380095173848637730711825819777087034978922121462014815452871147030771124464764245171857758182031659549783552382770859279148257295841905499048661251649257143174542847872791805901996378806277787159772572647084304692233210522442201849806987292959906762795556037311558898855904214398862527047374125837721308111519369708364554709941175975634783108082299967385257425106786916339726022476301104336437967034733353547958352750596821712272898868843298177869767330642621587440912747351003918760069723841061913603631000145995652957743631141449063045619659422602608277312943479637035222422728365263606691956050412632710791441008572212045452416697035276087242546547724628971842938340070810625205068950978382380186045059038415429780739045705342700629879779640466307316966766802662200882969331763764727297067684075508828663877946232443424215374024491125862794471000997233733003621257621122089356606945864094141480938251152756624259044894470505718136199537107081633549509943177945869686239918301907485963702842658518664793958655232267693011248794751700340598680330976719270789711264820196238476152535825337785825582794811961088915135366858375430083096592814547265449014387270032691637620435630149019935877168968161864522825018441773205557782146173837057836777387368339584720196452195041319393356873592885595899596343200283253708818583669332200252486641864144078813022255137483752759336081115418397225777434780786476785174482110513126757890189245913473976576003591430930099914331623559464804222208247402164167010371664417688987160771244469355180385413563100083213494284812651118699774462589935290381014510503040892860756656839985432058688824907988284820206965278431195609301606882196116817928092054781691397400529198444191737577593034428437455729869231868077775046088161039404445362070870099675235197448378484893717653722271760031090014803944865975740677665665673092102878232784693519859377409601427754076648297641107445945102265576044338322932651121926891567382497437590163404641560884743994285668510177748997197908974721663653820326350458817071905538248699117349288784071588634623396445044214642386148965031266230883891253266189905271662304992798832952379539684768738658102693035001153863811249989628176590960151222270553412646512544645093902925419737989383785236246264769422294031590658204597320747152590971313172941065164774650684771474260137738200057798061632483024682946014882069916365705084747964469444113348274116338629057888414043625493519206577919129687288920799388163204648329908415014240244127418223961569940589482065763492517103335126746007452150684200357059051663414146534129217025778417896372571963404703561655405202090045831109123312933771711767865568364957462665685226358859315322295654322964201108392174540793348084582918179190506551265313884097316655868707908077634638136883660031772914363373254672566473686398839383721150060510766022962961341647709907100263202239547803191204593600252385546416928957023682147584986458852468173323233902138335766874954704236141478305854336329557176368168816769504749107493020195751881313174909810976381656710093297711471966716955504845199572582981298229926068926987283541236196395782371301981907183198214262886131221475286434285124544791337412780107047494188232616916035410847252683447302347767524736050393244727178705611038215854499405329092757738983074403245608884140932996598388748575605301966136753048833567806291618219227187088550126774316869202736724785757472113600859543011016037706572310175372947729547423261339319856271515239638600963671889374817665617319936437375519870219153396996766033873509619294724585025855567495090064452046946896554463870975559972854624070437330825880124222230726808843922007070366299806068352427654668352881152463166790821171979436969853132562368437316640053971755191068769031812361783913127524850355189563799956740213146528785073124795698723769962370103666798575980921238549419552126343703413994054758842010537228446227406994326889167332307283561659174668709172157783259762913436814937395913094643208358474547182977517721184519482892606341187740272362697507560939559710299294338300797222403400111877481940860016861300685872638518529512000251684634490344369534772749423807575364674574771220107428628384394209974950156525663170174350221631993016385299656717987846497374230113335777102434312530803705045800408118022572895584633651756015362923723804646345645298593057487377426812820029662380444858225808619152998535715428851943427701934123462177927259858600946792843139228972795151062491953079448076041944424007882500393879514508767060968968358198860085047296261713936192927221594679301914044499139093477046552759837276188506871330566167525315682397761298461363547413482262499696947240225227331062878603853789211667145220361399781009238991738412337556360431390014752411339516725266070206683634388157157997656441601274155103776218758961884270052606567387593130710906278238711839955207757400386791931150017638862838467758038869771353340530452204297275932798969242192405909122108803214864354719887030392571919997237090708021712620173267966457223410624588735168919933257673006340240431287644427506315524471497148223310222198937267146860160196512137028557558752289907266619599435185950854831432905667502594867414265247439638877018860273904047240913215849297853641564099574334815650443374947124765317222967483996701014405107526056575016677222329959312817158305334805936211252684910585298486082722300591698621100251399352052755890489986643541432553936831999217066373954706258725524537449501065405196742451029716550369616275457030864666590209273880182444521527147197087910551233092189390390150195714777687696817388000320223364415279216642281041838856683907104292988231752380391169432968793351487816256526444691865000981177404656853640723713256286068879604367436016219788270392671008649790822144355565660252987691194776242876958981634266522663794870847045914591826535153026206472385753078696081678455887468140272850968067971049559992010618940271317589738806857084218941918359821715093006205545641470812977631789032806540905384588014463203229484895983665059152419219838691356318896299945345040534694546552209418011871982814548037162060702010189540013311934250431952979980073394743761622003779897735600539480242167373971495627716400763031205204197605301978785751434546609471277089715117492756819192152220004770751836783936416635165109003296483184369601731266069639178668923173888649320655418329549054785954859780545923641331745910311957757447580392895084968208860879601352757434189295444189179228490277413827971429522202968133497097547475549589131844501808722396116857656643510349839330652747676217516522661504625818841456483578800244675145709193673215217905479109379658886737780052097233228989937769817818717350359366955498774880815770339816129973058487514396554786542780130916869583180373166892032664983302469208052236152975165897953128278757091403763210027363037136886256827273393938183273349058565952120788440784388921043387925928241921320655259100520379472297071303161798459506100777089010580142132213532643787415986755216610810487583299128924615785265356580687360603821125936361833776886068305138969691206998596853861629219529919350320004061910457085833232359544321981954105979457425684440636949922762005084354853622609798158165531226020436544085503508773123848930911178255927327169436396327072667255256723549442879407740915796350730791308877388236764914005252675956810996246919957452856929995662014614822133884526294113402005203571928910857233030161546387971619386792592973717778793106729319950323873553466736035068677436682063900635231442613122239777120950820960302468672205511729401586257459678890628547604480108414291300373647850410344582810886843799425245618433962455624679462093119930505228241502024930337128826873520203344242586420072559578111129851876075962296175491542315158414960743426681265009637990947617364798431795257052018483891524243304359917881053646663887897099486426717177858310629571730582308293449688480354792519407062047334099713994973294231103531855002805184859318929212363528195388400217922642859860929651309568549019069340746678828527063354556643419328898936431128642203889477231656516928045334097410422643645957541051374133258624885826778798090363206470965105210292175307963473290069072667288310220030716650371372682592692179300284405753183552850056371585903070888508895899130616335884985185950009399269792241851395055547022314742339623692257335424818868439559732558929402751359118606511199546688802855462985371072675259170732432452212282745978310513118661955418604629840055645527178216221599957283552020849419583450916747648974928590292645847225109406470698073053593032840647536308187114657678367850883136247708893444415213644047676934241548015654407312269299297348642046545608493835468507950678710584082463710644242108520082134551432264769714792737736331706590966933230504497780539608830482438054128271926431164905977833032346577625796060170229198244620893931860304607437631919041732250156933276815295901884842695557024471710700859559937898144513379397229651942647930390003395092726525217352235586419534716905673047817952820480197018927141164177714653672707459219914390138299663558723260037943241244457943753688419608872694770456687272808234833275847290112599826546263596296379291332150993550679657631260154355143786804228981709095115828987671493052562589278418138779637727730214475162936286301166886230616422182623177479683889094915629560316160729107030023577497380103766079594049170759553916713693078420520471167274288888471837927388812831777292281149377208001307553556449277606598666447305549782279611653815087827424455139665780928002865764137063225591910405784326163662251550430446462905243191496862517577456534911499548777063681418812659072074989273813656420183160341846503608437653196719403164059196855498024831872355357223104904065494058068925501440854136429360951938846647098670411090890492751204184052170832010859180082080717800231439832443118464848817048712712986138533604154792887942238301693436808788069316071804931332946346204770560595145748356289728447681657941442479285111333622634204448192107649043766867418023762995219941325804274991801520515518914475834827708725386519590831692658901322206815036393525497936374093191373115094355095404221251155778843230674412468347724547692743072807649625152201901214253479252797355820048281143842869889941107407146545980043482637011702128095349672482815194784087691486002578689475027759242464858798132553042235383578212313450470842191418882754619627723101877041011898802053029431640434025799509910422866614529537411155544952299885128818077545852212713872838341345350586466700662828082616887097845614605368863124457677924349233758831019778639678975459440481315753365440685413810637779225348327065797038290995629171660439111642921329878340949909210757427673255186092706046816902760669099322411103053898463938975941087562505786801795487035158017851580962616932098392794592089141066022467262991082196638692508883010713844900704116209447279638563110151991393447678976211487010571548184316997232019452934473371886373730817198964486239555684273693589391357313334940532984710289669321110427466186320567423828589437616956408673599511712518123477611449230638901351599034509146712641679544188939787747798023511268811680730499949033439601950853750292042918007823168751059703059059076871268664477116303670561439560461280812303092336315241569741086947179338528569684844057547274511096892091260019208847993745828102912783493067141051321644504197609797191117815995370266982815021228751507222706741336164232617769816560074089974843521139938416068658354875111106224832283716254091541802720584328148257980506171590412351169813091132735950280469379400642963768673114922255024263183515898770029320674079662019875584420995554353299600456205469845015510606412391185719396480039588440283943695261947028936512498912061673040024804338502808547140341026357841782791380054338094770690806414865798884246508202165141008711070488078313591188182885420301572168417409833260825008515289827646226460548387522839091193742832124876566272964344265002123379159675092527182048968511953339449213729220855377589388766153365880441873113660256221948827440627970844808963703021385381895718303917460142422857786551701050940512082023795695860232232586166760039453786215797379597753177410164388399364439986891607392340187737114992715341310371636578764189101467878881862384730669295567970331316211397521607836134752727019143382459243212182745612142024099853750008626000006069316226764464724792731503788845997687454220114891426988473264185021423971737972101395614250947933565595691147183524064070149330969988316755245658460395914289957203211493603591352959143920910931068996628035574239445258205080101122514000373934019786578069008105013857025128168808661337845950615555881618005545722264555836454104515097221142862084925621522931104187714069916025040658733928127008550989820123349661364479375666799872224050225200081792636148703644947378132496815836751579197496506943966729798009823545165930987550445965564040849772820234391267716887293933509832613849673864580243009413215235158555038081986232059867277007309533874454305245195704786743035474394016253475138125928044380904473119266162052353183096218262012266129466908725590027821748777442169090179397512684193897283402212437868363403963029449905596064595318717155213316864820382199925500581285188063048468402879167379203601452267468211012721658518748200547208941607674651619743468834491431639607930306883705079355666824700297059055957053668850498989297280002564066013649794746385368062378747570841973649821013027563484442970683569041875995150046427925153059483345962430667708686292963106051536457688360574932023444931115951493630287322841356313420833219409929025596268034978519798113790121949600274363623138590938265296911682163993799215505888882629192413567105122641748933305006133029406546766822397020097887151164281451113299260448020305320400268585207609848759570123881710699679938985027129366397390364132664460088892722853883446352885216381960777824434403501296555893963173048825957137371079431904894239844758341031447271802359730592270852507962932672814610594979751948011884225066530208517995379837859139645804571775660677507466463225435167832606009889348157495503131630491631666645045589598239980953329079900969878702132580864042898752575158780111861192191718340114616443424770834073646380044609131603360937849720481793483416106314730423064058972579277181272761431559381136835959738549307552995668521971920916358134382707042323158049367129669936714323058554998938347581439848455917597117272248199457024986203919254864429947754400297858908726851563195210020185907203210967631734217420090073495468194579713883352000997568171200476540997367482031189883798825091048600630913269187037284857294593174237913443897749064213862319691622211351442692204074509760917957309917596967232988224232536073307073292254208897262234269221142046018612605826376139090204624241854415388954945640466134505646541861269617849436248908481417868300194456701761564111687676478792427012748738306500760074546496448118542055074576949316498149144964976389739099526834219026958855644498529288184692282652634684531746508276510291032817505643334152452267468049504101322278421602572724816531157696742030563273382123025960683944158398296133288601385037319809526656773247499781597667434592596739512514639732933039282385974610745743109591445220275599744704189374140343253025719016846800496525473953644714225547482429512387930952091935168432835334653902726404502844973111478373278412758634028993580184314301876295557586938579164717572828942555854653238392623887320384345720725643519172352357981952404116515176563799563316025034507043609061919049401174454071435739316183841564092256821779743017763469431055438754711696480956066969772291222437906573818608063684524549378472201356259821816504590229241568285466248833507109111337658351053484723811787127876906173441339715499302567041354510586786448190117522141997098292179442320825805476647715656302659310293599865404282840098901181770770114730869559062909416175247320707551443866521899749377735876207077555433069989083923295250230404918853032795373418808406908413401337332223216715902333698873215505245308902953433248046339854374329841466171415748414240128747597270230904062935728555901005811470827848185658196462081979585699381000107871447638504070813430072703349463078177649987310922473466630505465646842245742630236981506326212376973795409456595346267790834762557185472188973565811876318830085554808471302813219799939181633882883965438773004719869699957936845581704862296004794127899441366419372205759007039434048732682614897571835535806050968782430965546776817136350272917891918616994989594063853326281256318159046736790330745494501130268853612832750711720310330075179188800913641485300832816778577286072460078141390894163455905441046246715548315833233279903249272298107599382984682000510290093495963265446094212512806033364532675579175175589595107520222931792113203197711470137538873229604455472416033767230963710330969023518732826484053464593155354226657259028413996679319845365586422194123685434814585991765729966054796139946689580520573379771230664236113950691953276220904400504139975010932405344449173534154733009120351580155986286293192544269055657642790092431754520646057424590419028595907572156644567238076039416605215617705991105251749335521771857783222737137955679269572545464546588892156226385615952070932599229779309697466152672225107247927921498806672088736338310013244988540215213351306726736878313853604037377328057727319757489034346911524889423196982040637557860176239546714413971104492185065426467185623631760828721721684409957707274106845805737143824999967728327245293737728058948417755115394035934535248556696883405479567826250868656918832035158570384984998136450208527461029409285960974448028096505532992596257139605364173043192684839389385668158103183879819338056572277111589111078190783394230002933022338229096063932720906767784800842848868301489368751042298036175980420937592349951967862458952401294491111857367621271509054567112789295288736342896382631611513255996324124912172488379405413976646177701897854664041480547824443178018546470318916461508765356294186710678512074774405778568154410915604846940286223389075231472872226509624654084511186592555925875068058307759340907135769940931966025470093457513106734439682036961163511053768705830161346040619856155486531326049027931319711024686079424651889609029364963990937208404644296306272683316968768174346690821999605878887225879675853778968724794209596757544024882967048954221900917625413313825880455893389193300117294255216892459061937151502887851238277190147876296893964220654423065628069569778001851594778612946200919434578597673323274108255636060905810888561881136312521713056174706820517223374494983329550755482224354287468720424815648084903925571452454476819035522043837707412585083254261252210684309109333335245037551578453521947803963148876302451967999198963444006426650764709973129499151434150162304498332344657722796477265964017429313238173063990450583931644338961321412738496064381598660191343367692048809952804063303397197509756059481967115920064304405180174060002085801394096709897384423557071253466766763483972343742859738250882127453700342966370470657479857098410297495325740568024787977204381053986733384437683336901798074978756244869635246029733926830264201079228060511748178212925871735830643401973610895895646231329798505520175738351092933903809178497711059196497030975732683287628852846300025997716415527247947450749298529802123183843354765302953592904381046416460281746583414354096599401252957828410451589395928495311447856636063503620298150412096249876238712394263669562285666729206246495887819758981915659131857385549975195964699329416911060833504603405226801184522757960109354321524226621140125182124081248210049895783047146672308746368190867783529062194124521669788861900930023374761925664537297057197197830616671207105838951727746363208168473344341523951202409522202217504947841179967064946450900891541824981883274750378856450141465446871793993470947967645318972129810789237806309015563898788216129775935816588085784150809152548072387203778396411673419356147460089638348735588387147957983084635160605683648664446369940548750745783153970256983658697516754823089414697031003988658627596109930492730070662769899811096202211120039900112607950418686252031841015415666359643113500570615829655978465592569433076571028480338581724290810090972014598865506369740325435615043825976984297226806034290344168860181383049878789475231905016628754624163114938066596772274151676253246314812677460598926278806034438459408552394786376615781720815640268916411306689507142691625092682271895523947416436707629565308155510725701199532621555562287124632139941900549165675496720307934643838407129150543935745817494493311953895477345408521535149416904121787745563296569686658426472094944069768719873558233706957095937221279538758426818264229969138370485207660908331579091699771591761561725542451873162518828873665266936960951540158466289085606284451280908605085419444772153279224473447588594403363032397146355981996606692675809126926521393577580903226146869533641502256465163334574342423138380430126228811247140273177768686542081372027747083918096145770248566703177248053902747887511903437942253706192964546428513946400400318027885120525618206113405952423658640497384621840976392149596177280826587722257272463422445290593442118579436069648947333483799217769707604283058572892779243109313362694012586324319977822138385721374076520012210844787854024313966372566886060074505363694090413719974907201917018900094739646150708183456687962254279714702144444365773415510393880055562457091872270632200828369124384324434726229328824254299888849918561867985541076677667775309390592962774635085080617875593716554930683950298361201653861754640374327329446715948869260984711278819328599704733645566608863779279947838418981273235847123950014426677409446146975513451422580364130716572623679517462929121616734982959091230957980801379015925343200067397866432711352032541041741026321306343578080204342924695408330849636267668860667337534290150422605076482117105810902554902357528451980686171454657014336583753281026867632700219919152529962077707395795109889005328200757174615016588165959483265785138767510082213110040294580506138671316777004368437426243978470521879985503770783904664414324469911260498263769228315650391794426788807444916285731199224118788434875875397711209402941968514282090293341779927937645888427247934545102337284584070764782367650546044224143603592346460764875903067534563389379870605750327062092280118024948839049881378325544735003025501261784679041710744405559403731935798182365031622668839459459351556259142977593131710776172060771876787652924010345909569838747527174825823911624891953810246464815666895090684179057273974838121582939583997632500726404508653722189496117706808920776036780882509930316567756421638177378602889044680181630352115149540735816202175150182654904544461705456507442707434948079956352112629121435534290268633544410878405264361996677505474456789798908992651588767778009416842768914465983069340833110007189783033651899170883001413840835228656285457250322774349142605868727670881089133618509084625094129197434516720898219369096495088827024670497127672656302342220740280356872262535270796063999259680823764889709414755190533175847731170712709361351317160009237921587476225348050175574447983976737337452577918928091641118911229845691921777682873334815251795934137170964657756194164339825706128461058626244194778671609810192088036473601645598993673399248777755511754458944027726509153874382272104715634757970420771121641489445002332749013511968018005388868140605824183590164455606766261424422552367100089591596196575968719259457181024908476325517236549121204613220667363599950769994718987722418045940310679682684990084746496316962652669517381417795313607368042145571553134230516347173956234454429331556805333013092312622354615125657973145204005660298934676878163266478279379351064681444712337864351514863201104295149655310790098094868169219256080803167807213657257005749889612808794112927144419624199846663707666907390348624228518865266051309801181797054661136406025505135883519669435047313745232869020112359099911305393057459509525003783708128677313102698352720634493764023264741228580675410711740821125585008455517915132903352022898283069949906668542411832318679940945588245377213792610597548448705202814662035320886873467532899587670409721125260563503827616673438758870939763970542671695233054469705596405048252453065680373562505901140200452204720271736435995526123751954386620980304195136587404593681435726259030968137980569798091250301117618407969192873818250738173064596710628986108974178753396714326706627834827628875076421631348512807162154521082565546243150824090016560695109177199968972873459826535682344043324289144630239207919326110748824933009534286288707600415678279548425554682138896951083380742176250417628873076097744045329223944142811041203747217250968893329822787484918192090718071607468346811842941041021555638618815970310933510519720491478244181950325311716494762603673275035896282092505307541076979825818091875879652045151003775457592370155656115340053823652551003050285548154682541223474027445912311633176803964008118423080650186763594951009511287788339533760166685625480055770795284601224069099489382978576045134822594039857685981427171039192460400332610685733401867258272849510432069606631665778835328539567087840120001320591978325136594834506653003331624873597866601523737950903304632949280394789170155393208121012522375441779982479220994615754654366072390013246573825855233490355324856439024590959791564317406817656018505216475886540330228412997256293313537396088047180044261790484503159180205791125705472360416978733529656246901158396217069103700481793421694814363547574562404432890010538245109431323071574502979716212824666594937023475699656376633694071969434465882329643144401438868677669687696434768764064871351803012172745434357414905833900250706043492757852797399099481106996253005277278122323059419283237585717241161891428007166165230942253217626005266952572297011180031927421443591292092369824133274434272869784628817515794274271746363420811008641475037698649627977019437529981633634302791525842148148384359247999012074841980897631151844553532152878981181379568823985751465362810839755284086377140509872179652382037095932388213740305563119088466306802095972709532834562305504837867716066687165983502679519448288298344324329608643196760309589000680640118927810353521186621896629366375496272834139737137627584581276722633734721458405111926931008214588557129917938901518461268681276807981816710465629217904950083834269401716817057010342740952483761123865919266665002597495375437171635091683097131012660475100071540130665950083877529207714585644244611557120609090554054477675032390225227953409329310910870708202399387594866865899407018919619284945156150691267737027434637698125444432004885111415381708828456737362558053096707257253053388560763966226073574758027326248614481343475175699158764267681792710000286330239279078836660917925368441942490681567803081008667606284984255334921891738534086542706402919825135586539326609247253963486774283673385375506150132982455498166888515128089432647778922931207663160440916736854278659029786369420257044173802792545524532080678853407182344308541627582554025082814883290339208667606234455069604339516842731446606661710846118299068302374284115203776206342235198992823236131099671652357106537337702505364024768143169344152449927219519908527527187251929559191585788852179454538722336983344248485805057602143903085061980397392226040467870978105415704954441280143143077868365394806782839284467191815824996797050820397046212735218645467730999364937221696729735992863150160832031186687612678321126759156116736456688352062617775006489249343809522027206662265302163221795210136345528517425011506601392448107221328998648078360160725942386397483980678053083735958559220967842663940413211583838659487093195948188791267446917616617177762837036447107443554172485021751272848265291375320848444611126215494511970262193726792599067935886641959723680581198433949748271778584834474315826859000754327888250532738497548803150877765267993152544824589587952652943863508955473983991185394391052719556449524604589545401058167933488151736087295951060291732360554630738906477058523991172077403238425330278189069210886610300677331986534191324269850327903453296249902374869333322238265228775171351039894215107078571534303144747304447957591731301220205707267979561732834425123091310095845183458631225953681741064315489968284652085425240885409769376682770980803855727094892194337032122889040570745283896952943887695577475377910281492552673323518584934233845882890146918669934537317770379473190864987670122833661349082850755915610880326630750131013058369240102578920125370451976824108791652421746943743072811234454324472618740974046894201217533770788008986344490947534480747065022899269732624830866943408048846999232495897473607551054149589580153877911093119272044140979478244256828438353995760752359988319009489565637306560891355576730761400735199983607603273850602294380090408596162605181183793713505758111209717134740612276135936713384704441090147725114640430028824065096918688651794518373952606133936672767424814447982832180691665098861747485471355819982404458588377524796007558039448940752430267867001033347978478590974049984506822053773523409912430287571849894816569285066391329459265648290718301086328803364924300131325030667124820553694728694066544121929367554166412917728670576761460633114305068034240570805204130721852082795163916212401832408487446141063019713599312154451135158778938763026979768881066654256968722326357939461535275262975480823766137882263670117407585762103398370318383578193031520819386650346149879914042619565876517553053108747625538371566176396375047801430158307091213718048691096055463690755016516137596461457373832967878004918399560244578825056562384248961065741668844496784157337146603306843514332516927556463635673112460967023189623678198638457983082608903314691480301840367673419051657363186954096607018531825886551319126712308246184294835929781182807415907177263723558497697203498956761550331594383211404881015967140666456854742197590832319189519370649043613782492376552021492127654392000626024342678014567934322684347340966200673282518370650603507914077394784526233854062476758627140896320912622706511842662229778359299903012941059865489462129991506329666437677252392635067409018425374911440623715736192308301391546918694416282490986189108754565067293972929742784351048470386382213639565017029266390022511353441993159674306904501852515527480142721986743968300673604309486730094402402078683767167602286336357924688517741196908344488717269229090783037866065032051492131357027901656356463249283451183786906546704689361677519303462435444847328736708013794705485319215475832701597882445995381890563627429464942551617092468672786081051385309389654407958296874380335362764770023088775730635156336559227138875323978300760147617069287356738623927942077097214978947709617725792377620705309941885093254103721207475663204377392825598957246034442625537070042697927030602413631014294383544493389012570542937535503544008895866896327528665122051232722019759781426267013802067041848605551430137897438693733656821508410883342860368990455512370543916583410943304409235813405958543540906325488794681307854251876086911757117828684066255305750390678554821735980597093808794059902072199943639766028479745967841266169033948627504387778378854547926818784449049314443064891946627935227221013789572400759396611542060314842439194418361259016703440931149302251593009067636787940298675433473713374038624176463248924059158798535400149333749700406612668095886549819598733570002262455441077593875003511000713338324895900325342049365842649994070217790517085474043037210670991982325062660380490067346217610626468270677179370826160376532463458193359547815356867095796753598957213624671696916161889686399334569492523731529563655835024217132941539023230419357871303023880140781225041258294304542455749930311449267244466918856277130735382040407594825701387771664244821076155760411813536843485056212796191856680927447688695811595120331583422031843036546307314976643724425526269937817079593698938417366840625103137317875595339975661891224439935035727633611894967719983025405204673959330361057778632228287894915764319818388269540266213578977823102131991009920151559772193629282228656092565637893170098380598887528782602426332258585104611473871473362330895400915423173581982330994169093032972954641710337298910132482969012533627671246092500261765141764435429741553245284168091593327911979247730477139245750439778031367381243531384675810509758985975620258817370222617224027099451811036225948428784865208440789563767591027632060950485201718040286469684322552538614844935438696589424031997721368673551428409599619447549158297432659152930867463534182058607252205217281890374726348357681955175368108923592529503962605107298180526875332489055489237927051041756421366926332833006507051066393332268678695601869310841999781404620077441135871132407009112018790928338167506369350727478991390973175991823449954035349088093069962466744208909971563164956813086233610259110644664450062995182709681969762382086028899940295877023709446626822198249326456239758377585960147923673580984181922355956696869762205076039279174213832440340936009416065665681381600423103957842013530247284604118875845069069643834020958519709597426385987709143130636734590986082467552086737104694751852200586930048732705864624285448961129299805361299629820667427126419889943369568771769933658745958020084617253154623332043828695908374402604648688266933723246669509130499859978562644410689089848626164543287577767478007288427130538120637849352992753496821157977717779644865043897411690972509864633160746840289435233976000775991571701107941187206070576024958751813538500820083160901166687250069173346020011886126877519242032837803317400855182241062936484685185286891947578732800436693451872452758623603583855889400680963219711237619401536802520360640366507126645229907245552419571760965239011233129332204731713069683861349038214710185840005662631114813236335967444749219377872375006674073238997457308287897061559427326158063905789359787587059924257802052290652608276687234376616323775118831110709517952527751531258516104154504420500570006195354233501772353100206648751545473301318575456739079609255780032223694060012068025945457353357959589422923856995190229094197423886068147411846068983792804008122721217227028703768890163694208705815526709593684746982272424243540151068965819518932559911271658099292260904685799903627300386536659116787317289870759070368707946648598311285909698639830935427691235928372207677528409131959130419389699710461081320192703422417135723747308155798631406007737840666187060865070222938802316254927331069480428113622029908374759464373425785864356471540825596448417363902524801566409179518043757769722655475427916522544001378480668900758754639998633135423991566365978858971899791957664032182690001409301126074654034045615728739996565122607935568853476770492858285106358575377364785721574575252689247869142258135797301218935662309989113544844068652533134994184449026273233634861386997123787737399654539768191334027116435456356843001972299658273807702437665724977004908418578097220133093980086775525022203899059904384940239567646079666393107105739439623718030646951274849509244262963689358845805260938223931868882239633392770086799483904824221986603429238029365155767838305726697261372187720244105335809764521939295169161855995498161210650178608851195303869229648542554389547549498234107726092149708182081492527249683447956252056368914036468408172814299829946968802061109475511007644264193592048008944052619482683047684601288562747004019644263331619506572094336041136725377881210574374367715930846410903382004591818859802715222455359521789246739891571725585800366885579349905810197512329738408486694070011120463402106280946046379073137284296085257554718427056733934663561573175008751183566575140012272547444024297917218055388555120767498578030965359929371123540433843513122452946790093358647608537906789644768246884725633370732188652304594498923097724045745272383206330714153108939024268412362089970917040860111798496915934042187379607866313102520939661243406567064767084428557623835666943542261466448683888140219007825795716766150570495615952770822016380010226017046364749043281948397001569076159215225289064235642647924358758945859197469653373280060290767003977283004259194769460628447209652097554304496289691432941664839998479959831944072718411293376110192361829563473296348291932275170943108211648540889321650528870732827745506050103689426354894697104480798938127251302924426354192503722276456177933218316200718100474079954673793750327308984734649168165873147185124989438300180860746850392246570997483095714190244304362485736081312346885614078008476901634931894449786419683712666220843924846725542189974145609971744156329417110856222148056120467341339767361438843330890291848456505000758249836712719642956018571099652703843302310444657495137562786517274765849054367289955740293972663512636856188047992572204172311983271239274511842687998759919375971447605690553477358753033581156017761845393477138732989637514958456207082494122181417105543685000123281764122342680916151678870381040783388634510137076100222388459849358647879938483474223904703249755849832044070531168424739848877621366428469488780415718548042520304897159564397666508702650714291806499385459157923636934579674948520103908486186889397891881911018367451589290913462296414541044741702273647763351639421347011675976802364517679195143872531893549135501386947244434837840601980854486090712834121416989907695160006723834763870886599369488230258028830475146542739974632902432190047469277490172070076986677149672504273089980231413871113398369058468589193568210554199600540394229709778443387515005633598246600741700980656068507112503449731902956330900707864560257924231774394466492146793830892142905480116152873542166640467779605834107912257577231662387699862134335814687458401951665772686271229942592874617638812326615000761201515928612878950280911131488281564401093246467354415480958895969121000005014977661083337873694568020310308794893586487135446182853265899038670623707743033859441957679603721232526690322796243374445037030642443061548342552527494706313570134212762137492348618326863018805172605517132279825432726310073234113085234856140781253149162936944609994168296704795902015574746093762208906039928150047545248257628510594632025480243748806347289171600190258746623005304439178988116492559067737930881031162009810212348662834810348000767052448961570635813878504421188554155748567405400823416461706944426496964272440487626837564289690371355448690321668950263654554140396905668427569841769679429870502493749221581574178658770318047616448069295922042272529900314421186104869330504654150762687849018515471545231360744765285465632988889204351055121514614951142569894917152871700591486766712220063902424593295841810446931898036370287587221019447890757122928146113907993730034298279975219671078709675484609205101898022172169502351584528296232856891639544637581880540777990705740854372046837240013222388978312071008003726552354860973071700394118310691821545442905659819765951880498810186513535842115090487219270242064178733745557095716806034308492858318644982916135352221139639043102328871652121049563667859538496971278446906391324453692364239483424730906163701634823950295941756004923782373878478446638873324744422715613309287402495451964628522135569686467333357369869131503536067560595695446417923785920904913077269940078050584202664998116922470049856972444875036602808678160086816245582644144851760770773928151752018997441147881718558855739475370356588832095090775229916935340760902110183419859789621011685095065211551264660650268723809056537177676639393702538899877138677364507697307778477109307648228327375877229123734162112822150530164802073603979707649316732850317161697148636433877888742152356062290175131784137321604160212437219423902681141715181895143281645322921250180146595978818009850100873527771236715971686131393709660431991918476472543881927533749452759528783256043472882579016117436680769921767581034699564492506993188255036286285439642760075906367790895736557138218737333642564808103267833175766932266277856613645529398848138990328365810872872281245263150212269154165677825152030902960410238080631888680656236450075788877519027313129791447561416555077416866411105068824056829543301198752820529996549161023980999145215622239912462614657562245077108409707404882512584740424364090632951084565095303786253312432500728413993965016861661947462180815574728763871240287872183727170075921165650147830283192831572813224121449694864602910416643284163054123924577620586465879122978983361543995236287522837283527072545836340894166806438675354733732383081798260234297751475322982021754634519252148174825571569833830046636451452915136755353864445421267017963738761278040865901257435466418809664120505924122311981071714940651899128796143648834969490872153095796329328358761253857205928518068924993100031033824402674057897400284916715702324134223298217393039124022671010330110825829686072076530838765107135365937783263268898652793933521028997137023453409916504913341327425957607650687297030536830868984994215423619514176723569929058417077616976720208345366078704727911975215625063387025065840696505779522678363548782946294124354211745395802243733350710646683951490769737732430450502968455968787356794447699287559581906604848498995122492928129165801167175339766973831406847421328562261561019101386352776864494416409746411145948430843021771380699703848862836835846531158200959179874565893081401659278777233207418533544682590565158483027153369415289081941620480690017620028336749960454598236097668238663435517109720486239785852228958212316637398087458194594669925797322255558358278157093706983753971587840611151222933324524785949109456503982910184331218436917060320812068391688455969781504431950840399773916704106169959278502353350985825517694475875138474217280357255762296183451025872714570382081500683634943106102579755488720824686388385229238661830385437257413849258470101117004334007893386055725054335102525533665596448700336323120287066013425792543466369847065513836596243790541177457427877884738105674924123540527595124457601247792540827328882870528416685513713052207700417965061173464056043395481665163561720969102493737639022823510071503621420812798943027093537199622235360697819474993898202332437700847410468275627767583840978064869660644672649275368880252627900423265047604386494383998571020487923938465655271616482115300970877151405010986737798957815875456489074951727748617834146749482365619029824303899220283906546892838315751022409166514053821467594008407096814287054017901144997477000548136954763049971358561216988656103390687366765046689554047046946110898134240388884980145149151354108722236690970263117112335913676167775123729392778750039129850374293263082160499979243684242530652806654427307375173691682138377735074972084865060183650290686913574742890551345634044653006527625660835163827113354362493845319558178160274186815505558688584866793989735668050367377179630925919827361510778241678439800578315354706096948003268458000606907825871379019802393676240684427399663646765772863303960805995821010292684765258248473030982333580114887475490840265963368020583210378499474599378283275735542843547920414742675801087210211545157594139268796374398724385103344395010569858336338616834625533432323038201131386369368634279313950519244903212732780311802889007125504590967201981043284025957770980846516105759249969780181164108716019385021030741042174598547110828547686254625776809267998502984685665117098176467739894220269819222730743665469702936774095628680366820616903197443935965682939144162012718136679522328949609902943044541085647831822749172092748547552296946983575260085845083613571285432269658021469274576459020999994829298038524737844823202333968987080246948408202879177892820444781365815477733818142687565815036646333355901219764118670078563584288351059352097514677358042082127760966767872478805361714401514964813806241186465433859134522221003175750263904448060592376616312513567076636324112238468247755464338408209081988939974117568626138941974679602301307938391701452013696143844717617187434382921991845846380397263495129701143918239775844134605301472347424513811305636272726362159138086447596068336584317529030590358796778693935714563152270533803316390229988001778131773803656600346766054035856827700878580197997565505467535930505638126912553429844619607483521211384968516137791965059834570520089729176972858640634700318661968376529712820374780533458108955925300441801175647202979513061083257817952704614497464655904912982658290931625246394665328186888000628434053478439750911809085378058627654352663461113785840638556309955569245964919187325959087850942241936158712572199580662971703043477989819647722513506826225618504640357302248452191080302433761720505779952091404685578183964511180169306129860000194585544911788508555439144476226047051468477049535002830597535332908546244546546228323521115661245557567610744345808885306534278001558658203279333474271226261576820865360304975616965082508807829185231355110227622366174038016264139316318132110751431422262002930275090412300176368020670298967189144566642109861013968633850693801694776312082854246383309105075769414767010423325161446742896030317701394210864976343839721967248416668344801965454671732395665624798967240810745401956763258960042723064136855749622166320618291661816646381045324355886034165979800860079704668894052842642748258280693657459258892120340019010617898038540466291100730079146234593468368465848783474954771932029290520698529957384545705425796240334494767710315872516978312471918547594978338568633960272620002042639246234001917916649800027722272380151972317833043919908345649624750794409535522817736218541621358086493164969784848895169116427163448012570423577193692900986763365618424288900784764956641167019930331621025089780784872194521249397092921025675001299438856072070391663320304907206486721257062889715830899063815136424462272065722362996159489322900138265155122508911250297125831436906325293749325532746059348365396533199958934867435451671524663190014563683069306648126987506733508249803795575959951782806138138597907180954735449171563917396634938537259833110615911741473620133322339486019272895071747981650455726804528631296805551122757386325363542391001262058651206767427200707605639178805767827768173324316709479414570169038001405412445667744796459142316350093378397374634470939226550795824757158058265893528637021468740186608098557302788397291021292383622344822504755219444526278350190990758568758521452557629815400119511771502980631924529368145600647620547665475557036518985133745421766322087170708358406487252362137713714786216195098370696858319501639686478712370561949747312532110074942007547407009523744305198112325417198376618198707262137949386219179187838322921046231975193338727504794252762937454705941572034195982455688263557539847989933299051424581062609861120338136971514997269680240828224037691098920467779469990077339744432873631351167425992612308197246440903982982389636568561916921844077643868857057127862908675816647421477803549317954181801288993282263124636389413907182671516275496819521616139153578058695791404080182746124554563491476298351781712600037855918299387706875933421343860611284137759318441833178268668760933642935748966127518925293822549659985602851195049468048268484914831543664797293274723995308765554412305217088252187134685657465353999924503683652102979350489908698855360855435005389119534174143356430768399856836426068241525157924384001330076096114093188020687621928675340263350703352616408259531775747101611808936495361994614578826892347480012304474234520198346634895199394986908482028203942363567211766712999907791469378619435972008357144923707057069924082025762177806999876255080055195515667715747666257914461416276275565537018569239868872596095392736860458525998559899661860437850928169622267363072524142944322391528897866624807330162089821744424870925971245054646310376424961977482825169322102241275294469736174047743012976455647533572240350363977840484753587178877183643229056710103675024745877366746136015519725944055586727434096856512056545390366361996077653154475218474693309978133520846834733332654643763587808879251083604280374244318546868558564735125397596670460514165979497427230178231661591609818579903433492888204131883624194309087697389249430744755503761750896771370069727122763251148411090103346326744492888916426546440056721902782170250969808316769376045614792619456179674975627127367610606839480892668978587476920241682542349208816976071727670219036764075523484120830935598597993603274387402669841750958836151920668500914426950287627124064994352169216540456938659076889923461845930051391130004480172960654057628109639180802749762542323231679230850296326725102304061516938436936428825473668693402363879583307836631075037319842199959395896753009833407856397003336546251768709548701697136365069501351149281244090308199672396746884632169222956565679281492192395466164529726550632579092661367897580232517180391457963330170358757326868393137714481524720314637305813128747999103869759267842089513360148783323361769315177765451677592366876964327664092915269629342613691493940916957374891366221384430211188646551664151372210800428624940606899354565934434813085200576031626341797879779038287611158913689092963711917895682181189830981246711439333063746671259152334613533270316162732699735093543756706466040466628620055861235577429490742387429553312096816038293410353824561882047367643006524205848926062741675955791495573366608653676703508530514972831739065296649608342046812480522354524776062580860163873128189285164885269414717283741372732290514048326335360553696193604566542465510620542001264467699417926956520560755340488184436572103730532168380357125158560927385612664789682535216808355127872463049152922901358252174045601627770558641425831802158069891303521606958956559904017717759248993932753852269638588000423916176571271555348353617948921801795874895988529482743542728632740476352852910989549125396094582427610983911940417235095967478218931797837170176360654163235104863430579592140848709627746831556077891354232396699865738010563744526576126055490221221116609057967527540931504036395521393060129706326260974840828837329623106128867312897632607898385932401091872423712240492609546837836150169806602662615478246736120828536750229375774506275302550722927950934543724167485109588070249123452031941313396187493302581545054135752084226053381195906453042580735042520504391044831700297469554047197348983496618423588532845095973106360526708277742852090214297372969067773834049265229754665528409739040269936656323118238918043231553679002400817087422895109845461387040948535185776196973198211493841724008663304848676835118792903482906469248330354551883599223859847408637201887193328880265635888077019877009875511271536413498446630651579724097302799059775731006406870865478478673048986784197260694524077920034744558134476910905908745178546606235603419631753108648612669834235200368228717976268250664487546483428743145688665889557488278470492686569435858204681005508061704374522867666764245648752213580676562068676778642340662279138518708660077914686568495737372497383046933892609258610188747244633753735889994695675812810255134359896522769811242859055502337765169480823832566163702245622486273759961400744373638678269103166018598767187528155496660568924476179849359841760423904336217717623006306083861709613868829891972247778412676951917982550277623205281271927034501092468567635531989625826535571399479240662985380066085364169765907726483216526628901255938310645158741257291197697262795049984449616333233965395031747657737062817218526714754175605148054888954002573385196477039978934821272310664790274123924441246197798006544785922943364058669415198963453840549456938929636266252549600143082374687559752630017097645177588799945074042546606182379006338306161551008604711611659545220259005049133056309847430760684808871045349549799979407798565332252288367799695676376027993316589644146633056557387866877565365046909840619277969831020588967457633321354017036179654598702199760443681185464050187780747228149116115077690154540668911413239075473953495307957124646100325624938215944789347437447126291643633632428712116764306594377386823575088601289341168064122339527416365245968859269414641369988290571285640320961910965572243142017788223350754179594457584903619871348329317265498791276446541310214944198568882341979819095314108308049858363593379383986872497133253603646597115162511556631526992374661508624772009448626109467911031496081110419907355671763427907529721970064206744983529126584177177988855895632009549210680084688919599685977712788116645231024957935998906391995867454074708680119261472063755540197239021372393927281509087142923493207483120801672970719869147974398904316352400935602477424835847826584616053903113117936007282821524941489179513400861572134228999872391268264676556323983683881013913486992164846416035189664509353455489891034490398412807701967239140919540625461683716908329688686359487705378440033490211599694387481701986035163217548513183907908604702093538995884537848155291049397345789229240285578504255150651282815038898631012850292483806729414038777637386625990489983555722585958168522240756584210057593443664857809804272036637060104598585765016383698960000992790942824764378738842566437248968550552388908207723224909900198598385649642835322919170874588794145867045181466474221807119780321488307249713052607176903874081735892419945533199812765751996754418725568911969991657427319733247211950415133017782187710402387492733512629310626085522599722891756700896479277734321691782284300772700534994018495399567945480378399346423915974146122790807747158207837177404156219410019085656292052198945534068705166747126796768825760418873829351553760326854302048435575428342843216259383793026098014666326282299772479100595024666333294857714466186546156107145849228953972764929778618834750472406652078017077189264629915692970297967280821666137534566947815724566086876864372823812156883686608033027305191037166092978200289526172595509983413159290113525919467719298353438670411881690876791968350961350650006855276655242043574895072576805686403549788995960478706690400623223205997150486624922489057606669028257361526489951196880106408664345994750580619185716425697364056798074914348161471691553431976670972329835951875748093896871766050830120896409706913933696092153645499650650920602950863368619723713849993177170262049402656310862744437573091591889257109681348433580348164793470847852998151872179581494955953738773419508045307739194633124164790179006689195951810572860749519062207004670083129055588272879434246964328597201202345138976388668448782242449753826242752632203301918332913361443956956019937414975929183527933978169620712562128512613205165729757090999703643678216394738393353257255799152408522016648943266525835042158902446697287962048300218361898144364145959603632146092603079098184362333392691070885422715394925003838242089174372195935840439664576007161207609308160000390292868333251986814365748256760482026236643997034500280474573074541413314336403822678689052440628690651304601620863057445414795503415324364825097229786611080245926032621663930800467212870762785650203366117317400084132601145264509383387776761150513059752683318676149933791832447554806772706831950823747698435588095630103441387556801614626363011438519233532063613520816696006299033209084891946607524348177582922803023562746127467897880383622963695169995330879092315907287226895686529293952601784734317192050359782162430932834570467387137214045268414910891307265073544961709365371770551734389011434791767331143659465179032774032893131388600638541044800003895661938487355753557024801266469036388973840413968399263924014006987470686539606791967151999522274882828561616805916149191498745663406974641560125100958389508539745354612817341350886603019683948256945828417159522607654351194919026221278577380122590312012584125917011435989519886454963529634192310033178459932265548494130203863595769943655206355734594019595570500227222622734073165891039816967615006564067449405401368859820658664088062763890952199010362562985658521406178875203275044994100300559424498474451207826343883973927221712300108863513855743910937024691000899224879426520890204412883686040341142313828976397622544455543378621259414730778749382848861378510468911623092384786718085489320693022848100623011288047664921680125957389568361262416207549069302891366517571064705178259475855439886144593210870940707603906450581294658577532657193645178581611430799049582117219164101873587295833332550803328819068837363068183570270300844696400119211877962196117060046158541121817481896769658361604682730648236055843685586775508349583213213344109195175273505280978925850869348358164383601285561109856902459498428156933866575111182428119337379303135170899200305035614164376326107402332504126490288357721279076532428521379326660116875865448928644170922844043089655553823632471543565823067608583229770750558089286351211336515920938623280908604803491390931313323821525261384053303462805625756429635949664111304487618848998790134714582655366418578615785749441291936282609315102590842087631274014296116851970678753166838685490301006717694372835288325154937339316586867594709627694573353425776700286291830431899605632555237431621644529640961224906314920794538160905030469557104783921175872523326360546158866291355385900300621994741466878674444362369171761928200522359611594473806019335455071171594188865113645820320263029654097138356368914686878105586391234047001342776489308238012610572309384150219700658730844342225230550488717158246217025482879138890682427486040024663414609028243329985270868702038846639737341377908786268326056034125127007118979333562296948210461759879049257761761693482808513239866770666531581706354981761876039683208837869353722175780631675244761271924790963132794766639203513263059043030461357154523120626080199560114137920405264073956927215925772926099547149746104241240515132038642719952652345380496910461203265583120607825124804657351524456022202832786278808791536536650547964274028173356238492156767288525920128876283715224870474151541550566072755462047336734881128884482570541375535835458138078561448182683865592261610144151932566695676483568064096474685927205812909788610448708060829659739256609810076375828249513807288554752293892394985610783582141306153296122361141745338273149924014888169299743836753015528441934354963007294064845702557888771956428341067138233012729900911739251294665858462873874678619084143773192699595432784807322110476073059281805533035045945956867838676258374896160533544222016100599400260367150090332987232019512929079853169631740102543749801882143869245240463573112496482549352849617557570308081799840784846174855699690724010390226304545319696872554882132135020491427738025757835052833683425852791185189236097408211328140781827883571597550129696383697568405440352216208227930557575276046767450780021372583685171715301357014786773236577639594473266765321194448547304123130051405622924095432587527783288682643973573312196638179251224154682603537171834830381818164480574877839269086402256631809470066441503070446815001659150861834163016811859141459391624583889477322090981431726411942646624536563552202336406791595254508283245864704429822885975830469184899018098181790085832365838589344625662698679811147421296266913668450669186706070316816430900299135511904273934631395475965764292159639596487452029233888864564323522885239840725094253609297714298325014873483717278449921154428902133715807576203318950828612862127532034250591078708684045413327403332550189491456009090430681348365382323711966478228628058616539969078115345475245342419686368741963152201871243387371036186653717646751183356352611332778414048731110897692669862248329822874683104678035355868671059836276259160020293486534488635879625691128451134087729516023108717512255271912580686072004383055631458730183687676648122495287586345871357114356118006695087580162490322252660212638218610451765303909786353066456535339336135315791722418879013047922268259192695610450725859498880757543595023458504191763634937814804469298663450382446156927209626023306224681825650466626920698403123928342653355480056656354215245694146744485342822364483506307029314303419904769926820580778430407322314525259907750559496004287808367417739677982617657207736804580819172039800173696632807635286736769342019177635002482265096539019435419401364152146390755123484233020417798853083293664623474969715294704075924345384904425663153048038905788944185847492663841466324397078978391259846141052534551039318411150901360055173442770331448836975949653152387938318161665932055612159321706579922451738863463666415617845854163994259645382953711809366165027790731820000346678712336988703717887091865574439960491519970268594838108347111205170100896416090797565744795658977802056755719734353751631042753853802575169947911663384598967215111595650775199541402041466714876760764496701492027089546921272985745675029585494985072833822509996499723982939667285075244491001763498153827857267003122794303142541060801163447901616483909153764247035206286357074170033370999555067862021062342378834806362401280695997852803797521643964939524243985709695160157338688196236973742988590467182155083292253210170118665154631680460889552411042318166615536851762476766157227378018805792713015780089751812175072828908438634249465361375811391902880980814563225477162074412091748902151605099058882627166491270361811821360224245301925694029336063867238348939494843478365464301777735306625300477152939300713862695314818915159119719930277000281337722042375429849391556543246235677127900065828432900951863960080431476551547088368823955494559386520539376989351563007788933303495169702632141766873693498562126986174103079350294462777812320124840872381934487185285924473851919827148534261324649298155670803436962740814883150442608009110226673729906056752746767722403955205426063864736592112052287732462981056438310733232946514509768490958231978130353679788358196171136396943121478200130911421888972840840936675327228621089910779863663332295319584853787796294157883598535723857551095624370021595995027909288988151618785082526801343416240143507883254514248055902691879450158523445248254201572713899366127015717361712876126956408634252276876497893341348330942480559840501638191550211669601646335645824313850369030520265573427653989783330914483331692127766410847502630905869594431782642753227506650995255448224096346480281282949444789217263834920652306161162863331033053060656419195119008188124465594469443704103840641712940537438230735653556873482805300789846367599064008826865557730492020116469476345489297011097763364018034957540984133780942312760641914496503618838823382429122209676962972349050354860684540313721906250761904169589408163925280933554559257832933429595321315400242883379791107701531394542127872584090114876125882635037844213485458478662491313039473078071691193030836151570097206342995041343831108532654055113204056480222945808015927841286206931837060089370117078986456157036352986572820007243225728601896407880827183357358985115816328738485069400976202920727415540712414330160685539971647924515103122514907563477373522569973036526459302681033485365172289948369119460735111973598001827246425264234947521115695387003891449375937960505151454420322729545534595283008446539051994527986045654240971052233656645496077563395094405344147866101250002130523291074027952720194011273681111666810819265796138112595097071658598990474738877694696483988483550042783680203193120382961184624688723966126472945281812437852166738198565147431179668364296730587089752185082933683112626718478975755772805510044480783157718792405541352899186131811342606298567874274694392256871043332583707475981828515297174754326223088142498384792659153361657474517107878094046292035051822584572685543451459446410002585854299194693183695984922610990858208396915674377442385242921306104998007215022924576173696331817878251802364093357272161428274687214706262266187139618117635930471773769488863309102590671282383992750697224515607831439292451705960788533856045846882923247532548781423423444764017390306640432104488082272264273874168577883043956644081330004572651111076097338739727902722636192262816720875799664745167149258225873378085654112937109067307062727923554598167010811686832065568635519965340126688080814197039536046698675258212104854150806286760552363231199927165361997699905696790283036228421348414527195584505124771544095638842647055047363787336633390649471711303480045217867407904805468615706598093880818659116158140459247066904181603119408756314265537200365040076318659187931639910968461787867858905942252448919748367739993493399901882702719430830915935438579136682866261018252620589190209407882386053608279005496130557208735724337770311099088465315612310208651859124875333025128047556168890051590378145652097760938035344654762620240253382662751681917002090299154135316293477225076792397883845539152394076604397533509663759907061064398962326143879948716287731265491321065088698166757097543250459780753389223944035996601665922687084090264729163372640866331609951521153182871937220061105152053073525862576838415021875930951647971195404051473302625170831781012582969887613355541633469748300858771892295235026876148152691913591274933645944255878119141224180123555437805181642266535897074918612318290794432072184949342168050914909681182654122497670686799433209965195719452397350526348531739024329758514364203918305044836544937164532771259561131477542518185538394177289963029873874179982386118347828242031865504615856532868486199594676789694584741634147948388367022207422718512852424494431927974843583001296572946915142323022931115527909963589287489105123334015745225848025990937336152226332164350667942382556092208768370326380774512768933024621384958975061520190586972651651027366075700097361383331946027387953682700574881432408894558462998964355445374152212869598316018104196198447833050094746326684263991424814021809168583222031776322736014485594031978434965267560600922667091235814447868414083443920754476355850164922161360920813058230098570529575272937650559165851725172096463914983760944416355009114116680185145842525320074072464036988341492174898536783834321029468856308721954385392618055549456455112774346235096046496048380095369771672744260446549144631114852321524903570820093281356773081390816526802658233778784115892132899953419597990140568971247279528069133141280282110107822212529452101126865526543148409838290403556365671163719642720332887498307399463524024486893648561665345924772702582829930113541399367985479504720475019922978109515128186328451848341851230757475966241843876259568814715724376575170050171483726526357739703123682332536471915647317606625810294196446658731196014867029298723721566183817422301246018648191667776757892615317210302200910460605603999875867738127265674270647287753106041097503764922062113477964222349060945102646161456359511297854059175563785840940943773969859711066223084523004291481455096198326349965421335218176534719180298091109332861829456833316726336213343372987896933975218651097984484323592947026837613470734933656934426022163152103439023103059960790861238577118990199468185114671644049276765989765137917020625440936919682589770242227671964144248090158159118370001448194754139666994454128311318407034312134458295385873048780958603041170169839570418673555704799170661926880313376137800924986882620652462733168422685496923686557706038384130366630815586561145875718590184772160568353554741545530310401707876795973402406019099229992198276101109672483227193205164665371274272158064811141284470484358369390785888612981547920027542035795537303134185666295467242659327675040376718238610603477640228877984152494071898980318301765780871060314203444974518044909139313354616991013512812542209766437588899966644934882573347175401852187399858030325534942178703864236384300553329322236271066551384129607550976259314558788441229100333538385071361036238303880418363355961313765471243703589062369418244132439029996853521257718447887061910903716091872147970897251207290631914086617985560742135893782194512327379599097062436035730044914616687637654938034777729895289661999576738960690545737987367988233702826469065429629126428018831407540381032122513565095173968939384907017818804515141279060081461568692550800310755881506395868501231960071979081439066034879382581274994109230199818166545252932124955530255603270239069693519658650050451817080162486369710518393944338896042115221028210860180530627063058344863083112402999132341214546255663233638628167469722450781466046361065225365866659339873425410664333244714838907396196722211452070075257160827835437166643794857424622825715470239991611203753887485785137275806941110396981853850338745927562787033910350876670087268031499077463015535237441601762412684530203896733219693631194366906994885301509278766755617518843391562213745285282149663948081029964691342902491350467598537105216200927659582604079142519491863442682314774412477757265702777061495765349416276467763531494735981690259044801340037813527942747196035520266405378675281920368424540364992112331144981722495767753612644392056497629448825415799753677803655440365137726796119295895842351333518077960080672250117725625476218732782026249586220816078735194026488513883555457878338127569813937353598378228460506300291167571662685545520586958536342782158054635742121946274076474037742962323211007195304838851817026584778868474233357779577961765740085103929305240272105119620444875647976725786777770568622565647933312258650932920690563489588936710018420933944098490052071270733604734460394402538746289266538512785655028027886421200402485722666617008521747999476779565610594135424100315279651977044199988329331067737728313228809679329064711158326705011004403416447978724752990804013165529644223125337325818872832272652515017464459374580464370040087130158520036707137744144871194504665832727593736063032704954940052698810015288603381691408894984747725296688809022430182539038295885124249459973472815149760808209920872867945854114565869914281971781924197959085174533770449831694522424069967277444353521452351072565898000624724330885376008783076194553560382606363225889429953566457154988329152459268763460451559446562072507134924828120815907233389028198031031038946642143295498672626502166854438834173343556309137297594508038992216909342483531543493118214128921721923880134242478421418360553076114476014893009025219229461881444980890785758289127529838560522131488837717256178957877674741161456112159940829127004388391490937535134170971340689957353408161599704962023728422957757608329462495039488793289766069405440760282807208025056919442423942719424900697302240768790631116024368126404788589004439696769273243972301014557997308430198094775141078984818024524507274545042569975582117378615936141159892737460945473504163965801950298020240502449964402165404698827778290834298965619012705633319078595474128502418967174688139029921940609397820106637707938412190033639983899124482982380138639152564902555366581429399874208819757743011396225116180525348606058861918848329453263134301369829930125362836033110404352685647510793980256344703525470802563336246550036299036077591394436610713586524866905861358518985174794142097102551097151714195188313679230992893314833736604448229659015091881598129265314756936448503826266989405113500510366300302411458048744629426237414482097825313531585008677660704193585607711600104520471779901511519883887276691716474351767341534100310283855435505555960782275997351079150886997274323895419036730091101932593752535721272791854456567610393277919927779748516266947232179788505605222080150380689947717196319058689714404385309635616138218917999052425221712447520145632794912881334188883808314027369509729674238849230405504319525235889248355091206708730246488265321584098423529517232188641736383972015517690467801845954025357562042219895354287748814129202574382335225881870114066781945477224248589161346043884903432519673547815103729124790519055412705155008227094635223990631685127743746093299196504106329681097735415892147177407236292671656754137881443021525156831609709794634020982687963834172703177529154189863030133701424495894570931544219044869033127886139594577084965336540416061227509239578671202981827107082524281378820519994482416625731169513023498920124593158584884991044705423083507586820000045894089219859135836491801769565962630896530440046049692336893031328625700395326765593059383077647767023003479418157811694438999830165492436311355607928235791112304765053688349676526228222062114488401044147917104038421923579104570227582636641049914379312596776584151282272203149584007322286833779434677723625674537665777044822909504071099743653395171844780128168434549909839270291478308361690980864024480671548953784935655839422974985936487343480296717362422587786822356995438244702862173071606331790114085947610535957422250598325247787973218438174797782391051020935728070027107444431562523542123892646271930009962943074927360455865308606707823769865019420420073836229810826369471975110253734221023677540508569777774336030350111236207734504899581038653785543088669949273122956293074380430934987265711509706890321976833115103622973474300170881170078929294125033529057880373827989601645957575337293586408012110335445616008540218161203161240452389660102685599765115764237567225275451324701337908843168701339565192441095920917002317549194629991882448567303423457467947147589770522184978419991855286820087645970813520929622458179528613642543746671286260798377210291298354790181743243725660201708901483730026299165580779436913073906668750440738225945599247777347840679213822958446156455275430328892089529845449396597772573991168196045369378020630142596171794286934848720284179889078258786623768198377157297272543255277084003834335643929531266172887748377703651425961251911638983199258732487669935623957119138520114887657139043651247427924754622629203788164531032003325846700611155265561621691773655495792434674035933865097251650152006836572059554519921918960774332820590854244725511455792416043818732959199408569275123020106804076497382139721338903120855638219113924602329256136916207633127420719524808832620445843190711480458170714301380535475755483960547827900741081539018478436502915975604990085141651142951364173614471102926742917566921950102450386663661142402699688359462805756580301371152628654393173993713654339995060557719484340954060055996600736103205858146356738114045585397784493418963014880186220638861472242432335219029713250563624894623964392327633624985368609355664537181098705501783013948890438105626360105366498212403400974612218377566567561246782956677467592942980729673569509390531864605329440244138985822038865118474633443776884817722478686549486475734339191243470181325701521424474911398426318924851797725010611097695919226960579034830120869903518129170394802335275690644818879780753713676584580931450827418957545475961434026115327279123650167745887715080145757178470292393587567040517455088038568748825509920272010878417790483569860631233836570872791843673890919979872909319966129514383219121201478020622690106015041242186987652801649617809248232471585035014694503995231716181029638625435544151745297237333401980932067150202417641590876284716524963389235973472341212549712259153096108216985733178949133833135406750313737664020030102665401682299396157539413759798776215431886629801532796948129185543336289911519462101900563737101352086446942411749163066726420247682198368458831861288017565011686828356843726025411634059476446782131202572423607877429673932253622522422581493789124690075421928958761113108096012810630909116210057047142275252945191363572054331209135758841901692787097507799948887588094319669443916887960198733621671039839928598367304998028462004469930434353940084398578978496519540641704205430833313813907595574373889448248793384762074969963443928018015310122328733065381891382326668097503268842715478487238247362681626634799780823911608926067063750448535539868171180218470612303793751562512020432496564576511363453059952130355875389837141497048246091474449352441823149900085258762486913126677772482933950504720995924075468953819869900290044358313512809700243574270651609951505218200928265946997822745222853299417386669505405255758169140004760837652909548098492194455766507348270321814195493395692994778389450445186693403393798661396135075813695945318539689080776830418164563457267587160179792187890527360684449435118732116897488055198208310009674432256861476894527466518794495038734634409012385109838183621226346936393598085110070384385956457631766388564946044237870153239651431843048138825800290549334461612905758474871341096234749607130353936388443821456164391954818715892349956249644501033388236867382894428049914584959284267425547988750883728557812986606135197535632127723520899262754197845962864117371612172020179357815070052665229199990910652457977774888063920128668558172552726064329381595531841894610360696933147222127844571954004650264668365192586087099645986165388133542215500920827766322012603812931793621254651163109525630371398644477325810556446437882962435675717354110488908293093056604701988500163035213893701512417156720443350146176441326637480529120676162586119690165188876393166290157083031303489790794926711899513486189366987741691835124578121427527890379319009845253075670954219291615623647676558202468406665326388988541348733283636533904855501465760426174666257989493850916271110993030053424879416117637480254500591633060729724731542841236518882278091308956693939119860177566772386318862290052429024460608158151509925294713647997491291211710128477059300298812711171043569616084353949032977877720863331072436316239109423379526741573542203941966716110849380870785833288808676439015698002548127711245546470738200349330814686364192083435648627589304457377630966901984013549393074239967298757143597022211805779496080200148354556754627982123227168054858942852720174909695066239888512340696680833270271921821256324950202639365592390767877738963156972970586312909005373570320693531084809220542307050761535973287507338595047256910708365403174664802649059130276199070918702298691237373493849920471072658964670833557560084814575073247234027188190151980890935859309852389488314476568945958390666593736844855300009884597606983691417054613823801726160289691952985138628434177708474432881449975045667908978287625935447227730598204977010327559800272950788149983593258944731057824885578778038656291177596517476057575924830555254814966776873582974134990177464817498795002635565023064132016226829901364876518523898690594706771588612574785684114649299516341042333199073723632574792022345568211974666935582472924266761072945503536299383010201082235378719679245542219792912562838611263566886579702051848986221614013329230647281553991031116365550548266669906681062445645671908389967950422670728918855370384068419514188462678787897545059288788863759392031110864748798151119271321953543830607414434411708470433540139190714242184936959110757826239119747782838483007858066174594135411463349220522432291817147432958938899494911691173542592250006402074539179950601838567182284109168298606786540658431052470526933743147712582693100131370092895326142217471406617053220192344362419481881008222497749698280649332819151367704700056678408409257293000922923313404030386253081098019383783055695301963666536763093180223486070525248636716844960329887455934964026351838977841223681297614880971868410548359437510410411780695090144928482491058725701343858836547728928100783695311161793335847415895258033511671859159175974891607776610942853900347028714504316410280974021095220178555237976320890324707080518093478609875426855174675264828096701305219217189806404101303552233514749876275332670777841950395671458069238682655962176367781009466249692153862717721247120879031625469955253793116024718274181694423902952079588900239206992118103574157275990580781660581184073192426383742481667156851606364860136168007589382732509086419323445269023560861899438654137696699832920573148973877129010224859146319151871132925505876600938943012398162562104373996512896747582117243192917063128437234376316508099661596790939169821311910561556438329575315376514134631783236930985198047022893971636154562244982917446233800627853565269867163532483047059214992906329383012551553494902407728960014600733442785717491794732509916433106396320960604028247622875601745615925300850337413602301283522292130217788937747715329629387440249661978603645184547801413508066761384666508197147647951778062132678604521398740258131957380911102307651208480146134711515533626108708355073733371468748916085615502679329057721087913143839595679198314753785068419922916262987477716147701032094820434875140301845469415967412805054974377748619414894103493720408706041613702535245378488032598739084679213768653290300981416760726354079318211418445964761340848782014050057713423921983952980194570987856092289800788321936272058256822903426197976653266626800503184654947722560447324325639229278715596715777951805933062722517680218086656832289333641986005752538221172737685575209939853055302512067937630459087090858693285349156356619238768546493868600089822354333894761580961798661389694144403045923259937922325452792368029712951360340111772852166403749373829603435784742109790894910989348257768089193146145187302156756062328914511136295143273110755560394798271426783706007237698408218704123388491792666760700363851606393464297607026589149233222514746279292475531607464638649890077487635618719484641415473561796314006483393963242778267123413094468899835999165402228616042701629541678920660602354839330172669661292493965366318786388091810908982700247579660588589078993435749625118530721585592441401620943469798609040293219016595895167577341017335637828852444256335003833045925989774138520615415477355888706072379888757861277111165584603792736396504528960106678059492634325958103062077525927409811494861049614684414877980315784412408760359213874765138244820074937792678529010901760216098969759096280717342708116109855508887093821128661993097749765685734071596652555933553899764805031091382228721487295205463201901392719147248952074780877010553796163064830697445697690079478686077934590566816407478573683519669255864855305383054032938613091488286612985884729467332975670051410138305388390595760609487918866280211216639842634433248291460494470847058735381906946964752272799252330436001753840928571756756386439892320678470392571540384475609643427297177367051536965633366301728100460401558592834952058466285584494028811563211399772599726202893511649826545575400951080732837523410975965392157380544489851290515950061827842137496627744711096893530263867308652778424678877062782685594020724882620784457054358895237007407254016036951062647391067341307601965701161757565702880858473375679252804534958046071584692658395844886099370572578731801137582368098877151742541441866638635332752865535225914441922323658314496547477340791738834285124119365966416552645081269070128254416736532609076308408459470665336332513064971427537579948427398897614854502209965938055686493997159390371350647637961601070853143158984842500605872353890636539523013449319517951830644956350007736735069151003803822247231584358592856084951190349789527376129050031256712164342582430096141626090163259522023033343733667694786125279341203885893331830756622025725677872094025591941698612200202070011757906006007327063489000295369165794833008736263199083363006252568306745136161662325797875138731208765460057142982118126776619976631516056747096684800682071432660053898340421721683193666667705611254690129982841384707898074267749643493102351975777562952656686560909719506930653522969816437492123188533991610463646340591939972136593465795651780192479037288238082744221321587706855968593006496249131161882250947937789853765461960374932521307007866692503051669020374585364277180854477661803646166667735723913043267182605745963309618837959711505931462563739099061749854410310866402480235703612458854970688894818706977056243118241988148197515253882510318130586592579358070913276607323862154562729245022738016106854091931047617346743839894163447344328702812007166215147626161104676664173246771011454269305466928596224687018043065697139651925324692431243904675980971428241197744327193276772904896690800602973080750986179171091666652203904171086702966956596327692074321278279562569678072100865473117677548727372747219769873186607265890435005205946738168821598448311470281154407023421668540962170603533866611560895831470240747970615452017162187550929915402931928738015881855357345049284098033043390548046643296583666257935443493085060134303732991164486782379549019332027618567827574060877756440089108192602658382409760104877873257371579362440592197834909858173497521104539966063787267662377663823209176484143555549563866824985429667227788951037888491247938357091093474911369431979278194529927214333694942087303437542758422818920821574557372884529538489545625750204270514829984253182570096897162207907509759445809426139385552142018591706583113585816767746832199729574919297090137236517763317251885476691317542389336855074646851977027450537416153060541035465408941253863966729754801720717840307473676409939060053161935561575877386154737761752532687314227390203830749091034211278930930838119673767151675046644665992371609263595472981399891236850672003181011607387518749173638106382060211126016624423774059291534663398635789315562230215785603209362582831802096648501978531434705191468240518451805691130659792109183323531454003005956486462625495973709215650869877240988211930551279270821560988973835348677712482040224334918251946417520306264448799581431987315776714601718091112906215190755652200848279567562169383912123741704856503628231790440714518706970551097077693299906881054545641251208301729297885765316584572687409246653627976111165121073362022941905554250426804017726315851104393006093764692452226544761431187594226855155539091085267751220238988858212389387424279905890288574137532871942152218310531868644925609745022009750705848458144426108940970471811758834078873158474083169045984985402823119257391819239389816159236800209973483496200525932375533268548978525304454034086990390830572901090847686702798110639822639854270410788985453829170248972496060917673629361619306056123125622451513230500690469979685080403527909811540850454203203196713446803334694389593849579539287365534423130025204032659788242393543359135898163765278559890229401507096719899387522182411422428588312952508663554431914656507885834097070762137300309681951638818847353889657816593773268890485176465024259053266422199753751604025736857133643236320747920763309656327508382143596756469308810133714076334601650482254832754952490857457110955347142981814115544035690336378449560907606684222136560744675812258470985184859583667596170789534217955683449462685011442191815047815706071089574512902389468890371704878479654614245544388529267717034739512097585078696121873206502620482519525174061410404539107071389536179146684346983345409682952765558104633369503902470665637497990705393301116172855557854119005236335642969855627230597624869383574669388166122398629631875023784832087642319541301805828929672851047102115435193726830739571474246740790291124470689026611727070629691981434880081760532835770285804574923948209708985266543580079222076473960997118371024094679155635804451163650568777107187171518662105321537345324767524403198065637842260587171759726676150233836359948217249580251073754674086930670880159134178597464393824932118843527135923196508189278328531657563406154889351303932714617097939164855986094821953314362772801405042665152368805805759922322208834559577507768760108104154713698143959965527374135842397651398113337902653109885806705604167635117113922637958467359413443918420858251009007553222336141068360542704812114585637706637825955736211486287396513995044146673689919711584781659389244932511533182242630456404605004306527815212119853463447151082960241508282669881553477904870325702664822719841691583308572980457071580024972018947719430808965323460062284781761421538903776656174256753577593963048834581932599914295521408647710014784246333411760837841136463073633271915917335062158169122655693686033299438162543490608075723172358622007982025296543386827319456316415205664423340557011769435796466282601312815957650114419576140369274168607064773986755467150524040510538553212382458911955149756556207764302014756875764386302015053919143183929870686068021296588776945104903898116526796920902762690709954707533571437337829613116443467550848069742635309973397394696003685599432110187968273963759762696745130185122532403908635928789955038453161989161303405870864434529344742468492817672864617443297704324722053509645077510913276090641506234839585160414437333214088564431960190500914885331831933386634509107675129013556605957458548519756512747454322315957482402973039429277164610699041573793104687304100894633536956354361875039183161558883676426262619947653784818632331805413800808197075674663849960152587813093437283930029233651972354762196281828807211000878329392525159920557413763833036392936776810773837251473442438280367847869350075330907975295129166454021289217117537890654043246473633600326033605313113342336548572699002110201654590679043576013383669977897244629941037745767224777984080574602995046198111676646978847651912602554966449337838422721226845733113254315490155507365436426568185575119580163793541987741273335593975944061799601560928336136605839190040485210995124435206311057867498285720949047314362469483785822606202099199368662285927641245920342537949989611815284857854027872009372771231447137841952627648682416764176000714414399206381200270195435262892868900479237795164958112225861145631255061846398515192496736040471639297346406131448780768314097838682262081477881596591197676014154854584311555090473494349938657256226630133886719721658548983612319610821617581011290317582900736565696367248248862454665002825132278623317537612905507510736178178721492195736530341252107371683400936811645621883479576293960433495086176173359896505098995788093727024546743008620974931363456494795762366157420800917690262198300979994516882665462764514206555562489570216245691647024624586426181700457967599051408088298223286717826665470231902228851610776886637112395288086262500546032205588511873426934176400152565058079991410537453210043038499478954957283076358503794037755492187514583694447449277649302348966671661360004915705846162149020847719424711091077240742196866944945601963851004336428103035330435033695331168438195779890998353286775178861570902795558372026346091471605374070724223857332536804594392502962760598490084717323694459815801155251112380743070550718986280582729474004895177537839103604168825826896549321301131859705304673582032617101565457965458509006100688599831817229859469399295480527545500924175440264749009687415842128311338955478156599369423138512188392841321748593465870677287119751160822628763835355910782154133269799493910979318577938959579708284361763743136070357597606554885941818739030934424795205359737194250955326189232474817139453909787791012863380965540144877950203033072280447609398569957655100134736115586649215259673229144785450627098922741181476364859619737517571720874086922588366683906093720185614476632287326009000996764060109346461151764747477089171681007651286955820701545387255207604976189493946775700486539972789299592865465429191609058906722799287327082116257168385563267731077790587855630494610452821357898113676068208713255611138872386175721962990630595330872149648861375593080884468480811893029197798401062999727373333950064320215359368769949022981221478916660967784024900073405272409531244599064810361964343422403646059649946311720016875449533784037185000088796941247324438251821507059337141237628909326441821342672826334836004092177510869913517385604213126863412284319486404420320719760600892625460188878955567418843017911406142345883330946412974489922222457768638382455336305135157171569146052238143997946477954136084939995872384450376259428314213001051821533442649920282121012898106462215995046569215425883914759966451944445471780932770835888164492776859196932344349288855072875083601483681355638287706715465892214314712780928800089367693968777084282282123901074387841339222879296644200733749570260517502879388628327742975968284469678012440668404003890542346571457229125280165672250447602846048566599431920358070680161474781772863517795148131144908885489569094102005580671187938737198369207428229455675390192110819827635053579790567534746318811385283138457265608215021390187008477383895050154959435178113248427381480050448353251165793821650007497215624389685544021265641962444937881629852816641130973116140942671692022574999327677641425793042165810733845052360151192866680134555634162516826790798697208725923619540019230921697149589508992275359907169691697387398785845347395174545803544550514718720649277824077606412312322963296836225378666789063482361621490910833725087890782424398586871500842657263239094582904765543847155224970909562467091079071620604061318631815136759334030605413685673026026898456661024980152426677301376850280845684024282438934942427708451448291379097990834962447677766594231554442987198011996509372763459267963076324880789269137135748564217703894125041472439477364781244084961697554285793631746936511132313988068007376040403789743857869498094958216314963737698659933896446622641295862401610118620567172475211991912166194072149776162664403142012158087653062824975208207939433453831646753657368920607877181650741116011764146430109583774229397896186820287636085329058265516600945685194835821533442727636834457340726808761101712207692537047457684046569725929008059201605282586520032607651823735627925653578474868702016955730162703291673779554065375877275277891031531113576185083370474169219106691270502051611361329572533083484821902219933231772640378956113635003936704080619382256011298515586547069361445681319465841399888935140339458837685825954140324341561510455760808924237725744787179262442116978174128323608295157066972139251503866894658695587626688727077646792469516101616945508672917657463848739300723040437876196178724623872692258708180385662826884577444234457532156452007633113654120007986416506259569603056295489652200676390414970873334645999823097216705989613593182910100081269489380616556556776687876750727115577348327402510186612816395894254853699327405174765644577842497489563837049677596853025934669142253747714149557539686930551155614691007359778849179573665052657921287338555733873588474815292811162648762623553253422940163838853465678804941410082876706095544150472362603530667129644008618676628868623229184655920778249820264622908713289215138139197624983088809114386898233964026137022852452271155974786236171072507978278551182339501493020828547839280392807250866789233100492931079394406855303289300468851069118402418230939648922392712548337885869711454617442275720349689858281770732911834531442933849339824393887351272324639618989254023003587414257023680386166402145727471548213647675862625585486371768584041131262476129877665976889042922518541705907017171870467095054119034759175855298019702698312375128511636861796615457554219054700838423163184265417131723545145293009228505606324123950081021546183103381348840546327885097424515057726325556041725350970217894734657664988273983072958223268816803214579477722544316232516391562525401655455530540677736167815067186062650087266220883418067555622820533042430835419469202542388177821288779648542917481931256729726564550255834747335429576728394718954353425306868438687297550896717258490715441034046306991483595354787774695308279569665072789503865160803625748246741792382969516426263848960551567484073941297332543287293711231659641437520441091772331503904532796306407677938232839126314211204962771071560991626275827525966384179567020477701591120054293048223931832224115426068930134791732479656361262046672697734451510948780183121597748955819873770717448515107234440794052073145741837591982734021257820267276479332348636111867206926113025870707848508869316597790693996143087841556289690999537632130419408419457322887764623404049515871553631936521547417364704191645533267187856068285776045475927749917298539091664827191112986325444592686393643592552767017987669522025034890081441988002118232948519337021758033278814705198597264348086032770871792124294911882227302625818828022506869472798864471120769020428049737950450575285451484805949399763318367730219836056349900118039600808634515511273895961481334288834750515259688747211336925266690996424160211612012063891948331635781396547446917123942323340780266102936110154365711237658631138320095869494623401541052940683466569115994592221932108235260126062758801403066083689342862078423466056348636975513883742160676684358336690848443160380750039177955617362512261477102317936171128894246535579122250275003121150496741657673288565796728423473591250222389684672073277346363047651091148580746415416980021076099223889108252372182595358663105804425541528131852392277324084143971193707949962292371256903830203828083235292259973949643862311580656301276096860783567778263071623888569024063732942470438029587914447248507222134330938040180098926451878229006458915413261233687917965114979747330513498354573332869850299442538999447766141468415925610681652356344089248804877054647874420441381287602335144858189512295256130332995403005258412301493122964411615152671421164031363107688136533544880171630993679446497236186355069398286377547956037433393313449213959507407218938219221321755737521724915387929175330590189958986080523445329602189308750061843543738950484876308611804288058962429692836601217345176524876266349786906218901157989456682923390831596280140059662698015099042611324402650789967236160966132641843815332407426699777508983830062333657034367323520734872337612239824342960081943150454461276831987636518211410368210248428731844660099534227094777194261677458791396958904959450688169442709695222203297597792718074909289995982698106229787563632957733888946645928852451898443304069072245043415393793528715567487325264843822897497228498626500925277463035181128206674571013454625711025969873882506393287943983425095961654241393417674351483926354386145933246859171559008039236140334957298329010942499537897286539111981000658316495132482006734037846477850691237380142403768461406326729247598547777668121706635401159990519035849151021209807236018066148370670550979755709665941734103133661010066928504238301804401346756570670793707714093677306302071497017901703075078402624097348004551025794359554532641520453765246512478071861144491972709909411859594794153526122250478030193129294786614488137160043211859171870096380283911314483246469872605048257433349176714057523187447275618882657170833381464630259221443766368892756359651568652481494077220400348728857917906047274191369097556807046157571583210174259432762070635297942409138736815233722176041700326282947549608976499607634957770031374448755485311925232057782262944357311031263914815917015467689654070012182884156898292343490901029068640487153890075099120354493826118210445589026935546238806732897123667873390011939056226160258683621378695612576744016494617005446319894876957766538685218550661169846135444623565242730882228590017257886239448803711933742855167599589210039059112289473458858698206514772070488128282561639025642076225118299265397380904405298514785141317284559412839960400235600189104521023737520437254535214455600531760800280638693822324766235331307475628461590047611779831960775060054923198922439458068692428253024025011508403501137059079972625337848789690690293764087767542638338955874070935595139353510782176198334398733483369371967517191796878935307616884165673444971365258745432740577927741034726048594286769361642040939809495859215085957552744280170180935624586600829066768504261664178879429128979976559261231819459906271015246207618828376501761049525461887519737820660636316553374384664843695131166554866053552448770218423740285560660137595462662466751777269700684743017806331005961234551191841772054512319531044830840024619915964245277841530093138891642540310318211922913134250287576124429567445941586629102225854981108282402802705273792675592217260118323021860818322850852317780242158749157634406754318573066996099920010033199395801107275580341004915615106139793697528075632064530015385382838165630382564048214658588524990221765592248292333950457682008594704031862549657264712159448284706164142534722918964342829131997994234773615103341628914833967110114781166663806617194545720132038549810273568229355016923429184580025425508834725054770956057220061707036855431935462833793174509112219306699786200573793460875128693835239103712814454727337410396799803522541952531683974782412690926854829148783301452545657822278106656633378465503138304069188205349250720259013588827256724752420009627121129948701674450023057038681118768710371903950569969795895536990259202757161010041413313235916250929451352365367708514746949874552648300797112209696919368722196652251003236977926096601098411218737352977746573404117796619441322304767710238513464814663525349343774986334776564853868378528507634179613502155107488002510379208696149143492099468531490240227087885073872870559986470882410731142820360733368278234523148803266309205587187217273304300587348781650880463718164116585983303707906644994770024960155108463986155284885910854855233155589529381991756830891786679464955670972638699003506256939819626767329944548980291711371685062856090289962614426451388092087783062056135317295362506737293942654879799113317710973352978992842038271898781789786829669448407255231074036916731687039444890071275141403759477617906109604219875100382758595494880905259234286765312481817967283762382593618607685735641032642572616097413441152731292785207960733278726909305475740912038121649919409691217630906847010827702556254423314730337864150146636238081684119803034687617867166549172068722854048479794574416816129647750879144234852005028528018873927647240128747485196343658698979228406878626151411632585631265943435836957044650803675377856638110245019944674146733943112680572719562539835182615169028977139419723831321285196908465522028216349030151936703532819588064386899882483567170579681341578351649368528350474152846357365277728110330665961146983753673028809627040777984061562363875559436238733887830621216128423839583899701821389461850122553645806513606858363064392255038108359517435690285031341687100305831717612274546061985812037791656350929850509158372418592580871466991537786639674219716124954825966977644932185894314050247998046960509226879610902963618050402474965896746253719083938837575329275755222667503062870572691748158010263804147558051719284802905034636239207717896560180584117554992023030012420365427117721689809445117621336991978685455588870554510063209987075521204416861383997197160327370900480698915344839500546266473884042414058640787818319301703652761319128074109284205018188948042237352388769929240762890583166001698391048067883776654415692639464941844245134395022101359065602471224831330196813299681695068821869694461956193756346077678691061742301335558191176971226135957936773603753345675137998218240790984523047779403805362935882371548836726484810843881863974162926341859743421269856810724702334191538045991323708727942221356706369947207618035397671984079557689142428421599306375934757061387094602843041635481518075072644610385785921890150050139051948554660644849406525674389465490075124053961121509484832577721627326083415382523034233577651661202841848087965577761724078012952412886499785296768488971486326367793896315364312874393056325500692677584331721190980912283269954999685295227649531110553444001419748093363542211111672737027261419760465259341911464039128680793053876334044457577390608933935106221000110373527465118951394603731941396716157314668936775275959757164787141135167986536562834618532210674660198392108568860037105727541885492471360029981633947888740489069725378359194204033603431873373804044673227793741660536269257778533752207653233464422118548728554937158598374697195553406145540784956173521680571378082495811128187556114940387686014791574535773673918617297294726805484054964916265435299374547056000816894222001340770925232330079214004048141211241466004075918836088628417823479812985224707331884842187631033057572389702112857204594710452903535001432296930909319678823134526598141909008911021417657407259221410858373604442146747678705001576300503320996543746392318606807744233752415440395767974713477794662120251469009012884081224239334481156030835084004196605609997796541921667394643390868418052184868085768479786890265366239466954319499576471151105995971088013600827469256482315043438293041754077704038073878180198641119384232825327254183208162515778892688752203224525455628566060103618088388013284608366365843739889153838480401859388147184175319189050850795479871914932917578136142410891217124926814857415779070397289816211227507382793533750020839930514616294194218696552037862198440742509496971613151416301265480178252000491054233314762252556940773234310598627955319999452568650763675809007837106539797016933946854712968730793429836817239361284348488426592155093857670522328988551920977221558695126244406731958875274093666137023121134602077006954796277375964727532283242397028634039773666840529239407668073527087797365381797077350506942211453577114872414591666931912943840082426017122409553808723920695427908919923395354877788777637247147687960324569481861294843918597588583497083969405032158289739774892288863382811162028801255246050873765884425803270657835701812759069901404445765884252804008523044796199300086613066838118791590174569424696469132717829526632639336467675613608184856092938145250437463934499868294462287689182439973986202431770068928159678021525922288420354552316531004840544298881275431839182304657513272046260952567247067399144787233540849226545920323407981878588734985568297441190230407637380298081663009189430410964749104717874210486108231308074957571069948324268589220749888760190003823201917200078786437751486827577208185414016972768035116094072739550331143720193028767592059912312487512782963464172878127296229047933992522099551553308866206538798977398991263824788578011257205493671241580920479646585891998747379754379848141168877286874510062840549712368925281146039968590670574036643444055983945003192896897311017952824950496103559997097246315405352338806529652803702889526026739367191566551820683149265234637448460704810176720127547844376565748427979523376406536852218716872870151570167863301996805363357531739918368830115848902009941089375955460140220635763643818057106165558601310297864360028116666019582159867079811500831469144604937751249790334574944510300256037790704942873515074289784921435341906790883401845714314267335034810185868563979625607020966215014830261487380300187347046460864931172064336325910681174495373450863231554251559824760633907945817784782247564767185906556073169990401601301338479985511197057475259648860029326831039077340580749563710785036294164996074868929419927803542026801721707016426173416109615830220314677847210482808941368116073570823450141757022124041212557347542720118063393509436133149881304827180627040188344278144704584960998379204958184323465366396311806661181276419737265866278274297752528458225560148738399498677828725977627656398807593303216334782361706420383956100962474815749840390792536530975313716698918555005249867335794070576769532914168909215071309022640043345670414166523316197706019012743777421384084675207447230462148777960963094891334512413443805721144900951913723060247774375928120774286625533664419256312649660362311062529113553077575684017591072650550190963594229914668715921766709687054281384888550651894836072715286160132938641076359238768449884323144813763416268820398584291790480474465128512370946624704578231240679021228617402135590672930160687701700235899337401168889813854600419305456302007149189879283417878143493257822453489910276059176929734620874088057874801505049363064944214094700262474385980324939009002970588516491875411855555136963941289629687509458986991659564794272379329681168337759276094643268702215289683535436899882534126819769611462545876781382715572281515287958001782855023113303292571851981678375345687747656196215172706378214386691279881553226618122457926506261394709023652945065771874532314558307008907052404174650172892691302858351192524063828727954216091863738525941909369172937316656543901701938197111146739366888276056909429004136142197947437290882868523354798876774857402027680207368748494617455064302771617448237813193642627227961927891731565347553412719934399495228981640693125314019550348833881148978236001048274786723638824347905092259940334304465767742765202345613760265742136614997571613376066685534498391974195136790699125327725192940022368241792062879989693234746307859252981724805753848160015469345813867970751094318480505236317612316916825792546176711848592287991059386509312279827656358687566142854104820746261409057469352875886170394818088070194462726700052156514998916663747812378270939783089845109570563493888575738084935380018070037814724728979222863415022687635697057385151742717777834955531437932267452149227807255214053514942210170856778529699240236161066131873948813426031836730877516638137712926374673039051864035845832500724452348054140514098733498547231809540429526913337353336280621660563169269654628731571156032791840165828796339088111854835685151605545103756426276242043187209190182997995867393761974259624402165031805763412705042191655328835548118965872667161567842044449688453447321588388134088132235344665184555175743170138540109424923432828083247940773534877744205440796407237610703750582568755212617039947777441199878098623297207567912988875991639122133677100787213787081447348743573608288565246266863543526438617866507717980195197903834579358824484389379611899407465245822503542054761711972961493067963819090425243874002515983868090618414551583828253998641134614057157466863898625545785001011049822736841326579599848572411961081723011571168134175050868914044414643995943597520272819190211833235716339235311132951766916606474631681710897459969087846381193816213914845017130860012738812011716926931288548590766598273816757573681724444194730713488923419423353578630015347482430386552719247221926368879424252342418569260192540627088901973026901924818757392547454333236084913477300928665195913986059023846092483669239837150093636998936291310979730336347077075018577429098577226433242059992563087609291126182158821787122695027139723937004274476434880533914479695327652555589667353802291567278784832030591350106893161150507332760798891505160062193660112137093204329809671496804568035464676456215874425032492523850395473941337274497946134141381371653588613802833662195908906499158417693799558420210446189162295248060922879720318266531318778899509705960087308632955699871374844287423556822503813943545898370049501067572328085482014528702420656144087615661486693341759934589777614257646379949717798562469380837687291786858736571185159755954753419037137723043048006100995393349392246610060354600869960131759278317195453969761211160282454391825297548938124470862340219813722016482598585707291111448556636843232657788381016773222750976242580596366422460072233419109953450488293800694361127121913767265498501548751778425575617422851842272485871254166727663852805749609919566213878258628443339113579186454765183025683089997138234668758849993902317133293298903769727337489360588238897398021204690198335735470065106964674193192861778031161460413857887942479464460089136190561104871662736200547462193689091791088358155588048316917697569711127324244616797307631354782830425204748189382831267949967316711704382901528533347477430778934698813672813582228914761767231750465815506969135226383459495859830870536323075404396129508713999146753020117204513768829698271487825737288024310514272830451439216736728805973309244053443713536898825967697105512558407231136361128599992506742308609040070024364192161923094880010216168353467310489660078933114582938337518576115810290095129311471595201177174957119076312054391877730340257548218173241900726362873013803658870493308673836891956414432278394009087279232185832689357598657386718672288469690043109980821349091373685309040764378168297027944882307865871714762583007118157642999744725089613120583600523662119513590845850299714414770796436830484514722197553702785452607469533107088721104392012334473473763281944076773718641709125047429415382805077686540331134382644553463668713517206557001089627124948734184697331025118644596471478513357390874661434513188399244933649347188990580816311899623062369087669271008197026722469659594441618083338585209842002760001654502500830453652645558100629673265042989507415694471108375426647078581771410193344969053452746475621492130786588480803180811733765108065397673134405426332253144298043525391180793469591940532570957443516311221745193081344272753346172881954925117839857066562830994066279020526389572640762640643727411202547284997895682360889488473364471282996261421867583331770815557415881008676008838697953626142354395887248030155894184364205525956141640886039487199252316333462112436272414917174608355263340374646290150642098367856229500408265499348936818975271815838416084551520241392218659223437854459846897715941715614824362473697493920744623869080787376956725151422761670459183357001831123672821893046251863049060491426596175203528965807775401701730837046097285960332312565432965186838999101257388123953433368055292394603882273744165089630262523967695628037350749174348944245959201023850852182533725046362117851014794417131785422188916838886428661920760996805225334427583699981910729222278662451711621789358502172038663630132823607079289169749922892245573997700491728880026937123819682676608798121884995325192120571228049526288254749633391219616880698652357438349568076694085433536038947925063868182522782419685868155619944271761649309030877724294741414609582454112933460244038497305156042113571512014422028372339564422180420826426155203416353893970844398039572532041074528489500721292197098066976814963021593809276933056840705951744596845956863532028031486446708285371285455735305955518673652998692762809106104925556112920265887941552615902053935827758034938660142104336286959096473858644287240980040723338211412086469034391703869039789851936319791555432195773762531436960661817963640565700568902445619132966101454285000255925819243980627165640934132963350025417358369467772652439949569132606142213150677812070870804271016836725919879033169575635633508174983886740650696979203313713528170004567421743890354147286689247663757004009699095063345940097721228032378602863137378552430621404744136523024846695602761924949711815644055649019084905027007788943678704350444062963567089576259020150127821987973473246520678849414378087153277293718988638138568606673492853842827164349752875109803710387661448435461608665275547571882218627983490274596638800844361222069898282809588158270875752356051536380264239605414586591229413708649859776604651828082903008645762354867764534344565391145738294365036460051312147495289392864979500056568821675774398494465351397009799640813482573070393998495512604750357246056384995024172082766301731192222617344803647781640779480194869616994823257070549873896835228001474566292243161778837118268605332126123887904434748847662835114194704168981291075820221996358937594095661141012900332448341370312050028307552826489136159196876188273745204729351596212184629012114342363142216702887552994949702478863161015882555075703503126745472617515771211106374210088032146353371748003216733283298511314620128541532039744983919462282819841645928401025051709001520319221209029812568204086009634576732010654609386394979136482050190165305596576368056663989525212422301062749688690410945295974476563872893397473139916478996948197667624610796025047669209758753803205430019961306298400863384534031603981669968945764710081299763234051505798802331220160021816166472671652701389067409241891877201827478154121799364000444778641083326988931421806112837666460808418680948758708690908735842169014970033600290783144910336669988742001193061584358562512255004046054605091714633197346495245512007245196890737335341579144805134040364520347348397874974428145445547117580019551529809901297282127338570381938737989751934256886427686983635683921375650546560930340670363574495069759809685092990231997567366298316851210000874961268927116803283056040405711440379216062341368753779807974850401951912863451502696046303244106701431463407074251785980381856082287355553424958646864714678389080560894597321152517974817121832974987881244415708730882640255671734255670602738495515307648041550259032309996475066394162142348832966234884900779583047872889276944098483767387813417399924666607631260139849894578373748954236889433899354311928548288427115417559817382318346828710920965566466279017996025568010976216379263210152972282213391506735578098399089525249965920172179311663073782313386184479088631691366415092589616966966570295449683338961547913234517367509915728709763125485077939739472061919767702111474635833125348778143999997910900299100173620561447484579970912589669146333285567811756328357101231149184563104406960426285007596611861813139744817013082847985565853197060611575699619467893754671630161423118168102994004194638724505192376747689888961807255528226557016225964905782762326051493904441444253830798572435622435376433143532511914553767305998072050464033947597785259387466622250343523592665808736095217083601777064351756754165094348198220413030285440335284928621697317405543881789390193169327703229485400239631397846002747603615198763453397899837878149684818790588593607129152121553829389659136258756999185463248502062793573157691747152467810076226726076973393084495958945980506490847045486817791486455341650785278183409747750139000264056713773935600933518055954995476606786714756332322221723287285887647015632237721129993216203508743496820279963586891189543036370717286254014550567628767701317213561050618870390531728821485728018736004884873363794247244296442201345474937096170094966436460861966179691439102887590737072553796789497525015804374336888338337325873503876285955534237586277853831837803395647748053895810121148473735836184952141099914370334372888458759377798562354823411851195772937338766141163035484883534064407605567088499176903133396402244910985624977536711848281056214747081793743133665099237374423399589139888197420875642482757787545943607540327183841167855055337362679412183950791938589392938990533117250817291326088620155653026474272409077168511799184804121596340913831061183209463608030637898963476967897914997340759099404449689046801138353901859423841267931425388054147212005358834561622983312054716347037658232193506925854826173948786887841693736206481979328042698388183602767316956537121187491073009813461837480668096754974447329243525631785573368962605592983467330647156814315074617752875265535377295028046215872188251457887196467389548251143548998000715681315309942437302716842649833961969413538208902864369563529597938672719313029988752924651805027238634548408005787350466139844854784483257542669585516802614243185633305122461194322179195561769988556341139628208571151104896680926555787374866487440298772750432939538428695829172449614147638450687776749909354673753780617433623076581410437088730004660131453754201656514925716351077382928623898555136435971623668097232009652860242105649060235272401198300233218427686730932321958009978696692057705305637442204791523209719838109595640494129190729621496430537511042947936869691381148432421131697061706827000179565460671835198892336339589967113250535860327933250100421763315982610785711703931857867692201969653178448565230424090634184612176426411758183884713769812727947745291011065429216614746801122443250341626164399606763307940508152376080600099979682726576890347372644731669508399788408315422819950707801239826657883482879169504189498001583189596788518227244106507723732627823231291444630978683834560236262323330534711369077306460672969539111895690679049259235585509844166269234380887390867629928785439465775715534085483246128757757697838030465671409216861218449155650649909482036660405490900716915246852744072002258589665426092281222097293057787633166312178895125834826337126694522585089467325615113071703828299185546495885384256115064655659778680024094777842957789634332315679845452892563755131824780595889809060888692563267044992995307226509313401036971974771039072972144166912393131889596032866067409374225411878366842739428108060178445155739854030934619286565618549131651152570617701625085430097131325280057683434677673526710369122458867485346995693430137259202832024363788199173801955933204478120392937081246634236973361981774085393196041253090108437628000204712627701533188893430242773946163360034560992453327374488405935698795904404817996551915186695615367677954096882466836769407960744864635314972485484426692454292537747376410687130621694466994839160782751730871375403607437256086464889423565783491870411565718619437255999967348089062557523888893391276304743011470051073829108933735895499700651913106529447421080360916516889675293534757021626522931550588453370134621323945651220042989896090080989481477074807570822024619861698707671705737027867272532915580456959810119825738733313935959936354311671888398953316796790841720249940715698136873728252729614462185198454987560160405581419673872975403629581887367378513321638790904125823459733513319553864016399823284236643972479165168529224625131251053243038109435875262455171495497184818786563443887091491226731733275422468490787699433837447255348273450883393806454625232161549004554106012459761637237539308048059745207641843320762443174830428264166861251542842640721276965503826415218554047285095332983236478273550903408751939878819238385097185552737093667390597077226225558172216448105782284659761210109284451035793663292686592373598254909723486574522457197225083608846843005618353523856488363815479084633402118105102594459074426134497941753476308135331830272083630585016820668973756512769015979274305010750588931599695230330831516938644471559515322201882609106050784584778335726618572841648149594001880733273481644060654309461661702465937939911961801648017008528698379375138261059244842892517296649721284398542774543828000595496760996948646648061939189583337906346709756651281104253597334036589507555484492044271608503274423798515780620570385586569347523083442748788645002274687272233727033307153649948386820218050124103457378489690607258437016252936301252938371895336778130338446233119895570694206413419327246687254750793829594118414110894170158095613058065490323263008899821694558403044810474020968807146294459201362306007018301814975602786367519964646394736405561993851347143757033919153018956734939063478256447835355550851252079395547301241013148347776625281042978984537802540868266365112576333246712168970074344920798447786614976747050263150871826453835562313745109248905274589615579085288996573155035721001867636695423760416785859940804465992851074421842025297139435397784589236227764835301263803329128284282752874881420104199252738771165567486514278308043811945265615788562354418843732831929704855804541665552877735766558075507255051910021201709818741450316027138181574646395675772659826499700593894062675843432237876855054250165984773581237305641555157136231090023156253709634732155530442484710069392205953462809593054457642872536688509181047417421754719814364350690542290942104176668663268959938893766086418008472029572281678408426649672581704700751845646559975863195066484005155291070507755561032772779847911560666375945164964965805538721450385158443064405892836691186367107183247213889373570859284854936531804238717601734845919192860336405361073750150001840019989344721852572104076987759438398269071291282153289145844702312703544885244662994248562800434406765682694970704350465226132629296723515865670257375415005035235795196509046419798360712606142351835387060878677552700006909767527130344972841910630011051027627371135119892359900367950311507695501794445855690261132330238224390707333646404488806990891735685137273230319563217388669621669939984594418871253296963780982588767081164766916409167132450367808274544720330458856171417632436372212616512677343889170955812517480866657116642788595005270501007701996614124394813118104859768216398586855209745012362417153723174742215334077002370637535433286432502482723161957504912919118750266694072684849257996912605881845649348359246932676994564339563606642030398088593567684382496722479358972621936828374142166556378599479132150104876384938569263312772397014658098925876790794323114810524430139257637089998640298596606700645851525849918019378619971595181028409142890911205428409143006594647936958780142712415646843054985429961859520366389483363463217335370150577339356456879508486713100898875928457256065685157417900460133014871295939351209541673926033626596682690562426202983420294463859610974022141033886220271846097703786746905673896122373396734871222317098279390979978462016778486992735481974405759688695728134565112610407995286766855409822106144846014534391032481104510877395038185696667003254147453290986527450664353082270654556281235041370631463311726109192662788763918768145414630314591350222303609651652143911268764243672121282270436633241771760306940665539661807001489364377792708159320060495188971625179279719606652231262453507229667376588021903451803905316073492771450448628612911236245212871501716301399231173645442725009892088399572503308318528504855019445904843226568555635847188136241123816581873023529693821213152997162164987150079380953987040693848432962252353878184145307629604663091438838225270691158892388608201336853746673685642444716075211988105993403198152121620141195794128250601416970634636402511357106922189305608494602420472295569443827907896373980543978944440382975661537370912938157954683717301554511288411440690285184619645005461845870855332996025942688077059755438297723570801113166983020499564905552677960784861263174867362490470418698091546385301937962417497052726275081788652243106662313158920105995219552489925207459509782806610389805103495584445897905396729886578653818127309223826935449056384916515485817842135301282836658036739695809811763233429557828245500698483871605055852405929486393827833292580645606850407719181835271916200379232673926614522416428808436908587139699705452526107744644546943070640605376762066407967921875159961260272562458361044102656544410247787145410210439878497525745651147782661730205430763216067399115860988410689355229958064105651909676793558885165104104827747655706282498275816933737979057253748808256959224064593159661086579838560112978618253178506537744211959678400991519187614080751557478985324177653109228932240820369376064340049746851674544521812542832068930472181619911623015430605506913753162619963600890542362856493797010011151093158222558521933880073667716036770881465754047334109132486962361691628292668921833609544010188941460137325489537975060133578738042332947695116240701114675084642008791585158257511491712243058521864743241221038885741784750911357010947334952656908673271823868885123753745617122342284743976286607179008119833900258823934333568201444601422257967845049180448587145349277622122742614999470348465490185697203281643181226918403321754053313269856285861421300862251857605546719332239943631824872886830114042953101951111042474606725191679224066430523147055030644390927755645922695590689043780117779992336606485773754464179635849515351079919181482670574485640096097424412389079319353814335194837848697912146469474980106593176258881507642198497238387779030400082821192792987001065542630043785718758872654407068861670545539864489287587415016758122404270255206482457138941422420925395636614368274741797856643152150313170019741934817543043112530419272097018248245679736893321426259783209774322583355162437801245188306355872602099980247526534404220292392499849275313043497520877238165746264168826879607651209992398491424711906323431448328209911006326899485231243384536010757920830895259050610682441401325404399855668505273086285975258198902582830547823288677309981338714054397404518111128914175512629261934258785876974297974085633432340491975703395081656761611023690220942244197876077542043474049023627281578077687056464805752698716980985848072376661195296760076911960184210356266414170816754416244230473829248237356886797001337130914428386326581721537791347843677181903089441792985924569991544109243389315641765413428336879344579422285732404432862507808627470394833883512933348993791648255264089269417098291995466829597410405685848226683045552332714221277151863956114617160916078441499042061379545498084613472826373333557384401877510769308364969630561695078221860338549858795549777360151322731626034443947432626601093845270026573464141464435582660757656825972765212355677259586610530797821500402451862312042917399819702913808216687101087497625235587607033864315136928083979022112542733131326942305396794022822263112434268882388714953897765083713355179143850357832053864424631002230428136600457604414225601907509902267172238709587005743670564823537270587910605290097001774010438933046146839965024504031715869612968025250531157562611404963061925508046784387487114632503212529244050147609899816729623835707895408603602178998356440813807678170434201920304362390330674590613329111597201944651370390286479779691471508626908071865435006642089910923693134578226815975496724125924533601023151564725505028998680010017229179035576197786090389255053750661973358468987861402085023711272240892408038127866090294015038426766353301808407974260398881728090996102975705955008363718150048553004357182180840412607721213190588382571908241695267359958148832741102201302721837400447096583766826855626381207024305189977345096862492968387492719653911036297310430460860012142925962566814906993124221589372404466201404524681371644265246837537302603546807770966163550069566189326560568529773078831972995265307475028827745665510845053051488641143490627898528587935413426200862637500652440976004302010415478726916546858687066056515618226119918326288325480781162253762400799406809901440817702697058378516763337845238390818489957645376668097243672677724488136118601402880784852325018718354529768402263457672525963780164749295907733315216570108221588579639289209224268618122307916545720089306497963708624688803354765785682203571969536276290746553249091299316492518995976104353434981145919677976010859083817127318297902821318761066145364953251022347018644977380433067944657423313343526787012818362267656409106032866675905791070424291922470790453906929674229675394359447941583626132161387581199259077459864404002808698222277285694205079656695918366814980540977340490098527120198654933066643382460978663942206830598147536321371437149370629165908619836768700434639502766585765210480504261286500306209530032676364473302889790650176646185876738840742931597258303049157782274035271842294525317387358604715985145618795568672360494750750560898374947657700126733485632056107019755499714789648079319777010107270400104882409064303194351512327930952539374151247053095446319870351714458423077117823149489337348202786767390771358335958832619887056097354261617576816577839893800647525083570634271891671065568653922919053485924842994259504071798720283947334253741196613274850557029118597851714272034829683893743992435659754378488046424574392597677282868898068190565062692271380506933082418161133275623429998277612738289354927479753162915547354460352060673066518727636828731356454929046102647721279917493469202003981913163041827852984856347196056879055530583443754785847667631167456049964948156528706917762254925374224336608150866411946119527723650601845977525334110297340892433490499542807253540313873998597031010099412574083124795513664430940818708534306836251951241683680154858275937715863148848790918423924155105432575424126942779042870015961949761353700224804322874349683235213221417108541873023443257377273201363585755492808726939743235269689347286851324863847840271285692215484050761384849554553828629043059878554146048182584247993638826248664630316279461615077764537451589018111967571598662372874248694525585370587343866939026716230386980142173540826023467259857575436311653146146120052600628654202778640353666409731197563798614318785768778157166257172427742323235511000418182892937203384319572130865639136179056713693190516831942759482606003926640645768496035578646213975834724772682190844158793896855118152107189046453973480648013956160562562864861805659744090371862631905990936894094403466909442209962459856964427203401122716628210247320095988448520090509838906557598902680517051389907449119246372864335563879324251124891031534838117033824758290090936469125094174935166216049511068099108213173399309515426900287841477489207031296176461768690852424366870408662853466944956502125261517599272521072831155345138224950929703547622916459025234321477549309991758855851443179258276613556945876788705039085238518488872261360997938382436437551451367905751873850196827354681947549103906144236262863969890926838619764957538073672811896336391454080201051074598341113768350522293092295908049148537669591761043276702650881843643909584129872315377136360955773432494711378686298077561035459701924042941532970526597588906099701363232914212132193598149449704249869228321404181859133453178440313806756829658138772858753803652121602320945790182459697631116352079824293911863260502595008894761670853035234904525918008828782545150646977171960034458092227187303248344128406474477539220883259234413707287072662545199510705794401276479409339430188103991194198681538450145148517275375893297588630311871847161336448355778026656103640552980315732138217085261681415010385848214007874617014558201917938323326538539705601494732102812517157459028840079761481207932978056980347668432967688602247182992073501389008219716803567594432250841850175707623485399836237659600875844283436280455519187344925864277353380970267212196257929231830731273813949360591069663383130303653994844569874786498239284779111808954989736744908596551635682114159909419895031710476558068763213947828630108985884379806758543384727788601742965033074740138633505813120912678479977555779239934836694400615572040451210057773280265831085019642683510672854666106880313735299052999478117964562062837873307646640053854879495595636465418940296498370906194384390242447890658476034367886203208679722376348172405181033222797516625102465507820810195863660703343886644380643350588974734409298215402267252531994911653919846451235996980667476263653396109407551190850793274414244945811283593991961777992213684848909349094803597633104592339250062583706774433059358642743871566325554933692927265516856881302079028172784379974138240266276067928408728529354128186240664109858828418412350085361468439328362436449863096990201057973156947520697412968201304584684521825910295443918021604948749820082947173759168487272574533487776864382303368121969316332344791598353977652163503753138055327086529131219048683451789367693618831059491446108616268549485575850372495301248242430457910954862978212537779927196658994678375815120439351506652478540779867035610746460856318287643963709737643046622152514781797839217614585550945630331097965554958161920052569049408408046724770053392732424434488794581320345917107546736846363416444137704679225339176179330349414994177972145069575022190899375822698073418104969666154031218105770362606225131089652290889696300946729174890825041814635866009714119026719565003595587404695105458232998427942760452840399257062925418938746795607514835159526624298944351243402688840998208364527318408566020465877481905730451067606161188992654640137115827031023523139812937933710302269808315362576432751522699832067949950072124335663917896193636214521394088662534302038669009048407700597649841892336142354091734797178867550002257249551770021275693860635502968698242081161274493436332911061073556121722473476544209413223493609802578795633585093256235669737601754671645774580837174069489440299421236625847468245483427724144130666055543001338562146775180759011502762960003794335192591500862698006547710083262198343918385105841290333642650712951051744458256133305781000371338764713800421842396948181580134936646140305385581639467636118008346203245514091606702025793115533869013954282363526805860933414863098609683073799749758178661708282355654884672408728499709175339751235377169310186730814129921906579608613006328294101976017501032444667662459960825098789649548749788690447009070009761025437723655003285953994868226205983615540808518399192187503239891102038928485523187323772291252391620252561867807018636365554244232290552689091860371108170005020746235438024219001757518801128093169113161944759454968598671813353124344292466558222680762800070092693961832513942745793479322155667147043839111396713354525428261576750135839434499474641804579049545428438951750304644197366984319872913070133297896193106034840520955891418021539868983511609613756810246216337221133159521042261914784892751589140545908256743608847274301620082340838333640816720354083957864321760294142183382044762838266562397977231526267864971591494479255136509125539142169054441009958081993116809992004146627358057464376516993795805149738427571471998500459077880527223484669418886753166406513771482133469043507271829532950191792566186982989921451575025802921493216173640376982842688922354313935537968953652503910878174677145693676035390696017483934180159308402202923297448085514141810882138985572012620814641761756079038691303422447546123819807587525831730694727523653533785742287271273741888581974518483603445306354834452067229041523653798134688067125369400569266668038771817061878916790857587831074915737998214871804899437079909045534572611722932452266988462076209106623191508517888615270279585647310158288592438084988304384491171812632866462474461853262640775942771635913572491075994534713498262014419514547451069801069477300230939517209592423481452583276938441868842756623993859070949166328371519616621886344717061987982870163832133053228989727051866118267675945452617459213817102646184880673658675395972123675328223978900419414012266378758917001206339300455672633376760814330015887437266161185795215418937979479285430616438894154929374348148607614445237642929913832860190441860850465906175629666346310193153786755902162349274670876447180951033577846574901541598984939114548240413512620996151738302536034136687188038751904580640934685039637143723632976876293644039590728891140506069265434183702451330606455261963391707699967339664231288483604351010113722163917429165077827749687646753046940419518624779970858771248449375035178380675665180115856175306068177426164221516588142587176552856647691441535424879828253407043229746267516019606522321912131061072704901834942719697207804983923033708820277565227027207859900361032500655992571345625434885435364252066358001029724443588793708179604520882528809122959882236359107831665923702591623886798807980227051355632036048766133850852629877790726653498187217424673277098388092771170660652372235739406822426319882393494530822143980789738055610666174326364284029073948862501445309937677327536404866107970251025464493934065279100688364148139434608643653291327673901212601812387918257331600629994825141099773691252085612092534478201300098314899491931585158694320078710602487411603268548060167598648613912377723303280109527384514051864055181359170291860372137287094279798459117212758511778990978034774119170623978470132234094818971020560456397935257007305501545221055873495739989132718745300324026268146911574562818405981183236863409955234815524875393403360558175346982980120628641904308744199485231766447904594510181288162099825807450742998036690553899640021975890875264567035587527375581062851358828561388948511044572811151952307501022542349400439298339768392582516208829275168655858556989332419581108389738210623032848460808418903798581018232074942868243943777588965952458860441829071070926818607802674411463706582319587691744756861282756256970573397319512724135570145336413903034890984534154548769061362923083304992117738115075923883282960801439689355920032518089917709964939455977061599100642474798849975368990490718072023031526055581941657977621480974646431152179972152518405269515710407388923265476819344380227721033438737313674823278111673303581724549051648250612377523159304491214320946284376892516245589088212061528507710482812328803005285735901714715481637174191446551993672719807196656343521147498543289273307973025556479295801848021386948912994878921850711516829167513836713841554595553050251522256395684565573594217047738000961868026616565347269213395228573816519236739348464925164935982348640741394235651932604160928635554744708160023650240682863382031727139204140487151230559805683435518216592072071104920869889267697376380035132753487288072590409251520155030934764931772207686426924282773564975765760653233879242050960544412739545033660150433604358667963936413344066742433131039991068971441769791784668497508555952991146762106088678998416913240092654579493628244413132508461102375361589262601322736266754769479361617633903407170100087916678827597191035784792218459577642908512859843034896894608576018784453990620334473317983094820382321984339709788606233487289606122689367420319781228290469228768050873701232659209368066275763864927668352762836875120028893130504431015774091150844076979445508385340111124910540886723263753323942828678426188380167711121447046279924530757333637744345786496215069519754109670940133981367981971572345461795635620744705247550434355795237343644817067807454301878727506377883068134455302554936315914682211165012052058847387030433687995395851319692003140468326099943143763602253609923892910029215647287363355313756029153450854496823377508095368238110831717317555880535082660452976181856796609673109470065666709079889520863765590262961701075430218677222991587427781460451171033049587148601103840641789051078231934402090358057200656523714133485922615916889513338968593376995149517945988211871884720028855058719913026987044393658903096287437644924671403956913633114770468437897922476602029406218923256718303595695352487280005916672512977183457983493472694711297805767603894872023623823706312939391099618827429756136555352864895503017382204058305424594326531396934789955186617437301660860109903843687245408669580189025402221738824064397291960515434074240518980550531875829633684626272509685161880822774743396836622867770651072146712441341141230344448283385943653325701131619488852521738678280056280299108803130481717075224486696411482454915565313357522964289321828052307774299668729475907270756147498601870411312108686458824422271505726567627203121304879774172309678447520052643913263247409696011107377270621305414940099418340836593899065741923120662873471084013922273165444567971773732322381629078346265273743662238530383737035598511364831117897107335965903095566328870424329588714985241405012091879864189826303395190881004040906931361980530978922767986198390490073957923086304395349656291102224710191660059528221619033024693734243379846366361190873809493009541426949709640396169138828191086882622067931752433806663982607084052372816028439971566550463077184027978290620519781017091444640292262557959004112645631845004233809585309253944457031726934954644232611225315085476711061067926307293045081398362282538497998054711702635513572702742703348113908994331643969774426855680836759983005638436237242828193986246217147334420788979286897302276563921046243449082304832752905054586942789249690440783109514934602914893577176305808517666944153331957825437992113759263860326908181249793880280598868352742056454266867221601354202439021380403496960059806915464161488432490208599913165073321958457758330545459345062689827405049795389197190006018404079541216121236001826941128328406740658175504444648650507622113434983962522906417222511129000028785700402493185563162833784877247700292488678733315309251900441132456095559063381818641796511203331068406183017122589295453570480914886278794926663656423385603862768586122460837988210288874182700793645310700054675126193928189994152605497523052131012549183806540705207459328379628385017422201844996113622757947516273723164763187255962804069625965289897958447395363498700661495854672079898313562494786511166356805122235232157216325023863143125568145617917054200407831744720626068352285266918919391336660291384783511486269882748908483252941672522765035119243555497119209412469939236828298506111080383221630960838600489025845561748506818038082496557786067467419239442357196283683399340062318413347300264741772769832838509213455449276300194861696583906558918887854678578238647718100089880646431835276700188455389097120955798688464014064718328081574380841082937409552504011706041483812015545630079520410491759372156538625635523407071423766400934033091798322096637147752074009946847615501510366157970993722266009495280780188883949715100014414117824470112120468960099110352319062478918495039594470531052135383515210522764023809148857785747318259306541838499057087771866373071308984979956257171411446311017656989470833378459585500011692558997884856252442261389307461615357113465062608186995994583472580276597889345189348992534471671323457514964773276409043374507259162348206317306897126551538210609741813340100438400908234020241445937766389055804349072807935999879165371615364535418325590461032690750763761402424702365609299828520739381596894804796052819076534043661294182619212043947003808458730241700913320399084779394886236372781608494091141536271816968406504874997983077485149146088029778384100121727996304404222840508262198522989637393235661551054603680865723483235594352637043457304420683904237823961532923401317156582595441182894917533170414099346923819592561439290505995845583879910630959041068157138110930040098827967160381303296998521585693122975146082866042478244961630532012170105954310422915356278906175333110479817452989293728840159211794879499620063502624225951617612690553435904470137213968969234287335993329715164346992110979783679307459869299553951438905536301324162233297455550732696369339314889524997525812773202193144604484427015868018347515354411083576262437755121447699044740600793263469610558013304617815108533183854037878841495585418662986194924291519516361245203138729878406115817644665106773102474080282966231260952722181057359053990707315589696239123954224728765213065749001969139811561470251280119903235617552651555038164506120922268101947764629292279574046240492759796021348523064285243628510670593833421653919634293089649986770801828058239318666215601495086153727937883813737195399117173518706703635204458417684819235391353283977150197574221350448853133256710960924821875215356474450074357201314297955983014586495433670454980568060023430560354299852501882415023407253429396132237186629453080403126487031226503628041025305991937589823046935996090532107870092911589811439317026280997404483036768170340669660817364803245556122867023740544816525212312267065681060971666449135932017536570255709913176203771339470518455111222519426802976128978480470925074308604339156533222584006911289603566890896907976849082643085651414634631586758881182459451842518657135370599145440846663499307003554331035302142389824293810825149517999865622445225702953635376504907586150182853940473365406200542696919977840898240265823292124766146329434615967429860114386631971733438448100152041161749674649006299804443714677856161713617180858937580445434972229099597257384071193542931389336067113165018994554194001879613380563451421933182095094325900225831452260424810965969813865548888482496580783050316941905085251369686375650141996008542562206482822162793335415591508810830402803106165551789066136098271807274631444180922429862097927070674048492776877304777204083564184875548541089026149806936658291766554110308468706385220445691515708411019523265295300049551124627019870684775940400081691989991589311784043548126694492277750037705613347815230216449964220041744660785408204629203363248534188904259918209845778800673600658187390118592395525886557169317348870050141387835448311562727501648864809478074446226254982849938319438174588237592377564015934908482942359960521949272497230057056233784427352089194817396302874272942703112125518262046595437971234007344317242207236402987813180025160177003673253213354662672472109608792468909766554277313501270275682264674247765531937223126747642913363498317542492660426879276662620856544979338063401280735662611315357122598277378715563774660692949039543389344932926641744901403298652842128576530456640048327168107739045501689208892712460695823596030708656587748618563833712089103838519761760758452392183845451827394660093420485318613651831091453120036325542176334159637650076785651440775324705946781376968942299788922798013342938776398121514573710702131048672639055204386650475525818727537703732904617064686375527756613817971310794628819254103487615240418890864805749645316185616905474237828070467673193714253117564838913238553069538288267749844432049054988062578891186484437788266404455781079490777705699041557853706483275303130623099210413689279354268393801921324012084146482173340564399832993973391699484676264309797549286519956473104705430585127525972791459780727246253470026708272877923129103900686867056504562526659035987460202513271482893902364442069669754766840014511041735215821670368845660897453021867125723067068149421300894555989207927968128781350490438089844798171177201839518654504463797048384704179555646450283613362721741223867946509280909155201171617738398766393832235795191153381791413031129768541985572534514363147876337683448836922691952550023349194376597678520962786168589158531998606296059027477839564812991113820960107936240058215479758029082699471001994173780330142592454672215029088483267080285800193046109723181798407971394106697421230782177202012740755831425869812325523936907186468492909349508411974574519076508416592721530418038794827914606027663128897974941672819113675137051281921700275249507908688780747056438949796310150271913154489281239542654581157406864836290062144008565197804732208979723771228899264634931797416708116984629757100451610170077340779289946076966151564643920878019441102183243154607722922726581468352158217501639534492640893413534251411384468169419807275658191032349036909391846410994856874833136139426765158818231258211096695125630873741669843538581178804167363255203467464501344952295935309597106133640635840538908108377034426219622689784685079272166401077639146214240838159000754950098587611083025017344450246243115123274404705864303286054246601841275568687947773344957764957966384882227199967842744791202761706329462378993916520889256603637085172901705645769106948657705443223959924508525252232771810037655595765213026489890370955223506527828212855366770064027740478622398906772461307772937925947895966647319554756994013932454150889963496328255952536682407942121980979720529242952996022744684321893557865235208481024192880255018540959455137224472690264820261463773398061917123194005965996989802412082335728301717139344252879179816556572595882538061943031316729513352060720898894209252932403402769511694392814226707007863565347354453931066462894649356964490348818928212004837984819494435249946538817890183604747100528292817635889308614114898122159512759909688683207171622807291162741122624257085229375679848768385858607712281763208548095398197435390016142625454644073820673423270975644969943524561073719273030339561736047572044488462325493558476004903807174782184803335064521135565588964790434742959299249112913157718149505158379354389235276680788125219709587846270416288691333875858236476029794985218561365870902623229436086108275829673050111226856990410802422010911736534890819675220024811598205919524917520120176691584646648946589075950780894723928903502055317246625754078792496426284383600693576079006816220977243401388665937638904682168961578715830334881279004378931122052822921937848139917486295195447929351514121238635780589825440723827285606671094959778819160133007194376808177959038039104160006583815658134029461633374188638852946764568171544819933941442286174457755771551676022943181571381507434539967380446951025458976385569170318234028721712289665717309682205972999823441023592167870135722790253176601947567651739171114317176260306310818844501040922731237975264738179797402949438932723333394307955679162045668830792050061445591238610279506265071056615011744962787467812692110936615518302080173454066908552921076803477071379467864655547763614754713539443420213211250752907357641927450146192405367863922597142813104128260183701839773418147949690127585787193251156523259681535786668599305932008002240231442095880148870916786007040362770926925387617992877071978167091210553834848070075275188677167704503809909428018752387533040234004396941286215350726999379256230974955782532392773168596298419105946389290486685448018470151804246896530698780272798721840344728341466281957735645435356753116108739960787965017882801976203941903837611122309948840478346841886398283400140841705697912183407435704098497079281512570098797438423873096939293046767936849703977873170594243244344772418908707012462089508592766915356246831701861087456415328754595010461834576010884089455298322130235374608495089839612230504886950194037554534167152946149992182730551560257325236493261284774749528687840285636449672479897914627042160066433914796309515190045672931767824447420359837953682427322280264808008661454435588079666771931286552406641310055985278639962009723969461663440048325228076886135755076035388570527495777795383556713009714358163453880137707493379531641988069184460123102192847424459235525910604518776976342382440079231723563670382390625773685628042188599668135684925690324369132160630711912829574080957495731411129001727283578843553062862353908410776265601728517078867921987865396064780959437759389771961834373595423536436218700211499075082258381392322374294190140179621036238765406984958020454500170194759238699009423074762975317923739595462119467660397657199789948748162142574508436726605423037046772193164522489089541905839449955592856494505224969752384255622981063763171310424817420827492557798713936297282641566298733790921961464948620884711982936301719105397188168568248928474863486267744827359315460094832479765020160979180610384095755423950771134855060673090181437337012712753818575422929794432973138853623022564511233697760124057897813477065935139357743111076279451597522535028922454181036314069750927476494279543566011643827077063445262361903264191680548210223322697164154273656924676566308398493729315409032455204878487173410280436431567281715030411989892270237626065990309516079699249297233474627375360207570174467082525628136964343484447184343560701677707407888965720378959071827299666895339873229744018190003639023764453288514594010925167394369596293527901329076235665699436763711071585762790438040371294401740299961605854042456824203378374961842753817315853642979193045754494943984262986037872063152491558216295221278842408860322847192501633017034403650842887042835827022271456609363602209298863320928840248522285948616314407200236854595936604755356246369020292379320913667407244199100614446441233931131784231372064608758824853712747736777978831193942993340406748426595933284707739410529661163059882491852529797016596401402377613490534228255332940449449829448691096166120625590205436403650130081814768770703399464699007585370001150280274222223392449444803767795461867885173681438602473707937245053545963939286092291580135483797734522910299222753233107854805519976454271450770603717423609503331039143955274417623207265170417447663975786814954291537434398565225473987796778965312762888350018462187547832280491094097407472624152884069742262004887282085958676466305979917384950869692384700793426326847738556818562279361740398648540328643694686265419368008629159638999369451332301876720113393817865823675582936020601901887849712073880111993252346743059669732871811710595787764513553232122212694917004527561182538579666468720199031190541108451152531327479578970132648368486441397890776805381759861946032155269411670782693065210927176725847307314605049343022750469672146305850798205838221408337553194670591172640620793073478253485681348215909251924101170690496230249716324784014826525621831966455724271542146906128412921806910202969768632208372829623702601448690233389256195455411932974919548040148238619239994597243699170142922478737543153330819006806907521337970253591219610010935427426574607351429739441567176262635621501278604792529732514119690891949399432641159930613125186497395720223547020185115896097622038565109500216886731045418185927444934424737270536634804632717295259706387069991076808239225196218759472867544310172641020108255304494476417168515504352191198574229059659534507852735897162281028404628890225569968377379516556835795856004524190797876005125890770683426946904922628073030331998991213595796660487237452727411814837905187228795609337376398758569659896196336307490951320016263670619040391768161600210653878820017038679730721624866120162942015428945525983502276645190038783850790863068841703227383622423357166991134292685078854373483174894467710609540471869388401478561833204183269839537479476280435592698035463044647135491193740142322457114929344385526139234505039691573595746995334074522911455116614285396138920775983100220125542716785548134381371492652256453770565441063681670084007537483558466594422414820611268806535435893216173993841652744216416847064255267214784168194173377555108981169789334396299490863378445595286434685569882613432196549920222237784192581403161602309644851837797343923495304037207468445060068434496547303944122659995210528222310823366424329000291067106466955298947516337773289164399230823839113531126629059406020453354696519612408924548028222925023348359936205260214416008277905310493366312873210930042979622545634150363894339852738351420964659984385345863024235387068171601203599016950282750608232088011104466054642910370979186828595609380183104105957908262925239370008905723447061488039537336235866197375078958429313677634144657046252199798327712147009224620273219968133503220755950646428180120888028154105111182415664336401377768070190547852069980963681028321119525198938335583007588721389575756079413585610088186070055654592477837146006701992139692206273084041880339388662019346956914648556394073597497156137130991721369841038685360861940792239820109110250638509460084696352504495876600621349259147581403480758539977930357366391686052997554501748250369239627008725488219907122579806790512885162695573173473851962885536749649050702820639162557889246703532563603695328935706293580850043809045008587764854242146947378341697346526173133843552879647257852456933231982737949840903840902318150979225015496899426429439377525733007492541888097181011239505179613103608907760855789451123422644294174386241822280044514850701876815280649577292060018009750686507775362327364870338240419130298484289121213019727608997536516380490201693314151855379638298461071786836451816650010404319659933065122123439913660614219565052686176763202954346653909594897355857103740528093005290495488561515402457491006089198066768584227629898144542844690225083938411717445651328289281270249785591818735399814171384555420876288437963999611454606517163944846967834844066533406243331000344026187176976029798335752093537758213244353791429768673209710580190784011839305607097906654536157154523668195023050475833217558261398741737288705275740504925890669663016945363668061791605091798405527598537947913661281583844578589084183568359378089974736854881282248861820276212251002977795648916650168805111901189868766182220630174909168216989805262136446035942175094659505091447691216043000460770439922216003987063859020785454234697608260309313482075081070987641459022961539235844443275526604507352512123002396154230753817188081546552991349187163786231395001634163068260014775589856372806075407760740885687378299038928296152821865667540427546972301146547813320431905879481730499791526639787648285989831864105078090114418309828522512292073391834049330081800169137420495509569560002477494545617683133151563058186185534389424264922615785035514600042250690034831638555193814146474488867046405093863366686819873731187522335849665862381803598914935780355292270606797518981563162916605466059152873220824239216530633873003000833425258138013440837569768823357238382392216315494586764981704490067870269613362172065625650738192789858966586922507948451191222711769874273801803995538837087360577049291891254023817800161341756409767874977908878346470990458203342573484518568910797872755019761606909707847876355373956078675794035275704120078887088232832970137111383139774234818736812622900825156440717626772740636430867095236129729476456253896788627626433148158250751989607606586445487492339503506998383946700229770748251513251525876235950118423864356361555290675641796848351907941058126055307694342773674485752978557085203900914488588932263381770283949160177270957716440582915593577412435379281742382330168153186868498027526508125440844859932555185335471035042014980444947234676531094025003402256935047589986060721543152745174289818198263239872676230582990962349569266122220293520937664403123146103572671325565415591697539830061450108373409332998604869262078628036129120988431747116800474685808702659508944592751178301841119206943743069348378806415078552160366268412333874345165376407325146820106947923954041120618325692580299745284466303457436236588262535946805946672001021789932601619236454403924243834116304267260645965109702940138405301434888192409853182371294182976374296097835576352744667702971588700873997561901816560971811105636846256068905439731309559175927399962362262338561942502322664863424394189955780265290915677947892281530432432783634667286936554844202536756154563099568424119431482497641987428739539366293650867271774629862421731351909036626601657250739267730137386611759892060051059561394021040802159600399325099437281448782629310395863980105400230168816197565284667038474711119140090297297928699682234218915890171508170486351545220509751764904038733656673612647467754536757499828678889042619188392498343553731848958553687087510904011676822073743283805199639779321551966388922565297022213122197582545274789409243916591629912397375951338542229689327074595675641431280348292675646320651328902051469234059900891488915601846547453153595541066781961373327872491507321723892863152450323958774526029037326184938860312440066095291175802436413334253505039833506225844813034920605736172099084794475093775215254568309132940618564247159116206377688658658186399045575027296907563448709201039853746772554547466851060263526263325908320194127162801098751420756274090687401653634349647448481370165305414847077125430851487212033087959670552384113635552674313863035683463932567195309094212007983473178610459181310998894378849195116437646879481606258467270901272550647111722284775343251283147033881734284513892314231027949720605508183422454990229003256532890869752228539933216233029570246477036386834199289262883418872657014012717016578467770097396891627814101984034873210286185028781194177865563858192841407547323817499810733208401366695134350313832361541615454687687530881923537711087916829603092962029812859808713668311334964116432157031680055017228579441376845287573694576074464225520468676953020989931777976673613335087978168620574660931156465025365572908267955271312902543581113092044383542134230957046658440556089021408969931725725444106594838941315959106903289582507884383891568764917173928509592860547652670561183470827786589333187935472227919697866694073059559841073940070368329415267748534314292460728346354784318254572977887458953838473393247975188214450667521863966874501361857252679729086424956207231323296197737617509989569870430511403234706264455159381588659995066461007641781133092146654016113013008061438315307826027947214258952474026114609284642978325087250264847300259406850782814687938451768591406728420790255246833567151593484461614875847958768799030774606503101608321770899073776270874412354490741708105104154002108250938007779399038737626916152351647924301209026495460427682400445026870669564366796237823565078196380596518921965480204100859974154196324283366054833368314996331985826063720595088487775545230091587220096477846106075563519980305954596906695010058776462481318129664094957632137247016907699985059110668038297065960707204790868468110250144179627202271267401063836552196895948962932872833782835602654336671288642561229595889978259400554821465067579638445499696785623520685994417635292660696585608619845324009106146715333474474931128372577772766617676342247136631235730799032400644818935439676413827139914229918174309270516975523545321998563322122365869217489684186592688933498998303663766661735520295523885061903162817837706599290330280304131063974098040496605432993450764478595999527687919834082526381042965285996437314828172111212171659909298492133481784027195221383674736705869801436025419462368799534991174006239325211363389949076677904134432496236312970721100603390635453879594633341658392506093717012094077391680923097099713676225291297641850465097640340552688474798663812715032217087580319948740871891422333587485381404036536261371279385362153459585155836146132072850982948572661769153370837576490299459225082331940070695588410721849458429999449651443026283829351763073302422860948267510049465606986141860628403578415475480400352299265661191269372278370224208933167726816699384526272968396960490355260667692715136630836819459778258814037504373077733164300599924132352491365753825296375907139657071688491853357133142438494914558899428085524983217420490460348213845465733080205374746764323241418640286153761732851873123707369742638952069138981976905663410328257083806078170173507804842847791789516644301578045291968987772927758285429452881662020601549211138620546713773018856845147717315213746527885857032227911906102976141864370647907383739899322339795199021519965516259709282081478444765787721756528558158576681285039470130870112331732717097613705120926643147416795349513985426667206195627265995168693738737563739056514989973859182181462003689988356738147600081954016502236720677295009588744738384887657090504028435125057394771720943676627065045538296406966506528054733350500153240514646240822164167957246731410336390436611830381532670124064821401304600780812747421344190655578441789517063349234159551097782763342478537954602706710115625578940801745653595579285153905144751497671009588126756003766953850570363216915467032518591472406814639580690983949368305319565990217406577583771002292594746905908560969637228649412714852339765495631677786743001802605280610679767503479228110158059347876980968352910056915526159895098383573806195593291027780077854464021456152494780504453873211888047405332969335827714095785686369802274590802303234450599093684619480275586226465593005520077430236138575133211331535797335078378748455249289661736892815059540406087054589798071439767379602948470153099254294118729142304337157591853562446827140507123018167163098681079345856407043969324452044792439790547135886633237858637648344028873666834237205326025071146545633125140145376206717581264346541845601495668414068077693035495823802927028942221107818405837665786031588939232796332472115593140984648482176153075952736654057470396488541172156884716916416911960182305970273348750462845082000022840315726160144317115236734775384937983449650876892202612201678486638748557500591081426453420972611953596480518997766069257076251000664489192053408186980147278029971407728291590845059180269429272495157863190654077298217953181836268438441479340516271825856043035875590518040507589994382252075657971041776166458080637276968792672675478359900268778673485741717265140893151663363342149795633426541575135337885035746241244516752122215630025341725161063357092430584888358113685397373477273370675879832435469870830297328515914122618050720037903303207729404184586248103963589523210778205739308804156788646291403434463510146431197511595923129594427276180135774109677973870320797657389449943332489426361934964211231803479760770542784254459200314055191138240781272579156861858414140684289295476634863432386067869547047497878145311195340619441519170317232728118655967926078568026840773599684385266704699721691613383432941112354999468738930720877606414818823616279255547289687884141889632583950481056569490029363262287874419750864921506392702269325500233502099162915488135872393316174589997998422493156950548487183215811856912536155027001556355861406851382434695188967758660255943330795490196567185442510633820530089559672603104006018320338793088959943653165070140850140347172994741809247925327483006525159646482639789272758621329808357132597372633543493236913206631050697742965787094466507754508878001191451411462426492733948414543340056576280184526605205466254891809029963314261139683203336292658765532845771414728832161433759833153501198379424648761087600736574997176775061027637948768890740904161251519540519826389436977303840218288038006108063814853164139712095593141282781353344874140228891134975060687589586054826811560733569913131626508723713344658955353557570936763256311093334313224568095061552871017322087124975784291547773157633999018495083926665658019568904518614312940291469812653452677857522411170977233101208507351813902215671825908874726931386492940715883542442424289233755242123211923196878667198327988863235552836170176532668093014778350596278052138059533776138266597639800373292242375337259665044026581093406698243311600615652413495307815950314711485638580301411910944621356763332726641920491863384577082326039500844634160418292412916772640256267497199840291414035836940860320656229987168158549912050437821385616109141070739526161544226561730464728348817885797955318303149484995195593831886655796729306782781204367939620783038746104091643983519760471970990429001148799339378847286857330400509263417528730923136845463704952909226993194420453064382848563291607540331495805060168280165035099915244433458834256850180574528972816264580295334370057464687197090579037316692728631370059342460373845839937264168000235277254057015963190090047897213022056763177182496712844936291185557772112552989532536866162522099886779815043944821959248931073921213050873682612785472181309483718124077361246810377684754773002759751618887831115307923127547903899434697946533616153040198193883560933076854368459862921480668015755938903402824775477146405131069196257155721981705662984077431853182048032596701490441242459230148999169589067832573010455615606971609221634833973575504148484514285779431576384491376030240005794709498772470465081447983130348674547157727781815228930034746429976355738641929832909293053755110814915428636794031558294095088275817449493324203667424914594619752437441606957757018274144100219473262194232017036044029892687509411673328762088520038052183080366631429777473723707973157693030025092296354503726862455722857094570634409187057731106883410436778585033850659322374028684545865502431207509546948001550124301768929178066628135108532677309515502903369441747314283360730241665887623851494630657371520261186622092826570360227332001952595173939157378585627318427984154986734065145840456504831199653015469113158589787233327873582959411407638780705223020742872947513426401446559025378733902443665222459616340349681552574319333191648367562224515670318729472170351145247465426927679861532818192837240477298705205348028718971015728665219571141808397345692051872788647601905520414739978894889208977219412892148552420830353640767205941547763878431139875530179473105544078887987072952738094382464029117515867115982053927216218699270010301555742447635700966421299542685134935601359507825258111669826686840034130093897353757628027767225099765162623097544340723910375838195255414281717979759036565286785755345064222306869866929577758685212447538216861445893364225037743818051532168183080140093225361350461899486015478316205189762819861255184622389492758723384559383043732098597941989596809790848028074015696891804099346219277012657506033921032532298872409314262371744092065313031985065820375922560422130107198301998057234775304661310087710840155194369356946893989992837945682546895770818406170557664160642621145291877677634176269601870406081146664759094732107700629143017598270229862933887126703391236849692068428439775921809165531292023177488898245112131787422248934726256598512565255559644052185109283328709712509933732918125815792219872741848934409821247733955624057400976321071234833281682315973167867871078743586753611929083261614892340283562628925869223583362411541644416066084944290077834661705272892581791189221078631346141206973900388749850498741782879001539253216438045611783113282040422837631676888323861324742252767004465011645822512201134244724480880280726703806988908682840230274490345342047388979223360193714115034886375701859953859051364962489217320300826686722796376432455859712245914980800634693453755831311438947687611646494685118599615023849249999656995927557902504479521035951940205819630682550867172817198852849175167032484333215759087423605749701060711565178462746958758006975988785777646323635119574037961401202230516948504427838269604693864261453392177780548794728310578273611806015592081018874715995035797228853797029062106438326234434444173981069875956008886730936705296017071034203182274467233226335494452494645948475870379222546030298739502986958093817340247960801529951288232937267535532599803919371230553306870632428585041200527391185094839321412165797733275573614818471359605903108590026582555817215128885125797855929701450325045620321253061969108960265191710288220403065961238351040083854920175086734116239968266950373941742778844494956562750997793927581256969471721421215761325483384537978170902023686575806736749484871015025684445016598360351038794979165471441145210617640785389438390539861428247535523237066558188973050230264991923249230701668310180727713457067267297616960904222818887430398258010833012602913017506949501924368286292967648483339706873564962469106749243033896060893719512810842069054775082562670544612533704929003356528626802805557921726194658431466353368724801047757661769059466605771530145796419581760315337713109037454665334692927932718428288413263153792575517126819994279086478783208493025663746254416034488232927561404443706862681232286385908515664666589755171466098666134757346033239736911751002225902698427629395196572587335878367704575816304648345977809646434097997698416084383674805123315725933734728123530435491049916473019644352718512011858772706044404579276074221958655563173229069880337102341767426462691425893211544710659290302203318788643846524353212291758647228948741208483585370305237196176877316919623373328162840115564762843503559346428087657863476614993075012197780154685563951516251054636819764643118350336304161361051447025618575681032445661000912389787933211807806218809045121077183776699378363077593648052533187128566104605918464593676462096486553965816768556861233723648512891045641536886793409142829739276594253340221525333067336542347531518481031479776283626212694195625595435808839273817926323371361051216078880367028439948202987464978134512077339148810307493510407230794691081408456478406509259353602589307673144121972406280144463113352681250626553372260551223024658590345513116764725082709277846771513582151502107332036098098604494134574318568190154626424923621079517065817228127037806996807303052658520837474247823415897346847842619212001329830831247358840153786955972437297240383342403311040438104527504992266009045181706028922530375244944710963121012560289009486186931057102195157826334959267890068259304939415055895787761993206888964248627075163565153004586735233756094139340710341799134558874634412468024471206488486662394623596108839094415591964810260747018631542016874208734243799268364792210770161473482136110002401529359181364657230749091619944111646218119731482860060034010982582962635328277086058572632130019149532385045859832180711657722949927244539619034853676741668813792337141715448023696669352780492408428147289954190584428689773350927748585477706768341958088581063195094457864052478999333202908467598932918544422114994707578304782149819561022679701405797818703876680703926922579273444751102198179809340880660234590458434900579598327010569472788996581380917573597247611375716448633393269257260909348591572339762992780219444022844942243753565495571462694343211667088425714863746391387136108308314825398171132059193962339751307311102220255032357486647021453415141084481790025314700800911659843293319396720931789929218739383341927308509755781426784527074225404036949405734923708815057366416436897778474695114831111393975345885586164098538163689963785859821023069264426124774793731280699128672281631020195975942056473292163351886801148938731842665459674709699553591576707205810370901044868900455965089583035346968797504608015914362845229582100317394459397402556885978990165063825823602490841119286981585789673017321200281395647756952391944467166143526046515869896291766001829944194839720083757659485169440194142740697655541578075514279145854178918848328453391756552030472154155147930623187341185301206474784240986383800428412695695693758775532175023247239300493290987462378217984600608837051648350242791911713036569403413507555951744983796089786048933760439875986378052071489530066178102651954739885321865394913727775609812721606853603262850572976871300532441261763648008470260126478070828673500387909870284337295788708676242514183907574230405976290756648887216953918789868826401933971361024583770888383385717463964647873785603984427469413287791104447209332884295674241478993569632366054056849654189469329149126325809864799889308328102329489095274469046782232498229123751171479334996594512582612829692753956589187187013165393591545987381956404602723813778503322877340167014051328848538026176950936576466515947952490862897735866146033138563104056440612506931316351918612987547556728595986697234814502897339712505094797489651672904714973788701554571471554925109534760249083494825304255273684371475148666066747960558911749136637463427453083298042199623806255374563218345009218592001462443773543682119403766507074662847146410544141199785938302151875096680753113589319181292297698394928689375920974875104232466393500016002379793193062951753537832985720577771041499259660944400123278097065985763509022956360257460507889636213775915353719926725724270691786289708338661010958196512295157871677532261804899129274018531342563077007352968284677917964026157311720001369534666684444149939448641795056605890488310353593470676722076423587658285145206442180479764286680830291843120793744769021450799838946036866766070124611987692145561441891854202885682958643399254861513915095679421276253148743599787782517906278581090513329220513724653831316209714849003863285370112949011824035288673161664284563157491392791978230533586748969415271690518304575333312214285295125422857668889331743176978171509590753288044447251666269500608574237594589818229350888459817238246117432234804565535609434710564902345906286320604892127156349740821571474991799223754124061358187616327975356130987422210843899816751433745693302268648802384758847143060644292451594951428142907355906120394825246146913465523642982716470328274808684462489964527015783623203602991263640939946280578401935585426463245974204383505092758231886325183307717210199078025105164142707815388591743608801312269957243850758471340885197121988039900163461684646381351580451351487825597989651752284764154953445192605978730352563501008526907388752085128540182832045532488064439929571481296296689157140366603606107935297224139797503625375395111813539096667231648109435220118967615366347586448290279739510673712386839235441104284316800001286330168174653619412931236303915839458929032982091332330869253198592867325837089541362067332919782145914355371151061066971188429734767043156803769541669489932054347152675211487849758264758493011892632778893647380462514982000377490095668426571431815863838971988671126729493313037729990062591464475523577138458336008214092804272466158199801743288686550757369800512433423441744356092700467806585103218700885616673030796368350701169387787428317343264392642663223865617289883152738142183820337834230118003449169188984571530339292846557847204875030014144186163740905095675833738115763227664197033642835575080464479245586127478382371395958373095032192611642656181383103781213070406667205188611962634094688462940221641844874003631749509634471233862518463675110894240254184990467607903655208308510144185713660662748029604629539245666023089587136729534864096262840373501565733669987434701922408550940429552969138959445930071378057674910669023489908014836744423601006649833403989719326511929689513920670265592053909540115030519187074705720696583747926658877414594557445557408762870103855622556687915385249204937047065065887660626988974422139631995372443861315152910902819646438723447376269979246548275975420704954356031584401283035655784653427961262595427366329701413831822849357407821636097804079228310773053329013890398206001827166132809915116082747313612776365519397924876555300954459530083535981772452323287009924654623408785170997452302876878910663876263675663199090217301939468638675322573335612483594347198522837790544090012926248471422600626579716037080629631572429527970692025324039983978897554303989428326527268852806611728791605957345397351128003135749547816390300482853673052050040739163041112630853718071330569496406036396903768707157701726727741141194865157679390977219391583995352856002216474717361228722951874135592310536504744850100437359992099913088124877133927450653778671363758334341551839461165597352133521877795642830942262322885858566133527000793378645425666159777868101814438641247876153679311553677430308010342230705972441885048653863845688107292441459433898911847008151567648655882067245699671193383019881618709550703553695087210317936607658097382822817792334462907507262935878770715980879948745177475875683498465785385105279608770600933643681305365910864041911474702984847563863964724472980271219099901146885197129701511215304693365018681790146325825452016636937319476185718463901018988098110838781207209201261401560038551465674765328674036835023659353014535342494311964600738824967386325128215036896211171510130729658627379146797082093328530255569477741574758606758326281300821024206997926930761955494571184483587750473837707706207574886824164763064025558058364363802210771826264969879901907512489600506322466654043948452207534066821165720644930015852577753742100192832212144625613989195504380723650910085319742124226026592286684608478216275638042492538636944373127613141806114300983689153748554083462091718029916822647052751841186526787625673899229997437385528916398639692298174609166761702846182005816443110669766865652112991536090369119025522769038366602958162629436637755325324707775479509662142033041643820864944348071114034614977846584847703133167437653116815179571168218264997179235171504598770877211040819090012201549755642771994223926504168037278646685572687757716183615097431636259851981353329629028492339097021270826665083027214930675408646959475177492315841545394147853383025690471854397436515916814226713906597076139489672188405809237023933011933934853727763743240165029131242583087164563759220119529909641411662408653676411254685406862022807185009203615014784447857378679224492536873356069364018043910205762442882281898316020204103921715969389922313024721845305303463380210797930417698215431811808987050880615638212131208670450290091264856412492573583804739062924509879908652433525007090712681960857649465179651706444589349219980744786405860896336658599828118591422619984727813180278301776730216912521095740673682129213890195923327989469930284811024885695879512949981629201144347655697996791721934688719443573238326597572331613927378163768348718745031502544050428532937896597997555546762538701011597430588908046120374031217997550822961686042283229886486991678523820683883178135174463883144920359843132777119418755499739950087381464355178880407183134080261515918933215689823727771008912735745149438033682966544436174876944464166581021958158481525154160389475456452152429224104503748083336057642526848056055973529158371477856612198254019635394053961805550456342412164767536477312799305764719995657277225927537291899619694805983200501914205680859813734662691670945719316910189691093400040110406078419215663144063302437210056108812335022098514842920130977667750863680161272836909142005059688314986355022230120597594848402166289582916600790538069124330130591267403571421869728336263258127758006882711184493283631702592162639645088342588904554253572528533674899655982723110637911267675610926966825123412681188495776515728190984759641878776286041243416256758754356040797287717173883055796359498349465918569995349657363964176666147002881551081707955962844538054186841477379585073145426152020282015116727559590065392982609799520359844218155396719299511751085265986650287875527665897144786977217549756819986154487242858726968930087605092990237172702778943184599127425430125992941059562762900307470643425641825554647854088123789050562922028194598573714486627667114064068836612299760416852938097115216980835676110547430428720538811427935668989239400692581753456753816692919692246597128763679103869139637593032782981929342087708821039031091930388288566449041114061011204719014792266856153652809165928913716082495281200372111590121334896389038909510696935859565126350938078333593897340364115529582750413840723070893788977535909869619091571204673797858859312395533303857999076280615082704373143467161629395363623117550552478067382812797703131852156777637332222103370783830970167752511728909617916207571128726562636931213300876415748183457080031483175724538908400976006001183707609464752457872249273631625527771829451921888560650575607316214991802425006750790337472828138213233850876253931104655439255060785480520380082259753852087267611249226289476361735473736728830824686642499149715054425804596789768151089225246227700173916649677249549654923687686425057401550552537059816223383680164664299417760294796880166024589379613019562599222275727363705747955748640264010041871463380028584516685549048606405034978630369717386881933706845410098944553568892750793092769676229291488862579286445824446880473836445449061572036721100011799203831677355229301101820912020054155572791460654243243771879147656164278181583034265543849981243278751586547911389154029537195318030654821850636201273827065986624500310886710694677571908073762225907387680251374217504280370665855691727577363409734137517680009629028277082074596576074825258766793735958490999018404240100080002468272021720383306392441228100721647571110636230557124995103881642761874155467379139378708392204861977709220065777911263087945429486466515081702288432686100009922464193538569646130787328588708037029313732415014334438823629881222026169592536876892552409869993875985422461570532593447067144386671371897735385214904355622773858692477777121918237516089213089181802108762323312958468309108718841230022707416433117734494942465053126784600512993978249560119765914622787087250271375419858234171490437611062862760086242956440227742687286218770859959645914578894572620647206856512205519204362594078245132755551933517126042006406201255834188921866482901678499424453031436354590979296021881359977837171978757146100659130259496406406655434836371353976964414869368393473754306472516095276691127553258770398033404741494877314008325429942542918909925296382158833085075911872237889990465541839037967849573365889067658284715290230679975308635618064325322905856289963625141320792239177077115141956324695131086810403262661727782789038591953124920118437841693457434905170758410816754937943782903269435565220515640734837102574539056657638296406215268777330893321219706014609726866813024037684176677682060687741436204037092832469329849484733292554406197364661306146890755588289656682610505884085433507165764663608799513598184469051792355323263424390625871271346000378262863115334978054719751129018643338088766587630025631789206359179215332873875305174829349632782489520757908343581479564845395568975439116609740955844793092562269298649820378056982698003831694716702426328433759039549738936994163378801483794104246131868634697970481176150330901741778447359766778290851816503977942262072679572633228194594716281741033371349017280425482417401679069136904801957831039898669542402648764081238087635930597958904112189166291704879149659071216334241867129318450107350851153579795801733073864891197077255574687446717543898417295110549273968030241894523588921155580638679516580443073500449804920044482691156283980090666213925984998060826129686535197298436088434403281590657841384764708805258792866770069289543579992112543700339424997166104400702580787347403714093949406504868687996069068544734617299427726714453887151380313530723181976052917562467719275561047133642260610693172576639595667088288536370462981016756730294436319269310827571469394176982973102253040652310761975975196885165787347592129963142467481521121320812774529046879009943881179594417568734240438066006878886271940031933586060849937749314018555385437413778820384452135799951645384170410262568136090284395385055495546410385782290092100539175032532465437964272662169104135377056190356783401072511492793466755098217949150405822807204055550221724961587909820558868161804176272096723256036852978437020797920629284414508730574528841983300147288699380543058059708514853962026677223584653748154161144725730420196569530307655808083255195114621719090696598807496623325667086925904310782108436803779870084018707524271281726873325485866477275208520055355624027493414709542639333636276319612294908922369944527113725031678525855457740235140886521444976348654464821159245592500878475461337900338805486766379639544529410446712047584158889534801568665780672618386141172766121855295644985098073884813749233085411023234614660593679389700319134710266627913751578472630101189117254124727531503289283067503580133478926416637531376325726213262722933872722472312367569526500659034562428914322706538823569136622868881440290831399430345898891476771409532942101318474016920468528876586032051782923305064790436499833127753137909517135453822911932243834388777237014990141904339321178482424646756775932593584118682957664221331512548765577490596466306706048812566102541816019684108322111245215117293889688302773243272514280365246508038539195402529293895605175125318772241326668541925246833717987387185390156327071257180876980515028668919955948045813559189312444112765012385112248930917346800392941631299067699967537379191653218070868834338647113701627829859978668018814214145722176671751328403071484577818981510073862150359915979315621752173231943137373129961560983190096834478082650659644952408876085292201630823959591105126872113145441247765194043773462338972357325303605873871771189995577185602049066051773727326079839249919914484827812227648470331377955850691593261234254759713488788546084069304439455172939948085978271133470127009112698200988305043280445772229370904637904034439383080348828816441298047720080643068751725479436055144620279837959145426311615280579307837135705212445255185367412548518206694293158442485950537298085039577468894790182342227955609310462530283269223119324579413319664522835863555104318058391855217707732593909747857755028460407810279519120637432954959576751860696839164137061394519704667147763002227062872778097591037769629136571479363261978424771636595388699036441595809841025483205498100729662554134456747511280859938560557795423390727563610181310588238669102098941953132832493388995440675061684283028247036275094829434482617454482699081699270317212924832775492030196615352155843622912645006545370736435684821490467152932488380987519493829342243603992476722106558178385248777338200313921535760665531646433368732360292231160363676782050825464761350530643278489444095086689956206982857846203775457713133695235408841129194132658570096829212755007577736980486583300197958841866426115544089430307661994399385093152662493232421584041480626491931744480475105632211413916079810742154493742257082353634611799558934758312172599471618267198836518884536463143274732691575798916270827552448748223705468043351292817337894761334221698185207732393488404665382367028192125689810873796822116010559943635655358599361504993577946277089887314088136177467478320173238450208088557302618948129450008257630987282269232047191210015841413631926850974447317619795395077645044285936626013915571122459675897324736630658001281473780487155150662707067874212122209062456161899357111087283099827997217213328818942662971206332533735844488485676574412803900139974086635030591945838989411047293411235467850907916350900013367059926916773626882722549591126384699179306641581228966837410973887436690502386364724204872902683187194314805993767616045610477413592097298436669145132077340067713436931172143332063829072920134725261792285930909058783153888454769155706763532195120813293323264037269453482039929676104983180702959846596039030595694669893495603804879817707197438099875966526963180699494710221714117610436835353597151014075171104856475794261522557729745120892495227655931881001303871002307804632239531742484147772139200743883509981451174455576064137264195809886431710718720728654034814384741813598370443501853960892983648995776752360139925630488816424574800733889436910963033331862210730767655158871735484890181342762445650079234337270880752361068598561849734894500603518276812561118529912187287913694150470656191969974528190892384808463123235152920627087732623255404929517476387358855452710929988673627738908326939689704139771444760083697142530805685064333008641721249539059241972574449270740441253992179367553081313412004168097241746453414937066661637092721987417102539990414083234029546286104306155476959189650396523563693982687142007457114676194595641125418177982552901613797336626919810095461794250320956718405725990533070310074444637829165119084653963844734264530975946864580842849581625847323522691661422881588344842162335722584604958914472952977656197554059407606161921577391211758432561518233196602216937511330357527600637811222605660001411009126814679951458560393321287936146447982857133286728278698161912133133928854581038267565029302814949328416426456960014537564371774295621107587509106226666387064212820267662996926261871522990514036887439884830738323143960964307164204929192945460381436930794254871221812323459222759095374375786994752510759068639756324989844378594178428635664948836749449161843612594790275248274457655872438911293878770929195773655387204056154499079039674126895903315998025168117284157869790174832509844954006019598770022465261377003647726099593627252839795179944564996153648423833634052920713124135953795488618392632239434095804740208999015205044531462803600975919847638911336006020697231680205321415940088580793559411620369497900506514433385497486563470888933326373499773466834656607768290451232926135253311891962769218690020980161971772939510825594801190465754413614732375595395847173480446113733468994988264556862133905770445012684399065454002997631234002756614085171427153095539495628163975824519784754135318475079956188846978576507041267220699734591962370583043004960496299685013584597492624878959016352667614360062788421677561552210786427826702520830591211878050834241540014981277522681936125289564175862329302649750730107648648121245626274815667993880796368719057290936952079036100835025460970101767363367660064351825968932559934990687978742598750780614335986084790509284041545006699020737117893105896000263939785250400609090827001825109703331992438615098107827387465518481970071055143363242949300697277775274417676523551759525876799376682748352890855667775849953894195370014720976014225057557378472128750197347073703262776370403571702679873223584747980531734536074334538810278745602166448211007394083087923971981430072840910389027334566704910569836599109500963556684665211959709067503436418030108419591573044227740772632750645303030400131172450219326664830192914416466006204891789778153845098848425631294998408289831148338023744804650599454659556925830428029053612755326521681374800460001343521191766778864552772160747631222317190898970717306480837033156196550822414185359373840495949475227615649312569248344357225411413712366632812457611863018802965945650243032563609063411363518050478198864134639750861940482832514368119451522735963616162291443075176716630115440017147473980630243547436233865297283041121021301380089632864344447093885518947759738418183290793175736578443613808254610722747490679711907623817029617182996642419664885033880415607325748578120199350945437364913201772438832869125324661281220886324823339812658951468050128491652471825803883812705908617725840866908895680298731482801280674889584249949310938425394936583954725829539022350319033556450866661096314950592694460858104846930204174824529899870690999728641071047336490041598068874574206228613241779135474021707451358955132208714369361420336954589880423268990923583081109203960610222618272760731473737830661247483962050326917819608119771688371533863102926291898553197222399184185230431139636800837747774112928687870912095482145256821469095039779988642836770602761001707922175189971135884884701600266852707028134937782291224703168600577946286249672807148749428274786882432799630495595315116873048116339460934416796311360195346541381529867080153167631324156392945183931489307470215924078141456147489290022944570457194293509889965640985264775603935956061742758143589498630165814957509508225850619045401597104186651131999396275307341441951151456854021208007691030469027553700558383353823716041414233232727773004261386847397904642043947547104322321842647761799484035380863031828501755766081354768564007866660882451019965586088706392142066873805511992161429379402865056339890034712273963230309386053192402642498230833496567438123115903826502934942361506712638792351261563630276498409764412119526743734528592145288824396664606436060724968388003736738259860714063755037671055593612768109517984284411928612243210262973655048467379917636816198143377270435305549754792871893552867130131135349956774636749777483700260470384067803860855221041930858988604291734436653206914095848876549023428792357959843489300984235300220034235516210563124665348511610480779177508018225808587775564889841862274692319664395761132354610358746938754380472918368537771032507121934907268078618139317683763427251933023780809190613879405869137546572257810710546322518544543637433462652880117541051933034030020930434538707421464236990232508312935258152742284973485907819254779096111620883886205671044195182925195562087967618717701105161964499111469291219368378164535350055424450692984455797418546554906871175242540718053996442651476006573756771069619032156118711809834944806528925864094442079663060358707781210664761761918487596725832956495711295052746195873142756328874112188961010860513537410106144756830359259055657973883555883880238168653535139565590860825372080624703539631042638907639760216547298256964819710614050163805101393378029915795957993447931377855317357743747293173649654733124132321493301550094568419935075613564905205718304076315217286425828769291052543950335975717367067799094458985148761755555948080043414519593974641828170486480572634127546362646768105803237852545547924032496402376755488016840779555216217090455925451053691546028612382429938020452676159323115670114968778084562913400694119579854732933762656538822314083711993362825181047053203659583266783578976521119868919014373940301707619718318058550826172789972676018055587929927888254431993207891575417919209760407803776928390912496304378379403789458879387887435710213010614340375248467473497680883313275039344740369522410225095526739569197356999801803602779988113978454956270643255440917397988409770221615294981130418818072685176648223564219186423995414073545721678784211068678811571753893374592193539964439797405366566875646245648225158418704853557215946756990132414773782657425506833976520747688437943461137507958203502139144159994006993457300420550833348440276087765516230450903833250169622793087410035975529401880401948694248620435484642722194656079649526092492370280559242894519266220247785816301960186500492060112321379801673934964136794347256239946068828908841249394935456926094655316287441924063954939531665315485885824522664166596325840857746677931567516100814372564317813339182163579921651224007428225805937822381351491505478215345777169423710075898194415907432415594663571794058066393376602244394581871863787767484794109026945419741739893772360101979721978814548456028630023862348135336484138009712237426157155505804712098997440576565038236506846466341649285927107499306766460215894232345606611747459012389990461222149246710936054467735283329171398910829952420857045954211141360564435022560898436220839883438177117367787289870387733511437492952975414899858762122778195501375305283127867557577420633494767111387683803183512251026558574096300452055655961322299492998239781454795697116349702893480912656120178860190874149000448319783221169812560499745879052777448920787317385257019663987923173929280043949902768079956313119868590768262881552208352686050807922473438549561685220747317106446114894165716937390228355581676381731145788328738092009187587551397515830282530397337713465664606855580941863623716395542523960018113804898382115747880587880817512052791236516341495043575213681455117230279467848712937561728551831889483379373886367549408042700464101118286401549900878733072563098597327770772692270299725851612977983489928745402601714208253727547369148504043601209708193160198010280263268683496534763658795802506347905316527911936779746986580591191663570812397333191230964363935490046388446472617254052501639334249368576951857832154713787170896231688276010303759203082353023150393540918118008951593856394232939666411536810078173698164869889176231254880564662530694280513094377833151562295009947275777344842080374996570292906421113296184959518702265488434933178543420359976637108076485372507206420270991939480653607216970069760144701802297024961946304368349784205802788354654964993114090011985810293224291638449534322169183754782373376453586160621193628462812420546211410019055695217833913627498927494694543644900924298628564908718141613542545807432900887655103410123863803869701630885496560577015098467815489762952572069186616959611402550398860391373901602231908344251037239680787366753493405135435119640062287877317876876313275207395201456678689098547353535182017966500682089744796831212351271607788561991839209726267068435898950903175724630605039667413021938823937605180632597359500418384834936017084009899743243127430782755762320886131040138405574640245948075191230902401425826536481096360112350694119632498760161051785192113924332231563394561463656424067016381320268546748699546693860286346057051098740936164851343287862838576927901850847669943093367331154193494883376264353653751980734501766013245507354255668490815458834184858392344884308051253271205986458608560891473649716446719325812542921647132731356487993274175418122531398458751789401798403086337006293209829661971703872106766483351648845515000008804776337919570866889916319514811493495245888604609926918509833083790820659289631189610330785737453213823377223610773352144948849570566869217880790911986429784565955598152361697624176074176385098496556905514471346713006060221229119515158999574431284778026580142001739173749918660580768000504692421846465099434497933642418914568749921183966828648338023469757461883415473471405933096010648880402536106452883482033685515913800186578705960261611581783832985609411865552594535730689105757624756189173935978534733230660197462676470479339377188919721659040798903204554609646824973762191220768783626753451088320595075187067067703582877571345705004981929173071847240666756855750680929654242819072698821656819282683146045266852639997481442858220845773789690743208914674863929647013119937646021947501924770387007691557340914009060026832272007770711226063921934555619639420274513336910796066354687595961670063346939816543770033918388797963790701461354493751651294392425527114726596333877239952604417541946669243925472981716216601669225857118653138478931215953195136602292785056043461972209462060613751293886287406711593532172941503589939454507919944967569649915835418038264454777681130124478506891249328924935692824378039000643041296988679981927869756875025843068322024739578801979294341591177522975584975475409367326987494030162662222572329609364245675523022524216290997239418142221071003777939532890981075248919774023474375788098852560839303746176753209915038380972563487542335913575123839222741862197330926035878928281786689305510331252306496796479527857581840241252055390884257671822221656295574446219283203172828657000940385865614514412919160346242902614067007384268983562275891025420674987031633944616729561907851068302261277434536175913784281043754118786925894289237890055536695519684800349861699756222739664403123063706926126485160402462291498811662139985892401588106894025075517689280494036234360677875673229986784572496826281328389089889094055414948089880407481526145426126163006895419660018918903360788106572268896483898542450017403213824641758149973011194915100339261972657052979666489178197167839661869818273007129565923943867970239679616072756681326324356384978814655961830360689742112179432246213846619016576340209679667506831538539836063661234300290894050299168578138585113397104520967479918610795733126241985535287903425695063903483580948385329186461045848554798325196353734915946259087995906538570723624440590455223929770584623282507790472964184488204607584454936247005320303197997738213723599628128517370207152583106236847249888511467515647582604511922690999262248171070339413534187932915443732167998105595511471810084998427476482883396471795804014345369667637573836423750790031624054012577319607789151049787162559643061288500468996121983113572175337720195934344991760447030542261849984223284871012346843484798887817580603483646003248482196051457596499794748420573871472583622629755663368531551926725640887732696295048082264055595772910897662452027837135555991665451643516025882487411320133639897557230730429982091439547801923599283490066858186197979524618665678407118540723536453248457123577413931307851953335942434050959970238308822122952748038265524580814240595599187416275361544185612572122252774506781336843861206984487392723066019891979007837257916068226953605904070982895307562412708965285389756689322551201932599787567659447284542130394694552728581115932962033446118078501738678256908140314951780445889760324285544803151382557511587200639020828977715678765873604549449318186496365882091685947260144009215711738216594441209269418342522157137363317867271682288987731318005338708386646362049151521305456196091876605275176419838005054908210028030772999953965696557222802705561632751799145484770646917518255194834957800996948593478283059481539124261567877171089864685563250926758126192326532768425667827296848654282486257103609550323099882423129136762680033056613061890353681040698822483742452546119114284980901188069167875384545333041634295289832899717767469515804845893965563935098437197658153665760317844554217208412213267726064243858717286862062851345842048360568964016491215071129689793264762005773352341043220921268151762481374098301767547150446323884205584607490250228705547775123211303962807926142304029381776075773190878665532533862407046536000863647087796343803753536978804968321345045237167591161360854456988815755072408311052220684920459884746287761147179720118967409333749578717627665022359245288303638674097263976445581798131505665139240681379349016399862566071446658944641076880283392809676999298352418965472934578090056524969273653192136236708019345142589712726167705904193543965965676854909493252469467140001929544104707295104452399573327152094021606760848174164465587248860870449376782088844824532035768674225398892833644589809229475300561222425988594854666280080566087328133140994104667057218918155848497749267698932107433622330022103222688090533740317579461333420814060520991222998563849456024802447875838614308900744787906732740962835973325078127165171983176966620751187098545889850986877714606997207228479976938904207297496516081639320512794728367234132790810964928817262985863032214118086731999460958828737559237670373064703680111283729867228600819801548271863197079772970897212597935611280901979142428206536779587212862795759040506386189789761520867135461373752187467654215752453822058968157622082452487062501872977460178316003994910578325862503283376465574008317279996421389030816443545424184312598998891154795710319679389981978918545747379499164732231035522660278846613082588812561198618504568461993894380656803262381060281073281394851318705086850201385483180310703118353592769584343973731311528019250029569919656121996030966125770823859200860116859642288565431167264785220931662977546305287534517928489317412215804191937574131345138257108647554744305226576692198640775759609176934727699248772280698545059938763980202876594522227100292127953547649041578349753405841004145149270619333097754579393373094931916270190490823672093940882983930521430862131980998774632800742652127194654974195660874683034313703996568331826157911988840861451154662409416192102037612917456497582435276768196983695347599908822082783138960576217547790180173880754274520127287727406011066755296139537704642039198174611486637205341592686803593259510365983171150318660373524082707586360753897462716787844471932317294275095712570677666241909057533998797426111475147115015853821584163302496556025479413748251643470052793691810567439651544679158859320494684997637010773905110259237266320973738064851758810194637502706504411429546634078826762919404786630402629114183648496695285224871380762094064352423911306596705586570250095766611717729231119922076289823225998636114288864295406055198581196714269052758854231888324613180470358895569979386262016270838781848645120248600679424063817514185746088532772443690701593511991911867671438562737461560480903979226578010904191115879836661224243578455666893241510896997738838147444361352796455662852670514059020281185437811325392249607603129452577813271816920121916808498061419920150265437846607487939003894682704208763072861281044302075625533731984568640155312200980720551282109381551640671891818604258316901528877019758898396860057324775206093949047761007898965566181181226571024133309820786282356120775923798373480141952309854715949342325282691059951499374416946599168869843171657114673851026142226823890497794735746205202725129178989789132799105099733422613548978897183184230478131690233927325625426224862421210992944456090037163009771720218783370617270811792706511586243993514820361211472364068848104751670683808391588022373381177659882506836134320536513157993648746323306751640263217424549949189392975443195290684668690154845422303638318452075192306676295689365091688384046240154961099422001539907590409846138084847357843631315580429858661187855101576269958035633634775796693944318592426597330546779021458930566256232117822060814755417225755108255045297783634745301811775130184357825441617630871864109213611379987532769627576062849878788160312676607101379532318489587086686166329107092178937956029668793321531391241920971629701217211242122053332884565873000554966167572499342754212726220536249728608784930861571125553575154753156662393735781645979616379179350044789339532626263415368138657549880139632288364454796763119809885039156175471799443079241302759927122481256774084667169563828039411448093117337599061694065284570211482270363919674607252585076652801703414766694095900905619949334978355486441416859946277142142312793289643839680279688376530184311799536531185758012970694045163943767357460114020849469621902941805547247103729522589858382097138338802642160138491642359569307642520872252818077007511027567471788577022162330790763014314435640604522959584685008337044494034314209616929965973970076826295811544675908957783415122952142232275256934288016434966782290224433428163598200946946069572964929035713260941770740079349867938701761400357233433688349636414731118034896167825499712605229458871100255943642066931187136062658771592997570025227017698102362556576643253888935862307483172007508533613141728580538381103964487982670160485643489628697876156056150061262954809928649903295131219003812132988070280318416094080323087550971932582646820095231473674884581970371457981167616782569255477854051158643681856568670333124140312164928830059177736462762031927152446477842666126704065551031184590004336590270253525229277172101245599783861733562201411024500141988665821997288334269509436392720528437368422643613876387560012508112572748483448995590746933979641904583921541625605043330445790394067026574342228179487715954351407701483842739044956295237073551143258285819875905136071497506873306793332576521778256758447723918097586697152620616720575563824253478538771013349846442918013519021396407544481251567069695211688447351071431760856565888669159795115380801015827223327340715078632191305562369069395369573127813616925034955670061854128211432391134467155161590696737302169362749455186547381006955634321838183325634916368791567974288318931102585694294066662858299981283448251829237343574248362008077707406877513274390035991250142524737498982401408709077873188039942406316087290317695717172359980569896942282638392576577756755676885358912591338404551029442889724175955713242311904601784028358327887223265481286184760762698893871629454921251202538453325098455893208385901442962207225072222115853855497447827192393513786038101696162039986428927007797497622443725940992831994261103202809046013249491208894142878854516196330953043425316955221806896905732941755721787317417378388125718522074079835293056232892993092561579410221617786558959803101599946013084654496296577148812992885991317826757684357196378454738570364992624124475520026459076847053961715818975863732051789446679023766443380907381143006552381600617292319056556721030602117512213310180379669670228398517757880494326396823514162781148047695185039956260181485055907896957743314710642315029033954490069934214842566430464622905867133649419215090405001603124573844917660952068396087445537909736589367308417415192346107534932956860594348459225092130337532588945731841483428051083169422494924697647366283812463570813220606702505480961451506029678738392049198924901097183444479147265758901092863792799955016953262183637491203927354630433598614059828325355866932557877163399963991517011384579603410797747693118931568003604797504662132473613481373749210910538596543077910450305734493673156715905209308992195683159073762157015608942128044273162167572961024510835355797413768566183675737380433184634329543927721438880482560197987307433945486188378423163970822835598198518746128274843727375595543348660826601855733316847160211396300338013568219511280541020588683751342905003817316766189648336209981328757374530354097191704642170072209116499028133263989692096121712638330806154666285272094029883896114586696816675395844703350092774808250251218806769480981364465652981705006165391744802108970824399415180997416945416578076146048866043512035196125377118716988608539642583675495535522117718090092501338217069069103014709460092240959073544535024800732936943736922954212646919425990961467226689023271454906258243744583371976759561906136199608436940140435880445617467854220819540767827506235893780123270721709748216284910480663296976112956556816331069122945417291069902201089500182611126138590487913050272955771306702653249915526621212565967934463258230050801953082526700704215910954187225462794598564540987401409962545139340472871361976975109286671759936995364962966883389860660283787436895619054156308150889615009497646586496106422023889035153922713311931282680342002113462193503863655965485800879255121058110649837214504564454304949029757169023838048630932789813828886557522806054699625796469086106700131120551621768229114823168222385663800063463534171698109415008022253728066874268072174712873535942587948373084320908045928092005004540175342233419621394072269423955745437942075229064022622562425398119929560442785165298796686507125638288061766835411911388197981740768090087262092562718220363026131496837789741349620512145309192462527246230264598566604719348035268354099403350270219310060057023046264257615176231967654083072032955262063453196033647928112394954540857474203675943791684656715452502392633020763146701894369003339304328096224868323116108735651876567264245568833298395284977271880928843121313024648699507706334969235419835628575531513272778184443791160525004349249459321949605312464857825208143035805378692491202788432147056314867962645260313263784028237938749594765973912341524333058354163360344460950770755477897186483531538700596255584929693071955046857301688171114099262143802166742437943338561000550040233654654074066501513982973437276925713369972933430082438439524784568945836788737264469748983066864801380018964394392297070482116280338005379903743377077735121331086471932882902770329691399316466622128612371437705781320270145889899570611583474848531533509155731725305325254729342815229893573856474507010432306726965287740812347160703202951276981333735535134697384936458634628296077457510590341994831410121158464335584045969686060027406446513083169698959335089439290070482061536326896048144965344274263727169075367067034717007617113993978059829937442523691546016407173470690474198225830081150547720874570229859845870463869502597310456528928489045590764936360384240241115804654888993068678005383863376939242388724094929628523498125470176164433405624301582119398545014226024500574483836277657757355416186263781721322109157636157645134365198974040954041997530079354120636401866225574062122675658443624229735723151193165308424962958249284812804190067440301871633407221113417961805337980622324935906592402250449141090703072879864254964307890455161549213733579257368816456315629952400361656515756841436926703937107587112174574282564210771760119087857495321280402565483102674680398380339628934747923707061412949807824405247442735806373599018496938026195807779197831581767928383803246008562334109328265248374920292339402998946583871186165725012395231920829343772529121330276979618845458135385383685189404485850851981496066251165186483363619894542229867841043278471283208293556414843724303143807234822790532329415127070110786840488878241545292723735713379978652671000470569786255124451382902798672785725670586088387274031404601330094601892021427899618662255155924655783273395915997596030368444208920180385251427901266558716019754140785264448348967793485181757720489744650200720634635667862327885699337805813258118589122645184326946668315341865888283339667993192283848421588719740823715995122276801730802827433452619689507557861172059129236571297352984045442668544731693113642534022510634413475492874690027547033585937506633498756367121095931674426466550699059580940911625259991716223883889983726392106410152063935738681418964140977474447630078187110130596599222416514749550279384250298915707993476632521302330663571980061734792529326261952933489011028065067077682063797303083155891199001714542935188593048862941495285855155854590753465314693852877916872633649289832994261486038483652312828110495000502986922079121748193727167263516462793215062088501374789118716604126636458871848121895323403905456480725092160480544815751840639549426956664877027915331399382673856042527577989723737173157066978990336575123976223486308594390569511647224643484532228231432427157679911089043030783739257336165179986300428985946884543084230509232250231852475950387234612938975195501903242715639759955038154489189624785923476101380706950484725900005361683363534056063621584777124683284998693314770130098045341791180003647309587027922777030297755766481228242232386353468846793217121948396345803941603311405518720999763023798655699579371206104265164822221660414543297967183540363080818123497286438343356124391064957062798492377849635796025895456607914252289109892249429610391573456233108180995760097668579988069703747547286325513798503156851690696762848681174352994768823790047414507518008777189661094509726321734405205838838096815007089577066584831435952495904912336200380125535649514310840371407782436349667217932191045102844074875952002314639245801068842976805910631447222328077481348091493452770682337289040474277246155008370374164395350403288082067450986171897165642013407524109781697216953075583022663632615759771544022388442003744359175203863639543409197625150473514257312063784026337806141388843778802270958252591949742635001953535970412451815025311960650781210381940326547459511565927323407282651615905572074348490416280100574620566579579588442392031644693352561245523989003609126246971693600138202866184957243656404047356023412531550252396021451363572670169430436955548425647343683737506436907199478083470097506802999762418480040983439917391900983930368515652546386154556229051399864818585668087486204321331040754351806763226762647980335169590408181512774967829380706133806084110400138987512513121344057904997776373414248011025071915751592803696259152879663094262652830501298578984730268287367274317921704316448240499169476657402010375140321780852522650259161612777559035040994832251155410808919502343297736357897465101293014080209142612531989407207637405551611002521129370224450399984112784961989034938061682368889096801175412201536660823477637563994984371590747956281304982264171018388616499494954614232224360722871635534943393388644800352647746037333344892880753043380807195891124911602742472645846634447191184945359790813673714338316854388699274180772777939046451974068709951238729056110265545038849045809733392522950326377301859093422732517877864131461712628850108396060396641650305484142135055437532130211865772590037133446984555042023536620796478950647278690504039780931171333397101308152369913052050612000818185551290451568785542870848406128548484038437114908142640258565801213534630472525693746370757217529895635742066711481586676854992138537322170991921811973305260546701853032701675016282306575236464672412306671987693016722460894541279874536738337509606028189684792107734835696479270529534902475514279617258758552186731328195389309990522119140153213468533885466313912501275580267978943118501971922893002300432879169115443221417491139685721781523679635848177803983974276775582839847969720016041714727963718522200842866069441197530055824283130295632068581962806929098463826480364034262128144272418430414288172919086059047810511962875513739682680557699167044942250352098298257445153834741399846911647751963044013733656165230662358331382841399182151814324411235450764140498981435984913809433886672788427798905686164434972526770811804997582337565025318317475204979696158361264896683949664037882068691809483034493901499979995487660401976283714286253906097867425983820133762506867282180679144496639025383689701164830419492280157662721424741589296524597436366834658293599106924808222017501841788389342614968086920932692596276894715627748491244746953039957991714902872903085987211286627770375925627911325319528919544028239813775625200710051767585082953774706093508183853685342495094735222573514496128275410586511647346460508046445431133893537132877024670003783367085378745394192951199867331987421551492439454486040389648159493935592576726389900440089773221106579670176260021235974973546152164972548756272335019741411299438362146058215314019820155976131272895133134445775370124884794646133332087678172536300184404634038684123424301933568904515760734836509276115076164981140406441210488126950093278656083752991980110730468623823263534333377118627655538067464653544725967876379502028109966722832304414366072550737809029237487730718274379259192098060939327703308932520661352740799411571037640977887748773905802230014923828552909936599433919757458565717596094498801728648198336814304350392745651804215693793425789671571987229542221879565455107886233689538613999331635252792399401901730600742409879507493890395331653507416338853936176898778560045362947096065486050589847045154787212069965785474095097894047896443077851397891986640735499196526533232019973138798094991453847015930417639319700335403781609823186506044390173654288044394432967900663101075586693733573747772624383260461339285360554206000557566882184578383396528622225451298872131581512386989820909645357427929193626751405436794513701278630270413121331756118714237414593819626183882062611992974971025220291038545880292821772967745159203124566702708420079779103944961889395616081231056366766543163205493278512479050016663070989674914254407429506235097051963334943442959844900872172662000588234580057146385960875894919549221728978916169667827345080842234746887338878891123500625509372107882859679730295346270726906377009215999679538844806960809069366220562040890133661180353562615520465984156012959369124299235870504542992734327435006625403061645663257018736498868637945397716796957304816368521679721235013913740921009661964842383497024219860908393396462128679683242697854829385037801507270201226930327156722731997019908674614624737310544264807149589859857678403359971121071900740623466062748359742447262644260745034055602759903109843576787499450901636020248253566013746088517863503331365269081308178633176380009809812518828574028245480606221897746775402152013662717352808415821366197529629518918072423899486986096387604757539637363193825988406330843490106981204769450691251266640750378471897613031392052389395296882218762226523913067783351720432804545941996003080964003957072787248710872953411064148887735579697293250764187999754449142854967537532696963119656062094280045587171849669429351799159853874322374082181468795761554412702407600940905296778594133836905512177563706116043555224645886783085582911633216260415564021403809979005677527888600202219644629165181267236383882016940031617983193198593500372013351621035630518329149051028034424246733409009924419013695496952229324959742297495502862799434786407977308062639701226813198956114477086741610436085942336377715021175038002647825994055454610533269734073867670238503956046538055883831995542473759792178388177173585140536286580786671698568116734165029868959077864755141763262869429674348945034476988348283814181395054867454503532943926545762203637434400294841936820882126259030180911230794897063483254282532909303396899226900448533443569595855383643999351457818870815896477592805898768168231047386073887140386231506228200646323507088828640464459418211058190855580348994275820921574618509437251083280181902567953635923954199639488152758981941138721739663722760884097667052565417267257008342760789775540995314040898257791950458897209898104675174465112624610585346191144281731364249247243393017586851057737685025024869436081899398752744904740162228649858920819701134791210820991915701155864911960412056375849555049319928358797189667296575232393089853598794157026103842609092665542176288405966914946399270775845364680516744162927220337719011544498368397251100083729000902529707143854637031734051825358098507597895925342628043155062973666348441343328153565392446380138461316825308252764869598252748922724514041854467139673349068929700758068283060547939564162828292823975566316055220543766863990838949834929198975599235457589933558281109534408698109129664747450321739086059754396302361032553694812185277950131631322260009948045261409138827737903514555842420686109998971675164609828473206708478763474617694765532257893961111749037574281980972733188516755280630397103574018640300270315222694327649750061466615811143941290668697891784435645296766108467819701317048369853433718045162464182849001032952680879199409816373209939283117732311925262994617277003898911759156521111345110182581198572772277344572080270145515304585507791666246330857210532593181013021889897956819421462349306617838846028710791337144593622795823655844635005285454956752692260917889231622376828163076005839610983964862975992104064313854884590251465382917896682525103640600945125793661173055540195069759795401730299589007948092262572092678742758131104099943522561883478597646615414960622220268847489599676351468944729119442198507592711232055658650942768627371825802299878537785871156839988918738260939549968921103952987685222851474846931579724100882478458683944580892253747918417833800222638526249775963874019154329838691969842576536054923151078430719803726237835372794670116725924129573926950395268600981818931454953075932967019644705627189670233662775252571275064244126995156766864855423569467859094184456150712389199378963737562761911867125292064141216454113603933757261994383169552377678785937600699237715672948379220588588922805478426277992589807150409177203374437035834334502998087744529699164559416168078017101089414601152066904868715776864276793205448203191856584675900556880900408975153958670027484082364836672083167440865580613742258922943070659398901409578725271521744649937126188419738038526613628750009644807714839075736419537534283885670235509161260915403651027899153401391682328203483641212867974205825767346894357089580862749408146292778975550131833399020821678304369773576315967983255326800054140374680782904229577908603244031825916892472955014832716433925394759544151853140948457177867291988663813245267556871363970559406025031709535089737516439440130861332220625522114031062910135126341838336914947183837339478379683678758184335469683093894923891716262927321086581258769965071820089857180286766251925963266044014410794547549242175081449621970828769268892387806802302598344667172435333708322430461417257236351326408593780909398872009147153427839666980959384310274465102941165818476859401892525306539911955658919102272844278120239237224707504700776488076285661325466352555581979807178622340643420985359617766189179273533451373594753579833552236197264738278037638278997017587095357789690225131356574037642269724067708437718256872522447578944322136689056315757161289582655224565080936267905236663104375166208230739826295359059474320776386560617583631122761901428495093585472594421992439100126328313452487189432108925975681102709656213268329682716422756498082674844921917111509828844843002267621586938215394498594202432792841862819054705090435530255410791532772655784363518935964199349908698668532626920342667686957215669163186699124356089812818873753140604394167191177586816757933214722203473734996907085023451302685496158118680217951433698778122186052878201756792929613215457261936111063660362145573617385963924186286229323797305761948689832545985323819053016996875758432410619619234852371666631459156409143720222668526851443259676884514007364479542202614318854990452701138723397968165713326501660783572855859574000636527349200882025243620514428070581076015580043404079534717726936772712695373175030349282581443010277033948801853005251302150541430841699492484013417839600769571938873720944494262711884514448145731909711917906809185090698764966020382017693556460519373874343417296305005292695487588741382408245126775182424356123279608069563725898627699276993918412569981288261669571101638157086439812513322808530967963359169706600041494884422458424758802187395800073416633622293574883928526666377537881365765456667961341734507104041379628473431904769652559480472307609844838747050346788033369976204738759510904640221850809827853438104715268891834635646697039832554046997432045412713699671287598869285424964020593131541673508475434285842901730141411233173962107550292485196532167436765292579545290319546099270823808192097858161966380090128259577095459608393403331797139007897857293593093734940049080587170911298903485781225381053873038637021900477727970309784660126304439093076394840427864852905290204352261554095219707131847414689538431403045319320660454383313577396090970990475642036993284217603594990848058908411037425852074420992911313379048818019100421094349229997754402069265513940173152565672749422191130812796475900499387563759363004288440747499925348960504329275661735143447899257986206722129136330266071429305227846979490652652186943086451052167842112745973454400612182978097467193590940129496653794521779539813542060183014553636674063433097506099100144845968201910364421728011825552253602355907219674261709189547515635134405256317688157832142819462351404620193622264782902726100011513673578927312237925216931874416236036798551631521021766275897539823156598226663771526346850093307089287746970126225378506827105467968388848655225837578191438454949835908793298723026743783411428200585934400005507269126198735339908952629216953149201940422084961378434371946391724705193921035205668901885793083721764410655838819491938834064416026214552285519658554192393227335237164395888880308637572923481466518376864179914265725855991290317654762656212270543318584435639683225055186220078564505673479700558319865214278243737080547628742024552051843096954204084141232853943780726516433097029433020316649585146560656744860629109386045385906878592071850202409596993018558603471278937879420012650197899136910144765927617372287327707273580836320620288280625715731722119105156141744215593706015935263271931775710809424600984372808269984736347935112690813316723587053017197765380428852305471355882525970533917995753488381677754032134259634366258101687020820354361381440514649793530302733390992165035633377871394514594471898924509728202661250826034650242274590810375626539508315468061159538240849922548700871990824157007613300218784578665739274200677900613246765957725573954136545897188033936827702328376107535438208208726426028939327588847272020619052016076365434613654153495716692105106068625793127171817143026337788186829502992021734410372751680958282285332933599008038473811881098108242903161942352759919537586516097870540667100726846038477028880570922301344742490208748993872988925289956797738176114193463705202534223896601829419178482356336331201284690045074900579918751741961259497892472764709000224926565931649557611204853197904087281982661736239129933629251248423846502112960586522278101421636917596772631722734693905603260549392839569352458244949733226754303254905708996794431439753186990482026039557548981017458488011792225731418756441572938171557137430128597188213607761698567289377530620883723735321192454171483881761168317348758848910491458694587161593810709986951299568071746629764758753393425445983357361747422302335771958493760690138208278957857122461895300450765438336247246180260737057957861013453370674950060968914849845514136239019983142975338004303690574955202323471056436717739118469663757705405652613090564342879896377849181051416036044036734584796122105230273172727994654384848448331846253116391251930217832366893690742114887957296154874271325557409837114273379435948121075121235295487760555346012336442545387815008701174159864073427621522441911793728532068357665112014505434824011468658195328160152530633423976267811874693518063108802947292012415990977505033935640590447385753468221785476615031508578729083121323839566597122268498975529660016077727048367586095936940040349037020936084380792212823718859366369788205241431284134618719467803974749928380840485095607903323005070910708477883455999177055195784875109397052836707621783932339397327786333202748881793907872487506817744503742814922652795420962937194772642737595155595812110408306636791076808265569846192428401252930982244549147137635466840426995429777858515198358800836760956406851942121052102987942865776405671125027967670571557465527066591776170262111753844256816487315000771560345559751442811540228787395712469803230170784658759741876358609361094697789141806328242747382254568997516194106786335258478671637151616108433604994934316531062309408978250655987413554667869276493630847501798491052701768811332598262655220102554301550048291213537036552980395489148261723759842983834989860655831134502155950406602272477979909572303033656168329895927799979452964664954494887378335278301807974453812471594616316217563590174200078493833731253358242901272507016491544531932048082340679042750719105982929353953229112623446360962077437856764140092280975813710236410130172782566519116307376845353271252987946816570239489339914351256758257006056126902707506827436442680862214608101877735226525050617918375509272494175627219341956160026527340414156232697846639860778041288908503303546540961095240384033331292041568286398672030918829507216883794219017621108075659586605333289170949158421528668235154080640719906382084269424036706160056415556384915168983583423695010627483153732944916203927463996577136338901193331289700255527333373698473395009486556605698274513843156927358930871556136233800602506163052688139644925758766321955335310209164069389647050355504017353452597754343415904102162450475095001214822966455589980435468739407696983559068411804875834359834725547468670103974283377450768494437433538337718174375098444063448841529218180422722489211431973474335647742862917781683706026878368758477985098702318817796678755824103472258486598621402813651697412777593527486024342403452520172045903946728630413309306487091737639375489476947206290894184343868987906022613072527139340406081016033485883154571290216955759699116363633015512493542830243137665459622752615552793492768411237284341467845185705933710957387286723971858894452503546520878739917240417118988504086334728942341041030722819946326853495562463600561871007493877439537999351457342291517103685925049119786661567058233025920246196322086040184208265016108604841352142549047828586447250553560336621339601223508693047744792479765901276552068233602459685540013857551014243234548195774206362837332616834744496954709512509388296247250336431002383208576277813327048209965266757215835845113049945104759204899863151817219468469567685140556188018737278095068913875178154629322541291395264356841355544364741307374448337392778087429462599577551138289780102849473278781504211334310061767388628449932866197971825806183148042164504625999197681578835978347737759328753844752322190211767771290803322902351555094537053780207749025940977915236197774370498340059028718326699026746710991242755230910818199336116049457470091850161863014516376290741708969844964157668468869348374648549908162386786876708682495421647445984929426594224099134261511197406095062597156280032763781392546406090789913014623976273506479731399578053933863245975314284481029987683033499375674956046146840402940811199451102516748158962385206690611138509199045300624917250505489877332734834522099596434393013157386397888837816391017891914237218802250213842898203680205691358563161803462038872574780728120988745951605838615738988541516656395555161541287118524500810528229833659284904130251999108406136864633821517665112788218064000887060420685905945550849948532893385180779918194687411317183696270813213906443975560541988605023898369637394101595270539496517590500694730213925955449002183386655188745215113351391359532220005221789894895701555077737261722609159019948535784021400669982319030997912808122251106854619196282600238752833698723484521465585416453444201679407028835044215164287256246546065174363630433583798180425411735064598500989284050562265460207244988768950285686307166879005627661237979288112920120895691496290725816646925050421503399033869818168039171441836492200487887574031796421579999392499152334283908977939259503085205108067010133300436233895623676257821444385279805053315393250689692886979988439140443405307929346413247368599891244661508038157010163123977583554854279872094747185475046699913094744488724930211920042526199284698287955807196988734888925347679204407697492798586697280675023668325317311039498544389232882804250376767666130430590573586325167044064923225489310581623047216413245029279737337744351659351060630166465791184117631683782853316725602362112555558366347172670500469624194318715507567778806497323520088529939816832016397080490339044588604770255771014894816027030900601216608823847412951779215422215665616513906324981999754529716524238116293940882171254964309373564377682269538839220140271841739511795449798526758447046980720504617720636387827757937958312005967120637437931748466760498483607266076487963930280447270071551857885135115297034837104908118857284743067611739181767851524821178106006934365438785132719972784094374101261601280123040944167298305028611725039634500652772801013994658875203383574632471543940435713640300601728971096097039320823270958753335621911814607167892007805768415685922081939531739517198936828931701989242939168786226315877034136675746312759770179266999461566515234499771716355196495998143782422583200361939718500261530467663529136433832769616521718389862134264468447405502927257737776050001038385410847676699267366985847821204238679248062832891205899769759068321345548441011210889353042554834595809841957982482632207493440029852808614024283469748703689075290157910275673182673819909071046488064942221999308865929727591433052020615962531612121592342284400661899252251226777025426509438346705310009846047824685725009362237306413514053053418204061928771593198352843458005633696865930178860604683453824156108614804730032443194892227619989744320235922999548138465262871924754609855000729123874750850820865453629748828205133310653135858040141141161072525010844391982422912736916608548764561794810344308808725326412789788268314340972984943196777917497043121391004415442968975516960001757743557825698619700107074963699668458862016880444393825630292239022474790880702198634595278873676498834567035399428194388985570177722210317234354069159498574228816346772030414272109868822876945177242747012873564848931722465525839069005254724736922623932044625665312893224800026947076514141456271588886505941571694396376231507417626561959237647191020609622509013930252492539602891796678824882565419127759790667512259498596079813167343152910277745179370058644526491373970690038609076921727782096986529179810476774488508670509141925514399167755621662657446513991945925710472333644074364290774347301962197399617646947016259960733311350094897820035859626469594758585595797581879980912945801318996552852943182250429427533881885468495764911289793339004944181619001132382250261851157934334606784675128135668888320754765245724709355091562754916331798195338750450855263753633174281575385500463071701717243873507379634096425620762713176623275053160475402121681654878381897847977921046650287590981088761659679491260146636539033079100153382680592527496554615651450295047959352935187398196673140536965736141616961020986837450033340603372823244871195831745424960569401610071235225122046499498976066870286202487796088012683801044044038624080674352284674021916599408664014115762667976984450311320053478510991767913920167610526075857709654300937680016412905084906602653286708102941887013509544923481521024245585570820114621202578546651027232052830540513918726211335140053761812418235326185476840795230670602133282945375119899233684261255244959802698311223743424150022599999382582154069125015050409119884306963323827010465390103316998569305909634192258100890490478342639807937044039844618069807166486562056160829898213145985694582104576966498743130474000011555142124738156063595100229439768856795925151569858803178249596826494304808264239119693108208717999267481192743769432709362648542517743610607950499178371541836585605355806522373486885336377954580587994628353448515156097677268378534912262549347085197785476030005024497454818875443664996319352276996511967144990978900670377102983131247611638345867208974182936548258488415108256974028761161492531070737933179728849317291625425900066605489742770104822423689267199679501939986776481057301987903194191475996601923426014176489280061470857171607208534466183808132388210717451760502625258747482760958929568027361292221813852167580018645945872470565619369316696196087805739573938055016437333654875838409112572392796798171203139191512174540721445380875125312881150276929475570391329232601216834665165684158678931066347379481329462714487199387498734658729714291229474757349352638638711672986449521815067549418709326569278791393757132070332346388906163424320009159183200461505253764938247146705196387381323832990617609182937926151972182609506652013053149584789842355636208993262923097619115112314315386549420284980603913229823383972049618613357129055265019001049718277286108189835477008720133201328413138719930961406545467980771242956396011235966240907730748346028032171933821844564035650022213707480482407282809386303949498890215935972205549592572073010663507563501704156252752261517817979730963611670332332442534712865605816413991873104993849980236640947957556241631540225619066070574621426451860615812547409477857745950720104209960277590131790468171205206415345190075275775219038179754613243961550390689976082896469827490710074974543412075108937731334984059273298113660411344864834675271520201839213406588514151348326912027716111592853124201681762654068768475287857962731455141073750580377245411450857064592003183078761069340880948577024999835813709228986015826912907466647530038235469898410127334645430156937233129045321396661509390516579717019167282019020157250617298718702329934411741125947549216692476323839161986202686680294268030667742733497124839311561834024877606447391999921465656275980806053548274894674584964771544451096398553729359435823214426648099405410659122386704852670693675708531621968231717850001975081509210763354064625217282386711939052714830663877232277198212710840146174900428742796226319867081053507083778050298992863703200141521102381703689104294861205851434057822162429121976840274330720606829229798665386687818088227174652354124994813717254121217512265284116903631236591060030789837708233321080486675386099905557056763729084432239703195368552480384290294282451883071351755907610943456927743436361347080073460665766836681158309348252360298899403987024586634145867766797210133403556919379473301813638084832476479080878203617429705323546691580585221706071100493183596233247257867338884501673510480579449765425433530025642597566982827396518078233270908941246575082696499508110241314121703235298222593579328679072622577683373488373693883617983065657315092689963108367455085871250872909393417366450333668380113137515821838660958790808383034004568158813256405292856380081860625709105537635665904464949757806827583805258013634365377317227171515627151107339880276478415241383894224898089960836457319139528986492789016776139247978867555655913322071903796577745025084856010486206757816208473463808631956277365162781462586727822514778004194727553780098323714547737367324940845365194809734831944944250589560155298712444712141144390859079112745511540234890339801844938670421869974955453710594175326709910114572913277950832381617802142290755273301234071157520959134940661491406432905635800399591283722842473059842350752516538033705026231845914259315723322936400205449949240965130486880882381911810253145721712881020261620798732217228410524692563975743829133467478457707531788938051389617509764722948572748727181052379063600026992020286940732903970159716637105560791732501543849822747682743993076498312120122066528833426010169264131074733904543471547066774423512970352033486768064313058079168112366350859709498471367457980212650205847355487621756886189744341366668667657913612157660419651547689480677459806505721003409979172502240397349427123290300749362795616886714827295953570375474484573650952062531627512714744812031287983778862878559872687128001973796179319563741065372093869967858782464755573656214021857721454900454568437156800512926625824119792059064367204610388988139352518443366815945872546557051541486652354029436861138394893820355345196774653923884885474671864814898156560370378281162900075232082095740535629343214021021246758181926719340904146843139955951967718281592078275359291382549594276279356957555731806766920250649896447232624421237161520747515266255749285354523530828311752805899753119220616571199657763362224194797267755961150648429105674673853609828370194146801473350704271747639512430567914573647872556031003134240640859561364081520756418982378770367723391279493359980479132785754536260784505003548216092651384191529501518595825996470659448829997654443015085316381576998630553242058107459246692513889892249170952800663363403110601936258798967746979135966645412569500344799692031057000001249908148384190120072521002436258556022902473124805177959159104181214364358473733785539053837799045880217905897122660517299894938582533461421495872450024378577115926606927025572733442783517114751093805213874005704112246450560155322090997501377078127752234597761911570990020574653845255113779426548169515898881681835091476282005080621268375065606752245359511856464007705382974488163824512161913011902456482165571461529779160784835600306648636807129256514939151944332946803615327605566996021899580252189885614294968427508225012455465005645351723368817491008493524686563466926773584246938859825336767891447321738779934830776999472980763539551175756305704450848860009610431511520297491961166220905632961381170146760489288074149449230692006428614339080408458727028941938166532772721937493942318771494920699499084496150610649394067908482364180469533365768131643664660006911314389799517071456857319776880399947015809500276401959356129938176674641676898324604412321553264760664863430275679248731364357538373169786129558562845597895704661776596609369312957776464586534710304652434531065145541410223146524164309229063633903592601344648597950729620529146418108287024326890233059720327494894628876057765604746313804252389643543451583411114830355991838423882161224259722879661624321228641188795408759985300496653188864106539182787306935198826771818202429904856942605787681295355024394595145945150309423203719463155094488758576904730091220117520767349874856437432341986657428200463052351616217402335170914179469666618319453873018921346651744401916432968605802326282665131378171472289002663943209566622807435879285551836806761107347538549910397741809751072760991410628856020886749695714285840400878591840789069105176190798662700318578497971171166026663300178879177750958314446057925643206632226799567879708279973997538132289592604209093398598148477637715429213425752013572286119418536707997554337400764422797173454179098408568608874409033443677077796639178182348432769453747067051115394939766880029324045798477707122414735183382874654562120404347232216136622396473408589573028958073941074537892931169495516898935608347865690716449157700583427715818976734969973108733863338901056730374532913584047277176959234222052896992067815460510163827129874963990976694631104712602937802639218045151966199975544898296570019685253980732978729863310671459945864314874608004372610173157415634790980318308199748109481785636506917355760785008896655097566255931255112982759528190948664889332309469133848942033876143959228310150172682448942339558746187853901533005362998915705633604003863105413095909501864309560537754743180603743880517719054839595148648930816137722100312844155721358161206015207125727432677524074463794024779943653459130125085073497854828821913563642398541008882723566795342471433024671064956192935369508397105088151392559101255412492516788555936428164217077565659188672351124187826469567807548490410504042189179938561799290942409933602955275857307224587117926054793336466583510688545010112796648739578321270832190966755124546254404510993782033052402541695274829766942199317756772919536522824294031532955669291031350728770062154248229161620683171470495823414660971525009182588420072789945590899205524332097638530162933194379775050363678184015377094912774692321818113247924865005940584375011711479360316151942174526830843636137813334560849533626418003494923468981377880882091441006544317843722558023924476681350574378730965871711866451922419559938486897894728223995363771015182780947127032410482571881956628785557412302758673617622900920924854445488880684980572823262806281388168252313258241330691605742096583181882422814119777416253092793553475226176032825895619838748773928925361435927921757423984817913931866463423095418405591072250793035446115057814401842998650089462202450018210177282879668696912720503822838445936528896876546709136187067793783592920576567337877702223259602300700526317368315619643518523094377454424511959275477312147198656368074145305444972256121818041936975326817373808646588421793753078114860885195357963618237499043698320757849145050710027953467985694651032036831079236097471677521216644702724844751909071029342574966128794176493847830932470882941064026375155747699315245835300475565291172854346744474489179019343602128868256141154784065274375062670624938749665221668061394971315840937990598414985817186175569954753991585856150386005830227366650375450974997875065775433932188978028621590415634045131376218038243759383218489098745126080796037431874593221405399351101544087390687898428236473980655914783639622769828061707604014794805950788064771895144303607640046041524822798595716739229727678139407972391891682969123762591702029226040156717660131103696661653861928369855509288353295460076682999657638021454897553567539145278636634880980062743268232715266715697048673653677220221873084631111077640190744842876171854323287462493285596632302691747690330288264247009897493257584680688410059361871839186233251905161326835421334890147900007486510008862523105939100474709901608410834842867278394549562517559621132335275469397140254473059683317482968620982283008192540051117708129383321783115333099609615187433093777408441084738280908137862374404585322012067542965487728598691321105283849179076352193907736788906519005912999222231679966775141995116704087825752206964730762592330003925039534955291728876678634735819850410218580510989696949129567019802323583552166034865020243546424519959771794721895345646900564213824150497424954058715510748441341576302680050575493290189262501734599819198003848358775733273918821907824946813773204116248956424375405168916911374368741387787156448110972113548920234611705485876143758601206044919649671901961941345599152535507334486530113199734568399547074689071496714976377987239270312181443496766013523964214711818457659676618950087829562446387799763404103707721403387679521264005808379447923406597139521969660341947378397238871807784401878358617388825543861380002537864068532832161180914692403998573588076303522825543480602502545362610003419249378250567659361869983337896717439965968519502540433401391849000279895842369188843409707295613588695704509937006371295295555744023462200562456726100925653674874057850433327173254295829333653241444402306878837999579382958255421946737825193136046386269033925870369611289770313914337728567147411292865601378579911805564225085595822941954985728208279216025616742333973451924609028787484124118473706547914545190852126584948671857262085569150049066660033912540752587092318072206940770559197426147099233722008661541539997737131698628676316674679871303916215323910738870743013825729571110434948363254603591281037268963742940183593253318664751587524694121546651832475005909117099327772128574461972283304872998420546210904466418772053195484796514513851861102032328242811109192738544085041768364043776586310719645056647977315917728529530843849845490338882264475401640814500880190899573259000818675829515149172031189432962464834878155162773359080852602354179291497001261569554467619898417026976118235683690657508937191981465619469541684882864723217628069559103620861253788352333550552859489912152755276127512358338991560058043369348280590738318901459621934767415598255169820283857443609285701820554847986557241178507332729595794284185957436473377641992985068212568573762930600783125585134756402254597933997770738759040502439969903847922326301126984821997137721138409374089335234614696566542911665469306034094076990789728756614186678291905648116449730445540960502418046870750776711042457323223060697119137814628935912873918712481451639151987498287167414145041755273685172979487806811877329634973786200842905199017672787823343826863199180143942255020421809052924436476451027505957058735542004638643839629209068214923776502449430084285473377874197621924816177400369756166254182002497898345035583812908795982010293949221708596877470284036191064980011258953486733846491362527904263022122528747389032823786889685632042799998017166255830430615904470970640921269054739050669433850660961362938789021124580108288242654631829940949456934954638470968606363845362495266515628021892298970646669375559133677095601711363021497498177373311078394194841154591798603857504954617218124817187636838789073437914345155237833225135506853412941290920009683280435024096033190736026117349215192972215145189869106123983283667567205597171890667381595049873667478300682986022505553382477228614294171412496938213142360152723340353238699559001679801467519542740559239745722270684094808642704267391335300796993915457719690513313748831323482341844330206632638460542577047785886443427882333945734798325645070614159557699724306339831771070878595835657062418200591799361807936530179818179556241915772989973558220818735628676901267016962309106254233847736638839646547877731788350858453342984120102319779013933128785997527490987739535679298434905468555570770998530649796267271799832823878928629492474987451819076485862188971449904728244820973629600439030366202784374001457310430710916627888205649975403583941402075668093755771239092284872836869575226522755128260588860090342372156056382680160429582296712777104313372623469405125506428673490503989391628258092778331000752307748765063539335027823664726964407769044225957081847157036421702015969157729217403760531072045788502988395850661849286356990776267785816967856971430053545703004099640898680841609345724802055303415760290035126571646568685910319515220580466280197275267188524313427055787375662785385512065580885096688175519490199851264225962640001599819160134392663654352461915605849802928949538053983031873880445380973784966216741128614968472706184931634086431738626872826186549856233354032973015924527491083989328985899288513305034959927174782279426285174054093465437551943351896295183257002095803075995478636407958984292424535613891638900464425399252851416829983131130243615523624796836950596850289812434415199202018178063862951465534952879542225561097266249004878882064975318492650292531850183118139378700058742245670796345647445756330898983357277943135369238181504404413709955209702082779569996113988945843839644354247772277474125458384089298669085935850325994586819009294645587532842374050123715660441791552093910187041296204309642639911284598553813462075238263465239159406072385291402733463393712259859548061528810064630466948158717709250202639621373919918328998506034733627583130920266707919427738917859737963884629222622851484235525981235862995547857207305819502658800341448100170144568439537513418689439323917999735053847731861673099414176060913491828162711769896923334986188436112758813348949353824950996259504748164308207295002482850453840268102537413443502918048335695489172005320344018685936770115839518341770765008059214366090510036159881159061287164923687602119020920424270183842082708680719343605312357952146985485885661219931755939431890257067644493916528001015622570143793635776948480968169314302315997440875352099956767341032438067175550800200525065366762352742363620098480233511872858610724623690982793312961943748808949453531782388812666436570880112793904542992520616661850191455937881288370828477377567079525938916283707160717837010133670703692455608983425191519156343774532349213545153385027045033296180473364163061210925125556174740950641650824885090917713588341932773119114159603815753701401858871574751560175241845506661097940241151105788591222613076428145917480535735381406509706152182636563687492305299338690595455535579217722155437171401480467478427442953265373214181044567175781331271542633795844443767975391218713110764951023860472598580543430534317416781895966361080556157341951165244445210054707387942498848069861699784464885788597897466635621576615446114442169063707896494020071338487764229892857320215958856199450138632346604766814991756820186292923793867467294814045854899520309964884952454615581923699567249820738336582451066337035277707775057640466797613880569525634476699635788046821041006067387500055052924539063026602511996361448153088229661579101580877922062375143237619134744168856740047010324672635548677117486229368248385025616780539152267839459158891772539276857610790076138839771683284182350045576817716210965047950601066937646919293456917945156474644444104349823645174745112702508643784465278293830801264797762537291066228563453763786846620657665290477230401581581305339665207111098351651738142908511838841836041673357410020064842240487483175209563457006396443489295429644476723483712294113982891961286085368539504667318691566018156425725782746956554698349296767661375756337409643361027331780170526442925647936988677626426710808723229111882026665587008222501285214771048547470934875652557492486339602175398366798778672959921397570587598130772028098189279070014841957531807988464363920034083033265697208355359045140086141977131015219724547375103250224692196512908620556551881595611768587810838749391597948924231856883628147093463369624043644457672736725345715448833504736150874427739706516894662259378289375579719531767341151592459705338572601512799015330694116010458450519100197985156390722628000170470748201357283813590062601038971801801158721984114507153640234401229187966041575237451156074670382733241231407836362972065628590990660932151446052797991491606926737523781837789923822466366548473185956505042797961379850835153420086388565093050879310980907616999030552891712857194871992561605196003789634832261405901966464328422392680657612205386962675891627539601432411877112640992400159066241465532555189377164815372459152179281100765624710155020011418298473371295489726620549547439773184867959111801214063574594989298807162926699363971029005466970686773973310573930781435273988235662184951603475002464732914513311736527258120079090705820782398623973951637324156869991519996635724390573745790122511818627619261646221806058405232711854738618883997833347074296541673567244065761798069992332018831090166710983393490720975472566251563913819163636479463619516966290762955634102918964388872963252962003284803136066827106449586851736567163436988961535830595080224029800766132792815627484836670360321894549543352964516874728963149133439006281932224536147656165567540077427819699085885906540672164038732717091654630594094321680048092933932932520314989262575538649324107481953537984272061726643187421602299640982840375538909643775814368016137399497202229734772063840445184067154059331404385122474395553163054622397645280303540460658596373875075759684582905201512721616031153325991518772482135072612977648035105184757824632800691938028493156164024051708637152482712112364921668843333768108840121591449431025842136045046659449020111300671045734244405546049340497798301130585582493973872159978187275370130067431094114589456094239860292922138763418137591988383531389691759081282906600503620051371348714668043659144442127610719809281814225260675791205132800634511525135105755395955643721377109389267353754354074817621265558625702148121887284576526694769834483515237170692058860913800668131755350674947360035180589316110779086067391402635625435380539545520026502808637141787782494144655413533706782988855954607878706867627512949525460775531865974338776129671788193560105369803857937859122726935314875682882708781908271095640037200217596396545582457247759918092503903580549213349343676372540639171857538076066558744291927847979306469985765514544931320778926052700100361188342742442363667087619239648723805352907818561836578130946411958004137157525513114960139776406137064928267385825627615064974507446084190594350121106799301212476487451075331863485252996715281582617871495221291002960380529948197005427700104408154961990943611592772877632238702931097315042540556073856340070086834133730354306407887735218761662488601077118171078826824052504427565799154258058945523365719458120287477145378236648648153492747440958391743871400990048793904267182059170521552507881768408854293969541735223696512879533131444492015521229516935695758162543764224837837539989586144832056587155791027179409950335365039052042423275954758805456680198561111476752734616925344462214497121495490525444768296844808208374302434312325126575513128770258869710491907025482903135488098792301111403637906138674386871439764757294255465372519363553572763409105666663770025746503127148727189655992588181512069092180226315820571509700415815875324523479064365098569026569704420843927290011152847614724392225521181312173989720616298052647803640440813607588683605023739581288698697925293098998918324063574243637733148724759730806834456166349217655073853947347912280840922960755612269566844688645894280483444184821213907699247476891452544906329475140983244518563541622838939691377949243060265087857424092089555781501810362649469657950677949512403471720002630237081192032588920735143216395809347133975297522331774978071749096066095556442054063363276229295724084414647380318944617193902296244625994556428363376947890810844476294911784317740382585554406360334505374351845004595736303740876880464182013691298952057467759664705015246972807483837898431102933606206528721454725968947902248422882659493664523551488520097560280669826061992279537969898650256647147574200654931233802866654084720388876600280561582080380020431784858005695112680001555624061058830306257280471493432703730668933768023835138239986881262702643022600550961717091109943027041492067805954440005069785020220904394813154949414430059563431027145130614485067246420930199778889254353034751922459985281296347191977798071441497368673103483341230375365184082040763103115544228762244223540534198732959479863497693737645947379581526459991002147687156443750321191719450750141051556570724581273261158310250235585972267152620245694683962817292709586981887198132646792815291500769473429392904140819112990973539384370763760497193451289714235734497392878065102512469873802474051165324176769785571953873064667538012025056310793400348933487115453319049382622821400738194091424764826451811720225233682744715632956488349134555128236382590613094655304711694884015025331790387969445165521573059094098043694554960218280939174960132567802636501876915084990360386978033535811812854897694913271646383554232543312531347364034055023449394568642898272369612399970217392491991020536784026017403808942219716788176663822605004044904543553082882965864753795567727963010461862775022281333268481141458945629070887283416747453557188090729439551835980406171281870134921808445895558358768587250344530748484891008897435196046955830408688505828428708211483799007631422524918201708261339453964154169096350637096219512857927580817817929318921904634639022537772898472863776913193979416281530388067808133100579389088283833681197481876581030844421989653036614745547070862142034590141463271160108591572413291419514341490592456785717524419986550792340985960255609683768579186854142087707254145316597562355119879214180047996793108681748424936723405631151633024283923753344578790650704494669490441594702360483954493989811147571553944529719000155552464999488600675100375574021114501532698395968726092648162136617300658447664482554642019203524110753078075674898320923811766011074677387871366958165399715823526894954793635825558057591338174755469062306576309444819119303430482638151693720575494670168987567746012952626191549943094970507521642054172615361416580701316706426528417577488747742420358928275282694360037071961602415199236376205465621070912952644962483502052723371033554353922555672438082037422402031776685623168252026512704395402021229314205787434894690456351140466277803912240620685855633978675205223128994021422750872428796209286579615505322814387213081491081852517224708516000031658337090183232426892254980698465210619971725229047464893322937754208099838698450943554376377393196276724917034875235952860733974649980330239064660425999842440438557564613324222645597418588061369660999306607613109394860470323123054450513443179710603127970429585870220393526127538870423231333654770910002977497908021636671690489229568646877016074409008646115841979664411435839132394962446232833231579869986394213758305699059332903739773515530459147427622618458065625329223209504075154024329575999453904717491147931790209638208235276401846593010027283130258613414850431784200368978092742181212519711580663361297897871641254518035750957986282852381554180364109043666965657312159050123810580128666077426636439952843831184247385381326445158114600648546797359686082405152811418867362204958485888390144974479638476424400236739789258705155928315734767402770896528403579199603441317167938237667629222912699990143403019222378279245312747514596191984789230756442992915601416449285704464734322744404280137872490206312348622619039006534259358806354545057257278057431461653847762925088844736763898528420660868248040342061864804806454332908766957197610622086477907751962119691385935958544037380510487216815165406497539223097818899574163646374151991608099035510682166987460264893097203488938095157574642350008171506297538663578118630169043669207380608570368343550865704238768100838457628252258314602337040672543325051211385144830986978247007399988696609774785392081944645552088787721856245801716970751568146394295598873339868130562183294529129031415936990126125008440959644052410401993554909566694256367165514782393953402640499964889942898912117254281948943946588796096648393097820726079672278966432445524800713628253002513278188613739383055670029117339638469978570037663716763968500003631750367974282026320956092792084936257003278051866631196872789036480899991653152684478839069870760165236431538478278217252717418208506320538031610137687675135838989236486824619037192821116975252642765363001617835645971159422064170983114335424363884897059033744459515174905321701971319692698635261275932162629619377764765416103024188755111914738094451590057219363212454297197417464456691716040068976430030374355381387060575451986938997266257227253846942036021721953469036950182885285692340710794035042654017302882739928108930609212482924729212430505219259488640894739293050841666984900276498499288763344014145917943349234379179446459400312285019964222123633196185893389663301217353295272295890174971323129169012238572904027528278769400059486084923053500200067833914099700646615985755190153684222353465853009114521401238681672498904802224529614832625148411423694157405279119723839152536316795162393357341090617968676282825587312751670064730196484181152086725312998940499741361442451473191433509396442335345872964707218696467424625751315060828853095189249960395035007418417832728826555553433586200678052003522421889331067192731324777653575599249423799635250211553279260862882831476874897491849031756153754434195638708759702948317546775571758429461229193834477397888762946386931358869262732778387101379237947756799706401586431470674131762489780052638927042919671901619796925140252709833998501265618234508048351441679511738565650649800568909884974596647102560773254378846626553527695885936669730853342411734136193438381555962506568594070968357089466672584770841610579307159770533226040146844031214205565667070156442599117291507138517038984047989869624678680941210474637482172734584050864839938716739003720198822910815406892611859268157227109668992876754656373953291588045991772608541190794310450460413144738696779238849536058392092970006506445263541658907340156248960662210894969270273336697260075224152927960746416840070611527688838082903927658357454989959151592692265384440630181016830052578314686849906180129888808646839439304473369654023775611929392376104005883312939466353296218407539293362994164438974239275644200727672898124117802648779077799563984927410484036120171689657299720742635971922477939732724713639983424880101383347361579599960987396632198797966836489440919714697575572523415889184919796133960744903694616148042461592708645841416190808425415396086677735181275614388460749250958843030806254270044831480835257972614894699059969035585049824788862059062176081329555848208966635002214242720654390206534869080639749818970807236091702149546751340867408560186121141680079237626925597838227778928010879795579305782418915530033174957346218595959172218359165573273427162271197111321785843744012593403125425607904495590994845530653264138584043214752762555095422338421096161542626608382335907010219155329632138755991048249620978037093075321706398621213764686652345412370949167810065154171722517237260980502479273766324479058025730946814461886055510935313745848604984736129237640190401694525726826838046644033820950577964172271943999250185019784278607558575567639423324369989353113416898067355229918395434370139061069987240905895009525561262558782302873595601640591825647751972512743985831330753848001151241711711485808742811902191731613566568831823725880436514919637266714707367801667596133004393800419980423152287552747717271980885298283268954927421758446874622836861822615747040217438321573128160123224200011419091425830175367701945220217856445305683995862081897808504623033711376670780333862034094993443344492958863002116209092734570471342494323897051436958746887097069407470414352720150004039673115624749344858499305731805530117675731906354129495297511697543403355946074072594358106658658896358550486261972220800771846353611629730419763004477994281862770212559677590061821441865404907477446446424709025228661347057432425334319091766439124953791118026101383260456830302038319833086785946852006570060607083967282657240054607212506570115059818975690718568609684950080259950921199432899242586585809482364230619613724810000575131494587807784303296320037131579672490972601902227426183557113315865984726331221230829880628781804402982740167056024109952934536059235017792852803263583024363129782453540383537788903779269132924586536503158404610388446616036913321716424684790674516360863352045921355814367431186132102632811428401533472973626210835752878646764017894007581903266608018368528636830014814968613224154538720684815759459474507135259877674453630536270042875686910077338956052726642694711314338820121355238160231517678117510820605838975348401164977769558952160494792284088434063121753149670468492947375661282034141114339890633691121315094104101946348978782766140288183046231109501511236353657143411788688464862528237156261632610721611189515927766934441603338447996737373751997670795976067752000570248336365530099424629268797459730116752920943557054115555526940284950421757843438629058625813712996569470980080134967089047554512531235962586751991937592100878455544356146044966838415511577450758907069976385361567221600149621015953115213911147953253570778486011016746609546286384014329858691614448239629114644445598490872713873295721116862556492967180225151725269976189500962751045199312218817121849794140034561010407814788046148301232522938874806756469255801557251656461559100274291498318899644773505459915248325509251251460380289738625790858311220952531442050371499358203941435035980770625857403152657702744505779011024330490501688847427265849712462990127428277231722929559789568899913429638488295629016731195068849468154943178554462864061593664187673700886081064357161946570827479689268386764911029732957848973350049123696238337472171560854315103624901983893586477092682975884473315713988250126055952857674516966993696797421211961478437557925708986328508979327600345126353141361357133348655750757182151783678101160543296721658738940020609682053451363127070334971809207592504607319803661019368385572489383130987992441514179811138065603111465360598497873192857774166799504309390707211435328578409714471485119186350410621355063581613847530607129209224296407709725883159297253496661659583749283072035692952485163373506878196271367853276626410880901404955126829624475832425661843383397363653215137153878902145603808557528599695988008087429400223953475370827088241355379649296520369916317823182924164660699385187330780708257450352007420888516661515256029903052620619725070239065907739740697081748324565422384678901605861621348212595104789472673124640490132891809587443027886082433494473488531223026766491592827279612043687598027116541264230419471478426478805554918606894772408309420085571111748062205641577147800429369982902541838261163064749536861300116976983607394397035912858123229202141765703332031291156200330158763098679192006091232396543084999700261780100012397216373101257261802161761262510850626090389114635208039824255921514338021678749579077464875170230147776929958623770564928460074804115943930928665976477373031100816993690567480112217126431465553382232724024527335493988692304475190075237894299409319265987967345779726331121740051582537948624043689069542121203843399619223710539752513413506394210419082276447146265737322027233064070135543848223132385044439679247036307226801829815327675470100534224528721096490016352948178115419134775510907695957965052437471418603740011950326706814611233899748125545883844487511729483262917938794658291983695765270006750216896082045936185581570784429584390151459891708981739078477296445023775287611393036685629700230110693682744159144679746082307937050969191845651633981442359520312467206695331214054072157562324341674717151578948401177073580579080677649451051104400223061219174443639277057489889818333312529495679506466852516828211697801382980403934036986385588026488336202673127650084637730525726681296476792188217575482098117978778234500121116179337697402823515507025934320355024644365492650404183947773518515822435164270470557563033971302783856693117104032285562022956220879491601168171630590974094094169877665745932581694937546401403081238839869800003274031297940119939886679374524591283588086207289908552886008879486515962545770198909823434847817910638175562468045932457429413983215214911233232791863703835609055007324331537272689666843529049022447045993202361510184051083764213116088166794166401604244170360206044235499690310814467751176336945252400141925733545765211203922920328254011765262194208674373406435270443597516510817990407349505009948891566655212262576043766252772082360260789842052373459425489508963660838732390763304052291732809357209965392339631012776734808880666523106236022655324121801444055065106455683245273680722779824893198889472826785686488784768111235419498383272083156221913308559734368439793321463216191660599418499860877934202502228640828828226929103404491854051602494603790649646388497797692449995795981368587045423815430924740024596501506391090193516706548465541387722443055826720930268553149941986763931729415897464943494376117557895819039190504084633140332170671014556495777972233563406660576910998981635725398784813731539127488683204248173070753357590025213681124214512686524306188805701454779435486804456520368964067697098420467391122318367056362262891949647919068940174842834974571452016555094353153363618444982763063607981508011674256236499554705966114121958250196098846848841857869961001292177433729123160277756962221837353418430394595302686755769185060529877296869691750523117682936571944680749492780297686373836153680754448420356953628480205883213773055839709493722931842417217997869833571920590855794131978815436408301380141389197751709178673247565161960794959129046556564195487666720247754011183935316446635978056072670883186164198219612458514321244487850738967416320379077050870093563333910672797335558692589967173750661256846181616171652145119962745212045806125990734399657983416983373906298467412635583935320958675184852100983837642494256707644354939880116748273746428618708955649214322058749964345449370720003940949411897854260970051987547023174931272292899993801608882884941895803314522410431332468492443108157155001492375087484439626872858236610355399565598031113272365578961898026403483195641934111531255812960325606235777947820458449622433803664084176253012394797937990089177986229588609163653612256311664609224674388533033273827668146031064145407115081585398979741289127823692076373835734532173841147532341211200470402362929333528417739658582731929392914086788040805489423099376863943697132746364957032568597856679713794646876776694743478230194472842652605717357005883070668942004684904870799644917552042983914650890758422876814801084979712416714135378331484103036557867612558914938659825465055782539063378948450370832040911176569835705901517425185395891591102327835068764674561952404614433993684287244640367373387867722304565097289251964161794074824413852122678257665365810611614471305150554588892887970174365248871893014032722328941909779107558661529311779596277433107156789566573322323801272667020624373328806985409622167032220445348229042964179671819462199489032421426283836452811437235028150055069055194431408670859770562039681197208476389171814418682856481750791777256122987574521111964129512538558462758353457373622818942089546293135629750087076297035293378133403544173436417098433117604291032257664233462181288631375947007701887276211670439881445288705541725536509929407177008328573575439775626700349908403514957319019958235770456352624179014314259540519985874628481520287796831738145139461748269558727279999064894568122944826604363553206376624794947827296822231888409243988522180356095277040081390609059365919937913746948163246578894205732132874492032896220437296783145705184536885145867747683817758591096339763607733497776091367775950735509393551293652786526069411740442761061795137550739170790785816751018397686479830421785624243576134630264603481653123969415603925757591309494458926704505588191187671509056120365781220187932828805783706857872666253949509952668052410275699239667937068112252124381061965209418387602417056325147863365693512234832560389641780497439379178234830313188174128733967209437129380050095687470679623763647273434326919882503427884260928923417682080042104536753538150660395569542681385148486785941537776791584726793161629693894038720605154968002735184058624626541723255605508960932531048821556255064605952142771687889154995481720381433543840120605609119196133024531322094876164501959429602704971138014109268955516666746643509604261352642764585634860575876765585254861767104335940281978061645994012202600929695993571941632420792187523962674176354228250205879472689094791061723072044969772143362019918321800523145601664503591311231736001402509446260852207809197558211336560443155520136160633787687379377092791964283544808355933086536497307460553350389100795662285134178865813707338334223577345019721517067836079086932172603157123701033715183563731676736495994544683614158904328567472486603930549363614420375477031961776106828433745569355923295623893977781716643225212910156106865973558641959751290818485396725628192791492242256907505015328562213391820996562793503760281264278922734876000635438095752136695680857497361577477791950015836089278558255019877749156533210754762728008066614604830763450240113704482927039594115531610985427554802967482508201532771932343128864932409880348336435054113188788832227907661387164280121372720240814255729876548256076707173298362974524635860459271160131549717328555230041679800058542688492026176274557220135579849971259988893004856136933561099564133613292927701583347849592853032827508193843696353666545197895274314945172159616298413043670341597293145631848607092182247755843682858027275764385407179132344457709233556577870969441722257877596925799205524017966064030319028457000006998610641430187906530974534976814654236650424157825220600265481255862216475038270309796492106402628352181984955211651937286948810387884693037848397629225870245967836804849399901799887474864801579335528920642957986938829120232000683234511304023343380656212705059638764622670016819529200644119770494297397546319960223277057846315454610806736203881840965816321916002533804898152610595816076843617247770618947021215239325466345095800790449957736365830059371529124802536943006482047284664504707458851675862851280073804941435932391142261438132489181522954715700773490709791151934880963675528260923499476437895453741675757729039878103200489185625030766053590239168327779076663017091243921940652180885109858837375738482231173279158863797645623038107485773655003596831252973154422330043562805563200223407505028235967558550856601672624379528021796789235531462734768674131346133985408880248609941794796596213283896350951022796989029268391642508671519925202629755547921565276287112296909417346291759880809332009440131557828669267225856312836224124531987707884983270552897850996581657179175901555662372205925985188299900677030953834908580312446662192992731029878654455153531155695984218201240265958029832441416611454050262034045233659014347367915234477732000176054569127678292934799607468568125280445410941387056511673387751281552040799036509454992439388016548916499039471262748938854429694653477656037319336574883963141029788648531807155778484657113910284115952444791393802488669511312999689031998254746096017277454909045078927229630114294236833220265103430753575757070901966821203356004985031473883880616391562198678969822774482098406139182003802342043713268216832502238877394218560328355567909219197353085029978875490685927022099995349193547031775151449570847554628750551639698491722742194443858579626321932819706262196808072705168825597846466615401294387413097400295312371966523676173770109008138425308798552535398073679355029397734369837173278469571494879367859842455062746460622018090146975955529076993822515484412461869508287105321127614394430403109833957029830843935806954463022886546102339020501337813274706642533357762186919111034036632746189201461224527347764211539286344809799664166552633003383782188197949577844850186796117980074414475578710427793354392764215994240338695725909750120918762950115439065223747992264038867430876736981258895762391516278171338186012989876225927072085799805265582316733458013815521093990581015587079363511090287891202376550624152193499359343582084422931559098630452211820249020546810892672065786764178838674670221623647616234043211617519842916295761832740225541000740699228187459248830302361003266202911463541247258879201746600705785129727713067173622780808837266073360789713115953351325281834129711482140944302042810181687728722514458940185645297546951815465103038816035693190323241969862619930399389519752748212750882616208262285852888126093967185052798245477003724720919036443635485557251331553887865413263623257259266092338285793308427430814200168348469813263104859521279996400294287034180274186220645952188870648429471500346371144555092739528674242722152840496301155343199233649589837881551379674913042762196854283353267985796420276910737992196265221370593136008332776613325707000648991133172866483671048856939856672141539421950303406481755604268600175445389113593462634001061542740221849709163529483224230065447856331133864267666359334646797788864768209514119450105003336122438144358189788572448524068749942273948845802244454619562241449113825296715478080838840467721922286716869276660033744835138032675590075728025766207177221250737253374542815027612284009162314309801665162888492685900644435623749786921693129142656360291259344240157528577368132547474389112994673404124242515867342904894355878315243339840849685514753273696200785884576835801888221672747665512875671453302443293891976066892002338332303752989953390165853444592367149577947412866930586484750632630637421502171824295839120281791638304779063999798079163721736331016168801819908363319849365253532281714702628288528810982652895287437153679467818173858171721452916189728661044983315894530802678795824202858462052570625875201664952479847730299575910029476404608391927295416924752467036722807321142339059204832404142111593780377559044073512294678248292735865531543251743541295775825593495403579815717423430803918177667802486292870106931048007900962364200867103892716751886039962294414732351230557425792280015783531110718912606898850501356499032498445580017962693357292730066219712856719555390692535855691281717874299581212093080686488773758160780874611141738967135995402894517441645848112366692750692718279043451789341659838333508295436093672877407881644390618545943185247372261713823848237595911584340380033410111936559698442152096299578571698047786163227811496229191146288878336915895747076408082096340032554875125440235111111101565719242903021695809518187438956375338718305439532092863253947820218366187721191795648583092200131094756859185161324401405221490989941534951613783398600917140220756748044130298996397927615787203462981246526898305940701079323038823150110143120208726081210116168326328850517623811833677639991999217095966183267771299751220036541785125596681205979191617455009039462989641661354518078323813503831045169403034260469064537901447300670823125873294125477829526897352919179812139002072387685200936688463748039562133032201824111728339746381949548226577860480700114891974858666079542861806265296918067976047105816884398328225809009867472592070303866717090183216762457361189671402243581045148709997327630949789584156905607674825982269216114329485167575177839877506187530339425010386558928301906086905279307104634065378233679651699717353457092545822535793237932833749966023029234913509704712103471422812946727747601834012379437278994633677757180645544656816377471567350725431412802759738251805608303869636251319466255978631930720504505783705444564725143322848126768326037283746142260481919626315200134860063273748697375938085892741474306003253639161714419594707296099708919783506831819104512413848740194747117154138621655137119606642900339935819933408675348202127692362333527274872817532474428791161646595740928849615870235833402542470468934121105081733154064569541335099165025022169962280085114880215917004944683904367307343077322188591124682452404954921242429191029915648764973298483087296447938235157509536215432367178985616034676699535123324459995855286763421837855132432599152713678569580140659803749387621015350281692398844409599057814551212831231757576070289419689103965788971968075833027988522153177525732119410133327306462183452468643689983477537215245617756198568004726742466348259429688973256920593935853935346312418355711279014907695306105010663886161207604242284608364717290254951491432739537305377136686556054892515750789405274660983440986581681861879629627250538903881657477592253039185775438113929243876924302679153680705723216973344721861809624726298274107144423571026572137221251010942896059210143188401555592508905459620278661865752993933292429344403039167883583507429449409192363194025943157160296755275417376663791031330464025577158861615486221990046552095619221614074528268136860855281031086338498692638638108926617220684040526449797150953727017742642983969679253271613435154716141726058475524360844548572896455183218841198200996953558369116521297539474696884631557281915206832567185287844698432707139939837758483636206845817419264852896119113481816972332984232876005427809010521734056385714866640958795191964333484365125592664763609273575737526749375280121958539970712696413345955647696646710132292252677136564612193046280389664052176454315368970974309181422733072514572839641419455408064994282266556315455031573035036331085528933335626741879158059836758251761331204476622517705582459974433406173669100948370430668152748362041127341232116923266046077348081704793978731547068660022084943057663522208707318828818287933761434351299932081281668617976353580178888440273731723514960258376977243399182715469963282790257134765650969642598042282694987011696170235372295986198734483994903601520312550179206372159044643504588796509149184219164989506328261902787437147412267659700303110921366473457812083889181534506472510902601936051732196254355459981448645244643697615757422164156793559210620445358857235335111683259441711497391860529885987339091649818360344619357839226003942090828784305627268316802341928494608950708289349187588027590861727910600236693064299656150425868827260221610271629361093246765325526302195221540369601648066353194360502461415706129007659870078435575644162689350756763554598725538859566619055683737384456023394585112645852979592396976310185614039660721233061860546715989513604957769453049495734608807100588204561989517053177953744395724787235455150336830264768428150989399225139019783181441719830990848572094109534820275095215317767796092215217451456146105622007494213316591939776033385504487373828625816326466683224445791060354648566903145469711022992809031044093740817544334120146070102007599063334456823284350999327909794930898243315253076838667623575177994957383092801373875553535544850220303144530294577199906858902789917732038734899351856089405459901242039108175869809347370771973407724797869033509255633101029647999258943586117531310516597195185958486629184873216650373936845379192562096856964063911308992413443941082682151066052383124853928470153086470526230782803311574635022522344425803080094190162865258869466126667660586183382411731120438431380467347580873463590645574353818709705533327432543284787048882900931015117366255307905011627720897844239338789592875192020933891685147337734647649985288086155289916858979654683648693210660182410335089176873717981047090272749245868469338365406513432106635363603795988142525724724626685117294148030869409188036657877579394915259804239343541626815427269662950019223547238484908637283427878257295008076332244401103561112006165268596960779638463124075163066400342824252665036333928905055898877511147591711495031915329462373752910342549362605738816873070733887513755522915230978706090601367173869519388663828076146380750268430932902850120181592785493910099812885607436774947577031486335747945043910524514541196860090195515659344625987959865542360855261528099938118671159515391936975584641053197787444379502880096226613120077123938910328106805256524586369616573214299496076645679954055559515058689363854877662669445683109135390465161336209935740911486510259422503678561921320330423828782198197431254251515904460373873988609665233566281163269380036289931499228106587451294421046424776584573557435522586765948666347259675140984799258146657886181805185057515861450518098624910658491516141386232987215886705352878390069988756851664883242362309136880962799033669955972008136770994178340990576699333775334264761548001250711485428893946682921080443399198465773706494409258692275199641269397733901090289760012166690833968566218544140922880332854545745113617718122844902578529558221120364203875929524033517158755313386688565021685647476994397820556174169996333887197739141381354016442529172373249144254075863103509843895952714467473866960070843232384475552846510527718391504779824209036733762877915408560991158577403498959660413285471702245069074265596142049386423784150340423799035448115311590959844491280676759327314086339449695811564906387924351669007571950344319832969730973496577923380115617547609535787345865873981489336135962012058854996317564104749888616592144255607923710972546351734438355185772255508231953725297412178485423980647279132768853110919373315408768734462877821163743691367733724405578335420112408412638895845997522439532597789654174524269319959975788519900241507924806841752247966559504153750967277543453453663707871436780823581706123196257784367980564897745459598649283004598767759616647578526242177345833719996833953906404732837690050796067655432039994005659896586251710622579496484684538642063284166602781028562781218941714523326748692116166130933650098268051287143106931399482829560336133975352485445503097827713375206915384421526763887331168204736506620866690938447145577716634109530565626493445957741788878731624419792200849245656674685088211179828291693988912552459777215580743329378179857145139455103560987215741977700099268623052786268342947312029356909508827910249881325643948296294360905649506921371852233143298873751567476750053293184740038819844504795429618435840857160654595095272643039121567218511511145076749358191312018599856447413373974477699509530019828556776313425717527530094440286146396430288067373153699026597551691151347226479186559941752673217659951802009589096289111318057944576226559887263373343594815861992822284286311644650687898967947390298651822676329329071212994315626633357927082136275470244182881292822258156006351713558430210040355810509628482248634177119437440902877634802678331539697693649206149665861879294461942143614385397935008383829599532890425119325098245112264235993596194557673292021832570485998611471299284705061401145303801815576676789210377672873698606684019111579942125090144261058174732652605864256853541112374496732033193298228260539940695767100827313165106465110388219826844977478360975339502149216431913579943164441653068580381605251982431210944124466774012217484870022087518802160367029708957530602001746442672701066385769414305013596040342305312019501764721956008810014070710808581970709109917135234281508887954616238176061822812855296226973719513992152849710610963433861267499142108230489971409509564506272952931809329362115103807703752096710754735146356598819152129576762381235841482760587387359469031548137046165049236169309127017569597164072788937593879464092192381561581268302105843298992977819541995957069716702464283032486088485307106198321651378255332914360091303226943583257876068071324555145501917410203340546200498116753426732201041181063023762192804644368198151935806291175550047088961838696032509542798240976050770360319242654872503258588232675392630595980995465158364245197133908431317091216093872767408425239732463663971957160319113841588103616349643730778471068935847180098447340596547040209280380270548927536156487408367112710323858311494752122672228896907591625931144661745272752686268456348208158914717091108440740935800450340230265964184610214862095614588556395532088524739286600915298929575611428452486682027583775218196567642771841287661968061291116013509159346111013405041399301140566593547788234386559608042383944699820940351613796503689522834362083773101846884731030377768763039043921368585342649803523087474654088145587557572453990158092036410273757273402515712375356862087763370404334400497539253848842526395948565328463737923765117292120906737515544303588585393059392241358598177153028828268350474325673575620269971701439617393314429339487068396600004998917660675539664086163318617259544880191065146860411110786573534704899262098353925660217980214830418290130546637270007588115422661483795531526324359544021792130809772587279164020845082661358771110003786232619675379315245559447470188614112563141213842449110738958760764952510355845688559069915148390714704857156703946922798010773884819311459758516532613531018911802498943407848618206374630963437502928312303800310259485510160635017431940802202124924159642610367280604615290804310145603094706203821453451544344861356870722023649535935428607703999445726593454999025819074049182428454180748571847442711059241553473289591643219717059019056035287017784709381928468794371141493971718890559283638481642045744669162605769867478427578638380324712138187023698088506005850087689662832772403051686520893328589747854908645694450438999600605195426340394308336152430419906027304891628377442957562130549367439230887742452569057680359090850036399736814996391548529987193142441188206187328034270090111610503928630561797479937070114893250624492365655627285457382989150977545980433594918645793238457968176214922997739058827221418831682928167757271477517570213066916356846769127291556832292926273149033026565889795838280686469189070440088983748556028152919337857829836672022399313202143980196808041689651381644938811437941895325919308224728143778339882620607610191730879693514286001034219101860533478010767448237682884650822311549358466502170456836985496004373120242782336890390647398990971827651351739328979551107532047825438993184529607900765346625736631067462985505270403526514295250603172366588594624780575073536613576514262995897754982470499529600844728426071593264394784304657251013176965222030295183122022757044708607378984364081816149698942667241760296713189546584313146768067829883793032504642407960296876022205197526154196568339117497885198397189614168669124282822500683167433466974941754140348043376553569047829950958089659360192964800437509599168589249885839034042118178233252075304251728833005124152332077145271347874091723218987855531448826403477323791877549047038659842244869411084926639279196232861356349014256458647572101397900699719563089226465895872577789712894090206181043649521183789432698228946490455940143870592941968813844184154877121408169123800928649604556969080427748423335811810609159658744221803253485978008370128565258927429545280576707136009786899016122234204968368506597850932182762894198757584009875776330975936548895386501672548925748837910046260851360884035260727544011384266202505370991756798393790565890067928716708991982825231941904714347501856408555807607058461709482203777056718032178428613836878243247856804840022127970136595638524906967901446804851649152078059783362889214307867527014298240334892056252456669903837493253494217977062653035487940004527221583824873862486155815044668509742044921108462781724981397694096320099758856677459926310899056024261239414257143061880502144223268523514689882703221018251047645573365970433964805803270139442922642349893734323194625756426971901030241274025470107915777125524471973149813128224116389263406306868373230494501941203124562822853928055201186261220132507623754235055460467160741811170037800445386106872638654496192470034835828423412690398027384811546911879051265163965152998889541980978994711144538879514411212414720619035924758605096774002933943398064666881861476576322732239631944086746775331201243660213120995448996002006374464050417165588371345662691712323539506002955337652209606698336428147110306647658229864673063930284877047999794503523313348903985245870606861015796598490315231272542961162447187151927751045108891679441658004308741260247601584175187494965057247751034301012537453001819009602542568962808169076135758658967965191540762691680521514931665952222397691944392887879022054039395781769704447860300804477196239343598415081478494203608674748178048447646514568489785257702339230275644404180755295231844244703288138802672381799116429787422633375996332365261401402587301954702932166504927515012908026500997352751468938469745446340197067176812116122079285442409360110154222854838172498574235710708310109717626454590300700072441756394835040088874817799691202467702518932971589697646340264261310388417823138026550223864826771876806358271519847878367990305322993926815221704568414317926903918223714117083062057387222790755600397370846965986513913613917797894974079610637408450664284643639421716824900907490972627684786299272674038951422621050904511840744186262646989779576670398414531988504663461410597718728630605311906763654682216468553849875672622896069439691359513808393768362385579566318363245022675865908197607959002354147147135062956290629397053189106482617943327587712152569218241166084570867327684503079528672141264993926927387827057878835161142111249920561896415886938657759394468090186398034743361864482712229172262654023878239138074311318381989354825669764266715215349029635060342324541853700188478785831745879057328524139714459955783082761896767588182439497073703940713180230124749553556148851290030996003247038936364779491354743772686200367058107529659121348275545134115101042258622925560488491085434992768697174532462347865712125479672434649856059030001194792824306366421983893001667356223393939008876641529893265521826064962149172171587131769745943528345294629816159192388712908805790775408019874407083050440228635817833893083898741140832667247587213273648630531480090775772857815426985779273314998640891903170708121180741127704844522727418279350071152960937417909282869519128884486876676127781060877854057185888342178135684912443655562876230073331540711969010791001266540679866707507163342105172578041563926952939651637114032865751116339567330136941335687107746947211997626703051881430045808934336504509230985150791684382849050152036369755531658133491104603866931222776592319844196684571404386595582326664433960849031755460624869690971751282702022594257262318065216601215161115477264844264351181250235444520587045918388517311866955273502921800464694354376081552115790904906818130975811272205281354057809987744666771457347257844672749168920134805071818704272458523599942501137820027419746821866753062257407547572326035223191677649025134188149074274389482251089030742540281363074742045293674436700116468447812010416091067879345766360480647945534007726252907774268857324785976319225765476269025307218388422074433576959233840750196207766275877123198164401449041510745035976782408181644612767764621257765395482407000699558466867647370389478375817219835483203786584670848491916406632150751661695795137942334401498265609905039008330932137776858296847146593504033014643925037486237542932620573273864272540394189732599109696395619946524843671536674880807378888310946278874102399359490226776990683964428743560112918699439773884387384623515153981926424794616093102693492822650748036784327942557233923184176120385292410914375622072489865676695710734391280386204216239545668842773127433910762179728928101700142985484042182019293646283090108004262585486526239418597895355006625604049096089072346827736365427076493162653480851476439842839637975414136068781736230996927660222034349204340338660676454086799353421251248536003327787126504636825832618921082292751632645857074448168465036180792717416776582371199971474868310510582974215061374918733621144981225893892545278193263582416848923148978212939911370260307347543438625465686487397143241674581579342548696377342990125589182316665795662272027752393441253897623184362810773716985195081084873725827806686121933622911072642147690844573442198085111436731554820045596608463142339212545888005334566935813326256641769951669482997438378986549380577140468310545487476866849404199962142791346346211071472117890160136290510875395362603463805603758371058973483196834732630192239577901314753883401124860337239909448862495584275576757906816997561633046548069646528060217255104611488043799934676115962330194888878130816564693054676968486913219373845806648212037242814392986144768365850062452625058239868848613080517376410680612743459875933009779129974631534315936160176235785217405986021127661948735100164773078677076335670900216592765035505490355158794257685338670804803323874182338134660214296114131159879655604762968651359911250509387743484577638320285621085934265297143764594828399260620150391843591159444557562518398497983766962962537305756329983026300143401868279509856206485054946202010469541860154689225435064467312583472407400626016484017293464124800842200341995898529702601445421732799705018584058612706669662012806947797501116353650488451275301274600509020346521302126841436031920231950829023363647704515899653867195594932247409041568198881848955439447333853339863954585091254972292694753529070866223004496549503140281483451508413275911146568558340969300211856537682857766156708510602351196121722916387766190588005718281196687820988622507191738944481040455425237984343123720816204379894573249652613449254532128128289369763111708590447373696869840332138711208940908066098439659836294240471452718749262694248569288979627452410288586991547036182512450164245556627366162474616525850066906827938132777730797527163182096280975803606029761256330826396042327948560035261235494511464105542261219294238435000362722688526496215930466689568581698256662762273126261266598563373341561204878779124698939511484575985635733715896066598788075554063234107673844514978399089510852155832675423301955247022568944541518341941222078054650762489058200792900922895127405263397460491343161793119183227902380536482903566392442461489664214898555334837715086437180418813905742469300116194550359486521315733178511086985506821505941125727335254539978170375513467960481585110158395717997558268941314752669725504369529210627627447469205347978640503821614863691761202736232625990430445452539065255311090374620881620108884289543506776989418925617480894217054757411041621941142512223923151517251287212368006796175053158628170226986833936879308220597418989442140095117535969088789203793688739379139138325326971970592898041035748026605522733740192928561582239189355766906773705043580999946562386681139100098039437769099679112078212327890682438834927885175068099362242564450715115960710556666745528038046638738541728259924222143263653701803363149405605217500197469004901140433666359603272260324551089695496495465473334361674584246425436327256084977329182047951213717578175880155422887636078206627822119773842093377097726642077293640903240580943705485515345269023686553443735957035943837618710988366741690416886005592678263557974577863663949069488121778200592083242712908034830653854376755680251230783194811118357744561852629666032837594010447584481101370415504841591790248679607417494455645103361843937654785190933076322673232233213926936255562260938380168402962770915010023925440070121721316795296641245788778655928818723127246446893415394439492481492893806824962184238932349979423048890027787968536809989917790495716569516628692702166183725110469943303738432470371958412016659106911901696974897197747360331691713843367547416046050168941364891235644617798177564176678002388589688304365367255426639400816789351150842147287114159336812068957118724922926678365016235835179998756069229530858984720599795886465605396467591343401395608796990383832559714518733348103005479752844471913183018298285941295254161731741963126795156463059257201288279741116586642693625526923682992105997372091560598116397804929056121288434975997784788579010223201474952458749833566510404931391963808972238821056845741122574566718697985142456322237937441237430743323273347178865126244429366428991842899253983605263302493712607541172492642169537611099343300693287657058424772698363915474111414023401481549128321059044822219604679548121102247115886287766537737473517154724904809807517730970252193855277634844622577676478732372693836305061674588961349920204364692511563774891374811317581617261476332815382898257889528427254444583662431487991065854819683529788332663990753480941665435320693111139398587002490253764645565531333711632539450853702618081597084204539861147624710201061821915331151346773732970752637843164966882880815838969508714747790393840279505744651998425214447354068131033720433500658366028948155036023127361224247142086494478438491704641561087233862616310884105230867423642277279373608938711392069121062978457041149040042490086080423934821725071629738888844643198131183979593292277945947503555289429391262431175140846345824721758477216358891100927131571133539352450492306077706818346483844023709338358398640345845171738228185947410734469494647388387303753022288676437806038111675065068224669065131512097416732968207093973059111086291008959522060481296110393743625893926405740825238016921665038664806878667646285062422907067258332436405903806879065635509694382902343218242944072165912659741026306073103942988650474489342797285731826321634833928644322340468654876508470656886120218747762599941986313789788726706736169557393878591605492360822384131052283626730261761041160025426393911919075045422611637930201780413711418208575704293284978178994115469840762650241571949906117834301302703115674259467079102316793752403677452054280954034180590728887945699792250587813822780197095670597371582666735385396199932107963127089587657847888318275607195214865014099108207931230193298526269586872614820627274281154304589788328504709148603103338698109748685461150831645905086357407586676918436222531251847249661976847830901911511811839896983714344493104650975228616400289695729693572677694427544684124981824455221856853732485866073958230960863160264908810231411592532037515344098277952938077470361755652259716186552181164898309824907101742238658030914487214186312777079433222645314597195341308050750251904246267249828936704784359256610687781150667834015677961169776882064805288620453939802516535811570192943890015756527923067930902085289670696160998497385077704127491477173118243766355465946229617868422035816963421104626791400411675177597543632908050089403905157096846093878812982126405047928987266619222032570571150414609058689027875309717427261260870054720559600144562549090909116511359994129930966024561709780589655775045325908227814547938006040414453095251234766195758964952845168957787345956892515030336787958730810392917472289065470545004973915574694061604108151903679396091818124650888635259389134935070289461670312925733204260300029290292157984215118029559232155799227098288771964281398946690615978429307651061742028087189604549347719093508013078659510149468908271862335725671842976620404544825770986561274821469449043890070928850603793320753859549216444779724621718678668382965320351574880346437224569837000875683138133075225588144619311106866188980691099206177692347420671733721727467059543313401967588093519987582369132948898933121929645866946704176404419193781720066008951024400191364027010324891811547786843747237999988450154457194710625663831186380106440201311857607117467849769682151804746963189263315363202488757927978923666272771737939308098588948717040895455239935149995302202459559085674840398775300128154189949151528918623678921782712583605148767876709778153189255725486316179542274267202124186588791935451577456470162738928258194753789755355661075117295332446810266784209593546967644442650244953046816329453159542609245107101330616835552012345190725608311994547410356143869201948126687756151723589985578634705269899416586924331742929465582251324417146784387046493484275202875809734546449914742782013573923010039810614646848542737542243089720356679560135570832621959601086862366654884487865232967477377623911909075110956302720816383418910900002495888555699815920302173176525327640091706850656386944181327859544084017498075094867772767391643149353656564121354329658550493939111409274180642656616772969626460498773366524578697370378649952123266387860946118863273367233052783640824944384429839953116764137365700734404580636419468364669260394094655734014693017682935400063075190268767775645677917632208183814054828383083146180044679377565788993459148109487431920222355924565923742642085545902575841776078995065570826959300758409887262945998068947213614840281338453948354786405667197036393181361682000626709484918515663750827908641802640688881170792918914930210605233816372665203518198656009685398885649330335584518824717680820749526728460952895273932948083157257528701485328398517720508368051488303797912857040362393348486130234380303992826584384616258610541453967658562610751237139633314005964003007859178986733113446324009394829451660970253818200715174413466067010626375522760540422239882811691295630169164968788552874550524990742357561580188967269838950672176560917946371756188779745502421595788150786375560323204639598817990955170457294656586542364792410302120884340296258644151183244325018134334863734985529672050727340896775175516590533493798364723805785290149280819505655933468351853532092216111783025891529641867628382051209762376010792805063487325457382857984965497473547556779130071268539807137614125435890340702775210104188127034589080542137333964955269491692388701625796743576720127508369063694321776911130743405654749719874088419833580405311773975536622577147507932489252934108871707604853260439267027946728684577229165464753337342233727366552069106449328836464487667641692249629266868886412227318935179202466343063618362304976437697778638981762719503752315022655220624968734524961209009924388394003412602779836668347973806411414481963186557336148718904334445540609247386086271956140605853091509111566070685985452048138965400798222965896629179548862955691027285985409858607595112563183173727773060458292881681866640967190071775538662600798305171112481071700495201313099997589455799165401116574198709383307622330293316941967477167109751238595213558572447163978333420310098781754992513892428639864327903550191244038089631428262814117885518150039687285315874922737859964744592775068723697330189201914209830415234394694351797328535060783826115508162928355958984493874236409228594677873413185230136185047860742005386536399160160527557433546733628756872640565600954101767112461584906576465886227553971243424766955485721395146927596421541196883002209382743821002603751742602432429715849295185602819155189187142397784826958285291345151805591743522548271208052671574240751986246243595790828229405069935065431401092961057212282668723752161251589135391448792663288090921961078786498983933717421653648855842195474987312446964941817690058850560881558258321114317514220641898837502112190721560938244239475547047253069904677813592226567940315398895071664562563195941772593725275918421762891110519422276457880320760011312287560975971716532752358331562939786745310933056545640157075328796585431667861969729309705181060077704575605362808868475353579211923598084889199304754654948271543505771817776043038474078117494779881054234049232026041128180231133736090558312257158132234471661258881931954491434500376312947840709009790434135703777464819968650280391755095594600941553591508189554262574960372289177877271184841282111406016713027376223235425416129431006057165682226212167870433000075963652319503169069920308339216548015014196401502549960411835036247910898963721417977700694918123580406192429151915421073929301135936913457380080650701766834527627216410904391338711502108621090404523126325400550417859589787888447556799831321637189202375186946890879389211183764999468268337854740040574649599942472824820360111761302031289159554017653651020503856001654072511711861090400877065600178564523685412546617506006864054086919198096758352829432233651262503251140363385676698768606902267296012901657497930973675052994711158510933975198024203026231174960079582647538477978383138172497972039065737203073132410129720471983759759395341118625517787157963449711550478047598388929243137651103994421665420418033553846414953663986572130174035821046266961529757384600063326576566940174660986737203418721963814283544465310584722168400453480118106477994659315190678311825065689692339286077203729331128401966500182608121422791806554274012586575301870735191735881930586546811665839200453523748383367344115556458560817226211085129805741568012909110550359927522394879734139600508461045037218436094412002934018236095744848053778847953541786611123954186850388759877684769934509209626297851889001287302920676690537462025490410372145945547442540807462418082990041602009773498482475707149807732595854398584653892409600457829219514849319387181302010559102699112284927539297822198065630277849459796919677110419554182066283624754758296762161555937456998412296055353565283505306704590001628604592872801445477367290848252585497066940367204714455363565495426091169603438600696398716110757222897996693614673862631891948439244306011294289800294114480888870061035159689095431211352440870000470362339194999179966259907001261708418089745439478963358345940914099389080224472662748993608872218013363761682879269206113592332319699638880752587190087186325672166030631936099440048102719092478372472336871245700459710291507516750546585698699059281319733535916478744430168430666865553546184024874875367099617723569469956834457048477276997072358139837266154159616845105255355175281133301431857985219750772602738942066215597590908380394616080954410397398844486665370993680267989335294477681582862700840633586098278178632379436013902284011314382698645575124364093601207718448034859074737646793142494048533155210532365881567429656890085838114662996202731758461074962564537836477368169136051910693834899678179717165855289751624725847703535774767445368556405875864250647385508102947633544940516573215946895416687212986881828932133166850213257553176299963038654045598056520682511628389368791795248538587778495274406453981263150267579028051369921946660954250961138271437813101262522082646757114896037175134979825403406867178068947258451336845129759357566594191816286297036410357243368380781965731141141789115657505298917858767642523187082120069691572898383374793820614339564393879869120746428691261726930535836013824476662405903584865090736701839522370414183651060893484114096763811484552225546003356535696732305214385661497200465125598411220161097299737153585635590687964996316237372758479819239302743848262997640519561603049403251511672937232956160337516548764305565677341372948218121015629392395365742314962350047796343784739161336190248328135975507524229371921161839290884957710083557183622013983757873398526207182506567959632935865214087045607898069481665009336780427648363864066375431201344023653412949157039922061482199048812656874002902952289120239239380462893074491003960949542997957893901614574255106577688261189100884043337094017877738513305758896747257294549644304717059933226159173827638048897516076305084446701265256007924534710620909934115635449842807349587877449247610979861130432091491468245231623310857999483146534658975582441658661169417998661426487197699645663676233174527124884844818173129480008375135219898845575708449033764130816979680126596234251275475029965930463454077543671606350245274139290117105176635754555387602210243049459745277209051143882222959136046241355388977425760596282484004852259714970088750851853185178079129503911042881791637405023524790220434035385725924122983796823496915887885621158233499462168387188230505257562401841943406007281561367647196214734578149841168478686843152577060279639499244868228774445592039017448741891631538613711421951022688703189486800270056066134619274845560267383580719596576329910940898312787698093151774366777066359664709187739887344316474557204928151695315497765791847554179094166640327331178148836536195362440498746891927774611748598430817873060461096260670423049019983342160328827498744670176502462023825693806787443095050329803991858457576832507773391272932705477913706845957383789901269229273143698804697347710130111554839565744795038698079964740203695019525092974373768165298173050291722616615608121477021809539345383995794413584650571645495506141915321846468484767191948955920447727166231354312747647249584227643870011306181288584185518865864156059102292215149233328146668521158451440235987852016032442201475542990451910308746647400837118489760369267767653939729712805388002990426350045148417049398846784878553571972825853296361029187044644979241125125890345928698144520863704133859691522894340508454619470701338782362986663380000500732738017861253607272758678237141809601474909041647086259990490610505177335349088837535422598442638471876950028219514479842555345489795087747086210969083098650002813532839124915774461588311056993899081184547358664374817970577096254115793944878380159526826772670485246901506801898527904040730136365234949543828111841779673773429341033429740592338788052266492189346913172944903692372936941711100228565028386690108070986878068035784135408248984058835079631243404504024234984101335299316301519185163856256262429120679398028092596150782509714122309049306716154069113282971492850539331472320878074966006098830515109184642990621979089075622119589887885530571295054163656127704148202078195306035811607048513834884358037206787940965404468025366690367589368920587780633473571332407051099550911607236808942495050993409701903319312096486082891684488399509882522556401842328062513645423172800029612957282852940464540386478744422745675528849401403109808885138969952365994060004172134185304272860874462173034302459583782916318339051364592349936193292914580062942122441909519218184365042333109981611731874038151720049615231364074728528215030653085074784309141894174441195368766305635291557110157108292010440971437177209592806077512072128239458913561322961173062806444836627765699668995895770631314314762173495800699114974971647714666219610137654618087804913612469665064970312516201776473897167548245362880452357419919835701761233863079185056653245743671446411806358000430732454928193482221807593015259936026321963416784317405786738868382496216736412556990995106503699663960986784877820512726863931930227165809710516658493719622178538042958397147834837513400756877318944638980306103892550931246108998933273562862212617624789811627944996397587306872626825100118976356320166050724931299908378312956263202431382036224032151221728111168468212996199279104291023683997266703247658778174041739819907451382038824764726141000493995202959343697290001055481094242414411485734698484963109444200181714936991217968930883963651294897390823963436437340515929295657758619937334089213370345587099303528407087917166651632958256436178465529749191344595880991636938483217869365965032741341316906205188571211677849032930208804623007331449915222507502517720294705775812370883221412399331860331963031623429509381568200846236311311889697832936332407237142386975806186237576675829751838089523245975220156528925436909832834707516961729448222683818683745033641173558606245264439872891061523285954698962328452366003878003450726756209967501058272640490293323160517608196474560518102609521278609493106162285907946205943097767137244181729567675445874864091520754318136852504681272314785749647535105915047588199340857532190065010414137101716086391456862713967673820911960532056406619711445958881282606597141496105639018130086778569949684821241147648101581146101455441212022007444966619080467918129163662584219744250318531773831825142495789701101330051437476749953955136143676206661075900710378819251962492440461789554154839975644261539278420491239166065803521861702552840150924869018810239107735632904044628298159634347067282338290260565698574341578258275080917802237707202983577377590576314816652329780945538995000228736763360727131703423641038011806773029099562236167096203334197953204272694363613706513371623121607283702718645802120765749121535105376483685615863803411174156128969189133826263785077025917696498572021655018477281535049953441362455521669689978824060040971897894106485394309007685339867624237723112542166678649410021559342622844282614484314948187942285249567400739955226653913953020276521182054180976706287465858299227717755907064552927727224668370341940996011301776876413589682697788062254337109827360051982757836513319772051816720452467463871238985751148467540923838524056581884527602817563032674072462747382821392255942792103282635044337398630565442426338119426995201308859353877334811771165237781046679544589095536934510857054794251302716625177179978217122238482721111688598488244398975683575291483693990210324448192729844409904045780352375927296114551980629846654618728402359419624268173114471997696082891864394795479448694869595902443784875441783224212629376798758440616021743210145308854901899388919952784392299723648953864511766499028978568350084842215975277894578674466530977928805149621856211438870147543673344699575741896630146325596238071970694931833761385437058703389656699894477705365324758514737939326358339265101511941227628215634650935576452675495631241603717097880265837691043834470955633593636234295790811479245025083450552054461083522766954395376079629144953023485758126995706074847772252491131668617668787387036526001723515212035356343212277323914915954943787654816256729943413007008899768002305440720007814623204982524027216806210008353680618789759055447442625650028779083754710514562365274199101401423288753150988386191157571913201407425392829970429213546736674869023247599908340959978699673560492312799443305501489525371372610512989621183303812856747476553292372386337400925723585845849683568723777820275398582667223948065541833529361476619386840959200807055070969536535907318795398794552264179155034667146956406858990144827231246672562696948218169438731214639570602404140068073944807098329232608246682090007993959286822266445698264400936845974284260656973421429867256998709966246066577428793371593964485000881626262958000087752632496732788552886442438081637566740528545724995335803199137815945586948529564696222941886808036702901460282322304742315624423632755107618795236069836704865980619777695958162447535165671621262921619970103722690333578240405493125890161571127237420479574527834809237180320014618326137034620222670128891166055364352392829074994362287323638842334201903558753713583144239205810388605867837612709310484184006338997245164501808506518921945487499604631969617768772714703734880945836860040030847681391540885217865713228618408575878941201843163098231204254906741557668234984250510867542180701462524523543302111816698734732028955725741879392171033032940399299789469518319170515853293108281817307830302225901491015087377790438495730966612111130792639167544962908321935591762036102784885748077032523731836722425173154712062293190798629891239146670337943162887584351935858832480051987992688474880628001512590200591493265463236568027197197600743523285304190886328016291488856025696927532750791389701851567685518590025893525427739683856880454042415356750841350689566587273671042151997904521662789100908176011846255454523528847311639498334077162165139417778462549364691625113333162572076436499836579895755762649616266859577109780348621126138324586385804659669178055811862380680472945374220529463414722831532329956375255982527233609307400152147027283580566099215524399977437537680186679520578006668440639902257494888965078851959113494066784402235866593453111750621434868715435799770882417411971013962545423957783444665781386503018560347916261790765678240222071238240129373269901685938701459368425671776537279263487574168718782100442203947635916341121112803633318037942308373744621232829894373632713247718442139035015514830795488641700846222572596814361593459039649533652361444011514236451596807977963799323447673829733745069806315230250232613917723421713859710744062677672677326382071411379532905716894667631375175639474819832819012567133567662922584422992233879545676613848523558133483999824048276700293235579704430044662499451648129767596392008155203035208439006982597711721234463418217307659906016944847259816142149538788456846633109234785171658475113234812075088147993928417177604429305890445776770664014224441738292543019107185681544463529527320421947656407633365855163358938820738613508760877208881349167927385387695528122690208259030847898388395930497612235370028332305549618332209201897333618348564565794035580025928704976998593664240993605340128675560859377841031876285547455904780889654669581517784824029250788119200916206964772516608544879377406541657892430978961526872178616029805451021660441867809378751783683908071405769051042195950247463478556054190526278793337783631375853134994084703343806450364132115503207814417892102037674444195005038933890655156920227079641499909448878094006073331940650533547527893712809429182237927906521448842101989877833726116959423024351208874045048605519862673199226900705432068671616945087973991606837066449361577510166947795058014451994599394733004997805567393091314419896661545708598446379204264210281353108321102337881323799939718570603657949648338804973095484627222129785184921861217663527087846362987939306568879860528825969364225355291524998050357385388804651021155891118565004117576130790122658544846522754269360067315418044516368164646773227035327803861628870731860985449391409876690985953647963726642866244571114832474992941934306760724289462329108729594331060417407801712056549254603812646115819817872543832106679698711758730645628783106319976279183928780216855012199572518531089649757535761729044783199124979549984443967680137125336295521983478158857506393203857092780934246840772385351344776514227857247729439298923107558050647652911589141832315368755851183536654707786151197076937664360960582855503592365787425650384682247753907194520675608955501192746261564072260972740948502130980014743134869293565402283026395612075127455171320206373098626957827792920113540525564646262775344457141533993807517641712512099388780065548123776223055001174292836944700099446406969130672762344453812918559627124965434641094186196911101994877356290920910059060100963970022192266633695864331641916762169433126440045660313472525198232873057183929455044275209156745043010282539555670363637786795052531308504342669084476859802626095772473072928611767797931925410114663372273695589155662432852679855817475224223799188120720987963459304562990105574336226288965705413007983766318867292432291402219920867112632038777367318311729199424360965180746181847533930471830473344859513458782249944117032891516366743192076377314098726595012105458212511082304876458603589159710339113566846676647485487337214901332949630370349178776259942822268006829110043245049960764703943874940963579662223026088493345707292250708865669856393761171675791033988937150595001576892415033088615745399271460887880182811052711547476800306860293111341616054880996651665070677052163493888688864819161039623288695098698380204063291676110219139273005373539866540519089473379321486258119818749696749142040889203818252678929160494792814092552992692960435626623360362666022348323016790103330720541245934212895530075402201035382268209597644616775106349932185167307444595727731454506653416226915710052694091304204922690095946474915822242232972852955283425085490869502719358873247119162724394051533744345752730321265036902089136007908587639632671772560835403754966355135036006844037407049214770831393143299129139236331555917913075935760267422244172020051971537483269629906522233465169116374627315971071379356803484089102876870421011595827462017964113879418525040954651417608565458518197289978300729775272470269564810218350254041871099880045110001694848251702993835167971381937887075990902583384354655125992007612980010344812859854631038489327933631220775063144830816964780247721073085783544877575767356733961619050759227753929002561862461962355288365662007779720736641264361330911486285773261626933179056347383407301024928459317117882260816270935998303318218133530794535485574389681390595299386260476815788307557549441230420636560987138327927775915287455066167421606192960101160603369525366780768800031445357089646303575771632126373811096785182409308430847471936601283328930551904082436365695327925077906799446408392521666531567491992267001319368266758592008989333620377424485227947212084042691778126980033063167209358848101279532744703695643415386820260147157118893757383001531359303956076042283383252444624911337815543847960567108869000504866414491089910162716794565476268238020749600640636787716434332465527349431279725572506199511424276254590661048091664205096267500342988012321288222245266361980575353405627313439549151461232598061304468092178380567391051389375983081134634265979292216075734831592497810216867419931955475379641625084204339350425786256594467703801980468221806883718964964463297294065903927333041608187631959091671344997973684055582921829316165916016192650878435653613100948923472429875555134956245996663606143828028832634019215461559482643602102524729265623756281725474690497518248556727798864496713784203132858202953282309012822230002577682186415684593075122007667221545398020471749899650269345729754942905326661614399311446159340889501979789255885565657235322472978672949367277449608667321574018627585553813663501129971271018089030517184335995609503337771412838831252591050499755422368399992307444507084703917459385924873305879992837789233071447317319899918579840062070179901925386135762319631725085897524451673832973845282285861447998852494347414238180204271485718400034720639761142858158856143731683465945928997424356834004362886480555406337883417212677155326284102088944909304242325322157661489542831445113774614649857196429794771931359180771263739262831028968076762577732075891078249169100972282037569261724175016638476064684619132947476893223483153625427551916972054865335902125686146912573190081846747643140928966134277111606019988280605093571438826784996939839629192420931263447491649572374050859797509912674335343179670943129534518024496207160884055846359129042659345223192801126248522516114960043758154419112118797349763051993461783273012075458513809388724133027248203981404144401878701323900547924976395858614436446828741612868591173784801733449499483589499684926868180117077669403908558848808415220431240697717324791549073102245927383349896702839526777678676711314082224443764365824325824093506715734969676966730314105192235517062885160180297960193036293833223661557011355313620432482421056892186704878983336080887386559251710884774902265714726164078938696086799118962862635981611079033302310587055139130409061299999020034985348087282245688641031223003145497282269228658520020683857922861295309262749827904808262398027163695330151162565516632722003047247936838474344350140378874006660721308446440646083361766138185197214424162344664792332721542059974548521267489666388808392592724501834054677787432775108183417142134607419256625756711511078107199793703622954959915287682235123384564089950969041572474695042208093542355464896392154191603210579882198590577768050819999989288819161793599070762331427627466716339776825569549075527769334207679477763379825324847834102540096027528330634441988434705413936286246052285111342759093098645546292615131860815242355062150363428748590993333593740437997834189836196466355897375463202385659805961832183829632589619041970811071498964052894976378769554451715091214669671061508032323073969397288456865812548298504994398265814356176963908280119316202668871137950478659661759340059907920178617676231906814315364130559886476426226235827073515377370982199342818335872759896570695214919294989231611742544367007810760740788616797407774338842476457126144157991360912612656436227550967794703128398956555196861672464157034492070793550436333113369328191604421304772788908270815537955940930741016076150292604385855512377223913580697963464058353882979905298765620948057469660217829702957581007483385903011862150310040020808075698267070682293977056814601379146477616336903276020899815450358991288013412660945404243339353720713726488402704123244707794733599871559493358367510024720801494331573812965582930618838837578020178918932987349845400959467184949420842448197579132528369924021092834242092139510488662654343453554260357918962657071120715761993870690511018925811783665027492086422148431673900679233463364187923528259127045364530984684334455342454386814661549683414660049437481167989865290346041187962026713924897340789752510311856184887507446466336777547122500747318150292045129763956465658467558369136619610541984960766103670586087743635074317350484660614185228615693185734284732092636660291570228889795187581955518532296788433792645476760812132979885473783437136126784037146544720614079113375122073407935862309420448922825288860933640808513071151556053725856551902274918856716733613732470592491927349249306169310895214337522319254320720667821041947526631232618982490466731457138072451017515584228642898200723401526245971366474039364455502567121646203987686137611131780361229496200498985997884267872137268678243135982746979792511435708758964527324852529664592677755165861471512674701964443999686940482447004273571184420202944696382485081990526164864109904368904287575206411282370827470100513782176324779320716839517596855906016332855021367241191243252811247801112439851565524041612598556873517808420392075363953570873581393361365174095842078398434498167913233272327219637506622821131951004728654184271220761342050368815962781932836460465860181825964196156094625002824344902592875995773792946376504143067404227856340889866557650530538091227195140184984999427195974536846766245326414526187482585335152483586483560296364924061424047453805325518456221111084837535365264905999784949168891309306393843105605211666457341944294206137385835616654100806226162452403654116966061316712374700946331265014118836558375792686951670619075249242791908780026490235543259283939484811182707229809459695448677069403893475929302494487971263912822057485361358660265001036102140372086413948850994085890817980276869823392186845254317882432727431152860849786060336696369868427240538809967120930497569608191623398139177449109455724955953554944470533589364003605107986716608895431008925476332615739514185580575195731753993314405258975032664179979544276127274910394336295015745228032474171037566566265796695380499541968570401851717641185437633071387255904531975568654811715674319414727080770881774072364110353514811834142292134485329546503021360174397113841787903343165903393757426247892149247175401693616634891243170763200224778655528175100291095884549579656556997705451941421534034736560469910655397713436209875318315425887908314656201437133997913450804216508352109312495565026057032703945958503038708352904091455964162851158770868465051816157726911515298560285569131838697620046470416606400780145267532938883371145778929222500212998853904314743911565061933870035462729775961304592941355977456436727171276941452729114861687379716930596558013407960451694583454563560167908290489323620798692467163267788218493966906443975358127526734763594094681968773195808824306630630367461361708105411926625507903816498445987678365246287700593482533639638662542803601416855616823852116506172046484304588359650904739549463854807184066854094963064186528349506858190834655981269280026498527627881649286962823786463783634440588555011519453728031983466945512192113709899344127074339005625653786739827622048537676353801210163124006926138933105902786403782181326806124655559317364313615071750939916117949516841761392849959086140862287992869539694139436418133941168942642585637068199973268774622356966963517265267113664801064678793932556942234593285520035313811309819245427942177445446712456381484282519391151539694120906370251758010585306845604747798165942950853101550206808590443915555514184289279434743196213014166986511560627886130148133225574953194347690089409772613443292609189725911937715203661037591708610096708420469898836948374004741196704729848413463993778066792457440932762289789546061951816088136108755609490410810079509342055036781077892352632073296140631090389552001817049003262613231883782134672431756748384378012144451958390266770866791174935931028324438671981279452144314877172205876215050178912358870265177289170359753225136706165187534853780777589241403061643526237905293882122560665764582473052416835531213259425175683100253975398465638452565148209636750866502006533842330419498135601070622478634639810682345154940960118743341217120084129279572905159495920222456672248013270538420565283440591898552873915978056696430456530586295266831509212690212291072385094639374406047611966812309266670939309444700457218260383502904977224445287206815557820053587717311101809023319642120190675566571255134678380990657520945065250269182126890391977149983185064961358872306768110899700869222762166362334716060148954407659382708986966040379479148799694209356259869339064507177410017348203019706645044454554198774114082631938569408565367837417766747592853689547318303672750514513052249701173613185439645787372954286939695244950022204494876739823473383992433038316316970601882610158128428510036360774444049997445383631947546602918923597038323762385026663479520208306995026445139999786192708876676973207968220504312688267477644021034045319147491974279641943104262681783667421562292050290265975843556026779593123051547816781107259744634591979378223312030178025711993677072653794146950742606592408542791068788346706078884768344546937155597996399726070331283992481088272061842577638744009808654801268248444285455027062217632458841893246844572005792078811304453276631375548157176361854481078566902296873659592606251082693354685182465189096645795277170607773714952934773923185672810577774026175831648947903436413819239015893741524035741038413771521329224872113565444655194522354273098349084596749029836111383537028761013759803026106048739394342972292047104796912010557758704367552907610103235147109976357980571031584915445107852881261591688523594009896935178364689916819152373288665834947004969686486493608878170825901592336744276223162250436895017831343587154694278853706054095824196858263305615144827019112001856482858670888705428182626441605974093092354099655482799249695170016284150685685153496103754474851380850860536015031274865329652415319383586510818322321647987465052212718063083742072611668446469423876628488882410594951964732430489487350086031457100017531046616460131907272824147284763440519352941778717337383010636486079339692291960953740756585516677143575351574903556500432835582433512147465814596207585966750043876376558337943668853133376544811626189209827275144418255831259206642134040136395667107122904395907751345131760674566890189133568130897277605595443566851285541719196669517215996161692278134679157878788590343657177962819638130443864478273946620986630179228860098231927229804798275056558119901984180671276919558756610013171330447025672324120913870414564895482336431637784294992666501370461010280189501521613842656702838658168653562986331743238298302718527211306981293629978905980003111746615857939918649760883019202978808733680312941243546419733181286548742427034719474304796284393029372325030157653347981166145340530350745762103284154649789008835618881571921430620023455618634682225497225037431988918808213741696041327479733926523843990639664409926721210904842787461093020054065964983615208009275806695702966114455076304441880820946620122901472808277899082857627817616952759569718433733058654410852332794559880764733392126979042923953231453282677791397291543347609077178802742764072823225017890608438929534092814004174553308369064634418531072947103495138540988675292774290959409762888133024771049220153903257806075399092298233598562578293813316626089950549372644084832346865354971967507542394638201696414245054832713707052189787384818679936572038543353381014787053855888259255857338805136298660459788893317139930041284121750664866911780149687981797932247647103897521433913252864204024238462119194897593569132586897619898779456234449164477012053351262685719522225839781863022266031396451618864657533769365141223457469885659186395632692183370757439200424485066099568000825107549060093548116846606146994232945238014101352413960510902415264687031144522526585446452754242690382562457317518595712917589260940678045189144650022712904318164256537762310430004386884019712298237906838329173562637378140210098940722202701522996346167680674237979007695794165414346093914347943902133116706283234919434908469257863375278417509301178733881273579794019940319407148094498727901197683223817054596919951521859159584832762598449000210263574617662744346078682314405651469638748398615639490063741155296119750939388746127222002146138269061202740287224449333965874156811017122133425639066574983640442939742028888587332364357210357105004033947859840228942641056240864363427067672618101432777839154667869781965174971189959048606958527283061506465755489804395866487803126664695287194901702723096548027122731332728902758334942611473511232771325079765515562435503865111476612688335708613214530032566070732799566689365999877067516224476259494185544681913116227117517032427767377617323660184572596026953981797072304166200174387869468983673101443314007447800393442462245939527868867037686126106567676037233008438943775491810647147335932730738795141673272980817663511806353070446352320528572769319637218923512845654791973592308170599589667517971758672654699309621448621301795375303855405521701362747526020427134079178833541616304469642007276910367885347988143139667556434448904681512547538818444257443207641778355111538498859175771755112946890193010533178130907473518760282022958896858052968743957974303150284226475760609662810928194599030987595160983300299079094035560447458838772760122035229401077781113863892854609261281009572466785503763033406438479789442419246852950637936894591257782031082944247856932948323193527666105358452644525429869857411611745540829342008622228276696690040394100940987132452679876060479955152014203076999335121363518317854375500474521232022894864063133203598437938893087954767118211658055207389240006732793012515415493093368767557138478712261118679353044153222655612946351360935933456380080518019635374720478274257986085240222442561318013736186676605451911567228171501227158181287611349101596086904360844391716963617044143665576464638887779614214360398150131233888427812443343209495766900271845847795865715580142903385889278031381977548063323470887352859566189603368764824089490056379548381298898245587326588487953857040969345682421794953711456851966445682276132371252534228108866417943286096545651757853308782870471265113462210957589851859077271705538185100753310355287027340564302540966252784827398602632216692265456565789426919799492150003145852199107969284470803751507242734406974647868462596183813856731687518373852653927897068423119201299807358113062902901853094017274279890514213841298044592466377284097360601291745894660399763371846649102820802262551725775294416371135257350453797651315780664029992478333066487807566197765547869437292532331296028290475035921873045051960326580789344072529341996025334950224809481250424686741763287928082035610771866384812243093198519033218347804728048983208445266065204415965183371720117072219440279470517473160067815649359845062075177337527911532115549249634141170244383599188274573543281433623487875210088690361469174478209932798857763947850514653927345012761087932560793222016388931884620760725369789595866465696359960454872346676586752358146923019836380936705655494718389681804720221368352119102682438617596229558137717494644335020762116930099801010366426162647074043884629569243332007044268448515308529604783060572634412047254754816962200451202717761090036470741948714401901994355157451260255782275455167136576188202967031531023436092071115329681620377671158434532694950198775503880180198163656406452498098896969157566894981723701379513586337563591324991649008906090011442855851976239910174500977106065189370302729082616313300525604870544301812300582557880575137958465022628749460919858608699265494844980972404433962817144738415190485527940102667496582838265460372445833550360819920497783551223413924556033711374511879952401085008998816403024671085106708514715812329258653449209424373138447429853383434408715180606055651150948387334718565803558243554058066832052461422455606758602295876309907236801744546627060224789829147750340971775393848933327621604931673763103699465252318086444083243025324792726017885505272782836371278727526677275152204511346045615709926802951177040256434920710012974425990561509223923341419359409601756475451827531086474770374656451969588290224109426778473029896920620774637407840320137683659600859644393303517995814001734721187856648551838682432273659440343793732544573607029250666350482881399092740669006556493768600902937120030088255898236873858836345819519950709793349171781537221095025006483053466231540190756720667370313798885772756721747187805528974607962563911624750503922393676602576423493696863687106714999315595207063290379526200278275523826348447961371541442595104626188819186148923769093866372087487123199198151041416194117194770492290519201614159133040387758905073319380172202350738633388485827195070134839628209920146858261320485142316694788926511371008401371686425239667136367951746739736795526838217934166032879634906756801390375593250304939201193296151739192990442024818890924077232004574607285998606972430920334992843211315594298707708694022249840960131135753931702261298968412816153682127340887751573301963556788405327226320079042815470566714172982798267168289726605264877285736558312196397939892113554027138531981080207296793748945121543487404514986863493666370580051290521332408110135870891273614745697526345846990347837631156297372350122847833107809705034214347007506096829604038968881886545735189523985198735310082424283041861504392964263220207970308314519290714908790015614487360622965053751869357212040885434294474366280142763693246588582181609224451795588495609562691470855226137010748748856571737887504354179337551937909791841770403180381826406240723445163645977221725901859322287924381633982735246932128763583346916874481787733891243214899970303928041916398248932841625316048231258843264261678246926459073087699270055223413629257390327227610707897059715206003190111533015566859685931252335458539865509795836278527921141993736887936256636301717303639490040782392754076026778134588675065332457790536682942094123788700177894891253875519709009568118322282841083681781174397270626536002605291855804641451127713357900630762763128239828719953901626264907770199324687471214347120374081921184416264556253915615568183692311626945629471047265322862861193850682633850388637222921217449230193694072658944544352475736894056940771452665201046839993741439112889549573383027875158247529313248665172464911285596341860770398532797918863087664379439766919036609424077871311234401933736784514690195116293820325962292802242106661462289859857326784976992147544383230823232069565370420868149782667127201931248174722638484623766357829523594832924953188023972614144198799985615234830892105065238810692931687440125714417065469716124400128939245807807097972305262794180727556128723003364042591954302183867897885838352624822984839387518877238007805153579285040218655807231221057547813172028929253332098158513273368882277098127913093563491941423430417060159387281801323655044375672384218860224123426103106564872519485316789977067880334249938201846366909449591376004739392397415520883003557773634112011514406954339370882941048933533583258040336101254437969085334769685035231134703923836737138534525503290347457087741839671540302860388631230483708735312590089918410010046499044852845238325936133166185674291653467844327399651506457752788718271704494548829523674792811893046558221296665563883465963341798297156549187554564614359595032330899987071712351636322539785432018008389047291645802380575968558990435428813523317834534732728952351194161714482969365907760100241583906940475176833415677311659149670004569475842566064773942719150404354166067918615919517355279539175021841410749824627156429740573037361837138970075252387125253171629351608536369333368839667601068160730840580749239311882435029568171289213621375887096579199794419400686149732195155874428822843602940377928908191525496672210797797838261328040576625503237643478338747847117294907305778271770714665222172665144624717502379766268804167767128225835367229688691673895632683672009060585833343299625829020396923379826124086521608114835820819861090616678538366009214121195202481744905363943864381191450434111664095836976104575122564833686010252762995268214380562688740765161553585860010890398221215360706794713712678930914245629108126551784850521935426104872950841960458967698577214270648717572797071570097447727602119691537358830532882464283966700969689154596277267268273733015423070388966153063030221825578097323646242252891260973317271712940890157572824551226285481393453151415854091403085068898598309717220269228707024076470733073478374047694984530094618222193520345257964103835167862053206985330567007730564084415029774693894461868711796274871369464667988625105855144776240998188020398672526614065677845111413073368838557277916161036133972467696101328631512918836975737941715574985658406283410157575176826341465500657993410361897133504305401805288147462957679787079607817663018857529265217433861411894521079613789141208860378967055848008874588271451848576075897390012432157587456674027961075574598503231681957271939985344842145034877096726242016264989143725172981474070029841652126928283321508835408439755226202608220608984602130712431269996245929830641700594122513958817485477810410095027631638237110269887977096516097446027453822986570413110514244504340511328663613082055296371861608077213998996433914307575553852221401551613404190014710872044074312147908929243747668710278873782138435814931266829148720642231352151269895003322914078614607421356934952878625136361158648048486481790344873784271907635155653674299687428862883723632847224710210024930154265279562996633523011088082823996480790386445760711579290057327263535149820644777601605020136454100734487390772315634454624535286676035920713994312741338343708539741113649026615657692355550142021849335950864630127195250102893197880497331547557730276599547911253129597749297519497559216242990221920265641590206931924140141803764892683022261717271030280038136896045302929888695422362336182161995538511891141377487204026023121531332301369950330570601104122434911135291176967103066698851989697241357567278438007584582062232203014610619652224201891933788226130697238478951664541459364134996184319629422981971277537045899296135220652483671170566042948903179291367658091767664981487616916823077136626461041315969029288107338854483982493304589271757441805876459109955401481914600655213993787048997200186458791342913213937488312429420759145141557167343796262044523831148624340781906064577401596257246726829043143507683898130881879709153481182585686155279688250479608371472689595423280591251177513591605653338682623385459748579246568689868493465981868845588115931465102504630724778589873537029033557109813786367257814285932018770721731651876626982107314415108953334333822943508122487715335935023027284295334189801067091393547579093315395481482251645904792332724730338192367328840969873635883994378279900928243745961366944588912684366539137587197274901381432775889331487348845968085941945759720791851320122215104596955718725620142397205322851297133593740203256775166141396887748818488677989465559743486890388286554767993449252365635459152014603770197095618508135231117174271179742006842229060327816563454898214766347002007583732865728534809642421871991447635845022817601383252276338648167625557578339482921930001414866722950788383238062027055973954899820985526639979851018659671865362423387534810367951851492725174442903444196381987905140289212362796707153491634992782739829892409879348446680448316326288105849638343619700486858788819674491431648915023644117673488026536955526295374136358973470431972350116875031395118770141263891386501937536760781629434944543024376760620831930608866286906768295655195007414851231896289552811090604100618762895456003273467200778675380342720969061749810161205045593427235941651845384875483741934112971689368869209910582794681503609208268282662002406305627281462956207332096473518001051633131957702790249958899332636806074028776396671907373814797440734825175917845490103727312074382840006173704912278156902555851739103652854924354410674402533733901151001385744560638764303485761575070725769735065687316123258408087000577409447338299889337951465106712372341715693395253769139259269976836582149415446012615857494200794957091978388167604674125407406895700158468471878366292049080249401067412420438115039951845647940101229787750441130716719484373117790628357361735911289911501609586401394371415059977650484525716606299389106586275733304512744494328075078307123218333635668868868920376115610635684217310614759316227376153973557302363591758185891140451242566922056582524101970467432553178684707362108596456367529965804825486107592903653616217194143358412194426907958936463462214437591405894527216959049570683868485178381257182613240247505363302144355553112714029953315961868700399342993464556321165524894839377230871357339189236118955538540707931486554359548728794858773838364296927165247610470253114716360553474828729535443004689702848645235724482581500624093096018825986317244766452092449273142177362531245245995840932318103900922366011656471413752851948424728047415384994546343017691035459809318778881225585611144437600214043104127176342694290063343025445666648815033272238788388933428784982710665094690029974051715812194917754615781098039079093256021057688653346749854438472615417018394339188614347276153606403224862439628109926518837185432331738928101557665402752839664253723466766279516336295420233021599860174554610534736348417768798234393852653260943596037634409085301911645045380161072790979822863025458043999973048559067884099903567745643917055004057269663311169261682109271093978782932396713813866065861463532883902757917427525501288878853700536230895420881776730846075806101117102021051650995428951857337370784384855718808247960379801298381221773273438165758906621631191019519960269009671044000242361135282274391500390433946741589166019377965688517494771874464967083532244215604345336656654096346786111163351483913461088707076318770859129491644755289161018641361868272126553564090926088735429175848499683112457062404741837491849646674648837324261424348878057485405158244174946933478228856301920040028954804346808179075193627500749054599394096205151542730765967570264486968398960806267974262864504230575695271224674542652467143484357596006375540012945846255028287077797229497153837786590894851280581809013440679936609628840984275745601563839151472165081970002295541141043279355128526137720735638989589693063577824944765750588242751219157248822290466372687308586103144854983263520331094949979520062859818585640955894234339913102028655447957273242513118900729410977138621529703329003571320709358759970081455196250060284874817001202294771566147629068144434881744558787611260405996757310740533700790383121565105662941888207572549892103077951597284098360016723196506640618890728924453090408659773095778217167180973677690980393294989483030687857862865128697462332099254797910922246401842435459041349012796586445234879161930199274917005967812729970465308121754594080757232474592528220835798906783948455035035490888042331379890784434139069434701036079311861215437676439652439626625607114464250189205982357652370178257440388769793107279589820383483126503655609330868215319392805385079516451476544766966029322737352346013472552726273685856218698663373468433428066608515048607631826135377629551129563423075826271203861536213402448199269716080498719655927091591346044849890116385947180557527311959396187028469716767910482997452647519942368777546306753057841013951268871165736365347630912789096825705940646592585785316579186660154957426557430785657360134177655626077497799554573651110836764980480423526997178721336122794613129131231323562737685918413665176835756930523293172590540399212452155728931371934194829757080516084137961032143344439911503324773850402674100559837227260198411655130565978352471169489374265553688150922423060267036600364578821749214053449181967607380379253296784544762981908754574472323150958509135771352347811124577401349968981848035264924448383009885041463981432542664017664924004582019510880432656740154969329399098536097627495999402589833028646232316586398799502930881556111057468358295674142847203981380419082993649783590709411930115161291588268872146250738752744596007777601403443586832382662566634969920158281480152304482091447336418155474754288958848819409901932856812807240486351487142445446682574653727321380128679698184212520554430475521902636520128747161524019272612072493726267602146110429615129648562087320069570509952494931596857651608579006027337350640907419129805586639733442400341247734011222042211056797292987437564647556207492093020209619992408015478123432403730228073513497162957552007035593173935633377167292395867299465377951026162793311291286806404333179697675643879253752772464701780766383858306774688936552638231100628259292182114985401992794973177243996186984381284613159178024060138202344279627305806981326244909765323799779027736278092981326336893695611427384782477301740040266041871707324586934711584882891245126401149464220001437054586843403620509184703132292509660024725228946742677263984245425637879509876474592125916041671386598978016755130977572171038101664247180779950683276976906656430307501281139520392502029844496329023585746016628077274672910421389377264097333278698022367871696384110351576540986316108555937358389651139890074841838904767034114058343668687081618488312706569215872966209873194156214103235929777415012387594118701723338039765389005309436619309346933547874790966507808889849329370448609208773784470569392840650800919234281208570347133043294390902586390621524890851368056133198518596225730516138477315506596552079274109671305007753335762220051063676558053352613746437625936063294515978904889825081995487099262884977521863421963210750831010083662226061217665525971798241226735031769287597848434121361988090935553380437957067078764322577982516290379567414160461942647799063309072889055853852870251949892673089635878056950843457754442509202164988936527653659763267719578192302625057465536014448876135124898673270043104259680923284560186780943958241798129459936647927495898648962171965805921777125472205338156669532331760860248958891639899032320572077804731892603823564785338439786867580221255163667873755687464346786813305785307729976793498417075946000936355864869842496577502744451317864939396002034806566242580561774426139568805922384382123951215667178403009833590140175651134760171909783595425066518060851220800884396747001199873199624351744658597738077830814593546475093099226345086245262826004411085085481461983864538183691634827297944343845319026056722435344588988400668741833532415176973475003891298815753235377402038331127431159613276118444682128610490198413897711686928489479648502131768905375019825513618336594430436116608760791657809958882775577403413207382262778017547526581131201031663375893499587881572915719473780499229806079430665183668106579961889522631644603044442380900776200224932306812745833216619543215391219803771223876830110793014196406625645344912741432502236342337470161478352429634493848544676799083391732741506148190196458379163439901241170251672760918754151872643269628013155370113719933673219264200593932642066349646932142793470255158659298301735802861798982430078937539446757512083184323365129639672725185090459067235478252837885109680600589856526366593486102323683250091681044376181340437876837197081534154643685275462026654339936570293120812009224500540643229403110612249911367641107429587036749053705766033652273093923481915210635498862467483073820559519945051715618182078132109127605947750694732462340938883275598805778128612608038189602191307483429166619198832977914843382327876926860682637657978383023626222368058237899845511947695225983799999917639951942217801091528693915937261941047726386632008991431920309801794009220176077905212418472237712544039611990425421735090207301011455711770460312999170005693826648611207704701484592843921923580365126143800932336175082932555161983854311730662158252464484630164842731037370842443841893706668406117978671728146357147293860731098945612532171696808392755994503194484499948101986337085262537411078029368890290590841188588293692543915719834537882097884747112920896833900444880271956635162097044414259339296292892706741317319487107556660126685582550178397628275114615114090912475418349466299086785406129793782086073775720036641206520007032497686729949562506631072085589330757702607318383344702392209632340979738281083751776310949043260916706027047173217846606987465272893102234994221749996703003809490156051467175940933144428104702794069278966717756568713372583118372550962104348193892240401575453194031820655886055275141830163898964203496220988704084133562135272136980704846650527198613660893234195543064005364640493664931275627958324477174469060373418162957687559805041099671413324305871823399076848961769380883976216323403810612617592931402420105081677090330415696107715232940428755301449209325836831997872203988336657516473861154939946805169189742909150888210329054529779200684740467133173311973853998785742875746403093787583609013690230630913253561703074834492710792356932044972179717301790195326890525444544366580407810055441655491499839293401373864163413792112648351639905923640847244372337811807207756962581854580297436431670731870668272319718005052708962904926964189523056659163770852943087012613569690269960421716676509712788986631288629306384807907282432184857385063988045766823690616514889537040868860599858473390548698822582816556679423333382259442725527374443986342177290024372781555030198933258073338302753734712562288245905056586733597518493922586068461295743119198600939424884612324231928117200643944355734223303819263187449044101722077383494542950614120848859322128827830640857362861744893378140107419308291858182863472712448972981144640040250015027560232350166337964414013863260111062312313950508965655937236286454792672625876781286479813810020491736402002886006219871993753065856844051856100288527947637801345213667582999032803854018320115290441809449350596950415018337487972092089623868757806507523151684300370328131098380849563750523517506510248640487763732434408743009659930954233871615699253953381915478071703187291138031213186746698918857681526362666184123908434528128596324189106329339992406684067737590943503435428043441288162251729555208196768686408190039004517889616589187929357998455359374995028153542712668871033916137328100452814583724824615933217077951555835301791999002148797403665019856109451823723923262316999109230655048969313559568585077213837459384881313614844282918316952796832008468416705877239622089224417490038987628856561153630182298827492580761271208262019710176316065447556414111206664907465945341155718268983274608265198013296805699306359943360761239787539304378491316024402569914244639659844389045934432237268280868442940535724290669018694098589945035769692786641970530894075809757845680020003210256197005241475001189359533310602259817046347045407419317780598227633041550538665577871011934040505363110028350208720284451549667176907377907796787219297807558939272748068845329361603944375125196041464558721533666187591783226816899479525624391121438755562069245825765083170247608891309819862032147468600323326410113618573013196962026073236621750204211922835905254325424264345173495025205402714552215163156534664302584280836154253573474018968916816316770523824157682975301741924869130585689587222248241831656702179249470592332754700224212562620457433326756442983014646260325705254039024055422286335233929373115679730355653757776213410249669583535597961612380319768985625706083469220897396448186822760353586617007244102262470353224020227240667968444431424666169902025736700212359939915469313603884431695089266094519601500104208830590728548689317585268973764587863864012275916240568978730554009213262513458412536215789616929696568958156555578859134426154966304950896960451593526347029671490547579944917020030453724195042388740974093429497195633448444079565755374905927008482033490780608577340913149761424369626957184633935975044583881788943668413964181411636400242914773124175761345324296704816503934149931192175584266191760517863650910030559936039603139971722761812465769407757353920051106177367945183689538015685690270902029437872922979873147924817705427746222252699991841010520114086806634034255762970605559159580099303545749439975009455920713414959687401736825234138214545518874981768698556742533055184751872871485430444099138506588240588780655969031513724909572500466724393293949088438502616082410437806045113938701203477992218075762197248740059131124604104707424820374816675453008030717709930375994780143161640421381140924964439612885885472184582279283581260656498159030718393305934688620498182816811422910265213404061362670465690438889938710276360178613524450441089798699287188129362448352522936635991194316951317499685026214368397554145475564670462713853921605357984627924231262625371595722683573930684010714797264235960250496968886622443125269982889629695170391844360621561904875143142200743049833754862210415436076197831260534117887360867536449075613371397916843767747834167166604499533708784062891368913011671532445525011414576123517062442656160624628625235453558490803662207624994755189949119773651029826792319301449819639154379210042828883195944337689050551627373460598670545460973816486168519562478987758943769127852371151629120831085828526504203237059434929611853080774655015797541568088228972958754940236375527207841132176574729942749474112102023130122718828727895912834879711938513427516561937972877484418235679819879508144355326133842275367957170930201027069373673342211891931556188910033072387484174518006601141363973647647587471892470909663818679843182501080371070047399286606278686072752940251417290973377525647667618866822547981241649979122540466440567931326853930587789834753075607722396221066405333035707576864757521877376679314537276025750560266681853168713364914446469514670242854471592286217844189009039729705454094507787883438925029655637387510514448000100132735352930104956169278000521943668036644878895110888060823941225772421434433448079508797213250101889732154630447663263161071669156849498029895702617592982143249061967802877613169036038759537251239781180668282117366616488180046074724393055135698027051650028075701606113517961130228427430488742940574365002305074955534380682525005439414320626296226573539937937137975524633494514382024139631716395061343049292221008427341228559854959913899136626913350087823936791268179320077586373947864797184880115233411122589943581396886912555886791993399214142872584204335637183228560760974380173749179243255222197558073159089776538823183071803588092314704729695199993191531973999676839171177252286845415622364681327308095214729162174037433442556057698967767730903384667062164158461451916420304995785374586086438806123512986646115450303339108552717004363727116170269583347473776015376810354660927117840019035335468366303662885357677463517271698277576218561036618253515270425304912954312289939614335143775501769674080275618612326511285638052866342900594125320727436368998375583157637349018953409385471677953875242497141808341018389017769844880449960649205359915068900062636947328018721934942834123550062742890721963259306722043921985029521838986723340636235564465493651045850604068832876459497742084952247591714534122415751967803870991863384151289898464823116768011593373932872077974935988781926207443651355757624543107655743998378196292638043775201067998018440160125553482789024138315822497250406265945119123511251720103577972152075723412492430885554744969894895038631753225687922758279121736276954889673438452138495474641307412431926340201481868896951358540684377097353792512501605941771289854274255360578277330293317284723333230249302316284422003995738360712214302424973649714205392027400096272658970018558818723660086607530150372415395292675723882632455167151810449275276709034135708248479312043273971929902352657435645558621105666503547461302550052825395895122012834902603319982739661903382823662197403904728443380002008971670432202138435024376400643621847464740347521079576983901743394646628634905371760396344052747259041348327489349699791920745273439978359853551461485797541442529453744808825979042858118877524756032221106809508389242340589660118268571395379320040338929532563594512104139299111502967741784714802130015820407901723965921028233890897129963060297966222723863031231843752592785034720680563144184118998751223369889102970162873668266877698861241846681407686986907714177386527659592608879146008769235634012628159686506267977185779728263946153298960410984258344491878027631146131127968317645112418442702779794396691890054152367989139023511495011969991806568271895234882502768422209142461008643254500419604999372599828198877805463629476836905247254778357619858643094649705507542669921316796939388409115577436873879087140785848643942094146120720697909057030584271417577879066203853335783075470138355933288875969290017170462697146102688209831263978290698981983422151769998237093855458121925062735290586157035893108109620193425017592326803427886208738293351644084355425920542292791001077874970469520163960317961188806221128822614258398350392335448871094198821332937660259739348308095814952985249714539424580891558855121550680107628056726763784219449396900497761247023178159621730354245174391195373582632421797022049137271580917917212217635223260854322636870348779834857848373217914484629939081598656234144212052160442792447659377600861341400106227612627756259279999260189821288616735111234677013853983530271682657026189314632857592425201194696919639367835805733167261722958983539224797400485402096582273495833188599846531376096867622458119019493605154836292157909769414866691063809648207084548959535101812604597460209052142840897844934809375374504443829081265376872100391465088561338652603807915734999022193264175239915466142910317455333810112890152808069392460407720859097991621585997497918753216717523212671920598538681321166274615172341635791488734586550083742158820921814141708163362693521825971630696796493338363811220133917596627650310603654433923776928040635056120032058309432907785824241509514667710933211606069086112150676027029884420009946207584939388121384475452287374839577463136859679884880000151342832461219325947237101243655805196869833742745373902470796103852888444486913089248344549860814594672937918404369346242070539785182471388402507274078731306419565388273535591495775686584007350764745603394095833668397301623399926110075778419595258230040087688720479445837786226673934043536510772568822335838852808511871141440751545705131237155669019171527734046852908991907956248065803075897275733385415785242111835540846032356185813725239330181255591717820657037106950867247736680352382264281307673813945470018802780098751670512486517021172840779986309090945535906367856131804642195130888281679692282020163767025134756086040815617460312526665890944433217440965209330533901821774526306390308116410340141512856904992980524055852837629932543776485186321922624597385093963305509704107549791627009744466261988886870268279799958780589463450548125707845755951760024490043172332203982590173779309171774758223615885588048988655957964911545259062615924893411764420671438224833684876248922549037234165006671851095922721381288970660594843736461206243882653981384903833814262461656735965767228295213679526531573905528497044454657285803428414443348249667810330896804514018664528244318541348305770237859779679536618247819437201399585031599538760754841814240703466959680774070953095842754778115010394215799877973249984597405466870585588975386199266285003378948483518825835337879819739464635163161749589801337978578398287651693221424312045886163526346456531089390145535516938206746783644304836654620077551684024222903331424119574144496743690722081762361793063912617479808036364597864351237986689366327542292474256479377142750451037572618804787367153736632244988940111355444328603433336958276634091522881734771377726782604743337092891692121989802383031755785739128162847425696859483718692332799030465270931044629489901188709296786504867971529545006908116308181963199118369339202180058234805728405622440929079495999621561772453293536561982643361860595159927924155914401581362249540282101148030110001677192110042374954543188520864868588470376433799454312607449331158424360639611793198265228018687483247062553197553577132162521242573532265711231345556239512069841025296945092738213417916926089654545999766213095593857885660717963770510178120256610361146795217757294195831701686921947239307606645154567827538282427398761763626940095113472384379918936294364867015306151753310847737354296691055286924158143984950784303763129912488929910970158362454894657230435881297873251585802986478213025252066470896421992443073530715872291865794379326065190445253797216490863813384479185328993799205784942975880839570757218676802852293899042015135712617328186012158485578618518330839398743232946621208570431648727240636228297170778279926667902348373793512057784447757291007395476483681806574413756999449121652103229517705712886856504852689047131995208502378853703635831713331409011528472063252432004029804461334739287087691637980515608752417082227002067135828538180514774731742769905144144860874628117511261080989510131326787996678598644252836055158365503500531810998130506534098277827392347125170897317498792136556710072834131810148364647962415369879029829572100724601955525311831289825613185475066464079663140091322910840564809638194274221388318091927520115273360442173471879432522438036084442682541444404753917554243406073396532501683863889754637178108896944428247489937051952557786442158868620827509113674729149800515087420270195939864748002306437847229595155584925405411175198504685999933118554714447723218688385297946100981026243831530096016486998739702457897702424999735643563426654267552377503272880125324354089983101869533837758908998563108796309605720148850580746404473206007763177271047415479043309742504777947517781338371688577278928508785971700099173146402480202697145762386604297584132291213410287327892321740235643924366311965893337399321952089341590134837495000539875852709850104117637788974854813556269711624973036596824065181342401280017366893523185319500440835528928586462749468187713481130031444110125326048800924696663644238413713534796960857629670324296446376957096991686092721543562762764745005134376396744428965774135789103540859265400070681773097126614150255188092315049710953621817873075093831236327689382529920282857084368231181619716880940346470516061535696218301632098673436381885771405145410878848374525205720856220397764495147582625262055877016144598664194646078889890304375875529347243451902273844295856823633671713515065278108852084755989676240862909631477038992696496281772154823617355288388395758973034447465836712532756908318411069290426097017806871795012617607850674228349775750937164176828070055347162138348238076468749565791180288606120195541607029824594677486384633595800812209946352643441758926654469511231298084506934917039261873412149154575711147948443716780941833661637585299904697589338506356989990685065892031365524639815918668362411903415460029151761774356185287041360394060049878394733428032488060151984465309138113497322765264759400459311357403771868998061455525005966219867795559050601303139397411755082442354675900321901120649890735710842442099601014922068982574004664063451098442813672906102700453677540429429835061921191311835458302796910331746850059495248467995718764705215768281042873044135509920693052790895825113622298772035196487605879391010181314301803787607599700454625455366020397384021931570924745050427829612200154004156016865240917860988367685290350768155463291344494338717572501679847313612240725991935806043173912906809809387318761715551489447806144054625338765567530874920503451034081133887985751737425419678079018753736557275913979126158746167530538847253896586854285880240982378235154020078804160170135605589443279186810444818849902746942405387659052408692571695169608327334936949988202558324498420109926017530347569824112993120800563298437147323301076549538795599226516565452642802369533987064698682081159748741574651339265798447704514226497521106862566460513882981944405971115513915205596985803485179964912292207273833131305934176043336182816605506205079506914274469326839144409498523948146391500370599689256558900716703507363645023436341845873707092393696573638965410602176083131316534991233684137999473147093429650076913986201220714071819789115866336965024027703198030086598441883102353984679563880817560883815329765538523429013106263074318330954319105006492535497609947735708351273573246311527033105603175282929714738326730373973460332812718908536735164090810191228796868808479281864121965550130218223273671309291969509885450392807228979973729336619934752443977598719287323288852003928348059152111579286663117947383101814221443832886299795430211101884794360708871481815417736348917772697270105153789528715441476334686713894889458843831535512025338263552034969170397591310848110569399739586155093503394605562473543432131324330133294219816473082460813217553750248126973219740235932757827712509113284098594361695102764686674148176915882334748602734619622231238582471839422552237368555299058979072630519192703802748702189924630383421290336741977726253013856318033885378103782603851498141375576503146121852564838990731008508392147232365593995605097917919506679528916940251471347705411916882008905107316794117258908087032920610855344382288557272804260714102060018254127085263136048003817420764584414503599278409103834870066225306168207121302905446880195923936454378505109663322696441452117906521147398205936615126728828732021533345264700723465598227851093745423600239845468601478976003196954515643348864376370985852893443502134757668172683348068297067563042035062654450580167013312247063328969858079099088232094411520603130961317138449643372184381722902882994064588174378616385524265362718223947537973759231316212116639096370597502753119448842292735759158187993709878108398379432968966459226730747985092836506190167623099706815777826636625831835332588046475093000359494252384626324027925949721377844606859761732788549125305957056014941693558097643826686895898175709886165389854623855511564653174525080087686585825959287804435882825267091719303678454515008853388609830520805073032636537243451816595536777697631618164812376546852223882907946809376673958302986730808152641509521870185893571396545852988645807969598714194780632987926168847875371012291095531835809309058722094516836622401869004050037171437528877346995598126863967727227835527301524914295202094677505023403896424351399821409299073083874085928268176612635790515050013439384855987551039589745204230228524030753137258810583650676849630003782167185341804188419379524315264648051482828935127593547706834639385022178847448914492840782640023988709497883423313037092996037957179509274684818982488030608917255236324311706094559020645749764825562717622286829681216270795908420733391225525324257792276246995707456437798497537113661578874245563285701747396688697239705172795800611315145569588513334081412118658322743160291582655370790796351836402642866584687764953127992694317345992858544060549388689347214084878780490460932607145957071096193304761389838778362087582066253379924612725913489227849791499757295814734861859096594616014917679249576789735542975471801808601505222283458295086141267885536712731096037157244547615616161601633852928092510104905800123226669621641044267056855778632610369246242025720641998342146699685329618822855682170075024126555478059183999477655006277021307261089969168572175448682738859491836736062841140021113926663219220103390954870484444999799198153182900813331254666088802809072988818321355963053751926652943378982171756399669760021460614683220410000405639752339942137189036560632317350804995950504319584554898570051070367638449183751320597628547158245873826305726115044329482816420985776557274470137182844680122753545815336900737172405511287261772814851763288457161486561689736543040837316561998754389490024192026101133084019465782854583520497490126824547753498286850751221395013243253459856883621507045216243828236540446366163825970686211525863282623958828177350891645522278517143550507711085037230302624129373148044988190611398790882217114029378799660762669171267870530563564919226713020831225044121043575368836241311053310769018602760267457596057823948183024235382320373313799862414753358701105664629856568730585388924154880916698775692125237896672632112629406430909743683380168760757702643042734126719500172281468943196976008684344115668908084498506922408522350764816217669470614619346350679887834342747169019947085480600719173786388710866758674529773874441227292591794256508530571020737799759660581930954123301252423862289900521296375746266180419282955307793626080587167069350832851614713804030522628062946020692509656557456663918217708456175966240041900994940192875348418610138113081032771581300094792615338940429307591619288552836140888581915409348432343398375185895881558400415315125735211904701360866457472682642601416322089012918155522656659044511713876399538531936131742377405298120997518965116636377884901969842645486182074536100950040960694599265389866091194205047482311149006158578117506510402910065555307090306176200917095521679235868438462592607700231262187463021077736277614599143359930176765922428808425808126055853329681669246156271176164681570144872572873757780759089973803264396146046938553065673944566793624795593879194021380441296193186916841596071030739269215146589002317618025725438421739134235950955198824591406164431675043276724599458197946549617158072164147280783947938542259492484430391337902305746935724909523290565958095390911346233031930871411430616876812524453159996370904515670931467884850314218107957511622842118822537726015092952776673860378896305393376792313801247653841322599904054508521762510188195522142137218664416522973082260082906390011943009699248746373543087997067561116796556810196925885669860192077004898242209049595077572325540814242660846939364144980428961687724579510032803781495403588492032943851253725939558208678545639134192972946752277849074543799426381727943651532284111378178030290320324249956899711115965826985493479076627940326763643832227562521185376964867827290211848825429487474684143887841443682578876326839693365426597756306299209422345893030966077581276343023512598253810827567060473648932342849468183442699011525849219344192838451895936325030612115417349557052936106252120177196926535800810089590347559755035706804749414654261396418170807001464405913411239784902816529115229473540664002748424147148720355533986748845710292057177170081214722398437128034606252995317563147843010698533914818431487757579643161706845525852854018778762968619503143203518115373776423269959459492504759618648605380217711526847322265080664178043158756098655220556807321133554802620622502908806501031416231146134213048315680618229157836989373514752382852144422581539940215553529969862291261522901376048281111371281859903649222889519989190112930077872587688284072504473323067270815865713838695875216632447530786291880364112634649612284549273241521973727680713283952309088465907569425994181703345875998663778814107384546766367205979031423951915907703745871377188978976845168500647977472402309962749827542203001442138149157619393705904341695724355617020282287291526259633825868234416855898501328080392716690195015156029142883991044640155666080889408397326168163583382415148985251446862406616999679852586372703864253668983157954480269426300158610093691572415941625526334361401856178333179219311960654939279733711807274672592131263920986170413241612895727349931550111527315820914154163945306915697193113819824363680578668995821875994893615588506259510476858148477356366725965999707909153844128285050733051203299804799826719846821274622100607929190597769738164560314328061300472201048723664130764090308892425674840071832431896108698211386017535048236553396898919720247034222946205373479509627656866283216548776265454001697522054758298800490778301716353626095328417418753360208628983988977879750993827381905836741778555841180110881783215138755398433339262085836546224272518788998023743170815659792607645292813237665980414641769947381542966906164915173102430662165027746760320992511476680534245085080403451562688471367107620557106400024806235076907125623229906574681717823381030434985324543556049643959995365605834526053043089706135349581232400742220209594615757847909271959970892607820233446200416375617113280178196248212209614240091878885872920096393043473200428485197596074162390914621869282588441540161894494396570405889964156614668925420787965352198485429653567344823870973206621866518555611850143661251690777813765019472674789084875621854685883328396099849459795983574822503098348140747868306574306387662520442426347690513174991944293926729242271970659954592721530796459297585383778439227846048554038269911082924235412614426152896218294707816419922216458907580421875895137128203353379544304050247833670898271977656207489080013466738344710904135432370467937984748977853789762826936336096164088127958538762510615783014758874882034846109068403085097531799404937973395882791132766362484219920465848921933953271621317474528764359894911861871707861148031153589767114493432863855161949563014725457809062124463893136243247152421185942573459969628936087764764194173466968168334683882405112377971716184759177904285773444194682718406406238052488366083007799927073063998170778959476918851902665864044949706996170185231528205958855102958953851145491034437430180887306925373538161587888469144876447037812728138625757826093911624120211450634477827894954453913575095460376396582140854568500994034218179242806251934843112424839986057779380677927472324552198271600761679063580488612499628305231691651603502604653802827972653259132361803946914705049499384428369972931148079664674076027261527952919759959530630674655913133708703445450933188540195466125354725477307140155358368185195630420509743870823515268787906755101394187489269805959804120121789122656561009991515170780746862491844081188609116507975967351274289184801632214780382679254752817879492278668503443125491547863687486436442917513021193343262296027052295018650480386683734261291406530238917760396347909839967150023987195351739577661634387535297026697656679694187740452497231800143160679999253766748670238634360969662714510133181891804471413785635942619310796650614222254712432450441860426832790530058983114915458063840070956918396624272965191818661364703156754599005966649847027548002337336735748251231689580903592747911134679463707314396160711107738851541649787705630263843249718815596518971401592513877571205483546049899329204419647797177994880427356442539765182939131081069592834564103853580475463552065288231336349463511614086730500629206649191446822933604435536276162634846045934613436698034943479022377417567687990740208502914248329526663363530804755789309743001564964659398727100910326340610707709889987537079101517438453394272271608736531915418069628107136642245195360504851974587125548450887750433633195295707687251438035278641272166416833832133151388244097776314651910121423855027768842574284472188086621736741961157950950555792938108260152178688247812477611186502612178843890565700892047624858636936117171209823548151039205777906563460388337486601325615056885088343470298757951056538133266909945504488386291172647128475893010080607757368367512296475252795935677367181338617818298547167162818209447865333303087964427081577615356342305050306583027529019707684560590788102500614002398143111379995247857383937019901904588272750718108718445645510820807624004773235896101917598144336412582432727225060495704025172717843970656274913104972415453208430088716096861842113919441433728947377086625387254226145886830290765873776101717507304046014673514836552478231014022420795337976772031306239198072020205744759712408127784779742116281952575888034993948065879370588386393279423177857090375909401970688596610058892877276790647123741917728118455421125515444195803152037735423226954111482462099608275769656484705904372340610114773720596432992955463182314636986632335630317041410651645834472709934920596508865785633554304583245689217142569852975541122668249335884070525777716461782119891077691960886203387704896378594005459336231204903963139147036521545096342091107381097595952888011300118254910664022428333932011665979940335998047593263089298210832389470670773959506564045673889693700855593327908837225358402830103977489774000127788524482838667564095038402045010103352903796552217176782453874413566329161619431176499338378086875432424308149772058077689396826217241359150767070586426716951103587977641348432988960732477508842784601573312089768413122672184022612818978212640172342453737622927351907025251084922450444223278560438213389710495739937885780912914800755219176923286399820703671084345803018293246788247843878578115213619877461984348122525370751921120696629948411253588067504949196896947809992664790070957528911314261183035822816265280397415734728632594612760278617490512045238069782719687047683665002285653317575345462196234596161708851119657140368937641857547460333172660178828964129401887720955676667338902840015923421246911980907153971651701026248966134365762362325836536593555048855283034847224874394294980022211493382768800333759356172654711898661900732619170390424357634023858412829920742285741222178431682761562700018690860388942632615700461600762366190195021598807885860073613281281898199604967550862039373598191280126872285683625963136152607383620485506003593855060052138080291181048441543572713035108734105872556879584921208796012395985355262875590060789013999399494580494924101729921022392935372857233934319088209739936726070188291615866992039775371099287352732279659401493835246990562423048284420696936989748051601808070129544821367366874853032823014354113186716007435029833018907859520112809881031800675173948109835112499812701406476829004028190593526504016536506242171124745497589674547327120462512976385080738761151372486579288355814158369993225996144002727977790774088449699738989758449741082542620699243526913406315532955200419054087237708942146726992036089990710903889811314544339443961939989084347623566806523301302323248550782278776474229776997315125519484295008850879696119147971676817563400620300091336366522134631266506020773245153865834442442396385753885640828083096204378091646000395604272923260461730583252635827685873127875511050691976015438954695757952586912779524889427709687040550448019444190932672094877860690161341345868969939022795159000817086837138692359591581503496299918089499443792378688327689089047718475850355899524115206838120663535315581558516574140954265992630413579423719263344535066471479649286427813707104721249491408441535266460136365998634814715552355610367481441745137201879997926842151909132184474008039675234368845218082924983597936557955856890160655022921628460326703896872708289174183164182044000596680044117249327380925524388807305996128928728421266850149170508374346144835473938487642763762935506646724862767163027219526396250770973293894698904809015298676261762515756036570345314517685440985543886005131510570224751230719134365334363680914716600163753347746658708369599437941899093526145337544437207481998423405769958083236262324944856430269060562684835135570533299071645488208436817389062646639342031099162322502447967657957696317789080751706285925926797121327449460191185129185768120349967543018372159097294312379454248039835692491031223499663218564228050616500486956624457073097085703194961480370287327159428330327026797533678778049989509916491021214363745012108768747169532860967069963217150420162741366452910009656183261345048239771565973046356747565209618590834971463017685457678692039792056343357139072789105454366387692239272872322707357516950677023639720359444966155991003480256655433908312760103872948316686038068895827760254060252732023078672968413140257429925710458951952024157331346679931241456521887628667832281112287001209342995240036550087400805595251339218993436595864659146661780950553203187801063213971252214557453436568332784998464803034205921414550544422746899301140672317066452399542113946277953360016460128657740845765991689524030612689339917367467988939405894708043088379363092266013589664315101369692170448189820932041904788588419453241963973348824967849404872839183309556967019368745294278018381045588493128068489733359813275229652325426521764456117648624388579358079228695335864173520310059833308915390937126689707585519782149632082076692189734440601112416913085755083733810626593363945238930170811892483367641102597005662137887557738364089445343847751657603730029082555167908075691736252026329299639972216718488698487482879626888969622571109665566539124717110967257022770660903735429425516724542954882434564694814781102589931294941739856798458618455435625626459465607070505379955511001767304014440184414448360331986329670377330327384211712709076139073358262694187208942035173089475454794403141383121158917324459885671741040771585403005873442919220326608142823096721339714174462696409169720033174298645666746982916151570706759837312987627259836529612480474049540972385681108725757185814292777149011951489396298169074219316820458596924646901228798603445782397033286594432560236309938900889424846005717551529871779695323336879081758246795728140835743421450153486122483502230659640650972420565078713884629526610470443393466512320225173785853539193349016008309119124215987122184925395510826689756153147712167959300901199643014986937806432921382441722051556066454217135061767519495054301923761113828380679420349863871838308738270243357666892261439333612600000443583639804519338072615803133730047709198924832353112320846867156226053107008643771510983109668564350473957514025978971330894339760281024724846169502397287203892141838012058532521506842908169789044019918101503089437491553977236593829889235219681105544887737259582509644928667586867258830079503605613713523571692664334142131104558576431526013258657335801960669246872551014611304228741923159228196458682224107488334097957765065232615782427763818487042135244435945293161265645791126798562505544165129505017947390806026821699249446369047726141199863190575810491513202792936300512547154051975603287074323526343418356084415738443990329397776785433525914608954564232859293758356653123050478741980888327551071653635945001485381824237769803935059328982240392082073868741604548875013816621957897530874854025481745961222028694507778155944203652947151808915162241893328978554314798672219404980492707421104033140238417655470001249010293622518636010558449289814053570442922331852960157551168352208284243831836836942034233421427984543455372256571593466604160871252972101683790331345906241769090359740218915157318478245224220984493305522925018015517040404844918618558581656334102322398921376115877084628772320191873497711789386997276845996671089259956623505356744668557347673470934494513820143054501991992961975646452577502629129533268248819443605547984591699609585180622008965597585956070270461437601746319836086275253211250195163022483453762831591485413932689615019059377877150047446921255987299361010075787515819908245411669855958113895997736992875915920374457146173715467152657996080575432984746187090778409625867273264373995738975146867136513688896324270211059100923560328881058130799147285284141842033279884218998005092036560365282209743895616114926688905285145472771210005607247187086087294566663407782165174425952923170344100437108387472960861587755413812454610086627106356620111628720519892360264708219318566893618481508030055545391987119591677794306779333711054496260829572173703820216730889429960345315067015032811918366887832940592654461839664432878384479057805635429237261013646728860305170376095682617556052156308305001323003746698154189607467639730878057075775406026237991848305439043656702815788017311400715809780164193289591200081211315046196810846502872083026047615305372311426079619315817183587049132741717125196875184407839102403426077750113627872899591153010196422005572588949661255842795014917825288065028472038189822917154696112817715847449623658332353674043920869515694175387989750638718637740463412857466252920026715533882472312655459726717787911186586986591116916716373134492894934690038369369846684406676470703055233659911033031771774041095667634978248915871102952078101098791546227982442168231685081584763324292524485847605597431749963563171449721201695200083087624704442542695711841319309195074503778716846094858502354372737568011288025239906810841547856930880552249403542616644333016603244807867658003905893295074231246935327530361342378623053591886364777092109280290403251485391630574848151695682994949310186016917897430297719949600180949575657596563973151522180252545093496678549833454187670180706811892788656495422604217464435839481944913030295757449206412130789398494691492158542205471985844648263776215761617732087779001352361538987296176043872200598320275047854975322147808898990713047333070199926338204453310992963990430704519015830719727418598753681411789371146853768532328547442410049979733328743033772196766882700044451459172572068524686109501184224558305373168419550898166507267051940220065141515871955847676565892846279135619197997447679797877981446767207439028095196268507416827390278780448906067297944315588919183525183462389166327954106209956157174346044580016844271999951684437115655919203677730803835589599774929855930765215772897135092897015961499541996269744232707944600377613189154095984514898038277431808002465727710658100612837344350557600971432440898932035479754868899953083732871083062549042614038911666385985822013244295329814130378841356237404959696791814302662847180661210540050849610503262105929464477343208335070849500239402031232423884865497671566809833091625859840051113857891817595152971218133576054019347479215613954906369343507409078363601031417058493160112239605159395784386381186035638502511007926927552053000577198008648613854543894903403427520534246659558203706710508075192346417471135982345313338841915381261138767367714524473604448284552631397613321053156433865374527509707873232206198082124380952017421828044781960467646551688632308564606335602346271862833169791816814226178130656214258151158187520510582421157953340706892108775827228949395098845791024834837204795950883852116734486099599734006927997888903926515642523933096427522207339056612352711957256810337771333937468079324972983459722471835267971830122495031959460829047183862435150875220468770150892070304945948002827262181918942962397485518899358028199300074674264854812141515712651241435270091813255377177253974431860779526785834666334902091334873493394871785174633476524189206782551941881987684372127676862992179321314679601104147334289379803802913714726794980720012613543059456377407997901507425174853279974093804721828053900071242755589527922798956781891859835128353335139361500689299390779101012043445429951447562846541762942839456073886170415661018889695144075530112131992742710503681961651492643261359525763404217576889578037314646417321826972754889001230571998321776188042375490873397842788650506005549338182362520529021119171611711092770662476975978860205879702008078657724414064530304258418590748155921159208124637061917782598936202699331274684048820110359085155512093260885046781072079516337996645604939195966915372217387659323369638154164115354978083691083742630200118996039635773531345075723864777335097772392124299774577691205526005306348029274681293466244234200812070016622791466366728676667633031078958321073653572604265994773349718268787832643116863852071599158899010343745971544774806611984765360412984598944025367202556654576967457503170688007418643254304878536344085703478164759552872173844999058892443250009737842697400593830704771314931660189032642397043023855921483574552907547744804812991726462074773114724982648607996745509014055463720644489001664017246201700077398831124863425145188839627174909540983306716227515287127793044203866388860199928753394660108697918681110527189660560062845262856909661382722112008631491365969440071370938346912111890247943817500576970962928309240445703444267222697083451782615332917083792928369439521514287677183236717241003055033235149115881739254485500045623523169119986137429214744691012710928381968507304605397421539995736507969762728848990769435729512892617739398098505718634982879505422560796499136650229492457840117082207594367632540279792409192543131405568416404042263053997172196139116543595419263747277857415169540759895122336441118432121149993062543860265082803395652035517729349508697064233526848898455300531202034979391434565384905450044578887635452608504356828209017357831739489202336197576207183776323081329843622431026280132707705831331405583367997871704164473896792957915207830621582266794825595901948358561675935775687263622397499137454670413033927920493074188729199297040094008306904065636147907818769295890036383865210439362622573320581053832216226064633696798356560329508228346976713551612195040013773823708832610883943715967605970033406398619918545437334118673960153298265900302838308307456832745146956673923714546777503575053319042495758295838191306289779350859833399289347500594376063728252084809934155429753454898191213029074612266267008602800284125140464784872642824723742417283955542203263202431290888768820243617972650303450026528231333507511133164496569880277750268361867889990279252840939306618813849962493260884455001937874643646677739322593112489442354050427437145029241133965824879166341726949524364922160764045650660446349934204226836669642738950910833760426950432892394612109241614953937605493595050979270458407358413571579572482556176233234449094099939121963913212298214288465711867409719294261691643918377679796513950032700747839907631599659090867045903181341450600042337750703588651735930327741514984455212085764979146378637476807095957874037524023601716188619698273385170184878993268354254541673223408195120387910322500454838594847618693672871997749902038918508399934236200233842621576135743485722158090566358740556922593716002194212653556739943405751414186519751426340776523500265678766034293846754811231156809017581742749202802317120206478630399807942641435823454120611744029744765060285231626188079651216908501733822179346211212900177960441864072511596335108692950285769139500331582675665414261322296877479389056521770244799080747832189548084573714540813297502691910245953187758929957797824259070609585572830285364970247805519349210909318362274021461707684297026809520856970983609673920388939741618686211116215752550069289598967644105686635969107609227209447724149339708680894827295526029025930936058170814329756869848129113188612000309266004063979334942474394326033157385207143280327379873892334054131568512088586636996295029550054615176909464193542520723535123869259925177156623594237753696963967348272728058025478939572293475751727568498400408717446241671306227754158727613393038957618697589417313168425943940684535213129674732448479072172774764456085338144789652496400116955130260087123272004629502176894901326092169216462714422093974763888443983513257399773803003619977547478004772550589004230825201426041946364938892259983744101754595675978590499799497809325932262802703191355725784702589726580277443886922820445597263998566007316691971863456302504737097361120224691338128186003453510167969532039844791962833485315327355471726516499583404851047796980045031447530474446039491015598120699832519108681094683002196613049283225158279900987221464786538409493887192519210871879745414749502317930234640541638915595556815260984452558843719993410716519889368002277819608012908820033671452218344954422191029399768349101446903076659972573273273717873635431579498589475457124141262715809984486480906212825345241701790391969100719720794648547955894884954212573813847498914856317038350575202812252188436145867079789483071607891785403301355794826534446051991388957215296056207979261862312346558808556079317515255146727329747088525328302943084786827818867629551383611542906208024406886040030966559110489343719645472963551760063636838230748300899742653171617958910066420908503953953457732795755627317585910262376240129340539128597557826276949876449850194408122233134930031752088992035006817677719524018307824413473441229516326656483135232594571283506632828501638365838332617050586578970894711387829068468953348074403902319459279709993083395009092532109553693589296242950542960392932117861982454043777337147030882187205522766883220823433094209113404438963072536342391016174422749209056445682724086561713630237019139529004929393100777487669717081269652569329268205726599920640515388744814433568693271766037445989959218720193957769030377052966662001954643688131842903246674323069864516610056857260075672846334300708071802512861457594818333252298507755848588224803769698483576494870491980503873801436950456834734713610587923330237517943169801223163381771320972911065612847410714271788276018370848911534284748929162086103459983593755382645557497873351414323580573687273614075339412119089714772792400509678021076542158387170234299569591736062329593796466594783716709378265540894245006011332811838001420252723643420778210254723807719210974949749202063592556702033640610511274196430129855651511235407145165849284673317240967810741305759487089091553060083383226455157478809950776811513121576604277735836439645729446464094135182214841737266636286695011414586764209442021498737931248692645651371231885392549936252280718811669331127744646537561402180978439791656538935735632405830276451973767102389821958496083030859275705993685431388000170610231932483422525122509614141027401596899261510934654897784740563610061566575824957267683032459253570041817904888037083684020951562751873805732803088058055671185112401899103189347901728394351764429504687846607431456037321316232173057905462741472833633094316456208120973657052866535638967550735886360244180487998646764448687480282694490714883565688046947410902224849634665219979911704427708436582608840648790719772579746862268579920140201155925022274727082659235719758132634561260470075373257260485748433219158543070314473912116301088212758071527990453144781668724765877463693942840264523369828905906245914201468824845658824282477567835823442305124439191862929774704638911612302091384713787733057533170760155913245910417997331434356836321988520258780033002068798037421854038261517350962614925947914498455858629704305103158989418326624423702434636488391436069586898871724063195110876639187599099186151165928339291997439216787042679121174145193809305457628463512670905968136167672488245165310933343644460310556744926115089249171358938647221934794784807864649302037065250186332101500911757651723909624354302099715415601325143128007793891234071578872605847099079173155841300745958459861930812096627898746627790431748396303656401990429463993315649339337674872497224630803723032352954249448198172162839331457180989556034564161115506754963883550296556541444628102279660315434934539974728623032838176328402470104213193345071203266472760393430902971654593281818578188644647063633346883908999342444214285883842605041988312710131033872650826063064555186205558577960120703096259488223649449826690325876560016677922509005357633057675226612842934228056251069341118835919295750504785383542095333898807883600537220459911383180796492390533641605259864583853408335103249396215765938059275110619312052091539908052441857126581155732504265309464634376770563144921960148285494759317369021281630499746887970774300762878616879185121190649389815399202820849532057092711419796337437199294096469435599313432488138042907065593934250663661293489770057021322570870904638204068753788468963048381718622938572442201245416145761287154556910613246681057723922971119257102084284719547627693960627053904014139857131864421281896057242365847785204715442992695086257226402174810913575286665003775053683403117648053545871254748641965885750587753583960560561536655718635951143576940926050525010584934490572720272964448177725777361987898793108410037177753071597822309642477983121373951535211232135033025276648569320017767031655105175758601551469231651525813898151544306789584282606441780837530036511615708109512834285277007949018264628204955853577697278726405931435970374625816832848533858500882755208445327475752301555499455033179111902313967752749878292003119757270909334172357478706775046973005228451993822924139403027783670786518461994405655744754281276789513911917950510456149941455692245835211259731560544906553692818556659353921742325189586051749770871196169995375225934717068210892809643209238145414742888173931774227618598504913746901115465122180691742323092305237653431572824046730565640803742659069493582700988828754490574013279100572997411933748421708121825278523094232723985667492090846612185781547017998580150257864989390222111205948093427173805012111097259297720566769914345908675210796484541851108490998919236216014636877166264535840811093248486321796522227473177072702342775838562174418635955902518640283722225755299751613625971341746213182626658948491243052128889546174140170067537626339587458421091586634055707164637763477542405491359992877366518878797457827347399738911227067548776554222650624665547870669258198570769952494619389668736260247390661360286516347211911638253181686266888817068131038071928212704692552132932913397800147736680356198827643526760314648863885852694585529458640929370881984944711608803237254324402850690097468674269528171243702810313414695313854352966901196863884779457542346874043866401414038638025215134996569145555073316506167636771634825571884433802449439499765914451479088725019490475773114377347233428974948939245710372079792028991267576409366565180289826335988413711268855551958105172829094941103936903577683797301562453153466386136943849695891607324171708821312730569843343302985537758474315364503086762838464449919687290445440020375290069627250144423776806099645751878172922848620964778728845796644670923221397511761489825836887065402457690834068624111225346518425200282706975255827676212343116279337246098579089071622152570840287490753686548308454977335113653755419826025737959676099778041812213437676908737962176729965216911416579364795765962710343575745810818347206425175976340965448392889383036487116889371094182077515122939694033523505456442316394851269266460554656743494525372600437708398556534656163033183165404599115344834289964538275007300366163191295745691264720007024874504930824602170476081330075383849199532320671937543582612097315527560287344270843913131609312325466004311512956661779347457893639606129367020004901884153199538458171484742090942798791832715122078235038991826370234004629565625608995615352379809428875895487857274398877092555771785256337214347856251097045124049243895116101714210278193370580673345793779712403990041326872195700774316561512784306563919454842860002642352717096307353037929460070505509334159562702921431416311808379612266208598354391187914442777892004332934770156004881118124034648753484645845708882512085113259009895199027202041735936249389698420504568835621363391734022394771830206022629283343667985819876939882201369134448789353356201131146152390787469536923813830049815295394758207447977635560502821394275232425872280078962183605970344351262442726553005511087313327305420018996791388324069888575012205541027846761962331634490881019530503175665492149571602614019681839083283012964744237678033063601941406546372518189531557023700665166230628602830643651696285037053694052024754299109323362149353541668299918459953693890387732721260325563557915971443401095917776200308872372170595505340717394658607992687942421029438314370308421734396275155921333374084717865328207932757739232527843290486380783032363911992713025057122798849576681876131518902981635762994856496055124466654939853481854063907096385081391919119208507745073334842890208236926128030673260429504174944756522934967925957039543948711662623549127976034488461205633240812697423998772045706557428375149514721567814568559479833779898871837481124998615744072893408837998746238749361346276648697673672054758514142580533353054575867245935139417565835276035809844597347589939697731143523263276427582434501814314917550505671054347993242363242924197700886881990689759346138901942007192690867422948766942517309564302071944670637109250405544270763868882777542274475873372651181190647765342543218296570917639443382474679559566881304963833529527798244883166255881745844048762858976228492370461025652834226448349411957339460101638708283570207042413250891285676491984294586712679213591259062041568666633628541614567288576438062586077027956372203093564945497933723725828029451563964427591873675939390448877582332990305135710854896775914970961120983118651750161478212499851828388941213671769447723090181543782363445061608456626178034798922564439556355417276137498451548449018980772628638227821528442913799136183434327748465581896232147671387137741518968243773862909053439999439316401833751081830500117959715740109840799138811876178899217954814675234073864881504118789724835751203635730812784562454320079726434846463819962049433116191646462793301879251230016676909686674171453366265396025757248705360165728581644207587227956856973440741969868687515047908542877673027697365166719480998171375398543714896433932783357240301025546517131902287933456507753424495509517154489720546672128331476571542070934944284927179807946063102661696833519263871945985554600268031234564424954844561906412984082078579506041478314700168913681589994840255430694225036441498216377071704007458711266830824523001439005050738273086805977552168785598119564712856884327905957181024692436350289645033204607376010075517205215155234095735530682982259552020599445366750838603874890188671182800459299621427251828687385027943254914861154602451118125748174077717769312600873918195704030896769311565299398031835856967778323621725763338487373090127591478041435517557241414853332017860749532245621869167861568592302775828430853941964600373739174022836458413686302303801682301752714919248786326758733166128862002783280065997841192117846020004248423358443604264036598843520508427427298689300794229275783323639617190802503587131931506245074312744537399654220455803539302058405164428814498412232788185563984204156427636716268226966484053198235615274017556444962452978408541322668104979476789948478178456761894716563724954819352465834480155857383319081099009024413792911829566359835299113969034997186974193373017040834114143432516571009171292170439093547790865258575088249425788991207153621452892042552403302039226038552528612197678137898172194009909986754597681176834865167216869775573518152466163542763160524462107244171658352759321310732501286773089917073154096074464058635093448276890683073486990098670149669066064421431420954201977580390956705002081419819053178533842332801555258903720469185270179466110387678955720048844190286720564543042299382326420748540080952874650891555723599018984620290551246157002049863540890953490184089077665929243148140306343994652905463495150189894474096479069896634448930391170762431689143830549601945740584964968908769301124036263038874025836872166171347854993837864901306362848239147799594032977617038513509908787507467367744862431063698802994083684786471078256183242879450138612047289363209030411480688467560509458603314032519182276813890436855574184666569659558866272020369912251728292855394461425477154554930794808509745966554126648356927663146139731140463326358899039096202059222000000952103293146371296531722424957837850156958921710419553506866578430901090322419570293317311835443237277407124234856601927656617106640827193790807870821128857694580777745659884439665172246319854946943113757792816838674905042024865466434147331824962236303893073478360828777897320821448737074402270323671521989620990186740713538360937177623199557282397151420086594420590524819477532295322237796538791954830947870772158750176190990395956567788057352615367026387400084775287518019234561092236521639912732561124654470132179561252200560153172086588748276883739862628579779284079583305345495639132764642590640729139174658202717586498222306064413326527289448688832158878926828155837588296005828124234905155255090202139204423666100467501371364072713715682418279528185885402213092966206981314071097477205779298677095035582302308796163364177760196564355398460186442852294751933082844101981926671749157733158613480384068542423907141435844095559419511167622408054408146206516132775273804046494450789885449563998963440852279546032232183444258440552649598229362221153002718902301730256234277165628450186133191943795576931397298809146034297900698831443097099467365001544342350214144728090864546048987978491598005499584095972395561346076146130084415982820161310811501083657419684746869716190948122314518702368286769281443120903113642204095045052042375899556129627963210189801814664905474385124090651239130289990276490517251638419057880481588909979001439125288267037401469723645828489037775659179178954362847069485002150467512069256132342827920290593835666207316703813195865967094365817573707831376000098111814879258560059772045803991180102705984174671701986975360080651243943543001611472953600697763070636222368522047316217295379639651218988145522646176372301054368747748914177026023709654477231911998379978784930909934326415701848132517847744082811164570002495767852818486933748304734700917207621755994030393112807146934647535288112975518086141924151088597295143959110520259560927654849474583673485577947770335495088143729439517279625257320688025148290298257590172949599841340383570645864809552925166975596806006830568939464528547501820475050047059568915844718171252000680431748958840918476374170169591989339946466615007762610252343087618963424376575698609046498362429741189384634866671796153492304607122586924965978726143935595546282529509136662359501364058000613500619079333824993224191836694081752684071786606576208156966843340955243375050166465154344844351366936961122096695239596517270399955678949696008011045370564131300657195086548280844709349387219000002877259533774179691645308379848281924787738977285879538916328310772109427521508809546921011992432581834117153088761572159921870425904418135397342956371523198474439028391809146859815312543192066771481556585286449842578210201161568898194580444758276542813091611206569208363624819855176840694768076750708258678912153407458428612136064011079152239376879239743843463363335073552073852600795440712757846287043603266894355370793660174260571426706282951119384083860231557628489178299544832615626038093322622177779677179781801488606922588774674331751514893124219916408636779515034037092227429241824925685622149985351806201955224896958726605414763336973097470940131352486396627271069730682277586489996361625220356696795028424188090004394878010877536294353693789808408463580645959925643888625974201168944544110988245898153886162637679682733784275406425105548246825198106539216645757785282291059058295754997236422784436174331690680493275695482650716734031670575416760314886442228386440313194367024674684833911873791245403992853528780192722250689625184213728215216743657093958060075204986258141481378494473487180293761332043440397773737639725209426884011785322572633579847584339292715131827348622715415093218032057432824974636750520817414010063224876664876577541999263074453791565690247211075443933336822234523967320635185865539369067856329215075275333718782709060719202381983122475976000793903694017976532516602863962395062245850794265331754555004434243516695394186321745399575432996464903346534469299398607706567242196099914357104346525827053574578118211830394807961190767483076135039060384107836927919455060426651284213873433584053791979261092063409317043588155380303071279922401449257657374346252044316752006673434752079943507244639618571466846165179880931109414831256952899041873566904684375022264359849370169376219903772983571381361220272339814673531414099928831086718946697648180523793737685922798866359400472085209155454376053945197125907266889236228864204502512783189627211655495607897658357562622912244604234646664866664967153529568120308001090499625577422930860033353325613063738460240273062309965969087992869911615688187435298865401048407960718582276591872247136603241542651422773271053274224531047118495711740076042947920885144337322406142942868571584068744830794156683335718406059525982058535726928222208648272280626090513345447462541119314056533558150850488425361040325113349378639615586891497963318105495192128149567160837224107931293669410144926440764999776991507750857629174950999835645212146670108237878660304710898286131271643575656331368539446823669433729433219992517804487935418456302040221668217655234303559876021305154301656150827521864060215813558477268479755024676550737469627312351279464770943912089856835485277210678488531742969761773579466000047102504355378237235007148046035346553209469736723154820836631902018564356053082842631335762026836257685530777373615758117892402034889224840071023262794048208174205812050442668073682449361427515932166564391882109614482092556819223758621421388014657950081084784374097355620592668044142287056314925707716421495832036073636482331245577437335957833019592042576591852413654856590010588511642432622214847890676463383180214982405341303269706519562050436789735782980321647504485278372622602645445307900437395860105118329337760194949329689751370363718918381909456050374516439285481314390031111081148133055939736514259038058978977682391840554274110650093703974505632317872332552193846492705591791710576911977414357042730098999644994530220007847794603584048778968963650495584881597930316261749713034501165935941237395024682012205013656313413430371361341591293309518600163906506419500649296421483536186923473608138425801195642188527492763640621958456469511832305261028861376314887866748553123188162464608238853374003540122193239960740514321189200481159739555819119003725769198164879490786359297663004495451900416321558904039612547314708284940034985469846553062217956220815180712890551845037017898660115061110404722892229565355916662060633232877373397172864691937586014526129739345989346486317723508070099672070169882510986475485958500586112072046052725556674334366888754547873759234183149144740688803734819173165943422906153482445114361900632968053403273563448488969772680377291699812648734059992039780514283317839550128707538068696314265316104359329075176141854472111250508760502346487605857798767811787492203176762289944740109163221230470188950169422072584754915281161622129312270277297937768091503718489702575026507010556893771031894656605630494813946882284868109446586714141666844395043515151569218627007125134849573744067519574424138763232262862957685951032766143606553915611884680830717130612324538664762519360308871804508318173001780197311502065818645947258047560196562230162031058141002350995946349031385741996165677826998450634687781596554855864139200799098722029420327453137381948377774768114573330996028093444213807009342915296113737689651785665012324066677362839637721195832882742861599276197326115417354860615193695547324165866757647007808674079087429137898986238480422915534939005843934605555987267544774824791731259069233023233376474601237169650747799847005292389247626071613363993711892547793146767374540381113939605441159892369803400436040418352249251684553928883835230095395204757582704551964339032229914122142127730542138095204168353961438439562692037484861983247337162285436832447536485324989012834661256437591268082101589309185954222086988237915794510771538217354588340422108079354205255527806565567726808025411247882605104934314236343948827447418985253832122047094871333443139445524840692556219783298075148606785335611097028622186444306574445906223037110976345220075684460298086315144276619372071276067870603773148315113834694844987496784691355386519393338217124228924706356986475648318479567829306503005879567319524528781351213867460539548589156200363925866747410950683019794293418228129188662258278127570194997124428762781161060876331697064874712727854022686272772872948307223057261514639119600271214535114947019853502835300417626690536093520664545723088228057437595164104562615234117847011118338617189919019358820966999956519201846405225818235158903014755674143897817617387721439839670567289227333702670127799883710506214314538574238028138801671291010274692238423403743255888889202832623868547578030380398504289305440396967865730391402973604306794576678385463383539991615557092113021478517590640076459555258525759201808442642290907478790959360268361736284715031177524178780808180068218963893149127129569792302177415525141049531833812090323871488533472402088823652669231594628054000361008830109504292730228167647543087196996329051379304853156173224373675215252412736714471002735767831626485922715181828417433756902792537715428375851084218718265565182620029303031450747448526211869801250052013203953725383196436841742427692676807433889478845474550926812831001128378461103418450682849284630261716746210202437954968267110826588180785128841023186701242425214177018446465827100821198709082693385953472451091949713651635675744404484086990989230051493154683749561674036742913456409313152032696224484044678240335100779779282394816684339069824289438833326964505760796453733985594965250435344678496687569455142045018183847142321408205410437176837381879067866217488212653461054556902704838390989160443878962700348756096972186878972985199792302773699024578934394510153252344615177412851487097366146771353510581829537352790778346682565725005578400736544052249680380724847460044404719338391870470066061007086468724660758726731982267314451280504964060867149134998745170485931239703112907137951265464912876844859355605675515152501810433363625840921900949680918042926170956024396768082273686744620353664391910805113991453522462623374315366105756293143919380676247762786064245703432913111124034069936680390478320785941346106269384980176424381409244746550175234772501525492606831081357988795273846033854063843062801142169695231074230693851045839826020885979955831205089937579117184851882918379059885255272950775918660713500433694520832641853333034030421397201686364678713704633239085304318032172001937750192756651246969616770327856509736076850350844959894985757066838366649313852727331359775221569596185781384274804684410330486925043490435762736348052067594665861961393548092243418871212789682813565233014528065844394417578547358100119053603947632130448515135933241013168499280101745309697214740354430311006981394849474749332230982684665130846472208135816373672066934677301236747836343455802787267876357819620708612505199712817551716700858547199654970760764695262519472775738953741192497962412208887690184259315841757584498025157643414595108546153148648800223119103128658511307671095127948125947948700461977246836320849300195915895924359852353570533849557136051960527394292617125892673989185940803711307645774420127820463452474665382702954833918432315097581087061132294418797563915541982772768708657276579737014631389083075437152429469157519943952581382385046034470827727918958906784894058440888208117030702661028108803569341374892532632406690818261133840110716112641813774388766819585561704039336881675624424016173130411858724327971855939857123135499401015401706855823490214840141150055265980301055631470465497843958062914197595274897579874423466980817284355319533174985020533609453636289462630445012003621036923134724739820746658694789698936203432694615622625802372324492462496565247370879818091841072030039448459876828468559191374389413193137524608242116453507959253794898427599395465253731295897313892124913512208118735926141288154316979981376584437775080525360959313407659387149224485155734098709601947328764758566582532774605144321541088942798860358132532058532731150957782059202799117440735817985361620738654027605022849848981272041416205421776420574965396467664825649072085662509808169373775717425502254717277099400709676219121276632233129467798142379755980533921443405576168312387111400191583875936789745993018356001644078968416334427290796728921734375679565969942049453753426257003127600286377374275037384071596711492633341636036555811245815674138320816438356829162326792811132992703639279964736533505078734679647535072888343489177605523966543948564410907726903398748185877053377755324787825470411000990601834297107289797314772524053859511679443126279554535981397809433381819044781763244615894975964723239534540947697228187553989914421210861482942089866599372746891236205727113176239647996620686599479142298868988026540649769034778108089012434179875238772107301229009069937543397447666132832292955980598563946978878414859492572329416409442554476944464401416681877407683198294203289382839015087077224597692564968554979624544361057464336150873705627886250127570869245033975250235602014179707288406695964726637872566722113848711449253327286405278374825764589170540438866257666927478888863600744314158317266330974817733504293881490165581905357708212176769880265433019904976350380404682234686277038780928909945669698848964871919995358163519358325695608212637979084747536687671661337552454173905643270470401127968749374082522190318561906183324900971887161047513091045300621666809672788108530529448091001417148555360658285047239113292979824557439064400190249923290488688174434503934665414537614603641554277214980281041218962535594738591232960550289397424831301634957001214791085779972742342807047603559848987487154127815141524811659408234187257497468438719938537584520417696036350102289364296315883144654440034162126723138474769709893028190819297983125448161451714468951768865371845250719491330658413325417090152167971636895127736621160822206408577864937578704373227254262934311304962541082537140163173892663030400324511185465528021810198150519668261200875882269029290219000413536735544696265943260538343253630665398031892401220271051001199864096330793597594333686884689680892250711394205078141954512966709040326744383643299554295995240760088753681192378538576232290976612640258694257370246538242665579885882353007780180100626726424908242821189430873078276023980634107092786845799223989152143489507735149429577640734009459992195064006412073701777662731449468090546394605044435449951877039506309149229454192446297306893479872876718287046792386788045324121551636412634384680214168660864381213843782443662073349504888655814109096319467808951180341145018608834795844451047041240549844958474967801527164065244978362832914688446211069746333343210126495033006019882777407806284861656339708410035947057648443185436675712357072938245002106653138115603090607019079797437069787981041162453594173065048848087060773148169697887772202750538495034162951926537913271619514460195396531691232695542592780069802062268644313877671407062443516679428580570455869499020702953371794073406320690886596965068241686373327956899557153878557118172899240462738947708300250254207377788582619366343917036554545636023458283375307117781268374326813585352418012038421056124995672895938762024434298512068187063492716475983084071769705257328212700657772028100237967412301433048190126054499799227003929370666510653117081748667832680911069012427465336694309936955356169476590514407149943186444119191273122429609317091185818454629978697295396271833716408994008305905331006592011055644354348751759188368166181456758781772941714745952398866853018233196508746485066652005850978540767361325181791592787692600397548197982773489796511313453093338114485272764071745438813505071997466115448410047366361426585568969042972795728808173742694889390677155478234493269226173611946891800168291561671387666111563428927685788158341973621548056907429107498909456502231792033603937369997937966589203891847670344316579425263124263481771348866329156634104095368794673555073043166782039972763670128581865277991668680055631333462564333379691721636550527855480176859758614945851687026373451135205376106754251757997872326624201232598931063832959381066451052806116489015497576408114731024772829998964426357108622357456472368662865075555733811447000020765214548825577898904442763987692748181727673478579184269289263918406784085585356044043291548816204992679979551865118173361149352892528137853011023600424411069728583561494577951716925914639719106041422668849262632443820065536475135225324758659918372279203475253638441101942147546987241056356810446571405566855405405906023156634203348329086114508507195827554702346056331558181339345066308065910514973094343586099340323150242856126972673836940212838184752413000028315181421917538552169271095999556498479294334643066351791956105355104715738600027649210851484026085505717694386338659004933435929839672186612243329809764601980930932303634959456333004022523624634004021329988813324827034204763653380962625848276813736934427556680037073641592913920886751333837472203252103985456586383888834055625972397368074638074579178897820826320432912450022935059393080268955068797614082434198203583241062389586189186444348384895948939454155073998470097296292119414448549883588012159168176421083804006464013422882322719016313724957061664332249069093832920569792326341570056001399197716448313332581901191278815871894082543736477986975698649518811355559421374588104032231603762120986759629652621749831633561435321933482060458688196014754870183718259780210884676842638367089386560735930621514427323545841345216075195803519098243915196100472833759674452572769040932339690566773892945886102710586161656663501247737603625212921850471102297869029820409335309801861497739377075634899144407425539695620069090628056941751491971576757835202876476534736594606451226001732997739535751756595310817657848049328580827343388771865393641089105740788774801505419840908176412879077923358199057008165367886783109859081782002564483667942160463405367543891585871232417531925129405804522945623769805136746542949888475488596524378446478187508928668815956683967838652874071916449842457353068157894155411489055123400837307058648945838527573598968086076588209477989985266132816509011139749235208974282079895392420160329988420145104268018584019483735700059546360229852122962910983211429051530313676786866097523869777557872647329898373330421438826514961189536813697123487308877273770837029297403673865979395930339859056218538320300620746847000466114097023666025864248220463993058815401568664543306619886040706419249427458756766348843620208036360970858805714132992542473523904703008343755352259151966812598755669690700738252361659847224644069574298587267270349703738510248280273272875176667322457557266241302340818462051192954763535993163516603716090968830167062581433935653097101954139288288349193139769467365904018268995691190337530617175882756932057254254559967100046527613893329014586297321755820289524220464714585878879325758221672485074916934283037655368247469911347886402253339590698223782313024973174202360929392142294009406793326819268548230649470894236999807850817293860968967445562190457904585592556112000125646554952173610614593160256117001883820809343061667268542141381787183378049727841116881228367635401362986352918822473412327673834290497181681299353377289664099181016179692938300697391862558451881279957257987683735718455432760394145632852659032880416368898705879137414537616243086591989340869331685778800695503895303143258049075574845884529169151503301604085902761574094025335016756103945939090016160890287684465004613893316526482493649454979859888316602150351107126031019144579103953625984703071720392567380931355728599491816073344795814690377687291591974845246273584235442512706650949781809538960462362984291043563221411821078313783709945539431386441409724336964674486113884356031494645592190601029176294983809411732396511396384294385472534636592973655755927294383312417228061040067089691419098313870876819548273463508379456463806251894440486772436593837762317465424694786640157901039994773484733866416339130077925612430214034405250619685433742554977272197826565803040566209008265742009616825521643777387384077848702334521250375966271440380704362747582742503777797096472799466430528223279932363773425254821125133409584740847064579296178833767595980428934794073176489649390047106417346152833339502168715694461555094887070803662688488191645750544453150430027369181450476569984930775943334455421671454079068665623822748604240316027939127904124830630662622906017972086443423874630920456129410642580426396853073547548894652879208884622671622854841293892558253156882116255828099264718240920106722387527663750292500348274179783615519811742686377964225564875324922785842309029363984326938017130235737955816446248102548975876984661936720196616065457789291331149631873042792166368267977398421115498017344867370732186158715282818864381049972851488377905305296075913914815207839071427495765028339333396555516980704901210350362479762100114663715936565750806596220285994562308054624371309664905521653201280429736417442657277061046004563631690696962383941475541670416587569896494312396993895835674474328669208969691036866110091046910607860482837625828585845378195608296537039439621114559615206382055718995130842275617215475834564832403544051789376673047735836654949139254755512452803043035888383819728364769929318732415936705017349934244127040812427641395176823059619166455821104146233298986641439320939715110536106011413209855492634840324847576243897597620704366406519750249961271860769449185056568184493675862588705712423378241524378052954762908092609559852835693770622541129509064728617069513548588196055721235677325986975682110889653099878918198392532716170732433660221594235248021740793679639241741644308102002563574053055957815973596208848689501768143052454102576705920412563928729083556325779603225873981496582600542946465519880646106676397535199391726569340347246237430394512008385892674870440825241184498357505661198635424891055200991070487455873112948241502007758223452134274797167417217736397534818762830966465632240492917085404586979166810820478482291593632324915287917194480889730476375056153622155799427650488906112077783638581983822681343270228935774046269046371925216437015615973095277634425592560713892543087760530117792740042384527664642982601131116468948690770631750663062832977980669974222979996137956082340580338801541144796528848714916694817440079795207100164055321452498292099437947826339522133289627869717514625832620120990349620870599268452129180835240575670744469347320954422203889279734206556563498888858752885351685166652800084167014153374428946886053863717698258399287259465801096374801919362368905965144183743752769696715263812047347246101244182880714755090614036621163265330801947855811661223844406011502061576328635568877809321124461741729347674403537868069090014943249314563261651347351896643868052128328066362985716816028525451060216553077979870347553566635405072409004633604194738488897068104543823134147901546676193226981316505043117988903038889318822147957737902285656067844837234567493497882287618223266746576932218340157612522982050796752846400545306356349143569332160334593414320977549671431459542821626257595991092498993871192671748586779925024271820893868748274600939117258595633740711660699398565922202423242045461724822421423245584420720564009244383308027681215806382859131712968323818505744887693262018176241821214133017715110096136967184997165859685860540494871596123372388290452866624369139402666544966844534195037777657752021813197601685006730258979979741497634843822180487969867345743118930603636290244848496864550215642757910346868694331882352267788731359481789066053491386364674242734220167434566794685611557244094368757943774032091888548811945612365756902441596720599065495841588689937190384282290486282011051874010695314930439535245294234459178253867447835769628427957656093036186690669940221857408238663729429060041901642422427822794316014922860119887593368303344893956169717937147120889422876962410537926873884560580604647912076600333937991153431023382649155272536688525316292088142182831688256871994963854732990217643039584533575597790622542687018067291750851250595090665139858642552026560819169010359024160601475248305323661168502252427149744740825290926957598716491145594423322892561948043166649318528520781886879467306299954177456098839767323829333882157605092975664878045783972481150467348548135312118086572328549198572410356481185366763200666667068434372320885481081353580997161038919293389588240313151885121154581817956286136037519299740351258812062488970479951752402408435898634989690063040800480264849094015225746820680425008851587624354843561306322316578988173041845581623966340507929021094939780236527196332658656486174759345350338716783504669188529741678118804189245487046673719230064037575670646044193045647094931900616764032037475668009066808200135657342308208073447724107391248463658449922401575797728307715274252636278123560864161801135647960878435755570349744956888518554482820023660966875571752554992471895925698360890472976623634516807356478184233351549776246725273527737103403716551202309916094165757003458505850547068295842397838401141601482847831429603357520096695505954768051137412332646014026529918535337174977717701641965911068482089335785080624890395170831902135457737421695874735390204420229743940350648875794895055217439505617663877666706772740783390878066011161767935524833156525084873681533902985277264134735712979757023982241361158636954910025589687790284272706591214577621857842249150370367987791444893165499254084057576678775963314371927887461335384958156643265341376054642399635777846559880258708356108964946550096452089493198680508949987932354182867055448096352132517064159279919962201784596628597183715674584983351355921306892857369795786650297724067316178597829467065197509981524531132567073309405726239122298996914985201752136778136627909013018800715364319725487303350525350711303985939911933615436804198540990860974417291080611792629910376028838692610705620298976012796830861403435631945282460315894131461582652319660787268393812962978097759471921043446607135746067590191716010502573271636034667750298691161213546816996677091880235376682460285281752757477677522770404289406577744206004755863028821935064627467163880651842885225283573272838800517938008522249911990183437194290227271334495504534244403256081364758477748953986141580719562103159312867624828323083700911565530088400720680282768420219811023711697002247924681210490423581804158608917207034350578621720222878345220063398804354416897217008273366147114400179356829487132634515526359192723756033280040475034069745286513787442445686144237085027384018294556961944467968115166602602157596076706128021852636886751833755999563109300033308135659626071618496034759470424306216195230485062439526788256117715835236788587926040138942552135386031762853414822342473478617948598951724229387744266103706297147450198649575059431524493586069664943910242831881539550703527370062038966564654527760019698175687208096828782139831051346240371841086592638903536356201271131472943855364546810480053084676120672469338568710740791827968138573467697626207626078231292666216834558462876984771209440416117400938905847352498112325470332897775223378600560760737872220542669336929710877145667624729215800174911455862326813424482141002357831375729908147210736039483682144858836890723876961378390527918723379560481672643681719874924804174437143784167565281759502318178548113288239637841166833082567455627626283416526619519347938706413486315327766240014056964247890090900698937682120600675070426892715374522814118574543548390291022472865344961069143839872348754251782232086630345053083209059312147716637517623160238063992370806031682529351368138632273911817843342025169631336250174586264326410218815394519717763352628642238572752181224696281239222101698268110563463572704913807499181445019624276213487056499959792323308695924622962533789535240595258219009616364472826974982898427236271153628720383545635431869060011413688085763851225093983379776462437269504525794170314326928094151407137738964548283108207651094615098632322465898030221759011204701527073151074128256060101397140946198003693793447894277869136565166853276157332631336237640243998544549932192913731433381309583800435736716413168370293684449217479300992664859759862724327015900268834612770112740030135761973795544649111301146008247573902746586117940147887031410264410331801779762751429767046547306838791211564957860963956184214311435521559826213482807971303638316496977780541168575443094229645600432182373380737599371923886485184363928244865204390615611119082128326915605110813277712170375701976684558630072099153135791474424447972096537007951664527053819003987654274378407476745081335291269776932451950218489506098180677299301684853890406181900069737341002727540434946015378446221049786900400040193293249774598246777098151336337956042017943995187431823270260545033240670109181517024456835857622392743023314641239024415889930828823050891357669462508166045253359628958406529894844165779203266435737114706091376806907064158451341145614375774490064364431319657437317330532682652704800556148240334349825105801234812938838622325953915065585995276827628560675303478481552948526915909926864017741189250613654980844024243742062733982530962748475055081404658087593320477550269017743398458511525307057068185043306235422147390649516152032969165576026349397853622596992304934507633860640513065614068870761466061325101118458594532737798190154768525530061427124865817429393673687784856789900736050137189466608426385183886397671715601454343406151347548633955276758850734869855223983289147053950848907548960383552737282474618246844811813041499429214351806231370792214204726896975410458227754535645777362697368669870637890846746162839714395909353061081047391405280077522870025491202741046263254684458049495675052613911033119664337829853722469260513503207471857894000083356806848208074566979601269087950646901297159325890373787750620146996440107959595802494121562022621223209674393018562354803922823342524380941973498106110090562188863548297238875690333221916626723077733339525155319914960503388659068867804706269029914705311104753152672130368235138171386085215318528851663763224975591960182454338356693553156567443499403908798561923004965419328843658489475561292715806463534023036215770554515812091841891927746769605282332895804292485030679137302814155031909837247327220586816044520371555313815999173578391404757239798365313092866860450893065148984745253881418698088384293434616551399543241699479052670569881456785650520095973703706759182841707636866469122383719109240885116105326956268905720515506314601944277813977794913970073679729392251747959620817619370079371423997150138333572263653006004665447235049659358347149928026010193265645738676677244336291078516033411892202246616322673781198631060919170818022315763174149488600402594009463634494653699384842654840617102594738594401437305862696466370315922806018638151995056238600091711886306309010165006276315298424745487420557936176626981259727442191988087229827936855776859914709890971076493578061556000770926088815452413977421342452390066768219252091173383984171034544821218078479009501906970182502703515869910595896368555453081678882198347539345886383010412505559659083985956670202839692021724424319593450053486153591450488035236805637668280650311995268352485608848778204125160554688149270902934232996058985718416106216413799234786130110447991996961808846568400447666034743486951445293361856199526575497803622537298115035210385531829545145372708525784934322561112585959698643228204639621846208144917347866276745888991385575961628934312792879170538074018904034996917895300224983554223380124577270165841727366590216969586015668036275241365863035384489484556294526629533885399664195245828561350501157260502971130134749998122429132281089927944837367203731673414901687754379550817568531624758286257888025938469998288168239402433726636612356099131648337459618235661986502756838589511684799524457402426033693312424391640284102836974875516098226064357429777994108130314572966812511487210365372275455137926189203012972619709084788917494879721239105820262511516162304564018629703490215162473172643707075501056257503847814099869084452377045541243113267391068359687300535487083109773385425714953012780875322572031979361450924531861607019950006041414014343849701925076512964630276324307458547223611273932130861918313324769362212909586123216849575455438089903244754552609111669673344299231757502581406698151655782652602364490380826786574563068576592591183963521946433634959651761294503999419308492117891676335875702748563123934882964742952013177985738979131539851603117519161652877600405914934719947746173854534273856229486778156915413248774837871202123056385431666670336217115836721037074677669006672438044518353306220341864220190385450009725656398831835643937120300295543008177590783621270713290282986663190759075955809402306508719867980832973797562419522916828879927224170786859432047680345386948582254782776432357342457644359446043051783497730620149635367525219449906288143210396069213746314441662307329856213128204617857719622553582542250308340030106762454654158842019771713991617542710585546310466058198967023398918097047497577336742084313062241393325039839004588188748195638561675353559475365951070549443664468987446476837207893730602377068166650584869343189860504761670689966486706701456301584921962658753638149540488575348851517876621487861893182912889884354991109796509914624425256762581255797717745014551017358994146246027976039208078986621866424009734493327912808540030204335015996872012792537241375459116342210541929262411501097109084207983841102620249945059459242261357328550692977414212965935184214692839045971120275211793748970890886167571786662474097589670043959114372612398392482434829368178919439222263327437038855764857849921880613007180632549031261695353364796495683399593528699024423732569290474942359635832480764714545398273615375365501201743071991429741952085440005318187998413997702215845722492806076563213621224257149309347261384900726717689334212827332995423116796979500523334795173188331924058328489317618955737785415932524664461432700813765858750201836650247788940047969535039368236012327342871472625484598063006657775700526603532379044725711590145012204822884621333883672460507939928237397291360755235544111361383830549259138058569790320961967153051488286954777768009375526478406389816773945230757904503477958017232587788519515288244162727887843730202614291870426503308881959391381756294975664698570832133859234118543748754406910961053395818982808153235629563484605350612137496941929389661591003665653733694153000002789144630459012654581116289339852116271395619148545643576052149348479892804781418502996498531919553579415188893443398443518431811416993547593692443371755096816918902361373119738012571122250462007238331248121621214680876208099351138397564362208002310422086106490803064662195450491435372054561413175171848553399786054517086253021216629957505603226168170935215377904700666901012549306968567384747184945758018822095849019278315255593048651230867953846475351272492832053555843955778793707496649521866925745338301473981151704497738272528275779672287293685315469852096561656928714873673103991763481420026289029318618245600075786078385985605191094414680034578289892808673739217323236217230516523535236264891587199495565997661008792739090756786318281473410798405450612873219043837705059522817207454814432398853764368099902338870764113107265333578530688364816804677683089563307581880488062873543588020983285094010286042480433424308025904030358308088984740156382683838841430440071805613203016554027951665104903773069811547007724483141318095781017619443418413771537858647886221790187693936078876761498985112256683834247472375255621369933232752328050655581343759294445861274346491491727555756552375576612576580539932457304081755757392491554380447964426524530670095020603890235863171427149577380851910087004895706484938918037976301263955271695623092058775016591304275432624827025283702172062555261313832075597020992404762776856380631088838598482219333150638580856980116940768397117918237649654177486441561894358804853430357541611094065403767834132162213410440541427897772021361379413410581187262600355497313275284893620847108323524194840387447219088896161638876550327196114493642863990247994821691798345572975715957743564442898718819503602257572836066731017409486349794381605566550815932708491246211819821736979858945817098302160818537909904423179498891579974404299969015546659087170843903228851688449771236189348222113087227601985528053361034854647742240557280144867731439786653028083151001889444496337038984846488284580944852399274025477368290862085629064265208796589340179976086954045148128884377354843984583993721150815413415726959544051229425666614529689485414666255986951207463136597820726376866696629447265515329927602815966769320370029143813460460283031857984370300097087209611449554211821607272613319748374521065307899942621488789642416646591204868064509321819044879160383115215417504143746208560176988889462842549272177864874709852741509467876296762278282529315742532599672768622839928459956625528571779068688472913735951963182893710070122387317713909880388670019422161768679670730414184322134999241547042417417526869046280639386158288314622773555780964046339938898540243529731004324449587804037181301396017481028438719348419866040112831094437731151784379020894776251302121983832739460128221497080574073975838610991720545736750949555435330890431804725625721849668582658147429721541226610005094643688043105959322856419012677755738024379085308646383914434455137878955056569396023697767180381474455028417318448945258294246280387881847482437523547883768742912546264324399212521325851909528847733656658712020393843343659834323356365048072375422960002099093481330260082005704908553846375414180274973010029721838086459545818781314520910931562958465553141438785060506023465880592203406559248926854620938310743066423044417689254752615699493755159829948687024933739106387909177214071361544928238679392497072559424475437217314050246758654174730650892444379712926872229404710719084148906250624773889437282570133326725090224866656648773406271078229690592062332974119934844998532243649796093334999003546721060170310468945541764638856393415371465815374462694773174763141552795349952313659047982028495055903932409800438010169228878506820996255756730758019940461637692869706296526128602740061144306922994198506178812442170132717769634154789817643500608023982697255241193367660715169750310043625124699122029197670032310762567520906449256728517302313620626651540982209475005960272764182753813365461226900317357268465177045269930523900741151562666428964382938824422530790281035163300447555456961751442149235237494547267659594670858850320519012543158587472516637411245119394128758194720562067577250161614766932818365827266778619941013650703110960906142591021641863715222278481067459178553750986384029898604912724942853559671744486569730528548288795226245654696322181179324852826391958936449411129453019843741985493751071741448527835359689003317972359269588190178657643041271915572637680899969826917209298589407936726226245769971823722604312676296057900682257868496823450662802817205109279267061320295637051284968325154586977896183043556031179428859400814150127143627604302088262139533183385817189084108028927177521786821596031822230644104094959760461666392166806647189616438631694782760565637309603400240915166979450326559465069728833804395562459779732030571612930879453094878054740623194284396251905350327777907371532406918685760412143245457711366139696498213694974376675986044072441864181217406115373777583449906993415088095043667532314789222115742483208571785313995872358428310684328439746117614052725165161563439725551377277536335617749999635285342931177493517244502917090313168908357658854256780459994061846957675214076974718563547555524360228324598019900776361275166515722694919668814934049672158916526096191010488019286064327299457537348991206803831414066441422038150538469292159045470773695730058354765652167526823876379567403274012050816764573090991179532963842983931057071052860608265537199509440927116326640372097849010197538689278533174560360070258170472888535849073740593173585338923417021668316955006257402346895540235508494777030690464836037793124368431176895860229842338236314286171752710449120244786592265648618209669033185147816822621985050446502290501109114051179597350077002018477326592763827207716650729073035552616173960773800430652384710455014929581342919933883464773319622226989935258713812764104076054364391085698663918433684983997158974825959228849875135883554327017346100157332384022524946158034043974371238489997328209479126469513642745100855681089996612207132799471729102064021228695744508250107038684533345911570898248203732153168872454205566555807029775094852592102653537932722809747040811209763746594564155324234447749106159994552408201985327962536993926698425687292721078248501795582023121519486834209478371980464373389131227928070572683599396615337821571142901575899618339868498795513047138757996723286593462332740180738725315515771081384945274946248523768154576968985884024612430170051804271821163480683365885265885872248092510675320054671380124451473435911056065366117919997594058891986521641365636030248532798589653143522668846587758465958958277087847726586562462728145952201988655156147179894988528400953169153681836785658690107945331674760969704970631801025683603334524402555977605977411700579495089515315982485846721418276381952490998823145275302407287790518322793246661786067709114779419754458992898632218561540795558559330625497530661843486883608821782725769468159752670055941072547977843148579605958207316463320458510192853211153801172085561369036293388630761907658302177495049341012492928168007997891969513480867615834146741436145614925535019081695689809916562059876589712576501377763309618111947183945134661578201629783763451208291380004552327913904107151327238237825751656878030632014021849643144761250525400572891692134280456065366223048168871139249624905072401750597305447713389407720882870346878587774957511656547950133073998323766638630607032198482697032966024510481434847764531045015613370238639235063097241314944797970143572713494275094413183533167664650600461605038329289349129891607181528430831331402846662553885973542329401627246098761759373631934756607725399220851951217473579125332635531489445684412275856918623348627365694462830230082102055739280666529863386768469634397787133776141549732456203108971453797928896700658761832139181830800226106439777526291119130434146080773706592378943839984945166442323108209611746302522857720790791343692214724588310603717961611298932034898349909627915559404495380734426981845586460876392263571967969059715796341699552103718237461471398512721197391992560143357100762768384014126830452784649716960543582651387639275954566609642190864131650902241550844813657599114656069522951192332558185327847199530258608680429881303900745713675461484812489909942918868268773456000481231007209769300157825727589218285207017140085640868673785135348341802561090785239742720916135862999146665481984680020235158693569628118005120941518892434642352212838629698578248006735701223134885611089920576498209288931790478843416096403746598986187771377536788526227074641714555164399160992836120714350667259015833180009306257447997359880922204547221736985539767415942158809103837224140150989751116031926257506513251325639443821704470040748036153869335508655023610318348145970692961482714769803390296566675105332031264873780015052342475833794417217860365162792929778030187553016752841104216215242181537975777517132991769737473435340929811052215248804704971836791843587441236416835276608841654497987578180348559281418723950436550189979171084042963765182782181690448829136191287047095441211619967881179625703614915968871897347365753133538426239238754784969321960206667952146741497901319931322584559349787298352837129387252344116948583638114361756495085429013324509150196635164191162516729450809309314856214111243217178070106913512010615507900187514969816271880523008218899724372524594191293544892615583587062741493266859202460273506024041031508864391688088511152372261813519278606393496495302217405347836456975680930428882923157387679741317963721645229599786655883289158224315828305740511858585647806724381465560746911350949458672819453540801995035248251135714131453310769202541141399164690477241646352480028633812684117777875247243042752599973477464458883736718343315212051729211687447879292850834186159711021220833067500641319014361969309176376579449022852097876394864940893075523029282087664860274562931109955688154879887130021110032555383313913788800688178396879616797967961434916688147419828589568014327006869731111126876023143851153282235291794221495463777845483010949078067816632245257518323673188953741792561177860228081804683203208987172486764692688979097659623360318434726618426868366154494084164264686277316735299114987171562178211410495719596418205946234553861119013822792085720488078279553512406503249392487872647369795943875197969314823384590374481144157584949426355342605984023397561723667635795865564279838842059359424108693146154900944724067901707487620192308256452250633246773558950834060581950357273409409601323296748397093814933823622970161831780106978193141737297655054514329472658690411251251878165492668505721990734764465371239576769691811247066173097633763404653699227648872105927473197946031956972189050326153306535298897119037716322488844906775923782598531860053699750666515537347234170519693516866855582937079494103827684113831392913981907702412576124471072988659373735307450334512741126382532874224904145210826798301803499367042720709773576400004673705281853376619868121760291578563533306115665532488567490633784101630154022044675214363529883447872147230231499543423326898922370516051007197651976441312531848889400585281733250107958301393433472467106528524979913676869212295551041456844076021674302260666409390140606776007552284896909268588172798967807051572228599850046919463196367836001749289025521810237963636756450041015784648027256768510835151758289741713414070977915256772025130346316481982606174145136679135278909174033475405779607904756458721849619287759511726861085942255934568407189760239527242030346735962320905651770036761877484806681371134929433674334499996593536685866778480615825179258614315080458962210344662491171434270073988142135640662515456544565772238958203078308438024239136086898928516802886330703358153901179682667989942241424314494105696389731496128049432069570337157387726522759442068694681500234792890197008934675983560238326720551967062868780889838030495822176225263523895005080773227557448900072749883127725728357805783848233933038545142482829746773507710333480451769594841375182742756127076060394164405906021393463463720647411343463548119275525339105784111456184488629471694459866181287254857650607985428557350482119242837051858561381350807089153498028102479284558981318133302346868590093922452945799588785047507273887833932291037606516731474569335051696894224736424505427031046203879153645311237473852883890497769832604769145042581130736982695788921528709444283665676071386952675578478834151985627895694743055641820490775235132731928346461959957047338753225615978897109549464290198003338146132061430939741758449629465356383629819016756484752606347611218770977578884418471393534632652315876741367602675465372702783449052845231654164423531633357639045300831208478754629623519317686513281425583190373513563725158953135714937223060901252899653175445484293064756782391750998868406120844356337619271531530459779203028704475617811863049212697155400418021282588787991716656243936114449227850663632813771394490990279510038319555891951955822839084343923253330180205146149207967301713394217059924358611795949209400287302781272076055699011038528719656609395295417128332980834910575679994986582144981455766369779613463726229808518288138768860903674379461244374328104665160710345726630095910801769294160956413638196078889253246268922441285131743170613331770991232947600931821486302463094584160218339166551874754852014028281893495840529276801125029038044773800877709009690048681869385419148015881981495085666742588684227120551705417806704860339189671458054775744257790786199241168205752249436837083019944866775617283611760113757090721100119796414554590221319387440843989708809717324907367607371831589939261408665175260429150440309841668450855818098893260347175928661583880374516006730129219399459832275669762209571925801206240137606613228593309801513117370443520360865821693714395902019603802661512369053273936289598176667902325681770205884792302009415474662736413380795724097137727171691691175999055852855493501409096122696135213484532155843730145753023132042793417663127197118959752225112386318168886838277206763841658830135791206167009444944379781766375705415959107997660947461382912206595916772812757986854842393172861052046930505318520035292833910798089092463188511460748409897797999610864251624145000380845369709894598620975686895070162240182723498986074417697066779410093722578053250584968349068607118509081168668412234225301049110300005546443923611524798227113237758101582477254356574786509725683045020126628082531648358223511373791730047800009733493957266137648164908386700789721560697989430353052603479323081670199699107681311233757001135306264575071343167438783497880738957103005670642028338290489143659925196377121111437045826813688397602244139284992891611684132223134307161069667202644225047497010820520297833256755175530003744295553583553889046203089714599646335287670225477776853954536784604123303247300110147841005374218762300636561043570229017376682919826665402678773108938887320297331653426190011383613585895877244741167933285720630641144064024287126840806709233730032289163681399584859137084657047235149778607433039446230248093648470033726627693538205875853423712639246485789911819398181473257505769703028371858221705096909621005377681576101512815620941920019314846817978835456190545594505074777662806788463567729904165939572687881729119146444847404346789112355433826771995169829425497732054085329836380017729068947993655191357097512291620387526600713607052929449136419409282354125184597136222236748008721273815881569836683994307930480337921505109809122761278452536137130625435290069435761062110337589013739390859634681164434946360623342895543700147852546037388771915038892216483509910689431588769899214470508014685780213281117536660217730479396128399211639086813843039883879428574371071756338228366454190687918564477253817348780971032910718027296219832784325825817451357479416584960780638862716133229943691506091211216940478116456175732902391874762470308093089036392431462529034485104174706695248571306570301716533078360488697178954748055018808396743037966893903750887993738646978794421226166526476318646875654477568842167336673708924548540311435706490005289213521856022285601468417911297214775454612228024166019570501739813883197092523281535107153257895966237620845162175835231876850789082351300388065582477977400667449985651219407628205188748028625585637314084206457323238625658037646064199875908656607425382841505722177337190182596061916817010506892923914827237467027860865915130519472532337578715835823970860358261592946572295353214698505851536418605237433529479533049567634351023493554093911474070080863658004265479610869307565135668494207770547002574824273094276887326428103625314430079480653074761577974695089526303249973551061009061794872319084402840379584760664426299902854010191050526241326575653513479817380524892408536548635962140870432651139198310640529006485635319420225832941518214157155000426663906255564994872639191490844732962016753785001052302920968021280411373736799995391983319136563385548403709755637503083295205418993608985060953200568020877960169064723286030271783557624395336741615972517724291864701787637240843715328643864391083932552405548162610994498320413256830344151158275296129110255391545036436432802747476121968650521502582937526802950597647109371771643294965546638222655395453776107675004308073866709785623939630082512577368471702659476927746859025933294283224060121047822211283087390955140779327814944442347216403138095261576025692783989071565303373480155999684613190795935228565761168357560505264586293012397593673236464848644798959789422085985329253438821774376078902459322631164460627213090867811060699084616104313497632623674791108478600266967636233787049488794111432786576171219930108596500876667801290590303896263690381870876293412939607066434658336159336443284953093743049251359318388258493533504457015859946465609913476466319976901721706555242339129828670030441270095602914232137415084466814251284227264771469850188836300477867748853417356526188362053980011158870236734326987998227441770683124668288946981764919064774576525395423868587522205860149062150466122608786822693009576581681241868040307439114249616575109885689853073661499396628492825833759643777942111244953258985535345951892748164731010194337198321962998772463217516969087732207792109232313914338867690371319044495193590780666927121060245804688305813689501714609107605848261271626070389438894866971550965387656941343162616364418823444270190594495473074169299975880416129431558245518268942249380870558785026371458116491766827725795923931550315400503969483651929337077616229155501878429985940451627037247393130824027114083520824062520205747144686066237725477415817549235271659406799997358962569535488102923210133724039548107907304000624495932958651678180557478701653709910360782738070749959323942656609106502916118870895345933089558508890172960544061513720067059939998393864899879234002462015752122910705200785946557728987469163184766275007752537266378057037763439421101026898970809946614965523712813018405129347105315667413505197442726997175174300074038227695833220792647923873469791330251206087040441491332263877124681111051051632990648985312456601995873926611111365519830049408080826284200306225540192422783166337419492534456528119304035420480680473513601770799310060047803950219877251635874212560273279434479753562935859185196774138946669144946479840512888366972140804455380162129849650895668306089600538648450567280892326543022439814854519902740638115339408591916435475478592533531018615307861170941828097332846038207473463396523703374697486183438272327551368859390325241852879776302998395171026163676457684106095812902632810694610072711396335496012923679038142375000872870324677772924041555390528870876119055399401316286313788822436193698467958760043155286794230763790912834650203381558917012129751436461044141280531880628367666394593908900554554691154098871581770242853769659664833228714430230416970665429415522045146132171473892952124932146499449784028022782773387993202123842191803963184041122229551819797458061019534990675504568442729034290247009822218404835576274060853358952142236294376943005096161062440364314859790396319230000932835974609164497258905664280255403993181654358658110277634431889417465157216822839260537843576093439456420850160290480341452967991383604834869776976833264897044819426042823821357337729090474217851437069186254684010596509761168517789719664955466788508875419500666845656012915823254334731290247372197730404494265213275936914510847372355452457209722750486670800840099487582074480938660264219892192538463373266518087996485473764640372702697523761338971011132522866242050666311905041769625436007867710335076708690433866892087307527597720867853215098895291970654977203786819125643338491546112630428927997577513305572391522075299542022661194482708840350060300802974104928898931783272582479837641685167086194644741824966830892003290290811817226424038115721597666687589993583507286541877143701769361391957193566102603610425861966153247858147900434892241924136239580894116065341686572496377202281970036957349332566106500659289145959948971450163029481856367106038047557747128458518088488155401146938503157150503832886374200998186697716572733408081927318165957159654177099163850401110767354433571397910891785686170901583203987492829414834901436178622461985830559532128239041003198080601389175475420133287739037581884992667890237883155905231385413430161361208170518218255368332628182923895222029523292575755184131512370125714633775075254633303107620161602938301494647774322497568111521974291385700931437753927233991650994490204877382417365626823835412165073540709413302922064376384879111261704995462717230215691494251157843196472318748797924779776783385699750052740637657580278007647312849376135254641863456634083348388031560032077396634651077531187741094031476480215916356372319814629562809575099263339984167893700708279415342961488079073145971174304884155237715565468995571487172248904708907065465855220303066336879362017655089610829755485955031281834389678165652519794405515878719986075611243835339253457021361252038316458920563781324577648829657020213088699889578406327408987367040691782852875878211304149838252236946467050783055136372470247168348151329950264424053422277294937940503093146210395034729503938894568981533904839899287944816350097337221396325408976643817580946914676512904217213927673775811134016879210379191164345573657184431143509296034877372942983736755009589226852379243798993478368087736321580772220742926488654038026232730872355930258866177682782787397621481724125245630178587066900735071901196944820961769842400529641170459329365371555119729191653139684293155098566750501260763576241487523618562735036125444740034344218134716818322443915891789309275550934827985281600727163881715252209010546754206803152534360134535689328252421947970844439303304376071909504533970502924553498618416506528545751566090440162695865241424714401193745241610593652529325378870619294120866804155606269115453325945642953120696584755659911089758114845667587792940773202135605497206071530234907044190705022305173756531724345922630670820055042894638099401514666574824208055642033104628182898382728502813743095945195446708915567364880246692576837399742108463973995247054020688392682823275857811355784579514983863659633182649220613934276675014675232942929985354088356712306894491888782259989802170094954263464839265310846493856055039523066510335080969521167549130649555731476839913775776216132959336974899016830283921336152995336548405873686915308604203065172642091576379566587945204219920823457440639007254436407033680748113701103457622982335046956270003016206896325411340583320834051108354528797048875287550796050786291087878509268693264031456621149406450466969423258760634656393999722567499981177333826429352951666574034146177813515159593108079903800382717649532052659321272730337668219563702562769775174724576817058809220753741738101117498946835293142195699221276046563034222885491405586709954913717107192353503734316998579391913298692668941284004515104521150365670808926899296525683107810934085797860064861093991332639010502196289460331582200930933010501974138660184034058746354861953340429205245269083443318078493585598999194325183444993692145390186229622377457948322678743408990213643945667238707184423645147040036621144119417764694545931311126977456790048470318186733043689964325441651172435083160569635697524795106880833559422303535861632899316455296822599689102783679325990767054853066563122158242679687215981907339274916437708691081532369553217937595202929052825105175640879342207564534256988593561529559420908012674846109985560189346407908139534427350101734309449495591256230233121962459860154079798002197040281168381057147793679095753839744986120274348742680034990635072844021616701270909167192485535629414134837464287513689483462150214426467907285685040517753932005168085043632588820371606111202921893202776598566744958962143044705289921677681903187538396199541294682494807432910683098529552918636304816613764650365796165832201102260934541987522662382878206249272724735236675011411383394518075901130306317396427083333187422350779307577943092465323375236352137169938134156272529401407935754813393664960529558630886575070083838691887497283395146357532574631318420598611772438885481015426791305638021584288261713800751989885216468758304552526266274476396068622656822393593109993498229441279164614507727225266192503950717101049207905145579093286541394229451987157999660504592115828169973165318526161563685637890417292204731950804367194194317141071571628370945523389702869579389078388658988581086799333343994353811908464457227990617494887229563706597416974575745430903423071911646595524482814501771183944226550322273071963124514184510492612826184460990434315448004794418088350162838495714672421211659673338675230178793984069620473971878338984032490348467509992587307350252885559345894926541560760895928964862042788715230913521306015602699918304549761619795285569140142766656475106388808353420034827769710221786485278754739396459015835518293923263126190545892840408189688524347836161062570872206823787222239854592863438958665961699485212387444325598792684859647446861727017742098436266403835308727288130372291120224374616348656820278989898977156804307375244061268710687787736984231921583463502667785013343500625021675201017147730467969185628320661177791633273546069423667215941427578575404279604866133111112438885636768770305880846438925465179708815182579808168712166980220487018440633378407486711861254209744088220210201946140121924810808624707322960433811803235523884021079505684998163774200882657091416062105107062320906368898611753057097947600439225097908803451137630059248968938544453693636560098338855728634108217636438575894286094687992327124976169330945520855748471368120272518722733055894866082086825229861949964161195659996277333010602508008735248396314803866869615985015671340853397884415757975233240440981245398421092136374905984332515170924146885496975839287403168031581444202933400142397604531413312453923446940323288091738901854927904890160494425956658826618779609776797349720712815132012724732170770756910485495084239180022105600135900362459576607153697168436730677726173607322915818918739025895787772916247293153858901336860895980975242846281833788177734744835054167788540470780392144428436504093889118398285604405017414194551453668495180230938792964895955746059531772654707755765407347930140079285425409218469619859232337156394147830217587329469529829066595309472372502474264053658922621074942567737281136134474167631649504546175046484897207410887611600342157045567222188813941421483245644643900488124187228883573574049298244198940457968414208116680400143246173957401788105672737477805867376312057909501323658450415205023727114084989928228210561647576717415424224108635274217802878395535603174547679862883743901648527138598815044060920284646534755981112515424561986396792755500511319836345543933266965372122519269725601792089640431805751751982333023189976156033019931841473222013208041419635775088471080233922645295630923034841698474796213593658658522521955938805620025083670158194262720407956544350052477795043012853009636979533916164695333054145103953530409451508307525744908926512944372542159520302708846945410986576691175583890678011034977101190314188467519232908766605528547613222908200201202072984180879590837315504403934308091969197538791590908470900755926321306253814278339895403934535194710235788575265972903967724870959066066078258782696727547329981144976770874673724188859484389157210947235689582333304169608715799283357202721905448499101851223670891877116509463186792026756668961497411435439316224875208594891126269374294300509484394009793329493983204259343457301181057294705355552994571629752916203375995292087622940104079690502253378854559090929744004795816529667815755698158267730043141985323405189502830566541019289574487253485847311846189133597884156006655108773742784479487252560087855219235670221911332198607858134778021612095430699117981344662541657857730500553881761421174712172406390875032693806946314462537709753187700383978067457571304778191116980511737470977825033678306752203906828389098590290589926262249780771801610810557199678326871072788354012112517830141829614834483802338671409846308564805093351756699171899261409710085901487835547951461511247928736500492369104036958130095653689000106853419317048206955930781093626922598434382842570118212346889020114990639890261643520357835047642998340657982377888134323076184294146140036702269931431132858888858566605582030092439730461712372790796028284186944352006243345179208391050503602871543184055054493805253903133063602181077182168214877332109145917401706200678886519910433223092682137074416907652976778780054948459447479823866036410279315665779863974029025113203051754066941777792656310898727384153458623683222596401444870408586586230076158199892496436543851733123307851184289231435762755720572478855430867280423081270977748590554415638356466232227731259021216019046631097069564035765128217101277213033931228053547552626371283747091514117915396746531678308272828414488206319104352852895945171081636026807834465004655392642906951486513656420214631756385356420477472496453120192500626735884763833326442462120519967782649829740618214508975448083526882258587322202234007082035631732562295500749759997810685804930721657555561157942138210036399351281693200160248224318060480936615845486937601790950805910696342821988946862664684755205277965502679871582191233683423019402455703757995261025237608324821953372901743807871880726781984824241308447529775841350666289499864116321263801892507668510956389600326525106513365593456145190537474563554440631836574316261307823190594837818878463153678413167884661653214907452744767753224819947409352914755246320785764314021800483388549374193733758080325906637246713516197944940213732436225853850346941610765292377997160372332314577238643558680667968844390313636909256503162449165919977494658743589599397251083586383982264017903541053912590722526331522972023656397699893150000530223765135091821781272821101747532759640391996387521952840788627859893235583241886375090773580423509984460046200107023204231839684228297685669816155867761199860000751130961161631207017374232319074215996884098340967920474572070524911437466496496728240243768789980166480427236785788571453685883823831877807272352451837115064275697887455285730510080073664640575174754228713138251592526649759602695981341647518934685502081243658375418138330959147623703434170185140136605036655405338539424906097075444388120610052675009489683895171756870611410974798061785018037043763306006350677943092949096841823888592244341719838613443810620414375407301404550370928348880136643712859866560710832100861719582010764056761408733384104159693305808791559623052961829240302735209673987321883756365769945238979546222731907859564742645175421497482938605772770486136915966819785618673593173945886369017626573919258911721826314790043180581375099170637853875315400560832978900472341155166972935239048761621696618043504062205118143744383204700720942548609222265279794092107782837989269014731039872174259575937674940860254579690441066393940621676778234658679097587372442942360519222434196106553360965684548295171490874195465274109929049702308291894246020181962514513779913983725640624877605512671391883765520213832884693218984705872210672619345498841867850525835885189777098967830107672898577290021124599767778274877692943745341266444864230960910376823802517518153292984374099439756929442836391646951259824385939313771514471064441544037914944228604878989749649255942746069099115551011929061523607888191350753662102159183599293220851116324546475364035391352275600317528627509512560821355923818872307160674347589907110144124306552283283674684979582746904499457920603348810541714556001939782831125147877414483493734604325483291036811180345338433946139545855737871171138693758086611108185410299695983813915465647514310443439351706000309329879015267123232239517354714373331212125248736631224592691372991336790218015236892900244326223633030876782245352318883284110389392236907482424003383984586133593574631790497565203190475495736019297322970400052435693305362835169111232654194734842561273905322105686550490291509155239038959290026258506841041994567609397886503492252262070099845151569996191567817560517814473614758964601621088089044195789176425781571415783139389564848884484485645050858947379320313525192574115922710398258464962345306099130765263744376880217944801868453910882766693022002565688751237214226058958982608564815163843059178137963712052794496999159649090688163177453252077530817869695673034247332378522930659440863249782450700174350424916849156587246892018493169184851095836325240389070100551856535221400329451926854091433327940464246977187824394470414803121913207080805837935172233682952777603823300610303992061605415986169304206363143506647331606501819608405923640417005933013692387287833780143127466953278153988235686365398788536061393281520634293725023592722464318584869602473258029898185598220413798535802230467616844953727351334353120009986330367699001690230449831457039893943622729468791359509917266392916456748247000257697018869680710456966082748772742548578753085389608681504209091491068250331575976721057782059932009119581617516628618972074224227203503825980611821411231747824968644616391534930657087970757598598441901783062772593647915401618798969381844155355463575374869725969215064393050941308696045513891743855943461439502124345691366915986423347881289535952852673473320902168214462845750908081056178313714626372061149925478098446922383009149395268024886217208354884784764688261661861241618354790000693410124892495066530967676408794444687780560289972208717294559399913223899791461379162804707303884207971499870799598825594534653686210664507296783750480741938878857436786244629823204928090877095853606989020284111520184036352083626816304370650640733533468865493892963844471489657001106642386091086039196108052806417690257493420702499983608937527141971742964981889581177403990351569149474082492665772397987670520217673672353323700621742190854383894180144232432455359767934960405457134431419295738933676875269481142670131598355746276383112146051165830044391959041930438099445607977661930498043618889388903715483044463454408369125379716617799772344870166699842067871228180842067361584162492528955541487216685504351145186675794645020229654727520733829010641024997418594115764383684026219982445257511328957324331496463820523863664252482649693645457075422365619149688093630108830227715239073339974829334398572714625522760569939425823750386271619760082355183247071745245852098879870558223948695852302342518975642637385232608176471655551613907745917274396694182695666161672103030075533674827980557005181485671911201364045436057764773901900972701100690132085620873439909236324601903746620469486804071706296935414826281762473491778766515844398803195185015984285225392466977086893919552822803111702252975197232616137495207939601111741070393503651108655361443003988964006648108099738968798052267550347657533767795877971022617920832940539040608810103384139426264870086020937060645652189637374979641427916716845444049303766173430595908567935987347738555329147565030435583891276698919575643654677517300938153577787086310506447936233575948876718338335169958479854927510820422871167081710584396734177274739639652492019356399019584329566370839878501842144886052537146947468124312474037548111082346118775071082905430720623404725478093130513301277496463489516884225874572619989722524969954162536525166736436257753302216759691587780831290493489212100776771901346907180709496041335969133751608075323749965287843095721123488459190307964726263538045423307021722248535165342161105348004817758365586094338401363565809070692832110927303215110437789648806182777822161823722756575512781851240687254523107788637424696757719455953371718849404654358268274495865763617877407295579401962972287240773178072031332999925627406600248130490696642504069150727798579829730482918664707990008538032128152161554357782450414764195214746132723414617553769067004837912532366229324785151856535447362484053270807863303993438528338328307960889689810888564115377058994381157385315337436563846182382735278985850098820791620404834726152637928795057766457089540249865245393505901416660344283395756785164343116830047428054325330211491207257647195678062187927698526917534605109861894207949971819864520439956799244253089027132105626586839074900148099731485524499376217914778737364299627619348692074761125765668279318872942131348728949202770706682492474467754518160334993130489087577430610001558606454131873453470623180829975089369877680318918040826041502985200547772002264186902823743175271455281318434861933680065529537471938235686396706285823733987681664563920911070788847256749283158392162875314822782132701866852024753725906169972836177430441272815675099456077459317491845947133392024086836652625456757771003601768950529769667499491517439652662667894081937493798977195344936685584761525296850725783050366246726212969487867294694132403662119703043662791981354090023180489665873784083666810960931436349365705069750814802650181877095833051042402022048211557376330040494311563232165946367867805611682788101733998921215984958644017712098363982600776798700445925900522232694260716880727503541062281272002478545577152248386296980930455547438333954047543491044127795840382691844168476188792125772062461937212980511293390702389798597857762402437166542682591339839103257881760868549829462061762910771883613395863439707669319346803737150181617564325504726112464559249309438967013275652272938963361140627536592535174886350836304978065885246444145974690985046555314316791046313456352488209345882526719234315826376288942013366697908501747674043535498254516533589210794329760710075935657743113457713510531102672289397128351731257968729712144333713460506127186275959549337494361238671090808996502295019438414027359227622240800804771185937653300040164135837030993743342493547513099977899643351170695625383564643842338519191332764191430767554319481206257259274696111655207580590317927527511260315725364711011796487223681023382270065465358097026486387845900283463099016762342133437301076467876775071175526150567487773996022487036639831035036255395349479259942142247433319001782776811760386719473033712972080214181222953414190706043011109342701694026359411421323059776029090220023704003056243938697010696916951983898130018961630050866958467519501136065161065665189859234184154609545621064669160407150876867961208627386907165208493232085315977580486794233385758687431124780747329762565339740969647133105813103784346453340498592402853913008235280556086657961520487114472698355661395992072723398359792763569925477536830173260613049430395355420796373028363705132789470113093499370314069867928712341744282179961786208037278676530092341140006480888982035953162491604670319162575178503984748561359385541807049264988273677986609462288760264842372770578013741392498133193250909489564520943881219962302812968281654738926419979052655445512366058480469533000764801577159457424293951624337685162433001763757633185430260112309426355002703939324255504033871662059066427764767484273289724633557958866072470567997898414161738040943091403085651277324198220068977098191782353862216150701684985910212021819245237522014258380335501833207255187317283739119287783524100337346390150243127365893829681522770523208742865279132439977875608957998061514382463541584562119698411374165170977019962473651633181421626395255491097067897212655143585210593310037659929400165341341431710010413486145407138457871372036126495367811455930484852384812058893450982049220420476782484087482968463571808479506147321088149367166620367557755780734986328490166622035194574797819214115088235478491002415602185874364902354138367343032592859915136556001217491897839808433190928336311905476415033290474485559426959701510693833835148360608308268160043139830645991326004476626091623357729650960097259516198976635333611686409686925142732879896484983195376209070100204008740933926714523277449403234777685662083557557911714583002163135213301367605574170887092712334103554484719047039813463686915973334938560419523943842690170346929368264770482630814754409591112873194713888752525400723474193062462065358287390575198358703780853734111857307994197992554874258820154290335703046275014986555107543729168033175979705532637829190109288476708101522070100540106068613020419696167584983240954725602573788041340058264476227911934889590562046560755694827542554854845503933785761719453302053515806677864448150982874565575880755709089433820972731602797188479335907673187343078981939640919055760645482347634072405623180519938747866865146482048159941805420867152375167294313781607338295526166530649796405652452643878758704891069111743671667120297058931842842669152424745402172750230026331625521480630699890226191506737630435033014134711141029498223787702973486497917945450213846032705396164615227277724317796027462024761079480598028218244422510715061472566689471913599700847907292555693475065222348893359945261605358571832033322512055650033499640415095340552735430888252539855769788777728060001386670378638371884212936471524868307000519902670155904645986434277495200821235451123466016659807707591928164579482954753741605368222379635383822388898262416345020189406664343783186157395297069986407971472837272622765816307966450246822372949611881343655391679184472534294521193339402918271911953258477241381954511052226229684632216007799751414688810725578999625414092112077197325208142662177345169655348931184468492032269579897085449464737148460592812510802660961452387540400536710312583539868287446772059883031543855271789621108239435615708821047423932991356186651835278650125761901403703460627005465077611882293262995455011870000077409045078736610455614354465029018813598279604296283048269934502828247828958360146041227398954174352534573039216685628369511931619476166128879794345137259807299378404064063693881388368607803917126567266745188698100427102142982963056271055098945302673268747580257256812866621641806720985926056902526991828323956336631052535343201072362332991462068898243034556130482127622665508086228282119459709193886743961119378959849756386525607560877253268266964525420372516091463959000277205291682166673285035842447824400435490507414794034201846816605861301278986149817369184399816496458699042809207259704176282451690850537694389988585637134425889837784942361356469756730268231342293512737768404368264189411203817308847086562046298721537763547980752885034098310738126898316366199643672202455112735492342853974164656307513419104411058809410433653024659546211719487528518097905346737426539624761981591081120406695754596059847133881685254807235788730885317292570270232895558206577786511125923517129587988082421344518406839033805260702790924800945018651731183990994920314811152387823257705242595376464563344695385277818938731362298226482006191461606547295875344685551738572674670221876483951953275326817982731050993580833617297187495168110356958668410771239194780664708037200463964990390942647262141718609080549350177868128814427566197384818721817602707060855586098182368524731917251422581716338195452795186384785160871937030250375041913214059741675068748158084821840327224818521688392593944376701934432512549927561177959872008508357053025706006638770495566329337489453766797251731294846500087188563005662018492896617555659724360788037061243892522876841001289500759630899627705664178571076341795103305595615750074451715265945211266541036377015151645981766778278177277715171029765126683411486372784134064698718398950895163148157631021131798572473696048745076922750397842150052135971783718228956621890295237421813021791974139930295591328934451482110873497979910378891790029505211495428142210149022275699378069734623512260990867487998835946899718849673478169306014549243881349687347997722057588057328852221321530099536729732027873131057476129618788027857111100609979218617146164019603179461410036173926923076160674026260311596318325367146299585555992394279143696185860981472753182244202990454988667392176639012884010451033936268972295586396837296927263286189396031606064246218154387390362730868581758985486824187827220094260251280604977709992818363038391247172018570768690717642345718428789016729355883927097934656283558944831317054926068731596649612271786640951621308843552430602977234558893832999177049580121736647835074565080605027396141884020948083406492377098767818022335568893808851156006175374389252996383932683359299354000232264021240209355745360070564429030315046457519349300350885916016329912634599082135765766942109426722133981261099390331599266715782902064912004923566299120267660198479084122084942218995768754585665650342705388281391980665441848314568163997736979411617323651401743538367805011319674864012024450251164608633879918022627215481302554103060473119582854543592559041049488505196674761927527104153729222323560260575754127210110180909700401847954513463976562641801132588155263874943309124542519851754029844217553112196296688332051420183166740904215731292096496826143554336766939045497516337773167411566231750818347068055422008066808362546814659907950477378082628965297564980790230426801484107050382734452817843359299167500841516647945922696698635180863597371047005650624838344069818825416551683374753380337588614993251811838143921362171339773761967196822988027784908620971344452133973520296561889403800222099309699264126895526830221912143109887208454903566178313480133339201918717337335621627680785480156250284479355375640771166631419909568047630098905873138025614998312577754525937027592557521831230358744837488544096988297788517822805126644930355211907297350127306357846851589103373849541964877435886756190948312249356714291396760089859029187284148562090755533144075814149369459267427035588996453389262162945172568439237174808963937045913442883078730125115543701282560432680218056630463835856635348014835803669931065404173968036784437949275644195549479866958935079742048456649787044045791667081565304761732071983983558762802982122321571930808331832073809425996505225011846476008561130014934174996187221415991765216156886750499818515315168422337095250687611937489054485223686465166820804915800849057000354787608875114332964595122493595544780878946105850383740378414478650667912429942035721871587179572776685086356018092344185968808595165013189736626534420001440753350807391153338516735792796911291419377373423248558953972598878589793046210999948956473540708044545433577811742733360195600736392291485895633913397976001184343732821361207817529923330780777795193465214793458537444629492520596407539071646172585560910139017164163108282840849775239415752128147538056106536037519779044947358112267751020781284301909346653511810814261186550772116274683008922370002373081605206497207262103257655247600869304778795276134593820467711091327072822018165766934215036903053767916107915014068325541107075561437889775086291618587969229521269612337748176843570915942495515724241927587854818961999050328736778353906285490024465368862409484250344716507445769898169241526486813495821575293078543716838223621852434510572993007048821279237109915371736053189192142043963994103448999656355929636840616139443018569275142091895249684834569907593373126993767007746523198607018584341363621267579402641602639628876612104292644380973806643905661758882278720369713851620643246283444578073445536008357452123958686946895025694734891307893132745596943865469267371325185154459361216101357478996361520194644764130403729387943245106793347121467107087485233316849320241992094584770572497520080540478051118121822543198276542869863460996880951087824558216370214539719814043276597846373687651828460154229549231314181882801428636554619892683241679348578798990581526539971932940826624041971610749905993851806008339461856469401711989789466579594108700219449543050438197935098904446461513141669925762144760640161069461441780182025046562927227596290617708004687471547246448554896579233397683359731990421436433815625323853137154051941926207863034545001815117094018773439033026811302148225394203279898884245117970010827397660377881306149681373671565008842620752330277147741303221388193818916968666254455505457202634767544815910891221602267305676716360501336873263971500382875491617611223299082378465338621611048152125949829602236932629933476970250754066360987190683026490788037409981344403946172196230201104750806370635488414224929959416616260012481799678164545483475973552307756270180189986323236334912591133657660772635335964382611098206963324944056740854424469577771304837028567063462408618045643508451042332005387724848209021175742126966585803891673354737063503022416035174628092785864768821959829030685503092327943219574049402193494231745576839541942440270240369447566562022193984112278817659428574133062679120464190013345587912463714477858910336315218954083001241201201946593053755452894283593907529431504448998241745478652786589504690721435687563725433989787822424976852514517886004734653149210721608496743503239946291977926420822598406951777995212837855164610900375947178018387844512998269512024886396896531223861195678032629295373596471667695666503392538903685514698268953339264497497026161140704533588196170652706516111077145813121076426463301679747497895028394157290118129117139264351006620063318664994463147178288268429887133427119226688467107117748649960977862749784016620227339343610285691761368574361556842940248370428768999260753728949714054402664880313081463548208956225245592231768450216287822072327352550600376687255769808518883126011483803844288091543165218505579081629381292112595269652806188423302563821550209915393700000514433697625200881510676469199557092107216885818181587216394521316802419088507909883454898320411206403975349115555735627191693055609084603164009665143997860997347631171110372361974227104788801384892991523958502715660349904289591188529223843627455177095629707830236523710719287826784473362453476360323503338456475156094775464982165164036951772037014961597264179490488825747005401541080106412888466636562494789817297308065094422938803852742490840970550099420116863383468953320768094794639709292482783934957033951093445828094537649978478558980737366878613127356872600151765968109464583470364019494323038808840096478227265837612681979597074335890653897061194003366015545753216750221233683666128965560964585081332231074431550451356769164304447462556333048244305392891414107921039965037842995282408134286842623813984529365816770452045141300909508604221787624788256020550078659988406327395610634089635663162995077951581171336220536970573725252313377058477413009061818473771263400743697905049092643704805868130579531322465570033008105071738561230741126995743212847359235804098725322872015597508204286996923365910221390136414772629849051836385216144102374079540555600939209585792515591623787562451889870060397044549428306986682792041513522935122029953377477991382946521631399048947084853918219700172347952164747977131831755293059285554425123938240774618601740599127940478986978946870010487810895085503392236826930572968108679621633725698507521411093743085619107381558576422078588047303299875305029394158222359662088811581066903831635405104317866997994349314419937327432404903292430254177664320753905194445097168472877504213803717442701541089580461854627208700558219016762955410844654073724026660209444576640132887463579239502142791243917084345754466036793623282260992791318343119550034221338527662632590561800339671988217242131215873961566651291988548539017018589801713512625246315932238279174697576287163341830279559396357415387055023465054474607755562825150329246854354493299859065548767289451652472017883585560375426173703917276864257508273704923493065534529450957545745990422886514937962068876919167130760390418174941920466762762140871790431513881149348315507785827782903925124051722980485497168739658088754676879407743886197215724255967733702691111767247202821972762631189871744045898955556254171136980652713804749854070311368058651139137275920077986754735683295075322805934956604878882399444964369071712233500614606309252993040027502914465650895743803426749603160076711200763966090855549676859281774344073268201464369666380823883946181068677375503104130291500801437478476244798913277887931129594317605113286088398656789413689200361727155012565832384540309140732502510559517209814466579738984284407681762072715659191100105417242668574084331614438348264808082202854496000631451789646162912550967674680429970409567940780111967331457608281431902838252892493163235347822845283255253258623796898547977538143496150322026621868315765962995467971747711750590182317220333136870532865144370439766050164804002024993173427621480521549225581791794265647116374596195259098511420591201906364005352680893566437692409268339325866504671064798119986718095395619275727377457494944881210718960914690070829484111835588689066431322986597082915429207685678040759379366148982108125430311008016459953237429612179848923884288058073878626525907354703568192433653695181699910704673258577364552809448558999980426795439340736400497390317743130735722975828022872057123962827979721984948677245655679469610181889305952247800401320287832908024911411973063834097446028747569137657275702056749550061944559324032308608633802698243144319504586647737473908545132345742514411405564834789477532678915256674867133791804351281606419959998548046357750369894789545775799051209854582876827806921756380805165225132973497847280245055664350870636365117968271657931242379359109227261596139367970873418745146822876270979655010824484426420547502217537108367180911760755120920382497830870296400992142389496366796366955994081171005513424030964184074335595116117478348601257497864562832858656518440286115960275414615471635871140542901815981893506952031927033107105712131384605248842165568633521932855273761845542702847603104894619494315675609046800665178170918416224601603898903714712505254581845419498337070624517703353463169442734170348380023482351240628009316684712550557496363333445211254952314143667889485471736215978587262001240705054098574974137570248062591332840369333593013732359791023066145568816352681889561077162519579896188971211695400156654791597989840635777624750200677612509780103767641728877140003967138910247719335597056900877475418730463281135444890284383381090989492143494504075456948244668083852674649649119632989746784987579720407130034543926036634962083412017204504403411707819109520787829258585263244236471171622833927172890088870606363382359202176485168091446897810553322049631182057550579540061284368566442231281301757453677112515215550807813069375107828850923515950868031204008752232356509767877225608653022221331243540329071062212413428663642398804072461917741615292773808002426561370971763738513526394810320863770615511647025983072370672472688818774717750436311362755290531552650205176933183267883516629108978647222427257761147848663698399332495571625095993652537307261318642002380582007682491276158931645335418145313660216374276842446037591700734505177168919796554790677134104992256058643870261029664327985043673472181686737541922963602717829028255675879169302668948916078782054221839573460344346478305662128164727315943389449192738857168339157112645010606492944879395544468525003251557125024645010887945050915053750755530056435655637205829979343514088781878674306401103580901391520032582031978697887620522095485899507838549613574242205281023410471361583937374189282793374255827751344896618635137919137292393571807287095290888356091086804304784388008804472090684218075452368647085724230165575516863285349479539670610254839635678189906248215895831967750929517038810045038847952485699521127301280226637334007538960271096551953880787870970805913117154804652362604625955081209587795341771636965659695764596561736005547477851885311259446174641137577763698990586735078089940442291654944976414122462161939414122081897408267104339990695931126359267227175055190593333684460521452171208809782979781065033156722001199074765905357388495340526912522233437574294681395521111474373335640805507248712676077962095948024511909423864373644816318561417793072184551227386258471152665982682777926566559446661711221653892577898569885144037285849628989398282326551538218612913345182087039165391321566576064874240459003609710475641189258518187154791290544074272128698695346874563334967052700643410245629586625561097275727074502372298991057911707493683470333676589492934637183491981194941584197413988282294379498897350950465225537185079523091974159659936341580895016613305276658128519434014356353055342834375131118796925518372403433182793899035482221700505865202750256410434393182684286038451240521286515891337096870761919563680831697222523330250764653532045256312596949946883735566769251627276128001078770218321526640783404274673994897574033805997037151241660507337364003092748257755105283660898236662593508591388783449170784733402780396156730803911595644844303877983569601983514425016538679272902207969195773460232777096400058089310054643741164690621075625359616181690618768499890900382165036337706196449916664558691815764083329186025226015858643890150848067580388630893130385564308234159062138928798622873661563588367069571281105624775180005302826172195958164262371880777032866484522894278765021641173909890385123032873238463175417658242073242719813163178213208959712451675987458275483695596026638953055257833779332462487729953979881655921752256413136913967738431322732580693545691728966974690284216566856088884056780784863232696527500831378336510144570788080932181796017881593733217285964853955219169503025987263971647906585900744803275698125760039373485705437355843779230351251146990001426180405949051770944564974420754001362196975427439383688163978171919468294497682708168028323037688259566440338126802267755969970817487185395834640787115781948255749863727591725400300266564461196274145581017139066192330912812746463181279755494300900582290054010528910636436238724048293784727726651174962765816350667534935911096321823878284351489461094270929206171970653192768898803204470793047597652631052284112877377641861358760176659858860555972375856226111087275093922666056935440797889002565303574607808532022427254130443778860153536218408135922430688055646462807877906794042853957592068599534775301551448195688070895994515359514374198747450788430535099583181373073963267966766683858315940185130757702965926400630164392485679804196161468606508036630442848509787607446623507846153938258634146013622177098054419530287001021089214676893357153537438651410354814273087712080944228717423558294785729686896946203491808143852986207633039767765560893218490273065778182772081472525415851828270306967061779600160982433099028682800203878023880762040329740769310425925367136034807022363406934591730806696596810088546775896204220993339735598014699547303386671836545375157105564863795337533139836805181994430092417929259111753801619875021358984376480781288721893600345282049138842605041712183232313402008976742718722189835288284828871279839692099038254395320303009177747090276085510223928817473871723318620061573268884059275285420460518970325779965696749785019242620079667959513273365235904396367943907523120992185065795865657195626551320232162558189388613940289690627521977692173384452812134045908391084767391801574053627674214014537808668877587323873443562107621717238622063922059290825885345068366423828730264364043661656647747418649449448744352703835106016275872952509092125394253797380177031514991678434017177106833971509528908431867743292918276266033101088851394080043241209091090708290317599241358607783637577303478081455888276315784713179042706510544808143547157259732112265116228408294691895631332518904243075260928950333126865030750973634226268250272097696942682260414396078972292726996402630162723864341255842190957441038916299566150641689849779497285471561515321766890660147381842600351552016281509046772158689144931577767968016495181966268518692608427387274548244448961054449343250161912092437088658451344677493602805058943430973110945556257340926311982316711243124869889322115688160964444993363931427152061095854869638896540643131467010054512770460694981497250033169735644936751138992934528175328735201900707040365517244948701761376385202359474961134174196850634619394490331545281436718520694259570461547973328444142806242659659365174921176475696971390971757727299346446253363440142282451294544245597774687582318400985034169382742985427493749650859628360883142645785880249983496544511251527830875373128553882359958276065874407103636813133415500758192804386561092939936728930356536593997981617116734773588457105005362217251725442621397466310136784189155982715223463651408878730175967918791512923098384582782175855594453189597834143640295851979971235676076356733662679992301676000917481830080929745203672159441138868907572820328004365244540655758687738827383574605154398391169788364157627238562092098226480263069048463633697461055102221640818927850867406113924889131781841845465396314836563847849493459722104147323886938302882280918709348052123020139139381039485874644316183474781404489009771112602531760176744308742303716536381131252958045922815123279006003731743305024749954991097582875287388931901303390563684045805010894586729049617125644539249207557574419995204532197586914817362947693178755308655914809981176532192670788532868812477519816736937834679174164412218045071780848113415454162831990153119067472300631275385166317022404016787554278278287720409192133868178449504752239101910311136779259776919686600162223560252742936261325475535892064171144688989316687786763227586101458580089278423511692249178797548648312666407007909945649979659250405377143251765128304909448851136247969307761167041033887990215871259028845334651290559642507450561526975890805750517686402740478827119621380639290389227350569881682913944639747818495598400578388342918922913678254676311676868062852880247691702476007289183440481461650723193827699971301044749349684392096066909158031490473524843796433297761687083177671418962566125683590567575371540992837104429690224017701515820270780110090722304235370832159182224337464884021347108785902349686022313433183130731679427162532631026104986893398996589318166091924124796132791081119664360834167555817031470323996409349205256901182300108848040124766046597081866939247242775324868677300049827064012667971220271806523801635282652198973441473944337356501354057109512647062534486700040335016169179862086997180498247429023687426359553943404338617260314914197475604331184861460588707614108664460121796980844840558870240409642429839108724956293098049094842134409033587467901826635366370468659233068420501578323999885053200704405155533244249982929738577773603068999278783218336563876616827700324511606539023665658452369173720612515047782548502263722548983718502274494303847069027578956713935508492954539768066842929855147045379648094181833647521106059359007638722154758231886491598226048777311242007238562897992543968989460680118988151435712829267860752053411314530684842866138068309884048244612054624917971988266761235932373344786172925364577558389845952339276181484667164948271438337239794140006339622904888125686432508328962547278147242339075456791699146821083987328254329882985431494716050339961122821275285904464716514212867858724618156425681123966247377976964579656781382068329990588261117705209806968927144301883341658989209980723194688453428176719601846608056962533576607513061770880158387390518842223601056976228328743320343243268611341977843893663548410466827600746806496863965462334880925382153224753521849391249753545673054606303016437261039675143771199597769003549558430657592305440252504429284751279157128015266951490347899116312820251283931684163540925719870826498893672347898396463818663448815202609550321171389705811743407346784325320947885524614555717405941555208919719990338336533371906397692834911488653738180554645527759376743023142551508221896382524218622449247596692211292879374347113942953232679514562690769033088716918999347902655584436590080253439654172871066782650467672951327932613469893337128255173918948415788609253391638284214137281700071403235103090155470384190858101289612859581271160695186173496091859934160332759245580413301597487269692749750055493159641764830444287065037126656296658545087156630211670998498870608066305741499667604206184272141254204484531068352113071107193818964988306484854784933690065901946400392882685654424173636068214432116910153185167957163317779191256959869270408829163437111687994216201816310179860839038212550247663305679856640417957762818583320773142101881589655518734306482639264789526674495775998423243777078180877232043771428081612159859774805252623774062791849553019581352054600983849041606771288510102869774317885876811412896348910242994398980222034257714539846245590900553476263525314005653778664028666078338431670959059393900246429163442976112648524471467925152304490056843485685740360453292056424233625642114596014442561934862444345487719019356150755174150161822607241113403102139602787990877364963411547369028814795666658856177335126221597143368279547364288872325197249432900005808065532979291158869245858069982195329334309273305193160171791987008502087081433134778692193925345740636994484535868411787098532457101261291249920232931958940784544784838169769978681647127439212220089390605258187370109586667647281381401009891123542917409908790685932213778796778955926593675685068573018732628337459560501807621837999673785612524184676865272103298469356157079064073767182610956486345291693469132054640657260107185072341345729350363235744403454035362366458774740452404296186172257491021517908738466490275042098517182102835725233254730204536617349079934330222607898511321328482706265292091081482649039850992485068986305383615347423697925939628913072410036722884534826899806246956300261621094303673277442765888752641893001340266336786028104406133235261596122947885820794734939175410256899936244910318113594234189774599726913241333597372697828503355932688180821224806412445069277240338991522264631513178246839379651125046493347857754321638694141218047122122669298942955744880289968535649450921711647684012791588394800714610883995429154266131788444662957227703626339145533506321615366607958480377203858607712713117504836095234034664263271503140503149056783560077275034874261780716832336689776681201235510021474529319169014341407541614526829861235101518225626464285408230908980485409907542893533643347302466323179947676220846306849757752749771525128555872073990002840675355277789268363986531876566439768632680481164834696954265083176586725932372930011705861733199534826510449884248151313802718860594022945365569917523216071135857998233008879727239793960556247066335860228223783677985577798030999196125942233415599832336695763149794295922722560672778421073804903791746471316068211200008119046138677360073677451383894562304409695861960500166291078150229369155469959605882706775118271687483901356133882488819700581794965799981404890524125498176546762932413583166889435540977807489145874123060001518697619456236891346641578123563906328241518975552362026484706905140960774175272694924249765605694226470893967390213499180456851674402621829077839395916691704020584869549943265403063202965794817507124428538410805523864638449596886187297518097184272002409975597094598680581962357835798409744495530889743113896592357610013302664801919593887609922982729259001809472140864514392317485118448500498865049004582170431556463743595273116853572323280020086955112067108939716460980168394777965405641158106783402262040021338641334831826467569671808320684557403120663667785673334743465179785103390573332897732338785193367285226244417014153630709835934585587788658622583295872480810438024358877594095550093167657003574578934888709916439503910982608799178849295500274998163187365980879249244009765537936065656512650823412683882237422039865483704684841161935756951320483161605722417160375966436838254830278851005794554304001139042207488967736279734793942305223227639889432175450382138287027665109474313624730430052524535954862664899505414569508645552689864931335450076524841572743516026414852557780340303961112907981463014685305975002412353427204016826915427961622316133814817948026665932467013516720705810055915639405712158904438150675173912126216103825776693848972807112129281589572831393249854939055571892683558006803398476207307198112133292576803811413990477956223486253806104559890000583348733845575753774158358938635817538183621089500165345285915568778860748915126430846355824052750755489356488616180197507688017029573190345405506059173713455255398913505964748541517971617236126046363435300073364117521779098949238751225355354988502392464867841312080602105798419688345142169134895638033282544633720551284924124023407555859089359588455916408557052227709555272827765403063885987790172872109179321521033722934302856105003719349274950389705846314998072791438028689124505624785885190416754208312675016930207944386585264168532237222487704701939560735017271754262453086415229579827436214630443545945396258303381993690226204502884849952337934375645364315347019370267044670175230832139271625061868052508610276142752281108604536817799273616461116018843020803639471789215227347881120734310642004223437874549776151349587572764332426677125274693381130674643997274870751338189488069750793041952705559562533514405322598478187702582445410894451585835724776427727751036760085553797423860739903856271313161524468183263055265169015483031777797468339432752489812483476478168254843720672093335698390505432939662014062338471975949696196928051269748721322529046674460576625895006166091698962386581480733467566170767498528620665336831803249384764278667078375734492993189993407499237668951276631911751829217667830680531579178816608251252191459461240642474983001537137831206567598553249276762817447491630351244454692714846338463041093334639701428781029019977815835453015092807090822184326817877624457099442545014825272908213624044863899730686976212652257836644091764177101986795326127362484081817097416739674629309446845120227804427259917696712234254654067572852377753480416470630765389856634800743327090096009555254608208556275517651415933720262379576358294416101662394614097575453147344397344296177255594461039884169522731355982787786873526901233854816620759600754135354344243246979071026571465545607071696860361818141106750791296426835001977846512791530240038798033271882963029095816992924341506672994969984772054045397949258562196341644145944538050466399462674023738024367850154661453234159218548344790072342707114305585526479959114677643179034669245031627058381036802506309954733787392699080445893684801641741271994635021658712277197309388204571672234801306784991492893237706595460609528758810458898891997102297959213878629701878224546913615972256985496244774259879124273849267911325545727824666905652468500404487531503055121947872081975090107324642531013117460674326731838418198108346664939364220080581074487271469256985532310590866803380901019363968422121480334967024296615766937452794949203168819146777677656842121444268227682323983197769473467269384964987808179905249112889665949437920204289001669447125315037200852534741821624093566910192571371728814226992486849301787365488721990624093481949059449759723634560095009366928224575223691166532579550445835998654480092060849513123785914281040839365802663635574391747197531113966990755718300387293730808587167629865940029065171222883435389342927044777779140403432524405680731788230178812828439147942441706723443340660908351598306879884733929702874552763867300660452806256925056357985284335507748182156217562145774767580897937455390200815911731777375928394775514548472865282254658490583268571153594062527917937452790339469370801353686885739858147036406836260358502728837585274283208489925562732332269233790671146868814836777713128259220496797047078930235263393958171524078073213217504662035826617755034690809995530687906883202562757544762875548466522081451579171067514918581531768750692932118546439259781134655511185127116116134833371888226561636078441579953516021583282714119892188734981207874134907131678360023788804646349301600836396233984566776465424976736439262716986018031366831998333523456696477388334704795214198162365865762010282843895915444979383142974433604459902249697339348737057583976710941924223264769908206655703528560524359831534321539328317565144271660516392951472014486043997260122851373433155330357000726003339849278166278230355453059605559623157295690497545680337337066120872057550147311428910504083647906590794091357761807114448208980104864498475117399449224816809412960059035808691081264053656056375702896900773421087767937565886585007006763315430991124462681209315572913277664476238191458404533326344366794171663753892862238149254063000717165516482120100065258999744247789071593803256028039920432125537836695082129463050932237450293274371163267357213230706627259110298248847337921312834821588831218777100470726611420141075494393848340721667333596992536853094413579323862788388329753885516527402325161362398524675112441419894124895983810146475896964231042301986614053551191445478570241306894777326110875040085235063964277634077584170554096526951875983325669512030217991782317861495012234383921299682146401931308202773446379254021580962926718915697088753842897622863483646191457965508542225879759436887858312668222372499335264828160427880639764907870249321727520928146366496729885484365561433040224787272125449751092680082474119233512723377843840797419537903681459655197698876974898192008157389398940205988576818576279379470716416274911348700752868265580367867957777287594858313788927212323972699329999411638604261082443039496265857253575324575460128799129985290711988749046058970770334984360308541589400465522023624013987833784076751083084623827765242182490837790556686226758030000588250083673009499311723748567563637984111251713237890419135231314393561066161458863950992771365892800524813083293354079572661624504372553540719770859332975516520801693816842572302088377563680483360178329716460723068681065755332830585503458483952688819081179384359600002889375301759608391313818039270240178214727314034645717003998708201303594654963873780927805493740505571420186924417430984006669263583547903625853400202796527203839400979465246754079263223555670592118525844756432591832192581438025921329642991532617641718812729796463639772245829751495345105707196684644742983469115432678858756530630675627522513556329621874199397989163598831068311942267166319896407809193010862211491325612590919423468791962745571219246625117793892974408706290496527409887942234723920122198407195803525691205544909817862064032383128994992262606882670853760259676902355676588003911124932135131614292379023028587905545201588803371338694649677394919463733098261102695722336948702786091876472521297183824107153685161044728673138157120502833795985327919803725263522836977121640212363175708671548797501421226931355748494504514170917025061066991617574470557377933988213031599589661243257555095759439850971914000120518736850451642177418730904735903375285858150708125828870648920317366120392292687280201781353130816182411697203114210129437196250323941889621838909784393802181328914079517399380554286292909824282982113279759155644421541231608144059437345612331668294168044544936154895089922297146560001802265359572448175079846386248264799278697413532605657413921837305920492051069473305056465854064809886038309590016453475270735677667066521061105875080881908338075378792214459593137302290412626036831840088204824512593296315437880570709957592241188544309558013631208575143635657142183623566045313560690301283004254918708002597655218347367661370778156042817645631579999055178447752333494933847936837496322519855996182993787111024047892159405975498541082214885077152003637518623387308329053443891081862444004917445728572531438052315655737647302753330440708502590663966741496510494067489000322202025225628642279912484015325694458932447280149588058974814061819147802110516187482047261451039818724154508208178263954649358851922280985438039941556822311271892563319074828231165451828756456037884161420445285365131358738121071259243266687594440123594901659673225297716184978321567149761160831819799237406038116311321887754969080228158182713084563232055751624714909776149942628415370216744250094166748667295262156584265918231278427334457932286428446638842226855279323432348258349948712508085289516377659046671161282386770551351512911961828085908198748981764823178206299411974663180775181967526111571177794052336309535648740181260368250948408506223858289021483470012342645457162715644622567721305759775445002485131462716588067988836499823244756170244863047667226066274932295062586737071393611146609493044044945320535638822130270124483679296208588465441840986996302417524196426170491649530300113001750851273548692613223292480015180160088569832764632828352236008286325177295110150449047440215521187301693436543521244152798958617544224244342419286390039989252826257079900367085650929224598207316521157856425328833432975693869721976711701786669960029453869509106815654531120911253769037690772502524785619947886427995344180760134357284034697097146359240104304706877344519399515660641230847209008642721728616472291404983606614219712361359852539958373353544990309504641641574580979573474414298172423089743488983306019157551747277417947891493648602075566143343404286877860516819686873990843635391324102563321013971691042982263801091817912610037131613862204109852128889846374791174016422060133513070503464819722171659672184768900199799506773301959853213519068651189089408849121682003687390195596145632503823364351612918191428852459666577533860417004253272814334699169843211320637614850076686181371424733906368259235647004969207065073978811825187577301715129430582258445210224629940549299791009351956777018803887939999952891087952322762534497668976355081048726975073671162800263346080847307619523653687693988130851655943456855237314860814312140384754403886339502214645480682331342019189921604660834076398511693257269621879219616361582510639415850472870283624997649778716302982451146689473841029056516507864898452079307859897944331894745907697199386699477843270906519516006770708299525688603755741465305100545898287867683418800046980689047750851431184089174870379441934022107839826121029024775223392515110938357920216073867499081781442834949452009325794603404052445080081729086417158095364792922062526991084732196382194482829681599734953791061692383208209879208180396246703525152312531920677557496776475292245635933378129019934618864584215010219863743856237771637201098169938234872305794763670520572177236340239173849209398655183724339777139846827809585253808038117804303670898308748337332964695609480867389431745089455654248264324277507276207138403313311359206133834910945638701057420512959110624627102169114661988800618125549078416190365007662443085194115160725009033987364213152016010338064142334869553407531036461120169624898616112067347928838519622620034598737088951295433876393560012010848047674954087492274311581682504229933677928251232495635607557588575888849397501298844439951952674663640638566701914576624629265127000827524828126085219873931155704130082208689593790904142532713575598592215669452014409390880622535162432589816153898783554812360467756597288630370293467710023164495079115969668328545009976664991163160315632902997599580155136522013208294932734020463451657643636819880433478120600460365806265920811523546500446898680231615061870885259520485785198158510915352079976238094852088055167026499527919885074854953833588579353844509042347077858810221583114106497769823480033853847143118627243272940423697367103518909075120427618173866333436530645733145525196923449730715731000564124006138934112309486710227193409920414326454904458535385982659174686172012324851070663764452702679548641158001519085249558963185584728640999607062626235038965414181369778139662501402124371444378792456075898534740405438815121963304254507956207789018472427100694318108671445136295671089342061012977480266976507458375777190818459403060386307679935401136218606065075194873396698664509949509628809343982376440122232388171491879300003999849987527915894262126774259029409243472649629236050754113490635742624232518930948017968062209081158803763471344251389902199105983144878358510483688653632888533881320985954722832973300804663648451820817917572812682024177229887675025721522576845116205200114692128636121069384016930361468462223405626903552674472824475768667851856767689777945175244636138677646650335770722559916416089157954455027212682169980116615746499990374933956948180676614779748156702433772897455653793268113000773814124529620074114279345947498867936987983108338906586560525946142213277428763563824112007110434100377838814656022038912329191555860325533839546831480116844839608529840492109438111548433501062736291038526982343550385137705465660670324907861561762140121426203680340349596746383121029529583643374374597150581346340600570137029111230608725525993083124137444769771278592458913616650184232669189635659663309085923898678428692047376237667797366695700010175745642446855288264355204869235546271788457085977321215618046555970943446602060354598341243303602807474924536906771399841240556497619062671202262110590768520027354863938555109586309027073124128016335485982411057992933342455258035934170136102313197090851006069030420731878506559125384848040130449371792452472114548092727298449256699850183845225990865317079455454403152719425602592539364716689333786945013890393871534792544708596235469437480042305909112963588314085438195191244903459518413213345744388338643537428325565096367220039782063995535001204466267701030695610417017667064532021189101739293048895227552160186985758052085691760099674176109683081932253701948268979889462653643419826708604885761881951842768933289559093615285222812971055745955760727436644347244483113405535323811852088637388385105466056269131670249468812426901094014573223698053084973465430536601830254511956084387146610150277860229099778479842316805852447323389733742311207376417166525836339986167274123303243190527741976655079230249392247003409465306000865700963063967307908539000985824147116448264051344475163727042440638063632629776456180568988262129312524399391398646765296626353845764544359690051161136279818133291461870494667072073299198638664811137140015761348828375908977408676233522571967758192217725654391706281691226030287833814558717264191171351831245680347618733297336601829578543658363350282753005961196733493975451776535430407227953502917993216479509667790061178114733987646202856554963407431190986097584816317778888953837555466899613339132614502506681392816421077945304568348487574600270479835187763750965620528622357144184917229408055424795067030056715118406178039984725943876204179911477726616425229695462434422615009860208169807662174630280019410317473141280095482129013764118236328926966063156482786068812950516151277205555295770229856927775919285061297147836529042910976275224357981889693968024792485726194607788211937127298799660612666752453417226425191499264304838831119242532646712928897214064917325179136384950578201013888641599715429421535605281061107764978540970118194051879105643537174586929864067703336823430813185696804289714986214355857354130571132391348036716964861808757632708073627524909986650981129950523681034382969959631745006791380812664547693098279447140129121412755243462683094313998779644463376560106310713009505037440247071912357510603282560312051225781723048064777451597005877729189404269545531408569628337498051136646705246930887011603491493394345967046706753554068259313644799305916548976281391888098246288857639034037280792391973899237437929012837516429897329165652491237366111704509802527755971136761552225906325532662960852862989502763537524025403298800509745592085200590841110969210531987101325164784112004610427530673813933732792121077409101215108300493941646542293946361326391152596739607497024456507288949204429103135666138292028112688868609513283348666765397520424050559647893625658986165780743764714884437903683021157510072680789823594272727030150896528823351887442947927126753764763697107478929082114330184564365426586450846238580421534308129927942575991541979148072990628302691092062640468580270672615478254180201756259420552519123825906093730415601303696351330377406747567599496022353200954628195021335763151535864721133185739743383364379192661163149697806868436207915193668120725831277334509597496805825788921447012535243894701370311506589498205712708661116347050352643629069282511373293921251653879172336424097061088783991169170669146053683690139103544078595523326302353678056911840523434400886098580982587831988511377768772936264013906292143429605858902447653649416694238270743612966682120566031112665410745917693281165785491701238357951989026448861083503025044127422062001784510586901509456888489673647701603111987037806882202845263254044308587061911242679114881349488438615939668800186393428735202094417791990102775666684245562070232923303416781262216898329702373612448743629496983597497073576132161395193832471361355017018074757438747683419973781072539412870336505865177321140595020886870800177662671219012193461533581458355977529560052650965061975393701561906670654695311640032228655119487539627409071906859879978526250746815889355926648651179624376912369843539187929718198989200244161459009315062114810122573999426919183156807094780184706315598954264380870908421960203481457993818542782173205282051251683940580501346231487243136636054989282919652561608393995447377435334536678841685839699147538067076983319887653071174131875857830404462409645988217740527677543428942896442551720515250508693475174849021862328741143792513888275518584179988289753493229997615463857457786816284095122487866316400560148533261362174806406781852487579534808559848290377292092528165926031901812543901205506846111623176246731786239737078421744297817188025179125676402395961001330112130897629188956428048274319808339319023283920060956981061184972998787371769522458604359066250600876603955709788376378616740746404032787650696222460797059395551130417443156681751835141979063111513316537851608462235279592775499871645541783038041086430822460400684021353256563704642015633691570853536334816418177781003270688004986655740835669255460756868052943741841851383814539761753159898841308304046797241802698255825935773444403506597816632022477720559650462403777618152443885424778393271271639080847154485301570028189417685725558655552656781294590470075246399948970938757412426477640176579883719021654877146543883581765630560876653898682333479132718790407548452440111181727216042354951892806414148716839510638461784058458119955043229174100632090741118356527090555619682695940375101696421925872113023361027010265470330039836758393263788438213607661889762469927589672939256271155385192821503854370186978966371386174610435282575660686735041621204966678979712540574669074319979775869519462040557628761253591580971238490726571804776939350283362794297538787696085720879180050284171554427564830058643891745316342674596403322096333451224210289091551274083960073412474635172335198754885294878074469191037901573619925900163934739399160062475808070946261476202925614518218818105036330769920857714897047405508034811210726349487368895897144992046658091724048332466962406610138892045133370604876100017426443037080659174774650708278294309279109057787402295584819317008885658253502056180890595520504872524545062299282438427199041351090695855169903994107741884484249806721236703881750434066647376656146218131626267796413032379839413570326421920181855137937880553974528130459423888551652611467764731077990199298017234369233164274912566008334981316673847864308256865499291373817586216260671642359343666202716833469594331361884729716843813973729836424794552038255243498656780510964018806456795874430436070535768978741280691945935427901440596830840887207472810501527631393622386739471923987025675022577475131734075907037643323464695543251839565174631493780435930852678886526864773493325212913226316386662551444545297025722070485463152213199423842736312671105152510613783961492218987443827462634002474382991757668619615570932880240785571222503421117603628224219996128027603310716123587363881172012690850409270411938984975107147167386487746868123393507661520780144946233149182920355617836604102815702027504420730436899016260973328621988084270290933193990716140797613237061877000841562798101759670068489796605450568918215225226361354550925642061559695106563268776523103230443550167724702988854790017007009191045504543170119502731906505689660144268963859869809232540722968730905137371385664574984499647230607771287987748923541136909462423371557742988776464905732810771422798790599896113015362699594777469507262052122698876643271555406299328746591327622105776877378664179206759307198268498409764847716203225953769906739773848966531638846214891632984437198620619323732785948171104773183907571243908144600434821583914061622419431267784179394684303600236574727197296694531823001019453907020000267524617347765184472142179563179554267296534070920513249759744586631564294723755068859804539878717871063498023015581160066993824789142045369598877693663572993090971900746069649980699167561101299234580770436347184890709708883121962473598013376982514838091259277257398859523198370243557742489711501421099362545111343756291427588467875794957973986751726207568267757595756139595283462221112838920023914155492747265201834942743109425393662720177650348807376622422160708939954650341637083961133789234373091250736448757486810168935957176669440901161731799827414098886517186776888857764677105596805336356728113149877675599570477295551048367595690080848021214524540536867084553243842108111608053302944486291627322058274741799959133643269225992036291398892605696399607405817390049991641858075516378161839235959896648472827616609718828894957262042782191096766502170026748345580609864674022618841678353427352510973447296652717662562651991115170896500055395001827759901701898917053238886149851389061886994574175534585552379656845744745980973680069428909628463314264321205592459412484088985575043498877313845910590446434476846790981446330293363304903157175582072930024476036890873630987388378996664286927415139332199944711844741658264081586024992297452776409124900122270963820113589875930691466548972945731176118053860107679951674007499513085627108368484056308810356563280511315608707144523808420400693854603288526888478130511760066245376886646116253399998129967249082826029090324846234316369989282331595548587347832029900301488838017279443105657870809941222303137288611639333392630884406956053526590544840938088068316420110863159934133375722978457811564938170764503120256513843074760685471115115996510043879286262254738595788058798836608510266450672860132249118917397241382124834433452958695014850603511211221414183627067852420513298244833796687528827128075334589494311055110090790316749544223244539480653374494327273993506779823132318839438711453344292986696775258631469908874337076736824477321154377969148635734794710446222156102802379769776532810052819369129963088898749308218372388384821422665124357469482661548444180354770949115000029379331685233208117404204334327939720272771920148705996535016281910824807688465232446309246302633368065622778584895058896646072991952977824665631202355069576394902765665482853361154438832439205611834810469611644429429725987334627600013590747894451778412226978480359891059809644894884526427314314842510410732173359994590958189667809546740759848871119575650316549444198422441799593674247860645448376655835624704995360446242902236826889392440073677382808078066698119818095943789733602665181903869921205362260715127845432109867989833402160096626462615109945253623196128923900654950673423390976101739987578814828159019163336672141817701298621043403392234078322139089795833678331477172711741796142436354191558159139175527443264342155006668562781775691461368287944861762311457333736915003735371122070170660767081711870006792702913704292961459759718544085683195706456087785827169918960170411456388591903402520177416812968510530663168529322463882030125993118648458620782261532618874338486586455517892962980751596576267134562120577538867487165233109524873381773068937354652272678327675532886610324386789632761806994651487429327519135979000188664021277558944874368904440888118577278097041646925695503312019630165564832213043190454626688035406711217952441011256248618905601361394261607505219677308006936811498121407689503833163579666929313194576993393413964032941947481707989427127291650140907358729793430390431171476012720562480910570508447767232656781476119608262942449288873021119462893018025886944636310759179330460142877151208963870714000594574282150785660834862878718473510531725696990786138892416405358687755552462047373830184480426404262843419439117651704215891802289502264418080506282829302140646407545135870563124679055122931103766619167039327766441465265894126186380048031094330442541319404826473996331095117739471060548120897423542656058819917908207231728820173233211725368108216890568816082241244671246643136818377807362827344495146188778283373697279549555773303097053897309502535421334057890027707205850958058563279303074451108334100013738394353639304557897978056968596247395209069421312606899076630940595338543834228344838244787561154046013979294692271458041774613762806091766256511660570991248345397782963215871174367860889262302676409451701340031174713363986840638006465264486342863059518400282607511824040212468426489200005794620579516633189831136375282810870706087083641651622071877246265468654146976960612180931156253651129431277187499151898703077472749835682257915949276254668988188259403079775984775268613753904628697069556265025456968798870512072345543727734486775464565710595736448731203438086292053634831639882777072620496925352471136742209648653732891107240297688128199475308283641773605173269007603061454484410529505105124315054866741339727749287450209871866169078920546408735935868512695628675126038756599028193261204654722618148787192760367639411356388098588969270201496740143187175174446010000403288800581007778740417968087256769862541729083694568802083637107867361632256094263354899125984151886817440482219478604814256224017180344921044767507606166674710468326757194931709197067579306739798942546832139414416232352105254952546886195034651148067545875654771743431013041696500255188206193700557732334264468550881420979999160220413816339884647096056377189389195566605591784998122854098129732772300461673797612225495084990595444851116560319430209410187044805858847834719502084282460625171141303094050174862658285266670053304417191767875199473276167058886199439290956717764170277656052489615180615783122520138797956932161595388093082402281050447863982411973951467823815783790827746959630174057376367490757471655340600552984391059377205668704912914373887324398532501956242770522856471165151573088342742386130456084057525770269157099280309217172404627163625518252196097326877859729891817912073718845573494503873586783551968154371721031502946486725711914868067960762323011633168893054613052040525972355031762401146411863790298731000644820753428396773991021906282715230534861467788694364963430504251764230773317752210856736831473637431766612457831698943385036469223069322030701468803331308264299183036401840616474652329038681727124294863694916396028415901018382647746668719506696977008164622046785753439272488207017160226119574741420988582546361164888627824171319260794653387397260472628814973491072741363879103124842313617639819406126232647841599384598120782564595175923497207409111465694804136458164549155466206871906195437765694061978544730390031079237996233090818558722891373570630766963370689368563574400096237417392706588585596938602276589987526440895196406087103865028794024131610240026927409351919655228745527979376199964778268942966015951402119614777018834641554041643570584869747690192182178368557598390770224764374126927395832669765197417443615503467738470124199928167602235435406008741366171062347978139634510650879881940617689243603022328269161128066246741917391765175253699866831058315405353899724117350430826226334801762359575111898949779095031612430786301956897788649390841444723895134225611046595338843486367973956585791861463331784321339968798622989651361848992167520702460805658982745015340567939548034596434738063171229823992098617300493608582315738475051560993067598102833552069860248551643229335361362918070650100391367980907424302596867215646595318062537785609500980286086532470859434510221035573512139375420896866575468612390661872911040201900205639391900159841019884711744696329719328765524940648391278569219561832383298960983637583665401698926823970098333863483773453795314620187759614489235041329822911672723189296507514015852073453344648693316696258574655784574979894598917495189729146383907455511175810750013818306377208004110623468819111330843458305822997914620773918967362481777883375405883889496287382902318842258862395735617203685200418046194898936552118377443008145914915821246824829426895340087101647128834121182301626855251354335261912718581072940491455990027600760188681611511772277791860944518740891375702806867945733720599939425236362384337978194671059705436205681855894496702383145427148736236006103189036807672114999402394452301859291312109564060361655133266677174272210157654572935765461532822986893477604679414726362518652262520988281504690176691543418343037766387863036002554543046371274731397793045466349050241892087631052597436554270935553091511203756500125792106645059403815605206895467327028816253584300714909422982834805249179821536196553260617282567688987627891921426257810865625576827864284343145140020642892787084413735812885310153156462031862686336029007508505505191564131400814022736310999224107718292755603097819313590700565623648101180542289098531305173555838616578365515769527852278025545524041574876888882250350858572165375480970833689282512446943079765495889989441986456105522154374372398032725587312100165183258725183407283650212967072239220798497927539915716422511983590414460777982929865764629333790963678023877722873511311105818972927228449754766902566304533274722998291301888056733493035029120226689528633889959808976884669342521229085577230425004771322956748980916705148097794645006266939642115054729760520469606227067375082800876773961369054744758579094179049922129150448832334222912579416343063808026327741147632820971592822687141082008281339543057011223220785270602319041563670243343650879445793154050356065330733991751970724676010975537271293029292036164868447890757666704617316046151261837972109317992667113744838715095545956884588535982493093018974678841259003899799266098361328802269796020895236116459658170135986695580493557085503544684310219632977234373536320705865341850925418017584310677166955828161948099657203157029825652105519494747069830313826324758667949099667200322314165358050756823518749999818137448023726757090140584968161955293726525782831393309635501076857443356143521924745660903557423200554133084511587707360870541145520624471982044333116037647845640209152913196242963721425169364421801863318233851182693348848460604156986889013642558363884882859081277185096602621911720622745156504639621959541064823467851418774613699124578787081692223054455098235418925391286588910097542367646205250506639650465319900890896871531466768354165542709405503014360529762689598301886630563283353498064243386628917117145803196252878715939393758275857023118029568328633351744944300804659837548504422259594340052796503708529769427190640781357826295214000350506576167806656177978981637200188482482267005544209417397780956053559968888066694543497977478611284997336465761144277400930050123930116333540455500255428028968536973669426212210243965180576353584541769379584449142679660073596526581620258805573574605425113911010512654123106334724597375271976391121086364712815240866980137104707099680275659420927338128828104436922529267665981656909515533567904822444565471713883328341390317334158745807476329864331489606531925063061608426357613517928776933003017008282946011560847251082581760584782092288217535682593524811191529872160738144910712729180905172262933325498904482567011644523236107833006311631804474442344349732587151296446565202679066528904379565672713807848891158453567048519766250975043249670303149112354560084901507407173166961574878786567097072292692449262531614425255170270848845056867096245454658934542442547206746647732853796520260369511913076347748275167371460546371956616165807686836714191514962031281419739057324649463640533247353123144141301125193383376763610217609302628503479962376097661305704409998070920126295908222279585999909282202656947981042064595254516037005426400553379182359424591989538816423929049281265828360076194031387272131812851423296997876622533891847509468410509909264571292966372005467841738200938687117002380448506321465627192926184887124893711589310352411109527330666079938310965321235248369021334539437941125648140426175260098625109890675881858565284334558971073954695046594337857916406381658671848003302908131863990601662586177916309020814562996037802406522571732661296081153403126624768075983933919801195040813067474262055690081044985495377678625290684251472360701982168449877262531793247648732956795351872588894089183986449208203207171186455111257987737077559515113589875048280728455808284551996285208240447338818743881651640869044189552521460353070216465404823694046254598791654246783384880385436316931846398130480063913911921534029107290298891109021353597663467756448910321192170835238944164938250322051851853525881751783831387562808766730570274610658011660420906486455827469811135902187451468534998874381988371776925906058049321730921875989376826835932948661847724291257599794203521065462932594577397513804302207420429454405774931512441192224127411755910977439296577421659261586165069502597921576725720846638606818017637464213257755473506228413352100731114569160295987647128832900490824026235985823733011881479000877257510969302756752835074276060204727209445400481815732505587049308528506672359096126547245945503137382254269628398071240799513378012850162183135587792188359928486506131152158580469152559303107728938813290654446511712477535732282146398997419318254958703913046324546879801114210341922767021913338881649903546539635901607908096779615781716085066517815628847949124141727561075485258235049143307954726379270078665119607456546078119520931508999944543584162098811962030649554128711250741709501561398958055085067480489049092730699062126253734529994295239206473463773031577993351329120668984350625123490116866079158956034104879565075987764317480329601155403819777340140378171088132793899367061423171684926687979857110839090386844272801859893447115959773626151906380434048753865065923087169557908538355280682277718370677585099284009884697566654164210268100083578952673676387369270329262409347094315941532378111295103511691277419627081952498918492877055574896923267937735937839168514173364916251733002317183201219929562271627008688963833007410063808678926530082635045436017177131633808457865610974906055099592133063826037500828421376682262464687949427780734482116551601302900855941212118353798420991459459024543694068712752573108903714392349632068419979909220351275498318609927873515759259336013186333602042552767275712908938872610455421984586772967709252829624945226041402899791540419305012606361588014182604206497497141981039353408638398202129323948958515567077310219760915914912521692788032980378110837856002859449906633351920977881404959939571239245691826457722319393267616900777285665435418628390126651665512009481512457599273281338849088526362003683986617994714560484556487349813576959958647857953484895124459409151710473825590807933275300727714783876290234773750567126344837864144791789962962224574324671694838975151078511587309261156074464441967616366043839406952463823425383085316858338107119917459698979046672222139419435783378625090218232845579003947769725717094197348116382624716030241527773305580520991990928170226539089579032379807015933708615258955646024892830284471805631023770031676612387553564933409485415118671570748999244127247816368981440331175111425541834756444812563329249147177905281407971472755668227614336625340740445277054958810348157722477017307576921814412583808907760935158663931567128279247480911748315587327794611474209534600713924213918185537330326663999359910269865266474932894687736372419923065738102493569748491637230330898273345539657703926693412610104684206410526270908376850328623316513377306550122537183052790922650928139639441090669633628260034546327060617510678844958412919879736750835149806894488562483653846689662534607957146113978524000618365892092336483835718388483195948564237574824117630758986719486641183314460428835503923229915931868342055046774479597148092466304157406534031864571625561358958776015650964893085622779180489753191936543251792051641401193365777621461897607947102889876160094469813851328286142604842277260848644850655416515631529277040786639936456400302952551978601956084649225756600087974861758822118854827618590770246554242447970056777963559061827178687598582962219784561309778651411991687946226265199512594007991886178179401687724382268426569790720609644910477731302478791626813032133173470973577352951792514012392276253751647966976042536876538335968159684364629050764366239478216226829730515970092419227461678728029069638144389958256653077710477341688567825988922707920314279450065983498947650494366877039463465776849031653636730953155155019157471151188526397647712259900736292175366447212535681073644104213346203548612171411762284063600594676802314724941612893322310601703008132707878924973122792789931177698169334800290989734966684912266476714878756910769496615487830895159500744122839444776621071810304065697935756277441315208931119301971361685324677026100767222341225511887662568338518086692197060042914193591322634415375171251747271670806022915834786838850768512669112229318972524120917755628719645984651985234200175027930550768537520860664986300880072856673866666209698246851738432083199778498203411939205881976929307044622147021041773613570010399435173976338777355110730940506918635055719834416461403739171661387137989479653063329011021506932885540860005339848631923138041088251767022927346246172548090361701535869219587834966709462148104512162047457240127554295156487700410957553935699394987768891406088431867459960443030898732750765050634348707491418031960072628659901392435395477809987757276533063896712202885085291787209883924785678930595478380840478732567826043489658839864270490701478734922063563298752669216597685605641418422796060115505771737463668269996560432683007586234387111737897077202405185952698743214609382909304143998502726420382498539761359010639106461421003733652341847333076660414811182668223363659947809060435388521566020642179199272890338257375855416934007541602429743308537645768558703136165193775992417343531131035120454369085125813331895182365088415874804197085585166767215058829491352270730728388322125095148131857629643083200059504127254400642205492928972781702810307099327469390314587459235956378463363355576528469855019302131044451300883204113088920175964062825887100520841929747598337611759551303852731953447755696180722796487418655700093406901945688313267696502919028609800496122764741428239792121871276750063105830325478301266098815653404982205939557448729564985767118047710632797574341172511228682033592928688102578671806046309906233630659571847830408215740672696381773494791358517151976915572290566988472224175339205084630998107787260284026857094515918543495916197153553063592180822709696251892664895692509151913851157716090059300500541258390500219817348640135871099953965452790820700307829907459055748488872438786158995058720717090079025870998459486097637295785098441284012118902718704837819972771416274390483816197746452574850193997662721671536147126568286476309426639396457366948408151239695690539147181034599801308172603811026958340239158511904507539162565494404263610889402364937758182881762540690424716824276545917909094333099784870398273553670084971666640203723041715077775792526122529409450660306016490810031698782884511477735893057122682646739281284892659014992253385416753294026091481262588869293553746450124533066119452106877381882316447939575116314813764014727242981915136659392800800412812902079720324559324086078343422393564963284068776350615305893696509849687889250401592033746977563620989502749588350731992839549054781739002975719527508698703357729454630659248846765183168319510937326873715662819221174698614158013887943101615457961756687114884216373995701164313214077332545464375199196078197228420879656241285364296122418239742269343448305822304367562992851946199671256370773764760199573257101322613617154968837978490038391973852196380747090655565550204052085206295368601087103530673311351787880053503187538694653648837013093401748079453536965093365999675172226348688785137725768953440729133308861442975335621985393037306832254136286752582069045752209644276857841730951028617572636080735496561477000867150171500978581048736197750398053439745938571291903939077149991197724827910051779947852061403886631061401362218992108221409399866252158436899312595555381206031055969452282681796455683810243301392785603764597883707555830729342690935444133830749090473611933414651019197609217751912371056582538097700676575383768814679472863871385697855809746424656359273949901287891249302341027720544983520683943175737509967984323832874356093253330620469029769991396454713664152699921114115936156482012948734126254834366417499691568021111618697579616821848105739804851816818131439466970223005907622749815326003293584727979519427714683545029944614897732115203088746537944718505245424558006340463811294121379232166684546697277069438518823042300203882660504197714400140827159258697757222345786594859052425453057774043994260156566005442626846007447002971669077328308529706119780900593229056379608420554068461117945712314999496685245742940958503810787768575340820751086935505356000567561266193133208314838582307647079637285408728536719090693391674104547057518043388960264674686124958226569515757843272682205939203321775507801870747305311441620561929560273856300600986147220081024615447066384451708900472774319648403989369031773985815328329406801767332979070914354962383005538817075886738983054621328163298620520894290932087965469741559059172290515362367441926933840508604827584300637525994546892810477187148637180169531872627834201554228286744830625429639703240826661371985192690342061501663013391260641418913559685134153752784468084311718988494770595640430909922543687228022181952611289413595542226911952202262265275351832648196692096996876519352123180500539180740217012482739193367615650883739621271813171550574105301401473875179624097764940542557194725054618390381189844799042338078944697458774947689763109576693737780456418102164222077692019061955772246057208189741887701198677679884693489703710977808715901422461930620331873724438552430384697710006531592538975805794609030808171071729240622130631675596258387078143668118211755396278695679197099957453364613764997481967853001069586517570829877945936175540626350624070233226700494976803169927572875427141869932389252636628396901192828513753928275663830112913327185173625635328486787406666345778569614456955762968927861812335122377791621902040400068934865480728635069397466411739174013637397357072808414394220197962490254505195624708661373710127862295938665828822610466366401340368857297225776912749400418638968358458890072275931781023050285936558452151216136013043173658673962345444694740007953743638800809041598989686960464381901688724521412681645577908269522210262717372527861631070481301026845173816305458397577282846381970155278391259947713929570288644804692444116687705261467312236114833150640888167026285236739718545261666284332112321282533545246382272382699628631354954512596579374795748307466727813389075783234413336487955497855016774578327234815998700210913067413122805074521767917681648423632506156874654180008723707320485838956047461044227560740803577396324126969253718390505408120080827510356229794692239709729314922992934517983605991078448473074523984288968711691192879872030860869557593181016193935047767303175692255307354529232414114163815294343273099806701553317877442025669739271909186111517701238029860572279086410090132861370689465506516115943754301406826442753859169206023350392982215760475476832585699195759095140937244814901951528306421822186531952884518301794087590946224296715621508984934967398495902980708547338249925524610841676193244129597204360191808530110319416960459927841759773565604111733559328717975642925318121327294471154933789111799414055033252410184544981562950988703409894265878526236028882713960073738077769051369319730726258806875791025315370337593974552167182913826275395686527321686093616124735456668246102764831726577000914610869505169881585653330929955141704310081900900289562054716014685511823654451414182571007397700616308589305467194835219747451112227916861849243819363049034807967241037277436051112863741548573954323358808781449798919103396840280366297945224774951878028622031361950812092549152546212919287006502181674752289892333418870403127611395415465284298757543887304362062766889296352152386916642543474480908287529216173836451310812440200151173180736620076591222311333066370635055349160876451836952543216218831477953527800133099845311575003001534154412175182617789221991247988075049930006549779160284919060510665639149509301023256414331027759262860973591236456303889484709343770005795754982638050676985538568042221614855587543339203399242386394009441718949771200091337556939431134670555499858689874391029923958437821486179594389707568412710100221354324224723829371614789955753718725941436601635031536869209274964078087800644273327046621167193613614271906142447536322671681779064735570273000300354757737762088261270341831837270702204470470890734242129952192745325667318638936627502937875533076940609610787881725597376593174651819469705102598067323445988493992194132162165437094774890150800459733565348850443115409996142031895363824166455419238438974827772534034215466918773898628361226349138110202003971870419611251163899365695602657437761357943863293691264510375760024389933691619778230046198094556018031182707420417384749156276035540036445526851043889390783047845422496619828107174511952733736716396584489222146559518352991110700029203618614702024283982659329207371662172269115666004950461725403260555848431184280095606130674853869330418395314750822174320411151523348525907581657670397223147516087791545134070844723479209110624359770630729046148680165157244709852233505407352163296691873076870923756698098655766663030723768125102815656448366332007064213786960053492090736015993185818565598092820873751188193737407617304551467531941315214898763070116773771343348293103152087223207529765142853057626153078116609251726439267006165246691459924760743408583210661698301569429763930326246504476999373045524690324271026143376113399245193005157677131049370789925274611698258357412280003868345186094625892175245719798078848280155609585639617695953531731093769720368529793193902096960898838779519018618278228771475781153741997570060126038235512651527235917673125127538588720108182430762380803311172893986134642967667618505673437140150774257279355514542476472478043920488817202611657122788219202222256997783609250835110869880785196293600940480784190745126842319564999688785054931246504537463707603842810670810947913958703666388300946951493621871191403193005721646780991038285519147278544153052071963435402899917945138358521374548202190947378832950593648337355168558241654881800863299972448446774095833221270752134195864497806363743444765306032749556339754742595440388606697534832808161744123703568354399838687262236426931967846567122505738540763586018567563021753606870006668031133295860713315928682920854463694422435428887280063090331673181184807050267418003993857708808739719718460780176428531646634736822295192726270977140845275016223050752819187092681530998508970305105494010523976819353102648520504165889180938005524429691197200023092469191357305481166692480545677138222157874394392442253285490566216076824979518805999660746687694523347893262682736082290786239426619378553481458871906294042657436690873621319431706523922790876252986835479230467105754590768534209052126936165340535262637030602167518473195320133108363100561678243690875679642521750298678583563145181705347977226969672426639316176175929939841510924222209878449034788547332506309956173341000968503152625516470033071977529661734229066800776167431514312776295541365658287972307950945411727937551420546566318673053700959345277388049855414421704115108240295887556782441768587569524717565242840180878507451814722645701861548711627238363289945643298863479091004105782118356209120548145860696009525303016794950837329553647875606275978875445433310562647679667434589229435357550475580242310520383542298468180743190020684815284796405720225984170792844418155253003622011943315480461130680166929327707422904658387625252446618923896292477042980907421965563534514241604923492020527179618010730598526931396185485139108305026618740318000602104943239327797628250775832715843846813261128006270391340823066624722524786281815901951092982966578902636251825488794658547744504360957380496306791967145190348549607919414807252963866217142047896718963658085551044523309589995142519524027579152581249621130031385837635949665512205990485579771556161203738938129149338165784790669536958806178670722339308814969377304424525515675746637747481021303656039651387560523193992092954466345485237412911896586458820950730409194395877562066652262502292995421679122318919615394093008117115448394401916462698397344785033212882334666120834639086474193190683985408342772938895391903632930360916858995782330745593680353499332381996402676343851631628797692082679999417499187959362137337606830511078149027154974830753409199299482303136041624499086820360326694996753621155197915349526328175637670991768639972518386536330614029230480194136474099901189739413009308451251271876679301769795188041141979829507894639237866161052017646095658783141864316663252418138648103284278900355604504910905811299104124670531630165263524836530488584042274149661014844304038369499819040661259610166764694463646063542751934316280557926179673516667105654816329304588413138000493075077435816358587514428983659990704041594558208999945909502321325339330110254866095363026683566837810400754184966816473652918415698069952962174818368143842182988861175274355987189073112570642087733200313989840111350320549455106474209804828436232044080754122779819821506663916415059025765208552128075749357026502911977263640305492279902052769853167766208475568064792111248913069028946013099859256293576415359315588713883051106613933550731252172503038261840457647658161916508919775767006938121198332717314332447953240485571316122985787970062854340130457797475007364375248994362703490477423998528199304403616418639435281148296882885541162096448165492200240379251445856024625199653352830380915658347148250241923981453923205917395879305767276990309925155156135567062300227520807269987205154019412650807678803801053930620508791678068979647581016751930039650810624066106779970691448368055695158822932782317109087975235882036946694875902908698860123913100405024749851046062716293174590719999415570909273134053289092581613374492915372363643513255815257562605923988595752492451051577533570129511036788719230063359934304347256854916237378950910956523342761983493205902204185315742576051094101680707324195859704281470538691037940139157298410593841481507965363705929340093019185545751677104767999400872624327261113356425555403874074668673096574496378341630405163091877690253355833139161348676880516846985824879469608915005202552416421443466935428566387031569499757272056660508462110920795785550417908139381318506967833022447772657153445231449963031229389747932884481047568827556754489011165251643866352019127889864484271046332211031414750417688874979077811553432755723473621441264415024280901909557131064891984662684261377686404012091463056062820108118860317194237055122215931912920357718951711001887893001947726257152679325144306625366295259302943660088477945370868773586966378845349543214729634244021551936577991708162179426147998744076067148998603116664838483471665828842665832011470479079251916169068711852003339269139681246423348481606014992748045247224617331237539032849799469476929675626154917439351163847818563764301763955213569681056279455153957529517569695944317821722150712381925885536244896086801324931120864443809527062631664101588716344326141125032105446099696131362833341133111606390037060295939892108168490118081361942800839583337624737555270383372062968856953087011339960255319106364447597574465503022912514980330897675591059827167297873211375423990020900478809145887961853221609827813340544222696686382236016250642119032279134572983619060936504069155116211266737642589898574471653402304684110373149856645925185308051002785731565872689183773930154358166692376948833980492426100049027945561737186278716281132956381073561375178100675718308875202758520935036718655581632625457179182109159202318019687262925415193815683797604467220917333426428540964628430667359903699728513477718084791390892538159369931588986396427114841113067266963096802682812745206670145376241061660758653354957387019024752169714490485130962626762267926416401324681854633141851134922592551908766990803730927085896331165259462993627851823146981981160181991016569324821835615264165826853768315485978508436672215498492990411726008689284023587603883755507619792085355639387495776776467742824382060355330457847312101062343786605014629334546582789842496223217289343727584887883286235693776059833422371696365614548046196435235944891007716347338327683433289296509624012008537682124970314502868237574913770313913163239182506592936645473514743765042649010277865401112118037895666726326708541037351999645174833430523695596854436093918198479616449327697644319845926738377496496389979883897975147978019882390166865331585954408461662518569471346593721936323975900345936715754250942796345676490303921207591820231218614805334963910056852331955757766709173774968391152607363858033187326067529118726442055872212444857553555172551149994613223800513415935685830565262363610230070796374307188275436617485798174200956879156483408730837311761776164637403711532422238058146770182637633295114451947219498217816372171306341973050338441645890428494998158256125575243323831525706087695529391621495071959824739058633926705022600305711547808101604784060297100740744533025300445473860159647911428063978329477125265404308588153245400861370678898458200534810802055753617798456631855726276440119071228856191090020094206406566648076189167045705959274754001988607124745536331622109601154416215672963738949994791848261777476898577808176388305821871143891831503832562236971508514076620804508191260492585530991973166169677071110116725100879499931302200624577074390546499692206748578741019054266763145681761923644624371634843646924456139052572814215068235297799338623334976058320462405825175306177857373991844547758660512931621915785107984361632059667325000052309365294871945017886572502208121599261974582897732700545801279880412422509744287187236940965442049373791958666318945585136881121029512136558830237142424396735244050722987408161806444488788403668260162499295970744128270332854684754154906401134745864074983837923667108327657436315809839815604610828640201745496997134969886089536274852668815656116009545302860220733047466700433728534983234394574873195521172659332227299658785022743259766558475750847305953333395727949385024160771804597422145406797258664721095527899611053015824568413645637940674296371615939973716928142252735139764423692889264798676221395216382254508347659769070896513029876178869424647534345414502081880735212014809695319548390646571094417211773048846860959871481876703534299457467182695933049998517150473228713408769293142205734707843634318040674899397018963315482091563895176063611205705631575474334254084738598099218183609270462664663219743091450753204287548774390172998158070304961426956797086261849034241734219358128850081915338865238906632162329711783834090029500824004885866716106348981472729768777979650733713107297504288572653379771074891780645346142432614969115738245543507448801112295395307813644146776253612820707185212967209698742627437952543725937890012547682646888537227183057716935988619072833689907439152382472422549084113665418636962910348297959951855202576805041894629370018165786937731663567262265403212105531960566914115626001137008192832399802332563867128608163750147029103776544022053738625109799110414297159533468294807954078428622757674124228730672825379578693609376641194827017574292973582451418523023411537526542392347424283644669016475779783048155009002048594862644790373214524300171693179311718799247564242031696992451232848585953779916261324093224383625787059773274917145207924909637408068974423656676054059455574606830038993261929837684883050031670051210366765316371049214345207604282401140098023580599034322016449600228674151601284219774901904688189922925473265513174858804197834148241217570026581625999171131708206152908797388339177625755226688503286275912788979881234015944774534115157884516392900241989983299955770261375515975949646910105607157431223134345373298938267209884265052943041305818552687727816767291197675852930148026190898018927822855728620442850241567306477158726602716133053002004944154762608328722952580134911581974050589303846619880430802320058319549706820806157303140111945893655537548396034025086921152147852263885477778344648645154570896355781004616167438684065751284586637151562768146529094931648128278098167723015070403084572663858583025966278389235388001668139253462312078790391817548991161389055545016635084096836651793323892963096416464435142539497800759182522435408203359223162398530170847780647580617175051600140779214182672836856213416701896050909317739686285675994200617576564547576553362973025827052735357230374791030449794917810455612827975704227819625104093515595868181596438479659643762842283449449317502716490437554700644784624006632807494354304488769928247782526848668302378502316604742397042569702827030554634792986198795977184819484220562036559331214100602993983778918564526875087406239948149957492204310609248000396300290232483343361552816281663881833265620907778968936836386155011036272885921168766550478632792370568247247583087063957959098620936039236034129844050961644982494278074248688323954526082835700887783051379018886380042774592711544907212970464999999400679616792821121261767644838152216923020699140759001575077947010947141604971219835009590027874573340646883491739904212218079645580746892714260488460257609881923988143879264935774626721639169858634175241310886897372475700425302200079793133581627495792319420176013554432412125867133297724320796898170993512727876466201134738464245390782028961328192150872286408953650974150424600359438729464287809064616307625520738713934815997308235330215408148506383062892819184982649522069374417826825825487904405404642923506410103703740766009465300995581594708384738970772097658111914078097306638114524913194312806423442686346024243802689270955951560217328211621415829296345865481405298132803769430767143566508053822406168133088198461951343024640776351904955431739436685186182359312565241169958238750202950399429296276986864018637628458628334992528666525082599977983157142949398979264021526858215881725703439218495481318801317182253701761271111690054374096092092141754275405114806153859327970612836405619342780949308438313847563204494416533893965659014633555108303840741006322818969147900991857291204721079760175140685682625689288574367812352475810520650982158081262340191574820643268134356140192698135445984187174543469103308716698830098471151610549311068502159771134952894712157607972809439045431553022179271715547789612040996383039674070986281369104376590842306654578462993037806733854805433817817348522601967397057167034064275620361671090624941237495659976926115023522750909092867109313785638315346369859293706880485051186099880213758513569762893477427786607501111272015026773078016034897356123932797846927864648782400293840245522355171242632477263104509512620804724291241045792246747508880333099166348655792316763000578337670666054440746266972390282334174798056696518541173560726504103293090024932513913210955575948963853402970403960623518843575392157340035491062275678353121025055857916658184905412966999531904020921215549352891684355932759434790022891802661055750922738548766921981538386235873430220651565654943691714881967357537914319630642931620714766755751122764502625018490038193774556178773839670001911613949921762124868753246284078175522493693867189459832681112300230141223864512512155794502244140758688774195035152254570482559196440422461802816224250893927982116872981004279595276819356336437422559833489496563954001594331577662879553937205508945921488917365734957579249978561549116831548142407947568247664026976417103472810387532994320875123331278974415089291208151347817724785288530589605104433979120236214267125705852396217160701647971854638592767372083282521452385644584308522219569713615529033945215387447427486225350397918815932976554368694591635620057749792722964009556964193229093684050817534912664003411646744387800203105569905997183955446309197180356330211368924391724318198574290665709631875817115249713730678191730185261963179695967367365486433724986487587625527429667045865089107581980985271027725983106334802435252714992762414733039511600501130937216062532507060840886202960815317596492838793874375621909184040005904928992523648988147288477580882118770118463027592745493797128544938142707968423345751860563346925265584952439397320563308031632105976393413884642365485823258087008905813513688157235221954177114597906861693572868427993304589030709518505162927292738075225189670571843012579377705115449359999091546045206541569823768964187400644038518190721945472980382258649284304292431653524689259499004070506986886105304391874996567377568736400901323761690267268037805273126074614072100340520244006344520002876411880410824365448945992527390330769091098993972756633262693081697406289142911577273688841926561708820462774969927205464292568875581438315412473204688514185278096222347481147044282161848771976042384911041117857168520973650877693269626996503910349230514313836177689712516928071662227770827966080363828739423560565720442215521956245149195727113984501755621015500963771754356610164514435918141345202348014781995436917914995087944310355072125276077021410040533721313038281835353846365131641327689259742127131115729193640366050680166914354676117258473682669869617626901142556154712603665071762469727786172495299705128007298910838816169762904651224464675784835763621634066930483602086922832802935050489557957841198205215440380545153646139776496416255199085926127969595981269098953915322961014682799579075161649289097005916394999333936684378048440441859073422597574863997970902382473062366038172843576971743187194578736747863305214007916883260373235139574810553545321586086847598122392069267282354132766053854162328443583656198660391511625720473347937213816690560614356215977405271407271302188365067105137550402777811712553837143311838206088056909395823370474092516379592662410737222964797926752199545380857242839317376998899241090519516308999473746510234595583176964524545846580818579911620618084796607699030054182879266434846050908131943102901813301013704346921194460959462916327188051548958414456384823417783759766765903537017592730487250634962299087375570354156325647796122512307928707168680030442423653988433257840895194994657312827675337564795426270177182748680428425706243305295813127191011051233383373447247729154485850497029327056674075598260585009035588157328731079035322916442039304519328982403102308194241432376727015885119148689108444473573148443029998087519251351416596382319654048887552297756822047083911432485936702737293499529019049749436464791753554760690785222769151151108377534698600530767148529939340156410283101725752619759463250950152011632161940545694252645533495349725876128442714246657352450239088415965906177175205600066952627912035407919952823803202404309696859622254518001558914502406712877840678950971582992137407268703070117247691118073441098079589001464639238223829839893239725135918808599539750131888136555619315335271515129692919670967694315188311859318237134585306902642236169178559806330536408243548991598543668750277479027991787906573267386332564396118569110659991883975033253915850275964116439146295192713394562704608729302465049763012888968232308816183110232396992912816076643909720709623854968406629211184250426187840104080337949108135670387813738403052624486553715806263319656296660648282624337545582902669129554055598091263149234219605277127016258419342184316412930808740757283813069200605733752963838592082958703658293670326934838892636781870470416270110235623790541615622986634960411637272980067704227649369135476848663911992465305395762360142683366091233011613862207083777738144068029714988936054240770747263969737641884030385049459470978399824878771650796911319875671044569423038518597348273215961930364174554989756785270774401991300318621724230296581239018049412483607385950582021932441506349458154004133218426002547063865300511954173919278811466008362066110927374070896063350379951299654696078680858280585550915885327139293440941714690426282492421316351603170830676125572875699484506280848278057513479073676088240220970634363272086911580094174399495973526522613755423755055194063404519751639635376738542725576749732217966828738899669228791462012570505403163159916421764180462302695569550947726935451897430936075471554131795068925077991810242234496284029209857358865130218075203577378547850902853292942760051861730660262312352140701336858912260087464694480475643503253369467205164639376518998914322179753221778517727238274936773501707883841143010793558965843790190411644374511412327411008443803579645949108510341042191591704090022585595116161784024161563935533806525446938205086407863896024710119879380605985438674286321866388053529928987770913411557261364002607994173440124516169539295797738759557230624827122534598800043315906830787903021418358401994004738911541375462771003892585257193902955481196570294324212011179854591219313683116685682107224538949941959384675045127338909323480010913589636410879156307560060994545098544909341791264361208407620832109769767841896457013872603602455716983088908004541217432701112220994525642807441438418214326407489440402415652869561575743863946286636811273454939982602041776640795667916197171733159808270339942715126331665577132235729004600774401142321351200372341701521684289713473376769550151897040036185825777205061742160415033350016537364108776021930206351166219121691841350367724279762041928352643661924881978930478091571513267501374133771364943189877722106987942680904864893852840804815351591474103873162286316283544826855201759304231996213990657896196507949460804844560494706215691364223786310528936473776968270629376877169929833213365876137345918895107722706656448623713823659965286922323182622505565286306139243147168330225960077293583505208537500897139610571791653566516501950832126405568138016038442790216140357899896721260665456757605590247224614408157294590536742077859900635150286124614163891865933745133045919408930041057774033435844725008890827619033788731892459686581024232942483376753021780435483368220338159124044627586533975854103867242760982005290770725198531372901925199149469811469928330496833965959588966663364764143444524461237961121792349388628086871054239790035880953983610820064886475851826023912355623434148737142102811683396054688499546628362875708514185117885948232485156963187584026464428229913579052675675057384943861806127287522722734529758758391035156095994681095248279014537800662533325643747908473833939310985821005437886212600774875576636298061243099956913824150356442317514181381646767787727517541507020311727407403795830053887173148084085350712354794444664395609900880456385212338463383987676911539876848508202883011738730039647961705269351624773842566676205294181822066963492214191120889438288344753763437229004191473697690277381638371111675153988307796010788639561515761704089934720170189143189645187658003485488694958728556138982867370618028769522715425481835326317078564592190144647264878331661879812219669778026121622044835610937375845298565629096449175185335321584283895544590506993239242616823743084719616726167616824783436924638343743792304898232739977580628392078115926189697820508748672024153865588816946660084527682013748706252979358306387631078163114642759070372773578784417347223640214873786132540978106650831465260970967204705613280773893710856676868147578234272051167255010771741826909753581328519410323872544623400185718129281992847108070639195832897705533558837496141743228890417755802412214186698169365973460386686063948578006362636777453256081354443505056192792319105880905815781433256546352105441923997341535587943777023208534309747942699543970033638030764978459618164262670978285933658818043080754288451756584678255394174975353033032068230859713371655243072783451292087976748954699133988669277843248912578112797033062826332963224832826232707966413804818476486263301843590142998607661554547139960770265619785253037018344414158468251862845026760001787565867428512190806812536024170302403228699821023959312210440105857317293815992867691135804167921533875414234316737594250334568875154625009225114293297716253355221549791051195005453181008196254599886378839003202741439322086784074833034541757221305448850983995695615737491678549963446760181146092551159538872184344800266790396245887124237144771209546583756069494390490770603785793818818649208254840693432774721659707345514041556808543223808266860223583719896809446057928078194728075251809581371387613671215881525010515913222619238698596185541109053747597966885747193148843602041653997647706831626711150698763050598635996426423018918602467578889114604224909987618290116639620521896558021517402996065183837472082035073735207791748097329508744620952739420776422592685083131296942855095668104101615315237357743429473665525497768191252078888260356071518418335478655828145882635226245595236040213864177811196503299944027853214632025505283817042000879451647775236151225716806797831982868603166249760472213625280379553333344630419042650826767248842390322014305866004173491508573956466533892133094652358884896352595756250190525983116864564259315396753314358841463787125906260685176269479769512628362850750595333686391467112180740564727319306900693028658797934861202884701005332918197379799833290851989401884471318345029825018954864047676547484492853180544588559540590302371850497145992952077390695137344124364830639364444237864766921369362727355146314172306427597854955811957358268349738579718695608600161336665867368157395264416350544663184859682673416764244490729913572908408916854491165438966100637292270407934746515028126644643776382011599322026996549502208011647624111400300983262663815116200298982033359817950402788912281622585671275679828025092139606097349318518367398046107791625641849347503873191919395731019078306725226476999705326368495915059838479248481683740619032824732213519582684962664939816187062516318072704637530880695374506095138381012740805850904276354396056947652051556898064139890571818984388552652323729759475554617644911118356218834626845948345402271716267595704837312698001462876440265160385364559491759323329327936244823380148064266330031890385120642606826205330837392252891100077062896066767980340358463044516772073349905215931630551191799291241836046525709194862890655705789611449786950805278019448046167945149156339017082552459087098165448576928269927923825724323617537693977261623772844607999321993133872399956989609780452284685078397510443612269298700611097602452002266747053617962365187805596804945985733441011555286909413100798492861263535594268665297861566717946233248038571612195671065014091921378987101157587703554313256995925287789114481280388623428834786704643034877125830014193906968488089378053483980180164650511485019323998829099570777930366952356056162988720724811793401760299740158228962744397895841639262160847034320388755822003104843298166063580521567942774406337937128257170152506201915962463882626144512995100158541678607364202913433233752710720892997873325840385453592598630643468587340100992470784947010109366938163931537829948756903943517403689253173115785489170119773567499167769842071014570502425841463310037006995492031785375011532613139551812608775118958322675762427907007941336957982679636007237561292476617579696407019068770042201278547233952990498343019678913013090977379094755308980796272400876737953718413583604852767320657336970937752035189358657220757587636538423296761173809164381364142844380970031986486535555074173585701080694080632662136225262409903414418144172779625412317055880248756412027703501269963722106729048814101072791761042505508570866733984247649005435477820017904479804945974641424567157219973467324840156391685034743521667683123578277021303759893051971445283211654756013020524234782492137630496930903746077301278808118446320339169445472511426189165586893479582697845910404859828191039712809161793057439898164515772138391374186362199625837965246807327813653693450323314204971486215000416775292482002594484968794564957408107433597312037896116393418500375455905009108921390243033209788110130240599857716849078148305220848055340422261573460879221810938523218978597459024183321941074804078590070076660754075416078257345444713589271760074259378465990826265727287808644543769852226393755298879809164557762938153666193587742042734012671643275257829198703670939791983480868919713708435188622125069396149223046832379243345834442246181489884155146657943357745086845190906848580961354975486125846018271032295410066130072055167237850802848789900098090410581866939108981276575514675342107446856612301290084775556034838672910193925535468508260990529048340084709590754778333931866878373921066794155226591632359916357373803089916131663846926065178327860890891258245811450846484564217408963632352740767429013501084150738994942438566054713499747986623169838522373320913980827588222336156175234094187705565921731494436273604780818560873480955932714479114115579794170737993691463649260674711154990086435452343976513018989654466008568374108392386127431696884711505934223630692267134782093043869935725754391864250203085312389862822373732080650543296084382271983156775929956333483124209845333356934544369709427487215371074051452004114996089618322166003012904912432651349251674454144286573259138516709667254287458363250867709481871595645088416275829603592737342953792615712875501579147170863255652417559381698393291052654292225918101237038869480846566149747570376702924223493524199570971190853726767397178234658550576424875501639287092767312565016923064035997092479308946452617938241246272219985124120612838863099742217321914656411806965128663033571756203936473815236548154433140945975326651953306521199240902448892136637818787121235219314659067812810125801592063946822932619158591313362164242143175164377562486319090436294073078738890547829148749620689808816896010296557897457007738220536590912267136653153098608268663589811489676777120852458953666577269785558131498871396942954100713583118993548416074161429764387696422709067249481533937003629207773477495285195056279446293960356826518635127825520029127213305155661750224217831495484345047520550157932194371816650948465767334188943224359760335319822890591623244130568357825963783299842531494104254291506400867542705732212378705607669213746003846036878219537436612136854449441707159045239494191010716885572221803765044408063243928551036942439975743354353902810204265879859477711823834360379098061544974578302220358364338968503162843741503527661681624104057358394711421612044299259163719391478486824837867975524179903136972600900221067259556606859378817956050425430138685328955707580842856303457180758538197078235668925910843075535243405094005258067900017895720200785050363703510094988223051855622404319320378896510660206389935660046810813832452532524981858808938196155814380299484674423801913651216886413490427715081227846964352090906068717068269873742448668437894805023733000329877423417408130393060610701517339661754556509551483997691557727317445260574734076182683167516446390217570962150193608535796910024907115144247214794778174239385806320576673374718340451976182104340845549216927469453683631331786227301978997851507347287506661953358497816308717201581029782508391606581515410278947861744068012913169468434153716624977214777177120378312929721735146829122461113526553648164491153060088421754375420138225924978571046681952048115733726710946062950087492900768174547870671962337992749630580847990529393660812609953730185457846772221727799692005563672048968790728278657403041144003303506616986536149962760356929718421087499241062045502365642985489548798360520339328089731299681908018055688567003583272183769255323548899479915570334198487206757836136219759131835815584029783884365714155471301211021139004666162921273641041660013821781862213714031663675631206584355392771468393551743585978564452601763696579615042296081649715923223849519406430310310001563124213396616610656144858713440754768871716512683778346716860159855161639704968727718724908600302577805473327934815762570930832363631482620130220531543445997676858063126080952960409265993924382023800615551419540333384356992296868378381224583103858031980822214858133091996927424892328011688421702901929953741111562185462532199909093089331794450907302055319297649349329188825540781114250863655583196349522932707517869764985288989188348213228258980014204549657244520308048520683404799062213049998866096238852727457478829923935327957192860085664942333331560054490276459788209372369717475711500113866478157551155465268845221153213945423431589680940580258715584983651655521902602322747715932554232244636448863642352347908425035128989666048403319314813231887667283792016135261801126242327591055761021428603003322273650819049755284669953846042084399318913521353439895199975506614270783358835544629553065277247383987740408816574121826431714934893074766351251064107458965950177860574130787368498106804629672312299637659449332412551469171345406595349331115031930649070928403851649471040497609564571417192940126962531777062290150047936594686468801366597168987437327993534941967439086803273514124270216440983835137989161388397820774258441892406140224322075678608034574381810945799122048368643274625603784354066272720335545787489437110084861872818234921217700723554732479624423959579021720241910343844519693178420622148249943569636556472057232446173942614351866982350120441727275792136138244344558790098091752605728434918206756479052975933478658528232877202726499292134298120148776432369208239865851798109515231937643015944318250374803191995446559293800001564909126008011219430892890385790989708708882079211763131023137304979515356433699257068732948864236471721692850463362185505313405928321452994986849936990988404606872650541607152337846977541716717662583149058962674535849961844866018165496963111728612496231079764069993300649983083668495998616534990009754033703034615919681894139704817376630880317875715687861680030525144894906593453077777728158098365782197170708563433664983230809671579220729178127430339641803450051396378649663162075942026416314482761106974833948765916784021309322770678477095939135288767903415623357855457995415421797021648842896660035813848979621410060786380199203488017083939283290098830011455098167175643647727885354767294201781057679433518347844786169853583630414172309021483173563833383189065932423988240473009121763340633643714812401774257839372572398390557024409220601808947932811366501786516821294710580436677193050386042351683388090747037118469472392806507593951351236517961284036017807998879827841889849821140336472431377261881642548586948749623172795279080473604486923826081809849276138572733270045674470910909245746286080340857285704148551657338059965486473343353258422101996457393810249643668070295146406048048039068454265756803151845983912978053060055882983109783059775674219468365053657399407396766300734794968911170076107510381637458040729430580542559273531610592446225596932671609843682981380297062712934388101971191833706663791686157744475076860403628300190927581620889406874442990925220443226755612163551333103051962043338558115009802505426747220585987398800486727642535881658747520403599612302876827689490114300444333042543062691926196612321874191533560643356202946365205201486814383698782580583672432663550122322829206136644298949409037845911836886148748961786142503646293991029423320177274704465028471810923493045575402948426648497576468667667316198697001833299175706183634609955462762008932874233980094679393674115996106766274695698679643933979967713402001651135275658266263847831780050670747080414593006690026671319085756923546572431685036284278267365637423319985654150508257309283336277076339635184664809502984292669366056916146368389905122983915417956354314411234093411052146289053241592901154347161913869026966247918687357345147321340276981046418105909966218346831341189858586816026513075260566339708554084659750148166883398157195705244293639550901820328955982430404238415297288351814206735993031373635885568559457648998978241458823885155269056850737916509696173226502226366610322628747641498993214501692422241826113329420803611360015459343612371756881427022298177412432810652919105604080947757712741630952384757120228304921004947834442725452839402250022516230501177817881763505595034424293883436911113642606535577121819106186291531523650614643815622280347164388366088083625021051651469600972828935627670540316883503457934674486777648370055180516219470094799530803828210086350675723301706413971792325151201863147504373283824774362837811497595470557228107226724745058589064279678683309148990680753072981418136390924370625867603407889501884473023859528758890888008194661658351516537673694083522166578826340393853821842906199138723967067255485125601189658664784301779597290049425687821500278575763036395477726106274839132987820033514497574424589722044772554032195180179880002611381818122269171571780467760597799379301322333414981155617644536369896671271189041708978904405650111338684256897129402972517452794250826127779760701590047389972203358957736753423640604085950168125601640623239850130846760582005492835302414520259202839224518151202005122935146016464751694771429490116402269666008472661797808966923144550864691216813360808102300592660998547803703598395626594873714775845531636333415697754201408052133263357441301147147250142954835962801905550479100633264454505899379887135653639099396241522192468395113688746092857671451077520976607631158457653917620518325080701983975793676781295275514601107071951850416158329155579418181285709330802666621651294066739735023028536451315287779222904852435145251674401833729110236937578542704937496423375380385995345617380347585833422005629595960178118081404346045187584312841932274306038068623450770644439324351700075051664093468764996952851307120901777957985482167306095944166607696391682438272020726272715341696728971093281189611461820664000268673437208751620504214966999378096022833813212328000882874903086929014681476649704397389889868468705777582094437771867477859203882539679770477086597424336908879182998726942260341244584735130777149522113058602884701252386469301464274793866306950915403228188711626618596604080153305337966292297441731816378335876551698887775381021326195118625002169265784118288227889483593701307178657993861993135111449018290745787273397349362639627963466020710172674078296310394853355629069964398377004643176341903879899468805775296849919425703366751802229919272014751022474296814457562547535200092454001078395230338058084635213497815725015461307491994929412177524756043506499452059665778935270077561600300561864556621496905838559744479628429220098939774007596208053151562608063427257816738475945650725982089455706005140042603970435109111502825161930610775562307671668980582711070329174543210324994819250177369675142497148873884416156775419857188937814195174070118804238647751203702557634581744365137526727585165385722466969833984977972388012585911294546503079428377319066774586581971424740670258095810994717284261503905639289049815400431696649850352577825152011521359605521662972443209055650250557259734372789334273890512826384137795857600591497465944841561918863373223993534081239983093741794612042842959756193025045368304645163760321073873362140709727021441981253627209173259537599195596170275705832546177273665865508072750309921977197770181661530049984431955270300586079635622619301969157312224527232066678425249974446620128064994622795009394157305721770632517419283272794121159296646173115033510332430412853800389501015120351496279738675662269962251780709330051842683967478301764881216649574259355873073376102624208127159232280518170046986444212620999625737495613741753007975442634813148646954580501409060604853818261499102748573051236926717456549748203341836135681400596726560361108780880273852001827697403050960077843356915911937377075359013565169823379753100204996020191104876293282433509140716828246074002505725177679136774163771452380401044032226689931639413555451889152733289157321214136504173405879716517671302631899632768713606274777347271110223920300309877309140138556485077588455104524503724877348846736955022057589517407759019274332886228510417120670078688087717268841015056648646442748248713613570934070885424871599610180466327117007628021569333870412603138495540787658581226431627431152132714794623454402681873988930940816307994109146584735034999417386398279256982638939793974821111267826583224266828234950286938361689277781863870550322448614490610887486046716393671981270400628166699756906558245240571997989358830299713292292677076901558656627017168848173637111814872725572937657826876477435452510469027296493770965867135869333615905053723687756964143359950124472239101314141318264381792500200030859688508634256741906390256794474372540822534024549496705244027785138951790110937435434721819506436528740726025814190630958452028511775655242807633921981462526057859510698270808359763757456450049023313473819110811856791896725047076950541978965343209873522068769478880552654866829063222461430238077588204159442659692416143997744885972166427358930283720077338890155231685041652642870746710549638588079179384297057103184133464494825912270079117039777677694933439439253213522637902500583165091512230794576610931764631065515356363134468167921187883198261368500234126051909682140488850712615770897626242564948091155738123276286125690142029195972122593460478921833612109889718386411986952027588523881850198288215926212700464245231490930793779265851664838505483239577731534152384512072155370053440857138115460268897508097772113517303186766842454417418426443960764334802926795869395097575133418464654837287166341545097395076108986683939370549515765487878164752216306048976010291319760062033517265607244310731110703920951427097846663903521437897458415159410075491442314714739665951581579350262838339008964518908450392626431046886215021322838587018512740236724101624896359637347826177709568439553015942946688322402459813898490257795980034865088879070136269112082635451325437058593501439097643093677737185058576235197446462042955537406496531713708790257824110732464674100179711816385762297594582262931520070892937924129857329283181366507635627653140483589481851461961830169805465676137469776504273003748512379289274361137803000980812372744547485757331361707751638710441272223485321077919463651645753826024986913332463498096257974277011346188352451013294645493643548186297997802979381132751820750955964385263697126902696943350230108167316257659797731625845177723210053885125885636019878083682512337011574389629245345776958391245607970074364160285455875410613800250838049887007940598794673298239703160466102010899636788487262540657333567379348583246488775891860863952412382679503478921916931167934993506395578977053741062205370520838200271413493645796934191665280521774751460551499794262217356709206169582407145456035535599452235783772416075976778861047351400225953191245779365538969942856567627829979872592281520672452766029556460180929049588647266683224122790982797467978990503192045652800359966921324443921105192695210102545934284797883869024674536573115721011750045749234220385556205997405167553549255083802952618594551989571495933803715739616789962012458223555888637986504535994074362318817579392047554718898539263288328295279740349418955541772332801726663419762777236746100919155895225234721718152546412906655715838058098574939907305131525698955051323893565483462950808177527723312519068869190187030270270836182249157456244478783909838042029855091673268939453344123177894652338421819755375197070115359284903925934409408785723218344299303111871659638880889264213204727866667874352676266791328404161560814774896942705244274214503696784968384919506709553155723661076139100183943115987042729411323118774805803192485560885284563377295910531043313166344208451140387081853936660305817767021473740091844423076909160394067925771230735645654961485360538448808737796005826235606573777560498065573713716990570340116711348722150840803716764076454216250620242183616778457109305626277613733176999583419360244819491271313116767092434784649308459807280864051908689378380037312524071652834740112403953420233065899089936801858665091964361636237092611882852706753932046408070349878752474857708357467425863957073321559995194771799507161454466087088364242508236409035758424314148217472180350758709926719699358970017123247566653035791793600990784480176271319976836662291630443964735781412248160940756842098321828231985128395453040028989962817467095537508918818421680294267916391349767462490582716843604489740856385080338054523424201808028874009145071300920946151010034232500639452797847894835346969559658295974485488003710626063383497957239511782290613348175242117268714617211940438513161291905401919935554546621229305814670928030274308732591775025596631945741444275151654980340326229269207129413568239067767313207590294673806949282399403101923968865158779921414606844829592931831658698752114627365656787160631471462517565327865108334195724409374242605263658680287011788409058280246811601507902313674202125777776315254293918219135357092119484222859606757963687017226978716436984868535702853364850469441922904266090699203497308598710085386950832336649797144515403273725613023452693097131940803325812083358454228348914840096631592793860213824582541904216909656504732571275796400717039115493103712606642574973185935225434929114429873483241586709110892684759005673460544368174716268900888792573354881452919918827991922469921732190335656837259880219629722332312109728129294635273728883275868811193400592938077456019793635970374295595136308904065955954506629106145327876672352436121808905061495426502188285236943574651471404843447668162081368476501331023437809884562690081760177526096194349568725016655920469331012696013993529618708784640675938700110298495265728487772214915694184168690372137332110035521219829075812333620986132169822888241771243993804413842140886240778243903012909939182379200372458293352571901195951477870702123762328175566331417550692758085770461896549771262713827115110994554143302508309615460392258664651641662264707744977264433834183949348081652694302811481844120472204891535225052690422403641246943574360908249408493236643008456277765570068045296084328595702952176400511798441387687135103200737172777549283592134025555358298042053010903116448323011385803947704595877260328248246653421358287393934051725051733140712882638455450829032242435785737494768714130994767598747128050080215154234343306756089760805621886125184669799737529438379850280426488951590786033191410041124104891713111052379441186459656547466752529768343355012933704321038022095307404785031746406755994766366405129387554686215383729719698585516840016036977347651072354539964511603954139249443701334883689825188719163953143661418810659935819899280076716605115838673309990911157647873552563642130847667993815036030798137708068190063409857805139937746109571118158041708902396636527218326618207416402016895668932822608380509684310637337001898797941570360264806938297895699345898185376448522826872016062005929271058787593149717883284497989291341480844815967825952650557365795568825578001530486893835184966691636665185716821578781289455938890424138082582623881527209340583896252417533225721756464697208141861315294288220272288683726271537038924435110986026713925789823222162658405679513266146913922628869149209529234222435097015442660781550131190692118855008781434512290510010876841830260588831430174796717534984761412437597114891038153838803250555682145393267147892361998073998891628298585178824402294776940743398986724670719684587234511924410609063496114378709618375314761601344854056264021421822060525280736182651302893259457721586322933416924212009681351733221240511592111123004617647178090793407624270387852123673780096107817760150830298202803997150255250148545128565096371650489005000732535570158971583921583246332062450825436731159501978799149914768628227316993237516507149361463876438878890855389522718132928152689498814610929290269611704416450797158131253795924220668341956032661436518725829962886268597096468947835311750105701363939702936278287049538134345706642531364606792073103479765858495592974690102125675427501648809483763633849317672233284988040612376718134760167904310455576527085510023051111685099701491176976620398571473991761067741109697816394827889502025504155988590961723915358466118095991611532059492331529849794418474191207629032440673853266916964336289600624828135328926658257982894154000482982078310951701693553554382684672170118157376957207137299976385680468645387928541166714052621512482880272164024601709520264218576184156869909797699795558424094068728178752128608720499942256131372643485966644767559025523988438893434568937730880440511480449363681720448188152808816217870264041175351569937548436650130420559832979561542425677129966671396968484156867032204504889543525218315519820127873266196350865845519571298328978185305047010075456118163402233933497839772135220312024446504923385437828439236794492699400233235095093923540073696561630390391615580571731404211645815507021644913485453838145291460065417520965044771528645224429432967341548370611936427511416957053894111371290891658945709353660602022048373165175866630475203155664483865704220108808626806150453596015255001343624900233803451158650698512337859866880488627412407175627643449594288421174794083282307914554139415249800869167265989059683604751126997666671367366042385961786407616860169169224834331950497637390150030007056511136419591793231454626795213107636382530367256335313711309810310918752504060592816588598668565015143111686627958427846068998279857901147981199505576792176517720467160164925378246152968066473385260227957319763584921692780506255246821016253797787123069934085404218357971175076340021324956890080894994591121058517006837432583344858619529607504123633740955146933104783418594635230309379577331754742588939808484378461542899442885124902157866532943622223958089359374531426706036480307295186008371900217480095640146865108722983465725424551295852848304670769374855369479533953705976495294213556664065305857579814578064243957200487344008220954296526514121891656222034160585103936068648354933175967334432399242297673730285756692411741859717126925441214358084365468197797654996150630735157366960729134810463718022434542710181176106924007222615243125556183973038363339140164953072307318101349144206923603876289523832433517501509574115637967239864690431601041695722350212043607060169856874311960456588471183245356797375819350046976413117650220983849259285621316032146500713427166284916497456139254959230258921091263165548895151398953123031318996191757780889339173147291264243294085131647502824060326375907203638263920243263151149128203473673310701677128955685227549873667728536967305492503391459806759316240404184523097260955875614416823121183853715341976968243932478727845349522091670320972670033337760705991542854390869485263577417794884590903221387102646471538070509342899386131151475789965848707834183986467216958401351848582215049065411703830242878130819750682700598492561802261948310370661841013083635984755767672393894699222097812190517137658563535680471799640165075056011239750541175415446160900571672592764389953916036029985441755439375856565831000484413242471121883279279193713329647959545297078445944826779217683626579788354960918920950694702420619660673005130931256432021944277597186852205505304461524070558852824523993908115713401922302648641381568266403405306302513059354530768347614018968502803214126928418074176350036631177371361771360269209367975348439001446712400101105070712412923715607800516664778660452684637782357403453599497234184020002592825932200492383745941896340011626070598594203300389409456811843551471145760231915577087951207673634860581939312747555121299699095800031309496989223018948831368450812640647602402929270337843427926605858140550541786428844703182921772794133185743679796680952596191289695771905878443719870245148088805905870578132521959726578786764018149139559589065459478780270858030339856570967620868987540189461021960370641555209219387011847968018903400521515260158327627762054318779959668486074356700056522309455098572239512925728666037906685707631543201834991833644698484848272261770638062084859684803839910228637926871561466487994104786656775050240317022447283090947936526917492260319403077675848644255685049236767187825242228807892484181829926244924809685748333995522278236810474402964281666474035156056537669831734702056887152755304953246817791282283127036836051966950697391184186472335142853210121215035679141686145039589244325288705073484349644717028861968564571469632523618350728316342173504075966984549859899756610023161125417533896817838594021943178438827150104128080281638776403372748313043366009734578106623345571425643700567477336037050567072304114205021194316441567202484765615291394616194167774279458886307922512790023700485988328957993458715999736932356912482564213860946100204833261380206516285197068214430964850308183272011171106209269979695141834582657946202101155935404638108860163851954006788977011262823196942105112769008412943106565207807631398324796111130702258476776412440501836461233908700885808106951983286350790635824240211917798908607730419102406770660097664879216830812170563622417565100591433314791023575592016939997216949890519641197075421330542893153858167579892255826244916161009147440300191569984458344501953229753234087523538754488356639796723458052361158448255705358311465412114550061000879980991682695968289367370515069322889156727856807154754349260763593540194705344735517952108379560823149215923493661241032354630193119979905096177445814645696675741248661240876624249798208834089067631396254237270083794481968405701048190946606234284259330784393555575920281864258905513521389703585773555804894518134118530686479432779572532703461196479824926565697229544912780797114813965008671867425354267829754214359175100624219475432669405799253655371810001030953541569444132400145605854685533486311310593942496577330875424845177753682492707745853237672514507241889962980055202778685790083596498671372322237312675177622359834345503606009936745130064639772366129467816652837721914964090351880101112708369690608585049911709674651344054482525835273059629928955226782531233220534050077300274221897294972586387338243955848192530796201360764847525978621579895814372188647015737813219080990708592663904845675547794713794836866766919766159023595742989155925408176075881771435737433987365550653019442760690965634043344287078776450841549042668958190730795422744367861886473546433668421373529162340942659280471166291514915009785021090921261643132861605809227617207398444523751496625963935992715631800179303521907541216240047661310868281959515783485398565183319396367270509372588530994180420765024775154840216134120068786927536546990508252614403440462902603943562258746001881795599540626271038674381052565627071524861336653843869887216905426576823005031594721635754651206319085915104304431275653402476358131700406581484399133766538198307730822304314079630741219808044830065667591537685095496114077379859278679490754482301404578059362989264285079759917456229916711829422177296108272638921812927136731381794720256262751043908564400859338632022743059074360097946852672874135249563120459177325694244428428586892221734611832486494994386776021615878967625377989388262362070268922069979503138116089203463859726249759025314771081052251117861816097170283662232196085937036341082137594436825545111207924530779988235751006692725700274986090352914921564895303175459049212691530521479826045299123955814315616657615859501915912775765589533807954051119531374410941106860025759290568731796168379265934310247633683373500034196654119789674738509781101700069378075017772863157512529321830403233034589608443561462664186940104909454347677823490502103061945390265617104839215219567450419468948223160917332784910690802827120047862050399330132494354478951363817211328856034837753176410786285062114911761562546626576102950228927840304952170178441489247015104247040074419438260445568078402363032240395825182033059136039586019919118132875996890105958803025127113704256445137481461900960841556498428662754475986089043909654216667299961983317548221707922242147829266459435039392623445580360373684721847834837460516082717603857032623261188734255224208434858970351562527446999464392071645844881894812476758388394704549631489122074355015293800856386956493660949965592324813261093553205880558814804372170523168234689526494594920961960438828976944387606540492824408250414494687261050755534147761959470357711151301769203859991284784019405454429288886389987048719331421452255115257242163226236541046447862372557348424307233346797364150883982801127648395324381011704052173920507422940581962036158565657034456202946316556269356943017019894669059258810403866771055667177072415991665631545576515197866368882913800458325323807983749944841080884070413575569227741775740983475023616164910865975080373600388850903323222671475063943156560286509547087776311443402083912592537565156504986264310661151957239529729418638776397612576407453931795606409680769028865468063933643373717615727226304676004478236907609479127330087230222324047317098951254673731716591284197258493679782907275827715286848181167316413838956669501427831744115903010980673813775318730822088106969920990346678686517130023816282859773227937936123247291405012358463717823804974358078583542125767548264697530885144237306676630688407852962419807896212285901086997941047208893675238322399701958068247970732198769533123159400671748448307905121252297061111034048191318249301022020772333874265275441357561292698348941798192306110313337646657778107868103833128843337788010362029004423421593024365294845870479531634464550508339487858786590984115944952146769525662630537827451759617975118673133810641577372496410488051457269444020515744399616254341302090485355285397753637043046850324916098967351419764944898065745483425628105186252081235293291526583909268064697797615634094610320519974955960315407105382739772064299116666373370199999349323051802443986500422926184943717707323803327578359610231272116149574346290799338074830916957738639179965421143320323409649064240612933808777720168809461636923726940091090382561328648777303580576794546579181165788056513750027548059138495417841701472387403205113128012410644823126502892886008045312673857634037320745917496895338753491766240768681559198084568464422007139810695178858236252052350352834383613841443448686052983377431587596264551751095071492527800259569106336283393875482737788343190229659434167585238044981551340850641648434602638650342609604441250331713114781136177330932910168306596469134633361196557069351865807977702455258842848155453270270919754312834363874802202290648458864360572275663227779628349331316014821162066492961359215205619810698563565712453461860236039696912351856046028402429419749270425855030334553357497165025073226192869613542219100031407470919756553904092023209489389034203192140594343830026402305957462704914965100116316746202719206030543553297720054668064020208024209949740580861216177597254501754153698416008278303065087529533927243386562045478811532928706952373455467660222558426034551914838691326565050143081056313018064764019178246648275217474255993847299676568937812671554523295682079662350289124022496086831814650776981340616056633517217846829560856351358372330914410585251785045742463781614030681299512140510465421059343317059193162441541900353760797151481622889373522578897120831733662269431194944094977015660212412768700035734127293235249485074574936491354577270113898213875294313443351203194066294974882157616721677360673110920093160909518964996697346323546240069257502786662671057541468069828496448707138184655548322911297369392964498359683473582708149813252686520554609818498466093349287620783936980469910079239702196211164709702187148543591041159410522187126642575269297121343565116097798188237176657008514584068583685386049824455147936570002742330574612407773771250254103596736297350702930958714474409726295336964988792000838406381608092572950465101357187658600882680645375766592233794274535096299815291154470799535675816309596955564316765905855221481839041299426736018492094302417585728317379834567117531202468674944755005706148310772786749611580607834257906934172638414655403085449258168340470642684068186925997192047992739691131533026012086248727189821190808517567217908815162931831870197574354575542928060189343429007664150240402470266436134186731488686564574229209153622846612505470647965696809462281971048707313432099402983416124009221848450843657162242295756171678079904058639013985769841856080697577684168861498219245819520992206240907078739386725464692479066046112250617461597342671022040469908447982322899027312766363069899710631685403459401033047846595165040967051178311816370287229001781603335735459998372490741748345690911287832703096939711449394282710940039684630011976415462451636857301210996847703675861631459846697641591815845954597733136100860070920539404322329514493257414422228567068780610776111635666606861628266953167944337612837147756523827870415501127129438840360293150323442234682007912078744614868941034609558310054569192801642764183974245124623429549197495737281224212748699312342945686331014171891369195119635899920332933456476479422964803367768883357184018573849793905804810335729190542947017034358428502704978004460209652745885132708804363009435297946161203731892924426695821432476195706288952755430176906687557058697207064773128869160479987989882589927021649090544547314024461119427555510384611987096638508693783787002554317329703015963853430521448677663778248063080900218550343793076889141315933974663867258958292142573851534937012736611903578889795232884047195499963872821127555551667528703550611653165068212702414476822525696175879581399806160429713339723808967499784818881690483205424733266476946438899522501211871799166040004738621513947170508097314186907757123576767733941723232917431803134239288675375882809674334156498367060441604635054809131092241195371129101934526198455411802257196989719216342873730991403207947978943196281683063027070750323905660849184616481982934846958235739065879939325284176149997560156143686744596155944235560949899190243726793072236382186465207104075015537538376779401390958921336892606450528682680214313752069972694034989696714798109337872014952060022005042874809563493645508767155780942122064271104391542089992401625354721462884165020427303084958428681065652853871098707910062907377508401536849625544390465377310492622798836485745547605419224285035967335740134350098563106679503682295309985561466009165221923589583565150196041627200520752640180643276780274295528174715876205681159791796176898669525501989716834376294223170973317614268254964691295582249311731334007221287987037230933037637481893603390954598101806198292874258902631773124238552165613401923918563508986777323083751833711658733611589421212739553528104674346962668174562451137753271102133736063986646975223309299710330804095626826674031856493164034068062720746883194408902129441588333464488322916043514923460662485714757418521399539505659663734783368315274464579762529649749662024290407045428134159510957464509604737448509498076574221381961948976204531040300284038808921773001209170857745693918356996514758141563810804715508044507658885685108397951644127884029060597986578653930925721638710186246040592007378150789593845913473140663907133642512621834964333196437292946105486363561813772041532587987208266495732445678508530341275630597663632214733775402760893503559858752067069682113533028911501980380611837280686989430465069677568724237752246871984926564022882477472528822467134532908779347048522472007486123998352897393036213343773657649249940788066511479091173253760607055575252631673806503113384673380743610963619225468870631542638430590343852918091046269495083899884638417121132485469264557947678345631354711565243998009241299032980724292868639640585162908159571664856449495780906596826287990505465804942322614799419403717119621779344739170036648585827235824778142763112352221238906151458682896706914804794978898511956349443578345451241791383698762557269671314415369057524347737342482103075338688063218479884616700870034317538569035830075047406137840673450956153908931410500400362261981803241068302942515475174904888241657650084536127340479849639662706579417602335928238037659212502139001341419953246913081616323902108004473735306029480985242198511759486477237864083292090712752844574321693024386394780180566522851078357193750883385508211450291675049502503099877307967345687833499803259462599055761706296292740459014386412375459164505832519014294542596349229073793320155407955596971591349049902735194803259877168023904203597317290532000653637927730564529647559638036640917054775935619591109582645331095196843178170632732988282548788658583328465864782494381601198188002888439311665993055133780800096625319382253984772618467745344658520292328733207313706088318953994312584764588686309060290670721282872264087695471778307215185752710128823866637620524821557885273182401085066005447683263101892492349652633710641588341718171576136278227364894924129113937765752267334977617470566137529231224560462971870577817808788392375792841744583715511479259999412510741585203959602475544606420929201121394785568410234556203698802278757243841700933200098886809953023056230718638214521891351243802332677113686578071229869825113058814868454326959161682478195981986395660125668313449000796783060463555196486817279504325846381655263974163411536053113463097731325809366731986942990612882096025368400103478756491729863745541840075470808645259513330456867080489851798472220017254302729775382621556818734322520560703769178836893810731454330179537289876021224015111682064075501598236326499092624022097284469976710999853664068647249595012497753805213348748049181261102852279473117428344986892830447005793470569021580363718453965278911189139207530088814178579857480391139339083988727242068038874856779877614294708662009919650492711953822153324526615155337758758186292057531613083479985034538007235627995480497185373383157143681399025902091865277358060774529626484131980527977623182268549060769687423487025597849104061226313077495383215103811273221957588106619997667177387703458432548748221635820768885219805318265002606063344782594654744856355907108188180998705817967982863101316892368327998002488580794573063552075155675132763675697588509067177889510635976443605019046180555022254398590713474815730183696258070076274098374095793542521703417224609461989241776336279636044486408337316237088921938265836526996703478286605251938209987732814501846681800798425899122692126876459041824139746925674165882858063619638292979236918601581016660789162408526510479691426830856850612405389680382893713899707513301210424360859280338130667095117601603850609035923842430149864088696603439937400994394558038188250455633697656586498053793084954040536838653514403020172721612972987732579193464241222321896157852012404468120936921802125841966062377817111933743781779657056136462699934210633107210423558358564191066598675898828411078531444562715411902709564980627718058187543079239401800466100354906322891112513896971916026489525549621049097639530486012818265471377873695059009974096625800093635031215310266082615021355550245727815596120166428129601372499345241840934596869123404661395654136061644661637730336509318271476919067658672365623328004775160668027542214256789560050239021873114810637926260457733590458811804506145478434451469613939057076029701518348296373258762594367852044880950365928197316753601921872785644219454723408852827774289848670467413315465302990508414376687590859894210033599593608547357948746046320756642108370238968720668506399021693570738966300187330053494073922235548661103392881797841518731314110227383165739441255414892351690176017595835096511150647506924516063540093215923437174729792806343327302721201840113392385673060994487383725140099739158466585561374835573792348209707861173387372083901720377578431102233029965894659112202446386433299923278528813923035295278066142235638872777186967484374402572790466045324272033677176253613332121770768152734225434366407966337665646107596798186246111922551728536961987393574347712347443441111493127820120925049500371842633744146443487001839929085940244634682688305237283492826217010266843998692927011129834189985377059804143316996196973935429219255714031719286775965393799134249298857347786633573118773261485553979200618537630586974309035008153136050764167932752801748532136954531957504264940978707992947691854757746690207848826812690839388634588212292075816943812387125560839241196505652539175716997305036842237172736478792804634861411797732547104119424375814740656052908795423673658346005553691704036224228274030431753745117124515150168246102545534377299315440647333401650813349189574330098304154550716100124641327815168141160133411288801905257540250605546110270431821981286120631398489352662189906627355314115706047160358048062293128295169695237128773637138772081191207102590034581159187645659549051606695686451638384710739842421527818321639446739065463780468276705878125335835913047279871487104807771877678601413529944095576256961409664086227501777660433734370636483889347983486472139261546626821385651521162341004418747518728007559120503853711395721102193989667832746265383397498853484903967410007928785206805558535237985734019432791127601492267540770773916762839786626442403239506689868182990722081462795186585702344808761886460822629415635773877697499642371543679856469828848136438174703820817392618127082914867262693014892693630845240813043290340856906374746204421118169918317902930918754482340596200247009763572988944948564305383558553658988499346322052298864050925889982414978860879984300009210048753273152524235737166083217100103857951371451364241269106725040414490731420101461723310695935520343903159307764421754331566675384491492245783023686655365251607119503920315341030929277621721498410810007573797694115667087124275957894834135430525373588263966360717139615298742328681547893595912017163243989065372273026315170319919124528070922486905154526943595856712192803467701303809966287977370763011891348948390905876786185545491149211719252712882689382336092524601656650339030470006002483652808891260364823982431208073503805312890440291447050603950718080433317948783707594715646929938775400407340887442688201284518637006380322418190400675564926125577357482803374896136485055932366867833913679502295301462767610096739064117299780637870218999395683590978048331158511333806686944782650277320628743875242490034386815355886588185850760161858802718070689832715377108233664466916763013172983597850255069060348684322339997884992619967040484988676169818283030161111375100458897347620207555844644876061730696025098037966467408201045417722247252246298141231838341787860237058222089021720793602123053209639062109749925525744657334473642339723167854229319054600909276706398428965537227879472705089635868709579213331453000178675201364483214059007398113609501284981310593865594492280316972063531239823601778496243663400144719381182398707368469725500933035871289121572312840974477279387388441106846710687973866576867058907058674593613702543930630971267267679831881455925363422747277311234275932757994349518875416481489784552010157767947803732484217168080818417676139268713696783923606315900012282246410840523777387723481927267414113044862055945841474763947264838055396498593455264229150820749094890486966159619560362089076542381946299665697457707164821238975455159926982417746479729801921811722297183525879445567992001383844474615647031402405975888116646927196439990693375784802228920848366030644502934031651098500014744598534621895764206173419237984753008030213006466513181722633976497471174951746751558325784220407973070513489632503753578018146549709928596611157280259020121983922458050522748754310960778524663198942344715561068947256263823961536669844651735987972826314709944106133038777105020463996052320417314109857213031602396683903379296904927105431775665538505098454021928563716603790482543692728288375535723628386402275686664859752027805616888230848090937232064039023343907967761214714504944552507216253792049308060273379853951546199693588450961574187896943643616970181416154061304773223113333986391350620210099168565906099345153203481696082884393041900524315510294741557218336015431184737093499392258330137369430239233252144567704815739238276344763898847637978284325203107549055630440986302026120211299459339329065908338180887070484648275525959370924637179754444912710906613842736942674056484872312182108697813893519775834633002371303874590640134400029075846054535917100773050100617802673928429830900292117174372892810745029013503883803571286686919689727791312262748691864268174427821372454333521494973260715603748349074834706378482025925512696428516315171266390023694668452626715823805512046347621255148649024616656532210672017865693496072765467149369338010145922561845456478380155214832235336753556812470715261097606388667649744710545911484988441565104855641826512365551858648968339939655257800514044680052920387749584110906831727409680595140758833607096777381780662585050760379271488866753215604894401074088066687134734853087841324391001518143891963670083119309549250830473943225389066247782497036966600814723044444517682848951945153486478379890827065593257732819021607653882301973663430647904859793455962340475308578401992705088229582560667754189360409518241860449346782800297026537688196734417158361602819127965905145885891842045425023073472797262386303178241675800795269657842091696779659567079813103733319985017060486702850893227414090752676427807041526644943333513105483725223012075592107888667462948143904776441035179234855586578481543026871076488998194642719122560837758229661054867051333004637040682930387815718442619453209120970300322037958569877691229416153592896484033475865568883235190282606836352119464735949102794579283516559581148602001208135892079183719001166374723675604492063917353689723285936441997853583412213968668186275495901725353675506490990576829669372901151617994372215007560698373787712063597547718199697732941598465451822889519883817735227366126151124100844583039405583004599136472946330000343231511561307990100221307380039477256383218518186407312767793730654713912509848323515963427856930841653007559368022917255216545001057836514913073060806582725943612113650962548035018949243414856438961564139131140099963644900691817473176263856697164424730370679049631467922944634698304897341354297699043541621636391568972037286856653983648187410728873985296471912404062188120768595983668774493850654954085372418405110151845886734120064703163749078199782725830296131009102066683401171218357697558044937491333449877296167459467811329598484924269005762665886675524470701493307757451428698868363245574915905389811560357758188503305297227776891602462355534787891560007646118796133712672877646994561150869405155747842738629328597299089220317365254625919245625113945065918199570954330772942490080659186997164298228961649418529535334975069799227739184555103447144067666995183356392769343051968592933108799332753024802818535811605937389154232570455776608428934608964851770367849537405628048830008543321803988559746843853556311107438864379521949139919990642853361123251069084787565641272193518596323736734605047136373709216064963475487103973920960615299826294768658096936740865124524924672341407628411013446485498575797652881964055445455609859454196768352978132711907758066045908728401901227846856599591938955363441032040080719900149711082455878857193397695912993017228998221092776420796538061368883058750500412316441029420928140328166343387017539195448685017403473418630334315999275881856567718447779392967248286318204354383427339944232923736897707914898714028304493646957242021619379709001226919020570362710434440892637931122699025440996597378247672246701410083181810902351245273667273112689080290882742350393177588230946916492197967541234907212151671340087919522864852074769096088763104688249660992986308835664101053145228954057795220452376923100711355793129018615547983083214922605294388305403383798001660537251297718765295014896840260029373145274743623091282559169618023837314371189717501409655819826886181605564628006533241185395503665685152664402258193186308367910870167838713740963627592909158210825961260166268221711964307796569432681394323357091719496926990983779543129682144090682246385112623923161226922976614318911631504552399171530037497194417861202855810905074068067958767938888073486937976106217482990025406196905421799456647943868425526504956862536400569982991323122962864610166538730747338308715749832719392002695317315093168298635690421107405570207073477265700947795367654629274231299012620661425114089083569542257900733912560682760261773677893105114697984815039729075792173901506964599911083649876252039593882423894279002637724168648469188714804786489827196764720328903746818329773323021873910278660801944427201391999790053994583019880454237196656409743923083881847901396116350081215355788568161860875692515835055043027879211903230841923395344164918495089098829300185400272491480571605376019483623021211210201457354990791131940814023982369928275816542049443905906619774778057067400677205558433945560488075694452842513332142152070622537827198636127075804346176707135229399506002775671258488263372383909618268936473878377136734457960404823394321382981716072663707535304057771691083638342369943361608305293444611557028484900146837993945528876885709023978882953120237225604217443291198010169459783624773332294965973207778484632868625006849214634185079557313339857546288191680664040205562122561093207763207016450313329672515393107525595189554098124459061510032964601703115794329964807916803886804381275051957818984316933805106356673628271162702499796634705318720755693726509603154828169369016193646121349833606791937671965644213412044369380062229163686326157668102222075935583784466714980255578100779222961429476538770669025031603734362379275639318588484070921013659156848005459785353160012759627415762507159924594051161515690247138031446674553193421733288879007284802079944688423938326748122846405944884542890354430038507560485900699515134091264692982168808653717725097078263735301828364933312181826327803345445936488223072665282433588521301463355249693579005531661498745910468600609467826158257386913189539877209168634452919526926771929243984331582392616308752389059275342897100789686276668556216555651965598929142350747857140311895974685529370219507623907524773983019838135697411296811304743459338318697715656432092369539683146509289919053083001506401180537304828782748346065385703991162463131289973739949584362597702479528117501182012113108745771318560510304169235920719356737885930135376983799076074639375962956760598388905769409493832410172792219665851585764486803221666806381256386409005535326545505010218464569474740533689657037510364165791773597690516988234039118702991846286547257113641329022675991252561303403193217083014274688116341849052085534571361196724358322717009419616623064780471398183962676565744553564921188164632973678555014342903968769701061083023551297455892155366846517703330368091391155741088227217983167371619436278924198302323714117846543391455040497576676044806452979191470609480126285270303406597444714258451446221158003386714824231064433034816636195720457583739840135708525447458975834662959349907416025605977633013549788878909680018788468209463463335224267594609513380488824950409830394384965762808125528984432427535197302507671806646897217331285717426289180086402149756042336189879186347797798223520323377301063313334142263228106987912581123781444784029876948991797368747933945280073977262770815454484971527082755156130409577399330724937324716684924081377628962663712510509566943844374906595199126871156472763532104435103075328832557489956577595820471590892940007148755758749461082426643277125482037207508634918695264342700492523838818954302120671563347753138216509604019459528243239033872737125757683882987652671487727987282193947680658880038011879422345505242649357372544348736986636657498127712661692434419315525815814747963407720226281266280817764069795737505077099567940422394578125010195956510157560555114760844837864795410178588830644920771995764361849261971009206332204910880235827398096346996505541605432155410707606768782659819415967984331976949756661974821851955292392526644117833782214573497569642390719159773243222331595477525103763962323148640759137736898003538415171388424196865113264910686309786151726157112318500213858355171919152613723694414879393388271550270213843866659404946689569118271191129082644946835633116381043613608679663127662668140330678614720428273411746804139508486673980876752337315736584111256117113791503527651298953325317297662617725915352784276095209109117971409860144509023425315907058265292090920913601141913392128141043137190704237337324785540530444175225541374060416174518755508482083774435491238341953059469966479344732545910477211154717145275515075623978568409493418643921218805628552370779483081677133485844193793963159873303896151876793872098072270063045370465041217549053248152260580224831894099700760711971375485488894055366255446494905753911065191592452827975335146189364168539882053886374677098915239975342124923867091551704950701612537503156523697037569083820293440025610221829033439993160579404852430181892479509388915428003267155286855425753994231602688299736777864712847332986674313872905306142253328372289515659653839922739088768131547509873293467708875211067691147417493496464020624838299826711447620317222551912183939870012077828952188341201116964163685781881050822285615146844448607621216133973977723528788724968237813439537905994328377977864399154841116738863680158145122988581298580960294561931475342048890351820804717642137699281796047724787473628953350362190191674418015535812772679590714284952022781131918458917714661118897938358928681119494309403998524277840688956885010286497614048941115737082221515375042117077693892049373065202469697483032564782570270481708445067123554975658001322952147717736213011142915323547742295919094927866016330712874208407519307202842295981451102592209403682564769672855147686221260352675035268454000647881883835624644748414026403639549839518705982956995431184213844850795889480583398906017635750139340291625762214320824671435379126838636733220268056210600032748346344601809861086856163608455380883632058145457527398188535214996521695908918546249190367210225676393015303449983276857319054405244486894828062535661494557405583787918822983671835189514502516909532911514072306327323819014522557116866805304277110653396795075425285432176138809163696327013633445156561899364685873594042084298149993755626517441544676809080760259346712685549381024812584067983455899637404231269696253804124757818131205776286425336939105885319278668600875449974451559849873007395193586559996555318319189802452071079672867831251031963736250072300206169315403992614314651158449748034890981981361427195773643844674702085818283875977372495678095406630219125186084295078798895520768499721294454557238829047844489988413319027914414754816378332442419743462579979766861275209683816441678603526185321850600753101672001687573861652228505593439621295428885566560315762273669039242223895700409927239830204315335122006219527004093691956001736429575116973079478034025488431129449884787972496770264886542860240171208937765778707818497319112254733711452139792418307687789899004658602446143543007244962348832188297248627438800179540707394230520653886023532152261720870656809443114735159308838721267939644162288583735283528586017114307432196810755125387369803533404262325371892333386219225561356750313876007629623042661362466998887327428693025664134010225654607031106253753643224887229999170710188834355238834079577652046253292138053607356212397109172812231801459147180751692923584256435699761487756579301200720595158895232817919800448207082916179663974797540003876838428093299471943055910500580160402735733064161022672174032103048194795094334501147521813027173530374608197270877171241915626653166497393665443012729022136979388063924512324535399027936887075083755971677206278199839296024690377254785514236453347782130652160604130317385369477914685746633346549268836677472204269149461208165600506399065329272369599302702824807086504126428783880142480159969438892473357188499246155005914947074508424737607764532820264401806507023373956708601043305633107881025568690757304187220430693450754482335868479317964304990263784672596764539024432320357662473202790255602404562535047228583852792223017834740671960987162874757354888459299538547378868721159740167366530501666385649478153869270944881976275121235591755143030113490454419577911797184692895159698257695478565367297215814199524910697703761430107410323344121464546207465205492636392111574807362651526446366358931567469620331473192084115761877836489582228004177925494767539390504454614488563540427657437995280090736994352645934806578341727494029364157300819442665864435329157291358120477540810321702019669226474509148943220426633203554817444606904625843145644599758394927148115391118693295321107111518329135408852427736246416271128346861585721221841928211021675879470471135376427402721466443742313963149374171976740282606028233499684264183016758336902603413941099181124215956715798566074863360434304535247289326569984231012166355616604997716840710897650900451547586931648354415295548170143712622775900900743727939968719657702553002204247462538561803946466508734875717676228403939941811997377220877688393934849453443931336614878077758408162831085773189387289120893788761290687776240916248420555244162225064794406960581198276131274255614129282375665771733627536569814804750655326172071031517280476589451454429388975446440566760415418806181425837926143912912774686521691360764181605612814106017144803351550965907208583462607887413826418978319795700135989819110174677398710537221688013359508711683130128122622389457426402307135900587025265720016828272764179344963854568830470423774141716161910881557986815545684320769686363098064132251828511685370585282446896839358207898261630556788060423770220251016295882096971589043695342390540833842828474813763640628659128173644021183960771024826337684893548680682473252231744783591594978317089656658836614065249983179589237853721980912042541679370587752699590720814423113231993117591850031524088985094749688049285853380753963395135709041668598900541939656061853186789199069111113922721925168507573534413465142150598298916112112738473379802035387523941768968828661168690998963177589854259622282214317823256529863877591514899358562888741501098327842542932872158861646187994558656959927894243070752382713618912901175423068146099720383887750603720829080484283104668243711130506356242567954145643933081829630123553238282479494611122630292441776735250141219304733408551851652084022220806446386341976728633959215317748625821612567402800102126587658257007967328066763765194674352811371159274184149383544338941632944705936325870997916758201697542198606340988626937318254755230432548704802523780247609400849524378349163565440306157915148646844318039223318735264592925617292683866800326769315201291423241971859910115524541072870584504309706090007085567017390336656396897720631114330034412251208976440647415944651432441129166459737017855610009437436663020581166458031617661661948945807511699565149224203987918901340334771585854504864815269633591574839721078295536845965435414025367306652802394581399836513708047088426852113059261386781785520117800126896452778519460987165412638541721647062605129835897323568103676723767158668062003024577132295845886925872437990526354606176932828386262263873384458925898909092555738696532966112206518382104031653129826086775354865280957075127211690365796130876251916408867694546234561337533929202061386011835467702931519112098827378763907542180240395810056588947190595366358734434529479943758219684365679837338349574901546022868762615797938723901365554682481440213358649243760184355867824923073329718154528574019951153583535206390030175884214716771956553538853082638399794998227995820339087436485428654601443912744322028950499642067493803983607912831028614412936745006222351138978868027257065913164817263018851041107715285895893186491039266469216423063993912972469283555595085019437730135576748354984018120055003400636182661053833435905362352700464933349212474420512948909139382081915746692816122480617044902457000249025215551572149352757353063917513598305282666473027054246610893472011429637605952222408650580108537158258490001545324862616703464498948930062033743954847957720059434246505777374885815628735789952359973888172148297905994537618719568164772405634477213222207693209087076013210353733028489403124528080430219348319136702509884167253814375485391116501438655487001936979769900739911886685769810912133505474240241426535551952918859110774138634696849364083459144567809556451885747259587167762830470885359563534749937169310760671105012819834121371161572822579242672090456747507281391822403562001095583836306206617345785918680008078880502495907199024139848630099161865401031021721895548600621018560499468602681293065465186209697300109880417837533730328267104987881354248650259515803478909209904090165310303266214410074278847908535811355715716545072263151164650763161682574928736718125230818924331930506243266860947189502076532292613435702412862778523106762375602978366065163829003070874641663109181627677930523584110704436201549177931090707696818664542351794707524626306647553199157972188808917408812000070874963679095995859410372977893115816575209954659577982186157910591360943945212806188607429638767482515411676074869466884013899093549405742008784576713793669189006147024650403167569747647092027846989335510640959156523383560789727454519276613511260926535349113200499817419273958978215787936698255106664370698762099927624513128673681037940125662517225446260726360356499708423623234335817909981832754731146623837105607524356742613908219016559645207037525902055517280017157155193058794511712434186260803733214942692190345764875954494916928948777183805417475363887939342343418960601429406633122788704935145038111263730934288457958170947003941967320891511971736829716759228016460350653757085180776835092851728391498905285548992060443154554990958227491361780487768258431259445044878418160703638023124859416825982958409834833085921620938967264034147936521860294844528233930433859218066675852027788795159427486724575892384879019739103005910877760246498277045157280586100231556411301770872980095391342128231210640631711504039148954247784161509621335802977439610280145753874930725835995070904806996788931777866838588174632613184313176474050040943685029215464955922260825126676019552423619154689454219546885702357198196415324674794238623682838453921588718338029615102198155191883147157916930475035630647325924794471235945540284509073322334331637991460509660599700002720374601389473269899573536087398404288494414311848322090663856145361992206385203800793576813729023563100221661004705716766036286536177852317656030243876181063718770404180616749619842811836256341391826033105376588381711399117321722947471218878805386273882497801498205605596493767487945131463982561732662415597610939406285003487464882725161780999390570869689220099368223687643896359882431150153074141762620731848358134650721546211235303800569957316503699172600287854504444332763710525547657122942615800715988248160351865875056299923501619519600951885499963844365317756046295490108812368119538317775263321031314667885685667932087722616591643145331777223337170001598069067825492683396978154202406681925188903295772842113695089971954784786098013262660483566363940541967938369066483998336457323244584977048754885662612521623323757213264160491858199670535119820101943875017889261002517789635433350283674689017297995725508961368732305209423640743456680645766906395613591556241857011471432577799215358783195566690556379193133845621977121905564437701131993514349838066117871167062191446366200087767147985980391766217375805521685119669407331323242467721437150327929907192894546627961823851244273554686926380052738054993172193826133470247421458758100738749021723285047220276367760365004244185131583905392391505895500162794102887886501065589033087228840946475316694316943809703028571115462093051442011880154570046890343038069663387487347370097703081524644465055841295339665338150392482937888437930974367092760740172626076349954069628058459347168658450749261177627913539434074218766636783461560511535026352842130232360483141836651746250720648358032137383947736663930740311298437883423599450019541546162969667277037822462123000994968843587004153554879868928735559342185980308859768158961924720404903696195327463842363964651951762317240690131726086409569896093340345462431545345092257756343329032091803710474488726722665655048017487188701407667387828571747639086916568412981017130281270154811156326891217915788331640327962310011199335440314035411316021243672712687521557342300500360492344842986303595060100677313146897300964172792179424344171613514263676935895668745390435876613314332983527437382389925435941770298386326673258354378108647831329911864213731366152705316615485566978145385433328353289625429092233995180809961727632487468247736922372949822237362757968306003838502746994813750998985614342760672109812809370101609841780916663422014493386445884523355972800450498027004129298026553851685553637029931781563096957746868438070978722992797261615992157894956346134964301636669967567074729971711362172966146366947242782650702791604292310652699907311639194087939512030572661669983382720474412332461197409436122629801969426011624813959887887905471726594287726079858098283829233130463164635701346506533580931549162625316920268122921403625534806009484121562157693552930468012725021664017038108842301301608564563637660665660136724331212012265305846191430327262588288655187152031212920757005533380272849179784635346834216803306231388385010804619877974471476303745582683479608791199123623490494775287494517819026756613803193428753922925756182032675337096201771689542207946197556911996886747380199132690225243419571869460360535904901104490633467128463672493962214721969556179006009182184284720255407123092469617334518926880099080979980957762825002096893001921939255186791707964814739185976088907628501604507748002875564404002638365104986268510256879576935920088744257583130796047665687919461638173171695931639973758741717421801365917913632074101970051430879910963900018163800007766188120523973188784233310477798716142832478045992838679091719912229025018115527995443991055596433921437364485842241101463678012782452858641419902525099102224471489733948149763330122113956589883570954255013419421857679589923358169020645954819302457189194375822982781169102508350081569977885970307432009795111990561616214892621531734151169933738001559959034969001765710925011180368740256159152412449719156675204636777454257440129538188369466405041910448761009099350330480164559268245267165866954082402666614529135754634896371745558503614868598362601023615212757968948440446156028685803339419718413092900510253804406035379371791871884337283369818026881088432795482041628519911706630413447225207181805447955408460086958294613788350384477658574844801465929855261300394368133531894649209287811416230916922687536975064956797757512731213868428351063122209565870777794750236594242610742310989649830865140137782408722809043736920510002522308156157269751234852649290117189990962379511702209750204980577737356851972469877394569574865741400268789660840502686438305309092638344399613727853215268893936547399703689368681847511650837876345070715442467344752363207463454575927253123242912894636969019763393282170411961163616559558037328504948845860690982566439361838397617717224516046446192721451815218772200267525376361921531886571712348034664174958869611671151544883698575459681603260073292789437120516500328406383691698501618200701334200439290483516931912032309776712429088685434027019514173332938945895019610265933961464883489685096758608778661640967154286181221016225847847716535270579163664373099387398911725512394058855700132753111381509997234713474571239899438444961964971125132379787473826250501239504572825550159190652536547445080917090613356868404798037445455398736990778135781712456543505474937571297942584904115768835508938853518253192369429196660942464163490898945999733922354391266338462430771790575177377447207923087205951981987980696904269449165040495650004831509012808609048963304918980716372097104255086622538551918611329032914172364443925885360241773077496097165971995204788482908019453122278031329685077019124165972833287188414532687675790879490375995713234849919844019699634253583569714868141640628480129055802354757598843861817622517211412593947675660809329934299926656810001836177535776265264262153247517577012306982942237866591050508817589966116833539652928239281601953634237918366432826737717113468656864806903220535278241707834669785499241272253451360937411260026237462369226227623218217056221851055628034616946735149198146223506457890524826534832919924844779544957009024361583728871171286715969654482185073770788488306487748026113064757563030847146956322958955507157143317115244217285153566748068100820382538256115489900382360473543788336985869214929267524383579269216621756371534594017938881833634256662338655416467650773403390760088607011268670642773850172402461255316161715955238137207484038306136138788694567384337069070440743447058424882114842841754092231056564488408635527707401869376697214905050891036768696832850562076617118249785931185422613552098186332269993704647838215520268643911861418943980692533050699213423767438614069234762835342614162987895579279765391881878277378309015384761117712087173212845208689028839776902383792913637125875758045909397953466618628414506458730116332711607126408699951535602721243980349742476792680247439329780237289332698736757775680873990403448157489165756255971617849207249459875440872962527863120914172306906901300515768127443914221555650291732215724651422276132403186341470605260558356449717863171483369925242303228211678911651255419492815430749268549775635385803890636720036659056560013985973140825072366520016701989973606605648845636712020814741153232083395911955505489179655040889701057231918364541611001509819298217127043614476607526028952247091156871079020877948851033871866927106451147168427596944429679915436761389886911928523906272254714011468365108935463214077544478090528238951163831399228247575753977711956920700880427207219938334273574448980009505223640121704191576603013777469721156143623973593183393660565678784334681140658133798419568459595509190487523378668465168885960979430783156268857171731627650211474114585404109615084014047911824349314008826178466121180348297049903506562201503858901750290673833534300805016015073776620137675046305904291859702377359814674895494697895447907266708301872481969998615336868500671584622555719899512828307021188388188347760843290454078472293013746301382578074586185569002530603579026176240034229329966052181487351403419971805792834170990553085248394588046882027603549282292635831672228301497530891871093095639181626439790025390171558897157777452652064693438366434376337446397211531016100994395885338445120163576187105203390228885276701692805131393370540595187748476046503621164000904217428613736843779673731059392554295022738030799738035117060335509506665057949081181551968700672647674387281771165628233450893166102589060091805787033323391178173460377540692343620040341450815542884353488934479082506482682644697380095685841824781907814959496178166525702468736742156035657799481222095446563394855798866485280518691483306882843429005063679562852252551733778469396229857069153983061665757397042434253556663629314849711009282529180080451462117606084799228752210857058759477359969413455868154798556672544277723037928584661615941952742601265031022896217890169301724707985902405273965513032345439940975951055493923528905841103256493918200558781373740933180233185552807086164115177908057364798338694764916645636135010421170501776374372642051793648194183468625329544711129352349774418879290184055735556986010173229767869852605819122876606750837764137842252958229441250556733876673918785608597457539904148536527354828142771288569285421725708392092461358096939747474941547835636715311686986913041759752433532717020240410794226962572255664706032664205950326151665203703416666445707986806598228687426256002906845102288562720034736380635263629239481796479152079360807266731584987129718769774142700220435041736312450369514228816720987515627380746480093194422264063259054576632876626645864389920083926073509520618961948759165604261510808990171025053346029972555313516821180435442509371096360596027215899196440295162178004026176253272675111836199259930143759850846815507231303910421411212111808724632243281949445882322997472367504258284960015929221100174763967861422597872376134429700120800116475366616780403338503871339817134831273374828768616482328706354863077332683815485863511462627564849557827674215921988084510290374345400157872751667773287861825452514576311150541119912739585600423645206480881634945850242434130612125802732366203995293239948235749959345771597166200575169907984691379046080964577799232214093531919328656800730805325953936257563152258215600020703441642129586679949621656764185080118221889889405775905050233844230441506192167071049392600869302256057448512225473075871971919757156411529819738136449119290450543232173919966397735011474297941469299023306722167449975055551743103551686927358833948578663346413681133919936171906027691661068967837897043808873281860363939345280844858026063078213613505508575550752634790824881682996596254111271047533974973114135006416571494138258907553961993075276816620126573094173927984401114825383558456198686205261873739818768704647342310161835958835093435112858725300822244960643776240271319064532005430536011797771844612175325286693410062653787213376224347556245086105861094617439936218373316972801846557792784419048767835654950920850208942763178201654062845398003467336354161328568821794280729526245247345165925830356813597148223587648743738697846146824540706660749075819582231751470999938548169969134182056717957978561528764258196653900530598837345919739670135692484839683164685789305694113866181013661442989946625231174594025443673158719127829720158580839645909813104936662933606509698742108816810681576503364762942454150560568563967349299081126422453536059581400863440888414557236021935544877834265634788610049329602386361084222815947675447283974184876059652711516670008525010140145518574883707123404684837588625223851852635777361961503807128805497045967007777938285737956824464847783610955415488111362910278359254234569004803487329519813004313893207637455235197724325892471691905226658496269951447678561669260149577970042072164981595746088494712240084959636959203617117086289122911892613759362575097425309402242613174013374252800950469490855414893415216774256160849728204086006808301623249617107979484301399827601672491164882583144068371876804253876446653149862522245076327863328318410921847613133066639565814617872927777253394926697759914098138227008445928556548998289124050878108373810507345495171454224939063624304538819262278277330038640211822370303561854562712452016373434458066623497316215162935642728535820020401916428502127413111352596726124291136692370691270842754595626895049717034919539504420945115865078383658110413357241904079568267555475795270915378609225742127855395499325546540577118547619071892391888309759733366000632021497970469073840205503399486296150738431959963034045124714551458745328433605293577752784443260091744558370367331478742964171808347551100542685629663338115056415708000936947119665029626098380980816483934193857922640588179247722564571727763421946300058048342617344575608666672093791987894305194040829621798152001168404865925883968157098257274873325500975238446379867499077337736695217781686121444004508146084827010420329476010474822875702447074112413075105205280870677549774185030182295019651386549308890473651554758628451635030824967657842970250988800148964061785439674506250633698120527627641471518573731212716910706898452685762570476461963250829938885541535485131260792115619905188679643883008680974146946628013121886182550199186496862178621948606567902756593257155991244351859656028827817283898280299632464910035177225506029572771789414260175007109677706072874091298127002511587240648860561662723547521429447882395817158418053237009925376685519043641990588344743892632527753094460503248679973040386670659855460589706960804644884736831122156398682529766220521221205916534981741516547166031042627325605451970030902936398661843868751038309856893820321590286025100128408234454468166594191979875749211676560812918719539394413316354403982356044626200301344508377362133018446220904795069468890018060914921568114088597887578871842051850949999660870779662085582472236707089854502878263840517401503698369748914934341277535848676706700441710161115928014039543823059499184136157876802234074985572608919952796462228300662937611133078969876690466025111421083917400578905697246826701131180111217424486466298313560616957910436169402196610983796873804764272700085307700095249903532544031766567148856841179472519490144061868722235209395314919333110666805211330691465638693413023592816921701017984601996029376581225824676331645701799135855754438368042481361162482368691171687032522120449918247536704512244920831077350886978318170583280078958024399390257380293651725212706711579773829029272599491346809162041636331011951916615423916953320901586559212289339554647496716079430847420904208676299056867297796063862435744394575674367607934347370532704983795667401282079543939251637685074365795780978926650644842936794044207962126842691419625333492565054682581557129942358230027050697673488491498829116932840877628176554882154664398264503354823707183855799044438430242878526683867749417941621921707598491041618000807201761951390386489761713285068580825775663435866384219730237668076380063984799384312454120320441971877487647156688274525537711080732158670697802377248953181494955949685996578850025537768187356015198583191089030277131383044771821821682521155777628486904062820595352752112832269386438421132298215279732725079512735628878111456296250368646447228092229464341793218265094892355234577065753929384781885440831374016064284365378530859410469857915373142628768893158828537902355568441054175846577256373267476279034023470879226080595974463095363552644933106404489399294431717103091793329469405167640440886093766650189022537723883013864427596603206817131356630928451414569390393156645832818669768674391767443153689457658450234443438676361321081768919593889558322663434011969008104514794171851814505253743250082015640327879536273762486594393007491010075602050392115519270394444738635939136413016591903366354324544779263460998857577451477209521233915205735402229234098417525473266089171003182245284809696206347743017683877814653487221369044011413882649447503209039359625240621218502035775643026575456134269800543461815619905690329888309752284480937077253465011107140406910001660327673639133720664535477923444507618731815530494502976620402440924124981603894508342013115582725597529180479920425266098568561305333945231786817582605023890904145487855964603212724419257107034105819527197722528260542425949438561511202824054109638179895379932085076937511108912756003914128259681120247503932606245753339640298389610941935648731028449692589702759343818503638124565375000597539687770122929901274010731565561413388813480030131912292844886939446371705421462863948351244447842723183266922273753006227213473631509111241505476133483012364017139079356362275983475281905117548775229325520414907348704021877177475897397162009899261529043848817842763747617678065813870780071949876605183105656519695080652777907391736979234591850987857983212022559393969926269575352383282012969925205749322910380085859506727732234055022334222188231691038118756056806836256010330543535237374207310243704424001759496807216861701404048610288751899900747508493475367245202340787877189285027283817502259016102480503785526184274352407806271338263601702374636867287675701058058048232010262249505579728740973297700587558339379725666954249267326099157647213951185931987341003829215099589281889558925351280754551378033060186657522368066081730259483155885403415128890470611380444952515603332406312085787752641050491312010437493458051524206834514304624036750735616193088484354653628438155262840072311530842780739384749552654476260267304039851067211629202440748856326337816767513760794013098336363287832615410792226712517133746713377614312419114933374976463327419904549674469753162115867893514644632148366664886557990619459898021640487083947943793080420972588529566736215671010238811969053166089261286887513432879310948995561435660996748906776036486026761467700220402887292019036596453659152719841917765991986421404228030223699966702552092149605419315670974485963873644534504684925374114276438614447138940132340127414852612515315246252623584643854322288355791320669527888147125594637266699838818166190997985086737543934025084225201751401466023467406087973879441821913227057864910987029313041179803666492996617251164463408615160217759906144333443530254603539348531001533477880046866489247475903454380979894971531439396982767488082712153844334353527970504719639362560624383633068734401706354857473080607282343739986125761119862876826329739851652959193380615120957817435666495079728164538066955346161606065145115779252462188200855192779375378923493762211254443745571943326471435841728965207194313176697294942272846781016475264649477078168832518310894911985874585382952117562829594882792050030758520815716295963787706880891508242347258578328185776445785263112590471226474151976107563203250585609123394738130803071256039707142305152764655760860725244214273632358025365658654700079951334244871937169156361782628623757193925642848829166172631528324798982970119057974570295835028157749295262136769080222146192412446317630193310944581119091728541505192819859816269983624031126571224061698875581782632262655718270479010620000850873480307838929212421736876041652917392006441204628980233041966657473641046458972856881170751955724968533675164716100090703933300587974200702434208590390502551205005222735155114209574647834414407794436197898955502246829265626255127622793604846150671800791602966587165989603495411477445966625371771715577500145187776308732865161961667733209822195722756332321049616873372994247504808447873536739124531015128882825198073365009320547139949792953085260871462955137010864728917877433970421596533850571495564054915843272098549867084490358148718343243709146264932346396929282206466157146626829953107607254556987224999042556639413176227501100927301307886559387674069370170923576133553279169342637835809660004339958129701959175785756842924982678863667245011251535099760984404049693618809665919793528278692474570192477435917092501363087065114295989259065542300182095898455757354624084424058951724390359922227750486093294807854070403558381417800131769817481537031884465517537574967807027371868857860924054412227858458542917837205231519367351784967559203124352805188266863081572465892977582411716022104951666140667876515367481293897758544825436979849917355218413194575802054685252092566300541659485918891424765169693623578733794686879037529322173139887725984513252547515467110237435089599525860251861729005437768343866344878293538425913619853680193692494272198176550025019901483012990605885902831980159899740443624653921106803051317899567050735786832371018702422395974113351826176756799747508916435886330060193847618499066031268364020805699704162273416304146263339104635148804277517082254251836993865898856530302537727482644917534490097138786688447976847213866011064720589423191705793460864303942213360984900743606621470368154879181117680944852981322016147695832302159312767480186732300802755948099166428461023304062506425826409392409600421046014872326604392856792267532225519376246903701097997359850122427885179131138619219117182810840508989667276023752083763775370359517134322412320173838372187553405822956036368807673899895722784646818962836743840700267314316083153491739841475215271741196419373898579722614918958802864633145710435582117300732833422985143326911694687306855036812712314993011629388091894601112922405904135592057473995239703882508859919717221453144260155332985317700786348078072407216688039352086603200198815379342884569240316972001620934900852967757660935317700881560104976348560464286464220874582294986092117569570267640689359952376778363628401163931933337773325166205870188136502568454196907592106510949171023885524598286666405774025592609498529335122080607138892972202370042260384143900699144953705646460984473159052755748509056005493218501775942956984605306919046895716258973552342600430296637099282551134894319258061748182749542820233951193169682475545110810851988473350946555224807748014970249734600340933133167232509028881026205976013798897023078742740582115287849843612487258362317928267733005047834602490307402343481873076159328289039358752714855844166338605824272642944807500224962654612061094055427464569505121885951406174167149228238418635838334159127510707560488177392534890700139777949229323493346888362169654154792266953637445302993073893406854378008361133939592790283506544980470924361312912545745826342515358108128585003294223581609472002414987545635193984009212931036610665207177727682467760388828399090376282486192513410116916160139634847483330235946628119414427787027027488447127781288666562126427808061037955067271621927852645003633521929853880440171295549655098183162449122346263579199559010508694075256119558065421763372822361467633952072668946603259334599639158588276023542361756022241026375796354378729312745383376297271320099784316629551590579850613066210212703845088188778590421511994415746160621610636760090870030653572116738182617437618364729437933487422913447928998689807337978174795011357558698863374703006687128895060151771233256439459750613700382908363845899052791891232354064641060645539385727920201433874603560065517271429845253809038730324626126437206491154518243195235850413911179705518966196982646637958154766701278549622308801800595280307421548997040574888352223730303741777369401059119505643014517192252706506108053152592158663603924482050728859063072443477132921958423619836219351167408333793674458435511279061004133460142596868023158325930404043939207647989278893537721899831408601669710943941229355826822830784113390759405227003266024210537424610064519611778522747604089206600204566701632006448143826526318954151094601209624575837502434451368989304522023548072915109199726506312347819347505737106528948266156723516354632716882795501488000239748877323985792639901612811539483970259012048847873063547592877825742624208212732725168261329996465171445589534275151732627465204931479355198570066876540861242525602353586804662179124339384751818835399431301263112660066763199906406198064397344991247236949039282422369374001516931409772944601910116015063122286408587773079912143542246347294061797604478161697199881084184933110620720992039336300209820037946773429807667208207508926930626905960314166618774024292747086168672638061246435514346335943604276079689884427029281337109656082246186727181221298347187165403593210869828282718693092327367845912192302060403926342076920388603468338289067653529619315352121342515875007071224461600245626092386909924736301655951207629719243806878421751718344184584167711788201079559073227246704111573389366350040341061042662807873488195280296866163933124884319936840780986687032839466339938533412185215310381358753677668758264289108506035336949976328625190831573017239229230027204566919266255863098373742712036440341468531475339247814315781208989616250026037941518096220938273672619209005615684663318720388955150117237486419968578664047343771062399220355936094736752066805275874555302801806753091048298218993126209836195572386445857538018486884169590700402257176315522171728105809278144150921053701364813083394502235694890913065333362141452683914522233918007430003646098037906211229847081953914112551992620911368468728240123737475627542357508336460825068273007136922113791609448361732367176004806335890053678049350210312694239519480465590970648881859212992610603115280148390541778755601739465270518862542476240308358607309112147893440862422768495420766840085098272895028389305915146474640863823432399158515642200617826509110969927807855078761502101108375319742338611685347072457195959308080110383861541048503839213617595924868769010348731946590746993884797359314525534332388896724247284396857392770492855230887980497888325653283835869166609792731978580996844270446394798856939167951503844855747269421854092058365741447635010898465775573506823136108532401772180858845439538198880320445957501175674052431111627114488431969605639080994018109779369567528239361481787673816192076680245546097872347566553420847180369084727269214463704620878910353306455109217637819705791029609135804120546249115439759052650925825772398393929938729117119349331720864630419845099123626910686037080583642791338747830103859560302599550498650087345695189315716112260487240638275668682382151699124991164096582024296317217383423531545544282914138455482758026176163436755337995706270871683249915205199058446718199085490585344517188771248842434746608176927551446091175451543610839040211148034144010331809488317389344860298179000318640944025183097908087587177969033953939174950629044464552714811475118017182640364286987333537826311744555286372716714636017154237051804830991915175387697027443738439833513609744828992744637290965916877388062930973758982635627095743156093820541893425656959766712809982012627992064286103027277328214283173405900937140081639631893497506217844026194474392800795074092737413572263934947110061027356748731994766054300693693047336092158870862706995546732645842999343122127134707143952757910392869537819159888123900073757237658995862726047212834814070063386662171979355737436684875074250118736101918751944036968542914906828895905433663830727924417236395034328967584563641420542574451874353130732130429431850089057352804572842230721355333277877944023250063544640001566298164933551978608223856120320580560242097913197946726159375022519549245737122491159496434240721557590760025826005345387779672749924619679406245234722950711937691429203676217464051124173106629821054017438599311890493541452517702077289382697253561407138114316892461703187626603940801041905422384914000587983216377719858196231229119153996860681663502020183796541660372303977770656854022217546156625064611230959977382080530535287850916164481918564184637404196876083229089061771151719392661944907427288117196531039031165739546972254677713766327417047065412731285398474829802765452843787043157171068484422564882034087682974321137629050689523553761935240963295891249089722260878350085588207948995085896005550023376968508803493462813780203639562775191167329745999608202336770355564825445062618944559197625748277940711934556856626233397826491969173216245609186794861443965569281674922924603672768263021396420483388117916490408865956003163231743356601159922718986326286490055352801956806063186723265671558998418486669298395379367181856903249110832357439077739416066961376444379541830675793930495627971350434431500188719656734190123951566009245486968988558059251508927963682261367145134942562563123544018160423916544652979308118339281378932440823938635005344900010123174716473844957501089975985408624480194930530422493562783893632356843438673964651184316765687206986315328763125823116057374211918459196271253635204385050476505980801448532068890334604054698452167411401100684119660056078073513488106365139818458640851811235720220563698299243149933490713516042072491480002952412829863923019859528422668351837475653611835024459327536091906773653916206034626012432371589767777925803311238056080331847506288292120250086479761012308484754620577519704132271285161295836500884165200413879641631520862266412109759013906501911515146934698239554859410290942205349355483555655721831045851504342366254232427911910090004795212902780666535019126658013248226376852044256845769753761299223528182272764185177884161405207795238663643081692235553017785081995157814641552169696795481893988739178293945262799848727423763364736143142310588983793455202533024976737809280883593501940480377162466815203554516236482301886448895979567251822413522243047966977550087581125812780819860984444996076793174892863843509575957608616812166148696973608143180239215143401925257708411930911143009653828818085349289407294576772842806371104799182615318052229286028184435555697318650711738301821086681032132467910994402608537128684986020502032480435200141995237618110527989205852233265036725221509770615985884063860489331037444087910564750307579698607608541029592290365716606312815184917258300964958610336029924664335700354735266012698450867784322151351937928289773564154242428139669466723799902597328349889761848398109950447961932468074684849629334290685208223525746893630618751035905780182973157858643704790368738740878619674110903417064548211347013983924170288897528472538669073730258672653920858489305918784989808025944634435167837949797755381142127060360329367876965814238641677104057085354758027913904480592551063885517494382436864941615811208875206889931886394920518416895831409705223680622215722698492230741146498574012235138855436963432336958533860000996078083938974244973366953388297442736125876241943560797147315403846763691094242281045588106769682372327571225155815028124126133731759995729621224912585599937347877150443038688483559949577458769294533133717171429259405238442968603516170230896760192450409511723378346746412520116592163070289675960159253594028929777078386173724764484361221759416020036687288671981702293524219480592587114808827667448851135154488622585520670965980824988001078393323873369529463917562826849980912075143853413535557838805109934129686045144920019047420392370573490419622722220561225588916421758214134587860494629375630942195918850145955126269075330241839964030193438855120677538452187005942067894366966421986755327342698520908437796546489979002528023301386552573302607983308533480236475485605711249106391483525529939841157817847428656895490759609566029296886325880406622538568924724772260184259067430761801846284679007027491709305378564750612168187842514379401351087997241283421947668429129937745861159782350894518052025255499902156618168520185536644930383098005809272067631823220571213125235452213756425167522455249290810782630823767980057463415931045357950563821460414043437439761698934655556913006949613663298371258269823532911171174326237793403788253416468259265508425191026379080047686538337709475918674603031103789603270765529380162878479451313602496174970892689110172072216000589950309940200986608924721998270585382669842116348213400637499596920392580203155507619202252538936446217840342535722039669336877234724113747893257781904886523126509749757473010885232770761111321998360534440318320774876080515132919345270648688037102170525081101509450626122162798437084288259532672534591932618184246865688996911165860043542820835519070384316093634825039704816353915116179907737369931932769871429505501444469786047355612903141502298879679267978735811296609408434474589770381599611260906040182466077066445632155955572508651250100221516420686637366635963034070355665624882881944437141981406895635994440492939833005098882611082096616114556193741891043528612466727318876330067277846527869804799852907153647665112991708761909745067592302774695730114978295869331752734368813622317231045436500091466877378091474172872716711928114029111736275530348519834978980988347513365446861067242800949436104854443657498935902436080927636359199952664699319245599605488282244992490483613802670549617518070019734261630235466399176250929421556790998853026517636196568699262825427016830961069756540877072747688909089989895418469279531862182984484510277484323947230883904768134879783107474354360158036445401220418394687143751844161883886132756778044593093111834037399227863700033087383807677609960803491794438354571924070261230258060575070602987674150434473455198522328970154920806924430219413105140561504394253764818333630447081518519403241829065386989460006820139926080679587020407309324349508331972925024732830029543622152442362932608161447748989499545321432158529273507543882804263372632487948437215228491112485319047861603549684511134111301607188387155308004623026119878720939945998429296585391482273245611382368120568521472391951597033049402817449537067232486397427467616461439073069707576539377718064200404955038236716873518753840933174147643939290814354185308964972331911036582633168072737150211102514808425171532263274463489599131881700373067163588591845089407660275801671586937700371057626465637959676789956123108354337800280821871985581640446711633141333577477290592772330311136349338274711737087379357180950747203937342838573976220380774970620746644851671218373055144380661953581414457920461214079990173431709577562612118330803340471288134856825730246060826306001319193321975750918549338604213403624931311644823137157254912145073290760552862901143744804129642026826137273814991533007463689992744027451162862322700071830000741844319871164402886627500406786740964381510687296497479955209885315181144303403494845687407529781675623243767262518604515644047734242188298071978777637241735034829607470886646008225353195241426314755858770989673377243190598665044970198311829131667933512181140658711544499013858006328722005826987977586401843604854720263970041042601542583497452854519292207680504941529979636455064190130216666900874362374199830729468750288726424340656668257892491403556705093248197592040587326420108614569962411577403988874942079664170453827188183745198043341399920582456076562159101009722864908940735733295141396831851593533813435533950452686693658000942902237192916456111737416935984286812552498893684984718017018577499885292528939867796232334206747314072880966087663418656477762890307094764314334565897471590436744883062975652821858161238123367655895900758748315007003765814533784040013683992452302027512274939654550890511014260900064267985434958655230008594436024551487513007662409035884790722090447817925228365956964659470823386233516187415770744568481142447397800044882593368763169997425023641270920286932285584041321989340950723056647775593215297990911579111988227356265912225357732747350962863158144203176308267895665051322122593601928126041024121663229770257080959302301398033320056885367542657995029323540590344924742850196488234668486129131494123039755739549643588944081493580774542110486263421396712808708947800970086175586386837048700980969936520576700472092724751613890587617704899099065145060005014510799728640792543244836330590077930229393853750245437635884889229542753534025405302007338334006178644099440289497846823885780444991325812604129242381071589192421576827740594797732209416967024133197687915648059141128654318050640492695791689074134879491431247649031266189681790196922911963175901544114777046216820056565788548804597126632926807245684053617283482952825331368799098707230622986882801312454248976143421750914502053469693831203677120810511042517452111385551105883165223986692557970227880422353746737083053507872395448576930633167244781024880315636047924047799628982079338725711384225893991777186085568588935257712522148197003206368012418131462902465554674320915052644964268844393065566293318499233266134078053310693201786748575976797518122462998313163288841167167616524602732961882647169717498347325223577900441753321772712722214619100559472051300145940859932767445521788820946608650619274776692754250557760930346583154224569472191142999921013925074362358162909755931634686858797026544302670817179721007765605194897259560791104954055284959731544186525202250787613787814674816027897592103166240788654984230240264512296402118207917219448962104611213462544195219852300050949137742868293948794925945000144763184487362254027831306289684623468469147070585150399041890742845537628416292583470229219294575752673789799240876450069174284652736074777143930808536654602280957906952313059725190076832889068671338911843497365924159235334530754171985580540407262251275007110426840872861044299622916453624659941200279218290962305043060148425825545965084463890891882466173946230120494482904730491772492576679889313591864875045319538457835480116898719589075759822345750017977000765413186304817602804554500124269439689170485801563877289655289235692225088310429009236653288611746735125670828736139676922368276537267832796933934258501486030049735399834102970773361167285535834318409824984639342607288737721562549801040859851295349602190747005170786361648304827619532928064156044143752022288915320954356060514770188674810018404063852106807800870461787605668819543866572660337394182433010561137426569621565632696120753404249117451466562641317989889927110063715590695849481786017337154355986228378302776642231733469856338099604641402486548845397079516403223626620827876505857920156712412166482568493662692666067133995992196993575958837297260202600902004234487117511280072586981213274773142064624264117064922065772850044970125830252844768574352692752765231480554892254143742453153802607719908915813337399949441536025093120359345069582239458159361790465597312048056431049219853833730150524176580938867845969995573752584809363539153753204438679501701133264296048500455689276360226931440425850270524388272025680217599072879685271302412284705030040783013734053254536181169360466491527781695015867211706330945848468593533005538743068708637001026061589916197943722803223754047857479479612798752574247668227791026823458803188595201225353818458514142629793145763228998970868261648657261012037499090694006299497534508032518827739794793855418691100752974653808768220598754986875898713800121641520753616347923836592240508759210143019025197483987785172641236061029390598951025059149668277593938769503236274786199391411951132978581672256300261056718112792167843138628014893972367091250648118452644459553543135472398125277248099895576271439032000739670248335495511048178538603069785301720046328215271346612069446178990424193820450330698822847718172773535217825052021862346681592505903164669735921594352250969315448476648777243449638769628803717486945685822774445900099451156202189989670709290693498063445203349630563212179868378230337227410269916282625803983209776375275240625712446610021559965596380443831370348971752101475705946156964093870759332560826481045617488439256448683873114970451333490270559642671573662157343257171159621617284219544513468216000922074817522418908680760526200619307142105636569226040028938781223714179953655567293352310514137344826742624009663764230649161350800815675625236793569994789796750490567008411735442785553219695484369248602053813942210383790077160372315589158693436816424255106154070718738767377225876315684855035317226813138342126632776289286375125283864247154020822715299241539600104368266331287365323466866466162672453888308174799624778202058476776285440900072668119679859532290205323122966661545137331165118085806558616363869793805877291459731566826739309855544166907975292248618570107779402661535615096773552982670901115242863642398377594781095714992391860971354206642880979124739813685966432325258469422644328743534014190782956555385413077401892661987422378773031890841919787782494867224804283692929690554655651382253725287623304192321187950282980163716864451864779643999921438967740616493791974332754518033467714859037358406131386256768493719998753664295505524744702135006864492362658680340922403798608087367963032365994199338600249380585230159405048191488021138357781617890648652084411728589288152335408803899211411489779936301456043946242476822641428438422413428490129337364340686185683102600264093071605592483361672406207647809798130528567525426140357888730620479853960301069477342504422740002990390636495587968256369598024631001069663505120949566248820548684319022733886385945156124438256995133799845818415542851385809259948677289490324989198644510552783377449951619677224269278874215613719255366841181070774360088436995073460209111592803586953045346130650331141860400152953869057507814312662988130487796337651860854878816162138701721768508570032024940047927465510504249543763763757090461191812096313683434812895174203919039146321453053568151108597079803971959201167788897879577257310028193427618490003014990940766712911784411684674014041001084535173320388629266520238067436008375362575617510948127731010183911635608329600519536710117456112670861691412940587353484243810106592729922714812625690411498145059900024903572632655253936985058383973299750470624090513109197987071735663989508940339516995259747647550844794077021846606135430609055207230883723142675349880326371066630546056312167560331677304804529264513788872604736660537277286174416113818362468230648838858124096815870329408496581772274767805938874270826448081030361796194598383726726664711094530014029426834632234337786692665839377658498999929483716635497950495735138455602678777935605431667254550663922294400013588502380902216333779506737507661961007201320887402904983441087845683188995000732446871181825061670354461144796543090066993031595022211402867711240647785947661313488637964936988960739652722287553153390129360739648246652384336164801672427670321673376340429151218766063338856498255405714250344744541747125376201232533854951525581729352961750259128136923649533458992393651668322995883195512746754797027229859858464704967623291007065161522414781516347033496289497790129006676032998889570093843705944110626138835458447006813830173049401655560053858356365745465892802972911079588511228216391059336114422765716632596968175256183836417132505000066693206818432331903474338794444604352732567521466143745514170592322943675121716504559093305746517183622445813867431960624179479520603431192637249701727389694291046114697773423128417349023399110881466035295274025218746162195917502081582781630389992546636711739194335052614865755746288967327501957590778735138056868026795414337653527009486630047941471380290952555414434009914348737437196771185120159116753502001570037732937434600297417774642074831695828905442642282553476810254807701854562691264278800310247386845012127096699052747864742068333713790884189261504978279753611140299561579149276419692133412698322563765092729996607669931293692386737481810603330541070643081469576528641573555334860245144655094099137085379104965683290643634453382653192191506309629270215436225387470582269446698784034154662626506859658655763817902851448800886293996392397533280959477204020119455864732889707393072844281153468272395248149115089467734700567204868892524303865643148016115312758813071695462109550432262202949931907166243401648044480920472259074016919260813806413292530171512467514257585830129413420381673515520651657768780779519262318113318052010109571044987929987183225640941428654253108872722366256795531196909513671258033289750256958429512124552119037849010180390532168899924639922933805458839944520241420508388545013518033102929169296324405862897057559973361225363001929054750577741840939971044770775679929647760910117630724810447548007108688436452883385134289065135260734192105427797278423198813739806614847311439735205275753011388228870104056503037838647116074451487407056147681125400504387207892219818256641712956238458752309924000112483822775310260944472366119353677649336595586577976088474090051162766571924751471398363577402976380311008048900360130429330123098341855777909978463211742958054219841026525547373230809257894889048142072106295118819368467639835443745740521470834212969731502149153921978306503873503989471552632743097255825305596649595851789288830106646171909377770512664241829529208788182619556975517022046593665256693906924195423846384006747573069466730410701146459415339145367342317606944445267754029126224672860068368007765320116317747420223938348815164053736340309143286246774100758113650516914826899790017439235803311201005889588185273983721905250580521275699395324204344899089329967148443972168965515193951587931117825179804491157587135525378271368464318619888498753079792403939481383010026059537055439481101195161618690914180547454421860578604143760128641442188171916702510957497533817889956418570670652575503988043540453741116639944960011953147752848318799187626351921209478448537126302486114363138356765721042565581088509147932020721679306008259839340378922764585255853387398118327698909622099244118453446336442508513630498389705237911140011177225791211573331030676895866960964649206672820801800758967618639654416257317792404125809633664766297934623052794544972350423440975036745272225663002644477102877125148256737785971004295061304162447264038741118442663886187221015301647989728484936841513745461935774307886452822177717413895935244017971766115769507944431102816429919537609379981029458089160917456272479851366586296994263273733304678176575654147011757859525180478236336566236489844812646477063550858858597573055141438154181432341451462729671054576816968535894221093543278184624711775942992222792390195737403349110237514873531295774589346885149153467777946775626019885630740619597623756405916190178979319624902243832045559635114880479203886894327617438131208214605873185247502183769337522011229296056970653488728366515240425162483665230426832140893721094226648425015651761755477084522243152517968871833924746449487983155537742146143057710978639923627941620866926150354229940711183337792753437493001263641012540403814471287505448698051347973954201926300752711024689655196804885572684543018364234561612290655975078906041595640308920145434533864298402242404961913269244808208751378044783643108533288292488850336256840897834551507283401083132066320843675898932645956300434719403996012966427749637387970451829411504294603005262773200564836889770911448844870861553057054887361795348213344231788734287402809334158891846757209845618942708283793503672938850814620590380481392114374277947196806023379235804603842941103304223629898961196472241024169194967600515839139733563099550204228802837362134041330292024278883013228940053621822579048258803709170485279612137420180667630880986818120928408463878031581674594879068160997476558401225955572923522654683716577733423480728443740048733633285391019285188696115396732622376732922943221640258193487535710543729855061715816016637989618472942193887618930137963540500734154144078157287120521388562992553559311334337583630327641505886267380336578340183509622854002886993113843652443485469307732448224017896845345373585621318141917611940595237957224683238443367179060506826059268225577069062410393764596989955631425324218239941298685235824822486674119098910276676402462255839363369157147477521757353167323829623703987126617271414641374395937339884969432989443666723731332497788271841504325561647224596393188300286768875472612759212957319948931643773955206742531810597326297831667326581846927707365005797895466607641218333058058754739522757802350767795802905124269088438214642989575704371890675380103368084401994188106473255391911119765703795785153689890833494069231785914235678630277180425055687009278524983308715493038901296617361962295887548268147660048684484089352845939944594623490496325280287014138984660150394335624442491064527818370372869061871909469739870525646482427394378480859620896382797952834635355350914349640843684690773548453249451630810212466449024882933081184284569566958456410725603135015381445563796898730161556476144103146099737359771718516770025585199014921393405290553317046097795165813446574658259018734955403026811632479223289841582770960687717158311812976334408775653028146334825510464704391702569678008126614091109927362282435960622394304835086418009605111415310966462711855313006042090430721444745283911802671035920714211109907768143241350784211151766009148499178972973859506885732450295387389469920811391065733050920172672901857690525146701735379674432502395629857221808949190802947836104190469846372515085485158355234381003061505147186831772592166813279397409661896184710110783486150640382710462027924375935817713152644457694703488917471071947434217356320155215006419784879825252710831577015564111578500971755168472175873438767526548914290158116760792124420936523229719230855608169867953979781414941843668185758393250097804123411302446587554981024778662560863797332530921588980789393574906920234871644555522388832529641486487015971373480857279152476446256107579555650965325327666406449154443741529945807012499093682775625920711205722218010902511008044360935087678568568058847480286277043361758555096249820870513678134386740983206038113762091850718970090153076644388760445456596286319379557851180668440048616209884124769123426946197680293511701893838486056886588628865011168789102106050728192056056324715844422525089920979062116120525254340422243330839173580156255600782761179910935422123388094551557542549068903608562799527508689457318864842026957213941530824330513904506181183499410697338312409084272495070537608317537836296230288762277236937608391836167954570639521097637653737109882323385557187259149089757411866456883296356060979465079357493733624921252723701792986277778801799036991445414249336995011281928338285113291489137729724569883145293611668926165159332485397207312157474147986872793635988701670206209744271845612181251771309226020920294747244540558279015533058480932303601834889860491914716012310742032226098328484914366921543998760892319879440225654771018862447560352690416205654343604421104504059030954907343916893087557256144414283431991080557177954388335803556834808706243730519044098005755258951467010884810931982658981390190441050280630044967357646443619184151304583100965892226460301470036843762243006031589672181610781984928366125521471174122706742906458590622784285948720787854025191184930773991564649508152222122720974397484031578753958938321173854557159191970021266242940745883765329964837928845047333143560066866439930781261072473796686286644473033884342388506926266791294438191172717539309668367361652169041640329092555380727764181218539898854931553652840159820669890690698343709120477313287449826879746022908953314297267845105041180206998887651514148946787845776486855086245817817847864965738561528187095126347771883039424293559117301492785061023824540046573629019885538024384331823004037445533170674178890843881201383504369953291823860441604530661464947588759781900698195348703361671574284260114395588972640965813809309375758186249781230535769278976386779760427339431034980408832265234247535214410342882758079511376026917632540484264112722100059498005274196177912696140494857554456581541018382499758335022976107880028831994588282451891239803170496435682634224184415310949000425982896735025102962441664868483046603662541596845136487525035954952166321695603425113700489315630536150608658490162955225410853193538112453186331315639688137131672519681621552984891231119541603255569513513054890778321225347930119937233699285271557328511977259028404167471941219511585799999387700306111199536473183840243046385526174754808954155302931745314107085151757765912885575323932730722187445672466196852229172576832751564803631152472246752375166544273197259322849101794946366200732341583285419612471411349580878704404767808170318888328291011107240116503279273078903895942011792532124616411111202550737712814554451085605522356357958894382587020884232448128984609897005487060204053654740013893279558532534417766017155225637535856802916603153612133047307928961085827914114194600538095813887490932410360114762861260910320646893863988957135077211095957834751053959289490676411939598576671704994911671759019628407068716613478988582038766313687720068964149848203091072372931023811647398730077667100240126952257376145150367912653404773362252639704865927284186680105328574977632462181703992587049559125301403350732300667985265128729500822101843586597575246885426256171535129358288352136959132503177846461167078131136338477548976730349823977294817684984408066861688274544758733414562685187736357391366181010563153673157021324323102804337883766843849602846242266271619816514941447368851343079420605138621248870907016319995642327874383227893921992001042664447424355128549102770283342248214982524643006578837522192280193343227059997244671558411939487442868635609438400725136640053574788523457242055698153682496989718288498278420203348228386647148422685991774756087979831326570910296111269797421599287164023118954000344225651793347564353849689493293329897430715676549636394712827831748706349773854267028034740672937804053610357433396677129700092123478676810418414419791768147134595081999002253204990496293162131801784924461209490772201556094014161966188751866837080567628835106889037387121002146543540442044846710184872306154826047583287185352172890856102340439417984408469244650003858325667151205969548222309135246754266780388066709512175919230882307915580029848480057984500604901850244559762634326374623618117811914912324443395095650599895886292140021197197534530516551597222368301902220106180223782383145042951919878518503660629734728099610820665961038862552563492909626612157702260614410925444769052791682353778497810137661851876328857917431428497442682290310297011827171312819781655693005750608342147312050761724702683723358903497531814851249625821309895370910296520987310811888181457639994892072927481084674988066629164956244656727378929466587755455332845693800642029921533578450976060005808057223785618098675666967980660412029023810945583896019502803684058082875822931073347442155895540597316096715223485077775301753358316506127433817921519706773473807908722452797786669379635960861681322209743511477948423955760584621384036127152371784670609101755229947021236252215192327738858545671507637384539453889299482967295678231351046403739461627243345512290625791275897533787597636694328017314305378555323112500254808550933920421808750678681314178531110128693690191298413441611691712984353894391802318516513607237525479937540075426688721903675358321442554542351512860660151142186062637521169974786914291160352851201682655933497608117849677346734665862291981706197686897310083265091309872789567776878845100040095443562588918460077644945158286765475265785716621779247302294632228006151106546701095319988204031321077034501530299819773373079649859998371328582234024209935932278605781194533686810162611184636455002566188846805166971243753655796619381934820681125151692318245625336752842492587141450179290975102660208598592232203357753050845669669463121602910452445955653322564913881222909684103121033985190998082398596174937092940222090245200295401882880432883492981294110332705302102810927354362290150778383838847277615757385363341358263179458012344733103482569100776959013888862181432374304640982105777501185515077686524885481451168429084799940496299688237758409704366413685902928721397765201488531205197440393208192414849309941716570374964931617320105505583685155877530857482112203964817629286022757021566040551523854994217498073538973777110042165773468923258132577549713118813227982929552046800313218399666212826080692466816659631420085262366260284059094996326274052649750187197343016242624570340189930132807509220790942223838603378733661572403277980133846441733359251573447968596050287299409092094299158879843885764146524311785402877198342526167094516764668286253622475708533880505809804066502739365333489309211126612789360648445529226773874298972934854536849821292190390492371303941177386179602109381953738917369915826282628537279820943922975097497928738885286978581576970271975026779387879551238387853263132086484128714180324459654105150932552370662987510215686947190452017145223832062412889502287528773512863275885558199050261178680831394510131511288786990533018295723329763669539066319090034416258231403205666557284581249249502117564192755570501736760983045044415912843571715135807928264991644963273943626448541050717186816668981158218433198740077841327738827404526972723004096928801793095703996580637043373910539188901180045195993647484639671851656767602099393750846284960332726804396440375838847878476919187124877067672707302472157376297849323690692559105183209694231566598036431745962863830783418862957034814827075584501041173297855562476394509220184388386574644522157401461192710759061231577735546276509719260387813640208379951991137431104499609256820838486174721993665371084364516706765034057828958421763047954477568787631271309282735264841530303367252860088054848005505628745244983818285324289207481734441195515908618723084611895791038313542390034700156931241025650532984634993527057084865405839920117173593467062574346547471525771734754075573752963522955193457942086593388701861209534668911685841251175432806756242499978263653939721761257091853283346285112283747262661090982387084129114761176162622786773095268806676458834190023238815643872453968572231264548250393880831538487893377322592319819434846932780408820323157550774782982573569144702384455311216513159221867022410361023695462376131173117730166844679816139313291364758140370168607770207130709227516264986772909648833433681700899705569088493943621108476748745002435576930669220749158781901362478428794076450830002751505344310748462042340740695160070830289533904147027607874542189156922063968844142174795743149466368111072480581334487819505042292276338617746535141679888350161727348646994911715691979054535391177938253719676280055328605641968531209708063139851611387527465756985063036778518076617015331745610959267540833929448005550425877223005409234356094719641407869898031622530058817443226093777759972425415247224903529999328193710563993407813503569604599821500966455411936321708374814124903125874285519655951586195765296572862387951080964122551551710685147454398166650025901790718298108565222695143996420530330553283974422248152378092568328224470864695392189468892076311214096351011820947329913242605345640845345091417117787005472465615968435590584212356420269983254231823094572111378034580499537421833483471247642706052790283763236545445706428967961303534670120519309270602773368640009041981351729189012917585603080205519934729572589963780094041478368644736169890492193908080761993514678201204230559208938951359363600948941775848212787080710660404223122531843395140764742921736226765100968996481851402768272831322164071267678121333231885865987482461926058945160502165826095892488056552679208739893069293785808670694273410326387166376844241245181121699730266563047188741571177842148494507601963644158103206404990924035778529729070944683033635211872733940196560371724361288432934181020151584909815849046756361156713836774850308154779987973337640112144819516904969238349658754420367132499338045555860044247301861651512429526899751679424973656061234615350662922249628445399371419117889797022481682099018046040276161051407989507188596234124238266866865867582817498770220641695785630885803747197631029228420732606913984769900896068730222333841644031393588262956412594991629238899614876467585954987094161333603744443326602696478839887397286343001499700506477010891715370437165652159067061064849087177303438008986389226579119207099851430336595049474966667609580062654503998198420051409256035284339783785511502316835601031369660205299160738060776817177122797012810969189977257562378973044652373181978448003029314882725888837397217504058950777481974980057155160079426669844437933124330887577378603764581386152702264618604652202141896591086672657389881331320786408090157144439341319404295214468752694787669995302270927436174636263386805113945548808041492461864070971582734434792960366555168836780141121068913320128645583304779664253522259454211529551953800315355002396231074633250841419463735556861073520009658973718228536490682513325154783549998645444784134801131010480374224708963906695568268348224582529913528898488237139192947119251492306847551248227040124440347386863174236531591051450055734714543495528702472235350015405752250386551720286949304612408973332707940858373165410272765590798038942344467720844756967483581804337627358783909538294324547681630929087957980804474415006096791579134398407269341069336791984533494629873278577383385635739947184244511471162023237533413240080441377940053079486456954920962228643286289840586633581998738505025502970968095576685050515931104965984007258573071481286619377577392064844468651884169815530948291904788683164833350760849344540115833328802033719260301223848371358212762443200777777949350335614113888352116836482429619894442011916168662484160633686165520174827075364383961528769539291753637315157890444279708544434831162824740433003799306308535717282059030501889690699279911405307227338019368608979205234138119746023556979536008314470010422778118887658612322939153735840557673071428490508999736220440967674594278457952839168161974598332627439860116906760074139231691167727956439047065572544252112816931572178529962839867148748952329646025002462690335995861316462503734883001019081960580478017445250475152542292478171159671458436526159535390748516495286311589635618053187267160249717301811827770094530791170251120776798575078205487052328891781877671192470570584954420285914565728500377319729363640844473880840060283478855326135286476088455007240687272538724402071197658281142090875437110119810320369299098454819387612221744065171957310472502463095382710367536613711594026020910339443544711287609718327562993371598239965309526539220890482305048464606585916813905498532849648817251965520672712384309967169412965278224207801241499786180143345971043270852958826576798957208509205107044653626617833937058653694342552202599736603967672181697890545981926517046610853983708251489404241349608019889024173225590735079935468940826753518248184369759907196290522150457148591792485848210648645920970678383225993898114634323160253122812455681010239825515269611944418460994333149451710411018644416150655940125867704278585379954744831400326615449208325436639278822418913261764996875941484718703610434897696355969147481236908583550825434629329584005441017051216010999578867053889234381996687119951975536437254688967329984277304952024796004123940125578737844956197369138185430322383920293946622095494828202002494370696295650801240308961927062260285071397058753724522893316097498970107014281899735031858562092182022560084791173659177856549293500764250919946474129283991989056801995536989154355913183157583707546243607335162233719729840533222208471934271627164991844608449621222928610868035119384485437272000372950567885164150185381759489244650542065984399694144666102485627053590189218200146121787235371532146275415691144870288691746005545425784609471964849043366283949190081024165750624700119845679463181944392064785253598866191359166528596315003055216658270558115963401123426002345722128096757161703007636303773278963757621646948993932964627662784759073787837028854921596302215990835481968725677441590444720820583999592143308666770412302654968098144744552220970770782147995301340684243685598903146793439803956345072228626440544696321895796914310958599423886213203017719631992002240232815602063009809358705069770714587227126875125583150763407203877124265829627962508794199753957449618089347024718620643028829517858850846572649312838982216818390712309264584487929424968049677563682670136882567880730906663774019188775015700832480460589855547454769443472481162862694802392781639819262159324650294778835529372084344998531645787081565432732041649880050152534061372678810434684936270772825310001887760625711783323519846431603358082703598168000130071831053812861602664498769997721607106967733577547504228152238291978812354088874795106501860767642351512912995728687813497946643674844193743449435120330106633075140910052491817181229919426590079444539670236114987360181063368902702877783889911526944961862133212540773287251599235170618833822024703165001366779878757409551067878892877872379135399595654549025054172230126623084679713757278777863324972816821898280774545373414228288112996104264340189025463623874470018407977167048021796807207362136361140234705871691499535221678791718945212703298012022005623693548883818266290464969235344467656367567939364361074216982052139673648097000459642926653942814873215133417021735242030720907303510356758873809306392912755982283787904951565967130075934866391911147764810068750524187665933614168211993940647709515347511733162387143828420066328658806532595401962935889853213565569112730065987174383636855558660163646540307142323274785178367094656512871301297261024477386849039047353683590273713626218433991867091144865912361428541932725864624902700694355919672065678176240218339716444603355028215940223682186038700231257076030825662746907014431020766794132781757215408091894652686598610448307464207319938229193461037072765694709769995355570751958115825916742061988592837712352502452484241262218145093715851565371611606562551043598782683830124504610806330960065460455690800630826499339304520288236570543001616403771248470989301724847491928568075693920192379449188413666508289940643542091039628993353967370854008007141875948521931496128083864135421012724416559735449694177740318889266467527330077823098202320991326275101795600643735126634761167093114874529678899432338867870541020456134585010718427829891229880447451043065591162907659915043476693363567508299615497498278272582343243425557344351013677320577951090238658538399603025159266838713510198924836317649221460246147155710754420880575123823606871633866592474134623368596592157658150822714617357681000735164089193500107755961006383668293817159010620893647629530130685963839086548161860479813433003592928428460702430485277735319139124974244404483376483086905219171168898550212924342078566683922863311435302257177624325439617383776405361276985284475979577201154339602047994369447563898662439509117642825019945986042244265595468077922364694672471459754391804693918803632394417812842226769037625018899915620716267262050114713165560202171524304314233848106131620827529791381062510384506803062721143699855451408612024710171518551479767269024779463901034430776859939699557512755578579345416426131217822634321075765560303097323506213136855316847296921593284543374179509351193089063455625602476683344206547317923645270312212872107635615186050604265526339333308648280573249524988778368808226716754853028912331623332934657234937317811263303390820997479410622362267139527961244193668654454616217409559362093968574734456764317846772914593394116056108429032554729820138392410472908311628386553689806099286048239555181999138549521518052779881519813356500870599599074603854174006316296425225970536438489820712283640827267197945773626986306674236125657978158974182749021781615182778253020365378966220745708092809309080635826784777758789821226411792616947496576395125617791066403674195054654513744886560581977705495366620539331243207811383901707003560463588997993947099799773790172539665488097155316201830740568899048990656083121122873705009681667407683168985213046021151620012879441388866650863448770953945768589397604835331353004380117545361914397755464570590821264158149034188593555058376611116988443220187847577571076084293471934576460222944181741344183634157561154845854344659254776623754210738561357834935826717182463521588028197182624221071111636874029314545930526504711442868499828250493409088258155412952220395922725156135506515201523159098335287066714539313606787828367438667090694925448296122461054840844079957643780980639528322497081490385044743859277325236743414204913850097828237966229498960580780482552994934739721084615221521160927611322537990999534997711470176536678000536041346316806760525657189903910199971463874259059599437985811275986119257122318888109473269951956759503337750955459175500849486305902040291648306773664320177089851830538650857016272627913120255978807670178857674127252997759716636453888410558117612117847744026994731845239602643548072472713158059703487873845423839074708055564337962834387972548181140400283566413122943339673825378233085578194634039236443355944001586067818031933194131887129283874766232331382546183721420900086035365865110399740477125050146193649817546466898983107448134121902199072208704868461357523229077679320211786240395113289314433108187423431775495704439821321948481789557642250102760715339295343307216043918198907036793595171344658970078473037860630138705896161304107461122071621381880477251250248990151946865346794368093554957232670519282104864329452182648377798588955389180605247531375817988338771776674856803956273502517607626740737970841070777648536712835473552728854899933230864231342061908240122324577631957353334641661854886358056255716047916487493947152684405775833142483170079334271309420117303864400985656921541463160698744434281272678154627216560916607260711714105796374538386308298707340557693429483948295089715677806085555740136883539552826986065386391675092654825231902180644936971085835609446662664261702737187719043794183887700159929957139496157772744144839191354068968743778340490915472771119973738904554212634273700842262801486531667005520892795947504003759882050615928508714443918524860537641298287346840977901387699200526121673825466985127457916504667809122861993179693881612346918820741047869216716455134862034410624182377672644365054783256683224027569606502797615071727645985575299559106779990756365460123223704312911716251480034537782680618982386223865119395515967363551325626428960752404351277215888736371452991156331297193463055658036303729346494099748494088739245959650941004696665978854484664640161033807580611410551768976181506477088452741849374877792910086569076753758953014122864727907704342933530041343708885625475264698024917985344252265156499059486856745273509161036282963901947022473835965940281938465358359636047636543611142975316550632762706442210854897985877622678332498218805946799689160892099644677906885782061812287471919680266841728351418832086470062697262191921087380363905792906605608354599281190878001381529962228887049518300806012592314594126996018456586594344230265462083165349554045559248068213836602616407335229889796592922025326080531868030602747099308071425764018284079621599687434235416414202486686079222704886873229914524669092837034336673190371450112033976576922374580770007133738633335773772968518507852152141075070347258487492941220171896816363949577890983697594099218317557955706426584748749304468158865354623332087977501233198509662298208641581202784508642563487789091397029622064716380219277592223737666622266894785294055844605240763886385609393585184603082100871863381444992327537288188660597040481723802775004546818245624250769782428213379758918990314902569962979492503179001136635936221175371566541006706160583656479023313271407059582517774621068512650087801848470141048294433550741609708794973031558931593661948039797877118164103583119581356471483911223959146285400848494967932621662331850666545039602649560603880284453774666901792773436570187230417419117108814652085604814658061817671692029622703347867164647239732862474668222681805858991271695400822962345324233454777143032757673474611539640551870234809875759043895791180213360846964745600750632930578623272572300622541323859924928550263872539338154047011085575724518070456867288124144669600048762859897532366673215984974605892184010893325776347748161266636407241702346951524970154889769710587257160238457406655854736451431250794274924027975851300787521867705032101251782455917545056970565824333200177186258013924364693517233329409179642782198388920195991377516312478532729620424253985199548449600001028798057728327572503705970293202927513488734260735802316394053283772954763717005256794748799679314889147559461799419120247718646663612385222147087665608653844293532356691263902250914459213963544621082730450347822200962940917298412623067651221509443743759766542090478709103712953181191098380324046917407821033947490567999593070678972691195788657766897803919091405806418357024674865362947626187342225972415467935561317336081787751781465777570207116438800625238160764934616377868748858674722815260863804584473052592178227476708433388393150573304055369705069246444245241520394837186162940467821242715981421693199435716211903117076604595426673904109430395448049802211106150499943670830452055345891789222781954895802392398164750431386564373730209887047919511208345135997045614641451238136718684991437736390670071092185343154497433881137976939918333392272678218474765243456399492929199209671110804394607983281709903923417156047328954183113886449857318308614960513467391770239070808250676645285880596183663602475138670219550735460414214290536944567321036783577308532459161688316284313433078245628808774336923280999991270431551396142135179406622454205512858082825615307278557498312255754269653339631495831518380242088398909043914777982351420913202034182546431814920892552827257461931690170730853986027869174130293852115535296388084506319420400562590954555203432882591708673276244586263674889230921691195567482020445175460636329386529481418030477522458143584685299821819308784358371557515536791747979955026323752672644654903270710375434893660488747216614517991405451217938806433066315751690675953666481931198844259147653650355207233126088649953384378737306326914984818833863652342542305611624488130846190585951395314098940730794332151234075700906740940602581151175815129111658542237479181575086304526029654808430940540129385473916744576176924584809211651037386936293973578580601777079420196432790254972853095305306691827051441327335875862091631063249592609483716575878744448314654354382547449195660998683106737055334062103571291372481746229379870953979204958401691903072721168560146000110208143050010714966129875476737565055094266546904382746174292011016327220234764470232637476012818756135593985103861054659904864073432516317877036365208162540623345657501453407854544383423417761073632192817366234267278317156984812224021999639054503212051684045968335586169615745821032413453187324081257372491543255624887883204762503193021081385843123724648646211625425021579958843806087561312799282382327557108498867361204326838636218645612678057482683036823394780323992145651087637188241831694726875755086192653959536639418001613005855045518270464329484086725485217199773487419058195225932385100150223935130508874003728881409907345533243299259938031835644816717246115579890562988862094411366236562910398070837630115214124892689955843106959883591740762593149839782451604788517857440395178756848486630345288251567502093519030026997971864516979225602807897294045371656045187098074733385409455330186361460586847268197005275634764054745515109238263769263224839986065705140690343171332254010303727156356544393071148841058058080496828818696109175767664161061274676519808601904077809190189240641490432822252231313652742052541790842496903138710909210477716078415682828462173162803152112383546654666887228059095081824627822252517307633463398442749710316845303267501305538283089921677847305410232912147959686753064006406291446967652726743002615070297905112207309192628386412053941380153094586478447616159273147263770742728513866139055790188951096327074297105851222453447583969604100524270767794039446426284262739769233387540215010021620936839699248397350733606112424489789355889742577807482292267934822433067319985454961636648657616291345808459248464848820588997796481511858170660985128360514254383912749513064963875793749940045048792350746595125164335703266038556965218929901391659233448970469476706876845395242550228244101463251092076194732791011592201656460411538088062145984205116416324037244166820297683086868039895579079374047685946987736889296405500732947826844085134843195615985477561998922436656983682504284111791220644548159146363609893495284910890811061451414970558186699223748952978831773340672088237270519959796970919178169471596033012490572071364706514130703410004069638378697076847923096459689833413047904258477777165608588319517710823220302017058359486420117710835321947941287006402158784269272251527003943210646584222798911521791752618138849509001189223108542826527119624955441677535419955757952009878211680802540109380805129941411831088558963787079062088586861560544086098283981405498261358328511489012863948030756164206031601625109476280662984107712657799221645743591762020358052780175596862583570936853139843725778126496829756059275096370375730062014226274396109175749774003412251285395656210971635707726340165789380339713308542803906127757545113013930829969446076184203280738304641367830685571541842990685992266942211781464868126542279090967293988963502107791515934657073137113521619128551855810370480524642735295087272239123476119390617847753307312961425607415005582300824286342822812496078255049136968182467631113238281814703381136029256423584572253449684578144155282100736576870967603857672483217894824132166447372889629267236478433150984783798191222343512515725936435646326638306889098401668103771204120933592662023219677414467755572320843124346433867110311416081077796238977897936316420874670360769684430993144117091246514625930796051983948724287835813024555658829665488328283246506911871970106686795110174269629505433248824327659626152632505773430230985348551872311457214993092029743857842182339670012632344342917094408234813648215481263295010104655256716235191596085094339304400840196647936559599584136843062176671438905287982675392617590298377159771210187549975948588943258547958746610181933541004583092809527243298937248595132901385615347038232683141383129204264636230125953787958045575004929986839059829948592269443020959321543289765636285899597632077096357959814216067787926021748095690471755876154801615428623431174458972328293044988534906243482136698078104692163337460023510885719477562712625210185364239302000485630141221718272607212413477722155068293857843378408913238403997570548006592004026275748584543526016471263999609921019699863513052841065201988751801535033563571482042408310802339441313006943255217291207748046527929565550781150472231552877556222153715756650787882780409086343261917874114922859934452712453712295966994405823806893887867528005540036713057686542606855008691657341966191554400998887936402429635401082902812689623023553448519235171856308109372121703300468475856651732152677581749194169933294788800727849064850078524461954685965510347503143063912365405064317827172227754118061794258868826596566216659062901867566879713330847288041875631918487429378103990668318690158249198037614360814466745768523308188870134634212813193447301798614714409771273487362273005536597846235820034628719430636818766104274763552953117961263419057133520237100835909299352713756441185664216524206989143586605278599340190997778978239088288632286650361938426577088868595591590932479495405231449169655031559515677762938425373784766439740216743863339209343534375905497392952725167017112340172389161434904883985583449708276431856102929312771981806636901123380292783752344976888564149442779230150928951019201926754780838779636978444823992330188967233958812923340809235280465487348512871900404267627222974665632337267439874269441185723315684704534969367764543305917635929265016167837611702378879520983436703745689690438055249495269332087499147594767648830244362394673862004298112442851820334435161259981243664340658817909401561895072968964039374445558733165507518216840784059300875491968298298486920664682024269027601259706135363892515734880618314347807108612028224637390312067210670314522404234561237686463426128612057809812856281620773287232544077655132647360453227976111098440054818204538814726263215404493822782693739028290291879365773936121927817498139962536922900888288683207643626703532049667689703875123857805124563805660410244093904206324132182981867881290590787418559169584261478235741499911978352677516993732510218158040954626873963666129026265415467253483655306345187832262714407632276510515771865842983803586829771744446338220552656348590011734913483437307357085997177260674722756800927263544589892136586394244748420740400759988432976953916138622593762283502995665279525037513109292974830331025081216307324498639126804526070517226807372407719377772491982593151614295360651944516448696977229503885564061519808009191407701839553485521818296147030216101681318288344979240652432083476662708024550635394707783712894913797056079815644581335125568296297839260355870798892025574212026191963482893584588743783016927441675833121104712721588746142509610541466691324282741308629856466344605463601514357556861214949966090048642870548985664484645511051936646806227571277660108097821488570888645146588105251788572154829436489661263778615601917854859621899863534789909403771617449520709395174515312618263868346833927308776747556027739386515337613096000250397976932483787028761348076562207821619388766394200902916453513728710570782589850290347719164384070394493934213281594252540940703105012363981857517864391107254655650132975957392018226788372875799315732044695305467212711384817469456261913651242250494429212636305155960299977656943775458342605424174619348374687593573339315457386506723587503420005300330762063492252912939122941766074969947722666146732088633618623684378082790185349378115725331084680610320368276470028080382717394863930535499678208595633807102011232918811810809999696825117960239901292987273720800062470064336535895443899193380226615155535222955959793014627947477564690347738471719298083845655190670427393339979854810914818855617617685856137905761321299363505814405321179417462191469583111847311264337614301094958277049595079744970848524391889873643353408842000171394021688755378186953728933235479548893634642659666486147773826747753541869439276483586969379379060557957384386846124086391167123691571586619507189418821544407525517961143374194393188957586838203210543140659418800350314285925997114072864613257977673972313285555287246431915015817479655133097961909638426226836457282076216346034291711547352405650676684802693020984904092858643491821902011218282833700146356266412735999455046939032294406424022571428184278478618948402871778804693383458089837150540892567539261666063931203009883710635024499775585574070892190758741060637959147520063475496767885878323874037287561773518587295698454334730597107327865337327946558210797047220773100859740298195775622279380282457979735597428799902344485506727962178374621204130320465446906909762439255546067261900480161357967656040512435460576016445225572854111460071756551313870472699547187968577425120365397106432298075523350688301642763999030363771681527446623678142805664056018592768460200474680492648761249744325451168919144643188067685883218808587138574355785495857019359999814429912645617856786193080134485615592251407683450046239454138365248671271379793587851630932315874534595217732776960180787376046421596509707413501431721966355038455398051510456672856639900100945053092435795076437977209508417383206740228512078388432198483173487902370227045584290934728964378623804230264287206034738617629967489628027975490330454884086295393209064351090637719586626684410098654751801872265021531975413823602005246161753869359065556004106929664328675906266499016624307446870519111393316182546834246155220787401392284013165705713700057013770427295421307532683830055667093826783323346492515218282478479353545499015329432426090846267759796407048430897138138394685088587132733691029893426319276142104482740366159350006438028707384198166522358847922140168015466105087784138916473035029066050597938908341296578509173792829893187280576809259204049234874337573002288935462007009716492287885745221994284456167668472496787403003433606991961730067834468672136341211952570218594410559946006265778241590207406319316911739121874758242156010989037929716660141403646670965341805166448624519000737511504344940090140330596798991140218254436897588636165830137681537522681863760224958237870279589681685700335381148404903343669683670229128775045222639008822601343548248127885782403363477369865958409307498324472231422162727384832271743585325390291146660466927722190672183331313619769044082924677686307837631757256380464234440850735839251482359223177626871468050579659721277228983323479500860683946524626793712681223435439095471429897264706305332953017623265312609784073181296329178034749425424398694236461446112689843217741082032839857639201570668780039453050659212763574744295948155732465086166979275011180610116199261864658369414219314696305592791143698164450792497037740215700437099000453642280920142703670649529993309097169692897887741119184387792407251493855305661399021002732620413405042298751528548880893470643437798703518382764952597597216998102828712350409435454633077739011348337316416954049804499305515365214841260750571201396700513397852562900004319501854642884001743983949431138789016800939941118372859508152835440326879821518658635226503046732528005885343544013366724698202672242076868088730025152736853910453359387292205864175112784026353877138482465854905832893565373230574690312482558257119609184714464067364641055034871775545158113472546121149377943857318179939133567888941877924054665905126780261438623258084177340066834171276444240321867681722556277444887941402043525517183627819318169608788385327674214350746235914934110320661648880342958929731203217587279165699795675482326810776132199116530332583857652483341942064967466164108888417813785816006622608384473904633389723007272744795510213515892949564991471635861657924494758940820620177388596717799361205806712667726434509515524587877477182997874824044708695040790188041491220733990393753446474957955823100840796456586073892150936548496135519247111279059780318216770667193219311711153284165777474507179471758485806615422936481517279429458585179241730437554221672009300779263827364318839113186321960181724334547732969563070003143128873528922940720397692646568379321517699084578321698620113691772941821471321661421542097203737986833815936141681511608897412501842470272107414192662092676805109502828314385492012822609553576048895857087026787076610227474273269257091494243259482116744424352785096586293430677779745665526482113344027374603112518630570848483465957980034407188751259606989200781139969417611049030183374062038498541107679850162091994508845212466490779167562624212510448632575507497199833264867103594566470870856123857112347164002304969241416484987300244005969674395042735942451445878397187674850916515209069246722414432832580687698220140562773733446366792492041243396197397256218474487401748798387561761022050562276762581375819786608229095752610473899071999281937054520019050561600288537549906565540907704119601399124798319048725409896955523289808074496899155268398717515476746226030664414548779703485733590339539418856729513325866092441363962511684291956390795455151302948307200960304208970566710187162958908277995358008740908334881674072902517837210521590194857081650937307292603370616129099265710933753260668967243671369341548721426330735056603158134246438922612233753914383636163102179884666455853554302528799927969339929855291417014215446428368395439436522282513704512692376961582967869958763033325740477261617721128153062730355955817491659657998083233551311423926767832023242658498940189693652553560048325367281776645404977833759120907947149987997068098562333893409814461785984531757478078680305656365629803505358447249758431975851089844935914998234718314829505475324753048358194130254566622862011926969088019878676719242278250114513074647795586522035933434534315277319852661028900508245706826746486910041615981262816091369887873298864659918593808116988183018946897221121452079625281579519441538730223753281658730754098320478201257236991902873477927269563247489697233595377850982318710426202065798947071708369358132418947825114467402101255927514263102212907547997720696629341782020676454011344895214744465276907604498650687012348054638050618370947750133657529571685879015564391288668106328267726950809779467815613782472362218603393577755434883570223126764852933451880615643765316812329753562381627524896832280840872999806165165308293199280680956970152200141928460764080606211270306925569172813364760114144213083806717081327240938169401290314240313614363487957211705128638173462822881131987075073819399470557683561350763486090954680231357968491235687315515186794992517949595851308862515581169003475996760819519736794514892197103359677929725054238361183347740183667591382362536307948467694129418751727009857075385484641702073214903113523264134974645774693857170299011695843848056099790324695457340388777577649697246232319768863373815872899279795049833271347205736554123114086198886490052371638286441077495700309286050348013653791294444695221128821078375312014775561540576417892153909427659517753001935269538025822326833481184650789242737129200933374542470536477345843985233972820793777435418710299146760766829597261337015502184348941286403450689887838766804354853890882609042204720367191069125781524797105282677206908993006944428782416814226372092519670201391553731422064313584088560512524904502212678944211406900069491779732002856484674250305609702004809168161145901111403283155998166046291688409175969878335035743530729093497479338490726314358783635741875737106646422095605099917703934839347796401596302170610421276513548900385289943500451362735745354588221501019749333295444536515829780812889223018553677282914525022931826352478947437714582443253011081880005680865761661058390224985081747994084113489234101365050679478698574900797882165143581892036983373793359334860576806526832952402265012074545977504690352325508866462827805804550745513847084628581845114865541842248475272023410809622177194534191205128739618158095770524776557452232359635112391316842306306059189749315250150629569151561251629695983890023787719813593843715400462837533687306102829431681957996332459173448840850035998952888153378208842174988199148962482183556445511334231177684369719902438060774843445429129625486493120305154093157759102109162494337225427492694242079625681950684878591134788039620499378918636255685749732659452247327665179092517543674814752356678417584818212281254571826234742722064477214622733451664903699655104750089467925642021920910901307127277277729498412664053017756423421665805081885584621770216178527274395673757763721280529291056310121163348916328441614832192368861991056216485368307722465570037499439012936233238506107696098117700591810461413672425085487130808044055103315117974484118247130482936220926522258505476118604371292757846834948250780734634439287154222696632383198252294980576609002760878387881407265735584980657361691741625134432488051147023348221344238938363186905123078466258413103595789439296589034451562537963765721497964250396459915147439842938203108990387312491390576253548610152941029799180463699185662274013470485109721904669911653445732109581287631853630415848643614699031496984853253033731675504568180229115062074978366271907905737208338796611081018741711852730129883959354312818268660232137300462123313972000879233523649971678639045555269581296346802977089279052773817708359295877611435009562883916376167092872779758518393150251880314855150239393452888858340347240891448325528007290496663139207022185034000811379479240891325807624263344773909323636786544735106585661657907282183035886856071260746357762403297795530045409295526813455691992815002915066755101103181294504715800965641902177451942377678328752460372655039933987436282055833764206730709985537776981576737190951622339094127554202455795732831720385463747505637905641627477207403049305407903295242022207055200995361207827444625048362449743936729274963787585831411005602264541083874339975419916398286658377149042620581108974189095697931755297220809341346486171798452993353147370425676692943376313159033794448174830432558397447372860746091360823517270014621096644259484467077820215252329320549525938474921399799961587896552688440989750251680507532008457286415446439414664629683028084546893500874193894937816691341860801400303161074171659701504891103877943050988937619961490710416671072284405800710771625496871187474990596506859286616456979441037688021516638451187319819611395845607173234467723336611276362511392847524492860766231409337565444714395956962785371081937589881149836599286234281625416647582720549140702714391854199300329381209312915932448705140821612537456416074383556205620525319624525955052566367153553220678168661335124941219298173781969772787615154552674473850833985441342681881550927597067381842773856024367189657759570827993630155242758789168523962135882973634512753711367112009947083867007338706262216287532512050960128622641093219376813995390296685764800481598242466914979606833261504122827887024300962538467702647877346531515373212858203308336954255805251210233222203196022148952394267124660187136053699557148155278889760694471191713356760629126768168556716302488966585776666947918387956314454090791548285700083583444102992518499460305889807414255403242192642529788715822568466111818792674414963733782283922078433579069181506929763353922800008198863412864889376125179712152061323426286178431700354043452582148677395915548817715732020877024247845974943483004141516657465881959714318278700156108939242378428361526887101741916842794196394109389582528178522114151347665521470022087934524055712384368089140385787119348102242884375899852582307664723129701860202122975418621297065465674689888533367356029399932765304148277098837894831958448685864509115950094828183333561316614052095600740407118657665715727746663770058917717229303022042956821658260255780767039109033378929549285347945795258073679433012595588500371953023587266497192099755638150594999586155127049688685711457281799186643288310445129937662559928128274845919159347057749952748939758770273387395431526150493617782742201663979535966773157402369295350173445585740650619763797601034966813986448795656938351797443330443495338085523444766509093102183886869642940370924065757267048952537368694828411660670768701388042765980191897594313981625529095725043235052021282118559205067380598239408464183012007848611938139640985786574019024858970684266531434945238280094372474372109793818553582069474118270810006113489171861887699840703142566087527166524883008782216617789774804319369629985765381044802745161414812882849679636018418943015972719367446714255541360948297806457391897358643548726938056288171762055262386639216141049823409829893062709947640371478586373999669368974868025514432998229611319364301712105255086684380617591379490400809897466112098771725363071932814292580486919103145060802344890044027409457778215725696191462394538424738805331256887156262967312353980117408473943910867572088301534599428730545745253874281397201178325803172905107249758405590022603156637644660001498145998932859587155966624083061293653486654461209034654595660571164245958228051463501065806283983630296377746102078644745837446568464369281690771951948889962869737844506076063169374710584862045259572802179302684586906343428279154628077608102602410303760756191006676425133954487603914267159478135618316112122749410103668140185306826051217083411881391159581161988255757233864849545539759353375616752712290579417787648383426371104124409463653363018133237950661355316037620420078944922936340820806184598886966090103389765759003052128771956987109689825383251189281206308921808356386478853572007457132818588214431802436695786938521645940673088098821090475546345594487975025241116759815852456259938445475984002115517645538079650430486201535922094224206760578681708741693120373584980928972631383249231327046248093010577668746991721277239229168555315724584308330872405458063306175824952396925829889900790054400735961336194393882015061548607041845384869356933117137062662578657697589662087395093684128991437694281948320304745850007225681379803144807109102841837180890117358172639213060803136162868648440933401113025886623988535783155146756876284147597871622922924811975769452984189484963212264894840941358451089883271795177234099884411225983314476720813565921212176509665614563828112490067710344864541416002693141652464783427297617831119806703547197813891215107639581943022826048664119119136291615688986349770654236774194817118030392403698957886785620153861002243722275743989093324393844837695677851196355487336673196278183678200685455114802633393575960977661468148931267381765014913703478790376398205055600919112983535511852262303092463655623622030035799336171481248535225678226416613776655565609806013451575158262097296042794047121515774359506455740077848052019672235225704109426755727251282975091307452875223032442404932205046130747119837570735591130668588053281893603657802951498438189051109353601500878228419782699933572119997665027888331093879009704696861904610373832974094120239067191719309754107980535222147472391051056690512715311006100450779925572653114822992896766671463191234403246914897845913283530028509846814594247733160553959435495924681413315042784697944312678753019150704778177422965553179616867576403844353098334368123043768886974958479440521588898870512632220059751066407470470302296175765412569508368982604330962249358620632971916747964371878990911350427222545803469959300187453428433580145897933802705785913122789519410072053717615248100068220537317699766647567727819818626521600677506554494944451584515564585588705549849492645619080185319681615689412526553171383426399263181555028093986027865651025069132221245119226538317721056420781696517675573083725411461498386779472566368629487396149138521773922710971482821623285531496597359269675140668432687177965569319269677164590530630337392658484401694712868768571674376580394808899494071297956228307368078715031104731836156398262093356349987083008839279902529499327747608220537029852681339145908965665903315884632066209650732413481659816388176394470172828195034227038852213095789895603228124255991881159862163012129411308740590044183754211811713972752895095664141554373540794438786308306284343195397851640699146393699632326501669946638311241370562139544395300622471504933012425479440345911105259359110097268033118964012749819733546567809527346090553243893755685873033405308646113522133491438418363746139480004168810437711243872178419042850885075628934527415541327421934921557018807866736815811546186185724716890638263254071527488666919526514781068595151775103754950280835004184080161584596345481284080968026676607431728662149690358835114334478891319775850421916028497644299292805664240097773504569808920797629152530713582986591617006473006063680042211857464705866063791964001255076002183836694235198617683772233145850607468634462602454149259131009144173445228404399477138846680889457807283819637510488002996324995890546525825861838695184624801709509995750905447919539351934119823276122780131962916266848799588089004316766363477950892545931896087933860604937935140403390596389654531854196103855300943932992926481846580867952783178810371354201326805866368749295572340759083753598180818853129134343977072518674210295600820244602313871281390432807858336156483495811024136004722245907710848578532851433561680047498464008880997997360327451262102481457084850423367454552970264443595657048022043510239277933493642069101540450357448997827348992680075014629994689441880613614410390279700155599830981236228233733636336553721919692322775722763690642956060772937349574655229700435779580608543321006411388936422766117774133579982238725986521935038709619788352802748289721753888094993673152614042629162153263378430720317038532675106309278350704696493560693131601499962782791992648044215158207424917884210801514171331304850946270033526599933787883016639737703415101174781074099825842397023064243242942649906029089985293899695467161181383717290242810734318244350427712121653908990783214415171021066675340324680446582173913143812564963497735845734493426717868965710420793426793713469412435806192741267744937808571234706779512025208693501613003997433941179190486052096758511461580354535977772745506235792008170254328090181650458679323402589725112811365979365342478244522303011313330758487176540569578201969089874976600459965599684209038227186383065834615857330297401940868329930012435294866428555341571411464086598662483816091870426888663351669951742415858160285942705327329155364024252800328963025844268964420057036786778940823161898908725647374351004409099286754950737260188442369905482668321290302663455945584504695625026428375741137780105551251569323477230568995071422359683828980367467641805149646410861598460402883006442176230377208952473123564699454140889617793816450740273211791664428712537632479025361590367348516586627156514201950907953534392138612724961609079525011093022307534493638064505432043281043761700263974802697424539578228806341814371816997117419078900414437677314774774414769692945048627565584703745596159124806108944642888845870808094559805771846996215571143842538565880105022906096181298019256650088840215289083361627252072191746520289715270801191465012128156365415805498593183217449922361992268088040676533506706272883665807453685480444622065255101998540776066989472003949107169288869586092128015796919105851486498742766844262586610125103487353570779396387460787346230753018797252888889982896206750443137619827861069827650225829423471985105615006079727129429829514843361461990074765563430235877433217915037765646108397426039864214299983702581884508381969588675482745051671760242570695629351778814989409147148618422556237883109230455259998186544543435368548309810655301259542480200258681703109614192919954328742977417406305312968381182697201093651463047476049091004079685548777573271634171740684233347039036616239653862289676278608279600163088030439315169396493116038480752397862499012242826538315342095521203320062422865962607418446275392941965142012887406858012420273427241442812122797851689704941365218509233569019599098735632466450474124134678298224220586474963670617191042194904523026140658722475748024588442760940589565656361113522915604363720589957782034005857281247818292851695644303734290309888469345534422857938675659201053943046715113304442175630905178686794739744665528338156969469456922756335285181189557941043684926262808101664324533792765283404796108185557937082967649403738723413618133801630908452480127218014196698402035536294890847711724513764948331631261579778047193521177407739017481861854032318562688995037878104171384132552408993009954147847817832214509576255351378306517151152978706842670534158228034846873888288676079162624211555822561457884773062098617428034659454189828120260746997733517687098171313241369014828370802769811691404454759060568461737336548665790037718197414223021675139660541411905562138456226574188876693691638504028184751188799468007785010968550268807823928569013691789822263759608717025617094948230485120833671237144860556475669060312751438247508065588818443704118010668734263174427227010294886797579332838354415455127412098267350467840215129109378802813816029331996400749105804882058468390687889441134991431178076229057079161853347539913328542768614542627663791623759009243080238705463074457605835469594261540222897180780489014655674862183913707248805573917623651818856481482117223707654619959374852598583870519862657743122135796588081161918676156624147839563532594871663481183972167205565881862263834772065581904634354386225312418621460069758908370165445539386824984509214279145976151703009370014298405342677571344924651530774024664205246201944117912493446724695554403942735466427035245312307864968015301592381219911741723197448832346010211947341058400389683687962112911652930122742660756668125412717983585087393051655784748629436833211847662465104386061163686187226043227611041873080249103873246283218576086209918837023393777989313595109316903369730528343946652986835496255777806186828575939032616176304098586262317661927102586473875571467950425294649067619018738495351850104729258183823118346836453809716801279751557741644511504866075414369030298552707351569582640262302084587805462169084557144530758851013842767162255878586219876048049059551348255502644129659555566587290696978122316216191079758940971927357686619358691699489050937102140778918471978436452931449478353184588738864157223016111412266839136572274998326967230559230287997663578442432752594987317645485900217045508752779382682477750145129986781178645271201100775109747387868025549523537062587942224106163307830970408300252172280927602123862224020746354942350863211033334544695041813688397316295439902057976314770848418099157729299224363578000436229008320728691418331384278588637983303791504230542028699378214465532459532771273142679296369805705167611384794303920151078749722922644472040861513386302194944747496244650572716451069140161967794391988388807089443047978159863819702558851048676328471089217677747847587270341124009296308635651861655463244048957887870454920547828067713700051060406309344216173328891702785326680563577733984348403958113879653760737045278004964705716165798047662984205894548470579851593835536810000408378221550768792693965725562956199560076626501411075281546934933171112677003748092868289390298374019749791382714431374014710644926835827764823342132774931955979142589354803358391099988250208220006087693179046699180408513984564494742471876337843925260818372229060044084630175710680976443479349433046717992327957119317654175806554785687394357094447573538665071590008170179969463738682102155694671080681667745040989951924090403624020934345027953996238996120705843935596465590489303436822932997720655062057627113316882395706671450133436567930590436027664466193605336648429140305672838922723890750703690862318459329532507989855121745322010773502461472753794496435372800497571933116730902941967286800741123068529250954568701284014946578842804234727750516643817971372078836241553745245443121349547993332001741968841696179298611580007603000337350618757718441541888510687088145944340080834968503872858230898351675577717782821759799404746832067206395208844823387511932791015477825866936226266979570228178121911755765554035360366069808024936664695647301147148194388261604865528061033044446417899536335727642717871978109867587455737121008331829674407608239506787272934807184005140251888660368238462451319837244072472217944844253894308273988937085990237764367611731903057492998916927845639943080704993607315233213540142988652200795510358192940965507046633790401825131714284404174413487811328074909264180046643243148075446349651050322909727630890207071963956731852546337529191195384393501951162394713236850197634956725013609581372010743627660799892264241184474259816135010993065033751160770434671971256780454726225305222179661649532758701280802444912267461116543562852427447514293122124873425064881664654184175890567509633322165978116318532708502379375513182535828858394657612658247514389104062497013713304494048876361140340411684494403388220259841821335175477086240910931511514049192577439416964766943876104164527326501808725128161161455522867174038547476203369332800555040978960554569552161736455534492967092692432844120352881722651133414988920123268843570342578534123484201516384488446552167127775230052402680582935324578629198649121640115011165081129972431279346984452770528177824867793227155215919931332032146186463288947136425794392680780521287166307744930250332155469373115194879767959737580589317667230876400824546731702331476433756429142415418336499100556504603621575904306460542416747683202975996160870663192425434985428326348133467844430196595164310511071131741880983202987990324243546293202542004393819073066394024484991744594559984663063184113537008965857299915689693516990810833318355393299700005495642988910819918956744959137718797210323484198153848906675696668020220564434784796762028758414542395351596855143717193177562397149397649314901778661897902965112527987616976087940488976846626489966147581321609107880385167181652042646402669094522811893980220864130493766483293077957530665162749459966545586050551161962116810637961519074495846824065538948530464009529073772728238258658815207888384016902697581984476579892778824611305226655770004311689315436777928672565169351251321566351740593136334155325788973968085454115167240637622793625446540285835134139810514429538517340448843870893181031586725796043908911090618936405245340497124031658798630866321618003234841297516460107099736974663098370698838190371271513993427700208327197501026087347752969133558627968715634191439254310489298868503690089048185500635600930078173571725994774016291829967305590062189704120988520301193457473368683035439911678653974359484788121379261482461040472557738121494272667453180617445033653729194724498405597490931321916131113929897564034472028849231023586381378807153915616273286571810986824141304859317135767893965657219311414675107353048888219445362622677593864566718991409517276989350032651832035533884859450411949299823394020576730577806810521064139671101934146117662976156154857830117676037943864709017242323410085740316036535918011922973737572640185119052219060729432010295402595404883777230293320068329247532922790135640672369406809888818582229103710932135428832003012475943093215234221359217899956462415915026462680548341356293546647005278822920670261527170414265130323214606375406692616488809351182390637212288615928628571907342946890672905006249032937905210690128868774339859299921265121698641753018467559620171898905143301684847406909273518651620064773563112915688524188859055148759666677915782153217676624414618000016517739547364316255414952068193103011592853324754071505613620736178091181348389385912830736741054353218137773970748171135470062679524502697977913140882635713831523385315103911128363084082137828580023941786603762374455761028046486485540208633072620734153464502521002146383378007526604671139779146473677306195232008151132307816414999778998515040689344759569710350368034756377589720916731261049805828195911613730390593203911629143895705594367467599917150545202024658140962707420477551612389987077443558299812167511967020989426278311260747013285819989066813443726530788854444512681001799631232591046255218030959444001087998007435840170580783188946580582047767240329058522887662414792056117536171561713859789169956901423563334452911699320151559542678780667779779279784058891403894377439458909975571446252025963710453579066298968251746000436843145673828224851506890595495293473003279003042533255851999411380612237272435664647747491990860346644063632273086802694046792007447844911804482609581132229394374251010755432818002794828798792494725756096348025933411452199153233057341089893842367774091270868908512370232241648444314293130539038340346116808535484855173466271505276992445812309311777796376830760099843045177135139789822668379244260023258086386178649152656764317783220932597985804933819713518264618286630910293868423396525157906191144596023248212426513759946171510640773605748396916730709131582113447547482566011837756379368901973841521605484425569562614885849495124784943713592537816731251659903562059032858558640971779583581955891363118528684346073634908395248365682116420933284460154080507214416938054798079269282656104398309686244366015246784665759419827187766242745069915198089710480362078166053845167470600817675394304547608025677967797638837964500417927286372917410390140518732662226737032474534167648369374586948799707181832904057577732290887039197875087955200700209849861464381580048831786014187065669325479115838853741056939711378281782821251177805848755501394741060965231017977033276696623885091542934475730381946127712304037595549340082525892056294727393567410729950537911667000577154734860709584586628894651729504292200560165788541249767460501642109543673981190254481425242923859252211714776357136351835123288914229911496780840331050279325571850051759723799445769555296885325017480952612857315187876854868533620261619650316660074310133970708684815414378000996094452949838093885506035108644115847825942020705453052396928418237874743304630730045511328702876155484345801492495994118572605627135025981681488627076242189946103312240217061196405842214999340758304816939718114849568329136771301215056605584044270123219892600219246167495091109845918709983836376032477789640740022750015515877332525279588290756174365567265766041888817381413591245385681118009971976312106721916165035354648288203721212069132060128055664115824410430453977855484088843493674505478465995009774124076685026644941977009014773943246093383362798998401883124685928738811361834233297904420640872147899701228614527304725268478019283300653956338290112445797344306853680689017048646258982553264812178046203442525510998544359691285024640298029743959643360307555262525092891750424369507610705851067015994696184189220839104370870666332594759582338585957529853037079023724527440760410719856773777187863630206116288414499281303359763991591482180507443341247487681307990964148934219265660562112630359696906879401303031622537219979539029243621601192015164107125231690009648247835665124323425948452816504892977239636917629444167948170032879269068807615193308619923740332294381225440377600323046187706429877569364548626730246771078187234164758351032487027824913961868548688045476609236213235535817821777744885090343805165787930355573426391028556830351858082522271582089633415179176331794338075707806477581567068690839700205491292199132114273089500333022973120737887896460977539886538938330427335038760921462886662739816715957049991078995511654156873541011741501410997268077908912635792836989008509895501841335810120748986105569671603344538353830924143570352636482108373954585964558545193955713852001386696526034492654728346218563654811713417023758127861108483724184568919616302535875241051741219117451146338112384241353602729203493608050075210839062652282324397557235347318809154285281809341918584646202039517593152694428277215447690177983549716805392561453526891531648903532089983328364420982916879368222916189828679333387607245576060884188455621532900563787346030155084444179867886083618534867795784065575768035791095738785262039919075828977614910605948109457078235641019336264667375517906247335185971281012203973261514940215270885505054782678426205934636750989089061874547420495552601816186752985287988985055263417819985130188742844920669931251054743152898777159333226121145313981927518235667472895319157735499226378927772545948866479070180612720004042106365271650495813727583642153780684301622283288867712128512222484146709964512719741496225044261070273018023993498344713674476577721988337403282265235689360964298003292725535142532639147100071764777507390812305281253248508110836941440959534153573559062510891079465339667673974552935304629828008202688500981113091466755561584459701671767163634786012363154821845715582637242037487304055814621265966147055820311439972243225385520766439009374462132244935599515514099870500927253467615773506191579196081542828235130270614335846774399101487300278294607471732698372666720682873546020559596763086472988635409753039415434709175076302800645825611560517189721046371279811794648989133718722374868739082375637720775300801581093361247053058502811273502819807333047897319952153365837349742086776688303267626959422936881324792889378676491213655460162102405632955209054813732879953912022386599910461523079238383667428962256103726079050508795246185066887548208025989176990564416468053266064896773560988626779959542328494303890691312260521157040499721803638918815696701947739346376888247180325916721029633805284440714207081254837493422840472184856961961283763444104107628979227231604781104812498924242746179621382074912176757057021369288163898656143547885073697574168201791594274969287640009566006171549721772722819297335254080693443571861353644849750300023623664680583519371379224020004675904681784025602601868395979594378800649959679598032934252079085530169680242564454088382833659327165890025137207251232880589307198250638162960181677497432661797192939494199179249095093813215381947699652819583081422569629304259526648246945507860238360709808041797765743155833293685229167945184056826738585608101723233649729474980807017724534485348917628890111599936790776622043797584980129442929332617649271176177686392502685669453803349996901985737284802026962810707928128603288075837538874060587906142984176520810414390503281312406835599555450270559297264668485377087414994718861686599036123738992292275949744156167405640328749070715619419076866480972961077399720943773249803817627633792891708401002752144075733182002335793642837255633669893521067264336599176804960845012594856511026150458657305456391303784091862991608870031773309691177767445683387986387921180888058115336107228794356154341481839209396128026292369181148917532276481786169816484597832418600906467001982181601766158926454887646190646068779294897701258388125510958162651322912478344223350462059113443069029818324427744063785856925373838603751083569521802834167062993371831767618557947031259162221328203500743475162437076119050836245289557658247720327533336015251174208887459001650474419716343030323532973268646815365493647595295301212105408682925454840400132319499753302821235911424273252800946973714011081932222227989697005173817514499458336596614909564769874222019374109282636553048747158163120842559684943076128708161106545901225532982637165465000296686943878576619534331009573979598261784836904489717374712322796021760437347022643525472104906241472588096142040794352977537745407153522323378413492710319537232562537532858359418435640431287378776608246752059132859669311861352499405792378326393272761217058520204340525500919808322525443967019511322443352366346798210496501246452180208234458323409264840108789591190252391083979042843526067967203078592569365481393667040952839667209810025425088456312887008934766190209262771364264378824065631130381504288692792030724412584323242716834033707999679711615650636468053043402309087009375292463321379075623027405291431139730613393357858034676667727907882958722853198595995833388889340771861068317341527120532351177199644476298020393126499194583869608343729256641971104004899105163993780636964939548381448991606835021123378588740027151807610250544870806187856717121320777461562231464233613072240114840522912917180207206513984478720436684407912146724309679363424136710383467843152713596859573848645360772993550045588366421167807463576490164521723997597390140503135115922151607431355404510148752156839264363476364261201596929411760814965084380563455690376968237334629327077584557696745059988145824534740585326627170684336796551364201392412073234046448312950639924271912867248268487634329673501959326297594133646653029013891145016183356796964880990656258976397604883736913783407565589624304577866994662226861344563896251567521824291668859188850344964765625818364981816544792551412652088240863807339767478368695357859160024178681920071100159244679856060906128633956454502248870984206139252376264539673199435316494668448863022617588716673871748358898566453163648291272575494320401563977077573083735889483032624963531253331585206728773511193753697240262293877961397348585536066874180850026880775548876287818833027250509487157255781294149175337804561013361586080495280356829131271095795284357549151983179699771253958507818161481203253686184034353536611191909051267511380678791790931070111958191589309061109853976573510239017055851198068031825123315037085569068477363644250919095150092077953374426913080714291271973726369790653814123610376578289892149969305257345225865771396439873447573609082128957972747392856656692009383638224422714551013114474888853814144948098029055662644451871138457189500554300881938370173461791080460503589831822323110878022325860563263180451209234829996355603179388119917552795001358240346072866781183740050662112955878024167367296031349730032922117466647378155171101405558175808961932454144304975400361931949412232368350287842942878175675341761287563438949562614349601749824636748271945995644216043847558873332330482604658535069340230991120162911914873991032555183753292114204713731807856163213878608028861903998168302990682159253861480857606852910576105320355922227138086677272736496293800484892187967609655776260349682857864088893430623303722595335744198223630180626082744810002938336650993386786566421796688558497014405124072016660843228758172828153576824250904360401171236468119347901305820137552821423430803532429389428532703367017948832519563939974966509400527146118790473907245790623937505535286829524690005468933049242757605501431680528955948466207571125182512638807956891699769955043128549909652299174486323017191808131702063729811414558746552879694348953215694873032417490173971192223366110923760087126245211295719176482321578249737657783681403342561570590116043836403298559346099874454438571614382490076464528712344304537732917243257816843228869277835937968486275593165971411352229281605550176532473401047577270793503544280748907415335632645538921025359988066516840345551448565931155444585381334495395281078162315230339693884749851591110656516857531265750056780319903931398398565746107582125101381023166316074577379929232819213463499322930959248014511530007173298031468705049057986506310198678472994177810278740578647007741288535820719588913023395276854802077282707225061177122210845115862891496006308181084529689671141460195667880800429783862247223032137312218777275509053147990349462389822733263634717931694727160919815509572267441496819426919720448605218402236430452913197124850920307890915522542404733792440848806764140328710939323687811454474623821845335154134084094196023850085667979157095178372669216515593874529484593205927152034292039842830812994496656664088969727938430297389222423495959403802359394613847091834269462370801564342005386684746732398650865781506958974972652917919062475999934407684167088745890338181984264667739351703016127631613363890381630161994375647831932046181522460113240661403067391646156989695319153109445903461852254937374084011536460196262568207512548460203151506200442261296847072200421822804556348644081258121832690428924594300251686371418884357620718223950343907053702070704607064903843614669494256434704429745114566521977734918436386446007728286492806496626956374796782895784446295268106620381707364735558417506540681506544654027834961090544520438555501380739377457128085828847459436975013039992803966539302687694813609784011254590418480501132570822103285197288364392514107849810223577777388228625116935466288844513468479996147559091190776171590482350957738007574771854872057040569229334201781414403323350763021927527060747967800895324802372154939278721497575126160951100268418012367599859499426918832296151278975791914797275753113498406598547996252093256426210708842054675165565150930050218319080673315796910226519949711588525313116024634545250640572158106651660009155028417073680589976195349887268409306226546306723738291308938883844304815962352006953667972852389199349334659879758742162892584919949594684157148513487755456260738727631453370976248154297751789436067277945492208205027502592256217477169857798294530361904257020005874507551206746995080880180523867106554332190570901438149942679738540570302633143081710671252675894820549651274125976545286064741094834705741570175309734654647117665260094043339952773989599637553726227644194689414864820898282543738795346136348363760233386227642584643497273627367413725479254630749835163076846704731705158099824097889167888094946261527816812700689521768627504272560756065012444422021948248177806350614476554331378374752579117173112364296373785897927073442909093576029823964570209563612988645954287401060461495601347799572696989490927702749480991082686588260148570456588904386316295420783713657894288394496689928735044801994963432518040469669287812293483230320067723180142983487421361724032019645557487092978256014658283991084863445772053889360770732647914086704219772260749574595764083941482737224895871262157900603191134211740224809941608059958539177891151708224961359505184936864363501520103618552322290228014197650164731849102160928068283336123176697809365194070084427535790455569943719674206708011590126630415263350278286084026892843685856426723712613320333156419354015235533157976980924472511847352931292308120590845589771202850408633345104663578119347513976855190374148711320418272546491899280694718708799850477928824574029428324114311234508288834215496170688969705800362483631912566094728453118030155079946121215490035412013321576502640320592738189900152208037039384029461674659900617677047896859081094547081629900622615553917269067400444464966082213392711184321427213172054778459360326237732961768484661405598553238096315166756402777420496691932654256635062335225863147468887092806790015486336490642456775525728595259548177333022354056315533781850686794787667656786276862177611744606195083929185512857184416338074472229616856245954308579936891729277146832409553064383600954433105791622827328198843454304165553029114640988523045774697753727909138810630232874848665638379172752060009735672011955843136251209259569322246332279074578353980209868984160320509522377559123284528759214512617671443869940291425242946941631727498207229527999595554246201008017509837354187869623004171993449098612868539216736330545765103461616048220688753740429518493337386431094981067729513621771428470981955070734466816807946451758547999639232013693571756631616585676101927786807420067497319162592694050284378129795902711339200844775861142652841769067879170178931913878733498857716580065980309847521311257215293093026865640197549090343983154766934129895115266491235644389293243812569447700594530694177861559163958044680683963508926334821427276453162620886409211286087621810262748226850321231113165239494488986618418824182106229828068553975486137189474276965612694667331217629105286518882529377240838687765343471539738178065614858353612715557865349157205906775497333819081734208838748208482986834364503126356903183955246118915890927085965085935252439902569074580158352624686393723461116141345778188328971913387817518752615329982465704840593700192928470733746710723726777180806862711486228717335954367363385484315257004869991255976899829147072853129688369068238269858130664391901577169281494250356799298665480039662781318690800627073672129481236088462387908227962292765305611497320646580498343383009998765772725937092620734912530290734661307748082145837303265038250620871508847286664936206560692014263370053531387635690074114240233470992631905156254853784097250174336176774336593273776663373100116486427318113252482783687503530347800046384903566598596404379515032688725925813756526707770014461277512791561106462847118016693832485276068173080239918431464489139899789666624192543966166812429382996498052369640538628861876920623615256627697207687355468065538158228974186470574768589314668227067784221316520609878626348903997864593413546331066747024544533906585771287511577385689392041914444785734659390145328663006366046816485595227366814286237711858183259421509714736357511622273948730186512037611324383834683611761479926467263791705395720277828834712853888510126487290248562129750991255186904168242219953906589423712050259774221232023736480203006445655123011444436224497161475814029881346688904309636996018803429729999582968474929959856581740773202208887257539254999304348976990843600688437001280502916077725410334001674937278265099430222948889437568387772895592024402484053203692333131455153364146307209705648997180179061111658140582109686894926662316716876828132515338345096053430560962916465273137416214135711530209324009792355685768494505381487779493027879754430665785435789134019928854068519943802197305701034012104401655318693252963226246195956123989323763025150358497459906040456362141761236963624515904477072277496739161188037058995609679975971302812909076014937501016962253257178419118451573495496753340565235966543208400077474054305994987427392010445637978252068031196705810841589893253294695553265880421652876740961290275664991184342882900216672395644593432848465236263228108064516930405321467971462855963562450213990524160433371443678108956446487125677865844814747299810996242745537751588948586433928646019774061207903862507449820550969829853247568805561163128995536120298851328882116246811796359661836699189516898587655553760343556651110767295244402606070968819305334916886011490960985928887774233514203855044420476171866057733043700735577848158318262476160513779317921527319811856088815987590260679868444873613553243910284944741325170017858816164595424105022694540170552305665381179956959735114784149842719770008613008197285366484572239661006413220482109015690176541849612223496147725382214078829863016364222745214060127519400614448920018920037040594010655965511088125240600388895105144246215054263371403398133233879804692059853647221840839844428155940172467072170163143743517513045518893205659124438590628599435598555831924134971766193343931267089752835877192211481563818963577705320241663269946406278593158676253109461771517684214588820692994277367419777845175448069728353981045652085065042236854396900307949988718406372766575757389592224795613038218672490303381943314882119773245156344871008845992993572335777843739106322209940277037784960554301531215919701498878403333282987409555385988868607354321676608012845041653069993854880567456749681907527088728897010774268718450264619397394733009343845450653043625460884718669009321016014655203445619206518656659374866660464850490574156092071135045646017148853042482647452828718427645092545322127364147030951551469890291162732887806507975509621774404545678338915128188821401694758389627860507362730978895453164225248538169068164665595581627701301479421932139130141113067983650132637087494480284823368753941781931797589670425754477330314150348961089205468092175604087301359312528194418275817677692528887390223562260046830415236472133097014023693206761104507790839671956540358048501696038439054400100270277692337468160669359523922483145890555721944891392417928248999020805751272020612178620801905200612388643801391986695734567643877482613827993676943990146359089696853139781792767106263102913836387058254516360584819566729099730371817485248757149925351381179401977325269208238849497412138811486524091668437889569281223079780409590180016664172103262546932660175881958839941125445727200878260802277066963234348452609956495395067844501943282062930944945716940604946434081368878169370011431311457435149371256737543639820382012569090086314730136207390798974366700328758629612393782715876895199362142357489843031455338267048496708994195866238935969672362446438833482183639260590749607483878130097562630167987571068671328749615770498793628715323183294599929256667940409842484584268280275529493303903335273290763474868672974335387130072099670720876210178014572344245658484199758094992605568299171563337199401904412507808571744236751831374602515873818165756105913055349039587554300077343430985081404407071636801355943338495107809846766979370327641814682006614456928639234395281201861671262909237694084802695953147789341481629671230155814753258063992565464553146308602073726978704038142525240148985419794468102571667093846513239890616482928356819437229655308964093668248648694279853099998835517712374880069693139205793557233085313492281978538346647617520795418211745548051575350507194396945566361487172619617895814450418925065115706967312663917009978951417508473565418441526505898684628007001420619457254482486245055516311578308956475865576951593825575390279748900091500540351143169358668100388675074434580555335623115133808875208643840602454407893001682115034110642051652701963118207207429291445140579171336916156839151280737050517786442271128304515278529270458176947386156272532327264994724091821566539254045702401181588792993698843531679196153931179764431195624204752011638461669742829244467863125120649574519248915164633561444226708488872559120569178830304121913425905491793937338252989335327723622631510838763707203537636842162544994033241354796530054299058042482529419799418248237054642323205373443196898710990872299085889711983633335206983720123949754241512447584495951358337502329641384675514671174915260058526030586729685353988653803900241173379312130397902696639934477290236873764149524439918569608585519973971145876109609652506585291975588444807714375321794963485479520838116767426247956754233816332360921695112080576154427719149042387033018854445724531638186580534884411456597593699878987534088469851975630960356748655442684008729663259967591991300457649171353824275746371984164253159685407588571370820632306845001760646966697341337272590749013444888842153385656304611077362502872015339679792948861252137156670870225603117210772794211793772612797450256236347523376826304975149254757107938805695253484523089969906574621677464635660355478904768722313100237248383963415557287980209604394366096198822316637945385141733133911469083017332146918693710890070228737180219254052600479975632235048593218186960403055952898063312959468646993856343419179999301834991610138532792253812692913893585925410917746744850875612843628110223971962938798703831284982135927392615620880509826657392937931176553505668037295736710362765831973159214501121668184618942631929540698236129317101202837239599165581696414116085570311640915752409153508955001635462585187684708707915160795090718055591867640650146427252011747110268181576277493765961374642098868809981488191047165995286368777720203857164776069813766059838744707949942686653950380154019876527175933258775686460022848687905144586754825788612896862784017544202392260187021219511343388816926078762489533164632824956071788273083873777959192717066017504907636151072748376087755831280495190976705834072944262801058923306866073575772099774561705917633970670839511858408994796870245228711245245430207222565689513428632993630028588513010319052809649517594030986515024491279888270546062228313789503987513995639163515510908389017994777851133647101240038260951974707235487460247342437342193720496794949019278238599065677193080801806064726157726958808429965599389193860366633642007126011996291324791771246455696669540105773942726827907829242113183907597073315119863700774402513886961732107358061274696294439336989329370139555980517721523447826602928806304382233470319469579466662271562523675582174808584099593807732429553895749119794636889290545227658763948262795717991507978051772417006634377367347617757247168803512593866157962077646369332548231163691843705152591073770043671181555829773243300567511633007431882019353918915907044166351791368918820432739183641247806289397583076784196777234476988948916379438880328860742532445536893839093350000677643927940717286525806967266830381952927309493749826495518394476581053594709446372084022126164128494060642033983196514260055956726038410379436996537261843156931749607704306248842586473350676142131039688438947654594288975953461860907682174351066264771706806727393728056738401595210440367958114666576035257840080116003125421809031579114817486731829584105455644559184617142036106963758697904548341399669210466929600520112550718589152797152264624988268618950612963926655005473516301881178532278616457945369498832595315358444064288877520341019967826465769176951355410628315103911927580411968979401719379909532151510264284639838566047377264960794901778592944904450609008083071361178620229148357085229322571913273342513501640041242309254039384205640297096444472649755790837461182683943389817901725492222463693485894754208101490801180637079124663574148682417224879496003792412591501949088024961272299140235882737838460796899988019903520886267427574467155570962059414395934905144781155430574671911386596445719350842742872982552159424517993115945887483213954538447684433283302917383922531548366506763670840541584885553010290786847672623908592633288904932762361968881163510862244666748608377863419663755454015485299924896429118895408926356203299815323554213319154368102926752998589098305579877968264091345027931743953113959762528874246805082923580011262256124900600440844178915948234578047129770364080804067412931741610724614213341912243742713560344544940554514679060884406257738395335545408737268209509620551233928563010963249825867984505613057840084423374794862835918912065980106635545822844682190472046325495320239954502142749882183631336266684280388444496889655994336184490027038188823336234763652162620160056663108510529237570686638919320872521695217780364673901153855475678846406161688033412911632146892812817117676795658907820722374853079035064144165678956352585976706971832383321074319368918598123095792045427566881616085274539199370656641077717901645156349060519439298407766512178383638653030586646031171528905643491212651489961026980776251213826470067397846431243731313249952455895145017389306862777574477590245251863909690733404625522561952964013198812577683393720921168847434288515595019116673816370182132106260156196625741560349664929427939520847951648016545565505703264364324860175147032549202357520280914628995475664160654832784843453454478802909627291414070751108153918209403337268015904715097742880076022038674257631972925117281241834678727698277262937001833352452669797574288535166047222404744316125997275106440477527086899048511023919928112808748760597061282795287540953786159545853093652477103036163982078571284281448833624711526923833568824118282422112913140189693137009039498006337486756343740689656315173163693108960264704044414296134516731911285841527200597510079170385650205036604276699115262911518561770526745105290974477117404545051499082376348553447346948791998645724195869016561011830130250683648153704189501266875920602414473991689509661956130428878920287018011788226178399810679111552562644780354418998316228483391798453289566738390239642351048142494416338831876839973304254596445727029864539449331994644914269052003728954141040987095599701796530789251567023064764803037837430237772759068463817191949355144358936964135692473269610497223983608294483578613021806344659747283234554961808356762682395649145369802531332506247338886542838413782171686043558986619102089997565130201799562535650911606548357106138831655284858528905873849296057672503829537684764788117406787351817190359786842643465450281055748765406841545994417183613944273384933638122731025798696746118911540580203197503890438544305664260426873005075521856956662467974084974582983196447880079610429059286528678389289583001590281328458304908382915978422090231912454437064303992124164596032912559220596229588639073524603886603374342872453018308594227412851715225347374661376755112385101746453847847366070555349075982792678430992827018631989320725698083727601533673240257948521447326740213049242889204208062664829836311970987529922946950206819385418495350866751506887266885078012610072632006125621986721345596933899865916761578397537490606757464975130841759687987437923038438360320248957064105584059241315637275405637912421018973861150662946378740191849841217577631584644843722193020939990478658802343743008725661419940545217303497084418539359028537700840099537631245982373370516854891264342949396688760628741217984449981022686409966760515461964006918309649260957365128083595122645102688669566387038683877635165886443236827672827936783665879679444874742858026578599157921034437781636703922627257547315533438013562098462484768536853258095080858229159691748843204233395451223613540409384704230659371637495685089327741971653571594406108195324908125530209350576618922946006596836254152578519305557187983123815923684886364740069037176406468504325297960076097614427320324829698219164230993349407940231657796813207436254978383487297584139538026774133631120436679793337922203087690699672129409020714304541869449829468423632053851638146567085768774605325196642954479774740036683996111909441388029759795089010353475630884577616235293381348000883225671365263685520726675618672764914505876135733757936163038753961937576442934630348214279737994662886142282074303437263852614611309827505065119979218555938944544521557519192550426431876941476791182963218817457892036065714971250574886177984954735640384732953332493713381523040412890209297611254473432873878300448908068096676878476674417788046950142134918374542322926658782721497874017239139327471204082939111319266906068672118024649463469545311438918247570851120466680457890039147433708857423938305035212337835444846859469447900435778167134911910559679509794091965004477002557049110927567229197923473102208708418452800092549716243476561583691303190966940157598816745367301201131713283123215247593549854990814265770135896248879580641237265131032131742714722649602712321976268751239390668417082435598659113766583182682002988512282472993684003634262653904424741875711341428747572404476532536178513389724602905219447232074946692441391182968031864550380182296113655127812212047899160979126744572750747782156600605322277618621099479546803567206373207830376915620978521480868494099116825117882875922727273770441844419894725573961131418572925556943069774436607916584495999207591292489935809406280977578496090726917977899994175255531021154959675586500616832459668900928559042638747795041853640336748013384409751431010931269865044573826961814637637367921938488680015031826423463096397978268870649946474960387511714823185960182787576835152104913137215753294084352596593921725092245113570939562847907397696283243348622649807939354881644869828434443215015825976189164278568220431077522640970407827063876349044533585953153058490233221851177066180518277243128226284499685916312133934528844490332595558154844165741293873271167262855798403842842338746917134829676153833508267975949978122323961428728338662215132191126888939689665773898989884749122314802522185189857589629521513342798987114038657051170322795441908098550454372802918799875317140417497006824953520272119669754239890436867448372293293145330365264818216577717188373616583657327956728080301818878420136102968945810106528482344755527967688330329123155740143436292076039515707497209166831808032692050393011109562529147779689594255616981558985214351937758597889930290785340625985315697443944935593384453786259889257135399491423859105179571484233144402249907450974226641653351052776776994954984573132450263498895212588897568879479428839976079508735761515665789578856354351888664196784495994274274648405560114788470376802517851049474660671203244007926398619418537149585773333385677249749725784570407329157562442854090242807565303628070661094963099327543794516625174952126237609655829321526646728275771124913821844929267489395102769188071321150156982300329754663803247441959413748259989751351773775100416588337008608393580212528153737167931503888325616045579357567742159668324267277589441609738953124154107801543442957228648319225653917370068950699630951554367753878214841042230605022756350374222101610505710556606711789778968378552132457012545736811011382058746590859280769801276913067196083957719055027994600906221202443166761587027096510932140096961764144084354593178754649075964834988820964146995373969815910168831004365544636335362894156690038376072827982392621850006495809208507932683716254825663216991257133272922095828892773849917519151465199790273828015150553609801135801231917740733792746208468969936171308722925340906743919937811001569767215348604613710474546139339899210921576575756161912460225954966223495233608636133002163621551053162975364555595331937336331448416990023328764155577580435883650981883330620207606773886340208962972160850107495020572113357584731184608445384646931640863353933672709147586580951323896931125825597121905264332744885608244111748649718998076938664786770595098452646698549387911542300918915146413315296320600468173476593473429073591960532263251403681117242170697362017139525353051297705802648967270770178476694109916517629717087708494399247050224551865965817680944290441120022335757603018704370109626732612645075617332488376763726626659029437811995362908876869079614721617604537234587953647661537572943058328577105567553069365349885842499370473324525624655868657958681033231671018833698798349007930456348269294673934070356540821138400930947875483599914011648613283913868975246778152421478841275899807786956835604600891660339521953458089611209411271475871899317614829308904498832385860472150036049257056663274843599541084370333852295868767640245112417817830321478404897096993944206979837459236612766331374467459579877257883987436065591011918237629659300641992159555641861614137066997234680308355133634862041307944914131910679154595673567410106051398615482768766280956699477158809605540098503318269256180150890483044546106272822005181209954991419743934612557875490810000354577909690256089686980613178203360874352878274783851980510921611438362305507884296270139885677813936314009768640918150346434338043458702241118763984985026024576563971475474959778228340782618634308234531118869781950591833862680486246766995947255867714424550283065726106254718871523210943051840666857853430980065989629777151496056182664570394470150357620765302280478879907323309895691031867228627103034516120860602221027268643545612438969721003000528509354611647227540425961750422911355085037119979022418292919064173401374264058284512548674230755924119220392193444438351027238790845097079674516282258652301712827078242418281615005298421408752112435011978905176152541846776818053249389846329498740123739360884719434101400924097980722603368965350363109073020162207211474107170110274061218243449078016715604965700074020173839648123033189503065777687135954715707804508807793101514778511361554407363662321291071700435243291452518322855487584205912169665153638612748958799184738872049530063953850527396156694732209563936537131296603588562444372665176895592696020322942584748376883082056959845360750533535937090769302153234115423172495607512494266229865547395518380035518712598115312664979785772382927629282534684111703891633144677024324226160808627317595976720829166265976303268626931505895296039141098551287094709831648192240948993653170275548624319171556157970617652696073292764727714439838051874604163209188886903954397223761203527639512840621767203543816669616673589184921796689533473145219301793393619593552424487666762317293979547643668192810359812000462952036658872879082380988053435144458403021737597172402812545205289246851717188375812008621886420152578687657208332377370432339027231194510498105565023541726342037894508557264091168586318026185249190361515395344678802426424163864453998979169257170525713612735184298111553083661676921218550542765393339829661206136884099653248712782525025842105801223541918847264170787328194349764560748040962858777791331155404526680759219708517113604236834087107915735987944082745804844009453063060228186697568511698699138900251065294941174197821436432077398266475115816442506628521766664390949447774360223779719112400013910698794919745797265402819099142075270540146571143688372238564249491917020661232774118362278644344140290177516572900823993846392425040300024973911501242294147366875146115975238260310219154286669581189050049570131360713138712056484739229442816856480026341041546778240368215421370446278135849971938075557535541382820195331075324901412408627461679931280608491670732975305806174745266970564320041158540101146037634015904942187925775903711767500838246448252187223515745714127159023856760346359283771857434525785160766356645729444642579106964129220849159178268765007932220716344235008080731191120917014991863165195157981264058031014827937874072104793361890886563776570971448295563228967103049847199872837519810166496838847290501993523416182902096971846279230929372356653397630362571742871648125274041819808743367486893857140189734132800475628469405548249987100049489698009344165005760962114131337968379096047837651696787694342126293351715945360511352661815336756682497924711886823054953011593232807186909667933404680968861093732556472240141139181172595823922735087802911473088892451187523407045024567675362212156027284963190781118344098197954783478697857042268173871532347888835938781135299868544060693818767374987147214679685426517386342797206484990616670131157657996805887939963271655528673013670586634913752793600796966020881149188625789416752382705807306875581112856521005436460813527287410347021623109365506864179112416751272580873655606708285765047270542613160072675604520433293178576291630712907459056682959241390276019817450040973744579954020847696265769466581126404256769936873319532972691969390034843432695357708311296496027594693369648905042177156636441370997308905327934768657100404088334696567799626220754738282812063012792709625742767714713439833490662459555669905968486276466240193042329559846196885766516793181701526397171484216409974587336344670091830929222332311274434641125925464181838639384992514472136069143674810131020648062028139440838161301211862893135225163386196999409209616683882584646225110944316607563006018029311905013883224064560862435301965188491621919565383908462643832890564288439366272365994892313669088080148867740665198575445663199297130577455869436898668431858541154540329485146619638219436410464681624025670941225036349108606488470661296702981486246242596912574466802659093983312936569699329858462718310341644780624516581056729324998416390671995382329442831781845434504746170627963556539184067060394480690001743905071051467839940217582510731361690331108509024117225512167691262983183072801630291412097514734296396165445191118898636189506534624911108335328401781536376713641146919806287206619380181558788451432151654575095341063068726399079697043610952788931120160156533560502392404359876908107175298467648855386581577256432742676375620555898112348885220462404988319161689151223835145312239695277582170620468228108927663993587509019518245828484782020400685299116991605235942924398214198988613681423536682364211965829376385245568502479809455641693320562273875530615931260424427498699276449023410476527469497206816147296402223072177512788484458705949512254409544886419104210771396288032911829706140967089195329663713127019363873323413562291393366661474663874251305899279172216978712423392773946696728628902566557742640385598049485841339815508501911991015607898228085977773589657189975651255262421740867214023250645337721053083929813441477762019959152235905129315087171440282111286730534298285869454061645877813359410757684900054771797415274849698903181009728036143539914166790817984238325194247304285034756452529817165860568771955573432164002042552826309462983642650813800331303824988533115324567074793689770631168095690851854492565372180177559296621284432839777456441277194306411956538469922060325682769362060815579705661069114475637905508099967097444777388878108539078694196289079258958801544335485877084650771698318444498769353024978346722701589384470547114157839244043307992123130868581060337249707263760429793939610740430478504979077267575256831200719852881026011795461720468685341582983222415992526872016755413994197760361355443499313595709595664508311450413480285514322467160945385032755903958360159132143336565036937480744239294375305217415362939594785832814973150015533791375502105619913001806875391759054022407529348658913764436661859361704863822307816820040479887050072630662690426757896031230575339147130583090433099724105228000066584625570754528230820318695793016744358602185024124384699351020060149978143779857427360898151834720677747952785666447028298592229657944171253711994575841905508088777375378726734381168413052956260743026438994556870246551066874635600804828929503843447232377561614277035577899914805745185103434997500375780015984586090154104459792565994855623770157316948891940040267364154343915440089798473886456481089044520940629624665537983760377050151465391936307651013673700283339022137255940496995916619492347236512773421299777562757045681177158170193135559464448759384015228433594501223084629065174547460253281771353034500821067246903683278538814606093056529945987850837548027726175317907063081172985356282208632751948656595138810748227838462872168749040763359850707323970477551312024120248607837115145098622805427375733826003116878584020006490741877711929626440990777956158095518029787025162954055989465050033397891318793511433435808145252977553150144918699803132772173051492890171428623518650163701327523417889484903332568045566107866214014542057506402313697794688633622406427661332222786058150976340555598731449305430038685980974058731376882643168698758420941169303225862222875927186618454502149502162031532853141052778936495853826844496964404015331771340601191029266149818963869232847844276506924483399803814934634454001170927741183738515646318213137550067879516828992954273002680468344680157062537863717673568369318164475633395584386844063861312094973137964157384711590219127288527195568564415187925830527896462990714435885964587250421948269169062454749875779254625938037745211103503494127797261403503121538906719928389777785395332384075410255919910596145253869688079326383201391197304344975907941367889981086786392226117721124099505267422733953264202801116328205369761420519876664376015379476490794864009701338765480667506314591428241600054271965799390701652153053860407121724668067302113758927452636164173770761835541179598772339108151209732560653938355076404043559950206108831384632036596499267422729311569880121027503222561015791771241540717057641879981519181757311414483955359258795213489134043541611412518463042330013835622326208906040407232741160163226010732965165325597760253299551242232136442569234928729342600975271165201860839487034937554403534429108921703198702915733953151685360551890076003018757383911617446696800270609672473427618637017557454118650257038923261583506286543917556847168394051107852159381702950998356469988377103398268730680280481910416530980846012856144830923031276248771013588313214348582544772853154827931994976301357538047065603637096751662693361146652974560697592128672707591480370119759426112244216306165034335910121012539710950764066067213884443621161458473207219437346466997676303718495201806457250737695650132306015638119132931318640195335268019541810857451227672079737148820159502453303913207796638336107030851607494871648120981313224545560402365623685888908561360711854819002110226071079303661603524262477188958834837753675655548013753763497903049057513582489995473142047580418672431922731314826568884397950513899227367508225938357835184361965944413825064290668348325841588115673170399997234520283036419061441286438482782360684594018026843218115522485030601960265990128736513571617915497781791311005018746872427072890532971035472293979867975149067841962806844878787151405662858060940845408434871574801436293519529642434229280087499096052361748201158724664385351950159961408911682729209743855086438839107803152834719903288674520873408593199954473826220019463097777639460085402374178298486144893842773555768498982873604781049130937130570456240026799435963087455244235668355925412333849456849399786065995716160130312993066138759238688528927938307223843037049818650019550538119559974609382368695162672080340082482616344908650608705811907310819875485213179367017189500731224243220375926035763993544374484489732692453694290858881826267134004348266527715106671303114900538461949323064102436591166663081247804003169260241819965365869010228450204240466811374747611982728870971339156283659564130008873125475605841004541969744541648985749342709163752991073397982697296918851432997179704994297818546811359971078957886048341550758008931927079379848836912430815837468463656212105013447228367154968918299153670087308826018989170091469219881334524352899601374256536705904514773374406047655904942604767863177903930643526539544022547670784932778819414057400634653157496849889528198452934045420756723171645831256038645183626905437833877961116940147116765246881046167990780840054815604382696174251617223512554831532663012019554807440796294212478898976671368156339377963068060198404654211776365318704478158121943480481354152089882345330889525542614785300830726909043858625460066578840206195034522857854892332599644731427132748671572350261518584696194154933257929618769905169151596449920994138090381965322565831098888485100380488005626141660046784351594811930324127373405650611253738420309138276069068871746537183380538937431733788961643393259534753029077266324004865344346877324526784599294882518931726371207944127115963501363984797485165970777505200134701004962001275341585709026997504203584837540724042194502758514783961027123355227682013773429432170286590457499371211237101027053283356317566180396746786105014681285022572896073085660962799750830434545963156789130551640461662121846943476300093046923149861850741496778175531385461353022299468625215983685124439222941634953056540665625348192464429508251939580273029908679494399006440363272022904013490797453779366627424455067031676557854541469854419025065491026669530599337639334039390739064767993334548674256034508917037415130631112215974831314131767567435775462828194470071498142340961327521197553290442696393729521550561158623377362994581298811679425644852950673725753552377473924084160254498415514267553649134727077231654137553943115555697310696398558413803324960038034278722230783923989737095871682953424625526175430350940528699101018701571016509909185249561313283219362463376299944213081844671510512740537313639258707180014864366367438979991175476650632987090428429117512108516169488545163649616116813367283688014699453777057230918436949877861813989046899536466220080491889774664841464324410533158479110146057628083005859780234304337504253730084244343433484720373743832385177384535331896857733825528323758952757245048180887735119053249993973908320549944441404887582455354664214064817463497377218222702491081965431766153817135511574770800911864317595068589208369154305969416269436388366877203231497097497704502292181809551781504159061559221541087407231004334797319434448981449962879793884086351864606613609295803523021644045638661591982932496662155417763821661211094719974865032410742091825748942300163773264564813913026640984700488190904295963780080451922161761786516661360243256412921715725814009769140770108593501382106448532399142518208322233245002768423252157492068813885109868264058211595987325697309074561986951990118543346611285764403278637193192386053624355370299939475670446222781713589272266715677670064635410948044865690029854948153483137470280924933709965189322083996560795165307899732520549000659605973509606452017109727295124689242925253267424697228850263308139635477138600621340969798154113463346501292387864428423920778505338231602734328023967963650223190267644265149110957494819857046887575423978542127660796610217547450996357654065186224172618552420958602332403972288274334165613276911798484395660134340624229634777805515077898702847590378828736957727298142922740143701769031587616476167891305283934129798507780317049889729190424643132634013984353942088039256876919155481827587210646497837387187165340588188211660994716952360616193727489199437518332164473371463011894461567807480995842218929648392044981876977343663214663209110152571738580761056758686474185692118556750308922322541641041684161489317593477547268575553323262458502427877092423003890749961802987528651225054876753598147230125019161365873675178680609516708355851531452115904886621186257457547989069460354966292849368707898485148753338300889842000782864929704636666789890992951841653398684307023439305527939411466292642655375366717576950636338767834959262250482940756881021552837986052189867676434692781635363263005339580395223948697957222562775612402882582306387269272501015405899450869942866574816620414696946806597179726674274635906447897555781441061469800050473900846022769706594244478407604379987701116508565894456843689309246876428235459192883797623733206019843361232071507335168583017984237607721763427303292031393535181369762008106974088389932673366107040456385153797806425494117871657538694547923723988229996502529322130485880990914469909999529439156404253307483509880194157894732725420561302612662563134214077107226550285030463528479748603975592475743286907705767672810847208429471804302323620975065823381407944418100152840841984363222810547785590404146625669333018200172363239988179517421115785764185871318342032288463658835101083425536436477522868190927902242049294934753608229679651914513287378253430645657263377512490547627244481482481652019211713394438982065327754556492606961515332099267774910806252276505213935533322847927007810601851499296942374834019795223989631221653731515503572023627771967477116056949289486592433502199810489661271845764803972694917989166914312875297600575785034406425432022568778438352104840995792701951179284645207219877080790972007138100247773052504865129185456490556107846623872254930672966013195769068364067013473469207180565368263344752024183204122302415165772898536890209617121559122277135327561273389123436203413058148614295921156108402532908012363449623109553554894859442922469533224869589951094008214967737244474480294613303568505412748454755742952857617694344252476573907023320062291882131066482400115365521451722698700187260938500353111374061346305931861592219925991856996951258018686614521896428410541418118923452724923035204007707745645231573375051732613096765562652395609693573938520168613386430025670540694486847061897538081650761266447829163118727492280688949983189813764769348924754962769311960072666877307613352378457256977795046434378929069109516698394702291867196955057859742579128897562609617554959460953495153125067206635021620313110409328912607944408451467295974020402414353860362955786479937417828972210481902883315714129473703887948755187215098995735403093461761354466548417785317213290811526827491793980360095575164026510455469355237488195963329463150455200720418779017227362734446496801107857964283626752007702370136741427935398527592488694847943234322375277439231840692190768436758533887262126367432683363527168683701837455138249494454433700045329394686923567327731818564689086699977907754083832549641426580780709158446817508118045129844793544590231059942927329029453141757550493988692148957209349396614331331698362842416693197330633077826073169925704634777294991642250257316069563057358938344130975863657662611536541490577650106913863116952931357162738794164365980247916505175565807448235428420159297728375397254918244381797290834846351665487184564892504821692550938383220063762960884960169601902724306376290535215446267652059000928714687603316014305617235267121021575193246592685603966002659238980359509844940912336668314230905837361587541732487326794879320537521496380124932547668157436991465014916814373800851672406468726410141660839334877598627702610967779313727710435617984755600733292601515680647753324096682142890471199482320051343749487228787968741822004344119314274689382317320688598661285588877794124625781338403915320364544093423272268487097751011630758836756086356168254941986328295626215375873093011875777881131724008123876705850442262551195597707607029274068158451333240837460437516643377689091937370050230914117066723635816177600338623948593651961743705253976232936633966017201784484169572531810896336908298600263883932401776520341699657140262115565115279070914979271746177921516611429893324263707197208985965862203999419275481952736007479418716437822894385449861814601125119055647156456899267986177063200092093061653760973314897672835900492802670536039520753531036611588949937980153178270015800725164133936780828357649285313357630390336290659671929780178050235075996930600662189601473625869091971116471589570103369285212887763468514472602186116597095676781370588301581037911772322954250520117170930838250455444258644767170014694360474240194202368138787779288358902714256906073950131306495357127239001966414130107732829512686545295170952098103712860250886988670844722125908503554729052492398742218957748942021819710764114988354499016758306054216103958599380727848170250203639094617148554675305699984627968902209107637417613860419128450772257194955377626688574449760645169405875365827894916786790348415086255732202293966232080573503752384844234803734324577882163558345768345903540006520816708721301544186407295006536665225920305599472659213384566465235662867771114287101771660290720602147365114882419229343548284984892721902653297496616342651717807447229575547023920627246940522869609751070565416610638895498451882038133396489340503967497269436016552462052499016292563666645600164380680593933306559814964333284562453620262637802045394685161813986084225748014361920757334657568461490252859868229689970488779839271743919117967653220692237095034251567708138012120534049202985750867648545063671188364302948664731778500220538907788174324381537127614654703163732853940055178957192857673445848160349999976235778406645518820788065401632120194207668143694354104146901086389469948632968928434849547705469231568077328292866150077933450701720458532523634703234138732269790689576760171008421556988473962656515180928113258101686016968989753926832644809944115415947656511819850724131456691559673043967735293401208535334172626103937360061422363369359200804579249093359834954047938003024845225721562790937096605641698965701871178464398846545445785488021524574290610512844348925586491061946416878103741682889732764246349219318599333973929219947178157598334895200630932958679036946643712813571033130773003386270314333894606379589098758139315025713401187814774911496680883755084002788634745157510923762865593294332125084042915247181206956802193799109294283486930537496328409927524232618682040179119008792902076799857006428011078562626482974303623349533173056406298068452707290244944796864071010521300077411674761508402722357269963909352048817311290069813443593511099992098544548107559246273925155459240370504954587403745763215025149008277058143814700310215317329578953911547822438488843325981158644199238842094380021179498621990943411989724504091549482867677063689111590352946089160096336156823853448073147885513491568694889886125802873207714206920845677619707954074720581330858824926823875574083840884949574567722974984828798750664607029677567897809501107776199225905359961677840545592585212360970103940768287461904498151962889540093004603591991267285012946928214179353606926891625963924793153865547185232283204365512567884815588440740315060466015774121894161101784051435502874488275110603613954893020618811609958235509390746064070086138556092040135355692040329859467136847105518141047346805286996624403938601296143099086177395978271607951599737717085525906287774960882025967487085199401893384444453465456764188772990908093135303946617619555053721516139163412448841186421524772618777056761906007645114284249140407320802405301283631807888308070986106291144234711405240238057987274222453207780037285231958857482905397027574752822172781859349572437700809568998814806103971303112912821477378162309349490507181197327793657599391538214251708763402148591588819363199668677707014945093322998253023668739887251894940180331205672620206767188513323289351941183374914541250616982509335234002840518643299134279920777627510381689135286412692806693293381966403872575567081640659772826612934629982822677323813333112779087934175142698611369133290385804331719176551983341938610162640096047350972966073599274672834083118355281236617552225214097484877266336000503909300199021677344523973315838587417300138146606339526224327709438958838909585498392884956007143978613016140922004596616063333488319094133677586849314564018673787000540260729038980251622025135846658587224134053453031555650942762318645225809080077102764802996313143362731449374316692099802145456217730076439881891160027717804161768868453991245077364064221785000963907647037271759468562974467573048844449457421572408311885990344664159167691646407599528222847552055889181144784884164091431520335266795971500776783184384377248348167080327084947728602875393503374402497837015975776942974734537863129165454659849702888077045411246619512269769184296634195523119949034908018588643363448759009125249807011680017363510774969065960984698586659273482631923142019898253250806141639504454604339357104925030599001968492318373972604426671710164463360699946504340177409424342588111529876984947443965450691755623356648612928398964121137050966787086509535925316058489291818151367970682822927261293860725295567433736891648079081830646655990248350776185620537795447398553575158908238734731503147130185316649278161646516788031140700349766773720497410101875111281596253693775097436128527344451356946790878650344044026623967088830472871115889307172022687398455601265813678009186185818655329442307087606510138783681758378564686855371882862052544623407539942678675348035029172034973021575776253080351548262024714636600460911960272133238554453704727476031235157686045458263205018548996000197471929557214784157679545538754389420103689129816062425387686768945707907472137069695588035098120541506921346725914517785561833063486389157258715716006257716981589801754412005855516498896841163964563178731418710532160442287587447780585710707744420919051014294048635744137846126794798545952808482664496957656721941994607970168093176696997254602325101257260822528684912672548935049147484868958606219696008588549469371300428426799824379749151067794113280955715160950042272542582141040409168213412206034488569678008288498203936975081708100186469858874411274149146101033803078793541161015053002739220887040041925013017141849447856709588939010474361582603078101538009950024894152582627460158035397023572815139543089351859214805242662999411489595788944643326255516913517276184077252547583331066894851962015997935798985264328127154227321163094053336458772133910364696781320957671109312926583240509177942757499926385645132018216578324580106817246294680633823732678790261529125047776618289822416440174374592002717980772768733486249464016805708908021708158396085314516222109042974742444707014483113931798582662176217704012698165441803922742993123674082108832817872417838686154807719262452570331167841515970087973637425753141458375565992663396255455110883132818997946025747847741402198143274360592045550557556989476515189533340166818979149040064199288884324653055687479004146481948386918558627319198290016615086572244547414412332255586945714692085792501405402292788192276277512498889710466982028787927255796102248345289951914207433702798317747765067076126790661706991572479681331440506676217384724869322673561764906522090768586529204538540237564546499591903920684721762666699143484760111770164231316630548830632239010824026290181751773120070210002492014089473799640408440873635185357443330339905393683447528276709648563838196343601056961614874101975100537628376632010221708192330938754252245202931720961830779404157541130504046308929899981533327711638697390629795646978634314370444113079396638294401768563998736988066992216321358008283031857840006322388975399766906763284907180249389903087547320301716107883858490750464330331144148881527760229010219503957865139668371427388939683169860356695359049472549063845878924657861033670599744383941880110592516377206111750650627090468575035088066807645821631816981473013210235263525677839430859329281818307298790328507595823035233885417527982128449678090433487414627832057072602646047669331061613921082183465465062894061019051718568909784665517490817973572649786195571198660137469476176189850892662237896928892821681581713246342912682866048084981325743149649988368541662544426967102457854382612160014998939325210648750877410172482282502982417349118859029505569499395949270343749335258013344173884821944040072891288419967038793044817752299256573414785414054999609238185986323322966309654431336769075755412586342009290716089140716079884308894354936535505085934763288069056834053737076427199669372906761627380829042520885095114750202179920408881303283692225140190973895777978035920767129906404453334244529036757232854971559665131050832530393749491283142358185261163246479639737250631794957965832977029334315690159061020301378645726351413909196590463256991238764200135346608344504542897284660012629813540575573522195859414760102302465627583474052862294568828027777093624004652661832748331365543224991412849061729170445510742969057717453197112820040231271516790053284630234945064812820272251695585322463355577873331243869007238920205543843523577720152620096896950002456468414595264820899882987847330827806452607396325515383646910547026462312374195969270167926207267682038154282181163634766088275402225426157958231293145245740526861333447721506777597262186719007747643353589851549311370588689420646760272155112279922364534152007091173478953336839253767613434839311996987315135401374480676910008396279453490089950310689483282149665210171162322066862138873000347678501890941896087920280057788993023744240603298169088601799769804096710723014103593490500623462133115185423163879869664687670177331730035310197077159619365460188836668936946887936045163496621877889941237906700514621086664606441264769898285411985547586947021976092750003355108369856870541936435369558183648982900688114514276567373805798361369767374097012382636620293967551728877976724579363278274177679598760228275215740681471748371144404477409794758729848809092446738096264289137771582689729707509292002052075377620718630427076124578623875834187799260452455914950955624413715458448966361864048577087153890149921578793796526916467879385927707917029280836745103903035479683198027390312740579201840296904390363537807254743485096119342942506876932005576533161072337629871870441540598539190941315038238441818091187213065565297061813251184629699721474038158412405072022621302127672814813117399736041658755280478545025893766819502986322580161512761770299338277878059303756880366777960932746224676001842974347556310491838375886384247235428102521598174099078617289715283139535414853740814449685291713186925803126853869962821431594228941508847307765032803609810816071262692187577391702467750833251491954884222154776135144627082438055342342573079714599695099088749051517286950256055769594597801905516917726574840685760315133880453891420124142815016292370984123138631252886060056016892029357543162044171370971629138829433335866217566003466186314120731174653514625015028030580430457930648219648648012138946413822424713284289979177613750780421483470437710338381039207621972782520192383889030125736907182305352000121592053695681802973125676256946778234943356431509558146745283367927393572750018192470658811895613133619574977930591007582680722576517812738897766361953318601351483530583362345983885031816669713778152100068894106735711278915378645486501907105308042507418685208746996582895620363352154062448144019403593459227949378032108579492443358433392357523503835220638537887982412550499923705899645100494290535060576015343739130306992883578663487990157415355221018347586140743777969107988589346726440760176167838323897869011747480053167591571399550385501185889443428516405771667542808905855814347728442586502276590265904622215026384598901128945901461195993064950441914068514654406004949836243347113200017072853720488500019395336177564043712978213852007328026573232895691655434177065189331421422157185776234299238218131332344862131294961606523771102220097875913991580723009170927529298947763418176722403859541178971173177396796248249001120494309830524857195453329336204859265918754388819287593971644315782271268850381784068797720294389804192141965882050512798992090054935094294520961509779097673216801305682263546396226086695150535411778284600378473305433620842445062441494058983656451085457028344229991898319600906532250389477163046576105491098257866296581224904268600606603175316718418194430792958433456480595505275396099778938892945650840996383281245117252703943632085908339139917356470866149413462912695067157294411726064805787224544407472461992685112910827715428223632375638356962911709930865516512829499999864923380261048475185149541946701954959236651523982305741257429633878806981763508057681587298741889087387726230089367318401059004575416233201453503709186707150792731947507999452118356074262651131266933875506273336066739195362607043260996399895396186498017589652876742338282826515844679524519912177226951209467439067328062412706783105349783921601118806025603430977159165703816202701153266788380486379011229035331256235143899386652455515807977188349606803307507485824532967162126939542261259749356801064111927489138332488126595163548609160074018500906432893152710931354558431624312060375636789686953020491165733971950976948778804156226128167721484882072689585119904848407397285912211356113133742628100047370238642537939007988042283879087324069769694849115161682141813234588039222287278167609135927028996103549315837007619078574026115176104064357269540801085019353018709031457318525778186581259742933349217885669196820665111751083108995768766381963453694864357311684619916720561886511757394338232348366983760259069045794939893278586309788631968153995367450944137266370329758354695774980641515580976023606142532232800960616427373859908501935147814964721136268110542004475655649623149882064460719309023734485591655602927725925710479345732371618110497300678579168877797635389467058329584102329172916607025385938298598478700252015987052714632200046858556132534190541785859627822644876794861493736016405000379701791482109014911833100190071909515389596392272448081969378940392874273812595106771434020668359168738325247580139694909918358941081146485852368224177940594961709341721955124851997003254796016902666523239361763048859573660285091496859667875099204906891890537317881349087577903897081937095939656447459228780125785634202332017208056652557970631971771276513089226208697747628806408508830785181631603050370127589774930440115945643342355547775420311015485733439217443293747417911664660941575351517346010774071268669383565138570335867252757164689401959684884085331125629521873803716556815275647947490787215280274159573325787189460970646524147065938836957340875636130326914612705566647331366207914656775405772157386521211675306106378258364500943203977623317080088947480611403876085594158701904549187675049217062093227773419615355187166671920737508441218002929681613556040383672684357166271463572897489072055594451137451608885891700079770535335488484250872389270234835446513766598204461162987537835351090402659072864168338835700493920432361018396790782506148772783986039578449453061223110323968778963762621529278625046673522479583991445065173157270687380679978738877882114465203352508050303741409618832462405389036433904622818500452796110804753185950471480196446377334535267215425885473787117358014523837768004327367332487466402317822758873357321950979379118806541143619771461492419540032980109116369872189669829063588417732983152025179968493154882634011094486942783841654770205658886955036984298200098869818224018794938338882364169012350218391692937536873204099560951134254472498927944811480173681419696263662005016790825196167070338320214381555513648889035638619763659873626535133368432130709211018708866242214236247760628509813932254247588419206441781769964322746472509955783073633540136426048937566937958463900083287273545383686956798704740107562926129784855694725849628255387140871560834419970262739699996059349927595283104692126218489123050307128082316110613761248415398398370599325695840074119658932097896017739077255974055845227382091759252156535558902714230307469676012139394299046026016801948382283563502447429065385273865000605381546220018909392484968823519746102748927403066840506001895792182157595468780668598473790204448849265295949538219061673803228763242711254261400560470779587728123295845416724387959564751033509264930576338056297998871562700033491025559842123329952568627831066183996111802504012150607890858695382068605240629117397578534090843652726380593268471034630285821096641143077630167207002207176258612027174575037160760729770445919916956935458807427384556490538345125606988996275928604571196706450194094078936619217923419888918960836726870457585750254327591671718874889845801001367405258166103839974324569252115107631600252569236752833197256546753856290955207466470053026377898692330352789114790784136961535202687488793550239015659577374628227302136974879343398156137738242510127173010549686650082212794501309214414418608468250326130345687412345452441259919818654651064525217269113286282487005847556035794322138855484558689259415641838923405249545067046248489890063170288917989997594266807294256965070623812906963318097627266679415176455852109411389695801537026122982540019937252101490674019822345716664501091341472396670286843343270842882801096615689247021784507806913757515762361222335544891841038318196994335736317805067593938208106146305290202194940247708335714242831335151290426600340143971093248556097526494386921981972931898055511677443649400552717086164471145692492404583735759438014244742920625268201921618437391318672077612809936193963358088584568836084309827145051976677425726188957031923123969764252420340207497409763715644624493902355812806484637698670068397778287723443482036343429574705281604769128145247846871078079217742235782011890028345479745150636510721451299339827503650541374759811481128994798073929909851018581155864226576903114009376877640477020521805664594140960257544252043024059392511180354459036528680257458201577206851229276875119161630247196379402280630776518650625114234389288945020664624855103523133466877915676688179291019359750837814866772684349804898307006672192433068465992147006791531130690358659946563898990771650036936602069278391385168240234096736490489377498360048032651756124624057666712133169453858575657346134724915729784251141095664591587576637554243662188142745537265324865365825241290748982333099009584734013552493199941091413195621510053784956617798527022472535297485707940614816977293633606301628723307166537033640784304806280415361291455572310262828482133946970836899468585322549925273025791734407543556702731616122700033585589458200491045227021941154080651380813251868599941337259131752664866675933116964213706578982869633378674025307513721016334277442306149043075944354662023061855103924675263525580396308101115275343383472519623300050686473340701447426955881405121489571788967310564536475027690229889082148671274346714686309221988667691202458580035544002017794871696178182631082068151161066520108727979216511494906577899569096308126975805255400090198183646300913713410738909115152229853614784177257224623541081498974398158072575930393005823087600581749352779760097151060380154089731698472137906028731623220136940864050389301860132905742538268446448926264874707368928095371588669550732488534786775589471842788356446350659512047735501334352387578044930683536272695290755154211475814726007664604402060229611942576078418128373732917638481805702720053712258589778136450491432355123550143801143570069900381941266111813051920911490084417870144316384592313787310065798292959869457330346193592595300146525304541028941781949351261407959627790042168049506091719360434650213850022839008380297394204419386507666378429986936543871533317069571888647524254829854944239167802680712661225201493699855118692874342029619267587388046267658710230841911203639120959614125232311841072824935008242418302462395210825520951505251409160643412803258259876019026385553234107340486181710039825069468433498089900356994696988284897970848479414139241584661821674212679312123294913407781876250912106780629760168645659512369803238194863518807245219809660211439264380420838579317098566576904132377885811116990124520611973405541771299011364373548860806082606099111041442777782621233824786505446002466064941141902624642608485151098413994601435587032899235302054746639924403765060614058104734289919423159673871097853616929559867996859492795569718332549459857533569078581701935940586480020674011283030688560892188013921248450959368778427245930099586302874631377703565658945875915586900124588972421247740432607187276791912127765811265533696603929511282016323277531553339628128206014916709201841593259669733877138128764307135087542305435116595154797624950292707940636553831046142680907530811413095657533753922795258978679070253978622332856611170457892299855696766921977268245898470846721886406686523989820235942550687354654744705280714900513034096915306512756266775630725440026832516608052112463146571618974034239706966825768214237873161557404727178471103452777997806904258820316448030854412735125285336519157806413777673201944246598083475472830555693107938905687057953793224357560829480439284408298430823212067325144690708472715791621086009893383831802130590137757635117288575722524685889340557344867993995435554017419931713165879899194764880495031856207496712361384565304493915607539911647831080024539539019981788789939998792821195161150210406838304136633729317537548323873199257438731967094384652878144372977639333570540396666849710224346328917594769690360482284969340678486886818040848004986934089666030804463045106742320602179434979480834027229242567146570090653967646479193631384436490492913580418717581335878963414122369076970961961343930288894691928440309673335432272239168246231698477059682500778132888595443600446475128650760805004273527803264386428019413499747184826174022772010768399898037476545399764412441079561611131771921406553327912046308676473949287313187625391634747578133804341698266906302024321588822901270960212990988767414052440802134370369849675758004337774441700104236867213349962244595899557623651973024217132462763249406801509920384019121809481936070038328440097243844108726640283474701526068956576714166757387328367471982836883225034725209437938631576790061012192865378955370419617595211246285336223537214282040399291427638726435176261769174368329804296655990848571442069648297153318625674831706412070435964416051219844519449313043074248505336587421726355737080749933209821748164010411405571351599584131552844133824741541241496475098898414733408908889217801280830846932864738109031659047490391885458284833378250912724945859731088312899595080939100831702067473654935154565306597027203278190458209039708854351619268054189490428564310947751311827468736382894727342842916678535029433624380203547228992683084839095311168334936109346872514821300879144686475479575317205790323126160968149375154342972309335296898521673214658959864210172585947621637607230456056018207130265528898378639152084078632823024009151844488289080863815772351617796465037906239610310955997501791577218841830989245972326525422577418421416692673247715398274690362765167841194595454490338998543465566846744049859997654507737067801160159076558638975634925416661631039593916716006133368594121901786883367868171957842207129345884607160175836562420093396977305566719383155109872421511039359028898612208552791199884059015291789752305099085433020650243592949766521489110796416807172563557722325399088024871639452455331173751595055084883585579702289604230995500488780451522599520091933882751066670071115382727908723156968260771486225920097584680873805966668091868802936594010485898272620451816227165484586776958322077086165469361037698332967857694617300663878989148558091097686397315259202736007201217992099405117838443079981243495487681230243531845919172661242498504298442697605997611134006970136927358128534597671919739021517541143687864238518442686163475489599220658359825789731651779979785832690701825761493221083914793017710133653822042450204646906464278253736254424552760140749082841653526921690661938394956364780551548512046980431757473649272066191463714639516404070059944445813234752588249153326512451256255324791173545286456793145991604118957547844636280486897614456557860068062496015096300618397021343588071467285145410956588437229840351307039032186137176361990785219373879122577866570806063747085083779810300336956437039648119870748534794710505326752951163360132799717943334930341252029301756456414792571942920377629214922427081622025652349089284939140602886204779666092563294582611916668445577164559609306432256963397432386626810991363119311190586704255341206536194371200795720552846118169340404000199120171910379240501300643426830701805566213205268707590611066358117962561891276666047501480678024431839560054187587960334504127759979898286161056931808782032202242749316263195417001230359359792126273098914647690342579843722058815719053228489652679842158726552730160640537209440126778717810176367859485547141507256591130302120974280208795419272555579236548103159083805396513032610506485028120305600033241285153016125703613214636681379949708762891403720242715796100358149043315020728680803352049577030587464934171021982747205525449773409589210606837341698671466560382299503198071386611497294089342826492011433249856668561162392775391272757576181071323252664368839466104677509845095226879476759673546211584320577037887274486172380557428926118007307317403188974775025476808044969713933948163505808809916480892179123032970174379863870728135207309380168880288610678416921162325535302513423153727159875605090769365375961588484711554048215353315442443666888889486587240573826060459248228084460831592539795534004394520193244150632596670087123437739075721386652311204358787715183067881167081477980509394713982227612947238930661924419042405980966440448541231491956707575654125641273600181546698543737389768240337945257624390103595502019983859372565372864804067617877413765481881093575304462289728592894967128214847799990077419371131556572078508339369819615091993274143174350399458349758959507225479637308783368571449556369440106792071953471508304498460292879351223309962507765667269111094383235980292295772936257084445514808375939058344454892707024043805163250789389724908831324122660423698159465226175727222720463495536118049816803942971708249355879287342115444277588982867381112496979615356894291966235876239138167097249417210845320240353483236574256764067976021438083579602724026369057753545660337393813681800593719110586078186790576823477229642330029497656920556929492597925257244670700362561765840615593307141898865959303132382917145578811790410539617824483716241782180722884049352791513881657542564885953081172731928230775782513393277647331130585270394518900583686480130714237284146067844880280261256103108705783327669517249797051621104954110658722989588866380150454683576415702342094633053742574473353302016991052230472449818350399165794801433800837134080559977719480378977772465581765585934919846484618542857867720886892243510976746591344626385486924852221280753741823468060965957218712063430420777365829401895003249001549510272401505312138183761475242374046542469471818269153716387642519460660237422855014546111355988243456312857704659153194737177057464980433805564498175670090815752001936954793642764772203911684308107663694521997590117206523595313898322630068902682111182398099674804468878346118603642844532479806249871285640121024532466664620029035061978473726754607371453645048554888880106356671127684528338049755533519306175118634317187622273136067215190268860863892669946596437734151362928900679928246425219472222040762275387314773935279214940601293461695836264249723458784479915017387455946153214188311932266352274647029324516442006283650822232492543920171105326241134040873058945054794648967997536872844404791209310953067026469452688622959153753724485433138482830899922797961747026038540249147736208651896647504632735791125144839089620448405413981707918015183339122728388401235358850137786345123396415114056013721605071164183719008188561329387307864855680977954520632311588145133120837735561446703000380366267243024833253154732660688984258293068904054583927846083457666350455746322495810574168152520741091943998599166257713193178246412590116152999363027160013028644036673642062614206306858256536802709119297337507383197393580228267600708526646595230294742907031413323041143779470385475696063739875008936967101519406613225036582316854290627845002441968902025550440372482011932725610650007525634322964445375807874000268855181237093256915023422963122514303081729241488945525603767189259472352358604135739178039301741538615803432367378556393039200876604784033287041275293494455221154009431054047580644572100049410099467020563388382278396903274180350620398826766263530227608883340583122293229991009916301148418022234072190223234631711805652605724291389621068572694135839142036363050482841722133013653851293555224667453510830828567898456231160273885170215919456477398428467794364460538291183422512419340009683874340403881610386885788251293541567788740329155379456638725290064977634777540394708948898684204161289223095076495095239746917504020357182536555219714923151211758186694061110823639160360881350811855706456668411041804871091761145477744613412069948741705739161465630669341608233604603360012570293175526276615123193283114167200424767934822931667985741775391734032275424411649583825406132211733147265734667514714440773766653601761156706200497272571037001381571975159419488654628079244305326266359108125135859541774940880046167619888115850097758955683295835674722805290060961014476360243017060808976234065933986701815416129603638157990698038197987558979658980953439179178774575212472645314007411466367644961004290764221105529509605403019554732593356269921399334961594369031587179606599193537935959490015431656387789426050438155561690439260383730112509185512607217818978848551560112488926896769629721371059250448945207815773721139592127381904034899938198049613110340978989659734827307971432768063064534001219748829755767773825510889301142625623956591462985938176676248834324234813392127296084453091451937276287292488678675009897844923886242407388928553115103781785213866353324316663983899971034158385831727141053191608196951004687889059307678499841269249346330904413153776580394597173353363810381152915402829580052215312171792144200649021445937679971483960866013169576880196769620155422633608924466182363388852782451826701776374249080845757747396968474734718151210299031710326542084529791468361935255942964002568262986819057727898911989385328532324807916625107802201047970972086721215208503386184256255896092228701824337716141606889226970300038564086065111216205612642696044612719164551036587080953585330224234215384800546579243352962995854176149783485669931395518347648901828439464498571825041884351418001200068050101920669966324647012207452588977397087780197371099975347530350547630387194390500386230460548609870418581515634349819689209415690543111423063441780608588470642553253991113629314307135131521312178107639176444720884324799756227005492245262924884634704162798836367203072815205749543811042107587967330032091888863918190984547656277844930245414640802230111361845404865046768637131726237880935649300511575562121033049466547365383403195864031572115121728138994763825681333726211946304074268885870363741818791135281905160605449288864615238005438489667185594287013974106627053802286112224277245454472459699498160833312673219914742272379614631262257219500693833467365492684521008124471387332997745066058780149165891265372633348167763491620087196536358185942630539775990746085745737248409488735730824350559946863738503750644652626070846314266996406176925999972740597043389977361500838547655079070799971130058691447800922372183291735168766711425812796793581949464768470954096176258773805216213071423786343635854816735657459083358702540115534139914551890626978195366935836933621164115780246832175348330313464561748176341664212717553832825197703725400424220918865729923662509066293591757937522487243241541250887932750192546465532543477979409064379794175202450547518670534444802548609212108142934330509634604783974137941515616224683312482969805649467324781542926434796778045542654146456329526265771614330584148162829180102001363510315521028248264395383924999042009357906591399897708667436998800657161646172729205854019423492643444229884681282052240049842499395096921391464753541585213120861740545008710370579016596593404167611653009034874099146715318995105981244899213676830871543399643776531962662261050471607163082491369307462123254769414487305692515065011498973464109824823957243135894029635074334560586988318703291001277196178260435367712566246529134675125356490911236266129337221416288290044234001846725441438701575637589791634937561132762737390288946546902158614675439539281541835698892047393267412636296250394037415948493329451251440730257039831762900201710266593350279223879823605272185094600967266060849004183864215730171281784715346898928463103883544415111291278173560101193602412513005555031690112332824826756224875863339456026611900375555864699165454858826621999810821616116577883415541033841155167049395865782047381399219268533807832608510538418873763194182886416689569443423932707440404214322518656910852846665176122295823879007735757424723241601619165939140135411213478615491161793225598976985741364350791974225598620171953789663559840950767175745366990746793294728051026492628992183123367568435272449600336148449231667192916470266840194203739826339122874776331609098599236681013547649251683896084490546458026421391736642298831425856049357026742388693526138416675072814615659811877044215398053391559205232628680392644338106117472353743060195765641042254921623164419498737299828790862557113466595664306704264031535233068042662724575974391259911611795289268550957954334144782692676175480665465399629380926970271739673055641590501471588698539709843595437193299390530489219863047293736160065574154166612506749992717625209197990292151443553507103530790533547060911835001535750771199322041547760645096592294878289285813377245017996388671872148428077065978301662756671235378757679077840964814077968221084050540317254868761080529746622252186708978037179717631324329404353947762447991015968314030121940399970563688990652361632685825557339316039215094508283819889685513102859227925686455380999182865924785859657871467240417693827476451715895686004286629066510993737425143161610733406817900921836709470116171570733796752099195470992782237581293692138304646309146484315899018719141762947377247767598041569674048085712969995033545236068714665155333184425027526958049647788500815877780634478685972258673536069304604894953484987075712597610052591763124019681289961823704400217198394061906249106561165164989900607927854658911826172155747126627133437982716869879852621811493141932171759629098781687391085026247967456701181827842264964598212660208648635939863549830598535726745090814074119102636876783402151449689389272578790370334047936480700950473756059751748703320217198553035543630473490756849071539374890687714523761501482164115995429527385121901874475483325214223394110485824056686395507940815776628503468199999575299734504056799500625668834423355154477143535316507054841613991985229280387178144762390221781209100140708130728063509971450240540642037285992447324875530258950259284770999304557518040778475198060033867292495983964745118844886801659697924715831265552794521319275888972811918648697631777277577630171111245644744853114932997271999789881251881498000231768846776019364770724050784486486110919378440412264883027135541038324280265712278268602489820596690903192856803842584866296163936403752286710750142263881615383251108783484934946608322144162723759435718644404799102284928266783727023886414660329530858066907641773047007359299487526244530475731583299626786570520497307335313572683809752668700499323939290369305091624592371204144658410607690541065821272766701546859335278028715345442490400613983662794390968261696326422470810234169685245206098848977884479963010232582463524226137998524570671218190399345954323543412182727349345234815277414635876121386764178185713947238830445717317274455831579429867189219562014186985677069496086970051990565059135081794475246093346357236329901811533248809431846401324001222639436590530695282131704056210943115863897722292513441120386013779477514950357973486746726886048336425853174989527079501051060611089542475801837355085310579293241222272661462625695687965542651602506619109132282767862011878373075486236662325151700655149765240222769144758769521233815153536762397027908153301058168975615025516612544482108395615595048960653789848124464263552919172357293609545455514976579244945228999193972361261509714378608593677475213218957592243048917046039514507269587276967970448862187209759862794238785061329945906677213261438313914363311364957391150335408379411081280299290291188868688712264807256335940026984217370159150830882555734865814111207290872313141517245639121060842478500851522149536489571391582185703000654153146333275590625450228269888815550523897490305030156345135010061941685788527459127176972379201351321897900676145172076221573223466028124768808245968477542150039048077057799230931188521068177770043836848368013400897576833431767174365259836716912126784202796481038670444811773966333131781204642170645921855771585858426676601968147128210508784989545617153635018337411945923681058457693975833632723386848470778117265564890643669923049030826323841645191711736133649833517582384026710197006289470807984519466316207823782061356756905463889843633266518299004539655631985742453249933768638681112474698887935871222790740560362641185590651257247600156543869502937690088397710067507499043240287023453133283106236883371743092130791426481013201277300173588774025537028597976233102452236338774517928057533952122931808865710031425037283410007546204215964539504843783611606328254341167785799687894090020782418086598505183070856221350461171886540568728076626145896399652490655069484382169499592285932711094919579541967139589289466442791788712625088371484026688865192949838402006841130617953605887624651248357515547915993237015947721601170077039307064237217224981435533337386397580554841077336676955206634458607679214616136959122401719022668486655745482551430226539590650892666271673127631708376769678715391274819505511509070890958082974437992185544932000871044069389303491927162740547703678961750391168670124256030490591863560493404601973903444439979350980695726550558522212438642070152069349489944003358475259696731418262486398318608593509401977444841213563176669115551506263101844643096740456132778471549849040610690117396442021056145155633966897254656580221507622893634877886138225665559596869874769729992651638547384698008153396712290199147092443267568741681910058321132703258344575334158868782601638461796454683766015245723077538209086218384268491183965916417531841952335779222928368470369914375033427184466493603945342498481090090891955735736644100281197037573986490069235625408485329185928303377127472138569315944825762117303328786536813573299015565605142203156303988505639945620879185764635474198458736027504019691323069762735306410208379232650209199880539595852353398986088374282830041779664982529744288599738453530315008450709877591605337222027824783230666931368122202992711972824433608063613787401343993697057053896980663850321226901436280162730630148755200315201651443959750669665671733724414608404629442960766500901849149150285049507161047772343041971207580206022812567922517496847787403745199521996548924283623370592835154243470037296097393607228193557154109694016549711660748052320843632104368952155630347000128493958439533076455087732091981954398031633066706687867803765999947567971254926763635297660562707787849142305290732305677764721372347228671824018882457061887240382992402322407209108532790815090877117314721121104008047879337984904112864559714858077748944153428684324854019433190425964279236912853062085060468636650870530306378409388516440909188363778106602069218955872743110828234948293529024922868329257241497628007684528235706032982516665619414571225106135885485159512710236038174807852924722839466338946949863455018016090804123940635225863031648085569923846705404191031735738904207030722289897839277956856140585544325591616381358748870170684396038095796796910401387482302812534865067858791155424869333846748493262428292540243634671057432220691352779581002115280759851184558230553886856302434990070744950962119528823638589277285582683146087461104648799268990719805038318268713861918625638763210312934442140872598465897028012547238842211966735256861172001595458485419926309024789967350449911932605984535515099573502647877695200731652726896373550245157011144634954873282998952688451855522711228266466093976387667176750031373894679441246736481849615918470476314199455490635492371327653161380601965321100165262865959757846821212826259109690741540905971867357685672556856803733832191135217198336814243988500149476109510650705196334960637258337567757075042379753676889922172015613276271820264285397380792306677743501766641479795635622517160198120554406258778937236939262880460437614982835904394107758125432316812728531224078516246995459028644678284146081145538654158501382973357655628459788640109399080508737213216135161971747695336750807935325936622838249771469271492163372439077659084763675001529726539343884563866409838514696396709930667360733241990726962141296952297070301688690790498666246211421432206783176327798787884903493274245325047398641744478783437299712109547502955502834493991478120308657868793907058156873215180379679551778594099263196091189710127320856329864794150051634253779901590017499267550749811473327463531015949341957464633221822529590094580574713752322320462666073220384429104022175395147744445164074655272647519940001510958098864780175332027841963500487606534162460132543406231064253833600798632858965315582145045012571393528033830789651098186115246640029023454417577705320627333426970971135540928225804829208589711945074748914746622157030757394296260047469070424920979545230142280018544877055595642048378845558726288865286238151389894797415235072505069549000241633845773473185576532188506348237162342952191965141842406848239709799053905347689086604473820489898369991177915644516454850480343813748498613897819308036198953055233972558885901554887633318110164727206255744335761505170608165238298584050952073992614306383653087950664839110792632960027030214076352443882770811494431948921455568770841772983828873593820103816524747221162843608499048471448735786063400497106851697014010726164710439064207453028840726241750771549065829813094871700647985732058073924136150863339831075190259989813690500707640258187249284440468126732541970697378799671610280603035736031099898716356282723154873669480072087197268430201961095460084659823714712921607173753693655724093088633087767126691254092076758907826616939602697686853059897836847363509580444499344980284800803681750331445253373503884386791775771161723636513395792937971832642599283927884685705764058863335287246436163918308833914552989189215821378181676023069854022212488224386885556629725201821959711528103690711978799497871666489938069422586882879430279851378723220913243580403357845094141617782984595464181469502518943036209582470029665914035535742891011417275450672311064504080229821282741674293061473129914031235981554636368375728908277048024599670667094547720068754312611746305876334786303955075167930388662633943400048017540651760407840690814640442557001190460113525835469436232323920010709625629380947126401894060178410820924972593814710321363909229156570990726747024605942150015214308162020056945005556630515064961821032820101662479080721683093272446740079231795587818673771604248526114194139180613126463910252570120165845513138309141810325284416423155763523898910870785340703164279044642976752839412016423924816397157699157873950815128378177572896684647161333457671544899984545029395566558368549067395008611688034337111863217421142357240021625280937117464719119860043929365770174539732397415687281100359441755591281975164014147559470421402699023591925704323281434695926438134368168231215355807474636380213246678703843308805032249882930096912560311010552589387800996906805967012727092541445810470396137977502289123576663241299389027352929422520550174029593361595772852074925293788979255527737936991841727341752383805052105746623929205250925250725408754712395470538161049347534403969034251787036857948943255371892366180585714741667890006853735549745814952102218612551352527276451617615202907824790454273014163095477660882258899406940509284436835136107976607269608828947651999674327545148602030263372829316395017609846541775937627873045455790630373024643460881699744473419855636645424493267735978046653736940986732031069813430361227189975626291916148069239085843420196717899539428207580346697081529514422586760031806212601842576265823715853302216114848458458461302929807351085360481083906783765100004099474815643264168886981683508341031067471324699703670626066671521811308101634233657782826438334787637456440856307608358063639081715597225455573280016056076625650617997315751376377251201534430238303287032743829109651785427512250925947888589970923007486184222945858838780745021952192834937445035115002180716703094404035446329301916442904811796784995912602254208376939989913563246366864472755211598272177404973512650181772925185890069804926762994386257962309618274953483571901810063957052933230369181364978706047863275529896283568095223132903232876476378168036162528306641492517146466419899893407406329522380415524948843790258651233854530320424690128143896753829138734506299117337256766857422747202223552453495870022798063271196150877277740470226513884047023920939236659344362940151475503680770601011070291551279852221229842105253842390005875159191992107893572441174744142824644427096994524348113353098776324423638742129675342179393113246776659376473119309021845673856491667046121373857186567439542221276637293189409519576347358335753549246597588218957176362950721364537655476291272558999334027043147332594835923581723397011400346786694713961205816236108025600295292171514789807472338667604034158015438634049757648262143999966486310092940042454192599576794590597368991411281507770816781204031267490464830548033521287343198183830207434670422033545541925559072272258129688148436796385716450958274304443332516575392988582546549884612677353939863810307553157123932381629629747196102416683868488924762838527314401173361857443339543335649464731197130850371710442199545811671896092094973543963962280969804238275610707403307963002976115143140607712671337404284872787640033018990085228484245410092588498015473561686654242956608034958786682480877391019478879777553930034007615420903610732515899606057425524417713948436275599908058805138457251371938586314817948344687524462573515093729481012914620397872219640841211899415648640590592353251588209249923871679361072652498000057344715539724523372731091961307283635992676485417982417909483851681311082487448460588504976529271919573348913083592848138192823087784906814051677439640760091527867633106617492188909718895328512531701772717575301237935099750926855042421337944958326336548514346319601629017121020934402395283825922612215742527592666978295971505827957526186826097679359145451784222822869340449898897162176995187392768705395529964609768234115502768712124195054889743955754916123633730624055908084482597091680686308370661533851983516536598935303694372106853193984237013867316334913841173113376964552880349440177852226197917593124214870736220265215310344387541937322334924930150476413991158103237059582791100964105811360398828827512000252209809171229546215786692195739728716128206476701275715094232360643474881916530046782790643461505431783458180139188296485895625503686223669320636844363611509866584950680476306687645812411166989412953949162031482968486793205767987898168116492788111734864238222242946411063546427336037465477898835892665916749790632312640010015674281248787384078576647889780389050534019035670477814536576652135421743424685355151323817850149457766579285618254214098813493622042538124360969196704340159695360862562514729640973749311297107217163514231232545595850422795603782276008978977469696151708920709450015198333908702858331901914012706457332366932949259293500001647844596080672245758436794183225837581464234898100353874349422724571468892430648486808523116428213934734385997959393823925250296684544745942429424560684362380321053954816664150283117007532516428863855849255518689076022477861010611151665540864648052050817807959457509073445026861436939769396958959547298180946129821819710496406787167289308223683502144488867697861115070769290247798140416766754706890208393193640392372598537141242411118479930580279619340526029450186069371325921289812169243493456246350898541261587705121177050974566552887319455793221618831942023508837364022161865711054446754901889340310391523398452088836652127408651189615476185645922090565433070907632658264278959673285319291142529497331197910765434399977900278483448922855099050957959076695221710793917050487466637285059403807182499568821076244534452876273877681549191517997356643942333629823317808805095797942982894254214648548434078419566701226323188829925666569795866434131290045479492577108833455292828595410326509066149025852584610709444082087894690245023883455568985954315343590133361707642218680505112386807479322199501675373069710137998322154636180576754375272212831271464680724456429889782694698971729990890545096991717925056216934239869225340499581436876298878211561644277657816630682834556160988024680276724118621249501679152592723216875670859692801731681995544700844876244225522021785313922585367678075607596354711638372492819294918261501352831497965372565720240480934514945245649056423798540498642262721611241414163468681386419565203502731193703748534562703117787614270812761308466534554447103452653713795618721422139830589205533009754544154304550444714608491049735948905021743399095786327644579600962085148803886777363564252942383851023524132386728405806761144011812045744422010364645700909520972487858252699892422885683279972675248613708822768200596235235406296951535027531491856456290011159816930436167719055986580416096085734968345151853104231556689308192278683374565062732582791475644859936987793240485110324729500903895571310738735254316108840338999781850361346391332037834394743701941596985688993278041041171261427009945984005487257282459508228121342849218369337833811609555930043228067475391397051930712316265565094067564171304251588917930097933303813869540888275286191925401561884476404634659210280174095843637389752371647713882806089338100261291778227758884742023844374862480832069864620499136910134215570287962007865923855582489294592926146675661574208264955694712518102276320946864470798136467088810360199487779116503282823751345096493903062962179453903417187081943021860330615369631611292952978527439679834515812780783237079407095802412938719941831145003301265153057826211392626140173859829728173207116168444885666744449450221022615704457953619592287426498885520257829283426082592209711500671859656678951146074544259634669798580405706702598525533420040438227889712440082325141000613932260049487563770182482935561820286052410816702295137657471559980683203731723642075412544092665424220268706927855807112716685303530123042528851871606195198879147122249077351610251531404984048703233898733624530498545590974087941105461694620510203798399896716376199246274209516795776091294015427693940026726013271584340906511862928577033920332118820621607895741493630449826693526955569498541916244498934865657806410253337189157510605566481951655197042257360626453420896602692388934647473843550016713777559567673681687870803378637024830873912785641468407716067391622107008474975157370605414447432588206948236313049566466823913865996059433011451653496767398259274713583343682403640471674783620714164637741095482483796361429215661456804247273732008190439905655270744350229250017350816437652110159942454451982614232383925119228613303896728801201268486670903250359727905461518012586580010391533319737886963847310924237086797410384272442355938991682098444796537382190967931034621111744479831689145428889390294141862128877605993734183416080425852165002640328015154917685594822196952512485168916655566078994950929320677762553670404584077981506757396314912942071019688528736305189069484504443566416022633855876620914614718036239185659115289829605145303422868062016366197663023188172782298620959835228825289932252012580730894107408291092206391856877476440793205336511758012617653430263532504195174608422058648050235653679842390142595359695244084686970522103821544289135530468746739664805473152425082044823513216556569185522984453816274401272136081546044868572065657247311873859953185423869161239816590764000622273989812233643254147108628967787765749596640267931003725575522353543454464027541993086067147658254656830028175084942720001841676673663173080397388096417135797813418344254468205413991790958255730000383944187890205919710323791972934133491519614397344306759657976596177746616958553084173491627466887260731156070086301647003989779523139114275384754045722501087006246260945425192785398626803165576814199514482061547085578665956537640745518784956922724889871972475040553231245700574398130630590796303390821220529370758371833832248492458353169982422669027395446077555606051105403766034724913901923445496245522457240788587838297031584036178559091109061086672046424761152662994743878830677226157072183461012805047135671679801982565838232544526147637002358761604313112806488935301369877867946892844980140649635903125605126206478058768039724254465567755136458141111208812971365043057704229344731872201790257179919989043709031432686016709689197031100990146123683321404650461320055798365331060751541100778426984095190331161917114572851096156808540444276711232167697076515281941185531822099876386755202311911612937115252746230697584502833250825634208267978120193638397945403741058538354310393691536064901114432402896512527008837712970581436116966937051668528765037202648528033404568080584145088683594473936798515274575297527467742977554844660705802402863421962674095817853869393117573172499052533042881787064828810226103965390466357708731252995299509552326473464126979497248608774491308228055760710074770786890578756342502881793610733408033240770998500333386206676978356745771114669396696452524828438133592739523188742143297266127170462998858668429604926245140986951708377538005899244667349189462659667441238248538270828692215553562023702382993863463057737112880574299773400888237759076627022730644874303220328349282571611785182946029228393177511940956259468884189149375299395812782603740814965257565698294313519066387469448363712590476219444544859052894787065801600626293703570626707874241428396793383776299088996614972509245995560587349908940143009550394749698518813756055478168473288528755404345956048077973530969067322219849889529630151205021300439007217173520803212606077041136395297348681086002221474616667724660138349239541885883678705844818359683304329465305781177753423231757038839332753813042790700766660523883216458053827412629248646830462153835560372336579197523249521954785882190045756186735404026793836396216286140829689591447955711193735587369753409339528570565874000956456574255201404226356996342205512681146707415175554355243095243082955078113259880080664885736933348324268366560441594420744580200104427690142707301141149060662041063459209922526451904051089251694649324734010116378328705032259231232160658796961179150868664694265590025761951007856824741381723408180834664539754017389295421438500456445172770164154237295431266973449038013094826039471391669268010158466920071908246342093877570915960510415331890375104296102483116764640840222965293086623609076113593764605159468680114099198025037650516483146388890308995258536844407641199432124246190321798922448607334264071480330590044949412099406577216297616264616297919115782430828523527803909351234164242613418175208245033797600434427785439652772042754096881466891632204899743966458614284457271340587006064311015587624889087285902202007717461521437414996827031166463743171695724185049419940240983223813807391601091134295088292129344973804172101674052773091081857163557725913313497243984287802326706314173056036981940139028502949644338455847006651054345242745274126946473777020433917278107259537184516560233500485806060027788888614058314044153835626201753923770124181472796684794470685080143407207232136369764840862030631582655942898330100869721799317476088440824908760678271928460507968299016006047991818134737266984596661218019107018073222466821343930919557168444534845251904944883101711930470046133910450021764041143295533969728590153339692442382436447762942930142234519022406708451978480602080093101686425371094166677728254359575006339808583324110093513574472692859400094697348144617724098555812061865475814789712370447543100215526219952114788835423465000231651888774051192911495492560819933423054699216312944661221055114986521804270510573800581486782830177627480942372865083546206390519385302737924509581994570859923884544241396745531788318326970827877344467527230186718427810895508993396809011173951384653411084673360408385396845167962784202557136617220720311092620296087172816218294511834310361146857110399676410078584936388967103442959382412587388213590220138406266132798794562739548398349454713151724208905781895413881244070309339751522770340774769296022481655281934868788196477143305607182245661392892322974269381068647048549825783602112677140443262519399350839884922578727388756919006932120586963622357335694512910851680332933537236628037159016223412080968566882181216033951524277600591141394437659783467717506361615851560953355795938469351715448755943103834898379203048648238968917758190683580217046666979178828987686458838789706030889632541220573256413807897236061755704877472492296420293543330345765585450145853505622585622549642961811489927137011166946504986375415166161964721214648586533898254762930456123608815238461338319552829602908373960753585233445265230522580246851754527315848085163699470523470919951240180703716946274530319826107493388089186860890427128628172736235564613672950881371658041236610968873412726892227063383438080494957631929789151920858873762369735209428658279531345749919434440134874856031201871488151210170768583594322434252847436470214908315601663258287739631625142514880545193277271569703221205983734925950918910629995477042760382708609073905919808793809582156759956001872699472427403092753168386565929696078864588597333116365765738330935541060383331887814174648750886216894455033713660670217558723172744167831763698494336217280302865515556829449481670316281895526972900839537894349421532625754152223229347337620310706456428464556156162639656031125676346803190813035452239293036112056023681586714759620879590958658775954911069779295467800298026565440334873003252181299617690017440004392838582313555405193863881286169441963163595221018527500193805862787447642850455621874033658283136596312391869889180813253206412672649952037236716588128036545066413813165160049944718618990614479411031692468073472189863543289654455214522598518382225718231112704359907224987728788395044305427247460517646522214092939651543348022223103094762267717868622620844940341205123849998382785217371637137433156139285810124398596087052321456592810503999918661055454334933763819228167871204606796455850584951843433344032310582071184672993192788655449223328215389562403184749501202671414547338717655412828090826000097736021518799468092407959505479535229002764789343629613061186977229255852178120034853175611013549965272761057600932053783218437879377043549243564456306221781276874149282136404505392470868423107338261281266346599738428744650055211193004496985994969018632857029966092359836174175058153837850928820670912349815369495815931929733030523156253485957601216781375028670293193547453635280804141042427862811938449807769238494865028236623800745819624145120958115161639135399973271841798883763226993207410404945141483118274254094109547589016719315726937628616355521896688682437237686273306445051423884200055271811895601506986973432113864953125749350267477528721499256038327481697257384043761885296859614815134227240822082887374954434663839179512229926130812308810049044935263131849345755540030604586423203600421096093223582638038557851209835615185685402040575298933469640773164364369059501143740827557600641807004321462228783120438732570737629285285371683424237861926593519591330316267638042127984893985664767712738808912484527859849281985828632622214604513594869513467157434706768541732405734615039154645176423691451455013061955774241149108655987791870138241313718909245644906333722036251609693264534846363695227518824995987069604643556793721903638839186392877700338012498504892122904402151420002002701667158930748677409124881471248430273444306334107856964390021767897751504124752734072175610056424975127725966643404443996166123934685450237724749834369116917972991049939883607021212910188307383121251136815752217166537153891785439081453032549831244526351011038088149335583083401696563654464827995541435328031761921578590797613441425766597686189512766019111342359265770398195650080895764417414684526902777754573846669673361566845665655190653094150261484704155995403765289498493581277530481613649828695042648729789726164786660665214983391258639490583865097961427464080859665522368626747769031745193824861817567600500455840770030691322652643861160590329551328914431359998847032983019339278527490627118082156296046179129145614118278586793450319192956155904720030663326156842903722520741719472546452214878362905198363269422555037966307620097416402013205131613171681233709350659641857195896949310508171302489189724338987619773382175376548872876490025186783233137061387951140738615498535324426333424056838761842021549954615901947771691821250607787544957200793329130307961139392291413946433730335718885914208130812600685377055973643762596460544356404214057100033906846529290458750288620499537769646354741541842422001433113675555875369140453441528505434427048875773607182554434590908320361874825854820322906988068537974034168146222363728420801847787377711674448192349344655442446427219576132451967790364495979516671970041159696077247745039533425955681124629048197830225260343851266876722516575264258586215747026516051828649088414043222421724482651290606638855481369256514119144411891916623696043572719577574994679591667820683620709950453543294383612357937737557840042380789305466877897256058656822839631226114307928675551608487175576197604262768328121758236547741107984580272398653704986238920248197300166716322043203553859696526260348906304674385084268421660257307675450443744313455293604176301724104377618606031978493635578517941597175319279189901812405445065524440408530255705655925286680017236010413417547784042011069224743001785483380143988787443112549003772292265687821608237205910501023912539171906176299259095076680781691743239966797913723681794927855134646720606010896718941491688853259792811922502811511045521095153390935602192649285954938930705465332690128264748895841656510373421819968987525476245012200051008087180943404935847257766954613651356824418016668775412594764222814642743627168209740629536390275636856309882090013178422004128098500320735493047586896328347983166276500140814200918722485549435482830210063902051374382302247882267962128549665937659262819958852231804439504192740700850275628735368067928162424229732413807749750502207836251549295899912801827937098874541451781383842100122901544059441623524879182835654636705125188887720892079174216681475147110550523359620873149800923571927982277964113051498820451334220058874408846087367357865768381603418787189223888771091944764319495492624178299768240881068086235304631403477193315265170171986008514362485247043254014446707758390354636566171960417835036645216149586407816478627245544823868232536401154879431303148145275108350878885870608532844165893315901997781978755246450414884643117489807355841369309242068482371629028704129020040201895598600157520612481383790300702978532032048838065847099089440264340399955977583664334487653163968673321633057280594640696236251135528303731888889627086092384780814289180727893621247018511228456850429184478912244329016141316332725502445711959311980662554072791219727333832595528581606243755583122681479780863567887729471808175729433969327912333456493267913427636242075068991823701681309612680433065541057697210357611357283061176428239959091281157399839875923087098639417553361278241580878621181410226356956048116924211466808062419628587584353830480159093838672885432222306949466545064233686683900830836374538520406253384925793585712294151418756494976017653588496980213268464325670442879848374815907772164588016994556537693383492319681871141732720441258449446041041375897692679286039403232766362561767811182321470336346671751527557159859959070381154471309755195892613385938355886379785613392031267950234609523012899734103601983128108191866029230989332690670342732295946587747595357315807812169804164246501299103318326752743561831329941700239995731487167304417573377110090657441034692711533418263508541026869893658099788978615550268985826968251062536185288127097637457372973092180491764167340706451410599252159887402765039914910094921272265430169192072582475074178169327898305323150275606335121484259353596112753791735033025629508490880965027969541746833429127289079361280724817757534811690567535604953574912350848717785376251880195783705504011833918257296125097154423668241276281990258902074823645097597890647665102438954427460701826207488338826791643231901949706763383812342380604577837428254399824797858715182597033087883971398349178643907798874599094779795855642250325522727649285027910161128737265541393999827772396181983592531299016320127930005009059037738446306151364872798893603608102939082790887036455685782538106470262978839191788797569251690967057966858136850057932541294171551596178860293659558853087233705770673585873648055431209908468500123217791133563191529916098887972381923725716373132482600294634738348597972691054645223204095108469913631781751442056414788721795374988802713599100461968684476177471608236899339252206680227865836974739210377954206195834479765653571660412967078563243404001194782003323315264230069289687387788714079722341586957209525017700606893028913672923985391999317774497540747346465723360671215695223244166470579049406394664257082344561395443920322705543994765769064053076095572496011316424413487656251512085429108022219269374846154643257252130426295388107449258191199979939626209768070075054254678524588228482260878448540846639818604720920818281185838435912085651197327040235630364674502972012099340816343098338819517447137519652122140993489622868196897531253870557381741488800539686037980556389470365960176767562339489829940658331732466848801228321693222238159388537514661691982246867772267004009374808982198569618583307612671615391129995465362196050270812256395361690767015802623192545117393886102937984774427021192720288852777940772871664213698741743055257334016813057374423223045576229723921428702393916041915149215772089913233402293491103815737439562823737547980689382531357860824935333291985600411128725747997176248621803469723575111513106752713555796991265304703830360981700015502914270872839083735523460428027494641065363148112540618421403892587133384627413911699753059773277082140061208036418814486161232701221732123660436356573422791030540673700982218846898929084191867751577679968062187803957101391818900047287820053505883827905455006757283137832418581923242671498438454455613590924122309799396373493540759354115172234523072006620760456273566464428697063948592449654861691028847221103872320597720655036434584853260893667827515071011750236929485885551916581975158082320559143031645449216295912355598920262664446643625847816766844293602148247473866343714372629270510477835622563671355021248186851844960875968174286014061194531777514562865363795708226845686343112451564375641793640334313989710353120127159393158634641575593765171923260724905319411730657955650886295033195126719284451735060231192712448628551186411716601640426319610434885774901974966322170563738470821960526418116838999674793743938473929770670493582357370905543629182289690313397277319912083399396623564793747400253349472547102638444821212183251067683928546732282714837723001294298035852840965561674064445615172293757845947850299735369892969083552510142913934296669888590002506689373934955378892646854310352778875802978556802354724269643813092877233590401147489485826886327872763542586163315162489822816258511206877425986601002784157357684866707174550347158036597485638465070666213310351440094680613802683975658862748380648789946757291897137609603673808822011132896541987962657910362012220532294570133695242255937448243971823450962611039760523439278138067076415018024153224420956065560836482221910583955925416468387777019191749073494241886026031551595450797845332949583985592084647445969388898169595883793548551680354691586208297490143563347613486668793006560273700054255127724674161156532487370317534477081200734342887410248557493472491783914206660776311612981908416443916926970201879309746262067504477083465024279417747551201093080079907852195735372236112918319260717594507280452721007981500907653107903006603243881913494695678407354378720939863486634011865226811592590494488040284881707657369781091697810002115670232829015371440518591048730096419186582733223073377654222374848830860720819045431372178781048414816254121192971385843424451255425768333413525618739422520679640413944883621962303854122483061639171880162823494628688443562341766037405486543625594177327278337063553903098387681462640795514910599760240036558887601288234544784901928996467026656346149963648550364515436655368431406059119494047959304386340529760810027351975858114329799570264296486010455290936699002444739103247319477400577123673507312846643978855671007195418064987466307766423925726814629166969564557730518569291588554346370600836858404510420973587755629478875590583369092196700001148421760559792480950350210176387338638515105998473178354169576415876538022419526504958905159616042919209827277885523979970397449909952719376865235992168154683528767248784839762735668634703276835800006378085376003221133850985798993907542400500376925199773313492948362418558667920082431134273204678823982131094013828393584018206923397339389614999850498662483667508100599375205893579226754850317026193978834371737356128528962165550129891147944981004884820624750994385808984504518498956162976724889706716869451753754131616382938239554700634467374713599596256500882296341686781583256477042924389431083511507931921873484109504889842718935742572721181742192721078290333382196927100249690157401308097719383312381303661551577779572547618631925060581524314823728762095676161376643039978260461549623376826248354800837866434193195663186119595744624502173035720666193326888604551885630674961533351625009458852707673281777760280875536158955150175921450472807303703181493979200743474146431227485278476735735141153052232589693332347228153250295251168096404850556221427236997380268615724095052806883706576573283514373346737722995285020188822236535330632808384211577738838091252295639266805314962667128095876244479338890885919541323512311704815751329128816401033511335391923451648626776476184809490100971681054793065316962071577232872132795246603756799952165571969310429021885359665492386691388055010887109858339462554366048406889950080873398867727145504915669902855285280817345613138129943075725577481310362052704048706974134838319253002770999553722954881043304829078833997529297138935398943862927565583028391476078446420491565331185856389016608316477770798291932507802758883000321821025258819378279147673283479040740610492617349269119671731618842869044965879944940944627763932566077630824191730612091465836281436097167263307269950430940689341248112440223399902474884158222841270675602562470702701488953988019838196297223014916065545289027052321074367195897015644244572604149985561579080231934229199315261324807239558759420438852797539484847404201627364224164652486064745372087224468795370863583182882747852142112461257633248573167312404412775556154926600875401498511750505719359480587301927996282029928119401621241265634406309680535620017281740175823007723201852623913754517576191317649623184104679491105117729522585083049131328367919612878137601821078500752484443613108862135690748790557643784514577115563310129392521262877213658802248622398659968152771473092381171697135191743388422246507556439860628306582228969105204026792392347396942691868969998446015337162915681409711159110759250107028996737498411079138603651217434419752951687203291813832896609085716311082282763652735815369150892047301824651761806848231945497130897772874570925697789171594805334587574040894868071186963637979777232228717189744284443173266748453336306626866072145959106762381878733448171147619417142962178773829014673794187986556980435443187791767225905201189595263287894364982346764506187571583793050103226781500775973940337174100748452799188318156137396664862258990707009049482968611020865811317480537080155955042752524315127410340182224647890095094124547254762570562866309133966992088012544355829339555667688124606012303579474348359031415041571830897598684367953476399845345991765349421517260627499093866268505858195229248224925558084036741879911397274919345074912119714023405680000463324469780160450618074246964265378302388035854631860940987532320769407674132640564973180012289191150083619156355039077480227760925480832751491293971629640289402163605471230721313549624643797850795049261959630686331425684520213835182953979494724256395518507709113606648232136565498280216124007503570014086642499694213229291609830242473118776299500581069777849091250311775636560823724218850195033106447260700043896007573258841110854450452392630004147218523520973177357471170832407028853488106972365579809786275647434691230093392731798131699457649921733546807151270190497413833873273254104256162919398157980374803915451556560136053291094600992273126299323153721957330980413041058523518654711271481517291913234643077181749864170457799754618890849602224033223134660747843518433025391095882203696288520963615123069191351646502420802473395002536923737992173258056304645922395240371704257110167915609059359449710400394746210163197025120950702900279360052285831063234402512901099606780987274501999117914553036899045522794397315941001140262276621858982086156639501452864865636750350451631052239989508060002924836445847903266234586728196268388935710905933902144930342976998600123027341747959007623956316845715866898569019478625179819582959754453457702598026487489371092486301944206501396234664248099617473627603751089816716672324024707060009933265202394309315657690072131062767056312985794772756940366880609155554007316522585173972316978337084955500738644621540829224998031055598507548306029114006857911538902799503054896968841982383506555560667758294598410574076672853708105450237711304352815783995202668972800940385481282861631473047499087968025204091169381648152777636236206386375659811436527794960719854823263301412325896845527095365910771678294029043403142877169002003230537464019202855926747126210543967993987610015543155804944172854731455749950785951532070061865853440443931461185679552425077243422560513333747273923719248839625008408390741245581742760711457826481046853351559214333340990402079090626655608857728676991385492740106312227840542294208472532386683829587927704917270612273091221393100581411217030462678176324883929235372280883559570339799033141984501151597407897977143011332870182667990760124563201543703840085596363362891512489084208722328336581066697791162237700931766907717019059457172053949294800710832669790675594443403201433770967339485421024645301377070316428697297940631170003987211371249910098035717360217850946854330482580388036073958931135621822785376561742987547166528348538486328944735023533903936147016898607221952615870325620370584460384311187070881724594107846831175312689299149116977000888006920176040453236329139432778538982682635773740037734447286296342456559329553926489394613063442734692078175520516021006973310262837433227091273484244762433960491751120522890552678810586494575310118073713159630146550032609120976866659723901479920370679443116307661690294038419371572521125334467706168262923594847669819683779071666718276812280134500853654119256940621557540527885977542111765383970728037872596500054296295315643097475594209589786294656104955178402234299867149207606960501864247514393209063517480769344626084293906499645659438657287755664657538688162945389045201849914660448398374080454674816625565439606775939618179522166842918930466503200454982111954645781445933476367389765444312240246426334085321339426435758843590203765855458100598055170224384397674692265016600806285818922507257076199864152156749951409970479082585581016436947791016006841085058209619644702188754014816808237179065010235659265367791330819080091894028841393335798481574259240594110726083156732171220397022473951869605879261497646771125441232996543014974832774808292054092585074981928276694031241253764760037561108874150698321501194480473182608618895464040712839532810575545402153400065151326493425391076304109098860024421589709380191232775603364706288998882063953890279242878045627729197399282799123816989053290035351458798766037230557470834187344278173655317008127559265515468960223868732342392856503745276601775040866861632237754411916462611779314059396018631021826189877741479506986254670593443764147683876782074122348254464705108420476400739416142059818682895164271235990129000606285161466973745729279740556577187211897391280232958287044445599046156218693063000733979864786966094564771666501418811282265409672318557758286395621592957063062829379684608232340780326000525037149813137830316366023467137274310168593620838685758969359112197019449317645702603083723372794885940183186057508960146091751244205544123260606069125436009572615922260117389269052054829247274461909576469870065132229578842843960626711447666020680621220009926584837391119781222224195854141660015499592424993620891200150437372371994865274764476970155956831745934077906142539638032403508736344211254738294898502094346888113085896001376372179115642560718162104571347835198251384093232207973288846375273202908550070558952029751794900927574832234024535814960191139730966480587612796644744222584224719812425977133946604335908203080698296035310224129439446942528128319529891691728364745187487153949209762335733039820194560767136877293607715975652044243612251316619880727006987330676426686438819300504324310045289038149224935706163552593704685638006832999453982712395822305660532696590899108831810909728118138079334486714868557285701401600881819371905716423538773365312374936501339123162221254815336604021608020954309955572459253548600185423451510351838584142489360716867637797117652513509139948929099174508322051407023578347149808003292092955577317494441410018946132042134061635533404698716965305900556232774705052963210115633811238725926886324956083218742413152975772808902425504299239051451766049470241169003218756050501230139835262961127949677802388713279868420820672584925060276166901525716604968174676960833672381824921701901743488447069426881657202587918208919513857860877345292989499328407763223607989317321965791996694323363614462581996804335756062830443815437164039787217734258599511131879537059949360428305590790830593694004181080577536307555124528671084015257017393816000112658015355893039513135823274025203109373591150248830172751379897149945330174866630530150253314631334149255557889011883001447200457531135604898005440853104300642264517688808762847559054530611408663906798953339193473573319319814084023166784240472368015157459707518471985049664603782001539167916282439957320593398640047706249269629839366371251658825318316144904537001185514304139105127488602711057479299040060304490159886995250401362171159356937601470455242972845893815951789424728673078377184967002900802238397895145025143671419602041786675722767965624506689171472072543230873428017379497485908591735974650278904893383719831028627400903124947662839858025119211828929750335358126887613693730412177154216469046397453973766178481167945816465639134020577549502328679374572362922039260142777724514242399082696123822146112307978764027131375761082220470751405256205295499860591265792781312242001222805480779908748639972597348970036974831387706933261593184628985655945519191548312075778730513853258720966401656061224728072851819568776028787357671473390906262089688976372573099665661593129514181452139798643523071010676824145356502610396067716538527369967836839224388448343195674814173930624825245464556003883263171647199304077389162530487416366294247016151356007297219252868383023223035785357023684229020365083001066958708028318736360828874810050607945338471858479830027387950822823120757538586523384939269241874876321737535357449987251178708026784180069584306423333598877447828809504241652401892624172760483837074461694975712462082053683182290403935565029863667309886236923528213348502790881368439513907803222057718349121460257824187536623913202014509031848847838235534902172786693890755945003593467816673147624761226148600895542316012359298234870819756089612776964032293246828673281351235465484284612180660062062871212798833618743704207130407994337216011980832196520068403245814540292074104189851298637146597022120575579563329790776363239528508398265490600422788088453209490082593850854178919394226932983380066390606703839041840813844328297480449318330811625950631267186675065565611088272759332914505596729090366531147367962798386400708746810208006764087634969473325573698629994606056547862580901720317931598985085209095277886962554681059619138173130645248045391571007984163120107704636373206284633881528274874169076343777553269770102960646953171677091396377943056963239440458493703655548761271783013677521048330671632392922220400146851424440360936115283116868275713257938984613860683495642243365802146879198483274003746332533813619141442625890962968054671989649635559263999508724445111349303971421649801237128722352865153235965975981907400219774428079759275856029141655486312075838027902091824985369597048550470525837072687431081990578138444664042527903695895349010295731981039344002441229746276065533438321929899232222603019440736602232076605608352422101842789658431784805806829042486106785752603945531242866743095359826974116546342613055212681887427478115751689730156239468851136404057660095281283828628121481950337111432306719700683672482066198056503333824660148837396007570566714720017185491731924302153131821871153888310612440672058613147363824742657372522312561959078781607590713335712025568904951443382095863057451419111405680321911428124031537853546647708810376324547455045285038402728235938265841006315378759095739087556877052898123620028052579287990580807422495981922079258181193349442303643323469126692574198936006684055684172638597733372775925518375436702937277218391661526063115406327822492347286988853163349842667197976024033526208129014956700448388861660325563125736484322716075034037171812477346552378797560334753598134170391079196063025889042944031231942684634398680229223822967886550070678213281477325228659142777156740430198429970564565774108758045055209142080959801989107150885112643507386468443416795694406319733870648221637364847872177753177254369668202283764586346869718715599260888450513754636123492256935923616774104173684649818199211700449352623632780458113392580614678193527794556050516238434237915686127777993880215093559896832949215450555828371453541001902921457128303682324005749178344235154098778870122026569891442877778356237582942224092208441856800808981974156365327589105323834711262830306681707634497118934131663406190709602321378568480259859275275595857232673867144760265899341146532202193474615136261897915712191091315568833878749764722632334761102035846558400475170613946037492264195614263477042310874956156044578779147179885055785673062969319424786506618695615947357350332958993372096143431281949356555001679718559693109341119276907411550728484913244640063353819044748180363646755494999484299123091963521746714272747016995383218093115851439507847365754146342905773214010169805218215267209584000887892620305747343652548192173727596118678371275829145051329187104349569819874235888591997957745375569743951763442972213973543322126367034978165441234139784783529474683070101541691617066532439184840087605326011453327874669266839859664027185555928836883863163891775682398546649389194044288722186757913220253343974416819263394351388103464960697284834297678471694805886600572147611648884572883567048031071515725619751630215451764049378862995664594169389516054648394190621596040196143302611708878678061126932167720023256124749248566154873504599273845881767815211410511765681716215256057124361062196721757660278315306217389532116462660576251374428165464715415133571080931896274421659234029046327100132071821573492633513761405433539140361204862328684858659624203615616220725828393261501236512952706054002707412957036784971705381931476917448762945429074551705903010917929718644926353430610662253972749985879625409722988839884137748824416763832048126920838257997912952330691450374519377100841933690220043489203404456945496080739048979575732769630432376086853430480315203833283517065811779751489382399249792676911984698529786175627531456897875954686107394937920783843348148292750171503773516081009183189963696914464591843740067207180380718799402926742231470693852774607427111987151345570987394327970440369153825333514390625096915115852976318792330876129163952309300209153193017935706164804481562674999178570744467945479042619857431639079332523052052350335963842088543432312002638832473023315563438662317404684126025049038616199973943717640390963845826096228382854836235102772304370106248678523116024326126259624247806405474268685680418524589458247035525923773372123843953770825078736838011359791753989459638795209790873636844636834755155400447814284121616295013384522960863854293676360792355979057931107421662869751273888863482021964982786252376370465305584547322145423480542503133735330510470581839660965982159602582348249607535936074793373253359850828660077414509892524329232857658139520592647725697768845175751208330554719314130346348284189066863296635231701650600442235663047797049691383167960682404432306549541276885572801347994522890063282711673436483056365880313499672064155750923878262794487440250045980924467763183053534751177633135314542858132910464205632834911783662637957741827601079793434801344302161695809136469451170067746185907037731094381534877046615509277449227995759626486300233001533830178001964266688684610865237789895086127635165072772638728330371161645664051958433153010169160066829209105662192206677566636989400412811279102587572180602675322666769672813217661472091155307713984309149308150055541670770843079822780976388512292601354845774306767386352117380233861198933777452299159362770839368407021918894963449797070470284913311287654579403968587340778097845153681090006452431848460756581457665281981945355496704544276238423703175582551896114202756970024309558943035495309744689279821586076531832462994018071721985967075693556344305009209237590261389837510157210321819041004688679128824048653681095012769745308937913435689884117729636897399951375731634136054839430944691265718846247897064246111241055479214654279973697920761880226211903465798655940867084876382993203140232671639031754821151977145066416000223562293382952261434773537315243526838133361091548271810525497126309085714778780284964236217578150169789105838647379657981165928253940408478413381121444486211092011066033230755543283665493582532259960698724310435591578946425820249836589438502741083012342446095903672567170367202643945913250455851868143236227390506776466313436839194681814080993713647182233895677034134501289028364252282222670339401395830935954188034316456014845016766422680717233541995554547176249265575544309432773827019783822410374854188318565506057622874680559738505384120883671515900346780333395969282233876035048612471136529308337343020439978591788868293952648642791025072341842970676199230294474781993250807697946862457308333623466297429317678721988621246908126266058025735368375357943877022119753368785474780450972905016484599254912074527034195467026886658348717631075171683121133986386559797904667175217714142962843880841466751777936120869189047775019473035747118439364268259571857257969346292203098280686922243151791983325531665053901721612568304232053745389576041156922992522552095984752690099178176188675406100700300042664628715269727633280886611012115856038994989184360870755343215698494065459412737748596013424288870279008621181810364483373318538247146925309320163874432188624743658712802397186113202481446996328538152815749483081624420604866303292633511061292492827540407517499821041191879264881633367515839350394502931986305434294414869409324453571622403935842723490610183097002765533963494509910630403808278656794951115974497010546423640763054112393903277857687480004105172861158826052263217084959668206850976142190047637582186492276726897548818357201732821218801133711193519610131780594576852230559772935689482295743412505653752074067238354748889141339299593961059954463252661137129301867229571209291792702851130748234489396028938924743500547004042741910454962772281053149937906562239316499984372357656321607911909469660295530848234545941630531567183168226274661443469817023719471222069679693298874124301857542999502372524623265459785875780057121541800097801073929236667202655542709478478956524285859631661078428586267109290220445524219400762768845459815259574495234675091372175401964035386256934701515789419011778281779034528577669723055193681740957061840061467591895313816098558079637703813026090986607189712461514095579675900577506468859355147809782811661134842772173863885507651325450705942236672666804050617124857391698295409043800389099298330869799942425664927937231919249363800157469093009623202579587568872734461307297243149971742727241129077167927571229175032442292774953491315132733457583533622350830961981343303963220700857200135380336114755827351580209482290199685945354986802965291984271061242615286335904224751097899875742429067744592620104448718424353180508858566269830570659339075902843392643404724333345585678859227893647616442829203654403460931026647608239933618580684419717740066556030375498524791009258192198331681572466668988815755440309667901647684891221742255362668500718728838313760129756170416978830562786530062911035467763511588077927723477675673671091281890511341590580755862074348275653732475092725386412134763204874303295844911568248972717573693108527001340640913282567410659038656570029059382586888368824831585784540804425526609162413244437734558010911106695134693611166722255532148219064933084493208488210492373427103344024046165276474137878823228970006024884717143785934302371588566322650736171283658298122508785414395982252078654906071548085933452330891770253152896287545112748607366150715961175247934823123597563412501885354278799205779062304569956195027176739869554196272577883458427621713548477416094863101188303155031927167227405089566721949243891279856390451974975692579770897307966180538255539083916662841975076828062229486623767051247208718342025502241077828733059976475355160748956219211497890283826052490713487915752432028546351922067327904578993429329568076967739477366730073931329139603200387094183280921373325234509235363911782069615969307365873485709351254155273820501802276717329664062690433353496382659764042483858729572887948170172700169585089288429354689347554610240874223547292315075764546703615938378647831261829588264633718035930658264554796072335495128555854734237496904345782887388268839588569959301053709783475857456633371969711303038715045602306262321149100441162290640781762555977238770973788839986039436041367605502849445094398749426080469173180471110847153459960727615076007891079134613550283025332339811309203198889247747457378912706210354275201071186457956488888314089396828216391238024333899846866193965264110792248485567195322986075263462439100852387605766620950018873319652391818333122779783059112829239603813372771143697286315146674181335482839497618871769991767957452484662846379149090945803843267978396513457390795472155592943846235898241718011443590956715528071692582784075519557370006786907051037856898004342052028127550141316014492194903950132360636250903677742894570123757242003350719072620181800547731348351354166543383064990045453587104419128201427478067696856847281083323773741057517498569036290907970805843056132342687499480999457242927576590097414958710124560642995902951038272004178645879626649004535509946186740001282784445252469466783722671097631129621580939924335085390061139168972324703968744390572577354228174927929278202915141480087880703712680038954575937778909408841643292541613266621636018066714792341104094829530205813030812801190943546309685182519945315375444095029854089176167845484211325497384718745462603050737695870537284623871327973496421862831545425897492580788189626714169302501809705176288977632572471723798846541121316517549091366524349048513539103815948580143290246119288391215547553666676601759384827554478788934874639904389823973459199872809345183152619907912360484508442302446670837597362345100506890674046357885405411636676653543753090451173333486586667093195091033213492727735419600674167519756182461059162202197570650628833652456523423669699128231651928085187115036500027786904363393554436360673384212496969588019774860394959431215902569669242666763064049512017363594067058758632386618554466792960947834234877267223391346730868262836890885425619445672075938197065806371617478043984322090698407186945042769249795099166538016520106026886481782612017099893962877430230295091154666102847644334713256005454575009399826533237090432519235325196851556994705661266740763429157280029880883294219109764374175646160887263447101582914021107497958237850428438143668165627913894016274775571642939759095688192468698454640822362682826916037385640565263937162554293946352090559881546224208373779247878188362299938235014681912526275680048969384002867257829023754615577919201062517156053973710413862712305501618147412948479170977549093466420539982222448190420992468334678134965743706635664729764831631096964592172256700487401883291726612431399360259540014079601785277660392139676458785612070336174238990438101769279878962136641737430547904527151441329946428755580891726673705970143337282546277405598756059306684794549770880340098230128631976983693584347617650292342001281328707972934282185850570163530717702145345070864945921533831788645900869690114814064868721955249651510382045212984439119214800322807674295005856527320317939165437080716676135532719995573270468208408926271790340891279887039958752863631259305337365296915834704109758072047366517827935637263090593931006039672679034767508366270311882282297215116636287520668071940011377457967204416113497399074083376171327373487267209421937250014358363831060639134440677514046187003099282121451512435479459535548616033628248574546519396895640459037643311507994793540066595557082650438225427888483174664417179215674707814361841155385493668605602584063068195197119554979898419856982336233292541880121311379872677570972316336031090409308623943396489615865721725178587666952174759573453526452969528785207080269873686253188798787628641099116838328350316429324998272634603045128522355750962220296657015473483985377419542243483954568744591744790046590058779319755763349363787996543232615438316752348717892875249194639182428902000406010089873761036339347561398607398860382146004939810370680724666251387127200361230097143230538226949705123665395939061998523488877360769482797416621292399714515219638498415696875737078143318905252256192347978250111014409135334417062492597055568052626118743089869084144823171816076328001428901026175429049309589467078691831421866724271686944697024755327002224298683491641006419579395112294825192742430765104395433021098542549959410082978430355846481667122406540825429999421691571918705716193218535223464273825635633394656514494926717209316253119077417467107971870765793609821703590377022010742659157726299520876148356505274763119365671913024592237579588265519354471547681285951040761903516930844543492250976897357142783620313688341023821205179270423141283055055399965000586305169163450016498493957697515566543994547544011676350551728849450864450108352173769081541817353216537378839907419440019010159995553675325294147073401029975103751144499785778965823300267050969961721234239098837596790337907056855143520408095495123778394581944456787174681798517601552397957996745191660968347015077813844089391298236664979193288805079424816418308409117433839716944902651783316163457231748081792388305041272551829197806591414243889994044853249662849941529500466711057707048188441235255678932481626902201316251853153551076746399800232731113589584066643458285322187502618515451373146943288811961908066222407039458889142977968983062503160854287338581436444675708535057300837050901019133339776055510535611635439377190296533364192750767163643377771510268477784523156863706489742879840218601209658273924493984209977396007181004163241159377813592223049994614008473064575689472738800909400578805543119994081627001028199005300740635147914235949693872745706545543934535818073485121047275173934058660469937790250165719825035337966085205635470500626768467759317274883660681503439744734054349242115387985833096315796943118442226792055011551224740548481570862170452506884716547056086561071908435075939381713100099999104497411025778418444179334513326172523607397105000331388190407313675295450709863280358055128624865944869787614735974943583212521885277895635014314136394553118659802271950098518380085378466519267623466767715724531961758332866442773493539710681068677438136356012068510868261422187122490689337876776327530305180228217834477626716601580357499901001180297023673080936982914571319695874105512172072460835074987740822314105439681575497489026692656479691819381288681992244806637862746217904544618272311155410072019563551853608356739372629452166065547159407768743427965643458294478140150019993253871147791007370325848137521596973966040914174639603159537398877457059438035932164500934390066811117685209775105474020895894558621579296750246184588849634995665363639783873029432526306206494419485192452928438864636724897359999596462138538265853280560794495433740280851354512101500880528448583684400056819232348033800074464897902632736435201799424620067137886063567894654270864973930973348874991047272289790295869007840189543229665670804464761301493412703461368940778194750017411198916436952386194676114953395781357691245564537716038953925561347842131938339661410252985571232282057028929106395123306227004660622950848654499104515254842604778215821332471944451144044335067446215555117606053209280806424821256433411126037623747591197473819724186366509420921813726978930931938272497997835866307673968009717753039590299496052130906935155025948833461594814366984978125266516794948149764391746736397430868476798499212627348615875714832232690627215329200105118320020913868273181481830902654456777643501781914683990295468722776090864226025104308102542490103415476710029093110035392870562905674453101794140329813335877669670603598103170567732163040475902534542756123814825129245615925809210608035020018496627450957935950499261458747402169656033006812018074064750569433558075158193710838893139064811971388646792702858598503730365888085111722082632218123837778855073008002868432045620843429181637146712266489660816533028374582535588601720286946777225716482310776723764028479540638434342663248405975465162843913732432312586082138066366875541908103860135218324177110360815493735611224002076391322953575687005400688009513523314339918777697621368313796148759246457953191726425289103480239247281449747635469708944065931450172859286652892002961136350013920801828811796331651614860093551107554573653357710565910167646412868259706411209709706125216708555626054803375121460144521585527351281291151648234332520790841786974474491391561117058316553114194380836676043346749906483502809724102160167623134698155902047670121123726582036151382365862034760451290125068779785987945787780602024918958334758406664345218863603772952592837312563231815277036670525069838250549728851083169864275692996754858989881629645528019503020065581855659867964236628017061658704245090912176039318070040626038262557436873199639341662239559776036099416006792380288559458037300879791814854265729874175576577071826843689899604482918562337898105659909277296005914975957169080025114405313820848826502853221826087595765238407606083547774700866615134160569281244672586491830567390545388661193302015918315931629928573377877016752951439440103675777379749599684165852187756961948249940775381923376622566741134992119749904627739149617507463191222546300955534397623954603378753133834537503708754840663826585097216485200395146114670342273251332556841867590105679375819510834504356389950655034392146973335919265674589032407054389439721957897258619974458199190874165664465390048025812379166526151036009633384309052964871524639279627949828507312439226825255322913672070422315279367527633011365601654437673079323369935103392146609283375685282725744641414241060241505727733706873689806660893231417868364089101688996618151815854165724904240880912173550610913543159288329977085518020854180034983316130550497883565309599728646404274328301610726666663881505262169823497191305366134091691261259268283358750391661111129885629974374576845177298873514168449568265854834574880077513947285663937752942053284335532150131118749050305945365443522805204915093292148738937300305246309036554389238934303355875373576177271159165866908768266795200165565091876343601504982054866065561964491986973840588146693100123905828614358751678910728150246488671463266360907180773284435457815190293752906939469379145689195862548867978289970822592939728150904157634603694908654058846325633551181342460395336015000523030767301853718340532648453265782429509364224845856473674253779024375577580167990631577700866764846651789688315556673095342630023481963920528377319726748782254874428555039304481443637247241701426268903176439876900851865831596929361044863361786213793642553122549262941901915997223704011998862871398408166813016432209487617152814471061023033069134502934804039585910340488458855046375332341534877621112187453770091830423553685867199528707555256507969417458439588909968475101164693433987973993932625043328897686299039166272339315147431317322944600554715086098494794767287324339853043442303675868204388387570902442045719852482268286692902491623888278691485070422023953139062662171251066634299309081021916018373515925362224033682334143026148702948137944693882484382771211277806478328841213514797533372203204313751595097856882770898156755929677883629883065710971464184639743523971362187721122122815197656717352905661734355122675757029949603552016975319206691661148228376563013524127396794183492722836567116557932479282445005228199694384960419260695189849349536726623052987425617253110349144231869143997760965913852520771660122978838053994593940881394473915998044488124980436842638387696057744900824726119390363137847694095517529283922533151683098940217311023112331828128499510639180280069809498760575508090155258538301277430405396758973462923363319553388332990470231679912957812315619104860216644255069838545863550544367968096487599512464133732813703236316263241153027643745433445708258777706349233714983980498111879888611849119171494399267723737196797112453063674867002839820125844740288898116289817469251374414278917487229559598824084777439392339150397865255308697424498687611280028960901519521121679642218393147418012312529932504138234530128357609326707677106222316947093551164835955587749345410184888256844532006418066908243272575139579937538393761637402558098790418832478293571770629835539850226703793397793103193683166409109135450094551516865823826857957524660977625815244071254609909301434773713010732353629988127198817314335074137764871436719602612031628934752614977767374311939504035384782079712751995411370634780042267794843556492599221583673986605327229658069843006786477817782021598212867498875178800203548190180549536648124914804004469825639252985008213279031863983187426792337721370500001975219769573563769095744438024832290968180846554122072305978484642819768579105674815296296966356658774928608892456431414828270932940157540559460006487984786170532457056995546365169141917715133842081293511149973414092646577496482672579072697324784875835012581398636443370050095092225557980173502349039937273813784286950595657025685031029793533073939417271181410174821408413504858309554889571437420995813038069556351166709069147897097091181483192722359079957069461591001378929638803412692320578733868792313584100855649034024451573155862424755402876299400346617937272433032525769528630192216176859371067005051418486067041892802006388304640944285302002634116145160701349317433134797858524341283645882450466326732550476223851513709720165466050623300395623375887062319274254828492758865120288290016264633006380600342153030236908845812319663825190449158869697877715344493401455341922575589765445273646668697446534219594630715006633050988313274444389055020985990890618535173352941270771205436519313167423678763264691464342827910826594817463324413245357193489121919822520963445127721824903445680646214716101269999367683328846360561578674042682810651257982786896729883598673298228416505874035241386413641720788926472125164410724088995078610499890195366045151063988093611937087510988988247880673001708637014767167952207289513277675107064647890477577522915816994809154471341497105187439446704603416759153471990552965133583486055257789638003933313021997147381735390649289201208479073777886240002555011428625057573451268056852080973225265826106237529532506154535360807533827572406553397374845906304414537181847277626648559384540763177567153697466134326552132807743949320369154944970008097353109059860533687693541335669249694698940138564292630208884326945528816712037284727851131916233389563019846309358331981447086456114989997109289980774423344189058841695604204527917097819505338554684701234651339825886892289991136560849196956027379627911187894741958555489412922631612304878637040495250521001070936626475282726670151738255024127937283828308855392551563800001837984720821942950144399471629151220533722512022902997149313898177048630461605564219555121767931136499789442119147089696978690014112504271753554612932620884679158435964376870244080718600696228148678717422157152300014579299146797125411493486840518400297367094396463041383599186987029398289860704247312020525731435234515067981587135737405739385828992664258187611357489678080966044232934922367530873940652768365639594449933047670828049890121158175354344237418248908745304837445392478889688063696777051810854201512454330094165455341775320024280896362937497184801630492113862589226455428178114614496552063433867223604710121269699997610538182126006376109437731116018477418972003613455747856089510050693952724196539149563273103416895723564774625683150169032080732503819843992156657260607883658076992165039488303584394215247141354961896105096185333648188195270948257827897259735236300464520027495804136325740745523522368180796161719410487657339060275621957855602099442041552261106343278113907139203397141255618181290315653020658545822612395019126881931568779109513171505308441682031785855940451086490088980742057115776523045244908839212003838693642801340894463751152415712593334242543215886955937526193023854377026166301503904599027138749638268886122687014380083169636069726886798976625023967659734048957161106315111348577756716990350159353578004972208988541534054835709482612173263395900253515687324186315329335541783571591883721226764152285049721880366238344048880485981832126327415610653760270322221801153249631141626969318319127887896037787118601364219765121809745559622633125696048280038615605843284484912862817571487960634324223561721348367874147680364806671528786445451418792535764773897954160740016835442403619011715313169937147247593994744559475759765775092288491673248994206547647071950065652920907277674487927050070814943466169344461386970620245306248242812486153348560429169070448948884217149156344096590273067326323307552348547254367741846875444255320028287134507484662584669239668168710358020694579005256382397195964117870214922601915865147893480116550173733326798578472378224400915667837915128712549524128029806701910404972889893826106034053939280287361789543100281038171990747203614908512911592963366808286525696617072515969259440040258210721324694820838454085821128390600580876533855432360762671138799355533760064906109541036010611192944642268434848406545028782649718213177843132180687852601524651937864401161179541673189080412106972866060328085249383088684545606222421041190535836521941333516880729570885383059744298444928098464132433730119553892056407345756502871633274201692787549202256864341355206559670479601173477403254640751712624363578508372416427600314742668079583803207567652662560984146151465072928239408236614382864719650819832966164899082412192454762586224186956124000714679562207854584161571912540862579984132763115042909615273738403246170887169641388363487829696361714399876056147624841880505416538888152326458475588936825866087686436347863296864695904446584961090966445815995953706337618910641107476113846961922539398345949675373700619472381621286676828389211526342316373013661211846309504113994987272319750687361138105433518303248644323207926484041641472115098178638434622198515130714853762202941645325040840041148323166199961038311177003667633506212244981393528886155020271264907757406484407773943157670996879955211427021529578729644425344301660859639835177628706676419415776387267938040183697610006977448283060644117323048168817426938898135261411867343152641865652532628686532985027664148999257998760566649573561442633212380072164160550270729661128151767066312164929058040643941786067222240855667799687242542298081175898572086992812647334932996239672361682425094734384995712995975855054046252698459718316701797207970648235569464854210301685237417917749287417843113299110262549224775329686872003681010846460448450293618306293706840522186464041244372341738429198478979509673231082696959724348415238177754342728376105675165428658519427777269959742967160116670414564734577286468082672723645929215577459413320607470083449227013844809547811192827285216665764256050770289475787290570088853476785310670527418368592467715683968173204010362223872665489399094100418515993404227651106837709819423756092824423797413262621653756887715061914217886763850043832411440040204709979536555307802626128088330777370562992016818146202413844666068196944393206344937609427018825419709742158399899401951058137128292015624419751689528305305572332822772073602204373250839626726174503485360728673998204766575401202912909541803028164903512643417590827946344386835687157641487994024503212408759813052358495680957729757229239029178379179793709251815604995231193089551167680354571632804691446246883217797870360890025351579675680909776607946077252702319737002234339167116885563413254189193217065906818386430981883962053399178859603785370085053321303337520202393620672989614557277421415086185123794800191960727168091599058338420744508075969499309477393132203610360537439819679742254072101687487647329828299761089654544402117310632366417389599760818113451843840811399580686114256923200800977258900316133457581589393030776280185785225063244341624618877483639970707836777597844143372414321134178818216630950815312212109501384442049574838409810383354729068193593392725835555238596555823779168528255464384333163159288647181939196847050776537337463572819758737112720143531649900131864961704838365981341917321858857151611846677404883350120513214917094709741737281328678118309632099220094438321666912174896386583405644958198935042219612632053408734174671226444278590739605919187717626075110247620055137331106374924494157995818830480884605988389846356201626415303601542244121316952275331750183301175488655144963799692384165547892879460797164007359594880343607260727612451658416489711906595297166680416611828245748732114347464553068081288000178743092655127149259451911078508436961340323114556517179286597842518142461420462846271809896717558863656682310633509832733705377088808812303198944563589464071681079810737903086740319251489948283606714035769180609850576927002447143911874909558448848510034466818938067470747714918021110917554066792130280392777617387218502967848200872596786579748590838546848354531912811460281125941484844083977709748096253597395509031996860889167732847332304626748586809447352548971312560480328431902099319430615511284775290116212754875997405496404958112423146460130560838985379320215364060967367014556093621976784732308739907818613979509894521159563327985902390783064080167548403739395076284644110743702146088597349288473367662265526343049703341580138242763576430626451376433658906807061363432308155084237191611650234064094588650096109077359693751911014037325541099910999642736445495478944146311001244967214059426613381029186198121291923631231494644210578023582787382883048322214483306004032351776603074126146817671615783198436271474494191513727761314631577038530747489900354238412588522003574575381171412600073778147498910570662631786966360310533139897026347591192644559611894930682710354713066575552316722070429956761001395237009770255564874193751223630981979894920006537316378196535954427315025686384755807906121193336033649891129201244498018373700189592250567963091482253732801754592740960587146992319832070969186282571445442019829715911809670782676359817874927390138782027012932440256738576918067174056788759654548492271011106254987034790241074485298328358250086245914082335679725178107237897128462242834201083857210521828400054234074079312057408517005708265962468711760465565310933387443539480756639547974678007400126028487669327736592703512938238707705636094946963602759118580506665925267924693606322351427983007364831318961334253184603233800438471743644457932486095755787521217580670087253739338850861875919800494338896232803976659997079979351968425867195017872578070794228869852949144512705452052860275935701668237929819885967191413142789259824815989716254206974718568329162792566990979803217429153294234250202407507217808052717526766472965835354796047789203998154317380387254911482791397533340659872644276891508715000999053350297028066127344639913856522200533216573978500983739423337544461201896937192305052438820330588661222798992021681355752584385316896523806769425849469700236251741670854256008686878959167255959476753321092963144968527627942779890867552658500875496440328178475171544351575716934034230802797969961348458321900085710509752244481690096485948559092260128306986223606952982646719172727243754317565204936332519440996634893889455769853420699346268949685504085129452583134714504820982160738374372835469061814805430470291727532107163531985693649919493127751807127541449695386267842473642301918527995376156874821057997596817888619874151845399774297457834348919472730614564417837463388652725015024402417848699156242581999525744419560646368546079105067015918540654239924541663111995961226851447270304742577858578602058059079137098026308381373115152800843548455751660093933513065599715780042732965572641717040750871173902039404642853269360641288748651273814105671035259661416541422549756463389872220609217944431404812669320503315458996361239051181161116234566860670004097596060461488890774450119208793537549273622305411458485526176945937959446165059361567446969817176516861751353718111165434447080944634855760239370863415765046428215872085270196052676857047145108931897418698534882035747679347046000786381645331647817729134567058786587585687115479956459348090242107549542391647748094922824430808045441214690449808661323132540680078422343925849168818436378187321975988027369758182395582324544936855248588138088996279916707818345124670151881752243668142021290074245997851440231392391530090655760996912630629598079419041844323895294274546120818366485234663598178751108767125368711437418895388882325054463094004331946543046748185107212809930014453527332633147216175022043825489752440899032107177172139429130134660075106925866651640774773666483052775863869933948647001765745860938502667701986126234422056881058340077564116962381279816406872739668383709795092919419410731139902414783783553600311355711355033782335684040727499373711515856452998601488677616444770634391791562820907923167867777649129261050443657812873637875856085167109657730689609899149619215061151736684370635151002209445977304519524029147381807259336923281216325264778973347744570372843206958143709521437154582145995279438247374933983085047879582402018523362679617962705974054822580071424442780673281420717981747466167106514861435090238356421308726332161795084197307354201700478540769205095880035142084239394440628031659242763916812401459710023413583474013877784218402471007604277286342024913524892176530088114087601411598115363196778532486583700720588169849960184455234907793410224697924939381715889367009315761470862446189312255500341104883423313920339795559197979353891925021628701405473724135938546573024004944090447650287551123941706703442908154006684151428787974784408716440854406406546384256963062022782588080217876968600303040677811440883757211790157589635398494532867544724592632906197546343230934460922015659158298498314726295981377620505434472975000145828222465154234143542209194046507903966914922479930286580899669097080682251205483805953582127839181166480304611569003381271733796956915614188941522274733351844784457070166067580954731093229808034118000492640089411327839838662169346307016174583294442674575619639845634897907931050878984261275952040604386864130847500510734510664866536152664832223782052352226718072295412729527155915030665285236671822413989258952280417480401770677972131694716461730477273982553482135029159589186038453578843582113678838188576008449231571944507902094684010131547110938397670073510029513460012396308480145141792262410042609459702615317640543784452021342345297931774828209928345652651082990690179480890599257260117969635150892869661970033092006911075916380561121221273491173114810877325133634141017328810357999059189865042288538005197353647554646629423247669705493902642682097796143278216258609779474233918648858194440788779766775966161639142026621441666106081114782027953938400077073756211368492822162906246809323414778694082100785337034093019319639868511664945722611913588986280685193651710298768306339320640674370934623709452713527475367707966021089584392418106783694399806093573456759507161778900700845046951536991175678626824749206657242095750088506940144574732819209329377612511196740061818763459538987407026956485804730128842374560484794391578354648383341576442494949911701270906547275027207846037832604060888462715807674036424155186480851624958115011738936234321615796720894531933290433879642861966016418733030140434088882509465066270004902755795515060752332786731368616295621591192509021081059202494082000737597898724009339858598676499452395780334023679364247418214858001036834514866715939007755936424447096190508674866566149255973316913809340540144044843021920963984641886034212136475637311857862462345199631149091087001546392539676142380385020636477431051356714107630085367379726658955638289531985290466060699258919394870073723583478683563242028959380901208157540113722808730422489798297651403921914969508217156049090635758180168687048694703956823826715811159553794145109156714239527444737770139953608585164566604744110706662562538923607248456770636968129870997447264513331657893778754302850869754013594644096373054301134907926671163830392909954400669421057291074428562677307853592259325597020494479772067134193802205265920020906368966634513370609312414892251416395234547436411196938647833979179976827345013287540577759063994262253477946835262643491740224349959556797365763505087981724193185190486733168869936149058221277946575645703244943644820789485172750715318423354776726717592484545927220018695547526514006884543065525849415949414127250000942866481360867262729510283090658299474225127803582395558109638538474135806877298039499973492830325452762848852142369266782152159824763443370597033288555675352223045682513963539040955562265019341653792390107630449045799323487086555980307313912258762986328617762477713600105642353267632039355549526227956899256706913206154680900983561839842820133222356482034998888172426012984118203151645409546416676828521952477970367524438418413416393544481991534936842063042238847950775956545059802619076442008611119852035959093501315608542096784614624358716836619092457231824978221193631223917321743681884406730912481733709728900527863502638214318700453606386933826910094046566664947798897194183357199883809691010840530776011658216751021522237055524793272138694726845032149098613566161580189969189816644842497079849759880418764695764021222580304147975035478836706817098568596967835410596986047377239032880488377890380768217259131730305966339085286276908171551116252861113573240214738410737345405391714691174883171345792439099170702190384258234917431137016268367446191077812316887180584303368149028264197966165885358815144387700422789211017654878961742368106295930028980410729642559121794395902584055218823126930616802759197149282487534037856672205262444055042946790391907500914299753446196806307474267840377134048021500216671849400623223911377927868521511480340415096537554252992684930939085494608310296384050773390313110375018704725340372789513812181369261011196987410313142301699046317908248499488956686617742625774495446216911839295620828783447686024157992625479736504461976094464746446978683375501766763310012015647762499025327800642402021517520849540562327633088509280081289551964723482180958156897942589798128319939401633886338402673958621290823218075927906975017176823508963624568425820537328500880114851461609458862446687859908489430007648681642912321120928382510841015740754628154861427180573386589169882273339452512397514554472956840358279779030177422968801177054385411028727625637925562491198910587885150653806491820003032570909896611501109484722461561349061499803052852823031049878082247128894447287855421996269930615946419996871075802096220475875051024098407588890788865450407690049145622299278530068648752406580668774053605635539811288630765988989553300775158720428084089317643615602986251402039942989327088152829377416236179959204793168074975164359098006472105080560199617147193922021869413301987231842790569837647235299672279836458121137891702951051197685267032027329243205592918797227020127928240804611626438456853355289923832894553385823634044391059587264533069050149746383602249070230443753366573505774026083903729856580789800492316779002765616610689318416366720213347380828409691651453891972878714514041166830996103038020317924814831477693159181306707524697116955283523215886832597871116618439114292618009685639748249761058761983253697216306257511011424106415378380508812805444277884301290859725318306657136519704594467142530822751530862836922005383972476468010209698403354050391082397463786977507301443251161400716718720559132148148275123034871923345178292717052853365400614533325490039761828941191796597772841029887799827942758067998914678320706121139139004478814006079869884341472367323498629822931167815067605071494930143422635999041810097444380834585156785308291428863037041912047758927983723213469443317828941423689863757061612883697230236675356216780702021750783530134318734647239214321873628289525846966369303601927845681627377162610857074150117568962600693729967688840037420643974840777879658439602110079747778245660362460890481831234010037513338620023664450464398992934291003881070459625732643172139914909153325145617116606613372989906071943434276415430282736930715540884353597160646823740025912235092473260974138865922225756629469245837475886786312369884438757345362439391473332420979549615067354108260223460256451487473729410673607384790378373955169910592473578996520424242874771140397281013895227567262918318048208696831525465356662749731253398240575714935484319607974735792414628695301425898234677713537889431081932187258629598757129242523191212529585178696988862772222427741116682364354530321114166360312105398030777705562612677211575896985596224399800700356489259517862197279102940302668996266964548366972265714332433289622370249230574872156176716201390063269898855792806136768811144511988185410609527430047416008536233011930230405054990351940597792943907621489254245876757671646086030218607515613998352906062609732935712987584050713158326886669672554239746198798871072631061336423838785051206854112346702844680379467514532853690798527581580141473282729636949264089242661504691169542788231634791249367137711785016553889375676553208678670190226254083444785853267751272830533141791576396384026997735095485819050721084949385612733837845539765551157111451245381245278533150398104166417010928135143723346682480624722663162060685018608024326051870449251412407960199598823393810983315142676532792920217150164210853841803177726531465620314888786939523272590024523729684758854609797291929372829195336666493827568714529863070969791874755874026798548381192974801918492755294037186979672940189565299131821396660139194271186695375355046185964918010005979459190771929987444377126233570012211211337757789724893496961380309121396206240028909962926142984284921622610354564643191995638447017825440508102894814700083318076570555645026653875032704129371615718789481194458941837291836370800704410108523332168123130246110335519244962531403735630422582759047267814059866453794847394970460919228197784383815748658925490207497382252629653576563916528442135511208426723568039159633066627766803520791350315010685451189128311361100249066704295621020553874247959318035698839974038966751789594496373685877685189070557217809948482151605806726470120733898812311512244968952485471142695781450363051133276219424849966823595456014174880479567027287912856119247491198097368939715940076599797821499185994673517342213848990802806833530642594034807036839483627344937639296187652454484709671683739241150702534943882706509576135888225520748865199147934721284691011338187992383263706814301794413397953956414999736360993301356124298521222590094354147194099663792966310601786992284030641931647730947493349072737714425795442663195483917447602067168867640511256973986262575954510037396770140239907023575905576160164717261625043882046972435144004621220237296944336161870342389384918786179815498882926802386287406122698071590546126316898790613252679112652235667247885733522518011607253893870066935102470965395267186742936234961109279866243328443657146492849293162946402958460926272058588403714909774444159728813937697856801019215355630497898103073414562530700986336625282987005925452150600921976142639010693461099143050439408811106184165451314095214907871975833278389014033969247829232639982771589083655377111929455642715530471739368015487308549175727667228787717073851002854525176644326501864963015081993632916745125329390549652060008192362907875763447700575262701525379762595380743796770785108086672683649981608906166186712605711409967778918573374511155185305440453730868065386512408381437129741114254178176835214050929163896104404245391247024476058245063795769896614773136659235512969857372316340173839848604597343778415977158382038865656211080468822642653673450014435725239364726387684375058688838433653933202043461015288846418161756815866262253490502952744070227185884366629667012886165948971045564028301698086853265247209969438615156745328657228673249002768761482968006364137807066906451981671955694799264391027167665714219433781475011300996295637722488742316213916300814385434671141382930100845481495159632738049034234819035386061837003582560681124124619767315491132496974453732404459184488048630547186504658017138626587204856013335061936381981525246266769601570035304917241111320993186227424544669037920139599821189231367212845330340035481225999441309890765977649004527908323596913061206546119274242234940687595407920417007944240043341514639207553853102180234067254560277443352613081224740290828187090854851133841686333828817666817692863852560306271833352624579911475414898618920059801031823006382470873167645466437498635658977570833030759841932925720011780810388913993297821834460036713356176809161208948673139832768326282154348693409490505387984470799461557414330854896726387895716482607458672051583245573337606831990987963302270024986703508004774433481761636864319931572373323405195894424246494158284744300205814018006109550232564227126217766868358998317242806091688209158345754568859015973711096200681937476001159101701754002191737127148251095193970881414077133322363237266725808138301654568105133296308133845853502023237735337697455228512318803087626228307580570182298273688047629804381578777380725858495013659865215796946334351982923382837027136794495705304694106482181393748365281365621348515850817117511192781260429479855755112509873066086114790634419923249013541934524723567155570510046192636750394802522536695622053852228867661944360449826012430164738955159204499340493081424333512884050269087309903130678513842272711270093472479822739520674334276103354688433308256122135961382773166554735024936972565287328348312818507730639501086391371090143224459654779621556710432625225943091680744977139516601554304941074455310712448100685606827202554859865725120271785422671943680931686410129054274429172675693101049748513803693321659653264802516240472746198716333412824889207005860067716638388889109357646176936988831874748392299388755308025948928567786656858576031027393024564004253531746454154121020452536405406404479262171051826690130589414381468289845568837502588786292748592478705798738818176165443668603663030229300771709509392652603021913537252509214772143863089593988973631626377326239927917147809926241137409584879117554324817503180697667501836251087685943995230466470162929498099285361387022285595492349579591931922303174698537240650927067336752621943164812842280367973311707213077420752709608079095943222959210706737263979407261346008119047530950196436672924860903731489343039582722885690899004969511882501637066111291913567890153625623483971114592966263299063166669026597148071151149635204733305912001224741538812961491831219283606062375536023918888096698174036692963342735788135275362105623454417373740116541281088973775521648089905869643289293258331311855894276572273958431806811559167663787016029230060835014891301090339149310647730599769515519233781246998293217891048304562307128391255415202045273478634583884399844976247246592858130351352708420239528771965631072697672214891153033136711464117619269572535568533623872539353043127020933794092018424631006531277444270415570704196367019036293853286568498539616573172490254310717585479629149482960233348355478147145294662420456073352225489545676764434841404493185675318463988808767872572186741591567676451715574285249617079615491649256362151238385902110115175717044483268169323874050736360695791510891083663644154225469792048094119623308372411767693044872654673477262147017816719506544442928952709942291184420473500079645705571700541401034715025099334532267981481787199302880942094014153108865123818146518311226696950623669688951679058984126268576553889948587261784875795882113133212668835079982509830314475641257550469865458133843553769476347949201084509331620163538101804604563170474126470202216111547912508003172748763430012128671508903762358583927616213937870810598172669669266792768368281752092117460690625883614659496602157653653223364014816715716580858759245341183537514854872809452619078001756894951172928865400843027910794804420695308488867114548614055192333242031734874652007404412259626726701817600307829728834258580015453218522002489294763670101603343459759400463973097189444074988215483296842149122862138443978921973832182193454094009093881256830714848857608081286626502900172903192108019885946984427030692833291261358312275866073039719881102782535125354056196337543915152989153105316648243428382930616258703744371572876417073106283892228114523517096754364416073066732580076827666596778020136823151339670235386217813308355861101109934559615487176588654378822967208715601848392010218226515461465561429043854680693749125710558421590240080750449193326774309597504494858272044715713206523169968428350671638242107811938968668765507295675094696050434056731404642793471292872595444428552442003816570247280895904774066889400049072874838041025222171609132606654554268107096840923366511939943605562410445797123214007171106299633399609623568789415359806123307120397535581235207292996750548255965827623516006804713395432915052914163768240948354321976375769134086545588940502285697988478184494781123077455148466107669456481160263971118768236254248273492358906678190661782207310342610328293273679655114699301655754434758249883058756876960609700688509425316192956700915154389800941306249125800530696414569348106087960310500594035474609638360258407491299673774353865417793063343171080551963127611148070156110943720500186008798065046991328482038192906772702377281989977073623839657606525074146975857883942651319046302329566651620348623667114995311963122400871792421431779111214935648788394484592065770095921392104420641838674437407009804223530750517082291749846166529637169196956842394892830040972847295770616519403847811286525638599681780033405879519720726557541910206172170094391661815654791398239172146502623792192095281899761122616736752214696944033485964363894095924092297027789225068412552799621575895964664665154391046494409475891531362364525626691416525283807015013967178764773733396067590836554229471642004029289553509042635644207872614706244283300098011542130587103949631841444278944447892269119566351454941234488323982254077352670053800092290564663167861313007061971266067229808133431053355271233401353499073254550264541193346297538699930837308624440246660308450394220269124816643912878420208743070568267195457338935575667093126162777612338919983181940502450480458862023481982517842270111448628031348893383301545425578657999411843017160224650388604817659726332435616984320769972495063587213125126234141781092718639952498894256342444939916374914835476943071813548758653199220431702980909510068653363621999645342843010347704097131457896749431103182731178946551657873894743435402085975174465326864269132456572250858310680003542344369963116284972705923750794512250921498885930341934173307229308918479280021098349727168921509952465546832375256173598376021102436444824444391999851661158062030195261354299453142827017532830220858543436854407479595173944881005825926955182432313545909040111563027094622708456465286271961972788456756612989116416217046556831571845129463909167787032478837055268874120178868055468037288364746279659407496664927082591866886015469039270689037923083801313885903338003024882825546952760386887976989766304772752593562089309754732582741051113916233018194833756192217554485434012223874563185487696015161853695017225954220656854764904913662877906660253462192364059910854327177224991915645151026729605384015038761242077654651486311592186093244219234763912913655198407593373188980046972121584251731236443181355549697799533071616634399677191078125519942462391353401070432121100359547426831645111235904125935480328686545425330673646894209266288007880488248358760413762748525428683146105225495842998710799575470439437181633091411484493331807562531594588680148705019591800594740448325194505439036613426828820467524750818378814855006929753183401574541392582563318722833132029633818255833125924926991041548037608940824683970958258631328069829157892442440270245519826779892185863106446775113508023336907136182099740721885386693349032800819934161242712060397995950617889883227574130415267028879599541100369360503204105764768170867614653515097317608460350599069780990892823487147567326985103406529806648759413365376912267766175784930273263706650059148223320500787520804218574028259829409177629336370514245761678807627797047423935852353389276876055220961785087157638269957459127901367193800198519392371377802429180332292251860495784617405842623911881766426577822044774344363429522869193711554067987316276123599935860109626357603845719032132790693927206914784947493118212752008906571073058379771901103039471239823787284540491353275354744123322076203034508935675175901584131193701101794021966976552039737979333867571933539110122312766485445470698431785716380125959716504411386854700306317142532323830945213335906683302866894763025574014374617954528019683983158227575112184159324589659735825560541183925261783329177719840576115765594790800931257891859329518404500840005180475856266762385321752879917142612910420911056529903382069739172210334236547133371735598736059405455328417490749760575134547928083420244151482859415553591993910799421805926213872553582486309449150402849426707135132013063568493455246326285621742021231041387218709028723390740929084448756446682109385180668869439214089361935422995649848423826643910627339793151755977339644573123328434928019944882193383876138664750178396669567248907523253197332178461771805917022530948298579293763601719496832726626286933630376521991915952404148247230855459169092775558077394514839680226781963928608486264026530634286215179289092758974494639562744194436304248381673963976148801217445686639978141411856874375398323880450473361107138929806991320034808841006184198293646331748311379085551716278724967830754606053788471063489689178689352514888246544804504660631464283441577567783115598325382079436156723163901668106096993267222646338572625019926626648638426577665800547345862592674782239582933332293203844768017633012346685490555236224787289683251591613976717991871413555894230692074101028629885194262941105716252041693705235375132200198702202711088885092665053248803070538812679207020539883248216697594826440329261198121224548531098980108258317959005586581691423449019989557396695963733262083009084678662532012068152214953036890285169037292250563024351692541142991185344442902893388540955050851120457616397787989381152430380817863595319084197666749067929921248366022989307135551575488597723374009833723105727720553343247228887402187138703018186769515250169451978659531335931726363837488401359046898742900830703173253361368961240546089346128699307491481195999912771854519709985922236418151407972851455711442924856285093278619260858095279516823729162231046591989316413881187306176125755259569246609613754624980246484555994581690713516904870392210428887646728946624779668576072058846504279192003727300889453414113051589741497810898421796585706564077145945620952710319075169557580260496799536269629013699463301330449232833211714250071312538365713043113418535498130387320437271204320247793568126022432278446933990383677887252385506034511159803819559528781485544178299960744073132132170174273409799485115133917947984507318779764811879650290293097538516109760170703917094803695733681298230832247123079169692878005283439879620840501310627039292983610148902697996991251106256212028956963845299458105599853676055140016277498936312622533758412454449319624288742784884418741787949760137911216579242579567492199527274639373310639223280640926481566052702040977898841873130081469097318249880940404684568331255866875585579757467492788767846089077155577617185663285440430975307869422619746133920009438998258740966761087446603525076354838963455352030766981379847446726722599322478572342078142885819714398247216416448151749341045225441870930193794044140363745796900742504875692032802155990545671599137051284978701901722251007848531101176407618870631612034530392326068728822390961303907870472337965864987913211617428791526580277343675475115748176057840893830365880190833255904614851861750022672079359171177566791002650069608499729543007523272540660653259855346176195844302081032258966962046057583640379238869736383793327540799381714787757619670418513570920322398442777377146410641569752673292409427449757633326850618575710251765125346736909668707751081262865946029398782023524378598544745409652621243681325177307510075553130117334973226185300817323882679921942389603119301051383350954927301914561371240511097981619040959980055822800310494573540923893738076214904094411450657094443627044832498250743287390445069162027883788434748525776354392627362065761314042141085431524776001211324588046179601668650429332429966793307769246934589843294549597369505350625282720518772201931010341630141863322862814039604131922788349388847665763886872957650274605299626716349720853613399906633214526046253712059311839613810281639800561435270404599129158941974132905059102410436136105803562693250497750165457644405954217707450241535639590862987010483266669061265758266673783157115185822697423796087065917679098361746124763147843757946454964520864253194303904645631538284582905403404888362884188300046640388975995029571747908270590961755917244493019675923653343655052052283294685454693856937025072551452060019113435546965425822767116876896450776861846905479124099744620704541519464572295128860813424862708287966499058705381421634054309621971399002539752010016929173872709851228432507517182979935145541307403191894478712123440693527168676845133291752827327931214115612480593829398685076154015427572784581969022841672846342838494066680974795348769462717586196820277467534084926334156859725141339006069697193308695648637807850727679947287518266563781036695370840196083981966477868048056481988795366938471320541948973638571855857791314544514445439968857824067028901515233420791319938757681915490575366054437481665086148432633330816779124742609266252809223474017825271613624923362974590189871938878896733708878796797231126786894771504931030680764715536213753058094463088193694485599317468965400875794076523939211105981679038667268670814568500175169230604313277350108631813480972561510975239393724219680293476837909573950143871681497833962258624700499127363553862530497468358913088897942098222853344212994005877058475289493462293944433266039042935739653377923732847234969773537508154386216681879685627987803670987429740568819822193039461442608512405353158021047305664715015813168141190665871592667957311933995505314296411615238003904882452278198550792265926921627934803486370626908827240454234958667611082185939626400963875179315110856253610026539918487582126019131173159573964877048370478956185496407643797522791200502068580098735269557879365806524067470689467171527346876338402548862412181282168920908198668070561666101615300454222644142929510951389252527805843357807223220449020789109370603325097988597339438200402400214431139936701084804709021130467727440514273328303708925336844084969475581944471075983170623393982998330254788092318512990441322548673703930650729252759948783778357945052548364016375029663321241863808072970024681426155520095352548913880406534065498051406507021840377658143164859194792380689190510764227318412272958666927061975848348352534494560768863732825053696007880398743565344309181474938593266224164161567146784597808087327206298030098379404075544245626353762298694337516928330098699946772924123776282641027848645366829661284978551794515295969716420500265741784947623313986192116510569108443013817914206000544318064799807643548079855615294084296542603202570656000239219506280530927333989355908286283187681201722681711330364761635789260128330658577428902164972423628903645857402516840619765728936786429506741885491084773743703701488844177354281911013294682097018140494411951980538234355802656893740188614532483388043254166934435357778964784614376333798920654708500545072083219130724864906454870412401252374141602637391822123203984668413356891938056036294383087175552154529109419297133297280351821980163034357189507943786066018040634896527589238902158036540362827040526394772353440821351735298370458664184868379035814131064945419125713889239396552097386959622312324413364765116532845503294570592501615935092194934561111791280800019937595961413998251881698931070995024865790513713823771485157153580191383774271261548681357318645417435153907662153831558131945034499786559326942795434259843554344225668043604886301368866555571136936370547118368716133389309068744791992754338790166870325114175591872306179541769268406210773541862372416432837122417262895405533140244097931539196155833152284502865025577907730921763355103861106479428616515629966343191793814453822175856089234508682822980836187918442993711452524451431368587995982257401863546168009062429813394799410535575830006410446605466976911582392546067764108020710046618434588531896289082693335723635899443989778916801495137314652598929515600277030937663494184598003291311525798784405815213690010176534160925279971245035455539042902142553208424581609659738272314197427417731750511372897307507167610926838666890707181913268629621680260104067841464232073003090032009395175831331585722381061423003479587779962899955332031646422294434497139468576865654460069124944896235111549820187839905626547885833655928264678857261788290770235560281995470158138669169288722560305823585173013103565314760407524647236773281206394611431553831318344168671421939495858920539538303621600591491235346923949229757371910368714273256930051746650058874224987734771410128856257459160104391474910920660565539719675388037166607293360044115334799799989317734948925458870859104263140311719410067879866980075248682677911142870911682871432703424397128083396739846336360694231611333901607264560154381741564271849124377482865343845513643064105930123410694394505584468462785255314590898434233514792468924310125874508761847066160342200381510899624377104067125049887943197206603533232348863708970916847525929447945623310928612409992445109850307926023078395056088468633616035152101099512460002487638187288796090986900590807721585890036134960505836508392383069886346990986726689560362595305404019413614587174132632754499261698055586093335239232385073369802871216687466001722302362113446778776752664971370760746558229621153566484876592130640201010365747909450761048644353853607684302848434941283597031607939943998628320090616925342255021269786931357483709814333622947322104838070272286954296360686335004987529606747069942042660587948635496479222751572372223543926739082738393738981215513969862072387796208192124286290939029141705169109327078613791364921449389610408438790359694951632309599470938667619864042687503376841181311427234141731205842283723820901820618628212709417234619889700430420904998292179064792470925982477036911677720727328909175826046811763732119990084253054340128148580187018432116138385026574092658766032961202587739608088341246875463471098407565172959450546268626268837657580075709419974133544093127393550424541372993068470604917207773658255894127581748985171979467417923404434546295377504523300491044587233318175273741125444757095164825590015042294655403438481434580279877137254969477071727263834647321172377847793692219616515287638483998260187977303852831613712809120251755720624890206119837917008117189751057320328039507036877444650258433786061865459465145309861399057369784453197806745094060950164212752245976830587188597453412312390406306303069837345547797480635162245145487567224294777620467321415010424686052045937046809244851783102213039884033536100183397243203648894401560854851518611942311724739572824946527998787501867008963514667007120482305850708217378395672670963773014338416681140586839368897467484481715498559864798612263132315327327169854373822824418831318495992559443630855421899108017046156580693344193514729475301825879449276382856819914092720634153358732307601358381472207444486955366357500296884269968650893154199225194144840924798533443546720890419877162660940920983750097908234813482277776831323305826679601364274720108903339897208756995421840912240866679730947348669947314410530035804383519394001075112465302654970334309424340401378193162914560259724062100086951480348801494696021958438362807285546571405983228313461661304931634500575005347438266353626574252971172972151741711686185396121908434851289996613622655000049018380437891144360512598925349648010095806974209582484705533395631325265715863580536424731631959312109461356211317649640418206888420695188062376636098257545201736040303388482078951063639993264753649659358976887102284911117182682518986696431103766957372515022288039589292582687994974582866201421535539350468077075653570815482581436920702514414582958067641831850038974291494753165429644509304882479641413374787889094891399271064577589281604110154408329811644358194655131750703054852020911444922203966594393832251261441187969658781235657962178211273395002304520505059545559494285336849137099612037258269593184459023180481794873214453659850107579802284612583561220056541263989682692129909913561242659374139413886244539922638028930734056473594617428824181526536750825470490209010099551291219646302234033495529171101238459069796427351400429478865055718192794343124714792820089250690745076581320840654316464593724804107289210648526688900530828752736559743975872456891354140730724186399606087416219707837433667722223612533887767042938703459954173984908342158300153177858356031847751458197593446649312902779734702723352700885947045702299644446179518066128185951598133935922018027568784892624150021907607560708849324717100033138139896537860090333459589054256297713521825783606347378849739144707624192782623381126280536915671166271309940348517991732721119623238969817677890176100928424850847202743195739579978468668657537922505904344385354337472890590320514373725257868004273345671625279868451183615127768713849271742920618042849796449555648607478548007907573821147556197348889931094942437568163534448390532013075823047945387167255176830811989291290401978388454150477648618035527984094023874924850860358692932515835643073229664198942537769428501659574652024481385571472889471742184299919946206207731735596215610533533416902741981361587988529406828561596377065202518862785810479802002125755278153774952452770442557940741627930357032164048188522980869946383499928032014882934588188319534662813233581649330644364277673068642536224795081131627459577904673238705749294061898054834828103702443063780916086839177153821335064457957233804067152038357187713148599470873211290314875481286486514090770830659121155178620812986332821380116372588851375888041196937119524603781708983898998635639274301005924893536669041556307377533166987266538165388721658326642294314108887615581315516572828587154785537985996311719423139332400254611428035988383518655416915612044927315689505579134571485981377100104794937996136418773288172776329889348950481103431955416155241151003004402894931076013436866983432100771036975378177054928429869449145061750068890170027285744937722126169592375311235052913265235093903446519077267893305355164118186144990373728299346243144816212171432966833551831008456681674239053833103557334306258457218352739189574652301680525476713430235974736465077345512063082346344517371388882505155018488898300231916344194767708332119768689483030375234827597655892550790817326680043598540018431611557350549280573910080065516698116252331300247504911121279246773158328621274175424162811203225335475463280824773418304967437181836301436763546331244894146629267382840439296963345450763695067781485073452191401529628335019036645896780882769384081771375370792637420597557539319725827181642682382731858047618446101986107804935618405139897032139764944585488187476500843576918102006852817033748781315628443082820783613652967708539912761609709184302463885868581167975719534466554021638752511564904693458048731041223638696089866387921322649710315460207268682394818657786968805593658657673144266664578868271256425691376833234165339991461971766774427428577115491460532413277809683283236495711111260008615050573545056980842894139436900168732425932358818065271342757517770073003636998706557675049949871824447941206521912892018946617875691861924900572059879364863610687818668553944150156341278473181382296165095357866531513315766982787939861088622485774261304952173927517894540305920032740534211087559553505714030852294232631608926318075382930563961796834394465802022088871774899654465110941090062239217190876838189781702801785479532979060536592836967673655667183440891583122606408412413716822917070912719737368948682250664862292150862726289703503230830107864079631276469812206960085179324659956070167930024816553528662714734135075246626411387437291647683770577383329916109623959392833364535673757282205004289019214572302389224715676339415070637464469195093792237292349554874230216910611351870742874937943108738334593505564653533616045188436224806384199391281149229332527472041379055325401013831309363200064326061588829039470880989609006344968205777705640088903850278059672608117325638463807466745002813554194361651582937111284268509027256234720383581105732062958055069329348798358845844447238011653567024119491629070138911852940875573214193263016656278680849042424041339102635902667483573853160605539417503850282124620939523087606759584275253908485885359287076176608857954682022443488362151196085645408899097289952201400283758329635012318261640126633670980781700455327515751679755168309833748039403328522060349861968130466754551556602376779395033313422736594193030313450022337778576340947937132156615853383826327615221510550440028511351467334897576264741780372864210659220213917869974931708692998988949624306915214541415335540509557107150661086490745690342894849903880690677420162767484722032426918622175820193711954982948878603534612828042332459013343165021436346603000274123425207746560419414030567438180491033179322221481404131032183866494907811043100889646216948063040089612436787044587987674472941808930500273862091338266155716891912461622232373909858103865520678028169819753738768619249145883562821039863884055541208833586345278964357723704642991928018560389487828613467862495947038631876440323480413180578721825688519694821827242156966813442713458777256238110737756660255187553591162348503179734751200958933035543030041059733642091065764187937967997898519288623128019431966547021454386078336657166421294057739211791546887665936550375522879936130233847186468928606607916655098782435391862802697409707282172332784364266133446286493103128104634115364854907795520578918904135678454774548246332616940266379220396479933718905986616942093589689696714909024106475229300760751683549995579469382367018827330384489403516043392184133841298508305378591347492626765430615621331256921118681707006377358832352749749799241175759281815010175912551412553250131396029606131668791289687740740303248162498415873374627620029600889565211140853148349770980181479412702650070763695403514148748289471449898290959272298782590301086359736954043867830779180840126323413263903632530713146368320491386557720142995462340816161962518962523234997099908650715819367819857077267762913251591180988339548729961070456453634508889018915327458220196570493973200867507444436512192624410108651922818330452602912626462972602066279367799019415013088788896110727945228769632025624614826383687230839827757125845104173853512396386580856165436750010885942347671786173590577906050199285652041876092484176452026988209387674153207130134170091111995065790732930502896235123931946263158414315199512969202707049959284566642669542443734252628366998410179252909703250817761650252007353839897919296997203746753144676608133848460389680818732781364654256683703388648881054401933758775465549989199867793005574118551620781123528135498593895269877225593321580277456398368395863545189950052495029208745082723470223690004118950844464149250483701441962241609500075049473617518352400013921968785789049019304148466298023855153931584500910383999538158287551863108719744004191496412318746424757799671793034879616454852576208449204750580875411722941354524718002638626008477764889582290318499588290860764125003300636090631705986591920751373049288153624353570449008812473901738674983405246570109308899307168905653890674376497930975267295888147810215718048649180760613001452265619902573186581456550743452659539868163055928532173696672142615713733308389177329026663822074108615495805991394588517826931723671391987457474142509454624070142804398352221278501000641662575805764543376090676759229373244820004742272527516465066930723881365548170759002376548478023927970477887867335744728346566978067436533453797283134407628372366284692426157993405682094394055940449161896390566055219994248560922397709569921298225789059758143951561778302831051458708983559570923940674426273222888869202684379892648034404317196600542642956648948094029353886692454779836678103755125985365845905309743663936836219839536180312366879744219797518644329393813156930414719694747968324036000515672377645512530888141682674739140169409873949639901169758341131579919465624693555971683357921184969044901439467416776295478146903773080394698088383471907586156242513602293226916411620543520344524586354529952877812980222693699400393033978246796491420062819542814146688171958588777721231561747444448207134934473027627932628788972518374513226023598886123795940718265890280794653229100405507216899404614100988457882330231210855514444914722579375166311790992812964093443132088122009326072508564114565188244171089395625998107519766715698775820743804464925076440885700910024801697204724029965254007933936251509478257307222054410290382429228205539150256845751960445006695994641135262312620596913312421526007266680532593548151260584210292917711143540450459239707698863492980508421498765336674598795546051606033094592313149982466023612806676352721612048104996215820395761341590559502635445803963094933957467755149304838067599499206834089115960772243091617290404720834343788455450670728496225350839750264824093134786825963782353902365851715116135100738844034408262640660209237338992132870987987052384993424264104468304099680289369754905348347222582388046405821183771359179970549619977292069697775707951245096724992361873093828955139727973693206153066657286821192124121954514683319730409042650652223684488525582493129680448335360053811536267022425423677946468319245468195328656603282810544418592313495187792072661546093045315384314550467720028286747315832857355701555846511632015632906515174741626994438250362761634651953839550171587920800570081013064403722676390422075054694243063830281615563911542171424611083660607970273669043515027600151897213559733680838365475897363982692745751344830774671177042673952415437906150086618296534064152135004857908378945473865271032498549848079055219206974918022025127240252879647519781838940989600450404917168418878485440633931555643676240908784278703468116794118652916901004486469920457112402465769989446390704385060643865298635988229365766054070923828683454495942863652630827707155691234396911286229893503585827363711514144830049136965544036991979042698630375950037797801239796803695576110410357828704901074860723566850847734877498260668357669083973839165514127417572941063053240093991678065058460239200164392882759826596866381239496854114388853077766875965264948533487731444274667019506557720930838918747231879473157586843525271346019750703248641505544632311289003444139870567565837017566735173239700348662175686340177712458736096170533610193678061848074567477844141724623468933229721100173546726546819954065416353680245953452104068233736538908176351965591780769345671188199147417875791074605537400536211968638914069082323127366727295500839610000801507090210764718369497285272646579432373832714477867607598744107708939910959105745193933924181292082728694473782516527104632934028375235463813840303808375765793576656067173838918601897090773063551566349328481084536680084760669627669045703132391178680866867598833266897011853776857414579067018147253926449103648131793730812163552119155414042295417815435345965813429597436590948283497183018362052241511579727794124801179578377849458290802216509608945845465333968286752869054344514344965440275776508316019556407982064687674637611150716801107384067294787840876150271992252262441478559936342279927473998849759175427976221215493439770493889878167052451757497509073248512403220992000929126622140267768184185945549476989841157549974449822514554412641345575257419410803075815449749878636605648220930718643964607621538538518974736871447566755451115805875929136590107543160131520210910212548261426933812814353337521834415017608140454743170263358833610170325347327620380752440101115999465461234341570268697605520502861780975165667395296720650859909136330401641767930510684831364220072912088078874789002533531515725189340270468887463464061764881534183359006543934228136881564438830346298105860025076803378740879463855083291384372704606808653437822882727215840658752109414041979853574602519543721842182073385902767334168811840441369385766472287559055589200962094919227064229368792525204483632318266836042588941052009548843682828407150844917585570222378775231903407699963091218279721122681703344606792652087196392026502902870456880913198204311981086704729937856665820840007227872325667233344545879818137303116627219875701494186838283220930857261891174386695123400112767132770141027831844628302262503656381179925876064226785444509653923224152676054978385326088337664273549871296044736546395554252863292863275265310131400513487995206067368827587588463592063535628082083318959854401446387989732988883809468768272881102042987287109803221746956453304777671304034760020206894477442965847726384502745465347358229091568766984430113542640149540221890229068137188571011435656295205098404883557791627746130020195062002350819719990990428364789667985288516551311736197725882136488288357623546278134983862750693029222707354926732239094185473678763044262386203815545945207847502883819741635415163791422010125038447517964458694457381881842408056250114003408352615327514873052886599493965872512916753888079014455750320055184040473929677897809041164807747488956987972107007907562071453900546002214491714019884632939699045641712495691122306526818772705579072238463089326693408658968706082974388796594597185602827526600709462448263114161085610985577246660092234256207658645135521570903600464066965293429912824879038269388198447733242327913791045180883356057466396508763707425664493301178753109906026389252935111782924792156267796464353566584749302558840463216076003670164175762261703749595169546943434757553323636918514419345177076809392689032818337820745210382942765649084673785267255864231611255202987272476351209976842016983522253875398737703570014000286214063383862193405936517503357195435129647624783548588815982038860289562589144308841347979359137681855892480957392661201962229755369078805832814798623673287774930703631347213774572655730978434279506219443825641201671746224711240556322155810775027676853135531273782421727524842973323006154779645089509553952234910088864745764422379613946328536175757817146738179364349598734218228297044127748673257874222959361208005244463047075429121542282557813868415192763911546948173555811426885769477621020542861232566553983859877405733646705106965665820869149058992840017757613647230033754738939147573003854442590924667379073658190074982221647626394606341662655521329214597634610130086013140361321624060420290522544164681711991777477725131857130624818743604045529288321056662422390604559673319741107527669860991124026842658155853715363959949259528726082140245994065954441225249946825774550948930200982249148331407094660549110836004080725144310321351898907548910365136192967226788500033686084030853842409023142713025453856474367456471381014829755934377610629002517016838502822756590930139019573614908989205544374718295956927963196668520960964106007304821971335458431405045953835100063978592434169493609345954972004792008865205098784283307258035185433907144167969373788400810168639174657969207060444775680945348477438797277584521557339477941191387927955609637757106902799239374861097464326234261095597932889397242810849101389136287427179429754097722634666934277089316533718933440747640771139292563724042138940191503191544603858700731322086185936036367987310686631735247994264427770513868344445134457391360662366329720096267781589785919389286880255702251801646944505840618919950940342547032274524307730392852003726095025672788166721909353195743739819482980736448993747339559946046552138203878954981396855670041936905158493629776273173741761830007891021279932813736859913785893598218987226153412408981056967397256656280585881941166648968137236259459511457594058010326288412061429653077541257577377930032479722535878277706047579290980138692946222129289911311749216757875632287745520912984256182918499052650690327156186497978625741705959239223283023094108067618857928819263822406357332701095803520165643372115460561228740406349448269888889352371459609479091134702513194087334764210473518165874012286674755350960068414341385247202648419290054246976245905300732867765247656973324560515623441907493986760359659461769930770282051575222008624741105305691610626099532727280160056865484646292609578712522127504938525734331114509215837610260775622660300077448046688386568343901359710489726644418100200568760001915347402878462684365172733760692095121023869557291911089426067172443552816699383290742855762111146708386206458133278137644186874059309800754798843680265035851988659319965868913134844293491617463531673299124275959992993348047010692201321002540475758063069729056709525706289570991931167454009406039101739083632155084261046655010373809246631866538488561157108030695600962534599524090375756585182152044707966293802105982948190479863239065341897032132915722435316415395393347646865932146664873101378564858326269348868219029974312068609269943818543690823887421976703960808899052152713055612785045081340362120090534705297276314267656979266567781556293718146967209260228621415831331304974945013052933125749836168435727378566218385337230299452974147331926985103824616637243005967295280347290641898013599280084825747892196112906726392642999617568081324096322016712858754285291764902153223383869011713251622134166824809831424417945985849624037808041901407280793166198685083308931045234523810959833301903479691121294532171148441551090141756720332484688053522420577481920107940764431392369073133092059069960153353892097724530819919628125225287139996888306062196556005787003696597431645351985320939987600167710354917682180763799034856423948615777422037809946006642030184645098222953432638390973454945015451040721688237882625389858656743598856698284697487947518521439779924168780658761307325378489033024275161360592030956215074846077860812427258985356025448373392201931119991973451575408885393736043217721398093133897089464354835510662344033170295918144021033250414110047839136774056765459570680494762383064183325293233257495842385197220988869709342515771804376125136763097286168786844931482324440107404562403241164037513553625543489745774788806918955867324608385406976429758045555075023477816679166394494393388281348571456591193348694193087558202539365906619028335370205421741688405274838728430269813306582180542981010580671729325690449173111796573411588807364251351162446805714308095469845399742306706952902448590525123126421058150555874937101062694611333081885974207706195288897180658956236078787117150528451910071265797898132906650264182583753187784345505103665829025531646470832525388551381567618821771866222316811588134448696774249285928778379455890551687244669444639450992665363539886638421129848654358510369142282327347389439090471956132302609344966501859573638665060630596313638788181534191374650010876867232975455602525453049290091503135809856431506360588396015521606514820106507960559686287902855289318843951524941103036124035736364250353527802670522051372815375233787889449080962192823403127564640736277508012979863652873960726097435570877547517592904197749419306026520919974231281181544629693366991692735099019960709411543358889422168788993454949612440556018767148867111268425158109295193306169746177694823737989753168500255755960508675846419770317641541736747774622205611938981847284169914988176376309380839032035980137993381809555089345156423398137500821398376300176986926156244708449681041077617327535754426102386307266134792460820272940473249057983284067372365637391201135961619095960134352514605195593033407735378185367687946777639588770385486402340094011793606580995415971673824267624905421034356744296783743634870429212402748595944294308115493144220870659143250237407532292982408661918579327740105272697804255809745464066914332004947152220723865841193098851738645896810774598021126256833807840942455432310248958324912254802285237921525441911861664719215780579161952065186254658200542218795224828148649341229106429761946350617554680281548294916681146154551765611099279990875332556154696269148714330671492224081052539397252369020913072147409756353860749935905962951082732593364633784889524487802344181793816192154899641335408228256590194257161178381940601545626402963928563155943484181543506829501375120289249651527602248469265948950579865914439807101658353058959340176486925726834548204294187655646683775427327777855117861881926954400479580278717382344474351145429799164998533567540733717123334806166639516135160679448840222470224480667428889172498386662585994542342017073906067363104776527570248353952553053123403538199109393405675751007880889425608811079898829037154307589149546646731124579272312731924930882072886125566820881872762066175213357204767440275049628277962740174954946913473569766186634823671748522635921580769014537598133436379457666644724344091708751841118515506419389701899487771002115471681393191125694490195065779791378263160501209680510338766732227808682761097141961318521894585635715236309819971518110229796176404684885359844799399671989075739192622252080147998457701766870597006543031744016672435275478158616528851337423841466323692850982980156150380815719492822542137961139294444109802835743370360847307574577781261478493200589382033555920240254492884919794142575540587373785881318350019569140354011940621672302401776905040325075878019729865881299189102835372222833396965265262589079240951345524973163954058692148801382489202045671223397714871668647285269764642378001098793425346490235601564754385569879348666653380942028830191230205700714503647299171421796071860424711943616814335743585929380559248689364548601585574715400706534471760485005750486513498313909487011867072697697683846191027053254736900613333983561730639388703807855054741696406050060096652113845178289352658484196904152246557770813189461432947911172168577656104784792627630721033147048858341673388509288730165135596887566259233995012737620142720374157186883833479418184861759167416738166395038105287191636687684862631944842434742828604158773538370601055154638611534817563744474412868532396594519466446691440064684319240616418661937945446161992513662952402014652405758956597232080472934157338850889858878615505996900199473737116395273514309538070860742990087541997959577682194400572562323608172904130641971420740388633351427214661349834855573858499252057694609257375784097728928585020479066736234731211418442070571326514648763362360537925728498991610754997717952822415043034148714663250248247148890430749426106378672124747162247839274107842460378234804582481151427783224590610303350654877572775077330317550511471210518194145221968547219484778071966920660528834579482878388413896332356199155134115445379630693292041895175830502453383143133313551955504267911090157042296587296651082664116228455697050844728937663387767415193455168009817085394597002950692678168132147128201846082567324887998552380953195661905329471519963807951443549320769445264937809493672750886149704534383150329685449899450548195003288223210569456075764479326607064864454273577542471491244128356986114969243393786548768849118797353850690042494914988672318167916569526188019286905540366236129500455192230690858728419286776585293172939189669592646174120634787236391677740583935160958551486397472831496329719876359126588963752517791136775325619634996673357166251153961067855657634451804354036863317842269324859148347863508513884410185964463349283514603654606981914307287685279853441026699697599024759753317179779971068208028544566828846581022657579192949727505954981629804370040945568252017855725767724384050586452623763674328642040151612818515825255817747140446104772772838861839362711384031062602486964109244884583620471263718229509006305244476214401120105616839707174669395255094910871532123718008864136657110221887643032375971592434113615041116942741663742673187930617621124323000840987361440551928258908063499552534495686172874343900172588801564101095053454008194357850012577352042047192261051506804761453316093593012137483455135880691109196129508600941128114358086452356567164136570128463433620897901112025639623814114710803882612120361600364212589882005355701419911964480608012967164105647549858639922132666901677390047888294966944405061718647391084158661102698638510214704044228699709369253693744185212777029467021613576626090588889173992110624121432974541685669015292404491194665929552000230369256185609747698183660119334785098907249273380049208358015699388695346091602147206083483146102235681072501693460520149100617353988449739771988693493671019736595952963279853698037093817641091085092259638501587041248934810290293010323639976915255487226283976358614234668360770446703721805789279435332312184791093971697233644306986365101883163148952067225626635603778657976025745012035456514828239293467278610594432173812881766706045213658988661850482267602159159455265452438435278722969719499604700693518671284287277015550455350811712982372290112782018159865788120932844193412089599234625581934135222754969519316422883638918291564091012790711414604080000583189589879800237438819707676478891504319512108404995188888246387990998071433077027638105377680831650667287118882731853939664907853761681971261132418967210797332021250426198573806201799437616437678669530755942846637130216313380207373583729984788355029270350888564270772368458203388677427586906093491603645524595617742512552280479108150990757021441203670496249823863370889043238775113894121413371435577416777863702662054491422612673553945755361718234538671425495771492672555424377389685130352425360176006771039023605570704363290130479804462974768049706672319603028519980720607561952612359616663912031285702280992993528171927193549598739760060767555177921529712847188727354672413473180710863780061976249321537237815599904920067845695362092016021054512246620146939517105899958812119375411075857862760839396068378436000561761463082760701982951569981287487175167151766400990731309940544660017952825786524953046772514714351733882289072990197873036231716573614993709810433113180555165558510574719057084153734228214833726563445219020683049703098874217422445490905573629028497277098821599291858928966468930348172181961859201434696300418834149276182931995913169147456022714551735811742478054248808589852690592272353792497489948511477990549439494261858101936455349912617512420736656018224582094028582021458006601420567894453765347550936292637188266770824329326428729880523645782363992578633997037167411119729718519033492705031240838933185980663032341898497225910549059897956114630107553947229303613072490942105631551840057125892145270638129583915073954266360201641107146871856854423570013591703113727140358072195907039810007610262965893550689714157374299416363173811125340981828470571900407107911080520490033966699542067303804927835222099683162343235705515892650970600485667755577726010797772136435334043833081839881387246488553118714031951526315335026820649714009176482623008556374530207128189766238774995059196388841728074238470961491629000796512205441709926890822254517269207809339510366222916631443417961576727850930739782505302249759250645270374223527823977301884802008503442682225968301229460190161475061177696303964257423529965261345952113807901991632004063991192883540804115580183921734788954453694290077278779624498033672376885889667577454452293678502454333399979605306356554849233774140940661931820228748122765282830065447067268541708493462992462559132768979389383940481826374092623010267433474234972660373040920188525451052483612825908695807885597098907640242432788469042820962510036677927613606376162035656921539253544351865193775617351169703845913746409388321485569013504758871822956181617787926267508893681785478205801724663364680322145180389672298857041038897133665432334664690298749439933938845847020928600749270848911530337445872020263813706350969978564511848216333058992481974552033611686655392921834463896895312261601359916910685700259023752267567554070551173024521610000846664982310774380841401640958502300705253965439437814687757037221018332560783097215841877825016301331160565385478956452464179597364775078923030310368210933752574905346879210539180775040326453567448179604946920382003671362162840264692506597407022202382830472765526205757816108801369527127162390517006278004356842968253384584527755565766767487104008212498595300298018818140613416251242403173417564319324625607429265252918955347386117321982623540261966179827667538180366414968795281804633900302473968908758472464269386600738026848514127210412027462835924691371194606707912141057045303323456111752314584179947934529530348219302596790224689605286601491322016842404158016346694588982416248580052475124861834195815499373750565812561948554880566008620333928184546728242836427195305407831131366435368016553937372476468326706269761567389867058039492261385434357458960956177596910831548291695913921827943341460058864039766059274135072368302615700873659957374630958836163198362802068785666047034599188440901555089902013063753773601809744170053510672274794159158553332127273759169512862362074340534766664233870268098202483707569314911646268070949444743667970983893875216043526519522801938204070267532904388506139003287101559375399788200601433048590750795412809477138299610456188029250572207152898445609822377054652626730987053701087942463066488749769999715006159398948052872917182795412385373032861903342134833316439923166441816869557278098927225511149205576115679195671406321363916636874846739278977913789255130269843560828042966851252227557335271417515294660403521396666482742380089160140577837262150626462496151532714205550418137827256399078811903995048672427580824351454529654144859714644778122387430789656397260378019874556353789147661464878077462877490545548247663229433309245654793607607797225508224321581825655394918561226383629305000794552736833546712961741252416288851887652915465575402975495304708005291633788651390787737493711996382204459324726140835042863535124005307580460910909034758661380083366503562204540656267117495476515048542093055009933127138824388633307965065252663436273457569048849368399563374333604403163441844347948635549976972365515844972978476516660657874770505652735307113447902263133540288201913215286132916971340836999664178574674180966787056290292346044719297681876606336898217618145388630259292162241704791740798207587041373098265140010097312667197845254915043341506012148359267176254855707492970505572850029449320605578389163926258052245348533734318396149211735024289594936568557661419141424091785468218987901414336282679840968235054311150097646830149775572825326226254109721429618584680507551973302478621045748517573138107063430365424807359911503558479848840027264261113901765473017543847347143632420399307136392601349767517423571806271040669760586325818148658088559519773018695632568364164451324642250588598967446857658995159327067259248824051363698926357832556091314619637658895887834028702823488530727271017375657914227352006535355333014299770459843871696733851676225331930728440715612262638471951166607946057383905754891088672330786304735482107634237267763344335612211844595960698214866257412210574840748905651674297292663516194591240124599574118520700740832051105912646855445211703721941427274865221483601106996087041886246096691371051613447193037258924275189170454547274125096817064638805207380740035004168336114787891710301156306227763276105170942266960061568486856680325316837559634344041559331196124113895071801472060343838385491692917940687898422661856756516443920515808740314001784771897063911737348153705043506496824453654203446344590067022161166863798971705881247163541947600461092871643137983570862138788389672186296563197711440521647113082766876226702021378679928972008610311137422400040913191314067882461430139067478006992607286845112307796763948911368017960807863236064967376153428961133257141290193798490370226854765053061411596498409001020835552566560644524282022348344315128851451812213791656162563607639086301546837799734115402902073444821197440678976202951441866829174161205326502279903920435198268706084664532985687632080370693669593205963033547047170480082584231643525967611401259891407025713604805399129493517873861863142421284500721419896555346599128932862275689185744223113661250191376894132228893961293995232483605797706905456668290511315179832781460368700392481414928400465916654899853633819751329993015426226364050983501876087453098830250667575809287232994579640311473940898054283248194607673054745248591754474317024572771897375929922544995851944063575200433205640185625496020764794574682330002763378042211361586758059951583129026221392610275662409686210938678783925442109661191347377545467982460816729853690773954514634461147463378710976499427058864893287093144829949883945595080475685187587851850637017069713158440087446372297273299091417224342943493475244794746969903118896901197127970546381907486526013703267647133136201530844306800327813301025648507936213879369658407479794127127321567732187557686725008622437008195601031493179541779138763484440300730048644071259377753990936214728629198566726019855627214095657415498082137304481901297624773549683065300859959667897650687218665120899402471537765210719821658639351675936156144807087251810803499205931127475760937327106414264100650522016311782528141687660751827488240854580222067627878291683435062053807587652383258712603077822544512585746516188909960661801524946765945449279292241893635057807925699078704548979850586466046553867206077542935398488749721502726671782550588291629008590801903997751934105866792349661941027117739519296017965902749753466626282304299853715652068177666799299466532524842603878946525819689846371583974836559339729977556265048337639886673210328559792754644162830936308542752353366399408329689837743674743108609536376577306306748966603772325396834158164969566503682642224948368186536662788371949930923328648209300862159955845931919510601862932398734551241741790252567567636704121552578818939603276360416119510312752811520493378093420896555771836339465345237315273565767754656382350601678163416682735297455183568277088464836413589552148974771481069386203559263611738199559474601149121327888771067393938178042532694259339723593290179469047529477332470332408715003224515717547918059176932451672189296407300125894422203589349192502401798650828086193067558755862979358790803303474049679733874711433726649601283240253213980782230031327321731386693647148194151470210557296784181848940267052907220635377287604529790555994117755006049051199287771086748234577550593929867280824586013792505306838892492275620284540381088524449192453949440467203545555350086735192442222059161553423393290730918935993629903129583372426787119750898400227405580295100154518789488561009298182102281275599644068827551844233905902747287141756462627356824382322820936079969608270428195460840302941440410746442093414333202879726509998772293705253657537204585787041026043825625733700214306376008519955041016615896013628664076876161106467501354347227224449553558205298161927458387455784264029478996911225498976797423534291143628250558800674489633139958136463824965592401962247997801450988130088091117211948332918084766146755409704456540990144123199524756264214741497248849888612636651891244036452892325955074174455363846977216367978613824783715013461201183430796435974379611058241096382852378108236315520490018008214098331443342855433154223405768246113615648530442597298548908897314800918835546810542159589711831443791415848425164335300522922554942351407278698783010451975167233497730424052731697741653580049217808914214798778152772317032472160672017422112120060765379339350787404007733737212913217567335642123300820713872865544200396850179406819452252294651937083033681986968107193348493436611652399155274203433242259491317477358141415809944936447281663087710461039406945823087011027417769897843856629765359101659847601736045990896712761294497087656066599920903218863501797109378315163849222556324202437247197655109518523155464275051936961732296576671611104216718646016351130711155015656036793700174349371907767650562637141941068858865009278882924844015432251275586114465320752225547602876418479865396839288569939036530873393992066507187307981967389511986533834022002795150557104103637732209565380712214024685826779503745356036003367314357535047387459943907685982419895295094890932697114155285728378135600715530835755461522043820369436872886617294958630217684354591659685257999001162649915293318166157783058337853127871960798047204607298159296875587149528096930287325606570778567381309860430519773000806249465725435482757562858077013430449447770643697328404007477336455765231127476160232668474219626846113666533554405423896457456933573290101670548178221905637277097638803092972292853515636744379143318445667305372539669772583112872953981544162624064829679920911020028352119378315841984401835856041790670627932208752890165640123626260880071445279836169157265123747842504503573252057804530029598378505766470142324163633899133688047106823257106756074236784849116946224165365890800083449179888836657165280405521060140787571477066139251264835349981728727223480258542564390178340159577144584076278536899708686194306119717914416663154242474491393012008610837212177943630454556878827431806095180385960207244611673978273892638625220171834149465861849875569348277783329483171760353993022425050717622230368820371576729330085481824413905067486959166558727997899741991080374043104822495785958852248303302334621488542616574961925385171009961695213793639367914300403430197705562860492419252906716843223840706226665113795827592860039365313171124259591164963539296315146240753945990002814923463017657639098455728970671029386921231497882465994942654495396183477828675573317943076732374989391189147166326963272860084775118127109397109697359264994568638433065051403878950608691502226489144724338470424393721022018350645345394697710498461453467920592512461736047577175382378956776696954797058094824457357231215972725474952682642582423665668026663012711421322050615057415093722650833158848403802746497359449767256974288451674046576150564790011776916091751085697660356234046944115013217145757005939743599847099782565531365029228716406389229710435870370979474743272630398613742293820016701280712696018217146230656043208904041054157166297618829570140497786171581258316494526144579430141871424525593635321092149637448224113477656865440886929572526936706300384270728848212639125734968213595522080838364419737318366642716160415020849800612155643051357625523945540684427696022013919342270098435205616231154251891937489275560732920259533988697736305169946024417243661664512357871919119613453788580049500571552073704715220898437407373266859415919785515651496099265132464683592449553252502098676140099923170329114422489995801283337808720956260196706780116237918557970079365218637302662937217800234193306443894623571327648744189622755780064582517472530329960197728752018759223079572378465423816026022717998032347733924205947340424682109456976259233379364122321340669433887397354951168991192024806191280111712626263209119593320496461957781921517093601561964809935024117616545518501915979724498155222862573391727901034135382911713990056141801507966020337982058212752883119376772275843501543656156987905701922811466792895152150248437617269658690710794172385754808436113114755424340808641169322143044973993184242171755717164274160255106125077166691035205007894473394242517264668292678024807294192514606891321856326536418734716144422601920197965296625449387410707512591949308348430629047379238514049561669909449267139875549093774205423072791390366666034321946607979017641734087842529300163712611566265850167586752896103689266842058928067430630136034918973290889493370843074683034159273828231829052521311730605326645253636948452404964823814423460242441561510629808678596157833498025913710236841054898035811104227147927989522277333243883160570327069766175556241987853714438445473129336155806520535471567953782307774561912189246686850739846880394146771344821817360676319069447625117169643595324535645647853410923072516472610348653736224490936221248334844637198958510742611936601107915259391701577104576611902571702576461094710142678242345344102139052865077043654406949637378378449987220759061703071822576226584597226560056196955541438020033887982263371980259161460835506177733670112033270745556939178474622135378624894624617624653129220180354892873574698777504923075641292439040929101140909105897262420566201624721177577687897531239206592999780022471779031617382711491923497143066702024957857711119627373482751369423922887692416794474113522207817385131233473186913291419861785886713377095862875416897936640298750058886578669038473556132283458033628926843575729744536017282564461458155214533000385980956254310814257848333000642030351255849405028877527311714233173314287251244919151128442519543132282356307409253621002335034062431801146554694440657133206900959880125825610947860435793148360634040672429383420233966049854645377479935720806855137472319339429146936528918393460311880051152258064339662919942362070472424575437451539309761422025944849341675781701337551033391756101751173270619652160569370730579747324035743457973378820406636875938177493957485149461058490064142115666832261798599983736098216930075679354839206419109762305814875027311239084759323822034060318573567394779866587050948366381978858323724727063726417985096214799928967258478574273277857936190185873439345521397358157688973762520760109055000009996793199580242356952038316585390411058932106772603228215561538708828941063250593909952503375663885505703343886600995210283027094843133940778943916659996041302775699868081217601482506594484111686352081908984737034667721127565057960407047736584523959433285584986886370987290934185485290245513754342667402109792957414271300158040093657511902280475381709622374585042492911452525033079861334105528523148394300985901546169919909899560993781337521334416323116346791313457281593770136959372357329176772243037391052872193121267112131067658064698793672747273226256534404349654599791086077992057481093157712775453230777348860818570979453444033435850095964703883164014393890668130333932886066152187868798682350031744000867064483332945803360067092800188321385291277237303872475110426380683140754230513229145864038313331022151111395789090387710380912776694248855124288025464821380545204883336854495716943740547130158071300733322832607396820860582623615089702703868450169168603864737281848344548084449503878211633290321599930915940262473006589008750270987833570375647291831345588438734240794130473588456717740867396290767999940344317839730402335962016211691809054949128702320018919973626811377805302130482625227646810337987889630019050853806652463947373698081326431470400369684001758078622872698072464788831027972436289073725295646589783492967793757355544568597330537829479664014347272204185995909543457332074105644197864100774136317463515034564358821882705610933298905417770429775486927709917723457909631298972449630626284721480744088577565413484107444947677146006343950577314117399178327806635375444338736146553019733981560005726333032477134872961502094936943137741262022192375361239373437296962380197749057374638867117680884136174131754886454196322298474065512426653280137644085694035352455480221383698575459466338538166909447055927498003679052434786505268358340814086898462876343758943620157249566833826403431318068696215586119358121160467363976060102641041780570927283019975624265702478577747997777445079779471479755716040485175434258705597769940343044416906406980510413168887498652574648748598120085767227405840621792850234615514653099579612532190403819887263718992747813940524314996088204870097358695111595353513928576246729945711821372155887006802110328071350522519401018514123528400674282787250941965027593062219249875548249384828760923466539619632040174747274177068436260691222330642795635132463398144278929086130606059972767496477551483923667199175484531382832021399710761871097464216851472851089343472270039088666437161325966162422204195939237079508601119159911704925986125678195313573110881784174782084084603947343726464840940206534813818149733371889154640329721785246853829290995350271526276739608326557312497247041536317461274035547967784672285275018013526431867256803389306298347280096097675337115477170594756285488893259990714983056511818740843417484755114529952789644893970671318927702601428630570777008024931087133354261638635287619058118988507683522669933191352339632305498438253263618258104297802177991862181539587582833035398407149865667509374032687182065605576492397992351534501963481914886131331076053396878245713876933102486331137124197977220818975637532366307739454723245459516968659041596246314482150590236990507467578118276581111417982616724252768275653356033985664549070590489181341533728271149431601190971514011244971173318105790599628260142425688147100631870739220047805636609038416991685684765710164429067776510501229691674173165347376690922493553829775012634729692871939271847203744193590064138688334308225977362026020435298344229321768878959735068370523982708191256390096320460020776410699085391969578969270007439328336934997834417145424590936022846534675550143753439735753864979039199803255515141171493074459693891966208732752579064914274016120179405039291463732836080516835012589979085386522964383331329198642434482309242022286085277284282130214794865066047973872838516150822362380345569187850822193865708999124131245896793121247454416012644976544834437084703592214850022534101951459626779425520025096307361383534931997900432664009426748787299842353957152956930503004649486956137282157570662617223004032297280736890908290681952659688029179957578826635313125625523075926952461001286663330529903481821719852501390328259357955681922398278514503199816321991448111402292794413195930906559377370967104984163152149059274825958276504749424233003693271487476665133463496665510174946048436046759128777304381358525832370077819300425523078306091637845795760937340947962434030829824122957225251343160226367966461854362915517252038454853911329141798669146328068490730155669293003909592490198690199177115270705153743499577270395114633359797422778476110901827808177064931005159803418223885680963944756765695973946150694421984700461029368578788131199620297395314611859144947220815092242589415618858568393573964925806191626274277523678555866724841045192393847061634126125908131809102323290021091136744573185829722503614231017203071351442191908259357854952715244943907166389508891654238458211680247565983037303742048424190284004052670670220777085676555937139645701594543372619121346923593021635909851286541449152798876292931854618434422928400306707496252797223868088734310123337591270097734826191310013876287165399751542872561958727082580559440686285026622791217793538767685419408680110967722812463728889561652803539149398108837586514731945880381021730856602777540497305531039162536320742283804556226289926808401871479768915264634712565645234271873152244959788305842198986403396046891751178565355220687022012025193006983419084647105778709055372997381793805173303616493531095753977489742349650623077994710703072321860309028925421766277796081427106948008931632936169033434302099327442142169161644597077693681884213208593934216685248731761634403724784444799190071173046002845453232597445394657956823359608594585410748091997581821057586153234740247906961211745668990134823940745773368279631721823523823890036765879668771392794514967984911508703830991980839914976429518013390546544578687539630508656392214128207269176170136731319029860054662555866092422571631496874073227141172893497577123355137406070086185809657185829042898581262810467524458868237638531507465217740924443978006808629193006327540319365558302898174515044961171750988203160472395921156467623709214540518539676786326441536242984296454901439632869050482516976342495573298166989562199945839819609680127086386838549116513394077947454121044010428764240557809086514058854385956074112306034090998687736891706232948054078068342642401566599074336267564806481332745105004571594852067262612080503930276066348184656996100076247723211040367500897536401478398204231338328153107292164183415796680325009259773812138430539526256809074443204955259652370498371902950375075381325832157614989068308484957659274714587048527120321573240338289673920122538442935999551587212947685851437907427355604549218617148805335527310261430403356477759814844295868232315464651691822755272878433075932542173069539076392580481923866340344624534082007570813799612198079569678282383214650737626214887331776778361759109239723618330277752121121948864284339451482067008396025361572495035981602906283723160542280130604454236407108150621826146997372684307438260105878454917301155911911110602874649610874607799414455713892780797475944144509403832224288262054479671317763973633942712777130927428775929380726163757887016521197759917376282127131387902781221643702665404287734938154522289560752010790521293216951330062782127591078732233621510577689564938560222052927818419352060636102841862081422311738375662401776917077370629464671411620966869022848764656932519584540084541890289302430335104549327711627156630282604372048313212519298675007825989198597161945669908389103460567762398321212913574878843429500937164170030418601009383805010315848581939238349470520018715843265678915907490227508218269494046272718003831779125218593177232450779100099443724738077546359818114732767391399404117881013796439668099460219500055215459186989723144409582236058166698743839028144782536363414888327388313432885657148552100330500015604646563697405668431203628954775074098814049898413117093236854527123734847424140157835794718630545308095106287076687579593141182547559220537479779329829348215786581582167993104694500915073232991028320777283167176771804487688062728362415801724800363119963981375869505023600164929188454078347992482461533087840640896666945343705868936022607219213358799050623657824872742076201269753576503110617882039687053375309657727522730194951732151647629951308141363147802571297430951492357577885592980184340820450670034293670842070448451054533794651181121102803928820213422208868465598062064318645441473071864523400312992769664089550677169745938884541791761920244659787353939738378622928250636750978896962551993861071982678434992377525233057984075025468176650498056310875083590403966312966999019643396475352443403390395543182165776946156577355733476043890550127731028423199108040300933757376826648712559049625266994826312842293397025116822774079673151099595401005853479971935216324345644770091432928645311421876905357257547236873343459816516296141165902282243868763626616536942607307605109771733490697302809220062201558336373761087174622627590254052144163807359622372437324647388206612677166247653188166478076892807699755794438929075597015740093827678046298168534369567414974430415925124835639889069105011803751898597079844064192484519993514864817103760777514689884659707831441702165503951718630265558257327224897469339745450056973718014653438662321904194931748104473296222471209671902191135555136623626424869773424560363417046779814954152791944642653131677852503194028026758572505004846524983109801703588779828846596454884178295451121519076434753800307228764879924324108191974931881754691532037420848266696033534656096457863497974923261217465266223094142765776488159906860251710167334652159656212802388969740748259701455007186378633188354033641830994240842142633472349215296993007571707026154767509901730410453703359110039132083969735098168668938894517929727855742935194369627282596537989190235162873310898065214636268663893726763496195740162360679273756225687898712968971239983297539076186759260071837910461795355276919116310196823671119286507317225937198886813857925478294057866752208532395403183376618925980191385646581575107184844197808150712234298698334077630523084579370536182755843495734956871059549250406646793340591777338518545635304502338153852922329342060853406338488907658043465911506377711617968285202337839892848993035595394259148354152273709232056791722076267587769734149907572659739967616428463857622246632832525791459006425494351125297044544554655560469847700548986216176468485245324818817909461805042230404922270832932961391533447906037800664286795418283202177280196505904376632450147129024073575981455026721576985758651340127547248334506047574058863081784296472588124108308252247427115600217535953334413813998815354705678736140082035916491355739960579371865184141086470080310469275722524297254289617076722318393241209656921840043897403862303915580185499124955473004933495004458404635953391995545953013404560392138729548005479634915029811424850119020521908952407081385016033117360662541715875414769323507390704996248211459489992074754817215858673180346108552969027579189558397539949340268499659307410939705700558354661572543916057338523555435765963355898131272611719865616197004315814235632800939567814698708373495506475812048101370834900667240661597125608178157564286812942794524394783822379054424553022332363671498891124817363783270873729043726321987286808282362390772544971599507121495645438275848911286113281573424209946971145202151736377559100131271529227730085547731283531961812307610933188121396446928274498235290590307825571266206357951937464899484617139658257244459629021088235102620878314095039584327829246288246863626834751049499981202244091800550356497137883112072969957493641890450099645708404144321510255626347180352760241284524168363534357027244960650019787396861151068531713891009987139603609760636484586586175441670288379908751896609609614410985848929478248984836465713103217440972638881253058855078585902588415014135820159519591194968233141642260129568573937176707712741423604288197086635598148201555672135361665552341972582341855026777464261614629821501474366019106710883527435956322405816260692989937382378224543061203170317226955352666024198224349789725346513427542809238097168227472587961489572190514170783018436339623518904843449892816585113984319773009588629660568297638723316007256140020752429604129317206213281918603630710322678355669667948451743264643102377340915100422227684073827087735466218019722709409287123176097059660043109521282931700646302488237296244460201842868024371697213598889078838181413153273552341371500055273745044896808270087185510424395268466637609397650751704313096020396318045946705748125815647599247748009247836475274654238082641042578037159713109407702796577458492992034852583890364764918060630362830592698759282333848020953066325490261480725658970921678516527373456658137901594129457410187277733753710894192495817581164745870067519626963472072982171051006130517851417310529096571515704584455192449459690433734179404302871658761343982583952193757799879142399335850726405462876043038367594274906132325532949074422292297328622524964865633148913978758242559584755876270890482785817707472088852387679408678283564134186043274556771341179347618651633991541792506110270070090404752658562992965998284025992580697020679550983282368268178662759583227675642068337144344233758792756420454717403473406342986287552994535525779635886139909561200844623085928618064713107054198913987545923707720689034228429926032675788281756008091148232720667557648381559123787049907191168513032862791126886975153452007455077353275639755386815232468221054164453947143870780469907549761104515053284028038896020292719004060025176071498051089584331246546984684515558591916455975433659588592309606885450383792958024831068357661634247315204275159533417971294549455556675344377565080339502205633342963525861660086330965366583694866409179298227789970347476660940786819353337259073195114519735547296153816574848922722692265784839719722657235291103130631888571192886415524489315184262373855888230400546019292432703034902537452096981607549499276368951300393421573179427430068292783896100458283619440364857228711646806248433746326891647915235045294799591854950358237398556139236162496570700705859693472328091175148266187111293767973175447607248192464290879011589405987524326009291316789406322203831557384308655023953590947497106908981343641112137914644478288356317560912269817599067591607582335592812518719837379333048645086823232156638269087362345797225772785179984091690211696826943454676817656155355783686111025238475039951872998124169004283377091113607837735547869444065744597562797288199884100447075059491712928844076052963796172610413596819440442073432359767661866710989152784045246435085600545605768404551044960822305785734164326837590962975645215516811422400444895894829224420105905130550823322814834399701329302800375081274306040967304222680308079653105901854125206519970015842716193551336367480555660539139992913957439255299274878359006537322738203421559003058006736128600966148109368818653304244734007435429657907471159767029797125526960644436570172267290571172997759748258999606596565091768682001110315776668055051903501515028908289836747395577175346619553518888045879402614717465617434099284597193552920299585178767399188289004471383539431580140848035285964838117459580548915067515950897177347756037006924106690860916505696860376465385437469891808836712619279626708781219757654216000540604194679157935221131212005417987000923782927342932584128813448028605616231289150299379088260215922557643045736060186172395776323958884849524956887956586711193848764470517519963145306939723482260019154789464616793779023196061544249310867567565998848098650743979493604351002456514626338049467020087888695725260550471663523772225836957812947863400389042982188927105550387756119573090675594384892132207309527220091597589426009499859120788342744944882231977266430084904125682507029086299684671483195869294013962647109292371040532550262942590695124947688381692391427003854163154570275876165810844968489457633578555971476717602581688526717877681424651800258145780002997915511654481026642033682723935067324570448953410460704660058530937927604675099807347302636064519636304481751488195853647031870394162535939390234623583681855700686134075654232548109142373904977546419736239145169347770187855540482860779324007415140894056472372774713390177803488536160472063661051748339441148168285823078788870350301916170148472939069807701039712275947468049177121663460957901872743483340200068727337649123738703877301102061250827212586596683023615058701264659103490845122400420780921277607484328172003572480219024092051714358561322685958587347814198624766575311238375868425047620115839850828790170675903799665020699580244555049979957498184150557451926430939081718398941559847691017654938711559450531287525613188094912889340766530649887148380065608644946078115279265932434755090236950204071041171912044947289796944179441667594247935926797238851376980303178819333010502676443679780782352218283070926947630962228483806659260288893357772970153842454387239860460022177605080735670496410879801983680994140538869771822074261752135609244745597515116101286007697468674869807607116537731608862091254071729741903592041859761253197731946978133644820785358432533119263607616960680014478226498092319816971235067105151158397456346379879070821691130155601146128210725616167265815433990642516423442061221852872620648050440089221414860105402162772890239692831414263699625796090154541347358785138751888591624341523802795567030458553708593393496914594607295443632332852371804453903359331385469354501989706235291604404716603540820145340138281015658602298441330043208398163899179574055820132934025484173248568503932352237398558029584500183797705273997556883188152699018835820233779357340433625666732124829010996517997400959354072126545735432499536663514913619410055357308074925650956573565893724460379120521295261895096074380861073310488601227595264472399212602919175207615647639869161330109216225555949534728982754732528240175700498183681892192116363954285794087354355752163852977233176978616380341039800541889857880507851818163977140497749728845382020275905835884470123436219558434790687549931558542611863354112229916540731304392710797664737198540111658012220667159858132771517265646770598418720575906175597887179162879569556615942047850463040719059740256827240807123538893484894791067508360757501564297965485895987985043253140205928899723663673439815314396722467289159409997134216391603274277584941802674070862195192067933875019741990391508603183129600272597256090313823911166911068554439046333274252673559183014642496557067626462164249647393341920200466197365253486217489478445219975911889650359445411470007526960373187982073424163872607818995227377933615165110792472497121519801235800080257319250607001511105637624562939240320689209436608594478855595501352333256978392200088959398068465442594290013781810246919978415675847582935004278314868797299850637901228173752835902937213705163845072355210972468904958126159888052470833411026012263655333949091808789142393135026071132830487755695175237193447250709376108294406781053670756767444547085163446210456967321614231532098121472977562193423499411347399415548532409870967790141212742563589938686976826765737349700134599115297558216533107141849362990801559864624035287806394078877470291800668700854437651205749688457940917543517785700365215473733561583186958917427325781814895533257980711975637820806323489065518933683097869348490291496813232554574278575545748366291949302049252125482986998353799581117776708159328554863961382963308174179874200179869683190210717517764812981123844557696494548643526367520868036011691096590353146489773795026662793025610865228634658639997285417286726625320312633758697494706394854299366176160113845276104906500443314103749217999581754864077645274418755662772172735588867880239559266007123353933528021655920637632305393459408796678413710612478448630041736682566880141508263386848109345393116742801701289206775277768742205691828731723365802243474727353695948586590002994513049996197626022810599243450358029691879866889803486261044060803980827813217580055136171193938127848102771630515684304619332592906028608639233389767152261068863413290471443222294979381658074970674866533471421295205525146500552819105672339069452084618327536699229361538548566182236636986905395979710861560735560196565951945734870440918958795808347641606056807700445893775960744540055558006273323802592091896636721568871504568392817728938505808686821879423935868372148787065966230838500257030627391678616483985772702505027413436929958726691366511684387088140456547003657412347816382248773509077751130589797747633171955285187879547853918870404580258949790258824136489557418161042540402968825670624097100473940384276297242972735606271041627330318411269546136688363804487812926187888517647494883402215607518147407912664354312488428441775299138250128331543086210406084740907596120458719567491066814009868271270938589323909099489116291107454396703320039651790550943152655426583793686382791373290794648614346634432652606261059178273662807436717588637241114740701894592822084977761595308933569509285734776186775915172086520997203862107652416584436491353316828297418627376163894354791888958045577121570830543740940002191331366147458363954173949869023395643482434825042270362379016840442040511295331470219946307726910084358614183323723474074797251611624889725427627672972323413913585679070223020923327443931509287846569173505739133127864375286412451099780652197809955277595785576402016619518060586359259198130524024308219527900970502200703923925002569378918097233589982098822336567396944789925645791782904925796322867838625627004924906319839053561330379351995237702400002649911975685153920895785366589122774728535849942893676692340628932851018300891129541781002294705577930487810303422043457510936911856973098206811429594113971928362143987265639046840261538345731698257205933048957993688037866842257709484366507610051170065376687854314800516855940037713907698108820033131508429220310943083614278815742862191984014110928064152472941305384153350438111932596273063964314116081254173580580816104857184617221660271738581588095778960210673468868420367117408790171485863056175881652420103752461782198687873806285520282637319946404473194189735238259153180085255685488583504688965588462309927232217991194789323571779423139327067385757490905060423452567470081686996687816230247795527403033182155423819844137417773068511065268162415299857354325972114269963035908978001773101136143115721513314166836879457938867677324273209281356215527253938885121019393545448913472249926454640305044034998409642789815140177784661923009540958467326082324172540816837072158828170226553735034787728432891249871649533607485751408323296548918225409282917401716509922441898028202417028911901081847234660621134036420812857107543052430049270495139694347324953313101364087537660433789294066584418394768712267295629083350598244611274091256430106441840175368045165594856316862925156472589874248702226509429145644104620338711959548807281861126330947439315218401716169473089824776017198619275698093973121007653006183388894342989250592172927483085453212850907107885921371747719141873374077168949474180273965523670197464792232570240180133541409819295968027544196628719571887095111673389430472597731245310306877705082835233473071634697389127362332956715350932207144609473407101577339181781731112597245635599891943524652645094759068564620173889500859022423688177170568095143233342592765405495630354764136727082258280146748796426668190968437835168956905301063890075562423665413630693510328814348166589309615342102040416734584642555691194550660173117847122774308804676723843619607463397471600791606211282399326076444046487943332723456766150994250565447958199511612212739193211350038059834422368053492946419584963378747293976024112313460775532241833351730588896934038825780631567220136306439811061806142178255403648459330336013510395667826307365885299307070205717029674068158566667936044895897744017362647462313937442130627905446868360416380973219054521214947145304523034913379519318794563180549437425625980134753860043237479882635962064540130235930612753116708317508017856548415662605885642028323854250413743284634967124431964581173137197180636462115600872925830833774853950986359459764522642495170518572957879187206086574819008588145679869418172499003407702437361934319509954868153659739585061757462628988486357510474274943288146835910122406970944345563376146161374430067842951271673158941838432929279671657188410139956036070408267838668033237583114779214145731101391525861152166995886370479892109819481104921100524230513263741316793486812207133651452435790856786658153313558779618375877189105404892313008950462682162699648708302641249762603568319215282287722353655391691664371117692922609533462976964809523451736898069350460950139118059847994983484740260702803138675968587394737522127380612558808196076984173254338496124488193428061299021592377312815633515131938256476607305949737109007094889476340487324082531583408597030107988715839459815656331216322004718914560018722053642156232452982856767663185109967647172656519648356498757215824819807527269878977608596912520270905247411101067021387789078088407610655551265555970290603757520166914485391420032091017094785034295985549901308755047398516481541422994694362414508590898679058015430117012145356162040686766123337685093699413086405749085135722435881176485314586672509418596544921449802077716922016323964056866963452450348459664640253500982236666592974796118881707778886461294247082404380801110087993264458327217166535597298484489979264604728505478793217787238792886384612192009303776383974974535703863635538133751880195949081003413815975941709368114387025874259381049027288364822094234828054008592990056043654054351850704844884727279859582160839411555365258297566176450583007663821832264255298463440179737207921143911431836147151406424112743020800314807833611247379658126931476441573719476954916626692839772532529807977582420123472991853022835612138597930657795177310431914954967308726503535455007207324702735798642873397933333424264440917163811247314836959022794958906759163463838339942177836690418381136825720272109938754629078714773323499482370026690439095972905540764520045485141276005813520216419122066409739914871757397404534014252956008232769804012370429655738286894075167205956337318089181031045067293843240375126890436312049033888042844053537555901488815284535093869196832780700923421290836818323160677315086725120690081176345361934064106355346422917505263126219788468317020157806581311802152097385794432275261703223289868884195170123484021963460572247124638598470642909816126017380120373517842961633499092505043315931974656490767587000007138397592774938810608642925639461427493215159154941962929059550623459683778482004732001182745763651365538331163633084661081997746750234605133139735119324603545540757471304139219175846649971697498863877492515814587053838155542180488249406647653576192911699932220117519050087181585452948778482208283334368710817672573406685881289012495841684013737202096225006095595175544308865480487182954422907991542784999681712606062838401358094595951562800996177868497566784800878017992899780959874550963373293615487802072823447333459798950964092052958401279945276525871638248470846080094077498999376841105378562488572924398533826826974442465030758130371144967417827957179076928652599222652005692619058487559592212877857066901523403254441549553893980030359123254544998558756789417762270488464123979942871579419375953904487729714032346527520657819601997391799332885425643202447093719295043035684860050623800505220779811321163417892103755584991689609470440568619422332891135481341805825244320971671332827535722338535070907849583120468478800337293646400252573875188454331301716406307686063641860947369113131270455800720761748996010499654614547046896384720717180844469623518005070589678388176459946545174321788640912747285350880505824950784100567234940701956660264598183099950855859321008612308808636436476510246747706005041051566566221869996282174047276937791799784090502625036883293169671691366477800566008223696485647258805948817590241318952208956936647839103646054056950641828371820430626295700221759102995279576300857879371934410641235080243290437114145606215009773359646130021044474431375426904453729722897988348577610751545063396871623298184007920884653269489455070143991920447462896963527077904463739529422476834740525414998872775173624696270058684820449017263231110917769047473527490425492157143276589347502465715200081652827725435668847269973374308361766356240549411245156586990449294935454310342556889887231126224908720960903658589162270539291512752239258905299168162644746657740016195356031875230848163370743639263186211036932306355328592531835223963602907680913616431986983239297665735437823885963116854177745335793273999944973967439158429963284606859398924451870808227695591920165908888282463079518529591539566388426557053259698604851589096057715768654101124748943038361818283217165759329185358311622394027706778771253251172541214826933557555101173518908551617946425480731111899229801540897297013576002668209087572151667089222237465276405715102924509777259883675612337071780835935870870117580107026364949042147082055665285434498241901307651819590986558320730887956718438687901645767884641364161790277149338698901236911633094014756041420506972262364207986818992233949895892025023017748693858622227862500298693511595508533771438289186473897595723327199141049523568803173203138586651747384952793498294335963719052695759183390562030001028048481116750550151338696074168947830075518908557700715350338022015135480147354475366062053264319879653615611713544792236035625825728166788432743703283173158059581913600021765651833187153209553216863639554068040277089926100115477769174279305189311345096891490121316879314904949352677762868512232779488722323514276206998659170522834817729662125952828937120906898304348246874508104861369829522838138295132574475677421780786391962865701767929312891124525865267867622953209056919756495661219780183117307609201520434897849340487833927439282441104713286923114828933894946760654889550941216854619383295658888070746625904981821242570791544783575269256526401152316279095881522224205149660719044407418381403298083973796740865885254422622184728483101054968912783868332019405998242623868429217138060249432069439176891152028255566923124803500919065548473414258862594997728136356077437081153473092819625544574884115438255507471178851917242281083594132178312166511101130707576608457729107775212920381986736782951479884127694234901856393692835721880269205902339945797257758427484013137064847244854760763046187774689067057782811516031372009376465161266910135853271951140420976707103344496848366355126702274128055359342538100076860157813624640763849022861033356738948024365479576331047806389804865898502865653582434155391993657097704849041324597052245609772374826379275732569189744172090767205773679853452186387988146214230712334168715317648202290501101077879474444153622184452754500304303074246925902987662515032982807283198151042966400214898385537433841097160479380366436206478378525933948231796705505662997320507751460029505192483565384662299140257257850400511383106242893588055695191580006644568442829796219062100565106963637617415409262897628756031777500565834672775033063971139504600293615795950753008794871415334239857420992094900357686401920831863616966951800971471776278050104439798758443737594270392313704143568074216107493187825000692336995888120569035780729341710584744384284253258677328226328751562318212962082791160553727585088792363523318495226557029353445693601506173934600410076046399995999177839830034842800725987967727473869143405019301615856136769135624587999109809184645264732307089770296980925122756279344394912834892927151350894318815254913396061410466537189973824211854013077610257634237276456896126856042954230725032896265901505642839061478960040033927755640492085465428747061227914436966622654339617052125461805379741248720840732577612941903820931258467186703216230533318506410500612963297778479821627773819002861587952918130720169235668812434128870269312496805481446532819178039356134599850442875247546045970034899934325154386067067171036128354632826353947782237785537387957518281110354725758956303240125634282514987150536718306148494293353356619867772924993297616855939135117848879002260903521281854083779347637532349227696822650523685187618865486650437339364018753996596980725206227384826196763151993003088511861499509717524120438651711884104063637874761387163663033749443341155700179071554148921306241746125678737669405349848968326608668479349260496550090988861983533423560803687936854857600008251537703189093898244091919573649712902574906052354471630201811959769982083549721139982286778926823683469022847164506997478030637121041224855134140425767516348648922285598291208867490131315946939912197267139540133218704912002424993115501111613956088664174619497035436922377087655269071910187240987004235854135680343998732914422690278736705974785025514913881061986653827689416586591494331284240461952514276565449442146132822720237911342072908723064079540290869117072297470460417127023424295072096389586752141944317748699898099397030776017689290397686659517808300168525140872995493843074435315948769459874491810822915235455328787042434472915538738780609322867111972045757993147094559112548846119434613499596113356414638224244235126199489011756324177146933864819334730003327212715564258606828268869432194801152223465346395271730972019862192078253012022187815371062586720567373165896510933590059406878574325280661597673456672595441215490194384670945658063376602104425376460911612065535540359941607128418844502117378364801507912918698845212687943281257582685236526384236156583033341318608483503062807692241462490452147431206339706600506907778677122147026286505459211779739123179787421391588934677244972873953305726557342245743317592882969148365892188001658391914244807495011018854317138752838600496449023767638967734015791857133837875603714079270423258898678778828623090804072615506347345475620617694295113830771584269560303618301907294949212032964390956428122213509176559159977395616011794316309917879364850687380078396636140666883625373769490096371823855781262019745600472853721462478480716146362822374564972950279256379378499189851677510978567485021075500526832464999651455600726071919227665770622191180380108545401547849367711884757954718474618944956886265977262535080478124416275756781633853929720190784634550184492681524839258603052091463702079650684479288564476268650826663581632457488246905354332714308343300488432416962760797177232822720133233963906509854813835867803452703224681168182260011425111757634547786784952515066070737586178516192040408512130055384240336810750046511951419799400773533701468440747250557209276027141291551427397840753819931982007689932891768032903417688509718722030270290234759769934963274548337812807890212059821947393842050700195180045376275058406108979389530650036840879950133753616697259064499295756613540799305323359494619649470640724017936049585080639269836814706451123274354950857331531351279585561116597189643800128602218979080659239591256121980051856145468934883769274847251817549563374468642707844724171062974028991620147778279118285574391051562113113828657350618813186481558385380926714643434339120857292329689881488980089478600643732311492038877595727831670238220175090137424901267821859174166785931485413730265962006080574114333981889684733348377350794480179191825733151909313889769090178790591224912250915438437703351291213898406072049386785120476118483497675193872990503662679246680867143856804661674055597859150145126259190008142487862625039734014507701460238701158366195053133406989900352420314849188181925038104059912793906552700760440313481556309372963149172376800418204707669907881365138501598726988273789373586637709025229092715376550005129951919256434471637557865542206049311473775930119116335771479874598402780409182896080601513173964101823390799716649657206042072131051174937209856649957212116417755817356335906686520941419059331063932322921963672677468078673840625574745857099606284249271746564078469095154619822012591548124915703967081252294634313564517628216933138021253485937771420089581711835221270724715080494202414903752180144050518749207839273028521364679753877488034032138078833801611751151041678527881886759966385900370410530839479503651951299602872289916287187264990055596071272787714068173669639327979462374097209410214364478519939868718602787553948816243125540653739291039046605755242739702661937187052947014819298857846050689061774172348976983883152927633598278698317063926087273626352752616910797885008301310824849406737972474997155165890218481272871051316262935437180162181413185747226947069886964588964048038582057595337065380974479904867640258523710428343237504403378983150755403586872879954608783171352340470008793316479750920091365504052751477074602513975464953153412318907609862856069483377733545970844390766992430362296938201999343202582715107427055756062022534906109740227566733367612939208459956041195533553564202028609568821780710935148022595972185602807366735979166866236846654904032739848507829861152621123873210656484544417825065570684849573837210499687124487492385473597358821435754459121404708388171799264155707860713353956252144625251981744934550345414576371181547551615324752475471097147522723800481426629640913201718743148025818709710406804201753362241948773882281155848979431512951058039528985525279111456680009427437838371042610607086978007553006369289169196248016146904215137353967141221653921026636181708788566546000993249922704013870864598407178937076729159023816312199973496604541765422199118523028056960564987203405754685218436032100528346345324990453885224840248621265371240245314215680245557804535715883422836002484432412254789377906636406613978767254205377584307976159362749203259154490409571307482295510710360557572264316395814872573352438932982153146772603313266200893751296811221089002234834553293631767135845288266208295052994270776430589390829603386848192107037062658275854189265746253458160723199731889210573320427143949597809681413641628125522488846768167309090339844975045517581501909014781457595180942324661494614414216285201907818944700332104866709227218823728190653968424216631242772519858007484796601412983393280175942281055569976271467274289720189487561077243707425051702111379639208953235363453907564981027540580643563364978256948086855471607443060578216041928396129842459262512697914217129625944813632623713928093816697319313704631551792385442235496865265288728503271148371544055176609798725179944640568066503344268753766369820745548256732206070931397518143333034010379038361053376786419644738835135178445028486815011394191905996923307414966661436749082223190899137926930951298738028377758760665654296359000632184110786008996927941988643150596189777698292536796871463363841444369906646728199952582712336308581657846456924986386320061142375300527842546048999110521860018594443105246024935284235982056466554919623740166771839902930308297512984811339974118333847286171601289169339855659402757505283861485291553283915079652461433210630505891541718003659807098758244957990036828121642841261993354664746625594841633890627437053642615417085508622989452149382183567479946334660325252460965766710236215748675105591260655100850119270750338585582397897432984895180034519242442961229531799927477710065562614710895216256979647901929731872833442794247914032531920724781404131725912393181684798397306231508156885199891374773721648657151538916908378558885815390807419887570896567197003407467965474218794652089949814391225717753730632831500809659004046275176359738058921721128601119677274622243026418515860774941855909941999125570517221697732741359626210466048494687090596556009259154760668569478137308674140816351578122139335963096614225365121764843162343850324366030951224733644406442541518413566872882251914430579924594216970139573660200886105496133903379099581574922418409219934074947981052692739052078511662945732351107575145711496873065302639692830833933289474216886673170719364030179545827234813676365858041803013743725889770637751868018553584126478910106074692380623358677260563196867321936786865089361981949630406274905385626745881089239016176625390761053014817399197742242949838509532710006432965039470427327195557374628555294902893338915259017506133540886597585268328021007937260683546225168856185714541845358945293051234699835904841157634681404021746918494025845692097332132805772492455938656582939934871932627556462215133003105091062489750783765862771084700965216531232150315827900878900909574169927095905591955415622894083549669020167924733703205502893684418816504699280871950450334748270599436571778950946801275476106756323194149192501413823214995090428773590375858034519560538442823792581264560385885824195049151004479658229046099870446980971266265554367054600589207656236987277123484298421008774231109779522048789869575241954558840662988573165218496183300608719595655099478501909219910809388497430220833619191386829493791583924609827107586149169310671740089678487196378631140224557107546684593866579755446243011973318384827022084507425580184933492189234514325916685846994238408261142530822159725856763176825766665422837203503427151067097480858003061360525430855555103385132076901141587940795971756806066136885207145279080229297170809433971381444909623484081703407961778266430856204675060509406876258560060095254990819858446046308308717638613971925358095718650486638049834067926845927906765375207695941488300798701412605899036666413656277249397035438234132915194850095216865777589284801364044969523761458300321950130174140687307662523275270171491403808608626044323493835865597657110141221762389171630231516867284252825011280831289034411315927317501216583583147620351582025147573680876708059925860614781715624185951100949014479236091543642418675645634975294756280803345861742172141356907797514560952280137176810958790285327642125174503970855320597390746690462733472169418740489332553634668012970499777814963180372049956891648665975021772927082297267136672032241092363617213414514957507710745958304292906305592048612062893995806193686300053907681295106469372340968814621660132653619893184924515153283024006698858257016820225692259218206181519828757153226561562056985083046637131653069334084542052491313634205373213200319467619190137212419491526803103420427237140413759343242143862786245712735975076952704280047786644535882975238512282843577212227099433980074930278330576603423270521034759568303890425240461144519344735438904063429973832517281190974061372798814500455233770674273466034954567343007604725690063126358914792011924364846311359772694381843790971692615554975724734136894148164029927617280325350403921988399792264611125226122584710652806936864352799158017864660814834722148273345427465764096790138160838888767936734875190341456819409005439826500194278226158440184166728881854375694758953414359892083855111332088111214493507759967120061858232905649252303729582236134237142105571028156088201953996660647076686037383674200047394928851124719779105006383353528785302673492607410034160656223863433374233642575963282043666033914228523436640698353851952506389655765525342186363786574277184385667320383683169969525095130829163607162333880486840870961077717971025055143168361239111726826086984027695425503589985726372078355427140483427474624059436663318623101236573244020188807527959009139847948427342537464276882234270850958529880735840746759863131249318152458822302335061852201490235359935279928633283742446511267200875845051629596766569757664899093045811947708357697373068306330545554216798539265336108122054586150992815329940899323985862215540819716432956089329990940137269635449065340555243180508613765135166453108271356716817315424620255129447982186792012461089041120347538439414564556772206627947290010224131361892737493585435158075773094938364403344029651354091629284711433858424302308258975424542894257099554898318835586502967676934414143372010923555763955631342198963546846227827249532026874371161118613511114105907351761716940812066677807585022581832260283007862658381599324986457648153454891868257670420866732666987849020174511680569559887996749367582092157657513051677083543564110329312497577325159717605921704066857322766039734859905322506239674276145542329919147413590712110732846241848197165949674502545041133092871408951458764711079895660379486539900801779955056665600511537926386677877193108482299808926982170968929720146792792419738165666074617955728703392951163391614334463021335826175826385742352005364830102611328191641406221734527836135945467518463307360837332278442606448697953362967286610686089602491479902027906123463701103840962584689374287448283237584646480749578157089854210289714556466910534486445109288155511511222545583467949226926932108881294488750119321497623767184678804363039238443579861235858127067663343058629291204092878141488414308388130899378333083826242417767654632403801046057845111239866452427054786408434412068171181732327308000928069243710375233074554058148690219686683145227717123429726716582072324344837346820632707132756342215452488143398045392715965647587918037177690674347016613551719052934146654099066584554515416275498776871364367696377194083127503526358742020922858264776042122424561670455668666685619439730238968865820129800656653002860568109969288766597366808937410558456605431641374416765311170665930453445334454117061146779097221912171141162614206113945099477638367320721065148295065707864814996781223944872130717615196666446580085191727115814906305153351276517648349927725743541155708034324705301024344855773354627058790261330481001963749683578315057383094403062591805244921723923018866877811388080002624668086110688632106579934985896736223437289295784402555351513915243687109779149702623829468157013299016208304876981202996906235913437534537976366324249623200934237176921991424894909534114220292243852222412566942541346303159347499962067839074419047908497861880565982706437093848860733888361283342655856252579470631305840912044084990902693427054345265122725726309467991509135799052673592474764215651865420718518034086133078663584162857697993733204700538176262541414668627231065039724471230595327579539257931602674477103521849073285911711210902677936647815265167750913565737027135730604651741814374149819940917977905075854228199275737680304015125129704154903106219543861146348595610525141026027098701990165429745994531904150997221683599370216421835044705352370980301015715244046713955773311792318983192346479830502361522902856434690498271955014699726540669356458587657008780347551656320245244978978224998453186200140959380266043596791975568949346982119206894326988557571239005002527697417123378477111379984194367857318305536404618102705575076324080328439867543065691403606448387587823060489928406137731234668522535246901647574883165692023691123508717798299417845075176339427178474049600058748024400669922850501508437999520777589638748313537321408870410931987260593915655879391596979926749243933721053634359407650737675547525754244752043448004099351232401117447412089154564412576570878291042126463528167262867843090113346027289016790478763099137330218308680467314600053482398037228948952895257521057528070899664102420244726095044542386830813566550340942704359941268048396798084625693225946001321489373534780554719717528053932518126557908510659057476767314777077169131382997081150894532717316389630669494035660691517389501560015582896430022333438724129262177237530536383026124123061496331057518334147992841002468992337694530575407347220476517640604350543103421132864606106078210163496789596866272203038011193861148923274294988658979758324620916260277171894212036023603846183719440772543013220382473793866566958086826287060000914228919731737413291615918213647582278068415673189511366555643147305337170705839970656788218876336877403725104661773588615709792230219574803920709002191183018569130656312188787114874624013870524956441799080606009280734870859955194461377296827488129973809451298410337764395100365916517637490193100537986513652337828317963147947497948819293001592728722447925809997567426979619713266081057601105497753469568735183562029231685233488675182918313999356746290891769029102487865220536975946879535134800314652594125121950032841827128614951821689415860134756683682992623056259348545849703369796796124294642432437924121273192753471190672340224263523856529686693060553710021531607550507190679071514041380041337679894807319867038820772194832075407299271915466247387134241924447450677185465489211406633644314855150979001966241334428343963575178832615439922785406300180892537598826639809959833650535073455154234475544666968601363169912284251387066343898039876584576864518734406290103643210606862375717828684190936391987000513402931776781460571229343499582980068061008320412065294664105677298842392042433719815859579419227326914069111145361520414147975048530782078271389933817814569048288908036039733105610660654763200716970199336402401918065146362282925964707868640613966683811680086246733638001720001739833900527526024016486549779915397357582275374160382104170496203598244664623610853305108781996139823614787667217957409321607366702270356290262872612640983302395758837464098901939700777468782513466625089710762226957526664100737288741547987176348686160600578106080686889612779691871781342702964621204617260907787063615774641926774971388921640526206175457395067317129226392207047272050553411741958949697262971613298246375739199402052978406431641073669047048735094382366484919292968075878382724950411681403962201626242407225342306955721878762722666423163848182479022234613811454276238916358846226041895625022273777752417243597583380564422651061655797367669835332497643219853057111732207889281275755468495150626987597987157421330416761414827972603440214510845283277226521532720846177075330290493736555168582688188505869006027024626400279206304369361943467596027130992387119154079958637329482697397175404716974290408533383120159492375141660111016347072783973521820535856154938361068125844351112193564175209130376738365482025292727560215945704666469358955331764228619694935948023430703716684328137426023522847737238296179787282254087374838162122717202392263001945339949929652575402294520627837247827093317552048417659555279260683094653544924004061743054215187350613765150129741586917695640471694002034143412206960506403592748621011215355660951503917660029249152747426536079719834226856095489470119058382340333417343616293628320768667397305407042195434470830319377907603733414293082792101373312058785926907503233340924721775110023588053408171432414392566593413240962393204895821686991631374123256541646373851692219617646484918580565993976847634697627768316507158977695447719977747884506322521638575934146356750694852166038575634102412907994008036544990929770029130000274267398558376652248586659917692377876291017211432378996035846040805773736734105322301629526007151355459451417004761877485263780301539759153264756243161470897371254648491009064028051344036728881384754030657260694389556335192001335389850591770209939065920277399091880916554481125976052280142322492139588950935100056571649440770844904427834254147440673574033477363283295005404846523778579543832017152179714536292383870075664749650508392972357126311380344842915919891079624362188017818629775789121626918869224223238045966499496825655401951834027595095913220222611302766046717822291772413164594758815133348926328350052834002996074981669772344652563800150098229269731152296628369791024589896596319849084382657275923592021276505801074526852773871778549627009469235147121172382636696256242997683667840759484285821826626263824433268167782885282694349155890151412974078527203425316938792040535857122384939539193865621857422066222905099977365252216330051363680562694372688477369263233042624637888765527342105109378407942083137604573309354725035867928101471803745221451870917401843587140200095191561271814286877349643631743707244696828516319114442542593842001110667247893674238547756799351153227333555053896180515542375542154006418010990454920183163528633717851307790849631594343674176145599898159860053180052856950737443440610892761436603371573744223193630696003720803670853268221782529174738937776255033055457688654564845944664561934407361361667525230813181715258543737301268140610618339129678785206026982428945344026437585746544583703960606215513148023220313560365613339737347420154057728779187278891812790602232136435542712138716655291755447682069424885494522172339804480365198065431533782510702028459204206077342241075817447499007069863494220109087998338370751155503877524499749782980506387281409954997496450560678119071032924322680880462101124754797465091372413538030106255280486468046982051976712663076823648096077456870037298908861126785428519493296756511630354682676991805592904718347886493489846558165451604704651111821085940137747538855106232432285804510971392492894171235039134926210100040345520657284768489899565030542704468546961390357971587440202690561109130006220238434488640535801759127669402953647984374082764439443987708467063362418163732834668941483600574217907375117147125328515216179859931680117040144900570246603751278538097255693055997915058154166539761425820507300272288905905540065856248552415525118235477975893625745501676745269258197988725564884526393989997485392969588852853613624653363910757905707894157885285831073772755270256444639683050668518234136197687019562527725271241191734826772890031996249715671123441494775199680197004879905987760913292155635649357554751640585303118875286055197272003287987189580365618195072639874883913561838021874836062701034914701423041885177840049407131325751618406478682428494666494469643727544597850159552702169016540379408972304749998178432773127786719093705974442329789278677240525682392459486959234461214991038332395731696216937764629281950914858695640398413584949040629056762566639895286613332518869733705592492337070849225025420842740591907070419271645871548889881820362191005621580765973103228992660340857420088242121625928629430849576738876394298808294944592193725676605503263867853288608159556064710512919096831507977729237885032107399614582146809796558622214883447319813208086298467949744411006517365483597684210962375644690148370393041453869538975546894152456842115115619837628942406926053598668366069785996196620601620754615285033259691623303632514144320660809256339866085198855139880268852985488516508444083762445497469100411143531918757893074765831828115869459227804459257590633500058272660417818819821996054937694050721170481690310791065183387148122457829364190626327993381812149735821519473867107166148899410839037440010401526753953441535054222659618288174988074708339573148419833622334926063602869777106089826245627467681941267363349631731641521943965665400721318256093674318804993646242587035601851289908422353667267008324881012322209795341715084458384878751842314991326628475017704384280512975763155850427829331247851978529495884082055581598825034832858631531951809576933881150415977859846599395804801637596260936776703873054505258150687181027781342726989516961012342312535700684394996888454597972011234347584483803074774138936543555481190830374818338245718964716163808522663558729160862135458555607560599681117625124123734603425037487195636036476117699580101352574005624220355843565643847599954593064908312292869292925995196908718543278353734987064338808690101775882258509858501509308262661824050120613843677302410863826394515024385961770120536228559712906803826831816980746363615162587200728855869662033167592940842355928593149309859295283962495923040844103631213552651303037881681295423132672634276310159662233573105820605941637641930949219404740130217352608953017826413490294982030333358878045704289746545350074257113291671183085606109251633004725331690989763583133701727270647680955607742249349595381118652381025073805094695119012846775900002110732243487231007595850377953363965136075106022314044592398530190162801370832080004112840737812385347038794845020951639581347494655307127179737008734284027567985342650506901308443210954373892011195352732703301532350660427292350388300336943912792776933534654024553446944138297385374529080701962795271960227945827429568098199717191641055107450453768426487826842603107151397279416196293723694465419649752382235277508700266530251206307872259591826520169500517930260026008395324815098112457749234793790726015219715508469629478123065431902585290907571485414869390854964270844048813198506313502218933536365585626032001293818754151706479234978075350152521556822423312467200956217651651852222240716390326483620828978326608889351065041126070952507626741968590315262050309800372394841931562357840341983686675010281154590760832477168580227432545754362706880496558549656375631349443110944573364884762444630743735631859838327185893262113585952872499791766814506765253930120113026008921087828269868259476782450285909467720118564335023536567788424316873178177015339572379418233033378828566331714174519723143528305289767597557853346085428794200145601458623115163763050949674346180434327283217210599314265930785655140577751637158505934683650937357473793843732426872173122833502415868480222755742645390765990332122577149952649578892426109125383406070468202146921633385889992272690605813710389117889448316961674829341160096083433279708697328290764478604929985563155196964085688503866818355353190289310473245770009019177997729421892732520156094924832056650474375144163254026037589207445390867757806677255330881371569732944671953593636985611181160097486720769647375764499051836185251023749267955169210667538370072903484684096508129927963124055976258494088239001275357516433457649783710790475501416478850656789853738552131798894730452157571059420211321524777352468140112639976333004977891605936116356170124838292485847472033207974199542630517848201137282081641499935941591169956818444001845476522783807912860409473389087322134371876784785891863156401334564019014798129942566209894640830804422559918779515170987854827499939120174530260338403155516692454002481256174457314212261106993142888402665914547145193332259265475244052235046716135027352342570967603069060959768516243717149197278038664993957439273918754674671188605716750562534727924858457598344853585045980645586748274638721113317600303467168199961650852872561787062460121965700869526244652667581766576034342009813551324004662859356665472971543796736158178414073553295823122101698848317052487111753078615879264033940355157959620244618684084957112913136994266803427413691972604758788492057609647667887501402030818933162154208453895722172895036290466938723271867106323461585020938702999204994883870581906030399204305272818204345301956546759971128824675677924312335160229940438505060432014647087614825501549545883991078240611073547615503782240371145790266642379493930171955076995077490702446376623429944140370681775942979637655552487856193401427785056717109696224524540151827815508722795741409626420161007004554896767103099513220430519844423932206805193948745833580106618979806511097459385330787223642962042661195865918475864732336288061669294052260272705774530979509881546859696117200163684089242509010227943369444382286675946242337722464805325504492059377115315659957545834991327229416709042384984529069927803760549020433984258429284564988768019272914485624063854407802962873784626140471623378173272629055661242739825212881760459321020683823127857022789764382827674909351100834320151822194797242019718590824589250312539964583201455881652109817767524598601512412254991845641676713608202023716362912717080269517739637411876368826113974161871516103481647723547325881769951033691791132441773933374452207429576849395580123370608414740912849410631104486816318444207880601192359176135530733201085260742497031355788239203242466565876138191422114530779510134500419692204581102231462883691137559306871737286638047409975505802510382521058737875617380279752646985657712350783720170108653212113507559924305764005284014840890460109693096550829484820422156730013779268224280065970698710679359387213562438395489292163356228909847830273521605687420863035265702014991201749446228566013395095361268929544267962166739400292362203335647745324871941505725461446419216589391847631592959097778534061845467355268578823263759244929728564525230933757018255167567462781760754481606249570522657368143791119009651166125376529046247834846217386941616301245379566140427426177741869853727173114088062072017808694983235376312809665887183686981224951765098634984535614165857313407400247381693330239326114578416776153917199305013959785265983006359093102609417595892704652611543824016280272028780320257727173943346849019774621084653243400010208215661784864206165514652751656520586434569563097466852273100018544117131172017372562777233185532407592039674133680778284416669051831646921639154225614412110818383928141797600353158067103614383716068300382010985914002093101568538093511372090479077402701533450862259544362772197390188668571870234563974708385371620812112363912198489945848519684118498560564845746764810694623828003117087267880297793332350006797065426224636596427417209418306039781868108133292917983285396957402181621684504081928872436927385392345692661744434010231970315499080923774440072906739759374084455193152768679064991182779552217401826647255244466705800427076248834727765877281066213255343503801970994068976224067440633794721239476526760791683091639542521327550758091822996335968353938507717615422329603482234179068637329899257971262741120618494084459529751942985179487986168485396381465031742305694408887320178310618036495613601448015208747240127795190814557427976448526818883232313433820542072747620735394412857456469911587368913013686007485594356137022563634459456298843988987733053351236830314790035806786850692067868926786320265011112260258939483670592194696370316019800263761261903200930006932301384077686316255726171085617884836185977022995523691270350200665043437188231617712162856160899071011672331842018315076063479029936926348601966036636834967460934644113550905011896277940420503335380563450275715805419558058084764738273902322252559609481462383523704236719169114500114000392998431075673011449529728814252390870832046484942769575888208265880695766231208252619619013839320584550881803456804513172304717868541162825779241361815024446605447552262920389381515766799976304328859098797885378989774433665220879167916189902004568817316141467482203754320576158361312027420287600800262158357017175110915213091673461201341266911560532299489801321970182671208286403747321402240630592962923970695652745787377430367353889300217267931142871416480678104089535425941462515053353611072627778842957832134568710339744778604110979065179163303990790646579994527082249844031500962353009886514078793495493204406578359381446428304826854259834500865825544462198209856320077013918848775209856987334563822859939491455269304715474075156526550153964944344710917317353514346940424068546031318784510232527568870327367093031421718176927745438009147971009295383213186930803798851063219288141641780413396742458222226239410018244537768546262287936491611466583791849172565033836604915895754397168357862720108960521647320414511054921491357597204869317827492510849011572246371162578157927595439999550893210083265492208280029339877295901014995916492208911613766919108744021287367540252307613810933878164727581258103921368132791936119626232535687814075669748190580727675489406331418820631307922444806420139714608879243153185741009879727286337266698775645039032358742264029736427905791009511827233478013435606403053692350469489814580913490649945866269290317308363967975728427751223469211338215181268773041115469819844762571957449907598072154068876955310487407048549108994550544002037126481723874963657991975270654755051923228262832052413221623908253214877657074998369571104896373572959838768400777182806540417424069621111696787487361713189768337889046024135903210912485362353199779376593366224512002807000960091259080868431066823520231426573017018674571550881820094434699627315259545329036312805274995362197251400511707817622696483834754574102265105262062498635729704187694673113891190080791526303317660275664820345529449734532008253330164342551375072396727326495786419487851542982593316005199017741481259554775978887214267440105966190633401447425670901005743753031734416586700333086168033363806626665514246739507349103300097005204504774179168308217477520503788647515056297034714260196378118519616035636757955215919148966945055501568587175565781168041705434353861424795236085005834002535006234437072626512925260652372650843751096258061744905282562543171238268414762463706598878533441319555990258347925639136455171001333421144627479196281451294678821011280228140551621842831299536073008951277599043100865861805475282930380522844791923127389113040813384474848005786356366826189987021627451243505384563801787849576724498933839418245621625419801739970783534659844240408265853678919818873543003258861809284153324138189666393942917177045165445070095636196111209765173797063015227306646059298971329840781087573921722914080764351980680930230652893739359425787133551824115962730438294788249947046401371120182991858952026573979027671588800799111167428799194042101617412699702807468512326924401705479562621526249157280703745662490569282333452353951977689596170351902524271967540348268702532764097517795356183293911984157139672215543418359151949156552227917869516502871140794353275402492780137071332038482315501164881792811661883339299053137911806953855122876156653802180929860997221226941102365022055902118953147048230275962550307980845538954669631535641990932476047812438604811629153507093704377100005719129111399381752505874174503568893460974178785009358817172733395442667112565354234825278559352084068063358212550550564843010956942504462856191645234709758482873008621455673931235996479462039604270104964157751291653987231402997489491841204798678799575609241914862338858414509917519640398031180297899906443918244146713678402222325792407541702497111443214574972765925014886403815514756599634199869072923941898856247487976522376796982501258129230115476598976709291279125444725970426206697262454458399374185873772304378283601627928470358887304546753580306137900017609074121581273319752198250315094595593859047728881363090904304277792988584411160351965531642332430757050235532970259760097966028574034684498099887106533182812035985334714128710798192937386407470661710192997346987497177396828569761289752318891386353877058432167421745391329818087128182619727757411467601372287756645192525513583175456729272298191403129681277798001797564091168016312434017797149320980973110027772450354317094282513405233063361689058163102036002186573991308235415472809323243099618834696191196900826079727334006712576105482965631377514716881880547687363959339441594601898598283028862924509193117030545665281017026300366192809842806775930462030541785736532842036287776799213505919393084379613392356063104291584006735127473889372906616906127886456334786353330495866899281965482785990427938727400668768453994824971612497194120990672839730018394845703954378916407800527711731053805027174109710213541870062023252961773331360047063374075543683799236547275253115019179435240426376847884803146818337057547711961765794056959777945273699047186937637392100179057302665572043708611366247693591341895115382248356026662041900532046680165570833265183001083234393957550960772251748083720889768933938123378758565887399945395360122413252494023484923378935662069206292468123810935504266693442794548600163489694843583963849487473543041232767739376651596368824605960607347190619357585816846097853708327434598286563857020421403094949729679368514676364536057384667159326161867293623540148829066907034928443477276014298045277795027339927935173300289548854826015128987321879987213214418103361284866573545280393143153637561504976845898689481454102688644246300600887405714629877218408394910354035892420655881478579318867822988277706105977075107827282899168248405890560074345087417490943023739009019924567933089888146781166923666804761475934321556400116193918092163487302862295367780543397852045479739544905897349151112967509565696813421437608239001714185067882181772606476441464103339029200922874722871989952933576425859444440619487157837746974843583584319388725334377827881418292806836969951301442421075478850729025603796591915405060416509937866747900245953835929058320517735914177504404716931502849817282989020586603396665827228950141187242117010924590722793316052033092820358326375168015685107868266446674104717756607811499839921504226638854996542110420423434804748132782512286136336501781047998928344055873296547597369655111162055516284296844780842346741732602092217222303607477143244775498695545036514262940102791637232151420821796948365320252230349303749704480351416456311045865461941955111596268165256363254920457279114060726238266691081687081145355493230805322360773530685515165551960692590526015453228226664090818421512097909526476622595365262129695678149663390612524498922513465414555477939537803909646969004677890062990948937007243432359601735607762007339095878973536647101332250673626155372910135779880479901174448858151563001449129472794963107050754720247873494876394841839489831368867541136747852934792041239848294306732574347244906183595045552837988749300180394728120680633909311743483281155562712873212424856209698314861833306922814894657326864770375707250776957512053176763983269935090827717463234198388999563881427118200165780177946814221049499847686808909806141861036040545212176348870410823736347314488994838939389187231599481308282081591146453109525339677445841967981883379663645331290037583882232341679196205476403563403004631675946761765871782968440175645635166094715669983917751606415553209621547927552433944372494119525929737773040821004231847164098336999046044756096076131050986355404193264904440152758185034712787419989741027624782445167638938917543363181707548085322461741637218523711238880160840069540754157703727355950935734782970456752421041340991175477478365561524703679129834316072978214548528637648610943105675417423365081253344338989589763964133767867610867045186944535577900061374483194976429340034574347413983010698483859657990903462303979801150367524656472016561079147002459762422693988133588751867699534646699696274645687329544134632158563119934630667990510248649009426586899227334473162572297725345275620304337672681256870961468909011486034700971000657395382623523020015509071573897944851079944475792353799145304594465918312273733998486576901874071015655498484555488157345593673241219984592928146309831015636201856213288996745554877804961325861454603613078837004562062437432277749981635324525860918636341494820538195444756868476140894767254567447811759931429115467596232454190392987263164554530759945004692635200066150157386510267830463167936828671557174949976487041043202418144973392002072700152747303096552877872747490046303533320725329916459165375251730611705091472486944650213975492050370801753281986607383452645684343478810604213639483092282564817570479561210887643253141473081369231288848122766473636980687677568783705283906011051905231407661507795784866156688962930822707766059987392568122293439187032039886141343685931711095882758454915657664649493731751798365827718931917714146993915171183871881043073913072394169474685170605230961005100757671583871033189687453778623001812998511061273498995552018730261426235790279138981070806303241526890589192272404624252709339224728407929653565639877221016985510164126464481763192848827289868011633320981687340360887804953103380432145217163990392544820939608149386143312263853930140916229411903610026305037370851124333068556936868261224710233493313867132562598996729838737816433292336507702777932938184456381485914011821893906240272656856393431400160917345986293798338639630082188031685996897328077850194677711483290831419082223607801512149025549631050275840888330248989464700161969759740438888626857221633399105551802164551115363863494972446179880884057356682981737546535543182407618500396683844258596532678841594175446301671847445608091375741429687325636730133609648171779192513723747538445561521451490238991788929349143513441556802616514696080029818071119507251308471882049813832561073021369621496535724030276378740973423694421307097528777319542879046671792929913429780862474568523454461227091288424614885221125717178907295266771064902325353348923497016462226071845727588108481124352157537147418899357961213418214233162820260271725935983732513164671862603737653080885897213311586625755288598898550798499720188241554937701454770393344566413010351415093479979427181060436230403227036982131650386437065965028900978722051522553102996297512305738393094219113702758658563338679025953981126511443034133273717329839699037019398917191575378040310180398444482625533819699291761329497226717392661881051989370799532001010089794107820761077251816219791240669615321244022596075078992415586771601813060976097465314435791566457611216755028986968191286296422870360953316547332200748805108954653415727673203088924367195680625752999412834636592068662922434243038318706816970169229124651362744564574359625892295473015201301628158223569328896392242273473826510025288332640107494302011875864700514335197293636410724176770582341804404101448484398580035985345783920761079782722037157328811084360146214599757442302172853560468882533644913082777996909643262554716615914248669708907295082163874167852580749225383242935168961093829503946401007509827151133308254869141682562696041114450990870501544363291943898874430446858765468779966774413599578076212147244135679920785787405838875213519946860615238505702095972662231962920026181693865057656149449399354674073578077053092035230102148301086556920169535502315933353529575884491719087747242398863754997341009129715684813652721647797228337616349088116898279972315157660217995476623606936752630464956369010566262850058716999938337944080078323233824008846729323356822150649391448556497079948105261787662402207554636053303990126038346162059491488065740450811411489429727747100408819935516350212218183717972929534988704867240676137864488039442187947425258851922566118115144371316568423508704288560626098785137735922065787901466744729551834050009744519788560885594048388481871557230136524053034456334840321985526641725363200577417397430095333691427809022567639424698226686653380037233171371291490329099031972288507404324665635514807780225958332144598429280508882890050586058747365809632478360186132606078036794660446784248012237509031460715276539086804221607640887803379417683635773793098407125431650629948764015137430093501699503555454013088085508999461800677095482762321590846482079571072379391436878727228432663156038477917198748985906953984251588035418638150974212111348673033297628660024594013371228006967677671393405832375295822886932678561179546989162868234463004411873025391198131221831518234108056277413446661481467012407128349205987483506927103724667506053005043884915709940890304822340830395030301130933999517396276570593187100041696131258014951694170912020873834125634612686233824664786536468911332143559757627946233715533213273918641592500682580776826061417461165222838861735271381868147809666617413074034609635744561516896822024056168477594142067589569081590775458714397974791431188903025833003671272033492623519892398538681935036507253258220652275614454736500215886071736630384696958403668394559330658059747448511345876067179648155207105586652633769413920197906930226548277755439973897024766511594840938898264575209909500216059871183015824121793976843272977697430953415684033401259104497179648506167960807032180462176472480708009024732810332041358882546140311187359086794264094908290512280378746320185517353651856964766881195846065450243601187473825236997365929586470598639926209547830500265672898663530561481636162363253886410457834844023738006470677086042805991420208538065898636657182628712981583769218519892799803832009913095414080245195975638388968419278257243426873148497029175872314883055570645686680877322553778791893395594234719722217264221276088474587836788573472127312391280140892835762132277489790832973154222579037361179294627643325500749244764751453534652422456610873637057333255780151070714692762615469800934162636753589023204567480482030384333686517279160609851436420057976807171077251974068765593337388314664678991668484167537534646190092595092412939885448954244281784376459370399262297713786125187887727367357486822333640640614750674480414988756090896540179233551173779872425875538392299074642600071950553845333233687397896485102437999666528653828150759347475485561961897676569536368210930643831572916589943362727713932425716897636558755708284557937885712549004077337020845397367508584546905009733347144592076400853508963253806365223575860683638371018054058386868681907690796509705193292927154816172781528464825522214767576350276697342718532364657310456782732307723687912598115800008810636048665298381480872829727547147059105223025134224035802756186458215584845454093413205185685260520205494040607635419999912040888668848161523602399118142594957937485021007784500705647761617472696253277549870403899292525435401599046276662554844051856825466499153710718110800222695317294086670394071122925962394400546443699583784876354160781520782159786347305486438373546795216790373812451789005899908345018677976052737418123384921698898254212834516673447942686420406515540353722388646679325963950165105852200646475500047912157980742633604544654803768668538218600374856812140306263461508066408304794827098088782980370270481968365315871612300115974167733825183329454018895474528993452373798435999400446899867285815009999636157826772643151233138775095761401060186268413345062557266229154463008656529211954264294240055798078331866976322411494528364249704897059997491639273813927339133162279286608836426657898105841974766656150350265092510784517755782759490444069182201419954509130733083221614200039668142701646853390920991051734018720015893225249494527567135022720543617553271771854870549337810417851816305269839625153897186540486902753804954709877091853750411112253673968229827515424709028711956976992934100506423040826377036619888004974798406896079636483134741595586577603011616104914140440325611924036108282871934483995636776161459751506099660446764579270850191614003542877113362035961178049127370210733815583202109459671628302049897447374227319581878125478917225042870088550487164946539918966824685238049485526982290926562893520871027983882123772524038175409863916511675172535302284726135667236295667389875738916955044886183425822119971948716348817734412640467944222034110118273002724470112559165182717857414670519264964649409134207028745373520813447740050842982591575997585248855837594540285586344279361195439737766829851494032155270115588403594887036313507402405939860863181403316123032362805847146122599143660233261946092512366811372725550412819262470999082951137722058189042538865109678473581472306348255377759686523251967031686281348829291659028154471586521249541344984180933203775582262758843999830720524032685145883674856597926568117262068394312056841298902987827284934131272762305569010464554918474618009967610843986126262248132718337478217546378644851963838965955706181649124974862815057058087929012967534657357750518048565918045929889616185668595490311904257110279727868806608209386434744322610267469820892110652927770042147462967255215708135947161959902253202985694184696679370864185396457508332781135357535056448098238133480983479503857684265520463555543095816223835882191634966173548248025643316883156840503456253452249123613587891468468670609761804955710911631326370913052867560877846378270829721685094377933502773965633486812403731319783472087478260751154279107804344975847516280782238635791764945593582954203166522947983153968037708950775657731799069801575119625368611265258097829989033764405013344377756096839675347863675827228444131528448060161502734103599813324169442461245270713767120877441864438247311761050983318283024890351785325748565874147781928365559331764966557847227645967365756875974887883535406237164911383396808115914061783570039701340378225030780600710608421656806242567283580103149202897568783776849564846396927117845334274307858494476899146394748447723827109845788260118100561633912615971524183666951823155592436699533439304775923720441201568762083120217264603678180850084668077581130502635641213810037559700584113870101134937849088093097119286381411390340258535536539402514847082728628774216976649600332332833782618069068227709695751240132066770558435714133012463258728244151685909637742012311384394756127520214587757911349341565700827463838858268919499745461566530343780148128762076084158866046692780709934506376870736599920246894244253956705371675200138363734412164461848133235102109958548032244824786512483730010400381798336422206849147856127686398589713537669330799027741501049963320548143514314116706301461954361732706039008656334692535155657420912157650393495459628318047986021297739495387720713036520346813678836921574228368797197548747224821392176013954758024177455463738768789171803612808954260008212310735498442379125887417817719386245430832507982894170529920533220789592036700963589926910959425941086203871333401226095157705760417483054648257002178996289135385576343384833442609297551224105800892427360172304552399348145277418495130944584265384943959277664631290595095531742748592957622190262929456413015685229376342825043986947072517477885563203514141101599233048669160256509895309036071939961110322189608886653172179162538977660162878167537440877882927335475050768112789538037157867898302406398948813582673705064093427645379772554636014216192074335832077877262419057118202610170049806356302358683497020611689875598569968035846243854836218252330678638540437963144999899664117086257665508505425357912459971780976286723536965518825825469120948434212839451656507625030816519147877623973852200572692773850637489719963834208705301941038235755809934032498139253152960764426929157026176393315512124568515598534848174891513868198390847994576228315381152267030865301889896108148375557639719829567710608279299762431434718296855047514194342241348859512071623838783555820693492239717652092191620418878462748973520514539564634105008972793122441566580948374177259530712253151319721817769203499570681108762498689520105757101328446632851029360876027553879286350013151999250788093989237258131296181194347847218421431095840057427547686053441996184554676225250239305504721584381048566402465966801982541526201515888433421349692414914610617770189140433660405789486677473428332911956303166091519059834612517318216920353914479724177406157908894847048683713054281980495508223356635737916201830298753375918536340115620247260957898680224161555924640537558755507425443666266639960691637905474316069302290679714817694747953182243170006272634252628331403569183931256851661942568184346986213631755423270261803647091276277537261605819153403941656307682820974777492461312913921181449894867352194198578464368469724106143521038112776524586118034311347109392125186092101363062477078734751767935327244180297131102525631420687952296214198901452018738850762353828294484665830485368811949691256122674767542047037218624270061682137989858393399359601856527474761401599830317617940371043162675433651897027389392809339522617101514396602373498285985909053650858050827224030172486299616474441907265751051667240958203249351803078098575524531668870759315064827698213442746886748647511865631805530037093555912341244843990324807949804648420674857459505738486257453871415324385119311815049076103257936326000496174274432601579900570434648982643511486718845443913792157846278223217875981554731346002712428066311095791657246622238233149673670682241061087582675737263154183869633253945132054839048980808026762834838540532360872964323368798043625769771415501925442187172968070624563758646531159560966262646685847990527116986298095762229140157981299877888128798596460657568021595767229732180605075414246308658111646801092566853088256911636762763435551212050480219007273861805725448991063230571872516850196615951791386006747106266553099262926471406929732205077857478026148934965120712512849011873873028075049579243997414350728245842761345263796926254596030372844491139826482745708458715718217423789610355322771132337829140880010151526160066027761030882376891975083585665040992498301710803808848445277437213309818087832285200242738449341710091036352585964117327461105696737654056672938672379929864382750921347858790196699787611512219413205183166747711551647198000563807900871885131084526212420764880347193707410782024978272192129237459515156134511034262408888635123150566838048284526211852203899625936641410150507839815297215123117653959417712240196285314554623943280756854260979252736964263379023135631685172112712887889441538702154665018120745930653445506968342697275500031564801328722425800794136116772013543602946783535599062732925260248435100901871943953594359532021886304270942868189041460989594077783070215591590672424444428230068020744294847708532521954695162851373137203091795072673801383982772978268946935210829880921624924608016986592361944789339153383679164749846439152121079487241526495274859674513280203650800108947605268598690013181345503448884506042978844055385099991357188652706617348551288855858053132084579991523905292475583883064325131889582118322215016117394404364084626906569451048568299893385795216355081347409455175674133804812746030605875070307333419186830112477867741836500015553011765171110020608148215601620564110129367921991523490641302572693828466180045871880513562415435159585716622006266771822532232116087558979357455820432147489756604787642016886164767754815596789958147479601115039743879615970557361089608426479560726886104405681910033717231687741661180434553501826930947741041073576974486453192570477083031227680678972636504701636614858339559403089682253753270366398405066255838232107226998465531990524830811185393785069317083663793095916589274342864357684080971743729427840577709025390999253966917877302966453967196892438407200307069294727764326996655368865388439807602138842232889257953178528368180375448337512959215725597567608151745913020525666505785656019850347948106206170121876681935598965965149796268431309334617090607367456525346340015750052220362565050172287269162380868693587387672130441856827293114644408060592899815268168896782332201317782888192817309961454335652162232458864838869923267117473029301476919307286094858475689271842405577352061013168814283141386586487698942646455033192456868327195305792318330480131964280077207577634889196998576231022848701679430185787304842044140643867454023866129470582764752883803506586579197014357047595513484711496300487920770501859785911419850443317191836222809901673065819154682185299630008762419517542451802187808932668365072792755068213543095936028304625142873514873669757289792902441975672014724175802870331835668117842666272284146716691949116689762000082614924826797673075320281896463522902233328042280328607834933224551944279141600692900947850425456083769871330812200059865605747688464579234348115434567714602097573220801394835523178243016486497820958513654244690425274923627886861846519977290300667732457953105086955135553581298696279386985143189993460370360943865641685179741917822728939853922254243904677620627171396267316626217853501241077018250729251032642894556890345685776711585304726920053279979259646891617745816392030668845691521727199519421077983731608826030718245443201183246386448358199482154149502887874758938718354518909703357738491336557114059053666307938993595636181579080616961425224259558019084894440291230368701987834673764424163205660941489210766030432006968236021757686095974806672454718722528584300255999695401182643596042333426754003903179640609232859801134547818224483426894774598970597220072667025308597137843024988627464832876877027643233550589272462361613603754295515278857091993381916238881843459624100419774604111516377983844681624395120528928882113653927227916591674512799381131027771816277092608458798772942535019482880196000154936250661012819535004641245254907617142608225192385228638920034404887776510270170908988626162512250122320942432965401346717690755961525059371504321199057275167603752495469514248476577943150252912592986166590674564311335736840058986524471220932887554689986547052700952123074677480032438199169304818240030849686313738653377278307477407401524812945449600966257987872666862295612982457381230455522218379179276381287677264092158786524357946563384481047739566677567781884917820121065698905664997973887807804236696557622506069764820746668838932101016017233651835193099762281021122746730768931772555320543790963317740393275823922362083972571858751843927991549401301718357381390751922502542228530540923212090729611086290755690946668333694942600618822768512177146742641732203609826052132431557711060102165701214030608445416910359105684485477706543632546584157082396354909207289033007659412560396220556699196075008507546072478567161552980615626803585597223819203123808215432915479511059571963984446956844126140618278350012428391684291769514039121682651994604572068416382533072756029098342190636404022762051108738278483453987246686725206807177056809978387504718679153136207493650113822476329784939735730773822875135186870180728482563451878188550953758303537349135943626901035398203011525737869954439039523838968993237262367122961501400080363144975813820964690572431573109287841507378740130658554879305085358001218157054201267470331969513556656608439314052014488794741771208589736149776214237927142978433371107521047215629082146143084509767352749221575718838685328818634872681643906902639578496571019598349186383795048674797133191563973848710976535383150463878127299340568321457758336791017175515005381143720789130380315738786219871507263711741327599118697776537706156917346531010952922478546046970802833716038361199445702044310894401827762771772043030713945573732817602740327267256223450285627106614869897658590489301303613970348891139939163598054922098378443770036771183797212086938075994503282454996651929353189799669778643870523625424894033403522993534498932472351893506470193959581177733344072732228341798309658486120081076064578349574492697828622877183851843306325169478451873344196890448122521570613256086049800009958174906199030599587990781531478389223819848532898435112273783818691155722254181104871985280791373837908795700193546906562505003643067984291416657256318358133769213892550018846678390802032760913310258570938569132299788100285067408090901051640785332369738195321246635903772872969598857332872124972435817418553163415906946157802664664831632529382041210280017757900496990817845141847633310830950093809986283493612457863855240167923864731622696303062951150067166251242551794580533270531517840462560030241930950165116492749969097899225159667477796215915219162837679691320560983714001548431701706575086631377413627572302925798806362400121516579921573687044806895678064974503369892075861645728220471675417375039097850714944727533647687849273395500575804301204320000608707589318297079987446169448341636211900771062265607973649308669272042132588263475613078738505293528302591273810815194974291250623460456634853997882687734128618434930075816716015969989727706351691252541750959636701517334812993387256814305073834375980998776713526231957709997419253032728435634092138121262992254117619580752044305373046781192365698134700684771195423311198976443787429932957470441563576448660137584018109400717728626684676459657760519751669107146099670191481987850551738466567279971409847435321790432715361516858822053715312092012080367477447167141309954916571472096067463658373030872704365246782933289506871228057799911553937430081907127790085380823959002347425654720943992594143706407710221808362557728833331037880318562953627135207374239086472383007335575323306118855806764520005067211351457758592489815460243729336327044619809824053914061513079724329579351816022523990279216192100920733047019986248739623287328537390233396302845094473709306094386186821942287330759694671361615066203347950953502899763925527187508046030036937046472140111472935527515653888736945763864850095943727499785079828190112464799997665579174439586795440231284809464728252584762423212737738272845505805790556614450085887250292865811139141275988505461226759153647971794263693769454156483827471527661354228020955454583511913963873675033754582729621072178060491294588784141124868470505796153296905864851100975141113870842433006270785762699178319177564419168168340366437161862534139356553149646009655378098656441600754754126832580023002625887630313285869237273656421824682921003290051776855898681502267416631568307840883875103630088974988177852930596610010927701384281666262089241414152901986914604722791828691001230657735163569749741629848411377742902262558128171683014946611973443208374305174925507556293146430575272318750674999260515302801687552580459988516359798317967759386498190437256273229064236247992265609764669585228434119981533370849343278906920714506776437259651099920303922544835585996967126425829635756742201256648257210103169983312402600954833255808076843336999197001281379139709562851093503806047185811704868575723331055982458255252855612239825219770502603896043932921692448996671794332201897643607856622617908238588407970795343911839871292647094640284185151217661157438204634948783118042433291740340920275878854596321592209758488992425552903060606233442776129959743839673159063204183719341456399265359051997661687343181206440964428752880760650580942708623238882629231583352790137134817811622949204711924539206381679069998922356043255422417011248704848652374900802518001374522515501748706688578906426058609254751347144362121688858872648623944149507831588574207561560231012597145045970916490130085209046689745778195666168674802934621212203882354235047444482638504216055343812737976705218974093208953492851324079635813770919314509257714885075567643912966919035538160029939640221037711719244597578863914755053730336340429008295595483681028149318849024729128383011540491591455188189095233228618328671178771889403120237406758522346845809457104191526464660834374826140478756509913066175678885334339522353081376992793409940654803762550790921072042662250782278043961196775452210769793341965762148675009347511346174739590418784536853821696020238475193705733539796186910126582480363994609695294024223205330716742059093886539960588341416064690621348240191985323911537748066745455285138447461021781478251777406302808090419476235883477317646513007331377952265350053823294667457953444598675933639853713003340908582092818160457995188650131044925332057313556820302263208173939088547282384390103313092194437819029124823848575468725185872038852557604691048073835969528461687635218098390500205470918003903563434543360612324248658703227472273687364133428476479701430840382024900509871265118695903399305237160371308374718679410683913894746727984652290758251922827091511777249089155791679735306718226626361469249965505338239788659742887837656680634352105888532777268937523801090866905724004281340036797449553228778903720093251420648852149696403665365276446876039850439523722575452360001217569987829672820676347169725269776670299858570095555865111891665411941185217579541935683049109055926930467247007222167096922426800916888508933015531300898045380608882783922184329101491470204130971758143210582456233348997503314697330255660172597001996615414038669772669606926589997284656900334233880438017801681222362652852063880156880048362865430881142820105780966593599699500336178168793532005368891022404157050813907820359648486166538192025143209001830543279176159476702882367079346444671805619737268551998520051600822316394375545998197902840556664751798976882789155465708622098307221388238740385269822856785699552560746206339112524350881152601907071062671216511355190154969489071885546289774806011685166412682989408969906331151250614251745974777936628107390556997332167706419403718923645465956195793466799620346917099637410412303922861270346750790661586318330172960177773573142947693161535396114658717489956230255409916163703176593668898722351174553939390969122194776309768423012071350316102625979823777651910923977316196885354235067022521548575221495604169627443663152193369889250337283398201085491711942820157719061354345061137534454480877250906362214878147568805682747542180545949460227935632406989287873723718866687292921446710624971879808185092774577432385271485447091262435114430912676697693540418679433423847092986106282875757876238041900136716939236885283312759575019215094573044343076841545991807171248128003768505781322900873774827989961845204929062246897061379572414490683301969469042721747530609422681170727937471446031690980645447642644438726836357048375388825519311125577509763571095758352146272996548657762933604214416268753265316708625275550480083678909628483233637865838693100870707143992369842590443810132586372305472443625687552744220078425352892948625634785273156248545568511815617717367720368401935898474505093397596550022600577960262667337116656995359166575670946382273271069890283219025870384487337373360197349252693440513235533478136095365313366748430964702289150166781520677484990286016009336731301667525597728216435291670990613609978558693794102199144738073293061696912085442227611708291992990071014901978827307918608097296663396770534875594877671167700222662552999248723699803392258464584303867216913750761746708938195575727688902174166341149976976758559294173877122934483116321473631890947429076504846368848352172365755068686702866359235252435385470676169107480179981759778728715864722461430255678176725556959160735367786706300651005889081247956344886093616951486432949781261629202243267979233735166080935839566052246504217603688492088241887059165912212178937644320870831761642906674158499132937270536774084884207491617438692327626428538840210501965941623199990204125340044475473005897253332343306890162566789833635283815715195767961257137985456632323613697071865982380335537291202597539867422607265541942861930693851578304785316185235070232550675253895836884738811071294626289131147610615090154047595678816479660054707200234855299619861967784049044792875401886671739489953198981574256776956229467245611793710962556377336160483860636280161227066660354868704555468256722557569535566472639031162574648109936296308651921866526736987518687319792981854721882017387235011045835896073573795865891892142704796638665014906440839871857419827081525722205250750982813512350552374989455456868835839033726198830894345719172190281585605079947449605738299209601880964538431959866348913077836227546511173296933048701861608762708484308809355055529399780697135860139001674954673811695098323234339318843562420152116533552161371585607106644223502534692237302478166305253430374655341948736146142250396079544153166067006168423309826233637684928483533631081659199013365339822888502881951850003953396461590163486165568062449574079898535682036186360990974529666782281954472961305698239006997518064594567550053635107194201937503244121483490503090054317847684776195785095509973709823371942523682059479030643224004925480765397054822429151768181897410663194742304348157466033796341303936351890018401493247914113579552754752991352236408515875864282722778677429157117271358480842493782473737754530701176866195224445017618145292133574596338656246053927917388389212699125817996481309376704575868515083226948392201336108322017604052769565699425334077718695162532798634692927796408549338734772298744462437222619572742787363422652385630849668515935455209892745857279284140634335613808867016245561225641873094053575655062692791169627791641715318153180787662224743423069423322088256319187454011986188972149693089326943467132642851739579317998255896179260677176736245275372302805765913065942290439561360360435881634656992322524492579967344690131393973936732390456471440690612344096179706074918192214880656632221681885552915068660576818511209972091181236054413284392190089145559630207270222757000857095384012129553537636781508572069156425623996521752305804861941329336132883459582140401984584024996086215739746639153031422935897324260630732908520182627494636170427257511012249467708309209593021809972092224737121825752189159937225696296061702370908467676947834730532083092353927038889060738287869279078372128916503817603030186943007591275481677448327940515047648575182445025415545301232643256449300800666144369116617984048305684120636589937790635334469576898751580985345539400905715313438246071247587742879666532608679496974092077010319369816624985096131334378223933124606020412044577121653811568291731487491016663049543251491838034657575678734939406008903360957574777447261852959370199034197521333825033240875562972283783572762639777904525611585161314114094170192556886017719470078034473613503613035467350800987922589232634889124616917646732890418631951655773985965382741589958456914421078356070595491094763910335440693909681326576235120180617488476373895746089440636746787069454834215010116292914823594064742632310760714826714494044395874614284848836857798524175596270627280751809513928273806063207539896509336113157542596955509555127299436873151846721080169114942262174124868493671335967644894793168247770989639127004168045318414484136897889671336458854498879053868896062755781126766421228843317543575864929887353783336683992557723288140810641797815472603486654633173573267731849821643686162384027879677436236597319823030445416450557974498002062034765570057759745541758288653669851037227660970864802072035127207062177925644237273534038553523093570243119769967733753737865902238357478774939070066582672044290515082557656006159526628398877831402874466753342927605087732849939173359971289823491489787825309846400603229796334151524275819764428147835222083840166021623106667169025513124479084299517530034012227167735064088628439566874890470542538680618854530381886666557791765638400205940187371258535974730206503601107195374449855420656637701153269433115016004436112334846177619945036679205747936750982457417496850733761388511790905594569782316632494198483457315320291083005185105134761995289053274469683609413182127908593083862996971977282152894381079559900120661178515618341997461245612446066359187370300490710353238799520993090151651070232071418736102127419307168476653813939752078185965622378281487082642014566068743355524035310061455343453256922565468143532146186347958748899825553528179122889448794907684698314332386200697109341616990440190079322354258666929419818669731215283472618085033069517517233884637178679173771963388617818852562917855078321925353899448816147615463817327267099519251642715075087707459131437617101363108632973868520908111704014761465891054458868236007067346787396462033207832961117361849646752932339592527444784124153526111087586237204360211697817160022182238953992154754137909672525820616470939293998409499846319323419094525992119384866585481095168296291171748728575414260502251661475643843070222132275951293660209993846522514075117327868900363281728669637794568642880289924691070802788131278968339496906020813105176968267543738201013318692285603757758705389364273656396063010678032521452271284593941398348635691182142217106887492568225218625584594167293380099360244021177251959197754787755831646607787537525012996976568480854847574024941573260252330909607238152091184852449487968830243432924192650397698677014657450887327198897826597723154234644095391194506006057100365248719376528478293307656894704791871156567953229382753908220127175209073520701441491720692690949866882117705840537986759654995865160381448957310480128216741080246958652545533057043413468692761648837263953647860230842070102081727355440943661519676032915643344224260146840878806352952727031815556610591762838778476227402184293949900235131421379040245267870248568068103243577815539602184943209884147848769956225094551610979379851120942436435726104092089571435001415322910419175262911527461426202164794197206224867445434190090702097973487897687889125792588606052910215201623294520202979604174429128623608979486716284711545530163786333815109627829197026809136566237686729692339418896647056349259317432675903174796863362894221379764222592466525478340747506676921980625257964837967089590839854030858763969079622805420398456494773805055265558201212893389591807193917971729602427246352931742798299822013063243345903179892192576954231359690159053634286493069734136826989821840682551624433960560251652692551604665037003421541916574557824777804922120421343059928806389390609336065928862017688232959913309548392320872643108470863977085366220811377853718675200240269703374881366518611440976913179169506781531829368094219665991869766265097463766651188386615630762883051995451367150154111342419380085350478874934051637811990785077358129988197352732119410821993664865246048335003799898108090981892628662877494674298478299285190349657894864370712553695419920883705898049447491732773586747791155567391791053865326080910106152370788226757820258415834492515090533202572326150228539550090309121044174877695302944527286995672963751480446909088423527169334315714048518231695739757040129675230310280550564888113931082746965220090863049957063348240539117828838275331881375673872348197458282702237522684669858828868170970784440522395734653142845605629510997350486847101308580239022086341558443029944561785626704252377798689700796966997736915102009503235586140150233506520175367170813372918520906747364037279257208395453994908989258812252009183425903000272319472439386749338816850697621643063011694274071230327449923497197921421688176625151270704276150005022383965510529608273088176297379719335343015241693696094272941110640009440505373077272134841529646112269512595435280829250134931128534367151783113015745519503009976500767637767841807415122079021546762285181039723871549582621907729190609799538746379926535391594693960121059308588877064400807372267033921954261335172338264085085674026539873782483720735240680851220665685483528213108894905892052117394215094923305047967530821184417809565500561920289580250585199620333966943446934605222778230725622024297662535006054511092828557380071094387564953741357868844761989048688618634133526709164355470124981553303944753883416588604220578465647243867173132576509103955570889891539217034699741132062847737552052268108622909113305031914873503802959575691370459665696240070077009759403955672618547234424760898636161220167682527323812175937993667533603674567326912428791304124100191322313398666724267141530049232531202682123331536811879328102544248368054748758259011247697794842465679186554122425801699754845625309727922743556462981128301533030549549823154630136346438050456096764528235019165914459333727677563700054027536405003234637706029246371074123188461892770133498079946198119044632053533211278290300490444692851775510636638347074710644794052729845394696038405951372111744379829183352855321726298656674868602746340482471696838030536970114641602295100008941325175103244227964387131127291481384365770603334089274269048152310602196633385413532234721174003316180145248049968430560143290814821790009078487406820287018572282263484539274466970924927799919377492770889493309445365569796956456269623061917644873587243328015603257487678098887503827594879197724920597683990830314840941836244678791358495741938230217086395968375344115418755132982669276895753792293514192900220913296122155793987506569829215964140023093128598150020607109640989323660617185154153927785084177388239069627924708245168469030759703044118663239573780419944916231237841614236189317440254258830752333186092491440020681615861746021581023935862200999421044245070534283931600443328873998920349731863122241565841735230979770268587592949793171902948595605820297739263084268217423681769368674788506350984113827882303772529341924529488848418618971003426509982851302635274294504147064968489963600566369824095409673503453420158452755374916505323972162488821766420892517335305390268859993585498430905813062258320056211362214817852223197290590619562896794278748691848703018733669981994952921845046282425971274802467126621163247444909031138409476391924759148673970054310852952989362899384141120260611502647420864487367140635431212030004773111938340998083386530100159872691607514225169780443195083491691438655343332753289523694310739417931763090379850482095553239319679264044122711436760081632828927520496276683005116763793664680977377326620223839895131538376958571633767084736198683942637328112097494321023318550473354196883219783770500136038136275061205801281183171165341368137632327962469995225374748855651476865025142255294313738113439053275562886806804104207419565603933915918561787510932613169787272289610037408708704983277212087383258291159734324301421220938433742366270559895425519231522494340319348716180785403062798735843579659117236735708470731715062332397948119157916534157010621394468906468063912260900438191571893541010535144283717572535892425056158657849736281898989470546139933793519388187199386209361852161468697330938931196030412791493511625277537817433147257166747285815887092453935199485271779393683689909828370327595217359035842364803147283367138741995212232113652024302488841989518154642292693483067742660890830946811696883075036474277501431130999914173754859373101120621657551996795321080638584419573255507322928086505757554889343277011500501369251895897801246483852933839463676209935751671664862135101510314488030412360934582485862163912503914916340596385056016665394931986830486109355543662652982470583071705600239619794366126624526919935386728006804019616298859480189983769622791662638783397988278772857890287664521898643595676333061116990981914248651254796806741197457339623315990795920001381771506518023630676583381329550504225707793834885818645014936570761894631253031317273246628696743022392151393460917945811222877261657564873088819012809847796092154294032840026025208168427398605347973596478378483020163753842902190264730258056300754279707179403567333097918922155399937797488209618058991076231750384887468836584718548134976870454150356483602093475804325840884176631765798351588683218207227435459058333852401784483068724903212988254848737301475111177452081682527016547948245341564078419509931132281562111028821506252173036415247868238405079744853861629115781777417655760807883169649425562888137290438728533728795909228550192474644183678476237920831960433233783293322351052220196607767682829183103682002576956429859466004771797872781484267073215753173049789316067170879986911736525831210534769360351806296168715827673725013651221361532614479474672861674523977084279292872391415686328347021045014219716093382524852821530623467854883636011299655023271320663927964103165395294424551642995073973800468153952481032224817390606413213113508137138703839257220493736867977564399070639114988998163603323578180224262692562365147896504538706045851216858195495718362578861983953863751297009807606560039387457337933012572691413872294871374361748150545995536365165218304517875025174423463525202047937393076929339680061404109467695404584076315392126079741285561347500421902861479954610786926896290959442455489647312350013046399990617096478827845389160989843242295367076875696539527453582933397153652142854758453867941831933271326067824354310946464525715067727625536401275003674553060121437276171902185457946484845438191548608772623014356200145271944556455382217611683694456338485683716060278892712649341124361736393455427129267131703605428046908724460707901589977601961606040793706401585188064242870792322403405589408398378683083731031418578385045495985939122212085248652028441100651531681368951706999706195039962607692870389662403818550920716698075057520404735197394162622600319756969768328629211081059798842836311989849128784776481004110543712338442597309681500953098229826074083323460889662801103270421200531048503339849743672758516178832632606230289963093156324908201606669631371335352028599225278606308044556788752415489836404119645630663840136085247324374703627206784939838779953059976541493414159767086483339011565292385317059730040452873212444622353272627085198524583119470067693177772613114566520227075642125705924290722599809519024515435873772426155584590580067478024223136031105233825016684045495361523757430132698455973537956281217535730810266476429174579087257175554061600784319978521889491184348071274246821352819475471384838294832121057272488514593960151975862867165774247106036825648166213377324552105672734335807714621879267330534546068642491553261527133019237625822626336148493942029286220144243350992908867358489422338114968659692676096390953012391929372756678742117399547610574886335102335183120069928436951969570037747967576091845644238637349204471120457099301355921434009572831152832559869217960722637633503065620018855920154475908617822730870104900751214994958190197745990816348818816655207206551731009062725904886257947695880526603617660952352577452665298652121514666365713163756673324205007197799697048534104188000833311717689802997101828492973407399378975185841266647730363975882727248383296053207418601214292780950459860478002454862686078688436957149359841035983229470345793079928802819926452790399081748632226915960336582322745213842513011441807360314972852480131657772343882255355004503448934629818005239076530303350957829197310195033933626592133984528177176672085347982289441574940885445510629839534607740587635414755502282603640779708410607758594342718176952611657988087068732859722465164627388798211996073168050879813499670983374953802962982184994472565787118709069794231820871440754021562001629387282897765809027644536169400404454250180194572134112383004034616739605154447128579734637704134807921255477288053944062408888650380351080791017790170504764662807308054069366715654437235202726018277010785831994297858512264869758219745785227293785053572976494457759341749101533745916495705204657455040859614000207316093978616419550342775802712146027748233616105956847185644600117751909149818304852463267647457412179629535478892709811768257741981091416367238775379547304435365907277831636390615825559307002829039078715837263961324933493922929633032281014042888337160921096832362576022242012952042218050361992576620895251667896556886105508390781854718395880047069713037745467685140984987680557818730864015690052441445558008722883726409676180143636372287784659653656624059232627138529744445721425452654127094846391286444681216696776521570806116288232396718050104299079121882501136990391009023171719926734301024489479082471308618588274518508048363705596145290219406471130952956996509782907016187388249154583859779272810670140009762784420605289684836447709737607795961986447463493914450230482830775041853007142898607440930538881769588101880661147362352589626084469000674231396255785720453066224756844954302141708213866728802704303297486578319687607716892374638796383246918494474034754520313549839265732865394997181706448246205200158059675480464613041637236047852662627243861647245094862883551402881684609144451866425731413368339726053601849586092671093440648544161360715666463246590432064080372861427180797061902302125424546108957200261379336439244495109099562352083665711518689368704340010229602408282817569463549646670382109036256608330834878893963149784444449889927220508790187402379607607634203621176836804498735389912274685143119799763389802854557321957471036121271382780468767972634667943355600178637717702581819639281428531584901592031424425761818322113692673012055963883810386207524425160291987393522010449751171924348622074406919474424895238672557212803523608574689829223538098631038621002323020726711814416264875171151754708953343635305548950390633657613464298696653804593164836613461383341849763762657775143824909530161459758091085075265840035720323645594831908352387851329914551316185266939351936279316109444391420105980049321592261765153443001302165233430595185581034286367822057805474201680948951422751711765904097662026535327271736791428458541906962982893199388289350437112000499710958845101405040386355180316036526217313496989575344303711487670328603371052203633583278029367133525660949559352883828020474905024393097549437410517715190219041667861581392110360453604307237850166251921577054050617012119372196806992441638607725017941552704573017896480834708502839009193165265160328810593896709022015053566374885777499509572603977164143775904259087358578338862963583653353104652836268519577959298129354090535216923557205204277978082031170608534827887277027215851190082153663455418555427138374809864560609560094047732973234872189556132571830422591021473007237778605251532055020074948030931908136211085867776183292215824715093758456316067149434822176758713691685281566585658742436995195686257751621147211502791947826107952238576871648527359836820814416678594701304767664907536942011817020684771856976819040168178922886990825793812392425417730677315991619724207992117004826339062359433911188598666747764564889345391706117818750047119506949919932387021244986111302506185708629175779123531196038007083208135825051159359475336070523835956100920116909606309613025361404684046672109092872801611535653309242540130689047521470702796430637374633700260283677353903295792194115311741393108916548930476473953136244791738564498341285147409939550749132532308415014956705891504829360731744287641979405572470451796940246602693061636349451860740402130419346069552423095166092840133993668301503430445625838125762998900494905879095670922692516458876048087257084192738150862370204707634637513465226972614636278641474526195482949977550852986937920519245266284937763410802729085868932621815384373192274383773779384337301690588940580680227994598798324775548456532618688096951344960582931784145616662944926490542450077075987832904097059805366394700550050998375295900955167073499166349171656904797154714932087396385793498983527161613000858908983010931466538826332016632352332770749345353628117074560497950050147336885331986934842157845257948401430468349066580886976868722510401459655220588460774278169210092904994263553997327098263617974379515149113707110780721551716957944652817667069116203396406492628821350619403113536142131338981183333078287404570353765949409047119745035121215560653328025445616429157172784267373234680713418251368892775940263293707806515971732071483578927206590578371039119221491658428498547675417440146261927713160287763673666939888490048727687048422652858999482539640521417555437673415893004140830890308849191360841042689341130016964582728343318457075206979243606146311574531313349712329996459687750399740037471089773677379689947363956566287166574315604338814003598860700132721790204543661525941219835833879864477564387844862246245943896144105622083810195105702396392854758701626256112024519308362170362877811968072205063869979718589223882814499005310896811636053303025694283056068019191231714105926354858473029951606811468928468471198437484779664761733917146034036761739534404813529230542262780198281262969564449921812762506589096890475218497464382039549868555563544092630470564121027280537733494927368790954945319219609284838677488170039254259276731310573669702750261464305868446427702312970169076440070410534799244335905939188365507031398017195300969133623943000285127446286489998039131606200007376558914182111656721015643242220601367699770744743763996278639791141841678828972300797447198042224741006295226704681952352076037861885764972138273702225075496922172546693361810138523642608664618133113340842573264868592049652721654303916861944785092229741929745456353245642748085580685846166948437388774592098121651029818125947307765942420270501680629053534319625373863415554364108538289625661228277832574354393743680795387121349638540669742124466408527631880737956577706689091342786051608250374405285078087703390992233582307405507940704354353514255722078939997535983546575575137450956678590904664925493019071980377169809550455984539933357985077024216380685563358721478959799491087490670884008407822224598064219274840319498942182122071138264799916178319368793872354157068798480845735223448065162018993531141641949924855993307244370809460130918039947386904012581644546639760755341225179799527477403639051273181114658332384356756667068306846340682369770362799855066044884940063567643509819909928342682983938514850271789733987078577666523654057949414386779423935780710947339831394163883244552744212049911062101452843066970321705248797632511576097299575194352037515798624803765251340752926890976546642610330667314209991242424763802353315219635948020264379887429349832663650749819671249649460037391208407168422862450137164664478426676542035218810169628049491536577527817530890434044899163779283877052074861619441425144599758382056566590460911225368465976435167286983739127567470276018184064682629562575643464562844925655983198821968380960593807037290877500196203916718759260846189939218033441636205118805267873826613811260950975347385569768338984248263131155016530742647815905962480936221341872306620715541155750036144226331145329761434563675250080767823535819445215800264965034877683812736692235746250567853381663168921419025711784119879894526635194079246220533686407229219875765460383092648438113231708135327682210834088352992649988275160024564870960128291644907784358858185481000804616002288096582447155253865190474177339027423638187604476346225889941070395443080451534853546098454338761106185285622183490929465868505305216971016683267347485624523666003098552226420472341177080284974447085131711550196732508203333061829213643705266975635412437125009023559917324009163301987812195925782655155462525953196219641450575607685733624367437012238084703736117721422289604752597780631304182586299088837956343984033699278160843299642437181893450775318518018420941593542180796748224551615662094668969516184369531025986063276583536319739545945723511622576323308740101204782164839710135042384740380774205465255370722592543971637847518412482106782596149733403247673722436024866258163677989655087066165023541890456160277150933718821642346964514173733318379909071966287809908502669585399920762713906070622113734105697451602516764445404036568723080393356272608965179491851447463704563540192642844341543278799484815664783982232049564282191151659629929124179114174556393924274842232239658016711791969184912529671642640659261548147384885436598781979194372550918262712574536485783873583618333322687613342787571641340025481606895751506438103466117277367215552743704150274472686867487365781253221888637642122224958592425559838110181360919856094101426760903395812896938427434838799716518823077129377462306447661611100928150592077215460856426863401523794912873583273421452515766707428300009647566759723641264526609199621053115543409068355787937525134093324013376499717256171173970341643359498923300888970027808329512970365884497360095445743934837882473549081545896854739504290656155430027044535439261503427266542576753815218963732317347308165647056878329790160337924761976051278019559531087641278478935305248473436899692935049830956522696462788646394885281305518861373324923695364987205801571563952563037242504004540476224309321004689976792973608194349754800760775779060161569471188321023963105488642827965542116803219173497834867153842765008831563396366648275800445906700590383872076437719455068948053272776602265592145699640988019149698658190035710754827994266727436987929066264300508520186753670086304319113037733575462732754692891055521749217567081610133928597325819671956491174451469843188180339921508897145458189314202423622482262585123074762182716444542292163856220206258500508455894914557045389885992025986495992240118375261057253370887040804701167190322492374058304651895029772092029282038487707979537361825137607749532307247654417606685548911971520628085057279473867104054053547252348291854390677047142531224115545132388725332522327420011533961941128829801578742620264350636364594919025246844184098606208297996479561011556278231970867952148507777064255884815869191475872225385700268752787879625366218292329616339654835713064117883677529817947798009532837947756301100777530329479266518584433872903817536901162859576397568709421184035947666682647524419462565351339638075926038977680106586986180368139031393664297391119394576714806414576630134373103408220885894236008202882114969405190463627548606664370090160570964929203788495276490964467757097978933356182664242554178382690342300325890651385479350965586024722301533355045395047986822905045657037687634022354744478711249924027145604222308930485466566232680699855894194812731344973037715475931188063955213884422450851632915930180084216908007849483592863395720504548152586314213505154419038434708897084529503780074224256028107950342381899344554397761232315527401572784947147971579653748591610146500767813996312292430577810194590378812010345206463194215898808080184795399032949178934695328998319680826068958523924980425317848549996522676444609114855106948465599863147849639074748636208188465259344122847495704545326347607282818534748655849922057682681721359806922504720599846117998825249152338403687155412747207549366546284893256561254653497913197933196077679280339987725709529892111782547256324428598782695524368472332837851225684710308385224584745252682954656972719288654822898983318455369915427492331267611607546642214941593854026296647922261348376858464406953971014208378032495620907994202373001483478626821463647174029546718014948558632937223745975913242744791846760098167646268963566486216100348510599948720195310888430779573421923713529898592237887053657391815262441466183528837017866649687968210321185518693846468551677102091333264954819701904183264857462407965729678400175588531119355166408617109613107745925239073497887296777123684582548358938416627821679540173436921844707668097646277125441325131921903671226402505084468084961102137978198430393662573332125617610684701351667173361245709078829332243029435308557318574572904253826562764503888534051549942121453223503490241471308507355335778034274166727363047426903919279587379194692017044398077407108889888212880832458451797033704398450809660650648130838137588791831047461029498275951556076135790625606997039179659905662749752318295520574160189618150513383481366126989938909986766858675062138930964629624925784982140764481490133261499298392053939650850412936470361217624315279138479607278478827087137386864129832892732656847423078387560157737424315168645683447500344177262003150345244224419529104427261438258980333570036480745600706072135729598214026436134453609166822639283830828975189369039365188880358693530893363024416889466689953831521450797863898664240360146646839207767301986773733085795302670095206172051834022561093778056272314704205982375976776228426897263420165611886662136462361067841161223906839038110326727706099029194428521820904237785545900742387582487928054405854233867526937015449185243135611609054549450471968164260419699776475186894693942924256350851733602216510097277249650686403629030129848545054673253498961482686830543118895370584367421515131539214237751685424727514955118018385677037263305115330804806144909720525495051611396667965861749072936517780211320522597675531755949600517157404758137863612140396316113446389471983785235751851068190856142114925837956131052815910925510858737328857139507075087084941630241555033283764604009724492469186156594607253637405204406478520726914626236884036771185773916068511086488285769861437657552967534530078859768465211133086993321813820345755796810720632503716761111520258373626455129060597578778086552120455845854486980879574758428589917432084147672749695306593853822067232045915833301487672622046503589826093531710783363758651652295409639370576446917001212419526099444891472469694932315300093131050187019287442507672388955049694947375945896701522203562374335936135321400810404660557878566072198288829530196661701617960108843487580201054453011965988054337686860714152287900441764244266415126380742616316770645143699830493075171763087099251573189437668113970121562270568792414705287823489144818270788554155709455026986868777613689697846999452511592585238039507209685131488162212042672596977029905742165835626439063180137319915635553478690065520681820608910174918888037725657601560462354466609841846967019788231274612396606210815664903877542865654156112835631608269353943221667047567989442334613123885251414743382098541097786734713788114080841120335745474640203617076693123568246232856691558847720335660750523719478954081656856495704445080245386509711189341175115204229270189405231147447455121280662988411030888997350559396173898238926597802526474125497546013888640588719034450781338911331750498316616431339324907362231010776638511097808351517374048555018195182044943048468682612918817602395950054382648222023392382157145050280593603358939324754774386115123412884512703425146310370210530367587201877300902608996226004400242792470725105461253217186664183884038543073721837381964045339949904476737586007079307595228712003182963062472856939198530601039515878029723049781920799708487917507986429415156774027905273861210278018101374344055561020929346015126147457156989907711479824345507644361428725379255933686438190224344901241009823922854806931475048090315499931458218919272771889707540465056422727355634432697205132696264273043424124311610953872566018876906654435937589954124556617015585924193418445727229353138315940962639165793363535060826817099332592390604400653701694450615763416300342779519785417375591568645513389675855406700614116505775856105793161860844715725448829711371519597569283272943217985480711627128673133718939406719236818624879014980063283873431201922903950966895637403802544505143551962180438832903623938101579844542415527980958394802705113884366313139754066518090359113586762126632121267669854698141539700879094491582842039909941843054671863338349111807467455218595446775844488626912192985148192020002773811746743284911167784059093084041751600006958563698221112749369182450646188175795470668071365742197109910671154336901310142702698832520984563231335203629134870330437007443430120982305111157627558589476517635696179859966003286855318965781565299660438859112610003201050031227301360534067675405687318679917787078459133479008010846188699169732344683244727866440380597031254708799455710180422067353357149753553336637436073148512962676978290127598530206644244860478967628062739720782376854107780267606792358964631355896537060051488446571620958375371758953612547206401815130408928437971023921250254142955235721042849438146941154766273700638077125966584712740119118657108709840011344806455904504913169307064224297524870391125653919326483229897475194349203104751306146101547639649066680085597854824265874148548345776698936170397694074566215140466188019275287053551380651068846618568638470120964614656860654715567305053800434034293800755091237635285245851633959993719432709494978275508806912452107423225941473874984932496111391958026628586058028851069302731265628735644815988024431421237215103974817207960029607508183803531218397159881838025065924287811009339171468350420165810046131619863365377772993897243045928125923393745076457145609319618409464894862223811894129703255693023819420413079974569095788790667138429216548977095932480789523089629663390845593655152425571115864306857033881068297643472450882822107599354748157449427627255143973123052381206496078017105222140185073622387073707621313597186861944115283115666316726289937752941144803918664114908241014098359410151337864216298756870119616878258455118072289495291008324682465100295057559197827162188282090686431702119584233650675881613386969690058591550626529700964542823093847157624307875110412888974108514284017871773160892723078731630311393828662284742266139113917230721098435971257493627222147101810277162312472556374400186698180523770326668992475622719984677633558533944172131835528810901958480581192714003936307179773197995261642551215972481937912515118855764117224589660348934153525020318416063464830750542238365977251338306858812145426930816786704666271351092496606249337289881732669545022831013603370330179214079117187640767947487854658515581658802235567155885601807039182279317664908984112428515010953590998332657041294710577841589370484370743077861083822972942230085285276107556901830472631669406490938347418754357211045240346222682225727146660190815568294198468180918254865164040281763898890130576524001573578854305900113142519361968745735490589182263700315388313229037456396489650523401086181470327813238572648150443844571790524736711735606490527422434837792568237566927897835370675683325527453676258281436034904253927134627026484681616027334189055214097223610637639546073351904429631923842421704390419583811379345131673765905518524817920651444841030986430325616598496484717673107513403061004650868969982683228349564607207145043999313979037906580471762262807325259091184941777454129802552484019438552482669344640630651544970405388533121066093066574475512250632505229451477684803921564248393862043891414742825713994173879157946082140328802844763796239804960047798078201208595732440205531257418181219266820026866197653488980144261797900738063430077292532508750791807229613169717014316989165333178660882536141923483544534104048924722476869641623169985549867165248150611614994613091719176723983999028206781191700248012966051466464484430029397035777007127483830733597314106994924164408154505954561398300411678049512387515512414364204101478555748128988945838242844757300779021833925758167745127416844667382137539315231676002918089937403385932283046504047536009048871469262822714281538742542571279616118005765846877619342816511169633952025745371998582538649865295910335385909791315460491654626327901407771886549768403845499044931250345075976893419244714678130756022666594075546315178858679268414967543625027072504383700579997062142825551966753600050333336146569532370712274477474922776386928960062737248908101331255749210977999391281290730068713639063266827040017669400293050162026200137242600140757021156092107617361401998614492302748598895766756721693533440372220427525892409362893458858197109334248980303300762366676734625360021410021856697616866237341274675024410785740948746741643196333404304746369707047412421472631605220338186923683515356818054837792558941105347184838569112649984067318457920599293971037091377832812725093973413814813190973518479488436301657093037226273556532927650736536067999267779886406181886539701245762457871179430033714769150976120339088834388105046614099219465258401672153621814362001263548921946938139602510817796471698818910595225006813274301900570564162751662140701728176326626623365407199173817645197767283285976374252116262540810892439430180825512468804233759414829631017143325848382372482650023862048595564186479171366304653045845708163178131382824634412509629493519026118754905814626273987321704944619018544434058996943857806808293073415936192627645649542967084810890962513471735312742429328393872732243706585519261139336261191169157481224224563051078725339441289385921315184791786033278092672866379106710419457212397427963485014724984130359118452754378076255640322748898358513775158837600165345293334883244302010546571291306739306716324331878436006970420765509265034392422905243193507959381308612519384198505653078040375916820349578332837572751497444977953372544733215230817464757549930191993706088512944464460490240254953011454972834526063477236496450902819892935838618964248725014623420617220170167494004944813030717162031997843057176534100168993163755159578550323679472374362490707485942479477501859166699639341836308440286207399734301560684398460673561791618030179206064626518656737430890396412822385980882351817846800197285121511223262644192033633004824988542952775562210028977746820830168621002751572359417581779948437636478036172366475563320245888230997985205543764626944315187973241801218276280251260264871467674430793755682464610949327523390992885730487186270995298247425832895996714774643081605443037836886486682240794472329170951713387778991361775926475319439007263055386120623478691662983832821408752302846933775442037106731133364220936029671073051422703254826914875992093159991183183487518403436066456039007911084403857772069254528528864835865601112115830809575622918573908821725625000858703859650199277214719140509178485735677446797721809370105861701513917918801855378585980825834064448858950304451865613331690297385093040784815438664256831990571441917180151119793057663051968202731698766161141904826974631429400450562852280860991037731717360306446949271381090611378051234723672605681559514817637791965857214846833496601075150590495939712948648856445104710203861241338594790087048443848124052634410422935761705084909387414671156833062455349052294830908078550280135869026324864965031033150828993952579633304197085964306011659808792434773612204164525397754512427319401023431664045689962200414060995240455002250846034253518678391293899040906366901609388000831097065504552012801596954140069522790705080162533698471891255338228449293724078325374082857599510794437767614345700992717513455412328083417122303388938989243661601709913372571280173855852558220441158579229136273766466079295030054358419787124950890759424341269350763839400112606192310364411516857408499242350785027114225138186610677938531905693533004133551105269865946082853913399231943663603125007715482003820996950707406566110783085129947930042683393835135611107397479437854505952886778322500332681346335504317553069806822258186462729735326495701353155282331251278070092192642294655278812566578624816677766144625125865793791174062403608208091614217441906338888368456783572655231089359055321916251531731472781797351430045637440671420872917016511721212867941971820802372369468893268697860970733083866052365179920565857017678422229774510099506834520599314098270437811837140176625868958867600619803010662654378360426485744338139084762732389923988275609609752434797138777230033021109496147455188714246390679882006092311292525320879138793294569220059644776878655166971479317415944873789052057833780378131832168589288281121382056857292184850538350190382301041651523623380786877340102389453120304657243585819277914228082074114780855279062533615377939230771794373025179359994090852961392643188924818049840168221404291046256740255952073379968612391579590762509104868810323653307778624004548084968832923420443245992610814197853388524424392223910175669407601520536291437153166256522079817688334173034402880265078277444330969614536827676876706356481121832847151541136355288800799520419871538265699545501116989753209504620090668843032256674038292904672813874863909971195393948952785891845638994444679125010063489539549721250317152585364983158968763220763695016116763805766530950790173157449922041414526832684783212555708135852102520888398506438392096599437758801199101251784493138213086746096672772940484414416471283172284655885601412837751853038922363324562149553347944872227609884427340039097794314267663195048500792501575558495731346459393338800249842061383950264011581047909863188812568081543311531976718804626795062530008985170583011287788311451721559425145470538827222276509119636406526780903312618959346759864730051270811731446491743544698521013967747970479887459109002142769790125611579610728862407932493865430752150425578779625956778704488948698206758337724467869904152954948111327532411435592887141757402699182617317616920044354034374323639201905285670409579869240196023125439995601428110193768274174730186324121956051596016955534565787634343099771425438991153412041280145759372680912154602078113027757436867119571960254315421497661472173176712588171675366715536936442871138126845849757323315696301631652517916704221125903094213865494988099434459505828972578083867636622312121882799010535232369274837643600199509894461930973226764374406867372913213367908769394180360252611490357708980683886505855647439202194106410235476086015912014795800091463341307762887795450760461528070710464417929820293977494654863879068345705653886865672305118086363895653153922896364345690078634597528235740786949399789466148874189524359745479638304928938831077884137095074615287968983985892651186388168206797063962906266485782308412504433002664730932446581356616253882943517688378866647576190840103229448034855921920060805548790138066470552584906685199077467018281434277746370635712557566027919305350342123333191250396156777787376730625403750704666506598473561566273461066267959676008855811381899843454531005222631800217229318940018614994571937314720011762315893658352400655897654307595818491092671478961800921069330127570649345068026126897590826520987463419619266376054487253458393936601728355923134197008611309468285834392787425427067937752259048565114614359661037182060456358971375364351576002504936085058723366716490671742436394771027946292495254381764691254219781130629741863135927970003585015417199769983570200363827988835857398265156552926843315245214060442920718207394582228764014147724817751518388376837493580722094362447323996024686068015519058857267637135345372630506013059154616453901919068135098179643688797666766482123716519903281433835976488801102482348523337427930443893361341445236253596266052744814598325214103994257060660244229554108520895512855404456294368606317778177609758603590003828412626678521837845293203055499440070132310418061524194491824381028241905863852489407674381206112545195551209973699438715632742205674096586531813466256758684366652095213273191175312524137794759654517353164260476974923808976037918591554096410790259463371759147830999873418315709324380529249232152555204779775620337888312871026309376486810413710543634446220938778916538452660923518569740050553210970262894265131956112694253648813928762014027486245420104814026239631192998268879910210676196024913558982615943035080312972945065562028526342709761808934575573041640748881907039971903671279575040301875879231249748757528341430986201944358783090983771520768105449281245826059488823609503437180636592464591945400166554754137181552819761212773619186100533503524720707947072937657349678161707331429749154203897775212041040049403632557662417022546228302811589257068191839606226488618505396398954669389473051629911594904589830064542060899994835049516593886941333433861142702839494659552262903490243783291263784809698065512346541570567633036306881668686444887155191828939018037779438090968226876345328209764402811416352862563001928161592081599847213214660045609654155824909683210968818259265935363460927944401773201650924129758898908878572971626296714018420199222318651653283431631961604038697562482985412776179754046172537747985704020200714642616611562713457828522492659700293617568046941751639766120971066843645793776323550853025221316383271640734453220253767508024251227571592860454294459318546128884241765463570983436889964673334116864654520085847079370465009307965254826637102981114692422564215657852113554212294550549770104358417430583197816050031663698982673895972994463599241337274774844718673333242941401584068607523095980155498464304628191319942890117762530280168576275775831498894785529307388865766244384416901207798715084914375828832712692843722574406172723792616605807413973473415707518725866583197169484225272858746129221047454697161851389347455235063312475683213051190013499722148413797880694594070780710386620534783294115004783727252734785925227251321572660359622172178569487455564893787868347520661067860906053770064096956816461614299134539272754015708694936393479720340051422334008802584150978970037359109271716248854630035190368495651705726763555865153288652125546415366093973092638810838102727491948782910344926699751143539472983260743432593611280291128799571528458968180838020468070385832630816232877942368119283557856186365336472440657618718289954369221670346391242262015140866791343990672768716502136077621399720962264384100034999106165639045435154241602948866660298522815755952583861739241965199360982457267708569619408119197709948335798890346648450286593861894753656501120804022193996904876451548992605128521519535967584744644378986969736774112944958626535823349934387888792706884800876082915683462791908840357439438238193412584940410981696174989374130434114098824888942164003539224923400390528569719620237176482595408476173380803766200091433458020152112661143564364887255965879424831647685633496717403211669763694400995731716517126277383231285761678058920730580669993043206950203787600608497576672038173246210122182912616174882224194369168438190286187496433936003220541480639928027609926869046618709490842764836705191974154466762560595723347838254588179922493002297859496547215824478562979269777023745642154219294999682246666020341480853131283822541070227977360857651561843663284038841161029095342314577250267688179004990289077829674844644377693353847661160464993276301937266085374404045116064720216968822606862753377573834024789417738970490923492588408419408377430431379771459909082685755644417272205002099642847860171427830840976408717230697698693615257493301625195108690617085827148159028164654062303776431586463829436380759635378943781110638446160857633704807383623849928444015241302185031609178490946481563223602842883427431059246074314910904446663184279913387996632429306783844106343516761819171176173299975855631028044650205484143445398185790863117966934520001726762960424243870357932413331633190038206885235668110076412114346925430184236078641344297846912881814912784827851332216998029263958378552744712577753312567450688556786370071814904491923567752741171573445583034750973435585054205053055541051150429076810867286557487184473218325202531457614109509616204853313702486154852800860606003380278720015767835528842745962591351724871073581177259516565830160114756390576944936784611250949940267087293903838549983716037045156007815141137596897885362821122763633815378902371776871238644647906426631785610920309374985694558497440267378816686823635533745621481507466790091849248741267978933771801957099377169997366754655666256081720958809780469807746018602230127388302836792554443271236706067413230476773137210412321613895818653506512947838520865716192286301475093399204687460893885712985604956545580558054345311971449067952763187653723710487881836754606414489746272889784000446131178553396202276958492507396384117400779041738373629130473276437280179571559291142445628072219969695115675700610648348540158994927317205357646322594338432012425784597431196819078808003955756052447208724857772790434486170843378053450080146598753503601135329271428798408626573893685109573244001490339965354483606805904806726925277025819742877665735074563451603967901726019618141896423164183691146465597106332036413934795053596851006580575008282981735794762615356355380033214081516517124671280524346068004321016930637087040815460804301782155151821210337200217063562306547520196712434827116311982626717081270828762868044325304275645213764874927686090996888807199365072740273045722995244674401225845233711846446192795740395355126143668821131409263918436317400090349587782320737887862021645020090177165666295462260944727331673830321021883247024839917961243456851512911353709759624371172561758421459230791901800352087580176785567634460044160281070701003162703972678102618387232762566380771485655457134035166888606627356568665990468981936242722540270349660491546592900048965360859309778807646722572133487798682076961008324646921747892590161318330451114387777778980772189904758931066564844952064518798108668775608108966544191689526357416939393459885699684982215015908570359040394136737373068632001815718405138104898083657980327819755813331738786994649157469514822141927435722234173519997792772200135085809985245152284556463743702483914365633235822897549339462695931951150284778705667570656801744029642734976699984888992135673270206773739869001938596747277643048783539080283036066435655212994818197345490380516001735095407484167895857082949799475327747958831784685657002890316331926043158725157638830637365411006328936425860559256094606778963485861828480451578920430317333975632826114130543771423832796503878236025051714957673894291621206677880824342189521137515529474106506206701489025909533702145584860405123260850947785906082523056889911156851454844510132563819112962514881016520674451579424399452892960053469888936979668561522501794569116096843878625479714166401203059313296794652701812672979386990829928249200410132059129716014954918893401950290617399763017729928498447877185487909461332811868139952268783284274431292919035093279761896137508182468808948950687416569004915827645126089525890896937164377507243497286323642916914369784092644275470627896344704089097264855904774324540179021569869828791364062428737228619792794686668119736844132117132956461765988593701518494005397034147727127617135046138936635056077874376108888415569598035518564371554451925159604156503511310511780930889043407122645420151482380342457085438800417776142552317113804293919505484110412227146977994797719403478056126651208157247399606806990964108296190652897960589290860046230142815135951686541587918181042671713159412440699073700940410245870031598830836692366462919510920783157481619880845863571492690662463526175297069595951568505487447025085789178087115369848551674584812981466078100121428525704900897656247753482742960619036583512039877323470780322030383901022092143706783146867405334903036206523852913637644060990006132160837084585839228316275888252891285753489816801900797664508582562633854482813799198247895655946016367577234293004890773758058277986443756135286483654665090338635118803806868819931511267909110290408265338562687367733553232870778678879039298100987317640432712143028035331784206808786095492751871115751914826321385792636881844927497428523524879736409367098325077183449109550101002196200408738265402461782328901157238026359209166599617155518633664357257357462103117357708223449430593928486726691473903849147435159743615328899259997616892078299462200149468375576719569132287267751910801084068715132182957532307918199550482204515955501187630906060560289196446027075396749529281160120756001119015433669899196684779086026055879466079823752176305831151933564473275051086378317671053436846708866582510884065118082111643789028105065410173418512392540126869241882491719621680919120783933422547946532414426212094616744620679110695719603968012790038569219796176125997648110021772308451811966207087114097085819265732248194217181952695113738081591282649957018290999259022028013538187331798892323829321684565122073740256866268995457510039408984008174165861716202945362166154898890250272026068070592467061938259023810130025385261212650143848555476461254319010288838355547986834008326687827188334943232871127905578987662618676100742102862614134996263830502749176617127516605175439961592192949745696748678741566509857086701043699554179616263854896157436915598903992297687251390587366527734567569734200438124079203552332145881971816691473404687678348219868692144268105052841252183168939397310726012170316169865673563812447791529188897532245758968008941977250490172835979830154737410132399989668577958435193754444690331701311263804970295078226337640041715056670827293515387613805214907596548403107521425091071467086795993744211175841243213206106127174987198167208101787253396567719145616826422895223171828312263750572223602548037820006279795188393408595937028559715803056452752991223276228141639702198390343113219536795955251358987605178506627816802177324038999674283359422609499222071937833216442510144621578711853628569710995041928085138441036445255752083724388415006077248244549855510530525351473501201082976467542598272175092451773643961622909415233004509187055858627203802527359489487950575582607746291916370679604696866391846995822268121672736576628896380105239906115712940431718199280312791847526945651368714473050108458236156808272259997871956640237878438772918863273181354502971081223117372649095660373646706617257462738409183336552963684798632264586724952358348182272584315517114158123779083356457944537592354635225414140428814537161073386674712121101157653570176317384687897586407166490243767859137704217864557135733497349095016243167880844593521801268487392912669830408777107095148044284419672653590603678980713393916190567679642712068109739486939926012687242689295766548571138401812067153796756731509383880767653614911503348154357959656129005216829541725682545478420654301962196656956354037658423198629834558342373955428845588870994676265806454002903162065039096737989382161908224636610281587406557827686639159719412634491418700545327290584308428977232603590600739077563111094098065454087135702788101815849966900355623736247205638132386205185839753556261386272578641733184071891918925208521757755568914119235469868158515186724429110486531028868365285718811848780329664320409453475838453744924097400379870553408987137144545654374114118026891778779881527820661622653805765361222963851002646557388719237488956722636850073327835141138732096489068111020642157921916885940100582279414659299618004190787585049428888740680353065073416844234170553821552711446776040476133993582465897167329880142057017679932830153443365427764671304333189905262334795858109554068418490823758756212277514391712270758784119131427762964888334454463204605613237782686945411195352856041545309119592109873959593294287340665844167583644296384903265900500439022290542720297031200618187027386331371196096824559065557290172223396387786118439486863876610791661804195475199403497546635326229581841093246913299532249948897995740164020830845993260303146116439165503306308946702150217772493899685942782526578693489245883962946982299305036320143308031040177880183408853747029898026549041761127061001479682346085231516491341074434207481158519737416137024812722324336030137109702666594223916042945973554325311120985086079301529066878107734575470328463075776637362862984985315757912746330750469629544895729644228633142669844202065817804943697563743879003964478164852986838803349256951585019450667667611134258434205055775695968412897433950964947977123838242754733397343732447669945180408897038946816552919817647425387286428032443635879816086720054254709251839527311636202396669548726634566560295639376061600582022836424422162243113086017716924679170842456577414285613516569747850852636257729738058075999640180959224265254102512003096586928791245511897354971486375224544606131037592056023921803640016162299646231359328480491317058776646737744593559948572380045599880110955099539558441882999494352016085818463413623579975490708307460618574524252574429737537680808559668128859555067591842245830053516275186683703497884052197871364300483404849399394587470142257498976407397594236934184506275367954034949953075142105419755954893296477920680002042560695544422132755099751741490754730504048126115410778308339556816957484910444486528334871124883863776107618999237547192037929558034350103457898618073690116412923351679387006779334996862982976792126835216215356726858386421182844176997750320562328240242036840463165637078688029578909266918268162864525412331133742020210066679185406647600642925599539241014776009057974364181301726178198705125923014899130227770669448929979132610157659931319284626747630808232046839522210019881181378808823154532499062273450107019166631948938952870470749029974882833197497564186183520215213485307468575490374829185272104696881670116114771236149555696741091137140218461611886164977774450038969171259797047474746092873484917001603919525054827227093535933042084012945768529079452485674885442772317146124001118570979475488744154898499853210892973307730681279193387114916242655431076092203218557805098362404435575125104428758439126363749408771891913125608906307698213327018791316632067011730115695760233616838938868749551598110533902609468017780760509548702255891775994046095557587602210274674768968271614965446816405708745307180711217833736277459357007211397639712022840216291428607498720894504122267173009167269207519575970012877808316063649279440443996689329553913757634439307309784285690701200196900644424828963183172166360191803053469550515155239741473586995449740668761111579361182313175688420111931516642983547978352603133288317100532962616148155094256936612051567771582536698268198604675292759249956223617301192576251933604297577361826392037365235359680365399092388161359241512800518258818110885234313709655490327958702150308513096090077682237558993363658938153322684730652979275310261949626356988176494295142121551282123602323476485233913217820329254403930603419126554749532259645092735869183689079059881203712178994117151745128753704889608990627872600543624270540970984902943211866421947566272969658700953962732117420119726323660823038672632456686670841924002622041777460032112771195151353443562237528729843032436450752831650710607692649487200014919476205546604514653087276140055274529814900500545260127747006601226434408421493965345553038324202425924180031470756667065246078719762381658456145961705854673102360086091172894075150960736545923091047169487684895923659883942388947470999185021003028486759832255564853540108722758570293037945472957664717298225197711350404207513133374265322990904524031911873385646054696761103557464583840330438513745452842935630580416066606111678420938113879738859647600228482923717634330725785185899061283198125395578190268439107813134608369302011688357403312978235729254256556911324438951594025007089134196852144742473175203128099114859359183776433243349125839369704544126731674065827638568194608671407171563490134379221338433095131663597866170233558877457880850016274371432643941128147876837981469929841674566525357705840996958793028741842866934527625025734641066352292608047031062135955436779392741089108110168306515603387167865130956076449667750705500852943091192270593565200300698568665506672557734920905053048343035862148698972413143247957653547687245256482534339875694494917323420424988280469304299490156738885550663874873014180119607045290594272652300689949025089914977864494991514143603549875215609311578852493006045499411107891024847257009046962683855019106183290458028082743475379907011949919499107010224122905862402930934834051521605251807703562063290609440397091499025688060734960603988684002174187913217602435718474364921859952932868372136165299744592138155993060174579604978554368405975358069702321614786232231510765163463023197558469356023507214102262028441845243620306248050470808629182984945968344977200620982182695216598748993092727902576920086368051374004867613526892034306934846697569403229583797776399701639577329439602097729137477919899497845205685452913322223789300929355686727615652992327878131944522527606256028099742739299372228868249626856991924849986011786554257291583168399930865453676880090485943054281130577487942569900166918334805425048997472910847107633495962650278698199068110244388170758197139663104999289349486384356050876184093274784723466996677675382839422404098166733370416965690984180385439021471770153047393909922468068951287388966392163650891225036315518650115705374911503253049725005269661575681513776650692808254008531126796049516837968944960488968150011408991139187562064153931605127576304362611969802770636357779724910715905068217376208393436423471691180005399065460291919863672915476025639585658284969784405690248999715486447729790282531798134572928617803594181383953349172302024290262257720064419565612685794684334018370799706272216108039580265005132405755801819462751615478329093501603961530768453138307891549704087705868954738998327125010506964131407548217385917689621730680495728828501630901880470023899454117605644592328724059929794223354639274522429301604570493332106464624591741039767657140130595725755302768550008973573965922152114210995217463859289195012393112194683204228657444486986632300176338105285102146420799845195308410478665241735262250536253208326132941769616674111750962607149193797304738842086225556508883779693724357841917564688420090928519081713199963453835750133714398806412397388257077307788626055520237882487813919829201763935994981597191421127115925986219611472524776158834065996688445814183342699320140413423549130386976005321775625988419601813683566795243175350903748263601133991480445336389614007707368966856067515889114945121401216064433910801506207567627308977592114234264333311058012342498505565571609148390240464350938153392075070369051181008984370264039070527523366594671236675112047358328344256209929217160616353364657881007371347402498596971957302820046564064102028529809410289375896377441661974175336743589126828861183626594178352250946094394433053000597068675761267706111530157567651585352309455562233578534183849046114965366513775751976408739405930092284191181650296371262153218738173139745209009837594851251239300988241416252486292241569722912820668945601191001727896047309501297455423396965072680559238242170761483701789582639572686508051243122749612454593229103940815936350729587784206957381816483437420213848997697288538465727750611449831114036851326551109275252864721537832449143381817266552276303998743117262640613057495746972888759747309998953050715363178079958102778325511207774723801612087873112686803293296295937413531259379110860851726093807853470016109091301516076701407574663330957580035476838022532467644162387123267702864730591102321800286050479492447295381727563967943547130743204711061031113986523299574380205067434230170029532852122645558938227443582793734157160075860575287831049468114945412381436051020204443466070058647132856990800610428352829582106028915471222617862891329460122623748180982608750947929451135485841048358719081382494480756535279897389532557812426432944264454853948225453798446964366581199769921018938621094526307919076881041153927314519530747698538407245795422669747105470934013180053044889312928509770625704702908958865045707508807744343418233922872025591915965112456936893486839844790437118997572052979483058825249059060212822482473737241359404448229252211901760170308422412824738914464123428208193050190273140174695825949101846794188500892212478086854246552887597474330630357607546164849585841929047865680444198869541720613708664050126154849661729500429174742556339421481786289775269188068631319484768245949466427029449898432800500952537259370688381989975169012250619683495240782256462269048878398568041289373290597803048514819520614996008395067719255554629653790363215922123444312064180700378323382566936478380178461320554216365818391404484641710366491084420257674603494537329609048243047888125964706185992416734239280865904768708370496792498439493771153325918908334566574401606242328283728442104131645100227478022529476828540820996885169430776549741107853044912781368237467626353053153697444289283919286488538358841960791036005806593928238964539854928613678365921863183382007514708042200526116019569554671515488796822209044287932231043759097212106088938693126764862693878106784644176758947033220485540889395862630948032162352671367053893094940924557644771649363207921562404283837760302272648888146587019892829380842624417228794684481002946615480811834368734565566845525354491275620806941392848305996811874296871005736677530596734802801125352727879772564035025767990770975469331865370040731600175012493205601508147441521519999744243744799982539911968930460542505338441144220866676579221995008060989802048682736814499544855569751667416436954400667856183289123251789498888979763930507362230481616740493857442375017708536281904647502508814129301469550842499450824432311155716769547059018557773286058982202576811954666919856208512358949179717341520436639389312515816877374196869346469186450414228292758323087885276748018725694634250126110562218559603559007758703575302665655432696125063659029410347245577266444164778891239588345532882113976379897799211269534402982824280313041209051811851618934841950104200438921101744136295909070644783800241503801780486592756014676213509140531408745045115528930163527079580106646821461777813859436039186501539785056278669573256878232076195445927981762881255672472795329190334939843384327311365023789591087065399556284162416872966037403366228315669047834130821457546274324373635756311929192728946020648839837713655261825414334504235528161266302964101421793158931690087879243756362615085305249686564901574413316342681693433436306667955318425528332997524483912627894997945780557538563075216720905646385705146184374632643840364764720556001447600243610220414905899567382578003803130723013062012146113693422242582723512952701435358873194460849881098816809846622331800769447424867033890811527437300638880528881931920798636436323689967840214548515347814598867700170294373684274816381453998000059332702720697899296743351672020237837339209700561063830290893552820976157463903403936780592682925799900394915886691094732223189075371422738398382027257510612630120655460393280405137765019577459503324617204103339857842281494356389521510408503182913013792359429349473449908688722215603391884058427900792140587256335175111604588247298102362634346235167352514793407847136624068235111105240511597400684281659347223822579095275148845914486358796519948167729287564301586126911681114216429704783498048719656185032841991031067198136220738243659058781365574099677053037328610620186523157451160744338429339071660587688100861809899595188984770217136327489538625013531588088519582126486347491398109615802096187758506431427304090794817450538675245763886378030484483147577884180156631155266140602096075081075878601501409770804763055048994356596970799855916341508100128922307871252136020073030949070866142500484171420392108442609215503036113826378204313033149764214142695439699479517130572916149832322226631660055144632339957550884980710349843738230999841107191304773095931129737189180159900600446660938259307521650934746775495898351843374084340492957862585903139919293328894728517466459456473701646682675688678343284885460783107302936367995960893717174689543911841475954079207260807770944550182274701028740322826126679357306368142559870555627440532887204225556706217902607410814855472443630175687643184818917672340839975236013470281744391349609661949239327453140694724821420663902934764489237239808605391074690314751085639631434147689545973623134389713269031531681111150192119586372893524909594833266927499383243124310672194686581192572614986192537446695534564495640168419699123355962831547426861387848430033754341732116077138838738452609457317978821412192691084992357748141714125754346530341449761420712529461992481124228969226556670225504938739963088819140836503897005042326687799587456381458855272722502320704974311012834015280086883520428626179081243273916968481301719973345382243168301588803406153389500952648247657812543869707431641573580474994616893502947891407715041650153851775947562702417624146703349518295515444122294925618925331128451889591707712113874093627489240545436929207845427685107603939985011194784159449688536409877659639389838876379147371668810104611188500886993011943048073005568207936601888915659362592463894111901499915112039873054216017392199382969893944329006773612676620338455734627004170431328372658128575376450582466900631037508879390611805494502463165354322742850999829047649447657051662281997982165362929751102543198242408920371558102597550356673190220161250771380030351654551949891600640764288821991480847155945444855661905641018433516187952046512661489848630301051017467258037751913473227110678855430391249710445420737823331304574331272142578640681781461687434900869047589599218108789256635435579597082721864689972433754292240355009591777599199956813360004615635487503011690557147564571258301926294503943390081381475629635781283409483750682059586527014022293445803316400107748678375253403495522083025488130795890492640629764552831425966682787648586973774863717159398465073327969240131875379377254814124386853302364049757591971837922772556408555676211022722234107153295678595363969782744715193700495102903988227367003536338520848069422716206478476776109813800495566087782959411994468961956226381117402710904941454761000859702311826788046498409275423958079962585397799005451301634654959429721853140741022632006411368190251080384259483213472644202163641208926424640532278740509016001151000746879187655471076284117044731268018734039010973286986864913963405937584612073241121272391924593939648486023665394177390211318098396092475593414455939661521796516337998985830907852378006352150936274173308636107465182351792087306372001001421269891032313889228775093022694272476762594266094310548681820590895986732815426347538253963840614552161208659475257124670797045521752809457880162779605937628002847006635195913336624925848322672536139352081684941503478620065284235756073485150602622886036169394244066126718981865470676654923896391342709440272151432285509295094476989198589233472204212701847018227224362506628839939653158693661904039658178036517253032127469397554394137357924461011224244167261496753791103958068147864996363209687292423755936416750413124316982217767710721278156672313148252818083958161075476148944633104220932828514403939460123842799320081621785901370403929471945300767889913117225482040781875795532987121940114966199206157621997966141824522314840605924997129191489401055818400359369093313764767275508909948412126547917677899974062898262702769483792430672705585224187787549453466745866753480943542714373626043488850185066359173434256815607575586367543415726024868046342511209540852923575470664685138613209339934930091722011867788729897359492989213143350195831630504109280989539955657906947753528868883719576753047024771362356950401531768433914899595182711992528518151302835904457232158525354185165114143109354479098065728482176464079123980104922363217863254050210838235884346663183479760664381848440131669010682131323500119789224347184141475467192619464799909435099466382294007910370598646221750285072669911315335817095587028727910156773889130236124932405144175768423812321539654064507514128780282841387365667876362008140107680583727698542981320385536361718951612329422139802206998876024610417289350079769449347953797216750268090845964998420201454366895128791111647944832363742668581450701554882513960093249251118779806409784099073092876029710149225220408722372512701389486297218750168376142854752809254519486839115902378266616168190104728883912615255552514165706732486460116750647283342917331465962565437215042760734985460192943685377205830982960012882262355176733432932757147957297368710638154994088873766402388499014628288400431856944598951048211681741668667068169587170044610629828308573480864018440089849611107280243432781741964631234798320333567754265010046734322548768134210761105975167151118324984282718218676444307402669721725644788683840774884788238925583113253067726606239153246061163766752125942082402534289266568013868783493985963147505101280338085036645985667058072022069153671635721158826027669184783130656319287584132149004984316603553291833182103016468233219257450072401271897135494163114312150343526192674432311450648187269334692276458015873967883333730163905961523843473622393765211272490817603374738054887990826270709224655146198130581954930474656758870763414812451312844579888944328296822080326595393499919360038308917545877226747907046098986617749851302332604420346299028768344039692361866128044941461621456652224285172468627594540754006744850164032886024407147946199108816186403934133470205391681613109131340168371417883759853081691606134580997306025362114205010974310395853716017164740347765967058900304368313972201237844181970732223939473156686963711992105695924209930662040025770593588442659035794610982026397755799440908478657500712028242172100820398702355223133173144842641513972566960959390356710529126982385544779460470427838533283885711346928510993734541037113509986386402627380320798836614966655059767194734698848433305654912813946985210830990946625777378021265947900707400245102253494498815243529397807139338116788524786901801525738836730404426970983713331559535268267853339362598021459774676109803749159442305035290809855787995053728574920103709421089020825281870858477285096966336408246133293683861389422018785237931042009035135063710639480852726265979416660737430408017629269403571908193972515127133718927183056098710455362020243627443720760746541262246620216304604982572649891107131885172570384559053486813094702311851394705589687946271646163795779379887697738403270067117220797663686057560817503483580065679116884112302549482092988144849769597693876196528131912290537457955852674701164263795989059681405233302010898172417402852699535943490377193689317763999644347923060629652579517119964735520234761543741593251605229731664799035042749956113208001248598526092171514668129364748044826189090745941340699495096897847942967581708474377846745808430126687334575140445534801527603425695516443986885717528153249851252531007938217712407377490944515724036569108889503929403972032368799200035831086331876192020858258303924814440214413663050843778420586475371379003087263497495456036999853278700526980001654957307140007992682894200132872824836816175749586951048656385886962309782486970547248396606443466295904887203115547127660653199359892829068018648918363021087321785906200032492214595943628814510438093395813283891246062013529886119987859043947895915740560872379177123907383474289910933897595918878148691154923793678810768675497402412711859747835276458280578520814853564076679585282084289047141569173848802118492986577602256927998380472640596323155127155246882366659123720356720665467405391275450258250615878650910378876855945203178054733694845252948458191943652425132105157658270158219030793474413361464924519936172087039316614881218585935936800157233435366124633286300545262099205160592912189243105047512884130113869047127986686919558052044086998847726170687078882252031180771268658676443665836700900220758098273705834378898115476876542824263369179286748929070420661017763384582156404769087027414830217203929787047783487572914564270733276232975070986145130924986875008552976491691801123906542206451403918191129598734201149412835616494645463503273276181138618090205005465481132050824203575133729081575618018460489872963764738679333074447932596790523243850753108050170507799159931237835004154116836782881972224487470277926272458184395961423061084186604217040785943066478836158706811921478713424304117106877657178912973631909841079196495295264591959152449542384201160395226729010762575851626737369778033657346152378845279538062231063207688783057986548953296190640062350962210411478589241210006179324267430155022563261813309355573842230102351620950405719776110729405865511381182450944309105854061507582162339618292342667915503595003498589872669017585489193058688029205001895860341975324157252428948083242176668030629643482042262892186457648063300836452882508450586510954423544624012793046483594395586254611007607678400070969818741739136762077318522107462640454295077190085378030089407774814221682060743732879091084403874274019942249325502975868081236869657564482442424482906351897178109986329313185314006452635242182697496771959736961185242852692871280419825919358702858357609813089649355557261380851490802599255378336972055279405813532344089444674356384576986585448993139031621011690179194212518814841919935820963691847522680243639103193041479716783833261972019407912174482257886686106179542414349151238160967681101249691963031544474120977593212359844698245273662095440189604527928772040291566301586761676211382592759008790203109346707452685626335356042849645680781644772010075980212399233421965651991022472349716000942141533200527202816778847404241902036859454452865626593027276513363771250384365269387232452294919479767948699442656664184767925020205296004182516948190335002748180899925519172306172588727996513980674354979227755938452929476987111812888624153643488355628438322697472794458402036386295542545596518923392759669926376603563047412145601085754439366325988354282703453938212388154866480922448069297677467293881233656591764692482708576455767187331880661586928175165388344953833449403051954762667123382508315317496381823994814673957835067721371335610114985427831407865373632561084407413005320373052979281059569207287467533622350430967817878460938611732244653922402613865329839226568280157470556917609465159039723497431937907602611627957605741613231170427499072356393743078202894088025031217181746755704618308222185782320059666485329682265822874216844944659100674002573128843447492348492139484814212404062745373024742725663074940912913695417843859217408612326533649535612650723714242277003427009923191096959929273485268582060214179285262181305569328019638220387912260059397041957946428787627005457627190377976573118614667277100595209667201399562401617245586403858490851260264922311502214361377777906516629483233905116119399313450384584336645452890585823007734888130801483355161173693480472653407635662270880792378529363384983615777054934423439130003135050370163526218066244443864085141176833622286345436852674755249602060233266614577792859963607078180567141563032447823577860737229022973528199508666027029550257744859144042250950745614623534385012702332990319609192073807009563215648805648164167840576247927501926923489118590011717485114201095801980355869337151900641539412079409155503493904089244717982209883837845363121949705207285161095369887898887994775977592824680947380563649300988993878106828266143294124052563427671318252899916117429183123880869564647529556840813518489227885082458551885930282647704267150726587193065841672197638957384573512354393553804131151290089816385404454982394173428945003848254610059781295096800281703225616937306681524736060712983045454566337027653431333921684676243326323244472776945273707583745154890265034819281289176218530846267092902164754018880064825905378024009781113655679615650786124298851712274677239492942271305942096564245918973096635082668273242103326962386826017957333799204249955424920820433804619591596585174533222782973125025291862731552890051037093944736650302654527764189292739648572271428894204049275021297860354085312728200612935262894132231715939792659676966803347377708848716785868271313763421886778226533551941478097130393892164305955219611527381340441314754911704723029308127754205093009246205889197913906685696407623556828133642339522559002924780794680243323433900384664036469378183995888668057229422362550371051208562532310971725816455438543276593927668652502628865736329529972384039613282754870580193830712583853982225066129194391182918423790090924772619813473088138367702202463560679857306684054012879632304301736417987827236926872201482926882336571083212234422914428110267686409017092005229002207830006093198167587479325785411133119692713607001681742412589171950055312298485047008235815639826134275915420107899081261952749457005249371593940944333415406182107742436543142933073860567230635064515253796736579197572118139714092150505702973679605237485070051540095246867972916132659648959905818864924745234524366263065267945947471125407896876383684549068998791542504498358831338537189460583238296779432340581730781802129900716792545101778545472234494487215255527849399940194778219394992259245652354816592621987846062252709675436554291119038597037051932354983769339220591887373971036381188950443011446149950405588542534785642792652406719078956804152506850342771381427288265641670422613996740092740177104794069348663659847080871378633295459877885290594450485276018072001028960484452654977896403687072582163722708683785376820694281747300740428533208006312513548377719808831333634150008670447291321451632486359908309086330513143592955697080990156289926815892359224393072829482087443136745052988439991856194339943945085952465236321388760057437020091606477571774139563145409588842297696418377119385201090329640237372776506482870995855686065230558419478687807038692662874008758157262382581392131570639272941247220153738893987128992199874414980125868054686792789797814767594910400086167334363905284028832476693272834474629824381090469718614728603100794942481019647868865439721181330092041474019802925733769053834539072556206464509078368493082741954079216581175703628215932351144501312250078417016380544764806328688054962515580661609640903812046920124510330198367789216305557314256717516032954447619867721149820833373169728023128120084666693503858271339022342501014994605448420424083403981247755993289889847778649527256030297398845674995044337968683384629548197956375321791159688429379253988604247742365441492557320049933733231402887505538172230903879059569880250244827099632763869605933600052598456032067377442390214104304377546350611073641358148871651273511536808348422030529043196861895461694778132964252424772998437443115999013025402105899883308966820327589145399942420103511430854294213611541960314166577537411829831446898631439591443430110699514795285646989559891383716669552441558230559598514775291932957344992086173490043421745290169739561217231703301256921230302886132898330959792735485089900663931933377466406893461247466215038755644589736619843093487173549292256680352172776567194760881707885877963334211488766957286114121636016471571680802720015197649808573806849117927902115849247230796134652670988125419534660222503909057474958724443270223347714586012697241917602940274497729718672327221190131271837413025462642905356956103395718337847483591300999015176591488326442231747219573941623170261521942848608476853048551007854126761314930073797063660336640542810311866723889799209288665477298365204623501177564923926618812599183229773402806878738005303061703068765305352192434788164575560809006937286489765615294335864531343937846246584759524817691899741358583990741172652429417221230002487333232849801003179756032819182277521327766790305163919074723710038640230958139178139955845601074157390363435057066309395849234852061337420007176134809793133380716198470209286629209303920368482803040596867093295644805924431676731014447431035777548774409957023981893866062715496736109166958347087105637925415876612817978050174447059994311547241583013525165031153664502259139900551721674020288041475271767617610903430073313079514101867567438164146719294560997212444214147272032261226200706428196413892053745895929358514172055642122253858772339314187153372704362931949339067682299563180389278502997544094750991931205860086045969178288290835219627827228760037600108388752594064235597251559599908483191380215815037429142272698786386850113948029730722863532107449943939278564778186710234531353671719873128902768668817415500600830341215806509849457711625439728636158143174291134821899541011359005432050561955629128906254630017302431653325792427450532045001841830605536329224077938752265234593589100611850343950766819080226446284888978047798019021745204411065092670810426893224399577318816504602682515164804623725910794665576812237087357086434422124742625354506133507789047894254655088829949317963894571915707635183921876607309822838684063906020819273135548570265094355066457652050147621489435075598104221593976976093219774719085835999320286343612215573206745710949543351175121517533842866084523483129627073235492607255022672358646931810340669267041719872396137733953027420834068995725867224089961441303089176072107281314553996831631456956249721553229849393989992838630332644385223625767885732709998490896676530022647065680773116957154918139584111684900487354163474594917384499554170775187278862310552506170471215047665871621839065199314499996041993821653921935149760054772322478937773642588813897769246774308883370950090091641624718065652996556064551068070166703177476556663775048177235519933256565918130119816411916404526175410612127418596225014706735827448899901787514581856799348233742728462526825578532492935976778512183707790903931216801285852914965244109522829327411778116084270238397149344203260777523686406196837022475762051305181312886062597287380188539590226358772465513497599263879681644082265845815329949485666942227863710451970446023585900382657749954721173955652714963210895203723798094879353977065929881557756929582007143910670843826496896479765784174074236251844428311840277742652521928246148430484651574953233744197699437001051350269134105170319810549090578278639165965999661211650305007042177053642005588372302082641146133837443163440934343673444438286976298659934755553071947141996437576178626365068070507925176157019074100589721738507601285935391387179875425428882685114184873611856702810873602295901446214646274581646318521930363745681434813420803214530598338475528073451123011110340808332918916480600982528742251579582072933913443770275024940871815770328415350619619615160009840503691946193992578438960166350345240123345250547016429594912597826137239549101086537987783448094635737343239755147401300261624369549100113168970638749229089805966759848257815021596650918780995336431578937995614777716784531162868095343173325201061962751199815554423108081695096094623479328866374187556715728163056395710521282950439080883214138778989967809549360995472446119085759614782965874407978128207763439888140056726099323264762255760777434678102883602039838456819468305481678261715789421023469572636532663482608546282470424422070764087018800683658398192296649146634185130742440555171223830786198167337441055933614547755923715483694018727252979637858137245744931314194019574730858261881371947626645795828908817488372682501059304585333940555632468338984980775937146241203139197502167636899069767754297629552107161239028545674182588241154110341583234073922442702236109728143918774794266679175046592910778102942117062797722026891958138380908101860536734322912858257365247203226143318050061857548102542155790630459598336994769874989976735751898274222779401008655877958199575459246770692146970803242320059275617937956887917554807829831632794535666322077223344554111457685594088241344450570472151422527772650278424385264145230221671805706433299464847377342499080750915083751101153630682337309809365226411112989580875651057249609308634489482170775457545010776944326256951126352017267321790247646569670491071431843157452002633613975212721131146130750090640765818859579191579506707803411940953556731321269371121698846241335290831240977063269424941090056392188851843047126563645824068509421183825159038353947039974094965064127154756920263077214178609369619168745191064278834295786335963885461717250220828547228599074609622734813108761584273822313833166772918005638984864055274325401295951304820987074633472096335915198997873552524060506916094586491326009251699499509146941850895660766210976370005389700054869953217678014083575013156575901508688187518971176636615840692740143697974003796089365895216860067339855446802942729991319719518012497555537794041918614906100851507256748631686981787401997104647166933302314964528791777911856056892207752132505788996646929334611573444481402843007797347240330666847077922960020149022458246396240034227765255530716037449476795188048448550026853437986279724660443268958456398371301489013130314458570736593726510845213742409626816022221348747350460482994556092875541649309046567126184081376545344779687398718185044316074613960429207507209677220654981460742747445767687396405638518532019223312892463245314202792156417687636577590576944459243181304584449415607405732931472445223119667312241555791527496933449842929530847971669797040289453102898482929122875471461106015922834661948148620167453487780238801355274234919553202060687646203160567043343138928844822529411369345170572513540318137986486610204606810235207504947411788617492844609986604895256271154708268555870531723843592921354982108694078434351163119567809136954855851370175694006832524277114292748519569910415126129371879978917170976408755275049305834936883540103914167802142566364972400155460631757701747698219037871195164541214282179081767431988904067832522238558427122602066239268359944486684891070865793153211631145272529807659370287314745035943621123980732964546977489302048672067026147803215115479171875769107687238690807127700489281555076935505839425774675320371582701313269693298122304189494762334190618561027368309610823994432784130109651805394911188260971492925392708702414613755480115123466824275161045355893582723195618894990626586450777283308071486483586805317406488854657815330920975140484524986195094380311400083207602341043461161405175417700144833876747670503007669720402123080466193819557101757075996376485130985859418318262039603898090669247115812754682960504877671873791765210117923302579568963696768586366530369491936791794333388294762435054258422568788123322315795245936829630445282750628436563219248015765696000234253647270285444115751578667735804466554300726380752835024612450005112455636067548590831495913625181254118215323535741201962652666462245746150018605502681021251391039765191253722723804989441018936324702544584810446695927322303383831565780251599167645775367379747143522923417403543974044563615871491931061018728950211788389720560529775825054296115088463833749461266905778888545425225883427783139532786932016052755103828900778029725875757088736638306659591408769072913553550613565618419654429080204204704826638061188792222557113551721326996194557913217330014131661073535988875621797441723469546884750040654331731426337155953559397254714454824695609866901119160670579278570642689375389231558478865893091646039098867570958052048686866375042949776915321690085440548873355946779865298361406736062613249062256955008849313935613412053809766101800582309255126618501464147996231244213657870141372468931888791399879128753353556806496461892378524315740973695355153786118247121232686162277467932115768484321309410563450068388322164107117825346384438607801048822002406603406950928234551332768773799179247613312132325045142704611263626463655034646343283179087353304814774719778598486848799344950398701644419088600146259530982151021733744588124221415163498663817111607382397252547376613148692242352700607931403075194216862784955631777206634189481231180179791908500462240937467082258385491713101082868601334714601175898587528719482092059822650720522669766142541250697647041108375615427201750137398822578020448700588790685844695778264704950069424497752765468959262711496911573255595863324167809210599825592735076771804063801398757192295669697613028659196256619135637308822174432644770452000368407709224050688930357742018188862337371501552848772602879284888863941164505864925661733408002398677383771945742674680793341784881053003760724065816725576615276173107905448750069964397695309354330193301852583796795371848819802437207318887064197580025050372790468647692579876358571434208781857147408838014373499468742291319279263463345107699325044484817891189415454276619883437313776580538648997093609005682711368196893863011420220001038134167323474243176052625486390774632795011359588221224740271957236451953858638455993017764402108350170453036719497161946477041507851026665505563439221611742616151769550055282172096880804818487481265297988129419838264828995390660983792919105453805856028385506230393013564810362884730651756852383868037510843351773402680077445731968123297914569896180638236171820416039676889648458702930330823518365519128922176015236654311094867025350800563792795162257347247376438218586012691692822704379402862521487698433201524838023364426153887251290782714863966142056940814019680571497581269726333375470414799334583173725152406851568772162774599854624592469372898927157769470687145621243611896632353298800288118508669957776537407875756130522849445335701915577105409447718780517197454542378843928322091622612576637299792113265181026128687304144599301436389420759229056758875755606959815883808874623346236173733451061552478544945137729885996545080642136134074917740394547783172817907112338113770178659021070455529021639345456284664059332243152619907870857367891274298456381806374355150761275771162404010087723373748030801760206024915119574400907706627642418902889627968267757091729863018980316297794879171720885545840422214829185672298402786795967185474855408026645680708995795832738820281946261235977071613586568595027438679573787654283634841255323117615384062539249498341726442303635713861228423270392637878762438025314673425187928924646977662013227402291993964881989129850668324161329942600753172688977940063462628500216884682908346550863918087854603755470030156881652585937438016800135471583345643566381796432388030300481893340423586447991116718648653915802780977428797980955349776200798231817947942794460839553086172697201789543477995439738882659749610579263664925694317496295533446104556791258910345066063627429265595921538234526197627671440069975326381114038235806033955499518684197476216068752629798530730591181438087775342600866062923355236464441202317067284366987647452687640355789016962281057049943494706318141510584423344856332989962009969446833598688665723201906233403953334855119972933950000325477033822085528718597935932229784612461565408994197767534729306631004861506957105952090718402267585286251468916241385780394768377303709023677218396407443254655754612914608985820718225277271535933694548639147715179762809847207689677384959782243128104623302670036302454541499323702166572572620068083423293145401595637928849930175537108824899429336723259791820681295866433175453404518896179785274424350420251569396653897301176183045786174354311307386078016263286876603219963041572699206265078531760020191715881106360679152673349553496895520162449747106907132531433410778122354219126426924096654444867519567212162038783949160780915735127894667886859307414771419398844132292421508626416750153455146437461385277006122338582131427769056464747885663736953880418861832679067589369806102475211617402780170425907193866075519949017067092354737522215136463833188998134471222662445940426014613488985188527215639755654264620964984157169408445629302871804701697511701070867475009272367816405805010190125685124212734693002339387986880636965852337479943915857365840537215825520768801628360129632501308408785308099836225838719211313637515537915399385154554825620246608384526651696522281406037471644472848688183827997632445094873201812537227151476587326883703115025599492940963193228592255677508568129454777040373188360215665031186209127239656785104942475670041168119421056398797322812094841256827046744242335954367268438555653383713782006452660906929045674902326178395522922603366621476631812831944256478026558076110497313828849397989379817559394610167782044903512439922501958721935189088435438681408824373553618968179467865204597185507484501834880199783093164313994033016469130849084180582612850522678083032232857585115704015970531460300450908978965206756972657648118997603856712012841797805709602066891347468927106378970740613925565593075968142072655070288317210076344602581004570718057177924037923846247499328049572120884901497159460088825159843790969379664245276428937369171443832572117289909365939484930305689935184118571910601534876592405957619947498039997290360663080463419752270680535757306965708132922706684372920716607191121918594311035205494634830052227604067174889576796881736398680121595974263234472967601632801096051489073093071110883042515291393618309996151000110008055145686098547330167227721430167914006692624728816165693738124472413154424810683249493743660154952008855745558168813648059490676648842795597468742177376895020826363639897616083513164503275479928488286210813359562428426206027608029441562260826925030803578582111560784700873926805250663865857871788015506743702237636858543233005340635153735878378984792298280037528536314348265389511428743460465378904249496693168656173998979604781396676327484072414538094284382816251019811703322486871471315243001065494133497898307538222175171677647592671851557833216425500811008767459442252118003740804769888519531073470598857471715332975202949613152851346100143900177484927283296888719531779860095569478856204593580777341099017990496670494321886860023674383801303529277475270703089620945978452794514118397730671398144020706644319763626576726383500064656452187441312769261976532840007023335106051728843011979040282924531434421348504658456257975103709448644812111672062251095588684786107538333096021551908776922463494043433523292339806230823568009482709090323003208291054929626949331458853000307093789475278545832122811399054201892241937632645159847412497101296623945028762382590110679817744605875146652901440119829380911431506807304959032693316554953547309038052267573440684275793786949696272160037728787702944780172769307540402659838472428234981536824678529394924308194461878451941319798008506639315218548691748136149012909915848513402063167158188986264556391595547251886649756428025885676287142981713124178315820965337040853231678449013764872376403998606915033012608107766422284062079759735868065988792313136164098788594683077560930707457751711331401759220463724316031539644106972173671346070118458198973000731291702777379616568930323188529010860124407849245791218635910274132671923986057695067149435072014979270659025397129039861446690113893544117443178521451005111241258333304330256750236458512801229061189336555682336823706205119798702538245819857483611346623085011557217733340147403811511000739881778273999068150969403867563935654233443206499938784674413392216009875420168814901249641567589392518801637467660836045696232945546516596586309409787936528473570154446460468996476617194738943370257573971003064025116663331903221725260228648999588244073770311918467005332773935524657514225908937699194651006143074915135829742243865833468395754139028956397205130949813431631453023991848154814703844593646778658143555864498923191053158382298468397586647913178924036062868356615028963168842528636554971368462917304340509869530141711311324370112533754978048697733420272015257008825604356907311077418069114608431883968211242139477381792543228194684297131811756787162677933151116628500924362975943785189948533505696902807829906416794831520361302521129384286084901606093240421919637871678219704576918651363768570758086203927397715715874726974290482127330176614406388896574642458074286865398731494203171086749914505264103224188897191731750748452771662633042454345603971316660467288402537870346514098041694929071857616226265455860939899558081925965352519273920497723629673592077503553006981033845555384466231650066163394363941758968450476676483908210145197518147562388265791837986455372609725697808366100080476432166571886286147852901248502060186124942406689521743075898132571820915843006328064604421162728108800452447089795698126113241019665963745811095147049427370579888745750550112643454784257319129798070631315726192681861448402616282742274030308491302189461245261049778191985121193088578867986868278575534752704804458176105999717398385633780733237635534184329588083720569574228930784551134384858155896126463225949080672517513768228920730769683507349570758260720679895617672306921137265121084777272586260803492974954947865444908401066073317244215106271293495462170707772598848508206994167513653942175352437679868079882707755361189409449837992550933390035597569799105893258302865567602052216853704502023080300878311459984240640879238058418862581396930827265224958641089897689197699392389988794029534222509182227192094081025030911183844876992081985713497388090452619545466566330520748814608543735566758257958802822355039558930061617415038344328274677543139449291003545081535945867239976048183067798051235493779897275178238688930807592233233663615455311963649778088469067494433054257661076198560905443404586045739497731097841372032114878524612783658705398931662212973272309966065921737385436620612395808765529156550026386950108078151767632318690628116732151981065842881596112755091118798311917810734238899000842361119063522219012169805633553660557411461703081396693011946718805716106284165985117301350237107903667771117494455043909643899292364432168159338932452898151220100980345707975115981603239457136865427899504690254001515834474450207743321498471931590054034314388771915225625918131730679908915472483811100966395794938834913398241639257708277536020218018102124579013163467601439423014705842916701057288997361684499378924370374202837455414309319018316775112686928957047448944297749035438107102601687227284728535965100815440654335273585651175140120682544324531407617016100444677312575944357973550615009440072821882383595863852573559112604795963670167377915388399855230826534347684385991900047167738329046815044878203821422505384394095357267132236339538105130780114059523502521243835186834838214552409691996972550527413842193357637933671948389062072400170932112242900102168335262741791066146198804546217619230816334740039606603842795658869904396376680191988943888937794204724436455472091419194589930204509823957758776926992944265632321150462088215503640369247432323642571043456162563158750427968344462683713086176526268517725189589127158802729600140372775239094617265300872469825339531292640613769220333326030457953167607904477558573725085493085143282569255638355711047745211739892646555140865601663892143303523370214504873169584200901893533506831681969828111960396346259742134491750321664583044303771541852436062579505197618537884826043213917597847835712732445511280201572651339902796611845637885912387639171170289654614077416110111700916723303156609416726457382420818283892242415155904561484247953168005630294942109381433252814582027859318471870645288547669575556953411704557363164995466981351471923262037792228830099088175269767454933213870388652472393119070353532462532907487492839788129784926436905962545945157288182599153009778729998552563914676665380642356258975363051716006469336787231544127393008075914796858473640128997855501806013714458655343279129165454458172582979529637171411601412191658037461935962837504876630237524447030225691789713478237011707412632385387911989085638397406381878593134562408581538326195624493671656759996142224436378399205295229108804712064950628959500305407266529794716580091863222916958824178970844194925933786860275113256150376630290834598764011440828049437671129500890296146744052425959403128045758361227421008623207378038147179306762936879698232875969484993980986505454144640084059187990263545547606207919715181566493716931829170027510537558798143935012468686467872562165539100370619902015013782632152293322639718517483659578884300510812919627301155862227178399332119356434611843847775040063446974825323952301223814809075756616095229721459009666445427965353489446903838225107382212915551109912443518820430924751194214082922742780667262158604428088235186462066263505161591592678525184197944664987308343435657570868446319004223067121827777629408973183952406002581951195718636415849904919084122384964606931021888526243711258479445735257701067690020371387993551521784311170106585525112946741668961842339079013398295938282836808591402030675544944330556408909054427673478416910399738526250370075017605456320921514004345807412288517489225091268640657772362379303149339476718373945757216285407116586030119756661131363708757081796528654295966809863197307989483362202455476865515867430573221080633453829120580156962358714214911114042550011657318649637541884340570526167942381844104564115666386904332219228363988222914653149410629685545335281402125885292908415175661338469959842388979235241423191339052685706498703579310597974788806632476839739122454082210825799172429772653224665510751570147054940253190256188187918979386279328863568861734602423795263195464817455023491010398432725857650732448712652506604017440124660209351756619371260164725174733762850317148113595609972010418633536600250791853512322457237215679019440657016541048405085921932157552301255343417125980259938925631030217840145769189259032020996337152369938075014687925158362509575774826817848058064585521653891219664858466011683956466531803323135050728448396070101009659962017963240480234979458407078635049022325381389786732442515761275308704526226521448789965806045022196291267216726940099617515182112779816937159198489469900084792805606801542606424894070338951152638204107245217500619396939711220409509465040437118662570155433375540928378106657931504093905325883125621441131162224797555783743600260284459427929094304707183122100167632203497225470967506586458877387414584899104347076850090476052044677760887155168577052231386888582026981438932597436021238353077723212841373555701321577535730030542206651361240678759776012868308940163474766745095765693059504854752608826135764232370057502280652739321899435615927641459363754492596133848697292958850352282386220321891863237286091537329601572618947033329072298927106149824867497666066478832793252482500186628671077910827343465838067926675635501366013236876841368439449246343161153205200285444648846122195205441087355886218406049866005982310358681715382534576888199481450415592708357744328553095578298469693238114774680120952249648826226303395070790969104387287158639476027744180962897094048384222236015243112083515018295619932116088634714155788211436271796991884691657525536037228154222464789877595923692344721189713279543278609588040527624248904941533873502410267459082080959930413254970446757161516964756195154842328718757505708413960287749231662161370871890634837293074933785254122615521263880404981469403387172435855003261435242453833775678171922573130629814241946584467693781322052368508316056226984676291527621999574221547752502042080288418048316287295953897635935546722501747540830010141003373403557145036850175662785779002709784813278266631948466536540038664943661258767175176104451582037821673374014178584401106638736593174314628324969567682276742732432754431509658727601350152005474101546904098349098267438185028057252886386630373594342118839433494405386333749212247535251504832008759896647467068887380371333458175573098982577640188304750952332578901385916040790951401729822821095590455845885332259613596917994570103835954192174396778074922470567857779857274655278631565469481063265100665206352513521355541179776612587948730754504494411622119844410137940731295087515340710822908139369884459546037316853916398552133833470140853165964673888460146003011504260519103166208328911473590109180211067168727376663556497671927672205951361584409118667775035131085735964966449087489539373929708398695845434706846739833129198790653170657974956642298245866494313542686997756201915560564043212668993084632001129573907654688905983494485311910782758300268048462760306563788106767944764665458692060414311120936808595679455425693118179640881808844314546119079482419025305382645825333602857428954918722815159700315757728872914347804174349104578490829454833380349369377589226687728034571073473565410602818136332716934429337616835711923146290865433997474509216381370656235381775660038543904198595955033852299261989827968931528688481599181469063705548056830412595120870795710838534795678816407951627889324174006256727746508047968468959547176073618906385830664822162594733585000011101615458170603664093958136258086389733124754938191262068540253681976327089600619087011042654302459927475491761909202378319450546102972861860879940793741583459450000524740866063525780710181618325840439875776346953699095432796937268377194076909609542543953861006915402798121479434983263234257042009660533421898250780472843354851493149319387905928386350326687846104732158215548899753853650763339271100885874932987520871886784217721023863956320823414037483499603247904023885361853708969689730660238291707625523649951279619484526389693845696043250735941754788390538862559776388436498046439760536979169379213233750585752338102643538808277618817127667949983203538067341080208451792244011467835897203326653060787223535857270585054178536857653049652925738992401424943050322935905875008395390894765845524813501794921319556943544378333773204398814309708198921046651863140058430590961356389988628702356079130862638743431113206527236304497810458683725703240729155909270339179404668439599634332892570071028052578792548084069162805158476602947194510426575317606677595755618846214921804587926912688246402961769878514095745658468327315399311467781446436694529921740203181035913133000275031676059393084752049615128437528812925408209672997175198755942466176033581172828898043484082147403662621523319771060144598612634969149580897274805210244662502689250803231260630301701736645725914392681061018331894400307864087984210711372848963224137062540191039833892551344988483529630315857302382594184011544074489819396268822699363833624853308789181715297576812767388097565678090624779121448134583990583996209412180621093486342664743420249374828591082542216018810171634175218697519675739271146346630429417579450357090427030866039478630898222502508598711524581267379539520782704357976456419953292350404937803681843199101603113359107048987294340873949239558013034259192272582442589862644751218388672718928033493343824431743982578815719582993346737583490258122527893121295904661531772464299076538614738907209511664785137319977620174904089834184113250886404056397222174257277164891594824539943387811166754104907055023112954943491603213896176104550972386288939960261250238475788417475752587164123470043462237520505627792461225732519206775475712839901586450335387080016718742182841827674643532487005322497174497207281808619213177313504479893751535784598136909942589272009319741047882408439483682035377547318023395978615580807179091234152183812493632178242877093006955642357222394540428631130986639666106209874665546334694764516304844938544519600409787404588170011872674521285984847850435830906898106786615237452893702470928890186901744221787424971489762428214984110564152579984930636100444211313086870758297554520514639633488738583547495435643220305008651920667578534058653109562567841307297642205721972272692526291302969181243563684472732920268583941550794719001424650928373453732287876014418311103409234662505114780922839407978809471568555337890378939284847140677734450949859568172323726618843328829061367182709555962394946894139528867838212053100152848013716770753143145107495340103752388423973870255200688839809735430001816079227274349130970934107670270008960511353862930505568556883310796746730046612941728857772245184771759429865763578944059007963501831575551741141420584698616591560292695593431029258238196935832085002514190277087323899730442662489238491211547998525074389909485212326446807779304771494913574476998353002285754803804148559769781841453456940832825644680159548480309564319426533489154913399969398301561139164356514524573957090059204381184707898883855114215135155182410289139403878904301076203827371202660366692483661950022918243975274243606324250772661071243534743504947880496981042742424817719895447052767286781934901137496990784836323666410658018072705989828527507817774078164436105319415637213187965271901842178568852015842985052269435055717073512668637899386634940364023346098407806678599940730585691173916187419969596583207899454436512680265930782535736862245960394481138811258152515952989993495700685510644450980700502251844646634565048100170332200084570647575238314321060433987554035972355174607896441268265218029459666238269593263827744610015034800531476887338651618211296972499174425464419523260530132735725166019749502979692201775036844906325295779602539611326599888667494331025320136565452568777251984752992434447410782036017973215644956838030746172840927156771263677039008621837466826277829440692194140883859289951829784880192984289301007774171632674306693643782687003138071431983704915162386802490797122122895573588850923414935444227547054375262583856734607314938444813534192316151294121972431583958032369559020596600692538489431886603314838430131639742646035292621800057426859536009898730162247140140089758035980280961295860032561064908184317624876185164292782875058745754027733082236231002106925397539021196484237362151966679708766952988599757142527031353774889148331056844925606372872661079669416760731976444581751626783324013267827349427827603070515331536563537395389215740579348677535434927486038771431033363028076802599229956395708632911472477606079178141738512989864204096297898292059923637743917339756074534857865209226927947469522401980748125136644270801757259975675139830569173573579063423723496460297775622326178754016006796727480761540081086021990814662461101032803385982011633042155738172519247215888223177619592494899174129364832813940007076434518822818908034579063133589678041568623533524129966803525144537509181510807273192622425914824635239961224475259720900719519604037382013944263561535518754412178769859190707445100604693482804049674447330393784908043728027782265185233200478107480491316539817752679537625262860887691532832516598209148853164950328095351778654199000761507270400170699430892648747750868590146740557762581360799650666638766578999261677274663161314972238039438842659499647869360125597312951347735638918185872022092669906729891466692054342902710364986777607764839411633124643574967528793673547655218034284330020526950828578006266520353743011435658206652286821219565246798357917607955690192269747964784168893041963274261593659001378396300387784822912729025286867984567566544511602937794688361131563400343445838093280952572925106926471445225969796152434943561747895304113342269548311121416575081941465364658637725893640033231334291854536761290424217662997066998613475062646082704573007722425498896623777528823249732390978031727525591363685883106358296043735407884078681994372697141476986812183632670413250019643833871886832776968235349033300300541210126828487833264629384908608240741613751411234743668187541286741396963858218634381689402675068061419528782470797768461069503837474651185083029970587140280647266383553782190378907418138744314519047069856136657503645935090580586173454727987516412823021248803830610942406094184823319596639472391411860878476722372102205086720175447072505095674642416687824213623338087768099367103512963293723619492789732946852267628693009440069001210239541984415417269369241816640406117107660080852360582997578043927024305064895719467488208860950819900113275651833484238675972340733607607943575114176524759858284645186642984587654767081601451210361051086479074006134396340413526517733173518274286182105396002883062526029880416845772341697533151508913863410003743431630730340357120606411934723684128520562275032191605946263289225126361254596722842037426015808093079802262012138914359149248447637015195851910407377394381079196233570986652206466132629270277215695622133183345329071459307606689128905996446049755610069795262367849586196234713200616390387377026880872428664985090313372452716792014424488266146792671366807105873693687818462412120947931937562993407951384744931209588037970283653032256493446087897628425358395536070261996241187651797672297804383808714868716224052405588511688291989203709621674932985589465207871386421064500693620102761556504031140557388158613434942045875106219408094405798441741109378591272949978987050623303484197303415139048578757839113635061999912408762618541884334792676320628481476269088415251152448272965562380390786848310089050671776726552475025968650791610421273969822798088507804800298125886882822513332925771029473334957151877478097483725570079683620879001133056001746537467946545618399812041593098294029953035396798942645739861126460595046319093054317101937893985611170464971019685913357408061546431170747391476363744877715570408562335984009618018087023439800784958219852255101254490818014095961445400777612164132207286150385080458297833616931656472221882797198907001600645875591765655635144370931077443964388698901819133960170773645339046566221215490598315305991179949356585206553512588186572750843100992111361571864422880823575361689727614295499355737625352171479674899726360119047840205305299424039236032831651931765201699645529255795212928389620411946259427813011416406944691087420447532973147763725483496963278796160294799875300573172533449686087084106638737619635453154193885865904388440164622362685511808980769419821836361405191756665962101897771028367327764520781439352829074078335728291348690049349574967346887364580477494057049916413068039182593431531448583544650626850151742397716815215349264279558475610460167874331289586234905538364641598640623234668771432017010111100843667665447306164154907062625821832135844383133163164233569912403072305643772001807379040235829317235810876407791231951483031937849240802930370387902213335439426809903051186976644363231294481094102069924972953835427185585736937172479692288943832416782798337171564466071106061054515741241868492649498811148512719906777444954360383121782100998539499517341628878368000865981981818781661349361355494377215632820379939588834466213270793194094749611171955126521716014848186782706660870572438261367340554386495916555185530605527990576052657627056342920840170117767553045510255665137382932933421219887230653815608774325602428483737547362994703961375259871952846045270693998000861000328939613230098864107968516175561444171121506193404227023495889192444058187549495884335987603641492644861393540112073905122476418203740962942912887696539236182228433934751258135476692050088915559570125350811140997491564143228835124142143321954700429378980069780439832913460961603403273895975855020529984881039948280679958135084289574478044061694103244751998331030728396408202045398953892791318098349806139097902070284119069266885010415083415555516317994957622829707167424873774883163215728685432425846249364858847526466702739457938100324452262866051476674254152181869214824839288328349606403853305783718127092928952632819587212642514100738665516285056458280592488712196504025093026206924312090007726360796910641424892091334616321201781165122820602740044776992809538935431051019517758101506528104821238480841357682510323343459680448721025409455118194401641594294779477422131779986100737514839309907942028473078990049459977350610777890225325285822800681416374692946485137954360650313502983993247966435269202129039704423854021990661168538812604757718729677143815317489046352256372161639219801570077758521002031405645912893924171320976345015115102908838689882432665813544536528584131448838120577543228990025369387762881539451025109283154038173055109495097224249572794667737820072741103629784083182382159940093562589864956807776807054790704251339421045277222623488787046318622167343805361653098801884364915043300243297457008136679553967764011946031042921987985916089956479211271241653029563196262012195385451578066825578253101678470586240470529698535298220535977073144043917467935542653582905991718435176271470546299879233874534496280015136148813637290005305175830922949785596546328198821381550409136524416590218025840555166886312151365751151255599076667298377155960541112704988028504025044460083877888351383198588545848555248080955594055264764631411862926429853363519360272070614819812951684156686570534710386927682162377693120213764528951559026390197911332450821768322760567847354960651883577982955448146470084591485204931421276246355613773161460347248061057215395769748008467345949339805760433955075992754909930401292370507846518204656432053145575261051947503837449270530412679865907106547754827761549702162032010819461295830528865681476454585325962429412528577212477478736587981994020810889645879390187608649234773389473633779187106979083796642390461060567120164538041135423966138223636755348594642499988326808363891500857138612509345493490910266578244481980307908629737412414944103631185867493333480942273537075793099338939373054541838304970169399822987867964087003614959945278803036423636695628669803612232380932029996809235513086064476915944088195691211349325033321863842755947476329211152957105269822995255534148278120984517479180383312503074688106808157432619905365386820662426851975871069124795977458443691187154202307373530859299621029054389196750337756493808076658545483662093473209431357447284162312705915523881399495024768496980598831365308232757816313348530519200522675575915041989270717713612844006995425149673791680219538349555795185813988060452039434943213532438364391009555936355620814637663457476662023319295247107956215191087286006810880155850803181513100045747051418909574147652147959459375436339173570746011334828403041649066297248561581511786779063387297677476365529028087897125568298387581759447424268696143026100194454166263558063016786552038519470536053528278402326162474149474827452079342401471992778774049758488921682244383394106571056573096998867853219602768854990269797693178186090529376286250058651983324459063771494082184686584337214739918531827177541746725015863993970864399962953113933333873211393620373342226931453157920879691232663949843347432044430922021198201461792668093278421076856422550355536009319172170976594580021871827895963733862684073363335666476038522483015604476503276742873626770491205053892288657956529616171864485795227467991657017644296563842104005742350037804762273607566911993716438280343459623391876356396446875840234395794353338004282561555785152241602744384421630172296757857329504435365772328953971285257465704478231393572284414241818496426112173634703288374971676076052182694804258696494439010548157478070393526739726189696939652422640920311102547856920712286432091722628548101359462580614654538520783478557024992394625732338683225056603555805482186579275134549713080889865338395952124109560954511919532420217235757311973715940665727345152395431070444246909680380525558232847091433275865514181279833863343515881565900787669081887069512373513397914843248898692016912843591749706865484059691371887166813228787233898642765398804863412313656226531647646124435623792588298131685275484011797704327234099578144704985806910858017518866117595461552891512993903203531298218909542964091589290596907346719630791107442078831191719809076305974767110850085565213584674762308419389407446720135083823016767467630238193443303509826654337004733609069284929476243220767601237074929046729927356149550330164256015760061203235671872667226604958918491731278515344144243751853920446228937851573440987806825122529860178292186906336435087038091907676700335877873728844626209778633942680084611464776655065647409001904735897305444075640935294618018221596422482906195411135622979213229097799099540297248879335133469408935656504342208193217285222028580677338576040789197446675550073645800575993873398368012603385755445512117583082607176534540283747631264183632304602948893617283260175124667570590321143502021184680502085819420180834867626688228188859857354691466518031807203665680255882586384614105953869692504347663077973538612766724773638214061503415340062569440071549928770160609630705601123335388952727829234725068337008380022155874921871573199710417180047134801278242469478336253710906713944879834975855467743340965523978745775863869129372743519697300474272285523924489349760881754355766722900597482797869504209864377755465549342576233746641238398448749615672728458809345796388312961639204249405248699258514045170690725188874287433642431284964288149360097082568563003018615064265861491123918466482438958238928758996877743144104404981347657053538858822441160985364152716933073853152089370708868825085190471974500407599889184184751209869045737962913802975495959011309873502840546202415981598164691898718902734179653649247366616441956900221719320950710856565939443770369224531779010565640882261096171722209769806119729492103466494895289612191876036205153095670645983755101482699671594489418789861362107330535455678233208620050321882797959110039897251544029848880042940044191693910288587200397325420751707652617221572774241948987719162261056423030552509406685261090087681480654493198761264240735551773950184447311350006965568870588789301346661026927250857706780799135154521077945113827750048551797447488319170381818064720733160431593240643529268913589808301516683002455351850598370953990695633798966553771941407761798991624481503073411543623621127604177257585311402992463332883639661193755498072500823923938725095692609627974719301340322936287561694455954703506280293505796650490995695049245754298628070909563860266356411952817883632076597664089236209247858884175399463796930975360963596555380093656082416335862084306348735475923175443901648508968473762607467956705039506949733412805770938825519875466747618640924892289713696001821952288893776583535303762629733285806104024752586987215440443968053479812822659545561516336527326292332985177537547370868611009769478967280608218066574127940487470310428381963258538692596542459337544314846262468692456874273149868333706789409767881329440131615822787553917049847480332110033637848367920827308089593279437512775043729394255090641259848020281382192080241911695261097914919633869455122720949909257826090618881982792833456761500170973577554846536655267957440848663012702636268892637558806443111941299969500251648055583354698613567856066685780290584845120469649256461878233416206130165671550226798647599132733583985463276381794451486877878753749026661139682299402061335714179596021868399005516615270334793871804475556024674184333561298469285040159028306817899319638827278874965389335066964950548351521139639747442790363117594241761316003891702221943604787319758326640437005049693665775633485107890430662323056738970615757818954174329856558936766076734138705164652276824931168645092685083130597018597480527850980948312638950278306381555545979874340540276759750253958469197727306266070834417075853183908798779951875341505662727658913053975934744817784298233162711324901669140488163160073500216763378819803106039276009920287813828917144688084499990472093096794679948835528393119299626759498397275043574452279729683572489550877976609897737056029225565192662025737427889106583382495249006282477914531714670673744064799262327256823028746098145542337551280277332828427423013571019397200185587473117567534501591524000210384179453889505315552205517104133968305150290718325380715679733267210775797908119551662267163904183579578397631678470453788115821935560262764450283473269827394779624520315140414893142196048518363801645079152188340685217371548755764610957538374387899604230881433226249766435524383063913940288616660664929788303521103091856930722949083236969092300355792169577895501028342852745212622458789808921211154469349139118130314359646504933576076389895515173993811895146215222252751388252542429818033405560485868100150901891045975278741914105615106093581379686381805212997393675628059731883453701635352892853468587843094420543707375376445794855718892446773127976006086146973299273801294891151453884075353693532823516536067696458966699127168662656082162767717654527238927307131935506503510616952279647113570194088148236228539491085054804275369084950595393105582239413329864740780618795759057997939750923111812984598898947389433150043685316298359779241054894752114974974162741371839453738793569021888488967690635827215313418748521554558263188729136631250887499500528368699106706467882112316951346605699232115220259394743945402433897187509501316862364772946662662053547564168745693739412343721782852744813138048494630576738357949023148892096287096014258010434255770361073151094677981535822224622285538922206228339567285107440252506136722872627654276324551731409996486487428138749528763413189396531877798924834589846538754692808704285508642441735465689244750349846480779289283139366042454314585346975109429332625026504448789276069598646902509734720130869867010203198570977399576766753517166813894732302726815024403493282428988215818438215410686222225562371520350682447718202448294094665466840621350125983154196693235825457478414941457974528753149069608593935647252790218409287600522451729229972939833418320270379525661004185798442705481180781834904565478282956134824907420614227108332668216272145487944062092858691070178527748846426024930165819085499190448883646972345020073438229535808938558563769987949663610493810365960497497414832674431508712070621035697628132641179150206620656113063732308824629604463820309185918441744104093420004909015174630731831514750659483977361411304387081682532394970617836613451483332215656511713835439606762409505577412488640148931272374509749469457172819371405940014753126983453969350844874861685900236761216118984294228011232012971283948283234653871875962481369766986897629860580518761708799733900739455026119908688854945311082731593998537881581626607396205686461205466931894480744059056758137415035560562526859877695358465360153435618534150524441289721253754740781405103797030990185197290865838171118931876403780817451663028792032973007127017352645442044836620946335273599173107866018542112879745555643327632719969358621077764498141646368237827645594814010083759903689344985357060793509150759430807959786287798589497378245863504176742220504547090905790683528941641351815395051195797947134426925407701663399461627643325449122000522800353019125473871957870492244412514620704731824327218810009122560036220672463713873538458633976473093294251484749762494573653929326318986608894339670440903644835206890842570873212700554791638044433499452822134203681847178730257981432002905311063456654052890809253782408163785120542084397582153682585398100781217250165069533389281125675437705860636337813243333324503949672818925172020925065113942508847531603808054805577546081783711696544347228170310332975467279159379407560930057999787473604906779498009255018413428403399258898806890411278898255477158057055730715990439875504174870497369853719132074892380916639157831873029121066057198221051928197711800245886519371300464000935006086681443924069931039892886717885424496315721616379129896031229348039045389085518098838981185889985226488458669013483120461558130669944532200106502738512583259684858204780104034303918668879349879159205681248867540969402634579763129234136852184686510434238590918312500844549914423191023822673148615324095677862148953849937555081082905962104371515566729342307005805039348555498323594529913192794910475658769144237623626277395011086420345040574982869629004904316331282064165777263012868621306141611436780710647955189611832725374401389215199867911098184406862791913664001830508189760980307876419163098530955580668825002606517485038302572245102873589639331499219282197906616482271071953437526728029705428738184283091621227688020281801550772520703182135316899743451452291519504296615516764465852129386967532726161888921350879784222217235739986493730077563390676993864216695649329819244514214085675786959363518744298411188461631111875855377371487414679222417189344467775401320748895558966022828921442585764154461564747199858505198444392460393573607650967476425453959372751415351828364319609822480073744580746320928985115335439609618925905231736598947100422305203396795377511936097767019402849562445410918521764686462070582567745627909257352410221947673719003108261232242644605229157047020101929831491931792706526394624924484820659987326282899654221272327767703780981995391320926118688530825941328820409803689232839858447514377843994185123295547965467257793610671128740559196241455298207179348162535126699648983414872166765679512717895133117757001500569530072999652468441055521646698807421532434772088767003125124055359287305501696032917866679844999841903246519288358417316663500082905674467688079486921094341936900342504200770773859769693674621265108881721975181389632147163297324979514400010221791897943908947382293957212274701654378152298742530580800424036550572809082164791205991979400745199222065565064740725964551772131259831605416836437003884917705684110600920573830378219559678822736457484211371394792489161498676825660352767651922612048901888657693905332318801426256733513270553153394117548217353349420441392690930026770937585992660080687561908808791658067650640120809305227844104515466697957988503608421148217757453530768409224826235636181872877216703358184532890859510561945988920824568482900112512239292820785385481152778226205642390678372523751477867407231428115178842021716290099575212708091587396709109404449318614187291648299005146746373779212880869628905455190747131078384960704848178013115604032269144985489954814382274309612327790882240843298607277239202831208994235042389760623295562259517248105285866187862988661976949280705994154648739481733400678825031101603405103272122965410662488127788089778161240498092019802896416611050073126136074114491831092352329492474162763681504059211550192914816962589072659148453914398804524372279296089104971182144705409344622655431795553200657376637082764588680791368221826292899597789080221571476709302935275625082180014073398525418345586012476955504590009216193839461276404014467311959031646098628693929835519210986842534373863994682361909564626961120201797111803179551296786879383030894315149800472835994771184159439914421955165856156808361551179916986104631314450293163617536272834535283747362280454589923425206375402105053423146036113302264303878677636907448890166640901886087727777243571376168661662957495750870300294373961812239083838111397407161278774505023931219032652643582818354635205126800120271755327187773847326390926953212308495254153143857608873209476496744563561117194960084765479248434443864612937425561686421035955212926290367653553287601732154167259239731243600107824794836391287611557141723803888154160718711518268420652271546071475940651206790917855317451637513880140842041409349931874190691254682492892064753387364552603023426396141849622658416314718209670492568381606015214866541661573000671469129730105067603304318166540026665906192139623606186392818479110410500818690520535488229121146963445033477548378416086027312699877996152688748172461753764989844274042166185032983795229868081581904780876474332647683026409537763495526144249697307345649282179588929223227738291979660491064679759712413541825916148690591087303390606852986028174847322920718986906506467870411993226712571784195113999163296020566294004064091756211932865450503219708811768303983930470223278313232433565752138162650098018283595715714206720545952629319171635834956668540382441090885592069580963613137675025687317067112915957677687870740011537964707524096316324998347054262595595766198245784073043297104576592063735592431014521112626225321779968071446259592563447894541928820476701453004583253512312499496581675002548787464945387623563746333879515641822770188642606999862970598342898929190463126122351026799128867477406895057715947510196649969855820138828019976891961615698056726088232294489057139987171084897439831375494409339489857481076950482593834424102084073649245360663174044502598193704388964926826997851035197231517463046828839569605858662724596574025524238623942903917772760651563149848756279183720331909216524153528084770619157732683531609696339701474040826473218431622821369114032981631679590594942471767939505409727216235720076835424283227573635437534949373308211246135580798058211533235430777673153964154789905158709810829710369611105601067862500569469862756940848181549394980533227833711842585703665664927449630960942450046087869662326956688969998414341015192544451658330634180562257534365294879513510303520159628750432748882743546751521356643547360675529053004363340688883163824839624216390980284142837331894518363489318142773305546700058543216577998780389402358283386140035733073698143597661553796164872436773701637139813367047339672864558946502740303787335653587330947457004652556132275064717906758762946929876579624141024837971716203271083848076763333323671325702518866066772247573899620495994463668683875394884998288228293649378884832098903736609949990328248120654327540997437467809145379049042080974743420357072580806694293987913273577838930266764172509325715352288798759175385135070215258764183321314853743606457903620686873658698499036489062196428663606564084870236142633291761888110337717459823333706271616286187655863942553523899460949169020038232283913824541866376132615192199398907963615381323724035156677201550950188527234861212340371067800182869065448963524479908277622270611653186860752092829372043372143653194914179570488612753572309416200345735773703866203998066238813638296843882237384296732545461632476441524159393252025243169175566877779978280313495984236488211534859611723349543484302390643374504211520320472294567528311613988873512578798370694718155919733210834859864797358683659060889791669701170094258989260568992546819459205403360448797285811983553581979606560013794323785000053671358343889830413951795583550308731233799623288539665380729616841623458602982613750669398448233086580503087399921930183410867573441364431941473908640839408330113440755939113037263659643480093239653550219392540440366143022040035554795614294245325148257772705062399519519186799764917073562325078646734353729860578231088847623493823793256958950901661194038278147139005326322753999449924892383834532334648703270382690218309143265919303324863525623684806320295504910910528574855196100306845373014847461286728490135598887637347548448893212784605624750137387778023662174628584929879715196026886056568558787673667917220500932008571677761816345449738596739273154248242139148305948585659095498451080827988764159076291983513795180447553122089061343070459016447370624198739703902838169563592913634254036066781949434087925678867716405144553083565642468157002018293887157739556025002025192202705562083643779389196546449741256357567179388017307184890360123096089311893320602157903209571880494060820032619263610297644739151241344188336367506309386810559808179125339708240846589467726818993033858331150567029552133243887521932904436146288585619000928756416468909525928680004856212305007179436145393311408040182014858774595901675040186092449918135368380628433174444158173787817402984857827805898136681787325485938516153769761704246286330442862452676918441342145648372577781063000459992888841506850982666453072813167613680694417995229109712304802747829416668298223378807663361699256959121703577762556866559065466060132810775959191640507726372156684965406015690010211937361773114576892872141803659038335811122111146888714044648834979741097745093432807030187376943158566220647921459262104777503138418016424949467750506277356161232640553532873226180762814303635521963708068295104417846358580163103302794184136499653152714220066394171718499314757995720911379592227788548524492884514696570006501117247090346761537842565799960518957454429872928989469536581568556849850506425363081206261519525656572995385953183234754033983759156277592418306082120212210526897277858376411129576649424358273603657877101958769829070258258062591628033906013048245236205172365240180898194145252814677646124574767066598761669413049412926317575024576507908250811247693880527240653270042939760623651727640569519665655117613014234132477754872335431029069610186050574160736705226614976146399038994890643173879454397003605818839844562785229954241839904333791334230604700529389525309423888048311646952408401093385031043704139448952473860336050182078351543669363681648992452200032171586190112838555706048901658945152839490666840674423405173469019938889173990551965098288769971257688346888086815939522982209335208118604354586377309920882171932078626564152402994066807713215418868034601074444398149145919839599164995207798286262344803725900785812645823588446476022108542277537817457671634665252258635723710622378734988778020956343012533018707508092558757491251175224928667863836154433488854152179116458522878463474246760911163968784446719107547065996264687481531646197572624020500819192343512098869106003092504851662480820212560655934315202560252549422293955637580635207031103555937382290253141927723254360880483274345064170885413736416852837221635009729314132220319357778651606056573975374931366028587873450789926496526314367391778797184154895064558380645374675038208051273628649882479458805047350511142366295539376840021420304159050289316704966168157264402543495513625214115413217004991754781104652771987628589305923628636867662484130895056885169350211435084946694688423031064421061968775722794658285967035874883190595942277827227802358881122030118003833223618932295863061937380666869190459796692732299870820281912546144848121407739292476342938051456753766325414171005627815868205163246632386627409500270991648769589486020543932228627392356842375671166744266109708738253961889563047376979790560719355801567542280325596675939735640633079976039791367704548546083159342668995261807658968294700826696445828314327692142701506013674184993061137248233428782451011960070189102814291873581953840365632980260471250824154737110928134903584151197797868429540126172044954257049384700279573072430036035226265433894309878863825417070623330720760871274872884596188850712338787781260345027130544343480253469093174282215494829478395367451953772201421432369923534933744967707852360543209486825873001294478963156593050662209607664327759183371195959392745899338601715722690374956363965175547808543669558975386256779547271934187454006580093966983692293849882103310883454158615577092156816939729314885109640641997773907393946836645881827088345604609319693221198321656479509290277012352526096285165680392661527914497794428241764499755040660880855633112875996120114450691407383502230850417027583330603538453110174407460035564890880591293454245781331922376216236428400996569625880308278368129614565324998778255614492388431394986928149079714070042423114919923298434565513509268895046512051094642348668949530019942814911082713253271513443701187807932667194242419610157121270159143536497413717406241709630533671222108365983638548524542241328236638240444306056927713446543159256550304277568549322484344186382511717194119898474163225852604128244769289641877183916798624157953498993894820780058765638958001152182625383942079327103708845867197028287677444281649429257388782466780816074654392066172816296562687571019855473843446004775485844518449582375220859913662915334908906185312248424317562457186698535977808782279268091109291372077461722136409669022757273335468830138990328037444608361716931504824646874786072136938232725630963262472935314646003438538588424504216993041246707602587210702207656792138090458273131280725414327701792272514446789087317476356664938591943468496270524428419375927530737759787164151427333152187507291009519234429578712512581217166491980082540590845748931410087195634670028939164496519234028791412086931789388124011584211739775287113979297295167137198320724000878916650080596454971155797777183170578422721235398533645968330847363955695088302362112093682144313261684645437075822832413918499290949999982579709518402666252909847430665859312007773737694202314708350191449169431851597066670937281769079973016255693797379106649410743314972734945871357299641767797894521642453883673267265302490445927034371929914956952541520415221274429158213818370876274461743551467146855805203794552239743959902035003227284715341790942071392934827558910978373350404442283733409859103498741993091032079985432371842307878325523876058137356966752259303817344868173055812268348034540527746856372873801122681114674558306260051037152793825407150903551038651965936021444521790726423142341095125994529620003881071439076606400289763772129935224827145478958332070481108044064857263263020136061717501178836723562348667639352138666249072696661900211639751947776229707661440996146114312129272635624261300240492352339537624248013896888191709654969524116315302014277762141532480049058562448027022935872206511676826658491054872084202431615277127845074592770189970003110436206692403080529980535716323373071643790752796570852820824492317141209528079783879407858301364127790965683706280738935227590162276308974886722441663895599263810808491844319173310950467740665179586233461688666299009764897806454694868935921239718301043054254046152123827608500243869363270656295747027264715979497230681389894291227066372525284428532250229389377758158953072958452565064864427530638305313885126048343737311353045499171383662244982605905897474214540189518764716256034781322831099926525207720055224710664694041592221249885947225222061341932097443302472919593013229027117228254278056657714047340364457633650138725310813862065527654408749978594686359822316001802837918737903955590315977175707316167972799223828198543994564999255113919253489513816521502570750929758823598456337707881245386654261898582767702267989495357888559391130810248877410180790268924732057388249263768421174605490499914161516943436159206477979631812553244877843891490279847309583251628472332642512439948672338852202938960284094944180689359218773199583906206392271948909170505505399887051910243171840453935959413419170144894201979652590513373700196695321494197458905481939581862144036579698463281956104662140929683031981455844522218104185937831768619828932679279303070994874232471151066446307209326174783099241006092791555192624608422342868637647025655924593805517290893519096193717800165893278463720065066581461727612219949245434507227458137088021018063446931246914184643045904830127546274474749603612626503488760783041900748917680623135489481548224441722870083951925232873120951586810270351880571662637353404374801170874052057697087033931029957005409816258499314620719749846575676717083328750228487805424974487437091645897977068347699657851781005429062895253356565783939903186584002339377717614163540708132211206555013318766982663946295152146312099449346954924495612318169889934866237352585850775949545630281968710678858972333032289392273545754624242513104716765844731616568251622308664420484130359018950484019152106076791609647903016126298370194044494712904973942536769729392183325588267576846754043953586956181162809489948768749880735307775438877523891640094814726487765548935115553384512920980610079665026506757627225154908762346752548870352936289375526269477521708966748724885756561300639389938940035146451955618097363447549059765378776844943277246778553473278409667927670064455482882699237397208030396204510891420728711501487332898621628439354064478387491307748359767074513157909677574682642840548536075864657462657856399222798135958874629081943275120091371493388761853826627123013115706163794708787077522916209513607110195102270387005041084705125431240190088967548602685138454782901633636730669027815805030614651577991871621974849584540966657380642228087713543156264246139734566295241186529034229056093596129442348884113581464713045277486120243622767826190041821598716926346843060581124428360106458303291657904798109254460368599840311358153000439121864003078287057485716278225870477159625792499423708098112171605842269218587370886622130454187869083166755103526794352624482469666797221043168539937860981451546611154218710573673071087472430190754842792894116004763250688394536760669097062533349674691567375604269592339150482537300889385397310578859752895769002273084637722377277439367222881834005537214232039860421538961309091541994202244199241020282029870815848409109297837128252833471896636055988493327442805501631501071744412833699424272418817473995591470440728880376356667604708248747795217716897355440549831937808952500182901175848906844065846103730538173330979528623408327402584893078112649189616893569897020442169012401474502524647948548222372484186675882595683225954652784930656022113172547871423980059043909933417886114894192713752211234454620122270466041986784812828807351441434123057832193606969884201938612458029737469179158962766081930636978197916418580893264604377137311598256388972656425802782279773020494216057881875811770055256122432244558504707075462512159525894903446894565157316091519264566312879293195068440955351957404756353353310009521144277330015828633864621259556355480452001151082226740469707575745660023198082615893856854162917175133248908929056517490701404558865323085315519193136626137006540819119778557485195031210183474159534338193697610096696022680782953133984539428325349327210306915401232306515442925955215705562278217345487196677329389700035407354828586001544046850409884284658918905810838797351979614298564377635530275080298935579586670527423293005607609110936703693715101699197934470390836867159635833213668338571268146972616915418204383386618309725922517904280479193758118818378945692118756220546698746369772961337377316405356099574390374804263247296525734928877295565145548552000446811171388699858174193078354655592780936595944723976429679511007562112072003136568830115888409887222305245533932212143504762518345212695117842900436444411272210722268513357842929466755367818212871540722696082767630552988962179100817647704710265335439354761071351947360766375686603753121615768280691049086681574502858957717278683375011169313425706389699703049558389797207894326726546399215110099326317133493233185389041491187130556092012394548117065126935120546135203836643885961986500705859097095264089760888475810933793597047182581554270309861298268477751709973880695131891468224071230334692288504840370534232510865992044881349947247170963417668831178913996563363037031009468292057302415037306410955549190599973647703746242113458001158657723585805756531781825929779657088270011740267368954420913299218598147726488715220095289034658510668998251834161958607437091094783791199648669300824337750376877534471349231903351258320506106026406988319923658156116698899221571260586219989236416332797857793343423551821805328486996156206341711080265701463117017183286225251037895746570038896861776710276489933934432960611350750607947395015283263037608625602488363583688091019188616437042349217131906299890516528006588631070307921693662959130477451353038324487891264552054162563677362639614044834139587552212689907836863697814301705979586681822371748920777014410890442181162250197673923503130625198002662500454987311408620972964580058675408667167213236678879812006191721106293498029519110342691543231126234717875258151579057100229303333898744996395054589603304188572920301839416435345493630519030945103512321584579401559165138251979846440181602105659270011832621973559437904851976871030084685692892633515194845561338967862690994822332096026616531970065918950721749859451072616035570432810976968539002342176001632354058592849854465167520947488382548907556561506976789539465208217485910200963187240343843195926447411289311439815188136233584822488812020092859403856913414453397754077373587218585559661276043277461446848270884610138974082028966381773269685670881447338400641515992514380459717960316017542646860766070788454391815310197544069327374244310997429675336975415754042492573076326543803536135264547782941342951759885229162720853355604485330378142448566534604902810869643102002785195655630774630838154156102525055306072551694276566980825656425097019707443307325726749395191404830035640225229411737466404722078723550957525692072132457708855613975876125373945139553370257310812977151390058647122810516336431309269247775360102526775818691382910205010785236977661261498734708309481777695092065383682179978012287624941487540024336456344181979697541258792091624626174286947045553418829940704291725847570911535342384593546331050359518743078913327200721015830160274840494297984653464179293930847652423248362978124864789706023144197043331680293672213879340892242170123439391765972808397268806849138903220031747045279689413516003917951368136835647097675529191508196894364671868606131911847035293041096871383963246188106310714616065351669287144477395216746304705532400510428673142292611446892487946747822361433814274187474153683647424531723130299790519704621825005356063131193124902689985927074736780636294410862847659047737091767514742643918805733252854117398535414073641532425121281893427979575399672706126708843394875156053005276916778199914964605441679857157579333342333148513673129524099337797454096184957066365796498101772096208463816489349448511351161276626756583712681619294956747152820566301326334025512494653474164613783221947467034524083669883095953897607065471986889402246023995220039784355553345149112893334323166264612592223285731211409473802950614630569730558630153121307254923810703267165812866280521958770098888533502189359086737684761197357434325728938224461578273968764597293174777885633991897473333420956048872373168648734217431121107158236166982722634572624462711287603843841351963092918703024426960362653775565212509317101310554803799129942487500368651023012437910862047290643399498708138875152067725022008928884343320271086842334925302604738197188602261244276309355901253590648901235710169241846431771176997145349660466288113106445925378817076181795832325522033286919031641970818601279687198404752311586715252996870633074288840907393273891323846001167823473772034729534429826288444013718358380200119445899205583259054132600956029020541531567259989433234569868061119694770230389526897149036676612724767094295569914321319142767916841601551638273810172377995051837836079737467628353374555962683177341569211830085224219926989324105662684694523134941386986017498792368748291726075289879800049092167295179440944010730228113449009727967694830051661172394796793027687582482251603366720328001105971633108579342706074246493522707619234247331938284702944996732904160740660653210391079836818161649387829280471857238857316077024214132964228771819824405647337070752839842402275739825135492063421274233360626157444228901665184275439856237844414419970113205000309966968148045861720083684140030202000456888092753922828747613962812562325128393710847758277081104797553394644818890712511111425818391204806824522382401182695467318712489124756015530945313997144616744059407215178852881865411510481074281929635269690939303191035915714611335618460735208340999507472189937792175813111726938308680279214427586858403281958311141644815448392996333709922651017407767875840492245229979015309071898078732402393312629093879035997927138930955467466570963119712608097629678258885568865205528028789905828350936346671626557457593603578088406086579552067105483681086579375016503701052284707952371378003676083709196210816617203932253188220460483375832267275523715884651995310796894431043209606942319927445894421090940742748780181876002882064326690812972484838382417503088222068346365185628973044638274770679683915426712672978471255198643868634183053850049136902935376461037403035127517888943632204728980928387227546026795855860554703368845735416285702020343391441227994107291491452464984110733221599091961736874530671135258466505244295626269398185118804335963122818502640786536220904003074194963343700769145483402091417367722032015591342367622015741611454970148874753513954981239510624924375869721728305241387874361354377435746698919572349053127423342262279665482142307970532421920621658120432290915940817626698856302290790949693624411643400882532519049695905554450822158961799389174692027933270848548600112120953412344332308548622262326023100787761952003319884180607894628757126801750100502046209639705625222325790194827029362100750721344463590057605609688884125654386587778976682974988795095673760207476247104378426429671232025617779700706135849509728814195082141244862586785714627413775949931362390443274787082129656825842541933009746460995913978166178377976864909919920701047655710756212182995291937563199532232373632586476474424978764948588396736355184503273889917531960013021908546278416037216416469376447809735292151849515364023177216281211353766281822946370920764463309548378081046911943357148174177262903633611503576737073266338896889382796942370485195079859490147424375897476843117689839519509136152484199702501076724909554156560458548149506621763257239726646255076381528059253725440029619713817113712734817613186230899141552394643896640742005520051591022094303968400892581708112893723498276687366028462511737847131986839668908128074672122914940513425066513787761949398478222253669965197528158515246580267425254630399233866931397348097264546062326465613045466259713226105210288456671757572798190658802110002413483823125927369464869531205822231077282358840218141269500509004063856676099793915817057551688931461819170626887438610591379854100608070633659653290795416071357844613253082910890092784033895595577752476277266957554373347524723590525967524108931001283605722268039638641471221428211543625265472167452612928068596442051057892865685960476900260053479645307013847943044460686458977990875211458805066518728287564273891313837634958402982367383600462963646057009446797437298581685784441250408971743370402429063660692846166129142660732323175573818272551437032810780369421631383823865644027535674321963459457357484232880723436183347526704177771076222552721300539469421222659483567627753711477681052601138392297715482172812590224094918351790672740132704268400349206381627354743149995941926964139220242714039749516987344943817361668485480572316473737568305400960880232118457968582560143525297865088717124875021706689350125178119319141667669114506798281444188138673960655351052598065653874837477888828152468044949442124597115850276590309201917306884264631319541561568366790607002896387257664180649536943368045812027340586179551893120190188279421737729845770247870480093872925482023990473243456664227658100378785114547729116799119453868509197735064627000608952675268704196935218630114906708457500441764564907058330957553540663680333569317442561553215675600342473945420396901161097932462274172584425646491572238410348015946829719462050746584305337451763492717191409175556498241702380542198419058287696115204640335356851315975015614589338738635043156702886764275388458693651211014809354136171465520921222834668560612740220938569252197744459949817723631763615847538137401384727612223468315403207201400702857615826433051153154702960969922181542760833307083498695929356143895950922440227542835225535145936415774381877618627270429609919584208224976825512704228646922392940628668825960427658280689524666690512796805450199547280858856995170752967324449544536482394827075988923095368115892954576734820866927872110996407580632182932005677787931563592629321667922688530333762835819792080446406725783105974672386506409019072929860357144082459485235241164857196478402430874988213963510521756470039852255842628953012292887255068415732002666101090669842469901711510488999972899600644922614787679338944529809032926132844663720074541785932961217722169362473504760687277198541651329443371182019814593700927348841301189253104757002511830036255561312234324245264293882166409699700231913102882093810302641251775953065113085915818423023920543969688524501404364052371674646246681464824851943119432680058214606746743207638453211405574221673694717941635036977505045443645979093750196755414180295741609417424108252669643120573286300314802904635875346576260421578371736444411154164059916520239086665969713545631088041398583933505320104789764494893505889778004725433624052561459168675514050193756908479640268822370896171531239600145963410049782392204771422142684072468346886810632818784717801390152336640097064850487007269900614550620868810868072614693165586965021743104770860543797798242955067516733611867481575712295459747019198773211891903024094921925706408382605123315005862960428171006135753940442233836932083980253634615395152352387208725269841409636452747161234088163766970990085235825145009118352646052021357133171314058614117603685358337518047461959350683788580518161516801750618301246385672732456377419281755220549629376347427023587403939727365528292672017200628477434066392864990366923146319192935736474946972668238284472836085298696106002633989962429164767869611632204916395252711485515177499780383104008346166920460180149197182510528581167686210046110921461916007919042525393568232484743680257194435646296390113111818866910414093694405927301172300919194120939881929093957163804293837743882265482006866536507172121703745625198676607586201810777571598466320551791868255412901503461372531751756967964428318843893490077236956480122897006513150844861408122715573006055436426503033768078557788371669391746116351131504530061308138588109046741959564553106127445840561558497231105219790489845843618852264561019994282011821829820226309446459038047455473208552622931402964270853848799756079793450175949203723457875942280435954813768250177801924335811336887048755445460209666295412563898514382883860376742761592002719672202609549849373797392054548095972199567760971597740544457898012520802608267365538952771819156632381394194181283332067748877620568183179729619920856221723369484666658686661225425556870919789093408446978313385183867403460349822536517238677508473020267680371801179950098847102879671435781436121756182455750098529781442201695860194248892514684632291807033905545107013189330241075321220901450644446402716288677211329767097709909370382253137768491090932442231423316544549155808249375954330511383766641725194539818919830790137976730652545208835864007772479053121779498021792675702500161961034493569225132640581635656762263707802894989163586628751034465674070630490942621814046939009711972790608695015275545532782867171016393127827258639238919919958448043573501219258042904672538595419644408307287840033137599842032933003062560528148264924089678874654686523681269032927622579548774245856309754775712486742148938333180303047945206733589391150589252225279209192149075993910731160237278914897563247999994333303966209218217036505086923616226187096719453372187036002822138845043789142923835451640044671924073749011720190904021906178938655176583160450143732917507160218708451893627110301466484491264020953579043632733170887749722104299712136215461126252862916698423078465965577298766510699662481811923451964874808124164326484405833944878074454514725933014261506000005953681286486747987015322350161125214695815905518546154188333394725721559537155785514828636833039746760562196337007613487154161071085563175448621127789484554343929281128027788628961624138002355960261126989274602369577772536038727577905271825148852804668745466355378306207932415510907680212117278397999191279729270448141371129959268668971418319386601724230957083876651410402996368286851405086703334903219436253308802848746155882711283094796742561382831283207282841716489064797816512662775260618932907403753706439002946026343427733289227977762647478659095015894649711509589450213676934897211853883633351147102288032475078112569318568051253273249425028285919527885568672176782553760004090656025433493497539534727010284134919203668039247783393370675042516582344930206158539813037034399543662592620446312014074969265608839964661348711863777578589738426608246678431604874025573013088905173033958620569262024502645323083685395452031357582232689777644270718709756928710456295689946508315849134514388718776670925407373351372204765501559647012205565081113523697594376123058553871993558122042160497424500369522728480940293731005289331233847731089236841306484686571461887665873120405483466230982552595744178656254725258765332446763063676244476565344424101630500175644253958310493486091248129746584927449309063711260122785962536331488122848847011631701445185873573627330183390096398086207605396845369679510666940677698839185432823731794141478691730150192491723509319364628743936908189595684196576538040865350997369903858588304064290235321980997939616694940308207972600553852409700199207126831014377975283526309484227820603054820218558333781013219218201921607042663752459378919121185909888666458516685969510606439314415190226332837307195138527957553387322231108019342718621940111464064490881452456611024972314797342053380770847433063912539406740930580879627123325036291594312304507530729875442801649621149577481083775643438624061723557143421123922833453890092769919657078046626242987966540953312970235714811974505794978013628628731390222649334575994270149308080442557509892196242955678302177467498095601751917634253166101130789391251726213975373858507154474427380557415966943551116007421557236978394735504854888794674015260210428073183266671457384711110960433004296352633769515230318871294487534993703724677292929010520355885638815441570614723383468965483481244653537227249168407531229106063522757143549944220307077560029077022147789367448962767098487424905373767306023129896044344420969979688293669244192159279463209727041993815762529461776594228726152742157403150458838678757101795271096401773828322389001641670924621229429949956647941462768115262494175574263209229531863825465932771129011581456283596845725154765653105934532213016788841330075553931452110841510430940182003356081612163812988750114094176132826243422502558219040785390487327152021840495882641572215838929241824555328489970742012411574373142852511348305329482869133175896379502584502446262584000606905034420315578818274519577782064404875963940603962571059244220620197393253629114532069701975305205453251496137860038112562937903443072783264580543473926752299645349398704911338610717148381236834646942282254745848866948095603196600223131654074356690258130112821529804333873670729959897745883982713499228988814476614631890395665933385803212413689933274169694332959706517604468807210415176854740591255701687168047060268281827016749543764439518084414006062458074196933437575078898376970721709494725232080949641112869382542274452224651714875948646529511977802478865701101872693737554212566838515922265902267345078955018271239860554762839748428034500776442517198508915461241384776281117829724400432100623660751919021649700231745429347433239610324926722972980796736819178370082068516515110830872212193801203816465336661093308936511470081188160542417766239604760477428127578545464440087826142831809906894384502471785317403070252828685469880241570917679675113339639496947952486458621574884238879016200879534954191100843012709185432441550801756487404893571853412355032667245098749205119043062836978213788890791891636277613836748252979469708537957506290512969792715744686265501045248797409040053116120189644694539488360365850844778835468683891319193448213641832598263847634079443903454924461960527675812699508759322059396209868562066415658826910596937406904814171820658505539881785891091952844621847001795261031979049927530780383980752560334937317672026145520757256515496668283251428133286319071363776193739788601616890543260159467152147673106230680529550750102769919080272187731881467998886584629539340418787693621635397351282409347470822484644986590943829237754166858001016171656520308603797080356998738912033108452682710026646708456199322826329963538485106396966993785765265794425638510687972938452571371810155577858751659884787076628830480361082238948615865411699329665479011326348163868234696197066741282567535033166717889755803294753834049426348516298102153442449268318568525020570798066530085569460051681908031001838958259121707479708922658398704099912824695440374147248620337425869234576025583909441744553838147836057507458650700089660025254678467432184002850362671218685008224075221583086329185417923501747736207027003042769973330750961191545880192041557456581560720429330080253934062169726236561957945828932840545990280159329209462972292512995415607772139952124310608042170593489919336138356610236905598271425508539678890023691360023788580241849700125793390243769689781996344444490408471249153741365999260634785487372763341201747121337806427246319992275158732759235853551214847069090970619451714724446423513039791631379890062811537847669839983066771878312767469940273434005768461479284233396972675136479880406129138487715907732308132635667479639365105949357133137739151394226490587142628737774889197350902972964817218194761751367747924754743959661614790291246730571443011766793420665003098084488249572566048822043867891740013372658486074314189189622760999444342247667782882138105196631456535158613299916095074853246332950795942776827940779739719840652248035861807305912290762289310752629489239094844849057342948631265614431638805969358564780890534471146278698328924272102978596923294319794831919141505432814068983339640619327215791568710301009196933574294765499950285335414031179942463595383878489079430863778827843459570662009515076233905012364304890432710427771995349648759810553848563070263441138556816637807786559094855289349429100568444601549035367473689634436929575426446745734790223303902654376484783292778040753301068160884116081781715140237423535250405943693163916927425352951889591422808213094332737024824456848034592000154590177677003366811175552876757382280894082023492047677881159489580558741048328643834215206822307159295359765618921351705400863261608695579548231053820533388770318751948849652708324920697976339164485228282022348186419009135606689561410351558518014202150680952441606123815293413202869674779526541743643673641488095000124285422287652142867611845670252251786717251464970821102213234630634137225774342962565794678684053319552418929425195023955958242080766594708592393396712387865651520591742673165688251030541374370119349816033499207768806103806992502906929090530776277199619882053358448600650960155872158286241829348967735273849743065946456163470998927828418867797213970072070274634565721177730626723819623537504616201120712162469397194036303447311385919775230906653318266339430782202321773263011089258553462902342607255416500732727040774849066842163443580043347483857464609448534667821432134921006513822159098291009844083613792434663735822372520444436975208877122208449582935796055514570723208356404815504262602569324780060228395842810213530652548894490152518647196005590230966638725076004109310007443871996226907083724155829064561878144232780636681865183185435411972873373735178653894215968567392741607413606712994017846299354511465205058669060028836034253833816414625651668387314542083602152234209432240138698484722290967134975634307698935733173599232613480576796993454026152563638889475413548353670523299693778039214918638171233579489066189730109426454903679280783254906476624847949597668821948458488184278706067919487168236691988260909629901672939231068754313887280818918874846702607724073954130086075219363159185534806545249438863527981425958828193768944749277310164120248905112629810510276737779266072881091318031899397542174746439706390538218001016454770751221010718985869511653987960267858952214799303124739612719950848862188221432827442790892663827238775260968621817653446913002905985512485500714618680096757007009197101791870025513608798589590718963422110808652095690052100828873203096848990596565845097327258975523567640664981921016249285311974245400903740361737766448836193496806804117567844063129974174395732586163735580990170117621896301922308787200196005991992646152965090427873971889815287434462151239046673081727546447113628318912635831273057719433534628999342506779660574054502730260471078955988319902460192068870751230801312312887749793262124983058317401578194219580944585119001648334653170611198207350087353001799078961284747904025314201456024587958219923768324478199801404630351627777406991833388936657877055460967718650071783030029715382989583515426101521810209706231140564409333046947282623318045497763352799579361259847495660644646322382341828581711980112023445276307404885804034767108471231429090353402339201492217548695043409036410383566797912334438350965213822630935772643338798984807013943752391115747404611367837232669434702355856818483400705559441761743659936980862569710463898324610213007588176472959620835789604932842333543359065213822114090591302628308808758221580655277160349719798305925743027076166450098292025349317404579171886936930286964708292287973349314444726709130046628453494399058436601013990506751903030597328207259506872333603681394471274903010149175294770245271970115880097615967513738629821287175787581780324842898662127184732933334869891580468471170358606725194693354176598549048721433671831394646170102584952340045979875536079007375631782392513045538618891750746491345700294193176303824623605424696670560484013039582738905414002188813018664916079872576880936640152190075124423953106355087293550740461747446187183707788069777974551431038571859615858152589236620248574269613862519884353354417641072743028080150720519603250107182769957266914414377274964379634190326892231033592995420489072118408475684549272226524054592094556984597419185664182467847545611069599243571010506679972762015813730078141315990781577546061059014645407762441270938913770683514070282574907601017116034083601002188816013505314721899877310598593293003399938726650967914910834683655934347837586949382359937374443991027752885196877498511302446209586387790935061793944296235137800658628884204333383023588607842398015559792099683883306157042976795886271604096636588829469350204376190663153778932026736762289900019422249299984933773927734710077772240591436159853799512443337815488584291335138525512744885563205392079682267903896877996924292271424675631515374858131064797800618043127839021469877052135295122485223153165873993401171318301999719738562408051352122012530507379049482927726250975000706574610680758578334808189185683799234922033051127040801810414537482690678619285487026870778549438544437205697891143339106914194964846729620586388948952909881147569213700530070357836245205464364586394668561880244515600454296246426834504450859693543867563795337204441084682792361228480887944049325549747579704970860105599844198215971071121664590532939146441771650350651553335778358155587099873362649579949227742031275118595523890776531555999347674595198947944411754238749404393148273680862889185358686522050391216971722999505363788480095433462317824498160959185103331031159555310637528012666998845535973741380278660406137938570507359746735220991717148335331727840795722930641041196848768382499407148991487907237578134222436683546769059341119368230193688427076733003243039947207465985071397714846970323831214596318061275930151584605405891652461411077079059495220958499362134337796819436669541002027433998559742097338274311063987738810812713202164828560938271601076378658025491697569021066988345651408230315628818132445361804305523474334318199674628310677293846232459976531077334104842035042379707462791338903066456748459020732875601545815291234755971426129017958210150062721647364976213286981352618847892161305944099288613032528595213944076706203436908593372506053970782044912913811059280319875078111748488985674387758186913464288862869875545809084918458011803936851361365397377350171524839489072893649239027029583032167996905699654679707224929633567613100665518558044920424074884438286595545776402269983706489488029795990153095743784040826717779549256330659266029901976642726101033184344192643999065804378952605776361758965214644221267086512958051885725527106023702548003924007480630094041536418472346722244020116157589923906566163921402779368627363822468412822904622808300020664719320133754888497321648659483974723067242636194446632260983231752710799761933278736034391760254055856311376688192081289409068967385923237248018092537278957684203669971750430291135443958847703747438186199836063068012929822455945499483979591269589519497846268577043094058353247655799811363790677796490778855590980787608007909982296494713044912262418733852963584611087774890195104104490461273808255949429754754835449266546429141646595724085314139393637611235057728570835468726136416237534421330252191990043069031095750559922810836483298555870240499109012707365557588898904374781871591790938568543888665459859839864754067605105924933939403613380778227773327100254743758877508574495478035642277342766126020129029482262170145435263353914863997805091877158216657779114375920714606992730421060040086031465001973136145209702272151462408955648378076320190362336244292373638249689988307883682816697820874980019572742303268792110612699981678210147370160018204028853409564182594799366840716150580730558415999216102208900230257699809970811846766474398900835450632511496158175637161958989827144041522694390494443485000187687213606502140004911100247493539499774868433372226946205229984632600155958047013994776193664131552402413934237388057038451111680309916458539467642780947986334901107406315630999872178920076427607327353676947430689540918934032146674881315786301833660978871251368051167405904758352399342611698047734429305011174247901371538188424621500694041440240165546074855099659426668549794449662798156124781655739517923802970466621987947993175093559725532362426503010741234332207067006426249926620544933593587050486144320490423209421088122537644761843396470902159359254542602633732842894710160323945344327017244330997670311157513476598469863521184707107979463577590284185732448237093989043047829029626972812809512646964217110974278261605090073349181934240232549178640338017573532383981940928801583324845720003692446870591024437239995283722067732814220485234281202350909021738857062571805608767323314852869624085908615374591706520944383596627189259593151330278665391023220739724875233435397805254870380308388167938658280247410970063389577025823406574564767108968010840879249318327226050360463232185174820690808399524613148334803989076235626022526099511473058310067812802536170723637032163899805781667479572285662301245321155412947947528088638277121476818784565956969730184671405094847175348582740953384608217419846599021180164326849048710692337724161182741519160030526717079966871112703623502577213800855360469792477714509953406172196631541547436244743143297950278644061197227455438112258394246725970842413119527114425936723044351868535666916657263074307212218423141215809046384600637616477141395912160829215144415388599187522637286656030647989646339356358836166262968374305423651669357829058795750479830501931666130690263962958805417209783701297789176126746488165204018013840355888474302414992677633448600215255054937971224695422633790834969966752501660204011313145529068006548084119426261801693833423851832319487187083507310758673325004769199441136286418746602663540502707120446387976135125280956934465446901911864956313621992891181047759153970851275136672481853533755274398446483353534236584697715093122818103922377292368547065213975385671151493213014625612575737810028364296611066210990594144822608172480545429195372641567079096172059304396881553221215544232233922824697465888326022307081463464543308290168192462611897536597301037839296619831639592669081271646356605405021452203628707109957205585515125354193924277150281384065028071203985239264933029949987731857464875679265340371612403848570699625616839781686560949169625920763657652667690982381802201424905889963928090427227335299743870674480359598726586533325610097587698921380093037325309125701372174627705106099424510551567296268306572850924037253367721460327352447564147017662267150256586615608499948720509881069875059525071115664919536925176899690073748272896398876464896239202727061682460442798947359496499167886590719203385924549042593878480949525891533359126135570261524628491385504341509677379774769356551057757180247287406403108275978285857653311749111365633066068792681858974944104383979471249187229626979054835395730263940289593856824383087434327777237411803440364821055468199106392955386245603382697114032306744780273884341153232403910052840336565602885221905148077092014496183247048995052308986424657201401240195398142699010532907671675135103987196760811936612747326875312043817204255530679889161614130520396125485003968830009482942325089755546991003259735236877873923788179945844452909195546423725866379546179888903381176678109821746634135725515133366793455862943259862725708018644878754795340127372576961600245678594368420873276016232165180452927859616021914297756038828097204771140853856305743276030245189559022263865585294570664513552675053492026116575115744033081498248334682442958203892904045915231859084187542638253635965560440341017240841605347616400006603638772053434306630088102387074553434872837546454160660310523296063887199030686013477327735027104778654711770574582295414099962403784546907937094403285533026128166737472431072506798345942619001389232270481906199467357329609973882204255737506626506584930714090312255083126621313548941101573895037024520917807607112186287179553533576133887784666237158226905436797600788629739127135706275968346121472757220083510191860617153063218155314862739924135756602516251655150224628206474888863607996454374596042399672742924808082697769498428284110031652618538291453020576368716572065772165997828190989349276486461365975307158464113151050294044995898303346479488005074144555122515135351080132051032224980710293734482028757875372941108488057057197785150375373477071650436342470696054132884152456003766259888627575619458558605276684369576606996352267316779557012426606363046008922565419330021368061134957483918760999386914126392076512398678464677055898239410957288403305032332425473990248336175701838210160284719945687776505624056452408969380621445142206403428232082926099671630972850587935068352333106313754020427390542720744203814367785943827473633322665006389444083165961357158953968741456510005712032333970754019300365490155854571282503457472036381933460109300866620134832063495472069907976519895393527227170843102575673042925314166321837971987314322164464243395898853401538102775629349277622943043351908072474283848506181923160666812025933537184968693140095389915703361031050815475095252495642495910763444737284358929337744383148989963858011488976147398777355833301927781426596022761747788601831049681254330610781602440250217302446316739438990178263510783755900999738117231156708636913551232923943280212015942083572170018796961315397231313093491388750215576056276972848423276003254937961549042792884199908228044935112692772250010335333971882523335634173188299454999422888289562602908938115060397040444585781811462067546785874344380535368024076893732813397099092615377906969293350218531499562944808719829468303360373296066181807776235692720203098304244836752063791624822750522316666369166008926692208342998572791066951315288847112936697306587498863922905783660359759112559455910714629219884607144646253322703657086409261421807911403290405076939259073026105794181607932941904647978762402986491179633653577297993242388096426373294627958505068894107339888327107762745704923983991405318480714086096291848173056944996924674518176134717029515864979052386208098312524630961036471970558276625243570991188964541606682981394841327449152520510010065219917532737309974943575167088704560477580941253353464201838866401416382485450235841667373740198247341743256245619693153072054004812063715968101840035111653705415152325070913278662598121349805189923431040723020095555806582148012494727470371205718462212521409038162581062656684186998148174149166714285029031281578435020993949011148791800624785779231298377637731870551767835846859281056957452862276696572398120764632651834365062397826366282396673569749199105354082609186286135755882281713845029412135078894798168112880278685836439749574697705139625498348523461600543105332084928370329723013436637160959199181541974922596871097307021694275233472304208954208059495556611634223946809002341476742953598514103864548765809639256668153286736178413810240189779278576990540904771544455027408390425247297563804312259580871811291028795238895839825738955280212869234664413567596807542798051604469940158340067595839587649619029507392409105308786739079494562309380353999785077130730975178826355187372568021230575980019464178301148911808175141357590168023318874664100384948328818373817107431575896656422942691835735170689389192838229748535981623366518889833397933571105042695028134033588551164363870482639491884551972748819774529887543910486682205786271091127181841132230389719646400010235900093386383206931917625038012046703188001399094683114020986566326066091861586104596970427616895125616381448144073691512913544032275507791735128129948802886250379547560304306795965011649986777242881031322168830697840215474034380467504280225600414224707308393738820423049212827014192151193190030984842745080667622013094813562691327199178809411646593488648887392418659907723858800769002827301365882863602017848102261843210882110457594330574373265054651786554137264843276268145184032800082352840931138024761178504432796143717822018572473678981604365368616794142694422053849487743291360550350537809924588792838707754278168500276539460675282950791905703397748722001824060670795920403350246106289008287703929124050153522657352289969289828690050204026874004888410036303643357208805737150667990722989501521131119666952710180596745319479135236611168004518322939290378286367370402756728138592832942565204271862326580446291783525607860879669667056762546550670826316944335695370907047693478987197369731740128038503671185047653260372556967034730823203300694890537990928967298165176077444000043100442961836527458094923556467577332222869904661413301385655365005938797262743057930542087405181083760801687839237809888066897927407371915928068381288086389623477432320295285886729903437283614302200451491886097284098849400548733412942016158532633071134527059602473709789894861604538468126180379801834901653421650179342283788103814490090555537220725808611921303382202640915956255655846654035549115903193806184861470106804907893796799303335105288898355800754072149782766220157620549432644456339469806802828433325937202549935386598835148344017101947352601670637327265231463172480147811902598981702887380039565318926109605083936485165629384279137755261161860394180941231353026871359545842559801474935177853778749157552055299785740655803401310322979552747418568765032017490819480949042267331505467186506367535959970410577677640987901473436030079495708115439352428522541207558814706763595638828717325488042973678214716943392078846735289453690743246967595515532122834934394484783553023678059288696971978579206108248777186159961316169019315282625048739424383564169550608597429238735878225658684839910757742650597594146289382774954365267664074110044390613638153526800016236943304084387122572366232180811878130077421440759539108478487383302770471167992683669360361113196525567757922692166550970146517386341509474367766759961977737526744063026698888689501143968216364179600620264911257806681399195936456193538867165807347853396979056756545329996264703611011546399136624261092515675821308334975118914358918128053047307713346710553061908603432894659948919723315302822508255072813683848753716984426827020569991818205886783817095879365455812514426978232639768639362192378545617973493824202061650279862868865246678210316419005416061499196190126205585605730074294684250838913933059175640962225601604711374089592599364432564022894307400170375297930997887649109471101079805693914923079245489553672885539416487135848037067058960720637796276139201516183885114525750504653248704398084830348881285355909634620161273675053296546422735839009927998386753296433473478185698411438577787840800303775380737599582025265765275874500230078481836808525252885337481409214054679194858324480250833120353903729970984805855528968918992496675918701334977842892579545760876614553968634142602951604895188100345071336956240795411002968861632934233041238610783044441556943267201916176837588113782965796554344167612364684459424256579270075308634116643245220612544994039141059336350685164150167811134058181725913125041271406457789179444869231151849253540866776051099115465237919306074961110956926085698420391835566704916823377985944464097369496814818675386184351381618697814613507343841512000552757957192466667138478307314751954640365040869021584109942992015398866138345258129005760301631799885541864001643970455653094404897208068074975759698640730319258003431720508775657308834219568040741031044823406342791976245801768034857159956141516194196806905884852474005841222656273270403167508411971896076323852832364780356131821220481969796069970719443491663584516020546582622985516799185810405147122652969271794563672174609545075884577902728983556631876846972527419335488378033130857746852315395604867605526768106751080550578815608110339227107464612729586274231961672043186565034071282778477976044446277105796518422297390036508254820765053949861613249903529544393110085667702848189543847613842487955060622832092097327012880181781976282371896968160732470655581833401452715795495765935951987075856149763233492423834360473236093945633843856485243227047149269163948677922890268089147696728940978192735148422790900660059885728453865171273824260791878956986446763392715470109901610651233519508185295838486082729300302084113432244335206572729372492437791098710859819471165874091857056883699530366348637654226974573204539559286975865398346057387098807963594198514444151197900386065988709541528083798650756868044607278445828011186163271596427487135041846152088559968904455880783191185846394817809767918605920280872572905278767929054337321623147772982293928616590375049260079321280277167942020502205291530731119478652199012627286685036566817174077981925589122755655941029185055047052546925732078421779467548477710053703005510219713252540936876512637646157063299061699628632592532109105319399334879728432213599825966639779492764492069577828760048004676238049070818297337923003304078059267704976416060926610658694010744236516386394508647046424518004909988903495479365506547731567913014187822182680685999755360934468571484109341584262915275156356058525558299947427277558281536020840278983056330542788762320032913783996175207832500542627238940696626290139019998617010013137621572434303826025679104311069651253271787175520291931387018699564125613736565937984159606940018578911519543153029114987981688756637246603783765161573821830318306484580935252207945291650167041564567474901053479531210641480637928410161416758593926697611445286918538114265834436448259503774754963872551362439189962496803119912925301837603974972817539996356695793896663387273655116455024168850507388985473837307562092497362664895542507101138054975992754996063836378969727180906809024629733503152698403939362850091777203171511544670633701883827937697787991377609162793828604424079056375648081505628282071536571801908464620195091829763412714869169208398928739794506784851535446626961902584354541503344594360669520440446309461910988149608733416249800130059781294554490608821985499305855023671466098225978558798381132833335140525433062062698796638732318109277390541764347737771707402516505343168368956719424127377494237914556870132834860203513687224257499095552023644479352492986056881087931022895855822390552588492544291153043825406025436077883919102569490493657972516495175986733935669466558475696892373321343470280928498734265228874446921688240097849924715619427219978214686091272215138086495747792449047694824182869402869545053308827645703660880131743246648729572629307075392639032230613622778660215552258866713458773359829146980517973733944834527522273730166418931697136943364320692798778250194199392834338284787404464540389432167251033381981542521898516155416781189231511529175312533589475140820863472612177250863482337068158423836911030967580752868139710511140838069203503471106837157611542497116961166471377453891457862910401033276945594897444292267742127896901319777304956408865878824535410943911923140870511410325132959972952486121108674434796374932766219327328959769640558472819219060349770588722873241633765858566186963032331978616575376517106814066245386401550573370676622363866699417084203200362290926349777633546843130495213751930373647979817190250212504395992224692085683865289454961315168916564874247260960459559274497145877699684591244171919586668875258952399971106600619158457270542119271399007487616260501507822674263701849275733132859214335022352010557375737150520960050657123854349363242383885085697543599972677081623137086372579924313038742462208781313044760722005670272616644330384715451257665987370924047496601774183511527397590555240547748286932440371472882757726638810301137995949383365368204044122082563766053878905254904259114759737987220104107829986739555375225197154002600325587565197429635792338285451377202060983006107428757094903518662198262109412878133718860137345670604163578564294982120838484985344978769508492362738855533523955138604262695707178610788308807515041431445050902041433623097251816346748249043023411837814116676456745351364833156774298569465467433367662356379804175295047588255119166302720486137432211390318926700876528120057745248100197927059382574512573134406549390982285027995811616626367483660410682905981155358010867709722723029007544113779422870160440334235265336257204134167476492038393418578680037795705605506709055594079438768231952371468682409300808695725839361781023603525252728739477726503727699230818650262797925077671155333381217202949586203006480469000097313060507121721713780391241972880622840108900707258344790464893627244179711877085332085564115979110396518576250302488883564074143375812383440359534742178851540939097212504446795340902441743641141920521739999944703948868948806424906587611573195138062358881895854438730200682356155395681563271934707147169276792592828566906966236678412623967096332665414352479921099929902465435006490859014616166385920994368758656845327142583605158219868242264307827208202508995961983073080247756272803891527705590077373668722415289827068099100458807112540140123174164757568027995665522239989401748995063227491294665122519559051218416400592921612726665957976468019326466272845685058288858199755787642547108056531795124865379921399018927151795945372255665896106080209114818558906769084856907014159205643549370612457887931888325136740518833512865277994265335976583306860477875478653590358084103238921383198615345000503464349281288738907143211665653969800056814720987782379221877289636061996661352389171546748887390493726930895884345464433967066703749725274106484783753018885405474352232518297999183292447313739773444692322868429486574779717247666230807705662509337475955683878629643914490784592086350174242453908931898727886350691709606158051368328011111131146033891553597358512455834272887646605845830471506942049396082471496757657095265535235985649899829408914395774515389757574505234016718060220340032604434415984585636734192776225930356640323840501456942342447280016001457150911918448800582223907519992339086933042607329655932102012767256110247006464846359233527864087520252365508545921526259269149413444769784235363509935647000176098544409842267608706306621258789101295317800310759726383274723925512820035682358106597516448003621688653164173849588266146478007619990254154707181369707409172869039167611698742613414387737870191139618416550496907259659150493332317685441254200048346108460484757979815753257512590874038976759974438412161867485275905537748351403935234464108153164862231514657250609294334447538327595403564932356679719008027024805830924300564880972135231777870512531267614640595561498997440168347411758094045420074188709918627726270743354927595760416799491611742809005517639611807585305766221799393892173955090542643444077322670498396611365140896549944181117750851352611982193361263082135946170361286827368767921265028088346674020299546514866156342307622970397930116979706668058439850106891019176401462062264307479682978470347823561939313221347363138286873037467717093973559891176205488615428710391989234385456984573363872845921161223107151468636670723981195427585055711867344604929092061659904723528264293929233806132803026694329557109395786359676226446678906645164358296174238815625042511424720956996373420098062154389801471159937536612883698616358425189087302106226862312863608118139297059657527322609783729550779461954290490804117610766170481219862544496517801027618281685199486648835765917141939823053340333908476545239780580989120537186091294012683106423164380664676026227926623971275957038973561312661836312270206635180723789213544509588879253474455032188718513761302515896981378109683265536578098869606187896728059031993038129243135016557172268981729616416222948210920131717941109218813182644464510085687005159639705195393716481111021176933425845357698980564951205697522785748209950234769527642257646965228559845291898429942947749218382534584798486300896789708312786387093203272264105627054586096251540057361927271308377224458001768125904744484117393373674743551195272470946209741907328048553041854399746991240607958060590769487333540536567444856779560546368669849714639329483856529219606567623181186319785693663678220475173209057939129592488586975789384399918864416258833843667061311426170989024590103008571045918588437481237979601714043895106094486150172826908892093093523096869134252949955974408883288234467183497924035066244009107655190719651268973284701978257779147998400753522477945583360174155991693667847983685460274372197320181971861868816942629656062388367131492581973277178972649457587572650704252814327676182142142391760541901932323766324024630029982180406134810746952225988433151077611119320624428978027797644315989154988158795010724369576502231001334347183317185621840981619876345831147029454099024620878962775201737830471868222047907806325424681963858830232829841483551138165731921364371553989365860607308534665404483490787995755004393955958638646055840435513703447403744187859609073946603606547985477195929393138574089345078221783474194816437054251548020359498177793289207625164023248490044372300941297762201689272095606255173476453785893463214516598738675883829591172400851483390132897611076845234798313601001864012203166210359036506225704808740110872609967016737805511867871165966663575436397780596678211235940849829384347780453382183149206423889515009954137191567102601156000161340423956402141652687453177046867331732659443541136976838109308927342038625681113326585290227833458811267085877284092669844883507208554615300054603281436267004341804455505931168204455885193073017032391033457080906691483775987737674282712774999965094158285367547348465473781298620228796307252476600472218597375940974368095950877254304059719283540269887581862947393645354760797540550210834977882343290363386682833515840443224073344318422647760948307644479188715299746226790725212888069374922971326147710727790971869948722282251451319980862298114663045101021343881196754379331836316662521156198746487847611191354685399362457701091584103937764298136870939542335796546415911592789453065164877697196339137790566338906780419399789210146644166488153983122787856118212438533210572333950586156461330072851090574526963559694031312140208726754784222269992307884924250437963749575380420960951587390981729007215147790082253862607248239631682911306161997695066585012978725052433801959087194882639637170056952577776226862736106252982270470120749810798287228687507741946990345604958008176966898180399554146702800646544262256048128942924843131941251110132703868571239845051503373519861064696808405019271971245951780122531128101127455778220705884157566530616583130271927911955026043669561644917306567135259044978618192504062507452897961453372284780760158630936413924157908403389058381993041964084737551586259243951349322034607875264102729480871006674074901950897760785057953369166661398633836309477992215145546093394622233194713998471411128741023431018479185199571673451188376924166363567700267440036739677945648764510044090783518133009796098055263270916915772153634140177256422533587987587454723222274596459902464934422974327048605478532584240251932466395660320711878701703777906731214307003225207910342257487707166064921174774080326391120007016579643818438826612694750855515895763501291997365314860895385410740681179525583444986589442449921720796363009227584600069616867847414286230594435538371557676929360499482729710613125421032320796838999720934256344082951918535604761016750908832220014580611167964386340078854829884245437959566364258024592993743185947873282848438195999847264907247855242472139914910614662897237837950246249878130148444809363604240743104083367063558516225223050626751533976059933523563414710196534292021839317606264329075363520750707850729024955270704590457649288687698943054806855646845356717743074083008874687400779711937088357872747513406167280520820324370317690346174000461298278355601212054851388639374814387630163241735963143056174188486944828475386457475518036033427947483391478654532762225963847121419114683933707869105589112032449074321797700728301385338686676552093218082504199562090320882661799249181445581911014464559232294516697849925824452467581007430287129105786241085604860226214298734814748112600625455978317990337080356178597896442317035059340094965457858618632239938978053312962994303635458014990601904898454909837602929854270274825269109547399767430825808266179494719969635327466949266610905811174297942990240823120959727337275247928504723813828656197918900738028279765070113044030117913253683506154029948863850874650526820079500626330094830588853257434805980189338929124768748505199853832641462785818593643498788359144374881122308496441313910338098714045681128033350880546264563290859455727762221817235091080991702512287376491092806253369814819267278574647973585197512672017618568147026176863863576378368454941794013541977864427771487927360967673385636514342845585834563568100075329703743295429955784503770362556897945042525821489507379643146518962521455153353429063678267435039568508860920956471996742192007149051310228025842346821583145347932567843094586039806892525689080056710220422416916686601902368690354215757523416595401039554512209530206741100819430303474292644424252421067723892229993894863986854117992465002002977695672150872239567808650376281376124305783598310119489024583311360367661217843617594355147620677189893140000351884126740333224498688061783453733712790808084875903841105650024897953965050653386405287365977230608471624077936837663376764227740226348679740707989669241924314399613389341390543612012774605550830330760717280181526860409462698511825272858615004694567399725672457747972779848943576468406599460278907978850234544077514615022742513079984519467924289929861175056991150538483317383121320597746595930750245788565888939290080859425160391720648467075367678435080098255505648994068512271406018975334450866451788973543301695748359356925721960168482040429388978179853721177786716656113228688569195505409929299217394393790648074337492932632739063842033187488029208008463583771335377153746258854320944003303176287014663301555398865351579153439419779138145643864017113725427368732090649984466626848588240335454241441339982268292319555279227006564984600353922864857481085107143270289147339828893573111142749640798354621384107310175697692639921928625948322947646778966000066056694440354409746928298079447316648211574357601355444956064622156394115036538077741299976383296084937717215612982889763542950441274897319051478345708201644039934245566431499575184020027228760157196414474486331462386542874776017224101208110462328735918242645502756198051809362865876728587956391987469011849220886032918278641300158168720304052231909091100221673769154856487760684211685540503432698389568024144483602422676030682407181175548211841736250119867909853958617709149849635006740284199066920329606120637691886054145320415110531648423913469022438689725621419990122961116179065222433026191128983342277576627924274523740030905873718421139750462068683517296305411808679242809457631409708806820469607225182005700434552207486398942720101320214914513799019941064985916211409080907817543231514009543590525243816680830471396758845044763268656000527509869841764960402748658521417474043400582327634103907104815313841509651610250998109445848006675902744082273185178279379272833175894409629186087986100411371590066347918268803537361403723920687127727570622553839079318505361439137750038867595406204708548185876825261206861106694739171811313944920565729994790202506316890970605250436128534143837428337494697949708337317270858932580710501234137360803289145911881831899304580497131968001457869823447942276089991790999109767264798261898665399969881539135571250579018130722593780405042408754589857407331431884942437437391122529960722933180655069864100096939321017854090007800686248982083065091944432090135002473022883569544437728962307006019442143488348877788751707452903331033635160822577883946433441263249329873488369422406202998382403886835809640978284155344292236778130942851003366453992424992801261377667463208137302846788553708807331121682442130149626368090621033532561227174371533562065374806374855695987291495553253289107471164067912894393412848205153942570789575521517891601519418958145179541335332081261373232625967903632272065264696564971205652606266953493603055484047364515355107180042188943709046319250421069046072295445872974845738679550094301258544484076765454130265648901043410172089046820958148262367272705888425136993009351505806404808974397343131969734342862987527311699528182369792959626010207482460718359159110493130880697250175899037347743806854045370139534203392414680315329592764138054339775035311133796711842306251759299609139997393931909518235844695829777818379078609551661143739872432815389208275613689991457922666061507343846017533038791616185529254347959296270097084636014891161284754351963714493844716347334302439647443262447186343305352921950059506569267767571535485238871705243105212620599401731158007598622656032176937365396756170675299813694501877753278150300940510919621336152430939533676508651140240893251088607237173354456382747634442617168237135747357186195489138089984060212922799254551527327426746079412991396726054528153160406725885697030275464586503422595119723475861128374460695050339123443147221931567496078420405400911325076650687457679014084631516782304457449602796546309714781450159076492404624853831753848612596626520170879822133578928661799632375447497760585640049022534305331171589336460680648577439433112036446933305872116405753404211333235653674519416594496758456643555193284592255932233085984519747337785992627502607373320591478825769597723031115242287068543398745802133619811985325424603449300635946187457408281469667829807555309699133828781863776380117052368038677742887745053719701839280614163638966371264126679466280291197930189208653538651709475492710396722219325695590744780704317938954087737160597909157481764891990662184939440221237753417779096724751698592572807846894262983920943165515101307944200291444214463964113552097319837117081629741572432051231765698294587563558745219623466441119920079845828717437216009942911876802322532839038022245767730252496022445572247437214001327962810096529409713764434983602045027833576836735047266040705520211721060641958681198129261413609493384076179372287007201742027887534926608164720123070420761703811896274201902719314224543925335645940052912722516461400764038885564218830222967463108275744234572136133719534523168099282098843692933737512624533703379942589892959022523272574402105561310194777363407529456010184511917830913709730325432198232716548671561914679688961436872401954140786344948713858621379962616086931697667814027620031904316667364184648315399604177663733792186493661142539265094809572489312652306314833063915851873953238822907335735383553811145469605130719213090576383584409136164027261976707100335298598581362106721981639170008259320055703341637371035987923135625970258990262010552354442328491982055407935899751527548345286471409118226229999466231860021034193285476170642654175266280895769891924431880857178523693279244013655804333980378855671933563202430984552734618679218142029929140953747146165598009260082139438641493353643108421671190950208502297959833134407719676880313004060715450120513572938460683579778634510029483458928598704590552296393157123157023502431920388330262672396653043950887107884473436661845076400155782390248827896169574283406540666557539015421455196088193022205981599796348269971427796531188275629826340710814322496980788826697597003866985861322351080978822183034443868054318001354393801170116475917320864272525950115166418286277885258346417926920756424151956122562090516782949121509518533048397765864401991434460266911134014948421048527549341595311007280056170592712522420938540899778052172945123888790379446415528749804399281884799981674229684553991549112052590490855283420312537760708506242847981123554320201992766243255252770170859743805272118784887878415315513958670116599425166058776938110323431794556645242345894122265013196729689710083440774250809159277816180039719856555366712149175398351262168916398290138550103675958633156607071221259123117189772015620548222960026185341651679087659603761999224406394598335057766412649982983042857761293002656136137284576163068691861108987418767950183319748836779788241193893677785146530333568269434292060323117570259924821293966098726851246038916420621773885159274885453884762517438097025142180511663883115656467781801240235087189204113437235731507954891689641623630288754174082397209005101214048132276502720157636156117779566559559075413347711073668833178213463640615682882727074243180984634325325330991097115999580856502926047459518687050581450676150910570689376109474168668853969355574104263027128892322310663712809441815603898797456974358292454384234553694864142188610402024028483380371505124983852581828058558103795162980632321220992751188642383303734157891136315932883195366322789558589909762433857598804920189495134815872868059531072639530801930882240949309326249927652157880075362266952447854305404127440576566301983794254557519644976635321330752548103467549731474197760919343837592403642149583242524728051367406584253372729989218977012500777207757398709348404352148820353051285703462713732549373700491178613487705996337921158106624823178444897114447558838343801607941877065922205220852644531395214170602015675065486710859429172295374239729530345469123637184031284078624529869237611855074138053083180098696945855073247121638327476761000194335054042477189112070753505516117489204468947510329116770297903385142033229628026347678262995218957850438617442744067163354374234455161995690891032231602988179771031305734209301255419062486065202960036187055505944646234173489213431154621674065455518836762350622707892865230406265848692144566902721197991428215577575956569915564838895039070779326868509181749188450418631167415769496064243331713118247661140346014634938427083141244171544825233034710642751086073240946207446406094584380925591679601553128365089467789126966352631236011888917641619785775914983786374139038525149655375506465024034837717140192196883744725257258875799202656503862840890135163225763529655881539628512766125407419660941418273889089306834107645316326322854529027796529775847578617411298672161175200202395963385272588462627356828138498167147548572347849771584755702475956715830870073536375897235530067551230383182983623810335462344816582892514088146827951417882467927183696591236195509461387606623537410386864704262530872071067121082966987994351440008047006349058889694432088384399815503027701840531640623095544482698553713319268276351564445047264109801674891992509179669208468369626662167519749068597150886802930117729294316399718053508757080151091887843602239546593199101265450678896836193828760406220732912047600710596664731525994714836029574958632825496964243160994987445547070750105084891064147295437862698528399437707410580939546522298314322685587453772786457408433665826694667846208128011490130877747451429058522498887116568751012194581575641036197996848750906867585533775704525475942203814891417599746787996401469859353397551592466695002452906672274264570967343498045275124318609987523997742130145554589168268932552853833697925405537644397484673086481067375114914638305163775938695646891695419656657459395305473951460232836412405842330210910251088589391271060915408830593408404563632239668397593031614444536853380614849566087209530007275551739721532485547100460975315776183003471993596430796850246049848593804498333151739375962213309897098154582639809683564344366582554323262678470296384911645144483483611306120695374993440484567386207110142635983727951071948280855022009196806754632568484305339942507721330336498250579023967796817450262794811046769782536796290721209093994856475104796399470501736084342910751808856948191059378802279959677302868799897192129739346262602658400333751386475711186508274913181623828806792492394931479352327224843057781467499934399923011807428000693454959481953264097464786762895064486251129166537350615726100445003212934926148845293280200331878951461713052504331713322986164039939862633628060935163233108283425652017734463018096107416113907679997614488986919157022571067214657588468304801211258798949475660589809135465514119499883992513465706353551502783575496709705333653501051974222680282686119659456945200334892513608951833994741848036854037640217050002288218354437603700061869210064016762078945436629206028220140349620538197802518746388665383367168735824617015414851421196554394314056957101577031539650400239042375434177485780291107155099107518100667069790287156715986661599632891662304094256508083045117603758269159554255882374638645136651068849941475288380090602459787499468485780863194182651770444124084816120825284626369146703514341643901438093509740974834742058739532666144844552443413057806632882916636134074437371935534156268096704380158214441648561459199062173782123783586447413135029777272870839045612935253164461725446820384572153817220472184096967453141606810669395954503541251776195355753015051280108904850152284520894039249117537507700266214739502750047464991319194109717177918521128047576079992892483466911798600888242337937939419321650646127256406171739238741333976515926695329944408074128179086825287340350139098208574481641843815068380792255878488851726710435388146730033109588133844110196274571296338498056240544380746419683930892369504493800547116968832138778401655899689954660491459697614753308611556494659243569129862255289472498902306960708741586680171653214562711426649287551620390678556233666391696803932390727382194915132959087410756684915891812527710590156941879401932095462589184221810998370872282196921887135136133872858685475250476226707762715214233869166557671279502368097496266063665369510355252476753727446931549435032383362345323146043288141378151183231810722140960857470533239578360052118546733996711288511486170086959388734513175305666555920334628140534799753355277921352522843300181267162915056791665458353059251758562656239741199796769563838461399271046732843467043234057298918725872402781268837170607351175678131207743038404295012383494290348648570647172007850753613862589082640546507514829197274507871409050952848043951082389144669738358817219236578864710186272423709597988624602278077873109971117285197423098561077237203572039545107458444268907474791902710180077092123465860559824034994161381493246476973221469768099845923106322441543345332355937829462526721432699481033119871368387836404773855004210987087824443001863428043132644096608275197780337583814333581152546953599622880577097987069830817800325187570348851800051807939480654527677998099730066985117778905101622158660681220970564851993965277614196235883721805505516896511299762118984504919259353156041240315352175651234105425864487535834351447167643439223514397588081559702854862729417433989116707195428124408911046861967167841498275829199948710709048820884856423232948439854293740874253704360661184171950124316257603402647926242189148320007043631067617370882600447480623727971462868246976445589364451480516285004002969699415583086788118825029269365824801959860869416969249237022170855371661973109267845322095039435767421994059475158235888996616358657731040105352482996003413092408559495093082282383436249861669405044413822144614332504504071735962677978358904220504755077731875025470143747986300463185333428525546125628472026535966805293530714287407191923610091745304715439903941734269688412026398072425910738550338220313345435433118292975751072812241522310049211197909530821153588896081440931441914804452347295483229563572956865370016925597599540179993949871257941383418507397949293038683867498957131639043400822930932909167258952140931337103262918486256651961442847910971308599801035930859417783848284361685224381426093485869126098739964750359894511958013022442279859178078162944384022370532582387462031117346360078581572554661075205139954993266064794611831666912032552911322331547572971157719531110695912104354092138977262280809056286970510582953247289973883900874430705872330108442735159713511702063003777723073280334135491886560274582704574106348822571785635544030512030509756608775249330505545521529226016743721300986436551890617164943322992948880615489472581825918444152701958836271160291717177352868635328122939056652858719496803225069222446760898341873154982578673312159155948165558738790440010115913488220569267066619974844709990456448094341162375096454776956125029657929562099598340734720318468128110043415451478112514983499286214382951321777988113626070146118391093715699226567171373060011593588682454712459200256897478692661295661748086317606217713876447551909313788181955789918333210246726483936362279955662603268705594305568840008283217910485622679705333029156842826627112132653968758196151781540115157047576524683794495214884367531663009022947341940221436271358323794664035830612928854987872630371810011902583589603927883200151901739745618318999230585759813564555420501601220016761823688635534086868412100323568318789386004953284293102392032184442977761527026976828685177545131369683500684425939100880261213094088039630352334983428910159994225626930074115471564235897035991852360070213619044134137527449916091691056302315176636553523924541396292751693436577583389959204485730514329958041755516161866172400531786344029578559262021875228764095309019459253330218127689393354047405091375712274874846102186041635081294719871999903528527955194853916290109070179302438372082642538522488920850428666879959322493474806934772115973857762935333483420969119393991387796325760083707089253907865854320804471244582442735606064390280539247951506324255064236113408628740192080163884079498518297561280500709617503966900954436591975227165251433726028497556770499891019083464012350413636952352504929187449060860885440198438230010880137942889039466044831845154148660793665565433654350152181062362478546145078873184089046109296256669315135365941342637863694659471186619418978461648060487535650722989101570301378476119311359826823428313858813798279128335743810129880435252213324079871338127661417322752108085453522910359685062029471699050287964020265496013624078210003740160759684639904052722862712690572724081319786171742813604553197173674273755743071138764141840870124497885303855522167323046902210309529800894286440718575924855040220090498634116626438265998449752633198253511149754773776443743504882227895657375932437317156460287287142763753034497268297568993462705905946435915208095734206629395593161013236221126844171646595899716675050376870279274689973945509259191315209681622333424289810147483334060229017734794451437302360829919106225944885697498323272350755795713394222499238670771445475892227696444580144790724612627543187235284527681842927011079382186130333023908736768958688635506470067746081714875042666671008382882785692143775739737414256143725901813553243890408942057829600560430878430357278694073854814716012650343824713411948102266454735916856775179518534429481948695723906040315849391624322656385263814960576513375621885898648639244312262456087715185660941543606883141004420135532062143364193085449489606202930841526720028305471708394907882719973123953796497233247201636552674210831507954262391258365563710502528310285276588583948588272108766542430304885668999217616506643841958909027052843467860619441749183861487563006390230797088754740773571098793764464958881553482697208640604366867915976536239480093573619168698598657704994262826771088777636871468366632553313532231645068343269151098602543573438853888987471047256600351320304356359452908674328875091817308050286463859575231198297997739084814521811933052904545585272295203676841052053889778645586506402613718252829776399308341103009966477542431486825246599189746170582582351816874342650048130403289148927564594023490697488552163281320956522074913454730378743099356295421154418689335371996888913274121261851413924265330920341488845385184828673809258791100140473848243657477650316154331382624790876583048562249469397342303198853482185213173132005858952057833728830904803826179854719658987678953900922501323129968488239014596571949003464727862725419447104245139155304199902303953460217517213472151804805686178576478553141394055727848500195622976793930428578173605730520349776280473101497460791707082966617525900719014542356128984758553216149146491672691312651750357575251740226401686152905817954192792814518156573448232927222703757103221350022593948849907286876089495837916127752769182682649762803101698721017602964066007232601928841820745000436406839318987393115671306859514784543594577723124447438315533369126485173244063803994290611853429890142726302726134128084854637675649882706706109056350842646676488353547402709917117900398383654467034884556558701485533404400042566120747282999941775425422209823369583959339679556268840118463011691761442461244731852067645195288716931182912983447659309696788318709484204648050544246503845693457617036361729338981142834595464524974518890244484568550573585810563377355889808006268551656250377157538891838524449280763786196220475310311416648660365438758142111545107779120362969713667489983726065800885295713768848910376287538060138105021624102175528575796294030113369911606048314533547577843850977228394408748870379712434918714029406973585726342759373069496372851556493136733815970776504639549151528446842462263787535260402300610638621597741062444241993097095009083762416630815611609308269196836292992488056056292855331048394107480758858645787020476886366243388244381592025889231212466640577052955873976869242254117917469340603140046365021728766409403764419271509800167654423000016322119970540937578464032457528968149760033407151264106900246535386894222671100536632476348942114913873975346809823928352406110206891920426250497467870078947691975076312428280967260503841494800726968280468803592337313677553336145963161148431374997098064030597833016443467480436655444818974007654690050142291196796856567457831670810972577403883874274449295697560373703389044435617353247812153685283475534212080108038117393465508895768609084593442459267112995770834041642730902849435940324131072173162284066025649121845843765093937707705794642087660875974242265618809238909419061059123993208888611624896957473341817805572558637480653999403958400297504548168831665110723192826447248100618333420415303418997456819691865302695136309491498096039964504809747234392333524043509120587798835218990414793939996486533154150480319768206488549839028170142499758043536229348675469820434430230598148423517453381609759668076987050574202169149677690842200876973369219678990950714207415364348076554227949251871970690873452373544376612790690880129300464590859424874584415195162215934975532825027668732740365418411904734546178179238521681848751072992604291733900831299057297307035746120793394725938502552205991880201234366059881727247329466595924611753983526187740129022436930178370297281833694943632968744308906439908605019405728432166967565494005937208917266319389826645363458973563559906508965143572533493722656840791911087247464334672098881897104383212581801489538833781032514515692251280142779720461301297180289201522761194811194284895069757104781730021664812457521156534691952170299344443027002887863366840237108700673051128784757677632696318594401812831843060373524221799484690360125926728934670230780419749001545618968889519282572051475319158374658658269226683147122515271704819777308414703593802924051269371011239006878346232639104979858622137073861221658685589403584371521035157379947366099836971729075483188528260063282800093304883317144873639326439052599417357361326713379015546350404492460400537724721537053801387758317941962745861492071957454132824341679368035313064917652562957295555154533231464148080189141763635129894563141946210838574289677002372363760660696848813055622066205799334579769663288466111617460184065838855775225902261672095811080392978900280850973864434957842348722373246367474695388971639051069483036985202123609603362567562632845739224423751574316045051678060638329533223996095337842649165143963124323827256733408285043793875695143903227864213398190519422308350555986807823432212479855644434222483577927957250797668019284510757874752506808758002339782042578442823659316996676723384791644354043111122550574846296013045733054961050111073415298371909387076482273385719225794947553654724973289826429352541000639797166865646213804986845668903665451745739306087363973794144308507000616302947502097841730415779892029416636380158811655294388148523089251834886367212812454120832414154944155914466132853281948842680805511735242056911607304110508498155101259430465337242996189692522906413385632958221640686827284998371244594139602582999289996517155421974813483542598386104269495730594570192489538831384324740771929731377245658125958820436308989313284603871158663876433489668196114974808279872935189817508131229666645591470296341093130410622795573872476082342644942450228697325163278026133538645345360153206502634769519304031721888372837789719805295802354100673239352672336813629136381007099801422979542018223630623666497516734059082136362434248429535494542134621685287674803173348994170296700385304631218765545514646283099296782597566254229210562582188942850201425880233346006045260452710803010048640873835134500742376365817292100236694178484754188625220348130053945369739275455775380020507594889722715484348695531205381629950795676699258696372945946022235485528043938255891789664255776474094983793567207528670951989226651010543572416849908222204410868499098780377711643296773068312087090685830520623178191484656516239993577932806371100276752557492535543061240362602747693446348336627097048219786337443676175034694740410883114167404314525930883169440788017916383694567606365648355649815606843176275359047713208149055364393702220923464126085457662408941411356790328509671784225628748944840933373101607321027848866695421574915508226768749105228837488716849772101061361736236082245586796097070482279743943044642220205525517682216840495027912186581608487803486945457572210373645941237375977826414540305707818627904968394890620586864910821569980703546103905073074850619268642307430340985276347559400083118745374439795710560153894388272575791604592916211583799782718293884807521229443931186734882755897848284322517202539348043508793953701046930639503647533219804291045775340789384812267025863873686902076467537534364260154388644861450876660468090898795061295800400139808076960427251653583187836714984829726356007660515274549212130561573837609715051891707124565960530216216407855494684350957276767994004847960752822202602957010562833477631430098822699343712849781009426414727580293186383361916293069530552113978886717173170023714306941713492439195871935911217729048428861831817547652277345911058453232625278107294121767488367274876688913288692697934492788906116494713796408925893337115652708680532833683108372464880768536363452983222752848178164822148090146073054914811736973929722114668265639344465071659190820006332020209302427628955410093885331380976085201417022552112423099802701188114120882238136070726226578193504100050977779195200876820836873347452080656149340798670573726964595886573388077782399796572297802096196139086205843940573273110071996864865106531783226160562565567415389827028656175301276715842239054717205483244282033031548732221728099505389221656325871597496208475017211332213324787963110599293807028831422605596152204656844122815999604467131990795475566917199918399338254149367984157827501475035118966325961653598964802302543908422214658395164080725668802257225622209524775406736189764395912140611883626169793363427072273799680530030793692726929121389199966429737985017195975076630511263960075037252991243549900271825201797735939429268894464217663447048125423632868353465379499277154757880307572270138161000355949827126930622499283332660355359235443853366065762080165786913495375675806374558737330544562062106108108377336335894182397776698161655005170794309905797157856766924909114175788242613739949333081548402172988971716972208740565644321348415733580666124447168416421818690117115546903688281092796924129865578735368161912987701213009379514069459286258025736292640897651718422105813430132003736617247926413098942460462317895671220667924137985712605874453155127500170683535096709896494620963552234886437689822835294891096057065717834525892802334761098747203368543317968852653578876997401668744713436076282157982332385395328208598572507792455408228738524537538453666335075605503281480732520799500485071562056790750464288524819097754776149490506021676996291909100470124878383895233221659585409995228445615987599937820309613899525489917488778834022026777991939924061796694550318681383332588964843864995361256236824322227845840527912478546797075934723684923313910378072415251217775611935547672158260240124749604801354762658764809293855608989160041423302532637935371126429092473403116675617147321551512265440166503986432886410670419478914025495286881723354522483102479460402111350560258981579496389627595769282405898361592060356117807284690650646125232781089846827892928171092164647399226495207490268529783877902663492558657330348823239695102249753767446260440117546191859782959918323229114921379515552063797373521699296548288273850440391260109953685831947110406644207115810813420386640119511492782908638881492679196317397200263072303873633772092099126213298453765350955508794651693865546368616664829479803793071812904861294967928827717900590529645633000435001012950585740125309387059003274856023076734256717762167659706981060055372079368159036227234029105915124371123648836481519552071288480654753090174800974164833998477414947641659789135809201924188518433919213527689144741895066905729651765744335982694421654109584049827485338124569644823646816208991843863414720433596548599136878982682973692793936580634800691817826855342617180583691161792465336628541460839555063773290026801768388083030215412011117460928560084486431592199037061130126664539095511388129345093632477357480692092509695989564708031461695633087251331603015187845378635655258467881605258018861157666747373966008439697663729444013818170253734974871743515354214624501940578909851483653145762979664141655693035783925792501168448756611925847679996073737593773686474825919097351847759319877602228527714023000149444032073339892020138497441367497415921505543633159602975148108688364054730125875269934334125331960675966956679962086831069210651821068787854490623454652799516113359689715284369413468032846916054217863907387375494705412194710635121628915579170708134342986507209547511563791221422133002083276522365515568578654732383687049602254346632027459261894580542905947307749071007666908421642993672866265563697196886879265472801873257466412025264380005128047381226645681370769872610555227897846984642426959813784870824780945549401921093679317106883930267239963206938208055211845678846515641109530973994731437280192528809145710659251599868859298619074315043777735603433584644189180500207648621017972011663843207572409912796897286184473957325091305202674647297946752626144435962544424614131150399108598349886009965496654179778871926920477319529339196551308110764665597666863457058668419590791054633367835660606618763477362090015299896397514744216816675406425949287251755642857934043082396520336416274475016455041443980438642631471344482705645184295349433812283760334697278847536930113197603287384238141522112449314193818862572149412436740018058666824208091830156597890706408870886270293994984454136643771732927441350450733704687143932785013665495022961243484459998632077832574859702561756808915600843562091711148475875111147037913101618916663116757023185154721724053464790773897437385678169615667724213361994174015548241217451241234876022225760411476318664948345529628279103428944682644294934517036460178701668494754125165424059008056149126591549632041101987049146562544064395611974767936477867210407247977746844631242395050993180266363880179510340151149008660364701945141388212840264580280292400666533763372031995709440566164678115013965396349122928829824311681790947447991567195605765174961996047401069498385482062204057204209402962491586204948782151684584213267058751437795864929224838418956452600728820075575609106086306433970498038433021998790421328715878129384997211776838252650320699203989437425178781274567650410953389465875387080396535621980616780338289180917205090414001468341305895504283011554491618627313048455424209434178915728443731426583726773003554827609496269338695013255977522780313927946498795119740593352311050833284912526490995029269118851428463485457623983945090618753581544457457266433920419972135053881582024662835910015333043454396349055294698878825081644989133685719810501779297876906037073838938687552907348864680019622127205291448305895129344853966717684065480349448222480999224356259591321903313039808167447707001225492491073154808162958476683773993494770975459889135521029362965174064471796086617222900777908210422032427420320719415354379990094356115782868843411885830386841367447482989912469654765729428627477456179250496490154056476789523570362274455384972567653992199549026279395766682233995173891852515020779011886795847385850867771854242597028901137289403680173676848608594924690590073212216833638421287421164163834800464532086122160925516882044580033563810301317849286515194890721730575678092315070929044305273427775131885728663021242105261201534337161726032241275111633440977478743425368710007388665641977922751739197968419799943177961874617495080519783588462658513479546245671105967553083874705226088893919624423141772753197234386872823293609628607365773069673813182497903686501752210018452366821436828491143572476098296921461117028666638322005822193148626371369256295064609330860212851768192031998871839636498114683847559098680921619373330125372182488239161017790746547743093067147939401089550278235381556216271542259974895042705517962907157161480510883487065331289538662746428192007254251188328483943026131258982154187529426981585646125466020197162422617779449352516397287300146730992964841030233422996015195769407900932410241741940071624565308524735868704612658736805352990762882444679583956502996551736495858369907424817102491014665070347787846239195550937570058009986357918656615315919229791276515510866182077380885950360917638897016922516063802943848426015817960872672102440143512666914218157683906129451639322098388732392266719266334785041453842473600006989861024621472346683238457312209310060466443357320688846653850936277534315580830228948719435344984423382248566188820541772171075754242718184535574519704729228715704642307212437211431973041512798797164231878803797831804369793749272376696937591871925252140595796648246877057037110969689386642615612281687621772382481205313823444651698063032342039689561935848543271207761207439311108758675443267269887550429744121089481559365311823643520725463382635350373663714190271266484147699587386360704654273463513668303517593204111069260309055707515945504302888165148601498014246409810012998276011262296826806930535567877041139764905874103445938020758950418680739710728299814117460861597294038384168328897158909541568048557057885068286820272495493758094254331478746412484199880145691646645283323863855012293584440999585545866376156142405473598003492180318115444878959362125587707902317270612480027190661945671042228121625401965354741842569124061464881111738183712639227423199109410358343874910726394270370506722988106306043144076722455944217487885639844039797263057415156248119174508194894525642485729637902620426359151621500372365771028206236273715981233664457668944930829750412809680023318154106395368769107070284995372684683639094624706736873625294046426253287871046142498193392063557063231309393003699017828424195300818578120405926304380764279399479860962010590560883563751203259228213779627918747905864784620135026455671415211235787635334679070344383417116706666754947751531754854100665736676279338178600609112444050799747547643012766682821176585385316846240687902997845239713176215983960417095810608381949074826366434724045504533300608028625347837461884146260161111749061117086104410893232385631188878358575615544899815931062280769291600725562550095640532616709759485627640202704879985350136051762848142983343774280773444248310807252933326754162977880488498113596480611243820760031379095284809635888481869562531307655578832502980587956090748119753517197070696261699072721797599648706772296450377267936465593401169948563491668580948237641098445118358507229023682645673150886576595647605508740001395453680580218865367621565336047048134902791813979775753027012844104335127827304959585406901575975287356846267495674355877904219609419073340038292946104793205189094456991162969923762016099630654472372273325975044158977766395790146115862853512778848998813479694054152261956792374207520429979332528779985225431670366382657469606269069632562422764778361517153683865534024912677482360311148427002919456168462893235929423257175771632693009732831155857047647465039647216467592159474141292274411917255960997202365421439756783050511790488903515010305177504784745285780535159621878115198033059899434806097840605447714552066179530675394785956721366744908207004375282958101842032943054649385241389681247949741183369711545839771147058644967589094023871646452150743871551205979253205970945514000677754198509117225500345536768944044198750543404100141458635942434796932551112674182997307164918944119096981188668872517877158678024619557677539776512399040188876453717909950339403480042101071818287847359446564309988633678901066657208688060821793810873123350127980301971694355613378107970291708491918769756964367922375911679379954283554689849482206419411180408060663986118564400183372024357378373564442525555432178824508190110697557846166958861103500628700548192936192381969481391449706244747513273120346201933965874173590286690772964834314392595401138929310110753016323890103668253763467513756526204142546746546639806646494427694595349664256763078747789026062841609701398123366515208906921002265330370020516267015590138552843059729571910228972341405868388783720311425946671472493297975214706826662312412675701602494396778773212424632221465184361396532128615939208654889537833719139174221942460828828236016589551787114007484046722217163553326403836923211351175006172218373096806910054857897261017157626580730689310613033391492994805796267240992669752927727979400567893909633422222377402397226199750462647387461919782697320141358914491412166237792273393707536329742196035349909159774927835074033198522123546384878838811051975735355667309483328330453397758455416310883654450629029858006666601860697076943504669535313092771767857889736229824005680088035796998724863412860478886007872424339070264869821424558644132344498258606224200048412752762131850375612085888605237086961053927812277494152288138282185577305658908595064090815807273187085913043502744097669000983335107100742249814827925417595849279101151247915964960508920005374032393260779302521773269860986865532086440759694135580502106373212802600754382595923262177520005517073614925714310384638240382354614594972253042935603596862830125777955469501175869700614064640503497680452595087357117192287358017685360221322644580379164403127947759457068899891912035565213678317773826227234103294948149190482595673228747878818640202112869413882643283545855428125891077321272318986762951925571442694745341469425423401369492790750801527281291622052447691861021953574070347014051863401614076518898585720840360416647338957945992867179905744068694979085572300535147194032042096135861510441412444256504346901197723119542806589267209713852496971355703606844941899202414202372064874756614999586196476972631214960235068677300871482992546235802007573045116655915568178928979591863613252374846381550066593089691251297558732760969714936733590823746228064677699121678523260111481421669266851480310553433966596564556866639234236871785271263464408374170258594637707850900419795446566197051971872732064289791364560711329444726356508588451585364081210575037953032124521813215006339822378993121615490941854815700229521797047504763856279242247628566153822192187078316074324795377909923788677522998227031387806412827021537604448128868144829572413111669268283865177055052034192233844774899896405430054952111374966365290610555212097668443836592787702910513882447979752794001902180929153088331080184822597692494300260433315541833119293669073360903946598477947857311689156772889515332253254155333199647992664977901625414638668083671850465121681105329926821903297789952415903829335906717845848969929004303884201524966865002185838596156267857554610177054225733601082939107393706379830640037804127551986537492077274247232610650087013233709954723083235632780044172102643309010778937216717532760092863607261343336751069414235450145540084074618689132169867231051263783531848886439812835867343156403324120016304821456833625669124494508684834383618932995295947216035842062568048631966578366823514269445179672966323526174610479278874858668891430481238129891364111859478258470523077430455462739034881182844520954640724827234501871999011602072366243261836381176808738779419255939452475605466025619576058980597516403685883106951639620449823179850691834433070579997554668834965750709264835739805684279293366828982926308536361987233766737072050469902406973638512292177345093589370158533470176479144866803954605580066676525073702848640759760577355296594711083263610950662596371956047254910812646715695084312492945429080335901381594254593854391248658286711941903765778822071705536965309550754374528379233037147379864982502348693476916660320074238406917002914048385941962690757078081442540952714939393650596362681202358411237129194006416460410194609595274775245480829056467489013854195897498700942442487159871401095274456389062680246455965991432191697632846471277558295876443762692085343601275384304639984694481188505717300144511409155031787249519240339353433430526467646746217174545474758259022994445080603485017695831452671301390086084721809269194954952480082195042250220746736900531731613394394534813144054966558047446395739800227852588444875617495637113231011911582287408560189065476297824281897816485958463265662073929545204402510821398140890353598928679569342047256186001060758520997177254616592982579882073163485410143490488905474865921740101888853551391591039655430061628982540745981497619786415537009568930255010309207208258378132910088301801562647196142073714490129653717569416188728797728079842920932889103801853525749064468506231921373930827741229961311859227675149776261635569595355315434419266152738644402982995090393640919692287275987159441324981679234200318508108241646932574861299251046845310130241419621376848902530555254512711978283845765093712307535127709315555167439514694143241646668547067917708281495114983604111628716561742566306665884702885881210942036409890301996927200226831827892460223979879058509519649922158823885442208813296165006764635330417877441858867407608054354060827365421687895106425615958471142266992126996162537422189505603893652539714477864416680661018629636214554977992505846597096007405927246485880267322751107762087499277542529034500152828706811896072222264571932002315001702489345421612394678947512764990877847719218033042502302697004404588067989114801398346843014168635771675037937953353452191730506241439377695706301466715436669155220952197712658809890875512575680541239271446489067094598581203107680087369750148986774163499274260120298733972812241641649628210053223089535639925482598074413453840583552609500353954101458727600762291325172452439543772839946393541101697386826873002721762586291024232177556034089875312390581463816816690963179610096335599132830504745735066224856345781689731585223017810175841498208443925976865791407000731419289476538819999618786530049047717495054189749937686034012620934764674962623473414589585990025547348741028935552276807655285919556282521413555819107681646238069082219554730275153749215051683291741874386474488681851720487585279259067969499637656964144118362419836372073083409274796192149081548348756109039400045221728680804071362836071575997021361743816584682379705754392518041162146599702902001752942938843212804064278439239955344259735025425965186468366788935943130492627341469930433483252708084961546584224458997810429919931354799761710609677382118464183352703868992992966404916917214300362809537889274973516462536719424323823129070861270455101712190627237607669949033930542877698558029761948775183380027457212214448227909312954064350773871626953079377659612660276852549835871852361381722693364939063973440947428194836553646067199453024976414605660825133170902749160793735784618753354375615728528226356181675849057302643355628955990990601372044019159330629205189825628668368503089078418392330982991609536854957557333252604577518526933672430421194606571401360760345537813565961071971414093514014947583336946339301468354281990593552085453188367671914141731793124216255770748125932830926283148455212566762331101144845068229443856742244143444174813574442858062968005216017169650701140779539278604614692843334598341836836144972865084141211156997488894447156278049172224841355941236002542305702664292710278416679634118911589199511346921291746587680340982341130354645765121498936296467377543089690156383218937110855016159182196672327295683393489448011897831772633285498724128788963041108794898184950601979564311711980852611912310137318740468918215406336826864677229763429410510658472895799505141102184431986114770268667105689426481964112145886936812061538543665442898691061252482298121607624859657107471529915822560120150040671889673411530072413675509758432516821386672045087500583157998988115902708090544162924545482735224993560876355403865394216249421163124837572515112682742494903156313577490263045039113986422953874179882748835096824362246025740889219676015419083048850791770315903796251046866737348761385881268801566258970837856419871661675150609092731956186527866333870193724669493382277628599878039034868342440239195715049886495913455738480997512482376241963102204392517396256648360103585695347072384681648508533729981107069137526987959554306319100484682883310769314187347345940880284442664240900770687780121873547703341115595730174900508254201687128426968940596348704317148843715659754445193382936616333006291972609039803634859891398688142640742619942682279479445213352689508664750993841135695017055776731926621345343396149179749714327458582046235643280497530454982005732379800804120002526949093936831924249988260638157837768306998690921837366328080077497205883710113140716169180322061441293925840276102279269926150751577666744357185584251213240845965984284489220317394329513871119009848579069040221106714400782904811687235589807684047115555289715033914588783097628826665680037624495909346353963184406574857924423398796052587733700308776956480067868174845343002100801222469106653530892149126154384033778048600930316258478019783615710096864791584756640412205177101424153016630721786514919389918342074182216662258037678680463052380068100246248723824051867559761190425316797242589388695526048409388346437282948867696634745532065992676500627239548128681703003242800784475772795682770747515110347318540223654533549963335853163847828697892847574227185827083372336636656151957665076318838941074205124429887576961708251014167178599987962823440937928586505686285977249936972603006531489634687193662399963277294802700435843413729834460943016863377329870067241981938599803036566425285067031567536907630488673767395627550247429659604992559893594024151764987282434295047222408258662680876899479367581462314335292717304287583174631128257693871603278556623933398934887282437584069896651036425444240474681834026911812980511951827968560580959835382758122286465008108399660505277631788218832388404866045740444767204021658299311523810704769407658704817580161595196517595198533256533662894499090738720096754247966457889559149481307427315789998960615200400404570085046628083093162881136571134528495038353769299661046859762186738809281054321983829823368586053677181506795669100206347777051783602607753414151307873000915890512977322784707922242736485624822154287899689752227564391022379232354876134516192527977043300323872340288591506758096106088064865096053658011819312406950415177902508277369419164297782363431291570630383721647867116158321526221209340282879588536234397116096665991375536262719781981388677126632442139704403792680463067226402811017205090294185895637453094597977835346886141155445885542134316123686037258437485968851841319114128200487114941843342191989808966046132353384494415569271338036559984611108697715049374450509814129703173188734431115904700927367401503604402716320983784277673880041410746178134730445103839353374009067778456973278318098041339130676112759338779918999279407885495410473007657897759139802066154710720946043075304007423473057649585194287220412781387015690505930150274384145814065605630336460736734795126468215711469304125585700151413083442316580152963845709027021932169512720935274920532323458470023555791170408029144412509956464383451991799293048917005115889025637124392910288824538256884262849244431365438202947724838932801035436070703879595499238399444932822338321406064035453120947418429063163482951594021362334485528705861358393296205664460985385496067523562120782073304074501886429314655136881619808571496624102857214715138196609900474194945160448738870591167138380019236314490842611812040470617108480574704554622447320352580885097531875598027718592267971003265916454371791965318775209689545328376167495393111740227277586040715073129886766864752092839869022464954481895330870196448722676973148876939237544139610646170411693312342266314618100494678801970106662970936200477212958113679798547137577424844223515924508639665410527070918021251169802854489483784994827522733793590238689625632067571400806581255191050744679672221494047678144453822356014709599230347146967691551075162330954259343517477361119529745406085972764942869204259570128797936848174961079016656220492012153750483851768665156390484627497153589572447234517312707650827352603739042566439379965825660724168066832668874845630758704348128826418072764701011512659501328091345374024546942108834568853634407885912253862650644374676476686747437997111495576162544635968622627369056858293144725655239868575818563386745587905646824054265869196168421025006424842009476887174885194662900673634825925929148161219638074072491870771532052859787716695219960677186754857801906074979475917051431746320191575947276487724962254129059261221298545551233185409175477060382079551322463211053850575724312193110355434734645033568567133157015505158371062327558861348636272179048191254723320448232892645823899884957368956012944532293036637902171100640400616078336246119773523231878457265142615440773986708132286435101127080292906780429770505519563073540945298342896916994110404327675518117700629758505575534248557473139636472055541509647184953659635127857982289495727365414486665365367513695746501326766339496041069727642833053030800307656512491102961783850210237446467255267577394233396809695035782611955794242092146091833257586372108243315735048288444895282856321124678620100635554744293211880551355211670668238692152529786731755056166752633388560455824020277292199979933663727109448004956184846394515680210271837722474551997176376198112455213772929366754454500932437872041314733500549110177577675408672708823337942099723772639233849889182863877346502446065603782664628324008765461473784278356506221332366668949400964991760421538490880522425563411027388369684182588744171244378551988305410864977736427913482757994526113451371016427563737942552821372675435751136476345865158941575346137757127943441864557023071811732562922329300409268530292935077335291285455780613304747297750047242891033726561603324449970836460927767824577154195394702402129239667521790579308716709905579230775117187654314082708210886168056346005548769504379639421906873824349324826537599361934695788480604593687412247875072493154708478502431726910122733446189128670392954001757025572628094029590731625959647563362260278237733900560540897419992217423998078148493723413979425457241290331054548565303402454909452773363907346191896956302763213717858713321597176891822415164964990967504520523322997772403437417828211965349829802088731729117587793442165678460664098333382333168702476973254172059798462407369751092583503901066670477218672929295815381465570247050548412820690321207310462089081874875711462812322854441896314423771761682148742881236313558935381269616559365207856059244242023924928586808792062517595078536498200434744093145229682828577041834149252659122460914755813725126368731298450131596017429809914971171543944476292453102139467392882919276262921697383745153537065691696185108301430769883609677754249236498291085510230865311369001598117485738277701834118418527781889011927345644220041324923757748394655398609587300480815705802768276222566365828632238738661763370523689258226106103410263088795006861956525158871190935103741920616604775474669867703407389324150238296407230411406847626062001045935009847437629662219650294970685750990694965520912273326972830131163513427077962382127736717464155037505054803892724840592048071086037261188943977209022882928271796300087856971078344320202497418070229494109388289034466234521459673956593260539669087053048874291931001504307246403288167320481278774346092473132573200322117293960645289411102795479359616328558990393033785496936024463339298796449090432927743812035294502279805539793455526705804211727292773146760323441661003261381770070880104763043763600571442850610168590744437283555363309961550891071037514859447019659879610788649469952414535337070915527866930383614337702716884631168848237414733328056256472412151037049125404294778899318001788679041287720241648079230160870223177265755419151878108965853479217745007070331371208444224697840828960846273032968149586671758354005144325159467332432067039518670666783089411798888907105975317296271866121753356671649936691049698144060977492839445131097100196693893742171400414889179307860595399881803635287657921397311060150442003773199545831200087617459930785531388764735277252023980389773085503563976917701863796568995257967385474045278303834423574662509668746765204022698369156430534677804311349167106284930622959666467597902664253586772201114560561710227002646411585508388236155719837480417477857528130524111699170256090748823235137462689597889671945173619617402650419785733904787517056446172571969403571292715867095299072500899869680759893374844361802658318374805319815479724365468886008454432351968148386342429771048382742748997862689473655557510303682535751980995588930558470827600358419299524665930058925556882582134485785994985062478628329436389175759859091719570076732498854899168304917233453367445041974183581881925221027112253060190528873594415182112554471053272154113120521142532445580239590350201828915667476821722979875568314369689622508733015046003718612031204443917756760694057723585880230337437023431856765677108309873712618137912376882614288148547613146240859433586847396739503620995853250995166976128150611700603261664952926460229306279462209834287928517510796624082011018402353568624726998849158655041677598978562694604213995054365279740133765138221569646180287229041404553177990797084886066030999645925071233492767365621834204990828366724426389383345322481769086585593515864430481670126963880238459505141436790261347577269171804068807335971233549510186602034858044981756948352424941235476466494257095195947985795427214267532309818567584620554636818851286689212575686803967142115301594890218372795507944652786144742168660215816688705763652280296062091473394322061353938069567635864409505846921989697496748424780463990707249672722738296390775120722620939661462349647251640215955254163136618023490021746200911030932270758608610091429034940352956763734716193657150071894520483229126218277969489522620994703112095003362460677552723891777206255900988967180402340840142409620093016208220606868592825829143789916114833664803239058735622169437110857437248364391947416872343795018684612387024379691117023534546184430546941889413236642241210497190380123676001431825756728894555734219243642771297770327930006977915772312273368355436125614547251538186679582644944478767789690955208467681920990488916892924280937400811671746044849065622524338376366337465238911118824463087722230265005000870523350606375698608920098804074946484219264532031241942459836395529970252007554467020069129378644732219099391435037908317445396308630798824607641189916662856375328272919069593424548777083927855144058798518732021681115314728204558062477137495599762560748923475242770048785690176082887712387073998880819067482477416315655224175813863252639338775385381531233537267214422393948184525466287126871785544727168990026042957739246408041121884881037130571167468167368173977059568811924467377909324751347853415005104045382486894820821765504671525285588969364467720995670836017900212708525168213915661618488058424878902262459068488061674365306287238386632991166004993339707085634436574849880141680423938033838434285335927065660656014699359291143220561572139598891168785089205196199579044269261964380286226990856516278229693142249251291099006817790772267281290128408380061429164933476004977406467278999362743469474190934812746065123367122286317871087458198981503248838069335150546945765908893010168371094405333394746533805990420594651734042674306904462337595339920265983954709681004468258882428606962682002770959715426211816878478350845131179554487655321148355262622462482610964395782068203216675036362091478840337383010514606907382928499963352960673253450791647618092479861148839924422668341390370652284066273788581850969657369495408717535428256669381896151771483061109321692551216720225599158195847992605450660540660372035685911039868629561146385307124218081753823559706060597321149462679914844802082944333599689568201305999345413246436250125763737091178500209613972540114703264404857533620260664503844977705967952526153626348037053794101643511375053759986448259982547001269526256477097513996658986597189017471158416467848245012639893611921499317429823235813307310260287135229722829900036826457553257959638375499728183463158684615396505523629861212730218962815190844653324987324151966042792440867543917791794446540574304213074487863795215953588690802167314738361061731150929122695335337895688085510396832314983330717255620869556991142668142032987865239639652880095999348528013349557562211645907065982320217229519768683271460013157288042750658869737881207099298608321679159495532595806806568928364843492768103380094955329585168979451799997884838709782857885486816412947561757036516783099658401920090469778107325547351656933168243014263186394773007191269031012602694366914143354877931011891566122221438783836666123116816391259536085912289710802040072605851600032874243607189666205406100271255728179445379897990031173196575522532140766136787349661498883141324672966371045891983793012390400584824147895483462666406502574111249438813232902595978861682446291860545571260483925636806154162285027376333090318760324586222025453077791173176933630165301869350910615940469269287399901305945238111535225402889162988035144177676050911797414258006710109004673944231733051169329190098434892491049989894835320149657080298355946405704683304580354870013519747818869927981242829623058275475526913248973987740187947521162456410649785138541924092379544539246791474819836813013743530277394374456939942472873273588445999330143909577426675982827874274792788652317428441173023282790423687488611618962633830317663283737539931674722775696019159065454730365296861531638461488385037645726149871458820845688547726575308441859255760566780722113029502408394864543547664567685017683576755393456644477251211992971276864556407086455620237857656754329429369007383400758976121679513065968278732308694886255051531922464916990157157774816693476906046863693227639920763332976345072346979454269649654829802001790901730992693013490548744008636445500131703801087878631160302355383252097247643673257979632619181171870024566673608971740229403823225939711586770445646906040071186693059526521750483263070537989349358139879786920723214798713336718502782391593312262171954279152100083847538329119113013734741559420679506169002378972808509687614103934163263061996356742658824432508034481587037937574266036679919619767584873160016070972732448405635610140333835984530207746938689200443094551299862283763747286804305850789962617934349054910383396141795917599023643180998409954960532264115188510340589396202127021194754946195809783321064707930980423659023485109306821046096289061441346810586303789519601342316841860016575231464830332689566274577342498434178737430017183732620315263854650809116739390351899100789002552686083587738314816219498208580554581421964256457788817575238073725090341090166782387308822361416764950918584841640804289827633489254596313648003402820062928638999727599432973375844700453762238475818617406629527337289349078312880848737649995358106131364938594487911307078640747861132897591956815710267626115721132504241540844221323437421729323394878124111674197543216459838918341118224127224329583843189804342921922036659364229875473131364384640160973278964080597366030692382341795944684502858371071409267231163545074380735311089421139350623053021208626387164377181488663446081172389044322817796593087188201662745844183663616934510463007525655684354610189074791386779908317520074939188816061193633591127909790895567095533054779526411528435397432487545509077228136069621633742532790960151233280462357364537913692220606960027242123103258704555058504857714902905097298973673483049540476250671652084185040681208577909111715374126335809877513750902860294306445682361238378174117456454111505539748803533852841276492263488190992156852170955853439585616620981551646672906878938958588083637883810479809334487179916829860357294268138201880581020990657274547100359018239461633751188534142887574382640078201091266102290605070015798039608559282714876225300032446108678572852136465588287275771733460905309611902391356710012454004905316765770061227250880011086538037578911044004972616186292795374052558047624974154905982512387942565291419376277460883283807374502164876331513177742102728300928806182706911325060897112782259156249549905863781176936867869947890319574588675318547610847109742440232106714031541091577902755346907669283651128804012469225277674248676627366164602694599142024046136112015999953865476353615340288867353631909690315389229980713350942417975851947770076713575238370427156253889164647048881474086556299023694682868871993118795161678163591753282981760417380763280352197955485570006267223892623156633245341771992272329354916362372719211607731487650532212216740127472291306419945759980966545181504281453879105393875042456548504277545706763240514736322199630403200901121401634887725536657944750428992933775612127837201631629096199619174313189185230921288271439855096680721562747800125060955125262066903729153206900393883272466630614076684492562768012955896973675865671437344132772203584439657307950929577665758440797658170597990662846903271660978841896103242336664538402975523661792000766516573241999988689265938326298469526169491168438508052087355411696925565891143715230989045860680675104940580147519568152989713511616371848852087368940083181902389570931823701971709989127959174986565068714808334845963549115470256436244763255794476909677215925967707349918199541168687886012057118662367475971763836574832127878661119051864709918789618900344619267323605970963625879936412437885877219267762489084746817872467143053314758402115300694572802992782746147195058064455258643991417408916877540132418364639910706566574368635858312023728007196935660007388863922263360056445159248032940647756677032140222242509599091268733341896202040711530625541754429278750663623854788150511334742101683430415743289914374203809209154075078368870559049424958433215826409943950607874786328365035472756586615340607164902324459324508218137472811153858220444176189813227211827899256995493364084973804500054827720059261967928473388979627324685530540512372991896009100762042943398987882399363136336910390776013248745036226108261680857636810254131052310772252260922578904110588713480911382566052066950101379361040817352051298840702553599018369306135204629282289474061596409445978180428365011846044717304527220817330883427997526200429849287543169280466349889299395659792097250016430859967702015269924594221486347857889185743767099732333351055867915240182399803429659679909314331297567009569452578851628328981332367609945521956273385404777222174991979153422193805533724927936082412617662728995473355037203130647295980686785394602000614653391101860390411991290652955010420421530432129494578838714212174566141799991680468327222892270267748298446491677585394705556256403349492100792795950772376033251923795770329595406491143949457680930070746445990045613700084138600272807831921511561453809135345931509881149388896311101585882136362653412873649656552870857764560510649708649431290674505446794640139934027135274960922157011788968629021122000863894448180247001414434654838571663469903199813353041682587068154121168147826150169174541585565147539435484287147222090369037692048096113840653773686970063116327741177124766243799757825631063074115543069560487731266878953343096391255254408603238659070863538900396572504854984250245094894320818256539971795677182971424240441564166594417009977764668839628034154734726001117827282810746556854201284504541223695080573541925029559919483448397342987078052115373667852713501051001330793756150452405461793821921550020074774335507694320317738761943654284012863645456163168466080961468947394786830635718099000261670533844388836639437728071438553833709140420398190091984853723017655336854645776700089885695853187582112652129655748745234490793828768351944784765903578002821426064276566611005340808236811452657335739660220462746292171023286804543991329123879866221240679088038003976956202927791071952358044717212759056611089381819455947075215486505748968561738908422762429776401672566397561282379603575120093171199098772082450492210326534173662786284544482663977890885021554247746576875606017849524700507960631295773186287446760909815731304256799200545965353460094055488150468034817857928111354239992324326290556635441301302198953650267129320677642274539014771523942390278508469344900047740035035205615752897854143451779907401988723569191520381189138521561450401077129115242048062135982941637575458244038940645753825587749193024825951247935542139190459317899764390181394433312307085687777755425026985843056762273955393506053700371190099186126935338729981706771852288611841548328259302723290151140109844316702171679514672992794682320351747960979721609428391975822037572776754992635295653961803722356201682042228052400126903086162552979007059744939843643303675243264773072624759188433211435207446952197271658501180936968454127296231312720851390424076415758354141888786275404751977272133505529976641705773251210262998919576204868178792467012467796457980204900909711523758345604330868356779864259811150239722408629281864581052644195284484215600108534487849415667770672049158326709697600836244547884644815646808983488930721022456074820982278201301889038281551119507873792665560060274439452927235050623608179830333799798097029819451622769284434569649172056096236321778651223434325707859679078642122306641603082566616312232035050608476566576285599636871371920936402687987217414106089244937612149704659919139909127615264359224348550755385897991140607544981431912499241886146337661904417701796061816992093227632044367196189870752028633783984495732493099740950774331721766878561637553545199930439144126310273008085450281477935783057419014600374692875922120719857286810108307616119416972460621231534995895121677706045423494815436196724061011758988091421765460294610466225892618365883961320219547325609525305275760674221279935451755461685423919556208928223550710265923516833743447626722723506062535196647226028901323885754668382902263240596516067393987512947890177893992653301449974444293383750577500975687408843994485827460067726385527957924715923829860105756225646132471988735252640906328067640899903976351399173188921408690549778035907207690929194459244800439995295758614170014965930394796219150812977302633115526527691195438575209962612275980784781983401992702067048247971946876550125441362496768236617934831924534698646161400778945094719826289918028330431203608340496311641675946224583194319821146446386332217963767333441703123893444625747106561200077561443302207665633687952074509753509878180616988728846837448638360296935854604579161266122711860626415681001212454741909311639253004087210565151852303189267321558933551017295728681312324816766282272516760496292160807682349014289592833440462916844689276673120841039458292730267963408070694610195347167944253814523904616676965149447751795579551353791016776002964952422117508116716957749867164078438045671499802026443784662489310055446982482910477555460183477616718357529346702368503195338003750926696668757912079699854172036861479938470523287776714726063320024943462789537728115559356086443672514018786109588043010020821403972295611749740327279751440277515094500360538648110930121224255327600217584575874638461012149304994148206996806612069583658360363160187369202138231058258178524004427454642950249346561577728476148607211719191896206960495682901163227233794674371719144460551789951564034943545850929020169963918099918661781055364733066138730334139392616617052459300233135618153203600250627246761260753212351891022708773825262330217903665444184987491051851145530253495675366038130654903899363762558639939795472962540183196690932300359921215265173970165402092150803530514035463733546470564826941160229668850861203097216504413713363088217479189461787771292847214407072524176515319841356784122307040294860938261404405887372064583227180343632298794936385417133997754762875450902650127896128866640963467985672536252564395764541854362139230095404812377236306284617495571048533126392380128631622312282881769955561070211557374344221156204873890479475305418745861528116448654141986276817613921849650461068079505513252051512027287958375564469900022398184685912447337369613991952867959110067396883371855871616758814254811803913550815928396586432761185725735156272653360635879687662235869872841441389050696441865513198700700811726889556418015727758678790738436190942450258741238463271693394141748769143675278794222806888618715404424715732306286088538829893965402520568338927521846129074912681987902797570427270562153903588343674060518933093129623870289514558908090128868629946209459005597262103515338925071182741444168562968619693609806302065710597252991922578153426703403135654128108543584394497469687617098775488871400035654535014218996367619049020573933293440596193980141538124414253201667579122452452842812568975993456582291507860930082002517187709492036622268175935606387630986894560761200498937426636596136386589083694308974953249779480170097742269159844856064402143675406780159806597364560342063876319523102225255268630473532995800818235110684113653862442790492321122554680509349234497418193680494064018965431325742422367636081377025762221116646524880204261297327546453676236122775283922844819864980785639143335813588614026185653127852434003945785197709420703145280961124367916701073983694633087603094388437594479607999392298167847693423253786399532655235414614774738074068566455864548707987247589539656337087422159293457617104832492526968656052136465688529499246346200857612690872013775656565861183325525083578032320290752761994879522858354451635508273517283301513841820513267885371446561110365198936821854666287042714126477169135331778427434618761975274086417724419016626400706538949384413636512706353629690192770978880758907972327425833135067001580287942400949221483780050097630440637096772440569568947598764979816926878948204036599342697613594326555980035887795187833350155341524974212355439449826788066031753284585989265039411014510585160332687534501232452651867260836580391245558535344598766053356150665051371364202507175842933764831807986318031908772628188096980127061032851359346423765029218185330977212425669098346520461731018989444254127686054271881081056584152193702674584356363725700940826013706778753021734217308373971845207447043697520350450392364984177926567764471329323495755401672820577560650544116735015980338837837269055133513554305497558065184316781873399015960546394519672289115219447025938418308840239682814080950678781890161234003500101842010194486778416518426076259864303404656682545313486870307471401932700352124341622811761917946482219012468366301368135014273384079093054771714162142946937099056234560818072631878537733535331812684236219794502670916962765292723883414311773980055649141079768415982651399935977317706318426807687464764298531998508726349956553936671447105489018750047100356874953945104306413267853273616154974401713657310725128132166452368067553884154141742733059710497863657926636856824350749738149680181988968746273085015421244580530146091799103651162125832929728596425776269706769074465461041269172056625795866995521439240829423587409913595614230994613288940462063438938708757880255036017193676101702449570106730844776961592600851704252216945760867101002374056429578706293243788475402072007962425426999826953532321915195836294818446702920039631698251746225585928526857851428853715820410922230973873882107190783812538476932475852435632455811933341384387093249306513349058631103476795979598261552875703558549822203206069507066145233253510749927203033879884609898794663402449673624449882085118763141583566482929819213021057627620694058297108417906570295510673617023948899356392273825942995693741011620402064774569095267820787814443460114641992654816573654103428500300032608188980364407907040812327500291268661215547912983572373025324968580231124301096121374820798604618537004995095497318658333133935322490414789313371388395379835817489059852575905079940894673516375130800553211618932272108315407311532566198545797685955566389564569741823094822702424429304467939816829433529300473015820765941842358844836985761680758865172251586206573875953702375948990449316971548867789633613584555497178615888430802504685911072816669532221975292792551522441023993288749276292857572948127628674466673811071280486566563473297099982147505933819466438218893750523588525208991986656851040839269417419320088589203114283035530152336707114228262330401777148248935050734502753034602396047076306486477541494703437383089296742381122437217919505068382942277604349793788561357432611119446074486131300384370162598612744894172853646528293767014703469199114491314234885742620956748009696432318452361276265910437354328097419510088755346218558667190863285090893005038297537249813559967612923226616770562931782126153488767922927030619167740200690421969342694436400282298671104352459168630127037377454708464503033709823286035931723838170356452394837766352078540213455743802995755746640433348770029462987671963394442726085582012252684330681004118552478585565809248882177336302796205222481425525637317662534805842517501032569844621212495052419113980367693038280293263281607097455851514671833282322274187478788757390130820919891711678499872607687599851545357589526855238213094484491649035453429248242145521215711257909930494299610092459277431033307953099651696165377037618895921014447704487431512489884755908775068079654441965172368834716761411032276582006265896311385742950346918771811089013384638181085995242949492872436359955125596277272137805807426225056444718960129465223850092303674404986515113947538286598724095350788328309811639260455387742966664712802739923749231133489016475900759100102396449889125415375097749482327485578796901604792999014925858232500797769564273514300819016862231571167024233501643168941467989592843009379135808700309166050902338773281086134467382688793258738895221451216863557447313880294999075459673895287057356314609382991535010051905898453512645600503776498822218254051769147068065142095685774504275258541776925608619660605030750964175137726549331870083943877242451529255234861849724999116138762212858517765552933745696753624732586123361745445626066731997128740768796139090643390343216257622320194698307692622052877060433632572373636689408400430419386255249890630876128340249821195054511114059491633534898372735036374748025823451645592502319480492683666993567651042287270851993710273495972256735150958589962362169797730247181307777383666120799545050118121030223258011541653380205224984692824845560505813819899623802639599290066749026121483068003064467087389162199130007831720606711680199204657740050235836437597633636942760202042070224308723458504296644724555103209313648012101716975582795975567988068788722006677392895725533116654299276511577590059316469958951071613750076120716071415800573098194438278320872521763205828529977246003818336944060962363397192945306972435180844102774710793876564390535446693607533303838082476194543874584690554064627547455970193745728942457819001391151981993201505848747029192448904676184100380703563777215243197011716859381291892155813899995567167143972752270605753147878558569143305305382190523244850202289141570952252415595244207489011668383959782062065562229272565815977136324870607597356394597173671104445255397832517846552073853303013688379928204867328836155501470811130087777215344426300690494817457488748520367330170932868582696848210525608862096737063919532835712049953642909830064273341932404867176459478657289483009203115037312583432079992601556830216963099553081873016243469487159134191554879686349630127259220919353283521961695332959640935769884307882498318698134872708782247389141235431366145612731912690085901522937534594990545058881203433432642156526744295443068271868530706351074476661869042397760654604895088150712956196272552602555603948895208891022405501002410259858564196245343013120287114716564900102278503308021424227820056856311374410444662036354549549502848304840343849527575225992006813969236957154326640475405469046997182011967768576111540812186235163303292328348828203569170354476203048622442217294032044020027173120377734109976837028511415223230524407503530272684510764384070967460674304786264687124492294512689549026262595036227164012057374022336449484530632197694617771430720973933474183470381806091195219110316834388718401989243197014779730169770887665301887272639686227355950607627024483850557194383481718309068386361183848526595281223955038374931241343840525176806626561568477161323966317495458309350498987551752585982902160362238619661442727503904740925874043028195017214803461487183269435650359750426300620581114143777359970427413243245959936784623911651745526864730424862652564128570247212246348533353579973520020186248175213597776240731276310266493712930701919902959381580381864210733201904949814433991766843928705728761260137640472506756780000574820326819776728313431440719312904137967669940984514139121626715414370960112961220071069627379264398072969527681274593322551556847896409372348232141758435365195540747331988428007227011450185434753242155604278019182160394018975534550446561388340114136420736571023562418330933330945458827609751960341602735860673693440996795087854110274303219685156229503106919352038665792682661076679546206899179181147743373027336276735093473155306294328895150888639529282316869265944160663288250072897801950581783080744604435097130835536686279697150169552856099645735284031040615807700740399502558908686644600291364767386923897646428832267192041348608813930015752174634213925257735943837865137837130094547001722759415182777164739440338953320661111258957005321699441644739018738885498646942036432072822029209454276364132224935985014938624256062837267313880125496554616915492146505372014280022753257425240913858002648374356697282442491765424358790093413603780648538313989577526488579856266055057697720067557989282694701381448003392089162016926753293754115592888431411512641366550761798772414464634574979974512489939211857779959266903934593465175748967080589725706649763787445222295862071324622121548718697763861914290757085015479735994209638972652196317037631222125597163959220881341194010347085388021722005040509564806764333044499992138441867589136660319573158850606682139884011280511314230431028000613236618760622082896131813573684543161894734896902390535506549386569954961409725834160432504603523530560916877885249135409718875316965847720539417513682542656950971760984825536070334375058541489093197605900624114931852037515271494614095603957512045348876846951134740367385059677655034938795717058189797428708150237933050566003628776267704552226201228519895314130107113005407329623542060604928789992211129768299106654452761579399825786231882935817807590237392808538423332156633168014235609826416485315690034692530761381141081499810436913537646968924595076816032466704814901362946600777141738900532666537040399871837123092315175947594406994174981519269483701854014286336955462747956749249697556445727768955782259929522400683493634281955751358576568612908042462228707774855911163553602612340557342582515175685641065764200941601893650827389464353255614234298535836214478348050428464344538227171767878912609777589449476157788438063170037010934392670782634085902200717617995177478034583338581948078394010859452666814357925226177692216328686918684326726586787336798698507497596619572008329892993094018720440408866974634181176494622463480172580963521342782048022614223906160827253389170860913559869561621947679897562581640021741184061062951599169111010866587691870393172374477166158433819005505751887269489634415448307912695115313972405974488787400697217102669027331842179249645900691674199030923794770285794180337217429635326317539248045447996223812197791746179372579375312911606870476793619227682775734380444575856815531546216922260470573004211562628726950912296820779983887046061943154784096801602367468745470527107260202172576938384790484660833385144938064707584821089172825444119947759195112766293871416572119497110325959535249186134993876973848654286123172023314391760519659002644738948310784666896954925682273631050874808169113214284333950723984040511389110496316849566896574429717869979310455197235152572303327965947102879557362099461955875191987596633818009305997459974147468102073350649708010183821808815127602871868057795037860339755059698694681660813511218752795661810695611276490568226913558357555522732825086318784795690544789732217224817479688204725726535243585054248617063158016416080091293641530321622918997059418593735352467236307330058164099085874672349221590597287789419428652839840618712753279026697268371502204118313081528037611547947838724061397967045480127840702888584086608426388514142846781579774511311230275232971296416235285404720237471762780163104235258714220284144502963172203628511936262858403947230168762486586433071930848575385347898576337430280838801992034139046768463937948070146072916000160644774084145106965608887352635601976717462780281142586946410035011555043776988926248154261185391536978107303114417529081824589083476245210023888293718186356907683393412063840256072051157127502436374377089401092453754480903054523247741390254146736288352662657109252090383950213391108858347428183495430289487114494029840340784751175896466021946911924176982771953819924504880208016705220296191143088959308143438658820663380251447911046035066106061867342773079451757753912867223518212340609271409387748875369119008681532108982431092278987879742692692604435099077060639498498988161761314307470602061210714909336311600948561951488585313379787358694047939454588231814711110561646715285958773114889476246977807844528478263861431506924706883135616382176762125199477163901977321915174511885547432847235752452775105311220791582246297406638664555396307791101248296587084013290731930939022019024161065569902274146072847966805367257272564567153963401903687250852352028972425737783789044709746116395649220514707693834103415513137580494504287954211862079616268640513189942248151189045473130290580248491067010944551546974163960595459187327169618584613989808072713087192942881868679571861550081893420635123693061877811388256998757201176716335224446316134057900797154860325428229464265061356221121123024236076239378291443208838677845558961231076502603497791473161433108230907923650314347418976161358172771091100393857238143891695085857227696784759604512517768635460166611898164248616811758973189277498143180453416991582056599185656856297195408428217777586827991196658486964431547739928379399896084499489541127061178482024276780316398824237581582366509207032979283371830777106456953147351926559828471382541487239837814786660975849744510461503878541159140192333178438386133133674472237214229772594940594131739919864364697565235533115363722498604226837278019125855881718943507365386050343566722344702622696441717901885916411600259959212567256656558819170349045353083853438963574591739715000991506953503592152808061851180405365483141024192402149875924481457476468962930973829932164488474033377193951269808549586769955601338802000719039593006935096917139344421475424897889890854443152564776682342645160150769414164818042485342403539658443365947241134397811810476843530185235175538337977946946650497509048245540185522059660139291199430026837294470245420070241265866107379355085821193984972648109787769677031265658789144872032850967995042608963321004595008091414378583494640933557547521105553910271351290177576335685351922400596678604573530942941903796145558085291077378342071094161054524471322957633410130139963308770609456758279287923821281580898021919945537904170855910235311183382290795499970049427371643540907047295315948043115732170680132026696940393638096623305484552802974629203736804058766190235304338655652566172168030557396450090148922258437813839126032478607612109854528192961616300519169553745583593432388732391928351808572936313978419930313649472825764271692051351722393279663127134584789993115074476131424798079156223414886505605175768461665263751483845659882032584985028372755123265399859924378053573460576933172070856467627177768415382952693226801495977936913730450672029901699086643479953918705734032278498886594659033191936528460886148167933069182242047389838830488704217498266609228941270289911575744248321292089899753744769445728655245543498577350940749276635878154808836865046345762547380270379117222295741263518137641465200006799095534594381738369706970192389988196208738579147578448080106880025092631338907336236517996486368777850004779041219614481999728681317267859817018635176367123145874029997858776434311739435430223262102403290092794173872087883553973741942687350612948824859011837602453207199036189769586526652771664726060516593212761562832336217120483545613144259203108073979582365882446264777897192800775203102071221241182222498364128742917366154074949868248074902829046564846444161783711610371476222653369010349228741690887150207458157900754410740547691009649884978254326261357034288730073764734420918179046821803926341018221866738839942429955490812141758514925762216636891687238126447396729988704088427510506108671770806599936489651841377120343862501389431078944681098473036262521768646987467652643111645717363314147056601554276677217790716963055504399408056555017290749821663960758120766982298459192662723606872642877450776735234284683269407179314622594721008190042880439417379135755839407829641867418401054578076428295374785265667494438486143946042986661887112918308476661074793210382914554310816053127182694952567178185808130097384285834420654356984886828757994050921256522382854750842451503552104615159511617261539357998798325388647857144531827485590482034779270369780430750788110040002360496111206682040507658365796336292494011838254836646393533671093074518857229437449785946745174232935972687584928196076688004869679938741239032106684136949235161329062612249904761157334574339512605920282345885547738069830683663889547573347354299097954196766691308539567192099226144874833366873450764793418627724445955734214468401686545441685527863600899266870068791409698800971848571150984783784804981333802236340840313435298429995663628673170731876010647235549177693769885224694152774465360809722573327030444342689377317733755656814879271885345325327596065200709753988021735786109544717722604048196952834577003929596759162378091462187560478968982512116668789116792364579162614600858984960390168851801493906623586383526949419637195103213983317431100966447497186144786414993953642585294230131700015434717536406244675509425786195643564863937780019088506121858750203465162916218237963922329278546434508258205071431432994574998538936717540628419594692255792912027963852409177594030089671861393657009686840199699581583171510905881749896432439818920037198093321960331333638692504712648772839648944035799110964307540820816822337975872812328725949987746443486903772454358643603603352211304046110074771980903876427885771063220583237017686164077522862745183512449141248186381290261329108221047879542305935096594586454876301843879515087302482486959386054179738225227639598738660911824763161728577052298456371461534913992033598541606869128672062649445714325145477461743142376667325752755945519602341324697405388499758137050210500441843909397917891990500612162581686116798061550699358579826723399758844804903172615712873947908703980891133120934387135215420104208822305189473767013400724867126036648995975585197684273368811709576887686258691326107670330463537712602654610321695960433375902088719432425477488219426763441431410890867044323765311820855146475845991717659442026506762532424355989996249754040575345384089365122509186570133613429136053833707377862194638659549675789035025393620425255540187453139228579571734128272667925227755360402769725084015029475573099846432277338301864550107553362729923711786074514519451726907004733208685327281168200603654183977818801663737063236381172063648916651592088003101993676169598238817874924533396998189699678100053255222116112901422248126202563492821536697397064667787595812330817801930206224316969159791709397816930847789152946425068463064657312120959981796325324315343573533326644952509011914068799913152065206889666274526175689808761364902457022929655862538049619940276264454473788731347034016965427873863569746252900084639748631149157081780947867852871215039854835625065441099026475204879002311108166231400054206666083978974035077403032809786708386422212067830262885666643663245338435236533253245455136414931014273811218218413728470476822230790597537499504753894638622141138301942987274973473861441287403056888673482286798112253372365782302122950195387594563577745368635996434345831303379122497655258917230409732860329204140385975907463129778617041814772763554702006968135954817740760524835272661272447267639104601052535071902011872881781967393817973251722174922200357962499816976084934937592559839152690817162389500001883725739512627600252065629105708355156294545231929411215713412710616265087720547488122434438937392936757555901995383439165548231850502752173838952915234713233058021418622478697089906772641518318273984507257056763613789119498392290269099032368660987966515358741396228000906969839024233150260822468248376685346346038186840382900790262990727665511519646592716945291964032553781213236560866055064024485773453190657535693654846034281796700929922521308070926418795116520400086098864116611200338819761142370170611268192005589225419265030862031639403645508080844479134836170122091788771864793142720648656442047943531863719640513002392120601457944601331473345203636019804756303805283025024575887082147620203974976905660269710758649754042125223673235828226621117281539871660893912802055295078259141449244287609473705777470744554736930027828630784132401295664692580643604953697050115739780997182801213052633384094534312515733808737242282557899998170236459447416014582681005131268195021338240647185771701177846352801214729996328594111237460917852620089874882277822208100488518032545068017897332519938818347213486056169538108931094352261723469983971813300543301433784074384220601938354885160393977717629565096519489116656938973922148857747018169317085473788872625816571610905591047410198115663810922205168762737196765542717408079659002540233714385379743960904325518934201561863746140286458727279858782440201174459519153633383392662397743259971356159852187754273367742252807206087700338086484113863687288554135301161403392425480965801296952385478476234002811354629741970330094639553640425123420878939724066585043704998013766060410787167642153190434457109706708037273172388637106875692580665489639114884704897575312682984888117081572108039957632004142629676122656987586478070291357082802580092891435999792445171306132184858155703001931477177545453061564122076453212360107574648569600154572704929897728441953692393161548167702494007739053875464525547298679723166422155120417541230378954546347542057614126270692968708094935555492701406209847544728019718429305256544011765424060978414854762924270915697821635660005107477532616075218927301710703837892610553341154337588466169102499844849861488463720323673628003527114209173341127628617856514511784874350191521672632346537248966895571700807376001438446427699942992799005975761269609445329699274005690663841259058826707456979008660720993544111435415584235095302237497752165490715638125329180610004991945984045880798982228439381249917947313395159477610072215788289894845272380513015734815575242935224659790781888088710620063534219280860328078044082979826556601430282685537750549721857194707751371704093994977333190564667002112598979376987611700678594952428004476852847664295489324437016109292622014919889630701965062163378705340997052341877969646768129314316062563774298857743549449940817078448362278927495689592616614143945861567465411584250379083302684626288144315531476405509391373657093643196900517501461191293596135548612447135517196067746098448842648661566863162721402054355716528014776066773279508884768910414678316439759826757291049722521990900820884437933634143929199664033219835991694571414973755674759962689512097999496776768251197677682643428671906925747358000181369638799178618025784068412353475774724265318772898960528025944768086726252362044530266742523135688970408606316147538339716303170229904125969954519113588031299108319916848702820287192804564319054761833809036693999135588304608624347346897576695189096279481777053655893916577942117342321749036904797060872916965527050717629047954475890837862387976771871875859789189218891374199861176348977727023536695018091033810012778515010999320589746454949843984503927352015531758719355677964344176429197268953665488746158130708176774164755305531375086405990030167666751524697794731757026983568402791103615038531826318657281793640694710904178374115679732419930188516726466875815735215634736496675691651223148156449136732724614205003154600436516505067719578566580538239969055871990688236097316726219244377981661963908038479306425455070551776788722945905911592401290735625455736237344721767388121244366286640492035234466932114157583186309389196842466595491910442555542493297429426950678869311213256078723610591455241123216537465120543779681517732505505645026310856570929645468681423986810710642331095856560399380950683784627723703756911654863793479847466246988542484935122751501400144340547161980512725632330664727654037387077619370725285172469581523715612149039094759488160667829841916929380997392990665818502274607342124309918733731974936493440591949324564527233101183423795378577763965463836755531763906393010365640505411673352263507175660104295297539262093772789688350470812719441774372383889496608874237704348562703447161854892394030124526771056351652575659877247331380739910837181128006895467529213739198276761351798361415883042889263178285899245266350910806662354207967511803963883715729947919102942063703592705865013058474962159034933620834178901649619030478675710623678232028994557624312090653366376778031660939882845501495767893563917942776854566211262864949939031376828992916287561560736955975209855661218440722359051515620858665856217061033082706468497701393931871797203450161256270206195289681023497268434061362821771871304548944028625493986904071281437691616179889999857081074344800445050011555144857664678155385784969032278926127746177740384906181522896297781482220961354322710580572340502714867920220701334585797878401977598492087185750385416513567734633150465899461166957297594367041833405413163209661447492375593984168078969002042192480370884064864302803153552914451548899566649547593704061640569704405084297682397449434946608860642100504979809554975920818385451035509800657795917074846540673374355227689381054422201696862708547577176746233251087317486360669290831124680817171065462793997249562950127411081100009111542025500028433735292042367191574163099626653691404543125125515505800442891636034404551478629336208357727098839374656156284810226531127618070639092940164782096884193395444870454165830259436337137955638410904743098158771341203859930573981930048496549561739519519345998691355165891244865426584974003144340475206290124569292979948078678076946583088107480493492883398226095988157049630398647061168489288707090493446112704639006375193235807267623474624903984037676542338432989509953111057922017306538895145230474762975117921301420731362748164624400530963863988932608452862092367836490537010586121670761225547732758177714686399581903729282839519124235053098095523180252782801615267392817902085848292815347708817125922039071024650666466881744201514651566860145971138661238429603752804180187127488442149304819545493395667131562363179024766251387296817999125516078551100441990639189175128530288311919078397705237146473482257160345956192505165752953343447014884251771662596884599821121776749423248373953606773585029855337693889210068482387626281128578229991632496216322193471604214573678486839405933149225513856996530942292928085293562105981088796868239581658356564703206670271092609474948487011409051896267152075195983306665637881940617131337107410393157958836526892120621220061187636421418098279648191351918186781593469130572136312905189598779628617950117886297134196074914549804803873569441463544601029214761986746076839558764622581592736755877272912347479195438489366600042609918535212324976526262653161350335531431058900333620493732646186419760123564624547790248864232897430832513447754648057162504816622506212881491646311594736323832482803656864778532618447309581085769951403543961465239410753569681477819318919733594308652984415777266819257833486632144579553771023091363388529541376742187262277750402539046143843970989743335932496079367513386852306594673660895187004992958253461682106791189246059241367338550404065045117807958654355224431832090364692751452013104648082314463994917208897920315075519750341551350472382583546877517511292042298708334797790787691879260081469760405025845240196019376194533442213212093439050582735771594550355090031274004549252953129201845675439981736419671451441960291437782420074286721188642408658447942032415139785546894008012942697589648978135701785488388537736488517630703559310230155666936780527807978099455269681402522758465322941278013741301906632447760750602994457931056029118791650488465688708333938636241428444501630698024926125795174538029704125712833470164478297188011001261843177113204232185455328874030593047850688300336457803120915714695053274027929356310184885678835818377449737517775441101987285141639282562397598646624130731376564940036503606804605950536643437649829366628875242281098568933620635361789450123213086517346883138632573202435525827545416721678142743453636261509544606638600348430516196261625191420692112728876735152327666252214744658675722516043432022393465112140928150707539362876223275740568339139530561951772282076712919265189526773458306241514503756693090788128147431705093333003263341501672383119411949172651073668662353100839605446977720935337629224249697316660852920971578748017589136652634415015865995921598642224291832810336730533840379162232141339286010772177449012429490347850040271199085330933057400490226792232102024678435291207156060499114759875509095245767874416867519783670520669147477234688184657197144347568953265487929796200903834567091379086694940854326277714113027804513976069721059036591298835280913799250950713220506109907242244104101710928746061944899944277529367865657573552321362002927407178145419454746406060908933366913550569433434084614577705436480501504709274160816671359756325528656898964620916792690180448032998128287895110978808812007173628367774384214345066574574200072293128636539454347142682554939139583329837643823803029084014550858061644925148885800308687469938614562113566282050857158783330151408325020125777497696709586032583984331176096790134902053909188040360044438092503843600435950961532216545339336187320932796716383838398543245361146125296142066768310567558639513477350149260311463911857404335028135097495718505199273795802115309039277257321375333261009346823838802767456577115156787062332229695755867159243891841825659204677628079596310330781980148684409045949039239263909420392237301039954290218417826740194253657098940640842531688355215431195400207093564704370949219224749563424923937655507428637852313708793410837971917455320521054045952075162184548145771475609755633898032744655515529402937295748799694563023221625754454455616601310520685042450654273040591328067078755007073629099721411930693741785182694060965196377209863789145056291331333340589154730697132060087138937422159160225982144888456913663519497608568784282178718202290993751123034407596246873456187463980775315826285481605572045244061414571187814690118993343472292859201558838908518942315678596607288062283694582358018850060064357812157442410817995433680806227618095558674704210688453219791253940356278267018690689782742707612791816343520738319656631950260897139244719360125002208877077139091646344400403440639755554639086487155310284863190704647292395067232767258506864505751539438451498580533610610279613075893999077281624269181613558312491468942801310732199778865694784127092896440800400727243280347488548498407382899371868095068744958498082850235970236402368657836733156549578356865656503074832240718095023643509008039883825103023422276634437776092495786182756176320985900773887502005818714637742075228584491724602083277372650238168379889187205355362480017677689007754830798766507049427308317180384385585767468750319459931483286181844168089131155339034313198244325691303378096290980008205020251278772138478603899038527502938209610831461686009049030659536686796160531917000759320761112260824415899378182911831097555476675471917150198590154734201505989222875601082873048287040153051955274168036561253414010586388319691915918549495007254989290317700269300616589492383737517358151063050868196553879043643585052556076165492798215343597115896121414548771434656532630057364840322956432184909334018460734111476520340091680333972493933175190107234574584480452461305310966898811913567539743706983388879203966873156711467706959382585695536584513635098467335750932408608841425046783860499057386554036206643526580327551262004960518348337103436662662189715167544490969347551303218747990094036592098740177484027667383049712094377244196013726813998923002647328244290485358472138253105288999101008042711224511083404662189350303861615037881575743060040475003542435232420321255784498820009533719226344734027074400167540223845714303960175897789036633549868785524501119411854410059471146102489297279782520867389513993559070731006056703166854798057143493125129787680197907035842543035635959143739025426610049311544421784410260538537722443040929423573737181748470143626469743738668937561265052539225985953475522910894978036288034840562651785565305820351717431233222221261341495028244807835801281414921974714035215541737447862347195155877783943244150314221386083872437003559139218711893845544128778507711895505442100345187790758620293304500681961745224432575530533276206186398663376834074325060729753492409970974959400102331715789559629554475797422694370947841902715371914068412828585887548080231953002908881570175403279566502632394076869961977003863105716394303267184274683226363920747602678056582070987865714434333119670480198622541489775466497528392332407550408756293768051520216645336666065863335566372635827130006325735786846740933178270874125737333319057435624904874945160618290379624815360275211183163423074015682337476046676299348327402798808657758214517725313645739963766897085447249005121637596227411955162425157828911093574735615302628676962009095527623551834588106879614203158440317554093884927414685688050877798833623264392109045679516148140532402169689602480730026130770285626598469844238530364711786756501602566475859041020023917814948870229909444016261532799400708766583050566472302625594679503006687457654354919922560244951853224978652542464438504295806880768760977100493489791460400369479723734775949461166174116993252384532603121065535819941649471992466049130597718004183652259855731836402852669306753046414109417033666032242279343857277497185592306224556088452401081707137137469181321606515638855378845905950701473635265669885329729700363991544430243312848906983221510856635976894143330847933880287477118912584116431571966103711682068216221010006089220882184641210261624366823621852027343915675460497027952666877768969537400255636871957894139672371711001523141907338657761138701121930484311643561455370407421686908085435924556464164853932962196725217852851808573430466312791848427474354121577316435252308960829250096205444211937711598047745700356973159717269157884833065926412775220043393802001089320191930731395219776622782110890945076012905443184972388592848599681361468514816758824222024853568242154357943495455337637252093500826296415951484933917268631017584293986857404490332099283626996587729188436090330075483332396958894901233657528998778778278679023272508341783305899680138138470497223117734826266323776720384293723256505709876420721007282776759577244134712756980158555122866446003361061594289065725070970810521646722729862114664970608404765235672711693566556588207704929374691563978770069010502992801278920041685003197805233941470908631139684528724387861879079257741611218086249049277083362597598529773016676661041506016554197411945787130912132426779400603307060875046808958485366626486230442674454369795634891454772814630589151910281867841322106018868978349345157664611882770087071496070379861265795864528008519798304800942412723274248554136372573189937559750601238319610307649355804029698467966843371882733184499507894311522731437167482682796003521206579227749272364873432801348185892510504570414442225164362160248783223292661624662689920262182447590042700220707398764732262550636846645677827235131917347893637684755740812219783164135713224022179033131808790605598457901015309232820702215668764467607423375083110464501732829843886314581418190091087607972703684367292892084319302128540750239073779757005465786344402013663231814973929628806383939946221587078689401208648868191997416980844619515280274470913500899553259003392029489602122548900181112008396233753146411724991238403211040099841618872803118708218977299672033530281878267505321146906619813265810540740365740657102275411119536412949553913793268380377384933902755245707875524640712087943659025726098869594258789092524509379904854038744427286433090279921647967915031938030402000230440617600292169096624870426756865499425849010660508513087699677132971205088148761618322367993828534451226082957708859963171828216792497833883557630209544067525841959394148795775288448100321192032468343163954642319599890631326829139013245492346113909555105119365843058445954709257265445126907024769774939091232518214536974935293648371656431675367463481642531232942217769276996107141740173776271678526434446440632097132353476529692538033934329915755516735548350217050395447884337776436373530756007367167366980854905804208719693317495403175745738461892299051873245223343261614166518677138481399087125279463177899624234067824921543762174116501363030328725297587344606956004870874374654753026029863262443008169349173369030533825498700327601149160184856384541192936742742678284725298754825847148074003596740935655173407146303480462149513475698941472050747744871076247077526613433070581525428423450830930355466483667170528145677732015540385597649565123253594456229273675376431702165801165970592363961739645218281261705747621220355013611658447550439971895722810351383993876771946933424099498907457968281774629407469540845098909949682964551524542688152851534613154734353807492877859743718097058191609797191093383846374596731574580342662908912714325775848562421843082061794840481109756992589039815165880539256896938854662131360202087834687141818883475396516317913278852024697997224497598182869207812160464655189596509104906772113044342070119671544495882570607460623216079507598706802527312640416219266446052101646134785707684124013655635690641082846524955031122469933452212325606565994104957971266500877845349489408892708717996037686318577922628846651739500826889276235336005101792210832080414863236398770420309912563702499733196485157943076550759095012777136488791662541970548543434120626676113120536104044596277274546265632709387504736034957474991371045290593018669790643658185787541689323581413166924614556171860145210898045014617223558736081919085213290361352868270833559049944964523435765589082806725298533171736610272721619372495598534861243582254439682223806405349712045526576150329959605901476444228576785930198544188833713256906221047515108421605802082671620826664935814144953166466767544296870575812596451702474547334271763150421159230023548031355271846856314583683057888161117691326388950098105061446154337508990171598235087908946571824560127884069335370360142821063366017035196861056639333798112508675642521478829424147033789644653515720374921595203920805927289851816096185815696265768052523696173234948161797013196696222579675301586991461883030543853880810675296994395859989600070459462524014916746278896443948238685045574419818636985457171333528120040448503233586471027877619853228154304774828685177629580618866088677935460250511885334349916644154393186767994108422700915058163230052871233159604304363266218193439660721814575679243425414115990215528928210756067386198746150337305190806233953634612457766928591501041354110733369518052337256514910017401081296106771664403203285371725663355990802765796725773721312678940897390928234460588964248296471356856082006574875387157177100617921729224768216996234673246370984316719601651314149879227044289014324512904904797110318872891543560566945275628432046019185661229165601653316391562057534165749442366926397806086444670702874184851323785500600072355426302861110632468540963449220682269165998605386938812907703189321035492593190655487800579047864018707054998381332110925753721799076515073239364982684089834745737846616076051345520663862385142970084765629279029410339784771518352135964654424331474513461580998796589428391438301995176085647242044061582610164188126113900388042060211333432699433681409068311487455083859019675435641041379145238989265299625072101074043391061724619586567635863513947268720814103159318065794426235331559201877623763839877014769305102025633655686946059557086735961368692514121308989558872329783167272408114157163958909469038024674939533892026453786943468319431331460492100336917329840028296935109268232985619776411848967351468182970720321243803086278401802057047365928633980040543286068028052753558458673097759895445295139969673723131651376871879224344165355302342369266167426103339886441927928898168204652885523383395230417384992468122637061072200112715834610625498050810439855356014941826141397581005505883645928484475970350168806482540821439687094231602288841959593094231548517194596605457499829493001039662977959738326839584233702733999502843022195233682848708722364231117492325038582879027545118549870339066444714720247889524263675598691144311433992671545440169193782954795596196564913842805810404567020525392045452949398772516920122710171978485976944281533639414415251799459888387607181401190334157133372708998187136063844025990684017277013124133280753115090153595520311192083786062890748226323773850736566645216553000343910121841656061931407913961239677218744969455336634194924259744017281825587033955577787200049315639197287115427468861779806079723227088706726273256145222892496910064307441938431337392392258502354300257981111006579168848710069396554896999709243438768278298332858669112446910223689624807623429444268796893987994911385911175913031765359088474237309414174284118924351878080320838868665965458672621092414839835084261110411339593785304934627729806554933572802435065384202734685215486588748181728784842609080155438509645399611866764864233054151414957237609867426765444151615442515532474510838398060842674823166613107645371431867889171946679583742106164803111072249379421119995994086800993658915625014241901794000291701789250632016267378238606310368344083507257392959841896690458142256969315327114332274158838855494245967472884599254222859922867305627162202711096983245628889386322384182222831211391077060151939092855033918378592492251804433615200554827884433479760219315303241031836394808203273093197544536583681822978529831412104896949108971560618853688299217882911971075716242694847645801299248976747542164249363222027711973748956655469096383671811269972396849822780732742502861973527981503923194495434776967012497210588675666738546564180083517049195959070898385179347835230858076495869778885777366216541948204001011832628788407072347769162737946528684973371497848180653847708415148460637038387532872760308180861074930526232768613594792411230441171564678709966138749148490812904379744069271988399560169625176494966838146357288119373573553822843434333463507582232217229492892378519662449272354355476908834269409293211187419204341442804375260599042814570457379976147303628645943524544278072765870485015650503987211183867786712412457013748291123128590277684840256616718727396948247383279626785275851771492260193378227331010611599073090340476544092970057152064268992645224838690154746087490662427891177441250735725664506902462875891636297573928532944029033874387272362517736909654865835818819408419723603844324842543620352384611812563920342682441156897177166222121531710200080331435020002584853839364838220760642095691622076918011453480774167067320458651733547245604973255425937936209154358999894708843415257818675250758845785549270657077587791303223752145988964523431354867329890860486169288365492474415275644157104680518477050049084272768781850716077089553644019880631944046965842153115444332328740720702824375347202890101988407655101160739850437481263166116135050052651952159498868728489236858736555380072858162921695338120863978360678035712907004747105666023837700271106390324396568458030741163225222489956850813735784715854414051308058131040919907301705758781560782471836302529702098865153625418171551526462837268968836659002323529765142184736665013091386638767157584834554907430919259515731692516263828524798584258181955333282210903598868768528941178057008448696731753433578617320828013578171071544334249857128187416890144273255033653501794362878799236964609600422897948607359702861010184332118652265088294144429302380131551400891035154091991494168478275821145670487648253436759775417627060848060970831648323519781618796072908239534072734416922782308262702958595256303230048547464648627375919391727756680106901998295054792890854919370777412772900920380297094014928584328426986597129364423890271725253599984347305472322991825823091663537549808062065685896675174202565953481635860987543812131330761542585866730752450579019391089694121178813837923367159598964282964495913665845258878943865369142756169418372106480907323436523041051841657700456662092668647982413754520827710739947821225005465300209150409614813405602969120241305561491646883024276654604846115579572876960943221301639250495183161360233394679053963349440996823553284716554459541282295753890050595493531654893347029461565656849123536848533998378137956208453905137080578538259039471800966676151801916368027887256799458471681644907409511736086175033458979863572948359799251880993794498911841269114350419470707444129297413357597192019049774974266177628387305463189232761623250867466881129892580244858448488058723986358945066417452805126461194089101811981829974947583301511532134118299456337785247968512929080825011050771974467054478297081316243330255454570047931057436036057798704461151102979049608700169704563384305163350773961582789954611439986358895021869187450230599640549289162374201215989940311662776292461497694362242064767301199093680713825197113776428682088552769072322571884220499060073093582575045312214831757639462170567171065283720741869925765806762577243192779209346663137720984919634554815516502893025655564078155370164156976208868022746188999291904440046670917600760629884171248670341718356634296720103248040861241391255068695005406453011016531247932394389873125847584698552967656480968274937634985828728649623281863226685306393889415059164629720101073784715974759342258878184186117515224902830906249916198867508062192609922953248409260215932916465426602504769032529171929486753122494139431577951280781381720036355345372638100807282991163597409372693639053882794131874412829055888984274908492237905870231893170828438108463764522562385115028917266213796438014878406504060860564603807719797238354371497823892129778934366223683032428584605824969234369683997549781687419362312624845052821603478185092318345836504959702909348294510430933092964758535001165213557314274839304877275400921461615911241238226692687428312310852326254246327508490642077930457035564213827354414443403710532806317493566541671057464636146566688985897940189406428553564929376774512265062785661137760514468228111059879651912654617726626614118099761482412798042434805105780958146500777606060044543191817459769246855548832547676086770634132738672229472279479192471710210173131016239124421997979217232927349664835289253722212829811397731045809523453217888653986042145219619231278743933416619918110456789966646306897479188600809276292739731323380869116250087563178931323144333526907004008973761227803969092822836000589835028926401734044044624936045421024030204005537295123793127554340141496472729921174749394934248014085276778569262925518020051977457897579700758683607683613694734778450327929030496289033251037330424395088753330547381275794787537133792370831381636219599944259842591207150605625295750333722419461873304358679724804774882042866832777039568305995223693488502732736650893511682136575415578147051107355762612478536261692485362538968737178961195595300100288019685900045880609122135026687598502855042583027198142449211709458459979777061756018381181567611404477176495130201351417543818964013327980883724013603123070352600821029644746654300945619028266276251036752844081000334557828498782863574269151501133337449947787163252094241239673645257092084986322503574274964935909375700118795947115423653549978496187082740835343098208055289911461781408058203135536534033849141358111016684010903734805544991515976117375468704350535227350453997253202565113471774167656596458828294592246978478742689198896147069041199566017685571784041698483222880076360349661597899015537414121078295861138291074913937993582282769361950275770785762802499614597563571364628528282087388193599405176661946771899128330633472024337208117279551934353277533527443784507577491815714485863043855831392449966109212860691705280353180488609594158291990012920151727722291238045444629066032438362915897583022019149980259617719437445557157228367631714269179649730086115715100019075903824291380865586099825772698930795336783945747904213695599320650338824084719995989895457148091343667376868762480978535303935944537329099731783784251234698580297225685960856635728876987118701977983290671271435815465888065296956494779650526568140109640645834481595963685717314343150241081409799216572962488286878577305534251244325563009524419161983160981023106330656776173152138317171434093131126642960808970197997416491154411203870542917436446997627266330186793368145808308977726791137521024829051784601973147028779175916498142362498826839978652296750858115603488033635597156201280339318908853441026278253235790747581138459915417701674503605495584652910430153996841975208797312387314591600031816862431147594622384146287303559573403319100015078038679898925827244028586043050303008752734023082028567524890308806921484061621574813091963426211528751644103932026751236745329272695968315791945704817095073410127372568778221302681569215945122710805553595079561478984823067882692332133610177086972331825322126485133486764333308274198848343785610992599786613594880215516676189870056510050299147384902264880428303842804848205194270383668390717125222881919388108046613603687903669391165468338311375569415297151430318992595386768071483492268743244981070293492101216072114131887764543149278076657815662151040180606606221256947706080794506091385783045970928622967386345321950825049774743578464324901404006544403170198459361144048193802855796184677062624074096499073719112483785190596313802737439737283327728365570473771014812953610390851133886583920133761519352276238391656558916371094706837542115611346973282452964766316371953567871210422183916968419820899131322198072026270954355852368728996038037659152119967769862892106887091909063036577886565649959567243326320885908962495792402144069594710521641688258243072242172860437425428023145887958804160898868023841644062079637695074439641944994356616751036929435240471233722397368662303901052342236468137471064466228832347644671556131696394542314162248645573448000156927550282883498887380151480031501017474385902659557152772162856879856308450681083518955713154415821372451457773344099961552077461106763250694429748836138540846699800635070569166756389535048163438895888975798156846200816791007466560210782022698821794380614449296640664054003249877630169272822520815816096899578655492762815034006831803371923453618443713984739559920748253721048200362629226747100991832572380110049462361734354881360452088070827307660347617694371888560826056677128597372560942975683179743213014234932059341680526558351043486201412595252593242033472658795723335133307904120611652238073462926194364453946218893172218652762304467185507671720269438361932384959010552387873214096026759275237668458215574256936646765685638538522250360567075358262431242535553347334038838234175813815198300926263365443931911129394986512990362500842959646111957135688898815395537047597425163957866615999678626424663753169271536090298764838317746885857094769551619681762016985452207316431157046404076592138869181722255299567401450870968667736457612741530656744774758942037793022334945413480652795303176947245785059890651425491346293460911860609477584488204792955446974617337740674942143963618829878679481572034780325099047685433355810890781002676090503194623101636288828904921650237218340976390918024304676297987188973566300564186714700729588010251422043752446235359137398756529495018960056665297114583515071267601237055786117964468422215951742755407691188081777067041399788096182110731036684881162668615636967773511914704845951840305239365661454943891795075395387807201881044684855141450714310503586138135476799397022258036201742857445452980496196744515917140303370774850390210963621735695877321499043811396785166047111926833070026508488498480445509214929465026954654590450319092462792952634248104037353316367265948403933292378090042783271426767379426407995110277168201663876201686152280518555502828363961435239141259923244824340942715909116682852564424934644132053314598212557780905691145213213239474137168484985037342331350667407224973982142511417182047413295691724578653100845276372436715147864672470488189922349025662936398378577087255373892960781860445132352500554199379816949876867019107455420208280269341734049894223367942866150690967117212336061546386539482464412303290706055150355956253065217727931365062392931103371599289900655112873037024076924648869761634373038020839494619525721354010625869756217881647085392904840849841353194345466014433826903846021793755895913470603000496531743802003313924455716971267017569193260955184116963094552239821618286243075685297428107746338077848434816274303797983089459550019583785174895600317216057375998904081852593082317500659554869135140272419816279270531693829883920036161758330685464129824046501485742240783989510146983170504581721040328417657690283243972405177983409297475829826462541293914881467778367367689741392414196098381643378631592778207999731836493293224900121501384832632464514585490610777157811928449724120389038504871132363392112268074442507936004659063530341970280769429866794412662854411194304155995537087975306839813669855128059415436332809420575913041086855674175163177079186980550226267212750519174139114858085585802700514446401979007047308389722753893358850006162117679972487304068549966432456185557126654922473959552340029404571567102528270951094428870338644915782443142715917722721860165667244403162309819186186203873493243283871260476038012767360791550162583978990755293446473679752479436845687558462447802417301752001175796543125587301077431195055550193913535254144600026861838474134005449721269580037049814403366951843463331724542293172454363744734787970334140297046687068467441695807695893831323065411941137022853476824637515849376780520684028442007687161076696245393861023301599813685069663399383371586201854234129204593551184342673489646836600791336599444153688995566655681460448304061629476207974855024169367577133380500207214527091691137057687873214047032477389439969016646755325529456338097532110814624550065874039547266525526052731547932151049210310856779197667188327848830286714305465770546239975826167017421883977824343658443015871570707680132705671183978258046258728854821955072174924432340632647723806967925678394752342846758775978128955320579521868473842982711293687410691669011790327285028311669340068252200587431337366186463772676783127800734377701451202093726315879845807517693133193514330819051540464836793284718920454114198699934240769977665773120145471250212047981255589744702556895540933224604901636265494462828738973638229287194971546523304400493024104418933815011055007723922123217953865453029854692336075818839498199351883809768297878532565596144201373443499459814715296849647508920372161653129463687969703487448362494564781115461499577954593016606441028998698377854790636514246286800909658446324643290706343270118354273135790714516140925780732712587804537635385877567440316305655702181067354050931045743037238359471443149795368769225247523887386260680031020990885590421278772973073031835518971831852076917093481175734434843685300740303500085980704200529966230144091951623261112722687338473616043874808600590522963102773149848271894520744854661135986687212998735697713940365047893325864727254737120290416377113624421542304936343118728773442378935045404157578366320055620647470414180619513870999664248049229726387752511418246056522430956448499002004067838226791643479442297175300810146324921242615535455011220508143875230500994544141909171632762050397116174888781586596262086957205195458036005129951219136270623726137946689388835959603086697127731783443574845404584983950650445609264848090274857966885569918610767305616684079016126034656976030313077861797160419363810578232598945871080516424730905848845680176905873920789285239312621484853244559981734877798346018724762456763096162167499172398150754896758663993855909497435458771694149460763558520171359665043946596027103077360442364319227494464414417378070185662040885556980939382137577728558932910397082273750242391414689296546435344562563104008892216315545186827832907697443448900332169916999169858757343699211579966988469483890875171904955669821580806154259944559613749176174402220544151897921885219149775119838604502506993004538571475457957205899573048134798191045226112463608423299597363557853548417562686792413357947845295037472890609696476330177123266267744598359121701823596034311516866990306663217581430922258697694153021535784788396499291003983000628762003056574508141815158083946101512604678480856538637761475466452009659776754735715125509536864921752955285159696622403061925156366181157806281900023013607881910785152425828988253301342788722129997754690718238751546109587319858014934545433155946957241010389403696318423303622715627292546878008670331000104958646810693177220258759328751345346144813630148948541106938487773838623354511222477623541327738139784978133564195662225154351141741996738878779097338218271649249653594751589972753824595048739356212170116479526679992966419516440657362516132273636924453881468738552049556393003499541350824338992733375202905222264904144430373452177720707325094633389937556848718543174374252293733915316843424008352275946964127367056131583050202594847534386777855988525902671234000518023081668010917675741319974334083341000244489247896393958166686228607872055591011415561458139872985798546580757975413470349032586752002302365634536907551584403071514859807882887357945075622792658708896811023220348806022526963195176492724220572991022860480958689520088485743841760030350044731700343865117413369040505716954615991301864133487868496099516353657955993073875320115504505827897991643188125029007761026621833936873157734810906492867534986601440185648886588079519080143587758594017514483160126296455799180819313539800324739327652925612558583383813384874405076200291384577281514251798862265807761839889500684459453337026196226271920623829722364416339569784761263121887951330722815015803989725563009659947971772833048913100245911336773087143160573767640654035289328403555537242862616627558711986316436848824934125866081649851754431406929059921692743728059458837261471182471313936889086848450994971901403805323400027577359310074201946562359182388383237578900901206827934500810335964206353256582384175447987716998604429897664030910310262231587395921038088960893172343701531947464196390604375933385281490862310412985530571391605054319137341056221144474933172349176790286306189462280352853023067807822052200520638120740188650788293364826257368292487900119689347692999617501068831617466885547643294522046493420199137620909769682026270570493806623032132392739709237580000445290277743565372259945863414470813604367001569686479366217092126141755893850714815741787075740573167365163806389178061359429564446568215384752400196178025292469940713403494874093839837511525888311772085098404601320049652533730065588588010198494271387896163583801371422183207354139860148543344458427769223127653857048670831567955126947829247541252089956834675809255243325551750222092980021428860373831480225642632071023486258476214884301824652135004682191908352101949917723399468449036398173126332562038785855298058148438711951930458182063685663732445613508590215643815649679331849102141955872636583912292538994134918012787317452335166752893811587454709591564310605599892461955151700383690026587605394315016497004808809654708948405732625178166033103137045521743552820839120188725893155859776436271928345896163647419910956582419159344479615534430415949402929496805647429996570302509738927151962143109129173243531841768001768703981482165572275374571821345431307814990258005372058810626742782385026533067876345261139164800125084188260703690626651258731027328262713660012666526227629208205699060347471987483658500250637087879050414592049896891759642604124348879111869310241567899126349423550676809473427355440124429491524975623788064687832825274656049737407014704282805027301449241587314552340443355505621760080188583760761156651094564823446300976635979677665435209939759116289607178307212801500217158685038380951290276851058692442325159797522136568580933954431669362512360692253732323840323614103684708504385196265293757370321507705572300135721841022102568821373706445168458026831339224965209531174163631884932517839864984663543158751416621459190536399468637148356608578013693932566010076484825135125116391792652003167838603919508349493045170750392831297076005546135292346828698868001519257212569274077144545601070436580143394415007452299775260046182191053437123169381718206656241537926851583076825623028698497040258563826896888327089141563395034561147832449556542211954710814517960175606715389370048456093259774392320323560864058975048686329480620565889604123882369750632018651924019797414423489456485478416828289376767174187140339192982493670277073641600553620676349212649014531874132836961216621738484009715634300135209518509693893819387567967808527580971004098950784165592778193776912075920932416680028874085773199218415802602838048583797281715622953347774755355295558450381239488610741598168937929564460813050916109519651639619774666200164196239830628925363017425352770677022316512156804096509068894872802581751984397979064308541603250780352173936947718307942322764925407271058186411769866807430725570544188231655231237766705593512938861677908796495909658143843798235801222846870964828383857122953368560800196862335576533750747915308808710933618697575068637160633756679435077155391688762452199121486988521030249079975209775533431558704616446143791475499244039909551627371622845272711538241176623771132384185800652585929467324322044978883747195697689074490414827710006249175927326479038908160203516823216817675077771705834632850038531359751157363540315185193628461927125018869329080730957737482978166662513998733212931404977249340553294996748138766289190101347168974608070214051512784720618994141054195576018649960447783585033171953097580800756262329889718868223619528676826978918357944467544520381418767016679681981216263451597568513321490742092834341115208052711359936290269285840965351042992924114353200689462250270755171299907473778957861452423667440983659195584456823669340910526112239267181737298159609135196504121981304347717160898002830216317936715017712104756577507619445286720520191996168445579947911854888113160787079025060235487575733541801815299888299572386642604345788203650663154052092242033686474034684021355636139702549002953154591369501635314551752751688245938184989760916653434833048362278528552320734845977774736873795090669193165499271590100271908661307211668119012073626848411203165659329401671859028397957280104651266169641889011192239168211872627950020592737781854440018171639964074902342620120465473309225011568652529641020115422242011802070162490882005278987423955752723621775441966058980717987248710401031524388668817063793833121893573377662118442379519423105361620113388266272640063079711234887095361740706326536249351971517108742249851458980962735504408487280375569804665294718793632638314598127119410277528023318241940246911330803663065655245721950953291933002948410513200109525833483205022967184224316078168635884609133206497826415258865129318991581181431590530180970921696739142387592729158903193834085430142176027722790083750302495987691170127871673881244201533433252366513477238562716775635798989920879132066254512664753967007451630845735459050697702668420636491987519642617101856977893315921054706783900563244730645505531716528272197498081500143458865317684838969537726173305907351726849766634749787281385530078365970183507516824692669280454881719807021117143607765829799111117663566427377911392007238701692158336639627544787215486720414028372442259765754789892613189115466172159450998680894981288123761769678261813311452047804440827644689876873816390714696118982410249168518092258369285643557676367226785330210079171706447464128036253295272751509351049340696530385515639368170256772960653255705545977259852572794872347155512932694674273647473750148404224552830654729991111766752772871958596617829347106764671889224068447251978211117137357987311283749244952326821235033104090566821419264456956229043693069076399755650359122566617235333167185192872059246462481644122058527730480560321051604591782783869182640639118546558772059837936271753067447200308976274746700921905744369096777360301575104024157011359269593337471897683958301082231901684606667725451130736997507770718523710537012432639539592008467278498820697002621275182801373220376069522587290766831601468115486870802608091139418218010913234978655406861464864575725753245952041151402496425747773233322523458450105243334236288307066399433488131416857193660001777886846545755592804592974304692304144792595168940003999822814375724414089168913923640221598200690623840395844179992607533170106649435853271191845137985438495795745523906500774371614793360663674601653339355232145059402032142896257641343541955844597603329388841195304651216983235185835854697433537916063950338888097956104913403285392178851213447399003191380652491386873856656801157746573309899102488569646151234977331496254266775037961828138626543992283396291092206583701636904125594524295859886597112275075280340911525074063885076240569465052718355483452287081497578506898493158570869495094485561956219836429861288178800543953887608331826467143819571026411226671857308105151552755691005083870002684951290701752311182110009457875632741477851034879127548764045746383265944794430758312559689001998809530878320850122573034912763414567619395559251057638477988805020262467662462248205254297674088665453500881093477272999545127799336598963563022623011623901965314376587928357321122218613257103057186841881210006266561938031084695797479953406087711969210022420510776314815603289974779387041323586109169626301885761488171664754837553976220236445915951854377342544485511154891019665325698939890235806618745017719133500608309218985908890281548825754870279703224131593175827811382935735424142101093122474660693089650687776560960967619199680489983184507407692301887456488624615774315501399966466480584905646136016196983105866744531530943747877700163228978050560174712347082993307083256575793441610226188926793957125600579359593357313812451022607247038091069931507773966523412180272513216394943287059974783863134371437527967504121285035424952887808774847882089460583026617815837002993422729541119548107482203510060705160688721921785633722330769272840936177935148866419596161660651179133205894550406983359139820457756870862022060168867282168369604531705920494520862594162573748880388859865578941579495040729671004958612251787364497173168098876551635400370605413534591376509968742915446094437228780522700999163016173026988902502996243044723734113935255595658406333772291747592643146790275558136257601529863515806114486950020150400883929035327944225886565299689865197505520623501835912993906167580980191318961366191555015810543998319933948745086302565519703232395869845152064352257779435031194057069196687093512886883716617706824211418583720005271509784297974517706018105556739871571514082800494253972275440836792293578793354466373399312283494086350054415171373597511214158700758423933954854106148098851976947118121545824398643274675161302725322472530767565599852159517585048607133614573083631509310594534626813391238036671737595421115517058515877447506600609483488895538243981452226576073263154043328935891734460513938843400742616498569704662516776063585055234642321388863779809268349129500432152659807632720820848462314291192077565224170145551125882981998585543783250515077986349028669229618270407858781073117426099942652281377913285949309734342297120348910696038299631548936040721546996426090632400490909898405631302077129876060945347325913215593895194141980335746078147033382267147622007457745888154108022888962500228820790416783390712339850566713883905741555744937893265016420474101470370790817382074798317169421787847136592792920622372133152882867559177507701482587529341643083385419738416969584401456535863590990868585707201318298617313256659872551455598712050226202153310897526748494280824234700802473691614923109094979038834395822677738299774947800815459836040776026984659441429502449611966234463257762525863159688220948838647049819974290064942522017478215437966131396310132185656793441558206020159037228877101821662809820205497417233114187213055228429760510925053685425533019928436508842624987410717365588934026333250971242487277448232967654452594654707658274790028303092780099073518734754107996616752829758479949258123371665412711959393372964056343219951127851887621756700357722317779065779198893754475934156090220413291500274593142202198978059015384971476961842318689895010589004489889391989153987126871469642155706899150646806982542591679672201545906521139806098020528191800803650328943527710050984329847514851632841408777624144839157147972211917489066001717028689521778925973541649372104590421096284791531391283943471896473435783360499319513425074780296133682773446974376668932061949146719316071098033543224320519393701678661737370761564606633777643840311529445654626010167249246469861197417658431010759501146030893318073941664685545067656973841046149441966077643648386939453240712018022217384407597230963340544147155371803141622129562379489570471033169583584321975804474182620609625610279792680333292642978141176803750573654082603256612151428808454714539081610028759486487798516499315436746211569055350053729661888776576712759666735387020550894131552448550228816334684534962783465364622145128854898349531060832388398274479814381863043041937797386377879264950402373234351870286936446759987482230371113830861386352195884799960380775333391479715053854579393970641374928416530991763981728699252590757717283024102898493055231452977813985161735442381576074348061894076144355525466009500351854267783968890002492031988794067346878491091507833625097285070182583693443392333450799524613850762913541561344815254089618110252522759264574060017114684834613805577315522289984184353583139640191276334988806463944138142359415024175958775020047392762213653992348321599091140148950799390685406212202346334281297421742845859300008467404081036843585689091566841896390316800674359389380844742779609645371631396599722949073324815602052862829308815623795054688353871277134977435867619319189260617608138105210861950133457770206191393564182141691916192382684554009083037115567559624697872459129712134618166277079325873802687021716019543681765268141565298039726805795891761261247039414246916062115827606929369949017296830412402353733431403109086586492418595743335749591625952950153442057836095460692649272089895462392979136101332060430035773986857189701556638907933704998917081071639290350358020013547023157125711742436524936392535215623488895423543995179461570495898721494928283411859490185139769991333612940938681977124036502610292672311822658494300030128348781217283407495068527819045553894030958354478285366534307439166278426115029324564712606698433363890773796940718661592044781021753208884921562916593415385952716814053577517753578939506686237784780117184111423030094486339362345746953444971397938303891708543435386485533827446906616787113308901397164434147256053010802971487079630604043801436900051599414731253319949423531181037067512874711994946702422450783780418576700597034995353551754916219947026266513611315990406645739133218337650591427569456580234444297548537135997619115785261533493979475204102082090883270204198034460514065160865360728084882174904752280393903850522393622957650879699028297794553081962136225097394175487528364850158601953361307050560955104765531714981949682965663677651357887797717560886568822139329516591477390880207388263066568945588138640982922982984097965975976750319252156494501807592762394910533713831686934091631547420914269534248354903149190469703367507620596560786551058078403653429044246990893505880734087761093523027442025440204411961613194105292985062609460461420997474101485885783862331810509978375121796033373322903627942899433346581747358392958407839457972941285341439238174901533321875643745519472758476033450824144540264143979875983816964669506216093560632263776190618303083668592415651048780088077279648580269904916534143601456688326508432791876748669347634348506221316044815875629882992072296616942205066504088400403651934660478147296970328946258222185354264337027546505140733558421798833087365376361551004659161629789991498355300036365434277741421991536776681553918959107728168868515816061157499185589722333345536569355484944875723173810312349477532927587558123584175347256717476158214671715974345277876112303996711818029168850132572589742344898988842964924924939947019608167978254580146718185463372095774028464974651529481601311459026919686689212985408662009087200846814166372958526560795624149879163767913270381591058657892529163234047503502950517740785192813105414667559904089584014170911592152723905247858285666598927389356570404358105368324969530322214314436089898022857461227150221454440351573878424956090264030315717231340058891426085807037256519935350701662902349887015722058098630293135558459898467215433783173836633446568211615819965300778775923687936555665006576103348152079113967109823153321955130395412372516084649911456998795183040833922196049943524416680821253468176504261321628095434593634508687752466860916928145607156979567129258644187882110253834196646193089634666866329126076348759753591596592272361747485743226821118833991343362570335102827176834910632458432958000948517139915109461369650374376819493145290679543531756564292724254860319626919953113707675373502396834326325025581823708909610690134262463971968635344572783013256783671895899568850778473766944939636528619192628718812960491514364630337503089113155408728811135851249400175712588246069947388584096417630135212624504386598776586566217441123979793679890705336716090658175041762140722878977333967553396875716430676622841198878726938461456677902572885186671153397062292115015161368514554366130028970571326940523492887154675777870361288384189714701476724047147897434123726185656490574490238570447931412294428243764624047048551661077472244659800903543535037451599735723158028757219522238522908224319787275038090431697439905964866064458061072994490980399122360135287563865331722411224106959082537196517680533748791346411990396589940384867709744800816528565423911032317909705773782325235334306362412933828453135226418218555827838603594895143817372803939820032989529909817909109770024336589319721453940934863030654271207568699387360540872798517287716663644672122983875504903158434770539152193365303775487998973666264882682149497914379991065257094272002169631225968596924938732126651581492630318406323642531285709656086525599045882903935202831570593516248111541592608951816840383544529151023628473271111727249757039582492609774777741166998308321894142911754098171502357658813416655249878801565524731477772908930306170909350486539013588530561300597228062916022552138654786783400425981916040390568362737869741936415387059037622057602310596368244503384699306600122145715532820719423248898059595506722915972709116179530028731611478663585497919993862476006845632213618946961397049359517117507629364987809197311522909142033152787871109514436226858890714662480008595195975720940665447717779144809008551375668842144093451646340044999325349011854147623058554023281804729905175063260405935961598681057915051703102230891463997652240848475435370112502127637843277766558079403762571095027452073000320437359145788636564085992038543228667371407385100666058447277534519171977237468842397330907370457648651178063081159230128128523789064228881701158766774128149771471976389763533949323936350119858654296202769947036763060046351411272510283275312921742854662913472077830343704408254108637487549787007529903825562608506208432245708766069874982012415311427315926738506622296915499119900571458079388051441239651089941144693055190765560313219104722728879937166830075771282246858768089718367181122081384172634473074257136933436263274792898807752620833372850297214997989225297373214646042640791090774382599754250888477436461043398052197846662654498845900242147750425848339706932154582376571327541171320165735037170744986319622058461352056107099699894660078505428634207047366329446204596730622805165530676066673597074448952547070178727308186208313687032786764789198118542954811377021902183850752538069155374947261430994165741436417028315581193635613690405459338878443796892400680805149707171258338825872475492001580391345034293165098979027730467094625068600160680120859966775188660335379971019514523984128358679521484576285758893398013973874563137945670314575344567581784889784672060930062084925374229611852732091220260222678181026728708345769138666719387871252491634276203736076144178526648876056002439487743870045027851586708629074945151385481175635976268001964963975336246650279378906928675809717735812920547245172758470052799943142585370083262107658115100259457969896142774888001615067069874142180198099142003907186116924857899649096794335156139131523678469369416395015374009989729709910620547647756640410669072149291431057048504559335035230967970525010984839872657360263701173331505410084621088930639085905296250422178522398715882258907302391226950141391756371323954626251703626020951891154868854149876035625311469595585345789313035805524997632936241102410327020965284055327056370942553999210786899585079298857105206050746867475698612503980890048797158922996239106236591129702927594466829929829283791538326714059928833036638304515326937309473273808199283954601899940570209824309674830693616736170465860910685713934902224852783285467765350610500040887920249068754081095214592323878671168720707222676267847337976783629691837922810291260206716625704113891395760497835269172501641019506372176629171863997660688947052083269964903837740126485540619420596400721492926894548424152563733086573190270659993285816023711129785625514519604265305794977397994318752079379691232647227049735381337077024466602209100370852606800980926182443012869332016066814722931945275450720992309701112856900076458619304643582296278241123333365187429192212485026169376962501086719441219665743571945100554426420890767896622840069884155481387187443702798570170711456853635410520693281651979825296084318733310518171252836592809385901733811010050780111953736142013018744557460984298751343198695256597178212391835536526130716197776657265461937793409037600970750157774028607505192759998896167484385082721450773079123835308620057373670000022988620908221267127443812797254577015299822697441509569984251454643018577568543190162388638761230982000394653460905997691529724681368241650315779379102946168233308992832007679485646869439334384423130366558421055485153061909410026772836832252620537862424507435469080638873770179082460394304844804921125130221740965699744195310045635599251538101197678495557514507558655699543201755499552295908720926051211193513964239640662090183877035690207170561561926715116450399330808360915780756554216300667939505162776938742178277310173154760331768302946533385981460647252983567873844043129688698572821367748710662564322494081806089717558555547851290057764486014066841503099202123289858210473881067515966905347550734502035756116017626988334375923053867951810069439868213108644499281199862763744279438586207470413831223705991051256717820746748369278124190780114944032976558854804757404424904434330661994744689951833981575205000562235561615792673134194433481072167777425075753893314448202612796048086559320013189004924687769856145842252741944113665479302426065471072173326517710863844929787251458048731379556662502972111350333556937968942240167443881242621056120988235793023306129553917322425391762972516343551332815243433887069658769630536248432492696811300355406283880240051224916332506551075957876274286408492775027324342696096932311966891930798878606178113882063220911284513856343645419015043782514165659890818891585545346378072926556482763122627483835957777860033184484322726694869445565833892835008433146346049317791302011031777531767689269458377220641435552691533717325168913377775429158490340085474583816270391734381147845597605278323889558363224587804060255242694369365069772313615542207682597140069653284166444996489131597520509972371488018120501007983372731735080945487384822886853740281351313016461368712787329821047136288113224830679594650930795473929519107512059896587815675744526160573220010958539883187169306703848169455916044693829073772374457057428528168055518666852376250890669917089453286629210783519356948879848003725818348201922313662863409477868862789080515132089951775259684328378654187211076468808288694457158216004060287722539028539589710112008599412613754787213181747050239596596641595280764588062238211012440742884240107109164493830103219879719452358881448900895002819902269817254284738727480026713377436400035512827337470453866971481005720743050769451943059823427969170689966957234027943597318692769780974857225465912650807229594086940580534797538980263339678643705253309227001693745537099230438632467586718318096310896883205433786639695044333446799766280924657758223662314059555708125511025276690708802840889295741594328707884728816255508951415028535056600098518499897068265231538097470492089365197038504395913409425714995893748980209076133305419744480356638867337315431968309624119403516210391559608928875186659880792271562642721900605530977772004068349423196218564991756245220371111520967595294417919289581235574422815589655887570302133983910210384867694317382967037339251589248093562297745351052758477584134772160642071875489136874553805187553605489110740698216023890431236074357453163959280444733355055038666933867367799374856058281048827357712392394415514343094488540109940899277961702639815469511667845021718565580081644500600354377111948160362654058264436227968550451355205412733145605060771526084721991163344514911372506290079169690702772793605034385379793692958340158738021406637192563757201429922681758848369007080149197497317695253927901199030960486561319647083627638896192604538434097183708605034232225959437598050560648493114946343031132091709677632596419346341944459310878571745778199201915139723766969440297127581078601018009341403676857817908854289307660616454690455641153584044917766079205305532569693642890126840401588455216563727945165812414921370058939065785555186666626211718535608089143947182594481603658709707763499608287642435139338254882144870168446335907812179317059130161607665969448580489470782925001616075414097189909810412717221731842732641819198173667792564904923309519004413640724581419497714641328284816738999694772394254840055453580778119801061738177403972418951257731810216432037274302718522393216949539034479376708161578908564883577402899039065763577636543315992925788384611060743504549474976995003448697522026437355580396340996293481177925442583521317627256114689786251535408112878860844695852621161521010196258070614168983585569047808994589934578183982111851464552762515046135024441020377467297742005877135807471754833145182924151397539264777749423040553686779710149976062423639592875509727600855002884789041889163120858355492531272309121897658204353682787345496554906370679330738416341963669345378663624905336442585595052283193411199183661543349366074840208553204462304871348352283713460909093432850592821550714626066421022035834879897134965952668177205027568519698412131315575813296095767544416477186202517618046436886309494828184368291475082240386862988638638929472963486666710050413059229246809784952107178376857648587598643429258012884521501344234585427390131304673330980780834674764152827987748547207021308770205169166623845127843833175443021405916936706316468783745975119506058362119033791051235415315733402596191111090252184221597318667162525382632828847020004176294122267806962861630224670332910091010543892987843880784115433090700791908986851567786457176416426570227366213410675704979337048482065382163787834683727525789832933132254226157439415852748701964027074728304252589961291802273387922876797371397162973981899299422068642395103383537659229781630246076564293990044210147573340781025763425699766826422496114976987392939454744071874952561673131651382074283122594826643483023980059919892089096657394768396125854822393392267015488984137280309112999315636117969134245622394778194365167550971187025837300081300779591493147115138481581432022439192624322988424406304567766016413904260723703697122712535309130906491127056327950329689755114633294234087538555501473959174773957262404392786147159911493731499239881456947024660708324258271189989038502997107798757724059727183396000623217142591115235922184138942351704939662092993451249576961395306977062196365861190631700570351887833673286583175776029509401368224660266230771502096146682863270135874719640326477778932093011610739168746749826760793874840690116057172137998276017867239145467726058281090627155269008142803586516224527937177854592787922166822776980926519617066083263145271003635413810897002418837775197934716452295031911961359851807077697686286135196319307333122323985049318660187946453557642397812484028144181837671157098639439945639085251257931542274778284299719757724455377257197229860344178287947878446501273423330798599975465940428469260440701112352164430697927461313077715381941359207472517608356835194578521320387937451696859684314520124287182025320531967194718315272042147648262843673098757647600136667316342663213763004239653329394238599731455822110461880490919318931434995120897469829997804934559376354183012633488339562315405204952260076413395536228048173409935911548090319985524175704772035876229830893158628056824609567334574835144904368978400781432305062112029854676835499536331983833092851439346863540171729015302540363871047184812369618961509315287169569717647036853874539222410967013840424552719448277690448725089119111600424611373602870530289964869914303741937103833284499992280450214236742185407880993072803879634183817190308707717599478441060246424300726246689328243731816784337806694641225613976225070023201727847937293581212396447743999424550358387394208288215645877698380416892924971163298917205230043412869948713736303995458539407353019064208378297900506727411782791002916760292440581003978184392978773359195837132386905376909968628583889702971017019348002621780175047784875122676557682440437038166162228073191030826031986511623538296161171520075383843153094527768094612125432036984015559835922795814981340258317485596652412431326134902874526613979902117731794568009095886478772891521495063882805027148849613315121499772718601947152443595905083796266550894880230279920227203930433865105576225454439696622486246352714519669719916513778366379205896038695697790756919563340644948931596333673276568832795827057863717424046413543972456199110720684992196752074651364931070996466246870632067904994634684424576735556368200100890951149174349435463084642155918914742912366754739413854718223735269906875045897558832372697608318851768883675443693846869406855665689194924321927134807972108212217454373091255861554123683214331775917695553394045027803954989852259224120491492989213079617709005507913430223501023478873699560462612302443284895086186964557682837136560495726223624002194731285007118418285126777368764282811184712451437389905763114436456185416167719669577601699326101984251682685174458787520783661728116989566011196846805303211361821141126166320428716232815454965341945616914388843109034984083865835242323010925447117507249799817497301030834462098904774468777717102413333915726455186176091390262264486736153085845614105090230892312485187682642588858862123721918011394366458269033572755136946976733373702519397428030654774880556699769411310856026592386797755145077595501572958674849940819006656723165874396804858511855862441026103629418451558040109858704602083550593458033647512284909670158138328953830730925993945141994730202906105170548109848247338050942175215103543334242088928156352376997734784517956260989057676159792096163298914149525685050144043720102902881607054023495042363522890779490209911149472373131287901191042348071063617418614713469213049829277153349416119840172694024931023028052385762454368791305010766308510480558699063721497511826103366214699482777307804941312045805892990438153580242684565511200637732517919768644162336822530928870209191965730243455588943387536295908981044268054074680739576953400545982112009372798800583658731152321295682688681310493589684779988828565472487624769745795820657217341303004043649960385641568625578354784036393491716251439467931402895411028846417671461959857182099989586947644978488008699050266976465734925240651682931112441348497807762610785603654468758041458350683080298767937843748452360512280083874234666624084307345916102256391228034091568501338435458523847448891617036712714598002238889478880984607957512596750458663105145620881649757577395786654583334229770338394002752244733611821341731783339520879500752935480399801654000221135095302157310879522400396558769930142193322196655821605898062929092125598505936626650101314471673238908723404124741306981314409355381759139172057023275068725513944981599634401866600000225922568716583973058447351088791906017497367837677446192139215366169761656625926492951997750910022659581012454859501123644738287562168048933474381839512299637251755966007201862409365836192543572677012419485911393810643941437117247813399652154934463827326658775313344188387036499941300963831292581866189241678082889258833055938332845147471414693310320701203846449975309320072524147792417803097370870958770485962407742417652438005655281832221833140625040396368257554391386561030559011326169197606981671826688021169487257170832670467759625916714459094675740637996137039094035210510659822237901242253187233281675417167886003303166784931803612196766911528886163193688925405569199440828876899390136887966032063255907099879058414467679079100180278050590312205304426240910917716892604029370073194423973268968722392765926778311871305439639712664874160846265607499214342898322004005251168427105601170687591054865082927281849040703534239696177236737002692709421729000710598171190774814715269623707266146175022951803714374492864806111726880154864148610148321991171686142420686214069197190167641837815722812645716440156677571632092039375413519034912526796017260811324047111487785989625700670994674455861776930971731436982991421623110388977195543052663924035135168035338672549712391417980957571339054186379655452539740008470727492694641842569714631643042963973205942615809964025808731855120574479373508895474510391513922027852210946889420375075667301157178178079955047826276302745848688802126532455127027504738828148053138138114235235998033804099278792007167858118590121847993878960554341801533736587249655179421580832911388535988927931156788738363637992108562850092810505441738288895593360414419926774491596394937421250241450617812174259852091221977003979688904347041284628205943956001063847091694369603612848867124160760862826785113267735162401486490214104836625327857058914884936387906297296842855488309143984921616424007935173726216456453933170716051305202155099713413327232109086916836716607727572525438349630165479016258350881862667608954370316752549787331076067430277066171811258406227135951280221444485695613017710276248025485600900470422582693931029604510281739735733130660451551456578039701847686479612784394983993050829810196781792561880699469745900131817741101284580520312291922870742528479363685458400211705082487913530290082552266288417130059157498984007134993264242847386597841920734081173179141182591153958218364367988972604657718429275988025647529336465955216631160807339030987099523490580328081329159458779691223686936560851281248264547981117887111326274070599661631404550826451578028278356867593239262878025079406193476045908104158567598225634114085678041152913491824600981495252510734068747261717747194774638377564504554191317617671713139828180314263178963883085609634749055362383632859924062530262678498165003082277319473479391798134901271104427989812314520953791803005572787709199286170675063825062256216622610630983692270515267504442034812797464716646111036365005986835588127178863854843761580480898650005863127972215243538979876999268496931913210819914966558411466930737708972467476473357684669278741794921088174580920455797539332163386902941849457874750538065929965013279691283073720026258317136416087793911521545176161619434829552445839914022598852311884925711406924657095227641348941132182152293960942131859702817830322451844832747029300292524755651003554837632386643468232356472570143550110449892390046459182129639718667100380862202120329071259661256797860844830215880461176231232025062411647044925595531050406641694498766932583588186649070249720402029954017800700967623270246546508128736899755446340339553596963599356697086711213250887235714673456382258474891323278324752383656363671386262608436306124115071384984428920211635754991978397736104544934295188976915337268148512591488277969381626490317600284411068991875391248781698979530657381413910360252336561832733508028724361003052711649421241057850098862030461784161543030929653521975647371726657334144616987383526953639857214588141997948569309568512526729815607941614174204984189493321438394194506112792757445412073808937506535807212795863041289232966909338176240648571114787265253530285645848857901470450992766521943005597393371890640974869575866778588209037998601065481565601533853091067037453773449938588514174121822799469644524615294762286209325423977085840073305739949996106354266991957439644054974631956979771696004114529575125840829754016929224329045157358667340464460304349945857056139193041550894857556923155555429771924790701562040560225325527849789845516916934249349964191885681778545471350677523909070219646203583546684074392104145870440257548247048305241116146575731787755322247272801965965615072094103443276810845820111471906786230181166705742751408445934441742530551353481756520972930414946824354023143859819959234985683442027693557220555128436118351744101004173121520107270566862129866611907024116307833322278476337044957722270590651401703957306298354659665926681354676312316895741928592163779495719749715078962138016477081348076970393891447774156634297886100724827246623841289803073138875949400324181977930096411099430533945367032539547497721760974895234777435160821544367110467416061137176468837943015975944973793565325013345758661955264127461897420159856946082506805393073975364921644549610366895386291420065030775672194533837999985956414133486975237036559960784596552246232732286508624869288720000485806364088159561272352145271052442044333674008938911724960468393605099004565078836597587443662576287848970058581606161969505233503902435147802491281456267276384397403829999342342144091061511910452511097031880555523373891824357012606124010874539466239180173262188368228258134974796569115474715534020247660994805853080025448546154394929109473665809334723027712422935040392426012942647710975793444935302860551417788761933148832227993824950176297093367958157467526437148061747524699719014656532763073348512270798868108182837542011866011853311389966217446348019729794888554733946386853545614578787256666671115487451391531756395327637268855038007906068435850827922372037488519613158974198850084814677576058385914467208272768464103687311032388360082833833461342608604043169001428664519693467259723286976022494297409713737165576317736841069196211328177946127136734620289703548058551422349968249889635212129648977948668263908779814407820050174285350226001758674063205722357100063397094820574405734437083368040522638561158794295313513239632985654963691402175659810749278314025460227664894951990149405098961826745647980996927553996687924386423651306194194403195787770197518353118762089249931055488330359105410739212055013853223647254599183210005154910701298753525622024911725467131246813356053511490474786469665414286260523108534798399904688666849269990768923455191709259258989725250000737431762992491880162655656326140649957863021428354185890659297570558727179684957373666372054037267760782399498238416017686192616915337650167639291893153829799033465063307238107613229627735160332321120477979504411875199924826501720042705173434890731187933346049771143040818681934772277510721850351346529064628090601688088699867981622557021081844776369739074831095810404459317467560845821933260418892901199651470221084144596449188768522249594451465635956820816052020644256735514391656859026979041845807833871950261513971312560396035601367769426356982295089131777750767578340875952652025223104789862741561050473728657844976533158501108987498102831673451404995871474389693415585643344688912588329090165568932105705267049460565703707990060394989431588356218804094003350425389085528699659694033386021235930783214195193428735666385741578215191342526606325876822898112316640306995248790478269605864227037688691717515037566167918962413672368065113812015299427017602976706896972630268409409464046404901362177634703008848424129466678793861193459132253923250286937160308523554922705820477973899470245460828660488275890825008000325585101553109558745742720483201800117373366421642925792591097925602505242242778849828884353089624305243668567462021384886783970493739554732722266530701589266766332239613907235473016927082230722782069561269069381766335521513428646344347756362387039366461057859499052763312553184414396712879732083740078873452472442157381013871326750381092890936093119464094723704758244229461334051682011729407197930893246297178519503802694729249711058403569097066930623193303747057819614638193303957143614216160223534732722625142960474759256795815787062887864724980347517296011820191405686376512663721384676301812708721488821879870701241958814550668370059662460740223326063756169112141598751692924498599764123047725523175007262446085641943538003191083613367946803369260024373081969776854197843903514899074576674157407987186773033656050920706599803112860196777529461853036241616867610074432480605075080692575960281874840074530386042909434854012431463930989552966444075078701669203510743718702530446798684457741377922138410794148488527801008400711887064245956183210329267851091365685342145970292891249690569384185249856024767193384516720632118552563451015186949111518735408844101085797014934267066274888342811543012755057160024777918480609374076391716315723348796449555593509318103580244216686977772075674416794876547934301869182732873587463971834376399325305125738049166575715731702101570931820360636903940925383366146313870999410163602216581460437263030487249179300555187091671314931806440222753299477635099116856519027455782731593165900592676559858081358013087347062006879130390350561120078698419085060512609408215287375989076679303471059152886345464668279836592037642228775980064493106731982012431983340472469382855012812144780686600274479158955568045835317570173728212421340388731684989022718188847453327529811931053960419820823506939493267341130124458625947966093755024274398761886677456782542176421796507351131921503431685351527104410579508406845276775942719998701531262677513403602162543250047722596019344843484244951206951352466127940246381014694428472070095743933477060249719316828296999031191248598418259777376856694797530949134033510458355455777219384825685463764522112674506047393510816814808134070223189226436971026367128761892164579008512525980973751290177370250228846962255298580273154427029109042824689034451234696428922785800069695636109579530267333259758685255836443341952313221077428986113008226005877245556248612472229110924544678738224904351573229231879077465924714275148810010118465480341397626323543887942957663079246816682395888118217418792069372833645022372326099951195002914550836532666628459393375068617197623115745874254462409345733222383792828562278052906092873944418054943381636190226193840035483390873256036759934088415677952918293030708159987152958216692860270171921173804583776360942797837816501793943552209563308226318469933253999884282453463130253610083108740014194000202890665965000999640848746911196019167946499338263689193488948334571715458543046326921838188400228649032832607600580694513868415487469762281751712659260909088069305305213456928684287818017296130563169077047917133560173954395939469623990034969803706612080336567526199460722091580296372130795618482422439954247962461182679874708883525327956470596363355363751855522663244276958358297587136910676321918684191657212079357957572880514777691966792978480756894357451427611351685058133409157837173419782096654941824320367016624505867393943497628015962536199734023996930079705096747923748337720569710061813442339052122856947841494705133149572634697806018269326690360293064886416280322272055476529301275941053476404107482160510355990948998501630361738192090458762313535284051291830716067127068389565618423574786297251663635901084195644328060824327654057960546407967148734092007531421118618565946616185579620859418817910939253857647076726344717267435987792128802786552640820685436190775289954321761007410872666201082647072441200382895542630266776377149075146835897305194943789822896253184903083003787387422749046920525170114958759749469144665371036157655369009290734758092155124446659164566303345112204583570108241183790689145429691798812238322974095935165723066638071596864465219922916597326077411199828283507544531139499343712045564953380447072749073066316254207194227652552259960140902384941563865800578130921222713087882900309838448580470004006803643441290920705741098943706330504978326505351610010028105561712210103704260403740693742347212606520070115034552940327890100058348525291927514900187862074792507586806179398553073651431306777806606205540883015223572192072590645415858615049109811771224443291905549007347869307380238491673447196842386372609742644079731208739649529106322347930852359047158218261863911717775517522866587832559212484228068262531550671957478414329159426937179598551429128741626470380702194728057595586651872760099458731093430118513586536384370669693497877113396402498293029857804145286093196217259174743007761774735579630882842096088910613767201953844806303347476096139545883832979164540751267991408282551116050105087457296642249394450434505710820713908794814864717081625144003187828227074743486400849863501240953162016637961828780259118881641688778142651853034375108120755618115015569018074378283341617506850512691233252781649363788688226036074405178465715783744290336057456536515957319077750377575265188774273477318640646473834239844135752252236581438232652383328759545328801620073058984902410596103716788382800668850470880222861546363171718395702351981243784283031832950083133189331186773453124350399450074966731569992870114207585018863485885377024732997600809097600403862105441378907700560416038880834166275000258617125361247923907966499783572576580157893135963805364672130481201379633597906534452963667641029996447650237160760175256118385346308671959560703629620477154268833118772174889567637088150337749491606711170198701252006237386776819798555354194624499462320588953149735518610092795033655475255909648321533157399971515349038672718078073155144355129191499632194081723625447398107682090314832466247350056267826153066194137034137711304070412559965920030765346153179033328360987457398681105931519310337813933945598721558681901196674175102353965238527617331699762279441775298669601370638054307269790818686339134879789983996497629370556109845494669770148227029817240201987689997027602693490437463510740755709570143969541357716391820695164341788110510672135277494203678293872402763236810214840681046608264578650697540824704997330216161762584868737887568948191829816140121690318753004786278664380660927625628235418762530374261270980465996650497930639173940948385362619299908651940950609576076026103828368694358137938403888246788680801054486715354807255984042880137364055074644316462570313545106600951879712459665765938383740583958350677650979044742529572267117018311682657598247048192973493367402643898299951937912604492489980822073450682613673748334987081510426421597921800354934002366044036181408136224074790794773287358562018026136888052902787550283712928275031537223778589075682434784720339190792514310070315736050898955716064641240379054469712988622305904649092162731305767186569983898964934080584363573352761478192330874750899805307810602574453324864042497627277925910292441442564464231123471905954573766086120867271609567278537342367699533423826739900821770554874447484107002742036461548090717437574291893961410387305692895136510243779389617147069906614051386764392097175427158514687436613180535575667008074634848737103089938100419679592317295634421241893645980860746892760127057264677751208125870915217301824865334365857599989178596687482190321255813459978854435276409617659485970510432655959382295540431535759513262343400196082464076840670577614431756139462268678870604989991685538016827957539232659532940631486327906441389824151276292779160778520290771754684389222361498803361896034604814374870220837101217753030104107261730420533555585808451595745836642759843830844173911806409225835338077991016489945930704413461952680804574400698532384884526263762185157054424880679966751526773264273141615689397963142429986583994755947493884858398863837069964520218939563207298799083473145010597793615739869071639867127664856250730648267553203751406783140500787568380943109938036246541774056926005167692767781813782042694662936091897730455203118123803797898739692786012802147493367756504291349567381480612714880812559889934471853027136563352470723930046951043789204407282496063288427813151190219198972931366777621516712540856387289780931809877894290438637305347786441844104756316673536382168255882709300147124411358544178882748649215989885292433201573692384912291016787998009974193081658987131884740977205901335896401634275433553625845610723113682175956107069696968716135378283527895202586245883881416945197052633287403675080956630124842321292930128397698340814383079320168748793526422381825584695334703746035322770120589051015076390237130523696639138455350570690076971830587256808345462619062484924688888549563178500098244559149885789085692083771941276458872417039035780691576619945138948935891736110296109715615576348983495197726335534197445643866839345480417012732087787974720162396176892620350155884417129275382140945062498139993743891427825693647613079579567764350144766007810474728839095905317488375929675376032249776459626646396106236672972887507124958937224906542585255746156072320805929195002833804035108885950185962452057082164220828679871051764103979605715403865038846234890115716002569676916673188696483097789052307573044114420090359276124437727314274327707603419940931874290457009960247861461813001043064155170664033825286734609133039075653342983128484889555122330896812300368668760967288951525154621939920058014177686379049090807424097583040929839904522445130963011918033585025305907342703516873619647175390637738484373894654980479531768915391232443064377805141253798333179407173258014462249634100783797507109623487221809199742139927401343679503753963383468369541385762004639155745902772996302396627165866642720418105543969369165171324909570953538850084675108358857925056466900745500219240280517514687743566021120113802864499647925681337243429680959881062762060455376276146256414350032404779389864429469407498148129376111240439087747949350811872716559147548326737675567915202126894722272693961407507641378231311153375789860820680438832393845921562317429554111760194067818882328940098084927686795694933263037382725144582415684166201716616397454613419657457242666267110424764725102122932383455137339586355074051894678969021904960625497942044902501447313271202931905485187334918168943447371220754877107223278595812003486883820386057925074541341684722482001074827463943494107887833471914241179429918220561221946701752301998396708004071620198895989162496661253973696563906132128203197816586088350364778296017858885186247413416517437312725115200738134206605341861748535283534945015440240509206566593578171314530300889219605991116089286836486086583348897847968004438379666717565264375710333259908154596376647490833660410096991270529327280562826940261554029056751106295431917698355664200496269927356788688055400781391223235820244307125027114020066134877238098355316382121481491824830737798737065193776892713176218016405633276588684218528499491807695227610237871095508281809560882260215292745711621578095755839872870761345614514191072943350331265893649924649830355670347842866475307854150950553946582857703163997232410411636823988417380022042079341936196927210687589783748319849726111759932182170754219631317275724967169360262287427931041286800185006809569367650483471616589584653424527315944905758016228834582545771845019763102685838687126319641626796102845128178539733361761563112185924006495787660258766141628900137981306765578148822675072153001511923067571451805947339224583754068744218990235191152985697244483243888113976476553592346259483754680911197766834213162847744718229349784338850114308964521496210176894957783401049218388553306816650661389274935885603885205242145097681035833125811635079875210860193762617263704153769954926054820333191694095869061034633895052076557272735559605775639562881979700870919533638684761044373952649355079543952175400744844018792307652601509320207249343304373741609430401252970736135355934218640654326460684095721637126880671787695118729614699995988497152480258362099981696354623713575466404680336210134415821471315369451365567853376072433755334490522732734200855448081361474557114823704686506410789946211399722915240235936173736989382711327236440130846382317750561017666482847264735211889637216736804566926454416972278141187209820100733546643441018972717531134630519354896360875403646773713318128200208031608874458667566219916459894331871623479902075083773650253884438161720341998999413129820636726567957886322420787731900596566168108590971085008438028220933920575991402082475815455673829731326063450527401360914926120941483964561213336628184244748289627201347056369903511233251961320244798641987233202999085248790963343970895450255831021390323663528041864237982264098788927033465716927571069608927920480679700730843830021170989318069475021557942177276798798010174939496250815978028070204922805954736974375737492961230469382687290858141311461296585003780986433409402226588061018823955448723814270985185883324523503643916145905849562208805944247574084072287031143349703043211023996348445399276818701206235881831151270800338812342640287983179303479614326406015848782170433354128405225896205608516259449895747776633411834314121363442765416760044944563046183215241201735000244040954354335904518709562747748009329932919313466775744392795560942208466614944991889702901932395817807738206636460831526933495111286178201853648225554058133461424150406391954116967970900887045088818044810075284003378217519494156184810008434241586579871730011262431221701456562770033898861362284944523966085546942000856957546917796085352425575572763919996693050363460872534940936562242649741926199381645338056153744578330717906229923467341081147179116922145453695438916304876001590352754867063933031711116895641460148672306661982555063798843871238426232622040116668303031741603966642284994849808132581761945829523911062731929627722733888907123723176403707858134376729864455436265515692907959592796983234895900056647102756333997192175467055899014347447246973138938559972714869721867034237910156017633744004144241837016718972391451302242085846708514342126473584440440184287568358455343030486591774249147190426350681940573443935041255683109363233247964330307742018292642251046824419503993519917359665614341203980587830467974438808180698661136307380211920194856027955547911646031451738786738683991683842801348079353004440918971558283045031298566223287001408153574801666383248758253160145772150932923035247099804756325028957888030290854867033909507222292612682332364109362835398480347094102784451451077008197987246243262584299212417260473305400185491598980288912572745639866718061859127403105080994465786183744469278026921151552883059414598674600009873195997056150253198693882727364742183395653203352908133334323631147329545767394183163866919352203579377499872497812454118495427297806609787722974939331969977695424730041593360629677293742257504810011385411222021607326015269663410682932205962909637106849316456498252153817305274137168284400064056880522195128571571197903116628118119630728974258586860542457201591457695665074474843856395383034831233567361649669435721957850853667670271876331414773860057929035678251361563353695061271251804396528766299782137946876143476886223862459306110734072106271072965952868928863033384427540468911794676009860980350770596018778070014408952790489893147357505592591144099197146955724897023117999817408625072756915421124997139970856398127188972612322391429811378227467302575191188036759914110713728855314622097172311790828689564227174783736148128556770415025272024873268384949707033218404212943498501408212437718187676294074901932199171433498609333873118192573314642636456922054768169897125802219464151597908999270929903778898940010466347310021517072453273247192987258762527817679973089209113674109355784340277587091024607659195839072561408008839825974501299882287326238908004221864831606480115817781219783322973829807130609883668219167477432251835038648854212453142216813049814645760284422988892176839378533399280809702558575483305070880534227636285497872976339035540357780139986985381718370516442795350051488278526128243097578200612915168327543751188987569635787565541890682346576108657653039662012272320419309436517028101431558004279137018992570201273383952185854920344607059001622637825283076881337971256787660194289593556181475087730071277182930658417895577464275834309574879710465658611015034314453984787434608116356171093639370435680217980577759318629387528838285052843130076801010924975776269439048544510215134501974130480226281493874140599192982990126369203210027039927815846529522563945286329733730859560396630473887472724735683763156056699675000105842553921418925012778743653491218455368761223071181583644686075103194044752297934536139700274871265678804219885391508127300426484104208055768683227753608806434649679422773166786607373172700282799666840527283890533322902855276848730520884848863922492472928659645839057312619215575546092998017940456436788284978810901615029615983039522776317746554980697023010357331385079284940732148350678609685517698721808682201461292045678385960138216092116564488628526739818203304929563145301527607027262952823920164033344373747188445315403237135511739790917465194862792507897033225389666951790520290343011142686853271826700241907382170266722668795637816079484565303294239949549813170189422654274864198316049640178671152590065016957080195085991415112459217708020142342357843857395597662383092691472493999597931550486878194899688051336458526973488753736754625326216494319659649092546342540415749814527873430257834490708978958108743809534881174103584731282452532222955102355126066994357557067973673881190353574925018606509062984833036056331109586314804608041515211829985148208005578192772672398728540650212014681526217435515398658033008573380605053331817139748063210027056745435949104580295251166106149802464699104421779267744611720058146683344808182633447472921712996541969359950939809977817316470660706356994235041259520289188990646464212999154292554160022276370128628222914377976129394190247029735235048158300650229586940100103000249637091659147508081240157337764057310759301499696842622300992750610613197002241229772884234364331306442078705025514688985039817624781341410662594537757486719254487967738817529427376214532148444766345975859467047642868570522388693700561955988391865108895377547033961062409175816677988454654116078690870140002797858852331301037969531230418740005770206989307746554483267284340018621879242346885748988822950987313409954320068335281994494858625773890017313806694400655804601743097253204819935104698297666879983248293068105323357445828466626323279034922214573126911065681268981570647219052640550120747608716694416617157174755204107186231092112272870111715241873139946700089017704380148312322811888951527237939690663670957037985173773306509504442484171631254105460009122896081559478844413466692685553366661618242866790995354102019859892263533854040437959368049830691706092872748812356877218993740055416145900595527565170362453715525638828162722456072474397917154389600456999571445391460758893250518730858116268597936353529837415090789790441473001487000682708106609148481438600837532957995443218020729595238226800348023934125622677503913422567190753204262500144464684022974609313259658200745649037683309207510293503015215705085382816726706411989856022163901335845393917294485842575457593160005032185052594099519079554876771975755332000779968045507869079002233042294899839198646104704646578257410515311398465008926014417371837882698459003068378698106992304757947997275979281645867208974005110173738451230567047094288362184787812132145525384411363232367976079256591629686438885652197657816843081687213216871010147991378903971408329685350588302087858781277192169175920377227705436601194727710299125389967336933668787276353944901061365947143650506226130413601925270101254157657140229554723731218070864609592848841693430060901730660691718016079163250733708839620136652283339133830387767358758577218180863489094373435315680495876669405618176920707625853328110900283329937375091683982466548089071351346176156405763023050373552510193781940628055860380152278870979623476979427954547208957566296737789516944142491003211753696919165076495365842271781274978902428186636012542495329804793205794735008736700267298095555531072289039720285979291139248162470672632269582744365095816506526516810733588287638353733319324404247820783765504561968568532495123494233720528492509037290427250115847822009766607605004170207526490794906134001390214097792475110305543879693671919883224827606255826160057835196495080410192972459012541395848118159720490000631845895858371709622951131081085220641743924562695510541747531326701226207370060307690732919908709531650612729251202401165772366125118319392828962475255373996729752694785952193102254705981234386176123549113239238521105600668154738890885648680426426182674832113221102293442800439617862544643935015380227790609412633557391135699421478722928211698518667650742356023438487605368234379176183562725342992949119581387620447938426048391506504592178530916032519778053430460224102882096750893632605045295644919905045128166267098674849570379561792473829387406063801749932977096069670040616139230362540102841745112049293867456961752749187419493527774550485849208307405447189819282845662828670763963046830888307496623887224492996375972404530668401244369820552332717343349557514377672655067540771344288076300602814138979823878665342083809459668329709497429015753158889757196628108723255864719110106761367202490558602249292828234428115742619108303405531254358985597115861583459453836058276324965033575295139021756578410171220129084627546914275952796161918535472280543574483917116537239058684147219237623078202489921300157222747940486636815350092950793528021626010002641415980142056095716056131871423646843275362700419062108625087286502610738811199500147089816943711356215198623933101668307275602815716249178294676286063923011457401303899491639709857488529454756461711256418389741517260867269421052197010485769303221345971017183772866423892421291160201519226835916817385846602011665653656392545375029279617596435584948713349177811710788246301150277315311471197066279650356931430869404420890181779429787660495850495517923191019711002494713126352430031431529673258974330387344489095209101281856301723561996592619546242588142244206208345710596633251920705626670366664303800071682696796322279779893705520518319868469395871174958139633171374521517389585814777712034075786378117260864688972576808957520615588358352293940473855483483495386972478512512536488283179112839978653759606029077219028903694248645353641805971352627447880180339675590073111071874201850623404991405646927596047018379975103984788357048553696798381608044583923171510390008071780351018312305202590571983997058026154568514935076022652034726662168736701880523209637691505218945790860748612524763774428203967897593465970916801281580985440853176386390290069977383704761761344854476009198125023352135087982122457040169252741887769013684349400535076120043569777776423123320310735723301432371448597680916414530107386041575661787546570691341689854084290026695817859328663231382618995901919384972455299829909214070760627034997181777215770769189394203076631523173807297231881992176946533475280104501891246156427464073235647520639173705497955352430635410749225206824245710289334977698613171913931082211571619147320525941444278373830783949597384856446329366672149785102947454405504799475053745737095037828493590350192677947132921958691998498846987830146118751732539263749641721559432260890196107704102040449671529060003792798432026519841033091306146849534954827746909398007317757698899205243795147746430371768455332509157926415230222616983542141600508371642033649043592811317874650377992916417776723161318537577251201360389277522061437574975737765896217241069700435790287791221587434660014257733302459954050821367810523046896987151447254661774544062012795998975931745717609509549222562994393278733788410490229099657086973125983447094384607086857831219094887322982208342611219924858601218701767056535368447644565485485850942848435080110562760839951189217526811523131278804857428230825195764775841609408852757941983354018484599626834044194054676097116327821242280617853659855850314469992785229536628562881357365923511462236583314170728713140826906819425281056034134971093332227394313476370380288751323412928189995747268265045368387731690315726912331603755357432304385042123914403004320407020312014917622364460013327817400727965654494672147467061222257188010148098352088719826596877310181209539537753609600187915596319133866301027588570300683327522112712279330834607851783439407029153165659894352464147085450921430848527809202389430182178662739484067617670992173203812318786506769011996591969204021983361145385376771621606072787842389073361440754339836817045226867206043234697128979977766276470534239505361371982373298035265555257736520060189563456996262402985525269101464672993847688721526896158633416979456858924957152420261804539610277161383338672802488845769269680376619407413807577216185805485870614000104260187694367610919819036183952520114148048244960917648714587105653599542873491353418590631548531408174980541452005188565564846405080937468014314484626835702335986338237681291401553904225401618671733156960253553447189681340723416399874544402944052225637517132830926922388755745271211772834358267818252978237988433299631170712573471745409275258931806337339542719800124844620919158572361771824783394397917585667548037955104016544707357942646248151558331727751075353827284759678558104946724292575894966146450422621176518371423737403581153234129108461150368471709808186559545773766121833302029906251539107411555692874694026971322751334332097170896098562413592740872006215569182631816267463714422481646101217893150163027503179077765406719977784509922051132259465060659589024575421385477435569413558039797525379704150018567173042844362737459595368587364780371738294174166943705973521897272767419799118635594371381446732727487860831226181560759124686923853848820548162636211594790176150375879563831601707325003372910754602515453428129290074606666560653336773683314092313845845498921550374699431962892455568496803887990169173024919285585300504624027407289437640048116588028712003854077156996464116774640498376214849905583456966769959113011884009778145938505891343208345577764135883528543307443871492088300592340074234443711804266994943371591306581958843971651430227606953470581023125430929532245181717520102656629674025492450318238765525233664893802074263502451092183183448996309205847079788960265967833687370804914338707019976587459754023872356203617861742355599814945597748642946291873328143350900901119341969371232433098636230303619871962519337630127511100277805150944946184695343779431945531081996040825392150258984115331715312589368389287864737586918922208414441122235345742775627303363230784889864584959696286895098868294110443037421248515919090822701853007756932232206838085026057129443038914838684343170780849828971658739259996400225605538234779124058304659892249141661687964735562000080816950761787468797652203039097768877611056124326424871456319561378421593047265481736449010525891921913381909643445159714197519538366174492593555010412558954664779264287432777597519403900081893038071510214385929847714688694271540454126271781517963483215492922095067098328981264123730531102978034832336541648268672219486751437386488473374563147131565661353378381206802328968743954549719448762506564455340443299655324546543094846788743590114635317172737317292133581598417074742605131426270166696544783757012907644478950595029706739469105502418430772190506208394893342730609967874561263684827006762519324456726838284067343308052458559703610312063064017803264306616020153930412180227574576040861389873337232881737670455029850082419604382990461318160832385661211394445839747391723556684750569757245197168036911612064828575820849581129895066781880273019947062677918037583655271922142958697298377724815062140180386846269460972380915154159004937047021984084117018180722821090712486178111353249086494209101891273562451203448997976902602564888749971145627839900963181969335405918778633397861549886171515846886114398794612100186050232985792737540115145877480066501705817879971469784854368423683840974691806212515216374823309381711775976222658782796760365430462067076302718545277407828669543039367759873515960938858734411260349193911206591898777091278743767576314787287941011859711963976060257999631630213022444256049879113090233287327023735390804213278383088068029613103420492150922711459040733636655829107082595320398972106830914958876191254563178471766634423616585833072249045221218287703462273722156262923348247756113583320496130183498680960309236469104663503269405989587575104011836989201927647516787290042925818899673914950212243073318891494427206342967784887266164890680060955257510762963429286829071188810691682701741668856706377065588957577724809831792431329013717241528120683489619733174096051442824082686711142110013929027437180765709673650327526760951672318211133224818235275627366013865280757135385251623331151785363716403852585737327883133590392940687430841319430362365220273770780548793964558871172428734665821148917367619210780420086172875131712362057736440530470422042275375289081647706307430507480146059457509420603231113812808781938919696199448676795342225816742562293818886196434399319780566754202988727319893519557355405135185401811324669130062015004204313800619060425158621859861320112003523458244989700036197505462272685904235513167250071805594132696618921263667551628801267958944812387677822079514728944648207041445979111171033943418235523420228390602267366315314712137101351455706232745676043094694193302106906309662829345789014098785535383401477104242777288113629321600866631602298486099785736953789962980626839859487173089587158905092836462918190407609502812425277148192528782698198062249703948186606715488620263975191211635442535253935488608997541529620872015659197194127848079177993945039239763277892036246605058778554276138703778295324505873465772410053788540752078764454713402717650630607125183234398686463110055775400961878770887310639230812754535143450957630077915773954869413141933589923270793003372227785513026116949602588073052205665688487798979394475222991616940683715639947330588597451087328352176625932420496279635785058642201387354750905893504011860118673558995584326872349908409845820065094295667365239252626601112124075326158794839991522435127291724072718251161742482261384732237468061561195563563598220738740866269407008384906468807615607655668528234743477967984649563814726519784161600206206247704792555537804456006167239412288327700982351450922412178852421599548642935040180430324471399094747267998402006244330407946669781201802258217868120281471578332481918284819597694086603482366726790704624253823466310905794869409915636792887316655757070827766927976509274008540121602954863248380375115167861698700840591111488442208953845765755425153157677116762415065153535573587858111142426034604495280319375639812810165508362646473387918408716411506682390960931948291230639462062340069064209562992731226547936940533726601124542532462291194612548296755093360710722415770071546498474458078889246819728823877479092635418424893515038525218698365620234484222373830131950812980369531398942372017572612904482699992183120043045911901579657522510938798263624899960981861405960218426947410818730875708134067424467765892213772738258415381056088908329609449906048059904222486457057118633370543262093594077408683237568982645224448538526184127624225322921505107487348409432182786008946763052319242208220429775844287462015152334347093996676903029623540689026428138016744053037428503264884298983298137637065019673171462810488849082303698586300283234277959115259273339618587124054913897099390032886788882581776540578160838071675282658954654192341813756068134814617622116374494363917460571717524221976811753604933697479275261918688370059413204021457539633169666192862509898820932989691777742674424760119914012342225417230407472210765484492454545549411571349163184642411421988521621112118285729712113866175565584277005450822519062648815593611249701747260802605565840805836083237581004476136472478427617356861250086751120229311993785639624284483702383695922630022619209387617572256351482325692151583020892124785756611101231440543980602083156883519520290082840016649956601200050405536825510798537848573061077239927882740859080050578959536390140266693979483038022040205238461523467333414542821161747236776461466375339032390337018232416834834374468518123916990745047630360343296570460567178875290571741104559044954581861171972464131954344531094090475285151011921637505381315397078576342753979597050488406531762177101559998677900517414103002227868291866414122646913070298858171647410264768804698518045748474898673499888005796660267550224809729694242554026710422494106060974299174190145207163621680338670598409457810359613872162446201891013524226860947994735493942168645896143612990084193479938623561979142042228078382682127808821423077915485165790523778987945947783466130751801889244567763299555491436643770934388194845576587215006152311068955701622355644910909374492835350542596238077171476083024109116440477911759770508419077868782974208702467333235144825583064709578906208176059295780595376365290943033913721586501227045024365373086212359451986223046800074017428166572976526701946582227234413809710175939472945758704315410397303553644879198497882248468664660939821718883810818746757865664518064406100078209522068913336503230845058254172278002057393611167107998063817578664851099593007508602909672062050980325615252129097118724891358562182605504132719657297846851657456432184837712190525222845348601620841677704091339596038162947029774757909661048869450776672857017843320972459052623461662016306358277387499641699068916750289462538830695382358350880974068246327011287643334687983224428645829674540784500701409423154335319102850144248491364388611720601344207914888856166524742481820637949327265839831643899436934896977795482355948817968161616578033557613422106180497336388108046275524329544735986148067332419028842212926727369611999358292848318300975246049661818443293763909171916135429896197648367377988150742738315754754858361000924604180517496867604151800337816803752040525225140507993378321039363422673806205708797801748619197907347802059592755697594599609047347840157759580593242511002819178472224201361499640434067574750109519415091827730381667248886670599919435162562251173595565522174705074028673958058409315570787017005034893410080888218082052807752726885720528043901143598180726833689745668302732886647010945044250956233051881090500468769535196574386008866496763975882985491831512294479518454588788128158731181520788285856499601132160350588000464446598428262389697883736671642372946925908953139345744747542188004049094076923903842621711710952614027580622897036429103915668720508265200254259948310156792633052453229085559475425408850668008986892760438319328321545202992978944439902362450056830623398928529527398677411422978100752173397364802772500916634526214346806697704586388461040617444695654184434848106907289143998350755406142098499802690982553019653176960189021235897199852291864614475054166489992880045697456931798054606822774483648634357796732478685719733887509221729762008022877721606750989666892290344158815567652429893654523071845535679288770834375705641942948843183093879183508947603394988085072528646762491711108714807736087210912735128951612235151944715932500560027357537331126859865562028937106810343962737682606994541338902925998362369531508882475566749194556223136822672340203382529476987965415656142068921754469442553544007086101904124532706602880026142325674586859620503200711006996608772394338948757088249588072420371180203310029852887863521369027014283416872776699566928665315925386780516783010161047092068030328924636975724649388909366277699283750534173976911215215222210878503162418185805639918746180613602397172856104504632271328718680918122066060840357172633239823498558007081720184936933178221352586148433678838195816694600205621592099764454999946745876974766209036256522652059650639261548924686452866880024658570630359844176735133872364433888490994609201175321504345429218611898245262635479828604945402502344536652283481647213022899986618306032610251129921633371588118224195668194955373515616389099172554568717307644877977828865473652229005687484648662957387499219014134173250953200688040739535833969984257330269391938290505901094738608804205252252701527530338755053277068667995509482022516364682697934646382377669584604299993481846756036997350445557125623718100261504987058155942987787015045725299613066466022774587469869333226008363271467473095810692922479845229595281268358048583623318449826284577386392206849122500763814521328432319807763756481133421603800463709096359874051799487023268585155565686236453462780252550456040202553380595800710158194184008433613636897575354428923244386388777851433600833434721621458973362873035927725342273659840197433373305772400364245788111763133232520923434989210542194897272876286066359429438283336645185930253341636577620875890350381769546644721946191987383997037562626213467443014962287084074835059109556790895345379142138247321944695199226936466338072150836273335187327917575494401762788125448577056926847963925607055711289701150630922735249251683804618403308461152085563334053647740799628958519745282375782137156640934170886758888770309385557559079527690954718442912709629973529686473616528957045319343676766304757293742794415242767371985019852100000833397154151136929585589254205984085326993916373706163603728124622123913179028893101180755871241736012181510217133970405074938280786141543704269081968253488985539089966749670841332828135750229369194871883108035229290839899754982221019150568882075549877984302126746253948151875994068467416239999147862830810525433672146996167732539770031884575021577848596192213818691468423292590810897989948191989846021198466315518168470164860567777077618198638713890637821338163553869874368934459393074720126151534299699601430196339136135057191452674445729482946330128113116312050519653630591595273366433106690733980442104800652972403751417502452704899373075437125965760176363433633180041817628899670156620310392478634743396105303446087021785695684486830459606375648221075351276441710051711951741308771787555037865590841211233672008222462040528040658334861647707645528767112968665062031357614981423360199156419976283640322250837756072963299701871675324350350464340046021987565188299875388621185700649879542296477450289294070825769476607477711251123963438239848355924238537427441700101170052174886457121770265897059354006549017387748878153955045936910731656309013192137073953168782174681827530232795919804644588382092426567058333647933239927470310020476289651028445922758445619401511344329697007579608559773930895068054133706279921978978512574965350222291133215849488619578773075839878337733038997848589095659594729923917394444830751851924368287623914657671146707933113409520941659287835047888265263838373109555763758428631495938540147339014395397294124473858479562550645070156203525334857423164749880143651754230724758827213934691495168264737987061206260257057256806433666032491494351623815597352777907927652849866499234513045653029319225588223152246237900882996616320376106439633744339517570804148754482318237033729434207530781641884923275455882378795642064134383830041990109161648293928088959254532712050517612853609295870574060882189188184019546704210480886209210455041179396470427252686017528570456143330688169465521845688959077194688801169671634240222426096183158591827634520182947910194431269753381390652003467737110328576326896627724110178659996827701530195532512487259434208632717630584218293057018099569311929127353846164208117463118263280277856865633339174149940896701155261807532211817976953446908147188671265162022444101987763709335830655536929205444835604110112152622340270107143049977013337291061869786532555199752042480122627650613249923657670295565112575903031837892483590426786174987890824777304444706579793967259182186475703290055138234656949635843419070765547681063978185576452496756114256734522522617580096223974441635578852588944205959530511168630607611577594832296945978346029142538324997970947721549244139114818460479984029770269101483824463898164324882197414106932892559582099072051724559448367714834049629801950300746655098229645765608801598077316901542278022676652204701769875376707466182652560450247341541773601848790024270199989827924536247218358388649828367661681574766095931180233142509535751929988284655634083437713997846568731150199978609152684026783713722282754609718680659471904558241390140325452269932481026941440234482933778486011247672911871663375413662698029594108638481780728236264681949730908823654046028667767091130442956985230825970657642138302926323371546833196161811656248683928262138400916919585497420018591833427052157423141225497374710169170908431648298262470547878817682942609202946388078876004183897872081884544076354566111122230043136470239349350775837965801788991733717297529275347652917622408848789695589111066385708431356840563921142837552952473322121296397803626881578411460590287576745048621898447782207497322547662251025158276664872842457271896459704347179226605143939443974047790461505577412637100299286819295814431694283341098645074117254556002413224515402143980659353431865137626694266276302296699057996267873513055950875894347072668339670677592641068092474780287421595630370801059225634469142364589687429343839054196954073127908106848917634902108121556950790484584687093398833509514055689290756674527003571360230090274167879133875725861354272992655711304875178548116727918165684753087764526469556715955147626898236640389845175885827564852552309850118430309178982816631720724103629351528699998700639042952171842216952656266187506732400091652938805437883667819538451945342563037063754770938045625263918910433479603074814362045188436975311702425533451444416631173373532450944636105879595187163048120102269625656972266253244548496382260010370891578287773789256162643466642595164715546092272768243688026507953317313054038835595417194322940050594887750540871139133041495573372238656160496804696048351253476634331938208610710340252164663514053095374579460447276938055234885788018129685895970239663118458237003328564935388551373362210264514101703039488178093416461481295520727244571045815164476750280475198347696156706104634304745395960794782799923206305646721197756620739071799603162108084463434122072086440547980018918948702497058452557861278013502500238284539869250554996218902500549548074325028276867130097844540619268499497018336929865048770452389975273626239655645313005284252229020507343030794536999160089187240969749221109031469375665894783551566978843607725295454430290807181820000392469259035199812641264929258513578671531688434424600048808286096546270794720889012994025513610535445851372455769943142097277897376096246521845939950877794645115116617554310651758845249832145490767510755163098267390409378556779719143492103667466330097875603174020735737042957889980281067566422706296175670827836916189158719755586337989271056822624197651123736506833602749304669980056245843526000103431957593331119522508931300938327271912285333963520589419617670431596034339821588263256298440719930736385017582000019572550754427887789177957655514643279726769982290012273279558087718352327867474787098580253704516944301125985972722538333768039907149352517002433696540852956670072427085995507712921969750655288838626390301343949071779248950592282876696250044647372720701995007079902689573651901635786160127947497378540441786860506531703162872855919901413887917895103411307224139421910257247368467813538476281131451688644740310052052254741478394235785263115341008636706067233890139007621022638618281010829861403761015257024310926170621471096900513480218649997863765095107239281549573951771546555342053962148848889090887675850661507886141135799102273372827604128237115331456721162965967445371857007639713553928887447674320521231650175469873789591291492709235137841178810622392811771960704418712012425764981170888726550342292250831504196039333360323028083952712804041876919247247308469779075195425384203764320668680781589561344316128935877832691587800895757945491350967806076150015428739218202239711484028785602887458508530102120751590716240560028556032668982840688376099977625226714902944213544121707738514967835935667243493161936078485377508704812346846438394195677837396724653663826932401311384264497751112553459974036523990467146030280518414420992487187528469005412462923522486803888058877290633947427423817628602465332308813196757879606882955458602001688398909738047683959841637687268455558849926452496539028876740010541426457729058823065150393801361872618672192644242031602460667095221641247534871097591103988067119147724630267543263952389825419279856376067751075229667753085575840450995399034372748187136501314132660608729895991743285187067219758203571499515256595491283175184487716510842253883810753139266430651271232611907446524995841137277885144067087767640846120130277452035065995922466879682359795983715638503461811010901237019731204560826012905286320885213886373634443027214584989066204389921761319355491893545591096635577829742480701534639274735572990881369458148338318794079220796381182177775971565888101023441144855487624568169571591094421726206789202744894906327792866240254767094143662179338618435959213215533435301891786285280537059489569660066007887268815020333494255650095186955531501631832938485200378806619876482000050504049009179976405011916959895085716708377811249062962617079265634294048066793645866020616542409283158385836999745168876812740359508946913362997379633443130317529166219788202767459598534225080877352808544858326585068556520487439770838305284860860827839910233194378052042981314263038229315461237689667468331904545509317724518242774650658541895337790966241741463136381002578074778315755124402772332666400773413067141829381262285238308104616456288539994272066027880907118888530887761789651211974532585338467899937424199447358530872376704938290409872550574039249570542863428425975009192460637161978020240582197972977971393405924362494948584354388253612995276294637771461157071042255464105280263037779924353300753181743072901821832088936320392922142740412370709030144654920605126164685599572333965986999535009422976855453024018875603097428498875922478790575371707907487796565362074754582198193938020652383529482580232100689260413989769061545348161508872438747607933835409898503590159049361113998272920849225841918705232703719201815006258124288010635172783851589835868820351754679838756867874186719292942249895639522571323359816520986034584932466625952595544629547860534230095544723555498431875757603795992985056253582812084551867848149086395233157358920462669445487646926442408136130600485785235714839415103343215575268017135259269695883686040073463459830226964952332680048046766400835023729477422303984371738790393451070963883980198078612273497002358124004754215206032692247253054794575187206059936737152076170266950987161994341358759327450384265646193473899805645164020995602724903878265596877212746761224550724528440783152867191712627201963069218469813022811355910375034169406158560490518814852613827071876191239950955717367964644765752899526701691054718063288754503545651393046260723244311809400726894020103396790909252899685734317945810046067695013693318077739110785021977007253666543634455462456618843000372036194303702106151204492126530187689681510364839052735785386311491898073173464010501035695082513470227608132309970297880235130376944616114651558615155595387199991930095099596440520791994791347155193197124044251219401054480090837410810310380691248070240137416165465376160414056491432082344177745049130314804184258214597146224100929905987337585720796910338846293535764909350606770825132147721315945259209021422970120455726344512628148182972099110893408340911097616323658727827553768702119506708370010815974214725387203382192386378254938036385693347596596541792040556349445619865660792620248575345175715779658446510127355247272253392357415898316794251430830181077305465922065535182453574686831567473781598262573275251068688437329963794246785027223699848205610332999927131145514163637531135341277658036471091931578235935523044798642375828675096994113041009705079049695982229309859858867042533533340327077124232642004232461429657723597447747662466096922791000451953902824400906598013539090334410478866913168823751303772768506438013920149807197369930721667927317574202788880847379861601128576292857034585401612979408723074636800017479190898827836540505233345706645486512581577912390771372184184592669772081754545499347817273840517801610899402740584455784013379159200651363289300346562932323737876058955317643121415535984335355113343499232319736391479074778768489570359319865234340973088697976022703085499009430297829297669571791770344105091468817260173109063114878276259745992324477577836495910486187133376592996615503552327749080337526594117004796275296046276889560500194508219572714724361352989863313960621352944486662234141600601848917095011762887457727784259781454941045042800304932263822145652698831623088803941806866252988653334034281127878818137142323505797894006125180234264232437844524784860553263146048378354968875593519972370995614656729444709509137733642106550089691068551164164526254570355671660981354371277834470053888473951539768639795766972229483475436127463183299316643398396176642123663925830664415781429321996715971633722766149165508107711432229629739513793392715715926027856297828972736162323766824279336836863322522352760078681964029320816698399104805308578126686946614427775884300218437911359022159745818731392710883482004062510386241352948963155572473897535495939532361993989999488196999517870397144428157847357472090540433553197582078005873350646938295959263409164010462538374506474171399134755683261694718417254222591688247143014615162303488213468013818868055328831523545353376960620214420018557884151355970604128249244729110104816032257801756934005426673434717236238875956871853801998966413335370656594485432394975722021823186293991830596368649463562137156223191584784462029306175749158355758071735419538414999676839510213919283800402945614467822040208777309913453342321206052713518428624126182157104673501623356683537923823633339493137591939915080129016344101432133731683128929908848165751934573756051912864804390053088582068277677982343431077154539925156821573160045070167378332058316462491715807911604300811951458175858330469975746158473329117354320005680701537209976376098655907806277309527588134349634726709650491908942021819956456667251947028809596606743771839222667419655892366413132346398293865164033331827832383060901167857010417595731053570690670421401394289472775687006817120599834554937103278347242134423312158280866904842863193980822312462988057705968338902014707189509633351941398166775161297950814812146872769271755463707716765992255940534893253838134599740311025521657973606788031931933305813615216616756991297112339058993518285715478521996403932058494578058023298225929992635191779326676860371286046835838191298091738216994693071804002624889898587783343474126053870416742954518454532815983414881382462999094629628488348621985817881373497510549383752399018493923011456052370785232824577311993916574313083815022295403166626757236827038350619110969481124270325531908365053331116811249665147322382163050070024032518287983737736919985384908582266388106231716461594931178946738902590582356351527699871444173720144871899444798955871676926103743231761076644704859266890089062614620824657758772757937441845844613693993355499030740248085744062709732586568145636150979563741558854867769101125903037551882233242894944013613352377085188178042631187867398865768012956104775601833114631641849342801609764307329840456722730185146214207387209165963147996548940121647144685539839608356042373689688417769375698993394249669420211461772133724607763748143647629418751645984458481623997939701920269548459848510256787369997789168589906319563767087631915918724163311229055640179442917056493549159438584199899373132907923313178093119650686366382669920462671400004325875201301243149993786528054244829537218663472753790056477828182734377462397506137960271142646012855765753155583597702217969338711753707282371955687579939579744571052564405588412230132320763337336685486695150316065765809407274170901696552003500357921038313079481519949601463959858877487523504704634396888142111633139975961046427223595435384828124136112633289485780745778675818453670866473430928870589030983671407268732802478215423413706354252300666316263785321613587774616733106118539571186601949059645098618577092298040205089024696344759175948287237996237462622329994320474198169516315169972363439627033234545163723877949875747669520718460423169920412419718970698470127161799036776002116874265516590264822773428204759995277068679230631852358761719442519505787671803934748148428349292504758340235670772817313048146499448938484876467796783159102429147721187402403700467190640876541454350737628069364665762414301860421026238775111145608910735646658882519688533650085970710412241092550391725503795226571441224328012218267379356997060758306227679614897370270293693841935162365482725069784366923798817327942497563907951646502049172511252496934280806595701858598411387456198514550492780810539214909429252128554230969852969261041222725504738094841068161934211654219228393534110866704366885958091902910210777017010859207066042268393470213645762955726015248178492634339947727569074161965148930614837738774533516442661703060066567501745266976570999205177904556499806366533336915986221552749661945368202571627300419001388374077607705538901289950742105840956232363340511878577343209117362777770798468664218765336460175754701994032915090489502357319675522101222685272961687145633282405355304349553663364267015795902676238948255737770533261298302042696726392828655630873924897538430398882977489563739088424002201553712022506180944741227260542901628159676689821226626550253536423138481547940169975501743021723994773271265661728403080065851170133790014339634193235617510718781528044317120782408321988499244848238012568551450064495124112504678432262068958351349371832209091205316176534472047368408860151854123100010590168377661035901394197188023926562062666507566711796378796342999606806460892054925400196947829088261058891226592966391147111647690876870971141727367363764909504555170143923763344547335427285375899480465983564898196088907571026075704292575757219922186295327503270918555067859115444776341567954986892623183493639934706400848839324817130279700038380899775347442727370400649317112297896177937437857872620670614541918191193679975086063426507123926701968774300159970119698565396356893689265734068181625415319123345834924318462659602501072554399350500127223929534920204918335473314566651622357264346267544109212730143352292215226171376212973784489219438486472023836873899003388102997010793603022505782993605863489332325539036350093811714369669766333081517778392693673749203619442601371906135945753799021537358962300210170217148041580642140147975771272124914936498846777533192411959555372301602175392336515920388128707402817714414049307638686409426042361695550951634239083966228367164810772119295592894206180248242592588612825215399190096946502221716679788417012709434917500390102975811261231765399472393603619400648034180598518852084311233910262761767533040061853852421663507599866930380665422024733397236539594010902306967496171966665053666847571792460587529010063814416415689877305797963176239079500780285973111456499188152615001059785770673985650904415430470147712390662116296498783598338563850796874290673103767597534910410206738893678547975192995608296630359989211594227705892558934957108184942703124508056359505432931501786179856351888119335374182714972122589598924227847574414990511840059523878985343594215329084595414344858527151361745676044178574031111023356200365033302062182818465905751985666978292363644242224564353754342988060580483316874058424468411569409164502315023155184640766323766544881212124570149178894331217023756000771165439393736366713239527278987144141149792134354958618479442526669207151595445726257714773137683229917555990653383316153673138404449114704518052656924349469179758555514272174894136408244542578059772513164978248719144274212054248895771972656334056768136634413293867582337134602259935307141991169225965635034238146321168129220484978372892497504971205026976962026010168740036914997576304024964725523151177724181845434054722974841551481078177542161013151132644410232373919854157730530501610973056622461743423152988360121909329606419565712168910461828047802696350928176692504259210263812781787129337003178312391314746466433320450332593564737330481069504433217571470755805310857919190404473741314133809014745019535643281723856411271206608978446684839381910591741463941577015516411077159764342479244342381437416114556932585832172572650836635599356564955699325281459977511872235115573234191809219442424609725150767313799354472839816341100137991681878019388925770025990397154057952826050240129615936801283362823514452002933357452108329068980029705004711632018393383587353387311378688682862831536180769491334448611870595898499585325706846558151117339131734816349295118253947182360643992505823121813890530179977198465592956208123842849552881685859966574164514081337762395589858905132765489265750103998369522270489138288112223745551820669065217312428787217483253812152176701968057086426897324693148693746194044905326501677812770301262886468797166682142629736229513596624697421964918291517476834017906931898352494423478135280269803420089540185101163285342189168204029074556299916259490182563862730934930979789478666945326771643323847387086353210512594290978518508383051079322150043900574855921773435013022614232651936215447663183299330437954552876795860706845303550009229595207819746475337945068865454746947508239198284706802782731182025273246585664641743070360864481110831996202868584804767634129491302139347908589758236142121594650562698763426376421695648604633486393111577571538450510006623126093290626546964979234407813315575026235633821247432524023350353273949047045370514270988976739174198508884946002006166885663640376856812865331368268420550604670271454989452522272243952823648513938232913783775439295188819821900624046221578462752765686671273087764356312143980177163416618874105505558806257954170408392927483627660801792021562866116088155281068956363743856851335224339884066599484331756765082001322748634208225431785693872759301872031309489656305720327913159972484023868295669379294036936020400348035405476030418069009735540437541659875875560488546618523652673197461041684745667932340672500139698834292525443762623971776631009629564796377540378233542594433313706567385644694732824609776121863326385223980754251746127172502499659369777196514679449939257477802257769615028208916305226632670558506093022410963259200236946336860423976607234567407517569642857130761046991292541851999588621851636964912634199482334159904319346040203858646788675737716312076671005811483887201046126362166127369473914151658088026859373600059449716189566486124991447032952239224110155489823573896345628368748921542175979815787125568024648804155325989376854894253304334676085319293633345171159882961710158680140562951198809777627471293177017959546766065588742164290472791679764701649343452986257317924236415922017346306031458526945686354729083750654976848064049155596122791203144008749453355392105277484434307680976236157975978093404593954385352909334460780948986501781188574343071965357553844780452453101119232032130986865747261928321560201339425461779014437730530972302723350173776169387066980723359709988384208527812385305557047539504611358330237312367481912596956232758326639621356618347934907277022900659509928533025189796834310206464322122394141126956354868912924932153724924786454236716692190858203564529740299723716425982075932009908522401424197813355395075488145121162069961963294750080524842155149103673432424531120512477440008756188230254222887671829705243571309157898693536177855956575319152193417179006719720954024027235086329595576566651797228909035805537421810555698488403029732310744291923410200797113165069635368645432772471874829511292536647953027949846531901584416719420177114955533853529490519162427461832427382525548293761652330927884834771734561476990221476010837706575521272526793932209923370613894403081413675179957839807690684629341910343916322006577784741091823357439047247035345921467177367129299036694200553229131505413351583291697086165970010446186258619925197713393712460719219599565157707743068200169037421413153847976604306579360717893517511194855073796047219966580345614690173074222424879995087047470518638666286346445904320063338560924034930219728180905687094161559659682061423736389008474521397102931506635357506861036255147728917162928713764181033951674842060149043789768379386502146275610652948212036023575325350503862000919691901101740210420309851022615298365014815896335441321268277976136865927619258593609605897476854846018049684192758424138835449482132798150619427079289363374592483482033371640387320053405422330751825293288881467580832488082512760620914974283361613934880726922563089838578455303763345665794126071732555381108836073902589423198110974570740777023646172013437777101494649724374839995201847312390512686022233848367701307433523359128338637987432748048990174785799490283031622674179472220568297226948794345902194824892700487599264283429925685344255223607942801811442817144393231551024616911864386541002670468910338963354837263365817234970954451276707770958871047443176064126901825138768671456974044975873045609770514533034984261841476349958050045034796448644909311878462555577069598875310747986757325367907947625046906186132555918051387005573530649277547015395998929117011827226120476673177339099398092525632904068520252349438568542597362717512595050204654850117535048211928552812866061319510907210882044766494124099917996184582080849839795090900849372057364031040609532933231287258395124461547086267045157581663492626833849435930660760529464073650536813112863288735991102636408604246308777226068789652697715672487269444375259451294518145969295562654846350710410408218357875570744951986166528383430733371573086894200597194821561056293704148067371439358549062624740104944407456845013205950519564179054249023529496323499697759880428208037590947147309345394981596817826890886815240428514058710486830315358358625149985496739701291922283605053833371742109337054677436199206857682237784391323229498300898489941412246191065098974284664626015192420965477656901671563658164601982012054137101728373957840588913812444156338685059343667094593439750288618717809572680178756435685729212217680676310905089648696992628083506857245148336503937666515890873987722878637136255955115636836834022087751693471026226755001501068368120121214218280020794903705850507097336219431355996644259631744465966103822280347053311995766747776353923936918428671995931422980347422847610631623078422792442815094598429317806232881832009104064142743714760255025181101442163535304496199710867212341147011412599398511355763957487849884409543699737127833007523668411914047507199106549880209633191284545104083380813569294469710627905801549136847772525654840963912924336514421428858371237697001992580167113876311079542385654702648669467591164464794942719451551774341162603618441121834464404081228044741672469310006106911755374340056780744238140555711265086474875084110822600316133050730233912018913846168010980250162263310749710599069147606258084928337589191197227830241263148813190828411555839177978441824799349110410935014774789808970376811155656991109868267426282666016138515813942482547225503497282217604496849420843560005464333145171909832412169496442592794973164943126688433613122461206262808438016491317166705048591724803963941450318551673822103933124794788056678393495291150687469300026906305700088666626283899607463223787584331379014643247245188774554005363572830893393284233931550050747112273178815667760209059973994033318850029438043382683150764712962810982426195956250705617913410524533165626203300883929348315030962233223784068776881496294895076559045322363622894867148679903793957025993394431487899594063762514475305610733527539716296188558326949282378960145809496576091255065062506535579551956653305857272191909137358934769396173223096601023015974398385483121127936807086295057979765625550142832407865300361901914101844810289761027615499859832904480251434106907165795157719259556853443497599513691039283755456353909902345211262956502193192552592869959475192925615858376851805415278825800708072827407912216931156727818740985886197944591682492775754601533734647171364488497527832196468393134371923601907994704792879659188150047933447468424799035370319517430634930997255908637739428156940117449176861427764451814624469538242582847077364908595709335110895225263513859326555506728252002228115473491172529666545462592579569417268754380629130730941553025019534116043324666456975239274664838381902943575470805984192160297505876615402357217454669871701787114940059940313398912995242988292048815409020282621619113495517531028604452977361473990228856373864063623543188676321625258099923757649810551065342892781256478142463521238852632551452700168893853323160342864745744509976964158973350628647095262466560368152578931570908786027645869388498318254393710981068525429265884896826339183073864871805301507641145057071948383939153664901872333014023057994821318686524243978769824698457145881826636949691804930960076833470631722551356235244443159634149818410282681895731386227811069872744157278516748102852849155294293876356014546759130312318109506505399205427227283105654469412865954049022243208427214708241128852629005980369923569540052747124571656802807450508973528671436235080174175434445414339658007549821269291525378830610559278194789615316315965573632397540769762735219577187679768735451168935536940469939706045116425068646455424307541012415016490185543625356143526318935808232813126555150919542192983400743345059583159219827050318352041381619808714583054250260213751423699171846119269506074245877836645996022950160673304677338126722239500730535927348334337234676366404784682864816350158915308695907941017495954741898229213012290000842299762020113388150822118507245533079825368266520717607912090796337452972879206433104912072738249172219175714568070460018960850373507778341944367304073926208080655650921910105974475734716150758378828568757345821984119723648519833779997636854791651739320970417674737145239549195164303969335308626962717971869898447286245904007228652090537403686182649836928785876748335565144195224098016348973711723731952997816987582998782220049226281684305271586715249020748851078821554496500039640639934540750054834896821167921510760798283308388833221187632309934255898578392103024166658812814390041394604502557125352129490182605519886030755292096430961818699603049729142749118569934242042784878583641078747506753104850805134756488823617710283996592642503367882517207656726690420914324304168137049239218310398190191815684233093296401110449631295924074930625851484806271271547625293923935846206759733557048298020891674806230407496653224877480844628880517963030406719526745871909688800294014315771790900880880004849427289713727674435806267953763449832035823503175700894753933839387598076110119473909107165452860366097569572152068460998041825239527520797385837816484602904482344284815793757742236740113752881160437141192541016561935204839920234753828866429272803450972324183767483588520294061976497014684731942661289505835371612141900536494827444527670712413327142601575876227269210215618643288468884956277607941748472971242485797572500261840883496946164685314114815147981669649913326178251627991958329197168018538544156912462571040018627386650846285759034087121074018010669771790012747999092463209236487753399246482668516639340852734828455084778192569470217483431140871278338384901953009836821051158378854128253464659322094705732523775921549885439194036174539874152890978563458196384828012420515902538137750443570755740940961018044296519587862584327140380370536638894294486242007052561976872848283394451618804583108667532944413894473689547395861224628060306774211013351212284547772486000720832998500830801218127916862608857561072721803613521456778743607122877641823669047874966365708419291642859207218935064223646017659913326081890521664679973412421912763226198753323439432260002505075958885179887685825212502975281329951543195176032466824296496668735904672935804677198726300828368552419480152921433181190679137574599598985155353977262916120093089593039801286558082939807864816574282654045407546579683714993162171138495478832145097523528351430983647824207057901158906323813038738431354574039070435471978081741423216887983125621984810298587099072832088441325165378326850200874118315918596723480294619006582895399725365975667573553954971518609171669590641853953824959788638488065185272377630783026417125382646237967728962300808908775859127219598515246117335270923326211851712885578589315197462299199769646574731655947223273782409141234046383676427443771026000823539507487782870437818959765425441476670898892182262886079446543039410255425140743769163618652598439675858806780968565771137018361501870628214386557593705759580369484460488838336771449232666198604164377796828713860520390408530985585334787248773671042198444769731567711209963652143548861073451825538716514573212210204230676272275763943683956374822896848850019879802146422914737006378494750649736838555836308475342050070582011719445250264688859416906089791285700984122762153909591156818939818448224840002526368463154890406993896230160805955465701974525429975549327859508437098202046270574176620439359891745954293412823481411173900046904854403079048143090849201988989960229012065887557822321023471082725968228075319984810169891330961808803810051203711992805001630939468710775503010893483418635441835830865188283931699073332491462727047489993405214231270276528064153800684781928733822140440303820329339872148683155466531777951236391986040879232106842512474892043581917369146498726162800427818731362409534222376372445051383951621443997786038720834147798186276882511104722491898149137245948441812179018916570726818314688515710606567775790613028585801564213080190859219323726158996836652288188823691905147218116337421421803221055255204458292566223831400234226332871224054403395468491731589863530515386628641933148225571483800390083839582240971230027681488634908080313501557649680411344353512638808803780031156764045753491523052470504276121851575605573920512049831983965066621212342066709599983734859570917531767867182743031313172197038576472497773109630558773077432046981223194487736238677174783629418695293391962741964710429745862089186556481123845028485160521860200637814128802932013765143567473902590623768271127215261740655409968721604778466404941705144206582010165898707992587418911902726246242192488509150731546345024806025480617290680893256247358414872312359330840994691394161091810557589409005989169554289572033698569485019126850345309945551129796413486985637019992383265175047700438979974460522419260241273333746711486642698540749030918407517155062563853022066248728775594322601470603401899547415731823331770034832679611302849531557595038823737605501650919561553405291153261774668336837105323700058981673529707045819810210842933731391594901488059668499679705245662842631524419310476614403286204033469876895690700532941396400473233473278926379563815715767243638628833541624873181439055158338996162465589112181594946421790582151050452323128167084074493662264297440244942362320846344435488563701343587607534432540344931379698860305734567761320677437730468295239189689984246228118600492053182691749303565167144986736588139192028044090051257224084613377747367040965252126109099327997515352288853807981548326024457908975080762136754733050446906290685409236176221770626011921194035577086274619922749131081274386880861337603090575479214317701512807573816429156020950068524949319303946564695017115003110212404022166387516605294478560113049702665583657268491531179368673606298399465381528037784572500010769799674862025021451433608854846173357990545909367577386356519909493002400584638822317872362713430166702968136498716553166526158411596229860914696995172233328507932772457868285187618926287045505453179575121830832965119719786649501567533416569561058302333459728966236932998628820612199851997574020518567375509967607345575274309903542102168852172266080308373871261522804174971859757866543885687175712108038461381321630419603673450233516288134390322853940854789789755182684922604795750855935665340508249427543768323878646701867738417189271979733744297472430011928336407476298998467897395421811827793334663685029895368463645836648410010680928733897477054872304282699175097732251424958301825270832196768151529139033778114226779441359084493024317664433866689337018908548222194098024010448830686398127750914645928077037119123772524945465783620570928346047527863599364464409747966258423323071956082639960056328885669759601553417513916706186253938509865547206453408933813349969414831710338179909174271133910421878232334998238540022290685479277363355010185804526970689752477409197721008673453657271292442689375409432512590744054822318048450080191830618966142261365139911956741115815772002560789043048490773679073966171816157084872875829685280761562605110772496725951417667679579163380186468319979492170761576505239175837556196805821723236893577458655670696912893350104765421746643394778248717698056212959409092642882176926472023769154186199424156064238254290038834580773083300939064802045557455439602567480414770006775795548420616603282920680245107168921206741845283763425618791833096458437369221478795943308499748016541938934548872185331447236563703643268779605544334153162767488865901550540788307915985178303561268094891094621611945075174194477002814092383857570708756432000132498570260960523785465852322168362066562698422851617491611739713466348343584074439754252297500768732498283735824876864789177345365524535964463440203841111348433731446926205554467297896751802792412751390266153206088936444763943035505793883770886982969791850853823188494477582786179291803051449229988932583570021090227473840121813192343516830103517153024196344327744534891675841503072834563911197608833990854814359183331341300045372061556363965141055446551125380242628266160184602121994184564907885311660657147007891697063732891236557217323692086183405352688256647128649339089162568025357909795780654686089441149355269548753639372218891749723665813747086699209338130505184279160757981989532070546280288068291309495562975892433065505648813970461734727871887891618012196214148577169600524294342928916578624228267542159973696729003680177222340460258552456153003670481434697467032366389602685770888665402633966231981570924694654630883137485911925824050434925196950005549677474888261622467264951426842882054403933677169486115866216327370327364183792330491201630211645473863028232609506483273573973216969086743799280609605033593408427398830581921837717148200848002004228264205141493875381927155327740456133010129312878928434936371254364245748998305726558910400375169013061238312694893750831633503841436857537844980325482212474046733755560796507839275136225851054687611377218788898089167880682296200500275929196270134725556117802674078354346270124203720542660803451681590063053590056767751524651158904869089080317102292575893772186249914319600912482773470939911130968992521279552627636087166789547268990169463052966584055001312963984991010107465839953521991434681067897216891060424377942204166325789919541970972965295897974942514424360037533011825141787192486321477662358488954486535888890318134160082815463303972044605463384440920327522040494550367744897175550998992468108973176151194714111703000345940952472815056885393768301004339549907107642034178590867050079855447532909230405415053494855121723685020063398746769554566826866005284962707664042388057636655201453594715801895524033116902063789841437998713800556396337117324330960748299269008685832134833881539724138258348653447769616688374677890884224210038627046615103764519822614689495203368251035312596526379277265359923089315851834748458765563360168279756122002224353929643623291504765068068275395031153610344540348184282449310944567354864234334330205975284822938795563852118371996802741731418341021648977781781694722625412152528166984635607287657575795454157055269867544205705694705707690394391650049864823501231851040331098046478669537771127742917157926018981799724611222784394821605181926680511593358365634543454474788796402848293931122715608471858080175245322443973573982098902133379679140583858745481049577447798515460575685190706924214925341120169134354366883174883351190439698147372108140097333256366361148522107100907447133398652340405207977653785256635047758540221393854371854379146972615756313960073121367302322666963660662456367098302618197226006261041661074420705463791319114580949090336023330216306516632479104236350404336463308581908698259077480742266426393566382584199423537572103934309989833412712495277238172421828736326161367666752402561710987502558398942280973569422706371419371729523021864267220746280093499627848780533325836146593803551414355299391235818970928825828819389091450894191676306964433705011648184948737791251828934754465072422705508888902017055569026590669052631259116612507686567063535134364529826214289574338201405274588337323924939255932688213615426700546729599004762688435542703629606832008335703485194036990122905583913652548127086695972958877673545354083341243590230558380530603607346481195650835158366088709114256699573384076010733093348738349201143799010216197194535190175727696149249529867993464612186708347867868400831954758679743851693602245030708059963638108907784426069970402825286025554802298968480127956834623412105288945402120300186258797144100221897263885030518194851905794637748975755415002199371101529692765329472847494016210005459320968672895665189696114944433932716911670969132915820652212924431596417217494631803920007995138563171035705573173707078957712109213103625605098739266595811382260751163485704457334833441992511574449727034318198086842910411470296211128857066740271279906385244951210194092863381180721899939761522742901572982036902401970323073802928997218550827913216654302966007403806865108137381960356742456675872526913925347944274308448400418862839240939005899018643942205170317919615586908826967511961180392437988588742137841064965373132450053095837424665283558804964928266326711469948058391864588401917029538118002736004980790322048494260958594200298393193896747098988888843405586667865136150734200472199048229257310383983195274313574197357009284367876175293650771857265635449609047125118025178544651531679448860575557740360979747923083578825318236333072946491133083712091417638013433165146511321253447382660887984681288073869785029075129020676581147283741941991034728680993192509710252080533842121896065167786628910100147730616703886535755571044588959598728596357889713941845442613877944484696711542309447048622611618591276224094793324510823209864896611970980583669958635542340430473752901478713689185807744114878210925487636005517902519688315536675020658090831918806982448563180305138595116904859477289452070416773830976361831160152629985381732542529528324832334965387560905672051465088817206800967113675571158662393127792802777371771306974698179387740411005592959987116719006665094874968616440707392605243693234358000090629185766411198317891007119402379963863341297415372521332054436981883294842292957737394620142097964203458383187318251900907967601915461875808851713334299189249117260776717700052583808100597598217053300791405457765144832424972667262907545312486893133971898259262152164137365068003253318788815804224756754652115190006092538847598471527441477611075834402370459614095915630117185073020905839077169434216944945979183504813691218009659029955628995685807683471811490951208498580532963897627283414180556443182520292804043711112970153006488655501021501411410527499358320958036236955745806255683762622505198144459732385009575134875965190983321867290914625869345922010719898458628086061722870164560561207251069439187293551136378612843446349487050523264591685249573558151118687928125030786844566558255580026725861993254150965278791869737144546435505265498264043411403887452726630297835704697315814656720910639388027013606253206535583609374316155651100904268359554735721658001094025472070478422482486946456800984095862037594998865927647536268691004668806507621721325109612813519614150750032845458839772211792822039692543497839596970090243864034657523078402926404073863315876539393024414454126971767011024808723625952141871939338611904513452732939661596284198613925914741349374256172725929972988768846271194321258430794091739451554578452363827119076164338009193115533043784490410791752116051532534328940339266761098324915415817094532197230134530590384418499367269579531786452760647439950308516608613409507153273943002469421214766605616758687162801061534898771640330481306389645281654261007051506627439343995284694302452929724294688333431508434519927265146687203544891888144808011900343399569468924819952050456857133550076826573838793155468764554346556185921762359066112103995089657887996539704064002805826009341634329581621672636565047804474575169635708019695789351324381783494485304769786616870830775985214738575921913059856566132974948973572609136685789122657709595535156802337279171789847245303011373181741920063600968563312716462218256601865014194584682176362268373261612219476153977566146775584727795949587917292291867624401088122327469003694914864204012170367563676132571117154270996584432492433519945617092167470795518126211690363458530404994512647395580523459757733470782788713273464277290383517230585662037722870336522676362341156729412140331044467206151034546878607487246868118367899927152626422103005265309521446922931812205660064159518958262632170449830951366141644655845367061240178234512259266354164890986133136837524077107638390434166270666853511031218824682248690930050688664331525396905496792225032779221927106152320126944671342773667041957375535213145803135385994948994386348289139951437681247278698566258308234403374773665390272704696102778493172191610825308966455683429982538459779077477290735872440130451202768811212099783574023802157401642001266606488490418122450357658202589877476265176443096725012794460003547611105446232625503860543412403303082976793155169114696988938814258748854783822945616598961137948684480140634457515878701428551680392861657877777778680114918565315926228729028005742979829284630105974485158680828654174219958778117218849316487477614081881840802977117693212700068398221058662448556078431853094662142764637377624812677015178851568103914601322957038009695293944387777153770083214329706686315364488526193737929676377617276123021842755074772073057391309019982364104858654461689350196553528768630244668518256897341011884939697407287168693744966341670633876558604796256387338780105665597296471032309959926322426529142723746596490867333502421310465470566991503443908125754730680093205801397561168509794435718980578979337126873399891751179731546868548057317630682787553536895770647701774360615514762982900308900147504738706388199581587165271514751463738789337863685734146756289572523629536147392429489760981480324286819790874807706776746973591088510313381191002596985970414537171700334794001611779905125890386759694481925805934914114516036021284374970310757287995725838222504458820799807493030759626099455473552353332925527842422337699115252617945539460984711997831012278467974377982630190021487572911639287964621285214987446777616420371917400709387215259824085337881929832268360582756764033577834686424424818605621629347941933085083819755208403766667184611539819449314194456682998904502671751274367445780393268682765417058566352528316387625718986068597141265672645861044135353323362125824231148834173056197542502436975373949394837998113890933452434591857987181787114050297152988125556131989762287275839909144611000019708569291559206442752903174526715688040153694286985015421709217352527726620516053136434027596980063167250962137724121405957767506733303275172543187618717185232481167292608743410744850397201300619437412044639442929634952149404189975389881233354132717627691770007483759053101323516968319346331163418628864318417088663591030290419848285515440610937181311705155282307371888938593273913630066486719449934014022642674798056200141306233709283616414166661353564076329269634356670750875579753891917282178727824282033207694629218396937688148271180137069312686217084721505490961356913479159241263187232054017684009015879401561408829108970526908323006522994140706382405779608013220566245726695279081642975760781364522373784817006126769018552325468852398188606356770500323621778144061283381373356317945694394614553755094056461858882049832442179231731305614670363339676390373404208144538308748084888368248681736891762013258518254115016933131902781474644022272401070644768959301355325027204960498569666772295597906442305786528352141303483346433551198684793558904078409602313723525049157090606459632025149515540687585813693397923547319134969878656856727238903992651312631036975964987192841335365039551205646720257179526184895748860096591618633216151632146914603358796283341917206885288264919189549345618976736691891110231148558985485861696899574775932316658913936328631530711889214973935025100297714430638628685183153124890560911745498684746682310830901495458910593518328427835481241318769082972237629690205699467574873657412364034252352530388683452873446879598560761923225991096321519819456838051979986976960925640165008423912349350021548058799678193543108501037513544228923799415221950296011578725116955898745393489304879977683577845531377165064525416083449613816635939095205360292933575531947319254792063881453445073677882670892333159372508708203817618665111102479019939395627063260831897528014246109466443213828551221464848959692804975619103928813375962676243144810997473086223199805346709857460139514203329640363529275975274995281182544201077510315567970058491232180678973997771134651849537974905335999127506238278490020035000610564295061097906013744443709291229223524446136213610571695940202817386585653878510468591801648979420516395134060115416703418363206230214135515297659573484805626244522520098628797510905136220773189104237542126095927003899031266375005233014607498208944602393942605745577713707349100484286276648530862081901089632969029661945336452566282471794341811227846971286695679761146415082506258997571150231749771285613128730087442239795901671635867739718945616706025616868831761135634781810596217606872496472115663493750325660564088615994781331919273456379065647178082650520207289997257993645506097120486417507494707847195531411036346120221768780120549372102584950651230273652982679458050030562445346362826899351231212633254474607573033509427267365785093048939843438608373415963679666641053670449774811630403243406957962662635108496350663934422124624934868534275363229834060273077962869661976118359600990724815456205076596139346067060749373880289086578142955278309241365712451797313236376143493826088153934561987068005077779202090054615268214985838784859969436738970160943358431582231435642850197257806426575088584011714488944636547066159789826145269816180076261781248119211924802995591126850848562077750362713594135117116064240629104089667580582610451360554737167744114527968025869984879897647519679480302213508717380384062886754056008529457065126922727900461131708599098658587091069346031279285570280231422734420592451167153240889071264239213536739884314578944807288504537961555831535699287700923853526819996718435522011706041021119530105154632746530153778118120722723376593366090802574036811868193638087193319133065751885986815795006859760783474774890303586664436326344922428856117712837353159441391746395592470717089234221614319994098303102007350938675718315346541463154441057408349249861090858278760088123558785602254794082073246634277144420816532399458934239887988334946933876196085897870584616935576852820318265100686585903794944713210592881253865662003566534448194074496037159483761074841469407823185374535321431807853718080943690460928069137790424682378947185367572400839226599016070604692128119772764344649603633576779690567904437802240089710892012346762265257969602718535553301468104089780915798135339791598255822090747956661412007750339799132362755447315367765272682958153299917440955466420351012673403117490009350009426293658019831633323033710469285875606599908337229961959348462101775081920379167193630804196243665037224631862008434871344853139785485774559684131792771754164754263597037257029081235097949058480894844411207275558011849724958314931695436386986542764109814242258887502925952299703611037682045147486558776097908326603894389385808072340135170719968756190155623539205295407385303456936165656709153450152898888795566288927296701483111915662007767073713426175849899819838306160850663382349912495623252985026365695040157247439922713642866494270304209506364688597991611049999734911750104477681790823946812237452841181720343700416094769299198984478024462114258904728169350201532924447129159025493923703877262583293292617094691019987106604645278949991498586625591141430638966011424881376778142546384386893018066320332748737697058364250068068852322160779015100846724027286217106492514008057594871693422630323998590037231205605217933762072273683643766501879098443342393463965738697947208964236011703885329876039307115366373795162980164322616177186621143631637150248581648193718546657264208111815044422423268123185360204728443125848403226641284437610898567342157939696474296951420268286011686912143382276073813450735458401703200828090947321082751165212922020756919291513163791274850339205400959699340562104035415306917796706058654499059212874180096326015133412780189224512349815501624860589126701267934387262561225292748001770356607878500240574487736236120336420470752140135325832773859183258331992157894973588384886078914568751388995314800128165946624524442995823627234493160776609062041260138829134026448540537462678156255420070039703780095290605179929092890204800310366415863343000429298442409187519576458969145882389133518708649279146729897801922410615112105486275454934568079450269617784025121756956565865806364882584662073957962372841309450410874987176660462912180137415490407498087795543555731610977712894663043655506711250580820246333296402734083053688375230803494978008481529098424717554603578546779726685821938425857384397374817747891686781409067515387447466035509834077311803541942358112722972770318467574128505546740513633565618091239977304366768161916695533145489709842747443006427550808746865547574299912196258673705039411219663702775600816038889559918504409148898480320303527148193747956646451060683992058151488002192760847532308224811891451213157022482419614232246075469174286395408015972222670928384793937337290366843330568686790356982283495511030705437033144290852890665031022632791516852617568225542169095744064449498538443881400300311844984663161559875840126337011578761785959401882359680517047120437140940884255288857646224824986811994637149354443800020635349732312547549869003727695883341952326352808343584464529616850689380269469430831562730286176761047307970823907611425798194867801720355668645544085169077513914162258285113981557674305726003110959361820251303239620498906453908849513398265318580475455113167844203688216700004524005997513030573489982989123767197614181608349716945869565545157163780989673849701841770050554297019962226144585940941694011181666121105625885326738244007974363217976499494618274110610417718516143907828134424456223121972027313764162831384162788289730316949495473963598087042290840458951528995452804423265492663733982237405013108369203698189617561311123577515604780060515722562843856166981996153846784974667552762167021023535552873493569142693362976380246943127992926095684275731200510084182053073731120096701094847752639284312226771446778634296782541261877519526612130946163304482901801254823468613210680954467854210024105021029196348356258165085635300912517658297373162645388637284364208540818686015791437840421654845601235916729876800158106745398045558948543164519523267330523812824739484237413659425272767370389048356381691911225935353718424682943154961922881485347129032522436945920758391535268182717363992725930654332964800275863956642613040001637042797115335294281942573710969587323369632420713800439398505183392022954320380757326158183124320411738962407375830537294186853160518241562854363857704192727999113490687725012033579981190421754984515489384347612477512544559706502226583704465744682262758220416385767433380234116683687246795140830724623929699947203679887855223418234928264223232818841851221429387195506631234459691409680090499115021416552285067979525500370108671414070229687383859784413287806502058454636408875918378403460052301326335464619082995863844588973939482014071971970551649485571941369348349644604425406064151561010198328328191767742196899251485295548546293654897680353861069658735799412583133211666935045909182380912743886960862000319881984629203442090883659131763855637770676654092363939877424642094719923141163655046422441814142785902248833352601232683999476299271981167976149046081219703312175809631467538889690239832199984957890347712366687983862419759050567538544628234366242149149186688372505988031698429361812131751946847826430785814519780717174450620365802958719394789794626236547610434142033755576683981109931168400140538869887735497052515232562270188909874379403253094523041367004913317816856755520844157746731739715373279224876825502456130274632233481966905816716320762540926686586118395811475699870558165275200860302926138580517141329777916208101402685637399589944030182100454811357224836077072866893200860468831423959780508089407289263161181774079867763015648465626097088414370736470457847830811090526429546035095974458243402584866087850273513690585194546857745836188270199891346395887957291249391519329211948416560519859577427113579242570873629413914576787117985625018392473847699083459486647292063601199450488799234709169431207166526362519524053451483073057324636779163237895622821162287228288231801811413828463254296870605657218215912469312621240176269739733746723625260351603713309424675673117284193766199366338599368792177276383967994796258134386352518641449467432080227663563111469017468539113204079274421745039655002601945701847995262864464329147488485633800203438538212292853403152848474950015144852808439145219593103972187344561658288728686678486642525523445681822250249077841046889032053417420100939012979325929536189734988764563508611943830660368711269217992130863232865452089988520964596721655721783799506645430018108994573577646686107542596648145012127240374057276770607385421043186999551536786960003045064850238633857836489215082668042695088111908744760311831117591831494257709335029779425512851432774446638187770492993852975635981233108770396807229080599619128196410980283188825803041240648141021833902900038916712568859417959021150811490684769348597733347811359576703725813332012167477301824848972025693172721910972367873039981117609033823663434238537564406784635605226218312968706954605631097322150969497994078767704720949641769726102597703047432125245030723478462483243370237603023005266021534703872016634247578319059944244672355553953037550500572890116824765777327178924959508593324251364136389109375372248939794165409258323337889862982652088755712619788472455990629163280950780060455921933443764418814729083934292832882689548255266927116678744847049410914171565440731980133315787792487937759624089522891715816898320750445129887464755059130669991722321290886904417336797027116452525005796568256818514818736074674118082782121090332146601909193344958733275265624195391121948182057957038711149427678596297157458523765002168056122407143075508098920576636020718112622416137889025103687542905699446989852071589330087664712496461704680847434236589362257380357010645708329402061356033778514182015438783289950530000182652747159857648457493500638561720197354206385257259540176830913992302722554254805335058852901710179407645630884941406909720196174320560818417092683865715549521051496709103682931699029248164766914195496697329293930968044444072387597066953997666695682368579961186832429116003872522644816424952331283006543701946684501042432996933010862348250995984943052609655613935148818868017725477128657649276240482451094007875565463344642976323231173906185525071569677889253616607705492117906661878463729993209372283901619393753811853872010036562952682252880163636237692586526866051232767602231818026030620359888288867703259768902353856827354121893760357089377950303840110101417519342279434364134785331497217362419672787524045457300717366154003279120889213843224265323643756362668122600671990083739010970055187489826170848499725859767977450398693608371574239397617408340790091961381225872141704853879900698693228142206553145732868759716108131982081378971876371957280409141532041150710662135288329093292658823548057999577065299941452169576824618772157038693082100848056404808415412069234850552883368447899351537563445613039616578293538362427298894158802185656134084357317153417629917790839220829371861145995746504361416604867758286624550796660942590423852866873839051537603901700652838998856902274254251039648092585714720132012850984442051899108200304022918369430594474896487617524677373434657877507316705720900822615721548397389085072340473546067917013763963016122389390700313394116804067650204686981593882250958686928966528809958029503408879783927026068506246789391155503708286915479108536211339766677714857591261289055263103822533808520863431913008665719420358653113053162804391120877669545233144386286642468425965066731979625668259193251313596754227043665999276690611076836305237617431856383072611697280305458766426859749056865530236472870881658624860539888273120406785253219229176614521429155452800694871214974092262466902564284505794074491070574386008497965206287038214471956203223411665715003773150778156377350623703820131126226576664615822596357358003302852370534776354199701360637355512570699101939425873751467290735908918616749015303929951208126801649661256866130572345129396155007848854733947419965336329798704728088912282312263695124646430276735300264440134145054088407524303081430509167382117741886340907232893970545927592807805601522367090967033492722484659246394760065911020124357392065936011914460788176179013833206744404764092297266293571709358839840457936439835185233263863742439897451027578507620099494592242607135935952446151422652871767184133538917787888009232819970019816463824966381592885570978355512001031104420061893317441468343541441687758736548949949266594721689565050268497644007873328432554900368451448903287298082479357597729858471119706963173427492620718003748340199178956347159092222644346936509751631156961154935479572381691518860772567288543974725272430045372582768709885904737692448168329791628947059264985141908929700963081027671053713017367816652860657276347283111932104664823660064247542427594704139911015239936081786165976073755067448951996127858931577359170310305484535955197711742702788433305021773898806015515122075073627448483605176164100177846197707392478874388448922014434126144985241415176860245501804381335633910572378385881919586097142729193375376936119304556127740073113575552671068718035667290696314352314187986253656662165666657974838476618124294891103092635792761150122466916601135743684972331455340429593680407971617084433257824152840104633956407387317030728268000802042090601683223566941852113544095562867624251632384113876768659690096167125491252372788678901133612714560666717336665986384614400780285503611589346629907945810625872973234587532465142399156946102289772691783156781071988432020504493697437098987902271687855971588726775358445636111368857944576056700365129004012730099985025980866957152127895862019535513935387528710159787276635390924596713066535942349516471923275538771875305821992863011592892963795305965231197413188566683052620621067341662515676300735599873174897977308174818312009807744868771629504727306807844397270897473457286238714411575698336862127640597773718901191540138910664946808036606445997825663303472139976847769720190130374551707108791939021183824208979241445214010227435763613775842286273016704812768003250624114163927977203062520394712472201993590748973111113150223658159617316921355678215051199157600091526541488157632072292111742807811499816402761989251757699829557770695210044595192832966066583748073812882888710170781192501127716910293224963378519255581884041803506040123192957285517658348420076962094310316000699108316489588233793875999490103124225860516188562670055373746245530865772906025224929796183861176039226764194589195063118302076440967275973359874003725544998290852277420741521881671032042803234582867586054252994497015221508304132093264744990653701177673340704342265320602331265881713833984909501678089706125308773396382111691032942375950449916364109409633789501700102043086234154608027152054910443917446881302164586100874205357109990524836384896849408898089567071040240473132279680924966289687142369600310765394718017005456892409836224571030679450001681519483596513425118493581276710170128929164630397145083848282256171563184103682191723795300579237690999054358445863231840220112853626987519862283027301996456727489844900469158714228570444201310465730887692001073531400071432345260015358798170221477531967791298196886103036377564019898735050089438120497153805285435290946771133877393323327603295158438116959978321859730100668035145873086084956901293267039718074742552591010232314001996695459933054214709541746938433049312664069436184333300674302634735652377773454141301961559867461942444869082642690295689230292811917414606747306476757770620661832307268184597002211272957036030047972485191729673549939613520958188756671333044047169532896990046051368707014279076476728804172171676909771974757071503235513997536597276442117697126482859794194189933105725875072867834203001854186953829584204081123461026053158607893401467271151228002125463757318446526882672105139585758547483602875413206528329478832850525773479556111450464249599956782388125774632870842601310616576239359700969150494641519600022388988381435982353694728436379721681342742573704873016686714090976166065780832683330108597788942317804761488638070014795443983371960825978402582569636897117456703276023564584472434172021239900753997733193215554937902868280771375688835448935226769345964139617458222706030188026304994383031435925775433256217313512865492067768954435716268554245498548129419290963903505257389215915809914240761093035630871930490902461280200733659813043350823150170348326983213081714173090052693376818390054659950887149114309145817417433736066796194194085753482418773702056521370775287287260007793929498950009156661973863770919239871451379054041489539922883237831019699810588264771009959126379324031085855861997124620403646354117943305201275951454619066576882985865788569607182803836671390972884479499370251349905576982122803843071501089100686436918328759561069478598329136636930191399818493209938077948506534397138067008499577629887479411296697519713395122264768577238868417724561697793862064722603742352678164714819891770934659139653159134585528665706438054162440428887065567628488052118277607684121007405157906164004137970884310592468492071380061893391295754119283339293438310148077842558425835624026443041973533957041386672879424865084266210536493917621053292297878572039741808099980106221717740146439212722726267037619128566007280468590732830714249698814642767839736049856943963489852697912459159345511143215935470562158389922639899531020267488912760057227910963644380924468156868841007720104206321244049749048336014999879074283298254646246547886643949967318441666603796182942135984206321872055270984619138282962869799856448949738537556559080902667155909563461991969749715825973698092283102356208097761976392048523583668646089563193675316108888677053673944713700276155467723340829820942623529009785053661860275949109391530563786743958292373911587884658825793515369633508674189388395999497213371637252652221016749544363325628287090806615276567419352858314560136100793489736325153049364113092436970359482110462529917634838447179333349811955681440291029509407096395207816196927949001721065447065353962423414953621060520269011772062679985461624359545220198260183296394007587732721952856411800316850043648158457658422359836345178401451467929239729335614257081973702920113565300490196641258032519508961462836351035172485237041392620240920089477518372543193755594987618589842926220895145846021145859589477095715570642990927400630465398889793606678530007132325104906027332477176946485244950378288188414611479307117614112608486869611538899545730724002152388758297873786041372233687583493184704616155432206210552024191882402323962221571505492252672337420213610028374584906620461336348971086723870842133548309710327278326948649621606822146078869690756749739326017421880672143049643509943615777847743729678581703166407445196161127507942941704921032007492311560497223015454777557083151292640466223567073289855157018630486223985782995456098457040361698668929229107367826164163024151868382000969380087996560111534435922373485249932274363189881121408848620707509986845701257719082550786800370967381305787947895072921927107433145307536176505109221181728864390651399531322314314060120614222394694825398008301952518311470259476751792732931754733558946337472243462679980364828567387823131111525008655430749823096728695216612338884862199185745442325691808984792923428133853563977517392607264594915146724470103419762097727795065499980192460793575639038929412535203023107326167023279658518153979178001744169611707476154797275908604322024331642644367658844182905115346534437079685967184396096599230670285242853448126702888965989604048431369119329366021753605844749982108406195241571282286972973162982194438379918182395092078681165090058817693954881128656807522725985131969462223734971919752345094069092699410761518354875541907861638903871832259672994195235174014282323725442088996467180625562160726432161914567686614689902959766907985443736729648826863696764012878595896445620813963975152546218931920509073157954782765013027014488468778118260789126595081013629889551313837756655587094790157681370419532754652676248411646224344521219632283476282881110731889811022284291693666388165443961288031342063740505081256186651266263836963790924495361117205934856103842433053511706971290924404640148222248126166907602727503996317221477990711303775023549111566246207649218119448550484048342911275702009655175691291418103124120303681167686037528381726711374488884054140601423122278581841164111382418638023799349853909075481077603826272008445246751465785133799724160219109393693846845937732252836631094634786174825965241007568064369049163082599123669221885840130476368894185425435240494419913587942729996641433525804033967255790543289312428034597678609490738174319441221593372824517284355096494452421053406449161770317652114722371536580105197946678499092075327384158534176992656266431685190809580565409485582853153317263878198972394670919167040641598470501478280581003076041115474896714087829064248669048159034516523542557841177041011603395686282104395418135744151031053322521075152142198525121578153942200767421574655321634590855959967760296063292018308256927023479616644185618065637719395868024238016844735396244420908379504417092836547321620626258029656435301462006508500406800300295113661722649152546081067054062859965820066876386144576015555967473684586647021858008751582876252599675637083094896290384662419676718784893147896698464739048942409841476765567457663806285789285423848707384826449638853492855190690389250246349141461062153446951793216227394021419018447605767710861936477865848141216597115327416906714970012473300631740157574064414621547783864578709655352372617962604250756394631761422668319875173076578520260152859211689252427948701399937661162049920453569355691195801827329536653051310638933299397446177484465078623902889485358547410666184603168248273395272963070479522891455682179378166632590506915617404346151821840842020291730578643308849461909339595060402919123471879758109736125169219869456938751553610455379070533601985017496265113346467592371318049282906859356376223190083526700486701337047929527607556533406074762633870283081638645984981903011963516966079659072589884861507494020472135620935957297126439174587967156047315158763714549925606259331647274690492064136447126170480347829745892277480044318278894000793588860318207951274463769878795881473322387404839164806124203900143546950100271975623774228259654600522149275855926836344918357077199011367755289635715502670950781619702292521449050313810315458698771476604292295416334450485982767911390405523805775979807698972961929507021095282662034927510324581546208202582838042953413495355928189514968599758974218166095837431726387032638018852167072014360739134050758187216381457774226590376756884666727150740213890373555379609377741004547823531789476858314252843067701900876033522536415146570537244148860384071356476504645015278644308364143318091118001602434538478544737607611357819513321474184850302805340745313192913015169978067742703672610964102642198376737164094218217916183827188055153539643657672395954834865964184518444807742827599387824782431963677649890161141596187289196568712941257005294170770746945401572303585574889089096216864842373301022634406675234019937143831623814603004728001123035753036333165321841224144474203236120106535643883307688890581039327311155880236372347337093424520757553254358645701264789743243214423507086246391537133848242026477157523000064793312231308929238157120797617995338065865918283191902502466613448906903252901931513280585464246063236078561615207917956974172150914375268827533126813706565316799071452199038096594747311022537615102041008566500852966090029832177050171500582244012268979747786904037562896421927866929207970911270464255284300479642262445384105832146153232249412873653310405960011935165483881496738806496302401281646014198718040659896435579932847399536978079269676677017831834830647286530063785330143116923214535377738454090723721515921367270327497784354412307021679944720340221224007293844363254371051512343623185100103562796024903032291743432478653967462466920797201688885902383967491637134705912158333394450094883773207384023565909050245666736099142289652683230399133197299570299924020303267243299931455864848763980537961026138826457960532967907990059662223230717426538474137167928237243550788621958468622612012235911569384241864843080587331136419469981313841743475990252624888944758009189792068745602486645393142983977059364430959034091161341726389545448867075489850470939403867941755926841379115086989225027868544674677247976913186670531550359279390075839594802939040729706483282713316987534994761578378694273161430393231971262934041515542646741957501469330028177832811296590144161191130959032925888884071707922987001501320146788413807794605297509885929654440937519663713967158547457496825849159957569453963466426243942468186177268863347424338636527882465399222549870367944000632205880684646168534357852316637543705740889814802965452788182066906324307631787872459138730477968669917362824149549634747697500401159975456277328769423298544526664339994501396410872136744013528592122703330381539322852776815842253636281673418526162304992194034828851389857742189458465183213553736061322886598083646828491312117406238201903731800528961613901663617404879563995383729851873135709488821336029095562585397735438148958161603442632279497940653013731939713043856266185591341351966972578095406788076479867046050610266389257484581117113387972952694156555646108468206392349673709354926511788079795575383876293218139243174188978418832702087201604459069772452051913824384303038332468846949149190204707381984557254266594083843026526255549650166078611413881988285098656881423765707161363177958528892194427806795058493372406446276507349534440448253038304493951002847137511506257027684346173191507376413778568840094271003240544359871258299067703885188938208021829818882800004062450439800047517934804792733633432926056521715541873710105693884283939996122836865883591148725134445216771614410333913945732459236942564544085091873263543802468214164238894984001234481725090699579045897958700083914243495600325142912693061708522127751580689367770618902283280239385414360001771543433163649718662661157502269572305626106602912622419400205147192435436173756301830876804466586466335171918906807266086518465533390003888158574309409420811221178509464767502291653076656540965120564196715044172783133933928409201230408884898899276969271002651393302477034164265339545596970423438967162715932951705524152491545641728999436900111933944768703731527478089256912246710176139404390106258054727910956127323995234345648642752321770568995106633004477210158665416409810776655135630697100642053788241183440233229946449306616780724128822869105231831694188779242901886192259683190961471925668766666171210192399687401855282763696439695543054037609353629427933439141946253655932331859813690508936934127095539031309896782068402314876930474838584206027055042759357356518885374380482702127033295429206017157947193202582845396367800944800942915765400378612372137859079536585677412954330113297505006655658549034659350052832945011202482663157620840313747634095540180702325246287058015923435975598794303698118876466080779917214589745183568306838786013516031841311476421447867104563976988053245216576161788434212837408636185925061809437496176581327585594056572406275165686419453290433030929537309180793129792466401059388172734324141041927518719037635638960504649256615163132503791715682044317582670554661748067154549168921298799833401599541611885902409708299311458221649152357499384628243912624843982628321645781611436097202078163784168925041629206298733017030384616712080389728818565482988465972834564815169626087589471824127076861940319386211210027384060470246911287482492121694218208143203520809277858614763055114669721167196273352715914602840182957701162251184644414944188823165967958092935408733822780751585852932181385618923182548543537967134872315372816295866342938805295121318102525317135089096029877831724451959404646296823492553224734161493207327976759383780898136230888317831162010496319534857467940914827910145347181882092726421169374187774531550758486070480421395901556543108661859854296760697856635907645229009162578399995601883601567833225490326748600654438061008467662817421855602286767480885397661903730300406754203596816403840913442548015132230735764968289134472586645389959235221044854926051315347387411178916160585568571659065128674833513337695181773339573202610410313380587848268673254822684173384497325554206951012205617320374958298667673710304159325835966470809627246265603178815599054692910768963183055784443745039428245822354899202267861486491237644757420834502176034614497338354066183974374815277833125442037876550193728556420478115996553625270517662614664146709463017194991685496566905368611824353576235287587094188082255093969045272576110280437478027152361830169786346086744485668643076431330348135620596987772586368444215484136855462862412337488585503970144466332940447557214506621074295859875192817705059866371955374963861812553875012455729569911760184203859609496971282178142133723489363672856224190217677781436474271309498789406516550015300646566723647356406831890076731418741738699661177155842722112719879425889893745532199174553523510929886891015902247954853096467423513749499364385275714402091968298546170376950789049544679648011234769852912119932140719491180426897291315766927563846006036268725636862418148441684312254886925005754219523813044062878464491455830056493334839964007928457925952130528234824541979333748939429430121553022589111821339832709749147544332081285506317302607629405521477808586735212405759146438405304224102157599384306619702994817780649534434562565614027928563310705407716249739831533603599714970730413937972042920711594768057459614551648868780492684303828265428102814720430615048660633200852524411533192963052362540462781758689763667056745922835448165613057716636831560820721834852212216946398063730535774473820274375940032362618454553822183198591376659396037049666502222450318118801675608915082638186533189406456662519365669979121420637860103824329955953425126725719976627486234836690307811438299158279219165837193307517398341915453092285225596099140938756883590762895763404869638714255706087672908632465893230313017996624538340909033279527821199181125288425207586005240165619209485433535171422871596353943560561897282829231997370546566404988823195015793785450527909858156622892356681178724354870700215986068204024559541735681608767319347947768056154703240138212618533528803365472517947865452865652978702922966356813337582509792959771759432672708897163465721682655618287270958116010351191978959794346716439686635419193669522276058008905327868803263019847458811888459194589000555240250680238725744467812564991739824156344996092425847056190295088421999674087089233873554848596895238979614369889995519318935698601957481597899013808742869957720153851360526113481332421464674144780858158448812785052170372140326785821218597364737818863038963409264272795194717152600384945886657171256033849741868615961767528755639126864856753176188525456908445391452769715305939790427075572405241538919245305396930569225047280063881022195463147907547619920693804416683557709563043086911261565011940149525847488295017338165265510296605530674652592655008538788143321953287359241653974706621845017094178024440701221109075418801650260774546464041627433548517222776802819117954384457444750250565076938823543053450577437025510866663330799776313957401921838170168506586955089324617435829322296291486371444697470712090413876299045353628672011635634164674228788775921569066682059120899425489571623591845495653485849797503611422523110168990348458663275800071255411053117679927884575707392786241289449115088384566081179406282438253727007730685695651728900833282887400825976026295930670151186796589456738518246769865044632696627139401805020883003926656688881637086457598025246562621822587712302561021779116112699916246302232315537086808859275426532874783565244678554015337271077117625746609332187018565764472660365327555454055276344678451960273765349906825204801740868035209826386409849699322541365488128375969777708991057577651546532795844497838311634423261559254549834723445866947860244369348043761595162385571300156129216728830193463644035794924071382483592035320431515024760530501001315070748795054132902502872342495988937459575456083081429645426821446943265026315309459702119989986202971469832258968216588618535635690700071997257837483484484233736534672699278641203368863419296718549134104894095945078154425170001649944575592670663820862418413146999414145173110601799538144722046671587100115604707394561570579444142673037924855348395051334815853898067974494074401523159434285296048394403178644227374982816762557256905227259781024733459523629393180297214953417626010932366778734669089485946813596766904569090103449746092592110323628128413557335149124041908377734555094256583440539037092935425204286712874662617926043340527812394746450764002739393184310173430359918682635731377088324787128966142918174247288342313956321538659546633682495743680977944225095726354636693368685317708506093274945641482158202531986065020353582522299546551223486936254977247799669225726855902756576767754969435139243250138915723512972757373060808731439883646999168291580301962426724153695664247769912277079479850753971756842933745132106823384357852338418640250799657620666627435307339985731855843667288589495304828500645154443934558269827723855309312343571243247678253951633291859318776481847125583505021793995517335252343118784109495979864858148726779158914951554283229877470723662896933340179750712842745877198335683931792581018008517678727348980827088333402653468735449933277652323226056486977738374764285080364005594411188535351226232308704243203259937120823317927892609646630779233536430153329707743935299365672976791398782210185151450164449489299434161328395915007522851808256536447959694705363308130820296286885538384816906385556431759127291132315160905908376345020360497139473585187119150583674774606670690876291025685161667102918565012229996633395381006584108768168322616698521892448704941487668506884711471408674240521735762668495374327195292120657237423174583765253263778152422246265802416143017403299672698935953201633501971464973073030217816271929507559999309594984426804486547675741017870563123270692141876057342932896706627651195539862547214171651508735224704929695079748255374788555269245765624551872534657393781559381901381113647271984917545860203253463264823749088435148206447754190954415669223169079020286227456325485389626104168022445875399166524307561637485493303535528307316821084786166724080684532394275037033141633619315582199645251626833593145153896719642397850583134917926058665643627140794913749992848653849417289218725680323868202767135829737581786412943016533361061048832429016602249126576188106889995252393189351199368201152061403779566800007939450614477478136334087248334210508614025373148142132573263643574313464900544969353741560182851297607159094152596907915951472664534392055852120020800676277719960660909314099006513574139449046522171869586530984080512004583265398976798673973831966490273924724833274535969870790482599306414652087694701034176470209429678741683790474484889267458162871753200824872311283940750592712067184460701673248197442305335641537782980909021106524371758593831921918030607728451354941303376373242493059114434951270382999953397017402762294952129221334693712180309433591307832735596111282580535872178223871471100192211803422309617556227813841442305769113943968389436202060683239743549653464366213148116488050769178804766303462626611065354212143018657087549804805805417085119749551551226920381313131533289679282410962687901417034324119653911075278202666087045497929941945404029912407284936928738599863256751240019473994448908291057773071354830476892288555796265524290612187941829989706732163768230303165581188206055149574508334051232027604670476653252663536895323249124792763750872904863549708085266878149715798398942159471862749302135887020702945376860030599935817817753954047905190741864526170187328952770861742243654780457261215579717457680291435408078970532695393648568347105384614352170424158542764453392133918854028432083643425266544556580549716313679212332582881445178207375229542770141809257105815160990114160424150911932363687677610288790867790201107794856999631829931692501370658193072863463717979688996140961946125424718548122730964736218739997971616897120526104597857998633659238304744898078332173384167241319312307145433655079280427819441474649644773584979208699259070751852644536043982196114071193850321395777760638970770236499157060924675366636898027412280389257008006697074107554843122574205018615856140366697735036224894819427999342782148049804918336303338769605558868685043479103059263227354391772475211627080323662164449258354704696564246090467534435439665841207989027114649448751824712984984465691909439585619844847295046641859099860620595673486959958880031690204406068134419796970298289845811296304827095895890940052862000791181948752762644584858237991424683093963508391286106739350142140439476685408402291313895996004361597287314725781863676402651984446155265409153989644822166938382107419940384450265161673277702308941252233836634115966602207264704204098335879015345995530124291471307452370463690721604952500067151250150376049069676062037595005815181754754043195290235665814789315133598050804099887164233902418644010999867727420275062395239271598047502143916957018523602474555164210328582910610395996430935221585222932833444721224196485378488034669631063581331562212491313977399070234974891589976415034241926008832725231847585146885658219394437029375057708401566378000919479355520605841080253574499798190846545573138581977138735453641128973925066120963731719942127507229166728234433378149830926248489109206842195401051584630032832171343235627319744251110620661404394604257918626341655092786772139689381470997799989038923451183364684036234130735166933530474121267355388651520642735802960652798123403662359312847203642221801691925499424290597115454122333398211172351508668042705313714519438319562339406319022964857245151659241891830357055238966664776814076655437658290852655667145211238793943249415852883820328956905166825670790100076201199910360680208550542204091675684617281463003031877661730830358225292105095908937327001597547497170352666573384302686146897201139285206579425596803988188253556251302937524876969271831198396164009606293095029625741097641464183575501702302952646065046310585889706643872440855582112122189590885686873840346138283010124672056204402812227000282514679652500535212114136514728621980882403667496713546328985879317594420658916577014232981382114098288070395576388020451326221199978406955569403378833558656190383432975521748853130508396773592676247614800705777687764902462898139378317327057895754331802853978467132822732883538172146189656944930474285092505084970234830967695494324367791523291492541792477309326937634242699420381071815215972553353454791694836656826677060385465771878249817801657062751526165510288162328045746019527968044889425678859419852433804730132570637345786130140945669315035875127359322340658225665131588511038615070674397292680051314290377730071443843561519867517028002178187545341776687894333781699484331502295455448015151992996546541690601387821867948038990368600929856918424098575632920495843565287271211083854744842878378441256902184087558244873883719409240624483493107065650811973443650588709224150774581008797597853859210199089446063281006271355293041581833010243843915572787077816049206913949843205951118911029349529964877521926442662187324479415540568819266199147415425316716939052294930660895733353817933056234541511441819908675480820604801846955471372129344856582638083785283899270189596364141056383451831020097009733838251790000093027696443826075398281065213537945633145078482528018097863673858659332666114058812453971661973510509026970462795833328412389757428080993174151226002846607689865328612929533598495891537063713281860003321683922610790157808161093251073976676362565520250042663861684360050219476297621440316178446962245001181815832920058431249463406284214088162048671808786319236517556630351471130575368329407200903875838663612302203132291855501669990031455619771884158346843984003246744031584044449836290961982305620454692404254610022467669662972888805341265050862914581000825246371148972935523032999873875180210836573214830915780642899576670030347153327364266245609570687898714045777102536055460202072437839253204293789458326486486708854642646837034390092296779715707691918311392629753504230662641224700896136592082885050937020186496530833889483714580268231583702677587273904154662800137657298357894949487800635735479372895017095032008393762978789702294847987906332974951242854800715440928061308111978265585792325713524630368997155415219000528301792591853939553216134067061788291144258831923273733127783278487259714812309451363029580595152497289187387894640315741073134220151886447485775550877193064252457386116524099934101763167431791113641719002174545868395997324417746367323342833680710049592445456914146098147824959977615681298496101407531759129344216604460665499099789259650857894453825667780784087295810648320036791006177161702241612620540515203735542147931592452765183310633007554238583328367380442200669997732638668360863321955638954727218538676555628098571912535689287993501769268033418872236063322385978622390895752320502725600591180231849270605449870993635560097940010053648856883919987549566395106266802691372238885800796588495530233117758001265244713064975049933055000250614681756254581702973644725689932917881417455188679287355979061106720032342040749809560821429227482007582469286462164910814583122007661798527646815667963741370841763860739775891086306177787677560967727163552248849044064869197909632225866494098910790420748711142721056986892818591313780433996279324653421096485802754076578952075356452470412306758503729925986498416840662976945646427826195283460810175841048251029328986280206810191389553687955316750327451273387519429920389533576214288683818990313022448485655325348251437162283818576810602885351950791934783455441013673569279071244571834333140180375878113071070372720032281495536553408114436994189373985747462952563859221390529110208697938003705177108253390903937370388792838409645408407375925738627618299530346351540225133454734768874574915856309005395983319902403425343222617456690262081626124657267417497982769060696193028875199468983900968347111356516211799152330209108826698578616725412211896539277194864424782847168550638719390946770300612311773205472957318529239568641764786953297446228490886413061509668299519927511304574122080814926296174247163711548133633057871002919636846054418595618349370853553992666408557512103296373028085709973028010198739665131358918795025616280548552307809556182307901105553924272464833558277974900419210033161347808360670510386567132097277581341086483787717191080077075417728058343038611607530948298735460155441353624767059585266031145011618140735150612050636233428322631112947764742139583176626621621368919182663702873202162285088689626838108256172957971112078385892161760206587374818708669465319702153221394250899226148523605730497222672798820114882796150917216819795130688800834947706198899543675675198928466229534719183412168099927584497540978883498019455348744429281498841238072949792947487096418805648165830663643566704960550432105864184836468489111230791101681407332398398333839670460388011495570215502296656492578330963044411076227161721921793277501918696946514614141566179862770768154118140503904544984253993135623157479397646844359035758518305487481967081678115113410296163793554662185230096759736513110192796640609258967996402335785631384508383292894045710553143553726618912034561925120045554605811113911107231069825197203361862000808489855460212177866998254919335150324354982949225951908867174606271373178557737976620434311695851830383983105689644414747944082104207029935565517990040747234981343790635487513243590708523876016489059090376951172588547141961747732106847073157122897858084985128114718265793960403764861646884173484180018328177090110503120138101110843336810203475043887233356366893691406668042573902620345251026479141510495909075499032560930600660134879289369004220761616124491397517558489667191439898813254072041704296524068185009000731135449517596601975678048057169081869051205026584587112375020809431903562372079659875014617499441360945023850458161917849661552731234767337365665809594511769872887201365293060164962342670694145454387616167899771739993547226353732739231016136843415120358368579947060627859474846987517000072240004007871560650319276839355246708845654382128945585340086757688842033320684985906771175838756649274484624036033435682015506196326218051367381827534635676662745866533580972160937329682968723160852556531703498529690553389399731188949590946187580497457134239660507815727795061045170680208612261210990125235571957046682102290445683528692479618692620711936358689890871859065589454723368820968141965962415124232179570462893593023547686193700886556269272346590322879604081180451952458538932745455722941921583367555597160647368924823479931855591630818761956453333778494709442145219662794000445306430514828613941735643619099906775574589691111878089726656576915149846727868071940427889108436347603217216347173716779149211673526155634043420221366879896937603817304823390953549357869753031245159079729380551241151404174296384155887428514712655030827259027016807851627145637922334990822011241008991411932530379325032901698681667348589604131286110710693737481297563760229770549330575353522272808698374729482375367085852957649086306442112092118401107799779358643041860647045791430190358160390496619335353453564703151868453084939065117781243639214000097730509009230893224425536324228696226462954177260302311935283615387553949577091866180552567283217899109817625635119040889430785218745423232169945235682821537081351536698720098562372637852572848675315092914154048678561451062666480100883164503046086764043231693187427989305021471929546343703150012727786219248954614477413047645327580341022406827886693216112771000126087102816512741665110906066200940242870478387722047488682407416813072331069376358498279834708122891209500776252999953841014581144679603078170737340222307680036301729547012529681285620820448672830448535414632377964329682213977588476164000593218097305619001325994068992340884425594414921814775520907108815052456750362248798677052427477278409871940094011841404504139720780169395221627033867996108159689946322266295703861813780622994786719839880730933118052569330917054625771216178476224886645447118953179514397974085390159821864149639599212885750846096887426874307265827274765298253234168291657799906765244544599964564426244335351302547625385875935070647947024174270613010738077722856074986582914338970786116707660379470673084083302880319571262092054649766774536622149358561548332614433258594340462610085801710894012667324345892114139481372009825205182091924285567376685226980201759788854749687687199547963640815409633456708391943680556032821348213979645780089733055238257253406216849991915874549101250992763517090337279813018555807760478497838406681032629915282069249276633050804311503019997484322715380494552327589847037441916221388225910204971109169658589219295313776899635859588082296822221827193291422733270194698480922986744094081164636163011984591773764565513302667275248858765982293411408659233255098990558041480345274652341474094668233331485126104980568125334477401987940227063623391272187237405715225123366420806664584793326611113623451136521115633314231249345114525530353864310319806787737442527035478937376306746413488489758983716438480400910366568843003949303314046455270914483282721395451881525650519356160308565771093357492420200145353030725617921633699845762126157368575165218226737451012612275445431226601000118513418363749221896405802779921817157472905849902084531812860988773904861229858440031409550726091472242056427548955949052849987335355480481956920607158390295575762054806569422536094280658458875603982114092047351916294486075783487289560207618204813914560495580657333570126847511579241331248120074296459476394541971449298147631689341022936816724614900847088939218847219568882142442389968210772243248410389478464908530246985005509579896941861543336993566951546940117089160654465635562137647331021576326348633023414367715634636370423107413355238681723810920609949313880353840879496018256263122180563165828799016083900348937184092934956400804540147351056085859230503492821912050033558647906892918003995442815209071137456752354042716717957362632471656802038504349586903542797279667436684494743678487299789863085040781862523927776796702236907166005015325067013029826190804824082481506743188442259476429548473395868662640796157424371279938047631617696813434857650722602101971502793394094821029242523437705145373394186262293323573312590446580128647593012320772740802996939897444778751218470216678455314620256313680656725228064576380963063786637753723107531942278992733959106308438532257660207847238631411323041496053198460384753463814741804455596689719583383707613585182214734138548618262718261270269799703999015993808624927499544083702354347413429428080591182533967653658696445634531404451472422227301136491507891734816329316617022681282707277381540040383752262084033692743101187484622773708949031105320015434095918744439687103537798454916347630579462092165337646184412849921722332800635024450927572527633738018898812130825273938369461367369756895477037445850461125580624040125745532890007546143740771557502470383788462863302166745634285840634267653652230270486956783476727992613402765896735110469560325286374880049523211802641839605097074230078543362055305597625559260493563630213060104862539844422085148692795482598360196658217630922246249776394476917539623244176635373839910879605035667940416363093261428197944952450735965898829981033321072914246676939609363465345161081479842264195215312346730863716270407995892231335252680202838857443386197144368278984161952282160909390223547712583607262029494221390321996711540192191308646305056704208264193083890296340713344720146567248589917596629641989332275621741987173345124214238367328290185115846023001080885668292729011429794634828565859379170014103356847123312859507787882561857434971590169051719632010063192480999820691920448276217952705168081349789228648841926434266116283569045929854417973111242194385881834513051486414156181796293162832320347534202791140995013895360319049227895002591975533052787277772055542704354775222299268766012131713853160426930619700096908913765498789736501420104329161445966545092931317771503254924503322581245750563284252253481072768368041993188320139075568020445430379290365619796582352891547762115694421823152208595914644240343257333141536742751469261169337488362054875229341643397958073697339517083253431193541845900223300374226337113864017916629796140003898714100024435920712791823084514686166439657628646959155220141036252146626641917177407381130882053535852997862378224361759619602165422157792598947611873777254390793251246951462622143956476796548421820438376638995609758444171828493273906466465934606722607182844939033895170971222720282350093738330849346830161531889723917086465962479630456479226204697500566441429399952401456348051688246133434666380000023858629870368790125300272339259886932025924156610304172768679745352741350058527248120256403420260809816559821012191707278241453180772601815022215476939797804337429234548090402083046282437470435020199727958279045807600567987458508752782057617644300473470522834358183614131428455270461688846503170880918563716906255100248233894050997117629387174534550511558411401546473797613092186016317880041599291582607262263594802942848353516605190537988774406402090792577593921615444022004733378314577236121845461346759035012688004670039121077214652021988876000414559151750501205179643492422203832858119196916601911895779896508902431332085802641124718142917096184966497342577925148089670374491038596344001192910178798610495506108125952256751187448173246829387144146707415360055137754312421175286465848021153315175776765159759979958049345041319670061846652467624613952371688492971260781029278894516627808646114395338602042695711163384774578971356437421898959193352094065476474033298354838132523677939348282359602963338865618756623428855199778018126778297715786038522476217025675917660858659530393673250523900549691859001552323028736428719056929032629701938096274709412161478411706578310944800904896967022066471126440502003934481690850835865662131433450314326941428530877704630764529642372390090345069162623078603649993895601618573082059818788922163108289376947037869069889843791936990865231577107473897210428198429441302005329549786535498804176240265167505828293979007822771381848253083078635219898119209238753934792131704923653508517403628996324891535632015542695172168232220662675357271971656587544086461347493103994190630967097698872053915764820259542256643001493072794647687406664362432020929909531035739419767266910992587989223097953910726123450842167344908738364056277527797541715756506923780826484715130374630475669659071260495526211269043869720111493032462919264656927007503164526359392814385170787664034090417343993000860992998491249771068939041454890136805538952423953636167895633439316881425283219826741633030602053369924810408210152212350998296569257987908707433030055377698227484786767027692591270875093302250522281496568856516383434919038173616038849233146195111904057981233179733762063547252480175370970450004076594798066838471026151088857524499238388986807918291552164688261144333775163116704721508880512544155899918234034045953395553740052012922937627994190045813854787364079323737286957793333604885253465610313379123435334269126581041039848386465437566615918041104482264010932150712757562244432358557984135750223866170304721950423346786941074027365038988358592950643624862279082745997267845522640297579079437359935517058261574726076353403807131178784066956652823392789860200123968864882581038783543385485414822230956596586848241273380037583595314938296619667122588676056073325540960122046945155235269773022744067184538872201903049097930568864632441054953000307364397208186226196262820204540066011530818489608942439010926269712446925345968588159305018221737927067508967632747296155343309465617371094695045051151190578227613711183257919964266839419973226840242336834590594692155919111403625473820581331944669587953067332400296079990422030383770661560562411633625896739303490349645149921144997372192769233197707859550913167335732416512691180219616531619177057546242906616127761644288630526994402940647701269244803801774541002381258877312421709689001945298394534951969609542587101297122800126128612063529489442020831790735162261073522624501601079277705654626881410587244106606751582476147285705288721042837307754725935238666446886998526422912336361672896449722733892099026001078211916993283716690328578541933155027659584377950339899951499484477858375998397796959998942874316768212776237743442812273904094231839650131698249821782993166999887016490682313788634333217059545789741539940203473419912869768115430445235298522787026703619827398753020334392716118809301012988808484878782925884061903863779363608034288602247423306910358313610418063766392609916475339336905134626815387679213959504257549895489840180051813775068233008223400437614267135847630931302503695835540482944016321951348391016637728101094854659326186752599021320526907135562457135025420372419170741569755866269069980979843033044272656675447751027927668272251643398844524138881214646993759603439378918529005074061577707922994208427232987484370015613944068284866642028711053529560071861301105355165213204077980390924124698781311424072523855409580318254882306422038282955719863501788435801333063695727136567905779742921383654747709391673579183157359733708611778899757754654005031139588983877604306647316349260170939412536351511320497269309869177424726688333763931695725883952230284945785498412294562537629128699328405455152907624055161670841845350630350397019212644298771395388315865812035430735865541176368167422665498612977553696080608411543490411694876923695164069800059197839004102559968039490723733038380574331608812092640968913128987917704206032190648947118304106005075523259130070716841815154646483442837023864313840738429103582178339934642664242697846515434370341276189701423040089990610866182860677238090419290690648382036209449780662099144328076186762121724842082888598863647165886600612181891551181472007872798085944973584701001908468948403591186947921753275252239406112447977017511333188898463206070444498435356878833606906000647465625820720821767722344042240768648359130680785570646965356276135730114262820413825260340158366431631109046262639603216679716997463514719708478537855975680042675635503875613594093202208411539647190550302608850242839140663648574887782000505838640848261218213233885484730880994806182546314212555982210781948047721555941607397878746279357680180926991731517120424832881668616479825290879639415882192840338013086950425090907685590436239136996525619392125097745036715930057844461153087836872558087434297189790288768754176899768808166509979815670744041276777095001456364286443490793460564672876958801286675412366302889492951068482123520918303182785750334589865721550597956382963474132375926447320124964389327508084706545745944426072344878703024731785806599215700080422583191443648781199155894863937568640032474910054981975145119748620108802353097353658914166735130752062935260576363511894962551844421678571944826733038464733733357988312826304665260432847173637013631292468070608324899095846488880296395795227887018012936511396064906927680001088941524971897788058947299670061535358533387746929907749992271605863759083384358512000188011951247731979786457975729172350949699820535697840328366709964946572234516669910368239413583386479039293514397127169057325044020313302271060220630342872707326610601599506654566203983832612716825270629160025313506612504223261503093697908665540055735827432749055077270932012791442478320046278862586937007601566803720337413087824396528846454736203375354032055019233817390057780925073041902152896065744046842239572162807128356412827515594148820622516919321989615543705170895993676751087746404567725376487447157913672886012346964434670237494409722914247202546265256674845559817986799924071901961609506635108459892044569393946852509180289448430757122161100491081475853308975630932747111094587109272455050207689860139881260681699497851568217680898210886425965775735534633516004978659050738896681518769133226263056299039551467985334726925745475677572380357033665513600558670188617411537747337476069854632452114527050461789949919377360602319892455512595788673572729166982873632783508992484772075459309361925018657695565676925871349195698914319692567208347034163364524673851426265431581760292675474795049092543602783524151414143775529804146969499026118512708165818755874060443451040763000896233675230268208467966233225008757123116519532983046650397679986861340163177801552025960416957931887664637196108979623024803909538036683865247854385574892274536658712383241789070379737822131654513616203881980496489384766784536453333863879489828943609136603639135680694947288513798245967270831476768063123869799746131177231108855276253247080458327934075493342620827341832233035654364751294573560431889292942249188754337744819829005696176783736002467690001283840713905577953164969943279029154805435449122985934223568394786282912669409233578895407505633680405846842620320730835210800740693598959985833235164943332560549145299133463646559523911961132911028808211938024905288907370026480569934761601618108850828656062651994414624731731369130219721140222116901708332988311353736798021950316322728269503033571151041322303629885015718193236225956254473601590135985523357974380669637489632112908700907723392241728969354455325496688816915101915339707883363109209412741159143904521678428191687909156491480105994002622918920333380966022006402197920387337103249508541836144186590439718527775110587811773833642232446327871546696555173531009533492028820208224671280570682770156359011739860831493676567244833296988919204463553793163642858573498414924239979201184112169059383247804670532113381295448985733109234912550794216429301551578035192465473834439699061998764019635554212137111133020311165907955834578835087499368784608577618336793909506022169842888811032503459574678362022226181584886549513166063513384967777844319710749052724222553437954486252437115785402140343266956655226258433702769476609442618364088180113986042737040375674292167724875020839007692174861148822533813775354010150081254964322979588853018575807955587070071760006010914240011612504035948478209804661359387276208204873081123731719740646139989014034811763323441394251998608402921031100452530550414693807450732043858956026377841434888752239498030616403746582972027360296487819475152258112113502499121721572942641088883557521422815012893579576482435611122063580903019074183935367169500671165634474296775341422393832085093793780853207357121756592727700440967734474487957247928521630482185518840579892430654023345092601832826765903323961710805251723293753454427058542810727846438158510414264650129246657191953770346552385199611804466384060431813152999997607830068832920388681887840597920643691524448337548063796785388344232493596129753046824878923438988707838794534133278769044958905298555096160000069714729635140051899616213234413856979440250404904628661016049170020260055319328244762040525995157456260097571080298092195424183566616195499444338637371940996629211948481584979061257662898715515022941550822646577366368551931422778856063336603223035277747136725859108344390888604526128617717128698927243560097330277245011357775945195425316504452843904169331770391774861769232257891597980983538601320852264666655055117542033405361891834063666677511966080592961924264486863940951551736154363580599084607948328520369147791249181118092542965815963998055653724521864523005365229798988811537372284618217672079425196497316217426742356743603109734080409839004594509036137442901839659613231536014240403912459324974130267932594241813274653100739439355060044626576628057625080952080413692038306473229442968739273124815903847196414950348539652718206506036301400319729924580555491131934613149623551892823813715204932426221148750196912457606429563063693711422843344260913523564549433790044323517049186141490953583340062907719351586986551086083324029247033017460426356358678357699433520485125477618684443932421832787484067841321173821778719017950581348548464185718397033153019038929194077031176856979443739934737777384311405206721712763915027124665615831717360221036978843906931359386584763446278771899069156224276003406752500618369295621251350310707685205163544981916706586037005745480330322781898809106042446462912256168146237725650090385499518078076893964745096394581498531119655381690315137600946141372674010185784710582062548976223048157976551032059592313935715077300157767480692791570752304518707113817186580786647431141466023110405340198942248049689758886867897874338021014279739685640682821178508759071408247073254793648406239887054100312522788329645061865515509205127909963593872967288446477740694871045261959144843531098058831810183120440333060762363504491651286802543235980193649673041145722341131902532093290659093257461145462755808555394442689459619989408680390035560726595986288688711217374763286312323087293472756747616242112067362342961406804411732256084914504868671339396245098737558501614336697808385312702701119604746965948648608573038390640111712603001825269986844493360568364273718524145026169209165559855387339749574093238213378739455817726306361785289729262726988966364681200600352295954269583372924123629431080323872247309578911470852463376886406527138705581626727395123783670671878169744441422395046477110272164881960535239160535743173731102763952968949803308322521954794074535382915255426652102422486479370255875411077278685754175248168703238261909578050688457701063744842173816613144751265485534662213237688773757687050724936302473057189129669499620355726843338779558495713072619683781850778408479797903387501752690992047511432084841254106335689337668801468271217133668171016720627855968909437134060184155477102011854468701429038189837630677848757539138399955915544243629791386629466539057777752422903400360034367594962420203543975772324449517775924463915889852319025625456503494180085049552732743348840005238765234531085261832616378155188769872585638380612562026927943568115137111901588984656954039285736407182684226805075908785125733935309984738843520114360199524091682396649286595106512224236006656904395177869346752446370427544887827412682744025679375029318693593245472039440043472858059093746709696973927725476819366530510857275529447368363708642272074282444998362164528491190527253063660842785566283427107648805526674467329823197653499443043867275354848450190633942805323379839645816522751359003115160528405398981269067530245473860508468790097861603612250502015921213228147140171610744455865771994049533989520992862718137262930561782248897000055682139990816552398317393335227274726173112122414063661673985785672175174996849975168305893095328210462952328624405171034287416962977606040861018713594462322053751404966912756728143348917962508268156431120480626546063375226924927679748701446663704672711470486104495268768375397381767974458470817352594927615551024365466415827022623316863992814982811905609078603062394610487249077338894735397119322937421481100159943054098964216045175027041257068987752899965108459410245202979240189417590621819415029490294547538056900090582830095226371607526397419223011969989968139776539140275045574878110382918594418701900000677441903777326043060141829236827986968434510005553429291481637890215884850389696846154321118196829748874289874148335085745207402305765229101073821183156479406185435220563409180914081110792812970583761774170537057288240663525062827469125365064206406928308947129333134175886541363223944968094832961231935949056590929250011664408603838759559565561222759938122750699048973502208375244069406256602819898853030516754971178532425081786657891371441172430803269328531830135543081380852187319511710622529497087100241109134918508679927512175269443039266321010172662765430343869173844891020401225252189162993477158162264329450260849627804336933357024336817409826634425217811352566604486198346033139446360475894169000540468669494400515880319989749453523770622213874849320972180959512485378350578399919112914535156994139582019152387487623402862599288842139428898117975207500797079402996932422607031219183272523424751599194535965100432849740504989463031096629866690262340188938039593611970757420225651111628974113655440993251659109206775156577544074723304890338003572779421376062547850523111196462356994060877517151005209126221810461976542106715607763120459024890291576912257614056441890037856692730011664513478499622456923058584339933529836231507958266405362901039040178292979235480310270113178312638915719691772720352658945712061576821628263834323431567405835301234371386024327961300958229252806628235200183702276237557320685224165183462920148491356322454337492512725267779147333017737314022166557566402159399198847563639199890122221857551371947940134884733171731872938577523572829832472048994976739906233698352202173339560022683708506278040458590065453016606985251287943448257298076192253526948992012147571555483207598839086819835464354201891852920311523889374237532365306252921337420142526736104252410758681492400177511532932006287491209201459053059059328549808085499909840274405989553478581019435670720651640331067365173220368014129961938066170660158979828374904785430079599158156750331155672544013116272024836072797286122057273261650510188142504958687034873860277352846780127193656297433733907698997423239639326782574553200608484756483845830016656370194633997559078585973634044178023941600305890084341575663634120009255126208641210026289219395386773157901767600970840460095054864138001282238026992648959503930134778164632230883348083507418886943666167024501960532086457416325806307428137211385823431297228607322430050560216633441917036466857991978195950892074959312958939022692891799707767937754314725708370615148909716225979763364796356540907577393306578424667959682768421537713108281570660110181329030435293422376504537638628173278737729065676757495894305471585399120854729782940926056968979274045098909165645803139283170006726423127419107604441110799586319105226343070539193089042981763804803307085089529056535730429203166920116622103786564074768606552793685576108647649488595821457554090238904027636699878864936736774687654234730410928564454199432552628707339182331140282117485196426634599760670614371194086138400690181145866069517112429301672451659342359704511440436329042956517745807467146465327368045492979799102107505872196870678330783489681155454157657421602400552869116914526529985606572320003471802064364477870039536324629466544432517349458192913079591695295171663586106267160305227344036116231366883213674954362251555135524031175973324767394741961055521432088492422563896000405529091376691563056448029138542117118260369455794203660017957689191775807473146364075915010960729081619554738356029245573811963463677859167011745890287037584150901192404642928544277805076157050051690902631756618649740133353805768993182241163991522806735575304048115025656922898617893965075290040603122871988508018759264586920624514062403574811178315726756827188517455493624852729479529501427860875915582501709894296378453278861103582065258739579692185665130094305402353016938811580682855130664784842466274300359822382121415578544067081086181912202591598003283507690916832904801690140907731385482202264173236448538160368521046967467703418823388413043933226123993497393185888460355428198408227201856421038219538705558173213807433271538136448467254062910016257383640347694350750424006777446922623956477779795561607027333088684708060399908248946316251497440828165168198686944941086768744500714155771801138475517254341844505757741688882401602736799282627643395553465371304338228180416709888372483839065439313418644827342517135912719509469369820541740538597190168067967038095730039170558916932993809387221628683986718345235260655137065334889357924450483269764254261468449734377560594784716967143865809213115195695968400862488373948279769632258538716543724858799271750115600632476345804320723163867893636865362825959578748057994551827942222290143104179820994187436020020666026142596108444537164870627643970516978643285504111051103351500263917405755209380505341666507747192044310380513971264804579561342614022892424130347763615383131831903798652854579079287964763640288774132678304629360205319914184142890896744655350940064012085516835326764371219549294173976270141377535142763896312083326310645417470367247121479557756516127693296227490737635717621619612914674105611029138604912167363108715473764353288383224427491610791193647915064575714096573386685734477481646450059090622459088186656639171984089960741215749505999349897358939774051775774309685005381660337011794974463349841382678038961953247855233219844519765570233673796434119224358283950538610540402936197574574240792941302408675880424133153317829741326404514993151974290200656745437405835105160335212996109449108571034016788029922578767187812912217211513250080829207769676682582809766583198305193024681262582954424126523037093760610432157597408151393065726596497270742563040642703743533753005208128710728600343288277911038175742314389365984931373317601311725567102651206482535409774633211479251375571745493137937319300679503267410006430224224506790674519384848120931117038782732898695798559507026413189462815002794949477515105453635713084309281551600854115324387083568155105636676681076216772710670171625873028103102265338112405571915984623926513874683885149446816418756206740604992414649968416058715865743098193654870738496562520901283618634212051003692044608137583621366649871381017055405864696096516031083218064377502960149703236334606326082363197662122067108234891775305765955754373162150653645195100461216679757734444410145384375297188470797148013808920930695213328968868906052495038123083200846342511980284441624010385461632935134508234793149638589754995836704574291886443197357502288509488013254786848028976019101657260895806919277953527773749926806193184509627411071884023155344610125865134801960813234677834333702906745582896903028859262223407883819604483744209122635111999945249675531657860632759166744623538429764657752704883467555842927884865481498340015758814321524537265274745136606490746229488080451436466226589517751955449326466166752618345062160853763471958790035873726625582653319859201821489028716162158528366280360263972254000727060997718930060365483788796013701094843084332638256945898729454575049266461492268967723622177251584659247941079325668560647971453241981315414584018078612962563959891813006803317707331844784460148045088196984303459130786685969058085334257226676018028781940149952119840467688311600361356168823977752646786786324885725282991922826120681460505878711176861645439250121871851130158518826286474244362192693580778484154436595599863108563530800894667038934318058170419616639086522259912640933519212877569958284920256862441852104214022213028378029479255019985715860958130537500403235657802566829491686528412851278583194820731646513327890540851091846493270969115814979116738204173192017787159765596635747074313525750137226365745458255868742296330397446837884049082541801587703527668639416927360719460449350956198245860189376685550453296234287985272229496987692872360301845518123838873502565196429925681941591597842140508921071584241141937396878859729468836531130856751322998135458344247070798421756443482978779718692074104099655151617812734540171664812079456843021424789904230368193470973242874435787390078538006859416898660673405169656237726427417936055064715346980565358052112108260489530756148852996313403234212090244551974593303315149071323174483864853490939182334797533232426265355765413034182455119696491798500568753682525919887667728326440372970845781151246112341733538628979058039093172734013654536113639208422038390055044995376279413444181572062292752920829706952116752272318613435767561079167263359128445371048095402555005529575116547400369109213063308082307885424904202832104538362324146741533713441846065373402166871510072849547723247509269617085096298838050675216496889564605441952373703693920238197256719042857760716334771609973651244382322104630893774135406373129669803051620446677496200362022607932240991928919144210867402966501314506069695008627174170596883886631636933786336897761097620244913975639067179111146926526970643407876709166133532791467876466585545889381723097160457909968397241422552740329775822977702558234138955901037985792469163481618601929828774976535069574091732200936494817071519290655590155821924981550449704858973521865343945627147049661902589123914349109335379848598593598062711155817795221523063621761681578053213817942587012315031573410150948172078349091304386077776133927751177427342561149332410418422510741246750043623896861055849233212159071311410913786927862143743909312006173548987465242692811803789120439673675834712643984767625548745402670104332903586762659294779332034310522007529045635709120701766024886851211910138750542819679879883088129981081507621012191023534319423202346194894189311262157224778160073600932493698724371502543998158693601807980955144398226277779015090351630309886219480637041741939928886909939222912769040384853547179299364525114269947910403333983781119336190455978906242159004326248830564709376912274237969959899888753850376789763964825500593005163130558077328235945588616111224129336207326008616970548633388611452267966188907144785525657291355361025157515566694059357741533305441143138716920735239707024297155176127043329327249852298891464725748227174127433600480917830905631167489876691590465229358162357758363784904557377491009570525415425844786318746693561138346957934955352625697264885912397130673368619449031817551271548950961737128597909266314041389585152495116599250563623888062206971977883716077552323475653972777413671223853220803525775141064226097435968111714326740576355339353043978681206039087026649999611171829630443978761390886077863582332773398475701353171569214804921462167965534829002039494291427430939642997936292283199848787730460138189311007233373364583272393640748456133541913951138899908365670777348321402010894177967870419143489714421649791227617637206955976742975960078968285012539412901570779683408537270208744257888362686743997620847822251811190725530325205643647302566004784390011579816093835602223131573431653963568688829907798463617183877285624639719763131474658875092831389190934137542425901213642185207711913287084465959221642925602830150156604210309964526515258431362411869537304304986841222541381469179018558266139087697083118312002632480785999770430526848900173496077170203784435534145347795231295269404310524760509344570335271230262221112550409447213541487834811967694322903381551057487203234854276570933961826975121513182505161607942877909215306572395574560497655771124282883521171216889893019890071148611609146383372238112291157316329720595235404118606607928810047811497054985416743831196717726184483310284352134261346947284963624326138261646231229694961047172248643341596490483409098795408553373630071702655373807300404168894354987677777670235399534519496498553930922232293968106329300265463068343636116188291880022985361127279832373363016603884858820836353007243436169540758634062279823975396912013471367883569295679454428567312079480295925746217590449744155022311139353240843566399970135525353616438194100799135745777374313255130240769173203484405605613292067805806950079702733861323574167406111591917559392156101607420825911760826799770812154961537061587190219088082669102364269171250945836799557639708983913061730120531441464069859984102432800458464347612974642163327868785246021502018949453542545222788877497018781068200409455242322495561566402219055843207470827866255257241378777526747417580216141848267081763341808811382197678096264574289327754129011216355698801885627476962986876396319536720094891924181517034409241525269436426594525881945377109204015885349417145693537058521170314794595919738674284010288071953554834473951216680613118690208470171648224597517788403399163565660564595386461030941945886650188926084134691703126305404699595891749740602051106029842211810551605286332849480557019019475313061514338275625620121698336040366452607578764179747071304595086783608951639794952312587828607568928922738771046391811467814247193368197435722662244389418533456116584200831576716827469358586897709149757688070157036260605113147567922629401577831449327532207728532501127626680872183951459881452417084673960423528582307236937528743707184791884589676289340189453035851562672550518399833296143439878020675255528000530760540832755748114244002786384105463637057339879629636760097259881407507272676732306290139546812795250288447494746739316733641862815354213052426325370941909674920927543743130314319418901896567335887380226505428875053096618406231225123666094780937308218314488930920830679385099013869635435192059627395686695455796263176053455362869276056331798035360765776417930562472560743520377246053769254111381026368367407982712438650196404543552812238991874317168206920398172517573876487419327239337326422544279890130183188674586623079013036998258190659277125293800165809437308871086474201800801191671188686379286925903228576356126231424298743772545262325961898675809441923602945503879854745559457833709474753627614146670511003203965399803104242215744866038152725393322717833392401166715520769481090970726404752025886363272346758386860223880989537777495300466454734342146452052791859964496270907766034318648939466775169111268569047528235500564530501964025156945955456919741208990777194630837774570526455571817630502132086166666699210969220529800645818169209676254051766504921591947748207011476309522105140005340710907172436856051531439894500393325397545990593882583095447302921483140972997619975721663563498181262302029751617945655229076732232982447112464626426036620862836669573278164617229417508210644803754294425092718716206038956637067066210780554727273366685349248707681702987841311989495002002781609582993258616190175987580571735735209726040619338951662058376972016607128655695156825415585989495738538190493429299489949311086114251794916008916290890649190381585683679007736851972759013381773291750887942912235591602200766239280261351192874524773657449135487627557102365606554349809684942105511017272473326668573719125856851425066121381704780256616260646932729556496325658273443461998898724352188461977350753151505943347025441494394931629670578916041168079731676146219197429667310885163430621289778342001002255594950095748012185358360849474486923763694009858274347015824235971419981375722064284638243396181170053139765498875931152166683423248542420133408267139458205098586475100949526231698848911092096179585903432497334505446052743340053238338164063474122026175271379817328878965061357847768528305523046138456404855395553997616228188164070287074562945459725717546561647890453820627065197546526342720234516947431364405532712745675042071829434091089540574177837962849704428586839181177207315070172080021034368704295246813402885179002968215850092135825041188668463568593237969101794959939054183597800202988462299867360888928939850384364891058276744669887924583597628794378108345323487720643797393418956147509997007916358362251059057133030681408714173095291031328127337834863672542064947028768745131704241703847461572656033543979656613699923400713528181380195368723155685462912474253930952186542826155599094465837764191717620964586661149652181201924693103554964657670258730864919063069515984632630015724082706488078407998345538272085783654242071290236674836125793232332813753600093904802278816873048316300699246112775844961068492679298621580143410658444480995075058190584539462130392764331719675253198341050022736242291259153735170125379642897076543484778040504199393389854440125916026818256200716721947294220898177350705538419260753694059651213956996159583340439084578532496835427388972553381929853013058003136513370446471201691201656090139837745716993152373962391266325247349821346156524697957138481205348773286699145967383115829330840868157749082851405616384138172739974543403856586385182195479784204650360108830838380608792033918603994541335070381933645676770150292044368579185577471730649350573429857154321288261956775166948779328613535402362376464342554076283297314001925123107779299224880029200806470499343250121631665992663586163651114673838800423099302477762541207236523441215373851167667369413896277868836896553670762471714438041927445724256783315040305350549921575346317307390227371244600050053378554915462832181454185803292974522845957276703827191096893948139603154301338218743627047978059784901107964515016013054637188787316310988467772654888029699243532415925211433795577571822327958261159008427404018356391348249084778922165983571230868044867873666902154979815142728835943330549157103779462958731167666421115445523817029660082070415728084812588868272310406377126289897429528856831986197766805775184420399221947755404815623878312668543041205290279842474640110497979064640532454480158942049653534778443426778329323287154565905928770479600548934799071018111967976137715665587885899381581678484420843140488543019594512750731448180038190010188676796226857681610887631138129646050222492178877567477888005290571854752273254122619385742619091888691570864797054981447965555680551086533835634231683169065971739709133630415004585671495279460388081303020425013352461209783923964885636899386863610942773584427111913526954771626832538584816816141392073783267904160853042498941262630950131850857203088950182110114759773043899075785706925084425795293902747660034163894332748171246337722362159699385218752558736211844715798683200151804874048466715319727160807688404076234002002348651647861828651525417898489723832072155898129625484018794711698005310903550972832287910782667014277860992346290651515745445297185325600903670103272589010970820872937878145928404057446825352334986952989687378630178241499246261011767727900747637181436601763905197147577453223076782185417911421195461597482665248162902088259636195222112669329763832941923249900899217940007804356523987234363508149585854955912717946223190725385085926519255374319135215346112247732265978887420463468268489753835619582298348773720449586010430176607074816637627952811750045359113729430613601886044633728967513435627005535662260013190362687672239821244958290473617325587006066641216984401201289093711770259370339109040190852739855756975729832943408974583743214012339754598309513481858104392428445617919244285491249419543596688965120183557738853141967602995663128580610036364450503382459208573909364856965742046624322040756845483879517413531709976072515010731484864320339181878599485292310947861741910088583505495517080683988316422334792254771805408693008790262038740117118347249145173640773042833753726813674113770143748601180101816354389755211667030195747961952807928438556654796879037502600773883013575858787361129729719090621263542939042018454975510100252922460349661660829317837488603351233684586242491585419903490422479571222808722236398113428111858521645961329979365703148946533038838520095979977719715736026924815518827122975117910811805738540544536293831041644528294817270694236239289685327254089460285672174121523462604533823984402633959836002709882487089253474360250545212707353595739567604949084730091174256965856777569550434051919397543480894316389996975785814450884512909454813336599947781360688002934923464645002593121499292475380046925955752783307894536988380075910262499176029305095935566958958237599952364187159814096217671604781832570158758217650035490599781487459897788565284947077455521468568894520607916990066183306521760772006945690590501878047705170543892609676161046378161357793965183711640897102386427096433394830662294118626495455699163338793648566272437654454479501759783615832262188533869298527259138451992995390519502475601368091183951717077630306895372934151158522674528151598370694157463379375026963152942149403641979175601862023312614050474662272296068584720659917278682432590838654152307454184426944777271777293415938789652368912251432505283326759136993895979778812482806343582912487615994023753598376484689457628656455083376579826124569184489401731786348503850144473836558915300768249514192612830174302484337474211478506955498739776060615199502713009516711161606819537254572337126036482038247493862255061247330983935419509775861755829939042873789076537297435552194578137596623725326299627727735778611195384025872031217516138697889874500358440197631924518256640512488332103163038467911190499197539981620210041618843337531464524017562925330574859559846890184072433236026527246668149507621344063042868357368702467319345816419506519911561874925150314621384828778709175637446284578465719099844870327074600392948055458118181074729621357822917829875160180900848550284436613007409980178247571113420743219254284891853847277949982199141317196043442753554483237904109972487038760328143248011191338739993436176513689818823832565275887632539331809171983490459248865313097468296482207023207497222998357681223563353051612014316787039621589911748968355484286810975414241446871572219747779752116793716537865917648309433531734568289815233921483597664196409722215643258652865555769149438086583743261821144682911111599616287615337724244693332502157966227230868949675735146960229446056805754457112607299060635741120920283018802387344044661104469074593320446668838125245048946304524137208350000120661990285050703614443817230444124284868675864426476537863342775801020394464228636086780167287539436810825971482857804085607734385950241492151352711126859394899434316269179319598540460069733377908738250540771364694076595689084422961658486219914718636205575039819754051232220141365520799843945177639204638098630133222463798196085565136674684094253801262541395668520136555264249852829301828857877424789963571893576223464633746856673728947021844999811976193122116007462095999923554701675878088634035085697580925701900056102373217087294499200479775875294716026566942179256317853483597518505370972032695781889218679096623925038675822917003473428038123473845276299068482005517176961157049697923352897821555576640764192204015896406825045674281097335162883276489635980226948984331747494797881634210771651610246283577757228937862110859253191603671577169798531726448469939774128731613172372824994964863913799955480445563275997361593527345328105895104277189538411595075339363030071091534291092322876577952246926827649892262277641446472255662237974519873939118112105832652285791130152331605070609115429579817884007466149434210215844155334671762254375871242544543488923853472496893411913946871658338034285124778119428330273827706165536340200372989608431561048774530341460766488890624229362548179011475272560881247551440553388606018084899130632371196600592992352593817095841477315311174244761770016571553645343693934228336433533331354322145905678061803395473243973992354095266971772005459228785623356960703100418028534432632210555354821598536091229246156334091209976354750983509706158357977391234433311142801737774015514566950476997794315405083476161868862719344143748154094081069932549709594187770384013488190101299736618416353097760631306181909759164544847123446745041616385269020627964277487517500011584814947667804275213232354528199547675103882093235696467534485075498579280048159857381619641332683263019988700338935926665581566228339669604332215750125751785569351396877017605476121834772791312526710406315920450557940110525890245976542346161481876421099244599475488404428160013096807797168567547356570907281541798450289180675093549315813618114362094839657951794034169050285321411834583120074920053682529427094507604387227174119916361788029467793255478004744251264105822006469821470642758396713083600216719786849036141325843660347195021563574418901466169270940213928723153163604117416131964967129975875117008223228870663554160093850211671450493935809686607898697394153386451143794219250079775760067189441918743579808092103202794196435654889693374024653027229409835000937017963189008515189579952788697938236454032032366386073094677391622860338183657744687591915285851900862160674031488356047090298366616686805624055055388811925262169766668537732361996108286233445429280603400618355527579897095857348078513449986480161897443353811749960489801516507223892554416900845848583748994981334076998874388864462265185544384881985551477017556473136691471328999256648745170313624634339226137092285130339092151832609996261615770192349643007715953501381634433691837513123212099191776162421978317012255572036553614541978650944477329741838782452809812580226855325179094204853972625488381250794666139315308979298557388032166136261876263726570202420320485842169053804023044785005801971899298580569084523394837861054234317673731277132136562321916025905427421497595657960544763546665338585551411828808061529478677803124346609625189567785369941884511206439773733713218893567094397504559586593897834947186030260438385587843033559584534735581987236729257884187863353932518575813466510749342318652184554717551251449121500944055590500785274206573248615580568980719558664752019799418610205047662261932647139173510549608702156224111586770261733636523280353628015378119770030449540906055249478440960310335873242146278684187946866204681033538377000756083153099762847766788613797411470861530400774155195726835538226469360428672131155507956319412466530144912350153608236863536810523345188756659355897490140958861158078309210824551016340628453057470100398689985026556545629300254635544214002824767668023810202271392258410970776360485053992347767428439290835890857557687778667572823046100368126920040444295939227941326254936022162711518931734040855276255057027920013610817181855952002064651492176288511940068021971456979452724276299946796107523319092235197125530606006986178792748087014594971181003333797734737369271137542072051078804031153230397349443301743697683559172794713661720719062531293420060109164576413954252549339849012366724583593241173695428538844950445820254285784427209675218779891604625334170570044861530469234866606274398937588455018374538234024154332999674088070797936128994669389106440087820366808784721596816742484961847813498990163173686978306817605894193103588734523479621345529830013563311076383175468303687106178992599124532413757741950272947344164478034927351713729247539935083193308138163831580035583176007508833090404586759683470320929554723984207362665436425245101874203480348184633373062008364597417854392629360192320076978727376746635706987471938330166016084649657082689879157664802617373849345629132352841895202792772972832026935799699220507849537811683709628348315962067164078901573700088182589224028385515620586881696974703834215644189996307582515084569711084254397432153039972380026494807780551528981036374838475330147756639609995648584757717347638334692871219301648197516556656474879361170303388234194248564243687701994693376631405488525230232329754772843785229833382081474314610488665300294904899108305366428389690959455434947532003721688761121639004966557377578209291573528714638638867014487717244284121778685023593302227742340097929729465801487342401915470146178406488467112907592675235217075307878997907029519605177136776337239680451799258920966794261833012571672094033012140656894201869127055422898810245904357665838066919887196318039775567917764539497617650421771340193447305114483603236979121161879687960176681142504157237312097505024243587818666771554873756147839854851049566014941258061664718850793311116217365998020413000728180347238024247932942902947558550894264724538177550361366416508619922590168987677254886849445509265498561657589993729072766590940184703684594972178655253419153177974833029704622633327248307933788906331358308237434533445867078585332024148990499681139180958857598329440256278951878864163826185145109730270526458029233831151762716904349404378472685777955855736974959105418005777516887669735319028326610824185711396342991746652413054439955677873627622615437760150110628296577240455123613040331886443599022615899892869642529782641328334038154754999958911344884604376240462951173404147079990520337585787706943002124416220885677701490170779889712575481533752778342923512913709648453865032509603741289354969257453778909819271418305775828697054128733405383858541169849528861603115521252160025705586782143907820751546703509733705789486838082953326617401167453330376555843258176766928836228846460993583050667508579608119520102013128188924916719232471314808718509069861942080199042038474670261544134145454551438492547777930806242487807834656610074447560080755709438232339988792139734029956038193548406869101885019988402524938853168670543017356274245596339718922305893077929470732926490353369697285522301307303478554733816397699634544857815009795494275132384580888435306725625402886014526031789937302474742048358811237728634200800690374906267622776833989711886994784282075652237559485584241087280863283368152133373252381124345158978034693305440422202175475203507879698606895485070691920405404661398623520772205575913639602397137102944461948860842284614657872374963373525963586093263634748761853081874047102253531032567386538914713602285695865635176683800885362687526329274465221039173530598862323214378996817307070571446520993972522202387550267088340636649491723568282915186992685534484626609135326446771828744408925648555026155863785956016854952413034992126153502640234207900076818280323444257813323492588692674162533143919353859319717426297361756559092135679916598516741669944536341176995367561842518739130249567905691151953400508119513855877257498479067832649359292812324345587727894109167496498680832561366549373852548906315252426961514522648364821783505701723634205678197689910761504627705230649451217121624083282324533731980592913419119806068466662704429069982374569514516513590046010942383311169666056377522567746673560199210706786519575264638952263109952578218681416757022615676079759372504650111344871177989713311687688544425420478432518614719194688465237872863998019736545910033939768144401415546904657708502290848798753099859524760052776277680042476279734345187793848183404347809368836778182869022648322385708913374309545569470920821842192449740224215645731643197025944456248452912553399347666290093013729343490982986328019915256383934211309211271358578196180555835401972091525252274289909953313738086162068867984539113039337838881091547414292126590072246319107683007767682845714338425042517967027062285712324076321229580374893936091481823370030790812386554205008292622865852599337700496546669235525342275868583313171942253801258802912158348238512884887723641234461421134708219545768609869343755316551291645753287064343813286608211054160228546373374457212982650942745507826838781375500039116832655689567781051557529614607957424922742313913799173646914226188671923676801149372730401053371885634751669782120350013136539333106088753409775704664866384886898894783562985129645217023304920781369347298084090652640989304702560370204689674460975567761683146289048471114851359707340289010744642940067570124233584903779765459888465504797598905421923720925692715414880120150442149396611388826867555326064444552632854477578236685828777570731029689456672008951758594862359171174727996332672897185487715003531937817497401669245055856407348409922037359267145516308736669913827960883597449679332823184480104108194038370520719030521876394278935565860823048322215672356563188958520680641305086781296497999344391110756645210767517276058307721130673231797463419984244344916844206767455673439703947309243271168313614075444052299764005704909181931918432369792974916476995661486870627953285433605386156341395597748350402335395318334138447668770732964558250170558323151127157544892987503578013455903768353553464527306990654672116591755649532297180874647040473834800693303660767750267455480523519029832102330014391281946674976218092744665867982078349484175222395510010208264460207393107999556996473522240791158567146188464321255386315954299618158043095126132229654946800119052505268944598857111915487187805590026287068468037117526407937445495905623250957776867263828413793085417446694742483772054163660663407723501214358465678425374223851236011669100943526572112810170725697571464262770837000299382073347601574589138319595967354928188221932393846232557951923761844192528076040834505826180249278085673347164323168550929463179644218914203000388496599715882204721891545692966454075047987595423265196289590774480051913923308038984073242248818405409296637065089448330087699663118904496095327305165123579561442194747128312301868444961372985583365998395272254335581361294227425225175755188072531621170494646918043751474962689802569272638041656829055436830049911553168348646047344027363366690861265961124910935394697943562898174916182650356407707656007983848603336738461234006338917629275337671351735027613581104601789784343233267637117475002585078500150806849197049644819011136774296231125031345348063638202941340058121455746314710161984053884079638517662843812461958012589332250781489235414576699823990910727050280536824412488843461055660240447602317998852391287772395625728647985258199507242050749051786110475045980662306655320772069068095185319596348606740751863902915154744489536266685928787941755310346730269560926721901986444664459965837012890092617872826608332948699539917987288807330948542312054760577189166078569702145585244399547997556501431504273982299778022035312175978202496995875645868043891117340419389870688222375908148531435409826663008232736965839328794681814872505797254984578669519053200932182661142756711749681363741212676689418568151334744615259231538270059956652285538800476992745187818728100148753927796641336546202795725848491777752535389498237002455614470870125745808832632052263647127336849938726585617022234308705467706939830214740056191967557827874876293675642023364771728109658581380630179128332746560944183998375266382829137744391877991574941054049313316666016108978538980263152214459447128066105940315131392780913968623084021088377878368931703554131113121639636408942371446044367312474145357502082895572296863782027705070118866089213854721220526492256544915741361589575727955926438690432071112536604202382372841269255059784381846927201992828322656574466534862356608131761498305123548708026364415146625621710331620505184427350434488741983825209860702322243189031761499209998348156233766955961374695999683518563432551588611126804343517844382075067726150889266933660235863472506143958738257645190649589356253368559033512188881342981455509243830196518946921360828532003532612254575882688382875922425589280359509510035932677063403019121532346672844869374773033257548733021563164465011925901964245249384147045481396118356896220576879260776137456834784928439823162807355640673926838706063574258510670293297701416516354817770608956345852989372394355684519696231703166027035528025538924643137905430566676072350418100097894823639983423175395048807478167790698563456101188276426288638195264955406058745628415997221225373207671897351557940031529570721236330402282484383266935528354385820736163379176200549668680873230982804112435955064750933245536213198062862187248684801692252700541369195523011696115825444123953045492944175177660523825648043135825068166953216468247169854299531637751986041626580471297672553772489288904604386164215822201863370078979017339930051453724052329429027403856242275529502586948083006427730177063242801004683909287364372133957956751911355451695637193055052413882099199041231930469019741710550500337208294229449413776682457394953271281289404489598957927199031984385073327964781360671279533744953834020674798888014040433858656016861022558378990196005293577247829996702878250694135248682001352911330471462889714925219238448916554582289695953577718200906629140970655403631075790270622065243842225087430077471047861295181524386740864197688041357486224411191740432989339745330264493754069448585807862176664016149500228594769427556385000013434204886646170979638981364058085935190750783126483558169395174189472791831664082524813540103931338448497853375983873680779469772937647762846243542373360172505399770282138155665223504680769213957949306110524665509693362319233025341440063751492707945291009515031185492545818717411990190181231929734826598069697856825322947819782960691449369232031664751434086334372817412470083004391264042659566230232117798435252004776397228469626190281982362208633682058715452756835462691588422715264568896365685220429246187565004839858515898001182913020762282270526506858084825960101049630223372828584155334408945366618671493016779668667057503645328030081991332710017406190685286965730908115652067317804713019396570345273724262830270628459032030696136461496832213186878353980517067758750397526825015037304741908791615227477152822878572582892725346257026496595655772091239378552774524325103878601570067648382245184548436399648162447910184383068294585692914228612191356656753580093188957681253980079668915870047120247761877345065453177647723875041784242149439021341670933097451751546341973711667734374742466393775092560513629909459019237525945804869330636800514996030773911975197880039904555980237018633335681013981483980599151776312593792403013595685823734082268303504853344414213047703885309277596871128073744228553533246835938114132329168901768822454593224395542642445418836903811504914958371389964869694367447134483041809666313847057763933044163748979774303483504702998039967681774576764390777736434649535028886481568800731637727895623667359027661666534025744021918798853769419912602086705673786640839891704522607342215905126574889152470673736920663652376007462983634918248406862425840331327335759125686821088252971129678428165936518315265241868707588351712371209172699292625840263014839781303167432872973512130024472346876344080690938941447359226074482212365227836166571939662950537731052425185719706378407047607614222656159600974531299319400499187171952464972598842383872442139571349438828745794634544276299405333956241133165601023036541886625716495526748923187295610698400040075656162800688355246238693938032458392421246938376321115044382038212459234565183308841099853785591712506637351983272545181311003556822335825770445981930777409375906526428427781416010284914249741747291426877207696421342396861385128644495931880511099540317659544741569711382773502486212356935499288411935492209844933475823778063860830705252580041838012272494578601422201440597900763359934076932742493114383851037463469764390411935434722230099383280538746582104924951034867121087673856814154314672889482504846393839273494128068600827269203625603506510428019071071121641836600795849155123847840380385680685655023012372898197964150576736939824262882958627268011656420759474357633741255596492401934120226369293506702692647192726849807029768512266880073990799977592979824031371157522899923589775545093848901757188374376437805589306054416285091688061750766252914253249366752546513364382295672776937612576885486463966792689895055363148860663972710196730763263414502775985702147641097449970202241429872920165662040844123419682324810760756739667060410252219330351494693153489080607136340274989460538020761063232543390504789230294707116272353692909364118909392129723999672582486760656941496483160563747384621567620447142002746172242411202571082922280976941943786196171665979579997815970921109973232459342652229547765083394010799481245192977589677893852664853645056290586993980197496366083144949342228825606965254495211282571609013625888454330632933893936585602866409008945982748976028092127324242979760502117470842525722987213521252436216140216811995584912092584609168124996425110473435464323007538530009448512460700149245173899285787983339825821343021098548883448972336475090921004578698911090001569784490698119181030281492898146217940087302548301404195074676299261239149404019526152399899684334049270911032547459721046797392416785571929571197805886577013816758206765700198619269611497813869984542653288268356824199229644281306905011710149287413672945102136476673085475039567735785782011584539766895183637866212229703702331691151341082160875661598448278787104904603276885002251095297672612282682954375973764086314968091045023839574279371512641351821857664476782809304034195285016911701632546264564631220335012357766785365533728901728490002833951935914568492532074062749256681783461135429708246562801639804602212975023239231349425884655319724224222679845664060436462333737789782240593165309934745866018136449615118825942619534638307672712990131615069190174560301679821596507751315932156673486606687973664140470534643397373191965249703250456218966916127402004451905153067035962968973022297834958075614357666708558423070088645214644892905413623939416162330919686138152186750870005804339860828634589337252062211542510004832797541112767920220520869104441121839286362871752230064942764360231550460847487815748443482865206853987396246524158054010599516940688487298367153061931840940297782206094459767859031440798210579421263711093777638267151202980499844308753907320264131140355419277789227559829615301153458282452503188968387734490626771734475736409813346323405597115347932850193748253840447646434617799423212091354396747579501495007967223971863759409776946552456711129567324468487428465042326442475315112789150597776255691746913896993435337541029761325331802997375271782154642680061520346179648466113688397812405029916366378527636933467685533824985768117743052719795276033060128504534582121403131802639978570177934070863153851063016246925886940912345276072619215901781954714835101783125515920073694740597320155905626481909494185437222721323754979749138366537576469203778617895969641260264475471153397282592400160776702803854055479019910521511239988566525002729331520426800935040715726346728799071768806540625771819629827631712961225460751056164888271075255887930466434961587503159091528790028956533839668545584293200064011693150111474392988793175127195128344642113418107178446984267430383744854124899214414750221490102065383389867959077259830565726822559177355799902285161790202266519616765390813692809774987237870040678532019611461808093910100621425166985283209120661295425444138722960773309279293022484975698216365388196094889363512267871501106831809744965226983929989544788966612624825616494334814074940501582624598533183875964728048751598730667252342070467832966925014018607798979864950528908101865774156023060012254211915142261628014223672685103200390242716627852910739576740115995206251577523216435247632117479292377221979875546433876705518273255073447501868525726526794630418554472999738168788256581170683592683359440375977963477753276607028123880700582046008394064289491824017021576384920333749217774285813139794494113545904307194332396592966684409996499572992428947729567213089846501196381909074969395243765727364064884654869374818187542621990691511004911532399501656223636923552411199868966894877770458165922070189197349511593861955788172254619840550308276978943575964696805227888411716801061785537682004472022821993528811491149651123966496348315037673399314822446973066470404790293539419565614647434592223318171580720922452652721545244270556863057342931275321521349496098059655598166712596736574523387162003029639864023741395933201437354553801140361985500793376754337280449878307547679341446546559318920378418820175279600587867447334539168064625448130032974603839485347353470414626273564340027755663507268445804204876041040164436969554819408621694963157665239078253745218062028705498710783795681115815988676349398604237519137140583959334963661448856832987984368040285786342991174256354802821617595962128390226357665096629634454742363367988409658198815852936126719678776568677346189910111722033141806016095274924489404287356809714105651871635488700501850340862698328401767745166738758381455319664521126678422454524652699175057386189090542895317118535949394409432293188838281450539976011151317321867701132446627558716188992224223675279792801247971101195243971784750604788908881175897057155819807168741537020470540700276693692389659158323849083126570583555848507925702387593637099104806635233542465391935844010167148515061006114481754202720755632403235640082197865957185710933783760878357939949218009057077668493171882072843687854534769285791351406393534129492616970059132091851582824298490359617800242485199837810057772256237951192188346032262206643380334888167463090891472262372917317968168956314136112448555664718977372597535529434381489955663018460972681626207362880370475201091741431426507738457022250401253451280480409105984803904128371410316361379683432515534589069097370891171425638288930042075509893314090436293590079294778202023859815723743536217404582336761724748000882382740223830904850030644923816528894689328929116568608915209314927230957908100357732343832335019803642365005342365169317894850247828940353583448028640967595304244868822167352969619036692697109981944148436608837158632203641758040974195290160606928604249795734144827041493179742369315703298041056453121102749051267594080705271174293391580495607968455297209724928716588223431023964157624060138744476640933869277924060146961424500315407963479424757839248996582514887513064396111118249795372079028139088181034032163272169198823020743064834480583393211912358924936211194062006948623304753979042988186887994034447371491192427088337989693424995527197786000709166241699397558921337143237882077183677081014998572050856782194015111755610813866995269604312567196876647667820378265800219460046774628067666454276524695617985461924565623991062559747229109530839012629998698882863724307410155652519561010534491491073434596625649405302827131863072502425540445187462970347574791094651414020106926434610317291092920494228966685901502581232803419338458811223376682190433969327695582853072908414447772111868789192843020466240020414835630901026226775691442362585586340854553274487487304246599367826403369515094859253449880590581103977800976182994146315786798360520502057806773093683425285678800805005200011713687774344072466997897049336247725060986045307501224162377902037865078626722337123317952964562410178029398436463329025332081115683891387684756611530107797174150199580063586023307107231337358453269373979696662627832728843728333514501463644971923791264242714127578160588554900584162804557597468398215430039682117267196142890930649166946897540809820894684026706208398027836654852565492802614269210714464342394598386531114229082587149074847781266673874597386341692983059414369925194718223902825388483673553901425556208677906274017302334862743214906851761531784504870793637298500575215089490204463507781334620003596692569232627394070379250806603305134171303948552863447312722329809732797424203945735949899961307943495621338086032586461805290409291366343300897141787950023975130357687010060144274399009790460412335144190284553126755691981730330609993924449030672608851820298874131222131798202350672160033219154964771927563520601140076053536487167975286401887239225610650689023599540664916234057630588115800060711248119607251497376690575367635490918273280125265147830239001705207816216511863970503144195957518445572576019230832468622111856734964239629190637336183747228756914884497591935413367270657461456867638090931724932694469383807242960842959096046360889256758220559564613596384712164840986569210730434906424945732987327878411778460152039755667012147953560189360602796501682339707487265739344698615964831222051736963908265313505096201606141698680229762862385483658184228481518305334055543826389277256964155001814344930230887102259135585395797870800051017844019461293328471213983163270080108537045493712969578995839396551750099550108584445272221889537540177402272009054196113064204602987967072675192997993186318641657560450522317620015577030229828135897287811593219096537930604118440573955774451721775671159733057410065792087737157929561350048017995005017806983136518159241237343216327151086549987313989742828041302015976698817408996688487944800690182785936179423848213333969132212439908431866742046024337603647094055578641189637079467393175980907101390053544508601194110530947400420690339989735418131179380837816493699766620367558836696961758878922947103140911908067574636363017634853738812775851270636513025286945349989004523231064791991569629310706697042496246690359718279411801819618776999062930810014049803145831759159861561477745532141845938080604599179639807829626498451083879651923988474619299233787380334629961506793388723945452735473292610895925344930429620884010828428508048378807963548547315665628433429444784271296255653025984443150812746374690327543771316788048458128585329968674941852452814208236234843392917914869826868153740106461870007108351164145789645163058980728608490363873861743921828868642009888730504688216710857441005539237523245680605530575788760684159672534426594380783386858179819238618279772097277360020308188537551172008207981627916094245416604786224070063077704088813726415846775177064709664833368831701335156116889129292032956585948742115645512622476336111672794516754935834868874708478639662304444795320759504114515734339270669794744863733548341809704308202946663403236224699401049805024237703164103207168351124145082642187977707308020547237691416357238282456253546534467198408882134785061001198215177319353659862653086258715739870728131494129791437985299417122242393386912077763242189112635887031360372831254162649367411186299989769293303405761088024434294562724009505992693129872514253266105621096703418223449880599088867415636264615330005075626096450478917168597019065842585592499834746123109486037610869493985018335620166060754164041167038098034327732216362247091261900118175963121558149643728493860190961873130458585572645331345358690160277567015191289869354445207853455751172103716168391800406624467610469437979905676588207227900132758463089942365562907335414559419987611060743497628685642131659445082572846258252134262988370798808505374353794269527238652974661672942559996007345933048291498558372995384599875728961189332002454786853368241482677798078515402993368428114009357013323583680572828730206876498037882335553112890801319584965419263790624816834588571208974878551282946713759002967547512326380895205719770451624963979795725451536016923457630953325951851590144066548445487969183012399874766099659172448570719466931855053644591687626237706327530059922134076702962896140868183584228986072635793897891492645312637508060914417732964809109011496752799917712055138540859248543634455425876901127550536790447247526556266038708417492686782800910728813628976034170243325182786252059931805496640215205152917952946138355779287316860886923435088386154025395190491037330577101360474933899826877277891572672005203203499828787814367231232895375045484405722818564632681971209835064682553395476491850727277089614615798301753367815342211493282851661284378544511048711979270525029676503719242002685034429305468933532744287978835656498695084072400706023703766147766574641438430653444882378221351314075624793278121366687484848001512535232105360850563373975500309095313915488455121272994479897132918008723538326017366486667961325017010845485036691096912333453837109228330321697538981004649336452247566361491039782123627499141702955645944407954083093552030584240349854064701132039036444412405868040018737989101498100993651215476234726322409913526070720834508075755917929955380561022280780365723771276018459568900893132222041352640605253863477528593191977802655632594972176663583568055142140511434157657242681296819005232442424645971249641544050860976521750776202621754825312875842184849214816838219005754276916273788131191117477528837012832064978526965358657092859117167874642895709020483930900735501351668570921880472878042847319957726696933447202577127531049392126617504618987768441182309260738829947044297038791876254587827006883936304413472925499022091778324659659589634446820018313382685841791841937561902490291536633765459532405556249585484334128880334107314295705212975232458094321314848910473119490840185725068449306831865560954285998605814362756514911155752963638396546873957483199812359025423738669056741424452319387871879877088281526416131400825819326238159755435488308043972921429560027912028186771298903526172012315918256685550540261359482299473527173324929030690682842444994090481949246763562150893361246085557334370341181976598546318558748761715491290853509699328069362627292692007512576021965164372816511367592909334173702928950396832447650884402112087366893317933735223011779746368428751413161584324220341370204429121229664520386642945301195986736850968536921752928304944797233582447423213232062246981280342358112464327646696319479550317825155530927783731916803219718892342988487208708296185247147002217759233952739995614128074490186183230498036162697628076806312101524281115355075137790261410385438152930261842905125309508832661617022316410539528752975658225560940276032895608040819287374882304657354220536117982154555587472877648804352731327073969517273455236247626361782438757988708329659237173601447340397274632597861009583988450192963794188416110620927233559421428432425336733979987421385174599922580130331918207514280369499671279355367330553647178006120433150864281429678043904122400075763112269077719955899131621827568877520290143482905957911429469246613031969146827114196007456477378473087888955601944565659272216646136700357061764367722290266940686622610371521423491222890440127114322715638390312171471275498525292023806748593063920202077206863932684133922822688103990971265213177775989916278898724595360264745808601102062128613757557222003521551313602617360319889307422928040649321854519909553568349491461616481159334915456275634300047210363493719245859981213216197264239143726530319534569390127632640200402101657176639841086615097439801872923471466481311032898020938319702185244062610452759457968228357118692227379122669763870741688695248583833314762631658141323263127254994711844511899883538014592133230886607540895319553714704114026834395391101160140286964936868770777003125188573891217900741916543918818528525857787446210472643283256964015190667424750559798642379345666178417027952831020504944001157675614634644085791563904596040849957633343256021530030999578045603955612185108225253155070120056124760388877415243471393366054008583449815562016474792542540479740739499389994143909207853164428403895880852899803989368147687712173094569534394679702950371234151125472674482067339623209759139582314724206916988132497832025550995772599472767857495268707498044122593968147520727817868894535862494320049562858799593923852644548661588343297622073422012262392996953269068749660165050528535433662996054145731303188698021630043058525493268304139525598714248992117251083358606423440993009424255355102501853177112866574065973945129331846723090626166588285455341789024045029830698077053462495707678996425273529098448095362665627960387509204454833665972882307815826199093111317969144260859348008803430583603665475988646124740055114515669823177717204761540853965710745865348635629639196829837122133435477090859759976136159690066809409761777277069977994797891708612646571705411002835574507821269091596715273321391213659201254495329583428981499623074667043133258445488350500789637625580603576458907531090575461044338724685611612247346937387759730337163138990295248579877456199123116554561268710232001544749997099463833379463566973102685395575967407892625762421687345454422514415188872156921691092359244499434224285579421620773535569813438924227209076507493181935454654548994564065753141191068605800838159505422680221479731616078868857018956091386769701504415057066068532974777819742753847625845946665211969802510325417284575356503950248841619147996271867342056902081388087973545383103604909307923744272468781024887843652661600692456954278938136493583922799556342387013739357950506683549718508226370363182749491170418741026568548120154560791631497664353978416950515950416258265639917597899336832022347006799943601318320693277318828333326772613863209688205714031654116157284722805753178048424516672377988799972638516463208715176842176022292792222944287860473978162834309504451356668722167555623386048922564720122038414505736155907765569884402575221490944984118616943540430675747159594265540812027604650831078115345569865233832204401646651826316244104473424059010112730409876031066952837524707091210114734998331666778015610963895751295513952237925674915825918431979301398888307834366970757131658432455868872399854217401272619754093161117116916017440004027759391895195902174845206863024846680831479869577261589499866669556256712013161257234197017736550677598725409630820413639110733731318079108551462946769033162103683889863629386545698785242890066662729445766300212352542788027906570220390674614212877929693306126132830718275184286167229036935622246337780955567211353981307987274682268462408331714126876725183184461411862857695685852316735708353925217290972074904175506637984381063980838895471556838711984757860729550831957143753799060340835310661507272165464008563675072338245322422715459086386900814296880024955511985262462947493446428260145401670448686707848833486817288469609267853314893948748972346303010583815128525041741065142753419429885867207576910349806648432686688395726185740708376453524458408997828944813054448824058487353180684116347796407026361647121313547215529944120951713856911743436048978018005885617112233642555569793327617528003729067602007151619099914293300553777536018108431662060430083286940095404750873521285088742990011860170730094097528836023617119791284040190611123099541774973355356038679449094194065569709289912829068283835107701166619481918229229857065848491464292477215520614898197191632779891555383376252940504784539075025578500482437835885374313591624734299488374019176682512151640493747548078737178141750086798388694459797456623454869886649446495445449606913787512144731899038047131736558795682664683875695685674008509296371871361767713132700017713448339591925625396091186912403056054686874106341066036437473605512204455122337964129187406637745877331573142516315941897376411415130593534997905784991982080184030906225806746801541908205728552698929143397813524475055099463960253032424432444413263887259146442755541636315189309288492238000765741531774134317620419042545242569622990211541176247306457571707588822102753895756704181496866347295898960851573227832277100802597277482671804344490553542252674124345288180409337725771769441626961186351315057508778838300643988204094902437023594321747555838072314157128502020346189261853360097248455876998969639102170640203344254060272139989189470017700851834437114213876995332747880113162135576838445186282338888697182019950676980937375118210260481401826645802452617076134923835766240390508953540712413059164389706821301314704519954476400058635285827849745664131366830771709521336796229840718213198484128429153992172768775312023994878844674063826486108306197181722642619280787770457931424004485128781368556472103358855775179189002769214623098657195843374085239036507753051465397448425638177771920265470951544261416889303263289873550168559978831769113062198144835261086699043824044876586223970612106483871952437145093087991390226894405398030328221643966650928489947647492127823775776949216220238422755779724446114406727015276900580252356658313190497497971067548578288931421183481493580818018071123635261992909513345591716488505516595195739318294472846537288098952714262014422517456016194003517918733690457086524388101427743098796931528502191341406598678374431459132388945205230911504261669866612375990731638334015934655514833152645700067453910753562272763724264562820785304350732356996686737814040088653676767827384253567837387511905038076325402106643199066490653482598432408337453016112525788639550178223497294435771209063139014764989634951043055724535011514071812858726775579659421099105813116327197210880635018754553718543620223899040410393267643339256503967721344474682485340937565668495165170720054129250856650562782852803501576023295100565607795116600344302883831777516365383631955213685284301062232646303646099081996133951517136347821412831286887776547793010302586066809322345729854577495369636338548452365692303795945866672834747570915796142433001340980471991352328037101678309257718636115180481334557301687094226838472244807373518221491720581960875495652106413678607491650079210952047434291244302933221944037732770778681287015318240097646652027238958201268798661134373509444038038050151173992532057900865046608435768802587479706636483362626588275292593081560378033640032927092736126712816841921780256949463389453086695488800782529652999808309287334848222844088324162892762677017610239738272167099410721811783609999007491315102449139864176304539791861103380835923322126695889331840239256719479732281662140745907786381973634726959235039167129227159121056028629663740424332111883872884726242612973010134027625119251412642902804723961794946142601907071777979375933576497204246648110687166092347405684966642950044001579112597438848096229578451795378831037117699910582829232953170650136778516094039903260436494457552518067604842491333454243558356704650381063756436036137713996919620169092180910358483987638816316884580805794941386580852228163739659827509762768620195144247830684019822649067098647596422799239765543665741971610071509465961685721929228546470575048745430611070397244698965615838137261554711103185741890306621795968918542645686561264902365886678852517222868472796481898207328536086814810695082081185033101757271067094663115325440839920873146261890146832935077249937470343071226209606652149416984537125641987501312797732469400009403430995033480744491154956479635756954939976358766055488326916899928431831790882995485449487917161870803501312789904534056431000907826787857327944353119093548057934234379434582056518216412276773317783656775951536934239302398628987225307956547337473382129488967857135280773888800299785089723267465544100091624237483071107241112136965739905924912325356012532731069985449007876692927805495253662082942429224997553221794312925142590163415306045406636829221687193786095150530550743649998566395734596671985515378168941982518322653606233961418024834556982639533669965194917152874519262137180878582796321708011087837946095897671780014500641137673703186867525383238549151228260930561220233615896608865787083428931357596653610061567605302301388338219864638521200173937230939585697941447064678885990877045820339828392897587432814733199735972088313676900222293196499087666535395708147831622332761380026242407225545631257587776258139846430465678700963558988883456255354665931649705056480534537045405889420602011177406280228858756172815960042272114749801880177999181837968377897149401170469970030626407389088864508347663562770099230015489112934637762464441008583513233059730057068263272887186721903529899803929508478255036895133870294294603599666750396420484529052566477119132331673530328190556881219878192988992872301428676876657735056276068296735334375749243106268935715345548465264487034629309944580427810291865343171392494159315979658041279043417846204620619233673349325924927751394748053959406366672014086102864297119868748709164605531762779680980119842170007656028318228504437239359924621229889851566907421250231593779445313295697185358372104759931188503018529842427650448417431107961359552445280923919349319118006947798144859058926885593571936630021318083563020769273569384812765231323568627640180270523444220108754069100930467954739191331043312717287524937606919623856398023865871689163571363761924808691417003809937435235566518549035755350294303461586481739739023612289817858157171168154964082780500676161678464657342551113362533134855726858603208987043922071532254035875782526931301866441764463191212744886626184545507681579967680986802473579258248372051208547037527233416176588570396785303036951346129835758487133036802301279588066958254446772934253408105537313417441130575008916359633345385531872387037453554080446510047270167999799389328829768408656574444790925040952329031785433332875477537241136493890671926054541767979585561678376116762486364987034519940858415170376894111381731938248688773362878270600584163592396112480592461192588816937940805983957673796183704580038287477289990612247592962385037543713209592307221427632039513465952322135109235208123613886346286444189825225870777465750083853652493279199166935286264548294072471630597654488869463061316298945788758258614752265273100220089998973068205357666831001837035377130763551021082495621754658469375547490388248137162198613951205493557955204113943904776950724756104854688818526054741507436370532891095327472866849682233103694099485795255224528375501639735429405876002541338330362322203313779488928572259355449126773686761982399958138844681788047626502879872308277583608279686161035078515002974524483813384571418651487921671096343209890289935096504117088638918463654267477229986742261757435272322351487238963786407724856483728536031728389468436496147400120968465315872251878358321846826903152670848635546370061311168896689412498621444022134147286788432007271296790618943843313316241802223982606244228761127215222396835276224035500730060652115249381293885801997135108116032875938255307634480218474011093034928801189582266808390582195538407201883156922297661224209109656866956832453609722871166477400155471267411178214999235713100279282332162394822781128050334865630240093006999787313535152897062765161980854198926475180975457209581777102450330394255895233029383704030875075458001225784796792457459379101119635231675103779281594515937548872800583807266273880537353357335611994325712709359511676883247380283524775484854969972683812306932188945791410375189457013941925861756481509262094476763730921137565296832490005671382337571724353320564214828554780497444912720673670249448085559172233595304995389014426741504698426067339901692172356370665715337692391051978755734808249544466281526935149608920841665729219221100846638159529212602768012222536345443204152551334204589935344915925732238714019071561760617274074750517673662756744565452103073353317136008609550768615081188052034713941000468259772149130739682103330963236186277886523330819159301093864099680670973837405609962679537455717598804301145567779333666538240049234753684275928539863956994299772417734965197149602660815776837970153715574066165921208799958797255587459234268053436935084318944621723207435024894378547396161752026194046158758754565975136988422215011680305059561321546340147951196139976872921985563226535303637817053591823604053577678673839976738694979775038439410524315608370328157760804308724556070489596635897028477150039310674202550907576846586462039118041567172540597787963563791784389284027496569014691344922264836012183372928381309642086621690779080057567620389786716483845661680002900000283572885558590042040130663042225343420806066093202251504081903214903071067151455049998581984222745449239735269724482626538115956619769567797058673073150838738726086806099151842249685569047318121289154640406790701931435939825376799007035056752976559202466481629129357787690750750361266292211173701914175869764479609541728514617264961887723564167258708018637574414508783060707963872192700271702130127081085895282753969627231120623130791247489515949097321529954856127054811514892106440617205434827344631983529831565188997030092695435795732585058113147586609858074629362468287220202177995146885469436253810448879009383002806723899693718649459054870350000677966113564645089617551984886454810320002090599864604447517971591647373709103077613845712108181524584868540571246288238346061855520759934816119324888445972982029132642443106150565638531177547454175423406515208381916354707009450805251659233700842989638674206810608037535042793467813710392737912537154176498178409545210997948299085850017616503331407821914501868101754876889741128481407650048211183961386091151308355708047534358015009854929046415148741048074190571672927683111873291623349169129533213980012143837480207644985626025509162942014280230715284716781407032404499932170001703323641450060183178231989232880358374775485688982289452990836530216459866561951513915488184890527622355990131445025867412470272427387837251561585456039772275166651388740974918457677575805899709593043201196898484860708638230101891701236396312392062876903806626863760913318500493872556853419397042506894722572035076796646434297999936506246653947816892057087925483629929189391855977151095328396645407055660006093896955648501473968137452282940061345271881055378215091948238482467256175441256246129782494496493635419002801006252100782949724789199504928285029834774974700475660963055811345700610833363842218588873514586750810485965175604460607538530825133034457314621458645339399137239382386491502210994189474571860119254173024098685380462194355842277388392422549572532481341269875866531397827627614414550819087560610636636252666411168108560592265587062002453905773723405940679571591248705335036478874667158617157014414468063898547281314416207305616234779888683811505686428134572190698331825746142909267157272431945137516711428527246340714007068012270545776944826969013216716745949118999341786311129161351722440989504250954365090892129298664542318149065454702806922325873828185938707284567389116129632761154112974208203916353304529091105142581758028685165520523822024775343647166920485738188298832292474164078789613370972073976304309704864548729492236233040792256457704569214833209646924976516157129470360853331606763952176034139268044382311219168735774998761012467483251206112387844825445916072671051615273436191997977502161570250537671130483704388715719996266698420020265007116588097140478876811655113159230421145756544679076983770515862361687398041692541390965177105411449365704132690743660008038714369871871087666163475513159046479413543506930163031622322683584710947442754443073210187999515919877143875054379089240138422018274408780696732876086496840790750665839453358925453748075458008247941571658633438734308054097703897299772364830129957504304878024982544835192887693345522723268928780575538860428076728906263567028609463536533035341262432339649016603180039089886958322832356339255139854952593550678761756739014133640354951078705835092041606679515216666868462419335864333342634639326823570016008999189875397298278546753923927913854849208984373771694404147519758838551665438569762354524670342667768148713175678459603033668161976923297318664383370002196151048731748012509968033923886781554533875030202691668944297309813020454666362371318987030237695852378634415453300573475967228842889813023147681767394016581614498531845955230780377486719916693678931145867874258311590252966450845928512127655921871112725144526265854239084615639168418667151598563058972343847794692084517612227244877063666055542839148501801432827029001536360206089531368165022708242032465832101824163767865815176748792716378813662256246880576318156810542884172182537055251972887510230117186949950338673928719122181603101062969905290800006948566811503111299428867160308653634859395408065091356616978867857990894739055990827655400091168069663962399607986302398689414268311716214677700069761383042750661365319429487943499161514035629352464986034849784963453254322310078129620821139168992463606243229048546397696747551272954885251226248826702814724059110952442891413340411752987017120191482446609803727002330082544170743750897293626426352710743189320002267646888431909955159276662985201296669159904763542651793102253309120827164077354580834866463948216556950477203281602444612536663231316955757860607295424267378433807649975604885807239952285191459658907001764861135784555303310860463531623540766271128592807275120509372810962449765274310933988171723225631076246693373549788088961769087329248088938309077135711916270443410238835116764254173938424269796324617849467384287114706515934836254085444327563813406688692676201445770068845535419766732526021952984902462870466533633938640143144218054677855505536623559962806157016376519895347964821646574638106559331213385009345074013335185448006267572197232139997396308286688223413983332214491081600585339432342461791701504952436820354027345489358348391469381283118203240239371688171510373742146097058750826917492794372371025558073106636683722291473538308031066431270203355261778149797849240587679641545766797861879304537419607037072768327347580714793999015960725945404775971587936165235605292508055079221797679554565681270926714751131105887296108578831895099411681585576507767956346963683913919578614797090365968636796044952617228957498465780914944897886189311898697878470072904731080518855302669943402494886472064923122487872928527414153982218598474703229531515972561739809937960146651099034498701936548948809874701971236248636276434395024221275001411998344327862930634919321845509590279541606498772412983242698592986867021450171305767980127289074038309367692636262181938427553738857297564618964324555240918599676684765095456360638163630549704505800770620915877991170267995577261504211110676541697414986391996146438972218750448668383869441704997375197266517957861253674188889248024189758455788299129196834912397743009848446744691996440274010027333684978215512962183218801095862039790003809551786174705480700849879045254563091083237689286978598659886808187353252379433092791380938932063598476553696253368302601478532811160686131955439001153492771571493199625629891948567040255121087018559711143517032172844506658409840672362131379487910749903431493534453681993488417554994504706944825758250834825160895710421389631089911431614576407177797434741070593433488684838463430691556333738225559108800997279225962024584333169110363863130795834770936495713638443122752392498955561608609649756116618131816404658418521608279188718225741727070364587432205270949204308798775275352678691045871401418868306263130161968384529960958714704189161895055013944714229349661927202543378370280293212919948371061663291166901807860155284514998756641600263994369523329375226422875225657747381128894629071514492946772188311594073344566538327137333895557723463032923982055201283680152583205057106515249193286962372828844168150773156413937352072898788856963914828152724429188473491503734302013646037497079738508773557820595141748851279455515296087123973990883885063128636052521328127999926412632663004056385723670994608168333545597476559731595315607282049979377591645164304959869939998278749493886074558733339139210124431839572269261903278109884011904239272614549966621740135740086446061469533096093413570209764267590311719911322842480220003669040270340132808202663304447733141746561237874284674273431492330856184118382829424426057274979816194782725675135353479883569345620402765727854461023122372783508799066317540361690958819154054827781919183532544137399212560018595372230188829045844250955239213493561498653393008681915101740986547305940270997973811189954272796423342580389091900475636827892328368047482687751723565616115732398713565543232619601646948108074729659368218460441505861165531460159691481389051403374759196360111932446242545512691113852614317648341074489829634736477884401998033599764673407757582500871899633926872181663836085713084781513677717411634746614413114241914446103021061001784067590937523901257579063696160202411490378414033675828285144126599720940198974157253612651210781036676968399570683623290092045449051023368824574480712656190414315802620557709777883973680760624616288751803243017289407266971172173376654559749522123219520642173870210745422694818528321020446195174152622504266817814443846389206269987894625802833263679771717793365656842184752270643619232118995373999506919772397702901464181316568712953869235622959646174371085479072100891327715441427116983162743151619026507349355997590609576776455149923329707439593549802724953320544655535349772923542919534721292265871591774369529891913753492996787732492196625465761595178157149601547458548687005812932422448840498665106976665606548520947614330260299910811525262922592880938493284899279628677531634296680057761882618821299701448935449690691736141656392763357514329940561115258088784345828473805116373897517502668381793644763919290047905751236742612547930315055036974133417257956204716959177435905693976399099953686472085802905519578053156045859908418169064863554646204712000285602348184770470134147693234583151605909636570674963792531122774901937681102969199450315218185631857144021080757534584914172442837728083888500638526919857798266617714464753493854663030743854624525180617952199606807496683161568171892426198316004147777772513034273111019568366876504246659822399899430549214017594234657847682843532928056442859906567713704420903447984648516082391866259468761928971670105009863739185314688159805720042263078708666260541193761086755271101852800093796869781162196111464475712449412803424560141375175962433867527355745051778352484943723491172122683268787205076359550013684436732600183578887615414803089859293138336731406529815277202534923883239217099749733317881316141299324775351953549919033671779697803895220607118360682268699971289176611933093721521629579610925547688547287292102327434433707477313906722047047610742181831171655077788929565556436958000579162206919341139486176213761980114636667755888877865212482968055304840211887328046177773636417848305077670850700944426379907897262640516272626787376422038253012051908455552480027398049445183165513369521065697799177656494085425937628995135787498216894756996582768560210108150298331927072002355157290269506528301849712582878756028675804042356328978961185936288307138749275546820223391115680585877869384816810914560409497488284827215382312619874973464771174108045267260916316178778372721532273577957233910275049336769735741953787172587941366336808875812261288159110107699704349358498419772497907607213865426573631627503346906519463468408092639256467090901002731572209865159564086245937121137318673121406477050661686178706345726151809278144036004299209689372679010486932360251325727909899360262674122261979760933448612956287199372155273394164750371664955407807648052323087733069941790410088432828629099337255782662426773048531828653320389950250684507849925928596200240159524558302383422622406139378095445117877003643665836664139529882519748360677195760546774024159101233630683510620677205825582435560821986648770606486983663493426286963475375333434699541044752544117544307336155674975132110588332168734980040010903353898417511167746531766553762364387370753801664638555754506088619016502634749287532904513569410559944481045745684779530008634512543954096620757193567879654649613071105206872516446024396766461012678851179988672811471345298966907655553234551497833536832710465989672731725532149908266124605211363261024922143863638577130342896642724508955436661044863070404612160064855232127850902409333893514814239357539818344396275352224494500257694670155143522970250223900471257794941718296561485557357177261108678041080026428358589681401118703655483239279091793076683298884481153670159123635192813137044990108588620390101752360556928253994906538562557099213063980408322255642039980375934630727086035282327213041960496967436240356031101131593667275679479991440529858095732124111596184541365578935059864385978445174092424776051695721996278067257944910651705316001614754643406550633764681733937884080340575350906612318283317917146771013940668291613139439078393977529545737863038702939080196126381905344728804056670608474617908495498121193560213854195091121760431507312416284734203956113100971836393775597816775272620576821333848223139823032603053932723420006043845908072536049594663654501791128898632229802358257305368661431284044244581646113243467417590969963682144148914181889440819987037825214992631935089662486755520444993250601200858222687786783761292050549031778626715531315793126826711547332651218872781493080851228737877717081388337105810326533218040866830409206950082144158409429114770981117136735381566686067743988977866757007604830325464440399730774071798185871571635884709404712448142094658929343237884692339656434741965100262994700564494850050725731278503798307603660266729075777603903895678144556657176067749442853028658958049981070525748535546131850998979134842080641804440803600656823078278599515987689775880604656230697887835998674787161316808050523156634949805116655038328706026200727368814664313140041197424762024634417486591356605019495973784364811215916214284220413145942953883620105042932369313080893564787616308519114342186677160585947375992451627665234333002592762317157594395210465788867399804177077703681461986420561751534845977142189563080610324749191084892647898398343338107734424714883690499978031198048529441569522243791472923119106986421074655216881795622843977057784017915142504253933518360430314822818570590334213408244973839086105523737378438653567191647814126522595683341328316385280217437640690084384088042713547388566704296787546506087052517052538232785383557714876684890893289058667459192154354058012682353513188496580271939848175832547476420124242320780478385571720647903458211308085534826942188109246959424899396916308930953092163979440188748771536807443534015452582672185344271197982572436516006829443387849030611719779325339717556195740594640177380730787642773746951922578048954881557124801789903548255070840150140537205330089684952673710985284053123226637335962734701243887644383814028024977625020669551061707627362554514449803893004101745947540262219289824668369880404926152528339765626497204291127859298008688046075054310861681492114141843045194215797886878253648222975993954148451513562279630336060492526002142280193210980322177886442532089664636383701237342904737828142014243325409650394963769954877955589381405286937280225273832846375330772647747738868535321315726955397081611028257902188002090982237732801098343569052655956396592556658382421958275387295255314453827208416924432972079262279910442921170538056304640497021476534995737341553722275077082704748340617087661909949478255632033270260713641739251134156438797390690126016410997127541160329553346472070270334550604064416500477348795508934876019957503423030231206094934333851865691850621503444826222001831683849189954767151205027273224989877806035911498525360574629007963591922795294001867576296727528151161234149395147792056004081908020070373117124696940015058517177155223338947475902902145629102405761579375242116179558438034124569037635333205435525468525958798435147422267694923506141862464694381942499784966139005404906464508274411413547525614487183821796283372891996782060089497122542990570767550850738850818904821200766097528402718955604252641534272904671292717356801238131600390382505297728874245513675789952534058235583335585097922671844357781185841389475906879321032529467702121275400405977387499767045744280554037130946553876757448649046641604452102704685980044308101403916512753701982412106753114729124943126980175523688825176666199299802276065851150486400763814183645590611873277465594710169477188967016282806064334632490198945328721074485738859776241597722408410950253566301861568896007240243393863697101555330990717611906631690982416210192285343073503152160838159283530107244654435270845523159102408484359476847175553799506120339762454126837555294933814389492888565590624879264722103373051212318766793308034236075922084525688864150494578083202220377624703749017645805344502842769421566864390605573400497284233318992067324488769042890168761164205137319933353603893160343494093633967527637194680591406468843259738458422112950456469349734777731101823387960823579942881056440864049835688335344070202438888232312107363306035833759065804743505973661416605299869945771592071224048060833617056585532202786792723298107178310721107845803776921294678953648840393626944689768756436300885108178210051542360186328898142361599854201296480011959341883113469069971904917839784553927663175154235680407458478631576275164570135942174685292503797584136086458508155735858008818725611613610276024200767752021876052218537153683657578197590494809699757390771975721324077599710304272388960091256269205587100895528441573555780670899766213281335414169489623646043681372428320157516561415625407020391015624820014544675728099528122074612839592488583053895955020951221310344343011828842568995068921815816703225524961964786746498136274543385763884088204995611844963905327220611389405241125311891837710846643288513173043595563383991936458742366322378798951425430688192132738697988551819247098327886865825155718540245390172758109283109154409218814578677385825913933635307780775234843354123232207045711254721048365785471565127707180409930290237838351133312685457643839232835213778153473117929481992022906533955497092503448726877256519929562059243881897692989244388196226703643355113228102098665466595706588417305606038932827266275852756933182092804440721513544843171345390310976633640208234584356012971910564964982738927393357761174658057402154290962142383443561481670381067146767472247239355319030859085655549143517733795603017772817920516008727948280690733224575652550111997263884726581369660012043590315236727251858895662013805983625365271608625064685082467517873903224331673060561323624713562015280296132209530702471105410566326053416648671420763257209241760710611740655381567333022884783209907674433754221949826880511586240062873252056727909834402397170715070576870686600039922043437127346099224890197631368722197201095897895672648497764164177379546830833805063132535701290306817693408921015307563525931740757311617901901245366415509525424045450139324029229576749241787157565819477366258339363092892857750267517211913310514407147259653380490955361526258873440367228119790645913758521824084736362740133403654572685474112805867570098900610083445048755693899227611547359117742724226628194787737709783562757994828867100670362513326875219558417878488517000679951065674656831020578194126125423253122659938370207801291031128510776169470714381114196571984130600963170183182063166133670041139056727902950758497616410140882978196583066565179670301394434656117702115404398099491531617861498754559297573227068603007536343078480687279269150909766130759007527070969270062425624935156273975362350376597737283616281288968660302782049189896770238909475654881944156137999462945376262209299257355387520376370603267638689289167968226930580714985279742044224228626051774506071566410851589428496149780284845674024746651972994607794908974085743108026733714786882054175791685792007044323841377812493435050711224085359383777093783138324204739035141421027364538938864479792795128225377838318602059182886215652032270188820679654568030945859301554492654521285744236621635596283175521031324071761324043704868473021880880732180353800006925797292800116720704869267224046272379436810322576764013657210640689767620587108285020376849174994838222019478722539824256816382933216661670424027966124813709084009275133833893568188176949703516466360569794524519802056003534809853213435388847164074094395716338909973830088032522613042159550919492230200943449096468098945247967047103680112072211624964964970080276789537387920245305954232065048859785108209646843867761156706576830129838257915613005312613206211582502069598926047255562996837088736895853236746306475407644252638844183498965952132344958387904311019877588774645954898941952143282495691613746361861674566804323056053877097974737285702104471869281398651701708240636109297603847277278138296231311365604603135244249202965813202451137163664159945055589458476268421348710227967264278035565431176110597431975890484126456293402597134775898698966323837396753886971425843122001094136423278588005202935141466093264167349443334667318365894459547082396986323568008712574249291545214777280440878770872070654007367158727384459475641646885347780426430040333261117266937161596261494871960982543328171874291459724815223079411627977726107057142624474183405147312650380270207732306800111087598333700590647025776953600453551126165678079307604738702297325759716720845489641672684953925238943052653911265966272731015070018508268711696666851679609638863848305497798200087622771269081657784532762176235391293103886991714133503559904644889039332019104070440448954560612857654281150225491092652482445207243867614561099233053591918643180923919125765943899306128674512283253311566896251218839572690743691237539959038086104732819719994531116632851503089741975122049540164415284118823508721847968366980989439825437778553493554014290586640145478821189359807985068117096054240618610911419840302140783848934919341986432169548228968810363614656361450301016198800183525545092260341558237418008444124970887497115343032702142240544865713099360938068200026108241606998976455714387192200262068174626118057173496737357724548632405073946525929622764257522531086869260583283273432857235845279602481879166498122906387141836062262781173050723251866185332477743802772131012606791810955182761960753065497453381531982363487343782033131665958128335230269964912173000064794799754014486870727905157358310535746748011521018729200131784371989305013975332247085366063055188433883751360610542217444332248978274860808854104268691624727832514676918852450474811693352880042969939422066889832505172001891823497642538834675539286010517310218284738948813607032756936219636771395691822549121011275262197022967945075179828418472150737491016651066116839737763275726664216115581942813597017387627693574056600885413412370514079862755947912096131209667578482857678820851875670211322579821553667909266648165945634080401937313036830551303924654259903695997788665065314821238473780997986092573506227381146613573011357094087597672046288443593726624079304716621846378764695458244300715003545094803533761679203881905536319454740094780536866879657471680741476454731855842956924985525956029605151722516088368742472729005370496300463157537122287647388083600009742202305893088890094078918040545253440744606689371024664920873036811084024217616575856206864233632949236775391229905780540372677991472338487053873671847493580380640086623331091307665839615445984645034344098230540386113780652568024258685629027857819804186862512452843329239326935095276102243531730151372675738497083043212576415945258500353902690981822133318055641044000388307717115197332713102938014605018609553744368218117327975478102437479974241770607158506732130694284774138076683405849509210190550182987960631875071524620562291313338647482077176700980148686903827901366233472889306978318646806860285936183576189732096434534628628514583728246326653919231307191775774213082254434001039293043145669515284794849290037960925431845985368581715164929109456845832194960282559157690551705006052236297892148111320441123401163820455813456022031773471770685110142340656640823265416936832471162492725579028450000564378686392487507103810790167001389278996454858961424486476373947394706949418333114331686832369288758094169509055645123314216596915185657846480474375944463362401567529993264472938442336838556153411234836409567449737988318193200500772158005505518213785261029901283743132733272326471251407841367674800924847727913232551026050988937033756212176936148867100979310871718854308309726144560264305386962257306462436263832831481629446705729632001802560958585870996772711306642178279473975799113745896744907089788182600558867365524897779905096231350601491501515197348780814180229019589641323093851280055095254242234178758952294920957065317273949077696108244890887761135719600370032245362217149686153256721973520089405073668244889665254481134127727241058607153230905259341269599236839750102352405942674435770006444193781978516523165285032503052319539103006806939454989869442282289732402594783396690647022083036089795074214215006237101117557924237201061058524919397514712253223112359479843103625512203999918953413113803100355044690921651662035919154987729346279709488497540177767483798588866953826048541679622895843407128070787617667602352282275020868456501982491799994826028950411990054708840979942741716630737888513570671821947828102180220773386789012526747292537510364252268581762190337508908184150585195738828731333084367977857729800813229480928677704298751087265068833341381320304585203748329342460801504409051343386084375683695629856866768348400483185564088405606362159696859658110206654680889952876081868117435485258705875821493763692723526012950017808995799509960945193551591845850222680018534655292588431863407889962848073300627959912027061426512380907245207195466510283770534721893720819480571308571400847888918736589591737382888918605035275426919141762946626707774638493770805113405961635110624876255871360567558036829608293114049891476867829923860973349708371756703849113852377687674634162792195882618127212197507698647830603122127761191178018713964216466291752280777321573384597713353310165267554729611333747772603559955093457732698641385894128562429665963081664174797772319727216339327564994944712043332694068543911346379927627033340758486441285231026870277035867973005609007722411271367676373660594379561105401265579879348683011991132481427113932696282129398210073925840515934860540876908968593301385412602606352411774521161859141292790271695230559535542759636137483562760397397650950464436045595442770734105773869845505957407354151281574685333735381614118991093018398254389853550354385328754312763678288976907811729003291519986787282058069082628391834418367430064304868763691085980194864738600036022283280948410016242349310737739665901875584380919652308727380583663157787478017798572184297666751887256187285243833818990021558011706665216033556633291586569186756308824105847883247291173355697853373025285592920466750465042250924809638212219548571355998411583580305314193797277376813806864121783649510026374518728558836266199457214482874653602909673313308539254789501012485732209802301630122117845310505086223775992814901313519073977169628915021082218428775126199307669856971706464344632572245773392685688334513574915343991637463121927468497006078137163068750216672093960635242881279298753467813257309658093488143455972144143646531214723318139096834476487023554779373086814417380837613156006866532799755402691866288719125918085659110911485038763813734095685068050332409553470456894785909124719614998190643598099952822565200746994446864706179776942079205285142876457022641691658255310220089012817643829505906618500843812891494561929742876299519230591628491975931902945061614696543831276831710461804346152541539963949172061492971635477020198281270103207621782114715365998636613001712563947909159403826593607210637146174878030624869492513789482203625196528414160092606659343401099182892971699234527469349067826666708977551711191448796139159561771981288675585042176598724213788447274069261810752858087958319612735203981555307859167053053620668787969911649946337318187143515927365048433423843734715156186800179628922850542833423889117911608899164993259496293431449640408856798391094986551326124887710982881870430499966905332831279830674995111536634495943314659425102224370606178167500111317918769825348152699923279867376505683005215300404901893052857776589168501333025122597337132577714394759951954951426109235052574576914484585448176040462791852398972283941350140120935282065667427415926811475578375394943420337769738479416199533442913915479001166215483274712927908650176229938870975529383071357029675820731278239091078780854497003496042375917659975405872835647505862814012188495820017492047170084791697575393617823439590542960710859701847000788401550579802243267801086511652731935604868976543411729972631835109376075679089553804794576759469357083579448885751272260514425802343209860750875920043504353280481117808107989677210811461556043024312751518132722906498845362599023448448122121627994673017007895706877291056605147890674028495402135331068591138469412651317593116346527605474527299762318567250196060361180825874119828699215968017949250158831503288681548107986809923250499687488738045454425609096021110607501111059772786797578328173396120207514535127822425624323430717127240062192732986682128964001250391700024319884562326164891783457604660656985469425359178931034893260672966500069831880153066175106507525873926568405139313659564677294869568240478893401331062332067351314353791278802388276734517413755513613722675112022589890596053537519398627153813089281835137635535686729583350702753682909667540777371731814881265795205571618306098172418470199599342728090704652456516816656948254162949431621796408088374802288108282662259807385172626320661767548630168692569782841550646970728024654945118467471427537804196271978729701910755351062419574080888883329672568472243952132267195287129562776307616712708964501482442618356589665940061035285488153173257818763958536228658765000828821721326861147725117967513978687021808685502881625510192953925623535364372968027413789067780000296360576555389508302023931292275089473827527643031263622743245141810530376618224734160800593580148691706840776080541495704281561375428388719910072388364758180950482765827590353836243917463844924033450748178707485189598218925735424850056221120212212416042105645722420500216876247262975601260033631221305763835176824316230493373232188989237955856223138300476822011195169589231478265423242247421561097310387947193654129960199167583309605962371034526585966461095714933739693927715870813466673349009423580103626170593535908002241426392480886507378735548550538299367976729725287675040135315671448973197908426893497831419513597254971314491677296249302516341816597926513404751540523545155719839642245351773147172186876135883753776407642353330755258356625253464819964917421387841214710577310682631813451934822003182666756921054000530187654828159871907819139337204435770588119130324479324710393221271654452710214839944756963529466538543085185548698371621418467769934421267111882917123433534050396561696266534802291950557634091792608240238508163880453402161171595676556143009423341412792949369144408418149795104548230520507330304178295648257125247234953105457971303414939907643945030299451440117754937395768021605851727552745958854478404753884947613484830204243211503269154859954509400165203472536744713877885073272801274014596476984742643073548371662054201785893170627278566399492677049087156715613158121275744471025303164289635164913959474868881867880640300607028027310579008435895805054201350640235127912335517802182783395689252675633623608564293330069689207402065101500360073149447137580130470719959748803103769452846673198533987022906844699505275289108849674813826720994788791356849171334759764676495850374460519028282389354876244440637063240926290134702531882933857270856720095669411294569503972660084652273722692859145598394772032844638334341026164796839890150576322405859745786517498302879768235316145445257885476626733577325506759249563775595049391710069894578263136415870627189539670092487698414367102120629626031408312200040992317640370265656026035318869978163879148924877923752710832725724264357803068599256863603643797227197910920860480994786092324587904803233938856242682623170205422386437092590357237639759044284745802843638361140276588616996664278052929999425777296246821114020541002071116904390491484373314077222127223661557096517926338187675654787301949787887181512876737637155003793757718082901232531987115337696811995959054198131531175917075450789118511931867048101033124310642093199343602040925274526370180892484177977494346493396592096733696356809488234530927567504983471192287351301814604680954274008787061089551545999235173878065736392421579170643621803677133038681682131881777356834606110025561967024765499346237687103288374124009972332422101067910391588091661756271254650774926563423510822934901140464184846938149517159462203636238641750432712609426953920799774219905827941672364374879280361475812881727216948646996077450657128239308912468320179490708401714648967487567037480698209028237653135625630424279197677049546434549297273800000054755049938924086434177091844168537816648760533237845846352657328993099809461643557090109842153301476900458190197904214498523300382459467141766986651313562208180818636256029903962335092493388401897322263620861054171252388763966191773744010473776553711558511772354394656997260297030955706137543159432403974672847693827977233167463324700865940875700962760577641544498222595999895958862094953521427518607535277856115957575552631263092464990754456064899630510477180150213853484772617129531197130088428012351602116999692682852278144980003288144559402329730257092773632769534711460949700206233868894208908937054273511978345574314708587243977751278034872836792759459784695560541135081877948817821329434853258542983360771611925825553013206075448625041274103404365370095233387954623362622567702141160051261322378825436215460162567922021577574805541226946319706883318194572093481249986016933053203826099723294545857350663553355712370490035488657462742308340947036804928926204809755276367314519849909170447750517781449491666373978003441923826565147721640350401698940202393702913614620426693323991789514836230073272364817721403705126094228636948906635744939098204219190742803415576809629835074808908836389232304122116185849490739413379122568263508606702619344218830073143982454507656692952922000995055377986314211968126909445848558820411848514711199128846217901442040095552722289304225262432530477229411514103764804241367157045282769017498702937257933463316472367965928494700690042040570682049797862483353662974169849785378245042258705944540097415490762513628426817331914656413074606738516748892764186352939719854971768537528739862676942596764284933928466362677901537624204778231638054680234896423885864020879396899994668697421202970836027570861125576557599722078763921112239524402654980599108416138073179949135945491864034390692424517471174291581428586055807788876348599787578884085581586478684561298496399987629634356715594870510780702978767451154936450650273061929127806469802719486925961047981824538071873303686311301309917280119290464680837120720188486758758281937703410606948096600191316052409641076145185170678930162768924469234302126305086950446692088107102421663966493778486258958031466812181359935780894681560325540953615087508206808602378145015682464200596171550618072621985113625447370297067243261844315001153969454060500119315149717112538950128419007445025344364543779129101077869718034542667742035599670301968108341880088173977836188532455734304700848298568705733979804566544923267513563581725294343362072835245576681566481801085915513832541406196432822707302225374951711769233467708640614406134166755959507528658508954320202015761672197265110801501678836070672907897066976229663071535807978519198217969070310473748812891432647776623597016135311000489867131088333123711932280919282462313169634010097316825067470694169225759999772898125949773415837671485482660718307915112689965479800803487003753578176038774956871397535854444719871020602627828463601069733190070598222882393367531051807068563911084798452830543572239512300027317620122484335950622101007766069982068480017210603202347020742572362031408487774441428987508535449760050651455025465271391201499146150283649428507126355403494458274131347896660336256017176611933261308546327958419733399074699399361708710413566123562138130875487858315010711917541436397943352642496841629588645963131066652803725683199763269160111359863695629581270905778151206657977743471789901452333626871534652762617895662952557172044401209741478896497137612878841316496512515715096429722083768878344365417185304062319315505472140011879855035465259300756376936242547489115741424615819232989980941952673746381782763151925785558529176549459826672695644497824735917359199576004865096250110125374240320318608114814693135411367612897593108796810593393451058174623481173604463399640283740493893852053636624760184905005468461590954201558079861545022156991962181336742198983193483193410337941578111056675019889961075163984683435803604745496084144844995550361098453539067980955892128167233570297370818823975213547045236511376445559436709144858533848772375258456514538522001830770135224236959062110636277675324137548943936441889446533084527345651582255776067164074416632687804710105333213641206499707242862346167816521231456032139358113215001332211283704438583143773101689296367338721224318855389429716040161163755264184295739207234174292935258224027054528239914786030239831027097593365115449817549535009420003615510742101225884698865642683880982216854384248584060829703769541711599231291916335569490980587233669793612160602516783495521063184084917450585956494006782345066533514085991677866497380273379222402698996167930208832109862880593005555937470962939399065947474618763233499574103911522374643316489599804180982198656429301579151482935308816833852137792606376708049592330932785476009030493575404812325754885095531673086588891269508133306488509033286319611009816404714996309102929490865992653952567410829110590307908839208464182602694444581417191998899771448143352536429541089710823451358275086614110315415555811022679105460984818927340528699298541667626364469566872550108602622767182758377082902947671683666021589275385083699801019110629677429127106275292371270984720079027636490179440109215951735388327139369421803447400906071970060726000671221270408252235659428642438883949682836921888291150157315845295116034759213035090483823972888946136934970979557930077984656679766829234671639393187209387452677187234382213701609888390872912238431210071855743444032240629507008420271307954666089720827112196121887216820757231275882553560277864223077800856035668182557299094706215287241394391786864247865562182615161585954895609494073398975327874844062044258083433510793649820177544331157811129034068756477186093585352372164707267996117696176856316988085047976920579075392368124478467470790436432990243851890670579601223264341689034957241090361852508127211655808548360885868254827763381750064932351347937121444932151982101286461324537417641518121252709295545758736994027749524100392822124794420627671113631267335094098958203496029992873127581096478321195428024961187805391646622588695934176893286516452709746469246474905466415734607485786520404518088126411839413295046818328611763976989998501301970763795265654954887349933178543461828428079816218049720478573969100875741821133594185167758903600480962262008084237882141884226820099959246307892748326521590031463896446654300045809838494143675184739218055391230340826779984998923773943547243120287156046389021483373769852351104997210970438760710441920422602321045533641905250773576592883186795690480520141902161818303905750297841853655163828945322029040491736193695415718023893375957936557744232442711828024473147904711600386636250729836935748440200418333722036028835589106769428597771741528747870548245965959756420564526675497743112593025123906004550785518996589601488182918058539585657016913211458141280245110826537479366770539778831074118621778830950755136457209452957909306086289114101155292668105126788429684094422575508866203012639929178248290877641267299936793736693810150850240432045591125586533849035048064004029202523055060368651947643673748861939000058414268591024796246080826687232501347735920630847904252644125902722603653053704322162195703086371259524848088405237738258230059461658797718847760093901559899314730166713403851603878862927969375349455414241335767022245801608114437813186908439356592482304714552990405303799787715954339385540359977446868427107738700101162780978201021436568990364644082876677713041119166647155339848867132131427821024997501816840173120222656601459565486508487997438807442617726830745608550817073249905133857417603654571328579121908574252572699446772156381589260042028251951900145893562611799670901474432830212177431668776804806028722901375068419945479713731839815047087606704096824143204398515117216173206699678143439828212641330972196580866973545086114461161202730064513183551115611006203373740419828857319925088412111094916647761095301855695186218442323433168154300478990327531676105559649232283552478941570953503945212967545972707642021489492382396963669077603838798456312295320194072594977411889846319523841076780494646444733714218001582897135594504195465346559780545710718730943971556967980683423980271572927683244070319404835051993803538435003697515518055862597498412351914889606015340717446708219081985571392376665696562718123277019244061303353640130569020475440294200781337701075759241178865565826676695270342725957750526563437541173959973143120219233714818151624957294631699982655223028309657258122356195245348738559338052415630320546623515576321596522892510907772555965130052236402008424955098978128206650100122970696476066478227349015805041205662337790046689381894172598045375888934276839901296996236090347840223023721418931554591381800914922647779333866544395683726096103337837301713330420522648050806834082354827536595757592778382403978678722432990726144369365229190227378088595672337378291354069487039649318087479364990081495275615710602462169214443967777347575309109448348001674298993524223076290527194248091347178176315770049452273449526193272073447078142012029383923178640243336546320967089199836249675751514583337316415385325583352252920158826262678629886088934149311449015987272834638328628642485370948727759521279383233951758770819754964109876539252223726716613710575590226016128752154421418644681407328539327593948845792356412929750279449057660558802027391140020670721337693758745740227614265633322848437998825147288417825846196228299645914571084231982216254786365845119514054965893216448824744852249826827862511399941126675338819453661909905734090353112068589471495248803789745910895479764187454411699834981087594121827424844313705868507732282683550280999140467261375132915269085158546133791992942676118579160678950603196995673657366482240858414944089244724570531520818710816855858519387974243695841900936031394589509017750282354960291224341810030267708265202285871267725868765374148030924788289890680642327360037924095392900422842247835995198810445701244568398678018997762962818149036195441592891990167648483352412411310557075250184928103755870452050827822069738520697373206588867549469711197373059776995320406629918132666697685583865772888290688766905889113748637696999191429745938870968068069764194940569655435536524663262241859306488679244147328261837050375520733682953660978804130905991652998885535845235202290015474863757393685493986647113568170523432726216636764932945555546909335875881699000004440319109273073645124636574415532423732478204646435293489085776205451190773238175458657161751386163103879408752439743559967726118486673042355129697240791173269793266025178033697829553644036357691725645503815328948967479494077301826480804203028433078170637870244114448035331198287252810853199558483775315674757753129494920507161281313700976170260757589526878336743516838377016691857378047104648080328352127437036031844640403697828128009318251407587672657068947832545311493207915550129931549155501022424188948025988491183842948445393835444670271325127890372411362215472810048902121495018987385118935375987143325323663370285526270831144605365693174064157295476317788152914015581442969634826691562969573996334569224781828059148885601210559897439423294159240116516531280157068548899898026718455371626925653545603132591576442100140693729781527725122595947339844729630801287241620023630706093853398840931062006712626701479306598013637622262718297781951931390260206859386926176581988530577162583776576087369895129289215718647934775984939630208580266580351064631263976586583066316123933718272772124431336509313303133052441635752684041205269550298953737438812205385038322867130617661838234627277298333699304863481813503355283842741257289561284037072992158532296840520832728155346608775501745239836713554078210043607108594875086415290368999674700903992784783566799835965593580577759314755435276025118490808784482172873093413957390998333241819737025272002853104999375097398657329265391303144104654920452947136063910619521760913127588899739667958857086922048769375252269805208314145346865450335326477116751280532504098336210951900293489468201273851932851045716049979357802720365896483688163416324549987545837005455128518536423840525503627247243393152868060246162931263130888164384111442168784733879919563102539746255822783924010486737746116755261318161319566400348136990466305961848928811732556644822907214585524453919910847446852636264321322960978145233475490545561154238725948289071217578830776650840783348321411800278800269460193701154980864467225551759601023652397159737943093611460298029097228663436928005109309162324947279946852349554100786154957810441134001432950519736704517963829411701803432408972412919155599132092241896205753316046523351924901822652867253586651098006127546458329528816709793284485063762115837031292362470655701672508938084928085613064654222188889029792552190105136775194600577863159603711415439254081763761121801888515201305114900567568661008960192106639027191516989435326595430548250270343928574481666974122651200018845277985940074383840538647373735128061877308869580058797200340151818290036623470184979949059985467090191074449102354656795239912744884689613321014107501624369611726343601207400315030483665520797481154494523666899721384232280857119691745291149567524846112457951381950483777289215400399151206614797366573251943745627806920665896305896541314530557441942384085288149429140355132157643830556468806557418210420316060691930046845081084364312472206139889204251245920551241912064971539970963702879809562216141911019774193670399077605255476405631996665933696576933752329870274179396455950444020068149979238586888485901255146776061139878338435790002879184622245347753900059027221401104475755734501827725396988606504572006378534977795132494452347416996965950073566974874674896306568301911257854864663369219154908704653210366537588105015517806534813779322816232712642661656018990995518855697544260249377663011005157584093860209106369963310561659735866932810666845714242368260564943701989428876062869670820503391754702617014792126670650302578306696113271656770925315637494086092699022842059728234711905412855834587769216420083960962625637460823918263867623210262254755478681417946990766363922405894421456267284990842138178113197395337490988645675760584810376114393023260712133716421970718421090233499916646605964160829653783572546328975974538539211998765468166179129200251643957120357443496132482478460916823735060107572057195989363480328728719094346723092415328826354645996271583837175364650834184094180649191123152314673586841172432142622451752330515146861735927426744804455820685656725827259046702571353159885229167205203622113866053602038541336552309029432064723070349123133828171762338860312968532328615754189681426242201551335320908487062996078240387078560395932261277247267409430846942375963410492170388623784191060885768209915018428701001705900730953435947519851056626677239029073518937687644963398894560051802821630248263482954824056024007161910554241003742249389903944044945535657577418339884401298333831642218797452703190281467077402663021434750353830190422844462833631772075976554871318902963803507424186937591335579407744781390531493332161079740307465872598668678417684110663443324532654293101799006607172572431210850027281253117035707129083221534146109037041265642419378816170964901170031396856025836692496868879243283664664729875518672676867081076837217457996731248317108487178726768739808476273119850407248859104720608346181072872374380413593562023748774654881138938517253583532376612701192667856445486466793911244686228856698697053306196128498976737489625547362308377620495354803489736963058373661734299061433001691336346478460280226641317013543552355892943077834904624658437242177260497362689284795435795694558091853053605211071864022607045460146819307527123463628443668066736154267209601743277174488463071187806800577188628832116422919222828624610226462826168296931032298572383014478609166772196335467701834038856424818883856590178977050335411298300671094548442747476406553737548469586617456928443584969033348666784213542552412950489700401189286100335792095741827645279752162168839678919948560003292218410191143666468635574599602705954542973565826799019298372134615318630397041705838633830114360578888530832280662382915436070247090647595064228681230939041660539515353647413338940815622677452106547870858330332699999269831708406960295218973689745192282628843256617041462991304249998732995598083513314576960539256785140479008013256276118007875018417306936975374849745280711097682164502190323281947188293518778193896659138140348245612158192404048720635919682973648476611206189191092479053652935509578846689551434843157731448818924779581642696009519571317134520764723734400496041884585444724138983450542659253719587143573236504446947567151481128780144568024915892011175820287501760333741211616628436239859048030738587205452654698507514499230627036643957721496013075357039958874918185541896969379649802265945832831571231849636238870150098405231376989746476233542709519044717627066325220161495777190125120981824629669142896116942192878159850573363174416061728794701436352451821948196778949877166666185370658146248011767658283078977403148943853389301845677916570377107530768766576326674044900649704857479906537878384624289896367212489024847533115981512877925086744411172044033537153255571602758629963359253815607899039024891648149684742126474011345364619920186708562952799305565755135067746572493573138655729684338049828670267982709029684127302445192158381569149293186241909901938055839918004336651542860392346644672476738109835119593592345324465178832855821344251966059044053247714552427058699849249745675996911191604434231651334098596686847810271492381911664632665478301413138524883026876850878969188547611656487019257466862817929158739077369391063391141468996513180346432369868217134207462878932479007898924931802165071017534313693700803193769315115535611013554202062568172223499584102049543430268531775066741495513360479576630574157462165894129031633005278166407862088748799878766276394800590764848054702627008723369500405634309118579087687280759017794490787901462632455580654396230806115084889057233135573142810112674868959407911780805950299390700090288660534195153604832255189318560281553447284465442228015206208772848202211856891188498059166015438921219810048563146439176638433056102649387749052334742404151985539159194674778103151635461015527336673761489967884094159799296812337085219350087557103554942146053093354964521669244320362453755512242539262173635720150361202924256595282729652305568981366485246741885318285164371948320533600015672416643147900796531259942685848792423230404315968453686651364439470107171051378176262033922399400056893519806650417314317022415380725763182956286166510505899881922724889910106188631029740926912097071237020459550816687509311552349684683292755413977742797632736984553102716408613177615377662792970420575727857921831471938723977722723530397472806715796304721727383078568184974658787886877431497509797401832902867929477689827125760321848794749406508399336186041257121874366503549007817673558524049934429025594213749459687009280308909630494222300713746649168653543609829155160067411747985522839972057020545758241858992032372720314008838312537136220088456613817443115160750751430802137843470902520503685068426235240033797764277067715075449164538408545681793234553087127241082219161006168559929398774057006150424718227813234567739015519326699426412241348513116090294956559476064103036734576362701365450253898936860686199227059967453303275865709566978694978115614764338450404930379741562404191398192699373449378113615727765697244891462776460671386382311003930496940659169752234934336731761753163540727919672851434893920173711631961212554278748544749727588474123802417632819402506888193077165126730789338115013323157943037008951911416148074712035745554914272353962894914967869829292066542630644218370079446697199277616136088928219200480627938993505232411559000053765079690112486755224105005014359096598207308867801454802278342842977787754726266059355974076589787293995059225307393428010204116128697375397484145933983754005341087223231858343160735615461501249191821713482223556777438771151112551149344108670157123341600001494584734272725537312877943622341475184384493993212127120913132022802520607081943811536983636416070627619452554854113174070423557982662911361526845114421441345606503711264576707354313958133666781270130396954959523223806325177372194789175089991002202050329930555967727057286482066472069108023021057432442012706254576645773197345639137612573887996197540322951535192091753514456225879700830103403236491143603020296133112653014591452940091483834546096111286747431078527973954066784486507766709464648119830300089394510041441253916083785173448122320022254772322828685046630402145689404980202959279220012176848313350526007849673996990776660485973242605450654668226044179701362283702225935259726096071021170403361217546369428158280795858201237852514473833054218591210821737875369594766816330623580680988357047807085120684412152007460203538568848946896118496098006328387174092663072587421194888708677017546147719539567171357865918769991230645680931190539701880062088667322622522137188183286107809055595007139306839953562193624059078643802110582180298166369770634092315963007140912583560561446133303721987414624635449248856207272435147124801786432511827687081006653955492538512015596574966984475398665075070227457641600827407777095700448443219942160509052440567649713096597471506805578127408329225344366917771002114890312161462589794124360572968632011967437995491587100901008038766738559861827123032806150527653896013313214789960418691790474695959254323396636605511579976535287694690946295765785434523283087113907806012666124947498295765651855022548374564674718553852290697851464886889913344989804463335725862003847568040234706561260483097769986999997094187384271817310368372495010177503649644364444630205463312513155351020061184402647208955220602218668045593601418954295664071209938685091769935973202554847355147154675529125121637808818855996010625672552456507181561019379243591974016056262209623740922713656452930039401235685593822195687766564957919642704867805473536121126285824920688179111399784137129161831414904589548216604309913416553213686367493672888079438454998275038587119691365260926692678632857977861850430662635919560169666871710122225240682058055069363170807485783858654436724110222815716370045288686705721625268728392178522242861685649313883200992384876834182580259004297477115979170976566566629514221927545766851416853791262351764291686349327000451824182635710573589505873544607599266121850440743578279604738272779925118713400648338096670755417096541312964127175123230750488008024260225203673421249006221661172251883842611318361593653475899747784633455902362883924297129910330935124406112923585568897074545200621219199152975866361069022765087290160752179070278338724357264552680602027672883036936182127232218771027045383255080391393320532967312993933480554640386680990135280126981207197326126884798674538833827790471973277526283333536830869917811855927065154167195649315717744202419953747550768893923479607269954802218237000698259190616366118131121266222239878795683002061145195623215161558302833605664751511811682752750558589694497812514547763848182371168644714239891769820615517224042370212267506356072567028945631227648651557550465564311641432577000462584413880001950502746154476013432557529843905886034133102846892878967829463712569107375194827121148704501547229436937417102301670114965618122088742850761590322326921801512121831019106468906593748089299403282339793372192033661293042201189101950095772377165829736801436899604507653738379352339536223902521269146850757726762246744311185585031230907927640994659424079054995454144026854064989104246048776852238841448724225581434822431824182469510754819885982117809185746091815871423316045406750985701975472136444171445184671655592959000352858978000383765963027625506539211093185313787313041208966141843805116964415396298591619744086397680274344795710768092810518003340364439011749265408490374454589399167886815586791968138674113640046721785619541376197034559575576212004475497288276884654008058993623417951331695294542618098320797378587701412732403459749852058327142886005692581115331398177435556631084384251780197650619499769161778698029303105020955090827811703831245911962044093328742269523717518003111679332417552786630555380931850590937444116438333081374561701659856832791034259348324503088598098989643532941804737701988667771920712790872894649968354974063325453694575453273200718081677712230325849987269683324083374357251804169684231168169816637019737868876331670321147646384628099212703959228238955548576509220420901479292872496648255283182966390209740952982449585863688670216883016553898351023019075290613671984360142320444873012981123992859484530864299527053926671424234888286577613788666814198513799480154063325326827950459191296637363699063337562421842047086073648259242657295737014513795420882689930359341544756469591060472916664104447502032540051122991638202818792511607509823012877911655732067631853212613247887695844114850950307644394666882533099724526916276238936139137823382031744796711652243921277876954590275381756196956593737804343909669659870114157128785149915484089180290967036588540948809034211370282054266364048099719113182169402302762799443521407789854229467058379995125499381944377470533504014377995899599918674197263486413464970465334553122162381822041701369081990124508090829504979851165866958296772003102968860794832847200354875342331622182480333477671865351742303194754458583138259596123554928811260561620060755387666262183311045653154275895740379071267070284149084770042940329413236198986776980681854994598198871580355097459166295296146640394194537907972042880770116361690312751113827845764957383520743360024996380348834748418340392555887437550492539379210717046584117475217608193784122808449073075202770844130598331071894444776603176783027217678552865210092825451364529648707044487229723475732892815829687538182861646228591879465921412514759002753817702782310287808014194438312980301236958813926018403070215055390942944626655094990171035581977299870340156680986436592097117331692719471422260315504775706692976628592481344575904390252187114488323058151304737213955751073082622583020850010273413525840856859075843282849901193849498876542429788365879051876923172752814648419539043396092838102615255264904446367933879250658266729426300007050012841469427120242584618948021942977152806451256855938248243730903265647964369890129823922237272162205767964141271123285146949369638426204112259437281612034035092636274126340568344558274802095152474918702364903709496826501732104772489915148992094042121965643714043708039144640107994270434409423889277403454717419984518235152195388116159143141644429609038066721026552875929523371001047981502009544613265305674854389395588856764609268565317469172794031090067374492412225148968374308951049215091828375275254294408850019077708683261165501014583855546382005137124621377693524409316839999236437721600539111459038047551514386975386515468012836300001971387261088944806689367237912411074443895592530262772106223763765150644874701448583079066675595558623002081973393256694236400862908027637580967266254952548444307518358043060437294697927880077164318329679280900408776295363438772804652096912543833316353571628689126820858368769694495452142816186694909842908737200578993497337018228860530310149384105484477886382206266601706057148501353442818452717473189006944718252981280254321025914770154003361826164362736097645947870928480931076658637450043151895923261450475235798815943196511863858110480912102567124552114801278336709529474957848196461700340151715611430750739872430112576997682848163164134201278436486846911882598675292249744011950046176437674879342217675298691673779347289003227611818711319581765135159600029558544115882252363613927679429353117843516384451423919471077990789040133247674396272640908361577239586502568823965353596342722183654119053277505951157829245404043560618334116819366592596338259181302085868622984948614064311017762169029975401831627401769850545456138722044449677449980568119465331756710557378390292768643678941718291912824738898479036174810739290442542856409080854318373013507858764362144708181277801478632940336709241101527533917324029216264623659616647097437208771273846516191582769946552613107690938538865398841511919546774877730142717002338772207508129167194310009567878643791241611750497538598605894389647454776954725753975391201407990366757855650411118664065114212300277918416440843588933464372641049453932664581904693004847216162701775687828413894437155218485229030441993994783897569625590921793202618598502187100893600577119851240796269778774446306820833352205214831499227658342903630478683572455602216989960861422032520247465629171927980464676218991952027065912728117406623543885956680021182416852327705439312465497478166154573169585380130966629178473504066269164132962127046913070590800139294894923448840232123338771409457889845063033310513169663835790938372004520495155195437043640129161077140734455348318828062718854447583300885951161182033360903180131709775525248599384608678940172522816937480435245574112283005523883612102463575678484756463990485945750755320956669622833818278283056261810191628362179630334260440554654138800945961062214078795473502055860041991141581230538720293795242211043874481804658576652749362063763941534599611382480239053555511005891705177620833380671365151837424519624775707706535310713781149732515481011423352985161007336890224179297382971579095589201847201012766527979149203687501168424938179114604992318235317585300831425466264493237392303333620035210999298204637088142118649376750533355247802506460683218271412175632964454565551280225468472523350888553813093723442647388938145528740480150796825215488622505471190410406141829563250362155782231425995514790725120481906524650892106898841184755683354185694503742332258845800087548935459313048058401499439450338813228070148074674113459619062431723911162562619519730748922486200557334549963823658745416840367880972748474062280862028915399694979714037537784801480747110953783836487299688505980271384574132003723891555193284732364469561868021066899214640584429195561778447697837078259248575717510351685685349087939879933817965215481564350890575260562201238075167678248317060758518950907414857630747303619398923947520201734824995093797389772887850688133058218766227327303978430023136549951685238215315220626046481728424586861351621843658232963483406320100272802297653613406266085638682024548428768604337495403945234448930854451975863512297955244444678122775477001729094577608189771258054693106302080817845508756481668523461501899303159933938806838969839303691895647496490759348622676180432505829224351550969132535206958066675435053540555654709291768512624391852830731944700576108887809280493561807383615336302234902428140813633289684586915208505702435691978962999056379939213109668017000429104951142134038082940184885121584882619230451640116024070135223992296705895207065693284936193101176317965191912534159928391210178384295256854817458951445739844218096679905840569158503562810118599292892500704020331307336302919789809479445999662647487661853548480911475309871516394718460588584735427261392819233893414714196880793226989615229897853951568056630739927563147514839417867343887594645916745644409557462683555994019275872602015152184690992847994393442298065071913754144019263743648657543169454518675486406651899727945201479231948556432486305709778871355142754686942011939576912226598075404669036962511637517684960044368752180164945575812537417570415214637667505456906945625297991702283153801442480427542894630182928245972078440067780034306403561977650580484182774497346995516246735580681654143568397863129634697295367995969943634419914406474562522991326398410755721334699603863454834718267492985247519500176010599307893159168150218022301878844933830375390580568863591485471315101186795356914489430546884324983335776186613403945917622406210897823072655282731766011966381636311509850983144580969969266707354787061625766967229914028382766594440062395201713933571328467820974479076807605185496347056991463005864997218595935883616088879006716254072630468004459701575075519297461977261938202629633977912479712908693992968063066194999000342655665293339187428023303444930867202503920653173300661082287089282409441881058377356764457974052034741165004585970574513884658702608544813992872958885756755515271322774812687122503264187013161035197175460473301021572330676815865919718808016130123676915236085538893826006685468879651674873109160102086638627855719532915611858978888903177226436625300648592383439608385423672887675966216510550137351624810492977873274975460650674123706036933338731017553597048405106858824358788753214631296539136992642594965344372055858007563647163795654053098936913955874443208058605847248319291842237880644029956516901986207967612086620139025477317403235083416327279671296568566461304741460794820388391395432914322850820775698673330688024562716904991411623633793251942636228153487142944330213418851487158210682834122683616766467591953091366437452501473951582551240750327641637781628772058653488136105886513849008055053508620570371229865261291288207629592930769289781861683460910111598838539019738895398375888406017720935759116519030843364481936698481030795854881674130806863083877774262599993891210807547608235919208164231680085769353492070915950368444829255200486957817100947975308963785340513527744914706017725558975856236230189011474655118679223374669672716127386767214650508657228665022634298089789494638014992731239892445802046300290450761934337577829451191917671988989270395856379232545277518834531515927168502860126126181366445466290519842650078518993816063614703552781577313305266139501942948586295326301105019366993674101227573737994103308053615486515374194643836658934968972840263865531793619054757515460377234379631611644589608974920894640390042984526782103168054031893361754069286068267277624463041167615754699997805514429165520397124063540583915805500241301207877436197284793044198274724014034402348851507036387076601815258563796691314568235339940514311312007955073804044827628320577120281273702196746658840885686124734756279691663354149571098361496336893500684826636785954499644111011578048012634753481244879774147420710328723231197188332948371789794114912576313819409379772181813898836880320376050526625531249772088974347933632263556733075701320000413084581480342909444768360793838609195516714599140492538247819263962432076976326046381637813817398766583469868358934261638157611270692846264707062364340199561937139019389639244119599171556447571681996725244482019649704401602688076948380200953851293915401261052841423222471283596664302279570820049625914403396157602085992330278658766990033148339405187548097871890897370292300505834302529389062518595312109941854354434207878021390112782259746539581564589656918563051891979878225686414398490052672059657686161834585141988171190975224242274053197886653180495471989489710919631211319179005021132974270852047898152974656813446181976255180409529176837167911788287698348201588683478154519294341334092702498486935962972494788967061752654753154961735821431304625147599900950067889004638137691311793514297362790161113045855016568447123794041669033597477456079991375136276494592247192033369666967431286166054130916242258701479461953697060752356543225413091196883117199973852532242401127252383742761908579825459349165830897685577361438881406234257970893708954793403299635753519297625907766717461179489204945701001036583291185614381308089260759139316383026667461236673745376006370437323102306710659747672721888584957821245248568343561455239512775416194920312752200179685503678236951341286570176568664342562733319880042325109578043173651714216307612853297881253938319822434661776070136020912033127141506246390569343239549142251380000410850530662659336321125722179153723628764298175223464571933157735316100419127005936728092143753035786145174675523228618331950883389734691213368782560729448595639336534442553915153299141151403153490592987589296150564960619342376976061548849781825902403261342225906432926914394334752322826702919126141587218991892623947852549358356494890352877104923422449253879886052905771170865188193396271335886099060471568367537697914585147448861285928267300532696106868679782888572323110695632754754484823689085676651558388462424523737470267875691449216813867676222675098410749721042107597122247278397159751690565661295988753574987340118759820319495269363853465934177069663952204060143463598263783683532538658284810751297513692826533091938702060031445681699744073485148322791353901743421892278094475772970664183538818755580000847260138904126058605393666854143677716328529005757365545339316048374912707051332973149433644353555626668867248595590808477911667880959017037177078630950899716805915351764915028900791983836429293932696235423947485482898562788297702654924135993419665418128107119265326492466582948237141937369142853678649513841901737668027422977376760913349161252370219849181555304566591788962814057397655670522403881536483248883316511723029618480250656379326894718236007350307728043773538541367719359510749660483262282635543268557646886964034088339779639216205304681246842473158406242805026319736612771201617601406772894422017278121936110231841676033015432139330229480330565620904829532764973982439671233852160644970608122098965147300337037336929612336144976095764329484010204153447865034227690898193844988615251146250569259339284357117645924396011521619579955550471103822599605283290370856946866061033214465849314041536491182473468390316727040482085881048821864591558372568284144755860274320218857051899810115234487696362016228318143485897302604666915331233256389297699460502848837781085565104397675211180726342192091923447627892843367761201552210792069808973213086788985259840911221140034118420167763583754586159566713947036848221624288938101247530681023039066681795776647278318941600064827058465238817173585312194155688775192163838323452898773700310932928181617735416512892032915194448653196482418607857676805038727488598906551440463055743906166112326279058175027624670431221258453526783829183509195553553373703140077889015238845576063993417617539816538060821092340529877412065205164742731855898371964128181364990971057494807016947196351579047860916434564794924339358851569769265655444098937773727149231449239559721271401760387635776861889304086768729064392069341802849272381045907548922843754515984901517334385463946933395097794515539727783617081915873605336281382243591844709942631045779311044088565670374372933148036386140160836175159092838786821015480984422411406141111840009696063975416857685532775930211313677167647269041685759028620028476183068586310705439671774732465664726189072938811476013229387498809703595450890014185338169769284269856702108998588873382626735885199165596149573613026699142538241201619735688981098843062650959143974070606392639360139253909932913341292644576731835228814454692311496257944443264855829849009666907706104121754194671890674075552636044162829568714886885785764007752235444574413796574523899045952645139727639155982513444024808733184992838622053441524485717705274976988623086868762208852311233789286449101051327618741638841009238220127543518460332708674930872689181079432072449840467845987076375691386887025981717411515078454887585072604555223891990649815816055917275197913805900661574226909862379828982966650052863348910677352263691705010412369039031841427362843390808841843305302730347486888090412960758117192452041350690835937707582906019256168342547505362760254341544029159959282101609366429897497057240639905470064752629917075527960313601226774673455083150122019928228760556318024402569212499090810811842430473671129579184256433552982702890245990536253669054606525364200918675616981831832249642611603092554798511880302852557436655163100453692642127371735679642691405784607870823366191641129286198263150661663476853755869040893443994123374402061277994973739647429217163039548426180201757362041856804509679883233047222077222209795188743817582112004049394583789108837562496028748925179409265733195760918125703542387733382650279766915792722682401494975315294728642004723800373058885561679322283345545576031717328891333020722451043549498328149882706335554163509438409607376299765739918688644061127000827642016109737360654960697031872302421962770093518762990594922346671653048134745643522092171477577715231447991356608756336706162990435122261944878936569700780946804139601346925499296547852277545166252171976926398270525244292033310705056426097561196194172050508846369786382712767055873769063518243658031892687455482718992687787288321922160276445519555853688518386381123704491954923502815710675791320961270259976666513303179657941570482749806977418231907087832285595111395178458247144437402210465644850961206630807827136943235554568251890768479786243612623905624601690919145381679831235410582319844148157067086104258572841602905284248499686515898729824558002245664453576341078057548093970569070911762531980499192397498303668400798621238354468642001462211446811888909852309224118399357698871812726538652493814210929598779212705704305474689985539399783885019761712347957119546239151229522845504329699169594793144852866301118400104728002366900987486406540916603906365317796910709679198959524515013780380393305308587319288231705022090811041683698449672611882679434696385687806986199902071486880427338289606732457415613056748956295433456384116026949450989949796539459868731851525263304316950233429208414039666358328291736183193321614854885617163820753479467147694391746309394365357283733540432757973265877328250382992469970624460055902792975940954929605494352567702952650888784132250014747436807771200470539016320728888319759015740058111524371523594984494279407675232549056943178634216650237170528018413469427636738122933168827718290847032985371183417421016370953544432975236120015786158729159652747174797138688510126828716041525534270710839569541207506997718695331826111067093621216638145869401624211991995692210363365167727048671296120741289168948211901970626359101992437407573470794942845928344848921104508328248640192381677882572765600502558868288526522413721747259497549816859900713211512078463983615850806589767896074334956228901869961373636765890891595840021603296074704192723892956172257153301932895819861601338663367001357594557004393798165024345052913912301702336978395364467560472278514415380288741357509981766713088940916369182965627927905602426842110238177695937705514726294814511649806718844097468127530100602823202681680799801960871608987324325250605297080120108240978680575083323267395212471839244193753079013743494952188313030710498890637023963619199189430587980249402276532897565415444735671781316906370632182489789964274464677626893909954656140780729905329134045931104089942918200439291511375061960137126900940037796679070062274007880533449588964004200817294079363882555465229346075250154882401352133598561427855212592521796888594878620441014258868531468561291455338307123134090875713119563858232840056035738409556993883374174555647554938119591674911558075136945889048645503257395958586608781441924886920641836641724277856027411589438106058268391704897295316642879588260626326280036837660141119479365577825454281206921563300165688893544382394231929804766846381142382550913895099218365215084037721175369957495043048325135398825112115308529546066941736222244121062672916016093500612626897800402292579320201043969092113041984178285918865570013307859491573113609529549866505226949874708089843744163163978738965410967836544179596903000166999270255435778052254810806942733298998226970727395677168244765733700414027401629203976049433031448066798086433915711950256145099354973941873552925730744569343175583561654291542421847332800206234650527151443040567271121621020597528840628934278683768838480207391251002671090296735973742514423650526235905715543192692234671127261157957253571443047917293285961789938833957540026830301182688252042475350835527585225740120958544059472165037704661613131703201406465589973469450907379940499934747056038274127040402667564517764892907600092458425004135201062272200808003561430103320651893120097953427244421230900627689310532619951422182308808708595255868182990717987961876442508782681475155814020667288657441113006196007580574169938352331918121250988491289279305698110521053710852517022621431920599139193424494934949787192455948032216381412486119694367093012653914220170333099831990081386190387258186860240423135337668793992755772158348882034142665782965508290533717938217428295336690784438008423041845472558765744520523040337981302735689474310270547066596500437915011037755056120779164919467102583569492368122593804351861773623080200798048164873406658970528103500004521617853995759719439124426405677158970273788656408897181734260736849693051979388220029433467701024233460863920397083194125292898875464929994247344977993744742948720112375196622132286753826408937033564240569144280903794029727615826305216750038298856320896343046517979687910425848316631313807135900896620756237165010444968756825786379984841810868107610718707758859203907881628008564785047386558904570040945643903999589970486768216398192381944735441819211453936998141683043788871000044076801487349555277321170304947748948521973516990601290866835583295329371371312319551315174962251122886585232467542609675690533025624739066550572011696040383517647002290820482125498517393380694708874910202945131718524766282462103332707828164816374441061068391957872783829519289039715480974893249720480316282051932453508322578213664399364721148583025706627711449947558498532489465506224020358196293230863669391280026193190203736299477124558097982733136253386389173558737541126223546101539143437596898350730049311058071216910810233928845913320821576104034633292558794675059096790335231908736900222958635368121164777430328465841665515028473326362041484126724912208539533326877632053091943441092238543882241348353764660837034374006306437829396875321157504459446388526169996535561049137084952493775318674537135851008576214399177198299566145788201358645095279345936996268874738175279429567423436896347786379775093676180341350130561737737338279868295639032970880855517990088196006461203448330341537400998689517562738266848925863315332189742913691888133376494631209108124419615239881367835141362118824532850291763713656353998252630366774610232562544673044267375941748240327218354592750167109210120561912780035676214713067169032589617983670599969406724186106865073715071408079305348332356142318646428408578455573823721147637183094950778393888368149966659092783806710875533833482340036941273541721858090804095693553871381042836865429731017031875489934354337933984441425407975714917073343468836486313150253606325339821745803327471249869373552380436113921700151213114418369006285072680872723335797532990995085174716032888941195530152008504175757895975904223783229033186489248469364871700168452539976443741336642217138127400174413742489051982597499521340876635134129706329597895805136361116134168664855425083082432931578256284703358250102125984309602388744974804392739025492627438999212058849666315390520538885333157827016247956960943350687917626931688723346070675023570666685309290743136281647415448397724616137697043478807384481486508939918389388253574609238486091451839852099626767080602913925712515195399675175234142682739446677472953888532234136160119854731301227522398934308681606216824990073391831400381516306719846814034885903487904827578791188767322602699189904050983786107792671935306070994310324037953543270264790929931214165677889929922482399912897476221828686674640480158916755875711376142060836449567314030582482796146304177823152230994929635173393895693717629380297106123983812662571869724572699127361934623779269798116468013842237153005815328089758164005240580293028847249621454725765153142498501941154152580628628950784418354448361386100657452787764146526603881633166492839942090600940345731033274895297235701050557121016628569427719142746625236096688061046285521649465541092697418470404477542088302859378905931641622783675235086252850636621885206483146314892288203870087421326181471447094380840500670258393285106195554418625389495208981435244115905319968275853315548927632568473721335341186924877804517920390229332468959926178941287343094650163507924606668590070331051942317276309456475968981529213865895928314726539733378499713504966570658945659358813961156968929217709038561058941442049051179428246810455347225836986693690913606277755482292608192784873100484711821722762563840826178187411210399615123721547956365086373203512256413799918497533817118491580257837383711133363158698638370068987539538173524132413369271554648257209201488403334544468911468262294601160855976904915596017050686184292486705922196132630211051440769672533443778110642722589418423369802878599109346822495302136175429550630311538086480491047478477206800235411541329275973100809077122088965864245515477215013373311304284704354824202802976020832896633967738487816947799966213360876190391032351242624076812837646012411122417221157628108198333209469295252867745966373874949616164863041969395822509665631469561298223928149752554170388070626818675520995558137915959795486398707551293304162240602467115726305892342325842723003376366146690347784722922170170200382680759110438200079583764749374476752326714184662166997433751439261463694502486614954980948404157572065504138462496436287424311490148112395174342322359832923038279816877984270716153583869018101262473233282801751413792648472765814090768200025488561677361497114916436390225287554632686764942388965990245784858353732639493517356394290060874713997879724882885800733643511092729704473533610682609371847261820047871740368663176138032285303375594122856292494008759951981596771570103903540545763596651619684938456487505426322549730433253395482429683307657070454771286215552729265624544264653686240064589811488655292023736476538790174223763229575405339960091000694668089558324206965690330584018533773876756137401326218181497488586290835151730711462704809597550522203371911704823191989735421706438093757404439965690100394652852766337831335706199810043137953139350968011008753831060307828983344193133283125672830536846297692892893969017954830724377601695187366383199725182073950325159509874023197045356085410239146238396354115568917553510153003618935455070747731641676411811870970751447284874979844800518309160781097627243132585830850728212688851442562384372939636254392865279568011600873534773139733924609568850257649517626978306109822675894125205172413786429030959284389095415606794495947746259730525335949699827840038833865840294044139394082899659526900227438664312359754130835036687933788351515151800032829670797404048605157182180340722466391521965198169510143884292872086366129842273057458846806828369246690580642520659646937524740254974346307023523588113431345547838389855245045883806421065697270109042666807316789813305854209644728268129860737664125609074975880824472116041889920996755578221475856790635858183806630083239893553367001049208478771138261247681534139177114191055081698619125751792225329784353141565833904083897214601344087237700053833339856284942538538809646766799504136793214720104953994950935613295486459232847011780958293619174586792118695017505733558280530182907785903473579370834360200398082614458844086533247052422932753129260650250567447083421034640314030011923115921947017587907279414438451950804662954696760163270977809924220756375852592955841393620555165181382464883177733834530690668842442693450029419245770658699096747206416028904756330371542158926298684187427259701909253765257892283370819490519362255619852429661737059103795475063433270667735425808205528113949578827013549970279786244986917674395455039273808837153270099197708501824669992777004503525590284314687113549570076803008664521428697241552012579785587905468323919851049246715655472932740376295389824605237590941488624750855699135845893291020409592226602839100063662751890166623534334277523929874452212334945830674150981070635861164396336643632439080347848841516035647009101101485578370804212666474214296241263721865846918705259479678562997514321899982597805280439419108078722026875800542800168039773835478134932585197036330820297210662533008361665576700679957927964280898239349323437543354175067070756829653923613973122001710237941832170410711519168268031471378144990400406255951409860724650815850564352545372070850228314574208304291324130187578778838466895812319348514745485194357349048203923533088221771825763799394135134529818711739479302554418688989819286396550982214976782491685055509016591161690031852960068267073580785867753126040516225499894281462022269159670590425188573125304706670815786064090147827546982625139803178315942901636259602921887919679145471095297143451678140989436219992441569706825750034506152208127840173289920611332473430975227195859598388821689654861799614885809454374683546564823849723823225824513877113944475494955235673442095350359604082765957232376743086991747707138791427755663477022256753567688102681588808281667737065447151211503063889291724763219356518764184832620608912444996560888137411113417295461650250465353418081286725673855579824087650918783463046125684033335953994200842723895241942171498652199880151961209239707875552303113981495192854799532463585202839975672833506621360678095117825115623468006455509006831922850023642240707108456736571234048796526192828051804307198592631652609573396221596638784589556338838985336357618686562567175417153402203243341923074431472894757015252340684824759808323379386333888120314465498859088028746374362746019990553826825538396914166732715136468308459673863253702595875339647097988934434031796275681772456280126892371088144507002181177550135471830445333829987050076931929915143302244025076425746872380373629514757492484569676989258428217705042960036985801741732905438927405121915153246618878260727906118732480783762762317755904144754222947174699738890827870770859013783953515887137349079876416568020760354693810319992343913905156609808974011732583321173278875612401866597808185719499982536624572811019985407032693907363490904880221690736675397236368183491310097699523559898393002452450699478397545457679918340413324365769507894215919992768187392191668782777931652140878230039580671667211053968033163550624974192157646374887109159914324497211195981756197020475855919465638490804360646117062706204517137407207070865668540805279684084395608537093636669816894136332294115729639469133125297141416464242212331233804380396456066119520809839682043087551056770856492577287520395696052225459153125566430050784153348646135429001696885454230878128228832562873271228349258767829818744725865493410326449608698041903582206628619069055742543512937974914826649087704310679990131235590511150897879254249575243119346041015749598227502942357993580292682694052332594498641952500722841869116188993656345285890773147717517410693020898132034456806633544574024587789264411044708140652764458079411348568287499609704589583400859835896228618097533190159077216235329034237687019285130450797023288788533887312683544506673327943297065805377414940358447684255880669041943995045361659974721484770155340148201105439531689229501565251791388588266501810157122158248989341781911586256596434147662505751894035363654598284407834469222248773057852520608632569867502181140457967590469409472520684435350170782492309024792880832590187703946704701938704532976592603777811243781543318662032861118828287981813351112076533111993454334956082831358622546596231741246158966727435475690328461731979195164147554267436701433486000418627334221076279146720694453500768179974306871082504988722435086922992094117649314356641371569336881239996707854024560953431492941810491029422052465943573092304428149607884313076055498426032406737852189905692224432428744137276144336199602253452087710938679288660712802369876562808434949777849375783382682030261035625985003451472760856284547110421158199734431155447459857814271296867676525717728501891619014480320884429928598672460469797786610005959851489785484377311951511570483687670358209422885694768053175588592804396459599016437635416325738116077471041713292067963561065102747021418866727652962390808183447147288464933086161952976488115505033749823336634089209001307762397589279705067642639214729576176614078126061007348693807154765637536375205471913517861312281303738953245878331338455870323640405137139374131614307604242536489945250217832254079130908355160405034995246617143476387848919618829021420877754191247363964658040982330373112045819432354154521297093348768518659980111039330378040739772570346830224126126344077875296208181017660944725430355549283179408575209347465036633954688806191523411029628686008073741818109084916091776859606509854479399704287533994091190873774611622488226917146539228498453028614899108099177353685800835417815273331632128845868437584624164508009678376029210962342118999156047575603913230423024311995928629168463052670308962842752923155922282210312522200481157375937562068514414949065420618531333018144673259161055223647473288400206903423872130910028895027564545781337062752538077616108815003933882784148720383249207595972241297012716200308913997138529419775567088333824979967280551351775138748667025965512607743355023618034318180832284631625550631484807576977289875612354656626755891277728329807042377430225114146091774367382889099479490236887608610925677756167480542568720612412848145765083244689406366476005279492977930175679484690274119959462842744259890893443899154114778940114076562857294933802365489064146677520152132862253511654412881732614990288235908507013897493540835978813577340244439746690650431287345921658489370062090478669565819143986392446721729431589377279771243464258479653389267379329071646556902326580073021887218278554832601330663184274747134979374515097769358370608000017846070421940007316833870475911287778261903504887136162555699506942980048261460927146984716515800516785284363498462985286800503833399414578708896988213451860723265711565875803660376532670352324160985053505636866104826286031268768274833128028574199912910341832167222987595157942852851619955959108286132849105325768712623070920997623158762328249483848259212361226344572854030152993531669336731634676586674299228316008952158042982696867391638813180963613753934186654748128902746048139730375486609542449812794937579570927550376581796344058152225926479891199586002574149542961793187549781400141015750233169428091650219336471558181883253862101803947353293011843989739797608276943410856740571689253988563860916600533285756395537624496567747741107315258100175567903459146338125152899258734588961136968992123124736313732901994606907868162236598892707186384812725775276731715618155757879525638477331412266860183668149961220873813177953216929281375172429862331078953334116068306064739308162091372036842271403691304117784658540495089215129392337278962419420782581139639674587480799992167618566741213800228958113133859558727426320724555456351975028968015252819539759730960877870460431194397301865343755537891447053339800983000980826637483303526376923445533172757746027899698166411220507023115198004094921905157538004606266405097395392875804465712272208403519065752062071276597302888737769081179652587746380229601692506068425301614454006838301465159854278979939805704302346763880217420017881152851028784337996443595329669319490229495143376876793764490365872572772473908008745427694504113149742943476272227688928808219783190298533504186575159517670838959615836151924929148335537415113173847551869789902840321332702142452904839316709052438964445225193909924838453232271888135501172233892999182844296566032291301960846903706711017996921572507022652038809034012286093771061533124304377756375809997615194761058383183901297868813133616711409131306257760315752688423707160047117128569776201164794404943951855480621102996918436163761120628158603598400883771046703968863777012760666585885885081087268167954895323078184968244659918685018184275991962704730059820149233726025069976083567026573815349663153525134829491165640167388094527538668926965774015315154017801209309966093935130720690483817927503176075867932094245982775469494598080035777212740125195123683752130864264373185451945017018941260956402841577478422034861904225867106298930836916180359732836081056178485451555974305406865283673642362185337520722874307651723528891693898154399231169544242397140779303868368335034872617623548261282375306952074901287728880915785993229924345903085231789309597959840302299093896168347207308580510647134530707882492545591404193359752221332563082390728080086956972659892341609092454913270870409305278245801582203519077308711634990722669954188044957745182917275869344750457331683556949487857230021563640880511284434879207619678928367290559839410674989166716940384033461782953611121815260929363594195025687688354357349904177119148006730404553784095306671284429205998010994428232753078874129842023998635218389504612787365561143517101140724345544069218973594909056123822492495554378646069820175574908183560156813016382296070286643061515463551365440960265070806968440724123112734815274470186735989356047660219043456165572556145652111005318012249977750936941867884288627224495694928452956506351064235439368768514211049721113192147363323734564696279590916134199026877492731872922648070139565959984216060976540796327169926881372890254818508592325893678993011872770406561151989519105589334164453539985045661691721239012230454161660990456144725881672357979617533755142476083313101745772480903492027660279225954149244807807119594810925119780022956719286905406610824215761062212647038740537683187534297890416656505077196788768088875739310513398426889169519212947084550840567768084715288886603071985731987680968875398411422556322043475632317257881212217577161241188623917725836540113404280464781399457401058512504613254330226720346269253707790333430353369063397111772611995159147861734583758347800414788303010596447834975933294341149258915365211872605347044705954805541674963099350678746308394455659655102855240768364810254609539329810493808522650486062537935725323663248659972698849718467883620892872236790037239501767926197211903449382958645905377040566646280763679142892896796902146195849936314853018140187048357296582118677407867962759812710134213489146770877240861943234501317702603001549473108140127330258066227179649101863218970979339673173090360418654044101933728149805191065801233375709017631053024652864309306851752750184568247085992403546831830578892898375279025820705504706737168634011961668928274832120108672040803978820963746201330008608675710655797289591952490790760080174309522909772460124329445436300470507653536461020897348000967201095630293656226707468849405853773285312582409561482779010998244399880954250447544246836327959098786759208150820167782745560654697993576115073494629342219112173233144150594304568172486027303616015583597327951175002233609726032325356467965973496020775595249582876163067777088610845379970589841997551237072120210043151728332406341695085610048894916222527180758590668121421463149779117332018168683516213475449050988681390565715797430708637059318378091456364320182819468082908023666447442361246501863692755159579903912857350580799510573206870318760259791283921740879896102157576650202374229028463116519322509433239203566017019934653693539269219487481105379987698712929594878440784831845138507445926163291112933800291390081169139487748338569298748950430810662347915132368334826184055078945856165531257528953287107128693885115734090231834745598926238417445697290048229989133800354628693110145963367578353209173575171291277203330932370354006685200814225522087043082507865940355528839168136650378844200460992265226036539179592575755492438857984086720622936378962899477667122661373437661821781613090640046143684404484358463721953762065779495963240479107848828442740796724891313513868914224149984376779801646808808441584728506805501009199892677614903420986212620505210727702430406639414559429940779444540531453254096115554901892216864753884983706753265892098069310392269182820146835310412066669154825121676342826873386738909069864873724516157740909535644578530893901938907177016233221730557687097849122347050400658737308737853050546238261615959161592935666714016830505698562622867678159900636259615114900305435345654118760212118904991278087979237636418353421994584329225802664464401817178855001911812911865407282611515756738863497692774119163485677447047729751391779832574347306682301038597917847561770102770831956884314918513255081986744699750081036308735902441590852551650955200465172322729159815010568780094934828984778251570590656402200929427301238913069956913887736006038216504609455714572992805961594590165549831771579084423281659030337732403881677001216163537940491864013098200769393026672191632577180971390707540360183429953608485377278673823887893052650668336411970203512631705593448392713213277943542230681761080272974413356285742258794843864350833007384147571818193247623567880337377008437490024489197133603729080608300915986492613446080199352148602016505028926280576457439134012024012965847810729836643129832369464059350153739506672399781777672528048048663514427297172313697047008727410314000201063360347712534861817637345261517177027327571849246439659113723993571281525580101098215133853231048377629663161579628224695529767174593736463289239631769429262776736545567359090428884100538187537144191678943106755630619188631000520748765206326925005959744529157043220132916538607458804161734226792021819477762871191590319518826889549498476888413599312619718633281906760891390227925008901622800527401422402713813617168850225200256344405863623347749912570108632471829702322253280193535694187785756623909430353763933617348614195852973487590271233836371065483973049743485383623085121922205822627057279119061063499310002025141418928070160089391034042259727947718421072448101351743358168953508389172279073808653467531900075463140592350468590567837137730517167478414360450434632880663425716099708122192902385839396248924425121712094533242872520445500627108495413455802359736572548825787092506612499556505042881526113451246348387723765854254290576360665199519219763248861392452647260752732872121346401917089531228856265452869346836574708155880835387919829517355893293422249915326887066094497253823435801861587910162576515723726847765504529244950415042093247403129615188666879269608839093270228285288067619085947817984362085098475194088314557428748002702308013552135595602439265129351815928993774967315600451918399527188977250377165695631662488648792315506837729310338349586370973746328235284819776675869209965406524804350040154437386835788401467812877925188686198156994274304937674538043373914498017916382428427201486103361294596145937546974035132747527120372818930382697002495244477171402510089955398026073405682779777038941786247344498147902380018404213558527165714609706136932840512834006114410910001576637021737299539913770642228690893579398476882057726656339361651089185155100081547089742284187504865452169626644510727221475343849426925354099835625089349230657206600563719504809483615379475800313220621523586210940132094590215609166130311184181087813213360876581473307630144254720600249793137391581091562983977878447167054741919044459167194000080027330566910699114694501957026749135480109908893447739059614404191406284654140840569754508812057776480614389331717668829436368195331241981152831326467507233348572507391679310079468218992123657094841278951778356540213212601988172640195574177394661942191768169898608014667865634414422819002595033305918287156884479982019979139319048662252022637215870211529479660184556350577719242410563230449999682821774785089498822837749380915955095280276833105155419420147202321650385723693293594157573474338944754797392031958613012821904076682329636412412214439866515945360716753205207002924084261840389625880295927789108067911848887917101768683030473915405991785388031951371372966901334512072582102777305284670229148797477692919653776297499347682994176783924678685593855376870519113153468399278426600292959541815672294218109832173946713085985381287871122551882535301572692336786119295154295423236621878611789025397134069531857841374160030526850692973933946564612398425006349949627685298092627827534225035059850894573035564789165901788217795081246309773933631794731626806831149899680386236147183701189808744354958051105976466868259064444870070073403490179478233249152966146964462309982321929541529335263769388838422312375896329164233786008511026612441476107083524285632940558603718266487037343422740515957042113078689028616398977715673632907899474875516169433486408260491323903346090443609443789948049660775107783170901571875980642637358697036113905733025348911673170591989339888857552582583369230698488675701474098611639000383750044763091607860376656182896594963911911992618860751776023720396321425027560534538005276244406990576372841533025552493621373522895383015157531027492807187497854936615455419311528368260514907310955621536327623797613507653577669243383039167116086255144804652987372116801160039176062402618562170310650409686176338870405945215384491558020600318870941738461906942102280250635879912881886842703067501604498618469583636652976521910796151951148251025857713851508786712926437382736966233411575079310966896468482777029079253757310183564288486850384171634896450062064552707993357293338395599670091461498577427422244752866024763786751919995144595771981370561606812923900329078945925771030326996195560874414109271500028861761927693455348613998376035016305098611409137405611160827622252235829573886075282434025246137683724933779525410821708362917125328650643366395877607965802131043309465302796862154683399184917227038384311896193656762227563485400702651273125295875811825758174895373718091015228425442926300029469974981491641771447176275701218871686220379960150775635142874367075763983332917363188419751391538676911293457601382654857786968327148889212382739931874344545030608837894207868170186942808016158332001102139469147607433091409833694796742020305220317903938720082252602327992695379220408200381205900626476909511001684612620461613911545525619169247038350826207254435011959862877660789792912426624094783891610176586776623246915794827991480832686479083709488232053395326984386779535671366130488565956837869024932383799258284966872105471055898894922869611632847571023435079808979389560135616243813796851622288234753860793755334839479400005999924106100430058658809019255838723185926603983823192829351402115202061922496714054597698013840968128001478547419060429286741243788827438528124324330042688378395544325752818495680224179860342863652955493079752266216127501238840471597607949606974682817092396805085300124417974444733164586292324809733121594885159812894780717891939416177488173257506549645382034229597924917413555170208151922629123843526843252931814630813691673608681944722632444734260556356396607732492269481728005013636935828635116050035342006297147547471394220205071922464161924362592976993183756251640333383529197526918152235348462933639630564433984645644705329844823820379410898234101236177335119638037399829259651951340724631909549201029405533670147943167923657175652184352834752902457285506409666505933013340449122805758251248903762625243012621303585758404360115032837023752724167023845097698626693702831842037139532338758432915158054337784243320339433090765215015587517938062271151605895169763345139270450168261982241102966989585301302262128521518668082389702959403098615627131403969421799358476302460696831908311491122203817997494873382647709517329249689622828039272590845119723875360832676798928040371534398211724033813789411719913946786490049509241870886525663824895463642921224988345262006645745264087402640811400513251434703211898096958151096582155278113346721813541439970255096632407921360450819740555401307137167072954992770253692127123878412710482046822854723962019961995519652665367630328282847344542343894953629207549288551205958633244206097223059809789808869164157635173065014768883559804587422929302246693447934389409023815466871442525294512954404693698289694597865968989239234396502335068923621706871690659789240480829773541033897027253309758947654611090708510837704003481401635085985038180747510654465010534815493711651237319696135971397475260352866682206264330571587337966791213505242727782940930744827207127600270210765381552792494878858668386984687492576614523703929513857461621152240132877709394408008151730764266787736088815996672539017410614458186309857849983747473962276382833086203043986263762641385003362267663695958182305552084817363860634830727960116554075662785738323772461819149456420669171656446772002208657555672506696104465313900071774868367257195539791832327972815013224501488233505464435525437027332504749711929844447000353427833188538562452738936870147802432700742336934630084283666991281696574772641179250502906927949033503736763697334554707136277925213453270140344191262106232427263372853555402919687057106983496996550515903891608223705731680682159484196950495465619180628801727947938319809497785772181166105507910185771444749703760342860936759895292366174587529365149051151894778559595509611929578007439667308550107199010906065921722284364564496489930784630782938654431628385964011493930613760212901330005144652214024433107340775403571797902141513639980290095579725638203104566874639189349162663187006353685627159157985577811635170318486100425507609896952705039278753872220550604897404595655460807745511542690962238303106322340407447464606587346072771374234864944896278190173026874217272343626968673235776026140614813197269818612115888120267135058006439380044056731092091782838195409941080304394143988851640571550432463235954777842262526792504900199072405509354381736944233836666029187828259197977628978985813218187279750939230456203327775618031827198152561021536675855046026050365263301099461421605370874470672485298944165134352844518912055917584321933475648420129511375880612628284141793372352311975776075246443445331822837627664695941719700989791616288468669179279711077334386435224677570025209702011256034907071461539886896998428109916050844980691317248403321404739764875765864356087117018876748067962062167771641342816467151718752418677838535599392969619614166282013766960498832333148336495304430701187638268051934945195662095275866505182009770490539480395389092837026579178577719701830849134898534787738207797619349705759919385150307801576804055592265090711885701775731485589896601645028262767060097347123567177823476362855812132659838506859353709672124699365425082387551940535757812775303034874430472712202518912541537520691622709828666375431255594126987408240753688779848800797825665614950983252613489134829556040296674484731573127916463831629241825274862322534227770416667319937786824536290953006691300064382307397000357413328980118537433544610396005965453352650492108555638092983285594775717503997598308593741767414096872082980151578488741314571693666521089016022347774272507755150900230129000854296785908410538731320262508537810485407911340453683117390408574392679198049591593358047613212109607146478173535461525650000015864648197020449926439736031761016436202585718025731369490688451143264951933706117362148941387871563314261090471672167736623090386742703112542882849106244939644004965642410037671901971199130869034682595792157068497245759819203165596850414503550527039688620754884127095899649448494663171844846975474059203544431553165332130676259926538637582106491225107160054433886879824131341126596718722691922341540777994089148051089352697869811985266488679782104350318993019595165187583180708615337033973101225142398974084663661332734769176480131569050252335980398043757832843006758275570118414688340637982249283391692874671216482393949811404543563737978421919375456122448108600122634364124062582714688387342801671297038965483530425816268460464603704912402411615687909624903443027601739782290746752455003157830777331953925214399996425839169357926118337033675817945477771651161941118448977406512435781310020265541169630572864019340100840655481195842750107914790136111281468976890221129847554018329676404474903502989301042854769435044202365523966456059438508035716624959434945496716973004284008430455844743298703588271191362884792035068462545637568235981893015138240958205968715169057469021522665493038492189559438057213532003844819228294819302263335345613194239955184361244983255199222156367778378454125412793708183781052134365330266719652046375932248787785959398756461562633820885393254106248817194228202191664437438455290844153121099680350941787976526994002022201334989912571081739219556348828625746890138090309260146239665759567916096253844521965612842542618307402520693694414780074627414315063626788826919733534837443839128183600800491212668758932105367793035672167694560842482613485066178770109058872568686364564728491075382629951649119033944522822348560665114905626036741073927106837333380463325047103067779097132802913239763487924461913946965148332551954302829728314692976416697704887810611589266715262025580489192771623152795339592185841920129750115246983117608455908080636866091610055665232517971691104435248765839366675067987962976969557104342505894084485797212583658946796803455594184293000579843272524623223058111928006503373381886079603022197811236931770298727471277570496841597983922110469418486306396709443716369697233011922607111431012873938555604742617216169798653586618073667182913541664667589310654543543517805120414230854882401051719551528975360268870422211957675045478123866524184499560588945883608457293069086538162348418997158165921254517856372389219907915488265473653232576881161697466998007238363607878285413882890440443985099030562776576268367216701591187594258961775564878409903831411873929303561506997338907260894387544836304558846308830054078013938624076016821677350811728459807027993888547638927915955228379252426081046878330483512429836907865914558947562280226349760173191948192673117217260093707248897506225949349217835781327750027372250352047103083063231474598240260332704124877770093224215211446844495716673439133078043439028232803381531556208908365431671333864930767693439873858538495703682484922300798049159888657335435006576023589814162892644991740332229501518229107689522197791421396810317283038851163950411618466988631876076827604605216141072196033768818011710614052728153938609052303690439518259209440698005659658964397833962034383151962661923953617399091669897036983562073563614567439856606913500438301187800912673014156446999096605509161302711672457847667759175607967497633883976222423963334486966232091381725195092779656442297625811262742376289123921261898128780544887136882706366893500151662919437935391536019463429640422577776411404891577767168920342079561500443076553717333979074452021798989301776355230082815300260529796437687769800902212872414429562150424427485617713141405230539594541061683774988980405659313590931934658297727863369853570906700787461591130524898665437782858552339983637662984515250483508284442951267414506745650356614404630641163127760872078263848079012140162678443187363531557729211781211310808276225389445093554202953528515112742466654423317849630619926076105672060341882273592590483692650000871053440344034801691175916612224065495688780446720342834796678345354229497900407313614172235394683939847046659237383822442966032615740032033704750419489731319197384311507287489249032915476258859720772419580434959159593051562686651914493572596080097068184190908830614183489440022117840894475843858305698058304832184030505614777673536926324129145849512475300873526926936359851820811041369679082622409748812200067911297455189594193196401187635941549654729986002016999218094421536417331914082559349943812127030594966823975305514897981048930935111895844499537564973830062905436551813797500153608312702591835559207301730815733527722918829196474092281634372656359243472059130016289819002219728018707374498933439021972703502307802334952064836864799697116041574305823887606518296262457848532483044125984232509437055019876102764396267920751504118859320577160352607159430055292380431894647287333157885647421869721908136026691572690459153835188626492304209797628713964355888239068818093275851811089679176420314333272746812449274716506252795400676221540252508696336918021243186639054341775267298060537802774236349151664465763719999767739221743739793453777380078033842357295568989958100733632231270373951923446950443597998983844457572339392470749636731599752663977474752065001760781882760123157906306306528658448242955083267583704757218614568292344531298523074113425411463956732145299566238841254678134029740531785356376436530704561595562624001205276989404286085161162031810652731132749931899201403740164064946898248096775332124631635235928388633628100268289462836700350445540879901312818850522804305984958058960454312210279369147742277393857464926750853891452277792668228052646900589622581639113659105990450265237704330324722706526329533492609638960257449985675591349650169063894297293129326166360429280261470850238456757645634423558132143195745659836524901758993483946743130738791939008340672642460207922847050041856685159944652113201045025017283560929407233102552513543984324964377332460340623365547082756965356220237740696779789666411795077972288345763793299886212935606368049235976574469892972187680591605091152516581077640754616941198348599726809940822079377917208667440334532836371625186039023450003762837503458592869918004851102146005128122333536014829369327875322850351043190878924059565569112576130862384248892416821304675790596029425878426225225433413894068734882925850824019334280903298254834103621268626778166662724703029409175135289500643129463519005291347111085497256117756215527698899027358977059960441658761372109877511374335550489831580994419450234591814294609814404628178753423116054805011212809719309748884253037273996330333247568663494853799937943859943249841814898242458332417506661137125565247942438078282049781342747737048916552339089017399398443511986235078332662681412464160960889743429507670943427669395855453830692066792213683924590938869356924113703079546981726661902062356044218169714298724938622707395071680824289664345021527745981814023467651650666132913339655778685244813876246612611904167230164611346098690609336380625143159524733637846318138011426996378013522867092886073047937371130963155434833395864487067930931762852422697270860460144928574203734847774766655431934293875010472512285211498872821988266839101997942705611774081489926499645123293469735765167463547561596752134002754357314162751042447541442415426223406316907305393289944950564783377566714505715705113817729946728585610210823133874887065441915279755413090445088339344171679687493090737167546035417617278118873443413161036092732169940373299118750568586829676806636395111930970874169326040773167448258989794066353057563364252774092535590568930807886542954119315418996674576107282463894300093127903102993122974427031861658531716315549597352560539848320936509675911129817349771366940149545268121011718701911083421555474563427424616578589892326038302524310174888219987228243468638809319510096884539832590272805657179907293316512623845344193749156904520177458321698488911140219942407308996994999002313742682704771165792674182655275188092980632261998756953976756834974242594286975434095642716341564328421313789320754897776869718065347627414797002498293948833981573352172523916526683042542248948387854116088481848918865125024631218564287137205114281938641690424998259743867878140765901718690842283149789197520578379410957302394154613744343594194080436544517180882360763549106805214114019516965883988785260693056031878406328122603667871492296968800238098612372502609220274308868842982254939781828048317205001627175179721784286194942937525270025425078608083412396532998116688367135188142248065901052026197236440561447358336230658171451010521834867912795623416237102014568864163202128507793346588219671079163525495844620773225185166944143877379661596500021569608463202151066355732414580482961932346999847823943487553832718333021852326495825376644746568880166591311960933635040872351394494582610115973028266606062410489394568439706201477035214107780570251265541179567134527559002636143034285615955782905954489896789247349222175802516439500957143219094078074730103730116490057260703041403181795409216720422149599205576686062683530228920002437506884269070649217259657854682107062034017985932320481204179856525670538506105603656561656538916663092817920571658860654533549066700336639782563103465896126584995028074969335625176840110432500522262924838988376797708150074826215024009133426567129362322352948322795164914740530625252878895825138646528807513947281831386717719789070127884331198688563245040372589904126397785700274501346069982986908012081783981861583269021508486290195370549618015764074115163733048701404125827755528295470876413976736786215075705318587823975039371189748676149904193996237869270601784674337035011402399689137889161028679054409306437599384926832009451289684182473677124209469684666661385546079863180308880144610546452558174857370737223774661527194084421531709588437940155632220241063343725580579464920308175277729175759888597276341963435715827953843360153583415206778505717081257281968178719865817386431045893712839738035737731481840828235009727482963867370158147486252775164695168880606206903745292505604010460071510779305178275288546934157759538068618305281602041075636150085534136974642432113882556223524005275067343659951293733226460076268106677786326429286513466339122308044178624258427330191191349779565927335799414008397045958480562785903719680733726119016146905398241647810708603394792251430366360163063997018800106971463790375655114332863579495288659243427372988808662604334445705119548541524233646123374182058565808266812249082064434200834967621522167829226884401000789447544470873474709774348177499905749452467745563929896103352383741920261431417925469951719068602936605779727608488432554623222726130169385646096408370003980562183003297672801229436648384850626313056472782929425328928273469095282784718326109866545338807035922625896484607861608901075149929756603659007887383267026188015455363942031190965810390124232543796372820549559295025742311781424864540681925042373664312162491885416608598671813966598759666006630642312089274239388142457139222484251591137431181191863260928333480700928056881409107071801904406956762339478733969006758809720730931330949992201265939011123318090435400678724282792400441586074901047680066320186449045603247785734827103258718273474151067017309917882126004129328805706886414550252904167660120026100136950973444172538823877709628139850350013736868251960662682532195028999871187270212419506877306887549630166226051961519901115000230845534325452287927771120935736947554914942432018856797784334469140899691488820152444274906262573541394948748667029218584941191226203311412998971469057066481344319165301102664788226580346295469395343330030695911457178175778805114115257058089535740877646949826846197778616343406820113898738925403980896712838515280327762549501217336998402874704176029274109325928721581285634073844826306425052625894707326957322282472015195925107092272629053381506585291154200916806023302494972224568923116753746824601678340598441536105346965926606862536055330782624705900908822997872968360556395973323669696698966912130208144788964192576827544033358583750477399474686600779320053916829535975466458947879967805705673304323773736142668381060302223138541852317830875211915824851718358642639267822932588308249845296222658922199268941974556459639966807947903368004130393817494123410799687639258794788665879952028508518648992973596772831750108703268532435769824452919041613101912521957983625978205731358433049353817005505660010308146231293231794303433055326393061368206296590580765257440102542232584007033390317962399537624280392956353646100112701725519088526583724481679616201292585266817488096412152404288236972637183849828132202153048884889388563576967571254622197362847395872851984573338186422965670388269543985737169144637000051921836939491189081945481192537883338908704390123250332668643216448811220790689695384200096420889668782579545102336828628534985163821494235814128432411561469332275353292981126948435416599859465289152836188685181168868822113140541020831481153381564343987742588128784403552820730210941936748683716380315612540810553055229365301734555568756464976780796539907736461765614670374750777218847943577618192213557105297755571405431297302187892727661313250896869505944380405584961038639059575121939078051229004459663139504914402356533378504588756866683022907331622438419258025546736120110529301271865214843680947553894524478064955973917736526318560668630021733912335491193106842481263843543352330222281254303679092334841099510437804729809634192670534418609696804544692663017675685882625574415059086884941985271089353859593637647765358196743112550681638646393768108528219791398393294014009942514640049936513664894192379431489481520771056143375495209049342306651576138016784351033598725492629576408827316576649953987609606308215411789208283707617912801296032696905001416813849428423386320780184716383792948026546820474407315760877307930486732718929273297622039655886690981433405523457492016102214208704324793669236025879018850038711923533509242799741833557173236487893263488096913383344548895033448759457596783559178847326308733070885045888980128843257276206103235967140162625469347929990082301271430718698445657897248380705668987579658402955323671390839370278167815074051842753202350862590863006496480595462190443650064673412564951077513934441864107471972947891008910920572544371816384559452717035626240120218149180062425640781582129552297979869391323072506383761822655470208315977765406665478247132144090178308538609488284269446467056726181935917849980019841518506630157203968818620827013096127735735931720276109736232224581983993858393286447362757450584415371234811754827505966869956963924381327768634524243040207914967442704381481055260517797454467659944624819435886569513771973774079855302894862797181322424564615550286761081498118733599877081308359827494888639806080357849047966389153108637332228198201008198153843321977346127172099754731652588783289149615528493350110373331200715437384345203008152271866475913204876948530412988141575340817343175372619659571877482577409802567794635723038341502992164545483638976509071920806030991740971128932027678894433180509650179468655004094719799382312465095066032923209267998500418150172973827128401300951250890191768821956536812489141981559335904084655281309383538005890775914647276245607673098739929861164675454346864537378928601741400920037636816689137168483077506948089160054753336728633308012586771005978319256582055975328871144751225452537393683314320011622139145174492062587961031933350476839178280673496518841407202190677277716686931336673863825865413706069113715309889301002932466499826806462580395028932390380230008718726809319785342032868715600624753937408606808607622292220097720782090863498596118208752485750020871410160708600641747268269594952560421159879442499580582860319237123587571216144698805727596986106195023921292844937596470348020106736890430628344503447693131472248520289253674148277146728645862910182189977087545546093601288529496828092644638645786083058770938095068927972593911700447055244651813221109444024987476307948670718053988485580781554433072390099941635392053176679088481080861872870393210299449439279983453667722758715870675039587500309025988681826249584678236948316653775667097763942784966586329888201858683939150915724998344879494662177623337489903146622722771524864438635647238681100594030796734346610857924361091682362565218121601102536300788435075574473357510606728062229462367293322907952086503134974950324192889480705176774990448542096117257514155100216423233288147460053483427565684881661005069975671120252401473030638737450353264468492385206730064712514266058141919246008199061135623998291570763265290773023605745136541591853761462810696788649836000731513728195439791654648201094674721788107557862660161707531489594943563038467158342502845938323097322295607028621426655610809429854008264296814811242475966042035538565320887666600952720232880852509946280759181888132986039273651786294638544163468142526825728793046255330931016191242721889389013662978653252880179288036114002976941080042744851890146536715759952021991790518226786914772100942384971407728929253369474463945832589742656904835401224959792496671391625048918067639721901416644272337764452347620081189787715745022473460227335098566905385593037245972324490469741636480603725261164714681426469244695971082380225632197919843646084154767333405892417822572774453804871622465264739622782094165691044005713628644059496633676002758382784019220328003305479199012999134668999932575827092948213060651722991437643108282250762892709518346322541713443903962085607938952112815240749295669871458633017632219557737411298492592742762496845739789410682210679344756477263167356257268637399013122125901191843814727142735126503659347454318108682052744466586293932946833228467413960284224453225497011946387360542207681759123106829388502737645022761519673032288391558049247816052798002921773925198698679728605128843039113799439441510894064680442832924211103922235532966996064572413139837498961653456465081148888213362539894989551390023506426718733922868047756624775194648207089986931860618244711349117425788477397815107964188698029245742922907876145069280216353106770665954352668107106932863111467716408317503143812041757553876018266480162664742862896128494071919657014786712326545558716362126650356971683839699960346490820062783390740738216565220205374600151524416805417289070751911722711745136651698376443717444880982072340688771980365288166960074824159465548714235641463174759016044062882766845351809031534403709561901294375886158830478575286529757753746415991059376985520609195399399826119125957582034285943359169179339415622786656249227825204155693842837808410099005379841627328178185062643283000621948292383278155091895317959034378938077623174323758013253969715073941895933151418659548754706713417727389641252928498755687975193351597705920469122644993779918964788044650343566702550662616716312562351134661485970247590935099587961787180949244834753447375068299836458039294371704605205428739034799688466264880213137955752892958930979069900496215609881610133037732932958286488695993499401390769558830914675324518640553527714447527060377399858671147393925422024382274518061474807203441794761757246278879015555699616568070166896826123053635169984442760217999935452471771309063803576314768798254073298929003138555124156737300036500138724665184313366037164813130408770446239791475029155167247984371998897003198710344214579986937351484613373569656695373027786124153990908536693181330462649383452169048070205499108587227814606673747342923151999078299829950764148857154476980041757050243534565815784657455494955409508132182697231331986941826261849349091294177984290744076190585339724710500506532822088422099355895056404045506247104178113678804336238012798030160494122624492513948787763601757769249849654666115882186220747779784781045248247132412240335113662660035228692241235438673162227284406739769137032954191422932251431932569521712918600201855047655238384728272350484111214470785280025950500947951020290163257594357195859701259081725160793709584765858596101435925752664277392553308698963504730832671440162689901033084144191333090656239582443600472251995302881329579924830961678831186080541937022370874968902518780998557771729379881737012457920153491351187238214449722667115005734512081945548999065707895369002712481332422283740132306293282803107003043794455303802785963516082177649327503752097200212037888859431964495000378242453950311046189525998605848816414984372702531793462134511063678870120805966273353752663064921452469969471249504718502337544154145447916465487822008739816693974944938380329155663725953790725658844926888292732261914609269922528260639125246160995203896701264338612806215107131992041333980264429237295912783577435728580187276889489278477804492073159366226474675172105062023755870669621533335506739643164361112848052500775929292253812367038803568872949802864035742908322519598440578429529607632713555692929348214567009097702743826268260683325663051347805191477200373468904568237017906698795586140902017823161096956627736380295985099477646422857856812841451419307926979971799732211315928131124717683622084390063915905478531099506822646930403777546287083362122370820837634396412155021756093556574621610989134927928944366471866057678778338470657136833180283560693043619527109184303700201240017538205474374402203483779242680792607067530015735259298468877681223578045674511864874970309702054155846167831500069372335328279981355108262565443584548742173187362755540259875308229168453020360087704354564803352896254146569217382794053567378322402374846714464505631202548839578890948801381474505723410325348206573676962655012204634611958167249761628251930208949102854812516965893545859346311013441803289809074309187261935146923218940016542395590030131474120678435066061852141736150031862758168765240229133839580205983812919410994243527979913937258215991528546265367496045708755565781899261164792886159998831469773315336565402289920763427282390813683319129670262984079374262074303364006237060716627400463557489387637930773736935766697227711761073981745596331964956779484471892551425902978853829115151437529603307737037055910069862913302279985241503363097981973123717869988877708694229561557425722959677816751034389527350106359275872544275768952973870087478935508827376122700372376980508756224244774897757527195056284688173276919824676607391294066519974696640044584108129024274887230553036168514132668667897832552156378332596110984174564437936327572246061765795419007096769453257197845226621086684896193245005525863481329780112182042801553636880725351724030503125632997363952455527866101166045168358855378096124821434235045330356172647477734823128264043683616685170676133765374409049727580769834727866134578262014644708817966670881454044897027084352461854151629601002048787226096407965606679467644867125843326179027725926005198045023417600320853259127402840082945155221961857683463531086854291428022500264624043249134579708450733300275471927851153943196031357701930839880745914546266647559596806951645442960218879983858812319718496288456646712886951100346264415019662889694317490175634460433815441180828598348961604781952605266481293269327632131060637381081075762447681071593800352348579480439757574859909973210145402526635673315683609380157950259419658143063202914961963473936878947847789355928608360180314448816073430196328865961071020383152244120575133275020478170948175155872848629291047781183143610575120661499131730630421879775915876362697124495889826546420164427647827849177908177341296195376975901935149261732344027309130848603157929766762281148995458510834616806324185374086544080983613718243862138925722513892639925918634243391740582939771450458651194949767181968635850935271209179866760706937270207906020917525568541815740154160623326262945072643171144834480104849541776374925241261602490588311489967398854696640640438429668930399425639909394310114472591010447634424935153433260828044543981004569556507642535996885058275023997421613598933839910425188464133013021625295052488665815959707651269156955176086398387428494828189272423830614203244025762379459610454727763492813308588219997765752530492490819473128537132821656147546952089988177660181965112092419266244104899206034929029635737176866604543093607401516255922694776604270624744494515847836189196503990994735226438460508086003726346153681793295201347071934391158273622516819776081600209891036113808990235961865630198887208933183221458684369750965468217845058543759916382769806539033708427774775811806405641785142228116013805528528279222306622346797207636349223740316037928286528173280034642110620910525178166703212524864635051961301918761157646035811046320064443993639505280377349924212916271011029607985635241984132093415642919948244566753961693175901722504101477790365450610428103138528637904284941178757212731322378182353293874730026133438202392545446977835397000790928507270824560731544957490957539553537786520930163822219048044855834139401134561327252714755474552723522675826702355737623959148563403643436207803498460844186003333146477500463683034588591423380525974186970065845733694525683096683289432632684885260594935332841237284204121910432836042299024583612601199371595109621594163593553807929498224548021140671037438431560115563787076880934237642936841647700764217985056451985531144056852984010315203899242786553157579140082968650907427194752715407172374415775402410551162072223854401745917603615622085315746123523688105537145629895086116288353442115352717959890353658706438541458605483929385231976457524240323385049485530121046814494189569074664989972063564635870409664534485481819786290326379818745815047929003047486117484061765662184354674090487665254721095244639245002766088025038412904489374084643171253292178185717839956774333147360735824566547496229625466559882781139209590117163447065885710179591853096031011819097897224771700713347876700202910715983552749170506161372556248721201566182464210501812181286018461461339034948477358294595882296596662788429416999279941617190957049499803763986063825182029789993031470408802521877659285485794822674155745898463677977772702963621071662192245534055206901947933694383080919354524619489694102176910500502776691459190525561365051844374101465593554015559637827755226392834892471905039581630489209062856021770663351347735958044315763362144428968823182314194398674622423401376755305462125776918399231467038690311455143804264574819038745780157578785277730805015688525296238110654842964433216688483632085530392978709376067072101784459684067257861361644413128936443344399668110073006737525753686926807914597550520412005949001518388125860471702143384243043288331119368948900695177769578617115970720180805723204589548839655057702929641363539084561229187351104631143567065285659168214150395157333692578463548583571197819932908155658387712598791754035583840783156410454045252724530013409103194347032482984656465323669044820771204054391139522107069956408140475908259892651482745150983538790627694966587834255927648855062190816620001235484571032225781046845980350490525835624931497937647559762574008133010796442624797783158327911710107514119794370354602766758316763421750032682857487244266254412809218945886816221745424376243343885337383800336117981863391294904886071376564454704586465504903044872525371274375479689434483306025456418868456799352061203159780288406858576613258003451698621679869404054454077151984293684056139573955655029398991801088704289140797087258391063373390403836881060348305672724821514018014295512308592266988690563977942475679011674696705871966652809004471002526775944344781229031929594004992834620185468836099437856803669720238371891494783872250656691352707060083378895697291595644321285924423674634306622280005103201690097323665507278650650092145920202622115312154003007842571426689468141952427637963164697385790090181739103942340636042782889239559122346278998181934807984892885135960699467424552518284385773846094948715811124648228335689572442456720933601712747991509208289147186770026921019719835544008325088045180555975590958976461329958535806188572974116336189855266215113074276248548673487865070909518299170372941078081751104435264650067368836753848501980320738652255929944277316004979519785815395947181789960859008564367535116631384000869850300433869570141237430517932791714536618695538643055462455881996254336446081935240176340202227738197900717931142545390357216594251112162605320946881736957251550898058790232160817730142804342040986795168732417022290668330827674641730327721276042703550115759346059443341885347228704949309551719847771320006246551762665766781196685793438084250085973965662118734563680400365965033000988845112102739356982210050701301177032920368441137006086971769375045874121390112136022822480945044725819983169358175290009171036912519442257999377939732644196236961669986941174303790500404365728810392322617442751240494971932137068185209726832053697975517387406720007359774547005231753537389599496899579858792098431161261521464613798368637531940243650591553140100648669746596305977401812506487319107393001937071577772062942394051333389618631923599566890607442788598091843247152972550289861970284999619556329606405539594628177647461647525435677321896474150848051453344793569937511940609133270033093520237892957349916286325624584690150965188330026732712195615664348792838510466924021159397686020292236471872367203359396039474499750791104033218751462764195480817291375982347116861351976805517202711376853355468128240629407177232752419953190314535315719125165436121308132237701493907935796869694745029392015478367014389108183288514472836542882882130285012402515803771330495142358830094408943557932987441418045433521357695054570100297154375142228001817854210566051735803187505685414063868386779675137817726850680849465200870256679226287364366116860208566377380873657221407285102374125254503547727685318120534063908007250656541278335014050525670149070163586086137086277093859157073743511786060543472614279803776516695316296360779133643176938686654451730277412135296929416820558061949561428988514690273657732288149370146259694262717004887392180687021364276952909578602728027190164808237443616281437573070823819874346096987551466120892786655602874625579502943667430968029017421731300540487515427470643969741021280645519345867960039680105492003676773963377951095509237199422779150029541261590581850095068080204500367039322387922597773107667051784631274244832780549451716667006075932495044209189430228186588460819504148493642383215198516083452252784158611674985563868038950836495386490666489406043001139546959920709756416943507768993890211702623827279416193497837103234549933121224609709203109030506793739628918002604894338160383327106430582593423586921026289123620695275428295214570552442662954428584120462264405350048216358534243408141280013706890598456494576517560502454418261899744654717386822366190445415757282050676282136184044829690060043375853355516145175639043387566653919885313294954671298460248194825211595091535076463924453360078102318507533628318916122503482312769581304633610642546487408545048602105605658638700791130080862083594384387984014892872125381555597244537193244200147412003596517869660815121985407055641367951596664807871237360320248276974734576542008330050180766370616836126391247445299415739049658979709762534123782760337044023224655049870533871827958479879854473715729150443811938545913798623863925418665833884780252832570568915071787179052137953870452514537630324614242748094749518370109193897862914803757653895042724537536499937961331092948252358485708091131108070380204246339828339299707411587051403453409831338249679329978219667212612598753552908443853241949301051842445129001386400208050270566110183633118887062014742458074586392524975077344106995197534916412745576788264968192587245971740318876428666398287228554800142193314828727605560634582663624189165532953000768543419037881832545630330631177353153810607985760589244587305801575473123111758599179760265178563988559440952219106924832984236312423908986703663960012052995096448235530530801812474971478400699568262881865890500567549141180583387855801650650647597232269882105138782072888437912156551403460170506803693975578331785380907513123040014372680753474452510579297106281654325166070653468982631241069385207913881653258761844103063870597984001124357096828025463941511437235922624658687315384918301485252183797410138887804901215903854391011985787732830176979865467826337730130911667819866809264986637434672132633948073200017178629396181672509107783094096282162692968152154526183601951600621197059060831733025496739332287566245460080337382181135758593827819503080629177163442423733588818970503722250482707110696717897635325136433636408847572570211005428651199957809332422594899940439748987695682930208967070909922281517417699466615846427195045685407718922781410084272825755787610142768945566127937220438975642782736939774352917732051162775719630478383179228364231753190340575880847544196403530865497253687709151445355941042980995905359691110322870495900158665514533141871015513071125524511551713472256233575335676865235052625424709418997283851171027444316191028488093746503899274166374222133210438215623219966196851689062386226906689906977047933046792511390419430019339572329886845336401376379408654869122461918921950949882003466712735261463166876330509872097902024716429324700545794843952310215715973790480703655776188612731153680886838595538000387739069154886449240639972869018512135633088679073922940904514214606547967476794352764285128997728626262422187435686597638246623173009558763483737527364226826447747696531585406788721715462927666788825582643247913581083986891811401270351659133232716511821237055940601258927633631147601559891401188855343594757571652734649902291570771084892186414144193163784514618678826149622011982838919725629324991513842494943122209988266427406379154370736705719568876826116223240324666093398996298294814081063788019475224992550748004508637495006572846640060319681341128022233710211371638229905963382516956772190634134930252517943548845370846751761599378993703695251435116121387518054142768116604247416496403081004751253441754672491649860099285099144631741799776541361685258312336928844535822629564104645536626806950418199518896764873653057192003161837208363521128304577258359661073425220961019862258505904912721256167840022408074926567277783141078390403499308013924987558051701743176854178568303588442189811240715795698344636034549343605164251675514086433135266648851764951974913881823910377354455736673281941323810557639843128945478269057347230372394603573187518110893794335171242758999893842790272958994767080768534945710484360193361648197434098477706604079719239561888257952057687833911258670456983491711341406821141044092423846056528412254364476296186866527070603242266046812152156650749792918324705890604501710368529202502986351980961749288938883700965275494507537049845265622606387242447668346992580874443249075205621426793589594563460646450109065065267860449577792602306875459487268603849670427569294204127662823536699296815997326728275890096653293386897857329978638527123464292819192415266543678998523196435267816584865949562847981052795997373270181320963767986319712177547646583301181195277054436784071558038922834441836552047466297133498771009313469975443794771221323141983223882958037337348751171324057404640905870980145589706361624995487279297548870913476600332561354284761842350966503641339542894815843870133836780113098697334576714357687806454908012091842074479168708100126646698897940923001714807318150067974150215542556559544427792764309810869222918125118771811337308401720186393471084962274166782296156270943705292979926195324711036215548798161946898041848637433403043102473854695243045701088764292775269328020285252939958328094648750366796451680534885081097476851205518385154902804313384973952727610653089098165155061162122812045943094834424242376422396769412583877719398294374196748330091072345435717243076074434237746388867402581538361670198033521783988416251683621239440240591461364289295720565833353633235584889773577434587433231693619061831084246688646495325935429106488455684808853974015113901484726684626536207093016679167956505766824928265226298987076875186359944176294924028462168815029514172446486551942906991473773731304991166147451941806107852934720624419406824119595485240435047465505677595179500432935109700091787737077074504061549569165137561912421159440768121884676226963789742503580798952811149951252651861756191575638981283358563850072833233836839991423380026420505463836104502686546812270341660791612279204031724035432215213571064399279843973648474292726420661684653832572670397117532381601251684324050124603284418504822079317347809300983050253810420150443210285167255363084563487238757847335053713702718725992611938154987441083701434658841040501688232790174045101569125022173416996395095977502948442539506175091424760485987084794557406647045246159782247029415927504674718307422216760843966438140504087653229416249719521570209635705529128576166807463091565832121235129299990885080292304736469806801906630979371966496773091333199137228888330004390880912440340637244412344212033209462677477546059947269471201778212650137197923714067014005104249598076519304919160070100872167594293928712736032606383767384104519929882917453576281546231142829359833713860678238515906675682635809657129953405818594301211177023900856446456021326975598650045329130469039696368945818420844491565262132553144789636062260221465192669070069136965344715645082064073293856024165322625643507229165270318728822144090309791586130638786011588752184898939491709385572192409296720067489701216896687217112519408501932031661541597147235439283100235016741936491279345356748430256302160407916585379055152837600252362790031741019769925329826292666630716891496441046642190062745109834473555777232004324489299452286779818632391679024886968774691088992750331297206164264973924144485508829241439993644198955794761478225458383997280399075641758305750846754629532408394963772267320923291124475743904189418329218382654968129600517657514574345509089624831139028968663148528006750238320781044621684886285656660990763708648497366950328660343884583116237361943801227158289328716595219669213646785285467984743557785938872026659258314856744820329318879802148339332865638988508546814809399221928322655031144961421610403553471161978980317688032662662153635789028727392878888793387220369448732917582157225882221230263188270749177439278969110396515273614860445670451252783298903504578411163625076332382266567611591680930866235545999092290047272474160242803437899981449008939347439365792740138866980135140842015455789499743000889074861215129401639195316585425948771651815795608009095452191470741166301078448012207316748359107881724092724688708444395275666228109245142694756059207532935821149601770227210279841990048720504581930638812817764481343187702921681765974828471669532936958239000953887632697924962864588332949003346047761407268643954597339056541972034087817692697512216785447235231976532905007842171534370550620521686701800369102028953315976444773647163142777390510308560647785943819744228070242232486735673800844138751656767488438482239907047974759023010241644760469690837683976384127902086907072795915889103065934006157683954681469189712402056892672229899113404699923872260221532393424397179995006193333416886265780835645329932894698289168911308779268589211964130361254169530409448736258864082269171561480901721148944359134266917964050794262789091097385192619449606680436277069417848818529069028075299140662770371169016198277994223984543495308350837473167447061205951213710365061406866586937050413226775179180605508832097561145974401997709479805040605901561431879105654975801281929525458206978121327245191037650827876549411336644388203160058262437305135763220090132604751482954908208372394442708953197942866010768715664538398403437567021292233006930592469052391026382663461793580745338254679212717797505315721597518539810040940175677959584180090047911309473605077293583846184134790865476277098635899232718810420079150680787615334538561937723097864101796169509503112154613084274370087510644824274480217971949405632217082104477477947389270094235231788218635903260722856744243445646472586913968116292851168149855828200414151077241143633902057661788686211491504866787351531044102220350067955700275859706159673916263765734301404911630994272239625694327951365166307639147940359201249070291314674337504891602943048209551903796209435006169975143153504691854835328887958409448246404067908741812325350237927717305171721312306780871710567633603255579859147616121588445282435865626315541482472877550093352419859512231922160466773205447417504734292843283741368090991017137248698980675309240461043199411556277711146907068035066727132607203349043872119529462805415742762154760829768838067335567051398267215068107048759983378658813976813304131361475133918881422323094516519352503431827426723020566371746600514134391556920231682671105002757600287147147580059631857111749830216265436247384354960428001819507231748059831710915597831962945230887406126897112038622402411146963635807502146826574146800118831978557130442215722304996201563357685225027590710715438581052136760951872251046179822075105175022448712472723377516798023594950377503184688608371583551217431128095820172934447512167625954609543005393478160014916352684104509289473879438527817475904070437154283093492019842080364428234047084721961022295135000141817510581597464884662198671933843634248633497207143275039671238701813146737733408697956093369857219696269937949426984349047707918563047947150811938312176295949975757593987796266755740889389023125484450167649622992586248463097270041213853835892094104227887743658796424015651603732356462615784288206438980848613710860433598528675383179576569844181098181551755820321948164958698226835516476708183817917536075155088943708859414085764975295384440954248154998026365377053071968782750084857164226561358382779881537090256785712640995311969411345342932497809821634430877273752841866004451206032426574563471334780627153947423444177943835787583378823227489169326625797180981154474194231615003403033557705993293570376945831166380576989708783647566426891671455401986917403500867629245034445527385350041641812877172189699267229138117087437976290507375359862322152372060635107625558650755675306426829053966510201834729764334643175635118008882638433949778586611711074043517755704603135261070751613463886574262566130240843582419940475542395144622740705618616332543989002525893302043461532926883621480570313994526301011122706654749805844772965538535960492067088412721696057456215796897961267585406507475095837877146740934555603853123771714410611199000886257475775492616084597681739072653386234731179727815770418677414550242623195352733049929844277234475729375215528425976766118780391593223554681550978405384053625150670094470495923579905885354481575456898159092772996452574634177868797285367302409652302505163299298915200433627534585362301425974570839913125338295201995170327491845783019616682416232035338097867762392684351314259040732174030733109994589653997053357739863147676673458973913054599841273125029506682976224973686530419519633929100229842703479279301471404290305695404148328650093520341905942351308943944540740529869351253786957577406352437576679395070119339024645223582144701211786818595690386404472561448270577431154554312790498254981278973824663026510498561117833200727648998587074601390478187040905336194327733084705057763839196063585648056971265344340151206671438496523307296701031206975683433578147959219075845222131821281810262365733047346396513099256698637005268848464862968972728552242197629449438554921690722845691265987907953597995851626130818701345117181582841853412775469967640009680497236370821509232630215678341256225745843510172063507828871890689402906224012096821550258190649223734087783699653014050473662997083664222748400196599459263333910754646549594377869121655385018489227525164796490557961237566307015586837359505155203023943094072800343202263609007044589109230978497354850769122151025989932007359743321493921410995391025239451916282250917324590553392733832676540651756652755710614408726866255617812219020676797000476422009186890991034938371660744314756359709435538671858946955290005987654660203592331035460730012288543455029819185506150451721788553279987728543177574503910558596225069190677045362518207613479304325420372218900189677208532816615556214439474709506645393857494652570896145700143397264195598913463063559133919705937416921038516366668597932252333631910479521713892656252137496991688513602111106445163967646466179021669385362843271782965924855085644657365300468789584156099179487779486779093903156668482788319918290136636848562821965343902968891251189329605111670710387875669423657112464872809609913007983741976211303110862492713796511341667253617336296896182655236156684167971799252437327086702327626067196828447701801515170991658488167988128283576486283764080705688061540535571945599600534995891051955452634593901080821048773063595245056223917875749834229315685629068451508251365873018798487252420024601166839736495377665193033510475279345960033321563295747652433936431025100719787100022744657129553602162205166408769473297410949862526179637398701538482005735795361228929659619530691913474176654509505375622508531758159352026077772400887282854539355068877696080043537839260506978901201219801360710554527756344594538610009101205851110062731357505622807670923394588972996595171596180156822770471225413832912407500367600336817309919101432496034089686593211528486896132375610756278862322230533084168907980259506867076651514243234246175418830610903193216561943008714036793357736995482577013440218827669492746291834598565449884463839914676279812175494024279720635594710167270713670842527069744703958644269076220316737033524479748101194167883249789406717068485815303357618002391867399277283977498632361353769855797130222357250226953408539432246969628808783342640662775868173770784489074892964192728910423680559745979737418896623528737369375804720822902518906236251154698321404038171945210122450542611353799748808460970074455445123255425817000835396206553480719668342330655826297683180654549363427332977574875437194521104714850634275495306895987398481866342463199019112074058215064888460400874606593842636032223742987407339470877817311099825358133018829951777216839186501385799121462498776623258812306587415831692974639549750946526028672994417186623549114403075367422099422374673096942699704435200129415970068882621036900867759909159572885754350436506818800475200289451730588423819801212933896417953031314887879633081748090873046053815820523223811227163403270640532206896428226838430201964128036845694019690083299877635179413933253515193675308561489760195593194020565140652970576130167094741921350352570066183570741569901522069905875123444099322844333197989954007758170653675493539650631518577826584280466719552713983945509423002287823164531197904422080120759162995693586519451671256713557213081298017731657247308981608078732236958859354939105915745246968009897187955930038597537727970868147827043657958991990587324668427423424767956918480766769099935372311092567128966537777473325496981212119131498337981783639025055561227161095127168374749899089906555416652904889245032323049322686076205401490481536990586414719767794524485136510781356741555865077767561761536549731046749033177247402754400951204080875457839422441612063381904532516972077317985381652437184149619389228551814653207735056894248365360602213277337257787949924080210193632133716874730933131571651448832660067677563847439579572042035537064290172228861208089810036228429592239236111543859353401410615070516150622425637018084564888749113467241378192307366319453019414990801727526038176286015878767228155861664073376829288929163046503569196377683611213041855192559508531200178349509460305519757554088979562015750765158062192048269146048017404642945068614047350515363120323429489839522216090974587104158072921032426433381469949414220718328920176104868878105156871777710945126287823788353397879055091263884373642488418970954226457145619343867063624730093503047585339409894152543853506087325321182201262820187623177940252008594463370038461220445832983554908860651013210386272421987300434510418798543534177286751121069042619552813868093826080487168028295461835003909871852615015154212105085900519188833939824412127910851040829257404642436383520255423082617654456691724494146272129158283779155738692214107478594094915311569002426120834428589436863830855966807602706403253286591905126814148644333689906166703098522149581170024481939925095266799728514539288788541184113665988167224544685286032736785340234490156968085012050810050942923884685178858426879418070767680699445090874798125836362787699520757291878836658692840747036994677737294081536430236318142748521199979623223909802985230104051347093645930868346888477496321757780333247561845500923563621830520714725055628320271736760336831002976057850501475453465013553863436435555338770668839740892978412532554105355386184909564725158956362889582056531395699681814775075583899774444177175306900102731574470191800114716371823784894094230839820544868580082820904709536299518991500379794361986588738677601169354222200060842379531502451710840155659399958025676326314645860600592673800187665533257157304141196388571266219539490400096775278321886416381973899246783506208231363195920648169983230789828646462418636127256441535305767925380005188125358268249898773469041463443480447563038980028408635107288126645966546090515836128413794638284005370046213776097048933616538673209075063684668279055648410644695351300290434734340342254190038836945701836253213915099093141798406269699176143334337252601337949655997432455208969358700174887652669852706520351353664449711056071902526214646819506601949090196169575114583923721711996023341614316642731475782321391298642337843051581364343054967609271676334811628718614126100704484288730334596341212992794435052680399587899203338240759994033775217460661633715791146983600437402101689557473641059600243262524067314612811921139454751172965808428408302569762726894060834253368825820536903902223131210970778383257418343370299888423300108147310463297410691228082908321383229842675133814356402379028561245563608517367495086682089261883669322985498483913826842133996252341359090447952241233219728696193159789445585920285069318138846067221513472973990067845763553075576175091701285483095794720371386256860492157313934288400790929091449282893227506737893450372227062543303310156995241583919007331031222422912788882580214120555677168428247279843441749808465975568964501680467587971408925156300096972333088269922945852502659234585415734608874782443607019833143636474682897919021196384110334203547071655605342565527852367538790907405507463475617496277636701003175664610888582124979898444156792605671981696394704541963647811541920422283905450590870220923118248814866003666059310993742351817962708355273494239405282774367442021639205975539862238834437574067063319187087777507677130679779551868803785627666006953857876994764348682855810484857663500850440311545416007255620117285811302861618461468657681080336744302138769830232261766717323851124266196002283167101126613569873602569960767577759911557174509624511480177688579852977154066121938366111065285632093473527410659256882313274329398774082611054210173936383767895288000875003520589372027018310390667795235487196578195877165908648854754966925023955200876034935577536130374222246490609415664875633981539187714950041340330677005730465193404065561711112055891399884830590401745189159334700228613286138758935044961035334080230908550768405305503791253732420364643843314676718704369900983618380739593135045610573120931713111158776733250269473605716294060041180803902839722471570563613995117084684063771549626720613111023370374252066129703335029442949054290927106106370432078603724497644762573988145889127701721110499035645538819577948015348371224620574407581439707930534731999647103543937327619894830058680699075313126889232077097829423186000900135918779798185521491179783760891388628895381637874602202874610185600001043480165724014690071178066043533540227314102458719484155737656959786982000059892803339603320067635740857986778284993130691902615652164372595819331315738592573790898707999035027539833183080916476577038600138758273207390088089369073899540210803047617781019930061066091998017388471043514320931467541508137245967739485450973128344670922504704016111532456155952471731123134961038655235424285184254585736551675638456146852836240424563361725019791123837761097956384520930991140294895687401536307091551077616716297020189569387866174450358085339548980678310805233766604081551775954102439673963235020743808925341174616281507398753879690811103105417070443232924450157936943251609620256729095200562941893341852217246047248901344549746065157840168714963069185685105470748009791483964650798973003414312527915740544393564695893166189901949056270627651769969108499722096195839592434455380023200665888892164164228724384989769468619715690612994429455771464896593524558474921592684443033374882467615321251577768984349080649097562102074438251033226084408420315096128246577309076024084335964951490844843868999557822168188222027900843962813133495743605664852312075488170638326511481049530450374199310541296506845245569130212200805443974770620186902557283958329688037645016771865334674858673101036191986154227613257394807534066182561893402677648191465515726838415808092293556280105150309542356910067723260917480058742474513444531193300713864493116365783839435875087902647959144744870118165655579772908564442036032664148848623608614476898234889560321233673443104482248045539067938537288231569228607216361421012769765662896108117878150461119223705579180121851862793213748417417800570011697863584265348990925452977098761508969864826677083833954776256134436511079389413596302403829732017071387836242165270119099858242618690130202312654010337948826365263299596809380965501533707962114267182677278765214606170014043631364118937883809856185795705407739318943479622736122163722428775861133235689646916101531661880655854887883601751162933040295250444196269381612827042058135269429604435789286914069134537497651626692445214013926327371606554750676901407416017738632574371078871207113573572108561381474794754375956208140976231288517892642956110075641598990158476342061066545076899735733294331252091455412592720392871586487406528464427739645150882079171135785918983074997073482422138867154447757799082835366254055611718310190234645807768476338981700678020041635881252066391099500516277544685740048540225040291998680434778184106691909073423693191584387980088200548056203986556360031631708874890735825164659415302729077484026022064957956194013933029407736044780817562485929151929987698369560267863514359424413220384034432492812555781140113769350714903883310489049553573447437594656638886903128457940302922645556374202175167300538222226734523021761551583079962135125393337904063521522786170512069225424177543979129784885560349806981813826013448859337049966519362031841610153281643645163810785122576724813563378713795794186162303331478082170750939241807596079211074496437190523404580105388831667818834543525105450916070299776349328481697131875260969916166895515837085127216162766950039445455436275232278608974082601733947870406214923455631411570109233250798823390635097611974061200800352039361262960619166851719157301463246905834158863544283354105146254870736497014850618453707107229500353205248464912213891769703592777982656896931205852138592456534626297653180944839638973310141382215902667166988626693361642221623969388542299624451420171212636945901419176548150194357917288368143029540356881632533326107190270897653192117202329957044331481315152105657245979075668089486371346240777724912471404493671975430126962896476083516857629095219166528274967382972974493292215906344169871398828855239495652253111372889555632182591900943388527587660610441957561875741338625678462331102734698481580792272103429614348087480727859814782607903317554071481237733199191349770278011001642060269546127777266628470581771172111774477371269724216798619506723206153292883055291470776997314269360612990241151100124690539645982814554248431230749401814054657103657459680929478508106913044070398328696066384331994411736956572461527299076018230242557553661732030433707909650236382240009225581954746161474289266867450899045559907399325533393989668336877810086312073609681236594479649009451259654176803256876551055577420865488900005298316504381378405999341548788126958702507828293954821687179445473498903746888595560486853341698790185550920014366438505715755837709681020360212456962177839125524625951993476718208384864251895568472321280537029221131921982892197274471772733424823618881270869999788522124963257073002267030423992996923581687275086303890241940552259800693065409388402295172692963602488887602400209601847350246262440370367390187458913317074428705317227415589391891191560846835160789887756522447138194144428100355813675104548048794613793405348772797052799097021376977661519707827452541046769336827494032857357373641197916569641785847781254474112605071738213984091408665684365471907093594845707408832747699332566602293470019640468571325882185112253911300431318549195482544058491393955056008871422125878261152584966172319529483300676750675851700987908330982939801140614794452848227481732906193901069562461082274610569458182900060512986660882927850015286469676098769913050429790690141742932761970310708437669921928736353102147093822297046163716120924027850995958342413640168781007731974628430629041856323892282695855427238242482987727023609397239203796652295482742875329150881428216794420667534574565538764200905643854036649770748101451674646557414532774125401632046006644678325923727570229956562080293668281590646885575737103729135358525304428944270068985961228058355430146473807055760180420677424443928015597106732623244659385103489253558824634558944025337749272654705406977556628801165317318507785671326362297516302505904646740233034209895427395346501384365449930883678490378773648183583003397027451961021602431629199668860698678694410157586375480755902351986752143399706936594017419702983156679040320350977935834182987735821029350189223799667685910404513964570068767001965116058209186317616830480069791556883983526456748869560624483728412188427067313681508856670407098201318093631790930557211124830980532970398463298240675020957748379306738196880893983478123226616057491254149576327641349568433702172569337940896962861694882492068447016327299710195633868699317993938091013224447491906258196719268549774337378979606171751038267655054531258134885964767251783121298761205313760566357177724869236491881121764175893474862272452391420562678467316502936615744004679085848644715788808026700353342138608316288669529472242663203711244838898773576393503578577228692232429657478007041014819370591800174141938084020280578028286040347406609576798434856001219774167615114291057256596094952498840425819613087887042922574808797814628900911354300634493495528930787977588823101132661987312805881030158139452179832504684303455456650722632958503315162258161705269924734926460859353136998433192581723160899244235447382358065419292317263785227903737776794862901696879041781629451189980237110061294490481389419993851652248439287931320815424198368637689329732495896645481620705097122749459692784717434564966348246755774444573856785025879678549662465001869179269753789472563897966145684890563572391044692465394347531418169872340260497957001106088581279714974900986686944447904483560677571261893676872811126480629042475933597370805759684614326836313091664269518088880030396969329017468664311199134161763847239584448464832723885153076821476756247931287260948932669008216818535250898372886117250830143301353746779570408352159013645682763475018715390906627809069039873422036015710961298904940792956802759644142805645377570673451934992552238665412412345199533158842046812315721646653700457757590790383922814923858202038498911024083155642938026474596623104943482004802489915913297095640783815192998118783232408442585918161680385727997842553456685341661616536032941121121748618003405820164843903279049819707299622883228130853427671732328687378764604293223989514907878654785339381352891435362149834103098471949563501872797036585976192121058865191013784094404617292374842366103368450052406208183417383933638618046489710469140504338101998187963019108394319764750371867978973467538138341122264229274413584556157085239064763399598979007182794871425060678631876187112125088422584857500764579125628710783495620778157648699138840341223485443618864429466378059073598934157397976060507214785299721743242145520726043180248387313268434557931034727180669283491163300053202081417689616853039767919214776222582163997463479660078147375390685917335196998134451449589786591837455090562587781028692389843229432861914855544199307194045479562046304463822609007523583987756375193427866630788143433904794063405251583660133386667560672542147619845851181008779337328010949260567636156297353828454626243484278732970160204558547766240691715964485689431721332378647305075121512215750345270159380121355107563506070910472191747207913979422366809864858754627179893099013197082976763684576970710549573005663899407030708066518433983551863079036861085603309901179934090827909300603435427458188288223270317546099076023747005928968552285307732175051401747748586159878839955223348704912277099663396268937348729095988560432866352066294627011140726284822874671797331508829510873842983763224193867165815791452000722877422176670769282298376542155944841937866406199017646127694617694987535475838721921346166165177762204779046517125320969131566063386582269058615463042096511844775878088097893851785028384738807342130862968458590578215331167886197411814747606305866221195176170137233662459753610935722788201303903595557652479564201844854289939063003568614889516385856733279618961267637607387048608344422244447102648935955954218503354457537705015677330166722652154800038516931237221086640112686071017196047970709857366454297062100573430084537009934478838090672715987028204537606210151808551362706292531346466942160705782324382786113941657283263641457488685259952871072363705603052627312489164979409257206756604999680875799694561471904844171990152201158719272490805504770066212364122750697520700821488970575187861916561753361117263618358765953103007822514511064678176095361468833785024549520365164506864554139773735116496814362901599730517575780377807693194722381154952864991065558546206005419799355642514326942448841098072516751270226168951226257430561446871043838494348094886471210144766260766253154188109620331906467462920335423694232463021594889501210205483602047926852963844631556891047349488208727439105260763464554977197501424290507541713127343780565354855520585374582671239327574911370239413564514988489801724409432071562281582690343691750285042922218876945442672867058158314734039573859627881438729916588071072107509247737942080209976473232213000111451796030543139711318833476180424288195802895597815325527340471368463063478702014800059712038795096321711105649813050630903481937890546074540326687471584524272671902979048613623502807719637842346981451585202628778008041603865154392831592686949442266094336050265114273699454527974475725225209171876170518325935440220800093904878730862737182853860468507931311312046503121469537566850576387353851716118162343762136954143820799206578707831623898208293884555405193413718644623035760123861308305387569670860483516903249232960214856236530327013742781595663142152220194031706633384791883792179355834208360101907124588254082655173350573971070717367952208420375668372170206788431555502674681055384642232744407055367486159565743204613210664099098550780353953186819755754656044791683156648183267061511024439002021668038378059816908338752938982649603651642594060610581540061383160131082900195681650947831078729100967711027624298276091319488758628147701246630359781676133058411887117885666341893855917028548879650416992832878909803334977189131256107639322894909137388395838602599375446491552599736220770640914376643438150256642629505136968465655094192464954010666696512164642386444384597000227353115499000890104768517533265362423673796220685404063018906350076000180819702104563598223194191342348132982519485845023869884871902113488428282776019655005833502708817596145727204004928600943872995814548237881401744987633692589880132966703315819599827007953268369880678396246265894267996176185620142279250995480409450733200027196848096770443339290192234759151900299395030568226768407810014699779309344872163713615013164943760487276528786109913762927442003013243670183660427762621154312841360109444161219246742460697679127564390446249343773668399626265660246546845992990769143216521951128226178288776361119615134567875016019475660609128331085025457553510144247721398728298748538049142137919505212117096948496594697258926940970338868373263060924679951118091365834735804165385678416221023100675512118374470852650840866859782219415969874319905108733877933226844075942757737566928821738041418222593526606268487365461971668356925120206153159548089595537415909629968085961233720438312632280075661304986592227102107703977024814383822196987623663615364362318290402115932553890736229476070452607115968676521449929864824318581195199603356207231846561342794342838818660877539206587411147197626251720228998239906332868629051257048652131838684995222320684045264722691453253003045583930364634017652494084361577041770924700388557740652919370246338338760754834628169818986076630217210383472488293659607649258147194729699261937851655987391216487629822432231365404709167812602376122239106321800792613662447075452741482077721343315383889530346778388543159589020487279615921640512011261504994372938531206181492567224467452045272770970223977677831522710929725164365811395797512346942804055169990166849771039270204182887308356939956093223167611113331347318011409579570776314932048718789794414308590025495225343447409767604710049467043822903867607264953856425124013032703778398030207957640726651756137671711332285169290054115997144199221721100985756325682498570811102671202835178156121344687627828658093558097633654042439266037880595547990310769972748681283013048036015498873345225093201256148696905215590430496178946283907279721575434259109503475686625886211234165629406805496739576739836925107464693013116159752742003313848800989903405187955437851213411907901890334588634632935877355335697807329439907180466833943786883333048169820721160171594980782520584782368397118086071844587064219572187108699635398819075953069145813626918299061437662848234960584410652322734464201699940726632140739847274350291435374980185064361717092904336586214906456723664503060694487511991941176144294496909378538862216991318418608135740215082532456280641369565145696018789014967411322858727862833973061259155884067848677566356046850745308294249747682671133140602155668171794050862686042563723740830327081356236294028206582253136890614683514949093778189046295357620255239309012690754952559887390662989325930592930123438498222287580174579566698582299022981477040844233761070025724731745362435790595822756805569355007278959534628577926969334918748855760556853171983265130573664260771270675454161838503946645133879781566080850974815982807470331405755739183546967223037262475214198388997757821997689967818988035432246756012498981130537523557347208565620754011806851848434954096430178834374130142881517346927424517988489150577562388603812206193901829747223154739046334680757093492550677218481933563171856239096104523912108394315581326512732484894456766533841997604372262552024530999874573381121729044100316810569358229965513512647944654875018373476659716622825353912916780544562489594626112935100312694233799803613747635685687803928440959386427720459599296456597946002825669453891251529715157745977829933462798128173127313314602294530973905936853314961162339036034527961730384577501472823526692512394761592601604672412253692415459934842705334986633181218839169640438510471402668110074733048216167284639330232456061734600578398750017213555285746655039735479764130479782028601463757066127810302374644504297395066593962744921302336029040158014896971103315683766046129459519155953413147683124518938967099236999406421466399077889079273545053001201332805967108631824555654776322649007054787835342291877796440739298438703434786176332219949493357123811310752224276487741793737581224262289320086107428249374117740299061790855649526279079067140028730311515030035882852732410214866924905141215758825670302175489896585529338585983619273046677164004568492599861633009153029270857796015282125519099509083629170068931977538342526684360345107886883041399399267627565728064241998495574550602281715809928472870166795806178523773904884234825671156134051697965191004685811430544950224921055098433639647405441943543038611842187322129093713591953339855574439364097237603991423649464390291962122519982431200027608601800217302701738211011465504001372101937367030482465198355708802004416697211804510427420098944818133909452643756833341627181240547905755845854969094035879436156466760502150064499454466218972899885221060219788834054117619069247793896460347741461871990731621449002540750009369723991096608328082809091172375526522008879564359355432466658742268818174428598428408006450406347882968281080247678995621860617926905569262823589304685228278537270121939609738296127470569893499751260417548110761431645597553390358749412113443625956534931819641755141488581283551084730226523762721003605891007814355346639839384782087438735677561065425913594458373995307534703734138201024795048538501477083089562187856756638878607943067973326949019242216488237602534561427082228476019189890509910921584997267786595882705734247260240261761796433394686740713141003113832951373417147053101094242604988072650661117471551760544791843821009754031369794742597796850338120905657527485289479409628438340963921193202019775283076946068216947300030084673865312427766043802009238716420907970550857043503091207438702734377743409899963715634911566496384143792938926640949343120035677540445463648093846872275021000397976566235320512889881587145714499532646791325286817160839271460920031497636060679658363403031565547496782763411771029011160831858082813498617593453299882227935543608937357226523818364985117516130166635465521468726884158564343156362631781970648309569673262131214117635365432750995833370694328416765952042026910329865102734084365857534287444006946469330592119764615283163098502500124709507434781450844212276907518221043658337947147140582376863381269448053575801002847410286303844262440794633532497068488395292362167675579432874917136897778378144461617517251496223367696030305492667809021839450490279565707220261063933442504203619846699438085576877265532920828763893609949068627711311149795672470933367762340034387811158571892807108748875146175113423623784479255523826831346476618823207317492052213076175346374159457923788880739328604405697262820043500722059065552933568156929640470872779785949957878757587728820946470297282044079158997746425406889462722583094032001051488326065652615331688480521809559765473613505285116004456254656283602689630703614270476960361905201616714514454196054401684113311831945092855411677641658333132976105672845837800539434699782922242661541647869989814076059088261785105001228700970419474629074291395323167040999548323826425579340123392641992090907775715001261901864125478278028551194852651308628399293078131179423238913940451284156799855932056868190085984659979840258796168288795524240976488530931197006771434939723479274669695872913722584839301900425231434627612931942892130554614531687406259860960509741328245519863280589240378522609522348923760096883252100663019065490348198288066707450008952127043342595029008515089368301733146534044127127918422378726348139335169409493792418786985245658951507583470582702438530531278718153418429999227472579779125608250651876717121258448152912553972904938846651426171787760572457706797679950389980551249268617978397331136168522213112222092478740484261971291811303901436899419695058487701204321338695833858962475857203840090828178102132409761304944102154833302181043552947779543879770557400701009486308785384975274416164304465418183140959416028240422612880846278261322007517619857755296611490682885820574479449572574562720222056889214099784156898633664854388800698565194814992306920942609188437375989807321572117133594852974907030652614325538922352247129919916552992683097760788724310071540165807224356336008416473912711597658612910006363881686197303691978622482684323943036918699208695549641263002051723482548309516325354019523101780564099017994828866798708513874553823347118565300115974066894974387641635007771418740145105057232584323476225786454971481046113843090569200509769294681735208161210609500944221234640717832785476175219458900166803774926022113994806447441851819582536596436491338602261341803021618845992071160314002882023111747309157120654044695382981005058967713522855840062242239933494451243607533453603061146654934440165591056436144644947663404160528649206588891732892678572926254068309677447409617530488248918641485715038278266447802040025991351023079375378403415482588504774972138790947410748558343413986004842889724154838334734079741616333147190284716539771463616904142773630859018921451266673579828264443500161933506134711622228171767336521516238816840736235041981895067248318537604096968481476395429539630566413605032071871057154760639039439147032402459867714463088085412032291083228650678666347462857488128518941069228424496429886085797348769196292241780982478877669594211712412827361662443958278238798824048209754097953137858530547513929179423347641881511717775793670675182355910125882770315584857149746416101923972271217718015365172223714390879459229845915745795663228732019507055707110785446010084398480075295606170783856869652951961555136883396808281677760253830068767139532924308794139562217328409261188007162662043571764825661359186857154138777272202463675232717418339382940461900668454140411172046271423075053114675545831094529513330944865010464435996885498187174717625674105091656192587768068015440079087607651031422210210660956737560492596626693046236729123148365817368502589453808937137682117636504949958737326702768917197096970850850309618514015414848523347632540589044470277838423491027755482471835946412254531883355434465958223441951170600098839473383793351101680666108638977498417768109672038037535757702887950084262796174645430890609379843419922817487949100368547271043735998705650717387484011342270764449197860769866844160219828269573977009355357929299013111063413447088277707864102284139336221158524933795910274971986872565009213786459133551366980191891350578005556223760340144288637185017310625371777821503616355438165004528313838320704843867697339431479837335706177462815274328394904915744563975792613681223925138463596014546424442972650750969928240077108047485281824770318543617621107299520456619492935532156048669161593760431239665331195059898897735296974637140206814934608634441230814510728276455853131311560558074182595418157765103439425186764092484036984099428228312677057961584707073676207534960186595634147329918924339407783298352748572180725335078755779021254820589764813802787649331401761640219114589698180422019536573232034387287609539069769676276668881843353304417930799109317887188039004983889768036153403196374564175990614388710923432621579863846682480408348362719869134695611852778069216921446473493761052945354609143349767286267100440170614066469658299408872431088616485979439642650551449608194162661094365693526704454956240856963619318485821727883382514581517696967423664963501733100392726204483659939486695725652435781281036606252969570378218415247553622925884718883066072903399666060778283858165888452826689072429662291237635071601408370247558330202339618039697660527188934775866523053194910872662282930924665363300952182350806845885313456740987495607441995892717126503488744019284738993252121052162047689472377111055405339999037210235983934389370552583859012326303551198120623206954649524868207413325947606232135907183258527199436601710092583058377921132588401675057819144755382827110520619202401972397522697466858766439560760165786811503047213849988683286023681886605020004068075025602119612563465059611709706978344486040849901345693451970344155846956852251138345639806996404298378761848374995799228610422027931927237148205681419842224949588106809180456617521187112843975199392396055600832053499750876069460666527759991308729313479388441279685709249458921646431794821773459156445940130826303014788831620714398865799024527216531915131305553104346519557166934015796884730320727107139745372831367820565299006384294522926431344247465248713102770426437064290913548954298399745588373875262772175680324447382674812477609443943781646486518142684000765649970365227578025599321350841637495989108213812633618146645423452655764710076669001947319365367048357908901202053283023474297433160837563243973698033996288941092813400720629888678792373986453804256172234412005100163250542307198848471739526390483824514824314935352132374686074671256043445781791121896730986055202128599299895564336694795945121624273259443625385065882097502213628839118508792436113101866355659948968678961438899711387310260986705040272323983065244654342454407431384678944589154248303369384027506563123063728489371713917345328376636513824449956401080304027609686450640496753187871237226886473521561266550296421115452196611571368175743711910242128862551368841568836127375351945779186622234427595847472825276092929028120702235487243446396261475558239634339126409434799135131851834376715914196988288789600291854944726579290763237738583939907992664190891331758224405417087724977268021262069164666285494491159443194406795527843953358294068524220088497258692772402866630042736138404067934199515680068258256321580003250077970748866981306464526715503418813366445564061641250329249192622275661333571408020114073780923890313707016502609133364551715072684591493544959265301072090040787579880402218823447779256916898651620093542714249611540516559819690343489294918761438406339727275878786452715415214834578537777662008623216466559637917174295266116633145431614792278319268099176604245477827436218654013817964368125664736714717410432599204720201470963231272601637690279284593160738641572234173852551968868736387939646341977017033352869002683221618603771296092087326551793231160917283216815082017532730459739091985204076505704324735004388658522048396949461518424828908692899128588768532139383586271465690558653933849730010110301744271307926317009677184277143323901296599066302714283863757533816622556330729623333612539835678347793645800551534191228643690547365100563577833335631086450085120566295981607774362062284682406040271907659222560104151434223394129678559066625493472596813044326233013985693336011876136622267930668730073706360908101186181563693667570388767308696434763618514772590047887423888626603833738753610069248622055667979394223297178972901566272947398700578959532381550843408935758660107093371730590705666144288738973412335650850015982208684685835333163104743887950775547210802932407247526326191316073937311829519224350982073362652622323370306456080049718517339177802099138315337323257776261322033329741150012006281054906714097568813355617791794564909687252444291506424999202052391889506698147362440635506479700894414247836540802532205985266980165315625440909597181093327457745621573053037284151501338760724502718460070946913885510836830522871802979302536800494093540575297093650188849040657020904533454741925448523591427060198094922302371265581724162815464881435539610898450523487213198249309446726563704690596735176036319369861795202052771100465650939781572510819799187566931440764319185613534038423373855109416928160666444694532221736562967618530415073387455702105979205429039062598539795492076345265067754585216849943182917410167542880646090558822970314446393612895017742468423173924343506084899552034782241554213544982835109853345811656647907026148885668604986880319675409151585904631075739060807836329694049399041115603067262481482242321346058879264282995613943393307606281576340705309130931523886510301139722421114561591749952362725573799464358415794175808077093961050563404903081216674093766576294519455933493259807975430571985525882700167661188467714393048697872116766097273173853671276655135469834215065974438768231545106441603008533902879368627036524727566892863834920295253264693274766491909136766932131344329398530923731266153651034555827919315470821242135653980883916512627572157492473856939956733925306537095419610461188432281660657485858745671177743192868167185445406355749098298496921439200522608347434915495180616054219727217239241623547286871565110713195498832951469702033702557569168899619722811928719545760703050691582429909218523178060606132134281604479873100340016022029926348033112190731874645622672609979335129539583183288794541802944727211800703899605153261132346805031319581558803251713896099376826007865865964406040781636818445488096932543353704634705638403688276988348741554513555853829363980758831656340305199143202930844555653106531826932239028131249065400974971973146324653589181885612062048610028654291857236529873895842699664054283318070865658207939547415985227572504605515498970983179436213831573821978760265301694408516487471858850710335071399999826281970343501037729209333520795261143965826611859247391733774241883156187702575004404236748925676132395703969222356349293492435745298603938927149099649110344268942728189539663723060460941010206177036034053108339000826495920380325535694929258222920628278421275367050236716873399688612440380825074541960524070257764191055112362850568430234694874209785879118379407542752711394893860651612454200560575251375075107618648123675691107490336623288429453090677340733314356095985590146763435303842558035845831639950245318273472155682493091839939572696950735506988235429199450495293255280305273464914521300402403303314751766177904952638823473573487119839817849488105334130376587124301450977868063377731203546644498696767052190608624765628360354893219591937168911585277043539922522781491205870579590458943380456747093241555362582734533255257344512997038998416779564138029639690366242037917781079492329410972912677532338370998392425909577961520223992735269425813500370596400915097890308643599850942299503084585972338607388550540901529284926405420037351888972208085908108433912290513153350996474258569430365174598659698697152410295185556386154929175165128201204928122752648370298222881156072885878861685684652115564376185112258021723592492401203782505330435876473338165634783806096761054041793011309773115856843910979247269352327911799816588799559901185131535432325634850709636479267563633562282343551382640999145807107344530689710083445317685962229458732268292224425826579413400596764196501931371904122789166515624302421718079280507194761111025061793827897295184228857790360152991556037750718202571707439056627953034556057045668435640437143557482112524458745132387073161102068816229753872907912837386278014234165656890751192494815745132913295394027782346607318908136839643915915793921702330415573137597444549880342903783477230674379954518252128555441043771035773584946889994035993761470663852218967128584522348813660973660552467553283836836676629581377431497131208079059347867978048086564734051527871578159396409856641995968399273487985505767781136808945400314917862245254131226530225135522042302172694185850487859315404253506181485951710199941579752298114456911855088021612071656069650054313642377367658157830716086448454911497173791623874442785892911601912923337292486745242025044544830420962273852459715383637179161671856756117641622279579529722165160098252437335854569674674692774619436523867603737668307072028553072169537407141334872032210577268511919135896190508825648945077459460439676243229524544107904832938728474366504068052025416922331937208368024908451617935575217864139212258301336725479550534036936196586538938819957847808261817681087405725153782944589145870076179913254308753170350215604455140926042224260210662287915568123385379442540632695070013433179482754762366146275149402849297452993079344613252127507490078607974281787477863557561796753025641928064333209391972309971443317986661541847356490181762925831506561824216449917217793666592651543191017838494388968205056106663760695401346341412325674911437334962903899854705544582989324139424756054351671244220748211225840362427666092185493318341397334479592809584336058890926286680488145335937349771242268280772684684578734371515379625856550366692546350397437083577917109300600963070624944443186100784262675574879627128545297718822314125497098725061736862321461420723623423156188955772855204509217202703939615671209432891892236215311776519295809527767485288675111591198308799178334515070108326005511895249645958682188257304907510252792435306548242359651571689523369491210675289910400731963277744931051159354264843551774305989027263473867962079200166416994390184671858778047756628446316360839459485080835139005489544384134742201003535680483756521844394573515814858701679287585905970733565922208496517545974090817296915737847409546585186068675448839479540652544080932547089259610372658162117171207082842181206331252526966215146648484651561215440611151369713177993355136778612968125194996404906825298068275562894918690070799172291758511177728446529494091944473576920780862552143151484458014778895923612380695153602638129389779852011587096512116276774932812043847342474784519904735465766494691445685233573773308740625962109893365251660127329270695618766471512538422432482992007630271909036160064785619499820208147491038808836680669295873681974399785480585590024665243325976302846898054643568981797356349723770833814897861633828830798743189060585750891435546109844955901902293173661845780300305647350604181393151952148131535180646756048883035360265499688831245728484300522787842031822183088538590929109136477816471394596533171659527903816827346612990020937209857174804954640057915153824995163204463169642381490456008559820519681409415281523515671755079994037645703059814969983609923709507369315212832346830292256514563224483632928931796132340850345798906841179540505289830130697552837803370664017929073181335654748828477022667506543882459507227599783284651911073997833686968157038136104355883981437656435553338955124008239722008677285973706309175332380176277827454896666614655789182644399289784045381455682092904611492407504561039690198230842841541477865166845467046157522694671576076972145108715527586661415322181317177029483724135915802603861442611142752262726884846479817397730106081828286960279519536495713049970014394995806050898743354844418336479262223723610889909832425429197131408764753972471671933711696412529074970028190465760391088372410527473768674344610041246706068980320504490843470116828785385754099693926387689309230595130815520183112732897629233791599440875679746093600040689825821986778833694320968805345493476971403203401409979987543438038549017232652329615302530722669671955284157101209542667324048140276579553605977628183825878528634735813056209096125587510317147594298531669004980728026323303249108533878590662955810211755135037771282472325072724568069717034780437971165503474962760760616369796235115951644335362862574884848453439108909305300460414841827453397004124518570469881919966221720217373925718362517866584323532395749407922452255069018997228139979247004676040999130392628259931162526331274254584260711178696919090166398882324162250903036799234406721219182213934143792063797727185495347155088317046522976542335837358861265140088953674618343747185690810594026597962642141876982617808045604737232828171075925351326059726245828430920494178278438462762134515115406270072348306760657320391199133043140705193032884555360633329904275420011599836354794366096970152877430783185876972402546272247899755500571604758136064496472984441152029797885051241801048361887047507893181320424958255011705196291131323769841691457198690861174557036075098985537771440814596516294733928078265102668262212799156308307741054437282744226662854251779469052391106090323417367598328414791492983930827148166336663589389875259205084290032323432726653043169976541523480022405650748316190044023027105520797463639296146621784358633962798203681190651173717645044947685345261282037858857321706714136243610441322822746958273727058927966721420328145820814155152404393499116736410516080560303534862339043717542436923763562307619293867878746059412253433221560095807119760909281492111363095109783273005291768928391970861017592285893892773421613513681804040427816040450295126935465266589503624041101295147937401662588078781052109602127986970689056543690398516194080481972926532798573604697293299143413724671810626436486418481350095459819953280230970638993392144901137322067786795440759979469907988573737556938017356152921074420586745670808606258091113387385681683892502097315792667158382716723166285589290610313921090821384103592219422692588668072176576076953954480803323538368110067097027772704692792213407083584437852678089254383408206327221488851419262035169712940164133908978855822691872052835169161741385296235157587725748008293633554452345210401338091928839225315385406311069813602888911807205490015064776307938582689451066360536941754045727457712677993761257938653273468835210033166847722122651965586658520771163872441004421948662042244776279734884309713351801811439199462374737473315694208595289703164801322666116420007392358762496510944714593391805349996657052827572142609903850078601690284267665459856247591283176806362226226854606467885787054734435777075702923123260648231442392670027894096065991523980682277304179788958559170110926851251376830789612711778095348613487594786352251533563186381630029722249051346022363099148206073751447599979989519504601109437495048514221309085273124212247029872019620234323987209576633785506456990687993684773690259314988584302736157609723102370088725563400128982920893584501426307593505850166776142257423297889791504063247961441343323219240293114261206702673353216242272645996437430345839039178240666248472446938829689328941969502161345434336446386921883749742893830481376351307412366513944825644652776276888573993033801846555770408353135142411644654354012252433824575038353397722032739845222172575751565783131430928250034456998367129176373537371461535719560898695837254741463044079457264943364221104960531814402695521880748505761548732203283220623480710566118846538688577208352968471590273898147410870023278332224623431108217073904340454271231026648124388268593148605351466739305242376926944902283320819543195001662281667412662233969543086752932645409889326009194879719290738948093075935657874379944484319900908618413904187385385346454121311830424635390039532480548960940274330698236307078865072749511060745660563988843145732248079331466824210507443106516577894227516390387978771638326821963006671184984443068921226437949014089994151738982640939436415718317047983647207916681660994329075348827003653365021333050382004067921605340239162896810620869623033899920305747279419929304736451590188864319581137391956123237543932904826183889702362582631144229011187884688382196746244311721083834110350967555245315583602043051325969512222470896624294465043095104733218766286555239245585708522233964308966474237687897616875083736466417358386935098072186249493181320897600492701792267182047396774485446383642397732729637754186433851649115755855966800444566095211432011460185733623531607178525194091345708475208634802200129395931119313383139804858917346948474845374070216032769287563294294652433120346382644218806064834960061193834258321717387774682234002704293479275032746714681089447673729316985345368685209082924620867233846106618754350292686792561625335932858870858299271320096933243187933835659816797327961718916255227097499268534531310720930911008931942348440082722952730729343824002197695448455694292655678094494891285075772240031283188406282705122138000263369911897750976998534533931650503118539731348838424468096952151974761686301647016143552353597251289468064412284691837754965872494338895840179932438323944276165858729717655604927728595817603239539206531160801039099664156820053234738744218271654396201715340107374841654254963152553728604526767550088714783000663338220205997835157476765408900604660156468503044658673100058188152061782625522590747632560740824865970771751318118743661469617599233907022873018794385171256620321168028494685138436710680811760213366226045619546653513528510184812642326158730592468410114550572102140235352236525864811077876953147596570426201204925628749865706257256148154716458716018944978484705276439231524463280447415296132858883510922102574883874570249323992873056179840633464407077295442658623348465479494002591322309443769225390411890710564440414880523584010462583052858250804549281710330314827325333609079743643424616823186587054186738325124639789973932520361476920887800799374535193079677413132586657574463965615445875774598560572885509078367114309948196597954005321122262558857974872213083635106285346002829008630728753023305653266428022261477904057680096378401213446001920670415096780916599020268541544262067113216756109951594402063733028125798847790760911058819165650357892543942058759771209359871963418340544957187804595496289948574718015332626120508967416025212407168270303656973557265239966824364595118174208148813498070160582017344541484358435551451734451369127799089338179536605921873819736151278593100033760330192601322308237578432298871206116525813623004111065387950792485707053254562030511377119460755078309378152284844680484466536396773250267656016732831248368780886371881957015613534025890409945104903082492869358004314831558920234014490775600005501117589152498788157973379344869665225503406186634144588233243336839608125748604106445758734903131303861511878480752515817980632820396498204799304410784031735182323807667864567142469783992641567305351211112783564766324470661416345365700580735654688445086695698727343709603049726847475744130055261587896814083380232250584118528365972270958068401489649766293997524455445200464907246024775021459094933996524025585565736673163908962834480860437727558038599511470775827670538386165358592302382977180983207864520842808479536048185202941305336643626333851525613635357809043512401655722925731717546524135747455946014582655800853581678389274122632618656271332369192665247492787574953064228480106278057393843377179088806774442958639473817263324865247236780007135280530986361522589330824773090030165386312738428777858296841177093191974913183173617131844605064636841764052322176836869791502986705305441457495110636750311667264867438568332421255178455075642026761450364702077887668093244792402187402153916410096549029564216955263456587646231845263716415345952443272293553398353659066295311771545658512236713563119474640765819209922485238187092331471618181545684794884552877634673892837555825735928524114532524226248713889110511491018077645794880127239350917410950011259060418877019495811236630220620911389526647869231942847136780797766867968315492746091045496140606807420083858221354542818946821474036641698204724615333992322108090868799894012295249463660168240244572152730943653252801456719895345638665201051883576845892192190412553242796681767187207867707071355381111089915458511153002411939666363784084543118744102151210237509184517357347542044060172960270070571948010073191999483365392533804451633859489665750770780463894466919832118980663914462128394171456066352702857546016041940174154027532861124378214901218410411892874610783470863903723153541644901865897473438384496980884032459687551062664193360800454310721084582026290954835092786696831696450420276077560006954191254593954289208313911239061546738334477931096534762430095218419457492276443527324606230140498895310876180487391439757552777526290175147344640592371689756120994076719023081720127866307442583623833698755609894843056969945439620974907563223870942974499382708453103793296993246258547226435169487123579764887558588637502379137127429913677159671643087352073049941025733444436495255918504870323518746913411134302025119750597611083587703478507274933116688711127942571685273688449621757023638828971308697809471264864963369820132126761936180955837559354025237639110901556619595040467346957571250735361758341727707022831505241850762307900761789805234317610316690094169753033708600002845055911507571890243666775385340112954747280021500828854574653687874568145682719593803534415151278041205699855095677568001750368533242099074306891890965999281046487357463849693715181143042122784989303872959150221250690725778764797590555109366905474395749482745990409699678832468290884935464355504663405328566634052457137821338178696252469915665964578765397806010891526953229570466505076512866510369520183670164188462596204455354171557694109677244499386426864840072353569142790688816556682521160007055235870248607889194590503950800086063240553231013334830340079856580777487043718705586319954748216617160396088182602260682505913240869860115620841511898108952940050822485178617835653541317375716492305009012057212469012499869397216739423101361572483963708322772832366239560908779402589899052562967472386701587099062372876446473830084667782473474763376152001229640094457976110244997980504030967206679485179359289854845114504760911968408969469565110440404299269680216159569928353347830551324087833082606190498828030942272013480294308411874414826198645778486167857952112685464443364858410923252789193183332589471636394328779471726625279926398415792781527972768804372478685579989353242154238820593130575125795994253644264168647604147917477395337036075398835619132785529364589597800589366206253656560519360227541018599248607024095762449833048297843896018307194270037419971843778457676417816014321277565263972217107880724895244003822029739519420748006095702449046112413081391073453096644201409745195579827528114964014473858396137405422858282079601335685712160189048511476543453947482746143487066120128376440003454977230877058691134120994303444042328278563738535470005444715433936586082503555216219354724252121207090351508355748884174956353919688882451309449526809255507020236019111772121970898596339638533127824033277829211135178200676712436980438890904705299419658823663226163000589955441837763782434019745981737296050261884744055842737957392297079929223577229430233543791763796453932721726867178282729525636199751261400094747675259406842575850001894227073333388234114258954306560038232569775657005443903143328789287280579380025981964657775939276222564562042512277571974879927621416526254901646184550046509266272647333075609601995401114169448730693345469247691744749590128000204721515140656598853208071793757602148083744600541296407632420340239784512543171127602740671190487788050075512851724453754595120045850437843904405448877667633381976932316858911264759881423085151212106791752038504585191944439299126040551978807019867485305470319849121270952375414436933144092092150967564413322500748806134465918769270996311316454629486631884079920695717605796439258091428256524176541397878833737125189710939484058406038612081411084960557338656496308757415827072722398317876232246872023435700139405343948400265564974349224619245423410772974361801707181105497004831492110038687132783989523912082277417278435997325946257890243751235941978376124607816171979809466459856737122182125081337646840621370763616553888567814219752217704801619321229125836792690246755520720103344877117224937914552294640552004350118119459431354449275350011794300964329988776175615212935029522666085986581337902351284021774079079912374713181677856130363000638349826764843332636991956931774682274708579125767108094798475244274544490681536354024065024678061844940441490088458317050476210233974644957182951510883756495144758474817946640716396672098548342424306536376388074435369377061973659327854083225438512231576957370394628588780479345559755263091194683419781579417888302198438423544923719379406976761379214291222313466679158318576799044902036062220976178495666193840155527105688134276444358493231374158527955679834933017676411928831562245063786179585044050490870471108895430614252717456873064475782126364151765008686968668652935838406680057378727278704612561170046272974048027906046388727969765354541201299222214872459185818357486698515300792690017697186157508383584245032824994392598307202772960734230584328520090724896888448839984422248764194992883312080782979066032057620129149594565869176416310765123359054603005754129599050112566718801846537213866884430733445286402499940978700726082537466205492925538469853338664068801452251995306678157336608451459714649459677255032618331432436057833855483175532432235360395892212851742504782966198592291615383646247332774816701157455399231715983602087187356204269541695694386100601597732951114199915140627468801185037667589084350772942996260433980753728050296671941244111047207300266656018506326052670474243210312341516131952503748317719718390936609155849581900211486277376246920724757821112054229957083586110826545891415867768475908612085993363493735209020434680569765105008269736975534215814468766694629626228738075565852817841428492654447945740136670517300058992993767980718445959948555489046472378475755967839919268979233722641951712294957569559336609133311576614290765254064395219110091534736180291416114559895901216424363973740433911035996473692844702399034655935305929826640178878844973812306442582061568775907292282543170878477235214519785863725608034807407253921195623446261193625146022420963960242040344695086530536334315123052438425574032632577324516503229764290675081175161989498678284412331541667795721471446458028816405299882873726557145853462481418867248750654064936771534368112754153087218579020999840640055198500830892436000921478596305492630196446657344814294308361639345355000119216036642280241701002465837501203391751754017642928173413912881653535364832361315417313173695923315217286337362462805162926236250207357204681389101141460847296459204865119324321815635689209700996885122403606741799990778183375956599785155476848419449517301559598352505664121858383248805625218168121459442238618329040074283417816685599886124516239679891212361623646656393039676281599558258170230458136331250880073694650723974598313155556331812694007126172746341719920295800403629288788051083040055515515113916864584304175190301245456840017102616737882190296614171218191773863049998734294007327098416540753599035350824662769014772037574149195203388304515020987199340343266203432993045614191551427506560809900304907644607227213569199816692280618103748766189972766545082389033509857273139747686544068152749647088377148629299646247293848457752049019043556814366145463648950361534255514288214740508791057185448613781258651782594273979208286322209842917082645349956985895828425628689536368841492435364887217335571812675848373965572134751618242783497774149910613959046033621770751329792662876315540952970571909493656300855129369746915659256200105194948803593327840138950383064250234513065085160153299974289499929627191660823725712066200809458367732233816155235286585239570624387909338541986796875702882484006437511602955295010087661786523008553101472796356524118483752854883235595040549934208233911669894363515169502701088390683117084012927862988170619880811984161666021987173161666529665157383487418051697114218026668190979747717320302559752285170413163383901471128284282246341961023437239055210729359203053567434706816176130140843797815480563077025467851325648437490179302320081412654690713587732004730485391852710008822917536615414477442001775625223708537873875714433475939965760910965052169917533371637464205867296173594141188526376945453829326375946120453664397058179984644284230752076311735211436073806576464058432810940260885426115500162638751120086033540786080793368108146253274849467875390557338124139929758723406170506434544225439156442654753196817215833911920681321208615269572345944868643000932461054601226571419815659241225381795347825214286714470203275150362170583035584323185724035318496706569964391309034626194521163850267370123711519825335786581922931810815321618001723198734917153976307102929367757768547320698395790549043367581154737716404152251050029442607400120572717184125214402199343509438358159528318361479778627805195772443670749562948817172940174811759170246093674346386463088685775824598906819854321239790509931843644483179657320250709030350452579488095686513971143114548045854860385030838925689562315598120453379649383324623552940832927797908674195792582153622036999267963269097146159191798010877387589671302834480568830616416733135240492520594629510181988265905888464497053392578856821074313498125702451270886867802539145858628009305196070886210738991710368097827501776046560888550171160288654012667223614676352034064705796218838344100019242706698563472659268676806878900778832756659828511045543982934088914257392905407543292008761998971162716075760449141418976631114048090965028054403993450386129218706491723433180811887138490120943122431522870559034533065935372138071403398857629011769491651424846394770527043858815672469541524106340944412903429943972901190501504130855089133052504037485725443817385990726848272157664802861083457651334619545065229452087358427457716614028320856119507630284906270785699964875854848088611867562372387693303182745517698957370333751935235526884191439257732578951885043702780487969084932903992585055462420937426639549645253121483321694326274583803249588515113476265821461508591820776910272614281924663869656782358892295015129321536541967379750159257049882152280115222743755313556327727781029499663281730720581763884949210328115681585031238545745326495396881276312942906985775084945963734206050737237600927691149694544410745111455922910263296751519875340569984575979921951740569519893382163529410667996320954143994270373389032133280027906496139696055436039514263184424697995637672656716422111969059612898511867058887170879043863848983380322235276038007720750341257691809237899607425316871123993569179228004355794581756207714985861211756298198091744976548940884132184661019369301226913271911724569805491050365557799758183503183213051340776165648683292632612364726663339872777526421558699889905388445294329846124381213022218902587656581766859001710445625571906348455879851685917184813354684163254988590635366448295019685918926216966746219952662659775080922725528386632396349475497197052732543577087528499625045221693021147886925328677454278250282174408007856873885552822979998641916498893531175251991984762670491753424923648569107093852116476599701207852065646478809486736811529372431853447000789396771642897617917567247220787417270702190465395021284136835808685945778929193206938626211689661001615342596618384723848244907013975499764510702659022635229509325291664513493689377613334622356312233676060179904257059647868603997303815866193728433920180102277715034697496360005842436753205170957683425051084033470533374834476908472654912284369044763546814701051372792728888039897876695025716781562990239951706382498774842713571116987507529863740900707801429818072517989289156453002402497594872529184019906415974900857753972356468365491437559605280281647448971522630732878891699052055694781126722946995866535088892633026846180500726028068815278854737772251939033689929933063564435908269556825865471155947909244403908269472445355752805633358939202610776381883641958615975387189753545270908059145247425089993191405306078856591315748479926626074785331193971491832304375242242035370346646116401267688579998387343298307682111692832876443287235243740164686404057179771036421330030813680719982924613103476201488391633799577903157579060285969685252456960092941755924621730980556004304141547832218014370024612078344126878987741974940748721215700808841129920139940165055701072525492235174918422151978582073711930713319998185724822159676703255228177390513886615009753858796753211227370661796457000752543404702564221137145317760019758086616073162060027666454389359051221730625142907468122877505177190403465998396310707145478201259896223097245859389641665281851040761131792383274359676756974527559582018420960173506176013430900429443525854425640924563049513003304652227569479288591480133516774455645610819162643562135388394892110130671960015035462403213941716313447439033245792109264539843410526141078797624531120222618849789011701614593890222587465555090675316668037032257330943381042367538879096151121425321499806056843962498337495090383783012301348208573817473463790835414432237674147885516897211348093867315745043058525620637094245094771207569261682297165491920633516759881316962107314550786685008482851514688468692800107322436074278156948128150574356931884323200409324655351381456991362895061201913819079616550611680970149002953395305391832792893116697893139267476788532873323987551096683133178859049467503376784963057999343423105531346245841517560893420339461220804349166300652378876982144781089685523105481610268386648983957885734645203318011658622619474403521155061594042534545862324724039238172472895062544377234422103040268971803097716099029372980831593370396590031614275882593901156229215000913663963522727995421355174487745749780927569581565065603894373232376898104369085551860108852453927724353933890125095013730503611749579735149451648773058421986461392135592619061010551309889368738789360379679735732530073328112410298450755405500674072152240068816308536487999218784167971225656459066664991650582590720916347345790236859453482822571865706721493324964871633751230259300734124380772003668769566720195942614988080913802482042842728478237690800222185511522413697751709589740229217159864455902159975881068963267438740905958397507143785080319122146992839686178240769771553342995373039300721313330996132408920718946293123922847909986629101368588510673365355991048754889929732865246970541096669616484262384540448644629929455070973379777092986931158884844715071031158529841539931137551447041753316008006441896736955317686615846041386122879732213413878835937015261132245782511607228539969838732113915798729858372845644324886916580514117041308182704544443085997568040753986156307684172071413964715230843484570457447814861478908012107768060519292203591553776128776421846198615877805209500468875953256366157295562114743770270583012765827884468873567085049503650574821687574499104295239832687015803216033128009431114271520027625456506153141846217955106249411286983459178052113905961454195742686582984335700968667396663662093041626020978443803566527137469461380400197410605496748377018215839794570129660743910595159089620632078078560655283646049389365211535975541417287097675509458233240962991956407627982984332823686741539567445616798467286871035833277337189224528778954450397650606918543713270014808481545652351564579980572815649029631282891541291297484891174389566824551297780597937266456488886230851336687388328217136382395739872082087246567428985476068309276532519601730966628650557459535822580685575854798277562241631690555802712402908652911424419949973897419961094614728061937953494770912391401467594204218164844215053440268298007190153462996434720526766763731157647130427178029022462209332926543541396117543919499354680466650913639934805306070597934850714941215468593089895215300268487857061601031870270569612919739860140562740548232106075135751195664734278491638356264269854098315380689116399199465892912793873299134903826346082163203080343334455996203245567027763375665502261444865016197342170739871217151135526175440303255424192811978197737076939255351948038964747548917998190174051444374961355776801795627117382246771982463581810443804398658562942592458421250592112153091377161259265162796912941414119025127013306925068035602944241707959250679027342781102968770909639984250711669484652658270368424643867412556027208056110141435308208269263515564820066136071917828534058890078877150778761432693425133021100056504468219749082924052428783652601817189580693762015843440715833151956076964902829570694200849590614344482852977786027640860839422070316718088088135472116516433262521352986350560004473603980180196769326064250247009598031682945027634412642994680269424570935040015246639322389302639991536446932235861570077257290590759349847102472497487362956912420393200180459280177560306807875778892480326802285277053936771101044547943737963508145269859959388840439227936041725678556046969791078406375370071445000945504984246954729857967048265630565708911738595940571006710523166716861448574050370712853164988991363915937070630620092291023270420702816658403346585924903939206951473617144873363872978606967985889922445889150565812391725002392255882121745617725376359752776333620951936587388106222921423339898244006820780893296967065841410177304044284094428266045035660388877776834937869062759032682164466053786503928114958546008746541507981992649366254690644815446701400760160504411785124333156464699862760172268440417591510967659317130521861484838411672450707733113945033174270415760384351907880441230335979277037436141000324118621973538883020433509899033315278887420521871374450371468402429920133242230527424152291381382812868533943698661624582152173712977414793252121096513335228522325922471974187631912679593800780893946163079789513421027313850031861723284476655156933733559996363569860766185090521620610631927887485422068339352002002262970097808131876235162629072532412168974342025906620424125857842083078588188462976693288495796102338697897152127045303225562129593628789815136075827387494152347939608567400215151958086808127694453573441887679124844199656311645557002782590313908335405427594375664149358843790367468578933321365799532274181160198563191667454430623247433232264285705435748380680081284227710312304025069659736330504446040998483367497485762376852161007345394820380647533133082710466746150719170022062245761564375857322143659301277475482167009208555415699283754437665907561627463202357585289653104942336399566649256182268681247484832474465830887630367942943779935566508539417665740972855315574873779146619702296068933532922840668768651546550434887292420237591332637635817354508512795065500685567077138305537924846758251010797300677216028641626709556111181683562002204200366783631522220880989854064816179351146563018150436976946818303739809045478872045015699364822365186316175607482250611761305816251832317079860094959670739157421401038676595159303625774748655837355127073709559669797716619601582152657464722695452885427018386420512750415964307696640196902676060931864499530494959372957485724677526349353350807948862875593196027660435832314409933283900966969527959349128945925872887944543401574893558481246839727574848728854152294254105917387355627435003723538453829771105756970630018031217964957325289135852982822707842580668711282849384324851110956768061131058656326517836929190928278737496798873705272328979613412684454794852644024256599678973954593543915824232006575666701788446701884389032300541127571316560297130593339233139227326786948244461364831335361348505986133607639994870633482751285434597807032056524801398186570118243733710671677518089794170234106993863472023954483597155018575326957060007218022732272004102440502620894765339202449844255357260155281331547278482819487013817846039829132703684898120180049659664010129018463098321477747513920093329419410453779378843376720571690686902641046890054138467273853100222831365225829243805109579866281887598048515731849763910821119353542744461664267615719962805468630892464552890839179419641718376909977438894744687645379248052783631525182096578550833927499695146891401395273357239779733768652126165353068291153027003001595093604846854081118732251410741598858437089776931981388062614434926081766723990756220753748287664912034837863786856119751746050948879761870448361311605483620810601476363732190094355725354663524704566504810752459787296426132072523408991818506427447100303939957137375086556848578811885097479966664470941471249937909974977975080475676163899414949560549220412737001890722469301795994137255268468306613140955552428191901111914034446230376667672316372558326187869967111976865054598571614135747056730891796637609395595712983667285732792355204096544013398902031060437275068267991877140447479880858924618271868279112856058263841512404203318291799645691400871801260262716644280950997814014926738443625225507484043281342152019299952403239190871614129921866392618573396004231670454527257353305287775112279848764657680850052715933149438630595422341747630975372865513916227184426070025662461188562289360940309422438040733192213398103490087733907988118610241050417772987945707474771625089823280429809047140276789764282080518352240879260487157218850341434779852012142238259335631928592653481507885359249061336119703693535976935891439554988328984945687128750880124216734250049418581257524684345162525372265018098786893096386208714345340721601134849509678162941061092834448593180494508338431144822006295356381728540115820628461720011034156768117897938769265749812900657687956711270715490031181803276810404421987624952496736991630417715160972520517431745705909696997763318257833425395467222051526225583171561849969463723215143474657802341817804897367983129395530754755184112104741120392523668263049009264593936600165582107497566562751118429076892596577236550075833282211912178517619327041167957357584127140377310199683562185214435150714026317489843007192471987181031547812668671068057229144692552117182691313351407232080986205043476496176282928827606774254598174025792709088141955850016344041797383421259084376384813051329781183411143153287127382584627618036197204536417928634812787172871625601838291043405036527610555689363886291442563415777040335214457549383586674217351438150060812833712800362593696863170935273179581009618505279241358538892249983187271494934253985896602674923802202190347494991974874663181340589096131297598614090414614137266472353032869289516962938657540357796819649874362510804163777498956961765211900708150634774744099185428725566087221339716851032063144828763420150014375611121513936899930328805154054052475978955488379217279901645903611432986199157034193676669552520460380136751392718255923521575489930597556910814622829991519067849269370168416117915432504240163748136653117434273118408174822912366177295198045191080041014998173022144569241622336792942414629742730057464588392206112341914676336545217222917476911678103512301149335660589045697681621581678976695233752182985873894140831262793051038761824103695939218178552058704082769846554565731260970064928425033560213457233897266040215204612295428766671578506329100878277199852761964662386952915966992693131412539379808627377899797294404557749135003502859999980157409540981623778985159430539643341940507150644526053918045648684897001680290711002436435150190305921774007357611767641869949196789705034266501972961949494555900019842885252010368807061101683333523847146327271365484259559848367326543823900964326820687430444441610340961337643384688336735856795824035143635341103162576016829755755387391371569354825910442849091301220031840418483342991460965089940262061556674836333480313302004491755529439423292210416865994565156910687056972323844410739800693765380744678738134895287212340470003426093634528564124896022043188263096075384396975014761174971029238909044819615396837687757825514266223322164820779464050171974851967405739024855681379218074582367723543828950665111418670917026831018039239814128864921975696658185722988878019260818714029487698452614768714625565713216427029859175454752428737908670958628220905125993232804708010905176630940488973710224258311314484235836346338776203195552542656398564824899511799849513042126111991422947765463742047080263145791595318625475808955103770396851544617333979255363797206814977853619135181024781235050370293607222731129040730271920481856200057343459815793437883034839530441996909016815804634240068333215827057178071977226557604404591102504426909303038818752017343594382711042654050009285141088585473069328475617221705058129708658724925093459763387653467386486111980318950949254345918205481417489633247578492078858315082349185970074715544436363815146493340550850495307841409826564647577030018638469770622962019881976798519057152720933137428479050915792314432898914776523448886240017510268989378549388591971746131768901836893212184161290380134254756540938796220791175064097481995040949366148744530877476026965979192149481474431566359413424529692515699648646043639004000139717671865973826803764292877945407915602302359844122995126957695129829238519875969799938194757849884955341297722013340698982974776243393482125806711067439961607675884022501100833439410382610770428496264405647001514151980553907871004228024342723488214625606111161127178376366209262939937712362439608690954120271719594706108828557512517845195970239144214833398277014293464530034616686283962690649095056112410885003301406746425077140582957651917337466443082608873041714399555982145243583072145523063046484312082358562514571474200557536805309307276794639008702746337363599393201438577210818578230686107338817677783377691623496403758261282892293423289700661294205546577113847946616807418077847965618289822602550293974242489308481551874198878853371156860501150081008094224757842205189937863358592787202496468340768014059651408371521821334187872323491396204842532202520120936167987301925585682712080084904173610623637712976557912105863269251399404887563968925568095878041500565541157635749088680587061689153769729041472256476602189638264313197621607586521000768800701047536649014372723694496579348168774099164492622305203585303378032280707351948412169020800051405196503273331855314952775860280609329898357184343359486607792681290394979936639553139150099311247336679653367318630017676540422538530806885226467462558926760850736190979678839361121456884287384350355120160045986250453068276494524380443727250962429231927557042112923428643478968110864482013787250214028209326365977076375896277262218548319864907067088138960292863143001866976177675884727701593254926414259781352827941299825202080343862370445080713593032887951813864079213561277345095255282159976781465750446506100451936226718225185931798783367037059140258955327687019289050385416703484873982884437689626476698019556828171592109616296510762738190282738659064047459158498445421431043607789654584060740470289038678484244937312769382079338276537007802131234346921791476983924709776684573519313643197226072824398499204975782171921242195136341883360689059587467341662504386467851935240681285356604241553953586329700762835115656824966537115992708194880003989530797451953068920077713511707898373652451444665733059228441680419285594227302217338063192966557481537832724912720625708158028932503414061768070735390526082426162704119978610500314673641013689041504053601821253661384583872750071202427514874210599591836994643250252837906250761451551936587254317103727863438763542667700697537287185256915791809774028989565124404136779874463040916895543913602064737109850677540366463558806884957103037284217283749770591529146022489653691070363144271504149609366401371091692005233587826703350035158564361618524375205973236728689592040353998390624655750242418063435728250962065919302980291360488183996690485497597546657628124808900772576869415987159301720186686716062758871141754139417118705439373898646150970838131525880268023777413766986570532933292060375739982469924244995383805690020502143150726461781266518706572637023049620666392632534276851973835409781353709691362469786122580761116158097217472543899523027444136432526956496055393586522137883966279895821579966320989617510832414195889969573374617918175027032787586751293311509919647064667868289680026838423664830090474145525957257434429511302460128241516017670061921263274048042245419330996847949796371196704787563331566976398837990936232216529454082985590215458996411112028708216701110971020657367072511192760868064643078842317158754778151300464147505847199681158070182921399951729862267890054224200202640662334050799312943860057330940087472072814732080454322644018053106072379379130006854521168685726820293294062887545647497590314881311805277783478175136823472835669318241620213119846410284720978378940727179915115417472503536999029312142054561704339854665550958417473241637991920509074823963266307317408885209229742003335370431062477730844820529283413943992065218228292054691119447004537500919937430264196059316658938983967271121326167530898777555090008403623831573148275571019790907240081893534333647111986897115139812245501083163795403418523011246774692493983659160746752403450318118068493378261601630050569016611928162491835220910400706620337353998518089465506017511875003273009071909603596626691582005809638268929359246383046460671017795129754252964904052430443070938460448899189373291683943017207816031520477859752489028571496401350514501354474384684043552060385605801686181639978113550332189748966378542649759096607129759134952791187940453383387368690882683681981019127933220100842187702322276113817003310923683392611342322683907952300256774078182093780879301055041159452749971141698305581804926333092175659190954632680028777255899826470170163306372613440512700202204009422669378693045091382936190587201477006192432152073360083157754983173202538216584143551424579372494006321237656630267094762840188402152783423615317101460320363561387241794421996749976202073264290763341991710412886095761382734925317379577347591662790622490414318939423090250860242184902506086680542506027625379205649203310507170414966445576920623536536112370048357805492223096252249652922258730297817070021888941465640338776092676436797819114559355362413417737112123498977447089974992621253459307309513899048655732551645198951985381279593970727792095199436978320878032654047634929900924769571281062644911411775751926900592470934522937462243720515665132113428368717100350450848143916508878354878531135918068173769105628164458423695736373746832531304635264391225152228102896695935379457887182792191827497746603721502033528616197522105676603816911385296644867922172360672309953756114928367891009584085558866437225754147605214201049436406313853538913725887730049942945152641226543970539947547364960872774643894248782474338502570448754453793589424048265183559208583775100509433443714184716841856301434217406183038426160198785681184739225434512041286843728056634303671533806718145259511272248072645697666161299487554977805054394406043563988102839860483720572093182104680736999799576369326768637407689662479077589279755176351472095032969218864230051561910112497639101547466431573675772780226312426202447116237298693562855697806095651120586619545848858881809265609324942318329301481094064491709469408643439040207990382433973864555813460266942769779200640500753534773125072495910097601730735743014646191934955183095574548023264406402868636311740578828674807820160003523084336231117240269184539438627808885374365384648323945767476513488740812777556699093814935507940110373044499040771070718472600192396887753675315531547123109408258636302528765811674289815090264663267496563741917257769449919101887395435661668019283707319904972093388104594093726429461662814157825982008761292178846047461375210232695846986500389269181045606445774586977870418841751997093488792707058451078407533789849041929823049110412431817858091995831193610435970714493448948005722675545159002179682435150865539414881543941354002456147935963671980830128609553835697928661714257142004387483782288918243956235444708819542331199914552864182258902694940251687199305145629769950771133768195942862652571738989081703141097808537997889263603396591048206369835141112884615112113149009828648738824431129638940879983637530137770234517397021130041558962378907430899313406863165150782662302157769619690570681499688920224469450368326317917057101930519301211835810686380177047460077708844907663498750836344850528506047441119041238231457124520007975324328549122919634697974054515062342207465517357775547111667308682269803648478181621170757422012632227347361499305940185575102861369389550946531583192298218150424014648529136097409929863613513865477482907740926246087613586581065298490714048847122867011800716671428653631718810344135339681838611641575896588195439079320537181325272912167920108053987190931856044559704135475241266718583785068584532607854404591113741822022448343538296483614320769035764952362153870765302087940476970765328553907476774953323342713419618787905717760426479534551855990841859838760649325732818987636178683330575016843677575663450280432924725218052284781111813301257991975740836762847671286053519537656072144270475797964566017474715059624918734681271497020576961031518355751806325040615941172819509671121323871009043342752288768678289462920820756268746296676308601694467920535866326760972555580392035125318183987272348077505906940267381761150351258094362418600910857771542171518634891553579598053929367008764831652004042054575076852971122904282814022900590732820145209022458030579946165031125687821447485762081093703584928048284557617268463708582201963593334331762596388996996257525296483244539145356377887881300635699354113842782947083254131722643318998279385272652751569585947264702882743389023282505288940821567066831937009371668439198421676661581394685179768004241496363662983728713499718154260301172003889779622500373057798734757150711597501631681872389911957579781468937641368272156485239927992722239179617661821101886918262064838777306241331522147267818006708134767496850593507313713888248134888278630067405320481088313357221519282694642168482376119256093193966529788260520966298517246914080193999231112060305647766666862988317183752603720294413323152412638679873135775205551092117464705311230316970063985394933281758216205203796257609799513773424021600618627813451724380340049552703912204968569910060975184934256961282904734787397415345012996423051642857536817872766779832890116772645413816311271653972901984485501961331733310467217255227185050670086899723256062185827032036458712371925166735784514820530535407412704467778567378252259061557267115008345261348599495755894262216140073390370067198695701269708928486610141774473702310722555431491403005597018325854211767536004204058026797940053179442520257437345096789630418719006613895391043940967945697542804797082640228976693564203209347841453794751687118412015551994844738044816152312921523216819730608496118605183448347258580959915750930796827452499844054129565680119315281894982245387186241884327557772921327694405829090329688992878444066596595925295782457636614917812083509212251661874392660721564233452474261143979954750292503387851043550125002338566238119801273657685462971144300203982377686017404219054557729389245375361860078134989013017667019681559071692776029110601295554382087119276017871957507760655524419233867307958201481646149662493522227918381427563851701596061358622808891958515310368402861604802158486422418653011897733966499920337158302122850916130045505607007685097045703643700587332651349461337020143061325676659188727833963869180871748200140785563705246626705884503798631185854297910776360459749438790683261739624665905179179663166968654138809928950952962802432376928887126278025078868561224050715515069471928493640241260701742671168067368069756437184687450034992039695841260570131493332373963316318885137231165267098123807324650430901435060994582275751817563872148949960482780913391020898787275914624135731451369101794000910901547560845442448343130694023331408458739407977863944074286195813087707390446977747718300530789080069031472518028267055190576840514672349467474384393646088281145116072427133451178561075752337172375425555865927756522262013030990477151175610288448237207312143598729402391007258517985395293131752952546649666439181625565615853870903002545268149048143937890388292745946845281189945706506288543979601348102492391905285176489906213581896109390559872642418581423868563809921947763976921992650324089120355249181675636579288941906638119798454039566239669636297018140949983240447594604629205708567710128232127153278180378670093212175383566154343076944616983301156999941171728683561737140906957566591560184636416888622262134096665614039799677061148840095580643854313952484988034273236480699636795547533163137444584880658179196944415084108720204015936758819929698111324916515377637262020807331559316115226119023791870688369971674009509891915211616249782973986704817578441157612030593011607158686768934228040404202971671936208233663564038809663323477094943886171048194130647150653214337503697143907596452693723912958174085570045828181184063129980388270399445209317056267002002759767928508085387579647333961207972734141215388343764467558589438127178133079764054959448473141590368763438917019621968404032421305184529619390681958945433591113940342485665007081254310341864808331131834519125753020243995365329338394950655279574714831610158566221300818285539878164816014962024555328827639124075230417604720539896473244231829043522925229508607376017928529645785055426987987026501217803315858626731618585934011946008944538522670396049728172406269965862775159364291204650821892434285866589452565202350881941659776830826620845007689909537645558871671158749367034139828446088606361514505473887552604489154983010036140557918942665542932172221359540854053498527470328907308915462091846876634081133847680767279680176577217316141615789375898120569587137971054498475884047885746124838286906523703504100784655029707379827390457984226960636284073481403140311187308453536243000679572397876649438953839723593313573472942409906535982695849897136802648106808868258873192010968528078433191743457258616717730072653592718078567185009906393420173838155586257358082579460413660624015152263942040903646142990033675667960354317682315546920988757322688191212375190839825775221047195335009937001866982515416324153808516270262827208062175799447278571235934908760675090439704225790927245729500893749758058359163926413015071503843850440270656638129749084118198239219001976344038538356465530450007305797228324978447064210752851092200510855288251627853638099969522757925114961175957577312942775449065154776922555382137816355340421066579041316311935112005676494071165138980417893330067097860461687885235429286327299072385163262435292600812951492006902731083977081675887999692684890415360654378801960531863550889643943265699541937443989562896263182350627040925742565545437198535446890986834080251988615631711540749838050990674244257604455942369733966697683993072273323830211642326124113324665373524611140424982610624637442987780043363196090085743808293945180966754625136992853398866814136734516399556672538793252986176740819072962740325868759601603009193316781080484540942243526651480190201267936444524087592036918438765514393957037742887510087365879304214390213869231763276514705414428624853052173990426393335909501199598295848700391768060157291772648314479830005351633707852098146193757907814957930681577533701393951923909480211211185357537132574615901212503334767341714499036402175241917134449846794018750877291976868576975717194246536681817420251037324867716171791153112549774355290440757802983319548428550893918621826142456768141040049407600043256924121012218414376785420623708622878207110429901332147173248127290947941604227964430918919101468551742009068863944922469505031993414804272004123508057515389223635467366396284048180824657999565778533321241962251661060969755927067224959994141840194890526546732736378486527709776064457796494985846617677231047046807867258554803518432303398502480035253550559226684188837973397085086743418994479099038074118606934568747909839071475077011959452596882013644744974331939331262878249939595335017042970875341208115807783897707137904455072746188466038722227892567027423194946374250294800199154599423769043519858576640058631564535021832679015826932913122087262264563569935342973953599904127533117680710319817547047212080051542587708751793197998051325838930886842405138450507843800093227989323947002261797940990959558310292149137167205546119466415637987139159359045201310848923949766403025520801686065534734420828381787813794610072458224596183126270850151509558885546333851436690912561302968328896236517019257370915270105254745439448435623439391274789217593166261438774213634261867178015375430108143356809320682097429117037609351670103852628726372018694508392273292075289204392221382585247307331959102161809195606263122618529033645930153682135664596711657976622971010635202707618668500530697433145422759255823126961783618054833140503482156243818454688213131573058144856684574403026030497026202789557656750987418527560399354928108605702178621776096922286124297174583673304389924481462244783014558545811390958499196324744368043065550264383488589940349927586838767410487471313396335512042728249059825251375464835480773582021963019847193709172608907228711528240550795337944411821963237939655365962657142627611915802823357438856571725230314814586223733589342955896682167413924654834363042508164906958615627779644438956562096098541193578685828978053620718330118738787752927088180711889578457925201422968712824216153830683370111249251558489597081063367389437522077325222623907452210860117049288166153216476147081398563466130508544991544471871318196937293652309149005245926529036651418838466905242905782902747060915211472152871680523107180283459429500885310271095335488759941480825169965848086003577883460322927700221044717702944918804660314746613090172655575927700829260480055444651193696281024597320514935442260127360367883048296637760947543393985315247530663014873891515461221764153185001802136317957121817649156750417707620760897510637144699520753353218305510521076554901872016588507378477770651691591743186690771163413572214262561081157109817332102913835657544707409799195144299502513531540925677040291999240169721014546077703455275813394215545583285805264375686809886236198068908962264524161690610454934817617786322914105692566728195259891585119232387398813085400655059628413607571121165689350151093758642103303737117502731174553974170547786565492175425772299487468237487789000103189748877428285056194745374303625647787559170701600742876308834930701818789224714809910065509627357125891619384989521854632807027255194499588582182208037835712831083112946355223367870935043734277615306590369734781732148546499429240254651146800083562238011518825029667546738390033030784766260241748632359135792538455530896847721592641073070292861141589271236349330736877286521783722898990193868803317016636896875608441929254096765105213917808944278091271739869338981703737923703420406803157323248867810945760632986930626951288122166460559953725175317571734982862136695862721744583661643104495656591791760345111911781589471848648874624869187441410713403612751221925901599858553806514567120295856204878281292142978844667351190751988020035319060219200147518361958766935386402274230430213630253614869234071706964617737043096037309720809161116664027470441447829844633457399340446665482896404310787772319471291455459176454873501187967663553430380289728141957541578422044293745191209935209646980319841745301384384729901376610587919192246890042014954671245320793884143352852717107144673695988357692345700258082793767702102776530540391673468085120721463132011577940403725383449151995163002409913666105794709516717098778003253270886075245835354299348502422529101578140175901892219271298985172087636508601829001834916149025163222361183373896008118826911386824970412522216312347370990918153713586130780483823928268996850907459243723176239116657730464116704781851148297915872179912334361064542621510487818304170756382660186277657457062335200497673014900323561041333372631574371515511516770022886154888354031292233380361328110074043145682406093094023264079655304644170019982973991132686281538423141704225453192155201819385841301157135818684004404107238157733002912170356428623824136614120117785353280136925626030466485878223242491041411545980012409978057637209770850233361539921772197539297480166570975537935870818314569995195993458786225185419475536044314503747760114117365872518034199110358614114352713368109126899900756258378466932283880609977862745480366299788212394881229805992408774478402158240366208877007553322508126469327360521765743637788010915333201206362371616660930056317912307061017742921003586108877845206995209862411607434577186698045531380877697283311549509715434171264444092718473506102185607159672811793120364618975353082404128435703998803318122263279806899509958703705485141901918391210559047027307586567041232388567008273687825207026548485398151514070311876669340814884533375366855712946942930199518087977620332499785234287320117496115336913243963614132307126949448754411265366347528513752460841304135733505231242733813823015729518614645238898365582280773347374533371910510322601458553474001996466584495743400537109678821552953781060892824387772330119073405702204263651259461208079439079173302257953330532686096114342466770656551919942784291178316184746633133876629635359498291278263717440370585490575047060011076327242472874788812458054255482687691247616409013866360929866315389418128671443099966795568826163509140758203351191891082749897382548965678393731942500562534826505160087226736466097071474667601234209490382714218329592349775475187319091823269564258186918163247614621376617278998751879012886729985981549098782076322886921550786446337290553820242215379879138633488573986923467902202351883852157531266673342062348100681201768060503475037445872753548302028324559088761286904317182768739280174345558599081079909045447955305764397733981111700826132668968769487342906241697867802790377584330298983448163108045957542794205045027310459023725393848663079895643866352544557694278138603793426683094166012453651781622662424105430217123093264617876747829292693050762723994972850719478828180323933178820214179638433728609172764651839312870978701290758586392585906950561752509823549931725286684119597115333630715199233741118918594661985029680382522704116022071328840882367667254372430790615740569203039582996761088315888371990813907673927073695013630857622503660000204931041309468040767551991912069199395849317565706252558947256821311006363542143894180658247450975537215095441205435328864793514750034182534508400817856645289540181809465684059555450418206329592505524799680097900861266811321951809191689489895594047466247851114429067622111214615512158457935202167291208915092806841434914279345867184506511157162188550072646759037157144966676181889281067906308858662339559566677997771481298983285112040818830881435940286122423109238342536139240867071473697131543884559953717418384389488005414648133949434368407411620310902100624414180417427653494003080471868726876724915676405323938990040998450566068164781584279556365174503412692045446096026472925035529091563254592366628364564228365106544367393760475628830401935240283040833058582655967855566962264184902353557464740513147548480250373568856894364892055428091992965159183559749264606896500347396700951321596560320601309458294287447723043407975286462058253716841825476404374262342727133462641362227280319292345676451466579708018858710340898020970690387210939896438066181089148637113556632945403654274668236143069927646012468847170108556615024776935661061585537425985227679413368362713801345385380397035885816874869598143297638182875609116960602479843310836697224354074172970090088173005170840405352884746416839963605884058807422061875274160224700818797001914574048656488344574332562277037925377383361296239428845429512769249327407078004169550003277726344576552193659641678370738325042746936205648303461782869213911650282386027220428237988021776922728086690643707227102568267273071187465741145300874681614240394750855997187424808866754057479286889639787395682021017828328601298539010168694610120033084932386175540671030656196005982994912462238548849596449309035753654842262912571805652201019113365579650753735796987528959150077715953307564493816375082721153879000699196350953812359753796997365974595559839641878401323542708561210931907463960271123652368733217260547793167668638395301797662529336087258728760336548976936806000316938286972157185467597383522044946221515614469906842241388982503356112261939909913723680921080131213462657584440443807818364129107992794069611491304442123193289082148027246595406475026976370735922385851702479573331579555298361147407948723471936379345952786924414397489514191008969720474703923480797523564672907913321148244362036229852327135804441156833840485697711762910860014830972594576393622594183098612013976911373162577935151329103869392751861692233057933664292465433778812137969723038960661099873330769627782066690054254676350771320721854258949940133675192648362455449466212941451552842903236957696260329562490380980125334985621294524244918525920512526449341500171149250513200885583804784790382705382307823915570554990873154665210188821361993187321062728143715817121648449239023895787958911051567736645926796670006915636304104224751589697829580015955008429525471166671518001816931887733400555596996336957452522027516367787430265979013999540318488623583589805691223261872948075772493452686044234832554893120420045337938819355988915347488547579549539228005779134613525829137763176617712077147755739473736727141126193092488941697061791242283465319416954387894879618893713079081369163507641704554774813615085524151043421084095259976117058263476630261889347138288895742014282474809512263229735173884216697397098086399181320837702335616081099734389673708523171608221304365456047210041303024524497833957974258147890384150272983024983806454223139503621763212441267413291678962779931673249498736874500897892525873152384139636599698990107538743453740724311795518099246308037579624176630378380986473070957425562430235404259170265944855190945507942126382167771337760653418841507972628722188054952115503328750153556213113394178986299172002369160091964436151657387747110429069033928095402708193560670729070863149767105578922678332136888349590590139461952141633074804997936095513863251352037381492193040536651485595891207282155837672039452978870560853314263920897745316779819739953559634428961081807536101407742156534905345147798450086352473942574998809372264174387145757350729030674707413718823258822781269155254902027992562785903185629997415772147810476493132834586808020012981541234479826880527603193965403695693349658417323964338114369680333481312765775959395931182536254640630795640942099255281042401791680047236725415021886682487215174015428057930370170925548582503704284738878607478426007484090606493919489372202127747740079499274308991243430130270188868751633237887241825973728557642905050565170315916366521009349772240236456453549750268692317731292352080286143864960679512507004476815247500017162492150995200258714949748949291641021176673596683976682295791503622386282894575660254752130998704839374131781440518037060119765962321836367804572335912007960265224800724345215819294747019093537926407852411756159424981883323774875163127037587485308789972575620100185899420346988250787846626604912890794720108092296307351743679009884434065080643194197624272946266006279899597168138435109087384976115975730142634518697516672559901571919831897167611923712587499692912235498016790501131852810114157609946303230870783098513832146203738209937867385305231755324017257052475640289912666734989805143403241098400269230619767518882141098317853272352057288026854762525765624262703611360219225211753643060293335730349001585834474833884347534953865313686770844802487514456202660192250289740995781725680266746737534323381947451492998055033462629951123469658747717597206844194985281766483893845421277017480267743036883237538288503408542355837029285945925444965748212005524719044304096901755145777168399999974155915533806721827501406476728636096103307692604719854147672965008093939531024943480748960137442992921338538159388347903261094649615093152221701417956558033920661450103953313671752761524846825363874743356823222634744952931296802455052193878784365961690543141965487631032711474934721018671811578801471252088171994757508181106592778249622661751376619390192768937346066958179955924281873772857934295218109643999873192461770600478883870316795343411410508634435800000542363685842162957562820306305739477069401494688662944576235381573515239445985761403803619297810369369161253431763574688747273197516245874780412037412072991615358386867341785792210420494554721960750481038658629266942163228303388972589384723228574179573914005095690971306689023341710367311520717103953356647768810000628404861970896091850647065478839180839795780723187596514716383486728195304321278053013457934547630082877088764742297678024723195936113143946054682012117387489522601729879676673573857103124319951058042105335471601721501185090122645683665303548603534163282982046069618568083603893422720801086570960351399665459594546605473036677338072138821147246503344977493346737974274611841790312379789747880622686306312071644032719531183108548618381808505228462761352438804497211774516876581024560914019093935192994785257868818164170764994843190500881211808878460745356653069026847057695935722045283924793250680430431166687561291850711589213131802085419007152390067401144955427263218821061584977873442791094308289099704143533015498096906214230885340664204460233974800135227974479726373591652199614555455365520918100980983121142769539973818616371170909184709398440152110640173227707945452323072740482443032887645360603324698685132082984610971454638929146527488469437030541415542575415155666189081023002320113952870737618241869965727642235173818864698197278215738983879842964325267190289102322936473066174720411299935885876601638874624954978130134152982534050874179716197108576910052877694505303723494541725973411407566992022464270789061168886651141314816387947198390822444343093121669114000387934622801424956580350212951493728812754541542952155801187498214730327287290873751006148451863637411131561950699808768297785118664596594315611215516209451410496879566558136068618947735975296556512115326935354078123119715819055972255190253843274721788456058894127834809549910403576273055240478892948886479130095324935410181688079512554159328118423359981219843346443404935835206965180961114266389092542952630121911951572009915045305678065518250910784288460146502811106234729659283993343005423686028351646345755664771807585621778458869535874304257053686807330925605562155815232128994004491652261265486467372265112904300316192205269131584181600825018322847464351735774471701753296292857291482075232170988029376194781182669814806629238704207942086240218910176358020409645713564390221514719508954147671280561206678555429943095126767772499929088588522593092395523699881480431109020943046965915356483384092691119910848423855800233330386417841062759346106174965519184802689783117099453152945264108652777698863767017682328579201628038860219018155105792352686328454426961456356807510028070008663022539211548246562280499793867573144155368807034278033162619938176089510521178647897848817999450371417022135218678666997058791812553658865675140475976813476272580990493902383634076620872421478509928853651219558401278671232109631770478405577102859458944449465015746470967237470970914053632188406446902965898977256683519689116114202541278522814792491211474782685671983430255464109542265043331524831064420133396993708166747803176768666484707958744434758019898864926409550319441058744263471748958667462227215343107048588675798012460793509110554425095335179379401606184146875999519860420312811214928998513759339941505840968050832529053446532776780351175856589927073661025881948231829611070713629115153459740563073709496351949581846294336813542387754806612961316605734264341743836558909203640737701526595092399714935988556249771481784246957825844784815197023573192983309106428747937077639154937205842089089104414889933785692304089894243649141354770958383962464749878882245364056779410573665139835862187104434327914509303923268086531930896592074640613528552898389636292896899400804109568325879572239160027879554255276152356440158551529033881725109860895545824907555435346519493101770881860787108529263825169061932485692414479833914391039419161758312549316444617386948039618183865411710023885847573593028362817162568750918035604468078022804760447776700271575075615318488241551576248107433946274693370506886493338655933259265971238251742314082053200434434142237367756826244209786548149235665073859053115598431116948985031799296853077505589954648408226061111075235512098065841932090978194990568731148998883846918044851950613417213066565521876391558930391020402888926179273834715405902864063397860791851674094708557267135990718153446650047202949010480896506006027928818197195198833601037943683162608431483157559991936523562178611070816480190543187857448335758669971581866772104653299317301014725699768212116022408406830644544230466116837501747487200832775251084977026053714745861256328622997070212810162247356105601314606816886735678074150319827001182868040944293145687789724085410954219023174034786659934807818046128862729787120640005004933738906002520928720651775066339716404355834177557240877938610079961173165991789457532045758317968176510749011551804630045582996497800548893931256780921500783183169759942846057503290114869848551988653623420157372303394590131334111672750482002961027593466201432404740504418308539655536258621686803604777401124089212418970547319119900744173901911676834295023860635926642503690997420072540544907478443345804496239363676701353763770507026250734067756680982901242155944277853312528872369126997952191685786804718684117065663166083234313147540684883286118647482205895454225071736520374202591402002474671011929471988769867034695827704086020217918295926526801669623180585659603133348703320059850839258125267847847975581223685108764545467423244270215614173622811586684652061284480049239164093170173687614649848914433590257145605411754177079957088485700801727426833018221183459527972170400505564564113844956717683570007016539484662615424329798825211138565674657059111217326459564877784732494155819150916618380126484998528974388567384264814927548826020234106877664858484012376644235336285232432373820865626481655628135728176315558253225889659696577036155217078856897111133520661282930390785903922284641463932744486373551908985376608936582327672932810353186898664203311869109146767632438384913600063193157159645705359958238029967137722637609374105420073687023918337606912085781793704454887278900558163047064508553215682824079447296164747240916649853930908637656693329039442947442402867698189495424852595779403027908453262221341482043434806231389447309302248356638978679301443794675520029846493543257026575657615101017963000223632832227430509370585220153834797022334663814758631119537989982702763383844861253809829855412367323007322913196501162584877333077921043664429568924196933288459137134463071184069718794754685149692752424228040859006290757473791234063461804004906033025752240048870126140988559971765721947483653944804166369089408923644569891214141182639976124103997576401262933624367349846126598051463232775661129969241767134906872741852600612689009110780823502009355236553081726960473726066085476975337525916746281525501326764816449228042947836087600251562572163613293948327423814027976708518568715049260049981613619464057796845990362848802173672940445093579117540521043230857491298202465571106439629920430306904748844010640412467748558514685318360381671723820857202072323264507586380679233812967644907249638404927082765727816540081953284483883377189881912215827349147909448727333169380500323436327475863184883815332744336984438192330130814896566149493087869243715347689609648044422317651974449201823897343422281638077215932282236037411305753592466017831142646473112868024339162356287105068660686867883913220056817510614722903198275780834655122722813156951681309582316788020780208543760364242583203841936852003418898559374399248411642119195013406353510043219912459171994335144341220709929947661890694674103804689473583606880271246669606752857854306884244795288901294061108321974724809512957301243881699336358257192950908500656023175287374516410830196511988472987405303957683659706351586755257506373844725658099568839394849007007318093093248159503567628928732757645093137952887957598607512212084504474661071225633922627202275503874850923395412166114473713170270796046690329137138653465548822882152265396393244586618955600708509733034591115914084282572134555414544522674418856071158876713167028595549387348223021412054046887302039469086387635804447789233532923377636570282799472313111900671318113880645510216078475682090086634368860190305253879712933642751506527360629327543298844347448724096731239612308075063183735880853122098635778951340275590469780268025269619441095709403483931409657458666964643527741725148729952102830248334316461876663997011794337378659517763581847428857358872106116753812191629902580541767112168641733669003751492413226692590586645995201414045360362689534057031371621825866034801781426442274120548815297176508334492489978889903325445205199583901349662968264569565082187400578087777045105225492556061178410478393022856134888853490634147108023671702438030407033811914531192449742651421870107843908478960677356613733696971116532253941897108794671769539439001157725111567899194214880537012078056638105223410412533886680339152366039414493009360540233814342360711454211165149224488173984262816079524783132894421116810471244330514081674877947429530319850114223030952389281910426389123885016824710409759098394297714382740953898542558256247118490521698681513146443032034541784041915708994992051965068872439747508733200363600057886089476056574609978874153940964797679174685955314606902175682687526294357453534140740613392820670934906094110626800567080310645081811416929624434960344508176809298284565573032940625236553590651463196682633377797018750688730865656583005238821294635342094210148952325497068337326338972199987612366105845404930773013033618104310786277142569440009750863282794808569793082924347355076411846273687608784265118191361343933633119440394496893140735929161472230925014250016683688448579873500812322417817349154155662325645528206908614295809946703155750700605527327724610292090674603340530234909991067310347067582268492762151455495016140694668744551198267494260192650956283773107910197845785319036664376417382651161097292318526942689860369657086191652373043558851404065037966825029900219543847898060011788642687096331490729239264665911974405160405308513955330892768403955761032603486967331472013986678915068896435192293798682868188109460873742155118906868020205439357866696647437374075146533638365198489087103295250470325821111245388949710008950496259590775516310466470911262782370088179081485592414261396968442662141573069261986905979479992842214189127245169710168477454060446204242170811241996127563197017516414637506555385598356266891203973799629975071910998796747154479992819430510620634973275481179971742286754975296885579218219007095863839795588416476657181971515362628102556419187700709887211607262764271445248944431998055213948595719624324061571213982687408243823290186616776661278054484187083087480853181494383949586929113728546328257997246360164852873074829839737979462857791647448146177932591174762769305027575337195528867925057425231292818129254560938966232615935666136816639418523368854075367579772723072297491945325869973545416613753464481728519369249694248073441543681499239716356324555067071944151827396395787184424320215416540820033055235281865003239219120707986685504758920622919565229007599914326288275270149074857840436067331621953959532580307018336315184241792306461933917660741126659057663965599997727508837033193303197389705477640150466309610879973923969029939040794806827717338541855862187273385921165331141320899694788731760085113724332894841755999320502489330117404208637169380014045963940536134970195146405815476983419741523476689431790573211567994810841482308600999976552317341020326807011041993410893516652987967665904059860715369433436802319099079557546585389927427098946039111439550731742386343352636195430348632367989787462630155666609030930719709545739304797064040667411968870979776794370676851993778655951444093800004061838822371712163073773087510167606692650969704532603641256348116638084352399064923828949344862038556680112406514566667555132604956408335477210702561612754155701725632916515265420999842164957951454507181916042689736598945950262570220830274180915369266113029161596242663705609584591165409632598460553646087562656172338677100847561764915724036109243018287318906351918275265550797139910720122511746628731396857599278640231454808470725843854508235826766355960372466748315592653666704885478132565060076436516279141590096169016446224975361361177574715070046714401069967591493674232269058536760971815379213594126594238977775702506002098108805794477547070857583581584916950859235005748885154792888174939184746760459361034953295861160727000051203455479539053167245474591665330392342220696238863999536340956769661109379805613324075732816187847931715969122190040064385307419899710839243749521912097701041172687873349257301512594911733945476205143302655254672293597811044747150386219881561792759283012757189195660968282377167924986073168828863479011906833976914448346720132198587820743560941180751043220678216648770596946525212727747054786115885844565482187228766547421820275056576869056145528688285230695901605747844416243655833034641860971912123654262365428074465757860096156566231458816971116192095703478536859757579590884728767837462436238063319919667217251538196065986604633929534298013709799623125127272029639571842730865537078812614319864546552466378439402764535976965860715459691603057882398786186020345223198248772064669001018933575811355680964199820111027750017774355347963715049708295391731435572573546306250895499809222328988796886981483897484212212831401113476619169714950969376383031942242198989091184922402058077036278924184545907625767114350886785396649281338614554830633739746587667859919145474429767519571405559095006625497392652736469305323898802715719248422364161209954221005216793316919965171227988409323007340009563159077070573339007740573727082427531711978435257601031421156694581684159662712688947398941361735180349690325397820764813815787594620795071688495109292733835264517942899208757564569021746429183996270692272056645563088665723504557336817147945882865044656641720285978039054393570567603193170107373871385559936971717197690261941749277173991107954470401255850440926042631715238851766005409558024215935381682617617650815931663092697591682922628361842241848228054201319763882820073606804309349964442815648212470073722547786065857149275349702525248169193584661115309011595371611495899431111499806583821761400197447623081094313580351733589308844218676775815621965901579512643883103818882493952725801131332207605277870055247150316067985333433293787732341853419486993603175006376523833116365033365752052941755966857830288296512033802549583648798835582889582147768136670550244226510040135995430094735245208975993397335458056996839529330699651409711629375007970698943194103751092253385859828196344449714551510717044383971278674120370095772351689302680879729487984255231391532787289359606084653941943787185301387032115344475039331064321447987697726407583737273209001411595236776810958186349183279517464838373038320919407965541002467830538235005038024626238336524592675403277894518421047019027984973411023511022944308614999801506190093321919524790657926101088824179315578802602389480695211038290185667054016036642139465884557702918767982250050657852679610297850713235377014351305962652302813454363075914394303469934032488646394162375271939645337858924726493526505751344082004937122999059186243552802785752202017218376970757987899884035373214453202937947245312818547180014161072553277344873505311140122477112435078918489415137160445044098701332681359144296327569762815308003639601623704187549900017348040536129956842287079813037960217912454263787248152344432887414621277201235809753225945578426151480214355318485907493989819883518689216870207758045530520341401153924910255233280387950287517100827442046700189841190555938781402451829779218391603207231458368443171551120472842466601894797768622832109467594697493282970713073819232804756655530398899554169623340749802323843335012805094954870634044194028449057026963973962102829770624967184495586973177755587650179721460811601077719818454253891247453039316373142450710665592181105160588632381870510693733210478290134916762153925255743051725523562581268174193377592053416968195412122102605841379673394593654622038386672599227906646942486113268442545810396396234831944380498388951687924702550711690961428002774595856035855589943106849018910954546423735615164345767091737387968854454244570473159679613471246813879870859788476318520462786531533077325117964973792487084608255861057379216934447979458868392716915118878416140728351792177675783966838364939608346989257817725711178547311496006627164177858687793605386267150754507715699434800461865360755941592368469455061070799831265880776154373087680390563203308604729913300198501270895391006703655791114987345932920042473113323561737866762358546278361925339059399474658204585761379815740648987104203438170223008492550449988086409254104652016835996870538914348479949585148450811710889866353988285205004176660124732761523763758865283710180964989228286217725396836002058967588577218944093025857600089769631112063587562970356810484390085843848360644358967144331271089087801401701690212969266568407030753709004371023091726068755831434781766372626114765898557359539782844389278458205194671282772159697772526993572807255804966688925437435359372604483096941246660153151730994057731511467567117415090389910387585272018567373407444384859644809796662650231781081590796303270535299843363036064943236416754765630058421867580502960358071514898922516444220342499950525216628840860427903600618693607989004301023197856365199748754268376933461712962573030013748480485440461471004223595479679430143279974206531953117109397342967152506319984709254921567029510687803592542846459087304065192907325071644436622015579367756574611629630316670543505001330070334602840727057721948272208746172329513377749408961656083365129440437780154178255097644979596832947900760460532980396988227319254907267485780965892668104917940864554528101578432924488759708460385326776049485965622099324663029179906388425075554221638864332954697162702733230722896348809360588806383427775903306252345902526114602493468656892131104513721937014810933380158613158637087484661928184184151034534709242004241117016740456561182438368006702833953811387605212210344707680665267534513543546097590178459092093302903997540407398024942547985832922322417317517801555967479696226513418121358407886272380763133006450662984762246849998354204310679460098045041856927971707988655436442123913744108755229790823086372511186247301297541159881304934828812127646958901177004273009140360625078222201899227680073659254186756741801285047708412287128815471825197796051409489877095338764871781468216167555139178114557051135716979412237013756257488143645049785877591773162665759562704724240432411800632978228295598161742763325340408893729519763383668970014423279838179781599544830306388393567715218837231039508143961903957728640856340241398510064826079850279877502446057636235253294646864511518796013344382974624205291875814833862318429258897307122895228082483714193273906813617042572417110466557524329074272157931321796939806186853721710779402035332127233186679972275774382334481875331689520361207107185036790350167468735437534437950209298572378336108591669942115592786153442369201723929145236283864541780061597401375712592290201510830429910548849478613386597550376136418626107959661151155887804259448545592357696417335751236285418264595948863284479303033019409141674307454167091726856289006842359626350736345513594285029700290739665677336584645831092436649840329422149423209301103626323363169504503944046360075269463100476005486884431208183700341583267251488355283801687633940571572900916031133969381663313619371714078496024262813232523510152626817900832072392174828420994106758397601345244092278377345634229085086659172159276181397178405262562772468595953363423870048558176092489974114268905912562461782222695572952797616747622635019237062334211919663619484752136632362851761799611132268683733713241998747485797526447568712077267703263907741850643752300738997037186039472516539310603848931542695599410683169531275887435246976528978378484538562380225521613647296213584156165104371308802484943308366743760642239415683254798586850257118166765336208870943728134433560525810333950154822852683409257888392493934305090764644588603327620003757249651951327536006039174916580224462699702324502568754658802773765007358347543584236382003731705078897307370492650536376013985558270909767255112647644199985232086192270972176625515850076888192123498427088709547033557307249202243976214721897362973749978356687854321267014568631860377045029133468034065025640038270347324339696966660441696211572574964036399312238628503346751349638699961686413289543947737365290687280888454633119511945505988025452530163204677873848604425244615574652389149148690257851275778153378358551131668392510471303665643016758027815991034225797471892819430784524851455126120988280169539983220680985832783027711996078161975496640276181981197654993592115197320787948161302052900071170466528469613277420125102613789116626285435118843688237943531401877836746264731131521401400946058101788079470826242034868225151601087630474933321964686567724280868610192312557990358983042988542751810362211467218519345901701057531255048185085065299626399463528794920072956257761814237890639312283059774728167730798591267914793267524957677821081960077345298744788358147279835714868150325886074429301849534302867538009128959505295067811905142326354964245178807736347138478723033071024010270289551096420052484731001630076749189865546311434409607745884286277333090073092953231979301694786021844422623193476387995486571231310846081437478717316081249724540491980096769923655707126425083937153956265994208285124910393176875008088125481724446560498445000974283899469600919777524192291066538808119330331000705518475971915063597369914949952153890445610957162681646003444934456913209423181557606439388353425511146220309607638656612485809715672883745672656379322550950188045150336264287057826452183997724711428985885368377050797618867402003192686006377868678002565661739302864799390225099570168187897277566156944048225989175039983627415127864596019853211884653450230230228353991958593740185524059435709809345411006604615841067700452078655417929157949902979154284921350398964402162475843853616592575190195989774304390856026006581650741978612687035394893639735562953641801572736061890071646756861095269221569976988604069306151159080644789907981425850477318246994144439976826526042795853346187488386169777449167528543565312669082188225636535281547200433865846456420043440650472697254752410836089619472588029034086120401421917584267735745920856991616884200107883323027372452093784388089103638832740989290690629253474787748606027591357607663586635356165323211642301832841746154590620260659986819146813105713663652036597478448146170347183387280626534569984568397778524966564881195128327343893368065410791357148037337008268905350894268484989770017405997560578852651563834931078019881219212662730443076367075353297979388114055055976739307225103741317864452154387519328176163753037337918690661927573561310068363349739537300198225033028063342685375147210938589820510161853525619067926539084964906968221801220207773557949041555109816553946847172277864563680506630605262251089158868973999268544791339717140084570557765524716473631673172805218298669655716738114568772388516106733950113032131954209054903785271047267999031768364995445714358667309643858751365503470037424550423531504770763304109201331320038489478592886837379621713367545863714456949095512604368634449071158612811036592095149852887266109648816939430745331601645116515187646325631504702717906869849941782350694173536377417080453792822448373772130798432364975809936168619476655919503926432136996785406986916755445684360795126999505681888480864016491640798575691577812433310336728624880955887998213727886884960216751726999033906664693328477668912153487450886578708928490617806014336242369453462245336405519530296533420791370703341584112353327473932182314998278989862318071143681922981355997490256058775176074672638224908107710448650695027335927089598000997665592236278812896208040559894424423134368521648259123233525954702548614079319608926831238188141728526406021149276849394734829990048531337045278908945124895264053058510703880652099487636048319055290949044439438731161177802610322829599364649269865222011467425037101711775286246304973422688331809518902869227850613129462924452233935595252651908840301423837607036365140369292765979238807992061731797768037916906098663699879327276874163915109114439292196941094131311315801450516872082947729382186460705066108179427039337611262732351088409840649465971540852646974444715210913053131150542280042106168236288497141981330305452893833520891305790890881243582551367546427372741196638390023296145560459831836414457958256896713505693901200786988410522254160805370331745441671837711692856510755207889272858815767990661104308488210967583149205281373760487666375135727668840476109506458227441677810307563640102283677751664565113904172584358212719336501042043252083277397451811387492242666950290973700758510829341183568026811056309569352633609885629427870214746328761540697676961571727438975996018612337402747346004724199736342076156930868459762189480055838163022967835549494628349993939630548888085382828133547370494604096568656058340830729454463870826146955661531169359745260562451124116119896764467476349332663283705884036108133010268618106755534253589241558286636281643713047030628464084259239877274229266462710427607224356703244294891923252652771201612603048106765346062993080725817906730220371563586690871923079757894014389937311042166841265186393163214096843090757216480500774656449563998939013209920965551091507370571355499902088489861405807624583863664687611929968287502554757856945672454042596213481771394549590960558967639369638681178054190172866120729208583406044961659481425900886636446530552587403966471222359916385680396372431664560566178096720908885168381307087242844181515904562815986501893045957641806683963297220334336962375407101979859964268059804443462997413034545674270285457678995016261496789578623481592948998388699632784572387428971051909475194773294846811427957709760967222296877592713694129295649319256586334382920714974666374720484136930132490603351245481384337974990048135249582998152317173896824159927685252031596595879792604718905384096615445584450608419637240594391195220635558572399475205820569298477293984094650084007917088349603487785180800144875367941233809400289855991988564617901107381474616707161225428726329341167242042431716065067370420865146186171739366107592029554480837883204493134621492867946458351305796926789207707587726852486989847973230871355156887941066110860054981295182376877662660491568210533288000620682777130636873932516990801943218886689901841231606235881662220981592431479137548939962115452732930973712392199753811564874075870188529752063291445226419918033773900112567421780178966650061664710795557696267182815084528442352089949879970759568933935998915348490079719870392677667069712681203530423115001846517672226906645631576544647806729844737761970590031855919139391123801764696729397198043969272210955406289506992710248108773616395548389522772293141906301697633151925608877794917312693749127445131517974851532844452645515245433258715219581416648838781154567382513637831050447776674078226984104881215096010420648188391868568154977727990666276583393181822554449371443700781906941658953120850382047691185623366948455482521167029465288554511722164406948843113851674820449299056595498436874067711759055905605105752891664887106848596957577926401785135209519117121307249381566541399690936490668984388225282513467533327513784429655628765860496335273002435578391509887685477522914519335753403303201100076026576481934088970338379301291675256609734586288861400440563951499593633531976793482862643092428519355580918266538477135220499030503334733545105789655218453589399694611208885655977777506566484535813023429799699174828999627414241201619458057335365288941229569069600527031978693651754783096569700211014906320873670416245340754121148881204489555222625925972224702518091863012784822742917184272427391082893841446120101339353054911726089988011870218681722275804219667287955616293255809429412815874486402801899457308838999308909350996852725940287828311402550044135030414175083250441461686339232410808713766247144051753643921344799093715389658734519125348571308746912940544864262452519896169957926292705799453011987957759384655971032317041937860849333656214372778649214000610215674253493040212240040731376164621877294746006236479596353034772371019960547369378718840501967235497479381341084954536318351464750255644768662841370786485044803088075844783753491849962057340476502816880170652071627624744649403201563818542395273200436662810212935309948521544510860605048996854288056117362211544036443726120914172551296338735605858778344571755007399495126155082674138665918311512608836027887541592321743564391385492024269049175416120082671615080950731412862768249461410142336481546634635341229759194395962814812755811060141593774302352113031916986660527393128302013772665489224397381171488018342913306657805260008733600843167989985667241603278562725980106903720729068858450703475275250497744559749528878694559491301127162122937839539638143712668373592368871668357216151369015818808199471234718000982753081847854830337509557303111298645655935316808040744680541024684364252961664146944658944113246185471811676058839890687333403949496522307302641980984096308363874842578750908880031068318986469334596663225434922169598827502384338490517360220028721468388742467246715562454626231301650492810552165961428429571838960488749193377824071892190274545256419039282754076607801297923694480874544253774769771868165825889813769822752022975477055170190997734227496472165297471915615341213405122747206563374759238078419299341851634285920300089739713744895673555993567990770166004544838749260190755833914602211722404638942032984704722015996832094707669619194726250896183042829796551279047120697542038542326085721570372677241587053937262923422085489137818153604205454259969022194171048927789845480414733147000839472972071804523312999605596999074668589701851732766745803483332610489458219117198897081401780415409986265771650885564368539032457836008741083939534710813083156856512999387002993269728648363323570446945347166246653553940423302728082635755087979067375628306338570954584774371404663449181950093997812022280993954021427245043638395558965229900511871378068302633889330533125301461941977989161362120501590579536636485955054043511901838573172029822025539125970125146534784249663976296740892168403981891054890446394904725152869291855306117135413454066902284458250237617169803941576593809675163904918732243916392740304638136520553709742193017563222158485611318528936314331603045406881533802811818188383907057769543867784878058388621125420059260774789891757122295502942783505219650571680113992448583241461891793066464087718361965737127486570221788720628230645441831081450766547990606832566422922654170801496359001306775382061021056669793018245921514602274789039031475907361357741011582217203632210971649662496212875156887735701550481277991146035170022149696281716699723269845492169332984491696341987615057778250574781218452017637890481283637490667179999756999251559475157244765235897269861680749209902502923881727950674829023288484305063064932471781085859132540616905859165314445982480560805094825284279919533319608842351038510438788220445742477274241395576944507277478253040440332256570505807472480211966301325483786430708575413557674418807172854670751413865176281470790104892455446352611895679769766182456500204626216635420557475513115675047883320894938467004412200819491244086885667465044329549481019297138284333004866205231662236799552983233251493904764380905515434801948038844274885817088051697892944160156703609154196361820693565628003046542260230470769811679556459177839724897822278054831503107228014504411907261157610768854471293870865687285196212515909886409305631499657821787861620272820843368094325744388176172957211790998117860221427972374335655260056670488889678269864340901032592150135370830569975153195421480546968889765325279738205184354582062694841964549068171077821103549390118340478036406504885116968160379229105022388098869731319445925711127638002585146256212616630050833613276379017869313750126730602927444768731050508511537141002069589990784364815098057261093239186953045870944827586950478598868964089911683333199747584558957266887233495549612272635120512649422727471258302063897565657094846623445189231942637080689634522139164404368537022140685828757633471065301543714168417997410013541793125652605657916824097096092662725307182458008713375505393237894786735179760629781522817463226212960208645584243281189142244802351942594612363550794542941484393300278909022018266439428491029082247798073664816749576335370852594068024243459907417004160268774278130051277549884626525665818304068933701623066852968594996710148346043485035602894648647807861966108463552548617892389360916401104372573714120196670081689554000821819991349492758194922501064852692092884999499385354876312391554129910252827411225893552956325665680642838877417057757054278890669088119678019241149053868301990069748752362202679935591409918308434411526603083840831282568134600304204029032764294164418647457040865694926997664632898209265474156663776996568363165095850815777760761446379484124022131427007722249438004138516865588712853939806761577655487363171141477055758499417049683842264577884332729192607366205044496831101932205399301531584814351530920028585709028709609860978655254635841674805518949259377028397115930056890432388064105809866771993247060697509790051726399568212379591751238806758040651328566996451970434908336543518803641863626507524560691832989573792078837923548672349589554829948449345265715394987979476071000697677274544353624853525421441588835853143148733476123990376964486739923903990870885610942415173086973429700570615972922438454188074388351543551343897599629690778641413780410972475789671314118986493743223644118398445301366410360321756093587421184499286628471171984930595473860733473377030574604713763576593426373221178134138376777774313632375542776960828760168764378688116745994218445998073058630879828060677693893196732741855878801912533265819490533391811537043808074638530324208136739746536557271297661766258482769774898559512857598838976952655478381989817812888061605134776909958916970052542501170339090336355987648305197063453572584332292761440261205036870538515548133638711783452039414001588314639031594869201840804139203232812562616450195353788297728551856971752655543875473978549256776272954619180454551811472706991271962517475617321988620078270784617179176640166402062680574741469417039624859623828789344857263562504277632618831890981862217197257523207351317047051590707251723759574375751731232316148700817280898524092222812737411563016132957060518580382272445824954669938183412513898022687950206622943523618497132544473214451426513496576798685454891836275455109442441428948029574778279683386073486425615637781931777635075267838625127458599633771433403668083254695189911053145207020578638125689510170036742816818850978505835876090769567725177882011365860316633229487312343381897634658983826268570631325418671790545781295499299424462844644145609113949626011481619661226500322125895803840215012195176145393028572280784269316158249668679027980544829942834689254445549143118624879615583840005080916894391542892891087642803561369871013744626020808700972715828549605582041699016617756731437191494918866968555753448013790247908487132906962801987427800083767793007347124506583692675884673832308900588400379014310268928049748091846876600285659953703827464063186128714597561482452170080582631582206838386647666593886182088112610032386436841674938184138811721402637194956469151932542121508407710796778044466862367088912458364468490125349886561976733114736440450089332069373225063108732854862950182654525615041470369257571318749042333618164813592509663266962855789610163970627579458185022504392426713657721081105446155774809067381575402685054922616315813463686709403509639396951965682199531797154381139324723616438304932904209564325487084830772381238914638073819282964945550918994020245799192783229098996677943895348375971559643373687594781303271376871938806954619939248233445712795802844938948984806535642629617019572699895031007157786016771993316737595823828841784601387757179514753075793596889537991685447632285008469620711929455286632963798392096259274631183252859982748116455400126674031043394233417820162460598776334876697603291833494552259094155295942511590714225694902102634015170375256670635744224450926908152123432654709700100157352165618555574873033825098744655580027777738818427515268941689500641315996536458742318926702535152633591160159798022377412230490371435283613594842512710601198529567128955957817243158154719469268350132845121028519244177991864475872796458926475721152847811171428961082854095984462095835089147200041373601973205041933554234468886847546877318036061971671445114371051273413173539047818616350119116558626414838332515290424644686606756885943009748883228410043920364281005842185784742411622694301300261434366300878366749281043862340778514114181506488916627662415151613933470903608285009577772557448926113513826749115428097168576886826049305953651649235299749617874966465233132840318449930013141819189093136792630837016289340009523705386268470022309345871942524868605653557908264900400310710271603401114199297388625412979860837724719667325710052030559034881946524219338414525918716843428398127945423508833796734529212880605242083865977119985035350567798859192962147164522206943098489708190721562076340934590559556248068376719627632237475396588338490850717699960421125271544906858093882473263066398096987319855806985787271299237240185288095128592681956500529385753903829987798436033269069354942403156234507990694918184522335944119974976214018352986370030161948458594773547177181302588086012723241039736304854497315301682885026529388593190953121436207125437191507668115912464867508648686520267730417078881732773353201629644218577667355556286445282478355503540804536827203472597588606140816795157524590993739163267888606783653418015202522095194899534937498844814693540756849872969030835764548024163036629488681817246377197553910607564812320276297743258106888496062764119734735860608714934299779612313037966967833651300097391683750555807547502884983512808972344630994612049119887331776536282335067537780709180504525872536876560794085728334538281526400485415424523252892543440956095685992240147871072599647920732274535088977126770951175058883205279398304707155411336938931683586897508773582211056845908710830012491281505338786088552538360252090428651438154860497931970957489649295919841428459591890255610899727411162316061668564013866703634296336020971253184369027910353744460206211978384931514019757411544567050666385181587661460139813218412377740861550122871802916652968711156174002242623467962765361875393434833321763760242174715201414787972627999419690199889881180701841632392717804817738050070789242476647992975144360665941759109485789185594259667402099020056104675591939362091615697372472183514006984139080089315016740739484744661824083174103831770121332095492517404827291521171382739831908769454771187057568501402546747102537445945709209737759757086480717711860273642277133593438879556943383413691491309956449781641755527630496701775245560406732413352484930354884422355475619320510863927665998335426265634317230877103476502626835528297604090346976671444312635308149788103725542846813545016450603778204878701598207971062520329677203463494482386040127273800346867248855430899992066217245632395021060957202170344030446047807933604157756029642700006083366226746913801189154168432585879155261581270479243866244526938923002435109268793513202299669714118866925245202842398443332827894230239797857161084554441272812362743418018283801552703054655155437256860681417694258359725177089714642372478601401726847091592156650987580264528449203107717265214763275607106575412580885289971105667280342828111751020499577540925012153332318182410771695746016190120385164935737662137696581659249161915905375809834710126275599577773088356113711994763427005344708201480161758055110586349996866064517771167583841302034288467044277691069902496125392630421021051326638057922503629737907183609384916324987958298566293476137246213056600068564905161143037033697104689472246214108582118925969827328950458721917950558107373086069300298740156733297165816958902300144045320081556305784421247235504683587374492437553060829706384832601120900049655384290644200908874284393413107696908723587300986688232021501396671296033428339181467749234850773098667056406348459153250798072576656626976313196475156669685109062361054892679838412321698681330419227566513781472146952962672513625000805328921389879471038111527126551261310284595143537586742305533658820460946103975040956133310431226868794347238968279710439888657437756490302181876762852473913796653216288331256754479832317333997965021628521024082518160209583862233439806386728309841750199011918362950963478241388879911769479594046755072850386786620384822801529462661575189745805712676976217353890120272971044314194049538670392602791796664156694577191987755292323095496900544221565397075550580916825637070575160046366988636411348768035087188004874417893977714522114822718722431185707294121087029642899173067345825622832787618715013980428538117721519673988205879888435407188526183340175270173481061141475476111782840685171943187340051627920921656432338515576269474800403421545827037511103639416403132059419671023859626382354056046156973476059551827539563846586545191334300808835475950218537953654867588482319985944637698645587627679921913756884895024931070770061904433621524683520808455966382615818580428432136743776232383203090468764295521467486680601701741000906397551043326065424586312609079457505091533511769178402624814451589023160537367877470893636199888139988042072797925962696470334599537060334674843612958943572743394037944664996216785406787825468435669652192168436741393746865652859394574619922485158461861060338909761850583771551878314995385451020091436299424424023959967885362967197460826868113191125028544024546739609983232553601663373061959923182524200234642016502973199732684392850713776795380715901616408006124625008644432480702505419475367613178936539747827807504882055698088008975134339270815877078158278849507663104637461435201479918832075839280494752782769516343702018585030574645063005684026761602899103066093284627395167077153698970547467533057602737818729367647909782838947583753697691796010104091715577632298146928688564031502645380096811315290988783357522154316569905225977207546251307859814648208428296341945909916852249202340945047804899523403960893650445305506063395027842192361465955734379933061209074771895881836610109774483731235492419730429516938956775048072398553928442688742104612803326342982267303626170044163848990962624056125696411534611384512206758733315424126493087932064344857266675367454069778501069486293495536102851955027109631455629790921351604988624302884784274569079437646406903690158629365603089504837665176191286982438622467899369557927733199414767397227826870118774921095048795043045953494495608883877212972420229132002449407127323157909741308951304466120737263647856380562600488132860942391788592007458508298116644813395637880195698761514119749167566271636311842811047897916722922310700844289603132867193620456757982787422259334152197529194216912708915481274500723161755675531568447085629608230900158893504820795906423251843207594837722076622714145612918545975470839759940751738569533577027311001169465847102411238910583204942679501402658011960945547656046156465573662792210401659618559234693358187696039962852334642649413528563594191958814656912733579613650268197702570046204382585122645868535111868453150548150681099591354814137450839704347553819916988026315340639199302851345834581092187962984801023850807288012849580656951018186323296949411022379603498067209288842650058182986440464846752544735308624291642908025536619955958883824618638837165753205022670154122218209117508092177982566625287022725892384342476261710740330936358846425156358426956753085206329027300037881933999648345341857688616896230576901068081655855774817281494635342622525780683457219192562866178976937201979189719596025116511108821408954644182267253367266225134998503221161990472683840928677479744106483335299872965050599418425844751285624526510393843853281790235583051646170830979812349492738270105182774178676696471157678654908687982584696862796124354027068646648066303874794873667527772733183146635061854505804251088943534682986735237757922822886196751819610228500667042525704400829893516862650187821019485936192554991957300427166371878488013350807626436368479367149067800072610780915166726523049477656193035842789915171331552850567332377702913276105966067803029252449232097189210932938122799353677495860808424654147448997515508226634520709280030707261011581459108249697914396170901684644660625975429969210955020262833715794170035275090928005199745999847570017157398763946171155391849296637281237916969693727293507517277430279961036223873997284645243280456064567841863601159908190155867393851771374304444071077357679864361606351105847964909866059964021025747565901786913238395747995655855031514595926557634047101455518342827117860174259165467335096568330565229844095577437341657104487760713407120110215022546434686846199283835414093267569673424776952420244543872963991070509538284154355672291021903208825586143392387175908247110763174066887127027432262194097052950441495447445093764515509801910598866416224488259291900280057887616877800881227952968515850524115730194050987551148400444973014344020344899199931875086402211333497553326860366822278568927490416143501732830730344407086491498299518538453248979171257276090871459356115531947922186070374700491757045328990429001350242516059856370871630055279848472525519344118195507103634894570186487237500849133620460375838751244875092109977564867652449254645529291233193671084495010193086846268680167364276945734576317883219295383802314961169489962205993597659791589279509003118580173377719114743244178269419427422123449705886819138413947970070395477081409819461296560375200698695084153369680930248217865937185017410792036148473526157286370059053716346148315052677421681111676562328319262758673341269941360759816046350494883888968778802453361042720576899611693765615464985570798688193262632079211837195304265422677159534056773566058914417745211933841423967883549617504304105119294314442479776146959421165353141247906579783259713416420905738094616541982065528497007560115116595785015210873127372009465225429100120957457008220542870703122583702547184769668826725370110021065366511130901271475061419426850364575157226556075295116775497605430891200233334270392376669219576906650510247409489461470288952615202555806577424390148135811215851664767085060503732130925801666514591182338787251026380871174228438094461223548963624464362990319675698125251745191864492847335478663692468889149565227011374440341152549698383862986550348548355745986167519683452050684743667020775866094789874916885869207000965680757324598259400729757455373416442622478510160436706581147747974458771997192619890906579998802599689036859756522414816794129847332144673887968664020153211321110729848007799221973116843545714662139479826422041918286215960536959973568775135004584091490130606014970952316239235104839919860356170168404939566468669348112146561671864108410040208300724835349157069763891900062009677668141635662423933116441123345297625859064806879177457870197759506674944015880464444462816420898472923839339022822241156543200057540861938208314495162362438788833530796251434836990930202173783538511694454142375818451720205558692878844150345634700659857950907553731840862789662563927301526470978336819831845788661964186756751604111855381223859384049385720053306051745282127066088739555644730796071573122763891291253143901148316392842178401460876333828500170206541616598771095228835183178319699899737320723553601718580057011019292209463392838931065756364517497325901618088416290858885826758409943639634896574268143484911532283750381108270288176285522465475316978433660685725245486252831293526563919834567072293857009410770911962103313648163974066588859084635002092976367164356554199104551576778558631927162996637270795101468985651706397604055926696214553466479642438131818618851384692857842250606167766655352951203776556916767811620200251231969081189677975514665684574940802000430810259815583291683091683697287685898426172245734002193423624363077237896633536442500907866963774786022409105594227343868328741646512864328006110022464644196389859683225642327312554519620892514414186020617359285768649529320607201537225772071783421894013478635828570263181465951196387822047252451975172151610552492971426326888459508164026829681833987718912871943001478518234114871214501433496694326673022769467790374655668947581401929625784451295711496909786028578932275215348039448660814212813689003681832491943655011476530247811551356773874584626749084493973396551439822099990841979753716912315995355491826715359356533641193045671023467801897941330468700730518520811496408848751491047406286547453658750409354496544657021307574239121848114132211541284401603949122174945719424804634478175179304705988717266608382383238883715305579196900726073895158793053099190411517520980934155920595023360660046820029817234765042106578095337762483901994563782122462204388850338971468818527875937557200496797930174121488434094528525979061622596289322634502128000753646246252404119800210252726659945658704543727855237723508860098119948109232590311124693135103529166258559511550029942348001953647576855776212769389165633610468372672307198173797139126382493692189002317894297587856089281230298407937135309483868526243535502110790870216601062508497580293562639740511420852231303017289273863063008127282923545662140872308115511745806311294485607819389883541765978829998542481764579120579023213377023406555094195819512489723412150663742805019428948248188701537273113485805996499241670684725859265256608462337039691689124723261184620547712995618570028263304658319182063945626447278945469680457823139942081029074212743558650427712731480696874864349888809747046064222971235353701781892700057794433834404203817604783151169035457543355394632044179028008534978965976053601879212704276866445499196645404909834057925445405189077845337984920247776654299649996453175769552011017889373044025483871352705858169804201130196900674017011017315250712537453893274019450210175621993572763597751363204993880743832120019454864594889910304656457733429157059107273920194255240873045283774011745984201078722663391926092400628241534127768512821790818758625555299231237400322858219939604220203942733675588543921745534541653595184811915808731588628343222014168156853283165444294009058797055678255417810561081318769507497055825066593376926079395813031835953258259333830572290470150797373709967262914236472059694966606004640068824660565955500700589816984127671688640987669372307616289309694273429022316239313041149948907637211373862383171154282514689111558465952855816782869635160101512402626717223731811871682522520400815487152336280277440166889288743827205642572019880142528274527348385349164193597372604692366213345147858083964385182096086603329551303302228504677649316102748443430145524622679633444912420894044632647586661335159768646718386556919061086553746932085286441409594955077300767466556603136138805181916210088795631130819864498792818867670464179481444843427597770282296342643055845719634617448095814938671030308266027542710643580453862559470181483660807852514760850272193242056226362279034166349069925309896754741369130784498076427508591239399152800424015299215372041203951815045111878419092284792874152974718417311406204018022461437863063199028891794271795968568075655680300569166732259870719433361063216308229727839657800949769162677747177853157563618561367661977220507410466254224014224733949882446508065117903088233618699119505881517296519001291558223881519254899935883305145613803982792741460865012895332201848744278402222669629678518837786972191391848526616243465195096077766319379788332073865164968979996199873752439175827146852782868850768583339789176294088185787403910851605367636866643895173662202485827995120835221670820680774480049734722310453235007132545227760464879694773910965464540334139723938563701226175132805057274082452917860953316910909406318471511418473192718232204591682372376041284457259950632174301767736818474477406070528906519590986812428690556269343525046910042220020308703095356498403436351489427041493340268004007375437020932931636695599131127461737906675116837840103372451897669369859330775077352836779675537144068390666085410414759564609602779067795726548551366422429724691869524844671520924069060816524992349810349350482147208508428580950831511297059568853775176713405289339082766288039153007963133741690287191088431972570398201411864524930511176008881874854620772679319900685249992492159481825312198591127009808198207514444721616423457029741792572954954300288822500860883251661563642767891776725327619461704318614800476211656759044711195748266854214794395085126501117899094673567986576629227294653591515616400657645274448419776926727847486362008233531641557968877369133597408382923628158361517037695900894654007401824123528695972595538238467123509470718009218842870876525041895618137993598628279204442017848989859792851076752578115739422354065066731886780534709921105461512848447253187054328236201058624832838860300905459410053864371396573878535297436366463077995554861764600807436614111215142172952948731297438730183756249776213617369673650358925742967954435107498826213627409269924044001392340894582334319180554959481249746333090728354958738786796813183601330486415795964344068103205414976717051615061383543409557227044211990678060782635172899111837564605607969704960220593090198899858601734069565533682656178262787521918909985605129899146476862682686715557972657850935012606995030036864253923151319744927352964975008568488762868742544505246525809664218529353443373954473913413257876271400948504655410245102683812618560418747753628689198749609263852254691765627627063954342712892190984929823049327960689026745991251206326612604659757190108785050753153422330581179891302541070317243295616153091138882552186600439191555591212162737427571817309660932609451018484646076228548544227946805208977062753362471651403749206674439372962127812883653747729024705842830042024367239286905032640763375886085389723813942508474810586308336835262649544794270964609811867038493769659683085800236946908599300378878220767251896811890933367158845650179026797613852245286401876840967955458427828766590598191459647318878356095355035022632234029262112806825798482391700376803493764100493757520287072361077751228777722252773947074664765905527255310469156468736855011508978847340338078831843240494599057392805410875035362851982550515379748112506560654674853686259988355109670522227532216774342926908342172401319834364027053144579128188709471056868997111121963614921743741569700252329510192819346123217502687261161187621193380929997957026073219754365672743680935145120849524405315331154337614035301057302852532257248694832272250074522372767301253963952125297071171786095252135808608348853256560433908176560489753796249936581701605505392574457065448253122175208784043062727193869217212609243090219832027785057336664005442275459146888860826437189999398509222610421620148971256166913431813541521305374674900575112688679697813574249315246286093535591442328848509181973074446154005681709615899901521607614604554741691260306500671267692227485507035340727027037741786732515776425607360033870124774395332372104074163898200477833532766179369874009642747287232724302165658314913797607747330309006885486289044764661955395349597234531278230620891707040052374912237934247782644802101267007887244166172903253413707052300277660744151682129917599487356205787961573114461956002403083157238562269718376163863109289637675718764574450108799460836793160424424276053856687476565575199438957343465484638024740395345246670724831598658089802439319491750523892197850233723903334873613445400069813107738637650013008362551527878149180343833784871385154344979143981934688327339827382744201805023845410951051078569947962278446324379924006644300418489193971500430796974200375056087932690988620956394309493574427173558721544648662898962659685253445805488137191587105191606916467785203974078985213637263425587801892943069005909533128457249279953154660454218494758318373622881830516991629139802277692462146665065235707675634698459947864128275336998951062072168939807213969883749908608921179545787853130555651246745054113915243344087631463135122888133292553623377264097203533206392972828911728026801581602871912599183641931990743841198855243970175173772913125648406531303390928924264040175181216900918927691180220862761321064429059365892272696964393793604688347734287410672039364769716815996890571486955704148141956889893241390524227493045320209179402805403273780300062460174662602187224960601337307923636757016423247504640561539775069901512620727963792283927939522082701110193070961942794545393991434991477496216613322743434265857275363818298934822164423203838334203965275006679309632454059323866245808380171170305817342919199869959346402023907418997586609628301608091648162119222060326110835143385294096474767513421915689725517154207534374937948546705836745446490422788411120147888428202799585584886118703596706429323859386117736047891579782651484220730379718179286484596604141120461226690861636438366480711828993318702358145294593008235225583235939093369040917368021473023322328502262594412682704492589237564773760603470610895115521711861889614803068048626521593040168008854343879826917265449581007078310933047668078362627415559346444707642955948125344512445180628474638284496955640432210365151477868487501185219215226824690513882475432295531565413889926796763633731107183873339057539888190673273318189277136042527261491345047427269050190431412249033613379363919445665240410576264459067477230856520340567511292264429302189795649404147258072040794676325562781173050198530278690375126754361603065311751645860330831479229193626085086045527690098239932663003524627239620611296292811726977929383058854942613939681548943159272141502978359200336439154415780799216446579149037818985897817005325772391394876846439399802601341409329184254098678930627120449084553227149670600731227428373023489005798557765772365134607886214331479571859758882234687662171250702283463840928877643463665903973885253068647256068099153582023062069169359432143816924817674952231342177650995063400421309649193247497032910067956237518319933287213553524604712957878795700968236362633863476664357538498920213721838746611241752841365694518801820487479405159732938010664197464284210725866122143454948020339376771575866912835369080817870422920088592669736311469464239527504863716816747546633813310704831897580883398407235608097934158625055515875441737318880812912975973603541698542737606080273361005341289815911812819280473438599386652876659221486904133621794725461903833240806657977089745906954662878938967017124281373070396049802494754550556441645831484056443577991827880475516802732641704647019098109293131303876797095082802016811519592050590605430478867481303829068961843767311937463865979139602702148146293385283014949934220375592959898229430000530612438186090810151526412033269295203999341474983786694616368403183827289653167118678195664642252971430773621170837867409058635477446048292579361225921765773153880839762800280346596218472176480527235574046517038115606381225847201867644578766194834193618597298771145760134306792077575621083810490470909274479749240820280543240556734085442287585502150391828058726689248407175968419620364618426752247565756730116590698147003246212899840941582322445431559064641043724998212810341939368091621695613771814003377064643840093560335202871131712701073986261787388418524786247938671216943404745359280630009226060437360315612848041463671281062990983206083535537131892054937625165814920859742621610790452824278166779243979286116928528456210206981914174917971460371369858591840598660659330743461582782729523619224784047331039050683693468490754081842224362581245413589149611144185071370463634579763822397884090981187645528029358708162857486967740862431300513697875460173053747325222062338109056347203147361643056942662432454515708674375227029903529792131110789102524742628456579918355039465990742471372636713608058519096716077818811610647856129892709994981403447446671945711082327881044275727850289817372611723459816063234134518397433073097278955839639010344444209049027459012541163934203287821821158796692865110152223958795524239478493781511298468314939182793690203506342348325810769117832856614393123938220997775656425165624200063020130403849162759755087755445271726312865596219517359043122936443358159098276370257484404545199010580710331459353627883223710408552340550054917899963311889144553457276160007687203345358446830437812846962056703844714580689717780181505628229280347984653176132795213924333785745793114376865045842288339387919691621339795734516243483899531156923591314318002988016450458164256774238701568202137873735944945298237852268622187163312388962308610277834494605409322908991828260788715851897241350006904446762945660385301754805317400814532739686924904223675410391802780544811442425327547817235107933940232309345425543033069520217865534920400794502834630971813003875878255764978126500777975999277322693079879936093665268729143472423651947903180525394746334053262156672134778849435516873796126163654012963872393875454578015269052516689867994867729209437932905297953671839881046442657485113090351161543549692209987033401021625824745018959113263567651941945418391977832978630530287243777516132972647906053968151416689707825590061622361594284602912459698665309463402405295728231712212230291577474274515402968779248016390589845715485402428972811515821369985042379140913039638827396277171253111173865744071777248407306987290703456331204298608097396599946049969001815090484468114034884790344001043095154718946873594502130612196743174848863498984812058007852680741452861347243956630698169478999661241281304879823197987883038387422810736474613175105411822995252055521764561229334859050105931025233365249873081366385878424660001940589221009497353465113034531241716033484650050358664533726670929360650594207500222525677625585678515997990148435668387543574961231490855423322108654035526189734380971867412100916972245716485045273245308297730466443959529064714718382503186762477642020841105203424004948973998562544405642807343995942576808105824268075964762612896914458217984687605277079985214726319197742563064652779683131812829832265690766893382791118485088093078460210427351221690180385350223085305253830652316010268355450944392374179117752548442534453531729939467967639302790181704246927994836246832346511299046500110639452801855951760333016009396401408102561659848231295583026154290502160760913415933850520544462618296244863484893142604144986627256396343900815401274519330430932767269974044019804694382027995293540365029704034843524469972455580241452539077549187755346372739506938876793807509467202534831150273512145464129069522144254211967161483551212238825281203096204211742660982097602323637668896766490923338031214557737908103312936865045658651440969998525897084015748114731703493779035547076089468104227744330109765095822425010894493815897047355446718922956551415974563860174969244091733087369387308724028316925412293574883691101892798583429773217332171652827139793889975450158608403225704033866447281916350880389236211051944286482991459179461497548844130011369468888466307727828063794293977496570530894634954815609652772186851696429479685786484348400206010546880291042476956299066852349527676433940328818091649778861912527589422036158932306234462415693486834456618419392916854296735145059348421357010615547257755678170108869447296970318389988574190425338746057121407262259181109877528326191864904295000545782125296581634203693446151604422686482826905113491248729567768482381094728989611171361976245458779136516218016048092705363862238348407392927949548061274599415896560435645286023020245103178711575234282847420716288058493178132682905167089229319520233605237420841635527517550030784001320017702301861982631382748281048105986141285690775094693094877993118136314638955419789063296978574182041024356808991714505015721287602933004157126801641492672522792013626473063779940107500081435781983469609325448493101173885110081144973656651560608643637936997348015948900055087819490326917416195088005207599355115750251806002053869203321747322052950229418719357249121202119603195910346459337161828616659377730139304262684698038488583072052460175281110084937557381114419883724423453951925720593856448684670393305768917197028934339532176566845733458087655333044170684485351395840816415835914073446402689342569025568789589939870882477675531178287413747053973037756533031725339310735851924118789830381816418555293560680246462931454139414134900104308970651714287061879553922386360501368375919254344813237695370662229219358443380239727743617878685084037107182443720979064346166897091527943165693534737378636480006484043269680965895517611825344367787861180843367428059549151595562649288161418253694334841808636189705384813404052333803623030630651703766677727448764276331864836421443661997008351513235013228847450591771187350242257413903775323194961445913300602704260418470768107934359479377387695331227906580039286659968179026739996488431361026635465742977709516749694583772723744779158959955167857748744710130786712247151561930587690622449832800127673896141748417996714946288987165305079002377755352036204300517055827146841645344581059425512826661640564725972438977036410925738785483735589280881273861278519347075884705069193046442925509547373662568241603061435586031623199585651359881968878349834678291062685805246754032201415454379582845480698279921058931072596181236634841293294980333949098535814837511512200649429975430889092611094175137976605934292401607261995866513660492733616022238287707243005621824538540848987347024618997978537557047612449309875315888553382667428734789017598454642326010554737957894120016062770990715516464970574877579443433830963718881624765924881057392414973458184833701271124981774632025715149132968251192942680825995999139923573562373811787889338923208141526730392982227555366759029788150161647148792866079143315422514870264285226009278987290735649623378713956285843066743794567686144790534455369475799522611141592772498100218897868437775824953171189580984804572272669729252438307180554542577996771310537024386912503521053208216924033609019979248648318793590087073098280507143865356184301853567629577804991592082880925991633779911877104757670751162828116357604905212546736162532274678917088254746070311962147567521497946952721518075384544219146696539468388137002827894111202670687286503767918165413947740401920674530534094189467678809550178801216959884600636139566301928094424752181368455968909129354791500510077441623223722941095461869112738521101878719376225458868815214342061673443959884764867804860159072009417839192847769621514282984527997434774177174315740719361662044243713952689075189739456945287449297808809149135649616565610890129229041709149506003617056345622636361361155018464745368851868632281986926220240366563567069081966260460733738192626603997899285334400159414766577890961436830985853185089457395932460063502394765989972740541641912963572580516159527113615796331065318093192480831814469314125009126913605058617043001272083846034136916557615241941029756981618112967936254768688753036891734246846524361494647782312779133780273850920305787306544487895694827833539145334025855691763697723704372549496367259345659979203642768221331117016204095314522318320790742768225735521759623700105037781154382912876084183233899109755530398309832668544171171530582424894931789420292243626762312256385243468465045209036074328160317559566821047397288627811548955288832776649701941718793883063202434817340496692269224084670872900933154241747438657354937177246330968924291004205665572717694562612192395764845492108584241828051298883430476947528037868230743821324034993925523644345659611203390994192279646532200429137152636688272243530251709732002420922418399564470587450009803046445664283386051709712699214188646284946711349360668228436476281241840729913432610980351570092492708818009967085961720963811610324765554845274020718026322193490143467570281228244404623901980270760528729021437324316992353870839004194765716683598372054017038342720546140355896095453004686966733772211802585477345380360196178697884359593260388702438672182891351456657564775172513068922842597220950976990275698691360705685921991204683714329746337879854814910767680949668475172210702027133616442823945337750632155312455364224074131815683687513157743215946465626272332460025757867426510521871566156736845333122289026828469379405395329923142514693794592804376435028296049107544948512175636480214775548237831714941287536824542051549001635152118190851111472167703137679678009299078081879124114020731777387474229374980338898660030434445922625599728100814208277254311034517632957228102160258253015034400171346674397731143611318108258586830626458268146130171577625993878912806888410310571948329827729502343052975908526713448146076745821371131886542465377327791824317822878413131842176848198503987774965580075312072756016331093581090343428864993299924073734833117235841764149884388154205640373907831445075460844260224647265321162600186376754765116192601094998435884853213030231786950229212988200169159767473616248871246455775976992180254730648403044945449521253043460320697580534032340638606466630497376042949200012484230759296994035210016683175512253631865563320515193452057488706869432723329906025142809903836569888890386913975694668481960430041743298606344512020832567691331286205726309698010675262183638739325630159505485606809472919965792377280399140843703840198996262526432870889629396019397696943575266125949058621832473399424716832641754689622994273558475422466921963106741563709909329692482910296472602667155622552358827061687835128803159023275593362591174225209923973219955532682623406687661969453029336084565826680496824617919919646716793389678915836621935714093814481582532366377833814093618257331617185807271692357097097295283769840081515639347612591484340933172678648709646983703986583928831583741479379187518904841690701627311217422137561966289321863540512674374951990663123082142701047784203191250454077838442414155456679947762829447404844243002294550126639298277245695522328371460274788941017272818631923040879299543067670516427993812088871970326754738834378790763553756927213581803037149121076419975656488763137963298375042105975159544411451163188955341850612759180825080128036449766711574409269317403829560466583442048888799353791772968491329274204776853364684132869546129173799002524009620882375852422962027610048810320506964377767579651741856958034091062829030980833709487440227644177782176783684833501442687340744390397428701369093513735816346597768652904701841606129156491455680459148925276073755022919225542100386096435104436347854517538858978183738835883702597906811911415218529409604021408322656003345755961270625555776982268093937242018429412802638439096825412572036188513820723134002518336392888157295986182264770071825234818635296691807742094887144088402918130201166503178420790683512577617661319417229284268881562598974713501590017297454117703239960754964150667303571738929340095521465954918050691194553884438457218261286151104241144587434388722985255386502020194599695340032331953541291801873972771244159085705582388293106285901486893080425639522596629562174593719121561012723122244459940789339127888146933421046172379304662592256815470360222903825329628242534039232247665720789304874330567956950165735504425456631925582189029711946321288745028377212899328182825647065105133925731206529612106648204051829114935640500619020775111635106967562790168855804315153251678671475437026609377142338821181587000492850757911077331633872353103623175806932393069527061657354732639527670357399637744975165654000854187051741470170813723325836994258547705956302247849050911863841774097930655196127719084095216814821980715533691597809603866216549107361250308344827864285070047057493733862808212226976504702741851884180323977163351723352963313051996861031193514129352204856669562032519246162431113502815591067400156755810579809998713200172189213817797277100398827428128003821253480695823780195569175153188009579990665357523365965696928408152253063533270775911299931714760879452976768521916111690830526803425961670911002572597903742709383677133319667204092421947742641090461329027703033277119260537567109183734512644528675673136400672195531404663657359373244715557751977647120077063785007928953950051349891665787639021524225562196639930365221690991891113354041778208249532485999239590484229926641345900773437052269138695216726460840883948257038786845727179990693634739051278215938248772668811151828744195776875620046822209743985453767754286447360278632213854830526806784566421037568601349273749298874902533916522536856404319707099934197834761182466728645843682327407861059952301961479044309002909810695172807929068349801760245594888477588840042404347895265546525721313400271612201920051021739885850574195428473786428494835458001645993146825170476994691295963966951044494922768305388277395085243144500759735798419307595112017637020724642682057754181324102421218470955956595549902977170803373375193806850561746618528954920314699802572038743013426332882787488887388941642859863439355316771659440571578407004310231725641743429331793195299684971985480100173925965605360263558766225208993412091975452050284439888709337446654894287775621126749384889859128009605279130874958850554318479399366638989269886053070071587747259064524705217326406448414097606814778268147926116153518049586946874236397266682565698685331388719730068831639600410154164256193750602433609750523579347700429897222564873577079450630049089350496069470613598633828698453701081384778888639834177898789630968630200469472332542161580548056098753310957047604088393304271306807908086173343751943550127477659979844470725142753906950725132631307990194405966426454634262612503025210683957874799161304254306243336205248919392086535383088557796202132944625487468132004431735805493783814076685373357153820824585488972075741086509012397505557201259422091666552760729944537015355113799467790598591631450127668052029951033905256384533345782962052514579909319191411908819455901706886446537641122839400471968523152244727994742971373003026771442985565407540292273082533402190926433471834267100687282720050083078366530581598496716073264751705596147525533137015797401705072359033897377591604754276398427132700611867481250412345439625802679013106098976582911161968748927980692701773173669168375990872545147159782222952601227039987703732583018050277542363015884715769456012434536743997382993006435113739889782158603066818657367528811369482949289726511452729305644239038497052913877975787713234041268249376977773037751210188937798744722248904524409636236685957054298233574971427355553768848039673428685338669940489441736299590473449121093778629373178957309169980589933472971205049697125008033755828915610778539743059195865187632060991743789591254001032086625548548031722294489854895273825990583327835272422982969235675990917124952196235185804985670643014557997808763336004862785287225436332469313005595392870177891501231011577008587007126274506828335745349365206901537682294887260046696068270325560271439884493434994602040042347132756266228971617088023719020900836682538357310828581910044171594049286075292675935844873118592102374003738725759950009192979734825209576944229006127316570585572071894658881329871491935116127519381036208727645942386684262356468620220265440495858138552699038835819257503488675529848898109361964283842761149163444564073565981396822247683006991330050374681305281543224351754030572727826962752074945539546698083343340949277670434662960725782077665012158364537629946457915198074344020450579550761619140484438826396060957153872840777021712520374023623271212456752822257155302104298759326150894733163864715892442130596208377432569214209058671380657101683817212094680866662456218053704571422475725591571283757734360469863754529734071183041881133948161750058187336157851045699395166487149503227891450893224510198216681446286732500527367077001865272737657712569047884242785560709661164574333011050976961152635444585668140029968924853871113703960989178389275045188864399528856621062594242400264256933582355034391328168933920312433495971898912342293136071039050478435643680689538926255542227935891361688107898242324613059392324174714885561178021110500467225504716952529410893596802003906970802496771915381212177485328083277533938673047279783305805376445682233425747584931676061837413712881270068796070091783298820976376758876208292902477854499931436087957263953887163334090541970200489587897117678113557055027095487212882948283023867208267776326591811250242041137514380748246855649227514448473725374529215260909082815603056261497270913624966659968562658755266275554368269085509065712303982247110452212962616830409448105647839896626488663832059997015829175378728586844106280438840104980697840134804615779167004190735117230275032529578240590891603565719225803063170993610914777069974404792368169922367618097015987004736099105496630701448943132324330266166466869401410265862222175555355688775313559439431253650176871249172706926728870620327801844400927165071956472547525209860732786413420618461829533413898963269076967299405638996770928189110846654737280758766281793361320401473949037070807581403361304564312205113228761888306919847321406270461414373107264795231686676031146689226757968804322365620620699895787698265044276779150086720075882834668611389044149248207870652846550984343282369864480882111027000489183330536860946678232453552276367087357857932390936522707390499233309315562312887507067176780138836516381999743242733493625952952072202626341141242455222938613007164511547431413510327110532760853805836510971675615569042138154102025299196716836559451104584112464440904938746082875755256219524759011539787327656528540788484815818585416510922796677158373911048299032705906423468551278869700202346819046373994985890622056957161755994651689603002255660480787323972694661848403196953765286574276597606546307941775046116727494858321886697998539586282963542393321680692870182314413086027828993283059632870623486142696347060189835542057076039463250355528755264155539587637525089658004843197780185159961287416745679531888316131058769654865512109626964043037623633684332404842411214305185656436343867938120577399575032109174937428032056312067252663701326179140844525210400016233331684234709262273276948274279156469283594254565827719233739627951088728554689015081395747053981857452807913556063660552449891451060312857675108384077368693955292340092993263847156141746770480080688312697226899001683842544534389749900269063737713630377562391647913536270052780639827719222373356846872357749273993399472008603208754547663772308033091387334268057120839972013887003251569363372065607693017806438375404538578543918834118441757680533839818021301135751800017484073693758038095372969463703157277789140867125024022866734626118156576273739548694625553312833323010298599850122004579992520886469558297176222530673318943063885217729955231866782068583408454288468623849059994804621289156735341710356158943060028355409683651712004164920520948045520873439068354119758895626391514400052683864425346703263366067579027034429169036807686018131770133113111806061025214694698197282422083037800906975047295515024828795481877409936611266356464875861215219093336043389707862235456460634140887038585376602579635938247061062915358753247189553375819943122529794528970490921596571480653893018306778889330217294411770353406757599415365254176890151032436909540121930668156710402212943965823658362013986274762023581970442893927242965933176916787838928703342090816133466629252328059588957738079747666959634923116874153858288502230738064077541867611307326577721013661017717406467657947909465305566933162192957473828764376620268399191572149137733722956556955997150112167368078328231642955164690994617651879020582652183579596611771362750052347825517535717742688639064631566172351410079726183570817632176259044227705615562112111738684881447158326762856407322177476252556879035371400214913709073468343206550255332565425760194918059938941105972105648458274592219993873828554771161494375049221725584135144545844095574541442274949068273142758405510388639557160560492399633754065966998752020585997410624323596784926786220055993700972080567978954249923009248998810684695284055660496974163005500709098393619413412833542983911445835899900138416806407600535964171184224820821595020543761745611524916647041274067695756852009712641167143284451186838625354438957643501745302959268236821578025421385977172768084883216199328861531278703639091656450241295588636826897220492621325335040251703887681119490004999191298381760733388490889191121628939804091621957565554354776600179858255573605372978363926164697605512810827157964402657464483631690716054955112593055482624021607658931441753806505690514607071436955907575548408457909664378694355833906142374127505997321767348808675484541998296603628949120785046357904200328337763084541446516916042935208210338586250315764656292569979523138090418668703191599613024508704908323478734219144574499610333144814413158329695268713649839958279487058848031300874238169133537863501349257428456314361128470935458773842250968220810432958273290891874910331371969063843530372511796762624579685041439751529120078408798242161214498752163190995239582409855394625334337484158492363652784709889405459606160425042466061998018093278282676348096787168617318791410728344139629706637906011899787891437379537250253991572236223427014100109464518882412672387505998302600878613418437888890734132706553974626420832288489393459241027439459659666719879438447285565887381799822852746108144753128794354143560276321675440142232751502978628192847659643370257258665169327260314144441516098579012400889660723602882926500587306041121777287883016009101892141157841870709032955669057545719567120588896660690363650937138980171444598324534021839853352567047690110473865216442550359252346922355588042760860213880054297248514879796368044190320794539800844479195714011615007650795497424311793200117311255429407844260577497853430093541375321925077346350644692644891849413442128023331548267525956303912801450253114049948876653130794561734694746525604782779848359937011108531189969484341288584358952041847588611426467285825036655742853011242657899051340798207096435458114810857826665644911875669874207917101459609110856169429756684178478810713891429463106682900957615964439746225839199995616794341598113378160386809380042672140622616167543172306575870853477760302615343368493551247213091359804722940288553825735616333928486705436571752888026651991430260346578200363166756739390627847955644913528247964340023342519899493483056089407024396443952172980475421461776162130291514632814712195977568526409769751885854212057142462894410023888716063629908167861189665110026091590860875672510502282219910677325495453127346270878423949551204430768930320372722714391933153317196120170749418438838677219314167987479870813153374254877316728356770605106396610052698159585240177254683349019454384924733100093552226831449932886572806151992406132945080632940740910082200615257604421279386180954448669532375004256495313797481475121969090472891875984838656176309994795428019146200533976403150105124024383293973600632232921157225604929042973140065282799244805284238717515401298762947956863766516946372069762808044703747374627001607103076716477793827041776391137179121817386277845124646866749657569843531181728593075746254449690879177780035267144338490829622779066907774224863440720556511054587868994985826122668541443715676398446469364802138254378717690174749125970762057664805732975204114298745790627995258192574490634679427093158206240553062378342164304307478428044651413653280128207289823051078873035717031463965820826972928701751164369575465244226798778292431332215890434718975068171645581343612334954290922520728774368419463474763915755252432026099652059076942001174222177544497496745143326425181300383416346749804410263916038972385275577714873451239834986519346409512668052925563532859961195691381883869474730191534540302243552558679076531914293945282520648925794524152166035336557982248981479299037799461941370200618802883369947187720181708734313948376415597743608559946610278226950513951530269294485375574852153917620465370192273132777824202642748070217439378272863935502831684396901660103142262386122454609163430927910654603394137202031012383551913094637287517028848481611160394061444328516995792706642026032492129623664467992650543628366594813201079390391844062489172426808184712085858662083231375107712825912858617040617588294891492747990834148656743697931488061759806818907082575212233870274706673731169810775939366426412759165871104777592562726283666052579292859333302811377882038011136267320607611256600456437932995717094433594200045058763648362491167322146920330769722945399723142659080667462449236526608793602970170084179478970373248836164780653773346737462621976822758763097672063415126481312897949318071962438623079114658268528310851831627616709507499151621252402732569446830595448865937092457822678179724740883501697313668272127652283011597254173629664412438008008697411346307087301654152636170684338490036069284603292944217052678007570472705019999987461966338019650946574272317464530178325359107977100408103631513706589472431608353389764612884013921500185628133962430897262185194368705324244005001793818016388599559480184576826903683816534098456648985733275842087152838909088011407882706186668676776371746482405164761558292802089345908638288086192977406038986687340140755943110737589654653788816616508903494332576530766099836762527853126306720463301893672832561367488186939116088170817491190142293157413472907158489401224132536279804247992582455771363149186035424814215549222669146979040303750504362684121826804316899507241390267986328231115699125683830504138075597165550188882866552701311529275390173334887786110414195606366931430614597247229582436277402052639322121090847251214984413717530156832886263573513866082151578360409595713374623041536252609142243137955047826426240763510339341573967074980331522112371676979713583343635669152960572029765322529889880570724365347984072762845004720446035906033604523371816368490696297632372134813149027775269647254887027230471600480524254272921836779785344369005669131002475173681716128414616325399599361089414015963194835244721663752505931553631574543774147429513188524802754434850001176680283993357735091049943776153993410461816810867837583094477098435344615849916082651821998949535393401877830461759604348558892756729309903797275092222233253375809363001530663896333304689188394907127984436199477714398245136991163083009351022978813997045828062117841056976438404924852943092585273447936043056025716018730834634929736020806967599769025085085836508776658318728603435748894891360083307773097431273755171898506232419183990197268725857996468956435117331011073261624275772084124598932050558872232584938154171681590328105780940170657468627579244024131132905174476960377229702732503497606156203538782269549582925536503193551453752349690863451155060033251975589008352725315240401267458450759191587945354669584857016341009669812442437231995000269387186543836735331273598311782887123605275456054825162863810577530194445476462247144357348405386421852209681461226377648829380462867864555302009054601347029278033953249668884737741884633339582183582550233893001975648739425236203329226717565061442031167531594171059949472592378286659674588322914609795211494427661025559396620351870988542930174131356048452409495788710080959828445566798458770595082967859598887638620321310007455404770264281410351076223586215556084657136248692232511322350201721784587966673231967723093761010257020326559385675787778169373660546176925093087212557963922224938575478254788385157842248945419472604854345580781861261819642188037067956714159720969566234793282414837205960039754899612306077160144258340682120493646239318783035953965103522998684726343258267265219219976828817230628681176842975461894310163177379908757680779588966913763111956771311273554280248180974131028099576376774474806052531901467271646560802462268944563820071623293942395075151099266952271769145979703428626128012364688355315921278539153306424764959276369418773134205140579890577162243060888568641359421827850623391895992642378840059265778868605413766072539266570112563740290577689534861517339447877384786254297722719976926238322257451714656171221705764752963005608992289324606034026182324958752290505538112960297137488095320207555884599535553093142858802135350624284499259333282255714713255423390104794640472018748780078309477951780451152409779899094200605287092066803988229978597058325036252679485501770538516640543410584891701215333263151469267509773920981123082263565015065808777011552635025299491612647539251248433510223227125497719068009062246517803462788940490557052691170231488609689750247388101641685895475801293123518622780415123935882024345220650477612915308233152658867062138566653504881669110058114843447927074710632910450576451135981062082270020377125140517751767017599341318737775524158518985965438354551486695889918321009644586068723587898413477150437048234145344425645880677438170973635992267035514992779215460090512418549812170963161894557968362252760636884707977478802347953609515229796994554503478300341508482923162413296609355076315334880403691185614314557960298469210574285179489170234894890620040502564521993934595875220780186157048420636548268399950253320562345802987273612427970448962731788218584522686627321845461801402786517734201553788033308632811102237816213924492858292201692095088306793405836279599094528106695873331424368971821963430297609790902703558414520324953861237590926032010881905166211882498010323663361013261601918911040825374123850972207169227902348202264372078424500247026262690029192151067154870032566875094513136104692734935540007076048472114087133847716981179928462643207538790607153225065488635120006250352964510703011425603277803500855582111216115389312763455673041533312134313372881979035390690373726775194392936601643298470383393724810294140602828144828745868903820881832594054070087809476609250427404700103097362346833305257862276011700322087737524416616301788478808076648217372304835025794701895433750985628566595049148348331749163476458318563069993588022708461434093136227284487867990833031717320991976140651685643501766607067689338335902327622049240051955936937605607576836731071767551845455111049602042196471128366596536392624593991363196272337288354976983859801995857954945892045370143225255464615151695688258722667695476528878810438277297530892399469977327453854177670865137865018705547781844333937314612701172244353885379243487882533968098683262447719059279670137655059761161806535890076781782868345928456561609565775129294294894809175760711005091423939572751670699700929777830385843630230767942044609519100598931694294057740710630904998254205272682551010199381288252408855329650504107921906525544124881332167654897812174943950206303037527102213432957904409413897473078809173505055606472085365095343469232674106073912740346591458351136269809032834210741231089747152764757152855258413664531859505275987935310411078787370835768594203842572534692892611830796945521029134688415798173162710912996223162605661585017448941525810489875892321222667715240210975701803714922431573156901778856659892239908707898359846181201012224523920294649731623565354095573162607997788957574236615954712668357738468217556243452713035706271388310602341552503643179672568588383628315303580622014833040215154334470911536523166894314970245763992425616369784272657988663919240998836471224596635182714172798015079918582437536724232158071424132044178016137921172948945009340675015604938674404359547253319414347086452307815172069191865830696138044504004823630567828890308583980799901978266174954885773364888156654071071141629043932203777484593734440913590268794155568281610033530828751072256039109356524494860367586843635622546963119727031241493354528621620592184197186967564303326581086657981266515669337773862202892877940700844323589142668109939319842964875360772516354062737983778757332093791901582937454280081802060344334087333564008787290713423367271618422086008531386913870578979842011012386881684778621392689140288566975175009452982456171230997654561583513784108700996029874256962947663939786885086403562159592033840265267985808102206108920189595678367080427911369666243869020389716488704346416881843275610311408981892529356603638118116079022609213689828614871975889024448715184364323254511363158910553499822981231915540069998210835878152572903118188328754691529900970960188626226809361028172219588777146484373478869108970204156557988757090790905635994361449612963140441635151173811508049637567866008820687414241580021397530821856515460966443814738664397085880645482686494047798412428410038069318430736516253004675930702336078787569194267863113165925969926215464225951437973412275391146315105493249616405603539883794229353906760865541674595712855802907878565003132091267138981217812870331021473277063602044890741553098425067995670105043614854836172395503905225892460646523531248622300076962641173999108052494758241736154494395981314017597963154311886284181926599828284212599019443581841302465402650429254234607408476246616952430827205209122761868049313968269772165695835433235289116255253487668570309398076547831003082333288163788588857622570468471074023943877715864488523313018315565179581881467193562573075643729781913056181840563564769168146237047045482621160878705910310807307361928332567107906419715815108028467239483459670748126153596001176261784027823557183807689909013950285169721168605520865950769412618961219109313186632507721239029700735656085852444915683417218154842439813983216970130328253979977586244330423063066404614493047136522067080275575238367609269185771928232483450743415748673158584485509489590175898196357935037619389665360943394748808858367084689465060869245528052381567062048222520785770418558632332137158212017730778147296609107448415727967857352620630201181262862063289130359427102174217799930433762264537037176985388828648866895967576539358056169680592682633574166345733343119518121593529127310882082463755933515621875674906012638389962842824084864364102014251542675047867846386965560780359078569043267007690017241396827444435729817980240805164696123151545881763725855305804367817633196319013366085299932096006400028012231143345414172813702370257916098229656324899098122247067732354869000906576462624526721195943984427359992760697613044467095250518079148617358083038442572212891271038846825356102621521160943593691174196577339107398748516805267127413253239765545739665716389464621679556592106336684783453423004041430874952441336642475942893116758727571133989125332747413264171306036413227313206354671510142994532276675409488421536479742391440489589090360885461398181425941719684567343666465474854375456310936483054248310086529423189733202132708970727735182682464225801031947870288170738696681221172833794690126205612889135436674903467312817640961622080941227685879111134460275929428635167159138608306850726874081721229819752327147099341967239935199221788897133339441647805163261792989063030111467658169989049649198695166435403222598705697550696147890931918257788242423360804985087518989109514020233120588776064065381484754140847643909144751790702862152215500242488185019708899984863251301758992111539035464415056057607467237352795826380095578393532820064839171167440476968024709788248339649965555326246079647230289608351231138035434458016920198526699099793166521256653315574916538361063089093251677049695814055864755151803783856581794400395665055245601493917583092012028391117447795545607970279925841891427981196387766763999687195935312433878686923372658769211299436074620158666197135468006046005725805193403273124925950455870331496181661363465190799188096621695425608771734182659061383262797767894556817885423856020265035630381849524806074911819271966616614982559472211196896785607530005286195645648688217810462555790964216516917654064564750801319467937135863912469927465599332429160495090747395670659030544881401260063246508977313445984976347785805580306717259130263999315294424448830721030472299844530248104220845179889414528296734187714612542770429231147453914137705855676627824163765110987298640642349725751966784461448098509000826569847833598635450565503478588509708233509114945590206945134238903178622514465329653035969301871599678679328655809159163558521441159381334249637154616364309659940907967002395899098152686887415937203614726561606370803106045078077657577307482064649406663944343475081596349100830289931109051282391396038368764344945039037506446202681311727853308322142995381208484520575772698797396292200909003425091835993443598999997284051332898079848684410067563063942246868932316563669344789916523918580835497335637035650819932584335048922136273211248853018648414008742221691413091418731343198453910010283577204587234409393435569784880839493100670518329631135682351677452985867575076319551810965911980826276638251377806700842813488670342227670520160152377851037975545685188036495663072518847124363539371371643714367499951237741604708761513318104755654881344692694864528702498292480375727527717577651017151604557931954477473378896114733001984230527717404696671441765350397646194379882842251518613713046503833360622097935384190367187386092596802687796424651402496338624809981497876662571593261792811051620652346254636578912769237920151493161429574840929612422125011149080749165937310891225302650040945793628773761601711991819723437059669294436120060643160521898352128413557236180027340803867357699106697546470174317465950604721324980864888725570635781488157602244312365951703086980470166786661065969410419987658703099197051589359670185568356260791285032266121428539523145130029674375595933592768291484060553231882744820385073415558706240062858769033311924532906294257492642323269989126250329615093199505438650814797472801158216173466179165530896072226549940019981890203478791641675423995900667709351977456074290508223391944195126498538045859726179285280650789564991950498069437345358094361206022609348194884581516906077884631086808170537721658620697939140181464759987346761548226969396204631456472753979667056841293149716087108671413735954524568343713886227127908787901021088185814283420541024123860754841722994208807253078516515243089433652979664433419880560389107529524664447072417353188908855840577189018402300252089456952489208854151733586324753994198841068476066189679851324814399324427472070394736984644148645744250677179336478607514502754687384106101118284297697656059152435441062867903076456662517470942049355056108689820105265688886236369693138626546651419396708247713248629895642729183501623925054764003984904485431704342081570283252865556586934037667661957918870598831444651394877172601944731033319348715197872569427699395764846401353114703027272134405294948053839322473560352377076083023826625299117769034782753449714297248416543436010623688494629758676741819847651332926748244026464699902254080954246715609441752398537541005501842226060559004404384287055640469129168235269565567762226776525530001877364364959288481092999661100025875862726225498306219766268849521361529229209427223325829652107806809984506728707946603067856534137756633438168325385409730319010325866977195834794994545683397163675561429609619357209448782568627964156157268792305659711788215691158149405065641395934673107813276612737252819336603892128185853421058321744007118060711909948896153599904208981117828314001977404987309517006430008302248898819836991242067220693890828993553282275756438148870382435180635616642659740271129614130429073010356481612532356116069184723243693414418018741547658423728674502376069568517730435751518263232716038609497533229134410644208480354947256322559735544719442985429502099415074011096735075500341341120563937903177178885827684616707173357550698818420164015128155560887504877752126289858687271991566476919696883672432504779695810126158061620252011699379994491142924864751453496703046222558115538562556050506428290075422311442933142890772384836073042116179802640927916197646840668564457638096223972556940424855483266260803630963603321038741201214760609721287860155126756239063070577608787679688686010600137649823598992312066949001234855021064141652798909611443178045790240500165980333237895708992777681995651382270153025171625729156555529817830461351231735218617579241284851961744052394326108325161253770912324824027654562029861357899509123765124401597319655789713305957038866375557887403927679777851313439117775438508531463815048924034626943520861750575106894330885795222777404236782837564830649123101595215240150266352553316573654422584138535684919770923460762743119693691576655776454527486611098083146880082269117305921743499463385475765614482475331495712320485992317310923465490152072784545797908022294289065875499873476565206963684397430075507109299382067836155544582234475862540353830015250897489226094863240279986149590166741891874056493119496592309365505234409626941918256578470863618949900149726942491971589203096157539625784554760691212417012144166805907365963595889272916596925820927610534914707377827676690839638485139255598605315722430046833136327012819467377012102765197258650980885292456841729010902011175023483528983430946043591532067038455387138068145596488816969873626619930999058883880986635028952162776114271921390709039737145551162710120267299006005680174476374937302565145191304230679862633271923168003565229143204296355404181693274603625341197065544842001269027561786080219880348579677668144489556909373854420011023087112056373828088353520881575090661307052074466332957329085500752272851529117723191531126957868797737669049044541851200288582168980782256449234189665844888971911037796789902433881743424660908877220803993828314236029330188637490173519253495900818498674179184744448032997093880381166497378383945012794802526413156826947568383346828641443418141450280740726706792346090302394121350329007942505407237514580914589271918839638482958401101015233311270851651882691979341430062746101243450201831615101518049426071423633714006094521507298881233256148141626474082438946724251041287146181382429991091856177085390254986165990621398419877726067524972543587394830341351722051378811048339549795673201886142135024917650347765857168657233351264414337320986764570667688449479972035016872262289741483862492625941038918677848535213685295482919150015703510407554294364840946356414096700775537918841678231747257489094988585733162590446068272528775368823063904556540535710278763454743849747577563332523555655045580458103066230537884533508494576187616104409604744480211435826197840699412944886385476618411809574830285558834117830297971723436648557468663057335106330959819356936819369020338477778541897033436311078351101083111695420601286974079675114629271728590389516275425730758263572584818007319953037023802324992084197392771321718682344088811943492988916427668345602582712209031896874209668315875383200412173330443783541272363856692917867206332734527532860747224383916983485790887689839451853083709547244680569601467717259751174354948563729454753876766033188251650139305793023383640338498860091471746521590577820349082849747441136707986425079695247687720695386049896737464288574314577214748889146026539753945941800635486005557094892626701462815085587098008987591890416443441795496801160344287210551669297714522213248774414956233447479027408757491754510205242705123323722225842284178145054042855210055222847411228785434125304590031565377399980699793315641699607178710418309303554689723132806046898758620434900829288210158094629077733195843771740318793226487866339254350854316520455173503772478088932793387095683674375176875693800492767462249015024965695232389652638922853929337686485207136141640055276930270023379710055378061763229642366352074022992815755428081906531642006418669440336041003415560816088069792596122761906661860641698690884603309511895918940902654065182607146967551376305912498685495300173881636331323209919756647704346352177310668293957215815749133110613730851513770993574501445486628773841931171299945955549295132887649089837949887448812316147076338812280789145506838648063094133497872620378297549461727174258655440036394790417085010582870523207569304652909768705804084567111003848980175554171950229433566408795674404968065622845823652375328474022024834586978827256038313439290454761026356525185961178291638485321180309707670628583022959881944734382914311088770465109320309119663267920530609566026242078901853978950789885175651285396214027622868898411812811841250412254858931000042873191026562442463442396634391399099250613718571278865914860950878085739203549330537441690415920217303603892485925175229716873187798635710135621194271735978515673749544708624839737070778541150364174001649126948270513648557537130934524634978474506351925732303981064760190033613928498787240922595955521319228719451507166655014895806779973538926293734048044552894278026284595049105725005094259731596042568753809141661704040614418595048044200982234254980392228749359112959794113516448543688143271347469306431703816551383338794687339674038205799542467503624166263158416028891864457999264210955254346508999262054293431512888465122557550320534248858164169189206221497231189821242730053482655092665777514613807206169072572249174542559832117826955361364578939339742030514462337437516390979188084607037451313386215498039472466156564094704713062759843406687026183260544984753093243220069930504266663300875796858521082354170407967144547596583754551670725690808396784064621574590642737451386741462451593017245971856508566051899345657187701657010937650582442592957396626290058505914049742278246511785041267066554804291577536408910078885652502220217466146198058283332242091975470081038147314574819835477699090982213392238705073137249477151309800450940866417308388523451558168772402671599326253733723288038615956659210499834021105906148360624008643543314086911530409595288916410903983353483239764225593944924096370729120569674772198927800940876838463954957092381878317239850934354625321910362356868248016881405035703266825337083651484112925345662030339496478106752510708544600953318548906309739076729057593151426583524742713818799173243587000610159438044973231554622379523219901183467497080163672501165110702331653439109587848883501382706434028743500319175274936083824835132182410477763091178371162927032775245414771094242690311054749079068936258561566042954644763523391209027256746365875937291782686339945570756350254942224706482270501264439203552814245683754490799663824491406606287682176275086740549495700021396393374128046358925012211513940209732755750084998829384298341425638032012171547091182871148535265051398526218331199419442361941457277532038153102644771841316451028533634511409361133200005678479129436933706266058077194615333305638262894523702190773327833752287493813569629507693816379952419220516041878294828157220436713183300815254624262537595995695511226463703386667454938895599929155275026439274406463444765937121581844771316176619369420944744294467346759131388154151331770950470757644559082292536665419988398955811166950859116764762355203641519696179158627536810542864742435800502460873897467796128338912867828398790147784017288087100920288339757620229009184244329798120343894571355372458853362113239913972941580619901971255247641050741177325928284181963089602116349667437633321505551473534684765555360877525519966923711308716133788234878308832454578199066078099600673202324391589173643792384660666529891155824924240972534037746727616599952562435342766950774773832056308154987147402024535402693729849164337958939834260210909811924778849579923601691815084225800543917003011544535608927439216997767310085220612950913200525835573184444695995659524177163076312190450315767607773902625228266046660808759876953102751788916015226751521273395274354427105637348770785416618368287644870299009866091657145767744117465808733485495254597595391991673740101118977146222939038000730249084276839096527615647240561731294298404998209640729335247149600797695848244196721457816126643079247312484506497593002813108607527651357779506984291493772250096465461466712065864386873721414080588763922224942760022025736123312496487197179245847290618514025233450349569673160841498039958063551464532964922366996486878622544072174361068696215423194009952165227970044954815067266522885246763143606862746931745325725750754972439741540892536208915160004787170168800637874618833678045545864581057079228010792477557882029964586943151528160911480220707262891394059381661971937762545372526426187094795572789379106233767712093498441175856496096219107435935646374562007048515904315438781949895229266367577604534629469080031320180995933780036777343288314645492048109661617761796603684490338081637187613043424899503234038189679182355522905228556455692176745166689790313225484466038853686377605875131709134171661141833888504786736672236332590402392506521585241110057380135994241417547566815956740385623418679676592179226679572493708248788981289585404163376207616860831640031707982160761130344669657486116633626115845622414887080304449297118070186932914393136404670322098729597930123288522339527463127833006302190117613920659927930364250720167942653555924843134552710989696678216192010171835435756232298041703021222061317158038283478594532311515476803734600042053384427454254634963841841292244408687611551771185401734420219854770202221825284109209593702095993840430757783329270632349969089728263367355832036848795780785668938879604415561518158871756396330142162940236702826828170235744881920503615006473392666420286686335801087344193010032248594594263292251848794201431450521770563120835898329216123628482731275185446965110413632584560249688673788940166796448812685520072045087449742662286208835243227373515485856503187735732930036184487884976835880114993773580637119793929389053651889423445790387322169974300307016789518107130147666615822791631779522248574805767686488764556754194442782179895174244966175698766839515153876460516834806642562008060152274084657266429462773485208529208393267071399743884711546236218950422158806536831595410677405216699216695173619287234852477662306398068904510057442292089273335809490110359290270249113725784729856024599256956604683916137807921632741923026181979777321401676356161690516062637935062899656185563844398853044742325787624520792441472848001289349288217843961263350345585934859846754285305451860821673309825660785322386001459669767410950818440755708770651034190696639393725685052092154244702295646924534007718149870648620057614442824662667379238203985161747394329587883540835944781800209023725637062759580374172841563997408831153198169228337885729729086771887462495572569486828079748899913464968048582270296443696469210399138419115390193920737448249989072474379058914696408004827425901483720159838568019549418454728602939463137094853075085986791492004698276389070482117262232767524303873078156130108010080745809431500162935565354539865358432687185789378094841352324639776357558019238324535771096139185110042877501723408295484727509449989272221955579550272664582598453507616237289445866508991578371756188247388892682923917561312798648626526849114869178992555058177333991398857312107701993169180451315497601437789197970528257141863149608734757772022093795960849319472894796894841830148088000832705062936856879536034056015635796616605719513049886119643492166820099125421451155165276381610135144918187121491118641022683512451726869812487474126161001742482562506660820913937652136988017115518837993340352998942155378835517613354465707869097245493604096296786755745897033537385611582500914408006947159662199917992384152687533037662744432676510058924369055342250931660219407388625475485353969414485330071471095106595203581509645655555509671725621039350219655525221087384221890838817632229959897293024973736606656923856986579728351327284536841955202140260408433343379196863366028059480457919823854963839399473561198103782871013892168374432571906005923325652145400257693961144478305181724447498128053116390380351297198440296256995658280101730077070255090203572242345782019400815831671589341373111545174709987222441664168572988804370128284584758313039044650308495901568753083252409572178637683091396749845438668262963014310510514917182915621165398781452779341034917703582735442961916249942565959959347203501035921013350370895112879723311042896840286634998144156142535998399611294302495782693027588883430856759997954912270928385380007548603219111428994405513444413996472288620977429997179952051225408409235359780342592133132910855849695846685894458737223784417957645087036199023887199611359546270695202068327392812604118341001018190065632874725214508108356973333678519218836797983509049954057247502152123417213369773265327641275880697070833806356307444579169196958579017067752942064799842066569427748613472854470167435657351699160361961484250866006656180733693938744573056689297982454259996424788061226555537520745583291755868466451840913273820565902903043573449352636953047166881321451956386939562808290708608004331784296438179173251485036648607131119696068182620657881090952848910945232797341435765284538320010907935468490890138136892505416363353674910518419819714069090699754733810955945123210519714057972727967457871031847468072054276555889163319436360501091628759825873873320725190182054608623989239640403869742139064770406776402249238658645812003333958529119717790184054099990365113326829555355903733695274096844595853036335538907701741333302013774310364658675354441615235914175449715127657497391716225094803869692609183227379654804140325019237254951115653277616107339864253031964588916305638949299364290124853502136139399580915265649047759838610446729464198991739058653907089305074019620992316086522307728689817579323504202355572666864131662107982193285923927002409421714891707032506308154740374363999151924894727882842967796526813882580182612094057845786323077155679898192518161336653587420809960493357265475529198543577970436764335262171593637847752681729331996295610036448372021739373334774737235470944867233445611044659199785612764103457075050985725563652162725784206147030764002494957167806608864845896776930439328413418822202732086097111786646601265681066145797218018221530017978042559439254950605209761050935584315871289553734534942917703459404307832783328923475349240710487539807488389616304318088813475695691746170010926628860627077131918620595868361873421747023535970922143253345957052116675703108762406944699790387243018863551585798404035322260867646958916442431690713258065067341749438027367980499171254964181248301338178026883316854852221619146732035549138880102188568505190025066852240228619245593462655248217318769845688736088966239447139986012951344174145217254720421956445148436265278308851932894492381173124514093735970839903396067682647374909565160668671746412695063144391524863591940434343300562137964341533834587840119873010834707053396309504693474942052317188002685339092943980842216556788650430082591248515514075286846500157682568618489794257413902092197728958985546026041389353162569197780053250502818589065197585044041178636688459435241312473094055868303361568650852209621219406413560187847836939200307813691527221380147048542640487109979119785814455244575222723116769506893983153947281054510355208625334996344565237023619364137602954361981533262229940940651711080263659714179795688734604858164841394742934016115007958843230850443250395284705497169133214928613438557322287833657245096237487923320686871409710312927392966482749114699310105905315601426776715040783879119808013798918133573593349097332500185599550027887658437249993166233092900174276542043763451479313408517796932481953099463539108779931940891827204944172217906546630503593880883731780216647354178358688147537394675917781917126335977806433338213044488093872483978346902802024222657179348236942896672940848119425504005752742210981716077120776196424390476777588376050533881040198743220441349770320600502413373086480675720200278308262344645420667223595245863424954235711089175866881886018595015332179309234593982886566198168710935098370306091426479348997826606168310044067536407039517012498232230648200319376619836646486544398310491952187999476793593556569093317428578981748550987429143806811624328355791590956356986634890487365605113674139473538335626917919529121389433207465980187791082078493043882440743125403121027174639204252237411590476412662422440038093292298733889117913788870512788876574503401873854735657307937094225853791069571161693020231359634671699035773701654024880522071206677787696077144230873791506214718182194144814760792594899382909467968580933962388391166029099843767642151071853019358831964876519561549611280934169249906420355494953102002072949806364330073463062818650084527123454379979427009512402505734364171597195187899635535298523293649189659757804787433925269729696082180941628986802584404453649525737600308572907594315466140257953579708773435575383213152749952815036274378338586095079119151046702570202184534844353034541608406278713972484162994142735861099753841422891933847450730225269768163248707542488406428994733497761590077382661516189965819811891102059449269002670085575581320578840750223992874797871076024745002890352516515496885262472030205843167494904610585122382983469692997081952434897436535334619563929733150290226398608955396602554059664612320479984891606300301681043812230483929852992738977755261034387110388907473042091143665721337225377739780148573066852234558981949420197557635500342936461780456436450850818335249051069429147056332307993998338470554732178150876061171483412815203327475613850208043795633945040717296301011471321127152316734608202136527306085012325411362107818633425162900018666124920630857142879089550782494532663195268429689336266118547122826136059243283977028010396481286627369385506462593065082509611668275626602558183469190957359309530148058082133499384700737184665782405512288584204484991374611922407970719293500703654073138973840278024078600810737698875254891945056614563361582798156155274270284366763300463935783361227845403319138348171782481132551080243791246018634224350140506164536008374793241535537483273175839356005921161365329584789518734289518420075038262787499072489631979822860967556691266703871581241275206922253820852940232088614969106290351407960054281450515592340409989711503042754993388551761753201111060316851898042780098982191897990990846896210657523999992791625302785663821699833193288284813557696024700909037790281504109771068416318258453914020681780485904890447100720025624575727997871726973073005213072198040008688910650818773177703274186560955451309496177468323068873840789177130314486807518748813650588442196290236431412604773341244400675494513537785072507932705962914613243121411610236514035427392854543009952955736637174843051303906591581622716447620345227607994533551548079224281240554760334308691002327428432537086097268888555149839103072163231649579510834666277987288943439771757068913135020787293656353729756027581245191298273543888954961522353111959767966171738546399088043271802310839849104651647536191859396495831401421034234621081285163960210120466714450104170537388293753378389523195494335001781195794628603473888232972583797404013323679341271876540023738106924171856775020277739569187814566729525386338122859247849914399716326207335975089436014106930279159595380408726972333332863822251281300925631180554082399997079161714805556189082347732677953633783744781150332159294277100498272438454696228853143490123044123520294679663651078879605934372361771205291466402358370039146783961919533402636467117492287371711868662172795685459387436376154895474902083000103258813781335266854194633440844881195295376702857212743971588219203204909175485698441902083404781604959530802868494100697708089574271878443451858266100020546207733547201931862422238286330145207163400718975306954589660078920803486538013839211442451061308819388062167757837184528418229894596400310073381883877267002678231322905844133264126644186694862509100586348145130738690554031467239194872726614596104157929774713183948966311615231679899976983779281324461763379897516805452576591145786937341400919234350411587230067808522427410867755679699160101585372931358112484265103658708427416993970051718342916768408739592311362265383796635689733663471122461307643541167565371938236255924900865602373460585653215244219720710697842760886711913168640225795473156686748210687205191964288036653054739095958211724889526092200940944697479919627769388068335620155340390899407241942078555492265374112691951580512035939262465856007926271041629018383437143777493472889418749799377432603096038451477880768505108974299390094527364343735439576983745468915549473881444011942576490536209765387233371738259921974327611096176581580642468722195216031368277973154417126447380800071419369810385988928992834151085775223079306435470554911617800024010455889828533481976045988837522637814400034528223556725676546082090993455018083880735148502972440408128110129253902683766165883662440842320357742433473244365192989877039577265895406254848094294130147144022579314860087289194734114812342859723012421064848016756189943932570756971193943680576984633358638153857477842904330576836418429320586102775495609910041082630254476729627469198329987936573272691871737389209107105507321465723621319699702848259396021252162580377749580620140578146219378268002223011582094308452503485872554773864763981909161814762707922712079000182961861984072546002497294174118501118193105715380833757142964365092771313426358787629600026867498519892100063823569750656309232693187459591054691659692952558211204939926988332303295062333967550094316047421360935832133367915029746348542642286866204621322353320363509775912601955865064740575837816440880332767745361405311185824745253326838659902609915217908437062647838823250053537264790594076259924280821070118914561413167733113648331455676985730222630224013509730217137817559544242273087432519868632124145859720384775583828914759125030098073441956408255756458166234954328952663858785217792109772084835979513160238210826930996072288996932967374628466744906741768332968787398174375828529003247585109098383553289715251914645815473698370049246620574433384859291447885941459126901401690963197134835465962680934433008649043007674077671405478938097438891716415409953123745767597693273855743244083850907760982744683063988210530658123276234290037528688876877931027784261735198181008626496824760364528446218919070204658477292753239181614321496762030594463692421841041381251483273690186780447170762390562696160287461272130257196802339287933240258503583505555064700588524994673237734637804300649371490766891760797036615605310995806242539477680913727854128603478918308770019527737323175389728760503075957781878659103884601106203545265537193746799197935517682862254031522772212253983330672637127929309690833402340484322011877122413285430338207098341808775310943986454913811202800578797927447433738025309379679047815013486658951202969044395345625019267366671011754734290019075484344526354121012664025207415636554995258645809549021941286636899123073860087310983461989532336964816425974223392723047585331117683116964153278440928479556653552432419836215238984165475546631838977153029765948218297196015955433670946394127382428181437238853575423156647206452540902469987733274510960402397913327582357033645373930869358301655883632758786188687246054605315846784822733685446832602991407824697385060215434458145944823896196591901530150130241289334964765774185895684474272600007924152587203475076764953090627469839409978331723643115339799755366799628991531960857008705251220622506625887079892043891856127313247385029285430185287416192698778121547154135982738722241468665575093795723337533785607982140755560204865331694334522000693205581903163510992178104626029073698638932251057911974605236540496723183009440491239416223350048927507143174415231665848493834812484773349460894175585767934323700442334476943204840959835595965245258258854473199390996453831033111682078504335920637288464421126212541378690291014795625417661621010358566340457153078677902095697852473886030937115528881467450360936614836298622709178555811389856442124330563328379430826733684397495351955905310612798321784866161286141054545003165327303172146811586635833139835445791656694626991133035107826585378623006057395735566101421079079984156415502261274017653900499654582879297273166587631613359434212313968434131251454878940098194268701782248964060836252039601195710585716102658025350040918379114790039003968003777981884760153544195178994523883801387668328405363661368743203520425949322113709333901841986122025436935646064362254401830946651407980304434447938082315088001747907276142120926378940915254474447946420664728526132095749419657173964533142936208552155712618635237814220861923375461764226909650697020631319353624430811090971280222120116114726798994882038434638837725595310380844513354164792124381940115420352508333504545873158419856050091357939232401357594853801359800433456465077255304162520522719003639379239551279977787117478851175814874744147086560321888475109976533117247629962076871354757426207137576436133612942818953808587517753213855246040367778004386245964838116982178490517628859832306648955263407892313700515703963296225042114103190344177384625018398867810977921414222940993639019657858079249064851381072450291494891254234348506278748713563301981173228873502498141133764878521968023337888959514401569019588854795237308615641578086319074555724874186676824340382625484720167681159400049106418993365803089657307142814358096335536226542056160571122345688392992256231967789425818352195076319885298766378526518177924839531198421886817741831778933847498851528125876437665917304218337992025156854038290730352583138752663682589348808843930849408631015042308956421671337348937394681025167756752312559738407654957488260098045845788725696973224072493468454876901712090068918554770024761056278512125332807508304554849659669559013842065928821672207323214024842018410146589311022087456006346743340096787494413661382880287683649096293185931139871347741372956370419989813724871808326249127399159171042091127568182831301267996719761759017803959143050906558784043746754322802491072422618693908591971598495428516358002224271535145977025636378906861645908219877448971541941811072128616882180700414580936201945558442869455486675697541308685436166985329509090097886079521502487845748329851632165295540006529007182575858216939659938107064176505567072942568198676386503240519993308494870743604529424290021223505389622003927209528852939083764032801982278595311180720812103445238554093716593388719776489102280714161665909751785798781616552556654985679810056390203951765367817187635666956595120751885174528906030232689331702913140641773481339550891584079564591358561945563295466006772827271938360100797339665241857288364499400074751262556142555633524373440262649665758139058270300185214842204981384917202006239250299580487641399368424912115276133242571096884506244672067152058751108201060950375621903166807816644133175274256722345012136848277123881174004932316024281121421908496306902896967299402833402085273632739367360935725573737224408561908553530877729568769908450193697201447717273782380504638443049637195736431392951507981897613273968182004401132590553050295602097291495492666118715094904290764136349840570348232790612255141556686935785646911700614596464871025587092454216495685964079407251443102197301708166432478944484495725564852023898317226972421395760965644868118808227267796422318246776433511386257637947903385566481876732821466737961433966313311586825064640023143284018258021114750139083162275900993200161377413147986647314674647074839912961513808788393539743848608608680882257560326440143547027615532828375068740290845590259747211483970711548566751179352624902080684208081268546432716971109542241330325291411255257313580361867931398622526154719090627640247234485701159342219404117765317834003265055303214810834017323855185053032908870878456862678847809239608085837541675540674242320336240699739924274225584627101527493772693304417264701420766544334745283981882717451998816200197015922901879773955912713756106596829432422084668618688456283308584049320524540909274389683413996161173806783157293202752465317811328520004905361826201561427126503648630302365722878555013475675307046185272669196963227195469370132059214160549622814530677699372649493845023725058063414969188746461379995059187372926143722700306660757001326316663290730101991851273716612630184449200099376960772112512920229766840100057595054756235308546247241960475451389522678877972762132437917981692573475062187982362757826953955152466512733844898356723487422623761630504862771042649759660547730270820932182782632704608934912234213123376383749609547609239261281239046517560018866622890197642133131467233459485775136692179108829404153418264121404945801175809928447014585494089423316707535666034767832764912691046923324922320080443413406073409252338104914485668223646006062766150196484934620889620707783956836252298837289193067981437528325950743740811243938915523991721713786569044922446984201520889579607780050704280099624555466541219778152714954995041302986896119439183515862524919353721403092226789697820060179217222882877294377548088660952620918290824634271398333847313793490436522758091526258074536595385581526910455245705284392825374535962325417870573906182601708506221628942161231531356346012910967665102272524328654191577983310710200582023735347850654113512247896381320662439545647657722357415326305949302629266585635052547788356917957279450135769458452153791998058994910392227414207780524209998322588639076725876342027508493153837732657896112081526702892992518391943229956471515907051071721875125953388380351877829889316767878379537175478798651108614686139236604938758685172246210291230560620558139290819578403762535098053252430165066859094484221396063840668027865299455830418645984176017406994110494984419005799470600513201898721342987687653058625196710523896281109727567457519478182524673423957134946175873736044887985063914550879355102146052265384281526335024660649978288289357066359999505077544359343605916659058390461574505113421091772581064805018212434624906637426890854555205274577866772288900675330763639485048415279034095501811303810051068464513220587698135225947336147767450084897386799788220095449487432974597407404316640467609443552976213295380151908536983726372949028231841218123229504587401777373828814779627317671187598102526626971966428761474996205684313243276596065858157971291086383135043891937808912311274356531483308859665970451486617646489132267045618757501632292209880087901487406882856110287081829724614005659783936607856878030967449403122895790545133887258926788217903688168995435444254582877007916075379378428094241901354475766121630835242076043121529237362342015761572843697824272978339324374478628225418268628061023446780892007129260735273442609967825889094008462691825783187891329461925112540998183595665151306624404120690485587119519658829745595121912148171387687155438091564302590867685918142750368205500797056203547723271735019666356103870361428242909536010419928939918500062329147568363338152940227582181506238427669990440187303507829305563858219922377229979145290778097442535959802779003569866398175533710296851461508498485066695329521496396687160549503551133484718411342824617737670446664150980859046866428792571017471941068332837242610470801969382067117280486852391849432030572797105769774278462552326766432903034925274633662954794816340477690321562551456582405695464383600624310212537548245118104894084820441967192639074220396746027154739744597623912130504190556470759080301070480269688987319377945950099954792811797374379402598591333454135678658125277139670009598839067711959814628089856865025268603309336337044067290891894079715172340992221833753442712837758611746983880638171510286224419568943644491119109678159540301192110433065883368725109485799293735829315349244119838638934187338867878621684219286789993819120581042828491576131042052207410549417526403478891181874810809309386737182141862610382034295402275482129941398408807348235625404431950924517293058515742265829704106308477988111037935348950011233153099973923270849128735508717584871662966258142859130624430514929031402391773514168878289347129041560671283265734134915338639091802735226403826642560682949062995436032943908181846239226175263082490824514199798706675570796290931559436862404667908117154499579241413616125421359507342999129123268688397242997009458165366803251297525096884145454178967150036460097735071465541222973997306882780629044783532212580471721821150720964750832091174885070472751148681469061935145793767330357003481944609959287274499463939752213002847239110545571096686654263304325954477948600353906589576577433872650031454634431861057156553311274496133246153863570294392598824474775512807707494610245742589528261667942680081622223897755004360247823382813174883525531398330075588106045218460964808395058859712667554197404964384657594552240500221566322673678941433687313964413917826685007687623176177574805297847688000846897683340374146988173610805934972446220462033524883797682821165319013958641815515419096768141967895998951450295665890007230186618862116963844642715768251848290197793175027836616676279707260244856880057557022089465218990806611783175977270619529211982620199436741200962475190307701704667569702124591150712317642205409873779702308638567558276191564695968158915244737895998512315142746608438149257810066668854708203408859642413863526242377268140874637144743651465575459314524593267277771242025046341004783435096797387495494014858084299092274936966935465893220908442769380186361781828206977808212197779167396813615735200763744151734005963709829420420444341692260830005707031746065139770814793070723908425870881913126397308374088547913647506927755177004731178284555766985517749038451666748511226951727816469868784081610405410662410689954378765410901633204615315025793031791504226425721066928662757361647915645590665608876722289097566505452979874259834615339814770190783453013491158316439751740801939594054691185374307594845357531717139708758739308239907750878208693658878561626533628968010027728084317077075685281112095448482248393373156231845593742924015342900047696124183808196538680826936121397173506249133864629574942212795841077438575514185139997065215114401023621435953173002489898655898658443589360719473210378297542087258476149990344684388333404760205564897604119059635560822627291452053580600168652910568158622429264402668882222435077000057032015080518731088688519825131690354305247640217475031569632374607297194322826061309984369813591832390324720759630883588676495023718725392904855518537527941982892747844936338969008282154795792401228909879317580032771905641841285324636218040625214129582597049244702394921498830173384254508133309661860319418642838771604342192651663522147760974649975604231515971080771067636875231117732377926885918315386684362861466151047700766728628939370694608729859991592578912636717739961668805123350298395177409257388090778489055405749359116495415155018190263417544980766079487229514209952423681391597262918742506038474824764755520434058879617105083058352772306814678681401103178743302649753373284440055775312791409208016649007747329481717931465062121027818762878350054328195668639058776854594032820406859793935828304615775762163514246551201395029366321543733921988931173124109994295301439090031086786454074877454252190516025241350299697680181289225708373526190526501385199516901253204737508984582466638162160763924927569257344148134980164869825818755255624220134990240329952546685599861162231144266102731743482679685403979640288059613523032425709108027509819563827888263354310940800952026639841830309859794227027951523245751038338060556058121820177381864071388181071225009092179769691131124793293301749529292141946336159257242976713715594487684015182385117727486288111417240743249223632673657689672429970932000142871437521447499831542170012703056395453196077653349590072919914949553179351485364779182592034247475479997543322216564495972981222935407238385376727912464087342935487301901643076176441832159741004698526966020797034142477992258930353902029014048001900544740667465392647579890308879721609671275068145607306042848519895722231955027087374761737539344355408923744553679502496166838543210888078935960014584344699800906709566451455705501156767045720976408636779618395081093894371535334864334596104857675139255386942265667835969449672121671623118670891461448385325559402234386673547534199284957636123643556834984692389745524003891481606007570930662211735746779515191641445375417127378467892614719543361210415721178590546916162384622321209405655361481749584502526950305619263870530853003407195857087294583838316451316190659516011600494309378940526031835803186316536337650355517721169958493448490493833835105743561493978004466611548563371196020668349107893959910839727008259826057510091619530677026886000408308396455641117289285630020984263434753063802201552153008740461921259486903470738086757621204843142665236741277156304910663470065241327584083154415536516088729936094671620157173913064984127496412899992006252076204418046310001115220747810458224357069454102998677036820081964626735167139408449768181891847075043829892474741200670957660307477219814479733547447252208744681763879443719362974298440274846662261055918205015949717986044231629879863761932687159440854176865026835955207491624534204316492064389714121993622465174134930096545834368620890236771697374653019094429115136288992780573099278203891326321331289609021266318940627817718249688363588726748551041085292574911101856103040729349425099634424618375344525351292016528912563045968690430641712493463431405087561835042462883912961950744505203342706386063671682340250007523146069681091269963165525254712014975779647964917504264867824316597867541498471385586360396470473569052346343976203868630427434467897197238857608028744405799781876783396488724202800162446831657477094869302062748569769608099060604155400002834865654782061633851949777334815645795532288704464525089490069287588125772380413902121517200498281779100735359253324889190821307620086066109870926815333966514614254986465955420395643309630578922189115061072067057973325945888409919328208430430667662896166610443375936955662299134501264844012440879568339965618211157166058879829769375256295766782780999023372320122015349773274117695639323669149349089667218396167091999299850924210456714544648201672917688967219956526257225890372395537142071197695987773753428748604704747620210995947637173799818000806411636039067434129149828073082601334754074932555703296580147335956362374759864890611339584090497859887984843808351674044296494850734321354344417292908085332362671643908385861315313635647908682981128117438099555790023607965662388828387800704079583203766293240817546959572773820347556846257006393659098391718174363775343727041248743578490343119741607030466973517677388328959205611203415368844566846587632282324243621355527458499095528187425981271337230673358369427615058598161946303380366732644305626697565387693719699700939254308279260272429633245764576561345583995349157993746213396648552807412071759036037469957706896499679455703306742835801485345208763711593698863599712982013535154265332319938751850230109964502328359853367262446006266382040140755982128601006803644181148712777435666166886786928000153836333723978824389436380408106641352156344091902469316526397878124780571962639929396095089754951755469828499160418258871514437574282351119229771260685320722395309656389077210833465859339986571375268128427191118322554526460322331428245763404552365540151957839552589154297638140087950438416822891226162119991162632752876394370119780606603114409147448243253163850713231040325319080480276969795213910548168826605939337043369163927331424376905148512273344068898057193628508254307780004659016478052316464819462133471227388053356371280401606361091890504903641877053579099513480407543209203279158196092939209516432623477252704166622795588680965547483007367435466533554800701757209196674365733716432068415738415115717660759300660124862893822168166277876046216992366942400109373163883307090927895844613072714671887656085949601036718715663887546214130938035866153889578235532179109495871757984563267939515377708804862345348769758664545098402958621590872344022684971581299854390403594129217304150807958099945714162927887174738064989168413549368459091339134091626144999161911402754581215117485626736766173376633813085406440549519117580026431164418909902588840290563305396847273649514325709982740522208294155016982729465321278107206584602885247542235227508962903013968208035000627045012997253237655068336403836964706549835967518999338981661641969175301571032453065115616580952305710167918010398464403668595052394528448368434131479446212616342818707694666502164042828990087492029258905837323589874483029283581903483615301111654378413145381119396140426275693323399619039223272796627937380915286270014544905129932475198536973133194296934186090404543688125410657648871353888662049562919665100634246696218221608969463444393978096227085131788548548773670801332718129157477151363812805081786085866037555583105880655788377005008906081054491062544832344763666652040884922356918810209960709688340939437635777109319501090479462499871757303825530250324515502594582347616514707785416401200102084464031527617064260525671650460947703369328044813643715802856283200438308868778295573273482758209913474495715235068967126635596741291478417953457975798838239473054830287635611651297580642535362624003788000203038193336359739408404313336530064172979513613325923911542931858838290304581630586664744851304506128777957572139645989555755423383824898929048967759263097514341391379171472492768242003744161105034811583750995898590735458586984008989415834761195194848779054656419878248845006844569404514926768504239195026283754584539727313760091037289994013354523734188755818192104846948297102381464759393819199186384786333293755708230980492152257389831100699915996347758441420202552649259986682038934859355945462743160737810756017360963252185060131116241638719736552620836581875220492576894549515938478629729125995803746914044034940966951828649184488906010553451520712288071943129041312038910175755365877938718472995508482295905595569905785736191562883799663653845370465260108351123671923079506142944209169773462513419226806893779918415996471835282331222662114167694397942881248299067865816031173751791774197730093337021899539933058764957201955655502212861709661668663590097064825048429228361607273669776435957065222255755579978091483539475693092040984166175682564671163218132202367758036777455032158684282147881218646839000589897718022719402736287254854444590100797260604121740722586510583754661267198539740910194031171378711902336059607921980176313522414392092888992995088482590691420962573529920668889420609504780092848532355805527309691144767730750650164826480332796613611030384665485575298133725680753891277629861939922626737699257095922163767196131577061741046143012659524764655448723339838953334210612793683656455607686398534123550575287359989504885125664812477861751114550673457861581226695503321857723338382185489212655574845471197283183288723382827124272343767300887299046010067677710358269497040589828944963721135080547294925415993889437433668591143664351713085081868736150623502379712960381900024830258830422177937713208060326773573193490451209243034282905375740079183738835014676173693035335090186063302167710807983667740671735453373224250296742336940892491422427123828897279508248029743579138118894901584378137485387320331508968075433790257928085973343308203387232737149727134020842390854781582630966867027773311739237882501412790829177276470416619465845001880527234057108302355447624625133457306392426047361931709946051438981348328988470447338823114654109281074986991956634833032073523694777841442908870889458742612736502252592574338888738670395039669143005127974137960246532735404211502472100073522756231407301926455654662014631969320370045006935873640384934884874108747749985162765208552052798755779731894979174891034779342115219549409010361389572099548208730553426866776046102041437092183163952508409635288357008943907703602169355409397209805329471882483356794862230313900297470709413829249750300211668960802389922165182470106833916102151383972943956546938283103274586365812851934625502853924004973610441321350757245623579822991238548797528234645115567504867635866999987039014909016875322151085824716385655795406671788026964894791835677850896043620764577750145311439395569564014414863549958446723680574269995581399113838981597454242261528100310734118434214030920073203895434902726400142814124725309733448674923089264360147560183790425777281668504091201284011571155874886716688784760692304708502566938044331549589863996471543939605543975535723638973628614471580794437745465479046147382463891719017804072188141911702661728400007764272384509613654033212354960863456561811390807043482969734420318182871523615964664090962406499618251370920261820976336840686792442187501385785687725049055283237139623148129298918255691903463837629801574126629246709758229905753984207002811723101990312701643453292204718430678878391833925529793217747961650401940559782606535498412405313956435133818888935814566755410187229831112624275358486052289395282824480469988800063289185360095669843320895368997983950472286883332859003334126091681903892546963262880690888258945113031853448521575424686426793811324355253315313568747838473790824220583949443709649089397432412732702914462670462531947570630248031666062671824714117662640127880350446164006832015221749036088604308514175228663782016073016199780883138472969522182906740828727204670480835449991732881718346675953533072542631232369006372586293701968875957700440593964801769338548097210752488449300200777662677035142450108171618108884291012672385971586402071500397929813896203991171396016145719010457331143042132636548640977853065246585869540283643487624861386855111410434823105491928604902112583512095430594750567239195932632225854871507826767480838476286360526305706240007411066656861359132243095826938254730603501935524690188964250676121570904297809468711275829633576786965651112017782480593993056907989737372385805493680015036547989835267503260402096639251477388777844196067587844467681683203359256739669546563666971516984042841918272342381733286213392451814631109898224820093257342997372694948586953741043511742659127555165705111384676761910034355015451711318883692464770258399378056416982274439073318280162910256071778170357026824891695467869617626706371003144359991681420656308286897810374197772903930766427762211311777487733992937356752261711970190430690178985450217121522143569107914680951386229236106130217500704719697568891208659046663191646873006908768434847810058766921051141271412233687759452159471924956030027385397056376607290900496206203891545287069653310075895601594543846612363088082316209106626595972160762824245847081107799962020690841810210146445316955386160614641936073709821226934292421422837272064951316581272083902841617570870038426198641543429232811498860812219658264126460637686310719010588279900632502592751362846700608445346175030528770415620634965144326136482279110307292563957071008482760319282998006428207511462837092540570680571287248944685444292580232052867964764029231077136858931572713768153427880661218206484616832312263172757117202176489422034457036534896115208464205036018513640798527407195202619687488115175494043749808079463241748582731009850608543474992417764838041694628409072528339398338324427344748977181363668282096207405841636887584194572646414312921406283289132710139190598717232844211650246461932241434540066249855821048610336150440349466558518982312319884990074331568366204038625563816272658296441101491210996924266690708603229913603468325048920144112140776818619364275434799489900698620978155095699781518275873607840329703447892319655301335493496087908436351585287221065286091611794511307335644854257298030090759168246706086297282849888699259264608509991438893387079550897248889159633074625159258318986345608235038711834330806974955425021264716953194889055884863046561603828297987458375956674266058539898688335705377870437070207893156654986546817071288644703439176806194280282136313652318662553995453881437951242727972557593379557749971496686273983510178318074025694810529020611303858437766920319107059667944580315271905015144319776122030623422175632609290604271627868418451710678872344784674162386466954935184488517660509733706559298310244760202061799873161429443677452924043711482149700409067795597226252290942097726002362830996126214018143495964932943804634451126172298149382667415643719619077059834547179426241518301113587696188327473078966369621969102709535473237483765486652311204363238629436599222170391302112240205824727331624326851682773720411855360553150211982858485561596258158801569510495329163109318210492560943516401999093026256009326527691736578392854640710496832942028760693084346029559025724820456868789534508143032944928737835371265107114631238976918378279186353162439465451993661791459482451966285965191000591995611343489041235090041080166519985430216077079562780789763250019967877638485517552842085411168357645344654682339391469062060554587272088801031894340756720468473274841439835486950982575878413500415341897426652457294611998284162728326366179080970871438797161167048067880192711812908704560505765396718257541959745393393096309249846130805681582790261042190128621916962540773989765379078665292286750040489704813223258496015875802356182251248910265267135369960002793348876637043072067645016182088671858662116101020618832707066527341146637266132830201718438084826044365882494499782790617741674832946674275029074618779049137669649542869019654418277945352946304420670211598401142094789990269965385734257657274204742940258707148603600191563968478095959473766620232387832206117741987844822146873186407767024112807953188154973692218064509706531517657412115458944542328693340060816363660808162120745853794704391369448015388105216980449825952972074402729082259123431512927144488785632683839693894041400871429040226209981222141477128339225238412587931336582953567343234259994115645966681315364807659139325222859083762717721525437886873044949994318350516974684834516150718412731965709912056696867707759232043233573610558792107228787977860389318840745954233013795201818916607494893466867143130433586482356137317756739491080374532447663295477956875888278446662434350987070718051795408755694245795713227617654338364748056727291975351453716866028205741096035180002618632379870094013298582589549718223084001430357306625573000199626557021425366988165749458601461801717526321658281173868527023518725407985738443025004606299144426773966628469222428791867488607360398597368210020333956522691496079578505757848522260444573679566031716746597642572356009950939060399597318141885025978403490372437491902898337770589529403364142254642190763178449283457401362091271004973883480425150226932184072779937023603447225427554519551053257826540969827462817422939762695349271234026623847682046364036194414809483518377249028896101324693082282760119293301957235363250531105924923370749362992356899347407209042475434103364337197153250559410432357966025773939436870644412879280622820858885215339183174305861486054062900842509932175333639143136530174730661403243139825716675890108120287585976502682919458310645160300160898770526581237199032612453157185035660663227641970255383710815129740182400488890847593052457310161613691667460046109972258903859945895147200978179996715283235267605897650794625205516930023393290676122264911077179376009612134797023089582844032959808031762549583716276057353833362415969492918199227459967387094698069578291596934890425092797616246493041792254805459067721552874824648114434496386518294525194949404428092593015566970942102697837107997825708048553825138549627810552652134190322545537501930792395299919076031802587647446560052353839708623213960577463937993991972349356425627568863389383930752443341420651311662734172198983929295928008312982843706140770685902941115849077168776942730579713621987608926313092386647710092234198041073294937171993522152449497003400627637667310017446978235249052444879368965315476969789612761730013481686958771886582743692092292953354776176271833942858277451386121492759923614664901600656342896006367905576028252689855201412859286208412181487793001010438099157926928165211200150146190456019185149059453052520392002099066358079689059106547125852340223683636957539148252274754860734507501730668078029364957828264751934119902003114454517698089010344791077024976463320807289884406913640127721805725680188663562864087204498770481954090331522301515886735819058656642312109453067157364766943222944460666238935111447980293053106114224477329742930865489690327243092573292697687265328875473835278624294728825361400005826473154808792199423773126363768559684337301753503124147599372689152532451731289916320672558234471263562756000984193159032399016196788840899040368722084385248756101915499562552613872480989599553100254286863730845958979989721805984646777315806589796951902290276119547555222488638815417156278435001299718391096521673602174984948387734335704937444910427745078490436217161418345076595020404361153802854198380547856136559986613121447001516761386064270907955890413125670814754928582084734516759710330148890205767770647149237799871943782733941890109712263806466270782499523785441868576319427082872715882562557593416435389605317004692047820885185114644561103665519165642995029905348613199155719503028472998403863988231416733711273563428599015688334590848942439705006504473118150579453416696154817699831347398179874336470996609973774300757360785821563882426909616897362444025911253276597566833173590478618160168342109554349848460420608221779639940251412093672700787736221673383976665940248224244385139339157627832228674649370709587498285522180479777245968992637310426932284906152562095041311208842997160934502272057631371719326893872276928802393841685818601534982669149192220406697746618836144455813405908717386382334468012952159036812089383002934628378541087765022253387553428372838546178124096193891509203413469325653170273994831735678948676965961201142745172356977242436309621347660921956373601717791559819367682566587559071413237687898404328998011283690329151316613510155557795476553937681884918616956064045440705537045839513532612741901673352752491785751721302970314984788585981068576340820768454775027692918957871620141071066117588586735566080115701632295024576996322692986967292590359009768654901502871386789029416465149230852509650341243784453681182517404200264743672385465899831355211596854241165474400275686118773346957049275499904608942718596709171120463676777413929742042743161352937789171545155555675865398847436738881694068031907495050364666638539314663201384179914351238988981343555366730602934590607176293681962208487908151000162122843431271430652504425277318486970669000687174834819166014585306647691274418977331417908928047391736804480090182873571718143124065247898831365372622621530645800463387120776744092074802392794029229564108821073155540275866307021034299513999149947830089965319470315835344457820553540704002995890004361930468179259231419860453801980893679439007338414172335579480482832619757448459245758912141254548895435304739249714527857314898326719081653448949648492223485389106407036792777623322294528583766261559133181360269840005229191585029586624882536352069336999596174077239063407829287201075252151415703673105259709158732769107072183596608295578244981917713459547701292476766739322458471371618412000348512190168455381502887224532944040089600242142556905037201521260129508867218829076958299457049956172291883508909482564560448812056793148348624412489726974872871588351379388874144520971234831315889210791746819078250587475948630872279212451482538660200815261511682237082824357282747140973418814641699343969121323303026479669256302061126792690712862008317607056813553384698829070270260258420618637432431909613830647265835496510349785333644433301510312561446921544257009266449348888519320566703942962547730819679890841588908079802670957955643770612318887348468426898717103195240015212911548305989545671270187023144421393260104113970152256127647667272429899435730547901376234188027035500165924027403564980669474425928629996633995935537989386289720541164913004404573163564693485289298396931351618883731146559467723783540621595101489678186948688269828700007461439229887980339345071851224372494565225106509819740363017967371344910786429875083430735604899629146382993068264080854625981697601984094847703714700157776165342490520158798166416080967684060806832705320187394707911749367776453888360720073624937593086202771114987328741700247749909950861855934697288686955763042984984509914425042523975006163212533034751713107071826005641531072708276226472623729735312597405792851844432199906842913444244365879023174809202775707222474990329900809848514212029192493615466267739783024208761610062048423210008011752480864524760516598906171629818521765443140816322920719436595707497787519253071695270856632396273858930405907848238370414376991338522698206179269188752255616280421173174985050611093354017776421806787278191131692552252927991310919494641129817181679725668061874761067620227839561163367627779759167558054583659698654415716487946446484845059691278968381994240595619114824519299447734100936296520285589356684587682327597086753497974205863537120616101401325843576621483038844268943686826256834995547712500791858792199895644292924300720404817895762083640421945362034582134805342046807422177292130851351393283908274963930816792834109632261995221114190073593649444797794398924897456771919449560494083941707902100172121380207875333631558253336908697143513384276839093487945409883638915599393356958065959200714064655438288801626994441907253705019510315998125160985493864906808309169559381395977981368586973534291488422517635752472558221614492222757889434511862449270903871911004300534596599646348200640445528471730761280291717407511218658033254962390686800976555997422793250442707874341696116127434517580961538701611897137382495634664502892291906705938090874683212032093844845009169124796937453465986078169241921802321610216974876938847699163960876173656518842858914495931045422532601410423965294418207160040106880584902476618034998798701500406478100956533866138109754351049307843120891636711472835852563794400500358566762568004818391295288668754382044375346443369764329646428534881351223891265172137722809573910362964322980063795437789569544411870946694217840502227841093279972246339928612641256584203092102551103019298186990910786311846524557635892564518437099642890487879597711195140913692436634383250479443089777049222814810273392182809380695296201367946289534737511465733185764220563366887879714187513755911424886291592068317825379187875625322723001396051394167187957474767044745119116359547048473437898401268068396611715613712975935404768336158089364009979185694350451585448394436673067909669775738830894951158794326508305340783796984838236424102256232640802423398846702824194766740240340993120256771639190035970019358754914624796634373925029992843226669206597380769224722761543753778120338206766112545325721670605317770082020118430351755877717141706496163206597756905556362991680110448337299310967072261044108401668471882485600729431261055313069496422513004233857241655873984384345115610620495657770503901077234303721779787477749606224694696883879823319430480248125885476357714718657195145623057056240290075260279054276679426276872195548427308986235640111861451243385055869200957570338392817328260587797632071872390648920915164235561911100684251820953969078776791034199521825365427563181911914536838898307145447608334977462215811640222086009596690336970143231942550741327120037394353024084726517925296699160569034368288640028716885878809994672275368833741577652253290535557953142378428625957714769413795461935873471784836299418964527394032298112768771062263949183018483986836878577995363193635984212959008483614431206908246401690013620669437744458066402275709573537546185671071392599140148799085369839849087985334622435527601578049939725811740418988129694856133172090265871339125441877225349825835770047273103868924652133750979475253554699570141488952659079148202421308952091103734388623540291584049897695764517024465765521581037778415348311694603784049316710711451909995488796777897500534399947753808251058410588617076264606854889186460269578961962207798481049231198143107672909407879687809999020512137932227950896966824968089038345193546280423490930702500184019578750567913511249216837620536535191200698365005979897362909661957788583118530990905727660695686498158253677262369335463412250421068758804021507974590670685456817742738313935703768391987624762141000649990891471588626322321793380678280766221304827781935613316813631482688155391124459362411088101912299543085562065506477097835859617634567188097161245254483340044421082294759229531693065544892224227169530816745594052841897003513770697870514644660851051067137324823598909997141320978524077710140011018916274401478572124094863136632858460981032303427142396289828977354608324404310708878060766020886330094876514638783181225203902015009675568625180253598584348774666673492482169119921839608465925084454498898786082593999919026957998154183184592256836352553650868491928171689043903328138266010610712867923145989809704019730637799621033230574442529242959659851171300180782152671380675071289245838763360561394889641970394456267505825850933331759257296402626223083935795019658666944312951085770330141116618619143656202593105801530714610586490835403992496560110718056157003988470757230657903948362339242922274436278972172152374387303493150526259684474156136406544895016495779219470903765832212749701183996340963011429779537063877023522967247423129290278845093502162116713450461890787783774475751962623794809794981533392705825691607681717136957081608324464714419313634993676098080329885633003120766976814250073650674178051946616133697695423496258637376450115840315916357174006637679784620357500140698927239558968462311842950816349439422395566285718341778603625417407445662751152438778908179384372794601354508012464098921500460273434247374925197518701928994537026128007869502825102306462244059848376948997528057664582920645811191320199922494468766976363762250044619720040526135175188524686277478262714189124659573353836988282818084076618246509863199563252845253196506070418393181777100464453658145434923270681861030803190652878652390718583033072448675552508196686160764167313578445710934115781156979216635918769971585312800449744062109261022912614333653847315000556685936109375874299779429930270895420755024990766767930089792066000457737636639398234679114252378272954655847231415469263054245621981637477769984577141136935368646260017587122323538979979658033560059953808819796897671506191267263374019277126833080830116932127518565213660582732053693040055131371004172785983685574529367690906491674072660207694838223440468980450126821658600084686596920650864199991967391583264419521473666291285193491079182956088907023665808016861108096651562246813580337943012516109331026600381114772177339368570126423962490501515552207597676132878600788209188541949546199541309352933995119019672522588278291411260408227185777164711500061388426595370066071396300657961970737945067412141792072138514183371609089989970425777235655449051506435405594922561697484181026123316030026637719562369762386758469948792408276058563519729490750613258273312339304780602372246997565662402643824606259844424217697798555261275704599528685887729231862235735851443564790764919797146166293635953549219056512954440336843228972522876510780076080178178560930862799753265362004016321179942937953527163627633911502300989840614889718437617246832118217321303127612745454908593478566820882119986215631104947698844734496861094250731189175586328909936321973251350161579173896654888327002025152711463620626537762441138413326883814517575526668427655030626291706592018808118029790822157997168383725254063974142034959001379378265968258218518718684442565445931728940792824731907484413347872261540772829804983586309564041272369971305108948530800343023155429055749781923137567020334988448867250123609964643103603368720834112252041432635790613895024001871357762889885328875939422045100208906625456711409493144411588064647040574443639803486890089762981882278002901345608262231812001977130325912767685007531521364780866505387637197730305456145111404751491539774142616462580827174161877050089635439486165433192430723281624269122696694030288781489939614600819408498223386995484855400393042862971350912789198880780058848042211968398473446797522061410661795677376029751642549426568264992083965944851430985493863369947817872815611368199765295442489220316118928105964559675774838269078351698765279699098251276290824687613974793173434418774281888557856925986900803014366110837171938723891685231414985186996276915247100444050074685938753084148536441611039476481622983710556580516837923913796443305911511583293248265623673438187045782087110444207065673847571683477635198346968503301641739426026615038349687931381435084132770218118720933775065949828982696244355761926591597134686247876449182565394853507958453836532741330122118294198844918616356812436966847372264831416856364548368324514241005471079283306321907995895244685801543690045258065873885350351274734714674891019019849546469138816358624861005472472388627261858557298285127620490879436406705417950497677353972435820706873425970074004938171632283365749904181291107352515458842094349145956437343228374290703638955248543228470509823425077036589795191982226578022936956963609139138612076027355308460218006337641954682179394082205906348973584323303494021779399160854870897633370666410496454819862947367029535036361862259745304541942769951859217561632316193949467957806167979266814443196585766082836535860026403027641902122100156917883406358298469249978862416841528007824041255946405904501375308987689488459020818673249971798676694799252685854975682559451400127212835827513767466266488877159418700325726817145279515643101555328867863766696289855316788691355521509069564342196206641382595863784467006583893398375602445232285773715031184455965984294339986500870500669044127352022892289885187404712120828560848427397238693756076971816651315698338229262021275702937171090693357074095566007558621366060031995051024721602256364518743762517754974243446436905046545820940685173344276600884279640127941013537166274567096706764780886530548798399028000659514384878883810990833639221968166517809745899798946033900402884840077446574192797065460763481529978601234773001349221246090603093439400414958282503449182849714864116128381104197050112438108458584225750166845791081700712237854338036956912289583783138955184643597201114596662057881479399793330970045641528035701808262371299576243671086041014427369976818833667371507590219832105454605192370820003476421928188865218802448450586668712226525571566663444787690857533140937687151587051845152019784764807689461859751016483098475405172743815522835086764206000998007198954036459602590129197655535503240055226344066674982909683296406098832600546199755017321613263218448405362922418200896235954710997612922636226098269769481853587015762569404353809118325397480159558168744777957756550937857168221392673235687424170183491331974477975889608377710437431727762246286770347084326242736182770694638332034271680554585001860879150482898329084056191659671072540394021170740821490170819130618695783034550398554003087141074172522607514683952760042140150646984743257660781522362594685193179696904649583555615265398928113233430674229368267260059976056392843133576175183994280504781801759866846804708567261379305293533647017507977056755286302216502763112620689663929202292964067675886370698557331431992241110858584959753368147601189603939555588449000026550101246517368437675372196526109197842145263993001908159847498899502724597841686542013328785783153630048136870700365175614156150174342567001892001977938871275789568565044390985966775918311625603038294665980060619326222541846564259111895324986524830745947929611268825521492190676512083954744986379297781031393024139923035636262856991772635179846355457441180991249904518092431006254126156665068852141014474525804974936755327664745773807424091466332355869881392004539519774775545201371615717935248811787863687348580840077506411892609154378318627702058928328294151178336627601695588488882679816299897439436873776157783453783182265239494733599251911393908719968697019786550265366554257415669124882902315433083770951593203653447197027970863374803727642182020604723826985913919613919406717701750593833335506733652999951046986813905093878764070693009796570789320733423968447948328255762985353533593189583324340031121216845273267600170442852727475999720233452006949021291562835991208695541456657885467311714231202850821705586816153795673715341125658664191505920028161490203334494747716668635414242221027555863996919577189087822254652028497969364206677975923080627932705498819069769131324647499609945093936099230973819254723599745699003945759054930302812950265846651175676401056779607053618863048579080227158618582954741376457887910986533559656091434719396232666620962479921203176512564294314308366819167480969803331325082438190683465081393594982905484503111519270210044416768043678835316689509551937720942048245251517357670026253049000887876247498569554729606946881965593010589208013090849676955018165223679379551981231859926450069929002326316230524017109417145761026248633882532523473141717596680387244697500516664345837944211935982815034602003129761548951526922104370482613103071638772628484204966274434737993082021856923128250849289740525566236240674618141256420131193426291407573523510195665307958917428444083981053864404329858026723119884868334623517423229397676405673549500157494600294841102638940738894402098811201277427755501378911614993289079724554678116831543975834127770899753385487308035428930943426246543038351072099279509199698511704733642554864759042291524938776117776964032629734673795584543771508819284546447329116184669332719378676245769868583716540365214757916920107456349748996033038229934120662378785661978482820974850378466438993590953880009086272630271378052930592370529848202541205443272772657956668730246810877955957639382075131972182772810034909862984418170162713225085298505383517533902752793321679115817071684123678576301213556982665521097532296549414305896568365318236162125363006596355045378560744144164711447500149438318379825494404477518028164517748733839269758746863671405851970552429596863162792912786617672473414936368137407631543682467316179680102351110277203661096048671391972777909088381658382698998662988494826817354245124815204467361663621144433927969704675525193286392660586494229034324998427666358624791460506795731317560853357039365947394211837331237748240901200960936593991569081331401578492823594658411343987493246680622873417957029333159662938627542343109401877892366029109208137432046209207811473421459757030349803298678594977621958588414539106546956234553281134215556365034970623903023011059142248392600970956009773922372454166828931566778262875031069947251707281208872643315470357609127648432491146689120168781353386320723007416449112761379773993155993431559134116152202973988196268318135188918587021275902070522856333151560577612669036023670412502493250104658168964155747767858059992783702817020342001283009212639359999034248554776465139200560829034907158385412703193623723157250266026069681927218302955217572478725723457791502651139046119631677350233978608618741081150603823695143749621068102748071766272404169544898037863905173201519170724256989283283328023309662900289631938483304423474454635143710027855978146158354175155531700938072939466126874003702785321034296760809370324384869868952970262389522098079782314833675078773704623007346510477282416064971011759523002575121972059256157836690405768180298798078086878311278455616321900593010336977960537841281600558553176742807267857851638360837455201812105613865971996302885075719126757047799838229634426523345409229534903249159710531695579461256880900708263198554068814567923135031529979146100683600767260880117454677595384410706857935799476194717235164204922160717443493954537196005266175316208312455754619806787646530212474042068001650883658540496561148009727002031939377912613442625811173025580024767398203470993135329850307255833036491338821970760504660700749322886617268159381061281346644623175888979051119126014414942299898261151794102634628986384797446178297803490840887958818852941372530681056464188259788767762513362356174400778834022512027026617034889348438068232775158806767118540499293181871519981257853408217501842114447854191867549557108545604482968258929104119494163891892144315900362172329296096805514094569813356746555698910737544491987953645195108364866032650582884096488502336145702752271520832163880926909121164738299281804247103569032470898447819395557227946763666350467972720171214800827330970342113893122069405515994450677226850546554373556311305218982869505448400936096016541397775186499968201560250928832506869039877811291631972848220165925087539959095808665666055827577418783131503155055596577422396310803487353476021142756087524112842115598518517341940851702632522013321405710700576102838015440053716820279517384114407129861264000165466067478602211813056307253287473507003752882151903503453726309657809324463976924244895203561763860262401597927737060041047226422867774650243059702181626063681084616139124009206368633810173901548118582562256638672369636323370551665710512883180544155505654417045083433083726774445650982909626299233644162835056939324141454504635993516571170158652511880615053339500246702209872645262980894222701728464276059520788058507336826701241085907663901678517463710876916171992198960442205848695110043578627339292938030783354856023620738832078537830163202966724040147733239735564791236362352827431872711861871810306777585340121918822285306274135215235877678677294328929831377541356173244222015727414837036268431055416073335895576877209366529605217482666566541524455239288254857012431280152842238878207872387259345119318810883310528885970169898954080880970588524517830116370477123661702896098833616980784889060582388040726065237251382492557420119491191813484323450384527121199799515395716977502216101335386593028736224564435896021238699307634372061683221262312179803499761492444287330905898794923326015685577784774695582470410624524627871260127739512498286957670530174198591830861657563857078492392721145202949598665807289762896367407218205670961343193458988242573843532300548487209995357221459176543075567510862651460484674543108483203975918746360244095008389895361322013801885581296497976207560912569334400413523639591558451288925093136640585603341876144729931925134649149715081083441818173686650926668754195942534114688236378598533949875526058521210325436418008353839761929411937801300069522403371629348549517220278248488551869941115117764984883343841879218953413400550818719014550678348278645433185367708645725614333333454362410865000144462589423678043807756672925584832609225534034822324098322164129369188301692347116887028595967909964789483474109269138568242632121453399668195777735600913443700834799431918655965132923129237171664544257450496469413364700755339990497880800007088457136058565297915214359478430742535634552633322425925573948509898912385943121370067877582327152092798507574935275791476734777241735399940076149040045201350528896547578406894000671121485643821406193960567129568856103423628280479280283059602663515163258444476271252899317527887476400627439643373069428579292462188354045445555234466088733913220885413701147703975928916632249160881379741974239246776336305322274250664181392267803257887976285942362934714171001715060543531286222811348368981503047718311059139549521785989393820225544242224938649109019889476036041867166686940933165289778320914356022363733568109227525783289892850569748887032085945524081170073362919574065443732789939453503473967331921711668197047840772808511320487101867206908355256145898373162692179140539224675179944297113115839212875642736791056675450150692342305286450406765331751246442856962872497033523119011277086148195874270816503645458346184036431948741551652422054260745346882663327013873432304975466731829633528373922440913181251921077056341965140175982859668487680265883960398820320236159729605826728899136417334752643894848914491072929179704667758429150278335570943787396782386875379148145848818483413330698277398496809570078238186814535456276701675755841460639982137917186922138669532239968550332124410070760461751273421449955688533492546455770164655351912910445418691113043345880616073386290186837615773343279778614059935150557550420178595365768841790148970766653464542549054542625349129186600350346350249689815878794314614769308206116514738326273698136177300865157612483928952337140806768673433481510318903382668581242514215503377728896387941486622917662843109845496249489923723629594952969439798814580183188028012669404633467556698577479319570211486642660074416217015400709065830967464702747344068390748750467414710418362794687994351217819308569233444879186355971496114600252974708156001139108899891145024873207708084552549728316648940023321417136766872473477408314065897856395939953605316303999952600623452962506832866077110947776485573174567692779789184736624750693173592374273802215220452383486925431869102129484628783459168813422483866849101609746484173088917654523869773145778097202106269299203416372586360850509805155440583569147374303408897628614796310987476049925457949804513831220227568740442512650106839010549127930555333595239748027067782862851832367140927314046533593424940726745912276237594694117921621942800502400494258197572325893157661125945603797357995589168011563245807176396568225321001044034804927215638708483175542313536275644805262366896945456563324831459657671172057201192410890959057149882436980564184659133831074546001664282439154141965735776955567903090163442358422345921127829060996150468956234546466790738181200235842701323065799764902792649498585470647131392296380731342384241979386265765703969004171427109386754317964163210420689136375601985335673995674618405193555698480959948029635270844822503468527600515332760294237211776737642886166832723343231917884737627994704438132685463203136976944025468557755425840099534137289954763687892058122298998118271449153482431108885915621820940451500334469385223389000946464626097509631794172744240385978172990490265732736177521594495618681477285958286136549230665017141647737040642691485357563041236281832083678939612310644342124134095453250335132887169980762242769951186430359784428096341993192625171179064554179438757136221199306411859749894183816941037610272738750314803632006050801155093114502821444594259415166185914295083176807295528639286697267255154646812136497459414243472928501190771121377487626545108987976464773836228009951941989302708834447290500985163005932246287441201373879610709880212760417587638445838920219770930498822435927597425585401181934403681046074987724070381036249409859818248155508651480112100631441178846321803543141485412319401451682557673448403713052705170223552451162317425472049529170855494932092406100835421471525522677647493649576870863613421206374328084837216464876238572307488716460884190171284007810309499672247768801965016462217722660974623920116555377633271466889895432461896221634353504114766852281415200049249139492207173761514814021247335768039756879478906979291532904900659270112360185765560932989335948474729412035625838544433125766600282282356169380806857514551973808782871028685302336460121565817359104054091327502397789560783704425929155043440714171861113743928452426700637702690141320899165584374249594284649544355740253003552453956412129363566991143661598450649351581833656977227901011841016275073432336106437527080803421545835618205874107919833383751546386078128798552688658047606621329894942377150585228594764102339846082499536311184576799030410163369444890994950222475846327886104829251930031495145981118962951680278454005608853861056350745780641646869008733267212676887436665303973223714762994270296967201515011994342693457728802506630940170043638572748966370505174949162765650236827453843645384954235032835690073583459506851870864997958780927281929695416987000459107721363725133034422322727943523629744690082267430086135576151682409568958450027270512505331881122875934772257442157541209647395281286374990101784714899324128974928859341344737725469030846572064338525912450804564203727044922031929857756486706093972669924099179275901683814605328437820658811387904675683738027583556434027709654159705229353468374935836654227101850474718548544916361384265441749517133469637219545740163721833891413650718443234131625411392298137108123001534736076193113169954707861065749868661288060839787333297811163971641516256777416619849005578368193661360614368918604337802128955083335581801076959393191645131432563861719245000005142045089880847511334007870685275361521925541411925585557554860954110569063321416249333389543581859549846812563924924347466522545614105346084790837425680079038421677642370059176041509939866734288355870869096565284184953804302628678016559315084145576514929544892037721519751996156809403567092770894624844881801394337643357164117936739453521959673962249207096085769077704401390972714922672693752690243997480272412300381368300087251107832660091934580677141505443409668522936918118984616196069737268366846133819974608273776810564524635281172586323534542049646414687160606874188367336012364909513843255108057569547803646141842388506994408830903903234015587936772915259337519430027189924344903738509832042276386380891689940860470871968791417644031771471085196670278469211101534526339452568701087199182373814053078585637384200738536772023424053266195673531919531767572652856670707840333929766639049527372363866685147170690766502843126900943157337887080894058808559889630250994499550806464849874793037157480421933835089495394489934396459308350545241094169555082396088413108520744767516262424459617575100862819936884103463660974165912720823306401281115565610727304378198314356054278892903442378234626832657969078150403620609118092132156999417741185335963533644624233933743172836161559247438332672753280888323790091743432618162414495054870077594635585918037296057830053337264101697036287476665283831895934425932400268149245593440228069869937429289921347676732444060555307646319952431040625149586106326915711975057753253430347814985046393071826033696013581764155333086119778481215847225235755858119048712438643552132147964371365770264458859195014083068881125334536239614028950339122065334585308909623632738769211678436678340650412572491104706320402067997854219100612961803812608742270156819754194207849808422614074594228119862244947365692037409870296941239992287566802046519173697759281545660389919490673822796323555763200887227711945995367248947529389327839100822899351356876837464593385214013496741567676720588080055976619876618337489045954378332257127715748018925707680369548444441421464323620291985701896167565844623584844575360813560821773601814103611902064482165694412227370296161601592466377478902333304566511142081751568631350784377402357242980710808836327676974871693163061968802475957230424830361797328604306818668696088287712942581050928923316845204624423062199906037197810332446041366359863519103895397889576133866400380940865404498717564449952604655266474179357084553668930763566225608041076949368170913753100292290409539471929461164941824437269413367153698532570092792893074805184164122683296092184873697612700392892108102122491452870882388154782443496985345084496648943025820356115122631650360523723965007306584454353015407710774940683804663955028708250150586115921233557303394521501666783904137563273587978116551420116687742249916157919890515483607684963853774224305888377215051276673642514816457124109392299740256657801837962037636274577429692165124199388657234463185469235932051397516909761388282389265813405407715372545743038016675275827473293056222640539358181976883595517192161248079354064527195648985069643636050387028508563209914466455210217779124185324533053758049401950708916698201166917366718661667297107204035045263605513752580960638535323267810802280137963267883789451150880140112136900161101476158079957670441362836461612873045542934763445623308555345687208415628935450171161911367422322381928808717252050150148695639894289910227013868179194492964595096723969514969023643858511822367297046930306432508050670737329875489797504279729498879523797435409499047296530568257493683975415008458228214996485990881488339577097129467510242383679275962266443276141357031057255422481313909885010635318070173402414679125873984858404746675331859582388932437463763643300625586140836043046093754259062657345867489216406394050255480836930392633602584682816043775246099112409779175191871828235092110282901664151717274614609965953799855010695032123721380081068040821976693458521675494168009459595504941103104365038565129279881080316457800585715832530960730729685959473143830270490091480805022107306552478737249930685774387116534126917953897618018855118293274391357057837996667680475797586877125668804573312889750071236783192467735999364524202233366087692918909365181721976761957581368962256243222498290483743977785798362184820048086645283261560418078652936624642402915358841858951497260670787838816071611191499882521530940131128623511608925319633824431176622439578728186119642525163065219008047785294570192925271062628838540823912417620310977342292695743112908063888860683875731453172889817502976325284007123369412745180404597168211834222131838348682527219871329549778564699579045430548818554843389113151018769022912605532166411505884796077885778198176731015438820354372287124301085775208466404354831950200327783106507490161977287728151348295825519902991081776666597008532536400008966051310196405557056119140941029458496195493819789299865010824182905781386815883052643966483198821548164630493493043585475337506661419077943751399993210134678060200407919016512769345365238199541327666446084567264960633556867531504143681535389113406967277538571173689486744337948432773482035587226274363181742131143319989681275002740934948284290346787001545136063184601095673958182479940165300748311807680792439060308063028835523212898914019728540682363444411034371872798786170043646972552924895263881660546889631498708541048840670113567532609003397312637170776242813399877990618635289318950118484750424335615550716341917744482108453320438535160457092215227483287340879089205463411068916286337020898225870507442235349712528271748131812509733687156205300454011129174659659617811097268088634564220798921090054262466756418571317870063269131600125655893499062211121928027857728382818875091206139057175475570843599289750556666559448775482078564076992931876753273425297275228870866962708353849865878789454045422240044228483539144012256293551076880127484008927652506536652927976736966120518391137903077182653878757849777091333702349603705898698140667639250496022406789344331660668797236463392427871721065476489322727979054689896857462877111076172111393189211308256049674748725492939986302902736925176304424690246220151940258655161120746745845620879575227837304963531351983672960087272412189011847761300089460467874068103369845771034109187028931388023493404756649842958742875734724954985105918719859215996461083815958284883260669923194957411359424092072972262216108526730188778803086051096229773603760848965660335679144446451082738663515035540172966635186498869290642658151343122641671141107902868895302186345139198036647441661379550753014247774563067692471495198433446439558649042258341057664692752459154499888555523226059385582782500833790464740864957715512549353882075886805799121039322470908064398455885893047809186943915331404661977683071987889490225709258163631347436057689782669245980944801199606993286615518386917300908484103262077499253547181526593068111906696112083710897388140977040569172618799721617787317197403715201414793973074046342986162555893500599069866036646541956730589877530915071765508770617309387820361627853813324221633028874064037293942310969422473545996983570472332386361852825324239759375895938905199292978071691691029812266522097873002873491967448251276205263499259122055550495848675695218327798494921794763134059835920036177333450188861711185959134785392909828671240156914352199361790841607143927627595253975277824701403904178248428994343252512662136442802499718713062311531849530350227888293595293570784240036254714319124209712402488361289280164445301144726786912455259016284448389184824609213702514292127608590254642785763889082833106811978574437170544909401591693779544802259178626000016709701209208963757262799033623283891964944253385870210962169376243267268463507038387789411323725228612905311428210838049098753637685776459056100453416440136383828175150134062178943035103636777482759829527146622235347698569714840256104932493051357838646617423718338545662816610831298169723004807126761857597739060507698592188016544379431614678199056571452328152412300022389323863574575398412500530607893644196664162229033412996702907248488481351037627845062267519570209636596100121581091288858100584570685728901405291088213652550365987721266165807359978237804786585865865356478336891324684814705418494484110498494248284844908424440840259083601631693289425756018415841553142211311864791096179552211615488707731069146149601538976781638411976931540695579992198692353847262421618158679786657522409393973789443800246746046736011335880294248519024687210244709954823658468949369720292030478351282727864678318947953863991365596001143055580176451633898271686410079421692198190111346652704781020276147565425155825304172443806359968190198669977029601776957673136387035984017605662516166167643811075734026636755791498712821230419078998719896484895652757524457084348691487282559709313642682957793547486954525896629105050071068410792442072998034313751433007783682447387265479375809310448561928208923953705021393278703461129852245866169289391838245738815900208397519296929451876027454817994525984144520615337117140787398537091211163535782892412288412621956985708970072778685909566672155887299766448883950010525139192888294832768351290874790439894586797337045933367193491213595500552178238799867178895800509958146670608786951903298850498113195967925841782188457421439062291872508514247217943258646463123705433299565612261620687210595635026011911877835226760369467227863266711441858367571086137459042557436348234224374145256708858220522496148291167498180954000733336410297940095052585173271266080505837612781537456376893585830849477920876211265839045146843620962341426377062564870225537772509100136550403975542104264672806947752128570424846701056884929362011539040217194700471245118489682380500286366252507716199035341020985616705238845079601314238105707447483065045276066208117556029037431028772134258231257553897580699988534894573183918348240973111241929970017619511088820680515823790578080304047190515954919644668233776976366608205397945073397224005158630080772601753119798874364318789504020195655228649427799370828868439267902974266937163348963311984340403038904106813991841369128840640742588561057201449064757284068481968967059245933621084468188277812461564670962216998706733542918145801431218143140923394346527008300553820942691729547985392766480577937907565165149065655259964987177183591728101216680356592156759685519489267633163113234176853505714596809014936284769732398481003643246471071623891373016395413508785854563838229664481184503148690386512027598018195586107327800843827440355079133617171380498049384102508533819005451272031590606376736883876737661084046841025406518919336684336911056136486436193959235900079759919783301053918514418714267892127131240410641417039215243297920931954843598289480611216229409523813578846795364236633723835280830077810522188260637626952667051039488469656009962675361970820760976448071247059125099742868517554917026860087033923076963877376217918891644527699609930686259778012291148156718806368389655710855162121946002894208833695015762990543381999460236456909297939551197361356113079373602013013851535027281756369094466414295496672289674353821180837467828712040722828476470562649138144859444978965124031168391144441467554363613946482369317135970790992894698011396586332488898103644868602668311323957298129464693566687265237643831825802058901910396491111414466702511012997921581908347961458817073408138068106053016120353049335075121073777791447387154571504057395959522521221954801474155631211051955542204608432065224620128289395604626412183632254324543872707492963139145731198060957050625695942459326840913717202967213695434857261738778426790753358751443199160184477378936239059572199400951493401330815967111863674083465860722305145836676304008133429613477615843364946908975908222482578844231336984251274975768520259927299785101332187130314456226792889320000439412736275375173458356650816847185469604510369874881987597758923013717338805728527625286848023632419248913641581217834709655307977863241023194371141216662770648789928865014025981606576828312093501947639064228607060941574719826178663525638839704901977779330727437337203710380543911961606364682986270688277454632331762256061093249487518934788587840681921480340644949372474792118469655269016416023307579200612256411594941058647079288418963675967266337950323062515589103038618205738457203022336438003594220857947647317274418678890238259968145496573337165427386587966813890434818967181480809007280145909588299478858538522136412970516886369239052021515745631469128190096579848062221727367123062084855110854749695910783445644940356716487608842093415807286541137735365389542910117232109046820835963904484970214983827200060852372179376972971373314853352511119913079498285437778910283404697637993340578776217747250723895722315456313752627498497467932614908424384968288642891287084826514131666737265587311022615019116426832609322656512582225677261045771625516491560301554943220922946290128038498984785684552980957385397096343053757820224127915642540148071145527532576913648273281116796367305899251376973637285298147191589333222066463338942724469141652377162286477539528713412032689171497091369123327578910254980258950939695114995613015509639213455874949929007630845755181277002785010209362371294243202053381618132768436148887908245134077834583741031116922911778567557491013714004988147661345715911595692149513164069979169659936078996194740069398112865543818647036050360537286208117063400358316232202550879795980175586179983468876743599672849615736822647198231452878571029813387666155305704536266645517696876503001418799025065872757026981848999264746124012095444720564960013148931656364706552904196530540688130974614201270636940886623841851257087563295335015581146961290696849838895558133618299983554302881109215263191742603711497029538215617925473232205491476935654477046589668766074708031763111117638118806944780786277570297068870732373949541847648798218298882850681997047474479131687094601554840147327525965477947035025296119955553990193646679371400977686898329327169254072144804146013281558684025272253615017997551890279785999574809105653596143463843015838285253824687673122009274752811712434941461164623310599529417765101153973432920011556924417324973152225859681124325644223911968712393973167473744653270908591350955222794705771029789026879854759053523181923691043889629005566803963683053601028040685737335739014325749803297163962949853943907628987489517088445929454436861294533593089745544875527621062008102990837835990494204017983162678109446970962433755079939552128408091222884779272259438833636374538090160035356137450802505242527943115104490423942072770176794623317548058010910234225829957394938500232513621637381912040926314530061667005065831038948085766711993401243099450379502598883080809255965146112654919687463525338270937078732159306267590104467106280068053053514166059291303655206568228452672732807900226593966121369958757085081873351789930143917105623785067867049875773651340758374577015315352195332985129373051104792315082691127204014334479201963907048530710560999023277233218057402789313185101769800264171377789067816762907717155814294191776140666808398180619027321856134236070500329771326948601797392266386078673884569022928420479060508622082875767513879719926081910682897115795662851555067430842240550528954503458437358181770740319372589828550872646434307163082455952688803073238224183437253499865628699868412159055370572975511338636754903486889773316060988271033755091069681891959920914824131782677277559879402713923757811143835794523467323348007168194030149851394318694290513091208825186987964785964792397275423588400095381005998766651267760070428607287877102046189707268520161441979964407827460245672799337368070378554852029801548498094682879035821768634574610193849025735467750184786723225283734329159600946643844993741855397121917962020562048113882766100980840639532350858330845251186354014350185576394666116575762332106278190642447488346231508765868860784105667405429686605844208147302967724126498939425945514397838927001474956888751190906113131320673651255221570300810782776329194850267328577111244475662578601160740167760974639045066057468100059211063861609330836554580771672820434599017731246306399178789396774609383657540960200170565625072141494196937896572394610262194309556422532665874910684487711503688967150995791483191255868119034262397366201069936151209868879081120875550669205186484716521114749948923933468969075750681119216043449444865986063979473441514688577594845816260066292351657901748728419063000521904972059880599466212660777852090201170746683139070923110308857495339346877437012040329232753238801455221272031422258539643558090505018694342061935397762464252542783158161672922131430260513225699941542511161944385187934338979046006203882388093065300600504065261184783912560390785891513338745740291479512135953858572044832536205478159917240576361990704897107811432165078394634306041274765208368410126684714762298985016402085554186020330235016657066981568584682959691160973024861506430297899333912077642653103670734549661326389713326524339511591969508682477882165645628968066267308350965893573117587519440134313461490228798847114839405916654530055118362258063648614917256061321942476450169327996400028399233523557341375058156143714173423008306443904043884025403891789777670245559340835231174997613980136941034629033996318600914901377174342222815248980881135917981341860804167247807825661594389701382581462502202764011182714711553327640578866572972281599160300895610791344175907239206904448209383432005068267746267548816684545090757806247572129252281626264123672062035576501456231401197894898810104184277490957957892580081148135167911329861239036981154078262571096818678262893835141335886170242837558854036545068107898046100617028832657048891698162112696221480214526210723041263118971933224538066297131734707271998703550827701482665162800049408147033395311095145069902754382957132852425939514468855067150768977493864336720010199183568632629340426258059608675838706843634913385355392107979752666467730103461445270179905884760266078898402106281513875072189267275239359296230287999591630634730343744139910701778883779951565317096185801544900341373152075938599058982640715952877950888604599374195789004373373325991623517955525339256384767606926088220562800924091155100740130696326807812578153645599083296353035402197984512606596849642820386123568288685272459233178573537219292354046429114822787570627758785821127505280417995540779212284947305663248004129525535655202270713618234698970480277926792757785376412549423406450174891696558181229866672741412795536494826313046822419017561194532036526120354548797152582987934341422658615089593979593291726036786164410015592039768805712157906128583903718771927962400473279979849338863579786651361988450463816597483769659189000713797164793917952213121180150183114190967717937597760000701350744587496224914649434765814967916333777172501411397508055084345903692307830879451602772657034409816487991432969756395479985615891426068309621158640235123703752620717269026637264281126319025919597787542850219276524016206981526488923090276161390196243161316095474197362526542681739518684757114584578705629810538960502721004225547385896075793611460959164490922750953700019585993744447556715885843591687363846732839212408327939046255284077836216722113788280790948430596846263369959426958855679937481275454052687657621552825063083808200758099954128557745178334173155304005467398924442826159479909575142124895529309685853647524870309169737762872453810482688665192180990038841199064795375086315700287127228805920004635384902448549253253082349453193243807936976133761268650015738016972815736949167112088429276567510297930838332487842792825909036940039678046294330901643466682426098198287781367659505165097116623804432619957184295320019129299765250494346595186891945037462780059300574412028058164515753459062502113914993278249060756759072225902213191708649049622573162578645369872456741127517499495168338910748204726973016303582535346595166954219875664406077930955100557155548010685198807421839231924115439643352547823150454909707489042096467673885727580586067529154693241182071262408169592028009172121634277597784845646449039105819824149312864496801556645174577807196453925947011707949357897481987622676440274990539378803193621378299987375306218499107480291911896124827069752321033483096984054467378521996864950389036818486409781090511381834109883632360844994601040139476010681484884540723742748224750164892260065535521873625049934960351930781589393029790288072659154080748329858991340036738771089078202473975079800510688355598503896349759217346723565017699839725525702976533064098900671692266324613339141872578745820243988706898864507388141607621510461909921847591975951027920831218478087906284595763863615052503276379282959034487370787360860722662643440083058441740013793754481169022768298107221392884858692252970122146792206866411605279746161572557151335277647132906006304349057289518675726756480360349231627169820671786959107830807403820004593986425657434062243491357915583433342275779495585503334910704529334641590926974578749754672077530423831047326545269260033920346875180607649515499491420152923969857153166779840235437184091589206212768278273496558970099302071509256649869191171250143687626534430846057964842926604991560140742962673276627776826075320881559640673884837682322676196346902972560464202790040003938743074751121518499794948183193879500614325626650524440170573423317265169327220231712223517142343504181028777176038742551537302217217493315348312522587805984710903094076348872688821302058985605534423097765792939438322398162057543372814571409635694161287408980357432240114242513895210100854860208888763740947097507291005496770353876688498596612498100554471702728439544832847262729217134059386914852613533773173933144617584701862333757472914678594443590152083097671659310751653896783284826209197095500846324492747095454321146941922881164075622839950163500638992538035539585481507829079907723326437777796360815175252209770341912377464172116044249558107886697991897600652451382626156789505780477913700337972956408015171297904973767766677386364081662109915791601412551677111179318383586459960401248933212017109456883109594360793526018634017342046443860532314300615862542599509183673460632712644605916701167067962779391934548434873624690439914583854425187492484123892960768612033202396614770341133765359010263062420364856504470126213834636537237741946136511714000347279730741517106397001889807112658972858431640099525395042815826129311589720530841853901064312432704147014290102042107453242391042897075486535609088051185738355043156058968349307260303372982354982827509290709479423846083431625215251606258145911845783442458292014049648238091534897294159424614560834716911464656748999555273057032182502461045133207377453335158665912087237076871975100705872749094981433646714255955508682140924800771208235421693483739001357209704470151515537696879332246784287523896896560972202074300534437516541306902488956122716531991910769077213724947267343948730177892722154204741823915167561333390966216400857624476473923052083611871891078724565327468000232519738915461587504013461961903181149534004650202203130101960220981001081205422733324964053494871403268069257399411949214786631763115179727590756669344579690366763494033833622373371235892510910198925578746440003188599044204977061446058933621913901998087014434515525313713893359825696834774706688474862830550202126756842046693075106108304671365541176768490146486820932615816977384504675071232498703962117516751824326718467696409579376926329075920624183304629596875404043655006268620479698354620404832830940422041672709650264971227183879104679715804963836842150203604101090224754170840873222374270251031661957709300905809006034332854101928443691271339446438993843579367819054944116144922790623080968441509970788679009137728824348821028883427471996129445237872729752438637560530383170938692534864698160171581938788514942212142185621648110398328810284775174724466120951481297803644484775209537321616148181955519916618174929439131385738333422577912933690900253882462955617861722409830981988280833889276724952419542539053392509709787067817279628779821977952618291488708307343556259625592016822555059921457321183191860811231642243083851098005969785315129792541632434887176055011475515199661834299704970704207547046035519652407648386906910289228059260432281149351322641641775785862860933737283082364460482137133206100234452342878356415948529034781118226075361885905748549699864599588379019248262771610871130152082041861540601416828430221444166904467374589442366413590087624875067437156250703599786803186926693098642484252552713477446911549157741642845255606808226925612144526402560728522976092691211968100036339067333777039044572816713268079448949258186178488123905571138496742562669790324133839893565543670917144385771203674532960874198419739493869139528634101472527921040596527153909023737479799133981460225594438010267951652475947516766383620780243991282668710356614535801908492544010784194292079300895073625165567605797662754771111165534734147109962989971973413830937137280796567139886158683836497169587819546762351213863930140399902690427732184213030901151631961200485653673557960281672017239272200546521742806934694715963982034757341303685193640073779694355408350093657464071371210230332909494747099174582609097334653164302304542187855964297630550069286614275569064379447358718433969197716264406194938284989223030915467297888456282675712416542220314384145245260967836420801939241269271295572881707756720273053710850863965112829540844006063494321293136309443272462843167900050404401003780543458411913105179412711874438048356186213093818424119277494533318626006408581897240996103968788106099617632889530833647326855308902669352067166359863908073334889738820522272550017788974504929887902777219635569638212083461236038385245045457183278864784311559930005160553406609388899630674703323802675670734201114358585931091205280013169317620192350041197270361306083529133544657462150530700741329592079717533780789482456364952851625822376492191380523084643533362138018044023286472816092733349918654298893811205380207971176441852518382058197787895027172166010899368516289900254539433436978241843669832095605500867352516004641394531817642784317999314533818113457992547181162715581485450927608338581158335938468599560082168906127500732577795356193632767371448634921339954148106084643884781345978715361447661324548492022009514615666575830798068047954568427167835508289000944055768334737306525413648802697667221138932560218375622060608201810164864487999695151668240429094122945577012614616205314773076525757000501852576954389401835814368148586818636865200614421976112019232051448943324790910328348792442898321244036402445799228823417235808768757889847286661960820763488508242869952236406168049070741439299357959949463588278779686958512601051286778614600984053128670237868350911148795578040103304912075262737730628966196446021861892010969664891804078204686776733510066597887791494137703089266623348294211752273217822085336064111577175529228346430456629077043566282041782209669688088697941312224603009362668270994665092224063340526574591442972349880977374848045123944076478805713654471033701847242066325101586133208991989804368777907290240229697986877686440386577547664578932645701872841266747315587098415047359090948384654245814839231905187211205354306947477986225000184458742683426151022830817891132160506550156064218094379637228103952409164846238058126167420659439810445616408121692161642110399119497837097643556583571192468223424458051451860889561253768370815993755512533881219141507354835182891535770067439086596048414548686179169623389957553481082058503467025796256415966283146751079423800938018841527815687877870784414087579042985551966651122667892228455368673203482701071577137861037174015937365924336078317500632097897824840700348160890265133613848037511081294978202616463936294576619947833491409584299830009564495427121202527047952242007126832732563305439368275377606697107463441922028978421388681484777710409344484148354361671135841954687257489304909031663801364571017464743028825060051026482039438721167521745719600296849959387636720942760743618889289508819000173898333244510231116948774172147912547486363580759176057688753142043191010714175398604834172718607159531463465485589160080525297450098297436403253453961259604267558853833626789019271520612471170635494306919085853494171324307938606601984820474568872006141461617807346307184174651431414217066552357736759248764987535385024017436841099155415897298489176547099133816382714765130123793447674595504968469960334056558701284267297425951959207952545495587016882239731469472785961291511054907945446654043330963343677226305952307090265730216467531196219298775770492743820862574664069498207887134359464464251139259268587854695715627349975488807604191601230317090063944901903947944089299218771938792546128395253080109437713609222407987591957852922276361675897229178349636579292968813866025616390570909653515619707188292429283171619048728753649760756749769565970051680415077725764741054092425799398168633989240644056132788997748480570484109487621329163788354268980587439740951051379204547832400741356007783354903667122690904834205365643254490135664790440070646344569269489023322266466676043024668538084092342609959119470335824907969367896713986098974066916263943349005570636828634576257787280211156266798711648649469099555224757548545157716244603580338460628453506009275604790579371544593457836580757202994395428166807608893832551416100943935998565111775676208650578123461861231273137712961073427646643776815312904632556134681355218068023667016395897408119923418681757419523245217936805148198787735324391928841870306864159358220643253671746308413236114353818848673227156121563689484751208666293055041096324850804334849706467841033528371299118289938696789878260359652409366032315889404320884149773736045353699142592862820994899822823579090531622316159907133487842976886500360767849939420563577772961640640183244651229718771276474985067143393661593792347874858042708821572716556182836178745549069155067400706971714070301551029540622803161893755506480625822578052949777857417674369321631608466847066417319839658040883145753858749505633849360232222261357314389287659818774587782672470278109799948024687083645232525807702442983133815590300249508862816136205374632415583731933990505449129326444957622182719178822786250879840812921789491195541769829867819034199679099239889947691462028967415500518487860797547818690244350034727987070262681153885624232628167006718279140960235336155180786808434039945799126632485345651734796848585162730624440281756232538419251325141656602333676575076660138306568333136352530897219315632741919689668406542417055873489922612747786955657259582208661711447442080191845520071285031346628050754342809843809352506050066538665686894032389762961186927646838385930807352333933914332617050336946733424511858120818310374357186361685570876543392512978536288452779044562276108882423030937967660000801222163680888636076329206648105341197540100926006534297076059554522107211573183240829878890167262338827784256093569346598462657500895502531491551094150437218234227444615248732799183164535638506845314282596567857234659756581713536856599409828291391002393407284288522206414472962013599104922188745195001926615420184444187557720871738986878372129771500914080469078366342774248451365035589030962774167021145233873181856746267136866024615311956049919396372072460817455000507540758268232400931361650590266982484690284396192792858901494128209116982876290782797213702665181395076720851703354298412317206359524449398772309789611674410901189616900808640742055614763648760832766931128955330562984686904434599387040747997371451831385333511143137963999956917998378309323843047656945929602370199211381624453914752900136803281556199202095347713408297832185672845800964076883693624964894509572529558114756139343339821878349396429600726357416820479835784871334818755397745593091078763444929005420598266834885159949012261085467229533667528822739975941015119248868942219874868931979509630082866091772779401843533399443001089332324295082839446115811750958488672421496456212332271773405148883471033525733072803220710607299241864639316280063820913023963311539248830676409611719500093750774806912282848806200707776494270646507140216335350248097850978499606194005800751912839865039939968398873822606803999857655730638215363078014740956906408740629874845173054537296036570292665766960364309024747283589702882265111188851512886348407951236638777742175083787400180377262234745731233470987982269269506067944973118899559590525368653847896192765995014291405158473746747623471098816421081553841587509696511688244047755466338203541666068984336884932197256847408615211527429356120458452542701224395060090400009204573489432379674144059303195683125232132888298937115036473466135031205102829637247284215437610782537625351189513615711654553133149657668857649507817388075390583953672077087880596585765363032904310255487144165976622362380042453174307984528629735894014795268816662764621083465563515424793696513633881594792392191120588038891553225847540645583675659472809717850457410688726461762050049774822569880075756928666919784068916959632187116777448485684107345080467537416928697163822746867453314278398955802959013442578344145516958831135566048591126667585823453936425506542305714690988112365806860559221974729184527174367284272977128684042690605789137433012402951812779937708354437552866922665083369214456934077284674326441788033412468577919858093367107537504682119512411804011090857953985189931357583781072755618451981220149424286299316794720745394332726239349005091203925006518654263646510243437560665177592951223048713014363661296108939071021787273412181884580097159687827272860424080673903551156339291393795011868027185404310902757738602638878683670215080980133322510104353675768270382456696331018477171440578396777114497413416898766472249472325431285964468859991443830984569786043597990999273450978312674052828342832137262907626534181466700125923620441030734160803316376225499914647041645121775071918698988264026765684271694191936522811015711423039180303058567925359079546641320277404170323729728131948767086781995782664935285236661012294966873362917319864765990606697937679333362470747211546702883113118685544920316873345764351503694110367543748009247300942860172744350406673614469120726576904371596372089163429101737502538056752987683969508979089918383813014879718625615254882761661776365635919343571793713994269564956473870645941815604642760161987407177000777388566931447597301277967690048139146664520661133793504279418092092406759690469040062137234927322465042846030562032212669969370621662458971354059162776142382399588785234041584944160758282655344970764470188933037948760540357669656729580100428804759782747907323192943907095834884377769381144845122686041357697943821351998568430420183842897172904599305137856624283764707595983831078698581894800879107625958132283703667524955782231981551584556778639664957433298634762468393752419950354057418443423845230398407407036836024134566396383386763904849700556593888031746891441111933067433733766299465541983847897174139204636082035280104462055682671555473432614388412874614945531750211627291116785082664456836918120304015868163657644532970170257659413571145758559185458088445568247122333344467830433050950519919695437093459656394866265573776325436519386167078715044382612430286612539673532502439835659308460890955228192431947727379094405198315316096675277978036126155897875095043260782889484823647982860996357386854597333977765580667679369387978378473830360614436273397058734816669432233495673359347625181754407606432889519496268920218595470546719168599071256307301519175320834805190180504193173475723210883031397889483458622856027692096701547247078574130460339885459886554833124895506287940390814556090962645036092571949901637678915267245695975408737519722849876421353964330718920651552789874684696578818898318461000006137926595268770698343779862172846184922510422883260353134492693417011406751482074331415223249368272784097605413764722767060605266150897235858202542365625123088724800561465298285661909508891758197350854398065984288861812334396980283332314671922317492904489333406226475636959974300026450423518200695988362747051385403438272506185729786275410396015037320005570019796720293870668661361884063688322113232200819589188233288840933832840633332180763905166705715423307501202961340630716690291649704354036267813200242961593020215406779557025113020631520980785565279704767189446646643457664991372213905711506517524146554069115743570412677976375506763422840650392075604808922666329023559560531131704536394901885331575172828697846776689933349483109073572813578060185046006991774944335137040695236126495936757456864288046647534501115364206469391867585849612540198359948672845735091309886890511802469820920978249643549533291280228808344913134637342769786063029708278329454964108498755257432919104047879309317746590400611174203643773073982054734945129975074451168411589399118342965637396649814206008712755957164533161862498289884478103608595982447965757079373248429293338982038611471616398577768691142878355054785726199516666870467729975865850167282398566631286534791287358169585532839019984402395821434890619597432402976745257419007601679561463503210708670395977999652052996024011517212777139531129914683411257379181359405565730032221403441863564159310710370365994891731252105945634042165028896108762932364065389027373447243515389851703924172035337167343357429764554562426988752153999750177505308235026766541754589235038281650278132431795394758485810202899220326395913564941559966230917356948393338209937582852541036090678199899357548078220442119110972375795749578867554078741141010505915028313806465508627162209610914364596974972778917520902160676004225000963512696874404142325126442197955267912349962260754206150143870222110722013667024980834463805886525334001563003981044865081370575621227746384610872611056396339465133499608579848339682439325012755528724227008156427459676339833343174732567995093232326356582324489149711984162008205547305615902052787223199824654901939801624173649754798665627123385844535866174740612109778903593226533634332557839050024686071924900470407144915637399636367506802603333343519861021632433014379862450621945665631585276859854078237164371668677952575310452594828149577246838658579836429148904247757586206901543808014604823881854050987635527487753465149183473990414469607867633559587215820941222073678326572754876345333713890833025910219987515406271061629151923808876023247140006498113334073296228775385480074389182699895764442630532777328039547661815301160777856950889259791303527679920187139199243978038651064287972938466296764866546493488684911911153050212250183434892716068191367387285471233625718665486393276764535116239781566880249553441045527099053425028886438234191630386264533253149121919769082261426786559961129470118179201829739603312994411198413948607743694115014474388719441075045050428133085082197091887648585784765398176180888454925684669085156655194124336089265481851306884580467281127982438630397529111034620332472115761627963759288739951590223698326284828845466766205209181005500814470188877984567710080321164031455205686762158246400280422141693127740270696658354732795178577139946101654671987590654917088721163775754218011252340493483528176142157320856405506953189241631165035021240517772750750480380653850217006960732578130581735237560765263623755811668555165142705529493929272620629937361778477128483895329579817705920389507965295831884805431063443002022985902537659828729002630204690829456010450208907425828776128096572358834051515142016270870393006465841248676723367869145315232325060898736940149996817923889805660451794213027618375193441134905289420735817228155776312808776042676481294915120560421601212787035087580434785626477410429404137412406276665108950495741282330865162014484015946603998149615072509055789909362678149140589703504288955415131688508624442279403821409151143628721989290547748563722826334338485745052948251832787017997706478310733786661932760688915830504578448309675176331033107770437189383576234420159519937642903790803809153874372579788883183811633465290624212810597157559944332390933134004586876307041650978485011954701137688962472555124414647190692315638846656429075091816689066543999241010340301483019546621929102993333839754937370079308854088706550123218733575924435342531593719508070843069329040554529671411478225745574898851765359259822240126621915557640542786457652725157552913972365094351313650103113129381155558596413566437492475684380606385376195176907889598524776326308290636781855283927386211654074511676518264307313485835839495461543088807498568800821699028675543693131191589433456239400192127373841789237674797940410939465943991688452843205934310731877799983198131596156034533608964178299374200330911468895195234316096328869484658128482938037031160659009630676438816149191938174849241656964097455151583862967225568591694160780643314347142864383887843872075834851009744803923193038618256936385570625978093235700943846351941589897994480142788299146541418277592995251930569553244442123848437681500263782521188864637685500152590096358621508132230075632432673169670954693934785569707969808972822100847263125928494451346163571230030118673315980641121514864266651961624872394294891046209990082975140293799392506702466460770773989155435062065284374926064718222665677538820478015215305029168136684686490185020221501590977233015152301554724829456372380982123311375035235160980655311594019362930928795994314477095005535497340477614758389786187981791373848690703629365812361512555123372396683557017573909466790511268599720288027221923932856270277793451574093287834456090749995890456943996228311941982337536194226355925927552810449711960142205554360377236629612610572749625424617902156660145324909906380147595341715342752068576298044147128406600475977139601038317376141227809223495091838940234673943115154620922806173370748171353971578699091344364090105723302620626364294619548016452981493042784978051697892098901783334967156696233174076814290685534220012399478489590868677211691579189837857901876315306351068783766995639869913719930910777351362971953284633701612722780412091203184181478106168393202866954325564584153926361952013069573927545701874318657032278996464302086668910404360527454236959629059101368820748609696248887486239029211155450126484237332910778125742776895074234862971308949648199081025822394139587445388445807415085724125157857845926551708320353093803306750383448045804302081683086207854202791470227107807036149581801891502242225742051867238615987298043241769977343467303025834815026559022963715222999362518089439346479853935129566283497338261231628831289254915645249724418780698143203061387270748849991250104772488070232583244597054427873469711249235087078979783455947668522192924829593122519594908336107051377648725276782582089497000888598027505030047969179528690920554728958092068082198059527260950025322974655628254539147159778848608355195428601926910257378491099738949086735716054351109273196488777664744451924953033155030801426735544527249354884839865178369240085263575823789337900298148861049878707467243070360255855623701774410987130105278926931605132167695884142872960215053220838136473117075750471540130381369669578078371435131753344813815415203343984437189055679798358086842119941089333336966043219922840309336288136555633554799699154140653203555733508473077203268150115011982699102239731161486840349327935274204791172740157299854713872206108677131642293020808454664522044818758866914909506100983526900794662070670672125060610538565270808196224323789911943324852128386866827750487989951140084913607032794758282843643088000461162128105488927260262979437765107377446082921689081778373030240479043331197137203275550956648000126651726391785435303454924339212101103929829541439971107920664986766804448345958630711899524018422776626515105702205478465490690036263592862612292111679729367974315468004818454140938200337120194211988721839075406973565754875760430310345921542141758286640306837125084140389564184062295866408454063107510722359436833118953068099540616566342506817601379093999702222258116698754565095886166004037314702818452663982518297299508272310022122094001336876957540470545000635260519114857848185952841766771210781752527274201165995986656730453082846057196462524281675533661446939765393977455536850559413629520112242659788246175599146455285559580928098038046898743462701287836179421445144121201254450558232594115262327364913757432985692322954849305645627002953025715223277083317539805272864977229210282825557986073185457757127501530552891891220358643288873958796342394244865425211790224288903772348365192383796917338477474051156601662562656415556636983809488265891315843918168954283012443715677137463979838998831162334277883940836987126675230318389829674568895970364255423165666392259469624591043079636689862131754688848644843265634352001556343252853370403969981912549902154386393462985445985714818179147434232388184926782346523766939296787976061352120063739118805617004224942489921228519808372960513575125606805291794342423959957161787809895664420398004967310227724250506101555522025385224927746904403772510329061353331671740493187169154124884332770126281497042055747554246006181787986571878021239881527322876078087230072471635353787035945139842990761674383709509285445695639907304460299401447080615202296768105593725638795873612949866054791296039415391686366843952627308651907701239840406136763446571232006681828117022938293936044413535907579095675153938734404871905150838118667549019548710633171891303923935219040735390082051857322392708779801821026511694501497694066603850979279916958212964675011071153298965642464691565467930774930592926176682120233079328115731740924258651752325408800080978256196437457311844145259387200473897527683520829222472274464208038409371848461745775599197583166008892968544080805064006137967219649137211088653912950981087672810756918233469713596523587999998828328340210355527877531300799927271298579197170650478460467620695539675449720468105286860636666818486089658650457440019608431607957768594296484318167623086005712808905641785501555972174008341566295438260846058800640431107920100502396176333943709330464907550309895862907898711428688110786045787172906150813979706081249583507690850098125047363544297735294980112366262879420306353352654315797005997132379341038849583150851186077525006075623850089890928359249875493761204211833972385103055826865363244713145886136835999682645424043823536490664897193904725327866473952636278251827208992670100743753901812262188679007534091097486794298890916131151183140960879433777522102956867533766201160130988857401798550266225126764077495256754276305514552939272622610397493386449213006229363404753433729501668720318130916994734739743712747330942154019836022754647912938459294789723529020355659858490501558201047892968373293261021046414109747990409954222511176097514871518150055307397554090241388202240722638591238267957063826692554655654810251749944314889071946749566791279636525194796212075098809064162694445076325995393587236698358006863613296065912166947159005783587006340244592771255340205823099297522945973993936995330792568913552735222829692830640609537509173565327189695401716785145160011538976708076455802295358480413009940740738164912434410325219552946038761595152515274763537211120773352087665493023607653812347247085731002394991090814516837839232462110239875799377491653212322818858173141758557966280814632601065316413020982825042994995863203724366686612905224631605747280283616697015242509215825376771792355584594445257749570738241006554060962495489602827973936119325758917689655824688434196753745728397696915925532209107481536025955542955814106349879281614681747368840984430434195119389245376473937916731166225677573937135540231244111675319745732360679200962055089418587733663911554185531708812746307890976314383679633499486131641708970510203231349557384364144908535483100167277150257391341274500192311739678203999295850915275893959093082857125375381046195576372737879334136309576478800767855390237704877817394963054909525903779160924787468034137719375872183204476138810975172271108763894323679112189173529053675675667212000340148885281268930372222544689346918428419343697091009951837664828776385893861138046416429028736328004994188560243469027436628324098701346432056933260607170382620384742681616029624742269232664705646051715169604245877872991329826724932748150104409394020268732146189519029729674145981159257989307729640085551863900781825295827689510978310350065785164048625094047514547354961531121252381292797176686758105935261244742940740449044379623077243462034275127825017303183135401506092024723615488774591799100148104934793607386389175109820335642220133031039598671898563785306596791158905473149331722874030457694156958234823835113432832923174409747134509152509965973717158616384752406838153158519540004854881345383546330730399545894047318682523775508280908955101698483825593626468950716955160579529197869828755078040423142032082636392179646508661913620028720523825275132657987305358012050642317867221744522454777747425735435188471352612801479687928049304051733315331814287922175904899747706216264768602676397733395701704743210640900713725523069626697041268761203254574743714285304228622624491528333829859326304005853200922765701159002306810276521007127961430939140813748634816400326200269519194519692678574709347904279983087384417144205786424777441528232445230436229229268756445188741908373613330363887842909883391382303328438056742201174885399178831979281710709400251583685633171450402203147180604902177428624714161226492263350468192373121568549538359477115904048377200329084602325747603195630441828789445481221430606006758277303420718999227291166433159860485973752676545405414398211890873557288648954957573604738216020276685455754679508445934369765041494124718663206129874477525350554371416469166975059350644764129648439373893722352136079074733776224482995020787479506190038008029886249709082839104511746624499554624854682812928398594219333135848317530789804739064611188901057921685022566812536684820442153466007642373758729344230247658004868610173721966495914038414067036954973664796761554812481677506711021721289111472157148036099238964210280821971377217990084326889145159749524926899722561494760494291397886442477513567653890000753941188374324796583777292678316820500043819169918881794117919505447095826164731274042939240705057539090522972171457381951750483051052446059915020351639618512472565710705027503366850287366496298249035582142047023536511708598245668518693290491869957137136558466101362630263110472988431277493982808043285024593427621700692111662728306436284090756841364130070498359456935428848487723079915766697829928102759472642112949632314804506096385801693208705971690758932512665402457896623201996141496694220574311656985229995701739354919859351513382873837770637478161129697386274383383864860584435607923213266069342926813474284383799446062338505640381832868318524098366185272669693645678708384373786881322498345672648000527742823348719367425330730795269022730100205002655132582204529939845747865261203023776491626356273843110111243418207837175094482468436058142102102198824372420229053412576414290747948276331342936592983735140378323894415379206950065087700312649339819350703064995647635541472987588671887254434917023470006120025098344603094440846781481480091869331788364794588619756160996238697689166098405160957385359974191583576178546191771057303165446858886505249500229572352042099377511597272942624220386545599556428328407252526482915700547463975266130992805396020739412265047402329934947284219408782627363858563022738668332205871081683049116495728645213079453332917731462602440117493636033737054448438745808791017963634731242777395849897313899410571689581460357803043495252197828569189546357740157952671091197075491004825988386132724817666049468552131433294166909562835287006032167298455288653668902940529433707540124648281721752603328896196770370535057113137793196657310716326670327126541707842391390403892579591956978370545808425223750150992220635834786878127493802363419405176834400449242688404824897639321909181259881916561961436490518589091679402277329147472421210506205975356317249399142111355528081150993604433455399933481436522589122281458661631263119813778258979080010001664910258766237750252288294362298339759886166839853673186779011949135414984519966916962296986251599031678430136202176555248214547147371776385019465770278432847756221976216017013174485942527365310654717039632904211116745686692097378455599861478893494866590581025160334918429386046529074254942641258724784558452397504755026848857684329944052455810402623781568925311397646267471868792367990454013345975870230759387502765851659755206294239864551675371522032444692994444332769657573937324228433445027161530411708263246039601208645150032272871612136524857611351805874017801347486574003373664852112216012966207289024939601617985564395240357317890062435015626303888917104875833429560833640092171081976510122813694463499804678043043957746028105799122844525185431106021804428102317141024051088663728909021065823161262359126283882395416075230461645892513361193989963900328799229277549477794661213992740142502831848500037018718333007590253892301682440038157502493956969209326098972959660617237331712382918803217476148208109464172933763122271161992222483013085426585117739182765863313478112044193181780974344998009243725163449380850912422827045206467761341476334150106227492255922072848527592840239250175330431806611913309720362844550452143945418765959120043605033747706339043983238804041050603160501982916709476121742379952859586309452267763803742333999632252366459688403850746159854270793419626177016054929582997469222459442491338760317226196349518120286430635642504657846971420468889601998701421440389784621738904063132039547921598084905870570687015523725566396620701208370731673721373891118530230357841267737346054044591876111655117137602570030791579088183235247565065016714466662960742375999253457104302079571873811666531377231252357032661175051010004183108653356078768929863729065497478969261387032730617823547919032561085971575213071404571881529081672017534329364314310502575769599826703846456195127873523821480931561363703800871855808238974797947051213317703278508846566136032637388399669560087002989997921484257286792628156160568892080550253698903251342196705468378767583367600920597219148348252333909790906284611459594410288297860642738725751915547233280905462284710469437374658483122872114996412743502445164836860527252046586908274657498880212087092904425767302964040164738710243928150039703411581812611630775299669378030536228400899153645286819860311536831624790975768540135864996338555057199480040704842006398661172485373633605839415337315000745572986397290806748963288204906328971335203250039562140662612229397724418701083085949402848117920207452998588153386282777803144398632083743262337222804562734605114928326183988841450928773967908720626983866176417169764202327263308979053666698745181970314163504174284230586803109276967691969258671985998888658975059238353534434311608652160616605775511548510549868493137049699985471802262233699427844409407488678359901614126495531840503751367952490171789297123762738324577062637783475268507910121884963483495416767248833913257290542377551651498327816242204681882404439019262501702287946183364887941507891365878587262321169395807230204788778499279929273497750817946792409170284584331914974551465119484158457940009604282272151580987789917507592999953488286029441207755903073705025577500328589307223736322917752340663568146866787929394111629957648574929038505880614911168766948505317748917714391907687929127523319939538988631700772393698163989284105271405178036839673775448584873474152876600616186323056221710721938790908783855297008815707535558076154742052909933058650928435221515140608934865257448290401341101037126391290224928176304522218953915124608436445415339515640555927111355310865946855992297411939573600683416549663770169581064040733524227356892433219641745307134864489621698027421504324611593359018146682908480886340416231393688247785927256558626992302021070106532883311974847900635658045094439350439177135826412700251336484650821143422985419681410012468961029538644045396509116682048008403788973274446008579791520218676304067024000383324210508892812859407681442699270675942415113517953841199684563497403581745877613995331158941001427663228771201667036800689385666770328047727623209246824822855879994853396194125840564053129022399539013362073770217721145478473272792453379417031220082073371948635157397879981152469734116478350855554084227042052245110898398080397736490696781704934438291898837160986858731106656260883944628188509638016104166799098423097339065830172345487404767083085445119141759711774657954854083067392999371565327426605561594132010078350838831263108282695761749019686934832212478564132502937226228273554174291911146220573301431074154173400021597732669169968847571491940063617766178160591532764928955083968532327815238615457958067251919298557230891809633825620446724253697825783098224511794163019548513691538427034563531758672471998762768809483314480974375804486935514525565451681027014191464363115355416147540600624932413829479398855387957335140827741939732807392898669738134242426718335776592588531427790460935192998183031212599317849757173290319768317176100214168983722108114463683984456766436366626649236751682427589231566390376475068099917201135364664590557093735834265695241097255438328257450473297004205465938450096483110260829909665510082380596564925376732521187181613758725126848444594049053429207552581114386902015221918036868203776662580000940391050136300089426342715187536005903844962006189469086276708014735703591184393391456358418100694313305270712886742561607388946249958714932606136657897524902053352652002578446283030802782627014503286275693570433032622396064352169855923488274463908480730877976261027737016104527086318850296400641596504988367580446434275180072926895071867231395450928266709705305444461647108841816615144829062281220375269264329856633185024389865745445010854027303545083209786651476801826054106066155082497002848685968070224964019244051473513542956141660557755280562577899771360942091484348779675024796818230793854602491952208513914304947095131994083229095964812285953361694300233182461681527340270710272779723035016547168357316391209052334916590454316519330263276786664549690536998290931629412901502461449291541897606408423759833212931901399017573023866176003399761561078899736662749026369294928790771075634345608678317332300557467959624412246993936972260585399906681898474086922519854980462235076484803042715966932233826340573098582472860980538137436836058799807595453443055501338645020221532285801709026268611475353443083001768425109730596710906838767999986312531249261627847614812801026966960394504595211123366435251528011104099513530375210250695517012559928855711979868417640894904189041445482775628400527084136555926809445059667794765373338198379385364845314610165366092117494082957127998158760571894466502039479379742819683667108365278051357419719447869245075469058564109382474571641535784397136506943122790635132974813934236279103300426785352611856942852222771003334252410049381954336860479522323225068914290130009822263764866908551047679794633187818380807153504088587300808255338483987282487226546301047982000100489821050352075245849826683329524801999863473966588381715191175106903509648795991341732327626611604599815292483806385658085634783721589709186259531428529087671886813195242889521631560285246089806477489839859101655192961118267200403412631873238643471957055992180058432906478759896050079220726436027258832990940926841888392414008054265449737482006172707394228174838593125158519813304813434742218574412834085795124480238078397795592469531721233676024021460886076863424423598702517428760420135719710845028685963058442485244782680226391775785553481209526017754684972877928594760713589777705785293538100697255419658742007352569747260286847753255254133556940294226449176693828178097048742610166317259689532395020254880728939939457695699097216797822525655915122982436563406227740227996149349582144841557754324036991709915245463423980686642874364912732018258897132571755420230925679733583611603004037176297920341283887190185101019546962431871145618381496121295989948698704022926639902662758986920263096898253698888480043547000093491731964264879622688108563208242992187236434784666334355903908232883108997144080861380521662134469834712927217065001580828468024165595443171086979910881521509513449630337527938727895009970910562469487390050555508802434917371042277581118081716250298530950087936974855162320369221335077887197194926189317775717179290612774430190181778607012655939919135754070063991014413641088050087131439003637868075538521438520497437451638098373859636312316602306918703193773236902907745244561098339140993195055716295851172122553236765466418376678064228681467143346807668235032178959820199922465819628689057486730510459999598030531148351934437909832840508384235986836638308406506801110425077711547463727825113331650186303697975385048233987171465483756194670085242272977255603381446395440874039219255271187630157327381152598862613817436474617382692617275414123359139486324336593121798280183521052738125436686501153671894478269538524189032765247766932538684047998881983514562910844589680232055767591271434895737367459607428378207624243507538092607009331905747497210561171578517196988207405654425607685655027555224653760378224474650575763499010904651433729486758423602933249685101200296757026336649210513647174768843348945908585514982134000568754410011531390249130721954435180304863083387816914751746035486413249974566111192395235935300097689442407796154687964972434943129985545378510440636629622799110488659170576275070482918490747317422659604771396282370612138043028432383514020949049840057824227709059702789459700325487041208374812538633647696836076850159896246735226167928723418190830272037033405810307489208312510963897064595398083545836822233610905443298490936229184817417861922835140978235556237889873232163055100652258102628145321305522725609817334657486945991629751859858547337728186640194902751278816383144723932186388241431927285309076225555911892506104237012446058998282292260519429916097763323020534480490207565116469077840343017957074541302946924921527210119391590226705412145787416245044418613820106124356802746485584499403125449743848820073343479341620142780757412397728261566197084956871867678755627172100173160825523551214275917849026776318090302557473844556744812155944003950605562109939815105166728101654081200913804751450555319462975653065442010288355522821131167410576635945250607627330678158255985623035622875385291229769731927540083404007723798317789793228446939196198196120185318883254567671547596371600073561005005303474831213859571642405765788003467277745925575763190380178886336609335936353617785086553295161484581665395576051393329613408236323545221633294592704750022594738854880563473462061298709783403117009558911037622193883357190161030515439162603733072877551119950378568431487405970375128306332671513501764202655409608860065666404890622884767994063462646351708064093302615003307514310584672712900683135515546149390134046793747274091746320889868845744585324808715497104793869523316532861861543680974137557939946646994171259783523413731333020222910471276494484940809591086147415017255550295022578625574406769958811335708860857900648449277945328318206629099827869869685433428100228497519114280368197081014075156915430565095345962278841350649361185788999447797130302764272148844026793110554129312699810462314324873188341578143165192361418758154336260090799164248875846794260841968370198104295966020374214345310914850546389894289711623048416794567956604384505459167968069908529479809281439949585437608470896411067944048725587134691664508242687681593936876768449343376203895942798904805223872887683349553595216734548292167240169549307437229833077931553778330255901369238805081934538069845092902950499004778104271878188119551984534961264274002768596035727448254417840883359602443704839630858492303045243844586763164274326009835530147295612107494363420549107227105068897488316957436322411160701557993946176276043461178242513719019062506875435246608816494313109472350128919933160133676787372614650911583647241086658914780943770213961465358613188210007520539418803513672614922951152927742382827663347851121939700757457413135296419267049809254106385299841958534544327021625142116560194866794362019340323619227755653290388525827915916754990917018662590713803658928148507395284503805051952174894848385946785051467065964346951418066179624447051390258255199557165597457281474239683716351447671767152632258695671612553834231323332245181278824698131051367440770516040625926042185057478593850228505867216142811435616827648498971204559310098725804178804427678888370109488284775264393061153701984587302000879551913809159429904392647479934832035824016502752605636535942761365180712221809506771580571125792256150921930927125484891334827004391472418187937928264007203018268355710322771355774720723883532248721737843685657888571867776042188093749871092256828515236235259487517946024369622897410243754401701606673247748575328915446858617629921822312225708393681260196842767640393321694038175479030035662978586871902729169814183059754648843618197571792364113173689610566113836615135099658241778943758519082954634053831629314140017427597323357629023217927657407069790647208668353336777594765716106654920756071374873090463181742057065109944105592170669365699316963147293301409094482624001312211963366140697913764347706042304482638133177644073682534201907952488167285138346591252181609988198548560212402372748365145539114111787380136956284790749403955913713741718812855068881748542312094539731693970223458732123642291561663041941968426680363193175588870999634021788524675177889926211752760831644103289628837890766741750250445451983614245248755107135549006515934268349480878621279808662423917211784342067239827105819391603458806871280678986005270849714871833331814883399520068761493423109541061572113004099064031065780420364373398507693051536270489379192473038837759202284991309697354882349398594566491879078835958291465624904258341222486872818226837456846898663472362533852109457076641689390668911694905996715125447353921904651474511434955988139134281330639139211148403721835600143788756679033658155883505876375542809107585419990020799751505822756725783449433339316725308006715569405996492704603991369443963957369830615847037064291477921335575624961631678775898864830214513459882340051550220003440645074780521888252152236590509603386441077426251164581821211921510246998326071236667346002247161978256644169563540974899736161007012399805048797355330948285522877783527438671006235072478636278437160036015840777708160356943500150052640385532925002530731434621069990033529175474092681035026542092891599275384395458539627529992301713572697407320111619113237199018153488461797799600501964236154990599077040068015519105685952476472201400424390522187058046821810796740409701837772228004291829821421631219244173107655866682340893593342276036291527029059260697903932071156953374429291108937598812189610485430305321337827562298591764555754902164448787482677562670988489081641106022892227947444378699076156662483956841578048192655537691694636893977825895761270769884441096977535899470464366558946890876872380054709035582024890826967570213256140565887130255982519832087633287808643965322997956997021809295096702837751040520254315853871009650104655296034044539497834942839589830995587691180977373110936328648991908110999459169496063568858365444940018977566699317817085014142688348786705297030533265741663394882269818914313895918023777583044905270615045842880686597499222303835209715788281941826099771461580972903411210867192738517108078701139417010466372127620167906103716282386471852570727812891342242473593062096134039144373163692240745180525727740626222341358605103440737000392080831055356830908721656636520904016497349238373565727293104115540206423711746502803669314571878415615178202612955978505806254569575730084928637316933002458741105215627120991152483778067092360187560152788743319181278787066819294672429813548800761041905470312693788120162939049562801279723606599252401616377082270392342276918215992906405838520811980898885829060181217916827600068485398976773843343302304512637459001020987670523215950699640446496645952575256773331334782772516543267182986010166000144802587516982409660343495288399015821717561637884288611073661818639550965081110635562611950767365369684434630373313009093512642023380548488682925950175426409651391910718772638956729914184049855863087068522860084215651905016526419419350977782037400095626998582206243303393982800610097132232230710504488826792060803571479183503265510245182377668957915383556491720318180274790014871212328143791336628357151520969342419307222888730235539662763744536717080221365208194704257076056934317473243165778189152607175021053273946570112884783128155322181560008194727121203275207815966803694318873029478009558149847022875005386532021680440815937325520721661517450632431132406421397319320944477244871755501121284146397865172295280606522466457486375557500596178446935296997534462104482645997005604594169497957262119722485980982298320752452055375492435481825408236726291082774348020089904318937709075805438188123210108151082704278809158142479763743633379285828601533834396367084460896246287777394517265750169138972857438642637648321152817597047754938674517926387452287449492269782696310709275876901490841028519641133748809802850128997688918218540353904037631536152655384183196461833311443220966272525226084461676339651731063057249695866124116222778254575133637451253540740477406886091880901859789703448264876580445696115241926294355015709431956721688400542291738240388434584811132473496079521645675107516914272440161013150003196004053484712156534085438135204218458390503958686267681828717599976290901634598177017211286843042924001934085446477503060613777789706494210290440602512463500785387598320514009855782639622803241972995414950593504764403484540533653251435315102657983699600255490991848417602147643810017697175271333553156721134645916313870180224874982510455508783709567726771395524621063739964167747745224242334092463950896757017900137179895045386561255573991863197293371140799817017289875480253659236862606680292009059004375289309844737385278578067403400217006997337616544558422235340240958104969032817958498760334763465517860147200961041883529626762239108973438896562134180936419472376083329139464636562126305640018201574450867065730585166819718613065634274036664480335241287924523072098530123364629818170085748882176196178872091648886063361398676482655279825877326945831305961107013831751475007448229542087191195074827335949610468665436616279734030769763789611440736954701019598366331697656082240630919020209028622807483718892595235237477366788712193065398475866565837386091432169185157574399392832020844832198609684689461048395605911908904019759984751353145520805200118801101959814810549485886500141884694697271240637732084503986709427538574105146164681927281666779366391979479829803120665766618553053398306834860128312396779902884779255800686673104694836715590088979337169618071282733667702317456145163012591941926712216750063187601979722497662674114678354645081529537764128709318995138682363781704915235482789387078968366043422600164394859269652721779471005203927775992754846152316154357098167789075294365791792580404639500663943058807527841245612122468060312918876265283452145832211557382391367610522316764726251409149175406128955114930962362102139463092206235373324955795848789767796075063482090254128507712840863729759869579739647012634370636119813710281740665376582042863170571029190059774519502339229667459357440540475148623285280874398832681419207178275502148133396759707586271575429296057284747852903736889365031462937949526814479842702755165117655250997766034687627132610427950340136767906700540663338213729513346002909368843936697222398095781374373892760329018968228769334180382925190089924580855443604209234006803828329141441178989274113491332356605102288422416059528175874010835150763555937207015940685987109084303803669750266812841083449085861661260217214228337649352740951441405027555764002411023158114105548441035084772362798599057085507469140953338589637125825929910719942443795515223917974031356064902259874846740537134293282116892936213974296975697133968987683503433739388638496567260776457266233478245393175901573202570060106796348728361545110098765587346577799155163693228688115458515537490465663114000053373184317532339003208096125968172569887254703459071396365880515337183746747701782503143571386498385298348066052418644633150683965136640782237891413046660935752771945506984810064501324057709842028484469911567032393601520609081838900422399914194205584880542314161278155833504939602392380962717099953304489936661041200711637498958583574821102442870945010244808455327067644187672528595181943762250232254209252569377620321224986349027961285523382259646715800245354854445066674344698102668370100455177175755647787076979938294547680136627319516531553979699199248578646323453151628346845880018896627224591919281442786992661233679124722614611166720400606461300096066421613434788374425177326619894740790031371709972324495462479033684985374436526861113830294058316490210909810856950297732304861566919512385560169057300542010387714839270221523545692938435888108408066830159819510703245936322652796147918582661101045923894744698977853212462860162439641559435363257550535683745328270996493728798566308773279233015185681544870217062706956920444218933828397415065667709783630806005035081727432080415542713402204987362166059189516279621346104906937592197790952650364200133678489030858487541430728629343662224382662328602925509910233529737721358043532853438566564695979268157457445392816870918891359109831817834507759440916906497580049680293676660431337957384923696039590310282528768162611143536717649062001840354581965081437054958029884193097748141443942774180300764887562158639993992019158611064184017902624842753488880569307155838210489073976398943204226176495563262403174204956664700071923111844666989880095837862930864043127827949742512814137953867724811380365089255455405294350299321785547695163203375919699670084497347066201502337945999063339046808730305477210053250444113343263204085305651469118682267219207102100686596389753061700467587492094529694262546511546923028599186118866207504406825418422705676721392311191813687228919886370216783879952911911918642173067824921186325819886605711182761259197980334519452303852409900607303102548881226545336348699107962535310256386531734134422291185857375024585411082696029847790461406520228644536769452201484285291846565772777014627176144380614697700754438592665546629372476674775506671535011397051433396033170691384766423967806406222675542176291812339619533030716468356560314172144203930203458380775822396598321054123164321950316647300134488789589462086315481383258548762777125742251178010428657551606609138567962830332440814941371508005745317197228006951270227697789037747421455419435286946947755519622390603035708649244568433573774903483591333797919038515263991252371911319299556405489648472609360375196851104988810040199300550965983611844883264882357988131799855104957004999759016702736101438361043806483345790454238721110063889249046017057553927565542284275448513405686362281080701690813682402591218591492340409405820503986304441930642136357906194395253541644488685833923737283379636887744760341093590314221912785465847259976784198097732538969507076961894263077494594255146015540092055898950749341180747835269809165256253804653780450747408690007560210564692290811817130808243080426684153362989208164356931865095309908035964592153316061739208865338625199563362174732306024685666737925108792589627173173013521782375055901823820175568080064824094523099553975459440155184276550436136244791387609957810067342530915040854887093678019222991252885199995595049085802292407675313583457764582164661152133828040035771568765302835337533450178854844009048599422381146706958847215096673456791797387290655613674705209065187970659137933347116778126078033317434913500166727588790927011244634733260708284433713365840904851068822811658656425913083970039130156068273841405836722268944892019449390792260110655353906891516587748585652674137521452841638673265973659480696298661463880327050959559739913287595679585014995598136031473853762785672014547874393996547423902794224601728995871706647721726157517708938926126957163648249028334732944820557814507533075431882762865641626212875123695669861524405179558172776379076685940454583826457927877483257212046117590791152732422571759786770816782714262660897693893103439323735395468918603038783853495293621571495043042096634589027948537206108714225147257610153441069007215216163844965847118745133004118656803833014531209513804547147660194403240995438281906223777234338620121980285363523513289996677802132201429264583833619022834363331659379039678272062330751434686851068869434288907936509750680032669992240486825423169613553497910455135580066779498783282815266019545654507670075764754614665753021974403878578549864500015272182997858517601432714645464076727506822529755466847420223457238816060504964417938680434606440350736248352122319566146903209536107169237447729949842898817084330788945281342415802426996627643466895774864227338111924867014936192959331609060956184993664811145909592242332158306391782935239077530472151306563196589408794153903720225032521892011118751306818847690417255883098562482413353828842925403263386100374944860867290870319400577308942912187319362379495496430777377504011781771376878914618198504027310364733004527995057431066896656740172828456684339698426274965919216415175432913079514950739082629627283599088256907628146555135226172240150136011438399100333120067214205169371541385417695366268494034341199376314219552851880586756112006689376912397299080857574968538682790966956729131922468179612208095460579457378815919210641882032931204491501917807400637315700334364196988238929635594917420004806849620752056553323445986724782017813848830667221192106457020932273023941701836432290230936803459215626179498273055684486452746389848951248449772791112628218154939378165417817945033555702465660977712205307167244833494435676354198641405153703614962064619321679778659697594475658259448338780139530137223602318509438295188817053350542974867346105808248430895841234842132225607074967321204964256366713067759525907417334635578603878342723608978784071789290322707647753730750710002081648269506943155115569743014734464814156386335700544115051055636189017794402148393408066113543489262458490172124577581990340321654705395554739318906488856081667342358223225060729409179594011805708074232960824144917680914582556904567937864763988006210839202375585724704932892927085894079599658690772380353324273408705715226083523248529641973893937556653927833720299660561752823855027299638261841519636623983002045628335302858341656328242484966429078169872126730652474882461488760474308615627084806517412418177711924205815979254905996176123784559024770258976154634136015896493133650926828663662607344224528690859461579322551107267406490702723969622383285160410187849324243679923999300906651373320630934115187134707815480333763251996123057171808432131069254962090284254033508313922493519104977790969209080873565051145723108643638869433593618491016050591154511318721119640775551893771801233484891373311364668095816511391761062196345640974953771270195056192878123609201642828755543269164888226238607196774539147117880002700288584741363072642653953986401557366119502460844102752284707766251072248917882534691739333523349066159691033348721402749431072225811885645665841457556663999677296090767663180783578490924181194186089250663248113400468952405813420958046448005934944135971290532023271853180379332617122077008155881649182188396965329268962902963728211075453266504356994514083935295728922646185056008668610191737987676885621086179387578123150363372307989131191983189240762024610989313783484147578010407452896204906691631853596864976288583051024727750499530177484368359320523792302418227017035875744661865587568983968700430998384042023940931811710221449943227963962899133615697600482191829383154083341455236699626577831408134803581955694555035323946131480651036946209621269845904904762501349767845472887075942515507746281620704385851908405146714115986893341507995374726693486675291253505792208811683451043234232198861385091753793042246367190683495061571600552140597323973430755421651513928842745518677026551045835632057499840386995136252567312480839111692971610341903883379970505213464131544249789884190045270197517866025064728464185244071096552965462497972418535751420432098513925047275132562694771562634197920331625554756176460858950026638738303390605807701306382105436621977643286556954548752212121158190929187402434753777828402331456052038771350958133954386127883031138976407583597803133705614653457749474487873544381301848294302812113773122046518519449171113095544417613263188158708223717854007751800105264278921146099944016788169230459350375642569054855937696421326156827245380709810354402319078985884605322959804110204595856636222123558442566297150327205239216918496668861897002314171070081433499048445279167548883243311082662424057855042827318936450573300194166322789258229352985714599723017519933133645152172594010078905742669289200566117955962824251280422668577043041198453898030144267079375500830163197712767154375048540663864366328265711740951373402131357618457656283707501168879924132258438883802396447631844923072260390891492243316921541890846287802578952337843679303709862041310039468472987236288850367445544974709917572824462037859674481421238909104073483897884837365609386134028033691258696105322159127200464206918589555388946527691114033969490621457720840639520884743451185756583149609551916400525537047865907312479327126849115480276708761030181246577403208964668549906423539892125107676168722279550304431596948149290825962910158322530958950055209043883971848649141604299334819773752389883897693912460278589048740782346714846045487279986172347378522334505176433279180032289756083332174207550300240166179568136217511036783392267243588241252242592454912194698765498406084648920839187637571029063932088535099451061317764526669346631217693697824734266368689553342925186218832233521061341724419195189512039176519875907408111172123640602649014748561217912220862040548439580407118109451200520657004855198052771912625664845959858020310121756001026485238580907425703183926246778785401263787812446780448336249581252861319486727292331541241120895741006104481522881739044402052992417627836955548271846537205783834503259285596171438963188645055513980377118419748695184237180553663540039325640713450321547207023779557329455669418832580115532163442708009209619389909316478781861556563326668873216095207086680251213053787897616531676871589541665819850025535009953912991949969599161092859930137378325641997216034581960667287910680311324400459074610158072949860609559283768000049630817753829670350858051065448039762556957953444200254225013526291054931794848203127944798998512742069168996489311115035148036516934248797491769304194040817345810392147475626396360973691999717727265691729640735052221714396291454796559407252137045158146234223700330110030236672129872722285763636587739705119422920199976454009762589883500408606107837639108689426517408486614991008818169468567915394066579367425143243055731618958744127673274089191331238353489392839570304965659616967769509152847128028859531276373448044445458421022179219528060460531410142208730164619959187134430312152717537153651221005036660595736963409475525785029992488125683253493984435303098972338367544997056523055899752360767178194966487144486371838198201027749882245156698734087533973136736040830348083679484520987289441408245481489705521447549603234457109094918078444549405525536017428598716520191470935434771300966769812883988611313166800669285610909473272946011134246443219941363906823771843297847047484005426066665424659334619908666630775061980766465367217732710732123440472680124456375598126483948966025993868287165422053598947728643464769852047872294958971074736968663174257994540704066086651893359220485352475770169982292617810150773868991810803886314536805746066142656418831406551433918039730491595571520352098011800869923864649080967623296191835150742082166076866692572521472789077211524840486198497590414848941330216682573788209424525836873272810926759525157157670783347777094079449280550385514201907621421045091237981917114480913877545935292836599657251401997042479948325077991652911375714489703439337165682010782160808315891714724696301962171791902676129415168852590798766360868311398708040979717768544870457981651592520165616371461814481388351014562849006332758442549853448034250181742065312359511155213340156020158226610762607972478834802806926572566183493736661547699530870436932469900834840275165154004130481624241578985251365898919775355714260740844238917677178594149492190626066452028448780075380538933272788153595808421412601075478749117000108320063993452105281591171601223232084209416267404711144257979022109540387526695083445399040540599082931815233219849380986470228931513728908070469094656520756350081997171826672937595542252528911738178787244007159669940517168907155226909166703122359368252124547620446380355993760414981628683037789128834070532509818499018469295847753522933870888345152982085913380506491798179680334938650320455606866848775318839796941857870931196536676999225697532297348955700607101576374115499989861952711251519284668005993732826850221957455931391608156478887440133677245784949869856660986512355812054091837567229982580071799355889083592716098849114767627930185057718923799482823222323044559153931424709168838391587251535772938486535546649037930595032988662102966143446828021563114547798227908239037102538460041419635783901367301833215464283580800994300997900934916982979397996495828888727082161748245707613770731154034293002742559825391953521611237793899716874795886408926856265682780773184538466404700885831979880218315545259002881465826974810334874561433076923643803549711751849398884565602422870978657107698613059086868120119325181679671869410230656021204175595842162556782523469322659891241534357783962512338571206185071482220049449318071590539719009706756691846842927370168336700017054880373224416623851654802165637318954832682923723932346092010980050455480574572480698729589747639199128359773240194521244868714592504942654833269713714742651267876147419875032110639788384605670119648751266402844748477443167227382128194153206631310120233024813034357143720892249555525591154547686275519388206291079580658424416630463514772535503627071240893758145449399979873796557416456145043968203773745196272622106052082564492280171248065162058209482074186876111030825823227970661235213649373824979201112100682172120559266741446958443980084493334094102319412440188012407004632209267947627525825592490227843479390362356057590657549135613080296614932214378563424181378005393832181841568715604408511490863965036124531862862923340809964849456442160239167332401152084787545865680371804975887177412463304680781288929945814480640276072393732514869933249163719799107696713318148090525741123527167787966193189522945644783625242932434927638366237146865990545988146144553399415304415862343234629051332666891073820006891776577112481618905369643294287052306813412918135190178518485607931262785141817878198602772683655607694737477391341027622358806296168543610779311523721967495387263395617417095914132961800108290216936832643381775152458708351655861610530129998163921003437520160437402927500261453702388388028625201437193214470482502093167837508286589559869302498484250797830378812101583270976395504185900676976563346004613149982828067075426775955085646276923802618248386354110796377045884948119252242322816037229894203133882590276329800012405465908987244539979631015352777591051011765610937576829500385331703879839780970072702060479585164906418559306538168013388700655922294804072616792527629802276560957908580595159955418983370126450234128740469085102590920771217468123423746861660997443437686739620823555040914460996376484732538017718026337019992297709098859384025500324922723569088004814174075386529166059262689121031000708704388421877026264148295989483786728061632696500563742613784582692975553800117549296321985986852573237417409756067646599685901838232166498645016890947488123960596446357382950577427423695028523105547225410886033024827581390335607308237047396082489876314607034299145769227356695678936517841228089948457387279377536803252899319281107982788328343017500886122777826826237414495823213275160251454309640456274716549998314413201389458374006080320189529082639085858335530588854156093856166441870211536861503725922850319174472312397919663977871119153632366251301688648013807481122052755502462387565386110721460462409209567537964282065797571057798496828470118850509506832149363515094635093747465663978465562957873347744133489593019485345517528832582551019058311693678880219859780957680727645896751217114928853547312954558806608347651604146129390016041248133994852522253855657416749489710449117716846729645731903083713671024172024139013353843288694636881485513927973886999290155656066796719780233443463971771090973524624712688265249630694971839118175679222337014555326895716177175333403919662111339074170956804761614865495114851172611821834559892899562529274996757054037861387472599356892531244451608882473173613434540259288697363139459033956281758215804632295522708116544287152990638003278729295944295916084329111299615302133624325410042539418400466655067481394234183165692302380099762395888266630400837647590072099995963864143689936390051265702764611334712060498475484694591311352188178960759767018647074338785087362928937847737036270573086891728024763430923005926776104052426250721998745154793945618611802999742774915003381313998395591675527640246684655875418497055041497131851556878021198851934540859499580664276707177623632602726382416418983257495524353440309051532577070471436585816521618178587785860962652755139299267080132378919945163787385540394245953527626853813488425582504308193579362133977821748497342896043232068795149633149220632643104766056280073994204147156563000553230438314537150995406248037306865255501184226752529338225549668655190098193516756853323066966536497521898506955509824321057742742788764765188439598227329847848087307783649149685856707616570283149076557973890723352419148081828316289348776462032357327231827561342333775041274498233588447333855827257477345306981859692060700393671853813771951664878960203725689409417335207663788420765705075140223951682947957577126159972846396083728958863326125675646439950397281770315676659600524122499458044006900305806018231996953733493587118988572576860002314294318198293255917434054370337658760043113549606251174386169890966176418459546255247338949816042272718454632489555397143263680557929929123414149486774038866279063846021056435538055308312520164197770200001816537968558034737990057025167263376010494819471494778219345246966629198214843066383148937181423630259575659044609319456603924678668315946222766833579530362319700490731831628464728384590537478883346915179499795167211378173368634314015088697298085043749081392336637249114550543398566423214582578438010634464163285525601496017593001080210016418756160158460463340080463446198190352661214847820802454479583500652294777987088742144068772046725371154047572315296337539453853691729996418168766189155759635672988599767398238416937846708536974873550261930129950752401297190298960532327437395929940106264162120727684983138766229155020127146412034472916991501069420803204156454303829209252183781238650083854059535460503069431121332746325336890642455009347422410545727864763053456108535352637029442012748977308539312333647196555500644669462964717397661895728562587763772412719312492488276099949173447211322158062010016193678425294958446999698514821363232834047030671143863862004507036980263407425573495731036074444451422542105290199548270752926324378376986767940036798616693232647907095788961321055721150101253014793989368421951231524017487270771928138918997521801209214211783385567242886125968181650617518768538235668862882471426722050743241576453697139579516814090920338228928893245537873729683819367098453510918711911563833842250777229230246559367085529226437166228844881349653198811399661137603266898132671731538261745624639648445093419116523442143036294767335178037923529078895808004953562281644245366914501391471097283130091777905155403625002923434828997663666622880738360519920250905529345819730972954730199015290121776194161246869704976192057040002991810326069644999397103248635834828343211294399450706297492091390654983307412902789356070891727735983556086789194650973163773846473575772866778423262512002698753615811261730569236659973736543754230126172091543132176477778576132356008513959424335889586948136127558471654284201349844427512455538560487218207463117148801993511788916371149639642819052775035542476749334553499661378323276969838327460126875217458608897876096860742323296903154540117148415357468051248060320612569141780483389654358889527731902776043696236192244758987823388696742368028086086872377519391294302589550916341809798981578107584885777708367704583388161435378767061602875198380815014727045229066165557346861899111443596755084848525488316102201005538615188290617620799411108734758373821897151525737000536646912326435869379163115976811168885265252976166618987311600535487934257312600784295399650607702483122026663379186483869671385172106898356832108031880673598464860004152486483031379484423099603883287841494126643018194146354608215452199686526909597990827098311655405793746663372474519566261049534514703461644756368211259840721947007280477989687638671217689442470071495673312999695927932142262631316572163982190834619051028426058109533409961372141885185095144987222779438825614230798971945789773930992259500231334763163599742303946931487068816425316336677669359435823219998478882763271131805755899302879164543434450504041192601159897135632394877723167646438303573685512213814289359641685131202809662974576322867065636881028782625567411466811744909747637577100183073746402819549642209841940638053181063918362587365902664293016559929943574524980269634890696736732470283257161917624519832245975389363358179907414349467984761703086670498329583006950863207045511930078999874446364130329513232031474461479069841080374947113069471011481308391394533001856757517730566431299113997972897782267186764035570756123186879248908331804065972174676870662778381108047722943110156833023991997818248778090314146733172923697926951872178232682179040297379201197316118316086811025106128905164035612549887047243258560002453797585317425723326616203940396863691793033223812345036925839776180159155646235282393277220964794375640102608029137940175048669373771285453503062470364862384639724168846258183983446774857059987862242316444714967422238006272603501335112476777339429955729957803351730591964706621170402048635376932440378881430826676815357522159828069024297114913219431696007454385189086875182407966971743699107439904986426753049740904474926110330260146417243088830981208593874833735679300298827844169513409279932544275152184358797750364497201630170836051206111260306975860950115987078950911907150771276472937415132643102573500016434494636863283640587406489518865195445126742054075253790615765877327847661398122223153910017455460717768155265712541139223939344289272233190679618332102744724608392478971304306689476536188937253124464752656212869800911181701451004964686096621938671866878092428886456907501102358202814455958809046780783445309485409607868253562337335282407068949469705607078465398829468469029337480477127996737579715226272313957639390689841062822654630184416052212534425959459121327190913238211377622172088596723594790092883489534933723336345851660185937565859278835233664362228467968294200908306678677287729437557672033765246497851841885390493624847501284319834118999999277219506760897538946767438349544165992389385640453628207413630420663839499263509287776600991251665635765979067435933066502710129792425325550517856779001020278693308922365129476885672729443487649114987150123217946873592779633362519612140652167375860201405747972445880625285440279398418049646112711530520644420698507588662629333919541065121169316621683133218816850102091800968045096065636294460657445428185084012015138209906751672325005068478529196138523522999850398187643229473924527573390713156289975411763879705334582048736746222382660478894758127928664574603886816449476785191919596713228931093309926299421039696201010685253008817756466996229595814280430886070993760107142796869780482933492429567392912047037755073526079686381605870555706796218090826897801954900450349984509476601795575714273792734101312574411616255625482275654591515199208289071032596810134321099540623400452024900939573353860328274654101594716439233969655074285952859674452536437638188708173504630430826889254760758874677019757157422644231691194906465755244862568910999299919778726225572578920052351467771783059736988731672827139010622536625985751170409973244038972410120852984693425383069507827492097364895380476158543724444232587382821375433454262989097739217022361090462193805031472343222214578996596611914752825515748945547578360479748195452998309893809141908364864786189899055535114844436941022241709963820761103776840205807363914608239481258635839604761320192388062930961165440434967154963161111932968076380549497936660272267972975899035487064236241800382632571279688229336032518966284370015382213841181509040106216075264059415950726921208784949417838239008216651706678509060935730880099323055568103919164674632663294147707947882018388117169490915605846096364639902830760231673102009903117513508914939744580598052856563449285901698248307620566942538186726286364906638743365913951616644313312396988953832236772268202358220714835652234972511438004700053864818514146963872586812728029518228774929824635103802671759882224791981258715280221518454297558817988483425989728923031187846730016220857615409219662010925305499177625633738997565777466158836316498418939565863996382604112120519064380884147337396911948921874372075945550232344018832865570440634417183888519472872391705360864005382409844920967421386833528013804741379204020296409277403630473625798262321509790703518982906345686789389590076513328927718752874762992703789471788964652533558125816640569682440946487594063264586006546294764372505684307420518897227720679209845482719149671210036156147142356130354084260332461732735540948154201653500673064368991793994781979161933269488727408086838412627982630322982574210852478439343994209898680480920283984495687227122975136940613037898116048419300152629904309090835171394872986015828191135722113208744149603454097150411909433222667828224699486733070550364424733977125841899604190112948442486312169220775994618916388413090616729288062188104465173166958949702609183754945857911285868736348303506503989061527746727964204204808077329773663998080325105289693938483246536708649046510140673339785654346658737296151769576440114382012763630145420139635831989194513418211778089702104103065650937278026332710984884583026558547341253605209708832883439895164646668851631827532151243597939767421817698342705369461711553940090245239870690264648227236400792678138509367718899035245631283938228024135309226951723776347857591150764007067401249429169374998217564647780916567982257471795105368847656792485313935322742258567875771407068120981472864310158430236804625321595432549242178899687828888130223646056214706786142812361305051856129911888742143803212978234781914805317148460245071338022667055184491453820868774736312199767569518865028321835326618841523283090710246039216713143765890230845394873558227824140995499019515942558599632487990756663031890139504834014701190677748728396211233199358456460896842734159778382115350383953405736388880312940261871899563549021166832703177594559321975225599468667752684885463857149917139866603254341760631610976132019207146137184824817094401788637826184641834381836461328953593121791607087237580023144703210617941197819474069855144874474215679534833204354689354234650210525189893089796845307578645388354077273211003325721528563129778783177401129058078409221810237666394862594542067836795465247759087143443783516573084332577375589472010366308068554727371503488959264211052125145878730838145509831610944609593880953875520757072607804898799714252390594428426395105201857716465490713898207253877176951563830596834224726169872208494909769321227135182380488371162855452532028988010702787203088137102110812594588253092329798955549495313060447560080973014199171717110043178631085712785632351859517892883546926080950477702249549425105343239698466917443845638883212070375764369710595155105868330985362504373392439626587696775154238663723995068727827787710206851882517377676315988372226889028762017531617643568461751357900784940201894605568290266094914087707857585211420087564308146610327823591462395899168238290174652562050722314884782942435605292842133699314758125347348271077415236756832195401197151613334279045311139114927644153625783608459855336196221739488665153529163774130678702453500864440634206125678418873635566546171503009925090607008907491375672518694243943464219690116964943700684359669645289458838032037068311446412233018739539181631795440130375926910700674977749628629521183204716101343923581485737126953471612463725708827858898128676018562171813401529443796646379938476298271406691044980691342565704826078938165095076774611372366614946545952939368892085580033419903732656880093283663964292940475383122924476041520252053244559904893590336510248355538275379936741227802812578860227835462149555945597865329661788494731563195368561354179425000802972697251201255306552423451947621322547123714251947082122122546339119798876977233962806626441578019866966021347217032589784101601040952247220967595690899266137956989181334797448156521294816743949528949275874773755485726417565973078374250060978454415763512267445202679941500394149790421395248583113493274996777755920475351770907669198372832177547477667785803985898667933051770675237333601450576250236873415538548603122833394809902111990092985802106252651805107684626984155434718123037656330330602787877028384925408829602922234947544625131507084513741595841104895898289090318655838119432596585849579323626962245936421944085922101751053844038611644257429589350796544366103886462953020303642126506243272880845748832242484707617235527163024592658775616902916298386811627952564593891105786145208911891445276353461228591524971143786657929147226166224057071328638852556955293445494996662554908198370056819471863070460398970080488199654602687040201273566550237543476889281846852579095302782643488967785088657155293410223722686749437446871523931858945668287521305244183425674999305554877050982718554135430343085692182497978335999357989773875521505214994260959575826878330922770299570986109034152842382270526051372899653154411017036232307977946119921785150544782348428965559774509951252952692337268851368210503017721564918543443124963140686791649324697456994684310621077009990136981291087140563065118093156052621543045026789398804949524014802833874207780761490419304395538470123305428990977943521469805180236725551662642930651549280156431732010659182606495133853337612886620645514799134936816645843617703925774770229717711915847608142948323606533203646409686269305280935055883414744228001242241686117606969384403244060479678864538842998781014483223675058449989205851765815247427886772923848106113195057520631939327029223657401237248797260368710925173447553997953548723830849559752810459911965182301368542884058205243880757597277694961947189265353613023531401290763299448205647481106078505776401972678439829986362857349524423970153517487100699224971369679802991045439684041859158518546731244587293659274428456675376532796186443860268739842700357315537235572397387524897016519501342021418280713428561473937482039372367628504477939045626713786727829936049420196850365348420335894157320076486367658199656105888658355440863042478586096492108033246581724338167119960267440826948031031348840629844210200087531452758303909956222487183208001034449634918967967468759278351802639440895534995911188374930229393450892447756022425183554922735156432988653821133487309037457577088975307224863323179693319429525087295168748197817351731376066371670782527915643274714034624958267154689852127840310637172230235139233231319647381067175967401823599968829270225367371810502216509771515333126690669242917971058497277683089394504231070902931414530219293999088309408364293230030452669348329391942492624112908263818218311858207204249615802644931141103409312144093519230542403503445642651577328740609078479568583300315313702133757280834372851305374484655526628974083101383166789451611905857791041809282784224822660455324119679134411957090760171876487971364603668810937618518860843725437255647254368939086939985013110846334394002498682750760252780433377760437282898869669964697501193207723769887407687983702211440287998257378396549167711863636687023619532546524763637489133739555445387445156754066329817999465237958670902493968381090643979728955238308127935423727630718192203982419362892511275596556143491155917152185230453080801273261022547620658438099218807675944022351301266172918253992667748126714099665670122327388194146424654918660010663158925708738669070556704366828008903989269800651262548995260007975158502268003204813574260985419132004026564199923936047029097839429989418296737651649297312610037683779697858548727757014945765445837074770224891820524855472490605427793692405712631157370660157069235048191960615194410982461820919225944541963862494577626821855502013232927027990496106119952234418769821808337957016330617290830528647659590611259589151162071251185641094373733527803111833302663253688006824300530216140334717688348280467896053081031011204704529932348492178464942896007652157685157947676117898758453206338108998152372591591155349173453646625530871272501066505443473602700455708607150081846599224182691399618035873692915353255986875169234665133582423253144496983080966446796348770510654387390177640662129252760812337950022846682056891546460127995097590444369346505377794594829215595303104584387346480388736809267312342039859015580556870995419867600706197702869704584854973494728651754744823161234014874368251851600965722638256696696238064124024129443255446934313117402773051710165770696882688160646548251305362542186810487098820907536642627541554969815206025662344098921732517591576515344144030457001156794629410226437775205276178970406155576070597219027430507033758602865937621160933764378536941779630587804727452726849795704381560317431374389765079091713626824422087991014579955423207859927412173018771720132163509016301016211922302054044080680634475566357702613998242903291075746707119240896908391173003333260585312918297545633989970324815593538136151128373239163395176124551661745581039323734809166346894184859746619668746007337669955736473335043309544042288735282185034604906638218092267385714130181823452837157918244229194501213882424426434050930765994396279476068131411896929938751280678722787763069320826490168938896090378312680178945915525520254458288684156933876068912076040335022134788348603152594299940311298180312360982982086959395983874007046281861394955468133984257973339854164357307315172004538844435471062042295942441280643470507990046664473944471628099955112924112857864752146567844873322028752372731386743835070747248797064740887358362163070755462411233519863874445118896023422796817211041850842477610496282706838922589994262518251914763192092177245603470492474462161416239863676413593059991635844748638617893672439223744046705356489432765577570683360523674733385541110811089432151018962096972899272473981928147937750635994906776024441526663480679146909648442939897409430098735390427429484247871306046484317079247419997132499547956136830505825374155582849072803813928396566123617330971221690834212121387611549396190421564453439295572488290538627380203191615353395006393213669524259305414155915296256256363998825410962708257609258088839894302093025512382125004526115843244821345548952868151388099636714431018884528176540044011408225113005313703377315058839887454777118654936993382271815757976788527753770420960026805166351056709379925027965048977425492150575277710991554001976177503477656998647392672010925588477181123311436791969233440609184744045496419719914699043213949276974484960870566351389851052855434626306705368825093149110402303633631712898188645110618921043022756785294427889620536001835975230707144728221501667100657754350307311489904101786410530757140507574499124529160883858667048577339536372507537906723314134328870561609316093651559950956742837414237947561997813505498436144440524244454497506259548227225201492327009923156620916089106596854117470272838577007804489133118599461571519260007948015781744419650719691287263614724980480046523132130662211919295323388966576734446963574211941350011058639332888294484147382199912497077116904896217737132150792825057064310366140008628857052708543159880355029565672025269419194509450533755307527530381606070856247392779110574054656489110691419237015973048579615381706967086406278956040173115820092072641263813275862713344331781274177690134157050849364102567697425762319500261040515588277814739503106009063564031631874881945790995007248479109936367829099735555766730542803201289236730906653478450899662985930775707035595717072458759060311799706901414507466452374600835955515125480534854596441293971378440062938829222387241544910666207258903098746303671518904439269451757506658094620504324683638508048195472885530134696638780610188763077438409580186707700378046674268320595981035837543783897131472062129443705752621206930752416357394446929970261693687851738223199648911355995396061730952101274356239291069978629780845280705617951288660466579412871294068907846326363315606352595936162918217544914351586633538088483588817346702152054836246649416849012728018972638691527167545993111380633309671517051090672167386486285418285132133450538863347908326735511655695981751617356792189507369267442782461178828422125625738525001743235837733552634308275885195558234809156854406840846867054208193234832122386916855407921589748373978833262282677602446170408945487742666502824031239021729406798101260446013148389357494481576184456306366161394137525986959042430354315820339719338637771532502506308702116898588237800950274491481351288669618635568804261611702691585400580042900555758536808808416254930588777315303228718629022556176330130753562626385351762944040801183303876826364830195221551916364663990070400846341935845811933719371514124823980456827324774420711205589212860724717554921649989039772002203942872867107071198172865827978852708590968531962519062899706516349647443768835022330204143586544924799792484918175349130606608598463169946354366057440831355343816987660287606742043676268623153774597616700280751723853566686200446644145291994764467850983689592265542925265833178323259707849635656257203157866549905558094287748252822711478311156607930259506876085135270671830744610617423410206323552089932454214597447246386992114443812605825035383120243112690576771726608126842568995400594849681299570080299179863307707966211926062198073962402552371517290603674212139895008657505471779757365316162950138081954682139368629851701801247145022691949657991774037669453217023554249606089456370229398511869769593768788343169766234669717712909495228590037877660807584437561584448723488243027666228857801380573013849169587511582061303567845384439034672333599148793337900501947571212603128415655743624336978752435929474581721024762359125604242506226684855802722090685388962867909323763760129016545864010512430827156525137047539658352593355869617632951298396253513482130142868127594268887999092383094995063287338772867353043341589966822704367801898330385608596330848215082019873035530895779370807323559734475988703284770532804737357484365526883721510703204298580064874699150082893578502888828169746387728747486826255334904520566508965081586843187421612106369500990165665524741389122402343952426195120961796046987778691596338505637338815373992262265401641477593008707004047082698339169588834157257900059774872327828893753869029632284403521774618540188778990842616775313337996839635984276902097304194689653664971200131476562857740115055038551493078498167619468439003009571180515155547938093755459844490242952995016869996187977753147973118940827708118076911089962661297635687056921487358833013029224478107845596051071529328577340096814195350344112801439369254001757505840208324477048349554956044421943077117882937709482174922114771944834205892577493398029486034877075149200762442482909736831881475032751416216005315422265588527817226883182267415523477878754256637031278839431370131133330265322690560639602098666707431433799150063032420680005266024559269599223240738225271086538819075615424978211174097942920445167394289951720402044305492298810229542041659230362426566526084829217892299306290745088573150942901130934780629655835966283431301142668491972198773893561446786072481797800262415837474595572195479414065442690191784468174562823013627721055101239415635614136801831184378449488633554548046278813936329938295822262127185282650051816814277402051413631674504210350420260846366312338518109503368977129635700957605087281204944832956195255846964064145520725138901780601648281567911030848086987693062069765901220465315683071377041274252805039209214755800141948992237538887554681615456061271130708941843585665616559958488823309695781705240473400193912163516396041407540322294769834601240199202312224501474855649125018125796475906906559129594323616231911497327495901970399690961997477477535567959133457037034751966121352216465936688808061116475670413160832010371791977304275369612278480793280496184749371135680673632711169823875524242564016272883413631908685007927529521791821665114124964370180283321280676710775631292350569326727410556511641047302004575415360524320141935873830482319606978500380593867477278498450424410993204322778949295653843238598247097126782797382352137616827697535343227254356213862526293608669142351567995874013744442142765482596359262109479750008758423792927209728991007752833985246481579114515433895573900684757233834871868014834961700548074744148621068430090851679172301900484014173378493369359603442002439553789007971559253764459902936675264296232058273915774198632907365310767548756468707828346862526782186865278985180134756508851042216872392806974357590876366239220042144106587324496187145695490117451355785147289847088506455413465588737985363364330786037779298824354514682171264257826013137549412960539455185100389304518261968279056477245869857216235944167744398321293348025626300364463545917425447421784526920452097626267952304082618153981154974196158121312430842400381786807545541154743197255224234460110156917808856890901842180728013562046292248590236573300249667755579302318082003750827186246834885925255670935501547774038518322060590579808346747573952201558708326530624142843055351353590152742280637377968435522900898599507230455303573801897028763105301887163472161489462752092257234290748308919860393964027628114770725490264684659213436536221241570659157289939497955248137407105641922525737895263485857179572315310070102862069277569829471620502708161491736312406770167671572388013074005907547905471881016472099744785954563210426647913484849218975725938326687502226476101585570149712086111105939584246497555052934789427308274316358749429713179672637861074702001903780906853751262824740358186502419321765602989521380080105267675807853161722586944669220525345530061248063573273814028172579860619105570099735785657005446748680496676360291438708818829009779764671870257198888372012541067967384059291816862887010452796553600180105586839703479208354391799440458801600714052128905031325451316395821169337811824266724397167921603532225140178418400015147536900250960500050768653452682749860671874748165333250554651321864329027847882005659976017021962294309477376878307956818414801319946746828130076841936453181536971751174142113730938803769063924242910385223549479286722321935838729605181373433677084210887652610393323943187514016043221869230925764557390874242134282700029929035517024245663640129067963385299391395041262813101795420052997851918651807452689176678860707794223184673312669935762355207626662110040021567213660834820398553851793183791602566974804316508656801712706035554965795301705221668885865854178082104381107721737356853084095389321573910565308930548226643457775935707676466533253709894996789043048536164690553028106565961214286968681893561068892476749795155279892164759837910409833193635032740679202509460950558120730756318410949900862726969296272338080797700296685600187570079940522841335823622936348003977112953162322459709733215820486035804562747692451209830629915612564992081836677771508064674121283783035291860900334529023527494686571649674508403494041755497411455664388507571687058111934629338028848024931486550763896932945656481544848249144378178145612569461688669727012143781677254444604734147150567699912191941838994133736957679926005352375513202553409663557209616914340848819687369337224629160413034355709698817910624213974512116614807429754037561298297188128884536896838080754408672919455161035764319297082972179991830881849280080142154264489371019467898169040982115894552576747641016960419660243529765554342238757971416775377260940438906416745703208122846725313684268777868698647336010898391234194851035823074909886333949968951223016161760702495230495236263849443131356391663586741704116085764440499003644302697101978623365187938892712680568614409259036825351654045713310286735776064928277737639135816381630218438216967983824383444715464471524652920457281275167994892564757150034787933130488985033472384192686638563625579070663342357369717879879419100478929797723845390095114069289817299868873178622953233130482112228084452968486401488798332656344056983049107481585530959908380788888320614814452074135612343851041903094817511325169591038674822568676123206092674993076798034801746326009893381313663849121340528344045013461999568658748083156414861813340842891089543580497360769877786958701716302508701617798816238970780617487191175007261618770498645903884281291440224146723762838974514128400447611323598144729978871786200222478966338332829913101227787961168023644990558113614051511853229002700577499005363609765656075729816510334374965166350814315298062862392787420197139846626652890172383869612975962527599757783771071208133114251566757358391974098419934832223270394762630238323443872368218758375430742843932579982002489501539150818763119909879817319683137955927688511776091647062768707484145262143084221542447802428757946614942516494219032862371702355504158878413348732485965624517403832076896449020408653272627750329412685858186627691161600734305545746384996632785891892382235551969723302217094781455150640406936760250882038647077998047068889438574107768675027126224257519690972022968213847886227066009256274064922768947084208473949391479225599855368697471817086095784452924503716626521492762729155462060790301707649740740164927033647510581424885310963521569918878868929420842179816768756497089368939931481802505344523958257363318817888034932605201682609332572354895019684274368747124601477660716622003133471459015657608118134224304772320389937716047114762422188842116220711821224662618425666313432618353021050739856296983036628692834880340433522022725900576547960668507024806010586730279447197128832058756616743886566005520119274924617186474122676263082042028632903128831874476027845434377864600205214014454008721912715644638104845306690950833873910572694804243699940953346002621961616627754429534892435800423852683319135916117459172270200870122421748900185065916087246833421345845845539670995567882309494773249826598382244944884376080553324012592140378296894211260538833320533899723348669827829549560849216444386873479241067261989058070023835493706550487416257721172788053770878863563113042957310583343667210660488471025701686849129139904483346626765489492532924687738651304747600907086161713322200941332228735438531330735788739652535814464086845504169315455765288334148027558439598016328045836180954164063857066932330777273407061080279151764085453680891220860512078311351551414809063121742158852508512957819120741309742302147022089485805523395079439233984105322272171904620033679265487258517850578224983798621887737932242876474611397553279693675847869759680622016042943103874612174482792574127518323774296887412134915121705125309740767034334148165058414293790270673348963140249720189722462724461300469254245695592894615222803742442469145137353724783662473704972000544108798211376090664027109260061138648552707484541677237184348186749583939019254497313233501406358038020617343640577237670270730773871353553168132787410744735938309350793085408106103151773839528189780925010176932907750572789104448622500330016625762935942127441832223360039774543354877420100935925694387936112909422083743743577476872029832379012474745677660693578378771828128329384928016779778005041140977575418831196953013541828681307959030981015010414673793713774733275662417695946137181306326840469919094137664503418206625663684617246714573436744591583899135982831923728232176253795793803736794106876077239932698448303048940408986384641225099198182740106721372517900455763564701052267973974751798816047974457032507903262217398539402458774151801207386165493263811384315504341822554699211724099963138168409545867775679514997995854426024447746593616083759060979146454575679913671082965738972465019332347699270265996622497247462214289274146967026649696565285866511062758817300307597542178119992078076908837912856597523272725114359304630831917747911627428458886852721970341138345751267325039770697828626265384474965172088083969326567497026896163871392657015128934523724158923039673697836304256037414860983426140457642591731202293959694496918244726475264880427414347061740654887945926204262670213928392872336885687086190938117871331999054496535234467666899599277504340288444800509976003538530540772577075916158624539085366254619333429690151662266719725919708707219231838042777379803337416141589276433117269362056447747019913675950832353792388168163599679721820204632857636421679176562588967122468262664396874641885292872762663164767100696287691720461272256521544411056215942914886562567397366122760229340390925485048412068802009634684627501870387247648494933743859296192606400861837360635407655582026373458865003686032550382850587756901456749177828930316756918964731380966571089795514748201475549526180177785104197074474758238912179177206038264288434570221557273081333161746987209119927493731249467107340147464720413065757599323555134225317882753989225196220445274819020663309451124587934251693964749647028858767816623239783275681870684357263800609353127301696186748066733187956317750425176044661272164794733106184663935938039690078879446322959503724132617687597664732895177398147405906184692965368111037789494685741357836742647439686540201015892369094531034784591419017155423233561813569039093092045184222293501023101562600169735535220336848446647829920038002675573316543322329612199734151642342895052217182358734800787133978263041453387352797835752168513185112759977433183483568322161907644806156837125900722728414290804557329203425802809952322264562107365013693334765229470572036133797901407588304693156487876322612589785646278267112161932113511325099682418849040353671782156256923929918487748538380918713275348932181763662936017735712897538493086999486794653569452960347476873153286081370692424145416514231467050993916207686515576835958727526132398134746106295113464615399126593835481925124075894352874897220541699514611920760391612246979256206483637173738033634038896764644228253309097555923048432558705456091912951239477952767747667738755285128067001660890709815690671180553246613622617193047320211130633581733527797371881213398710310276849796461075957784862755206104525337500610538739247852414817142156178901899199852964022870852269287737201268553203667315254825916743185599937723844251103714850993039673959949652113507571239037591139224529380357694058390479422795810034386980936643653450295848612102369830251510320716967432760870137451714207382923677520883605937015199651798749250248827708322356218443301956972294697908954753175002738096985187214827540339216277416647451619606272212035483358030297524805583749046870099492923779231810480926513049155140849423829726576582941007821336752383199579233926170830567424288617704135799439773553753809347869283434450572795118481207896983183520958459355952082476601654581373477971125202505437786583005165851099583599157181825656028982758913579219452333421669435363658193915047640321333330589451300363884482348662764116636741568952923726253601738668045745898474920035014019378573336407219150813829113124913875785294049301751113266113197907910252278784208772651004768829083832493265699163402471068341126510013391454540635938069021891222768492137384412771953460436569314767613623310385530571551582902768220515015227736403948947518875932607724446336869325550427226674695316663682340981505152969290872749105049032491544359371982053860803321225694027451108581998572809538582483850789615114074746331739958942797903921850865870972176333836342707812316096570441446107231289453575840153029409320499271306850838856512229502334878203519517242599600491235375097308588300271006850983593630536001216412471501514123356635870167287238713890981261242661082702755883627750746852264973902630543785699365559082600973020305765195113026742757751612732187581475861285159433308895944832094541163156058275873764226560327035159441777685453964773068351592209436741696764004594520347346764393535237831611898678674530309633747793726868725865557601815787915369946396820321200067935528903274022914896533698529405783164006691607749431149924144768335726194468029611649225780909774339863705556180484536304437053318969229270117277509013258209018119055650990629361197174931259527504153197525003847648193589321668192798441320845778718520675545341960437728551839315069975293206312428445046571031039016915668388930210594948204930900686667999473726332120925272779933269569467538577277461600217405618193586588801254532017218038942356725918184889411058081460139043122089287733283968327910460005399460406278535002228234142140196015380015475256178437449006541888915540178909094533697592607598016517931462716745262911522111395994967896390955886740761817377897886268335868583258113124632575613394204561896423181622093189198643096109082743937024913598379033499904513282992924786573438224208334521547052575268508554268874085591384799773140960193386520725181019307449065928739404189769463478695019949386248882299298817955902301714833276464370260534598101052726177408363174209132738846759654985555579141564527770207819145190238364678235619377687128115785229931059163981082178063807149041698649754886233937094674370340874341917833796212141409535013970911020891652157972384487138877984028688993498318464767472691527268597982683900759506053624069531039637423578063222206450087594438033737157849860656663840636090561721751849600998586170969900030368953443957211431201920475575424850185728084983685134738899566638178665653271151230664715753725830502249773092919093430332376617193459711266703808755694387114556175831551797422878960755292584242844470190217226088857061375739097337482099852989627703122242072870737994330891361094393929686100644482476952152084108965869178513664081566766776935706601948846784517915479861172376614382492859883315188616186697513410339913652080658656423635349122294318820189019624063385656042693467152990029129879370341527668884318970417082912529799879106162420674082271406722285875193827745533032833398642656690356394059791212201519311153559055766584236019468262239863990285010155213890119066703727206962970717365748323391432773380206708866291366667215108833474653026881358822577987781644363271569135291929507156620246974018573874682038514343449906892211672996579141666753213114726746210842664285870519334011603226892345881363810628711080478550800591343791324326516686420573407418878133208115809600278043250931229161444821969875033970454643921989090041618919290869820710799923155173246892367122937208075668569619022201069324373017151156298735347191028901921864288500873157841696897767084804915686149900470646115319465209682862630569137046602703823776308935270630354669533324940537190337638407786350992604072652220266226167169528445129677558241250084010882429432368236083052999315970471061320763820251259420209747247645052979672789695621223938595980540882513725146498841530608177428943750476122365182750764328649951121987544441358821149965254825255005961264227031038155021531594742718801662999052915484552714970388652811359117300487699121233262442066673664353531911573643103530124324946542236555308419690236246389270456857157558305081532366123906964332180393611756969319952357364185046928277964891147869476595462348765734620102955446785172694961758099820891225594727437310017347743120521572590755027962794383749404058525877294078806148764508833702591177252144062029480102465248892742167931831508436265360775330688819456447806382608357964916204069398105141516428751719100029663965758379488578132006076575900959301245033506179543961156718456053939846611813608769927469179384769343603406152708761012286495241044153307537016752609844077699715204578954479143466866399326932927245426171251470864829058385514664894319800198576828053643241218960544963294884242731818493440229653924648915458098088565235442875655068287162793446777590741985208835808693060040345163877772687195200289999415163129944248192586566746790195555323892539234465490879663437465875028809769654689536195631285552545261626783446425262954389325601543546677346182423752758001843069979980938784786897363372254982044609410232213471877909377091960250506313642157734081188943663214285853036449188971346361471816613440954625733314260373681111060767098673952304042698078035672026373527657474375145311568622464529907841127890703449970210966823073689238199297294244423902431811782654789233098100199591670420401783784472206209958828196676821503566226044560512775269875100503860195941358867177317013124924479425283034520792864816247089786504708020275688709455872729994620655907412233234761790511274857837420574123892893026629725471395022294794957032764913270873354708968780786184868333656036413096416179327177717704294298476451248512725279628496385375936606358365662729815316107064650104453800619210146202905530418632919299012688077291419294633904024955857882249851940775268200278922141705612732319021547968492197314218915077635354868875195626730042860572745267858394669470650236164141519214035617911443583629781189717226118539190562057149349417362758919467750849389093619228089551995021132522824907188088937266071634851920538699932471222438058132016325264247306323898753291642627991231737502135143792991363052814153008125086279970905592855247538739759878930057306400932583371834654392623958655935444252268255047379710514970783865938337482441159892940187995244985209795837589060372658369929025553416649746062137725019196510696524123100199146313589560169360665250209522609581846716723073934090055036327021723666208993412179672605657877110729354633486024476684460407996231896908611030171647458323905806992417469900637868789562388603911990040462806514706642016032879490850182191231290849316912392033270320318810871232351155912029779636465025956308859705452763128037811526962643620906306321111504895453416691634923335854870157214641948319193880306466675994303423276781403995348741421410986405820665082855859359283839008770312298714711809493278267966591047942800718375574684884908889581969347458827357332924343781372949062249641263398606607895209915951203378292250873039254208802738639618892674757210948072819081879865919388738138886379315285712595508469482930108592242274731824496627350505256884494579749696424970007047889128624808701549141814260409638045185374474674713305590395285735328976334666855618378505379487895001145839640834701493073540821760331114723278397452727236461454688155307358977595721288026825287310575437857632928623367245163505975927194796576817805185301252597524021133965339796845756282164634843792662225482100462929849494186528264067495817965955774795351790627094693698110964330703024462109925599568885916724843746573457912473085684974427131275456218406736172935149483646892684148095161521127032886788574181158053013823710352707328350094480115477189282428476220711265451353060994322522855120326138792287435401849667501649486232132726786354697830145083224981710938984240233705491851852315537882330294321705747472285300407361107054601727727345565313170731977663845010089397623595717484209178899282271654572281169440304025189863462514361841845454706971634698186089884949011230297845912687908901668447248907198671901772258840328662123100147263282963822293185582313093948960314269837213316626291988476810330945216956849604271278919251688145517075607057217924312443736575343761613112461558535447291556491505572535643318939331470641013591783440368646749875627488143720364933887520165217465022268380214334829908666955998515443944740628355609650022149333909581882699923469964155372170750369214424931615348376943375511784060251637221396215800169858989419707559010661785714947437002087079532073855281314327970078628335816707121504182797476381658913884731084874243907604477460470566335730706352327134894226075309457185632794925560604841719040114169510338911773399830039426792363326100503326856071361702653557124468164309177751804972922609592978264571368087131264241923484557141608301857405074300848758800222409812969845005725236557581649743390132185419661967950537802522604271577469513599354136415830106918133134274006533377380778505538177755269553075293876488212123940563149653319433181011748480384641734898336085643651337695031255254629871192183253355825082444258250844056141531150955046777799387707756706181551396744494932511411210089390833100400526407239359940593587751013550662973446946515356259523323252872199122425873123531341235244791078108421497942649596457381406973903405319580047559346040605725881379996435327692449916056548599650353603996662132289622319481492577315186856025138952706297635026424039053196718578469021503399555813575940792332523130856102966686787683195644769609821786016392344156205181086972075858167999419351685311101142323453159269030485506731082210472617115729310671203709243140648607150926853803927633155140419827708232655965953633680274970016465061982473167905648674605168973908360746611869638829294062751633266873645580943369529594219525911430884420160917889559572483363273282455801289250214826546498411722153586004091971753984735145591074897830395370164796226079371496222529077378250081858406144832136678618908623292277008939350484035154034168710312739667034490523688849531834598053715893034712293067300112058052565726171553803976658802050792360637970702888357833701191731498941212920219502581161593270838859591863946834017648636858090752265794743244494924668506947976193844019105507542636100081443146387980571615397982575535032002500391938931481569199212718446360394763452483287600922209168940335765825392498593705096612461760580410599852126057176214755488537476557015495536665984608911875042950247669535357278974897458961669826786804104267423350374541583006112249868746475750194741189338303831693994152502556133533950907570514759630488942886358925768316331561197058856039997050556538941567814886785180960188559203020211181033636583141531197802569436120588293419711205679665068061741539198171916290350441970943215257099905917682626165421142036322134372587599938241130679612047291302093275114691748960590062988295539623072459926900325083090576496849150787490833991176236869895393877548583609231282027595597200663500910348377671761866436455755302017526308028525761282308111304592118259755202988303366709871605286403474623625750623262331642524341769812030188634956891704661283081347155057599309415811715533206583909486654872219273814937439297725558078355861414223317424110320848454696391846845336629468614388967493523383782599515882977510788022459516568710152477520197860579811842197910188121392334470467126907109676486236782570020822086038885754902831612698627222974307324365719033032189865491868699565880952291081182779121348110602132468530610145610311755429054921668560239114283903867828655989384194521846392809294376954596863564963413166084660382673241191064778096400821374369128844203607357818539930030697519712538496016518855654354828412440003705544531495705227792365930950228754810062715831603347111489849462109923939854143959947417175156708778431916242355710709350938862264883279785989090975024279464935416685082152017948578499514465258709086068488179000342893818876921170532306073807274384347038584700503362365561621915692227778925407408156004748777223542483233739121505642694357918101078707083774611511468726320321351603752731859942075262678580524494508161832277394793415887521796868923833177441390457227768095780066188230187190073609834072889143568668338557122566677973176185170580903047026762045056912211427562426229789892898703179150690524376247249470943250473265470433054661096965080369184203433769562837630058910424858632185807356716033563399444268076044941211214565035194650564594527231267016239608452089924668104273668180982541353582052290903325396219380116189132276216488801725871226196621212428115253015549893017421296535679400185512392252646203460724306330791395327473549772876161818277557676140316725453760653986928116352927931642080371865145528439736576742539129290394153616982584595049477364504634834978089657856254133745941064658577953488841723881585836202890471418727804331694910480980594761643459798651741173228551243948378436471991055298566970085874102294883957481367432025682863368104129454980473242162949708966884234605380076506788827469011172188684683082021296369280473402305176411377479146191470046895597421035686040805084214499830562596553535046194660860583231191807190762084841158363962358310815732400150680636932580243792530832206874813736530986590951880222526554837368796765570626404568796883102884178691579151028572821203670700992365147757711207730682213490213219555255403149568529006678410071965246819364392009567801502795426609809029792526652778832908120572848215648859228990552945452151313737131293770127636387605181516942896238720616970018961315219455494845220789471014464880920275608727432074436108159607712681519081683175735320823657188124288496945365368649128081998467823908155636948231948858033567586347255239793774937158840323083438901259096940565713070824632535902594937434103802922645495892291716132765590594127763158492741091018509882990892396583853373640296247625144652421972968041550336723192337628621798609805488491632910866917352986218157850201019968033154959232974944432913720481699513504481391425283991290947050812674877743281864495475028575579659930060265951634704220381600085781578864369674423566042427964787996065277255366137393806579732331788476491677212907220664655380594160152829468195957995902416945696797385761062898358017973796950719395573821309443342921739039278661190100520693776228330182942678284411369589097914917401326183289842872129347763180170637754781321323676209287191038808677734935008316186647343441649360726117726988193256072302319782137982377472983287517831811656952871546099523458415708584299877503925691419166618294162412968227840186982858208596648702285131992854789463536454164951398144379019572114742243856128890683407567974194636296361247727725633547324125355805472620431667472126035546238246292708761906911829431669825853916113414113294036427566612823139930276130368123032609814366885640950889284853269631684030041007306575017767949112598903736341342950618156559016796791852857252981807583139948998533145004998574845812655662908752776064670078999638976964092394890500116406509010657153057359702371336837185629011659835090382962637337380111831522140122505068352374943925874610028064742540843335148166335058354840673237872914436840863765784827892386643399961472632384257380963362621824671944682785790123125344368915822645867104054570811186757951602577061152022859107001820290422853002113505162234582610495401516350833959932175517106419471068436930724622107385580933265628231111256030692371648761839511202059772080737422275337993995011411875954331662250612774332152153151632320738817315416374523523874657829047534428974872149508210840259491356390155870863219621579537097676124406684596537919875434273159733616692496073631673120476317237099107127419832586494288442861833647571017778328109282869569201969773637593996958593982373946987569301239721002122270839920514173724170596468539100824690350986396883613539478161246196160688006770078942473994628063877810082642200451086083858979380894317586810618626806089768793435102453367814324419681411820214628831461757380742460096000958704132499098729746933973080440485310595232627614116317291118353003810311160418793863130213155453847370522724782723161629654273382392920136592541136098894957607573708013948288362536065553748056750978482937568570008602681263679872941308302900593482353966637034754505181156109275578433993852211661149991648019412856049356783716724068028497958334708825531607111811568751958960489921760194058934805054165917448902364433925115582560033122210682877541747462598934656633567440082242818874673792789326277955393690814947049388836558030721153905522921983101141516186629037323422127206414986093459621121276459099078105511364514766260407796126047524586553065971569556372449704598755829517762088655962661276667417208472314438404694009743516109590787529015689188492141075376666985979919500812537688060919331467601215193106327508155684640986792306954639641396633807958589207453548012441267023906552108588063698089184115285061864953546718493553556563305101433292063034663304956683755526048817476344570538181536968347674129125006906952012099078021851753187433738697723729995836663100322142505505919956774091915281354063393836758693356804784915712573564423761807625462172789169437182270258595488498257857727419361925245975123209430315698196495461361928948916549522150146258425857663483568678803943307904208443326287352046854473291460407501204559981002487944175253774002495243165965990929481713489148350343582971812588329439323066472423750500902039215444144875056012927041589238259967555660253504031205542304770036651990104849305897681809065186456435905708665227679822033074486074255806019666763749128586825184553192079888948918136720141720800195152972987927838273702779622826512037616666441294892976365510708641080364299945016648367539619724800929911292211279266662071173961976612614105526547818115754732290460267617372521284064187400018594003594190325193323459889272021889593654433252308585366417977148012461943994751570024141155519858150434848953740350455431176637249790062639730197579351974874428143319371538994077561915602372330207606377098945969569444942729259001413532440975484344222292127133333164290945369160421402511193920570496885255724554629427649551074414715183330301660334770547666269962735035414007539880143622991851976673318873399387533631311352150834384777454432305597298519254975081081004244189370531304655825660596133444376745189714811875231076785263314380208009461928700824194541044411909538036194224919488237451479334964584568041417331014646420570474171611208979797152338334700014225127986056014018756006301051079649282515565783563767859295600792298384748939407269019701308453702102423688805418075813409410793208641704180349273677461965406836788107729770819394265165023359421724027832440105683159784855444817941402150241813604698259694196519715908808696066839689436305828281161904354063410773465538896399718398924039410074912052861294069254521178526928399539759099229135344853605639358920878751178090654452233511158360952650677320745143794798306580858251603709904591416152387365005170480383035391925077862468196693946285373200935738806839233129030050401233432925759739761474656153155669255061641657780319678056311547272809534035703503939072023940459841091904724517067887701532017027052346440992456872471054834842779946832203212845560178050101764591901208902422537642748475877067810561935412835646993886822907184384316094962151487755694922843604681790308863179194295500120388553354590731803597662445358257240110620983167737230247737088340427304970258566896771176213304095390357765273932142996126189894956168878256453551331493921695365606045110775355047874848255067085208394705446216130530412808185693873494272778339960435300630573445960456620265393576011375097089839998507652269774471764633707220637461805842184251394975889633526268543974991016226260684155657983501442222222453415597269208565756645381670220061672294170256607873295627619349199886392610020837801885652142384343122730677122809036249334235147537858546607314556900214256589271250391580251735652314620855271274773102968174915552962500722705417737887684656545818666132716736437945744273832694296129846700920543520818429219070310839053348382155155627532617081300074479887319392589007273556510224044060257614430520798653551272457143336896782970706211560416826046604837517727770075470397506723758190443376187735648697384250893769031685617100793474044008453977227286873979386249207919539955347090317534729219604729782291157383797137467803249205275603361578100518085051435820620521076617892005211555449115068663089219582887096489486520831574316615443030041884781857351078378851886285999518466841825622986023161340036224262263956336997686482466602057952988268720361918305234267072632303955965960581615712814341511120650637817249758716947453412586637800120350220159640306819300434576889599849451764599225333757356619638045185333626000778269490635680322181042992072398646816261709190893852580280778937490482936244044023659245473248972538206447890201178355133218632886409320343758499518227913553653686934044732849811164030485259340837614735906979840532373573949816326181132786828340765010797745631795635678334344838966629287000923998773602664606796291174822987125129492461419056766594666885165265722048840814896772185776928342687178479569197326551065540675300191517085072229842016137760780943869161418622903962699090411160981761199211541498470569593843386046174982312217759514663460169727579660460938194987535158525549487407480522069527851462224686774564179982804381758565943046045463132690128781523032802536830823511821721164033489889774883765303288688823868919339335519629976148426353595562640382628999150937130523875347258653556451488694498241659538242196273100658009122035167389477840934230946943643663127946046457070117970778082491202434263731379135134152304733290594831257821740093865902089224119759453684515634440145035721713804382368312650220922623063665469676720945594337080230186724130411948218645821940291822749134924709234814224279852016158790421697243677293512649628285789135232077941781209758887149385794855583412138113047753871536838536464555791215164463079644114088078646577246700480856339192197615220890122750024873911034869052480750124664362415677871301516333334117522490107632892610304209843034597113433971523884438739650933057478716361681554586359859554054429210555046543553259161870652500679707862293416838300706245597840544421046035626091208293663920035301224005638308323094303149129295171089361428247255536587094387554248578129863519456583960605853479877612004025615978939071910907802384367353004229580873816336546345781908772386566914486285035297485974951396140037306266092949315761099668942087689187295957136097782034349290296295539367569559618557326219139761169855433470553151669180269933091564881368966224452022243428401893909030794333393148425256317285380329627487924974744017768854151005292107125723270971577894954664593305404659980300133329436751278626785114843288427980886965063758998305135767672899446028968577248898172924034752320172828794272182323299549356435087471045694089356020581945278825986923531886147165614943032142924311833787525044838033375216937218267569524381826808647590080943105983902283160261601285059689206155800705241784480809597993613578155381916985505469450323315713491549658462717198486768458561337381327374183745519410894454446095022101109773499129253202311936775539734513346218881075609156227953554319950522477620512204400810357723093256121758268502111798714859067714522788520684087478675214910317759962362634644174029930038231659704426677454071515626616407510345917372462493564024270622372074097598323507222979913203249367900221356856205792394640870656004479652227806058290276313687284346551950000841935360999309738181066125830193773624785833462746772145645978269883551441713669143538714342461674207580388629831655434344984192446144261979029939032220982973536247739079081072535567856148382125571232041917388711954992994186878936303501054430531266744166324712917886968522459932215677019884349324263384182345932299455994680665452081322013867563717191569892376194469894458672755720044426652882506207498652498410405267490363557444963506495004962126023075117124895146446302715208222174667702380525479897398008015964137459641502623446261130344778765554714244508631838855341173964493877491596369825225271059611255103620966877893468498547852121896529101487906740108908987448432497319519515489582522051908722729165678082934819457093094050639975294536644370949591032770804825313733854914538996784267010406735811872924182515254434990951209680023907960288289597808436757181430420892835735654883969160783814817897972336425909576164043418853146809937868394155953526596963115023616966989927681677916776511259514151282010631866083289993846125302128005839539980178875272991523017052676096666005912969839595020619356062780307192579834470749527185321555313516088581052715037093516825530028891209236798714010817312241620309219991562879806222770477057848242836870234528704918654866225449705692327906323098729979265536412746752420503891170591160824666369653369845549470941044568209294402922828347486296910268850337876231852592584033723525234530913769278788563773986702022828096159553494605317305150027212884654640077291721893689252277207360250750582504809446894455044540878237015639707614501191827656975192888222958370779468216117813034895279920396963130312260307399313202539198999758850297837041520231324140617054326733051244447682160408946669407038412692612132942963136031582553597009152229016400818875432644898322397383033508477434365626910249311637521268084613591380973410970861579076095267728155813563707936958122017320505914781117340751104237251454464197651908017011880155286090751827593495248140742940164196665680004969452789761566888017635639958628300510031773965211430678345519800214037514382207535532451616975543073649478452599039436589367466574556989670146027580767014773237417050747895471498272633258515347047082713730865043171198988014470671074486829336719549022544481737895468035134270018950704981452571677759481590193542673438971079135419165515962873498164591417629809225174230146109824297065011002491804421743688563333699121914870267737006699008772205042967922579363849866439940406495161420707491442091263854580150006301145202526673438783099198196824095114148152510727007928039491936850140571747862334212944808198627013142223134376141349761271788422489235165876125126346710225738968887845247706505386728782699964752048028050577949779943687619311143312648605503381272675817111267059886935034509063109653349530827103647072220957285166003975715370252872693995571459525420542637315871135852763729669945571085577893987479040258730620403229967672698970040104077217352229099672944422681407654375447705640682539025854959960965777062422896653690182709500155274246872252752766499624345767645133389046597196870949980494381616170237510107158562685333612319196690838831138575888385730234922630492828871014304154308112972025652095254565783566938133239960913334746662598833162239594502914276500117737623434991226176909625088364643768087486933819185464744812047585396673176366365260648198443057479054613230877262625047488419244680987206186433116560934377108820336539597925568513520682624104063395561544080172936667951167749834602513673343974779458359139903580008019521281521265375194766884765931625324576702199664568478375955918534243739864575566361897455520928997659346417791585187359825420959002740422165523891170485955768312501133481590615542976428489837220041416325295086402409455548401812047278224321704325078968173148654348022550095900169659872029537824671741802203533114685576559433264060619497134552762508335655212626305463497699087892839954885481005153118320199628177577359488648860597457967033670209176869760163476538243459620391580131095958282324296207449070165512931493738045272615206615684860044768107110400681778893252391782047285548334231877194965162882880304621479734052211505135709341798840216106739511810032632281864530905011234459745499622668825194993121103841272212742206394833595136825189098602241993590583966362424135877451565709811706714833215905979130098365546873735455355014485880178818179727669061568470880750991626072652937771058961648285278541369919041093862918565809356680588477323421877806308539919415763718557348755102299227513181010571802593205942730934521996087376615286785943360075812388365759900075263032941899381209792889102491013987699363865813944990107111706370868979732012239491397264743774847599066650596618752878353062859889225087154750320133774579662354489389837706498387466671766821729020898203419743481495297343767433973520964730061152940018687549706782335304176984295795118643830545850760606669401299742045837965850334749849383836765508267512462223993914755254210960281240056907096630765865491457430358389566882607546513764812755468488256268920638809984161284797277882554760674209479635835413484781458903799690722274357196988457095366939184561127692227333381680195130135443383263639563241686827575158841175494530501477109338104569092905602291764876873454599720123867505379391624147922668867749497564568629575628280840938028430847960105388018155606353162367929076448458525072452891465538099725425876646831554015139057850663388957875405894604710881248325586659972350024271564080613559372494834852276187816647860301554470086624892268261863812865508974244538569185472230200216050417385705861972596945187451386566382131958313780493673126388342988128863388143939395080200407148243452645935847720260742783689593226818957738388695352464722794388016112409380391633508317833686870894703463717726183563463795271319571477357819816777818231834243030752852422643606678440929673086520026843555674542105379797038150884523370861455697436641947117972728083134021163956533097089170535980625971224907846167608924635382884326701546872462852904603498604653074795346274709719848395233906714190703770536316483005898487274093330590514696610186238105298293305588769293021985229956577149595744162371615880371440146672962366448623025257949081230424197329472113017007896027336752191623074173142586618949756350063058926664154089705300549893922907355636426010644813474992332105349477072375445093272830488399901602313806217313700126688409177567034155149764939073242842533305963918100686034979797328224671532913526701269284951951339437404180596544208290351457923340385933870760006867628422317292017519962000036531057641114203061690176617150281532886351991078112656378657889451900254668577005143242203924515421467391100377490645669756693190307421579768602380424395538645594942033417117864103391214861293774264229967494086663340686546984068372863066387306535285107115140190750761649963444864448846439094296179669113751037127549176315824102364490303625421624449266163350909742386493583215032042083583869162452656661510610701322691260984890035938555136077805450129244834195818190664425011508918212210333926792178224503045222668221977726795144876022216304235319295869826505024867592206173849641947122890564050484724581639018699822600083616334949774559615498293557700911148054053512309861419595752541551323785663951906299718655513470184320028673490481330090879729000341628365613397648378008764761484057973435419510930872858391756307668387424917939710889843062307421530306750984316383731463009460279245761179187389210170207643854554318959200023161125756194320941618288024096370217342107265673723832487637506457194926999244919225613234655621184675878844878768300148773360819867371459612200142898281658445750269146023385619541254962420844213076652730759991483142649087862617964584071598759474463094826843275526813894793295568995488382191995566546003264805513795211638701344345636440932731734897487670106559048883517077605130331660631685951779592659381362403261405245620924295179115073533932071746014180084723198048220302456790265131152315478395101895716137159387191964658969609979815065576605598013218583456854828951912103511718680425564243378168946969942605847175895808603166580211980094648791867930495398719793331140231232205521817474525243352117186571708066937119389779600040471282353850873006296563751979230999752123448601524495522063857993562375122538585808988905555921694639374062352098603090648864228182491140710209337089501276669202543894870067575928521372720929815403418596951196959948464141865015649490219444408063282759519565490716103271850073155400632897237526232386698969919820277129761090446171461149872555678767447476576627386471533752627788978995820163187015405570054863951722659152727522653618071299681770982053508536503079844809548106590782089362404628434511685402970764553910564235127465739052500188327132399286250023167003456287728349304089377691242146760425680867348814741257426312684166355639853811848886608487028651813553546365898115735927811940492646166385890569618087994404396280971167518581370193475443921099092473587862457485025599414631643184720758156913345533666716182230782539061595751433377178446591197246456919772299969189412411136451917665057544095193844506756704383012093991347529106318895995858700927831249007824735652848494309160106064894773645807430357647471228598203358838493832977353036087967083353871129993710793153934061348830985692821523367903909816117270390952806123054764341408996505275498054855506671960781367647692140882957308309426616847758621083796199074544379824720458753406111535759367434983323037079486848070580796025833784371852598804223704801014956249143730895968480331278854455798386639792787966691753858910948531538103288872602594725989013189663222495975999811809333134130372804364427663205741281841439181049824421310622932751549298985581992153679679827364480992294997304916281751834288743439160424244878756864526956147542596581372216249303971080445976137296744698215722235093066433563222616937068170874891788830760508078512530849612861300638150842276157812236167583606197312029740898071913813729467696771721583019839578174697831942868765493075310460088345115166011881993441445670254625400105477876954830815523773946856306989858710568384874184190881455662918570820632781763961386013189880747968370726764891200149530832917471848686024329079455915661077021987183408596719079969355064055246101437692111960357719080225471750635808447674729712298977258991248461118343636466057036169038363747751561179106681081343248233997950476712152894129424498993933627286735530283652254163428926028847667073433441540126728379780966862263586657132891334304209804964857062639430546014723832107647450111530626651884389758771877382097396534453422498061142472182962677788147728964242997494277781375453777382467312121127348757608592412706129628410033639648197738572892200134253259334627345054034164275744123328704501807134427215982604000558974209226931020493033782012693406440837143160498397733325107725399379557465399641907393338766787112542014995675739845356639902638680422140883270249799363605841140443121600021581178096694622934290527509764784618259906676919250503852175895666050138553140942274386710757451977934531421626028587474979303191408357017097486643556890520718748362065361846506574813923866166426963843266050348581341279557582235474206823189341910407157883939604663788136625949905262368261501030367222781959882693924849361089021705489873077347776482095128490248501007595208126248232673112336482685892118642873848529988752536899059622914553788351191921603789459724213866277203194392817566493348166595739272061185115111511130275459641103388111102068505184213774215453685428347000188084817732404438447837253838273506146442205688314471331379966208745033865272509667398392693635363041759841614317011878781704636064076255947334374418996700592410161909015638525764677708777361126984886837543362297821933684644134414204250265592048793230535174220907055886561049818382324288938035518813395538756772921328403610524997035098933548414210005144606660069367044895620432512808392212113226211417077693732041155508407620763867536151249750784241282228225075089727368917951353791998393977066367993458616611488521605583426079795556773257849935727361857347701931185518568242539800934069964500568834612125693233395814921535170434497372012442965642618088571364651986293964939962133765594821356293681074418835747830695762261879742980128069078021242551208672605935210054269516960111101162621654528834300314956812843839836462319841146936014523517970513274443632172890551332608717190442316797746873523300501503195680093435829422993261592195322379106600921199406329074869302106402127827239084588700240601742890181279646448477402256289397827108978363134397457291596735273688625265078874869896277212876681481370632815129266316341648828743616496889219126589662631317585448252201491477310525867765494491014023409632517233428294100229938696174111432396539309865498471259633872339599547307926719254158694443253131772795561716878636162493561235711829275359449834442494353127032993638719872902946640305078336380036031067489633581884204811966342147270309949743955625373474098059541345304839591252455055418236374853235988974210415094685550659998873902426130211203723610975978793149362951805506634875689941276816434807982402033982150756072679345937274003264172087157992364659287100466175104042913644774685900162073358769771598047477914203640551899546120753461986404822684882208847701074693910087816421061071525397289392283695819350653041265171657713765181989492060843140617456698958835021338800577242160251101106975829357837720619745329537154481347991806811433345247291586009233948848680396376960603529549661258772332025069200306074922656305134783861304482926878047951481101287087507205432487971917584964285583926934258030192650350381708621008224273689325295903755601865129726497391219471261269153002993205925178211402094551542831355312479461808652523315784250988661112762927291464043397468159032133585250856176837352916851425960015135844713166105054093926105157472653081237608891121242394473774661035477661303222979168476033568674510379059237876314936408462930732871233670603360468522552159267099915664916024745928278118970435479969873635047693671615023586801195626883470660418953677758578488843578403970586276473405974329746927720135205759654121208719082700384534090212900591741714997713060105942874438696646724489775706751880500884116878371678934675070726437896918278487449683494579245082906484556713338097342990666915540488846437863587227041906997573783426123670440588322580451197154165368370290259089037431556409024556981890247125078304880911397166193979349495638648864634039567182645487093931704965748198766804403107257444335233331127313661283813923033253015321351720860204297308569296093372375160278775355539947055854047015172711875259268315836105079118353708946981284476342112094398555001882087784579273413413760182825516464190769747945325909861874881970020736117390105568452421676783008015182136901315944471006389370018854615463677505341472964809970780691969419095974751613773492973561110410496473893440514929322255618498745727285263138589535263153348995836810294014347971363590609109489863618565054480903021528246731846538185444955438889087130978327208835547734707934971998196547654320738529429779233223132472154168734176905787353436078215764903250159554801433579167251556547469544840592004219076398464646461215689391077182743100910908627516937415440903094469049752007333597187784430807711106135729683334091752552911673890711403598599003606899763838474205091538641436905128677697904057471056646350038868321743900005289836870857299811494541910433539362224035797156173687981213505903556930403054266908278765320247451225892801445137625466373710731099000880612356340685187381994654724849230337517579224086943132352089391901541645654402423240674709292203277875186673221854250523807841038212532106386806453041256997741367141628617682075112833615555058766284179406484394380947727474892891207551559469460224775214754044861004222894994590957420852801589259851875046451410980622339172383727982940109059659305407535469342978741499060010523568876356761137629683686476428791929263904704975965852156254431709260473045138727879238425799715399933544621610621564412400177199141157565922288361209290119869168334820879073001094148622783638777434089503512795799893208793930727854279336122719399261953564039353180658005917667792378811136510472629265478794282920096742125092588329835426307286068050668857679463050537689317302534716805169104210091180482477182614887876546082940965708512188419068156614962473592675900406296609806627937475760776065807957104573632259563173124689739868208493622019539822392996744009517132932277084370772272962398924875098359232755380455597858740885011853825481968911610517419089509991462306285227834835437232412731085287745149131064398057510785170207037504721835019150270422321737094825661409717002935224327609118519978172528405326169153866703583725139470277347657533188148356397892083883886118780149647380058272991468770579059781111479302927448485590009037144929119741521296947184501674816710431125870499914702364103325477181787304428115273657527252170337396066907736685320619599498177552654916034824271626575307742988668887762998454483442875234921796620082697726192928430645938340972951905749193700960523464596331851316792442219924354542499986870116627490179994446919265973218830936144430436736067598471965897875754018061295583453557107410566693395569628380876654747738803817874352654333114214753021582745777061538374635992899746939763707519916514642576261892039294649112423549729020941845912824582655376762128182094192094174398300168416726223390573499678130848671234087641320022244212354235117585071510808191434651300107963860920729399547638115839848051416575117922875120759525359572800182447667213018799961649678033081093826943589744024690646900514916447884803479912646228171703265442476162663714060988558198077800676442865409453170115962998846346063481128847132190783125767866922245270100856520138668266783149073518144735344782111624456428505889094804410939898182767495459484878325250028695863816472813448240794135135145077036323909732372206635765131585906261101841239941916005841542756367387919701018234851220398354432594919763154312920003655356189205007900524692682817877356578831997655137902133373447614062001807643399247679273309653602005231338723444797674780742618989408287363812522670224931054883725322043733487842922094670162606616606530987621954736499528911680786724222007183736715501218655804910457920977761621680384257802742749249475198364515549283523417918820567495131358597498868680811446761200006351505670845997146072791802441446597618376483241421730030028884847140070375480626786448800227816766025540631406397931727788176256641772939044167031007754454766095023644990163441558161386150904949599983062128282428293564948380512691088374105264146376043115617569076865259207090396623733068769519980245120685946895511937014020056857900272046347714035566560478715725767570855561632291290758577783113063554605156403221065289722268519025591332194576702846445686169321757749433212016054582122651843407773959458875906381827091867617185976142117627046632678510332825400951505354790433166155455095822313102316354589487916888612356747971645739338442803793850297025189343443241008021114259281123712543838537135603076819430786753855146488728857752292961785186001851424512513388999557904724967028979938453990731004003981198903274898838122155207674528984956989639557815080242750599849557842950427015522934346827880583796845916436787961270887096037966837968088827178314872969792928774931623145245812506155501483179337808334323700365069225008241173136386031616060073561050247663566464172879660199259515990187927191666078452653576319663060755577062821055794721128125028371399883612152466650138322048947724092512035832581097809852376243931740430577820880387597603996811632393805375340164610725187743145037732573116600829326725962843211667246853824287174835055816797226203838519005665982221665582513740806224083568920903556962621348557034347312693859882435932555952488961372199007814262910634458762277765783654152413729614293076383232649452491017061707382284661240487037185562995183282098682611563180088730085484840548678897725294111351713987852651853456948154454579560173717379220132085911280667417749716098844079354109008465838904312552600271018602553525555252605798431941236439366296922013769459570462027395982804468558088284373204619977457110979245465091448793869274422155284992555029538797621001341755594530820539453772748442026344055564616977595752766270860060005142751643243744469339449772231596558508672209427192027048146115862564784736501804351838693883855011361572285590606871824729752337889559683560690489787483526513200929664778158961312206831733943075541171519732105345320982321770166552876995454297163803300342374064965131348386964917431592423920232667421876525677784677098543812753270699616140619109178544624526422821693230044745170579117812592974534745191222457403235654720801972323727815266621429352485335161143239082501872920986207062160847549179718217421221851575398615821756752560459810255611916296528209200238804221651706750673620306806474614789411032960072885936312945309114411966226335347388367827520144412122128202680666689509767184599240959688229509699894840547644698515135951935577395726382658388374945589757370409760533103485399838314274902679730518142784089015596184562230778705518721715195971043547820577047493367242512722045709754744595806917972520305288334755161201795571173643153400219516764756126230832055376929895133406662857828959703846019526807731169705731453460366570248871868558431481222381287466618283884392437715356794330079031391238170846970106601789918546552534456300254257425262534676216289737595089551197283284704676196970676367195330935699722537415566855989322348227503133801005942090112284659742237914961579937895192018821886702435276816937867655979368726191132686271768330664453783736426800526645319018482080356863670867263329839311271613387470565236214249334651152827591600094394916524817696738611315124475784411335310872744858766547821378786957375085408157547886644975232136286573351323264158785496134542530532489394996310110033203602104317083769280525371829327263040371702476391297621593168992458485777754353551977949037826155103519849562480433257376558308832472817827015035485028045009627398065276823500459503059013869023239742966470086188523266594950163511459840065823359308998624099727018497155472543984822846109043369391433001978491376900245120385995024266835430231246161021663256056516209822009501902141912802057523174667073547293789570801881589229406640867156584581384525433813561617112240634117087197396760195251618140402355309879250790030132666956405726140788268763837225851391533034839604443153446933060105733083905270025056421140413947086571284708144768645625812408317834651088870967147459246423286761166115525976489968554837874510804926066149174788892509956912154010820697764849022390290648874205255687345954673813528972864584244866879213299495863803494693915337202861034956470538829328012863512835720130256291409364530677452488766782401107070539343002175016495922744818750109006870441853266742638676248055482592347087666916173317499942682793260097848389199202820940536042876400022544538076046521056339396270761266352520867328123613471800315825193174832519720460864967913609215011776369966201337815964150406586058337490756369076018702103425269647817408631567358156447808806315391090223365295373650894014177577622774747693925404703978558805567992086378120076796265665836487165131302807665092002053747927678489587868874052065244948024720752159457803691986286051940511407609283167622617988904238947279527865729550340741784498223591547052579534602704108443275079532559780881983132307699908400851504912935477518453638301938433996404642317288972991139487458042602330004877400377550997082136381415099889302762851579224528687324856105526570497931538467489727609825314835002151863354653556607080861702741955568165464753566604887396394605324570896391434446190269040421619817507802479174629280064810438821411817820329272934739105098166994881494649110949736090407795965764178685120535478994484285916966382302511671021946210633748383580253381623145694793151179520026436045400529439312837371668987572361863648112675363636340053754191043070826734482909942144671319222661253801282268203837100849542679268035363865056713509062689479575301043516027467901053489077270875789825922223972549615316905356172996533342931635473094398692757818273150528460370999380708223824444141572126587393423138274795358434106800071432052938530997787917348276668760432459401506851702241119253557432298624169526071544665498500872004128239538878256257319637303143249614984295413992289567844773530328976684826795675124152519032501790144212358975491733807006715377533694451544388866824732670021285215016244811354565647886383388773863931441187478139318421918513609343572617338285930147479622272903964410725319955610407547533925323325503491615604583296488183980925656619509240802140410652821055195356013222132052961832275796880366834295283634072662482159022174604587872141749864656909881838065239257139995199317434935750836475056970764360020626960489563543881319449439396348589095951003460426974758079713372057991585546273203938633563337767163944882868136578655749129292434408946955178858649527821049386359450628215948065257919420850622471642056737851649203684950191858022704881426242600253841205816078534335046891377632812258763826947225352537850767867078244060441655689999276598579221077863482402847976591036164669199193161966667234648629485040168130999341247266817280225597806431526292732744631400089164355188566187230305350948461164801151887577510330395107755636620133667803013289397444505119692371691578373188115140902657570306282379666778319408167750872742385821598756178250572161147470284653162439638007144811562335149446179843182045771087594971429595107133813207778372886292004317599068808570424540227402534304115617355415089803053977965469559706944934992522552582283144172619920019890324205622812403299046064829303459136509023550928844265610769722931053736962464782848268199026045595246238036641580120052583739321569728920329197951621220910972256314554964435262557450931878303618496079407215237279322625956852966905507961593132685137153389373523550324566365755520370717492801157866267646289546726813791724465302763254106662012589617279096715309001803884551933695189460070922994482551216692000806492072848888329582129431945387039485041486671336631233684897569718552238508795956478258094872701367884210231409808065488733997324540240303867198660015826945991718686937934283785322890507477796273187182626064157723563744525191629830427667477332250801259685982868218421280817188311643453208281540825753582568823039347855167850815443222586283496369115926653074851618366761796071717220419675069715141231602433548874156118195995888666696383077208537043122632983273603093349429148261019581123641146586306710868098233939820753135086052893237149145277587897240727995325607754427412496606587399639968409921532214075936045746777995743602798525957807872159728376323963745375447881622984065092828865170029829574301254464244545471237016427568047570147362903751801164150456650613592797356922880492007031722827127139215698508797466225820260144738765977323422990071005775798894165720317591066278771367432451475691971181846670772867830153118400388509314847185073025324539371383923111601533452046449704306647191937675397100179765043930377175414262024061232351495235648064505482905270452708677353485958047616764594585822993691723285234360789902474861093316997106539898533025723002564800159089393784807188531527098664856309214009090454840270548647729231290473927811720914917987576777407110112719236091375783506849601292477253092861246067239401180526273992800034064788809359823783739028946416610759472995798302643997053371521825598500054667715972842076023951040985052134411131112388275666228792324656486100508789584838667805178924284635566267702136001900701029684109763364326065598834983707553054735717821437496996793614532057475955046111506939749574366644370897065698320150255289029372731196209850643266074972684559164877129782438219781775965083978159904537067516768611695017922887894978933040326570092563510692267711725973109522549351708254577599692135255709873251639147577487171729289313502520667992729167488309419217796830595257562056462088283148690722677802494725974813608777335066045462268449075090420441569191157725928143804434478260021966243940524538213340675278038314780005061956469421178079933999897828386257262055166310018008659647260934033304592009699966772985383313459832672287774917761593041013188420551502521031757457839529943792680649927655571311737379226954965702733291383252362549729936496285898456992238850142096592180451115240467340442290097327794505470511333359414599650359259236026872589095743683539833925423314824603732065590402972516345028831952365024554037894788617919091538550916280751107395485905875350156981046479422866432652088542986450826864675366747690363573897057056187946143275307194807823791821612009183071944225232498151320327887132927478227399106257383216549057860990896997332584654665457118671507281998379893711759134736989326235883951824392595957676380845544421423930445304350873415871501309998692246511059216413680535799554566186553399528129027049330699136014183127981027979429210479730936347861552280198864486002416889948252303090984723002720401907930562100640967244845304359533698929186478181495523472990677414922854432313686608977108585102511400315649036656242467196546116658127717526693015943247644855537288351979751757870785272929716065146803970786697946181759502983939870358704449808141587303902196245685045364445934892340225878578565487498274114280001744580618322584278803567137555095652188550427935481526547612488358113035283617621782246866613522294005872303218885307054811510893633905035270640986553519137952941840524507810410724306393588851144794507930439580066374699659798407099585633535045475205766164141183363068969551109366828136260308483308066327062599573517985065559071627827742880155688656577634226290152510064005011228126600232608809358446594466515299657363788371799566683639505792962064856808009602054132478044797210172889610374867856874154024334207134023245426809492365592930840444399069331298325778040702449725391129359739145571030417456856510952807695226175880283006213491495890704940921732200677109572294953143198636299701100454888651057870045828055014295936645357785833499355747641921392166340305407953232849231072893924763866407443790714788837839144930677226791640093278044820649528641201788127872831101131094382800626866141435094819995603825335121513540903577394241880021037204772253453886850880307876625239437517721357863245933595658378192063388808242189783509831908691340929468998006851111808549268946184847361921004005312415282797505424249097076328601839873952683530359887253459320364618409020934460572415585650332368641246817201940687367518956644751129421986509526374138432725483319246045329116810865212560859797210822687483573586791053156340253245493724669986121840690005676304335753732996530803122447143045003015937738533279070172701681783581557684085765605447903319148772963221324329880583473337542137131629409685750058806240106870010592515946055770079210990166117386990016254535146579828465147287386062917923140580549381149851888898044980445347425663517749606792030626190191033088720625955347937229385888286679822629327914919806101334290794461704280103151301543173364728498556249921909271964039931551700920893928812751516444320944981065432945229936372367575833235153704133682539367744407537441877659886091080781801286730701182787920249103722232479045292547263117705089887276544130946253783243235848269363895933413696121100344558740151271055163478712195728423647082421614013799473893243065606469176280576582961199376154220857421020505333864764877962643961403557477319606723351092731809630535127265965675825431422128348124558949854423550297374843193363923338450275024372882587302789690184968845127916674839881498541914363742068660589058902992560637506530511677889570114435494393190554666577602096844945752873519074063611956221049218275763771881623162487316460760932778600372833333395332629692575400205505330027076426301999247944743820794511244873923310317354899759874301908558155246257044750920201034747598865314128210082347590794465613641009537029638808874155328271154628940200913649315230452050334570452623234949472486814555456277861220747512312456213775740702596026083888844785941720573965883273216842399477858235420542811665781925164654927014240146260558590154139450856297825842724138797019249752735313592273197841497596653119350559084269834907305499526568833042898138565481741241925276079134019693645067423893544244044213386402041678634058152115395008228047112484300622438872008154858142635360968582663889501144628385989638677024643828617499197954317640345738151744301251238260972473715800190135763436193606121008954191485001761085138043158590394847514588342261148395489328584102941725443343290166956720381033935713368479858085049917883377579101656256217406546777456186106069947731784526759871853213935169881835680991328032977046345995339392298775983085275064840944196601076998945971628476656543945150061201599550811095232113747670579137191489899228382209452800914419014845660632004405925611534408860984925636174928567017757454595593113821695411847004630140401803239434699180260519052727029554714500710269596967256311144591394808751037585575224009688748404671317004124029227998889341785026464891737747001803497919893198236518928561686332881218206157698737592136183001858395978394203517865823573883342973627598055444353153109010082221010856276128526990792001700520174465974072405999973818614088128403544505097921153542877783984361930769045575005463631166091756707269929939801872149020122581650132967885465993443111348290636689411575704349378222961437406001064559040057543573021646299391336336365302571622118867032726013608783765108970639005383839555551140358521744688406381667375133113788478181895006994619464621384256658304572885303889479445893344037044962154692680844614599093851595204608277240474714430236711326548436241155645469673865744412850782709218786853065525500096461758654571755869177260632442929276964314613392659564446658556614407481028523198900199942359400157388248408203409459763893842205503415836062285264664511906638206974133956938192613845540858406444935630656834517516711287512266310266733584631617335248698297100879435878215979938610248583967482330050719177772110203811481802218117162804958727733038190744723336774263864341610726294511306881344232549867034900238011644154467941264291131243048088722313928964411291798751862747267053956482066383632453226743705900836465668316708644222211820991464687418283173507035063326006591435480347128513472398603271805555259083161757392310752373853643494732694117938710797225306437589325073154992173114820442788898510150525028074123397242640558943528809264902864263297538052834464840729755258797404796520931718800083210766162681591251304192236414099257402803346306881670939794301636276432637385113924973287111162200091654421044399407496583438290599850535892606425838136870217619079153029909748335920882452583119036015396764088216485705286955202196245530083376218015177270775509578836764482785692772948909235915689948300042235241603230952656970806771508903020656368239698079157374654949671939357960406724239100882809529157605173596874352593797716887605230545749821613304537341209092867180412122822027289668155084098734550742846480398544891654956439434168115632660440017778909031558385411310213081297681679237276551187809477792116467988352075010325290239060239350222623658985669341241942846948765297857152670819335633033464690208755422927811263025786314182421964958264937596112981250495039179360419446392813025984807024264669464050024035602719798397631459224600618941421484844687905797499248887292684412539029100396257321124562315618329083946246381929855099248138783046289086706566545926087276046748998389096923383689514793557940197710397699160462581762405296840612556200661378876674691417739134254251675066423358449551115104395388810230148809540064043968139979816458563613384910050068881050520542962129685029822832155835076209779081507360105118804684626126247373130090846300139299440190344987043447375566342916903584551429851314169703005064886612811775511491392452310815441387606421659156042585114281209718849561332903043549242930969234644556884934616296455754605313710519680484624144406209885188782962794915332169702955815832686421056718252717377301530119699841629479276655078458874423780707261121055370644737416947884682532858256118161120302810616614445122949545720560122191125569731569134112480969572424822218552243149004520669631450624598929653228756479010809331622849614954333095553672992627346284617620664956994835697431793832454723079630734764103361200829912821904377449170407148709342553436019599728020123019557418773839370949753237052644315814222010853147334850004067415785015726493196706222672074923013126421694795471184978721970078898949856549695325612348774648892018891854261843003263743479919627134467688836723076304833747057568438267887227109923028323671985397791046922146996319877995968922647543329699860756429163423695489337763561641670541850089056418760894299383810152434239540844916030473510530738595166196239443202006043073966269917982615679900925824730366921986206727732728562154948841901447604462712820472874443859166214719686129126138890378914428398492419022009759308220960636216609701052007551552359756504075674377145439617194826273652869128024997316353431871749085438366093592628811220165211621620204538941951309202886376692154803663912230933006966073116127866983437433391569423304423137334761908192919165705944016359245818095767151464294502272062709435326094507075065774880281716963155618301519625651995222940720698576801099994772802128756699279498099178009527442754216597157277146868172280233573834607954185400757096483842532995592626726185979107370500737363713882619927156829531134542461543436634324268753392338785184957361488114690449137542028603418630181421574242619238220265861791960053453827657142422086774999066191628349654580074852518761718927534951383932396403294721923240182671474263088295464755055119531540167993337386445579710589159387324491724114365772229107789780014286401536421883387569744028184840936951958943968707901804277884891527481771266339963218773794267697700875766064831359939654776994605441482364455891290061775932543794166245972389734012749539076406796546126447258950295070234883435585042040373974258109283291692941715854864173562948313092898789419115694362150357339525595625063531143924779063368091658403400944460974842817152769118585283661009691994865106626519703493935918496054786636957706268060632504956399334687465770757737364274720738829259817228364953239827382213373709691158845766401769769137991775599826542810331697647340373414125065397051114863446893601992858782152925329902172764048256369254210396580801977932601437736587674514726219907501707210358591476805652540412751915810984563731697020505741089230974723257707373195480083203467099433765347908938260730744289047621583349532640415588970634646775365873630137531480317363136038717910590063157311598570844218059410455953994820918224427889592597469834601698892893695461067394230805909507712059283522709006807268636654890815502916161339224127338172766780424303625174833789957488345292948344024617951327258334037498301045019843492240387834893224619094083192996695803093519807483937269824979062226338572471518649271456481487816577594566464678004692982016359522819266111270245162119367700879404898969215517271979011411067101299952001269687102289021259387551232502383446694035071378506092796767543107512849881142961671809741138927426120953128746090133402788641117984908429396155738686393610148616219783500104270931979945919515815171413307340528886389044885368444066736766047923611678851857758470500004351333944280032930455964447461715587416130569691703256575980866458894953372031782271236394912995409396429675391613335657698443109452608443457481245520278015110320649334952542826792164521884951950883700567309537910597766266774222138612345672124940119455802293927843575292220570630576287998204697328365947822352987994091833392644286767872358365688962618443493951379990134436053609519078423297209578887133031957545481183934316324526107097611581310748993382985015224725513866938183629364047476251696143372814295973019682125874782983891416296963488333916055850594737066863214930803734680319675914350721839278690242298446908392293457587266748722221748563349877985108348955168139079751332805653997361322508350856310080056713570127760991641660193597864932201334375708987438777238814804589880014799753305877979698541271536979883888382273937847534827450287538972155744962035698638416643243032395060733128734460858867997521129810501045013200571287633560691178329148219824982835541775463260764406531406509630290265279104805192622875765103540110666233493050474432170451277115403805778049396756311824543554680890827476264238264989516176843135681383253172470772662943345433982014073201297449591077052871946623070593766388199756732201714963436863803521214822627633583119248966245668723589265095821510824191337349262902225035870040319486567601265855752741868011238262419621132913743974656630302686355684490011204079383953187521247943875607391243186002258076733277396217935295224980020304586814545609317678356289541819957727418184636999879121082559436067520171453532678764359301082702605118651374892289407109276522300905816486093136510841311580278824174631704314510518625585153357940803772842295781073501808091596834043491512590004098784132043431226658721524297054289159319930462505096867744257817969263083146567868017005579582383751017613299705717479488618717154648009181610833489858198102787914675641282234655840356444541159026317687843201679448487299590069404452880558573893636113422885349595683769690061335033276708927621947271434334171832560254808773326013272659382832144773409736693260101278309642170958156489523257219923213274695406212610756993257147677787031629879262004291781453923804560516926745663405010013629686704776241309352837887590342940422746493710543481482222103171500042780389251463318737539749739634763655406484802195953190630638633540279834498794126968013075236450013027599156844686469301129690704359396419349922649271209717397873807987864476533521762543293212112383731731788843722407102704791766340844830437685883183905307180109702547801658667934365823372192507114014896702604564370013746724225841909377198614076244441735476098647523140547119726678379768965570770384743092059556175556445181125550376731087889937351096143043913233643731458919156837285818863628916863842901531303741689408984257749324847202637761517568689674772101377352835776236788824549464318931963113844510144207738891171897335963129932504778349479439810611380161532206401695472414485860611580912104162564397844326895552337498517635375734340592139367791976664294996761380035219889231261347394264385204666318680132059766233356833836630281892065250450982147014421914576552625607692621691243356024219209968967428441588245812114349390726828838534702325138299269904119088092595336856884541491371472370156122736606008636854220160150752573714479976297490524545320026797243733175541780914331693677708166952645027692357261074448416756936342308359513480732361022580494288216157358843907502150279736412598664232055164738315401823570755883015154372042466149708844846210535472880684956422284848711377821714447264728386672600712257845021711876226730733334208370970977527536768985290375136856058091494366599534697916954261544898195457693827139587346308184661839127291258146506582073940576552546026134340954413838669962513603039970368703245061490490613261250915764061430295010181059616749781626439046070498952231578568523618134616793967293869882937907521432058916868670773613696023536841803253588410864631402713787913270140387717839975117414701333192341442220078650797418589420346043563959203222209277186678873913816913743377035777673567487540158788670333344571036166314504233971592372889517181806228563492373656721924932958252365797790164909261690974582587731810633352960548524278353440724573938533167776115194326354465016149842779648707168150702996605478347882835554456418021759737162586891250113948218389702787502590979981395433852497032878765162658459677101809091517874935530554558879819695729797928811564099909209592377661183365797226741460176652843302353628765158704861158855524924290239394747709550012124062619377622017626806567851239813098768203928470109668475912677636896245964314383882043717378231904109109331857198023410144193174128233932471868869027192847706878474300456619049686711523230861836042083904688537843341491255291018726443703083224330634845237814827238592221263343021311593975187793430326760661991631460411315851532512748674308903207786544785139915893098431809766714501658862801086822709359531094962896746742058386501828391527008166709723629304473447579191200064051361362719274545402091361587374071483773639462237192570208236577442904648495197480856471572227936240984060695425100390799699395931231345927958088873293357290544284081470861015980958414890667207946121065631699337783579261769149197255832217927404130665081098508162945903124527304438405378502299757344167034426860113809370125904365805490581877471140647765075802281324579027813424350117914332120100890921919686599602484254425693650486646584593355646653791242109352292043121336551555844900595870634502851358535692885781748024550513556614967893685719375180620829253184533905470383529057087847903019384206208139980695923741475503000462288834753023906688467060063702124518642067767672215555352417055158823760085662289993572961720846958692196594503328605320776983974341703542228811023359527557720433235690153374456089986233183017101754887018135273932012803906065153998673284937824454060998807588179802606720125825028187186828932190000515203515710744375457182017402728706853232821434608111471267170253120148764787952307935194714177468584967947581773535619668345113106049574869592612790555148423112346379594814544570167356807944390503043458211119583155497301352478638480194118812095001834824628927883397520106004060104904322103081983447779203152457318412314858594932892271689901075656336833094906340959536278692087621562144704015324526264830750898604156908244653513158342497829612256369945823110752764882005789452391940137497040005627825104003798271266641360702078333883536618950696772743696111298541982139787156721594177716625580870953763181868519309358719007375025458122344742722295757558558348140191378429573160771213797034525741209581420797186248923750411468369815788269742367663828722643428921628715560275257886116543753114461867100146273606582915421952697117186431633137298247033755241815647222618906931626690289661814308844091443377796833537095546333402553621780971867052208578351283620986534594550601338631641766016701677211991123668409385715834809238732091698059817483081693837654129449759523076796861963449906816374936710808153685989002421651699806511441817157717322148571841066451325058093756190726155261520166406817257838306188521727845880496698621696446390064108691799295550986204263015311178123223284790249943604231026293158726496162655487553261058411955082832527689767067103280334880528115132204777223506940210114067474170266092686712984751278152215469081455926555332696544787875226665901450923480535080157719617842674669550557353834966659400459027863533313420212877887687532351928901792379955181964001732554841301215905938066577402867619047483809747129799042841632051556849980134260049488100321866006656599839644726203711878376744050880853083458658693703411897547982231075885197139895795719018251826485567073746502860912641940749714379002458787712406746717124681850003445792600539454453089358727320441844190290216418114631215285733365197041080150349841446790585443734929254651339751245975208654126628801173568961894213899942084741773094920727847431224504525048992549434067470823333031456816024152339279684000853075079513205578172570755050870668332089201129338585836984342592460240996543515200306242939889067182064659431489235382748355244094381231248537063748000952269266468160381222730877454780950576462869855989038294788374272762432601859726477374277543429276415745078415091370507449056824052425766194744468052182606024840902401346449468340222674850633160810797771632427266421738690672366928615560906784141668112342714577125429631146891065181791777272465041389957541400778278160464247954928812021532716244796933680248782550848211686929487159190333687894545207303608272330210788065030478174537777662343664149293559009991507121511377071601992124823259880391852820238342959508023959169462061449532949534368117717429201653269773659483601120202917160708112940947352149604471565797588253520950186600356716344825068553584986396256910165213579326075434645485608630803068724201201508326291132606924607094565890795574506954554338326696033856689367686783670214474175890345041182310978003040303597180215321286377213174903943062672803464361040152070923280644690876629851373892563346646566139341065592214397780297471808021671224507393613947509155791865647969474516342581634856281748162948940316900224148623911268141564760727818307811057949683901566315947804853611485257332734591384161391636701774625980715746886078608627495769681662787301576964252624163165437275633780045872791793615897956654161769428043594192900291594545330997752615120395436368426396720334738619911870299797211078616798807144984613968107836372846820237757671736700541331707051434663187091613412771834584363374989277123049066928577276373999795799864927733433222408810219560110442214970192802889541065434666004101068654817243217601041378380762086189896368288513209358258423539276730429238864544643602911717232395104689843199511224275030077017976722378023846487505926095503773581223270489880986497322754257499078884733187780016756333635850569969157902696794326873255625283449689475107652015054883380537458512736029668643906996304294835377351452408455455368163285844849061277018949509411677758228594720179674263817940135488488569044552070230887184295365428068518855001165251010420457930599649593846386015121424600914540096520538002776972083573669803528811399189563773157071574977807454469751532651733168328745464864854416188990366695754583401809200527975045869367699268062357995984840677684692769765224889855945760420213842094225887467702723198019745385573608144316591109552598745946202386166892032105104635380584957425606550930212381769952820778126242656982331612496117919281065738008442078782861866869113366893126443280904189301333016511507012434154155700168290158188256324309247131233134291483000652219976084963621971022137047435273218763475629941423989692842433589803247991348967566638703898659014823496678820023333259804203226429893303015900844152037018097167248125353242243202191136886072973933974459003581870070803954434153204522640065162258786064512884140389885364207688020447649300659662032766219518737780447235927363030481533287708977655613594871059816868465825039383065186136329171615008925732397038498574628008182741881549552563351543726627996726323738053449946156097351760938440301059998642981574334417042209594159062714160180404322933974484751040737474986225345288243082329798790208289067673028146026416957893246361305636248977823517764167588722283784190839637033756251364661918249025729761334134760573698239653416673026219255710688591389637033042940226132302873531245249009903074941806179938507240931631745339068463730733573788111842858280468453615670170510718052233597330601619119023529128047040842458486633080446993231318913101385248503862287359968022303732518689267549373009323644131066466192529421207590725130754228893689928393863107548347244338596782924291419217631610843077987926221872339991454410561585686578919902674126246338437560320545089543620968207504745598590587696001369767533587006764536622147744275966859925811215134267719347665306964512401735025459094144031887095726101694063383544072673311950168061766716288359709203082766249228292553213839951547078112832210877702444349107680076445344597027875483584639423432939139012541444794975650489690438886458121681794060172074108176504571150534607283858737738422584354342531082094788385710918311296485342008027657725687861566810091037909770630934565774230197102235563697887597710113556654000551032913895740151383789095866223693254327296820084906422139362552140225681596263581674465086498380578235615542797003421381546025298895652915832367083686424574170699335026777330341190227569990765072228230701849970574794437460434935517411562262671564977875941847660207175511628085479593491626435251427884777715313582690019229583907044943149059373782754472479614236933149119996967977570950676426799225307772222197363780562504709808614028789435977330044125575203979611430579858780466376006120271940010225111897706725957811398749364834691910991005282604755046919574299716059936540594649086293940922009455240177137690289355147737801489215474941988612118107668178588683529944855065058053116678656243022490739894733998279588766382139701312384747050323000175479046596062581156981294639966435493887001395458564893732587204322834399065654004778494830890641709919930628380019779849169124850797135671879316891747820035610022646979541612367912743564764351985868177073020721537659668260018645853838461447898360355729352061607883250412249981708694018713349351705533679780120845782162343104674555778806014152603146992600759819774031181310188172933063513711571614261845282060303167765147898647031579451733428539660630330378483381582804337300047943805079148972584463195163128773960941192196154437054172089588373470815112019235186846817122843939018137539059489614414519182469033220216824477939248211700742778243431426296750905832250941206344719337207707489200071894182328696423248101284367542731752235625580083036516121645874269804018800079680555843704613427438443059112768347290791864141508302647242726823428753073381175746880940044478210457631698684075427571752915632022683684129165904232779957717899573221789343142253827877165315051701031530119515121690396904012508680950853896773978627555856871743152399188168688347909610687069841000074733821398505889699464807872646119381820581861585988583840889058347440381618152077827638642169662918974355633682839451193091350889530298132113521019001257688882892269815716353914313125533865833206009247152674299638134548932717341648084121997964096072690947573446582518823569013791611796062524077899149269072464753678692855990438376248670073044810682415588707404712781103525359471829024203860625372561691314970015160018490931192259626519715244393592039735580708842739167454043275478853575360847914372023535970302275433539742605398331527285648971116630497560410373871751896255099449424175547616506266086721120636060598481595764565630534155454892681942298102351389470308630377075587785218087294457337423032858606651375737924479366447589285998378945852602761497193430304567993646171669477212175487449980037220415194026947357502970175138943026559089986023845468184640192431479826452275688448457995039409797120897949540506114391465503295146128635424015811267550853405493891468641006911403265766066543091265874680380816261503448620472917939423620641034546605467514345706815843695346405014746623410237662326020925855020209709049814738972813836929165326336095438211068515589859749277092287038537685424239962781778428497462575886407930832597134836091236757288078175517570948403912856288783065346036251909024318705308817174462078695252231476843158563837406585104990369563852849999635245322224695641186503108917368927331747637336293235809714602996771819397877344217732135768839713900848728802858047897076628373904163297166227400279920920996203271527090751293433477082101555552723386243117884353072626401214684243336702954005297352593508550394558285283442175997196577359346002144357736406954736789718404765053866249337320457088296566138930742029782835457159268887934116097645034786068968284145837255503610300094941287879773244051283319906521373159726249236007303989095838740790723143379359221692805131697142659936311943744161685031534645446783061091270423392961084308687668929505621482731603010607797321055003187557155168925642129011165782162488559891281082351877771329739760499432927471794765570922285339189360123126374825962779097095292465116299748028823439073608674916261023679293683847561014119520148577054940970750969637545902042351977130203385108985572205496286522510994106620055153802192480786065430659209395959895962686230165642232935980036513126105161030238056972594785848347153177892662219903782068205401154658798767359283773544071354134627976615328964663676484358229724025046192728619370178898376926850148467688376058075161971931352781627623608494918743251546490145224073326136988537334740821872758944886258347589241405675273140793565436712906384072380878349391216111803292407180307538977308789736548474871813648496696582273145448144123789172342243133862861980561169583027587081224470310537704889134844470214431964694554563386476361692688793556223186807112111877505615340468748774894005631951003384279814045107274370487735293919728962996121647197729809863402568564132333258560506759955941371163913295196570183781796103330112362868651893339968997199852908200571288696076260538237732971258472019305990227520034433223412921650599737618763086428164328870331072297692592113590882441466147844924055257654945864197514751669639081622005825875792219214354428694261541173242264193424068868391138413018346919258927868001759047214389882571876036658534204997998961742821437659533735819718720133588146284177195985009774630926736122548816203618995544804492959604071848139345119042128679931183315403318018178361345596977102708725084323627271273432128738286800517098944830220985949059285580393547323265432775743275999315163853339434618036226362032292990753766460419242356399964447735298644538982615803357220568626561416953822787943289199367797961716479385876702382060401835801659379366769644834579053373824355252653537416011991994652786098533147748295573249178934164930592557005588021093666271361435058335859486275852456675702281441982887340154542578646709239367548686276157209345336273112372039159495327313083553622354762491280024359577005366330497318724387051523986694417537311846060017685962442413839850060825969768041097290162310677856226944363225643624302881399100672610056416660437469352578481065508173521364945777315594136263925707482110368547684730962312994116893373251964705672616806811090658320427844131398107215272096151016722860746200297635327957263100531919457358912370402904074714091994110961644247819620882707177229847561242328721554354397093594349091986714844335934327129441574575527675781406029064456313765500572994852611841422212031246008989614187923765572439432258167225052444340641779537004269469144459110017069969317946240366987417281632481796517499115141431516857905147297007424094947841298558605482291822401735878738289820857836882199794059552235421196025267369789659685677648606105879214381829458849843260939336293596353070562038343167216594305007073718295097664499730893944160997210009345303715557515600683741989322739346438877762340482958688159767080542484754349536255436442823715671725076241882784937904770566555794516491593076163004466898276461566347507237070403242472603393127181601564592442575909376345933285985697383085154335539258590652744211984243881332837326606505438406784066609509404860369591102530162861387855790119943697598857159381810465681738815660977673442747547699597511320590401381818011726972930936084091032408506053075775335363113847898583779781101911969268707434173617248160362497875665182517215140554336741878242709160531640398422994239703317628199132757375748268948822012001997637283952253599598532252630750641709942230481338619807264347369531409481856102709015027289764505922244563471815040520320368142566125939100824807517341436920280179926245577958152365755400871286405179400357545517871441846404882360509003350291200334648314964493971783712727370531468343310752217762707597950076825686420025262442423750884535624602630624847070619071241328280508416102746160999144221907680382491083637345483816269355180373399108146372806213022761223429016857157086570245809210529861490144733647720299110683737873219315051446573085482566412892158692014029935007076549715734633014442708921022523683525032056615325678945189247171382611797196239111982959755450688590633752293652249414060249806120581238725543604820945046734483815172306242086041182765093595968189610444423757940716966228952369573397084766319841046248597894652085102317468274805270611802770877590535471824065859767675592893279833065486585308367350880225089948903511465725486940397662730834655326568209385941464000912663504151905838663848492727506520260823487668459929578703976668265394163812411664170135192909873266357037711748099842906965494055885629465282852334606710451278688495960288286157310716263365470406778142526947318981682593347872059032748235244575581593114418650343915984748112732376061684286283791905967137941424021430705814939779072101951494895523851101964628610951279838694369827156858931955900343329885942309943383992973710502732228930826792195354420521239732210058994062411683921594536679734620119320214570211790931241878685745518891260713379161836194462137603637012576152360188067695200411212902922009919889858719796166263897573736350649636085780612662821620198667776729391510947543336360301006723662972049963139584773632004857933597901842995251418809747397353548827742713086372481549485107676553954835627580584672060972623427173748117824437285658499055698290085299350401227861826142188228493549113248674225463946584103160801406748530639431590196772015811133631456294337176716293986277837094155093796966164434147120963082445157856438854456716442570080931364264796271853237735427892644658463895637439614844896043909340891804921817357488914839921441101003162946835845840774801162670101910294523459007493984919474681381837554393763184599828615503294460692221128775383259633825933835700485822508037233400942459396205560973733562657887209675292000991128524310468571878581208233345540286615627663907516399403454123178450814605365747374969689101791378272036922240937388456791573117855532923012063660282331942163061127719752284818653257486511748897521532428871370878522607484372915834425122209692337758841778317533999421703447883438968484285207574459553587950526419857903071677378892843720482328841905072701800138117819025410914094370862378787325372186133466226126628826011990216157546548269332359097910014791571822904200745549626427721258164482223246627922709996803757389934098358501994677780062715100072932804077137366643815380099567935110390478389310308743441332815832085216029642979469384677489347048319884111810460248310672968085766924600494389391789778039922409010222184618183046259077971517709799706615258936421780263911900970965113897772362468380050226293541904988440570629609708567074450267164148385475957895170123857741198765297660850132314691150570284409162469846374529083522798552256644580901422629048646258787660227835513211201963740915059349842275529571729885778864087677973155463811435178564367290856683133497553376762225672614191011089093744869123823273868990326848849517623306331609235866960472454988736087441398519621248559565817714304943382453677392497053279569192624702180988281619524043249603776178864768705484516873801692799492272199386567299535677637407975825733922340684624001804640485967771906455782988173131962582598744729812569492239807869472664762248432800402505428279598522261588029277061782786710739515462373141013529875879850182422704214527801960301987964179606775992038690016267248529268475570186125882507250843961656742452850096151040493593106263019630757222850442067083936446513008835506475241572807788585018791664177888339057185542767276829733137216410882892054585668415543770526728683725602755600028640637467329280820896688588067044190120732901699555803987989200070023283385508996565225401314475698154161876496216539456236431378062626017952286297818172942800002167961358351095550338332770220420709500910956982194247048816455732975989054060871352396790935296608590145964104981236148909792518307470020723659094592586601945488609667026734216396780080530196493728109034539040797297366406706046323814105706306027004454359979748487466744158146410266554068211279124596463791968176154590226994280730320962249493755376878709452360289997135613657604223085389098286981443751328928737120788720904930447152782871830157027883714745281207423505947411627856303817614353190333451462647187032313369643570131448795586373775444468213924912237430138744337481628346503288046683907770905958350166259777280878559789439714531130179255414823495967394341317550441652401860068501299621010181820042381803443118342763266454669036288415829183363080417517147168792437396462643767874917854366630921894619634481671058008013500124755634474988376489696334388017299265483376784871808317211610515098678491713769085272784121010759387036869609121972549341216642890801351486851900841846064144010841715609746340206117869905226276482985873798341343466183251313216819595921402734357706424914099214442030831498830244878463459439033740142443240592077689445338789019017738076380020694432102793153884137398574348560968803012950037035402455858759499353460526810616631999758137423382090159260272373474903894350559901459785776196082235989447181261473324433756630633522389167431677129361543425001340992267727231646889336655013079753649250814051616961477381791234002117974161189249766282066983288910129933928698937374690059450979707477214723137411206059043379750301037356684067116625527287196031402285493141953854083079613940734811404191229893744159281433450345958648870698991806739710198353464082630489620779532108016347466630833003315782198675143358418386844861966393319388999181495909176419690917784633708394797406235376918437715171475600195692768033254288955236609929336979077906443387083751573499632678390564192889605153200613543862437026492777665443337870661365848680972353914575005274886713178193899221560195355117398720696445414095278963573903991130639197741702988184934568635789321930394918403150748803670964280172419336957636616175719570856773028969322616716024131813468538119846589989857760240551903368284111687838335737525865605482390977613138100325071670297162372469576183985791051533407562704896614828505251922812699431783559038730582167523301840842128843682962881112608643524693498590475018841145278567823974268152935733955446463905367246231871295295680480684426491099926533023540545016894907475967647527151637032590765236635809389536464060760102382672034126216755861809234222385794962260923217402899944292126762200448459098321302241451364118153340158161911693117776677808791911186264378980255598499344279638235334031568286344581293515296626194255269723873125122796510675950839911279842256229359901302225613664182576813560116125290460185787555323872105576540264807390528602839275814400666970211387644052334861832777081644470817635811357614088096439893615212702994216045412708542761797157593407891585580255795370458207711957730418477363495876799472051549692690483145698969316429754875144027170455606583088542520032172296240379243654528152357328955604702610292946260046081027617435458633553591770693344156699399324980371026273675380440365996064486528035216890577200421244264713990039494543738131425640005160878792730284517739815318867374803164839072411218248732564883324455784085341579095975571044801505880136054061636677712539161641186995257078587403933838998907376057216872248159061099846605450816675440671673969412497120629419585644881512173435505373419695990124327147168433641219682574338406320869747054772584086361968162914568212558270246809314641557124705766346634489593704735406092745188456312378315992389295257263481074946953229017978482144610124207135921144343026970552221215885323288645492576289699664452768458556452266852794220157196438094208294556736144132522274865515037351077219622875181744301483158264900059781119803671951930824590569777857605833591490252262555978427253355669164278084068619912729560915202441264224554622470479444941180273207971487482489669278104410095405656106008715271346494481613583974829843138187845750527439310113571924694522091833630323775827543610250595048844261015464796628933498913617154838023741674288058321398496578922829701005642126719921583042108046250666523950836750276201119861893122177134461659146471333255831492138492184778504512792955221189081856580812263662704311643072434978342987618337059011919665570791576483002287484619740012147321606742571551741376249399471300332103044749034547872119499572135640707016296697118030244407318682941133338193191670433127410260747593350626151399955964266640847196560260163616412060885990731321197211246539489067950187584251342246437023887947259070559522628928346291119250322258555149092761021654032174887205628293394148402136213772340681246946816373626447712602566533831964049268288895310876673629646360390273800235366215559316451009628924689478972216351695850534389839889839635439035673487823852319552806081676943130740888681617989467290252956606851986292700516218465563899128428315229034574591369794792763970136853871587432829097361605180022530031019208437888513525316659563904357197266227157808935759080851021125916129659625938595444841055350561631557689270449554528460893197942977237610713076647749659205104244476789176244101446953404244591399405569045019700926807610785689870836793774458243353671499930309655521358672648283668646024669476945247553158564873694586759025958625798043662594929417372025277140767121978430403684164385147076205037633451847889688912617366923511732424743564052187004272067509100704796362689855319129409337929062935865549487769650219793463865705876522182529498075683107756860900186726168401028894248669476285957730327307084514302139424860478202255082865039329793083173699883836383481114325533262711923321024589880860275417054123484361316600675750317131252062751250133657526541328913423908265560031899783513649272545622243751426971753661020198567239799450669549237976306319551778602968596247559777205813170236145573025428761422964388750040576704348682482795935777756071146284387119784899297511048912929420556321428712033808252276454638868626336028206426909147854465927885886586168986833287839239337897902224277486121823097878718606884851041053539754980883899720149550302934163179555197796420487136767543376370856359428705045559463087745911623699409142203141858551172514148480481743140607647232493705193658972015117061005183762802192866922847467589650746461833130709537167680877844005429109605127605109812600378307520714252187012334047194540145550232683010845871747712992163215559616499759458169025961805509339776601925156083272221095938459504093505008942356161265065538252875612178428761354606665135686499600796049003584674961409449791261949692608573396741881058606773636360112761238757769894955112242698987665372108780657615866656314575419022381870102140584173684202647293317382757286974787237430426215172355346626564273790653206162417938955984637811434091911038449267372379521113416838675930395201807747677434438127940988744881922092778698154703763816150146882189296920114561569249240795423958635173719007538641209040778903380248049733186220629616444466449486760188191893857647853415615777161053153333264976290268899292695289605572742201287609320966011207135953019557658677319353335422012742473827534321050897235567003035450191709496340189827188397294213830402313173231841841248449810002010620083289320362993988956441866004319717350641218640571619649805471510131485280088848868559068923403581680906242443650056377869991278284071979192996846156518621321542418660324674122952151675393900193672234561868178531567913830857900869745954164293824512904310858437165606461060267079706941146689045909299235139514850086425149815104072755106766621649346270642162379762701861298919639412991068400269446843257272287469987590633902198708921309030183466915815332362187014978707469948580271775301560411564779865088733152706901970774856680966680070942902504015800133409643465784395839044133844149300785590364002740190110252059181796834750265153768585322093031483191200795043636032624769248464183541152701313925840359220336972643910726041246860776615064742719796404117339868599631726539144156011238735238678250191935455706337929320665522154058173792849827193035281845741069423973083813095347792987036983270449270089055821282947991934714256969479260380647917845233483232119649920344677702189211812811592974762658951030571929641370261260879210338609322150369003650307245865567148230792932244368479108839204328938152712113815087449447415002716254787752448380671735045648669128323712978743467987345340559054967747005294739772743448988309915322278140620804163742317618578433382901021379229162833510750212916118002931166143527705688033642176168886780034364995248135459307218642874424963081935251746764055984267567737329119792729120309429910816424907058294044671575250602774249961450993939457250253606852626175842174836887293391462307826095210824210099623123930510174504697754405818484586881271252079899225024970721970326090194734480952990134308179981558595279248886688466065674769180529445421200284780536916431559823111656343823894206124621231149412262893450783367384984329434089310128936855970291050769094058270028257155780575951375032224632205554291195027257196081083058728443063611283208296569793261632886499302094398152828798795807682750372042116670840771266796968503886765797875005982450357638035019584378765540070233589934932602792821994686352014168337378205714305607501129473582412566184354190655603689232457552762596715641794347143490641629046945136246674602526864806632642886719251438485390378663712244204005975101480587531966831645768797846948389977689454064266106909311573871354993329138488610494622456940050401859627500001812042293118887902494677376614365943899443748511678144309261536012720898913032954478627465567418887468850227317226513458122293981591412515562718145635364474566525449441030976982575934531428835836202929051080842431726428383942891144127510082535188983564403922096596263217780520444139298303356279330436395020919911006909929601430537303034453213427351025788971695249358272826818933091231801846835630792823218433263358898061728932451413651058509541659155571611610165368427332358522237187685875411686284863851129926674842843129639659983235233864292237187185733440316899714390106738399679880033509860948248787380269452805805912366651376782394828492006940498829470067466684698957252924194678688649641986850521053376299242508932372674210271623682799188054437411005303362378498886643608860882304044147185926883910722617548558878031359562407376870566118044772109966268198828610541958971653673093836934379089812292603713048715089164297968376905581203694669983677635457806053847104819141815676261656362727310105325643301260560603611887737881934605804633667411667493797887493875625548984075221943425450232426664734292575666767755515189091383033891850766471307549501004944938580781618517046925857057408091248911158309486675529728683273227269015609380171031391501458693739734254192311012488643095500448384217073938982446219425077080421281027434588299258704139856954703496488770633558697851244428155501182915495716878336785951762085901766676204550327710068464454505938299621244620374910785699620890129773736661097989193590383177377641599588397009237491464134928021086229041638599391939637274471804880669723817205419196053084806246794603499068458363825949478367734510778211257632992412523449157351078644211685079020062947228595085017392502240297963059858020410234480075931611255356125181612037262932467148309594240521180383774056128591510807392623718031990457763816146476056291187563771948420612376447049779653901864141225318808239308335709297227227632176126057939963162963169076689593917968767349015493876684656522070868686548005219298419899592622815416784500727994961622711551498518293459998886749497663787996326349802976133100105722917469517708749464877390046875715459330016344511541483158577372517563978718185604198612830432220821101453812513874874127948435486462955883162100945702183728808398974704218134216471624607457747693179085318864809500001000973893450610623179224868928730587965961795901928714371399996992211830101554631300160056554936578038914167357339216975893837929309652422985620622916765700218533211871563068630110060608254809559095108421181733185521014105612511069210907201314610578513089189417952926171842687011064568335646474177944054453457357558782691144977068539448862026812718444000753623898556781848421738278797134564804161376709794938390812552815229828090486967577268280720423217282304213758405572178664067814557539054788904704120697397058386589486596085437465769854827050371803546984653271918146303360485507813878628687714630565516950424267222324677771222653591027045139693942194153611287957985181390530764879105398196300386115727289726575838276052974570803389379694363460021722406147604842154030086694058704743049911842449182190007166359194965621289916511216616828753568863566249454731950332719981808129592462590148007931039771238837029144107998116597804009110993186910282035828432901628274733273859382050105106227258897374117988877540165024306821684531652093200744766562937923911593974777548944162035763509820324258678978402381803188370464417700994696846306425286457688304422391407047105355385088777515501647007917495199118669532723739997094454992219778965084792422982930032024774521250575899544262883559782637375630339226292326773039563903010321762944055199912860193999038568676384475637793793336847132378454187848830809920120443366934981753997032710307361270599912111126635745899328287008911367585428894445272018651034351894445923166736770554292798846136465172074886103416497135605174920711688344361062868207656941213020264631726771510785526077100613667506786131282895815807317876413975278839645295424169208664639014834906684717446379152547605118981445725752840081091990926837367613288430041287565174404986626487516238202356460346527365442170476408956798204332959286354187537320889254932922507517429141742911010720399583456378202012367839129415778515829919045407542939913830792864560215532663514128214014486288702355067010810611892534075489285608933485541431603841971724930855042079282460113404296896824842172462396951033647675710013993929749245867589744684291836789158370401566642596598582700545403277399178709725663542883000480303571866938275060579640935306876809195251209618234957516743129331636870177736004170451020119174583888385973395140832757254920292869522401264487463145485916908377059044943908864170753047937661904078783442857940964306773395166944772991490814286397356701734880741968942665422677853402928216703171204390711512151171719213234692426071346418074168032656420543583529274973107175871056522438647086877267389856180288343849986192461531424455960951255673691401429968889410751858473463258748121485478042682469922921203268709581980337731914302331893154599081627416177025109987450531539938774755759706434282548589993850986014534552084060457664926282484205651902921588744094436692307092355764359902658572742872472898944632066282133518385681559782181465893734387150921229110499161759875535355409386948256883211966963502750101937662166351231184054102404002837581997310838647732137529338251724986915607759965107429804413413658246084152629730764783344450746333037191165535461798266541569216022576076591669629747251912120564616281266896565373346779057768334570056048839722437050580053022751357878314506440741957388065264011846897937228096959716755840655106568832247334212361368297355500182272087982229635676151584138593010742662602955359335379094673288916701754838318356071729167890855312881567772617353919852476195191144063472063717025275816332516794630129832123021425942483176874032924275918077780182102663462202016552283536382403031477885452590421624649086020625413162777908031638181108451719514965520231397704153937450479375874271194032483130646676716137368809269458371555611933787649673818723215924433833633931125320898241107264051322231909873239205686196416322084125176635147610580820216314038167112022716088343223315502363565661637870241564615407173582291786570967510132506627665044301640369459265208824474034636817089940520908318401283402925966586565709271143111941379115701693146940152135498318048081916167902957419957242932465733068359286959470955510169763754899900051990487111093179511988488488885781487104140468305748415189095154011508750140355888552243043125966273655090522245735896200993652328613977482698921228954897398233499062739856039854820261155949419389050532416441377220209330872677462891721774393862137134847618281420554972127883980803484008771853692142871185778577003832288962513939813858084082912429974185642226607792224616784359401210597812981999462679882915941199298309357547051219324395642042389292906126882188018483621469637028247130652216797523611684361838382135000475663619637298312984569614278457913836564756826449326716607217755225472900031320641324540185006646852985103237626504168131094334360174372819208245126347824503675448131410748472140678341473445801637421642442454435008526717231290239682733620865560112869401967640787528656120008713620962005025820491316622752833487785224235043381771266531609755230463018445048628482590278742707572024430041163422058893980446889977980840197320097798358021732530306834805856885485069928744280306951521609671928104136004069285969467897210316026522265505939021703382787874908964974235398387415211598622074481792492387661104986710105124744348943156431653625510896020588843707425113875873191261204174144932560082799221459626182916981821968437210300152407243049327805300080223239559409040808198400447445186680125859987734131416120272253325896079639300104776341616897251361334006706494184081528398121309250733579025242804959577763796349177040405127908069886906416641551148681589021442776582456849629305449375625225443158079209009216854451915957017177329201981016207448794480027089588743050483105448979320155089847969341387624979739367760042097027419417766761935386682477060996280577346455292390405229811986653354023745272250747750381502638712995832053861553284022780125309369421978106450060252164733826170547949367365296372132160592951610824230977917426826729061161942146437864487422561337275725065860077291589934636517609725000426741081323802514077299509212585774215194502003822140697374337389401952561198779371467341678045066904543978702227206288274384613405591551585280639421399688731061667419135648003668350358904942081542450721856733562583055875539142370074715594844606377192904344847949561683229648021761103674034668708835049758505777018897178401441073791025042011787049575707253835262915839676581155358544298458037508704165388618057511772362061055508216857318089283081010092960326194203339216291094170717008068127843651583054106968334324547804193747399368781754046914275881130942453399547343663266637434795790123595599602820624533789042066958269859405292453130618895859497175136630283666476631507202491594660918789771567010494263669560087989075088624700897672139183845752288575996513379473761115394364649607975881865112571959269699341430988869899712958192021710396928626759701512654139167180084504845496660089014241667667154698153353285876304070977870911988019583999901971346241062328207756329695889785900052622495731779835738755664222644563078190863154594834097375723836948997706208079585161072535732403584278254057563394562574408704323342738035223146326271861398792566353169391726570364133172990398131752756450834940964249860731863775055982450802363110565809218926266177861061636199080819953541519236582333993054395104791860939498035995681759771326904487157561022228483350208303578029002689850040599810182638584465099464455356070060824507240090147075339659958206389869098582554242298975531189377066554554595852918502906093452654727518716213307528943032769303454502616873397524054423717801702052842030157757095101768016711153139363439527074129396161184811728288529252440411199905813840462251837774676569125963862830418568179045165608131353316758593905980050084705135509385945489643745440815427035841204766301730011510831151779389160042272362963263500806955079722585983576260061095515297664769277936716377130365263407753660075361811071373074742586757549878132417029858431794361178273940701213211411362669795521066382586811097009179572768025942496534750398853471855537139850640507852142723956747235603578328725051080888857409447045968456465964568173587224913850202761594608567089895745187016325308589597383961627550037507425291389673215843436797143011391853418893962003960559516965786984885253437816495436025217070146634391212727267140797291247871628555189801515115204897660780005885171893136208291881579219041549473954564021908748119236508014097004801268937362236056685576181965844748661696539906166370101388524682549842682766132551185440488740929572705608121069758239600010943178060934539812617254556542048902846515432033415888678917808370137458542932140622544210736524503326930139414296131730763862888031674836477995930951105494976969384736601693009464731364388213579013043997811264008130193465789357156385271901919000414455677640108882878701973949011988245872056246518015973139111908613547674927512164093155910200192168320166455962537615375460149690098426667045364464654922206057234783322828636370106652215282930021706383988576302059087325654365202774986237086078925116065161781434365565662499082574897775575042904834975797155346991472893232196965203836866039906659899875761069788682782691405384654257678351101104568828052087475311282208090266001283727606270078141800410632061764194327823666022586526564849676769830534503420547347623252625691313374157658920261804832193601767927752090620825455235592807177872112918655646082244822600421149314890772768442832198703143892723697257499848449851597600438004339880152699123634978720731283111914149022784662487647263726378378859638695432918635034554651290074458866795973608408192333911683669001407213115792171671306212937516651073152151784682560357985488185605949583050637256181537965889752992141316703542773392508105263037593632950330419306831984794498937537504479902385339444367272759295821812978769241941237451122833340006409466806843086422368567227836275268324393072102330004328257998012885557651985548303079155314927675086543345290040936792247668623742296848088421776447530994458323434161531818286349325164912908211672337613726034587076132546228152084746736352559130086580445521773456166596852126294450716481014941753164850916500414331244389076506017534523090920445208063487267733564023606100232783672235127022710292506420345678563407908965177353447777406298613273616787835839399435713168317434933936562041544602200701907637300613340492546139775966519585192124181679551496171826168028780640937428951245459472813553520489439121988590184380742492373202060582354801618345645528206414416435992359826009434747719391735640742231889724346956259437910606478666046425450102455598903117938193469607703194725286216980859827077196615793588896189357293157249787747490526368999383933605894344736603806373938653258095851084032032131756061636407158313479500442791737649568776222220995240485880508466192860337275498166046023411889815129942232900503301823113886101458869853732470708092352454226267687988653168152163066021435671864767913437407793464384870843299946417656268186123709147221338505185487938547546361375156009187868628976796272114764877492718288244787518559872321983205114206505223893383256763466917714659276410850705155430184744134063062484337690496413648376252239170065785445203108560359731089028300303525512615490081227521875477131754579791449974034303189218954880652842120899733049024074302078928063311687417924818966501385970485556715657487817255765797587431201404769776891629005765048324560406134248154042773934709110712300470337240379175423091820533922982626925848367684742511091048467956323809902510348557316410312634286154847797720405950764582974820321573846344700090571347812105630356105862370606334012510561697111499564552184636637316503282535512843487942511806575612715289653819479240792695477589334112871369432870393916064144785096992819380932640163848339628220265755272083212593590267126954257314353399133717724191635240369074787731102007491562756894652404442138828448273432391435976886834306072835083656582526479574982044693409769227225772031861607348307938055930138911413329363734647621549040993321285671748211676826768104001330343133277196468091054547610297704660111511812623307637830253320350368825323330808515811628586339228644642083361830318974936573283553451533205461468476518514879176632627333291450818605112859827139626030421461219967498458396247155444500325579179360143174949657894047570972752696820697075035212567844259780292373440033448506570835993891042386043438923427273685317440475369982020273012623482851321090607344487226142695380140897063544825364474720227019648050606752695132645441356982082343258301629655679982296722024808806351944076055880186936319745599706208186619143285000047263196760486677241229878486974983130996819841251805315649977311692270264182251608558170271708498971913917683611956910446561669534633020919331454741601206979105091290281118263415057097566810427202564071354027761715618763311095056353360143899541033504958855697526659193628149551592374953612685179239838225587141697140924378353368128049755087703918566919344603610329019081716553882195477486781866479406565214141710239005332596068377746190039621292009079981085772984646538395272207403465245358479053279021198141299792539938084501490762479443448731349515623274223843873104053399541454966203318600381488250122975242221079626991247339776754543167581261355893811699535447147840754032131654317993693688871080546339362366933752189818498846756022762532659547586885830766015070099512828649925264116405644576244250980105466457401400510589599975398538554591066874281220517015372251309659974239727349074674968403253406576767514996344249168560591091036576887026149774186635210402566225117643203008988869162157460839551528923188378469139486016940642163940385494695059772385791894083320087059763123297160727136051726021296500791444691762042975291337927514510474391263364750287968488072444137640660082253669974164306088135739158657276016741332151488987156951296711678504036774267947948894840074836360479408541192742211191657151131787743986851606202933465916651386898937041345869302801193687535674809437733300935073217755675293710295873407647427273240270860807187753635841319633230151292427104384165191734993318971109985693080624598916881572563154966048569577913720675606667498337030549780743538311775044920959457149512624092816996135110143078058909504355859371205235842618978899520939933032567706547613722025001308708311298771847333906722795197413884808984514472864590945076229422385987120131111387441455586522970370173642143201419286361551103199614815989381528733393123688715019684245995493911544624922511592910937748001081383481820837425181881914172847050767811961494615250650863597831899730109081770042449102715880330578399707847708038404402792712085166295459034040759940287759668333289715507063326521783883963572998264612040219617547315257550671687489472585051597935365056264842099207827832473741910975219768629645027399886979237581529071555210115188420761594561552223452086185488342155757436905357006176515733849811551873212312052542051776740716138281526375522409290239560207459574984934843311525229429333106643149685059943104086369204888006547444454354900999801935691523631106864443109181338927390149979685781719458761055649778473255333950224985873334455170989002379909453010102060665573013095451908903053306736763815100590741621327669042401261952764854740730192441182644112075778638518020663031000618129872947464804503178249053190651519969364071995183172675277170090605307476830944538937786061452397141239311210662333681671865550694166308511533421016512159727913857340874614415856882306940171469919781632429960944738041693283178604023689181972146895874174924565915809416509211593866200670358590387237497167593494659700923124635110799736531403420613866687057624895084352591559932697311265923065476270953438387075774286302607812418593082137155513499745275883803416666300132260605634002997664511087285160446338753972961481272847292527548835609517372919705510092957751102405740601735562813722383824869971209482038758476064239329884900071576363601007892247643184696870766841938841832023155924406382744448698332714823410483834905288434999193244708200408821151809954764394897048162984398874606075147305894720839108105697122428606077064895838272854137799693614005607272283873495412591837265186020546262030600220640788387522365946280828394668253070179171112783105422488288167809096067378575658538549418811439215435385282713584107776429513044803369772446163116333604685671196377954645277940349237166411131040066984738541698922569381522317694631283495319226877315110031728037012502523233980158545702927355335695602037597912765649027492250976792968629380905277618336974141104801300271134869364887179607010369935209470854844888052551166259086186772838543413393937771285041868266113923851502222661613640031873686791152365291379424116620162195897571784966760688345717152420386167998518194373583435374451679547529139271954555405955886557409171982872162725166415827097793516890922252332075659630990491200610479061151004865153649303496996321315276904951385003032323794252982891983836038897476884271852407351320474562712328412917628251578602256148087811239915573428914600279117159803623182232439693734611955582666142623826891477641143970706218983882399220281839934261974838283270486309349592152622427965444964143269596042900510432632861119759625076335331964618758704501465409679830555576783733056712908637069328224161602660974638022601328212345967048644833962086260774289631462761180552503348468957429853191599216227947732195923105108066408544484066383492285020114439927848656463273681490361903807921085761339380978319487910197378234424220287165102189062774217665118251984169178273326753250971108361852399020945129652427449438822860022983942323758532613636386381984530204657535878502642902192139281079742531340240818488898747652202805310304593454157674757872378469104618869075325948882272869547971773801452656124840686456814755829505111902461428475249004110179877576652628165240903139703641513713745022149743401023655841284431917534599894610127311990760185811921922501377237101080586649617192003939045909270089651225704413057350258044406581453120865360706209566191146409533020312988387436071166095799020581505143398518432140661272276599356502431408631131757743931695098713679492459688584430415278562188413085028071957236644187370794925174862591411453772717931530333735524799625892282664283024115628713967439105286936690958737287377370738133776089068389134912915818171227081152417595977906769160816909802540185167230896404158135634658533966253685225486501571409679092712283273361123575127578463741184846649231565827281015923813044173456820357049354282593034647152236012401799742561174228904440804898698907944256923210865487841306019662508137424464126160330541812990781383335450657913007720519297334225854420016505349760529758065013083846503905927791378223784279958480271081236821584391156627451667045211098291128002517420181046437221605093328887478739200551227229623355234547579378732655703560365924754082019043290797881136274195493731462887643640969137736901670775317551983295378160525964509285192314245787596213202687312569701355856563653753742477997058447096993390670971494428095990281059217810554634437064495804742827327056705994000210095221321084809256764041503395441723023417494307602941385108513684273562446165916414975641117402586816172924559030159638154203864404993573013053257205240466316809278644480719323936980399683257941728734016430884232507508917954895650392493155737711360307702495554201780668786916734892919144059108241367720491100635828332663992647066541524064036565498896934919047348725915781815209015389520823634698022143569128333578176967976389047442431397631007268628819872825064556812230652165799489750832702973713181420796483713516604587199762779403442453352604773640748549989928129447372978087363038944494831168915238737564578060607737159632059939882322309764627879165053563747949511087495363500049759161326301261906764344338408279967191227154425458203162966671664458587056925228901316465282785511133279342363121199229213620943984978454903171955566747640779361049403137990549454001265640259748735867788019681024075310458335016979839899811843760543490664663140161066904234459438363413310952222866792452832541205826051888758359838690730942968106730202180977405560949079195772387505353284567830091026747081424227864599365984807693134781302116009210145010453223808098174184709577921509234492716738166642628854374582891370753578193601545977115992769558732705408853897514122066235500451192525958004028075776852661158676040202898949198124953436679116497632486079540199645925920013260731554510629920416986468992168598557482872047025131941035237531503925738068524004930371453495608759380634055807330861443646554335356089235362555394082866892498000723358230596338576071910501440715831676227037536549657243766172123996256833690432176358580146588076465689011484781843145817523676938031039766525714375290964210660734669997969671799399081089782742204354177447682025076193374257830790870890739683375140477168990967308657580716779475136526428264397190986182690075207310418312795736187112840807949164351852468591428047609705916444652308907216842096901604651643040229225871198392612473879525386340285692052519318781717916015741594737031110942746618297305201906189855963912230353376702126353322497164352898584621609356886903088082307897091652359272374389088001313685710016107416047765098829892500378377791190901840107698952262185844129748500116598449032276052124830017064901492351602497181895654834081900496726934131941857344619544242703584790703226791069275855257997487773542437854157068690476549229753754774773278938531036888768747725221264953698500433243075165791796054577541897398989259893400456492481395417787175304706656042020527281295784590353867066276062177862291591337017345370624101098277885589187689801944841382782987883268459760142367481729158695713640468405014703070157624316832215913815059119865617330111519112120417269089552643338436847631335814564482999431791524919776231619024353083313105848970244895396866735324940338486292382980229858960421432284928250373447400349899136462530510498468660579573844013819542193097804649901149978431309464285265177849010539522384450529351372019296801222787733231932069761071243888489107152281189438104855351168321479715550246755701281147673894104847835249672321398505298600383337426760119901972871671649896012130176380469626839422375648529469005369179333210766555355548409681712518938274256110986525217495007401245750998732793410460796968140578926482848006400238572830717931034329993306652858144845503406194758402035307387131096723020812391840435070476494289883816508478766904219419802210895811687449778032876132798840048238153063483666141700666962777695062188799265676000086091986349452170058285381879554299371915500534888355950291965493285780661530152336240092737126849035312457553690976736049138057384302111291847264140272853531462699152506783643059193377591844058267516206858012116750931447474436198227088012231867993707809779442781303942414941183387126748520975390760634902592058940550165328403145344719532907376587992486429230101020973701829856962128444251462354718486464743198601335788077127782949438753891159740893799436675528523389980337472668922609639245518993125052155032163359197980300790514703968296194459274585694915748560285054227168117553045354185763532824200315047886706752303329454503820998488417491800889900925000665651715933906575930149586557384259985557858655324571906634434228539462489699157180199072481370480565735761298858458070940419275992030783417195383948899140625309394967337428665584905162312944561833018172591558355120904077866664181176696360690106351778345290295031740663415412316818537390705685947014592991063644672024253486571167179291719827648619518834092051868887227086795609117538875058028320616395164117674109829265198686761848760365152069314817918811586667851609262885275093802779616144700162458621445523275400753010206598024478559241034457103248749395908872257049279768377616850728618028307687822654547870407039442357956218699421906120588421230877234629841979719528084778179744278061012715223900427859447190948075564970521095578686750871087258894160197148884481813127831490897384198269699524929790232751394364024037733242683763304856405656247458397676723538575810178050851087484660136732160062932988985814806354169731754717757939539103381876509579292844182564839467822150898847313072614299280682545357887973180844901157869798942105477775716514479164397351006472089392457426402354031904068763067181438134916101496919188523769544692351339114420351949607190573162956773906001976804643567026268747033715644844547915870451158475944885572721601353247208879601629913779376559324437826166560743516247436949283890072898291752377367373661810311622447962692403810464401131428474591007617414372760603753415765515951900611070835956543332150011155703230542458011464256260342447457479844170558886476408760381659858437043360531530133876212319575780620792773865180218418488734420089369998600791981531190789382076952142031016422035676804027165120103409873691556579695457455796074430699618398274519787132178300822972578460224091152621983391823439410274154052390556565051782083579961629668148856695634900953835657062984098313643967531360258113337427401841622662705126563965497525346792131684553813601042963684452501176590971616199532030629954184473805715396812281108329598000772902017152174292670349162400800075214043620366568200679377833361743821114461818771123987834143054539736104785032356297736823706922455464950298010059955924702496448823376755847820799983794556262739528168900376345740081385785014803970562129391522565082609851942779950102888146155859503864146753872730005553159458564178027256176134783353276987458504536694286406925267581911292052398464942235782935527741284420866604585853691406322331475862445153148574544111015371826845112511970974647719707681783779551173763464818377291861036045565324748402580706480369733468274236752185191564958185735800285431775411522375665086631332933521511775838161983507236120457984277558550494440599211582912972150045604845825766589611704164773523919805514283235092223393343658072372895718405709126193075405850776780265204493795010391113442945200033375117684547417614408328520097763575773647790263279414979252125008776658545857479713052023683150492927339197859974761728115511400971267243736347971239286111761660431434184036682526148426096803471524319889796207631473880573920886827185851630316344950636142497204653803084802813886101687418933804693957054170121121020898746851571633382796368382347057774401828478312314324982019293333411615518720937241181196231352359800664744864400921635134878028737363678698860834088898153590304715035558891599227221553902262080688132972603625896604842256309277718401534303931920170818090678167827710015987231416386350927880390920683581614411128809394544852940255321061548800633114102640694217677267365496950351894818680307667505943590482285432325717088238874120398495279373167942919787266655074828676427972527198742246659918524949279095780496967472411827586982168429325374639670400922343005926959894913903350259596108089687747280284330088105633718842646601230997090777188383465239373733795153098077170394476616637612155340779004157516448383764014092851974916592901118385151589210608939351058363072770163077006497969700390166654766169349819380931796819504459531982584117930045396247039379594071158641994464619735830446786002177950778517803268375996156030625844232848540594854220584824033928694326468957805582204395763063712661846128118197617376959121369770439647750394989872263432774226343683299655092264531853337481033882581833683487667796053343973749579979011097779335149441159718545760934432137058814630787623946500389648374222652860628303044022430538986410499481283974832549148055021992493573071037763720756455517544777138436415796402615516750921870084222686002434794583950354179595822869239648235594175436250475736251673921940939015699139546670111464878796828626566687787817484377403197634025383610978629878645408405739342796924336924830820356660807210146842985575324167307966897050355811809063743443479398920618791253882511515231411897378267160193693540329606349294266814504361752673241298505037723379831383591177075964983856551783997637758723030595888151668782043623202706564541887340572719791121482890075528076347524960672988929252177827138109519653442563376917613347134471010513053328117528061788287889470087966631233890662364669551459773214434971299302447063615021051812349361965296235216161122831274130950893590039784601223873028158033514463495757036085166839076915948924627961306094460049447024444830013655966625618112859645609324639453660879526339107428740825435971481131301390851486567147094485960622364709297619330444245460399536302472055453388222186573452412610613159998685088937587921887293179357237617395716375663281163826511993275682948941355016895448802837191933329827798046408617283485734689616866817710923842493168444475145225318778411879159231499845847444028718357182402999833819385401238428495296982079887199483628205981605986155612994493774214215575866988338095515129690061835459891411262186577921604067045417847961912012646101305974255691812737593772668643254518095265948344346996715768008414592234449396344248894473336907140856253588038623019318966626124525689028769822313483211444476964570779075078599525913023363947307176457361197097810808652754478648161145381632710187846105650565932843895812975640534826626362139326701888272262452048289768802523025154393591135193838414401079076242686036613655108710076301933740994015942366610609376096327431901533512428785438338456387848133982686213872960049289547970661126756167476034286490328541480298111205668746870141853455507350153175882570366349321727519389932161539198649590528235635447559048012705860816739609755100106736758137887820584427987340465547791088541496095666960439783733338769969226607907018699001816838649122154971666866371243070848860549191263951064775725327020491656469456546173663141868841122755126125361321577670423574244699302108692013606153844599088001531537123514951085496357185004857747035307309894569024206895558803078155789815279570033540944763982407118393796673406852970587799069276289929000336958662598149684725402060488468228581781850972682710181170035708028587493176301574685807471620884131322975876668712613610632506751750997421514230833055560262647938122986382984267985434823784938265898765508651286799305840217751825035055014246011453339719022056169081635572989115512749222704276501158829214701519457212265171712695346992231121645846063711313816866038985436492322776335843186684197258605361472691472301838821603434375805742676846149447946903064035729330528857784614094926746997526557477470081151890818174337359158479781791533099361711954225975463771697490091975140885177195446957598288429315187352778148412521452285692543232464536070375200634052518198306128800739459888594670364715036016247585617126604539404638490802162512034561570934918175696646767917298374973411516085098737807566734717708402121605645187286714253399655247498603523816933503714481373203821263494405403229850337611029770749829546147314285870482884981508962798278713706837153975189716551578844413774578902165010967303566442396024589563637197975583305737220971232804444624544080951768891132296301069386813693526775960048478588416133691513729813015523330173826209467807354413066592675029614090594668471102865030326783838038792245166130794717577583766058221262414632009485391022277855076959915228852146838008866211175776508115384260702384314865426300175505781824527380943198693310599260953214939186910262973888087228670212958939147691573978739078345208011622066816719110697260134423987949823250923114209604652164648456647814066460042989682404010274003565562905523512534289942636663569850714932634572678847502603889580615675189360689799195292071209392929706773896643389688439765436018113434938338041976717158597840820692423668075645373122153362380337894534528158399435327762271530914381440538319774931412123722816250307444296532193326376280428753447811217058245772165992118875233325888403851303525041260579435812885520040466260512511790809075439365435555732025004298787904136654156845630450675084011248801965314529694167791263274218765418305518960207124439622089344764466198426777114279604705180712381060925418424322677357129850729810787108417103473270086259011078616609045060760843973616904575409192057664077041081936342691902835959395289593463868875941844643316935790626361068328990711277209395525763481740054269060025824731481982109069892481797366146453951229758245347114344179946571871455863931687371309463489137143010261902071503670662113851535002938231882098233087619496431994397419057309003094151099673449977343019295066367574646806143486859219973065680670148079940977634303781476563138981236149576452759747597229684705392173758620019425282969829468049242555544293002238442298232602856314365359353880809104478552236489474587697933357667222447943028514877451746930644349554800354862312607501169994058184103582189899381182308152551844020513554385203254366082939357221839522326262180412822770839937265601604487345853811524714946953677378409675066002370583956175497640075647897417467362254672293705695996667906542856537604711152518823807504823816182602613523296791102375150204622900434306451107584326548240994120477829494389772935684044033364344732840216064043913036941862712554017711792562857718121067453603220044564741213214900179348555790126771983737628525811735372510190243713562540784032877180619946160607738981880770791795830010442642931185882865691987395137769093091513130546567195372223433509296168976829758448305146755523900397204463186161945207345622971440098474473905922049391230653496365882594856749669649821965613502918505015690758832763495050780085334425684985329068725585687730800366358029285239838988587478862772399848425142866065301487177564297881936669607310200521983452230764390973737507304874651606890347696090217592865245565744969860646217750899687740625863994421942906119794976042828567417715847955133870779644707507122214549310900661165932217945638533051107282756080808353119170214277278003235152649869224428233735526669706422179032959363544032401452581344969112146636795508557515736744112122438864168309728217518786766505273098541780796702499349055218927211340536807550139807233085696921746423099799378175769755163003287273057060969373168168808563937203906880950479044491446606935387338499096223622493069764014499801428876126209984412790679716232453167552731087441221321323387361911334167414032909124925419870276050704524121893184205575557879763000446520611504368001175949745508602936108983447072441121279559239453355105836425435832468424031080875156495924624292639622833700901595201723015090836299699815183726826537115158610383328833134238174316970062407235321390022768835442684803096615752875534444015130858134290344438110868690005234762521810798448176183265910389039846449970933284545351815930266293309597160036080018770337200734027168116477154359147752542936120027133409756955777731237103456546988841949206842913570637960776967269275502777353765277548253531231817659729039123944293771912769011418729498450158695339941235860023065528210454529690972901016405071945546594111077047468331561895423259824911353200616661106388705192754007980942899724511117390477242578159106980808622749950107841496965934150574783286248473076553271817373355397504709279714100824424659001669751336821555792462706079986968778028255648975119757768819538198321148624281933207272038395124111269976997378573830161879677825292078624610730419715804363509231002012766809409481195986732627209983860686614049025725488213856325134637666725920226308615754309027554201451287143340781113193886773776827000567529058266032145554945488316491383340013705392893337392747734482271758968525886499102078013425778011052793321825243049201898200501641834528969793824252723374691163064538735324360940367063268200222153463451446315209195594028278341337786128420357841337430607677799912203388180446512049477986081262342422734721249227707391259640035008296796479914679565097153697822231654111870216631124637302611594186375003322239279089170775175733285774102098230375661816951401110296700926138412591184782248703811010370065107414541728005298203789373943273390227795866082459189850954703660231617458353987300314243478556427352860470969420383601758275553768473346740202492252189579486674376076897940590234188203416164704612309344851108473799915495148328017995461195355246454942554051602999288779676388813316322719647675521761286174072265503487113576992922107325145277561948170912766128171809154607152180500029552280844698045800057338597341707723097771289762001710220543786519080812139898249454612335824055708555751903160594350060487987771835681915259054655652552537471916372141558179539832299943838397126300279235645097195708676464353858571513222307902102634494297105431968374798855399295667672199329366498382730413471678180894906919772259158479275575328937250458316411278156677542087612722349892409535769635744398374542070224402934420552543969762420566942353340385966053261387178777563817234390986975953103095654863989609279118265592899123842077837213663275068197474365370891275717711528022522955071090813501288637323376468431442400308481417389472975265403570839677859576657500664419335121011308957610139280582591768963863820017900638579402446690924172542949797888086338886987877025054713209181405124163241228037921322870767991818972376806039055971167367312700050463773755428757707793476536856942321134924381080523584228477064843900316373226217600780204283858024184647309426039840774662849583554418811552023576721813824908334064682326224165284597266436631605482277689731352661608080986384207396499414349041578946183981531556743701122620125234400178727146153879515246433034219081340730327127133543669385832660687343678907184165533632114971104888331586337200594471723735361635787325950741937255040361427101028528482403823053107187296832311246074130144690152294971208592462452775009373427671116706183051022638430619594052814138157429755844340000517682969519941302399369124461165680343794195390224790472711525770309150597663540699715438019091707465258593405935316905357397446903505640228272972627762157494753787497679672952608997120141869541279638897957477511778832464768546801664036401179753592216427197254331477251574174298973977663849140133091810748416938973331810578952851069606464689447778655554351029846981474446981705351719879924181216451911345153871568345083318729194663981894962419359632481172081120628756049690367283794098092536582050916927670582901572374454135905464910087167688668918040256326286020300699068041311227631610891098906040737745042875156283460950618539532060324175082897684647872901017320095901347247890904861528401088582430151850329306681823502947464079623600762339723557088812009874127548151929851285731083003589397870423237710366168904552171248351538304992030433911853068753930305275211944905137293013306453073473877737552496521198591613495889891818140365655869336176853106142900811306524247206817923694893402019817930246172186761080725352009703463607129823933982446016443945177076324695158908645107725138278865486786576928469578077271546797448571442232585342223958879695742708023378636331307465351606427511751373358586734294419196012661314116302948139323772960717832705364032029803079022855862983794576833940352061309401474230970104046834457212937124223974328561890192813842842617485371243762494883660215558153212185554586850201035003303552023504454616435356034654692654737496112608440917594498082288061065700012626433461926939935170458168784418033736781879103342112967742505537141205497737976746858622315203014183188982303007568676080272238121056075793963153471330103821887910586947056708235945278332101798698231899774532259721149293039232963428125734463947279002993806511190554305489602545484690012026764511013136022815470552602727740751365822729253189893169771983157085975490041582110513547046499729139917898672674089098105781874767722300821542153487029780951681348133333239098165476466329399362528062989789912941576355195338873093052575758935323161080723249455866896906970013060886310718242320702212649486931346727413915319990444537441894491585292398980192360924218363491118799279947087320578299802023699792982969066586616374996811365286715950208319953305211775379213048046856835669369311831864630740018352292561984421126530261501752423273174375635133671785101910663683084843058104819240262689479628757004301600408113517477297245410212772717412288962289436048525534650700428961176833748145551061181920375044826621829008760094561860928974693001915548037142747523397052369016088047659622502834841669068459471014771785938968585428835690480719134333253918632834163656792767862771782555068390419600401224689454673741820204313753710813280672793262087444225852501216974007259915472426980515877653744218004431133613328169558016864674566275570049386654845368695645390624086935503356674043657288766230633349531147947827717231400957056808676911443960866289578139943429840479214532490942594072056745664778229306399725455946148012888513120456207452206321138629345103225504956061047844462027659430670835742852367267618438015294456732209606300768804825147845450244974980725728639652191852800739588900722104115250615889653834095159957138767232839744067649855308386441773113368741188120985458371249956458002152305647013734590461784169925812344151330776613527540562456983966065096701997503277391398561223465848782989676048910306660021678604336094201742605786027806840578701636010162147183671383581041386196689876495215675573186750485183793640575748681025304907012132738709359667626181763544682488297758271366639048788472008582447952256391771354868557389571400592211032543046997094893231939106884369923610885731869159001613351828361115109975294742819298822875879203991911044645247897645121790009391995854063490978397559133153876852587328642512920588939634252541528544927228651056425651597581033408781369436099121851541559162284510169147512350420983620447348610533114778783395860832986984880888213215845306308108405969169975026968940706697531779584153220600420092794459558338543339637731511382658530723644034515968027844396609077178839912730541186338014315574941212211368515471636369530372705869031492520053642565918797235629690581287076329027304533753271532296036405855134618646744578670887160366389309779595131243384863423973009821497901912615936385713571270507449037030609761027959131091677887398625018847372827927241079218408477220558265103462900949775850789123922658426654985896799563485417866832052631255581571784127906368520325668034981730135800551464191674415548361340324172847989684811524372940794786310248540977034970257293750441160802907115267413093577983120135509231323493987884625269543151774292787200312638065368903114713460359133947040903149624933183430849533274146655050765290801014314916891280246641420216769999050330578282539349539462663784767263229259680219056686731989748019999826372546322816129043761174266267873708440273987730779883031346533339139516230247031513834866676990814869843459289846364321679695765067115376957754468052897132574111501922841439611231896537978492060444275711372564353465604499276236112433489520058536798028251407878364993581916405741286056799039943857941153466315013804195356164465940610270019323291367107561041122070528186223650658889200508396758874930245524838152801395348693536864426921869335345023849739862880835779139060072921767828300031862096403927956954935419387438914929318074328374233247016864208942816505384622937369344103145268999094678973328433651691640406670035918296493553362879032383944773751868576708398570811997257770044099805340727553762317438725256233689409976022945078937287300210914845033830449954526591024759376972647953331059221800308196675879340370603678259254035662026770291379008354968593774584616448973890738164547478476744152600494558483682658199213581413987302014130220667768904653533350547519610911905525576409339117417152908778218487659406562975731898165598730389232124568716838537148344449966725869402975722352599963713417301735126665651206157212575434638075410357076635446027399679000143625940914518330743453374649949123864022238687446645205152542088561027812464274486832919054594549782526479780490621049552868599937481274024336469902109274489373719178418720012246364729883956221629400184078217965150990562585283112408627697605703265418098479762899368396421997535618493895036155779447160032201000347298279440044010193159898701843938234598674987180228831988223370594750748835889524666364888054027617399226621703955706549960373015381718098711431552925028455136524928983633289103654745606920740735946328734239666370576244923658067214352778125982164992774725502359466290087896360669232868910082266396519185537261939194477287643654961026803907812431361474385484763339778989582449911588771579296062637778403371663800924054889996003031377206559491191220808704400750446865849126591410179697014050064090417735070384236315472439735115664340859469624763714268942595405831196568199735432360804948390556827370655181031150805364821014107606916564151565900692705307621617904245953354439148200043877938227460157479329948536595407871019759184128036186267264016846954939538795238286240739466884168168218000899231839171353210931745265420437560866442917186199862915087428331033607232723955627075154157655908259885946037410155774355187638397714198858381151576214196172798543907148823637328737563431359104902414782396640714428626442842394990408926180107728148632745143179083404605485679596489922945278683136186746850038727834868242345741119071595344329626354939450038537163094442241263161299217383329162638318173097882605315889883378163014492753789258075369656975413006249045895572812036063698557810071471875744366115871514154359804486393638810625878962618414473324179953923677447394224990835995213438645905730006762290106867082965451095421358793481187283662494862552653980166103968229269028878733507472930121526150058821938987955635172716555266785358638896265354684895516018273160655144271942485083481644044318186938506184067197491781450174944620759668001172894437435532055620999808371505797033750730035647938145757649139865416498114759291968833693015608757417875839916513859875533193984937073672041678013131604815270543598062207953951562562185506902008154876222211836609941481414545805080426176365108723035759371048388701843929763247164404647833726171895257143193364471405979277220135815597675878583793337266115536247762658911129451812705083382935344688611150129215290716899988150491346538693470918946139140515588632124119980860146169089488138316511467096860740533342050353112703648758643612036168555893948531733360499392335979564972925710876749659326461679038288328998606053454275553104854687226949355442093370293511763636652941751098161758461543740390990363917096600904396903315366302360640364323580959930292430251293967688073496918833615828514099977186960290343249373122749612025888481457840967009571981705483144566981998317872657207871663360297426254849501620028163148701369023593122566602911899377596580566629817200686954240009330032785414500541846519369658127819500930040646350871760138165975568975091987418835326361906290298932033766291052178321930068399849708682706792081253963890835665665668863793705455396266623953192643715239792568152322320422575012831051993561417824930074227789609992543273806578375253741734314757867880868881552027369868164036553327590495694310906961868055588179979839354042522113285553981837419469069068225821626562862064954754808999928951126537188980213958563028699614674047079752438908009118232004305745113510903908031690805183409391637307092086890297062573937995849209593539337460631696025603000450646755574554022240597710077916638179964715301797134870677401243306285064223990460629295271641481942620703259800559486678628337385529293053590787520928156873018094755332969018615677693405913589394482369458785189877541452813806516418385986262079599198251395374922967471033588981605627446788855477684631446627164917600353756966460774915365864119660411457082163104041344768314802465214469885573462246640607279939573624411128237988962201494352345280313253219363027345482164684493784272526681266315983207539280243286416296577085884495332506077183928433657575200250634210317064782727176388666082894039641173099182389989772314481531594287295935289400626614351352754987072900120921410326210860525890702383566184879151335280801679813117201968295732621007387071279426536117957621959454458079079186811201251295460504009547472162780903422514817825994863605802165431986587653696030331147976615204796362775391911050821788201339996087201488799555675028739620620108400041236745192557846827005019539513391507671359200869163008936673328964341095736539315584239015516685568379179142521364389910328311892359731303643378552032342844319377423795504133426261277837031056250236257901450054082082300286393958986822899956389325450057481128620950385891780273767179838583836463238944705956822991232144290308631205862807596046309305910537870675308983772647763069835256951276781338884637013195246102606376635585066279493120246178173042999615327019852574426418429447474892572880454914431128318663386332883440956417029843528768471958511568514233656980486733813682586032843769376040079775580227449640910273124991598609063350762655131584616955311305799925850873445964748649606478234066113455419274924304263172844449698684072256904780077338195136803246262096900050395268821713201446750255799112294531911890654166644350266106705069771985241007616363183404660631490069164443123435687061929853652394803619388566971481058054073845368187035939301936499170836898781119163934608937634052854646281457222987762412015872827231658223819010784001639404719941258710864549789875147354068930774549483477504711236015960191173364475349167005669876130118715605285818113340605952460185443460950906033285042313867917906649506012788733586046120944576888498931715041662403378888147139432695488589932187572136673321324776756433178385250860371449047878135355742636985794642415426034414294509649700953103028220738026735601850093685803696728639573805952584741358237504547487041197575483590107462149985855339555355099589237527657823616803288412181958636501528044118017875998627380959057742022979252030565301321600115969723078037530922987335076546723219394818690993064990977309877087132053686519159530751079004811710474517605865012020871859843799229176542781474847273848031111678460341962267587949017892392610399731602042232454750018903298946360639315856489936183956583067098485300783812397801360472576770809313382853410918406973480838901573638756572266973062455202191109301940367913537375750775145645281795624181067508439765982679670670792150187983594368207233419077032697905355675048610674217772176333287335406225532460594047845687125327309523902433270082468441685722778671587888618754738816727132535901467156837723204698024760174168359740656210771314242670162137345857621804670701075224142969370689477778545744042769749122520814255970764490416316354035391376229349382566173537206743964412347138989450045541941357769176628009542257108140640586871580518319759552479299180432459901346676545000141092822945037736401463970964040543381794458119428541642084997235472067219145742272521471259610371222936176666248396526882682771321981166225455320894664020288945134564595724351411535378968987066264005019220901372128474512212041024691385673742621406115348874448698101763763461093771522908482595029513145399768468598048642832413644737838069382570460469961406224085901158317240417753015383018656786451677954277687353644250110461143033941485484868666001073455312035478822792792944876666047560189148573080145799043284472336637722663728905201143393565300822879181052327389780559539607182395543019555763534801041235463527719958843785243045238750264929816418141823874234243427753311868620048432455234577230774400147411645124800433695084317267122842062368227225855593744130445792571156186449716204721903908382897614475273710318280120212839929232389254518245547567307493350498281808803653612951455724575258289060520502043972276269118798288297162639228074179998922372321142171996722493200805039416642309145728526801910211497441431153780878155825142595005962714788172413240030919349902572629828258365898415845104644544958537186733333821343575938029575102397528381814169572189776378458977565155392526916857279674521082004797215224127432569764519341720688433492207722079734938864071343976594178505315847813084230656025758397348304933593774819990461660551863494450576572964834113570828034176656569234067726434192378384056075085918798559802601719417282135072249000890864727415282439193264002090112925031642318958891327425030428075862286436668382269581909134850088545098476513658385153309661288992603863437872184137243825355945230780360814363597030510823013741193075915808248908707858398777730651732149588079606560401773990711857266603892986228765807154692189795366992897037453147575638253942742291293433558556492548478366001630714484703569331514028595931075638216399998502662178008717225910185014951750004282603154066408633063476728997457867088191072803662078861045418750044911307074737502443714133391855649629553908022418933904384053678970854877836132797471776654957045365260986476890983032890901554339968574423053096225297768907703950681342037756744595053194609302304829647876156576569115480724740304676073197233391248804731746076822010711156148222563334761712663289293824315861963167962964103330133808464490329203829364458669059151163555225303857110036530935879274024403512767310796079337587720622756581067331723933783252531222152336479353835110190720712011345314236898829847002968648202014594480068975732838156437590207976761934016438063221040165811616070523545117014267010096187065837461926238046147058283012870224993915923515106125742815363265856622390777199998902177147212332319882664020748636062054282919856177089147595444079248804451750822961159099944336093431041789041689585307965599304952056825911505138006338614491483368511309098602292866105400194639227316143191253551547557624217716575527662034913705880078123608750109595546919849821227657177799348850802408222300967850000503792543280407315902886364504343482264576007695346694115346360626948482734376935926116954537134009645298387900323629486377021427042925066287979635083532347568454256525870853444539761940237410146786337544055038168837047593139347775454401168204180447833029281306344733361031592518489097291174748121713175377179143214037586971095595618143846747136254107679207818118963216855663413137672989916710078737820439497094794820528105963277365485095628439456872158156596486902612962149644632215004835355457504494847136097957912496430544895883737677415582608379185823912506921766554273334924267935767071493773158957187750842778668600145863802646024436167577071495540313426712086161053896436101938082495127683987802427407357638195395091189694487958863848016700353999105658510621660930816459304669472988223309776212712772311309026694688933529052203005090208165638523356207213871143986392444110979231049207068418918690004353191558505458986117743863889510783081549143112872771860951066747172953608885310412740191293538593930110767241568801178353628172105947417666043387587869725100077748979964813912030121426704268497312653714976060709941366793912048182729700140868114488969997879077417005865501927473399631658551380870189767429296502815438473227142544866078021110803269577495890981437833046840410754443403216553727286381568187958805769976956172201878150626683770691436247581615251112451660454018619609399812592904899534454496502489590392151343302805840806224515574381157221996863393454348834528228936318821487264490737903513273793573450411230653121969761802557930932295224639094634418312363356684280410480711169683111652922586863736868846001486786565095276984209722505267434832590377527496668072724619822629462932620572675837214487016631536340947205157298065477085689645489766787165093658498347842843699055253992618666179178923070663385873459540380612750594093666675007186816960616251544127930310621030949050719891021330151433229421700131545320061621194524968234001845986247729775418920843107754613319886935307691746592346055737748699677837997235861671292614149377259243142167452146107044192255023880585970536601220254874972427768690177575055509937477678104831716311144498898196483769695006082743470056630267776848055719001584351055811602591653606767311308161021181999254645713261193276009159314699781119264612529725161672699072549762790252990899906740600884050899870746090703593144059544069693529067659466895630260938795410548920107430945918810049447444949807144941688958289396625602048365758819118635128803074409016229532148656391621246664527570690414739533637323481287816264982149044592187739379641947516251347394905163129046787158580872079410000581789569779902183464825149414589139992380483981945578588920308915944683515210067483163943395512794710489011870452590622447293744064552730856345760281597985891377725612867654529852424512842453621313225068497175168042836824548384492514840682926311549279823677795174834756794807682088518415290588092237993741858610040576812895585834330358878608178171849000045693045593370874839156017311633959335133517721511411536351320682978782381374501681150234514878256167437806321930537732532776257580512728060838203039428063319490397761177920428563559432950726651564498025472146136672296055593825881335968459088876430510014178536227272313964754590406339074226797109877973156775584500199636331608510868718480328593201009668649896099259468943676596124576356871495269422514441517799217275139833236357125073758203869164785708612634834055621355640357299393420227696597829903206227811121208185431093085400924053412926924951862905006725298088309950173381119210184977799602292713118874453150162495052227860000968117591792308929880747508855814592478254538908483873952768556921569440445381500020184434698869525749637500159855727525492818552152837129975425360146383702950533653460683236720704885473962876191206786428902612680599150416568677543273046840738126086979352548175520870416303491246550134137189260645116627483630957296097855729638076087731840768818517547228911216185142062479814475580469499745492779816462081719913602718059231138772817000812973422425021759215403619932564374572076521541497542718459997080622816377644519106716469773872004937636755836093641246468707312277795309797098353018366501315969732051790555501493404792384619474128160331170755392643148346984025226365401373743062926495776897616027711676511880113311975720310072983291034465413801450197298957435074927996289920911746731883123169316735673639955176946459637593008162528912612190920849377657049291855530645523614468306536688440380975605401024995472959966283575752025840492440829230251669905346644396014242441280870907906495386125447358831743422145712776340317376462021010677334835447893392260139098771823672640881730523717692893087630207768438348169673886704797758316408367166970494469030408661207020752244638279350894138469053932535148327219937549240205993457958307128221940580626462319327847576997143491726761851127155317600176575208542659710343598792116305552167817203731967614739683536298109065197376720119483156487163141837477798678980855862141286845082725216124146414062219852401229568623995166898333218460868116527189020049202613129442961847009629195628486915766545118614668715776097244412780117837409536582757978270983741104936820075904560859644599030028052007214794279561990147115314963748353418571981551185129615300263629087795930574873852024284207883233260761077488134779660796084605326262851029443040365126906092838788978142186503495522379038122068075562745370562879032210567654783490113596057547198979442600869104831651009699505184776879706999687444569193882314730996874353369470790805848087276059202952155773836450395248504814065505274150955370555341250819297781088982918456521340832633644906066975211719419661611005314606263256724585535197527225371671985643756288812893993033431991059926579591731937935742949501997652858349011036288654077664818948193585432283168064573531941761558006972851604615607363692746894682203594778349131734633542164951250665507366465757786233825989497508117957850156571167047324686466507161331756984217605841213878537152023811114938568767710804223499300562686764670899011652246114262352542342937577835842509143690147905458817593901852989528813801545642938326351489595985540654149000477451344160622165190396034623457452998988583424868811756330952225260334934907514332502300717918896176577292201960898468607437172939154995888663804159952932779498243372345061315324130585049450514253121248690093528662691275204868417795214734868757959664523459187015668491157709143920849579501595206821240228649381750655183771323693595218764117489452872049438721981563695783913740899609141556919183619017460115714858000332189600010393782605532935542009320010654464932106868469034902604951345698701805768789741115412692678384557980705537357923819552434935239518121679255404742631493363202890201643465362700303051939766951420660255792428872258476826167262925655656981491958447274473102285641966170927602252695412247879905929691193004057948376495415362849065379307041205099220024035539550056963442142366948928777410167110370704311515693488952736452622870552493010699567072167242854501044182860220719796796590204477806532079081888515854614168939430553234217991489347682741136535637638384774263410605525513098065503524504025015323162689868534605431058718320057673356618368975538846196895566405460252695546855587121255530314953199290231697221368823356220685920392909457317037937341481726392886378569839444336105711025502797090007931846266036499912229706282825057017229154501902908220175525921001038022124714220354841452744240659395517666836472021184240944117630162483295911863938807453282353702800853711605056992616242354262416589095144939236700455371198897734220138552325621968713626264931474013882221054290877817738783188812035171309738198792526925513859946326576705042470809579341923290660448793756831429596467010178686068120568733238157881471512690175127200635034559322723693414231829994026440735524169039373213146639972202410195086674980487928285585641132379865032695160740571400940800966050054204447961053525986289586652898638027708960089090291038032025375342120244314612303571054475541606704164266193837955877677046824465779652742465672349903800817826613116779732490175750535852181472677172622421975801125503061351897885297184780206433631316268921452189823130390098477913643757731408333233736010801087458672827231609549465737327934201979468958902144815396591258930303047184792487990984220024185677300518392873646358335854711492770842961912911593408076752919350598345107003865307916577176070193757372490918152467074850772510429886658589845555449292913285129420312711509525909593657710575538148871529229219731464277312852181785444685928172141166090272008012068154953925038184247046336866294801990824637741068511840645289105636012092896561359400357538997461974664941656010113721629145464143463398278229115667477635625316924265167113309537030472661841322684542560582814368072155217412714234567049068199719251963955132396589337871326680846429130865491618681016019512424336981630706393455279044846635301683976225128391814417148884224628404639673443204770801841532547938295991188298555039332129102817897797117119069063141646211112329392241082850683300187661761180882950837657472415808993740207832019548411444042277415370441790353476544817679252212209467643649713855164502222932580481813810845942634884908116946954183838719948134548292635370490022657920790782993903740309448712655184812854641978198138829070966895228573933611815254605925575041716539349368688553068430577044991489591433302099856086402728467832117774830406588334394893625677549747839923037931922195990156003235405249174169417302355309627714069017432456766584116181642295851285112552540645430087360741821671855906468824495464549136638323588465119610699058705158030681309153339607028242215930956079915223612726211516719759550981478172886597446519392858105920241369263545411442601905681364221859257905785736659615875384117243988110777292042727956812583802344189516373507415450696495609486776944210746240624578792837478327785058566950147111095095295488089476674099680525352791454313074890864788142206799509910424311686759646472202431746392719521140923149490322683833303977884198162222301917373921236249230665410015957991744636681246044807723192100049237780734393951721564369952240404510095044126535945321498873686731343699871986990738613230452892112462805982269451648730889644187496282098977171919556925209800364873958166529615615861359358634456681962743571460803933356340823667403243075242229287224877049202618312205785063658894028203236148174391521863590190564545429366353660750043902893560302664908319396631429148877491441993683546687633397473168872268600230168572999191545903549606962610548819052946547011811339542033403419187821451497407594550485999251491996360200732918753531156318037617117835735187731625213609545804056749589787706893747788380726917471493641866790908720980694311661771029583658530965381284130281032523508762919551085514611350056312173351159803679996235858087083670794673493003425389796161638287281485776194351986591238825508879152468004247497909786298142855002189291855076473066851555467323561496330391692230237432293182298795427145516674930274691529479643343216937349976702037434114142918186903934332680910640450586615644207991710249947411238735053419934194701105043642821093179416915547222600505267396327925137974328343387543896643329211910712051686380251222163343861808130939928684522202247520097208895641246158778146287688413095524455174617960310893159501497204668364542565342851994430041773046748919442413712109242454381772757975247886875170787761246636896049246155966104209228324567568468632425567555520049295108584264507706271459496111221837988155147553968558463946603599586698891633267242257032631423380599828024638249133732457759341863687563404578647637027378693581900243818463853949790986479311432838964041962969237233634340529665032866301563434777753321521058496342311942477194624977237865316608178316781762678953400758439527410721902230377081067266443402224551865540142474581137246897148651643302615279584782706706750891333891799231192177071498038147350267398533396175446147624148260650465543445916219572399272791646733704297915243530223081991101660062688503646443475308378312194216214446872862077159092419813382219142009555256241426546315239355259632360077050292460800278194620021850073820039352735289032538225914937330833361366012294885865867318812620036123688911903526009575945587380634015880635676213754137598490150629910934984012369957387975660686737676579241299212451646433181526134400046215879061642102370227302955285926791820985141748468209704330629134988300385730334807689189430283647107525486451115503777528415986912651388494646494511928360694773524024265276769035970068920113725651502994024421480645431552899389411382821971262174773955957388414850991964536508975971809643096455701941541594161750277185401923201949890695440028550916017140249392250383070217772152396575278124970088897153116788598114796298423974685813488845582807052569223723361895226309674770174608526525793949391168966271839592339989941109379537638904279350877523749194552795788476503386544056222142834246556347448733823901687948195927098841898328169489159975420897127910215888352971878613336132884121184768288224767087898357821240256096886054323715246700426110575703967584491331914637173023624990183361247814514656611595041419710068602642347244225660324246380147570629433936335747929605172951656018984556296802114896267784062630374085362348204525889292011263046368376645936852932945938253056427755813099444511274938495759448488342916534070841540359869335254238132186229643685953968550044318806074549002835838965553796262027761717733492959256522263328457665377227974098198795994646931070580812979056720197934961801039076625319717377402357794901179118310400389076279631473128582562380957801677039633515752569772409898500911816335715863663798098872784895777499065537810045569045029296222653935608187777391636455515134663705217501362972653690153115719564787250077783814550586459268603053212415499920396337677474779667141093530530246861919292563648834417525409545642942780392231444060349281606241954710301402258137758279712116034289741734364722881294274074684386660882621537155206764007930582973545453468284371446721598074020920397984616784770895299957971277852965739014642625164029124304746657318112505892554150875782244962680001338147869331931768455348080266627137759306487374956140907972441353429292604953652372179908510107455855259978685728104382952931760668424428065428186176724470145755509348745673447385122538667486135572089221564823587631857207168514643755999718176030134444434092932842362785080028212083814022673452159515870172111625742376252999948203020644797790133196386630161456486887326984885610630828726545621193523682001901602108187818872236947997616611600210949774143970422920028478594793161713434191739358663539297916205310379160221204338357811596256711027105539303894799906434790567777754792283777919071148816517739252394955684142504868962111980896537641786872160126762732691737772095879405758968864331798345819183067615208162384668175350142319001981632559631099685408892724488595844019619746781862229936382694172007843607816045374040480375328600689958022170142578477761213994268184483176038224396615025925917783886142125889105267031680133293204075351949798692360462131898407941510524901836234588147475639401848239613581946378386078619365570739008780678465547639007279619938789615251197863834023042258929370256823844808132861877926096994703380951568790654673247040998367454341525820213995721539926778741107084813979945718067352841492115637752761546169768699236415522762434284794562326355456531366658452503892740082350470040775222488754198379951786684938699224571088637148589793946997717983545993856076345248082863323250145926751802318748815943560002465613673458129345002638786562579578432744714772603372314912030259807681797312742310726010018974054433069103412118217118278972687469318966115902484991102625227930415891614332045641639609325896678664398946511687973705414459802019082341652608171597945224123799710620253352503320395904562359170163981576094579651784599628500317728142719935128944460128475274243602514879023868265582806507834127752237665294753357431638891592864738797214973401680053854863088740602551093613295708584050406543816980449614131095864898301473269921054558873695594078860932713031991279214026868889510968659355455764766492738122183777439422735058608190387118207223086748072613590016241216974050543630066126398333152202739064429573727301654436476940647504343541752076247132492331157848369057317915292716919537782250465781089074049993999399053257316564725564669588609855324551703528324538209280693216500638828626938148239653458615596604749297924881413756262607780529824694906981240969595550832520476913048239850974991039414953243562309199778771672820033861543553172269842418355446034412883872592678567678495700612680714536684522373121118026166843019143519374063482674815533273787815514786841202223118437147681991961876082905469381486739662856188247619837204910037042426604905838026126081367952957293205536163184500827450986716705739807051366682967605581420995802222757254529837620027790852578541788917403318122308709746068095923452544317404687781371209469824851909280207633741435579141469257071239375197326959906237032372531311858775103330332179552119117033922707401558562981627930853828571118898336611868213062015288423005183419903258744898752145684787482732604877561251151142863060524024433869072855994733134834098650011747480810575509715543337121262026076976597103265001523640442131875908910086632273484168084488788764413481608492916079770412540383298864998191943761645458881737384277974920236645771370605835510069801360070653464140007868053714774960603164991169887015474320403519405215538279493828270898805456509864653059070113720165575273745400685366431931015214487863769724011107417779527809861136499309044188036271817062569733885916817543124231748770022724768804461698965042290856938294420829059088065504214893460493295413034834546518381772633370887250835357166421779306435349900722177898962522466663725319235881185982604854385860985763591784714456231416949447343347496844804194196535585212076515355212627575957120691106073575602841023623374842616970686081056275724633173344641294926727316115163686946021871464845270303832070451004508629939996304987521415708765482496398432748248593029705142200325453706129267102858695158652734445575760609595877145672727924075208161690511842980393602596813094566548827584600645688813435220418572411439279632964624326272959172051133092138699312670608258406875478081004095405329089999071247765637578381331717211559338852697670460392047388123747283343538724616809183763712616756136479130572396426403778091806344265806096170351178396280355045109541365581724023639405235539469400325083240634998817511910630486073000582797844475134339285859209900740867808130855160474723618193078096537246715899141483533388507756839100830363709900211466348266020299118127258385533929222029574803666880998276463758606245444496289841428369439762682746876986484058867791415665102146578507803090538953115906612971105892114575680424622474812750807401612726949543552572581843798797264737390279951221168645415339521543113410920601541943883007292273688678333405924691479900207198845312476146690083847709794644525867418577493667484079717083504323260651644877748238247548982151041046107606225383988775761486411575860665459122997571010273641884511971661985301347306150397799668219213748032952448968291080121658358071107748248365363551636836291754381315247602987230226340607356581788601358900400634870417176085048510534822609732793991199661167602567216224541828341816969929609946386473704171179570568981148038948966190836912426953748085413979866319333398487169078819006546749432130245021692857171046936414565126086376762336611968244723463106525712059530170261663591406457614092256860702301624133617294424346776568747548681899445468970283612084714354998811908313568393032819196872076005105953559728671981331896629771147197184275893681454353639390442995400292837077284606661012101906611558815503831817568901524694365921171473104433540417672348896300717900796230659776506112633701452352797022146574598436039327435527650484220379403494577307134828708620761036252809894586618198877599919639076754148065312140431395236290899168426223076738251541318155674566463458254054631848392834591623577851472078357325784458057794197357751085297920368335043065390654414926830542685944639175446449993092691808580769159564474760783286865248274748410967494685019555851588322140166832332102284018026996704701821952183219550532653912569195729134071778629563465480586119001323959152119006475324351814030469568937778975699460200269248643125274559000005349097175200666324147618770528785386752005608774986790096986691504954334026596659507939130765903225955596817630684657032926617091320863331881488956112158867910419763784038578079569734837877895322210559928858836430124199632141959506456746443526555261871510206650724879752727631479269380182127995373448930527397534338238142664661966033260496522123726395653861441352117107271880074504060364382431815080062379007611856571568222038582631414759259809389214481553047672713305428062847748296093765322535053393708403906732372545830921441997801177938273955195999793606808434231863902020005976952564426174337877618246339628787183778898731457700561635015075720389659300867754015310089614368552548351665600086532955415243726712434777217597419204075213540890112379406707611121474079670478493306077304973584919936376274943919596707130806468761511046079228111140670135732786570064729096072713208974470821592019415067182180723529478560562717236891587268897443670473814095107945990003587603068868690397525354061170928146379030944142365518503343710999953868367126264596009818792682284943294524600908681779525349914122097901416063058428813104158689246584270375007423456468932426944373453054164079880973649629511471690272690329476660974013754414298131738783086489938530043629315103173294863194400291430866213451679483322263659721488858991703906977556549454152241314977151350753930215994485444251353411115125919167913363428932295223999809196698361778673432192743300568289386236805333303501567162412565693885325806104637177753737126682496450145814732181905345792288163760540287315881422604414439617813018164948864967126137359064415251798342074302925656036741066815321018849765435289309637406094958284612935712180847655912412780750146333090831940395924132880510405943136631001119344735534599346885510039475379510829543062169343867583407139676145930332377492187163536143339441437858118644544632686080878927634136665749377452098887787657160791671098944419130616653207950387334123088318389144918611302015739973684783596713900994958140556563539818498892580286175305962170138152202106312752207627422627647813851710625064203076065125816507468502411047241433508795074083130538022500023647701022446605991232060095592053279081867952311649427450215300657816034832837344071903497937371956151023674545388248523030636246512408305720370559462670065499855028507333125440044072985417317041876090674736468376794127972193094936833363378097696357751968882615507225105339578013795259031393873104620125942073515801522077476381426935317704047017099341411936982867928850788421349823376076035378233049456589422187250782638291265988973828835971097762962835324082876329383764869688435761972904321501317586354466048467860895146868041415066713088660132926108720840568321531410207286668978043664347212361402555066778718077833685421385068941038475071886929898535182069805389095024274465270630786712932024645981760176622575155209636169899924614536340586329584724702671853968051880809862287937644064450299007350847494427541248935048581225202122824380331114111698272124824035337565081274888052567643210236082835067743661814220158652163981237106257718531216488293953125087819763883596559684483133667407339336543228743924081095323638545544161879650907643353195834616807342348656804653011926188521772321788813672436469953690478473733540134744275614673300947252844365737957906392452353956015270554989031473537314758617294403928974708383944107276761245563652207288378028224256268880774094366006400272232617591966698207964408332374871141424694324806952236302031959802296062862033865368229930585448897017695406568527147619863819135265221533875145823804582265892826539665524353345150208120312415890724020278504513912370381768043015183575669780737288811885227385576382982768464186409891534509940277456524179189800502541684575057905310665682024858348717090595298515980324598947489071525096541378994654126637947684944962459727440111319700339153400777900162081959707248090403616153136255314175294110668542648888382205534887852309159176856798902363412398238425618314376195321611103848404561288888424958649326863388474381101837570231090172094854781416892063167999908608356291271567581169451456907061917300845073785895268798216957892161437362353493808426885504086577826188295653673358803939545393596211435916155347779652589381456429767717582083496510077509650614820223289282854053435813185510136650368829563574790801887953914043699311537920281605721008414911935746024253074847855187899742491589645394651136327209146695878604988656439618893039471318199185428205819811609892653233166818898249564806670262996187835531700478022523951361473150285487176989822445937202876071914273735017905978403118604501058816559708687660600568987238874621787969111720141823217450212949750053590126243711822939507212806774165936729125270619164837595730398183586417088002115075755029318361923398831687640121250693664643072275096894001511047604279689670857158827114965508238209300224212262639811746305600588351504673397734635353320986382568298349914476314520769566478187819466049163566710358704820421147703747564280278204202921918529603937954980206951746368149955876526430557688065721774857415320530073249557473314415521543738176511491180454066774128069340763131597917763432976836501130561751745061930523544145763229868862792894121397310749491893442044600860728250175575476547768293598883959237488152931153119994411559491271962763216068861163666326361722506013009642924265353824510611234009380273968812643092144190080753492934563321092735584044043367502943421753430860251962105877984177042802361739471134037775289853192964508818121221517174570366396111692664437578312457895941537263536166417546810147356431855392471977778083359086056851450001726654379917827983429385227106586813114937044795667377658918619151741489216816987357463013718575662517871647635693354694567100982065078673793779339050270968602234722181377707075540832581605904938386893268754650269852886776232171799281204382827281732772765960366184686967163895767745424920964706229411691052834129926378698657258032922303446963108545835591370671586256055722799410547602693129827825621987810687027422633259523702080335803793795034662254547549255129299936044507877587079120946648048583554879227497090267061803333292622303371013569321360764873065226348484724871569230421407130074274203885831843788517629583494207875982885443843710378001596100455758542573472649333511873105921905582806010160753916920380139446084659945988427451253991167409882434138153673116718152502082566322592133066836455994140692123659153299673446329429945902379171469475043440400225358100633892937090727711187930101757977969666481424849464154546941950284835273805881305532590528616279140486318182005300524413542073302622670742089088197932636969029873233917786955134400221069687103985579231577250390754665168404660269918318101805736668862775103098854958774064209977996225469254551545682765040126842330016141490527552196432520242900722665276860024771624383897970213038406328055308273484722157860182861283900226195205428580723685061657052953585872671031373415558911725547064889734985868002769936785618591265288524307791874151786918352285614518146689644691672492851580610481888906069013003376178560350316005500705048644616107857288971452108109580946500720296707057295162157705862172239605499262403367909521037000489215224187103416414243415280102004812493360009879572135440334468422641100808148364798441660549443203662456379832883322781845435826928315703235793134232025850354561730301846599150683221335973431203878713967004699002902715313305659991468713342042516970755874864018363453667109062556698894605063315423801530649412988149670038372970932800490487539874238343431927640276719498840492724545319466358972320113153940968319246138655680563269203158635963291161115417094223571035588159011029195455275737123691093198398278623789352272415090772076950280449212391700872845064789918396314163273170953722282856776036301451821261954503618746081343638919134312374567203622130777405296236887832963121932380386941647773224723200453969762428507439092570823941169535363201942201661011478510977065447817746444045669156037804386163659020126767125622939820211505237653698046584085476006178948032115556280702362071480642011759023119120319536069241384076173719809030087297520939684908202884609169010833253532071498695139781390710387832005210822661637836314268660848184615528769684034038902137615248627516927234960968021870436102306276484808098739985112919501434159938158368952190266596761477012129596489771639169869482271556150568828965767035826682450077779143481798892922270660362925864462533087279150013735963896682213541812028591041965136080008370573556874167512070026766043901621300586860791813519233233544975756569298478532617333360810549733605596598951456388428387704930246465569637637636613304981699482451169491604441456010846181385039675100731202653026918501566058662482382850566734295691624341269520000271797160357693169541992686823793023264519103831336424063578420869663376598881854187624575210860588325480334360451499527738198474592956887066093689777797519377940662147713654218499692011775418914524399319078171640867583684612519473604049352091137404011942088809808237069445537605623465400180783869351643257006610899826326042014508918178967079529986894136617251997864941865044554532746499800535260369570015637733512346818927788362418488974226839655475591723724510717046805411675628113245783944807849895840790652507763261819076636126282392622107786064717264674153468213936452703358192161264301679807315811661286063386409672245637510657950222355109905305594578098530842282178353645400013913006108112661138310037110620062048845220156291034698531111368999216924327841634434041858753261352626031521508232381725605166866784646366741141309061140056035368310919172127820054662835321233374207960873184062824143150164964736326084364611337225528388124099452587393778529826112636758914382504589530928693929138399707011131511106961155787348251540888059529994352486948057362028982715719175420781423428616291985770856854011062424607353565101533376827696813047349381922598046521457332858774890972994120059356422990566769024775144440651673847101233305477520374790590843117796568147955859170471581166390344962824634840994450491457289296792514956076692710074293029940808171191604015044901984342197382201315018690765694913191250464053088587242358056223746463293768131723265171914406113386282966668559129885521282933960604901184122491457925805029779325901549206908270463241028094046668284553230141262435721925945099429654547834901882490540212440659746201988808262906736454222741063604836357132763175727891527822667564002670183649298695742071530922941246081572360156607908116665053136660697334312627808797062190958666350093564151312643694202038709596955406923641927981656098892434983853288515920433304793997640644379418702060652991248710304722625658224594238947320566035157471620478648959734825921303475903003604968084632649907349728506020224931414244154528187448083353872534412026808067787730545594945886695136778436514275019631102689152809046788793073045896079051294248588887777667173104516166259329941556513307980501666302149847857099672504787214580198390806123634369438651168612900996355118848639243441379895638447080103696204091018675533076040006022244387983022858994564173440680306647006275831190946140015355845879011927210847838882500084557334685802127921763238232726403013898929461701672753835341660025705158769457917531823666026939759863124695620651286883168101046290349758759476179857339518033269312748916289833654724137264524908003761407129318250554574296600723603396655491949045394316503687647934531204117440733327795790309091144784403875861729849886041705451515648493473188030552871079822294148331515155384661900805996594745188249845298723592352952142556325081947172960909863049243579344131296665595271373616103740880794670889462236644575228571578155585726110719770518613501015824649886758448674496651087116276806246262963966079994286284086065519002625494673693515043024500664239360217802829345856585285623812087177676262925892886618895390720348193927602766811908856199745381337537424818622041444355765072352315913581721607941562511183462594243710862636104453617637162751456510669430662503720722781791680344735052735334568359255662153169112922469816966284319890436186381921208105044579605346769965547351726262178290046823756597861501515480674170221969804079356243781850056240187576037142990140730442421981594999384441939403455915676656786710588220098514606156470331315501564847734318209226601247277623524932820215743293161653075434939676861286333360597715959124259045693082180326517181535981580659493040766217709244022249876012159888490749771812271669279158324295924483671493714364473422184126451022225495623987002637958365115558516587673907592455774070200050051927425830336446599309094353953307763338420938617615461938815181212843561229836498679580832164152758740658423189534519398489376737755909175264558485065771620717851417182824205936249025933127464567784090388050725936536773906842272826827729044155299273403067992966719020886619290843847242980428474880579135749191413465262291618373330257883663953863968337736162132175390077645202082823893284302908643699294569828625596456869057772313054168669134879039994917396305671538985153327911128356096153697131780922094570394574265006722262537194034221734606927254481492698574861212718805444334450667514982488482326051210535512078123373741266708758215551244672639240584286659219693330551057533988870971699591170011083445257688055485491301411242197612411690496933107081342017648417052629729711948443919696145152085481335982755060210265966431998885894681328742789460832108928530843342150831847259390848935078875497990846065831148116650582077349992034520116070679102537072043671437375416546364502608701718351373622408721906434575614114086824793524372425917824795170569430940378160212305247743151890384059009796584010137692135979903755352472202954940926867705407937875819196469568541086442929557163317918195843390825775179509872685877428365067803617339414420913691250810782483982260355760499876527546015047030662461320088634270377049564108506357755512095385764944565616507151514120860775583451846084383165304775826518913162279438165781341766663276390586806589165029503789159163048501680557169651551774020810460444824168785241471941660540393372378937763358751746632532059887995982771518683767167648988071630130317814793891645645863858194690822484275057700667000425840442745710439686857582273625610389073606438189456242264471170967089940645845748507849187107867660410592430481721507981621494874022221704419682393234451026945222321398459894561500769577169914909173759204608191674526015222317305986688479328600058538901378914635476057106603359187387974516767178515353476060752868630672644996842920742626809573722935716945114369752512886869244318555744342762922144135355471034877139615453108955819338248790353995639489027226152543492824982813806003674489406243099634564885410621237070615454606100869322494794531857813079277799930655212001973994749871553411265510180895165257532164875843639638208351908282576582622260040688524358361400972531638871959160575060723188190085303208364738677872790849106400256929883975197341278995122018583174407524447891601667545517543710493701655032252612017518284981645785374104123587068592934695834521166756883631370127949341785614248285289301659848007471322452488790246816566006787008310387013216422208828764517242725615115910474043132263611596303505777301850240526507077031214337461337737135844759453924061097517470318079016262381152671619979332859019464324325654601479527293611784230791431575680098710158977967359806999330662546157726934211700614051519273113894934381128247742616823389205008464032893071328393261026196242468387626313773245413255413069316014843947697642982617359397227295216768259789970985260811230183542398098136472477163060401521932749407918043057035408958356341386764766959629821223174106371712491480547255553943496663071813703139723720306854217115881658322543386317969004344415115824741343105028237938185795073879656878208180434443911487112033724877230389144727970556797326437914127963841715585749047089670620143244420231004038581365041862735555019731303632132144903935918735095460237392464579682660197154899765414791969028330396375430939271154610319480404980082752318418771032909839289872150441756133931474458776454081681040692363128583509360361336580210031851306533884445042888259960264911074301561280738706989772826778786704006897465334706269031811066898238428793031790585451400468953325115276593057469963717290375256381913536568284241793610563545445264462116402797124023747488121031908150265035240702504327146812434560833816584002119169155734485301846914272400894352738125985999189286536721669121171991802748714387837773694955616142132462611099373230563445457658366582390385633782153210658927616031009505183376823900435079273846999846592004030281573105115724088776324217719162254518285761968997730373794999926200293429983515807332832855254200766512410824648187046152295171063244381481205718881616174546776204661787929106259360653046993223573521317035486465515985745040325539735076854110329070171426303814653574025365560245624630966637625730007567949346726520638140338935530792357565320603592353503230080118126487485154940152872029326190980202930228634987305796346972249602475117009121091120355869200038437834156679117603380674871933924405053021776583318070784644616641365256472553576907813962283160547409611260906553011206617035594715451705576990671448949077596272360830041393626097561710907977287507177188896702707366164690032122547590816791568028973690257527099558345969110731028416598458083705477419303055423580395510283954486141168638291474756075239076196137271046992609420563431827930511851950459423949491386025726559612624890273991412742882481736493704280259947655517854072733966729399334054567899812142789931722450465829442185566020941549560016427959621725113104402409864726073698373511010812160599060652435911721826999067658958147055231616113196671883548720454519338987256591822548661341515006958019207506155281625971953470558401814526921683617446331860707649711286544536571608000997301629305239696059765088021820077868033273868338417401447050724950396636294947939261784007188804845065198130071345115411052230309134018053373429984867064231652720203478297210748664419545583274822951689484053840653930425954051899006294900384382112458512086579595400722623951920434876585878491865619406280754085817473050422382902306461843780980854149154069134460469089134524561003191351157391564256508442846929615066508339870134955415616826401636024141127722400032524304040811565223577415467589879109085528281018005387025553392858210732403032975693608029296106437258390200700435121601161046246282770918899188545247342584879907436648405516127894472572466474370285941423986361279615613116480418840090651775557823141036978043175339868670506328321643192344231256112922710869374693852966329927740194671573340002835763415156409708974798999181560023047481072527616123609761961072966421602233449810104727513964420981811935070988329986044578751788939123067799210614556532186384385510152859814257398245569747240098485496819817247529495087419354054122131338884784921243514474772680665935386822664754385843926752377795614285781887159898770414840914498965649647946554994404408197209246658362844319918515057616914418587837470066818892310127696386778467158449221310904000460280991527885479377999813152233273467912153498315425184092643942551598504682040015295425736545414604322957916181466354873946811699245462149699428555566869174173968438267116627750782407289376290410446767023069880222768457574140872416493831266315374047394783787462581587775410560320177544300335849876064827138292017009214639432292719568925661857999083665212377721541233713551743066991751449715904935080123190276198511316474574428935605486524484959501637380365028388890276754494017415299835205856054118013697724581541993467207595524692714743746406817691981193304849892818155998564574802108508697876902899495832946100434164944959291085378592682902255834875563207263162061476516111098676429166975829577980918091444089259215591547932344930662962856484199104888404837873110711431687823168739983720209658886833470831660144080813879185273943053267493137658508554578675605611276481971545683336860711529026171463290445325275614329052334052964143037072970043033436269152853148905768070499962916761908598244151359283360075883439724550979391366435224659090909508541443726201715571627379040747827911732426880629096465257077333611936864972374743804577681376226633185141879695477406023937388909876724212178113052721542904643506049600332536831704324515713412029566354029699307167321975797506000003107262514588510689365807482317424491331586994489770313699642592375736422584646475261258680809779237709799005637907870882326229590050502729045576850528768874297734707501705315880631405729202576059769277472435486910645506064718903426933677521734095425565131663416191381127049994531016599151215503607854177890620381557277962847111173889777964080158591368394301152301435695469782773854889517050770441302882948857272638330092162671869280407754547652633381332803348614326992559887424200307329094222395336224739146972572193787088579180954947416858249475937281166642378856379710897901520368591041948393393874755772056536093442311792220465152708950447094807776734496645626235766923983386659413191561251982472660496517150538871639565820585926945607899151298780298347333939901181076269527011303739854934040566180093896162827594038400111998117702348595623475324675033258361705170012701902882008810628006907261298789411536172114668689911911235537570932758070612959931263695065048963963145493938298427445381253473596952488075585504578450272948822759464055064827796246715795357193409442657537288691522104316810772027892964446836073302408513845030973119959725454284346847877381742281946866270399296756312637620217391966809734962523036271636207772914677324777760257885642040531366503613347420393621368831002532943833958544756797621505996329277791361830472585655091141275248604008520088108019000733626291111728642968657386498920011012917106468699650813052325850562662610067062173588411747581148887815901792716916147749615662264558184798246900557860545624746282866878251826200663368253449839900749611307558652499081149209340490718814426036614687674515996942541972540516565722898276046720627471377641152051321452014000794818967098950792826149913224152688284027165277991746345701907375362909016379377722940290979196800989863731647412371694233820076112960345015530887017280148428311071715702234133544030400171330907228649409228640525480593611276538533296182663874701479004079633382839634601470066964236004728569399866781194869641084487462350512409606926979242745899112014093577105656678122587984297104631516187594596828249670019048972046358140275710659414243111768223097989730889779092914262365847296601799138159601508370555826914377670991041671050370199232054591516818566430200172738209229944300939676762001594589783506379774414293789688618021327125076130707430773868921353910480247628518703356810400368570395284063347429898890365661069059685544545216846086410601615085749098063749955091932658326186608405175477445635867378456999067249304896525415004666003016156187373397496866466482931006654556303609847185347815894564323181029759992326390332280022133891298839723592326742512156076528981006314675780266865166413901793064264615069907040602272036025330068372952313030686037868849231370673440794759134507982545455135951900960156400656782573484524987648579443168958885642371174901565573858162671923001179612287150129032629304750171161598887713043676077841118997374099803750616409342463189020672166376593137071103768795407849115536619898312381862100680660071720148928318655670588408859693174024880613015629056553321741249239985794848440398528587740263956413854115119992795732958453932263844109655843394721784046323525579707805918391843812923659237092471332857916184296136567217406665548036786688016614316673841645553124411764541921384210395568043267053999414195889009019958286183758462533293107991459927277169954840015187019066177468912292745296968212289477425525463622078897926840667114968679129360858967600169446916266125657596620918543221249568711780246734712122286637116528517738658168584647439972922683614602191444646880572097204088807646775053567816275687310564599137909708081871304401509596773076490819876230830134226844771174782023560850852832975376594518563798930505950258665472617823649297797397220639306203085958164906190650584141399852021691833418473685562855912638885284443204580651909338461795898806839365058211860064523103869521306685186586964547808776987923890746642057359532494947973481555348746943331438712666578883517356233524054577450917753103864026155429910820963150867949756900025801326074761875483079314645429882625518316517340007869686917341053526831675218068558613348186021674592268887365417472364371185617103467632310723062207346208433069371354192010460826418201055703740427243540927709210122936163194527025737736502265661886842492142615548759300255173672186812760729283631500795338740908920692212670852750330834921311874064341448427691879528266517267033356328936858251387161269283949594942908108384252278072000500157312462362323159438003212487465368103921551988040360600358973745858612137942966457955447492270337094164641432043561813971992504416827356980581458360021268665704681476170949948010397998827688541630726455937651706631148860380533831082763001387331638551059937441694758802268646307716909266428550663203372286487947273857189833774210313364698994902996799295063604729293900029611860596439921354593927140486300722862839739902302427851700051597761906526540659476090214561307213510470439899856309680165115519072289456223067213756181602924037507018157182517524256210429113848346146453137846397462236900277985478521038100473368295003537985033806238043326692703712284151732419033514225911754236346546969328639760875475214184406668936438983186800805403506759136991703772388482416533191921990668516086891972856738322637705518292855455651003516201201545306642836930259567868604922386737016380313935348867818765539669570712547113396271326317418860466037160832534560155486343060862045045141028564349261656093555299901213194830708719692395807576432696608204844348003022160149037701294067407422314665902844526153010716537353299627362161961457869245363836851637423098593715665218982847390629472296894536344911147151941344634082090617689605892988135037094304810981934898525045071774286208090267730469460381267734761058000545674874074335748194518797892197736936995058099906656666752524063294858206446468185210765994399824224999427145389501929233607940633304332495276567983381480951950518806637540650763130041423257071365329478269166748842729272236576879306285691426129120553795834965695033223125728471161058561186026636298374986904075729506087498927407855005576826849572854075339597729919222612076542256581651717665705543122277240759623437046463348219198262389317524288591517471525370241833604015221223902639675408977794565714902544703127899501270666516595642338212139816434851868805013553205428780486240697024846050560063172561131223828594056839761842375410102373522033530257862964843075448101891231164661566337302907653745541740065956449922916438837351031825458798786310799366695539255725599513052777742083173104291765618476207057151520987918001750081938334382262156540433505365147767500723457999417576719312203783892317427586293704360010295486802187946575937738111819722137580911812607846165196781220875764482778682859352213078841834438136970955444358250797152258281015613028494712240074095436368406417812835232199860150804388883932475178937062517621062984600544732934845636186198234503902631345784505969993095069881566511651319704376409108508887641357816908139076237752260641456986666334496134540534893863293606042200819302184662670536849684885848064037333304747330400608039091724058356808664909697683339894778114649692685451742275868122153303043444057720148886162214477692354838957837254396790192655407911414962301041759720702633556038252759570727484716410742552903905147801362104804344001184773642007707966955845568434998930535682096805080995347518680776353775045309350875814754929234460361751050025932478220502124663213696798241014757653977399361333962698045794546083871963300964490294249818482578603172903519704721182149255326403324934272088390842243770165109943268399815597829960199216276883505319170359807563172850066526589637218849646866562859242412678995103616271084719759312383697701009314874789373169342755982602573023536838567831372912180269406359311836462000556832359138742614516829636804430265498566820420231233119040685520919459714021189965898010878994861248848391093111583875254974059167298826429702558578293783558176078919440701198427623661628898052065480723409307618693075447885104618271178086424999986199422290731026062405491741032752706200121698834611847980731400127094414001465496288641704327733253472342980080447086876629910337521882303142372377590940473173629368637831867398739444919875195473371915865912702792560379778911050588219503530797470946814757193255110370985784186932594776566536727587485307712064274996573925026139891521471799568119796354566404229291785915257191100607397841194886276959742770221319840947702519927884822119277027670467894883447847865695045605049171218444415170147712556342359063630680299830735413411462843642761631781153561233589349059590479054472360616337927883021624417250802174216568777260074642146744325051738032196397538904071225806641649212356187090708532846213489108483499922191801868264387119479237035880023387462809205259168402137486141286902206415599783689138701208280664117157773798283745403498306734403473864885071870095029672074623555740617381211098119445657318878085068914313369696299372302462571614067098770190357466663126343061209591670559708267656725593303654393686715248306207733469583373186977102341716985050312963225546609417310099821306679052744967503053737185343513117324823771400577476773208222347726996576517889896346503349894912014818944332525273108597537668900958923214595012062665044941476688794342849324927220235038633943842170081400429434360838120664809326522195477687104667413677377073069724633931160927418086169080966726304845074193467337230231123586605271607340954280550870580132767367633904781515479706363403125940883853691289157795352706027088738549295937103809417762129569353371227850574474778459672921231672023693931390982257853731331597360338408132847132822045119452006497067064019777186492812485108236614434287749936210170465364294096233424572667083328900634655029180760343498870080432594047220705694023898352701215176221286350785738313719334600714301475600548168017070589893217781284136147565906189497688487535207677014783583494018124532165300795211094518658351235668329819232431285044451486794355280815185093690265213570207447574358390353944621263404087161261197859533876448255577271873545541444607411806980841041895913263436990312470053182893073417905914881441890205552365990428999280567323528954439051143586012496348191555103848592321156865597261670180574705950404266750877174232443128779871878996844215792973255162996651974428626666263890794509562199523404598357478721473285180452825486760727685402770595767339411258640000706932666070692923778341721863281587224531452430443467777492190447802994553137359050864588363930533968546762903949298242222220034991503463979900951136861348051829761572517937969638883331016972535425679293630933105585701670809093111274881937279297293381195364762177512949684509013695687434082126008717710540958420829896687011032441082586464319666306923458042806005399855358086394801973970672394069730332825237376121411685573890528663400595711277421789198731306670205490162426288380921449318556676163726644391622145595726424260233952676064328892936660307065267133539561254308274243337075646837258947638976103886805100817426206071576184605946389405139087803300429600625167567201453350428359080764387414809333292968902363341693169247843339010362183267082394180678211037112865082136387077009822019473390200502242420370799793429740611557817245482800203591987022222662088921071824091551530823931582221454667908830466334870979786994627885440626258279646342489198692403855316857516069933565506629456529076715309379019581662310249559350463563349889044440459265499342162276478384469324517662367005954277210312418429884158126731495402904423067349502222790247028056518435931630305906486305432059268382281915232172644172367205255687473328152519822064713408099024247437991641577165474438185708698857978386415343065466980183005185428735473273643560681387660259241234203831611926314920620413181189475331968682920806636981486184604456367795279837324732729654954273892117159759094631098735290665875209714485020174494891719103931273073981632329095726503658905796961311305121881977697651150389572998499981841292679479834374518232145977835238024420830186414395666791393006272606893260506361127122291265350531879996339651011609600634852104315101552443557334619140780844396947064873894636420362908632298173825240131127448030576919524894023874585081331836333664232143551965886607981064783893639096242524696188515497394349170544315779824681512053044205025836681767880180605838726747177309907547658251563749476585504060508341572204022721112309245964080426636448401747108418412181304941500750507284389670329753249235296606389026714013295315519266596189839861111129975486606563163433134037791818652757527563565110930870885305857633368070981090481832765056212665317419810689349972357219418377329863918332884947674786418063715359189373564618573600892443610097584088872883590674161702192224273726067682667955359315982240718629089644753351309137516814371251927142794865222035880155713578277339581346083457218338339893501462042607634173863299991122017425210574015232644384535600669646393826200772881996340382352828144969965678969270221482349209565352268643716373303843607270069317070584590448060983302087145606600796159372831055155461012364703903011320327715051714851758625287207384476688911621376954379382693275045944651226206822958455805039071304029399757134762912258526288845525095485027378427215916096403450770605153009932410865797761604055270290398241135799990080452759347573863101398505122512239493050403811445144895601858759533225057293515424547145886292685488119634844601893568234714231098469389551439276522786719492361427416504859871501123066896363680119922554447757946906476459773141647828377739590817561796012404481585231554516600135689884404728508529114165518668064559367723533474351212877937123280919787478247739396601435553337405966624901877002551201814099873991750829783661953129402886837886215230655087569305419069539271084028877610110304902452081998819126356940112454234603683209587389588021500125384910136149996307223742723535105155381548393560463293413459596416577367478099791488756547931286622760290334364129109340826381406788464790030880724248210285554441070650617620902293079838851904426773918633202323245378129836996685163519234800389581260319340960730676508957416448768871959576278820191460625466774695767557246975078471063962786019919106994902926558256073898045566865925448094458471994129252035722273620993535658149514233274559981402705864969392646482956406090385517799465419095372164905684396787071702830678243838731629302887852690407997809115738170866593416471411885856669153168347021621575880485159612453712819654971534414024993261984638745086460281557317844605662444970111139107465777504948706371222129731966344226730008055301238654138283249666734958059836845509015311358545408144241159524601578573948794349078880755420698343788531683704154912173202098342065960912196621074614621324561361387674695927683131052811961442505621095518945038069571275481681434581231840091798663244022666775612329033223080793852452672133558006495352765008359404707196666386746152600343093402972165227734429081230715676920968038124956363563561149691563411977601861400523610099639567564206640673524890166616528613008893930614413871366845257797666191480852764966990735580883522141088405122576127361951271012084154397516385351391087411611241813715372847069583547146680938626424969383830935841326531905910658505242816155053339617728311860598747751802504667574502028901482614905332018575426881596569732942816986804435202735243377845781609427980137576110683391242421314214185903168934426586311648465226164219515701017344562510988336367681251557574260130012349587309893802275594901329899712111625763356520460649733731639084648845178651062572896391688842801522154919645493068074130120918888107172094477044886230579003848704845171419619656070594394158917775327820386254317504709784091773183254303367064200831252897975676365335493219072992008236273328601327576315347518519204929314673128988304638018126985610982211454533792677675187189368208918635903101104240343703210868738962180339816223059561091135557732644462978672060296479837710352392274063998671883375715323824036434454125193331915846806172860946639748820352615755664114283558315710778803901663814728501176332473575665909514511287167458406695496641489954369695504952775972465783177192858453003011106330166335856402821515319068761550648078702338533644330332399760290046820457710371220778882636463674164168458528746260205192457431225227013850905214673901479400361505239035876797532977537649540296057460671451540989626323748300119934755060597264762921569169897415859534131882462239697878445080533599659987190580588699059241086239110043357939074882507961558873261939282638318344310811605471585146787826750472716732298759639986454579991222353707624695455669279761945097462886436287171462354726116927744452197123095360575422479201691646105312545278680883801716038353365286694177580863886229760390576661164340458804361178251621074289298924923683572372549480131153319768895595724545059357940387583688231152215291496970420885590837406708056437949889605339872331647746184307708953498472654835187922796774133920892448113715586864030292668819758124916976359465799946072775510707802587287512122436483752295532751141031609448844117540642970368323734075131190214707382535028312767653395428116937678825515329055672344255867625773224262436005034754571208386793207680386524468514326024040444870601081477069100498853003131837811231525181573973340077973729090184793783521248304356407738074515154109204079766156740253495307812539266946092951045886933517163752324517422688917518578798816425931504969257843718647624907191711298353680114370727691128640824207926548665467364925731344241531151146131015049348139393396660286961257819323565384740782732683216442302181463913545376229016120623965495736607399321472067014516511437455269018729924316878807511726559567965231488204923376216247506280422863211076048852585877620954138377379589578116972412451818699338129389815293159574568622725592583879416351608546140979024384519674520576768888464018117082669381642366997828458757658848175344647187744919210857832750382299081305142086142310206266585199548052466063376405670710276273584618735770076607889928907192788262920254979518233984313345879805237759833773080130286284018171412776838940087943778974393992276453718582028962155795937264997748246975997243542899118863705922387030836885460770376639616464784946820733797450921746763874502832385041342460484473163293180065960286361996238530110361058226338252811841354795179684915017005050272769055874300938785349734866978535092216964233187315336225491082206968437917958482047759692551390783306480708158818091748427511408551228292250734045231059637482686264061366799695788520326981399424039750891173892845130395729027241900280751470979210551409193744956343786297257479807567789019088946254266818960624654474412587943902112624030528998905500378011540834069061083443246805680493541092611496304402350459320883707503801971839502204000458646203069607688736950606343709328545818649738982369372032418415718186483235373527557220354784353042970048191096509699603408484505845293334658991109500619226867799511213432609006274527721917259294761935960255225582326969050113265106083715568129607796805535177734035914206014105775331006391693147071298915793853535633259340773276393490335810379240072880657745046306578119536860711882824471070057042455918451404975134495105657198582528403315344803896312884023962375405869098560117665989175061263231129244599049488480510434260627908990392970595402416958186330257873009780361714290693265487627837819239220759248441271126791379895195046204821613260857094399809086882137951196347048373873768233295530507723723522070505699068726359340010189758274596095814252879492044783868494980440459499865283950002009972303252582584898205301657112790753647689174961912212743035203486263487893682698341450505777086502267721136343160694529062065031471074084709846556799969850035291215407956121811396528238433319451333490661790019581394502569096659082300322350777188529005086034982618232064399637513826992853809334033663701384301302978347053045679578943094278219642384928418715797420646879171356654897075347239684037267213807982004416506159556537309972501041129715143508879083311116702697105215322645380185121809176747670251384667749790088930268023004663257825125142428909710851081533964958262947223488296075638792112048939600154990328857716916994115771746128152682863976187795817443181510378911322623233456590282532173007924845986910424838814231343815380491737949090006548013050125294211210015822728552613070235018544230868808008756980649011225922099189304091285780364206230089427200363602998904059581757622636355746624909106713557401938951929068677793201787748689968942391148694494522128753906735337515443969173175549107476523289564089200989174921803589307108493636250412637957351373281071291174849165095900199038400080522067254949589376005881108375691719609994505565352108942339456864530299834245939675109615687387512861176670081808739939138930159640727506279193973875452644785094148534145681958955289148369282065720841299689098596695904446260598599542138892951799808696443071410762977422330704625603402310920381134312383360019087196872647741485802020499539318426058665259940329660859932879145361267483493802301406759694206221569078974772876484719814951388059963853021496219804972307417128827902694271763306182873197346353012484015710582793010988338754489790099570108651471411279222064108597150803849187745930812210173698885014868084020447421128965698044014147507733899670801430125438817139119621436604121493754608153863545229895295336569150903660888785051749964456071069445161018975538347394601881795025048848869989312295339637178519173307345923507206954672983599495295896424262459256082662492186122616664122008947680494836406072259170539520708585914082990842089219179612158072204038600517408100741230314219300059891133462522592669217176009252417847722427940504690663990883325717800243784460010019344829875426707960596605626065828582407021948250607335544350548349385660538635977217767414713419685778691823844741382689827654713708566116155171375720432439150805390355209843099550576743837447280170147070967257573406168285379826779592875617238305217002124886854614439694792322576814667009514336531172525660418334337139052570628421848308841287657343716052969972209505424626765341890005345839839320877167392965200494366211535220366553016422833712078795761622929610582772900192362643778274266671191182641779179607677666892209378314692035979770088655650474210238237469567007202859444990043538203295656835296426173915660160122494285322405763223486769133463895921486174753364897815990282661271494039886529536002074921591901839889136348635950417692724735695195738513767720430560531943111921739780328362570210988029949045545827571528952624967355239682729722081819325030387440325307770389483433303750979439888956812007650367768668412930005004278828415133374265863795694575019377314353286793349144953031828137680300820398214910022608186064343056518099606837358139138371038036137648059775412423799214912005962606446712700900529980175904075305539812633183725995204994179441872525007130303340039062009709712778950549450290134316865370223864283303207462145932080015417262741373352749278223134379561376792547467687410493895455725905105820004802585195086399385602943663800418672711422744477068833605960813203992122505499378482808973099376970069208374025210675050732103552889493047126035871439786031820037051668346613390852619175735145264739829795116332806035681904145891734555875565441010443647756754995850212059857158227888409308545279417648595612195771788302132177223407552651479337116927059390296457402242247223289641043526725810244235523030852274931151375731422161811673621415296202716749825474131199678002115905900797186450976778132544809838461709116076203736162216281513683525665888889319164012091678977284340224358656797055032765542274819369063151299008166498003748185749805997065363777222212618250547270709088729864596634886425393007506600268649135650921715712162292696852903382497395585201831682420978999819492072031205874286347195695854339548932704818472700045712054345482200688655027167026783481573088024444232592426512710578536432807448194328258274018329036214673386717809228720029693803318231915100316005052565232769972648906668705493863737670620415755094400102914872900959083795543744977203106597361388062753774570532473774125534980227383721656787084719644924636447467805215648603355828200732874907663159595046734058257282708111886473749773845145694221867752096254851828050523767936944164658217041101528959375109474043703249801482501891981368118602177245589586791425597316352316418532277787736689310524435004190109979276377817299526859909830375773979523213070011479490919056423287349249404820217620033371905880833542088488915029762741246776744461420740076697186421485730422281630407175011781793708982721508795011428183387518439449879510518913625405174064972530163732043690040744935085489941598709399481576740433381353894650814856907824874143874930695220966502240466025934840541054891837553805449583527393266101005416963376185555843071003440218854333803269042444649060602377725422396038390236598928957040655911913130094003123368047990143127376159259486747366325997680109229034594312795560623557838436613973534028016135574391801974059082992673418909509174627670733058818368771190986157262128112226484329061713935392126542929728229388690711411828587081037565463138976441836366499022421064972055969643177826655460534662737218822815864370551661279785566132311954797437859254211038156113643843841057430706314771714511147471293781714242331051128105774677150029367841108726883782458951921827286526862954042232264105937157069048842776019899967234679501917103037052586662372455358624444403719813355909790418419379647863700295828332268812482407126291707865033973766888484299378122662054204970036538549876679210738926356586247459055201442430568623317607910233494174106731076591643349721373411009607487202506791693358286594288727835373868739265216370403041736647720336204089633827263668343341792243109479183968960132184580911722256941378495973404376603748439319234727294493580989204623020020997764478063574838953247355182141689811280512309270045701921853115201397759971147589677223239869947865421965215017509683469246888995105259797932532726279366601905357870447614274047205506297250443770465180159068072946285267387124568371416910533846989356589213363837785534752424448793313161778356036978294944277576717266536501298359408492232747982554540049928253605229732165577054543418113736152360577387431612756192269621451016081451779457751032636991572671881947508960763279262543963208952477206398348781305660941675696722600396684325177929422276718133564980293916569012818473546900003261629473071351561012936198098762882707149436709897526996073317681342723898156880056503418929582554083275392144104511276128364285923485722865469436420446939510572020628605773953008602736906148421078808379993085646648055076243596511676397134517900504194077534887378483118350085936113264271285052012082399876141220204383414509205053804741050977794368025433781282532905165088195865390615921303655018166793251916147699121701851137028011582214063553029967831211360627423486687937566227314915050409905506928412997259374764733795115432006886667562140479527826303312718276099196266807428545726033175942122825678886686976005160371788378704600708216266877699317062634604550592651064946875789883528638321611439742540682078360821967747468026353727393234563369149630501584016650271855287790870988314458557542243985671884866415731561030672809912002689931971700291391525219326751715686781592064869167189611723544028595167389175598266534545751723395540416785519607979681036254061704899725135831421720817941855763770113494230953840055935669118958584358533945353956225723039235911848820983026164205213414304837267632358244460219116374093171416736216467128465767748953444812552560703803417842197438234351544447067612458794677514898455886650561106195272673568426485521182482276360174974933947769474861155509155317508102874153028836893736268559355214490006447255248733032868027756058400655047085399976512895421350964222718484872900725436028967057113637090493453239399858405077895395204818892149989018355485353240453296189239746879732170482580240540200067484822669277318531320539879370477111066770465259376379774771611525769481244648049382991076084300935919961013639365001760062726377397617111279899803368954224927807608025882766100038741341763264146253200278417638253988558984556338138092597698538225051176061557690378126670782014472110118328100792208037053838880342058001067731958841163071022731793174553356855182563591875884935042250228806141976122730502547721217423100913326354827126362021220941541733600441484487977430187979291290759880234185675960307824366818299465440361402799742362033487253615549774324006310803683371193425378620181392178729416695019705312766200719111658444027215362144542368424830901969355642761433909228779672375663665000270387853998045654359651681985569118870112995662253277243983117959289685090043584768376754010791673663065830100306820789786976837294490456058435106235661766683866048050598419591038713385330204840662409056695855258745849967065911778485064492742158883919062903840817984549815003849862809601779185769015536222002016524301744757739042264803445678061432376579278163976133716300319430854230238699569445815371483707218752578188824887988977566639621716908176902724224594657735931415612171382985373632334931009903746227530996010294393613782275146721565045061322825490181918908293902045855295583552214419508338237048549041496715284959875291007600893617907856091131401064265412347499825144612477424219919027032490916918912123711410026935383437920190841827437978765010658675094288384638193342671942321166895301482795455865058275149048477450095484728448241152632019041139633292073034804590511905532398146054582981046886728951163182515915207194977711625133555691872763227675931795101341048053156620667464581277526365387269730813199882421237318572662665251605596337195548761968012248467471278628750659897472482918455074876313176643327441837078990123146768071296618439230450236908700539582581100642365751072800782066945863657432322833146129099924698719439164987436110788090465212495719673159511158294920423927950947838043689738653221349616739166618398192184952186825855794117829147441609720429568616889093415142855047819381258264857510334992004435196584797153062532878167426962679641392110890674169948084197929877876807474046620208765297661769664521892151655819919138296768732553594954701098016689299889651769036683482252731498574377971978712254021259886167323595291273478779287244838271277786998660638643619300563448690340915602824673871083020311029135932645685038143076503262462602492918305706981136271911806309410491663644035325639922799592362701092144785441859860490617134246906482958243566017377150667627656665049390698821900277536553173438560800225183010858207470909337487562361737309681696252616882106051966042277779705680198814986588339724283646806332487494474988186912679418400617415811192466144427198861533077375482555837480995774695665363295662122041333751975009344381709792414798328735509523072639187407915061498919323322108807557593012998466490319327553520062702081356780238469550674526328570590666034171502403967576400477481678682560872569989131217312009084279198879218734416771635048476010700307529623624848371106885415705393776137905981487848628432644500921632384478083195318171844913159279285849118651898868482113594601818657516206258206043759136032922017868110262963735613062862841304808742540249551257048091172745555810071309519677705899703415102865701393458394386255204885616909170810295186282055709762112962593609179271664710876495065878236564423866702857924797278967487905486660526575932333370138403037063420432406789443142480606071556342089547135059799767188832174297247772900618873601987212179993087274936901972028919024191004096132760965921872361019963442441030657149089040146932021519364304283572671523825884897576392297242155583929892695774310843477816845848538327819292199992039091944274356738961820888596320839205107493760414670362266205184877030509601564254300703296724050665669718061423818131771327767789003386828006103537406036842232604375967238346298246255460751168582811937073931220004676390257996625924681957696342749999445423319709305762193757596302462770398860026671539141067300934963709143823041786206066231720827935089653499539926768551732500124238894562972782340214141959475570656164632195051024140538027461650359641703153664072367459730270561283817887791546215360565563397497098335473416839499313573078561439406138681556617432169026840811475767507772156615261157890362129123871459643401339350570255166717744687912410429140687363239566677594502575298946306256858548821694619511458713227250875055642228817248328181159857956545071360756746684284320526325732855913294183285905838878675861774151924895834839397709961114888822094000109335663972674595051770268198301303078252001176032225090494949783826465290224047723690143749580037052607387899889527880731744956668918862772596205330711307514464286893041972615417477410578694513588527462128873517302446824441058698866475616271496693055881007205245670566345074780057095839930586424825491011629929469839841698679832894413723217134082497087212501803304150645696481322479473361539268204097121602677051975776402750754552494674369154560350020987585647392500000792653003430223171098588891135423172572465065856953660846307980187010480175258280642188313954569870612718173943675783644366178889499050357581903104668121871673514825431311247765920090858012021004166116129154217114871548581548820580150971892352617622691642890328470223236222150401723207686556446540997944676317891888261904564750664133600862096982772965445507500835478568952272703366702662084025917005048741470738052991714842049791879101978467179183577470930817030970022298643121242255595175423891699509078576761793599988532033488017496364592776502927398455633071609150987991686658888148747383176972040931757162481675482259774559792884209936307185278770548302253767917668740533846271089181228927874129246030094903946566726632792504099588258402861911046209907783346763094121971674944556328444163465525052222575386189950685037183918984242963158823847656507100821387091243872599124392566574608350645116337753608769180219572735352049561216512621049014150791906323161715145702528292212550078639845770837248826725938402900291278427041933224592764523585451305640279505574478523099796764307047879453428458213855492202527065692506461234566416922668532893167346002206576304556487552593648659504225857908022076033371505900979052010232362603070745111521288982843810477222894240539417539221715072293003742452795743193497606931534956734129803591474503472260763467867499629969078289024191316745804486220083592628451277855587769300302386473106474808251390497004341419254975982029708935598118066113285889989748343373465380843193259949976057765922286498210365976296346767430255239003792380780039736708392460799024258968724864166706356186594845256318038048870254133124246708581688466947936949532964173663836818304907639327738519492985228737371924026105336134166514716515302436247297196726139785066895372729210741521935826951746124856978804131671277118764951804977823250769720998927311944640543926091549463819980019470876654032651944865335597842583969917597389983757090999177758963649444637744165404365266156095640264726150069214854851039359009210268196158540933303335304855428970721339596900177795091849821948926851141325550069794141842940621655949186295858741539586023874592248790641538608581625252137400373811617674774030758895448845022607361700506886061996482187383917984397655784186050127924604652983834553145611268159876148546926135757722829821289596125533127128128479237713170054166772987779670835578491638490586623426449397240908292956227976070752827546523369263738417957029390014556995685765697260485175223612374986242745960223627841259756698639204426588258324235480321631268222036770075005688055705682739244387393100898354846535432051213363379835229011901621358937710298308112233719141462643663426291432766492117379788809929921034653848830919193150501963774140942566943832467859266116083086255879302095903135001089233506982671122918395044764893026336901448771388050748364794395441455788629384121263869915976062894843233659632115504972689983748324507937147190512554861125728401675186872617361978669120137627382473972286222075431158238858632214917278036526399851706996593426262560308261372814180247895501889376864237729495145713948378979238799433990629818557354636220786843336666902541402958992341813447609889712208699406226962262298350868397075840072076099644534382022226087843567305267319750982174668405599601918400356128303943917765632835084260778889102058878513230074851268784028478254363864940555513382833519830715493852829290792500328293497783265446615428238088318867015688776852919862662363680279698974748034503035939696629179900504663574076187274843649020444253837366639351575786706600870878522004952452617488545242075595089384893316012318384930113678852510454362337972846000244810683146734051471870901742715732879218831854039252191167877683556634047452136383440067496601654923580320616064951228019332820152362150047632934875220022339667667320790975010276494453277028720628019637667571119536265288925287174215043399789601977721951490969227161851879275662075007988747142885506282972709502197461105975541450301773459864138888111669722883981638209269967734026601406702598606041105784216263664213658009157979397250086526624412469677799206053711863731558769649211725482998276959299605920862539320778622399760018451625381140268505935396812102121235253628785283532374511656341876304388432405906949852444886065218450863115557894649813830432821696000024359697274437912482146459032901322511915262051322244160858038368979483716633577042359029122475853496385688360161019508685756235806922813201590203737636163267379823642986056047873980336001289511236703088444901075374365352272566260488945041819757229413206882678990348204108029504518249634206416509371115680120905818294185924417169605624763999859917576442322741156868538926692354839276174086951091964318347341402522599970865206681161533364814914351072218986081738152816639316403454863634363813190114382394929045115864274127968714215148540791528750673127149182669680546344238357471558920399404103429784985544280920858871606047835682347856662034426897866976687867991632776490701861343440263223133867165099503922174425943682554750586876446078738160383809285573857843921704873658884042462662340420208654578585069551924897283814275722475224852753763888690709452763234293300150017658271749831456671329768942294325384895775343228724881775416464005477260830666734661085943869430475795257935468073731683412834541022802277351877208624264844317423221377797047441885626808222738548816096407240144016687033674882908839351756479410760330827604545978193191771137645582660984808010551092074839031573546729468876444576911525882289421265121349571621156014439586230710405584925686632079619239280369652908249509847295569216694423792532996400077548787412367247055259528041411245626935694432123895243909660004452649707640003794630362595082762903921366782744092544201370477663451288469915009104179045908293385618695846332933524288612482450732675158036283802746060708518324279402627040564840113823317999950213189087967624164759429934826580231627029440929584493856246887092443880338627861677490199319704964818977663487622474746819474543636185064120211873474383236578786599029699692365660175056844370455628433008892616233969253993173694409947079696528718445997738575807563596769600308179936713037882355635749611232388683084884736978245824226482417772917099745394207452973248721211009256200360090412776431432365111257503566306393471999736750670964789616754516197336861720933753991335664361445832759115866772604769713020337177403335192843905334948848431680733178758628852522943114307137862632464527611534383076921722991377476221810311375618625713442491822930489770640587798440815933641285116770561455709230307487775176910492201027356738358342377277682381711528246612032402319411146112472192135386450230610153003416662779056832443987972341271364605697806861281725387284115734141436367675855469390094613669215768255128198261010576953113405622762568393343481257962125102678477916560933382169961554115743318012167553338361265951623312789944873443425753962904160244300668516225121152994811653455743237094606360574158677631257126268931692006952126197176809856308516410780042119356809080925163232455834061270869900811796956757364449383797407525660507797254831144435508218029485728489553073705899928603682413337525839822195692249564275392107288345383295121759111451964922479495485915121443070274770531246986387401171197373756971082321721561646114276396248148825358061881783961259828840570368793665405664691650021122548962141855703174720195251302621194776467324373553853319269870898287712564138482951607451193287599993712774220267033404328150905993377582293381061198863156591207652060446135133723041679695786463929706476482129621372653122927111432192178030342231044417751027638438104450711764903167376780982934661682208328257953398485467355912896112847654602482005429687096633396456146127213819946895844970568671154971504309303819083421198787969332431661955158476519853444705373204746684481877358968916415942308117235329550080625288239823197570574781975447158360236818402806808553773185383476039377393318250265447156218032567646881093601704940758656580277496188550884307372468964628886926226920607426307195455959770337992420597801037196000511680476684368348561853113769955550916650040141254257111715271595229278595938846478085937184741749686913150990697125642673650388203109431397231162772138196620266864087696946306772370231531574290217995861184908365954431639345621724604287475280260137161204106119708010771397201559641843297136448311325864577412601749843689794899114806179645221455858588126877327468489235884944307133627888514876684133233608571566897648881211867498177892834893677457082277544216445921161617236741144931263876164825640420599169762119951952824864342289825979524413333982956797142369753496879400247907727202506993293371604020655637738033318661261700614983482557680968414862553839475876597630331261527325183670626003394250019935975624785863420192614980853717963155070595492305896876937508285403607129083691021628977620358577085502545981430753958195882533362749982388248361249567469245262857729889490766367903420274161247509993586254936881874145473263238063823875065823010179477017661782198811769308532445742527851987972197147780439923349175808902161589271755420822306385870406346258720874783350071436123918018119142358596347391464698446525744289233663390572747319785616711373953646030765040631472450369006590459323910407217086776074001307470793389343296756679078908220039770627990028232649423651826965110109278523975156682458662751475640807948011847725778231276713841989258605085796928428937832113592359755989461050094160483326259887167711608560729973206062434266267301190311844959608356787290834673358875502726567737365601938512558618116468808400584708294610392042232466051566867752957149011474948342943374086500487349459441764297224334108429235131132424351795221932650907182590791939785505920632304072982000300799117402617827125269170813720734114726951654830201845704617425953292383625314291816077006331660495064147937646414782747513617403277949547290246543687472782910393770613514780644074007968711399063026273110411044434887576662353011551218028085865131371820127717762813437132792515316478947220407055275283156718704315213158830897538922814513789658144009813448079847204204413928236487452081617593568624920720859048880253381948590490765604787463525892706321771626485239992252474192930890552740048169574461005291832324115176304132853912723614457716410621271835260415671958674991084487739312134877298177806722361074247577557093741512818049755146374780278747142009214052127301935441210617041214666004977727663401899652516463452019457723890670628627023712711307757644975928080903014033839402819204522913282881876464168716719590237809437683138394184389610606307426158022065672829424722117744046878005767658583150595028174967500917152289992146306854572730692135365185592959252281188712566070347172689046537124302374540249123330320787171404505314517845087100158104962687894596631731680911135393364710893350435712560088421997470243142715082024666622992160329105969042464800216740563658622357664999191100100126033527760858094210314490962254622377449514755384310212794982389890721991874169228989459128526356698593777785150343826142167457423131157825992132237919966085565416368480464118407955611645808914210197283603199694647643780824571033933979953414491396094872266958737491999585010601659905965876734837982941870460735674636768545803755909987765283273421535751805998833078222791033179002501198185962935247973248828226516770969707674824330798770162629579045582306085553716095462004352914706986338461355003411219120176846522641725150078366874032353583956911435521235084281170998413528290151634989694591225037653223533663144902805014026771434246051708230074238045547350499152963208422382694356798687799443854422971319114080051626919011660604494105984917084569593189941136482385994133843952592397582152596439410743227356914663243928100475660375631143478826043800796381725422677021479300486153708106748701952202625612760049983345745237592098057224617485411638415471149889166781277832341536049819013093154190616837781208310696359542440267615693736701642745297228859542846631056393407478350529719864243922381437864169753961967833305404180888197125979317207709107275970277468732459173502756767549013484985682738736086419288659460632606249883185082837474966160014997633890465660898603971729058347379491265629455717745457095632705683028580357400691771667987359658768569842835313844138284584674501485197125018658515988390019331052978208665736679403041221806856149431299325740991849664853470175919640844589849646049005275032795627662426946770932906933699538415423200612960368082644413372471298081966993972783495739605994630342850794419329723729786171915351370693640069903768617788218127008300314868699047693298890263377043478427571146302157460430630784759589345445603372809303405373102251813999768958068923410060286772712038807031883078154352566814903717852016031933897745402544323356191081718262983000294714423119389276404377369551971696961261827322625901125316394543652654742424430223109468597803746499956903630581945587164582765857441695093169866015593120958816313155814906425101549769160783923441182194548211476239041440296869969403138265562354083753700587290079266029002774934295673008569272925305400365270621523559022714361976449894740544603177390865830977468626047533356857703462220458661939496123441061815917172367006610414976620359457655685157329343265334225474305758273375489748427659317298836658906260706948875349303724332698747810750637690120084503026077900990995368608915760517155855202855493351560158163816788549077913477774147180338722441279329760865947786153545906395391570909002274191752168585389728432021952273780246546945623830563561502157210736143810365014362288741535200745923623822709207646699274080240688453867193099240954723279684037731373048100481340518643055967025745993016793718501088803788026737813262991414305008868645992368002121288210326186144944300267916484264764455965288505436540268330502407807781058801687453948677046474912977025308919271726650063979698633005295434193703119586870536377744613752039023157391606544482462918237195873965423878252374092586585693934259592027265043907828960709767713357143243809234087256054582003580856562318254163048863814583158215660854543906964153228795553097772814176928214804213242071694984849389528355919408329959253618512614991575037026096280704385678932785076430043763668891030637442038962986033620941602678685861385439722798869021958256278120100102323860533699517146174847870606715873355768013077310079850610992687487895208481322058150149575691471366114558387878855432293137286318295686685070062594553733249371432868767621977253433042066032829762348058881467766077660232559818201455654247856699797087416453318531442402451375830541441991728907467190473823647864762738281539991915613406782494789925526155569052430625777351408599089146251110701691062171566050660331054660292223385891993789992261146576490766991517122829081200240104461505418015674586459951724898419860987524662217141293678903152704124576157584974325223384401423554962476833448383914750493431521050292771903799962427823249857516947057148951754516670327382337346859792706807788899622067130705389928556548723111899465860440277711247221793831922245636756121177304597107488592881808286888532489263834655107681757513025246704033820710185287851493562321544518739890233604338890924096701484202248263075689429358324598634700181475060129203163326443185964699744863430311366986484000103731706043803853801724382505561605860120079866471191700819463011682632378342766449701907932213220441585561879062482000833625241983691010899517211319370945597849027893652651342522555816704472195652231988230321746980354279903923104824061717409889366730249211137397967515538209669238843444463083413018863661170420710764525008823199807614278467750602307754902787777899085014501029440810780869140511800858855832770186468688963188802159302936261616930932847321812424134624337316023428590190110078687351334934559071613167379889193539779684295720572589752207209662645152535885661625385202013179291011499067176096650061066684123923622090467478236392219059511362253194681286562134654032346511257089732989749322556982492187723968328007360274271463776799892783064173511492059116365509130238033072302049558434966516225527286132125912929368365911683749486039689841819898516991864666457692898430366748624714059699262978805264167713981516607690727365066768498476152040381425616884546497477500036707297387236208302908540827350640689968803559095676826336120608667999008203335837696648360266154896949850887068450392824098120475796783411324515943204687592648220046201732670742936909910913702266556326581895316774264132295586925450897434162181456761548052869265047167717788340565417905769312294308764336053248908734562937373061164692937949736936095876163736955902723216373651741684766382466711752025706273465302501722117426175416871213857144618307961809492995403484520782323027192549754462781859502997270063008151604721862134337176105330658871308568039441898569783817359653692456999360184971434254337355029919385805030576067697287117806638746576543973437658677683871699545108979664757481110378075652312590265407914518094554406335000897619861225338762662901476689772053974103836204045676410702985127260445728076620815075476986937148743487764663100875944087105087172164725365729005427528879305163208930436839553333176254414716725438236879286680141097968405066105675765848071740706091722582016525495538598469026099977876879124980403375928761961695225723436797278629215150808298500039746014614534938927832968863888055968827659105577249969642026171793023481926249602376755981735093559363546459067890840837604816661974459612614903181502613819028125530121412112333436348281774370688341712777488807891206434080501640430946076761643788813158225831421554738389370541046527186844460465572987175282183767905286322672105492332166241874750672405924227425389436863348529189141658108374778438290067040821920428839277577893371201749902293347537917352671213200198746478086282294477743240192950936891549416289373473449146673260560107938280489656628983496202808746907627630028646275308233586420604901621140212600807837571675742623720005899511047610956700262349604916507186170756530002448330338867468797220852176227020330075298383581737144784287831549469304849279958163672183860276707651417922718247392235950017739580678222491535218823380401474101428692664005120363035134453327935343562434129842058185973219916465569802689562239475736003015355179644302302320073013238579862162385448465029580102229458849041542334546605987701345098939600930324119457819175178950132465312545269998758913867446294499401762204500508744708230242529765131398361442579858463199432333726806279454268016188307112437057204853944351085626342162894816591732978808463213395546563838910513910478897399158768405425872957447527110487971559827885988760955003263372645279612785243400596978709820226023626789548601284504412124071838166309366942626248231110449876222105718473850515243332015057526316276164769994702930589754289739594256027550571247668048734258075483614461336473014487701737007310088341699647075103067039151126491954556918981235190862136467912894385959028847219137017580663132483167143551931912452840273010981975662882227422690177898850412554818867447731859476738448963988922012778086627472421699004005792031921352228575325335389409730783297975079483226802038088532742802906838839698787076949191487919371169018527388286461156513843375322615161183136332436485137696324241372527420143510764947345302396963315528193663039703352175797931458092164180088239547317167624362331666328728347163098005090655039733655053100310159682978834044586643871767059547732026959587789342916936332115085405985263969763598772653443318653062085039149561106090894600858113861158498648030020366143049013687521810806241108067074202196701505002840066118279908038080352681305076532596016207999594113480133831664948031796028781245444717408847672989627666079334195702558370350816458778047419860578948692493252037044998435431397403942384880553368045470336234994850029395704012506670593904624443168401416234050820329308594606508404334745328707511334695028697245926938162195144300858106582401673871127976854829646516155135725468059063747081365886335878005135016874500324962545249934942712210929114774246217456706003012530827149023526559436214477946718543082156213789743832288552850576226012687010158098493289363946902958044806998999182575999712922679211621826505550435208270438235260624553845407186036509608996263502582235463305979854272803373327448822155462628823935407362492588203851516813576985856281402954314242831516646790671503992926746057488355326612826934172141458685063178971105030961419269394434054839488922465050487935807404143745775659645960522737635540200081463523688290832912734979871047747235164258344493771679761529735079570476894399592018901518616870008381404790570712258152506316515667717833206182819596405874301714061740296004351876685967809815525322552682373086988981589466853675841377211852050811881150495010785639718721505025859883070474334077055651104781847949496884006185257614572312849979208542022556447628917005219349336019455813039702432399827213327713311320471260469603237700048342354232064628384872908682208002556974284992777846586587433532011288680359595562442859304132933025890474890425909492207314492904527629952223807339488467860643549939294996975794411137569000166900073845902399757346848451517940139713927801969067168750542841747162690248790366538024792520874040083897248320580532892080696188677607557740934863008814533307726523057421429807854106598260871051794447656103328485573806225610638910342739738950836613697731691299001094193114500812349173407748220214891087452651964462317776609039191496229924282713915906844451851006621311155436352980624276540795186243195892838353203320342004833769919350317304361778489476568303447523480331764525193493258093962646862898862570441430686744629565261641022748433534814741600896845587349972947860191093982377937278186414091593785223380148604146115480123833345161699606066894171975836100178423756476779076502109197165506930463473252674362547946109742304947369457969907112598457358436820489008564462673166984508583841526446580707932613706116783186690494964322883418958018098004151056268667343451162320646064847173184607453592528964738424913401187064336541109023809272426672237575557684124481929377773532498351597712694537584535920669882628140732680908175315250448504105503966545791984528335854297382692943037393062756827927179424040042448684832979290814679282138176286575895673420146382297875094116420532974341380160934649306073737357559865437444907110769804424219900467671840987253359229388435146291658727523020568403555244295813804211189048946577543207249504695861084017273582567460532310557908857975702854863520550815803120596811211078342023208011491777556059039169346975231262050048870044296525770680690310378241750168064609596352909055941971384260927232278843142874314946657808738356809147560625096790836446337267530372181901757076278967329791699613066760513084880842000645382990540214053447319168958202185621724736866987469253267537669133171168363809733554937820718713525473948026718119385684902248632255110838477157212172817106814137769400466588959644615872566232558009340564430230259631744686901307815958053086694113337906347373167425453679841547862507965781395361915816843242653203964337505428716393616891361733472685780723405493584725668907182142099693176718915851797080664044630346115000901047555089369127068584533161289366261665413795171061207187002663517069830651059910221996439988855472563555067229120831862410234267135003986332009974056903934772413689942386810643403200932183128125468274345206266899991114839424726373505940410481725818204178941909740636033289614170818352745426762493530677817784260752536061307862271059645964826266664354392514917948467470237974701007393713306883600912578684890959440928549731756071204981049277486247817830642346035890697099347480365773431605943865171562058833596439345271705265192323906149373289731206603457729629771839456774463505971267108759625344907598845875915317071569878657967479566816020419314297268669090924407865272115436927043972615004050612272082315772512428758187699420774882396687832093851107469659753672848051768459464594125974550933222441608710714076254974250941129662621605286962821179912326489352588033007443395002584953857990707600395251451307147225232690885982553356390616591189007451949534515155195038988981169093517872100935572972742947267935142930947374886674179822580239072576415591223200021721033092609207528895129213808144558436150867529353394736871018324026594590889398657838478127678419699707330469583255414327264988984015450678404743388376345002756650614778727384429566019344433073422903803620049010537622289849939284246880052968887237901801319520885866827608017775652668574277015792220799365568631443904810081249248268240337765341049885458495196969100603492242148209630343222862139519729392067597235231026355127592268514135239516368402981825926652711075710911027037344995345913048142383211018310581906703301287687008282850759094513853425358374423264704281498730794896327643192010842240956127819664021152880003245343641699953349816295871490383068965407450193472451442264863793403929402623705891808038343760320010430964171125207856812963324033634232204337227261953610262809441301443657241699977405535911568462383048622160263725912343540487043912804086813866885805174738559189663464823118599005121232067623942081866508669617320941315430819039639323413893839953977134548660879073752777108820329532115519515831356915270610615533828533055674202693134979837750920357353103931009313321344393765620022546921054577739293446523132963830209450069890684928225019412396802515392277191455421900171646487031352570721006413514224328395931698654629745755578900186927473061060058040653444206640261583887101585373919446898301682912920844168286869214071566484655771201163950471801320947560239740544104098910367683944698372471543069910212863270716944771344628656379665109719493015751337820459881496930362995603474977531557620557416946019364634141752880016065878821607732434000888533873851888377190482323305446034606460450353468384314503301892898146403137625205206728752801889243237626697920539934745989887686559281639615906508979645014819697938941321408277628716068735825576250596798702018630451794577848272126450725344274309400978603213736496533164887822721721152380147196064792097034698630343535857113754167627737472299160199176101563736286971029868237182527150792805594561359882674730661972826939537979126501202433253336724459927978614194283900359757764664996341075437337824380260531260127800966624989803577270785393717706107513544146753726576325007866236503255184041910621031336001667800891880978793553866959394024462224118652760090190449863252088682632233196022722956620068262399357992230180856572437147412407163534606742965508192095938771336969721327518012135032455128210021090837322523839020202967138608272724253968273415802565335594885142845283828785411788714868585879856343301277813951253321860975312917370808418059124973460295349631533609112533912424613634739943987026314455241484588697039004998657874561939666677254459425875031295979646483950028166404400025489887591491213813144457938164772458835179293142131446684801723632951263573349518682840884732607496702554810363919951877466676143998245990664481503123787836550200264667838147312763113365966433050091614796551592120215712799457236704937158041268995604166904486491039318077840108935623830060191061902691523051869903712214631202995961028139347734027162118417686087965862508634142940374435145728215800208467089044444386267160696930010916423214532762803937516876918519289530465780456395297020170282064669743300573813969760458999039182993907879055180663946604337943586127810491074212040989184496192684370360801754672116655751424876223719122356340893575187328093951700151033939963442035154258125042816195861030889697600087942113784184459963627932967652924602862292249045955329519831947698973460296267716236237193162508084799286122374872845916561293473073858640788025521543779622025722502082148334169727078646094399421246784950524122574876985438921877722025309907925045603044908294733615533221784076947427592134065590134143297778113428565613299341575323065216444589441255152869755768693745944933190780988516834920229546601100516909385532019175349457875067827426632731737127160962782073420138242381143629618719769974695330838234467083886919087590010921235940425892835521056959286010395548477775284336385626516755429099070828366201037559804454932295699493983516734699113461562646845231276338530636141149603834957474439671249751862753156966471854587062965931625507972206433130784773856656436499018426390556376223700260064231825700913253529258151374660613527175475947744999842301743202466563418064718271494323602727829247252330915035328534739568584342448183504723632884166469260506782824774806155680098100618545330002255568066484511319152606170980493424186675971550643927495662218433966776555289231780984478567765255801692413474890965007423158012697744137982524347509970510615905050386296811795550999848627340581937788029005342845617749543829575391396505241145830364999103982683758537624283485162861035125947484904480389079362796637866699936393512751019105320163443259939376259886292922153944352857378121502481524805111412823815392595263033289567040500162572294364138928760853289920873072975321664513141622063649659042640638108248731043860873851695367328590325327414155857724371995213391524028091539441359963627239504451185869115731015211631697377505602442556886583175747387241802605922997960804714989686048926019380133429111812417853898057560047303851939296725894143324237018662818614651965001245887737830389685871939707797470781143900478725892667924579535427603714916166291322408548429467960362177089944206662266744810492344480639907393250861487829729871324312367309321001542900847353567878063162531783202163384047372130086783782679125414928454933556153745438137387177387165814680957156991311096525304390161480157866921070100831086663183421932805334641893518534057878258169877877141407754092832256079282272131139099665146654465541156632281133122193891684250971641410559965677355886071158853780655095274919913173171660864972937306239308109033136523522663428223611662436274665966997241000126785603190725610172030401148476190439865163906368272473831997948287664039282034353015620356414955579886524915500108438365525843822323700612407031246532063137044243067850472513761084868116198020265053244748171433296467713458097231406933285025684172295718921049715709131174319414757557323398291092575200610924667190866405537236000136212540295039655138763468810606311013829479756585034844353997685525731003393783834896731595115260235319195953862096014200083330593668586869681992447637090937151880826156821667771792624724580961890737036214819051660437746722341120819276086244292535552405426995452882347224921797757845740335376034084214656064365542122267390344758993987536928194869613469318646600935170346743704296758657903498461791662109274719415443274613300526918783541531135871061983387588173410740044343174581790956936736232505449820146267271965219300428038172933306474229590549906826284747505253324605488245808001101108166357256851032811186735246748019748646561926469437860108793128415177011521348564293944640318500003714105852307573441687063829732293604221240142363789084680903280057507089298459466570084570143208067261288536259697405911488655764037058898859069151284825721719019010379999127390215463724279798183823274440674418010060947330578468850879627229620261286368144366618322516890375394565293857490592105672250985503034421363071635279698395381484135475910548165429907029881274238809130367990095860992531606459049038271107431641384884772458480535997181161953962676672636299235192187772545182803246765012607550951753336165341287635876195493808800146028838235138957888581701650129624546490994994891733167462761728330829400049317779991235202455631425060432090274832173605919443806567193129329300563772641272239382557719163314741497175098323905232034368289533746410952382068037754970954792401562979969972892094105049080397793840686639583189602009922076735418007660443293672414819701212209583646822862738462435736816931151246550441201117342732441992534141077747100575957723227679619146053945665699759601198907742458973589695219280441757095088351128223007831932860714534605949300874029145810942383480091502454293223628984367889559254686667210619910134544488495018732150743712501170874017591276321181447666532129345662535018345889358065512243431329798373825825480769738329498063119112000498580771270527890432940609538353096091940432853193781015026209594862114868402241786854450999956584134244595077113197334173679791413950681763470867579672168222772458996813064366939743489369497726014542944338235077343972648916113568881602062061914402053019159799374412684255250405883956552646799392856867145937911235264298707904352266575955344226091821890171192999383095329873766133511875527698059769397905093437443386688132716351797543222562950054551987474564973676363287919415423412036967264707724551290189329079324924045916192450331575852035393075456973889831742573041686246117921730132248631971437011028431394628524233300614881980376550694458196199077982484443756252471840475226846571756880620604329334180236167272163626046962849483828983511687511536209223495295326046355473549053886096605080702086427580219252824362412947840474592740022856519527758464639911518567482155485400230996638762070029371274222659403155875871667669141408424203435884565674457445226464646524876921318711251530634115931132140507636682297307287811445697502270225971950210493963656753587967518670704734591811745682194655177735198787278869430457909154858950874491397778457369523991755849473984142098182635723165875508663401611853527800772809251729355714565558239324254781937101281696067178556659231464068722289499598514682801338213067538060177528206272387546476543072029148379192794179918737690303378019263095505890675677319735537825935722815762042864888258641558139477414238764418760399733732574380983559972790901228192827067688223103529232379040923752414981070721316763774712249323617632343301450237870207426099989473200042617547300989922672817913316819360173755727559522590114209659509156689210084221568851533543670731640051749881937872952802425474363151604166255908297638735707013989822052873453813783100272960447985444855863750445135053065197492088392649849489740769544811019920064285582442907314184093030118932482712506074084511174208143735111325006995990163557662769584388435936267339944811665464100228612625011549034158637888885558749707814852773551642879751597751825301254903406381675960964847858212135589962738343354965421028420671873233052075924215760981450681071359718492472912773193957213847884958139451815721034207968404836243637494752586722948975975493157154775254499058347436954716030195733189283017117990599797137144300598387770147977190775298575351763735049052089997134603002041115956940526718966138950198917114612774314481871305207938875017894170163816870346343775899243833079944989696094794832163122527616538988179886392381895101818506505784515487291685855926191128474193133063460441616440463501037944981345313917113646215357587315530475195219392147925103750964932613555288596466408413794301128781806583301993400831293917948389075326405065772755605059304450044353124837235302274110849849090026363992782240520478234142940700598731740040965256579399143511475551476690050138949026186243049024339169922163524513783066113398122607733429659317040550984587249915071661874966268261116560984094439932425662402981039687828324658797676705729689517829550975331189550416135145882125068815028862298157623040729537201323300092873323703139574519544053581916337198116636726586579261090115657442462614983881212029542654702362776482901139096228143590728565355722599162395409205425335422203915567743568817952669788937109841459132121563441849337743159199952889191728239927391619344096266563727923068750774411179046455590020796698001924857480341961175817489885773095784508081935423698054558486924624181451900604434277203601959897710658835019294339091757552332349174008121208878708592399726460061109201118024153579026197366841810036305243239192322856226713002558661472218063932547216349215893499607906379808450342262731102352314447105963039881110216467713739688226561043831037015241306496164682537994833341731920382765547372965557650583995009707648456699341566982663717065649484165100454044810330432008582424044991129536829675105043924633995263722005306212527679627638230626946212926409179919364952414378523239941656337237557256267948158528566172557583520934540903802098838137967413068162424616563823748260527037468368036502236059304827082243810782934921157858958366169914606689685787681573526439677194103957383538841937424878812089733636084937222754553258432987327339831860788968877263414432314870988914037683683936662821422988566622871251075426082709060357180090352389519877079510002473249976153102715554664985886304603350854362361126368150813019900587366115324408141966053178557367800655551333567969276470598718117798677133641548969990905298880441352897240943312800194299632938925840531729977932035341674572498664792259763472800725303961539682521578300762238509204243553275999212055351941946781133004856836447531182939788803293947872712140598529126628537027659366738002189819315476350948426058568387549101608939609922829098889586608818166431417257405279811836820622990584167523123347859948680100677556424002329325243608834000071373756253803994786609217347878645250334808645339610661052978239032219586976441053721134329430436672988128913824796889371741397966905557328162048349104314126441710739751582679371614478603546677223983652984059437589752370068777530080552155225448846453884706207470519471146955704199169173682929260135689882582225305028829752390098972849668290788763188863792113833776622990795627753323451295594607715546878445265995969931811775888019778694872213251990113713285852124315771073917753101792089127577014161737451231019579529062163794680596323965909466818507305270875027161133393972529720024220451005197604750029044229415475147785421493050097424114153811991365713207541362593858951167031337828138842243438809385427490651491017116869943380280135976502150537020953019630201043120453834003184670981708385923136994549902039007954313092123198295161721470186493701425429969493930283996941816353718462953354815539599014007971522552983082434975838697515274103201836579052355327230955581114426964059658110315054750375424121625518894131181623432839764341910084311584255468613071738446873382145593371846450756167988919820867271759824637113904887594820056048213797682717932619509204726046624325490398611417030160100533023201713549964045797384992574437341640267698035101592334939957140647090806097269004996161157495961028601885778442830435527835949742332613748566131500773713560740029683924820313031930318946444621719675342577303506110760857304525104521254939569652406967078836883413205966490334558473573867954245143570102137930185941745910505710891324146601170467837862445493606818375812848119335308895089034157270087106955123271438611656642195238003521960706009050940040386997298594885277503305567698873090551911388946266833534435297978924143850825528510421020160460203420808354933887800875394074208304469104798591499614812376176783630966538201758616533034937819160498136692268557877008350824792634963343560820249553667204464476017314336653696434125026900104184357036214617410390303062837751528703440151240748791446662163537577331035524186588133124981955911829988347355161998326602310119084131659830262688713065801048137591340413635938322561700536442477762887200927767568340173262552213009589716080432929456652981804963008619106999942345181549632770043664709198585557787723545277992945981700684701798335466870775466124470779470797073687177587786717881599747821685467769858499319068179757042050883139717883935777231431781936372489811136409170583717273836252689382455765887072489727789589584776685625763916910877656820848534406780877483307160516575402001689161816095739654921151011747436174382873372877035077306095406552708205663146993427650464978895388694185591683022484698220349769713016645785262987466817382215016234596323694925035794957840681266177106230626588131837333735699631850822891843332107469017251211492965885592816093415869129091168182627098421226459350186188736676164790047810162711533354721800757632104424625056417891176952359135996579678868086804002693120859204674288325960307972063451297600825725906294111492113559287218196942766603602587715815941238474081283263263526243752292393581761165734223267373170013596210527960244190137476191603102696961336824978972708979172891309332420104318174537141489210630257064493890301105543900009228422542929964929738867892100560377910307411641686196861760784969091180476565845386074221406234445131489423456682814419507299333349471581156086924615917689514604114179911138319264549348747150948665260310123584469350248560038771926247637311839788515110631825578705475745955417359651910652660770451221997065112128192410905674062963370086443515866671991777828140199512963424836244730649543648953956299172451227353563250121685282769532645044968676219787528627388091762232526283866229441096179239560850295981015734205712904884740291368948723264286966724353771065435143478950876991255645634558232008345673451056560982249339675646588955479454976458310936572649674422685008883646861824661219868597629420039864619442806984151800423699388224993990525070157015715008723882879073032675318937314743640715085757025247721554716585135343064551339922290308838494226395986350865919721099356146583118995804080650450367209980156056858508204007238607949001442494739706307688803287464533256312139277471515136495729156442203795618603404227671862224544446248075387224742349292277489128219784736077380378739052531845219039657179635642282684191817687389756182142491533625271369441325847568233151872744804011188802721592465314912426832798449969625969356655700990136829530413517625962787290550270848509108932349316633270465963749765636080995204737747229003868903834010317367507246717663269341276232133407570731704651674280351923289731860107443937099725595203269877693812921732477282952841811546546013439817984202267475901769877760846227527612376136164356953713715693178311270514620963381980585689819934297571048102092313187194008645751525862084985566142373696442218699135448956871779809344344543184974650816212436631772590883833678271754120168086762548043495832026130312364450607425414025908791110899433548657391342809074154263920546933280342883150546321907123499239813979374326362292994237793736208264508374947214353636826538390944218537677997398155482256664006561531759322249998589630429788960181749806869190786463076602786022633043978917474569968427745841748980242513202382539153670714798315101636639674102731224052343306109663230532718425164156808808034970175610106212164371630826473097402387305063103835599980656478152263351812537210014383060319578449676297929417323519008970481740621800318357503999469534198525618092673070275208714879026713089546587197801483395818784167277629851491082993346932786084524230309334996762374406875277317960973907302961109480030883739808350151608926386887861419294079499255764223670176257830127638685174071519320560954246059534477558308503610585706847553053680624701425844120547220955078565102281504624712850741419347940084688014822578226900542277251709975520039861408044066683755636011899381244227692918201777475788739824038787916502332782130168609125270694509224670889843664976514363458801403336006325967487133701900197934482626426733550527441571042106534514042488828874324146445430600094329234494664717233682714419711849287540059270622476904280692857632738921149381941822215248688097845243232905384733768733025819773897053596667298357233606658055750184147249879136134840456485411778659728231110845314081553461556587163071545134045667648327339721013023272898142686493593679232574616492584131806028146733168845233952460966998580008369094538218440522719373849516445589345297195823150822935447475073316238372911206475664999178021682930340930695673128220923254127410891761629103508867156649699357117096816115885633665586209115155036132440090364308748729083608518963379453752242543894123495752337879487786040920702502210005668847233208836135876382163687276786115105668071653705172173005782326826550113649720970585574878910647966709713822628111701959738996007626387093414273877829800753132370814644202172908332035859921943551989297533459382531628318091635729560202207569382987581495681088343619514661961813002692145664775700372212897479391862095463831939229403968775813370409345028919763422004188648584851348346588063548378954789822700179026933458094759198452458062904096760483300588826892317158143719698299234355808488014320258857201341043117251371922220913945470734954585331636853293742958299991166884928701831789238913507046029859204449517780722728090591056340264539702828574789403181724700932077025219497101449090474518186419278451613271087523614806126864640754053050343457426328519114419049597883248045559538960774348847056922975415668051432753944843386152991890510970161864861203606566616630024100031962622057662305206726773895003651101476230744677707835276173685072167872505426839677165038114920480309287254559114007970660930497022171677016968622197045598509511975425265663041413967032113276249767407271427577823722987962394773689876565113889286845059146250524021420068625026013700563995025902494881415238651390955082052726304824009594585623753640341267269226732291926841619284316847711930462893113766213903352737798982180086057439015902490526385934900029181997711070641231014884282520325108975006171789849339288831345533328377230225652098899674226301614614217766743590894379496679269256371042747316482754761565485484841757042303647659950356846953245811123085404257297452819480784982580621597260767993713434755678330967935956768413018136416814166359778288909373092073418588608484331835956572417842542532637631431435864627980542849747335986502943535032116798859667062603247926277592516563459539897070534365732962313807469735842000837553115308981587277457443765995707691235529262267116452182199168981687393163176767052562071394113352806596668071960443794462496216034260600806742868401414287986367001022299927735000915764469930263874442475859587312422624872838777283900071774664648667553106300321763286003504114005125274955666976841611525538709590645491604388012320612200765108384766724837779694409282334859290375416655120967201942705324908926533454717962145382966911696463361693926579653050679143857395089272560606406776306720833142383914409963752365643965853840368416284792367758420070161738075339717611103250881056595860245006036955471798289736620751169662886149818054188276566961142267577927343991100215088387904584409246871134145725769711133281527472447511083212873543093264204280463763820356350408119166545257474208303132367933860660983002796964097077474859117918328058340040276981954574915205617083403094643760008387154525978506338942719881928592839184729341369459811289538415046662666992759511827648410896763076753119936195631331754573806120307928070877937392387824324983932567555197933148870206510666605720966003548591176768371843741638562991350537194134605940738015117571905178381291871669542347946895555357661064407320516910533400281403810585113666489160371555323607683830319648990344329127494677726454518278587028063140997981917198916430134415717660330420641833824530337187325094011585543105014269621493633975983799065062436322317726043565961737531611705216031714625447359313322187037220658121996813596634624775479888994129484693749055675650074119645692139384045497600377428814998075122381987560173610539871829946547521720866497025349126948766942467207999964193181162437199828941044563446747330604461090421046523578414972108145383051621316098695509190792532816338996824411307020394602059938554948880199063793512237684728482730958892057646506212225050295151394213104091978500199490051960965237921675087930471434331674131770760809402155285461095589899783605807662016925459996174690929070071426865633976811325946906181136348244309722857966059493920029533931541451820312559730694505621199510421861710353168429099302872123503806969412461454919432315343724689425414189210288522732412665455920753157154488116799890057147357267935786919030682572836859946258964277280859876159356059130151511913781521737411907196347062792721123330594221140069194067599680196478924890614012712875098045374835660031000172987421117688654452907993850761494458152320706692895403335080913350371566439820369693185541214362999620128202997238042143453472666122092464060243583235575293012233570005187314712756141948338092184665497803169724407526382303742601050244936804046496470825385331666102476806011289073479912685381357872885565670297541606806196769176102044536695163446760706425199966466773955682197528016577170749142886481915511113476621198310091443869974945163984836040897654575959964038549122945256312820547894869724217720498092181286412893000429045752987255666533354342665388311584455710622991143481190803895947961180616678089004604375066362049100862705391800951261930435028366201052864489180948551913949034070985643764657901913405472529729907240165802451828868611448761341038711748900352273540500599752999848396338358965463689829047111514685393766911904280129857430775111979232698300488734542446972369529286260894858609502941580912037788629954486604790963940076362483799098189127154022804187840780831792051094514363608046597937019771394647943715668974806171792421761924903596023626561870753634754826341789984406027588053301262835811904140272625821485755390756718784304594330997864383390145415991505213326361968638875665936486400839740958669947845348878184398713609321255551315542342915019773468721891627492516665652576419443067426650511787871510841747916400635089229152572421584146817905554644650990201794074954800760245273343883652575388639833433576115561148575710458632919229740804252872320085137862758648943564278859606134118734946410574654732552860211242852903493360222785963400299341833391815134654098610054051006105298066999003428198197580489807063411979970787577837823805766130312518015761997507511840579254201394173054179139809937760847624049279380727292770568264338977648479733494594742710709089930640608071306848886570332497975460784666847209640443393160089690110115562592593266513080925419554790189883873264646717869712081061389153268795492762273495937776224103880565126557862604241369278426849661903371334682211637302786003638165921055790817537025585236469538688817878570654989233040867555019022258920421394705918274531504620006477622069284205217398500637989235091763087359874508268901317200432107920710261630176092046534501116206293205879441002666399147302593614475649592321273606676385241664621365108448146719654278554916960557506652959335479195772774854889573667633418196952615783456162638353158724371080943131852482642258368964891786796252564687719832720011880347267960356715282915171691632987424970666496753538722556200021757028821996745191293726516490104760736247784750202080036420976289770815334464381006427306198207897787963066292301830653734146868341789038850119920960244289356195978456409711885235797312051751789168631038594496257202903834835360537993685566461973873147069819672262262998204411765605498524513571850002071416023734871206197990281057195086951773178148180518899697739324164069549539688633912029591842407119656598924971181115450649174935716435561629637989658513178341281671766984497207051767902237346594754192818904422447308508636746102710046706328294515889092057234113806978814504552015487716084479227427935957793057542009799782248973608242121897842209489472688198149239613053111211206270870188999865220958654470238311896559729944699836451214588807884580977784092042990712498615378220929952415977471561259645737082706489921888735169273018658987631934126608677912718283404651129486955957390591516640223506087983018860728408917002417140940171499447852648386103221338877848688984049280477483088671289021601380128471729927372308200176816427100091951022196474848313856286024040067932264066910059542381095892517025828802575096422925285364652844648105803444843431138375643454522563998842082933984436194007833242791247611409831936769121160156759353210550145563860759686396406400978133169938331107043709253283603792430339335242466707536909234076312226111122988174779090951933763932311723178697096021944933824852509912065370534660899725613193845199541744851682419500500210699653465623726853055607783015188314156139881973592281178593750031188174943312658070867033851486047242291167968172848931854306006816564912626811699263545063150642554052605797506525081280335803513939865214119015959677294166576602630336973863587733175996177701054517884926827879929321918271606956217238771486609137344746270580374128335015565945636812395466620612318294306084262835659268203515662906991547612197242264103833289572874839111072573843270970212212432711793818678882093958857180588324688153947881443972511312650827910599890964970202470622159794034169868397427276065264170386223213739766183255559170051797387315333634132714606954419799533523924869531505290798383718762025410852255204433022398776157854322271999823924799618888686683709784389946870378007195961356645821860826865261977003808786451393226446605063937946625582029300255545575088057815745502417167693996824747019769598358568492624816966781260339914239684840883523387469836921307307643355821471895394965588211280089530301318445145512657837013041104916407573579478135297557179458148535684487537230829309752072064145104547504287446710818190308339661488075407003030372639597752276334402597831642268987699941411562774156857118471752435831041615532822125996319663349662673050471783095748915169680228640595545142607900356001464300623593180537735666662957094966704384271054187524377759304945978436404196754702179391967571411403905270997218268865533880937269329418216782293325067316565982446926418458811585003899841981078296191699543846810623801754561927416626005167972000380722162366880845910891769133453550880720370481466346012104662416449892345447484082207111934662712304743291269194712652525504056594649151506000258953684044591879247604726875841608719015547730336962446113811419520791952935257375201180084483523742177020748666885437322274969955252794985005191649075588123806633108073116882488057221884187611251437167676312058903109501187978858572439814183470690787770573574505573915396480296054478168406978872150100651587200970443814463837747411095828321131769475619650934932841853433053651521314745051094294341827710582417269557905724648226350833932437451720075806895578190086824309879762606858755401856334950686667936231008590047227796228460394937588875745918164506245180195546958836649691699819131521826653137597835329465581580431528715146707110564184729267236903635779039087967222424281868038567150477324009576525796446100183509239847569381199370978392176537558657087608005375200842807239089034358854566953055473159570462703294080314107166533031523778590173742720014616942100273993894295650713121324567470553573827421913599999078695695669680953656888955751381076722558998741858687364852454260790944786002135685777882400881222568852799167051793844873408267616803285892626951646548498966057114259766055286077013514241133845732729261753000198639057436037555638488746753702816630783016966966814228067024616111375764432690704711666179094084433578649563494429357755373331882459035163602909603157766909717619244245160511055972733243726998415487762418619393406703819030700296373126878886075516340005426990322311460494792546325745200246798977989580475303643880090238853083272550260295061173002075396116974344259052392476464680256252998300451609312685235068466910567982577654989213755195324830217665464538400730900301073375564120732361148443717696456317042629416406774918382984074711327627354126150690604931283879921336787383680822902071537467451027382303057503770698925653400855319693386500830942340554569991169094698866038681432616493503103183125710226234340778190765125931015383380962899839731757707187897236350226802398761484916831902924082807475596147383191752230032326313170500572312332064197094987908215669063341991072942722460518309408445795198410139422908177269703919250692983580845943779746413212572095771686877465546816330753791184374645318108890061414355956262245996386663441189489291763273187066090815565447686095723363853551325308390458315626932439584856481572778746948984701527009844917925785946519877964716146180831375408825445329174155880459566704315927686573043623401210869826499784333593687599115711637515724534812525454769097416844494451728501332084972619448790394387219387000532401190028579801309635446406075236076239488555976112724783828742693033939095223752076567471153846189177649343053949195178494805800310763508118926491565032416353030734139967211866553748271491041190487587371218359217905218093156221317247245727836520260725824909961322887307828870602636808229447791505296363726574216484238945433652164818243742063544998994748286286952112332445741776351956022327895192168845829757184886834027941626424101682407905881062711487660131705584380293765518955371166091817524675989906186006921646209519765058836966101467774317350212430095041869895151020982123990075622141902656931936517511732612892447033276903880400436896930399772348600406435818495265007849697502881828188484735476814779399713760445936957427292783136548942671100284645439347820386488799865581602185625346194832497908281911648137870639436571433898325144131793393328762437369454503183303054394847007080023319433307679286556250593087343510491224094357465399934991643942095074070139773415494671793465253829725420693945988024933606079051810328001408240131803796617641575823533573754251666333191967803364418722079418251412442127482199388543144395515792199136675387813373912019691052926123939336658568770595687040522686635285111082678831800358118060365223784505056046929740278294393982967033699253304195901343868308176247565043746364577954477960726135861363723525743029833083734536308688401522370923325693193026737467379321800519639697732385915907077981096586773736461648392098082229682857471218396190419401428609258485198689833477842415268946080607934863319185777835993536695995150675160947801759331813941478393369401995472428763959445209909073019722723915798106819885778878948750017663137521534653403192106165647883597519035020055378146951191507564734357990941497859257731606823189859762973765642817375121620668091742287015140978194817505521466324345745639067704762032983674043628054492370044238420814185938482205905180828667305544346624652555335253033522441006354090013833703602995465095332172174778939689530101728665423364314042167100682032807903804989554302516967329733771596498093203383485917396233430780773826550452874545754267341742564417902235437907910101824293590848094125604162100227564828466986852458354887820909450758142546192669382119633755040665594217282959259368209956441804271666599408355573562992413142503213067125177336511096854601259320525472223763844103172964967380698152969030044851711243616041368034627507801183869822550276204264613088640273598552677445509005747662121437096294436391958004577533006488217682671309836175941048941251587362741913246754210246833956680449907165633816204614779611610955443992270248616057498457246293439996891165316959476577822004686312871152807611184707995761512538391952123157998663705727993251586507210738832583719197664513905674501458791946422054194139829158468073902567221308332555886872386277900673545122186642914655812829554767825202233074401773169153260490633659371120706461998044657338348771128685065303340879671233203263690968684630758332257529459503516933052102316993230363753679377091936744254830152224972725638829922678507887173146145822600101991793864741481255693166821421598314843873769967899110906801983966934023276438778345404108268680074979630704443642238034843136701950970700879096499989759043476322262825781299525874200086498915320444457163260033987617980836266454744216629991763193813055160441930816892953536505484223405712298208154611018386485075294275082134257340556198110569516734075026197149242823597620386551410867318864989308581965663159058151621278972672230767643061792067044536252716756462223968952030770628901523653241686344143963328664715126599751465140939360189444601120686462805471911181792173468006636329703138435557877744025771515168015864052119630347945849873940372004208677620920088597796757581617493776952401990855853769186885627192812515026028511940367704857835898590332494035426140394099771515152572545123297452206427966147671211840446614725288892950193881656408925841639963129423761001616500563625284333693694789999507094198578549408031723046172896150670419475066018778421504893493960163677744963542730232419729751993225358769926693366925638100645420100927580646460322939475462129727717519585497529361211470817561181826852562555776808202720269360520434322529265022984756861168691860933962871219149537064453395917272052452516546599270219912666678971967019723837965612992644977956010744184638229977645048581251478597791259339654283261571513521157643198334048870226116238128225211976333456083433025636401548115285295561673853270631603628107415160495244906155114032106728683075811520422418373845268596407039625820129567918134400149583892520289511787933034835077762170763696360923541260351651229259371509661738035099159692312875926980512776021029184312455536971878623800173950403417519855984641200434278198371914968768662834066596840275594269455594549901850175512762276353165845469532238035962820442418935358416212769261695453255638716320632664682578950921535489233511870662558019661602992965141355322762104140198180180428500687722549478443060760512372528956676361915640631477760493784202998735822764433388437714039310423765505958490265517184956247919026659150324534954591856519984778264796350170800076506019700488780280417592902252910121247883095887874703570159488681656914524453925707232544530685389118910467138724312800444385180793176294970674039863569702838822738317959481579577710776422832546533659603425679949829693809879731840193654691157337775471661833659385397923860658535008105680985192627052631038375399819395950071455637436488260757364651117573192119426339578661532974709020432506185286894518407399623017474974304200817271995806114800319343529312611303445419940754347480825723983181304788410707127744372286653886141970215815770734178885430899063206604509183594877459919374805045448300357487092634988228739901151865259279932087117483927028806098742804811522896723873446907982847337884023037767002796431982247995539843887659880179708488857047424377630721307001602839198774534543904859794713049628878827614927180245663235539923545127208324463462987864941119747325725583359352168976236127523670248305909551743626436505923660202796762128370783066879008307085219814094806451553522044086481431215960880398084954258610410821193353533510182826963133905959737152195986680392253101817579698564700780310098502429408868136298269341338029532332763555902486510720033888008556394321243347178544445813722805842176719572421967761601759252681655465163392548340074556206574510842856074855744484345831351923500084053605833095811560741047024010296271198965320600918933454826241781004324456992238392524805411492322882370845192301471264436386987137126091204134004638916880747807940743653002065394809580789101948416852811059985435880898294121639629782047154977363468502478133926257140805412113305530074579515468692185433321755726319329877516755374062955857220274587962194526820683081929205632984808644864036408346610770746816876002746009066385732012373849911294177645395773771347579105174120815539412782271133608155719316020942627519808248352003907270417479007173944342445046058474203947924447193904937307897782691999639238649737300404940207558345160514505973623056847271409125258679210801705944853219302864896131781023889681707687479967259245801672249368530538738739632551921583097479972337480519783876966741853204910004705642698120955860353210783611895318035069580507730841612974430765486058106110245591941011515299493850668336806810554365777215643575899613807104585005981813424671166844731753617032537691889212642191416492941852837541241064528692080095407417143313840605291336684099888473837768151263732125890877675581670706408213801160084933016834031456793189290733540464013517678206226028105167909470287477638879989442612291279274542492292910190321705970065456810033582303755717361074811402748880921541389557927961978333718013160190357017895603377258936053778452560555045301960788144638804845546245471393265195126561985000355886412135875531863988664531881100999187621712216004664344485224682801526965471575202011658508776913286215180056292601247944130553775322649124119381116128076781126513366151494513935155146883192184023541902057658117383032904799587969535291174667619358641021883141650756649446206027543933112236391359070717175595825098590098499252918177118703796623340089522235275958751927559129917554190501064189821618264085607138318882383662539457945793425301492273997437354466455592178698318698908542946637217529308943045718127018226470447589363681645826220751926378860673083565513493801217658916148723995743126262145438465713375496907172147815322139532512390073203662132500946395783038829784825115504952859224374640620847344266282247636789129394051269800906956970275973207118354038067950774478554617408828141106409010997932395234019471520877109674325128977995093694786951937743980119451710580974864743417105464349450908192405656276432462441463253978747262177612386624453075511845532642674886418473422571496851603375360857301491025987270169194882665621136894541575885997214393146792909468000112904488617323584131847498733187864279902485778550066698449113521921369049073183083240538125580762856651141660147178275234652754637083345406677951412028229698098771561056445780713949804794376874456621344041219879596858387103164032002403921198318265391830580326995232489501599869985244763101766960837899589580299730554793941832292616616683266867854916791700459440333430352211908837905304435482618008335394258898867074982297148336978982443808536851495706457898749011438488292591607961523576857594786643976110706346696418234773211303050678854239039403080060342581135150171333821083522137921730457492166411207029952613186249566289970146327423133810993157804044899793107113930630220733888624846689900142991969408017131036133175015416420199329103027902654386941493539251705038817701776124355602331772328794826810654283142803030537784709144280247064456627346868230344756922647224270848986635586057903853817688776710899718990790150177577515422177469761359275338052267175413587421601254343945040859806754664775249341337539099398874799200416063826622027537168230071941507065972981934083246720174284340025866378968072958099797355976150938139782861303203591722843168798483751640475004540667272400905515676389027077482097302114035449163534744349877013639168946635356952237729232001756217365765961908093895902399212481183093963861093845924293758365990914791393405530343058740350209133258057059889967706424198664749375754166218256672344120733665948382423220454295856219268066306048082462449900222745939913631682737858837690394093867010175851524229070762392023390069117142075461765419410610496441290447260901079553664054005575175063360430469326831475447869631799732551154881300957306120357811995682173684283364586657024533331563251779870520418250813711099074908158522873382628051023743629790654130950861282099957322486314098065018753089493791134604000760909288813080162979429035530266832157195781977575087309023923392866270684880578845279782081282144688854969069933861334043851153381058726766299918053421771127406657017474824631527048868158174010474711861061786370054556462150845066239892685287481546138339384562617817960835831841328324235234840631961627319268093333765149174122111151426187124006400033564245050134363298454067892587861435898310716718083702758473543815171795785438627739030325682360705624890432999070891478461993163622504206822135847367323909493024188934272903645822662829596941046655393886596148992972113552933448935673962299480791290668890971481994775824204247908838355969754979043161173629641008783231440126764727950416365244145473388920263781449569464498634675579377201170987103451760446133392013923846933767313950325921354563340865959139353673450756147689486547945171928621333173955580874358799180461410403213958092143804840757427515722067742748139667345655034337459271834689540875718546353277937267181395893927420658804444801737998844823676476901356851374791623687868847767898030452227756421409699272828451403638307470257796473123400461404034851886344123227053491636915285412691321961085880391416808991057193646383615133982163678202370695962802855269482739670302530140486858456459600026954871656050328372230108251689830656621394007448199910853647769082343898091522589583926208991583538861074792075516611145798573456485052166843325815524007994399569408123579595418700153159517217221151456507368518929349390480418730132016695807945471402228943367056118676079225907821438801442057910433660482844299944781155574687485879513064912582156188896818681322657336923251869617407931631303364610237328874099685155904730152813836950100192125126543463974021456266526560717625419310130405041720267649413607731644340434911210337400477223683838620841579435337505429531728522061295125248978179706966778841313014938609024287000192342648878118536606583468517138399226610659569291338043684169277030001551168578222472829282648085071123343788222605878432147995163898990735647368674476400716599393895734369459992879717433800360130221019792236287465933413457452067113122755199577069431566861461005073182308785318852363129711800151885607885889853861473729934031255415367166509874881600804324125070187861638062133682408356041075785938900826151475066689138172548647278254873009174598934290448481850772832379240529898381106730775037608413267596193094753947660690385122614989603137374319343427463877475866326408060800769413664551537817514301351960739436820081575633498066456508162453248755065604535125163361458093315725330047909087033022795208245016218338802187143604323760712895400610588544962488357237249130025547259952947467337712402159084277656199701246542223823763555246851536209245875678665144240845667838211665608164117816428944264935128945157157375690801805113985956847662568333562365337874205907168979028275505266781009719416125683791081770250540743915357953288792901339098158618143955491002323330458604470016498666080483717350726571841707609898589562351016872346351848953455062816860085063394508731797860534608560596107409047151709765344968716260975780557733783314519079321001154587328552060152549053689123299640885888758108683289024913908435971287026230333320618217052653801642016389561157212756815277807722526709197360950080826408687062010361746011308767279646028126732989859387022175855293661088939902317366875711043535551330516775914605564541801611098945737743544450535349046195058060378251753318313715328032864538535029069620187643899942158528107804143226507914833705267755196555734660505157891562812894467470120627206687562452733473804634010347313884988466208872622732706910179737345727918455313659159505507074986340498530080958202049894159117798629093137824059767605779733452117129654408462949565364487957616611774417785249916916784642414294617478190561334407062381614200737527174635189617968080403953840245159080782317646396596548364507119258752587528218566099827814915320141538613967310467806550265948196717186045829814436971293521589669036957399982418692071926101240990518744804019869082647241084439175873176364935352194286312035480272744168900556682077979486898769730236078419585117969078728141554519393476965117847439234551508650814400955943787326415663598172624756321980610729209444896537810459533569539226026924708851528555769167885724376622408731761147373748972187790588184214419255330148629277193721455299284029805341502181257835301444800223131993379632979669938872541902554914641230630305006622595806980958603738672634513799407903617167304665792405710128982194155613016457519424482143163473005647999413682724009677251129196793119181431364459133781819397749123984899048052601580376061929496139199308757764782141812536268124160221652671582106135547092557480921105936397507186018598214592510711416019916397789197271071950420749446009132212559540752752621973150873723374019684577366352726418908764051785930927076014948906734097920275663181633974832699388367845598184814405765526496570066302702755116414317737403373906444363576355715710969313337946851661262212249217542680894404091288445724353361841389026763058600294720329054460285312174433294467656049782081730478384135353004796516631448500422324070240732151476213986260342917705619230884430693762066076422546002478940114091651823651885118643432067324541310733937636493497350865984561748491817391393416650383566330670496214716989490710081471356295007825190705550435699783013104112679958768272077564126505650686341470441674514786463124273971463625572754071952935941120012892543597681704853441250317768878456543682980031041364025220386424178440619360933867085340849074031880675750165674595065849602938454614935996661382686777213600600086320338769947934427259633769864032535417514287807716153604140955423856378494997706691119793761234542143958547417082165021067763505968015409457563548377204446435806349082048951163532100557162816109325825349624351843857835475987477979026577208648674146445477797157686752712629419814764237287139882922815424007171109814178348946572708054771097613808010556416244997774462811591625676041953475980227285535861182130324974655190991684488750389936339602683463554749404897121118156730749714781984628192831054470179903118403027809268037788119301347956758000523179550595619132157489928201722834827781715615282941471805330818380658443998709617525511541354777500458051943366057565296595316725871303408312569933265147163977375513475471387797489436641134324220521583597587035709575933814267919881641477703940377650415956791483638201111282970539615815657968219973517203744304404611114986234577415297246360071786440569762004358612098528903067311760719076504222684352814263467223948438478037826904582918002154033603950262796107264690300528676324976328556744676618798519725052708937455551107839444502380769244075333936331882150510621125448648524621026426078021996142536554791992913447361582112170865623862447983749290542229542959427004062673272704406843171349185029869536095548169181681240660779909848779022277275701946105638217154940069340549121588793186992107478070627311586443566535300422238268425989781002868131520162432149650173404709271607215435219419306991683748941683850632862799248774543325281813826065719381967536075228522901818686637428045072584148385656730642818104798720432069433331604024777456567037383592087328537868581876913147664798455622772990867043992774648126162512833675039778601363686997612691266402597996118452404746432016452764405232592445628000971876855772305406208500048148247083008426564402093935293643785787033680958017919571410627726145994223395661386202536320662062788987786317794237678427666848519241150539732688446208505766872612602374993103121550647826258754141031964160432543956871397251737796117118719033293600452058499610077043444933878334389145975653056165139571535445353735703747884042018586731681599673142288838893341126518077676755201413372345380137754111130067719602243908796462684775247177814535920429459121064857585810503650699465743202892803717857081030385046517049189036410334104126311515288559861092695777962457936918099572302608836331408077910298421317846868072238645577023480617847987848750679226645246484604059410528998573565889802350311115846395394025245356724829964670728675077151416034058464680211091231168714811697997610479950401868195723207610340227895604924192768400107983735165883391037987931129193973850194744754027970512985353065802421260537512409692060274139571741353733495824733680533729027483952056151043129243255624461049982061958266366333153130856646682885040873859971791047682301521872247538639352786554490302075010016455876092459917104844341156544276126639829199767166875446162678067226315835735886672525200723493522928316271579659993871244358451221705721975395581479447539697319442503399086610990257074249420339434501349022952388105977367357165995057125296955714260953276850359526381426278510487445404539466737363203573063393276001093234537918346335833365460003139752405593020154459136940471355639752531854617273524300717164170251517710085347781119649758591002812976266003489531267648293729973900904176189075899416210557064778000888657052127905613222482511067948809834881506114471042637430601857031248621865944075204548391738955499812260428632216440335405691504156223063437998361515077526867290104966484610165327509343731399115169470396445098488793604657355081626475829573768078161418035349932188237814779514654195700916148708926169134420195930228488860491075926344570264611942897970264397787656599115392849849636998149548001545584912539755845724859235738439310639908396373967712673798068434890129409180886478918175960217891585963062144409624603037913071812391631470490200065498053997185012836534377072591489026557719448106992226689381871831231837320224178555947717662055411032381525022267826818740466998558282190874281526960706347677579293740919608886860515994530287580776576369084722223860748865019168510545891949901436807946591991420726602411267120919878582190384299112022285316466966725223179229036781352985461169814918000225702651151173911836460240309440789671242819639853611937813902614040810393983653450694576397177539583279493316374514484457353356054855245587793392948371431312318341408439965428160937482449155718092029072866105195066536796978168841657108661330845534704193835124921915682848041345266236278258292385716640111871035874876705287212900634440693810471722231290660785206974668625229795829150614598181715212228344287048532591648273610446706551297750842177752145599498807260473795557492908498032544929541144782295618035950404849387993383591656246807532759626974386838196825377814329290366693383146437984624412811924206385213705962511723842187236947369032208344480426127479356101923217416787982660918778945478499319763790088458430572350891494047669020752688875881833028817406206037799585999493890229076397867980208860797090573278128991839591633211375792240468493265260473930240182614746342416405135219501919475745019309140196735495576738233013155565060730154736069596935481245254154841726770386864936777653670169125630722890912992279939124801808767255282193658875306825444251473217121391910446229902203612205531522633898618192307167962425399899057450095934901264980502293325584781950170650229264780527176962521685667039471262045357423223223106773874232829532832942721178387590284473041550093604896628104940745251346483822551788347054222297409077843806000526797882297684203963380794199554840578502068580656387427359814234822721392497885521548236727305111575198115616210144623277043454944119415470593639478730544803414095766377536842240837791570286139437273009204569007633783993717291429902634378225964934045081794362073936356169168804935771249412129397323007348842580522758925461009455048848516736755513002915975322595861484072614276912489907744077356664867431999864903704761577519767662164452928696045341634076822995220692263009754735317319815653086312515806247611798633277682891882241328734830317544801075531603515643438532822189908090599173215711539289295012605865238688972153346401740321964608165152876009493603422580071484985730979550932979424991775879299657383838307759505699972974029937009946737238125895748430245577066545142993937294801950256907913593490723542736720716261990181081216782136886172324376395988736427513776691198945415493146482785550432568052152509180395524619940013883735992203703455134209388011294044531583498893844542683742371943904009414817523897762063543467890243848392054348346962543494871798280473376909442129904477253394968453856506469926124183800576405301834415550683224948846484279286841741531157184615670367501808646784090187089891122591549677371292875544243228711886008543168394536001998107498118583084506881545195292911211370541638494332656388669091477311644026789811721424861235601827927583112141872297404925303105963654472674877443079822747109453509268982728955505452285393679420084142326412022565954143772028345946481365304464955942160628573252537685953356262237891905587858095580018560386542914747479550792665284560394118820136183586322830519389474406041313898579190360728334145174907488298001093220774681027224128457387724932947869138615532065964691680088682453692271433676894902509900993300927292804314878255237050047655260952376446687007793943464928809238842850171024049406379804273484295742329424785357377201799265164143056024863500482395329157793434892279002107667199393198148058970011521114540305566125951920242798804531474172236259779457357561214559608117914514545711109145444262278712274443800847356372281352799868569273558966136812873995476292593373079476979042398160377907301505828226223369409665250240858003519605403934756089967165785839886439880043226339201376562786857766369750592484385285667307254403934236547869380413425557998420672517844266204034383673889133788997347195382846425573253202915752918839372508447648798954257404081697568696678810244192538401632436650648441473436892968653661853387246722696226928224697012531346265001149785062537983829101793287071433052672193029504334488575546391656804386523955563685753940027833921637749893174108809990295140206136377790544541140461517509038733488722124873807562604941812904779419078171191968178480565241301694874736480652459700512955035133191303511349959287362565095546530833681357734419941916685072772831320531762443536063195234074466464210613364015198670412837378010941159820454883105872425576473353722219437948227609067513695860678331535222393076861303897306862937005116759195000143633364729735638433356238720611171713096374954011844178720798209359686966602462618407359424111958797626033638802106548034715312639245691212504946381875441157782203243303886332072709283612925302891310455120920792224205553171369476795590360346233726423827438845819913178652349855171230502044231095612811034341306841506762096311738148923571838698654150187128007321435181254924230460959793805279956345167984267087551202336627833724078388460384336252700405586863019369426256489239890323489918784846425632312905741180351945705555640201480237177152391178624419528465972855495824264567489971015274107785836157950189588381813067240214863236217432656482387821507392623601359990317374384603926892770422769865863626996574974141244016522348136094222168708021886487268149280120989498486386894001484871309988363380734228592490999911320767512900826512908538199168484145268054645082873995894189862530773906595455907771657957831627096087505550556935669470166410726132500779448504840241149569823699057671953785376371172545050945911584770733594986734371054113991056371491329135362458845960058174794625987182798293127474017947085376457493730011552905387073767988143739354873286418963095165190125454646410534451183863573091544254227688396820188249045318894505829913970958139711336601063981586514145799174994178640322696730589798033338293939583538534771848603332724227788177440149336248992662369165590315351438748805381360994822497739953982346141656825149138496017357521526200676365348188945037806668454759561560325566440093950841525593376467643031013692154084363336619155217158341614133310737048618609405011916809625014337425582683009649298035595625542677915202917774833403676742310172592888453184169217203863305095125007473053422923678866716270077710829678012387654966243211238284804351573640281080535714726400233910464078237453222759310790318573197399668796324872920040184640201730347067308403799262462261825543166430219009868902765478413738413896233183231880401769354550093330436893563042290610079070736480119434418992010263592663492366383965148815836310123340758464132125103468595445439674253383946756821277691895079776771222920846798351220392317852648071122526724857851418176597584337828283214807948564855323757612776837433055610754937616840728664483365950614751172312405305871367489148537730708655603047022149333966180360088753023861282351102555878363181838803868696154519293200513601946493226921778792408202116965861537933943175369986422255860454964128685889792195793709231159766871631815831148579628621742301534146339611194342158016550259385873034013604897406854685822301259452630475096169780063983208127454831717816343303407934058559464657301822160977265402724018207015377449461494617399469026295003709254783154145724225997836135690006300140454390649748663794325788895821831358167835359486512318768503572586385141464123014263756557025424339203226959209456888593564848864824914159663807024907654169943324430831090388637197937399386235834032679934060624365179218568727895975783278015688437655535652120335324950310070413732958332999040358415999159804260723318366193969611894058594880326456248816362729924427140413478798284889771378496498937455853250705019913972042852447206754417346917215013036225546961295979735651259732439685081047354865810265007529414569699772635170132217122962716223078109166842343128714004796875895527071689637752632101420266202333890747767108089511840237724059752699068981946156244113731851289359889681150444392925312013869035860059656533247586172377646954092606631569960782061079832392531327994047301591157037157010443196718655477217383564658355475439753453379056271455372560064120252575004855609027554768559246657674945479955560257061964002002788056218265905233023687315263303222804176342692780615878409223720488371021978833176014585389691508763834293160445611292817446164650630422637913539109158793085161867886390235549721952274949105239837719280967434287476269835182145215696868610634136951966216021446367727162710078741334058917032869554593304166398053811471374937927460980712059585848087006075882055353745832887305152308929649874473919077292754550098163667951235547321210577593754983529380261431929448489678477041912003646951306625719516307704443170424885959523993654516179917185529678534533911320197507269286400907224693940734669839803651867890022914422640229643922884074906797796106057935737096826121741546552092817680409447779337183188766289338363404828934461138597269487865733857333454455405958187254394171593250213400077423789710832185912359733922084991147128526014485649229326429024624446463100515381674805716207998593021475547631259989716045869412200606086372843343250382781803681077797663347712507746030047143103676415531119824790339505981901657705492346424097422357669486008483480689141109519539369872683831913649081871452124456722616520461525355237155204574176606567683734683260685311557061436878824203430407097899057193381494392835728952768536831122849165937541356344530997521320426715492370508622869038469780789936823625538404647101613544699092277676948829094036873863702320635191072463928921631756240994703824257453177271791450812465746551323832111934866037359814729289383274849765234185581117925284310047587040393284433311828517306281222068542856397430594911312173585313900341115982443313713751658875684903763602853076226932152991194833633975721985564014963601356253378055617920607965956517775624877229637791585929445298001585642470041085847329724364531388456289350504011485085453328386622474013035637096189249634895169588297864377436893344874761539764316819048935519418304781305177406062484149114379071243498016384145992594771650621050109254829831812990158355776052587890873695332420174723448359327783916127395073836150774629815206276087794792909026117805760161907740387524026292619007683048120332819956388040665341422553799787075128083842696515139339883441696311965971720151138107980833759784202224669485265417203236056424754227237028516775341081880823480087607114928676960900138249403658598443421324283169177764978886763893413828338824077029935179622281073183449927634448939972109904517524140306728608562466937396272623385737822399368308502881257176602195051015614387910766747270463100413299480464967720065861738701465333304504374945622368725111736662699954527671537256101953003905455721923148573758725643720339258834070171914628651539760764808147867999282997233380252977845736878463882837194268754795181769626020818874784040524262566986096365273807304393671391505129072205702846517210141451221793970048746790511528072411486626758037108825446621068705430688592753591149584669081787425990735223075231198973382362884014900337820462313696560887732613992550701575880928287684654971389766483404875479063076638161443558629872129192960296691756938848515030871525320165313162208556453912377588877030982830413584736266628407548305238827851772710297504962418570177329715643815176906297138505679713703081147571497497600905054223059373921152339804870969169788000101007769495519607148658030987124612848624643299624593108993966209500638251975220725487142964323302912460562447420016837184573093256042685239145572982467938521964009559254357774267857608477342730475291022318727059566332360139952855372360034846404259803458916329417862046840428690537619106650460776927824600825355600492624962097058810247352373150450413074115060488602844411696609762643016651092917096909571988061229314913845017170150124856356927960719125102162245036574424264786434297103476194057213599561354961668275541327721752720046078463315500018913125212294253919067051906091671348186893661865377560162443632236691202399942447741286652782254921830859340765719678701204271874074423362449562805563089742934598441423044268285323347693130469240744684792552573860563828579913417964897821215990014867884786980419660766081377477404478506150985835286894412997726749586604118034170830367409060408223789111540735099156229471200966616157065662599164321206941050482250452132157856312925324123102963468970974854351743775816355627545745650613397250450120643632551941719006414344741182993742636512829621020016132989638479163291964981057066283896740032302791541996751702723847286316302815532453423373074000342995136931145320978459433052029943075389309761806159487522240427545496039086056086138202889493537769804374366083063034935821969978645918224797438765258823480787915092528881065808521173213064214635000430089155565101197655145026688489802076826688510362703788628506034947009831395845304703432030603045077587796477980485291201090648439466057220364184145345829503647464541227023816853806910996625293007278334571178888674992221183294959704806485755141339119588626743725761707420616956692441279042084258099245202886866451916806875405608458735548338701166743366080369575735255806116264282079008198876188004581062084540241947083847815061097988271530895311079600804454286979369227765270910032379909696826448890969673803849638875128115186282147821207279064003470901260951355224373056424435126443577447726478955191812877629119842680838903187244358958024269823657221125720757973661085132823437534107153811575653611162792690600869251555994911211567251835810289892626123275126621733879252798815538872014150329466641072183942362529495787458638029821559836458858763224312627601631296912316121641940392144707067737594938542862500362641771541476578554721556619164544810817131177877883980130048841291203894060032601531621926559145640350217710575947606472050379913491832773072656546862132936538685563085612708300431491596020349712943312343651745511081867884103698860628659858172318720443427185493934095754549150186351403554232343698691354554485982996137815983023726264336135244228787448572053248160438253765391702947127155224772083958466355523524617220963060542160627916116767264633446428456084379491403047924277120124689288794847709584636681244145411119391053898009330926869377060427525509451923672430436303019926119331887887881746618006665334022737196926074779721463956805728314218418330266596887342557965013884034853428623240977946753839308492036028572215368486708606687698648655966498500177473915905975542085625650515104172414460324319499529061839351250809122798281470961410907810762384877737526654456652857120346947201548717171198571186818270826958855624648160910297048933300701229471550628714547529624425439810175760715891740526342718397124105437697335418265939084373382085073512355592463654630360890578444939722188289042755243128620192305258546107403605735480005449917130027431852004206455739028003651208468874861247834064848760715061623690292079543934447213538147758930335510806226930426196628284900511281948766682323073934561676452162979203745056711627257362286449240148107815768774565932157218734932315425490840038754028828725602882761397018559937209295052861060685898074683605578144301855319418803449725950704585907428371052559218537134797556383945240428089038599532847942542720965770452181826130581819431724957038394036763485383689801616008549750944345158649788028731105443991948027779842453255231615222195417828786349533024299276223307792133573405834312385899766418318131685392472362238872051584040581981384785935628137434807430121630659369361504017578424145951129320329139500648675839142716183958596429314580336245864706312055973662685154769134510151961319971508362800356092780778153928496720104954839570946362134552340600689101312258466529682806706888513864416126722299970475193842260955453083109301049720908516793952437565433950313304574607176777292375513549200281427497605735367257175167151901787032170435657984390971298079756256035081742682575542349874009072860314744728518520107881605029973826011602698276800432444448499201358229200915053871578000550962238872403312614100513757196754112739548083652620509518565888976379434953592163843775082555688048987254023970156190460075015005069231634435232967779332540901730182101715917670121786605175941038922223912100035984668049686025829014421262024537398397103949469872779844498620611735265676262034965977604246730002202917438574558841415637385988144057387312882608113317513507370111761886103880057805515944050003022199067636449829095113953424996681368755510188627190280812185358776265747343282628330293268338633985438861249239290743193597104014582129319102051809202732411894017301596626945496862577562155669453132665572022823783049951523458639931640192541365365550302885942203201412273998942301292800459159883578861552569263099386412568418934583863878750980467586240579114325089591774412021748222198835468418180643608826704581281912200758778616521391572297432938988144467243238137110591818949500702390854002011519177020478377131418789577557830613941256168828915725032814268558067237768029764222842027731397051438699911737832063448110947101549853645651063132659370964948928052045526597681056381749413207967746379657021062588819210310300178286043777684987660628463498161386701056900643791431700934908166703516743694775295690614883608442330832383477296893246687663508958812271919698083531618302606664112900511084869244013520164518506081598424630062429976373557446012654801834198375300980129459467339512299652070015325032808354030806626453144795539501502464344929625886289292169732917369349725124731848818155253140334009850775833940883554787733383944735836014899890509154357571560366107584232769324873961677977638788461565133295866312959572707064039646631732483851513933804699981995452815418828251428607185187325192917159735469811358591761135784850248592546476585779704856448699574574197538508755363171363104991824242562986889862574476511386153184588049548532003498527180146241461854829570319456122467502229156087529112672443861927435255156727871481063781926433032480633779375802724061148873098754274480802572493950715787652646182515201181223340305087694550460624630676112693876880970285236886267240199865727818444058018916415347653798871781585826061184826989024487474978112696739605269548501701511427234900272029747100073590094268571088599773478773737645113448430528885837652202655502465793481215474945680242797537763529288210666014343177937696180485568489816456616911488629948854456401192848202640305683656369448229473249916947678814319687759721313363328133488772001145817805765856149267922986944506025475733891326070146050910990192590799895456961781032282332504552846923099353923733412199927211939773991028086550446123580068595667227657426098395426999553404840723303788446976547135864777914195213590389288974667969806580725884844376873033708695535278999880852466233363261022208820072035404906019053160366029689392714440987580604258819790085970953037393109449677776489140595914965941255279084054524221560953176290719375715900507892059502122129569778834028574179063143230487868419383366843211137179628890202369517832476495521149308852465833376583943617677019530382967444785518403717278287143060167518966857757954647910961135769813185291227904278748448413769820712846423797980650076867115215939578272770848257129456518123084539838002084208769780177854544242492557294846261180380898641013895912768651308699761129528730906191830439653989011833558793903111484656223143969734145520359167298328900439256954947051810352842004199301925799436884965925382016903968201335238550645449451386364695487925416741149731503459179909201449902422433092436318614885368897877591465455237566529661587166032601099760864107956330870160774839996750515015464344394543360266408190390546686873577212470876242144357146033575416443815474746762758111846276982565523748798514989039775254592600008077050673069211715930886259763069626551360755181141881034885935414095869819249774708833920914481033599001198823206340624636675863432449585967852276899778311437739049341511682185166876252652330981767320306944413772538798611915932842863459655069868626956884756891153412721884941627260112186512122306120980279556816853426962953043742766597406863941905425357935376324992893018379766252158608494735762368439163626680675517797182579866084499800509538739634238777762031382433056865610187848037902943614735203881365918023611247397988757529368516097253003630099110066835534442662532649469846372469427813629748818570915850660073760594415795449941970507715470930913200927112607173864314420826780754616645907082481214617922725017122979412656234889568031034078960420815367642631584444295282213903215817587346531946930266890206061626895915532258065847342962776213883542783336543407326162280441206973931067436966851082691019457249934185036328770659919849700265449990541947183977858022954858911988311956129129068239161308404093785270851329322121208359625088559668872408163145506630525371709206140947137038462657478333134399970973568800175888119000704309086523266909283624360017173147276767689178014669603294878360203229330613524412489078895325513289093262255781216996697934367913730993286667110136683482409665473787776671767515501651253884904272580008316756700025317577765789289430674383863802083854448552108795105247397948841923636577852506610463655831710773160953977448720914173648545802031163243298089786993212703813858175256007664923244144951795772103572133438487607260178674692872345650020938217273594382748146345640874332446175082432046086812685518577520318867079521565317724672461457162559517637271669066170985310638476753706554416006852984524613684323123472931284525044957674884312557602428433009121648501259905738845719872167425478639980428869425846705889741825603891949115874998445758531094264504119764871706559189531708465658309210012475413426779748702853306417747873604173734223642787791073748719321392474172425474599536283497349690278784915752628519533341993587476844117250204364887720258685721215051630425980682352603354888789476964768775269798496917511622532360047353063317491767178369539128644466152531034760172840527914657647562865364960852088123373303274144508170091666661678662302284388279044430925034234150494670927620081791200007469794270667748404184040143188331146237063349330895041428378273445040216767817933394501537997372489158501845698214626359349857509769728688073544516256896298348560751880870941064228434875062032498002533122209661509955941799992827947390959206823244927906799115533396426481393068808123790919619719462413513746142989783219464826384248483547418145337611393019191892919643900460265257066597798529789963250483250031843698394023174107897596303346546106610945397167616997047047791859716449621477406171521454444987841932602997896214410195383089139891891758313171887321805235896877967273068605286687439769343234878983728364292639088858441865589190752368478547137482836684160690512892367943622279125469200233690865664318187589006269267273556044088202852108511624006129649512665300217998669424711902550526276148602244646879803537916602671331467327238652138745533180881769864007348035273732669434295691672454896986769444467060959792842995181408518963783358415593439580206550199215305782279249415220567194120988045634844467129183034471787023417376512466000272667113194302690664358187091875362486381555340414112345322835768164542312876531093025700816252754853291372873104941166592194190805407708248834112416541374097767029962351256563263294507535085964217704978626177926836220189711982972601417666243562562786581604817628470960702630695269177925986654214687546880948125556363447159228399393231841567916411704539373345206208408626708704685578328508397961867162577582667371204885415081695816722493714871266410091125442416086992452881687849334666917025342526010762206497434730338745291691703432452385376468141237686063605602541755709343096799785342086123678206238987793602641556140945578868928325801356732568087506423278475457072647782980463252374795804086987629182124098021225720094222248904665646502698094102853892044114183257304575493289947315582399541055099372309106620259163692419157002998431464946186584383112127447290882918890542087026009695913284567513074370770223873287895453560929814469049716354362391219390068908967053062346762862959847181491043676245367465402620339082147689500100310004189423284622494655249977207616664229244664176295545416917812285361674111962493345974494046724130223472064778759889771824807228433650884456151211341994937942552135878234619638835905926607332025231874001862443726523565401571858196282120314347022892632335611194130423504351211465898566810442309282585605707271388773454008758138498581703149132979689208282655954193021021504660865614080337042781555093394127894150112377772202151652642563364864235638656703106506741131244021563052570836264260488476576099846892646356094226626793590376676742260465563598278219001610331043076601783794608604421479710258396637771041370450362766603524430263556400407680043567446695501154225842808126289675159621174283860614293258028616631006265153738306203396814308409562139848088760541288450260007483507250630992385133382057446578264331995758322888586400094619265151856189204780958855621236535780315324411926331343289570201731684557935672978175549075172307898268090378490190387281927262318703618346026790005116524978854851595000340856123412683528636496005055529508938442348284009723463524442153751520591872213331136908896608899356260841296292940296852743435598785421427020022751694900640648295405499497613541292515846188512372663876646750788709273910847527498972300207144284460977629742015741542935443499689481230721667048403103355920521582791683996817068564595720559219918254725103593893011974936794161539371257109996213883121206699565305541023913016411867944675735297087281977137723657471669319625414586259408643519060898499345405820637060056008470815345196595021471056603337815679564458735875498754976156411997641134990393391054071265546078656724346906275080517317790280623489517557799024588055996985795381870365727731739240144929387169678681658276540504977263419987827772485311487826763765030523009899318670480372245631391528299894006270430470438917781143460355086531690611594518183527777784506522335483153085383132411957870750268873181926578069383065252495077441404611457660134527273588188842168553290908507556802194751242880109033575888399681118909074295719564893927958027285837230750384575818055359836785847581593740758234402013062074248632558843696643814883489410847724136719459265673253896198637729640707308973361135886255007339590057631794930524121438237404773559001384089636281383089136809867974697105886205584027631479806605114063518935683344537650828621688566391288382695068990069003141990001665407880607488634782468162252733966045830111365354570422891372388796127398303778204204396543876867545517979994063764314287284245950495076112774406817842458385786696642915845404417968587161655687494688153511117195093280044666741713620871193577017159704767154537005449895569707673398058626907637260524766944961158823979030128418605663474001222414567466346304053055809993753442589533883113690578608765408111470095087432347368037928272680732882406872823351182864647518195615231081928896848548013851541790460929367357109141228081552060191961189468226354769482597559471046651283956214558546803001747916931942792670265874913569325116095777156357479632853544735183968950260458861454891541755199977329639672355618410284664760188417261254611253349510975226809933608742380282802698452424260735329658451450066331013554511375243066947912475610775710767886689269971985743451435361464366816865181899925485822536388664383295260450556112657608936840313371642228579458169669242616007884312481586513317157531005122557597313446109900356495270805649354447270459908785071230811270469970647850882242606633470182958541190530470076390789887059956838749301984536901664622692315678026751380781895209095151474554955728030839286015316496278751403701810877460775243466966307590035228046549029820750515392141992363960194166427197184690745710530868095464534136781428079895088641532091417129380659470837231439061391148160101282705597961803886934275129581755826521541581446134641807065575591344878588542956189754046094997228969363454338829516108091697762719251882618114939548446150442051717710206962275763699170682268153242090535812353912639488888094853018811127748111772332138781561155002673481035517971297407433940204315783399742865920051604926429064742390045991058177273332421088639794789731161553099018287304110979399353550408419957916774662046683855302470347384525935013402430087575348840216863517186577668024482144594084042638708265821539709412855304530252691252335955214936410368304716587760721702038771688820613475401020208956873491909778296762678391394784345961363012084410954081764422881128892371615314070802541807544003826232231247549080270461578105156225783956018991627990817459072466274104968329345007828013951349453822177840806470065286064318657120089556090830572342805827451550639192816414202624559670839029745305365642930307401264945143413915474202134380143498889997261932520398885519260426589029844165781495438331268434877047279483590511298426031652430675658059131605304375981070398509250073543391105939096454863700588277071017294509620128382960413383986695138817460048605774766705095095310471470834723692393299488846775935502787084304017303074348755564028812246928032311023446755302461195011778825621581385092141101354760435143172199753959494499660890327927091302715867251626934198165665075179477553874086741619101709890671232504562463416416275863330558391051955016611492007170099704140009854511467930645846760594310027360517750633360222582409958978426002547474843993488469434075753632517019308692618346443724359240052118205289644112360559667298859977152180938408933033132507395852069741506381050459079774948410054506816550853765913590544371657772709087229451460933814227352275663841501571995179117073350441963083912518662251035690271025917264894531387400754500492119865607917898585236302288381841765140065010458999872187585650316901822102007857704765201127128185671750404188762011371993142168858743280107574156219024847478218261270396286706368807052923955331156365170338625169841528948100032904500934324934658143659544843388649783460469545361079888472951181896243555402080920896638716757991446617416644693839986161527803851132008012451500039621710102236864252679101771499159111796810539508319150324323355829141735739457870916967072811801432934627743235924061761511948915552926575979644634761609713118766573381801611419311432541879433488014559019049614480822035017577678572100687712440223461098690730872505666737344108635793364872527938762811819868091077764560261899866066991194800808023809832590428792580531657680112471826316381435178963816522171409058851223267719840685750884707607133088349558437402683335501127288132092945772070383385684851510919738163336967583877864392451072719420542405448831248666194168310101162097406629540332792525221578630845003959883114033767211350517491336553783784036217534124796967436788800563667823332738657643591813480707736804203662648996722544698104576486034132822980596369852238764210278411340639252572230623970827788368520411505983986850572484556671584099255758264572543619717986092323431687298682413489781232025256899477132956676355781205261423445309184451359595358433342358672062398756577308190441787277678413190793583110955968699038562379537451585987093910813778729206213300672796408646134367838579985046079175342180645623216777305447847520435080829541804720308382253688742223102948914133539921622987543644037095680070257808393909273249169138046697074265050166353912677287014074694706626754405300341720009500432861020760964704876482446381013828881374802416367908408777885092514514125821889201972515145516211574603297276287310038534518280203104556638824393551131153807283813271424446697022624870583865233936800132834590994984313048063366704187331753832265409131522092184512975362906644430208628026152236577970058940472823853058566222713803334992853776953903692753331567707291354127418408028505264516947258974995331210293200824466051164330673908981291000715614909838376752684951571507591519974978416567361564059740411161742947524302139722861175371257630784114552438671929447977482732836989776918164591023928623910635940603583082688293081866570794349418000197199848420411893040416640226079666077107545285523850109144957743464192291552359731175438901443089875841507099193314473445661272704684246978228113592778153401080942931885494348031128068894918591272685020086272477681408251839362322756133085597622014807934303164122032321784238152850608377003433273394275381869903415152442035995637139055252808896235155566774331909038642597279216025614847378472703980165605999421690390991271974432459694601444421005997589450005302062000171116160185649068461866707379060110007672138637309539281259985214259233987072519290605581206035941236961468046686960854061233211452835729449045492769880876015344547753251220299477452460805797751909081161896651600772535547573944076611026637838016520503985212033079601036240439933859271302924909269811050860184586286550276092131228893974666423611139662462607895415681277037343616816224423021738367304161597140499156905177103198208680374830179449947738325037973397125157008082052070679198827142012442937163535751062493269353286321700342510765409264264888724395471464043362981137090544076679827564286446141165365351545447762018390558391235388154287782976272434644220531003513725561356934149747873627701443627461026791759792933734655365198423921622346852863436819787685085116198593332980160237589724473003965815046950168489977614010676382327338478436275833265260714751124428266034932432438112281494223988254539304053844153793853578254908354980714057433912322888343682601986912049438707013931627043122179322170671930506302973280136614125085923197258754444205269202880161493201802117150695420631064674722480026693851421747099089057819912729748786227623353368919398207698940377552429968579691758730503611165301451766165215880826616101958234167152098619359807763475749095569664408764967082537147173527550988138461619661463607263577289415456664904176266912604172284638483551965997998951333452801890236489376992941779073555039850828322129698152064469701096348280828797805061597626604309417884685704752835442896937529206169621655707303588669862551611221246497062532819110189639237462574793667411249033724933249972570797800849781927308074009547472826007973119166383136758037561508820969928279317323772648871975933488176160707390192659266487574031709542706311831711794419261548804285350913157248881311320697390856699773155459725578065788728041981495683136965535663200927474322432587836995060018602579893457159010528530500721862693870034716584208673124597020291468228089102410764943018954142643643386103440937591888174424867907038597766315364780872268679403848417215816343696248667963446225645222360087660142869996437996957041093519114845378449433531900702086888138886693389081701898562252753911967988942887523401634869528805341608312748243051353849320854411841293294483615085311651063348576479647716292013492343607484999258443182058243611130582108194759366835588958884150108888007790292865569450396044618287826949472789175148489589355967338814463325041538855481106848966744349611538568043836233481309818392455896415916842204701375746667422925859417182198428935465374140466262819585846177014414366255255145650642525560869648562574998403053335201009225966240486735409721824957600366880767095420610308840866003622496285854334979976052096003073492934611575721328752149199697314673550862229237927658871169569167732895816304906645763665360637535174038894931376163928270820890451031604093649781667602288060970154087703544919569002277393856492733996005152747776080899136002975503602991002761245627671225253486020848244071298910152738946180152527197634490907525822135411478626539524972183522651687614470182370232301499510949320482537886682166092786790594317648490393032007483807079737897800873503473430743959728996364234911875616133649310518503673076046187201320068196983283966528062327032468819918590560902113500534031744526162551482143607677367736184293145802185989716290224900194774438478246690461436416781227044465050264131262575293980806030912222466016672959565602839768877588605597637277791053531506707469179899589136685109169316892793405331600570007517325273077532623515138580152351071082297622053567442977434903636760126824594295970811405026269486214589125614071590247246277630436179205641629948307580222065529484551037408210556027343010614950217382778446327167009365754736794615533600674319736967129067976794154470075833949171731594183015853862073527193847441711163558912417525013268759073371823637277885473846835786450213021522715437244097858035057539113344510727455654658641305343976026674032922005948352857886063658701255629292988347757481648985988409282485437640099007060945183015471020057041905072329142076974563799120232614255859359853338766812361350764811803410521643788557178551630913970771573336178594749548490239168352246569333766753350866820916620217724757351599818609312999545537750995357977282985142068168063409572646482893769035128224281943687555025415652204934724550418859509243707606894578690714685870694805193674091696961042608825796852401282043843927484789700633042674446932895623492010024648433912408060580545261268669352208053970521586477241083806321431350248718798985379106675648010671806815570270063916949337542169249421182982773036477338876168853137396922266155388611719374990354240498914240742914908072904846512794865391933561949961218444533868189150264375532200641823941492097061718479977244652771066354136788852007804473101100411485392579276536270949941678842630836009387208725959262547482544663238531268283313696464974909841234779130644558951871258015018088493063007379447349243397736419060643489373640497654461057384950289397571242608980615512717332140826471880394699533419158850062427383990361509186759132822011586482417462483387471894387769673515949724809385355948088419500889034199334796542688892371109723354632365868239042959534624535792499334657099287548976875391176502847820355838806720678189058654049115532598990550150538768757295416227418179493814037388393494444825821182871518482739910887982863091134287846907870610650912814437261333675719304247679222668133715275846550444665177542544436226220426028612066359797843528427470430717615472411094595583931025205848339000719791150504831633500233011657760539201854233826987243129058903871834197841142111657606437847139877838815648982906372186808251949842206335507996764664712621001271584284932531635959690472549602642610752461374404897879604195720139089532993432665997686283641552643950666606722607953984690485647788400723442926087563314154592587798944264025986962876395002481201700915767498566261441896190112200195701694499755471746750794050596152015556331006123904825351528555061982417519797056490129559440576773489818861714569295808698886646162367834799341137394014365044917387646766413529574678251115608858132339239478345193719413798938189778528709279425548947708338205284351799707029336871183267665571706979508487749107972378890667805381604470500215582909694142053450015509892717061908349155752805829423787997880515334924742930577473843738782565161569534667993731222496914294032436784495532816184360760485337168251270839285070078322585506031910777913888200309990028742956452825988784383736647602459493124421446556358053120302734082492854360718583667387759345549223233045110010851689485813351966789364139264701382207543696863976654116161669216567498800027616078481978791253853791301109302114456877056126360170132197566259689074684378643895032318454733981718725160487416551671426587770757553766913058474687024405056358982012651024021564675051960696187204744703030859294227137450800389542381529669719029341660212948405577413627392388458317735114860377765220946104057024870458864854301580514175515088453725078908232259552913416758515100530753097624249623374825003226577052066014660220649241231067868984996504715441505523799674750920481915108467171231158283581307606319233942158918188747334548805977141567503802622876943380049870208980675723740908543099798086398668957799944940311672566365939049754168275484343213989873889702763421105728768771970644534756973387646849189458213742982417455860721978803550351696154469410362625277159601604180295199315503541707215692185972672291073533630728292787876030416511524082029034169242589028233143672820941279243313695662106763550841995930221245492222321927342253234551192043198808593230432538371105060295994098659823538917311546778124219481431425000203111007850683560389400134409748179195745051785474030497671082360559092719208910708573003238268904674002783679985688192143624648018022650089821235731030470345923071314023473947971014849314410456025676892933056187675155388190526623028503430799265379931538912633799947363818941821071413663647958380174149964048541078263999318333295242237002924878569026105697506904393603743317880207346273017074111399151803466184527125637793261915634164964767197002946917647613748204869919219648599162651601267618905165594387500566556104031199579339977707215701181733222756556210618907637982858062939579876316830882084605872549774693232369107022171834074460832362644212291724320464770262357210895111451469239743944447482819612810394234578778958953671578244165834752576252515731069350903791750824050070083877516247002122426538791686300903278265523928610317261286873648562337015717845787945552640269681338838234323652105923239275664500607899176095721433106278742371272796356785671628850715842988126683956757827661205138653975167189591777406195861588494423557259096074271833723788675721604137905608317155842587794530666983713493037509047924111118357326328020619657837583749969540443921675538783993252942595434759095000702787147646652345189585811393597812299214623818976138770188295940197508368086100114640082564028608628379906731930239192769933440925875311814350602432640189066110629570854739674958593240827917041734789028510221447728591882305162509063606449980402418230080628930366089190394362901480909523039102656749622474947969928573565177027690402652912283715572633985855299189402621233847961589188331257498382264181549244535514056549643043841431870985282498317824904506940122757595494303687693999748269317561896821154080013273897287675503690726221987460910924424526952586062828163138853206855542628942586264367994299293842089258004284045187439699283872820912962035908916482782240896948487498141007127430212097601723692596133501909955102667037031143769026157798110612965423753501790794625752507678419499300874885345807433403430213238082468029430105009952888327198973971357402513345709040292569002537611867600758901788741746947519209887743387562627552432403278787781816160374126520515072001245526346948399202619017930206683211577126668869931137716197572125095987372303094464439966360689413901598214467250454170927726469257036189696310632190362259129621284446372188880311794130446318640543478002610468236384024627388896998490729422090316109048525652636767232119720845676291703477985391297802129294963128983392399042116821809639198951842583596742518796017223082145356448681037138957840228498055453576743634001169182031345661584101899265997546834241640531163278283528090412106701262371298201085461493518623921573134802299707609862356144392332839649853740191353727500236786524787731112484547185506769712052300766523947549394839287924830819886321090039580940301628760946113300676431399407384372476883372610028527753072817897326036099256355993429146998892188537869655094756112457683928284376299815430347768035804059779484271724089373274765939483457917363426378159818791128597561261088006310108889500001795562924401544657937479774931759817441007546518792448901609135679095046892208408613597301824590394144011155508060387524284122534581138504488005230469689427732214389631554724330781397597650066778465546736547643560394951178508204738052700085052576682241095862972348206660412444087462195459847741526923962528424021540223179596125839243026384194278992281860803724685286316864550901341111979129630067295989465040545937644586873621780522594572205944794002146511213708772223346662597109943169735233218457343206137921554151090930731223929576812780603509492462212510004731813909518698620535413747885262041394052808455750211463590934536451517014423797447067480838557866149960916641192546419685382069134278551859519339686687919484916496415076337124323891657208190837119945013125088547690192435689273104809209277461840762745830573003737327229151935608066438797087685182992707787433503216312295530927128444804707573769034998327702397738655139836382312120204419501231195020896082177149730524746134407780397366437488528809363312876669744492773703608532587740086502966540917000487040236154030426905171461600468725610559872944079598993270355641939582021396146830876896777622340642782211552953224226261830191308078445443057612856777435607166333142911808921754278041832103070382666143692114442214092547861902551544892374900994602195844571394375849660720616250503950415905377857737782338676379000941566005813354217742176554458557970174598945027097650221651982839715271691680997830075005928670696584740518289926865744856432189107152689583319291920105003570900970577969088992664184523905819128020861172253067141055594107804966106677905612923410634332826826987506097573834381202415725512556796794438570973904513603427857055059161594824750454828137925214897858248181542961360869982441447210621542283850048868439395026021330379388345510431892712744638376991737611915282926361723441664056663412896318105018147192474336555348306276687388326209500560075789504853755435176259237746082680761776751686800071944247749850300544295352571827156594568154385038610249605091261006613097427566506927072184268475363367270452426933599691400889610955586717802401627804431765952927059429642672987014508925051438583117844249384558697100469462715386901720873787695929461476925679230920158882509419668551369044873466444850987205657337040225977748390755746229465548849413428728016036250708647868721611130156900157738859905668131382361440798148410691127296668202820105117119871006980257751285092539412097652939338565054955319984343621631875773728981151752660435706027203279464530914579563954983237811748686461106460034135996308184443834393068931669727572654898829979860355078541816002355380327901044933157315776773639183931171713713337670472472082875080845732292016876282967670503340282863694070698662487159482594148787534935352493120305408806091053303411655482362557496511324046683620782032184781350987423263856387151950615489088997322174657074602486596772868161633304427709596260531689793405613017048325463622267153917596546624086950456177289767148830386644785086572525845473902035092351230714118061181752924156378537293869591024653868236932747180526711204528576804699291011731521620430009121172016988972397362232214338521640592951808156166816903101550088238014889158461093046698973514093837642188048723254170826293209246270449082916348373850503299331327761266357038052863201442841651959210192037212282469010918306547701384008591790987044504809749457210242385343644465240885585796992955154268321624722181233661442473508404909353854677726499939504180341681210091801205878199122739920009052475453943953421536721207146403012830504001888976816675681287510829270706155108640071426024399215099188344132579919718357240420916863520445567832247833257895447619678459435942593487928525043644371310032731317476666140834226085600172818173136070055266224796880272249103551485169108673717325415267989395274023481868683007878336825761187459042850081726213021033819516006094371344222716088553378611751258231840190576808321381842308266496637412213303390035927357275419574799329946135006822773414948085617439830760720285251639644740274000925313335368478159944341474434939672047555928210474509640158269691688252880495418993268444310772724647417414908830912141554040667079970023518435444791357452343806325662613190805614472865224242224823169638299568056662365079094328210197068562929312242306091798718483031520450863402886076773882004023210649684045055046660328068099003595334176820364143022017562023497176198398614913710960547901752380486608706887682138824337707686411593646628751340550720606002953460683976593832571495195656595320191468048212088843902647126207854930378177171836802208474270948218516676526234416820469311061447339255286472552739682858351577219627639915793384799688683915875875016153762228538893593582849218813070036835738834000487417290851448077959786996819602092954034589598211682681165267777891003269568021561839072081477328162292238440041986475613148760285913871134236334819921940400340352847402218139307564063168280761570897224027236332011641666100533012390832107529367670497100591704242490809424177357533239202971877966602334191229964219477446788091462228680266937343486324524861569199097526916110302309717346013087898278032646850630240522950373788207523218843559801326152454732020414166846547403888761734926319015023319067693581770724449212399984608962643095955919894822264867206157984583688142770277402051050857554073120181918816966479802887396754321193216031876069847261333274194041303611499043318380470031853476273997869421487129439773935314673929721461391711389927329241168022688131373175426675380052619386762650546059213997800007109660153662101034537038524987252590208477071469283819296463341883989579240890347440325315509851758097118853690336358417333053123882772493388747158912605158061655459399218021437989895190543051223216320322438294016433413479582028974437377964872704023608907525414487472435892567967928191717109959431940698850215797600044769872966770098400301587823252295339420037775681174186918663531362474495858563728288426865045384390072482619177750242578663247660958942392246718785684969606248098438700669518511998636303267379778122364006436967725586965634957745027453744989152058687697385415671306588204681051289952218478306571299887116390315377136908958444774375139148641097187338792992670018218036627472281728507859497677133591482409086465925098767967534178675459808802799646276651936519773741912707089985326763706030945918680406430706455955611782610406762176697639350075492044721020518078805355791849957101938628986558420053370661893785981692051003939232818483463606949571059361883195357350751150525842065160934349746472906874678817700122427532835043366059815255501816820100170660394830901009050810445800351814125170946219057909682583934525306400143034300433244720540925872308452954328249430375522942840637451501110387831117526044244983123221365861858130963687785371048984244318284144865268414335729244029090503905289241234203805987429330471672588997878064480418865478587476042180922532819379443461919144723338006922525563711055020730249889453040184242256822864536678688588467076267987798046232641859828917735016304090998324058346930246624667060393643538137362408870726838981926620006807285095441235742820941241410028834658743067642994680835203066242290519274468469564734628495445100295948200869799138344426626057676933940214532115012376980875971551853153092708248833910429156653225277963001181245127391393825540658792937074944674056175228452524287482696570425073557515454519692914150032944223068928808619128130560046505879430966699845622622819836519479888387167238400486776559673501065051693459741478414686391020357913853423817641630531724950554689305600467844037161951896639173271076938154248694025417470104393236826321497314018221241138330808681046656223107025936047133839618736860317313330583516690092328916106389642532980303108069850059609719972002801948846711352747927917850461333054516807483558088343913550743380052027429648092416827817942979466531345012513247599997213322140368948282750882658222390283231962633140113133192790976720674434923968161014100762956144652142717227483275255303366495881135564845487165300162498196033774263826322781789669617808569991249550724230740069535856591198322989166339202484331370496612183751987506398864014690437934447539125452645436326031375729149368087275955867994380678037725565448558850974144452517114441764972707038768047859840035163508136338223022851747380108914694284987784364811363473109005956698541943945238142140976870646070513870661707666522124692930029701435892988698104719895456432240556779818541997274435581382618846240054079189820665388221314794875797111273296346987198701107209050914098977488251652534957047903308865562688972813804995016702885373890283056108143533080100916626097964551539882683676865497618830558195996897397295345937195697359768540411834404248958038630485988233337063748710156843135215154411750180844815602081466702572077213387672701818963024714732391768023299295681584017676085595783706157974122431636072123451158097402149989770585787261785339739701359283035601273428585011568828025643526042057689779929492327364307256132308658576231020870055404381352519666491466973238830551694463180446655922239707095722853150576585808530441562520838076740702392209360308117213395849636645513081325995032028654251753810972670917981281575353203920337054792141979099538684625397930553866218440934370707191037048600057844053273914371631328111349136873153439373028453028612566095558534835474551571413377028766898833971142655304253793943422602959142635689702462839261173499267936220782803714515337767638006281752017785266595114176342448057337405550901202759914252458156594604933148316656165422743308258745841483653160325123219860469873163946442880226748642849836781194128510187070955416486293038409033603990489251753726783223053780675606064434635857024014132456823811007173709523358586841790258373134807664702023484493661371100127453789354980123326620780541268361759535846746158938467841569491969449960385557014477673350613232364727845580934151511573142396537039921395248861265025287113690414930914623406954789513248719649050218182905537421017280018044132145646493464644219977714575864594807805755024819654222913029278650262364859994404516497817261319151752249022539985677154116717143592330143554102478720711550541542200093602671363499948898758825193709970462901267203185002786037513467506112146934707110987850256156898728924732751822378999704044038751659747369306832757592882922931434216210679984297889609593681718338543131527217789968666792947518066547054648677832213651765256537634738670769335145371506430929162716518483615716226562368673736469161437329113091724325125011647795292142432034079528955453427977489897820568293680705796244034750852305005718924909825102227864875837004631454093288352665953657826058060751676244513622962858709096410319674493915170816561332244401818407272264233357699323944899792857876265166814135685273756109496022521726617628848198760251345688084267539849279568840103690517314822597318462375634719906293569004435195205543904551333148920457769460084990397805479663231096503129353482262688257309605740464175151240201495269908248841952928813050385597966380462991637461102155703851194131996856460685235585504033553720890944187489065199168297766346508108856234639179655694809561166363480066628947538022326198936944047885039984034346417151764000635827977059523472008705920367899299183351110522830199652502751675458250604901918451260560130230441318097938654934965932742928772971272451158318819595779348747375827670128368310910359434704768450824031997734934066171564655671624137088846360980353542498305546180888066281360645762905156688005089878852177229248031410896257393939447973213967515090274161980562747353452774335492538899590346749130228162166826194074939251417034376539117121701698132424674318644256782478064569250333325550560337142384763724264581131583268519089566942784636915955396433845344168183683394390920128867894068600054699227908766239017733672904804682531950375141241487415861468113149533390702141433944024019588773268563643433938329244959390549486070430550379818569229431079431293259392604866345741129722296362590559071325400101861918883651484617299976267672441835643213121340721998886522930210551356406836660807387250608641952245404296461034031974873297980587921515674595374029521480272415942542773916137175939559321136542306197961422779868494029326836608105138578855642604670121812490128147963636831840777025391478431942549746287107003834572927368287063025636679054618967799611418076086523156186908680338598167355584586328910948601271921952664991808823633894801552555367057542312906755246266166745343213713718535998465010680249762651271882615421596330041842076583037993967419892422046260816038519957009478899792419857133854222151907623549796229177396903039389239154375945212606861866645438850919314977697780198778497615816264172788365213336011232684928634342243749378890276203089179452797142463332306728036418013737478173159543824686756226202865567365335166527509552382499240244890772795209614963389647489220607929839184658611268453421439595656393225417056449498360687946410875659601752022855673738155882461579424669351914680596001067378153972723450529124859933323868275260307159325318851546452362274857687645465715303683823642698054136047855771935165273246828494786150936456227181289089541187703762262142604349264073538021238791443610194640273585838265842076956557398220960629727758581791737583650987126224558996816798784265547092321599183169903762947915504314014400463235662419221020240293117514689878279938343367953253643934838163468696783833219320046292098675166598328806860090132790377671047540327221064705438243497851026653123999343274493792501337541357622875987215594501188252697171538768266591740539367047459415027153518697995425865691166887267262188641861143841279883147280378266404977565429147595228636370173901641049323338764697903201775484270055116773365834985453242901032837976624417386624164003549844746548436375290508708079525285894737138373410654641105539405613488321989159892618313749559613996189540845186471432921137106553793939665103884133703963318942228824557130557994939542408680489630096018069661688382036881738588826889130610661864288435446229787674196541714411115556312946459938883377223451737489260050324736581665928882411297622472562625408093268850376174097804202397993000712487463413902693995632025896593473294866481707116465840065771862663728490754764613831406444657805774636742910272261037499739834842350294069312319791927958701969598839667278258841123936356055510330422589663705008320457522051945474637435277337031796771785969480679200692557713746311233775178975031502236546833422104032600462809444830231260363736649036480261203624543098997315457468971332976873284051407429552128725833497226581537674697892827791951660840101251438449228111690980878582934064588997349711604732642673566795593429736447653260769057900494756276818476871762678053428135959924391166563955245918289173711951472670512875855522421351757877924725502461301714692797325583027763216943726580487173360603379722620936192825752983774255821738597385982319775197925440638956138583943515708797677508041051239700964775518492156912855961102203745887198439001404483401868461409325689770397131165904291896113043351556314192238230252796191545857763226580322223138944863095720279901278456908812490273730530662220735837131506070234650613157454065335949508535476369931176440759760422971229546937144334875379318899584933210963984455334621213095910570028668622751449101207761017903313794228969623500173537394770158074681995152546071040844288500998681261350890647396901982380383542634928473194936073318888964597073138059360677622746450220261508442563442021934820246822760424333410762121034379221726647927811831464582568333583630473783753919294167097458524189910173363146710816613250053455218931029357553962799589863814063527470296930277487467240405891866786812854607258853585816322968818962618569911704927542597697079685931183432784421694092496882480795078143267968960983628196164557028586531453519852997187017633334529979211489803415408456887188807942290793888597098042913546361850239529532861410268923613793394904302194854856760736650808521609311698466225266874781891302697252134522905324985142238821806130199533465546613819662216873653321021696118148544413099123824762916094258924111981866146700078781472032500196144891001250391259316856320958150368823529056931390850531728487269040299967884395583817255956357839712018073294060832660871174702754817858897571166824404509124648079663170233868377628966991314732751350476931079676209176317863728474178047293122106092085084435195523717416955382479516606349633796489938693865115697239551336949097213354904584733665984782819734675070751119391276896514946535168672999010140663307288778718380764795771996585075529554012890541745641565431569272852678317263237345679720680475631170780293211049432039596945558935976066792959561001004299637108222841006402800527934813827591848148857798385722235703307925888974393402718798570414660424022298571929225063832853504967988261458503340294231512236488297740892594383849509469247938693499895029903861902129043196403636368188343494647833338267062256235933406570736187549656622360379825375265188854856580294648948033326416847383999979168660171333855879437606728145277841670989878154881739604424386696039963081704157972472385946710694540583535135449931545499763483257622894233743703910644028434193541366121908462969888779203414183618498092487261247450816338079716985204973905010212985640449720236224230330154984947692080072064250943799882172372767611017153255610456228961861802406432231402937569662820193288330717590928589153892896734113423831424205021194952646137316257141611689992574062732390425399399521034244257620548745659252539682833109539717693125365736572824623686377900307351885724611904788704037982484225538226125254337084872504571320554605984464318928508523433581085282870997637081818126783229558009319768408713030806012787482309584032838474687696412452894493016823465620250591765777403569141495890175194877034419012435730033361276362560347425124439475068174745945826996685394150259688881528069634447137737563541048815613972490181859303716648648785863778638407721084115642971411818568930798154795097883895057694934873977531614228491497738510894001115359533591375565759136894759202510956048690594903324896423590295241256483604069926381981241933456404244710529929329922618703607731223746136355162993149032128502335782364671342337918990104081902807952127997719759476134014567206571218036407217725495591803441083601859896089854803513197109553304852136821620461902468442565005042498201227372809765410931146262197950601292820897625932482479295743711685762504050869855792487332369526131524514348840784600822998793995800245989658327055282773878993242248018830287774829059435101184162819930855142045059331385078789038225907677949664926896885900972111472910678414759011912717807657376940681835158477353886773366725839576519839258779544018131179487881867534743103823049363114450600605548679264310464239122119956075334623625072979111422640315610615633154711394569829325158800328378050229529881046691257827901277622400637107214573413741412669564106309939078986004950072791053027849882743779851801981908424848585609374323883562718215247494995762724930535360150792536840130793318664897765743448735685025400566470193981123029634031531461872064976063343135223212686644489671658554818282137026210450205694987555867561959575216971333040799444683045321045926811205353660778818696606068635614591373743028695517708121886840261079267950331026165360193229050753911067384083776761398896214530724229834691308922076232182218361846773566801408271719095778386293699967417802026692032377338922258482131636900372514765996899430516175172833318356010410036099563356314678985949877025189275745790095592067056477724196526741339833598077891492258967306344094011355850675462018168413987232156821448802450373476034693730376446322497194634256139550692229476858025966616606201379417351338962525338030120431198218378313293618882738533032222359694507108773206451619839849250103291469072284114078886712924135492199338127669998653459419063165097813955986460892418345617828646342446458077908674474199372544502075816011793143398411214255685796816577481993827487844223598880222939399818589859322469007786592373035545634917149861570577786700871455063208494162945770289633095827846568442395759257839893834363815259135150926519524151643905037618598787535143564949505600130797032174302407505910210057337431946559174360498364412341857231014715110188628189369251850857706005904911197079335444469777524180434658467895600863682084898874978062881427425127006045484859559488773160346681809161891842874030470683628936858626173679474480705737380167733597285506129444054885961090527561489114779894823585215596952050478320012791325582229737881808444676872475797657939050501314467297599829539777688633340112031427965288012517222252981334366129491471615183818636982843325277228480549595654792298979477918043319139105715630023265058387203212599474588686385906152492105708996763585666027779955913983955530391933158657053339016862953345422467618225673535060489860793039575134108679664252559333350794680981119958788222959982242453045350234321106972875712100243052271194799711449812485056927758329445452763820023945794512172850635933776331145054629337885602087858098061681056020874062916283671694965682748630299362794646889405590361245728221518102027462323475248771281249146191334407315689695827565504155338789416903184757059811515895792752484295611891386647349219714552866252752050973658177301856434770167613291098231384146916983337200153339284789867823026936450853133500762278222271351453923598840532396870321549577456470498081079915757210007635811950525708384556880485825777926725313554810612625069654616817787741122614917132247886325046158218777015098476080558730379289450440208007905017438023188827068637279861786490426111730816046586639702201352342612314103466323221993746322653454289679437562768904547997958881211308533586104198191103908537599707721487743329816665608376794290049222756644003340732442551114385595422890364895329695541768521685475696987649927639859880459230668274687869399883010602561770241346131884684995151174167985743609074145189823037760931695893795043607166465754754392445333496869706403691061954357039988271754772055996603344172767180454601509713831329784981817902493542011391246589295908822243898115844382894230926227906795162838546604849126729507800170102627610941201398299306460649031005028340656623538267910931673884208087542775186289337694068478929350580316179133368394811971700042418430742086579456619301524375585831904020086563765984906802515191650008853028274583654684310622536611409020796780675812359720652431653451815138941528498959630755511034930793468008621853220968047844550832655815354290981858229783338589818632693204595921089601625583458887803001755836500819436255405454471956151337604099571806883603189500658912367454077790820959788539625433775163196021194118633447118894725993067158861351412647120763342412364579882693083326020123571288786891496534186800549660044017369496159869116561235523148323919695501391838548917431398344643437142368635133348065901220613948649000695125016623741428985386335749134982832050507888276146166520691970391414959322531183508997621185812852555911394235246033093964438847016278146276406817213027705332254271609386949711647586773880122757298042190038175362637081136240712485663574339228526503847292207942296259854966621639895631579829089677444651650679343266612143200831670296500819434957060130781130043597983743893974486776441849983485866148781247241128737964789962569204617187569374661908941810950103183638641821893532778641180541319468611970362121765613259146729451119868633121292301040350038180075481271729012385479593210955425891374420576038683101659495223607146866269752871170206812167745377599879925664125749735575309648739647570985257091512221769409836098020117594872994539141318466908950581531088221151425990546505244720182881186412089815670898669183440716224162896713112358179612211197387251349191483579131723583401717559547367193337525003594327160109990786403652592242087302422107378699649533566147008770304039866009726838047616531790522867218054074040529473302575214213725628749501110445985118161767177456771598660553771419273269172698065859599578316208235275736482985656669760530572908893972705613787269116105877311446580031429562899527498981534219134510302183609854792625711431551762039803652332043722941848733546456854119850216821928462736628493263924863537548447288657529773834357632447911742746791030093512716737794587505729373897039320477943150799092130533776388295885907269033110737852697537038468216485374327934495865091702685154965615743759633076590797126062281157065842230296980599242199451901323393377695023442898927368240810105045386079124336837207290804691008529990452026813566301741026759668023858375144585857649239173997167134806891080686214797184768103540117243303335986343000870905810464650487309666005112922211233335825512412673204221454020496290953000497447313049743450479060995722033379570785575740693220716036043810799614270425402688694729114851148818520003879879266689816895550243755034059259558702420475904816735997045522048135080249230212630136696821743735382670470217535461687908461181167323184733124045271533702615548019653104651623681914392076423421823604739678949403770698812047014581151324968844491289682063962898016828415424788576805873844469551522520719819152668369992616204124008357305687900464465756647998363484897170961316387138139265136392290223372636744989004810063563986834795380986137022389752329258582506400257525198440353076691888177827405054660065058381278993124838776513317264037192026045014500845361728602371182954127657966311521658048098285901101699703426758002147678594379172771642217398098063075855613797031552532183008004190223910320547095700031636481764971046191180611048960531573432857712781345399820455068344978978753680161650485366620376069995260181544320017596420722169362394749710513813303359064867773434852356216037985592147189339823423506005405153758372597517251731042071185488170483245330896451503141798382620351220915851756756476737912399552322959439672656381476645489530070729258186604706457777632268015737896654837164682216320618996441793947724775041539081509145733235742776606373410149415570599085317140415653677778560978562928887399134004216232024052617833718005061228084673003814333158991772178736234326884915316734930513100314735767141133554438079462866626800907657545510008304513498014690389507948929998423278140567783909135740819627707365373315469756634213738400681790794714244933519962997544555844807661290692694605005701430262905421692162945087663718663148585579348389774297686147440756732086684305049542944512123268577383756188058839357733284603867124908795736315872563404263095257208946287414605021911749485075716705371044067896169155565540348498127896922297429996206398523587424360642673985060666682579114791916974639061548388995971874833978224747502449583976395383156996125012985597445299801434235828058506690892698773908436139955093213108159017344786527758739786851147016552473402012254469253419526149440321049762570589875989996787680295865589882937345225483271645213289883724150099960430033774977293165832588098993257086932534124356990716577879561764180117966500084613005815916021069748191350073024748347161731292587240945076287902932839981238102375253744890904034290390305099174921791570477921396543846035891797839354422345389363246642070887193588996401216813538487123638042305531959153104469347070205651618732341902573981195368683308233981473595606611312910407297153344925751141839066198400578695055955490703989667054194712860362727808029930649291341138689964324640681630287602884885050951859583323215526620271842122790348403865906103061114243751220098077360363284919258460267857070938950616960870519694908325508049467125598082565674139235470559322178739110972272433320635632910694245239203889035650068379436512009958864198735905045296263965929924380572200988450590600466250132495658581934055911308014885669239569313887923981691719122270728293785755546963630993540151550969721161807273582629907602416597391955331201336886926235080723619289022356331974377998076408575583496466446884586190887052960965964333825653472672928470907667979666308816586809561919503961250046318079269350669839974223026886220679373590151512860598836939595602311059316833536348027335689551901621592549758474382618817358642161766922357732051878678536214280857833618111762809686660080279032116368220246466606479230612596400594372160053297848779651486848896469329982941636424469416117803089545101325880223940213733247297742737159522459352543592212430026604258749586538344792605657256446527409789819472216315179279789444643045871129170971113645151171498084658229002137454463720351633637267519586492811972937182036400371081677628712214032688631104194854851842334982018287798545587984069523180542495602688436807312929982936899260026669250387471567115382906725844979491007522519597940413339996459875252661458351034383319550789935405862353683328583377233892721728929999067901149916293304968502517322471765468130611366323701643745880616854092107196003992804933891894802734499213916374198121683008849570258035949717332691909886600419031144490437865526699260618298293025437552987228376484245500892735532595280655794082776045237818326985231461109381573086667658800340808329124983694415358351691934517833680424662590226847149389176397781012394561000965840705961347066170970598026198693019859705709945034223120477839761467280930860426957471224889120976365288074384282658691574761392654337743985444355140661054762824844033542184604594104351428008450422032875472238747056292564773851123873424828349465513684036235072690816168845345041270808417950419386699245368410912321297679216601492075606650359957704784632777181668878751917067572799893940762736473155220477921626761211920605385004821923113686045875157283200543280973919312548002119420325061126449596524872328200166164224153849676223720158125068246925959093997190133925310875822838413911857559766481370045867047427557027169340026607480121368377757488420258736208582373842488281386041534319070530504489974664354080172363281946549667073851252282675134759611917143176545558346260401012668797379272644417890493861336972396222243739190598282530064708332778208738218829066967609586459324120957060357473045910169847989722389808663848882882528660950886956263549734220433115856410351108642670783003994986467728105639452130597368509610188872565642272815085390858502505246169153174371525395278991586163202445779589318703432327714525094788587318254595206845522017155268633998064680067032539472754949428002536570727976679425800784234218926636720904504548422558926623405224391273743524789963903539166314186024040168548134057466542610576470750427074703397820348506391571639891466926183530229166437493322539862186415626156637843120855705393872970786869544968485883153270222236722467648663938556955741696740040976931595209594053705186752644068144753710996801170245384984750951398872932684246491128008821195180718735252940985708430911048726702054910806475832182530849617665957723609071711065984856635231397662097701940478286848674771279255419003014057688193791386602852158822795562188998533963864724579893427547164064041993256555064892121870532477636240010164193026638490606786811358669385522862546870255342861725399155094311707757251368687908199022257993630219435071140653356217278903746015647885477091795694347601425781220493828395367923694885089778917115510011574727106570353408873053638893326365245729982855788587133244784016140772239080203513407834735654387080711663124361935967866961266112840959112964322148462592788444425989823353188510017646781170460801378827691188933036692088935454717924837162663170815735580424918406080317560465311595282294134199452964732380381765396573648179384860808606154404656870173816280703021332867564375878782719150931907839995141089083932861829654368915910348694879513710398595651569273480153110605617885603852952999414298713839770633123256718976614170755802609775106472172682175021466466819390903931302630875160396467241623625953924174401031877681621876504324971155440404083715032401427585997495590775223453891658445489186576938810974870016212862604824649557316905132614789646606167499733866750152406885032053983830883228110205996401693599796137319012144964308964806436244900654357310527478705025904621086745121400848344316020511445667799267227880644631568301701475153001328097943428296086123364546043495889859566891188179360105332619763934197545774966236150380078991211792192752845638689690920397285325331615611077874890574358292896687017547130635619574894577523488207192713677956155844309831627182111630521169590230130083445309512856656384950624737748522753739782551755810841519528254095746621087558000567579059225793915338226507735680647061453765422982788525399126340294317244521930152890270045976903596619917516524875954110935844868038309525287169421859261910601191699129067859698901668574425625142553252091052321745074300781558845726954029050874311055229324557999091655772513219795091430427455631102191953035598434987191755369086333521195411325304922699097561818161443620449921206334086090430010160698400866758051960873886227263666587290178605353574043206224495294804483604079749653626118276322163623231956613460543979546901378641025098085502942853905236553510731806144525038103379833884874809514098423014149521841804948514262060240114418778756986569423856470732803555274532451411442214680243245994386245167005943081970761372869505844827925941675551553880777499028544973197804481685575034471441703743061426540900960052389387490718821386015488677157455589355470970287212978754086620221593898639197369740223153419583705524753341114514019867865184580641818410288476685425403353790632491208894377943072743444447835840583049818684859251428983123319204840361016511752480148347221747115530433498547222380904787026556299325912658056890944209904055585356524845989386487937026215539112458450679915079826787738222497989502727606823862181711861646062433032038126398698569082458849148794649983518847441870806125895289409303561003892000688035451147318358411099018640799538388173266037149965925539450002456448211075993304526916711786282784430078195131089017728074373795800407342366569293283809774634009848081212529609062358535417197314314786781766662037436713192950884959545225293459281982630481622288567245492485154219555988617267862712264559430061670859533397825682908068673997146065234677350844928250817479801884828764332247031026790239360248624448349267863852760524872149968360492192091379673503028386433908744293688332238758877406050716758242704182690473494685558442874801810458614958201999447798831504062484888034869028946932244451280522987334676944984867855648185952568342489372787947437540171607712242271849951862129153629073301806651287574988306884167921077113859363233440065005082505547167946449933780350109109918324451933757872353499287969878301142949275986264595146073861021245462458860912793613980529790494785171902522663585343168176592658733985510456865539569715567898161830584364107276732850530323717899301393172721370653280072179452564105416196384549050596546775241875031707359190324187844318360732692594448353519828068681325215825506719261162577814459912695248502612402473988316775178862412327855840277579649903425043874262460262382302258738354885976547877449667036813728087452203910132500433846412512834394768222299503526514016746724720306085822510884604360351638520249520350282548397108314220517274752842644570202374619305826447662513644657024744741936791661750952331623293665605796400669731220256826353342715387590675352578869934828666951011545238224740189994868376013792330485478121391352417654072297159302352714712069950108691569202606776049390497498371686520510808295464053817053007373714857384702659326854372951969545000753027423611444514754905912455440549125687828438486360040781020946020544039659607122217125403541945700703713462538541052939201923607728986810640253266750718205353700385563143599232155557146820136378246768766399508486859208017886594283211379211885140449531907802342342496079720620858200874098660484204456361252792461739853898105423543611841315226802166334034309581640956783238992445490234476431012826201346040725333068700660981804026541312766605185406322366438010635482662694924613923585406010118065020386602007874398289755133704477428913830010386722166919544303345680599769537945250330221375355996651772675884857731593266052696070272310560388864182543833674902855655161673653833003425931307749609447827328572347592612324803646670371590347897599965346457803344953906608194445261879032883649711345888549356987917248824794859714778674270400656206327438101351824920830721275172894930006203533944655316781869083992996663515177556203123617628225397018909003389655461213122503705284229323074618209075080009090729333762001599536053354720223846054357244506754446884255093011471007009255601197811617004251646329930161204440528037654501852379770042188350951100328459353013556151853307693458257866044499327202153331814134857439750963012980627768685059213919384319969842551660831031784692301575016131106510152815830602304401961961893516564784997567236817198686702792042984240161670815922392191080613449990902469544703764633744748626869135744041425829992049901808216877528821425464992306633870890728910726328064780102678502319494827442094042821198966918298107818451784804543134241549830800731449425003723026689745069856967972050555718401346787899727029571841394771604256060127118363331792289103353552612309401627948489513330225896239996059542709658419165098869301455372366233187124707631709320920535061558184581134556204146188146536698527145383241714838912894907048763296130169006163079923962854834695383082809831753196423540653894300079569213386326771302214118261861051559594299527186693376404382020671320603040669182971487188067418356111517749336413619393727472863341212372252501412420335531473544305118146832077716836674370696948000361650689428995000238506543275702855952040680815134662573356851234445658446171964473127832071696166816383366057694090396660653500136414455080508720067160895370907275980153923020473666262819246634641741733860002301445218023013021661766567499181930676798556768221848177124203693640090411521634012110653962720469741120536827995942708174087181469000560476733071621336876155609005637392507013377841971761208550086322590863317038869306781949926852767569831490588273910209755721631258596080717065922339076687219372212423546721714264170728511249538855083134735297274982812695480517474231732344064461720018473588251947012470321215826721653809478019525843116307487873845082923862362207614720671679579481048849961613870536232577623073224429466337116892193836512294181184405992652777078694801790591324564075355648447672817153336345187517356149850571438400994921603422386673486032673195372724132478704386702493020301076328013298042999483899657972925286363231761494758195946287629749865356939880570155308722124450547609828652594383457095380455584227202848032613120302910685300810492821568625412338675306774659969822480429102457846736740718073510121392599046459531547789369147290418570924727621354457934052127215703866413310235310461640348430111634624433964978117366548346938466750364229803050640057050394886553438816423550019199948328125759383057672555039883229540472873247045276771677411745359164930408678546401378381336968220226283542816266864644026570465356684200132728709758756605644800615553588953290557315748611749227413215180202447370684654161648147005685327792718729346336755604364833871537161519194786633655459907314226327894920885887949125573213646318519069374404374614365380640897334898590295963683199437622542939562364559119400004286719527028775523796354822203016816116978990290702191621778286547860168834800441338854377020021525657903954421516470878758556956362240745748548691413176170787441789898497171563704545987739601102183847293141208853749221203669357861910218382239829039070102884625956570468849922680539650984963307774111113676009190422601565153037967574944377606286644554064357593936461204980256746679384505375458874521462172722537056191362384265853789987680761863943851236430775454584778564332111230020770099958189779846126851336306304096673872721251582511430004955824153873414960919222715934476564223844834779191373956288818928803684951198918463305926886391442430976654038063479562431056271352373251475937491909332421898747518121427496127114266183080309195938630149801543657577902929451206573432111139253786511840737088280011904807394868817723981926427478947030924958422600973557474128367250642688334154142182074595169020464724292704005342837978304161196833362988228316403989950293822906894387737063167567298930783319515765061115625167645155995281839551460868665345422668821877088039210091639110282957270576901157322480808492288147022133720104859469405086829711407477255600284669307131096777286668273301911474523561489376059450995475554272329891716267591448168784741954216529283299324288039288298525775451004397177142840529505163279791081561413267103248575323748539020443806712305496955566112051738373321481798842343456086041781912841134020032714866424163351929780006400234467783365708542981245410549140333152792073490828474706334560607384570805835052586460011279494662327136926272294845853145634038779821408668735920296756995178046117173040716543621220805499539939178600902158280316198188186059524865219168387250078053363171511221967669834818696508682968459679486449016165988283904839707524002734617945564635933352134619002030944804578373453251931414851845430929618714443469548181017908912402494625507517848719096988946307193180854876142369044904789192092395201987157307975645905754505356984594591406716905621709435093972134467208600114716493833601908836103252417622514903860743662459056071759035451035477314896483391192943240828244738696569829368091970328560120325371640601097669796679031659662170538039058627737300585257544856924980510927734417676353768251468597339014695272033807564603420423967890069838782872915531446693548911667031691060796538385346954665704634787657980729275601645487021834829436903979650370822986207062280584592917718559585945103143853978122509003468777625908730190325013120852380727537723614844712951607261892790844819046890740630702872238829654832824745099887456156971136970870960230294818324083911067360068129528071212517595012017893618157013284023138035056193798000826141272108720675395661729361428859873351339512174742076753020565688337231349898192396817746859550972111764876598443782974252544828690689681068945154247268012702186490307134990732732807781709963673090683105711842726811535862011061130134813119485840207287664707902345183509800753573535520075707343195356244873930230026649601800041065798423073808401415378437360679118540545795278551426080730761270666847773601743314005592999284267515878501474728102248258312672390231431231401484458231667084753658241296453380507997432254282202707502508397687612853522992799227476709988965950705054833341651306571106656679404576737526749215450066719459376301740809040962006633658764487717538377695617179846726679219529446719902561346659848121581285732411171283523995783868735062100066875483864727984180255368592210534328368788306295980523395904110125894500428010456798319462910498951776620522716522406985542906910630595099780765633413321885215713726793861753320453630224458872851098749857494180097186825050692591090389773501866747574080342402349770705919931761150379092802658779190754513375021390848460440102630963489933502839735339943466052461047849884760981852784480884472867529829127477855973500180293592803816860516089559948789767015710429828751202340986391863885376060352436937732224116837987584427064279689808825668444471124812582201874739340560232652876143820298348746862050833632054250077605687710871753671419260547249735661914195546495923813741503363364977003906343713730280207661603018057603888363031177172468217243146273538381082790101100803306526770527522046716071698012548564955265265432845600545556202977048155525419983309587853861991570312526883225719210409495531809936215610820297241843329172762540326443753107191851521488017018156315847639109283331381953950529244355254411180779032805353562759706292961666549723556979644581726756721735309870972719020518964673307539660271165122251520223262492544784553643335902883479536679640946605212732335986209410367814427019840995025886279289712794931743501576795685807821575953499536940496622281844650026286185755969127856154796449248523573097641374025448313197924468906359016761031626999735670700424760849921719116507475259370768014157531036031235796970396037997430049518935797479093828789809328389334038049319425982421309807655214666850125933484444700618897284809092512276100861481073488760269325291132752493567115744632735066173670589832996385740644698245268984350687278848051593781259224304058960315783132042671169643115946733847818897823684600299246472833277748994573739604014570340282853182168244791610516508692297769375529775827632895973995138565757837874546192574824071796681899226408462528932221614875119121053348705705154047951485557500937626396333408300567802352143351360186885948617912354853482508449882217439125937622754562237173803725648440254239696131033413157247741431901337998019765291049781699147453891795513198093596559196432700470954876138503235295394651013774011758126183787078018246790725220399384524346386113990518395880648114390810668519221554031715152525939168183110878648438095521240439191882637500410531447272945888738515656450902572721711728571055364662035825033883750928236281109232279751999015532158326513437523643932817141521134678004177471615557644904361595765333137189816442695156245985099186427315265196376811332463400401221691003641402468449691693671546058294256607857293019708153401676528103231692459884477814960821230465427641195401886859394866757785563167522323236192517430989570068247230330671444688452458517253071262898066320983377592781493235102140243559813946701136316006335815159710612141510254250675209618209046487972140571372129125859271491684881089395370068170811779337829522346754027345125283929399998306270781808327032081931638617150478626157216170561938583169646071280380339531195742026318575020603793887524118572830468189992321094427119640681013926734855556646263583707093257526910599895865728779275585747599398961407447244005036192062055115681752021278038437634885333991919922813438098865046664465076185582893602874756929932270278627814265948468564780771435735447801963197968959919651779595028086731368959550364035272002957511609728816405595778750073965452860981886544208813378111820202380412528555884021470462855041827005248993986633150195350059062729386659105975847404069870902823302806730429886489683232254833949847375002933759474993330786073688140749848590748519632047362929816267306179914592781345103900608235387073277819609111694838336543438236718894176160561479901779338516597059889138988957861627508696070806591016012573240494311245845228372208302863858312834887817678054753186586408474794943080565957557221491639008104420625546420204552203812099388271670189685949713280761814567076230876666836538617812959499403213244117926735784127472025016945390077431955310624891079496128654109911865955970153194459922118009087530505718369044465634458983072328149763394332296082456148202867322758724174347140237559188492025035151075452405922944325283828710359673932477446900016788073964465807997832870643695688257896957581217192495560754769454613827315317090327382949932913506409366692259889072485942088864192920899415776083949931673668971342194642748720996883051461807835820048642423067329402997714029931103208053168995309806660250643793631017231122354738212426200714835488368533215901714998654051310217560006211533001108299774910751046356783850579758746039972300048538528973527681571638465899789836597431362255686581652504469710728774825807212456862798550335463812615995628467964211660865764746895291692171714299450718344926241737360116831875365825969293622754934560875623546227672936745449694069806218736260130159684766078998028608234436486743742158899097309899992109458974520798721280119839693498448309207774278981420532374967030379667145610091636956426222206999440966210639580241682690150482686281175541433456997419962972674107224796433825385703260541943294691501360341827647871338118068551197853625253693224683076394686718457739171938141104058588914672636666877989904163553640983724046538690016617976967524661553251228578275483986084090938943414678482541073885134740104362770525425332691773425315771201502410424430647448889837749727959421407771446939433178133123823416275998191139677033359400903396575590617973921239568073582498976392752950660060642875326864250142165390761462849699177621956397385279872642013767903884036672345266407362213394484258286059006148988564939291570607056679178915761932582779922726158769775095892286962899273495149147414555405129100771754905110321182292815248474309452980326044310769768129563504617471341403498840301787477856187095531959781505006845269749559466840861142673388456969474695378974655666434347833266420711717181404291856173831984231383112911494703998174564255968964905547039244416957978838263020855831854556063374983927057137177979265543326319931855298829227461038747443840230141479458888579172074048158916356943694066685275078343935513362495344143085682110533769259204010085604450687884403355438812775834961932037959362411148964882064194185008308829361118841466983608098636921748444911408985148799548257842934658533245060457065852635636732449904048074678385076879024406779074222129609017679770140762267601784249942874048741638351725424853532529688422475074353271443033650769468040868213854969336356690355705528614059963944679612729409581936295943356928024156484737722866032994774896899389099325434226549640431285475419600817952690739511029067529052494886300217553442557705520453462379337657515649648396058406274175747394230093954614645782099355283260797249829216422116050707309419903408025201558762558523008249853008894469884060267410411195567650010624791178460409603599220438167889542598256367636928483812903326105992461288512811045297512378017328461099607829148937891279922823371958987718770111541386558577055000821548646963731536693399485699103960643445595880120791179627891383089585548569876570678411055068595950696753856792237910250932944086283551926984290969537615450714209444069635305013068294510529199889187396750812685072395990046204728968112827675510829205149092963567257484173526251805238594000131902051114329928502059185326772496084037925229618721784641783470088755173052162503480771686449010347093847595228893563084174010306400990011792746673311942093598825147466467883281466760145205284895801004177856912926084382952779256901320001664981088986591784862427936576330655117425683299297114340726079023232692621745324989741890996122985243059178543853911266485062236908610920226642242221565326329508344115599247625462039166201776219308799196601597506772249223839454424629935725747120632686389690459556753308861894119277087671045829944108109844813586056201539474372332259472356767577240905383780061298464502280690712058700179367304072805706277396787357740347324471570008795404419558425247686074928157709099456175265824156502138757056733553911023456060807378716342455221910872468385888198358140155066347596968663843240998254839394273951809571759922771521094161990387846648328451021501800883398318315077693435770303228212532722931897261479848814054708424026061694555607876012410111642965392721580024095662809570242368534783606371154755328915025196436883728640972147671984911437136269254274385500635843683508195360155244555986355006923521942616841543081506100198279543790299547027751722762543653086335849882165420128625781269042315186973294668451706965904938857941121081416861021529020642174218166943392853989159928268928227188022783088298065731593407444100293509076386467052130534044622536078563863363626030811908508138086988321109892664180705447458696821680641502127314350463651077571450599192620461986010290343517562745907542851924196528083722151776052516742095140621360681120460338668261715164168387599143178014276192015956666314358036805608446055139160716825944281080402908429499347798246719437919740841193283381178718997980241615494330754251944100010002413349148734863203823055715268330839646741875492607424048136907325261036535042671819999129394043833498801073368335363746468282748518820313682368102453656180145743680355655645048290279338636693504104644152294523239359800070332287161538884863388239315476920628255668402649701715113864916500417779983604124771071107790950699162977986255410267483177143403122917580104739843598022341220226462961148061659360891169727182224884215371268450764680585660157620541017680384452180064363473627027058815068959699881050110689349668934009303236973626279807075772953675706641432759758744618571724100363826735835407289096138073634310563958165563239500029089012928091590772936360850406302652368173709136540163637156754480093454928178943371091500494369596864126809428205927069332420851197965802781987856937212318321592604304722698505717277493913831185769433271257755332350344545120708561065552393971911179042061011539372428166138884457297751938771213363276200829847908502054087379365778845463638310759122227168888578610689063577992825172753711231163114136683741764755599017541961478312079651463963445070670253361554973475201406837854339145280259335534642075506293124194951578161619124819947466522421153550669596479831278186393192984761886198170929186455391760248594088112852177220050262621311665982935699063305709732032445184502656719752512848859963254732693096106657964749614911171152981014617629167721563051183137687192930690208911737280019815231466691113520203834308452943751229617546285168355603616319674299448327091168479891432304091845792251192436099810993385636695281680138117566063038889002714679210235464324651096179205012728147384672736346873290452231330675939838566177729950255745503777194073038736612878513885017368339591057860799304825363586283159427070919024351104970931516968927552035102809715240136846572438874838744367040654521848239262421416109397281273779216592024509613969862722531227858844422857740807590027180921848324475420118130092183577881423018062406127831578714035491991921654340043404570006756935053336533984863202256245819442837341601235987640596147781755738137155808202878329041867254733735792765173058226362168281556131093729242853496303163347939382688712543203723222405007242401791286056390179848745926383244940532063564519714404322624422959831714054026963253031516041922786674589838332115162336042469738804850692220034630321778644768912471321716022286680606696473156682428578414981810609898531823754777458315747076148542022728885009084081488727076642799353682544040665189965989728941273364232564878546530481718937504533200749945285007715503540508519929066841139273927613759031914321531181124954211967463229210429175061240294012567945724588080775032991221870612113578836184540793196058606981575374447971415536225066797234313128407143305545850559443872938988514087014198008293387518686889290486717789327952687103146283414251044545029073451828561754768218307837262390525514306105141475934205941647960368863231334292905491235213963885858551119328831360337005567198655251672395249083135578213991984895290426661682403986962485699433682229136753315477516439144174459626163388204436329605098941689966511860968559136931162672953357269086111083207743235065342253742214389140844636511822600742625055032301413114562474489862253958862754563664781208175141332473323886741953687461138264072151073497962441609438784230468508781852894233224708535782254291172913623884414059748662126497573346502282408419907558495340309740607168866715260059337274925581207447233523398920064069458782707290342840124376051194524078764419349568035381327887152240162236813271412234063668853454792595694395028451877213531025987541260299263711430672831944292701097919815079743879889238558497792688273521583851672965409597875433908297487184360923799419652394845021089593915633582863920713882299903314005210900228983002560995774916452459326588561638551401419779548959801323253027927728892323929850213927430374713078912141907997093846903210252579030839832424241696563505407378117147135265582497148102124492437262918858737807124425750852153076882659874349885849889340815334671798241230770956861646148449646966090044296699734711936854090965159137316152677192428168876345921765560213333767015132722299527712987038367984696410665461290505649121599431248711398698837481823653516338979388231770437620543915942129055078112197671003804170698642662093193614273128047699427504928092298528019634199506135349068121457422989640954660557181111323641977568906157018088039861530512352543646315359599254630522089497171120966451862535194217375356066317057746778491720973756646003757772100577647726519583448845827933651635992474678117259097752295717569132305145733965407061731570021436267315450470933208026573262125304425663495216606820303929001358134905318013085276501588990666958336739798010517439126292596908526964808518298805187515013987538585678859032011302064732229643682598989330015663919098575266598438616262049333881732267906897051910889963022160076671012267470027861512125614648995247086756174855670641025405608515980898252588747229550450241404556969696702916348333055508627081599226799547454215959947046017844314347830167969049822030793988917953332829248283992112511722123141998802544431463816375712809389044350102168428839613573820919316626623046650292377106307212534925713234766462135168832104946365099508692075508621519481533963659528888626328591762370484415161470723848282504825531808100015321793158040026182391335598957127284573629754676654385796547680111896885712192731995891076591686317852597330642032541755437368151276927553987459146139797327986593779005132539079613365999149972245062541941335338708803930196007431691949779353797160943142419352563014143318753314232668335638282457659611735762446686507302479588299005833292855510883426653036005621279877143948589162786894467016917868242984269108605086154453561726311125140997068194332701688745318176780358619439064298065729165694625730579115765889622561514535228640514337291690124316343224617633299548225335861587802567888006433984694026490813998084996787255991966704983661865716892338398668388414048626333126358936166290123251145095610062507513807581403972653185913723613107915413695768999342844700513017713062805863866335226278082403443528881725011348021166182486691304126007066530707232373692128032428027910688618349928796606062607201189714070480827596662155949000277097675170537704590116493013629872745676537799361728378026940334166794090715613523530103885684921581010851844641096083808389025945190789155338101096717407482024411944748168233349032353325522519549588773266809004177573256013477167141475929746310507164027561826491470216790174049226549212765168539029684636601689133024859384535520754748626403518792377160731259874942552180665927522428555397289896506028218423185348797546964130583033614033308264423890245906296255650090463600205911625350494290780279398930661089207140152589579174553656135799792107901145564890945630401836087333866989067074932153084346450787628716327366102041435874720170380603334584150837873749585897015498625875359381268422438450889756634675361650200942767411783505943633902843939915573908365958840651107192966820090047242514024227498309286035096075752786711827218963864361559010748612327768336617227024999812295089850896109863564763054010421030558461411506361183209505780858354806923318299030577909855747480611345340131431528003958969533758449432565907844049777814743132916255891744300183257708081761809425674325146111336177962858860342258691529275097247063797997941282219598606944025563821190416128122307313967274397060107431103373427162760070121419889408525273877755622418846778337783491853793145084453960561136214216602474533790115491215300716238261128168222750111176275432463305970053603718018625524977575335142009154148053634422138273334918230163371049008430324765647629520133629123836666828995176000420463225134797272249013116130909618643893833071161008496061230032492548366745132638914001983667363117003421127298259603106168568754054261233861824467385003507305713214163439009348402772370139445710223654582114805662173790774611864104259874909550850799242624503563511054909344110443091629310388201783242105823082049012318397171645827072289694603774989383014522253098377566188782539058517887192281283990803926695192437645342360483691730678832806559998170129627883335555587626028055879035261007294386472756007111974518903630386821839745142724948939571779991160585321093027961141509203266337326848002758405998035936253818702779253092888340684428487738717537776794275464663041558581622016284515364184313440687782120063225364014004722799034147121159812907275083221338705991904047766279159637176994338160109500957894011587744789228444980500969726264683467308240414419506074101661621680508233157096199829075349434145060100036172769666722225739330437228992945021689201774954325610150495482460091980655338425457463580186240227509446773791448372586948159164434991507387456265892528724466354403294029029296719609359338285114008247799547828273663359454925900720329628369127154113130299832705574694746438218840414791379032959796579646208201000548603717642796124738568917128019574296776140253747660230786114533545178042893175599627495195065361683500771250634635400332087843769483857908909366068110361349172221287210906105739003504141841239252852113552933904251238633627674749928665377787380854808341200093331494246310535767508985814372545512388037302429537801723552652753967367170672672023883850716296103458738373679213558904917152131843408329429455438962297868539523630720517122584129089982944009220446265787892900306557750334381478074174595844607982373351518947784653511574773857155861550144146314644065222679281274804348888783897112369698975411725945588768463533542689567379090218321606487626085237716698184208536690717770468962412542019789550752439887587112689616902766983782180928854341870083630333941447676375879750275120970246681454726756779281915116592867977463763202931842048405414986156478908459794300750617542891097787471938451869422742151941215366155249861632762487851678606769364033503193931027794708405615877529688260965975961498234555827684050521078592461980937622592319673444147022802629715214994918875606842811977242322312735326439542115804420501234281119655725449179534335467688589877625735344535868485030166021645724611675416644298164611751582442808448221901648923821878063858775679299449867911081447742726623075475511437034260893030628558429085802257767704231608437036329147709933569877858501707421670619469745426671521681643075611600531584369151911214881065412388256206829050519120357338747707404965131342063744869290468554698564540522631829782064159018061320878851567416815562714781615462561111533723674777410587711825693940948453324074069136130590207775952247306954340990124041539240647995391969273369678967291852578915234999131130820816299563641143800257499808158016360184518240508845508372065918136229409415674245945436310808528324056679915750238611022547924665202760350736421253683599510830881521732657938389481328103963421085125711445515444872220990012095821423728486110714892649743725243423585864361136391205688426192251096240081056384071279204089248661311307973017291245958006039371925199064258879193135125670131054022513325946108141447977715680407814811434170723490583618249251590026384474479712243241108526910475578172036896133086605905584403569241343649252323773205434170124064458257777538503119910137597221452300622380448025154478003018488694608735638718741594085383286673018070736904441266701738871162603558256892675309635307878177771551196613291605826083140540597796211450012471250201110850030406071247357268030683720803500308174842249393592988777801414371034350515067475626575331871607736229673083597776909493061843583903371999313757340247681054110226432759792569509756691417866164258981666156703712375808991521921096505046020621902312656525768445735059575532382330145194463827357390140557579344395310735816855150511803576380204194674246771430343794884410821418452029443814635897339510646200488338062579004855325422014814060989854889118413848370869003429017084139351944783790414790806354836614488376359396700965542832793855143876480246358486901673472156426742222892888551628289676137946707697278032127700301179523513064099742912918234324586653367832506318227914418638956766390907548323551154244705808212356709248191277448181670086922381473387759086690237156382366005561488457575201670609009266663761802575468710438223934404371050975765021957150293014746323641082503188274198263898561187732092288536845912010495177010607097748153626281818749155382366625000153336972723835192790972476474055372506407290205692697982546833934817939015324579466717651855737585051868660491038734934179107431207276307994497397005055899774636001062779159736745608894205773990272500098253834976451691095942470201471995077188383138788707172213838423538112286676134452192463098217684663100710794125923274699918560359051707195801877142272157113928590298733471957234434442775086577542445077136745790279170371366948266826808024198478659859396287889084977724894727678493540299401636689797696492612915156784734543226473926534141097150399508079585891915852155739686901604847096410973487437677243291353774575954270984151883383767418958968570951841219171973007362174110744496074695746855596325244749697542443323774418006915756596059309576244189230991696447031754677059136729057451753740360814851170101471177438534662308895042115070250679276100455844999613630544367536404804340539374321790083858224306401941112409808979289050407926711506127006744675027571399981660526682338955423092404154514625084100694148179435413680567609658894133377626637397575790019872835905931544574834616939934126297737355425188799274601008195600077476343788032456717969761176191907503470290923571474146628470331571346002475901547248709558604662938578640106331020872247585113015853705861540755989908200527931779464318868950779597945062047000826554929203253894630987400055449279129190789110020063142249281089924957937090017635852409465470425369449742795568296340707586189434262014448839244905907233828004260075173186310868811401893523875225612913657826397883176818940294238870470874348112397963178248182244798363302101787860445171997124971601121599476995723657589984842855144581333547243772664388275015879238687832865318894449068258838293669875052191833701535189049521330122409425561159381351872870771629859947791083278718828392261097114564975332365161326987384520642001021673312071810423353020352338329918273541408910433335286050328257077666799242683001469377918830005764616197417589390711378495285859129833112743943446796529230941771276541489724762527245538918776481072667216855728352379532767471622696454415298828122748712869963640913356305420397711184899429912224620222219583366406832743963535080981256074374265503269401510000275787470180934009269169041392085979931726873606129631771503114597203562095191530192599165343332485081752108591582345348811357997301652558405033552697451237430588548884688913884956117785056937635598569709177699122704321071853119152475610782958642195770395443451877826846282066782346235109907665631004410195191768541972065241019889851406487234427134651725054460747903569945086072022488852232484070465453988439739460569062305042974790358859818388045838220288651420907257217390432958355651852979275959153068391915123149571544017723507859805656362838497915834290772067955149126308106769526009565052596410361607300685627373929979556001784598676746071668195559724740856104750234293600595962860008984657487509013723375112874581187080996785393419983000473549929343531568149374420905053760125436941190758228121515486366375787907576514235220215599617640823191637376632749767535426016103233204179303423864734705458511664121186242831306779235096534602731127535673016585647254763875156144987626718123774454957397407087260719909519727719948180062269292471770372816339340001151165733394082139142529640666580151511964377377159375156724995083414101594924253358314969380844534026024339423051680935996366778857392298409547494939118213445214104148810241442425855057301355147807579762015767874784797727280526344236805312863739940001929390443931331275859012377249013234311726806284415305472623445706308050596140852118065151318343371995321571153319579237019230201545694935279680621176761656110901225199046824874734222285668974466550212357368331554862680235685718828568529699330767853460613266235436894402905599180101000984049200267309891826424204560974769734935233766760420937606547764823441850121800027696376043893654925166451780257160893910822517334395856113622582282819522666257509237152116137266620231860929367949936385852268940228626762322174517213365371844527971674281241958661070969036875280602888761230397905640063947158210418070561032026238494144304735402051669247967256056056543197419338575728629837738664567453019124681091119786350376408877201708115270274690085094713329016720029122965117777305402088058554857940418916576187074890297221743986845313362055708237492048467511544392248246349133349064555308963892831741139521363191244744345758390513907326313826135164683886649866525194351323150049159900461302464799092772783339279789718340921713394407984227420083920606672587212492387945234042273135110427776531669320378043466680820351613116750918801294113583982584283306288610752848931659025434452657979969800902132909252275016952383172992353867969085809449644987152461510167416270821766086777423077470654227332995179647743867280116950883757134576615603176548172019887398047958437134626078413463368160265268741565038106576600283760458425292792402194288246931719436642221067494475471856813237676246021685234348376428836422815381593204355740386144241737479711011744443251290905501499778761617573890411145190756642302235307391964318243281917266394911892879074622390085938052806514923956077815874028712474593907939755465983061299128100275444649068501627174336127495680161277712756909127163734238398213535689690907821077622804781366299068529724569259561680944366814599780307248066340855626872902244087739406713802445336177621642033536811787135932760278591986738929183883687589641761715294000356457946565469743620100738029696232432755272462278412647887133604901191873706998041532428926965119967523864439468894887022350893330007239196082435288696199026062996819983231174862323556648880798325270676724194129785970414133760283676306042095269820020475519607316514194560980404945004601255463653725349689694363517037311636527881464701260340834811093535539715044495529140324451583818970679758252476480734149898950283801244599779178926911476816294485548480643222488417757352285599913613303569459345332212335539803604765283647270526567892607493213319159016275376292319846158205371948834403155360070240336941758153013021454436899088713300740707173970742280284787797905832530701782438464885537146743517968188920318184630525264037758141539621944351548816953855894744475532934152951412730367605629887272743956036022548918525727982315378260046505868423851621414465595834511127972584951276266716144174219211206246339211872068721265288960039905199504983272855021926301943721823683255631515055623596275107849534098533059513502472523614014753207445221812708717494761877622254757863791421829096528469330363619083420290554266312512370752585835206308979705604435894967080629959672613510321507735675782811387592522592468896213800039255145903687943377817464477680052685777901585013515358955404398001696045448583469609649400814702765992480908043346109349540547660276721601668525100970900402795172521897776439489117676661922292472215853379940278497647366766933936438322060772054202962408959254572916096772038555565048469810227653201476596929471562527533340535241214439696605170354270055901280636353095642605593297710916630419564384980651554341074734461153712348647041083958291707160261624236308441021447586337496273947950078638677975746117352319456210977402940340536354312519265819296647464272256300707180785504423164097748237217569257465213244361262409115279353942644583869015623398199946798388546193503015664336129001075793117398215301184463012661461624069312173701280553064917844775793215674374918477826600667913799927279813631856893165059374429386345228667595091726766951021072265600030187920632743622051257018030500253819841538590506821717335563208383131024028523426577971275723358395770978913913405886615264941778143822846907512241166120035884249348275767256992254600495353549499530338077125925515173722523857003005777425378110885962654541019455090741928357721261555355735817265208277666817403039459716983048034319719445226415887595631447723976361489473292097062307195400138943070948146442439251221303899568961040516518897979611110173042003088241404181467817444960130442690242408159668848859148021909721044605985584814825540569477322604788053855329616378732604333656403015176153253278593244586917619558520698315970466858686484320498372807891053040778987547408001835648231011781694572275888226094026301583282245633716653970175577473066280914914936898087698889166726944104755667656134943436430651748047440625899330549008280921119595887030580155217264156262430086444538630264204619337896549200336184752222402033135893474251970617084117692431106718272196286600881392095584176502501665018484658709404628198885548014336975089340337828175268149182844225182009904497946470118030579198757734217191249383873398912380610717468279410420160421704632209500467056095291006849262432656144155812407539754050954402317638196112124953758840408038229809691346596620891925747687196107723012868259234207817307882114430541793394231657612551273606163093526162994800980018302251007498198839151017995352357362765006228616840328662841087528263122952204830533285050634300738934860909415712224903604699418052704065513033336808193159999773378265768792891153676385276200970949741946624162305908043664532540843231611176671628409294302855582743917114154563455941733811710278539143975571284353013829651499864920391841877277670059916911068942433561282828928836050156865832760510292574054545505053469654527247046356922628674673893607072596694214752742662003060284289744776868896167395464880617745055144661576665285235907356365324889586829928937688841613842632004443296909802261169153826325529404551784321033970904022732196137219812050993078693821978748066138639546660127073349090838793297460329636362440973026813926407272184659473819484607875490471305064287825114772459013434398363581222180722630599017465337295570317493813376554681810433147812453857927901143438460829036018307633095887012050726692537440765207830332646391527129749049809942308415127003363209277214957342040160878154708059012026727934209448867546417430457258047252466040788850138994190690439674955136501423299837404050380773944552044121883612539416534520729142934523387968769534580941953029395380238243034856638025469465836941656318790764276846533584527800602406991492393852001266908974180652240848808035034733720001861454845775267091427095965992770433167580997660861230522746037296873261713193600967327649359095925396140853995960650459452663691684997612734983348520389820595691336893954254669478737067473925429322377290568264824671709025908277530897499314791065174078221980163890563705282234910410460255424231991162615414761571656707192069052976829655425739284198517580479546684899949224752049936287738347931821191135110208275407138319950424017019374412344923382064034836463804398967888707393522504351536056088179396263853922012561194311966039347620535138686305183437305723054758687080386688660132905870995996055827063859819650679156690104316936727721949182693607852478506372218730745445664587060490389559436787102088433788929336059637682907318735281617317713130421915571016428598092141085125673310982259486699730634978802462912813647488268698367961010898149532487820049049928231988514859065588635188105709985697604501650319320722844071286531637183995231090015892576249808084299233217470912314679072281396711006629183904703400455771793367559347736404128921134189877001724753598368691459019627415843842675683497704650412613613901347880094864441492249804070127359850699751041505149265234319659426398818960902122123730339359569459238770623970377902820341803500023368062411278253096930048430278173713163060590514319284665432648571666252519734228613565776035466950958635572167682267918688743304422183679170146891026544237857691367532638287703450161117406525832009962249923387315751519859799781697667964590402081663827164651347267250588339252722236980612952428586025586489132295609200086278435010997797668401333359711698634121605081201606097217057245731390639674933973889077650465805886244543197251326267532804971130759941042808285832829829956337439663814733656824516926777719076151240511828648824284378403362248368179608338687327315351720202648094380576165612939063817086031954888829575453853831089866735884733532230683984030929275005400858073857066244934629306648936147128616342512748890183019867516321247382137852343502812570458911931757001652618552821246123935790818999866624223817864925628104801790361096345527742745022035772996276612830406233308465973141154223812621274048758986292288857817689893123478064283436468033961523558096228673100851790672752844804715824927210090243967726873065987945753751954476114415114910769380116494517398090302726133801020102078129456984618464780593164224834037093227276546782674739406147960262967644393989354136574580269909161952420497166606633071641628034691298219297461809294981754337353453549369144370195936633644196125179483865417207871570706230128294381731510549729674664267587150644835249671649655329143958577022742379862391770555097369336443970643304960741130503879495265605448093848328502563011126775666935816719016007805815321887085526282115907585976246775785439454446633698745643873619064373866338344514771113032546374911542771077337277515437902895676644810299419253233876546989394116971134464329850343424192701823470860166158160847716240319112589855245262378530793594121604478566118937239940317419125618577421521113041360637729108229965182716237476730072569512926294715306777287380406826984469093760781063581095016368227138897315085023448160123816243860022703595214141903926029937568119975437984812583641826684740270236428213840878875547053646623906191365621648694299164930038471330668320720597427144839234874019352769106065817976070798964813687864586000277066631191205496362724735605885077359072267332976180931595516256985295482271544984894880179084401892436417672251310458489242719869488860091397440789226102178079864695796101554816683164053048955317910871902778775662977460931766444818769358226958288681244111180152868126435809770555887940481720311723740579667902390354116252887128969473691396061423204188755377820523061852480521532562196419813079764214080499224394121046866718372187427334497196210154693940245318584123102418178671131220128031712001848446346038903619611970795933748036330419091150502327515821894789685456839384856034264138739123455455369668123532805050608125975630132254412260811730287378228756671960786076429923853491086745745375487720311169159017397242755860223118074734771533354343876946837784579884570460733467512873794243917701829938696801375864015576029828058398373477064880686584206482438498502150907789592479205928726553995856091787237050599000970324541349661386671395910344700519314628277277964221964592241913392254837886717363389758399674892050678819357559426704908852041910691152039890935504601994330057026683234380282444408076541949456161231379067752387200285705119251424201338545067532373803264609917193890635793038874060304121602283306026161006429683824962865082414613736435161260096294467782726488735894153170312682505091774242093099367995486907629216246452905070265842349223234977104291159910683670120211739161827043005474392822995249509663045994759672076207443732600364411097419338430040507880567070448020499924776197545314642472080199231810419821007586749024877322797865897360032367896134932836523967781791685709411986721123146426212660810231842810387952077094299739902799845031092321389752507422660448449583838190054441384050045377610970463990010560785162836605701796049922024368895158678998777886732495188932187312908941352720482717908636865335890128096481073588645810507486936554709290697319153521093242439982339445414758384280378922443594812257324581958257099165729800731296711793003154438127720442853615482358174087314373982311443874062445029414855298071587819317381938297450558200840482249320432624612390329180608200478189122556268693959749197475755295319647069277641374341902794246331194886318861196715358216054594952440750659840502005007733401415221418266651929953501090734124208907317227382872397318804641381491489020919441830853776327443494827461391759104867231329572277680196805491295098540601334724361468302101213907306745342776340359173954043169652883222812400273038084347647488600448439757197274044848681276370971744032077043367890768362136296987189959921362637548611210117575405803007885431229832546783132649403198609117131045631819041308462840251684709813283206384833284478633026136789918058941895961542699684731355716761901011113187522063888672084946985826486062064367581282402103362053796135615627184473051226638346302341680269579416844310532486573366534230521197645037859049704263608332327651724444970471471963335952336801452517804841339694982199094698482076307556029120081282887049728444866714766613864625244351233838908749676135844367858904698831917619509845743733645369433086179796002376673652815952575348207513013390245689590329793279195347831777659027639015040159626685299297630933332035098388063035643229561873777880460394250214229711469649488656542182775992585941763357301778255475015760193221819394202602570108538929576177856763015137286793226197980773223522643414902439850369655827656278272203757846627509671184964592781727539334286648738561038415213164591742511901417449619916482028542345104429062540073358176453236332575869543463355377857976202438679258709661773433152481367181525743560704420053633731878198087536102926356399923719741464892330239639261521450903267689753743687026842418042120753210960929990157677016344766670877293503389322208457104316050387116981373549788149630555665872101712779499348129568667018280717149500431283064034843794054138734935809349439731866840862358022765216128358493712535494055664710230399538250566717312830233441814111095496333964560024555439700117771775354925515680184528096004853842246031054736553608631321143878972114241266985244679667497880879719316233302844913943807430735598687708493044009074728137271908475848250976022005891643027733960502847830174740960006190248247841633835277868486868510072427759392556216626643811881580934557704454651168737496977560877475134767651148001380340782246710281359261432016376966234147081367646501032301255261035212878131237351596375595365387034916023716467706489711070899872926780679799326477681897655061867495309955634839677825288122395117161201993671554305540036267736542791119968525740840848640558029777374531866175035449750940451736329450216245636437485979565050966258398360418811566466139948971646794771483992652333506973083345399827014899842482542260891400366794838095378398995542779461804547311399102881630257335747032218879232895076074609007109490528847434560001623342814289510252998523053921149366414946097577524368105634591964174217826774858937830316593966576813370723858206752511310138668164713011971804521900189005720941511424259457666680976152482551101119373674949168244873637938914695563437598149558743627105293696967661443749715782038021828689855404609467970201256305672483583857189732809843773543560496349288143161660258814913540596253129350086845161847428570806603502171419338005491102554444406084730645836760192178148766055825913614959686816438561886653703376481769633096178772519023463473003945825801735960777244148670979848188659546247771346048869128092004646080302865615514670070115984457958465335079108953477121534839467235883831190373098853191752910867113881988000654244218287704888849473331845091896434639753941880286814692869043376198952207682598861591898976776839004277676844982232154786332782434801135756547011704987139773248681502910640371674787407615670654722567590106641849504415069731557406467800940261482137913215130383167910246003344610159398811047260232489028931283507840282009215499042582216609124666604182425748765551505597090508440516875552185737009900714191460173798521909060595175485134935003384963523476719563467691120550288301010227521864989400699865775955784285961485350133946898341148751178437070409185350662880088054635656038392002335569881596329382161078495452952428538606509364862764430167926385733214547441203531790432077161138217301042168087833596571934657957429712377733891171130194859832329839979192410305507968683199693266952847030124297016055833310461039216115243859492679233971440786848505251491255213536470339043516729763134967237369205245992596674792422795230077746677361732654144555916875037527719198723257421765163533582700578287450757937405733636739328445049024171178461009946203082693235260518094356705006994701225909557937969153443227729812834238260964135855572657687940544447892275272223975496840092616066986499753277198394392018896583008629344688587812720650039165314297999949002371285695953854838113231064530082116514879039215971754205551064210835313412743911654544190985677841137447682835630177202703163718546361438731415025663530441516813748340624898237685717350428944201084921746963150782625332416866602129563564990546214676416925912338686705465708687586309441295376063993788216418112689311444942252734309713173507976963576374964242588859224339225479454415576917094615351625585662957630989958338838017881367511010648412899876234563206910114001144809156543648911113856941434117397489277839728214782590045984917791224892470897538398952706655495917274497802616605510197723350639889454742668033302173315033034427529632530294571511937923383887536753543852943103809505283141019897411794165020499754990151655137090123708022876097473695326524572935816705779071017666683355164804061835326617408108324191760489029060173108179430152817243845767813841572937724122031754225421096038190889281967073877704985642634668750057588007983936808397641927478870907060863444013711638136857190122707868380274296182089006782208420250534693961025286591850744947746172001016166270365898746464188397165566029257925321403422725921530983684824938895240241802749137826582120073858858281315957472407494741689194454452689533165299330590483059033177453440686168296775550772727424293984361390141746814595901053017248076000741176607181290727821507969246741372677634612035173570982051741778691675945213379089448837467617707377129917459979518865832820042164199670344142635404907311511757906334710486908241298990247897010141610996792122629888573988625320564970466727654794786408540873216184588363595067100138035915331088186808645015149302156777019275184252193804750255959522180791553128159126511728960452397141147759595833931686607671532998588348739734935179695383739142468831656075093157767884585614761223193388062770323068657797987461980569291770452722434637955543460750998810098117946433275815264412940884207275290668178795636026595738491243238771991201790567875227641540768063725753602413803736582685131291627440225377353506033404275233931405072766554431919732263622137234586535926540719316000741885161924182022153533127925346434686843384111015309923252798501545601657556942143184059263768593298506395400691420582175120073883516557472544544132946233474468192461142051879969356265315127900942492366935790286462541226491515232868874766319670577238304853814366000425067572252877428262438394628994614973660185209859563014536797149491084010078661668836783584422282347350697494357527900256277370716503087636107051834250906534897493408729764046646157614003822458319134167191936600261917174643919996425417675901266360209482936034876838537090322533455162749853124354529709040145211260903714009370764221549548494338682815868863000664655440158514050518415966087679745081759827241699558135495921899299508906398492371612861402216056397313108797889814121557357598850449664188090692147281217478839846836884714897308001716858994773253562270481858044394300354168634985224814395339921417013769009942902300086461640790728478621745298343513323534081277600091228352584601057256455842108920343974231797219260357220617945642560952916026275937977341560513066434765800803949150780041042000421242379758739156596874666489994009222108248007089350546134055483056271291291425267058517454723117824204890891410056738219073644309964773472535609010392371585495444706915448986468531035779782111099767606729043602807871362278976520964361754922920926352147490441817986552653962674128086502919161197140496931951296566666392148599016716487562394012470843878544955205300644146770116946173631532299383989900293303190815115926307441722553147102786399398879138596951730509247957810155925106051140389399251067169228693943196002377008519204657208871808525250552347368857606770230507294127279685500514329136564284067718574110073199362038095060711209823241816606243945283615185052477851680273467626646186461994467564686708866101330849798228102790193826085452288466915744276012107785729269750383396693291034763815119088137135496105054424572983138518236995365146456736772549089733709288450820267669179687241147298125552936125590608038412129244566900009137905067882599393181318102128207683907682545797359177224241096731135779171288065847305362512989639315791993279194473512181690995511149409062724449771508390618997521225142022058433746123908705943714580914992591038216475646077808530196000894867023768479995057387189819304773430634051070984105489359256523372918044703234873548058030964496263358212090809651912846961415626419737145506670639093691946326856983102382763887744294729431906618933706395119869765872159856587155004089154128665654111579268450033791580571615354495286988187037711268836379277589392274363144090954700685337232051651644321914263449318887475846340432735487682228696097541246042889628589055725256207408190036373726603006537487477458531973033690099613510464367410777359774896943746491057140166062127448112672471146184924297116214957273774402163118910737448336787032206592962093043180443562426830810431152467331338501043720312071012012049015258204006411616741172495299232865858208666034584390068717999855515011798017839993677339473532649542739679292197468912510082335966993390154553526447844735153438339414338973086459725143505167145022464050486126065959610244564390319657793061227234047670605284371830712363107120328115036950158960266226958871303040442987442517255757056425207767397041742753470296034206366387835239476425060824444643333801227864905485867483970568699419858952498893508071089122050018343494425434365678376384926262312304515879020257715297066066570626042479348478152945999625214428727506760364868016947062042590353714882392628772865438304327136218456064156091655392339226825091759886924627701416758326451924715676590543854237036688830700854318034112808439025086790171723123759911173942588234852050354046641012260753397605207741181506812985171500180422215560558711639269733497804765700292907391325383057875973235215631863295440292462196747976451635473181178115428838351486151137634388959349877839075999632597304718202267243112836836259978633470352392249217443321868149213712917071616175983804755485192638668051841177937520043649193893734991340122384351512125811042300551056162640380156701058605792623600051323467776381979546820871032185583562234572681489395891229666759897846249167559024029023667099265453184052074753152112212331256410170817776418772154934412682420714453938699607750796624297807205265483804287998091561660716712942671631335878879816527802365880107463788347828903494060680763511499702168466728052701526057468482942149168703104993164651702619742415329092237181524462200137345255396472369144242232111870273054918152651875708173786595167584942981334150379248502729636671086415947964498283663102931900396379345672327164977408761589082762868323419493421942569206343347367233148802165653119058155134154306226581584972216160466607290455868417110453543068931381219019793060290904087693522932994476550960090047699343990540309189028318219633850478981252365855495038413384776181594372040286056422251118228037594035624797387839557336477091488361191669321835899423623498496056910745178351969212663840783581814206065868405462240517505983594524721409736790875973781836532831429877259797725401464451533529443179608002836016843280480824739861924813467826301443715952317074477925111685062093566481949347105307224975851133237955610789196688286497363139946398476577086638764111969138347733552046722043995966382098478610595503517717467017743412964767848522398703659362124575150763755709490329917245810769263403016135163789222943121944495658528841423951529029578173208018227818640453013062542000758020499015273326673544640150158936478227157508551965743217311893966729782807949410542982971545962106555069763842962612122214016104439361557464395937439996395300815517016331787867758770424439422538675700977682014182956659281314791347042546754324654399407518557799005446308465706205610515587686181447230888197995845203223234202032768551342440530777241595931265948008660678641902593354966277849942735618303269154700473800648558330349212680520222024915931368854824723182657622776746792145308472845047886073417202259058582455290462751460208086431861402746759788367322220161642754891463180428417903428233335034192987084633939221512873487753989647801474537874975449342579161916055817751600210088872950265350107243699253310419958083716886062354153804429585896136022242350574655842382409999964662882615661996586706397018737471640415713421170633862560788321335318514425016439483849763261857839840764222086705650058273323133360460794671013264043097065114642205707651512106839066332862867566970357219768411567724686222762633558239428064106431416453539487802650874860085275926340640495374315220614737049803990409523962228480627335181669365009526827990105667240014727513284859427812882060555714585414890618535195153248478688109071594235302961523980478568444333106807411094786467411224335448942209387348930466728043289721864602316825552069360425231145700873843666244746688098590518697669730674118625593116598114613048124349551070142816648808277443210675311049678636047566783649968843155916433207456550660962949957474197909785261160506727584767246357777917012395386737156834724449404598883932121967736860904160685268234845762636171881859223348415273286207639190720023679821220268892873454022035213680749004469975739679190636672616375044639681145325009346270928956970612941716981895994303403377273983080733505758520620673287091628848607300507028882780400387652538489573103952869247542709644662120441333575938878369881788835964604422121093563574232122080018660708721958722174581713050192679435431027560144103296383456462785596218252735388761126938531118282953998324815091092704569303090315560460703766751917853031501570935196409654784914746084833752791612800177168684701359540467804658129214428029077075957275730882139547840133458204998032487840700208439690755171166743914193966296348260670879306288984652152238797056618907570694189245064293541955966271236191936295675314251604505261164990070418967088797527611531457683283447154729661414849376847572441716994788835059802877084143428755327774919165025900038392803470591089571855411271715653766872520542898688214383002291768574183511462132017085540941598366464530357030994371370558959756276300676330976346358999512616182637363835172257145452194763827891565942686588194956651949553607066577220502286454810357544439853355903196497380163171976000520775504596831061352860521796325885554437708277733964476854003720623215867414903432532996591100092100156968121314289359499125089397952768152532805379810152144042972362489473611880053565342234647203305267016074376463955193546836944038860554995325174924580738140455447698665682183549491874931471502728804449396051139147558596125673877868230223536675951673834982333854000708818529699254298246816687181714730019170475722031734267812138505041437164638282516905867837864441789410089835749018724291730126393088235126855915027613877431468238478622254218100629930772743851041594973002433239101952570900506659934234507127067469403796151544784901355991244752044019940917835378320500350727082226395596699797943272591294171501600294411423123953041251694470570986747258556975771425156522968983811965559820718580634542291928701072508500363249093551219638574305793913070465937621450661148782258758151383797468840662321074997282654134580368002651201454906715159818747995739876416986433994342031938130855290149608855251884042210367515419180083128872841258230806997538668322859984699778635046638351403848643326957359433461362238984666574889936416499056354611035546723150161070894131134421755129976879185685427058353279871320041831529567078373676327024471762931176639115959761380340386477692323048811983287776996018495923215616518734907320580477083322880566728016094309240015738041640376882252203369597337169116552579018347219483486545979143723155582338260057880007273577757048244007878216773974172929009103288448671223385905733475020712478240859897703944560221647787003906567777886339947009179047638963746824472246328090370179396973190726143676254857541733866068003411658926181244324569304260506838222632234574169837719938174566276999105608578773838995284268083047324505957141168359643419441811573944199316848789278412009959265965375655209009123777138356598826525717786253847625434489124562924504177521096450160856860157597616809430298662504810803104073563894367048738162019545472445885429349138978604208438112722702272954080797996185403302452756138215153496627261344574533194492559693584146358738270910847623991734309984653824777476680220014319671400784259338954083976637563862036531024085787271439827040958563628732385184061491806969595940215307499846622873355938513297532010629264121308494175239506014598483670956861060742745101237205615358333119554982828107300527670248497298740062493065553618304249063604834918734315577420371267208680458231314527332593347577304302127605504820251947357480466032407397559145007747763961557746196481659046064118555242271049315942945213988391469589609560811740165174772355753244373018039327975638488109429181133144540573447373660512610187978184459927979147005226317150227241258723452333204444261737520216786951772412686499971683381274900272444683879872254410882605711797497324378540528975495544377471692847969792890730462403950386986521252050020582343057643330835334363342574913668820651828127109876234268417517595764747690114261431806060434840233569757202391694525819455205729492642350928842853639363640730994318847935250987840793621238146171002853735929157601375539152964041803811775591836322469787066976179654154789961859227061507659047326143620997494464332237805750897826564183110592677611069528299958017270325214664912398183925657657933088060216924865404407206633359308303058268730703187977524384975568276333083402156577274104865516366941407953991233961854855512440206287644833712367054025141346355543357684639972720128456233079866909878856731247285987914893040496293908465937238634298584500102289107023514384433682911114982781478130340440666180118163434672003710025275097774733462262104950160512133682417640174031722692761485872577336293768581663687082074213584320796215210774595037681230367603261087596827445116499793827534297315366495265118933996323122872052908723264000923028691247936399681978232811833563583177728782260670941031531069315787338513684191722934895355776971670754873196196890444098240085689979662828621719206777182244825404136575762858789897211494539120748190158333274168649579494722813231513728094402005314481422072495977903884119907844059157376385967133972810162497475879428052116216977225940305589252676950605346106453410093576091989493958246141240002518919075477637862168839222281950000833036913709765645241823090058108571087046177426562041673089517340144630170943923169363044084471822791941489348534170209172087653990689822427438169492696006222045455944415400994100713737143710964545977887962218215305394681029308612855443830668700498121821154276863305835751970083019326544324459112596092067282845326224180249495505426987564722721614031920507676924830876141119907411699539315892166630590667064540917539554621360160140348747297599531486764426743571486506122099215910431911153931302362840529798409796097146515192947745044057216666254096841432172345709640431575199837504822025915480963809947690513406316756950398408228783228319057337905333857687376528362517793018975067568856158300735425621555001716141574857404589571975798464490041947340001815011235416335380618837538471453249745533234132263103730074201663094867026318658491389429035612422633150238207038555225717095910679999052226439816214703139788230891002767310571024252554050424259453798117620414794766380336181140189151848357419314802652675419597807722184646169854898116941029653080069722929939142318230725146614828868155663913593013205072065126879555189282758176616332215485499547872904144495812544751358819814909001846659994020594392860930639122409327314168646634843939142359955904395091199327655091013325078606702211456850985686497833973942176769308752454890754573631074492502994110366404204961539690556073755773221318316889531080590055721597638968689287725319089543683727477945581482136845874910028593729668556561009238176056272078794500703111619914818466728810178556459634383665439738198424506108350655504877238250507858894109528927223211167263296877676604756272446010515752470160339576139627005306276061543502135125017910692104626927222871674555379075564165366728843742300114903404357981665156077973283646494578799106207801584720994675932095043867688337518754774599709955141044495956812530544327683866229192657835953195846036910215795471285973490638784617437177686016413856957393706959143617509163584873579533319897722381863848339529720938756540032546279667644706119841845296098932708434859448473093406034473450711915805759053683706094139684872432858747438985944405418914565733836490783757602007892525132936988765500389252415968642778077266729930419801210822770580065854350876206578425546805576957582650319412642898371166756281789713779395500027845699103791550406734435294479231820165748686667296342228987345148516132600958058030964181059747363748220210843317142622134210254403412561912571451607093854177657385239406298339968282106763589378032419041987631808959061555217070461557856993949406972100532712200813867811577112038913931564318612964718240106566417316060026948034611346971842824224619320853623298737609379746506518831957918699326873267731063981321917563564801139079482094661668043046290460519591946500894765986881582436953740095375245773632405369053440723077415299699204289494137867689820694678413406146790002668917914831926198544988585766882306562790202421582377573465482360628828815027542823918156553461127761149179826972912538897840687819764356723246459129038531711989332155975729556792004156664706282142874032497910207426904527721251045480638715473223528464422864878983501028049930944452216656034078146682621614534820233263397042016352831211646287640269238663878861958022500995747773639480613411190323553566908558474812069618856698199333140098444739817661221487811347608097338505114817114515787322831947155932513682349855001639408293314490028538501526331745200161973208281209721588599954789832598536912326206046320218642533217417588760540771524851487484869076415159133192047633395092662981046332440173379964073701613704398768400960341369719640212823697969548942319383944764632231872494361938820558861537321665178138780511649202447990438154700351912607517916413283544212624618640079292549273230051553992349815702154844517973925130066204762260531278681991376172340173765213543026563516720205149643930596771268262610015767120059443116614453975415351146099910301054913075775473238492015620130522912940190643101095665223638314476175970265546340378738571869947948042456180541321622222049366893140036928715694270567676450334944841137703879126146609241173425560789381151699091018029302923303257923457507069866567687406276376116734858608120510476904174239512558953637169940567949241327240389475642327303916452971122754778692111922984597144663031501202596874014310131865759302814945410164414738771222243835736248211341580720502418363088307623121418784643714218808216666365830909528878563629543453292908569038356528126250198239539692509320854755876124276865313056597022249173133282287327248935075876492977494329194588171598815933144743615093769935732355543535725631149744422775246754276021509644185317358371359322386862079325007754789961382536437056900734166338386166257225978529281358567879378154175152304999639580121550091821594525148244505523663849254255821266678271895950671400596635840628707403671689402830570046009912214512247240685088770123363185767537423187164393713191646304416412355036281997575291936132772156653514221177901173834709662251894597693737183410663068028330248353198384857675743933650335260803481885887030675971443165126310385035781585917964557487007946274062894551122409345903752173330480923729045563971678136028443245917821098740789953975001362753868380917474422341402153205608729585041518802643607103768800225121940134615216790374001503847705668926767814028221790660147934506664525951534363016304801412433361889253691321045803677236624711162410739269644089539194649605300477686470250604525310671760441962061769427773206159669720999241638998583843800318018815366878062692706338534704170418856529091088257602156502890268503476201574458468926109436820568271671847402548612460854682204623802114830653175599679725732618615196057736307696112192996104371761074769412201450869338644537979149639395580188702251376548884971617039550122188864387972457808418301798410338242809944685541649478501528899631182161260752844314531463016861674136741514392329313327436621612172449663188841311953930273469974178095297803275090666588400828374519670721631063322734728075312557090157766835378333020992334143490487349336494172822067212426365386065746492748929997733093987889090183336270564448092381758386384245316359502530008914128766589840910887320029829095646662300966945417370950380585049965242271783279487617435229551821173320103274562032844826385092156291020462573678813360556485358041291685733449671442995932590641135976476327814439987492132827327782842262972948680069486601247794493073485438864231012776765366090678463101364014449682421627530415243160846509924530130619212282500535822029626802849867245411575572067251942920503441691294985719557364042586460433477390648664927337251339249593073629750329810694779147626873116756294269025587408317704870099456609810251257326654238008741753374979852928702387003279770182403464407054654008968371405326023312315616636097424465233285507159208231942017322759575834212874099543017433950738956583360484107155191675957499308687841351021499486737681949729137878539846746917521911049192428596404852708484402893221236165888834702673686598558691641057737952326935437275661719064999842561616315310693971107258527970978572511867029843912750716068990738439240525894249315711789916213817238669443871152735190507529996961780097153760858912765196279400545855241588870712845542100705499300694368532891778092539188139682168308459782971086239306801577762880528210127713152274459209666838697372704025566563201632989657242899033417036992456607283679336516209982331228228838363085639658279983290550904565794627424692643121135577630992088198162883913696971547770108816837312621133331777417360172633304480257158756692979558151171051477742331121376133918154125905542350063312750890707265823542524573092421777532150591944043682735745268377146099720518269054020958607434018277735898096416349290732145734800812858379442433532336786289449874699792954294981847324289081428077681307851324939257588618590269924270017157228552565244815814415476773371089473185769003753106024478192742936636082773766234209642024659505664218504783267115245849031980761646345206288893478570986568663420951135370971385662023501731649879170784622302121433347587812000208576333292677434971946224676665333657121502744685734515350003035665064351103869945816367046319944633888516683227769983146437840742180149686665027152877738599497517666267126792300672222535958896324551240156679343337429269567424048665681842716857381550996755420811121512976839740387008947163162041253419017261628688372182585393585636580884010547089468660965489592983580857224794173372620666652797319748715190439213908080634878063150784061441979318318622770563745327369719236569959993103581226666854166302433321906408559004882692953540652768424717630448048219566091294505575796400647330145074984510706994658564769331578788902574674550915792553081482584007698753972888820037565934146868706504511874737553043342955664644579804262777144986630100882800173175299425568396213906235634821999137787971227949374426591597506309112775559212635806394472831703395650691205872253293127587050508877624664954020854919475609632998480664401159936363634272976222689071340878904541196511602825595716509460114932400336651168676290862223661757099037288861648785636358260995891867749355572804763335322964156335610408928332217260302529785956097561989032816719490006880259607484956908860654695459144951410828348649462799549209926543610253973396625225789132831745119619380365128240545467170252561903389009133505648322656170311045930024426076891921870680493545030911096968108580297274461414864691534029505072840153351051123348243361792728375289530441800289993094261282367890287681958293074428029095382693507962262567709848042465051811534891949218881304526445199073407870249644043638011318553027635983077103485123287837002258528153799969671011216688456444038107419757475859441395256168744376815157881667157198782999854119984320838897135892587688270845171195481607419127354528010369021021043255857545974534106347679249792584462428078126150956337396508978257286270151572640418139313101627157337644207017667156313650332237741641866578123437824350135341989956009312247169456185291656296130405469744499060080798341849364697527701911044640242711429639030626450239878935083075759367396038231849745571953913328929900388839498002682288379995924984127228851121237064479830009241364720297364670624648913633009534676173726441846949156021800313865314816493693214023590400187052613121398038673599656345708751074635790606926145363568441143049784850524181878884336372431480678988739972296067990931090043554101262412912569836952656637452250099130814865532598654204058036979720565324594901484149534719615574403508923401624536982607473715195641709440994321679809478218321112048062713111213607847193257511537576341446417781495831328379732037050022041531141192582713265041361928357028055075125671218345458850704940322235088921445520847128019889862775093025320642712550651925194477217989170880205100398545283317790731369110935276585240763939826044494730825940909669156226595319749606288716602674860401918907974046226194975534779359747861924895342822054485789325460737798919353342065982776112803596158619073315257220206768453876431854762460305502419056689463658220657571924601461354380757430956123375991741748206511072792579343206882980616188859387574997007942157496600688740602136665317140635870746839398115918177208981466780043736461972698926544078271358005782494058514728891294971182272818079177773903293395412878528103516999128420815223852093387457768951167612851844016093349914351965654340198595572327717365944496137550388284233967459294480399405061305300805034274291926773774841577702257188386188140269911933419311266018045833766918606080468267908278792021231125673998694192369040947966435230281170116278960177609820979929605357832968023171382535933839523722365474393847693741255852727858865760688391500079503199721095348584249649328265710452661105291867870913507591239306964242393852920106462010530705122033211088794911516173654270441656361294697978554555785785083771213900218680272578999858761286785173518598540358245279409905420865124578585139101349257173836618911813706442472558603279030757967377100176639468237762822797908067643392140009342912490284893356749335856969487336868537439532116795862605101829508768034494129660425524944850569215351250861636706850356969063969436028987669655227216164960254454455400264318912716160876952874793739341472034963885443127392006024191480189148535842608790681212146228268743868867292575221640702791252365805044345027015885858429267911610100941757059609320976622587356948569939276801048760871820689531723692048836527071926459797228165533556626435982407803135353360765394988445789557152198017457300261192500916312311296003052590773193811108549568647296162817925775041347209684910741652120707864228665397314024512270980293878233604701097728136939526109235917957653876938193958765530897536931631877763110753715246093721644784296875810568838720254201592859420975268248516732587181400616178745598607301211387962927714698357505814825718304678312133721650656579762469195830622069650718798017695741369762944180681003747285271894602863749766126623034828261768020153728099546256555440789122077931221711818268606470159917850412878177682830145968310373746339027906070321755761191546990168745101318114191846242527150841389488962289761137602474728027897603727888911940966946959951011500728058612604799733349909374163377422552444098992924604439274721887309052033675792618428488100356118053987180212406491874648958247599038089249439534045566491727997537543812103734216852284940454850682184421733644939555922108829087334614560093877573115071440767523915996358671249870567818787902454004170704056148770561062742199094269042572489482441490983568294166689173350917206409930482302650384932951260198165682190153663068172028128275855868253806551502122827658501637331000962035377410877145403455312849341292532584832615124109486734095039936021670545631157848182262302917806409104656453529888414791902822522258685883726198451517137049520620708620251274881189809011815235344326008745010162560179521967265380597644231251147835900339188085647275403748067973365621818137681952970925494718430162328484457918075789327965323529688296490339133995636230258444254399440183805421514546280329054866345811480111211524300245730931523535245089972504535484228451925455303601494791435058916769562686916789465579431942341464674188426490274913697052415852181387083469857344272926386413113494478416705954718653172014685852196195327587637046816598390547067030673682044443693969859000920148541643366617874339991009018242599589935494673110615559865671563199596068966547919645992067711655668469719744109692901997533663850430898560659408531185467100479851410998080840318318934262864362112063651319920609943359615548238163698386079181968171879350240216380772500989411503856970505057917658272437977585339488672161298859322773623795776878709361192235595525780974194292876751912021005236865091694892160792431106476735816305627205287565534807545769670444973827366241090733766499339854876053222430757353420928365894161224337965718093910274647239208996736681713872295987949499208841674313506838299136639664808610688497757460140297558067689873305025963587750167838357766359371162177349907494825176192001278059122978258773478937313347385594818406044171504592487615729866008922134473366338848189556739068598045252605038186616044586794228828409713403613126054412855339391984947166128818395715169875746289738439486716099370581878170091017106407976980214784201451703864340347174668683556470179057495397177385850081082678430254759835949158881503539565932671033151453897374666492942611469035891903621075366062359900053618248204573498411771286870014385135369499900988981356681180466972583053195648153130654712050567074899133678960339442781461690762015510461655339724489763199920112943097699481109832064645978279070639673529926241078369258714403807616714884679616420321880838679896131943790412739690647580622577428693503762221755275051765603451234802338442219834935962967811634824537965538603456580004092048233312525400980718100249572345562773374316330878565308085205093255433113389255726555858017378685390081034695378718882187785214055298359992380805039291170500572117418699503630517441308990014361061264631701721956221738134580309465472516088024534421330386338207333202984742344212831598145393611924022160718910444909955493710011070526293769274958201854731916996655675924564532047250323070540954396666960207606121506853557722657996387862624786492047757968770911940305782439421363174853542232175476321768358705995702654808223562617795769108601786801206755097501598369920219940849930592165247180172113567067603207271923275631643984254513541558112405015397394372088429381966496430068874629529870944391957730954931807856098662613778601308808940382605871768295564703633448249220635215406642024623081261170505866701592233843228527396501428503823599898733439572734052029811561521506806449405604471101083887821822985559143818421004857279835931886025186550744040438716175102249214241334973606289111237595823502931301889289015896987082501819000033566198366958771927900193653054948149663151311319093675810902617030049257156501352487779233805650845272118558689326209971794725891832931324176772765071988471014875092071164442308970833981634005137837858017382208359539908544030742193907644537360409016100761015875291194437155164852636780864442944521552934873470928785389037900979384012944090424680691823125775406425677177007340252929305229782853093579196092881461932400382921416702057791047653026807757404475493557285677290342000334839334381181950394569575428340585369879139504533695275145588326579354249202798955809102947553969808529433016656281951852796621505923331366245616864873342705603048627611343795080370109593199716081416068702886240769050394408008106433736125157471266652968467189881083161557392472195211401986421436366238001249933252360938051098040757607156011655334657791024256155491503654831827909781195551125711609810618989198853609467441828764213343032447883444853046732254590591774566249044700586056350286905380577506810647378146498283059793029492507577525219422944568513439406359439189029161800047799317158176990614001596783728887776058162859977100759388755030852949974420282048795077663481931989766444091259341716441034548076891291034066255849079683516524854341757768141022984862866493084586942870709794574367861878686063987120846218642235141262050114129611660285236703669947337133856474985635542323714901191776725323961288410495265796610593085696726142901220184083894673076220482367025013584319711343895990777182200619249122348747965358854848369204200361846532059259749630444296130387410405618901264622625068758055394866300478771748638772269281483607976443865768523179741383190016450090355650262742753215743056009299626465872156583038484333361715480934344826357871077483516865441345938266195448511569686414593385404691857758141449203113703919096081738385126141322444459160558375834652141405200932701941402683466728091365212920529517193129004011600624551829357785184952592254283700485508460714217207001723737991067585068452182400667702194182886026284497898970012694088174360212973918096759192495007223360995373496400603678528885000552379208498116273646658921241200784023229374754041559813784886384798712886842892581134030202027998582402864766127388461668119251512654570564585728722876989050643003010084666008076552620273267190038603857623562701793883403769563913655427913470012137308076515111098665471255905810581763202896985555381213902613303384774864602947760969507002884828918424878564295220933715854867577637163748790965206528689985384005536587044050424384870794112275711976680681042892691864495181770605967821194861188110380257563520010508487436286564095610706891763731217593689274997529216631733282789259779044633140196473697820482103423903285537733705184436604936556410024418720589154385327224461364490979033654987679285575033290836581448740534171820062235903293018061707496418976789639692961121014415350785165693374691522549431709482723722440183739760766311019420374627106999174950110252757014516163298830601196698761776277207732945180757057488931726386283989981169452850455453187719290912311446841185896947412287331323497148696253243155495656460995994880070992759470415669202346869423718190192926729421687901358173785640125363046814939648549361426642431011720843229520512099993013474477854468177600431893166568854011983601355694157139719000659521050557803391340510197862314731335698017552566133585038924789161411897871302439163614921078870854154546121042896931107536470269721513185892858781061885287732403011822813108432298521572143373848693818927554016856729193578179239353913621679919309487468424448681215041984019366383287581819676900422402540814114311246771945576819598205079646433791354550671255336790615638510648864101232616610477249674909767273592236476764877107538520453706448980925012780305458923505621408395211298958713273857683260827567939605210870693933593104839060574445926215523031103377593265157434043823859099367750462835613477637343391304493584563275292708924352511259065936266690520266432327979641723353761279083786421591378212869927261917605469214623502881635952680190700986939050444745209229642289080818864449012547775295183029064020828439239248125263042473008801942478199457125655263994238835765069680193273314813449858300875455096715902315446450808165906612260025064954278132102721453973721503335139852340946405149056260288873537951998642615621590286899413979344433261437890420812153367041670264906297985427864804215974766841523634693539535539741316121906585130224436621369017547916797236739015435882297226389963004114144529549677394672962228443601045761020653710916398521185845407243314784564726819785337769062033254817748461035021434051805154267603111608048628602935290215385817568542125882896292595008864195404212825325945825014383505825088774165178438623227927385602271700721974676490343383456301019234333856218557144049239849663917896876683453103436892764342708279812472196058031249089025523398536742230116087358816584140860098698488115823676240628910623230722214535552261624832782995243130289612701626630969098076818919889377599431306758200881004644455814986248259890580007740875438307750001644613344474332475124035945022667646702165873719719481524913485765969803008320097728591568403368127712678284540215166894738554205275477364128475692034335163197645699053566343892485293573058576128791230452460468939510944558857825457851619156624481777850192180712542200559294083738949538131411077723254138829703556984746105977222416526139049058237810844307148666182788396377617388867209898385369276520319687588568962964060446563421110314811807423525223586627194599986695585084279231810160411650646296165671143341072278896500787738955832639557827419079243637141899209448217732543483441581506395420107256296771255885952364037869352767784571373587063111888240028885220496344026412883903937107837364834837792490554636548028913829935675073893720485993003342701519891841751084460824536616073213072072295158204823931435854770541909559765539777170937376905705931150656734426289281035906544635436884048076935586867892735370614087832891534388445790226769511069111152941541689712534970700893526148047885472473481399965745329083181734785996486905827440024224430912106861826620148522410439217565069755443374525546842107170482891252534343519571809859591041357862315844925261725620793771042896722713289026063778225244045415163672520064280208099246281633540978812064836647493433202725863032691940863448340530094114353377095020161888083185297259405671300304038176082154813252637724986721738559661678658474443348730712074456362743738601282309196613067488179224507198349339603946028443820185189511024659778860983966648431435591051090087285010273233106163314848592846076966189395901213988378839252227153303537825641979152732250457479486489793224909946978580207201050253573233999069759865465906211644834779851927184296127923082141221598696887668815619106431649924064969941535921822403101522210410601276016633931995331783396734431759576929118967222595658165823507069650984553798685100193802350483517412436537278300538757243077448129295602503782280020476014663097148721405011764849209574293932651757690985781033604960325365366315318441719359788594815141256146483956861615609119173760292858453513461413280052450474671193777761883370139554873121929232584304150939172310371821335557497651799669427298077645949847494925662262392846289376946240049022833530199188429481865043885713583685101828883946986137198636576960278046473678133377832424423481037609915235410826889614772740934699439935829623255479362991340763161226876506044893775688926774986213697570104749081910486060308809450671007819742613668305456745129104102977656906008405889588165044606427691293292296099003345515954775674793347164661908697742663616505160863765068246201754412871910053781142589654258192530439623020606661070629404832797741766496619787158842982573380568841860812238960103149389569059278369493975743572545317588387958489533718178698927240231913024898427741049302959187028542630858801826671058793819592972241151719817537102208267294250986368646644714723004750554563338188587289806489343297651261292312933092053216219277918599889788863326030748333992330722374020169979630842220620382136300797704536203852075571233172189923152537196364338909601637262403393089340953032765667147790506910930171631613871116383165940270602174552635269038105358448235578568000428555291835513498200015395939902537263240602768950387250052694922515788754429860252780878151870749712150306108949294341227004741803388878521977111902027822665457386821530407162045348235446572767191474425598063056349232348547057131548422165882070131482785213097561476808217988286731770809492865620639734631773862532069631280490960901190109960269263203199653219264208649265530512063961930608968858509585946639558740879183780407429233152983840953353777746600777281102283085304948749753183831505942146500897318699784989795230784174219511976079052244500380304258984909526919160671013121497187899159542383945446746288483951063948925242270585506073008730482253215812670447717825991905791891154652532066759827608531267156361973325719999143569471739507460594689173406037116764075581615932978467747695486372211012831272627966383366937143058547174372705313524082019727423528247540824606522554268139370225395479425939857416415021114873286972296141970268790708534396388330417503983975975207729710809175506580852792353352001091456370665680860150007877991932929666788319082323565706787642653719349358879113733653816660209271834480975534101870502286681579137930493990539450405830774518175350559539140628240053855643038224591657719955730534795087601141884642784252055153165577850167678756274245273411956099596983712206254214162313366811909230120359029542998137629030988898444106022044138262728116009833509170694671505858052326117297102565747050673042043537794877232114562984480774756534818646018502870859438634030764192448059543626091775323599458650811096281851972977112294479384287166246147796708253014158512275752073417848328245294324430397695448625722866242420611604754295636108410137350658428344469723257412296368115130347335135439395760670117547795899484145397304404032035086799530526535703194960220238069821383837552710058702941596344218077126984414929645507271431079278235685630747641816457653706588661784530854190468116633080677914507263981418625716758673544989121693143820239407065058454937233011170243558773195529244881582760950091428515093383725930121476941666255660638454450627544298632815656638164615560598936990945232710284690490358508901631773638425142947935038037793940150005368515895765853040033029202781357288741772899556459848318226743739212114042924643413939817696152125613150536503288928599190808530725848705743160996134297968437744889221047338879501829566565688802683153314418414531804955890557058197583184902240735331406673431092980321685778404114445124935966985683154416130031111547400646914183209387921831785864227092504323697257417756181140536140272863947730108899485161864455600747699532065983881921848712443978895471610813842952418842055455989557748220936978970289038053789846182044312745185019309439477139648925089008207938136571863606239672361692775932779902857035294135431634553914468823998592641170029368703241797722545474831090564954173029280576129227433019222750727479042447528896149516807368821482477135453333049262202613222111014882269601098992594716339039627952679610006840562212711674615595292583990570990297828887191944648464195665371568848149684398389829980253381087997254402089135916491177630213538191686036695729024756206313498061702007840011051744974361069388879810465038757853090344747893487230691615919848338573908885381753674845362005631451508482724125992506468074764949786955945416634536220580541544841487639888196039982875892915422041678872506302063623312491710499944887643049736606083218793178498617489249973430992102363475670948471166351912521924646947193938024243907908181099962444322240926165810241179709563091054684235909479678851680949991633433932831617615801561874015694074898144882082916680319107659763552104874565373211550293279774569845297169600898018467738993995770309952452390084067365080663526427085632956008831177819207747548154753057809418835743368989377855092853240504430344961251556065473846341032447562654436688595736312591375307715830343169465013911108276107700667953623644801743310253627039079436356412649080565904011683486743696925302531477405722363225182665764029688161037533343073061621100089500270373168002435504189897967487983413571531409768355753286063686534287153801296611360169465465885220790788326150544450224996763571827775238176806430400640422056031227268936592120030323675049618233778799730489501024948405485782153143526515169884907012331723847341540776855722008407234636280018386020705375046429915190044235123488818350837097998926248318265200679640323224053288304616241666620914620462733648562650471826877299512054487530860061967942303935161486713132508232676939605513941440413322697267322531357642417428431251213094257247852608472960305123312910687345365835531467230837661925082227496644181671762784512832606794564384703724772228389947148915206983749206463888823216995767680264938733878463128894302183282414341612746489379187209031345049633687940120332410522326958076490565911178750343036113027542441958899328787464317938853485230980143765026407601295944936212466725650086185395641059495444361100069650594399340252843700750472129941696269450872246427825599957700501326437029411401788565211035430640126931856069421577595943244588846384018240818030899859822852936194507512132494454201430732357861544907909803382077189190318659422946345959960505667469374294983477210022180096547749159197430673288306751605358071186551456638717387367506488206056177686674069585907478356170947597399529960791882183550897302307778946746989548561844644195986460961605953711227543583712887964680255200737078072095256145906002844373034297644865086992224876568449411048662488064446592001285776456756126648337151429085686939200514990567273944227719709288908880114085811546349095787154551412671109994837427001312864873913364979360735504582391952412748981951472434354537252426441664099855425993180081719669438615038957740660149920199641289051240748407387050668256716438094746024107199200346426275811335670321604390645704148066191961537645194671653133408205503896407628653837143991131997268904366006479934382996892337000658935825375275137274828199650915693866450623978875643751466276378947967534919452656031878690417009390078975109293783472086302597695400102131210085549092993998495936695981027897244921019678768138552585448316982778427139339629819149536216843414787460254705710592377537001646770590974154286169908025558236696542334341198119013053342451636823661427985669819522350577665896977758422145897898814303893342921014369640673982713372391569926512486622690684722116087781779492389428507276506006767968068651711977159018046188701382908855680062941451016477781635973700828850673148435181915263158120303132238315110483248614675457737429278414114122350066065745217651606451728583970657673446186415474129447383550014341621372388237880215560541538145233441701798498633481647630317299677915309225993681768804368976970148625699648925421270583536496805807845924799750130456832507791034004310798811020707384035000819044344191087484623740727011743521536775513882130576412627913653729575197482067325386851655949453823406365871897044754689254566351421883669707319111220992949270763982715047546864046444735408237821747919406227716036846432142674835364691359203567871506328702877044269522700513223235617478400115951350847812156355551902428676326432806352679469912790525421363008689961504390292085618680270352525009760538459717752928393700311977642604473057698591804824412742613917597839118496991391324700725401497257531249127275348299284321583328091569751850552734383293127036766348956277494470816240898320201223645472866603789885603074079291789467255548235583309813436276587640654591935310282986551315221851561921675292982359957337163736218046035448196847428283322370116967434631329425939105813605029274232111141782041255000742452323006256856297563666987099265413878220749929505364164108650542276504168107145432460445032247898866043427555795572416891978114469532215101543641135546628872433198307778337055957771895508281494936260489616697960520264599599365375959974349610618887552109694992131624383921846354459293042953302531828912162220816679312394227070689987455264576116276654822463638998732992829059683211300255214916051756577218815285576147840850873816141064751573042300855809136318521586631111565395501290332368467388310949741126101443670816838777975778547094964223033655886829533905824970961527123837188181404312162146083774133126913681220752166567608887051164571082226594539701708837230258154671176174277081566255338012258462209791585667735472719980867876112787622873593883219299209349621478834274196143669748517102768010051084296762079090756849205656462426507275702584067767636741917508603780487635880968378227124304341489248490432735000249206565082941897911166928727840236141319786306155353896388805049368693464896863259903117966686858847226981492723501956367611600585051853359857797086174167633838629055137851488459015084278791996235618075817612050206499343375710733296657417573423304076657034730377155923199219820091778926355599935510628198247603203994111089216959381229270390804748703469436146805265114404573156728739236331332042332605896665778825444885046439979194493767920851543406062800924847138100343759309863623378709434671485596587342005807398841775613124759750306743429083931925913283227504940299522663767121569538838129203604892509732269967990493591861180058763690127189249175577622699731617337783756519987028858479920140804595093748606443469547779124859679619662397691365203149288771617625552808449217921706801071880665830573072787848023083449916380944973355048890613037709560756145787411771833234866499491962955259987936528660124411943751046604139982325529436577917186565807436329644112073634013740988486709646620757815866975582932159617082010240243212799070042219713153576394376374477116980612432135412502403860610932023557277263091085377336198874081320078814489143955444316690739524419785685041457458405828897273396605022095049197964063974538998575258890404980494618399385084549542943044151157817378999571596632832652901533848690634617062903922221257257958035396204350763292839406144027791765517706569591686296601055937691641144993757237541756901752572124287817550991364463679111686377160365976764258658656599259240331624788649267282315333611647564949027354448041786825497967412055864207743594451998648878992280597000279648204037901900602407699399228493635081105008682156952840964878660977384629773019528901608793488970163419932498452014118199811042153953898268289468499768256654525129568455015321571300922819358846949655087954273396697526219981142972188368281208171849689439629886199735928774607604224574819715054559485227372740142377026747039704267293903902006542303485371763512213226624922523317068170602943267915691547805371564133169353236329293734078133145950729445596977707745917406066413068177115998788086292009868241974506483633246878071832516494717930885622400123512187145479735073589388583497035687019212975086463778877110513716765498568567968471932396799644685310881939322033557097365726186495165516116411898718080453208111591105276193884496597221672470829401759646193019720426775067876309722243237327335719984017491818015080336990720452531897060794114888148796720849710017891467019112130915516068957543578530933231752706255195232879819519121685946540478316076672292950115342310629485166249735807276332737520053653684628332846932402974649455802438034220943418396539982872417827409201048424591611348060813380770187042418411712778933847508568830426936248402074409929556042202634928533617797980156010163039821207605950272120569160648975618742570667837040726624191431753325489343906611253007436363606009548929212634022975406123690927597376730867219883125376041238445222935580123442953554803419883907510419824754180116035163618664635424619876422481413278614763623649208409960283071506203948127622048604661811703341801402077544738106074588290235663721751724008405555146869551025757691118380011906249663975754084019016119607697114048185892392765655414757650922718086324118836411249374709957256221443120023747507698178369981841168605670611649223458403394010398131329830896924280097715319236180275663421913368477830364941977129339512007774499694957959839227995212821763189481215158761255121936171018204950588567832304146440907260020931575632783626614040377617718573569217224745759664978205694548758991665360422921587515548381339816044796880725450942459362138570331377970681139387696824009888639901576553568234101921427555967944568622496768644215396427464427878066244008036960232116253551555918737741258309321841145981810342283438181271625260297835475450354419371491254102938446891924764167114549651099671217237280031381154351057971325218902358624413642530545693043927678066072138905851391372278649700798328747595860964643062842637625575588658218700810903696199265315768287650392345948017866626361153888533455161325932410773543261513325024402576387854210615565529694635999069093393514353148641343354311016972041148189789756679420952111809591838730021212645757259185364505561892312198704089242950119193692509919621146063293472065837137088785486353648695383894513730408569704988860344963747103268167789669901414336183716124816912915328835171462049095569008592982893441214442470279619113035057332224366516356308840594192475395011107657468296032707357453183156602378605559697632880942771081742459092475466531187202688339916992667495069906438543572826409948840822943744221239287114831925050079868324780892503379070898541978825180271126902245867190627194209576123738372760316145012232769647631205376748476359214380854770658313990610963286452402896440345383030222392421601398884466950042855826999688885541979363561513014006530362128716522968203419499743112863838413059891544887050984293016603413760118446826963188098233967274544549644556763557145330929934521997635065669357134052861053309290596054825137825231239256380843204216831973766645762935818130554459478656910662904825243549466200294716369942186001411643377704056560058051085047810993038377735268088458413728370206731523122412855406845458806444392155105930121105615875788513831908966158479532908566384937943530139799140378388194707585877372296501377141017666630032676248534871009600477576617140285462724690151955514703110741098710904265768238327109912565888841567638896810606746276086236186131625134524173441875218514806659589006116016148533852948147857746833893637677184467046033336520404135461527119235696395794497540722833571353715381103597517905947351414971450738152822644970522872890609577300987589617177564280681428487867950615189137153219527356013639821489227273221859879350121902769277983024949636363073116630134338151497676822643749614838917788305021333795820845998035169438342974552640818530459150650297981891811414602232234422376796333048292944972148377004490814143980565459565325408584629600287669925645499985906220679555526400250419803642607308161648206615640955732980376608184072167677933172157569405142391850386212188157755079520140102934978735635683374996594133936173196876405052130473029142313211692283545895909449270501796540284406905963313518822784423950364999881348846643433507844878011660153829296799635277495661454394414101161849741668085802220326651864622978985834249142842228602139242143812816044648444197972483550576032436980369741889873949741276943173672314283576635156214424563903994809292112851099937829955478195970759663423517476529507087559788716433553607455465333493556992733364803631003239052213542793902322185172060104820234686251768647141456954289057377707293249517248481149020036148314277412241114649593699967182758626628066005109739061138274101751599979515229661306218618418862657091956579766327200919042492631922691199273630899558601054528482537331120935384132620650393978209226909263407262825521077388231091766822218434875062865815181847539208181104637180338975302169311293679158079729895902440836839650871034531071844719559281586755537101000044624806527856958702910042542489277589762969343166580486195890988593284357026708313872834436137481955973245619073980143420214890202323412561281291187660850041938780319653885886360262796403099037564889815301758804558815266906166124587659271330578866899311639164717254585832682673041474319158047553474804483687410469766548781173776007432014723736988984676312445404915722133195232807472070757236510541426556308645905525838730834240921570497543185955646719713456547565811307085749846290051415936065280399185456159729551457384106774887338875404055739064698937289351671142521374314249555332438907350944057906932854390132859693845134121937941196223920838494692042285314474610308460851574557966399097070086688721938745439100870374767911148222139748815023787504900502733358857048559588937022199578815955468468740869084671836361581737116340486400148067279721454327685439057379859587092941209032346733409990530547397730210263261670541240861732791080267677916183651176031928001128426859602679730066293575713669298656150383471014351580315465373282255226519232242963894857038522337550110049076642882833374979550994159840565087257818346374658184460603549702846117188907759788487652335928886919965925032680377438003589854096444517688010234890097680176825971132791462444584845400324074647174239906023345551941310273215491323845078065177302284716420215261554121250114183525429804292739235607739709324942741844065023276986616160529326619801353533131935955923991654658450021850614470391569805839359703232760726928675363638499315642219399816367500687335634155374138450431816951637010094727017704212359592653096550817077457664434710071788824842590936110976716692214023513713712595399442437564949425860163764554959846635780493970591138788706482300085112262862880542961119429378359038982050557508486273820312308327773209456675792617442115212008994127992937007542666443134260805396685072963911031996796269254825209776049028682685206428623249643364758945668171376058215218717373085126233528642969702179550986233499470098182433146362910273101910478664232743802750367868617966419729658376747331642939308234716976090717668911560371183392086639032369916825253038779186005437732738320591503385841481531573766427946967592924654707452555128842852753326531175126311463457482007945187638091775274410476352187710095017657613886331618929994848874738672815374509785430797499799113778302283934419719933331719545676238676416551777915321946183507822792747010613813283708425964156508594767534043306032582314109859201302784196043372840998935108238439480880728550650118441088548952676866424302354807018609289000832191142727831492413099077271478316182036697445256298406369031105542319685958994602069868228128352794889143177620279521519506899977823272673283734440708154122315983408357085189092826058013008603527964429548316237339196554993239223440451084774535493465273882036351707208473816215401980326324109156258361579486284117117812243204781501737361522058277971026920231258698134421777990030331367291909901386203890157439077310852533858366402304632110086014018234423351210295095543997182614573467964629139251694646621789818901459750044834818901336502432153671604067666974619328811239928398794837673454505428144253232175796945938744165010306734080803921121324252093273096461177329350309713740901724290134269666324179275534460772944325725399743308578762883760635216022554419869441046015131138056173927343908922661714206198901634348141007169290960728732503162147025086895400054228934397458721986047179677025999963123795836726336493748165018182182470662228242647569383741651052259580421987798514517047853789368445449550007010660517117384474398192429143721624713688540416293694700064507728539069758638122697802404173128368281024909250605489387739612005332708062036404711949296705144496704859573183055046027036874027995363797547748081697731236475274373732536692123275560593065440143645538083351836881298534502386735622927241329074774942245366733776120744016835341866729482559055824758374338499127709273737229942855837157779682577382395874988015867532019169429111382923335224071387199335243995013446101947071447200689928520332056662658882800560634815302224657570594219918753803974340911314140808046855334756078739074695320125041235591379632377951945745744159345068202651090481625884096630526931824971872252343598754960833588698088541672647588175273567833082797302788862692399751667660191951687334985271748784071503231090832100325227147561707300747558565414171985096449238881937686709904706460618525103714737837213655278617354636352156183058823524461686698669741020207186874058515395678575796288890776718179124100679696476448152702438233212112944889718168835662637799715363642808547279410970583093736089804256948360086474533350930706392431528599866514093872182474325685010781280071444646773164225894069659173007114741083146305432497875322940031306885872098689329596196406308213459051907328536306316281349517957812053926323571769898633391218099900819418884486719231499421388104788338691789997336113550294709408141927987315011295692095163105487188577887377420765687117126464483831503016229158977553169765216187380112099287612032294987901238600875589781706009334730089783445278822673239028641045553936181414941943369949718938431775552529186458199922776082927942875547719352898029458012195690849524577789136232950760698620641592630882894483205434545436173386988196872382514417577695407535584232906911401797646590578003010086395340528169884760917542360586945569619282432324958892329069108874448525226219820338151825423067283424228101586032329530235796874903218575751421619667038056907411647632461821180801103985994373234759134296390256500120880105423119001036180282521873073427808967402750014699479154614014943240500567031044149957439393595302310906700074222607199184983728144022539984841293520899883553142385928870034295576522084778351385695716571160375053845067729175487196527628997840485791199400884794980610563824633818276643415410561115669049886453439972978162212343204432417667606178176505481687242614271623972317296677306259775262936152016872406213245941823464164145671771339463209150103670841643268632318066779489242672285198803795639214897243883841468083423118168532640652954514536137977306233206659219322333615932013260448951446059492163287402391275989659983728840002590676265504996242068124357255998108949961231947577264196340193231792737220359888683095209920680800372839055642750599762018895072968994634767459587454805538099777001722042239151399258585418367755414845253168837135960474409794056061124040345560627618048486170527023900725213300260751050079975363275245745088693920939148949620422109177830685433219710041962393222804389118536865518961979759030149851224761716908312726088742242835043753841412780806687463496458042343259513364388330043347760200879258934508076867315205956800013369127872212592574787058189851495513584491722635936171888061946676106820400711680427971351562176699774809268940485964561102952915888549533687324693949172579271255817532872444892566875284724659862725771360672736572699533893103652922136831693604277042833392143521221170541597961674637008352378780372697572045249721476156160189433917865960673464412654436308661798845066990908954945638266810514661450733746524359816054467569682097726822270625675932317618043579746748983558183554849947020598337345206522537705424202004838600152533191133654236233565869434729812623321185443408765976144440265935851363569238528854118457115252541757834677887274910901992450430324962500482927503173399538389806165393078488457063737484292574146419555229385924843470359613498539690444200908726400568576667185938169005214681527803355374184398924193738561271187304905077173387781134380715996602936414579205793224609639166551917477879471081610260757668138088961670766540419194395032457530593808157567011294973221565164708465595300513060922750828794390277502964804244552302929441633130272260913230171073044043697560691881899924100157561877741679206488074893339978348458143771831526419612938763730062827578333904421578595249764399499921383813420273820198301584569970491017193291703434200383153656574781000552622425064883167226100078355865779562619120366571633045859444073752700069498827300426166617511043891046454348247638426874024750465951970898513303492411380545166233461723294684934915593626448305785829371646895505824158215297153823547107951463238764294897362853218617637554106129057358668107512153718297592720352175376110062511701217571099710341091073022947571711073058032629358529402848781653936362032354787582197925843993815927002849747695201740719640490631105464977009212233800720117263663605808587860476509689267703364777217935824913588008958999530341844502467077863037659721365164186396576858363785763575741305474324296685754747337337591345946411299420251193568644317023664669095791983901831193374617362575984116935695141915865873073479310030197273050955493127735042266474785428927365897597329967935099197440120993048841857741236149329024317471411070223402553972847506841981987526438524730361611341446390948433740079914487011928292760522919939917680692273215505159078762253162856161198289216313010284213907798862126655349585152167871958547552952212004278143976518299033652726495304590116039763847752703050344203109653814777931638209565372826137031430482811764219596040159338523959850370309081505594820650079939292946581300239418321902563043734081790503250611752656062963572827683928005178142625819796168945384591153012786936135535317597101537408300576833384312669697401916262463066350733363024075254240689912723639674238992748719137794280805025999288735269194825930690888718347487869464516004394444645157342112483908503791701073102583053763538959435877267132150613006431923015508618181745493673975597574382722874376514695104612317964590546043824684149853826552550827301462064155245586805954687100573035882724996581043250756315686381331369903989212752270503134574647701507072189896546666996319004834132471041411103401059109292404534616535996145556568265780886927048705372717738974491713005094571222317079103839007298422407803460661546217182781459709964672725279265675823594620686434937215277963952217165842977736911234292985609101915533634443691216329447701869807271554282546917171710404745121649265715826519246446045592616399828927095202833581524364632335641708575282106447042658359290519853236626634769456269506037262714234976322374145490335129929136472670567874909278305310578299017425804433799014256142698833284321900329033626803923938663058663024092389599095049507637515252760764669454065611677014832498400544500830591824436050324226115858047687679561810732932583072470652738375775453251466229152994955128680227760116097266699143496270308505366316298685887312982950366053811017906381787082625941434785978690702972950061384841018532363988262601033588407131151344320409090935611800193777498228039211857321788283301529587787245385495910776057491769900810578155110037727710319395230944205586222022512997760458870802355038510118717114314351844401696168582640523937205376549571562408320406883484973905796581955223090014659857369540944079694089071165002863175985949690899736442169248214837951113683184408724049304722243075366545535120141969808876110441226069994647836937278070608591679798866141624897946315153558986748182781766571190031914819379786710011803073267694161631265287615437005379633423096993806666268848906535786553929307294856551086270334609594318095747770661620050231180954105778532190500721044983666739891089464082398865401487696235104879241871611150559926262858926029166423384961610505974110138239919777531895064329599668881143739411426299028530912245139630213718985897074561558263546360773141375664394795042044981315313497939879344598777125642277826389304018089863558947168807976890903553829463175071123048624039649518787674855793227358219904589824710797671577037948815343689754974085287461584134666961419593626256057747656806237208673703673794465053947953839517571392899650189252681851705606121190779469911252625574282157870410591068597297172045259929454252624885213477641282979738081837849329874765573697408280999728971514098672216455250926959429358634807616391935192470943244418121884444250098214123017195517687985192207575132843061731607417130415939496901761622004164433142598509759114441447046628889380802276359453779643271167378602585329446192555486296142041093459075904819244495504095871689148200448049246187799411559204163812330101542472909384055285733824021133386391953836535134097085739270395783424190339374679829803020115917630294576614498545344927034530603667575714423577711096381232213989239353649088013043892949847057304071523192780792917411890051286810927335829567186002467824618758594923694854321873202855123173082447246507593877077983920977253276775790142633304745297576683594764164774513523031707735025025456844840456997076546914015151263722297134203239722243455510371983527751861288047736086592792223206359534344180197749653836999893359753274685024406248640908799465603893961257164607812652073120430757238986661844093476174432663733066319706685381270995737879249061223282228400368539649332497002289404372775215903980214378769718525416152071922101095957511377079053644827061787041723629755647823260694742696264073551362112616786038627714951989170325081228246213775346001955520321152436820375756169058548934447282992618526237935387222752705576150766678571561338077554086774086267547194178468201043008958621286532725220153300601534027453781822368531959727725835397763157104926416940839766415471050886879204012846205686961133518264852868117022702512804617996170080072591297294596393918567882295918734531550170147124146939378875314701215026685848646803538908219702495406021160370694789149999831954023388078221238056199813026266399122923612941724210588509980726424680767118851062176741708495677176882427243122513912748930614045368873467396722373900810093469230210963797987704311087559183273929460754243820370449136561698804790384521165564434922381342033504010245208038765548644047739774736470925977466148700179466564831202599632347419840335505522231533543556742115419322395856843973181576101356983261961423881513775004821593234788270495557582108741567596422881432425927707154875303965405503398435369731793653672586622615970313183526309181834536635503920585178479253282472032148720882593092067991948562092584506473209400065322453428422298479978861897477226007605348300396700173659413442131027230741753491296578804219679397385476373662208544626477855696915461736083946958850991202648476315862812919441752478680761841748003123871477858879249623037253757108499799329901329640080579343985159517386905367541104472659815602654596052794862501754149795991997791098711102924993700692591277465941487699511876394983369620220338461359758688624884442859082480686806763970858823298270614294717564593915978006874750647821222998391948601379424089086057945736582891286596840851252310234275248869062061107791816443454622070699528440275635658068202550128673941849886608405044855187739063547072211564154717096981114957816470442534435969266581447346565955140306532662064824717885484327203125422473435325486996454653773745508952404140141086928123812103487001069076240385108890307826824808949694310779900655613891412890187544177918060294618340205240913041571284837808752480329095104462506752180001433707598540605735887433478301825885733729881760692398658696675666100594158889911567190613639942008768391402360945725323959502469805517480405193177263862463290517198463334831815434918452941515151121762203997731826672956361599304158742375066420951908484573139431478188955463658227833635947045061333773778476982601481615294162606305127731470372868883430313129514824800254770222871558442840177699531217789027810598346428365151413206155806891114389637750504843258559575667008581759512559390587945649801277235537531967634518287589806387606075402218975511053818037912185984140608142315754142518840144026075352371252894996113838750942875102588624630168811424118687248566401153095880525146052958582710137288920340449228297265818805608344399049258124237465828376071559235311458988110863820974902649569074062438969269638218152268934645619094922111708747296279901012325800965140369349672119950129749077985049500472815800534882793069740639740512453272475478693032488401859581654058666440469667514992746771959856746313723866450104775073418868752477696398942835623640689327923433092912694975485745654149602375365323929374630236833306946966333513597835374445226876233882807551536941798265933269291409530251576922897557499355470097481768782346807537540934029694118974191510817503493106816863350678951883332866868731092796026888305261528102262242549166296070811708872746037169807243788828250792887610842021173029114675335681700744521313174087488576835948481327264229636967064120284303608495106716293754788796694648167409577573410820145060490872635172815965778570994935606242026110421326687769325380964054975162710935199077284738857800301301084708039127844977039901358781509186878125849504952059574869883407648681490495183648462553503220050448251360971855173654540490313335598040438380474113468449862923958836477420550362297617004756475511925462562062100176555497408920189987505757947541210846803685235972647499509525647849124485999427402896719015741793364573776110053615716823351726149389847191052007167822988629666214239685246710447288745051525881948235953946482947175294951116958196087689417438316719685248062501644817762138343447762403444649584365591637526519260402533751202729949111098422430893729912636441068127094474979088565047415843916031860653223947100038925576105364489243223485672143857772699212772717970690319085463759932870401085175067442516188962228957206969109454326790469990650329553559502771814530342123411569239567310435698645082145969031229650632759251666011009858093312576008109334491201065732611561594688315715992028637798914729108244502680951372507231442741813381252912351607424757257886004176899665098865483472299271108652661073603663133873991988038746189403069600439641926808721327782930145689940022130080994020691931145779407273263189195023432643393463760582406436723225916513257624751745930246850087909018542197894504918989134100491439167687251582216790591595630112007987552280924725263753050683079031061418342863767298062308457237675293695544542906677669720707431298713009942939577024338743280738479230311751832224179609400058400909723447375482125565086919385548665434544948032960214350715217374630904740015005323042285351304230409866967426882770065073558217577562823890939144285046893098455005401290442148182938879640517681435562920785018278049933646651199964584885935163373452569323605707594374341128476421007368011766153102323301015549717775907318273879282695355376668179319323153180062004691789132509765394239403331512813777815400040044333806946421973212668341182417055862001750713257986237359297495305396564636669657061210553183792366125072013865346096789720181415419632418274173733209765172210217825682588087131532190131297442943057530974205937066253000915832612350746256465814702996812625901881260347207229485264276484800684179871579312706864482950978509949873410368921581068455639973473326902965163692467834498420329200749755865757451666946877122706634431753589698660898306535387672645104481008749057013378510702769906712375575924108142553174999831326894141377294236724950922594327106101591827032609963446177485559839213784177341267673271572988807474859270443336174842645741182876695601572369017714750806103257384683480815494770147567168980596420596115557712630425034843386291758161202636906421630280509449363528309507096314179028903577908504918119641417308432197491016474636183524048340970508141267114912868060760705886660593173649232389186110351661106016591180884979266066298875733138923711717163660167886719319288032673646002114634364382625083565568106466189731040364651232512231338828274456691915573886916143772931996933797277315489756252739339754053103222244791399883141459127513158179833665269109616382539744902521976110862298630252236927354230330369311762240588842005721467948836128847896427846861924384763460507304130844110001773648529195145738196744047572182023360047905598093668673073664739204312668081977957543845771793775516177996400551044727850701385149714726880297856596701277818606428841258256625110729439534766441963237362380703196142692098304240836663039601847924511785140618557995629528821846524304177971898781177594340968112434992085634985132555950731012662848742158704028246836931429643925057751338987796536636481114431387315257813312239742788828852474391933485825839305455743461222784513464602798015633728473460176944205848362391742700900966997216350233096934598625208699470282172486937107751556459498382509352012913100995194125096186301335006341353875177335790460446601930729567522974581387585032065651650618428480421979159904551797735667569886387911047416574199322848358842820736135978565958962445800609050614377438113481071612753521815959277576776244162119557976085973259909313570628136049858465889237632221583648264714842296724030009712899333486397849637658032732459856205051601431793674362189211229531817326907492386009011859101405928633825498821762046402198563881235053869761922050738888815614965036164436721147936648986964526911062435520205742675457839870863463799977082689233728749919904611114353901757105701459824155204251082882315874037707976818332165298987607325038207709495242938883009134111650803199158007976362208735794103495693358802788626907715776865912391856331506402151975610057214612070224652387761685544421263124189524975522570647095229338645338738113473810700228622991725794805263090058888852542409116850365644015057030747706081100118553777295423856154845742912291317231183261755179579713183182136145683445046836162628036958197792217833872314079156224722868540612312385849531202284136311436791279057956617701730341890621011119741036641740892476570821929315929206426399401327944138649770618277254283311883270625935458646443312469857110809338943704198032136314956414960362845168039779144124061253393380668376452210560845412929915063877017323708876881539467262668793613639341082512948084986654173853695058430905454442345342847109357846300058639221682357325318402070421820473090833888881111692896610738728423963451682073647969417335313606379489142636670319797868066369150672591271104502899471607114481406048747962268763186272485121716801396361763852597276432737957842166112011710568575370953195874964459551444676322529653361527785662676530081131284032589918032856261328861615574146907417534445794960236629448843513746007448818254078890839039944815761729483815326299365635769612499121757684168277849707396320215573703208994237834130326871961775573574666293960902737489304791506309624734323859973914160215538237629962827597238890087028742183445098600473071375790309198422881105927099889345058282396195339563065028409655863624309906080645381061986499788694794270454919976353780024602073798770894769465690005347987270643113192279575562067277107543074809689253099693475699182735360089621413489954826240933862616941880432802578299954225061136795584432580877141183938610794164921222844697776834466488244637781483861352619110129680836977103743184078673670167129364013124131706359364707129342611652694974155499885316269707697045464220034957412866307781656946238301302504492508372196720019639393034855511095363567929018910036461885170094959400277679737390798091538924830972297536497571171405045915402946492590667589104043758945705523953171736916243413180015702707929825950454047392022445611187858647171717863942696303883352784724492142137022130620685544823987225411493874077276277756915364731608214587467997221556422811345045071768967498977709675240816446513234744693958836321970210474572914031579101621110660410735575025055289394941526085610870777141733246970277156937298582849996355354811049478145250507719757295513281664514545641745282553999095454261776770531969792294818842569602439097538845829178356452071993496897079970738193716492487975103358706726211783638466373122712523656097769517758131446926114811926074788557366633213473182248041651699597255324352132273020656674246762891463929171190972064066842805386128839252048566237122112731402632413523024922025469619762782286196521236729553159089355030359284536484035611075394605021052783550378539831926707039085551059653682283173508020591914008232091093766879744591872654764010253992887792588767086170432807300880757014183912082968592253009046840770505133461911510054368911023898958555915891674868719944370619384834575806469807054197364519184973895280111093777416684779752402207900301227670433778364513316369216645539550694567320718393529246105315630015104991381271588193574812111749470105522813714549379104119739005324869891336320990850714002507797338631629559859170452786410073876851719182610593335581756900897054121545967873074189400018417624352015826265960104524748533277441904771924789330530794144751156950383081591051848590730559300239431720951223248146309089361975355097437247934809816504126872939169214953710437069007767765910752789642489231092989569059929683057487972938910604240663188622813619094923849187018305816070727574753406875680918017657415220932114843947972325428103720317941395469207909985873071501724407335728592149171062210156616231318994367044481098176807438292458199104355135118078938892628903068395580980760304435594672448751517005578160524009454534884890392504492529244409050126565048488549110272225471493205072207138232297092104504980842729083887289822959953179808918050067043996052195879233034470806608852589722210649545795170919835892119469365558846819947959823593060823814066425334695726236653848460631945812012059038493077127434009351069994810926712930480782902830151155840242200453021536166635674203541283215505565583996905647316867610703250673023528585200519623874595627442689335248505664937617885295928367857621565577111864485377783652096500647516024713189859829042574008599677801348721094965038958135490767720229160767513614951233664105336304506192734681898320037706986779746537305580577763365514712162395974105605369302482131043273313197084936470723664701985571267018312137909770292999334631503303136403233379654663743424441529412952881174285677483157222064119714565044050532022866453151019787772355415553143467416326208498105810225547813793858964546088949838463522837234182387203594602735402329989987237771129322378874242258904058903902253741364660716112233622131774669390444579181303864735656650238772667769854031094558514309081323423679604069869401095740483622782562894730590298420837281557410383132922350488509849892646785733257716439591082347394783028399008406470067603606366052564073602882589186762573538185759840036480145690431653202888813036858564708723593628147926454086405142911752997354014892705961653197868830179700923471936403167198806114510142134568684797846650110773761799747395412919184241464829679831066963387431606451642572409604295156877842261833451805816962419622764078976785662666252340615512415227942507481647232281967181869487129428902755383986555492319583468493730688761858410082504203619257581644090845601241626817605091992626708983590183173879812712254031306474326369465745298679159949328765633220876154668274326102689316101375619675992624564649329233817305938366683691116014578788390428206217476825161306151498393593755895518548255047067123341728789634080732125317326897746532084920136308756654271101551258700787974790255499962441664168596549877489166277926460765601100994254037155017241839661392219451461299668313324510565303436730494784443522674959909891366993761324571823832813930694534653068335721822941190798343454732345747718579307239584556509498802678671476680929179026891459763191898021726256257003196068671834463683964554105412876665308279547430498499997346095726968533163703587297406034722332445169612487938269863472613782700132598847831429721098181706149914479028584939761474928653573423888460821680800913033651655830199243276156173723598402428244161052536590328039299589221268655615457134384096203470695020604614191494641483804253579718220112068309475137973191151275906356222854919335476687945224132574672673442776396864468372607043891459006460629849289606685297516039726262700332175741854390661921121999183801088479928427200333292189610000845048519200530734377521631723528202685387627155202427198781370559340058308956404679589935014417126941661108076659944768194484377257153213391276643792083144658831569748840358494309796887883060076737513342025533891059391205705159411524321982542436495626996039560746980159142168885970768418004186822235992609677802437394289656419009311623298740999650468871080145588317210766006957767213862531961472031914353834429066137065499427403329540696183031713329959959815686526792006934819728431266871376036818239236260397014874972508978634230924954122820616056904076849475681157305913776189717293618170548775022866253661435807282170609653822891113528998211372251394491236045209502709799385506686366655755429965354489717848904102665752627278470245676473652095918221792278876822207042628866946360843644042519727678878857713862689672161821608431463634096865775678718921302428052442709286807863397109227980725725283888949894424082395133764218937588548312808692377193605703569805212687738272713539801745388138098229667776101638642063600852405361640907047251078792786978620338234021069826316921642772118270994329890422233686596851584074104140982983166958732646556697439086474690158483097512304541251451856154407019103374889873998435488591271971728224010508589413600732190329022749017020004619044146102142615251841296653203848925897917245368803837783161409305155179912935714738558570464570638132041722734449330885727302676188932571276048163065374051749800172617875789175035349790529955482006262111002141018621383993923292646821843273403926321868839120998300683309688581146799685882777829066161119968680510339804125740642080036311052702945327919302099064043381288105911944927956611477899126017146362229512510818365093542447621346781812198964933753764917382869897159284518532733480186458256446128429840060395624261721066023283660759960205555260618750127517927172299891481203219706810090395817581129649543545249271043926200736042183564835417446715187193368653882956055745414879368915772930841859761875522252881382092503743314519535126690740008767312641093498424115567824499051611748069639137999199582828035465278074848748795594962955319749487219446618747583511187912767424041314820603970389087000025800400483663546251822685855394729633581749980365232554241881402396163577923687009883471724967103569091824177127027363998911129081849617056055156977483299149793685058113670200282581804742294192967428555358222367286708094133758524519178133770726936877147999307130260281410675954178322088657336768187360166621586823697328381565968445802045066408430099820977287970676634725108174677429373716447697305534705962806120971924507020569103422822337748957199379451120352280055676303969009258375366140484738330789022580776885429708988923697612648845372551754921221599038466520274758387223261533409217297641632469392022001113340580194831438597398023214374307595241109776161109006131771919386821842112056479325358021130028939126230638326423732825591569749588363308621247639606102324733666845618070274735579521781714444634498593600037564258458276087746592709417861552751410582748175951353939020949413627298716338571227527817344164616861598420908641371862907032350292426968757676248258898464179779893355001444248002570818049171835691203989179982201723555410182173536863187644305373402730965496569607067822072379575962068064456968355138157997237237781203443817073550140747033132881094299183694524858089699679002464609123922323601866342139456942426786335036125112967260768902357031272318872014892654553355287178135099460229546247147488697950364976279782101346886999079242296728146314003754681421366286336862138835312622974588175950286912477734835135189303920393637556664998247758620661173132519882452118637449388324849965729944740819893361331547387184488462732257796220375121624949763000045963037708461188953039738909260292752710048797857055145801547857967739804183421342941286957412453229003704543817500943920091014539432466782777577942051010341356601934940779258548143928559064104346394778615926969157361037486195179040748730318146284329067679916281372712722927558764768539736570694839816903215484869722099433389103868431315433618326300112330899618987111897527203763636533799684377383990592703891601330678551723374011920423145174682357887203328332991500493949137578247140694077629140293209561351038265990305644070760319185620929909359711139561009559783479509394369190306191917621427035695651863525721764996500727000695050570296801041857033847748452732078538533677710706120595673805786485269559556964314808066888844137926322668680969324585626867029000561420878819490653865569436480166194475105123292445475843965849417886983118811096812116292449379977893386336855000461390735460150274174471068191764321654771558157476328552845377099302606642721084559761525250958332896217185872778170093147940599099329608774224734748958372864007714360214798203216101242226238349934839065576109902652085936765687975047206595991249701459342752916660076481962888312649035964796697691390776235988928590262101574157532446171319861004976309365681090845757801530343238655869610338229102899174249748672809993176543825428215585592223346942018739053859948171602754314632438544527747838035647947852453758712416298533632433805718742117520003689223837266076739404158849580841570771607036179504318862494428095727624663090590744391908064623115581813655278098662337642604860468161210499293948857454665521627996461121493537565749511506030343524230410018162628002241267069546049429884498646358513792082580564269384737552359695836414101954516312787851037546865933318170306096879160055500032681005954531730061967581449024933628558068239737378727293562027924473039061695786137279359828074744334800923681225118002147053195382404484446797652078984404263004224129296358574180159326257962061318746331444108815239061638482926127606975688677886786251569805066944580389563770118313954803443466333484110799864965981625172927839385887391581093108511801904666329429813501584605743521960621719988186116463994688154677237396304323328928565897646441593651795910473918784031811325070440994253664933807245458123943487212383800224663553826175375399807204050926912938360882801259418090248159549908169124621392821604727168995650264565546455710230720014154737995839202951532663716094122691245260266087279970886298765094929167182386270682323145033511902298977293159902909939801100518134709276955680601022696780724240024916578719953255977513287449201314957620237576350033151363002369503364277341719417205195185488037434363089461229597131880248802777513630334457059791133821670815758226550300961115134700482473070871951156538595482093263858332667185478657792512029742534348955199745690981314361810738145686389337296360082339219437435403522832524405827245100676604889746272123331045884945490013184773037540992590700917849084699851522246047638159372737724726842377431969866293059970272809384841971343318739774109955052176411390416132705779690516865148063166998364795086840604257616394955721843195702171308320312472438694894626074200135395602837485260517522411403053709586512984030316353831410265447597699951707751752883954882657219874591095280356145484716644655429075367487504033687834896319092767386784430264950845276809521958774185713997205772312531172323497819259621138431795694626207192950676087588612864442057557572910922404951438299741778158955780602717976461480060920311110307951878109407739957802227517533149673994567961389890122995582689583956564451977655130328817069432213484138611104873800164422653498321685933058376233331920334688356376697990373946362796481446960137623577063095602390497902152803211407284728184795937499346138960808199344326014136235288399915901447954982644289729033159360329090605853889773650511965872714491386227968351448338388194731202174672166585714102863925172129365191558082238294297185941616251436153334417449666531242244161212741559401864353819818703934591934857092660050467534761114975502892561211324927087008577283881138201203985439491953443575292398272707971076379639159430719957947127223797434042070498643439062315908297382983244591697563619380257804586763331803637831263808348708517329301732222309876559182657686940213838693707337137458317187609280034684226967169260961177713927400845959839175946132616719090068799956328603907000019150904784263613830002495288027478587181110627604625505327604808654284471765516888337452913457199344395824445825517758803512680984792229018638998381202347542247134607263088978840779617906406407394247983020918642822575972287941794808801415422082871428890644329880448065198064563909801724554415896294637159703282666168356717078248438950258270902537174761385986153711900394587106514113486738299144534519399556465250733211249356413531850119161724667846185361495826194160999502100081011055247161895930443735971585122156763007634894762758462674272032627710648334118861240141207322704590239677439026497256659692576314104595711758986992791790148781217284793895951671266757502148966866616814626639949955981508342440944894698642097412584189446853988466768335980874830789703381992264023395770982431708977136571494067184330570663850043016508777197853492825330187547434590944575379746250497673439400767321066765018728260421921446072881578289835292861919748707428950057879381232324845174475487106225851973112014724435628503365583762859299042972488790709732782015548266681996037931994736689334415896920295986116357442886849444779892715126132693359565200048444290540765608057015078769742237877667632468940866627135216477675596955992918864475680262964669478293659095181280635395727204271280941815579562057236629519918391242342330529954825020400137652810944041116847647291903620828457503543017072002705514011160278842959969620789410006881054701430096754979594437122845024705298893451397670017886797915828913321402452622927371700532427792634313656729375394506991527762337912707015081257284246675428875109317961926950759872101413978519030830770259419426153917806380847082754396708156174906828340236972957482262738247121747556601967983352287750283896476763372589606952568911709074895441257461009410371273354458319351803652156308744313747190177459017726033049673979452830168583424953991143350004106166785980142849647884234592124888148443395397133153308078115261013809759838969423966357633768963140532273084166185271308216807573063605843478945082641923872637370602094412638820622692373108333829980482998998355005293617316217610453142775770539372943996774267944422227929843380484747361637832238331932334441892006808110796493538718765275888058285609429550444903083714852775338548234168335575188984819233772525574721654774262722731527911696341167894164578043033893141452414966220877948125757706866898194677672855157127386633753191065128341752206189748932247004529851336542373409554873967607546351690332593999168023017905817187067456632933793231507135481394910188928671256038555774237572921503275300087321401714324198780837455778909538183355162329915295805215553678892794183350289386905545229218269149342276865921331379450643769778120116135030162000136411982791913838035279726394719001303898169172062319810507182319945462810234365450758284242634215172625083335354709890007001003431170787611586196892771967500455114925310044898063145824001356779277358805827531176551929881988104608898184791684761254677757573846306662544056923805177400508956509469989392778786507983531683407244057153063935591447454302109331701772944963225522984215881118728433351846165690949307174625519135567083193753289422826883468136746669162446572092770126762653291460377598442427572179577712666343138004090035493154057851202817357249867484405634525283218475588453630050535413229569358797649491404398373833119735848577396784504389500965581144407199246519580985987085920949647135967801427431005346724546059291514580925137478266195984086634152856832146876980791109660756522181445401677742571834057428374254077357227589400661811373760488028308438524610039447102280272271221531286887818032508960177987072577385886953454999687447673523112056783491212024940225516176103894941569056089657730752120040280508473467409650155447007007893423106396090565957443625454408276928090177389653947923637998611569870831098690277731506212186451629622215127234017776622152076487129579732009858940505134155341130388205174746441515682284815121798604231788871015198099665477778007651004592979449398792182766882648597936249889332355865789866830619070983910190898218584743917027395359412706266067898469484857015901404609202711050457151873788842859206103929392084404080009987091424384305410805982673757914537601393569566275250863935608870532210363114869680244780970757253559201655527154675375356976325076012287008148413626343105943096278114572436312677988459037725066111998230525026661177524569002000397089397536835956199597548462913503252492105279025520207145840493227139636887713684057761038282425748625916721873650054996298292065557132845363806606434520522616575119081184339258715354104489800009649352952215051770082635619796304270284811844814005251594334335883011101215352068938208624964998862344408146080784492612063041384473895603918988775263253921917393265333304694851286635975432888440575954648157155538852154228827159762889754065787000132077721332970676454489901880523539020791370962551587434117523448058717715680259113122216072053580313360910167279905660369806651167581161021266349157504328802359523768141486594193026286704737175925970515447371733109724985866693624705432485302917595587471337003992027690146934333981286841005509574691705879806563102752344125345103381565828991957757310342673455549469794088698402202711835841039333160577172836726507059940184941137212034646365296559295625157401698449379803085316658861700657733565970515278279896663767604920383228862473546185646885055665473879473394971828758922093675683972428293283308710994664239712515860015322251026082166996402785899250677727933580702719155095631254472090680567455150320629476138793315262904010419945971519380189517309769110518856122807117011930074415563526652417743747042207632879494151077470366059422453703759426022383848144801059800396858387211038010704282839132338627738228848819998960416869489731176838014474039474816816521464571185759376721367263396206576351540283151848980877932024573068469913625938077206069398704541345066621055549001632154768776676564030210300825478122439555935851015866453897510362868996440221914597160356466484185659574740576988068289050658481059027514123259443669558152496772476145024983025286848597692043148679585253997614284178563926970612910456365403307247231536741577973499905231476112265162142674161084639048995012764640365692029139341504296906075582937149121557901544098454922531700094531406946539380486242053891417141681773438614391210673783814739919521226869590612073222697768292276680629288239063305219315105896895568838967313314540710762612336752739324454789175049844457318685232389942798891717245651075927312637429902623889472263736211184843078071123871312077379631755694367736308223484002312544047708399134148122313039695787464507897499844577549102376573951297197284876311625551941088191152521934541240372974936133003488576491557152161133461232706298507754765057796055329321279507667689538734816079424472915521581121540828248882699544894796237427606972956092650924256275373471896607889017855605285718706926658200587005394628582883361176007627339394815824424364098723989372395158129385586089846238821405841969326403318503875021117738363677615631173383078317460113937173447814124350524305894488181792657082091926957661121200864848075709362525817638781491009544425831381955601164246491015578093055681549198595719807623922699808652374341074725280056144283048885140245306893823084662778317850660498891958155871024073714623960553602609754628866203058573131961776651973264125374812254141375216454694146099060419798279513278119590774965217492085201266064429543789513451542324767438634615589588555364622536595268747993657734734514906579584860146035485985001857237354834830111564188246615944847073248108240799501126947040581478903700240793180653382135620456320708310651403500211288543118747024881428717976838670928142992475128366981966610775444507935619781918008721638510339454979692873994881144064475582307830854601937458165701946675866660976783541394620272807746586837170131404701880194574621047213329455155247858525007793669383418844443477773959484694601427199729492221472792142560712753424535144421648836437017404758918283746270405104966827783305142720261235937601347688991894019506947486541696425178999365667915418776057852869878206138374837077899704873004211897441456253749738952474559355536062408405897064981047885171531933486755251928763303850740927003958131173556956571410717426718217091249982962517134807288575558520102374694526089169237518440613756744929136818384725692418397571685137082273783647260145048304523111739820967808989393351798724144276777017969652683359720215048970730085741107886410997486244925561572227705519051369977056819561042713839296083864550104037526381824362337504993458208256327150656929295091917043477786119274523211368977542496795059258506585508888758517741795417029378528314664572735748514099504676155554668975807101578194896047183488781496023656706613879965009728278995883525970964581999729791150222923249491216324994609567705383630212992536799339820934922004864749572199373324124151684738306482532471867253069442544248176750946956961112538025149332659386422179602329141670118375803821900360880186114191020369012576717528869244044765245396025232829645228049825522454009506712851049766622019286704768630666252556116534372488533545711320796930143109435670921502335471516775349497219555766861198266739552700117050780946510502908729182206557921932138539995301963612477266879609761911550207356950085396233296791246288106200688346625598497241409012051216809419983352293872271550231738795839794057852082991057437458174717932384839073953638078956622419018234533258882430860512015243321467265288294142205587428423426275873842480065239553251314094976127015568514859822079155711109959240748232261424297672467734765485746207437533788730782652360906434367988567298873681640505036854805195078903854746734212943342407980015355153610219835064208541376476809809093170734364344160195290044685638317559861025447441906976315385769999342118243825616431534003672321919563948137784855489357770639507054666465786725800495664836562417727362438276412222005880521150514665321670248041800730770901690673502027161907666889754495834434758820904626029745087528231879249431507410593531665966639271632878502259624710434729589881656448668264134319198417659344847274772792547001906737800920619551662376777019909184162147029919884510484878187509478134833615071608111113828600886542473750249554963453214500678335544995985744802186443712093051738783856310187540055046306353226917495258696394265096252315851844100998083082513551800387573618664230132881998340880879020486492196641406366635835795235896819667815464593858514382296062419005331112304721260371442612953511909167211750900621678082620415272606628415056949489412790026184889201125051145969633904982607159405588772055883908547868517758243220845721852043930122608310341499908374642980098138216274016497665840702772175122244777681652408303420844178129883520900148742081617072614669494156842534316185671840063146880792728270873834973248130426290913405564128919647759346748107259586599895100017422551205849168317371175170587543056454363367485470256788261970424381180326712911250604029159640920354657677533931591616973083051281516012854981193025247457133419319368487688093554379582253113590498493591362218592162201596371953685851630255541250850110369025972428169310819538348750045122162564383511976673074459066031354423528453403338188303004361117143676645793379809306123808179877391200170225175123827780785635538975404158757113173853150260991340550123248317937270250187013600992327909963266372369354728929806972595374320355388284961720389997557708807711012528766537716456293731430259480084981434936286982038269378049244316873521701009930801384342148660311030128752587594495934215975252795211828240441084609903820137965314386074727882098001403429461040040244139671082716540217316232771603981522417655485654486080455993455711463607775886835328951574247471591001218150375063189755611617121807765507578656874382949122561656542925601916147701373266155369771366537709670925383123155667725323981438478917870992082837251941987550608333619208443404233824598403018485691531988711738727875646125211084796313101623390213438875682759949323818354670383104998851350282850508980886511658284031023250593266944282127234195111698311978716269642465065462410728271429513848398445323994235948447400469178854528229229624940972759351583181377514651690274175316408999442627263510928543401741356293592591797995980341886321035274276485433718471243312188306016072408577138067376423269506765522034300250783834327579090563081684156284173758243455902680526300205838270284402226406677578287598921614489696602706259587256993698256793772205902546692222824653307888418306038848098177612531732208661942990873369770827592964041100333514717569262760753478565304089282603809668731377926541877833899215612758050366581147619368490221751210848564161358419715752106769688273775307086232521765686772204451422932788481502766870091330719100503724517015065048831273926757199328133348277037539162414903896745439065055665564783404732438805704436034406734132184971972526095657321349513960418034628917721058345745964004361983695065942496847471697437152509099926473818142990411367876018495731280248794685091497232367027520890318708667588936174958644696789389116233105564388707116629628386961470212539992966995181926718331762242142170645719454114545650754113611802358275656698452346603532524468691038037405843780241808370392934792841664241702399410790218701227503576592087326568796686654217750860819735320816222217579815001852703022731835654449727678883467011362282330966684810613055425022069037032189771291846870390652858197354097314599161456642427671245449766160457674725278956417054163576711910221557303849747360450806377825817259893892337335365764918480615467782325244591511468644742723790034507808953141852085221518713060841177770803465501531977386647790521170368889571705919752348272667333661364657270838450585493065240820139664228214665702646002750926687030937594180230103598930624350996906491719034622803691849057666194212275217522956537041832528677526322318381856511334809287807658640151963535745801732169096133550786836647098664006926447398308433817079110579412656820608669122166119752312196421227630751087982805860178322408900111600941529950623090324535438877954413430949869650142011576657859900039391896462276342716290307635483577043847310218064466116811698582377885977456773085592852349273827128681247408468945005055415920485116925120860742942059196038178218933137921604467013623770290638932063086586628217790525225902407987300979883919246809824970423785594284135447244453132613262178011636687538687235277047922949638652816815530584656970933600537180890131345592460517892640098530023922906747521189793596743633522681940751014565011222311832528618266033212743788273192094693993669435813032578465824459633648225082643605599985882048257654514285135744465695098989943730665104066063389944170315101081781335891264292878708136933585363310606993633241219423143113920408544362355274986497400822034535109468385007020137081037473473702218464435634301916152514307767233008399487573881272325898642354270707543672488092268187281265595780018340673085208357516780160993386376537830280170874089835769018080612295285276456242184315733217612104764684785790069859999929351176845145076335056188311668470721410732574131301369869593033577868380727295093933179277645695838605671573573462386062547851909538953712180318944273477255746597727690742062410186224900166004598660244035738977603928325332032235761422005373228106019744178713184229477648964194823941774738100962278260339803994162510644046968957377646132952986919851608147669494713434007029023154757134984529295618197962853617464736266327550686094821819573548176969090489444250045975124291701080603452065704742467897447208989852665624986764951725193379091691751542504570246104300040437237444457166130510834069850722861270886222301470202262316832579352707148171494659682963547796830802001457217719816160419626657690025063317404799272372140145388275600585227809213535594484308820002724835434059431100350676472632684012048227962851524033214226265310978643633728657124672882502798921564082076388112526874993994117212511098446248806895826915625687455582220572790750263424851732249846250565757696640405397671120634416914406138218384855897437704023435158606593102604369937764376382995996213094134146501385447959869848633821053091751246038950751789774612589475797495550994135365771317414704350726730482941845684827890415462450634413409445617989325204340968542552582983980464096801208477086581290690124034843398355193957903783255620881041257821369907771654212232176125994670140384734204092259077955901786325194061383997100237014166833291821959046040805922023536866198408972477206497146716369493822899401590844917537733565120880902664419853864111690056590308730881174184103089895463359483717272420650357818744465186738020992139617514364028647760935887542098689704021275383122879341584431296668005747794863728190969764099314545120359500810779373283280244420245549963548279255338316864133014619221816390243529770238496043341430045650067981286285821436261535791936566486255299820393246375891356886999033431128443445673345735871547037706915588679935732264907571558097248839518576661462562440754597510903898647964082004861964335412289262283358152109831259886425304168625397936563641330477832036010576599045709740343101659410947198411975256141343178414373631465614134629906595899092329834062432879183085125478368937112034551463524707918436084338412011143671669938672160574009981103861140672923865413206033169804348929881962681800578085606864454984900227395405646354827256684488257310906116667929304669652990625040594457235713813960185467911874256727753292553360709850560518003377603141258517995127199743400252235897082141713230009126320327492672676887273306345738243812653249672567611685290243049750763086398520029094241693115760546364285502691567544731993372091063918140744488103521236607244354631515122828108553991264559734134785003567223071962991309306171910696220289996807215836490687442939480349551345302609670926756448903782906769742422232878045702475427420830197700416821022361671982119538777996810690655409389007811964374719848619869275716342729409456951249141657118968666858818410210155823093229033380786586345290619455261362382520809492807291329035540113236335256147809520329891604438050438224758142877226278837797066620958882999268666825903766695067801292961595163244308976538531182971258697889462638052963183692905051450037162458936899614780492428277874409713623689551135270845691740483067113363928899703881873368833384691788822996336998315689968225584004941181049679132134793114620237604637259115806592701115322236696243346736926663091025753966980329307137646574970392042293766372369293948265478059825928046184125735752355373068044882111611121445165513697566790889181615303594142434421006616065438629676837934135133026465258960576041009468978311997803491812015897814851895895000841791586668218719856464775287599632770390900622899411501824755148251637264949553697233851522410682194985896301065487764502142165040329985316399786783431295392842814705581564949006263750823848408469568801383305124272376368594028094083978925567681063475630865840598374299621468284799892019710789847131532562526986807694410794551518349716047904522255226841968566635179012230525014130886360337227934987971851626250458167580695101359399043258193093977150553120482829517116818338474296505566830774485763451613653044091915599813761664229261507915737466225468946849492625522113061045918646892671082317878618466397576305360262333758684879701050011705199812520497864919433782700666322681224083168196587678862444709197451505191738890924042491630180670040677090858866358220471896643538913811639406136544122491934830210305459623392323929156769142825813401888351411756540252285593376729349350353012505966485835514804764173664527267641659462895865690145847232799384894595414277173941137343704447143108022262621399244813316235086554616700329936149502194039273440675351871387088422519043750720829659921010902527980755569116236158138615837962787733665488182104386572300209703586208147413575213990257690060414916023340059278294054628339839091013226243111103541793284176634069768201477778441565740768759591335566724974605424249294995175262364663805261736862971999764280229829678370596221117790422234874393996904043237614076491851794448547216292478303477945324529320675106145160778751269069457917771534178930723228781072322722883393600749309840296506222610311351082869938102507353839046378635866040581401720852907137609262079271727330730882803466141990400519529791732791983732496777397440305376368920848411604311027207414766079187089564844901600607403088515588741748840900876909954788320814184534105131042085458817212668688563559500735314945896347812477337513728594158218201200078853566516964653828217736194358898849831353867401237775759811097502558714154498075849091227851395612160263995851437089251219411675137574085317588792593674624354427870828913360681898477770875705602460535796051335313721050628855960282374565234613868718729469955450716810418573325556199951913732873813908928907387999954721397276553413078242936679089022017904128491430408167427622672542805533192458224439397280962275416431874808681502123742515874711358054027446144978685373030413640954019531485995817454345207029557313071693749447952495887217925647623074444901502561386741581488448222799622030319423142582545233504104110253620616628812706863108387098182462740811643465335040810689145942033032326556629723290044018533557874070413529007446529950020184620507893574274582839916249195483521120727159441813335385097677874875376821821248506358893176284849386631770326574249455198872931480320278598376580192436919246272682552254216918246253635621111705309214474550689968737106145498546193508160751264592535446722543540232466248180016831671745097195950123421522859892864578992242371046871823839266114476625487496309988748190357026760205992340833248449609382363523561226449800969972347588437083082874834873379121624937472491020714117023051604634610724313460980806630729015719486241209714662348803995572043722718832509327796461514628870281150649390637091062811429082048934185355137897915370531182148933164248534563571743850878015718360195503117276559631251690746697663541493504477986014607749981512887417162941641905961488205800374036650204571418838887527903766548222250451724490062800568826178735920552157879376971210356022221422905699247942510473883585798375378439448257855075112545982221726612488503799336887693305738894163475879507933749699477052093079618620240193869566417396939058481362516818893164727112375860944309652857741417045408207683501481943503354584975134213712002723600516881599035752857666425722766896548358233446292475409073706668654152059634246773182564717570107023934715813040536171081910117746414354357044660513966672525223115887495003896913576951380033249135440618353022557230729636652364287499326278597591740219161106086403531852615721044313293744305942227735740950539734970221082994587705975435107199208126982869295042053450412585429545837142236262324986554186056785015505522571760214470497077799672640773733229729936374826437060616028984254437819215382486724679122858957878347974025790386072036014923587369466947373087196526334616405014035393936731179602132104178131957577743328546392384097356388556258847615422690018096238482545306972960333880476660804226774396157899174338091873411380610508627521895783977650791881834827447681547528114699106519290174112435962945221432377366225325693547805917082446035614631282880479131388225005915548850197236907116426915042784775483713122281505829679937782482671628710138803947875458440058889900392384632594689774120022751359768555147202466742398173472282297139739278090893300938370197522439185088826903364262220634987530949961970900172222295555283391218592041075147042186028029551379286087867060714552270220604519555636234697615056134560624440630610192949038279509237366528890640170547264682596872045564125294303319921637797791170577644628269140700773590294570855580954969265526437552229278594256232664928452008051173788424897154400058571304187917013936189122228163060244281713690075156808635127932112572202030362221439200624571815616379584310435674621962615007829325835515809162144403548915940105984281705549648886732976368145565678718576403285440848161384336724768443337798069857437914219400615424251740821175443130577216103654830262641516667141863110182939551281868215995940911085278670322741936473828837028861271210262904672317042365580699714138119983901284655909465082110903335816072736359595485291982811732521384045821219533303449193204129824159625756595228920714789501327127004524646285257042573108300393157551401078228877220692304538373172391749621878470887808447855040089219432780381856769604553120074830908537502075520705348348675717579856336294115677325383569625099738309366351321689432653113058997132694538922130213433634278794830006650304285949809480955420265085667433604206770081319829931734373174627866350810246101532854112871658771837093716361179323770992116931646902961637186431506268901411807078003601514135446885911508613148925900721929053767211387688642136584720174778093792559509286362301274405760596511486252793226102827565664574316346079884108335644496295373371685101328979197321613950083311105621254612923318388525331839939010470880702757084628620791729682000523233367454530209185462506806145500439144141749656526469744461711365434984379786068933659298744407032641234229219541739824504129793993547017296138764780023854605422205369644819250196817189495459837480591231670047796272291053507826962816958171932115363753023234847324644694618061933570795179617726293197804949728600446906476219215218253992178315578163715899700172579720415406484087732942214949406291365024341124168564526610480604094910817265122884385800852328131396367989682620147022515302290491627371228570368850120718936158797867191545001041010488851425853319036645304582722816959970143669072286757315573813697692005241572405625060092781130484946740076805453722247243103690250534413698211083105565545265296116482842603702106581890469601337352034111078584919304066092109154297742946111917245245867746241207915556772979672252835066116940999316641018217341915839912855631173201222231491692246914681930595994042251580639391944545559587054445094193494905667458981720509033810908770998946037286227546898693472944780528262183155084563853452586161065472826380824741060369379947770353598137641277375476509196987662408525515130081765274363948390520323479979681773210515536914845119277700021717840931681421418710602035745192254812303948430827152731724378689531311909379084304581764080578434974563352951509592044001216137567030563418314102376224007936502642796989619570171468050868235226115448593763316060039045509315692457835820643817164067738509243144877939200332051859035723928638365256094507847938832235607342734516565565387833529073605420039666015559329240052983468062903588226454750361161214221426589451900434490784054906723444767469821147652680606842286759296647913268259630841906282767607437299865255447464971555519331013652873719241593230902363489933209189061029791131801114416169543033581553195671576296767308861267736029134641130997274874805728950191760926127819511251740840866633032728996546401855612586153697534072969364036205353766233201351436820586830206198869240192034910049421301672326927689196028450233783624407881637624583505069236787664011657655292762958592080271427248149240576885533130695665969014571355039616772976655863222525150346451209479312861932029975926252396775216351754759569318631444675602261166238419481222391985932362258427179089391852893936761664666236939403221570884069537225242539061262441269654391009606155317705057435798743636183862579055028156308308539315054030374924255866149138003862835441349676446623361751321361325362905745112357631565631611530447400312110859923245858856110371766699517367182400749998572814879929466289232580226638211996275078882296750545713998582964111095328520377513789320237637265124638288834074481347646643066319635309566981683166943114655501720454341572892084339504251520735053832154918699100780554095107042798286068999650145127445841643502732531153265503459348099092383643737971307106901882151672254991807916146386406331034360162151602568395419690286672930487281707516594072383635753717052467255990474026801017847128050635731998553247614767349472028798762917558307464246916757935960039648712107914615483423267513726734864571717876309460641684812669687576030369884626065510809949158871267432199181601138608164002947692871860639230565075158339988056633560904203775861118435229594455270680296173008893199450289342781148131579762298825799809704984550637134599402126555753000146111225689173145480286512167192212830799003142931790817457316100285465078741221100895321390152583112558810066821909442519801606456391980703485776194671990957408200536325396823656445780594579766203892969951342804011168379008096093387320609480683901582270308577130269091254987539473857589833123097628983866487836486542394165484314745693096171701566107216770128367463762158831060298438411599697006195456602472725467387308825476452457638510190902101128848371355844640859972774571142896749685456777943380014480922698351118956443727410778722654464664559636399950773126772680173799331880463011760598893697262268078645893261942938736579299270719553083231183713432779313037317453578832394864691376099042242293381050412895812135511155171041907618985126051096650358073239602785905182834793948940161731914963808226796025342546531289921323490847457805195228977396429789497989125421711673390958160530942126877984914829266057168419999566199032420081681728836537233930105765609241186090697553613444266864801213706938028366961709835825924715122841356430161217959261609511140048836585034516216340874846066285676669653840915860445085807853993502261989661133258931179586063548770623384219778149503163470902507932854123370183740318791303949577455058351375782237105318549292054504330484570761460365594871678864155911015618747897208130548780282091813496219268562202225090156637561078978158043713481907385733712460732502558934774605055974353761966207936571807984348473111809690608029273667084587313701733844456718039586249766842021373584749739267114030663854103992290950079136963409045541182193994336957962267980945585046283246852068293779465791339104160432805736521893479343247673627438310109088805349616692042924552966459323881157022104259021463624831586540380453688429357036096363994307475899418429686324079140793526772412287193440757130756522781922477586039249173292840793394053100781660536115862653223921815378901387572516517267565436969814849749687261935430217771767672402510791987958701662179978413281197747453949839949896266373300946870128010209444995563375545218393587026748689134466902097985487293143966950572158715248522828082388311361189077509677949616333633317515195829846555512648127815371672154085951799468827346884567435873084480094974388573746675173604046602004549775593950192254593527563957771438961915698541331496087942228463675114461052976821474552485807704869022049352628927607936327542316212290463900665868686071194614909178748884318106001129931129050229655446493303621524568640236543918436776338120334385649758170549406677896474071218306865015061339701921777265288825556690546266095142690824707747074927465730609330917140552858674542995451705233153946296344032346919800882884408146047674833023857863981902804279979603191406669540100148859953047996509990590565973773114513993892618360991289924275136276190193324966301035797055378160717651284959916925657315786604128693881402332792054380475090776540971977646188522274887286517327008386949472250741297730306934610767304188229436516647348393595944136860422722759357587120163752779810274708028374039384614185148586298723576102872793691722194030141556045933808397404367915045914218201724195322812123517205537561883635335259222295638966631670743416085893767673364621375687608205260281574848209833009884567848289853220385629752105814111849338767228862915579053620943236471376137541561344454864440988434038503418224604647497690492045549193403672104092192584089969776351754555286895689934781514684872193947412735797245824094510563691543359800151769530298338993436097621506357053102526364355278541321054917625311805156765186794105932551829421485423920108035769674814913885666787648028321793779586872885656052781766256035740798201224351724968669961871784578936793078521726748022379972626022508031342595555507583827020412182563263511539914065850723560789899720851663940230854997948748812779479848510025347205256539226970609283668882450872067221523506646180441729397015962878409859717145768311406790215644232075100584095020890590274434912823737889495914109370733240439831474986523978843417793165941812713850407128740551835437517631591042396421891042981397750185571424032928612562827624235678729600126003704118746741877493997595823148840143959511737667753001562531682319998136055045975691920501306350321326097760104796603052180890484201292275961740840099826142523901673226223618685332677933461910604697331696426822492136277222787968343970259583420969138467953645538591728444564266942323512795755923847301025301821771292941680271773086322715478826326378070484750302457904812993162570235347611196403841228412430236249665732824908223754531707508156040821496997176757338799188515103125110214991344127303077029600244548148094245184406249490620902614929466210880379455180138657729159159330528462027598738025648939622785832065949535892856915696046672606012907133119786111623971433937150218059298725431637750700424916488239829448817238656899001391986513144429259457999636737550466465612110686808918999479740053952843945489264359924975335710647390608614943206956417542369659897621557061415269168864599029435499373760466045016720003092277794814364390286369563683772398951789383058533185929645868990653665350633747479071954109177046130710796172090448515041939875758776437402890389861054927621151902429593414715328712252902323206407004110616364058827099974046783244492298288751551118541194301657375254724644923681014318768622781551120520413109116220166799231073795595974715046598381578469713803095897134245106333629190272266714120596281399541693765404014774886083845189533431068146289095117159958444370383445328088023716479237618932386278932709443356863816204757249863042963981779070806604157812944499631145610312325851604142859329588913225618201828846634727282410411451768920697796984837846491347204988047225551152334451817823208650034421533621200810400652054558900270669158286736606554910478492162072327919704671166921888656628706099605154929377138440139330963465965413514463922571295969078902105580728740474137875617664912188794371521165906782200202054930871683348991621485697828889990852636611299493079295317569797456677224930587821958461134559332425393190081094625252464128468634223428189433884097756384785619730359434736633301835793796166385230951632457321360837519260492829010142424722904198294239576608484261245822180315921708512151843039299175840281438785745402537240777796586131139175616841020800943689258706903610421461997090067235502488565751012159217552866450048017278567388906006976508915131652247155420741602181965834674906540001288002105823679289928702420374013491797450750939884337068182334740130041014598036059858913349725094644313970981148538667211422503021946636431750267548928874294147363895666913858638410084101787674751755037761942036385779022936779099123374760842120488601275330978589453714019433100003314669696664526400829344566738381161316523401831629158262128697358666524314426469739941932582238309788024273522940982814855443291925794623805803515504874635966232328508405939918677862127191554559707721820708404842219514752701040223117128486759866476781084271482592684450828833477683249206819426940428210724525844942743749885011630037189392282488530544468518304997016350387457398268194839520561246340826616049495430980277470066706301645263115124190730626506316375472512446957819150731245204213422450220968340718906099107351304103031933941212871360172464928642396243109383639763465296949172517182732422689171655678056089887039190268036230099646285205538655815175339662810319085246772788245957275918517034920178739363296863516731497624324901284372239034072835935490389404792208604149895476039591759704970847377197331060177319343332972152083198872253510458851795677049058390114755003458279060678326716856279276472960946778246406132279782618542809284581549895750093415391972767225203978774978900713587459832627897613449874944175944601543340806081960287305493780602794270169381240865434326724616635704410022707667574758847018319867009773734303093012255321476250355248412480930902193850568273112358474468206514627885320288462594321406830126470517470226008216076228926672524661993444099732584206406964838391399387484996028955545316095738577959868183314777172492600925681294712477102172802588213384932486172468730294639164685961750421284713417514323991787244609293910031553888937451164003254740464844841681036459553455699375916923879278984123296501754272587023592392313946316823600516621516225387136785693447479059986070353652524558773124938279641875712725850538216293083275093974872038278415844332910889703292963923541455755808286563907934266562116568567671953446728803690592585329728621863145107376319268157521907978922236296499835453760363942126586175749486571652200819672613391279550022618917116441441061230658983679834354594631092659882547474822299304195386694566102369351015725426249764814623518479668768206854561049438197305999971506295768508074693745036345540733532475376264014638184005680285663201828005797073762707429148692331700084605554514731433982237142281588743930884634971000214865483593366712713264613937101361848132709367629897730934372609559707993086724583239372457922976466464462842633638391994819612400421359478614038661904084311533647098350894847190012923760077445594128704756969628014027894177098103140539135570685799054973257454163737905250712149374881254031138627796196635114250588802495533255090203474523314671603380816267156195986151385675120627740233868975868915635409119798038990682957807195807796775959735336629943174533005674122834318893662987055382590498465862172479448071148514830794245111060826235627952737736704839641837036550538487077591612114510186548992385582867958376464398424548234063741889269560176199029252541847344123671528073074644841898835924582918437569719735440682823530549193134750732421642591292912775810925771443980060039272934916915752574269748017351610859818189814982276550055591840070479403896621722759973693558380093306286517850687372183897210108069723095389316109398962163072754033305173661832492815041246482705674574491689338382895215537954771871621524973214063981937301135351297532935862622604686708263444762989090698256952822841247929776402950574579254435227589595878420134765008716544385011290658509885266192778584779957617733415621830697014518004530981268637526659747212832171080696308813769871188088702583447506522617694017525260276444698972818504765847898849055903209204650368821939990124887915050953012287594212967431741148695168782012175718139208114760355434089892461708690676101353836451523597288494921123625408271333143871796840364337924736246695372763930020975380311659784412241104227434313825455431436752109856866018446109060224320742182046865030659845153381761977579339393366657803226762932540288273658516034651072592930070227328606870864247761424990043522789231151240511112597639077126752977204295146841689989626615983530000970203234940208894593622483831353922053258829761506490629737906514648672559739479995335650599510109916649102667374156285277060556680562828245065721695479177206569623625638553569690098720032136142801267333594221205976573356541079590077309661975694894293691848522699246596091799047142138534145037859295548214265548888573961831083883829484975525025353425158080906630504154978680974219563472099680967432270210924029528664647505287338321538946872719349742154438388492358659158856715368151798567051943899859386955207626196248665599559793697461355198561558640833827549340505039113740699004620309874436023635586208959339034941724586660356425312399075483105900436226968628836945567475918528504375554251983261171193450585416708031711398577129092488072852025682324240592887227371011431777942383941253883506503984545522588577818238996819643098816676789064815694776129100855365047211060365631182993564839826826997037970969644820372053540332053875256292140089669668203101856862333020529965434002191239865133641346379700839667153836596378521568560623679826319058688080646813649220556178830481142147620082160368129604576391555516625773675699255578425053090912610329930178545320290889965395267937388029441085574925635531918986181505239427363345242183921477126342720029337143726618125892237682007742453199024644326034986550521036196094401829580288743388279249705235708192760528536870273303760479235372851846559852277438548640483529522167071737170796549484214753803655157489948016350742600479840229558098749885247827265525701470001693372856674268083977552104983691957934474972756915200306542348008957482695017831612202726578112191430233528426931630441521711603945693016622850660732001589571331003901240694632262252913791421435572072924374129454456630426770376201403653215074475555454549545394074307740800982990447846762749167487224201535038309770292823096628780838184660404186651907375699352255734397769225621353356017747967822325371058872116197879710478060986895949448439847164106672466083718433227528096963456261168880334320353959716435737639064596375475876946353613079188289124263920819118791078305945432560820282167851346910569260025153789881045850373679902946001539688232984128199364433851798503640455431436669050501754195250118706467776908152926793439807727334690458390587237925771061336396052213374256076529451820295179368134632804950531118261402817300616503331247574565234548403065481648117010432708757683360004946892054255224184179988332461542949010691110791430391767846011258412172088840367503800718866290772026076559349296507778463674015807799153660015231931475284308333012758130631519664329684145220951056591192255414231085693479001700624045586742519004509108884244112312072977326811643882715323714085439530567385641140202688213881142862556084912785915930939105530705658531202816356858865745376342502104677771209333352391782480352620463781662630281891319493834267628034875081514423407029365557083711440225420254286260653404234155754687165985698765972508571341863615435672377980975466638794856848868778381810800123814679514381499883432180566063147313914274374943854786736116011338151698967538289274697334415300022565332293955586801671826059658253955295214518499566508800524527589040104635295516139320092272832515311524375941123704629416793826959474731009098910092490015507044741797682800299087523626668928857117861981812612035196096690708496851120375714357430719424919594966935473197377328344828139814858430304761429553798003373334924181175880487735266917320334614813500989093293942819310091788463244105765700324703282015949713420581707268969615200588759066891801485736858539685392937448574685905267951543294691948992346747723524116560856268269705339468008213654839384868962694609305132623236465315746241899659432334111765454521925478568398722784025163229797758918861474905582528910139393242795464714542303310944334441603545465505952161406252195272377605448941223970331650100433808697426244866642142814396227001358809232732650175223958147201948685670180342354190932055983414439712954540311033340704054326029733705443076354842252254367375120916742463506934982626983846418686385212372991343357073084834661888818264389207171211072622784129326172418733504150614873854319454101566635055611844948868062589580962416599054434814041202521926162763303994115311353294971216744606281467493276568823372657648649452944972369432846453878559854193944345863587143803124575147043578313750058991188263601968292581030183109350012619442696230312548755313199641558266875784870018506340341874790828581565566498203168308585153026105047675065361544433738876250999897900079437514746604229676046061025193107552587601977313150710585296886297914638639828289483857699911101062960747227367616182435679747938643214138979375738599447678398267515043887670486917205842549337813497849564370972958333406299872619182616703902921604204757757171706009214195568569617739851412679578055138201962334664976564032946139943410994357084299413895442665513444577047307512901482342837687800564185664942620055198368718209578534897236424371739692165940114911216367968217257621283274378280927501370677894870893344404467906237899132243293106478970144745160769159146266907819534780951645067523413395928031088206818004531410810982770495761481985967587866378914544576364649207697790374595322186786811628587859935303002396758307811806019998334916352361585159319061914192478647326851814712113457431270520511870390162772095256358432304896954664745562599165470064849306896836805185015047967075736888597345735851402291937105737365932079112903924209740862307795803317523514715797555262385891869568041281391293342946861706491249991050903202859088942610636121115254050720248529059942282417500294226496642540956087436656940206510620190552526327661715959221427778389072662500611681378959102206148523389873043851386546754481710030270224695721907281410762032529094410658537587690139693577050036710992757898890446614460150783408204713679722148792911282970084190912408733543198398117945740135181466518928103276621550074306348570997795422134107230456533768920464004395824360888421919848461049928766166401585200552297946856362380037615541032078419888556898581697540626237161949794211072279153974604134849000077621038472429677433740446263313178172802710560703771747108588723014176016065888009993675234073014376986530356248040671354233391369014148401063748291456068661277841362010079666797459416919329404645495839356113904650155459414097519705832585707288132613427489143692724471997437743701545419458359229300254384864910699672428494748346045168762946875968125958304032465205432210808003011485907768339288187941123990261978671301437492992250549019353915290007135016204832865020463014259224421834858146609408644946511900856582740388155682177547600193905711934025807881505077380697595326749398705225663293330625322574891337186578611691029557627083429865623485544263981143434229388754603616280368833456275791635263014349934662223127302674245051187179788610871614129155754115590796126293205439269844241205851335519807426647182142263786272878471938698884526887176485465054175801049631602853820685709214771407740391065226693552424389923052461954635214483429420797747830383178595350469051064541840808206764859024347862507373132265632762736443744387607052144637446158818295460528939645714809545732319852053784042031447199278262601290981623067669282560180447342776006723540540929881122484415379917407815189038018526382250937360868882521092851864473917570131237820754422193814937643962809112200420518698210855914131797786218893164150429172411591621071914494466203881114234698063341349069621599965563625014690736096061592132925345517261923116753447565894208396746707839306657481343832688201376907858697629414819159660995701521728769908039836508758446847540972131948569560956825873202643124854790662822164383260828508124385246746949620710760004124727693078024610311867050226052521127008503463735829557430592999710140240618086485361560401393963742554626353509738433805996022843895073004614556223625079542749454611555797132352120228139205355389726532100262996235949593664085165091231085231328709862457568442912407043982346022624181705217856324111401564576603287173132922767253699254067239234415098485483125490874828860428814458585914855678837205025781860226865883261657662797672595135762133147233108799395560686210349259746509883368025776898383727352073839606248062832331688045044911524868882745274897599451065158882169783648446212548332414890357995721822659139854737288079599693272610591263596460000093861035246915392317654814151456287714067205239534949521942303015567913916839755961121398167698523253193130840827899143858174466103441207108949192270665894504236405435262235257472104186683735414505793133152483671676977057011162308759029844263580093883759846802023561265861802443970908888833790452068751344484660873451496815044766678710902390237567085000938811328905952343655913058492840209709586225076662677291321892045336590930581812103345497820243589017166630767911421582810705236559973603757271057323358625274424398754715592994229903675815590015787698001721346790501291280159088999653415284956245136434704222054790263390384992799783644176764780035018131577844914613217762675397769833646603950571343423124712719548965879271937379283148324643553511484173096414272622877558134681396271778927327838685518152383780569518003045083743793588235241659611890538689077949128385660051613712091655146126110444366225032474861098961816606249722827420426011125951051996979447564186156198998038118139465660911532251715379978484897167166491036910146504917784678780422037081709744036869535525382029826429058659607349414495778650972607614751602324125448682193743432884037083668102720621468162993735329892514922045119081539411833338984862312746571759303339757432707870230828139442608407858154092464745124303538736093312408414066842512379510482647416601536832096927624019120842859395677023892452262422764168338481350231153373947960510283148429851857770977317274370338222475069428505145656825259474305176567727049774522039822599629716708296781593773652562726380467739445666543284678695321532395970869210719882113751639923264304149322434039438761598472045519460778582644688106411571782012668198775486652028593281978999053186316397180960909166711732474291659200571465374473846982042361051736596998801812369100995038363599245498927734093914259456884513950515909644720806457719479022880258808530608891549254149727162598191701967126808811846538370208608089413534492629557041750388767721788363233213106316622004749962028583988003807526405300751366284294138376656901280726212385874537741089413239947210397226818418961268588787780644551248195405823787122422723791575171100359289493635324712344686456146230887785259137759447199561547420980306978240599249136659958473887293180196448276796410759522345989084397408554023660564368402132144830265506409192641025519095539489503981382039983523195044790733887310407322661876306741892347767749422353437917122805627293032674672677169830325831670534347630397872257388081558087038951347849020691965038810209895070694825788121374119557426606443243384397085149084886784150403785461532469491912753930371638388062971012613293042326172848863950604689260974422588704606037542287680207163355791054104782572265129969116272580451940252251300051650746562520471050817763864442493933655005182921534455957031781550118605518634866357522436985789998437184516073447600022443930642652511747990058170391372776375119554482459673385467818593523538803497255490991780012028703149195486500560040298096157718155434914926438063396705912765780157276626003179930707717381252869279123725162237132960539807993459922438146256302937377171383589277359952286606552836046002846168230420270951804107257896235042705228098891290311177439855909967187180901931195465255637861177626758998875197751902599820970513228480866819964372113891737368586351000500430718983175308141334231282649994343949987647263847580022424751376783085789367332143253934381534721889106051775655759916069576027833203671102096716984709008901600533246691569295800399993215398295594419498107678309844437677421053241138674183936231035268964838328930789322309157379117780979964895034001523390919043243256215901206366739220134030814899111379882860920547488526848141961552536031435355948168181655593657847258211230040183526904812886706682970310838978826051743862871126350989812367496345543772557828585430502904099089857353625184830671360264636495138260821815297845917925918818324970273355256586400838518136335667618691151961145651041458744709976783052754935211008250581536474080303994854436397223702952044690330287272756062666667946253446950403881485885331317494675457088499902921351389480780666202200891007222955853954641702220889794870496719876699718523270115570609456534583815772459875971091368357643661960473788740783906034127691451500744137265298549573104983923299329937245824502571302900986701700239428758257951870895602838213542472446990338624501250996027639895338826978232087467536008261812417311853365012711330137199853965534559940875633168921641927330913958652351876604470092953026432228143043011665734513075665083716583408369397629844401639403086627098274230529748904474467534374857032958822021808860035450804002967338236261422388885321944663733430631644832823330196035095358891708626804659739416211705301779283793794441621739629042054550961942684029403692236740297378261796861438915191628906427012920461836513836791853480269939627676894012657536832253792568747682464399170097660240309514532440546167294860472163360735626768722637798901766993360053812046371989255513575758303447465084829718376223650522425831858825276140714755959386127347783683496606287784907616667142476228791226198195862265128544795889356629815715000432132042761854789572639784734368712049898905026915400212741492851847059656251818218385010325673163978013333437512836260441036482171547666663233316752638756394298520705240996156111149955325590048821706623783022884009833426058913236756281083407619413290898595461116236327654370075923402442248776986403205393908283452698042632475746497127239807800647099524379728589554769930869959675539517893674288963924603822526203222042314810014648315541901063688068514480039294602055936424580022002994751003952667854653592619638470024232039186339758979172698530767521705429898682207552917017492000388910990294204396611695953548049485642792305185551970033585031285692256871166642926610639632516626368298383101002670361798400775680825675967510307132545164716754543741320793738323649369821464070246619473566957342265456236188980819442747905010421264467036798607647639057115304859783025756397333408071058736181038686658393587044693603941323998261199206550765074505093406263890817123087671861014683149603252357389725656931326135204678687487807817759582022801466570680056934975918406278052863074487573936725538534039541405527268811222553124447656463700436057457239580508791439877141574348570502004598156640663730344469763709598695249374839894575850344634108322831079778142412637377435341614062291292880005430415920795808183254033386876184627284244090018976041101189311900258515964737877358039092935448961052843479144696308948645038541863206090028944887324199660022901869058884856334779313489630815920604258510007592318083531015945024901547411253278330191872775387898781349774830426782898039800333220806981383241447187560476770339853007603224302228733883703646344378839771963351654651414947476358133726787338789678364419303991857193902612139339550064374901694832445988651807744466847332456451078811904769344555642463954121640817613225057954686422312229139707487153325012664177940315524598230985231172420142265175769772919596465548216920503239950192632233781768333817718380283545020184221515828213173395096671635756598638185750826247082110747485056445076837926060475683222126466344961089318783213832681975255317532890966697062978706791976405215751335644428482685995592885398538959651250705718636876914939198864600279976985353172144956811780700860863756253952934885661911707451996755202325318124476367203056385739988979756805657652034469256599504182765652106895754572966743404487346320447523096521809680643401766153063323314301895592363758141740797091283527424710284970323363231100078209702199302071709459373184250520306348645991374780612188610429947835384753211798656687978527749625681233681967398666595025598145508539700976374383111666790899767313596467282723756069829096494747845358960166724412426800461146913567923651798488086146894124152854067115070647685745770894332209065912702350949184244053741752870718092251367013669488043546097048201171956258349111248532055255622308501757285611470019372730873074949153476120167388793190660031502458796505012637053102742628553708279002822627722685592603056215139484074112644901226831449203081971212816096818913104305884106060945303007753268040880915651702911750910032763616046274278144994682287562066209544928883527210189504693550093351288535669968900532123566679109156543307730375606838301585656043621622315666998787016702380401951676422714290196989229741822537538086107152024519942382522149986973270022923709529853886790446347090355547775922765655794474965367399689115052238946953284649627617094378119411341439919098533588281776840982621593004655469660981498381380481254274233883796487530392044801457710473720820443263068996166161186470475731980451624430380378399978409343792792506779733871580162213758908242365304503428644128779233084674723720049344454639475083888436295681163489740016366189001539154578477568863648637491328985389384202110031341354363467622932540674942689975616248519102433732533001555439864625534104654504119288197442026111500270992478448246806865326102623483703120471871136736844287539272471785055952141831469257628347582357561646301367379991801039917950428645697943734752624065192973120868356569076951694655545617641498378525640007094887341750847165567980316366538188081225174147161419457117221771528936404070073451113440103253839979233277407483346553331611440446864321320981504934443415907393938875791882863179727106165496921503931299240920558460547041823705337694136343771189915728476662026896656179513295373618845505111548859981504892442881627804708504615985304832563051328107655913511155508367743025066097772185348410468241156037213457238708791507813281999730599444845685917899822987156355021175879774220245147857569727423950058920698939676941637733845232390546512531459422845238424499619758672141613885215053488939842170596978598481601847233559274214975439822935764183575527003841805546988347757846960038989826188246760594263332562780967396766289980691217803122750611480852298640360262202417511374228034383909267518730237915783602641679483820271632204349502084179141398547722566975710914003445925398205192295974875099122702794922980380818101017838271676297138041374724814498079069428315003065989978137961247426644432483019764641389777654680533966731761288405965157623823593642306540087890957012392918065775050982740737934901877532809808141760981042585014769101632026867935020914422907019005932648155810727829061045886535124187833816277463160488093184867025568187320687388907673230670687571363626456201250577220015816229492093632565697218269980721036914941810247228546863468554319144436536246989034635056989605886458800706435596134631835860897606897848045193490124049800373178134101632553967020248029095757858701510472642938225073164331620551150409413333340218203674530062761004584055170037073865356105450301513082421284146016957725259263538452393814439382717506621334699635541963261485687575014916558975852005612364162430558082304153131633279760927696437237374564772434578970703759737360520074351401513366079380633817672748577964521815972120120523016181892700888413074856465986964979774282552580526023102348803305793351040416836437275642941524200902971225328694485245171326082223113246522685422795634960869793113756018314950066399573104192772869705793890332391481212604979396715923554002814486305298994373704493512368182631025897195697462873150097562481079348886179657447411126962525291181369072229940050318187124539125959182851240301220657943340768875415587327114494590404988921140880732939716766014802002221358005361457638719724701528272634036063978088083279659941430657230269072876385597889246565562267906288504757775995372089308372803327746625290980110556811974982620614250862678485125491754001702815695883224962360693445332092435411540496003132632874540133411868914974105584484598173229686654397827549707240415604723542496032442136433644917319900201657457643316869776542638943882072683996708674388643507078937087694662047588157515907574419364502485055722043172710345212309534149069081576931752683779785055375496018746616542723873641099408589447986093943019903203608482941264350109980359747441812112651799379200387767670452568222859667927885754176218163777697241015210985156121737847444597702053019441873514403380207143816216676185872506458638724392412975912924811413334646481713709242745415228215987874306974886216988394560384653820256951024542705591556659443110500025728344082749365066189454991877463586333076577390572171062525080772872598164719921641916226366702809307679466056827256116570404239502553089089348426121033007852733048807336660808453088006320148254390795031961673918305725328488499515879359788353690281570232208332767196712829249191517390872053595029298228019096088520579391190288230385521143695750547863336331004940450846522142484995313763038801150174655115401708664067712395910334791072716157919345919739176490732652661405364512554198766552996190284612738607036104553032337303766313733942756547249766224395734847273298865125385595410854055653662575522225529711626935579079657751643603369720978506073813243265552267116519919504092172424580566841054366156302451782818002258514256093759361935627220476280828357725988400568324659168503717583899520768061352587363408744653702602718827681902443629978401183755371402675888160451721457113544656255604755080478484149465192857205366753289376811064054554115477570438069062103038415779129392893303327721175778084761878973881998760019454051422525425290139669109464956937002842427598297286173344154753874782391455572770781307947557782229109681944200714315013277714612319533049593230754055928856887828250005084844450453086258750984716728210314638528843269135017421820558312527351986669045374123764544640280861633743880534574118159236718809955162791751568780447702548470687472016673908020470381137886075395746275793093291221560656486703676076209258098448752017933852020677321286888590099810089897298392305273974676086133193021034123992759255216796782462356917582426271689373531200986342999449189567406636232761268052788045564653377611822260148376495958290186324508071058050862800632562525973445577804449679747508092476181006702789941296236603448615997292354984356986930554944452473223537202055747216353086239411738449863994976045675582244012516883755238080495209200734632628103601811804116981670878173759878418545567431321393860549452865323163646553248635836114921453090045645747121036218044893553828673910441085173408850220749814384016115915085104401599008785404649222978521551937173154082493642964189016003205402363732551573505540420124117510295694209886164877989365215640864927167460670741221833848284771387284838039343906661772739128064288777906270425922156409409743512904996526287283313229049373320149241828519516587108604417558733925621153230587308100642035333083339293013246265073024961744916233288343169834802248080835942169436470314584530767653549766217402313143861985998288114143599548993554023569464042698769365540296647183477064376856287214796236636446862040060826592471986052190232834594488331371913283583148370626663659233726089332461987687544070133238495119570912651773892118124766367524069140872682477876609082348305294493730691295482271457880520503700501920268876182336810992201876429216422268426786880669640776312123486465922891565614247716496882425903790970008818609951421946361628299428142327464061685316436809608577280710273688537443721180410537425426191170715918002823410831431667116676280659494474866378684774065616153359296931922572750869330653240362322440000690842081952345152340423324927488539640929991511513503316393694454778904543658993019269420505432956789798233979861179731274230270985055416842804604526506546285829985868300339030428461088770231618400533428337003344729273815549764444846208749424004314648677625189942804043434677761675406819226829150717806347063177782255819864596465713231753159477368527609993758540774309506132423188804563703036143073143266702457906419472373502121266878279764465337294664516686746330390906446714214022876944092430537794411530855731393686966352671615788694182797486447135969902974992103531383851039208125930317729460689205103606116407137194998968772322034929385558364467884031311584520430261931692102007573687903547403787860704335009062190801085771040713667212092662510980978222466130274878090137331193837221641144623095273713719265854270203734274435461212953709258730939479726804299461692338423259991735797927652987774084925521407821509626602978403303905548412665948154907327473716714534210510037643883702284312306933035862157649100325278923147790482065461539592433037728704083005427720628133433336889461197750872179161653704346642615534136063274225170274303602213409479008573988168105114050212633419920170657097680019585821720894164878527333371785860401715978853040676031034160886577285417404834151885696731078897164207624807381277853662050349342015009499494627421190362345215598580952331771997143473080011367230719358069662191305942539265480725104736463911444137401535500670570867588262928931748235073245343521629854472411952169070097392833309332118598205236411621365792272132032067038945295296024162950860196339069681725335318489559645008845362969260193110673297690223346648389241626293009742057813785113024746800423024760178602791445570315742633887722634597315635262299863557608256217268919953188676954857452363126352742439395510701319619497091431561025157023958820485699113687770053133593090402167100425733145773822417156419495126857431278391262418925236719260840044343342282339710589699064180158828545505203549117580802811423856857778202980845410081971554094587521045098541477732530381843035968005327658165843231960498400242169089144845374200333184280640519213230659840565777566467104175567931098303293369899935323220763462621685781054032679203496248579146663313416401360509934155697753235546190910386295462812904382460872798199370203872783964303027051118061244901546071573276147243565190979759075507077951120809066116117529457767930920814858102698292440800085542898391418676594374440516336284550144469130597580373816391289423279337467782751003726368371635152495089018100139085199183988539715509177054324733683914666367720308804911227086998308870554457945917894352380422812087932210029033879890514733197149701955346477749359763444271804574042344837869771137608641288846507518717348996056360786708565103242877652659918539286513770361461022956521150544710641740348060865586194865344091924892770329856657737683894198184956377309643395740195276838703392026758646029926886590456980986877126830066726724211202995451943088400696721138401863146226316847647986214358016037925844824509093356546754596087614968022906466825644853425394336630587259745317549277232942256128048518921038032001082531700303730928661399049697071161903020800609830088498434468829420594212429724997628060032901390380354312497648096265900632776989576983001383688621241612594418900396995476996009132688076650710482059980788168650205366189847989855200443856835632872884213449987450598605756256237741436134020328016711809364601922324744394044088005845482345208347508213079437366710784660148646338793368669460479075864127707462452728477514391062869111734478041515655471425774896684885832451609244398202728286286828345347528660259229961190006502325229978739946147345959315122423092583944051374024972713877413287640235339463387689571049784264931246390339799325038643032517377440345019140274366631269351229226341801959961122014797008199814988899528701646672635065716961554233414133029813386661109206900807477256228891550534848779920183441329409146613795695652596737114992199636185366617522273320179722884056386318616092277819671999902183567833488416732256906591005767573861381824787585204059509054837996511844305594903390581904933086229345870309542117931181822846709501819751902779709588100466604401297867320507496774852144031543316783409217445881344031853881023867013642282974823519281736075799584348464213934813241106058854791796927635193398596725718583652075122828765756976928442547048116221501011347988006597542805913960167341886546540751115915715631714122854743044967826102319621093932259718700310959190973374435883888981437502286920162116038271807619029951982319387235903427020939815966823808719176982804291132369173458207792973398760490862227268141345019340516826900214385760475101997258977125681368123200365376988839797473508135879097597542082739221897355520950762379415942651843394253658256884440188510532257565238304731019070980615471920866065537381479719444549349786468022895356256248704439089441655088345182440918525008477011598937271717647265691786279089561373098097987276148723510949767668156435255594427229779145176269128766461521018283329730089980902461069613903935683648171146695363831804996811705838906898200991392408103596636069123889890071023199469868132092868278616674955782863076195900649062008009467120002965595633823692130690870050698126596857334352211576699364028125114402215195259030951324590839340764165489654478138863429740056224969368937221075183794363405547578088142222165733449161821511319611882494400495622174008881877956059939885544487754629874351972389261571420158079756431586515020784097529041050250320038806730091912706574763080301741117032964689581260510350731230204981067307911851615382887825384409265472033607056905975463823946988810877051895058139379721644186109777339398191642068222046899466720625828606775610195151859496447289866608086076773426391437121748889883158458766554379547488672567256434209897624668260923929625066982397659812304945269814487473031313001306172707597079301829607872760011048961220022459282171853358987403829948853352682274081207842135938749601959275452184187745914910617353428007890608425779737721716342779854386070277591436953010488745220111566317095845658205256899478410276614495984186926690308699266962890796417770629042688849182287668316062266475767030466537983223253730843813098282703587440726985336952555139938927234598750089176370829078489419918615398842962078996785888327165655292113777573234172547561549777557543269857437890325259543196405123432182997256370737069487461819427295750214678393498989939699243881435900314833400673055440621718747581473175354916513379848138338925623834983983443876909219934263280452310333788970024640172412945229713523238046352868620250773483755432723700444961835945528813684438396176544299701639154361410573975386083159340620611478764040871525601731242719316492385824139337897730055562322757312271407172390045220656905721606391758827176372084786866451576335666946210685311206352549503556325034281380360293520316426373492295163860631099386432076819555607758438153604839287054998899997209817179402722247243951495675036851399919926515963282570904201409496146819096488295820148541765558807933330478818820330640819665693079628181907198465016915050695598942468450063916131932935661073653308294104991161841400108654383833128601259745855378724202156361672095279244774661761615838247981255690498319555773354922017296955703070988728352916843846966147197932385110492665573910414227033444364668199267076340614939500155574839461924449023969730321179032009376995548289575125616626473758147488227258246504029269362242636627838420363161696738847424438569779179291748451855483679296568199524834200059337321326216179091732019230986426063911937665740641616766935700610948148938691336634014193541239604054217103957597975494524749877666434006185254128455549552395014558667430126232645488435885425491805357408675877933440740490424018077844980388023097486806513628434239798138163609105064706669759927735443112769684314531398720146258768004532274360946025873228176788139414687695749399347870201735013305610110944503703398024799997645410478171302935088777159360645170434804891557997201136446696431919350862284486038435233247985537550464177894138293833138746693951862576164440012276932525592633682794766414851009441107559012434082426079891467996562812165033593309736445248741559805618345423419807241073428479396932757793366579180287027976349495797795087572182015565297464554111530778728904799664309057332333746722923584738418351828826150790884526077634094811248942725265977153057125984851736072918639432078396314829237180374773142077529997022287691268986608411538293160567547523679264027268366825839264266122407899424557736680490160736333810932636020661298115062998790673637243515280299318582882375896110244096278775257393401720323080438605563199061822300555160049683338137654552339677155243947705667064945002359308792926605910588110893038847353369745049224304203988656167937131727825698525721866327230085917503847939495064570675193577704986497127325013783104028154820765206294463491096330232574818870517725941226712063853187855626118972892833512104382242311680066189010929420877602393114893626633657445952476491452366379685424852814070549183626651686113627701917091488507819984923075393356689774469170445718592065198322599903236416572191115527851483026235795207855184804793986472006957455371015535466292379214505001859157231660094590577778669361070318075466914612974811805784282846090255801618696467010697107150071549993138762676885708550423957545837190059779848164474187030959096392715762127599073337175766325123917184365626715377754518966937102303838732809032286861787958260222748825856313319904899306607602693124122802792231195504872751047010043089974759775035742116462153383199919159527519089913671602778248062181328159052035020594662000151503051478154218745975586102513935115671804694891119611606190715725261199438283965013836762727133862057735723240651264237879434342874596170655559431465729656328186244896852182815297955015689788973399604277817949403936459155542472914367953219039162740364289211606420058683880152534194350386707069986765944383757991399716702085265767355374859343165650978891470275453766123304737633946312471738952030764697092514653799956772908829574330307342909974702351721777123572755347775966291905426022546223223418584810362237821866507609347501638185237542493592423248802030193370503911161805524263936949333493600670250363240740218092577753585744190676542451361884875705479956879971684666000599793347261423791808549882724595327449226986063104233586884309174518566577409509273469994673785443274387293254337632659040152899044350262196194800735900765236582944899631968099733635750473114490659667044838831316376154356288737820772763809261734298196100141399128993828110666193361689117872690372420850170189892804068331762540356173532692414898533311611593551338046708849663187850612844461494951283971865299130257661157413498128842637316903673537341241859135031242874888143013494199145040854416263290461393442942619504016607335198836614783225181884567776545735392904968434813048290827792690957148823900441570970594263306808741437506331735219269018641389284247867159258892887588933195951381990240614260919940064382650900276897224565100878767116717250881940979245472185839034544989260817602632344170091925986877731403085858323498198594218106151555231064185698087780683667909486741829928738465394206186432960197188306309484071407242415606337949893689067139059944203354918545442189237788207772514400334672553965214690164094449320725377798679856512834639138900802327310910662944374339268685812844025898613106636065310044473785794957457537256907266004954221744176972883877354837857781544536009803525476100677196531579363327697375899974108490181184219857913605876115109997236560995278461290179273775027661029822768611015847885856075253626541004081175283317785431684761484644965248786402227674905517602783014102533588339214691050789632630992602858236893360244176394159124822493006604112314306279538395566270392573395823249604132583275607547360585916797590938167343017973162711945986646100433278969886251399568542176624745349726425979760382270184170820676041751029519254338539026175267493631980675798629776967358080698008113493184212718533524189270428637606827540889430445209401758109791040928045308476241841881897380383804941675272879726296457471591974793960656334705141812975427639646738429613391488514392100097460826849547015101533870251001395419914617715965375838835656064397255420472451681165559886041030754126006887732438122001814033955182146739309119179040201069415581346866937941706456518715582328351944857192721642089438116458250208395357516792427519961023110770685208365590217752495045707023117486744842825259039071315993710048447554808744441512314589714840729868965042240052303561332197055375655489112629583002501729804063515778981692677441663405582545854536757223004980421570829780299135473099978333641154231679230144815269465371919971986171964486000374623662152153743631093506578431862665048255060763732405081432373489469946966647138527510652254122805361047939201339696684055469570401492767826953643195753084848237661260371916442659729595671656263101453141687997077929044085431100307248172007070410290085620541853982344136904476419726107789642001872114956571650550220231347686869835350848331618139234520580726110089109607333859478010532392810166933820602927124347593533792605656709967323519935290291926140517921664799482160523566089983294872515503083745797802143986600127070015381309619476385384680654557101297984678339853763524175529588287632887820396663422607130096673193883261224795160775732159437200152056206623895177522841992188468014959197942728069096041498704955625382374027109740714624552214873896091866484915181651195243855875175403549892675444759254434895756378166087907401218826846205212696283710911561634376576481347406775300184687108264450619506506805751950539109340373609278678893773913048688006022021740100512289240393947787043522708217074348311388975355377029384212951429323686597656044887577011118232404675986000100025749579831043005295405365921690412306605323434414832924781065101560018622314388561659723427518625968757631005725319557864414685933671146758058109976591672899973355916842140206698067900516044978736981715289124124664217744567370309124795495515577873872582363717486833771537719650072182870683281604717588858477659744228296050076050339956419006056284675729693346498097732344761658174112171828043562616713827567856515560552241941174015476391691946740898167509129336116766139198441550973602586813614490093444237077189379389814524948390194988476335544634548230196480098964627296780350304145359922852682844110067610923280264195002599979719631071500559584463250729634701130231244489622580163296238074764097314446637827961052586488716558432412822444490419459348293350357703832921485732309345299795935629657094818557376039456066350164921211477184458687804326571636556352598294455348222491471136524114781021451022999781557941245174014430544895467717717021830244493646626198046101364214786089542711148890512105450521051976176832892186434425021629799795843165088474673194053961445791677415925829481148906126882673464561116915143677307184366439597959861254169347861515687145692114089304461341197467206335894151013183700516648323016026796827579535113851365895969974011590990962869920280089577773844049094387041016442169046935134376633640680977544227963957616335995888594473098421361242161863153807578829420288244172751663563856912415418435236697512764387473987935025571380634945769199711810683877330815858159564498422982969850277109552057969460733920714131012600495045355561432937919803063939301872997284318123271676879180014559284874986259288541492397892138314724440836882380814593465577115961356310886523227092339465470332007038814938732214799107097473296970639199551700542241777739168279322071290188612952918875336538882581299578624357728578660420674340110272707525193238948531116008772049804879927344171631459266663673055883475014006801171959838716278415898268540396419121994259510934619841332921216291238239871263114135897499311947540546759798995618701044083453978318777237557836077690646262418121395448519517559965909189634965577046853615831173477746327479918942642859280392545051829294562180071362813798206303138940232322922459495977907093722008592567030807476361877368586116512623401613942223082147771079565981456174813506093571528985590526832361910237004858431435155102924403165205092441536415358117652192692502296632465364609840012501313241457759131849876285317559074494155321037699728636341456748089612502433340169454971585541471265836100037778559398725917310175163940098276476162541694349198198119358231791404321138355132492596510515276054058937041757542021286489830856631349529199275435053267792347846976833646125018449812559327763862639888561561672848581972456422924892181031670096211231339308606081848140780111115916590230185956083600429122863922784107389412645660979659267001688407248526511415333238594676764533431269661059921299832064104856820485035551800986761601484740640728323580245193617085447451766242415615754225319461332042272565402921938648437804327895468713510160181343828346813098620321002283055063310738116459657400284768357573276405597171415693145848983766350192851717984713379784699963579793177848425544094805885281028860290118165477861409604671135441606035981463987952750181011683570294083747533177855525962552306479510401506799188725919201171110529863580952386995493231286402955596850868801679592821493011438709073142391596288318256107029111183124170608515087566113226932532826497132565773436186438301961941537526694792887360419132308795747367841672478215995795193669808329759181009175179234713327596410789282332688123509463984903246117736204666478311394299947483598885022120488513490133476694265624646512546866247235561354763355386032600781252723370392043285344108252357119031839452232342754039653404536699307958987607676326213864902907199827952731421593975007183789984712340809838546018113360499184543414163915714390784435746511692863617070814902806704148205817753979938507679590013726654542033688683148473987173421536469886972479741512055860283547467068094078825845255703901973703959256172623625212621649768091502834617686537006250266428033016402983950097624182400202395316358411474142841396390098484274106650559331055493730086489420930582275175654770169419237010833683748286963400205578536913830039444729926215139788850225989570958307419466208426280225027035438900395235874692278376769427755270705587711749774260695248275739588798963592551852747511545125609679130864784619713744573493480685386130074158478641545126132502894404245044473431970742198438590772470560929646724425826558501640080009639915215912233648549571586220616169655742505255128536016220824649409245288067981446409761628217294360405722561822898109499154532209064651157794884676519793213892516080533512696685438001048296224064094007553726776935874335217680886022344297804143221510884657793835200062368364108112514794498376096944111144387039404463067337812266150185331032850575579298810904873989611606931815800505637719558061761001908246493342991861440235460754112703108831332585251680675075940228091955725914008751136370501909305022440050149034397119673578586526048984269492930869725473816708052288471292348408112620817108182077050807191102264345186440219713667173201189874002200196062927949526821465050482505237190392013717965523924961002730192503231949571060234631726155484626347898704547017911992029771894782491106382589175647211909331140832445186247695669422177400468234279255614262026667215125032659538171376806430243069343849686062086290696763106744922573005485815979977744637331371152668463306815437484885199766914293955781176440396660028572944900693823357792967645723075684157190065757107774993778922737187488207628092383964532655229753482728272652926230507556742664865034277359255025056081247178209092073645284602334805352504085063936304365777207912230315773608055481535594866605179421538131696402229382459564745723490236149409110631600343728199114732435979856120560751896074928617903005261825240619795922731638787186240047839682594546341189233245700308309379723164728455061362201412581173624122070565284093397354610082761530983927744288282719898421087683777240922708741884670153846806115222727673396525455075692878004218030669869953618839134857391355702441124059269525986524021605901336197467465654183050831391519764226794579646903084779919610697703745209927900399699172756447879985072124226737129417804048740395105515903837285285565757502020441124821560194184027713447396905386907561294228561155119237046428532143935308141503531159288103259755666395442518454759771747596699811235982163632672075040410163044189086990467319217918951001928341548310500081744116665907358407688249455827381141257619467164185672303873026618295427091894093725772989275840581231602323004879441041767370989157503939348412194527354240213351007914494421740708915292581763741266178701097180985363285183535617403624361105106773097234323721825787524332767942083513464760908261389810948755142080639751500918120676072395634006746849328676579594694403868606530851274436971631453812081019238068521680702095036934370967066547874786797676279555879938053715227476740965377953374602372595484917904573212184553546637117459204758449261860040119594809333280674900913796358946291689242394929176321496414581194212576878496956441562693576795206912178592061607738152144146760583804994936079135735255628348586476561672217448133485397326730175633359957955212387447933319607781135236214326502775606936974033732157756650643929993017635359026958005627916865495848505514610185908752521736592115284127049019076503846509033223615696501139503192271751064540130304076443128160196532175771231145071308025926436601943761666542387340467416230063969687467275117685517810640060890443921101186198168095350458521663573579044787059435016460071892053124214373269121138687213359265879052850396897127283598310628362227610671920538024750717309220988919168926719074625919002764066231545905350890469461997163784130078012110579362486433951762829503558405639408789176633893067305252215809832871535910772954972039753377245164508889530904860324190070563455963984852812423412589852563732765500642049642738491486422270362778327828185058377121347001445082570300691024547236860945049109205903482334408519755014395986949127310390401398651036999395317016250895565558721669339788229607055352093299673111733972609377881100351347707758854315302820383085348836650225639255559352296644653440109523637514810468424110859942836463864664217541287163246793061400999041651128543764065842712466440493862408468912227115606421371655173468032223340474949430095932391612179878800288917457417387980870659063583027059655586842418123235392087136444004824660321125828691344385964645349925004488386521211375981053771685346543992724084691000301232897788220409121072713109849010365239697690233549649427892155847143621872134045236924479082566154111396874772379867566229429031055978480389145307330759316131817782178561072030977246218134226005759485181722130130132756198483641964376648276213177669856660032014794384694152657572360753241909824697423738014534736121133252737294654479727163562397854684591932976753480035356221109011091619775304288851299108999043488650152286657163378556746050402112497474409658585535206202632116609594891515754099095586021672392694995685586841353951300256256123108733838592760570982965301882981674190998027227063602179435872533039431616632674209053568641901569928320788992227402160019047649427917138067272337629631789684044177836685302006683487081303179758344823208282942522559734802371007277327789718988176779292536672378182709340426623284528450713365603578733111181768632492477083406032333071495786220268911587557946955814206578657647896988690708344013897197283778436671515140814501832335318554410424835754376437534124886963312204135958428490448908057596539400541471502014948682822473419572021985959836750722921642957164904781012589769480454634530596990831078178365244194958833976753300262440674325068948856236098457498289589530402227048725817592269791933994931312073099198113183142536366544145489812468503398953460020152254358384001386753269760509598600969480449981645956247269887103480541991516951985853503257838704203407031346924038581306248956730263232119424690235868673250528904851069872062191807245495019536374299425721450491404281728746134550815783630027798183061351394813153522368831861674734095429825523501974506464132134984198992692924838969593163407410544209017139190085393001621065634171356536497405722506170199898121794191467128203848231852295923024731006257925465946105806430309269311215200240690828373917692446168553092235400621189343358645870825668510694785588746142752767148588318643786902251022390242553158277155643197825853224368227524857502467656010027365532430180181656353274878276362039862532730226157782608987730250263199862240613130941614756854216382200410766142116978444298367736178914326244059718826787926815815862955610076449292979181805113617258208006911030099158244528019612379325690417941210200667961805934947186408470129065300662294490106218763053204906429436146443053726873984652976948548324020595404869150935120731200594128031807577909181650696847024435750730818704046909512578209351751647427727463427957790597117610651573125807847484105744660749299467637280129286284855113139675597118200025209275718911219483280599730066805682946748613303574783150424778675242167507287385448610563863168591606354873735921439197848676266823916988067093791818089012323955437430483132770548392759457718345467174219206420369136534306948523362016210412795455376123045191904044134449727973355772171951713354961583916164488141372224534981062959434037953465853227689343788176060216002076203920639627422873293369789473245099944456351797752719591747446414239517166514352322583081322574700001688527613294764837263678530260985140384921402398884518523898078152615268944177166712445898187076465040024190401636444009003665636127354603559318369072723467184827326064395924919358412279503437637915180000927485710904978282378424324369497547407061988397313288094767923248868809496083854820959832147243850325910717580389748435353268900297840692217850154054861480751975703950157558651532281151723559487951851064916043747638574204707548625222923073726696260798267472862743971793696372684944296266291225204741469017688111391730763838450736518343410986301732947027279661331847967077351869762905952546482023024471597530266223989865315832906651894043437950451193509275815234250084416570975592039129805533194467692371006020318026313164437676140145907849768199220102238606282258430803235648140014600316554228377956568078436782505126039489805273801795642403242153542095251760494613891365550628162342291879843765225119485888369979728720827362860883228385126294336412009123433922495580546079740676314947837868392979192136643223159829912869688433999093346556815271510835542260845799955868480707334920006740355310305097080142630655418136929765608962719933131233422007840191249209694398177784847572384434351027022694365748389148060890653992259472021906371185396457689947648582376036177992864840077663155512276920826937966455463676206940139715249968700859617965827803196920242872593760387884801090337834255301419581094208393509440928264972043854969407227866036610816112682056729344499982733551969081279798760220731170814086261085466815093893547395142754284673135119347537975291274124918241011074120362377924439603219222173917088255592592953124200941610447637507869504520162070164885935475819337901486753818914643827445175227063926261941589172089788026517907326299182743455248671161806276679217104088082811670289864722059788741688677757643799243702261650102068938126988654706635502621115600579041773142078926046610730390007315120622351631080444712038878529647705218476164772836563558524331163506237242232517391088510823097586330816689860077649107488981491618079023382800023825449516859992673169520099501989413667444866091004190832078703860229850531457611984530352193935111639198333475756256155172235590007341745296209586818026029538081951594026561140786405103527368990783051308207910095978832828689716919469642903016644190331026984921502700523937644308618288070640226403406939232923197784029676679071761597840259499490585896833350981679386032887796302916973250494474779491851331419502459337437326656212862965819563374161757508980885366426047844397070354560743411944176182054306689635425639980435060751716971306786957966029378788248455035322853522318743438323439237476028430585893005503636229548922815265257058377040872964374369137115348213227987711532142954369564882372193208366886121080704453140659157457959281292111904148838531810172529050045949925620048000542261024462862030524900589068741005783909563612592521764432463700790774625986294115496046847609586778282351927189655846715991217714938824180806194806887424061017356342681848922261304799217645138276186102514254010539811447410532942280999991017940821746214545905368870808486452696444857828330274025494805015977064664853912823909432677983587978978411634845531330083956711092692371363341720492968279744214591089980033637509960476569780988382237706351620650206065290895619043140269298232663250884053696962654820487331085685649195704776907574866669707273557968059543779983986734239671190084746404483491955222831752464097067531546457193660735656904505284740843595690742301440757759976437336045780663275083264459075177617419853039194365736550295254790023179223907752587184995653819651789108888144053006788982938765274355579990889707742083258272872871329929634819711626576423352838998301528691464619576399506878602905116248839359907088554309762576683699175764442223442064161703522832805259352995762360493799462978644565175447120752219100198810627159517522990827917724145193820610030348336869150394787472489326910109885658960119085303151349300404940479068103879267621321941720406792144708143345701988437161029600283767747889140102641665103734073451254280255129980407171324987267976319588375934973471653700972065021439582053133159713228769920076295104276669087468924557196369266383604286556235716320068130568404026322188196962693785363474914890042812943165595682572573398036413416643918280091955263305597735504639796425673205217321356464548110722494577322158247573595386477355462042474765707664869848263009698218641172068334076732302201616354435186744016679693013839630585205819171290765009408521282034320174066178515885771701564186401852058106444866948629881634452821336211098603066149577740033569362229672831161736402527334903126682979102179560068858942642028554057514528647968697454554420943970672740179655577536981003549039328094094380060459376352786522492939397274503410656586388874077202419496464195937594726626886902192720748904823578330220966876959591560598254604825604502309897113799893270397297613745195592305726021266507036430160640414331423077006770403206166674168418687334618528068020296293994645799768902203610716956102690670065767313917466293150795526162522543736050246924878796315947854595826140711448145607190521105752590408110378092729885340014337243147907783661869352704682587411376011475811688840291923118621546628885047602837413104782653439678146387245491969733530022128390614118838897986699700457847233796540000699674169934972568487200580637738216941841677534124654850525196196769877653792895033511014129857324310933832850266701208695944764557579396408053208930251372831035453549920774700217689919704636897221394288657510074925149250995869117486096364668874676791335945216215286217047021627263073591762349922118180059453752106299876114379600012612974560571112787662289340995719855076867510992297683442902292884918982412512043732349582551522446568669286574570878695598484214470579285011402744926997420944794246405133808030910300192899596011361098785430305761932309743760322529774271671958537934227253919281654395374371844928517081979143082093931994107200031564621572584444857527624249692830771411323936007994112779955926456900025112638280367860908704357692613968278577499415719233169840817307549028615043801213075463954392077803967992385252816774014538700515619999226944631928796832603229826901095737139149179260015871318408154875396336547118047153218119218241994555121981344556187756231464398011023390524774645007604572184426257716904692897067317638545632144530469078500003852243528949863704262237842956803616068980050456163320447409633188098899311761178785071377535268076915459441203351787943825707581167551892474228873121982324283376579742622882321818725145894085264596535106611001233294593588306450743695186536071014826222875935427201437571456223263619420514279811513319988747543895211467165561287677796731226572594851797266347989292849279284852156477503609707069253565143670885544131990874937899176169433333430380155426038202071258983299379562985880933828552075114533196678711249357143605566360639815473730867290641271819955084112063012294355887899563621311057424053808029360439365111307556138623403787906575979474756813717960426449883101611409608548904003481597072604158733048760272847174461818834637808692734366376384248860029671694707927569686698653011005378247317122239729873612946050158124725879284055229350477925861495069570659856369087200623506132959330261169643466073702191582495968335850884448016002453090858080085546667516481030802529585685602289330693318008256225312964610911966152463130136937675887313098991945968188390029675155915524399054828086688590179928541989563287084800950815254343404755094862733853193090930030645658748363951641481189230620916930783749971495027784540613626021628549737763840386077279298493737015745822444706042168486913461091103129050514173413567162792193519600432862618831233051568138027660019538982425178797484987732511958832352544071598179864740165373147780656663735474304845233282021510120429752916208703958378536153978975674381510314452052820375130603124748412645741529249577139067784065050574199111737225757429264348421264825192059355817000105812089096554255398195749691068942602135603921236048756579662410766684796638864351720136009543766615652657531320784441091977784408245728273800795036640749927706118855825108022096537462450474799237253635995691408372682812259043685274409041712319911178298003864697383636722136295807852453238265909980794359436234184508107394319253053423751317755310731661867977177433321780892060645853848836654952027368332815222183807623055101250275542553335323204617553249819947969385677233354305060921440903961401087564788651135014013022833616566198213184983580949471181166520891409899440056530049351241460205893033604486068941053133173381721572875412685086166044888605946044093746821456665031916654903558814198313538006099471267817589517477754447151420514639236502484099250738695232601735346769030597572086226787811649180780222328490643894702781363826303342408855878003545549137494006213717949482905780551776174381246053597387617812257996238516010798073201648066059025186901763801813917955773292081491622041986985411454424554834437221341766659178442106613437524950956678112339441134948510799934623846112597390859154429179474728063063089128433747932423732225229967787792754900501452550261861881467930135046489766635364977554484065554504209479200178359991629760343387815413064992083262186764367713625029328850874691543367283768802051108655267410006619117416689127081244565377089250555968623426663689878579002204811623413665954446428438897918766555825187992760833495646544216475015096894619956349210265021635626096523801328909792874787494441307867581425956087595947865632817029522562729791289671535501344724118788482241179539518115932413101985163199502488809088357274964019801669380214020961245015566467857786341058047251323031613747019607022817639367630804614469070746758052803986275888439940896557645468346993807317801612242429654142112404186413947491967044831302802091415375559144535537051755272843871839609166814405133869162654993694459296663478812030588291845225450920660387900608993265072563647349443280439299856314377835161406363572628629962072557694421411934206726941997689231545317638437667198503334032722573067468885040848538975682279695960233775130855361578226458783859425318053576980287451529828794183816145942438104897984556414025513232821911118437154935967040635614813113605059497372219924112171828770764849337665030687398972526598441811152573330729686955388133785056052747380004234767121236974935941772966611402129625543027837158537581940788843664060732187455044931955351583088538513215381224283588359473113608271180435331136116494148651436881022705081028668946485308181701094874406134795770753002443759029684302205387167470238750395164044766088998082767475343788102110814629303467688063965421373008069264350873879631689402966193151698515095699264039155270344447122375732661292457591966071053018501532005806433227202550644748249640595177290211397381584707562098828759529921680077240603054450408985843559750334592899232671674299479947378551168892124655608234432536560906328245696058836657222668914355457071542450524358159683738265800280768909854673553493984628733774058325590126904120476310172079887641503162331205914843969343239857026694698159987836616811994430381788699022465518574833483363844844371631486420405874903062729023309386214444985328814790849068497653655271321183866975597691022865077630946594778236641272599115556530260052295630409536716999292989389117083091943611492487781156645771297246940304890526154059660376180431342345777889699608661112633573333522432220484918339831338832558272677109256571611658423547411210883477664452960746873402446302679012105092044191135540455080507258726425792027325341290682815986122898679789293379917495072599691019651522317037862586472413643275288252903910703053287962784474788624651724900851255236824769218989867167914264097626815963411098678541470539939432903087483273571396057201121568863737016103273157789197010242052705547419093170297958163302557880477199612129093175383143211396083137626397203951657703272809475713962334767688575802426250638519188662538047442364786246035823044397529460800651219512393808381476123527612165896305574884503696499287249186576075717097606588016700176388319935138652336913659858188821400368871388458598048644477652256379008830713856183201447008267763178213221945352244556449950943708642041868299940085775775330813103656084738679654856123274091766581112309893531155654618279734927128726871145520485343330498474654211125980318179698492316968037389415253729494242452671113359232922745093557931598777268924766916320779201324760353659152882559253313859358483051413504474968607679453950118881911855374548128369481054586538105908599009488770459105460027572298179937844289388568556578746709038318266927417749181068419465080765236242890092113243954705510847909519205533547754660197129351574602265794331428809376273755426301185623522912467789244055425102460502174641012175941890034433204729474218591972776414263113686692100910849317191293433068043311635244161531766074664023920652025886254480666215554514127607088630420750792602678074274898763649438475954735377230957853334124902426139325317722244632294826871587732917467454271692490376945585676582271099496241322310030984266651672880202568963745035492485318682616777368704987461295864209257564116571708850626689912211533715638559962698821058208870746442599133094080013136872166247489368318593279771131485932903808131007945319294462892793742433699994373267748910917847984919909941143452929087933945257313615463971527622301898697787884100610970379655364444064031180073090672681131705302031239323761552971925914901234923709709145818147835437324319513767538027717854439084123529169438546643211538980999876520215868460050727402779921689346414754019120589975945475916954683869263262789973378515044178780136960843357596495156013334560911412619033172300607770451768280340048037769299619808721469707406629739971362305529923804819093164548392940429982005357223502434121638990803323071300193943233219702375573414784381944146060386962658211862659823500931052280116752312510259869315945049290242010128297729739611819337711705063890787450377837309064456646874186285878479088202079096131248327485382891095642813605017201400884350232180918596519841567323792094074610745740562604079352443502301357688433292878276692175894339372318684171535777525274761741533530894742497891351854426329523798707928656897146602748950312498655458363162197415874664972122332988351573302893384263800711067890385170064274706064777330516586553419390625135523374361992497077771348064981848738082644747732751648249754029397910929499422799675306749655456610371806675414910123863139060446076005856979327469174640690071639586140852287798187876974729119500628706413414105733538277679390444028487721162405067542002639912523363561153623425426354650942295391235215692426267526700700203634926258378270339954835814653198105975900611045498420195243983443493510979370056368865314605400847935529496062664457535884623416258292530284362034390761265567039097422863911470092329769835250817571579892403427882310889524871365463021601812297974683140150729444965764815569302174655721861946703297376844806475575375266546397149958640803877566298022178883285304669562256686375973609242322888060659801679415859930749891119094482858006457427422996482947502688015016962484546239864312324458140839966081170016403769945310129465609032931500880164975112519487699163956027541741600107393861902701849138748878092543277834252152534745407367877162078754042934393651231583719064405890218115963656433222677610487544446836216999791815720204021212541335044992412917741318968378785791090730623197078927012686963168830855039118791195571348951369887955559131795033602371562500030526029723026491914331325803955395540680312696962674237846014199834042395572810051801947075026669677304753931626533815561598587056936208315659477653322029115586452097331709394997795676359973604223566654459937675202137217531301298991172190555014073290149764353972821272615374467182271384117732157729888546704425362228065513068120160236305415428265360205292135828337776080784992554644415832646550316510333617456473022292893656038879440614748498484559695556274406884531294779752728429690516762588398656026917286595413495475306855252469625400969613352974847508963462502621357151154244600566156130501229902436261565603356761900735172551012191486888491676362320132534943238146799165767291176317805228604238528793042388843234324019344609744377772723261023265264882254312232808907411022789989962781538175703081478562098595583221194269805382651197923825594208574243452204638546728722847835071744370455976846972161035514878110768222009585725419245461970010516662780458565144380402544762491169992895529116798332913479181955052558491463825644649536550972868655393039567555565375943520283534009539094419634408448673736143711661601822882167724962574665902400533753673325396532055409279992578072458026644188775312528889660097295616173870676408803388285998148578119181079718494453215936380147526073952038192106576156328766746739318158654416982965439982884807153281453071888902461400447036411722923067321133045971885210766486289341173632763071935963491066566961154257750247335923300291336855596875046210876517966115480700506305686031109358059845703201615301604805203898192842613497795456855145450552106911524543092798705095947473474569492381431315460882793890956655990840112484800588124351493529841403559362567879107793976356616512324801855831142713752540882565526351031729489237712107019079766838218341160798052648303453247792793114114313095960071922155016787356087045533755455658575550141016111421337577535946391934466800418577420554411234180109844956088611895809010060669356347331120804505328513008564677675502037394295566222522495197731370891241856290480271136475582865408336950185707242142618728319094575152843723286887557867836858932685445484423978777248086154578201222785077848051429159490823750650538096462207250863961004937753126601119178701172054436956321242566498058628908662384763771398862192978461141071941309331908477197999663138825730232091554943811667733232660811164228735015176071038234949098042459514983329072215899256752666256307878304214057532883008088315199213132579250874435505355681774577115997734214314769004103555738073207860209043262196100542503046794451006265730599416064913824710331111498875760524726245259503968485188530913923296972405421937232486032631930074191958212848899058539827672875963190200857477796588580007873028021093917428148662322303480499857327087674937530975300136121159774387331639876683824514492789746228944058605519132778919740313392569107190409272518299338001348854931620790574092938193724102369690574313249905024648883917006047940707981316467863741674163124425436426094745607081877352742540447865321646689774882539118088129698904806646445975952859872729487956546789239586015744293654394158207231017686288255203934164303737518052472260310499811261576667850864811027374271934064903049303299322423712893745942977305684979058676165461498116793093269158191373922367937186286763202766215873021843799971309844191880770936782615401518108982183268432075754166962514396475436430240666156640089003771867289529979761214586838936014996438377547057614576926775443462237564488772209746568838813677312188750245106004809765977871431911005522306377429730143475182050687707660019305321427235599974971376262637546847683892247678256545264127088381760587974931120480520105371452322758663473301267938380958210709879633340309379235633986102479937194173698388085669065733794637962266507800850728064819731414015338245729694257521811378092142167371838230093951786887809127629225832930056573517139374435350589861195326193523590212651595998328005619174438894631409161172363074292943657127752661292123094704534565410579920791123374749022558101065174587020716981653221966272414032447691231390825641190455305495135704832319526096803243202563297144299806910500085908035779044146559947537273849873318370581222450554677182440320369585904078467731883227800563011734308967778099103522350308833759762788050749518531143455866833579068619386592077558890506674908530927915375398615872657378399596558128799110094933274726194215833593343527399540595822995708393728616427493834858795894286152381025803981780681360798157187964741033193834285703072493574128872866246263581297663537411190529721457177760684490182202221266628769064418483692063612522522799503344339397797790460455152234291637699530312125471314397205501556767804046412702517672496526743972717059098207700244050355663663815231568080776385946434313739171331664967236619651124437626468141158863189126938971788287477739528421003251306565420284929829524806498064145544716976736448986444843522767470645644298701049048738057817909863660275241079575160559677172093431701954365215374208644050580741044577066241629713325422615706766612113420348500234141152554102945287647316402944888438955267148673826752388021783374978593781778889483575479570222314498405351097180406479863557153612545672888687908621896800428322045140971652837827892373815423063708373216470408902026862126307153302869451841665080821038342564741716306116573411754383440147607594093298069669600477292984876083195042620668582059053632911511744434791662509537668939121052823523170347560978191798984476185529766959620949303611822110346557998742877211619147991586526505145049301455473212804368361795812982132572005171499585730674170710481546626012481533705903771265331984854688771705275680608990963486021603210077455446178272839293909071071327563854919896792275010756134796296938154314916282392112629913381187701174717934826679928237494357669867420987230771812022252998570423493282938847650708118856610693586295775562948201500277628343990688222718373655966453388446735714579574256118328144244041772461260927876927852790502673025184569348545304724670488467531783924258401111889145395158779432433061652946391872355052121472540855708183862578889508108162660949253223558750499266869610713391913026938957039990485382345096204689358317983131273162587642543760682213107380517616749139914538711451271770004296722922304492690217965788672353453150999445299675940501709207972948807931408373723486279188111099895821243609746508879403892679696945090236294071341028120028755213161509554576616108842749880323041396148667502951693493714893025980453457641845987675880139372815802642899793100888297252176298685445316262908026239347274065334093996992169024939812657973964183135576327415689374827022177373148304533098146131387252608549295908023604247242805821001630204395378887167315214912283334565437583276113908472138568005883378291675633598047935333011343777671694205793340184558044149225214058588562904352093734963516261570074100426138440509795636882178373129709479440070749315699037019077183920137707185574532376497157118306534474825560871685288565893002170988161184199520943379209005786756838983807938198293620490117106313014624991427258069668183880752701426798680524085917172962652853740494861505130362208635649327800649532717624606887853136472404400896869291162779179048894577923743697217307129963277421518062569174549042603656780819437841609125520571817003945354932702520010559061942287107885762663637995666017484716595920383400367695662123349275747801173733251565426485762428140459030656192079443451737560360714478006953980215006931221836403171919742222236795962974615635085563687699243602617172501447965829330047601843366479836557503215609962610766581979275292030660381804607304491589680302323287485601510062281588775776549669588324390728880772408210673205681868593878947023940734927470679193375559077946400014522313977696954778370628975793300936294837807665916667161931835861793455702534189155814561086012972738915555371747093942286218141383057918831565360496800668775917480411793926036329562362434778994447494393706939474956610670901828207717757350205441283752817001776029009735689571694132845021586116843829002185207024396080350138724546800454675304187895432954359344096022156209619503891103621545173900250923567274885079446961176393878369038564226589141690994736276578372196242070717609100573340610563638540771128269866870416146870329318059710340654165716746442925261767618737179934576499424094095558720450292881480850004487101007476281275907051562743462411377027291190215482744019909052338168641040419027858294089052371510002333472168822809473968356429073089455414800465051694748040443623035731132700133048140273390519115626523719843214295136340837859352120861832142770214485533514957032096355065477910987357238156730543984823108435581642144883242208624763359491880294990282766035324759693406435073088867546749427215937902965647006078712526880616759415997037670074500303590245395807066841242084660905401364193388858725538403049398452355805318121925105418199006170381217269517432668375465490130330587910074301467751116867707591438083367428961083419356533237544408185859746109938870650481588386153918127557410756981309321359174485467332400481591236766756766878066059037236762373015036749630305933057035546346404851729241083960564886104294631140299694069716305829073234423727954168146488005303951179526239193625651971792172689961856373644343163980748931383877708123675231033854544934669878618248501335280927502433722490952321359195453777602502300366475292528344118416730274820523207989577446328932788062731334293414389058603728255942991111945869639228225207279307309573547667495422876851717390488988433022663368562281470616800403947215238351793135415775171816513158404589476078193989446486451704606352419433046572280257772084208053812495966612409070914508964100520532831713039086608025955808915188528186755991511131594978151450877680848317462316010855008300595519275980350351471068153448782356240073683670162682131805534289859694494935927005750527855211201401968776147071042509842669059531592428673670523139413698249564375623240278334236753499952343403870553873102170296605549643189263342360228762120876964035191890477578049478794946356098211405794940894242472134386807806794933785157658803598882309515336287511236373001414173636974833658264239109306346628119855128199255772319375723856201619096585062143560124540025231635256323870178803314630472596340839250601722200899349832170298593656705004808754359187658081374881428409954961533919919847428795463056132393965544848426445410989429755953888904812544687557567706274050704138237692305861816650618964768773697364570171909357494015979822233220791051349436572337274796139165576729400780488155074980939961989432892242555885989513663580978340144404219756164445425260996251128608631766099552998933372300691759702729241394871197399561574897122827745488965543423931142941588847155946881922217100258566276160864158029867665024328101213117236881441628938695463703930565596708181653163745500215492962461646834937663333848789970277375079938618444988525436387084495364126206722406851248752475432442718374224386516780059860839531330112808319031700413656334686753987569471267590980905138059119088329776086470483819927106233973997246008551491608748803065454120550781480500829836217170836067007855983103229717959240893235740998843957345598704656016660600413657603749127462733318409496038428761287033746563104677031099438948706783650937894374461653394963578305116482127655130708183580934447221687111551884750838617686615096853279498138301819130860925824974344686486547284305627780773855235327874979071820950106977604908066642933590188273175620721517450551493757291304354483421426073787415147509588727542168996674803143694833434773090782885505930161627037491152130328993467689068709828756446335642655586614618566986535020853934589459062065912958049975650245192708087935435524549591528258426929378420408129951600426774501756136476818582336897759169853622372515397347447646700485604670319719358768383317000847076756453129407720364179842298434082400812122489527139080431258173643494681713030244593803173026572530417874236765736423120547833023863878296191426114807147490769930815359990441112937886917895097184012773673785711827569553271222560480691119611515276201942524116079921972626443029005839426638108203826031159019412942620566325085350157127842093433345946751194397833470111863714087096570561036682881857764684381933471879846747055685888526405695515207754325689864170981926887996042556380207841716139580659989242106348078029578250676560178225954720433333912468408021894462246391001872237494912315271743005186276001614629834182006131846911200034610546748521045649339182187341417366482630749873211075858908923365242129983445168891441604341735219305105458248278646326312825461886542238033145904267593269529725510675676204786793825020783189824579416590048869408488166716950162421276493014993882816633835715502758173459570847673197794071266203384163877742418214633166116658585861470513234435491159460834031103445159536035678614155771641638742437499568747150463231566317866133785596267505477358971233278930109767306948674411351495262913476631943790826925021803176897366572372994202019553000703308138305272737014040154440801439273931638914698044729409821779061309750901606071749399566783325857673509406212328521633971624449870883352079774360287060358143737026616857239178570059705384423438829394976848138334101567866850214332828290480572485425645985907511015514328179514259028893744750821189700630317180415717942871895816147942936505327830618221093166731826722162808841197717494691267528782227699818746277969910278453285741888756268525052179787078543362881594702436574462051715469043308890496883131005279696647062549057651240286033881201079417743176873902223116331127288896353021278855194584162473630539358262238561024417626621382931919533676768450042217699846104723066882184767589725513813339901425533553602413954370215004666061263666786177587667082139451698505496437496709492815663572929052690200513889045209552649536814649180872274062711004561487651332597233855668227366641992431318105955526678097182929260045237559100389168023558030192484448453976781608986451229623111677769974557976004794856457656913086414361521157668562803792886509057335731175778858706793383224450267309216783313132451676716444407677490007339993262706054837648896147879505728222382691090395659229271059492761221661818378569294594144343971612551805787402887427182224736678671547457606315699877359019841156107937805590652152912511110708030450273942804070030249990801723500547298987798125871378611965458023563085735973574904465995024543300275339147807488158130799081277824898379719251751093619075309669732287193736246517575215758642384945580633033192440692299961441031763376173282327035763453994463846282504115742291806067099021246705417843890108728301389835346845658154341538574160524561912752492785982336034829290399211211695320410112828681370109237678510199916857056335361476627631935620019546501503655521847400813791097068384382219899331623058675888632759652177911773426666075226428095026136887796548498597213409288192766838657877656866147567165858299965499377251314264022605698830287947305418602122184253902145655341080861274559217818512658497823337508179205165986138898728651820059703789802855964180321524332192235157474129322498812789248803882033193179932967058282296915263957653900266036970783361044128374394423559089439066029392466258497195076828278500429191752589715303239818259308275546350160652106810115821105602005119487344652862672953038552187761788220331184217657370947749630930549031316877104527892088377446348395193798993263748138813404903384312317762727020856665151036817887415754226028700074766403011082106708704417608815695435591830087695239622221207109926677345478301147927470694442046322759870499766468659348095442780435803857525946967386661567384761364751762254536998626557684015153850957616564689283864369819974234766002779168648723567057949070983630364566796326150210868467200983002193234815215881098093743890528412083318009918792504284021243158436007386851065698190957183919994394406119236684922783895303981434894692792493335094126424864406137172937893284222140204760896970891902902983384172622116695964567831565391146706103201895224618404661025419262428767335166964310846166725035243888365659310686201077788444685015743541017887201772123671475921729978829917014429482080367384787142203762050981741470251678686730229202306324167710440440778844439584565910137809603023102930962305213470244807555509785469047128674203741770199427021828428311117457561717264623893297540037582408436250734060737530892402793199765286030786467311971581870307981140002643050723921686818437308611995479207609633784439407477832510544623677711264959484113206538237777349352600045166723845471259005858814115417363585378981386808998332820334812320970015428192719390802138805877941877154949863991061897149943887884554306110248106834930286136179375625930011778589816263339399542324343647988843662599393526868873482348521201937220752169963818080936050713752405345597336174221621914357029574957233489270584727233360960466154531305416389391958129902666646855344707392196748490984888700919041602990088860201973706329649699742557944463575240930046784367763643938353486540114794726363756297093746684220387839451973887347994024559992160594032294628686785418092911783426324390433586460625117490561029681795714001137806090556033035317631773219702622501824853723753198056034661357799688418956795704793939522160067019550879666849069434892402913252041469639191433099187535883263908983021674521896254835365524757574195764904824924917208315804776157419797282839698012003384367351224662068389630636413628149705847193459430185873566516664421174947953603539488018747204379193898519919911412152932739760060408659010078650260355659680155584167550644407448726105734547060287187141161529121123948146898353695861555385000943073250359521796040468235392355362895159883585278603120885789204175473204597739100582202902270521913609136353714912288932726562664718978566722123664989319819399198350916677162611402129053698356615189298060408912139980174261509154780060647860222811535041211502859982618626467432536133864335185048344108609743798179251271050696640384836717295886329885585654699646295173240653800831403895241252592375201894292701065731045212685256542818235627201886160724192107969016460095249562411580065663032716848105752559487281971401021990958957299352534994219261159843314350623386747119173724893397105341057481512382115204996557509017520955917585112683348295713373409488752739349205944996900084540380061005006564571994525491223053404565232621828708855430559273053143998472805257240987263577959808423297566687154828645722711510155141133942094400299382765942634772116453246863561580679684737097595204741844304384384628610764835032491362006964868435514413370318478093844423226946429056684852011889725945148972033767572106635536742119740364420165638407438293918877285441683970476559078976123814813821944519014724932732346306826342711354478427351136768961010074618942878880758764418837558388368779128542984146749806184661025341718596581321664406709795665365023964922771980082777402091393054779240068038434534798626191821007666427855175268065069823300412110712854482185510174112809373264483265356508299279508404111475360009821535151103827990336667420102241423321524673614077370149149161119493347350699275821750479247679990935673483128590750981862259571444574192097463060470796802401313921891806773238306675262063089032998902362865450855576263013321000038459532288224381737835073406102695622788896266258871902661018496889362095539721074594750267695775810040694489463279925490010860473180827767173707907364636683117077557010887314221299657035466199039398796917495320591625947254846030927529479184894892065784994800804136782331109352319289852618905170406621080211731661852589626219741422220162799521451644505788732908320543926785469262456570069655568345932125582855974525377612680564440482095715299067497759953823565167317164550023292370069976135962284236287315885714923632586134878447134187748730939141396705492527286670090534571770638402539882430782982848979459819925963773337143503926271639339452414437616849112118757158726376767826951005777568162769787391166277279651322867791866361470899292617131388487542547583323302219547437938667303321187512401020254103372031531376700884904628841472668570571401334652120851297151473460492310027250162147592826333175377438273979207890877072415321712074697232280647561278643334773956447218870406555026497299303544447328107258696661729721553033527532912758877647199263660293826300649680227412188799267369419538337042083223362467190980948734140560510013672041591910477060474414744742391192160534740694744198260992984908120724679086002994625401169662711887940371078389062728447004962412660776842211850668341480073816463384200673723730411353877127504921585807651620145070329822206001775426625598723270206855693766052277708076810527634271325417425350894156268046288044042085393759801130082664380073023655048907220095700248951476234869579493928769486728211490389104412331242535036650692977872338234057052045482901592894320503725604945854894947587169160378757766322000731919114219817787043414883183110690539916939445636692104211258434340242535519044348726583578979030868136063325122111987114045563825120933419166259609942159585626872921769522502214724548793487569706620349222197045244841895970842943688331268195043454507256592766521008040909953563881458525062078752806596132006721219077304966856477197302140003565748158254333971202436831749298755522288117697972558135071998912785515932270018657963187196425191397240972294341130202362051718149085248992642271638093595195588440830917059141348077496352585728986134724256299095572898220364548721149083083827874408335740912123839705637693307990857949745613107800721694728979769647959495932567225165939786778186591689735328453129191667529589972950443979067113690589839455105872384564582794886497195311338681329503333457600588144391937563390498211916808084262276714194258495179779059430610910859674125879298738874927003794056948276053159329801773402919815118971876749070385509404183736950571040842925210735857911560926996379581496923159731760313305484349595384995665245688931637587361070787219995220914622629860286093859950252927593744733437119027505768329315410887827656898871215257436778206549634638959473757999523633488377238048282922037512310101671858330987549310172601414303208215349288658711713638639380324368735050715309714719475060059624757454673052474741039570838202580413510885896314201307322569978061019334896664539092032654492666002088333993711358466991373489237530118688961147332582285716919469293949348243864075827618432624786338315324463138444111654655028621611948822605303947656895464559128496017406311098841973956638729238995698330086892958846704375515124179651211516856215503402125791320743848424809782918260295573640627757085810648712327338894891808486420407508915296375852651337708692394062556331644383801597864485780521512459119434275620408601332962290431162531130467322046941102064195722634095715189247486142792701627826312522491261014018919798780612607740136673035365997708690631818840945264595853393830761471752453820347103137837964636178931980463811952220817686905974521952199286200178005217455967278875111529487524133332677231141186147413125734807286741052146004224971118685922144134242367524320572072720330818703920848418217597883457120528000063612963505728925189742154787875446030189900764849255804767475947851167516963264954347628360944884253642084832439216272790789957078237786942105625018998767658885584137291715607096905021002234385691468597137054703118111284902696987419494849745534644160429606298535051222921884776017487409154182984905185189027194457604187269968398780387284953195608888933891279663307008883690419855577992539429190425807848508313362465468014199165703102343734261444580968675777791323979419158579610857426542161739525088809198171066808567582215851627582914726395303681296212736866504426848002351357277287715211532154171351175125617413700273288347870662656628367358705002592194352061790953596501323167066925096669878973585385012147623358140790177079159572072913241459170926876646817865925048450750579775975376134541530109540149582649903139581168796822031882958385271442932445761350874764935774388567597874728214080682852619027704500923290124266320593119091480410208844060833655762099323642729990472001893846557037176762376884330292529497090942210564949238424529721654137185944273556144958977871585549112322812761523827106702410186611617886237951607365421199047866867758058583561383839576099375610636358870696167158425528919504930601816547816986171374849398095927257741476410711082942021552199231373762776702748534499466528176385170608703735580161993183135979354717452284818678102928007852367816083113131173382826096461387169771128957596387021176106983513309988541580326244458803552778943635956680936077701097183345613612363345707457138424553893062477916027829825509510771648332183072732049058447466753874165887909302028431833605291346746300848043048281460093619428564192079454831160267397872407899880595318957558354148333844658087862250934886236333909971554437260080387262657876644961179454343784639224142741160313478489137453015442466548960215671194250625906495259355743538259228371716689598315556854765081710121371406500197409017646866072429302751189873489801473746613599347162989045626833614630013952423405948057512931972041893809712532015959169200050416445122300154267527378373907430754784417298190603700863963770081578728014942380813193217899027380498040071916755636572581177604743824409547959932292278513599877449337357815668962262448014012144020198012890007598039473476937448944954066412822484955336570707643448557022960824849177617986035350072613505944136561797917464888402976063200763700984249447103105449684084651760752016460072370171795164761915960046439897551982851471421792473308445699266054532145196848104793773200948280523054908364717181460793402461739557976737248259859677410117728976046820733996310373546964276194643828486127001524069945998695084380315936186054509783831064201669829147054371521323555980823442823145735112454684774814694558032165870674905001600736293131427288584712730481740186211606648073016159834598964890559568768829593922286950203424619604942674790318986632295588235307262349561368837171593929986069788368336652157100911031048041173221358005390753868467516014716289051798870405834143050126438056356480104090942514252894440607868707496647315640774792260353556224612910399656354970886070071760143095112648404146556649084568692794830599333148173633130822414512857802589542983389832505666061961353259132666679310193004691549845367308644854547072009124335240638636021470375025572990775654827446937346917986828215610808816677537685338702456959583700115710883474943239525207106391803703362093065243589698133461058458922486039099256178070213301314916191790363761963386718552863785012003158032419308394957691285321599151692544755389392783845294119442408642546924067756700947556474207422849673832651300382324414724172501426765967543183573488586115953621621531531530143267700468081694347083236127115638413051038558582570891763489544213884313689646035769597939839132236692847060790624515649833240113514300198675474188894863436477532438305092821821738430306225459895379493012333803310219580161433862221860366447652573370463483396249433617994063310766887294204231868230700306264738298555089920053599303230977591531795033776088774227675520393885439566390474982647580961630233823230489806561227313713671846001011992673340411615356430120231727742444791703638408226937076886488365935765651049273482081926781199282867368847619065869016761656244717517802850239558539169955276576102077176796083638742738314383440591445989587487926567765982058523560140133020144911750248508234567419695196595077701531417093071149463950980461474840685558370380568284662316705818039630911475953520053178938818394213371744743949634935210288041607976669648415686666069034495294390849740379740331778589215402987890001240661067977437220282485010682520757369846154225789155576002933652945381353779830077913545714931207633567428458705331442549878461738894134565166259705462471684265416297988561635028424841061708723134499186724253123387031429061901601309253821615086354038032750059625428594789731654689154237849568594237865547294855054921625104518984151121883029584998482691543867879445340862268464998281421243367950799111924469439930446501673395261506456833463273845400718167162753577873224699011876741102578248865721601929834639327503857658996241111109333070986965020436960290823611208759834177475029425249219648270668803784274094327326819865555199721275464328135459822199628212898670412765099145897672177827039053740464757760020246530879860122541287601773626762110864262138985913100497245633319352024136358437679828628201364637770111038512523403679277751602885920341349156254891686668806219962098187519161785392203619088644308413043461702249062170123028570306259302306288091082874742999342041184318419007227627597042552161623949344470458611016259194099742350925688274963861555957738312955520859421444513116220037457971812793114793515611019941668349265147013008174327618941049911602895630658422779762398661566738772145903771104778326499537806050242383916234912121494273950528638345212201473813021621544819599803081585158094448525436851582072485188958010078055989292978482925743709233869468348015979291376960437984874352140253765943866141990829461506749064681412827892494953929163662930709441765321577179263023088520049988201484800691446240431008712155042776697463604749618411586521922909843879921988244645146448129626950404491876943902417377698575542263287158889716917724817676101927425156756496247892093970605391237155953824171033636670626353615098181962158589554174963201736640422445266869739564597764437529651610298852576843330333636021913103782475523183122525383817205175839725847748447250432473040336719087323759261674867083025218461466028674525429222832635210259000008345597375838639480092141111728832638854483738929106432678367788462331269265009081862348379225512174915019121302999156959586686582443131231590198411399117919966057906059391972558639972817188459541883781473364689184208270828738698356424493097158139347595564470031920312338248862843854460498852419312632065671863593476987199619280843171636342850734795698606745669057131245098188812700819214398349207686523849416890920798557870152896369306575830981410411629396765779603013332806775996104112994710752842296006911490605672862292102864697742542429065262291588720510741897318575715801006611214532323984217908882485248738553466878568836542909587246847765497851887699646921891960859019066378440339152767308222564033496106030127100128511108959637900401991105951148700394884193376610624740585820491369182706708538021533600766432961133556234076951017764102339043147068642639838539829106721963479329807309521093557799500862084646610431037789620971452889051303125895202177030709185537734447184560831883323184806743001539494000648652071270831124236460953054804112991063398992395858351032261467230361809809803254565877866355972146092760447202823774257125204202147306566755454245149822957879250042544678504583749019101735492964159975532099292873170556759553158182855417703667447628021178893007009322702275107824330652294872702906763259135519609074118026876525469799876394956947210162644828801539050407686992772039859053718661784142266034886867991795860172335665381215454918521674626276640519214980740133844100211113445153307260979477530261436145160681782243282351373294515298441468764692406401794585624928543035087359285916690601755308417386087257293730615211002497700543302730454912733186672890219459529269701385789970579357010591844770701922132698471505089985997577895445744001391889278086180988901656987433107224579073763641408790749854425269129756425820792938381249132741013863560620921686735075629382074967490062553749236664142243164685006421985326912990522856501425890473000286045352919983472244692477137346884784954234894529489003521521953387273617280357053250886067994669976270910152579635347721255361266406493656363525393998774730048184454877879388860751289812862953879530480629020115003422398643602103185234295236281948527629181704642675370546805415030223353003375132276767641844757837532482189237016164755732737963259690447066228424781609469688637073814621769363064096208189832658149577616841198332892217750983098849095137166610148808824288693207124645395994423288473887068543922970272833587549533886180655305752908711847092831451615308498293252306913517461515372153702480278965497612289452781576257535901770171523644289296936196898684461488182836808918260173797988756180083743305468620851383083534366271999883026628058630697005533973253769647604635689006635890980906956628573372363836109370958223193904601739327288082755120284441010045809124197438936381829296239970644504461275706184211551906518006021211528898807458951195247847652436604527822460306241359607458997739747892826288864332934445486187404998758083855405013027043218808903399191644529634064245564338276687915381907926831517847581962143247880390140829550596906101539084240768648085199429979423483162805095874151241615239706903560876433004430233690879301004784407681853373963255468490303960021549377727783319713333576890739485317628905989712080611225722456141897242995569991064012307389147937124363457912319577305214713442283748815604567712206309851487332132367984943158114047277105522320534621595358322081805280591844320527792174758902115265992284701055387773476341440582019036071089721002620865912795615677297357249034987090790458421455191878051175278054839886832305864181845033641605972232494865039294210666320843343394842773997356550465253652254099109339980831634213562118812247937297533326309291496271412730728521044677059748588442379145284618887003293341037888624302710264835385697729201496831927512024241378548233460233267855109147815370290804842587847790633909492242038787961556294728276197853763719869556800958045508784158413145381721909022758720903192462078610285494225313061245337671062369222436132087150221090063906076660166407246618907266470428763947101286309397006727625502227988664964145250794350147668795886928925329299447620234666158211541453007491914574792742844912331700683486574210924451960238113049812172593398609835582896415313519225746511369343737296895554461725430612748106699508266028232706031739894608326817595852275815128470904020196427494940881476425383477504771736185984594987807400005154156725012924247841027258815431048171267657193516981460261792631572650966731005665783790754551038400868083294155074963061395877910721437669750216319689787132179713005063200872308845983468234515222125572944185764018016701483985632804513675617555405684762340091139307967867762280799018154962810337285301632194453526682328659491002782418995459682116732219072138727904906577995621650743257145353536235763957653085499698547517275506917290828079989196680010379482059179427502466563343229671380105044188082402233482720739337013662174898511000194263993470943866168356555015336356301709624911981642750814705186293125589240585263397184112950974898455088571090812480246747342365862308819281850189749351572114804094748564502535799513705746422254367304238746734826010112218504778282569391455944890842658223446900487782618629943858735244473193871466787248961056407256803494221138436382192992680623498450643670501727755669035170977115115331430977814481949245837748402341519420590015782628818911878861096632333971104890251370630309249412785599163874247783069713687519861862900765623529016878988653183643278316502529200291599925131515977043816501153856316473280347901130944068953592670124913797416577800792725652882352336112316375733752831236789008815391265185857025444554520172398911878596739764483446596677631797054735610814596250166541197770049278351810648881874787431202907761263848600898588774915417192609747048452730399321934605860270706557536870829343627432728841457535661493309159113184558930484861886195783588647663829044532979478477011157835776594409346002549979601991894988543122185827338338541943451052652673563626929433057434814580704172944844232847302519201923410900987465682826287806049174148090869887358998682927489216554573203560125750607827029949393206075446972844741001326179100212929722983653335724110761836254482421382150262028674768492428315701870910392883999525244507479548014837299736558431903799213403246211854721506807064203172542730711843297561040231590912733860952563637740238216556469978306439457179815592927245736949557184021951108269974369347999958967827741065299896039357223682879555602835047340402882008618082700637051770872493654906899956635815541468287794341760010525150685914481923432088572747955988128283619074771314875896983563671612901845671044910431703795077216266925639425049525227428249052675713536329579181820019955126984012380145022766773108911974363047425454400133233906679995073262676409175464962129045505654275169273815574576918265283749801919688990022369020055122588138674097317452458474696289845940058650523656064895644605553492898459637259377740549894974972318324015566858250814237198213132064902917803706842908591099797538509771679207138326715368165261341771443797154872643645622380716348074656743301239768786571019761207017610930778171654709181425661347619012705011046535372764322314805529912464576333046531142221406458153367453394201015802537401474768474992409056298194530936861284650806879470484722723275403226917084836678757949267812781417238082163765161284276628729366817197757751355650993296421337673925155115209481288797330588278269143079725885939431594294520076428365772744630213891850311509063293565922915795678221721790326741723358183542514528542639166322542205807891267215313202437099139575395402989892928934326156887455931617072292879257478171676960130815105420673141036041063857958496134898452269331674846296160896143045991968384234363593778977709789908710208783071086899802273348886939135145769711180357404824433935984037865847337423102381271074076360753845226908352705431489309796910488500965095605384075229861567086474238317866803660608735648558450612563094196365830463433024541851892024660515441527441994380690722599334490139015601694004725283473928369024316045330730364488073674708859255869665039912758702198225567193482111962709876007969364503743832222742214029338378624179741885519493082957280776895432802918833196614360345405789445106093496571772167612217608778047990245340088221899181817447667377615958002927094047905268880026479906527420734220016471894515812447353578115138919720396325069084390137542890421739320155939042001783431742376237491507858866124556817611761615503345803322434049378338291528307520734151330484635200739430044616336148657262362855183165409315603026898279562497828792670152476927025306237767474090143631278296364480502557549065616224238596105128903093863438194298954225553656952660839335536767398061859507922459250131833803614192543428161417294496655369226055292926049557934677985845954076456931800960244569868893270876605978737523369073782737706114061099183644235780262403462962790070400907623728853387408831195903961497827946216655259178065069400034800944397519843384994707394041074081315417803607832431489890431194531314484942164800559009219183277742282271492432131053663754420777123206030905612514715564607201495883216275878835596078951026506089787908423928760805755776139095179547705060284696483028701609840073310395235837108103989276300984629263722504324862100261158331074482108000441396066615214875907688520018241174348012190993133442694721230515325258960820392627842900062453808359480566424948841144573392221851508500294855997241401303917697046246239227599421261429825817170291709020591368766380166847087989783157317765959988084333462903180197591763701632691225271530671858429242940599768544252870738504224400728219020639340522881462058008062219981050447523336614084098439249695269383435478958419029012829268005421777180701860587765109688608227911599971442779098692857645196226150957568876991879811618269911193790144732791892961484304816866154462428397823668924519573600974096561584901241722145858405644516654430994334580115184181103461254659717535724879482658968833010732748810569519652620767500092449623363296344997696583921428502360195558681840773847392870752719765690534043453578051295303551837781428640590292319947985484339724574830661117694340068693804191858956194286219051759870733603294010394078470599104118732044604629914206942911437572089594519323697353107168394151095061288071672063056697404712957199784761261270930319069416891567863592718609129385632353945696702507275082037750846834980898870093569667492934254108961152500203842786765717875133970077651550553428966871147436665846059187119403127048607837615228582321760037846213227028936693371319520074204276886388483676089626679357223252104685317561370354111738280709377524849916408896474318653328611705855109204825455344409119999001227123884423755131752213321018872981223642663767743451355949971136637605726196321506128573538425808834131256210942066793914488232379218464355981024650020596988267234338853800524234323461064319047849414499146473793544481388307487198759370604938880363955417256803692131518460703722586070521094329804492054175252924488007982322398784075701968489601776309389184339528860972925805221368489881636718886205556036358074872231945595690971337807679245084334863403011062815258413294897805569213232072964042891540603405387091122440448624201757135163881949506352307670911076274612809712270497409711313089213433796181903475324894295109943653194982863773822800443041925059295187100892103399677125534217398415483409055095201853575216557545485838959812241309605355017228842780270920183133940353754381198782877136036335592557870865550982524325260570898628185140846679047661338521819863926250696031141128852160044637557344222557862650123556501179358807202434960206772405601459141313052539169854853628393035149801571043286386236385869255251950375454379533088614367329263329697610427141345824881644593038223633223938330183190679384112352771459487322144210092164621199580933159247947027449400696577955767393750784121752669342277683652917123947139693327546166213948546619367964768795894281009762693787957165096192638404736079224881380713429077816379766533868060935490300464573206828476779120524453204993886016430146409063715478348166831586209085157264382219895374371116203766251293349400233977777290571271108338357316065119910742315870754188258242283546542418498520287422638038738056845218487527295628833592242695014917791051217329181490880345451302374925174929517812862820143391900296734294205391211774474220493319027473986974385150851430035652867537893600803005194106791264679997642751006093067330645100788583067885267104522489003147442152103483415986944491146435987786189279098712377471976032775505038189725425593332641222626182165769814513219360589602698848999483781781492216999840965369396447031426331722264594698813226307944996843252195242219278988916267173195256244362154699548267923490770733273369028253745583146052035860226305997852231580523448408738499664547316243286241274975000090759878914547224428969753024310810282470628978142712394376480169306258038207701531655756912693116054345851150837307877451079833891430606965504758987913225267124860035624279112910768211476846383890627733746832618024806315770102164798305695599349677854309220356079486186455410454745425071272081322036330355908148149855053098977247944287641797405744875716637480353732839992310447003079658335549218310248279965560419443752499763654620060862491777945987951307339916796987090548160903704018897049968904580399399042501602368134049232085777122157922206405453754591972814028453502753123527136520584090218026139943563638081343856627432923935088721763653480487138035570752481005063183291893401868845409364311777064066617912134602820713994025682243012177130118510373881519598918491583271860121026409949117033259726766928657975410266832458195746799330182789703232175072921835810728325915982355583743718824448055131901873730889065033466996320420578264552867803037169373118091345809160050562869012612142216401155212584571569256429932327998564161484286764596390504111437708824555045537159296865541335905257884879092080796339560228124255757190339810166841043238028089145488870676562183668002201872891651944771450301496892802231523095999554891449755289535442058789896014061808604327328837724800913757053863759025538057342247849258329511369692704442018872054388109005072032153310717702106468329732824041448474694122423156543199079198334068890277211767538920159553976096638638795193002529124380370195064660351914343565166801074842286384417513145820871342785571548178901112107414450668107622326043579521473517164271057238027772220470144699480356813663380662185442666051670904024966597197466459962583520467393084142606600762025758653753070472441862511743920009956743279853962537908426725138464782564598779403926619735372347381919562764346438060560249200374538973525032594521401813209180385395070340384820048631549368324158012006582270369307582225219596562722308745683458832972733781511490437845618699337146784665244481914148814453655385477935570422961636275950548763139001602724446408799970930591264003481632912104700538934780842237594139566117498574611314094297419536507623270007466745626969082123104738143990470362737204581775945142151934055956749707289550739612243065796821260422947144775144474233495168918086381861283085472952880242544597242466618908283948485544999635535211702796295180008347712976465635576792696737969285239453486879102590980072255187615706965856544252935511226119907518278931628425008519245692422251616207065783933746111930215447549333209712140212347934340397825892301652373653224236743057839507486974457338100420405774679648364244420018000006136935849264253938394958373354152691718731049936052355888891732847989655044957371677638426614228892888440145209327841788995129709170287109229816061784036496622068889620983560025953121935964985226802485192145495114708927609981588426278395626981253143102660363837131507115672553588856389278296215621015173572180501066446593253381903138541489212685107325780959734912523871177205529206026490011836675756078078638649086912103761721416283713374720207432131703466054394990043580744571033929017089659447384236999751433211209996262476079712621565593709964213088429937201403476077468170539725232052472136001807635268560737179186095212042000472009459281353842257355529096343078819996477738358238268547789106435318755218797536048701757711693866976115361409778822757728075406954685598851449656440636115678067245583159599454686290239033457017760305981663000924549854050715109323630406872482613891112096317728101857637891633511867733266596960289330549338605946549434097420016746151055573701004727084406933123296982614959878984335184865826296120556359097514642753768826920701042788264437024338176233848948727584128447678169254421119849845872111993439750114120644077970182063804264488147114807262819886618403474763853822150157524168872862886591373300468584307938927938736496761094917029126343615512838530607307066895680809167003279209247126952603599808208822042588949557583306094981243210074213635685442375200806639054463894628558717852870665637400493610403743116864486001918813976275267818713921066918337301314889856787266486150345871995312399403616608859715046988565701392614826834256119347614430477384104808470340941703670697650825677590472759081338394914870739185135990238211193611617343894304861995062619976183685349863179562586078859636875562035098772057811080261272523990509903934036663450357197135224610030617938299863214933838690817511685045303963235592357752839553373223319816521163209143060018103615186959941034724002176897860726504720983879020876848163846671149675203085795770710525457824710550259583795551488180081641144843585936856311260203134781014263937385000165021330016171756775773536917098189924927275668458693498242260505362886075901163699499352602282288665367150062428986296808636993238029530171761101397873280327358889878236532040206514125720652896429561963411202533540605173588217378847958222471143817673029345753643832338822882065666250500371652324216834878663461168625258012809094041954042380279205077581885982795822166155142339036013505740837905795708644109131240933066863139117400586787387596889345352196777898770533483242087639845078998624309088356911274935961913752226137123381178437887598195541809927613911088475253584020568239014030769282233647679379652817606188243745741530891575665094545840511219457088982365405684175111941213822152291116538299375345900382355128447713850413492808850109678034581479885824248978229605205845348067961784831126513463806277883387970681215314050413007048384627358536926259007487549054286189809242656843266805609358923383158531683080581242149295631960243419885477194971627816489264322368974752530396735048228581592241498751116318462958290629082334814964116527790085063019466932591048353553714866314865242817056027227401340476497220015258375815573029833936427007079079350936913803963906213762432753834110932462669836514851988646083401953520199239082106492826488088899719619559719648031225114091126551300968847147664982595572251608903068631677085503605280082552789304846743375250316933578629518094220306218815116180081571553219525931994576914782851408568678668282822770498782677842825565735223904439447804728852072094483584473268998560951831229302804131824516982269787048717176268902041820611404938450988070006813867151478283738248468950974097600208127065504399053057176695075737691885068920944130689320310065968015731750397124300657105076162203365111655056235557548362300051095331805082299512985358579694730838548265367599646118976871962569129045756077963684239631961911089656598702471873660279384120016014467335141412535217652735837028432086115233658035889994939973701670986644952417982465309398686540749669580580952001325823737015479531309943140370861928252441895027676031243443256791697525141987105712488305577432438970173798054050378849889559121579417325769356447171680075892222163715513289382625485260324018865171555841884935897824115282343784103527379560749979797452999669477120122033802946100348206813414514339355879544150612431005143483187487528387011743257954988275817499940567190481954600369531546624576614760683277803550125423016546601090941601311000400309606662127690492788937409417652424900661478799259989154479836945247166988200855903454380328788932433929639633587135946453296309719615712361231553081790760176413379594788539352672514327734428894779688889053395166873784596821477675977622300369905493758083327503506352449510614550658044577145599097513332071971611013293707098607284799308837115106267571013192513817705481272644029523446641681972427813336272490398686973819214071218664723776976558824180062438047593574293940774307668299543192430235957694348810191351598502766203044263875905959871300520038839918827418696890218722131398989545905139928359012893783356896749843844667704536157227027816401834793895447359066694213055717337831240124273565774882913483969898579928735490198463363178919862534810243236643811685874385147023268785064932107903626082372698824467580788733886475342910737976945823051053293009623859156427504658514194236414160069559946905631385601470548187007001532804354338422237844815343379861478882822687504707989562266358819301615510265213154177559995060370813487759863743123418996340265849255924787465985508646211442373137393841310037595286467906491766020589092586000194095541755501831206737489124519659869021281771526608055504168050616783358680499634227145908733603027536882296411478656298902008514191021590393879527976519751764106677106179494785168582653913286514556566196766414596133435665475244447956903317247136191516717874408357074250139360774461156213686150114278052677788391442539637294635218948556662859431966704663851942239199419628599410121024721485641594705034624077770873808843750759358784767562759481593608528956052514942341366811517106504269534511552260044729509013967257851653001617344620891451223976716905569795903554639166306712599059029200813099896783556114721828417311835052691299678964824717590127372158335753665740244631694555607246152797884507381331618214000708435594036218851017321269465528345806396154509101511890187133881314572371829003225057256762133331023275590500654694644337868254184963750548904325172151659566848624637202001209207910971315367762571191037131537185793545568594223021538613966841442810186365713538746485667999935574549413100037223006478499459019475749385636598955617274102834591616814170955897033232770319643600104789792124738146547388200444551411467723994455440285841082164870055317742415164996550042719368043965525181667324328012161929643614334415725280277045487098173039468122935650960322836132438409034192722305175224226826033290670040573306119646210717208621183251812558545627993864369261489849474287193219306288605143950590161074357925712965511584911823298094858994082676007284028207579471092003777145996253889260394270186472417541676724653494850627200561612869864376135314678758638275421739844702644747245865077882293661937864358851076286098252864540614445769125862452262756565695752400354453784429933209327780745690096807266042073126710760820880434095831682614542876696187314105101431412381025165145034781968035720722022587028647333934453224295859570863848243647787898938984021491188940847757958211293431508267352143224950456761185869097667513076376495013176421826417795242995898542318939981962894897560037411971818792221882642983736790653250004655471547347714136345591973808775184121060599552963473484086606199763670894855907724596281867147196950748932866477503798392706146110215845957057802957017529379613228663020188361343987230079234571870650450148268308715915312591236829613160506016921991675981143721730566228420144963475943346976269602877758710010690188548667823012805382649109107837975967918156039196975433393985104387003994266288478800928047062676099535915333633779568866377657090657272891808926717312994184419156959361202030517929334050356393120174221877601022450341481054399719766237125631685956918208887062812038036387298071547160520162034577205805350175190034089301685641143071038517035417194753474771152731220198515834587527575048104381058976208116576729296134156686580253338285874105091373596569462241160077982235241015525863560354097557899596820294914245616973633713804063836496531546302912665742554684089365114700243800091788426920734255024088958666098733129936896164127299544041900370445587463292472119566408753148618561203746645749443606972668653854003038203891174033704517137434783958098656653086538919356198312556647424465774303145086784832842440174242796287182941036033913176854709298916787408489747950480435790199258111415740146719020369372924564555307073060052651258330511885055922184104697538389422223334349204382874400561750291603235150459751213565913491659029087562439240693458449290805639815931721648944620216859980574021307050498932387537288433101978744425500444742803562475102257416016519580930410119923169025944168883742745617185377650238363868253550689389512844323944921764799374699212814622522939466078286668284428931850087825557361361032875836714727573556974562399945239752103302186250168215754619187018235135770590746883077858526812312994268007372397186753920943130212598910385131891029696083828543695584767781007963849517227631656160908763223481324882444148608234396751581539537424772524008491634091273733075266492566799476393870852814598691230073286737508758418662211561128273174578980259135096575290737591063874584975942577887648532452867054891027156601128953358290424777434044841932868603783559759909664219915744536435100795248438431692079315494353938430395029151739232079912831094897380192293360884679665055868410975347497039101389065063227824749807314478083633697492578059612225892742649927705644794196073524387314462424908768146315557889066430930318713256387829641757535956963360322257909331894626649147415306946435137335919033770492116458597218857909561321769443179979777672351734721299416882343698616986948663550062815850439049173272535145448767740686201106880632145311649556372964352934434841438208063647764857062135107208145818754981277945049071677691273701842336337515578222284781535016099094580452807015185718932628883657239188972293721011484712631396163301212030100645244270585792916365535669691073991232112169070783362713895167171824319936595008326512005678509019557708836196514760043434734109830213733099568058571809742405225790893699944487693980800409572568996777392567488242055941285708008529957342086114247518564661918358867258822479063441617763732101418360374198751966983238346376514542117781728327327034756481695987782962091533573938929566076969532993586373045735157123682775042331279309914501948345164202038693497818750970495424079353156623598181016678154872524885787424312481570562721495101028918475276881764577229499179087569276093055667501060888924880599556824279687751380244252469354616415297232906670741834052864707468088608806946075137995872366380896114143967918755383901725626067835327079296034650880937769473307492879597017297302828048531530657470970382315278029645329776757672343281332248683746271958284377504422806995450414999122572415274775238939913479556320042838018416490319569466730774212507951511404194487816538734779420985027748525305642657891428086628920128274970872995777122377875387993984864825714257809199628508844478612799650693409162140233829995630730235002674152902080027576432087990705997857745026198771175315040040216564838497614462970574970812240336164830879114049587862607533962607032806864959225279398383396251624611874476426408815513729144093014773455897464304342892891873366055327375318486619355758818141488353068905313965157066498217729797244351061391793000500330583836682584711729495112703560153429019584444693659293478028634158806878239717848424771965973115748689617092910738135910938274084969915167874677941334619769996297566951557181599656107163294694935777617364653426003748192480861401249785849652384274243002859985103610448085958769235269088502063048343013874395004241773366912695141748156981248795559641194868024561572973533137145873212026373848992660342332061358768996706723198769627775704244232916239428277849695412325879603552555620718223763374831768141132613615770563731769748489302994362035539959640311087706426981847187171650384471875147391610750885843736639719880820709467269870503177756690950069991069648733092366012518869839783248576829168025184305734928188986743984497378649160258994339225198608616590815175180242843829469866380827445581800325071217590693243527928770862092317764141719792382385552718504049508241689964419330473489116925707314414854653809525503394700579743139500027155231597501004705366710818093821093182284860226601877717478313645851989951870711473954754976213753537559962788417336784164180905252952456335954893478960582454415853374049296811125883679020583191560980640402617261225636544942105756273871409107662026326390111015434387820804856813325573130284675847677945195883224736243784975337556623725045203502386412251885246323849369866292921331672995633117644987224637627735065329057909172011312516684745758229352006560203830191783810990082967343821580255208044798309342009783054658259497850193626262618936590552045188985264834231339898430097778855490180927565525217073336353879648347169824221797712360496484496482364017898181090034788589866823789983285218824262534209686957487920702194302596436967033959601154176616922613020359112009675323509926422030196299693367906044811733642210072587086956236549123005374527592876715279456324840747233036572967145075786393567556845547934835588744576772609889249746234602063099177659389746984352573347092459773634511973644223855528875596070561299076615760560999753476732754187777934746700739214943257946295008501534062631525153514386684321356542700902818321571334004150181253865563986271175196803189123518168846330209050605188396354471470006430806985275334189564634261021022782570348390466982242472448573608806210215546342062334541484992415172413257470181181582844310727835810328220611825643324624525734522882177289252950094256276756749535018794625009945744683459181430616610924325790575039159798817988383664161974001470710023568466922338236993812977042187061117893288230855299149312973131492770282833293172213255558523078685401102237466504551253802388024953590017633047588825988735635110589519354524215357003964414224340411240824649519501147827407742134093999477344032265603660600925594847940128528818975837856588770328536209771222179681821721298440153056394476887849746021455237226019792203669516261621506852808879663457826318112514806640621599422668871576182217435801838423752845291135530941333848704175940923634114730713443703212803144173967884575559809257008285801895878802832217513542549690413289447003430299283404209923101436049349462185739358209805590419134882960578377371656438772504650251399860017571377373283471581773912901321346375288552106738114374686197535615587449199889187326403403934895581244627362873767942140733323644824862044803088830462190257058882693894777904461577174740400495116351160202865852570723647892091024600875623310719873260530754160322055210280802531207645033434932456006589332579587415521675503082425561815895912883290218175270292119551329161230626500831346837415015869689124511364383655042679349664547077979653003787465506850050769930478528331719525203537345758740071291139066579494708978682446885834164400741104410676180871256509432424124129205853587462235971201731535389439436406048390628568866680335923639865568444713939213582502813897040830886690174060692440725918407440620828552706774128245284781849395931677902674817031075315117966522118463447950745170523796712091811170229330599708839350191207706166762496309357704083988532549534000266657384680651308543914729597673866372796317092625561000105640621434030442724091868313821359035818726216257878613412008895566371236480539721604816397446355792227036755613217153461386315084386513325649828337179943140249700251315730421464355056740197392692988447519759940630035614764697560994269633168250460769833129862048169279839051831291647298682934938208783439054914148863157305387397408071005172987934544004354458201228484048201542640772759164616735389134471916406643591492895622485248422993063270937751696369251903689698902666386614339721247415987178907732650669020104831587962581942432359517196804329683497371729506323960974047705085563519429045904527657690754301907587905427616880003098815356406150921669732497115662819234787802302139547186487865563901442507702844935796092522109298284546508755254063360080436522679759450323274257049793139790964418764065531135292881732703362027790930955867160089366671099691953442813365524330326634128230614968423297947623829546807732673700912841012205625516265070535718931489505518149747615016959777810004516673686161911317583232608443357633494418581643982602408569525299702277719895898418678306408898431089266536760236801020086135264162227556848784428908596350358221199834593426244083212600801243315359655708256178959730801103590524683334538792995488152289949725685712538624504988756701631200478728913283414599315007767756361938230169861428430183437421166915201979667199122594077721281511459494145769241006376501113356980526366084378188716750700358814661921299583091614272505506566625481376829970924090655793754966202304197614416134801470020671170032784149495672553401638982854274840386040066925927597405553960341051096888142295308795149769953484474580843022523064649328009023182693644962745272458672654461870582566372061577985878698995829829109375300260897085956378395567544670124789877688462473847663153190387799057345730340041937650216595700491580355556327159265786864498615114998404678366905071054819599694258857843576530937198078213982968852324660321241812962852440476224683856238327094787689903222572924311203955705166067166408073647531662916658951725112341561788553376770003211561720654163315940894487543137928986995172052025537064397187580033760261594817120363492464613846600793504081648380650359654909669417874828317276933587096189995104531931063832078400053393495024835286735608971627979232392920438628672250682961027829201528706233628254787021833420471655217219035976730450396506148341595227263246905264941681455416926554297613874958778395774793098246549302079694089469976776412091306124351179449178499628804791644801538536431471159288080284544410542532889321416876522366644075706769685272144133897287191786692745387720090689992031121885801313483377369760576630537348717264763644799611146049981500083381880444835863691132019192946881907158993531234620396092876081813803132911249897387375571918709635221800559045869526455766674704018801649662461155142936879149777239292336480176228151045997329652972606725315879198270449005487520355039665704158053679041767449132696643816324034007351488930609924852144872500783862089434252458526204211422584472880331623105720258069689516581573206083390173346244767255762057866629006291373019069156186032441753330408425078395660196353456991817180416777816214944646394245432558123668140897858335378082343741476170698183274928453724238978274555619617601268887516537546614670581619370304860357930768652165120656554968019433652554918901852508265350872607650093122937869342647899296041284161740765630041586216552961327374697548290952176193205254533546616820395502591135150149254851208798386099799853666315622221982826080988345514012287679097958907829827116039194254328874427826152141144695045261290838751631050923931629935866305620389719000150325138163544144043894956172929107096458036756815998806817839036004880251176654671969132133801996924615452576914371733615238492570872253760714777214499022798413089586417110580086707817197289447739667697553951457654133502008421639687945545753545368406212678035381060411571739391489423789684830612229403680058027657695888325079093577622927991005842756455596049509944331311308233149023082892697942748528034115567579963118600689912497898550042514106881775267085063966110995113283381952291919344114154756102335048913509691660539920830566321567694863371187290720591324661503081200620819402971642967005693080317623113665261991751985334793842333866778087933147305318557411636595178042355651354273297343994588499563484419990280163085785934266359351477222995992774995204123133434516015668625778989153733333000491103643217353531873515708077632488079392779537190063136980153474715496767604051897862420352812014782095180821612353944477799694686393531671256395105903890323961076670449959771298853448855356128944150150873872678998545837740056207967996279701599196474105403464360766028422831584713781022501660795083293944129924343760303118472001751838834562254969186753810290362235978555620787229325422657113608845216934868620808785081258766865016556977083616634106155005536502833180795515262123178805567243211402735063843852332600871619074156716346880162053087535935417056717059760372265807512105969050811337636824932063271877934590731394204662742794862067510019929642216679979789344362647107500394148051099529392207578532034418766542785142589422647533557486262597614769337378030854399572975575570845250272704059815072708081634736277962833837680582828491937164349073256020336442228004612031639464580397572753578164210507966736001674817655160458648290451252370767378663753131557143320194912545949753635368989827304735545156053064548358280397326712574184636066883719879361507771123379798018988526341225515839793498557638274709760969964380114764671125882881921873890212968525718479417901158141804942592340176458953582166996781063001110318923472963369998756051542999548284913832438100338366118300136003453247920358384234626093717138546680773290349549928711118216097322730325094829855633378598009942311595125770820122159639308540165827597024126482630954960781824803116484230105142535716201829999117412993367395470418314507465638828256157701062410393835179866213098266153503329064090578534729545630312907980143378460824017964141605457628915797938558347571523633094208187097967649502750697986330717822017788537887880143373554443554574864986523273052238104595904487604699007174448753538220225365613940653156897500187818259749120480662367022268340477341255910725348844467079925030593628677188331384795355200662627634950807425874520432651119239208261472935729547552734424309988468042145218824808812793567830306406056671416484969204276870760581287044964230509369747019271580686280897008061314896986564042244848013817800514423322659727275950281235209306608854015883047952992433316472979386613117691014780894376170695514288233006917485869482770815194361200844735036176090253962805195083796890177946938529331240145920576713105373827730473269859621162060534839488334505018431143956760931476329975986281830634077782655633461545918892081029545525122540477598474687208756931461908828771331639149520221120982762800186334909398005897372132372190453165142845791167381586137703082531397376380556644792811823733686565575531669334822554293806153850830423597690536624421781037055901015798550933899296881459272766545250794836593329443909472443712014518691610921035766725541212946357966964706939989993456357249398118312664584210130042508833542016447140372205507373700912353297409817468885927381752882349311208136821010135567340786756504914136966490725136724127934343685923859092033337953902813007771009307814774736877981602030583266258667154989583917724823653645014649504441978423673872479806239760316234676761725741576008953872803531559850115929105171404869337884667394797880835116580704187266287191755854387896246414814953818668506966738910314048859875542040196340338376826914206359242144399514774396327927125838425425112221866486995512611699184121607844932062713050920110126504894865224989998735456841795457599685482342472742038464621315448700272655183729434786296715787667105121829074615213051355052251995307063420499762210076969154037211737552498716638918736145414954759862022104095334604182370297121297476262984946813802874423239232723246422142211363802277963980409603747776300262210659638728004605558549269084859821553760139530289270804944672238447703405753527247249083075914338003299060716415748877083005654533033754724794458762358867105088833069324684547111090043398059575437346554756760623484847411822219212462266086466424642000197612714719705890631429130338290239203849273033518725764281765571113923558176346805580802785416590042994592251611051483409371851301583734265766779371558113746803690599175858129535673908240417007950308957133516139723252708102979584344908172160904307129564038746461913838765048086999631378205403450145255721362643306314442079299767102917356789596358420345132248026892624936586765844835782813146328233873911967513874004174822764750885676879125679961331345718105345115092926351491754618537704008279276007152486936983114911169899985741025206022490477668704756212052765469554358240382163984998923244011871384267729714677896583117467347468033171291868078411152308574659676241438814630668398158979678371579181996680101892732547000086717939878598092572168454953962578137883109158885223030254015125718010045866148783654964760091074674086362291944809339528559220199232470086344986758781404894679195363017992380897974339907904129192454341646955157945257838649661678071533097070266511261940030726337282012905927801156607915077953978480438462665324218267791261821370707120762715576245069558949652182510816869137268426860164616469150105313819664887235968812149530775712337043474940848758420598144529985775693678745894392214549028941190732228510200941392002417074115264678128069184539969031055643011418508128040249020704917543516070076773638584562410879142154555083805726145633753201222595518832227659574884217117747681256152553978872502034166930416023408835091009506777727951499623256623961392008263813958423274775237839569569708769541229497349533279252052630314031289739171010339807861017329887704279074600518881643620845131565511485060054273672300609517508782740701999131359270404158571807525734970367060113305923446203234000834273076404442536547488493187515265335836448809969152589622709540876098233952746718771547543500674791758839627926277076750278351320110429990426710256325942096629251686204983446660003362416747802219819656777609046153362217343980687652918997957998024617515404507141623694844826579156383119351798851630735760773713836399792689039064152942800866519437025919042001688156737015086029863974389865595755108289122200602612464649923177547147762305682289483172095903831599925009225929297450567810616787795658004342953046792827730847263423495145586497734240585823778532894151900999584492129964361585657399848987732949883700428497200332428553483898963911134958480607205980915165996881234665238663945028191423497717153027000861588244750637538527330542036150020149752131197643033470710518441700289671503031210696770521878563597898377010587251149456304475555154061170432931635682944139511048839890938780830382581232147637583573373202360153694418097802660460020418132880509238556133317649408909859498254872687381518753668247088649569343247552610101861471503675950113272924011284766022663220720584267032927617975324707529544066553201537159974050773112760228467962498069443551065092124883972526755596429967563532460523041867069652215243158543183227759100263896360772127678598579904462159094941398640422138045837418796695033136795835034516914778432623287723492355939206139005969287152753284833611320559724970980507509967067550081658633788858043609140133334495307031703924769565574836513093634879346677809617204868027798147588953241396019052187846579944831817206518710919770262930318222548226640095164943632707143202942030774576449459838757787096278168506401128605529219838025844451864908246520761189015481612180863552807886948793965856841421478421490994770691156797025265169236494490282902631604831000011604463124635000509802513655236545437916436260233626973164667396263737107681936516466361100678112537700898413151144527608895332965419103443911725173448445636428013479175999840084829423223955479080375323611091668021135953310830851390055511556724218110176100343288709790590973167076063651443256464934060107429782952433317487653876147490458150526534674844921019879096278147003814492628036233874829893761564628739180853800355218627965636342440143387083975812154119719165312794699346911343753008990580537343884535353441379917474637196444294813370655510911157023694271661108516761872337627856163452294002566255198903046747840536471363040731647864788521286235848120444120838165172628744502944538928652106479725755191579093660285807520595430906576805966664116095839175543305782970349242051532457489190017584758859880695052894883546544345434960518576353932949145393417327316233777075694967091399775436052183266243995182776878798667151248894484986232273073654722757882101926013768411362881145825929030323935557538964760825873152987039456905129791944701424794148882636260511754871268569206509688317412170947128778856544599120633627604569161940998197725613404234240088908633725172424524496431171864430429268083049443902811499647369788741621672631357426986719346436207510071321952643869862981337081487122485391462269992640358652907060265560047049196659576911750620422209933027300963846994424563199021240128732560602099332651076128965998249285301646532044279564640378160563326455610462710703000923151736843058424500538266334863955944464749701740377743006951792677753139208622617894338666273015603660622943602155103244550656798557519330663614823935442001463017055947141380059383608831377645828715137794476005442033785848042660419646388316337707206662332464640728064639035477067406705797788701665965039641669440542803218490462950409104959979106255119435152847380518936192923664983976100523035256747544586189140801959588015676084885474203174537378889664112630463526460906313903777285024658672446361700146472781862274663276646260044717029072555741338399060438494868237685933080162258328489382119509277609155394188758503363258281917265553795581390711307367946063540636293274784091756046914165449282738618080676252502011460608786774707872935645007081740505248176277371875433221576552790019897416301752624017570108616890859673258584117501703748912806162858631666368507097520267189049892127630132841049715890747960751690985090832595059534263788260120737431260723279132577193266099743908927768065035776511046442740621324105020830100784356426165390597428084789200893316300882890625480332017037252144757112934280092599612260078557297765408079727553751272011134149450268980673160445183034237063931780597886138214273723471110982113583630051169661421866355900104241649865033620192129379668746418560704848793039707624711425666559335685621483239458311541470179786560549403886055542935200542050598184280891221715907954510046146758162081440521355541409406271005748533553073957787282837937555570730323319306289273573316294144628635546280428132752852836411713066786281400183655335575819943491227730070735715231665623000868189575257034274686127927095976018676934188405959821470756624078185399900193008719454307183597116314322557316507294871191155280271180363886342619705951612221396942912700307124575419517717189247252038094333045167188957408273489033201351492012405896693098150013486538130430477531729336400011717250176031807140249960826902113832636948455589893333405202160801401691484648334150288607477995951120840215716883244268350613330283984935165560879402394623549192393134527569373371220001802094749093195280736070589366397011414879150265184503176864887293035373660919447891411484377233635269896364439310838396258501281186097679911009963630205388938324185905667213332740891399987221364359098211700220646033491251778948417130465852277873632887626344576227221166043216697480415972546815238907035973316991038219197666452833220279283255071681307853979939440575762817876371179147299570449595761716106279760320284768899329638890267835948087163944514074905614362332267935515721071493783588777814445500096684116741682394852216343629139282367316173321181487650886692709110933350627214455872165700351552602291686557684197468265613563176875422914670428819437900678599223561373155430294874922394744600539881622316266836132238974735606557210037789005693205922998489851009943486107907482441807127871861141772543742577002235870244985964141352104458540491076901332824860750727503204743860912817230193420956317489981704962663874558199120756598864852545551043877293643992028566801377343772993957604176663165002859990330914132596379128481543854676338195410488583023073288691676633468028305099929054072492415187651744593432175371753332354997637217581356885852800873197686379413015931531461309604839142155720838221860967545970200357741469453732933269881065977585516865969867070261085071540345275053915738631781533802365353229441963783758019944749873289407318995492076270739183985287149750730486787643677095472728406438320778883320902801426503720936481167077749028179275771663030267646432021072624271948859008430188095549194531068367486612843717400134333248212977561327461685569772381453713347067518210141394576773474117924877270877409040014091472351903978776166067175568663311233435381966173307881953492268745003643836247262887080295037705499858582991367625300433497809194561306102209900204887120307121099067637259047801383224959215589927673390921467940931316275695654916606135319810881075338261341710489946602141797948608401590782924783877852671913558601225552934317497930028574999397149448103726525593190789093124691341264306551132832222149782228431517940557424023003747436502559375396197031494101907216511051081319309455517798268696590176593471150903722096465651350522723516731820959128719866834595355738853230438452278824371366783818721627800828456344530129654654918483293900623118532761097811321003489065809184215352856003375024259543987696526247466311650119132869113805128940021010816148400876146436424873045752270417911848945564017242230807305549452970199148773920928261682869540139451552039474137803389728313432488213109564387276891000008849015035521272679830272359288286502924415969131322097663067869305081046139797285973564355864411825396330436302855785157835359566548571732234931973474780831216205533634883549940097774045231108569919250854674689653216991175123614048678402621649106818001642662120372833948359633136521102369328228020452439459479503474734400444199045098952268135434302264177296302103989258216810484302316378678858734165996110424691504872183330195272082040053880317447369523086309918691552460969629720028672553140422320082278493277602431140446338836153009416876808362178367574312291312790461815301377912817629356342718473504202215093575674148283965101659765450891180233267482774992026059838210614668717442495904738262398709258073800386588593117413446332740793635512430779523882379004940875148589754186855948893092914530421058191947630260120085359123096951791806575889460732824698829701671293950933490935918227301287768651334761223878623090336124021224596738016537990782828033028433961705102934197433092535109090731276827735103169954709695060933008649671285385549232828039217834622238637501660346405574215896270471420566815983158191753819872584644994432435114770735084161583958197493515989903481733774879957782184991724052569748110554486307744208161996157591356651718805779708065396343257828113813390698484092936282609698834021268512517471733910405401145663342644883775778588627250990291021077184940718603628307873941382287417818631526885929786607194289061810854979324469192575608968684350799581899820949787010246091816906786575703168080535436323658510329759111973016659148126983444669422726593987627514993290274169331857867738265503545733133893465934189303401039777229848556696008024382990076347924837662561662643248546420260814713480686394461920850253908972992168751038688922062085702419219891383253571573117681301513906130837694590390472007108596580720815072569214665589674152644061664698023650430319510402661592821697024848680574939153401365468691254340519998019050369707327083131287322916722627728019757638256223689394940691007128845677727837573539012664043595680288736798163805227423748669946254184965033557722398524862300781244126216912448014871265441396583320723324259772367263678186717326362598487680124789473324050643041890452450532741176388344777808651451504347450890003253995516442204120845163411079168213900464242302606123662622687971787456951862037724086987828095521893652783564751327200355488658132496948100581868954505435106936560586680749194604703475272406774626147365384694099837156247523703006450067953073706975944174182782005498046283407921211376064521593170373261759344969157191789253058215793926076574691250246067980201647771757933244840730061054005622300713520382870832500803971483626823220292168415657137885479364742983474853255838111184354607991006357927067358952626877516901323737548393681219841336898368760923748539351675908676907075697294405883535000693921901689473982537359923124067689435433197791564629871955511125788624128399312285728396340564390495057089172490953256028256159293205527239766412578266808420069662204230618540574609237858245216015997816109889130796846471944020265520526462234039261229088010234688012210142940943419734716218453042871674858667104452228244683866517179698325712906366222096098635412467033726528394790942294953001622742145751405550482774665556007297406441524288037724750224057924720748476090133760209154446796987412411817929196308864487681430624686455365813114947903499345578953924749945198990844001119832822223225561798193899345856733360891536352119703206691710284629447457316122623446806411539605994870684852059406735411432997646558203024687460238456890688949358889445710971122127301263878038492960410035221053380199884376490839007148513012770432022598955216076025544417639281954780589649884741881744487857517120260163976119119195977504592487765769475888244247914134536220195557244575502699053444926417826753377324812592433180960011781697351698563978775182698047058442117021491523246120047447593525523857599799330492585067300454771491986871433532951072451517142616732173787393771300502381304820734191748295322837636946765859644953743458931422257081333346098620764196070959555581225079763052508931889033034760790400814491438142704236169014020984206328684556147149346263282350065625451252117192131446764297699045714045630268982087535390860873571500029101842744292333474118637728203411164312566818213367964132559143909832719682704947668504881830881926518137062434613308682315739291411452277122309840641031115195796003727635609248569107999627461265075926115833006501338577567114293501051465659231753884074723910462062452764702435077691379988954773128687182406515627431412481812863096472829348656533466543042992453815325091659566073482005622372596210361527583158827933397813490387962163213723219079207085897455696245925968932081777957531859919110311000559208154752488953096113379260794179409824987730085698557170926669848914444301829091601977669435318941572335013325593239083591139095167348356906548004600959922867936169520004250064353589872444368231779532771162130799382519094676006286722690188047549531814274480203867557242906620694357983960788759218183869601486831273012769172755042707546721062767584209296684169518908565787879239618236202143447529133747263516111552082995783464522910322625846591977385814638524323467963471887854537288506207105634472460100576258748839646322139600587267428172305219687406677807272223600799688975931317946334152630400973249761946044615093706830486798147000070874333142616080832453253668671427164603531882063038033570410506447649144117666187095463123700129266419319281903474091241567491004719258639191996979070193935218421232950873189849864492777636724013863649249404520008689132214643506861442733423863860628767824452295231593186779306835442676928434825963530772358977713728987652654104190240449349584499057845490617660295883180849495565078792538749097930219357399018572640712705473880487002700479781775545919472851576030017972682826599476770207250518403068687356378018322149939364400079100092172813842412527884152258968547341529190008147893222815332014643376096084072650079257813290667572684699184695107119394927984419147451157038685419225063493717855419442137512060554041217231676155415399351210961046821757656251921795259471012440538773143765813339711963184321001050827519756624610303676850730045643890501084384298999542220939020895218619028714368351724196343001877902294270251723575172608640471695614407700345974663808453595148579301233526715765865540368160886498812239659963497374679704409249887491992734838594146877722474703911212888430755461506181418940806609713259499799380533140346727056561068924899433462462902228777624605046623163074508886162039722631049777308030939592460960693829945260413317754560197698706118373193535366625349264539742476280120887084086562734919417902338691977847301596081669893130480788058490536116387434487904969064450772519464749106066191714480525162604753127180803619669285770554688696355575964780303307856537032923638878237763368112867476521477605141144983151847120172734725859227872496859962747139479199252660876979217508713991493985762957533214192734143700713420234180505985373107552892788672805687450090394903073286539419281819861359265128718154661543813906534799282839843214325743575060718845939504806303424706875069665863493495281769411602748903139846839722432917417526629091355636415693654395733998580844372673233916546113055402999264362128723563758739542227409040266188059023824943720335669105323523540010687878516000657307631656126788539537469438338305555649416983072215391980970807481075809017970190325767109582780120325964315504108783008544678375371011954527531574020984475775155376603019653667811753887326398103801949896925494600946261867700062815563489125636035707413214038479772350826160047830079854616607403237667565962370860081643899021485082574482689047843906499542033401878711527717069912013390241057576045078634802098080204344862346291610471192437407489191316867463529809045775080520990180839556655871263813883599198269502628797815664789376678224832410448544300889273986046204022661179355919832726611415384573226536608050662973233479658080454868928448865127550598242115560962106601405226799039635331139433441254330999636181256394808251409804941431304777784785771008794445808661557182229524195511109512732531939746956045084800600707956675263650123559776979862854102457166494949848431719845043568893444944932593000188991928989867237919433936164571332049677597119595226560539231846989412989647016566493838395122653764495056079978927039828509425215364518830522331342911000567192639131127841129556987397656009161559132737192256069156927751192333805377584494107080501730074513079084643122356705147359760511305661180188446965051014674823431161537579418221956002838457064932252337985870895884315086274684711370233898095082325107616911958463561179199192873595113107283973970951973517458283071411131680346721943398540934899716656548945770776153865427581136879975646366662816420824664606901900559098024116468817489622099502221373758736484952928688912935557644152539040161638142892182822773787556524601496374609237172859884315331860133413204115145674913025646459757157318175338485225723650533710473277441622618601269282979310281845864735186537970832605927235948214286519254088757032646330406784327930255673364534546690685603940449717189578358840951949165669679398054119312282636422174903661846657937524906716427918771872914572850785547549437596098649875938085457673424982511368702291342582340232814993372523478327179674570013862931682940650593413783045616538011531743054315595822239669876166555856939447379943986427152529757731333730089921831836441430052334406856751599099435748898619422268709572214191772828391278606526764059167664908105767779045149251677851185294251284114511401073340429365251079228551695751232394031602441238888053305524219639584561579192697153181188804466959358670839278084279035162799287120131114808615969846169176298396929067989813459549836596753249624415315811539835035379138123133580416951726144693893356605495821363090381560282971256727497907218415176626876594071111412028021059480480163417940107378864884770644520570946847997240460511909648353478022484337504748825918818645062870821232273824338064646176828880012886577550567860475901312129466988629572575836310117808651398775902664485380792754494372211857405012762266388853684182329701027994711994580383326110450014682299665135261661456592397610120037089828726105390994570035119784950380948603200817538696623593297614132054763608967242614961142589554530121378919999728559383196225734396431497383401882270744768512048523758796775718967394401387559681240512815928376141125643866612226750765148645091800949246865980724513236541824757417029289621796014069778725168931677441152899591277763940482549245651518665990578411673119926218526823844223537355353192162067857174966810561662211157101761255609956663917743122986738195534584518745742145197871958520312083062550126123811007369195105912380237378155013370670483466870636237297699494859315444767244474131424425064967859978387344031813186398361034797306899334648791976572781064345711952955997129385106256511658132589477433108269679935858004440786565400035481019611452782973041566907723869673886057217470046638502312184343072082485107079259284761233348674607596459839881623082658444386719342888031859373746081435403144432725432850036073196162157174268546319884391527849972940556636290243621287999828005150970844088537938141921653750816977956589235604576662703944681021323293704909865003746698129452147827165987987343281064015207409878727932957313521575184040822450762890729399614389034367521193237060481990256061352329892611488439359409697831300270882999347686170508327314538187221755927611097132894284562646989942809065647407942590755622535682862662822148901793127075517564577329272194364866613828555242935794760303653281542644969053465705389525959244526543679563221118325101673888127848482163913662546325491979152870946812580459594562845201693843507988189355925599117369733290964805513986306929023733902092770742144303579614191935068323056872328775313992523242352812702140119168146217635064435689606869877713650869714104047281746246809616465071538267282238703954848352643841287425099010530352304728556758590404962975047346375343581220363925850848900824584038404577497430313216987467984258196785956742129034790665897722630186215924169923930283507612859467237966702138484064437734580428455011131174952434656247539466709043582112084431465099118447444461054267451656484240377461838034674433383171453546420413896149858000930920815008276689877902102135121887446884689526127408107383341847472425956705070257064797002534395245429367250339196940545676921643557145219397409853432406062976311934454745120052842967477001109101514540504841554628289755178162715781782897005167316557055906679364607223317315463795331443482777269625693408680030172660130412998720950744662169298119109877797901811786629376885526093060346169824284008394000175318056953071970632163989261111371206649771587359738157780763313341626570354449917513572144543729942691321398249061888450816670858805622495332067554403304642416856859636687008812801504983636899258815381132616378263143103213202361316937789486888035070508319119892705352556584348746658919996790167340039445798227215119380857737200325560758590596647574681442731558925123492958556843855687220320290769951894312372234160073229362251931829103770949663277280946376918385292329740405593188131222421804008008750143124512946765745254970250628393457427281432364755799088750397076676237264898177975146676001431784825937058038201168205873794610392302774636768409107806838760759253896759488174467834010160721729360667867710592294491029522295207575335710388137575634933822812907920335758204865258828828260575319208938022525045326635563229206619472509327732842558018221753728131200842567860812205366852482286481481172754355524245149059318672713709969485202227886674983803002548145960277112524274699328620785071551691047193891921014115788060588311621178972088172328023397710499182939080384077512160386948648253082679913279428954918948360366838707125869555216491645513520784952450937019467468234787991927001278352311429264236837209442198267991634456859205943891410282850477495109021124669821202548502685930443581214408683903625140653634067343157199013211576234278198122123733130944498053994119693246294544093049181026775648291661991956494195658481253567007526729535897322629176165377299336309970977331722581650922040079021383781198908697495255737071480124096241229587699374759703259574149506855657136006338692336629959174217409307990862019113968651816905186373243019198227185952796894249775941966590551081323970848519226159829109032384622346673166635548172219846479210252470915096989570812430035314964017025160535324440889791837388854444045952697664062440915172271290588058926230987431290524413552146892635595635868312403740349502075873898728541818996137701203473347931447110119421852720957294372162370298907726520157954713853447031377753668885698372485800960101559639866235771431979513662858702113038580278638549554506152794639839278609607013784373321665644331222274937082834628750384478375245266501449474521637344847417938491301847951762457665316596979202739009808185754855727121434553224723280863481437635240098665592617953184210672254751786248771256738535127860795838237081364858745662160825755241772434396482064872186537315517165524831285867400957133007777289141999878338444334667793130106221748012183754272156092823849349766043610105971400493322012999839888684823043425863904031366190311205161037071445782981794162324744165223404053348121749733034566343049857326034168798275722385378977944244827873909941666080350804112566199819412918504396209809013702482329962251006604139498759676553880236152289740654350470001414112789445473806991656427292941170386624147757144311957422327436249293016142687863260489088273340278518411179590773103665330798698631163541627135507613571526263641835122675236612641167228858383467919481779524817382411613540081951408343488765899238736137267601499538464996866664923198392675840147322971627911086721522697385808963219072787240852613629439455583716330331953164047552388794506985901602563806822564492024502916296543092151772998553044301040257020937144871205238412976826817336991236873545308349174653000523498504361619379497124222359873362933537111297492772699980094766264960421928019484243524492562174988576464585350928287989009424970771614045069288587879071170156276053921517317676434791497497041716656849467982581917212120715624264277214530727963646844664718298657530361061163331027744034049378862994331881651104256179561983470271355820758453265311832693913146460288484531120458747925359962235135272156114764807555513516783384295805616009559603330852145151392874876062570914705322470539748785027893577472033570275718910059227284563616627961893833865874846568846597604643975722828976395404686945999269446290945572697265147370186750746294254868536229866135200039716404689609718921174008960309658851637508736514354720694972771467082199571192675852768619918939285664117872054035700392830111899971264841880512800353242033684654022341436941921624912456101960768367288441708442990797547140135180450302553995798394294314403230661566690621120239105290484741937148492517705238501427645419191955113474630039931195563510848269939462889439486307154351632064003157081963086096727477660754233793564809107281549160203471913193624038698485113333832251178035325161776922679774502868171285746697243539769827068957568877029089156918302614405241055389082046364223658198876581349476816304448927461517832573881725640102973901427939298953805307522195863181872920273562153362090107594695515496609192300930761965467069606822904219773478171042823130729947266687188149564404472642780040926243078714425871713828003822546020118855147938582128669146120448186265194035873026794857974208485648635728953623102553531642348644414668748225185427671176655214219239440242688050460606278236054994239279183289219718282481908093031503991648864742157310751484481665878470267026962772155448786898006575978210491725955682328033002828299030271253386474219861726301365277066972330900750387018279750584677032083686594278661539416206944522126606758668363991986347027411342519854157052724652410789213489118095395274658841668707476746608203135728815877099458949314089192852853599357207364217468501880307527205935359241459008505664162054099943197045674218246361520098937013389450482738598192158268998766587245848127958068129545095902471503599849123100919341749361207413669277269393647206769495213788254024719086857296949473539976242398435646135031963713934953798337967245720193236472504226508778186294087416274698017665029117431010185194355547023164220034597409048849682074392269180307667602135053013038520895423016910076950950604738459234834661948707939077237530093758590461730647021841041326502249463782285002527646729247127956257297837622623068426129992775145161612452429203534729163460243133803770379904879218454290216420213626962487668084496104227575494248910257157038218842478989762123760999058618009657501425165293525599951122664844799321116056356928719186179597261234200010625560137259836919270311883512444855141254481896128158745339292676352563182925589559716662877420688989235863618563383070836102476214901076350234752698014644114702112128302120365811213151511910593465461758370754022209593545934103382290420780032152286263221664439220305490963563856891484306500229126119675097005470271073041681538569000920941294902707505131341626070192183823287099209820551686281654344088200324603931278679417188991545226399142034640567038503654417192427235056922370404346002605803856987751440100030018837658952378439213606788762555151231525019032410819754238734366826810198979186952820761443319971052036460678997392362070825218187112729161489115730716560345011531797432370956393494263240152697271455686785815459040723999733336380021659005089529837013823605979865947661521186643033996538754651390691379995614400151449282600065964216304432875858465721511909697880336068521691805217723107505194198623876103430208450662864113470919063574979273342184963823111243329850177614654350638454548909007510416820428364753312964059394957725162734132491233807995291322328849828824603702565020933537821208970825085390438726058024720929887284787830717281924005444313050284538598243949551690169046653425862971220951997397876458616997963175753770296150053671686262771407272537767076633381444084909523810614635941122974719113042885258426983171317534105404297669771938588875699333323352716380220519550174875035290501043440339184167047321348674792897878890514872199023391505938867240767221242241126694201927963080120781648937375934594504135317147593584591107178814916667086641665045539505549477423730876579112625719249790315687027841170202868647988198359452370122100579655852608815431573959662821209760317427981715055946728173455063778356400144979124502796863790159462085949338474518397463583131770350015383002145821256500588838692728600865806248123392948501956961306506657807369413039649861691810772532365690693108811566805548716721111928036635648412992925994606940821858371303296299266387310242801353163349702621800855836280730237518312233468252778748000293234341199133868362651205734922573246479626277089788715397743564545595125775141938320961912755786507679844721634677295364490608781357572587944889569515735777194090292814815993072694873719952837509034496257879875609448590429282809282572170471365125290375070478634694279894874509536949731043606433493001099398521069281613003713993694799155257083581461040325033364331176799862311904511195457436738303657561818397426697500512165777154072209471352188887409170717433231211452452031320993386377867758504134464354067761484995726455631068798310086821560200301608802506044621560871926824571037581147242819552167676243411664753624596646388356364364396078061734702867010579515522677208949872253643691659725373009375191785983929314714928350539152508391891749645142927469706532530546439143700742420074630170699556385188521052763549424444449084563826979474449068351313146730579628785945028904918425687915411186517476688412091797738266409940472243941237083740174186018939457782780006811402427586253761501908789278023919479433191738139155237497996641715981705936598358882818367776083017818471973602695120677552564540703651013733351730791194897330300894147023528537895956989188702298592296495011523643894498027441004571157104975894743203068493258069684528851177525970358959197144876212908702030392653702494746601504981667822344382324000177998159175987876968676519884018345025830482035545054279362554994810224462345149801810910482416273413415231880750356782709072423597281721358777155437617726375175900872758569921085675498397749269965151696727609461998917212975789725142781039590722226355326969469745858356710259688015253516363624409179505211402252348600947398033592302708629854187161503005303981033502307783589677988052354792552502616170664544952501456707281946695053398459085689607863064797265405385177860180252942353458765065880174042653516280208187778767873480526468149743778441227101442014513142534348357759701082277806217705246755594101425786185090379198890423412272890997878147709007236232089347544973257465407352260630690657951581012527191051229834822635801332762163060406906856199077266816095958025675740470938982931449546134036453360409808670010062517510588027532373131836570692250867877721787791458423116859789404917453566201704156329388625101183511014308915544737054977737201994192595517197013228134235964509229434975729519593042198279621775305216691381824319238219305519022836154406760758725035786630825672060618553896514901886462600726511690173643979131137111958849458966233279262757553221611445433193090254315163230858732831759389413552868203347200475776620474581193351418484716485876892387681427481121858385296799232807393026987711174623878672862032856249327672836944553960663502490557867077863077562906111969041493410031701012731352871851604331601888111425422532283312970802624142619783374263472182215265449213408169291165191486723854219044335168644452245166566122936204956159773971462935143732363854138026461333357845384180245102836127538251011216872001605446120337458939709658893899968447976368639739105361347738052383538711223614172074064930536569086258992891919163510771589406474253453754569591723295406941105915114037397827471009885179265070448952277164829518333326478748316093168629477088787116902047797803847034678286877348907284363863232933673702465435886384640219730839229808350394722189451861302435838632836973966466506293032052492051654871002676333400019822295318803119082842022564583087168166368635043098719316586074696443150198218472664792153695029466571368847113906378406752439460810967550807926022713063906506952906701080093051057992980998513466671934162410968152758576863256059265032153185101416357101137637417896221758850837997529486864538183629192442945682774448751532762159888625041433591994990477198265853910028545192989765590464785828904611905922794729009356794777789940526759072574083261600703931234132485978032967741667680800466754807970736589041131728147702240783491015141994569053629755484860875915607890130232061948408603604487921140875290886546562634279713382975534203295693817103307668964661178634427218729574710924936460501372977858378653978429076027082308358073154418319361089021277410259108770446039296979197138257771420475747552280799236942978232876475183480390065806755550931249564272347995785880293479522055996226531251109976453256876605776134688941032498530201011449926192839188191539339521682727535062915754585651249108282023375501465136750031649623545571897353827708678589418709880094811537656621456759018671894020779106301774249000228190089605753608672102183312479784906211228836266058379856678271546839672248240616651225755068041328832176191867221621805200202923012266689192162003177312198825824950170978198971265090791321948989829083374498081850313007235526671043588498241857977306217181044443240476952500231509790806515744636426861289274665779705983125110368918494963741286250108010938625080145190339754271431171654250820231501685223755158458296365862342730621638717870767061455068432520095040642846877719421888322233482021377601555874782311366063487141056333516895381596281904303823482472412393738404795627336453417144634454287969865629442468765856676277537907417689720412845105115535691158134886280813825268527569615362893820116397578995245153369564884631384817207687287353529531875643383553701256724436861364122073479880601437861602540825303755790797259316449487266181499702318046667446722833753923376308470629991908378652030933235564285209950432375581576800057335701644669140109025558117410005249511113781278280705730705550997005689220548311485939654240556638023868491096077389446844299689210252864064931571520451799144429857930919964160686053122704671061299696306995455116715739037402983818541716119209658327833737381272334160318822677410467810535584857509059384185873898722192954702552981053063180956135977740816082233620500740368853174556905560561826054316881497115540774286098005979333224205830714328566307287087722407678109044167539070598572494748623705594045490269051161317145461377096697296551466489829200076551474754895424044423668417630710496919446234523647431486334402425579325317856089467949215227842010012446461994304841898261233867978883281571110953933549929491893890083306715395104284777917964006852783566973306338426842548321717354752149208614629978870035349211490675924923714581334049719907645321289240287499632730049441317725255910863610579821583638387585436036597402013806054766672119542000141886821328900177895353561750170908631694763780824771891947124710330086164871029959262509223152087521331949399769846986281503393922845958523676743322598197847203136028517508794623420472710737220147766815571269132262437022924908617632470578725031436158170112239336082383527630575160401275165208020899187723246473189198820720261299293113885412774620569835719010133976554222628667952389173195217592019288751859157230517764453772595473242768995862278828146068254195977692755330113910092805906261340042872500878050807972438709647168178981387859976208268837642051700018601415364866169399957856536197820142023752579395399777268001008950052979209441141293260072898151366740101696618169229276799801345702971330666278156105319032365896556022586586688738896950488001395886117474166263014958657106634922367239177571812014119377716818704304838217361715345227010832987285665103152780119288668383472926021989660663803440358872092631951150473471077681406966327431385449638990361298304654837031747426390708480015061378545055140529606967666167685822366261993817142637643161003228710150076853639450342064427696298507476629220605842624352012295759690557852937234150253970316954495328732883062468866322104768816593149913374033132515405497770560370316568653475263470402567550919345238184418825612240357255837264172986475663961164109573130065707669049677605989107645365676467338515404015850327955699526366261998863875144593159615090590260830616089926071380665672242903690899388720068303166796164193454887870924356117094087875402934388845833723983777026861022368263172219075816093187587740825628424384517044555706728609778320025793834515482266293316251072549723722521967639524001473102085102218635462742096212717563277634876821948567285649896722681197308683430246624066414040656106443600685138416471629835888122825034970886218108704773489032360932168666456079468814981557298689856478845421030545465015847160551663708761055573687847277788536805081063753665603812193150279556064550319048054425650913127636516859239635809167412339636748581246004887268158313461779163077022461908134322945778624056031234501516120073471755822811311094501837564834178778095308015229583150454971172460472470090615808341791012005248753545831825180404951011323688931823649025974432847764850223819906190460562590882322965996474366649846331246140513117125340080734399210901912657421000592747474892585794532519962258360853704673128493519779456510097061793030127885161400888463961112729691379283795022481016719335066056740827942160518896155853142917767882659728296281032521221844047738775985685519474348033044306870301214721104624000172351401474909458552919265079790878530389319253608522765503025670507143858725966294828510668873934446994754318017191001028152595748687344968341830530795431959433721912411059757101888397357444565432530587332469559800550666245209325180691382333102406981577856156076401037479504184793157832863161223698845683830002412418706031032000229017301162867191548457473854137552793672085506105379106496659225726614103195585380261357938377081871001764183303390683107424320979796185137334351807731607336616573790380400520797922369439176609443011102228784950030082538895956472702002418060990554346172243611506351988023133958502298283730450875250950829348425533945723356618015433702830833638169460821692068140778876380461723038521065680917571833163531580101478121838795009883550271627207106120831530245649193086825304107711550216608911849606009287529323183725283823025368345841042662077723458285142141163408964080291763025413874405539471187605552147470753234719315040191582634889321669737966731857253184940545346392250658976679339186711190072367079726961495860373180197980080608362501044682614909886767541210981397618601093941003911296009524192078291651276590888400391372923334559135558700199540066424364559907127571961702865322964907461181476119450874340806603460609890586280869320143657805972518647447956608719682111215211688274332980939606779223467050837375284496639702214696141478609437435564882417048441471199677253271492260136102656010431396284414126989440663988748803256407676180106256653502115046285639476515759601404102090653425656561866680433029283844242042236602211736919262462955350630626691369689287974147785804865325195622715279259367429905247225988257994754119932675030735231945505613316411025149377628764049473825090616619517783340740717442152615446095302946691149636847290859733530446020485180840516448869032569920493282215280799474633022817301854647876484777133972156329536612731032324956700659790356094534146291638403784744161922996746521804235463512609241108115517705865405141791741892187432778484937334937142236872990554563983295273750158672727391315283158898781806476407316458035344335460508435375319269636677553674559067235547684594086071834046356202146491008453925810541247639608533296695422461644702827475778690744931495452457490423540110270939549226290475956384665738357338497060230394269016678665545459888122478664834560476174920868918936116292987365243439619243524356662297649973974133336207201782809591993555673949907283398187004654101429909839108994695039517996554553891279724458438552955275675435580326434194453021999443766062521141736608045128645887657954435713233408491821113188911386609213336598715971638324016497392166088190838670459880948209623057316488428937141674553941382219420200614566533951882546278702526188777280127475795262442555306247241581311067403780363636444316653428752573145467812120006063579553984666724723474128383009926540297811355531106444383303929436234606594046869071225541095068698049476183073861886910700936978863985618642003430542699432550102257781707102435781976720658613147038809745551578179610482773272483965513725147049223237881926314810096840283856863226240093836547951674763255031207741476797568621352007430488371397269803839851624783747249424360429415850487868557050259526847393397693052740814570352528093305733350860877316345835133491771786531185482786546851130364052639870717387520571424966608808286505974189577260695281801545330524593007991473529854350338656172033646346584714254625977215199196305159301382411311353127608588813226233266667665739292237881925091565204740310330057360735750679531486510500286753282756132355102684424173809700615600850232800765537843780805774816441327257348366196719752973117120962857495330085599944455268661367436335303716753802951868917383863264813293678636246828951596506794095358675772811225794175888200914530058127738528626668423362332081612792278037899411254946213110833470231672968345674924971963783566561766155665000726095229320035907408936144748831560504765290224242361938066924396978412996557044174713193156132482281966222546627074988166638585274543428991773391386432483825457306148483813084782449345834605536773880776400584938848173523196259811519407550098080950331676226594749362865987392577698554644536608200231444372617543267674648906177033673211564116531058549454379355967766449428004366539977427140981053547379150263804374340105960138685391981582506639572048031985595261988821348760656816641787191245386942461679438535300781593863666505101359238869442688213810617834433119000906418706685422203485188326127493892851613159918491102069496627186972898132708479494709777466596039901352738468114792796156007534299152114541500836527967822995279685443603417331467175516433310717074450771425936612079055124842510303443293191183951598551329294421743596569893149722856508981531902703249763048498922281346186932652560550035279094509360294426674727344666633693746060570817118377724031685600765174746537134525531383166654161711590345623723073321843016092882687757920524286035541963345538466779580813365777792623567120604069594658187869049487438941116791797810837355563492144295671385017314672683765144250317057809012562232333941047007960327797565544216200721895667211842904842051132756564362830339906277179319631587789704998320723630490237738147300970681887101205694570185815253878925281282816170096687398701347441822667690233401159675784304355989920789887671197575557254614215053841265237899434787228323640150367476957221049562946417045638001525926852486214204699414874360855429164023595117834851082483632366997702690385786077725171239018620896439046716188291840036376904174512942147591017639947336314363661299394780516502191154449649070207589688753025594764591255202345211207173125898956752482008262007869838592246223245674651890600796274407289388248427034407442674860671481872332413085511945509951493174973213719824356521523571708151722189661710286235434648034417198533814315492543049627727518668794322731027159552909421200475208079967342933146010780059534507671048409866469758474357773681873236291013083863236863665003731196877619854571238908505453878105465978649538277219654621301816615420337211583082786932197045868076397734756605575793798160793385957870647595039094661031879281225800884080525617450986356931854927458108108236230373303479988023892803543064272671939577917199317825790453918257956116754356718880246535266943646831035341973175034311093739905956579417130442927499283278608376864688436603516698604547921211138571222745268804405257936862387826070923334555404838860818605287569139511172126489324435256734155169898628209160769668770054540894303693177438921726941647532029024974049887194258399765322104718287821498507551390714251161700787599662167938784689056961455950061667920387041368247934038897763499718814629526205537237714094991733077430043316549010792831892777167366720096769024586637366976611570831245934565491950261759546944299567290136771948597561161760794086227766067720304654766486282856503491866411442941676615991508235906067735585873643087212205179809605460638159251225523819271443854682309445821344753597653597309257240886169444559097846987796912532997816478488761481423571681415442268258057949384222811812048764237871865277015152540797510568010579069560786462369072750411120417557233845418798192848567810989935200139449883801723123119177026358339273271270377080221927758248846405137198875983272835634488467623693028165501477755603975397485877076361814266620321466180354714455151643259220467752893231698812153913356946310428389117937676804724572158226357781182116079703827209772498265857309438915888260611875547679928317545783470616360830171297527232876834053634440881708161780882407644145559725792758552270768589903713435388875197778686542323946640040647230347843571506969866258578999416055624527930024192028570333958616292069658769269891767710792168567429675475593623903485225419258775433083341946019130666506119813488514636764155055070423964544133390589283092858563241670138142972273641949292078163953477954386838421194652261486219593390510755419351369718692088090307658660997453371537411707496621380059311962717153046954300168673287921532211253224876473512978141066528349783695208962416685118225357364329310912271713870213446525106748470569636365125614503062372940272814816802767442879836096619169028989312977536685613839772277233102065763968536410445282862272725075260368025630918516584648869793574702306421584008162950228912673912691516592779275312209742011372708151106523516282368860810228808716274322913398484087958692231583960465546844433143072552754171973863304979410454607689863998406049342952423524350065321161551401276267792210039315108059832721051932017811604390322522268408969366941271280721429687307428827084284858990335742329862501915926562417950954710789155123828440505382259057759510087036441020626291640155232193576996862222321492346281168549729793097821958924457958653644030555201480075062489043960435870422720135522293781261566675290582197584602703430689945433291612573371656595179778564913821634384877715071568393174757564384430492726812929959176987629952023436668929933005020956620589828000395182567595971543156102012566120638277283097042762453494415938372148474019438919169555733314712087644913733983997678995948001949642645407179939352087901703896028848861182485628363814160533352111250098517001592649356717097737267342399610571100623453403205106726751810436976921725208041311432342367174991183361492804285521650691362302040479214842713365043787561318236697754301794525591215524437413753601164000927580147479549963945916823568194313435241596151203499188054454915554808051672257237560408873288027900101254666015483914163615458439895430107047611646425300787379859736580410527359311873895826410995973225004873459009258785036969543903676440544824435467732655836280820595755610855669062348753446151788046651343882472494497006881331375676270123576644515384636111486303770375438657057149895112238358767806991869282510269010373809712860112967829415064739727584603646906092581859583625029428423701537989087296551655252880637189818654615901519698515082918659998242135090410115451732197975711965825048353487112467000071794367425681615305607323552085723819804664295440668786764321094255311338670620378851209759036227147770372666212553949374500822034687060380141389730488447916077700434752514872025087755600117247268692893044962630949709149764271783106060470603556459820538791853837418555040926591925431670406492865619199937207772613261075043071574301743402286103169398010439148302771139424342428865603113412738577084361893520790389003969644227674718248829884465878545391975875757998129665926946399836631600123284297862030829685474615785267594057143352993675199783628958113155658901734846715190565655516776942032429030084113139202265568243258622281574242415354749323886075804815350131606379452276692230494838917634291860413338016266589045167972792822576873976084196712085924207861674276794824942204809967382269946748519651713670374395091490041438944252974392782304534243882896470864088711063166160718472002813575508624315932395412594535717692814420738516793429877565764242238952424235399581814208203887438579743366191721127976043304057142381945918488402293554455556232257887298550763459966226402465631635950341335926871940286069331706465946628414667744618941766352782129192180997191180808471101949474849569581228770995990635848350645055641846266868486624401034590680040507499109784511225892097113620797175034351939022072605194741514591633406546910239956711491422090298138582464615221428996969064725887731148045092128578307208304810528423499186329801532339627624573224551438605198853055152905721676470194685891614661655599073539848786200942114060192109186246347900178307950153458240441586000360088709116672208037599766133388866243429303461877131301940254308724811413873144122797741999743070868352474239294764226935363403562934048825503933724869937216717115700328951747316459354662247033429111373336665671856301756619617245776966435446854382209008682466426162165862621465090186450325939802097894889770383657243204053994851514090886716874219898505481596443245607321215211507982918868367509684223736852826519808197982974539922921107131551449497511638385795621095606886819512565707529927429860117599743632783117173797243674489885422962550893537105176845784026068274030380383685927455121622760904374927019190796264550739866481835960763189126306815355344584152430907543610864385895047814178708725799858214792355315565196137415233997750296496655972052250575678393622706445311350960707271698994980874039639454266144078063063409872589257319204961818593883547803783287481380354185565381329690305278317344387911062783506743724163164650181945531001566726162156732743070327894075767064527397898063780175008204740436585382117546347279109017282032392393240934406119429927626400999719936158377006583482883701979582808074544798779396980327270850131195795892728350602701567270781555270958770938504627445470851929821334673930135779678314925634730164377085346134141730485196514104870908722183702176684288536728315620316074676071975922659565170162298636721496651607980732541327903933704741026548564863348817130801702357367785671894752431563813053574363376700539423752051868121306495937376660214405247680610891479435473087463941363570975328153815387218347299366550622938578722941410433243170256459371006409112650322460819646451360965530465656612781891061685797683016892469996607208280441571678674058477311930046772184493814674344005493375930456008722777398513465728361913288813683117625772204807295700449976181924944249977998115634597414407514822733600159308671470749226526532289400520160270371877800473980740155250294814794993086947956483329935454905338091618105059222059389570695850147283606047881584809971915769107521939357908028817618187756259251252962885881776872121875660233657134039739654381086503335925261252459912433794138853827946856632871852130597504819795792026534647170340932861725046685356776586343911755626699155635864096750927856668002202662869663739408355009668934310569144775887565688556607890884204977519408199724792749334637323455314279261398005582205622614508876027992239046983053277601961492490254771072036996985206296786423972941959602608892694976162749032657737677376410082303917828385915370363201190988836004113713095370688951309185882997374598988173665080889417421113407814780638992358375915047861950628472153927645619582220836583453404105576854544746664315333802233562516444593835948466701116594712734311617007715131289617477005132858140216484782324727233784430666468040591295237124581238936244734718165173021533988416821821781479165328735211222148834812932700249957664687134404136817495959979946734280815366916366732160287228854523450301425902999212427396613267552381085894387795193168644129668519590243043792867579972514252716497695137691956136550541558379974623179515031812994548392655001789250904637053168525789925878712218334600600244355840118582756284897647567350460124864905769312614153230903606915821569956210371559909353951086396302252994512902707471447695698185947961075459997836939833087978364411521236697515515919100244633573268074751050957279017127380197744736776816533629861836007961562594983705366055621195794827529492418083058330771831731439711060320322213014385166960604770694436011450392053525100892685349965161382878388795216782700832114618889878588763373588632670113394519356604024781699179328114360521589232639153870337688683724297883715990378943236669811911490196110575465183783719154800700920553098030449292584475095315544031934189821699930881864884756274531495137647099033640434555580943955196485968252431687288723566347374960872367319678577937077530254860032621621119493923459271603329357359517830375879035943343273591152997171092495640183904615760148898942977893056438278389093886743451478746733243470412496397058105611488139056246114805705346200404176488320594215572674209590363895874380547113163835991877292332852719551505129648290167541569231629665368022195362524432581971266669331522055691387869039243131589980349857852742249863484447546025304073420520931965812518866876741333747258967279911795838094198116002107234661915149364026731908069208318815046019393609624072575902820879362247087208492995563363647134254958256096183532504430270494125948414987474905925201284988096872991234468738590258733103348476972947666246462926747342766714275878510868677873969870279943399631142503500379173706094431553191484463851697045675395017014208058178409433061123430821588465264564554400158914068391486086692219870829109314207906002883096744281715905331653206563010182852029757198165517858462879912196942374195920530327058561776406924693983863751171426299039022289901397031297843345425314119667416105759045237035469756179339721923990619335851385067841350927238182114102507481964253888111956720605899739210546691143500681714266704993906781799014173695632070440402376852044930345460887400801172234319296542794822084176527317167892140288711250144548683544666751826359577193698048038923215592428841176495720694564833231628523473520982147072377784137891277196297334318157021356573569298944373944364847965809909977875058551358238328275063487932964101530309838622165378327190361419917971779952807054758205641339526572251980154922900118597181074885729637639572615634189310065553726827604910633040568484742828991938395640013460573194686851455613612644148100627081038680148705292616576337074203281402823581869074679527984010154894428311425814768024000251842319916301024855012109728485535008646824790516054158443047432612261242515148485982118333554951063932796236085775720595265851589517926666763952031007586700546409476610935938461619829232585499212940763082261387391348816623078818589576845182914210444108714764459062869527851333904182613825931324384844138577483401192845910077843248764419960892941352020452215510695144444606533049686296027291092115722544600988253403102335820653040329863037774375720718295885125995651277712673460103722740783266460116284365768338518188187491522642654424739950648785965258330031895592387921239788989357230175836783346779169170378700023495466699810566435683165313024219220280786791241701476283086970685996119611325561690589021066297960199597229485163373010882296728191804675701593045961422246239265802996776663498491830750946211841544697920577152602058982675773739642817901351543452953841912243991650669243326572529336146428687731964499066042726780926010603544739188223970612329201268166640056424526216672128229454592269077183670868045352798747585657324475033868556184457447167396683164854610738070037469783565567740428271067274028668084225463520240099039922821993774641127519736900619930062488563962928340899246375532112173221513121734732578320503440640348675863831693130042429732566418719483644217273885012079371972780439505700981228257165864332346175712388929999074680274633632322747741010860708149470490882568406477272242469048243253574159534235663413735559114824227760228191907376962009853482546634306243802776918248753693858213248806782058794996187864764622243276808763833126437863837200222070290277618975718115030661585559959283777924318110019704788623256038897361339548709755731133694682804122685122985500529702526584886120790897139348114726845040715662537575432864945627661139822107531786970916814214123587234862308484346650379859334435527532701013946153689640773890863226615812408342968448572544362507256022128092043135044145903844495731976399539768036565740460534310218389006590175571316094845184055665766915176727645438074652064841649351078188488642758448196711909953162839808238222549132869950499126000512764062039469351431338365104407223997033251322418390975641937681062092111383082855985241311735278175063041629574981092157922033189889812281084996172285986734565311351907597047890341297229900095934069739747997405451235124649740271137841003280409428095911514803826297805319111570587772488450438130212885414090916249509933319570099291588715426266755010203438854970709601843495070886815591032966994537084925580890107349548740084400777290479731073400774172478998396201241731524236092403491391725852467209355743798998846105532706008824213375712920235946977536558007231362774587508298629935901031125130666094138240229473176670190895118661021093655311620807936864703359165711363334407642416159855410329328445187936601602524985215998032296673983529364477547674966175107185900424730378153940622324641082941585239244822321654130517235448555747208475928223602048997076346692403002358133364184976047216735700070252848680284405894957637675498723037481801729528422597459657954521241467016346788471848621681630425393044764350593502459686382141874335484941410535227597561879777363836371728244010799903573948655178440695879703550458672179757473109268812930616151913712388052987049160958006135143597867467211498688893495321307612279566778042457897093256771623907540376707775974690774413760791847851638254641966664884684292861863187580587004590150804203290092824404687947101367659556338831127864176507269329655427701530531654574682374455757752389946036909949348798055483374658862557856946854916465581810653204193489959556437490649914994170303408598847153059272864990346929947146719673732790217568866074159266965286348236487720963160451357524301910163602877863902166051988709192110556671803232832708003367667774255480948413720215906151398291996462802918695952662162788570209963135010892891631961049648854068161349053814910204998527133622743328845046333429412280310870128059930945830684551380672494276780218788225318580465299883621760039754757860912393225927521735126169753551444460326524941475029167804317708898982437076349284229020898444453634684500218837393700699573308845505449304121884933002370987082078174531358421561965730033032567635308639519605895226059114093671868034298796994815524478442927294918491275269972053809431478682834248693571806321316956379788432278104580951599190963399570391048252665166412662539859376536174279655032384082962687498360005474949281744527698049543103040383033260697016161614329342674641663368213464466672206839780978374496620079428922012747689064776193655563505548899643701800070030998828214442514250543199535798552909878181174115587813473264360216873715028889075930899129229967196128047283218221436612649478292540651189464688114267677271825194913051275412861253791857397952787617747027133166915812797754727152097112386303755355914483957790955917615545348720064581480437172273589357704727358055080782988929591418090394523370486173163981578824555145627967979803103314258169451635044575498866568877819046759468331688618772562922218327487972294139152606055771739611710895292632642256880978521776763314610814528506467400744203331602045247233854976499787220304741122007708275574659148851827630085151159599436922190813721519787147601787142030784826263012384050978402161487869120216120237642541337731362683776024430744276145030479780848604287171588189810710126217997152679055107024947599911441442048336438789001768659116005315141150515398613997669763144837950976519500701615312403515365000458424522933138996200982491759909503017565355571858947287156859100258263116824475687201534630793271590785601365902361958634175665074870514890376806132165833116040076805102803615557279063861734126959319001284759409458178849389371965114503401351123917103935554616348121476586390015072045060256954862952746442537626910193189432504023034343093442266680128411293671587327662771721585231763894158491996701056760477324500001862916823075837693402430294428971096790599883677906299267788728645138841505220961974142759619431195510334234748165821860453015480669095541735059416000933468093333808200951302872121532714872672996058450279577128826164808393034401585958357780553274923400962353700841626471470919275370817320263133021117598124280470832403187687927156479036351886251333399856938285169013243375507266830818640036974055264483923274684097909522946152526189770068200144254459442717453118721322063886188491021789875100051116495728564131956451337930790190117254667768747703736242954453878282973005197332402033453542421833708737279719529280184601681781301989638235615900308442167159996336253338579441048507581502819000016705764922372866912397664412052588770206721290669516733581090288788334303418579443229740627550443326003073265867743392923945944459475768941120442255844501685070771701111574924729710200620295612462640808697349408449653457711498530891958736215495693272642432991449950312682826537972352269803207377477568873557966507950613493916329436465198793371024666732939611748257548547390116627910396612220693029446474120852046471312438162504514792915337478306840298806121862577890313133028336956160003568631041408327784563606099975625056700804945422009462431430076066085611155246644798804554753598922046168391308099545169146214670362689270007450965004078434447682304451545867250217210291954302819283953966034940208169715494735542832744248491200662563878894567076214289870284209247323988757335014783030411295747646239127102724071615763535933045287812062462896046867864286590501641635530277270950254239361158837144414599612544173082613168518530080792142301420312479686464043294477088489181507784024150776204650850706281142655636708438863472969046012575699499435459562553057456115528899918058256698689657034505583760316205527227810787516479677404359826318722048616020041969328642696267190931570792576567096195571266461054469244071835261540742613908759356018173038139853891134159775488467264875168310505006753553031364567123283960060200086960107139937404195916159103938414614971066472318556889924450676714582009673734445147641865830027800924015381755854107405297640691424535783243045725645870830934613946801951459987458308657283664201715549180510504244595908118320106952324954300488962872158744141304726488689217759647798005803768515587888779174854341712369852918834359418638840358484892860689224819343799983139513650179323541731423205130423747843663225137699028705754817906856912350449123716237098729374336347069895916437848267554396530673564800782941185169102016221389739510740583052568408236642654511179511363885411840388828191605255533507846192187650429789801603971210860581247465868748384121175901075717020456698339628818035214817668448341788627260825186027522394169581535638203582091587608064414507705686435371222300848347483426178139205046602870576366012920375068796737494362896599862357073437024670317893101054963913936502074350251936967345436234615706486370272771962244538881542111284526203406852669931306723737926764937398384161180673052003041926913689388585634379322442238478448973047492877625558382146405634644949615662073044649300087505245636343701078975255792057931377585976230205774309726090350391344601132916546761802163663555441572748893999842964705645467900460971401813114965990049723463688505840022850750083064694773504232936993943773775811565261502189418288223297124367758689169328437785879518107575082029533860258783411105556852176145694463496177900606324242947776132450580061697112816806758787113232632680341832247180163021418156958569882875119788460152154046743134241507460819832208859686977412817170243206691609999248849743680043805628641982962508877118223180958229893475738977275712544514426857884630499982274468096247704153300383044063722167528055427908354349661550316193635089814649581893316784471142900988639935761012981847314438262179610849642216531794270201900329947949369616365109966184177384513032600272885446292733643025302931587556545237459743931968704801039661258695511019697959938328139700738798772512537480717165549777119065550284181986281213840772384037167204031999067111619094717994843834303280023879133642517805998225215330164812440317741574255362806867971129313412434165070778338821605599404842752531894287687512404533386186777879320796363719095643316085136952738562904589747104934844588541624977227068358106774386957484299728169107351977218696755533482962075152057144232349046217675911432317782574895601577937103576065052687251704134572931331786563030837408294221559108925359509620829358887157082674428551179488215933240269274251320959631890865038635774209325881755173576204591610917061830467511796973740611909189893120284327984936006353237369901714474868763382474909667438729568499847626963990041021568170045465774561375645107848553613317542870447503961298011039517365508471319676013520136814180555497712252405573886257710534517585027561982762159320645855917349104991850321463317301698245279069002375568032790096653834377263788450872250655453806959666820900448214983821756374262934236825627906505658217694711085645525517560867458394379458074103210213539226857765237497880445672485079524075338202258159739863018692471933871388183175513849539957290677954491352821746387457947614183372239455292253447480909352263925338276955715338809140154550783819543206073112079124618948215413821632947155056417445284220570591179742982203903531046952086140595535378335938081258391709090853199346969113867131314781245839797604386447308526667528295793524050199636571778709450957592190196172933883733791298968072847904601176829168495044097675264385924265521431458340803325513779667144513232957681625095316518447047431020872003355421476117418170023907293793052505626466202495577263801491820809768534913131738267934715413712338444480777334616518215409808150990043527077931689469809002628476928257299150377136456979049413171760340504698109261686771193207256812366690136527572695512595189258182039007513171286347453052872514587575062831053066404457767320053299509260921065362190651283159640402537236823883812621099492345996492195801154969435049922238930405612696467097417287764248422705145915978823896274060861192621071004932594704577044286303703631577938029266527983231059182134715301337297314704432197218746736910173360852410431608857475173324706977739403320726381560984814180432720922337645500255077877379289332040523546820055123666964325701140957307654811895030478829637557034764337385395545270301696051591986999311450632296789515167551951519086404233801187879644147858539420294430776217068903504162920976110374122837659882725013047291597994771711308718677158817958143010932575726123067992327004720163215891040995202957998266870100652109114851382281728844109841767872131072187356031141517390573341145146733239274553598776277542680579301529685340084074699746650393615272405749721806360196462192059371777761981946433812876448335406216924879933393032207172621159642261325483653307586433891300033308322039867402552766984288676266181396276542050985881436627818544643155966730491024220912335361033647546325344466686057701997371699630285472523345076771267771834260382745491782857293846558857499103817029585662861104343379159018625253384924418468263384899263502509369362420415859083919566838081722607914276875806953360944451183072342390622133690746238025547480045309907261323230905661063468553510486991300808447070105392162691953337752841612332228640465883054998693447126295421609168378268846902820969935723938973734676857789364510407704976332277204441557449223085436125475744647461152920432236753307853127866545592575523387736718439326417007744851827475463968151141687015734751183385489029697049388417341527039811407164943061274923701891776506018657402623708961129709277811060392458856168679836470555421350277126042250568519741275447002250819925221962656272341382009064975879912979435073218317380519069631132889350618662734052148134837546667919956658169110204976057177695986802199441630280563991987432685912023215904922748444375413371825360402769682285562153845295551680549836684309703613723481303404003081252454674170915746666680665333918496831087217983818114052109928505786145319568791025216229780859673368884824682301867162545265605002344116326673356848707703115081245961634152226588570687758393308292715311974019563668024305958051236054495480224612292140410162189160312778618515305633366426747631937560993948580823193240519862473702956844087621361103707079400597381775632917873673518009660760398201453634345217035295175396825771923536401543618969408150673210493898579787059948616067188720173879971094711600178506318991796900249406907866833357483315732033407272141807582076118069212745916615559027920988087906877655578817561570230916475708460992309056809938881621877527210561439827629294536664218345538375479328872286156520349613345944534684729120488442774287834059040447385044434284630045511814530209920471370159434844970475202532434301810644037289132196779811329807419888442430255823732257628756354724691761698778492086457924292679785017326435777380371577681108222666225060757294524429154317674243691380518107133427161525872694921201141846752205398872535708544163272073364901018671009604092307790830888194263254030790490731304798356629002901831595754311170877729045143893751573833004764489905304172356910119183514188635176949908401584317183584284813127653561524113791743700532872511034370034283662443922480380951739025439060846265978824055473379087600103620931361058628410083334706090720678205699551785315676307463956815230744248004398304114043493974116542220118559506663415176414026431580096486138606404166181290608282021341290995499349619173456807807350737366517666557391238752905205339164436687830379146695018495807927533050175960422684961408518580451640022403143701970632599458609714353850964874209584231277627164646984472176261171200711705573623099546756214492134235403072663462748019087448407171757186401956038462705229125172496407756362064281445653300744994753525825148888930998353691851526395608759542936602896626738743551195480869866766895217208345977299724069320638802065391362583470999877560380123678443213173876312632995433791509376138353039846352420090930266033287154779325314682432188873551873234033481777432288452251124319480452807638046810788639199714679407984463959257648191830888027000688581832290902754966561360195808793457590687795467005715370697053560326375199546738991831709085018093191588987464192220794915579981699097025535858700371219844383253664326776448979741811344828100896086508214572416423920487161857243991170248755516036119983992913347175791377452450128771997190762312832085345722074945569158317885714345712118205392352874357366210043239910115474629693630621165633043595891615398750760995995386979660376701277146657191023311479437734871633591504662929551736377341578231270813128018025415126946673139718129784069807382853458513136034977375697270622196322907824814201108556399241164516326256119562494354235706870545624803215500170125534885660470953696968231096279001803311584497763915606773535949911607237879529724826187460556776053828273594327801057576188240846080071828656111471450273536087395192766485007864833352585867457187842164624668769723209289359430622852625871596367445796541045312120467108409808751353117350446010464519828354847370408852651904471126469398207054961947443971162326747890041981799144477336614563379598510362236423925675611854922839016421734719553032347382267997830401699553315704507558929481981414217129572115595567373217293925821417470829166812490445290860130279273808830972336968460950087115573779131110819978291877510922894906438528332131458269597017943046266012299332334995266176661067865353879477049160839198809709954559474569282551309332059154398453940812569220083571122375311966194689400497313189863698378375329152467175284331855282001258847738905748148079765713925550490505139064625792630818611679632891353058796648457169466576674143228023286374303518389579768312073645579918365809638937714440205450109535541945799585800261472725063686270691045040341832523830428407354721638434792895388905168354381537770209732323462582567992020255878495659462738805376419535701151872089195953018602741754016593011237167246443846736833850302283570355741595741095848510984230874556968626738789351075495325681198055851154366600055439361751642162342451179686327467600598485946842859278042223292100843584468487513665800267554390166237940645508878190454521963697151963459216484736228352025976500736166684780778369300915319938821126391453506214321385341941818949194375865691901155119864601886000814764843849779572183006754213970188243576310812872560311156611004169594946892890085924826225796275259511799081681589819775255298985790466235847253899326040577310823393368906527246762432399915376936054688479708978367494927462214344737622375930760227141550205607192029874535483739451257395060757410012781044785093268252488332409836483811191813195793661710145448645538748029160633996687822340366841224909757837895093257747607699043068598999839004160231900544745315017499130931823413725971027534535142965028281418261996991408951129052217039467711116909789064275572917208328144896460562091019968677853454122466835566993511253049161698701739794382158127494512946549444100922260717507956841323171232355909492567807610263007055313613427494520171269080489908035423086557131322117336318076812860008109369894455170196958168139473699776681790565918545620101146002803950626580603371614296489120456137071533278275014471955130527019541015174980651733262058066333869841694774257546035037699347529982549231863960180736748870184031197098501528220835093376688092909493930183012101401075610650108768071164005774377644633831367806229952738963694701321197792109797755211995663960481459691931982347599369105690776079749391766071461694712457396092158272427541378282876364868302910954086011551387998501365503327184791028462322706634560004560027140536466457829230002643496304841131898152887945889230946834067883054532485773465538100816160305018577017832300735563541970571431721720839107323791780447218753640517563356377410771234794024859378074959644013077720075786915428015701215784256778936658449389415502270887987003280457965431163502060255805820756190508464132864131410608338925487054322196953748495095763679793485537862716970719696300744505371021463977233798028654963949585077621484304510214791334365215629188775985670746108576693199747682171612592877354964326100314739658459208871616542232430245530489729871387867251204024699083049864617689543100115223796738943627851175119159249729031886476999110002422220204563396123518761414575656272809354360832495556755523839244542773052529084457363695784417322211368261308757158483492637036992314421424283318315718653435923975455561322699885272846373659031291489756314586852462194073685016060365878588430417815158894282384368574264898618058169691751166111791836633762746254758238513506895960356549349885100018624383346943796463527239325853202702990665687704276581574895136843534715964075470393806427158469599869113510460800184690635753542884042784736049317930466749427881543676844846286896789085456120421875546024430043233090548667119827284854992020330171088758187245212819036594520243596534356509552916043954049769421980513557182716914837780792490095106579735666826827931092232989422010287431097733345034781450604960493024354961092986433453593010293736044461594105373086877764894141036089034204346974921783467905869602106360917890877335930247503725430991614009503726400749888486791735491867354298740953902546347764904511535837960307986086033861237158349045178403074069465735879093274115577117973538387664935764234090058116674233412111351550637330189425016375897165337625802169436006209196393046843296859363284633501443722103733266175984997320688146374097356007354705516665479908821983343146465609490982862628912116115651697678353141168503369928275883057924845073634704582071565870796042793052298226888340348293600977512800213381008042474244964390251003215660319299218082207341481010936212196494489863770561451453700301330296395273954230406263141903605150275145994821990021658513098945077984923187233268680267161661357633270957116858529399547879668040856950660460189156606228370565789788141715149808239240672022592803157837699741982978981170495084585312085658405829710557495406570063097768793452260041005266322133796078148129403363159933905865006951546191321285119895585048551404711914425778358679363321938173392956584460285894885250290228503067426567632985122991173845027814162671773327134446475158093148049061181860538466938676110392940709700578620052116737951635560952941880298408120005865447732161079703592411876163601636593935689439178160042267546192805389848755503837051393088123275256909288979086850617350105536459524933239866851674970012615342571717156516158292940029309067933033235537188599127553747731684854218687509272324605791142931749754827297182179250547528787449424931620739396600919281039505147326772013646466908458594019011816139019749808678860039886120745690834815444732566355583143953148497103627043435969758764721741434439958594122030468440500935566628955315142564133160221382099473244819487157375050680310306492338573748412545407091940143383028008088519224174468762753576278284403209859044635899910802362647440400003927712131863952213440039642689751829093492393958320551949015264631458065298776108093872960445785619762312680641855099788099621960848896077159256259180989702197056750468263388659962935240006797639267607617735733583087383238595610371024313775744178195800657186580889327446287823200877394830853609512763522489255786252493151181984771378704732696462967487844832803796974738141400442656443619237177433819821237457560583896237395710594959559727532080585308794484996081000452073974194741379895132318593222109093083950661321447119464677436305762884531425472236752071900479012501576522477493543171100030050497126700054204436146437465950489459128635833154449888153799168849854950373864794432490485920468275269682876999118339601771466081689921162976542562335346813123894380984735195912952836400992693711995678517396953200262040159004412359334494119325766286278190803886473559816253484877707013231954120740533685379904355750506535689421925133452024188265918553703405253446007295630723488268272320586563808476872762397828322244664209143487853075120640965954520975862727126765481955433810432789415573008830912537754577994597248819783615026904333437450600054123775623397870251832954471364273633384886804689580724762878073594191757383663323470616068115162124835824195784699107398413698898009388857531075929778032158706517707980065946396901380982095760414541596388651287122094275899626099886662993780748066096202070007038017757692843196979315160584601506669532954160172076786512812322207535774416593066327868122130820897925894185395885854536496114225707537486375937898405766996057766546410636662788611483778666300450190337848588044857642227288823716920973660961822552395334155659689065564733726415612745292313944804899638411647171697989508085193363422098865832923951431252036186539912137644994551876081415570708618605858112470682171678737204620837278463991207783976556966286568509823885120275071066537469301671179847344994616250475353622806899551057889025668725496944200784828910899369155077209290326875455142265614115999300214967669758275474319662740993476701272161377236169645254621121587091556460201339779026020824987230545588945128148383971136963705823843219030585119369210733532230951503217654998957040983198937164990864342400333468055203310963515554255201896707065071854652514910861827732730286459667025073972844509587356536357806774924223961840079300301114598775566382226149588696261920047826945927340293811583074750543280501225984042876170635850361355660313616238656697720493457789863344965173342203482479767283591565779877500620446334551329468337320551350171360566952455657292453552589153567063245132249300581696543616138894036779354981135571199504156749813886305737985098104574365286865829412667475954273805997229952340173382374088295105890660984192687841621224225054594581667267910779674734375613817899157804037027768732000219637358003810077619130294233291278962033772199616954482002634527192542247148526634482124137154813579803279522850500603591723088222244499504974589138221557714945529615693529559057656430387915796050353265033465701259520903783692865081668128025416311627482869079230901200389647940567596176234121748026551654763433583698991677173722055487959188384045891911304296704357621929411842858225901512367176733248649212758493812333720682102455572412753223972483607909850568790533452410315008767874610766652895725317179723241676275601358015911680861229209696371764236352913005975291987948681776479707231205369392634734580737435680953547766987178397816318748764550953635042567735427854868796082970615262302006286369259507732818450566363587004651603187932591408418735365514314266027877691838346578518487742383877216377599475168500283488982064481004326097512190683453263690086995289999121761647744662939610174491310284014614639396514569327104253448663879307557325618969280597276314689159721494903355549028287768922725251049088595989647481870748019251186173364612034444208144168848551766437116731713761504601292187228744028032936791827459520676093649949554344105734659880430201136407283313092403738511922548508068179450238311212289010909708123121342825898887020120329238868956454581465903701822629941933379371840228747010159721509002473868489120543929186590493196301446378909020404639335108216421055322102037513140171977664741088561799061703400001624717616723135766459471855961715756901905164375002561434068072625984516394117360812984163188507286872137494778179725745729151456321028466462778017245807649135872972522912096495904718667572764639415288429695393283781304425170070810915813963121125298803045336724005535368430098792574941090862208385134824215939688635309029883106777597508353036747140582141833455503757682911514292858511643239830108282039717119199808180129138112598275302854490375401389684098135589765377564184333105040685996937765463741083773271908092783825917048606189842305300364508691405793865262699799145679935148227056373734141557277240622478533181765026418716722580885703124421322243797448761561087344790369128874426772778401612145709695937111770978585480903249003194976920881780716110510180124279259814080447468411335158386389762366575978261893053719779388589745522611966136210569136577993838617533679189187508923256229413483624109147087229355179244075796288603533947581199016176535166938475076268550819978476214778369688201021520527673350358408275325346768203165457684217752730198365539168115286190894064675528964206494709553683588005755995219535658656369196410002520968110592235330348364944525508128841754810255703614586006463641424409176008759502249504494836501100265548507160260096189011494763845741918245911409574784575501324624768482014189458902779931374753533065494410549754801380338027130256925827724298729710325153971643361366525029584920528052140242329313225266002823438261264629604143619588205760003813741055615749834608899299883054597230115003741877417760482491463009837364357840949544515218476309455776645271100647127937770521372516658136953596730834109154650935741806532722876712691507518492250037884417862289608026972463676635692400401937931241918985325917561786357821512593775874179126641490383343886260885946645846315052046754189259278410258485373127595322096766436886981228730871493800350085207210751937313329115806041078620825697813909483334161845088954118755380497423577975179504463173865065720075374045182632765235482477562805055176605666595107962781883605699106852875183323193290804442529232375194248772585778148310255649314499984157325336922728591195110817937575604881354700353783163442735638619241360513121198322114056897702081226747779900911751219693290869508330716613539478252905272589125951212425555698622489245842905205294121580305567041112284898096915167540835302282236828813113563127629715603311159925991984990464887706207535230767123628311696979928702443664400455002881419806724813461428629293210610817221546789203990767640699081006866556910349442693764916389825499354762054522119182163761757858667727255314825839600850599212989457075855238808049379416643968535809635373873481998932617448741765727174779400955170392731433684217261686704387159104265102168605660509249305677722109814797517268734115563776844139500780110305823344290792352480587854778584780196567596843898630090547165749334715158308429671111081482889452452251971905585265017153371753901887876519007564516031890294535561190449935108325249432556317587969127253600339361253231764957198839132203735802034302601873142020393931443503510818104755926137037855453273216234104065401079682155162553301400172490716850327961352512827171308794414968258364880340909164901459548221105001768459166993844895164267563044602388482556523043525402297636367560930351255906016037005036406085682474059905764827379133108585412651079223512260695247126490405432264736769970998857618355686658855277576610884431651585524649532990318705022734781848060311593542184682402257472614275770070005176499792668768625411697212686650348116697946749910160388589388853345660309878763777296348579520028002642965256254040548593050405342470243858305905402034094962002896070993990947676445712542222216844992476416055819453411915789008767103703958688515228672177289649199820403129521285862993772618983222191738504949858538290773709328764491926783629310787533239411645745243438395001961647815742220128472131225058635138361859442326324610128499215936894576833625339863663003353306590706837531020475727229907148797741942241366544534462518862683581982139945466537856643928750911487028888013877879155233838398852128356699220324355803677689740715650361422457612029118978306250678481251189059216122024922669761944383376383213900342197952817542719801662434952384013940181388040330402778880709007059261646514462260216069389788113647740725110438982264556498299713263247552434448802111105241924382609718010652906736395226010886818775550767435164867254783234134255658231825059133127469791446431242815538571500108542712011872729515482223356134096803532751185341128297390156667571913681512751879113422968551040047916916473869663710821455701155077186662185201718681198087211955018334410982517550640579517842915306211507713143935571675070370633028401075695721880308916606795219443730646385664391668005305393980542661759577397929402223167681828689845056342671422983125847970477482960597165644756355026465989053138324168255267236191757011386507856813414847640871212514998432789782024436221741255933348766062388568316630817570676954894755430742566874558996032678589104474115096635583294992088972818671131093223193797479118371244791471258817074419296446288917340512293308015442369264517679058585494743494449348995404423233800231309153673314255328275397654493476626054387659853078574093687981254609655800957687135631466835808408733239447550481941112713246683646256953395238144089173515070188226561290689672578155558003485692701898539738474301106472911242930958482738044733494177563150026334542628559816922691215402888907544768307781763123200587996748757333184190124357337844718888298772239998041125636972590125594633445154878507255150448082970966334625341312122822814776826255140570003217635864911354144151414876935128759277647634265535754350078957997191349892946162148682257990422745999858483289127461490495678226213798333559210714250868882925345545094376958268873356922092018491534123145258303587802633051585573238295160982201147933189932228657932237366939210109891496108621872304802984078946095923741090386253521440640321187792267685741970950124983098202571079628112823788640093531995941522486641036907010163090832758167381664175692009442129482453215288833303557241626802832014753681484558504529893005557627437599422718532988572490401630057873203294205511784483169501169914895131807213236705055413064708168209841574439429676017353614537596923438460744771305846026250004360321827323236881034556710418254949089955196901033961418626192772945369184367723217658576085968633718095309950688392008711680061836062283522275126606407442198440455949928964840240641744549567312085834361019246262923471812307025500212283686435951358450854436918537963538913949143928416617165824073879502418617915748056446678197745010602402953941566438351099230328592514569769873735486471324654876076557794292432328419198810593787437584696540763599089641024749155287062124144959997103018856943126270774645025392391341814388540058497963844878588120405866761353624460334846851118791844023235554456408660672381148017965086262662353322595525280542712333596976784559884412130513605563451699391972203383206300094731672459096135959531623054008637834199963747007835277240016768182956101439603863516089953804904988911802971164320173565319928003527248798980588652701788852151178511192187152381401694305183497102857929703885053474536634444948981038461251661486806473054049014549081048798549483577968498958218688316957973373984942090941574157105551064039056557656761648318644898873216417409308630331662318356895274108480371457895899163721766704825050120138706305907104263670967307589081091547163678311559829105025497389522883153588325285473260730640249371146523585640258897448931809154996110873080072852789114508881203226191364551063967066561373816588840725690998872565753548227859981741425588803229441843822403596659318205077391634093937287912404121471392277863121218695558970945204590938004762495307977735710200318280914140366437305730779814266034702053113145432299777253001992301068136656885964468432199393805387277598548701861392297950495068006077655187803406226141120764286244431032738446710511123595713727898528119149900247341678547546114661541351824843669148319759181417084145558766251103445171064120561850991284304261080073608302858107325778012274243461954066386062859118412743400087302035792286780342247974663171337504610813992177965892273083506579660370570257025026857659441671331517721620750012078478351738246502367609159440638280642757997349432741268671376344837015042573530114122365411278139418109594139630024577969273290514307177322728811488951160075977181643138812549394281864446565282962906242240198146220697184181284484361882204997896585746424886853811342290352659844685482052346979166366997957379160856141100183490360786946636630881985540622554161504554925706407330856377985688317743822760861638580191619357252697553485756302605769688074461052455326079084725376398223134056599619242812961650545610451107294354345448172283964332429691575675360030939068692574094840152404567487707693613956828520713443953560214342730949671560196242472711821991059758201752008630515288758537403810390053244234574655679705414832681791301738236800766557167714075523554662621126835829182009284810925750926336111038106749795707887811434346161534320978194353044443789049588486642004657015999967529826170978982598123068535181017827280699734907765370758475113774115709203592322104193029363056386574793189701883977417104687482166160810661059100708742677731282215618482742939286495049228452232851131929733439784404116246585333343840731578620620142316761769066514826356769131564641660546780217938402253975716560003427723611292484411442169757357591961222862277816070202619310450658566194473413481075972578779286931394676611256315404882677958636345075946352673066125499782454058332437854633163156509885036436201812819365612842063067872770905718112977614386227574466556207640506595374964183458601585201354759486482056738869757662448754859786754922556144729467925356165282314412126207448041837777742437010165012274891050068841202516849413133913541046530662864811702882119687966891543458160275069143736060865878962972109064315813288667709039079640971571587395604638086744904404699459587026039291473334990893230599989555009134753654627949429773931252829422634351093417039026225166448648023843538510359103848469656022219493398704243044845620199167193306524384367085107584919916366505493615815283376358500204962435995047700150693356830487293985800935456110592453190786038295770938482686462889649023546245596886912869696712319603923777932614754431129936524849126076979444866330795872518330566671246431739500636872885429831606258241059477779458233446874059697315408708382686443422506340089294306695593290524351510394950403515241350798877830624698673927508901299109245268829892338208538327159389772842178494489748341609241773234538253210622177708883015516305461476097520496471876324622068837022024517310707069587208368752031070760414395763849372204038879854316424766855798858231897215849787601403221401737613354061576719288467499834942031330742175078272268643916870677197987099190463955663523772343844772204237568191064719227041353040904275232980535531830081614529989569287383928057771618145476400570754383367072827911445124452682465544498703758751169619598020512955644817823907857067764136033307534437630292372149612564045323015319330203715515476162674587443760994248510773831341100284676684687378129461623995638677368857128923234545763038187055558707971751901079804027730958990285235992793009310252722119662469125536824225238902027908360920235554781110756997270314889518385845304874313652244608726310388354566603634554607614996106825003708137032500213506334129270182947591379553932709590765079191025433660795016808039638366001089562035365436437285695895118649534168039149093051784238508003198899439067757533209759046258945704281508035320300557413288434447312467379714342028488113433445686516106831089127595504196085142071697991563827670334055479872739129327703074836861768521597445702295425543771896688520578521876348687098703745907534629757875057327091557467960199673221400290542522600107758082679765325343700184043565038281654479058544219229900737827903454507601528075063369374771904246959925011820730071358897807904942136822831766854939085605270746711890831998775857602628154229083707265169242894735529764155579587779002468200542318347668221259860164161729785060905432344678818922253201988449244586113022039212207992486548297388872206133786076988447712972920810887901517785854331013213706661460386179899296748879594389148048115330188914827890476885634272314963808544011314260484028184196487710541772736043933919561043559356779017315755941275358109105655179985664317135417833278596952622294524341652232748192355998643646943128987394486103264404508648280282069440369084547170318110576575431984918598350538381865896940477600462132215023920534370822179946400541501188931304644343931487376107305344764031533589543178071365687279766124335863426719566836564819902072751919418662606745749385757401652274423503285976565556424680331898089723219731748919171003819311167435796136944782844662377383763609552958832009377830535283976364280289186871126757173867680569589833614581406255589437072687302381132011159318354031076083120901713146934249981082159641188055737294350674083542698602895329137355429315262289266960688994917342714159831988235194034430403949643288891000445760006252565601578725629342072274137426026671032824724152253402570400266929895775135580023986412368455046838911878659529697036954414606169351874928590369392791323576127037806904065130143532122197608488226539198164509350706420972378588965661470583064012228281080964968245019518966257147348160129585052587595820848827253373036625691187620818508984737657993305711203532315521401187338232685120730742754109330385215643017924510664011116718579068534290215908192027799635348426642618603059592686617977512817849313524772395297620579939785785331698407743953301334659195661273300065343018065735939593012909971690720606309487482173973343995662600237893479383552920542153967740868006221893060895995220880684660224443572861571580776089048130376894381402214689091169166233712923314453331432260140380921973195796979878290103987377760879525412295523948478673247992899967031558226404169605611132093275340353339820960941960025588881174774154738254111762342721690712235833305268142227681277437015357255124735866192238335341284417910608937519638936219593269751589994659907349910469767101878872606062441787448914709516467480937658060733092781736316802648794446183629566765510758790319094598073685700945083889891398492701238506078743818774163146536743093989274013312394009882775023085814557569795034737755393942545336371042264610857681495239238440700987553673768187320192934795944367545196875256117267972286466753377193756311740179014205557477165013504059810824948629438681460131358801127057852677550542077100254224945301545711852079104217840824096786756679375583617101143880905002440098318701142556851553537181309511370034799536650996885007624788806185900609448065011008261544001639236814104907547885020276337184429426964573871602870835540605155788451646151709524116387937496289254864053434822908008046847898429816564086444414322042037561203209154961210312351683645715262060202697108657278077659400880733252721872530802699025465060066908813414733645253705252856396080853270869852932059204100756450018985533140481188710183630722232274075008507077669590884480208573023317796181687958538889765948128218807544867362821994270974919949562263721552359783008165374535942205119415509979775730310301667449221401664425221487585051692898447715638658047119636454801398046697319147186342118432081045317604165836139750743666214870411147333910300144981339361743692465200232075218043397698240685085600289428655281910129109845368705284070748355101277000736737255586873835568053319241020249934279206912162868351937645157980763566885063294975435756307655527645157377948661032628453555385741356604678684011120478730776253538945754141370747922331119919574838008499619180048588591579341038572532873938382027263398197453461874688690982132880186352648337842774777985366653493778031085806412752510727352203265461072074710408461686494056718818080536094849809272938490477445945814934208554257467198760171096744797245872236339023713645866651868279173606153078122966970567461009381705226166985573014231560586803767179962579991709733084715598008787163834479581858483904848881181733803883465248984738679398081759632179908048029186679482887813804709607292036602099268438394546187380589955551473901328765174136723733853519170164934792690879827817610322389119945992508342669741910945286822116926787617671082635432296354795230273268871495925585264437047877933964135972572484634862035182726679899815887713375215062354592638037541658891666507506378096262115691616471589467458420999617926536099639510610839067719344959772927229390302692231484615022964001093868893254209254216356166120117573466769986544961050478236208052679884311475119174592058758366620736008539684123014379325316964974790496443048239085219885848119661539822682240224498282840960343143543132892568816656211729234310258521698105449353802148430001367601385293088767332853413044968301178174855053859689753196850497695929277560970197241717399676892300467378304954206779287661511334596422072620224398298763417501679160551783889789085048510991616881104779381406614977180888768210799473836702544369059182845764833939887093298053040261739612859064273263076574005037523085340464848070782860906934005191035205595146062093837642674761912951148615428412595667505335864382795991042262632711323986337427793076375642434712271119109515478195820534356949272553684967160293203409621620108339667092250245820016696939603702950806017984133723821135282925173806855414481816189841052947569474694259213308833010157682110056380490002880459807322610843109671430692053259967550295302533230575655186501061169549129127918516703602354960975694136646507770266263134237527286785125059053800979137336467168280945151599345048132406014684481858414562432195502039715409263641484158802010813832147236837276222213408131759099694140275517326879895972259544877850319513785108785350397979991490636082003375263225358983940822685553832214362927917422144426050665104252842069249736400474408692961049763233744139033128386442985463757756405556397274009981334064326495729902883019171489334299889632381832717105287132800355415813998473153420931225034034500967266923624953399558122265080685362564050969041141421130187531197044788720028578786479513613245373162853440361520035008809457150245236199995502588047234030824523185367879921659238020338881581567224770303865085389851055967389213347228536983638708385322776261730626571174505654933589251830921429576703740308111972379021531566057205384317235043894401150080845568325070634258596733202055723180165729404873436586434378927812255058986342218209041391124554413317782321698533414430824781712767751951018516152158668450535520339596941162022488900804495290036976148045317440216151647825653126427338387918998457541358256322191009760566029368607911570542450482916109432990958834626917955963168879514435274298177435456867465008128647811944371044306869120761938549529411220635221822073396906425874982593805532047132939531073683430146950794160834381621889255534035230711893671785269133617490952928607848308099836674839739203042047439573341254276682627603358294256623746265178739194898496683394546529508597323408686452295088991642003126114228874869764155880918971167645762388073612959002383110222982799302719669963996202906797759289473846715088108675801835900743506346752281287713398636911063812288784213240422657255833109593396912024082575336798929263031114114123476280380259236783431602669764647815336745189804722102963734839455733786130610565608169676101293113131010077805176985572697485058309409841355745625458724776734460140595238760364544348078726922632998063606887553286200508805711549373066750254872556761463799665067763156500028492568339894616245933888153519225241506757887839274835133458315730649971767115161277069650260464707902942149539161984289928878860832503460999410835193479030956877149392535807529427079728538706387026910120680453702854845184320268706688247880447435788312023041920124102662380877898213864182078761059621457744308731462522229929752404994450470657159821471062914253045110207014649936173927834390471698039737550340139776996975287443758121115685022321971603133148547492893412547919332882663494280545092234874661980157288885952074730131970981738568607197689138463304315281185363115819979408751783323678644312719297019344308506884906845591889395001922050923032560867688156682009233374954776210284788086770284278900777740851910761666385143856526984105282999084870469909689572682533686711067466500175350994099332049535386619197394574594821368657867267228851400601155431053041458120010796165033522672822691994340641569069576379774646491209930044800136000415532599801598378132800021908531607734858728643753633693988183385707541215541830367117434728307863180124389473871966292578478625325885409645025927092866888585631478131554465814879253658865601580829279801605059415898677119661251749756893132565001245649646970813847777234521113709484423665882054665905369482025685619296376909157597472563600461547398510580344894442374606971710938360860746094640453852167231086844647801542457304138427412182843651591952975451233167081246482484486586989402768181234088980177223126489255652593230629050305425844239635090306227581580433926114634000274536975995500050598045272422978342916539946138269728867372860052748412365084227207443214993362966979689891409490819946487631543111095221931597939974381221548032594050675041694296895572576809934238740153800807609661479676629898273067241270498714876948723342998307464978918409644868248156701763650660611301228239264009901224243669959431864280755478280925064027033709481847312146580505680273905297214692485429266325415566622533451079176431259139885501099325208880345061995879626880595687933586440598320046274620660576395349436258847067215494921455576451558622873296477559177029514795468999599302295203283436509026259657082112156280604055051599345195297392723659584517829768584294728837989911508663664760835473886157163817946848738148284465404014065449718451156648483723373971470984027837345744826582011701757894651265538507223974494443586463547348768087446701691330479538710422855402291956399198460322807660771253798027666531223818816984152211414221888806357947514841764070966792446112568680127353049974144755614618401804080124108167428462485721899510275940556391881218166670322011764200754436710303487324870947790204928678124881510853843879053761972425667367615425121151308183447622709565644703978407937211437326283057147606232217292765341926608158635831283808605300387337985815866889093618187527416541979655715893339523412687224815762182091116715540186715380875421476105133252321976528838845261481990200368059373875192523262605143964401801771123086887241082206877709808306279613137267663026564662897222766727699512827835575485431150573973775616543802781334811989400766605524970465820393021306321835433034381496058600598867909144268121802362594484396823971577011157006283006558756528787479867775143251423910439845944082339680244507606764957277700129916966330471588255532461884754578028336369689486644630288038765285079345387105972084961298265285071903996124414964569103798097186178441902893937682249428335711912872156222988534845146872363669742113737526093916260649916661260594667254763597746281777106360074197893083906756684255035226337040619802478684683872240987332981199639370002984136627156101060659183635271462083636193270804616644966490811320097516233069870382684078410518078901498992854469126814367118355197110298160386142927846007480321431996470694866174769761527102197320579471270300422448088204595560487294208707421704630481727696735044705414218058921381228877167131926664290639499401417775278905615427289894489994215657585490337791402094140065098599368693930170974039045424520603099617835339138832458829281421467630507395613542125276402338409136741888815343041847708355293130819908532466881132678351522403820870198893047176032280401392225557423862156584130171035727215705266701495745846325625344041839148213017672273558158385984257621842972397287765520060893444534127078094182582676371852944049013148360106874047081258151566046902024081864328787894200551806933266321567806433477907836457427389580010710561099118483037262780689251288712361568609551707152804251243461583524679479799205100925252772061165598450228236772248681879312235704071965643978672489711148264256584892105873948969024142114243800995243534211182873181897781411247262632938198212998301888104566127977773047101230804229023640594301856485871520276509737116482289675194175846260963410822380736602492384497173927224243981119899042360971090997912438637467404537300152926878835958639168526746190439050371176941189696133235393920953258845708912650537479601423030280484675728242347539158288781202405652915448664675182316976088478833043313931671168663550842016422721760459613813026365443253976445604752015074091533127170747081757014990666327798585508277297458042767269189943559851406448296126535129787561479166480461556834426583132457936482509646947195508739304508241061477352404209310581623814305058526432140931715473049870116654056333837258469134425955967773324850303555939064468072010307677919575980424851492822057332430263262031761094426708426617023187338454415840949049146795083749621169334840265326486922544533272091004322614974619160947378057795897772401255443298724984629609956867357751500021799489992689823857142219809869897100236271913814894395410061421541478808389789663872035274326579892782513426036841369376506874336831535756186609023660209878962470502736610917066934307711269227275823619740138646403820896607422426253576364459067307045572460741162992782036779156519189268362063298454079434414944384719808520194111697541326972010208165178523726132668337450212279792421045958083521646462102184872674107729000242252649229224083166913934194504462130441716848177492263906598996139650896054213127464164116289489634695579146101845084499824664665707007422796274514698988489827301289733002864304319627984638450724525794055782162926220684130021558072933550632467839476713504214383220398173566588428541337488428373640880433223991130678062777563267871471277731164462951475732610706118609283045099723833706963614586883228013891276186242719644695768106005923342661020722485629716444253206466562144641594531466749117049479040755814412724813256509408455401638193208366474537680831311745681533856117535515768523176953699113593128060712206036771731959841522139042140676929003552680597208973287884302520171684915564122089903147538838545434847616248410682006010901197079374340809031650098227696160877174476026136878997339281652386129271817299652380386373418366495649867342842936300327638002230050519366998271029757098004510764823751993417407553634812587188148004810030994279311647957961105377653276382933246116525553093733420173842015585841437797970034242009712216994636213942515241436118914168819559313170370010937810315174369131943336129381237151484257087352529611103265957805321788993210719331359521630065667362280234190447679506444003258439220793763378118690857333993613553524511446995099384805122449773049325442722727193634098718770114957531852764359601203093328530272720701395959696994117794979022871654924140395293319076858768742493737110005501148589092371403721730033130941591680238154932881605779657000433078030274469536519019997976302764232180504327239323466328236551411965943355037372377213046498245948494061060927670560669093354044853477867979390515345158039093076811564874439434191282319373894600457090447018196435669381972856226821179242644518725974043754494031661276728758517950063156616040719199502717802886890128748310387701871075268493161819749478047602632020844638633861703693959517318958463204974843191549861506085959458455708052006710286313111286723658256634027977870134693020595923661997025219351911485652044140740231847196381203429278689656915804953391061180726049821915283086199842664134826995849141287122407341144315836083126924956485371834875891882233956142280578043036448112206206316604396847119372503563744782609357582358538812799782442490592461077116786561246148538423485333669436520374461692281618375119463283789215968377992443780124347597582638993746907639360716859745502501031688725736555549636957998957668288185113460418832514788832323248940775309256655475110295266747237932261731949400738243613455365631467496188183297169714904733184210806815120924943683259488468266491215524003250318249236826144298213336758536923379570733219728229802236459001806837494696442374355075283835034687852222645943057020666302469179947904874334824097938467241481649430516804167918941893041808534502402036654453809125613551468645909551974534955662460565037400095781718627565122860837698549493789003973703606581170983923854131742074024513737654739145606744656090048576713161255595940541311678157655450576940689591344610370158491951277670074311398788921953056457803527906066207082360468429697111406311808709365335093343526412031115734680211986530505133807046261555821774031922970162959795965315755110135865390301556844590240428965568803481526004070755542715280240580048696864722954334376207739253905332355479372800480584318838280850587333922432809373873925961177981660603258552277859784027597834721499967396953967519579149501262091144364447059501527174370229223245600995912001782998686190857887516365209176900390529791126257640183891106828776009540612618375632141078603538030437169815608538393117128199394700177914136963668405172387967707220096301185048106896534546029146556218744124994310331383703851358886984459394330862216088639358752419691008584262733711634561783107787643426963421040754632200210981535564611160562391571362865403138657873835332533511567387337922315695708124644939181363975071397083348146698094472243578469868201706883511902769901159036833369300988734653595062262140687406351074286946063842132531148839098897870461629497418257893158404079481064186766449872377130460621104461353377400908010602692502992467562045401408068466782289023267575132213520764276311701425393653876424761574832134588490920021863930379690975226868093490685427065208856906537268045697306564209166257889635909085906103913489863830138191322955504005383215491001083386327106019635891523420839966691204364122899199313912663495700713333746952029073896677257020188377541800553272629254669223415121213178161649675919714936451165028226780539386630010311136035126150667519890075010193072742149120362447962978585784932204857216799308473835466887193094788492143929735546158566342419754357600536862875107041087990015813790888018911897513743858387246252239647967162036157657000104232667540461028747629878877204942149969413948920458618520908913702750367082334526392587479131133892671660484895400469854770684265287309826597941729463842384815926462877556350849504548700312672730549410409449545734936981327146739948824592691610254249528651640637268861922934786963677983720979145156839275744866827548452463975563049292850308816555618843103336699414891998511976738868458670855766002757517163677804827285019209751949229002584145114512171791124285914568002239700229976358895342630507312459571631378666441820512825735549306721146236876790654189179480546770766839287558514161710664658499589018368857813318673473479482948187412529639106425974687052069208525674693336576004392539888178034729508435597756765369182069377798010834700384192464679755914313423204231435604945195920886603300556063636708639735475095290931595670950359548600579562636271134286522728907528376238099508822766010834972910460415344606647856676385662507948632187740924114334477441858591102375331514762329523157708302946030714627669818362368892086116950134542480116410085341757756597543082723293222026128627492465273920459308688050693419916326317293098510040482904107272524762039045389040006806679081221171241425178010250959106698604058417629788394496689888343133603467245791593102376969530894926221968199116736210434904253842924925349204374535388021368050964696628344318280187196833126335547295967132291914240490327533513058248978664979800818529485856808432098553180358904733905799749936206744647316034114203711551100905996079255110505220840547989143640019252681252278875915661666697371464812983794588634978181115139251519996931665048983968022481942145840218882601009638342713290654093636024716592907290007100979018741856061153790181702422095611940614088165030028391173673839425219433562798877244179457692505692243250783982103431803026243412017319077611927491602081221733296676810842521407127952897278727409042474859827679739625244480691006784242985827018933704441413770606726685094461680696730683414078940091370110435899290268722305495940299976134564468943453567648561675910171277798964124107347306364662076961134218657649740223683775748501722042288496245486730543750142708933440556806356051554957906026820662921539676315055584527762480035466347331822410471381805999801329922975168218194299102357769822329160122521058428507169814217131547855082566447413620173502772882427359949891378402697823282907031937542114824144291295392113479656943683506385845407610313353669798264951644271881994267578970010458937940292215100855736265759799738240954585185402415157056075166552310539305446953703424725786598041467980763755106850128982103892548521324604555042490073291764443979085373931308354319434181438968664068782299169114132107793033350033970880699420309943218367075078849831222526154242359797860689936263277310614319050476027359059003531542306847161282548842607693950054161725062613343291781904328041567789112555182570669296071822648056359203491490743287295352967576299064974510318194305087999550781682439987728510557923351295527967303022853836342062478327580467672003414238604774270423787060001334967062043667732560750892135773651252712921136141940456939064651525357122819646588074765695158120665934863543745672200323556848983239135112015841571891963051686462415184985579279460393832372607576088852535836575603120650395799353723980095060012402477827129711288526396841070292610459490471464639498578305908867500409689717642616492836385331104922751783278321153248235045958109392204306899298642509155762889795636549929194713122032179035876506816824027576711139059795419667475644815756511413717920235451361756654917624065036787424132450680278233315771322288923310871744901639385814781021814244163971829561740939405614507631590106272236810708453171412226592218088446749960631910863649891166158612156158932672684676326535034022493020455573685576559782369555621014214556195163652863025690599431610799298592963120295533099391796638770600580529182387353648119455578386183418457146747929697786312183293638448991483237576134784484141925010539664249648361049502607886514314608791072254606065967330776892350404277420517021920805416142288258114777579056782193040153961143248902103423866852273429108607395519099643484137520034521468026566990580005785657565317808424644557671342707531530578781939348074994403190567471346518319226636227697149485050964830727553389276224251183615902236352202149199410938293635086869192434508775762120238964242441325656465319538505974963592892567488364233103014485774651134395256970302333909965871489795510653677729181732768505656178303863326790228177393457087649017489275264350233541571452889943670416828562833610455395050677565140839015714950647002138140627217227914794910956042846483351243282103777147360101864787868619228526034685320563072088027479078765033321133266641487620558587729625972145137452502468057528633178335049088611470780534318233063495931689052335136820150463536325505053246834870953997152212507868550248558665801441738667805059870162963554295040699975796599152284965146407423182446468632371563518373841530913448601559370331989549323053472991398920394252695678862018780250473302111664032513685401744262689748565474637490772744491943685785800176617838402854174281774473649612157607079904376392914722059916948333333387370329434739816020216808715027982678578643958657740430038127603126172669169600935052042134654330682563725459769080366321320270683801888787107005455150134464073316336730875544121992116179181764506544486501501910736877862360431865790528297874150864758593345500849783374864623091327244045184048376083308407779123514138833302247740212802547017195116452221112914260504023792753400669603992752692335153069785493628436395488259573739097919304196689725785350715246534944719740021807765295682759878418132333972343317888984319790341126571764881326095566374079988090280502599812153899756122504783597081140219916522544802501329928435899952574408575538974523099649173066716928369942710197012560228514474966891522302035615743379040884496384895321064834022070024435223572847824589215326489942997018939755860477481957020959738298410848405562368278843932082675935503767649832013420358111081330876592888522106399336409344852237791958247691882944271971929451706337733183799317242012588017677515273726339103016422791686029239979347063905457157343781636186254696814604802384374383772784221797011561941050631290214291048501540034760183507895412897399481802814264829577656385950804200624812846390553892777761844575999322416445168070455984556891013175193354049464877166905353141570529478393415172434740016424604297561103322036243192903375444544830241998212679479703636351284658237726416481478163707067446034302956072678916586293934200335442447684683729638852214910054606519204238152307540459415897199449621208265549333387071484886576345424154558481023697031346423303829405883403564039009013226363848306317389758942620896534339579649928585727541527281976128083814398436434080389570734464475275593637743866298758914449046954200664225610343166725426097405886426533729352472306799149990719256635843313443142320689543314059700215897850218247261707048230265256775193422012278033629236002388069860276693231973249594586813421069126634724002000170671204232363499148949261502922639486083244402165723205287170576110289743100134902880780771523151180729154470879839609397848040951560630684922565841844122708390528192978202450249286867671095838808073678271882414242041657251563095308417878692234642570011689924078931199122812785311180039310973595206247358911403522270600751570450589633469596641309276253312986936786542657512406884817851248939982857550816976071039083316157408780459365190730466915604702346306281775853655281460966290621345206671480877109473678978805109379482152758762767380884492919168114113996633318622774851897278603056240223209913715926515713630127222002647626709981973125276947672381491712100625934764399601147113508137958145099138941756796022402384324246535739753650040798943356748262448696825295110670362906839442914771406574195987840122448820690012257332127419940858779074817933012061067438937301723869095197501037352500155407089460875020330851389275174400624995452140356415257761787066472647310332589452138474042366217809074820944026868422165805284774357145776037908134311271452720023593103648843607959594062850374413438169517948769401320961069180210516743740958555042908664244767150263274892090367861804514599674373058288281087642476998712704095316106937380853032789624529658031981166478788585435674438393766190529924104949789534054560644433324743007079367375898174025891022776393738072278730917982672515954344293510630613300988136751525900675982468350008261154549695938022868037036058092883101407639149282613694133351329970614202238114708504271773127067612172682823364868420972881775602241664474385844811592445818161956890367397947759585205062707543628051752212338462630570408772309521444413386339051323461060181974368406827022265383148739445446293021949533839159097887737670769247092975210011964347839752350374987225275164114365354309504583736298897368619302444484685219999921498474764314149810598172623489065004019049925289306424428625130535189226758390708387135479717774058079964321715265057392559394174540739252353308985680937043716345962669000637934158027074574270481927604372821631071342350851842271033469846857727786522699085772955560521922684909160517227583699922113486352386384200691132266495654619472777353360222058608229204645580640423655379674908435261242134806266128314158912179827919783405276714990365329892920946914474129703592141705531736534476167378208863657762997310328606092396348419424983692446816740102800765524662891221844209757550111923563001901531283785636862770277755975012162425227554560564596434189520260853708341959840872257821989432018566318904442825851655767028199718530918392892003420111505086473073304585855388891400256470958963754632349904589146411030771646368129097203104239104135957100941421935035940105069823811914583651387814050377023674878594749421730265591255497855523541777751571771214731937179694177581741763163291012296623168385588452956494035260258560057486142875262031157592798420799578561500797029602243927528372010565747307482485968896300211089882286141470655761338239467763541017342371151460501393799450104473906536955340177428052699817351186633089313260081182577518734655059491332231793386927746109920879144637935327917890623482083566876046583641080186539986441497354001801041858132902584275314932899121690958741224459656386812090360554029429013433144178492982733761540449506477204112082090002760524611424250057271709745559198605751863767724491388776351952146656417702503714963312212241289032273157562666882732960892981635646745612162446334884199142912061193204899830584626903892382248701424022447049446818670641236622784820292584151235146624216276927215915730556758800083464706709840844954878341517203503449685677373638054594855564437397244653872938688987342334465116840134695282996782548652047434081966720886600661616865736293203162271484660417696058991124800209903674888920679232419249050706009831956396682073564729742722282448043727062552184986463810827137408674370458762116919192691801394976455896344523142975507389137126125850842044073318576257469888313251175195564516895659299507884387647074419455451174860791077379833700523080340803064752238078100445637386253578831096580287188499744829761905749612642876080591446484935536068568917694868693930223211203316101466587651026218594796532139217026628197296559078714219977893836091994537704228859906106858664353284660675990654608918534624207043232832928576462266130299026060285058459804788864048866137097827233136234399366043774684024179233318511075302787882320648016643508362163043196503584027223055310545399022374484557782846229832663670688714653251610008464095439563639901121952200479167694207403595679955009306426759978382240482882187329698243559968673265010953641512108597710252742960744205372507979066620744054264509952916519237188117743646886051247455470674472112820590679657815984562271835273583270059939527842849636427424478855295431283647214287651440492232286542242139639587305613863594360640436133298752584111923615170736576749090448699457280981302919832985851121206930872533487969140446463770869634233229986239802958375948787559904715780381228947945057934724099357562547463461362464652374250105357561726799993690807525533043470060105110174021306911045229285507027100504746639194735178925617665524096634886194363052903563614323225196927127534169474274484334205332847744679255177946302047374529877062270023250853108499246753462892083488145605920635746557947533292115745969839009795767921202043070129402963446081466362247735558778447546356849822763847932221334346641528297553354619735659258928822004062672199986733478302943588261672530281160833994737753364895347894538109015310508549361353990081308250913136425346950067671858181725316504725589101387221122576764590388279538386742847345791423549185104365588481322115136156451867303262321013065367538430274065792196746596680217547300063046009266739484649747986818736234548828881966256840131937702193981616500992375318456942748206349929418892327757496113827577603758619310648053355765119732338115696294431225282448115504618875794338682088213852025274643101573270740014823466438938370437232659991988338718017508253488474924969458836217586086050443005853481049404392871532133134736901413295631821924892031715748418535999396566452934258131694120787011173900467011858901903141789905066005156907928955543553215786648924574362967895385433425356009427998787787044356666132735304247815174471809446530729313747789543739734409831828946638217323715572397773985489263401056844528036247569431146802297101841221867934841602541147688393086379583028553750379131859662667415802997406296384129672701208204616820961258254799705671815403083133067877393565086206117664424896681631998526087174972075700425739829355649009670106114712187480939899466185182181259213920199544777864969192712700774868113259721402447827204283999355706641485329873159379470023366007436757542060656368131215159929538516994867449716097591799683110203195108092970565389264661128262654088048707110963799098289762552453257125917204499219254894376616695064777813438679466092339481646909898682453226876341515525257361306845289078126418672359332302041207549910300454270725364310666478763728023672120137479463156333446351456001827611758475176159190361897656693785420423696061900292004567869077913157184312049792922597439074120163263364087775019600119891674772982144401521705718779677705644390488885750419919020148790113570072034422218075393386389749915286285629488780591501788306890860882617349723971590751352261367256162249262436606761270896727579957002333642352346967321530083914276298413623543078612309821325396048475859186682837495953698055697772997733657259263492804185689166176823592950966246696522666270896966976914525941214291438314791334493010644114209197290185371012256461312732909608333573193790672574406480758833408281478364333374202195615618805537586068518426867076337683023979104941286280564492815157708502314133455284686523842945363000829107235366468439760242883529777979461495149622911240763885761695890601235247397288185688958485944266590732252034065591516726669391212957303289480167609869738602699576028562827431219480136676038159674910179378319104175748547183761399991887793195026495339485411388385798262417121363207583680291542090864569510404072097473848465408797106556088017217812203263894641594231232379863432731561540511251220883444026697902105626781709362546611523172094972642993372693511604734219073541815590694557348474929904516356039705931861517839232368839429102044622752605159099538246634284972477850101390447381236457386714379862172021203206398056122626653746779281882856096663823078483141073524215465194711109649507617028635201435344283928575914898302706774831451274267117147352587863264388841471311106931242395452091507123015349176117572110977257212842923995597414387479244218289067135567354759860912163280718679782396226523497840976301785318299722562438533506145562528004461534298225177740956902023815411799034966117610564844509956322920470457288884637961257312661152591399595446043742668143256888266434652732324452248639229928531153867979499893172279929104564815108846028509292291494862072829076183922352374588898522195251251900883281360982861571086913686269967852686827576959891574229305287710019014998364402884456796501133911569144360757024534622644298377199923200206253977137454481122666962766467024106600473857158522053960697177019580916416473672502291403623412933377040696504873650329616194153580538693641522133003207675930447566633008400159444962696872359357661737771843659098054071425013751754042271934235332261807289132857249072337502428201359700625043837665391239245382812578073586416625094219082249160380685520185018590060085429170118429884976290206207734504682986251119961227423358995037914605481392227283699201004391269224370173669218291467825627788847015175589627013330952113919654169341398732502018311441772956103684751045143676970156154819399665194677494128510316171162323558218080528101081967525209576139603821332206241770933599760124326133994965458499473963791220745450066184795345130441774937542661758786148001132036830944513412547151958846689669406406695451223873125764782722591502850931254319082930016944308581510106979951046798985164384620387476502952980160615456794857910909115808703554976742991172688063389788769471288049292454413374510753413714460210108222012259414458087379716903586129979759422355864826168018202520305457053166078596630126459485741010546564028740262202448835629202682372219804252531853721114201080888826524291801518883545540017723804749426442467152203620041936120019709463312318887159367303501358960590509428291882514460289236747727608984517980716922873222676906947770707185679639602342371201769452544362807544853125771282906750325319786695621067908282956249939413988175441656146124068677661029576436404733208768924736325438079787751663059834657157305327381857444846355724228399681446402728048406307539783719392865974164429997082075828837860689669495098177433902237530256516432488829707511043369757955521122429361775474486194951719839213919930527902931641725319557261376133573070483258292905802872590518932579773541184541882697914608920414914191328141942054851683755633713085394909316735091861897824641537995326777068459250346748788260373651453212473523824359336590760820616977885329093547501819496345847122583043321202201081714107413385624278044092125911523235762528117365478181801019148999185772464091525039537549473842409222387009270977002096285461232955590502929081718903844794209200538473067237641342660045504654799595832568080765436443776059878949629398618149806661214498599439621664898086791633601455686843825438158749536362005151897043435858565827896539891436498056725202285611120655955386007590597702907550530035280103817486466327864267181915361680113996714040077545651969111435386772945076808086117052722800428735852400870291836689287557165579497415795264012521901524791348675913465469412446820959709325992127263819874588103966143612381863898317422359358043081851383180705302823205042260733900891075361673528620073454348827624912800724520682449963931526222665176468365160679852542084665252840657563848903498294360095634018632825766900681778677692751485535986248219252645898008740759453936147725614287887095217406270989096893319755076010669709559822667181217510550909576688193137585061030379131327984104235472923662666201236681918188223009221761299996992754111207612868819883145773238231616139243492705306153326511781719615421579062657626935178365627438605909334741296902308865665101242043425384581380782796474922012342697824002398277302896159203861215769928126536855224886863519176909006210249450643897465008068427475407834925315918642637292377381504077164917893678172756165531114284530608208396260823736463774214499183711677756757839122982034475805691404852515666499093535516625217109750485326137872978241762690688328030654978735370477810244591270191871643940154272500057190132336816768004335062011523299966799358196434706468434153029479636454340625381647760110054138508595564306395092910326324952013399680479328717286217624775126088077974702481210731097982586185677113055279246935284995516882602687895116102990941270118547307946273807244676865125124180583250236386741019293059821501803552159232208230296703523034111298488326828926332982448793588830886655432569220761209481541801482273596821766375163119583159641364619777015345595313142173636100561561631238622085903594704542219227948097822721016472695687181451838112050989627178491518713937862908617803011691250575081717757666602730970490262184670776821474128047917721118697831974659455767314206543762928846097300361369732189280771805047055138321076766340947130363332032063938985119903028531697807520337840278757777563474483826988551578801722462755635293314532820853537781419099205273992550118105924153483206022053538536368890221032714948519257093500706445638169537979625204709973086496231510434158895791828702390980612774892923914302823763737943781748299050786633884273568310970249313831612162889984114859037859936091861325454984354254395836432802475076042288600713197518574275867332341673094866927959278839210542222341669069521464437110873142586839458720310180629061837264982290406101685015684235656745153145805656164931989238809125811290073769542137395601670184775396903971936282539368063559695254414645933074666751699955176575358845218695332687409787276474866360552332854115004321338876452073784254411324358976668502508216213091201687733233406269980909189687189064941138968950091936760809257076147797822770123471755791518748644646438090635760706613477979957670837383961467862641547974573745962966682343907600007020785372035206853732701642124504330170503136464200498343088376388163140899980116622004030739672613596568976153996792767010261744675403468684707721064177455847257518736505181618666041798093015885505815106704028810103342485054034488154397399794186940039914451941745275016217915220806330684333763236748016372121971578880158726783524007246043697621614786799874003139441210373454398719458040759851486647303666655080407757472241930243738398407594919577949867495400792183562796415781985007774722864759325748304520421604583867261447106822730049496486440687149093448536804377090973705027997292983091475511671319352139987706969330857849597125027433743386456635543795083547485476758400990225264230393888234543143852273750164577998017578452133185063460379818894192740466621894041974462674519503602367894525028651763014693561091297727035950843094207259214451769328388160963303815533846856372306873351125159436482259737512455187868025455983417308406420870882999552154402693002515040950831762840517137959517724228302713339789614965107785769652101437946091611582894865387617519643127250938764735590681603538539660912655357623516691497631742725470383254318061151012151838863428472249113446290869405993657068481680213877861601087628690629480499532484349079785300941769910087806026737235066742524943574601328236354238350633706289772827430381023848812253351898842012023924203462999130873847030353239282550522123591458823884976446522717882855001496448097905948602480688273938887209848796681939568587113832183045914440102974989556728725492787447907238857572575035979038493011389609344351267542525403820854368340253907309298083374977196774367775072541590087151244908570706332996649136672894022283468613908259750494722499533076967333192277794894535853232084718118200687044690980497635754729832993022530464267559367657591064603090120375563585367209663751313412990853449487692621068100624108345287553888476435556904713910361213917759825398615060541555156374212633003058731205044675464472597801527566970852706072596877440570497588033951341628307138217101819141721690277657123987259556709712923336935341116478998636270131016398907322374145287641608046577905990018075172330385261078742679228994391141652945384257772654017929298435391603064356471031264122208374103570221411791708709683713077084750972486937913249509188172845829191750178101933412569519849012354784786055257643668008702152358339005786020790611096037258496919580050085239553580543035615389925310927768174562966132543384385723698048005277342305853556528668225678028647809520602623576179146531461155628527324233075730371773796773351666961876511688665929975055142979835239547513329262282880769721209427994739973956346187485283820049105395168375527956251551033148568053540975740411037837909418896630388849419608098353148405130746351078190756486891403733759735438442107104195398275363416415620162178336321101341004516677626305954776342343573577021221842240069053067366712432524432199775708869943282712295868087069876274833550080112233962126845506855580014736392607915680452556860671579858323181515934764905954740034783218946113329276476728008371475655066337866556550904468052745915679512041437017701716027121091014038331708637681556311852260784211220569037346407744175023812593117487554136204261345800014531643984657578518976307642254743729457953224176192111604535456325862534618877621727641333096197980834735781613024095008436632978792135023643994561972243552379693763196766743216018863154333081769274907621664965556608114388475464519349096331054385742300109120028321976762706345503613465345560393948395126057020844580888592043047061095442237144760711466009180220950758452287931795692160539867810191760292015961528778984091167868889958023534476029884158848162168247834925870805715930361940976807251136841534074510379631286304939889180237357859850814287174220865848012521223624150112039372922410239138202084930774263336602646589701158311521396623564144677418049929894765887096486818984313433591513224312079363745350499063456049917431230547460602818221147402693478703453534507535834030487809883429858084457186634880571173666436902971493603153741775374176216820759543664795433024265874780595020667070172814038876251016156596443012227489354232937957170118154427817118454572443670099488842328410523501073460634725088328874215911040014136588808066433647161299208900481555727100584500219136566568133242575539891154828722960176045870679511475320574436187947443778032167315354419346707215707414396586452977217317640284371433131653478037807393275751014548726782619945889395920081411138244446171693685761122896346130587367524578507543673285634796474246613803234180272051047785852261724589251861581988734846019917842014435952302587302146559355166236889083254937339855841631685423409021885565457528948599922968232264982580120678532986389320037216538932831368323082898795745123326954405037339184648219801037844866366516311010527334170143852469638077588608966178958673042133637138227427522484604347644100331100971765952610648060098258230736695144179486097146090753883805798874058497428111071554774057437881974088847402437331060588456855499933975371952988811488970657455169027831114487247846055807038635725923282330061988531160598615321890775115080437137874436360142185515294797568964428713556249425843495885818284910314747297781747255502652231644364553039413837657111019858905738722363679953930334801838060274165582127634715361304049524541266261267840300281334453484425473125721583761710127289294023822784356570454765683556369616620445508278648975437293570567706627460238956620761680700564028554218692967972853957445338641901533586468571757077574877910499151298957802692482604988339586169063986739316207481932403463955976864723393599038899738756488982152605548542683368277457885784276693025687044044512493091234337280702886664991168648137432942324830335769433702830774530522671910499062555144734902257328324003229459708266985165758757554612820737111069370740598596542606543003080121701879995067184509259382311085035588163493816922433410883642568851752301593065896689880848517750215830175421486127191467205461422392236166001832403753740985553632954659418707974317909603744452101021818509782803372205574664025955861180413989477565750539261689930070436846661768974075261266271836535816474066149160653438940551419457289694559044517133204777928847662908028202869725208829983111075521634824230830997942780470656020659241234706267213466767462753899561011144767073553893447084367349897896683858874562266835546315353473437227954699046771102498474352199347473733294522660976324170322981151061806902299971863265641664944894163967063257646907915177903137980463202105441607875690834854643021615420641605272299993048235716741778743344100420267622034880860396366282329925214840474144384123397566143573787745200394172260066125973196499103248287309498905985519058048743153438638837578030064855610558430752959559238568486019702903285143303274656379242777756818963379250463874402496099074067005859168560413743271022237942232880811568543875772324203651725189550382028977322373129185380631235534162128547252876883458477598032345742258532295237011131875884707862784364695065025370346020107353037479751075794066244944426266717311696251541039108142788590046229603460706898046510361318541944251937980530095799663512865309565400594619679073871260441131490809402451611053064303087152918078903905550358851940375400494751317226276796204242386840737268193168816481473164252307641498022743424710486723071267198944795899014547141061756208835542993189565960292441817469929767937174025162737715941362877011267489764345195031810450945858398965718316174494774003874375342406503089057793554895545877585226910980516165036625113933923396440411438209578849464750487968223597541551481361834862932626175100566824552269616132470592147825955530363006411648246556553424017850964328574595434350811552308515658022852880051282093834700453815438961047822425368683800596565473926461766624792409724338262791011882308959895964757648911590590855317308144868635367166920816982580898288483287713888943042277485950832147471369141559380975760313420800945476719291378658512304842921182389255506827603369446674920289248771904303690958839591832616328637138251356657306483413436844074102597816286124772531750486371523980468395424107516183772267077892422462430254217089472437192553096984479759033250041341037433662903999690410775216748635385909482862920858047942032681473160184015808372565095768238500511924383971899248729873474752963990731203436409037612227956502389645620308787710776623386099052633033860853908804994846946412347671020678372170204565246127378762219139371626150600749405568530261456518569434861765055705444725072724485277040868049733948745221708270406125616230166809945510004348545719313827763911035921149749077787681379574674935429864467938070013125448795273579516334244450832977215357584729079054816308496354946809389868519404750319159945510821253968641161462880154097363099206204783358689807153410007315250681486736069693661808290702839963708465536592468570360175667720189485237237126754127203264790243384125468228141818938645315282505613642239688583896631908616083460556341792495620604929563570275801638733899644013804940187277558740299263423423977261686821780204089330750408396509178045124739870146272796571641742848544426010370141365511885096081200019554658849938581859580284291044073643634067247802230466329716118468251671414271734247844458270014814052747870130498667450263280091612276869463273266066400776777417155009975483950030250758799689045307798823542452825117630122830063439013121277215835729088581598455879838143520862648028613589261243034168121396497930478084327958515827115926870479893656303540973532075196931347533250715544297984415701603028088316617988493882035125001669802772144725064110941904212989869257848598344723391507068160547811655580993041749942340165003249702237571728310482804711146562967655740114198096805334454775729255484190320066225712219053895551484909106383342597943805632052560988313099605245485314623437705983043560136644367400430188261851062115327427275201794697292110531188347031684785427756044878316776905699257875201654659978480309361980758609746172246571524199475431495718416590301977412686358674867018199359025193324108624167059287927189293427059108938372506169139372474915525183065001844407639819417606935847060245988841905964211479578462889504506500504698318520560970245886954528530839771416317505759485395330964526781828999763081098762311118263269089516468202714216278830159307330283742894004204920374676808407764306868250140180512092531725502550711078393095424600038661860480685992712793440316388870960237154571356316003580148066933329582022548132755448123688954610877573774765287670908394874041469682384881546015947719112526529548615013861105562386470597401934632426828594111758867278610391988778837743280186353426279631076132147422657592358153587536007950298135349515060406393643989882208711832221911208933602258594907744444085415570217257242084446756989756864271872619243170997917269830500392178559751734142782280533330312908954675000706167550276245794927517628181076721077894627823659346180761911813812398684967505838364335425106956218131873001465310970676950914349383680040470748849774247606123049522832740577981086023188600880020143831477355007516279124700444259962518076017390952236322230413767842440991822506934822138908611341970307705384236869954039377438175038474321676641478374801023819268556597431429280475534606540277524577079213475193771877217549309505754429748593459209601712619741811822282169622003708962633349484114955312368510139805512036677772125930272238662986794918212241405420793731943121810904453115162051791757134664196486337560462205186570744172164663729603736437690350742761227193484523504054836914430499283673719653630098961287064798201249348722784251605874331291395351248130040032263511602796754525992599887762177273058118556668443022467431101098745345181261934846952886702673498956424406370328171979771656373348192761328513795882075908585989198375729005723746464644518084907970936490525428283421145231308265199937994853755512499776582562665628235105879529774708170194050628018236074487031584677144968897496199631202386171553552600185894270173597583548932269405252427338119283789276793006871148308246018137395566643550416411236980089232219357726627306820114698866777936052066233335264669044823408341790111497375575871461530923595491422127483443908992910445230224057007327233579993784179121207510611942637228760314375286929784713282483268255002657873739777638360532562285125464444211767922989383887738513378836046425673830017995027897392006669294087653796014511384344316927649866333764590082464842304895885387036936474748056420739176424075839471367196778020312940105301573629001196864611346734667799303662644996932614052204275364740694998234726505977917519462620912722969878618815877771545867997796885537508464139489838094196592803552532637371232719393312151416610333814901705333700948300293359691814296585053070089806201394952169941791804578335775307132266901410064816619351870844830067795030849118544956819525848709617708761778926853612525249643186760654974081729939040581859088200601721433179507758893549871154958920679069123669089639310099559022004683198966938903664678936413318329717652121657777954410252895443099010319846196957314308289368100420132674023465513690848387675223073105166529514861640932141281266107531470997021390915531471979084962066924946700276974014206602108693372599317141587467021707220722439995694140271780784894683412864644734890441226794967026225736974185464455944051913560881842057738098548392477696380242525715119316616118576237398074932811151199773765933476421317072698098913970346098786416328748384074705448356771437070330945580329476008861142986261066951881997433259419043112597375500723021955259744459547825508498035921236132657832892122515876649064659328693353967452255755242230390233146893718921660192017503325337634492034314131976898363256536210360779128431334040988213341195899370230384938087220022922154848353660697937015061417546895036364527532439204677354196945271200274637627808972099071109089508328974179662731601101825967471061721301017592090409523825582985004577621336774483054638043124565461229127191901838382610176990583303801731050442299956770617287743833310476779218132301495927981551708205623451958508111990500215906779371538614495772118359825733362926370319782404926388985630627301902296988437582100634818911676692281536586929719644232906411562833528575719046600369526025974310546282412840391551566317544213468353710793397430189351089973054648196918219358831477685875186663761802199825140184989072146460110485367594051253478367670049149575918542988987308135312388833425275311821118373199389189173572401030125851001628478780308943244821332676851663566103123131359490552762834684216473174247941913819213542739193570749931391114439269440555737502911552188921716900643256999199909948925679596798780994652701351575190175449635625581235224075418621552273030555668992405566577850279353401958427112723868954090366101841501766656699493556186383446902167354190071024945001148285286062872983337617780279289540300682383591611841026365497118631541074595860624424470904935515428056081563580385841998645646302428192354289111755288800667963614559748759608826610633124854348059299765274924738030573950870411270172409951703516854452937331951487298381367139015997290935527868842769216347411562600674078470388269484713749684183376350092866959094480596458650819793736275676627784628762889156314992998705612511459596702004226984167504351360269997254567541775615786236545440468057122811032730440879913897758081746393242863468096443188614870575776994730935699442961206915647353576556097846834790591973024109963975681680273639753748725302248377768762100489993180614184337549218847824125931645943026190754276584104630322588901595814172769233904767942570411916193374479900116977277834882628201652447562577635739415849267831562969329558392559018225841016865145761934001117994687986434637034168759218839440221890879646987324030439357583261278011068509583724066635980891247978257939545492783846659420390752825761959342969607270451719029741697183579650218935684173316773592728799389462413736737024493200808452559588115834446208928961825063110900990399613947952261974080895460992976569099623687948229196118322144224871448065923843888939945724414931378484985955388145644144428473837901644284481972955983667807343350232499772895826087861585793614602371042066882499795683155135310502523547670538499660624617012269873101077530452147053167493347505648782967861486756635772949938102830222738901513790222796088776177116707091067139355461569130749945562641042328976910821017922731305507602409188879937667644286978319714004115728361058279590260402941044108689058087604657571939221038630486590948846165454001813209903911199251880741732058565302166144303189941834762747689095937075363503825653060724021159242117779933114622094447075696159126895436669370934179526804464942619883381094677634066370405420229002182457245251392593297919213421519897348160783495617021637002132195939668900789122685707065733192821742255097477128053174666343127810943543205583398378374923009281522146379649850120664461881354167053329045745242663022728955294639417802740036519019829435604214339366779466283475192494025466710184049762638533321347946231564565300047073852086991284800761289016199986677270675767673397986338683968058341729004929890551007344527163733400455728823446810886520997915070523407422256383909337554334055839602925667779873307244625968569652494662473171629985799869919866285069658768072307510869266694349785157306062621067008320708515362943955508382680525311682913503713883985237204341048807718345417067683004684909310990306780359130748189818512996315117804197497202347460586358340780848763565028385710100368956428460896795018311919976096459038120925332483932028647622095766181675751775520375343919738704365384320788643905187868567289764776450085660673765763367693909949695161729282268808272081306923608006594240323393447432822190787049289125104081162738120480696340342380163050565041335739482809105906922419951982525641168355551563303245383335794959456253835188937095385797668849129208296399109429619981757225025417185157781383694268858893871488903091165421725978225694115284493492022624560562254553729278856696585588382901382069204304641315340498481927452127887400080020875998671678244067471663277933190285096796737018003590427290435067597440462416162600423768499302754347146226325397902580414664557149511773563835173228587894592987085889363230960054332809559045604055783208377122693941604977928913562432732648062691425197287793528508134095929075376359210244304776896851048921154486914377776275501935076552891672684101740435040891151931211916575776452406874099678505373305772881299445848007033513090014320750189449522216843699246204264774323131296512712258645277131903633432223773489780736808318037405911185182977087848324051399373656457286495970515617148188960542456396822976245749848237873277431356278296441819358541728268313610842940123279681180720916774226056662285707348897374183083727913114711668823525226723544894783987929474914871790441690476783043043317755703417185831010124949224056046922361595453401120370967268593355922815355771490968178123382928584630539937551122246581088064380548289031819046509007803379209615021035279427604874358937425684475137703640044622269754818446026662831620317822276132709777236023966259320038122813736432130179109833839484652608942807433617878921098058914467948655670767541765738035448729017444093186933441123545617830265987257574783155291150471475354056747049493242691253880691236589761444347559726010629531927661655333060240653059781726053103269142131625441501118232098170800728469523312457070585044333431940300706778856185318942546670590853971097398129546106494956039356168782578862708171416887181165182650119831700325043218302455334574627023163535287081351516298042319008676171561325769455756426464490361922745401119034156405447580846280724651602252397153921877583697031559617756161849769951561803936037465514767759957291497416156324041095595449964918430981035056542649751797806003196015193442960383412749346252210833853671729855285463869281057803827020134497025219121937498588516159412080572638972391191582224477653966836493491239859358162526957349692557368134868898895961576851091523486206184710316997615751673615039880180915131232580475244777835674855471514985027382112582012315282374197286024421140958069083132091923688688946711547272499569511418327857697151057823649743000161572973422024428452340319252817457879013661498528824900453405822774794385880748499799326263961140598058156415595853824584389664295753880977889567795284140511229861623907359327582487928765388253595319280113196486195833440952218843596518871132438566011371707028111636738137192555670564457048570210671586997384484615739856675352246591363918802546097070138182821783105012632908222935338802831314703788005607063631012522490326087382168988263658122676925064132677468487620953671632221935002065232328049936224339120343044301051843079134480557854752855723606578565055783071003735308701207486578479465959991559067344851322555476503130992924721735848360103222081517204807087146718907789365776657304750317742167312308559194061941816477006542219421298050803903070531286313709820815265833660497118838200897595362729781590233816990090672261340581100911541925927437355267721489347198272252020144753142508238032012522244571970619464635221710866011797615817705708428192902435342903341973634511565500004850642290555765067463307486707741526039521369201876859528056384592156767183169997696015800483047772093338786175782245192389096058624807889016655810600386983920328135806845175085857171341808767639852907337557002177362530922473703633345822383959918437872374010945791314911651667843874662899015499368703082231136425326144844137390002459962778777091207410505219205487336577194739889808247264698971170678536582351810859984748911242781023302764336749891748249682034422773691501428342536362478210193542402382113563555482079479193837391353700906255927215676982179043167175191995267103443431495470763918763072897199527838043662065585025585875287244220828760954420887457514977633611861366026072278763399472825466917418253853948788109741344389710028934339166154536963185313351178638802128880686163815543039266411299217335807479505195431014603258397401585711547365698766814935673162514734978812493656091823626266604662197819148143251776693011511114578336345617335944230979029601801856485671005590868274251241478296207380797017244050716053391748177940090971041549832534525461707475869061258301561935416766632926074279809493483013551953550592282551441750650521513619806725055729243237077155865589458822148972207118443109586731282047558403284176438698199783262160791576281886539476606990603802732557124396093751362192620625787290930185358918939683034771412604802106183736301424547529337165593847025156620940916806769625185132141400144827420770082491963203077664447951153954324411756172518359165153113927160247503304667107773158778053634949262575339268439523949310181328706679150735342977308985436810434255871616698942210081867237914785377036201339257854084748474866972773775709867902845235277412982724532727676903692224890933481373377353386119572147371873365908533377616669279454483975875352863880088493352126917633388479623822093848621616349222727668294351322885574432058060776407643377423047863871013392789014948738932785474986450189787236398291877224110350818356337862391392251887177602908438493006413629736475237961806019713735718085251937724157426891230278986107757254657631533411784486713924998871551671129225798955458797484757710434944759383921102020586537751396365734923152405187840614262690716303926678185451973582907746125775860168472556820874989375467878290779114025382436347336432638639281253413644092552952807663389129636326084814969385470802889847977996218585252021416191870453605976686621900480838539002439511788445123723579939887454835149778966339625476268874803375342008337801082216048488603666382698212409587329267561406473792953036587528741859875415245687370196595681690979559544750606847273427016619126220290989131603511017214624070348024002488169077916819550521710435470594737338705394447303997590143980158886244042339916679336551862567460824525975179579568065308407906996355333979881802530468860812916583649080497960094580877647251184706671788860745118342295351365797486837789727320402754381371517120345543227630354439860790477533845751380123769574363537557683957724278611844441571665667239007756216208696207448877739211912955648993113796296906938927582853311752693292205256201031297845115597142591526959225638190358513399855339749737168935918164948076656975777116239436502047510088707600783403083727379210627345559257905133465455923031314809496334414998246848154409451138882195766022086625349883903737110927341592637720394845449571985068832853422232396049266936082358632109481650874665685577713879955393183123869303623162944828416374550060341122775438955504827943913016711775121221491521124532496766752266635119979972122632951625904801221077465446248613774295068743116400718170934564384569754011675081822756183680752455942215270707732385650952832018143942195917085468922880757135004946393796616800400719196441479043404636388216247764397560843158241383568249618943924909205876125912986422802511533163145109262478979363129797346066502991570794470978751667377406917032626120062038805365890275589159066869075596744368850560204489066027417552556752903569759788714649796344843678272433099375384752211881773953110018853778049016896531714138872212435892818843289915251164275221762537424506022356664590597842506910798044174000495968653198879411198977873074287141127428482015692254322593938648224971664533131856105022117511713110897389416098436470288978456771456998156396029677208639561862007478183700326339092304290076160476445009462832228211438704559966350393973173079041111464636378124276184814787674863526043354618789924930957194069410192916473670255486305932353563854434624040175716749869244573570848672410859257631372293555896349598717974707487663930951219736210123336783167898031942072968360326545847931788956296613557216965403141201093001381684407277581597887282471660038603886086270845032452880098419844229426354155056454384107603994778739423428487233052842857544586421439789045604068197373397568230571648340920526508966127574002767706523543991837426325720457203361837539474152756335710215903658013894798557667086130685570502982937258489945409538839033680204702503124378141717350115473118861615555331247194387430389875088894945364468498642786101353752735344416122106645982533585420809658086876581623828753426993308758122985344867933862147145223392432804095797507485874016866878141486206684593080145431130838944734478129385072142855576366818371663375455365799620549207008030044206345627406552470765365923799212608433146061277481150863931156338443552650740341288320999304664490970319430116316878942039155968876920632158015433239277397637268278136475399055617057566468248931904639682935478152604484763430568450138794293116738078667329845145301101155119607114198390534762812001792826596025228781816136336184373962695593022556294200390910489234513433237820429162629564540831324835303878135128327199135728117332126242229789909542005814501976406578684582761652051762712944689012803256161611093649751859148511458941529287671680673805527641839443888290796228129379000543137590732234355695941678660362916651394980848587156249389910769553696576037088849708960884682767641137778578883243053631420616515525703521248967565105349824838941666058357507523400589853696321815237598116176420881485262180993288093986218572371500088861310457065678935294742746598025863684391825510256409141138680621931534816741063372963140624759211751965250663417231795813635751749070485756631749806319722352280345126050445363329981764351529115705988080464588511215297297115453101359274788148205493347230085795900998420847946988860003233054924228458465365862524019049600859779725766504489064145812210360558353095885466820908789475841752438889415081566944098521803745993655414212101990335787951955290907693935968695058371308025510266623223507339091175193526655490409427091142453986711397421942517060578458266643893048197772340208035495319695118900203016078308037406615600691553489121491853789234334909530362465827162953776321220496867590146672954758725572013760145943633389080849201070690563113297616654706531228451570782908686681288326979106531035437974717731686856661854401400343274563216964679998262661297735082356553280832665705978579149189495913898670745290353723105817224782388961096652271478377162175275575514938777579182069898772265280952571602057197558988588645228943656319493266399488888246271986285847582409916861694977087408014720684432309359856224477964741021980921156686314321804590991933809132818123461223806320648764859023103211982921981834718773437795852243124802053648042020913879311757110835699539988131050667640245950723360220057944108791484967871035863425739961251703302849483916363852629397398180669528196762780709718387542734699841877387759841146296600653337574954980255472342681927350248922888360827655961952028331115151356299560480463474184089877130598327003545779717677741744296035265677855509475102594554061491381674754903869782523761757666005276234143856510016547885666015179328651048453662832003514719080468543886919718132248523648450489255273346811683918528638563250328937406659643817055738754693235507460660591785786041122007769646477138469728709823711454910213903483989576438269158858139931163634964223722051619505990166271280743474969076973850290443355883057476396270340587714249757691784297405884283255883863498416192045697401618143052483261706198759013156547569891387562302304510838889863078414945094116589869150200696128980242967129131253578106713046657770212828533386304151839381271466936282519315975894081686191814943585284695853199763413511641546107258670583300677335477780640343071533032228135211833939014274850959622784742813377336365377557346754270309457323026505697199098689584302439232601533446356547845447029116735258715224601453750766580025650024918012824455554424451130394141696718052666697086227460646095667722918995649807308067097790911364556388759699288068560603980811452315656812152269302350473817169556293237368987801530809509302713479789135977528095724262731174100375072983034415671907817365887529692078837599102349099354184741602035965979543873224821196582663123530639388216431976791620975431333612668273551916216975565818262235449501798925301053374799627703904068475657875684544779622348220883143060411314017246719518124276062053616022227130268737786501462908473318037348949539817799230298378071579110570204947210762153956274982566690608620908621732672687457498321953474733219717442310432573777342982230727520278473457024225046650448438176538262147763631419549145951568747919920623817190695360052354082886111179552120190179110218417791454992266403061154185341530701373559473370032319491523765897891818819767927065296256412063477353615205197235011622929076856764872719870756123693409929569007838390525387329128457344683921689411193720467244420668384746183829256769861912801413036472188387055081280272107171295944804370601564068189111832005212170717102996010997517619113982665624917229358579094088700852289851479991224508779525568242486072005857580412848435488883710498950796419159755907552203378406626798288764783696279662627151494259794966330794773584124857091541864733909083222632042587934689278377216344956393525332422541774598892825458814597232224835344013993993566905032311246616002904734909226345991261383189647423298966795782137335417015460800342285696767980152020913471825550671536948616215604804335590207156110196464791039586573800996216293248229919577994659578754613595064059881079784328114296462563678297229838463135488012255116844341891454743249697929714867400343885357137999572653124397018722995912674307671574482526477255189725166998834241242840884419615923131095674925075527984122787073677890255727122721976554219975905100633149586559768487055148817822369589093141692782930005003395545919784554355393560639071275990122074721003439690065817254391473313621055795862408388372956781895746414796497705528970016297301838298906022812329828292755256839251116017468337933054886166446869535050794380592605632586614279109973859169497668642344494389911063456247467644975038825504997259415570442643058561575003470754440762445152998124832894529707364256339562532751231369823690187587768536043572300778911824643267271181608313617835432114852824280817392468512560736184631560448420977115464313103304284856508452943909398046647395358372819800136441373116416465603722313389384151713355904496075495433798008390219640195605705988229693980492702054258965692773553220816639311710221292342724825577043165513084821397184212464761374836106436101979466849784685333720164534957940278705996948678848187254674721566450485154668966688247902118123352245780457580176468505720492752346251556435612598547376182521004921890377182728853501690212227256614019013654419014278995398305125440429319862468033179788304626177282730336266617792942919187329519328385196765939609889765659825669677123571988003420028867720972014888557009484420252459675568479133196028659430180925940543756094573445369651756060949564455889403471736743660835267580612921479249352864686363330483464842159036413215509188737433511612014174217961273989929160295501478908623536377444020078772686805429022122991246180805122505601447844979232853062827855986941121336885420631353435117513627486642590376996272548781194366517791371907616849066407389966414398016610089759649091659845946211258800353244942615388483993089075878812742878872289233472959310746685838264767268522216029925044607063289251657632885126295311750503405869601953473628391431238044373683740656739463953817919968021495052038798377336173396950256785190435118993342930835435195125286116238205600260657580866933372055959760200898158435984836397857871017161478563107127710314845705631341941608980712465145994381363602588750835175442210253869419296890757599301565537920576118662551135993203502279536062295319370036515980295073274348988834354719583345336437569301468039217301297604424665083304380955210056779215731907426985935764747098299246214937007953902274091817958250525112785341144289822718914785156307890282776920486719215891375451120507959050543849218690506290827263597405488561699941524608901450996768669524648953203762550060055324979824023282489270534439616037991670832979454430711725241291863727427752082870329740373435365468183515224572666281032457096348693722723441453310777265705518390239774634026165807659048615924283974433311873219812595391774882027356066557644978367803655960482190122501654892065980360854951082223909433535412606158126923055467027183589051617559147924267517086656058798917674796788515498208074263672216210132088547305183702948192717992860044241792391979310523635725843442096690980435730864438123773812663649487944431282283954659924650301844013874882720467424621591411944452038065164012674909724582189882204278371521021953725955649674464802304719618617184480733995598120363217273568817469563270041052556953691901931628244082482576961391909179477648578073051241307843019594257242974570572902160062307402633822970817217217188265541657509284231869419465269424874499893573314042027800014697568064637572148518881361783419456541525197965451818716333507360558122265275863887578540971677536046390928765576420069195887504661477892269743738943145240675716615262218901912562205850734901244370929810037176027835075025877314690504758541540562790378285606131853002865502874868094171165390725695752061918269820809319430461783194123767381161969519236224585426228220512694320565949971418254939945569003875587605631360873040949514545745670167281260016033928413963392255285086425267436876224473794356952733204590584396393074428156316662905091591655784028292632229306786181938575419295033875884202254568725925223609028411758955304020049778898041255301951260459950284120208814028814875572876535617997919409785013465665290106773518800250459536490915883624037646288743258900904266262786354088806912840787319331621034174408303447992197660935210692948270154427673882173033895745324057195763158009729238379394085054047433633621844821393200732933235720205467718710847100018257566164687759600110468277698693093120270157174818463180403672887001025596232639981080387929336521639445646246719789146771406160451612393142501212571552251036891504610505760069186709689772820821653338331797292733515144592729109720453754899529901282984590867288152639145901063487718231722658571134019738599334833553077161972595679831894309101774681859076839056214995561095604728858839950370664206655763064282760540070079481635994788209364835082244942405751571502735301040730089217544539548704364044809676077522455384660561580432768142379438215505779945133763598999505383090326585583048666289000442408315705194483443496591524504508647663012104328282740060100337516757982756127212339036408366996585486460057477704078769610208292480846098651406814280050597576703652289445015471639802883886292980118767745856725971516273531136167094332580727912433400879644410132893832663403899759267362910395232275781756458214383116174546546543633620172338830454183053723058362299136914074797137720280282897702588065633050735061917605669133682790038896093762601865202438611187923312142589924597180700596608479252307971226983461111414798738601110495674286186789242178636349959152077852832896343540305818954829892025052167726667613896959748052883824157604140470256533830336945146072247605344223312714065983669189436907918473320071331455886699303904934304353780504659667647203110133310586195381496744674319215975475143132872281399090140997990165534765812105956598618138074241409090325439127638566049735656713581672143999028697342228820419622993865290456420046940541727240531410785674868483671115076234614834060562133436813997643188189068918677165474481116545175457150306527430632907803649992169275908409039669487760807288976918074546528760643163242232528950398901981009150721839773782317463989846774457554320318829403624028799447260099813806194128679045834044025755114017689725063778858994144607511070738829168988851234054000436101558336787752632795915797810117222017853892826162706652237340960501297325585583555007491336577131112822653667835817583814444894768172990513472807105989288700847658788202048659051409991870846725145270016666479213108897277881900275675864173632272166180703237173428315542369080388658907719153124270342859566922051565985293946520345494854107659395818966532268092793181815816645242421173169161133720331116382966134258946262700201153090968532731026284010402129704715034063887779463618192417984226530404852867579763653099495913223494583935832818108723294117794115255917959491129622723109761806021469793114477906726273468605990280676840122553382518593437444677883186787518079996185542219060686152239467324709208299896839050105950232920460844130666192958143583150519991140798293770570526513269554039107510715695549401273110530286196992139593181285050925783762825551694272101791694600280366871043231692927230749372061870920347148809842914426168551633541300093827205634693723259441322569280066339831502390506076733200146964495667016340486865553286568673869320500556146197043526776982259190935964001490737900425803535207461787119604483688531766541269497592043411964833269067421712088242976152420637110785987291668109827678791884724142915453928676124751947733003241030200872381335637787246667002407052317162631652865912856027055528598133045348377846143162664453630383476989861797277644267911114578054165430108636647136814116180925384344298085645978920695675507882814256076304990237678051795937091461513951355469835780092100834481224676055403601885055191894531856165077219467654763148964194216452591286898943604742256688338299487247300397255115006184444548426877664961284498341454255616602926202918376036588824945916035659976839303998090629629987312635300442109127343757610536496321839233025934366438097271915225958739750013626285016532705806598958889948597290942442309209025917667313155460288227118853291412584041493714413782268513366393020702139865429796764059349765528581070242802016094964961086547006182048578968502721781601511818492612581491351533984293347266130142217050074030543326278096882575707631073826778424985388996782139220307975901432292099150652631880883669925256499731821564320760714858592467982760096705783084187460006556087294426560205001021728458283404249800959566419143319976908477764176348631080258434518471699003959268425868564837797890544648449955351480230141385438151478279914769388427229740096002626266160565197349474508496072012498853739313142912396152336077034953908978617054099947231372641235897735114609537219121117058033171391883994008304277264977323642261844518111516226350183701467443906103092618696735309321493952440931891017764565580252884553223874270246979993360008809911766177925756916293879737383635600390003782244684850316109052168664848532000798792028003864659341394543966308241322318902443702748628937861808266170849461025519572207463632878604071673740304631675376836781276664028087262998646300772948747737133291062369377631617865142484338544263549630348480601239295101317679965011395658190827907903165910262055729284549511504276506013132565626200625917013401480508520929398973183342140041270257374496634849428463894499027288932592192166045171199393167983681727687155559356575109734707165301721742764290156598117046212056356585531669105017983186090423736179083783771529905929807548877912221379437038554565747030387838941147649490213997143986510233104947518165442963119771915836960410588974160214147779322664607455559138789618277668993329164408692299170834999195291083523609306553631241533875838337479481739254854464522892740220721268925520751698376429928148653657529244440452408814942486708060791648783705264650173366879340204331001753890717783280007869420445402698081794858097100560988848867687696446519271480934941695962375690971389171102701147618066926092003608897167637832349043785370923505188738614802919615041124231295967109028092601460776501154461236440575140842079694082381542423947232529380788376071673606444989843689730844556123608721690368351040293082062306250454337345199340257549442821709599615268377217428006474874246994543117142448716803039000640640141837958321014830201063533576138175541415527941808908976170821452789523894799333811670145835190189574285183171259739155199443380160846278860180788113394780619485549778396201407314598167393939797726588324090425816863532162450102570527205256014636335170673565149090048308914199781108547937767092707014907819707208241928899578015839861429840566125542915001208859180575013441091833133015086446427482932878836179940324025059348489050151192800929786974505000022488458288438675299543635454932045778577281195905818262143800109119354319995161577958376636372317128410636170983467237208127287134264188479651513966042139015875384398075492512580497787007496905076169933824112740435926890102065707124931915545341999862343634634768369133265792519547623014936789680996254183269647825414529289836782257123330717629304451215779211849855808454035533921154655206615143064574332994053477082916422189109966317262794508744394391553787567401250552191453468315872831151593422366036176921683668139272914612087575422669136657555618504505849686104959917502369191394736184082023646478509027827368955342792034003501021532755158107173706424754869450739510131639582778344825110347022569341275699033915705071917405583141314080939042269039543970253229707701519985579720152148707562634477517309620096799040312887245219581263845010019434746020654804747295318901000244826107853744110380057197553716996556254840141060319736843344360002984887838586681749850768551253308121390054766497074471076554790059252849307913337175435827129129213713534152369530291471160302976175972236790914176609135193949290966203499384803319834302741506434374791832244768741132777090272074101577270252725849205219322047537929936486432330826642479063086969784308403023276484051026771849437798992747939174666339075795519437299967009649349405996021278901558732245185278230287198120552025693517922212086108271086131816036502647618815095495125637754360579712211052143667317533362141822324036148822065697857981375105543459338856324543924509986567400769974542478278514310752404832095243018076722441276004457709602017813674541978119652786674991277709788949485249860387531968263436979467763898919698698131968188730030320814102905142307106131481561793508227917850325508761853571830922734651131644550402685114911449389665818553832067685446500292246700007600355448595315254348097718814383615116806586712828856226058904050675706901688932375116817252290379404046870863647093700810390286512865214236916437797199011381395275339849739482955408979238716671425209295492828969430697699742408898107543739310802528380817075995885592647515527280958846543578727929884802933751760425351016089139785278169437063839702995862921548647162415544854369612683450462311454080298211771631362861530524262402365477047670281743786851445957654420105365226899332715142255798870689352391825961092049931352942858903752681962006680789881263801524904540015785754390232461443328141609702955160381910736200526956734352046060229739918967137049015024179070728594413565595196918050005250667776358985319537695263007527390563927682902480725878732942219154821189150856616832047726229225966478744152455223807608708479089691361072470472468135002828029667982775702997316671962381140749506573986764894619924762319967002558884790797271042303080781526687989175577367942066905310457684169845476905241940928339081700100505586260932054092607113122164313055098447880480764466327906072426388255883580049720669243807768885900194326792355363718114307009902815139789993483570385199804543794657410953245258086787953453204414381738709853473473828731237274403369623889110649906771133239194813841285842204727785930944545773734756103870584067852095127749820150303669156234326827398211618717140167883110157329834314579646177074976495253737733017375673763873775238588367252882969812393413735842148934140706839375965695775976217190844299163610268693650651808283805741569227001926190016770546378206810076664244447500535040461382307258841206763750581823159297448798056682796217075576724186326561734364481658545619322098010173259132101708670019248956553874162411084552318907096743376258234200142476569842678338728910607722475018945030312855772921345494700817522615473473513876141986939325944333770751265803211787951610226055487745381627519092537548134455483278010097496598813506347917312702609962831138456958418993320603969413281231830281185107094853480324772120084994677052165090911299945308279711800714725143563292165095475810704427723591292765143275882798442859506203556944024202177655900071416205994329457958274631267238703205779391245621182570221179857632809446511633700265457258450098943388726039137599577358477659466153808259859019040313322091084998243429549380363222854031064232257471990030668645434122923563603819743744879241383755475092620850013498734024972078554369703637262867238767121070501538079898312612802535321859961552042851369345254418699587536204334494254974427134446324429848927312084016403141081825651216077855739862036644169417559506253986095366480902593599227682487452461069730328503999018284962934795166526178123528616361829814464893424907346865908914525820005643608372229776032345812494827453354497798838757629040578922569149383735636075347413161116599942194101423143970223890600119505907038594131762434247257996618904380042648721813193066233639912654887685999022293143244822776036046935410877356382945853376997438413316601518361584227501425121466602281815352302702094630451207920713973372098731738599572586318384995545876906358988188392324758733899861917891155690747582604257189516555266211293775130886481566626488778868352679089687203199703269043135275425910271399117079634365685668435670019207204853554771335486022160055261868680244838680200279119367350597506730045755040775100780020753929536371453985019953023853626897151379430319665954934904266238645831520032952481081707995636732467598454920356079076953367550556312492814861397600408806445942443472330869041717606843999804361775883657031380949910449000378117768992572525100232420231105087750466793721805190716476561218283939654494501439603188595826973312777572815549880447885463780638283754555967055944730239686890252091750587864168065124201667562634676710049525687354892538863981305980472738053830393106903725837621906401571176235356544133390150152896730779351671012401182274767436156934369653727153920838118501861608332749963914406203828204050401438763265514855037008648614670197298341807222318223415676854848543101091458397435409691461163838710974792592703530927385223222320498278350909904626295834402887431893877474416451675457020451546958375842467398441620769783648260257272297268980540716808503207475223597032357861283568939124676836033190218864428033286071712003259632462481106004942348435848470098151349814343457172989087636354922553308170719308371101570829698493104853083798550634138487413217755854567455971677526642453434774222698690588927227563643642428567710874236046452370431016039281681645158441082439900683261011489072381082812178968455622505245678870832313268553960512433126336067326125684671698493108493759424036131525287505008031234420577256073632818702643259290185292065029774166388826507481876190575269934124045317683578327028966259296355669104134420692025568226045007452780766751029878828950383468744532962622698492874512106547259535508786098757687342582835204959296121538579203221389164813227514436746963640830284999806671103944168135265247298647578860190884575279220673247115961709642133990694621336902450521535057567413388061178635017806490286938232284762231031528940584423957587855035889303572233730053747232683048261471976694384108859840698690585527041292410539073325175331138018398693432742458361424198702209631712320674274405975547866693276155449009816592160188383299807462889502359126087615819250774071452057440663357547661627188920129836236972288473300990247279598451210279493770765361374779672214856637760918172476581142050358337687214601308633811393442468066247474749264691992841156847224897604237213587546471751229335569720185083379923470639434249510175904387672248439393582170556176718678897187169058655910714874287178088363916068240190098322124084963047996570906948916455464940328413553784504454526327345218751102639972713025372345875458832515040184365338346789984093541043483210191302078011085516644406012830800141932357213067517964644446970388972673225411595300577755314195988177994065173270419735475891548468879788611412589303515280657109664971290152380430889636564673379071408237032949060857824372574102481873103452142798304497679840405404857640287878716345427324095834686741496369900148699591629930279265952412799825294792173175653454420999887516423110303418273432141260951218640138404781968509746262515515812448485402771756196574424750891913889398184949884572613032828164390263498307399067688640371999806536653258485389220888130026725924968872186347347715064259406146183514634086014611986151146069939232793462007466840915586328489219120501009240160017841823883325651584604195874627243367473928568993273983999968911043562161665705210523924025653075848504291110345387426604353400986777720913840409231577514310627560450269197263784835059824756491133844381669283812030042014766242972481805555797470147652315166148819494092638275281305278420825680878512327287472401353651413619184670811626701052973977946201463574772504714982438568706730627317741065885266096956227030418241763017337821497076596675628648235881660088634481077957354043972415298525528162992245563343695970602019335806572550309757026226287633790174514314366224381033628011756803097971988218541787085200976859839937321549360537307500939004102036600160906212794346319976531376514479063753790160076197590947329550521775489443581403298712786568764715396446386928200057461618094486579490122815924990596649601615689835756856146447560937156256881012547652066967970645310952944394209195043827314643620693772829090447582566907539798194330945374497766946843358414038061282147759016839259207636932824926861543691653765991340015160453979514610292996407759945648212365461983899631332283698916089971720783704165178805440155724191773779698423542541979721324721871494128774909593451435542679902086256466227973142283264979586720239843945759792884240524240203785374391159824361076605913556817718861508979241206951347435994741328281502443339097684235851196667143328989525182863770890551406889631875361985866234802854747326440343754428344101322548684381773550565631356294150688269747710063007610542661243083526723213710669730811841037729019031017960265416823913751303743804617491689631553363889019244442746728191554448099292331246441296350997698654352009398087007283145977620872222614309678478858116967654820979114321692700847443448958589188838496179811780244930330870087060250976473309502615205990454427693241361718231579473723990980676518940331425537736870654353594941485462544776678295034567254802620687613008837660804078471276756813847809665002408305530016062311888113008488929745747443636539871646136736171720239595033099819612279179140979605593731752294931132625176958372141068576417962121182453188661245527020957859461957949966931941376042876788112051622280633824773393551212080147390772211869486798667663439941514747156995537374773029261234264856139993157978398965642801625721889899160448533904625750839949856411295975776260883175204482624287571134207912918236655026896018859820925170884935857127139193123715786804581904367137046512810748448393908890317999769460235522897023534353613207296083442029988554756296365600266799995551222908622243427844835644322359856526897433244054089862597755353229073416971237583715503267772879880403490505105729898145594177274979673089976913551483036640911056098949952360365672325749808860665069958051816430780851690671137570220090432707191585908408187528703229724608488540034311193316835306016760469340352661683524653849407872388233361447674154515310629323262270707288925641795785264581499826517117015326065268962425875467002325145000802281726004628138394132082364339172398635330289204584851042548259362431568820136930158591865291750688353400017983993243465569835665848496416013240126305394602251416441125829472442845629497882288941172830803367474844786037916498749592184587290024411740444414653307057425930239433121997167090187610844369089209999199825877314634784543070187062804069837823871271958134623614330860849959045239839510770071180427057104654024556083401992259957287311701100027710280970478046036668858004800635616470192699242749450538398754300827709402892946533835836533521302555603680623284766239046661313885255781466800398714829139717848271917378241780563568075533132640073259378087884498767458578442182071288383719607749271008130754589442210690045356250386276602464212596508911697260695344535708388310079327536921020142811587710753445453542596659005973780040900900843124255918869486622957635357590540254263522978804673708117682275049037117769804401627707981689002306393007010278585032771414639402160037122333652267333242664517150819802316338439718501195943094898392008299641140049054462433304011892809839134637209337253516732084813953884801543866424130339944730163626654969093018371652866157645624036384603874892147373532008661633113807057543994145298191367408293785710973240446730030559957594774129124454488982488608559928058777811773696841049897370142077017067369322259928638838943835672318897407275160272643568702677287327510831748241823247723482352505368882342450084400017140728247377757321505842739165610810738271938588455849184784250053252367194475315428783143522424056252372229849086787064595294503408411947060421338690082169314685524005788613470234286656061478501486354185269777086850137742687055765260169606431426446107981876968233480708001103413184522076535328712700325339154851870025987851268005714532385819410222160597231621721452146114027109067883932229809656917042777221417222132731809680505249503456952104782815539972598054551713890129456789500078785554172145934298743113669134031103168647167155167215524793211909147933533652799908961328705522773544021393947264788722458031826758873677669200440231830547796543934542684231670131700183485350353825225293316035852946082962927568164155309958860974642676802281233023106050806132209357064802572659934050181922197054386101380859618835661151453257174151415079512061859695017548397336768549267496640878225347943940085840532434422949717973700009066744719159859294314583718676261700434863693843335686766990889357152378690200257072046834776961128668280008355366294058685608791094353740539033953019757053991127822044705200671440241506881175094378906772934453843302060210571450982287466565466552703272428775522315256829367727908571906493598004379444590667150591146617693005439388576222929328779727520196809652661413191187695862274124174848545181928318015069821007216404389228888063611796234182566291333779471281987958358998116094368304748229859664657984427747548571824194499583895123168691590728069145927623052120816572614689029832027987663650899840415200771050886545502456873743048639893348623790929921225188566319929679418718616894308660446038507427512764007458631385430546224013749597712447394761853405385033264895078732283503524600463353121142005035279909141512364784269470115649982646275945343647969533856138849098495166349777640477581701055545185199689232726437112850026738356415258520163333081838596439143184036923208510736377537300325347011476181477584658960374595783152571022302736674007816741613468543302813877654503090761896616414235304238683640211686335775141041662683970322919280921318697387864405420311690815450874132034584297254574915104310685368984159395598473210849977547759020598709249150170483214574178698411308865058698150151491327446835233075486086966539929137980518618290626895116309281685159219519812817744969433026329401155641885121933769996423185688511650577618082112718942372409136535985874620333494813576015346668511849569696324175715758397655947875689992915156499269150739306070726661985648863976445648887789344024000250714508641739120514220370329314707764685949078063296979743570072161760712659483350222950365998247261673749516109603110987826937185553855961518103981610271578762871743540046129007604677357724257685866376158976711887637450938359297589856378257445490395680261256899436884584422831055203958151402920663281683876900614522428389202654442579481713779991362437126007949065162245547698547696142299792801358277769818412785819947381923659218927498803398168305374684966888398930396111278917500775934020205338672315663601297054160672031563423669091010629086081224910190180164985980655383582850233909324050512387329190915095780129223145882899058526314119815989844127654012732743488084192491348838094673502120522550649083316598117125591898655100091569284398456956919431197310330522978300414177617144522402749651456574007924045400653766424324011666400307881610661188766715719685722417226145427043544550468936560173854097201339193643111707746357436892727484501483645675843979495746057310840897016160692392686794031552333317151016200331496167926345771711128233975524344601013693710673666594117595970965907057335832414754915426525141419498187764112875542570792092735299688816903117352390350635396162427080247816709659539078623778030695445361224608526772260955844501983538412050663164146942785581348756486969351419591006885539558330030770109390700027025477434470786913541694484280897892378525536566274162493111569724521706476437381432427500791686106474065459945877010960163226313398221816325169445375112056152744833907489046282515269886970717546626220923754167991266332528358881302590899980118616566404367191726881267776103918300034466192016266273910213289654635517984839500151380787957242874372935436195996868068921118732061640099876266489324699515218995097157833413076251077552248750923246214732954146376785420408399604108647082207034423230690541787490214930185549148936297852795064931105481979111741523880978284708600585806648143447039873345079946736516062191930365081161544409297658827113371175090577872318004227837968350740642037222915972041891556770201078508366014023040898108981417018908079307694489596155015717392694538502692671956386585511689949713425583843732124774990574092649414598791357630148142271683534472362556390070856355957143005720380559901707840315936050776901556086253271122754392874381564197852428550287214685181846906202422849896221797765156274354191539866812521862409705724027333385356073736762350198466264171746233930885385823556423519256276542115304258588589307467028577835009277292603714712353130830787152864207592296832611785465079947784830954415174201914171148306123264474014232416978665668325028171967641971322528844678750698057956500356476886235703529776294181461923065844581686696604633069818361925664160737258641712891146387105810398339788606212938958835767083951609339610119139932363594220859116761512896144748000898127990966377932329017599273400575618228824561370479535205868119941708576759260687876271936545158749488607854619450928036239363419670815178271966729392537596632545049310365323632958304177465239727499611141527497743325749962278109887224064659701692747208994087474419555181821380184208501009316482197016238928546686646496041387847816558743357328527382340652287003917031645713371779841776744026288624135748882076974385835259232551722429422179626323879036321516484874911812185786499057986706621776700797360647332915549069136293547771441003587128984894342791375645837776102057809104289122443604128727149750661222150988207917874697079081944647513311774407383399530416262236340922737557163707866882239779342210528287760051095293565799471568938873537683828138934927876695974373032144356800023649383207729601218095047314663775584095323002395086829794412979288289318071968821885318037747118245144618632384986285195865686520056352881135440199821882250037314845306165469359448207493924949366819784140295434998906646921548936673891638929227084238647473891731709704921008613446345589732669472961499530456716679979632260199404966122563862866576863887399854783800555155428723369115533554193996891043734327255033869801062732330611007139862818162989629599295452096122888756278300297387585018782084488520811282940826150136240707442166126397939181004456924381313067506734681082759583012378984408290118758430633788346334501005979688065152945842102625258920149704755317301982166755487329851670449160394615420865598773452478244510105223550734570001643949336487279410984610008387779591278241313934716739678488681462293953048913381368910766951994555694442297545761051634583663847415480537429845936770895628810650283854117145197431670903418645432394002944732435078974712641568000728201921452254235612202091771747551643779683890632227044251265378497035697859502307292867952815935286395501314257320576955689006374839368728033840673716421420977820372537769313305097868962530527252986780132989944316108096875140879916992942975505143647978668465786834610626066737501131569765817682569272045004466786152724379821431269017894172104928217602763580923644425101214245732031319843830479640013500604130094327332346450023287510906425092249533788904588011639654174249843631979075260895165915782863311315679043570937083068237197090037531374495686684886083615116975918539895457433575375866312194758123132457342634241171498396798655297906451627613146463751921775176799011394919815417706051935506664263566697705753331088910648432897841206334640235600702687914295525072128879979447212093854157322468486285867646681763464788751862638323482786997615742132490137414235735127622255677179567880570609035635528699474328056385332516144852838240266815848232249790892919270789846378324875973734104565978713347287647038362139654349200751760828462148599328899410424270116375956206653706835411374044904543359618856117422401683952537438934717815112747229253309173858653355328494429196335215538699840043354411436277896301283826645351681200260429300615882258643906351181358151726897594272908949530797988309014159592294303645032551311579131441633602204206068556601048681816706447428818024940553937328427987867936308630790315017795373633161653203528796760396492083212335575160186084782817474931362616314758077142223765716125171258262242521017436028999552779156887774393771419854702174484710353616189370835653029152705373036541496217751316887550516486035201093869700970821612124171708800282285770867447474958038644406273332562453847418923598063128957385329822588766318511695137344978829165603331843260806007485282551178439325491897290909217722931714196444148292040408066700689533570836115227973263780996431385424590136241564622804684558668011192539696599494496971474466481938611799427602448825610344208741022456862689359144442356421706648300007058002738424024927330143259544809167832388121051010991948200193243133896127486301688283235243107515715943370407203819312433976002447092906962125826783059515844283835721496260955626565898361137920502617112867087182095878898678331412385450403220626848951689830735329157344132373268018137084022314088706368780111285974835709222278320940882432820864821306619973459892823712670507638200957921370069888702946239207211803895216034327794987408337766018111359790531466996335626209207139237157167446695004982569766759307584432275219525978834536048027883465481372854525339208548919705736164074045758644893922322691875925723815291713022076670635475739818871931694269801765001761757554293758269240647897263309988304387328537552311676869592532930590006810999189236064486778526779030142402119909502999585307360601432380850955376909247325285200052517460470684821252962421509221376806751999621261440124827427021948416749784290597655477063754034273119872745947237815569269370739006759330569429368599963677819877605439525596068598235013187580673843155911933025629996927421042747191256356948655305734737741320573865521056699281052358015695402351903637339603625642688036146952920881667258939499068721035217478280338266891342214441319516518195901224384504145324629405824356301197516676839086440747240931330184505911489409929446656466611845926371402832448766876538009697846814810734099371050924060089787500924390944877879390799520607963202445599322313986464788519914843431305173939910235771755643980365996895028331829723703269852753448526129042486187602382764760171156762715316536041255085896472143533235708834974282542278969527401757726453369064627354239013600563865268213605977280888922664664038683640140476722139841318589488338826003555635300408470810520554873400179696506441746646915405570551487372871043068929355433486298403575791245088506844328534201813680295530100161603096028725186702551643605438986541604078282932632259629821280510669335050640605161850196701406880558144983841830112956760979921240435665628277813196317185757993934356496072186740731212621658295556360716840019765920342840104367490066814105208966122955222836695729548557589788581769438822701626953656932416049094291884608263715420304729192593383131601860761937983821846174026160716606679216613978761315233795376618330011532496303771087350560108959385621450177036731363294068101172900380780192599016763875193202056016871374337753780262303136441708677061684654773379255035814780869235274129627308782454400841893286174871088226828818390788205552764783533440058270875603756169168467994877777306457117778026770290616032349380081422501476839554537598554870189858220271486417812512679838736077634339490656251335651705452278431840458771027416657790600520751205504000765247128188151691963891533750694248678515484359426901102897238759252005257980534709269011842757878827287582022718419660462120551944269833763396011543719023543556303168567269011620591225833469203295985820595555260824697289036766410287282236032125246180798897406594973965440569321336201870435593489352867254264863859134443479113624900930912995032594918654855177124683728970580028929819088983962408215785962453028019295549537795399971592530142703207318552306071724715862767487157719601986577294770079775434336131677633692312002718761158697453190369900590982433119366934499936520467729077673731274627775915778385985755137276233361345982936221325337067629340890210823177386718893651878869952623507419887479198500362258534492488430946954187097705427856770324686814178916139686383534853053181050818373252850448873127383662266479432401562640391567630257327434320180889372957946540005750093733981832749830587794530748848370529563334589566883741877856674079901440376816497346314006021032050554919405410672562882674347103200758013035685993268516902652970144652526438390889080606865387198762814554853855959860400163897566365453222824065571938946593886739494394566084603104076807522852647679463984284727267049250911436782203069778932337954800920487326537157288025871980867573093151716747184507828742525790691313108846122323458623877378773999274710016106939493451002888262054237582212449992561648255489020765191260738687303482289484067775757536074263550799163469565514153661207341608510017277581293729376961562590725482438425703411837022892465027575940161542738793169109442555252396659480485646530475408488474196079146203099043462458920217252686705904154572321585140144988880474008337940507558514806232744504520639455356597409974622837119015847234912975596069648202876218349690554777946816107790525853397694098154283519163206623064508778360537421341815918697685390170178665280538611032570161036269585204182993401391856514886843715651235798375676477397938041219087414333933595541588093663628758113449274139690588235615975688232915094856425451575032224406821683726142705812583274210717092523845531701334038216063058797899242731862413975021614557774272532143635083154035566924351303192363395666175743139594279345364429705535698684129979427633573055627668260455022670726125360272391332243726843829881321908964883006379916808969496817855329289050873938206554696007233086550457577945763929237198805737177521482275210697173032788855668216528476113447176754890953493331657891960651327197712298520018582599004419963416493254296512148038692409862603551239476860972202179711246700689438368922509800160267915926305293561856329237018554019302815595193831226061628280414156777745614502482235776415753862876899120958903218516351760278814675726513312651765497180560019129948270305202301649425294009311590619079780228763592008696371795077554363907575236342405461335059878344103835154306579113488531298526682508863037922455958947273252169571382128672423219238117836642457548491678686259547565055815592732379924507911954277622982405077854716741620807819392084821731453641994231906197402570193139062502303456654807435922105219882760389767110698286861261033969307648449203364987853274093920438283921629536999390641694807197730208275443274446614512418876252732415658385535258530722419193190901082588277047471292690508885947618120238709270872594748959171434032889196026110184687399192470663152863144721036737860818544470014818531233010108295325298520423292415785212200220819899783992188728463337391420641270913576795131807937748861273949902482515700271103576371657656881051399338644696898796819581740009238085542203594987160791850913926447656204022729334814512997991642381250315452179472208839788946377032656723414510782555938634761527646153252214951879645817489160029454465250130024827623082175766693291480328837717783651221078981251329052013521654401642721341229981686094895544171021052308857273006245137651088798805315357938915940707039689281656217994045539251093999771637604597323744825667020084629464836817808605615420137980953355535045356523303059310277832596905248867075838830361413326094946042602922420947925010636079579526456520705858790237280758378213198452688599742023067132556938772408060725366781349611753572284681939997095698962100005342128316234714045561093013211797527247158952157504859001125363028564017179425918039112851750460597354937815207391177327790331489761875155594888927324412510443842259581992493791615722754737306480392383067425036925914803272255696076374708985951516118493716735009793956638259774736054805793679206122951199227262620359241060134275423859090414072843665148559249260134675702514157726094344496037128128514539206240674385565434388372352826050841704122369345366844262956281912949163893534444966105316890645316591222524775883656000486520800372720590150698118469682800989301466575113499361763721537168716995528835482965888343902722910836030851687758980704226403735715622757806524658089133085856274435855498991725348348871126308079845168248750756273418988448041899653097243296203994610710074571301727485433844233785653520827660087016478592759936377890256548511802139952257466795783223052552469466510525500173781776452674810670233280718486801726306615792920853610941674328751327763690382542232452838899089356160112805741240488152617539910819595511661894486267166138359703653559674982095604927977102514852326846450558818161558487998262445448935520606768923231566735509334371170393238673734095975947381912366449584171639740002702614198985582705362316263849065458648788501436916434834376607180557204797556319677449327056962064695201634945901993890648529732797496160811506255658003729864492248781658618156882500899039999725104887291274129773797384984342176779423803890986200664645126142774807997965605759008986742477069117025230575627300861325988685941982455080143701419110569232806352449719281908308736602616783373017695698350985665667000277425998333983249314051338413222924748295870352223207174978526925391282771869820949138787693356833578755676126308016535130534809650267849777499120828249872685113527385065499864918859362429585147689705405914172676867802683992342504268931066700305775617608154365675508171012829692085897985870166244274548603814011637311162034661528002418968795828582484760782391863597546226743733663600025239329894933293158492183710605887019676991277207633335854222034718847557402996030691806365081131791277228049033619214625374725654610412236932621218579966024862371205259283339503573678317215911552659435743293415417844054270503728684490006079414378926233645210186439779223796736408656414027478835693056998664182563315649266573924088428116551278130973956111277772336512663136073535133804044245721961969481050847033188753399556838269331920176138467012258221281317544728661371592283219450707174223362375386444110050068771499287824218172773555073958568509380275045693677974694272109416753334104250227277411369874877686407398581535410921258391953547962090856973089250027108122405592285101521805052855785921503618615781983160794999118320462700422314872957013055915567292681720149235205263845451179238332999721415209491105427433484637128422593803724899466475031496234302320782689079804641732461917139565091615083617172271649760567985373079038977243287054441906480362901897922139788978466107442247224888680312422756121623274366047145694224865113734182640683437612203208506223167208094947062787285950110025418750468527423178472265567875450844048487538395421285087765669205037686803538443566234425806874668727801634342271305233680307386798670603415613216274566232904413266296085671002936610292183191741057230595226887629025701962723096339348389966449093423040376467534414986930358681321571990824504117069620324894580229574407776944038198835864770713796832647926364384696446761667883709436940309999621228690493135589572680896235912742931808153976652632190265519976886599182997334046128711395547026844848160541885080901987808372519238311883646257218268742789396700912979739723701486992370867204542796943806739226814310177265407615012336668352861543293715050552116790115958228114626869018184206788831278263001857669006549364238784001805075260990900536667366990549511243220571676154020966911956419623949789393375254785472032004636907313321183709604214308231260785775167261704673473909756641737193946804301011575266345362695164019792576634629297011959590048133075160600125057786353978376801071671790834379020694867439268084583228199749752493416251206309844949330497299978981824997354549851972174917554177161387938781940858580635741399217297903610474224043805738570857011501152009584157439726700531254820522333998601271053125242252257557022479399439485958314818382558607709584003813780938720674060795182164979638456904423115470314697659028328094166144398205366226583867720938910386097268261465343437009050688722701363793979460066394657578843882515879623922651564890871173624457336148671801471398813403344344542229968077078655275687525445303587749387276878648774154302356983275644792019206164869477468854351336521874623632319241889546533343184146954265474758869117715050183020077734610139074068231426180729077295901291357137886131850891658859809442834750375239365483721072738309449496312730971239931514112587883358409306991681132414177784472260165549771102489700262416554035843303367315127557974815701568902471265165796070493903766132198444002939767706076425063533803631240483096598126760101279411131416464471874642973751501910845013316553346466788030485391011708412021951632839806602308777762095461498566291137857633808274688758898226770239046851415269631344875905910675748631235684602419859826999944579685817756816142632167433890297567416234341343896317078306295086345624965214191662648203787973741486089234184787096539765238044334653751424019449636110265556506909219974067388218261919209686632953587504239686342390536444453499655847301764523994021770839071027719020314851501881822469086170290346059084836431775180683379601839913005063820483122932337495175663537467186827749023113107861932322702469562608588503512359510055817216852068127592429853101187371307041284830657691327298614979944666835506931692920045167804923713760261639255008190249863439303274987326767471918747268894337393358531001525165593310222824959442288522479899986237404754116993815031101241352903899823096188662382671664415753307901731921492089283089446058499196478173484426099994936957239150203203432754958784141705024670265188798358983930453027257695326114653739820182229044112143450408438809788975320607743707126179747618974651813611512705931785287897706606465009889736501225734744430227667731526020803982952703292842195571365607138815985749372750901720028029168279550515004988903392178096083888067701885311813324728638261610465870834618845165787132943671843362379975927694297558264310838152954671891180293588565795311114630063384732791137411382814899313511154625922399073863098357041883921129256953014304302144375981946479752016153068266019508145656051822877359302898363898461636674811406211789017002552828362145600537417340344088913391729530088612760170418198955878754053002606045184552545709265924885842190410622417818370113239184472512581170861983596645787517372836074020312865220702537676295453799014446391629469476708207771514148845425484307623753251807001896314921560784430956093334384507464029845677808090739140568933091554330530231538725235691349253490882196068912182779204790546642074511492873146205240890581664202592270521111304447725870990891154615426072583048040295344002862241362210641211875845913573548623307410132049218965424401665036468062528020315857634990478937880939822020070944307528573298317934611611355374032646369855013838610007213231869912981166353806031454004840810116120013487037944474896650062311713545800587700636814010033471790326634540663929212801115890206103628256117280244981931075498270115289806828753783317523903214325402350275469431416158417406348439293040667309315899152187165552612666663114652945218521294020567837958821599963169726057818404353722298209082169844396810976375318079092246812891490795946027042166125404467335303376673378099229131358660653514126597998037845621163603567451953227899988505884188315092661962354935427323440146163498008706610212006216802724108767984976762653034199680605403617464817288015971679115356262598718616235654768684394949844167051805691921722562813314182144793322359290106374641419086336509875972534953376554697893383344279562749496026379424302317013279370154673267523906201732923217394812665161571127425904527189600790572547920429658316028671501036882088420798348853731581259694184558218680073935422967262640060831320216166498645220352536114394084223502101021652088522176511048787098543090223361051614328866654717556833248340659717407664798324711736581766221054119052652177213280881583507070658422190589941967910885595049252312517367624736824296890941073792704584948479290321618281670023825609880404225457413601471588613129711787268540879195063107269700653069383221804745817201779423460898170682746990557341544812583387851287879860020825669590298864077081224087729523544713850736146181399045485659749843509837113162914136507365710022901914288959680445716269409350185257405797011675597206000835275820853540892457991098576457742977460864886673434305685787303152329516344776355608128817889945236014132907224520130776178382051046282084659958871296912752811992776885283269692063838919441832280480171442310761044198263913109081510169835968854383998612265756153568231966480389166904446238484509268281105638361237593657622575704021984227359535267318062119454788254779760990138462238933777401169031362733043772856910387558958516878671256237461034421989246708440889925791808989194380164919207686727341710267703183878889213992939234564839000886800054988963314831889374631293981575666300538324022355887811121048515445164261527481382830035066735082362437490741518569859619264978331450659587442662154175201013982279447708590177604158717201038446279244856439288807706632236666726225419462725670899924449892768701080267992393061844662502800065716367548210790265337620924221448979505737794890070121999411040938794697268913069170233301016549533380354811731925530719980474468234998055563823089809694078648569936867369895612962804157511592537999702860427650879326280993084547121233110424351194978934975218288471636761005242728071109246767217049566947252604483058295231324412945423185011378985570282550784351481871628617467137000747519178848305548422411532014551167659929836804470813041728845999110151718457011496892047210269626003954572280822269994597800923276529680331840766611872665878236249736138416197151560605408472879083477843255792153584525840251717695212625285249135122847047391456516445783631781154155737839802858309354196565732651131525637540039804169156316408812210157246494071543153221460121685538692217573312430231613711253850426296882711008502880345000594071291195587639924907899560336555142840328865789237237757117203992340320541742670852506905959479151957084806514974203078300276399601285790436083407797321006639441891502607794046541365890340785990365824997179744603901051373322629838446282101198421037519210507058777991452363103394660760843757173890519297451447066653584156350660120683781355383790870634774370044589400101410347198100697354739007405433268012826931541810525411132843072371058555860200019672398238479015834062000090248164143613967426011505133710492672183795985233552872723252913849689473958674965539962581580104302888772507866553641026303852326164953027215159289600332497658617412778013857495125124612142211126881009043801976942787120416236363161955925180753877441843985447328946613733518494996575424883094669541257291062452727974948075405098648262110465840655799101437749594227764316069322214593686327426533926145855763929067044339925227526859925302988096476045038367561179070253824550746353583483609184611640383447934536419019748052549282699245709533224179907949069756608178037595616777050222084985840450403886549145383672160716557481053780900761262316791089984001924035460366460773050763909264053758712062055897340258609745823486692267972145789347094141021686095253315141051039099004622646344260667375124771262524018290195389905811754827462832869904106118449365011716270755710105139511260080134227650014019305260951961716265383293172403670053872899857324546796873151414955891968448181842446665511145207094186792768167645181779524274532387735621825494839452993084995664312814194235037483370294154629947500764395056930585736448403054770797711776848883826527893545810395634987098063587210957648527874037103812525237254243588755496204612315885006458143433997229068554819426148262078337391970335625839663184416692478427498907299491760310024061804129484434848781537490495764771054314453881776994714756224675495983460982152218164328355809429028020841862691820953323470881746712511098261975451226549027869519982597257423981817600327759821070123154029603609062567686593301365447796326050995817281775281492284078707708021888301521699340552845762147657642509700952200145474236668577133112597130008715708352794898121546032138693460292890155147593991439679001617987579287908856781226314927580144544951844349747635913047591084287596352835534373260920963530600170021888116325054141904020017937207843436205935823983614667923363099102184809498267213096594977344665516358944108434704669708262047062951119447595713046318302878277119689189867643908671792347990625128928359246596126348289350113307711521981514332847985108531894810803692708059616726367520325908190623883478337453203835591292133572857049821554256238268402618921982990208556672619346617363058999316265414089139286861180945306773186699429903051405245471028534019449602503462667892818662632397553582473560555112842797144446766834532578460358712183602951039141646737347751348477059850605867979660613044529293460770178393846482163218916664681897822661538420465055000888621126595134714536248183273611491237657398650012329557569944128563705655087355488831882892781163528463111968166903986885768998190960708953222508485060092489780542183452396731807916679124575537197424522593158763171048935685389855947227869238587830904902073504614246966722226111032146106709840896057764477916042298458731627254208860265781493122107527307323718219149583631385556449854352457896963557777832069862322769031240112744042686637659737307552557319294868637311708316909492078599626926571909238728491518473990929017689359446533662549549074941979365381792108418929763106299594481165021525292448807560777559136101331761337269956646247876003049854402052229555994136850792690886710885358159623550583868035787504037859324045160415181359248638266452391681199123383281826909533577505671130957968098129272663333426290675839201855462318893231096315886279064340535091535484904443202730868715625347409515999217413693371560439305250651153214876281749681020955347822068159042997663141216832577651610272553347044725312039340563997915051523558185424442807962157188640098034459153274225625823707549087628565628363734186497048766949996888488274575663900622115913271112050844385251044853684907449709214035415500998983468271905676100427812460369551925137241911843496953140057897521530789486910803486469546514606022143604985898866709536345076393877452864779682078811442218513999033212151346658269776078425081884836990198980272759043028813468512277361886013722184212495635815374822308697018817133308485543803127270179589711781432767472335492042735473681355944951654640756432097267083489265056264661321190904880358026454990817020573927743639000555299352354842850559208386729362328967585224673731218465284725787661774881131607732293365902142912401424554356551028944157948408813884595922283261134301502393466762249607823463770465602328728375745137223272479194812241448144834377335319503533666717890561828132599211155408850518852198646747636992724696816897303210429126430221347796762654883318363388912391272916983721259768577823719569286920353510069649617206071903468554315360298123323067013407583834534092106278892412776978167157692303035084114667694889003171399286486350718716710209607154492032482279208212105821885046686933317137593156059754882007011075788090491200001908919683939921658942699949946093765734028951634772571084380275790409524786140147451770096413815835921950886565359872778925493676634439988830540637204568148685046905542713351915557370023187346853598541579159269815804742303807206232791786882875786442179077968427569862994781105876863134786485727279730148460761626125222362091484546356307491782978146229683661627294391841509005790376760416808069281638124158743610687729027419222786532780075772927120085648498768988046028459452286732604950707509047293503647053058911048081317057603936348825623603192438646777678127515488746349378423168337186103477634332693720112786177696871250040847941454776164489466672891650088490711166019320464971155448801577547257406776312227662121699560625874391665446993174779256821416080819792689675695122727932244028865347282118337175428124181191122216913214692073622819805309863070470930600012031098479053537740775011037698624010950195812476192931749200630938768494983109691281170025307954690804608292137678159036421175690071772643869788810306663003438593459926995919216250228852417227217261759670458537414578966742284837742390704746631240243750049494835265530149307879629598171859714283844064596084783054633704343635237468630542496576986543764060010270202804447959060781440363107495472187270725199297265186825836524238112105483186838922244939440732734323240328370460756019103646195443486040331875107463893709713688666098638029209993279875611048287987144817425110968094757853034590536775940772308648592061224123321798216960971913804677261311159037672189155061365488557846762243314249211580104453174450385115139297212286810739062592491057886063677786956607209326965163027571220816488059721905567418668328547455603360968065855952667130475185523283687959760529832429336345301318070396863434368056605293110095920056227560196107369201904495913155754511362441435402415736542692187536668940809930317873519502633250082820939390783130408248269860105633154543650069554562344526196979794113395877797669805743923077937980024500998492251121770870367287355936082419803395571248972982075225733014156797619930411208107196214501456075443752426492611453735727699437581568651807622884493583191033900187059699697739868681227885211878315755259807484235715804252434175477564669578596645123369286577993221766569195999629432956926462354480438293698502596230843393313419992940981717671014290952868422004131003076607822532033002073907232283017515513301293876509145602600717262365444106595860439098133002279164388645739550531990224250947809474424919564502992713996316680641620273512224248738789893132978751897926014148900049256449949881395190081177830092044207359438759462376312648478661897656901126167692724970101291956216023648619668607115478085582312576798978635711783227068796615883764910002221263334694540392445873510047045283368430614621707599063928331123805470446156196434285107816317779034347575722979327350329402397464706044753987079925377847864853897308240275070788123999318243393191026090814488782984352220475665178674861996570993940861072514054751296662493109419292295940770627231138986720139201334019742052260999511109816116139032489745070979415943516978096480672050400667660272242362737625217150368312413637471138874839830807411740011417819051197837959719654294380761740989518573696772344963513926428811722063757696002828415604285772551929710219313804167014443487317817591854690695720167885140122891731862040200174765269232181354164986370892734366789436021282965480613925423313613728511200769580649049791628734695355009136968297079515479899646212734832389362042474865583850184735930750716414419014155434493019659488863771627804992236167623660074478121678751412746687985510447453342361627680472277312224762655226027408128392519819431741438955990272438741372331578278411306248566944811301383176578842323522709253107072253723530180970467691712580923809725445693333156944063008046024264519352902332918999376614240137813782726436142701374118484756264937306885444480956070281388271014698927922233557359129182113587920324049146081754016115500754653045964730311751904352310979891173790178056796874929424921756792793012896615771751520381789092126314571854690747809947621165153224386879308943992963575916691529202018435217121266159695233584736463681698241120295364048350395385844804205432050556022844169210014558630840428775835494256395113344570138934872758856072565121745451115295963519253066911806964817833837373758722851095799092869751261574253488714641580609945499768026973540146188960816990841325327402771430118858967102181365276051715638343945745048373342775900183057923454465821070330336177158402091038461376746935428602122600436598139288315139892362833907566424399225302958514689767251952383912540296577830389573797482920918508423184593269339648177042484908029693354908203447330998738125254126837938371605591143981544549278949010608084778680746070920107716907899344336979134638877345027802348257443329075435168558384588547283948237527520891276940263509404342729516179808826405743836080461653364052281175225287598474126978086494202962093770871278865523569091331391999181449128839075702234439021213522116382064966221159002842384053569982000450276962557849197313715275267595575917148634016613007492688781199069909232751997634218463533724865264642900881530726043826469692667211591670877486499004747915752758771467482307170022850149880205373036376980680563895764625781045308443800710233131200277543039692494652030415475354273971134804369180037470493568409072597800791328066557172522769675997617617985586234479383556983185641277410490658904608641223740126230013200608513995421118944711087558100015477351847378468227643472568425426562764787804916481347173738836191004283643136754315857148809483423871102754069419884030630436990890405400222228186565736900237601236851118479397789088251673107736280863586620690564542496891667031055713485825528386824395283168882928119936016716256720288357431518219219667219054292883838281928990977174436477566392286486788882761917016504900987931297448917006809942344522100864393698775265974174893464446013770877898701904015777183355531717391182187113078449543862944963401198620330925663097170908005392268224533536634258220941274600066678950880911491694692627563978042917225971475936690416638875423674704412382553723309927448930266238685017676833551715915986248752282585619760838637255258304200172318937189359827317685706145872318196432639296319449542790871566345045560459337624077005353780576949064856200775759346729775916527432850452233976314416508900639618266961998087484179520385774474348349419020593748792459532710238463231740527048789670110489231912411194629270631168820380309185893769870341807156634324402632010447484937709552774466950677901732665859801854354696501487504557588133222771693569630422884717319258612643203872215458608185577687677897086603051411055498679613021374518139852279297892863945338145883292327836341998443897806696773089569862025313886975992143356001282563610055870992943448468706481373142095266302556106758469800946113974944632213894143163108893674645133198258412805862397150360476713585088829395259754802466924254754455189702849232076001730609517118311652773581318974049842484268710384635698742394814162119457048984131090628618683964791487902043390806555197583391714572880252315094227145707071960543412815023374188242730062326612423807835688834038099731361843278048612323928219270403221190046643373615856702157255869333331714798514090606963203677282997739066705157839548052720732100997252529269380549308731163509883058420249765982727560670287778739018591112727074132497849278562836970249146755713925573170939553764850898111700677895272301611677692794034497770910791695314039261797524131625459637212190779408658450271198626283813656884880215720010108777079545901749808165840381098595494415011864919674023180982018616920171817598601906856481647117738299768617098852074141694844336123679418757678470538452401643293868056530388756854978687163221057980904344155013184824994328678435721818458211943591188979044805712863535763866921744465301251397677862720725562637038928465237180254064979073128582811824811679792481898693255785716790827939905378703809782817837706552560935707006049399029502231180078343802544207919824725470179177458746442843245028252907582033699644636317147046679014046111514374922874218479212447655449571237775115065495093066240333701373363341543255233352485095293737253564271592945158096263963384703006657304072579674315725043551885667257600497145067491868255644509924246270324683575941596735438036119049943147522537213705225661018663163039402191514335092569691797411080322869386465061592184237347481469815758781066561991887627129858573313958222315859505610747308008507246359578125762578004115471036151664039880451938111580042309810628835138337793245139039015270061624904574277442632294198712153930792890173687582614567147755458299423449046753887704468155680212161315568904975598294371486570608604062238160188881388031342648550433177737276386591395951641266897971144812313489008306095387520581771233283463727473836664875248505048827864122261897322796216171422538388434601394694186219989923131682672430292313923247105388068753595695609604746591462389366619993696344877072765426782657547543800532593596805702425104928801047383396305275735098829656436720437668202792973527929024072099013314351103312787815589932062926119490372710656586368378613260990685803826029465749149579505876369752534644944701294594314973059548518079672136299655619964011721589879548899912590142235741655468013595008938642618746571982296395683163258901500996544485930713616979747297078006985837891402680505870045152207282818660545293544947212782753400887899362833477503305599916514181181619599047921010289520372962252886927189161453468201839963782455047918177942909519489974895553760276074989442368456831051149916471716146450918721833060227391838045262809794072192733969463323443063773632392641656304869935993030139434876027768037330937807153040571706021792161723359484596601534854516757654256799433191054027743937118918003751553292079809959421487494896733263186549028308463528028236004176181827961445925221338867323933379890920102776180310565496272003500976213462877279478840533699938861754844241790874727780287102206682805151607587759474244064865288000609968724747306953357489481444847066045020301070764605121953569205676937978486717944181870354720190784793351365545189677711804738566079011964309484411164371593725961728614875733672555251067816648351045123193744381195821190819097454112173241598591280905508220885824402986122247000762627816220731909723077542097532966943109955756193163836538201491356430898992033279518120317096032677445510693072900860291472898850353995689855953925247528359930085984572302639393811783887863040090635170006973674309957813378677893945152451524795956067285585463769205154498090603254723669419506090097890291320700799619911998232998826188074719621443488732784482671197630879634661270502642665017562467212849161102564652963538498313148758704762262092932384727132601741515413322735312104164869321964633204849910843232298874174956777424136493839680221470983789059308276506423068850371967584330675086338550065747632573605617825361808521793065271669169524575841170723676366621819048711622770453050099848389726278800719898591658156672111403454552893032350716798835154699051545475679806415570280561706102146982692837907167172780041350027312993008469472694926518934052517770058269291521354848358458278923061574105329448663974315759143777251650381025804734160166288612036336104130392776665914511063824389324274551787670202463765111681712589337345236174940047436867174260781306394408795406025839682349727354418608716057275976035708006785030456215419177263830825671597187854753849850853557721146164141477278300751317038324442272367324462168296575876982960604912294092007339870996985341909850822341196906379697327994857151664390833868273284130009554047484504808704698910087970862872778942639054692999511127133478252894908308551022499828013636057292764048770141787288785239054811386497747488532168725119248927072623710790392438097267399293601581652278145159117344542940034868112884200731760526470580982654797745121324399440083731924778965233830528718473351371459803135163934371834666881333052826310920784207510347206648853254147580772293519711704460838779082354974866672093971657682114383452444219769275305110112918752824669115537606000899477875245769109408306749993560567285523118236917604149097197359915341147237093150663873932909250075531321869485787084048207753657515788940611010418455343480148895396052302815938904114248093486409598071038394490694481917978931256084078681963443769974387059101396782604219298220880805943020494686658487070748452766627383241625514514777450892435698209970595711565781618571421643256618847946737811375162997956208586288771736833253358377441072514976023877508666542749485305499474784266151495162951900082357685837694496690592724386496874157787998260412843203241669726763204318785667669550296912938317689016662934333794994812100884965246591278394826568295336313593158115259157118960239035901772147262831355776990351446614386449796994706387720539694544234975896733856964264374027940577172616214294124672350938765425679048299731839889630520789090799483327645327804438605886611139813182986367967589303894924972743825856431144799782984408901235700671976324012382237816286777379471878869989624175274884419400017241414024292676692237994195829956019910858423298093153515720046761382004801679965790395756100174995772731338622694632225345372726786874498944660211842653953747620344334530829704359796222399896896052722894048499353813653283223353920314617595505335791000630901351698588768196154252713940104459556137450230588079584604596205639057652009279499350354976171856169907062677842301274009710628055685153360981453387337574578645368433737793535674757996390059185301019271197876062115963453160673869142217954863071190094473396627183037504340224299259723305840163915050901035516320651860402471247464189608309528631315246480808579938872928869483864576489900458574094567259437075348750795352089740756706666600222820422685942149268289408951506755162941183375608823458243094511741347151695285127103843492011409712195568605216791128805996392984727134659815696076154468591760805557506851159633293517232837439181282496949512709275621302457597215483159314616817806166529729377813573270180864364132418213721284346043828117231245379178990611449421878470796738909349145105651801834701260100276309578540633168357730429427083619647843011813186761625993140513122990662945977648232975048716808356494846139720249762048458512127497747255144387343186341613055389811856855664821580564157815874319179472993227753352601419542793055596066234375320629405790911154687061095927186893587225119735266217047766472896000067270305209266203341393355990242627126193911897220337133863894597984330626803278911220026742882080712959228142339282249092256197102474360822876539688237856600211800447064979671495064581498331527270167901875858620308364645187466903846311086211870305898036239784339214591863247890177044836956166628781353882794061785363301860663606977499436442581228756699680537589771494120974131514178380534605364463663766493705710236324934078984324306758251623994326975886164137761384027523148956160630446683255062596561707972413054492653021031267199488234678112551786957353627194059202002783202684994849298496934927263234846066872708144915859852249081416254894802871560969648538662706128475281343677914049519218042644546804577156034616244319410956503696914368353798972803638128113129828793903060919838994858814101527420599088893440841673726442545441222091264112515034679160834610245361636408364515714392662891758576533570049389439359969324792020112684793297526683901043193913876686685836908335006939831778086091715035612752524199970007960746948584144102971064541558096189315674608255776582343374060205615403358331287511213041300743376844734631253200439444218221985143077730926032112776689728129196486755812745214303179909769470110639024761632921389849210246743922558369511350899752717530036011693820200282738525103211242739372263510613450243482179944713619478548044562614172020361581537697912636272115050908464912720363808576799172800906324659045560927659549038619709272377643199224959501084632327951245871567046828460384731578136605691279558882326147649656131402992137745461272478922573059364658839999419976006384970280898610221727500854832508236036637101068139434324867053093814480914655553751665507197724839521018933156643189877252057419194277427787744893836553365727151405006356408421270732849141715352396503597479243158970320296818819255199717947577828104951506914714673065919416608847631282689380127236282479971007183731628869592538022002741829171058592667343866416520382636873259695911126416042915332121002538159545418588764529356965686355113365991245463311039427999380026940367920458564081605240352370661138854317423246906849740520008142742793535051752450191074231610756813618267505976922701874725161779206780248369732759472749769375936380539669669958923461238492631708889509336622369231439182613106162946707432252744724873840119530005740208176361432461259146408227754917869858545063146782815466480515907591460524706477696424133096203806768888449267653137250960996709050903903807554169551742898777425238779789234913068671367783805299374358709972954556835503049069156352727483004214902050608021677068217397431640539146298629126094014825544741823238007673461676632326856757838919044682779372759240167037866623206898043630930328633605090676352314497908130075755919063116238155215501983363400631579823506663395729628979651038913465912706558334244210530983100952858534320671049181742112029252666162359945341345335342270384266961277418244549423075981675317188726152833991082627342348730731261741922487019352842502750642142278843409647454527781152872432248640742757495794164437487230847090511560735616562631823020360604534094808568124312195625643087988838549494558530624423155317175049319403067041666484208896994573966125222072329340773594333963969069875393992623299336772031511428919042817079153522969312744596768038575014799156731318831971530220290565414703846652124829511818193418572764429636168695557731958599849549534887584297445075963168007988195591044713004213865943194911098157011813611141251342424306893349916582517059527383613852812114721588277999169667017585129576611610805158254803895751257020622129582117326412352359513064454681061028018631855390483328799696165882516261377899259542030317116038406984283841465576735603452787247205895359249368752692486105362838556128238826333130902043432876871624301635384471406550421053555284593022721057652244440351517309204171580964684535097904391427515964044404896653358488839488092649617922460125840835532217682717096627276788263830896162248706845713761124693329347846230288394459478894727242993340905181717321647961116812333581590471371008491560712689172277816084509532461410423910227426756811082793310626173099445700129035093303008448723873154042848908218668675691339382265057309755001948620000665550395421350959980372433744237271594208981020416579188010255351073735536737601232351227005633852886941788390960853972489248704779387605380125335744863288165010048008539968379757502506957842572637181219745372875331154523251312249753717254115113240354915236585651801726662767047784913851861346666724237778867813414837861487565124110925709477973503413416090476331203173409910982881715003762500981587565296870943327047240590639163276594348009730501569334525260734463543957585327651206711133301705302108482003470131158758344589127095972937530789917211872484793233661968353580983012859751820252873019926913853724722123637725194277347267037546547968121053866998816037311158009368144255453107726738326891317861653732135640305345439762685071759720296644842714730292683697345044366749326092576877815929205374513504989463177695754458121594027345426855212153423541097739889375703708174263237832314300536765900847245235321969340953621948475788408590417081178636498416069015614962297344171811825175390381406084226913694866326365211323473108129728942802550823209632356519138020530539888408371892236953420065350644793674776931434029464466393799331593815411648549922829003458486422037423177986330858679150458489465099291195189137076592625627136862073401058481378028763209238774505979014829903429666975631411148449163388749472705802552591816401230297237161397321365406996199675427885821960992782368944874898118998412836536297072708090515366143073899660202089582531745423536121641469645287014888557440957883797468667541002099339569608290576814542141896018191972105137876612050991270080878813506876958880661837030355566848394235736244034693375992304999641111652771645437374180079043625745716994697971937223635355135299713047029386513634334157492077702689805009185855542489437681501680430928395510920078039980074516013416591889169022206266314030870117173460897860641898388839876479593653989245049415528408840901498674101374999786638418455902429296810534361737217775299984607576805534085462155665983906468818709561096598963258704723402812177005619157522383272594912331916902709554715258247189750175349951446329040932456504304005355311700672071235861110397141244713443583155814968884874590290850444739646520601676943451546372418243858828176293284226537512994453419422217467014184731056719953085287495679041031232633836026940341058278852964409394828795196964802369503204262181757596525415893254273570647514046778957591712520860371788395465127871593717708831712956380875214083652633890436027095625869322358742268297945064350276881748622194662664116181097986268464726892256835235585789024989312579606820484512791126057812000406842596282133723246409212749779759523382176174574355897886661791542588112438524235225828887494125936591186669542091487412182322521449426809907130887250929068858132484025083685014485616220211832024618374939572160682993385682146434877443303777363354349563147533363967962505523174650797803138255249296918303604530256020777674983133467228739075430989084192333090444614011449553658173176839737929947862575757855389478237546387066954269654947836208475097683584035047361545674678526447042127337909805558468051811814632718155535206803406441408401151225721301027928308116927843442146146933981859457745531436455041172650193356429222702896861374086412689993347619053668681060873265720697389009553187117990759000410748893879427350621424339075530464815393261846539825845022005248630587778838535860305474584178157873507220316890851877920478573840094757464274897243156119897615630808109302615365818464888747675520685154982376265795987248943318400913404127428428840301136011720304395781475642982785470270524139717512128455003590693722690986654876697754156399605859014908313682653633696754054771692302029522518867935875249912943862001652943431119337542695274770512838231028434955997427867108882476004568384093019306541647624747107683015348578556544593842619347019250003881578583858823744065969932992242629872345739680741533772370532365373892641805716082566842113162984055889291940602198697926964513526567325390638747384575120353980405209209171920056905298466640927631688223277869870758033508111670987124268416123278975185451650826973568525823977014657677151743719288904567320550532034441966946951571930251752268440007301864580857491463735692041222571304360295661213726435630916499068232655476233010166269882855656774216736893903788630658019922911076191930315668074042365351282818724556625762110866958541562203548035496875021553684967924184811350257853589382812639596085142319696512795533392403090616215760967252725973796613901542911870519945284553115460213956644970644392591035338998240218605308651838580287141752988804044605568915274690934862330889924379322361820702661580115959518758509342027676912970036782357469551958946990262610410183398198138689760808509744952406562340080490503024819732845698092848386795550081471791288516989974602176652216263113803272109788542600172646515260178168801801132257248206446576852019920906000107906584520578201228291929746705698402534835949880450164514560339078567547428395702853549829504788268495178896781199495092732830021097812395747746176838023006208794371229157933097266208213808867560830190228282084786400516147860082619657559794654377391622210020590154894241060920760891828143204205129042061241577828705610887448110036123464409382017370799324145245875228360332108486687584857306906559102736181958511982686190269570110295876775893066973511492654892583640365694617685709699148194644557516707963906658236468125088412969968255878730095480762971405147819397254681192435131846042710712853983216802976132365433185248187561459191099978682302108851442367373501491953826450040042135215574876193283911218398895939080369384268428454412709412128481824149581959603281096634821178567930765452897537794155602733478768759693542736674790305097851367430956336570582163172095341842564742947752806898942141027596994733642853826911754734489367946566118755488990238693583260863729506011899551968813014030735409701837157784310230911797015356091923390862738767753156946356542811711524794297430076229841618880846395970012811529769226698276658368111296998513483447525437323022476909517885948968632095146756693868327832784197805552808289302517543092050172188313124311941899445587271582635548449572454937865498003587690857606747556921864235414743776943253395277768394162497720744408560970504558899249967739968217525067330846938559443593119090609988217337867378749470884144451490723272362875525591952541521291573315233708180254864867539170348310963704677608951556252839057459800837756227432904393590209556568390885172124160121930810726651531313834776367799768972384885645760848752180849187455751763579061558420471822240759754522952941536362935062223295337597094397192507846027885592477548453522004434590200546347528834766346982741275403079741403882560108250824421240851912459370507570906250834323889687926020845886189873542636909619517918707548412495838219856608992726998855646253495494845294426235500422788921039215350517399366848000821720168811933215068722129900301465640390584761956389572181828855243038179456759377692737238875036794846104407695465594906592169088212601974322332013521452367033792978524935646636515193919493819739099266944462669643728290789353473271874915010503201040662161325641464057398719873831033739838520082608217444097351616756932907252079799537687367561950743625531246533051852304727137182951037501494791890467443782612743296825792034048012750160829061943756297481538956269771661816646649294282659800265076986455526680534204283515730753627115266721623313684544136456181253877721120853981320281890879287861179083941370107594766466097942723816697085377749834777379025606836057892722555337446702006599730197204013056807192435735172077208618650373662654032224157234249234696209251398340368960956059139304505021310275680715172625628793315123571732345692370335878005009551134197748525049236731349206084116536719309468031970999748881720526930488792258989411084293584325378053555929732883982213069481485977633112563148194229323242994590316923353895149509138161280710379861728134135172417915672461834278472149184777570585060506853773251139667702314644630028301712796804857438638379127174673286864883887041690990280579395853013345099976580726716406028264885302827344707067137917208839719130367017874724199976093289155005793238546527492450897954101172434977489739973625270169645407378528494470809174520113532184032958922240360123880839518185842275037053204811513858618472840525900839484727685239471100256655663412215213585680991115397238512621966965809979477384395337556378497536991949632937208972282913105585197986858661630038743559123233509672881084107006410165518206452757109446032382209430946897712581066590561009637552263140267948206113938003329064981935223170904139109261016671055152783162251834487671913803672907328277749899945586970332397976137990973348240833395440380638777325563604054358923125008487049060934992378524609227926796323712190222994440624025515822524097868532046627023532506499676370323051675403362351402144301836252582864893048371261665737076199253055213166022680290765722457363519810400360893058906607025141747740167232200634043256613844838773041928890211265631057866276100471081221811325943977572083438287049231493791439752095589727479021238754091933265696758398745417098890718524696751773165871605515837796634173461096013850894168079184835258895944759414424268838048635792099307767748256212170290208752189931690199650324445458560914860330207548941580278872937055135324164789173667878266738626525603698394147355040261674642637244162766529756850510173466373454165568604124219665234052663903601161199945706736639545772627164691863552363361334203695754390145928925859781247630318873963947219344075649319652509915366767010510263692605322278064509992359091550323049515169495193497742418973745782048981137621383477602087587816992906191091311281197884082046653167637371085820174334722502190861532686675479847657106845656733687040826672667293647917962494654434447307177987280711892520241562163725075587885954199873869048592278114190934986968282544258657419781407026372180648099145871992659492635353789382853173195868524201718706880985366179938473612860407885323309258237733702001722800760323337187490890736590274778364020769502946265246913657114462127445529751513350061039121734301239875278377317170578377606390846296675295793840756827324239519720291928910704006690193072299605976784264850817036759603454226304178099616721059568567406348898372594156364143838446554155244410242941147414789284501114562417181920282704950645936991277203371939820515820333026965768273748857624404731619280459312684881850225076626942193844984037499833341907791879557908055446689387017127141644778586197510894814665762597526731485833847686738819709320289981480275896711526131485330317479215994210814129294580468279068097983051156939731041443636398412676921699363670724454376756026238189717254577119713681152634156805884990653129907703101804390467602014811907714092919039466103245995188760778514569782160175695945978814380339486035839763246886469395990278744940301622982245195154209848007616378902445351529579906076069269253385538416561352849067327650539900769211243332595816721511480597109147392079653954954686545271968038987952654712240752440987163535347389542629236843850157382077792573163374587852383203502812655343460798714669957626267330719956032926978497443301213431874056631446449175794587080328996623534053530312653089602788357115600955769299199359222141810361471741659984891151570864835732294508203129584860528717459037175022504413761426179734852121728895278907487255765759186038512096413384258302751016476545327076559765308348264705631429569134049193652492327255222324501368569776787546523977995767043425554334808373966620355967124448619073345215786077554336866426729712019241156468826894545232156258915071966878311240466099846334424890807927260942262410974056134171942095077967495395396921952094936756420765054267197773674748828863706532934083691951769603843469096870207493062276828511819680643135383616155693313938746845096143715839267013177084572677225541669030805241702707130824023454762390589710161100539450919955646619922340291252331302478211883526266155517915831852605990574486664651744595597161857944600950954250531458466490725167114397443190090346074816624299425637178195084234298080642288804775101550893713166220401897724640085044008746324339303040172215293924914198720461778425942405183778686443836311445804158857058104550578940397518237492224767336714759100642426066274756964261132090373112653257754085338539000219415963113329851737030521701483092262743554472623436627117050602473762402390753758606449706754548089512002203879603358050999021132935181262010850910256107732244725904203325285349727518379245632212810685182577381850347647535948818630318755869298682262772606543583729998210350449323241721615386782634481150795707029904933246819403364487276960037861992159835668583913059466319057527626171393936191998804142063933614494621987865425065172547135941463066232682501672383900420539648845239864845620970672177291343238779683671780864028290353909506752756176129822063162593393351853052058490888224775224686392570327383496848686856947059860956028370447660399606557456251451516077316342692725075643047105536200150004304522009486484491517469204182399449727780998645582360552452572010393520462597197697982028803531917618437094058961453301942606320104775423775285764559785940655213162880308428647048681209547907472252337459765453585622541135644943345586894098810081686818890562052230286537041152386504503668876877271428029903653153105172600427780397463329746547496229787680965616902216996888108490201930452938481394183989926358540849377360605540532219096356433823293099551176072081895641029943606780726403962885299298855126834192007127065608189681692437266157663742441105578843092265067459426816134019599475745939929516613421342841558732685403986986084042004103986744669923832943513438633902194029037494969790935167076889980836401007624628736430622526463417249021177216711343931215953977908291226617360918285372025771614945335677903749258206934616083114485645464769974524088859532552663165734045642814060628628994625399935774586778273781557166455889984873776835326743984883060644295946582153045526644397045813301738395569009198471970300611231908312585597410352387071425119868556024074557558093784367871759502218939553512961082907959389621832551984459427410959853592470233862554119687127568540003282965583332591706942868424215436073106112081907703709521638036697725070777334793781397915275571438379973848559504561010394009093540347546573009902086492099652341266607071563247745471036363189020669378172818773592037468341774145349138468759664808817845368145269556789705808586257426636854825367580028551297138677601195977286217523195871915372908335634432294570493243663700656551037015325477602838653262887199613508041860255145034842022919682838966674472123670374070003324817556123734007226606659369239084953610515982229430521025233181798685167376790515968670128684161507567149291890577641299180997158926656127075309645169916867302077428359119455826067290629091263564615415276522507644958178061147301468961430558390053617901837986787068084628088808074703502809094932074879806374898875194232100267738974085569174814905614078321395415066621607544235970325300619039212399454144883924092202723079883735770665019170372121070359617757312978150349483860104041304522258685177964352676378112996526298182011108816964969740048055183033761811237165214379765961209764832432840844984306349459663535427043627884557024888939127086414889892480566661391588639680391222670925284103761893934171679926440707147963306281802191291840163364816197220760052779385248504407897361537610451344894471308506376413722148139257650381119157015494578591041563161027738669340789100705370409791723630732914223312323198852606196552548231182862465920949962354078558430237829545834881598468313321910063444520368538633230759079959438748643014771028811286382456039761367804864524321133928194946175097612067397942589316267640416535710307927797705728825590520073639261436408058910648600328141346603318990008481869496140903740089998734739942765681276626204038425350255425384619842367811295494025553629001916700620924259937863406948749628045801926921029470056663558038810365567254862380858370804457015522492793870341304972792722109753126193996535320921103072190353643442982726106551881380151451867218114050875002055942376168158638127831325303666397979795059669384771581559811373617674483009878723958897353260735327562083986871514319027516868773108266298946748827908094733727933239993990046140527741083644204025143200346631127625543642843024631938379833822824622751153486784517157626867582837916451899064221978261415757961119147579754130621497716337369722180292756379935079799122597754701213558922511479189752446706968924893929466779521311171261519342617238862852595690483607976144298056650701288191582329067793017160023414680221382093188044567002800830688201230789792132792078139728614345682656031447646124212371682735696692384949676028164449090113912556849303544404362915279673311290777295456050576884413994036762551418007030632616075662831758376977629532652479653611098295428112973492122498218878749049486560552520645062773978880373432374500703829429558717889057919815391821402328119217354298545327628848782814765235024430676356485836968570908975332100396265431084730961158609793336302344162327015348773887538203110484688515190804234191657373759352292356551954316302321417503474804717503367198715550652770846608636773289096234513770835080615106352957232938451658722532894913833651967678357391938354582731753901563905173574146899616857285368813283090785232432929943258710827496157209894430987691249333112806776952722580883028925570699920765201870107763390216528337780810371047783435032254406824323228136330692880987611533872257011629383919743888559122208101689744288853489069668752307884841778156027256253786000261635236885109509625232660950975342763456147224533258967241824271772338908040915999931996204457681320621519134959348924713832497698987859214563574712976519408382622581827839191675766425821589478578935765011129987653711566314458224755634033943241862766913109335426972374796730015599949451840960520723366905328612972346034668805527824700625231083214393024008193854591666608014190321294762797432924556189597446247109544074439806071921429837897978610269371427242895479157030484993275008921169756191053657504023785841189290902082666009667902929412130283809294962479945663824145168778162002394445582157673374131152289279616613499094075612668597489816414869125905614692475006143863153165290092860000675819341252356769465631940579571754136237879831972164645934688758372908333084832630670837400705619102772793001445112055763832560545277335798461229157440405484324723168602510726866446377283878863929363255490578203336257114451176138684287160620896990565435714118418533225343896679129988202389284396973638412212292633169372350529248449959262945789671064738410072821801609424265529323255617406986774392698315761797064216880258113715389718515366858882694937502107286046509973661347189168459911030577764748292360315472103473656072204117244468666091008060217698123575609732888132559818441867604940539547627029654302049336936781088114968674579592537854776639312676786534698782573858401951356854942782828789962140703863107346596065614198554387281053497938795991443890548348624355081142298406093443918134131526786304424806491238825281798827730098008960759910825628269947957095757532616301741178631724356871191058353823973666443131880949522789294741030385050815276619868726718270918622187033934990612825085984818131634954344461048752043775938186903078914264393654231696450908158263790751195038727687754987899853808874320366635752226122688514809193468219466922543642674744109231244831400024677132396316179076787585011596496824491011549694400371737188886339719094122549395324596425378138050408952870327711304079978928343782242926913509134024141145813027707248408997795094179059176563752975995925427149415759203435902800606784299617621467037201776006509669111589757806633245742874789006925415564790848253567725187071986729038345525010104421728093731827697710460420915058092953231746887317407879704506736338159498783089635264866212464926634125669946458538974050934605759546310600320142519843966184928651212031110204055956713346970803186492230821284068543113293974640249649595114820056740956263740228881976285694005309812999210865345611769828604424875528045865006678689038712982221788001939128816669586938302801500907946665764447374148271599545785821352766078075354121081839896585746796429972923963487732988513730446303483328784439794953485756776058582422079786651575892531259314850414543927312542698850186995453538252217429515815944074157837497338418826067241868797071263664222754622572889041111012247505618684946892497575157097584369955846154660974685579208600292436096922555897388829135551836942064758809850218526511389159591457837309070726902745652948484070317950210738940673015618821488136279488671235208824008082670030600107988028197304243862764049795988828468617761593251362720265620389137778916468075184797171509134727532667905679120779825593102882791774435769852452763420958829468848235239993761762570424257608108773052029162826271646786392676098111226479268573305856388729835594504905142125189072833637023684832891251842248828934012928523260396512742514603180315282560686824762605764812684051697569336628464853938735092411590949000758268837728137049498781034553774320080207895662169574254151127394172473500258772388605647256175859127906638390561045012415471934260659902014528547157007121122983289450994733934321183531895128746192636035062138444326700538539492488300763092999335331770660393781732610535005134813929780253489171462895765796461191963891761457085475048087178091667048254017637169236340927315414197625347628083835043437087907547795420158039433255913672399297898052261410280789670173018321933508277762252919646742136979169442354582042500664546051908110673252299424698548471228296807620391246078080897073322872848843615617311126468517638104390587533251456358983862191967384140436203814033705342449751588777813425458062122454181738082197189872239531671575144149081282800800704919495433627893172863377170098892302485819957629661908840771748122206606009206923677857062629304931077153250593098757102010345049631894250277294250980744147454728169260880266481019655444289847802793882856825481937869612063540891090091267269041964094882125608558659945416675987700752013306771205560023110716419791376854868954584583038075533163146428478911539944857867789001712245784783810440382441511314656225443297487052680404956538317294607672942344315238482757792806637006985860360404915702716704059535902654145624400279037718284190689871705274661889635731233855454460743529644792668621849469462060704382800747783432524911844270468254288624979462462505763757232516078358469390666297442628295453215226358830094784804849260313289347723421598689652217438718734865962701521373520765415016365903093842853957910218053152649463229533867620327550310010832551287283138414269275248364387343113482097090658655177827392270692094505664921350489106588163608443068387985554556763366825969736178867229500753418468219514324780494281167844321738862599447173955901956440904157774963799446593124901236063925440384463849587695910860064903432957144736538677606168828004091006873158929192591169727535306241623634594941925184447329316515080289820159500986349349302768072414118559776822991885327847174403578823471975881287241288352810274745961320542529242994418663985118242059408142434575310637155166494839873367319989551458262920801946381588498620062667512129916956528073774876865907263808306626196971843193233008171248168939044799489070903073530709369986605961333322170645755969056339158433957558802831697736402637179236598954360902269907572174403838114624220133180182544955184235002526081776463287508720574557966442065574289689936999724460534700776717499738868642643015215575542378734453793457765795048406363943665433029155463118708161922237369757606480303470341119469324660944595925516682034349604960375703998018842029994829422749496075631597386583929401564565673235636843441020746379552529545140247809940970851749770480571132736679118473922838739097362324697779392409083943715385259524549997671978164267424655366771818721812920544986168192732452812346937578253910611396182473647728210627577782974744133826352447206814170181440978036616931941623494375571318437581059022592074270279088496915996739585091412258668706088396668796030933317576460378307153294875962263237998555196148975749099619591401441394832850461268977561305955114779343813790454186448671334225907599462492631225995879672844897702289532598515396322611133954410885383772805141641641948121871232390348786431438329705631732415175748127715406290121350290884111184407165042395233497072776583942517958094249544836433392679778260648211089545385515647526323120312416615506143090152646165802122777367103318895419544764771806246727383166263927230659863556042689826148962554810958544988915191961415236426427981825592678589308474968994129688817501120968156444920410747770459417253293779185174656178612389447823566060554841010421764234822730852271077710670174441056470537497001342709608163708402038364961144586464708635467634326355123118303027999869242207500273072057522373986686847198292725082016607267353630776184458112083156028039532915248416577031695305151524848517985540486349062059565533338504924817168801527215704720864744026249307695281391943952591569874739150620565028481797566484074788057235974754927587275412946665490687181232499733369949634651281037761062645974857813855610655849419525006732866593485639771653951578989238543338615450907309883760345773569060513852124233662684644847833360269554590474604807980489237835400967173565370090515395792740568357023611316380599972920682072937328805993667682511268404863136273538255308688345344819564546867762051574451478899003152981153174414171333664189761573981827552665284692404831530005834924269224586536627113664133153307021031596948537457741768442104858910321580233825977335051297401345790204125239313087427730654728514882587460830927005819680793010016483966574677604002026219507880815418552483799068746609526808016101324626372566696540599994678479174420260646051807300557873396137149442010290893102247229237797149791485860961401610899636846694855307788417241012792091018056715283488945009111764231506521185318221184784627897263091630965872118571116964061940403649777097971428986912440728807946643216668895234141680216731257030835647361612933795158622803362002126873068628474315728111011900378348538564287226941979920379583862357199496247873435240306934014140840181010429098448105051417727651621511920010226463906172267890920868303768998438682678800739202627571125351529212435433894948699853986478828025259656906062394549294726503834500682456093092655729049263799127314924129462620295273840254093150858551985921500262716859364609894291476871830214436960049634258978218699882161788080088150785029787205378945262725687947118111443352987350200787602262722794291000953613476892195828260491842914863571512335286818684548669828870576950833958507468258859806103922660489407660816235472166413131240193436501762596632092621798629431064520856418864244420047057206857814941010368238017649579019385861284267162222064071714371646326175631822657347777517167061011025984978020963926017124237437162057277991035679511696834450232629389835968502306715600844610204173742592955662180117640740221148073891031738536060136287863816763412154462115475910967623693950616731473566049587916614456401947215369283065449920537139313487019497632682299632682808851810169034226882590507338731963070821123338394387244899863584410798041602338187284217612099979232617729522843245833345723624289572629394718912256960612658230958442884246743776410205056614630745305951979980506418288221929581934179866830726057345457443050703526524200795592001626652231359073271709149137156426075780880811623843144758844930458699744688507972728752812277960697815061780613054339257458987766777829652679915293824435433180780726632554352942136777671390356821862299979922734750506738661065459004375198223660093062655981076783525414717661241965476001614384857388913507491453095362017886648912997176598486694308500676564030828182936355867186138853239539324001719144376818740626243714171773092636189982874209037354276328937135132611457801128464673016960617420726573749975066864602675028344867272115523068240684594349715084710278233617250751755090350554568588608242473903039921048892440482349064197633520094915889944786156754023354587922289539627351558155964442592063378152856769816664829332234920714441599378676166567780782989190316928781479450241489017710441505108128905501478233689387506009906871130543213195619152710555286981347301692864414241229890031273970425817020300258444466968224960038142102631478344419944917977127739973964057120365099773379989286290609987987498376618487177307041481332619425793977552734783922551678879981012270744450269275510344932154270013921053935359092039542775759615030522079632360240820648805989823185098915454872896500412749845518005876176504614799806603066239114171095422801551225432290667468817846794601127744754829073658743193433887719890471540545209805605113681159169027898193464472044320009424478704677183798688554982274365254256267419593796438674653052320837013127219903766236346934932937515267264872355677228662276473520651591494819375636142681636580241588523060405043344707966513070931489800083451930324166342055402615927556388713988284517230249785315063553354391328036960969514342270027643020646083419437813618730840292112552606080151145540999566999641056250822682525105011974158398023813562705305449674564755266119538888561158797429405724299926497503264781818664274026114809776573092687968654025988905864581830848421628451976887874108036358028108560582140516375462125360656613106667961511792310914449478198601250572829561233236217432948538532878784970347925279902991677552057243257201180921333032444881278801453021759376005540666181550568378340477458754332702706373652309284447608704709331991786982859353070507128725897778273552310116825712343151404536978253328815012793259221738419825718698182463092982870445515260229392498423653418201533524536142752844730824704000761803283895039137184456048991782367494710844200305942037276893077310203260693437031065064082879446806643906581154060004634409424412785880501001909132094974216867318695660020900974755980638835326193025439291955350121910989532110505269188292111459339961423120326469807611807773831700966493848171329830447897873192806314599286964286546855315773175050941236690629569750341358326333359346058922310052841600810980379391599577486961927819192115076603005364369359088810253185896470260392960972427356525586292948180130873879837120701423225721858051416514857438823071943689326931529044818045789198668578195335797827911936684894878221531324014009594139057998764460331308507917845648017720737496316344404798116996060553289713687926773815003414313469234516693145246965888155547267870937624523222898391837883492172886999402700404217456074702925613826063021435623929665924599240193204436209371242539872079152534067071739448316575623835280030263526534105644446754003871688740158317421290645988047282256608659379370857865431603068809225862248466741067430338244118948356799733962712976964195041361211433679535820302199920897611673726258716924595517596743112056250171770000934094927106620186831150306961852787582672963192029725370101366307503630503641348711811827227992573565628881667315057944786445769753708472224306396297265190133887770946129609118648664966332947961360096209830314843584751302839028157741686722231900442694238438190846081655667727687361798033571225199348943475103219466162617825751523051755622981096000812684412645510002681314864602340242830904218278209245131442305736390100238231261550497348509060940317220113089947495536600008838407644566831556625969828370956146226313111307701702569643625505800621840438451970266253534536781058070280864759132612653734628634535424523316303473712099879732162732732494980590381819109766115795056781015540468958633906722723540532510478123038764550809063630014599415385559074930202464441560506914137298905806891505448111598087724480457864662706808456430502801062088770315658848447266611763805029558948886389663127045812048136993843041980024715097552142361164488670286990040786505038548063826919523672146715627860192577595125881054141177707606949311951039002465840966826427570172633024636306244531164469197087086682558429084059155993484621286926354709018600757753450188631491037221885670880604974306744179250903992773011628349001381438897628049517354149024597940179491733500371531712999175520740936729999694501999698837749520299544433986342125127692531007007218035178635452571577547479653681581266186635748583279005492025322221846785716386881136193752997501025574043359548486456583524246667549381962334041010347095375873936453738274650917872248948258691484970165637756702876414442407844394958715339992702725947968677339032008811298234661830219733877212672066273984905875550133018678120163748038529169707425320628062923144046565154544226983114533816873203424243594190146840766911122319424553627109358984140272444384368476273718016184772814246370227535456462448446588449638909614192365254902651257086226502629314685262394876848024200580250076667411140830255663549223305979417410415384256786739596336709690878229157772932430309010448373437462313954508306437629467266325146432598737570803665744664657243047398602876917908854695546429262737396181656008377206177012332454989270752648811652521948884757998076311037503459658822091864804472662864493457328015422104500612943291880064639569317586062716761922417034335325356151443187888888150597646803359526311268002637653365468056615337801927655801637879248898038390494599876189507412358641896534977312497037367387098345554138358370346089834619607161754195980520627782139013047989900206980713585583613152144412923295579420685221316573812130221348541653854758312073938832675161588868094665466701023567447993289203067560450868887765730877366858212271707594805824717392008374030257585137791164016578136270440347118283090570229850406460604002678882319010518804500206565772940525202748820832917540680927179739217765569315247737553277963165413589253878542500878088784566415936300634817328140669119601696221687274201337607026357039810906446358695856192912008858273014260494603290200337655291608191915330275247544373453576971259239265410773916104059001310281727620641141636956205632691032794151854669975836901928989679923970541455875124022050618151106118506274712474481735784465983247382076722642666303138455232850130676807253949664352174717057156311721992512851498887821709915351275925180185761905708001945406805828803102462217487697495143573066131346964199969012486888893708392809748425387285328748001246859121557599974561361841168818179588466166426274132346688124804901714188492347997775538054830544756445168030033762938101534003138230053072580621439918535488232144392904664081703732648055591871078060145954622592569707024809509026473645428991048767240437652684412803731552362425770826523543964608469644500438666319150854438718351929221699831032685105404003456767279744647990584751649053524545238741909726247815318293102619770485119262261408244544180647354481274361618330637821089095444990941410624183335607586260524789924262106037243373481795957603558118997776951324066177106027550090001242076092403535879769426349017962682837146863710330482090239057939037035028640135331788578840423126366270328952500385104127137294248581361683128956034874141967847753615276243793769919569052669372326867115010044132691887868892754675553023754476955328087636883530622327159987874464238511351002235799645178596681781636852997319838235687581216302087759211616772851469456045939460783599952902235087347231756001094105057833512934291010372269132394892974037865147971264964403750290848373211817418669666954959583330056760163797910595894796109710295103772215360629842633009350850070537400249905235825531130572580459656055631958224846652410187171670259433786358839435308690511678101949001166010222883755808875323209200498899170157406186538917906888086986927314943575687930101546511041043539555772274004279402191569170800465488438830395327881135282891673085565339323581957361905679401929973538220651976975129690024999616632679155586361854836875626681074573191727874736036443582919319409885044525562625635743613406465138266518085398992571095266247654311792292527238857746010729491796513733119072258350005037013441295356840275561469869072930000268983065459533597134688222475779443779479077219242838346644869765973176034151730636903620678660188570751300878226734109776572219345799410833563148575663962098941025453343967435572722023186104060167633015655512837901649291873104873118573047856951511251754639429144546298648150942556476263196600443209347156321377171925776606744177927532140769844149525831591486803741819907759894730143055317480626687948100863021959445631097472949679634122493595106096351729743499699360752567810314721301243303816597919211942959002081663230217721759328976557406293583906843289950248758229167911485011740170346140624252772941756561454617368521258519442233577170693460078177229598492681993347893880497279741025182433591376601555069031391409313801770208128595717792730952318597253218908897289039838127209888866538297835680290337727025319880570855548592731493164946171743652443504605510977795528796528685923579461140358362793563143589672163674858977881660114112301661382102703110294321111948190976818830179392023874776760716924710332057834183863524724244974234004057587871192802295601365658223470802648820352291898177500320469238424750861410908203653973880440372116265912875032684732119289445893571847927076190613364307409423018100763220630737249853282131302121495420593501957720704688977746561716424924132551840348192940350122635930394760975683989911877087769107646294373754681512825980451397554506492752099163557398268412534425639083500536276107912869801069842372188353111403183522562818715509954316017146014770853850115680607756708988165760087726885496425891661131528669954724171762686793907600095207702436133535325190010311067153894785201564998898144868940921447032064979371789685156747096167456696557661970764628300890810227941254256137862305301263566456683408182229734996383185918641699199012937437409493128805385142921960348955073174489188314316641964376420957007115036593601349527843695903038853973266382370791953423689635109220514051827217063168666267560019486377424028113875742959817582856925729052439912441759913883976099018509252206572315448586471133260847736325003482996471627659327519757003798378483614793700334716148798182795482933093989773013011132815491945600493343809790260669903811101380557581418742137856923757004526002676501419958795030027857855622931427537517938946340391689391334253703000756876693453468072705435241649186368837313905109931189150250521805579564239271611734808124821541080980395694635361554442270350961235159049841228764749018166459390683735246884381272573695514235782963437336054125173421408489394343116211464357249427694718136968043335444365267165951173814219955312904023098249473196143506568926108814778005766340512094404919685851312246803487817533206391249606793474876228386873299089935365656691479482112390249416797368156183487999040418697660582365335333737296172137977534309238637061219816097573791868686529809592721725451577103732073535127354115521727475788124418494101245769445101480734530197426269985423615888300911412770872148360921742230827225512842714302971461353033230418387549302732109022253009490760885082347357415486210801194877440829322640975411123369308264113202149178862407638427193555383840531994600614030321043553383928561071795913340262078107340345073230718584950633334114409712760132242512353240522965684307830217599239212066286445852961922295294591679084210848448006878981441098071360320957781469779558032354594367151829612548907333703176480805327211359486830201925084948641763511188529893487321594707469833336953452621825374672060360750193459893499422164886155450835896465578213827795606461827083185563549387054187179477009561426600816396069119303004274857691864869265429072601213146679553095662122887695424089472232575189974396471592335587153625516090500626632129438671789003791151378743224732033699272120609583703909942864217171306290528526058148981434794977512727430718517996174418203304154874221032692170782027757858756457669791998245059439227558832236897391410222661725599553061397915313986698821979676680055280569176239826814855832495255073190942991559484206586463219667473661131996985099991416775197175723460179708642347745069066037976430076201952979000451027694364113468550172384954331332504287317673519156219543301166197977342196483935809364643766910779914512576281765547427905681656775128516210096189605063698225898975232063275962531549886335567957647159342892727285676608596467664709833164942386915967870108775677343228180896639391422591049738964415795584904077304569792684709680381024142634694708272459848844643967201958212661724994655167254323652958955333337344080735659754257271739621321330680399252788173885068160933968716056528810471398025160488660938162020880130033792662714874830661513912060401184355182648398564398359530922120782170382064715531790943677214539234293253999910463223273477888144569509819736923458720771356880657461822346940595028654944408088738274443211309138066391977705236497797208843676131497179450046302261964458350882820689874153785425691125706974819129861539480451514614072218953249951000577463260341860469367851797863631538959253884135744316269020091100543231834338097850939140502422793903130043397457274807713439012925834140907932943705412997310108627257206377256410407187577529214709088900104983093311303247658564804183447393580687284723678322682465824176176131656762449498632741890854347661171992922537965269703494004527904072058774891437132868573623189415467624374306062216235218972354981665163707423121165449177202015247565412636407523032420548408267544493173394272905532170730607202478498010722490147785294944316975173967850973371132255838318905023107104703845192697793417339915053509956925215103445534122675849527630157974280257996447857844280873503403049769882368721150419240480070235980059406246022085324950241084417497134387730670991086912629449737590919049831914168956906610438035448284104870968721436604195732957109790510721601242927331077006728152412809924038273447507941450211824774985560771800648527900892131035854026660338973689091829652329037180589215268126814509242621601427966781435864690347283600562298311861021483933440213895696900380990455549298193753474385731101119934418499162928807620892467797566259284507158564770316137691912050860025768232433106077104022184160692845093215944824537133908829899292809136554428072193960440404003984090712134147418345180333030427206811394915686861351984030870178503639344683613668466835018370519572761554058833423063013221072381434605114886219116405791505942628244768644937633203034582231645055874541829351539036343997966582478826233430886785402822291322754459511876373527923865678257819828875593082541156903513795194865412211976424990687447040142493336408319426234847257336408990895950164775620466655001852501153516850391651821508055101365694014515070807667147650416306991629808759326924196206455001108601644825042263372167595454254579592833459861151122818721969677656170047265163225783249783399675750037737390604269625783575932963209554879547990505444726907264632223886859872561286210971592951222890826762565806387415925112165369159888852627930245198091729028286785276986949747179384414942965487104832199965076616343492420472292728479883527621925511650762929618735683404441424235671960372437552349406992398976335650381915463940885050531527019067117051999618730317885666016749698595945345634637341777992785231248697239044895247399479087360786942149026119925085028652467431899633266264704422958957282645162578838065376690716800560850132877118442747842833570651557087064102111120137544316725271148613819938333572066482193207359297966371169647161142272554568702242651363849314834152950925148140139803957476152872108342429541972069430079929108634674928598394594234840910190044419817826255662011445664170756160229743435669185157163709464350116267666383997354617770428551960678747944707717753097620607337928302704242224682609632845075935582563725317805414959262879150740834426734549116455028946148946749480615096526951937483388244209932423803047715356569369417255249997022908974932617342622085336610192181909030651169217112728625629734301603470064463347524317681934840550973593849635292638277089091804745428180529633623059674576088806106647125371903358929954483112426417202584636680518763813128882620257130554172063449620490272169540034052546226695536041033458587595209253562779306214274044168306849329882736293942008235130410911640703110517531930178482492848792061272459466033155651992061905871640034752025998839370458205734552424626958340744323471813109327294305618475768289338295756694722354345392408438890513841378793735349521359604181470823436095066832311854947327449118670937811136826936416132396630619748108695519984959112163002118581489029770741115793042010547655179234175676046211922027244611438207608028855116341246122586811660024504023289401842613859701187755891845823779459840761533701555096007138525439219893980209749451010235934598165994649624678895475433387543693435932745838716434882408601789123078168583861691519141103954356453393230165966136787784513088473132606190297638960403342435545385091131739885490836362532700703556930173610819607786963441256795715151257528093587762183233167297115949938035804249655278891181259103942530305368752149740099506648461947389342204118985011788856081983152368672378767030101770831098864975782526715959063304089369861637385518583181658273755459819023853978115041554869983703902174471746093469504782857869676050527960782260977751963871872300535461816335800662263887243053009390219816302880975320183921907581652956553937624619415930925280455072193501011521512336857041335344404647822429894633832103027242556229887319427066014496610124767262661813837064176906933561503801937372967092443914144546813843346528362035137935276612895474857056217689123108992664533387015145978693254671864823567293997245785978557795785865915179913826851683445170154695106989512894261683148912868496811235103491793155513102569752931350733250098806808572896158145445168227460512182676852982821389678092949361321734083412674832702078051907580042175235784987287042323196831356779174042311435644061949990450501559716504380936787677636381728990664516470413670739729545849239008292222261383675462554568442492991145663213031774162775701015559077559232277428069111123343463836363973089397999558518390445520512828558522514902935398495530204156200759906593605360701708044632007087872769988232347721431217475287475666895248447851104064373737613092111371284853685192541095337103920738224429133784537007388541846426153222939776623114548869087344940287426423522516707905622510063177194380943682665728661935989317406510127497061258461544338581496651402183814489320734428684764090715126518380370935256724372330164414488014158585792376845960899491959789399661254198560199652794541505685021995655599153906914015186425765780243523595034109263029361070012898554423236334269572718113912227552607843231665606938169009864083762410308461464216372476287152089045732045802755569135183255662270754693426778746302602001557846370594279811705680697136174786113773647765256108674521489809513079325286307316434271951327574767862616724367941856223079028427189478969852721741115261465590649818388719593450733758075462915280450842873976292084496061649156618593792822793353274385558205021952147451185969532993243212678417290205874447813435018950741430489946053578031613162233845312800117548953238225910328701582799780798192926217691226640057499679714884183404015548784980447302615613380113019369487738931022342155116786575171924311191319092485392142470501568971956723363879433078787230131719593455917181615986270956637995593301004050251886933626631863992279764653387671479732450610456207640173847090453726676028167311179317493171376630847789996070632788220360651991923012651058693750346920126887136439272914251583271830334833378372940964394577439240889631023379489164234337755132661880878602944999317028319378994870546431512749230853260332341294497165470504359967224379347867262978159584759963191280286881757239902109901216814975813951182952654793410263384991997206583510074933820802087805851290252251813212258530379104597093542602933851901356158256244123461022764184597932854531379347548838961991581016309578147283205538870594792728828326777099357256903529436897790362377489585982733837050830983972920573994118836472804578910498606012720040471213382669651999423416506747053085086698274741847425589213684080475529071436750937342384238094041779585783155647334217160986301791420187822330234398807663648027109897325446535927047275819663996013825363668094075498402642595171809516434525193131435343616699076228746120633191108576127049751164953096880415169716431585393130616442467855517706889091763217584801663276395922311827111219072801335884694614760469204945400441624330349535834665951495227565497123577331301865835873893803656398613720119803896110284197824906666145587793946149803674852152792726880918623845577746976237894816275859083792836030549641946047660652563916030272810847664630114680148333516669175908583832472704265659907901639713339940294025080525489486159317437358199337593275125502819167856376814880737623619642151161701582136874551641385001445653206865476850248069850116542322620631078691543529740701908824257972701089295323886106528450927154671109896370847331008995401641369130556572523311109154666647615305647508431597720486793391206202932324522165547451971522245176655280035901840996361442045289041449244600242529342573708607833896930850735396585133048341459577501913488255589294501285000900117802518158314076857192784440185911210177172546111612971772248200931208238979727333361284967251393414464888179103189804982110286516040329935749401411581844956451716962213217846969611585966641690911074325336964242715547096993992308438419609852791912200833855038357900151771384596584183714031774849058484710476247668485954148944838787485078122041296859910671718277771238777820980100039638305451598845457491765882846617290660209038259314850249884933486040763701794961224628344173709135636907975960269880482405029351323952233159235736323429978503083018805269046391607139783300664919742754113165261936217958118722256182511235892368771452741587376531780285302066206383625009984155933582210664440718736091651857020457060830653255531021910459512898360750093175661746154650585723999850403770405710871076134771908842307864255850478019398842782477094648513018897981676002976343641907493722054864224481604490190926451869592741837986255073785489299747855293568833764454483896778094252406393728542859623472887628139682027879518207781080683564856108907714030688930721445241741768937191300737204396385099954574204705917263918695935124634801149753473420636199865774203287112133055990722677680763297567385624207703484848375897632100070384282818370857228721281866203824441657379306246828145656951912551917961465448487955922052127851703881473728054409848713303472243482732657790192034002499469640410685192040397838638348206833115229977383185710937383787644260152664314480472050552735610476906479989858401457991420943328793785129241180923639619700041321979225978385663859624409987767723592895242670688332781296308764393681798592613329914693596100209471949392071770544487732544571566109645911103879793095769269811641813173277011147564633823742849024266875762901517527983320416502282611689337589364452808341378056359169871194434983347913651033865367355472664501644145572776879790622184634545495693883538376502280011127587889666521457976883648935457800696405474825694222110084393320953957658689635631426366969488936430477819858155466806753193975725793375304017526290966417924967732930733710478629406860533264940864763031653795116272436826971860100910667821772480408035420102712589164247983832813253056192321850042211896506294521272495440078600681441210830079986694657678817565431640167752775541586522896348545492267851979000919875848150251587126355655286358455735224526032170014967098753421122784735739105530339861564095821445118631770133972298584178416249955708811018015937381500959102610025060923270684112843143220240174661416233798895015105647288208324094202423940980168443447529859947783888283315309320913769298404668613555399549760410184577831624015685392164706032940549027711091722935087625350764296406679014809359545072238209123662801747466774157202670862080479727650356838330040469300454576406918032105227843138430122517309536174058489350100335911871117427075663778660302816049219068400270219634950033780693163217630328938156079997558740979294852608643398191882784556515787965010265246046574002177480349021121658219220983155063997395648298516999288144718729555150905454860703235981715216371767132394270428799143381792746510265639705901158518608098357048148411316079613767497798465471739770754973811081562724417903015393792407938695229688072150088256795350632964083185106896606860280090451885035011975181079300206694402000020122516953466509289964901898556727069344125458673850140476383290637724956970751027852860910937793687362928859518396415697027723239828299228400182664871303297091595257783525465808651327986547269151774698816920727678857502731507966510199638326742638538080161610337219423106026139078940800611953537559850886589234018225287317264685507285074417674175072598684171003387671404202706269164633757460232308302676488497964080782863146451932719908201698865523754729327028083297207719831356918847319581027919785496024058923114589193744310557193355727175097737597267322139115963766237013207891496871831681047050707774135811324001380117406172912206655733352342546516549268641291750297753924681441628292431580105231279549099705686028628772856185976305778950499223576324236926391631374573685178011678792738294352839206762013442078567820284158405779736259222433541819201353986404786102904369470478436382793754770807423965441135144973495719912947728124823925605893628453466227704746443217181333074808058468906096749361154672388595308252949318370841003313300060260899394266294266199227690268487029306716208389708913010400580296862669612871936586206749549923845560503500833640034932995959717730900719079266057639553642618364786446706576064060540328836263824357148859557785092004920954957080726775673892780100268413863500712359318747572784152275654686919576534725554948433483180084766435148799458718553123940143718775521294874882978623087976042046854631935525344091858971411199629657102517240311268931183738048550204398429985169351010105274370225330357555772508842715018644043110551743294876922512388233657795503129409610233099555845614722545948485183366307404890032125196742576824908439722772103659094455908306685030196801229587175393381022663426313036514337336058375776207559603483395964331718330927649530691746206572239215464956144250281099516797958560202877329946903366971645746656165361292784882965392219263042764072733649588933986574915232052218980142449609777750506504777688535263132077765642369520548539524633080575483661356265334090343615180000817546928806666262391381553470142891481812004721961498436744567920748910127090784600558911092805019372605538881645601536644043690477248149060829087622717754396747175604607160105478045210112606014888848890102576655613053071670173641112375380202121551976348103623281375270456022712217928616813865872792224497344987162348095197467466998432851723865729720663033342466745018779329472437834494960020723950390727870771104659148768232339141803497592943109982441389472727573362244250523815167968241045008388318947940739922451050471502307745572991207362049063185999346779105332197738199443029883155590209285206607301479165532388375165027096838824238381397627639999571690598513220566324184934681790868513146980450676620856384028306361823259990387053397549903194769810980403504056161119361400814858797618330489007029347815294155074752775989040553439313734295195156941518331286061367494883786342851665133567651985563551687674980748374014767382526129248999256982233203582260877670556766525517879011646558401354236203238825879784835064310033808410109345253405330393003762220978387006458079476585223445065987739524244935768287154015262851438995255322612782050843005674786160129613784807803659879939352499462570832774504715411934145663307589123500109083793431442600796534589436227928997197327371717992723134038996930884848411923684348075885365987826571303288952691885041228572380791020105499895797886744374759203143076718857007568893974912656753122579249075987866444340301075957909134246931805663195456315857355387735433607259690205293440046553795258984888357736466661118640276232602680166104232841212878080710228737484220012314376571749628703125845827731856720026111950616252499719456539093715236575000873523577965789614246162919196601260240781328176551073371007822189460276257132268920561773586654632956262602450345983828913177946790360228833663105829962694600131731063356026444072041441980857867287583198643184605542994584495019236648780692863911687590127769335346123410255674436760744324959214421452454458428262429695478692008858833252222839346216311977248778559630372604701626184731597593746148529159005887325173810312636571000507432316225492107221157867880918018019447906933846778047363101542905952202006267678289511014505218206943677269234399076329737377506568917123430545685272543354443882886390958676867562814509346577386746191338645677547648732562627476505666593211118956543703558387681197433174864631357664540982876568945583037843099296042340179641340394170631316653286554792491480911062278274184205312177884587852385125127590246291224322271651708087187872073304111709766976601421192437848824613501656727753323981502848324743514611070152801565227493086675603521463494262329234508869213441460251729764880516036140861470611768328639965870687056826478184188296185890766421467910392615617529338144158134943387367127386555197276360357506164106109679617169449497996184786658787018281344375116153099361905010793171707800296168817783394202769773712431774307282345161451045970260302781083118227494925602719885555976228139447324111508232288844855610246226831655028028173289052194838556630951083105880638897614832057862934852596894596202947288868235036191570969917308642003381758902860590757818561321722147547100624693065805491464202411371786570350084533440728612437870032031598163062480671145048253819940598153247543162265254098097821336808414821917634115888017771106182473701824931433809233549828257081993865484067717411250347224678205669687829338895403987564720622427171344406085866229630982551259335437509544095894958477999131410107845780248357029447389649005880875084364529042158558469123154317510226504155640107294240496424323214706853740697856206930559585340288567895783195386200551337061456985109877164642021231825685547582070491567998356269859808012396622637470459412612326457928838089551909671431793151565241309434891492356497307676759603759180047834642771152891797976046699305187484011718432705711149578186232618878475506231411542448368708042650692354849403522879582400200443977878042473386258185874544879144441718141648217210327233234506061957010627885047321115077963869652650913889005154004070488395726791083838775521318925752439823096204795751064274589253065759226926307000661732312030200843997234395584641019633772836883124562993517588013650354487473175163027885496067746674001111813102550697349093502548333355113766750791629369592832883283206917421202371323801927007447373837823268604071466032492217876097472196427472228975471966498875459673870435513347115521785935847381313206807841535088465428749811619913534927111511547061976868940097867562071330458505389606419121560215088347584430500692960627811338448517186194801088886819247966731601363349930323234496707793882642233387717131421328408827763628197568773487668382650622296906121677340896892138110727357288231048705486851660263405215136466573530781687803037714165849447132203172856812180722135863982149028891317266752619541509626320479277942271910815838225579719594959858565876218226905255668241316838253379041459871249551293930125078155070670991188821805708491143080203755353798515611719264594830975111457937800344785559818016902157233320739631820054678706426854319550604906774844207207256930607415191164945008031940687374700211877813151936400760469771436010095556990833356349156706414418137699258724356879638373995340578737320157967727955706061296791201933287690558063797802758693316770559606344686039017234205774468698447042286234612983053693653032199386778692816397592514776765670673493210113643724725934445400934722527425498242231597284047422174366397495148605440605428698064745930269580498585421190563195970425259571998569145156238491050244599588669290808725440053862988358593718075763807664827198005988252661412376757960003046141024553804139097215180690884847706416352948265482152145797296921724792010944541279163378814796969690341001911446261541127081171479259247120792185917083134981500032545126236247366810035830889247168915055432639761890094572346740298471755849189834529047790149174020466313099385332575843708518520816562045393377104870081131790031051622709317209691623844273209023408415009865409017103688548462001382670961092235412821014285691868883994236042331044119760006847089204563815929681761011486679116325461501615855242690779084169309176186025172244727436823206820749661778012588643740673283961362008594127389174744257557860027382568849013973805424474288975707731912183003577596482447808730454682214059278538906776149176049261502936013225018197725394351903588263846314429020775215291171471353001439297459433797064581885798406181037467737269972453442345690829871660800783228220467436940652001742121395250612495557493962290252526841794621137903639719398305384458337175222090073519716697272342348491612846516362483516757719764958410983080944205605802360097563856476146202532639813063304602160556945250698223970417101508354615997416329238031603102718426093085569305950248703300491141264650048339156907178915111349329740142203338360290600419523344045098445630541233080852123304351908695849229106653706279493679405327509386295067740875905566355615339477249604331721812386343331878313808107556670725806845850046382777495322661546022023412813531969443948895588175360119679536785584654990537028680350828739958908854959291914300842046759259459468662270647324970142120573546996170648929081395795562755447155796602298467098764439309336608216749131970899930394247957273904932716469504823017471667110398671218416827945301493829438827749311952460342097337898705023808328636179980036839371576580960722944326756303798484321857215402751647807273866660355734038976753662638059971712497985226800504501609992255664310102342906980652026350022732849093919504827167413623408146035795086114087719776281750361888720635447842402315618739786528615598826938421255007577985151715227674404961524494294638811128775601564369168433216920198862649756202650696930922880450034549025325886799941959491031491002201630233287559636335391321910074506780260508455429229403214187792621033837264097337758102628380353807889613845611926095741059843404450416058139444891957392829252607245280034097809078434112228952001224661129209908243574182768989187763426470326253245727735703425719975778489951425538053254873914039013935647148083983545989138107120247679565126206541040151029056876318478867044274710074400970160867360148965738898940756147693241595399941612835499946986508844806602751444505887432976126459998269618519422106465901131329379721523159604249003326953072440450648656964734186470324434178518930104099638005468664422219167763312934721280586008036032478718415410796802552237383838361111986195373146339411665867202199740433927011679275080362520278929713527033053627646540203866233553070595930606136117782977454475289478097592749786276917328952002805814293475389092394700355896674766027372664404389346212244332672094004206154696492406239682916661929110682090745117853726917958898188970983379302803003063595416364913517093066115941998789655882555957023731203615840219557130444914346387781913107145115628595523611774387147177507341303449040545636711696958343015900966181978811137654283278085634712356870667143416590660685682292879917138525450531295332371330838731657582831876091372152712999056371345315848018823632385316513441586842121500939658318816636790895044229275964482627722426507828978306607214714901131790876740981579359016305758076485696434563176582689663448741655514855134575315911626676236706128312788337770274274804000666899271397112200535921194325112079468384820645625641478607171306579636153584714780138323690374585760242876584601604176250938921731244974094467970057838748548209355260290110436273198863606578114721701129887629300777742832319932336422663192087703964867555131021894155301116547288917147841390382730275005470209700643494602212522724218385427741317472089804624015846608361212018851552103452299103657611594869221195237832196613293893328823327082787075126487365885787428886717134733158601721445801697388738071073289440867292377711337075155819883432573411179852214409798206232521195985774824657412541769179928412020185084859571348721913719963770867029446719041446457107943538253741222272150073315063439151538891920066336355537424523152662015497403862554189750335851180395965195786558774317896775477973874749075748137252032124016695008923267654177394597454156391946708469334461259031116536022726721766417337291693830938854438534447921280079912492478590640536869002435842618764246523154432814623988662240112210808687492677532894656068531937896811900265566203870966193827129561344499846633135719558160591032753393048489242453625064967778110860918735946132455285545049353314629977685509042970876591299187766082971695061877101531456542205463507858588141367648539554426042930097430680091927633797754819606788223259068449538229887356996955549444728054075519302015543424198157316932074931601975543923459123110605188912347466283321728597350911554638938517556242399662664433979701581950853977654708464697954284033499835270224193586920393072884019736361695544826250643177753304230371226517610442918269713202081436447209583195981519468179937767403467352710929061077083904972907831893649194059752255811005335271623066560805102562793135050098159503547460000426473523635937907921980193166579562981863625879633189709736510205374226166860519356790684567489245323957145373944976460441628502116146549021061242716307323096385291949690249185519996470433659666615673536667832455584107681581864164816948972807131510544578344595310565550132986098373803041189069516338290673782760747606272513036693868956422759470207346065639616280998692926937826493060904643085494763133994973180059636090844902894425597326682662343702690714176689441899961337698921033336803871089568640419676860532001335341533461160590673248741303803554552571085913713600601625013172302332227857530218284678652284813001427138565574579764952500980428068089879245579572650183859773277689424903462663758299001963763148960772539470714457055683601025562355293553089924044627496538479228907349283739883571928195067792752272556433267853612793795606191344807492424179937495935364157226988284468510295084696767764359890623041856719945321114089418994778666748934606673316398152048638500940697267809378596431580320098266171392890501907311431369546235614594467542247410039388009198949297231428879614610671371375211702273552707580250394444686365438934084225732381217621145261238033905857005356699376097011345786232951128670049753250614303405543166261548441235254833313595744475492837447310448149038504446271322299331514837380076072607982612301238316479732863538857385269261514603764045383558589218113353498710503531682686093615521894098819128518472300818698912248359948535294630253949245716374792425683909008347773142926973759573660515362549604458080540614690178751257316219022812559579354832834624935390487755841509610724868278461101862807415817630476774504867047696690085124629829630683281181858453514254762403796423124806098571903029959359357129061692401848752298394655475692690277930859342487683350925976423904142447167740463017250879895696287190569318330471385176686639419719092712179204377965152758101336594910196480452146162051937541068465544903917670303161899564532346695892945701234726407833206730462790570833194823160651994360104350280896441684288400408021783536460059112012168596152203198763888250688216320845252292961434620740482991701600294280797708508834836060138661547742745821099037517835741004010762067567726801789485615626485799266184644809230023308427816633625693374322582016648651222598600221728243607786245890020674604066145901333622873822292273381561194792758612190588060220902826456345850660652852294571717860175289350191868468974305381635799607578640190153906020203355121990062479836542024252833400970237676885088020832148480739777953664195178973103510494885947978787805532373168368204850584510895416358917558086269530529854999447223007467327701405562181148182948152850092288716052839456624970513659098704946051642982699171500128424928930880363571538966064725453754910498548174306221665353941203723643366612298254058530478584823959914396930398672612856935453431775789730457775921658188143417477524358437115462536288291592655880261881302298059004292451823614268506037092541398193094349536056637477171387894943658315565841511701263215826174610694162812184279750502158509639201551630581737072586478411500358027532949323988377584151168656173402917382148920427673007691137444043530066588391245772282896666508334434395746449625077848830355921658285731249288962322036871957072978595245663398947321673452066786291282231270846981344265199237383312670083960484307256873242891052685825033523673081990418655359541439237492288088434662706261586196044086164345977228377842976445104432867207785710519567076444387665203199733891156392620930504925893197560479260167741431141650864244875263490477291479852501307646560304090190028469706086265851845505602239409259434214365615101565649598766915742328321657002724984187202661373411851417527242029029629250952882976480776036212554459280924853416130755592610685516802418354539907632907526274152644646826768218171017400129465753771673613220392366995055182818579499879377145047685059755697852292541605733544289758158048657457925174501171973743564682985557699359954733830692707516987371504519286824867431680211425557721216255188734885197861251221074666168899820808677285023403643919978047895753038877978663687218664474778083105436066209055646208663382399404519244971757300042197827119224237960770138015935045349064751659063605014177892743025585573923856710005877561395260493098714910567793655421010450915665171972187779554339830031617659254692818905011390321063935913099737521087233038628766890839147772354680219652314465332310539157755162854958838452178765007299818565379394453596026268538909990351098510959943282818357359258664919355231655464604240052204597637967983676746626741692899666000341707383707960729391786532960704563476052730529803261919989496239416943041595282566498485892121500181701778112022736045540712147663867777858345265583877553372141285598916731855026222132079257237990120880301342108902211591733015836180324600627702551828737610029076466647408987513450788797300726807136347038744451178375117582555186457972662686639416067129731548711560765224997408090286080575571971968997480140933366806507034592256981610310111431836772334394422669668335959927191453372159515783459116720134079458560385257302183083217424026997938256766521791465869485255751054821289653902855375260479368500475113468976265391108671002551371216016278169130593694839191457869916766374865608151456062196763969271480868679293461359684534279899119284454955197409037565909230249192918967044923253916839805562714491804150395958133654289080467208209123378955855952583407701531924966523750445791512292355031304348260224848765711873747893615607802162765424977980415619023645202693865884825537923654178663080793763610150323220020516971596622266615326668165734101605340034182170286672401584852676719200776476237813045465284470288944403596993053832275551353831461596155107829049874038597213242334774597462514204307730012787302156253141281620163935328431619838169972285697966662908212310797442406304510475344171583556534886648106417257196974060999658684154787771677348262257271567171850577375904832618795913806582409671244582836490381379517762782140667351637095809454730468550128564321941329838958592300636295094589359072404874706420376219402488049061388899807733894733380557856554634688014396567611468993846785607366379251443921466581156404236840708749034241485958366982093244059150459293136172797810734139846521293697978288296362341645463044342018674571826323686907402904626676329400028911122391170652376789070472279406831448538096169746745650221783256461833458139327880939867177187926867588981349363766870969728049160307188271533000359506530093464939214645118770683282111645539809461528137027452597252408144707803983200302134876103290855770069968155672077796129089801215849652863222860754416949088360721851683892749472838816782712851157380352028997972854225592286055682559720388734184445712477118903398741390330153211748449163757497689671807452071017451036751187092400917552824937690908350376779080291661155845118047917714986577418647985100950445318148161477384545280676882685807955418081829782039070413673938188201909279550089482771700760884856357981220662192205132199747473537515088807439490980570155110858682152362339073644326547153246026113011376121073509028274176084101620958548381340540072548797572704949687954135509209056915444763681695371339089195403584356854507458867306491474487886840242123764322227543122010759576519622011826355327606167727867095418438603843639132371998069812744213297994721617186425654997366163306869422677243281318656590488106301708386321036423290005407060736770983964022040653748512301922342069063170232272376628592089995393786980909062614602630600539354550049258886132371155404997498850546778356332412570189385674079177362669670552529671384615708952225752184034775620016451825834313165027195283825132334519008664945417190839195801849725510932057222574493739750061181842723920653500057596716219224513051282289962734298831252274803600263651025928942740645065469753518347080655256384491370071887488766995745079832816953803641636673860771228035263779012774977985941995415810891366860959747435605257522132736817955931970003148700771784005175465796740584591737675012538833039196188728136170822243536821958663745047417409958709503211755229939892572259001523602848890677129113772435184659973435857782617485947787965731558495682893754509847911039994127715443483743890489718808787808944444222097059979686013854626535757922604539954577824178379090822195896334559177629540674918378458806858863908985091510097034963989862691602709950737221618594677804204795068202456579524022363956664484585451370307812495541465535860245785454938589319460406112930192398323965318263998362438236221934280669270652716705746837008610606242698758654775262199120307606527925655262998313236656155128304986801523258845805293633888569797505731251288527236600727577524334620596177294156733334653024585983180717667134950723047535732681757524717976740219495477608018713445650482971504786540902775345493578595911221144138287169038806026586691132786422143419438548255767839178374537855060992592110275410822253955751410712988346627049582656022812924307352710085590777382087107627363444584740690709347926737465344724174401848944354195487330465484087390936176549300794848523276964717997979668558263201591950010021686721408175997458454814768297428831938136958173316950420216732023717618120163413541360947712752044453205774017375514490661339775473107991973049337219837367368706608642880807035943646381355259307066719985988803939234161437145474867476100519118916086104956543806626496862922053470293115268113032057136353511907046198027896816515652600014648489751956972894518479391942763007315290101282938683193831553087914752442623548080208487265759357969625960911893248809599574558457646078964777421009274733760959250696401416787856540163879017533693852254855656675225837212669364278586741869172217480021518219046147665195230830324507139089845437580740813943224510359304418158420329636871023062791229251238324723661026347918899700523317918185697627112004996162728345590151050402152503674953550626192647499688005832205456508165718639723311101463514691954611292851213410013102465551125777651199071614466878275196831779707260797600602359409007291407778035711469189751364715986061323112052515070826405076382695576854589874907616631176060454342131809539245226010905077735650047685240363187005222594422149201956755954362033445378271229589487699909863098697055874316659724058945907928942243002673835649179861400928220551347504588683566791690517130577624727921248311340689065954983028616523304239620017724215870005378063992218669090667250517558116594035069577080830426527384519158547570475659534482387542765858757575793651680814272576630304581819301709698950614213076979634674318034247411874630569484087227135029493094585448238757798530249372362202865175064442399732415068882306445513601345574644979193827615213663323731949064641078904813450671157321566016071985639088183693735164435194095671898144660626910172295576935038643399541044308993349611219205581131563934050308649271764349129728562347935172672132013221921050263118158027705372126094358301578017008594424656067893537235175575769334900074278176715413037664762943754376454552712560804443092542046453845564144879904105635306568575363635615259060988778662052680907455088082781277579874072993785820504235890929275187742142314313536131190026776459015286774457736183954774539595379849771700912522737407014610879279334755142163837928498060285423203768364815347274014652884776572789519752616267542673222204837496695595053796630873372597288546347772987219178703888653475074951292985501552003932755042426674974638350865550040140057472962369618660032890953413269421707568917879502115498429009014027284488502718793086081870976064682595651278461267101187569955019003644529389109018314676712987513305796808843048422913441246831944275488095851048705607566660019061475734009417686970992249220653433435580971156036293041206160908789589602627609859094495157875478474407052990559661381021155952948317291470359736952625514661424713907720676135659247390154881938776702585597548217439754638267319150544990033020620683770684273306783412684755564667742612513600545582549696778034714859608091204153468557378958605205794934246630131982319530771490188399195852902941285197738537661977583576196004661952400798985263612791973566871538582259132048873478888424022654581170366867971785628362660649390340113350761884647678260122883717967417324820250667718453367308725083708300366573150490792230899742131246977379887723527142850116123669416565030747540827213470134157763675847908617759077224875633353913314071830579760327484206960042150959099706769667881319191431332760419510437010673661209370523154930154646728024855330147149813693682840050484124983392658132667568593876993077202482048952713855920368025153817826249962929676019280181526220810359748136899226734734084666545484651878211205312149413440776514931925639689277677998223261409978783332925630508491127165600253574466373392283262213588087711860475625928932800518335843194296836778278634163667997157584010479035877930843451968179929039566399954336324519014405157467170679212070058988062140635987194740668827087979240387824722846080053892120795744446982004833964138624326430299375433982209872666818134365461729803885991284311103483729773300879283017243246398092602191224621182521418980490351277111640449260843466385191503428031255376762283287555212780417888362023729745429771746748645025950827054530096719032012403228904231630880719613269004108432994503201709053586502961905441476090932901581591732842264895238230729637879865068424605466313797346829210011455498400175841632758096983243762631235291152044825071253266395873044909928308610542469850875134591035633316724296688490584237935608547445073288740412292606155186052293597281085557041286052181798949096172881049012427407514046044207477920344857593838865650193507688408127380898409962090628764108840768463868314027901177051585181621808940935032750086863317629050107369798130406516192549752041507517587468195340643357880744644647774853357375799583271071598072100189374317068860104549515139342293400074198930874588964238135856432945877742183219219637005645209068462767005389532749430481825101454782794154863461095553378436644476819736610959288323007511515648158911315622105165765015183498783898147774780122343426854504990073770459886310714703155006898025851720031754996535743397753615725715421664080534768731952019786761579112519434174550041073605777109950458044305411800487821520497825667642901932989649958632154455698208487626365709988335589568490388600599019270056510574826989105355516772228029951034095497772594227521574068546267999477223212603829994955453162723425756863579836447308125047792201350995643907303453891181737903731252103083659645380435805069026996491674111259583212744029385556652463773330762711623282809603760129176979793078767145232669494479952587085739699629509460435405186684096876676368224609410472444398886350728566397304135901729014564679353268396896624413641139127576644738477718798690992239454602243312141179475498588232023059356204466885906883767547451222559426592825369317277601573379497057893565624993490804568918214080327437908809032035596799837161159937171566302077176213498313540134663300391745306268213006996565033131327931979082367062370930378879252332425466580860708012893885679943905290982287487618158898680636078444196243497747541185523232172296560053001164229698005698195059093665045107734006258137775275191330206482849892901505359446150794956423400084081627606981755509348881839417774490290322910122268740924831321257294896435624637038900545903927683699828123282070469605872532073130506058304513115951562071970280262979579435068403456112375703537760762530912778093554380413433409505948193649376053361115484848930679817685779236435189381802953303528399941792164036537213206279777391301901960550563075326697739665140833782755373388834635954417750260894384432189832453701671696701772507363638715397989812836299682041187880932426912942099551309252599049617645614283016730481603598588931448109887847877883357701897224609575018529225562641747419781003797166531617069885688080044621892198456044834554991390599123401672272150273528961413317227005063102608219978778835661801501510338282601383960621683589104713272668735477406886110833494307294925716781776855410464225122914437203433636717357744122504871004765689356986044331080573760684930015636113760585855874147524464522512983332517034249415319027388180045327049001437398358431402037438103330612781505205336583242960676172733747166237628334781273501092718389579550744563947133147778892161087248524693145875647197960581312985991223579903143860829946557164414009396291632897260443689600733610210548488734698815800523945259294856758303733824669737928586451892705666465401600972014303735627271249501440815002363157952669325699575332144500337015782635661730594013700322955665285888944088304507497717943405431823261085421168475227902571047868674853974346910037599731926078127477805219138223429213216776152335043425982102933690869948174999072291260270540901525606354253633455580837732915048058278311004173311010761369033364412623477342413666124879056481848896628204882880281615810803648037147445399640057474120074458036191562209037194128137525457626497666094232809785717043338198987605461029893346259012827353073034669126046037899422000519597450203515982534876494037787055498105717046019196208249420397741050253467111142055125222141431194374436318889750042885374572622429128777560888292039433752868714344070233258855099056180390040930903670943022540204236552967647538562500465920286029522216481994820990621653432713977528000940426750163144642804190170716705258493968495284322618463166888822509830346163853815522670415271270589537856142103106753523557120471388416744410526309233828174822139417144876392100836646147773129753350274230791389465457154195470072804960919197899390067288033219510725116747813337905224122817768250844271436024066873124576570496532115238008157390964179315345359901647401730849848895734447256234103877091644363841207690067000280341091157066116422196132221681740113626357811123952332030360919892914748139237864218932424742119263564360574798756831576800892686680094092602622079305960226715182927952315459257050350424574969061643269965563082651961837982452005485904783476948154058958752964967779313930954929019022656779785697169065134483554158626653711556526557391758978921970719508671054945123020483859542879930415784950502393038376576349181427537388680473482969678276058513912331733119258906552051067457699445803218387208409279164913247161436340931662217977729230277603623510091667716499569792230954635641293006013563937933167708290834556950399405970752774946056657851724120309593825302185678849913137927314926322559571488273805045639271547940058649438025601971687029331961404266918871859695254999911181574879289148927182281507071393167617275964977826053773963171030442142661876663465387957804892654396921299687088985022429169076182417299882962519432732649436989752057041974798090945149693019656951831166694538063137255928736857656128607918494450017688619524896531037830539228136293392539138430878162101071421996828889738493350527400749041293669148269106004073727135606973218661430874415702883727009464848316315394719026521707777961485810990113175665047696187919085118986121738054508520037372424412977337333896454911058067516270196506674079159826790419586512781295781883252046958134175032669294649782559238597979887109684696678183835170024478389911875660068304629918239943092346206772068498150656832525336206007849299560027863280827150554863582777842912864110128852521325236292232884785576290961079329248378885115719791486572661123767044223921022157398923832637548378867413922675572707503864027155056397116969057416568805422912926650424688607156719733330215477041971943655616454427896150104476928781965512477853296854580058621611559241214614478224784111179967309101699489648442613828592769386987365830316964708857112808340133494923493954693453649523875198663420003072302242714039302282140970090309912281770264794360949209435752815242409198206810932350129176679553859618417565817676543828582064503969525886165561233305760807287026084368085712630913703495617370984645880625769289808964273121880546767411395293769420088719461631304471155479874751566484608981796283333987340427753560157803290146571203737469785197696052471743099340817513616624383519064313075425068844316974419907927429624667207591250903457139477401293444226898474067617488722826698302362388659817364297820631279448644718649021151563877224424620034852234314136194643458562781688672138863335141742947117995714149902834715354480247822072623607050932122295741167489601859728735762565632506597013050380267084855707718062649079032097427314341479792385921809481943828269550916395586327699852693518734924775396997436892026583008043476852676326347184943764390857700207982361184799981219988440668541705854692395156505348347490448842493729937301044296786422636680428086301075962283791614304172838228221047286346578840221290602385709645227683702616641285449720206306866446550283105679859217284197369858413767242217751283579390979751074296024632490894858713246403375406372950071141062861485041943133972665694127502879890496453827320167023149584230352261754956919018511226165069654441937192263095715408483984607892348971106361228510135011688256459382812449552367571285846482146506245621952685768116647388460203721036164797706358425981662557817798654609604537732132267119950001604394309633594659591798592201243298812510209853694160960903275125675206692801092839019610456807013131892189850595164960046668035697216034592451780538262108309484212717211721942331855471555753924653771168519326556112890118685515990615653773753272835236970182945640482190640400327679301127126662716076401686126557107487057040972350247907237603373764586137792310848610448158361520054693502729640593910057142299469301905588194227195040383098862870966858607398436486870003857948336269178577781441537481275080296975476730882593926420132005570362784078774387102264851845082293913580896920310824869525849026789889008995336072681241875194297920713614326960320978782362497697359599668661931880661277412028152975970126456181488347495877098730274364686064761648039334406194082416450197581716693851584971997192952333442246291064587147101863102898851375644178592585279173977016951999686818635092080173080332568005588028345206268548039833481279760753203656249047775764936488493576245931626469112785768872868407749707582273493977109407588913778062114352475276178524794107871434599421023365254958971384169562304686321774082890151202946764384380189334115408814587674148719216120304025557112680746036970229713409203509370039998764228144031218087740193987649742195035612250864402163773427358945508401612093643978547481780368138822815623466893010850754215686325267205498422731483528263711622720722752784084271097220696092130321327307744752010654607726295572822568095329872221827878128559653388894818967856056811199870816235815040405817259357461689989622794768171263896924911096043995872675829514289170099137471845706547122355719608551166397526654252566984920056751183072689589638806400651030133577576056668415435768219979786721882213711685586709862718748478036843797386844122806320384447031170785604783679943215960065075419980219607320781572604600186137420786589208832837203396400754475943838076425398061072555764338810997226824813958897216193981885727672931165113458252139401210061491138608928427319722913119799229088852107925489708437957248149078125704947517524867023753395618292746418956585288742571673651478689940563158725494750881445361763547873172653391358271819625938700639748329957807373695070230604408453756804826594086054523423623392888500110361515368020599254196098370106977149124613280661491259374378291470374244414534587593012387603396092308596110907407863701950250181131292710960531562352910523720044867603886445812446395720123671512445498987196411819917710770974051033968928043148320011719862221067810138028541054338523573983552458673863597849347626756333474909689374003326268591908603283581781617243700677085081942228340084159081103695331292081588983576197680108265787582010107239321739137331397940874306616245554460057898702988653090223603931097830845201266888455726377109454774379659605159362556100351337436955896480092579906914388140206224896808543955904204841430210006800565945160894197241046865679724950880801675351645404140245226287539912259867136386430140932346808659166303358319265081145606106820474617479401207737882111256416281715804033625163279437083151340623416458052656781894586080399659192679856962057307274161165001128414429000499216752688435152196181869641097427843348184718064297709313744840761438800727497210837580955989019602911507468431918531030161581188089200781067276346941929073406016628696992372432849272454164153777218996028854479626249400252934050030184699614431901835910457178918369075411702534935081100123377003463671120607402368384342971853983027571509531931369460454128871502414776422964271651861131552478762230444508030794237713945439659682093602975584382169340526057247371786040732708202334885691147960375487084725115639373743677789952789262963622653423177419886019651515661768883531296225088542750823915258246293191513922139290026874494917175035461138916192171647682490688276213259379196860373008900133667801822761343444274337051758617165028600915446636988305803396246024442629405498036311382987311803191920192539400768766728986371860838374324944324283234254119443415101674217217407376355124365777255452401945618521517214764758202552756531832480406058504049324187914539517728771522285411715560772361973407605941607200796681885621737582780517219643708808144586074060177378166401444384586461455460232406885141148601664793776248868003272193218878740400873332942040210174865773052091950659783357152370881613286944985732192104093348641652565034999856360087627371707898201992891887377163468334353463806083908369073487134129311948147803237850559517158665613022533204837801345330422162814060333674328374808611209537852739017617829433243001724641772913198671817583734696772201643307820530179688268636041205199130297243336120480162527855398716806201249389661769211174530745528510797071625086862508103066618188647592186813346680669239223852233890018209341831309943450885910943000518888111858115876013566357004412699557244906021003811964611218042134133739752999990281748923359911569122269114828850559637328890805883050187972421182995043511709043859884205864902000590803447339803610286613955422698164758217579927223133569722701849318756978411535567183783938766595410926228315237392422077750726038037160325086105633489164236106723379773883616679256657595885352775065658768711128821497666279613372406359762030960101480778484400725942230245818860659601297345430477315480978205045154283882362089167655535909421797343512403386062064874934333055821593023801472378323092972949104788512941840952722187556700338043852710212709670061304280456744954803377063403473843866746916845911462056699832412284266428109734381000331101486793265293992999563263336576176646552043271724295640587015362218365908578949229697631066418417339729669870410650260318680688619547945370346446998104603215773298636049587317380879079859376105983765156534933586987963695836701702384585595599586765879646598502440801913732937117592904012654093881670997864535496655641852316553074162850525285966467355125884849901572242838397150723107041781121572010942435784425251276389920493513206428684530080004075038087284546699091538742136916882964567743229485231956278069569671083380203239416960335346289049610688982608171621272525663502479865521198900055962731066508520396693884227417184328686536896741532798931979622287895143790367100105334552176619932840733386298634976200098166248613399091837473541273433194859074749395113527893219973802804504923597108330230627434204581633293940724918809139176201412834171641154158829236445716941683284688430657876272541281965022560771247024636975506784427547473006291952743345727408868136639172273192554255457396045158771787611638218306358762169713826339395360848009631155931893803481881281325062971801339120499475597390028223616077310370766135463208405544970778584024039655715598418842069951076519737602785270559064607893201726049086740253563735183579704693910387981006938858338857287060250623525386823374431130442773005738070453733523413695741450610877887987093536068834280078966098778350113106856030428460581731185625567963405694508691579457546633839487759032470658767835979694777674490246615201517213716456900070988703858706865799010217738074523142392989325428425810186743617246757415610830555729174963925497014643912560003435571051989189048357071068079230029067844654435684671519839586446673128480087448433288262428615415762546379823569010518143459838577863595946343079813996882856577811660667199118381626546525684419628264351701414368419529166230206836524505158421043795409036146247043549263637965963742502951920754527532527772972983475317927592103070144058842309750754377321584320099277407647275004892587613821165939012391050510232690513211926598921246376662799629904918737660548609650499302310834403999691227936757847951662637326616112808064450173943929783085469774576357384618844489191606632661236398322126971747886001281700849359265988391632061375644593922236677689005937303361329711397106623332813598228950385396287827628096119556939818583123824949659722775855457425716484693540717505110413102975600922677530156774802174973289633490582175432448874559752023060879692386116542972179970798284733617594121610932305897436066300527444801889308454959105822612859779816820202020247231605912052521214041573304250429286633031150865273548685423820705305348843052075640632804003174816190202511898940141393475736608635504281544161394010703317192517262158551042892862748370030485744855172373148216110595630656787630483976180262398328673481237284212366089951341014296743360991485672252812728335025644874693168980559087112617278085726497545631783974592537307301837139545021868973255737712367169357510839378898630999364117476272865118545869876483542932286823096312058608435406846823789978955033797104974877975443487516552870668110440223334953965547582131977885532167428585373289939308814392938471257639919424549418602435342076982720662981231633399078568265092563081433099703643302302545326884778492187548750187669206735474886102556973825985899022979188071944264922908881139437146232066231665762235151535391892520711397278733833238046912567853182846962624716567730424482457936001808360209486513488778165394796245213568684306349481586873232888175478610804980041191470600593193634021567416234176648854153053162485149706085731170774990163634214422958078070419655066361807525023264950339693742634856702810355441947281888454488971599368199540343488123143780130265834586081547385230589353567837907390679264035326285810050069770010038492218426697974254865194269140255207881086246993217314902623608870756826836841990782304029733253659543889242654113006741533890186612877311234502018646036566235957315322301621423786112163575478446284465709757596038630858025984680997264966364967333928604977113003103689905744952781309167565616269661702292531819519828208659915131381434073912182442118874329774290460824830099666345373035955752567437597621142604925665850154763454367506329265246482969976372357833036734840880744458072539215088359778491506036130034127397355513276531048175873573986259540262712874313746353494933975565684174676651701339137273851036564960032824476898455025159113065871659416059037357061980258210299739165824852129716679376905655700301381502278683083046843433341601588347733889828306883784480092057352792102250508666122108580292829369566168826632523446370921992540592059179415827910254797380761796142732961660395766612130536185574305450429989774067306556502698473832550754037138472463237649033475323618309449344414808824215246130992060250836960957594579630187395643461790857113375099090438780278284967285908488814342471982248614618745910002265972295914683846576684369390600671276183461493962704710579776887903103476473873945932434040284079374106959381447554958292843597199854336418046712003779706009071318196845772682023798901891802406489015756904320234647697860104509013165708562693590583208608879906327815419992499118085436528817388805048656683103310411148881553744628158410244743215269536545727859288582446772966919815930387534588577007850013159252782407207985967191783659459803250605011373004695844242471046355600881128714927329011395809190266579994478701023865506451607181736331548569235646742013470487277659308329430236747021032733743934072483683456630945411967557018978907021422121731742740916418562367930783460865190778975067660716611413967896685891559505628155947356955150411273376494132320540425342502997416227831642075846111510722603337200689489172154490537690633498987884387271042072693556291798462794901966590372159716158307564565669387750863102849776248939841728072774279683783589659495472212091212139221087045100812566291795830050465259645850342865035283926121095051837000012791125845906560327409070076908092208823171268297725121390062012829330068778631662229780194380119066595480284012363122163167998572717888893299662999228765780751809377667088314171414499685550428017650782573959684936464957524623454814400417478288753968395687127039682682703222513894930416379118777438264413962001704447568405708384526354511813823747067802040839380847375348042849782208389701334568151665394128529159030220143209473329212880894479807454007631809367639774717483705680615049098791956908341711629515929651452850909802569672256227177767328035309505060745928538315572094104355942488077153730038553465964897664552082283346437452187807830663429437981803814860284495704908344357546526251878061506339530195852550804753939950791598959738059743609152168447232892061045644323776164718153790499495456051076381371293689722715775977671870577323018419740111673539880672483029894360610454281856182169519869440354731470078338374833674091261073158375730629655838672377672719318009911282540880266525119148194219135212644828445785192915733538766389589438068079569976005282090223646099199358797158197483747130935992148367295766960571466754630807039822420818225480992899346729858508036356467859445063025820952950146443945746407258843283295056963629958249945084255165966940695090076941942594185923995692727392805808466945465449236306527655847517037533184124963458957929963398838384338810142247720925220703726921938049926898957979607806657450868242196987250688220598402658293469832557791123029694216493278096057285360433068537848443129838154290369760994199468537909715153720041082587926114658367465773422649589387012600363708551309528293911867507499370608410801934128914860065350665069096182718975967187250071629692885822776718523830056483844942392445279490460061421044713286145720535318169385879705856357093747751665126038626661328717587476053383135215625854146100433804906732986652316713328802778768180245006866771223965326931100235708318773739774845957557605308617463433345792580505249580407810307156717165393548294741823209597351975904355340137699170716363185761736656245414377524609628746343577839946028099946398677706857970548732913171519368396450106746484834799269335522770668616541075893391704072375927831274162563171717426242687924764390257979046455795073777677484162938847340781216440713964246024530036398061968030652194360228815460442795718718317939638099305350690399339015546550625318550398514621933747020238354656679469729085989526164839982215470914734783912034797786202858116537501436439186429455944654205966472868212922608365683272235547925054127182369055880662607163990358443319666957275533585376584364254840429774109746690884307637318386536942422973792159176565145807837717848018189579704853019680643275356514850231291569953547283468006602160838123781045513954339919854110680035507971473939469329645023211521214619229842181827649145729320674562675562795634331057673837814163686608727499327230263215911671363453828656207249603347317635016655100648901712669644153407409708359983653353649255908058260231328877285713262577264905890256329353319286356302814643377377221453348700329292465562334340215860827873195285851111342519306544596847450797892776502235373720571504292671654865889613251368547064568938413356478622395805511634995788429780940012314716326763454646479895315654427982851935906328051797409347098470534606399864721212566148562850623180719870239652632768558871845945730929162412865618770557577652589086577080647317975837277602910751808490983398079639579212909699743562643227891803037062473515281328914104737423853127244015115440372726640165279177241665541197129219759080983137116829345418057565467874413113813846339622713152056785321472010188384627348035939849954260955985449508530936599882088936875163157335873475701053700252305685883773344912903103954770896626538695439651746560619520762544344865735079846608118277145579187278024520671683160722344215411931292558515378393381665454889571315201158907319903202742441095149019855161339864152458320594470137685971707237022245804004424192388805135743741803157699767492087145258571833788769551487820124350955719071873122010193692061583067609144119651242571692886400314930516839405004834018723077384206554478334322115776904407304200059004645022895862661870003401381559262961349820791474294217647786289146198770314491033673166643063396769167231307113320543809637998637399672298918067273823112745806890511447782504640688998852681189459533406630793586663287743443671889342400405808166766170701038550938539831620135552120012849569578921071828242679999391163397668660598619294792815831170655556046875595125477122940112653088117032002321815268044077920073662448565090848385169247868637132019049326523028571537828556379109885264518630823724243319000295360203263943053581731163319142812174271908930970084662256401741732046170201006448592127967398518483092319736668992524165764194809669807311931114444501557496993715852114546359717669372770292696703713235331944804244515867422497583447168841836585922033826841495445193362136759852060865292564498331661823566044767624189446239610361840493694657780739414046573987895619884222867189804972118162316733188538892848682179179637800183726011242003822535972067639198845225829501453052551574467539958529896243593533644578003275688704457666263560498662435836789957737890584535305734834716485916896153210928053262291168594221969757106465258202881003465737158915677084431242751842552922200519958803615436107287027641887933910456170750978429104807448557433591568163839840769711420325718943963372959370926725246882068275107338755016479399122894574490561187787901456991113799077610697542988682233259763437795282251736366505251025522545913213615021349915449074581764149371992692261142636875654633049611661350476309568023879315033165307335097809262788903123359462629897919586649790625513274821129271269890072238104147969612935595917814975111481037414883855024712070824236927585629176530839783394890128315604735209103037382404577839714677318879029699533419342532780323872929021047610473934398387582984278153371631084892244130609628457017940536918874375147535332544861992828542693513835179219205209105547392371967884320210298054994087927307463025209339242865314481858909581714363249595253721776614135207237210385036382670443842138804586587443429113324868011852469963018725358039734537826746939533774094627959133894404380304351276427783150008868450707975219364576345372265860214656174269585016722712669302016313352866233243899620604166334248461652685032528836701475818679760618203001509852129178826624697622309437911096208184562037576695796863334457819154460286557929439562209018533774010214878739510611884536093996629785431819493055715866267332822678149915733200595393908424996286679688222529313135416307219385900511655367133903533362850725271450062167089200038061803506199551949481383193232107864434808496786388441947271557782144277776864389233666468215168992337247675667323897928474969706457058271974783432980908996444429821241747007888065767733814324187667673293531421157403128561072569709062086579112713459796426915982898997350680224639698303889965632138760336444904615491472321077466918225780657921556809686233410267914567418137344328426222724408816442374814543321637635325467583561858714807074391995633471385403459794952600921991518322295354656774410433180115320817309631758317282748961253061500429039255039856085087241423937172913985407108089288112110768244792648876482654616896858250730134861610589747413896844285116573277673312137873729031687126158279098899004871255727024708113372839166413894969498132985541452061250480686662519754181858480109623095124520268539509895842371844220652893943650611426150172166067793723382927393905918947157244886517918205309306172593502133073671347054557863951051768842477202344223029090721301520356005764249009707817303613748818457552573612872654992885049292038904024957886896216045321210665231409923195232710283014882288733014802656881774735746222463608906806037985624855332873103577343485811708190814971905949128270541073712667400661918971545475842313468030698721912693104842152528934573786447664896336408074006768348515908037897290887226533304022714478383418309951866746637418213443940970426417993665103552299322672408273700957999420886152516926276163334784577232433912886776736056263325466585460892040959855413185498920437587553261534678899504640087505660502845700102329477657726954897505336616466852232285054491427611253960964046040559042572143557667907863107338502881367838888394030315899705241699401324822307313574195961433330227770320176223775167702371386493698690213789801196414162793413028331281524478059507675937078457571694509601843493009550586615063348212961286552261124953919290804739255922661543831472652418673237405535761793963398637737968546443546098812876123468496369871229435944253075785202690295718831493684382076340869993193863516380506613393902634733940092447842651538555461650074211137333122070950391243016905424901685824192047846147297760798123437323967554200484546781395944395927361213394215937327043978885541015779637659963120496666754046831553147427613871818274980374793192614824644953298838621735989192458427610082239023507413884700184007417305349013315054909930340934029994404549896893173411251603775771384966226250553567030541122708537979083490322400278628879046807834388050056202926297661223165675392802959623476846314099937279021214941508266071326055895075017547963766123794443326314063379676248022687250035090258125410402232170210766221100112810102814794588532502718380875804256346479388419390527697281419106618191823876298907173459273397068733411411054104110071598614234794123131900848472570639988218130883053539805751082526547130022844678489992341905800203458599304161042453639403757414288245051662143070239445467108527662982839985322705978339598499618640703966828362960255235966701404852080182668962920652331082098696917829304341664105210576054120674718837709818521157549966801406796489799602644942567312168217561411958026431901469106375469233689747101866682496010443506697052130435818981185323257909926273850035102097134908300532656992884899070661469148679185169278993748292370178639633712348161305725243296330466709277981299520623961047925672539194696737184754231425209148024467268511288504684859256947783564460323144474850950520302684620874707769259853604851369545113287594840659920433004085933132892001710094586503378413814013298972130355579938932631171139903054205655896781508220470677997214239970736973540579331165642421706088370048013343551295562536753318571169071140585843436214826972363868429633226981637034761042371594439123342161664428171408053295322226818628855764089100462133404193349439002969310046453705596622708260845300422243945596384752564251486455747020067683724090091504804598554442414178738429009878293655075772037438640802347482669144990771438522611380851938952924870831671230977671702595644447626007967213122413215018242423327267811045066427031524950479920749508993515384958544003238258639950636474228336971942654871539306944910800902561752061068488792290149517640921204800898008527579015255503848816830793734200385667682869806762306470831843881982369171816045522550211971239165408655756544632833718376467339784410790614647745570581696457465858374599306876472999217596155165487288882443615691761776656410586486923411402020670513288072656560051088765336307001080339888124458414361467464413830075374556580806889149037385260553151190215687823114516329119220563646330312772870546031585774469260002207409907156538835092443833480388078011230619024271471797371396308585111133498538379007188636501453377675494937620385278912847184180094004623797654979587280113193292428676073024510932680265643684593286657079184372743291062451677434655866671256041874031302561416188641177953292823918523252273516818435254865868108770670425381909910639247498611069922934121937590899420123964799664013968409297956513280135048354491203292059447467114275957009468524685824581070220139914815879230475038035544884861153394142717763879393880934479778417233033290443557197401764350693886074966232807517167389045817779937042201647040683268596213407601957034203258078142623379777822360976700927048620358305331290109197936071718256106837835976084841533088592387549729099058526818969975818705639245340334280194117534279261286408526694841481113339728324255464832403268319814232120112659500314910334040581753094823514003992005198568239626741538440421977613554811224356687685927294209455985768673014278923879377331817282643134733255260583589841544531642830762037657957889338146929431201678942187559443535670105291116159314462361587665219116689362176596375887582595771947457322921926317010739725676215396763242405107493369654634602821326326858710901635336942360905726724308874564046592441618529503000077809078602934250555098273322122984799641025537204518067124703524282046072898385710782271728437041663147718840907679385573597399074049758119725620043751750939566548657805169827351546067067258043362534628808705243334608688040705307409081907961309224584606381255551814836126397258119809540523740870987343869427750042068171152064902860035285301701527786371456677855616327172134992574851818119417256455538679118745001394807631219893069273062396594017766701337823654488611751253122008060345796444339229273420699793312514561866643055064771483454700454327512160674171693388328555541654494136182353253433331761634463712492815634481689435213569380539373332415555065753160059664176108463099243718721950939207390496318572469555760684627384580567093371013039389400361364767448802462472892876678893810929008002531111849570092167666544327084411021457535336026495041043485132324260225932735890114183722274147620205867511387395059960737726555976062606025345206363121507219275084277544688695470045103625523912945120762907481105057045467690947744542069211456937220414641736381845940959842454826259991522749471546491138089459934766366831741813644295384333538398445259032994298813708421655649566466177690334952277096533876329862494991327254754097319354140239589339689616103942653384660032438925140604048634287544590279630164590150987558047628142187728685191833057260974655721046706267373742741246877464932538025688195451734839176381434750994577225177259988860956454655405407554604487423428862635768347039024195120596990207511583816005110941140433929281917370591383492144567874911456085390256577796198321137578630432811039717813564942792967318769258454658498141235349949436544171635558904228483462461265806062924553138535375581900381290074367217042574361569400789784676185706906296575467081819932166567935735910430484745016310846788667059640509041359714558167868046145840090421170205469266156947224967840864526549944985688801447806496961277445552094465238784201481405728546419023361977506968116516917148355058395568684911513620199359503304980989119870990660171808514353969267454125295788285769603162523599901550965401714825785814000344672149581382228345250480651153598750976841423231297605618644308066253471417285162402408844149465288854870338917381598232550007551050999159756779349000065778776822723985104889025293396278428819012642211441123195317499673467450304996051607552452461048111245123995596762524744903238972290502181015028714158598376828479733817984729900543656623027533027956847403722942179726402311318383659855767946899483115493836541939436553130871676660519043056604484908551874519710570511731594874787619398325000310490135049303765451029423810525581886964817168864589606016548870339119762938778636959149121487719711880909917833268852803094385867941995097976268225354680173923699083222274157999807362138621999713635806368150660432737217799431209374694765019130006380648463931396126006448559860507246557727927654483020408796024987444723740984859791170267990097944403996910447846797647387532487838176940065012825077408015833457378506247749960370646206241813547333871038317389375689692468226127721110708627126152488536346434411483003040439296832149979356326311085713963051506001830579701529898304036993211298754223669051259034766056529809536381600445302566295453269796133316770438826871186986651364319910138848686333587284892390843934182115556798953559442713233652985941280882320894167168347605083677191616643667960450707202114517855092723093131585061798651739087342518331678887439714012055202453402329987405557371106126205717602621157323436703047581558774131698068192448125976272201784394853734477609447497198089052812174750140480573278874312074676202335005573111175588043299570157998075601909614242439154056104661453071653753588748445536896757043892468474449811013556613521903641750644434018539906160177675698802250416059679426954997319226248787134269179329553935627046463324759186267126035286586562760347554626266417161851606247885947201932563236963931690785914555270047731090441220394465798915109686620763982079631395047377948494687181288603610592018885704173597465890701594128366967420593808730017225864370306838163157542907801957647536406575084207162878996869709357933080342550944657770305604896961963754441911683553679299038283153814058455316220935357412760472816313137288580876421549046985318821912720018159182582538291932603637596682270091777453098275434875464745295923139459111556310012524171355039375893161481123120180452250463998263099773671240812316502638262552982165034063624736394735784075196631227636052529319971293015426246596423037041346961899678841619272544973303895624326938829136325657053158639440530482071463735178008218985258475628253196840554275258307128904037920140412568131885704771937076254379821278227307779774734493484777681611039123022601030274563408257400214659588147186922586509198535115071160229039891487999128535786132004916407799084563808102192775139701482136372211069962751348056365722072708117969153144837472513104382228110964668452778135930612971504559448262920031409679515114772403431912271346726270167596767944277957442645866257202284931389071364045362890612710464353997009812403951266582793683748333492850943419287175177726757455119905785560461947896104069367261593074797345103078341450294156075112596305567275319295514840616200116652918815371422897506051855967239665137443764660808197364851083951436730922793377468456813165171615430850554830644455803695283182871954842812447034370641151160144680122610636843519937471906184107232667052809517740686714086423494024345333223986288458310534676471924634815902526351006150987485823912036419976116574954147909774277525434365357330123941056150619089707044785733868024895400099802973969976560392458773474934813898840252173906441006039614778710282229555170928449699625882320182557558858009644797055976064986950302378169692332880373669416502712420266187694079311767300609411154783526213001107983456785262560461830886155100107965877526322556153982622724561931033737472628997816169057031131960351615056616438971928126679466553426536352689914428214860618645328205062794022309779446297738075532780667271645387369527592637734628775762494231882647512366238410591439573574457272297782870063895017183054499766444463355808338254441904996844148504180979057705951308640530423951343049299446457045456618106776302105696548591334564972355306713536921688170562553714118640471389120508243995757503867200575155497762431648011845011338750222183769034786692460067738818156118722434214970717777317490747059497301899811503888171558576125699246832097871008872800271700135380860443257467017975669103159934117348382113804333668313137588410556947762664947181801973023874900002222283874274670517122967064634972348262465138848581009378942511223623776945518642381450493949648945480283226169591901102609409452608279758654695354117570676607826660654937514835070631841597814158332960727761730311536394514769825982623045135436976446597617560618823705466348914766496845828101975116487299332868745518801215024153348966882133663757714776238235037137692851215161765342976072729909488734440357123356343638170115066964345923787498600412218245541880414055633358357293485161099905419475533611171923669173627411802191936838871191193791530646964447536738527481171336037877984797482198557978865302034632205519938228140549440896067651013019716250833818593497039054382696456835942359970213432585012949349836200696260170673814800141630736265889769362808778271405837005140209364974724933573217794007166832674272796219845720708712132517550952112089221550639321339209154191513277702738910430532288741048644482835855779292346866079780568654587265224695385007689074441604804923518696235700064598835340137440141244441608104634064427489606870243751839935778851210352578751257188288865383540561199139420484701057188872626008937088501322179728509703486865199700467977110608752925098908808381408592897743057814288810745171901843724471040600065133643074874086391146097697241582843125975250309536064787552377739986612387755468486699778154589620222646057854768075985129639675191128107214969430244240336957359850845641097345783159427727234228676174612684710516597946305884902224183386650673406742919095944052640806569931614542366767336252448711678066376251530289663089019944831933044888813050143093277650868627852207813840238911838588342254307030016703443263075907340830439752006503142576579791564401171071778344946525110037245266473281733471078246543553814736231010957570392711110410773507441691244808792518843516618774450968913650379932801769916488245955553913282962460613738032587149069242445086181912186605839748478543946007479378622409595484685982348668794905682987758561712078429584031958695060832031498222924566142660848871602170407703142230679889971434117594704060570784133771456473626221134661246793898662776614298594168802677305804843332922196222362913573376032776991428325097816972540681321248951936615247555415152626893937120829641662291345665647553917035281417500201706292277476347056165497537238215339508872337237718375613585241310929700364633949233207979470281996299446191047647826760674899085317171775549559841854773250866311716355077077873808246599607358113795061244161494696425545352890888263744126044116680788144475507520900629961710790024351344324783743520720833672523082465027649291909554238493368747260729889815035072764921674251159311507430938602153717712924911277419788398853698260118786301937512997327453979962436495029562217372629700832198603725422293257694721980076317616804360713045211618399315085349234590615096599494052988448585748098789641036523055018746132557485136429399340717452318183989229263187259616698244996286647076411182412766144900424517285271052901521460504548085119940360252680469438290858472900288404116598352369551738630341239260176815868975340845744336166836903148014849763891042879931099705580115494717577116728674568964528739391233806126583186662572285032186774510548111076430003617383140536846608306706535724501821067088505081310332372905645620851943479001267783540101238649980229429892133427120425160260058190894874643705316544296975682970161963056710193839788312978799072030599343133608397524280842835467556071126038600449173510496466193263539599257028701671337231141923465034080436035527078835439204658079270865758827685681724243192377813350247819398881653823810167694872529792817974363241047012443707058875075187093427185988073017305095776287806858166382182700151840355500697306226474316865701174937108972131758281602044755238225923195734055013468515396509851410473834717054698514412094959506572912724508269773661481795188372870668140518815777956635735953919160524657495860686674682995543434454239705342155646756456211959155985872207598529400648935934107005368572382876691922262720730505891847437649146188095294985947266800814473622428805821179071267362633651271705304599463614859188159937044600199117279203342280414318274320990089785501521019373450722687771961483744528492673101201006375925344319414245836151580044906103102753322192182799572796900155315912023942623772886996343124343034952546082735249247971274887933575126334342056626032523415968432026315474574127360251246732577302484422755561431761199932669164345072581946819076128103796567399181133939144511416721588355675632688563499406094069365333503197620590946732061506298302804891378228770314183102113830253148588166522302478616371324651893234277106634772345314865270157731432375367816851325235029031431137730878383522909921082160200997154952829028592868799411030997812713163649143502951894775613169098708926464945292241206306593524755999395605685434986009976900297058540259187948313921852745931866438533982210979616086119172885684571292495563912199425136363888537269085432665394513943890296760860581471057605162513855426228016646621377082524336560911562473257864910748884451117001724344521980039072860194607959492412185902783394083420774154394291132881201832661047103838177315423392657450503637074324063133775579675143728829495341447026583567139334074494036638317627821720921808041496533999675714693855279413852542211231641441113449639616448848476516694103551884285556392589003770561869217577922952643790535248220947771059598367723652015865241608348451190734206856678741163902962361004260683201252914952509827357555588196308053499795023167167371351110677663444014868934694312956522530402228470572630983350940995499826353725924277531084525415298664516274011418508891530734889351664428235188864245264150004215875024405510748045897598578933239244423106411979562662258474487029622148068570541234519172231916580314920959420109262337355474828602379842002948266865905658673144789302607362409093461222915183533376953418218122620142029503103900449847071072870383394209150805001136298289174880285926501701534555475262885206127213158999647479275827436905401651768519941980643763241974545895390239725158470002490564113181598049977028076006470701964684995036728527260982240065387979466419407691003904812424023635707729296396840420649405710843779603056743657968784805471241741885656774118865417115768343893842889537577083297127550151548025812064985600402380678793148627539273528150075348652067509236861679572224101355204390643940521881005099141143727037025243890344007466861680332751351364548841398325957911979548314844025129790768591636655147130708522294181582370638433421085040810328950778831070215648285713840954637392621625916052855489626095398920491844057654474600369474251781771260402284253911875043232868133342228274824609091389374247589023056946302311774173033081464605768465515909564239329637600905585484749236301195019441899232013715542513351845027823117902784208600646171406935102330958887860768554487864743496161955250004545942605241128753808195440834530198946564569113902750840027145991119895879144857677376031172104938304225220784248293188311433968738681303135584648860920220024613520076471611617287291550370470405699172609824649560738467660999677582944784340200233021947612461921189903422940823310663270755318625247480321611395792019989366990560687438154041589713982453832397559925351113693497952372784395184597186917569152605045121514489425696012259262542522561358552494190605192408193983810102262513620235182697857492202370428976311409947060535361160224658624718193603468051940695975303818140486214848319803892609506608699948535836293871111314299159297641718661973781517738765743300206331378890484099058080480775063552150780551879956760318667408889427899953003478409694557655532085575122683787245969945044406322974836340712292615859606561874218284001873394412350662850899587375723127437432629211422137045629589911566296065010865150730235289356453430462907974510883324701165590781693886099897847724137328467410803359971745106615363530315536175670126654723419502076582238127352343040219607376019046889240469380946161583796640463640282405136646748372707860146715200855366731471317532026758562041569165676453491016918208043192535091281225156586284243597812892852582911605800078887681498571398166853239247127167619706706138415192452425702771285134445203911388694532448978715951816053261172512821702508639014333008841431638847056928942488839669640762318835797650443565999740772203780864827094926938231848041335757579044532026413055129008250664308634665861211393507803413534839029378025772372300972157994954364425568980219962736191626195934539874921889025943702484246757924462308741308199697994865973506932039202051039662923343064591976867154309704272548593274662562965849809989713323507130887260795853052147198601409920159600419576637288220150111263741413341217712679289269395746503838890108476106805790079277264896992104377754628264735602907488030492118804885216501704559984473785838511095209768238816834328051452665643885845579896020903781774462609197237158280984253260592666153855252296644345977099064405350207370926394550410034174758393965699866305879725141263196125404872115085860261418893686063120358704581951519484312512031753981740538151482818501507381198193914199649813411818842756960900980212283886503825714210694402084614659620542080729616121630225020584910671029625565681042678072902465195951175878647470189476057531462744638368441521808628855650961886198708436703848178564037699940307908124871648854752683536794086259796117844454368029711532369860883123926920414741299225945075113232189391622228246292092660401900186782962477309109550566187372039042528830674626755368812446041518908067240116893874428099370429102926024182169420183400738168633044810120924832416242944127940038775516160959501765153483379808838358186438088126887844180125658010353681819413596547733457717312985775161202445203819226182883742686819389070692732027870873388459377360721546218586335480037527185630045732089954824667999011862036415508957976337684341710307076244861996910404702502096439405416250837366906537314321761584901352420846772499455621562688885546306692082693397440139040118412947378146504263460189610188725545591181520188672909383655347948098681939616555214947649511886055537422110870109520553215744257830763367944278005177072218965024744539013336824720647722521147065152499991903148866260704367482775007375322349836427591464333412418384031485003402921965491973293128034478679095261216512895556783118538230827068325069546277070678013741845012873808291661162032568080893975363727135982939474436594026657328400422763867420858661021412230342076239773493457834027464033912841914053790373318620834491579643032888035782110896664117731837235314160327694115436186756033211489061693926401377554501083349664719188928014052779103486682959506251732318689859618569567619193213902593327066510118626510816892802267114002252178695363374125374038691911830451808771144609274636159671441311599818140445747147042342619662609287191649565652777749856365580876553151283735326466005184031212022033464925452630781667701008817299275941071115372235413503543921283507698308755308709131304973792432970066183389179448376344069084223057811595840053018723127570243421472706717932364048554460855528565383420940060146912611557549627984998600804002441623947478033169670888986341065868568590326270569486631280066992103879813101390076187135672748838867802355524589103554488598287778958503085821772056231321316720947980931652223039682078334705077840338220118929620708337866701048751963349000980192602658150437236587955381059438840566816490184380530318531219352541598792312427793703807547840427959115552487861909504934585406585460340622483154424509214295926235478659294836979368058751548140884216607390573140165827266363765977492328818363270529711826545971148681365224252313400077960297358695611808143383069698416721132931009303461045068091516253586903711312325631561583255658766779885821017207893742116081049042627619564836040286348342975944817213361521037920288482501665052763067455083846545265565175231397389834793224005232344993554711322163375598744490209031213539791274291553517166492927120135157062543789439655940596180896023336968735895194460576553023078215470514185803950544933872064303236656422529259604222353382570443852634615706202339104207020748107014427062506439526702901067368677760349006673486250937814339099479629398457403032651899228942463397827136989545191783772909253240152207348079892336398701609107106392929963710703341614914679178286486114039315450783671480777317285669981474284028740354860885598199655600697551580194866474581937790694389906184421003885479004035030980319155537466750931514336094022392374502499245369267030830982666643409502639685361093855769551967646701459760092113253973387363255389310169378945790648504507384191747492473849977853524548321391305461672898455697568148380183866027993489010334421721360149896345827423671380150967067771503022896424308730772886820827884855338108744413228630213846816754152618413128771769197938361448774719740120913129367112186639925676368982767496328986285199835830893601222479483672134307045747977932112818168797736736452093362292085699521040799371855788569346295812470778909948233091084037371952788730805402032530553754471409369882535933988832823145154878469462572143118020433448143654918673080473151885147356010928030142820059710070298126221472458300350609945570045623793444802180339744137636287136008658670137294165526531533948281355784979223863878231649911924851688584008872358489881031551626014311399868495919940375262911325786450802147180890285327552588223023385680303686249090441667106869240477159401064261429496621830417243675099499245226353066902406317138883658503036255344696561074448863482443773414454482260328739973515694175436797057049449799476424802942938765036044424385623372845135722570279645685358810007235963564537534732550614122825228800413716145390960441443457806021908524703121242725188123930123076856714518486887787659001826153951434537470385918617086464749441143973234798258549400167730518882237201300405204874565207453137292287846740295431744772961949369592147044487077305088193867271185385433521582821584513543637066408769812699838114178488604405493638789876331489259845028306159904272420021070696636321900816008177332499882836484361328005613591472410372113518896588350479546573596915185033697389625781094390674674197603054751865189901754701934577620253140539778160292103814285759143948718283703307107167872643658947592506195181299977891389319602819481918115896880252708969526794345546599674084742410875938916093792992431834974007437437025796735808004383006416432729160562707702542598021671721728118008559806820074269326295317050177609209573509487160220662611048794372780192092181390718137334091974087098824744173865452006385360331129213637176262373520585284238175362100289733320212710919437102426955818161827375337358174793506605219724049665427416957187473445468929582796384196865716735314137377806093894131366604991320405771417013088170027778059154484963927295358185955127117823777769805672100227971029198584544983179445159047346300811266957200177193223801296407414381500181911140377774357122619769565083866630569858214777280638635647928305800721005160419262179855035669347572040581484535533043420012672976658643449361489526841510379131883645284015442820323444214476743118722888212434426459661053682132041508423173301244897552677646257244187900650176061983483066984422842664378609618883097608486502525211023921569192923138468250800260676945174767237404018580216070936800606162530772300281000266386267487252613234483158117534626704446952720866619240865563396176719274189478340391964948835708971812646907847128145717761027132155804396679043540316414898586364765214239210791010363315407969548425300839296545606777913464783656497590367676017546071025117338791845362603871616905453326385200393243007089243266057318089253793378608679039134508279226632226233652674526968774963524630265208133027662695157739384181739064889774732068750606363320973709048988459410549443443212305728434382320021553759056067450695872575597106175513047881730210594083673701525770383120761708711050397305599965240067493212030991902589047033814879833287246733628430571854889887293218962940367211517309187933074135053798470006286373597127865980685323954329341767701877631602828541692494848446758280001158856844162316259269909970311146172743704971513220679707954470976792282062978817051959496529756873211766002561568409201369933897047825823650267522064843865413095708208006667727970090937236403022774098005097891124310907360073425320190593915513459828411491293340061132473180022725274496911438243588383925811212390920351918335797441802185539308465806324556810836014056437766157522694054109421987938526267260377722629643830885895536118523359827387890340206352115338061305728707576750553493227080396989828507739619488429394562855845687208028377379819027593827060584401329280446488146483480703941774927187009946280213927168021657487167600255691469800618069122287358825922217170272516555307668156651870761435987706502064686035131207547890726739179661658414829100354341652508791192647707184139016995321926776229147320501881672210236021709359121810183137182387457471947137286820150226246125280279150966129725816198858177882489387655109543016804625121943437178421654839700513051670608526999671430833578408828534116596793614354614550970699877712687362678018660675579380474355194406593544612917072760262309319444111649613106256852842828830147610088498885965678033367406786640798214382019096674660636668420171830231507535326196590832814785458584732727003885653461313800768232837276021135767136477707285376920507782868612396978939124624344603680514661070424155675052508419812659457247174156772497390254789437491126012286589205935267818255557721171988773739935853123863512941703451668385729345367276211236082765108629720570843229893481445874441748275935814110573306619363758506639212420750584666895173075325674033668594286388746885312171126417819355034676703682530341749901891085257758376601546005714407817200369665801449134127125027316889208585837224966341083825715442491412827273427904022919553627180082261727053601677514162279516544459377345093066173709265496545352200936033262700041760117756341783113694308566488917836321102388382788902584011328067662385514848457309508955572625157238361496683858226977156017568690097147886014206575443063056335424924744309909089227578571250725555410331364357225147455149791086501182413941262594468072378555696604155467388022227811108019917782871697854684497118952292567120014792212934526631846674161365537059829477940292767000736834420150572992445011643776705325102574620161346629787981855519013799462840934329630349670438645777609732407305137739111623691821852313383773884412642623352533211287585669669442713116614172258421960783990015644949616030314800597321556817255094980530715436891762784104578824470032769180476738237965165475279398977914945320937314901954944786499075719844754505923700101075894764959529532402294399345494406846955223606748425582708348186163032803758864000034900289559954352978029461594193898541175686408351780936088814836705009126314688940863065069844688902284022012128992321066980916787304884144179090436438710708758532709477392808488823966773666028730071785276633268149855152365880450704196226080862564707645554211432828027627867871932637509605614488444697187717932520225154115791663364677644946162934435637891109102818415804607482555996487578060227923673476846754583275879110074539812106613052331657451340400898508979228586139041534458884708394618686603780146461265484485487656568896090140430378741291473792656844879361448188760608419419119157691829346124261670349432106155614201035001736164258790378011090460154646034480234556794471750434694972037967449617148958587826381168025954549400300534912560668360948373500013830781913784599236946574839501517045179493634074092748112557006551237790530512205187418073348614096744974460396340162143423527045223279162281137251720406949897447749253336243430547459361180276459005879130919557610462283713010419806592852358955925180025692056374526665897083765498843161542127855216507218541682192943110754775171870578758546499909999839532667663541582957006740355361784665202702964150842775269862721736949486552747906238696164689286351988326007067301308040596114451491726161827654356287890934040112745885073795268605618319322618122433221433381862370090071903134661021270811477414497377457169584354576108599127508795027415165503670604015092986859485607948145054057721022093711000695042047905678232763127427700086424515684741740246817514980698007167437299212238013388642038029343680502407770950460130275844431074371581039093379746685291849192765190808847222364233274250282646527149542510847048307373556388946441212683742216906528714012013135106534078068941233492981272439324970295922591464267769003989086703480650950313398330074764856169472257864044357598140275794872969238705346091314287950523283737997921773524995861279652572910051927002414267573942821312603144808461035658898255389415937730027410377172172439724068641743208821829844328173724548295459678964665042635582322252670313055536273789461302434931057299835872756497766119104530823302675395408180001482851412390658884575224783498039311334486896161352081358014927665641557308807467906996067643580169629075971084889707361730271634441684225597033576227135767265267200850192795913235269566095247760626478056753984295527919134582590215283619771897738485686199748866917467500455234465667255838442958622875467078614152640042865364117840254824614525335726774154034078645120583474542098389806063068476351142532497690119268186155232378305875804136547169568361204032930904906713440973653858583099798107976936394067742529420005283512309826582139867936464403842556703487170958799402394699751032336603843659399088768980031828823090555074351900160846726587462480171039846591771405843390520388342549766502393999232921850125393027700634656717074364565230058853448192227163872656543408672490792934951769874020878127496584985547729418526214404790612712093144090269265605594210136170439249864450353868685025649785270442498335642235338560953939248968028893330060280434228803897667412018793541948469996830249070149193850220641926605253842478398231437672426458777569597516260502720551406397504611535163021478695757261029146031850810153119064674634629981826566922657351427203353392550783376666921886938965334903358747091074354574434658081085357258433398068120189686305736514255236958470849577184825739876095082090643745342429069127160783589851778214599723744755576408756778197359763882271603924545094001703792239646894129436376652134274277118309577963627485137219420635980991644802230761742919622705488472186660571448113273171113266336331858776143363540971772895385474814271246532104549200600949265799278004419309230767740751958703379111669527872888010193787988885686342984178261225030429106670207809603520886465984618505230125494961626172306289508863026051410268848820026700408454044710039894065536580006489921809710329618126969241897592052640586336879924570265740530885204840594865833216193826651899484740194483384010564965131069928866857773904610259389160980672345167809539514950378449917374268722999802607387518481501663571245629781249411837178078350324060709260933589687102548164410640999777650751425730635259319033124996510872376266128390514970918743411409189143955423825178412677283470523363192867741739949384143166265573504026615292654737319772197439080912478037672674011873295138693636020373199503941663276049132197391216747094932216794902648511788537055134249327634818101857925334516076081996202924261469537895284681023861120589976461485750514685008521965874359195570960992392431188194670650779147559453741495106497058949314919034497745313662529004114592121836329018061429802062706052444541286398350945482845060392605868435071278552629726590021452345826119310219187420577892209669091680061809709774547753543083422623564867536304731673491654989315460659511909915944880211780876029179294854003171312180943121631316345295503702572451883656434791488337284428939142150800841739384452754877416900415241946179016865795668418635098915501186372559455101388819244616192510738336163175726976944835859320874597325666687518368567554676085450157084931177025042827439265571379246721211196043905910374109996389052644358409520039397397825210585915382495061169924649422750065684148286634719626310149483995992713347816016825547962325478894758707263839939750223691683367320009026569644456336245816972883044490718155233090354158972467953450777395176679191851565732882486855946496143810335843692415221976316350637819495944066953595078174393589921518053443150052537124594573941402183716768045348530879659541610370387856935414081991663893052046801526953335472301751817497449571809652646795140489757260714839207268666253014086851476461763282521507384735123055886846383429864814649920714832369704305816179148970189123602746849816550751345878888012960364435378845075778490659108439995505502059611549184349516680803357066472363628524371434091095456623008732345494911629712450972751476533110554280529423190469835637549943895752249221627066941873583423387997136187811298297613727922416932570888574175554009453525301966815807469511673887464317061733770917746133410365272757918415526635073069785923001566159385350991929287107490349447390798729840653316525282351858358847069728344366403334389106656239362203704374351280198170714831720953893809775184208407987412726352652334297261369503439286419256809735404075472164288947955665805912609079556887554737482848314123915821975320712561500130858888078743074240032211114454011021483726843218561868630316249025062604800533144253474516494477951503669099834729255096952300890640120165237854480972705264937639070830955054319140664930579996920033429588312386980413543948900950520569571899282569113516143115253944522236388824312172550013625169995150317362707961899968095622954180257293013291640004816080456841893287555731119980440131036292813516741311223158846208630673762510493095639004133767608557086408306919027260166642554520383640468640917169507097593069738931611213299694688239637700168477204370203239648438789584246810234719740353598888396865823415166947490204310186774680866387916603184208500251416366602993433303854367303655937504405236645809381486332868607506023590829515351886291176109653331274918365419721952067568782766735821804397596612791937766225906964039789077259498756649598946361740849459754584849492851566809845228947947267841348611574808632712128471063315431436688329193503874691867654318519254833632846893127872881692091803977932755901833997745946683282396160893924781642814469159632612916927736524293741277960968589787823085635064197743405518691913738011768673416398781914993719290455152673074220142537939592350706309680047340883287266265131768707172024108263923887498789410823932457863072578464340897479559047899286114377961586958980304316949316904715782061852284151861442040978207418228485962336784295435217129492428714987917323273979348788564983806848829456264367714407627013833593892366852561440145583007342619890266176874124319236912593473051903555652905150920696264453794398201719756565827518090822189856813005195046539564839748582981808580482831702055615787606794158062482283235830457157932333877294684045332179958982742561923662291629114806582652095459293199975375543262973635681618003429633090541159363220027583863126193816392326245430027287601008380781405729820341415733934965896317823657929265882200449574843235050953222179082890929404834142439002553519753824083176250385130460089155318510297159168349467877836858984515277969363508639653647037990837909969615624316503140028063272738003827679585506010483726598928277677600372918539146044523921370448972905895609208552759677370049574256513781896363047684288002851349622580241656945934639226852867539439347030657964580309317012265911447526739674447736596379684721941181223308252387401307823955932726734390965267100239307314246300130768649557270810693008589210508658986789437247854764310300167374565992639108576020648413824014958793412105038803434365390756335865813766215078371385069618893595626929701313923248792934670269779781123225703765717088406509139054290020435704134552436628948313008042070605937607885624028352860079284823887250859979523253890305797708740350777065402717483545399101489192210625166937490979265539073400347907604944119461903783418045899612547712419479393237227527221795307644089020041565069511302632630495024609484100871387809684388792530229964868468653221665685178380239619161589647141505698834241531668521406437628433296125834205685707826068862842962506499830791237989023622423570686708124666568569400514934586389365444485686438352779516684054911337731396623580150987973917585136134951852391322185053376500928818545303734385269489230179209953278979775170215596465635809516046220968597252208074503088465438204627710406231378869144108546783013619814557526352824028387897349775717262749381738145592543492353669021848214196649783394283286803947019687682124463847546103638414179202701746742514597535114974517442631591393089612344554666396106124687606489391857383265528129212162224832194108196818443985022000552781665294650416791399833360078677222227038791814085156699405110378734720741823714129752778060428959598720365934650753947865138293217854243751186670586594528738151468915252939892562905391122464490571159627255957112022880014745655195283638022796875636514457513376790188270616921660370305980221211912683109121273881852240523523888628621321339476301346309737638048536629706839625855925812838822472450741559112758883917573355140263666389257927560532416928098828930747781758123591528951439020943169305252380464304383903463108842171861487669486139145402087449050011917025946783258786702219003900756181799932908231162396475826112064855516176401156917866349674191253930155518293455581229958088107671167643036432608102631518439103860921168071282084502720296744884226370139389280848699971943734200195493655591017855250252703099833231435955732637458712529578648169484133687951226414373285547520699004250748305166109389248496000785661409623170902635579241889747181157508442856974407425298759649564058570495677649482886486630146969145020662600877478861900926790407769273385495036157359386401645213569326933097377910686418008100500459477045926437706390644918956364138297227648804925280222738753707659287167506699098966633735870928344864698986573720460372840676200237449937383717135164231495603559778716537331745725892384144779413537897389917804590304161629661134634896358068208819165017475575787547930465544258986848970664569906570017966491208243972676451142236918403516001773475563261926723053195525641456575295198259253150100434556486028086293473443758348585197586178194734583781422225441943480475907802811440872702934274666757198814649560062460714514993525915877741209575181620552616815152287511166529810376862918086797319154533637652379241591857806953844139697064683436711019000757534257292054130423894073127540020998162128526002982609913333606105971123943727968670140337209279099491003538259684381798051970785958517931331956929427261811772838234216681130136806469197315586613106525142774379893430385341535046391782803406250102692254276371769263481026845961823950531631557258571176575338513216323982994370253794013239265103978182790014079919821031913590213958805123906007255473588526904619575419992677194809636635661194138713174594730988479424295022129785295197102223537363296522935989494970424499085153477653300569326369142646286705743432661573486863567450119187868430775664997925692731930541315026771961420526355296716944283799693748085350974225608209498750726561872907936304326116808475493589930049842944594198105266857977723873325778523894187825300325978629089862142894758988007229677755928502696295796246702316767156418933347467870501696823094966410997810918692231250914922337860232553094430078656341715802521251774058497281035693472456804354968415734940461358665303357195970445380132099934645109834576172377957270286263644051509125930573952844995238123228457848695174334398420355924991699299846276777318677152748466102208788048618517100687161626958120924902922039412092628108612262456756878220145409073275070278969543904162457244790857308723437339569829910246290101167848213316311773093111369253468459386051543976740481223648331913124861722579031550456095725141993366901361756492290907011554756872990536880269528575077783173614394699240857797312191345052239476942091900807976382945224240232585349117906806417987050640595926975204721540819343034329371644767300684448875169355875108126837479250168198617560529685486593816291681446449010356835671324170230637456294974936567434676084623268636277429066742921082159949941035409934343321786992995935618212835859349450849612035560641301103951566198074022796887645703921381926536926306539754042088804558531107981790601032124128952176785335684832862424414466332661103935464952695907993018706674989365513939207389288180816040837265409492313013752249427373364677047712332065394659308432855566487001847758540352651680887542522427434251962938396241857072911500148269128446246048749707257266105413409883922358390612092532040741335973858345831030040035990005486530654727490668291455736982647157522150437170094170039100278284872146853569710333731582013154051539194335547350617143485564893688675011673384051842140184425055387852948641267763131419475091426445207815138057192867357323968905471570387549682532699353600484054092041834837495827159129214308728285102194778691342723368486810460211929600484996477062851275694439080168841296538020134802846889443222952461194607340050316458271783105117637870661016149227564474583747182708503475441121490813238147514533634094642043933686949409327639419752097802503313157157390609481128266413315780731004813283542503364468904687784279215694436799826750406854094409694759696022425449486683029583330935588355591440126128057535605382127063175701259599144775665638678068916569533332424782405248573105466435936585671846168478052235612977290743539356548996656934900422432780010115086815593401004038876025468787943170067778697632894919303935165428767097702378173683259968678798515528443451296809563928650361661951961222192638379857834022744373323916476819388481638853938569799666141193846187453646823974451716098600436589653813028218244588584966726215874139375182852702289230314367688546097395314671862817006629502521844137875854964598532365699332321764107982581613774685595869819536442833685956844463137832772876166476310180534988878678067873063497887928684475399682828809482422738833235690817943921805941409999787172078259226709278822580994092185148197341231837934048369802004010403615577668712480305251314987136043780105900171952874571371869037911812663500655866699282564160367092055472759667432987138442574627672978890250955182311302018570343583263884610018940453066203968783727088352407708284069184163289334703548910169552434567894992435691550255901010128470088492926156370087988618958059944510289838694828705172229124828357547913110318049028172014955485523442276524015325252385417103180611723050189050272788930611694578948196099218001422284750286263125196303843767971361815177980963338415679612413664332049272046145310068697819882181965662183061627472670691195916754253516821545526216035196451660162708840354000173865213796810758062677805430428972007714794025229988945335616852181361806065090986098252017579911279927614379899415382216219438737894907577074590696581275473747612433138708130707767474517537972075585825630533751661433725670212008936779846182951941688685533517386721018620988293739699370731628592637009013711106908370022908937230664325392807821480828157056273042146709179170357917318937597750004216054445455554294482976808859884810280823447073724875347345620598046168537634435465033160365443507385378981184330054318201513459569132681104085662796262509239752271831997863800015686165114435276434294930715691983667962572254816831610548761251101697291442029235634731277706698227834983207814681201046704766607751445166745876516974084459538802293877005684033133794074897164659793881141526182319233869851260572380265258895872341890486505523652228800764763137102645533562828843089245557151170074343993088391391303690433800279791223538281734648907062526908408481225327934418982894255284954499967361270853208644477505634503997345436494772592929289014320171751013863378855345981669563359129684065305276358571913358388959851313447052515868155613188546086623118444556179994783526411057777642995695925191386425343256178580459653839769603260264551186967114159819065133862871503736637129594173893893172084632426770694966734416321580819965660563854549371621559317277082106731904880522965274764509965344043308467563386543355375334254651688875624780308608139235658030594225602455378608062619921877070635922656638769077123225591974600517573960148209911826226130320355646001726438383986615167397449800879149094443325295092426280899125714992150363251924709499630964248878874172241976471027313706293591779514213354147352548428564148831575048262475136671615705553747206048199094386114872003105154857793652890242506404048652854554844594343961450342793004688165716967416594496498221148919441680507332347587475029788940176705871921751022762012459019858308900206922271446004703954342050002842442086518027971263760778900871816802417458089187644109790679086910965946781777448980406218416687638233452991425810922813531973332369277323821534103481031699212599638040523889659246323047458401477344158278269731342590954968816581360831667212940991324760513019549088988698108764934742899516539376773137638791860673461033519897115501757504326708344630950387329754695387544628807993478295525101266429846450502709407345814401250699176361036677828397643554711752276752639493980868133100366149564560709368568734873165037341493099858343865335909111155011241762874560162876722713947206704105967321047448067135874648856439472916777897219611243510476177264562971531707174541470978150024940965706064987548049039614400700270977835310020543543394546345707280307098524971242625441946293148496950939518116319543937747056119756974063993288998797025805259411389545443212469700912099991872959946593230254688993726595703820012108486080740798096272766874323889497738906338927321208268033447980650372626837284322528513465961493200013704769158821523518856612621193979188322555824271867082652057560045090263972010021264476969710473086980473064039864628396967846494434318894725809444551571192605502380635097932667442666073659907597778862942658767993095336985694362503801421681996442992086333972656876476013527240543761100506592362548191613018121304942020506491152026983769691007384255062849334359460653685989005580656780807864139932473090805590118357723631318205650441060800060055903637787721422114746176025849247144044826272783396766857512382045212627015349500973164913324144967747012031572368470936924035845088882255163813842071785286179877616704303636059214615515632433590272030859066173144244521977036756015084656450629797771650146069578878931446180413793421823391010258270270375486462082928709345634486243651000522864856849577010244881772687964453196375291880513131695568165326017105872729528196566848609398096814340976862181484204702058153894151616497171432988725121975709689957328278055731012578972459129446489957161024140918849061097527861996758541747742373985569726426966708492443293475218577180322569248135295763866289003188730679936428738214509969084177534293113712733761690338392567119661893153023725518086701127065693387623621389951875342632410614764763410586372017112698993450242967562014467863672089040674866524323199466205616605735999126488595685951143782851993174171033051334951105494784492615831597192465167821346939568420607611150920074652241148452634829315433266801917042877519006755647623254613225113860325448661228110206354823361515621471568425919991255232109201127640065715837372713483560293874893233570670799426620676597830313592487521129960011463633401656030260241870561217820985136835908419477609617536947856607871975538135086231151236910305435867649876513724927564035627368847217310213288959219787297670921024568939650213072946464230776736321095784755751892632882246983493354788851227941294440668385839110151783417503775351053536125778558076842346599954733272061378422845821760166377729419315542028523231585482600139470293107848340277702527469421990491743631838724292503363547382193716178938810595335955251095626288302063129764277814652004261515865199894825240756577634415633788659452266597889693654033137561353646805473293528589378107374913131978893397930962295851512230881529624678060058635165910471052173324266227437919521738211478666832202107451272712829053100102374772762734151788101930124063995871522088991634465881926767035583235889759045241209188955183382506353766362937923846340472482814613914736416847561930915388321478955033951668572284984220893560569274596323523668004633826697992349573879178608289404460095513405209360751043436712238652098657470769747431952239879128689815014816590833409788846015936320295891659841641191736879432245301581125781858445919117869242989410371419543511412428813028990062223329087464633758193261628279006771738960532429876530029924163869023981201446641638905396822820400058453852575597757167270586844021553082201983084384447589219559357829679456553978531387051915258822351689770961927677644597645726248102955004910563478235109106192316641674034659230727400756773428980553253138552125287473556847650200673279914509227454869459030529347390268727567682850265681828073981653363342860733476020840338804493538942255998524039194143350248342316311884070714792187438015293220706724916999181562178151713634752306171130415655342569911830544771499014697330319926773345268616597857173116656609523384304676007056839920714729472587716893192518555934233960269319303369036644099589820772272858978111863263633982962947571312229809206696244944495620680820524947314348734318006349006017553164073962194611323459195368662585539841859908078768617860009523005296060664738213664565886074934171341417139112365950487558268849702446247141692686857980379060812942147480898800019099822452377555569615198346042747119258415049133228094037809894315563355205167968935343960380507311515306978057417269692729033676774112640846827634889954916716878085668587146932132241749950630496548110313678542730435243742977584622612729894401943249756849676010250246302214541601246109978986706750818620642519602396202777018972145749330102930492356127384419884263915495255728838395297543428717199408667877540394394324486278591426709638600695609654460984872136877887546658198734389921426644635739396708684521430338635611100659750332659835488530726928021529228535499996919740193993384212606165883897749743693311643328251129481183305898559240150180402645100405531829659139310040754605201618380216746930657949045990637098454375322000102771221807733600611795003580729877932406494207319141818138035561940279216995500574353797324128034957947928981208437712864467488716773205091502772735573820977504070711958188419705303401928976412521865468009020789470105826673319198020951127039177963624872135783647139272975832726997308157439661694536730727666777004892863652830614714942691806015487876623410671542376742990733109886710879623585355598272392764386448791957092009998835776963631003665292108068838101915886353727293304632293818732580582301866970514447603580542840755309610236437516721068272216064126240268975573279775731753943011394099592170281303741268545867216816914022690966758116530180385462544237459242685698309740688068932164691778170044013079609650862627041879691214140133616438231911745060832436156822549325227104830840365805698492847676696841787417364842684907177969736067275136261756561805619305663551579006218010504318289172553505248972919481471441161143231396226818344274315006269280306491178999973650343479974100788815390496938087867416580219168534447592819580812284971577770415791986613581233245118643123055315937504847686413337793689009638081450554796137716295619973279130682212405718384465263007748228483110964578011125143954281974386281562139152674407740113974722412816165673860826376774345261755314812601754611601772954436976118459335450823804571216172178532906968495217921880946595615473275598598604997178759086847907913572848057103405771594218946070695863745326513524911832303267816033218857028010019959027124067322946572149991454665062670215434827610887115308613904385333232065530697658655021711485818235640267440766557797538509924806031869918630161533660828956579367498640078166870259626523077647146458646393205312933930787444685176852545840975902777913342603007240674332987054389946689857259895018923756797001373583606163102847457634224959904722399296440527837967532593830068497937617222186260578556523944655352886527874368978041560919593609210186605921177355532763512481157255634227077984840468180671318812317327973829847267166053948691361652368185470168208007921781921164120779297088343310861248635136671318667903566340854432516006197610424655455122324700693881777213022879148070433710983249619136280131609116499649840147304773205156018087875609475760244907832004094886661826373422267303252771119799253765836294898291954857374689367287694715379781138515169106611391355670604355925559791059691677558485244113663569157107415501333503807989066562381082831557902065514594995184003349354994554404727696764428084225723338333617108187087203339045564326635301656094037258913627210287564866841354847259849818741376090415363009548622656352643374370440680758915029301635398187341744387272363865029740993119483047951382666674988181879855263615349344736112371702152721874369230932627474310043885436638916240937587943548700727570329316898597410801311766599596872169584403573828222947683097045724082929829339252760624552197813092818620241408765593382390089629573799204859001403972165592875294324704941621327416481549694387037504817984179209910263452103556989720247292958227991168086818620738218564499907072033342316206040212246423782360553303080582729449411456319228503344575467354658214598233667382933454407950548796461996066867657060033317591906259367407527616298194618803316508734962335029598429356883545034353411538371750730451781224127921252484366845541143946758798100247323175555134665412010989699669261517667359364252859488199607725672121883125447763731129015911111186320394159573549669963871130705371834978295741151205028396854760926650638431112640947909036087526810769232114653452677337849713058082913477553518185502739019855272090982074116219884586382399219421980351880274315799510432085937045143696684257821769373041928742976189603089530227233223511901707748140712990721321216428302312163624752523816450334859373084845555899255787634528398435281732394235903845118615084772259960946803688859245340971831499545589059525791672995144840667807287409896266800237618957687397083203032779947873899499818496863061829317900729551830373799580644707882194016571655745917018863951769310027196378865291426219358218807211172959369239372586908329426454868299976528029668227220946892236881884243684987504677373046082878840662992335255917949308301936274309076926900430150259377538732235817358642766769454800360693049018271585279608905977392484986391163428187411113033333590403502679612914423998564343788142274685751192259842216391447394110389681941885220620647872473078897554145615708659727673713372876906296404643836766943726037345202151543185242275111584706975246742244189151636832141223260829161936207798890620769892414778166688256767273997713258268206611100021359231290349463726942399251432826284540040314370550892254542879112193995135164186593096970083287417370521640690989526226542745670009280645337714098749784752889508844436018215005785178190387312390431989675345185355665435992919167705397378754233976115894573846570882589911317624618879451003538272373882998434181831035746343955405379606909176051718989640897864408112921202917923663282260136361088507849469751603469344138087759674074437417169456512988537196730227266453395959229558329242630831648352812928435226250060490279557929759026423554489095650744766752838449398572871984010224787713280253302811806530674635124650869886648607730859935715287631064115752472458026358327257177150000932517076776391838534355030736044881054180164133095855341989961642821398710473037225349561551006638078067588660252034873453826195228067371924713974272424388127243545120711236962387841722793711822420109790876879947090142987709228510317767343062732821963341726032637175066457891164431766500091130009993309558931064413369069034151723067399152442349849324800899628990004344382577224596422390604575209298343741653851063190845501186816201557846889057567169604123513569878819283412980416975800477232809016814302408565398455677435043102731574955545521472861424386473542086565690190217691201856320709829082935850918047503729249152180131284400642558124865534917358283460630215020015917712808133920181544139040216353963738364942380953630220058768093106466076458925962994382734085933413764442900147873922764831825233798974140837535058932538044671562525662518204856364349456918856758002151089677126183057385193274358465835743193532703548041663220864565805715552885618393011947517792928220637605711294481915477661600893388643487080504024209338596490583204631672184777919110176879934030877978139273219628500868762738321665299103636673105446632344247704348748299973758878711231202462846847788430298344311989397340793772531908449293186811582364534444685617367204725663153885855440999123352544579415474335108313604219922978162887409979963048231610839210055188010829973996443944376978379886786939234571109871879721919611946650322133956788071455961776747458786564845852214985004686513355990320345495123080046728013026439070822871985459961545444129809058983793656479427915879517111249368191250009850891754338273889856074004470500747733403922919726581157427384135882443581715448528496187518336889477928849852670927175485736285683647431110832680370308064306807332460310438125110017608407887350580327687515342703159119364566135423064672529446022577385248041660367174993921524110039031976924510750265734887350889452692683139841624232003828671823780379635743403107879067669714562939505305742026071067622683287786749921813166643253319238015572968860573313716499480627204407090849423235594230244963047572863337598734259820369227577525256656014241142670467386167396957520127609834045389367412379847013964076665264273384574114013469389338730323206793130086139623191549071535647642909612553838432008614688193425029354099107586583576606685006183462848300672869885642703154551638955319183454981680790535746156441053630449064423070372002918380901640534381339371391236081585422186725241249949051117516025256280437524331305298456713718712656113592280589217122577907861188023190939669535018355402140337270265313596870921741189766191013657938599498730434638842101579066019798268856386660618746865081149752122203724875835646657295049890144615998966752804704613170987940452247247180642816005657874967848088198543764438737182119943840416710245671573462168271618021841172869195054262552367759167633355733524482887326504352052004759035327653565324705966325106670903027238446322840022640272803407682229049055743217753959063387057248124069985994846052188530151923162315432765936193866569303084636266379311547188954834831994956836239235659476074647964673186375987637752520051741315113787915748620992000174758725340621249075031874047341875249403510578008900355759383132204829502222408575363151250699887985460917947553936414487089321696921495188156545916657357333981481914005212362906412794470773108086427257032656833940368449797998082663216951261428389594927786499641336733751741270156376890409931655918843289958207994341164405303097671883344275251227956628143424607695253559621581538227006766374241315182249093792152503747581938433360232074080220143386571040702717065885832076550363161733536227797684069406454481625558082393985527874638211108395912779625883752474667299855857481831507568642936276857241164793217413191572423047873833956482670031871578437899897664291314120020887148446311951189099011346064506329878182489711430421934809941762827412926307255113428815418531748116557961960079183914133033782195930572860540809167891890442765576859669813675064060110083638437351754486957568725279622748914387383168087632441062123900220294062142708753616869411468864792363636785867230733388899803658308835576539770893968343174553700582716975270522059253738586051886676124344081207302515703638000807912635035304580100433959553646228438380565737593038249624499147733674595441811839216080263717793783692568603094478009480582031489875844141536199330908928406995332555294889505984982969082434985890627395888182193911042568364265053290284716641246708178836641447906383831429683366726456334339794839549419001921158735469388109281192268312571594430265342571756251501208465925348242069949368316088498794338274314594762337299310674683294473100591162950568765747188387660691635370935208109619622296485257893859132068150525608849236168770730285763674784318851220696608406465916191865778647088210867943551062644510770418434420126545314545053214411087629688202226771591572574222155809824058550655836237840744418585750926454100346589183226042338249365815877476272079768180434282496422592295800544084714130490183830660535747395942819696729053098888207049140391509093526587194872335715201256050856771959492833136785227087118961947022790056906522244015039924339586802993921585008563327944220448425351393009847761060092951689907474313577751314996665421857550108196479312217839902530544764494217112369543328104816763122041203757313331850428607984638158594885372915226857997190420575678914938808717978277613615728086615591594726296384573110315052470237599208314238188867144960146652627449853300893117393790370040625135560797473193347538798308831060094494129188005451103034131669009221939326781156749143419627379306253210934661115586654196936378635354454543749108371894805570667684592824331430153140406041886865149372103867018743365753191265882513954274176056143838511222954052826549588214293822366267900069280315149172935872908043240200147941400405989018633120970553576376566399581587497563881827252813888163726421970488327670918564881193275882078025130091493333568807295943640561145496731628549928845287333486486459541688392412804227734159899318333442368198544589124603600442753695332482258717065537670763501159484414176638961162128641297873429821300062405531226954568304114463363230198732260028068359004725437928888011399252835133243887898372601414236461659486233432067702580194269975554103864764142342044917316348419525695242559998741652448002989655420129574094208824494255726893344153114949105404911149257851736612865597772226649195390516466584253915024001573970841984066830314482069943067448980616812129245648978950602368491214088962272164270708179255336156771563486831728667997381769677527440630363676358637386251721238409929046486588407978598690197635487931076462657701998835714003907660461341380289534151803892474393084636118144960488042267458111913677681292431936442646074482062209472020953052978538231132551844680681685832448771001164575991435256965926689208675431083765028844341851023719015924346053552827312204003628241156686234949178270240403479634039321771520870309298456287609120204808714321962739564686209634285413570430681425453017271066860584796443564307182022201745787873333094213510792536308697743342527317836841695169837735267553873224184703577081856820277943809225806430815028508493589371532370192975127683750060386954166355589314666634146388160069111286915198894749986231852715782185202607343154237634574196577432805434576536538180819306046910853947897791201097821248284029040897531577269780872655180466133921309352007872552458817819091668513899419861566574740776176017889340729686673290732695641171656131873947166461827189913177832005244634286543070465111344004278321832309646258628497734036225115925800810161996188252895521196857259228597663381757218753962409636865455594628000911593135575609969954092247384027365530028826998474112096863772653639371139089318057724869889255376479964975707248771618022784640412175858519440271788639823958718580063428470004344810933287302175160182183154487168844899207688970472518270883340666514484913843521168915155467406898862354966102463286442534822326091681274833440966737356240286561826519650765890270353847533125813659327170219185893998263032504697815599753542570235436286802711326801584890609727912862178431458068059781235913679584185159905034670933384291032078984479938009720790869349816735869921958045378209024878408547999402926891758414874249158746595386898843629498866724486714511188246324063982362712208863162241667711380352424991868778195040203001936910478311757191555786538164413705830861282965482598995060222880241172771840319814157463065345738717220843609972041612905175580754705219098614277412064971247361056432479384483347853316932428696928497373094901294474335569998721640518139075004113967430148322327961868399634353185470124825241821246844196288317497255388851110024983444516906111379033318005904674598499906230048123678997263586824765727423489350557004088006885668621000485026278151625399015569526501014277726569442035583782272019328281296115436772242960790018695760516139060077452512988360792449358987037713574642532731987220769456553122669835037201656583754259230816969674587539691801203146280626979892412451022473603420056827280203530841305055373312369289892705364671305250371184906747017273604879380675593305076797585003020113505870725220384380118794567160682781425744058584126732045720102490658764234955766653415413286324949689938482932628838159895070216655335146542417262876198723853156824364335122094874980005783734706383569964566838981421885921746439855975911108665664662985201687989303523526058083386793704754174959828864100497152728065499844495862704134499603567812641450895947856358443000899726466927904740034191701609296112462176686243137559839736989380613505795824787998767989476442486409986067873234676971423923705765635772442615467341516545127757920068681648147088289300220159878695716630407979651083031956867631675024403716751241465715564105103529443169778493550704351455454301684994477200655693018924527825487609119647462064591748677317869942497305422097149306701209336820774889127323365918717992686338224324498186403087459547874980952214253020414356847764802968013230485940103520262112729150721434268390065008295297051251804433520789681897346084370690708363057890467901215467456222135353896812993062570150382463940783916456368834459797420921474619148808971253071463046663603935034517523759902253138715852284623344609623554539530171968656976348746312575161525722759605806034223308741974362854126347688784103153515674168641068609685134305619465194548486285388352615628500742902219888579127961016462014180883442436988046434550005073721343237560608622374961176671634488318317683494748262802069371562813328401224225428225311417739635167017545079353822073033743620476368298793584093005211093645486817680763180723275978243745217197600945504981670591646801954808245391112813516744816847238235068490962955179533168873762245988683695635402445177624513209844750568721737972647863869416213990560250334698482313499722167478381395251791034492124682683402160483335817382494171947381711082887350612660747446453493640978923104034009143150590859189794526214574650251335755276672867434527911640331807073852151487115977765352146643436699381342610620724305439618701881347444115566307116936755137440337454663682312019953720667180996774294695131247368998838269455072602959146858881227053927622459696541718892190732498923035681123483510859633301736575455213727890675622612352127669361713365097256568291571897579495918001317492256103922662984198886596725306789449388883685491990656775084587677702578591140787864929266658399438159609738941033706651748530797916583065510513187106829037372466162616734341179633610712812924599083098719116641048002747367087918453789486346290407020026464113972786317957899406954466354556334491051524226382968367046682466967755837903879180354389326388934348493227369398163739059813335773506960317693263815336850168952842684989083470573256127444515414629835039756428276880483701961234550166149916303867680532706118212020589206124646230837450638275216965688581586128363687887828352785255763869642711845970858946835142508736569375032072191836912616251782420646659554614253422769441520835836165740705092789181209757583690051966572720914679523001411838769927885056753143444351355739166549014806187249874534772347947206040854869680465283338381420944835824595904781942145129586994631241139720638399890484883378345370213622547581257775685564524941746326776763919302351523285710022229325912294797923790369597004160149140129048618621679324826760698579173212601708905393495182210232997808487359097393455778010061394936479902687541308748005752301871432330202256711524153332166157612556216570923835439082904492180058004256149277656544645465454789620432695368360261469208393607893337963669840256906730952949257313495965400843623432064045474116383515681049060946993871733588524356279847096726466197347419706092489131581512470569477564362611281037531790368530458237783107917073094319779139410671423371506141618677280512690440661922561452753240007951290307711662386110138569764064920810012750638996659138734995707355250440329258127460627525404634819260470952823651522274800933710387959618154752793413848332817252144030689756950322346732004614876510275788550654277439593833508360329629165070387807170726189070896358218031975365757367435643378939348110957177420777243577185661728540640141464443943284612452194742376651108526163643483500590343108340100663166258949062298366629478015364691680872356123414251481275241064263067587979218567039491929053936221336672626667687651480262347978820317866763621372158487538289045878037591352125647528480506817757419003920998872699872415364582756480282795884265007034054866456244982136626953819498448161550939038609651846495322942506875745310350554290695802738050541703515978968414413462560410428284284172652842039200469819133954556746563812662208394554617101273446897513391943965799985781300549016448689239725719462140512420094579114579690592760008146599010251217421050937704183992096847666604221577447208491600306151280691396351342044047932600579126652470016024370892992659930297745872230898145813514793932695563494402436717800020387740612802831060127468345434895487307310149040525276961686771083355550936697431976283837974647225957724235857332115045086979422843105109480079352169863493382189956715994466174398020097794826184135886349028959961883511664297496445818476468122976383426438444608671565437583827094886052192159730011407357960440896322102846139837173792003301286484041159573134292124088846427234369809767191738683850526813022006391607123961361355646882218661347031592833898772533643742561586014774036747433865741219450010136353115925812799927743710423479630716863259851476816014450355415875107824521767456755185487776792708418759194076783811566104310604898628532684625703243660124513171827227562808082902363322378862100698682507441482830916219270075891411197991206435491465454865570391114814947503553023819026145671317376833356338322962648827349348728069758229231743039035853517961908994825581550803327827119052989701951152211546265944482645871162847376650291314842594475779649363460232512177472184627528905514878847601693544554861654254568426703774641502475164207093144519655186395198308573730315573596657267879980111655580770171314434163702288257437254994424572061278633164151697704340232474617054468291652240437462657946734862599015825691550022657252431764218883864474482605961541685652695617655132269513579691653339236514279435925412900692728886303284942397831584854015718734036678567726565560736402719313245235696430534845575533998773024981490545868247829310189938013009126914745564511858586978371214045107802582655055641312100405846235454070861147548782117281541604085689463081262800323237166803705701320110943964029750570628161246173246423919192359271994630369495256056690797037060175154591290936016762217047030660697038849175546893420185698074363709571428964018209738295352587970154646651140282565053561899181960873789451582673936379031203054961071074761048091911435566737206395505787187064455572231979377453320747332282095121536454119785890170674635304982906991065452871430934524672258931580303282588716772499596094397564421579589190511018090022543274108021836482458714562241234591571523242095133310100490209976775995333692216858892257248108726020450410351119638614908023827644920437689364814302720770728432309308462249892406050342208555926438094918537573118988993446131420355354084192537739709925862548272492783286687742875886296968071298471457790597706374225831463559602062220216210879023249357252038299964199157400073025132505989719114406378102082949056896287205286748182311066052173368803006550141513428337987048785152805510578798670217147185111124370322221019687243646306963952987391230268153975672511250140223779195867311290420509605483056353965204129498781743780664617484625578058960302611486427279895223622713741287781388815980054594326255891034762378151436004968896100142873532443988532813823819108664164639434417704463023733688105634470543241865656188125463354987074091550051140095131203588693056229526381314983965475810642086908235862696607559606348060262881307668494414391693064727428784650866131654122477195678914181359157939057583233762576489537478455256542841622947377701789273983635027634777355865965018128798209672814480800305482358616850763821408476816835297941592894888446914906885903830936348717376738339667135503382533472846810839459856390140104797401140929660817064027530889618059195198858351250161934181819080629163673101008188064055229153737456288862598265338660953270988708064411063538851918187426377811270749614375803029858423597982717931770601598008092605417564665317115971040729742077082727931201135723262980829203681292864571421176674459872669704898450950729683480046046519008294352740285466498272872549446399841849689350818099711468304472892582861444283278558514588247282736624892478284792944606108390682203100072684204953043634735014667496843713595468628634890281794742227239315518165624085138259532335201503368324645918199965031791859374323816714959502685999723392543426371699714660706789795242251689169121583758706525878481810541590653780684885016161001519261721129420579664605510509952113529030428230747970181747173208667700536078465947076283788902579675498708935944105405164064825953683953357034619129327276802029747657496213080499519954517435044063001914071659330411982564560731410299453677672405785071617164906979967808162636935807631292495852937489602114662218780949624817269771505730516772286604629246253843754836826409407269658840482959682141766300111059669032439658963777055628513514550760082600726580914347357106929727630614106860807473537923325474600720293463098793880941343484927069403409519175491738092671330381964397800621198865028722101639951500262628446937498909529265878555235476453701247037076541914308402066096998656488893986035521794074630745091736704515310172902379648224065905173180451142297911970866980333654113737829871178795873583868744265115859420220933292612942450644970978925231850009913235400196445466583880326698604986876404425713872356239433099077248120193670014882999812713426359915422229361779460521298996498197054122003013188971512845539223566435938733326783421184434410967400181977197232397422353239045399081785967068491408781882005123423108976114459864277879774900560949692104568922007518083798431278489825396293326190897135549435491256579747323768772866620837591986296378401838983826540856560185168410926047114723193066982176354270046634148490008205879913831485583327426787582429198704664596144281327158641099940171647370935102337796863730729690939452366593667891767614538776835847426448530701523084006871209487234479028301655213949124587080926309709257548477668769121502424540350917933995143118112442908290144070507282993127879131256434253013235582204449760600649059042012201904891523379463542081766740058173075991425159130044579779638154477175699723824633539185455212847452098317298767682539133988241641808615189180308201593836803371938739796299614908375114132636099778467322126712970166000078267709287417772440698227001638512986813215136428693881117198295414458015602256205394393125274945478695245328987973611525103844885796790922159462642763548827781862570398840340041503978248749051511770790008654387452257052508243835657446050793885581968292300656035516975117487199898102528836649103571987255971511495942000530505077093469386854734326399718128486899913069612611041224125439459813643679560084359411052926008683525893326509283056408090691694831376026094603301225081732166909120068108136231593785093864809170818350911396479960112913255687298765011989403475418996982652121495470535947360553271471359556672760859385685919149748715245355339196437082351609277802941368771520890860311169377362065514905315117899778306245558843651849727043892004686140243798648375534179712820840583231476113493607162048393573679031526901064241931880140608082924897023191372651015922066364500216144129567179093276638998350467664689345252829752953242645982089534138291989642537878951985671999167584409863912933873759423113269223557961084581579882636467670638216554485133176944649610613812508727194443137805265612579804601464264913264767909400322775611686261968040683338408947342510040844592743350756387461671036537638429493325440787471055585354396392885800290506930415873317153271279249860326927328360836363701808017266223169658344483725359476653405688803572552258882796216895902959011826005848193678976441369763311847092375425931605103458541965718755643924235083793987041212491394357017142506412353611065223762559629130553800548103149446154800682565313001338722684690297850002250067007926211366968082909525590751634197427692494855252149886339138206025873620463980286047901497612834944190900205718300167128501056265400254883698336764197891879371313335986308428976606085507753713785362541163092911199205884845830032387760052385913830370688622181117166229325116385513036786534960689614221745635526700135012304167750149547431184270629163353300688373825575831207486107739741861644259387662113876015591934412760309115449138178568005840950921721427363517633431020740642625837435337549982597285706302096236277571491398924535771896047266020163274057511338766394148194370624374908489174562046833963783299455852905071434161030438366058377004435098661942246055780723727883923025492185757053646776044471004150566911054051146167908423459453533014707043123119789333017150069364394791307661565601899479260475291885177646484192752967786273330568327471677042521290522530932993699213116391629128085880307287110709223985249752508603617254621520087507417091078977458567114613364081941596735917020119910436657695572815308699392310164236666567825577739994688309208321521708515779612506731971126377563266840786319282181068337865770843336535374510611302316064442539278312759906914572218868183801698916730811581262249239596515006997354907644410901673072897094411249572326088321991061091156947132507485745758579345671755902089555526506334326850349255177373708454768666868520505886471264716976432950908546915117541602655798571964638483473839434392792915054389667259669909565073153304594024108753286837960886881595369439310830516384280888107246811320979270990383397342075051057293491993909111252642876009438910909027762456502851385601945095986358200063138800403116715050510509025699232605606655456879194242767712877456860973206075547052854821705686683308342079437748549720224433202224146251578555804561825844931720559687477438516733252692200361691280012770479066301095896777832618890631590162042432942016732410472082465920529782232837002186333930120350450580295767393836717380373359508188699264350350238395688135309077462206649406853845585883498199787316814984884598107779439309066285993317941686142937191155097786381333119085811725184071221570463141926371810460322180652962872682706831795950534440201169166572356377580918206203067815581264454785845012627175249096023983782759901979242996510963693314892566165403932798273527988343227464725489719248244957514076556027294907120558762352107142359987371515593706828434818037164226949989010845669851166997081906161850211661807237881790540978214510484794108038443823564644046015267706261997163842026288298500905159345676002088673144873515868636688341503309208602214892261246640870378652143354673472868524724525832596213008225313396277801353351510790880960184701648151005896042502381749062649062130411594993255038276293365418557038208199748101455424567686431490069433353109168843923946895492654289865221179889206512664435936911798414641437261649796133599639296982865630545152471314425673307173221919115735730879094025744596194340335449999262749694218817478547805937171681579223038204485103306798309823476054084085300881239066135339655503574548220974987104804624600507853134906427780926336722913998128872711802701002785506549391886212778373178677023551363935166195989173495699465149510224648488087444940244104109642815084426754416910102938025985989918088863565190633791904258119690159785784152238501436775997309261666248541656252593657876919107656237879249268417567947454782128707709867344702730953223736668970169170909110432516862316223770299507741511277661311768286811504804791187694790891409732311443136007045191954432961552660199817552834489839410643108040411524263845110043038968599447755503876145258527105660389014392833466241951281105760566473311127815650882239332748245780074474986086486299871392395007710667993360445609260244914366819770979166228809438402125851840305180099595442687105305848397477770626140309260066272293302793108610321753424483227122698221741366483220093690256371883016739799684998586971942539551721315652763201749194492715497287044442423253769533437186348772871091850529208552438801609918968495607766963303852817828651498837245522192137681242693634243702696002428793282121941381655362277171351757925967673060732268679694665210856808306619063130189238238892180744453130584375913013801014503054564140658738594009756066770724981638678848595766799873257995587915932417475134849322900780803103203609883012536144754044468265326783526896750267408399024433052210521410622321903147902250850682860380738064437503038583064241319102055658541970913151291019521841839729543056467538613272867748183884364566618388908527563714464292488451084486056492220017961635418622322924982914679677479563231187189875440617516687897392556648680945338872447555869405690298411862220466049491008506840970363079423896181149078023472866631197590218635897990756492475314769584950921740543805808305378843010146569130859039041887210696481922295626940563910750048712769288832875221443016199704453378199000143014207896836563610943737858665086392440961167260412422619821890929744004920049881638886522930805973998077748331966289141306051365649902116332249767950508614108362402885932357338355836870746407472378151817785464297357500742800453439776954965437877706595657837256169099470277861533387645698439619361807280479860201018397020939047050881998257749080711044024972159692846925814459558857084306158141943920022204654575294675315396600253088888771717727891898328496295953090180634427100053873084953103834637991270241002080478987638876660320017147970192713862987469766589030303620595652840768456017585603435137231177084935211671381064327920656613782652016447610331156741427614048187951324072197616277727387642476871423190162524141493020060280309840364268593372937558709776952063467243870335568953056197128465618114983331353509272448386196490330711662070549661559944612292493295341160046779853055805243328816124995533655365568725282026042450996417697851134369935127634926060527839806120832469392059900333043031456650878802123004756705661730167970048954782415811378591539448504663367435438285638944947469745854140853725594301002422753030592310595369558710517399254557202015600812764512982146160041093129790677024086402584852606558179655466282303856919078926634159270485200474567242624497314587470792203026465577625243926768246893736046194907091012991593150467260665501829230109111469496672931021025213124458233906807131195788536484053185530941837880479401110153278478173917988434215568174093294968565577006050497221390243736825152634612757047833500472287025796841263870440514888539814545351966206702493899448575275308483056726385449631868049636388339299073078351078420226120515858505939524694415718796984719473776302693371623057816620010333302261154935491861412809394060288098482304373659549887772592513746406778461465220728504731074247473035943653266340613794586231124263318625920258089524603202874927415567906029285738559765387624922295981912057147070460096538706238605530960269509446117970125343406010393781643384738230311306444299484061576281480946794534102790387690760235278814469179854484871973684671655473524370764683363108284831390803953163602676430424572849275777295764729466716148730310789630689556472365438059708270847762656213029873149310291209418640347259430566633110938712505270667040057075406948155723959685304861227605497000919198896294450550565008867551864072440965542197565090822962703554941347723148457097678063963000240785554838666483975521812671644623784345027443777653029644409791012665217409160360912657176052274425303865548857255379451470030174993315885018797075107388277777546253032564245427022677863008254340166659356959884296740644958341646282952615336493474839462112485484488328217914682268181974299532417846362929621126075610429453498353281158424347035171672955091493738683597203189511639316091360276173719341040046354118460087055524204885200628119034318021669288939051223725844901963748294139169091447134384323184150895775032734695356332666140300655436360409087660910522190367278983534604922652190359633666530866444431625482401609650053587469232239767905883405876539871378162780660992203299398918360905267911391782103750448173091300557945242768682460877984414909575937326028191952197101624489174395407324375357022850502112402533347514047895087429042897649523592469108768889311029784198637253564252849865187735404157458978960228906022104482841289438832839829099009625952966208712467834330553444773914858102030945126401143493285737558741926642612558386710901137149683006159465625325125046261173748508736918152548876638527523053464722901015284863323810788635471422008354463404240579622304149913104249381798189312703521023626558251289912098275098498298336682973931709686384227625528385788183717138674082055639364357034203380986261845332951354756468161594571867730004152422554300213781950496221648143867029522667453196325719807892811443230778664563002798429829689779827154034616869818696745466536560813134462571510169744512151537564999770603543869858712790359816900515384863479956463406115629306177654991995999547367268225956810985195199645846183222260375804615769618880064654292428031519373400210769228729042708033206747982886145535921664977999953480706152188849267645296485529868711925640867434514637689857660084627302257468063855044848996293379992023243958970944224248793140009240261525234007463130437621431698723266452001403195308102340368768879727154856495934398882686620841807564546702370035409244204489633495602881161792777595625178299262040145893912374075126361198512358513385686100565229040704917204234742695825337299037035915145104967466957483475166429825223050366428845789154427123533017546951708175875848343388361957220408651151622956836364737061829926749209480046261975661404100698654295559101933692697388507163024688986049457719107717814904898011156015289397347020719413064245661681104969147715670443515581487361207026689862985592599936620220949626894662749725526996032864855595272995338145594639241708464548669588921958839149557408374759208035468698279024425360542915194549803014832475686947068046442148962287551008982584076458682564640808698856166944532100715066160641541795772961477473839028660686945671286130926876460193271906060945056033870088119692460358169620772114229304816406682286364440722984062835291072926839963002326141121637417679659079492526308032157890032342365239459338436771911125689318604778820969480231828151116807757467535419334353254644070103544139633170221808208734475614640288222504834207133675944617997830552949364817659832230553919454478599324404935920945479323133126871324415602066398521112772236054878303819136491097853964697868877699291232901294013154527467098828568210386513629696136134037863973454550907373592664848397133989366866725579094267860341270643184327712760576712988361910486647228863536409286402451699001251066179525216904499798933440917311642191577228231198004487456477769144426838148767466015596059682930811803529640366153375964388111791644425332716979945712181804231432387467882095840655760228390901911639484453159688447856268222625884270859261067472360531286770238978784280684879388019441905012937524545504562045695266906339190420922162271028628013796605852733733190963607957984127068567274403688100709359351156496732206040642329835001842413548754509793028679351429568087752985967278919107159923357618795379570511125931710488847750348133087107742541772104449893611241848291950513646434810904038855325839904865990347353829189559147206266210702412659061338523399715291500226997185482751928961489667173544725316349886493714614376781770275207590074719682551298115994843437078381195587506152070221135988132643540620375012045959213256405583086869166403774423324580216961891806726517110514955936820805834820266389595934246004714582077040242586328809868289084483049507337929075327159685330864176538360876701292129921022528870127065566944808256788411496026500489900017581443224686777731564991637899865312305764777892134114335243097803286498508250692047853064746348265867078678473210322863546662138335945324443822611404267423856168098910464038098392290494958396865684827794538410146341968813364720315817582125009772100650385145359771615699530121382320723589612426299962013211864022181780700359750842111071414150822474542564680615018790626334803691723030252261030199920519087413472564719338595003162791516971394632683078835277407802282078697587974711361729252272387738160722808190381326472213540246818098464409079930400068443801095989271826646902916997823829086366803628317942956456599540916321294844187217299407227796606961703996855611232496039730546576078184524884276624875335433164113313625315707707627411120486158952993547987902537360767985250392518799210026613323025896582281746932457170673844530434086784301617694311566866884672287943368494838071121415164231594337604744124907424130825125624523186984539892359083221285997255800966119336763473433088466803784443949224615877918324607381660807776513828852606889690864826079422083411708198173811474957293845743657932899098995373146915513927734196170985138356557329197821281526636452264457975940424820631171222908194829898963303567107833558357425460221704289457026271767618696473643921115479275347902715602901700645133061821813517280852616517605577132259209053913525593383529506993783961295125317835231717704011778988993032649761727781297353539605464744510459079683640370876775605681715262782494556728475900702405187433033746015938013183637129812579937713620941024946326467323131183139138842319136820472423929298287153884279204340225298631639920669897744922115049100567223325671267073637244847124099838313677605800673716981369147522251999651928285607170299970777376855884908923762384467824534943035368559243631313535173507076801648506772680834834880269273808383246520952170481732774794995313688644462114571710089053317582596637883727481624367498848144371940842533222669537216504705671909834666433377806415817746977422345948061186019200983668163538636310653282592418098053255430978868753317746589291751175122691810800173377516682208888889324508884734661656564136484679522839272790997181708537586644734081502378163323636230866535688423225692515281887430367999880635742117810340863837050068263063821689803331730407455237008699540725188240945977346480445428232121804544080951298241628381498310776684895360787833545332050624742431200719779339836911349451281864813410064785498525952984352477593526257848080729136098034717457584631885554958795082736296631347958422566910465712560042447525148100042218591486083189333105060886273123629623548449294734272418670720671648539763916843536590892763817939791197669559592539385634835235605202913511477999025806825916065493248213418367224563015036341575898361271764276041810194602310875687326033789299355329119936172013951086675675888632147873484389452046759263485292645956408115366767737816367634997938311865802615823399170914894575095844957607035832601172752766300051841497727106525398822429493695016302248481822644844591632118934346312183219420129438394576582382935229263754799194810908022386754986470885849761794350989327782468417927056425712211706882656894253142574801379886597073575910600733931377106452806198106232071246825297466184020098394028918073369374570792465936026645203912669872206048751532640026529743284617300567100084851355756476843433618652023381186371133469052518628293776639149312211117306877033194988252121543046359622448950460429042241409000445105894485612009658330875321685209414215678211709450249990242778326448987363849671606785607431104319023300276502140567333086444244340378343771236893868724951166653280175780221981114630743748812058191322101267333806810184182219798505895737175676986545059210358066595844161705142267414146351888716780140393787830742234245969658457567976021853857494294144153747951130494195436622792785679550641315925139323498423058674500421609890618684413935464268617239825445650948438253149802838748117668046970625156429406575712308791447574630087122316047942366750692249640401227593320549250459605038414434914789417503592432411539723148569984460085364828595064211009469587050954548651952416451013931565332935345910540613518340540855272603374860945703913281406205346113984362559859267039318624448173794304229496191791787364592123979168357860438982548234776897273728958123029200577501230878366368233809870739959220712501135149745286987842018689900573640374860705068126253454497746957614405483220620060338555040156545212825329570938148946855394537107448786247166752142554533104036006819969422254786584082888124701718131037847059016065694162381172213455821338201748345890835728145585191504720233339044367766867623688633389401757657867169821929444355183902454747332975107161209420640066716409818762131598738074280506705641810399107560228096374299036712441267242422999885386355004907757789451576302869667547442858358792063318156440747205307713130891776171604772562850455941400672915733071720264245330699182618427105211214870184262503193475074074998439151221486841170227800170047323691071022958981466676822007873915177029913876462539289020130355236836711758921247814105278442171579365699763134995250621602895441833719222259634105206126558137124632406373564686471595902938887142562510976330309087981410790587381843151313767993692638959637501587163637137085547695841413317726114220243982482043406720175435205664611077571755444635806740210219996524116877271399514543840775918574268440117640264935545127041079715845395221006316400319466434730201680650160648031961581653644436818361404746762171760359407186724452005277678734923471265228062535909289156132643082133557275152588524139842929332931825782272367154374683568382618609213151602315500802180080520365184630033913625179292685442733889666554369233186155862082010861686514809149871555184228989741688777903647729502021485688235921595184455977751616514194101206327924366974417864529467484301046860164696467350965154164575631861234986508470982617365895921652617588854201496095185442190260194054482332825036565977326864999211157738277161363670036197854387377297657945220204201236005055186091081269915502745409258388860460987808044139572359618926297063405192815987672368645387538373503010505030666731116790721996511516210430264801923648863067367512059640113120829020989447545894031533376262892451457522311076214946694270083646779415896715167970309740846862462912051151263911278093424358628587504363188035611974043875726397295296900545551967086394131253237551744269386820305265476060254392389275710575823856368736123325989006596614125002397282864483531676081265852886438058966877275369075489528553554001822810919195411936546230919297437189808307977301470641627809177311986632518684500154858995732519436750208660977436381653663538968059010403131516887619171388871178250418868903429428437790653471885903024695759073065243882550911855219379361994626889304708260605195687765001108910937167560635545541672905416339187859236098187918957470921913955524599056770398523336548377881679298904797347346216135145260459812971204676640613970643574215479210642498385563256222150316215753784008510351296401713943597886185001203010473006347771318600222771364546711490749772708009061650300051890931646199271484704324278040630013739136576071844932380418086019082658433165774249953633510559014803308182094891453001436485132525854775325759830062006642763918520181558821802139580616474037310467497285183287735813728293573148211284910703684572511631375350156493046046409570478078777169088157626924426747300771540347464068481658422836405677698353019902463477539856140985452969732329925759497194879160312081785288252883854724950943573580931607826148563152526207834447482847735758807547211669463294468138276214978531001227323188430399882683754851349724776869230257505582215814906287776588405220944896059219523685789496423107755274522235364938762064738797674011333775733711202439840723754914885368129339058465607666917888835107799517127516115796512513963083337702642662188838054159456944414697215584096543902671430071953900350363412797045609090572313014927980088264813883430496855430366697736197190896902040893855254917547727659383559966538025179268533215490717071067759453477494819089495309962576970403232321052325509816433776084753815543374749457924747173278588444181090050352073704742334273690484433725980195541601268852375477302919386688290891139539951630460096210545455395055130019886879983612710800954082390467510897783593731873626302494405206608049843617240898990669823311259216584375755856425103859216449861679485669396109097561746196706301297750475545144625441132709290220142949162596174089468867358108673691503972006881409524616082747349917297122866777407675081907516404465526520086526074340318776684080543081979665175613220806896126437683235566460859821078145109657099258321329004253582894489778513026490329555499072117960137739848639264906787935311736065565485822749943111713724159105250948522392702500403263523063327564623719447085119285074061467246984288571476360494719589174930180340395178734932528812818248829520352977508195840810836386228168026277582914257522786052231425290836898039220142159173457039839871419506252626210481756304323885710036503257346582622564911467749032557852479644687282256051420631271566821267733627736742565186498291770579396380737040863442960295987165881993343681728360080676441564612813768235053007730959077422394761952639490122806240230833970645224146758518878810140656061440684975302940392264602776874593523320128003592874171581797846249059139596582575342532900573677993586501041530388549605519657743178652369001859802186430588942903656413638118504899245011399833000269097657933850824572108164775066055681380579606158326589339382078694596689697795476770647408796451120870332846051053688464272878239698754466288089988724650915195343665176623768568760180294885425099049562740579852727136256985608799242275476553766805812459160096702621557964859960948016075471660539164919724693466297067376045570851962976234590039641777884189873563091556993622848047809395965360103862822436711363324520833596894075962887012733569963895768743154078374442990782220494927259076185974140414143983933997627895747761628968185510022073279831614606468946909962160100486351007216484162866340180758835256761645443716256185568964327060880687076469293599671878115943202457908364291716869550900139795045417287815122728001642366038228115003882345486305433422946596518898605504523231696404742585232092782237848123266883289148639671640795707053805836504192459827442084380179329856276213526879212442218940674770656072295356010030626013495854658862897160556012947784539000736541388363692330170745509751002498685708646652082649390226884893209954048322965845579918001116643499611076520676969693028824827097627553674772614206505122926048318278685114217409312198025017090190707913525729801475767521762462889070335156741890350110264844125435156591062811104452991946018742313627775908049066869931438476894725743030510300911881607368980995893529876709708367594916345864891144701261334372152625291505977485233430983278729155008513806388812971515632008067092826951076369822869215648126022278697920046107294336574416893526026169923149777120434846057205112803194163743258697462567855817416506895347757500353479204299866867643974843826897985882467481595144589696487789078622244421770399814908548576041790428013048725277766056074492526311681869508310664456065548813945655712221594581941392014822391062381213047598829411980324351953678719427958598784119272202935941640357773705402977339597784787225642979247159650764695098066705067109143252432386291693114987238344017730404066348695076687483677196944339366636342644164092802549662987188091770348495494332772017857155477222102547647086090443165826894333711290861115460643216669637341040970511293239593384770908665671605297989113990412309599667480552237639348597254499363026011080975780297301092827049562872159036326456172135811733273534402356569835020959466342764559989306348145868796853740881852479452394336814726187101538994853495263199697874758751166539719191325679268328950769889551848833856457437314273602964199071377848278409786055310242367227452071441717212716039877649673446432130327954331818837731515143371408270298803719314341475964907252027393922904935542716537937520220808147731295919781220907558233245866083130817792961776246476691357485606275232074551628979856427879976468735374952264250060323302832986112511619544082947003397035192377634229146167653033526973543728449158092965125057435918533651944912992101891834904703035185391514307814934382495496357514355113171316100389881294103057305274122413900230511217325244310840180108504061381195658462153822844624196779428765755987244294103047332704641609180835552282437889100642537058237632762440836042121052224110685516229042082196316772262681878056742293016797905639804643997230765276040763179980878043176017229892396202854467029562788759072766666776334510348726389768820076098578233077540563291402349760586739983923573776960691362923642961507868323462772778902836579812150625245065409194155346137941390354816170701849057794191354729162731620337811870825219996284191314207186794415699372845120873215192580325200417149098620203926617133493295520296867570974693940409752759087179856670322261314236565340011571381835507228424621617710568103356722377638424848775397387280671360022684479968803636343009745933559643219753760867444656128538895210419810566634108144652612069141481922239318934074231048889069176382636173854058514856187203214896858222828176853911697259459969874712444842676040369780588845785303026856468811657880757555640222204391035539636210007337445776765536717102963497566102248443829871396103168130532807859589568891188673941892253256065407471771335502384130670570413110287541398429549227073091229152814582549012118767754266843873665190393399309218175814280201868492028283889198834601976267251363367716712643512935228553379639995913412320732538727221636690768740494945636859522864020016290705297056766610307927924822927851537722604484357083986896715813396156434594036633029309084711684438435145938017264169383967807169994976967684421865481687188937955848788857377250724161028693244589905849877252223121116935235515374782521702766427322418204053228845902806482254426294945004598905845070663953971357269109726883685455128245155625707733425269965084959434561372251620408712870044204039880748078081221679790633613172384169079404530988750164407809444126030499423710707653229194405383488614996857115445819412981369742016954084648543963470675201342022230916533162361162983490987350437103278555570270830593323436463703465658324205074948176063603422926473985467411864638012866489642561189591132265859486857290789494630443808841190175584594358473174854751778169503722755191388923360386462483298094597354206373850875565853811767406524446422980906989397085216984202043016731736454423470582447656722800167963722823066577483894905799768585843083238027407456616594110887806562453122044105748742576619918040527681655925974247308558660602242621540178755760560728853300997971801711897192361793728342335099923790500632189417129940501622042957332991535488683164182190156495100598801384014592530672585597415308382071624760487322850757240728740594198392621571003014153311821210451917208942946436706377762315442137793573529183602671079287181840722187722447191063805076784595983627531789497607524289375189609079502790393221433123163044390869985531134273291458104980058226540517220989701968954103124813810218967853229078615079840049282546229314863040602394101610379874009091556281700041212106212600226525503592211013254762092931366864087276573753505967974502710793591542094684252235049904470508245938583975859765203320435685359995701431744564774524339884804286122441881930825269875279620369307157574273240060902229404633196987137306904833616427817874882952096215589237071312746703491874246003013429311172988967795002240454324449400102552168976249643022782820344052905953764750822584306784302937014787701928439118875254633698357192315124853750150145366580935274864214061144141479577662125599667014328407218675359951782423797804634204230212370797266298261458446878865531898905812432133209735160434143175800259663765110200214269655542026054801794428352903072752492943782909850169161219095730121692803068007556826260065956355479628435563649956465747660156222160683449578812410673239658875080805065004684157823912185658144404046608070482994908966934576343788107107569877354189238900591862331463160333210579213971130086138733203736509151953510841592129770449530404431338977946251186803886897176476706094424990548818122949546987292059127681102643088569504802395490545648106077283303640153724813824683463539870315854996532094033856483380190136560499144755461200126286389344737185572830329105308924710290295753050504329748857846240481435858745239591114891618279744785177309391144097894718551237902065251542985232691635619487478919383028466600097750677413851044243783354456796723958687279308959408976373818061936396864950685055521749841809474530985609389769804109891260137303844325850369058326982365500307496224667580659205680598383283157157597997844290841291341164888164381187403732363349282022199904657380576687487197447481568655700836799613099422102273705031278015099427819000480812648677534065950466892153459033774351109504339478236723282920319583502575450420949212685250187742783063916893325153783949800974541571537487906031989258537670944658062776482967411354980670839829392208810392944478547383380193789573772987660483244581774882616577385032638037090278398580228197001787996957277851718991879973849831283049432174904600750500576291661363975596553469843530184263040252469792628663892837623985357816859009062810988346723548825665086191274754285465980464116380207724686238919134031090278201554065659184086570264386551141812762888607718743651474850465170053652472088517325755045071816431528133089017589514075401095924595053606086574071004928210289174275005379095349782665170969973053330158236326374226361708895357374320079785330514519377951079640121659162770406602658637994702721709799378558644651349038363157223269674743686441262944453470487526182018867057173268109146811952981682611074211639740210610400785309246949665109991341314445652896287695475029059143458677415057137706023414663310586378101863198145654096991284040760750780797721343711161404368542421776053738877093441742423844444586324428121846088308326780954669413003282491565558496837535270823753985676246798146003563400493793532180330126931181007037397053055474974877419335903623705088605188498211124407361263640612635501480917633656170509007335452990984654441069605473613512709501255480029689183773657742184290052072071377378016767431056835742016534333047697294174624453661434752311482670487514363547643604103026413511345978528306373312035953218395591514931277049758314408118904217865239447089420922026289657129591074562628052184361258891380980267206058243683971376411652294509058622055768215750744081924462274688891722797654900464450875349266170174362337619345955376979072153149393193797881674545199459871855033335403254180559601298839951637626955524715585476821675927231621296207323634128315684096341069083111730090180510422998521452292464963652049198524122506120023100508924387377702303420083332559974854248375526869487675895178374554799498220699426254531232400164813456604728594644120980714844977491548319270596126388922227074869705570212366410274192368895651084033954369768590089086143318624993232122586964468067019629559434124693026196845154113921730150953931105964450919520346485418274397797768343447485236058090841390711311818203390769591939558702692040293990439754909156250977612966561700841311961975807170330003892631715315895452332676983204222458048209113151573278023055474871733022215124633755721389749660850184916701849261526737133396110425747900118988395068740026552657180134323809049178112356603470446182621857206392826739626489173005129181103269111026110313874166967449540853721961798206389970378055385384655890844105013835198431768311583601103820608915529663620476461441307497365491451967104344541840463287570647509274982896271237995762640584380554991167990577301506433838249252378914864008909338082148950571971862334295799642543891232045200032496493897129696197821186876458313867477081145750712474282715945855113026930564478875934275551867359368406441785654523275553054106133356160989844926444290601941426437136976355187775948455136913094301476525728824590577492916639632625780922137672386135578527872237841144860901812522331224688754583135222600902675338537886817920628566061155289479085635357547641001549276228198059807480617064451214983409745138784016864014023298386498075832732555731785048337781313774630830941347537842808747548571496242388153273419701261876599397877558930659174870413240782814400817371439449010966455446773671412732541413995562602557204707371785860922722657128022868410747772065898738460699934120270941848768614050652230045103921251200977806993785189475650956012318429992412250651564629256947807100390253690560180928867694074824052632969878851734927358358692070337416761780726380824077779180343995384054254192764697241085087163484801735612952843164981233213022152179280150147538029930973313178630370572194648324723344528948023640407026668082616952010958744569857011051963232058249606253056092322869314861751352144313605673910971069523320907719610233680903257410288938912484879759821846047994327230879714364016948943782311448673630941265216401825209343537685797592429205945045228462851341989162795798051739132422275637998441617944533005946462862682720145931299986260711184934292570875001569188460998779760422020185368835165964978268481046141277204522372520612479849966033378860505151877474922272936633002309990905752404045862885430512568960422149526578147675789486998370554687860499988618704595123755653899143248966761219292229753084732618520974226182655188314558598823195478759688768617345434992905030384073615197710314644252564147023513921023798313004560945178583714212460187560348749377702817668560668164899845689613851483875607212481421878409461517807096312219456171921946785658530537348000535085082257348952409583816026493931716620943580961333306552485950776540614843945985716919906697771150335394062959572392063899628007417379618802839157871502949796363503581201995187720556936438118679770778093438749782457231992747047915973674892522189477599021885906796498196129007444188641712861284451678112777200714062041630112023049895344131957140827091017936810803649857419087562110419572360222029231919201894463698634478806419870581446776015807103519050167793737576372236331801098139095663150845650336226755636124844008967975309236775676170191841621301583069605118095083583106568069493026830549066998336194601558703438889354883005890953608378736204097482721235874314594372259332740696793033792209346635868486801952131099497184798919062545281344404444424605293248490516923458695096433947592554246030681991219445813479297492669769485975133053989453710336109945376113324038012104006822183262720091726127073936835980751585008930524774227220261034128160298507916912891691222916846112774276835316075003302262819028854802921956820888473208405317929544482725888090924250897908815023487471450170299458273227354878506168713813670562899727765251973711117639387522342704768899805071576036327886745313815764825104201226955546715571800383701238262474895469154055453678764559063962301445911972336418930692879573320841320583848852184252708861718257448339109640988577086372874370824439110154767976263655028718323584806929233906968859719992777121691830891075717665955897792108445524262669213119430855305544023812516495052001918523913854007951409751265237765637562913221784497322862989484370405040804927097133193677626691163232055332694942725211489735219942875604145339135449806280067536329530006013180691625051757152991695966149097438623980935601964903961127468205383216930904342587973129443260563829398444916475826787290955411932920041864019657833324100712200300250182259483075665230744769533200332116104061173748344558820700030713874912631233446880631924753762857844371463208469588816787368854472411993917871095441935902009924386647748515306427513622108080867416927445954941059671768519003782686555502184545145475885957361017612877300299170565429390677054636763661153164840695650328538812200473301253753247191148679088117700656068126411656420446149900609515818434154358145068392538222909186724626679529130817484464489242815389668808851013586423580481567641543045189851028415805227995687140976153622127184841879414710140148147621559480590290316502119935201006267237632909390448290372084054611786574613409930530399557676137864123887206199363853769192496983831426406407269402895115884230296902337571092364273789866277812522299973870928469224674698485726543315189455736591619911689268567256808773383584204003565039307247590011564792125210373290203963253528464576464551498249494259134255177103117072107829751874341453825160961669567023090223256066888810655457472650744826722162630086726579931349021545829844934197515455162388956043600895879880588381622277082852736183198265226722774957117697961673953577243063267568681344722953478187054251019917369274342270219443852882587195410787214981652625509350345278722015663897862677203548441933373424252703046893221153567251081601739412825276292299791135544082393941720135283111885166645002638355080604338524860338701915917722489700285287860500096447916891793481211330377599882179301970106957283438803389718598017196268729955804902410926208029068933226033615421995082210297430724872788240043998819295554165788025531708821186029340432669486779668695181129431401667276522750018347312409684651843868855361585874431247550224952328879298697311804145382878005513580860873379037122006518457543298196357412665993365717420258055088133177219324157319859342012596770159435627753793053456582180187751920453362308332888455678380860702240678104355142225109279955568147451369378519287132316174175039001262725295648614384645289066377383458410952273275479500400478211663664018587409329744863018736786442149945581491660128780243664169368841245014884268378155042381112562339949754779199111511926511359749314628178477801297466591669747304060920485343325198561352681865837064851575305707619347055381874974114327833532741660097848808719155980594550971973648472814085439597006937101379110468685007212070947615949433342212013425216090351812937424894601597633388571284764574118976947428793239967960490608154632305605940624176700643480735315908736031604551584951881263948755469638585090376228336337425652373486321391596124883693252197447371856119766332426567564984786136120947653640765317046734382425965509666692349583521400335169239804168945851739014286690118475168677668767547321694438763218022424298392295118175713806450897184852367874012475169516458251709739056797047073286530834489894955246876336569627348460330103944389537777124286835663564745090978190719709373461537867843539198965956133973841386159358726853378828396025741389422874372323135504360780187003422513809045307103903515986692581949436905814616492123814249115919586787137140016434336681263999848623196748842609703775933575125953101203215138485437208864824433786064083858707680874129608724803553494905950844777441166333462659158729463091229241474563223509052126722783884965962338743318092441535261940726231836622579930105168094124596031548664878821736846689017706749107085176378838684479375228620397549470608629956066320866451709036977289108554911741432505030932855792719581373680085867988909646845604997815946714683847404498095496730771078581166545430927535669289290409631876237315136642156492005502005317944124572268130911466935052523274535542047530754384602344834179608741796329705013750122804774216620521423948576532495620038257701361784499150555094882419222015832232984774304437753227120363318564914195856157179652200502802976004504216361008562624550126701232922440240328471808723665317317671687723227649777919541921061534586352818847368922298503561969883104664769550582496060404530105912107062502356232929610211509600380083203565389620486428291957790951486858139347326322653195588851824512633274913941037308738728428075973995832236202693089312967311550433605750771961380194132393547002977570826114294588839126537668608118734005545383400679251689747803585506801978612466207463817081892965569336261767390724833243679552456647485859764878367220364936885556347768902550784600791661135945220275107192004692444082655918660138812967335729044722793956648652206238655684295804068787155211396270302895556528988793912720068740293311266776395842496638454470765006388676907458852075585281842822107734090712410076572242520930096230565241234077964638477061410143907577192408445444311518818754458175138010712147462585457376704434894993522016559769374167064942795103628872598087204211366437103069125391218035980333766819433984110850386035978468552780103493501017840847971244972341646772289729664754092803017633288301951037890772779117466781560963765250610010326527397544182000640905542513673975778125112566200763898471970786246084557528408782559647461502694404403525808613816151952648176902532881929206814016067812972007686077021924482119386951749368997779937225870261642018817856425745400890754980660324497900238433431159200402129065148255403515052488359713567569900266482094314160642395393038285700913647830014231524598957644039995094622721857684192048767381594393427135816746175923747056739392294092305018404331615249054238226332987115831551164457286192673194614132294912247632105491309364795499514250489945368162861930038617804677420230172259219449643270182615766625138794739383965752545663313325844451798435940998802342941378557934916118094207793561863677302971164244529748561926588020486613972975527738929946897308904184618779796198617490074283463285050340731244507155553947490115860891149587199307456038166723796861724441167824251416524738312107184377226843062827567223413949882849493506022419082432732257092656857992968069714993051447197085695239263852418712763059541885325505076601585763801033914111605917956036624757042569915245441646430374557393382480373739686171695971175950853805562379107846259488075059879533605397253653170082426278699368539932276077753319823940008786805974519373268644887466838320613576914321021547428508996666622201841634830689269430298733876392093138758762761957418013617127567551719622438870725700254185835223939611397463597626436138066532975237103566507311849075739308446972547507674141950506493095136196840040780026506919274626995599334155304830681991613674901019042970713753132983166943999287843850910422149864889167821098359586460966459660688396734372594554183242086230434377191444741878977755032426387191271327952635752364960210694505416970829822982840947357515449194621701592732531492529706437081443100032724884196055249297103764878258207715957023788389086167085220414248588777261006094620961290303870743532476264739568125237792823818589599141023921607421390315793776118815638530593934180518080190712400668501013479243527799751053861897718952526461116774735618478270967190472335746807309933083862675342352456677780052625179650443281927878250649111604289354888192744935643975051469869775209962328698168420824678396476586904311579123297007729579056412806538489426567006355705477852228216410732656975454543961463622697505272617195797752663006226397664621199543605080056604062421583658667861344443663496477817348083836566689757616361560725755891985249823739509617284049054101185317621587130684295001018990766135442249039277398108147532679977683093445964478534663492454621665203236615199935097685949509877486861648790340487412892607099081334547337055360764935262986593775345047402009483470230645795715824585275534060140929032775334005586005633447486501008776044924343003241366397692089558073780895773762948831068322615730149933329939528424919205304749166386616106923388704404581131960275201277497436003112089755859217251628963256113633208307068949698668370103916857895128406509796314206898105164410895922726356025249132035506691684960686947802507771339913785975500053895944959326493267423324194669706117912877980679389653038972218843297105163081091555142448041184384086331856108595103744990623753940918077679431389081427138000357759200157740234182754057755416368055840554708181794259059688946783671577236601376465234379850446708962024576276387025991645234764046350896071445347063347238323167571508720414582664260333599320634439345582281291062757359665773129930033988470202728947997792608508092975821823833041810185879838205247914319912036887428840696008638901193298262578644772941810832597088453368349452393019417358594723814082581625880221130052799076565271206973333850129791920862205008546949165858416102197045014608438142532989211659060360909063181025872949573020953888866929191328116746114632180141033529413422634307711691626904753716549997219058104503543236949311514087976241006232015793433867976004563355335635875382282639345220696590895944927646166427682580639694777174541596000742150393896472262302324612291139779234202889003597403973811583714994300597227677847782412106603206867813683990796386649445843676744354871316157177018225376439437766652654462137177474284158812689302597804205289538531632940271729601091868320175105670550032233624225901708402557366586281666884064109793601899557684265778842070335457124052595541410392823680163284277061458103823805103270915199939501310841412423517395946803395841091166920112975426646837230891609396466120801322879923994011309481560077212037316078302734826850290396008911682664531241588471430863642054387172123808436386363912796930924432834399587861593486571526730443000621052743019386153820071078597936542414301776140878436360959079262836684313726949065551974397578297624970928938460203587275052069742276472281521834248907647003237712801911769005577857259017158070013653924106275277355205125941188464429582281679074717463911477734162424448806637122511183621137921717435091067355085003479256869734345709781011809971550879016852314341791785091115936025237308581054437132013248096767332091670472778185900985349453409698723175538741470243520937330008168088993674533829905376951344441140016881695064513768773044790492468165111288653424610411687981716009051947306521363531772208359281049949441722544527003672760716094657559717495532021140002115124069048175501550319524900256021461133230862838433682993823505630549819253099532228832792429325838740886366141760126085877314759791848033670320992899409790855417381552641901223382983827193108669856624278838082266773385429529479473572564019624458317576657496453003777902486724258545508035826558194527034812368062154152622567179251790385575068077542354330464689957850034327649224569693978230779599446710270697833697119172365043581504237306024001839689655578945459158139487718801265169445720136365978415958227687939209820325895189153040282269280887745828649016810679438206913100850741183099508606457757653012018407098742788261598374622865945094099359908954211018305658667955906452860644942282608095711067253550981601060946545011264982977672494871287396277484864964154975935986963295904160528845451182650881835185162992942918756613487433284189607930102813028907515492547276411479791914500833605442280953760510039918557273960945581685981183229169210911432263669185834262764598080686045160114643905124275077526719785876572211067226909644910828064518760192942641689042346797898326577059246106038397695999481100921229839650937904082809244892767351813758448828740589191676453668184057873700195017294569951406927264341834847443650896609137660407840139915032503471124252169571230689896708331725092444733972823229208181628025653223320411874482291805985177169676510312434571300253388130309457340422041772907755969479841716658685607804141686237551543583583741138536173887309000102718830704620322076425831402005543701454957138632156271495519146689701959333776196590542474046413168629636072779190789391630184168375936009582485243728797182970525042215421674775839722481233368217044178166912080542796328525978850678134556346763171337540584858591019011467054102400920749077799863487937364662801184713776125709504802471099819200805178884500276081060796737612493131644240947732561623402911576154474319770101359184252883064435263329507808502253465690633229383468441068292520647563210146009911255892288883321961954589392395983829188221981920430565090843436185444709707292163804946165234024688022983584481787433378120037183427381789496207435329831133869111998487837659128958763240702125831765041347726616462465290211609563736950759884311381135156878078166748641966254300204705206135013143458280711109731168018048968589249009353025834593087216067493514150005295903906349789649742024584041597307211147533691971535527090210368704772807745845533026734889891425596021060539551033685007897539054921228035558790960938361907270090366235791349391069176003214626746292297681293969542954812140805813982033824923173680315337811923836077830152275583569802199612586888528647129185674671521235303292933573932492680192966475842458212954645857293571059317061111785278008114610304264145296012189287610941026851129413146187729724748232032218800025198658266152405420480615409081790667684034998698761389080141878109290881514990263847685431705877554498339850338904160464481450712365535590425225870820644728856532121457142307653467556204969740083621505868400948635418209141418208303434071507839740480490249779948205945429734382643328576277579370494209109198944421772904196911816041104401365915293940999287171070220939144721569709720799821685955213334304868823732005376534472479960577479816821416429819413264908640246817242768901110342543060838723048667376776178370974453390493500697484279024875846733803289477728497548458131545956220042085764015229594672408517596697425851064278417242685484967609973589644755714119636631683645101437423224074835371228272568689738903735210977558405879264053386013540124524930226809796381876858773431688629444863684046624927238649126154069424850927841937910910744289209006441073946608190145538212920972090652063484285654596238942283047543286415297419044379662241437804041545486485405984852896480172188366717276339439144247708292788024219903073359162108119736866984647286758478391277456744297368923045324147368701807571317922747656375564527705060221698389206295289767115297744074730936788678838544494207937071992882870765650542205494081904843051467608340333384006765354705467312635829273130880106685445191358990391473429920086823176638120890920561906874875597051092220302172252873088109898925683824072853972607290681300348334229070084624646759789764124139354623557178788722627628591324592903917672719241460374508351141767660602908968392165843626179866301350602619340837337061141716269323228976339153774554559275835819276946518805646258445614137923712848758044355183415701445717746241275252316690987484818991621320517403158268627877910494613663017809960797876384464182492302958054887399820760697645899929459167578087639818916820503229410156600237055726918377481955951493218496671159305555201120370208372906778206637427405754991423477127596609584244739561296730245577156726738735820967593341773172088038387425678740128934346130255522723786022219548398960544895354414749783027946421219778308600615409922390107175462389743792224287794960536304664501956315524360586766994004824475644042334258005850902327016370889313849473269947334485277589368027481166324677974062371867270198877413655186570862300005521562349185634301982923732240217948018151131229270925042534375691962598501928174507343314749313710576580273476531317899508833860257237434652167807251582458362890344890906187009874759956822229692188782738949049110203425946643223860054202359973635418923674997175080865263761733918215615407064376943238878042866016411972171578381717005402867228802938107108677659006216894749697791949158661114286789605620621615645000810035824917894807301088679053039362246528348689216578728639318344668036835504554052445831376655969817926608763844660407377986216381009385226908282686011125219021515868468141925667905333769206653454163399724043535843989505142427808726601229688484906311031285456639294915672180426738317640191504351350601719415791615319853201910037712128066185612180209834465714435246988402690503673894844361057183496029724317014153484550555578504865581819827271462840162640608524730857329258387879690764486941748409669352807026229626373058193309210463766075844684083231029335362421027124339843260831518110703313408034861978206093917427732703586609088364813894027546044303238573230647453827703640611090909261443124508949133089501887596855062612944299688477430240609807961529533719233509090267796063810925137240947113159705045916676622359241792912388849846908446573998825206291221810645405199694319154648289406793592839819246915765739656090417539122942140928491777228152807509505377713774394811109251636048907870158741127420497366290642436637502308784212405287263680396162271153305868200296873301351212064026182077572402904255445941070501977750779677617992390820232311876066339674591527410742071004853525899078515670836054453089439304373244328051963387811491129275870156971073689811157034277531977794966528536852426965201820141905341663815308909980984734350636590829875233072555566866540342958625389210855828700811414055423639291151172893777251153465507515712131386760103809783717960057255503908335336810334506600643926414236450328577363390897375855926168347160983108690217956021844424446759598699156453204522538225039588439746282235588130476535762579458266805372103322481223110502538090608576484765118789699744823275878982934241219743758620639819210427737486437193883574443732265856577912260454746433337583684506537668858095816222276997441850107834533197446669332428429901935668177518074523005177339203500017949738023221784729711125335072865008858307055027082111740723570303150655315393513790027684003277441330687527071399410036606592223077083141679507720919281876453707376761946770792184101356629431995379394916221956304225082969956627774862539814234185509860736657268028283901330341195140749288333277297031813716784081859664434771852194840498493507258957194746028120199875413368803993867664630694953177969639514576095001111175103928970076832587359187128985551384189537395700577775431375951171942240296135612335534468577935667864032162556056418311658870895067439380519525255219094366330513518052492231586933653209597847555983794013793432835497003731408658385834352933390164571597218716373541148393294396188072513474800810337311313338855219818217199482185937030007666179728384762157547693370469151192339493537139055205328515272963965179498013168648835331899819294411575670222947087074495904690455952936564201291418208371007287346224259735048333270481935985302741993002314062584663159407196067412181096598361581993472122139379194479091729626379428378759392936607137028102422682048143538657410357859267060322355520209144080947079805411552907309907932658533394214343683695850083113872549682876972640394796284790987748537596643684809366003002514234662882596873493851522411022594978722929288110575766090379976192483033472360761875868662444838697137567205269265172304354557358959004512853689522024229053181728113611606979441729073910076183334929365954006874565873242413552497585922920521965193413633365185133358228299900126486532973766321979400564184640649546016428054962969626194447859800889682772489007244052166883333900157878945749515400270663830305820814004554340565580377531189283701949578084240332158039692999764351093308848063388250508801381192874504771079891628683432011767237778514047540294489649927102421447132779204198796378631892113286002925571547321365411916595212723786400428195047184741688287605439947761359707504098804481182611452612133329439824791842202143238998507038788119151024400431270041513799686836572187509290878009449256669663741396830266162164626637725250318084051623150320395030055081501601228043050516414086387645376641836228954859545138539133906763142338247819196901534123330656118071389422908744355749426300202528824073359917544440208667516848347629695631502208823902148406108324176630084539165927041784474477196652239954291175598145519081528615570058635626674699427718757472532136735024744702439619231178638425448350243392198809316481344444986865097546300548592521691572614361910196903142371675421062782320465110319919493278423355804538359461075274261945072504995683443028739051065840542014916163731510310016477665017457902433900733041847648633111328723356158551214572974775471470622823514189897536991941562838837610095646627684471977652176456401849479890478199506857375032886087281201155053109945717802025867299872864965877294508708575191047466173162211210970395950779446594606001971894956281430059934917227143940463087334069685132980527252481753499771061031418245901791102322807415691000965640227155015805983566451969985954156580433070049529266230132058217056135229929585865777566220978835285268084736351545847231316850411878288934145998994331676281357836640431391688862685784851465960925455386107992824013794501024109094548958421324292990617093754084526791467811230063699941118428747885205742859531193388169498117397591344528907477391126089880236596740189729313601218299963531304884599600192371436868490785596861440894640725354933606766629775228862219243543034181613770121116101742002934652090092888537302474105604326466130740606906119630540559479785121420677167884921174202244633197877758693105652086934908590076738053255181459970521934140468232493044792361255590478715961455091723365648444622106830272065533491410981131139900640927895191183653483177203120687743181740803931943354235365154283677371397336202977248332766218280848295615553873321819768542077696943472740826276559633096490612505461962223735349588051612526211127228726879220428987580417864309027258824095528877523890892403232226696372746761665813654736532364452863413416862866316072383134169999860474150188115147106531394591615976801448542230178033694807192717854300512488255734567291321938218106220779661183173991813721732874813716814599685401172223209161197064401511701458327552514842311569206508308136874377007688463452615136654738245250924208847127299252727978576635712902947232806354102290717505129214039653965162238144836891329988309565324367943919927011436937657192281866165821050865528364285104066384279961539459721414821208956974252270568493512074008777639166502819487809256277478016561655625834423465756323443471552134550606142129343810376555877167269826080364593870906046988753778681363832965710908008422065487829545010538473500399319052977305942849090067412140385133301448230769026691542712247342414449800036668585796120058780187418056158006959416547975963274849860435759610887535425339670029800064736620259204396654893660601024086586419809040102925247776494724920417254421810329569508175472336099394441105187789652646862997975045388109655572104529119527247360300118909408229405115039408456070396626569567662962387647232188057693226193375948097549161694913437494837273864549829539772894844925191835169959172387636097935108733924630777068637241086569279015587129889147944691897246376144043158888362231207390544664264448112385154262053139929141272137979301188874836376878588871798415332207526748477214753176545611919088939367305338235798438527301834051297758307241136889347038803231834122541176239235065357250141764091147253710073006000656738939504334603395063228996610434142023399328465369432207869206391465480452280507554549731030347886002254782200145064301026629759838678474467820725889595660539330177791903731848554332992287543182858802127484320324021367059187115764363844976095319868168772285897811940516414529832444312511036583686399477028469167532271682817335923291984292529947484800835044696269750533360347884261756146690399076327008175420865080015169201504578708708499800198415627071252653121441132932264036161174948672807358363336875044343929874837513576096945185956313720071714657547128857848484891101793121897072833622486949592937633577673034418942807581046165841916598962083915437167941905117078415898236334515165565685023418032722332832620668929879385467886690634464257837527220318338899913666689535284228262165161455420982066364832615931588583702863554842188604837404603511122081023965685711854444751285510462831196592704649412887202819016052732431120265705725001306786957225032236790206248746284179569695404362370020614824248723053370020726824024441384410893571499822595441255063606174474645180239327857147651773367290598149985554031048526453973892892514245249906020182205800151911792469343443617249836085280789107733402816381530451886345255401673965010311855806276441492513834225321689396160953411580106361301987298051389155506290735006935111258740026360550624549223318020676141040486152551965154964226362552989141919033248548820139193301424125123583758011910914829412509988271845110042286799351386407580483691941120988299907003304324104336513684196877209292797223673702352123888160168317714321748339578578964697890003069987113667452896097148379895689097822812522868599772097470032552034995991700600360409822545081134529282192877763831024953001826425412198718736407560356729051266779068234124226033831745203505942366031328981579009774756000398881312004457336745175812245145462276841634971686913450821978940119111171487320307611329611472182639410241685360874658610850923524406878611943494136669466189917237154297091010861020926087545959577349451246965904414803397187087367561160657792002063130020516912423524691936596092802619319318270406095824535653357466065458663729475314215885652154207228207121912033974583262346054713635031807797660145853419144380995830304641513928622647006708017674806747276065585022061383253272714942012308068148946160444691752133846848752787736036143458808699968526324832536727587300750607820618358104222932174172034898030372035524538861527841005531238357654634557678437900590689710892520673299456334022020505772427032744447895942794223581752453269664354315953718570656448717191359087873580283250419350166152327312645155359271828966948804952482099100690412146109316965037028856595643105489529837686872816145392147084273664597599976633344149027535907301986954389186816079262983707726047282913796050799362346995492894228371772592020894796000544204926295446993531699107766019227494425435278989633866448586856338354189626094534497799495534055896853794515627459356282331656295485478698663104037642480255973426574650989705733529630862397424350715513462799204165178984615701706071102098056174631259209050638038140789177686093457429868630193531919696706431891687049376769425911548033439137220220523145630234396046982527195793328099519164508235364923146843556394724401232568918755332721627819899516269877461282316723317564806796833657494392778242497532710554975436162636717432445730230261055543347314209170217105818628802944437922489107935354196214744465891665323369081544441675947917804009408325413380837574384943818963163799973749093007779425789215337714905219942809180409560896383806310965427957069420793446995411162358620645379315863924019291975479850354629224497522972156463842843048834922395026659108168596812048700415716113177843209671140533409790551801390264394738979183845997279230643578916698773198601459119391214467987072329928110081264604151603225357954784134823086953923840260046468068749251811095191426185398249044838489846324494704245689937145403194928246974497939384145874897788489316632007456174973607597062714073318791798800101529995993513626066871386356759224807799225975572019865138759568418145004828251537494913764543001694834796963910099841691972404774461920657356330303910517465512058189940398228869021340508253128659069012255770956395188611876861927428039902303880045308797102718142287502605670045454237933938707030584572700860531508576441609112739326733215528216710427053029442607849201601236782038276356763321272706450727844019712890909617429767123775370178955466568790718384364409537582019593490508225529576924326810098474943303183553484532641596553907806024484913405014434117500637678911780315516140112177266479907611250861780336649420435104987844588065657200524380892485255608327007386270595788701096740985465997464449260373083983127372961022422361552745124980290298143233510073214239313463220025102103396885563481117326220899737064104902697320987880270980240900343058208600501846635311207179357521411773341709198878310621041460097587787925048157837370525870873295314237715854900657295974885699933882170944664595949530337724871095934187373624430772739216160502842914197905362509450838490182467408975232374691927343607419283889349270973593106872525235139608321973892245787469997406974143091505366296079405382484096101336761215768912911932629725048049179099561597581456665699036637193987526885462250397350017267289618301026265751995405152086635941050716624184725624610137369094277859164570870157843642206343203249458396851514633513113937985409369612455639147015647911228687921459281310681526588049463118478898464476877745798240712884411508159189170033064748468663503629332623685053732883087153808352398550184571575799213349532128087187221758707408686159731040275316815507396359485980200081650945021387239816777594508226801330132365575589775038843637546553128931094982817182905591251968703323890412093327467398314718498008265132972649407736901679798403446640664196298430683585650941529190880878881657685229527407692219927351279510352206215116740907803226656782883191059557648342462438122268166567670471806035523730790748449350481068658799229054683317803484961036939903998520948780099345322769277321064736680339462496591006994756715228249913411317424595237965400848050848521137421136933138144387781038337669497060196897334980297355367784889719339664162103219517672726346607229008604646030785448531994119171369813378324562574559325340749497676034683819489863623917032174293022020285763651606165459478628996336846476847604212665413137086805877651044910516268093551504455161408526102332857163676244195681430788353942524090856503655388333407699122262367162199351966867909158439837468401650841170727619341980672268850051016744816369852243548565611162388995144619148610206905936167529499940209223647648226129599047595323581079986419803827968102779818605383824110170943260225952942992783945498196318551064495838959694541470393381942035947240478026401078918059434959600169284065533224249902573783812778471309642575832623671975589333526842482803574003726032469073594893927197002919635547163200598190419006792467555511014576203310738009143167521559988941367114607138956001092443083065224486115821635149223182091862127322090885763556414528228317634239354461496997710731700759292237824759818735760649739934387952102344086495975737409707482953503127854643111235887940191907391236890040859837264016587350524575467738529219903597205036552448950069699196689499000825719498376636980290028760226806031385382507274778700384395605812523525194457841272191401134444836707252893704164085007741574823903724883569277674116960091910788483903934977055006244637887359173513375531999071669276892908069462853433725916618512797471247096043376824319278883585264080580863569654353866647201666269253023692010628481409840356127742508230339050968652666515511089910209920396265602379856393572246347161994811184229888433321236118716660049285075063121272364237575213389213224404506695909045325397323176634677955778824036584184288659504223039213481145749878521545700789840795101330348315127941992132284839933426254570928031971443798304322904539219379897391263006000228978789851160712013396374253059920414437444590325950785180492954930808020501105322820099650595078660468493882985830124480846156596702176511512946126413146724501627321695006273110666837262682051769944099275383765962542800489670769774194280776211549945201832877810550342583593725472006457440424521662644408083956256472591889958870368565175190863902038982615175067320339933012864526280761814603701161118941656912254347169625893860184444394534273530082748583269889084674322309335615225756630256923156511453677248573312238147304295790729929904912778749707884014878860236338997241270207724261442403332483736897382706447171258838678585606571303783070985659605305297498691698701500610168904048836295631415897032648319720782971895203221310007184479597248569657927795718076754669953452594229492622291106335513704272322217920294756700541078190765923880884322637032002153112755563433446599415896710268685649260008518994425672747023282851893433545776785279762726233696389265696800335733680872533002828902978613680587694506274047480167180247959240637313175789405131537918890976380313210254363623299236900790147534739301830874402306270687029006335657698251306710585472274951113166188514952427241705010531242896178962640790186467453622569794891766137097893616344724980804059290677511358835058154562014949175502495461347069813562791647014361472885431642211934662346092813435451746039467499746122590127558128717201215358718868897236979404142884019196786449936135795500933274221983366655823252141220657920914812430824030206068969835714037335042366856519141803333641845654823735060094483688900841826573241702919785007958918885554257317862524190957259013290041591052760353386243719135813482362891832148204933548053265613416866954297907004481713680237229258202312909107050644151900612693182527592719727979000557656421663287285579624110440245220549348391938212679908116260404913032893422639156053025666735071792103695827807784550529108542205059708308819425681119235247928986669374997962455285616814688043026721856454133309020371848673358557236466406930223883446966125097198786613441527736129957488088613056434661927197149594670138797242986364456206853828734804369221615509899715702184930717313479356657115958811202145625957470262847563866698106596836729927010532782037903735400409813262574153161174278447134539070148380304224715223486129080398499011379555592046725758926432475453805501782470644484433057590167208085019251991774012151002345984365500383206784760299229512803053349080778241338956969903281428380655648889588852998214925114322368087673396324315284581083272853122825241357810767577330690618941578573416991716565507702758898952298859749143876563047156234670676257920648489656173045702021229391677749782780469677147164220926933466289443800437160837232041505090286104226722386184216268803725810077071945654339081754790987917519509820603358054734091171759824528154895077458262339930872878084475071526974412612296183115801011621340322181730687239539154099488219167807849589120157127329590823785510899865337639575913078789718002380281466542950659277493050745280710808829617031727870500640526350949072909467238659336547564815127110487571114158885626969197768746920170742665370513378612375889072920351502197599616165135587781712925128324424645386870445040047472111853759237654560251354760440587910027073226814338636721855296833782564703396741200928491008009247009183122344521995245718235616170140081696561471573857849646329967608534132254496546694653928170944799526745262686845406257096476324536023612463566161185978072112714182214958570638813041466574545558964516772637410544652451827840246887489639605207053728581254968911834767432131409303958320071856828792931581852483971075318171475197860943029765721027668526935998135461928651047184904071044387609514777872416650683688331065446931185332099427838864283137472614823473754093550199937494891058541489309195819439427588929030573724811857192020135102131204650320429794549094510521301516250351060627559520288614687511995928919051931276428351120588081663704373055454397426582505610804367726074423669243099516017398291281384798629790673101450572761432261407314605480143285342702639432589037186235350851341504793706549563564566661031070119581704519519338540924865967708246372295399742716906772327404275984994837201954521425691022937843412581855558275010019391127040871957355429728739016273260935647198738701305684142815965741399460087791611452896888650032939543405540233838055206262152994378112582738937579763361342733256435536239849112964181805043383855963283424582703356146622540427075143772913731988103997664127331679039903425639339152156679696991555547792992515905023809931338916422208802056932186589216046126234311698723038598204146647660600731863833753997427320807299839601239381397557235280158067445283841448667604459919548223115762782569220672561306971467364012592273815000999318062270419488659131637899398146873419092896659332125369620430623350144436843204121325149195833246640210347683507132161558117669931591648644883689607152361409777998641733386778756971572807552503740104566769294261131197063400606809226626088913576147142512588469499585155003347399645979295471791611696975341413729707529964249521728726354412702693601087906252262910052509316420558943628383371369010273908778027843788932629200243327343123854840443608761760678776626730558133603655029963988491996082772505126608105395716524004058454275950538396359511174995941363272406842820317141167732921377160240360711762459409031299271749520358658392465996800341586535035527682697632741247149876465455159547448368870350376562197514341480582845371699136050943116862952810592644691074987222288228306927425477908766489740226947912418820516512180613334267593060097051112666136795237097675046117808950853283776641648714830794280991325695425504758773189149336872495081940820681572373390198218524229111735657214996660967801554548773370295207779960551743733905295043279303480948184992548531134382269552735107510760099643623843508313479329739259536771098786724854142488397411592576116289410899436145698972681352245934412432419736472170007569527479954607958664757411563060781373716939926827749217544471892208931679762806910661434477603520260253567162823337259077755962866317784489071104110977728182542514733379566620770102963162036412944387289351286132714683134783052659280708581716858340022900282996115096906991787726260904835320494418605542397884981399411626619025436550844600126966095611153717128127544967242221233433951814868253457655223392376333286144876427303318308528853013905615457752947031495930078279828303219075136433847057137665746092871972032034544498203534485755613102512851626881157866322757084853152220425959174450969657302249041775995602884435852637076594050617196631952220287438178864425605908017661564846397467779818327450487256353848500420587434160407401033299066076129730419271228085545359361596195614802687738868777730809603506013593823729366451458275626132588545636648813803225285894892138138886152878386959569563430927730572305052577408195708636892333130309341417121492280491890462151140685621271800730096171205484812444772746267610272315208832994836354088497327323427184800159223004687793646234164969105352667383818391543227942236638241158188335194548783915752992480820359545571589708530151527199335444433378883130127381144699608447450959815473609648199165032112923013658909612982417052224121604898299247821751018033978210652920088321226089626271323017944192398390580573165621056969143053916867280302118628040010953970973182607835763483016042915743793307038930576851679502545680432361505797153518156153256225530863731265650884488397345048644479164725991159554032016575443377116633831724663550411947934954684945925010779989701456697735858481746230198166184550897531683127436113894398887806365114479225859090210265492315971721223422510454598409063014121378958059038948199485049296018843924938135397674671842406208459648831451333428853262769860665945256113649218920456279060461945306707399324129756147216503013283404638976034721577028150391592493017031682733387294941142305497331596321273498267587312082854028840406131816340660646394128763327932562031443131270344567344615978506387358663184031677704259673048852647843536858622443151324575693350508274865959116818119401458174435305871601957155075588294008680697935444451670878444432317875233249006287349384936224390631776825376663654953098942718219844566884991215660811713919020608895194116543240987776137075779865101276756620550158412786543726422049344292222077271842945471746798857127756205090379359205832168384396945583085929105948377590525984661869392844062980328671939579823633257764792267828719647380593444107983025681438547947738159466478248449622207904919313437458154936810005791613147711569400591432811283112135778033939767710418159257156092492796532059351415388933652674990040592601155541755892698043522196242964876933960559667380346658226604008436270272496655686493814211760414057481176985921825245402602165765063828253632053511815264925270066609846697256464185216020389617295125461437174677222129000063498420649166722192932175058263055675338875969106790557551628106698212544578768688463074947843299109853929904337780310260065376190160503093550199761827752538634527690961824786290462693314063368189498099864265265223943419984123083265172426555055756955879233388026838006482139823273655432562719143209193742536016862028818994442653565862047583744652876788714827240159971270027114586743488567602851354239498104765493609007556627414812627077455321940653087236598845968609321437288578845450034365077595390849922070052186518956100929467891155500776232761209615507377371338126373294718219504202715096372241426550691850355214393065288259491795059398252586439306113640358556702878379364490797732364349595356481880194681547197728483384673617992035361076363355770599691002547842759541195107117671988041012739081710883992823422184474860745279181198392923540217449826293565874618471595142796431232776149503398315835160379786580190286072325159455106242320392270810818720344906686302484916527113522643302596731518363296263994941094818665042486987536914799383453196799932295945669328739580484650618113006165010039245379292173920348904347297898311367821895840720518494291409451047491100840929058747820377719536960345028521861688844498689743002832269032716124841288422658701542104875929354462687995344314891907712358899520752114791936205908307453472919563694841512015845974926882522982720097585562089655768186726786416968233030175056677526857752507296054095589331647147420532043670696321376224345190539945042220613234201916058457467681149814842736601107403848665377481628066553039609716013239087013296723154686565432242664498288807269111252747558643625213967689082237514380310775838934488141561703584243918504371273785157722212523413495854465443117879975271330571678331536149582414461416184730449498494006787124591481653804177363137606824753763032573356798575265617008327021164206707834971408173194562739122259633752225353432460128857896219518615947742484321722592239161078056186941771465984540025837651567702882346501812679244171821371348485829157907612606258271593821555330518180551251318945593759910989484621185629712216507862179452301682174653589657091766961922570034000505850684209486437018372572027064686265270010314699953230547108851724656294984581213866589387381960610425425976298916257382365339218320797231667611780073554834607887901318870348637101973388474113408159006688443503049024377682488752775575238610587925680281839366834079991652103059408725415462348826475330754760182154538264275796428303929898554591981014091893831602324024078288323589622997732409197714555179676579348987634955158276929855677553174232533866610276581559388645213972182449671551959638076566998211228652896623731304307799493416288950975983415993095497432775877633144641879833251880729409074474148542143607026810188096137301536345559448012880716863630329327024688854725949512822419430810755057009135663162453584668250977539342157020574161419690051795906891253913575469922044845614001684922684423234975087508484234608286408546054677536965745455275507483824809839850993155655886315384043563874398127503421243973999460296224925253444081571545714383828934878209364978119343045459961844394963683543128885319238660477468636985573491943510498897713325505204450778547358073657736272621694207771214798582221770872184213460683331149360005465177508236556476000971417548871819960473562649578707183040138596364206864293749878495519800643781687670739652110828366168785428541820144295389243663225884491087370100754567242198350177308466722750693722736992654031226569382112055646525025892716421848326927488591045836003098156104297858606008195935937316965017004377978201055307332380023987301046366171616661432039162816270603703773279029951790560973412329959144068711835697525770449460106684136556411163277901036512833540347293469896335007801019709115426409218863373353212584580452613458186092780423532256262635547438807361854862423582444397761891029104943576399152239289334234406046460414682499820829389882064621812068370184621548171118290821879134354956967460106967698283611456606139695948224205884897735251148049895154181819477959582859801079846368449851426125591668856533479351740272504371662478094069318362233695221579260895071388131168734536454810166356991657198402500907468318563471500813384873263410487226440137800878915807678883957746043663163817870928511948329440316588631249503456997366370986435507208322078502807015202058514354460520233568332469511245343581427609477037761512999486481482159027194524635055774745643918475963219998633838928107980447734536920735207800318265302769196854780181148081333937563448019588097248022362148757948250480031477213675880749594613964907346324509444276535669624207210457218774871929646836344036850845596040358041035499792878612933982056692954074586089739486845839215451682563930224240841226436639420421957024288566636963787231951223020337166286574429685356759895580025677176696929617815714907855973101557989627143165382392779144803289920526706082651440116823290812000558234854979193542436559809435321516219392762430038558738672419369854963552751100542031387987341565404603708959703804639084359889163407189484097059238670561429272846087811743805772028174504037859703673023694835884945249863865273772480333578596158211512558850867457761966457903403941933106277811915611781658543504698522350626491866984817857683538224260536989782945672628166157231279742354349178237089608168152733215940376972104683776397849506499222917535012765211343795453964478243173353219579318507415814288671767959947583133109296245444480501234676423220595105812487371659701519112772802979371185452584604071215774489443763747620377331769461546294813300634215527283864555602978166326168671567757122086421442508374180487910394779118751933585334602502347493916956917937473320704064351973548273687486667106990555675689895108641493562111296149377392683264614246086944825779773222965450450730576761805379665684445410231392397452198131388606280224403173910415989470760873219458852620495006983674000632708202799990951291493851042063595052417544305389048681218953113073133743223849091437914553155412744166836539303388609856857962332154104045346015542075444162212499977934143713655863152670327838517209997141881085219153029099038354447560444521469023521901312673563684839294207439895033795317840935792881177584987524315459264492474520472478522342196268841598727118790999412536170185852725333951887699766072394127595804709002876837131211882455320917799749287009899250174361356166825127106795833363458000810293196729594945994964785654734036432868013752830425476130704776379911446532986383021700649366483343287574234679312865167592749630588875610102978992312783052668964777821530363233301905971454161267106240139274933848000630364645515571281972058727851271167214686745801190088663084642294328554873985163025986229888130692826168240887704425854899038323231378102846295749120637706181523564600427000360514527598684791072567961809496192053889195740823094842887274646943153108651489818195292582585937331715947311996341686317030709172126145719802371704041120312104666564407670308921827532141853726547249924098605861263606689469940617890114840923076326247756582215883988951142799364960828895579053067976922645157909087036070845548952918120719161920296548783497287165750279665699220313424645782463054969798143587404904928411621109171055398503433094807515077255101313834160974549437188478053443120179949404914208178762248644582936851070412458165404759511228013238428537408336946239539874849648071003841775208832104636221094379261359954904672759102428140124089549834767027417164676863014684733822626094194366847671001414199205500280026271286490218351256491819647957926748499250728219500660682151407780303902802288906071991407686715636012340259398202339748081171673158925120229217385568512675396417604414150380348631331291362926004859309207281438589318591946933623592702825796121865774941969402013800201916119429733040348051059932766136103191177873664581187445698396186869927244627859814545295018151731302942474440284719181264108154960747439210804909018152771640516721092803983020418347591351876967804470100888226694145146193854628417574836212739836323239486703967061091242230053551660966921221122975468174517974049873703182380855150533730481633799677066069953684789412196429867085907548652461353840946983454888335615209009102959317620898938842511782941118339632160714801378910569175323097187252126549746520431760175781334487232821131318827220046352664076538728842317867469369731404570512962488154604300137964413178247821625055791315632282041012521646497753924059747798536184913883694803407622089919263523516318772409903727965344868792607225031848821682185317911924842819850354632358890977694797881068321350994319590799946882875216699111459440261348764718220828636316222408877643871420036220241380805320221132083595402395259507845269398553218655141260279884471484445710256678215761326154800863072313389752927032863438573942816453397178891354636508297712263569368191913748514758204562752264678092307958567733310839784820977808828412680957462499605243728146499297152412274305897541860141447452083666514129288290477406698886147045421851517089431620075146192429319691582888694667654746836535469028862907839832805686392785774037983338874174005175595524000660469415364756496895130156492997465391113683633114255623716141816212036670336994781190661295816006402771711047598340936575067245471087325844353159356602748516290395800146204458779042972887430495857269240681867517991330079994450231633394691490914986449149833915994620766822671728742698841492858293334648390291893095749245429733221642369308075198598880812246762817945435046057048870714406549926428026737977469402007269826602744722216011316658734268451537368635560750782872593489755115801768565717094091342902035195780333779695385058311245435483164265352981025589567612551880668727585443420023000801760206222066505200824356588711028264424295645447756444608313072597730498522095120317165935913584965478590395505023827717098125855120044151370874891467201575604760648903711272037163110546328919170476868986016129671228698035812225525637032820258389083746934683397112490452043734058380660113249932587360307400471274771819132266671209647148908892872451238418657198296526537507861735196808104481402809968974743341405973212884902953308488875717051039856939464067012024421893769096274208887983495241166458926852440640423216110016165594125219645243666658411844713964662271467909276007104098472080288571993060154850293700778385859951046423228343974652287284887442324926701762697463537019633950306526024031699994058974204324564021376035658777631490262511443404503895340553414103695004172905513786519054126974849771559531972800850211462348521759071616561270781201531844111018690645820147808483851487892927493471077710596753909037363446519742007508099331789658764071241681706993957833689160398917721389797808438862549591804448395928810587404759643516344224924153465323097288753858262217506597214450686609702308551135825885071915556892714805065659966218350125681688889967355460771502584696401055439949154591514687550551236184040824222525716708548080044257870446256904875935670202810106843472515408588187469909948194995301347920568296839936890559705822323603655611627707311819771688856391453154743530490987369248174512983326243183692654775759665846724989867897286036983171063426597973028117718284021382142292611168612147233966570181818231790302442768138437496707849817883531532715082641045516270801620490423011086307066567828051413057605263274542349189904977380197051645548643951925001517242575264328891983967382577674799179661085014723473713864244537162681722038593328449577670183207356879636893457617641442520733896642554138054308837455311841509568466961294479020276801015008162834255234121226796073302477878704153034018031938556067766710391008829919226834331544846100145592134163541398112669101408744152108265747126985361808514791290887417351211096496979558352347472943876007161012339751145045731490807103150274235328090965833404047666899778554001694808969043247268862324667832616393701703343554633501585153354494162320687816719178584066563353612735654313465264469931424167859414451034725148029157031096463145390179770059332304299897122420236276186997803152844950995383269027964945214899527155188034928282850973508925379265404049758953866990472321976156564526892488962247397731410743446614630983998934755301792957420724058588425315231360702381981728381805483521991336936278033775145803348460746792376007522496907259335715135699732341937056358849725777729226318533791131040164693465060672776807380214798041341184114182484477497371747120237665668367341302174012070851756874536172716961633335266391881536517920486503313337189858792439638475651766873842431279076320338669659207533788373801825311989845882949913742429423711871013362047921305440307768260978227387787929393849553075254607339946110971098530912968057295913155823925326805270734476904262453358453219802755610419118197683113597907956315202802649082482963007418540371616280522366295952541254973288536436859309489956007040122124081602821670265656813111522117062330361759457237987840597488799663023885872839161545260691736174924062955425564881295025627991339661017577459210843606847608105186159802795902872330021057169512265520992818776737040330802551515259567761828271115776197871007035190168773806114115855649608693409136655118074046144392866432909710498881683672410298614093804541229306983361102190052693142608687959956948470205735203986975504218813739086027603659497392793296130063004354487627132094537164070693029942457244929933322745136545213528799250235955127635866325677586483854252087399815711297015967373494756805007103182735472391741907051326223111196690242497312034822212035070777917054942585114416381197380145851258495611788683410227721378797215994963796561759203887062203512192681196752534704166443742033763643583464983702474027348898287602048471465756353098991662124617823959175375813055769026022190075249429072326271189704728818054897642331010758708183124798363219473681912724159880493191043001452748523309232089273321189947866537782196168787333971363198074710526621638414605743302790906212698335367535023694611921175136641342112558297069515952896934270248763303198709381951302361524156657695472341905270106950569105876188174811662706334263338974952237646457150289402352403706077423550624545267560111033463879032103791015233837641651842466406990219947131290574365919575565046877404537389808449545381705551556788290518977995960885581888987585339663270357971369155341270569328068829558867068264054026448512746500604515173824961588892706252259454192990892468539322273266897251454600454889881427065087195936567931324846379789298760934994101400863170598187639523352470475890547284496126336344560116616750305652693676376751342022300109981093262748527674268841743107384710130011619186246269322525273024750797957504828050419458468433616316605521795628139601106968543638324394426837390778304455465977560498720860868598613182555604696763457628655980467201664747940865227410527326818242828558574638844024880231407013307257957130886276078291616710613462055425139455082056123999759930097914504760804844752805697961671901444709261629940341259184662553467014955067969966003869396726500844504039486820551585628825786923322999032678456275632752850307245829453006718050585497623593917362185027848041579701626583224906680305553869244300384498903608305157639056319904686914400447281545114476757552564796911823667911103207700498272989431478503129263311142358163108655256702386387394384694830569043433633874145365484219724333608777656260311593260587721773708999953493250859471356303425826846431020202856436829227463715867532655059160591980516037715519848340817890761688645812828214988441057990265733819311164486642227946269833928018399701632811219791083313669710635216184933800430441116469077886082712157161603389360509892655889333021670772479250406442827429430081534261375639762908925391596447474622408019854523451204747807565121765943108171789249127568718423021885518018930206847188874099526678006688724310073359484503224512829272510654337914340177494785182682039744041916583665787071618424849817070367309707935526544851780283594737175758699100572754462919412269198852318368514925241415980636876090759525398751176937669051970795358168818639433027487023644794279225578960291842256692900190361246331253230519245274333257269207712827815634894484010950944864355305877816614902086504322661448807811692415813900999731289070006872899238656008193875834335868360663562197592840476611481517826486425447604891287467073105801725131647134274984321709324699693619254894146016002325074080088850029161764949164160772100875304042123518287174290111739435250270257496259471083678016986882646576679616473974831319319148672986575699371014740412036607569575220110048499872580676896087828697061329857034743704821422548130218463825079974481258361570276298386190600811674284770541424367447536154258626128646931776807329922473900195745521328252024266603197850488547534987583649177076089752906610676476650994779054105181852762197912977922590269663060223745482822311543126056809185140602145212350921053750247495689920410213354224343219912098303082540693162810184406577037122062102515600159402106193310037329380837035548248786958499465717030957246350185288273035897902694647793538705756073952136890560497583841102149050291982511101241453937955608813547117400517033010212137116557303077585902435067963682332981957389475546860355015202584687924008825760082859139962533959753893118194483966385341803968375827319923425064625347654499611663670947460029688668201222554230856084766404845707283590480723623848210578622435617163052104935611323553890982898967238531156783668348067968583485986414055291980000119646527820945301081881020826727621279304174534692766444377032656062483578928961490065516433841368312056355639615188026807890400710600751337367713732124906600449102060726146840429487842484380455212715319944416409450668163623053421573187946515197611449664482229659536604364160896510300986397016589319527724455907228511551422751793447854849375392540968607973172640289159633612024848576164698404043134089055777442357274838882686631401166705177570956182924076242224894298192455742095082889705872342449034820541530727341904539864769707012276720991062848083489721185895779892790558695458760484457975723825322673211631810516706900467790721277108088715857415645211335194186342001285587857244842457044339796549317402082020000491341693072965625274774640554303249149192430843059509824055593510643675073740713834040584524361746049816106003733812096804247940758425069351669752498804442469175917429724258865373490550869618221066283594444947208737468073828620127132314118211261168900296658635758370998513671200225782034970809106318331253886682764619572993294280702024762122837241964880621474885119267592258630627266071654609918993865326069435879554938189006247715373646399444512580484928282572191405382462142360698302117310351129979192106073836959292293438645742492397580868639810019353748508542483208132298135617215535308075597658518709583443159156977603644123680391766722163166094378368349054857251853354563676449735990871345473127448238770350449014975976958282385961540039525228513949738032040485868884689390038332575743272119339134322363070006133434640373186075078879485952481478805953288256243991554602518585603455301123379847763780589397784932463456629434488665796431841516446770980701772632409532743945880628854864646034298523167024092473094627190985887199542069693649256866896624080022665594793236752044196386122152079644609342613643431592858226346575677313930047497972747250466869001531209512711238252084253154778880517594151539537749009333368757746227686824623048164483643053130437816538339016385079988299234936606593822017899955212569955537766130285382123644369716571783196869832248795567797011959931477649959895099201049042438704165960910315122664501189020195469439797824342437441956860606641047257785382181474027642875329702392579727427344851738631759973096642016838686837647992955975339957927295332209339978567711564906164414462603703992994195341746900242825832828131766677131235329467604932390238944807101255072964317280614531042919596902505831072987744034544163688449072399014700645023715956416963207323768078189502251422254700178970667750703475896729813716700765790424787338723074032324346822365969371808697065997489311056676205614659912772730796155719624372400181497428711600195760443251763139591356079679925465312425291696083864317851924098153019157074608023957690812240637875340209790070706955492141896422698394712058489017945809210556599236648820756542690411001688793406041000941397465620798170026392298106012947394069383337150433183302148133294918111132322853429539581095715415925665819926944881456783596341653811449401737714306187626585380474484660619664294947393945095238806714235217416818281242381287863799091815332398165249697695391545064231124761427579667697540158577581343029075975019011952947765815749108454900423057689071173736779684550787367200515275303191721632519927829185321559830323946617625535677833942146301594203545426071060808481271270122021913487160382410343957703113775066244980515750881129787419110942818136129601798263315460730084504439155932695226956733828770378200614690531276292791776978381403694578340911495488587164689807221115752766219733240632008461303503696789188688378135325708574624009156485584491064093870568402336446096303838236600310805849223219242593514532231104007568723153367629535419068718673410192513358375640646340078950483651960965813003923691285622727162170663106947469426892359182465236518517099779321149744565621865423121737226040494976751666709461074005416576687740338052183135642813757506365026530615822736321589159981415460803680373585978907796732736964316552656749801659481876280146348606415673638600322005201626517644499490620245361569731640187534276850046771336748167789710433351493096271388199191341741368727002404074236138626552197295100481570828340509725473404565905404073151319356563483693891180756079828740150834563319817260153409776147246417138106753605453691913333686769877796485411534734255262684684208317546790275451853823066263316864340662968965812351399891771651499831404338686452635628614744758393034833595650836778454443234558271980060291402024379202437495536109609375554846510643537154543529121207890851200031562531996346885583722421660900958994773403383162558855386736136519958873765382637955224715560172021199470405736554657716118103736088917797530896764991723798816062015787590211720709174374018416517992594727727324819579720603532908319206652806629407353043346644229347796103642968313775016723630595563827673419705599969201324179975483872042223826198533148084833712903807116230264979591681781197285156181866796538373833700763713240529924321374489493989552560593975750718469430843900009385358722293371397161293908727507571787975846728463995479929640829864683136893849032309609746797291745908018295618809007147314886251735052884517130999222887943257134956247534911196000222065089698565370153324001396813384348233749412405751084604414898628993448318101275619970069726171615351662319861647931319139520971159550259328909901378465527675746916482344620322677144295698789936115749122098553469738591068700067935620200671696793198655875875031716560345024438459855671363462131954382316074320476226381200362241896989521846253482058073759842750832210463112155899918855666303028986480612116460998273990723425969359946262524079158321637893753864221978103143797031046917934322991884225578261605654714808863161178080795292251388338694689620379992860033911600286655825383611395899773781244841426405123909767438067909949405900781455531633898869535057870799909172327656779043983099569423779361674522191486972203124474221167436705941327633325912361521735514952679634527042722832778025543784775343080065111135151692614985637355857147639761902070512334980396654489696298600274590184905771469512727450564577873352227473573636932880829556574500510290283167822280340287506462652157751884627513662521199126292983047243147716682238864513158007038824435651910009015082543125994958623728664320208152891350082012280286279942533150376351424476379766903289964116484882555118323924533602968881263343950512206519600119646115927729355245292374794724370619393856906999546257324400565744405071965292785416427340170498127913400149850067667865312983103605528418106765876239818422820828835917979448863436910371935862377017700085886171650359181658662539040871517767527170903891858695691477410466463538031434344978094023091125600980690554744796051755005681255244146937420901268776471493793867380218126936389134553638425207908295423504730684793853274262810273558864053656400839730435826254953576644593707027797036019881625063487353349557634967533749746995920017343844838441113159904371337303883053005564443961707861411441671476221025180151999669966126448741038875396549586629518704123324829056075123307776699110368454123471049090372817319320706336348171631935421905009400755438095642954640177569534752685020219200045658323240558652841173617528145731186756627265667241150560664723942107675658098766811643187717469668317738941570877051348432671131999387614407639823578243060533666431646805333519391258702888056657551763481017668941092922039234781195676028801520321308139413422056056735785294792728325521862668841068633207078460996357331232583504562093688035351647483869837063146849524904467073695296963611676637170670462529919979204493085558100599394438633840129507011546787183356635909783181999308422627873382934217246259975071760372285914835116804341458463964984361342797312948144785237926998317760685916384412150109486722126766366642430382436267751130638684610719900904666505243889106963062558203900241819342529995204650016389330927870543063125209973521442105192013706133556608203579145876784759342016819381864705157919282836856168178031909964525766647605813968930124362699595694071723242006534611926790670057479840624317967129262558196602713214143303926849528371889083572687828884214741797500647755899110207106137963492544933680761493441942815374542024804081980076972749490532639783778192613125461842568766450230118161217346062140466566031765630004116059251515443270821010009006685429947484071905353359140929545792722387367190729768345784100354241857873846123769913481150004236746161152258862545106405865993134453464617914308054376292014135434936594506710994344485482558242726800229964500692643495411012943980739008626330708515032817889159821128471893136727133438275894243571172909618973071217519989618036982036455568678453214856733771067658416254012785228923918155492036113013987609715311620899049670807123114296167688068114217223640610629396555941806728993159467531047350653559805424702978830302540889037329295997763453005498912625897966605728373950855001172605085428462448502762319399773711432228969847486172716658985405822538555151891296775394108222673010430135136560321792751728614895878051468282588191030797305780930357483553397435822438523389062982191033742443511099882670714217204198761794853515853711610059370259648054337216657405828950733763285410706323587700861019499772381552139891757235821655905455068878459204608981370701499896687203449219008049771760916351462310299685717696379739380522252970880886388456988195486730997453535385839254765206866189060925811413362165075703588040680440760894647680807449937526140004351413193670877698440556929320737776309298119731493663056800606734996021928431637526534100683051472564253629688243160349737362734059415520986139309826433495040837107814794489882497118337802485050629510015962206310001899958543157023633693865077046101314898589031405641364001696102074060506778172305732479884027553214356033865142416746403916631351376776150884746867684846323099178979526758780078904966818409605486244311953609453795434628905722796774651379532804918075841264185563981739196668800088772384574553141891042799491472277600910332264531574712150461592479786514792854389622411320602566476527317942850929095123619831209519446274033192307059069750533763898896232579774616830789551818106398642330815230081553702149362686984039998714811830405527655921492495471512911515608292441457398033684065173817454812140302561042704949716709906155746636178663408349318203937702829158048694588306895372091140814015826994060898017296887352958555693219142856854961170370564658640977679739709107966241687960705094081282586616437741096566514635153894021743861960700066635825479232513755268966593277512932436923848897967721756232747374735800393407904621824497011705250474100488483638476554204289088115869545450394476701810103820800831920959000446437140207705127287207049280458897152916731742736205492217193292767425387255709909154642454337141164474517508290021409298781530871646987290279698489742768767523230886898617540582191674795674693311909027977029280604492043470820657912171763137172712087211411704911701354874015506690355589383267772913741218482918563649701007930269109042723443894857102745681301255060872954448120984424178324711845970350778770297005663938412956120352339211281946296464985849598357221471533602009242394831584659078268986040163634056433704410358587751624324585087048138639160564437105017432097354847016724573149754006630761309797645041007765235683344900187911452089903293128068425624202278808988492588707036366589529284769161321945846145655893368910712139761945556241723491558494713897783465775944571176046467029103283846158683055679790587707325156987982673928013749344302481551956370365145823544174570828902752595398845189779195552225341542117365905345199521509467574796602699965787991133144516201762299352325927994787955829242167655601270492357328399287522061309023151130008862892494568464823690819064262378164180227052719215523695788523277367490490647376942172436478593834324780482794699915598702066089313153883528485119833628690902823745526592391782607316420496222647772841219369498851583024094988528607103209611815426339267389454194215333055271553176024317065232826734461398638912400582071704474725682598283037174108028866784373496795009928646739444562372439456208166491742042862319780543103651944917019621996967145743420482933277680159634358886151225348026879492237741514846254958656291874782292277778705065328949623461545657632067720576598181271183509553129792481443193854480535317679277174549885328767207472391417256646595020548478989033935068853864042735624026178318418515305202224422203482545475351319135800425222849489467751570391252553811950740830269328578897580564522966027490311227559196261720613362150981813693230324640852383832802203333915658714797823317262881888267044211458471087227545281218715988457386118044479434187261209587046800056038561213958714016103382772919799765295806993988866459741859579242138113276493669231869262835307307951968751022372584271253653599459965486372596288068179037263078621101091361671008860476158270234906235605336242008760014092444340085692982230311285273717710068414954843667267591638688027400523924836842950260707023835264682121678545092372993533622993807334617531671421439758310884855986252794089216364205892132674182068203052891848842885674354988292826259716086185892984660531376600599952350922913410551503988822188582184589839735720460425477127811069815896455103340819083303637203704516121822002184439090524803776359554605677505925904136102460193599850125707904930010089347506836074906319102899667323804377729163007711050198015853630090938210184777696984912551124969160380229403190625873672986038048497447777080860779127541416546124080287560449632277311695385377197359128908753527497947006635410095149991685281750768491170857760380000943340176022092775043434196855878436617088010255411946536913022409247743208808260154912147232701064655593810266922362141528460947081739411907034501269376082448958623204017157218395006733938466142947694612977407938511093379165065751399916987751375008133247288104203294280304712226067506677514372440939327273620884667575550098642387157820956813637219685912258926326905446879931004088885644400744944291777278456626167674653921543393875813800077079614386230712323316341557003796819121985191294501652092419193307881259101768810054273621799886142031729573747999957903468190094601747826992788924585367731822308723682552913378150027907921224872344580234757528750644361016029063336465031390865667506431916756157480526604266402170583468404939632863510402556786552476780113546776274435549672934610182706456547751605000448322061936677956360828848255314265588753352368512607396290078703126586475303764422850872042645982057922941874662390454506591992716847630647616739551167162084949640478929940828301657577111665565275608078476537082684017852624267949790849260162188482151469023023458523245338985895521699146519300164572367392910011719581939321139182772601790379928369845872637619784797595891162785739419216294711118365443599808451520947104187464597523336186379604400841375644933836849622249897422034432595539549797466255519587151816546575773641496785382492617922155293921084104464059323121834332422525674275821463119590894448823100406475382059163236071977701249507196817965184371434631158202831609714467954731884639075675947148331777032276833637577488671519661395238109660416240216506724605434692323350303454512311804203382276503288291159757372465019795879131222456621677306007491356426539280041432836965903235707291092744259445301787366699112024627273419482847056193556594247582825826025767922537100006808055572439721489154119944554829659392386210226591904433010321793923032527718011544902489622284618767061457080167633154724851575384519212864611591332177814435161505770366130876784676122446327343200297755298132881075296760443420959677353145117250507383088911885431494294690367147324014610867413325913078447868031616644977216682933278245948485865860435062434863639293466148480528641409308276255686471193881660434080204921384523948627081265539938838612402877316617925714228380800861364298380217950499452385345499036061155075699075304222608710319232244590312370513522061200161998296681679274688737886108832059697367244820326023386141401576847873499121244950475793148398338913830747529519220653395944284545393167633268771119024450129053496843122388183604606896182862644156970868496388361428952218845671416269346869989261901880962524886560766701799220605616115132456680078763921403087944689608055366546951373861275502244842031708987376345352999896246539591137019718506679732631748132639777720281287559340315840536185088806410383126869622540478461975109726616267782211154485353070060979567036158190545952869369666197204607999568361341002048567498575055828539042244478610468075051774093259977275080231012493552072481020110734018574665009547179473571875698484775537701610791334349407908764903782806568728085344994850003352180583494534830525624775368639041499451285450837821149288446608880216045229229044789371129381607470578946742271122308327131361595531068507637452415809788067242627159347523049560927936849371815416626404964451850379171815282970154306259785925103272982125606598805942565516237734454112828363397359601928585948773286421905078433842794216173041898057342962541988369535638737376698367889519128234390353264396640541781975790669632469654599556947308037543032876313032041087347902564751159437628698760698017174837978984265862021386832815864083648655569660096074896656575839650241253143955551440622865577360173942218246256679165337971005630456980308477494355504973853009607889040069647509323029755773777216099136749570889261014244312009823912633225940316062580594146856245226435735689503395280559315636303387874477803376055044884046027689976926633533789360935917026385009242754226276943693070487987450631353524967646240257789986457472874303098759782335465896025051784697385212736705123891784866146474662339012943856391957361429594773032115293645895503542340796705888939569660369018676270980015987067465888192273245515536556218112877578058979504638600466426983348437970246731870400725195081765958890454039666935417353577264603431566522491829052671257675439450086701624750219413693149968825272235232384210058451645460588100545254148542315859376850756672187959861797379905879652609432499137158234018599526404113689127950361258915409689390002474541838869222829317166456055553725493560712289406319542271206733539755310654987744962882009989980494821432096750434687081946315672173186823536316331030262895899816367293891718361534060459175258688575402912124114604758058733585694169968221156857267012732374166268493412279424824471212908729334096486385865673155028671178224857401957789758252131595647657101544506622019725397099621013412091414673050077064405797293376030780379410636589905499758306680149452660361546589716272838768830611898341452515471629926835049152832081974081952212164615293209766040417096589448539915381212687806741506114727003042017635297656106437122617874133979321974997218554942176030073063881306648177546158855220917946086253095787938892766886965405233873797127275531152441077258118733266660490050195303911159069127017851096888120227408712759796480979935062998215400985792075817150187559723076567132364498602289374934274886329125397668992770442067919035064480918159687577983093500728557787175904501166143844409259313733295855608378667270231427375734350571465215850122560433639072481477105754714876415463834337944942436781431795664646744910706391661754323573725119238685517264227336337399381146592743785468511575825892976929288203597800090265525942518322798500968800244184725400720768050457810253834413735789231300159410968258683581487769123830393822039884051518982486888850136120085021721219855847890441153260275340535388665066678466397433305253091264974595569310820545564579341404698343509481532820139334296026153397532410660982222897889795320431093641213782985454129947921296731137708911475686333899191898658266442635953591737384556912207112008660740330155329247623026231309530889599746717944510498195377056535385957559070693199555826854486652253772650261982373071928094644401179830725755469695694946584641836637314810338658843173183962055980369567933713801071568464071683378381176885509827717581319865368699898801158795324314848271179397020719820029178949814059266879286667251111864016342499065719818484367386246109515975695983945362317406150196279250905319365786819808964012712697149000657136362065687325099338717082030783072225803622017637154943820443370470473570113211835307314932154814743208311440103146463838915515648623581756832949563193941821562643231147346950952409498374442149891136124525284334225069359012134149325870523053995017037503748698239814458483977969246028557517686700165463051848598083525647438746857250400899320861809659152328930125203072478162010139548225486114228802973714766197392920235916481505251089692699568745709354222264254886238974465402641921600105353747529717107065410277494829076365736825541618556173484056050930979121146469585316663476132442588173473091121782602380418919554601984471798369483971371243752773762321573572439653853275564337884592442571922580282034242342562252839834839188716565217398875668496313819166799071713275286251523323573265315338041933713465169095095196654044553317220020494478829567980031855525042689648325729213002007130820097467382625219400546128998002568047384608043873411670782219837614448107399727103253807062076686921817133524205857903770814349579924883205572756004515199188459508028995845210369105997700359172831277798877467192673934123505894931346682404866459548084722832334648836169652172998711074958360447191473250859178359415175286956210009701481557576084343383059628576113537931971581720772248229336680871536151234361827208811702359874626372282034873848239214724896462584474908610917326907975699771081471264427031526156890741311141645094568305321234902245924400971640111544556612222959557449878452368983484978848180324185965179429973558608110170551197243322120302844061726448134771429308679616724079126557471471194600522102115469093322486270420820713610498246515170358907697247038926119166306853225900865668536366959426959031293744560221825485500293479180704213099540529248726051352346222565240313442507727016664294562151161161952140308468613002838049056113228533443453436265763336931607849260019886989691328069511813437032706915840555646110812396978045714573065450870311066025561502593800252552436291600109776351199900700471365044277326730513633839290434819097726307929474606064712638411638641718748418421073830068382812755370988741657567375549091011487540721373170982463751759491603399632616144415795504072395047294540215962158978340818243091171418749286407783468221732109160447626153394396530948033692418121034887234579310980758789467253409198200202849332200319446386123359658070769831262617505621414652322028837610977950262099285103500633955020491951357660046661316698515381920480618578354058244299777077671674151359227303359650828627322116499109149524276584848059725109954360568717229472092534705972837824980535339497023901448256893709976914371437211398525847627985488733807042828977047711811740059338040093665779894684657128815135765664227865519498627803710433307355744207814045474653670506773258319219631563884187794784900130733389730234677783143544618014636072459569815870730455630800249739071772869786947090543085192362344986000871822438889595534673816225267529192837150545335423341028209827424796370913589049276470591708395255222250878630930051172686444732922234395880625290305903081325956533587420891910696883304371778527918984081450547018646300377572786795904031094472076640272528378909924026100457103872158793817436674765514122257143417418473632298029267965141331653463716490196283780233516254612590742655176275436082611229670795094599982005302457954251427863269328828176460232408334574710261125384654986946678575754046742440080831873092673401904150698611461034559775772817387044039754352427139999957073328678340065796513333002655437499682692980446097969348501525518268223791666837015337491884009972404242373087602274866561882272409110540286769667382010076916983661837970421580419331197014804519409835731100724193620429088056139780472651231980894138844362260632092841749962822546879405566413333288164226734206602134733424945413893544390266424334727632126073618174814902302522051384499923259907278933067152721373734404816355288884622398029199107590323901154827906794286132263978245248487038144652080071058454328615099791457637347995536693795838063761917144313246449527140826172280231550848455188709535417653246562047481521109997263314005215269934545041976144386395134625862908140079111454146171566334219554641444566594783664756859224263069693830548478907371998414215298744430054281584571029950462241299248562015677917205649743512336633794668509688843191584508158758631774689312934888933400612977135671318804739428641756043259230625370488062907054601963264479298856173532277532954885242835438453359261997577919839654585462773194995871160780263573842369222146919415834857006378281325795548495004743333208435612273844405671999016547430093406346987461399082327549029688301606950580491125573762353199881223487560603754293516732528066311028589201623442364777574057771886883183556675811678304163672617921103661299189006494044658275920069527256549463143186840386127585444444664622204589931817054410701074988777202934175607298811573953506951105673271881818443380586295204997821172240817739799365049653138208613763152068833210910733182967477979986794503112700453085421231537533201319121761235291419855982016778255262229850819752924568925786712471601740892108913524298753180439298879078211765779109128653811512993299969152667399297387484989630482735465921291971378713447290353455980387465736987402701148068892737732611416641175415094494837530477204556060097217602356936193410898739825694128159860110916309172720487454388277580682623350032004221891124401912110742831133590387176653758365457720311768999598880605952171771565007266739355849283467644325965885876392207949690981825472332066170115822993812159269527475226058921884275391953863975820737516430449225802486808048561988545675380601284479388723302111019140838415690999507981592910113082256929062281174025357108634337780169935288808731083794473231020399593738899110284742005295813520479019697338666407986485311089029036216435969671097925439028886478760979885580367877277778600298276287099447014908872197038637028971630257827614802146069915126422459571663257702017526613329073796727924177368561835539230491907638967501204585286149214199068499174468468756264014416885141518168110234880160093221659648306487501608762890037644852267623421278232234267868873595732745977584840772660190940191336365727549300815723563467945246541766607524702828350755922989876209299178506903626112352408595799701918574479158185540821177349453254064288142563001943222779792657769146365488449146343711405033281648701450979953673973897820794821636588810620502871462940668273503743226789481207023860460649239955739409860303122399540158569065226647380357218672610811558250875999465923300615441156464918683018967558816997250326043565982554302524816586517354981635612546939051951216193184203747081111290278714058766557375195080932413430591512998161492377059939354435006552694792321943985601996647445284198779782240715929039486352636906095450021968096814665502648460066895717669201522609762907971721201555906372270614277530672100092330514801171098590747869273733773574009891573799333116129480356155312029247648328634629008257307596659698952892505871542135130701583744819578536122363745476587212842367454621907540821676853197508800099694639529738408568448688977828569882634386205224633228582672025157855976077411179533245223911872912230684004538138246826322729901924839144210752003527750929317663477347935767593345522572306397614996382256644996068095439932875530768959372925715603075590689863390585620824562211468103042872964373372688580096804342043104742240901369966278376674458729307828876767705710849429245908392042598744728023303477444350429467916072119603137100742189702382261633167238076993013814247352967583691007569707336870682535061116429243113991396196328554557159334046051509038846145662810014299752322843639798202503240061171187455387843556898016418141136649440213768496929755312951004385563221263268921730046090107706359913674266546797475794607197439069958043077876210194325743955899689690096935478052064393115803669461028984390041950438678850891833913744199776054252600639406975544917549082064700674157673874153629271364187384576769178573769242850981941970780185768004007033115260788485065708246924304666372811812949269916056162757850110335284538455835694342230694621697297726862443850463263996742127497090504737742888430073095403617922171474762063196136883198520035959583701791240357955788487220209685235892394679454612808435051819292679075975703344812161041039772362624304812842887480512738562451154814538639338870278340496867809286567302623270484521935811339738902968558565815593300681695983743772354461751443536608943483935896883638844423279571278198895081017617514064032705867762743865871803094489811123512396141193722501005136158655542640109164393167636839735030329494922649035140544633374336917757594220187652304827273366906641859867065976720109397557641560737492122724815584501453806749958375107404340215814038277887136889973261693377646812919480429312387396979740571287584939133375016003287831362876867128960552817451600586297305058288594926414958144900891913589912327634925655864974362767908798347880557260374658787089561473642861625944963338447521369700895563040610686063973540516566190706830143437146890987183341737596222881159365628830562676739858290752862968927931433210013839791870021508036484426751890475492071478748889082490957636112383714831240320501124506019194739676681600700339240424529499071263629937349840030180269883556573221410921927281361644895216680812057080536529459834024434407826364595590549959605010124825544234706563362581069607745875522578487326856416225638029501019425626711511415889194678397851880225985069633224718469771712677462073103971614924605025761048715694611099587660074220360996110836518026726570398450399778010677429049174643060858730705684558006448696429417902336107246418820995479563160488017050727735766398911008451474924138361227762150415017066865167589912078594481922807488013798362128780543371868348803267802603465425535307600529712558879782218796125227015339761535407068504786815737860112721844067346218040955728349419496370921691492103070376527751662296459745517582080958611888835608108090729839369133253439115179737539542028262755392573318242836370004097622413062143222909118701611431807358132279616486760833013009666817141065743584265934121072818680786074427728468389507721349220237043594015108484152988042396459390915612479380780425653409894997697645511117425568713903032561732430130612790602858965050146875301160205246505686106900150299529372720036538768408803113738607204091095702100033653765357034243365764708099982512030024976535459366656073236937649528450224053548919863560480094659436723842272976645948897265063080442402455092243252903339750902698860268159813282641935976937658342382562711989005523021236763647501113659806237607965248736385166296519411077627197862878274205039536057399419081439395458061711714449895006959478334916207522128014315117027060082097136954844341962124944290977237852282008958086575021113874348344041982908864965885393328229814563471754312698208897667130483917135359724409621348128144807040969892811250584969174390734886880525277533411000456719152633137036516503278757090221990592295092827617332870398117550242461630398872438073654928887178855904609267761451865927926279496994310402953866817763423634907777424691706989579403614419788722794761481452874330489617090145653630863082800057694389497428372510167125985264592081943890014663888211925197039034237563230835480299739446851033286340647616095561205259599193865874486957926921273864749631547530207284242713379979990290803424302994815965562668764106435540879349094267729412982919747524278387608358588390756929351829132759730055909005947761398404919904391607133261265455221225346231329972447144938847601418155264160108677966289227855845817779444608668869358894476345469180274786683623729044074448468517349565857781839685617701441436114769621692640409668905945113915880786624303151734656160808933714340324233266807418698569980825273654763018086493415612967856844347263751528131981604239904716125995642643638936908486301279119545501048103734212946875820116049941910748258407232959720638859087619610704394536898349570294829612006214826917784782120431733131179213342159746474259841642017497037061919237068795677902456309703764706040179014672714083878518059066985995161481985653400510276569336513217168731563383156324378514767835152942969352562380790526938359520423556977707387262089059778520293994971897120368797224519369622606169348077506667753342933492574741558515392854476271547964947015262662215198083864760821709597458429041055271080316176112995363849582195261415578616980530006283433504733917176767869773340077674220405049939436017939232003502151117868998692166767993517246929025397964814754152797443067982088333784506839763386052153566693467484034803609428645840946888306735622612102566467139491718788142644415611381265037674473713347418094801536835564938826785092825622495276050420521686525836969043464445211833233750641032297876584958686148274632929346454280414358544720748061567572750991428937238864911867228388764232918216119724268134443432094821164408462172149875494446835129256172066707556801364443868463920451842391652538880171761608235430882935282856679726334767334333549576292925490980669074678926982950274122734887760480784840462030541339179967265066969601894740633461508585666105626990949506547161949729009410392138300368918546297780548338576414238514423384873089957292640654302509608134356083929437896220151726333970690471097044680364706048244519769745566195871369632754658354241034448657048939805013098223205427115101255149057949503473382185249184211145265540528317651359469917719940828000376986071636565054579539907117335340108765082901721224242303222588527518602513626663979624927695721699575945250679640303393605301613502172819973662416860270147740290349012779174158487499151569004210147354412765789070733697152440171016281992324400065305068561969345849533799439772781385718230909694544364393231740865878190785294866344551541035259774758428427474256263616068766298298559356059737821139667125797453701659218366198906615299654327134422785025308037478648007487637312729027490758018781586440996904415814070471283756508276789212488290976897197800667291598790562467035965074412973894804711325463782479767340767258124550027773622191340534303318419219190347361192061213078565241922345859699930461382480829984778069413448374552592636927075198633715295590075947697261125472955325549123683589523857320351156739349866806152922037289037971502930133109539412885447366602347651639904496942232104241735291914524347162225601013910128917353151681730975677026033826476151639192354902575340872111510506635473279880963092204583479134766632260691025406037265333071692919463550745660148198043746423123509791046597260229072832409833861802745679790791204988050757600296833509347305121476693013449904075778426406941815501885037392998396432423561663257971082343657560082748410786582192433676512726383117765175289474121445270457344255991282707354785269802996735940901072279644042815732753272852110470036277389181925561799340472529191471226060711882139333814905066582138481146966150772190978090307292539809757548758433480697274501165902357811045103544888606759356773453871443340815446768535936703744928154707060180995107505875552819663908988338645531174614225827742127737849334141039144694577405228025608654626820028869352141040748836533255335651245873302486073666667775416429521532912793436501959560146899517731973473355723129806534064944030560813692631562678976322483330067521057682019253422827032287356236229987301718646127511296493002500059972326554579880492021495923302912042042949751584076520258114314181844629672723012487990812510960817539072250520860236877981417514806422954667835889592915797807887180726874101236037346381277309701159117939512803295882049857009579166774077916545501555842409272255499790841661962587121525473503645791567120774576277485436151930933534261418462800827618879009236625266866978392912231325925316646488507576737901472793292714955717147421300999897601627256322393547194678472969975517533558404645458341288250398557157301432304675354810919814392205282541852764144789306660118736160237836770847093167679265759529379114084702415954792052960371148437245085454394833153519258307062985257033815840570696297426720030224060325335945688059951602100017757353146935680084500731665610944694102126029941472195912551179778080284586421129586828994573660908238556138661832382541920265519776963805176278757483814549098996540889215753097788650465679756433111744727848563110127529184597228626177732438299241695621965497547822876014768135948849378530095343943025132300395342949510212877717908380565976366534166223418305270991890453558232932439433722708565327545440145923195022730114362733954368873200457352825755212243439824242731627774995977776750026084926142460509403410114891671276758489226594039491673839199960282787074645693855494112694595001737959876540576456237159124416907298555756944027587126433918478572269384403208412423275431187260593870686355549835422063211504970934482390919054485317437033847728273608292982627336611575523762180556191016354377028392307967932893364405968439870285640419700984011578218359716989428292967150463530994323226675908532599148710122827730832540381902763164808854482086207248404122518355149837919519447121808310059090748561128070626335643451338559576264844422914106812165100653762844001689730524898409572368287043950291218620407529917030515463850607763017910642884385163718433689526745319518261543407874356868630022872298042145657476287937902044036692673324773242629902690708606586864668144564991697293651547634770225076045467775029872442451049109928449649862678147909731058099537728554381841691390304707606827527864389527530883922018885813420674940976539827830047131480243772815986550498480782245751692806400388534960749973859325501228660801083390298520071684407098631601749709584748336797856922682361606156897911270671345533251702474260164540276102273672693881070516886295629641489907618260913575105682447650043460862011298937236083666118248554527616726233449739162432595558095713257307386465509722674853726471659563327110034065872930570304744776144858868488408704461993856590195069840023599251435953858603304382849359431866873023041299167582315332510898782835971991521655632988026163323677433716091205317748652772672561468068708150970668255287637864319799891538652452426082320998841172504963042781677255101035137390255019019482935638616070084623642545474752452387038879143336695114004831688061291331054191691421587596956366072614124374259071956866926387315104980477608665831152968954330489776107371143169415129341230142522953204068782675591654168415607478863874193338902092078105492380815332092187034305539406466604156493581927395638312146009929082132682085727708353023839036807288637516249524963816013861982316329641849949048663496025051826395660692959051665475834184376094448359281741123319363713481829792901146151267085372628030457372013060625438802626974232035102672657418828865642692077997351128000676420005376131590381994793685370113483844547081541318190070635436726083425600742503634122273416324018589834386194008777665448370164944955909802525913942744445151512262086379236817892618040030650826875599691754592760475351368782210853747765777757431678226254438142358540632287096688060994922740173586936011795522268840393118657446675982581730663860871010946714573960102840779541957200543542240427503016387019416170881124376368976501628872138940553307565941999830397520491531045550270834400625956571765892583980143093663065159264503369257128038875345525457242323154671665728704318026253676939215565006035533570637702541480304562566184402477672518962734394116241382661837234360937190995622881362458068506691354521822796667969085823652769070748170238776533257413611701070319867975571013104977192763569485809855395662346064511255248511602651047133218175947745201182327276737099635170663403355155307437722328101848668273594571599667314965540772831917294558560657364954211161804208188527069829972408009513641280550767766573365952091933398005895637826191851615740599483206366078327249969305775202521961466389854701975980703489688108748491058846604827295164403405177350440315108905912860265073940949223869097704722251601155172606304590507824595353434713914261828206159842746579847154796841837471589424885441402263634753463713796762750673675443334692410574726942435050277770722709930232916126525858343153896380662421660464247731426848563848384851899818843282269610690562011417460091193500571635781280932161629223369340867508165742552144082656022656819104836682025315637136337635543395306934004944930054857728471585215366739324182311978951863784680407242922888482659397879983532895495714279386696128787444063567039403420728136933133130381733783993109130600474550680673239165702270638840395839646910782667894439256807254293827889518386005865230793042717292018572722519350668505889072333941381802091485653495805922084821861906267787563111953518477052130288522667656042021753515644578373603815949296830240899802294760859085544867967682492973073071666467832211162757620188035486765502035833739024188815347836150638706661913916227512465556045031626131120601102500791196745022423797579779742734909259528137683107151018400659215479805286680562902976780278680212450797716046321027887580726019753035574236226530669299188624207421721198192965961978595089132016632502511933897403540930855018755815557827246923680314015556907582622474346027116537544028482129328061309960020551285207631734063126630179734108831235803838436956147622567132360204574883338437763251694417600955794611988301288187211584062270641773929618574709142182786480955612266461512663043442160463653756274206640916638279579142006925523901238914955142562416072819251950140116582507099987439467900809769908242187052693805041151527987362144137236285051936668631000429378579001938039044777865178229884512233944366010460731961217431271671652920354195465984815237453370094311302992150465746641353147094196107962930411165762315355907353699266875894589480828164216058958547904733571706728746009218197839529139796531278881961000415333087989864311533328739948868790461526999867827926878717733250445943576011850503978428272441238498520282539379606596688440767723680849282356482034142208668220278767668257778787499561727962366641699886192532685194247076850930596707840301939754727791008861057451642628317407642843579717546846437562169688044098832655742044232742220730226850387507997617697168865857201459001803596295681556167687314628557961142746249226811727323582604789208147017006614468728421917678227276255483172485452849517827755777650692075624573719591783820778051996027747200206196102413838338570571221491238203399494987770362759155016978682877243974588847166244497323014959776795243558551405297964382687023865298269536591815757520863343802129151841933486671461935124980667020287858739811057917045491784025022502686948740630051187536851342746598222869442027291528333474652945772423033865461334594844609599521857826368018673655164211575268624841836019274976374212955802335984145603112111153804140732630007463625285213038420503580692267670267106803035213244494198565020661001110024166859578701954686131699132620978315701914808748153045495472618439695951129258437021879951753121290631100205639816945397033066029768549499162438110892461780456664063248349183229022823284685728933955617636445797477627841800626605346511429279889509994865420851173785684169693469337035433619237901908287394263046436133078195332465484719490994407280573838260887367114454892616849187464958394298806096744605721743533242199887067738454673643301059647883828200104810129741099463179390233534367532638423692642094852480714180894839547585961312543030482982060858927546922858998299798039324261648480599043250212662978120390079721353613304688267355985319872602330458777782987902219351986935537479181887632202525588866573604113884717616485807297505690404330886562021268691441890450288829937581579391052029516009901953390968846167937452548696730868358846841964039936509017305141063095326864270618024040126625890592390380084949334458970660635808622033205188131937753133214276026824387372016011721417147266343917374820872443019101560530633015397258213290659184559624327109757940609684785272448653708820698508471954696694628864824797648130566449739504202636737100605214771943014465782434995397398029382097167862215456708309231989392709720578510347584614255506880712371852286405782283942776644318016675755104661995657463681297303029043551238101545940401761893127364721275963642871336539130520172332599623586125174444569527696107708710159792432735606303824882128856574080019022253159849687481204234820816868291711076364356334556972032634470645808549569952665160375996242907510220896252864429588824353060174745566297765415509171783089442391977237300096378439257613620300633158318656747549188890667070391655996661694783111954996561675220380217762671780769835011952051954144647724741522660009626361255075203787552071404926756080907397181348618667324727026792597888275066790681975745953766265927272404923689523533520191603841670086370954526091103249624379750468056355803801920133707816038741499598251061455157894441981303003966443383653966098880242781169736431306620524661859035408895971140273997143529555798417810305041343790033213156259097501472444140597545150205506900760211293259315843164217281339430725924403163751929273990716254525398031695032613480456940268519604580394826387409512132688793834739393777182749143665011143131009721676501365234154743226164748171451910181488578384232191545816923509702260825968620525098043463971082272136488204040587606863664977032159382174560922825286510418091504086477190470212021937854962283581710052362244399593853279197135251182428197755233842882169677667998518672758889637439890606437487614088736788472877916369309104024953405314365651919657451753757939807440222162728223812266258876483435912255121206651466836247047145627853498205995393996596581108685956351776887652639776116037274275144463964712685792632678636203887566013840643728604939326701636020957746810622310441812989112427427891381039265785924442702071108694023725956053619787214907485510778464306385329996594397763469716295184394417391928122970757047457619767764456689214421962879710698994486839836662798856571877495862556004949138185206924490236469184846231942041830777572187834686964001322545888750816112372785247116976568629799244852702727587105707332250914097273362867744109597597738974551755621383843117345434233302835638727101914578928772764941083852010917873240185086906200650957015033304244778829571717599831005845611956985296940889144180677374057609395722947172137491489290434876647229459998879051117289787820819985385789019642337850843082554493075768106189980276470793434733082392043137439133394091313494868924531601399877235455648755234874430612490155883531419251898924706054250730735717239472956335057346778438818568733426538286624263582171168873112026431470335513960371637568039843786865002752494811982650663275446998414163984809500272500266898844297308459247945674280360207169491047025225555076457646470868458627006342169561312959388932771309827985806499393098741988191556406611042902256278102104555994547137786408128271900061539190168264280747319671862178372304419274260448349816453568615706426616561874640663562965093126021955888140047404093910693440734942442432700887345814471408650104379216241468242702243810519932842056642881435977183968654391897586680234513532765260640404125532871921667912719862038307014709473807396048519379952640747481999657912565599429618472746250210060335419658621942873894644031488608389935933256146295841635976613643611271245789712633147396064440873602638601690125856908814690411630645452027225969376867632381247192340546975818758185417359537877571664335491188208079002445423889032450220807501442480805392591600386044361893627818286194275375096008307915604886810942566622156670009936016522806709669207255476755494898998064230820667554954307740383459312197339901210105789878722985270062526880911207517592495474974390307663719315573463566265048972205266184642421053900092628258271016294845315226535591726668451917626601248139892049001166419915926674374740487536014449746378657857685829573015199262730477813162926840634670671152335723456332126145344255721947630612808294218892719716066620917959532553470662951848366157704740134396636544828182729718428675802929916376106864845685731357596640967602361061913134241612918245244146468840205217343781422443255897345267637480358861434047576254686730562594125656192111620210285619989215722955260963833275250628539361802394549235790142183536168052395183948045675737562797557919023203285244839098957769910836250671420640039517811112856251662908685591574436064962871317291916586932371636874667154586406894542334284955029009505236573484542773740468193628186145047591499613573127418194485606506373795045170339495286745262238586142351520360874611164119395377436277240147272710455661943330393777987026724611523688205411552454133317450145058724773978034269480690003145786279801764140451365763302305307600898199995613660236486118299560581232867091386409785434333253448783900606055781810356702419671038086541923686593398104132184219342986823057372246994713913031950489256090575838207458943337908060608536406124274844409949863357033941190213197596942050428656561165992842610074076084819530676455769618814955922020613756606397484851838356645968043115179052273496395758955191228556793519857211307305258589611250570555867680611399440227413038503081768993569539780990651981704766529670980896560776545756226047661729394050390137806229770274584453401501568456172920232766795740933118959560045076835537000472336181435958183514272950548538528099740835809410779236591911532982817427324981735496003244844482256488487995793135969651099479017951366827975455577028801802426318450115342370197596074077105568041525180616655308530201640925623893701931880306950529076252680312334907280949670755636018190897849288716297578396140348164445854484843784434404811616896424136593075862910388502916555262314623455684779988134237943247574748001066381345252465928574803730355832469327585114631989505125810086135755556003429273049397433348417321940491160508066134009842925275644164609614249225715775266033600625240224373111209808626798997758517184602940188408377417875221794791046044761757580771129801497669536722924996886836230448045788006988337144539344800100463931773523966360720468031762042569436931145592592631208372224625376586236364026879853248738448190896808497440169996398717130357082862050124657535519809384859079372168350936473980851275951127901591763141731796180425837534704850732482399120997192788453003268792865308992359982294994478715130069448621911330941121840761712635171314346758690136138595453744207682918502532147516197165418035672632697287911587405134859239750714624655574243569948801272907716389729386091920364352807794766979210463912952341575570847554627578885142891585489950754211409892959167120321096285520343192119142082523751523013642975168174531636291642278218898130671895657983834705459384636943400285915552549064746199966988569370725750834461631526817338871935467585238370071857276966540015849472326155961417632718747178042698586126553302947298287267759119500964811520236049420839908740081768197071319672748649305792130496987429672002480477356498965792964343109495737389805079934510677623267865094971030800392910098143893418798874671282051175886078577536304222526064516859505921422480780104417584407503292250646620812085657177011781566609714310024333571830245590449519700010293721157442226495298111717456146567824941643960347284717685361443418844364128686801431060959596404640596396945356427328646817633912659471022995198687872126743720998821079960896774277682984696749823511235414408853954535327040143192788946010504695900220789053094991835885256077648924388137103325470494064823343442723827280287860476217787406299953050720532552727369799576101375756596303045175256944743477294132018813905548126469474753565185576718032602605579719536456799249440763391367862207355893702317170928907564479447848904731937155307934131574910831422127556155977577124640197505819416361798640342165021481203049576756098529176887035850012273389003802168746964286478366047346192952976149998751454228093590033906241143176093599206339792752491450198223487935090757671273372745826174812417922697766177199692919848000709976999565256641852632079605502375162589867982620440011516323924854001444181457467904503078207044857326581209287654192268786598200019332735510307557692705091362583802374451545104134688672263931525018258786009633337100576515319364075640125311333604352874899133973811098702474341880979118474315490828583588528504550421455270752859105599882187118336997741020250965500283977160395960649617475645952988372287692143714169494692599808389739767889822989074610446732744478784496048160744694320100184563884519705853759021453709437964151346041739356113630216683111638531102392051119028108721086033113693247175871929778317992295091023342362818932085854615792403749118554013121448010639306479351376527197261758020656574003423783061997869792067550244817164256432652864317384976489719468932646309030639667889390650767305760833630790337594291852751807341656286999409464615684514294590565293711213365674428616173601075744976003770930602696471655851767212028371213386376730868127839172907176113676518985169907268970569987786304568801593109970977076817780144145168517574208822682300915281553140828647744054252361522098925708156283631348021538719140140995950095451728629510044655885097401606582395193150112077753104105044124064049058535330881729878655085977149480459968304629062009191529991641476837901417908031251774137741356999803924058975509481866384342634061448997381317296335546710255875618815624640643675257443745615984397844551364940011666998039221493426409484868767791741897383992075987697035650198624887774468380388811550842588682739525011856875861474992089572470680044104155705766441042716669796236502181954372415250593727892020776723562591726579839242539518039896423585927070235509504590661068842795669513951032225935250847323627288584755525504084052344732166175649381244382976875093153950070405586823934004940398535284768260504354158153351225671123605646355251274910132880321245992635668809584623001723290040733208007257183952462223718345824739422877316973720244765517625179654375611176209744242286093300878404974691750149081276828321251399670801080526794402913356488982416526281673619559377442351559730483878100560897671208768739055121534627709725023839722919382101841966440667817300383973019139908740670863060297870346761929589035505483632693168338604986882731393894277063911217665739203510374729728250480381707041403160563391210774281222926129326100873697713400070543456451451812935611267059598121240712238150964686741236531187251816544558880293593298795994564692056901281558587920172428398349023249018792367124089880781167424029273874743354666647968296615458228135188036778028772340469357311273222890463580385839599940434757998833861963418222030327465669042446848800852702672196114292152031225146296465705204103382095823650205810951243550345028968770179450779541040861656392168800761737219809480988867786683234722619081027700431728120979185825100760979843009748686418296560337961433154045051220490220385652239538714721535363411501067656567723025333145927286260597509773822084710375378787040632767171210630562579320526372635848642532418178145425792064845396203730470132159641973256979267506737857757766928832784436662516320459449517929704294467436536320173310477580095811111990924785373511156192952990206840516350502824391150594896030460742279457372462032310461815285030146845021941380316790971667460462965049908700106396841007780696298659026400482882698733193125041445918127824274432587928628146297270480248987810244884392962987571903071906275767017843023581524198075090863840552043012664600354999986023097197312430367318179944581628587278294396173487741764014109661470315957453436811778937553869851362465668829837205588855400590630608276867272722135857833497577926913062603357336738265714009852863261421155414048965899526598733199849181179754753439544437607852329173759304011024041450160229455102333212001884032867867392511954700591878630338663518867957760251299326153847859258288881776352271278291111559246720569385952022984653215681320012770744343633207855511853413883360041136559132054607565075348128026627476646749184651296819209279284629962564288799708936647206114173229141647261415884380632934867435022250932140586396739729868076473277058091478086573776359426220064373048673550730833500662854402416970879209579541478492310717900509339479349697702122747559152806873436595151004563165455019261287922070623753241673869447011969083677034332418598332782596584299559923306228521236374101341992769148139945020007865499286988599521303991575512889399652535994240225349523082348439175941486492918739638815786642559082024724817708314006743572599166676868774561181311951525261738467900060244044284167485949097960841060622971361742422657159825059622558555359921101263058985290609038039816463401662628266423147073986733202335739044098137584435581965977590811310049721957563968485254188512033494983168577096499070099960006588404592999868291433540391682620302842146766090291501228098049369697661566962740180592009948384285997096503792965609288895095624386804756994945093858056470785413868423075590113043708962631902585829701953022670762293399258209493335633251650526826794579865098442339386065079149076876241978874142616955168046876934645281101194503665368321379619763409563717687779411960626375604848726576556090294161682059142296273014264845876872719723831787439881142088193072562340289469136007805090532817775795157053777157229906534144522665016725856646746354296504640607526129599936789909904576434453030943243013163469487952996510408515113742039052926819940824004691164703150196980879740694918876725247451359787438132470604226314795335971839977018049493788401946566286748553998074223281340887705178485096182616231611580409809276479909550974497941659408288622434519504200143922531085251287098994285276251008899875422330390582728940024589483112223966890139942208237713531496577124646677149303595823948051558156987073740423256168142773393160469015691703679780601530898432456385540275144428255479566967757602344999462538566206271118942001034157861542862437611500744182371216385697674232701934781557651246470885537032494208375736187425194123714043125481961888211974004175567893899416077394000619268360329094569732424936331365050625632598385423183767701995369190389323475501323910280005616722276187768301323299625051382312969327993231439797180738014255356499764170889555920397981929059628495723544009083631130986994287067434570694337287189958838972647237344206249986387656635203601315580021116303266449085178142580480331940161759048501697666081941154888732300621240811772768673890942139476482426352411112509630440339643213869572619980931562592383809594641157825370006076888912709164003956327501377162628493169603081057906226984485865744655959579073828061941914419824882940022070214304580107520180628281286569874985268010608092520850361689992649552426510190845166593956497653319896184788800610856853675905434349220803783774408019876104323419921065746387777880262375047343661726364379038566416473214441316002297530213257367560745076303447890224517665167641952369331087744825959745277173603199385574682457554021918360619675331356470640004020946727809968448903469781248430775105712765443629396730305636475003704187486532562084423004979324027831726847085049538168225227457567212449445235186588619646195623852628371514268004839545656545572213277391945931759517097207611636109669280355856187528954031525590707609066863508570869468608317822286353031591130515880753387727862429101824248323679209735150351608668301073397767181385595237524286436028149274266230234279535466953583983275782397032773108347305856441355297191251645690506510760474149712715735329281004998937538707330333974378623789845188049390545988804976392971943113732489299643080556530292664161224821121443008095942875183455814359544637918557847715012668639929261587543477616618942902366266838074275091754187446634024195295318071730951720478615542130462920637789063616275979590257065406959096828679736724674404710872834385447426843370094548482800533649133017060338398901045868736085862405191364574155927874914461455910101229635480602346222746060626939820000615547196961571708273884528850006804489788360799820671240078670698434055778684315435450859586145333723413702858369133137346147389075257589524775700760591787365677470124604524741868062024989682351340333183612299897821378734606992426953497703559065919831657716800369209402064467270472588086254444732751218108452467634485163942694939231590463031962796833746488752471498288204040429037788319879378653782651734556083892467316408949563188029122541205696148361752108241656013218489117804105720528206217380219240642894994461663614990521798512423416317086056982282747837909060933848242362410494237863033115365153039443094895876752727457884063474054100248675705152557595144489320715585933112145876705782881834018712865524476151672831131022017081868026796057897910863891852212636971910018841441278785619789972565680968049977377755563802947261581781657520203090426142776679066637800133130521574332774007663260505359511998540544969255444456499669391111766310498919321307736248952351335832643952389478190964249941860558041792522269542333610278032376263246406418859124409243306021074381965134959562758564666759024246072679808915124584435737108060184147186485428036155832517046822622580227959376475992788262375340355983094388311713544982511025851608544594015726690437138377172791811892085194993723479505772136483810167856038489267154504389822135687268267973508818306268920253578365653444231992270256411856082016402663032075308206411405777957640352119255605399306806483442651566036551172926071160387647737887559914676397315967692886508856574753902771524639278252688019857934184932219901167769383053126686100274661723030874593277366679845308447154249429791704496679164117477441322075849770866216897984155630595864047735152471449012113451687973373209588735260815564850618477950597810952934069041088556534066008230725545182575802727138409094222890754302626845774862837955316974326902367103330402731551895863196945604670533525356010042486718038024395617111786673636372951849080939562658592038063679317760913211981059353349108325975917908625177178647404704548782335725501759412505559489867634699832573860113581364803159102613740213671835021163143559367047931569013460193529149700886163039181958840662686170196036435289521151381300529349197081027462296700827000380161057760632502102427588191446121371137255085985905528681849514046282935855878370186079746960700512241218317111618716895910048126720707886949424615016685806433833258879293581214367073965435119380978842236298624313356650699016707475309139483011095324301864834519285720287305579084228051153084136363852013826244771912422797347245896908165350086762259872577377296450249797662523879469216898202343977954390824796401564038034605707960414972166335297768575977820817411220722151860940092224281844612838266504810722713461614019328518452509842799577555088999346319068051553602277189358413912163413091665056920643774121865386777946937084424935622016548898163026915552190690686155597632243901752842709463049199473535127037931187600079763024411519511855188238476003255323448373394056882992672828613119593472039270914241147853578496980654916201795794205993815992762388422581239418471074251498575191008952122416842398725330696994450137812917704679693154622778390573954777597959611787712271375800088796713749712894253179043943297291749736734743663526281660193586967199691185070044757124661661355460331092519620927575963611326515750530109853545989112069349885775256320484012117915417282478966444816618510095822314724003901870793196894989030123980871524850857310708301391004052005244503642456534306500756708630089069852484983867138631693386909066195826719531716891275121083836710134758672065350745186159373686560893590290953936973926120277724818039163665409735830148682555107058883169892637732890568557297485324698353801651808506111432590971997841521855246836611425796200951690819465448436008577550933918988894964898762191113346451992176175675612850918622237973819793748815293409636246119821615943011255539812776189476828843209194384927387364257322778172302297705060312843666259326501308050170368611992966322284653349433114821479297765840552942021181450054949960987878307628944828288732572476608234671343053415474898711983949773207623782198066448297136992822661006130856104955423822464412887756312118735878464953791564328271804485710680797198152526185218685463363430147207465927513729380132136812041862719534980940248979378393273068669998952109061679087141388644319951692307771101530846178308036131383070645625434485700887958696915377504190406375395094522189035335582828747336232770202348983892876370203972425276820676578351516895762668028410500151659279615868130690602911279695310735060310691508755445409266327044226797353957058782221798996409593785078607058910875374177992913582531115119208168850309395287446142971385815025373040947400526105677040241680323851458062181136344848190973590811892680885695205983093782895466562127333243733584434473540556952997388768446309587037860045141256166659711629250052803497334610059586636536187040744331649550126301980811232534431428843663055676828862847279231788632872107169476648054516267195567852923258241905392864248237378302795851011758431904881829045903902361784623002627786797471689990371969724849709527832837031336262340161262109856162340069415978371675700205993796424088183778980154818530776493560831180840380521773363721891781397757465768304841213920262666332994075731911764315176085365846640380027360232784548402213136116568860291181856566199448369218013353523530292702600806165629086331006808991577074862502414304366962982856460314874949873898470982122350987987795175207132159852768005536732756277107417973231615629101704210640544738897551742774494218032914785796350173865503200221671324434669262331380541244957405606404992363435424288117467339227738543460690101031025654827476112940306154055135767552401620840853372820455176544037829606979056451217018380136752323628822619647769499148051309829139487848471597311774106086031744621850474451206212041137304708245538257623148540517794677791373318484367362394713008050009125549323426785833089203081397519147868446232578775212304251107297334310378387454273692831544424414930066649196781054786296492552209039308233037188285490167617806587260049781454521855846159186977757574029090263191871054571759866892204452409386165455492713527667659164773919422407054039158933284072767076100146384988339707554661428771969525352038462847862253855532393612536248508158368322967992527876938552120650721607290227769842478455918346519827203252991353200948046424606979859198644030392051873950524324469070626731404807014516135247251088858550168650737480830071859548120903042066509465092193921374016247346193620766150609756494668088316876238265131425419386990182687077145321480064894717650364205839030032252278686751816562418997399196530497664916975476860483830094516165498672933877387797691025977222677454920667899996657591668940736550414662993371391792541985849509834803335792812921869037713218646653364573512844858840391933522223229684212918101335536284537852507246460756983788197583802930176790948191572757186084510268399796639218930452788982370431501667030176442803104957744851846457784745117781298260283694311801250469976946280110392266206584796132532571702263418028907760099889733649139560130728684640168355268748554722603433830805320952937096299868964527315968238347322689466525123971774633910363891497765128975789891709174793710535223384968425090640229624603191543838203275540410205226216563204971699065976095823737311464885789318160026251762162696117888028265677051847459023859211604184455806195201192021137928969715669859962419735987247824488022898501779236370942392720853368569385557295763809891866102267559597725216863574617261648134831692259053188153382706048961768611070035521071063786494244623082095675748536630231852667700873706884281291317171953378559856002703790270991647668352681116201126835938214358492259936603046274229157039095099562437145597392113452787850178711195224177050232476640937941808793482979568928417734750044274157405246288207348762293750172586318097478069119307885863542116657672149348296804295791431363961321916444541618081722080968963668081638393224956724698033181286558538396451371491386665640097431013082815454982768906498635824670833184301454590026422223687630939878713368860852579386129051649444446239828730808090267033196888494904433139246555574031544241897731713019621002225881458553862399206848796372251755413222786623203204056314448703997195508349874929426656388473569708964311018621173370678374102668004653940373383623109404700312538276766983121041756858702247317686301760488847448543712382198245599277052775175639919446074571797390013495162949891528829194845708206865699000775877255826844091358986313119814166260784045447399750342628223452654449158488283608394762118521050951424753553692557350270545959895290130032358205374123470498677461639747843728343948456320321756174352775389843606805276410571173135250235210462521818743706442838210248945197638297337508129963076953512168647935939194167624908382174735505627321250621632256064241866585005331380701831533747010143309709536414477653001936140627297973098949765317889505734493687934705602215593591383459379553755799760558905896317429076738782104431913737658393035894955427811127005307502123909686815299478104533479175503784874545055759176887090556964893989328554823726271295169178621924214349694446926715089796046316067765349814334472127266474185055944678495366092270317173445901669724665063015194569580978017839848969034540268401775309109597107413811931677465529925797481798125914430864760003859055361600731873947044640017487863553121299224990200224225057869365506543667432665323400979177477826833455304539449063595382708075226959494217090205745929330283815725495284780675866014942021468683200595841630913866772209439794716711581848962034732400988941744927211257131949570086181160968840325892735397419191852455567124173078677697922842889102726753412558323384341662791390694040692987959375512486141853106152857751894714077613502727783863476920187109597657130336076812888843655120386287007990288743319414527081570058773934609708005090732986516534447037104563260305736850111913489591700216709082132308964826411131574527225200949093650918425048413796205504389183282261768358416773942023484381838714696683550914386191057790045842285267161599770175973112302546535938091392469536179804082219173533008042642887064692955623212158821617731101291457967266955318940094761330460709210130528816739932172890720031015910482847941965426332055054416188673997619922287937934993111472117544903498200648572318965767347001448802706937889290982070728075902297972890306956293314465482782567297455740178645942937542908246864097298974448873625394699287043717900220070183281900307463542671361015735117546693261235203586878359990672852339913708387783707770445161431940998124251896974304709135429647256637386318722043547180647711814831578271495086758871598385161463676757307815815350630414944042165434755638775207007249816838954539549038189447274330871728257380410726096250988941838584161709021040018895771194960187653245045907681710536670342183902444172871699563693208527156365349740324630447767963121217073586417768625775048043566336721605402582679241724772513628500950421834938817434321523855337047495246507749680993913803020288007111385448277603261117081827606125051117227783273799856929070293084728182591661308112208185830749681144754813343605738093344860410876017770989673049816244803237205316835662754433018993836699247018573162661449638912445251472263119995559895945426746128349685555514548322425067457715509604600014248448687876178121406387842123016197831823136634892037277978507344737112949336041088912699783554413574586558799182067688781011217635351472012165057963362261901577375868704109896630810650042605802249165058526483390570969306845127889910064627970515955585926167784783880984588829646985863160016523625389979990181655119918076096130138462553578118015149694534935692427728506907618148684680343211983316730701460382788787543873037287818740606666782483198025549484166401259773621744676929286481149686500416080601324884199784055750119232219682292497751751689600945291613464039017038938025733794842791559841379311070148468950083903968004297414500559306832441534804760354983702236838056759066943152209664580002460220881987328035650336441429806797109198253722056742533564716698167923560100641071281662737338547897601393200909663860936504408208208030015171971542741226031181521467566567828955609672764682678527206673436275454652525084510377258245814765393168508991001776141107618017097311078891907332836697612882880179813884471986033666476047179874472334715457831998279026741463183222160694622344811421667588200617984722541921608684214743911362726150892192857354144706197420854110623658278610901448875665490654080415629742403064947152821834095336465076886525245884730109107824095792437684605297256476426575094049933584030603494177610523679727467607827254828336527693012873444088076570551401418310247122669618715290584357771779609746857521544101935895418931901478051704776739130718777875016247113851937444513085126595280913199880033307442053525367494309340403713034503701375920213663481967444496793158499466616139831781993760231277527877749906292032411176085296511370482506630188025149375007302843877168169825797493609900151989978683429908982279959650897824073074077474397628585208472524351216436398316254254444874098656619980085013408343623920535527860861491210239498532329919319761510318971623146043831550372498020231429198347348455785342584932194961226415294770944257661531891226725816002337317541843573223299387642397645138377379642283379805761277514476106645775552410704848284662848833401836068819231027255266539377001161386467125072151565814397965829773109118751030506320799431568972032363027369604698148204347709142764508830560425048587387265766600443287089796025890439772558681609794580781198816110999881449904384003356064301219539005470846671882091811997658987214082625251355957572942570077766176707212733419973288166307862092743324278459433357058048003249737684411632005113857579248967803628153154393033803532231077931083625668881731122952338064435107839651689969793707688878327646936762932977232901243993338461693034837453289810786881302630253023023936757724735453725896943505926890270284372761261298282961000150409105729861388020661614720128597020367495634609153142204593157815828142405226728507471841970212914773888642090201441441788302277658599497133343758979070457821613940346437279819062090259985100962150264251693228721075060467465722699829020334478001407094212947699390330962685627114812143035570930211398462221487388550201912414840755534942057292626655337252206483723404609071619400997726166774784216883688269167461657060403368778552139199802204993087756414592098239559709759137883233866200429535838742369222625218074429960611928560482130154363033310414101163521542323861956869632415290758971149506111190722765816497562937688385591253873871963289529423353815866174774860766591672513568396545683438642446804751241707528990501648629399689884110120542763008201697526780476445806020777235240465066450284419754108786805258756771900567602774079719974838841952757325911657747702960344710449396478230389463826414994891208608366910520486836278064671939832924783508505046163707941535397399851116438875233943371677780365851669638291755605851595329432024303929578392832701967049232435134754824730105949491776730448499952882497859898800093806862455232475589093689008722582671933401044043466891075064703007716167251726496302029802478610221258024930564549150088413895991461196940701005288926742959077735194746836280879621708209245616382800527100780060427199641159342518327293705732547446616123148900527010233172214076646767786511186324580633657294336843332469406617806530446200727112666641778470432697488699789454019903854866713732619591620908251936857374178672982156954063627720269112787225606889810779852725943029493617815204033497749108088154054841272536733999335455803645675640882880774159468833898915044431840053075865565701774106716199934340664465971439290079786509807499456119639301446550158981504116447321016871446879351211922732840371440541212523660162120144292694954480925797124464550177589550388378230939239202379674989522251222030840624815716941195726394439207269828260291742535327204308030737391144208163572436963641515214718579972961765812420627831638969468775663356497626749951914467079662820889934105571127228408931048710275456490385760219353623408573754321928830536828163002816617724319457110576079122265439351208460488089236014636452885784853746585623724425531615141750724417392890100126833390427733678242348297307927454626326489140966238012109876151986032572301657749427734251626359820745370827977465698068673518000314664402596776569520576240467913926046422277393719161415436165080071204634399162298029677269033570162099592268661336788942858421277226136509015461664392368736584356431002760936157468847644287704210435340182139945067137061331686294770850075596830245955040534767340965823248850331655571086931369276615819095755838017688837265688720174126571252406763243176879181975858669726278659015256883712331912652042610393795844995033761421192536965970707502785061802846523323517087653348393448848848178108850915951242769790748666782976851066719288371435377356868901447829578909282715264154523993512397704742259204761879334209876108752260254686425048842232647334901206255383286865384232451290350157732495170075520060154123994614763886673882184552090960399061374604322601093873493440275102254125744619348943795429079102506401401425032081523060946977719257539837821905749001663280224636224188011422808736538186978976180977675237342858427627789350471708453810421218899850277809281722735705914347472745948037376546017783776287424595744588924748739874829505922772771240178594365889019928545757739309530592932113603310391042397164426068488829976051018939354716325587114156211403207832788768485043624525297909776205082406708469553095230470500490327422376614681096462529436034864884384058763661482111210979454657859010699506230551266481803406183436420468122582877145308522981783855032085229633232048943753994518591654349718361973231472715994081870556144363358402022826691192028212340233325942920593267457451982888977057361595365470716290870223698925428989414571109961688225875992311747341183214873398860195002379861413714509738573317287123583367879335577012376415525183687352909772610293399716529628156158401700331047309396306621539519530402899530981984602490372009376041238470700285278708488773448494915825805176672654112454915241202609400981028694656523505129016407428336027337405778915205387387422328981104925416080271880580274909525661254899902889727842430583348199152079105253859733582528875401253051566566921105235093099093040149554268507044302598451659865924060515659244421519514438004571778122837663900689629678552795028563951094785627015763171706666132192388853842157858951240149240473362388823813286131226623379963198604194766341120385313703748133705110233905460673127152310238491262440682805121344144285461325468316465484704755622712151317352631779085909846217972621388485628647815134957531414065248012440186019482004179890511654874902944268100636014383746921202827803943779859184952600770841267211118441591816810034705858568114178829203818039569234821214907925390629323473252999551924814102348281526989426263528802295993954546167505225980317798116969896784513269357324297860042338905370691230044153232018749103208899828113933637745337241602746887614684000399394970194586650745947766835938479157719197581496478854315679048200158611361692913485194617861345086931516028493315507214530799960036141409529955021111765048047109645831789074314559870085835130276863541175889248934536350690582557825324935730078528182521258948596578627995811670804511619326663460680233591750915517242344883526148479314782310980500219263303684506322470772238880777477625273342512189244665783267378772752076382921946829507435607865656998028946085896451420813455586748778281112573099014086074231547037291946614635807601183316154989222259030039555649148203354076322239313817981384127428848842397175923483298076402615135556292824790581870409716456468294556461142808599767752187718758294708214895822754784975587611172221693611230075518270777785517260717332315552946962859541548121326390705578782964871972183071348682485802180350602247739716154501934328680944995358352979390470648661341671782079646643928351368515673238862993447765794552116594877511076114688212259184724301846919867905493354326670193558945144618229043197209387406020884343894994625987547058994781278262006063460474543845452570337893196571737020366794861579471928216496047848695880462360874395104178672050378179767788369427231030738444660416005456536595900977989342309023166082298347549750057109092029805905637215515070281306241070184910596605117083576575703142747676252673629223022894211745645540181522405370553783596600029372256108500811310233943551914348637222225869644265507238822737204253188755485219373996448372462492579786562134370258645344410302117143197018990036682537493740663243425492333824178612401529521270892596485205801504666707123864851138879338332140640334139163002016135758932629709225878558052879799160137611120880173138269906167888473301688790597675601216400823392817689863219461016091603177961025394475288955166758180308427640521129802932551267545420130433685802037352796644044634206397284006335056673708444991915179762581687442473798823507678319235508337765543466403729684142000031370174798390790501855078069426676877404704894909990103745183628032955734601718409621772133106795214551496258318708779463188026826600674917682933428238367483969547795482188116637754493239122020713258064480632243055099289260901707033379993495098338510733582066123862216962346889513960366048419756379300104133952789014880095261162505794025538654972899421349104612533358318379958749386766991339638005139346674292353604412625553295138792448642081206706363870793063240088559783640198520960189143823981725467557288464871240171511929202068663591206033650097198603071826787435872188689679152377986148555565639448844965403898195789534613449233119083517005318686184458044540791389365581289788777240924293784436172145791996056158782443600123786770069091667893601740560107845926418194787061833290028835032719550382962562389307397107394060261493237939859789071672151889156584599382242166483001624462049174114110350840256680341542923811470929145400967827265100236299254061059516511359007090331948860316682216006776816933664943335490486632973722476566295758316329338396300824868389439814015085211290315487140723874809738180468653528386752953709440466152764424421252845776618911292746086440375459539433006609011438497795879630916545615949681390983653747939725058467937171913903654109497536389380226060158522073489970235568760624552657842472057431364170719553654371645086777092980148821313146343744531280454671613332333728964971373989808865582020659876844386600179856233394783841885820105704992240274597319158052065959713695653219638783027718738241656060133751814093525263210301768392453316329904345286631740255877955574804307960589581848920503183040919716096886330087229620930390652138465971699786001434756918607176563833768614894303075885932109251932281135078891289176534729574797165854405438824683388272184437053835250504665148425163737656252196087819387092105110209778253301248606308386174497253439373307314882729186056120652639587622160124039821407711884194539485001773009991143210325498688170836822037379497881147772559615274174133517145826192847613986969647251075879180374373970762057290761233211906276949474115685760400154491262776911631715271275721168873445159540196956011490435313261286094240302521050014710853353698325975405222076688451012819297131458378148217737530130812228889003912523503429968025848839912858459644906099259528787871821574485592022155735069382858321659124378813992965288556107880418318498315622517808965352625692060652680433278229228266416669456085198524379434558019236923391527138238091248985565399473059908929788083464555812638063659117444003471679342503594757418588455807679158273470435338790051580024158187809183665562069918442213015800165544231811745633707369168228496532584516589587217202459838277311458968170005366411598964906622973958038129315921755714244328874083665510145456601236061382906000613366750091207009412597902376961884282067209242846602280240554512838628225686899119154670520128810732892524396587141708005416964493322021880151298986915500383964664962576992291603395933426367868630676232206658453736563947248910505041088406291044370415706803294652019850090551556715382310164286740544350860192345247240971953705415801073871949064990462727305954925287427490638029171591127709883776431039187837657766635273215780101241198255059915120741915639502707709077097854451639593733781025287415921283225477563394356119687739808247953639984802392211815309507913274014199053178236395495179769233102317115633999460822018960547962455987736244755806444352691478460298498657412947478529272689860616983584106604254993853196987107796002552554056656527952178789502205161860004677223144690929252694510875954191697694179593901855205530372288394919094132133404294910145428857813890001658054754962168291574340643133938901524537254362077487695766396724401332810086791860195459026740524465941933998623491275253363944320195754885334045146661811007352385527589726349487547822591037384980081936615956904432388994800202209509742604930461865522935790647383881397977370616114253333560256096529344630874612358170260296725385670900094988557455789231901462098669382012052838212509137399077076884248713465053162824944469474725438368257960983388426070019364838739910895071673661971100579491203393742713905195996753001140561477738787157823428640173695394306483247647785211185294088681490986720973314272845092860460733372633227844677318429309684413602544474157420897843007947608963436002056240403988550485369755710241171990718894823197288960190075009822712042812569827040337376027605839782485317942671990367701940697096867663463050221015337209152295294809273210000461308523820220513823309261719089793420322744653125744430954143827599847982666519036472391561226704910787099426298232636121700190003597615659800716239447721864215097064779964297098500823535041338274756479504592312447028520938828187386285170231515153469964662963428341440087768103710131894552111090931090569856140787147741102258761744337178083388470982409566665253641282569656649368435647760305786845612592857520205008530837221451518149182221057222501502905674779665929771863750027719904830809333084033712221264482547542682751002616755081195061493797987485679568443551567966729918968297747915886996101869511244701418738339154235201239638170386864002221182448908347527891906801733897322103998816375473303192191535282360818061671531729118912965892370567745264446706306775203478567725485105311606243097428468945334987826205352314052905355584192725150795917968717202484616283385246297191516535703862672133063420856733045557618905662412382243183335379699050331698338047220652258760793726733456208453910994795782063984483851559610728562287818769218081046630311439899331741248244906287615267944976057258027392633428756891831063991248202941069320157915115162154642705233939487290003996979666785184500227349686653933131883089869916103976915769743599254671523160876184778270369263200553195706870697865424398369793694691462343665956798443204176312621839246226333068535872846965628756226011947352279744953654823602884690218921939503054606270116832300098020788680623168470090301844711464174965013879954163563018050582531803052623362729752467046174646318199246772656630790621118599953784522377836594547256684412526590561117463740843425473490927011599201749579974732297278821754543942232757319937878877396445620494115492317379227568058471810945970993456516901146140393181165458410800654114993297230714582646214030478924476607572659669493270976460357816869675267176716114995468800518445152037216447042558444338764887366798997868299259921010846242091086251856924612656919880953191085342286583287678038309925626327875799671584221846872096821226702280310086850165654023363932289148319355631145761332832720696158737269169767710596481571121625209600899957322780402610025560338537047370214262525617704566847438146635334406256796344126190890919007970569788456193040952222105845294712613893505048614178942619760107698638624691915615193473864788403673775216422037321031519242538907786366270169891622811554170758246257911558521337249129845415550427556001685977479143781000352456181062076801809671232345633940325277701731690141388626344008442878884034334758754946236629907914042054170413303018994098127409632403504383743203091778442855880312365188306330716816610696443374911760418173664693861049385155227244367918320280519371843964794490768421486900484874484716747105707678987262151993056922253333534012739494822442400666048893956456325411130895522654991217398614068753967240088269227596445129064633528960348767077577320556964969418528435381426826537925061774623047393681438073859576693844363095364832985108827109477912729145929812980909106537555082760691722526108875960427114046421809232896189357292413666141063420073939428600899827361050172187126041734489984152248258458669045003303325081761285034218304206435535127278375985446471739520823179557112080765016504859108668662006366446989061937334511154141599548903691218127948764260013189490784667675086639960667133206306526829838924659189947047411754630222810263391905337304019272101697469223725523367508983680020154330370759036821420857583321950268041691101713849592320089898154328684166385212805208797895524604060472235893482545525240780470559534498300243797233600763504390445271978904967152073325054322646631068521233301201866040586179581537489081374102980532874185486691624833709538474284223787935859458519211137670673797838483585890553841156664366069108487588563808454641115932388407459707998732516742100080185966618650861422511675414842767721927644130374557231862203754179984817368160138676615278034571468497951603666069300005802149692724394703414295024485957437425963248047600961831143411361493939559480188771059216815243519030824140190432049259378236493876871156424294072799740366237890228631627237181308792855083999733878660398120263341366026359781924289093843563262697399808267582430853666813865521238556671349968431180760204716334612423335936607569097521308487013322672069263500582393431994760236521455809183814874920272574512967974818744148644735611973344341355123206219041857176549576288251720254895088638098989270340591671191229787608543250586687778351563281737128101150603292481867190822406109890905300143774488831954988585631731711927370808558953945296637032538386561979911551830659939031691720977675630970728971224217158205427795819489306288336565520659874104737477215982092431694024408687255021485016832599388111022369533488928923570117339573225986312813114556001553658819723200688757390713773700566741358410446404701253135247367373693111172366557581215450074303247949029875993263728726538285235646188831158583553575236742111957343965809629649266424218748346462801747466209503526830032523042637324185290336551110148732218103275198452278280784140123971659374147712069670218811052201478254509996353677094929025468178372225765629113655706670861778984581432601985904227354088968091784905798656250270328136903257671250201992533442576078196429535525515662465669587213251920239339002200014964140508690509547667241973867773682984433156488113774494391717639460550846580511207212588032392517241468224330520147053757373451029316359563331685907088778480974465182512269427158670198689816743955701476829030545714551441543821867902113716398233112350976315237645583375724205565598730365739674821644945483260304880487896989781017003613545253753444828025864612131448213603512062303423735492673473822541068771343421212246953620862648986452662875187043552402452719023805006999735872186596161582003844053788051105167663452005277992266526722802620883295592921360586084293322048084499944035165083383281728140954573786470932884156097582990476104453457330769993836748093032038219367060186341267677294203315779705806901976413067967271455234297788529776802519228114645716322940008616086722319048399476542498687136323793057583327611613531982767950125338656447940285628961630052686112426617667773179488424354282062087520151763955309898666014367096991222550886931788782208830815401651418600187164496804121768131192932206364026540515660844000402231815252654316500498070606679912607599824252455665425620969633272080015905186793845210606997745690127415547785609537734635885706307046944864136361577352117270884500375911519800280802736326412383389621680899203317888121186214904668357127707121531829144596920359909491515535730977079906814079985101264844945011563956233720181732763244694774363172555212594980035506972195307321562447374238967392566061698624680768903235383018535280393346274984820085886056226020421815358191245955081770310471094075888539598028145225469208705243135841781150642305140430468876591628130339770543167957760364316997476678890702092036305614024127756718454984875413041403247225497591524833359399208517805708461126210654263064368709743694278934872532088027051261082181625329627531865346524657319083665938169523518425417242234722807601402402886635202118360222086018759851262345761243917532074333952211449633105550822190546086453081203943253180946921478776337972251477654663814172061603486868919647251011729204420770751813158380424033198436434596009006812606724398446652689510237810931071175076058894062267611783012621719185148906072106029906231364469841849140071142981897758375205310527303935929635233978808381812472295927833174197425987882454456038142740817299440690692276444180791151915386014306779804911188979719621537099226084521716490906203374917192196699495803099375049943841737636436992864506974366482074587149555133123155827820843463816651769487851138332772133671558465241671638755823897290737050039820892394008025472671574952900958193004120219318772892273623307491211941615413576544803781106918064725112863654268720224052447516637080823192181679864788686323280907550867188374680978355508274776278547889929122786875907221033657965825848627098248190475406194375093470557439507674430654925676141223977060891950958789188611506420146874161271668282455810674186527196003369843375450192055900817455498328861427328415136987392788126924039974290709354865452097921191665998227352593585735991304837100801454015861650734476565849987592969778806257578434422052108793721838773421414172259394959367103092064184270250112567416399828184646633687849074147058028829508257048379626967594583815321081580079951541598968466616058606718151361492973129066040728387031263663292593147620029584915679648579818816010311640961658251936319148705743689510237084159953789305331474727198599334853028667982033666427484166973545922265679419929404358348940057545898362664128583340252599358691840249784011846183616967580207299840755197013379096545146401437458448161332814393628272149710215443087019596500626833807646305933225650667597444767973202394641471004386733499650684330539461103430814095658495567718651066903199777337089121696424506898630556056640589325809281528578090121612232035199748103642861306798175186910838287901114689414594500099458628298081798191547795202004379993774832183873468735850080362787012770358651901190724472981099569156488452937599949395724365617984332688978121010867261857937027583254530422061046436657236376861021117372809330010902706593206908872342392390882830350134559684533684782528557306764390919017559805693994179251964518003533147966228657072931852896419814560161047175344176277497499109448586281904945000315349581826683702053807497606349975960836737180423969240208866897901275674019984166964852342126480822111514762271402234095552119774372253220060667046075573529818873514755659493086211977580859971461682477186675376278277928125664082217897907268087489005559325295626482307039473301844609363326415500673035433662046188997095803683429033108337353110905267763344410719144362994065626204945881735123111262219561929454816593226041238718984119702094128155126140756011532324811641628644199152971467394366421819076129137240276795743565971124975452654942329763317825290486554354780722392589047953624797448206777573928576170212907144696091501194559297386490081128719347303855719597508967073727419686113515686350294470918934956888259371950457793410241739819398479642657773077920594795869649351096428828367598906593259458866926348885728673718196650345068480709859889605681807566168558421007827568229066816157064697330368895101110525396397293231773268369984249546539133452578328947704830081092878268590431422904109188604112589008046082109863806429913669104779165742781352183801082681085295462550207103233749446319319297601495149866125024955696669784999255284556108123080367411984274003148021887465830966076942253004798897101393156057392419676054841837775597876450208164302899520029595398661087496404557412811966776830785115978318645674496261739918854599953845190575948466154267038251942320999502805428139664197922862364378585322342546611421147492713891910477718602903901328140174906896050557116390318157699023944440863178791896688739920081000174774843533113347985138531345898065690542937495789216983635001684019062882827653524413843577548464641628715889607728850444313692727306992670945744007225673927548435175769586607064455807940422724723344975653428771935859617774333338026975357443899411823966355485065880306355251539379424348523284380531003766661925264574993600470282562469045597862715245077097217263376376563766012601777650366433686789788524047017065860938463731134801304118651825311795077055011549868633727294227524949551133979748398748168007665037113860439383291633937870651856636538640769658285266281638602256773964633912006056324188122812220888340475376750279401966177143705032689896207668459054271097756486162263306551297363827991793455831843996947689280465657199179159389679418303157022142920877220430731877678775913018692698423034858585426963647034065249069187433985341415812826098277230927650131237378130874947994543062970428321461259769449676910479384971093148990409405677505452276094435017481360849758254909912226408525278698136190797543589093921919183322140401888980051360780184453713789366650729904834280282001049463228905442007308008212229791915706680050068352922329085972053599777407015099578362460377817130923957659883240953577123265734762506140430549374123700698261310926599840306764203190558644054744599757865682534145732391529828759992802719267607919298617676824394777331516543066009044385117075184421203955882693863326429956618659667469937248902675680454505806944510348964003200671096327337026846501243874068522041662054058539729927838987640152507450397061966190033158646785120509459681515697708604999042839290010918126005426293359816764128577176569916522538855153002776196907895716086143028904753192821669761987509839009695417551620442093501637341147760896389653165095292892886039248622355642651757981845627364558633168553631311196744709837747154130950052537303262486542253405572073071496708076414853369978529386115911730162977295376711243768675792042773040795096211603229606052452384880711947799505116006254562075070009434582999345450989889427503481312390863199402028520129571798714961009746379393427365802459798635538828805999445492382398803928571520492732188868544466171010620899304742535058238572755368223991405866060268553069927315749989868939597585263833939574023291010560116488526343676804354441859198416388350591909040544729465852996226197600467791729245701013576813849250435129059153993436218334571267340557095319694092317686841677166410513509069529332166444406996916565503523424394267542215532933280025354150312930738555135451795783763559824415350589080384236127235760790603862934472808633721086707295366633311409263840712746429706571450571543576155632634376011210543991668535913723976624314301650995823957931073625932061213459236606439944805724715976288806608914160962273374722384596719051655468783320570500338422759960454567136712599125671573668996257669983146212577250685034045859562313366664669431497195789555567785387698450759945245816011020527867426547276734753354142197513633548385178470369193040430821169446604877507289324546148860627046950713237196529426181523026128595398174290600091142024872317776136033108491461652401639097789211835282921173033623278334331452721149435130974496841692462919866130043983389306300909268573525056315635851553277710691632979579574864438174572392308748046148073847275418500602058966044650051743336336222420398139017245927725856822492131279626513500418834918710715349786680895483866655400931226194920039530964841706297243885532431215876196756288718629818629231057554122671404562945161099143061288696436420348302451296922649946171121950929581588434063869789817963259688714131171208307907354675077895543064788915623823091589553093786677138471389836036817166132522699290534962923349213043997138832945085696774435973446517766243499235952885884394693507833419104391108633413089537129616454499564265906204709255717392589490429136405211812007816840708625814521175195480727518531589818018033855458199974565346666157780983902132897285649785881660978512116743314117759446239130623069699549886219078057449766891435672823226095183784447823353413194601836895876774800189195011869419494845321372270976453680817448474710440646439114588715536988010163456746545609748746337533966573494671106868304296665146063383605115051799395511809008721728568210988030610658363074970627566168737615788689279131066536630942321705677529830513374304669678956156586108181451927916918388070037383693644076632532409368722895036401820204472892432675951938060324884968493922905628575781235392588224176763208296740989524083481846721352088803900822953424267403534693369458028224486385303845958149287642800638405415305009578626535837109265595912049551908251985522009013033998008647749613374628825445442782447115753935953155655729025166158832979790116391668608461540699438125996837125950945470861351602483731744455284002512003870467151665104509503142497468862653344381450080390234487420300423616542390455461353569029838708779473377876450567924212327492652896088193639514120893606202606308146028651081307111334997311132453183071723783235949490509818554499343440416855129313257531918609314392415988977014670726030888499727285829721543307394562403114760437836847621660072313214679394117295419036831940152565201007427271900298875355789703654921873252357501975192939240763217289386789266059089908594358939425213058493524285180798004479800447868660461425696087161174990532973842504126588444710278954034778008033888349952376956853669923961951114943695655941112231577012730231523752531761155708691353158867675938016686334931318151850048862828632236501968420192262484380786771759138868340620992620376155343093176138023091387343589556805311635720442594960245880268660833243207036392309872731976610389105350853625088331041177985031991430762940129026953443185184908288292522303835143786148319940327869310902872947858955236505022434644481845944326494310148206783933714645509679102595479673849476815631886229792228232447609888460979310044663704754146807246437113043893212080503495270018864009593900493554894723480050727267088291990816818193912250077324525540431642190901217959376006351969746076378130829222355863869949195726047581490580854735174143113244310853831952083847152406715734227837652487072153766649343558143946301907834710506775379782676150932038112295490669961539196195421216584785229251481682978007354929374149653509891815485462998033215790706527299992587460942058398998362824109048991853069642278777051266500601261561388937277855786527177850903832647051207040377450148801635739447398276580226405963220349511795769245381789865004140763749846255054804474094422505637550664566498785973450011118186980909573628701536354751474754707180269606834527202205760348675792407637683620254230431001383988830751093394003430022933878268731585663736055485952143390632563080957560636590309834334770868705128308401097733175840691507365976210797883701994260007447496843257109370654446518006669196498553191869793947227191392304238054594509803385751315657967066154546654264256244455035017817782686265178883422147075727634996811601181154295609421614627074206071900398833402620910625217093532791016838369536453671275296374368186734223719524012993446828495347755905489278213519974778747941051503344922652566752704107209912192696045651472539756529970815284315194722287040799440964458958360999806523891524521152611894668473814081794756799432452086952098483090567971069343769513611812170613602417443598032973797345089251651135041989954978998975895935863406712399395345578735892493800932314339432971697990076731471043452298689697742741774588848562978191009908085070784830476848303945319648483082757865341940183947774567725099201726478271932305431386332383549633629639814225384378192260590290435373503105311011961196149358338904202663971974001723758465262679688393474496129461743283337735970978616739885517332468077653637472944740553487611908137812586329428708333931691606379519088614385449397377884241562777715045261980296492101351558767734562689007451372931518655254391848767809513343613712362157025675778404430896321315010629278045098565963511949772303270352005777777081855530469763857903646725113211675295672596637988103404045651312780307616489108145045500748850966447427943163337070343353427086011053957190500638929270152051266500618794588202016316942936840765854843014703869590483076861877179467630621455800661591927017374147356974301201142010645548453362257969867803004307866805410060369298579055532958522483434898596113743717790625697692713861675185142347080364852808800198138481194364212472578468703318997436219303110177528036142000691350970855431158886430196669218350620605111294494529028947007709171416304965416819138080293264239237123238284743272998235198701955265189678485671927304694287874945808756255748313743136273012341095583094389190730139809593100239715741918564578181007645364003262352997629471099417083695475228022884261645773841352649821301455352874293953471554163269696987328992902221351608589704871543044265462342199698512033190901438657253206626124059233718009367103650579007104718067434111793193909543643687166458950081301704738278858957020781907715000460664387030814075685933158289575529743524091772664261772379296691216185948194522766950764225851589019748259098693042213313128688182879273466059835516195879939932382827032962940435169203685788277185903643710953366664578851427612980765455600618160136918705375541152206380557428144117077845367103858053377532959116106337049799543786787351749036912773522364642515067761806082853022724236284803809988673662136554043320731847068616844641393559086109595779189260989891687303657575412908696441160457063688016874362610142555533948424274055965206378635835020467548102400601308130095430541108277011096326665642214562422269593737581143957670979566777981667552646735325305205206666585736178856965835329409162904532891497803690681627474326108224219712944692981586128106360337337897750962075982801228232641780967673999808032081801090953164885367142561098653493194143680555483814828526847416029491790605319966657401265898521949711182203618718183462115887565058284487281814986558973732021312752174179537448697062098027301221763035883049950597177227483607369463769594807326365139848652743721829230189238258159156934898933011167652175662039320400758712877854256424825227494048660454318430818100529175652198941237659401835761377827153943486072664316284860880199936084372321064623956149695924746206009260387952715769417876247989834398856189770514523424845739929382716157828914449346024560774751603490867933873329277106330384675363076883298828018263707826582025505382786785579572363510336717302875214233712661218569610422283084768444498998459726864555942998538447348535891771454957806855039501366699005323761148979347847185272625383631954040814095217349387820689098935925540743947853070062990159439091292739416413494953453396530041670332926004207157410598638778074343411180775438040389025063019402757995808879963435338765959044479162477450110814687954809596207223854627356810537066896488028587424507103850045812725467165732141182096604832544239492158515399429992061551412858905438961687147837482433288186887449454800186966962991034923673644002913964418296249021196237002585530652968272993830835411254821329504653181032096522876244677595369079584683450419821881756029268454788773563921332952684088049360773464637133976245918343262095781625332550010713300855976302058340946799383177914621575434094348357120967883410004282649206658112636968205602095893942902234523446252657122706184418547762010380751447973798468529310559030428788680999159308395700262964369756508612790571390624789781018797945008948085412387291412334161161232427177366828433340062285437309300294253316407077456155928142017712554372353976371185648164560982180626006104577806186179638360900021197733057230004909994652797390579976921424726948248901789417685651360020517569353451327615203075388963449211522759955870488540138863299701718611850295108470404980582724324509855833720380066598980258426387544193233265527399118292949925172652878858002020585524021252095218747810992941423160974296212097247528454748419041419166968168814934803768012015703896031695617585519440921330527409594395090521797354475112913521227981631411802515327292418305115280310197489559373015306874048148293475061694297456533649255286383155104964486063371798727944205404431795845115079732942878720786687409493931890309663072187371308492663900027012480386374953802067415164993714658155504814166541327619216516269755888579899676423117775318401544951753820659501426277583703502596845866803307209662388501046706121444172581059100611896452743523503048626153135816929935186448890732698252583854519932294775829857677485784692328588267823716244057093977716511307557048517846934000501787189896117142587168727140789255559686162088608670245812656345614459641205713689916222089174822003518996713204464254224815784403359098005721940762903982318363146125391766362324516213715162679611772209566089578930456227657437765288773450458254211868514904123438157410610706186483577621826769094765921556963660134941385411311486258679168813883186012331264120739252080656137169645346334380468402094696882170377709909963259343024824636862171237996413501129119653992993947153141898067547867286090953988019374197252023573631611758892161607651523115330977857713515400348299819828954295638517563556483816110033133441417489266963791923841422394625726242503120233721256431287902053120254233311903527417498516236089467991983177477637411682329712881723261753589326925262139342635137818716749469648221865966037409247312144809277625876228441359436141830569061044304967028640702572845351072330857783342723452067525990002522572929347590945813148710296866082193105627086979137641837903531642996918638471427413675291420353879874833819597692799464199030580096782337365562778721587469841411625998810093286280234921585719301876769325472987520439709418059521566582750370438097200178081108626454455548835844274318786620408080851896022352205523561426127982247563996519806839230509074968156377460109302994953296894367715857677851192269605558042669087533581553174027545711402814780129592072150943509717184562268155666462762544449703575371613717686591219397235813412356323365025070761108255727669737498377816958744959516387911622800428245303527366274412982819956583644105955453816191926026201120339727197595648133889744532818014699989228009964713695074421767020085512288361719134267097357493891088358333794273203211010656294397439376131907868769342345218412317310516044765177924900712806365766905424375162254708259015432393340944261952769938437939156207626385731157714058429299388018556132353865519397640400088424581339742780834766079141639242349994846501049283133794624452481127555050969522828806791991454391711944572234399695155622868232123859423248224980818794799328266538440918050866409072052749485750833008190690020370937484116134916931452688430423148134930546678830644621145704752176239806462847916668427351883287688904513449886565647617013109762091104808072619869417469738525845960352445186450589467728391001954398279958562812551532837697822905924348045251488175362391814805738465553780115593214449890360974683646735495352376824540248715278534867526983900145868992205807089538307053440892086554080177630466713753950209301260034737758118715048963625347725754915457423445428607947560647113019122271163950322103311413317477587527997954785530739235859750845929881749122774097666171620012760793114313691497318666606843621170693528973363985165477655726219469688865416169502495889039425257142666251405284351741630713684366573590408196078000411036814803332844088801755332847719914477900354125442983045082979143294984985767768035427506221704219531525091592660833300229158556875721042706432838084151201955430016284790147232779418941884057333433654367281725162683928737957079436509626799624735380723983522408466388183687960030220698371269001648439249204993556022316389555466020082564694553066429185520972464896860526764707820651495842902058840483319339585238044291873884820447530963421395098763728581896740684965448655365178185482452447152782033428631853346908531839948967390587823000990113106533889232978121837714752685454711929363649596192555818990763605433885349865088163488919767296173085488532040654008502350871154013594321654829678290554295094957931028365953468586129733012722725284081794689759017923709547751155292311388166009015469642401241021719695218256609391427626469762081088186421885088244787192246714394075037029634516596190614644168282065836812464541363488660210640690691799793253712996410268985034394413765182857246947271314217845620479435145234242122790568348541103967835796299275646550196592442734446542496457025038428074974890537211908958290080018329637743545189947724916579626226335835556870944993096910455807529869076334421894938945371466624271361565342958609524854472767433470839374792306142076929528240588792245525695175332353096345241957630411561504471860795570847369277246031164614856936825284401843850381290454385041860075095796045355085913406282658568713552456189651993883107383755525467291047054401852945309386641335723606915683777455855316434687612461155832203034547148060720219575591393136192175789549804354292323879638015226703871877054207659190244435530709191164682766144311891429118076973577916922604097715090629563698656273034688551336003435857813577146450942419580912566761708281860994259158833216115245440639933074683911620120111483038040019360186850488427837017269531112913999891179081902180931062609874201917087103698992847264277804790234819858102653245715973719502865608096367830343661674667333016863886395107655843941809985454005039186680495371868275285375185395263214714097545317758395136468196006186241274199389992203626117557033240539462597106953071663363774429806367959381926814109813714240929244626814640747758007445020005945296772722517031009838430126280476403749267656850352091527538391446809011691651839891520055604245178735383750054458702706432550079025134861407433080594255573892050444452435143868374655079783748797060121209262154520261981932114540204867853491861897257460039554314666486362688795056677355660219805836258257964596248148344839173962241565453753282978050854312453792524346761875264771038494564227148361850311834438119172464102971486940755731532243875626241999271421500293557918757845757841418405835294240969926650620753593761143349448973429630815798163727614530447182378706852266911586424046877920305208041090141908362363134737885965351437938165350697189303442213672929130603513241538816117486905462514381455068625335558740588131609609946356070960339993699774328021532259583148639709893689665310420764735718023426099341535994556294481419964303784350153667501565999957914145868747223673570173167773766351743416313863050353167814852788719046560430736185326161084229987498589731831168963421486052885987236129498328309902486223736260336366621578843286746587693205055508636414996052912030268850349730561503664925685062250169846674272107927230737083431668654738770871502586135645782992030881952867595322493789797411328871701637832735492170882727207175039486798275194661497504248480166030048355707354925764739278478836292086490038808622205901222783382778085973988670834951521063482290150565757586049280033288525785905303041962538803955272435410081323651735976356092081018800711519030360980022080262341417027499261085545139535550585130764602826803943372579357081639493594156008067839925110970513967312340881144550172687149768850076747397197999548185269841073986940172060409381969456106560272802950587404652718838365636339237569375669698027281986578230496849551667552550430876873670747870627667818481260130367527246254545913473144384653213885715226316419998718202287145975255686434132562877988155136295529180937176420417027435549792995429840894040697063125984783007911056274830902693374119975456708740109926965413702823871526457942715930306881789751139846491376899751002725953669773599835287915201263936657380617935082818905100692435252959281390021868528454947210447540486298109500372132685292145659674383625320732940700444539246269254521537626326435769381566301196792527738321272933098708282128064772248625930480747486744826263203336224729189096965631245765719551422883050985969053939137629975739914094608709257123379164520396619447146001240090529033676431091375059287874333119620492515405887887105820736908598315853547479820018172278909872293597701771324229337346879029500899682028553245087772281250391711818167427660429026791870591946047248484395723048745786410818312326009694548534149611700395933992780510519677554753281456152371635027715829735474870562326139699793331621222138124823526872243009725651834465752714417236071069700802487240986679179098291397954942242198012417997828246898971366233441924929373062722799152891144316057800455562940786144854792124270266077741268032396891763524053889681997506448945234145923087638494452154974713883000129840850299381874043209368191475205166117629111338495077473944614547925937377669378130720420514827683588863225594800055083175240661755208525512275588427868453312212321514991351475342572118821281969217648173365699478870410535091661499131661490951009094250382057825771796311095676141067283303956711288533227839978340938293105885155960358482392282337101173655612813550985937627025250780981465657358113993558931989327237648893467474538448491571454283176270733789982324095860819456378225113980369696635944951140258070468248151558015961346690581657933917026685139198751915138706895378524261497519080017473984232577263568706885655346891032190773139703918370962015606924007618146850589821324192837396949208639761655947736162404203240060847486886682899026792667889023463790365936439889212296996647180388178869092625967461329309241642481316264274268527465496650155534407600987567974005700201372822080949348328683195216431764321605382731333041430128521045926058228275157124433491631924718347367976695644639695455058285527564569299532900213403604947679863976583344340958949164153790565020058377048697703625061610360274178964691064627275983396202119979048413144138917862440156398938560116206717468291484535386660223362396999528217617770118813797434076632042504390833580792147698125167467216674189594788367904843534610613313189940071529318018320750159886550137161642179788414699661468751509500940795802721401106584451527131947625964666258918680192238540877294410807850731166097899338598538617183091589304509954991724382146449548709107058297826074470169061320573611544164990962737913242563440664003444069139670314206390538927491566944484822611744045299849645982035457530244864879091426867350262417804292786010587710896396468551281631721783535257755267680977375507891124075982931148493208088348222970554867429247041519737752070758335969725490464770215790288098118607371870011601885865831775156163829143929509836682405339760904491878708775279760033064242847387982597466184275493469820843049851679442184631455948066874448972401996157154003779407533043047125246023098135313052576739374763852077426018301325290932195930389972396708898929099528326928330668640980907759630313609111459506077918411999660840301202615623498261251893382173910199023811731108535137377392235782545411758618326332910118489653305274465773574209045098710263031426112163574482286836387913882662028403583066309404610512591647940693607872388354643915850514826854736636047430471351132183997737467165077840579400516254555632307164095775696500237316720392305281394888392209393560243174693674353585209895723259543834505066808379423253469621402641064140844538730147227597858788066438833185136278321654901482922043824608901610674717376705256495745021715269981514503390160723246945518989634283587608699285740029258423806829421643379809963166319058493860093780012528462021831730883582060089694246067913065218377175387771030700845839440257546649137839430807480139324234483203668352055133469379741606780132785510888201762642218175112442421086871490762873565716465675527887560820287984627828039802410160230276034205184193156467458543988357302871170911214882820133703345708953869925386069823116737050863118889775858486151493920196514811577048836312741379871428251414038209046335610440542153949761001178324981581538081602955812668157967628785301870918583119191810132468488004767704364933595606887378235245830512050660007324124363777488810672747636944432979815153504079254244554454179166429485464327531355587225827244921204506961053857719830688772954118394757883368567887259361601539851430184855156140717315314509762654570653474232156061137051085481882881325124738480606700912074260870768967445576302005156800153162614218532542196435741509157044759465790779403788836438056133841795009537180134376615710196217654767033467201720024979884417201048852158925592739145231465732294929662197705848581880758757794659926116473593093192334332256889783139537590512063753972242171926340142476120131026348101770292765192013027119575616420930425632438731610412301839316203622609522855267595249543956788055595736962277245733533501129770519020887826871337068361447023131754229159237251559694239662944563059562378109167691592595657902345470284649792059709836338901998827823185543873596604316606265389719008266240527797224324960616041635108170530047383011433936479424604497655580658415374688727952175333624062336562231555740057891450487173127734153296243812662623257422922454297575856954736449969753017808207932599811525652646871950159510739916884119877514918282606985590416943568129061979473229129963787102600652226103990353148949302912545860517207826696688811933836750791636446728335058921962616575587271425894396680096463924767813126594789156608887335288248556790608972151450323323319833781193464103233368441485921610401465590797780546268859878552955804911110656900300603181514791076325195115616969916378718479506228663635830100180708708621548900237969911558251856498964751566831693327908145452209494504121913490285656065271781749650118787248718106708226077764682500165559339973590675191253108664647861298873615973968247103877209895146986198341721441404812993115262345236112703662742556593566442846070680877688136978479928101815918935418046201349731003990272765478277883041733324378149991245453732770625908141314437243596969521027893537690302354185683803355495324078129646047608241501308929240139371579584819881695572721110803535080984482122345210499619066176188488027405252441368142666793750346678520556674212403733469533212700022270897423276020698736988236777343680982905338630689138265755756762930834069188278237095996301740421801393445234990486363332312983533497306347013908899203836775711434708980078358885027679177330710816542402620901346106646651026356425700366609517331206697844046582846790056167462438256327230936611192118938965241992264610573538602841386213600073843886146462934246297436242701519606044821921685237907364253591818131528708405761932426012552880497871590374719552704822957486548600896799875758171771138151897922617686943548600873271946460309348784877150059679577053743335874797831554566751305145174271379034516450603250505004036172072528509395257781738962224645525457195901672378325134371284995850680102290415152529356965455803611523046313085781951813237589597801754788903860833118161091573384729197461933403187034731753768989794053924210733799402913832797598617504028194366089990418097661857923790275488049929074244246071882667429122689510584313313784086223896178302633658655461332248660989403451149446843895774046463967872256265855685141972767112499286601689124342932765837755322140648776222894810097158021128077316173253433414985868067930513009854607617268235233158274969621531432229849368493505224452572209935771901857909633961913171497638375258320075153942438561030965620807625135934434350285565277335692488317569324421828373431487604481093709197821579940158086387350964586882969239679317222559090790512574765700362223408340136732101644602435871937316321042397839034271123001681582815000514182423500030065969007343022785434114295736550150009895871248114539324506908712422710341877185166377976633493817191278842092431307966434234303413987201330031313119105992427212037289063739798622507861055725299684261514336790919998575149014813937690981521180821131053164029921661559748548489434510255218236880654612331460741657472145655542164044516682736621869348431710430462861219875378585868183940235887433405684673390199093596229475913096448026457717660822629800316617399912307076507216918700831658848571368991865822842571091567958603132247930033452915827135212570294358808765935988646488591211906367505314112925633238319228457991754849663978241176194453511844064364872216319982037820310008506983374958738384851473474828211966159735756942930118510871495725161404672552687743875235316719705039388147048604914877352226113052237801736929749945870501023833435202370478761678818266526697970862791522327236706068480539076617690291171465481499092853248075556005016762692846061422505754633607306258476965830578538441156386169405482285251508836730715091240068931341636468583758144942649875683874924171953848164782969781640231398729163071088183879281594621290590041718355616853123602582159695921060736325125349621267373772200543079541534981773877128462977883085320279353718831023843144921206435058709779332222060720155987630848040243625429670390636642038884198925326028124973227757264512090578529117237262628891527936917291661472513513071988119466533033372561500764410210153764321400673310987444122396698032203711889151971906023507524990404829749036558690789120738645078887672730230103033147967560591162767927335384876756105243288741095507718615872325954433596890649354104114905044223221989805882928149987387522490665853916564416830181110578281826430277205260913315047591430555674412965897808295356469179822184109324290604915449949490207385748148755437430852536484510720253126637309243955757523278862598838333573146512226812953012227731496189352343676567835227169519975491904555133629814136398890328988433384627020207895680500974623987661233050178011915997050531170373695276872513822747006634023159316885319908136788596630285019706154683658041557453426996486030234596802261394554947007777606174723571848995406156636178487471079021934631625949481820472848946588905800162817780766427964404185537320345684835385672246384584636959704022000300753319501492812142249494117725076389306523080171452980695965448220142505006976667932290253129000040631732773913916422251575107620205463335269681170429312686848471701009336748597927562071824937158448442232611677423386165996514736218334433083488714699907484097935604034983281261857763974967772498045008307818598584408907419508740433151402451768471012555111654331478304602419650924947624451541186018797788194347041930152791553286120628046014969021786381876353518351324101507057910836452355130579692357542407493309957757655371000632505425237737543148835201448629698993611505628790063233780905635675570472019455492785165668974233013988338064660197021740882985365904683833556105461413060152709553135229892754162179518865277215000395830221258456649661495827556299831839210909399648221748040506362674841572260399497200155371163894665152472051156571410315409545510163568200379527939915567583339339688456425076713213975892040093948911856746887724800072178800435489885260353988518248724840521072069510767618938243834806585362526469698466266671792027783261439192198359950718124426672798429929655556192006170914387288993622729653889456473674276950297017284928304275007790376418465117234427777509519385890957543853759071619231907388798291386588340995242135911182139907593076901942650297997500753289927382847967241365739524557951193596558132993451012385203382214110925171944693705098356755134985014922614590570789823746371397648786640820452335261709254501516244021622207394248827627996289486007902361149716203915369141176689066360434295470148025362208280552734941111222818732682396761277856732808429736312773951924869799570628392562482547554707802546353346121174718705254738498748325322898935468360303351746003439074903909776672654384642276390405119483793115133095966646798863484756425577942170454368652806393337657910837101042007695536705233059599366845706871569387280206580747615758516389526519593662683014445242824126316513960644146099642260260665818501634703004449955634481041337567095701456764747814786958679047658012420737958947618849717761100607411268596193643570433306366363142968668032645858515991380411681454086433034527859062940577003143566330097341873314315916923705288895950470001043699519929681064394169136425133348740289977258558986367605931354064896596444635111504456120433694577882649335492298030303563235104586255626941340558739037633609741709351464541283157189688537182957949897949041010416967475424521242184745621354421092150013910534356707296402127445786131847069329545181923978439633829612345104764962902274042001029195528216460897934112349294564631243697290171560507739259270236476491126603878798795914767750991154982747498789798062061559378013217076489955142053668386648285581074376318856338066119765805669828664910331334049241373341602510639824487081553341291237932667734175973012966579678816862198664059253333450935930820929750322560183804658876626126152278130797731174455079056776831663314107074641302586496072402568815141328051092911306361025937501937707472723010005998863001572252447133627806532365291463044939467778750810605061071009779194000202869710633745550995644919345656533332088363510548814403237144633362161962518799703888194942738403569197749076572243036589542951626563588050802222213095396355044385212324691185385387602065593626879581092762249836961440547169203469180685689931479083482415609293642735695292496245429361148965358283508791804960856647186468341815774298125411867013600171592081712290943914225675145491832677050854460281492771200583256426255629252029047937964507941706226076171457836932878005032598149915426198261653433138081849890937755457209546891113640756360865882804363758272269326959771140112689172697989223135536331502313495373738564074158043984567635795433219597230855588243477040982040632566613654090504182608793097808887372768371844284983453043138010620303903604934900295773981050384764611861290500293754003258403069940529563965129132938542923207515535989905557140194438476956769686419304936317845025087293555490313834961522586240674443983205992064528272876918598073012966293348871960110073109047354018098130943861138269165343701748152261068312699139489989631321559265566885820545704374151482891641680477527764776004068564788656565367791700136510667293562590220656180245868848465942754839290048630204574740752327107881751905144229054558995233199979201256844668813003097765558781789748440347008631820405352066580220049311416799419691810424366268185429057441580734976332339193764000296336320215348273061774770947300592677611891266689593512494664473575072318822675145785152186514328929028789255976590428961234443895262165227777160383403711779293436567512335667050916515374349087811708671880777883543567526324757022442960422865438725375124154667365915184998219755170377659237108315543566013039592014490437258884921399473808177700595132700396745927512652040142250468816680340038805011643586846871419174332210454515095995491655187807630378007025435821517476213211353885482475522554371095002264022923326869809037511523997673012132018194095184882098524373891031337589137957974306767158465726932858682371103105847948715215562343246918772157433725521396907568692423190633239184084868638650439914416732319153261867119594118653327377333284025104925435845646759422503270747876053726812636902466570556497053429055792750241771198248312281486933387992169996369876218967319199433931749192538863578488004944812442165309191181928033265074934146387805295164969215510583526545881343467425712249111025263624219258762999917460163075490159893370063100432197632104364105767938362749503616422644650034958622115214733348041066952696065728509485426360527877616012480941736043714568536078752492984550875475529929433056776356541440567253687409906263659722238371476952320954014382968284972812011182587180553198069088699276126934652452644000702156863812137422516468067747389768313044142130304754366258449753171989268950862743508812066742054414835517732657099007889007687818455261864054950953813172642122986803451346876334784681440932735690386226280929308878566344063717233804356826407536707071861285137201166479004162833958996855189736177479899962909441188202741005410126026413569202086115779881110630001464098169143296166405732059763635314954365489063492179060433330771734843291270350147504446215993428672649912625837062314006292772838071154729761677344933794222037103266611787270457032015760096884439671942924737268459037427093674954587351842180353294714064484885975062779950029001155052906875087733845859356439632356006347955501318487170904958635995003813780158417084922315158418363910291035183460813233590619698791562796148313047557885400106954980646213609240944701816477617644295418050862941541836303767937763662516115303225492716180355431907889137220529996303733763636752423107973864096029261027623908259146021014061680661842573973175888598157691808825310488538895288567476666735837578713321125766325080146134828058320411962975741861720191095296355879983151854172766515196579677329294558952236114204562301663550783004583763770513491226406606521750628834827725873201348024999140862865948565639003658530619464854990444557574062417844349699675880006472710085221982900866544804124068060762077865417068918645704289066324471749137761901449705561476953176037206822573636694088590114809572340693634474811969677913576757055278749494173183293062725671303816006212361909331286375697300913359329807407792605004658811738215426106970770070032405924347598791376755087834716652978590835093879126032763268000008645005793348321954617415398896098724833309790967223436149356129526628628974774681871917386298739595054400773541730203798676330021979315118281515150208902278511153106349005097719991624532272569964102139388384751418921746876975709866562590930357852371694147479274246904443526041423615262900377391733089118962192249833796359856375144182403810366084328297905044985789772703699253657961068121958920090434272353227577760360716289021585896997660273886099395044097169695162257766191732081915172675887069022336501071485688991676910813231721769097504019811003937315198397595277357464171089920587556973225938174843018628301510048124244377826429032670518007889555704705424991031381651551217569866384664800559320503639508912943748652725479795055756208589463152402672215973921516585391809409163745664228531773560349764871257130483509356683007111369614499614556836346561159487265857521792500700284482494978580752465276463877514179273604889031880735446992819120660735968981243865817340049856359321760160461581740532377723639278419874274488288975264938227730449408781772495714800345783427936636198641199447700058127994548590332308303320616244152208106741286675208209004824296419527483569505750894766613328923918693618808190592418151405130402326410945540049088971412201880262479893125612359735980764727553678682424149058317805289962276593486059566973409632840511154165637553198072688728477285327632955926886209209533230511602223731217465896227723537101110898406105661563570533443326220424974544087729319327368359880891418970203950134234737146812022019292661172011277147267785493246681764729978689597110225428164092179382438978708780189195984253512914661346487001947938297393657202477726498848236100928584289972915547929579517958229965166572166060242360530826470946377011488061304253608853501627318740718467285555469814128212302516182691767324414940030762390016995581656143398244947296501792300921622519854659394021302974321931104813477341009123068963124710428596327323662155003713111677957666949486058617806485525625725302914501193570161163189291402011915677281580106445568603393110046144041163518575283647179684514229316602531439310299464344407874776083443419526017793808680293581633988458128456833709991104091973923215443426659653060167160877645187560699027651911605504393116783485513821130398992268938819991888246803157828038754857186422486874155776465759606768682922048308815618519901538662502962063809635514867993104717021808003878913110744720880742426732326972839969858556946034361474242029269197446261536644581538684857825063384330829331722448900197603128000161480678702206852197133200324820143928479917664713370418176827421379828908968965514602676200320132845822210273498040507418844249727382243678457776126983230625758566980276456181194935829276061715972706298754584007284245727846426512568267514692013518988362274990754864632220371400614864705180412573490654000811456831378022137034992760853877369334222066477649804684803806495882635050292248478480652164142960918907203207508852574858373465582261619629873368347290222276896360860435374004449554033193489438386264289055290945526691778565356693698003416841296686917092181482569425716316748219548226201081302774801797778176035099150336196181492910148654168612552649079013623675981921234541463027355719232296619360056544868571246977780152914581382323576523534156070546368438471265870724663813005730455998352672769034861059104269219280523947254830068344014919377880181931735455858039102690792342392631606402421578256987464484803488730413356672153588938345201686971685813805686542455135896027671031380344404319835299635293596179133267976503045171093156405942257920371198958073884168692415837827700237233122866373660199058775454353685745766444500733476556582135874497709271901480777825805480294203662845716807464875508555538309519162315191637072332699020067838674039502400519862654296682475069798772765105310773898852645191026807473342618044016009689904875196521447786384968862193428049769494571927557561912820331261305633926388489575929838144692630985602502737134972631287081528094698112712580657642353721201200537090408811612844842211889336773321327477197055412287976339275965169197771767605434734992792897813770384721113913458365744054400165650039187869556916907895364548248925518180106316577401701865330567891613829096997694480126255499083353632111740646077590123594142986707017484732331266389637893267652518735198062667454908803977548320095818186600843624512003956333805316811172074930391033704270065398496618191119185697899330453478950237816337041875435844820332904615055365031973983251755226176689658845825273169889941221640762064637843510816991370903322077819124214942955207778492612850928554271223076578312274167794018562446851484203880304347757433148642240765311901328441747214108543553059124819932720029736664112921886940953184759590090701269282153868997072553342598662287929494720550692317628650182682588593421165145825606408150509648061858632625455832476352234881429918104281400295897278373348513092088357159367260698358537066549819397275328115231388110070161109915397873239180914894778053352825051746542415424243321447910178939680160833654926845160770600202061216595235989407931711118808465616939685660824486232602170812590535565066096019793940147885783406912119529768248012201029107590789150196064340013009788959950171896319496431140823014485325849354226220926888988344246763065888591878520867464300263457444772387907550350395563419999792007424375084945383923380226437651975081978355848287330290837964351739539681848052762905385871923388475100106758361120830033029626709786549807848981686516599643296162832199610857624139518463818222698187825438240636654677050757885933278298078417418180535903866776946395508789902117928527168095899357348479021281134317353047176020568543067070707788846123834520307946698063514409380743473214539282124404357973829182957261658659430810623616674677946170180102141776637259734348618905890028103575454826764616315047453694588242487160392906891544995009087509272975439022870462541775035485442958246366127687932116007428675278023821741407629780696252700556582468857207478820472524255006544194306496230320377578247522882684910136526161795008800947476204201176213888273423999891434055376433706332557748649622209956894469768024153707266117236464440606795678291235133353970763324937039573052292658575119233980044822511129110551931526484092207865205448575456224158656410507393258265996958426035915521070841786413706197075160120514255357550350091276387603774231994792690498384656396118103926852093876769133433385877110845406480375085226417862909354601661734126672056200069809295960455820212419944238868561522810163300799806681460859724636966414206320515252362155759460605337598630283324775141171586336141731348179288013346134449132911431068198905370891194348260691813779013067274663925942099689383387822558593055695209702103667394068304869736394354444424435427271205984856581107377490141182989390110352837205356210384136084876682773897449926490174887596817150561708543398078366030121056411496754891865089792512470562383182933237287948414121171064033371891814549079661967091810995677597878141872996032055406180748084551019778883096762223929900770667604087068067897606064935115549577826378454407245976224693148606182728270671244135244189694852703639230069904369383586208089113937861503774706454152304061552727422887593348419374271658381052175664275049848519714157679348197043955606993486225734939430925074156619398184168467794327600818282865158199111194046317670626603262118007449397957873493925605318534438138318550125595345082112359216999678094175888122318320368910241826832207085295301935535145314482425020024911164807201064862196308915776061044373228461111385283042162210288836216680909038240320768412042274880712322567960123459312716347259487354573704339483799284569272815061748936310812172234123246580458468805222269250416949838575037843172808195777124011690018809156679295347093649068016957229631849965364056693754963582425738684129804580064846519957977888214416794375567964177136808257885516026571767038541816047846469459212359016943920635880277442904950384498065548483455628933696550195384629450777513179630675385626229659150493290155222031311210427671664205296526921486763790535335227965139291557003214580743342779421476589644931773498704233561175319551798524053802969196289609488736867595034562259512712189304651930424980505456958735685268685752086017114433127125566506804822770999059405547880878413564103308738402988305441288286356647536780494482527958374614514489793606567783506027911823406157462057111189603638093238417869789375533729030436589568656377088661342911465851408868584081328983300134126342827985939698994410413738730892444146494995092659341950314536677448340415296027052812512189777972653692310459820660649975589617110595433791680145724611576046391186357128409605760898302554516708306738640356506067751251050413499049976348766263664104628060288158994879246061925423066894234100680102730582137292621795857123065573222295798269817809682433066694703207057289354617989230654886441801901478774800954083789807247927903937724898488604429831958168719596822126101865878826653579895764551215663911060225593388253581708172036417564124640004832174094411768294853198913288437149949938691621675604808386405122103219125280917209791775799240422875885352993011308891090876268801841245980430686281263954767869794950463839552096436050794664185123472406967496432412091736202659497731739733941191072563564718752637783280499755150435296693233993187390445671364012691837898764926503404107362199315760883468407287962029983442566481995441982179339842025435531586176758162717832073913092503384537406247262661224989354819832783305434308737904061793727109511251800450853732969756613685360075354954841402241509498869065432894550962557761529648215791638892770802831533418368726641416520866574348159533462446780126087166461733460718992822007179700410978178309589038587736492770865969015407923976122624331481748472773369491331881089412724171150912186508596689950927011198773621677006298605938406759826488468335777353117514341269657626065601315243070805249693685517387599698965024116571494220242815506740787605563643643287286535097051017535522089978784747902783748225253058001881507600000128379071708721844133447337841958272109507836889673028373528236884538103973084851311480706598612866984821952908901929484243398538541445812592720401608070502076171381338682950669810354096303383285718593560952955638005998814413487120662916881596100604772399145644894253305354238976170671842010471468657152308745116335929170569663058027522140758290288584478997410179485468018426976569130765097326387720328777055217702156076707987425881137419925237410029548271222721188033279528222920533599028926005537969234188547467860134570716902629484779281454140054369050551506087525808784996334799248113270675646791323858700992640054624729365717468069489990859502153226968292554592696585454849745863595212998620587518890705320592125069742557870372256463112345199826497559206341824119682887675724164622523385910779752854012975219410113954000867396073831124278815621980906186822453860551671658649235016414569850818837993564009177562807273524652052468363442541762396151493445776231903845717758417759479104843986193017851811123149264016349318340303132600273385685958512301614508178532577374015892537745201406294579575886575911588809050123181860975604358165157556754188636912246766694603386530022669069787209134615836818987310533056731227755522247929073009381787256889569482590227359846428647753002418578651923045954421993929352517291279259972951291697323450804668983910732947668643304056114560175062367019756296065172738177743532123410371053900373877427273831283804246810929627095218265283425020004454963834993442004194544625184337952681872409139463407869345202067266509351042811619418149962511783590308014342226374639276622298431203469212299058351744423597593700455576765371985471232202581209020137777109520677963795564958960082936637642946143467817839249943721083363162656891828101811354284205505301525421973949940637724347323876412861915907840064255389801137251997681920442918827046789744107677580624921751141957747770420384975430541786048949208734969977538376065969875057467592733196682204925542872628395484665859386740708026615338374600777243308327855831509677788173866882454923917845341055703623751460184782600847929447651787924433883629688844823132982133461478621599234746782840358577903915560710641666451640906988976513544264842801562530627679638297186288602943591010423347779906966739089278531174410081960771076684854089555518599912132605110818711866869889705289964514825839996029888123069557245440478379186395195998143975452951228001250496635670552514757808163207560346515655972232696938883393433431761764364362193499504088929612305058250303082708718324482876194087077056933002760035699735727476496500602542764488127937615290461873678543991115185353073956315309748095863540373751431377014743887059146927519897348658368272297322198341216668800536204573165684800876671610711232934188158610347372290714316030195833070674294588137757277614015191123603924516090720796057170861347429173871728195863972058903201990590571142445571499219212635173649017751200213968065107035171332409300089687155068866888103378751639811625452589481591334690006362656803606930243499426362870602515047768486152984385224726007093040794228094551671503802834309875724216353873635340950751998369868883725219288560463453789629420715186403135112782114575782564180579931339294302573055516715818401280558347239445519972548684704805069581656631251880889503393260712053038052342551892035712729554250871424938481133953996171318117829602106047848292214623433399139540517006890380170812027206913861136724689709522597559286529380207450695217012353517123207816587962901000863714368281613137990353839927963092168805653589481116272152539830615800369282098664271374536782535283977196073717938694576867575401158309908604062650050534790843348083067521192595519447312883128233280353144824768334588865853013702575522463408185599874581316654263651174758088758785007024620948297302333552084859021730893611427363190821106172706296543543790494022617678249855492308004912274503764464816423533605334368696304821187360106008467197985191445069676923994206777038983576612295136882121806249510679236268688045536111334815976031421850456549219228794030588011048606432150280175396568911083555753271429431376788939608408620687164462287369656049609178765495602847648781454790260724080936886194433786563786147926970604418349584277027589564720990259388757428684622399554883726577014621554955633141063725666160548403513930772790308820330776488824262572829843931742724972593618586578663715261387820497331359829984075619186046662559319515714587402948532738860418042454975441280579882887240213209816882384521769659340400998795986413173018896866570061437775210891029670240566606356086592235319254752528390697226568947279579687981068908262367463733126379769437625151875218659320298698237642594729061466251645142591269898220480350454108734330950573035526978192907363183412231445389566001551870734011837387344136386815588945111639404296520447495740906022883752365596700116124865084368095835104879943852693015440203753718959923537277150455789106760260674693338183425711900642965679638849487510264241959655625022283627887366508336783284822629490730933213643254888024449476788486180403141950450863751148205736137562091280513767581904660416634582924781905889726020587033134831725151588056737097324333948809167972717236565413056393115245055427958950486578206800008468791288530375680037643220874994092286757350936542515152168795210372808415387354140876807343153864114459839293017168852521425037322237631432326309272222394443989994449640797009137377425402802702394722846685503599405188811279672636457475684652187585466991459136807669891171983635777372898363585917680729046340962039975833362956981635384995254634515183938143378260796555532882792923861223753267996836143038639031524298646061426324504755090572596502458984065365576810238124384181451765648518952738733033155683872215322378862000476096733695675867486097945127085333710484888203384517553070380780417867601425981573151872702051706603393624173571787263865812898825973600621433939242665246114164116713945218644386509481699521854508655962390502554553356260891687408613051147306871084281152294547898490891378557447339849963859297599100381022637380393392982196684648050714019370747988414383873263749593994371170027004288373133880054986935950671519068731496801876556379634058639690044670367077046369296671864107678839809073397076580889574284682149240256366521221878917212760598318988498259371271378930265266134632743349660468126159675333208994022870345057773759945328612440125771415217533078538602608722429458523478862380904090958257181769799027506901312670030899304640310938225117579958142455637560920289027680024769218230570335217429103661359239168790480808255628779029555984711543345131833993320416877840713907121412786899157706014707495771370466276318922713480938153932965041774902665593432541434441523228403199669321299043997909652739325722994434393915330659201155594652569358326910091371092775350151782478816187019799563003154159137438056734547346064794542601468956908129170933168491926996498613341135055318137496781264480433116387930874233887256718089257228921902369070688847196457821594236823134175919572771095750928989514211106029466656007828672003603624444858191089203149525534080890217493726667200791621456663292946806844279770318635104051239828931304595314885050853450841767962001519194675648440458380773154978913989337386935270881326001295263561753163518247470957691260525587026489018727923314470471357871458716215525158048336060029741867352904821988464284280161986874658681433018451856399807172939654614890610897535378325889971903720055674568936968926830069651708766872458181699419404946887787023440980166783748950564741353329044886239706622684009526784154958462471966938249752690952180666688432095511468909795631863413400220880231760430087390259057201699068372754600335069315381742776778586231313142479398599331971438184759909192566577922233154394260774994341168504154363584264126074043744484324470179114866138143570307910396162910990569996403468879499901395838861426123909081079407592998271585504530917267554953289924828273848014474383066300285331982397278033152071514584304890456319593565472006441579547983518113872226060412925611491556219915242465926226726052126770516357499716752764939492354374367384238430270049823894376300483768307688151280475567883730903809860584418324686964494330231476951739313614688717277178856817658739761038443289801457596487543064030999820803642030117442686757452319792856271798887693151619034071079718332260571090118003127818868190935725694922641687696836602833713580186278125380495529948411489817675588248153377740997825721555505129747969203623346828952677872653619020113582043531604967042440778016929037827018757903820119871345032381946324330937713327799608775507814395191672589877990577210724856258504219359287384421573271116415695311546294168752161878393469126656418638280743863917558395121700461017764602383778778558127266814230483983329112626351173485558720260867292593718381107525383943011134155496938180943431512412994043856475831532306054338329605998408729608791677564275859032815307518407104017740837913241837150361248345597587381544187327605017177305661029719688689907473789025079024142118698374234600629964033922110577025550312009075400304956612505650832866691929785728990932205662220899578210115098402270815449234277932676216770051504082754579334283256596404526463873059780630203487616907454421508825603774340743403688802331766429092376752378442030032680119575252177517476085288075246173988304559047457184454907533058063255182348863262527503788996445120126269098238702551439338222676516676007584416060758056577768402216064480079980275028140106190845036607102364459100618380772673481581545657531003675423509082004562266196381488554781892776645512695294830075259089385336100689005879784280162644409173773181194294087068867883856770891591556930711403567534921029521167359103795063737879682258691924318439466922859135305479121053962607550469204459847328294921975036645825934175551830758428268412930062024059483782093793226682365120459354114962147811436525887968740409093887850760878218415056665521317463537913467593027708830460642594339028396701430420505015210430206977989449798235176404714693575340027917110398392734361152180111904354334082487522309336186719378268575313715103356760032063178518659749434016238203834804565104305917396099510196939766315279853534332673286500007099189257716378486231954427437465668414150446067880922845319197723047253966632358691706013175232063555365095829096100490045550169694450950694043044704026364564280212134380038971246882649789651625205848383275925145776330867812619064147446279908805923755637034779099068382144769379096205903441987246950756541700072447125540635935023032189535923541341708530411479735192280052390418749251999422569169891478540160202899158392472175570654821774432619701267924264307332195338004632091134455255693191161460966464410688115085243386855037787654398900211644259999591052901538275275103214247059059706209028648086190555271731349644387945067488253368829776581842819173640459235407718583504463102099533636639194776744809254244238308525243968742877401178031130119377731856948585496583228113291097194291326859612315609691302887758085964893037359583154496087566395029110732045308923386047070694735208095684239539870301843709410333755154143933506274795292610222973359773866232969638254792405808426752810444746252874800458958071017344004007484156460683916988025933123177553204142536273376576468870798814024326085894473414720164050189979219309800219041870893643932926473036458137137479467294006379807765741974980274851105766098020776226407993401966095374084474571316371776008935389263671040802696182290216254313798597262053858349298963507761628017309289160813650068943801734230207900068203145551061979486481363176180372669988895599178506085506727282569244899096825598710097438473242453626467430988555039551753538105899992297713270518546699582844504812613987781760581257373357108771668951794127159626010374008924862485421621181732285989105537552951541881252476181659787609567011412147831138191321571108487049685236157559096846839423331475755001816710175654031286877016371050045738010437991640991055953402193530746162072991417000016806830823914969915312885476654503932448195683074485254568456649877138365072070886352344099203994898630709160419215786971876492403383407878321840414983790100745675904941843175609390875422596044856370760831928259310751649984738066581270760345746241789772981475415688992873196996794164082721642854590388214185812425493159618887623642769721725224133538735337158968389154758290077233046717847126815854380332010397877489477139648578508743224296250192882266507872133426407624285922304832604587109808116246410656848625958756751383429799711893809567991898046437609274779872214442263723431282181945675779477836244086153477640978594260106965808132013676196989495489142567835542423097620666773893709192220491711911712975437551758485028337536783282526543835704155575707103123803974402973657411462220630704368219130688958797314277216393042739209736402369000800706106477151672792176883233771165099653657342048317776075892654142716693300568610455861566500532684127984197163919932674072731290548212500430882206991069379520765210870737716111085915315063953293202215004044963095506060656768701475357388865294108911286529106388583203731704765157785093094212438032699997152693154953305971950854471988529761089990574066464117577234323252031998697683740750145788650452248208260856259132890319357391942553769773758667532365385583863128592440184844156255269766851777672479747223533890940462671335665832713883456606281093715352137695261876323277803593722747260809634669120846633307617875046082437700044800117686131169329833835088784862398357233920645072499109025090873000123654471096805816356950589804187597238137916350168166467452621595256533701531723329849615263847043127666827986890902878006714306782365001092323068379521861073605411026045360102056015108725046359519720211214473919044961863700249198899710060705226682346676621057169717449799981863591760087511616247891585019348047147316105706397502382380433898246764701662064986642564434624332067027017694371476260230262596428480575081706441614432129406427611765311772678894929580209355464534932506245378361805917333088461455190660051093476419376617961995911557801591942570474047817967351044604260482075670898458605479597833947796348622816335807599255060476118714956954895430666871980957925987020877798504532672747523252886507824522131759223333138284033690394033874644172753298982400409977225227983049064865443611603988831463876508524899897442381203399767991485058286434919810667195411396807546383243163472119774247658920529563187188704696937902317474004849767397911134646437024090417969037528240141352673575311882851673758170984720776419184320464034397466926827275050229433287704764288927904960912945116557784896899952340522324328483204901411217588450292886015484248224335357959439030767200217549466726126208168729938891301415412347353168257032397030478898676586077860795007204109097986700061359682831119187327328497338686507114734194782214974696666187509909253471629622476847592157173489113729319662821742706586916276447534470667682439353166753707690217873357232237009264744520760635911939448195174668084576019909350177599992913461060344016186234098440713374940175475902579188439336625408295991018475250582799613706546150715849051678642486389140397090789307259598398795985311713031728283421125363426633124104613754883932777037146512302447660316973485915347495298835636630340154687585683510024085566145893887182529145106180561313702898122742465491922941875996631693284573761570349870560783477895315942804728207351709256847272332566034561038704393268544071313804107059334788715222022372595071856488958524078900303929638330695537535663510712749777564220409571540717982478950543943595702864868945750378725395809721051727438948248318595523377288258054569954130877891729369977162611643071172721875164589223130249607820927986124211320774283525120561459506834233192400769693878787669823735137366858921731203300938828210557351516810654363348423140466551454209791498496068597990651907704291448714430520381334367583428017052470244618399486164165773552754004097009635733406160961396638305984993037208187549853597367530219090985456211429671558544282353220895688270002432168874741091218224116637345767129547234649982104350440044190130886441697996619566061863020005436390041919782060108541076888747038037577566188076130070487982544324250923387044218395397518866819736330240153566023294467174691293023057697165907215056727314623691713747515240741786088610568069467919325379412487826252213349760999989057562741801594250363758977848193636249242628787718540258380896230317082605078136920219372811361072574610419310978265245289275898986462167479877467437098257963033631585233738523976425532439063160953146218302957672068382419783193769968764441239087932092478458816566776615327053620602778919794522586975798551167586113122335775781664572126440089846720756474007305806705423288154186557796076823255042211293002763788962772796667231147529033838357689459443909838711701768439219740904967588017041969876123151808246848613213256367449242127395430601109536576077914016322099657226916086802872661487883467890668307042792963678945350948498838950903063111426937309657251527601744075184642645828445786442851976475747726370364134449568548312556250894617098157181100955828474676849506301525600677215600366084546912828658956607237179258544310908742213098620498529046969907705756103637186023120222152000547831796118667467167089794551594587038363030487596858634881426507232515820648100876473745441665484011475049916149909798152894423623861573468659730486491568167835120667461717637168490006829120619771646178723784075464678855457757521873388252706007256725783543433861659546330785125201453899857075501463385423690893383679568121134814791587454358628198812673703348346016337087816070726964529258407380477476436791881817361355933513013132666860352298703123666647149062840631007568929671177124444837561202559383115827479062961232061423824253410499014433024686691957559147407590478221594093983818512336641351975531701693478391565271329462704330057156743698445934719751481374472040375663506540741509972753145270257344786469570623259179426697052089507909524689538607702927020714681934810663090216036054169881067298272436608008629926276568964661424617151943240043596085592306406255087948709511064916355882525165287462410502748453141926192150390217738501614543352554795066639065477708498201962912766477100817494878791159876437953420531299197998709193588213206508632845163699219147436580128862766924486806748524742568702340232055084896094062330595082144117490986665579695806565712604708777904373782330724660302029242253079839550007269990140190924766056288813592666253119957728953355686402742706367587641190504695449182762605930652400378847806005046026895489706680247230262534244954893557680156967836283048882324635190333900989261116173368649529125794089477043124033136071071515381399346475007699980641773623270798224359375172188613821663947300302795700316281465162224863763971504770839744887714419717465352309913485078164543653877777867861164103327474469672161689396091680464314816693818755182939458668333980758067788301358743412710019082342517354218784586358834719463272790521048290341425645388279504745366009093337840107290738509318640560367190141235101463870681872890128372460551689720125281476747685052178495132460896415991197836332570146526526180148287420839802165633179437242482296178373163854479200861738623720442269414794627447295232054012629237364999330818815488901932653532759628388276233663239970073307331602188806279831178780685869397729039130052658198432993956238286592521752436718073565648188830713970618610545818269042982430718329893440417254222453354252041373710607394452456155236249868341231846206311480203569607857050774103078540720012372771737563448043210529701820867050368469679520798881430677494313545127678337687409453436921514884767118527490280180175403860371158904163181233403375862485874435791596734651664826311810342616687152883024716764209785177961469820894976383553904599715004106858587413987607677400519547539731826802733989785134997362955527364787378723318460613546479525665375919898120204597905563584176640862203055801957928423212009049059923391752834203797886497045928203793062089355201902187136597000421491202209160976532562064333951184867435904436211556507029425968152353881532164757624827142952595779906016485674251812412110401772693961667936149543890127627138699595812077070909845298384438347741379754773764133091965668414376678071576455719252209133075249481477133064970634315499125824524740863282255779754630544742601268855008442357670495241705816371445578791205113321165433126000359348071063965906316852747479262376501645436546327526604558259649907530820897744564428319420529254350696171456638300197297341505063839714312530076990078665211465583967803522248529046027358827425052438237974400261910324501894336493671436617084049909473368856469802434948318045102424518690213004807784398047870268502295720738081471937888775610306923606777491696599846010945076375913795055579264157158247356218693884552802630127262680779490157582886172033026574263740206208604675429209945797706296406617980873571290408901138715231218730143553239360162194750835321882888166629264134171235181810925945648146106865111438927650004482029733024539183748138405898526741341532147513759425241861857601884169672836486661477850206397865666984035877757579980521888488080486892053514239140408714753426357760921126513715888904470393441317072213501301809234997322408608522375428727869878505722820649412649972138961566343672529565473152043247923987104025551394334025420631052424731460413212282841502636253574351019116196908061165791559505313800022469305289811335728372686812300898043975232314481322211500279867094918116377925315205254759014802259492547313452806204923354873792581199017762734059128954040947949606120619407822615373128182911210234311696065928393656417833918738142966593269084209849549777854788708686119087261561715713981913471887767355867673414984879103483786743919653272206309812606207178626655701137495977045567547470611785985414303272090230338704855983060884316992880655248439365733131561629721547654009843437034783888279852611077891050215002085312758833922118424570433139832041333416015517610708443813441211314476034938183753959571618892954782844784448537671264356246731945222648434051109329338003381460550522974549363939471811598527875553374229484999536579446757929249991981120546451625847083898617090639729611803931057642397111730794174043883060579923351124906552065272708855816266713570815455635597290165257956559702957595858551628952441513981263449102816511997367507632958752903000718446268716240584817965838130173862010102854406682113283556407623961498768326635449102487460702418133656192074334406398225750552617770924167557701422626144725599614282348732716591208366552043688944021845707149317028452801136382073520060492258244235839755607270780471550324933276263167892407113837003927748083778323970904939369969498049250212497747763568947859974629217544315360370199685563857648886761594047080029066534704650033296277547290152842525715298850219949099115095350062640015638168046149914172359559526099980955907498990338538684369010799363722288668916202096421498659644855288376456985358462448394220399998559451201367775101070330887770640155690859738722586055121683482599167366622296142170018831653763748946760808020032826380979440936216376324701921492057306907505653541103696918604763769030868480957578789467791215618555570786995150105066962067118598378705229257919825358203397000776561796681462826792676674197478238830186181144078415306669032407066067138604297936420899694911450923936221730180977762274210838514109696526898957551189027870002031064829264200530890383217900111462240034326321437275394619033857524875304043042253965506638533037264914828630259903929576709096260572186716203909125763671335988733335244878432650468041675572063213140089646037108081248561126035108698065998995369683622233654313110059142340750869067551857522235918451520398686993110444191661118048248440854475491681457453315812775621209077397934497178363449341032658059975405919817238829091336445324266681976047952193930785429707634853825423055185876882673818510009994794470196020753180009396374460094651916024536322357283945845069380283097474840190894292431870860489711197713386708509843357019048578260668963986521692080933827400838719352738672991717466601416289552150836636717919093627774049430672628209950545954791323196037697101639938174079838945557527104348960160570889191852467639411980729263832547774334928546460878191710275567560471494192289873747255605875683935365175787282481861005485792354602964143488197555118291839851359317493580500937904887588794085172049812083079968204687127358179909006504600909043036663751473279887328953063130661371911041687760463312878137917954038572196675363268523262653953542392141712493530914099617734386864774044346883219388501829406805180825273840578333874784073464130760917989028897394451677519720126295236319461417427050241532863203247723750903692987726183597239279085943335902002268121342570851262474449068298103037833274970188788485128401902640462326970368590803132197191916870380880151491904226886902906030981528306440206736008035892283267668360164327127006042485385186118423197083266937011463853704798548900303311411051925340479024545724358700855077246751541792111998035053558367532248372478345837321794911874679433475679242906698277077096826473104224611859960503587032984941286303963718423022702902177732561065997763225577955179006401969246652308005471549079674986323416250343007027881759501135916931183166574643002697520572742616137399123743277186513570672293527730890889629025782008461501721658604507328625833347847000905980487500769586856152822987110069856209705687855326550949427750723100629093453179023034722816291104124978256260618974204024999314215621953760668094000361005799670184920802055535783579677350798087785603144064789926260283616583134807203158396980326784845324452305681155867410821711571713718138019893283605164685443751853193223331141819357432885924505944517203386891268802643778963172659465624879477691580791573482096029319036650804662568264551597279988653246531320834993019413475374709952907487903402560985444875582592624327616023551799215269842280443034473033407316084592576100492623233910061676671966190540970196013424853778156282899075274418491515650130987966275249552591149122426806121747009367237427030489490461165723494215097259045508751724712465198675729640813527255043639657429942577336754921184445190936161945999729674562677938736784584555412843245802215359792563502394907786483700170786460277016916210894864319561516888461176134689017263557489693179686597952355400681591709687205453642440508549700845829541653684775233409111012158652284413401960142764811173292097549650848053866981699700349278070209389696243920028238763417700693262856451199509385840268851196219907945957311918698794965531557892786584445488300573673900198856802660767121571845493718345169764368949709846179999363170884571514358489653253388752097914740336990987627138436025102570681291264651793639605563724974394044350074338799948917336465674156583157624165860517257496150363326862849170300651483256491079098409114565153975232784995202303469348432156357549925223637620116858674435925850267122372381413302570285923169373474202272523882675549849426605738799018454287489108774289195847121938909295231065650810438257764902164362246823097597570791153131468569813501866737502336604842415200322232461172063257384593559114875998291372074700175713876112822029339458990451607683417410484225910167249402596997721347568995929545764646163798095248275582506012439719698345077282470410773625789937559374670494143092372425926847581394415026333086751231111463640522498025262783830518346350230703210206465267051874054420329873755586177185626444099910759298545714718917846163007193225963868874180928619630158014921131070136116543687670954528281128548775553662728820497213164693837214296490562691361396631297163879608729429076988393587944145730832105007420169028099098335391959608353306687639739588488957337749872642934376873611613393353331032244057074045024458065200269965847559975133369115083158455375535418973367543782011652761699915899869337099369451932832188011078150731683573004838809503808842157570834509535493570104371377877816518578872787543057234455660932413639390101094345707570940812610723311168717211045825731106123812583573924838850690896743163627723111180229023212005197513718228443368468302655389276430541945099794921791847815257313654831754861270760642837031078645383797889820433088510120029354518333339509755258438903960349671253082952152747574857049189089310435018644037844432173328176151528945435105436360515390670883142355119586580865875041576971138459397931140695087280231448770899583975007475686925826346661455208140964385834281705626785924064364176831133209018986084218651256501399110232888870102819237186089704539320827968569334461582275724541812324043700937583030394228211630587762060977648190969364821377338702138861258064516347584404567298801795078046039662461696932644557997244351105775799678479289391259715633327099094914752679344983796939132944087544901553560513330991333991090451555052351280737787313409011322506143107271290124206687261006624975099752676244353671509316246665855023383664930975100350098567028552481045656795696908821798058595089803328426749140929935855959444533439581785127908684932053874998345788696340824562326727053488979420858175342990887052226604263066859550232869136710442414876108637247554335919739487859843657046749331521989586619320623480521114033777330655425711078216411928010007702204363757897963840410083743639466626182158846259032382894415283053133501283623599864961850409543836412846172768549745418861508977705256477260438806493735293607092858241335110464313130350215887426883654570193502495091903664343844483912435236689914052669933618925236138698782215434667185799315350218068835328761424161469426708052249382510274649733666483894282675712303805477030106342289526946314917656414809311399693228612178998009267596472839027771556180856777751256286095870320017117016840726964525825360072011043317719943636184037677716284172038391197895169187455778753690117371165909952031184093113872462688209037134648194816804690729417184336993874032278670139532735382424403060375614377245290316266077998763831067375545073906428044101098701998576866330220150688568396409060870984579386184753803793188805349574000166711306283284256660050413691576096979453342162810175305737162211353139413189069616158267917479133831049236382377936888787249387963973144709333060978311737103410795823853447418300303870145343304172726509833482059477585847507707238936400150272709768720351610646146682972155197772004908037161852592056550590523468878129986786415391302911168402810188183839318283299440066120247670040281173242452336055048526767313380575514720804430781042931874816506769451399338726211501238532115907170801656345254751999564405444239846327794389751720677894709020275410526311839586066112273509187066324688160375473740968336536787407965752847920723875798563234514092327917302923461995111631309945240496153581407811084930892063204075169358078258071444814949563956227919747968520807680914541150890794514761571385887573265246098718597475199695837404608692890322424650206116042755509114101239059811442806311649344446291910873660217584028403096422365942019832192416260931718513887185967745363252713785968858971339525074485322300759770547079900761785401052051318594944635003442906207882578293828532547582230967411105244037005598753127218546333350209962877406310755792599261510163067729323886381712534163162191950771454078963581085114257600244489384601985772530848365239465526614275705661397571987321284115961382833886311259866088636421550102359602221037906428788238842298925378677047289691201423705663283767342628716655811126374493485606756900982391657632855096257364146366646440231185814213849150667421818153383480569555798601936241928571759588702095265203042637965734673414254479038598823036328334752278200154902939389945319874430070204405016526635136025554117349533971007704319821297652405349242288654539423354852648019286009996023415033179441322859848155080137305231555310477933780036327767871959225744683059606351704200999436896850903731492541567842877011806326765545740244298228779792388355630520536644709003036686115696070452911378486453992721608444747050028418312848353255867954271936503847821083669624971925367080671325653845709393897525283393470440392096165174613787130510511426939280888080024958906524226993289561027343062437984527476251556165095504314925386840592995152568386869509192142873491409323963145970776489688378742450817009431739928669365851708441398068254463405494349776203131650024025151884977973173192384507040768259006659677557834268787074496900325523545456534652831538366668863273283191611154652197079843312973166716839964782208131762467330239058711515326900018388778730815255974586970303538245892104984636005892962562549916187339362359362946840914474403457183536568065617145928428118004780653002720440021833786651436747773704979444333937334978891901224627414306345993948686134446985138455996502788501390580122468422299162922526145544219998023188323016924099865217443949642060355845050696291223491267481184933897514903584492338461854724861558300022136106375900145573537234451123948807621945506356536513199434196764974702300161445955570366091826187988646480759483743022821554483682161649220079043834957896993552172666301389767253986696019310203757772124627532198661618040638879818370709535986225105918705377742670381442390853862399771565311809001106517082483455386321418634395135621213140937285480770935848234118116881225793004575972599119883228031044801287539306804098188515332877943443467042186115223280478143953935344315488300246776175428143219199677427155426159649779575411348049747963501457464388886078109751762552854234531813006854115149754758038068886068291111400307579324014450328224929226608269656069965024069349576529938649931443902070546035875006375999719308598223363956640000237271572752777946348304661745117256102145711065342775446060823908063584999363766245104868748489928858601877269029368416471397624517896684103842052694845190355167892846427858271989043987663266336612998181968745497189555081725167883964866487434367191891076116898096021982404192157462378945456382343460510343519843319510274622026834332401236593374739548133115171874336204678859112831807191777228162032144498221980283263463416732557989784839481016570354757169330404421755764128187323940387420343012109152433851798044275946003730931925540910806806405292087977434884539680758690373922643074390041041069344347220043344396000684173017936227605969314216920734139294788462987193664648046235159615349314566819475966330741865435514094304379065751852194232131902692222775583709860377810953017340040044576975361897574483969234938669951702078436983114935684043055761370255783955920981006915557506767302892469669000726833671498447707697087347363114959849799295801286858184548842989900210332903719464930275833511225813842519142169601228285345035214025109974974978965987567480903672287513400142003025574901904110806543800511600941841761507381248315993741510975439786150844463534434198423411487963934487817363533540904009389035596825655260676450935010924691716516567613831083761391552757040818923199079235275313296638921502683278874949751195480220071810346338801623173090339753365437056633784450841341982717198221791696132294606925191754622695911773942345461858189512779374890700285840807327518947464512030116478142272898887467002924990109961902063633655304425214107687304282663203238390194904067524862644484867676148997819883638574595544515316982932347879658682424202654084784187061754503428357248937487100112282156288687611730772679396899681173530864488054234969403589235380532845071820932966316542866652163659154464683316255755280789323752320795239849464477550837308876626733738067257779882483195185236038336607687861602975148426863568967282820343583751357289089640896730283718504163812672440590172317340031326332096700612595913784245867085322328580859326159793272772342758916489760968501217039985703887248305557661344002899267872513879807851691801204018939281812349040837009365418484743788612511804898771348906911524148256374764011200533382284564561776539126976284488564416523647890712444385728263410323187772273749589052549829484325225986989921658806859614621448908148329649447158788088270627715915366103757239175542865466572860716512662606223087767049666268441651785988548169513708899182416363941457615236024161028154922024237756080654734380055037283016113535170595072271410907930508569073277478674778839500100471851642219958399583781234395279710207864966546399432381977122813277741494969964609944996695584571561463996836314720075111961322505425270781402992226361501383484719928218288489882237850855791861533378616505553110201834163894577569579829929268245090604975385592591052592274955669724889684181853742269933680335814651728792048845845568837017670335402182470043975611215367670614111237380622538976286191262019770160227360899726364683364121900754005153692201358120559745526270447477253438182297553089097127963593344384495187491676552413812854147679018459083839866366458693120039108805016799815302126109746031883565037640223579823317062725430491930803447482314487446187948933521244568947695655423065387348634658258484267960764400291004953093277710970877395264297041303813575359485559207779290219424286132581901396848989416338063514231117752313209208296293059024740120212761999357049305481385601013724986403250147888913854729280331149839533717408094564439487571524066763150775772044255915337228229810813260031326911676967592232565931672548813352157099537857907417281409576913075722367952446085938411959417301390050077270430804405392334955046996515715838778832802766872109965369968843250064548314221682996668286472143175865681171243280076831280526548497530265168080393087444669564176670000488265914857926664331091757081514443183916267529787993721502381845586559079741458099377556987384056355125554211071557704777064100577208956773776617906513555567791091985346776106709244842052747501347528808905882423867732195320738207378794441463749731237606662448039679958033281764677168201275169127606086627110611899521396454565077499260964373528567583234127626961851623278347303154535419010285710516564428918512861559943360201441424610363852988165919604521295359368126551428827276831220065530836561760195541563163665010113140435775956314915071287026646866880405242469488113800477312334576378131970868203264895311133056006383718426111420384284676630778670166868505345659955635943442990997942379514915813255695586376877057415988380527829766174856854739322002116092076193734597602544525863245703860241319535981781314231794662571183979007274201740897434420866512913902266723868458297462065330361049712571929104792590428498599553756373108027602488236736527007672145070565060971365837991250675555272464832573927641991762230579356221916738357000628742506403602459765617483234084943297082222750468717884735978508557735375633988965422168481334541066311737342616303126610488615632839880732033060600668717505981749345198918571428648316185477079267014624533100266725117182164109136132321344155094100532557247573626155171188345107210412128682584754992133951518481533537447010124524981222463825261936004440355146556008888375724321563806454281855704700199231724650508251199586702270971094421642459268524990000629415154323111263145604162051638684148316059019804772235875795664536154885014208145787742680557274736567839072853669422611609200102834152710568342562158284167183311757736628649383395921967311263935050253021372451512939052703763722584400489241220377420132714560566614097865896085172885945301693057651947621904627347375072339413894953735369712168822730660745807628484064771486789333254746953540627708094297041575292308930233797201975742872736561612800529607196898676843291961256963012325997221950121659307719673463448872612561022838138210401235515020066756628622272873826703720335353671008300892720752462393013134086375736020983884300543784051675337958040105972537116718564251433730594441166953506917697019823693325437846828519736906020737753220452430272445070644411617382657909238764687711711562651298921046101309551151915528044346491186139735778186775413216564203086861300990791709132190419964555922870779948787857436473752861388724938199329232167054757426458671069903664833679551437885042650793739749891519361474991175581538275510809201088105539911153751023487056558441000123253094078055794348715134398647065827339577824462070496216212870428046489923530322780502189051557535101505593420025838767198657592599786525050464260149505236583961948214311461023060672687464218645163184135426174230878196798504784093185321830012432517544985073097727668636611935010464771234695315020282273224443204155058703732608796845471859627848218355776157608350278097052197103630692805297943298918295607197924979304660798836088050818996089117180634438811701127293533638350205978866811918624844343561192519367121612351384991730691031617245501526302366253312758242276223443370887183962435519183393447787154549107829589146054966131082545764308874428823530078146474515228494072655041299513493621291240775804668574187685367052929099529959038813290628958872728352677841885039363830487345763625012194135002636379560360418435887938531568816466825089084833830992401365348835823188690636381029675161785007590225368603066312197912019909326330867111289940539643805530443515049605558495591317341459998534348853764290275036987199073503056541529609423349798269142065680274915660652742532050537460456693153470657443725959356531479124723580430866465007032370087437309629068230437567872351829242695916062764088732152332543247545600374460990417917988670595891391581347093907572597750788304657920081762433612001739492247911696815671756370809128318707861434701135868747243269652899374634090807919760206532254963341967615549784844799887800119695624590153964978971276614220061167163222566601023387318910892182088719891039802224773440746526236484531964647676876964577496140586511574252495626335758329601022379615316239103744713472703045705095147882535465989639971683882757097028474949821120182857747009132984981342638408053012868179506035077420015563009198915905649812870795829488736937230924050151147246902389150216872939244969299667660353335112960555287215079583513875662696043088591102636627635394513872864219202873300564206331953247567153358215461292375397479628702317362223099192589967136182585228127347162723077161881672545235343991498455431757235002309516803264779291787105495229197820231525320796073645414706208889681580375261092845146090423379506031059876635995270830343002137493868774736214107259825625198008436061170611884290019288134633833662234442921491194251469847332291355035675095740275116792261243430541176440948486789428302629288242603101394000088969536014629248402651886339917598259592822761732822606842092744674480451748372720369599295711635329950822410286708021185924528386717896963706458061882786660924314296765183642437606675385417961397733771636789716496396532271910338484908102003616989362061505679000761186415044392347599231982006932837083342550938065690298279103869102388062753913012525733500860060548334053557290808138416839840438381440642754926560473157309249903915467394974609372515967321762848773132243058850090624948861113938834982927400835612082062574826764848132328845304294379935227688948899713850558145560426028952649453098614599604534675905181828664143515392509532925230681311814930892417504154510565919324551498867155955096531337470319860107165960855158930208881678933400325894544891347731955840369550013700324733544094464896150136312433004136691982339123768757917564078485644823958514823380942004597008376895389990609740808121074505992030034999242451928902125904694410500524652099150294716972751700660240439811378423579251657021816755280937904837162702468886233653986410877669199546542380478262109668408111368723917755286348549663343847407954173648335264309029202734537147989449751397898549386563297368086048338733375382072882576054931580509272970036550705011289649222340399649062603779134880897640944684638211721490125338833510539286278421489062069155786010530333071769579149300104896191216941123608473665613497479329011522807987716186890880807626708336111866236138059522029112082695826199911986224219088040558336075440885620164369314793935219939500225296131407914511506818411584248671211200253094928334010369295478203154807980519484357529834836394318606977365731079698295540960641371295757273691765256227955387364398832759040394212197263212503212291091643466794124098038912204645269810532899496294415759141404494418438143115445964204320787859310742690213825241083758514473675753825659829297714914613178256154223783847115644730292186540373905958064254270438785779988148538518522578277659638024195460104631147153915985301854345010169728505401901954281189125431946855745246006087021576832141979596427769953365053570384348371836257103188757133797251878594175254001543311699197789368789436949348571224014996139457397578683353154086512739872691751133633472426108957708516024728014288213037046881014311422166725115829982591916828100101181563153443220729407305554403876109340876177153821434958201581881469167716910746162328970160282453449488302171667243928528631913697628418881307235860737429103924372855336037505314260883296490215752995833774087108774583072346544396557826837749563963220680764706280993936209806377004697061732910023674535883643701935725310755366313063022354787388108169826758184948679930250353998786938826461281074514847759285354653345542604782650432037018351735814229744938047958464313277136570280817480019669639645799287676316052239041435889908012499701581133153071435603326988994465769545589708039419244091091131887547289278351959284378715265678349757890982146021779484908968878888840952069110016902116087699602876688646039501920728051993872671969338471686535591114263962656945622395717908852514021522183971414838596194883681985614396775580231277888670074585479649206450758610466560609083681574614404062557102944172154223819103145921151779785276350441513578428712721959571529759231966310339685014217691755390582236032636069432923401780739760638615186722349849663496648960207202456947700810769255855255978173641779387598448722985718828886444997951521990132534769088215834443756595857110633395152316821481651794543627699766740839711517676437709812741112791789272195637721842639547602382943301923143753759007070668393371496912623762780595614677924435636933241453258745564298229302615974691512455236744718909755268035489303762166908315513295165940621094394137399083139433210666905638600859959845292850083576818684489324621028149597312545083478835044957474319446543827917337689579286476228274703432749789264873674551848947335565395874119359072274213553492969617449731599716194495548420710500970942650827832355536152977758298230204540910092441457285437367654709835778512551694091058194820060123296956323952319470183645730303996294180777389191728140683294706641617514268867534750543026231143886713524459248542507357588959020179490650355456332326424388655746881444869520831193978534676351141369795823672176155668631108816963363147112900531854444262107171535606601385512558689485502103058140191826548156780811410039387803694591835886187319458563038969524714741997020143267399429125713723617905765789936805744405368239626326815382735937660342547267004974796981346211423314459048749259434118298333711284392513855825937937199657005218529400407092216458994534959003932468945086467802467988652428506986758771432290596749712889302278442252583908819960710477961442728929960093913572708697037687411305983339122835624052432066059429032177478173354423458239157012311092838648252885497430146596512367715515320519138018408252869729484145781637805360361874067784239675076637570247323998238422985679680252364119496900691264679443766774065988441490302288387486485857446734758767644863696782641689613410854716039354769382948228617171359720227227312414870587168975694501757897647994535173765511096899658701701579316652331553377223920640022758702640835749642720225781535885852424027596561302323861441894520755281275798417265993359881693197806826362519457641956453542527982924665512275349340008683507053656134299831586282312335882890865883669563131771524052323179427079092371286124328099608238601265959649615259773742120553029422363505191207820977199680189820183126028454058108171772431152292112228016547582003779449798548414063658291242894541211404430922934787785935197349651073809421851651779723577726867550979585960837939570276895537796920670083254212978132011567061886589592476671910519117939674005668710212577963028112172565234843145971764055153384761493391382070362674196333363063731191744579408402054816384124831932041134034986938205959758884551906419114362540373760172400880714295381370678973416370935362605878261658236723695399681339093875225429808288581800755094028197480622105735344637330955627667217717231852374487244335755706813666187198276662913277143926562893211713455760384109290515101665693466800388162879120730787290530945903206364275805857994874232408701919821859884828591678597909733389060081370392623762537337210735085975558220021596914664533659142057910681411031987992692005608816491540554863786551727934157809833432484905561236806150208296747170416512488207436793788216019424449554041020005488102267134025443016134351002447298141482630960559836745681760081029164389458822684515118892722053735550681744476968530385404978442755129499549678616361026699984019215214904342870063710272341060147324101465358341527473840006543832406623553843111724334231515756537441739479099404139831422067796477440922956856449395343974835881674849089432855253483552823167625334102106376695235341305378651602177098461968785258975076904977004260525187695304319432858535139305658922257131933315292281929052680355948711572111805303410391838955959206577334911773906285001923197823904841726470852387499749670928242126453550702699927256266432481225847313865780193426170514632665702613019210966525809074326513824513302357169235654310452093863636341031380826846883309623532208982310068074894906507567086476071532419355579906334785417166351086200328353164994456293578316471509838783801861050085879730771848742591618435397422390945262885128455581355581538440350477526309567724153007460399578462847133254861497249855381833721603571105124764586991667321335144741745563039397818742374174239238558436491453019510267939761155902666459024267746147579315736650363967947601463009335523273746626288212884664875708849526779906116321475862738612354849796177981296451361182137632969303313292917142883725435458185374615218883235179907426807074436093110445438599330403254364570866756144216184362346138976667982391142260882208593017371109497647364329525527935176880926101598138070683131596002874028444018246005224087348510402617294851286031735435182791392274349606240108855179009994499100959385184019893375113071749214844590502956282778906233816376488127077412512996421564593638327718676127627188665192673706279126311694935971567651528492361285100515106092770683113499691734564104199575286758355064511608016835318821427507136852839166675937096218421966154485268686958571609563503834535217939601252149678000646309194978558551197058005242052685742694972257790270092996716517106682364894156240979797572055408988800926346331100299670493725141866734810659071880995916030506026370712393793821909726680861625215620426833752898355206017624550030751078859204496613307442780922735828244710695500603929004214693621016824130390782432558275758017795930238768726651196121007739995844707190544949420915226063703496600642436750703577399481275105891921186818901619291714002064003800330063477815048873744760856650810477581076807830893139666849264648425318219060533404654517125114398857491912444885151440786682314823050619401703830501621907537040108946353379729644300683965061772646574659423610716172940857233101408650152801765249726646475192500408377994575273147247172426600295267566860366903630110369618701836714496648222741898587421141437360122367790653085958022581039866138251287068043737611083023794601929749524497891288912087673785436529074176899983323347409821783979514921156480781808758602825143781550914985751540913513977732066536202372350291084694841937091475823497657326539090374181822489091834315792629716487944943832011826498989045313677855890452137067829398715261252896171699535859676404803940442205908207394412748920790452223332900031372325758278893628070180863209496131346407442285211840377871765333114767841545900114717924393674323618025917463373157225717903845377699569747415069278154485985916116597367424861432765453798319488619935216159302129786251559822946986057262740774501526848458107342623715799831677549014398311306710663602745919760392118573626713911219596820491275951370030594147091648038866950266880197463805696131856037806403261788920300366180641507985247069045467393535437467459580171980449348929015111610940235680941711156820173763206104870455589385894818264833441019289776682304857077164428520197960261311509494877775864301897451789848543892374045319596413119414161168957439464791271787299453511259696733830749737188488683259662613977824385845227977928009723016883254894398907555410495677410974550422652218486874363698554454280270887020183130560395546815749555546059713935642615091136839558237616154475677189751400798655317866498711174549163588794322026199274942378178919233068088571470152492390453917726643744872555366536750989841019831751321364155287374518228213784052896550774264984283002202572913529907439774823960476053501097077873394234414716852545519429451214702802824261278263664262084854494330146880424189252322712581618829177939781901299471022627609377665898449618226576325150830685151780822971313021414802866435220847199295737095408444503267690540373592435374045348860447881441822499912900401991351600063642809467425753590077917043962198499863301901440999935962020414037109497673070896128797924978578885738900096802084156473618827424276540352548169968259409750757299818526867641611539414537016511735218567724816375913287530917861935037571350656316560972129833481739897302916731494681246947937723721452352525206237694519936453517514634232493765778349318666190831003549643923768065910903651830506417819350759811984588433463213727296363259803256800671693344509702688528015934412512077840865007068261194752402398454460929788958225248348242251564024416512863661557786190188281801936997496587834753801344198048073081006294132803638904520641030918153470379132461646444995555771432992587605283412193249225861773318615266759117983116515332677513754561230878116685749911584957338448473139247197581137579201216121526914634447151434671427126994146719011241683471416648047151680301627308452384120445361132936548396553487185593011587045350859699282795299692736930674498763811881860182623531271883007857564480146638911143118366266741518138826422255379173702876435036458506508182374546611380747790638429781689252734547441343155309380172379223741617231410923644313097166255345639234583620608536285710151586326530912222080116127971813765432112381173692021718529687846270417544468192209895386805678625906104560819930038348569053597101741273699354737417144120243905574986281612535157830050795678550398225489212207516731607765779669447733008295100263272605030947734031573875931589092390019729297817495328952583004957191212956353198382150313555518963697946256639914324030536143314407215154506577222827216814881971818144181639029947811412854896297746444301457486992679843551333221045363987773893581054202372677164798849335960211521554381652302475613409487979936723275670741929624548905747136191804127258182707971268134928431243201737449205168433655636081692058263375949476182180179631417238800375799274949169525476126627091216791171003700108741754083082062687620978421520927584737218307868076743473996959639346267089356727603701304994575556991627448186624509408986404185999833001909229616961637679106169656336522669369811732999008989275437864264130291354332222963285008192951143338571380716837103102289684026965964087228066143109485187313985681990073880530172494283384696520776786543173073411699237831529643557599845031503391054677182408906875501824046812646263533457816986258203796416495712660101119683325051544321709102363551636126259017097906771803579831813820660289999670523248073737786582843828764372842614420963655092477725574788471028522369117012465418585293333786188537147345430917926243723809825772584863535509997346421783155687450947094241724492124659063449099493322879746848082161049133860185346702698424808540863128987035976400169835740401653455572414983934115088755190033687558929460369671984457968026165587250392639542191562060341825031821961185456690409895482550258535306828933527107370220794310502123154238944669920917055956496894728601728707582048749257281885998779000068469552357203532762209433985608488973808620313706025396399998622086832469924430983356146243056559131610973039195789023442096907686618644875266661648471732365672489426943627705012260765182216545228813487416254849186449835989942804561171066975075308987728808538359782024845822998945161663459037583446120495594902408926834153400653757724038210299860052081073733441975861545091795899030320035816909260521598659185076243870714835425500338261189830556815030529134304261204120171707557332305051229565850303361168530590357102290689207582561242936379623786368085793464795564559226998538151655958407838110448724131339624789044003653013533884614599257032044820885253113190771742730909099831394350763329118712909319310926237871272238375020316957419973321774331634887635850890658626315029838741397786235768472556754079375424819598650277022994527616796863999150930627524892095478861424128027854835462602589223491054822858887738370205529134200205038175878127567776273169498799482393686574585722829767124406223527767456643681200544125512522928693297248106591233877803141278524468754041136057517525264964071295972444131595049839728771621525616427314871864975021005733152704616249278142454277243483322416422657481019628966327120066503138591845751381529302441217742511736366622200769748900648684888784187564949786173463663701844561206834100000902377132567791692783757461626874881571488990519705133486853603071109440323099378205419859555795597313938531624275038798163827678699261192688550138824295613037565579849056876032050793979495378816714511554978450879612641965369260094687395394939789381402807471550995171301304844339370840528131238431186690140158627988472118644971760237965332696911019642429564877907181555100977576652003025392664893999172938263790582542470114664513479671694045286449321403458009432215180243203549432981302410853370626369586012193009776216951923846970212321037509581634078817258773615084543387866245729060026163541082766652542022408313402657392896587145705948292969898710058367743573612314995011738559344013278007315568720465016070435785292407923376019193783128864026222932254200320529643228615577788979035832695944940019248381966396466328373083583309712913882141135683142565958278029994413783205904947495319081761052005677605421822359779538314983500002456487423595661376329797052454330908638798056007651213166109362908028235814761381737088415625935773775062642679484548680500522022608621648987505960808332135258688585707178955723911972138923157857725875775962134974032173940241569676331830745799996595260505135344436080345635400657294355376774303982895210914332301402554210728676802288154643818143588175837490603662478895818071376617830083991068208260189898165223417560155202832325708996440794530326245811762644677019402440986161293007136105446601574653339407944770716567751760416759999620364322394537779916912918706612492703538691023833167535536963825688610611032229105180703625054124548501838914565195960803007459984457465242528546717208047154912038337725577744304444043738163300098749881482930088737922879014175374853968362352004612331122972427275631387314811369025952938949388952424554118297208579495169501596124694400727186470372258471838779333591725054433375652642880825706150500538548787821123813366650711593193188898385630697741789107438624420708337490732489348109014343001092617186228829440975839674554192644769977510908900141504854848486307068362980526833089635960170907734823511187008357236143224155896999029679703020401250997704004110730380564462304024732553461413230361841056941779413754533469916383971876386990591562061593288954285007599013897065017368884335865200251195499476951478259884438818931410139523666047413537795305549313976739617472416689308629622593728127349300050474982868295361812871175658336795622087878052760224339056497348906198356393295945855761561724923236015014905473587151338849535776146490602933852955065787450427436995677184165637302812008240236055920216560174151045316334717517928822007413387599026232426305465290941757554488014274936392526439380822516910452996237471407767642466104661558378526238877536610110584304725244834789981975819987654023020095446668184453198685335957842308007803155181953557459163834263954448845823141582234983389891529601286647338713119246069696568025986447492901580351218758118638692406723008680276412690603560361336638980368079281778668507819889734190675651314224716577563328826340062534375528206174544259768711748018018730542826853579422594038280627375002013250350079564860772503322240953352805735207733045132036014629820033291802224527490297629992259111307218280715896674083214429724583041010200542063727227272474473838185593043010397035546901956011733871134224495407307034562374589818903861324147778574846639650884431472963087501768905631034432501338711498065857214692438182783281849226174050535151560460675227076928756437677469873661359451261404319654998421882738767500843015611338415854050144679231406407638741691508663923147569092199407570729642126777410199656791240357627910812986308982377410713539482280477880953444376444610258892345257831812552616334023945065517210422076334038983618931501184076115792647285644359825976510946870876310768791879433626220753450886955373871323362496151619313324810202193665821235157464913408468325324515433745633756132514052170978132963727302913912616549435476256413075089556277011846087936184904805986016017223515609091565492950471766666586478012804126181528186270992371075294129795389915690780812404881631362795957551517766046010947660710456868377370930268948424966296734598640209401399450318703459806165011764366216129776292008866407012006330335424478099386923055893272890887435567208810511473241828098818252414668767646609283491544865978645556826224357186121580294359680799634556006503435170585116929360413202945056680531386432268827915091104217321256396978082263283146422470567782070159051448453540346234476249706679078647778035377652429530950065472771489569143079984906553233395845527407369839170733622173615014340521466783157792656557884544076133151100529681366748956769780424379866086120615851093849615627393648774018251466190435169087961438395242330620810961702927502880975950518542847220220261500465962990799711883012039236303329122307986913239141792293954436471471439497106139652419287777296791842743559886846390003163764475670740457795453191411453335011946034893207267577215099050597870113681079914693088343264006549731016779712251329104023891390486378250787992985677718941469337858219585342536569256985815656029240849155321608106754106794557029403716238631208441097067455867588861615078335092440035573931649345562338102801059502497541858235454268562069478289218485628712418656083411618341523546246254628375321259930000750478731680499882732622301737047369511034437138572807008837666335905973308733908921352015757412482329888875842369169326605621722058506679648182642178281456173905891548488851842369607566820556121054716317887255189448311929240322439374970088736958680327039559833286400273919337515612110694811605885459463307257306567545437808104130582641631201976851647688636911389744499408671392646535667270245577465893774618508057330647750379012330369640019119447549383344866996386058039069387740927035340786919316649223944420652072033092469888220318882609191426596088257078574123945444017485213829853598663880480033706354516465901643554218092562316604678551451888245942012697236653739288449727071086500169065203667777785096249702005284233258641026844503754870365050295511673119558241781793164351168411928234324188352831165355385305778819373781648137527225797973410596498100064188987302924772607447218183494518551469673323539559182671919491172951196552992421905854939628337625339851525689925204246093251787173299228699061813143560212260052727721697259166320792130208869436285449379290531525585972831186070637682560364216667035386229756024104614453594196472064718229760212171134681320131337923187818860105510153378708703741310902369247422418328497296244671867185018859927653737578883649607593921596049568405571313574376898513013663389112066597284323455504404657037114833731059290107628815969197298679657336745452764831542482278726199971724562811868144451944650445553869611672345440057732362117687595578905106286459128239616757070182062959638922212466115351507256005089406431425661520736220181556438007156212891458756842690848131782350037260305047017077182093178146603577352814743112623432390713102165957455152841319965653285657013834327986051230785193321066584460735097624461218256192136775233075905267117727927705226979601627061350215885977531033658899396810006012877440968417030473665693455784781354972659198379719576784543138538855638429428395226290542845335684646495050617117068005416829067821561648872113683670075462608006353908174790013213337485985045261944139634799352999451958597855304346070818358314631251915324914962538286687512578870686864900473082517242474699998396448648636082852121434677676258787891146346665619806733127288087371817697745050338438612540360881683804880967549362333538628852989827183357303320541250106189258569322296206279471549877860513262376998521286462731310372049332491924929113696133379229108392677887579733636380901141841674705897129750746373754943717990638429966017859601375935383969409972202975077770315404256726872216783002171450473946146507415610171208250401428603135610099563642169837650273874190952872330020609621221621540003196229554714638099291720862668731377246648455230407596148786426055072403944489238860492503077016120469931995703790281905307371404032843901998902148754518928099433946899415620926541363552589026399720953432927782593239645529353723125364636566693304404505451008236810164335765807835018432433287980292342217502283597626586269668601269253375744669511284177701331725900153130597789497033128909292357501985865379710913404631230630565971959298272810806326134194784309423394507941287196589064400888505567653387450949099464044855257158591067052294290894293557248712182277353613188256389445344250348036166244929714690896963853379478956897526468860933875210309234410156653894802038997811377573970231601390829425731639128194554584955636738974457356905426116459655483430726758516352047677284542357286186129337449855267191325461315961849018535754413963264370336581835105542921733707541369384975024982363217556383507701917256352757787442056502252754573324480751725632098648306094012722262655482668141860200404624960201053366755670252627007180540341428547998509704531074293071336800419292769181109264468042031322058282804119234424863283868411967062128250967972292793735197720799388971302743177520637401474184879213727776403040815812889610005086711384848204243584599644662202525508544226377007519141167314457371384140683637826228886930689821622164585590294582221475510729844637130283707394629534583695954082761288201222993888889282606861803590956609699098883017203010159750432359592955620772259889658546218958934701117016274210633085517239498523253573254337385559348340234079689060045971507146631009559487726979508109696302193658381990588073104779230436736316020032987982950550799312666024521020462297591466831562425872897587105052760476948158064244150084216563398289956819686062692793277106953693447701236644478345511877246791450597555774590070061464669844115608597189326906752125705772061655457459897714820571599431653069827528900725563276761507769133020464317037877989008747638316745810632673794151564696992164023984349443551592463058342126769436336615461581614644427114702535119954976861633934814039731920798445525625799101794152145368835158714633282547873951713804474027150814108923451050189448625349770239319286157129942889243277563632000390954024217404427538042882916554793531052323992936319318185860069897950930782093630766177093376068628608087977515407389926466986114056021533316948085037482780606596778900075463418137908124874867001169843629355608719890814250780426491991061299997697994007954571046380234094901648397985060049888594347162548632246357175197595734741589027493858747143954968828629380972384253021385270820071886032011566169018025663423286899273659705452416749578455343730878012565276486639668608347425900911574620524122006733119206363397919617914385625883591201756555623957900022699655815378704438777347702836550551000334014776984350643187888760001049264440967656784343458180502307529536793413763261028543955979461466163490330785679987058801527955915884357592395139025643192369972352499186403129518119489866936741510140575372559291531567605192849001319573232982485590414724083247040468646217475819432516205095930448785385984227384127459798508024994400560234804677847796877552691315178528530317270949137829451550939788240836048128346407101630398515499625726913367383002093733852742314109055694432023136368239451279412068004104717772538002917566640205832761363854759334170623859288531050602760934734213533497569615962264868421785393446973055097314860154766467546613503425583949944891848747646782401349561896511153774201465965838600763932147904749844950037102082965358000944643350797511523985541689510922461337005390488020646462920235879564854742586430318461387718823711437766979920949590405540035552423877154163417481600329169407387936352002330170101746457183397129567974688969014531061122093246234795162674786964720654020288583990913486799986317435692550696241117920951327504171198483866256775390331407971664622288908929809056204928008060746839345581339025534648053548580465983237028318633243997301309659228324063692292940834236468392845154309044686313223438664479868720404535793704881455301083071985827330794728649766007372836160961022724222405713434478893184767457148689938226319388378828861348608669699668185971247741614182146459355591028085787624011018222850887545576209402141620303981599543083827282225612365688664226227157436696140927369928679384620473512514318925427525951819798235530065087614441583550558380503950633314370121810167060860913592217005835759330182206385176354906563914396718807345973919387939848076531566150582756475377468116290362398895912459276154463755483884241540454711077013207842933889614680267068497146924016710168118677782089528423040744625093496667729210123540228267469661956659777676186247950195914788694548894640775389011867532861668246330260424944080155531223641243291461919074096914859652862590967304928058920599297101026224142002336745824929674365488520806301115443477592468874483013926305875435229615815074212984640593512319141865724454730948690538450297718436118530407057901789550311667147867478852693033765138338696122893625068284758625900347950002729376063884581198788358437196457562157648447170979243047468107672782679434030224256438587360565821611761398854402858573227222559881501160004413182235143399455199161561264192881581945624004292771374933538983785668109642255133940337143097137830781455084140846413846091449306723921064894494430891897008162835114465804240636875286831752745264746757142851585043025990370610549036286622636177368033412230858554496210934656120922892045051374054594532394703061913706633630809409354151767009758147894940572416373035639185405670865431952795659930683877969481907002093910070751502433475223177057685514620085382398644298997866112816797615784516531549315270773679788859699156447530663209345186192086417463340504661825891648157757036146067206894501820266608959477063927175370663780542893609410745641221504836935200241845367843164883817342221404943492694748315354163321901123765448036923996460859757510763824136349980940610157834236299241550373225880879744013519792964133195311911237166544215508319900615711230582799399426994412029161622674009931963289790042595069141762874115803484892015841665270917006859759715885217550696906951531043879575936474097529398322653160314704844222914695687710914297435351229151023595774485712281828544622594370199044480620883393488798219147847991930272909875400722957608122225818012512098100134840832258213588507461412452070472816272569806130792874784545769016429740675264561797386111339156811304632725443029730011550102695560209493765074595482134985254418908930688854522283551706875121419501450617297064270585751371397358948520177233689444824953986216742788847929410339322456497057614307677218814186992414010939515284063373674034684798977083084822720414596760385354978476677512026765645338113291019014990710422134771544818497079465672706555863277284864262656744449940559735355130133544167253906974258628826024717592746248422628385186629589359480069319778883258158422595591306271778088338581934857295475751926156599701432592797550739950976378557460401684591866369352977712899237782287314919800431959871737321034088239391358308702619092628187296774076392595504558067558949074911325448151184563662048152619864083187306660210060486800030638499646604707955582153759293042247020485262314926684887343947357694707606297246011538506574373667792045063138851285955251104491422926414156810021361887405700480247966505197171072572199800384462759600245428245986918978612112983276747288199181187108124968339075499789600243568899453700953510297776691893675654033853179986525886511608463848625306060413168396758164631515238474422244432173618876234199904008211061737959490898940294156106879120210813010373797541304413120215633034680349960827085086840048435179068870651160999920620700213887725648308707316475063219282926592081796400433285526537708896495821552562590553712277849128536777837895521831059059530566514909248813264933621607655500390475611172684133954282579653463792730236378427993347343127218767426904177251231369575331379074496786023923624930758970018979542649463824592630432068346177813299986228860037565524623188536726508216107321576799867018348942776716248407066850740845325280373183954790734509840380238415217266931561429238042761209072783570064390604124715992247192250880509644071386232926807563764521736279438113021788918845486500995726207655574355908362336166709857921343195069208583317463478967062767087548200037871173181410354098550300834007531155305421443413006878203629397345753228449301661933055815629209218735919579451098967197827755278783102448062694625690935684124367416261973207439159145125684838442667873522479608859190692015121661454921324343969241259978623984002213645957935773942608893780315339381392644087738171433441118534606360216526693926579617706192318570102242673397712103864907688399089170724307316077221458035966559720996199265450426949717473981567746714948382227379970222814303713744707418172942254762143205978076445107932176415458812483254756157550275295741570401825361486399250574321433575594132572345935616646428207835323643637145822792211044920714072607504367896692402518860412920758851024678303518916316519921770050643182047717074541555142833851080008446070221248937490883371599080514304432928008470573028543985661897360291607923375987640909686085320679084077841034261960180085531203499177031095739994420141748095708723802786350029358383666040202703497411952931600048523426766594195148438578838275627869600890418160330338621275228201071927672808295859069064563182734849448843760208866243325425168038989419978689149763970631127564364079473430155640476863659419258270589539740081800271776378585249657040806662185499616343401696982489509361988369784300790355946145468627173769371403435488824733371661907924957609979578930307693041298036963564415905562911678280349843121992844073664433148519565126968910412592613649653614252543267538105085407837906156992835168468523650152790481576036457565453820141471034236279656848520271378158908456743872791451602184171648308681856730927851787147017442905818108419866454713274910793588745146895294558635173169160643757583928037881746419192995510315199632664023208538552953887885169912533367891948241543705003226437314578617140634073774272324848566437469241753636593240640123886905538500093510201161479464277664613524561278858944722124044863055089516999601267507016590852083994275868410622145370598985368973385361021712255058235110163093366531445215305007059845546972780498032101189711036337318236849270541420635599100916265263319293880931419881126596950922780703843173001638032912533892596880981010155102929276147445537668068658726882089432957913179086881750783102157921922416821282113856274833879535328865845023886856280699425256235476508860631062879466437085048393396077325534879390558633619478921516664534157505866501364846121695209050717439598411869918552063549677688282324766454884863548246866315835427475737666376189185199336024048378467981164167385777644440812504109893572664479019359703250004458878533873750961194846231138759947927400180211393965718095555368257588527521782905974503148451953890183757571593541557753080458154553919401783872700586052660077673318742334970123392882277228267325431889291061068370676143824018681609802068010839907916975776479028881754554753204626604157729480750783782381459162795094440845756563480711044892505366794795998274851004659789018536282445489947684203997531800683834832617953484678082611572683305595097577956652563018335657796427830819513016921234514003058351841051258973171989383467149360999237146298070495013480535226060845681371665318421031364895300442961273722620787076895458447880361662039387980520189332653062909183010516787840454506289715810795322121216066371891894694979775275456112874739976023128621995187354026460340011191028168834303484564303506207998007540986881602408589044364636730565688637193092643911809115926681159464496992177936320793396961393744936435030891203917663895366151511500480257088787184123435280387913047251119353490956165678704889127120294145297483284365067654904745744648255717793672274119941749405290054317419365739936332964651895496622631753730702677579705984343925868350378990156053038102088846380197505689493685026165389438993264960212673216640140342316540812975367231223691023738398277529024761053567893704997614956213820078569496318566462886248228272379206786674695814118437905269883946898057782911973582513893614273900642983713013212167760255440162404000469549149970064604877822497565831239673700890640879092645131501235074989710231002185531544844521765621627571562548534040444492107399691171109653358141004974990431385017156937788855466045828266419065823575650791387480313142982214090399479156890329803523684286451118621513528584518835735389918706028723829542360877363984953022547849411256899815422089876122868554097646671261203432380899719954391958288228374837445230921405883462824734322239477815339646840582780093876977223722126740509297546553121269281792166024730358641853564758220049848957784570236955054064203107301439667443168311471164475769130995336629451905459331616439721106681149254456808051389180389907924035220137994006710208781944101536137244517492814073754625470092887443321003098429577225143268466990489701707996964368231920485287179891982989069053258556249792748436567681662677795510672802349847860909315357791282172220966927325905969791465221410600334238086098949029711390712042360116386495044261959941097846256510081198816310121308265245361674117421420878791020244498927535904181209105672956807202474747411584273468449529107334295346051444422086341242463531673474102443455437360549247760383958321669384900668804073555699873015095950384534968667645125083474264499039764112818326790178825740232772333805466027503146264876516571372960297628569357152587335804810688384965423229522779545812387609796361436179347946080712641305830189112707966623211885362005216794097085813019592192801323259721574594612914665879331837360447228726411305605373548786837197700873807723583231597411642749751345387973212165480194108551393802166437686905584797144828525000870869110992688655451919079712389968119789091661482158624242974074872643039787915438050597375698289101282161383102099811115775721399253736300898658333377369950914514096191465750181232588466166136677725392037390013890057873032574167479308981285361659796805863068707723543650506753320224450997887835395926869715914720680337794897527697141717230486697893092742126695263385126389664467689525906278308966883879831973303755984285275301099521656923201860385412353431512556742462584789329275670673022449849332465805046197228090796116437649758007840968899106609581752300761313308212331130605238311058159320415838369350405049704854098235930632569497710718175020878083145645728880237791500104704801759992805571181481806508207598565164646771342612964263868160452356775776915245260606138426340944872267079827750672101053884490066382818131144762014653476814156774295719021921561633159754925121103448214431380432732825716044313646593135266279839101535372238943347034575906967279063900091391366934126434384249208552861750144174804735775335225928947535995496500246242701130551055881641650069630044937849031276225890944614879360223100710610969165918913655293105350059181235744391003825613352736523081345260881044813614704128501447970831281947922465453203206968015078660648140824683581557220079372818748103631405302345501735212354138784790608668121147488724130380888226032714567113590676578126218959058015700227641334375038242837588338247259507517580601755965320777008736513027325343692011661183816041553253742183108380686352959813481891531842989465145174188021361145625376080663793568393722498999340881616900127309703692145434258983298585887124048992301036830587110846300471855804945943161132629450820322364401387531986259347021488057687666229800273584658698526465488884241850478417388311859123795236106646800919912047671910068014756386054335778534850695914482213534518140185134258909077540192478176327260622405573263496557899436265926033886931852462720390991452031842643964357003589214365648764523968996558815815470509017615597184448511075981291320908610797171681592470764835361516654631508097900087880809002903530267388517578427378698402159662152348026883904249786890341720832046090001502481958304212425592049519411811964831794233427271744516483967562946217442873888723619631958454687952283694028761587404107667919058042456886470949609848332720265675597035566187464423332201653285169807349182406941903036837993573811385974327578527004752866277432111963179430029621994956272525006241074963343015329067184044332481894123895337345973886096736210270262034698257917028020170404341916558273358106387043460533967113491013026567021215555579719980843568810910128208456322847139959946757234377622329434927569564520487590117089178881133746666915670692533659204373646361639678982459974956599146757965893883730007249221712472082258322409803627703991080139037933605207471599372749590921724592922562295699387239196356363688125596266966204026104517921822046000278488774254295583605163624283709891092899006100715560024870039985175956315946181527553205182253214647707884698979908311398562422027874108927532063231677779001132302650072105717807292178814567867189658308412116449531229708194791306841850646433554689862451923147943390254845615756103109011544260680483509740695997216036153288796942961008954230906330718304173939984826822021227400727409969899822998406551347734790869578396752565609104722941879034249500474400431589968396246424795563006998717746472537580289951537521561136787861515244964567221981575357590499003153192663387641842372419796455787131797943148385631168361748021829514775799443856457176887180918781585845189220097391463395174396447562635427979463439679008466436964944379785540386519282178045206008338447103587090641291713774619656091010929583467406440801105369295456604565330709587891037797623723627988542864077820009969468566353016200868621041951098587369222479751636816271970831936355316621318304372451092475382061129676587678655710278065352029851531549635687836813755403624902791155094579444697032554357226946471077888545553620341853421108337564520595712241918250879947845571912438431337560988933577028533659088951382044918239917452963028885436801393857622891601355736531080430118450704136057527262159445069943500583403161585383752401767864913232016605927558334743663845875317794618032963011981617402627378379345889009875133090821966040054521813550553739247385165424823082122744131845481710136873412317186643520717426038073811374011997613765606817888442072822801980092756577873667218434377363971430656661613809359420161281772985345287990748662825132639224923390263970486717993244380739372839623691209523570684410663096579483611399652895152869637264223092590058859136676581002116105659130968512387124309933345050973084007606409451196812888388500228572526404164965259231206366522645879934234505715971253508848325202413782627586609102149479276322313301255944630999927264046571154165067648535747804104527819036218640246588425145722712068173746276684181401469835388145635079611914255681116636062452314763671340373111153805366035090054695763976937107150558543443568426223232874634719223629775217770069267628838456014705215906190903492304830429157370470623235502030752840837662804416471369590382590473251554678472362974364600960631028268406928932115638290956273433975873119806515585412225380170279905076564143696363474880250793322777291445822169790261775760613011639963733663381595278755800623582177117702332462782474736090386702658621521506224884438947809747163080811454584023508701322575102180032099744313954606924290503121132477937281245272307857758974129027160961131789038075915449064359955366408578160784569245301792854041322683500547508538289293610205875797269655224510543688133515052691154535353427012488112457511024108934487421041714817841861634615225766921780583647855357706223831313748955909369068070011959345193950195037078717791159986873148979213439322394698945002892717474631595086720421855557796329488876914953412911587776838438754215030025024546256122688217368695616548838788024079379410106945559689162059471998840848580656184414929051917778244246070020810396302978658968629414960050900255035364709397597125510279267663096082343123309460021427445719350238931246104438667172219628702788922759899086622497458507547388953645619474444999822718862534951796134687749832076012103074526087900474079124474909441873514292959273276491695723193325615021254791069060245800534096401093640524172837842312546432332865467390155925741892297362094029846636945927155417891684791761618724621501536813971975424333353524582132643615921692181865701179527569135591024475613097959877138145253613066438926028639867601794413324652265294925798801233998991264321321697372223743507971585352824763833549512570552969824088635787814246337001837304167654418176544228290792088603928736667017821890321051668756200934446090815580302346655388281429494241572940723659876205970668499967336511086324530272045363164976977110706777547354511573914822396528207305131757895713709650262648174155503675176679336805878857530339461079930458935288943916972338182542095424826194353955030723725390360594715575228414140275201995354993318088229475962029755198374537748828122786102745189704515334727161016032866195443935813317593363612798334495484276686139267718673158546647059454730026289147362263465574894702205103034244584651188123031887880676367705364790920184724368897051741527346467592644353229834106502716075719631995251925659172876985469156175807614128438669025433486586659260726643673528855152571658361909240947085749859557472192230154860585802695006672002000201080067728252867167680478128380364879901645462015650131810603818143704078421673580423399528382502345923988986763059005377161670058357455890594924105773638817062802828244078529732311417041510411767833363430048195806375460352260840203374612619655602816175610862641853544733583336854019733457625342272948781262763859712080557075497821562435091001220267920817754669401358091586827287415070598412963545267179215418977046651574127791742259412077295117296158227884629793050445610175436306895858227802547053165634968568827381513214577035636360555037609939466056238523719303651834167755927186671537160374766770589175199110325859278777997282463542898087673384448026147549826807564852277659897654723128642818661159135496600100226691314390725343303902820265489680544089478166577414797867445815287263372417795363376316345499313419677551974586577192627364051616303032399504868566532837032334173930470737403349926342571069524403183535571822719819243524026944677796995300847710637784742078472282135601698890017587649764575172286058683509117530679616194018326161690179477717851982311588702317264343396934329425980877975663285000089028015491420786374467612790763250276271866192522911697252063030650400016836168266351759459043670276265626788794172626209174878499423151871911602013123263199190564231142046848034424466965986877494421673694929537888349714353000687736096459626389723620782549789670052148729653562792999305433330129864777745531238415912110493163971180813231991773961915230376057429954185909779286319880052088640781012493516057688967285473796243938777803516166506792378352175215719805742384690898853615080520451222136966059822803785342095071264970265975898844808613419355782077180811041876614346685672164546932682495741924143145568495530555741087208064130895403908998116706640114213148447361134817700480374425224712224069870862887741503765056041363702395138645847907064853284452929718314093609979491786200721546806963996965795497636907885859241636161822304635092421447105125584231708247976070581114431844893825034102467019003745116754677235001967421819633031412335209297692153848203302385355527654567659713530363282842036141779225835076732318893382547235018446671507423807335794038942797701829962691589749624238423545630383483389451816915228509481858034886248574617903743280157212630549566710552769452629713227554285125850332458588052206111138833384893574063856469004717185786807614768076352656604491839540653965469376913999386465483757071913441853785079834200305415536695924486507170672097126117868916104972650688993660771002816671905870047645668444694505558250191092900802302549533565213406078316394528573567502101123354224159655514873176904296574178316067396953814264719587413536977089088413082282429042370873234492560005164259966153782713701506585719222326407225143574870151261496862321086931448455051547486934565738585831074278637763628859987787040918373003563041329621939286038867273461862415223725155262934337149572945673586837348916010438842163554708925377338588313949407583917115729570864288316159314847790379899483666070222776429250434561250605317053334112708727400649182261673730053666669929793711658921749121841212989796556153183435285741183653271768026783640496919386049980110707492915894753750122341947115087334991963010521854062122711823259328202372223495518887910080354864946667427263136038015539078952095573623057960567948976085418216658150372974613748308957015581647147060798081213059510077507184096708909291272732606610632531340233296915151170388403794992861179017347902336497427363382918170356678429498690421110265920747895738797118763727481771033611290389500077162503287131875348239175138813232556586317781587262204320462769111944519696414074098989950108602615208532810837419794844757752915225398467188394134217853777374930938436849417813158264340095395141378643127529710314271348655975446515291395827819109548382675802562463390952282507898905562458670330062767666028694756602087690535354026156984246629219004768339640056977523063236262589267149058950501563273550976338838329678115933022387039074137209605751107685042902774310125962748114511956185215531194955519672115315796994915867714348116915917935698943940598991502598886460616966231414356284546953738465552257679835057209335570417342040467669646887884264509319728338762118284511968148443499087667870974748748530920261786460225598167002322735230950372931855349338430870841049900493600875046370078691992934816031552452949987000983790292243854682132714671682772679100468840604646613570054681305795383540290759470223336791009571846935136460131369690030354111034485461467415897071707737372844515403273942721623594716969569301618786962514124157896304172703654497497507164969817390204036153155865425841121422379808656234682212907673973183294327178993773512195212124777392756857013668192908276595125328793183295501581280378880718553631163688671519795825940821488873269246460318953901515569040053552893404231504150490014925120948714564754188494683633520779398508891553174991107485756077023268951798213553272315411373933547404221789461873375039454902058188459591621377075473104424050016982629852608040730177229342298163064213244457948236074066233426535649172167290127802100361348524575234729686997077473895008666387855781002964991581475729886264720982307755924887432332895360209472381308393719208416182389295717450588716223224352969874516680984650151380191033440330408533200496072096344312244961252378291853029578183968763973351660678719869704636215793358222475888084150594724225705025630272280593892767740819571495910819170457264662992576225787182945167848561860267849080191394194209909662790674742826183879935761923684859992948952689219421849069503999537204094211059267741223376574939437726831131090362789634936273664302376060062945821226841024070888724038939824588668305450712703018900951308049508734952133682147838075085896034762119534214991833495974146879678222956481667262221706680042209823487042286247787971885034833128335855362209253141874235837768862157279495908592228256059848572872456686383804145141823034859198947559182881241312998859511708357086364421130836838555939297804352740252460555289292665742981367009355650167113381130093267599085157385160818223571466670951354175351401214723367752918782428925564030353795296819639926132347517388778216782434784520083429793333679044529264453444839560341824954634647038319362746203127460042804795592495506793009267302363826844133768297425864593219397998681923246372193099241142875223118824778190601647946164394339484007729838413100997832075402440164657048630407635959391305634728020416489789005444743782028603578998183243371915283315536048129128533824678258136790557955355875115791403046874441501415918779672205032848345473809653048767639898595852209830402611119717646156192450155568498883085297929148924927293418942847885595339691496575431188311189349084869273339981254004318390827196950026271890311458013094966467181267437816270996261648952287363835171644997657117776982769257495630564670639297554258046959745574341433520649189370322182006631354696455303850734673779807846380620530363374930201842289686012324289835925919606006255487166231407089475615367707895089923943137008241465624126939201813235137720930653887333690371415753754067251848571736874846415671460056779353070167076309053845106779240503642891090582301072385189455178851152706166477345650915725103869299255858412116378463298784634704965002246700390370899610901834299006946760960775400314705159179762888825630677154045818501302953721824221238255581807030999226347588066303197647761861345369962929927295290805744778714620304042685721769044108139482904558143168542293974663439350002492426372987052460984499266607522885576722067905735082475945935381943063274031779741199610568732379470021497023083541064738538414456927023066651376883480229198284466473313051521466025217447524627811843772928162853879194921871355886910918388860701313214227768770268348122492073753912515821702446040543114475283675384991729957306651740517688593007088535932386870827269019469138020361785276398614781859666219165121143368807935681910844450477416316883944094978004178385333692721497132483270860118010756583392737851839314715781847292010576632871976407558893008890009786436942685962632067498187373484189475599753008660031848019015366531668430198983524448235937738126734325990795980666398900793783132414941930924262822366371787173697783650564326735162689982832803875032509493150459698525909673109827649309056279570240449597733959129037440610728867371859245335445062456376441434162819248601264093389379002516008967187715144196536140456609465224847617913526501178961809430784232672291356035395492155075585839522891897566743919111145108828111657851311047764192626757005629703393238637732780000243214372091512154993684867098096111381417305825047918930006604936401321117838678568271833774892802596321127666128143795195876351257684211247907324231734635147509232015813921342627193074793378895386611285267982795766007171696267660578776490611092808490175303789043061392810530682319388315442087224916852709292848037123219845941208999513119790602988944324483967462040279989242225075388277252710239952791053076167179643898617017408876364255335513372196527528227010411851332806935020402845785659912909850270381275290640505232265789134631996757723518311106705502486061459150888807388543650088620718521124526459619101500829785187487325734737856136620776399829013755589615409535496879251638877467369887524884968585976365379107240203602260120504417606059135307271238754836612084649674335035747384517886612077448006005985218951039812261631027835256332788893414726217717507660862902536181732962042053902915899860009374741504542268948558313613650928114023543906211268196116515916709484004740648274941738827019224422549850466479618380420574394637049769162930577446933164870965598829114110294019578231645250741312852619482611572694134147203111936507801047173687095569201971655653721378176671733974568546065105826308946882198093419083690850482133017045242063102784044880997355914105365764606030462634940414311412930939160287477811119332346466488903495765666370727037395668360571683253216733839890236280390250226695935371183890608365233080137344385475160471176283879262586855166586488774394054155736351956144954104876987254135083410209852696127191033678096797119551588796854676458929978730139495351185240248786338738428830826616821267982861270440956298692812012597081602942529348123743633620643421970411329629427776763129259671582398841948164139875319162079065429236461333353591396701944470493082894099723160794899463008875709664090804979808479750502179179431263741356227137085215058588864442503430423741963445352770220963667801136916096029012127401879346490208249675688509116746330090054703318486936066001510659836042629493357877549916161620235725781663251532238598790771186248035732523249707480656167427605313246010783626303996118734862019267018568624480176217300931458558743691384227882799742202195828133186040025890393484575501326742316064168271622715861747005811726972255548340011560831456282051075991729022796828616990123966953866203125287369624768591584869145368112215997862024667229162239940620508136353184340114717244772610421661494603212024650334853229513461449796845121664401853247565172583601175346878513296929087266064017842592516403412374132621586899158864387740315604148285629166847367755999963351185555301892653431362361417711865442797526138447308829206507312566580200939474112276619620669824674020555012943932122388452272193291740399969022638772767087758593703658328448914202703771014426957945360619563020954565221410709748947977267495707333140079368598896907831264436089700487662070706966661638897296957520979673362559336346765821785190939996446032463936570674289030364583876383393712278950396426959957314753287534205528211729059194950202259476205012108963652782870408178216039318721462425386652481389135220312955634905889967181067687531165863889834891935247332299795269973766434345053218195929784082044160474308432076344759320850364697172429286541036282258043500684153149019840654817231798086556551019226121745090910709740160434500460932398377530630638474297996784270308954300576096931827163682840774623816961717523164583679234237985194574660440668160552082231525329614358711280189537233884950825720501985322594595221658451974802297286946335539133105682740764186919630328779481556937301444893117493715679225710251259464534665703227413852582447210237326528447509266137233952786417720036974623470301825010647927376659965676138823984104198994536659579364299185663565075371907235436979866568308106406363120158254108459059348375137849451159214318594442087896001741828849620264500891474665284267478238639824060911346500184740588384833494295759414224122531723922664969196618918792891878033128442188881694514578927167545043603058792709756721476195884494884723875247863284722437707788239722704447515660213260829751143869124964483353594340820021675103543683814899456304611554797729371194433711805455503103507137246808547731612481654897044906824010946356388510462779717465761848614235729028678713529712140654312691872964471525484728715136188684872402705462802157801540223667311221097406779295348127690919270156764669239054555873970862827877131371455198671059354271710618404512334143141334645180419156583874351605394825850393585280180996760863118009772056916258592277300497863299995826146957071651211040932179605869478013743557404975309358174458387688361007319573329089119660350494696137067959333712239928148536524890648093336537594112856413785584143812416173168046520387811644963062406855023023877017939723858886069121600520329564490946673701728600527620612385031955515970275940045881523560997621576369562170208462345761663283738132589532492320433905318579404495265402289967715260568226688991997604941772710364990401915058520208847498163770761927887600587423474750535168449582546105108308914363119830007440223240555644592054021010570501959062137318670664081226751847474593446562655042178875993938239970390107313124286951931371321790600621635573489124818901127371152326644457506762583106146987468810834397802640134883781655652397913008109243648879707494465453086141124789073740259242419069763489528858954415299245835375133014180416735771718658328903659970589913559029496835855650558332334666727099731837514645133805846354197236506882918259211406595277960958715236249541280533745651510586393001530628109653031084123493636523065363270333834486708382184365963978732168565588851506052720184290896184359548985883014516014681386827967643358321038834815013004520978998840780724865091605269167105596960112463122530925226800521036741056119177316962138813987433922454217233016606388494301185385377117487553195404431698501455535237515963987808705599364287107878695767853457700640374852177568850341179105218020373052000476727121979193146968858692854759516387201418634346936625932738633803289267517007999822646701595742581108516682288340475621659307068993035744256817671612557414006284904546005868243716176889797336626868241946998682285736653486448509007092479336495652136310158154006286906210602394121858251594432058734081451024408875440589576153598745144695937720787551620128287491899381926570389925229129148497989700347832244145731513608884047591384983660518924332152437378303570589312279518308793747088785721749229813037545344049166675701026891566076752796430078959140122618649149845882015442712360461758413551254095329725863043279435155043025320451589045785548681567455031475227112450385570410851692198583999928479526995543596458136246211932113084656150170021547477108387388160822941830673618172936560424065765638588170747118229127361297222400244405885519430559848363851677884674517168901574971885697550048135864478239081946498683811956426210835159752798596503029707947587758730207200192782872639313946472109935089564447508619713385604767813181465019919467465734755424627187183207197890857364158859562067125988011517348705366337536986319147600553045131784778868016103042557060040800475382531908361680120343134868495120743868286277189886652588184276098147035561830974523725842888493973934880628698945473740756916801797965328101435459912736415785871593087118397267080310977522583708656630493004097401053349398840318860777974137595496161284178145988581546152972987600585788662634309893204940494356859999172315056856233041431930040478165037269403631107907308709987655573815764511778741153913085130108337847558527068398437223637966198327975462893572290216738303489904630487638359322212787431505320700943634915982985860419089185717062512040442724467467623847648894207077129420711603310956528826006159361669850621914636231628619006015871630411962973318337474937320953809172559286969228784352501966439368270660084465725397362937573583528741000754573589670180327281183225471395229685461022109638623244176141334183916376337505293683092870575665451060354776901021140161485861160082192301496853859279428199401351873110566308213619890244006228432616329645617553475455267265538312887173257674468990211496110726684327312017530565920298624898409782407204119050360863409629361677657193053456181635546638386688278144901064140154625781468606519395395303183573163301454329463061630947798149249203310616114376301719039001555292369399155818097742250225944770311563135490895353959227893531020673961510253661889325767024859783105362090618757410145754561048219303447367229989048084652798987431004607163881381683390343215820363235242851617357352643880998978723112256438726965482321113731122358341475418380865396250689267254723313933328664866405777152053520496338833781038326455124670672167881118144144635083063549285387569507654400229947867866699579970499331437754115938201191175094083503324507221128420413483590203722404597241461725859046397030437634620265016479867484838165031045650778304557232676059548933932006049618252192554825860321436120388722278541404725994631246736304832834408362517384987483808008655233552841841755154980201495498184285428314604603363273628961855546061984376327617453005544378867512254278044923849953649380635911499627366971887137571196348182882025040531872461974444497727359958339914196193857838358518299379880133804431530871292552315902309282438424288075423289320341966280770049160456860937882668622746048941562411159344400355202300327038101457000094688557562349270628510727862293383608858096529391277928220717691749910299438163279211518367453950613317897697278184996427988103725448987894954604362320860905398348396121364579975239492872613021257230021967125320621359039368815630079315325351583270961318532573556947777379880268192197699165584052109345819124912565603519341414742124272742442147725795742634646497581353478736504252323870049839243571165377704369816298667386430164897403283828579797311405593844117081616318625139467864480112740351341845559757317540290954281835301801353617222879561459395448444086938633469951576667023681915575951263152496700695985682448092890993342059994655936786780802820835797081045021470728610634104178768205607693082471683183881361862912900076596156625973573667192249244844276151824117552334620932922420456986373915116397681368666458837490672386860726991039170226165617707907530933404781089069305139977432118391951607583211576182750383057816743494320984592849078621533830375995028441516716148009558588973334848520065288035237535999550193278719501122612442992741487127447880834085382944490682248729485181415948096677158822935184640645675900693091308677606082299120369331640612432087538354502543938906771057588677260915051706158857994162480235533943241422537503940721978239394015413001089440128887063540091666139251473903020711400850213608923230909492782697723737216565804050613684957295210683735259452827583545019684982175929932689729534987021880265180802708004443095530898735598445616908705340620594682266445224072961308302603234216806688579329547208316369732233959531064194069554466743324247843877503695212648354748673884090364697149531204775580593733479748435994712391239367170641395279046649924892262367595321300536479947913724686187733603634475152568009175382572700972740414478071762254554544513853836248966375368255032258809308094620090131681261378673536071800219343684477159672048585700988956279266537384487001086568657264158794182791200738590405816711758930393103041318390993429902280754620166156232355549967934190788190279314022783758491708705963192901726503632104665666714824145833473713118127704860421338384449654857340692289474881601839651981667894267266969127266741228855101462221590593149914218211187799813732761866241226722752301458851651286113137540043483216175238655291201571190304484765345196601094988738653799048563206283601012535526904073460274212471488371535890421000067372269862057812492645422162496215461720284397334157253873824023703160137043513444900138745110946944154349454780438765561155888417341342816453064316143104844318039259750098133306744184806268203502638471805770740155831258166610662828175557056601121179103985348867164983518975342942423873239966417001085360092074407423523666190314340195759634760796557514324903194481016065987862768290696912127907486762499216097112870416959238237376814738212278779511444131348888678432453547099687710067575214981984015427467944309559308192983009620359745661951453759149373999883440789534754790859185757241633804275781948599066524281678063123757410313888265458765303748424302835540317159687213098326972931482993153205536312450823951752363563501305997618765081674903400703416188954579336084304298140429035670861603328802744134567827501909485438258267905739577636928729043033524536545663752610430901807733214317358300639720976468818399307420541235848706399848310199912407223799349415400257060999624371578239649268021894971822233595724961916797607000273795784210736670772580960375898806625441819755693525102351431385149950292371267536940293930310560045293201191438250743316342011399479437408475657212005147717400536164648233535960578124887913185379545045465156490524738802742976317462888343229254426067194377266660000704382799386639197663332625322707376000556760211940265898793190596730211674654955235298043997128765686942690433124324676350803810885502316373862771273155547102530836123823243285680451120404077652419528786089366452235980835178253957875837902989475288739792155969590212251163078489544652085396252831659566763759335795128347251541118859821172673852841409444430521853615712124894939950391531253592527327936071693661418330103663401421559397473063933290863799493224309094027907557411645741763348282012666389281783308896440616616948063337434017223020448553594790716129952872937519140168035870106036888564043031870717982720746164220167761012290309002104659580425007204468928849035336479591746689092028854419356599013263271375870504433653158235076337726503611365702339788248958252890097845241537503295086536737509577850942446919082356576650917441092508139233357495449997934870459417207383870427927232178368297520842240023457042816186181843033037702856307681191101246807042716414540230813737929267504550313193318206350767202575304278401646338737559420723983031159436413439606287185413194412029930892067431798132465922908913101926062687350505808112964645779071579004305647177176240497733709832258157190064062356834640213517111382850481321043917724774346397652634428205748910054351604440377890950555975854550858025210720277266114854923229588575090012172581955887203136518976191081304523123589579797726677832900618904636172819888422289428251442723588643370562764269435945813227835911093543256924284540515943412663960620258471865587349745346137093480571244207451194340497761649157928473402673196310636119955241181131076358141377647906764087701451692384117656623916090167422773049519756756902557580821974734677444740746146803023677420795567888986875436921219317451800305379705055035077481188130463485893219075243265025182493073664023708791168756752641382153918984848132450596742770012519037942868362054113978242101585016982641233369728845406858821241886293866055898453717562806203533037162656520508675982284344493030041424016670615656808176102425604390557020150358140939554048618976323441680901551137596041229084085952752408446965689602178886238046415310928455395411234977443712561969608237649829701149578104879118322277978498105464530841871896987790233340002498029928929176777345304928868286168574244373816355360644312206406431828700496097115965139615187285592456692782930310742248588893433773320174724037735341021988950825698307334376037321908059931675777873902489994992764872870790572764271402413504964390610910836347357077881277228555240325202146453322509643883613908012007505306103356383260150003676536969511636215270042886804889447163142472823523761081162127562806313353207880007957419734685072624220116061559947987423731580741590281930121742522620628671063579422740610565169263477183442174892955799454196356763262968405230241414264812966236953963886664783333173679509449248000434880689018775411747842763287997923782867612219376817577717710503827843123318058007156705381009200298277936816883216416047809841325370980981693731197644715441507192450727121840244721105266467829205492566265829859196891660077070684678278038098304886128351590940939821455236212318816743355073196466364633355281715289304814811733288000894734053523426779210312188632728513570601957578929930554837609989428229348157556233757243239126789206571703883787372928072416483970587023674220172976152680942902439728550971171632582759283899608539535535957259557151255774502933307202935747930880844847759073012512967293043337101228912293122984808834302246699507610301447234973629548551397034134617443037986396128964816928828864110534784789886055949005969549601520332340472355765105342747897505981181821971032804410490492368349210553659749820102691687772639168761802531501668225143180767215440939489476738105333256111472484565097044172932928593464953012733832771432786930607652560886695402047799512288667448371759512396651887084690065530510224920523578339105994412721106076831623459385592704912212076825177412402996015939813985265827462999393743178607831905695708692460479134425429039427554543688315737468104358162485201230462987553386274416827684978968645431439616252608157539500813565295567057491617240128883224577303344722924024858668636961770675675778658889207437806286782398212535513597072879214272304999230910762759701236311122147731351760561787728201890845262196649765432724408051925347754577414040705848469178592315658770611040291653474742440925006600568804218467914347583543787234537751937389308777026037805819914569131514269391110177361900815607120322877883509464176974732917288651256416001615711784435897358643732717257388062105033866710157094506520386518859125122495310582214138774892386260614306336164581591709185159926144717425024855786583269869097847468836587173417584428870191556833078762683684480038449286703727772785138682819715773583411580265561292061192406228595772682685573208439654708305752963817415682209456082331353828870474128999175352037391852566407970724231349150352865596090385659400853578873085063254576473356000203906269282420303705750257197036591486595736829419445853160458572353455206227807529727700375114927787075326379865314121276357029310191936222171740732712890525297260408576546312395221288321812599796853596895447173854359871527796553954838571227426737723584699287503754795489319038877318070751716225370488912380707326368787965116246813087070837556573794072138872508158879081012028177858964870137369194961764671235744759750462735562528929793887495331818557350564138881057890078931618216066005379420189447669811636053998693839963868941228217706426668328356587374381467709330733248302541141399051971250887465387087505917056589705487877224448403499333514933483548181184397831092349800530764996841368279014159462049147219913710059348167371897668220978280442541761744004175464863711266773311569011431545617503577259538760082151784454187777067986910466399373110840488036086684088919381175637967426227175597994309551539834310819940223787306248635946136102800779195968636816305548246313983574765211206613933943964580169270855866361861197944415470905337846000600889902952411344573617265528052867508026712945777978102780575472206585862935801034662493684646999885218002135952903591982884808237341081249705142386562760804879125091324678661288266972644718534324621106007647831622830394210765969785463667778301256910944041991373701733052409066004269451438351980632856835060401487074338121430705039635640735794452745996063659904059841427975150874862573436000103000941244120651212334899587096718910633001933057422429712641220053596879511167905217999806105596648473232056705422368827641686075156144829286334135461131854325276124383325753998681111044268929561546783969558376631151994221713468011024195149283865086186930536757172462523349634742619026564494261238158347141779548381953527103396986095213940984486979981650012384460294204967339621825118875733870041800082489741118432148040239023407228445192739223956551336059262575547892614239433725265984131553439248222571594960414425757288661087808196924483755642340415638320310812413294308742325106991389197636228867724189362390832446493348695383570013044399866262053470756725740886409255451435828495216108632430217322272492983444986813126100609259728623223371993169986400899490854562867286045508385836047998013668382390031046226704359305764453456380309583374088349106282498161883067727587345804016497012426831244566613845220900363156966524646104696507347663747309975574521272844958672857808335852622357290277767804850753941801719799492070250006429498535118449258532821238638878422235038410317631166397698383551659930632371864454320112808393023204727135485064744780406177427394803318325349418689473067292532873603705025396118416387609354103957070889486423356483263096770247334443224214079601756959448579927813411488274038672944308007209772124442048300064308440322805016351920149247059342685807271525941941859252699773522970584835547094747573470300032332111482213471161979055888987292401866684959740545291385473443715028027894933488916364894308868273757025731815213571026079935199333378751072973913871858886745910448449962009856898051864674791597366443519605758414676798449720170737528328670544392009263320266109709044329603543519595674164305600859700329129515946204055589507347370615790828831662240229230147885442210494318408166194043063527383875052814266562282806823274037448375425094360315190389908731188341391515517645054002386676799649236168708978720336267170485119519313388013197627448411953033899526643723680599098228014101301920270627550949179879282017176758499944674886000522657038974894332550948728514694016292898056066294234675134468283660720060648523719266414503943622842295675185825724550760343269747119345243808071197118607846621884522005379630668032701318212470776944667787556342794089470880110396999980919558845902140258106352304505275699117747721449972399335983013049839515605634835073901312510502227365631507051648128365042722897174105606400096345291417431824646143560829218402170489485012494273687864693444959942516929953785861127143017933319527265794942183942015653858921203983448164574387411001837544571091777185750875317520267093483818077010985176008610769926666433693323272824586417238910439148181582123478969298330565509441134909535207780857171740167213600879410201704083144921321891523027641879546830369081204987098992239396963458144563447318951599696123956809077675960399691746652464241433481972002690234530500635658726857013783867320368035492635812839429859344474275640171029171546308011386161501791764722694974267665129647746378741999618351303172711027931642112089764967614883663284671458376720307388700270005574229107234504367280290460922892342840240027283195928282762511007297815696188369365616275554587590160331950594535423396281107008094846317695956326074977625770971040799386185202055300608431893574275821146744067628343173784210931607442101697184707668050502781864657247068737347101069699753632332623496373197391057753335986698836608727833001433408334461980644434911059397883942879909517873666029627551527298181038527379204996358218146190120098941154716729718288950730822855646300461936140698448643793650159893183217181668862210532882258640953954765823894942257462916688500931575534889364463775189415101757201206506650358386517319668741465796267842101120057099227758409336003686044476264506263463757201325084940216241656992553112684403737752827339783685448160533760171026602080244515980118894028796877169543765592630159286041637319627504346468927044293510793040852534223200928606770459324135654592148659578072686945164197945923570762070438784973889950869277436778566702025305753951415695996085721138541563995448230657862920994056879771051902637092287264345233397908844965345139462143579784419825698113770078698608377734193147079447764877863022723714691257652491072636415939559297941426839492748897341954454454206421716702656868839893857272635342864492222242875087561586608844580263805569979025711081419524272604442580229733957018566772527677114941047841183953277603454460900714429746643887153704667914105482090590738627485494987500382753812142667338548920231807960490561225239037764694842174097106525300524876628429298111977912084780785672769199924712344123860052030957991433774047452366130384970825364374102311086723101676713665037099477007740417315670315320678106347805818231353210858451684727543979316512220511096158244128665212005831685548059932172041192552619462373588019762564706514808635138806238716514001740113474849105793367873895787525578159300095433596806886302242305555939736194481631977340373800360286569991403593763562153861524698109377605943425961907335212407718221891266235178825367197899529716843456089177621167028086884538059113124737443313566793353928187672474329553208351225993313791385781472349703097817200091839027279906287739343648161403070220090033022760468312460534856843435234303692214245473552347611118381338782793954237150327393783369356363796466564787968042932303596913224078498520755706268737015538763729986562319947247338650952516962110983330451121245706479058861936460464320097573407788811216958404365787482587483770120781341740302998231005288930119539166338826938750341183815733886078312987964378386650924195220108309978846904629081416974835966313493261781188310902961403485095415077161435351046710624303439737432327395418931377529162449972696111194367664084732512149414660997535235858404317341739614462082635621140837485537813635527583996210960111665121189136528624811032695500786082802025355467262030291351618794358993511585243066469995999217664558340428023289987342038194695746950767020799911525460831964189038669046780730536211032469545811885122264054255028003982759821602989887630237779953733505697785523082322259234142775015115711652892921040652663226967506944149825320061366336522333937614122778027416134066852227270332390496508566591954721212090719414697114928611365752492307991217842875688502177610500309405407653489734204598977018890821190026168849511632978983467975822792164036826398451050756894221804164465723209283842510282404543675055428310413616361362268523738391190679174096192386953191423207653240303383000720528863371168332793413655696853199333853034729756976381795338916312573188419230567629172945156473695139785772410817114152280985260537463164741846459368938843531792404031035331255545683575440190272658166936338598959731750923032727287912934626328381881597772192714192790644473009524957725882611460650873811348705446768030227499305188066567969308258288269858322937247409901881496393924500483484734537189604084719624783044911153363297559492335589303767562230711781335749130472816972951992021441486735436310832575704654119155799339842757866660478986516188302267377452121710785838447145259259942955294976573886760680659038921962506872242123143561679198751996696453557836084469096507711231022694525037820497589361565761246608319241943699505942420430787329168819608051684947974836771135473157990758173571196011247729882418208324034932079468211591879935765267268868022826060872142638640789839290393049358909372499458074807492278725926557168469650190541814594748935752941480037969397790645891997420092418960393054764049595662233905076253202818868216554035209611847131924314482608535726689016599689745312453696741552436200856518198226304698213634736947381623824029659639348881658978245910250523812978406386815859062696222562542053949968892028565798578783773726040386666033407412097090147677108613940222035332629520262549449324551145375559532043943807770961425333653221280776908775136350190554805425357337717309454423830463653251142493286688547379152366129474735761278776428009441167187603352577503686740050004110976701604366340494098962307446200133526982849970367609277976692650630868696341492502033145096522595014925303300571287377221963390491924716467755219404698735030483362123606163063123198007485815372631562024418373856737409503887535070269561145139465195474415495364836548858022765000065144613274564614694880966044646312827522382170079917872094180281101991731883389043891545315296401478243318748076758803289058910943049935663667209906697774065086605813803719748842828215684202344269679617624996076803758873432192632907275707032880379291606528396180065788707702917657711286449443997995901431356417763676810940091990647829937814969755129189442027745577975470628231414067243854179421856078989445261623016925703177473626253455525600991863030593571826899182393719730644777929752655121312078280745752615395103523383963787694319988807981750253353212567942369006395286382551290881329961891036310598333605342235402511113599432032492824213297497684163849997923383380023545990124590765012013592206336293801741963581814093488709586421046439516205232422525141612768903161684071942436759214389761612779155325106661009292459800892023385751860129431792442852957361872995474399568771134374168205260278230305320885038232497011427008495102845418488687479823757673091080988708767872832890872986752873443294218846476094715607831214044906777412143986653585161732710565099111880147846442702149319751378660275087680036231623329399922210397749254681414461283305626394774247007803519556158161516097517711043468426867439029793007560323201920286530595215310604240021027085099598790749706276678072022874215517228894256654380772153232238794679315366476574330554050364875857161444503318772101962164810376681064013315079578391685583807351762627109226458053131230252936263061652051855267245746161741543271152424753404780989170536989461607554866667982796914083419206623918949451076348943743583302917219917580214230024682798494090071573013496323601950718428926270333351851388480267861527823424576167806289654350007203442706416803349112899301659609106995718749054054059582953192591774658863458598874336630841987331077127877887519430839633341082167243677171575354747320207487930290892767445462831856172345042243054505562027718224695040685486448071501286367270674276906564543965379026625018894756791021866445883054904061797667085303530415812865181456747670448128668184570053074673107659301020038307172233172255661254575476966528973173955293057078866567092758095525437176194176889092701807631193307818473358195403975418838995349021173087376887863162497262178716602212144197212353486349181962947127107576790095353331458900874619164143052240746284298330177666732071760271240892457415230982141625722731094347383519307026952792424139852659292242479628842127286109539048454264095205495658205168567963682969068077543516376530824414647158954216489336210661041593008746702116343768086970787070802050087387503790686825333557681889250355504646696829849363446433205940460191651944151256836446231293052511867633298422113072835002446362207105265720496974266411113738180403655439839393949906485506398215156865569523680493890830647560473494812046908715526155910589735441429070317145893862742453224470153392500171747474850908513080919366396088659491495163172732754807921178956144636326714411035339600789687886529026811810839691003472284240205313269023085878565692734391650878526253695888103800723042270120497264284088384540533634242212662795271807786905938578677143342772058194442573617423225308077401933758326826699501975504631411159751736262194755706860969315596945052838730555946655752602802412828648486657970433594428033402225760485715538920601360111322337644977912783710586428560328512365728712099455887076961588627252171851411647312273240362084975545757154377532351530980820446917089289735722670988124173252582423230993236963858307046696057247364585946904746159238567548115182347351152069608824065231851980359092329526167660148600455094685736134040254702833634748451565224498711816024836822527497175367609466730278874311657429865596036206089477538657118045147665567173450704310514481548497121922302727611021567163835405124122670873536619591416270235041663488707367172651894423717665477184283113535394093452226212638329073253135074021920000288180962127738535764584231385648980376916481424692553435622175060592107349136748513661553491389495754911552960446711954286652948194233199342505699718239664350801507338197973373514557223041536429702504519101985024030090271223764130948997850367583626128992293171812258476168908712776186154229410019878655284164133652775576489156713529427524702806528072796319724905255777571833289013617874600179677978686581987202709135002095244143057666998196710981860583680218695814737099692025779444156117668585046071681067564350034363795747830910861574034644558987966017639695339344422265217590487020842561231049255536509704216065006971719817523307310602320969640977819908307570706898615167698976247053849121382696662241390548895951588161415490622243099503718087318217877961822496958170988766074700004442491691748071293240058616427306881287081242561685590967378349674425549465663400643609613392456163518462908765524204552547889898691471477042828488969934806914698410167330356220554737168482646471325411146013128816290275664021935474030263205380257945149175339125257245429411294041707660760531167935280707654207071764528124948232099775482947209993881417190020343597448995296110648783073309375940058136603330216395366423808391863514659490075117060487772249792310069530375670538049230111875220427687029120121455125165440170394730351139250361276699263269050609337608974921603384287370717238661260292051532616219457591956948865478354388905062134304224595375628320431500684358732439229276089606414796541609663647708680239108499321989999891183631167669194027590205003069401186645716531145953555941740816319905053718807775287774585066669980569190276169550716016033141173982603980272560742362648525841261286554676690168872600721091292933852813487905540767381514204193116490249275896197920800150002696009845996515313925121682767429238886787387890850409011573191896170442817634732640298632406838755771550722512920740846889161052066602212418519583330640265983743901989605707260813393803860077293972354650863569311637091380845538819619713731764234780646396155028071051583422836607377065322215027335331067967167514135822452230904009131374624758136434925288943106820581514998860374695495912576555465186900198883992991358158173043283192709158365394364043356001469202425724540841181487376609216258410742859918169117036641946978215236326619847104075910848159835905466350490718194974908760595238905712262561787144982412425002970357069894330362391027347052142556086660072224979251360413076443596079913835134192207753837610751488615228457438355751930601713651887434127221730604200072357916127564882711451099568891264601290479497898059527073421235025069558365504872669676055638397933632115826609303434389369207082347423317858060210801969270982999413857751170705272419562470897345427410878276238714146666315297868918668449855366292483359144241355245375648381841023180414976787828545552306459635063088126167745822255286897067232590923138996049924829851128975886024188165224630596638915045226235016873719861163671749011905669922059167991042932973695627774863420535886145299367626319511773902089250818679152446754240211900514277319295525567633795853965508731969379075028668536840607308924206340945292107474834523252124132300292131491431306377534233948983424127680070243799445318689961376117332412725455393060576333368149853436509916938995107725472992910093725189957189233137117684853967431699700329633663813934154273003424232713496276663160248794033250158596441558728058288756135641513249745974148268730360716964207395607676300360887177918034860436059318635890833820691367545915603474762979593356445415813834888394873876104903525174864645467074796217247815652565366080123791735728032528827865852518955388549287701639255950026178183922299291582763769815078034764429861375652284714492250072792280456789432969965722953783844583347852093936401870160399949577792855330788750182533486874180225599678095927903449533453899143307425176570092664293776895694686195192251188845535863595532889579133584413884605367937088364931592647785308079312950951900547316867054736039169536196305126148609352027458643170024516303900310621531852515235583524487030139225160825984652573774783684967128784613464599632557160739254848461502962087089412231956729621267806715198186410819159317369109292487498951691625035275305429506652261782748019107249120457873867250371715306366094681862074323806593828508212873481235638605828799171640486281738846371634890603470044362884145935515685841574505469426545009037457209358316437595178748101811240332015583673337805404469301631676637802645536453324169680242981792901458637559235235981004236973998442391572088526044727875957280731317700737102812390309085176816862353976547007470314249837938599280937606288676587410285173181248628288578159330154480487561067279999494268323126817953300956430450933056863711921095956853902975628625136079611077816341618629172248541608405953173166206438944632387264385597013155744975411110370031133123351099781078053756929138039067445552928064315165228325682890696606697666289464445545154681411192002878645225785254589913881520663530065421651037310124273114885637205862939972780030342647294796965856750475426170933452770584987924099527488330301953043288659504453956056188621112827324307556474579231779650488676762272188078548317703424861596733631034497512922521672768296583324194476406956944798559476430084875626152949360078150652764688530420585717562680626294085450199981360565783152592351770656286352863325616287162559430896748161159624658694449176728621830903723536510665408064847516001083840037688595208173258012760474812238716452836185573396535524822632135377228086207360970568240277684397939579840027165408958508515346050089806985604928181968698270031702544811004000228872438754843207757686246772068333335498854464539873362995040729420104225389657694895234680186945906521517859224501267437927757719353947812353754764863857122857082130794254009784664684574592109788013200996486796101827887794327066221939682547337564591799001700879656150606104127730783265122288424188629451691088763312771683990417141313891486190879647225238145981508775463946051478260224257449534219900951493633035599053289998780175610191450495555603082673293043841193669347270336460190344887765075793448004789826584312521580451347187480230191316984933129084185859327908459124583024001790561748398829637435919568904362610850392696185548554138508749497470393189338417875050714462489491187661707926905095921558086781083836628922240676974228669753634838716086143722077769256797418235556208128435344956118030860568562759709049288335198257193073734489523862322884258613823168045254427210098596304703799615094250159513514994984442300198608096378280710932482886205458937927549678786355870931465957785302559906972349014708173707237922380539569667931432898658058386366180896604868857428685849304640459079480329340051793822398316352420656982597290554361378513268767012678707096570637733521338073171845955755682719565191573664333989346366885801342144603742899412887573521795203427400128312554617380434637470439339124968928058044507029119645311723531050241208092211355654065669065487832383816065988203618635756538910702486444928586408296661380630688104217947924862966459759410541614403275969180727894126633809205716436270985578865263823176162380076125222794091393641239913806365113979775860627559860939219411595710096468706282026964835636776892313260859655013569263074400922874512412354333068292606202941078413952509392724241324826659512947461005151119237044288675480345410791165008332945750154530016736164808247395270490027438226070158687789971978421896273132578729427329135507955529193063531837831368466218481824605513677832319099515228106708634658793351961344049102301566973244529314084880214296487381569259943560958582630390129693033881304325191493077146682730995556234292539851908808079406110417401729744424980471155998000621107848465780138249276185687081198028242182718997036432617756215723243776532087011172034394218396482609109380603606397883876604673948976586875605377506245585576548270973672673014298528846200250486895053749958673435347508629045895699618331463602325871372792936197180395004282189395717470402810564714141715304642281981013186840237931106086752353019196463116637752529729485717948773417812731378577499847739352133073227285518330218444869947570774322577616557185145114808254946455041544495486217220847582538616039818242854566272449309774669125844859569884790736265031518279965208682414871392021024815226961666824514485130395231453489798507459660767962692256389677553746323301406072071764346058983170181641524922940054085695983275724419515616931323232741334600733131356573682336983751316676347063051817687188086838969248461137039462376061804002288582409805315485239654313309592963626703270154919476429715456798158416249171204187871653254634509688408603640821364985132052383204446177444758705265516068661892226207098657615650579514339984171370220141337029280625694291704066474169573867862778420353103262553892186515049585205585245387433634617867249325468717631516213502542991999024766451826466447222512144212996603819234291432919037923647505999639567819882689483579212402534247200826873937835068931910341719257270293902568153417144424645641655168175157738469959710175017651256638465686927259681463163126813624430402284747391195452499480570211931518166133057016676327433240161871581160020181015478457282537360722946920781524781538479240127244365709114785779323666116324968376071720990494167768803180562859018611392478820949118480173971475924348934026921687674583233574353935564073778799823734820666114872483630617858320371425475500952626465891539994906195655078171850103945828879647879990279614257591151906319863364132899166858492800546966520855544467987207294944481789808361882927666821659051289072747996748260055733206726643693563593104524515998762218040143559143120776048867300903439259807444422521068834637844473483156353947541309379280688088469268552025430838849365696494502321366208167825045990153949681203776349236028185231363963771487389055487204987257434904998305739483552869472280150623941789674551092435114738520764786261330340902505034648579473494187832920443498513165149217618259925117422379868967443717585435385743780634269988674447877545359464351620068766451229457162460124403718093947510811069437624800235535313544660679080320705749906764415645725663602496151960452206920882706328420963852942500184450011201122035536991419697023655942335329863638868057532751738198694659409791018276133598756948399418837436698322171657423706172089207186228075969196713127221084910916642660593809868978438855037736556272625105954220443486884370061138305157076866331011901049440637712498521135067689840673213175515533867871778194776627224638521149232861394932143092531471633863871153703415344836728645961044477060306763995277944535550172216706402160947675234835692720304086478171958531205605374702516180071184215540922974772612719600967845463975810972821195787818113565551177514087008000076602149125784052876971707937363240071785995830424786879597131809395438094698129311596272820110757450019507961512981653750114964707123838625862180039627763899481412832671162951751924635498923850880219142669658342712042806362608159616262172943889049052329414441252081020508322889729560881912028051619835179908123205675593029752528730177277669905745366321267059548650677939819256449877573176511260610515213333162616493755864636639669582131406869970944204510375245984146599154807398187752289785261028707178986217024498648980919933992667098627288494789293513332869518451022424507731584749682291454913131724073465873520430366309699476607047731233778613423438172529732848976265531865900947929728996740065602909318167816724316160388015663366351104984022648148623017430254188721376605136906121816004960460031671328229559661178388692046807000281622850338544152675979951940494829921731571989207601079973016486288096931079209527682656519841768898214180220893060595792363519690169827822230152847845072515395207980781989780433795813987153932916383913114276924334002768074412537621833675758860892646899264393010456515232335603773640490881579579778127795833946962661137888558191435733542627143836295037006105139135806666686286494972266428535965125384363025525266529139900092423270952074294319883844312000061069475371498925235317864084553992855371356930289210387771121369003283138417968184277181324845445012257472215774469189375725781035106141691852310634628081135638997378860831251298550021926011842909949273181090265795984034347770518745048843777293284375992039734783011041381560097975263145275840205420349058099829549799872854991588404344369359884813462792204463024341575041908838223089927643797202846238056945345702403691807754863886000157810490844798892648592486084714981747430172342017112566379919505136399681760313848497049798397929374132752164484250525639866150131294904671216061187837824674241215274682756615853173739737188905380681227888562664894244322003712965697183385852901947211776110492570680119053296021294076874082664606225162387425911980597557053202332553571467796744665817804387806636090115568858291902758307082881414517998619325051755370764736460531188404175387536883839624110681856847724238097869611579702771511123000883077743126946813287717795809376944058810598089282274788729085749587930117777009642474906081029867911394327637457595698417763839770382789847112828672430623056387165820307728404378331936327046500963883636427280550260365322644739702302176554440240480176304164918904718108504982192111743188508191245532977368252921725716806300082565564228259794359027382690537804375990219481108110655852087476859090468735006114509179452320206154781382524080709643081540367049200865615663272151701908626489410273481073902734139243985325552645379991879475154614690727248338980140965739478005626234384877202869941317296766275432609991447458506146586715380381193115767767584764370978813609327908542249525289261864450511341103795894284856701044825023687554266484346001584778887802210309519618617878512241841359771835969890286682683738538323219300099048960476924880203939636093805496628994170507557617967165812171721465257031652247797132998044540109864180950771912169562582876396737821603846001141349678332889687560175282996927220532750572192264950364841232546131238317302641678773056594739001998279878265137369366108502080389970537343875743537998264320095470762548606561816125883264182047509958904825421937965955565057157357784726706851184124531267802695795181445690098683087673740791811586894441655256422980052050492441175956974693870115724594294167287433747703595860537665858339518753199355160264217486524781127788621216973780350945519626398875565088518338659104183395889268025018705233719091366887737743178593545930881952302873177911843428319507272646584287955938027716488011403291348449870905376921421586245277309772175681129128198938441025254529580197907938736616107029768571968558673362862392545647933792020621377422904616919185713953971129376654160070669349757681353741996117565855129019373686386356765698524003311397554797931338015540350096289115306745878143411646794160171725164021567814749807801832789017427093917290787696579261556512517657923129265216349743598842217585224846999076357191281191652583152457362486934360706050125683662423390144133491619415404815503459347205492620245477246428347571117358624696581118048185410148889789214499840609241875713322003355364875402472199779878031414776000897722381631768387019003448295763926417721097166307566034576749451880165025341250810582341401521816128209165696490127146007760973647256845043782818285317966340664647247378391373220234249183274456466552805337526776525674228209135958444275198875228741144667799203430856564652027397025316295444475683700858041919349075156486901442936517893451109102451004682638601668710028727870924842714053092968124408344947987420080853638270320668027336767672497216530638092746541251106027031268486929287780096658695602106704934070094931494033511641726571827385645301411837368228559415181439820029139597366816802126306638780362282614368428111300660290352830706727042126535250795595879203695561905717874666426968578482335018313320422167364819387151534557461082871725541018268363779159572962297386825782809965812458675739002981654723133650619982564783733297325197416183072056893232665328344441589166737681700875578476745127215451601528925103174844540707725186053482021802668075528480398859521662615742850949110478914430436365074346845922138049507242710202220583136226794835327456551623212111373373304770780936026755502040138398808612751334275821312139616940927122439717852805265277706742149562962664069726338593165195324050610565584573384729579548809834842733897511244790902279200775912726280177516277124074051741671792566743202147204915177513923482540468865401505821111810039324701352772123841282826561547103416143493956541302081553895101849291284501313638783479133130465530578368328779251344562810165087563707851663448071514937745562284780815528618539834713104625090001878294732319524831416869186834926981073020757417548007017445512161357007320277448683251381593212972634784887708917550513626292242333474225149288444726900909254590744794150581195796047135336409899047062840465307264871384057545620275900010390194896322230954621381741573347889105809311703676587530797982544283260277720856370604424361322310789001489241510776912299487769199671084692750764987264858986340738771547401066852293803063098097860974259923624960935855718532617839448977290018913158281317198995278079475101656103307878795101867688807514063944227698865150291032004929969764344279542883984510300261462856468613188787852985443839810492782737652205673536963756290585663455960819699960537952279030076797518630861214853041462861675183057358546103624007342154405038694520336913692928542850298756364077581348407971837004501930944566889671029065191544931126978597645567313685797526823390132025211654931537687331507398940046957264491245445699383006829337805536591599965707297999094532905470463016709648617945742235056036395728808423769525464955947498008609207166664785500831035505734430520579941293765989715020219872827471906308888207308914478610613972996362553948976195320718846402024635905021521114009555397787298439915337139192560610193005200560978743868987507079041508143119942619178508377430015966273342425297964354030252652279072181581077159832214570220542184388762135183322351760288129101272444223578521324424033573533084096158868837773123680375732164170065813782959685740229745902342761959289546919620116436902343011461438785698327437778935630117555212589827744428853359520025979092556085505814134208997846516763828513951326375243156448491348655760898777062013788114643023457895075994245775038210923885513552885189824328381308853808559893674325698008279032588618920465339731323584726900082256707919809694747812539248017575994321751692907192759519038397350530047331544396279412300388639395848614537613870565322240898432461276992927999990118922010195205174874016641133402922412061844260039854182923952995219218241714910244009645835362729953219947010540483216520201569959446419131366393181579614941155629113925784838020029454383177931406023896140764107420716764019615310988142425404229945362916381660809975781034493767051386480627417712703986036447575850844982955539584745011955151710337049590068136331788197556468554495348402626724707705354076024100445764529091826348568385583246410665447144002096040113800364448231651587090305037508692392372027448181661708156670910444184078626325612231576189846257174093999660120953121879784445633409182078306239437482154054069044967245681800619624228403600321190662899535479364963746221186832742743233856103819877610276273340492191926089520007045777388365183366761099990370722242369459594028458797747819829452334983715481687244124686158494835228963921625688596337182482492317692873866980945109591782218686433415435963289505490837968071341253510558229701202339678429225890330040722961204566428725772442113551413876599362980378911563868133499991219130827104726089162364110374956425324599723939076966320957626095439889711923251370723989357496373822376115122497526469671187498703923138839017581347140083005403910479431923525416401515783070502792835711230109420280335814807726120060568770807217434557751931298610790553441580192985910289315865957469101001924561471324915616195282123371234536546620488308515835013842328085309795415392720878509066068214407784685161301733753021339266506407899643844275408853546357729458496693660517840967090310380069275744950668253242228611224890811329366021887106855875900902229803302736038636768454087579273277361817960085288636387267397635553160245930997783525335272447501696262750211814773358894437594705360602631055297337992669852034387138675968654870064583826581612090892594596930666424469448542423067193057689829290580927770101107043203374171795275247752668311919769966394492017858413538395943407690682334566091390307638366757397764792325009795308220547883547729385066214369930345409696219314596605090575126726374047591445205614557715422239319720623003968094321809901617493100842134030756466171321151723643442855530062357926055951406314671241078747175097278454597908094355099282430350283564896033686428341007198590390294284650825801516575570854310950950613288574854555738666047013951658302932309435557482864008621121495260890098723299075064508923179390592389798253141699287444858789127937242832366029042211069003838047750197667114405883677153386751346167565515814491382627693278338529764440214514962240792479506535113476010885634649652625351163125718838300846228354420925826040606724598664831481447643026469014701451810006692456143952838801144116187420836389173178828947406518629508342555922413339279519933097642180713758718201066994621374169868183555965862580284399530014066969579723834773729052929893659458387224318341198901865648989073147673821833459094373835498166747190937085268276757792051421353086901449940248398910287567808427973449049058277640374501608967749729822137896420175812730174249272986728191515370221631246329077909100116839849784421984335434753270242803394273110213943882716660234325354135494243454841150216539437225809553186781179056438720552929464862004901976263219930514869337988867307095053337762819338103571242290962836981986418836768869474423280986696369667849691464583469157608874753298089204979288731978862206076387843287606576312079791944367970038109870142021511265245788154812909260509287686807492267336797223711991623213599289200371988632636353399325830987121185510424880697841858270813331292820622395173491754059799433337942301920041827026279109124391989182772064081654761323390421069378235347250167400947111489392593878851327109510626668214377749215266858515875442680980088376578590544096012332455861761710286989021478248846680557228108654259271805083044551955766355395538554991786325967977716631612789313909287047857443236933301974570227091561470041545766779533759061756299143753387635599917138128508336242607203003768074016863108915878108709965921413521939288616562330753463133380495117201204630223652864969227719930170534899713251100393751972448916752914553417862434922637701538477935495669998355504551933978194029406648626180459096665867780077733094497851958395687926231337974305626738546460874671817096292769237514905625735544666076367643071174101996018189052412337625290512114356441321452576448980516040701738964808075746125646861498049524791014857883646245507881424130169270492054177958957101249414101598806575694043423667764737948943054775353978909219735112459308339676894485104257256102661211318386779426352445575798526714296593681468709946066575794952577435683194044378594667453599731733176525007923980282172804893669958170303038615730770402602357389019517341608311248111210367171147694453862888609675074884244234129689348009204245589934269413013070924256209038599907033468209478998676269629409803705035595180461257748336042775169079816384511549622316695163685442429265353310795718965975845503354396605644649233745187571488055887505185170558779814621653107613671000573816938894947693823269436338536686784433505830631830018701374244733001589905721336859535557308736744747169115985805440017528668351007218045173011451126441693927190522185017172031213109530757873274929167233309505779572366753851690647221187036227395686712899053661046324322849446633303782616099327596345828050806189753139392578528864696995273146056993022872105863915983511338173161917585414948242447001350257627447506515161469980308753206235591478435436399405302550363701930694047737925480705971739490368460379787274008487395308205729974785372925433762984374252176015096696471846892513489307707365024259692859349050027428652227577506071613938264469381622158123937265976093953343954823555763689231265164309882007840678230429876352289729765207259222817519268555600631314664890765580878961533842220351258377207614663017220293516121279061177323557419119247763309913999074670935578119220356848181827760231505610752415195577277330583619883838095639837681048577692283028431288986161147245905601468328991213841822464564561355665307176732672285441283348586338940620152988008247409768779036302949540962255534231302611977847613290820786564816858983242473812890670072378587466634277924304608685473654433696232709285422402951669402481443425460057494953885803932687541996672807432793008868116063694531520256332463309027026807897622786961628443322309297185299955529972623395165778556649625988700202155809905060120846245834058472066908097996830445583884609451323653503126334616715583294724613733415123945848922414591007693715662279179592937775681720669137240575523968353512250016559193398961591152745531264495548718623022300938538257439608669996680404743082351571525357887772988029035229009408289159524870561208951577750355575456121952777104966615901907084171573140935848673691543808080418874479482719877083431221558139951224044757822721325664833503629550989462647199248938754210261411280502190592356473882963806359694736018359538513857858132546483594963200271614555244300180410515912308751555687650135358561238369723641229807450569462177247067207989138145410391131048736562665073443135854064252071617791133591698821198824243455052104314081836462097224744241111989859270033165776529526048234202024795442208533967287512896551712937516373875607206584662443655915752548965153881928846742883124607040855138628058997028898521010398748277660690196895452597214341875353358924014169786251433229434803312870818259458624750279890557511774797823054189049717600679991412698032092614587957692985291085336049061550600660528847658853560606045867761555092777139944438986148943003579323211899604245874924101935453670103851961738111772965518288791175287518781361342830206750406797641088917361740440961138377912818385778003990938235335907229545542412520351963812113923871957698433256681102353183053783537650974693714714450119923972899151598120453891124542494400887128146413155213060792261053249442922925049356390403718854982891335656269196757673011913361678486092473710400976003772136713016407776190095790247089484323455924016812069122573591714256850975162720769435334691069294064504131540578625043160466735363910539848006512628930595606980469161152888135785387472302723300386254175117235479391416650607253587334578201606779271791926988284028141050062289433574594661728743404506235107471411453113599679509272372021588001571140797101701459511909945827538415127039138905096725817835552987415745723023595054572344842369442870267463883391455299071430958820950458350860584341608693999235255867413392737869878332663322655778877512603696394368823312548228778070727273636773902653021189917709611347743948267348268611748475797243341863325840921616190759907787402568376768174548433764123123659084110188865314542735332289988499969899565990947877064934751572622278639265966749662031719518974684938596339150132952172938659215680395219833906970540930587350714652180258387838980888492875400971006243037023953729426014845264968304480223369964927678035071077387205589515291333908785456771977898893104810380964559599427050433505525743355556129318928087068527713180230515494640834299299705593161089793802826667331626070641679611460645842376289838669790647498565228418379420015294841275727255965836328575557225949766123991835705526799584082870211712605970593102743154723577608325850722148477658643657863544968995024429495827241044028990890488867971429404479083827159127505590705911646177815905764386888580936131449459555639314042841601570415845254064838388308208176277301807539445454405299328167819480005763654621321775150007032265508818387552218578750153639835232028026260795863417567234277982353926354731410537580423561411966295856268209007590771621025869639926523074254414540673977267114629222468813181384016816777130235595826017632458868933504301555246554143012462013212178424418232339726595194976199532559819119843012382423742629801269833275361414946205554433307381583896043652731871990315350752774072566981234032579878262099072483998045322719590803218690994387744541333320718475627904742376725320291577251253106134055077399474497773007850984611047639931659788958158522957795118999101418929826016763589689447301417193035325431838685463377621750860920550303542724389713244371453798245935258451435710796988066175017060404878228113422419501900329791341309594490559876165997542097994639132187730921220755895232323004217784619696309499312030075581487642912811731580432412120498201026734395082365949964387992074988757708491922250052875949193828213834724412543003661630653687456371901902553288261965489192555144675778025818823331731157438166562394200525572950498398399405426513885315173974891039429475175448183062449026010228666851571292381378371715865862889923187037030099447309016170441236463674101667082219928127080105406232253541390960362205349169916261625343511904418105529804944441340481734174507009510018257048072792587727000496518491938401090229845790028352120011440446828124950290648382054906720897975164708133250417694206660081798868666221616807417858883106301973326403915263587883450141003083357755647096714383294423814827960420571123914004103192449913251913427613521102877434203541900033315282029123736320282722831899805187126424979400794415455147075321542170794792148109359877816557094781545729552452175912555414134639036021362730552118144370716653565081036596066885306490314221590066949823588228405901987164114020569361899933346286574239256867112752730690064797854083911819576909490885274492962145817213116497532579150041451982927753431551472484531183139635518597196044619434033950913133251104948670782312278228087137469767142117491339762753511618313430722945455134807397293467168544544971567455219885199777411989699944203895967598871550852091873926394505826759508387870116919523158138947934741179160336386264142318768232704392563961152011026506060696084784923412238565625881913756666607123136038993370120190969155650495453852978625860188281674134042147928415239812333074270971716110349130356352963253835780033586212042991654106007900433334063876736468586942938837335428386744738071620027239005919404465156214701207470683875918114976602777246701071347428296328442776265183754765005116188408279077643676814177516836130136701902433083781246026879269973303258655101969093985465733968220188583251317835456452674945510289985668911786291818995794319956232259143681911860111256780162348944544910903517712419931375741548218428575926785674102141841706941543947423353891619961939947302151599471958470507922344996575328676656663264334892229656331598761604750330233577495340871962975871581162685858175867170104408452998337648444493630943549131359683639268694541362181275849034745579163700241352181762217425073125745158260848766429686781876361370935010713969690502677823417730543738662551928009805462179994621692664777538646267093459060440099145109879346598939040757885606445565049692561480209792907437726783358307268161018460728666226246599031193894807200615244043673113850708132576266730915448221527395619547262842272627946584907892019357733221996615917744389303917141151777792808779485014572953604520986539501578346497124167427122036598416588730642077007088704716761636192302868381860926871440514052076121497999330296128425361872186333943338702095053048306637067243343008603678511220382193280349224380609895800492670065704817801198729049489411667575567189108538157475331751449661008995963289669346449513449143013228143869344922192163943792640429898451558657844974443181085179078048814476487838749752780734227791282368259372020590156082955059508199315503636058618119807214348236530256343753680068150491178811887660488770981123454624006172272215771651383327551627278357999755323413612055892496997887001385509369531893973009170315891994534656107486722566256623801813196625357507129233897872105478785787674163692079084572803098862175971693321505914492714376518143960521631405447755158007519327055626001216548088266224606035810279326682415650449462017922279968380013625351704835537013056364606125381381641797615929425083554766187063339485388167841643763599863572895970813060835000146859126940458148550271799104202270917655939794540525613834029034161224635172662249151955853878584162164551826964068574103017835422249302736323751286299623175337594889290017114540142425346583572339928143430438174871806319593431309704051289631288184305701036564481322117939723601147267296272004810449709613262379869011165292220990463267760544123870305265407271685836460092850191428122049993433458548288673688322736996467253451847276015653856000809784945090586716258807678017976085465559690225794140101357469537488417732496669217916319416668484294814729409679144922856425041757244227971411663259599316580740160924319293336495798894410305171217030753890906668814023443807151426201181086691657801304876620012154362429923041558391348585116842866550961260122419043543125537929784055826191956684165012131465863225299522434139807162479845308948420065954486154393192639265353219799326987703380138724961371766414020573088833733867157127673595564989956754932129373698169431385494509958542369593475072610313716447081557696007400119959764552042597463109114334512680668147710803642480789586453617819115273262216441018877978766156761758765855282531819273364376745388743167695691535455518770714198912090513560259991838337473844838010043482858010195775661503451246310372440325469261690084335044439564481387422452982512968303155991302572857532136280034082769484992045138652410043027456763399501128410588758922466350182664976040925438115328091517374886700934659391302337400448061476510154513683724711374013558637661442491260754872274213634063962554623385837231228657623754686916925081133395696354542358687916092007217623388861791356372289039459474650454750545491058599130738806186664753067683261086454965944141644676432972060089816332533280283250447798796439604187314932749825601740521117024392230627841909032563756935975719008060337741181477083230088528612290094827446840574573885415418347180114029413912662446542358338655137195607165737648179741551087083664573137608088942603022530515344707726025797377094378693119994761161933013963861131477690541809299862827415988619401800863854024859704928027184397058042709037713686350177444986062172886376767294733059209989794975031928068234067886253596518229495486199890034412153323631531703351585994542553114681957212653106894744830595188751726252894296876534075833703469579489737911946196559287276732920702472152238461778894108802136395559706897061915055124482857869484268412069716352325698080521341667638876348055937534008790674434331995778677090307433927901266775084197593238511528659599712608042881545004145959756381995938299581650974118458887454328162202245979034249610347636023525810393445347069580023179544734433782593415757814150753437559821809102189960911223716993059169871767232051736640932858951897177037230315455200185213677705668460846131392918575372984811376662764003984090041684176083964534136233173515948485186121162203549145975374823037089082605648864603717997902750771699379366858881881284756068232547815265644248047983052402125091206640536780683988980403756632984981432160257156819465375704986721511474831612479709548139872085735175163602639864041468684139461366111868375039336567387006615092764334861208397073774452463287178905978324158382919704560970096798353556794959401494143066748759535185702299069011828337341468215585973837291620225128518667654154155198189552430372873670425988941565212400918136291793429049362625421895313366182691165078430886059757957610251501003157788669376454025827814599936110265266982467858900471466479047587966819451093792774679205110596410611051580240718266675554272950767738636711619535472312872090868954956588030238760290480018576927897766397333206200598030932796433563956050053889314197579998405028089827744182289743643021492262213631796956850888197554379247778517239657006518552018968611414016049540495314012558496765940178229364752297109063477676256928227790649278860206872115032499349540605237179301532852645508262048375186875494475015997444777436465635501266007722923614776545748111882117961505491231474370959249130843655736344077859544516196742570424422337404050475810749188092579112888702982008328121387237400936594752066800692773159437786914965446075387610304120699102477855730800363549342694130174987689826524665431984193094747756974854111265847929409808370267264871825954674321000301220052149296497105739112627541256703147390020834360595578304016408185162813051624552144681107338747306754622108754256234666823812719140594841456664130248248508574330321061068075169605582713109621207406833260806924455450379778296254558714864345101323957480768324845665281437908556830276174541004218896766605677722494134632651059261932974154546666227913187484586233677810643638460465885701521964402729648773166274551532959367023635482566152472523508667673788120585710412869029529077134461144816857062132449300429960042241394564550282990964919481515496758622884880334539408216999132456687352967870859943211151858564111954291099411888028612957067975332535512207113012173980915001699983504963748981836258376268591089879103909015924384660117364858908778622439833749175711406686814008639651621423993421627065200728567363890514667716798503787232248334644101820568038211082314842828253713623211627153276593055959487526285228469253423217319126794954537739579497211675480004830759125946608575330148175484926362239760823169351757267518096812630543604275123214700224982000290768711996691449612538325908523372013521489304462517284005042024921031501658783758601766771005578300437875395280498593584909822119945252097613963257248352164582004480542919775397785100712776561564612512881788633501182254711820749968896548248611570986884223257505078631852791045255719277739714688043022775146521460074919248499729937625488412736337207868905536184777759579642597646461206607593444486362184318358475674188927717814179202893351974497764065740121457484833062243189305000808263591157700518911987167975801799823144884107534002397899391001770417951831262153231881147484779480685697043225555463422248327612741230650552144432042479641199703035255208990589916618945402012255418354439779320610335867009350929267902157231909524949891787817252976508787103261799041806476567212123193379558240758978736966323489406934372778269662197183058032561828636148214737996909455453750529090702569297369562021896209096806255946444675455081872951370745910221845920188700386761714943744170268747524107483488704680141188514514916671623064946674858316349779801223220333031425982540427316585473925267784290634206003298635599474555572433706155469994759442739570953804200074515515855270178507668398404498860711695769982782594696209913013220726045866336749628786240839916739645407623368202020662479759098618235251569025883524233950359089089853223407468071277313665089665907335678887117727252314980610632303270234461335753910845272233786184661166473909280690221496428426076933925483471595278189993400862547227605249157329721738752253867203984004956276027339517135886725169746128563003305660207479831391304986033977457536401817897892369314177140928257044963218835248209527264002078766981766264152480262756244938469868674165591875401044617406550407441445285615933289054308683402289518823057753526158533280455856833750014639852361484113275739430019801372321848818070605824497325071858401572078913415523986682412273578192877881406500136866863750185434269746466609067654610365114939558473875182642992017700912419312904565094769314301890410119043634568137845581986939963704860896308427568851831279141215503745651811552501495280624825374509755581500448368645931385174350364172938389690718341477513955278359578611662349130300892092267463078804633394735287903795851198615653229364350726900923414042300801705175108997710492546099977941711061230349832793559659540171549441677750739455736846598208255446457224470712320660176271958946804603802494448347461744545628890825135132672416516595698236937445471756916557625978178071471872516307318280926631983628103543926313214025585858797536498763647625719743758106068144617797654260301074895351925808893000308862286794536854603100658690865008225982635343909283205134007962222189149796373750284829453115208842411145553345472346680949049201446119741420992513507085338346034065116481802827590615430437101297032332001152828051572578127686932097852645144751089309785773842212499972539725340787442211192186522614837122463650197640086920825392571269219097997859319956217157575637241866306186048833504923910517475398597211793603131865564544128742427249011697799248486424836514498602346305126683211216926542332506584470356023575123313458469847974518942701336188450170533942958108741184684584298762194259382524589938050738018470740498772200887115288522313288967402302182456144169967432385446505483362838092771598063617882183826461282270747848800894603153606950711539480916576697262755431343834584916869509622451154423876663808375689096134351746873791351946914848567741686181061415232344006057783256621292972111524037620839426528700347608412078760209086145911574273211533731945766843200261095912167806487324653726777306279758320057722976201063597786543435083189079945652211783123207426864682253341153650687656070935073080563195060436957316477326965253506317097304819390816376221160100500479279304983575437190910944517739712351460456259499099872108919681557985853273289813250078529349616079608902432011461631520228141672151852404026653954354140235666750213954055860328508155530457043156014220727601308815495526605179147281162676985452554955735851265745804783408410482871509990610125200122383822398024726213989707240788946076856497728632964667820212031141498817643472718098607984158653859293343608844071840291407501442594943568065947444084498262264066003307999278834528837656551783462323435211530931229734875889136189511881353288913406125690212852032572330380771817633086160461486953187229366019598559900268533559024906937532958581509005690942445850341506545354553903704515432022613344384641371258528621381915664709382484195959477774161642553155026081212837796108892443053313394277750243842384092100209484064381279910908190615694475487930551897996927718819039769040960249101645671820863290616226437410038094267610269767101119978328722143164184984370901028893688996402935206119569873005797725983970374982367796796986000097775954970557375508516754997993628548368003362915085023954037653067701126058420182938451469347770715710751884699215843395567219687679499187745763715012803513173674462809686033264740739552295854401234675217256529244150689528641179755432244704756793957045124966106091926465345771116339859485899780744881594811078692465045869723862834672667186532705634435366591269369169308293784581740540105220923215987967872266505146955217448301603242292152367974691116155159931033646637154454967198575047659616146869356463255431683778243790814407539618548055786283510514095383453500339962343079193160518289805755946134461024279202614213244265891992704409625723676312249836116709010380367477335861228431239824405900978629011521248614218898961493157083980373901948427852789895269356637097123091934173709658266512732681714687959186940441736415335161403790349803560489311276276033835743245225833373606095055381344816856130592622965713948754078020304638273307954967904898523574666260104480760058133993203737058799812834050326356210612327759657075931637703843261780538361849159834318393126660951822453439045190206304227181256788757141022974221959086800808692912132921043000622649534135681902585520114392323188631810119023058289418739850601091797780936066430534186247145344019402291143328406836270494914451653160832830962780876000636401111111472226823233647970157578710062756880237681765921467413319417078057678069875366759215731030412378576007320581866236524058516252985302555755872335048712653027385576502127879749851037863598815854057867633666912523899874186775668543100452769480300466023569811740262746392067107341402322084870360965766497051423723561386610609991359335015613783080956060937637941792124276599415437791058024337977273727192448943289426078504627141754341382748616981974543878118339987722763161595777053319416710261694965365675427257714929600030847621261516706401749672403834231816468959035712071845773591119822284366178220715784050589058797360569669395829481291212842963147098286480704580515442423574639262605296220134417887520841835415927800325276048540909445709447104882010616307787474213195827772568627700987338722739845506231588311970500415045542103415436017405856099514300810840966308937267610081002184292691828283465810806606462338326391242192514148679711446211827540361494132761858759417457535296723361391618854293208601178312855228008721656264363874480115332716715335395923723639210361395970852713346477659100134128763885050244846314636359778479590508374947655147497565591102327779582228259431883370611705350322600724115259581111542109121218508474540757775407871473580053218564676532708088623865481892634766982719763119526771138655297778151150673808551584137332756523167127896999811395265818000855882798552744487988798398499959648990354215768152332995902233905614051570294786802928760136509908598619412352223867269185722782375475328924545854807794841394743838765860291551371143725853393012728974893628622024054175859484481691762591985630550870699432712774265804945382433175655066007739187662331696107812759757512795696275990422759552797324180360122949738842296555741413867964121027336728852829313652670256894853252109271619654209078892053765177209223970498832838380213753584696643936139833201840352665282764481366461732696606956629471183444166876313407163225264962852934761773642680865782580793871288938725562728206842993336706411204109488954016324457000389308063711668642040520781281469264109772124516964895955413609456765637899446579993176941177656206322411684376372930401501759291127133493578648846277827671629311641223756873731411671607920539667020837264639073564444073834817922382587206256638064912539717553729032138158012562287047704104422977912188703429782146391755165429233122677352485924039763213986335410479368658447238155079411999112843605108375770791227268922566095926852461242853329115426693089941033249345806542725844984947442126622598446763456114717639993299188961664734441679578941793510139884602714034900568941500790655258626700341252472813980075219043650139767430382146576690867411200853865082239220657772606242048082338271456625257926818740330281978988641693344510102103168365715827844303016157161102804081280148977861690606723065584087498182153115361178858839584985647903354629044422433187065335085949002669157566072390829653628645524017483607475945612935999147515636518467349423018751455463459438823170338329245808740860264099627276350086739896337235846235583963487929702591210299882722864036508002144646291523422270637736091231788319249717898565156803771082105830425382749187922427887279337811332072991243569155837324054865687965038653044133898533023329705712231214604943157012974053885161260979026271717148713583658367222709556699378501201899471340591204319085734019289212883450412953312468804124368588433117791860431639133347108562354668283773234834702876571553829381028657779894048172895054324216342330345363115337434943833788224608643052789701947222466817825446467243531574608357604422492928222147363734553652461996658482561688232667288483310643437125731849728288738854407581916823568194559020509854870322795329462876962063119583595149908020537612927097350434199647873449739534507947115365753858563485137497837842363349312387758277806123570315531848910006618468267096496247867685800074992766462976769997397516460835602822489898371796592963605265736131510249128570442012797060962526801021182640667326051479125162497295024555713956126575073005000515206134506534235677466594797282791283737475293124453948352916146695349671002226046941952401985911136669401419178989159386426291104694902204610548091725770196213113004817224802540468754024949942407751574696341637087505435701139304371644856389328556982388482072820019044857767739276868900865818951638674888879612121982532280460304043285433883835167163005298389547074382896885063588781170788627943483375016882756437770004550300567051286322646714711752162595881946161384176902109361858980863802732445577728000727138356632845773081268551569530490642705552179812283602052114381597754800645779555183204679928190174518239762716329139140975332419473935874666807843289366740883280203491438240462364843115526418704041458355533879117948610055008944354971895325467763231780376740325133098606804918666769286825530232885006938061823800103365585785616014322128483737501649335618161861411797331358322772691931851554069389787627068317881503018224858584688198217509499892278837751829286371618461700151934688614440419736249429196277956197136938272791797274595250595681642621375029938004583440379875802099362229242360133562547809880798963725766723748013016607602597132080374942324952819458156383702397537697551143362865831252144719092529197051185157373299585320459897166948943067719483671285158602725863532742458710483899166055879937762254856955767836195075855211405902905283679230413982483729676583378230327181161752949035761314061585249032329816049983831039050830901484971474538901225628497766373771413381464120278523590549750079159933785312837843959742448975795512082087610222801292838931999552296916608162970829571324358181600133690944296017586342496795122834685612711797729228945362002482856479081739604924594509120774865991756456088649739892640560525623110254016570337995722576522825301570164991435923344062514912718106542891139335954274090917024965815871890454738344590924729070213168940240611196986900680141611223159882916080320061747447010117804915968972560330655908228658414300541665711797076800723804689387730274398979137039382386289355467587492764675868403755634342887790567142735785590344799723428834495863161756672526632427401478512409943777148487405430160789685892433724351143242036568532344726937069591098405123498506406483901218790770943933664215030124975233545150282218390561969416206677106563934630262575242632570970821194961942196908414939761494432017822071602919085284454395606262079725044171676811585038797873499875308215160983778613229409822457662360370720376832322828355019546042290707545734303318886490648779675577123243383969105254350811058755128377542355285165244952599808334516671755482961715287650994312972637378965018531881108036461807635335428853220434735649712051384965394766654028138806821132142182864948574283216028979415932020541876785541741078761483941043565897784345899585988404327421659552501525593658767946158879643332008806287075782187185047301678767782337209203111910303483226101772128843944175033050320764093239245727735822576283086865583653033764545587589798011591959407113800970012342818578356275611167728876729707717555222308798614258847047989283190406997379311387962171893816315028304610552470718302298215456266155950656039356027687345171146529741920650364447537846193719160700549740657780687914338698082849345031582945467924073804145239356931929528176872929192919594922787534762740736261991289078921092122732118172573994860663160194642352960692925582120810796624718651856915569773210552022707071423795619954874416484213960757367180907376569158025178740573252980591455285409095221289924349088951596340064809542503460160122948343300512557689562291991881172418722945317472958708369855770471546604736004229340070108366855343863842441697051446561432209206952549119137437132869809654417493113087626094334390434921411909836040671659848530297923102019974026964998903101429437477606008327739590485632904984670707575062859081991766793033391944706759146328718818370848553439508097581472272343326410496721503994077607766901993350831505012196943805492653599328867715758027719125146094811204159592053489314417623387415046423332263597097032723698095078439602351953690488130475745496228881193277171489302151034049375578683905070157467877565374011250614810306970367791805625296043806707910595246407859983092844385825357101580242005826570219442369478213351469715956714321789370123045838606714412992310571673526491629504319969852065039596071954305088372505177791764882333277979368265918726068997480838456087341564318975855000365729729693051624952518282317746451844402463424508255595439039188634920708986095502159817632260313400050749143544141801230027112458515934556935804635197527432781438901943114796050494206672514885874233108086079375853706181854024582857152173471618858886427886744179926611490106282756919979783578453557507808239567851296841751985831865796556703021472321262455296095931447307408985625120113631947904579601519079686674083608274048147800514097489702236833750752131755779843964407986545388534941173380951263407787465735056704890768635948092408386464857527661561953065520402153178087232779606593233296302275988769986135272989283240364538210099310962777554572330902263064193506623440017944324867856607395644060976908846134183740732843491019018279437221270651825761515923948197625837638040323423849359824841837184043576433801008425364046443820422024253123136773629866567816694241430765920526841106293711514317601295930682809623595702048011669224897611610011425960729621662967495113003025187011311465388779561056344496796974667087733229811615681118508746289592248377748816965954030288803351570608423796841263592797306911880688491653827184936901416416882676324800518726557642816834864455356092295018651415249293877407005461957378874758614318083448615168545652866405440773751656869680654324634155886866215364582174799740737019094090824338379232344136909897777873575008673867709828369818927638094266811209434195388664942989540076268678467107261789582756270846120368834283216031723933847959339551515862700015722769244581573830006398108749487635732836643204882497928649983261412630841945199936185582637786943779561144920938404892771975011641129330620517244996762630682368414832311989209899410287210928665283321496395817426803146633208351734769468872786545529093263286113676749839135618225972521725836741872082208214487812238267826125980523490198198644785899279310793282253639718178261998536052645083538121405340322541839130802755806276267993608472212376576296739660386637034578665137025768205118598115332056138720347552851138578638132322435378110810869685870126719547108945236747220905218328310185657643755855690267408269517827006125371755737853759696928404550302772927455696378019776453980575712408572423111214221212562934814931996436368857849385074461648652794981207613045110539379121423797383865655305304350197266698847418805201843048295599758356003771561341520106876721332973484711500494592663819636449013347619256190605685610013479350456654230660853525962820971061582926584192266237528680074842733571677386432358636021336347716862280144192555381975319879643090076644880693661506429972237564024267722352622316538249165190921722115279055435611810702832567840090679563699802259230091082998117420653128342867529957888132536784788708758385771730297170015627797498239031344745428848253294925741640559706404475074931750169504510960520971896413704609678970754004947781636779221485848718462574939892770707781577254379972453092442498698711209010005837735826408144577324770042767017458837404518173091595180563069999238160074451290743587614207370143783485667087834105884212009517227139938145461223453893240450837981517571762922818445665083262162707795174324574005691175058114239929462352690836805166606237443499695808109461710188012932165968267971106983179535277125679261768543153541464747219399186436143580860327097330200704892855236106949365230327544565946496428661124936045665962171593579181576874817941361595250777243163153925897409133853797541120038183068419747063868714281487153901392715875695547661874717789371761178482080070150230404261118080387069510903866379680109569838350783378270890792438730289544382139750241726666811204394054741170778928592920019854269849501287930358486655189019704062764074824627518521984644930044503289339342588017093389623939011970918346372566553414388548063915936452964062493434077672949625947015386793244415784213139706161265834015732828101313891058327107168515179620524445454971730802625776463194136115768432291909766274973958824426884479536631955493860752952878212829614419710461026134378595470020024162028070968695204358394507798077357061632179902417887536581947715552006048374772375589533438027621851773873615602287780827642670928436541968926931594548396744169357326483020777064825426235254565324536972478657608092456623112121784835584993555651450490378181743955999225120135824515987336207108177112305757223238505353502712815144530217333318647976347731207199582033933033543426772071297155712038207840053645186293935583602973428837707925366702154090885727156285916355242604024628666735210067720162154028179426074798397770611057332454659877677242537611335476981548313181391863833053924832360988666777160171752806398781708377912303959638276301619953060471531888603459456901666489823878869853749568248116195602179251811140631106299799104930186839570637826490392577992713378808720715601288756460063089881793123695406798339650277245399109585033170575966699814497256311867293360122897360997704543066115755395160086383363508325752269446135573326598797453700718506098365884375805065340172157872889823314196912860736814882706821670835745385653133132177788588713084587524427873420905941382045028005002015617203408758353170959729498277747478900539709663430157235873675542991271451848615708260791495283789831015894279277400765288615828790957335873439088373509382871699191229612207999177469854369050928524084934128104086555190133970668616287931921941431574264115143971652276683725582676108119209746849905903895031335670516222682408937291713690461413037517230819001886634522345982381624804630403465132879895427254871134311392022087518411521128213999441986404247203010925152648307933649826724784390347445906022947479188442324524684239433413946830543373405075278259833116890828196362963614688246359482727777115744203732672506744873055270250562412733532654664073164795862217655516454164053543285859541015130960574839521294272511162587072726305905449791611414165940938534407641611269886930271176765738877120080764648459237289824676360752293729090536991347845566675177826858068836923927328871380630983657856871964445831364077723120408963714412376187547193702209146063920596415406748092281881287071082082551739900859070986003747729594418812684162612575681071475151419108927452478467013205696380149065694853949297178772543133984441326811124063525684083613702073841259435534049231710930396603225943152077384563011080369045352033927977874532422686108797296641777122331339673173720701348904813690026702129770347544753029314008631401139170202566885784606240810777989651306420825836063800400147175970168515463102636269049992506371833398051823052849081474210682073243769821060227424969940977150618302344543731074774066218712239211228606377392960359091230758183231312153238270734081276390840494459927732105611441117715022192695120566899927180906214579975411608869085612312349265114336165261924288826658734311390666392804276898479082855339415254908432596566997167075979523216271212082726446367339636459549764058876310249931994263120764119679818108030974206818936210444899141077321774604347727488819346999878442522587265674028834082041377841099925601010354352415370220478925882125699765650553217005069416717912751933397101688076710488413382147762512916186861096433129096999926877301149689463910650864472109313465567374586753535885076610757110710590805797733649239812330231563338082286684157993655104620297555565677153929611924091581402787366083575126123769547334592448149251570775242601682585818084507281864336505384387135644624058042990064077981690010587105420724750715116241824928644837152666476781931073317407579046284659671947318737028148870551994173694483891213857908013875515050010840393220031285894984653603593004331415989565143951548571407762160605545889885128603915432892502530245375136194743713725958624076183394958521051521818832330244087620275636646810926035125749750943959291386529677556463644162298025933949237860470646271768049234167963182706181484879243001958462061993130583235304854205107541297995130827108186669032487722755051037553574117705758886311022766101663382662358799675443113153259133323350674876567172983071562634539505329648647414464200537640102712821499911852493707421046213171370682476649466900739204084054124184706915627777789372520039497800205137991081999519116430750295639726161820374199865529002511612715771624578618500478148334963116650946078261024273976002464674881397002766407197538051665192337296306362463393758135601581395795176573406857719235504503077573566850795602704414790467012224670223722818003973087267431247963899134918386569355406877913153410574411201722422548100939754054009849956358894586725954499296431759551591313159758341783156250273209879627017932721271538942920970676792288820623473701580691413894572347368842203440729044826764230033316428372777210609836214973121439918422372087645079686902581097467721828089365420629127484630021375551122354496129610861368637607105184763593800286639369342210453365299509311737076646371602216923188927654440513826919518147157290537565182547126038493936475278408671644837228112537271586340313463280593170002568837144220669403764943020022348373820986738779820304647156767658930020224100459236340349696809776646621806286665092295963106099676269814498951181546111848641627644476765993088810704244116022101619549770349708569319875773730957757315962392653129737222567052561208210578826457726321431028999512573318459875055007443009336184998954744817044211737469390359006044896730041233763925134968234611968739432840842517721512613037292164007889706417254209053662054979018025162360659361631889783754287314404468429540773611800549801027533595056043429183836621557668291565371404063060498274843058746374241573302876413409751234988732382949654627292264419011350119577063842175040512804261078288794468028075164025997219992664361836553970023128954203779300203849597419632458405581799633773074635809192424402244905203455082706248182526172202994995248522405603490227613223639074119317462718916455899826698993360526092640185089102300700108503302959980970307697588274013499368579315971996539235605003791847905111523914315413457501126381234882534072579068466012358119247911608610848127890123076760839164130435528309262819255074481137318226426092743042408612799926088235655175550650233360611638464569271055685931866024854775194245239781127319474641192470445562159643404160074980074360759955501977878341455071252032917671986692273991228874897158407555764051977415128508329185124922471521822072608534637079327986552055230528623867755687218071759568615607662666005327433464677108704884560558283747426851690309997639183948950992173509898338312146208808661700944637558524501729953584277613061120470865765668082121167648557629930732821086852484147151014302011835717551355878917974754345111981582112655503001242431764064124597215974236131214206465111818385327623807540857609580840420266949393933170063147668945068564389331098904451029227666722160036366815967266951145744459848917490009671288743366284690778335274940088196162416425780635513691598517281443197138529153041918620893962204938333155161442708502833194626042534143407502322389593463525921898432306628386142420162835339246887572166151499161272691775947352359350668299917828153238603179938750961645479838919324896502933365150221363339882379784040842993454663790374692104679012718524740856939278878675000946974167847190045309722548241350230065690662150202124973373961372458459068461757971058992029810252612517202472942019672092056442537366946063890040842864582449613687423999332140986906552443373108925334746103534789704652914272896574431105897506680924601105671476392045078767838414906181793178670461913353852200682532144793976777899024122302576187581521170244613999724121469557480373992592711840677385829480159453595399414290302931137890950685307216142070168772673562437192154443772613243143681554051643676953008653451365957342591251342463395945001906059902826353898853323675189803213405138221198087240600798675374847680604021287259535354514847030161614209583021812967787650224954433736322099371066295000658999557354246004816575198859830428941324783970126662148699549652239816342645928216976283108979703292346788576927056233890902971887860049464921428490380305803062301040460222369132831022698545134252227743402546253716060142231744262697541978260278052811219302157070813237283666278192842401866736166788447011990084298475510577315318756915443684949130676021797351415208485511635509862105686791397203003395685296228543702045801769636306108136209754821553561894506500550115619791766064608772187294393742678734079989451825284994578515728096228445413549722211578430311353627533318012610646318605025968194436749752163971144808750696518828991981693311478781238916052569546553810606126089938478553716088714560668954919398244392451683569640529861293433766851109793055523223409176670203121599131963153959887462771256083700321791002941353353093601519565619442122609123174393779534226878563077430270010885769143853791094101572872390809780986416309236281879176198447055104941098125725852509819893660014873711323665803436313639583645541611052822784539551652872760775566202069243926137787808509296373687540091759011071266679323929890725937935168667281146729069183977939146657851076888743958933654209665466557751930369735579183531090221243852790657540217856036955367180477189257503742148572979870266851054911498787382520593913316214961677513239008424621447176863788053290383159438301594511873450201192156937596855455891201902485326139859659394523686279307078466775905142665849520871807574897303284251796931863095349609696772649343686754482715174243655958356369988435611961178915862275185111913121022864220759893228706955181057599204500226853629376521922388486625923595364089253632470561742805136182423969168410806000166912429764967838495826377714430112664537126739443794066281987644080200382354512883497424899838251340347255197712176238788545820173859461737559600296962171790353785168640778241666751270573593410286660643948555217347915729528532178123703960258648862371054158337123245044911422116674321963887451495709010740749965111615247822595106092762778621213411359535277895932544944443484993475076873181994124848810605051648992673115867537399392240314026818736733616384564920654930588128774871234623286086765240551584853466817201012679835993417428695723554028606294376885628061388167285457607880229786070761525499927424815947881823037937676153138196030919288956236028337755465638780285663659191468835491839094556953919134359927164925098942185157654530374718673168495829725893743423603939596300345981241048922278896344177421670151686573377058263900071727597035645499812943088058364322377208088180642105247813281447153234854524890560161989457221494379329686967383294411544518197479956849050973273058565835267322332109177248342416317262724809774885952693321410058370286307399273936312312700906722200709207280146302224013491399808520027500300666815107273909034192545253514649616463282953186595674994643492443701110333679089298385213966436224611192786705670248620131167033708727583323821548691867242649977506600458853431365938269267981933648554643797069225651316129153276948474890951930862230345495668792356342257178591681953827121252204218859342203653807026463086140587981244750901970609179059941096771682546070831188842844966519124333870662806069994649159363810901401141675056426208384817016613967402807578505792458457224284177062830974611205200814305394086572599254032196779594459019137545411767739406323017575184247315713952624897256886872254632336420903990427050855195991176702258315825013129137192575251592631479456742663107775318287823313992231385946304224652239014995110108002076068287867470854323398921095902590997800632452914298997443873356213891587334339389208834301945383731212252653188016974068793483834152659860493643158494658763181921437474719292676770438887507670082615331633798984898653853377063888050405853759154666719886393557285523112628155283629133015271433998320853646831032369339148560127588906139546274627500965695213338100365320939145347494110447880327462640992412900762212097789392502882087816297090190035008004539022702150145913236049804699046437526318587376760056369871948140047752753199098495983208762842917721452112275173351972329440887128786557302587146379554084228743424298257610886280742141117322520241866906726919827160606513399136253407471020214042634049851590284796104576789127958300614096991129664016875665778343270603605588210029049067132312125496280553430978616062473131367978698191217337390128945146706798686213344182456119439735424377807231567818851903555906665471780462106525074909239393751090712382958212395016436072937998350721858345496080875015082786920480067778456569097165024842925731549792990756652618357417750760322893162296471799665429465990672163224757550943261118292869538443966028674515555115902224105163962605109448957909817014620643424861589554323452351474680456069889002465739028680349694975057458450929326672940435148616764630227866620081182280682534287677823316631184471863252460260583616392353418732901865003387829082852034277133658009137043078774090844785474844807997646044315680131833947592921520282385944167740147423456127978744697979170739628444400799729793501340210927001196737341251601572412759371630126326736035617896283854974668413349509579798603179325522861245080938890498139804120936834566724375608615749581821714219347839112416435239491475880150175273156174013283057193787850420461043648448730123333524733253477829433794226043802723932411894480770728451647223220999024998221371911557026203275427055936169030634594683368805234478228483666611631594894216957763632321347071492353644240704477828800093525870500907086527028013244386963923867406681337983890552076857708696110705079635005469706033111267764751695653836565853813561994859184340673148183800363076765057221534727249268701553221508109846917020203867731028036382539963487562490768960469404441240171625116212412961474632515635130264161017455418852387752021572383211013349940422469043404201661376758330741270238481375431238791336262708414276042914359007167935630589638811944377419916070252259033770002911770825244360872537127562694635375183608893916392934445580302338309229655735259378407036896547409843870409246939820525189595998805065100171754422921525868293761903059724775163945788041829828358876327717984157008453509037876702431724981960426166086584535015545983461717321549087457425569165612388952781759379273403272732657741797326882351888705183690454423688849745615437550640509605927707614309727228192724158941439175539645848104851455791512336754258620865406292151278806426868844113808818978339859529407461544963075953736999601416495969948133979366019681794142452029720855443871740362870364391502635630043194902029280169342083664181878648615256882885723844955551890735915601081259883156482443624787945489788196694028414362926021925966335497365741781894892645182363726385640446031434228294918211084340711418074114279948119839245448890289416263143058751361168371011494382630359888830079466472987627012082838838463726975041862807313664689522888255987137740143124094373240396238859808130941453005673801860246717398136810741410565852924145237013363268185005662311032869541567064826526026078742543815799837172665296874936699830615481196746858510335690244077796928859042042167142896699701281786840816551831081377589852080459093786717691195581620602449511052462777382804975750801235720816057756548372393558688595672936462811738081376036196721814164163165824882509374480182113386221638502954931196454424859553225835121510311215908486840828949425032110568636385912485833938551096332101973108254012673733015256148967878426173938852455387911021952585356580919196134559772845056587484332771334047124029424648515068508397101080697170297303558773042528676859514317960131293781967269081716159046571741655275290869531919855695743502586680528323852673420946610668173742081676249412489263407021583330750827296287254731724340668950945843974866090406748487825768428840720694627645168211068398162844313641131011334535387054842712903316763859811312130136292031858518993482925319389987804069910538017355676266771799724319493467651321288231120151318879281904912750246649489452526081127583562538837920933076219702691370714675784997082037699242640331919542257132985461217552711086634568066838635483327577358595447844798551416022080289455297687564702727466440011401872913688674989092081528497322199000520195632452656718064046596481090000447092484621491043851070150750993843381584898358653442216057401703435200745764026422837875095023670119843823938746768073461598323947264013624154956585189131757263274318361787355754161849502934421973109885013224193813173652771136808136707814062833394979330464836503724763615277718205348229439292355553901275520492344784160033399332887603618862871085025337323465820869539127856095994929488270900298488744103000532483365632414699358366037206447181416970982519840176111164403223494607776312349798508812506136742613079466857814155400014995409079028557347903113733706589083569434309077323474030607436386522196777452873301251883750133910038955810806316035060344250386809473170913546997733568905859176688127132240582718142059242161197970856175183346264318644975915411762755797651719737674919133175350951086149635350995319268458305032751835108265146183593709873734995171773092751150353307626682592465666229068893483572772016900793987652830702523516189157610914656986260042704011981060573487890835612950823816255831046070024102806126510282724734130180764659091360543810901077989966273472857806448987605782533423765798001961278755151703557320523717651468480167047776678795815821818563120202504172295819033290023500665272304239714913855284987849218671613130979426506949103599394519409066004077957871572123889160437048350086781552084375727334505915031406568324402815162513971395423637008387401555538278886808781833029986993122095167492350029049103912248510504566595272145452822014346357517668399394074427476119243903256822636709927128045823220215902354337033403581103274147829285512091655545794315765829192073666289095062468951294097168236374240593956171817864470072138636940495722175975363950428882585841694712690315369721092287020420284345958073045055518505253622140025435754961169691139376327244222028022918986902308166821602477981749699596186853430985805773271302231610650352096939748252977146203896374090311938693610823896903923335357833825707955452209959514248092494225211221820759907297707591330089629371179612919882441722571088922491346539590027173268350242246550027382208802612487217204411469872807226771875099093953904955956139487494263345738203446995485486355657989275814123726023356839661552262386313506695791501771940900654456250492003510831573164342749931753538262905107428446795767107828823287997632913375717595571101297562114188178502481106427150103989504008193403994070175198921088858318184373877687781988564166264093568458467652277060794694817255376183623151634890937605521097137832762794638062127333612675113180664997895374716782937648597592940252280701218008031554328390516627483165706476835248915295614351309461116102497523367121932453538697810338591351978005047529911333064105934240086390719070957703489428490294875436616516231633628593064121387892420464345168436703454942155828084093175041479616086625893455297426047375528373816374763897379693557935335696973004680251796716867772027082585179701116317621201938733667422436024145436481568707598461513093366951452749607205593368615346627644719988816149378691805331263510208863616666656887196079531235190643610882169882747742080816591312588946687900953508808301273492312750322138762540524353939845701567783932170556674380233011496611766859430234861424522152721957639278922107326904762929028065305507936169432208590106104065186445847261127027281851813292494258524522915701202428427278797670776053540022113351859172354972852732165490782275016138224558635199878391052722214854421262506689737477166511603695021249885066544361467086537861145054039766181789816825415320733712787413400996063104873485146028036450835580044885167677796352679743358781902866666705430043324244605541953579665972561888000172297282869736500538137593842848310138414700402004407506232215725897124632537265648186204870118696409487490321208816081438873009362620771762219451522071195103695500281085387010273146786438375284476667958588020311266668149097739772087714418789160186556920787729752579396718371304894301163688173344402120924436133074493895231922421137699376258366568112573028826014376587236863602080653757502968942136861178577429521734277129688791166642777057742971468757793661476753697540939443645047089662636483236128911340242217859762479630842026130132189743789554272634637673309580220532074640506166117185017557910169951124579980082486348863447518162763229934105113032706490930907414855779473833892393656955410797626788156297053205875391937396770848819066294184862067111219973949878252363976024898564029561285868906534983091673427857634255172772622684118825023079306570040293883625714115245759707162728682646293084373722656678512841631775375113065699106599862426466017310788426505668215120133048777762704625167027574309564380606110894457401508475555186902423328449641196830460732885845366270129964354426139455771496352309356679445458353904874466671618524347663139142453079370403010167225105250124835474432548330384446837319830559192266543451967472826097699594322823747284506676227676278518090471884813192268296102383409176553534506044561070898585191900826345194367280961394652488046693411898294008614779195631044447740735002819328854160989498771697561300060490828610197893389507601353442048132009806207908760012101607082695985768780189101673329361889951995966922840166277564427918078522667730418490916376696530521154257168745650731013215277856673087556338616296456582520841828258599183397345680262967016590838117445694732475022542726086645087076522011315332276996960475719277684507447254645863202358335112704765822694956217565827668561646126716621257173932941519259016359390285536897938432964398850574456595977910381191200769253253058536235390247285834014989571990607295272696229606721987640966843164231564760438569375917405430697091657683048743888521530267269662782697046763942055620220612909325361782749769006080188427300022050294605626009399907023889076220924574252046239620877082125607523771714131587324353122788850551438727162045326154958487757490761575690962557509010484880482144245011973948685580231052082445606186828657666455360137246692734973867898509463892998083684008919359564297333791468350151148376832049466776802847603141490460322886494563720746579284805425551603974117655681076929164795691815008102304271504040055866629582391334551566375815929340791247730546134763177973592075240547676359766659619573812364239146082280364034259069775755481458430142855901564534330780958792127663941222519317741912824956286198575628939510673987325510196887553028705702769856541259124419852235402457145534110117371981310179408381431841169534070598577352850166911375800957761898977025628864271058027613290365605046766308386605668771315703772791698518875253386820392883582403509503196601158151781636236627484973481515444315226935223606586224332954158951179652365169162834442466676763085259039372227337350729198875886275062123665858507419483525156066469668977416158607029842387655172983248986785339380916933892379688183351490170308055416281290157210555810003284596149669467652879110719628314313621444076347906124793775412904423840146875216514529051415769884628880753572398579338797017198606374877414613906609220684651658237920305216070708212617527841823843914089320383019968900575361188521324328710503164171954268526099086359286452308200720741897355770045464783655986601483477565268377840975553624369694881313559642968681659772004276344679330525521415465475597139180183151389375667898757888148847353531949782856372634717982804978418591835098884163154294161276747971277371653817928668066258743565389223101588464936092044744800888909330309815710267996563910673289033495696855574795387125749956045433283256533013616601131954510068968267210081760928158434984129333651585495974626817466480320805184319422027671536048223080683900031419895986973859007156186067786010370682360059905063169422727849810336387516419062129093743035710053308471314173237580373202841565129278058289850649206134840905193690470123068617216451052507330408286064188636957250876742769740002369134452288618437838234994960832721026143136677223390951461250688618873279395634618429745435106698112464860133830583942499423991019900765762000089319778273244389325079158001342889645952740322738367340974717501504574870752605770302010212253877752214228692468927155414966758706320298888020815929247240182260507698788610418443605993820515104976412239218900150241755078215343058366098125855463309721140559372994337712597341944549469085625187054835442905629824113100796221994314891573619982622350327766900529307978604845852210730519123670220505666912012837236817570379140753581668567213607198862987399506047005908754480453031530098998712946804861624728600778701926027902578554235975517720592863409586198159460200990706115579875067985785892417784449822427955044822302926703231851773203266350222226503311236468079235740231559967820975817487074863687091515835616549746253321975120602155287245336631955793999700463357927376776392537497969463414739405087073614116909333151904824280178258616778345406635352772259830333047981459444690834573453881462314864101965650681448777320727036196879028044055778325841999035198770866800852540536311772091748629347803489480513978305209981100262883914844217545876555519145743494415372020035975199497840728219677617087845241447901730537423932709813112186749511728475377486339294266057266495037530279422564357911191308699015128847856627639351546138304694396443029267507073833188801732525092868859819832491366773273179376724130349532918764298561479156973174159174645352497122756668657898017029804615088936471164474234430188606699287276939800284930998341636463485597288260418456638060497471578966858790077853333123270002499672286934599041218901052001016278905596090749849765965152224349791906912961318209619915970499146966871269852586243146889701024603859230614360375039051806209153226060435584051074029900453774944725450966871670176911698116534323086390382369599261894262400713711986284618497800757278784552198465818048356245470513727916280486273275842266253806821539644009841208748000105407129093599100421959962403505592278365869633127532927516636408086787023269249648432435163147233342022810841324122746640401652121865187577652306497860166218020914909751603350686742269834621647704518377253032798515061041035575065076177324159904209805030953373040948437988344690693909572074730850644985415243506062456285963134066484912079533834655633308306580624888229970026415674049729038713006801683164744787990094836970650694178430668607089022171943720222912669316567167340958920853873064018394504019520483530855260843271594131955115491009352908707738304425161420407194335235466214452297949459219010919691259553082308178571826101431545336797664956260857343999084340431000954490223742906633504756812971850204103560961157086804120255912246140985878558045891158818386507499577028549650194020469751932270576800985204184336766017316787928617910710046369096422591840485284900686602779084781251825189323161220287710704577096543916948475237147368769313562567926212551640097778207162624282005619527405012066900588224399363572077551337339108058636829209967211128838849244714850395788389314437740663266153071464134631936769916127150062283544071440598854153177959949321823252918520115438397780161314655781106682707177687595377135352079950638256460126193806979821111682386364224192945160757891612093243462371099860994942402218447116752680197916990606365481640792551984877858349275223772435311962826436691041388329309858439347776368878511242347811370932929057147308155178689941175905148549428781572506946072271701228238467350040071566595646295146424865864365232649755293331626221978398940258646701736654887096527177583478458653799633142894553598459303992278775213180703352117338483983849406507848110101682384840459019480528328838117387183654315067529326243491454330085756382515030649559178237898774474260627065764728299431927209965410067480087004763253374593748546912264820985473957417067226601260539815456851116107068568035619616752400785750078507935105606439252774978026799933968295932620418013580422151989025240523577606039098821503074377540552387375807310722686763163431132245115396811850030910052525027122637978920352860745613489257483401756500726057880858794761421898114295765719564646776167026275854622784881998851611347347278756042396912445098459713877422527515065783799360085692473240577055498776750979411506163057334199741924329951820251342788512216693469264807074466696897235286773207131672227445220495344943507203714056633829391140597654817563321084975705637153289241560617559367146781367828606084781645017405149546654113370146209561298577544024481298208080659380502743804962051265481746728324202965710896160392280890983641709788138766067581566581064866594732787634750092777507762846786188576868052291103699203868750614356176696382537976912549595296488867513595131626631106776355965209691415774908381602024300389304108721837819719435381222280702352037620348792818466479098578662230463655201444552185308595955994717694765086705022199963536509660501390893071343843845235770166424393616905556958611170281243616522961915662020424607391048320271601956337432332036048430727776133769664330941214954675158103631582825737504023157337429382725668184085048673238367510880222375913187432082840126149825348416792475202157779482165107502075442095452857454927946110047989895484937307898471101344587399621324540175157213612406812517535580356577944773326191284167442186784145002608415678318694316219026050046359260081720060916987448055936157913728405988626504255291054685258222227945723097063380338624914878603679120245197505247283371084414780652623145711916012653737253400780922834622513258352009309685893424214526172390211618628290613117129904957528737826580984569788923090506816190588888426183851531748026210073810582000194158174131653514394108774145846452829553426401181579667033819200746029242156730789552226292715753042128086649664775058635218416581196624519631196972290947361264351861002498162420983491747205564645387529034155530197751849534538626520998376170382631830652709036220085223472983586143510476161448597060334957034658361218023634107399774504354439746108042882571671078554332072765670015777828338489216904613839287757513000131545730602455618737110441868219155030886556720791005037915264963962952840924056991874803584950075789256473251822619751976691281307013876658901977887428203583927716642821090105501777226830943306375183807153422761551580765203732032008269972127004653852327583143753597386739824003947306089989096981297796192523501402963527799437196956404822760786556678960200412669217568441193762741731033334208633471789509536549579527343541806349524680758302512391484096152591498117208109194750293733124648922486104693726576116497408310954651412935136463178332748983607667174030031372686787732415556688328084971412593074566416484905943086563623236183566693571279309330138457116878003521976326215358038600822269555668563645727440499964448516532568009158109899022633823347806620398866057361934562274812895065633521044493265662413589318754809604292890443798390609121931948925177662733595191646544556656788096274456759120222277015943759618659855035025246673500246870663409919858020444312211937592775021158522391132602624599150083424499498246210652997030831470983390200466228989591914843731885535292909033834757587065025981438861750275528052732653950482304042805632261519435602204198409261274454467079945878434245867263317042899318139273584443054474225061282526807599605886431527190478339856662041189290309944994578678625376425185074534676776663598254298056292266043166887526092899457746020966753324590050507393728684687581526046088175208259016900562892990040663787691240129237152012648343886646030101953486200423000174197836312448802289035707874373559816634586387555997539119293892519718525341640642508214869702327632744154892146413361186296771019053562837294245692047432264854110255119060764379848042067746978362054937590244117102704888059800868726429239335550660503879792072957047626087551282495688440868751142743232401470680027652841686561191954580395170208235464307008555684017798280601164164402684177304041500385362756808318944322193996115094352253823751260735763599952794154453479256174330192653828071688724365995230603643326770241611434064239352854223039349492597686886713168033129727954866295596571937207115132370893116052484123628940520262240527560196291623031546202873520682334067065223237154171546268464821732429024903679476196076471824701813632538410152654925615897269200247146946363002842095502246268728566715267014476225209029001190847578907796250998698753444474998236647679985607027316926983163716173278262053082261856299915236789183023926964475558072119966194115156541381953007092581889379277504154883838220335773562982771510429673475989259529412223574410330806617107322002674093197594786064216721767137267212249932206626934433288964968422155815250647222312063185306983661883182694557417144142099160389386214018290981797282460896870736908684054381113675425058628525876028579953950086857667126358743228907903434406076022113547904736799304151662547210758752009999198787138582482656953500980018825691709893453440847994860939607725166928567475127835493798458235094014499734589377567874800860001560908073225445862789614289377985354864210214209353307870322766566592224074002889575234402093447265034854862433500470358752695439931112140379710288341212745995285135128643529476646710391750539210699182562332065595067072968602055327992739896038892456498723915126443791184629573164545965653734247660300827256958978903773614658627738304276297251564595499821823971593486918523144928505304008778220935064260507844351666073873092362416657885606631657383940433536321392406825101645549847763048250920630444732002198930767068151185282893622800828708245433064675777773564568607566403687884608702206768270497928544395387746267157411975368229597258476914264908105903882350202475642416329246373404986061816141967801295966870039142018570538069408830988149398910986982287392112976405412963741429226901293540697752074015183673632171075623904380695021432300409802211777473091962247956150131400230044046462623854661029315046777526742587041989248460578152621563006913519099276657509617005060918115436850143261680329434107196799256461652509995307712189324524708279558007265877986322259523339932565916696323060292098357186532735872278724160645897596768143286379267086772429967634467957329046639205206487090345081613672949568257791601307444070091073654904376796552256575229647232443339993687700191693298247176982347279484048898851770233799758970285525661284095399433572329393248234602625853906241911379599056062100679224281387617977036696430647344405361931311777801033973971276574300590564952770172530913909909002906544213770622459370215445088222266259456805504376634355859153842195373705806055430455178276714749007974117472600036032243548303343666585159122752919842409795959686120660349149385473294267336613404751250559222906297798686058107783715730451077958932086658408405584811054951317197328244405403514466652609740067219534793796244040436814993430165802001172616042395976951821429901673944875217148452388061497602286944926262140750285096434199419491067193178852947152307706479482486773187418793651205692273278551712510622808460857446723594950240000776053109707250220464919294796046503887351598652706704910666308680588468184654965868115187516394202568795256305499953328986514895397008646938142979473350513148183948776760884124609908725515140775412207370512920514664362023263060034310690848893526045927870178548849305664707781120243515067017875293532078436604906388148174012509600248749985422654365795566896573010147627731160976998464365842559412824555161749920549309578351564745678512902716283861473176154407412291603839808053031569448181277278993235696361446483152006915308035028261824852721203791312149852078625499293966936814571292220289322864531803223199909793063814167371098476067342829279710773708302159785609714224692749860250558821179066552743076462294973037759373071461869263942831965373140250744785068836549080137453435791537855238150939284794723352995389559426581943416341158173916528949320638172742678729587712122158205410187628810316705337157805676975412473621675602101123769809967671460079048552684429069508648848914388531480206542921570713059469821791782728906292860844713929369483753364795738813256661467794254150870935575073849058174443211943174292221475186518070084642415862136346370085409395595203234196641997373993964431807682204957200664187005205699411419828496426576117068183884016219997211127086153045239713546384160097598807187008751217096338363677268766423471165095334170003365815407681466176391291418755657020492746910437966440117895303388904493728362591026443518878717299722681180374273147466412793596749137667169399819491567389727345792917709723528957170975993145132292927269750046139053493841188265716372559008042463424258395479896621981592698959038023190371599074559832991213663907531944320695769758149465418357664158980474819775212605291822610354429366149136574264846826379219106716875943979620059243210934270038107305773872125299399133890808421373334772683544573322566286172080098232157278151745105781315657363159933958549512612877893908280773270948346648392617304602116080855126346448975619395510618707713565590012513494213160371666403679992940394644591035722265408175629334490177165559079967924676134080280474410986902800338649436355731057425902370793938449723402744039369899802740339870982787444450359198607654776809581739905452784020705270079940007024099360070916890300374867975111422362635221209394241058304830292812961656362785568917816907217498038368629422883643586256592768269755165459211017820734737628138497358034074812516479312433981333643819519788225130579294594587148825614884962521524371820672382414748288651757387492566600399451574174502226705417335522855768442705263049300581098573349855721693976302263717334147905894031031977560397619983438719724974629278398548040554525841794185783241302729452722998857756650861211604011840588337160092984334523878066083505105943872250305615924155858297062505604753384604562545250346287577307209831446373907683463813301991824774936954083555549159451303114737981761854732568398438623899028745560991987232670487964434788097780501949036248368242936928574111293763123624373094195432989687021364084998121560423805050392491979130640611716995582795809596009328722717027236353954064672002133521749954283612117292595529024246242901286587349728869650141153247409643451930872150048857118891991846172882938854118345959071514623265051020157534866956147588369964337071157699623064972711890792500437004341523274836498296103148749107120713037872987528629203078754215727093578382620465228380492380402650985449327695916018967102346388370965687917268891823234224602115511175712958693582015962652605942109014692463501357811699158862877384730786103106546335658760939699355152941531001860778246059861810437619327701611244529935369116520409193604463167911862987781889104506847220033501396271257698940512923643233150859000726850285171443158845430620929010331404169303677323283416961959997509715559636655100584281992055795275738175541325826193508960299121707889257415922939889263479000865759936300370420079171191452462999489466119812526229777833089769986906377307967145976104680819894966763459615827775567050690359783840684497563973548256102486085391711544646393520247991284873155425896070632314901597145722701263726233336862620664754189149247052565858856525230849767469523239184161927249507610146639054765616539407919259291815535341117117145149166529951054349989054448452449953831152691737633549762593181112554611449387611932916297970043885559905969775764543113057164046807714439402170270278798098392784768436970639844864368985503094514096740696494001371023773407520809434906106069269438246516802958659276786072814043232382708048904879352661989818248397672292440155649033961961641869685519228380175990060292429310371014327230451810176490438377517977842312174224281252268998085068479272235240600615817578286339521649754012985753674956988087476223890004706642344693664484105543542672502156452558787494281791848668743319817035846617322008728719280488100974401318744582643085671240033606738381712605356570890831698727842834663341208422473359296814907420455805468943473717594563489023591675134070947848479396521828194279871807754350311308357411778825637804571156720338780227056712823901385726517930928766508045159514778842083634191931188583205457732261027755582945752677489542296942301855559883370296545620505411491964381308693243458423780651708667670954975104603090397093958613183379160158405293749475381004872697325215297213522619217584483316836536554821241214574146937542807398299748023567992646843801517726813200049334841082125570115095438969338161187754828344164360152358051375075679747543890696280059929962625397662441970609550161050710774962147239960968587304380050857050852278858148449188794274726743963599174980350945915365893451084781490702997780629020189888462591660928005155537554595696780247898211173236306331333015165640007385969590122946847011196722652517672012893015052575095398333555599517969734440390758944423447758651170421033791669824235738195283546821997783602780697054292135606579967959700070318251966925094066469045326286167423804402128631593979059902537005939022916745964938317928300872595789746450392702151428554912642771047040363315215598119101977517585502681966056249148356963675413901753284583289600662986942232100008179844180355995481260520044027237529191362226444958410462332278540317895175401603587782199181498469573180527648312160477411591019540940887746650413708648251400963316890368215539313472224074534119930938319712690643684498095974358925816745598148413086575221229111199467198571923818753113820532377615405172792143937235160758511001219154103778017207140836771893472977929175893792563877128917273253676640282265103549903598965030302958414189287089052516008003382888240622981237206962506912228334071671097890928069709104851532372824512289837075066762334977228624057828027283009734032352287724127404570672690380070318934827506706345818000445589692759856021387174553987363570264899370835790342156998221550562575357122896038014673638573179898485611577669449213626045705762935689526443829814566563367139851560684168003128842503773874655004248155492009692296610461786078968559279515156186321255175139478993917623522727203011112564866769657112277995791756538211028223314533909756456570263273535834251335735764242087245430954036515551884699560399578586051696223973785862132937241486486404525891931935404343464311571769101427594923848385043338808915925739683332011376412879407124187212515606278268816057073006945769200902308508286105886314073244783014255564404202536240187785723481243305800582271798925069722936345743776762898814077137558915021710023075241217855192717641297611205950211231013814068044407907650943024819584007250927562042080556486172676631190364410631811987275323331150700402633001432628159587642503989344094922760623715408068259476767900876446678759646023334122933311992200468333227041561922545796463417233967670664419850314596296171219363745505221414772356481911898136291818047838264193829849871474382474741471562680196723438996727742159214782825145035535443120526069100407063838702579680012749275139394090849712068449577626429112442210003240746043730150479471128111809988723333698675119397812240025624833539054449191328198408918503007694211925090564835107618771888526915663721152925627107156650533708246715949625068403950833056991904062776507733535889395756935264540375259164712942383367004289685780800000121947124053805929313237476179652694527099907376778308164372092839802289708158679664479428555800778878755624933509559310892056031250568149796481764226233234424545560173305074437600614262166551942582892916130164240358667133735050229751481800776980999645001840640315684919529966312242831413081962043603025773861008894242196532000187493503380008861614133130800797710243499797519042592145496566129942687495739440669198861846838908212059763619085929893054136548987209307848233382173572334176065736945658198006448763396086114263142353810113049138401218474001218490272340906914066009814169449961116619280426545081301236388799626102410856027252258212478540118372212442143983875738280988658464740456952256377065541006021860352525784637645087559423913695602990506043360831794086568941657109824606366256876211767846949632001930868406430735932868266251519028613724812124420546035367710540285745912976247707347251566880505771968465771610084556950382573960986904240401095311983773313941179981718742893929289566745728762556975736772546184856388323083860663855379739468171961011753823297117456327093153897072436657133765996671303500100034844788571706535109562612096730169042016204527166183295883256480173776588336830250147801825676395052929761351594662940856543879882792106564179052458027684304396130055244147349973399099635632832136971245378658059369553883749981650657560922532966064457942465629122852845705984612611174041629780493780199461432103605701461855575827424312749423998922511377707337624143616043734762470751168950989494874107742860247913726072473939229322303993573960627554811265041074031462362140730985022977867501197690968883535900715093537920504016461419527998028913664293492239731455938649138362844983509950792401340319960394142291572362648025390140129200854758271343730127848198341800229587435417073361504640005465294345445641589261572273516914557748359579162989488702692439145978171297290854384204083322572715966748482485367582578807040303986898446636767172434992045068341385008867392967794941148106907897555062682153760198109009281278281511892601976651779959412862975714312429677463875217111855626668590834969177079104576375034110713223784932768476037389506301986838851032810167909935227427624322631857525846162780106539255710833020608579264588275758980538229131523944605716426266974981804261842096368805112893512989077685944388664701268747610866142199792058235243203531248332836407203841689907894201417287892996555556731608028511022586589553292369812452462808873865507421402976065480956859358772035605185721663285910204262817391253322780647667219513920319550075271617209777688098334326715148994692916575417596927184108836734012156243517437492175458812027751118015572676111376212257007232241539825147762250877735460134160466998541543027800536912458759410233212798842740275859050417653384602953409544066198012793074433579426950345862601345244304899204734996966657516894543569890576068856334270810473257531099473898304693367520844233912217172095141131162972941810696305035226692647943456320765571757842281035751996872874762297522893139718357962986658834587584521875509033077155859533082963914301156899171743675853423069525453273665473053964943710352837253730941432402095000851203735974787475033361065473162994512921794219881497946334002530730074999369723799567622189007943198831629180604799467285369812199552063656313548749277129760031903330805907507062719069667780257572783918105597081196797916947355172045818529145680708973801130927688801789185769682527465071476645857678803985300302832608769998316604492142833304816521110676153286350387990897247214199826632370108377507399012358126185031536957732654806660551285257806178863907776098313373134882889643061031072058122471398182809494963541097173448239862778205829988567507518360718250340546944070629022763753565293140037540557071068462120627492995085981762997276227008245097850364491055623961883420505583572423106579314285231425370700673396939553800780684970702996027495596463233597923632664291106668895082733910936658841244951551171463485550102648566104134012252073710892972399287042368990162200813060583159881077178439154299521587835709726347184003316184497180209565239965419536073086126624158468164990634702598217859984832112754094638184558224856681637141008675591398572941329971036688974565902879731477646103339587819125225855734058630926036145892349076958687631420450094238289833463663034154205074978875031953255236723735024394949480584573746113869271809403482244801176711713880655059819521175302888527976448679271212212573479259611852052800314020551245915635235230074428165464181152191860310904711613776691713004590907224909170841213276349763641938163610128984890792889464201876597000209211653703700521540634492027531766844518153004614629309090904576502555118667468042859511279776288780914788083009871363540683011825137327533090242241373261389431705772091007274389394273888472758312867253224036030434237903206563946865730580697920155603582808959574594355681589526500704796159602173478126156393852739231031179077828945881358521937930941736512752139808427740690942670483500089708594081180697785069538305168295908033863269575685066505135102776292028760641044889644501748959212288675874061666506373511921551997580194362724324240950326971820024945500989675432258176211553091363313511027421602816683897973365238713732753563834601121724129419982107912050124283805533635764212155319604859809308370550586153697232182190328862019096896214575545506427330382432817203890080884356725385509898140534353499856510105342984993872532172316615439367207699070875120281120847679988559094951809230064396092469187317782982659610589466320087059440523234622153622861646678550645014243652650034878265166657584739997066674798225340279123919240345021813559039290656716771589745741098197107077758614629105702382928768280536741024142746326051877861625236772145889955114459669955665480946112549518196218535135271408684386521571513888931887308671772058545807757682446980004415887819720320270399184135683304654662024009251267114258297435230502461368729460181902253798744736103286555643786364081347271972603843798390524586412320518504558818957430182034986976464237080153834166454455570307080009606404129451178277290595309312083405651993942592122372178948476865042589338998654365449779422177404047407734868329269353946698382888065955751740661021199512333902535781857730783618129629744950304823723767920324133958491722702480132368481339577331026265506428946505487960961638927834545331936031849350911510936628288132318764909173630514771018316371474024132379977319795002981594136131254382624181116346460499836071521704332288583540768780152401979906498258033773821602831205730988076896047176469197219917103008797558042733458296156599064151978369124294107483671634017852352757138173863930336112893382213081827766578556093626494463597306400521395050448952554995497033116131800276236253649039979562014594998767967903265855594976850082284917370168079129990843267383645006550587172474467649933613468989289546795057878368207540300058222067683374863119857439300369976195908638358699166870592755563307352081355455119072200628925768328747994406681706754047992092737596324853434401900107474179727187667374129378357073485719402865535162947165635762674025696984331366900105354529764939228639436418684428105789755806694755944036022904332780948114714575271124610409261260059344171617353431512860324018773437949161532752763595864295465527107499794427723178134004274290522866005530202072554015551918521187807292326623321407861707344759079453920604264137831971618515869980582016226179823892385146031048181375785341480686865118092244902011941475755927136608011294471332862093736604200196284124207747703552943898582159412579533417091911575876779538902096639820791821435633695967958125888387621242452257925690610099792475838305510395852754266432623924857862030719119354166763188506615731840700103914310262131386740858549790942670085902898448509673313796625794857629495968301732022523814432050206236114032870867144031145602106564543572643587083014356002694861990106120121319638056738014419809173831179350341877079150746268832246845583012972008935988060483085605070549986036447234570366016769997056040715496172601832714927658795480090895627100220032565868244946886582994139591850217452990264430165983810491117054012241531957885998610060824606589859999007379260035112044987324617091876117155433146821071191982738004749642438924331004942961350837757360283468491571643248726019309646018313979917680439987194612177842880822807617576412132265799325669964734526699078157604541570829964236214317560626794963240333178839105516532123376172360732296386613417995993852508924108511042795928789650253443023337859238770491870805206687049526907805012113630058771049058449051770477679551424940308735473914706079989198344817788615854213370861683904104408635831782904508997767382221149230898372805877949900572063542747663981950267362160173479858347650706242862125957768616057477479350512216276862083785076810267523147741471189555232955053526738571782642721388219655999141252234611931340227145183736483295846678029065259001874780370525457949582285461345002164164621524948954135722020657790947375084629971461353269971923461900091608282104263345288793331030927150835738659064316420574872306762464760186236829579738797012204642677850299483231237485122540977164886736631581700034623961612345649341286537214107956238852223789845831213030768693410237410001215960021943584398187106780828467037869580799544174579050007972413215577393265463355928210122907403751203695696992693893981988277699034854269061477649479929931597935216562437693741262417501076645836847939655214893011592472617621585104771578736543508872719348482444200004704141167202485353675088929565935009307550030731234096968747594682269077148752607026797999312570301462740579740959227728508837168852430144437403259346065538594992785043450553565446822931021240607715699849161671968288847883670224677072070794801407708762255673177154881908207486546019874429682410899232245960827757340307795626402959846423262544652865819599573490296874178546718974057838708913023129132425499868190051145018030874922713270286995372787816917762178672087080558006710137923866333510471352525122865025898127765788840153577245850899982478213175710891497991931787636986111103019375974907838893769657259066635568400237138110278322099298200728309605513379591421934825912589781886721386656237736420571589620683745565750333695359824095079971462706554937814051226455615321396870241895012314747982421688040396511146299061524502707742796361711161282729555702354664620731250614137813526700117561222547366920804984450421773272077034760180394175673568526639057502707635252756924849696058458368102180963318692982824670470746642129707244416857359744408621213788723474973709837442072519504424685996452217866968564548311505730209857891674071500905357686008061046095041619415552439916699239981677155358379331247574898838992994708173807602513501234166971238214559672485577086072487608828900811991423797343080767285224231101143530176896220009640531714514325639578372360893186783194554991498151689995514405134618950596831562318234494808415393417891989657816666279151959871839639642768107600785431955418153808268366003895547990591638033732122625064036887188571383795022834653770398276955497283746123282311634509553422367195835909708593078849209284838490015608715624992993415326374430720969681131528252362772858201855180562091447419808392836177150697763496978271543983743937699838090000981550814474754177382219725665561786885269347260601053519578553306881116536824081651992049282491706277248152825320270406095671838934888447062080242149412254488076031431421155129523312681588889494708347543287880305748321574343949032930350710029727958300557645186666533178241709602036045131405769822369997121943646783960013534721351179238769676315986798927120984256764844982058747727890103098811402157857295454068284568325537469316478719472837129130516432530991899556320501824746154874349295410557040293536381750513926481952401054589500942777497813979023932218046961766326932671118195013809749395335032446512213399767508008943055548130948871986938224571577506210084258194136637133860061837959619971524975712750590629556903563669751082467654693651374068698574711877027090818158371875039788877168755564823990504250080936480876066569996226254062194421408906913296031016499991917622822042230414900185228760725571114557569899314979429985490349335370394543707695649269558207844001934247506491570581135632412743281768953778704665140713653329697326282613433795705848899504669956130638217675985976067366495900913094442384830649004551709007497163123860990301447489292793427968654139286001384258615439598109372138358256576736116652150390828518652878820862303883663575239633931127835583114508364422435854915791612682532655981572041939902401416317476599327081298124273087261726297435232623744174964966986264406016989418839886975916388745431930378221537541260554905312054155222155355315205084964077077036465751265490181297939176491643005017433828279521675842131741409613801912537619473242579888596342767665651070689318016171419847531909101450708158824813248487012525222442710256318819719700617344574683423168707495297261341975430370895401057475921748558884602750775353068557098399837973561704958120356121736295981608392900958804813463599836572941048013640136870690545483309245241052499377543578325766915670382512319637978402843193051651141441075474507812948843529193922888131194671990287694456899796307666770532655118882380783079035725456227791931227498583355518676204941422629812316249951390929861134231705493216694411497369145871463139441620969424460087211638536077438348677471251665648716480700106104452912110002724268463689694593009012092219622539893720706229535740381498801217343545895071819858637790176283933111996297540469204946539915180004816832059998832922111887488047998458476279259684903364299956255516159656508533145044531328020221691776751459710542730962385486268966045112924269051538933675545722665823976885014793018023885623856465507392056833667443228388400004089886129673155892225391725429866274567259561580718178908874963610050694965123696587122526079834230018951812988552271540374170253013146627112263868712416082563854476828869108547177660926809803296367144185478977094121092720125102418025306831798144776117356269021939464838665638796601265993821098754320591088385072404613585259166300469588786246664077579200703288103467372939433044290730304559787271179445265007016269173461227493221007592141811708070726989802970082207430532875480346175911155796379914504823798995224336294479638355998442370700909108864750686361047355339901552569988215390366726847459870925523292745987465701254036871875423756871859581774798305215388471536001735619177553562543612051190976267054984543430563065696712686530987538283297406824021835731375533906807426003314632035720537704926829356007262806808911846198224407463827796028881620375734786898536044457486256153858353800334619182434140821382668764908593797316501944139080329733905697364572303233686394281355649859413233739165812506962684087467597533140074608748116436276712765757059839902993127692275262260111767134545596860688340272363093294515410230310047646767000697498339546590944636323920514007997869890254285838231674202280520623415129495306916228123982567782941040670013135176124971759076247673678937631969488412234423840386079202744838457299236087631592886794711820664513132332831820318956450940556474392007974766859161025474791853727811695326774682338223288921336804618727268393672759448276719580535678137523513504667024277358039676223599739947330029322924443178376048662113661498554552967339348868710016448596127371896806226659359650245628695431156929158823071360031839422023858855697605514016921863160242337608727103505574142819926437485235817040289696421191861365661622468070162484751662805172744226335645095040968638648367731488442496822877586395543497983638349291744675209367479751443849000774381199490539963931877578650398285478088671961997116908228735376330181021461117545014528468370242817318553799013763184568558730188289293863375366336114765131212091153879563638094957057800534537636582252326964692097012463458718296677770662355912827994039763181423146855922840238734618225142148031856516255520989889911367957146552176859890405390875971729185731564575821265424176373882574240550935258988085930135010702026119858686109900362180022584259357250889802926995108785647143844226411173899728554696430403655453585164223818638376055843767403572598546597131669499076528925790965103776247001726384610386579429496531750148077219988570424590932833238929087652418347281280736670336311072959344548109661534532676767461950626092392149956718784655885746914672282247909305003635229660434891893338955393233636353146633070597400547395676301982887359387331388208249957606312633138000373397407914806353419113794240609354291727445103447230367738445001894478646766015367812037418244509567827652990513862415991076156488317050962911383765221590162073112253991208059963155892013235005384747395611872835904162498169298993846512207641078368804242427580786929851343344803766380399122490202087029258107334819233870402603180706798392757876112852434706518526590793133926464699430093016305059845964977508206165556572250454028569675780915429349354611854304022774975830821362075770551288005649942837161579176959535929546265968388073885234538054372249859414049120292105312985930889315248858393819783776833122664147295030928800024451122447834266468243532257028309223071136084108492138773536319612846371846230310816480080266291475936808140891459665870055282197730857749279283164917642127165815515215923480269976024304280977943814699473862199344290427570877525275752116859595934289928756618697082749758140575390716780598402639206886643160192428681077086435778015119734473505599030237735586901175919785062086301136190438716194435475726086247802901233604000736867171616608855401866821378554538482843501423118851266938898308710239409091480617095907496676223907032700791912601660587500922368942611189921562850028039260856260893570630939851286076938983856333831731451377156793805546556224573489977508499974460769899224303503283215544137359027689661606418849374099676847732799383594918588771251667298822393740939169450612145222031619047719450094504809372986601947754951653729167408558142165202715319731532046731091504913891661324641888521735237109416785320395385074210719089456339592345320667824405281132270856293801806195267598622228136980967802950042405275323386245127225468594871037906856320000327895161439923204357216320636588284204501810500777867167714851973718524661719098642119216372258027094339487922104276157060039036368570973551731556923811441876905689012850145850995022021607063697660715205262347897373980450865146620760773094680289814396106648726111722159934550719711417839351584172996918264602886929650420650357910588256916502030247427499302205860729696008542686620975850857403721125623152299299438512463878871463900086983940001172220201105857503007871572223262977922970258988681222399261845323784628503977996024299265393032559531922321545051099448833146439162237661538143785479527884711812634227620624602349732099377199685574437240031279041413624972668142116807526876317257020538197459821712677409069385050716358133340721849739223829680009293306390855259699188718035762696469685280645399671908159196016018242500794502957989918318930702000947549630280030593230947858006536620211119376981173487342343092850324062275859537252433982273786209642749960008448776023818475827785349750667172340487212390850161246157567928931233609923696446459771766837887767437218728372656102513251004644989710441133242834876320204625026441847296306124827857767103790609165472764699360829810449404356553250965163891876457867898598470710550030995483432181048645635098123221180062140588526708205098982175780755075237165563797770970210463298842997956290930258683483690706519996456822627463002198429088315067030041826893286380196407551768055613836403540136974294287640736658004558769818584657573218895993209292712256037408519285435255643824152624268639050701489521231756817613355497168149139086307892540353372127461125602782259183699475667634487912908686368630274841173628774307984200531317926361596278256367239216489941899031096857204014323362691757716027722187406106550777106740662536695943440708294970001171172902766258541059126435065461745438808434445848964513044736148950546481032872965696842797427373200695593771307993980374221327702206891563247523317830584762485623766105773419393332683296286005590357025830687553981311166393071362398288463295784048127686392028047442020979176005824605074593703992504258500311391906595155953451071676546487411069454894250268756341100198476289146464879100456327992199437067312259869456617793352827591912176612978240762822799848644694699283804556907899535344262419936125983456975262023883565464885770953813643319544671633652982382174454486438803057735395131421305172357974561133035700810348050305110454146451771241509366779693057832609404965875082563939051524389428628091976747179519619207580109222979881488607165730549056699865921489727535759110422607875693189639760333349174725960697834664772984510022064131633180018108550098079264214163347393503872228889953797761197618558442075961570122869144668573442808133062431078576375588200043699483024207903536631915903642030549878075398689523602648262798655735521673982358682599943809623558780975997744918937160170903826849969047647217254259514939018626631791635153605486273714207081896726480961680626356432808746946722858325334344290475540188061150044032277311627219247987733959259303469944738991018734097512991528966854512914850316586837019251084597675822901896978210252346823209236472268868560557734663526592818684435700073664181536258193871742011787530685361127204104575220594225138343385822112938495354922638000084636618603109304859516010784882023237507109838168860484936117165586781566239604282162787187980697462476907787992982078738683368410611487817881315944046019657681776773235256510879201581352990422971469075081050449277284248634165415300617332613866113492563904630502147332466177384823975373541298834479600478614989067882650593712291523513680375375731939936767068125337539823360819749792678472279785703545045010126803092892097905727547487730807374755348131449973830833225860388857961386536168416673808314902388664583925659558296055446958453424632559225545547061616600903361959190617979931455722515378728003926979698519650463170531861899928870938509807318523265763053567524750422318682055502010214515854570111202130948300940897003812259933159488045457122179369396465918072751803445288570343103455635121859625407279378814539668908112056272299039975425370197152043961517255695427608739942512192750665014660197590507055955890505182920672939463878463881935468660457259188550641826352056857250079554617017175828241464228961361863417850461850497866241990927564398038244208470744429996636062999369743575387611983275333737017319148479001688883307357038648556576134133673607375656185379836724701274193022193943424390730091747974005680655031954704495095425006111292082952428843656857084291897932349207358463197219949910180864647851151036208593767574858092918194306683062386091797040838036991668893522231029148551600893353786026029236004590781084875758008289841215998103965915430804575317647880016783498640636206460778605241303581860025321362261881901248442903320120895436153821395707846797264965180546092886487156449805181132974756757239852987540118334920333435465463805122911496871152829053714525180398742306691386872105429388773338052352854881858735855466010948179893374209542538639255315304990576147548359925535941330979684405392594243503283770174772269033516180400862203534899072414006769394739719831442427353158957480034760962937714050719073046045003388422320583171604050162876788599986646170407061475628909407687889471902014000540462148744806800532149458371296056300997699220845841711203899961550682478340658068826255362281737164787784801935498157393823171170109074333920192207383350561500665118833356735862163227217498845051796620276828937363819921271207652707019240070851603274688846553704833552008158464393529790153159924041613099730737460966606723686213590838327372596918840299620227983305590315576019265235760683025132819285734652286904277847054029101626518751905199992372003684545739590526202581055386665469343363635582283661164747705201064307645435303619452193328889085752005689383590326097223147230651231201821113229383455852880399617493970736555800241690720538317953961189092041838114877014690628363244232005530646233338235164356451859219720860392007613443261269884389546323653506352771109194991763859197728077097789561444503041302958113424062253787332534043546188174052629192223595420268533716776417610183158675073541515623335336098894958958412572118398043674975611612899102568456283612461898226101413840834245736061106402689891491537623229456373210236704937525597626073260572950696975929572458776396381908025814025882298629682913496437978300562994324050596181063361196603505867122930037456737193854261472258542160692085255262981724207585814743649509526283902369247807250286946412436100878608878418824820796463652094634173928755949684563203077076568853420231135897730771030707721454209548806804271704571307291863024559178364244985387892233259811131962906189238395723349084972351651185434866989540022842678736513140767204278858890083896811830314428875731631169398060242569274996671783325204356147314735085769165805299767417528969297095916703182220101921604099610192933046698580956647424682419433693556691596847559067321661645890206803606171892037700163018574936978457881753036611114737697876821439489287300184233987759886858223382190952168714534772619181727359325527303240246876059025055582960074438727713756702524227794372162302790109555542610216795335871097625450837384671746771845069061955718359701108727337838811292008390210007680413318395007885449484480487507539288305931147834812840627746105867124887683476481082872259398543051697380776252806934983774832440059856008860414300157898848838278752310297249175918528817266654824695360008976580669928885978054955937590319684338111762561446842726054949223391889633002852236313268804342813503399570000966101772105173051381098934177581399812481005285859759523462844763493619592644474747007606492046271961359207443952431893772919206525646772349807817905568510645086847791810943649035289794523794557963969028240254302957780435976993436264712429312691158212929879470896485937629101261681806349325641709236736926880853969679160885724962357435366647362796740763055937628183238425572320711495306032637152650142719402123796574532486259131665036083526148455194210645981364339813318401152307026414114541940022192704213166071354084430568139571977107678342389541330346161235792908397932718174144732288215312184974984767427457909889857091778582654256422744992386357421530452793565228983718457033047217500600922190518642804103693472656094211896942886444773612281378673654398814994501709535072949001306499393379365096623836423363607813010300750695633798545021278265620268587328800349403556503274312612079484007862122891255851832301068307606829429673534452753194970992833010502847581534944284823248656812052055161613458765047745391106906849303232987338867976877883656844346317637255753150494737237809423157371406259115118677150609069342500367381983440143070144058167709650116572709414153958266545113495268138474247946892773534070303936200522856209993264535595965655372616859520810845441077146657451180393445234389102699321773811407443219659395190022147697833313567371094379296571126473910214155616055747528274233562851780130397925961722737507606949071673785750233537326067173074609549081533971837615838969916108603872523584300370854784242806899932182385838764642091265329835745991829133762231527353002862131297145566934217054716186129321251351806479720836056872543145621839852332856066123620405735944933116305688488349171532340398740591492184968071245114274424797763439010360741092406662736027564949634165443969310890057551479548621153474450948291199964430196041170905130172819393677987971617636274674961640990044874174489551449453539196846344649442344794773407145556737962245461834238781295555882615870199681205659764237455012068396010030425767436314472610746135388274079155404514331462329396345347716203021935047997835545344079910597675272685115637309905213050131759993409646124988399943663802482781046562244757662064723663401648826423617976137971308123891378976178134828596725963417824871152097681042758482911795760270697456598858356212635225501531996498225968307076516470611156880891076734116823585108542463132993769029409279008710368124995724204801361092034790257836838683816311826144554788942781009000132805441742485173154859589265324047427241707161103384220303582276678255213456641377151791179482818131932780532899804962072877643136816973415826981182370271761558780432988800122523311661037275426294461650846188412883422275838989283552567675498840588518838576827702842218634291903170799664314109092545070943485208540037384404926025279154728424494323611642315628425158793129053275687949269835126799469367384621979273719870644892070149338406353066738439663416505273333254515168896499184688889364347709018494592150122541560439203593306182662574000259888523119846800475453650342336367600276438455585045231210691198587735611807313841664935018133750620262800249526333518871707076218659764014856437568874292340251916564923770995221329994440464469189048762353229430355153409057205362924812012520515592066325500542671005202088032255113218685629005929738427330336011364915055549143298683431318949913953099679886536791867215072491135851271119953090752303668271470286287316385361696883951179014212351486140008224665845317429903812417608889033000365592316770889339843907669438489875798231996932038901777377785441941195593869277983034842750298816338895864451969655092377721853936446876688943896841035669532398403151830206279798139321203015982568178831563174555731446355371397899806554680257169562837441481679207193151735233445958582332667318389064821529007465262632866741264069963748927982583635368232240549418549103640832374441043107250574902433269225541825557996193707288235800492417219451422017171923794996531392243139683610919949797250140640454748452185104415002492897998887361909498119490624770990031717651766207371539847778405698053387653160449543939320535994229571681923275432680225591318850343430926230395965398962170668175143563226797933492053993212231408245292253454834082250368401929233182649339116702839952565353144683790781127358673565320248996509742539191914455478229382089944828924393952764488135167611299093071770374473613710891161879758910006624501795920922394454273844272151883214941266880010159844286281383483475406987968365818725891571912809241705835294149748088899728057379638933646384584995681116329117116574067606393152194461327400893264381849990536094283473368573230115213634051207858445840211839967708233096417844111024114208757286362457842555445410329951100891006449700274308713200793579894876877883795497340982924451955344819336677429332509297315689742855734001520756989505265034633671253315653722987134266355786788552788269108932467938347901545048906925613998276264075902476748006740306672672362263645332550408026626673363792746677199281298670988863544218524730289401827623283117158274850282460020201851219054020765887047546321672987131492448297546882643473006789683786144635006259408875815820600803523322955973053079768555275355661735812591485671561789816942747415662514901247349637639885349443826371944175363201942394581200692049680997812255347722826768967961419920271441865846998091729225625444132411151146576646952198304659612080802746114120082901045193831570819462674581695263859797411362338695928232646898663713956099421304013498392243607779702531819859594650418041865949889331634266711039801678185945663495640856245985383886300256169435309092328600337487074916193804176419898936462872021056041252429806342554036628085581648609260880406531422376625296999876325851344998465475631658860089025590576647750611364931687007514995525264421068874046348211802670394828923392003025112570675499630854860536922471323025205007495463399666487196826396557322456425596613224197902403693955158941293996496100263401033869896796754442778710109060571496880833061562030771445394033702840978086730885712566553542645440924852715612551915121092131171996791350643628840048710610386218022437007618387572699001751071571773470330680877261187274091817767428513304602614566688216702029580587668343369318582318120691819838656251820910753245479410578225375748135429097549868272740052067829932742609319740388497828628962410565748377508989188258444643957756205017718703013015768211238460411696823353470570017022802929918621525465109191545045566186474324721541985075000071259428599196064953093353674331681954563631686201879737579061907803966880142926260549116857851570381150419372220384959768463341050841491578941466375409125122617718691771860363591729810546740674013976137104971157533885244760010317125486251016074043904281475281490481612105687588248692647011918302343320263083529739274489413465446702167855708271329854316527801884111961896524915515377952874957393771391043958948130330806283237685572974942019093939692202924779139260684772684092661984227200937057154184794107880987029497337741049251107864699172896995303816333362226413151948036789620488734238491207754784091758960943519079160209865123493997501002133363161239035814741207691840871962766111926574615904465484890705194998118776157748440949081702077006426307431945728092602750605591324414402015694851428281575225102344326396372085446832096241174027663201986284122851148230144897037352423519063594885665821842444889951390675819965757766882887884240886885902470340430491288871830778282373287763042924842590514976827310136967241272722112856184224990024262973042876474345238990662324362992213706854191421929511652064649695495281261176306179147041265148488063653387986423216650851078936226701959449169975785116827957228898550538217762267585027238566882356002725302997899337342144837872843557244582070344456081673137648405400317397465328262775287999012451778003787040017826550447862286528338456667139098800193325271539768503396830185491551381141311562718703445652329406448814202028445043573961551387577737107433625401837240112848960913866960187700894096897911389297216132300666465429584058658792003184477637796478812541573795265902877025281126067498786981595918953975951378174503805277008357949686436759073646322794296594178818131651791248287402932227539051751652859328496984481964072318587401051237619893696341160054277467488087776581124238051454389680149896886296592809163362391563974587388527383763551765023731709371841990349876950687561307325985093646077008627181267962973235318238910402173151337679779039712360647039269965188707993167597693140512892992050538799034525947116615995172936819984479381170913482702157502469873610012910781013865881203488115734612927815830717080516904189830928306501906454543951257926966092231899696892974351537641477425335541320779243358425003516961548321110009687244245473419342494387952479690546255950204070488164481548957876096112098197109144854705434338090896881778921752840999270524064856913192090404097047475742317550832309676921754275380535658212491673412668968884813295546538640914692243181917411386818574615966644535494333036074876230293626544839307683195900477736010933025912696974763279322334481377689882660598507728991158664287715245520471154734352920976538374381040775388697994510661567790202638897969528144826047506512956574076904375732568731238934886947556630420199181418651569346602306760797530950692140989396450519505696821262858918396709104068578619308446047737788992752419117762610452471234247573923682851356194516427006869714148167502549906353379460732746535944610214850394365712464232164343203178260891056378163096088424293836249271028958315821936345416547840808533523597904756276404200758302875202043633287531217706943889440803646949392317208465388647133848375969678339866565636659470331153957902489851729653163071626457429517299339716957422400466477353485182846357720441561415169827305502551793704855323802244815661986239227843916949729043793570071061464334434282652638780078979484850746399984163924427781128178900438120213990675748489515771894334710610967736046992908539984105060412874946402319446359885919664621400443345873640950643555262299397487322024616001914468185463966468660230337048229671123938073094532969754275428320656951499617219291243755447770698456910187003017343812692804917342443987518870812991108713523692068704488726167624036183352555529722286719315984800112536106144447696378562796704527224513822251446004027689949843702917438793285937286501109552197106877171182121584231343237079690912943613780484457259078704145095506019152443728117416710156694100922304792259061527318682698497852595653250720989842639206529741252759571735941672399587481252723964469850506994985935870374008482152843888850543927776050600407052905873666093110401751023863111066486166818007106268209047016704627114670738079785010226283094568918296549962956386367833036714325394285537419461923008371832812733714443186336174222249451615599258684455205266806587924049403890395841284073748303497497414451724409635618470929560426454680445212692013941901221052904160200075863812796647221977888960883722478543976584426045906765803658056704919807518190715963320722922980176250534947800322354885629706268865403505105537814752751716329886730691006185007656603005733523104475645072633838738252072333322630249497342473701480560080065076882614391869792383699873942717518440466323846346341302889302000528248971137904517012172093935213590757671963389937236758318623930249592358202306440317795823259257007850217691123893557846863787496283091272579278511315914378677756610549349250202583281661504544614077745581223620856636864890050393889213984937884386175278304149217428624872466129363122946788033423504456528602387938074781673908037194808839802960936743347315868637651931723250769231867039038444077703458131922583742724899114095412858408881978693660736397469621582224580347925396822201287263567557571065175508135439934474754281982870391006466198842945284603605335753831731812933219431244263563765334595826839988334231973213727904286098958809221438796172292263611731608177392030337019283038051109692013342393057642036083036446508226747165954315119358418433281847511993156232121514535719107259680092953741176292058514819473457089060799045330152569074368557521227785751793414336174643850558105065098704249248597331582299599926912329583741180435129894194649622874914694675482341279458064822498883087216491656862787143033397305341526921584289379214924703315301799850829814892849155817296571615579594067334752986291650318916498817548296514858264016232879804997033797958954276230811710798353735934882990215861883592358564630730658670775282730575981288416204637337663154803759423724015951028507731904982878917268191710556860516697163435146607353910244560758130182117786210090980644195315593688189515110473214933291965648251749464110450463489602725637687116456502394526002542539273067165604848372495436018894671238856618785654143631490774133903682231178455707573398046221409662076291737487990341253101510818569810778121653380827695079031496360716196638130072718762596351775944279819460269344831405880586752023981172573829378769729646159408424255397494146976868203533878039754257585621517384756566273215613635233792050078092812281826811792204468870618500200589705213582530608751684828064879681330372910360533537524113615882970868737612314264018960565314476850455388566722756357683827302796523841606049690290087438407209280793787353318742010346308562617856829734299750394149423541562606752049159418030027071087292906107265591021154378075244706398659928537339998845113556079636901193076130192590099988331612171556338858725201259354622616840791581231107068383168232619590365612372912780154808195734693573797882069398721538022852002672617791057399191894961643204557569841831711112529407836398570375324502936848185544625806984860373279709535087276353937483482166722500021017733260904001995017503401330237418297133367782252866368118359679140054350803933555525861710691731267406140645073665351737796615532288745883558332599414410595144837067843905026262696454735721862665727231476671321763759792419358222233591867212434599210195782611399543086378039857149443596322306161731824163768030405766599890339917804866075629993147999747709383094425734476506869043581284287279115714229610196611597868934666766619273817104155891815696165749748434678460229265614977613544810698830793796245546323489295802463567174221215741162509310052392480593228413955166098508963751337409216856005080415096611244497749606605353799945778067413280191147929964177584883736321156004736341651812568137122936221595305089162803466340469221929990575826918762012272722819921867063193419869954879768707733365572915436060049602468955696538576759884507893892737263568664742094928425833282939170160999537084605133116895929893878495187304017686199258891280314214132217512252894733030188969396078900683756065403615191212869234652255570044493784354622855940644684056613639277717432523554211512191606078561551986975995544421811885476801724461143560691110228696843628663825352007405863258064372298319478581161798247444247070074130950394276366357724405784007285453888046309566543994410072606563441479624142208904114666922850691075339330020637816589730045718118163432453400395469165700546512498626176942788001347320070825303720569027153522232431666298251991389986868373782726823928680585431766486880418431711016146071722925019454846311717694763218209595445101112607342058216411510723472850620434224374128344523449525788844548781517526896815654646294732775737462119806955883009413339639181097146559731867122611929478743783561597467799640981073648175086081021468430163158101001012572006446338098046804437814513791328997492881671502067719438764337904250698354157860994410232969843070464943294387325126846834913334570824110225252036776060185819870502820447166217731411567656064562847063393829411285787885991560951820000508886805561029730858180282097054694904424031499932608671245348316680593968407460698421898177803153276777657171705536470347053891626955723066545011709050048270675634877452037832862578335612746176325186617861871257100385459160217528814742508433438303604611340146540603897849830435969866804367962152859814545398257810925770912087889128891287516823287944031190631644979378104298019798558070591537559054143013611237398122945215074924235340549808158764873524636086607756069808315037003652805871182017568044600989617077013236956434565608134834904599933379033133389838643791633859359554589129865055933322518050420160807220461064358635334028818415683788743630358967345730743427045461680821406902382817327300758351033316611252380667252711676882402384778986763010658144345102498682023933762874940037759004066562576132758241826015818675473367047918680826777189798393412107301381548402493008180652503154556777198711359060265218469568407364033256759592029194299289351993719967484357832186809330280897971575541371435199432538199738604768055558463119061455024119475164685565429580235406437359299109142009028929218599629228347536972233449261818946519442350820351454359439711329790378282879214730443376516659641445641656525685966449455953834572090571816250281102455876458443293603155715266132762124494855183656514639732162311924994086733230296006883473677991951127978507830217764298631665760297947372531872097725623756294174538039395890938542576581691074543312336797811884480728105396534175441343613287125137669815628076400860169103250607951042308599104514181396318706508222466866277292687905083716471611690866934457501556811734964430224239775130828021440138301831899515163283624661724010045636522158105709209648403813398533408557413459409827319493715000447675217643322175660701531703844275635911170512469288074659620596639520268715789265351653157642869160562136750259843810473803767779691315432200476448417164626796118678897274414241819828676353769845621056593903372937175096088327926018957578008710659702651234352055800847564147741291562748633035513861415371760556527122530284408129989262149556232081860527407517262294161790496285477846578514746359401366177424320614533731237191880043300394362344703649444289430194885982072010160287275231327934348483286449413870100646390650896790537131854744788605334276880775432775011787674897708769571161477326184211589460801499205525823772431582756632231685296585110577577822128104637213351915966312981204278853618596676556102509472185795160208437790555373575023518724036375681827149711013471983980782981692098887476303572656702632528025338222065431799912530381213256963654472996060017686696986734913318806114826241340389051147439144583932624951969353129664904838806799391619003583394477952887862321109096824629231062580598693964208669601780148350625875475526269122656366778468814172465885648532433329780786979562897960896296373523131988039367279416567101107693787156232541861313910708187550880928230356889433979051044695215744018039654680717543440075876619094517579161008844700287717092668518259837139843709926359956350828497864140427015811648297375439318617852751234200038164119200280068329323179102426540959529512916357667320353327977170853410280297937217301149460900258520824808537427124997676046097519081716209057783637653137484173282172468647967920165347941710414511803995759825828726964864547503385716711265690825358562805727541665324597947380392962402156062743017480601544612592960534103025442082676160141962416702809195278282880898631946706365581515458580869778516824323402529503230110683726167986051864783008748209718775369857984041147056244227145973699464521336440905110131141701651931198821832472707361800078577321164500663340013036695868525061400224105874085541912081085691363190422118787490615783337944348567781890505765386627121393073909141694320494424217299485790895436392181047901135394916570341344412348860040887270940589729199432046674090916475630817322906566037998301270715927400650526044031528983235114432091830128072673795906678052185643573547085380540989027959947406415903733201205108366730943036147876680220580360029542722976252548052672671498837968270499718628989356892626518877661184919805274514593488957606805144034916169464230691470517470517600160485881454742914812156334393096787306882498840575930303377941951369361021810863107154718305699722853552017965151424640909874656621337490317459227757767430208323627716610447678081904534087303749926814964879905274045681892700005575525929069593150459480345762306117504435427022580765767771154524371805681756812989500825446926264851896213495175176181256617986106237865329200992391598559383902285851701046883479011075762716675995773832645751179542903574004088447023096729887505355586281141616514380986903739256147227126667080991441982527247898941411004756734860801263361425425930154010868465563379191838724850236330285457468430094019378336058354985243605603728243386053972102579437860643527658435899450010655021699521229956196640796231519692636660510467702734710505211881904559955839114983048576194208659162593248295502857473590590572610702260269627530686313459535869867987290411987641611566978612467530104418142000863367854383104545980975063100117513781126284574529434443713973963667463418639606978576362840170229875268288026659157740418156747307432640056976754129954885063989086911899827327452564746563676308106235804789402734050203855133859266927513655452654173394460704331185203002904815946014879302067504233212046625260583713213125162381401887104963460441282013359702880660249019655496713061491791298525911630383415934811168611728275925726926450271513598182275513164080834308669253206225102858872272884385553595187118167963929046926101346860978137276916361025920108893145745177236023059092140220918829588786670074774075023863250798329963608391725622367322959498781990001337885328583125556155207852527382496366046825441646612216689203505187509019793429372110126504990591322321493896396052124334977814732712809554509750476951458013001741869553333465211624633421230903749488281494120965839285459761629660112867097942190004587166214036641293296995393345084210584422155418932389664155310190172021238690798970708912608005234970674908705067972296249762348752781858029481013371725170838486617733454511938202830274037438945937379078184322568546263479951222655425329603497003716122779420874466429778381865744187240979392219367051873842596210061347275334052448797359895681154903699778070917734509668528523940388038489523847445652900973478824660758598490693251274018332798598329363313663301771258678039945282453554556871612629868214757331976062923827345526850223531255962174221523231418041706604305344699449035528877439833289916930055187323543637681569634970130561346693535056753026223025732246738234452595523900705740649610015275461600328949628242041982915367270262149041735879068184081211033197172118710702194127011018626893238154079876284021980436191866616849754080239398048352847809359899179006363291930138193923180875927741653564134097054010311523241269350769715570262951244036198439228377956860761563428515053322335287801220982542884594384977984909916440062361083628312443529941262447430989246211851348082064331554550816956013773867567192073421163467140680697487826560690405447589529577957811251107347349775340921605683091518430038966586127875471417770043502990496577582194101468827327063278736013943829708899334482771554985265708815234009498772198415573900668873169457331688093859191626834189067617158536135958386571442492629554388010961972823001823176987117722278740989742466398335385238735100496831647165779004702582306557260664115372078789074545143176347777359734187885630270332942394105883348109630337422710083232524169090898527569803487105601621897890882049855309317556655576619504127777574874325782497067620660610636174771270436613116332856958154725444652581043629469383614482407047772363051232105545143994754910466822162711134561396255214254744557937710091150139870014431436926875498462846198414886438709794831466944292074152544326686787992116470798347954793407770615002589210890144306599980397008171260408170584940460662347171861881250644667694585640491761422291448629434122769967678359130737834963184231732584498368179859583468592137494290275341919068417696317188475496529085688244417045360948236964662319128049511280099551675247433350279815466897196412081571655921216700776644535871083926537138942231413253280959659654539534306338479775333541673967751925277994784784348851166799046797129384678976076639025142594552573361994797887978853869750274287129819961340519192746528953551068264617593392722515766294362224226137355052399350991376130149149039122427605389155650283932282369518585790359985308334949129057723787320901186399405732712290587698155218498648545954585614616693677310637029555939452746794283323791292574833395751105019502151809258605235340359887298381425110011976248777927733231465348583131463576821241775448810957293696341991118353653177946944889693886781862370768941018263779754748995551074468743395102403736548631052866096573708161295752557966997984236318881644342911141715240441006733335856057361313961989810600076929606608153741067951910443033192210738183539602015731813969949352037515364668680379070921245633630663434980789266454799038035504107186451908555409301764313889524006514575464527323834076204619344919423173432101394026932248802841594117002491752578782413074719015546018475537262247808016283458545442658291692077612738152474410930359154055295055112080747869879242740392949434479605262592394396287227282656764415328573103611693282910808329918202449147166125529371656374790640178210110632968595534468348473196436155429299751692586066673009264289894527062506701108841349357281464708720850758772361986099238209026366355654827740257711718792068297455645959551226349975403534136803994120187085600656295712541686114169692464101738995481209240061855338857447552644236434698491711050502651739517682748438214785462538612893251127040642610847742729763263719881089147515945981338637217294004471897533325388115465226964267585330866712924127491415729808716901161823752521806136112491398212724541379682064060763718693194445431880369858666799114468282896817880139256434750690594512761450921997923517646225769541972693231487763781691375676459743008200137136405962112953418772212392460765120669850578037491607628470244671408071883550009245337478258123651774902686729070426223935616873201856884262693869144545529464889830973237195643106164517278401602890606251557795231139629434202175900027432972540202032448252208409757026328374996855718671152499705593946391488824731787032466907896028262441465301426822150262179578940191845337966607794896822075021815284881964688823755768080053619644683617275894528019509323121927674856782965010767346157255741751835733022331325702646973407723969497592416833827450040413539780514899800524390883197073274942935493366007613039309209301748269562728428194019253526114405283258792630802032732422223239037904670849198809466363666787598915475852991987281382524545901090469977995636102086411433509315988218203853073799637967300231228437023746281483267457089166630374429931110575936434355685512359123877744658058264522167296621712836228961024394930771018362277780065869372291918679615502637457992782190707988988094076106776419778585158088440924432294751204820605553031655038411842404429055128719545935498151558072618068197579695145993725305201143603853915757599226398444179482727690903941638098929271398018164760074720044663011956518366313740508972142753073019377830241675350521203916949257218462529690459687004902976725137522468348423311751516570897007963754350887646510065137282444910180678135938795364969014207644673535120126938810756749707537829705157453421799467779524030181165696893615998258418612520007459852286078067445218828292964940209508265561510794194124776357761149019888969900569616823534951995884399945205678611328115349169986233015759260436101168477991604878911360707621570414114939987573208438146394024959531726316103098997872419747197660430292869619974515818195528475570627018760128204299666351669050713325592622910015031498706694543646200298244381411961373231458945603588755387445251398566946949912418558441488751774083594130861489093664144142087482173877275072498459701406511148083136332190807716561073785992301690303475695802315000331462515916133220241835252677782798844680645031998095173744965991139234644735936808147306105170486154367807825729956293789928873507807617915337010854698012932222608114183144327347482641934014062888644453728455587446029156132278846765696008755227538737324787062012433571512326457688126575091093940480654238863590046998382830889529988496114558944807152325383471617303635828627789615768086516523022257537983593152563165938060376933670125213958111186990741709872055569524086608183342728449465525721136635310511822263665516906480930396305845456424804945604204291935115125908007984409825727180229760137494580751021227770201671406728693199282029735242408389968667018603518606764392369899550311541354768969120680039708790930900891361105779925192767849913977373515097400323741701138560840979464275676171086474205633203867344993771001273345582843696833317787560300460730442862512342856040671053767314166126434437386589049066626936543258560435613254767359903515378041549127801422947777109630250714137468814002830023527826492094825582885812139970356849454377133839110394350216006083230898916770582567094197346859993240882899435734584792765978675205949803760389957810886854082842489615717449622153387089729691730192796211152753223408689941206333588512555795814109367877188618374949873541190781955925992670706167025894894950326421199097808358896596356600414243012462249260594381981387118520267037582297742835782176768847576483856323288709972308691773266892703057062132383046166681728235461753738575527211045718736920873790181112165545915333228100211406073175614562345488650733803604811167206356364014459574789030635104322300672701325406855950268470199284230819230839493177714747538121846532447294948181316843973343187756081716000250427715137201357845285331280110074893335125943081377688088296772121614256203132881611738408346714987245587619716412734256258978346817584873120945253591980343265978164721693365427196095814823353552547426136639698677464292817632503730510514254956830657460704633411528833814210938041835988104106326649131239859401713321647937163842398699494828865970698072642301236540421614790514483879559517135356568047396511877245475816532453284854139378492730519549198544155757450786917186416465714924679563819852702753666381085649170409088890550565026325444818440671487768275087329752314059467469109975729179397854904122431338058895371497610974009687995431240903404092515452883958201872890209593289847958034015956552918849964342276684166233007057837923555981249709676253757363262407830331684501840421219877141492747491043978462835592011532282842921138350548423304401439557780156739610592397794869230395428342793256769556016789871586361416479101500270034486587390364726420216962552413806014208509479578264787403611913801540607548624461782984644998933661315178106679348793662447694482681263049018902420914150829718429804078192370851662851431241163258845823335120833424705176916936604711410121204017539918819511631942125636642632083927379935631233368707222945500136693259568059619521088184717360096061568368830057461344649769494700970134744597188303500750574322429803241067249834822129932044204982610584212476877734399472433710842075159950649011051003446345101377875015940539354572592267182697516332329334477874422101550072395862949948115378233695501801344739563948856639906189202471160579509881533472170664717412245004293298790757175138899871216263251057607551991969119599591719164205690625201895677328725224158196396118842412185608906959374554438099103979669326710316187755705566871375946204836560626598431675197968704250147367700161419613883737652213484927909846425042002453592240258321885735499478893692681579151454022039467388350921783129611567491922742404918566099092191308543665557455375567664473084023734963029103098035310699987099159795161695653107968585874277259446160619037040602531159063480946737321372307227687522758060167759077326265360071061837218200608001388037819060785542144534080743927076445468657366275499111903502990653017998921676289823420667709178351164351806188033047558343549307795133094919655319992016673129248023905088345369731175985444952922696402307523867596221881203725419491659555435558168896558418593540479358204881317947735753602368929043571603685790552607418417917899589638965139303685598090935873067451898220050093122864271787279773877798780913888966126128513894550559510623327677813687444662396212725963942252393706351315267434654072221057490442584901042742335176830593831712441741899652337370050398782943714708897954339919043251077591733605944967736451977663267106633330614847732545704508460899023275135386261630561462910927775575851209376566905553192709268433998609561785546725644341295409631677531326775847797479978142528092589090253698056087372554612381315417931770000993174621942127482208560859995144635472300901430144202253008937140956770460263803057461424822324259442201685625110985608924872566723598395575222374079754907361574467769638168200434739428431248968428938838931170953400666002092415814794640980645337942538869127590421429056383049280830398943554571620041574102585071142154794524740285621348358459682427260666937932954142146706666198170363469854059348189724085932519866941333094176900526432599281758385207365137752709866356172209843567225193660104456212458297764601942570941249487393916988593676550386116282008414737474732818799046854834113092137586728191494212999742741172901486352806012898652017218731070709839591237863682091195734901127148352968301157643960760565509596611909300388410197901299773851884677694060396016290198106909486528899394198809465457845869954661626298886349533524682104760061318067807845876943232327792999386837561579305171246590413487337888662839477965740310598781991277427379577628213732766655517789276214637450541581156014557411434597519270413456154394961488531452536715583772399284716796443472161265376306552598979723873287126936763538068024543241868213616553030905448591554130066524928897851626852986459422839529799667079825536984780109800186864291224107834036428563065451481504946562237320580652836285792614514223626597631170952606778346845662763558026985843569355161169988279441584032856354824762612097616116012095568239018191225686986989050439055250356623101698012129737579235363033963795710315694189488677762579114080332173567705523266230767870500242964301743805810288875510811745372285797779688576982321978525503140161130585570230760166152757488371773325376568099190415339552366637535842149009890966859054752219965485575808529928423186097165996316019983661868253433683174062305054319239955168603055639947790398477486061237553631660402767771713550580041387773598538930582850613629815188148895006499091426550517328314337217784112356729079210269631253433431727478081396882200092714019242176611587455706048007756521391410774716798930197187060340799223205589621543723907753963045430884980181383681450784240370765901472819152178504506674596664720636653715492867440506005356948951713601789911493499765200329893827781320105575765994292523875319270898577512020504272334678760869830012837841879280490913002667294677682305873507247738115426058140380227645260882448001943998957988880770216255965471379843089101248793458840314767924409847308676562735991008781965945746835866951320971507998763949995803404248341447467123671951579779292382155084304331476686669022295930267393605119416467008259107596824209829007451329917425768506004610832505731619233521263827605310564015421299062522779849453872307361885326954966500662241181372013602831424627448029323024926917884593476365057834733279046597690045020783700407963625109812799200629011654634939164526389331199232460509921373554844234581876175442056794020066045871346080048684005404758444142142936975342603179453412983153823976975136838825058748059993675585344211080500221605881168145940984852877071986590486487012630434624428882872593971591274732843838454930468712037285432651527444513520421605066332039576152361156571789080576596319620732295538355407975849783718679816725226457366670820614464870604941987263115376809343857540316837922189268290676403726811915639539745606773130073561913464969536991725682447721459627869258887107763390633319680344011203888954959010515795976209013424811594961974087707276161775893725601704591613109323004360400550727051085772092140349726509883497364618396979965371231969107886348220405166085769290569478931709813476679988484382632987212947347025881757874865396294267170806382693257242206799529978244656155135563718240902868830200196679904910733011813119787009800593857496084480526104765241960975327857408606754153164861155405935143947774005299567477792106367246798728806048655826843630697486043682452765758250628444842981037544421395812152782111110845892079321170292490580703226683117466110213506328419408720161966022666330299388596837995379849489806734854097025338362758238262136414104375988253275969522578305790230873808102175739569557919028894699486636413427357768284548829663937557591536529654510018427930633617033254264224957419579850218469923449841456630976164854043547569059969091060650439676996908303442644077297680908623164922558979975334233678816663603882782040544951962094778323221184454568595450142941564927714170562030429693662166527787280536637127784282954437530805878010696406927056934076604325272079580172068032292121349788719751556707142736487491330274572934131783529142990409251704027705958826266561384682696193097704023699819894006852643850252650355961355117692585694902619475325809757731399938967651608013263150020533889253249939051922953148748155878187573597258639460986575864998782236594686771733444078479807903397883945040375661147467503391304815121387697950755333853182731413925347245105593464597246059427849156161163617143431531194345774415498184911714785483397372287209296149652348333049872279464882622046690194591256835360123233819003239997838960949190213665622496504122608797093803987636184350975573440206274173223701348722107896794988510427103553290448929678609529657735894058432755902661072781672424235608892433306912816118887917155821023456468535007156796697184022860678306342584558501431982955840004367408639574646406388457030310252618656222341661499130739894716386961309929190735810676160039263672858491239291633495535615181345721561846963115294524974307431711793748793768275980591598717850664503434828495542256166580193750946901180465123824424509523506484883435382785458419725985134440292836987847039709815059530034457882451954546831844546591551558983528665231232491528836565654202032696585556024757945251250048608126475007612008214350076358751067723658326707043904923337400308247357458301596188686758874593992364106304301078871778300542616441419431842530384697769239908561121607736197164111073763104838874343372583865040809672093009121748683205744743643331414811600321284005747826507099422579147699026747424589861975955469765286073551933712594316497824642916000285522867243704984508450074056354794548172304028645462460675447837377077755826619249622149024142146612208679590257295640010939360628634989103713053711086378588060166304793315264501618886413264022602361195609711870167222573527912692062068683012709605575251091610558068941605932904504206723381260148021107500248301628781028715397987021635320537904558980458624442358533919177210258752357392479358789873565771569571965568515777109559724659634138842676468572474563852299532546599192076425971942035975993052488976738741650633037653587482386073944178054244429897668076034373746398767477837436575904771260618563709198425121060005720350579960064655531397235360193838090810097655595198227385323680651849008986148046032498151072436187227295050847692407108027152716848483572866380264026576051452014415924553975138698031690937114676888609488389635866071089171302646250598350672901560866222228028455095702528886865698818378666232252740102995582555625597095336779961893416351734930211798011850103793362178595517059709050587781794642781719366327945173644219782822244336449420004941372312539260984699386587961639692618722692389532732507977883390761148020641185583558046130325266755273690396851869271292314905297334820718386795878509067350601348571232843452019045750489106379591066686353981810384898303555843979536205554080916487754806371538829737954861058974816785123008179664349851533661656792591228135047884528254858949116591971123437414148681672221952241546973500185905775212166076764792205725308207425472864753068355691216482985539028371025407360982439503031991143028866034458248985631436301838060548941098834018476046099898491933429926230832520761744172931524761583759288117201532915150732887447190749328164924131983535907430917080865098065361030922331667079785491486676034401510324740756494573058254925027734367765804484498250544776542968776522074364924811122728121391582349448700551801223345774764155566142341089975131377501649851273911379516511248884252968326956077499164637844424653302775477904542068378119769454912015336200950813636188965303225532349248959852341387622466733412058900223834172459405737258458585365533136466942396438595672301372933234948069915253464105225976442314896786787584174618902425700103750636444395564608640376633025340069757792037833301827736108021038471647686760948285949525212979696935682830475577998110326840638200244657471818737451737976870678698999698835130586403840678866105816188618646933556262813714561861077375561015065994190255733334866579673891334337322487712877042268323493693182897849961264542102371509825593308052617158305840322678959806411610031840744955633902716579417845109023907376471267280702222266979250337972463037048245308442628007754262492225056298083503159606966007265094188969043937209742903658511775328853551758737021953889521879010721260688399518600445490310216703372267438561936667504010602915824925348152481671631180806456736378749361234062259675567384071679498374715905311807441094778943692461421799257261950431522142180126065746329977148632377133219701186252303489807472394340109566372352975952466474318834730310787571726559704915169342747135500832206356963550083100806425850126550308488924313433864834253705034402494010326763269011071224382923513173262911220775708319769522839630761861418094213727442196396586037986341666699200403453529013614393821656011834003772082518408331612791670439460270264106341157569316347577452761411444176942454629371793892867759190575205056390382372097540618147417454679821556091462690159968342485278817811642417152901766242355630411926656881969105058112718849652461525484143239144118670179070339531491758070265027065974987131607270832119526164557683455110026201723063983370553840388369296195855947983785626038780199127693369257004746347495983481294896904816411041956445800480426015220363973972720969283882841303922271874919298320400829909096803725616178306288889756919583938534424266430704440719657047573619260905893981619282544561889953851378438075780882035013998817401341292462482184640592767726777968622516931364663558950828540878199053068844435453290251696778891175812321787839487071453310565861993051990885229847074407897200732223779545028092952307176481714824055941830803419604393929375043610564091957811840459231224893839322096428924910658137553101300111480739950622485474328375055094839187061131677545450858978974250654364141299400934709508443989877737074117707782050978344282640958298021391325373000744341744662852393222036965126777326439664951735412763649530366098668283938225583743229407405439208010538731590566080266473311017753436944719101656512284731236958369743369885160694230515508118194824431731103150184430817877222521639422435082464330701881619294892339667133244039566103768698685803000006063817257738170933335385611131789373960120381844802256251223748161990251649105224675721000012251078778785677473264196387268522260050649831675977080681625705161086656995441990352634479442825589014666612509449556897021488842437308903368107128902528402567847367316659745562283357000335113764081442309141921169001944714507058289529404728209933739019619766879700543829532992701384520482722617442060363631191382181739876289495592848278932987652525348585005520293420716111307006570338400634036281954071617545785199674702245968173952421675320992645929067170980299487756576190057663173080631444000382595169571196257991081248003695175110947266480747502522675735620687092563741036787769153131133147794784228101441565239053031346066271405252855232264657510161600245228562013418687766225576362526080765981604351099270618436534156175811773048359560052632539163069554159878332685425855197380694491830262884844545722508819890149352451018727775089167550041494172344999172981079618833971383088924017241595967188274699966201815922514512457153224627692994815874187852091161451625546633050017019009136889362256212050492879619006758636198114362030603866557918137631305405363532210203153728690154476209534855904111358902708481962568335071990479787020738922891745331376211213862693727633403075377110035774815359836394253205041404601732529217173684942473284056668038597423724870945957550185527654612301244817204026457557774181098624666420230902076850242541315470125878433526245791428477781728835391988197163780023133879558465335436191940840583318425518811562931648236068586183569591998459955720822557117065087658965461473365602910944496921979711489307733509620833750467972285270666281802437782995983530365536663272118424102569983332940510192671618516882619369346370350421862619054510378175935528110741260564789148554592736210828183751926838371414018762150849133729279218565607619262637754350545304008843644233559415093683010688272379815316552820380663673979099385806072637710245002455575998846331375224927065641661703815392771673834572338307389518378903031065806854471940981346027260219489385656015802510212037910696991830359954069121461575694869620748079720204277210601760574331109868734396504842719571458702958983344104906764538444023695972528302213061710909415940295554690950979348094505874979038944527718925256540574181081480798356039615610249733412491823547946716779621418733599401229761367423585636113601382728415485684646520034567482354489208945233297036651085901192674663777669184448252059020972565282847681295844726766906611147674355589626836307624158565515164922267797033671665036074855055578908007954569573960378848671674176914276593926007498009704553716261072580609722593348332406770378561714356154549671099227623641908359128047389705354870890731253534022205460382252399899612527363283531469530129033232777378221433240331097725250634626950194931180387843382682008231528945400537773021586912031007619918899471722999011052038928172706929607605227192286807249456015131217254235205155541833728080986351735205383834663301304744342563578334751869640849303265331636371923837504801439776299627731745163725055551618994976997006663234826659308825046423578011015163315510282447850325006128188471639520165048824027873933206083949204367302880344357161626579676614767584883852787314782414172912587251109083679687327776383216738865400501334456683451350267009184190497572238809541543127561399307884493817792848197109419555723232265374874093186896537810440604037457824647698706125270194979790223282623480828960443509802845141977998367453133052380995811310968269975151297133651878563254135000631774137191681036951251033684320997865202811540008799620213524188457677443601372431748816411877417191344968613178588322642987362533451181076765861685846888344756168353386894204466564049225823881898810391429472502741882024903745655087494485093668573463973763103442913287815613852455964803415259510892607677303418003780738344586025917722498896628816507640564211488650170519797779920818642619050740499975778379497663721115207800865803926655727137704776073896436396038180258759499052096658072959370059088871971749398350588935265742431166106399724200782334035727903381282853961274473095704160494998190108115974680381861792652476685111012322049893830177544328413812812344750955866588944982949223298114414773735028757213618082967595480021069410361857182340553805821881743918946246399713616601051780143612986966217035905690367598166810571422976183057364871257300594205921137607612109162350375174363525856545067462375968623037253504195867637000323825365217119736749400828182672094704935955018872749223207262737128153337001884561050015086963153872367391250118786036476600731939962254353891832757452287020894658295775260150790582539932108668856248482655670895947085749349430134640079021314061401290827478111738577094770941292880902343072180382160956403750193798958012458871192965599761116056591789384087089382567932705220979632366865664715512676269725282078518652119241529609933386804188558135956603603874934415557607961789079136856863224014501927586601148197827703294139502767072719940848833589466928086954871917231151148814779055149858527383696386169714010975827554078302396454041095330815292558757671481520489474717519201112143792058370242202843393885184044655242908469665965637753680640120992207788231031951370143356724212874223634254052644468021418829154861220015366007555530179279578048489977480112595349156063460945730761932092620035741784799333836374267750729809175395785488937337608576980034506798534363908960997409344204419890403900759504669591462275336108221055894991630242005229373369271265838043137026427455176420206946935836621301151709686191189177284113234589690456008200357723993744494457962563236720992050363641121529611460024121394458356490733514096272708708947450583976348858583474103281562053643370918676532975541388174517703152777247600423905407474149910187867792518507710614242490361802975917141030396519782927303604512531023649662267662704899452722262514826937040045946949742044146879715402550174882881754977148041600194491898389672972870640453849963803256594629681672098809160339337129998578001768331053790362512530278488141347589639539477460625891291260348460412402691672248315769639920593427615940996216432148925049559272896973037775806819636364461376806730384913939674997821250982146189224153446365604641839548781530562440170936859806621236761239998695112336242718782152792537828722864742276520866311143022526039692469602338788692137355219476299332402827593344238966266485152490482915817345506164121455184432674820281369241614408279748666876461897939808038056628385525268630605081540706136980683369196142840033865175176735593840738735156626073273900516962614473274608402319391581343495975919232223996084372303738292206208048752655308952487509866172061657418917877069745878383388465896157470190839295296581994886832566107061514954739847377515454049395465044510802782537671335786843966738787196674377557698170160865780145233145060307018842113008200430448282061621951720244668313528947300250303195806253612304818284628827003179724776723374711250139018594163575491153164621954968885015948533152486097731037505883952176904215477497938856375143775120964421872636467734485779314003802681824923484840089738030541817867896855491932323777850378356305184424650299159164794832837236378801500243012633394186655045235786531455877800350256384377613328413225151858617120946719851288410755478837194087082019383399092777308015333541869262013882577062542600533352173849657501412492255066865275589112940205803520063377056162825001785426110422431254656332133395554270513219805482647438531753061019730693817489486726067419816685690409909971336480790819741888665038239686746206903468426009561429724801420074246811657662238009755790250578167998351533938271240376470186501401612021489683260107528790119561511189392794786358640556613381449562382758682914921137565529984491594270126564245658029607084810862202498410653996388732222962873297064466834463790772646718110127951325502559595171349202148163233390817377443294782833255542915146235159773386398018772614012187035605633804048434038641318145379877083749935832405753588195060992276955868673987546098594192710614470323002464787713922351492030004428034712068032026656798548396632978421090897277955875422518121440533099553527388729063574684996278478439101120851268551226800769598920764503986548126687634901658983106974814235477650912421880419531394083008046640489191911140618279915456865344498580372567968801564332356771293089383754668722197705021793724397200789637819170288662738379464167328612744100610599563175510044216487379775363397053898201596488258947702960478380127478194116296933039748966973216013657996720077203706683128206510180925054958009893029016996280893851074848530676563188715478210947948675019530543356857366523670286541957930972982954552693412393360309742570488307130427241193015145788215132176036357506261345014095823844542664999511033592646630509409821016562578153972572556983705431235145044307285557778238683088867538612947110420451932177401078170433216380888949199734006269558852907929722755676871848810079384776976922293938353048137111336086849185558387664131189396675792937747720103655069838188960885439211367947582231042668315186386164637484663695908535905911634913695289132873650090300183955752626673843671603533542286272212423465588811643650577053470663064148291727350775996317264748235899604347053460448923036923391991540851872913522726607452527157663663347994005595628565589569805744110435189267891364089936513238518390237705344332527665905233765092467678923175378786574233694480198435515793320206612612680773571105899196404657515018966746630048774716884308807156138418521733728964044528814779761614405712355749355295926804457555889379604844081849195165098161928579021169730282812526621642858791302735463053037273166986627672545216388829871715177381369685829581952472210443279000179152743045649215086960061698769235346636587428871121249428452161159590146336208541923818218025047199723715852588135554776034159566116895717202295939906194365958950498245818094524907194007448302161696699866168549195800162259349462891566697718004485280512553049661926761465389612770825044848555315430667274777692981461318798007107628230729254415932918911018751381179878492486153991512864357610763759078313120783522472215014450704688623330158817689190037690258113275934712624627969576071564058712150733042618830520993715097341259460975073273547916336450330877582311994853383288547063692031157558009108802125168109031806971431149160803195321333729887349403466040707555335667930001461798920948099598168317934114311226585857526678108948929567859191963027801252590688171817954537935725973938954400166385548920076271051160481534000212126415697616607580424815863227599031159849963959996514775518075233579962681114631405945599216813134146875043469670585828041378809781138150612599689709491819157336182551225193996677542918999042965386539155598541151913278559180194918161822930360120632907844519476309229824586327637435467390923643375390028799913681413667372402828262910432545379936037508874240194253946345085373842563992239456367840456692800921746617727579395649304489493549291861663579655416489491070521959597876972913511790782549986681708085114678596571091300283575408154325510624952280828935636609869812827974582906791414803591731183142223125305013938474866683887944757248835283416078915451859001813594168462505487887195875339294732955731775896897912947442109959747373878296417958398227205334316950102289958633935285294072231365638591958955417942892149434782220083121186766892475603593663634712494156527329258702149481179636361095011673501090459858783891041224085799534336114400515684472892743491134750574782582090257453893210797419971276864268700992646343726645390726777026137638128123310853013682685439558816200779504333391891818321359288548187624935657071778763950174073504597997445861792395996090277739452679177231411452313199672438105979191088185955414229265433888064404774553705252127458409808059911455947311764117119296015590083025257110341689925382681921480716824474058352549271905731120797648860108454240889205233635211754633752081328853219046375626727045927104209920335054078684852842983598387032878608517866554910149525772233247256447032454673088056854102229493925219590769052295665688642668678380788837321511841367770775806763750705360049570099148608639079804271036539975521514122798681643850385294692937728741899736559402375495124839717330621162040032923088760574578270791173044647897105378108768024062344273704479192627552064162398442492400378947977491837046352292259465043112684376752192913462711925663980992300343350257244373891985341940137939916748970124175287965018887798967395224433784443043645781641477373457246710803563246966724481501428612791471394324095430994458623502969934097290420893347164580780274114340207511329466374429122184577690067223554235872659450736839714419564843054748298852606502332501169982331783415234777053654248245962516508546811094609932928100771781814851039064923555936122851681449289091642054000874615135113740805575842235194684748651368804988224922712802755893989818746205656853509270958325799013040199599731221557420350642615248157867665617733230190144317454278516605730326764390698628146415409133080253358112871559542276424756637089583253345242671441633698097759710695137123583557888328617656696918112577928244143181512464243636550965700969583816552855759708291612260543806831517723000841670496283379694941570644836494405479409708139583042600717238845826762665632974723308150201407734891707520443084253598558838987728267190038310298288554919878298288451438330229030518309622139719375205353764540767997357740461319440979220239429330193930614707800106820333014163414395706747467729835630903818061057947319140436473277601686176843849037807563460868433148582836866290653686360144411906219873507043822392017830029319377732760554237361653589746953631396643654556886057049732599862223663414139625461595316549495711479512996533255463485778835007855139854815483453322687210945484156102888136381216626299582526734010638553495348540168679695600842572314709140492849190281340141701397602620310237283130302735324171535725791635067057969810160565358099430417807456431465824305270437573591439473863946361597511475164544915542972405998567326962864890713273591483037143632105459087783883181372007191327784234728976793459654660527668999708394237687171563947224745711357193762796910831772071130851015344581782247752645018248282980531405038099487728261538737972907274450800676046249971262541118715438578486481976595449862600559995961939739711068837469887579434383055164390567028452334860155373206878196119972331149649186013101486636207417014493830569117857605048415585662309003818038535667972985168582386744718011611672355699416938039107580185266791831495175725706821211942648024593559216053964345836618183850091873345913019771509795375995460963122804748676727802969803452363858981780545314984737294367993840500687783419117419278132297689931063136664562525305822697805819889347596595093554303795926803668903521640082313158346691969820126694925303553634661015445282401885068403668412945513970594732044777260235095747489391251465955751174632185751974003756812593368198353598654348789461441206780065079159304252703880355131765936132167628661219073209465976228103074781346043024663201879979299332116509132204723214452573367036997678558242734892165475249411625965321703229463719264829267767406088106453217087482440468292175093642617072120191352715454467167810886258471988476157317903752721623303258085416474945704831091367424315810390948702105001748712496697666548142731648295431880152752602138007815735975885333775131974756863051792968121872547788796367220856764460985974315257962053095270104394060049545046409933933536368645372002235459391154474230436198408004902429155501870181425836387655136677914331762656377431485142921093501790613759237280023615929897169241164038385683677609166169542327070802032682248712895366995619522873836775365723045613768837038008602675953464218952013548166511760880467667378978949915229709234587330432339482563169355452057738153686881653993083911040945541260702102666736654382486143372238195361027698877621163468306581361161835962679175719912334150187541763916946879175936898153943233117081446084772819781854458898280067932697947110686470384392331625188504182412652103950753402644597150872321168210403305682152144189936108418410433426981958492368613194406185919026138595776250458386415375981747750438964360355968783287554506254878884450413368368683806594934193317645748113790668791337514943068583645286760943649554457404995486474651147955861223728145312077985454775187854931847979644343995379214425182659785738714530710173020468414386830831329882464863514310712742149495615774983070463224772979156413121005323620596751394838142942434800906417910752479227774592201599896946253545958579144200738550085508061182321110029739005477238159539865030173661204371792485814337876502672787443575149880288174915192737373792090146927139339265258600469025725019754921830611519104138839115609545418866521567715801891092437180464186679585811290591315964684753856131361423415133946186367578701987924720992835498270771762251436714117956043383447935994029053817393697768817477719688492157015113652995936934661052392357079932484157402891148915904100227420379738406490306486367246935758432627659432846375221526403491337014903219177135683921506254928475751943486427689830649326449756455491904169122670010577984143884592123672404794194730833799536918194131863610511871972070097956194222451937221650078279011477955029875153786247819409854520500391395333205743109926745670682045627726152586370041674301048796681509268554563589286543935857082018641406637094651492037641783509311787245951101826639077013735760182941222803533298905331818456483914789279422529248240873690348697098895638937528135295820031073066780490369671816823133196453668292469460357933581843397965629849197559015384712917406551487858104139325795142394604000709405956131113437022815081728882124605244669907187618425989278923407922345322621220433334401599564127487543752735449790663478466892167536898656535653238127743817795867837021206628192632869408030022264526674861768581337066458907492980178737824580968804501942633732448131088683515700631767949989563216102892933443720095334438408521621971886526762283773026316103913976118959634103859211690286320514246719315511029031643707841217124276413454837545351295490509292831373846587459000563606689059930790057388895896217461582591535183719101285308452809909066736038831156626426479655010359728267905508120586214602029281013798753376626668549995502289651563359433581775770288367959200678653682461775417826996275793573778827323591534967387049740002637006345186256539147499779194691913041853216960019801374309599489558724801756898369645220099745505345964574864881413005961295425585643421762168317977663618387965607041839484270704735957088078871546313188496760589636950836945514070853777211032917619532803227562197866644964591337951194911250294339540685103634368223950367801112811536696397054590916874594425597126500368673775369928636871405228381814579192705723621014393367888062576104602807154276555448679905597962150968367866508850852014221860555216474576357583098848120495854516385437524599707228701959130095155389433790367773118995775741598196580151474872591062771706423941713122675823031694257071556268015544812757443357902907917706294471308680348199282366824685300541187878516321172164103028351960413274323253157442248423915116772127668820919663489901218602369607119179797182828553749558197999087050647184477401332965358697104711051978771621782364279055224879521048167419715688566997955080183370872060068890737043294011186833264107779005988038847658310538843309896409156776911089919671136284335647796741896135051739932122706607642001219599385381286597528751597114280619624186015483536122090272742991697791401162458041173282157069369497669849683160751861599028943815186840426584144201683081518252164840140578719696265408104689409944745416319833553267849056513461164574264846192295162217680824866076374403901867886193335700917263294996544224360566143861160637180565741390674483713429869193075427549368624039421329766322872642236852893159706649031489140601118123401552668744867529744594688470349176610449669569014045959275910106188844018672309393743830237032362080458594779863246892068032498898550803235597817382692496504868834604093067418989198197278263822352772520115784250444819245998100311083740687023394445354277176592515859233178748615216049361581237615118424383001125408636798092098392128982128518449786950380822077327294734679726881718011849834340649740656387811297954396258356856921290364163784230035670077797553537447798412512582295129123703939644320626606066597913838222450061765469982128358018411023556007788146399064012003971631803802689939988304809658457109613767884281006497983659562938429102865787757520717542173639276149693884831407428824639170157563580312708235643697560956827106272818534148723308056021135782123069506514507282120415972648860461228491919915103973009422258949129508127619935519271920710191152740521861984099218279474616894638123114600007834634471535271362167512670263235393572020280873857647426406742190523127846936088770035137899491004371738295589845511064854029728883045204273351881263199944586505253166826149524253690661372979983503394691295871861045169295647815589925778365783687500282353884069644988679198253829199849629496965145932777460650804686511810668372640286834809863460596151081082600831421730682899329330931429559054515357182353643890187528559006846704535024388733407682404880792829966450352907752710219617479258889015899082534041232917640085966621997202909067689127621445683339918231317778957140145134838322747443766948456025069895176463325941725951610189229658281420627450602268050730931118179661702460906346990937177924354401279927261824778899214255772365482876490830528139210131677440460338872104332060502967916734588197471800243670332831368118775310717502325527243730494891956377702086715163792385516733673700137699424396172732239849463329252740223371996293807204134156500607544267234487486621387351401131132392132475396194553994797699929987789987000358697031754581808612237303553520893003111013914000353647490966783333721514319437817446402518966053082819316493380156973257083287733154999350797904537450680106005787253383485584065343593584066326875037818240912228623601830590728330035299016913218052655625475430897884434711472675573081025889466388446322585477263384622180020550533028939945775913048555355072989218287752914800280648970980996290476295274494394521279719705487503999282263953389904975892150059765804689456885143842685238075484715558167092101384589192169955096594518258890691136963209620320981213638651583625228161922738190889122590922562859359643559557962850131996306750997857542917625456739547386155456636790043070773876401170555949262957435407147020682696644890909005383348419062888588974698183107443662761143643140829366953888262836949093678323820380703544029452936726321745036393866063458234372073989304899841151795843979153374217039092830800265714197479958621082355544839463423608758707749891516521733966179381058183109167742001009443318980808392162856685515903005156265213329711183321828657393593833442315802229522044584004457752823112593626872053328481599149633358986871587322751899226479016841073821287199991445111537106846326290444000024046641414515029428895048926286306824615928517193872235864143163598789099428635887261206148414412297769880718276971505215919431345251051967243702589173333886849112976231114737054930571800019397897684784440859774525374146469791271069070883353636288565174455492337866559607783387155328822353839723463839313612510129719412769988345155941434137838768336486494378960351444815220275190104088582962380250731586186074424042949018400907110536548689451721117645586540337150683052072161539361156794524073719959707791853130969539662558404204982110504403635207969499779627259285190004111028817088954251806052811655080496654915392758089761276571279041231338272588564426923567423875173496414208208271932799551951507662471562530690758254205000555452033385919520638729107178378457138434820753436632590689706378144193855193531413243265837724942309776840912091288454628858553684981014898545387147996055930979060048412092311829695844233702698812650559789688251765599537678773060879546442411630851133059531521915201346529117181895933153965250003926535438924866251559303195086849314207354754671284098524849540714719239335313251526254098910897026790923712242553622242559576690336263532760538136090284187755533153004506449001022263931917643966299948584688374804096579269869367861337055475526521721921426402796562691166727774997258194271039997602784219316683838568542730447836913554041403502890933390086947480952817716054418507097262348337594581882097924396387994149835135704992301880211318576714831482050300329967394543351590394283136660073807683410286209807892566957371635782726270382133575235005194746606563425494051992771291235603261302456655632908752670616963931788804505199096662215500557352390045364496640073400922264699693063619986827050072224536821162052896418639012802717234651435473068630384569101661249148609410940672912162624789830601067753680171195581169349854235881787545242337137673909867669992747370643471321398403682477645717631924095038452104166822519035690673683446768548065817870188009537749037213414068013720046674731772858101813537692432762243510515770301701695430237292742510344648623498559363397065167243570793671253285410262212274662949674989966269924303460483225976816165090062996086418409273332709972930216945019296733231899838799450061198394107354213890062776824972119235932618520027081952257544504127118610500801153168403348294554767630807489360860165789370209309488347875229947895782757746966707936915768463916726199158031818090835649961107302800360181802295374927039654832232923532425517353145681631438602179073226746662132453203633953994239162772709433588974349858834191120977175233501553046659713948196913998363884144465028307869920239240205846558253008001366179113694357050481153694569170819147743720634903369091788270051362915985534123221113827012744418151004708065908926982359519111316462211075907532167745558356797465751688090153992819132104296820342249828170763771306772263755746716690681897070042585859352118870023823605099276051210754115789376690983735079074048779330683726061467655765952724746506651962470395451258716142308943033089961472055411974701980337869278061116861192590853598786919241930311617374739481594098964133026097700048322793518509438500440482595215475738665329291273496505492080895370044254916500618874788699968541586023032556122545591754406078167844397605355273713524882905949005857783754032742745307640191682831796463831036814324321589934270536193353745137038512567556019333497095304314658436440645215644715627314115437656151473512117923278397070533757633851906098026140739341078893175039309421731063496090468127828944279372892871919693303790336394096260606374467070561975626095727343908366141042648273661074370891321361044940858665949778761468688164207424332759879121656976816556850764242554652260864656944613779999273676300850268688928751245959655195591265966739510933992108989864772370794629561253016431415402694619174913230222199186830609269278841154621935929751799985422893909353571959890135685682611725326826267902723041544063523829616420731285026721302408908796223753363285556025994947567903208612193635901951525130714712768063063659346374827340789540524163178998855562629583895670879116292829513935145273781646868165492061694988984596050203268524124956401035452213805562727161730266760025887098927262309229418705431867926272216237889999166998601574616748157943587683913770685687691136479884161479664673733683845928944877359509319679589604064965044230876694105937599412477948573811248364831162271120903917406838923880957493122007246598302027621037901344011095591349849651699614881407069367856425775064333521363622339621835637999843610552909693108918809416557184561598528222659443671818668187301153873906639543146268598301266574519604668280842059945583851052177204465207126845361838633727848358241268372350680824983600220693364697490155466367337413549529997190581069993337002411595447332597708314643419617488055854676983026704248985162398902117449647517289901088640718050658386173851375099262243846291404714422819283350874923333172149958799199950197972179974055142881402961842828520950166222713019046229933900422284655262402412419460729714692289167401580485658577449950911919890723732601227439972184305047145767607824469130796719245735258024574645606468412329225841047780379080103673197207284906802592327098581104881837826402511948386296601300318613061242687780657631732696190880056456858973255285637671499730000519700056223714929012025113316176593325626040903770795911030109736859927525801278247550025360449419205696065441182111790125350433095758760306670583378703774639589744017216475966370513516606116717975438025864811282188057245897696164668195530174750400366380917375865651041819396085858294820799075007258686944905974457815393890478485718004007234921667050279772179038279208799952744131274749574959143924628459875237934653476076375955776259901576194996600578076304290082021284356508083130989562138360495414647537579849849381414849493492930849501833345738549334383851545869398565450987671681871224976253047932028110245704365961303123801640311517227665487823919679664259078380944224378477785665628053772972116088870931397457648696513590858415960953807315022496283848446834238995170429748171938402783435639761394498668458913180484415319953824002109262806922986201032298304651401709521712301825749074891584329283417724253978267294276281272664317801688188248968990095493582976253057890078906459418785212705062562348028876569821205396208226481583579546462854074189095307210849235319885375500472497777812963707859228134287682606552328769088925512941501124614218673296108673937076871005077129058713128527722285549160814898816115396101180694994430879170353571265512130976505814704094108913800549582440344459546481506434401708641998124516356635424195141794300025094183762204625605687025696564916829876055389874537967323573653414642045906687698088968722090089447426086229522361379061245201828294404371006348436009114391797368734319694176380228353688127313260720859052357993135004962655384315310737976915561194553567815282889474715205718678528530445910055892928356324659926344746658079537867300505717490191703903150198855236776315276709737591458391096828661004097677739188582132412438805902550660917389317462886637680265244247558457984604401708598121038896964478699831077757294509310575557159059534000242136071384452974248200809256283449154609360752301262680594670041260686663524322667594106319391362548013920116762902338769415705311389114671948572736542965005327518978202913108561529709484198593240460946970003371290366926172510131527853837426590317837920622888304198937321791750388040979588404720155358885296697604873802843769030026900543976872094680808292160154816839927935942782540367968807628619855769745303438789552335894610186194510874916856124159311305602505064489777599627058233763005294641707792569543999704049420490671099106085736296334239838162434255431192770550587129751888583671569778694030406878113750121861932280677526255167005596893715172173808123556548577150418355246597384097829960892353173114109405261563200855258747329796766879456517317703080787522018327886870513151773391564472982286335980055816268320967055844562999452001243720158560432005243835141147247208072908213584088039577757307833027781305761322593156098560142183297345803301434495948323919299343049989510466800241267068915194156887453259482635351056411657849138008634561042493885068212729415619832230201777499510953217518786254192588387708637449239874097775725072359157512690691374336116687179168427490140824365044445876225741105101022624287265591077806022723205736341766162492938063456730154477367115957853825948379984918708034179749633571475935887721858139622369920748176716011386607632775183251918159033661293343081160377693261165023938465042431494620137303844464698476535734714242542529743494249811205427082313440836911992031178735354043615395483109045494930192056209766172733237026112004937817577913744484165453757612666898951269675797540482899194300383754541881886766619827409279219111973360644387871579888377241440114703284176319433660985772361341027445116735467972219739968229112289797974692509776338475219170252114081666119116101298920902584685996432297655091658363975593950128823651055850127580489832391391558423576186465433345377310748221540375192037523752653735888511604264176234719177397032587029695820706632080605004519373975966001059833983673674286117676297347769187174387535595146526353808724016371647284589407712004828483440895870648760790577429737547816628382879878977943587723463554487946770071344090681224997980130454546760916261154912495875820056812984353418145234517582956133949703741142646905397721675703265753863278337698346141721984189540399357771103324486957666856126528930472643789535052112576734123710104719674098762175149775416844830130636072378829746099286299849843638851088627754266412801718181870253364936452557164497664363056669628346053189098589073351482056228888905897505980934751771452435528982840351114516122278804434087888049777442301250603628464488616923854498754872144987046147139226927342693265685910443544558195132287100123143172380829230784387829650229731061410665047452135911543843204655559179101850872476729760070706660853735356334691745524814387195310344473915114097853109969041787309045634101525693679663697778352431484912067062744385916481143137207001186403356551407553075042687161121557603984635500011536977144191103332189784607493441310425907284251353577431406111251110768148790215226207873940714990879357482392477335162394779460955635503150968107328197176442879949390617907598974480219879888032492648485267586468384038106402608877296337249033011822795200410609012876105372458229622223839515220888609669114041592528771637176302341792657196982348297980846771483848160309248585464485455246769638176381209384048611723764627254901015941931290426222307649675185772859237093979338627808376877243919275047354671691841011695731726130180186782690122534414979348843657594245170570300531779333097528062837894405368065888299391641575201146646869197953738523613590563752034686268538416028510916228679278669100363670213522499907661439401104126817942217671960677016793892575437277375205874786029632338926287405574041103066628341355157741568169752327205349666220933327344743322030183076554213495341230601769527189223770193234791072378159299458128048711473417215012432402454885501163335742830288334960638933915563652979114428172884273746402538351510808527412527796450449941759881075697925885116386137878872388293149428956463354449887856538646603466577604851162726557537059298133436038971197861470024692750375221149394349613300510257109201975872746917588317453494155157483970305438687166491556240180556746378831333641287044284278278913937951816163025151525823818050545357457814110984595511910157616814205170898677236353613580817533824433971848584387743351416334785042172306414688144364284770089464516142523609934489845239924033523612077191022729599042965369728918685959575224375520870848276266225361184461982923245767165970903234107264837328802721579708281920111816921686343182224007623209462005009548839733660301974882160462058110765540453056608585589681377634316773596389599438062981606441729643352885587490472864311947174324102434135596196035366637584429029362031607132404510279774943435060863669759668541482072468719692690863329760206557233019262987659584795693358339022354260629008060111010104003095460652393509036930033621880514223734290794439697366903516332510037499994319834361399465200032643158452028446861512820638427818395186920192715298621166788204555848353385012831698450221866664891408088534168688293612092004519754874068545165857174678011441700221202219299489315045172690112519906699087153321194954934995774817746230726002789436078139964953023220475774050655935084024956247916686149848593734812992174775452154902880961792851251949037891916286841469145855649668099415093975122127064582219159214323604688906164882973811239949653693864592092233884466305994566931929268025585386797026734514978743311293859704058521295396945988271802079346926243561263140845755452175513498379173542914526302748096651779242679746932735705492274461998535508743092240487800338153840714109888866309936299151892510908572035645423813576818091662465316831766206241442967828649098624827423547375306500440719220237448348999906790032142817743052188892130600359873207869319026803306275593111258930813368185369835287115598559876847064469251589339293219433912353951258396689195189368060343591017796441038538528903611135786450106783516785996831793346407821525211788894784366463089408531397532226264555269800557696535277566810162708074218743546939377285317711209178557683062835090910555757741077997168749075780330445160914924337787234145152325041436662808710282274299945234602389643949437934948589504006745102301032450364443665540584811153145522228655008578019070914371483134757573657038976490791501229697206746831146153958181419956537961555609962986381208089496914810193359495020743596761157821637303809251236691226610420537394927666812079249134214841953082715188364814175973831168209323803896818568942445431368395809886727666334732741476779497996832612363973139657016291771071915015582214347926701628561874665614784509372039735945585003470701515286504015066945234362426634551091822947413068703756074998655106393599697629289327670049747580832412146400925005696312327953929477402212703117138135753625923460488064916670964369346812507714233043141720260263543362845069111605068228452818843817364631085215148709714962476178679603663113586622583997776623436108270739462235710184025269818619724940598647063057771757904083730758148943636746300074449640000857737134046627845934509698611837526651589419919982264948000886518357836170591700108931392505760297539337556268709465470779448813636830208420879492801477352335659650832960074665288622118787946778150715797134607186358673641163749167680098063478985638069305722126250944940547979860581660573980575487977387170802612714795026870070990934240589363088181853522313968027837165037417440750909707834833342822448548296572361420366826853196639010678416062580109605219889139643306362974753788133050819570676694639943035833580931488457188927308503674080129138274082804962930056185725051281588837207445809146230166265742155354277595645854585308972326507093272914295602604793103996899605521463088804670936901419960485225065520455586807831789887207593601100465134317862355899429136604503777087578552304939506597584469886523498134561259413357094865992556044475203244022717133828580566449455694549004291157906744846337599147187462003211178802842426682862031248802662791626014906668903054818875917362292636190797921563821862315054424546656079974297053290471520620050106175581630125922555291106578162513388451401321541966904687655148747414793128920574359898644956037132102413999186613737224466900762770437878027254162012771031082388551485008870294422078508497679521393078226978867876429264923713604414880570132778981980621009049960777414730829425477238110963529942652924195714607345807279150462644874208863760203449799733590402665879531276344944759181868643248535736466346945857528528272966444100373429502690130846536545370043629859170564728919723870760664361464123041525107424401785323294257019149019194856143385155825892938359197553973045019040389444577758869533556044918931004992223208466178468607767522426445636747955240509677424123989651315718207589441802467667674821404211077000879935811728530902612532227400540006999035476700416300575203873012717279995526385228854423621803390273895501822760465404058464360801975952039989500212622334271765347400294011422854810243329440328445107956307971360380740726582451583616438674638577991950126927605522327940497807759163285405206983102791790948306626658919021144548667509342405659363152550253623052199038234365734737846108888342132802806985809535089292116467419006132532471704817225868391667623343477065421292949425992266841397967058443481077772238203662286729860509522155792305646309221366082041066760187798399636390612088818894956679994450922391507889146687644244689089709457007214546457987788731315244596227159368298429566080842915010267715917927446998655501734070177184149175785259128727761667468152643769146359057155597469217641262175834044127612290498897767579975986770868204866081596190610399920914725189409646581947158591674627533027037504916616116209300551140973097705935827191011715950829289691332819443762621907932519859306334730848193848974614762358806607646221933115097248017305156054087470413440908287830381411312995992603417260989688933532910198763403460063258684276347110161250000312472384803741946596907459238074516369418548922831004067702371982278825993649181577466979062511765384289483452337595841750517033732607638765024185839175080336247567560701022690756089549503336713757202743574642687999486438769899564941429975628296015375521851868796584525654971019372590992171761053902721870253997571414212372375585757915717345827843859891660089443790440370288018620725798605576407551735682260673490599820201235947320206646956223435049065611027505840413627688359918876665805598348268014249752880171879305012553871010000062882577896274638471660961605207293318495012170031130929211054303642463732757348117555934851872554769891172526269185991298962630303857208001358820657297128447955259916213338838265171603354394500512558546768140887817097812234831804252443873698198868156057631193915965904943509354017284013856311152625755707624062427803405129222108053895677575163201044604874979685676189030164020375799148127278312300409047873538563833445787167872085808778733361470099955210143012541147812377037794831588309289347405349619385715715736372611523271455399301697034717007090991461066933659604814021714378392784672988312249197948292710767733069692855734651494647560958241625117368706281810299105757886733201949942722858531056340540471228686657960713131778018887118091715726616044414015631894383196530902709593528676366943156467056519384030631157470718374991908752308895944160337692241944502495642461856371335435639673816300876863299039597399860668591675015993139294460711815070400679917408165422627015834510680191597472193609456334556720744133918921824734832466091796401454159128738981981046857892984383674251803834097066175415471021521783648657149866276746375298917466815642364384903467969414751146501597254226513628306498621386277472788275408263025733727057232867024071657341205320695357594245730125090874834230692086974288170549839442332466943945648477776117807575389374566000840543107302956232226297341703767945329695092999738824223589177472152610898918456002652411266024036335066996765989674102383527650433354367173357436626511482827600780411811828364987016251855198921622245216768695232299371945100775664206163742215704939415034702505943069683279621342745716698542507878309152106670969872678614451442307572050261293622471950613180676811211445145871061905382951403926348703713741350852164927392233690752255072565475025251756187417721425093353563998657672965444788985575935922693785953023361374361278485796735510844460000033027713200647982521986555745625316926895864015359512537490837709075787083974795811369763861108240137308211537284144347381369267606997720392108083407019745448247430079725254437451181205468168467719590360749619409366480723697035992605547289126568681510074157946085062610441828403576038956993213155492013816199438971257215992620641523591185922988411609753313426658169652158679680993760889448748056040332656324620311813005362780058399044490815729420812761113052944791821039890988019735698795471999579803199816959469235059403373858264110445967328827052487080672723806510281541334026305850197700468590981963310134803637260429703353777673332234038910386468240247943834131814139551842761455909378042303985540758736586739170028157488331415644929710955179930121258926375213457634154363067879980160776236076854620050079171119223083713421873124314444837134373922422239973259231846960091363524564109987249536214005397197354016828964446527773332224064221561083252883068996039710902225401786246603260615041439705628966442429294028442003669966738591940274518197755429474070584265551515044005429528049192109361560489029549629006643507749893051470512787970021775944955977360939631626297888587528048490203563449593942825655862409824966461149905904766239375084222900504129908513441792557095035533231077647771645831539131465668051643461430368265584671815732044688120733741762984618019948342429558644504005578796151298324866144133950930004332533060119872133484433321108412774102014576830784766032633328492886075518355096160894022537951935142249056212987034227524989041688244329342306515685204344377433268073725212860440169455518829135733136589177231297360791371082892588233979107044615233926368171990039734244574514771616326390537053916860788235852663217994425926110536154713760241648187288869378473350741015635840140710738165659107864523397913132696245177358800057884396281478264151883878857419394288708163813004808595957155214884853618028748986274398223036618298027240784717949258378434686867636782385402479621254329998777791656030829778344141020035141614242448994559684810982371271956132074302209917562304861705277377966688599785344202671589032051672520480728063211563055158128042272298109521407789202830787720339576704037421550600648871408676231023675196249943596666631130711621632551633274214260150060378742209740634068704165091054830095394162709962926781479649261618402519687882583463267594947299024924658918767018259323257791863557297804612402911579178616953300319601650802896958426583327433798946666504334457256316869811916371623895569412736206027761157239605531695677935212184101435772779532320548276576098354003323044628699144391398783825058143030530151610057220964638717346145732860073411872061730071659444380909729461054105485076655705435652759576970642732987294813953170623891629728981754757381243939218008792725702773886621279091927929378870053030473748424460137304712739049659702576146126045069706022218479340751890415969580087794277537664320099430630220612214930018931210068004000817696624300620213379081113694901737782645953207735254401699275183031558887446438333249323063567690904175029998643680083655369703305359956417308327729067607287613113372396696366789436472965999421138393912367642723628245191652174101821331643918834957038371246723324680565171568686882407845706050280431350742445665571950013702928485987563496033995401469543711129859335885175006284991259383077293368252482710092765046554094156538848919248598782813114660672540509231824343734917436896405726686064956788037777870930488262524792675561968829499054866524703533601025383613982843627246080394983733200030160421719246918640976694479654482952514135557624640908215800722047330947575963612943997985414672160320034199794282297157807959722829806098226910214298473763342710906762363510710153156243413308315170531592557520681535782417616654617062510757002858985323323183627047337899083269757021643376720746219237856005968819413189838519863406640212242635120212939495002205950415979693977944201960646093633711723358584858393868217784997499836523135421254825183609582426396603312031386275740790328163751442812725558495445311504796476263725194615311037358124863025966444774586336262037296787731367450099170343563245008943068228632387067181451223489898507945688200719212059363568704125674784327127599239470052809447606319357273527902438931274780706586495183685259838395072532299408014272418082335543789154709372854044035308697751320049609252741770924589522057556754558401776714999860672358405955064926511149768858474036021898784665028130472368620906035000548491681727643682151365815133084877300686429606135568864323846369748730457012552568110029141825392425906645459099968150994713346966545426871219187913284133809817083158936639171244120149417702707710454349406431804987566257495370987543492158222803494746026572396058892642578653403898351104136501614665072577455614720006406726417006729685470588792855144829836764639211894540769306891014087609946404942163657241397645950383109513780162341224191563100999588630424623214585025135314087682724229440899432480707925316847966793129694855942059039555932868143290908850172468949286079603019136496380837977615529615473505456442327113152807804248487128197197634277748883224716648209593865490490930935866050519869544942451718981925290816711191952035049696965413146481425486392450559356996625106722274426507506965714009677933522953005323811862770298243144569684088404812526822677362236026766749651334394189779065122669969052787513550132455097103275838050582593142576279646163303601924473130127652697108328944636542211843364724351783858113559210472000066549834011166242824414236570772616650465719398797160068127348001108502724268338086724348385317234364478809321102039234940722528140667048384498044984956123821510975135599816183366290454709691387607487883376187201954881299288590274134217494390109783339356324753663892221190226922655275584698250672139801610405040828700157086924192768369107188656312518565527415914463804416180243286825639717853743809728081289468588523115964953208336304180925814098895951111343789619044698712354267903922683063324936035419286261593657414298250262090804464004012869918953214723209701748718403475707818751344799351017418089310395762541617645180186852520241488124416372069056817957618507017734770982509011317572780504069954174452157907362190152757769886975778473053241114059111636913229400091168014632137525201178091025390429067742375334092133022501810800531461741113385822840070738628444121877705702146677988228380910804802879774496329661242836596503709848335388597954561698456246613158870441649388634748583092413623531856486974301067497415487278122993114932063028453812224492852702772961156619182000067752548213693367953651166452852943043000726349451645592349941742223389406545062203156725091245765916649920461297542789429640969484376181639646007598574293438400443572542091370359966476239683872054017529034011210715830707537463439567286499727925611617892171416770339182370871604610776459069970814028598899402813613870622350127390321158060111881716576395280727728037953209825771070934651732330662962509199778618829673589697451424504709440473864379456893200507439095806859226643536495392029092100466946943770849007723946191543148484675312094266550828859697566419440028335242180528669144606858243026196027994464248394568510045343760462210690626027180035368087054143886549532109969604380077179454062924883390201656107424898821205180261898527143693201542215118928879654701578566582876643434910437192273900677268867467873408052496154210676005968304519124362658691352364307565178657883032766517729713213152288567162147543837449553091429220958616982315602269935110381293591957262195468293117487642395807718986125758858251023545550530471904658689407154324966681594546055240988292753457588454495075911789174713758322475527252818648796039640559306971552068196202303855044183277172185866719723463706075176765581930570826222849425125839802904817564551153405070324552101860165497406798240512667367826323204150922309962395305722450537873241924961439560074537793615713534566572623622074586332595669120150083819869575749702319375127249677036802444160089535748398103614279622754319017123294634176966794734017169906233311850583231129747132909786522682746217729090821411562833981924773642672101400041405146648395095280605316491091112031033757323292808507336383760417782929333708975750416470366494507408238454949836267749568669947157146471257889165476682350260393878798203607258134622645947613342794715172469486340108888931909383633092888425188329358351779756885736491223169981629604434566375846266829705147442249246344973075637339762275170006121880725175733414487587163828337363228783622644690681479990426034544709847619180016090585089281365523936533061163152694383047498466233456003566901297789995361439406665417677979210499189885300813089012924586417651126921036095991368596207763965091461917922011722497428146269636328129872201245802675778045974989353959013267318219739378260969618071475133867842168227828234114521739760972501881544773408927326475813379223371583873583000525788546490714355365577314864810859054504257588435480535618367494752275130597798002961742165441703074168631945517914832928163746218582930754654329208679567615053417404982989715891745639782857988142728013399104606807361149953580544561913820167801118753979218819647241346924153360906805453650388358785273965137535825012368690155220234001209268584864928682971547794518280768879455565533799924582295854663521399572465947165142228553802456275792299563531490492105268260251032427099683420654427294175103108297148109890426902259961885076118334559903379606925112133774022657265786469001791626618452602920140003944470931146849547399462655322216668336269032937076352722795060886027674322569768739214753770421885654020476671546687406182515865497856803900375383311182924165507504820577371695665436753809388964449803854109270852944991144246466693086765023737620211794289938365001155590877609398782966290633795621030313812054548198070601612332508024506062676147685298143986064864591177159721196983378847424211139202409530968827185699785400962917016125324125681287635321778474666336506095584174594656671587360583802649750150649989483535547197419606864457466637802373677378677993472205380858638085277372813630422831226906057952287108005665930045635664569515510832762370331054689855831894815898752413318955270645969610693857641813559667670014896587550549212177478612620753034320036120871939667793053988892261801379078631681256281994608774338454159237907944985330204452644957361072547072220860259093303505296985358263302765441487696387592986550158619287291401241326140502587567040209373992344098359210405562535121192804198062568284857875093131965423371075438549052590806468646502474025500003302294331777128370546345809439276424795999782398574392590788093137481836649906352043868953336381972500543515652309093088772791820673496275221135468898450146332108955368447584218712283315771286232691103568428322835349755174937546480686879110153509006978707931581778037382225485738360953743473425776522481325896586729337001913056504640736775920075592278943935892970532439910059429752202968587465935065561459376075694814572359658577446662175859175570043262998620473297546132025272341828038919937715588449126366448198604522623340519947036439288829619028777747225851616508815745122392595384285890597155663279578646068795956666306714616968054505096771609325311163080465620924200308056098579972494455208514970181161046797623779033808225597844231908949402069497235210656352777128985678243977772423619506480848140775070590564657071765561551637652512274339771189630460580504051329598166328356344442084034066724841810773555923973011224648238787080246223644606515561972334934695442414629298072311772432354481408067998390398347280194707003019474832711161952444290838969851986507520732513794231492304193185727016323978285082628732853463445609382408424622653319604950008035694564874741257140430110821338275609062649092932718822306501857255659945929480755370693099735948144875850674863143367148080150341599472781500213759268895541607905123690372922003701093328433909975372895111316000798991307895779064887947589824119703122922531846240310194298391073649969431184643777269246447035317656295162307321085413555845858252924922688367234466235850446940415261841015274284578077128015712054887069108078751131330783589551835162408727383005989805454745564953439941654171202796514833924874564892545109105739803857825072380349340129498902833047831654347987573627105612025113056050880282860992487635472971867045090466220505984349529011258861459082050294619733190388300208396983141362479372768859562441988762195555289040770260267029778827705412069740450936193157284121598417512398748452851403197946722356617642922013778783390478726861625089012088370898779822311326718037282278513592008900605576124747319589854861558467211299915737312396464968932624883566748188527051185665425645214973545986124026999357182457743715665723982157976934046274532886578557913407630859936923527952754390203298892561561495135457028202230496351733238000012987066711570172057431045517418781596599985537972255052592450566571179157068796243286876457397154370851948671813227245970495382020016831901192167669594780507038110749486310287218846162204085361661115385896239168814681387361886557556255750313076030208855211488253587372846546070813133836789516898636612511597463172584589081503376489517322083942200052272776585954711549159315796669826805416903998397348688057745732747143831104679521310990315185948200435183871540298467532205335738362064188884967048536910061541210094101883498633916241658670007555754641162279465634843553648313556689713601974479992651522515800538916537267367150012106526827536268495369881214063283413808697594987351954626385699543161651722789526627376470505156889085945760902924276026569746789819668523582931126067116939101158955987625304420690040228765765518781292424106910157684911547542687123220256634674507716719416768309899083067656751712223255765468522997158927364079867700160755007476184671144557271993189149840009201220827767242439650275406817389682172297910752832063645508240653499045277959945576227794426560214796911709602398310120229325419023521688454129973515380685343019486575435436513964118803665093404415049868645920749206154168674639466017761903699152379795845245817839508782496565605151116128038493388001059152378227552099827430828998085733240633034153414801894256600170306707677157306526077403865740422070962849511418879182717089976998176308599422710439262482654221328507885682325189622737570493271201062898860042614317920560814406747632860903629648378629064076485349965416484402317780574422582437726991345346877275862376504610930283389054013021403888075697446745131104618896000260207938294638179319040501521790480331219311531934610458744947094664635427150299948978288959624532994503955267524827279310121706185862706823501872723203922186173391994191784596355941790861174376994642084203456901020199722032756683647111184069523036566043212235512109677009830214789307247458259350011929532440956452878227068388920082539399134117253871509382485460941346675982255615576204695544388872449055167677829624459291276301382496866070944676261764888224800278494575234183721246939245615018093555671258056321285888730241161159036456701532482601753208594105788156677044503974244462247243865869196871921459494758381329787045062703512683781126057871764198672007219640177750949631995229229855261631399433481133894128875029219347639141638152897830146162861447429956190693852788679217463839258243724532441818148926617157354022885247523404401736458416445584091740221706150432828700338511334075093334791372179921886929641014395747279808232915260434051882764879011181698801663760080488667338230287962615899509788127910702152477441946016837447830492854129332297607423639475153670313123014522185190979040852741764376518755970473045767646662161094508508088118724985735522700764071557735030175238373200292920228848150613397568982626432224985055941543453338057270575228512937878352052148041770091005770155476798954615480876487170340139638175849746507287900372574406277632075147437874117359321015480256133000744177532181331409340061004605813263025357828479157478118215129925887475936339585707800246106514109154929281641763744329975218676288126690159251873094310836506001694679278676386772750666883308429664334023625480569524961704376973804804436215248173202168128823198686830162091984467314447573969845432787727664029410953333386644611291829676522418111866167469878030523890873222821605329649465216282660530313589803121410112039401592523378002125164447353262208824785849340334320056776263445662230249545992504144224225872834303182184197600174026655261855856863931329407171606136583532622321918528285329945544642417788064050567077644587237905485603152746986185707774339917397071393807794989181621922794695078978362396524809989567843377444204014175581582670223218027369006349930329921373964650777886108752839697511003688111180309565705822047113253962063793868758621720402736927079989547806776820608523297940992839679829946553045809702142624715476235579813535684333842072790141947598297404439463675890774812495109723438432024180702854962583852828411059414706961405447908202362664819272429651441352951844553590113704675676085600745678902076745002485405853732295686370366163159327632145524363043721931953323554366454464167747478640118523543074889428623172255403457362813386900622049404589954262257804411432198785534711163344300474877513953604051249312624984964781291767606159631528052527800169896082825605807425836464949499277420707717919825849156526256998766103995260419120436085669624993534602580270638104236574056270908956459507037261592889057668851120852789067222021569370593045398443012823367488742624417022990751622372039698968878742499374345173927472047774765183418743971667507230433396545701203265755352829982706450936518067102057532154246943096991841014368315496309408827937248611848739510510719976875206404538464200550569901328376803249806620135238603484399190148165437334130923401614096748227523981967257924866268140942141315669778364571426812436295617734192732285178693123949199258070384035490805402412334152463264087726788257770008390249356789212429775902984088997295520355267878044018829106625213133963205572269037752401346202764234300168808104369782095834253248861703817709256557907807657863627894399240810884318080386370018681398896940995833910309104494463407356314407571717987339614477680940450302101728546213176910898681186268378779100789605571395227903737647766562919856701147586901169767740071846220758114337350622996926206383166853146328015652229797054273577975612592035351545571792144339928851843582092328055776423139145708706164588076593028318193936555987950282297070799076876834311003861926723126683194926779184918125649699009697978175634493250407983842738247455689156969224193724055530130760385976481004680548130784997912611925353969069997826401470478404699168476978012918118551119895601566077371990574885095011890695726626092137304365247135706732435576861118227201936957074559362265957703143200464637536946386247397111050358438306067491529892965077343428767074430741810394276048456653961383744851685320485825545591562352510632428761250551621966837381876755887707333817229306556749715129658788384955531987063320840472972915015919818020272450753513705736675688105359327278226175889262520409747619698050650051581949687552211325859272912766036472371033649301424117932799730567598707120008208082543585381652565499704524415398668103200615335473224832688276954389571481522634079231744456153917331669547620039533687326897732923158252543810735147265861468059035258810948174103971585580069582571256960201686274913806370296413083228850365334356965403911743508312909092371488220201430884678068470380618956121582436983367466507749238581902148734823023259695321893634979511027806012605602665471671082318551537567316073090315430253804830516903570428849970726991181686105332519209135804328215087961006378172549955937435270969287434983096831962816145205282224198371569598748943982671316631263253952416309724883488214143610683823064407441057092527702286672494444215398129839450683190757943625345414877619243199526479051594890537333560763539259844273861216614396648557123579086219191066003234477475551911697122641280289616260363673523851644678305745514534099202920859997123601735938138431095724822033461250413735326302987141510606517568547234524602494350674890211978509991573128407457990356163471788926736221516474948055969598435690838607420398982669636618026717660753124522439433293341471488977530619249930181405518109240037970643958030063922108030580719997718950631323033972583291818831967989981473793058488556307694631709692994692004104903303850186007959350870065003955240096657921187837679320279710111319622155177051954682505100633389301246762449932896280815790116975792820082116669538487313618097306568866815361558514595284785990020898129990245052060093228891757254952823259321346904206703260704659849408253542355366873156032166805047578736239431578107183389782906248084169580618070385600648125172966151825893230124180323155090275869105655668032189796682438222217548971590144736426933728113634739693757091403256821430508644202440206360590930096532583379844237301830963923877259430681778138969762040439769402067438785436367004340398534910112827265939534220033852252859523744355868898307970415753530231458966968096489703584682213915208527665611940530738484858607601397492998019335346928552448057928195394687261347229248574225075539531025301307016015308751433245716192387549528948586083617022602328293131666696174724989013904613654058467229334310274563410651588266359136772565026492908139482414801924804126421344173549409507583133236886576780502094303707924124762944168939379979991892066015712322333408503636002830283207629883523320448804999587211633067884371085343158980025365418580149863239188705735081512183568983550231524327674501699075732156440100761202677351955275868674631199304219350609729569586465873311968262931148486357178680632164375639079581895954695169122579755886058548224228902876189802759727920047284633743856018204899813145160089885924127677316899768419096094485161890953843716941689031642896326996278750963457728008946794934594335359576974956615770148409547704305629336047852456615264887925220217068702151635276630804985704462455850386917370904896454911243819615591980294967845031814204517897512788927028752541487806746405474504430211158715672613487479343766846688462495694830940036524260030343643984658360302224781746276250730082370967516013388647081407470621633595741970137576487208147338339268071067722477893865985199881688862764343589989252916115004549520032084652305409744497248859790369281812272163977806438644461617778023677894332864947165056113832309148487604333767787433152228060211062542112523667683857262230632985271040393771277580131212269229937909464244841121353795551036243034695838427673094606401115893362516383880539169273602803004241448764148551034464797128255974471805384685639326355522458832193050558291740874868918920424721853508569197559426977768001290159705216845888848234173589610995751379183275452142750469574249574121712556983915786143359094806899229898126364317416528321459643909620566163179002820805962072412929883762518015127461794032604083665068575812160607645749484005626668777680901660499200791782014635165517258525896948826516560372460287510010288351891509640743140409266737024314286084479741241249866685797507181241927866778626371673836557463773957816864372910725308023925950094304110136328600979980256290830436594364853264601108515196239948551375107121231588533154599908165188762407258763589891696598667671418675353541148456031543563063976665750146267129595637596902681406148031687731070318631820112040456078182372159911448582327761247247495004874273673555478274979570830957033805216303908510026553726639532968518993070981933747784822281218075520376040677925887199728611334058126318839452230931638271469194302476866348951864073585801559319800448235732935967022700790399233876784529289464335435891128462593455459420706096767204779569671582470077035776405818171796174027259626070040428031386712068484389655191766608630382122596910602042379899223377187874002921243153750523045476552650888658546682870100572805831617803250431598727554287285313600413439722530203733709422819081923529921716112227721077833757579715547285219683271058751093431323171453154009937637122181535500407259875627280701877793031822890438759066304166852509090848448821717077989886510820457386849702551901996882835215006129759867320221255269059231556726455460723673413894215499527649798468778951446151009963951631678326892052671845753912326281402531699834285161108399149564472452752066445676690999693591298300186908210746899961185438531032169006964784059764115639717534273041578880521071815537457882893315152670001028944622611952241207643808121403158389528099120839570125331165659283407018475737624221166419943268728196241050218620412633244223501384511698118382039444971850350194776418425503236631600516225796452042055747121687751531445957626370691608785508498432473036280644707602265885777084429932524632009340739712551640500438782614938287124694872027297550583864701005757165842045405057808215136705174846264993600847764929539346763686566215908408749197331996657331727799626747118618245920001529921211744527971147454525154459549952656335791726004201413326561337040215949301038031586334323330048158257829816027632422198029999051635732701476246501659271637837053866019241648061033750734948861305263272075507582801440123155920757420320465253884157356633397901796537740899703607529195087280236297236180182647074658595751222559778996780756798015393038021790192349198778530096131676573423780924916746180600731425327982344709358586156333140726805565959998630425173456921614758222512057786004825161992996288575407731791222981434413108065118157684201473366899493280408738244574258007498985698338801406995206268454396121788380070010323359504284754584655135363357553920261158803480097015101754656685342066455039946077590187352429332496469288929486930565681572321166688215284049879277350412804641773558406815232441288257875275458760287691033247415296586308346874369923296208176044875611046980326868083651548013891780281630133210528131404210004993598089665953440971925928489956895758570017972156237551248401866051162902159435463130001610771521268622897108723630920862612205606410406909864008154815807566326454481297868047244803703053995227025808049012874181590948563821764531958443988731596880830070798131639227578015711876617197112044179608939673434034311128490552674870480904723923855819365063133484507425271442757779634946016708946685969042177470997060549645989516954285349194142849146200447978370853674549323603362829125007730282465654789194699523151508548578301596373760411232889541748794280015298034361918024610966282768495555679739492409645104672616740779892343395453822098203016638609695459510906450491712276791556795373529772110836848268690756414687932636175391756788460885668207570854491949678704318750218808719429133118881268146105472914700708464252867239014957220586847462907131246320944123354126603548264686641221886962154074644022054783327147580185710719566094949008878217930851128264425004825427074574309340152617982946405124488815011802106524213839416692452724111961710450224701460405795132566742617222305424412558098339922011405717908041104515343711573094289657067889409284482896234207372900565519021120706468687891008424960852673412304903167015638095052810011631238198324807809067170151749063777683249429585218230132397662449751746256918149810200671577811557269195100964504069389738576349657077187001721570438159154602976096942390687975036873883395899265168469360933858417786216799921288260998374470765946011695782770285900722631188815250028198691316295819382418016688547803569561948470423656869303852222611303837020155629281934653869044569121313553015842463634366034619321723705940898484218376333233577052683533104668149262946610602324229847758574988795123550751027732941866992336238537795369402548639884418231786765613120523182437755149326389365804575914423765962088543561085474931367175600946366289846162660913861838710343019992011750205196672625730669794572847034739670757875994101119895845462758764056192302565619973905311492816058240880663114669667544203596441622494987375616650820043743738350580327469555297450621738005362408724272822315847814185159128738265505123636664901030280370936155160028935851671225640653377238838221291026817491348589597722310264741518580231828445570623394378272038530361944392080734363406588298885995136856711195163880536778582538186375181148013789465706844843960129866495001083529485697570284106276134865255114365941943905990699833156161804331741287214050274009950889431973185552417564319646036138112432816353322800529566680117632489279037822597747655197052702342508816200601139807887488484062617861695946544144047521267565256227299755175499208282922266821961745424855300798318205547989967219450779399289033470244465917167168161997961872617228331829242737320325443013008319740013580617119536303179907759694538440392114393129956827954012632510611442734869418033535385705668105326389342516054861718779791822393436990551376128000972441891113505315359184968566250830629046284729075717629381604756304536677672812820416438960522026349573661271730381668604380332128162384917353229001197286244662775541641208595835296359530074462070664062834909272338384805464762806047170710597768992353180311852176533922882994977267208146375496687599429330671247604734322383945387170923407219763448852889741819791543834143564778604877602748379843161130397900784383943540833540780023775420816233575452954987465285814775607764640328680583116434040538236396018454899647590440284509799584355219789081497316073760034363387074965804872596819923103413010085891368329826071414941836747387301828101300646257388533787453925083561081497697073486164241753044876720661516824431503848794696190935777338736726924434169378520264630341151416831575638572528077573153992245043042283565773979746486668583032500518594117468976706725823686863699812396108250690460838630630172802004964687621368316931979508484241153631875585882555627675532869611544082158339095693536416783855453546839982981004241899414805972617384140980528842843338783572133749937494252320038799693268527086069549654616403732774481447867592955856351070491081948416526699626806484385035566215569224501454736178087144092816528630565322637418047288691443429431273724454998253278487868538764840291802601353996116056979442339858064545683111089687005222150518282370330156413068863100247754226308106940561937747817465950192459667235695494497714807829947943937593753110945472875452224965708025291251362060739166803816959842122939197611259944504652793963233542963844193277758695744924739699668890501862859266619250246548262242689524870958032784036215560185069439697612703963474798578373023873377652482958285968205466780329050734822583031321499983443160586657360961283692145246893427987082318016155127060530244919834749300145964717150383850608871393218853374806311083866428797901619732946567113178669483895439382997613447554965477590868265676590145289644966154095362134234340139772176391398529175344110168081306820127395473593243878946148424655725454618763240483820508966069206297228658702716575361991075432720944628172412261349012263821616710954318460134038375482545528853801297620453600253411419762772054027787107843803491755791975609891328330554140788872807247254947292681589366271484197954319777202832010104054803738803869635037297948450525706028420667262487321245156785415274916274668981043366947071195313321996601256623809308219361535820298205683842088667910409081864447636648124396243275965710783581196030774777234177368720708920194987618476203771624988972275325318427320137911452324973090275093755633005090717086930129022815228579048654910433528697063385997343578074012568088554272465755991738686382508193395201940649040456342586876412475618130488558970146356929675754100662332650923087461892231100937418842073670650283528981906380563529026629126173432158219860767202354511231113314602996802781872758254481090316775095926775507716139545911729153343352837190479164235103388409268786489412424357439615306612230251286543726006050985747986094135258319489224256370042622220578168910452999645886616828302415098343699510339426090188397588958130017020057025960324246178050314452197064626165280044678273484976097456515909951786285192909271071180037823429812014567678452124242823519807577471341221047431421262754602729306884742741778017595938871682548834018399577117319907630872963123736424098006536824230644604187541742773198731093906134380848578447276477175792097743794126626565654288191845322738125241670451950257455464470885107456989567211154720751834009058615330443339180617361740973782214104110574530857770940798543474503097824914130865178636050800676558283517137544718288266836877265498448174295162504203453537422932250063367765004926189913679594663831671356297474085787089506005049199863192411949033375639092002328694317630477798589786108358512589798848248160977820077616513098902862774143360470134895273526953606125311118869889326113395057839810207067395838292967252281083183657659314133192525065804334173122082799899336651756746785434828318319535537393546388994012799025362763672119431717790815554385255189907419080974442040284298124276202550200515445002908782943310147994040708701822549272622881973451377789018214310465913219915542871948312825412227966591987350009609406108102849002785965181285949793217685262096225940025060355361285654800335101663951975591073972923011586557459332021976272732203621689252549050732089583036519215077751599801254579931721897633553329521652991944063044567997599847163529093507719990966053748614268446173554266523210868802343228385233534798691427327069621418170119728062063830206028738718096590770141828575167329453329702690426601894157672827671914526856949206625174534092404290517315675876083434524782267040942567195907883891545225968135669809438321137783592225547143872414696826529705222641381389300979493096958945505473213619589376520787013838083655372122767592587388610867710312372908945253359745061249311030896426662447462264725385813555237979171359548442733832962465362604529440757203446969706544007125641710948713611791005869334496901182892138408520932740924613570391165008968744795873856518949850154302381045166705320736995698850327033281273996187614393886977455747969907695349860838829898225190213622930539375860593682383516435596657053855012604242867371298597235012891037094885355470458738289214314141238970380153940600580382190404411484332805933113776064254649193683131544643537321391402402918184561825501840273916161052610115796784417310384519977972099320434363334486414476400576239464931550459730669725362841815783332165008976883634792144940109040476707013838276986660213155105171030092454706281183384450480315535695659438638548371434806183435507489994246921204053300054693415150662146207820820888313886553981433173509529561353136377618580302950487098116913728143456262382019125670928161364773252769920695378985521762574925726184537951626311237042573190400122310253254779217962696030052162619544541987778142706299619248586292486726067560796508948345475300679626827844863927157463707051122653565134262917556459822993520714218334235997238988360994356194565681197871442428078904951813912616663834263130645839976060195406462238096334945331061101993390908138470639900191499584987093461414787707999739344073173416157823377748632018993983372860326003444722303692067108118744373309010423685964817460680028926293809234600071477501461737286191732127404992351297406950045402569203282034418076047362784813762329339734330624219781561968515131484663811392388623527223240982056748233324615390247636571727503192149006162603308828982504960574626172330861208103639925608752353179760420431138096993346917127344741721396691452116079846047506406117687700959197614495309487971995618461100698590198274527122326184704668664244509573243217284715930712280379031431896921449591289673395097678719913176120087715783067545549283371439791054700573291015090959480205804922886111133500482752359814668221518543076370571036475359514512086323929309658205938645094907914714163280740939613594902398539985055418355627061324136519341486122961864271052514685036225611743557249955309555053604740971292285909355389656207073089086465898503030582693793732024711974966708315519903838066876566324208864776698818963626663462040834144876987076028533122501949903253730620810887164400601286604773222966977150259434514158983096928723211681288615456750872083352184225820362787588864320329560645549601681631908970074409260025688420320288487594113249396955339764592546617220074691238941646712548839789596792062955162955958899607097074756980205865314917415230708735377541496220242098644542702168152592476462346154186639824682575536810141855238711181677629725382726263574961087858944216040509929952329103050570943027647563804480355082859594701279897696377376224930920339557998478124733178733291218052016107234838921883494307963164533274012062833852604979215806345430070339507568004938100013462414855966529119476365129588856397005440417447309222720319455612001401180499947261460784824386552889971567204653486777532098188700944615140270361338173115578212748481881074420431353320369257764105070285532341205970078087226936545097552502091406389700037449415317347570887278839195512959702028136942842220746950100595304991608842463938904717312911776670894864319367701846774795316520013702976722517115282276804578141932971245541909504663656132525819151695051608673534675595283716304671098647740350465016800672781507972462259882479207052088391761175528398744172317565962446105146477482558603096831387513025112807570329160684111341541318610289619371236480728783367669234846568195388081525623492988353623569955915218789308065550460738750795408950777186357684331840328348047451505600323527507968159221352115235991221936754318341144975066256185570034058372806332778156784832812051706023027819713932646435237277654793913986313480045620462212004341688390301970258946842700260547181369089574729134236405577539405369823757842791469819201514107057794224895607028452746939865933957368376353468877591725940890499924156442900910387016128469867232853303332222646924838646723989557740012076768733088637902633025007965202578898502384838758158793350883415701187068531910959194646489906790488480155932526229357928793370945368102446657878124368682708854061636855857120344623664465261342407937235341634167316824403049144760001507686695514470706850463812072407924903758283158247475834251083992082062848398512290255841296176751540367844283500020812249029379798134347873101705871688188052973072248644195154718219477266260726835588402568984260978495316894900878138570008879222705418619674671757896886530835033582882993457301832437579740794322378371921106545378678329808709962984284772584795765913711053148923794895681210829700642197314582463522521482246361975803528749949222026179147035839938972937118241791276212427354944098620852541472403405606663721939135196447771610865080027450495176217972216493603537442847556595221947503161427787802697626400569419798426990682083556770347780526435523945843167051009487166082042995860098277115271939051548448584333157453852582169212135599149670224000488106426508487412880639781634244042131103718771898588675017562124486110141209421934588349998019492740404837369452405628824426813917891119568255549548653604243012206470571561983755011325596489899420084160008894295564258292551992581164703720411755835970094397158085760674747612953540260234422191837301329656523937289973182440517721762267511861545288087454462682226162510249123531949536835619255158461707128665835348901245480979890760240363395632577419963145760049225951550859987298956358249593864032524081348165854149072773003282290523153404119537683158198909821646599179182748859367019032128261787291771764714221410386254217071477327287477079605270195890202077233109635544950745388634018134127424122135813240845973663033961686090109085293591750414709411211025607606257185364821543476740209331443840679715230501630361790395658952369221010280562152574176265142938126053890114830347420888818672599044046949638660855697230984678349268657834407335755774132869535224393808934753617528688378983289410584734692503667959780925491725594454535580852476531054963450371466474425201263597781496230139891734420385922676337794653556033254859011234595521091921452847634121484044590047611084686120593366801720804816399070488895559246598011982783654441421583418500689469961040617962089696196142451056349850438824270830221606651505929577820114108906811841882952395918137531964821051870749236121332663736017617858762148000583652169458358659776185956252018415231274327930316492251025544238356554272335246327826855456911020698289913337441879147396291588753734255367722658649880422786563465059413009980356265009933919693005134030672792430278006382009926743579540561630872577556991946722737311240089118250136714770491526918399011585303550988908385827214598387542652334864323328082424434869109295911803537015287759936320276124294151407658308091763261711957950579879574822346620549402261905591505379815549526354699380916280154203628378789694487062539579452372779340122136502422175977102607585860430352569390749491088231896920875664431411700759025728161637716561290066922306567552725480418852609892548547932963291707662441917834483296300155474928401653598606228956716754016694847324197392975094146815002120803833849241711886413833404867158350666993311356906319978519054640639983496893548872173500295444126683031423756075475644207117605779332331899203912850067213089432431617734578193881578780207171012578821762921363225086276813202929996484478194411111042359937524046542053311835003658131562075397178190876723828411330556866655018190396085220785186749217776860498364915515281869555156335839999936004098188859685741714105302510176401364072141661101846130359918105249346128577179436791183878203134748842603265253867996547488781874824999448760222304441053914789564709471337381869862560938632282082366661644952898446916886010886345428213320618996088134997784451836118647861261548997223425514172571092185015739704592072050388955771773196577400510488359880259781561220932195478694601835609225816555238191631310288790427986962529630725664414551272018320243074687261363609933755882435192449675477297225666570904660815053194706191693976192040301819794831861174599309706327490788831433886910387004291345141454365429048673432976136233704094703491722992513124494718555684940854768131390010784749051752906881987901184549564500968823495979632740877500348292737436361289138256455499288070216369314126761986735988040098304675629554911637200903501664131863209367139022495171619447462372000636845601034536196946003753498866745323274276379632846823561810628260463269824848026635313937895837229768376366339497215920225856789696800498733466173883174387920910526721776818581389242038329709305708998595051087243858950070622800722758842537040248851236235757214695287840404993228271133252199195540446288136529121252166009763980499268435965746317190290374832109811922118112312426002112438427322957419583945416370687591135164233680717945298507986168642614049153911226437172806628134349282669498541514165261173072489894206381578898162624469440259706762937665977876215987503362326578956320973332378958542908755940261312959401111186053898637194404956217362138694375587729264031723392319611136729254587493690494484398682907856264960743985263676204342833349749757916707513794267505659836627272879663465399006101073419070886812448002420605820497086802118588954918004812561398336346889779192857362077481536275859248012246303370282939559839920820509341154033587913231200802523028062795756939774014504629786116913708041804588858633618471377960951172888212617211748572436011975470260231442080658318170153450699957623003543768476538863612026232232645986358703212122074350240288675055901114693607750102628859176034548821097257134044722903062254235699132840635229290803617660261659027304301533657397606056971195084134206548835383920293848104107468293259759923952727112497966062270152731173423902330099483057514411646574055458102744501477695114608651278502656621220278823494556349350372680687496330417985595312745040071624961154035696145678078748044933859248354209166934625613706034314413692207067643757989141661935208963194520381216923745630774304145223703811416043985599897738388909971260708861019600800935371361260942816893038473061427206409011825150608466869067337173078983840622596866962534756208683508702084117733647348799102771506280530198594432821682644677152664211080057919467447493542232577665812324104966958886344211523154973684946330839932436051661886243350368170827146375618299708353586264041592629070313465384492393548088920501525789629653527744858420578120911216466251196448850537383378262348632673837588185723063154609216088333997281493940902121691155179662014299277672961884588345469024203352320282494289566896165068895625392292689537660644770333254592095654256458849708176888009432191944250401781191902553405304441798578500169639633716204068676411964231758252043411183491807069327199453011904485344058761453617842535753954115613684176149271391960707362608894707680848806812623182855359343962384855098363222688598101693810904671237927285310460568383866660291426750170753725763571000873641289554858603678256468857077911436708305625683210876862104365775840816492740232706678480546163367530918523769543103145924729669600938068387548669992961846195712282298629198780685652140776772065984468176538179471678478139401730654012684095369405787805058282789808189530548965411378077364937646415497826896331160957719698656046445793080101775233165024655795065303972816683346708361874772197585518670057775915449223560908421218344497072350402070989619017205635361133627774245813944168253211860152733674281293198390808270468869753021788386994373692510849783587858258330770563962168113733161052782856667817069628695447094222023613831924151227187259741171671854371400367794346731506569173832205569358206728249805471228442889678053822240308652913322038496715245675525382481132795444681169554785026887480816400696800134510569487085251973224093307914720681628285159953523303978722280423989190079057047179355792335781207588993601138763933157438638039635075144421807767335750231792040233805853594580946569029478649709661135386730235618541432399694775080540376215120178803378960153908743953537318297512015154610182546943455588359030777365125655877237869992978351857529050672401535596425580764664486799393131139598071020411697771139865136695551686211085669680708331900944880470403503460837323648119890472496768799425745708624512008434630068112191709203908581547047933765364069277344610484835049920491319378533527275087900939939520233350979652809064844419688807260376238952479617631530148955692877984114026730623460135633119430313292971172821160941715441836031197335490844405078706862727418567996146057801890127979538171824205317276923710901721280610687242858001486361491016037425660276485378068838544621971459706218516737054379912170122023689552475001702987094629016280382024497934572665956418455181088225119908548530297299151359963392954451356547793541271276915102682789931941160825194165389832370942610410295415682023071950132323652389861414021523053584574488757962248519007855847021305429399644232934021165923229363154134886086410977681905608226229598980122637478722184530239456508353573316951369693140595542239059524779932937834799641661060306217507955225653694543434994211678094524890423616400925948195364643673185610988545503142543071763130630494626756127679425315222338556240429997557638609798601537781125869902694540692763160061168627417816465784504038058032755206345829859948835723397320729357641453590859466450433019209948237900359066461796029311024876863960711679061152144761047286446053858777514506535884967695985960292955052590718848445091783137700067085906394334525270759555361756404447278449402059123927491468699854432424692567007686739944610702132915484011126978575855897512711846809171718070540485844873620157604314805361578036403273721244449897598396582045831748264532970927568909552553273425186613953777978063931359093674792911895780085732241770215956000401512823456146895839569888182031933101679986396552501353592754839675287526313284530194953056789854896526402144929890091402772804683873593746090415061357085210501004280988857601805179433149579921375123623279587089045149078144977359226860986044848159354125778942871328641487131702143058607325575425354325124693783570657654857729729829692887034121428634674900692199722434334550038755943061864118236347093354255718609529384540170402882604687497583535154627704911252425775848044972546318375578879930643495457677070508208883156401799079947942223517725612269026946859736428644269345941968367198805546389190356260782730922008235509981417475894689581349607546380608754289965050912238672010632844740518300798848552378460394239635352047521310353443505617260623749113522554873745862556331176645279493392244689561839756863384488744525564119576203972752758694378129868698731643429271758559909130596072594891593442947224137190941949989755242290288500830388777799489553340931718212464599916381192787913145290075242300531145636725098406590915953090539573811217397952174047139957603520319091255169578757592012595736594908905458234167924654579988900424905437592597970871646941838182910403065038853501705550587384737001890135369461478425823291449979898155705998528047795039648176480888526188718638306643232901816524225198500927161437468745999864396808938665066201859841725975871526345194878611761064876423273831612931114784292128431615640110715847369191207850635514950057439468748968104972152799454190619898343515183638102781386319550617935557563717614412311000665521120187554047787200325321345975673640942235974213667585654903412387281560618947803791166949731467736203269276383420902140059161647387861340488667551057537188288379084759799013384954641570365736598411514077504391638294786942246671723977446943852044764574480987456038849663826866091099228153656887634973683307161907051834732462201032270794719954464311849905014153503345597643434266066252094420975514293711668555760482591541437703716527099115834352969091776888136393308961167414920928602616675570753128604713484448880259975479955568451777135413229572518474470268868256017765925515255879165617375957783572175843114774377993908562474847088850130049421197768781702891792042359607445212434447085402623581259878082475162005254974199287112102531141283412007128275514289463881318824961372342367045739922753436888894738483445324625667170554792341677794395798934424649328415954519620896416260318519813892863409002101974358404870219823047829856197836364044953200183103177218637996572519835217294947282711120669060599269640693623791212731263484703201568654696147620734982338469927027754325605142643669190895308139946174243247967445853750234228671660974571854381299308242480651296846245501156259780438825934306868468287164882686921280342484889269258269918877083279442922580338899271212252739544867242967177898418009157639676136461406880383060161557635316385905039796064990683486996963542629234920663429251799429596197491243694132378467501888711862449038749821574783357791490537362367467780247799678539607662785369164701477030465582659297211165068929834592740071896710682507573729606866783947425584262348069275165235112933433060747100027331466126308655687434741752110346960470942082257534281976409763221107756333096815456832071106860590005767544736705579223278975049719696550935907370296674651782296594104103819213418207835155714434421498560522139877973469440993806188316874179776724291900544409387394032523960490187450213966492181416330457678299959212129801196689177945710791307147016144348122445001579602856685147695508922976235755456423252825821552097525627552704769839800298630974512518058610346935964296247660775336090755886808691234169044131742599216794877281594181033198614608704687654700950933498730070009712079296814213747153392883207727519438462178402543145863121682799062590822982398042909763687173232669687780859830036261769748027825609421886563304413610357330817083287990709262898797562108657623647883540973977507534196938484211056373674440054427505482607140158005174962214545296723840941083478999953837191586239738696017654564730343796143879787321275233794488859148444739229331790478527112338609427033449542960003536043734973991293269007109730750792687697397201428510511883774550279618033682340669392244990210707766677568020035172059967814789501285665321985106790782718465124851994801800567756865386547107496192948387826436664122414226753250774883105499741740085239427094218150362322748168775245605825351204099227833029129962412923762512005743316121776848771303311071765243412301810551615216656961395270848938907686147766561527519596914919170404272757423058859587295726087831695212730636966591037757311765226275792452807354196523030404842091690378362800559266862075614530531732768134414040478133469393867997987060511206239170404284761230410915016436478649634796637477459439227070110692958269879886513399998222606762549305074082420335988609365027907361177011953754585238959698849829411441630098168409599701525103733485386207850586735046995664308781554150695920615180801077322628819080546022532538743192418056726774418885380823455907310062518645547759527190923173281639719303207696820225325640895786839468470731636640935947170687687898426803319418784334234926818280139304392579062075593491030279191784609102049280856575781732199538861969090277396018442358799250675719605456492336439046521080640237454462884894773175529006504853072530841629698441159401764934170969068328325258534201794312312407831602855493800884586209617081201412081109699224630468098188944324769705647594366096835975311654774841378903525608997438790048188805354925061976716498009924373090814078732566021686542318639034220552312719960712272189202329568150937879020241324626516745893680976497244642185695169606206133087051894506129617728964831571259907952585016120726985042093113308777912929194356469485644046438590545917739271505198805645417967340956690672509815639864521939860039929642531805443632486573461372097254045727315925972170402840959210524908235659941182461601566260266900901861244818739567479936075798023810582965752551462816209929010177734611127719291981841450265560642653012972705966506319621913001370325318022809463914039201345488825402496516503044982654399566447180985216545841806092273962647105822610528063487396275402470538787947642454297921303553770696994067479252409175092025418079256243171288184776946744919499132306947503835595731564640831052093399224969593054216785802577112488807728094399949002520821895263540735471570247234491050261998813107541874403611044196969747745707596684120350161562174159921595533275517191751861873593844067815860018407277290119432575262843115268087877015792659286373839041870777133533467615112946003136033952433250114332751751258780080840537144757440353708326182766819414394944122984007644848907557408250107495364183970442585175066042634397509364139328767094057902010780979430069394922497326842361413406842379604440595034293957675237053614337630037619986045988286744086443055385821774351305162082977908946536403725929286336966828255643838628965498289868209775598897040575562737977202356183522352470941050142218378349078577856149122797620696668898222731150851495417268644453367213038925133654145639429829775274154676747918891073628913861277780272072175160642074321967035820353571073657198815365054849806178153279620843374284836483923858381637527672457070401775619606396947624547446080941593540470091238661725843906826050814699239871392281058742664936861223564056166521171563340756865393078353210021032779234625720089205011018951572967105384989318447763800333153969313094261407707131559925118391530001489563394390943599239289270099553345492496902802981559836621283168620053121208582223898489073430374405244817217955739910931731934972861323268658770502806716248235659009443801783370780030266425480769811845702247398132971227605381606125954891900041474818846122291482815688648338344388935618349061608884744211609723836867463086821025422529865676617597966978067488376160925676194314216073142634351579030826306808324474770434793762525612809690435486572951274948295126413672269968347685047935397921390384743914614119862288056931111521359157334546540423234579754543452826116097730159069668717566315852102945935717690216298219123576699045339817936867862537052490660633855291403621434916679534637723297723140844328580286521555924908266598026401346736448952035767222739567667654642554907043615641434525676432744196403320768611640842229226990403590041019729653465442949184995969552836440278147508311853195583687571222787957918161504542135515897206783717955349696574845662088159755002003048449413212824830818683335644327338023644392287931752440179328831130901711363318994039828040653020916659871867969436122627794252544666571686993549341108308958234371531793702521742984996039520629002168349723790370483072194235990226766406933048502224054055694969660054539260411593963940143502019517372426442028267859926831957436454042979391754183149228808806049503474021604869309954700636086181494436686517456778377915316020249206151180478708766333839187985060433287104693491532011105900613522972339669754802586694849671574672025579483188722298131718924829518175219210736276342603344645118007333403808300577324151229256244744543275853146612838164725788915427335495578609106069020728313982658601892420269432351353321917017486610082171608117617966188923479413570138230723416530886554630553690276572296214671625786693355529558150062428477003903863248160479111285711102314205724299292455877741243058806989060172104926045505978817141138111259202821669815384774971781435640009078144419847513182460856429216477246553645535210597753228933544079176001751941325543488021382581596091236437489972448043658348376912628418559069919007146492111523284829389861788474239355534424739358125416644440507784063170355306498567171681973292442978883909876312730789116091254615164745911322476468788101150235586636251657882754079837565492201856994466465379817286924418897090638405284217594023681445495722009765871679883771980436908240195983965320371449787437026609864821662154020808225783441164659103296275626956877161057464105776641142486321649513009170916675265285732692447069901410452665063931652978636197835156712636292426356834970809030024330264391731637437873606870758706199277925815083142192581051492829552321840891347693166272427722379776923836749662429529068795514654272307792642340607470084429702512230867785868051621040603088751992236178365295810771963876699443822396528579999816420402819656792265825763409072375482901483345286975524515733922525236782769339937376024739980830396634246693068646436850172875746859505824774974803820350664786893153816872485996092647319978428098037470208205881668759474030578699183907061701900917320988052415719783199936305639535556221171442899746794501919304305293917950786929067527345981041540860740738387147719818265202210703614083167366491008164699264111009706708986767818074901382715086256756972001596259072128776399307300673479234601591876723199580939021547432873268483658084831151446226116746917386219138115693067600171989410613813785415939986633251872090692714462350712056083365469255787735699802027042027381184435818041412110009774519989470712393431308388263129479012580320894663792869000166165381941122267358639036937508230754290867132728381505002207189526254745418564088094063383434178390718811065462480006142375702696652989656156458344152348621138893561834271965428806000390218397661389331643962523285718073716034728529579150446517306912840374602994688165497243133864954877398368862584587839542956406156059921355988249539895684821404644064490250408649650262939492615900450199336999979386693872460109745903191118665619942422496022418631506129908665305388667076887044807198284683891526391854969355158811162028237916763282133109112795278394467779204007752239747256865128172718006215139901832843328225344780701039123183838186270039700990401245861545250198524387833720721193715457594623999280781207033419747484919123301863150635996465465841217327724086573589165420412389686870694252782948265334979909697778414922531962859645486959776859414877780223874234272706525235066561079190729063404209532211625996988234850212679167502059018517223456179254114316220770533677631629751355357290179479311231174164017942425565690934470586803254516362844131286770223307674136718288893409302095491638879008573112253497550999263779025210124908805687364098181622709637439807442022919767959814358774134382680699376487197553010307568248813579815595691573403619901655681732800812886835927640306033625759638384714569263725095072643125695047541459788672688680104204046146751804308401609942694136615691256422571141968263267876493568557884343345447052415937352856829675859625106285138199864982231032523816860926330341010538470200173797911912867246342106845164750797556381767348056283930993018249837278369722835366874742873954168546817357938770080862935785917557685839394974159031916160246732730627044293980199406023840814061225817031712998235214398121221805471663240906079377175808989774583656943592839632787954047592688783162672959654157395863734118112030029179075909659164005118145713360787953084870055073703261873076317507816826147156613490434135927133324844189236873681434123868753794290478177243725555415478665674619587154092220667113119236783728457149657010820301580419361305132254435384161766497386534376606026556055900444799000449982499431737116589944484171376726264841984087237213027758768072586932225420537846885855299999739749669598454890258111483775966638510757284150009603561349281402522727737027330141278449630543865948616044481645598208657013354243325880142226574583271355292747022359942332255254411629112525726628933836285368485541301212028409993987399010087121377519323124646629938022147472273980914560852625039042918295611131767764774141615172788866894656779159630532105310595652879727595579009803905496756950382928513200989738032878950778117453485762784427520075631339950463636492066851843692261422714508283242073595604429227303759514374311407954052136845962548996631437100446847526564246450547855973231368681254160902772523585660815889299846787062727914841986275697995126420924688532317821796339991221420505287155784381787249256140804598324372835398354643320346590757247080487067235761123809495203537625671077296605479360808469945327768365122214177922319588287896727255284219595591642203783036613079632811432781611124687699793857155141795637321566470842503719558442557829685702502428866212886394051768261982487566427815914091590921101177308523327354231815507443944913497104676374563929869743817877992491934728582236288960803403813537379264607487219851883648142193953220451217139530870502384695016744067904108240673188598568159917147825857612626540824706747105201978889766695095546692433687328394937019102360951777538196862900517280578299559969396734901541739582413808561401256094864568273325468345945778023011946491598959480862301820397166222043287979379462398350087307511923214612629547064747466187433256792922758174388339598475270640071491086493722551998339905025077902434082291268433223384896982086427204989820375665924785401091446623888115919955429598401971290557644512917846215230990298688369140476001208902651188170743514168964405585949417831829533655751128487681385112065434068746055322806317821377649194954560470516531889201887819312183070423781613818577985077931063090225537984773146225675826109682827154770227253478885729026251682403309875877213856231312610132677452201625043084727036744375350346576773333278347304783408228451445311343581942814444690278512251318817079279120121183917605809637040012292310021203827600826383637075760916706389557857362498893112016446792698014902732949252579788529431412958804229812051072459995872833803017114726663686777605992868779136701927963235682484943446809881749901704954352538274534285812039847123102766115296110034215168144751623343895697412846061585753613366518158719086579717241575052123389670291014027325741021257241823910582666811772061076057882972260404665236936481690492172102429200378820030251147893251928574052901837173825938187048810085453759814790215643529731584294918569098011871709192168184967091173581245340771131931786764503440612834826227418116100844229933747139919098787900025183419794494454240092213926979829876972102821774330481695057506991854144760549525136143144254583878099508161468718595005276792320133873192607432688438880572883565371291978781672807278592549379286676510230894212974256732623168723090369860397345814599310032279078282068030055227364066493624973521278751657623560549339420397143362532818129931505703478177925733085466071963364275883613141358240311714529377420554249697716650296331937946086685339133067441517568989371047393743885043503946799158339055604764186488296048373827999821109092561431671502515939553448445803369059406841462354803111600346805175382868135760414110825621984827052989262886845467445043515341783415263570819542740726148150880150421791623777557726278304223917413974618578776942329959730963952826706574249207433271602616614386501717492754221886775922661541849796893131613146502511748021829443778109656555614664878042258070537742787128330759603642317467332864544285526103513931801643877844300174412076391739625769773869499892627976243612439031953615376267952174070068031941130760412426815516239292395160315107471341371685418064409878220502241440881074655312881591082343740707976725750861209597690282432501922704079173144972900086258281183531730719672845001138005785557330323848117406178911833578264398238036423493423097710137239055824887975260302715147294190636288427020325804253562226463359603072186526592588982455418511549180895405233305888108168051165322792455929445115142923780945061704737842384939232541827785991643680158295796656734206817416433669206311932428538446138575512827669212335546110240899807753096571044909093042164223367816722801772387800688831042942703492337584049945168519932963925460956713802387236547478108342839324343343742885814651219237791712026625079266902799981443153391204168967556004852890742007030368231109932165692268268932095807824264271087155935166866078429523008717317670844830764200096162929793365860959579812785075574802523284922456678707235571097449521594136918565331904500306263248657409414016223591496364669609043597158201605498082903002999884489027277751091414414042263270277121783643332389082944421481294199117411997319384724276753945122662972843642049296234660540089279311067323771807335609334220524822514639270961306721509683807622978647284793543967635697102053129435677433074196780440604920913593102506682753459990345988027856830747735679945679791122377191749487277560147054901039648382288386662376194320105330490890329470550488962968565411971970256054001995912606169779182309379909113930952660935017743837052340836400378616666103448011642062506994460186291036337758781933234627752187186633450087985161786305795249301296365463368864399825828903799510386190336492114682914312853048565084906182969561969666446788211083095602271477414773739578013163580407592388235327951967488899598329133048671518499195972979250221858781768623527333781729591293089554948104270214891967114268505738970986831631434734954887029811348177736807012475678296361896437240606262991630779724254731125756364091522568624374588005269043199056515389599925241698954430701332224476332399928154181081550357741247998715993657360082959331228406261252269092841848006639680786223855035267950037356982084234451964349312073947326242793256394782523673932528901437621605316704391309511605945346718103874182973026786022388194938852685194643291215357544487849889848093721340986137737008565940544111926034311572274997661695225362510774260165211657328485752373841323336777585630739593205446752097423901155791469570254123465902860010354051069023421249467130566350694026471356909757066200721768227599667969333817703718306110486748776404982884219225117056771660806941275527568344033645150959365006496950537334212343334943249968964281467620956597124304397067376407461124358654425947537338167141385800988574641419247009749689085966875429688933297477319801000679932887944159130487727063479649702584533686415098289560592892617590954475768758182297708312889770871719318325746404250621125915143458061118160772416333966470673050853336994797352542336490447706128274972083680184172638275424763267040553972657283598633605904461461874700701985893772922500972402893693159024903390743681438206626109979548079782890353728079677937229004146105784928004827254347406372538786232393783046316752117398864518944896535461254911302001781962501159337558589792274421424408739991822584041885435855645071924067746029297222183382791720724910521405675929507486413883390698084164088809012712334021023055365545060303501264075840530503770464466999111252837446984601830176228848235066841838982159288609259578409909092767562745413888310440746000779550103935632586602445441184110135943271694952422057286044596275095259242678917301915908752050367891992612052689426134451781673126005827874942339375546083195677702699558644114552852434825241173656302102408804435258223404775619561920187284963834420305517674719203850038872107010882824688002669937221993074412588116215382158041956169821234870457246743094944279357686544170425107396138461118043848015257870340038922656937146486813746409497551219952596810826717951535651572983504110109986445349536086366132051269787894203366863561746136598980094133594387450602114158758245593225025736684512705923959096743658101709912763363023660870537379229919949597179165133613378308603852761580356650678762739093566418148561291610185268384700822594230040052983585717888714181577663407890974252116194850622758601474595541479889922498739619889478262128703615016226416606143540480611946781395669137173633456931777824302423083492385441265527281114802908821670146771011473992844602483654087993118912888540575587856572463335252546207318781809238517213538128855978543835012918115327222189410620792861730637459177703573681591148913057598223264573813518008182061533581511140899959932944795442189267393389197961514666934999200582304269124097270289066602406291830567648796219458615909234462002804605276548720709936551592318934304621275071858949757711092131991674165170064902328889927920507455867856618041813383938421051882650440008438293423395148893021670542514764282687874821365770865989972399873059787423351875848226598764785384514008901162257932741452949371830836876250354367223095785467499004352722432937139535520003293273856478849013585831241010865781482268821795271456457935631146709125074753448429978767208815093101268303366281219117409836788726911032289841305920474234991597867757771440070154478980193802610260583740849800114394296802286825069309118022950526285749758647800205314970192141003513302271365008123243725549743089353291572203988276465833079699291889014994893615170599328330897425705067954141693578406097307857021675123611328598849728505147623203056767958480823492100930782873667830340231656253980481139627086646360485696805140205152430323901814484190125078572722411827634577455419680876321860012206356371594765254678921393885320518973649321411797071587445678197523207516126333713928071642592590250292257705692095771841421999583644892446645051657569777169079125352365962334069374817518224394724929859642860133800148299429116236555550524728653376138967733166785753030213626653178032861549768996750516217639892119981895180537969082888871267896436511823239690167335716428502295107616660842168066276254409086348271603305162322710009076133786847188390632738881424672585959143134078502656772288359587578846227657616531077982302090706799370785482277079800217002862204667203900608074277167422558673695493827515730351905074047931990507532276284266079371610250270012530675552582355993649446506074632846717041087590770590133537680394128732613229172297532308641342124864031785418921388625894774526065569982734676263974009664398005909938287336867735648890179227728988624506834546394891135093559519194631995651155494513540418484621890467219114066829592362616575649202434933124568277122649841523556088451157232021188075187423325313775319395926902536871380993828762585076838232977031640744756636360759795772371448054434232731881413931530086187478540803098971608643340989578878553436444160332338809867714584970077401474776000467511075034837645737463689548711310595876640734672293637050419523449444052949643613728334404031823851896867603438482876650728099086052928404663774992918551011860282351700535255739929683270404458665974919916237369600346717771087302292221896046679687487149406702997141559358864752554654478243801592210809009848955766916290743512230233435058519608715073343175018293808837242882743761210269593085212629960689764033559513136821047959886523670739456663095663984383844639068168317853580613285739224287000125781885774580812698871113723631934023785775634725539876814953853016216362380695071186203408674780988556554892637693457013516209047493261464726851281593113676773526042055000624191887276141557234570333237479785855811701004451598163463953224308792773069284571710022807179008643988425243694260901744124667731520913815184916781626065028465889699111328708144639302439506193643505304902207223536790364107581656841694349392687701614317104808183850873974505431165573019287011120937185395081222546596968814437469139883743784724738181170272187046242812546264373846742400352180107504662377091963090158998212123427134399505798831819355042627833088603787840793388485801514111837927211663517774705909193017122583814915899758263334287136101614954221887339889619860977756433806068360558712346607746779940133764861503883089055778172594763123485468324979517753726181873986855287502720276319377548593368000291752843201540497415987012486176566718257622066521480472412520240097916573948595165480314326857089678484531247356567387427719179143437834592675242508345171567390620536752836839889543953148901954261733684421205963363772565317546301394118318176337996385653213951576330343830393936122169054668627382939349900125541991510668796209499578949322226541909426745489463507911001731253878515042283114243912661627069518776912626324192170275718281737546017797592820887138310065678883514607632989377522687410614420792429830437717644245518623367470692500699408145682079450442661136929165087029607239474971862319234907946820114915584273175659783817991167777333898426865057784731671449744654694533908902427820730748892592929036194723600383817930790581377395003623342234164098358301189493859180252104333133326655123391712867993765759271861085978670801716198363784168285792521289790229944392947479468217723213917255899770784325295295482962234575967331832263918708774469845510384756690707999326662889295892456662052649013450553920683218204829791182020573279147578742322092498936469743208350539088228720388656951933594210142485859619951592038274175009981357115720528922858257854180641129194990038232909547098245391569122142888590054594567056882464352158114703638071469620848381448184578750775543936449163499507982216168291113883264119680778699599260481292703306907218399558804274204090605195085261627678048640121642947178853489338192883959149087873392011471280849694467862055894673918833640788778970239122885387050283409861671492595292932256949921724035825176960475223156601681692006901167496581289272898626530511157063306021628239347958155232769180862736941108674864444777214530254559093879720893128758622189045068273708619334417260596800461388540049545372821155929785968106424991075096808868310467270904140423676194829777514008422421521277095127729387750167990677495041415417449361926568278657223246382381761252158807737106866179802070292922282735164209398620806868004281358244194886953996401035307094350804144468931447725534187972084218352625441813937005532058791822266640475064369702521334351330710951796767342963080740074015945225276276123094516634173522230699209754100603426019649127472220631831726399730109051629743541085145483049590049242613641377290690273883162061685267041352422531683750618786482986273527510614414214325921227481537989602847684995668248761236990237911490281149850479157521467032037059764333949160996402076562177670896618494301657705304684693736759239404430950894898487613330969270315662274578527179225994389501623841034892505056996416287181562001205358097105421415148815106312411256013767544939017606476732672044546745782789924106507878871754728511298316972458307854579524250055894286727206593554800564579380713732301390100650226480699880656985006714928182232231508889956295048924642499159361841356836887169078553651591135084310119120049883017567315894397687676756218075282016071496297020202424676960264254232618559784140760760578014930171220625252198570994313784360928575087055360404843731141520115198396952989610225162963457389862943116135782656660272102846401832029325922842919039149553700058110685331512704960800270160899006384590692232903367868551262406195603302692928322898826591142530124679729721700622572138523963088192823980813945006915998105097226698402596668707220618903929895646132382412078034976717034801963698730755494344663558573431225426941776636984216345584616047166469931244179727574791516952152707576941525056584313012806112450031424056548929175521504489277979564042091889903838192155363255632198979699590327164798259496101156040891124156061772675502773611434349704843179432258480325207816693651429612048526900078758879854556709157553517536547984464180446268801372818531351787990419397911384531424845831716251959585229682744425226441454359067859788374534530612183065212106216868488833719739574431407492569001647733252239253772064171152686672933758174236122295081503728539708153486079334379417228276583403097135686670693504610867742505108572805900152681479330192646205417011123335465905403306160141634700691918845230828555664546200699052922396026992423891259405873938671198067863915569049971829635026503292624190913200920851018790897122812942422282665598721275898997812815097918895644263484962426428042420935642959234100716410420278030698231509775531992037271683229936757248298232819023805446469976453060459911213932139902951669394573143991581057941320317130791875262539724746354407400359090358720595358876790658707399450671216236065192844333168360590191129781532027730180119676332770576625455729809063610790163428668357894508455508437361056402697496569430589471612391169160429913238629338933092152613944742912068377379766190720599230623432427812226236453285258558691861351540155630321512187665541353860800769885092633048702152492672922183623324208231203781186691528491331466451185968007188277212322526417226440702536023582409058767092658547341006435063933409486692318391654762582157356056856977710852474595812361776062280899380669596002057962417594156884698730530175294252412236212312214604470971211180285611249649316020452190540474082312326766527473072239867827174267336498005583134457701791044746094397832516790241396037392273169044947688124831002049250089917047852589835632524960553132930295324739323507295521910076923474748136462406323945329152851979316412330547697770161394801586338968379296046306188254154761282371526457392281286116722747181182508674729142874857473367594192617569932833972418173567534411559063744142941613936165259688232065989885781069243700501549208147915420053405661619279820189662889923156317500813499691893078435700898738389738026931810666012574675436104809604229701959373042452914934203111137798013436059417506246616596182080877423139623144291960092598588096368460804386262283219611561973799644985337754262320179039992594397055519604807132049756679614797075119448210512880401305803235986962855396114184909517335066655840103349022384792311237723508688679148668248331420493279968832367005256583378540742515820388948679225250125448682288436373254924723428157081539558490138945232914945375108895952947449833213910380808842407386063144951599990458825421070590908242451487359793583086556963073516185574359212437330953342233695300562012308526022056466290469688532979102154989311968368229565401741509310885913936648135959844350963789707483952958982972960268515140580069685010154859717339542548118096706908817263356510082920768652970783267644956000323355625113162530128619155098099416676777062441087624663973349881058080305158776952735035692645086319091009520836565988142431900855899365849596708536703003960932071770669448539052394055999605916021457910929178995823378379665971974354482436705897107224436636081842345553048720147418650003443317090233260691535577297325444227000736328877828482954034981634919175580810111946498305034825061359698227378104586789612119808055650837042813575348137037169598856795834533540681282916107777397588405962901930966062606006145771965424467908520705648086091198044984283026630720160429873232173344652739434792061913471304464953596706201684989288214944823311631761330893289430179108259052602989244378347115630469387683037116021946835980096279981437746851292110895121558726134151569742360606484083862371700599849313001913068462708131995466983102249643916092755821482098686401584123920097093685122626818310871315650958810735253934628523392588742294575667671489539324343055762412825278357617398313827793007521631098249436347150145375722570297557278051264424624636349353320176662311519106836256910787939673296809044971037112242309427152137209437213661333071446942044359208020367497963968471021129752663261348854206949901155992798296693273551128920875189235305548652063908130354204666439764228494367036235004974821780490486553749082657345303473866533158878879866890657575775281622257717485567100488408796165491346182803921733372063394816405908502418627414556740911865472837984712806081773871292732428769584997494514269295550574984031054383829887172402248328728843737908712668009528592386114653485279209524633346139500788057568452186070066767225790377664316354542929758153472167922726080224004912647650327248426521590482398766951749758778581160453384421360621713177837716334167171788424019035874639498776632296364497203543999758946705688467195121427956654779483706453387320722876561456003028213673600870385454688778391100838913526686767378234654378063297204931931829155704582798053460179810089241161363483613315601749597068051606763258319528402931366723864958839368120363715024140656867437149206839850560816743747411745479341353516176742309005486352555316180193246687409122951538265288657198301886089154247826323862103246733785447528141382721053302571303872899565831230087699783174292919675439253836460678217156825051491020367805163102976985234962701058351971556525088543463608689189284114048081641063062471982692534553805511555874186026012287963018837995613340391271755948545728303449415997961562051326524713134250719336934953631591557550589196329016002412331133618218352412894676199404226787211196351538518944605335320825978420561404281247725687033418454434915701114641203653463121259084891185581634093487217666385298156522396461968758732295207329624180690262405188906426494788524629148005275046146759850745462515848052338438320213284606001136374267477069921797354543745730785541280423214985177995744950286598465631585069267835383768064192683797090113367535698974869977019360132981106244205385483254772273292150851571823976615399423858503776507088329751802008518932488019207377480395146353432828473569031920218163061865127971744216416046281616899458271886913411421170328281815130920330205815050825975657709223859315275418249919840134691804819477430232843027203901945480135273544146552634370909758639236004957967799300812917012368279572124200015209403073037989880495509247192476242924536595155624809694470105452947890326157976243186041155786723330593362422769920968181000221658217438280950311751197199176796487477545751906896212672165247701254827435565679630374121086819411947869353111026172078465677753841802786719395450003974329964476098995967098734688085752989973105647109354199776529908281244692175265088388806252733442406220099607687154966716200527211034004229459314858424702510549229269169834024087306418939171388994868741745633827794536475068670696704734476763465901219228529408561642513662254419163975296486584394530291409190147185042240350325075647334518086785144302027814273826559835187632064268383222192524068436312597219655454716591406156281415657625435320987000719692625138770372256175917110337652907213588481034880979185664204916606413489246548778958502435050027054814244632933628028881703170258089305985946853709703436920251801621095363731562723157455153928768314218092665439128272344869420991489052389411604525166323309687239837489601226954264386121789052103909765407740396989279474058211105339455147462896196612094969103225938204239322554560119817974948707741364052736243659648896386451575011156570888224267565345435775660927148035997025617889354251350129124439027765261461944229913334959083951933825832938581977232787916801537782830010784517803734949509583463193875067594299014673941017674588094949431479638235960789582680020575296936716639724080707370266262502152094247437560329855875977816724439628598763002058200692022538127593411564928703885709455698416316823407920621324071812687765212530274068361290162793809565262906284945438426864716799380785961831362999014105706888250451933288355909530001771090321239471718013218955106063494097321592866986837929855724974942909433191407393350102153213342188997245204023008672669518577830712801842373632181150186493239331682255064401635164450353258198074945555844906932530971637053843958965008426695508333374516605596453270737573072530974155103716117653747731687360092368421641023531647657962242742738905924144924584131948406450613047649064092353306255559649317769106898303539914872178492886233705183914637283034740008271554195953489634374465757209515558770435677552833230787919984306826775254484927124463076304647274555666496039980959836186760494650243321999589813056796497097054700101521636728218268207772590018657004811279814720888711584549666872739574262829484777770503984725772641388209885695063970354185913351701185551552693530771032852038202395905796974262179981218655111117578886533433935249659832465103133893098261787826406883825727776151859555651484924407018745537480493879106113983275298344179326019906998638229506193378642602332100487485598150105633970763284524298785559276919267269373224579298715345735378582240574799362974356121920617096091312975383317766355365479381923823880693065342585429928844971011942806635936088527211212903613775275089194666534894744039121084827892389212197537749385033206997379264527872629555061662153079582655529486003405362618445076205845977836504159483817206875074643260404215813644141132357296690533030460313815234980328489708424206289636382687229976610821431712425656107063366438607213973811423225536041238723824957777822147978590606116972629806993758796838711242425738520646243290537284101488538027466747980030803742939598213185466529662654914476333354471200996099092359350689650459752512249192555468159845444258876804066512965695583258422295852836813027858193551021518629320845244103376569190330115114037959138476010155938239219228457329487680229926873605726786867669421295099288276888317558153722959473803461511605808775252224250336056813874763790764713054125294985258374449752020922940910792341832644320828606171724172602548440665804664791195933202701100234461970251128403474716849341546052044783917938611003516811506699326184132101757609298137523446857156626422849423182460307012662544136739641019041257898466735859624435285668657067632085759051488923750723643068986183281976929570615612488814736910077700200358502126099588603473706783549369687783309328622599420607676092328598909281980346865757397419432970582241398291974030794334288804338144860336562815983866140701323560052002516070960967014938464053860465076872523422937694131189574505019563991752136252651617939269373696182045229044251604556727529831905809936668433410735631942667617233679866165549067517971594364088106669442089201310512007961712710244482605424785045629544862910228240554756999571705448349540065709745143943550753947225995782493953192029119812590008985880807935121556072354737277950600067648295606317451219035848751131773367864306443668532735103868296148153035412068354935554916382090363744525412664357986144274492975940490540993441930002490749914130938019273918641546098973697513233980087620791318641108803361926377183695416564554847269707018418227143932971115137781459265918383566183021057569613321346280515747083806627868925296525820871689820740180605795478123653010612848283753657694981743517462467920768053120071517775632187808682589662626724056273869675303131665391062049353232377453252085784758371573588197011194350252341771142516764426376472785957906412210830226664273705294814618999375905735283482849157047002454381447684462980499543702702156267483886714080880906656865242829955927249834789635260026817723865688704378615901379569823981356527522455513026436708404024145984371644305796115338461750436380614437937394102169896412370389380594793286004003520328992716992765960259509312452107105073061372382104815016301943698754417451040139783603755770594215871788156169057798440342005294612133372724487743151414699139729438029342503453285708794473205509941496076804067518202165738051330425452829196175632844373868841458057283693003608818561172779278276616247599156718692692796336358441410497667283558973477841195411083545356118648905339182866622092403500239907337254532488732888805342349239175727373876704838681974864411499617409792627353655269977595412768506288179167891540088658336208428896270730961146885864172887928321230201547264615816427854684829221281042015787400070194246779790656012562045908051310189025395977578485441985381797243723959627265441155661824666620763757214854845379068530036939285874131833889680734081951663803093296573562789715905476272667884382667836985914583181851150403916929000820073594102507928470145749651453696920609600518650989163514554121694047378865641015563528719287150796717356359472532995148003613243003805180647174033806383815295162448801587344607476432592965733514259770266257339124603232696665836052341827286574097807511447492589060989336497569899698352114093674220129801290323431576803579821544333353588636301706749812361606413325149629978765313765528305618168240789533109198363712020274865063330716654305724823908272620391561171275584875380370688811437008096896155755515071572750723190724864610947534694066489204800741609271778352654742670694058485733760045961639391325325187142435134069664099623560817987100986286007809107288449270166760428111239440575434350333623029783555300419020641734731867646525476948319916339674681440096839790393796239238916198968515211337191045822543140028123322807655500233964856680924700650834233513091066007529407929742371017673847128007264391618167787624495837191153803580975541364621630705406367548670086871805285585962245296039621740069106963073377555960179384894588497298945511158157811806895038503536752145466248935020121570200404478683905908771823319521948534301057681454136912236487966749056475031499483370046886014449949187110386778918403586344269949962061631776373383496828089694044609448589474387032717552872138390312708635504543025114132027194161984318354811484635447109835737791025692018765121004730616979118646043936610387012781778691350647438856103583997276920156844085492036468026105802759562310360104271908038211076557801646844469702218010209839525301913353624399932045141359760334397121475410200971435120683683949662151281512687590348299284170012145525962546146358210337379080632631876413033394382547693419098298928001644061603415337314331433180005222239428869864522853648912243983659184942691984609422660575652521816402036569896672087869772383461821643625679917226454080210586729795655164104873751205487452064932254026117241799224709662594704182654474758637779562249787484295178899398054245724914915467931102017219336431658074485986811504845123311908425263406514196742109948871172311690547569303018755174948855778708442978096395602326669605638533234537407987802962498755397667442870363443273678497722610424066542459025153481693877246726779732132407379652735625021946649856371963793092783952403332201794549341638533637297529523265948024703910838061639080289165013464645363138766250943542705130551039838942580869779755873655889565714655399296374118921613738228099152866787249687439436413830978549941053909806118366956769707359263502199134648929900903482780756146927349873784397656927257067058539105234613890540858119124958955545382454083023321933971404235221582894962600032677665812377429216596228883877447177858357073809760171987336476068762783042280052139490622402057327464861392775788126767586097123985382713993393886918665074473321326634977985282154051612882932726932170145023740129289943673745965053382567290277311751015084103129381895313639632941445668183747543629545093582971674325987003965595704126198978402608511677538024844786637197891467629050363724927326980572899373556341431568181375323449621935417436517542213969487964783657036491573968805932659762872920144992495390377219705491451458793988297471828905334012432517813909475847498486018131259739420542668368281255243323774006871335703525174474914882822658499849001519107869693232527928833230062936575843345910720101741158796910738254571789238570666768987540631358700018816002810460954634155463242455315701041877039724369546422320023493197873255576365646736166508819975855840646287835111759847210526175601206249868115419259738882037106566061391349331675092293057670552596710680209386450375229335783743408571783077845091769072717623796683355684371440456610650198131933648520467477107496884516048708028988068738244278217096062107756239131534711471644821386808199972414840919350175353457649986462605715454246568379066340054278304241029503881312470647834929654364139949917828367833317504992308518830490972101469131147569793805308606638422959842172825504801118124071407070171485224034541658396997482331170111316073829575905415188784781510718119013579203575053677885621934590126841543342826680185416510055137015632755780283966906303865258984824388366625238608810072316167572108582159890834524232805926948785027767518938348574963945302141321916862177981083275175198062455910538112659807828585385334369699353981139376033045233800594698110435367853148337043218223676710608655159456146046434570660444310649630340228134238867783529221701372501217327295487763247857841451709822995930658942221634796675696708200460771429268879606721652520801636244689590223004680719042940504430929326500428375036444548297006706906175232399555831327591236300103613804288245125146718910877622747905454547910619256154099433002144111404567085782694074559193633762673689132433941552900539218327360623021095592216230953418104646181832783740928207314400501061840560914246918542279527350517285271001289788478995574142075707187259937427055832631642739751804854558302211065632908741827781768754333624642821798469859291751738228926637156033792747801053206889070268546588039990392472254609726476437726043688265115103680848044946403638582110776757616128103270312371979917483997975216535584791413068336255776366342273024687491656493141076509057652382573726062150311789019595936322319202384455192471596970279102706325045255923903086192666698656996602557390940608585357342816626693408920413953169146930372473091362296728795007098932588244208196342372940610656872292513388911769669224919907560320747494889565644693802582174536188688278835484825568127247126941794042185269026511025034875375251899318722560416949099914781884301258465995182584018338262282891799860376239910277827507461434121177776992743615332429476585633367651152425108462042473902100176438786375382690460573728808032800745062201938333382930184402538394851602748252389542270709134715965983294412324366014491165594340082009212410159337422771931792083817494828022761128166903154427683956683563053984277954952190274120799936271151722990465784354134462177734544348935450916420530999129381265501067075338306030350950755042893986921190320251159609494522198612774768944122232036137503346731135770295535810251892718334421320336242045788795677279433189412364572723778246283869913937609429466948568097612251251956997754374874777371721111105456930692577425011665254586734907685248894426954845772865562946548183267815065254494673002009983731010918451304435304054673927717721409646400515244294005570760615806636514820669595661103005392214228990310580124702504763334803790026607394097604230704768481025166378340373956796687577589202927541730813187322859898466943573555036242511124568682398344777374591861852910858597674761897220674266423086822561096656172241902965886224268975094131249096960600514296526499718861942467766064837041682431135125484571972610850846024913628799525874879728802497392385492912278479170268886183920065856782236931679500029606522443543454298890571197942638787541706221016173227073754742208955071584958382214608589987491500785088160535500352442576258322445530463347347611004482299265288560843144941407302485316380732615095732307431923648875420192175296432786492699306213227166231177257587272840701427023598503669107927697587472626119361148671799178157982427511586748703766937397328593828413661120088566545768277064945290908503018060695566868355636224656842745430181406802456951433166735699005285337988957287627422312862748036264937332474316633756652252139532965070155415408086197805436047915422932435253100863535084052204397199147354406213400101087147115310243998337283003526611315069790097727495472383186903996169778858384935726506201384576256830962427379476182924179968287180821114938350786638805324469881940505937364195891539414951758929327000602727667188913611455498165764779475903268021304421401578004222389980581805551318600191350440304670821128197500353570483002573889714165205564749103154506477012778936215886340226262308925864566907792433680366952613208427206794425209839925131550776768608553702308141661522649959508751584396276507594890162727518462017504309768981376942185008245754938693528935052786865185946666705684704334855240790257903049351935536810579845121579304864129432948945427465187576871388842674845094273924357187908300320741501665813672259258376503693840993276817897059484202763958265389568028242270776962411248574242055703888118735633153172442952161581981164367455686509740061022297672646167942755636457392315348428083665903356868464135184378597003885017415452095737166816388700780410684193537577764617533435042559473249245734390362915037680796619390464517755699877786303350269573056026004075873417426498732171388424640793554460002011798299902062846758564020934252472679065143569351567168038651754778539385015207306647880921469325900178628726305400162648990934588253852270313004403280226362664689265070092043816951389743311398119410656189243792365552630395565103080053167427019657622249306847830382982572577215814172991871411317705260266498673377387782766503532178557048191512247990692354448503925729846179224256296068212636028257461663309587314536349131900262610372167973112155327405724188906078757918824602190038058334447928225539660750100602238820986231299048366914702861191149643554428901222905815398329044419654801915890584530816698405720173511727830887702949049445245740642085496229965508047193987257314555831540523034176913159557453277050620272610682712833792978293701561981818936202149854504415059777686449472539705483122819809664008186092035447035892066811097412312397020172920387214782334163869792784616814717274141965367103819699626935304659464644844409198245536364161761432525021545698886449530717643131778886096903974745741820581674948550360061503600681561336231067840195874127010079729516698105004668558688894691863503167228699761841058029097558691369822068899056869036995742653328563850260704906784381137463774316702283282641096385865101488393362467438593670476636439349116941624683557379715581628223226530982106064463943125097112119205717931296344112211941479253228171312086242930974677019909605215331907872687604733915283589922007959374300374641009809698166012106363907461336618005962803577025204946747388938841981042521459248836317534871871928285756305121769090723157336659390513654743451422295337313390240680726867038180823155620661424395797651009819860011995595602355641282897311804580952991592706205310299784729683279774393778744881798972339703043875464031192806560282391418521822641378449945806762094551349557937595893353253636136505530410279321847275313355574709047391034753165711259386106888499231632236458141055248390015270617979894691771292875719608274972273935775476508219973352486179502880382537804994730022882504694472103426744368973043351658321038390559801768379658183148241651774935810127546700026516244404600276582441204730575239239145856177064366332267816980097270419791040429359704504300829043528158721917959604722222650862638361377610803937808184551882635025765711027349443517533991913256898386479775578646344156441982580352259089755703799080544062256696172113822757486667405125017169139088982488934353923270143028269861421857125220793308858449645083971595423206301485392880882513888784313595919794215348525552296998024068796369961246781515679263269410145140926088228691249701575562577252708708060346081637700626512594756160400002837743633263040409050409049004868672424941845095408644800884696529358299616673728560704217762616322503937439951365401882952532153249635907031447182060088365762676927622354517844695225805231043827004652240496594053666324114555048691917178624994771809825719128008019554125168405045603693750387907883285909012283631884421731782553472639793283684923155145412564756903710607836590955701373929891017314920208889579210884322321982151978211530182426685635228384356561392025887568104830962744075377408972950162251855235711408114182412294698885599064684391111018117591283049834003885003014537869030565142874189144812685130161661461554697954858059403974371718995810496480726372514992455557717713536472522691936548067315619269241480241899952209554229477159339872297187557429469681949061142461310036860125089835052552525842266058584216751989695734594466906831230625548576096216507784043121850262511975756740844592082721691312899403848424170572095989936671101979953414348545768302430852469861273045925481570006295243652404851607353096923401636226847275116900308016911662811734553868773216399769967166212369891530320839103136970606414658115836101440109323053761979666812322917690753392856630376070104100584576333792175471070166893277344825956457622711479235019130060565649694474073678905749027621165387646937375061128143985087106828536327024205355180372353217222571938530531818352300283679764814094867552342934157106089893716322292483099389913326478191283664383648527012511192522591610511835312579796266672823320596200476423996576594812034512611985865655007042129713951010097507242687325197749272869756516973817513742669778181342117995602634900527166452884838742854374640265730531992162849459942915421338654558602915225063740616335738944462315330257199912672073215264581323792325765917521579019974830319442935419067640422463467062039617786373866923434282935490430106053327597430427297684718441730348297008583642446954258919759364059423682574520665312325709858947510552408527334083361471539188918460818009627718456904829269779871528464520540541241379772064617689150078839715514981830732317936215634803661520163519515570585042157221375363188802930983795504197234269155391509112657960925500580443869586912784217858059708495062138543175805832471551251785941757043066634552672456346174994827262126486576231136163642417157371559598762048296183511949520130126867077205263532290228380532290979360321173920621817059962092498640662356752211126126511975146101990439604988295565709873927680894076666416126724088736291537425434716655300483675889048157088894567825174385030160207804859202827268892553180382009775911283460659257688153315355793440528425635235981488968990522295561182040438039484347355026184231762649985135242760939073754179947347188485874970925960610114074158265223179468096725995788104501668989534323329224583988506712533502942300270640588105734452369674298077115849607661259129053105030125105896464387895729628868528583851329559064950267878550662941425141461550664926203602117764675572280105926651328798143325131238824819124797342389176402552928981648206133628580938400068801452657675469898810595171438272056870979242669449949324974066181066600759949037236842516177968373224481766579241422960739846493069029745141629799224807277651683544488709459978860889957053798201084261316030512539352272469220838206623281190868995691350056272765796258875201357315273121972169368537766982372211405079446007705217976786287926021113478947548354124695002653371645822715008037077912759450198437268921017335232249956536727679012192190094977741746960287904125400603825423443816186503582636296975683461167581684125046101661156238089340580802108888043516715980421330190655130014796139266381173243389857808501356871065959277925158366823227841268714764757586745358495857454523085137790188118440367297112302718960275511280570156500137164508350462373679411857123515417896751407324683769127915852307025324897264722134084876133473528080895464950990287896903906726165623381937322728385071380764766255595040353119679978558012293878426816282944973614091911983357910366617661375886639369230428710824075208992878490533887061954598787622541004335939640743721311132432977427397983595079873613870675004428466348764483882192318340946131961678929261893403129669370749523523390566533095105076370154357574864985723406051387454235719933885980077418350455599078315378397269665456686361878562931883279250656899000133431900742153884537042485770606233812376389671154595845580743140091562971837345338000739794327268097497056100507234068065882058634829304850601408232017278923711952148274875383125964761755584033990877997137023046961645602566428201177116322385898468724525981124380447129947329545067897520782913799783728837460427210073480408624015539226913312860620128899284573268390976230700946490625153525559020273865665689791421292733694435784721541835089559373552286711604838595016283151445363790375075101632356047551954427211283969884897767333478819618206644595287944796428464249028456121173626758309132068559188346517662873378778381197202236757910396811399955050168049389843878450829695463581822370463344729329222923867388740876819325423042302215904589255371409855587211642627291621290057119145023607134217334710724165428400052873393768451200287242218234013382468584849557648248193739155066449680375197166249110034233829068959897717543437035314888322575559168212853928684176032323521359336638729153520061149044929862298583369193118646414742863751376637230156647908949098554149901780717247976879910416768912254259617266743842340080222656008124703977372746396595536614319915971494948023284545630928391786012385169042475360933894188512529110547712067266612936119701571403303246395879109523196023240570533641889570550744316809577308798171394140325344615419218945256777353486628582896691544999522422653652836761536782845297931706199853968127632466817442964655987832272261325436214446783596352836041409304748033245758081254787506042521506714194047357064227398793308032464554159110485445065101607761090487900070235056443264126605729895548767318651773910858174141868605086003606149857933131567105624210729226806119412697463993790826243471831668450129614925578797346173244835824594053510868424279125687383801109270726517105443384067334185128132499227491220503956164624364930159669211042378406471844191299613713790036958210445830165262606572022555447173156569026567885035129479862462486071839159921470716044178937882862657471254935005576561690909270980925924453302562576654747251154382386327583693334366747906147927458241056987372751368021718713431353750969668570802151819753084554462923304648868778220032829407686531271022909126596195794932642348974954349171651444076460152934221384185509054552321595571086140810627753406977131537305166135782798282341795237170590533821184538058254139310102064348517817240465368912720656207355428295054912824708045556646504227542726024785419999372180886680948827678304677996631388676838969138758801942693270479655940696458150630791068685305716819506318032964064370031733856872135080131710992714991954059430940376922560041077000842404831541088260166777898034537521028860377609633844469495885248504928734288178788938075954003026179154290238954421134176334210965229791647234056397145683405774653802630298685548169799298085527464532816188124214895490945203337558877493792120181194334966854118856104928543956660824083366354820659392234632172721656071293598784180986117145336952643489963888878844629098151147266675158427768263292355307315981667007054023086520799829322663189977480841113696950497794689473439970906963480248651545922625345403971620292682397589520028391613974192468245697778132144191811394417030744589146824038235951086160296882206765393242761287673163296200074924976261414330545709828883875461950049214817766913010700136575233520883986852754185231395520252457083095165172855900122051732699272477308066541328121192186048120427660885773590663454094762608336643305015925552633797713087205352332121207168095096896618716997132844576730363782114134715860934196967738022862729658166616738971231459170700196022232957707277492348600478075606011448556421300071584421894732616261679156365439385807943065111660280476830972176999240450202354457129745693403187388784707643755621012132319204311009339394783030656694198122857390367712151355362773973952395541453194031597121593424192250923526714418280262577275335974467572393487022452735913764271274409672710472379798411871210879324255254045300121797226371354670214771661382212899467687740776122022557600745824130878215221052836354840552163077522208710377523229027768522662931848313134253533737307801345282318177694162201506695520423910881683252511282359805990870389240377801780532665368932670273057869447736690888696298904305411797495450249033510829841468211212575755753172558692505678920054775245511675351811163543287857746521789747485137804455229231492703727103324107446132018011785318811260359876481512527968380897063762324543830053906756654460604562924573991813471845981450615586931001393546626098467576326898645627977832189419047087408506116007195096598848820710920550622533950898959325680063639727055374197306847108582163980912058188041938797195445434916384933099960717526891775056866618992772292594601886613277384988119883932139014212973948585323199757719406348287121546516943590136702236043954307797445706220961629255220797968173944031612795327440195346907888578942738190491698679685122655134674692418405604016831116043310806619332856023938532266105987891060121440593142155477232390725658561887463960535104562468041241752759971896144877831269756700576827585522609313437808938396477491780543639835035676229323247753800045726272272949649095476567532803874787911855078957145535288173963327827249017936575368418475041102570468553880801796223775882583663473184095097383358984468085684679032285337013818931580157856563799325402036357631122453311010128621594557637606026680519854233119980953493037059891112842856598862056862265106041446168946579067062584103099457025443972607893021349675529762182564751343407647764714921489981434172314547679349637294423665611355834488306353084233587018290399811026443017154837913822806057553335058977053861365607681622578248423356108473070286854575684991401502604117070793791754391440683224942003409008783572118758915178667975617044195934324135286887714666114675019979503635259793283302575927569982534081812418185270279083268747522891285002541922268405772759662829007018651002721908943718614369672989067551412350804293983205157399723465189975376715071146476529034082575022494861689433342557061923898176961938601668908980202148557882167969728779559793057710655505880215541611701902368657543195158614662288638481238695351956433637830176925012724741057433825896693840860007446139125356728597926710309546144032867273174788973395290863017111507349488187721032665147984902298510441930242092864897098562347950843809798197222007505784897243125575898816127461258238301007973928544469370577827724803001670499102522674669566279438305034028209392657925175897420800384563902876118936334347401791051044718022924256262466615699786808586518863880317004764756304141450931524533827268314647116247185737342526634391085130211412644858699460399479277166106297446565166946535963792326221555185506131704962837640158990450823743343717247258620846846786330181764367286000122670435841402755667186866912701878669703267001249339901096036301627684334212722302038933149691608292051531875477062509014272411833444690578759875767091418885774590122999455331725788353229993086553809109589356445080482797331910643674886173922727043956863976999308933159215268445371005709353779794926783237459617167886921853693925975940411257043729576701640210239893988923044865391793523409714272827625541305925435877246330880816711763825767427053846071264778003253043492765748894628350115255680249929504074848131987528853638878434503788152466451702213388212532931459646955705053467717683788439995677917109496239503416810277337948980841569060537247213884966761426542066318918094763493003386069769770852620161256608891084481352885143547817981459795477848096194600201569973489469774034286919161807124225684503415856226895843448561670406057697218853628215150086177054814987516646990562887043867766553729016769744773997505985666691783757719161447496265841323337877182755968124160106443421291102097829915372396535371491798698929296681820322667917652044495032928007433467818988675762815670771414492924027550449977976013541724081588181475517085331011233397994510916353465228294869153627975715670474157093594124852763195233910469118292099523915347023640056791291630039884764859302955162925354108305690247136389835019791146976090965513185045878386771220816966052079412477774621004821957726539907231540068560704276803510388549749038661356340161677658758636496454240920532473618422769615188585428424517635997577571355848721346790050012885786305276427636659180068296670032857861523149298897481803453912090177758603269654153351692560180401677514484823427359785534389111616245507616699841641472139459280798060445741605684995388415556597132763182857205145535418303134100752696928845005612725294971302076437866737523160791443710142511584139258602598630794101672224249452395643685611166076351461344890271817376375738021788114775632618145176670162339035989784725969536310544567791059775383106440148979174833167795363891333939140416139097171236172625768892010201825951261412589271576342461228397457676542449530241582266378156557605047627330460871680545133210205433718196896569594976553244911552448762642941297726790474227068252807234957268735579811935843897704040886602517628656869233558245112490457379054008787213680118395317610756973989702021739098412100302145247801020958412388326675428897108715517124867767339808938118823038622772607367073112794620344520183434425925363647016065101575384931732417107734093334814304236115279518700987887613866755675851437911700536912497903971517156709425488182141183855802639907617742599165739311735848362961978980581946494213635304504993161696227102139156561113676483650504818767277463437831010327343638827013568827371214387923207937675007575768260156206560389219172136630783645865943891561690941890453575328341710800841503410954810218933865614760325356499808916805881632666405837946848272629331777269500124118380257686879281264535639941369284174136358219632735499717780470339828907022049530792933113858936442457162507689024339638776490044137251474167178754253184293863872384058831457350250205934379154974154248788705497498207737306608983130771165562786955146771682051746153920198420292907815722488571669388656680210918946899024349826477230016828892406680323908969245311767820367690260668826745245009721570942164628543796814673569559548460478562630496401430190548009393027951285467389715546557520221949652581186903293503922962921034429657241931371020196450811129814675275413210666528758171299667310133078723915970335952105154583029272001882126014532894170911199165583889559108921391299443087836272650820844444726047258447547226564587051679905797294286807682046906274708074098726447467146494412001621475262790628581553702575673336214154286861339669028128112240215387240052502279421154835910837900024096460097689501223503679070317275541891541228970788368422208430411338678531711761309940043935213241283646562270138020042896593768888940391968170116503760256992121963731423314975506300354971821935338609240455751509200649951209478165898613446875286456186814235717235799663601816327984864263191876038186485784290608367812559698268680549956298533423896707082080308072897749384496153381661392679678417566442926856128027081600036708750751667194314023751150192573511431991161536480336859326832754276436010140127578961168578146411054231176201977196838134992121206361709386711759820965872793815581565716134221709122724649891098598311588085711684298316981567265309799982019196396937547528273727459423607645393923975116392219523285037500884473472637863686805940426835306630920505917000827816644561823158176081349294760525894491011006376235533025717243779789523543710819367280871687953735458790833939837806364911859661404789402969962804717096141413335851732195173856170794583400498759290197889947749214218829285614952989811409748946675810374315894078682009064113064877333081313349077822827813825404176904004214554359725394637405553789699246074837207575437534567162321362246753602581572554777719435979362888526555366532716042580176151967264405731979862241183355278002712070015643091108994452016309046100889094708084009146324176704007583142695706046432209690138491472780292289873249060250841265500687988033661230745191518190126620828002893616154123860726178067647294431574440444951206899511107711164185682369326803547847612612796698478301632846309081551182057368300617937725920939517494866478592725375495554319607977511174866034934587922086313115836414059557767593523177123373365403566484591227503111582032296118324332818905294232110309288817978491529752150096651117691975200795509292355627422630117278773330999775578162551273224000613214582919905163327815749470479951247327359725534654243457224317527385064830106979490658351804096192730395464260150479730892482974184463015405340751488541401386220104529787135656491402893105138151406393472159246171700401251352251058223741722295506043901080381981177763988128507619938680797965388718838279827017691511644103772751844038084586233932496122225134454562047809269862896561422829834508891678774528204415845665307485232317113569574450914089019784787538915465749090746637315570193275421261276110534303335058740753792907894398064680332652377079313480414266928013208973182448293586847831439299301345943197422426555247181283884402322423044884514865514835606004150510744718688989696073776789309248497862182288614753926598143710536514095573205455280766876758755613138513612985944288017867807493312274936019543890352730878676422481002077130856770729581922255821689117117555850464112479464715424469178340560769357406030579158989076324961094414314023082710886434071502291018048638436209635169307455640998788951669052394878876141551419926305628661508517982182587216444891010764821397183536087955153269778851381446223432985973919974961731339481723612503778408514184844391532091407473189461119322246389778424866980865943625650401185702712948995013244294864845378842238191076385101799998506717061338972293537080229200580443111457404790935838658475694065865927449436845802745161441741785745140730597753091332136878697929631698011338706953962601304059082271286658846716377145750259402637823500324027673560313330631983700103714545171640125623283939788034735494461789568734708528546032029025011807467275626777228933734004927427527477218167203256111457815579088121556566511112303486779864781269595895043174070712155899472363333304396248605670405689062041134403184353688250317083652468431566237951199832530054758016818698747810594682653528094412920778045293804534189906075841064334955030845784676196817834644571036998953394871061069448873616646497667430027906284713839009677090578796267861468670426809595301822138991671441471987232610656471083786809828874148323952139153437507311642823308424642543726425300499738092967717698589565046190952119407428957109282464709219205950879713484156417281266410277342767069313221454732739407597032840537895162721512165879800345985958695458144068738432592283243561737144478135987509138934716433116690067712144632602386341044012541468659425934515300285537745536531670510641023336806600920494610692331730762609985211811440234422626282058824019855824891360283380187430860498944089885695483763011075467490179929433635380334090227023389183853027427485866403407435199520316982961510224476772697113347167387123114403332667343490199991217787016006000203643335693742980177227314501206195954426019692001196339826080375833109564390837713802551106328208648881404451474096355413908838638480377817809759036290349499792025979200733004691279546307885224494005813309834080096953229438257926716986937049922176205921681540913640736427577858169035362744380279466092663639514921578194125752962132533110687243237128010651334285238155109491438728226096793102405190280083716033946809650399740375595774492412172870412216603972076779723711550571722008629537851564757068207803366395176866699694764121998047438468968550299753759386953854337757727185640208090790055594818693240894827363818241397517900416990110386302731930473726274834475489575695182602497263444232722776281440612266099100354381709111110148248692984177966917394996170803986123801438238472331361010607823851930885162455465266465494471839015460106532502790998398662340544008242976662383496173977591236250234295292488974300743979702285718145416457724347912022370058533427160110613523308577612523200718525452729392840437943000801328187479049977322185726934978968439516501664483060180098514948060355467042548774867319518402245362178446608256314159820622935918230754361111850136415214832324384445503289290949429732729388696718744315486957088381524963666798421396818517090074378808877028599751912423130522629194412022697867317435534155299101952069351112921443580700977028136644332214006988586692713452077870685173745691326161495657474263440454475909308001850222055808663140518881049326012911191508515744994155474922744670228056939698778875473776318602012195250838300015355818339190757663948110450911635836944262592690865465257728872091715773167428902646993049962688112901987292021915097429168430738420718843117197451886199442797135403255032433633949291015380731711214712202944416945968126951261091995054161099661523474823401350160544399421058770324667058943317291156399981468006077660655412967706867623983114740953135593529401259878024556917662469443240890981869024840549627378105082089864066552811590556581014682083032354389018318475322848063652914842620084458530837949705238629002160370770284933769307265441892681030239618832569614583166088875453891962048825999067681462548536412165477412495989513882065852338390775609395838851653048919092269127752533743941477436637335002208267773716836045894037000381098346333780107786599532992069776948028291247123835549820997420452693639030041236188063829056144331331866693057340695824083031390357649233499008249670004971187026414204473106228232072685110632079562940153203503677724385727098207556484871598466166475025488339032234701075492514685904557289108112314391534678811590822631617990098013224566615180025221028043273998231238060315438290994812512440198147053748272049893068319338588444626432011031575789782527439029970021715586330331640272347494842276448675270803284870161935491596238605426311785586990806026616906649284953137559557013829560554983823014488673533349894369815579661694753927829879884049209397477290345498358832624629005318066496113221444346186799173208785820707781323755148023894392972848066804083502838768421964155412281492910342747169963644958358766537416451689039141249386475810480784172021557211166984510318204496917260166716176733404440509374910526234613263278970278364330213098936485356213642238292585467057353085317290669232015487685779064792367782281311134990341916995010123486326892339323958130301975537846960275332682897752823530458132356480144704199258775493064242288468617539796539909009055332224058736871950106446270066337870352117337502222054207145095763447489155603707109553093107285314267921281181488999525816456693607004260871568055773693620555013915939340968963985478666439074085100394268750865331405158389848770837770178770153632250909542934310161635954688367161617466422449955493085743489321280060408083136153070033287886927249046595522186694204011813224350743309183977180928301527184697411922710279604841178109610033267584867394939610135129071364939127423083433541406837428190805978784205557330038203212069314415952629731127821351654769863168176585159613589356236602772889551403457777486540168105979522663549624856387859018361781845768069100146983985270121230302892599829726613706923452750553601658362538430488699118998924140592551726438990075165515453951627951482054450979585174861081038401292880737282926554115861979003968618527117420135963145253448854021221350173540207987004453724213025812380857646481245154546311442545979510498675645725314769976902991918706567610214915072155854307177916029516633410354490890074211799111865872401525051894525636248838720344994440570267048851814332920672069354386455514906870668009209167039162325571538361820338673880716832702851811472468804642303661243085905576432254210859608404628081357573532288405481103535895193329308050401764873155976312065917694521578674304082807590065462344630749546994015233095144831076966338283910262356743025176903202098685795372780912271994419963362847198033914745682651184870332174367252769189543744132547511704905545599119860376364478825777360247784294388800175245656378661374677278861525638110344263396001212445461921762873492252764301826137130000928892915751289838928954339623840167996580234975928701936628471192911193638792314443089942266600342604381763398211418373944305670690353005151502429760496103682716946143976348069745473469796070226588074373420983428360724454112550795203311801124866800423117654799854696745095947485913630534674164650797462996491221078859109385525119693540329419088232973510702005960446104073270685989056664654993038284266892671034079775217282981191063956829952692178621190954696692344120736773507222099894881006493530871722033331034843058523048652542029355815348141024499780061545332560699393297340610087525381630455892224894209794195550954444412051328214527002859901194348393715084020321070428471130251655490503776463283706046663624379669792009185866314393797780798260003609149113254823803145626735409066194673915410898082853775230839313363578753671050146879670041638821296046923689320896187575273394886925790509108217357111520395243460791209709101827068335392953379257708469630597384480674309574244292094231983631401792799459621018942170584972158292780701410692031381924065486333204965191583690907614578805032129279946986036817390591686082428829022182018519339954112727056412514389084786149835035745061807609055704035786173805816037901577794704416717658276324721192216933042174312677670212882679582542433988786879936307972067640104718152696628890321237806365777093281669880767803292441951168924924205656631133258466174119750591064580990632227087766531732432999375286884615218156609429592325078634103517388985155911284647176419334518773325170862834690660513210274361904444354782125869194044275004600639756871913337544465240354265001204612841987345114053812957888118383732507936149597497979125879637046702559689566314190739737355009008218047995721186967349961245080410408682939642919540346861655643897512211371913819357370714389639365334165050019733797152926336771418357515684871283204878151486369882400240066384256576100117407520349603754407778413399971519836170693900646179364688618159455292918544476481053847989466444125703905963228424975991179567450980689613337467308450427118232623619398145729069133208876216407515135547592227511970506466964293774779598547550158586528490737606331309240183930091467791707259787135083486410270993810757982049180599875073766155834836921112841511944928479319758289934779086484704765828476937849684862701723781523570377079008074166548625121899805693994350106194828419754759340949355172885504686940729944350691759027950438348080612864418548361002360360667837055602283628763576249100423564025023160151140648448743510468164812234625372202113574319758376679904855079398846423401907007859726564697988860895212741006477220505095116354704923502453615450617187506909468137494019127436586686934842733178334188193002305689853286810753754336352311330618269987813508003127486073138152281971701654148640045307296261550505123469072119632324561525162344083524049616749982990597186826442665069892045348922633052852943907903779935450144436756672907884879317619374835928723036570077818213927496026650022188110032323510172652536171239352885861803340416298727077493312861047664220112248883392855725984213161068872500976265817392387270970175676908499696427858029969145285368911126833581535343483509422226702937394983571700449311152472500722765567435161954781636300687304867386172306040378347453081731692541508037323893292721583644430038662598601317176397605454439078443895785246791992532810073656378523998117315198835929523219216881604293632997967988924376818373171121646205591959224479891305998298253367897278641407119181826733726960821249015397322009900792177667109239448993298476061878906216465310933123625686218064509101542522141162402571607544759786453108371718773672253866388117030823185036847579134892695802091016949688657416350764672557671186726023120270640432276298791242077777090117439523567068901869089659165329346833122431162216618409939997506489409744879551612925567539153480928771397420007271513622985375713175466065830029080854335339122854546549291060657798234658798544781686014532780826839148396304820187929900540692439779906553394482482848825366909854306341225655946855152692258689479861382154591426080112928943174414083772132321108061501620330672953471182868763070138094190028436903207356423030290797393161324596556755672025662563862775803433213604622411890958778129417519967611002133366868580173501166116293606792077792772099077139975209189776160787634594816344841990197903181748028354306619344185985923755630425840342027155648991614397499743810748492214407896224383756879387721456458810953580677001221103594189991141486437631001513390497822605227062132010942668032032992437928347515604943435008170512041634500469042167131185228996766091292396284710802427247428150501449857758354147592659584349805471343975628736389124467158028636734319033425537582004030362156092003780108398799326171014166273088079807924850301270711785365228243208564223787845555908690396274314454559526591040471266400774748231645062481126335219584411042279331075653404444001708486070494277124795578064500611374342507520380828582452939126280744360323504540048877949918686969745149459587815745129894064244121902758268227996027481346886456663562126391125021813583521685119962165179362859926541491586063496607155422609239575829205086159428311998713773452982420361745100232736168937706775206080972177510583127630843841805417289451366786753165606338893335149354292239996430796547810908141598464313848213337934873790128915842416414890483347285111651573999539104206208044411266345842081021303319762282462024354713487161302656812720617017237767532304436231925547423343038430474390255950940740641553107778512408895655373297021505042360682994821073621986449364844431351331964393392768597701286094111266377376850951360092971204399384375047270460382698705877818004644665557282154885637147719900226406650279993564554363667428925395919004067530093890253310813770357661840434389905237855686897940218154864072259356536794624750718836898747328501311498844771401798890369787500486032847301068925384963501397031804631961754979534990642654702580681811779306244722943893016461749683593323401656794073832303066788617889161966782918951408363657805198264350914044049222948428673908399140354302910555874486813783486747772042313128043047920659680044325994373404736352508902806943112427958307669169504693562817130954409944291800223164592041618748715985947834616763985030618654041895777605802977798675180430899690415704884213251287666385029486959952193937760184747256410872717864873153635196892037510902302079924592268972937717492851814411658450997861018244684511715057965739206107145591327165001391071731495949546366430920461418764827740435066996437887274379953786683456731756281146662675845772812456855715600111396339214216144184707559359387328850298921782848551400942160304888327244806433684828638353429807206203971173646366740208269703081561593859084578963842367654897944146872160645679014849140671105141283997307321409508906152641067222937907074372129519138591534651105275468776970492104966020780794350471766904360406958474530724536496388340588162753414656439090846556545469690407639568710218372666301512149404946371260262954193126986989664528221595549710584627990135105229227407628501590970712617938252087900400296477971138578741194677503702151028289437568842873974795220413014522315470821836229383984653952545293164739812237387341193754092170313238204948144833708046677880097038121399059097472694744505053590835751437427298654787032728862514168187075219338345484635999929851865374811238489396210678957272247266025079435727925449338713836422795315543641421338878151555454551632287827600236478035216987725320001252135106490247702475360198802114726997575572295168979401379681252862108657962195746397633519350025698999899841815935425470208379167604634580345888544423148599410661765817285597128363411346854406040743725732817748394347697754182161298632215418751549114116774581807580380008955021374619189813227053959921761968854724924104272029472132946711830159811301095554375825535760022329831478633769028524204791631461278656297782818518369299793684038714852752409362936384743336135914773230430328459314722533695656965578253921933927276439615411278624498422036581388575563453304770126034130857897179007419570171389983370575576638488711505577463714611767163377666989311163222559784215086254521339821850891143912128872462980856837671618566781623187690989802485625185946733354731854858246951656054208129939197469483857959459661289386080932116441780865778613064942847632965588543573942372104672497066552375532494061047628679770082971958789157034614104397127080503723558340608832578129291025851852099934489054790055183170821160365958722792959596941584260069144627058817598380591794223445373745147563845374953610767481277655475916306808203389438148717575424301778251577141717744705260160715692173799176702740570677878317909762430046415246670500179012430105869319070171044812936241844891751048370618087351777280801337677693377921502124990128451959115874801778718473304966027060462796452521584137349207715697676421341712317190577486444321111305236872993537824169001132511785728499431816271928288541632146898133824696345423312190410673708222732208165059116529937013156728529438779151892034592818473270626831226281152699305590590473296253149017679484262349264754793608038999452520392996378039880011159039221206489679020078414986743410259665430001528624148001968043167336948371784003452804663923398176588750794691726814057984322720939477249446689064466330607325338893751812708040615905789039463776685238318818276220271864755655371144140732952142148356485913234263317259055385449002270482963409657930766242621369211074058807100958734628393914165804466511893096945717551315977247245544826565977637485798474834418776918243857528365506936333138586720192585179334216898470069129147172514105133046884528185581036403160305971618375024750369144612960045450640318472524884027696386589594351065923227790934928317154786088963904035705810106695901666911100801770239298993596096634964831508341436700649763949551671210713962094083126610962907974305745679450621272698301022454939262786203197135933354963487872980510796200360241774270212841382834343027025068023599630487980169052659592528457133599843472877237143819102295669402644910744467115133287017129119677058459723610402351171907734629169236325779209637885113929219369508308785433183975335745546483165872694254686970776461549892143973687307131834912950817531305874412123051929140081665559699823078737558470904730008534437740353643944590031164871080046370415609549011793727448859017196613980397718602398125148377116680358372463813006291582535473564537828857997798014470379546216831146050164100386935898274250011456199360817494530065445029859688512044410451274822235433778299867512705626619966497856584871889848786410647123057779335555316885048963513301614521863755583411261039482282763083142594001150079495869671623970628879481122913419403859537687198946633026893176180992263937440883406184016168762667076400060262722345343691471049196500508826584616718445143857413951574365035505859619372805941714097676132574929034225303715645012773034933718733730233175274846855582799498556705175167080363150684507655199541662410592066975572065102846553578042462713913362382595058278536444996513777889504046492349811458784420204707877909374727543382791404027854812972860411861268851356303755948436080665814769881870174295308375090707045577710965295591080417460663995746158483929600266274338252530771804071172752278575233604072264020676816778623725646562703593481807682101342111632496778928976739654755100651451013369744432419666933650405663804100627975012378772207111806719761482746445132613462579305160172379290028446579015563565748096858246034904469864694426303237576336437541327514412721567694296375734178010882668386932145849603449395378295467603125732904196997677026656338557919261376833760082740663294040660851023153520483941528978301932125213008558327354940753686542933179090926601955142586265844096510184932892583158125228752144849582881418357695192220728771270623983105911590200027726067174655588742520088723435185813750650041117544758340188705412352226693409590527821741179340863169652828000159321541287214604897672780586762771995844544010457005684216168660668130904653637642797421058336326340096987021262749183624718187885893318101811985391680474305765313949100029061440448860260454195733130448779707372658304378031729623397108898901292985620844337908834775564011971659289585469261400051393562464549137821629110106678523613809617955182283618060257489404563309148757341166661941448797855749034333627741127542687061152193183381866642608476255758558652126562491667589362949900548607796438298142497141459620404388701951254932727091614090808675620715963606778461702890217651579786223908558848328774007799195873469250158381114885020881163324433141890054776968819995898470197744062294867616353106635549050960498765435729132096226916084235446522958080647918099341499509980284314698557657067362765194160841145984705313826506348174567679974238216620514017424546584262732985681343560316772637942473522345498172539294833453671822141456520129365808115905212410237587937972552797754977041096413171028899662509529394564543955756013203883343756126739725901952768129965461146144154789185063224477890538285042236670648286437379980480571515627614704938405618471166148457997783331116718681937234961428723276197006571235550166319479953933699505317924373053408878554749430917348141153796530981136085192187082910715670362502156982551025425418460949076014106483437201977357797042864781722897788251866398077772084940377738490627083297313277302326624370487225911965274468764277540563185376755424785118099772452984928979258915677441404419826084323096568186833471562494874248067558452424917174487894960695610200303786429136269935964479067564029302752197726066331422524793148471140201738147810046364794731008662428489908745107204993037199098879260519836411462894816201527781272831385005674660222027523226028141851816461336374205116675614743129000913275238994994737063195768923777034471715822932931005390451170673078531488186204570173131941822027029753894956497895442639956596252145214657952808528775190483543510756509151601305634962038497665592840972238782265256396710173383366571587747303116239577881703663001413327429589520674553039735797787773277721770016325510216312334381601011325457834119798724948069367430477373681148933643942854719420307113777127028273469290054484164545395838733168960522297451326552341944305323935166592467952597146537286374825363061919054955551775813366137928645663706049595227558873231782037489952072775162323818681120188546317128128676163931820687321376334605071646033015352058747560365465377503963185717611099129665852435224327955296248641016382625626677210980425416900446112975969911593376655553079965319212664497544552751144164601167720896953830531364609361742765979634585087138959860548229972127813149678862736255972377538547322014312991940307615975364636012996069998944298177559618438935455997110032172816281301861729702437838152724078306400427339108752665259490340531209963310717701759471271147988435271111504419074342856847662340841986024728516873362610005011810036269575310767512883525313810040437952544574311448173417181119336526140009183335358215950617711531919503533875445623014577380621227376965687382563784711560354528844346415022722679927449423594083643343658529160730464763619693009543739286159545682952143549186072452312866421753551085772635190612144064971386029773052270358646030124506459495532701833444162254920605204463916642330073884390928572143838074400207963463828183985002669975654885927647363854765073208371358983913476022227641689890711922330131253691736973229073840654574039013571503643286520944883154212085128654530367224417717949794040325103277024771053140597079603042067693953846278616894417022649161469014652240760914871429148712648493316561994029784217395235135186696453494552481193777211009340884445289353399593470735931765362248324518919971609072784373926253959146369633695226269572229091160089237565130680530728313546735369935241314885796013653410581645310766419244934158034722017547994380137977134619781690987788994476642564613987112820562575599377165822204228057283540576126241584772852140248259241045479928287127324246741370822000070175958409954961121522680011331038546458026888863243641843283954540346014651725004878345357608932177319203544652343597529221692356317118080635889295686144023277526835349412374457440796106090944094492403772137216296653280077936027890634627375651600174206948858002472437951170891619541041442588698054972709706465733385821593722704109678023002124601772289676033684100019861897189352041235216970020491049964847281426392070543098071841336341653057771704059180205011959209879294762623249361374873447341359599394552758225032880488091122600949773782173396154809879542594106850855558696807423972895097552413934475076251411801971036414351780832724962024315757457663270460790053014213055729665249013529573919227055510123742141923785504658678132940341748903474309565875858181871227615864571098696967606104656239845856601834158483016695886199809384497570876025241987571963532863640065080291865493251061638350802939212016435925700528812897965055347619044876531998051754478824480206921361512227645617080076073790919577361826326122153162776943202000264278856692206712215921880848501461970745563878925547697942981617939978179968605383479986665600848544103001027040693350929468736306817166019768097577962964482342388238744541597002892844688032355459225538269112391056279015069391185746063583049510906131211969668769331946080661856610311272460661389414795251540480026754592043965836894042961179869652377030341331218952461393654886105758371889227641860416273179455977647018925013451410162258462607997419869534177754674530486757295066174522171934795997941420136426855402479570015163804435537956188798774659778916856874212533554613699767394152325546242910160949976697122538600796779666419911142478801300550838824334660333130155870228160100085779509865179455901870130633883322162858516986158317608808906584741761766974981343193772564732196241603323917528693805461626855353258468513567082198342647146206666959997293146776527447552946683580231711055116387417461671423016976915095460628489582680015976466283419487487254877067339269661977720902874904415764965647587069660965119585563032079933150459341929591289923802125790463289441235673302015984626441942442456695555918003858808687993661698299818079269594105662869159297288500319784027129931924189344992476286903156318081102889689581682425655685292947806050071477666078477094125781919703939677218638307993525593003845984869644714623684194908104020812202643643210361148760921071597459468228663454545329936228120076550912905152538456844873886228206267222639520753624005735404411649663570839986851300232936908407130399404308987716359784636391628189331261571049788320167989339771992640226004236710722359321063710487303234493036093238272571269287967211081451056025738751291354803169041094356774872531455686990412366582245364330336041378544489824417528927591671094510099724596495599866688846957444548925973925270139674694664360557283168320059415441303726078483325128226673253181774222441025087017373043746808969272475392328885724960719772577315518409534493131845405868541827577312082991145139850535809322001083929328272285566675115691943513534080048366629882657407272901452848947860326349190691468806318180193062099419677129270235430535792050643424863334493011904789552159946051222422307019750530966130144253340717899804173469022936567288689308997775291092639420417247125757615325865562807648763746628346640835445334812065658768225116002127769536744400428615026869932290596205993187627647639877789912551389331209093487437030262561215722538040786168538471403427316214490057651745986596516067724733635519353736001685782193056848174599537759208018167084190941445610684526440318110548819641152478156833469482378820104784755822730069737287375820975568487160242742823074391251325511491654726956734161807861163780415053436771191968477366837737351686817645121126788194193962427612394157452152587139733257177784319647722556149233659351773432087928240460574632775009089908457669230527577148111265747397839009958153046131109134492115176756202040809345866435906888321450064561486293488811747111569387373152865942723229899229932732993884129085184821755884821015532380030059397348640827056146571319927751543235425917171385391087774599112140571259133254218643453574026097025416632450309028165496174546252475902074879007823645583784682156922707070557140711398821007986154035664640571049437220771828086351610951833208336234994678296920731462619692516371945691771888720084591081330077157313271941324318745362929879045275137709617795016635048355883115838532540136408907762462276116898665641995663274698603337138599714517468538555692452502903177746615155600996737349449264913603619819884416628476711475940715845016712799588058585622850404401462425964864081655656854767232196501925738162630668504665704772236797120176663440773429905417487572752835574185905601852226334518341345607067975641340920461039569972723840706496985063462997175744547982739300139852354258685484900793575627321084309710799813403485202271581398166179027051916155615065951396555677670254554996002896176992127109577801786299761419045567986972601573248834279163993564583546341536813055969439354580108059426850387420055380521186014387979163615389912425357775458061576522199072398823637877580520213605625034687905859130735147827739532709812402118791488325716351735199336031425745180247306765727644505819255102578869695458163642643882691496729695879734322974435375452690249849072447833464652106493453591407182481509292029880451614937936015345561904374951869679514071949765554333239454878720904048002705056688087841259092658385008658926682283718992431484925574543007973479308205014915653137722927278961752299097471457941040698409267985172173779583863169258635264059898340750788194851633691357296546320651741614983721304742827200948758091239107231198773907641238634214122805497810651465825176155802683861022822228721177422366591269745173295060198032016052009890935568499864921084113974275977451690759546361528105774415163175082550231954447030652602446539834124573285081345920589597160701312090271523508920444309640689896520877557066253668073748766000298197772707258473024483669521990998667014445038052811489977699090788608563970965346016177667912158217811052379287309622655392689355608473993299361784671456891827036244961532886940779853796044860294892440032218248682529026312202895345312375598380045602657800789337036096888422430164166291887385028173300665048892988394109332119759532212798054988895623154636443267164427777752308831043640930850258210543657333986697933874975686500455338185277183843065174570226936767144866815952953186047079421046769837794791105316333304287719447461475962887945794123868208706451421492435780372847333727856016008504120599454178465170817672652779802847345470347567066392522848044325387866748702679654046428613510594458091626847566979454720360950272954257604603956624441713062914940791295647173219792485865038040038131624019273677234026138413949057100123289875108037647192189170683022539297569855006956402461315320358897207269355780017460284152505530437539652365256977139261270812762484143673770837893920881747874221940522678477315542042142901472085418267114326093849703447472494518884917710084090162207969753076466778399761508824175259985586153634350529193212114327460388207322663819465902630146292719925477121738854005763624384565299752951912667103069817261587259940383986670700842505336743730161860061623489937943138826477275943127497387143196373982645911398996766214397816206614354912066845768182757027977585211295752412412975137004890866178823482635889791385353079642810413524737095811833659847771324088991661723315619717004888788690002041655998546469602898531241518747565326689764687722127127122988086705705953262586292005725352933890081741771332327860875918465283655655854409504678713345652050130626434649811493310180859176966433408805821920204145720372557039570362483516365072330155516568678689135168131455518715195840739840489124664427085152948983340261376265690462912964566533186713166177429121058538808988340932195335967731027612210880801032264104252046594292438969619449447576809580654768414357579493346682708145480081774245233036804880775623476846815583869208487855573561623401321686039196382821924293768698815087611897703853889347607069795076920909734479365334417111378333984623467351371623777797936835797770136163059787764020319249175510855232446289251453610442209169358528756809841264322298591170206653998454880730473979066864263088312216305771832965108582356981651210110209313419168348258443431944738825932072099789703396516182299115819999345982283409706578220063880413854276202389963877556992252571243038839607438989209474854047644664472386855641432169938902713081718365429425947312562685952507310860841893167177113668242390864091979466871738916108147302524863662709971635085292227442773350826755840770356538164677329450949834060449372385195666322026020229374090435535053041272815964843750119149133239539026863954276224731110695143722584684402933765069900631622956328593099885210080593327294653318775459746228468477980822693271085616874680757762871412368987099968897369427907003303398974751214008553924415146590239786694299022699705864213354989622632053183521799844093663655454608865505897633547643293728325846849985069037606829059523867938794990906375666960338564532112297486201302244491536879137221171859891951082685568794072312966745083937920809980426873260269544148174439551491374179587797751517474103274544044236820729231796310672320981429595612994862779786222921730468269310362481724988485176655683643161104884367513274165055525936248679883579312665178886237080463683799548213771778150508215152809049759949548058104486809663652500406012495713509529105225293298212763752165054795086309185450325329255055216751118628677729356547243832953629064655209938206585226633483880314618170568986670873642512933521933296489177911583312464177491727295268114799543520176458246135587768070999084618188705937833006229480034808037340632008532959671779429556958907465319741241512500524073563002622990353857298532409209148328406271036733507788665988754867431186524818934569534462466512031198413086427979994058649941414203181748644490707864298557284106871123049079486254331753541040045353941248222280951639107791188916004229313341143395370521190890767071564191328665497755718032203002370638616239749281258140819462026000784712809265728888376651567558803913715328409498761108219215565651518234512913954789554477788966091126207888308237791216792266326169673520065431471367213392775291958951112461574737325220930337640463036626231452448421079035601737340046488597386228161660281284553267986918775801520825429404708943248663057037602348029411172760308811452941988297554093611677712182350586090835677346843777997779302069110683479655380992673709559893441740497999014247857628349651799294543890340954561727595056302733226435863731607156402168522153343932195973898165200876309353296254000102020819058387082956900841665639605070444054335137473765845334060668713463299055384745733992790246820159475325036886864142313244840830084621233232881527104691670892155085138777519024355139026692355102990257405286753487438959107905149828985966872035365510750849211066233048680372502627441232229847893247796706874539689774595934011246191783573469509990111438847310826324351676230557864722494072342888618199663761223378365636013899589330858728082703736282002408872732492169805691779039073634921797350161383507369465857095867301306345800693375368531727935618109422968710242560141591775182702732940353683027812667760653707798855557602225911997005513399505931016496550601940527224018852254614045563303593453203797336924171398892795645616328456456006716968216457316486293700829793723942629453024145089838770862861897564156980142329232099667152115121857516086513754851449821350028328696555524568622178472343237559912136068845287448161357464538957615743401812007976666362873823252686660122318552150263839561119116688173631390418474763410096474877428735903327361408051622560420125031235022943442976112092510831253585048926435581712444717879601022794176252688484652696220399530526940840779541228057452322348561755116592458692318321362901768631859908850502077882938185662862818003289999733273738886393939139966501071641810944747620464904678335188747539984394516873927428951527491968460895107162710607773468178418868924039775774865953058113503120604622256691953208378133180713509923595462543377447126142638494554124145760233870526397112918860931904135518504952490241715556519469102875742530475602528373367157620267939943703528758830888794067065942828074187000026068724400812417218428073016355732605287212009426816227399807228612834723063024651993513124638041751317090257769274089768355662674628013457390158536111542669880660193902379464316808183662383314702065682431758941753928423938987894014986380833996373269593436256027714268207160333590102377405833516484464779577201792604918809592517478551615172960587871138470165481837985236749292495281896485667051750895921959830189546505475060209653827866772797434409918593588170443668896972807233309533249904631394449789332347847820036247329318572965323063033146538758692661691854484239299704449444710506723550823959689359861219239461904251087596629642920770010381501831803211874285878270007696363755545979090474506569588153501017183416820902149452984885780304279491257475370845936374185547350245268001848738089565245479729120673055369780652153217114569586240863014594719304429350959392687219771424676900369446205300099874618042823321407305887281992159784444566445775288193853601120256227993439758971767841742001481070088608476907758399031420052503988787007336458488968552569366155609808933207767468628639826756878561913474489817888022271556787482786748359723832897001277895726020974692112043614298666826376431255616020790781238519962659505266423152449390174965446959998201204453036847633183645451834823966512829368076220807645167114246267122346791448952854192796238025401466985698531994874444054398512629420114006983474099153435193349695708830004377077715637133953798596338220157300390234002358636297908691060304816422398803118643157460047354762167663861017204444857076434983687593139519806316818728353995701777093414427532836569183482476286077167923818012576894586285512393494832561641051731403252055143602176005764718875839579551589509847324869721729100698905843716294075619950323452756799476313626471521592238771594496402617689295176062785777024494653479135126311779162609337970390765967073756338405480838949291108653923401293377716213125748910299932148228886394475621832311968853428144460254180531186645920410937231390256643914007019602608608298487232736474623132034508121938527481161165029644693925216469640399099788362901433337777676031211138217848965691003051527625752151527769327211652599284721122868152318694455598787514903146686200816236250031413074549899030457382600794968727247216203186292580582952156213460210887780890777228385619393608266190378892519996379203179468911999481175125094307990221473598532269174548653267029918195558506673484580136119125182090477624482574008419630824986110629029922459941664616679420646123185954998624812984323873815073116276250671321096174206265047143029804321902617454983924266663717022532109438444903749500484314330997450856020734027798080776223461801950022766362188633571181355810440459208053752173872216116665293394030938295484313250717721593899679882891961661319705678158871372602812907882912371713499252961354004316397910722634670573109813451900501335254874638669992767573166629455605755777264386757886692121923879277125780734529452468035821743735934156002683993792759116111190076169625486527242572683620706371306599440193833476043765981794965877750951278307962747013694831693344958895345066660264896163792649172836493004503284376379920795568871979765897217128892679018568859655560047226823322823968921230362846339742720211686424725164360042941608989041146354684187980984593092574158926162010492564554747302190351699098254970742758184997006988807616915268689018671768597668071008760715823104475938771369261220711031035102689189081096990574428212779642062707942194452149795583773046474598816856737166403559260384714900567633249869043076726144556142765459059254864169401950554921813720344179414051951439435354561371650043566440005455425501025490048586958785666920484825541629514050527786122726159688202352446472828618573833654443151339042260814904893096955287530168993786556841005412985372254723476815831577195918757450280863380430871905291285539381803104283529720851861366705984919308413840558747662666572064394915018859705983813939986920306815786086643351260120617585372274595683990944090804940467799402722128561457896667799925863014420165730889922509364222341061066030044066122824568614295539124309073056454113821172583655816788107004203985790624490300351558802381289762852594435834496884597734999438545503569149129621895856015032850317557846159452296810008820153576266904752416311214769351726086120618507563429587581761727428681749972686603249600285912181847453524431816978972046901014377833512060075707841852270916056767450707604427825623283437089894270004514342005913645133594619179674600870205617469837611732462812828877974079824759885230246923404113837142377384823883495752012320488594899933707628455339585512401026249942575855012144667017396828799312182777201912614491469467143819875822921070262173229085760716536802938584720438601707844308863956861805376889920466602943772661688313986403533921564279592359204237613853625774125099862215650189793023489846997162421534135829083065169591930779513206508252908578328939528463166291825338216228478263048587064811202645221005515407274790780073119637991127180369641132611850962417430585865498730010320563402911150835048240718692443213032751439364435175898585329138830421425547892274530067509581421493243506790005686907946208503470218346348183847493831565119653676298111357303118629865324247079342827072817475564947704249454061156946293334682801151698698746083260722813574487597214614663237645069482430288164452974287171997814694097176573030615290422049502758746219915677881306451537045639038487387006422998961179155237566523718071020673931790342978966480921442744099817601602650806520977466001049516134962906507975445769355449574031499984649658217759234646651812829439863360920124607322572012187427803014638932972525038249963165594159236331929143062843515946967956953754158581720056298026890298565958729880156521692010747739709258821421659342141109265261204775715936064138668682149399554517683741331344631573692466275693971693428434376045261000398000641500186562013057620129152287637639863029921037466828261448205783838781062464716568876652880649230097848695659933092002670226697502842079277378407187350429849652756726770681665832341963224973060191206871418349660750352706252111008900341453824267540719512122662144976788193094496304866786952389646953140865125064680091275905095310104070205807650141803325301663042819839370381495129390375599267288563642858901617783719501698873670637855082377058129428441067939781958613058047967285728481234614854742294391752038001058035102377564825052693569944126961877836749699746941501937407612695912258172476475960633230604837067583079284521987533753363378180147469460817265615601642552553954960191835132732486529168903277362284336172609674527038185746567631133733987312250722615815094084761429570519205368658776926817754624731999910466584399380067745967668613023320967114960622030126297311676012486909994966111926294481933060154377962705188679876639469647830184297893500344204065278576511028728821653920998679392617735926453381262130401972191379559690022418858591151974799442966074156251987377443419682979054711709417811605526329996818820372772087359675933247758606617607661294707965869734992760576175445834401902790131169268714686392156891950821484351081239794629259401896176991897926286382523119143087409230801001579306111670100045037427575726476041462355468914483550573131361552018696773462112927520852366672298293998290074578342436275356231894930099712584796576047042796406819477737419531372512978813410137083706804209444753925467311304483064594008071083835076294818683177635525867409390343634859255079252354224398468416744711797845110110756940277597741450104034426553735434701994776868280935703450810124677684769611572309106317157048974840267069734867419027904533980503788169700787463561107569732869203972437933459843485781277695826891388232748019479750929564525805854705806149652908594536736644396724005687289053640567345318135836463179825223490098568488384891035635030673547311906222346393919388245571406511364567245268147029420487302687635108928482682071332973093586543910892273686147406442676324553026014607347690087080966103417047481069187369520451964281219787571842327821362261961615748797094246214617443630628564916392341558402371792750844290263141282834756604541157532970938225162090770243828689449584838015406622236740417014774213472961804370561260624360236351893425410696488756676926626123286031538426779910027255513327840189629885601204565160602695997498296382949995346183099701947906340035388582383904290859141752341388186272845760582173047335873517623488877168355266584585750623914913077099271561648891749386797326213438935644718705450877660277712439646448224262328822393434298674971309792375648690722701969776813451663039762479865124808904063150028128386220015108078249064999777750489741374666624264518869018316789480225575065875419385604308625485957611919061672678506833719834439962314062761061647492839715194852031527710752982995350503311909207821190840373657878114799818707522945182598298087705177242812238357950152870445985756885110067226425800602609823368258125239355274667832304253218421914321103678144208550963270062891174649283473152810404843442905276511711691858811331890482992778902362294170786454809317952740380036497971442688786538605210939352203044400981993887759016788892581407725056237356695589078055692626168035449969530292784707289296327101321538978976667200619040077881185117501653527506105240996837865012360880782964766268994458919710394507006195338484708781006021902504147490049255569411195138915196787861098557277953412355718122010936100779301942744033605477975647586272477525030858180776692244934305246824358380019103799307883533356843644115584525972254779073406709504956834227446007388458807547686946248311253585515561050635339322757381693530141455260800463525027349683316197588054567292571259139574607555046283606782656625000370819870934057277117374776253842969205476347612053684154192873207010965877940424757062076452032983928388800618824254668586232979373855740833081133718227207666825431832976597675008957946182031674695421416076549807052010951369886240817199924568768436248972631018364531610820129052569816835162552921597591295791258347679634162305795810460205118196248042057753686058270054964974820354729979396042621322478983999527388490554185921614647383401547417444789712501618721178944107692279246022333957753177894255590727350989184750686705209326340092211420922183251903463102451791719131046326845562712347521188742190779985234965421497354173896176230456699754181710515001135971653223569750141331575936022472864429171500455232253350108319368820076638621216387973935496083747141923649114031314105078593158606453643964138824901908184455536036536711612108272125700970747803506685444287067174406911158626278706238973846834605178508791633434404897062860256182729149317470232193651363513381669834957139989822308152564625756608430503242791203774847625680569233856773371553594876699511029478484795920493646843636772271384871754035851745641319627025235491968279173043614806976065722610633973158673027025677919965851495592280598476270934377825228624899034360953170230462555397682745989673611609335098926854050135715996294443365346127306332639777135585664302170804660520234446573686411764467804453073739868031328686836746758682623212852348457722752209657104641106927667196896930392651041943545259012282926059454921597555312948799790654728895606526535979666691615363033047920490165189895500296264902051646793178915757306590672518336645693225444961355839077216920137516704330295724578763990771140527947660731124866743408040319660809978697992625350693684878961145958301111299790752860390088666475333430630121215252200020715986340101271626727522271203830567857005307912853384527643411775449233877300736332879210958463912615124271745305096919012243072431967493323051169394074668670031430122745439166933458084230941120017650777173938737383096655751035237040759507130298492193797427799527093784159294330712972016224486420645741730518296634382773807783107590710330179684839820072238024119649206032784193419071107379627718220076763112110972072378992661368794151328631848633870224855706077960821231859833376282378408537362553992481070040458758807442865205275202967338914008590045376303418492866864357728831090475081311514169416616123425664783396727970136999810239067248777504286261794078010966038111067592275137638282229972158466956632331980223598048197272221105264434738436652854850817143098044313474533118621128457817980273078866610296854784126695214235679722598357895792417816178024824928445040311454473136612241124928442762087281980877154265075652682319826536957451687748007660608401407929551258892574650895260676389927632678720095617145047664212011965789470732967557322038496572868520883807441098501817018817295867231987566403335882821954971312316508311557303844486229052456469067901532873607525927877110797483256134152734827497910812916871466386914083670128511911363421117165830896407926204524411536016246320288610845482133173096306319838257029478573377136717656586818043304336234191595655222041379927583104903784467022928775260159339650064264253020175517208950443397435258672357004840853809073322445992657572741303854952269234268192297572812022903087729002885185914689132783668432674727909612559428167668490752695926265480450555555346778107047159143315705699281170904179134936168555471903387397961289524543058382681613706808123800145091702087985454145515649352235822693451984418141374379729180688189613334653738581166261206748114981761477741516614001258400261760265244767134318362455754946514466942201954905240047946825522618383493409227484264124008212641163824502754133184028832943858555638973677332816819590168049362900037978552465147949341247374786375065772902776521591295138277744939185656524232153984447873485713304923533728944917486443298914486519082776356847188394225250613514687963816476928732769495687564746648641626112491498961181543597439638050319218516649248815985727004753677712235668861673402475259754658157554499200548712933650780299483352074773992087963286763789924643210987480645637580785721748745810244507275836638294196507668640290127092097749077758396081695974667251666054694952849583760582073010762330095937260426990344447754898356799723951466116245792012194395472518437591955392757905564163089985583789391143810801732829774427315872832883398399332755989558530573313447123463551348811236946640280257785147097457415713848189322872512777491277629211948632049492553342430940418474024617048594088885399330854166449481554328809410627721427766523624451907536269543810588004832548090499343590029527437299948205613278436524367199606235886816646279658186225470609881091104950394672802963385400250551340131955888304252073482539010726545206434458628903429394702615695711967124441335330125997145920288391703859383470931504976416900986458944123377659479307287129204870453155538400184405353437779727255985985325104544199127775689943464520593997786602848223932001487936391582435522932309922641279505159494760755883127153380322715343059355597916826886035009478945575898587959472454103106766517982315479951874866382778687989725282398207716480001283675459080201240837337628981404863061006649168727495383051062282379231524905899455658398584483746708150483174204142396377926620776612605657656053790282197733495460364054935881919166943734569191692843866059711672825739857255326980646134695576275134827232160542288866009821436684600542874773784437648309809380854232581728741552882291980686183713115587245769225346216148720089005770666373381980719771811662856730229678673585616255975327613510074607306902379185785071510243460559360024525518611720036308001987393105377016218265763263353194545298347959992107710933208064307163067725709870560650695967051133428635652443357843559493780829831242705021564557964899283817972884209461289889810506333584737947076396512537449757000416147430058752342869611325507732171951815059855725504841550420727425166325341021538710247916510867299812335759830136468457432555030615890999519759679004479497639074315802729727490825377155892655507080336946972835328895370684915654557704551053770647456602985948151084718628422871046072229543195972963853872908474829481592299274939312972212046330118341382690460330995612988301515226377904354063125844024048691171913744945953901305900627418956263771299516676846387517713723340984693767775979304807791857158652586810982187780321601449097360619073614184604425891217428813901554557231504893735269114769928907382951959725244876266925642108382795986006682433416257009519608701686902873645906794635988529126851106820223186308513349699606403390297390890234214611339093264726108779206912502249263735488707013542369910747647154759425867412087743280629837308380647566546568614849461661516217258472911358006485435392671230698729332496481382829220612246719784714306161137250918115258739023860322774398526277744770523066502462630598970718243170585794417663703026632841063325319541838242331800373609048368234656800435681656181675120194239470348239483000831593532878003887184715068761707908962088852598160746226332880304497370127051113920839027191066044310359407394916105097803734894516363790905862719754753669820252156100499489734402495854459294500829044126211153978550625492851793578210112722518074972655096338427568009898006584608960005785381860059617558225631341314175435143837807651941719126326594762234859963524318583003423423166355425851709239847199300495593233867685559490362478366830830691835376558685702778100128792898039972363394263588881718842554425672203584987188229197969341699320222575545303998006551264895104775137132389874887075343108208003802011646876505120946516455063052494611020426183445516239625872960507975668581820174567630945149715767086920772191125496693314521166259635963986487431605948960950944208849841372971971879954190414438059702459055183617177386158517343533307697095058523832113632221881364923122721953174013580090951558992795592833037335934303268223586174741276161665755521629110054329759736210718020026237364001587842876969046429173056613405619306209845686088232874496975538909583462943851366296859780566012279605270174694884111818598846950309839051195378549741372610498748288514881022399220232540039398560454003346592328979112943894872857973324342939607308544917207108250394025954243186239160936413723999278398667059230048622833466898622887817861423000064257279996096448716357161541107422373262420382924697554607091915035288728512693087398911115169288504446552507279656235119661559415754606190144060740726269006259660024146052820829864427615751154110218590066415659565954065808160856231977391776445215553736929450570466742485729123754759677473047283888382345860935447177669995739925152367379520373550511432862762494752695138073927749784139318402517580084356534452779462994091954665947092194700349120317995551072550024912120396435564755773487266748585654944030637144323089994657142047853837021912143940931246353011700292730321087136528911225330078431333277126713724350940482872521656790465199214542817431927412843828788770908849483460760289149672152777196433305098677613894379570723716104921699440121454647025654461299906976906934621524853992060968949898754255035331237881863463910424476036140718100777300893587172506576631434466784511872779619793950508262387936790948178987680034106424533519132605028126040349230712121434993052112011405333626232152394455460657834589815013904605870191270868408383975129516803071532572781209849648454242296055563126632556959578691792300037242677987125110266276599200766600332780479890257702825809532172512240757975405483431126694763395560221638299479278775162412907951943890567402809693985852923546107551010770447172031678334106796697408995002137794058423636516942562704381630701646880247535117558761093352021373982484236577702860278141295191509459343763994838942664914909506109049197606808233690853322443154168968025612588095086630624933956669305333976655731171491805187141967319703727695870242076094157239884079915970944367462707654047145509845625275709713967108420568371006719102989360035344116622215581902515992028256083754315546803062450922311518085769572719561780570005109790828968195954034742765101212904851743642191499589759484090027044809232459360758911809069501218319207200767469617386391883864743051144836252993817714783340884536111034619442167014714125091930558361172766146716963910552303347954227946459070609110764136010741425790663548108264923917220864901878467395902706213657660115359007205849854381973746246548547390835437913676263785403905235967389480986022782949727521070146258641412890900285772861322905250695786181666591541243471507472403949007855949773862294452900621601047042358577001819908929668991380736980257092862654609815007381318408751609166110073805449426416280802032577735077122503724660505654979096058931599249228110705089166948321976985202457864833226415179232051351089195023053828919333016438966722883034368792541737175785885847667635755335197710765260492621241325478006212111769428720037380666315566506823473603166127468542344529127476823426173943793905028752217442386511497608321938904476993353879008998124191231809236256398663083822197388898668474975314987786055494431467268498066330281547538078780789931133340117263366790089582069502615396762575959543790725825550006783026682468492208331283407152930858810606227947101210353316628177267104326016672207407695984332911566277682759481298797342164702061680166655237956256574552905773957426341323698954435736037596916471144441464148496307958490956673287602731378139948434586699585302010992786353216128967092592070144996603688262683920487446426106686787338951772483529516706961584868757270552380198504468049752097983417784716958049390165470170643273912118753675485700497635646502872311247032359377467722445111747269852354854940683748663680768670627204428292285734575872491560498091765686364092228846676520315981304694575764049653080158384572492852675726561623973811789207395494665423514562056228659626949484710570634565710603462739425840631894967845847158569106928323187449232362777107727684078562777987769877958456910861356377727173916191868268900778059065342919728375725461260842571051195722084812015914256990049874618995092095683583286634213691311598948421416544237178499763215143956750097800149887981050289002945902864325471469536628640369150749501787250083628503482310831779498342878404851068415956153105313542708030202138749602357536805775331521078333528974374499587957707122110426407529985328677716296286217477409512478063630134593859485309488636065931189178345871246374878047565749935330963621651817863573425134151193617692552143438766247353985660270472362549685273441007007053116406683585554809487725335245546017678650817464986843448900274048030156516391567357781314826169783303027801744373834282949749854895517978497292692447683649858924647326226983667002149295701961455510841592051391089364108337346568699395469272159384187657021455385661489284310005951452071114108974946167084863091110289336832929213128220612118272347384519897361282424160933091846263928833465701592553980706844399673505202364730803069055726184729983564416484575053013699739500394430337978428101895621053732912182162617983248911603850768499953256040614326712728160190883188568813387237281594311455485601387677586898762500506109005259846459670422017671362889590334275510382172139795701249628252412462375125038514536043099132903251283993498571284669687886826587036766858947314012642655861762897554677226782560822352222096718815484931471393957708127484091440383111200455160251025508734341373156105831968343215589706930163802122994067981554142100246025686110965591941489100175617113709727104312776049543742050400482486515010595494093641335147947927531135117185018267828174494018553422109830812515644972730203132103173457562282705493667516636897884494921891864399622571242667542153359573697923335779405455118922722771641249472763543956536147530248057665782964020589279414527205847831983596324643280213035090660281652502011287106487026078917149003598655275339949869048138088318953612087765524680272778107110952665808430754185871212155680453986560822382140079965161996051102542319998088789139343750398767312700497656770898342223186525606582339502161711337609568350685541202195266143891562084488067631784061471344242223782089216075686412062250611872963179156890781874692924438571696971376897344583923750784235393843295400519048392689494350870132755923720308766046513607121619336415915923836101000759449908300051126461344339109109760569547040600397150940672250252699162899297234268297960729847795209062348747526212994140127615575635166994251696987833727710442979507460677323349515640829369308518938148108634483316248408358869267807372671894764437977466157640941046426082286750680562605696811091959173506321717332590234215792218766146009370513616304791822662124873291315688530512960173604526777011116982877479042035529610929078387999430903637172827111437370531166101019602516785384216927181343434712048296677407607000921766345313681891857615720997955469899728012346344328744381245041362808136031615758683180503937492094202728788189329721340880003214744128268888891709736085796569254672683413881123145770866965437327569223374033229550049271282706145574505582366592824765610815320460557042247896157026322262535234221090886574571120593321552848027788075598777735160552567664950755354903740420585403589443046481016452269922289463816506283809463515249276606261667523818030583056845566036648429811038800621857474530525215725451757449647707786855650159112770026458774416729166621623266352719466315122145545443603763603302921591569218944266474069262106415279465989047552297699106678057757490274140775323809507457846166134023217493206426682952579734093636568888494601388629340119520214394153749993617202227648619621661391898220411571329668275180127345164239694748151548022855769389277621402531319174952229004402964535888268921894414026573436259080669663269386078068491576288438782417358965594854971224479245297835881291862326376491128267886448823577054701936159046419385046182936795164762803701642905452227628031060033684139478103641812896971037467260605968993439948418428062942641264711248204940760879657761062070102412184590937346021915645033092422506755991294596855449534727994716508694044425590216224320984630366674371012360877935605504916154459309190271584291507841558199032260398935125272017286441605812631545828146320668033098187325886595066638764661552826451835456827533746733650177052035649211749706459141737761238848566797069826629241154153396851589961705025261314347644398691458047798373796783841345225677361782865657552652351633637484596740483801780267516545176509343378959374218529552921313635763341872718776041770399594645468639738540507591640011009884344610724660473669096294237976997976881415627876344396576527464845270643626351484628055170565490375370533831276131189443741993930487723962943756605584030248122713066747726433872513944740595974990714157298232446155577214957725777057062994051084960924406285233824743450399261591091813676523699959099489850028538988636412471194070831647166712859268575855085511532991759627900323675251026364096961815636593415707680660824576414345020964228060633565826325050422964680641864060912585983095008569328747815880672212954136285350701048970487130856630700373515566804974533211714829738168138131510993820001361181177406174906915050928988732398210686262439364637529779829415616865794355196917635193398071716533798629248678770522755085492592155173019493438845224768345807901853107391912164553102557644155687047982294732928181744478072335946216767600857115253326001950380149978893355464461871507643273664955405301065576937467257741551787053972618533282356456547864532371995751399435197194141387461254912728882926311174675757663853391624237022995392827413907811160828566408149590929151007871874430499069961415455250464064380734307619855350664025669475945086787874764678940762732838524530338351432089507900218187273591411532558594968189583756770516776488868173066856965714416575327988149985161776207566825323824120792327533772499216078231805064994209151553038838795186997278090338361848028860197255412912693151522149802758997226714388430382085945295096579391850362765433047112790442089989216995617513090264258009896691531447772445233893981262170498999933381373685073521239972718335155309551057938633786891230256600917946522155803243867466691172775218841872468832115178974362693827205333754199449821968222841281742328485590558409753503767382886882734457345929873694771958924638587941149534504706513086348609878572155375639313086825475911735062926398712576897446210584364074609992439867219383092074288742291918143877098149923018691585987530105594382771668645275240961376570557661301807986449690579587815464193622464716403917240517328561276925288227112740224950480602090268201463142605674813781981469601312991147518724967059555111852019553800467776891895842014472448541943879079164999558036312852127076044752384848645529198453927340858650625223623833845283484069625117450032031938646105368128170259739938912654242333195189610259205073760029225134214407225276616378837255711822194719756933717790024965840195876279816806617422668828666357830696355198059471272952624631729195386134893877862226884372033552403400389845367891835321711559865114240579899654099829749530943709008068096027075599841696226818334716173424786693956536931103569241775201854828145066662779734415748384666145796734310212052159927264710439759161988368113246813013418307780100471523224125667673786794101725454259451266077458264900865681790920217235767610791475708669361419068006042551665564396299923521154651203173233652528886506641902186131408092524563521234576197269699917893167692786511086957092773522766541752195284117776767889530683169347590252890060656164172660521564321665203382004786753192967053266652259394268731551266192338917453706144228804235172691054858265630737702294670197121219074489142704007439235575583846035917320451158798794018096722363536358668704186107464061677753087784633423137204517308020225619940489576741957268910765296608859411068318940129146395256710784844191951666049323398141247186957713751823666608874288888274715003163605539359750650216764004255972051972131202122289013196662476932567819839821892553230843705220203990550323729957896115258550400525117179259247861722357635401155647622946397171617806532696226177962634527707098768661550200252357514056660069867740561590088277297560717500036127315423664961551505234497883269565429235616152157154532887361112224645402745865328033887624368220537306603618102070429420735367943697378729867492397357464730085783503559023283132395654935701551560134717112413839452983597729276887832060719398786685212385807490466997119633608976558403727055070089206716655031100946319488308284002516184468726528428204074457831354352928407285902868118201531260766393298986349625873021498351914487094572597419771275046318101758611074656388982004049245278977333319879110425030661109846727051456105151740642458986237094080436034477507163677525672040741160677060099365903627733665686359225797404859950221426603262079422464639142810761738211404799741017685222739778193469646808717516090481193304894709193091639636784595851402027426296433613100402411640509713729054522030018549347591640854463364550047000346819869760438263620750956780061567891120221947943963750727321165269646376326908606315749696009961869373737490458602848130902446607951618834441889422303384687386171522185311124970531703787435890008647235028174917364012865996798321701122988680490665175734367096534886202345748769284880888482532944637735940851734811159212525452719156202552790414855925599094802846610164137009074139140618166492757538619132667430710867591940895569260948349148780048845970561765552884490833784909386226239090559210029928065186729727247203875787572042977747411686883806953339013694298730520913320064999521611133678782932405852330693649021481645144548237844471299539603751687182959754443644402603904796566114635945710893169071323121201860091005808380011370775461829896488334075972221134768394436031944885521424448073724308248126552712816657633227679837687010023360686719116290467362172055290730981106772416801535967152718237054971823861793907622811627965264063500194243611197392960442935606831036893319042497116596720466421520246483421485031836624091724702883845153598070347589487334827175509688008559611345788485668638529795364787630416817052786043895441105567329416991677565198216493445843492030337830823038573007459857832542958206738836684538500676235142170770038590928886590948083486393855799771015108107617803076495356468341502760166528680611015095414202688614893036915690293456262392659067405929548497676722496514639236685453373945010370081973213892188405387492219786759513389094542020692395451099086765398192795011742964825481613580084029335089550255629479373945959317745956236914014400691659851318065299641132733596420791678267926790299563450914738070440168308348353260645440996987978275219990399772901663187830551642507192489931387959400506132463811174842397561884126749073527234912321877470194842712290294890626381232948823637016175622624090940420768959048723201246709541042626194201257286436968633196484505289724012209039125946734262355322633253163942640951617543102316902698825674416433421094733931805950153821733042769006549780252378437004991142235199216660768853043386926056692844750074517559799224521157328107938146180939912829288294157000471708391632954369089854620322061522079283159080370971558355870079056315380803425160353214979200998532689407645517921693408266896597031755545557435713200187670984138966996048412579840802750713415243529587821953073608009072298650305008213261564848912080463174468151840676671139414236823328526376382715404704599510589257870335852779107628766618281362129402480366823768277487253308098399278575129084506815702683816995253955882845053845249972962786527554522807632340666378952177623610723047089877820394465192437106488107856320267839820515114179450609428605556325811425916319351917741734881777971352773896341366546578831058612338496615488970616864583959287436207196313995210624521270736027515050554620196979298829625932540656982733735665035053377559348038399946975109182758445833503002139511130802065831082571695602101159264352555345482122014949264457298732462561352276090616536045672356365580844879641969794342413663754762083891835307689269218101440094352029147151349501762796000849317070672150341683107039694515147039365746361255917565891101725951539207965981906967479750292726310771529231866463204998836450286908758311344888179893169119310972451628457662020979597440390941849111422974116518182436084692848598199346269344245974984111242592793247783329307605646009561474307227182774430916835463450300108935124638204417396936300568442251169771285790035920551122053873722483617332043549154273774908820057718195182823375684456703189055069390263954060195935512490720351058293271745753375129506559249522524803595087461119646108360184190568083906151755733496003705106769013147389515315999024404876470648306145411054111257265379448817477159913457338462977442479272012274821533127094825274370346537571282201620357666322614173613428850839246709279365998472981058090747374950368410570937028091660367879534904619196477900599883173163714352047949590454472175540669144693819611841429499605296626908656853523332039695086389563511110311175193305906720618225203896145014144589076345382829780377942969818988252911075336092935436648520649908243588466169921575180738425032232399733004585930084281383021963188523064668846377952464051722413323427256859164353435769784873455709796971500875079613439228660854331622592444978363088760140034564943789527142704084964462913869761730937587261397992099130384731685500040242939992533186115510450595264791369207013423972222848425733448270425030040777171867436042444679539517716025361237025523435178931053820560304517824310647818287568215971682693184938064938395053000975329106479433997470758199708579819739131788913075925410459536648153114490207665617909829637890962757012951665325737810147223560703678566362344515295607360020197599360486002281193751197581169083687582608102202495670267169207754712544940930061395932690894102220001266248121638770018390988572523226323698680064998902701412355859367729979525502164996623694974195730753649316032955047168774349258692892430989338241027088950034277081184067254193863184921314841423275765516825311354224787567174341368286875551012274635160513015082081026236503496778665219667165779570323509186571101909601066160188434538573287744547329506023374765545395569341787140087839754237798037139094168582446649099554897191633035434615809051715588347176133320090627137394532136177237263786950283071327789922043766729119107536175656851953361079871384295325963923838891014509639513277159071120775035523829839018636745555581728953835450820044017896579256927932698385471688708268112755766011522455377318164655486673403003197280104633692224262456330454876118618653769265626236824587985344843946106567171419094714226410353253901814450043632646302539452247599560407934380293800675648190207281192517025159615403946251739320380184467016628613734892930241883939856518597510867204285992658952266913236060478238181937092101651201631315085956775442648145284208164311908962782975359738742622941601335221263100527257589182396158482027471987470893077634767050728325508288379340872085185768699581549688552478252924984792350757542877166403967795543333689879872630760859931815759399599492242008360213118515280390198932242274975793232822569040201173696189989759485784926568013523930701421615019044789958967511970505642907207961301776172043651567535265591340299996778761298005231266798592128050532994011486841505353380393051381264727075727274849344714592332535654837339542516058094051995111251257635744376270009376210898526143790613099871547333382153950750779321040030289309854671325760579645725716051437079434344425727953435825181897971445663722181035211941220302990475551308594409254449423213570324870427494686280090654964029721442597166562009391087644780975327428592529013556510016242846951095983468133499888676376821707208914275322098448469301500611514386545845604351363459589027752158185594159364931700067441936993999788921708040776670535694029277074008615556224324443140744154797630677303035838249317443572297928289190186304300054130239968841468932142375181718318550582397361258622247890148570755374692028255623577857196243592043983874460188846501956920076794129007555155140885399011625174720374064418047985830821463089639516388590358335077019663801397470208529461525462006473187333262052621865405672520923890784750937908905415276054741252419301711642533568401433237647013055969102334335377501478926941106643726334863919072643919652789515665671281959517414181981050569325866683603831031645536653515289438371965610149801359778576299870708548731063881230043153008336531765067902244369300768817649693146473762447289114854652769205181093267022842030044237377064066980836954172550405646288429861903340925422021472465691236157021895783906128783104623414689349086005169821121908257004985451972208471280421924065956857687531798734981468946469296701374600698622290547795996488891619011283286825877006211692061954853747538778684698388399163066100051370287568068479486871967689888702560708891501252307470454698130148676661681774326871581563056715561268834304271992227001991736852274412644050597808317138510858208501894021816071267162895653661414153724231537947324666353845238135897939078680587828883700991223899103020803411469602364294007400272014531152821897024983246515727936308001317046243373944447584121886890741781427291798060186886591755234038730566757266667230724173500363699460259899096701825925226595618369522617873358234727772342058697912891980481822670042718352333087657703977471748744154803365140619705788398705796552147547164062344339153203920667280606978885321222418194173933505417264584863778741188258105448344041260810836773228044850249338279367338991761873949867691726281120410702266178939931355944244125557136370384602150608538063173651096459485053398119618856203924166153552033295907145996398312913106549092675909844732403615220239911477286407154363838766764655220345671529649353437688857703419201795422874756036251612425475438697104811158057179131412022622409798103073914005414154445415144558678217261172590884608696340828848859815702656255035463344280013166973078884372134842083208955967533443250849215048352641209613213211908911633005649005078068372779804442641732669688128446621382888943530178199002861055915882461123395786753554705582153581862267794870706837033926648610819683142269899879800628183321291656298634952350002275396472469207288340000728168595136790382957212967274682561770253248018142638703055754342879144392473441598349437712623420277365303192091966090751379621000656398902715276234512459106858196775575517880763592182191395526765028645602515924071741421394953685223754991996914995241963665895340975251046461595044356603899109761958564156635831593728795826423150569252189153711021427634358774285765362462856404017762063089758813526637251631943817886464450384709061314331853489328838178990433349045896722301578201676377562205018683957657215118636566582716239373271557991477407958498469748412126808832376948098201727384770057764273443491681439429829999671839904694211612480526820349094403324704733268668510052127385850803476318100963168464625790372797172808037812859382267126411276029218970425114713433109798996176611674962857060870437505520727375771093873221504853369134721431645303079708057564281557949713890198415516605258393802620028177306673808588941140952972911240840108747729317107922792841701564549591491064268701153693595741520648090472643959356259771650363751773073763537528486557150040363245472697398313484778694339262984707005841078269015402479078029673225936819263479476595016672424581919116135453909883120611772699039257696711543208485980161500444205137131992239549287753811636133047100720669219317558442990730236617857198461617004841875777037771567918318648082221465085094207298153729085941063629672448951977870586015481839286009485759905995808739117144930870561165314524484135942815391966861710965075872127188742515805500433738286376429409448754216176111987530732864495783097867734179444136547751723132650820013998650203731736488965870392968008952333775247767728715321552918841564544353695050155594752151156443052609362348601655450041582361799146657104423809456689426115475637992876911405572684524866642655124948791915186676548670648303880636854724387327904340113376030154989050371982552162253015252761713113238104038105417987478692313765205708861433920477338762501441723323327935329346484619881814878094539285323859901531492635598716403902216584420420655341496333460478279484258660197797227931193117825224388464230926663979486840356585515967368994767157270104269725464357715248486599785937610082309786419959922786341753121215337720566316859340996937345076415206458532204869428914669857723862305316084334942863196976403300518673160170575924843098492176609817741565169974862016699492089581653342319786637449113154172442932309509618085854832762005979172259676014257735988307833974870328933940356945634853181972702135096799536975600373146821042427519753357117225908858962952563627101344142431557896254406230977548152283229395026912785022260869937077732285232492539674450836926571913643012494634721253522103425272709251784269883560819786708027247036253632860435110587083778982172210834041516519452167874319769786243532787567650538033211005453353642445043141600965065064043888434967819591656192424503992142556518871869825899992528882511834516865305191414254664067853592059611923670161824876888812213691589423627284525257903839297910364919200049935296994288697263439025724230490322012296271804763622395117658183231342531501113080439650538102322437355289946242861652852904752806880146642852979530212143007882093657674603121194109101053655395829911998265491481321293705423971749207716833979550994644931570201893074317288138651683934759222542900403102771207971885820636509251049736827338979690662617457815921829656702397142545547336884257235510361528902318417676989287227728022950167439425993963386653696045939410756137518178604503621966111107815193079005992554697053632817542431904040509494890591071684577850971189839044875289061943822155992908047655557789896179969473573913701041155710095186621218348741587956439868641353458248023975253079629640889925116463303183878558489249550835074233337587056552313307724023381963572252061626318082206195858175565134323597356426579412605027816975589156423841896848962840885568570189536699816581287211375593088377696825374985476412173975908060520728071255695385006570072868235551380644072181322997480670714381562791507115714410188456434672771001493603751491002644247106646159437436505794579420881889985617581700855722022366891425405645713643307663523278609528207869320942647188693401606169730397865284972188185786987001979936990086594673136622356359999990937748628645311518111813930581747515726152799611042912484932263706795893688730670862677005778374458434881293414168000027073221796317631045370607248637174412026057701083275145615858497401731579594447791884108050376912086545903357061790925182161898499737559851982653678635523591672707350301833501236182561692358130373052656416352507254973607978019829201510341958870776014687743311245807760386576199204485142170388696408469125247549594343884920002299727163960302768121389588835499799800612589199090794745510128230809881323264356474678413544788479719930651366352554278372922070587224230439216747464116831010954217535120560156230336617832450258865805973618895809152963931168521296333952156073341627135921572754868533793867754524836167638424633845524154638880248451956622665607160238936960555422140262355403062119011304760251943505809247128437519159768658070225559863221117471684512802202211862482990744916639422950511861705710172571302039423216483799289425234636960428369933354733555996563515695988665852254803322328621322319584973758454936739947698511559839594937994270531137137955136970524045244738284038569187260139263920456157283872633640833451138751118367539314198143296224589393286717765293404841208629157040500877997433675481955513131697365630841677524474554783597892356146837371523108701112267292729114343740107849027684033736408349873896570301600054391607974245222885626475521743604983342149079782739587701144114767928650167148801313368505838824703893831657737876079368695715011854697345078373443702520700828392178122932821670319995785918521764250073462702591452454069937799893074198708753788630578070252661343811355653699881270409260613759699124038588095961258225807988412609067581462842617776853578412749589161565207516108452301564983181954732139366447748553475328212605746263396312547598885101002648216323348493809496715634976232377583955819464866198538004777452505748812228470139080594196935738900132560925396929890752448119875355336070465852452259873562077198227157338822204168840225771963524037372211412296364367012526314869430630549328549564360414067870922198300839817315298472462232836709079568895431568630439731620046272289242386710171641969523103410876047842674496175648876623939376817590307767165774659986665294492587442876057767602881588547372292384381383413747774897185244583085015777675651068251673275764094882363345080042062351444028370795334479440759537259117949034269989879735697797559075483427908337241446884343765603856893425129294238839554470528797775592590798327789550977310513609062425084534817782046592762760739851057878363595540961867438700955628400528030923478987797972930164235291681252780351722416859454508847197586856647490714690572823689906172678199743490186841904468505537054591841123948563572052534675072521109506820513548562836899561166560650528654037526980617790174148430399342742759146933187079827689269173093007619340863165831422132026361504675865696160223230597637368078039816776830125629225483137763740863370228825747509432892599358235531836635751987457252129211728580582935912502044872911142961912245780613946815081783860664074813207843485996075802151341530148798531710794538454335333039970660428643901883575104829557810180708014688033252700772153269905958739147834199386085787022384838399777084707808613759097987947240622416243241542777775351517793645481515307654974587721514403517883033933376689575807343816190054245911485565556435427743386943820814782609735498653733735933724171250957850413381378956047714007102039120357592451398038924174589230612338044817515339269958570792541040627304270270900975295238326491473579427053731927435537008083641707222213531384423886748795026090292330307854594532453275795349775522303331407054141896019931398268578455913504861350509777957370191211346974723960643607600859863473315912765009451874138789920527533125418525564283601169472288680698186678569159460857542173044624755119109412543569867325197663857886869961878704568077062328988127330735435136486841298952863649260277721900631188256818673048860960443679082638024806408326464487097199624874427855014288240969620211991361659726147333771278058539852710887704549809888066377840308521760194873643552063612594329569800588356974091256235773639334748305805030436009010342645228967705372365336362293794941911187150620630871023814832247096486264324326910941947961218715775832227769736431218946631806060461156384597425324458439836883939030138894649418738127847941482825388864977361581084920986518744184340723865669830250410673606945901055908218736807988146698343348454783278047256732018685250377667581094764769824659888421399129329335399042762805685342321380278645219145191794810765371294433798362695800607851170604811162379875492342426632825977425547834175824234963582094671490162670289199534071742473610233742921778720906269627414273824324707353317834465656303556282362676596879743034467772659614478306768299754506306265812849550222569452100249561217588254636572995448499700726123074069863725442273142974346667593660474109115135163873648345630037154809786665548621425340564592651435106345280986673384587343867857578376193426666575991888315010684740892087670801104410693388772324413126887669225909926933921959884402059446743053790236448381351427882745452777030144324446273775851792179716535301366390934458531622215975269791253862870283532593271462295023171060901297470247560033533477637128574306422836493080512538095242854542156303531928501493623564724483471693022214335708198509065043871077044243789718809041799480221402433484552418982757094214267847346246005817074495091624423499893950257783594672051185359292958535710675571445152596339952563631062160361985082118858282182912436775144711807815552046499905745666675774016081599898459171143525655319409982757967926082197898894296517380165356189902586358558822524443502706831063392474677487314847517014209485112290530756639415438361959330142306580083996029870526750913537308648103323115077567270577104629506578156506772914014350283029636807118883034417043476130569954445101703390202797212007416156356820207810008227146679689168153894366183885790894785731740543518250570542368448298415652073715788870968844513220013622139626047292251888149256957490481071959717782806520768395955708363872816266077357150413519738536590865795084226373960883696332846118568261281448833786515502085145361442450264055541443662882657690300578430963789138768866640221895797795137531473459655584816108854286252882386023027071602441862629452861659046096341421335313762669061995420944316462363144891034273248700085302526013948694153646523143746453829054180450414136101143698410324588375549798552883320272522456606997316192874251207548940309921988421101705192136630373543718456798128759512992896858179774008729046858322106898891557814712077899275147310902468666570990852970491776280134348537182915612369843484891904249736350084019887794277748860422981288042832535028442120519640969505441612805003636390564435479166888991461551888157981458434165836795786425685392127673567946693720083480040509659052720035739238470193363264406523123453023377813243551523007310125487578433479813856642225767024261830341306229106400043892097205478492575573490914669350032966021189451617789857075379946958135563867187276177471674628331670466708367841773205711007369296488839617872900145270959290585195744214989228058060764022655859228867120947116310071173046753613148960098016913131083379066276592924296480553654291005933897569381958814517561211245256046710696556167959896490919756667241257684684046206018140639562201225338638607434941075096173157649473952987546522658383273319464121794338051154111378016162967685342585107798718162551677823689767014363467806665928889388401074999640203489471086902523530158818115799735754858964325032873647351957732104784556935366321679366503941382678723671670719504986237541284970667967825339933995706995959518924263101688902439501183140413198333502371556944799970416151540238509302465861794701314432952542047110994839436680288848668346004323965753368009436557925744126723523994008639634837492187276638333048782470431371816004836861227242796736477708994501736601967291381555080257828540422286882842364291755275624374116205299334407395165710516831946461225529674779022967653053116605997587613177888656935193987147378473468369557674606301670692458719467925532337015335810815959235542310737008449867367514632702474850143029180490700480328285733115198573204959515908195008668695919282638020652853694804906751547908197021502544531046659908733165629309225915995376279311745890551740618491481481149275866195625935703430211050567103206474466220960362294609215828489804287965526943680155127357009152425284108319843423607443532611654131077912091250415123984645820286796300478045475031601933656602619771287584524956021175450180114793761295264622220762223895818762752709973215924658822105134289561734906810416869252594002740281127479135962687013561609690945768368393219903605517967588346084559773881534152488801325831302977905419877565064328613629777642752628462797508942506036348671122363373078494179509032704317477979360671379266390430272910291965132509820537882579182963717263414890712572798302939824869325655742949668147230095592278535180529957598443270130282454081152999566483189208043871666507436591042365928761989169722011435876587056788997434273287075859307635611415214895338757831948550693757442722004077806905822807865398117406692772176841639777440754318233961073534460788753721046426640616891925245780984947070768421197068866022697378487706094603750387993757489508805380805686451083590564470367808797296607606216819183554994857084538779686677368512473806950420267601948750937127492696779678266243233228508239467538897529329831383902941184637511170205351555223017579635361921366478051507874386365687251140849952349259221816667105171280161293628469320941666008216353176051894532077401801520455565087117586848929941916669225464340675106798086491932224565996745027459467494184937113077706334590786158991250826598632580378233479065254298089201634340508489072264451826679460503015233378321590749871481355216566897794707067031515368122377970446057372636409564598552045003465424488810781655180066563508695446944176907377822161106028281179930069913562896658690292001259917124919699721353400214470804586731700014514673833077420738066799551351016331494598886201977382368102798673154369661289665099374682537197135740779540220943565585494473166989492562501337238836358080342445996064809329200930880720768475430560286202692355712976981780423504205104141495106267524829240670569923178599059071620501920781745577866679297329618245987729270076572670702232484274065164209155316870781951933093563145613332297181498960891036864085535629799093849329536085077126015672286500320904959700459798806813490821916320635839664185021642757174054308333789288126239444242628192474299707530638581839260915828955771674601933942329806173373081808139299271843467940683946373990656187783049449474457851601654933994294631969349213200910084579885322287741280547219805329187373322284932732549803125673236911418164379386877035976433142154994284007364381091721142030182713281421215829419893081266556864792859603609815159977445940234143589718463681118713116679369300784099152715109045381769407055618664267320606213936067174295409961042404582236520370353584746124884496540963305697407733031824470023039016611835641578625424424144304579831323581663527441234060589967512305781061942600000181063303424595554456095999129814729066021683954698368547554456298106076216895257004269068922854526513402355358039944335709151053346278466426886222506528462536915978270173329758429911718832216343023364355487384063838583828367376216181317680932821149256155480058398905473547722016691564099823333835870463064434316045868180142431127903225379973742754648708789227264605707422479816519142209593148344622272259897624474410157446211098035973939900263210608824927928531285437699850226575317908866668430092199528617027705450026741500570099030824972939918026449725382354117640188186374560747625448016504843849649177181977044259985447664665665446222273240627761490145155825567610456518815452172220056479005446762757656736052978850499288051274312778207815526063756366548382845720877585792022329975054346241013793237519903771169145780019989135505335639698484181753879855774420292695783610955286117092662863734139696849166606266098903554344954629996644732957218842606126968647144495188481705161992686692968963911305125457834566813433483668236217761177600120227862268343852467622182469819233483909417617871896488731831485057276237699891108310966521037664225856076774956165506964086179676164386853265552516268409236450581458353308444561910071140908958383343816286662849420543431601219958669055530606574653721751714513429121356762520487209903139628408748666449644048697561568411646834926414879926468048717278772879484220574243155142891900301577045920464300104486150617836130801123646998447052167669922801431801145871035874318404895031405670069471512750585426317649474862214237800935715904380999450576956816939773708789852270131468975522059036621854316439667440119312641866815816354358040794145744301254938289781454639539388986131508377151446751507265475347584071659783028886101833896964630644693055493834190490318977727317243077659154591372849214672358331658882764073845057749141402221096256373284950330458787893070718172428899415506950911787108272314141082577131221904778775807669979861619825530158659528750801079773481609138151752034026863214843201088461560387389937633872408073821020108333407885560781532515900173953861634555653075108073188618301061996830315633445604325168076604758956384489293387718657143389388409704717649842865602221897108659616948364291941544997298277821956013109825352210658476795643527071184138997972997051142131918684800360637651772534218631200225866723775266092425736683965873363024269442599896632429061736219667102884236747555551363036542998070694035437276415699199928553003785831154111184983595931604678571092058866080373975661070332260816526861712492176824573790649203974188601813131850686064702679764185441860073276550352334672965648830505204104150138625373583089839173397509915069416590530897202154914080879908417791945682377231375827195176159471787240423328530988261120129420966888481546010292297791903271353512990354187001562968178541738505365750904926227989727346495697727834101493256660170851288632719610721189750683492977288796606312239724800143757686292629492641791687531837211046097941279778588695747572331054364062694739231258008692267820511363448809804804423094588043243180544409895163661108503013054842966335964113206186083242475965476509522600988367796549370579725660937215718751990548334176048422573574633093943544899782573007300835628538823316429864288290625814156944984322700773716156434040412986210605467530295935469538491739575958449585356813056138139021277911236669003818883810050590004199064066400011597748375385065065711793050133055585769511933767746302166471976899143933859907710676390635465447335558844114482958944427710275853153076956525067464350018887464123123993461893584237477055312429236851261825649183350073738978869617499027629641245915404091596168872173383932342522452898129554498465475804284959295494650947720305282144733280388996772646237378888906067953946959061046820221694482494953912763607053299133313599130433559498485309624536770895538430829266402241058713299387805741417284540603605280173796648030159437412253791815284420801522654308227165349171806905994641417687467229636168647847266450638063735824939023958201959189892826099166944158721050857103580892062728926350256698098250366375091401472976776073691291946176393910984108910958252584138243965496036607523152920480836334590266166754799515846444870763696151971994766243770881795003187877522205586007804381554274538948108419396981262538120824703658418102167200922615053370736302933767520455456750373198064118496302187841626536734681024189501789768483977647955956650595178856001675200797543403329274797368931073267461616194596018689188550188350380526251218451716104411334725291916680433183979831046222607767676785319509073150054438793464214465831551821864370238604847779555617724792740095545104382632558531204991063238789128583898128643624276226318858363757667417499579893113215499724891113003671614081808139760043162975059419535921530127127595848485837235537967887616570979879249468929430377876618899958932612155023407504038142047360144808765107008311748397653937740614123101410951433771937289286964498500580148696523464761512753325428294931314442260416874101391831764120596248310744153943249691283911512127342342559753480413942813128552756222585655238154286208484467614457367930415713218377270163471327502163204862373752995137968305354355774050602525577361102815125249370552286005953732644915309352447852332730685215466065771966699469890013263989630637325454739775159113174379309607190161173493881183777856534087349564484510503543413877682851744064872728679709294588860623057392280336486601395752847491488046535834109274350100040432915962515053225199057910825076970214022433130501240516406746952455318610980833672906042946836546036858890232570089103171416026687754059725534664967921967450286289518530954353247365858117964212811299659274450241066506697404922825230304978683932797968977732294561608627187227912855380831344840418217900223851707780945451929471185644663390501569211263129556273663006677914491206867665939471499912986450051176097322286679375323205890478795155401018914627695893904917837185243459578314832158669477293259191028071086196143979355327082333242508916057184705604332498726702857779081677807068044436576764690095300906511364355931602579856060320770550387597339147479611684170578753052864125318129574421284456293518637657403281068800887050082030023006955861942402143680343018549332592852767462736263397504584365492082705749595788022403460684521989876468332727055159623137236620932605494989906158228277234599387760136231083175338154045448675866826153392149448806263331030284172374853998849600685445501836224201275773104099271105494425771928013905595875603775923787476234346649375925138444668834196412276156923278516951221408755916940115166766208980378507009227872363112573666486146967929376501382130547230906461769945071463236752974723232903251463748959487661523066682943092695317914148492696811857432931069068711889834661732963580199913954450387417882580527030792058675979295304166659459115354885207993370953170478106538918661943025613990149425967215815817741196718299384427676138319398417602789952089983622174587408572875565037345073706962393545233785342994885477915841368553883045245170508191265783435109658337569251694438289033558331391145435033761599653989458966068152571841243381987876362091576426447659787201388341201326843315668143011175435397028886126173731201713784276656163947611500833857499045580527573249350763986533703046541380638038201802575746303565185443471228095859949445004185546180719781239799130189689354265589618830637807542504770753193909738368650280239655737725381821268959203545159072614608333298335202837441219411812445190096989961049189626941878767001483580287068927811544355025754294399030309832154501858893144103319576654599585613615523258992455834305870360571022253223061929067341073330850918277895201272593082567161300518359144571466281056396640842273204770356991476997578454121581391991951631059650223582577747184012618383307406578443111163616860708017136479786954015223475419579909115480578576588033014191970892458586473208906732657893451138333170131655259124952733816337218782297248148088023109081388244965452040042838743086255658814516328233865592841675745708941129245731380660459729811492180243443809752391766789879744938546476779207382934886290066234930841409427128058799382657649865481041287867129372682027845496405444052327968974240816249302830492277929584775704958595572171750098464294871876055878724924974764199614095290832974535157800962299528366350470477902166631739827372966854156322177629770388514809197749403728037125485359840493602897794834995953863928944076515065229580169222072513700938939744602533847341148528153990392137277288868765992837046714825435378875320960663009878102935214422826235624119333546940489752826581202393448189684179859356838422962521952944299302418138046048668802145759047548014590627644179897345896088056290762811757203796174011787986065641770840540763424573513829343143956415632191611601436188825212051297528364822820161618248609893179682352153564825748278203519372526843180500291008983799650583658256175677942490698661003968188893986103800300206411411329832059872876287594938054585740734969480116036216130977316780020465279504670578988226482689448068138221182601150279098290645121517391841697691385866669984410630237534847027907927040530756190675461929275037777826109550662060201301599874609245189722855317499113083903055041609489864299255449546351559091954144258451572177778627100114233100740142670950015074622771929012946520282857073112461242742768608135299031495890769082124996861835995627363311427964646842509931771766166453184533150757421268014299940814394246325223215636639944683564553747172688672034223538331958294710488557134016898903418017469339018514509959213488841375190540993693439271128848237208793553723802489147148596442344547897346498120473454097128526414129209330514762774871097293106716599080317707435095485998652280423515414717358709460909968713627676903960192493307131768973364737979995913247546782019737764547725011017447582115537617207442193984770049220403982546461592277542661636183513257126304638190449731111469802685354471903988762925763105831417246561411009593774938769333542801219287334862892788936254177049121304461230202181483090510051107922172202074695058206983023872162145438884394040288964870655989423930931152186476599321321296974158580875545475801430022175114383006302007516783370097575830122255643224815698450987146106026753499177477996676275468795236063647118330810826437203662071001150533722226459488281435780238540355165935677546672132895252002962745866054907987889541538403675601372115952922761985996310387587434955854219884236606295198080249773558828617581966063961376954711049704467152439149275296000013127997857508789705498871759985477098335165042072730607685726452842821982757166108165355994773913545188179027474791499376550620005185091562745966378944240854032356808055937521087902929125390111636652026750414518849940517144004071612206965195329796664821726745086461434480135167292472875954972935946304260436964803986488704200482749476036278732179807365877233946560023291609944319755266660753402867819249431831723907011093540598918144621951060510276803476388135141748599653434332335476880726542538845195571481665203268910719913976574542622124471589322215027186626169853096196661152038224793498686402284226498834415957180659288427519701215749433608645433852423437892624674082383323288260022246758772730351442135121239343750659302467366001508359866384546782855853249822768438191491942553545906802156771680412897351401290781152033017477456790710055107753635448694492438428610348376863795391781450004083519612239381806472943318424259098069089332087668019626968663982514230256925996191529140346955206268569678511209364279767309104407134537777290301425888610302764003886820007916472793931045462476836130849950357992906821674695772225522015113863285610160513309097565698754681907908369010991304741677774545976848287279540411920270996367723287822400049498081910575729261502311838373445682430458516566744136309741911953730065522940641183316664416236755734189073522372474687662976215233494452939386371956808397142417463939538248723861822707441729768328542850776904910846271979045757081601288930181960032327710943893779275716886256186282189288125657722834077827240516060793225613454981095228073592567300350834502432334827692844766319024513918830517162809245977120620551471808349927580366065644967444852817198857727311321425740603858251190580498859895742820820626526949437940256384035631154857417668463603816965159860838223999452948195827914739192486078774719547508819195291400734401340414486283728640897096403476818045358691380840278448790463203391858377915420084175710420411907207681993824268731701235671339714751934774545536493849502299460262823756634553130480594242200251943135181590468027701080521264152082898040884154333427660132563586790609840096813739043493177006044729637276744567562021329990755381144442065174888838690137920906283377365865445115798571029778292636066116503893033914594871120500970443370350063795280020113542267258422131845863619181456432643420302261887882779886787374078186234786830668345236604615181023134884770262428115712123894831137326522391380832346514115217542962759948948127047090166856749713550828125236868961580786780308881811122163733445582622621266863210761943455603764029260143236759132000427665219872212061406827024171878225518688468192032340399980024668099674540670970668450700920064031279928681953309053897835273197193968924344526443865409733045133435193475441685694462337604521175002464617508584594780064646126139044886589306818802993723396637329068590141078430629171377676215925118753184136803739503557820663796772799535880252000598235979297705979454690246202778563009546309495667869759050129780140529924643893849348548661000937063756737123341752474144730260634130862891944179693563604838361661699440914266607121282117895501906307127537856380522386110630968442342578714449724456776932546354985838274358375171751505255623961982672497803036190425687045349429453375130683748147890842500695348161005051196389367726374195443708505839401918102786294073968696805410217548630442658172890492893569638231394869112453541521806917089994719575677535665908966180604624692450941208529112781755213035858601280271541310591352198555014533526105819137266113010924773263682110700431569421167197274174111933215997233636917748098112262362649794133263640273794901831240008864304399668283725695489831233043728975856809369953678111314317843347396578709122874335910309512582110286297508348875303718687834760128980601032048276049454226541085027756915246903013669036311270682981156210102730931575386606409586410519900186339164274630105552104832691934828118477404778175118395158941105629057659098041279992777403604601666038063030908250628980364882597799550721572814241958817136093900546459840743817955852306233681569671943325996899901267726615772327453843547959245458847798293242728053419113473616986932898282840205115652058450996140060122588294473654973018924238001462816906570362914428425584581726019940277998341664330833864953047292323007452340156024799592130330531945218184192271005121975562388184020138257907157894332170833054565850417072548310358223940063155557587108522451020422712681706331037689409499675504590222923802010810410397831073636085755386687148119176073328527418393819205489633050199202857772105109810200008767248919061604961230164640825073661789418910205080766703416354736616171307719677528906226467348517465721698304934551390858747193281317020941767182047568084484354544119494314195692462430844385803144475347418279649550173694586750004649791105510433837141902669506385445014558790031771793419675550643331886207265978661453086794080257816015745630422730625258473624438299777913845209173986451845181866432148524369166885566643105448714362993515054821071960084380908355458293569327231799040424772314213891454139624101028331357673773978019251610945659817859364550425023227737447752670580368958149861902344706745719725218398700834720723028476589624095847666761364323462840526818990344562639884480228060662875966958968709875197636960397253262297607957201837084601320904497164861162796383948220577560430207304842459216070397431730623926291037748284210721791864191940691671147309344511717083561544038164875539285180415589560948362768887174522368581752877342367512118314782559558620387854881250851709678108772390083088531407913904742580383372377637712651048475939172636317550497681823418237961193500862705839754005500278986404713305638468819007062766221959006596907541582873204786520143564991461993977765777830864147638802892067347165354853740805158338703347783074934434784897730069725347332157766410091552305915236324141081823307984206617182557881156707859961327381271017787822806195336552559777848034109302396439805823399388197148827628711513760152080235636876940333056286455464646242041567768228902298325125242777047431387887440364144814847747315640301097941672904388932135151261115704924652790947845279218514683534611985753346011941319976658225277523505761679710797361792744381151328832618576850845668748842019772864609022703915316289784283868938765565342396330194730766539930810365211833145132383647583527842337235518768556080621165039295983033982672925307147691270346322875442943370956532195081006201675641792331216168297114052534667555843481876997543838341990492610732702652992370661483731887442173377125597215212108691132614689659371752667541680511778586477866600242215999286781450307234830468281482587657343852238280232049909325145359427440555902092605435845387465707439787951890500009008447200698240020219582178142794053759304666646190573458371996708315041038894380032578672328736381337227995720870881810889803412430970235886831372765026455241148511408384579475416295327069087439961799793695072835797686726766839612993934632145500698851592835848618808406078684303291449178408101424268785411693126173166814784886185527654148005639990172339441776155307335690144300802487572683067387551860395948288088494560432884987185464584347495952914297733606568241426265218161211298393867526761833425196677429939455366473557272653201059058219973752988275951696018839858038969289026247215239897300079680569754008019888783691209396711954418733088934538879328605508121144289263588972046545450731708754763065337244743482101924324709814061382398813561691264477101425779575112751392065684534851950207183541476077630946495565752236327554650727933237049923179067802764885611392033637089115092740555309406252454311209393860960816319188288423833153663699524045618662290657066873177554194820695283685804176648036103857022903997437483217186967846012621668328195963706117905601985959792112004938573890599172300739934281818834492370073910250985376489813718966040732778829922280370429744565215450478686430304302282348067240718198949814315457740558155073116835721445937551614648566227166805060994612698991087414851027458943978855458978441654115076775278374000780643089788312438987519778006629760360740376736483493145800159537210737665537673980193380010531144582278570934825884482559859981731702857435530015117654341407604302808206569782167059317188786827774017845299937352235558649940735159621047857140277289653236521106664257876192897280094971854923320338626399409304977084307563015851342804177255588997787324872686643474068853154239819487266507099821619800069071440769302130284699337464365908158816196126445215184309334229355770195191087126348026990439252445751223897177566270383467561438451084947051809529440537235466198080503076710728450135642600044524262593140760570006331024870726120065347262360066226614144714098893503502324869601339646120400289613951490495745997907604120594021745647085081715423401091524276491580219782630856783329291098321624691144093632291535691499086655303145426787148721116331247798914817161789462547180023474122815911389379735835382789695256192130276192677158421504790659682377700321639243799751046485958331987348056464772180117429099962894754793737202163430774139237523945468632065169101848015612349406479646331718711086902001348977921750714486229902724950736877525593403255497739569657698271572045643855726567486565190565013970156498500242794925747371935410619133059139353508826547570500797084023524583923303042819120436406032117306559212955758263395531493791851006060174993136181930298765069710490726298450462209136250097738055049083916759062631543068713546492775239973221056857893942547626840207233434551310817618443750865863484331462950251646485159578244191685800373614870032760309852855537695873258707342280095942346746427958660932664558729303370420879464733973331881637721950533359285993714066641226213694246828858745593515925675696955993867906910043470987298600660867340230600182254127722136388534390230064088613117231235515499534270413272821627099791769286936233294282083233453126649473907465088591204850342365445413578001133561118402318820742460674717211263640697022558165147023580954741084830224462119869702415547981592692648001085094745245984157187615953938620613764862228889506896141884616923743567014219340786471758568793849458066282812460907035705171198517248546902683468450686863128490276844440639091624438989469733983308927503819766855965299775157399994820897076039475988200849514225669855121243985557871440487580839930148880026511478629957608474825916489677957841804166859181605111749931446943982076179705212592228831945325285055411037339266126564591028540049332724570708934114259066767245495015750194047623652623542563022231390148850899046519688070627898216797237666117732732277570087214781990788749034267493737572610865758383580568649369308638323102687566987181812502077930016684072668944117589526667071942313572443203501564226874454851205070970486609094360081984207209749274938046815889647150880796903470266074589834970172494544405234802206627238924725253453273326621206688017436714548809493173529978270460984010374607993585318134261474358832163378614946217485663962496926063675259542845162018155533027306283642549085584805441027365578832753892141314865011818926644026335869557847544369057596398772000339955364948973273140526880751410121768643822091636160362658708877396859579577447296305146512789463000666084097573784635613178233114506669372986038383290262333568311774911176874513578144406934755691447413869859409813420248158837812643698075451523201587492128586037171129573010413649686059331438540363854738266384100245113278671267249632713006851223201810288095193611884776373001076501976223342557444626871840141667696595791111777900555321205869010619822449001931949689237574921176705543852858491549029556111760087368980402745839420484356077717021176206135638082379208396339861301417906308121551470933217058463334454913713807609567753218334203236147349543054301500567082881743359762473589613255622002226426976968992336995732546112508490134840202169334716440469602756339914119159385656645173447569543329935751078109683981942776222618803669529139667465137877872508110082785693931083244930097759479796321150230896987201034037638224086406000201189758921969304698873267970401718581146946371387487577406612158472728660818423689689210176465647726978314063491254829730074669098531860188621605674010475769444675627327030882969613230138992752345654521618866834420095045853625113721672571704880195955434105805519249870864794893112016747200715919797357092787155503639774672612604606481382157222219441954867873028174020863807108437765760925588345237028800212801005007232401422181199813700788507305616665040827841665615199566204675262136387199260807282448195994735197910333287596778881271534981835749435787619338832923173391657333994973562006935804120555224800322487964153795804613191324233795348395375065388196686259092269767139021110492408622171141960319609151278489613685750034322753174338715941338716353820187395626966696140112712881313838917735817621040098088372231867827506795809071608976170428745860344884900839493054124717818221390556227313682062015177627285231372746922540207243906060287545291579688332298306205977855243164015045913458735283030594640309237063736227880094199477579172829580646048465409946857464199985108586551558228693163311499200291644124442397011885629641363809546973848558454676509506453074214725722540487637890154968840078650918157753070190489952489132900032877168953546207397746354103111553402148449173853586065579629806592009938111964931970889700270705080071908865643892484270109494564004395776201991465424141938732866974178959050454701734551073967516924045573051713460641159586349589834634840047519954055169336078679552090065945686710553927199047454075851264223923134934412210809889969322626725753240323702336666094367097203371958844428977052495178882957186425526078335336033178759614642677049502012017573219194474976601287251102103119480194360348474662304729324053800327145764897517652395330147880698326770736612860968757169900329823048902429953398387398511320741081206154797404818802269989673363381752401374929460345783875183383315785707296272065262082235814790998807084993037170665644728012304583907358477365569253939636425516974686843149353117280460502157906669751043484438952591929131276441860570198838876201100771799372434989160094941706075476202578408085195883508740536953325925521661555746388852667266686714604784297823013949959644421491895482505931874499479008472312867171796812570058112366563233109673705014897628141921477133810938595968584684802236374197802119335384871163215076872093280935377967831513975867621625091280733157865938433002772250908125258883478111359989652733571461452871361048427453501736180392101479770973298519500549891230319035301428165368955134401251802439603780912315076136205932678163223599672744819808611114725969021790351395710006359267730069212000017038583859591684335416218804880360697348699157991616914838801674610989129851957010713128418589564906223110271277397486557989092390926519721876840377320710694382033208269545781547949580672746394673425372958322608993090450395002723844178099831402656230431226868344308383425652930129544653681166729817007593621433826888427008196560049107184229332480589943551329626759150757419414981864393297811658575865652911118119766016266368511099617264149014550105597366876429352754439212814268369215097695547408522245352235953351150252743098610789361436156450812670120881901528357389870744869715191121753927050485885872219158709520255769656024555073333196722605184513423435641283051101346842056987103222747133372076758718144673973349546164001038185892551119529821044073269484511228892931858155572171398528065616813372191613988706338809408621024409536267789110620460458147074604800750495657334166526045887152152172944417525443798306579594139575679773048491107966717785322761777080126895982867469348916631989708140187920330143020997354106877099353564008616299269645758509472212167051371205343831689873955949604062670576687190248926182772132345070342014923304876654649691626148258157807805955793382980755560131741205213050828063710737526291026547601887766130944361378106599203419192425274573338142108853259382825305337483333671763097660586418235045319420127996853046915889748771082684571440638420289634548144419607244504694956824042240828640772917638997599374535426188586751624282234055975622927331747546759403508673253457164938639243523032289730054277010699548638669193705236386059441722947401365891652238870815754675078303322923107352460961390665236758984404494303420033612431238273814460399434602566293880287802113442157266774633001286685795237887116577914304408127874741123047150233386278972034469841103234410962574241902469572372587601241810651742182966655251507679400403320122303383763704715239305959265757857501050139431289893885955329460791658884002329497808787199529785323477789838038453006402549908063850081445412903704190615999975070219114499439834468837782662519543712454974689696433547795276882576014750771196826286621490005561403047873654583940001482656977779600563512641735329355492961932861694382057053653013784965109715889763419454542139151763266209622949397867979424702629107372134926457020531596795774554797418276662562219987165811991285877887464757365245750092027024826801107715214966411550915772277427742462328637360412219047129337052807780713294101402490064612675762854724054323464830369075454833934653807441953287435682256567669782273668784518790670433441376602214760449922389342658220752448898932776564309494013273225090882550072313431714539934555816371876869401661461584435290491868009330204519776208828049004566251275640819598256174479509075318127540904149822465535639788600910174314037227490659944125360294318671278790466810473335654089289984984320242461607325072057287612437006733285872770682667050278213253102766953476181978025442214713019886622060359337479340281752181930173629482969421839595127462329299777919167625690628676031293385871027097733195992956104012777013873714996848358216729159537289576863592283027804492348101946876587782681603318289908805980404835073414706548650748119380914242361666413851342934938919478887132136113631396501573661686861835473056161259898285437203442519368512621147710015479824495478227431972341842999150428645379521308702560304215508506247129975789793934561058048278732661215131451377948313080061159557256582990445647412118118884663073311435877981102602455753427545905299431516749125130592043993940149536617747341934464863750789951853148182568803798170976151345289507613435502148996966333559572405151235596397393563886082719450050648372543822143795851436179359665660784109802651125732881753007292349112185671631564545684346636737968381083044176090304449828468042381164064400073147712424482198228053026944697016481429811953907289360166243265954645421929492226303518057870882381197551579968017241193433593767500978394011669963266676013546513406554282819309540475331175699056358346393134850348144146424123084851236267247800982472822210989136146050710271512945376220313939139313114716697276957734840049964575287783723196503177082895068900791930066298240161232804893694993819899235104018074652154932434773936071113997416428487165708805564053094482097575282104678703963229840426692684387068575148555156552419311971919534899222296851053287403620706486941125320700146611100759608685768210361508512426146295291563736361021727213606863551804920828962761448564636541511274743706842112894672154351403017202485671132716868784464442091255871360276823169739682575389419601039275870433634908038414609019830377446263531073259314777124838365783069795749553876206492314085273297940769618965009350594280023634967069772173624152016679067731338454249533295165110497813354118321126970279547265874220432178374966213786057162846979470763869424056280993492318536669600125739327034627480149514542282617454465120315528789090036598137544822134952791713110914316863573446768456716915529247179366206815922440826029765836118121113581722160557000704830211779489422585089170871146986435019842868028750792609173899008766872678228474694201484153799139161326412265603003950723704659836454067721010234832587556192424790395328640664185682805022130851878816946090502174691412970651009970148736843364635576409131640139056277801808748602490268943398761822174682410766960747498897518270542587933320640645312353664374036310261541400725039465500506935004933118788989719909271556074176989718184934451325985873584582845167515476841719087713983598614585468663985220804315328389302590168827507650368617477104906397684623040525264314718774481759275000610108257097249372429221629461627855596333624699723658099170666363039841218767858659327395808829392746349854353611629204817531634450489569733504612107913296145114873405045012612615091542395574006921862114580679786772051709640075913412982393853377552033946119419641981144924071414801869351476784161837200692649191311402530703327338049405657465515209085721887972409317510351796846757866900277645393297471885835656111093866717996375286596119497467795238928454908692723082316224917720391658950822047309353729881907374676863859609442162109219316618200691016598166372114378277817496273035874425125806416537703024681425247386797621701961739962793298012340120239516722485944836076786087874676956184916366741121423896789510023248410046927221802461064898104922833915267490096313546950974121991323909891683803902783116232685778323931078438876698491447370984639399967475579762691620088907574325967015785262721430268959165599495090832176503809511440382632969638476655635190543257224508605567642491125362741682076140011804280424162175209105772258119862371868296769457550354248136922501071436168117710572409602278752700118394043796434336067506119336181794060421499318131819277025067107605801485709149412648712221435837764676857003391758165366154632460857349782378509152991742682147395231020411808707045748012733120252412059942044808612161252264783912287450389575731973641730384466905725232581167849933472060286931467976464367743911488176225505878912198422004242489997607367787819982637847375294555758916574862145796921370918895356335850373263803427289522353830622402128676624046023846148220161186185414987991427498229054119053719263187210210344778467716227489054864350481633627321915584334432947540929739746147914064338451642556490983846747364723838471289192848963632197803883472032249872098005784548887961996431525049179697938447010867378228766271806350389551897543067573726820647271567831412066696463744203472688513970442916805357130670761909481713825406660558783563085660909039022170854053855052125985428621453633933217723898726402507885514371050478581875328517315437676370031360411241152795987114286872305129257981327246652228760820505915782075786937016087153939218686302388809213489568482748200376364271242191101032743942485730419660930538309250211976313759899284402819356449170728162014529520712482657158002649770590384947724101661287877081138384004261052498253644433603539702499829467044229512904005307103987277707661454753328765135332657252733168556260474835857983816893656149274034235151331231057299867590049737201575411604265535379809817260213703374922978312197649829778511245864286563754795127613576278573829150846842745501768626013965214314356492298724293432989408046201777207955197512675928563813960103019796161478888308493230416901145896861649460038562537004256119486653041431710381310568573827165224342990131931783630506422355436959911655549415976118445740351004605564299783265928329682538484484754522200359526615028913758247055091273656935551287793079238451390846173619312872408733169391046868847633679945783826575794869984586655164157018845134351847565678302258863651181005927306171763821061244768042548180896676922887523093807072792736582661012119604734163266789473909559309117759739434980904009813477126261325578985403382303201068017496104892307796449401904115084946005778285028725765143124345177208316884882647341329149985288181107925451108853236219803723551396927956187483785787186665906821200751452965617103681520561000492858185815434021680291695374340878028084277877763911804841323514066683444885464887732611500757861032009268996071613023871195866202138086030626750111485495578844768257755040248705988213538891581641846664506118516729533491913656976074335478472831299745541217698843553169758801093428627014652220052546582115341017714779378147329166622335194002774538082576900835121997097943211443478558032773570991618445603685511793879410446143589880852761463693407446779313117142393714590363193512281629964169069542794637588794066289733743520712933907504869621953808531936663009138675775493148992341048013498117203835682209805402984906177605453575273657911105867621105520071808023802884269058606381443426615503480287456946320005831176948815879981731155210195806141398169378717969075853406411858007174223485407988176355432816527633991644429685907330293539360978030752828869201580122002642858484710189975478678225159282140833658821785873582877517148597090875566050267007473112540174244947614330658761264106875872093102828326082729768966513604699977926105903402729347351069208678181880353152277354367162274779556254584350142661923223499068206418870421198001039183219109667116316564341146425015763519329323706241028149723941614554197378409016170062207737457573207159277610143014398955494945748819550544603621024338306402481393784711399050896733618701235696118275824064937777789786301040449160999345842728695639962280354065266158208213851328985970291339170555536603088158922544683677960291921216091878713161557960000278972340383554008979127957562386380735632019458626167763697927317208973170250236367625776549393988032236528456152143259468986822120785941130550046859924711411680419178383049344198148743131773788256459534053902597855758955785671434570122146682868566453745100232164585296274570377716580745632386492215580788120543596000026002487533295073055017070102746228043776740475605393268794661554548010119984189782064674258617485959676530358118315480855761113580189105516570045308377879919969998105885856880507255891271026817965081862815476073974836825344347784431207086297868328997248536581190963852638124918321291250669088889924158594506537049707587907675046687402030496781663103157847433254606406191094891297792301574366555050332402626803346656102911519303338581836309373086373904009276136691834937121201482624282934550050243417370181136053519788507471241214068529137267309678036149502247890429487996799473886828724634693807708173098170698388874315694712700406403126908716171615044708230999293277209657144789740276422857240464630131193688889800627551693693165709164647535917781329232962817081556156968955444218772546191319109746130342453835189432741925238785922756047254976078406172665546702232323839217869326709524585578167448056831131886834240336092596693341903286052622909527888056591109284633555861491501682914832102248976048511623592056273922365279750888198786797383090763900136891130245366902245486875057721172103974664847767056484313967295304646734296118034459993179024955576712269835571649690248267679000149961146926232740951125195238816807803899305201901459277047995146791347945882202533811879955838766448092301775860084625666250128518783588062770786195787086594088806990762413512062728290286613981105474246232836490407355837678280559808847229638068325450926550073857050856597445067470142329321057062292084393229966490537794336023238773839117387051768352335387950625357747877163599623436042499573470916479643664433235161866502180864825810506100018800583238363925603970385830623110011454720477066988205796840243221124689076050875404776489767641949183648399873726488954188270845910856777588032852343391912098028336433866839732489368842321552206395834740428629577470857670430347098579375231062535204030454428794534468126843531642624247224476256588040964159434821669042345027852487012170423460358541927877639648739556170805047492264452046624189137460770589579522742662537013071174267662660989280414498200345411025513376892568627177384774429000417114769124395698508129779204303706647191206427143090069815277585958934201887101925164023267827503836812250590418291724993346951603568070737417548017434423272006696079225465196838879773162863830304793213772674925964204149601901542006188952131433845508762892843204131068374100243127448111011655126778043612561205235140368897382610962942006789405487711957254689849079393271838648894820667846758068819520203692763645602425755419313390817214334250287874296090661205818540611260793471186886875922007435094973044214507742044037803079505445000593310759812201046774329097736808982610186960032263909505166805351097163783677874903362316499202498167200817730700462550641711274217034254003393191866971280861975863403521150236856774394849520501574180573202649100952780128862526454672265215589519076437496474364583243693050799233144450921275526931731025199751529964836799195699668790840058683145539305854238371884356598840192921848135777626719797792038322703536487812268141568411312954605282122959135640745301915620377918976476267614353217363471318799232314728623403416312710093644219148306249476745573315214531944686847212277851491418127280097422384692509015450687146873360358904925097080705228637017987502056593253139566244464055404757160562075867551640337992192569483904688190046814068224985182972118557214543523200791959636948468799362334424559899699491260617288659468181656186567315825094156936378966932779504894887563515985570044001451640504044178671579900761704417818779730926953180357485654238270266038507912604690471538196776139392265800895692571928756861699231045538532764443291294872333271018072127025883447277957481564254895184739353470236579901061218531440692256745481727844787831725864371019323028446772283267625547879003686617158117110228279906720041082880170396106298394405714896956897692599467162589927880662254862359062585698673044260287488382188060900977186186387749118938565919976630988491780334483499085041230541783876030356987928995098200071935803849496058241500178755789816151760621425266963038350956971338880231572274697128884192108914529007063497749758815639511592404245302537143174705905302122610267978653998200479429601876073439289981919486021456346269344439233651972325065381535692873264783881999313875375455159028391787808028891682669627852849399415167770006469140102462195141496588043128279502168209270664742476890988598335726195108954382852239155637693805827590768187466050605196776777694008179784392658626872645738600469993217617422712659796770021732950786215119243758153048287264001315561780827627607538068464386400346172287657876124721609395593018412953952540534280283474555174251176937335762185574089561285658466680780368745712087793519778106561263751195408810487462997311695407593464318391845984070275340940393444072606553428927648712609337396948457628196734308908268286216470703342603530760340367588917675220242720142501318060180260982691743340868243493779928767596601291302102741343852998454547991383618313691077298635205593229864805659666269798555631596876419146558077865375042479378525842916423675332816154525940615992747488413413423875884054773426395944521989332806218520851270880618003930977231994624902943748821340228801633545182442669675575313299969049172138508462928658730986965250226886505614442512764603148326869118106458850261565516478760577674745573246458926533242518362995779238356640893144001045895848304836253441149120089075074638172935937475111841931978892235758497480488258548246309215521868063990119728684304167317916870546803191941637688363278731212801668029358142953706452194727115474767853584414925696857432530669456217520724705616321261358672659634598377066235882472017188814814492827643652458517326605494790643471358970552738879060719756050156259564788094437110830700621798645666358902975227882883712062157341081119984044864840420902506309088548880081560155112791075049436191304073662277208779689831462651159242304394972101367182184823754508897530721725628227629788675719861346483298672745365166214805148482937418975140972557387142202074701215365285478807695408462715748888213640189181391912014715981143237986424592898345522287434037476256259752367492131779438712082436550732347757060825615419121993319864161482289998908492115839743124009995219996930374949198960589847778941257896630100331108319969405051730536819743810266030374463216354841201205412824329571314732107385470367059473810434794205117940035516563512686460495108481069409510025893781366294861241444308522036029505241792177553004866256900108412251976155353056243110531945588007525966909800728666872384019753932053731849177065703424621167278976648079524984645964158079675289130861920182276983935900362660166269245517455003261181078879353136172387007635535777243583153568509461389451039351741929370214307535222808485316264818131119912495208288045697248728946267657618265851373425958794124403602815314517695893582256607557340778178009159527730134904892013635008588593435292459920013819734806251476734201199779255857979014312590599869150052859524069234084795880005166125248114898448346488263702105775621791413237884581722721764693965598181077966661717200441062634654024239955790756248731263193836159941315949171196009924532384065565473505726950355592016215968566774873908719747037697021524931342936533040832710252442307038814501664049609077220302233156546602380388104938626350429269607894717939829196296035133030889382946080141419457048938979610820168710522602020954362941198158850434855726438721199332992020871573848366707203891436482324632551774379640717502430729753585868861164073817707344366877658035430058367911565908444907584336783396614803609126676263791556028960376959076856348344061501263452813373633656938969254577795608904029544712390227925777483119194746736553990976814333089734350165809487324684651203080737866532926348200692020072473266422095867841380477906687984221034032857285479424815427107124091371129924483385780987820631596689370843453593801349387705609748498142318604669302253631552644840137630362443772466454115780106882132004691966951424826904373525606957759142394704537208070078034488286895719426197448942174254597588010426648287302575446567562855359537233368296633328722779685956309617510111440569094531524716704304798747204983623261845265502229829369553861345411265025795070472104860375058777541724216685348774993746091075081379409535493317656877433837893243162863319750094354729648151510538477349445396756911453004594831074332240353257519667301747415486900531910482668136197302573202303983312434616684646235189770332825660650948082248867458222885978434429356245163450647342138806924338300306843252402448515324807410858444071256209181370798205038468666603256108964053611350791179444933512736731157600906800343188739558811844613174479625306898417543034497866384201776985151887879352555661130168004191680249105094592025467284655261053934550815449672020863583013164860567698402674795644272863671991434868510754781522579969374709719459075224885692206944607290723707640700257626042021591449177705986473165010244923141167068420771470556631588539926392987488082566279546038319585407561481736782114870262056386170139567630783915589119471312002184229320358261206161640793480080172828900040556586709160454675162140101543829495057015762179959935996910825110735559101045474257930762798809680826510664501907079290874138529219738194073808223299690909881738675515681162766489248139365395477821720450759612717823953823486170132089240678829459854356300430813140999268950844885242706874881379807355106750366364390927728690555450084165175902151001213471283457683082662601474818158697271893550463381781794106826693507695004797006910350754600725069402243616885472104973270940074244539213807870451458032706799877429260022990859652869603152698339353284896503250682564083201192520236449356824039466975593991239669723762065001256367282444890152904668314794411303479352078353907119672489361776494831051377454508069335905136588944952857675495548075024811515799904042165143268507920464333377531485568605731512639316784599323798872592007040560894306826794375776180125192010977429593972865598442616791969512066205596228334033956709603192408421083136635973165589220537599032662011182390748038211231340354224864049374927554556601021227637788761132174516818275782100470674903197071570656264032840580921236134848233642979088413980300096379111965226645161823526790255678800228572070875920539821316904436571951873427365701455981351804848034937752313771328847491115442014422206218183404068547658893170139651877079397586139808951879084543474408035612218230057923060459256693835152920705254500552710743823355855212271068614641422487584564502015451552108688786661989733840103750294907845773381996119015106789138033913179739390436233389884412410645591843456250623577036102426990503457205703347417102815361218270650509832379676345865767195272826408219073026623288629374434328686880643821993776955805994395773771350999135546240763803880319827793812141462620269136645038383788637214795367326057179629425539855032143751803789011897195277409565797697582426895581744586968839950925551264395412978018567899567370305032610385671553245129640809636524911199258197840913659495247239366119418534895323275888724856874155797761782181474862009701029428785671485959431132119191521096101635891586641587717056089843751495844630816474357753879552723434347204788891138983225833158236690836765522260658807959181698512065933730790300628340230535017960391397628565504948765897424639291042522855982969464987084141131278668990752525881099633248905139144013244080176908088885830324617071105834068599479468001240972094910711259142292099357227865671511559774940144212612896070656103844225128636832761177547795550458274180137726178386216927015987720157435019911091005770387999994901897954011018410634683179242291134130597981477812405093300181226554012369353314389345073957231858375993191467689342728836893901111767239157085972341816573936110158606629110746059329600892521517074620617446376582703799053839028530735469151947669016494214717711263254387604735127890140099935496904573971316303126876156469669225185192409696612847977505495088472169198646998761005731574690228683492189383406879048654537634201303529225459154476635545242849940214472516932788648903786775151927962441717111474258215771765302266318469308247118615768677272875420061607003630214822072467960370230610627068236360301148821818642983848793995474453589260211199332540968990170800541521991533748051220292844853356233373837407857659595912681167324859388856177964839909507476537138312227700959879487775445003799267784530013783237287324036057547114782066360429673750814777875441228456196747172366108981751684674067202591310700872141989603928658724483239838450078790668596926262112846033327566942696934874577210904993387300576509207381078785878784152488416185556705950708855549953237975348318322405024449864119139702657837360740787299034820539055026468175669843473749952029874629652811174936025617738679943345934395582434397507761495856411972568419328621556120132334206472731011615288198695523954559354403314135575862078486889590816653382846561516996301356597206183934300459654349962837354134147473172141809465649723777706465792775788066937957493923779342894739626065204210555452668774326295906128290806267464845836031503492597315779511752277942321252563783440055497890161640322116143116702816796483613999967107405824666845842497187789040722651404299405975223271414320242212759909179539588550148098905914119714984439003460332871995660939082885504747690148328557978969477015397412681240335266357605898854078886188221954300130036928197177615251385693340393326638351468157616008563177485004030773113185884224940884813698485457426067355081855233958416290817328026706957803686337400889334273444851569835311533480850208284704677042553874567263439895531577992147404693645026514244689147766279650295872596625477520130731297216431998490597125245156779603782848059028744000807857765498069695513890808206934362587408098372479603987027218898326317668572135253267051079895695240819747459684320005842580455586338660096631825982239776451308641469591838807266375475582251849493954519578728925982187662036565814732255986866599595479621125745393349394536399280743398369204560071064195467201403579299930237022768758821146079379180034551375888761084479184427954199121830487938047951546016255826795423594548131052745685005059739588184229753041411134547396065080655198288834557308616617303287841666779730258040890769859435317264499645270493384483222108296004402158728450213754778163125837115754436960401486586725318063215125041748840369311922148368478673320652257069812644541567387079842124049736989711350010247521612810724210698610712185759108607207234447429175063720002079927922215568787153800157558766561690456783283124168581346768449872321833652998535054258160176964456584956258092131810940904788264108903689154445956400528667976860031113633617608110352310960272486568242610225138810592801880424972162992091488124914778080534528993912651982503843822447645064378426108523692106693151958620874323576605919949816927303305495123225554960566355630553791524432887459191738894833769151493854881562868129838353593155234938294788597483380045589954121356950942990190556372980238025235530469565837215856164075933301661518023506578027627624188400308851504832335288334082932475122966042381136610498922473118298332329198300261006338873858957174204589705269658707052910894424977535202273597241375048428648131759185996271319719343213324923901452680357205484659699642909257367101015595600751191779393534017485978884549560616772532903762791348134791373974418771304927206906079555552817421885095938037707184003416606278422613972125433921339757322182061520096463216605917248419895147918331126479301072818676689724452136327887691699131154701855071780494583525602979305661959002508786985905163851604790862438280018014364890481406526007606598110415396194544835830172762640953877708269697865712758577133666704981572850568497075043474486210002168323487096365465080939895033213874928338607629722095312148366198388645229840956978665893250929123555275844120823516460099326082575176347477021821721890643431828302291227799188794061481111752400187413966725698053542220609824995246178911144873182582926869456859150461361816880386697511658676815977415875600095834540873065718836793701962679216914718224965816767173659846378058332230960800215094173416873484285844287785958234278912863910870790407555786109790246561172506683754863022650829212895686474801018835627380659405865457195334891115019149511890675420759591644525096570509034953303228831761310765654439615012710381796909744300029846635056619989504465182510386089442914670845066718573430365705293129244492632244437846367710078911892237492118380345837073523766772086471801690788657226554633154467823149990488918722228753186947636183992253853531386397746446714875405177666433836239527068168375477423781552526502995037427081099426562980873494949759893156519615231021911879381159672487338614574057915347418000860612617050255742911622743699276236666186582317704045018656490234401239807554118567475453257753527110220109328048902881169316725570650392510378668421362279573022262256360230660261201096741227301749514479796922370857145762017745280292228070890959093212579002811145327987603485988798487895269092899083719018102960699379726885041377469628208249665810102252403863160939794794969100446098029650915834887250530716146866151817330092257168981381369786042177268281785567808776533249484797462286670067971277827646284373675957033199000712298374930786019310982027870255983108260452946220410753298232347290298442703444900564012521995373885901729959787194621093518272402864690845327029153727691787804643056507392185669689701365239865501064286697334428675216461422800059128308154505451015543424714525322206019474192333085893294818604269646694293832797165134636001523466284024039259944637158011132458890102595854908930416992994897668026413827706044628642736421330902702785401095954263449784170007719630618950284273360659171492530029278626946780374498501147645398992711682043716632100502724539991217326414042184996107230257888647664999461598973493831470454223751851667893084203809353687762740519746976623072662413108432706315481568184189302931089302404151635826693820571857729522411105548457736108583726872298489259153666642313442377906382605437722676276632895263670630184357139237346825733176540999916086745549127906900107701308453855283554404399412810801027356149326943324587979338660516115440781127858184393786360251553887875839488009269965766155670077110331499857824910404342835116416510325966602017551585712786562487685166695226246518717792867256693239996098364541448236591680861592464474920867396373501105618826841146916987285238339545976215483002178677226346337504230196610231482426945169673125578536886957120635917493675482562933559119785210381029141880172760224964396630247771636894758860367390663440415384161581172748766139438233770970720894933178492043028468692714848214205899703659855072286421931844272644853263589081676830081835186507167592245667014086628044162151691290967449296403388623010802400934539881263122311056604674139785343158529262731848816457671545810519719413459450138618945361599643457332478298261145446955664874849245793629816930165605249573752736167051945621788694316357151403917840021575551965525408861392739924069387985062107414154587538411159442843228198838132822189770225105969775238732245860898880034967749235448241555480856908924004045890905083877797854082076022585405476175927437820487184652515202483384122002917064846913303896984334310271244565155408797092066241913570451820600090133026338400393973447910180121429825925222267182289732253365904620349865191838437778926295887352200784105240749367408738635997932324799639014112487806512773561621503540384683833946258739799183090346494625269611679742043374328271190290313894830346144599724647957775580061457986768572149369687610987856559345909526325133508023789180254278596055529543979574423599577043563953440209072945713263423741937226756515948243289234767868847683768035565281854286687887838058717358137979680820662812753147651451011401141063862815165370163155210550486484488333022183818077494915552672040813245073708313354261406656368443523559159567373171206442702478689309112625645804100010455246185993477760831849768031253942091166434005491675287564686799126956913743361442100920281437936014316950513156946826657039504131644332052408155509623502339394112740928762478986096498805068074767712365164904683296832318446843235054023035514915854704227761765315976369867627155774073556047460862869799656378801355754119799494552367785995934210014948966748920143028770526399507804409487775429456096302322432543082070598404866494484342867322884333218619663317625671519932623950966149360215671289849181232465458351697291852471120818031011594594810942449943568696094706763127419005299439577067851997359113588242210469491691632009923697089761679179335522256109710163253953607126881575157628436997679112066272279328672017098381037571263830761661613085399613158424410214967013471894039432632354550028980042580800260361962616109609268104223459819426031627864575296446809697010096026362703607107448390810050494757727686742049945172568961938911023416145676052230571460950542949431703616605071214124760492369299795990574654352447331148437682052156723151310265813777637817788177341198864120133793511104663324747748064194940984193385291487850682224004339555532449946455488282435977161555400427086924922899830337444311789477053954801391222708634187753231443090023010860277701287510002815568299080813548445817513859824309209500632168248633583082139072961891313695023919185422734417928809299236763070996080250311258880807395971622148171357444293731698522030453988091338644772062976292955442428518210599010442349519211602045719848803286197971415780225218336046438356108372055622295376193799626897091657558827094687655922173427973569178952889737542785551737700365259086474086670794840299715933482181870420907364302868173817024577647799740988513688995701582349955563354483144331112282438606107032741274793421853882418384547402321347856368671354635908013591473451466742219839714795343534977567209254412481833376081825639292002068391769384936049170978022851709596343014541880814030889580585595769222233781711515069469678277075380306982072986654326062346065464685635787607290973394308985201045364201506924645573945425335659274513323702632230814920002674726720946719429143331474949450774576221574289502276139094938318326010153627663909321529266803113275520352140466480271909489379938410114606364795049825907155176247413429562324241957654714079284389976151569262462290750550266352619478510952368091084388037670227164706012259826656606178291236985769535543832490022909774390637224101559287577026347098165002389215277728664924253207959177876371749764418647493856032909910126738297085091846861215755420543014344614517450405898521049112752088941865140152556844879152039610345514262899110538597333080460877734862727376045035840550363209051488114068763190239186425636978506107433837522263312271080000974126427992923918610756120288965356480514449891477672417924297870129222653041709597881678823231176306459157135683800621773094572555035446440266475877666214720457262175951929261446939395628724445036747330217465922472738806827677509457440939880307681859184423119257591612044040159511447053450921667112134967844378793487599093500333299752558702440866704151997423302173725536539876639803362227624774313495661500002541856057177711243621869840128996109189191477289212209669620922407078697193343577299455013351790081501782148639143111239391562043671761968796971036569589787931294863251600623122222936957325057972369795478582026059982412928170558102805560179563964498578477313489000357076897228208439791935284715221183666310417406314601082939679285768798433361973331699648384892255836323182041308522291883770048930549038576921358941242753347639140320291854493857898665112298426565026259962987752090014531030448458055143313366920468221291546670965973285140109706198172706033827513405874678610063946339308226605831226871342443706374954797693072157753627766869168911767822242610164464585383192106421175245835534053808415552929397885803313488137103515275313131907425291223920725483101933315040314878664938052794409215099791771955857512139556268231055049013446026018227322345589855429341980446452055210368289843951337781493915098087233351936317504336842985583203329026367512406302222732204565231277101920219796685167594710300892887847901275937336134808428871477232181015628158294975669073610930320823056542933382613472322340890144970655868490787676653540489307568974361936331695412891178329541860170805228671953679298655241986104341391451558373827233857917333805984848120061850240551409836651062857599196613636252879586007860211413239204475061540515201021582401704047494488142794578140847330961406348579270139142031667686290570690286904986351143708488608448424011196301574330931776516637332570794787414521374187981828108671425845495188239846965149857129429286001406553265716112671615051225028082369701972300941974313698445152452257334081409381315337000368432168117987338502900929809841855436774850169731862486309250213064832937474420564481072506403442330490160484706830655941528901253384660963429610548267456400095798301091418727246049125809463375958497154939330102951121191252439335306065578952698401864257945149705011157341412333209814645718702111058806342268010213567407667278320088694603446689979371319948206514360265163920067983181832679849660997481139013356053225865651510159734430509519620332960043574781777850574013194382728366877179744528632904712416225981574151531889240472019435393684741144448061570298906073258116399330950684842805349093262811130342509583698113819520735898478363028422603881603329071228570398356160557619162715206838902449406105849099446042261514888578638340733509485490710141707100235981968459178447919071909533495851149572334562188237550955032574107848671683877460296741629807015542562623243646313099161867341823757800730229194697718237066376621105680214480174575581665440874976532537053680262832582871067290170622807644991262923052609295361634011480654055333740318687632982851276766346150415982652013912246457349465705040200267578410491900347056069200558216637073773951193306474992377489033958105809859310102552605868506111188342437222596584265514565188366920390445250334789348642423702852549851228474193502777434491085096169661985543236158895228670503837623521353435256094485693618216093381961031384386394041222599972771408302199004175450152324360818478171019590486839474844001200375044041432268333964330948796260523661800030653863609838751476262356166886343877473174428595714143883942646543618376992519800710704770537383209957289702621941766137271715832607596315181910887103741747391419321220317815749912188283910098499239075188548685278421413081776517847604996846306927355774628922651431224148197618264659136499262871569169462005108925225883828586469705399631859544818838184163344236793424849947131215735610975310484858471456443444154674231064233724756067024462082536154290523984629787109298908405475838659287902798058419687027353204929696197366884589628602290367920364067744184301704540194610263854805304732680230693924201536086171849636452984565282052749746752954788115526814029973865244828446254646419954785006427572177330335765542867420562101921342887136679557116026478552817542312200643787505751218379191861839503435564636407738213382950032768281284750947718543063779886161899477530040458729494974429846076250729864104943274173865551769830452578887554443840128328250574398223115035438916167430572124385101489386032060035304167478167176863494253567251533372962091897558585052729489264372612265222723168090281207872189187115971810166808313258414227389541156308790637163680348621327723285085252042066044136218024192396409501408195362336195793597822793673701801274038624861985010427759997190460783315286387554245276239491006947939447682446172074204638359048441918949106423948135791049077782742614435491764536264974737107408475408388909736369952669973131269212964964228780208696020347252644342163088410838287219176770849902964268362783506887654208760339785171200765848900229738825952400290809590126878181665201422606611129915905611543906194521776994581672766342180978802541619525371930106071524311605685952186157705255253025948489877483423857343729759497818650342954363894890418298084981506832247752543298772939935902757996470079196621318649329005468137256134709399118873850824329065512050797602162560595835809252605918746559679299241175041885073896088188773544016629841845010960736769704605881552264849014084349877384600912254748868222563114289673322387068323431939271498545619918100860166991458672966609947248242424316580523835043249849148808071425670291453159437591049198680211934641549528603376918002406195535278738273635487031210510341664380042240887926806782847031210161791999553544608976913949715613051147721519698918818990296865583653761797685509822944644928339702352714495289255445888116160364376898838565939235324921943364114521563036975034434269417892225978153130569084541951074846721824388714139559952798971480631664393022050790068198707888707816200534915265600053273971865471018521021290316863561880703464471563400103976663882180125001955049741462773533586598895778829432049123564276891879570211831996941122516971768092884083567569673596547434451815307575666852457061753899407059106761089240467017423059756445967329159733363154763954003141602435520822964162455272529394359442063492534587436170229207694476378419626511357821656431488686014200142673993817969565457108455503564444339486170236331195713842932810697199191032068145165903290207030853305743189654443301773078305919349940923281950147810872218491072278469243260040183144957352736450499851907506591561350349849013381177989413044384263704256327990947852975656403928456517684898168023475463120167121031290942519467556039764440198121701169186059525023882735794694599285453128354691244068473994096404589445829631015551324264709999524858958021115904557703859640285671046045676578395876599001815309843246385749817587606625620007305411559638904396387440521572417861132243835632577051575726589998278755223340662280721993159060818649916776615649545813376876986222823752298120698417885821451282869364512325653024490002298067446148412961567433483011021458863083432642017798488660940407157747911692407482183357806489395566733593141662754712958190743236384310909249111970185074389500636544315917066352943655604751370006614218308529488581453880761492674664943443011298034794206338142670101539673951648411626070522780156628097651808893368147484798512869977050303891446777671779728632298867690986838488641989882584290941681787166071110612599911088234858529145614717659797598154553121516709345038128316923845529373644727769086679300783246131659182315527264985341717275304604852962595334292597750931665870159388767311748311214505612124048153021779662499815687201870974814076387923268584294833692044503246406201523928594157221740210664480395717880925485430432717686220595910725068300850966069898266240404736000588744474039765021401026479001093335698038461931663698361160414944492819111942953347741082150548990109548568842175564870887609909064833195078555255879037818138734756622346540189611466137784848619115549295628182810320175813802207292014988984320731838015803119654015600640568939010438691702574048807109124395783484620274622649885306641632445969345317108539405421462044873716828756800349674909128193807368677265043169789735808809536969225837968729598281914463298042767414185412155932068889087496956034131323049178992322838333695518229133270983790567414335095142980561412484769021570838604115962298967059480842676914283833512377641549125206789443921454381369042382582378733278368402261476026138942826088683914003682103101473015105612767422076255357770880998791160997887905913051883569979363620945304373191353360418812665344886498390129812960195682317272927989531570659787600836370525864555434459766398466423819693002369362403269316671761943855294650026147997276371045006059554117731967831876324749894911826979397688246878446502333218852724039019049014147553943978005127687362396773819347028538163888341376093979518209184449494943616247495581659316977977634262977089578146200639846302459967611804047496131035080134745991916191347630189649796725989799350053385189311748225596302761868697291583753218030714409866736855501383668718139136766046340320789050628434568952154886889486837097172871606223928453628323164861949852498699748379978957518082480950995447617465312748467630348289418438582104610125369410751574187117598167262114268040979214606172175153002185421666736031096698035571343464014372475562582262395601204672769788113929459549668297201149997636051397456204491325710455043371475771035224661431459901084841411763216098373357348426542592870076750656418733356834313809926712887898146289143310923726314517780301561008726042455951854299670001403374203252087531348625687802556810445698635624757639406110649372995789245825545302968523423731498920607897506240825254909386760963093399488328277150998047723253784225070107663725462103375318789935801985800473174410734821268556048230253423225740325159704084053322776835679943764255450332893276379249736866956852892362067600175928793029109690887256101039045862440044304416855284779629743067256491620854985140485628929908879734777340139585195423920817974204048169814419778624402788527970966979181295303413384892362628261059578545368041290113575868881799509482207266794476364233028330355515923891958789657714317182799793172107905253587516451135040461304234690363005802808043823676374992409463968959561322029854901925792096884854996884961940417762007206390703693358499582467532766204514847413372887946991676564940215847470172157759933359195868583317211228250783800652962436332961818957839976741373465748912812596548299945321724448518060233189782741802053967236660924195936749601554627853311085132442866527358296206017969710630791439356223755343573790480323516476717563768787144152827549907835078808576860640814803771019820297644824291182397051917077212000429426974881666564650971334274874327563470803642917583750596913316060242253552306085197200654478333759089624503016910910059630327454443060002650128585843125404416423418536015559854502393525429451679193521519537082507919379001897890932101100665148485088427209158889062522158431268706063520850025720631003107269314814460316064818840517926517119532534655396585631353567771326204425126040472844010706547059053336829803548789984134482488751150645168438510090580668014360697342978610467435525855052085695446347504611310501782542356932710660535792319272806594551446957847998492106919216704514601876433693793171700477919523619426166925110591235099024430579137907489568894561688578662286433827803261473827767406329043343901304688336211829888181880985899416017372141820379790556413566157202226362246437090154047312112527596286869357779776275527234819496652449677433024996405092094515436190818355936459879362886899331312194689416624340439438786602231973979495665338308444906195920938977589956452058251392868711628986956306152793482037891899438061920709222282333218314766044982464638364022488331976468488487751716394078801304781388126303975928613944062676343501501504551897249407167324858956587758398970256947678940338369480125764595351533025443384486167798915475053926110516027821406784466268618962103452641221188516843628814369310280104249018408871766829815669381478725204180627219243583931078252088297649409686077108842898587754474650614902388615719673421880889286986560537548950467755064169563320790901499056590603524375466803496518637438296249217654532231770007688629253505857784735086367113642077926458650684985216533790319289936654128880199297939585246675824533902204264180449430214364677868721024013283308050776947783820240252710261118128325632935877925085803396576290073498491704086921723665200562358487992154495548921003161871575112665788240858378955072886911359495398052660973679923884599436177659088399726316204656437721353905595206395499726339276031533882639770298859408137175902341736710844408836387648534960911617346301588682790314897625123217658934671507159169068419528302703067563506103289102780741929940944336846470912067172541522582805272891671104143712242034085061395240287172106580710605391366992253068528011607470738329918426682884979415356704914284460496952672411265915807138573486921584532443967365929730435449550923849647080117893463523018819227770392438727904465910940037739581844709845756864062141040776596083909052095619337670499996440105523772941823576487449361496066408989256690885969162151282045876013391935992805204802357443706626027265497405634585094177262041920736199811510773449066254279553072892227269426687346083004311349124351140868994905400329675481742286535312562024669511272669803347321419417558352389631977222913751849779807523201465841812371742164728736605995276708338608674342248195646920665638923784819130387326119223240907275145811842259426300764384421908439577099343758169765698107228829449467421629854642368724160073345666034951101842822660860104306183823835019837038963025188060488971566032412877676744374101769285357656651733652639587196003414191278390424241674252614106045931091703434156580533071359345303348994035247419020153058534524942236359085940679154188101289582693112830416819082075290054864879262875789504719269087681052643346271345976932262206063153634829119726159183640535654312471190727971961788824030652499226153457593580110261823731540332771634889203337570950591606016178273338473513873497288104544027623375258052889265362346414014531213137478349359426348041692215627905282539510038642375179326733311823436826569203998006071384038220085024336961812223991232896505085781932319514792638453890238059989077341243101412642970265314477963359449705173702233871929573488605385435356929628540701680678302989949925116933851699518107672402019761715580972738493247805635251036279143262502374539497925700597118953213533409657989491869130308599372321787469546444614861292498141672447654271530732077907367161916220489247602252807241510010219642589394245782614264415438837841488583726965369793386552264793511981411841937330485998358860954489086863231505334931826141841425262924726683895953860399575799804029732484857986818718025793964470680627053827935637449525090296170638643337633726407507578509781543484737863116777565426328790469266269785251584491028845587421714987267177482114026080671887185200795221477322947107591620419958319773879586254798065010118123583106748002523194074469434314216616692724660495618390786433380039690953658557406322927655473116105693771671371922436901335044695872618800275047859141460012890690762951892331924070993232095122415228855664388022152153004043185590940678470049133215920401975800346304195985231764597253251245941793457736158309154148427665846106438555036119262988705132079657062598316623846370047183642256345229284221095443206239461406298955487618257067676937803688237237755368302270349510220778853071975858141634754226517442500193141947961673366355405683406885228759650628225745721303060953345802569926783649980654429913272159074564685883795572679304992019622054183777700215118697346882694652365251847769559600942545838146393478292377469972645416142280378196017092669820101724821782946757654587362821060852433533596138411392352280837151295999079836272704484630131265250843441085830669293088382782678490568014550540274832774941581621194641928656172157061673108326501374616624761659206320138007048895832997626258079379366425741866470044021280218128445934496500911615200901664784045180870326963775333820469687003568122256596385651246043213673743786770457754420345778769688178258688934774034064393544365590391175539444395719014480517231975133503273608619091047110562577165185050439829375298863193006463778608320044443370779959773637243620953627483569314597985430359996425283018286390180601532774464553053987476811036586106046120520991198786864074796278539496051675232131082800714638743875505718676663709393518759814445984597125175039820441639353798060138840375675734547637506525976248879236327480961817944367424462552579426601304144070658831392608313243603183276204963986152968518422786808243949678631281248226414711342579393593787571728475210663975345759869711648362608529156370493198814696306208912526141991880303813665885286613788218787900724677754814834695212222782005505573790307029983241052189399978596175086488724441541524690149751850785527900642030664955659002817385696407793870412519370294739477591403492532956561331266297316448095718826702994507598429148057328046289249101016239654670964302663351958656962381437464757550196171128617390008416884687412429017090365001298867266851658657571941784657897558906415782026672059672029679444135384270128304859934483227319093526480313289368447780712028888686166605209917610544425393331438912606481534519666965153400547009037833746954800211818125795880259692979120721699830691088737292534681510677288862659117388686465054346908019292308701128811782054135702536870251962741444317187476192243141790934123449570197483928933782551989141319500764834637619744161077188728512605162974502734695732766593819370266718896019000478211092019483844215887663590186700819262701998789006847355045869955627917130272473407573617830903100203183120175996420351689404121874782766205187863525081521356071385630110025551897458758952830704796759311375204454215969353738166139771239627901520010325721960937481478753135370485053736932795737592829264890158062785367269003999008824062432007897875490698412662301599945996889160340294448306982624595577386519579465694414939184388979275555660224170566570788106938528056849694499041579591157568310753776704258345373771577633053460770329527800883270484265606114392346121234157410980049302715847923460607358405699361211949797424712832151900538738920973701563325533524770692680060759265537659449729271028355877195953143480135513637653064337215834150311066168031477546620876201687172467085208950868935380492505841269511446845302211521214889643810406345717223654949609210024293123667509157494105497436902098223262202050402892576288325395116757312436142212852066018542396859414147066025290485701583504297435403871136140461181769588566315137232407505924551091650025098847340629333642055508485833577346615192601833302386758975121567556102804743008944981656483497828481638529046368604067280749042313021662328020614575419208894474077132345021581792717700055365926076755731732460018569574958248640852095670368784703690590080292024147698549430995892091875689766557413204334985320807212996176755139129957107495222445991518678342033928995297989693745974884218126871465284446140851873210157753632842334121799647995389865538600332594794035375495765548367660810584134104566637251250111945680632743692441977172771243361513644706510098267369425874323015896516557992026485567555605588806669463532091315252944531327659909314068728534721194757087409087273445743810496661866332501517675547348872175611363815500219093641241924682368480814980476717160473922645007340375812029922544150468341031575954877483184046552485983395156105885435299159309398461741548642750314802557945834661167685469335587668647021843547046309782931627666507048749672408441165124941808582622984697264610294946801387536043141100116777201043505967623358834043180169052454925728776826305527386626429615695591762725926756794823225778007305295351607816782661330527305071319512457573656237452004772812158754650062931747546104442775865594273129182373430439984119997773944729206478640132080542853232350310722143229300290738887224133444160011275109446293799918377521460638295257800535295654196919962437245352900735707049517306849897654784974807911590278509576528798588476546934091978184639240012361484309907342642385088337800683668167979179738675919628239997134171423431882964422225169209302114112898694998289013166789221309107851247704856202578200067491330319152893069000577145523818268394667163419353245611072963243551024760703531393221398824293935267018815658904771803703885087824919829017375294950739029136048777133609257175806992347701262194985358739245389605637263844552402131634962853153688505694887993971626239303086976685196929604998805228148485437220130446166143693680103822973370728933893191817295318948339700388650077426975308488002019067492882434944094009172580214186250626546534898263411847415524024225544276260921694412469832025839127300548720643946233848138716237781403951351815121616070434913864680728219406301802615980228453282211135620257287162442726580050042901458349470848679493949069304159702338716532124241517771201028806210908491420353523818383859798766210998106573100330528914800039919272795953854698209587342099715974340467805049161379284416701014993111030681120942107231092057717344022646389212928612237286581756200594031539761041361338792132951630653907427727932161178239515466055988359940198593214999128514239401518004430663025529272488067292965077462751318743163969190012638066522070729451019062000094037106680584678462831992074003863485111704221599176986937336268785123219668125356558318543081414821763461870272862549717687802847377447306573491690157165794832971077674323097220371281579429598461419608790058590862989196363390824364225216742680324694240842087151420704889550296855541556297140776005356469593326075286260587510477943207504481257854195425323065875922981660387392605626786702744838369422936205092982727501337745466134778582570044871380020388975334891297044633274632730375615468338573157680376126054149506106240047630950138073066052362373150658048952175392838284269772343952126757649260571807822001473504029981629624524410428402397126617632489911460550188259868754854736381620103431458294094367053142873620679386692422711213446979352967932982427129839619030886982421197779653390177487458489698123712912648302008130505787388436425322570212556074150321225534107585374155654309273544799006440056097880944210604285854015846039768262928023830193509041344574849753449534182728740326789720518927134177433520220088330124646433907266253565711586663918538413603230889231091207787465743328223802873262351721749162729405666110682213922977993590222771619209208205979255763843685734837746118475004276593866880704405744894099152770398191198906756556805665345268301503179767195807230322788369894955670860655780721850620333032250628677815093728181633541618226467020646524582258105435485672166201882856423123852312377695749206383742853645681342503050499031014595904239421878190330555466831289331066566285984998319660010260621147942217648830395801203320515711420502691129100977751278326016524871247363939135975398844541257645306099087395385913425635501709725141104524408141651009194451833897795701470166657280145144008684224336274268918019730060388242667176948260142537305221819420331829875961614933271858289224668378469506375887132191123643911035099737506711969252697603389704227491087850978718288659732630539832304677019091629639796960095551654308291729601907303019404422986116879170871044499892717365287079994991692121938163618919804622393370805300941059897504717197299052835419660254737422542668373311273068652107092911670061395245661472936701066230789844207345091354137416128136412037603373985024653865736067008376115198871395762378151657215804902221515449386195539817013856266258050423573911986313330828007579860136676607991821000520092014034920505703615990882899178187275303225624670337441420912050040381574507395282848693457666955514603075522682121520861433025270766573169667041729167479622443386779232896767135585709440188538705418419316705355156566912642285608290119961102727963683912507013232343284718853384032801009058900495548247842883424938122940737495996079273175293675932430403205255561742789474720513841296798596726623946707001054638405586131711856665744410184449242340360453436809274739508221998338807972475665979963383534802755873335192580697455760345637437592986188391316131057842885181476170418709886440913498231486879841464362518784362486411881280042167143706227335098048175400598679134077780013735749709182898532355154882959345667340801054296214912836230543784575404880284910053490456936263852747082404878464573091042739512500975203401710246260473594965881860001432392247849190544041228663225401353142992536532729223571253809574303067643893100044275892690058812625976490137033328004331800923521830998790752353994930326694292611497705900922776984295604923367754059801450248421465280239375165577689559610354035219374508389690389021361190479345296648575869819192860463252976228626743669657046083412702042842823314240516690086325278553997594173282123468477441080407991112870458061969251318021189083302278861388254704053439584232511116740946475627322222904823968439852434227521472343162618117030372515782105972723225436142172882585168450333992480506376714571062891283063177335257680309333730791423217198820374824369841116700370127076552681953343352453832465399995749577935253986842247607829254613461746112082285044545698325311840924661891888280770523188072389080849218674659148335104900697947996331993565065315627227861335321018317480079649315944388979386013282909562461163774937159140429078692529396707015161430087799443334489860559143403929866283348138839545769327210109287550518529969739186732979762781193571326477613008482098103195643035927957252643615379217397788906634938883152648732611618582981357053327710603520398838125447782781137098802288019538564176558670684763498671063129818296549089330146033881707047800154725511129310448993880680938501567364316519365982706723627289640247449436366401902271185906685912584644426573942715242468103423945976133280238415412894927347222490445184660806655958299094085208096598042991556772575028828576613385635858602048558218488371135859022990178248321499827537081719926966742900727446268320418553466630315167080044816138389420890330163159939477837875584569009404365579205749471572880769844736571300131200710565066997579087357162132315439608774203343789960285528194029492371158859651867542453149019412793304451182373998914150780046546484539568994992690989900023086888473253596171435847858706811220025662368304081668698637812040531055935162893874166251623701746335134735184427981134889901992474011191979839320734686110341711325765725368289835774047330990486966795292688752467109989157440352876030600651078818241058740847574683400592550813365420030778117844625073717027881831943192655094935248345571428241621834968414710977071319136708123613961764232356925028286392592969300134781385266160800721464644916148249608291082292560197503001234902240036302412723977900481580892146909083035608530515316004477904346390456434400557438847583059538388714249236464337759852277698911720100069301922871085169832314203437344358534855569240161152699700043109684016627964190728216789035378979695650999175756795252201174552523400997342462127451508510825407930809587836180028602175696925407176907174540912897675423865760075007010987533504982170666873604713708032160142885968409291541499209478863305738693503413058070824474279996209582448962524265261878732645006930805823895206339131797920015016028031132611932836071423159758390483944572194714817678784599747996725352952412038424199937211001919608217523284762641445691610707739100813638763178858798832749660706285208713869410649365834443663000350182814067690489567254649082550820037801396849048276648081028351276937595817806138415915923194053742883907277832670612875553226756225432729640571532518197695290807154179068516494042088820896503968731194314516003357103013516613736332667700587976776896105360298142622740489629965034741007450103162516185705058496618284829769420830745380509311028797894423600268306613373703752827615733431538185642411074552543940152043556542793526420878058805165893661367608731556922039021325336561112256355716281271855156612091909236401141219687517522731124060869838664476522186018182868295855657472652106046469269819431593644325504170858558091098321514956195892437533757228398357752244103493479717770076954053480364186352750141673317530314003238339694211768201355862795074623899215045867114511144729273713715643608640961529492336593613660169052734784261170689120135939589085630108015831544227112007218898297161962227864162170569277147480844968133296292197493198390511769186168054485363252913768043969988790071206538062398085652694117692804025116892951996974623957600240446843511709225318762432116202610742967515216220594252463485657226941280519624833474199326190123218735342325762856367929085477730409472376982628889971805361231647345240395010920889384000979235356604696915487381095998075030697303503788926299442551430407740582010001835680779588892735416449762765846864786693080006701557282500236537476533022240128334723032145087268659079232182291291457921213188591968945672365131741081425322373501552080371494553193543424758518117044395638324859348673098213484925279104997364710165292151741156845669544951107918163288975037895666931733328065096183309830323271879980091297375608738196294697076640568323934574420303696799029174573043377277923309801332413696612689014952683903109116021202599110630171539456827965931676602806633875933252567481915762216510326499237677077173533589872470433641818118893299159167319599691778663536845947122059297036550494184432531184421478893877375899340529532348198887268075207881607524347097112654125644593733679280994147870198118931147551053489144530229372782173423958487578406986663388965055581877771459659113381724908900450044985745562098672192917510221240821700257851771609034371213574321508080058338643334817959018747363552109983807101434923683324022820191838766579278893269649865834913217754810891290928661405092021504074850370241268493970234300175271999896515688558238522881353538608295360288548446606868823592674183430534228795124750015945561831486285594494193688385931539445690738866155864448782730175677044840185167251410093625966761056733040295838203555094510811435759806666604070502833117067673694638822712255357239281729473992915346053499399949979666555493590409072996771209601782710701492974238415522915082946981886955943524413449484997935035550427559093336837674269900903314035922801670172101494150233403486530215527840816308419549900134597710917527771618799052817643973972357704400511509381749327709250531850334369528877187701574317540161814956023318429402444905747922403529431011946742970080806464714094486572641704840408618848816433543231231621806390137412439781694779989730298193405247327725690073596484592666462311833861269111053377577849051607111903545738578849097512849388078255615281912837643849155533041529723975427209050786865722199510281892963414471376461445614189500305706697395824437658576760299926766871247739413349319204153044321725566645226758840203964115671543198926709610298856997088715642764073710545283196978070302131795127082870674275527404348780694950776656262566620433940374378242898413349111464928635845832340959480819722912326127158485173832689245753767652036768101367026346038320297404994350620016478343657863661527699767927000550124536096146029847000740196557018000366279152145014726072332742694194576030560794389310427604726801507502483740809022465491699425295896201499184926073592839170618962432056277330562315362395083498354770067520554750674473178109746900131245974692541802346517526408440225489388837860389621233160046524757800964898886297868511180374076283625607680165274408996951543450624940389023637862115606936731618479168077920039214663419822454047562132080369625382210190567943927153873334311100252057967519394489039093476188821295647163095985329632531771098941594926830845761037903985652131382322993650353324806021392213036120987487281116329744054580853254786949999586106592945943439197775041737129521405282123468329713398853094932317815958241855295571431809407479818282679376778398036935090102900279822974666591408931478705540257800529530329161105052973800846199206818756566930376095160119471171503158633367146397258532897994368995872227939408259752827174119092135208172978041167528346842383030704020371185928991116190571075335218338662816331669019020826341736515530066135771316332364050165311377388220879733636404768022163558818052729899433872507574810915759442995989574648694153206071221381833572180307974829319963031867446890173272442014563524879081088767609150885720678937338980254716261705491429657602253202820295155009801797578670781151653566230755575345398539535274048610659133103827036159753929542953494860356107979450130528738058978822688622570234741724463974421146286349110837385906863107793816674025727484193476269092678733693196994704830000364651143523544286821677682617363594525831660701241671124683256272468165643427372440557098594784011655010867455740472948243097460409273316938947531303469182494569077683889904077154603259307532371354408819386211122058579835490567778246104120100445961018910505820465350588201996932725669121414079842824808972521337326038646015756652115243739589825781867361953241216625354953586739933983487607049360992298387252667809129027862733844915072415212767545757168110625734665919831916106504866833592446414090894643256275372880663380195648061499145895657505661506676385857005654359000481738778755147649495199326156430279435855229874571035912723312347714891832287323650921737290001343349812730324800208276772572825681239289043218111976218246752617582492667027360302612880940850684349427340708343334311931078729288777435378158420036333061159699993389906856726945888219773364989898811043900847483352825962900306620649680822187762360352283095020474776106878018727152806788876391531102216277512237279001577622754997865536547429854664826947400571921816892567427176775949822243930309878211106842384663620644904197445816840011370276215192927259426545561493431924054636339769763590456207910208608896142383851097375590082996678056393865538519689924098117032830430335611616654304081885396967611994245412618834365951601758472195353081386745754990433806977919315248827076256775289184351629012058687773370649252853652923402581518397513033116567317440263381843076200246461724617908734734276898107337174335183901444929795530174966685055834202782916725385071805489086594217864940944667368733452252427825295360187623338266394992086382253105369183445535695385946279036798226557259982950677693443895613825398171985237848339493715330738855466299944911964697937640755327497801912277362216714685250328471835106663794283341880384666616575757176499740445298046557907397928467142756891446987786400366555220408845785256301636824777934421368607198416312030910678176783792902880664524460104298062316216894618551576064990789802696435832629200741129914941114520544110929706327134159055235951304804250077935000010861498913486530000179681415032447642076275109687309249107679683568795625256448319307427231941702321455557252708977452350792420231721284949973281499188126572060303724103896344401269053316216358903351861941176615434282839928054728257000865441409219552015069817743981950110280752293821313818755111045650816390679269228521905926509587915627234075854933140879155239361965198960081342269627830675182250591315886449450044652330769602329264548131164041664140266195377667206543817648374909419677776171162581690009772611708135654343116595540583353067279262011430502349401255129293288230071732130990299122701326900050073732230618739752615015239511798515131349275318820540462505648954519722780926309965986498574111319283189293694692025500321097029602175114591410850176181168871598864889787245438571051381276554360798763631517249057524840402347000426616890070729961161165985956864919033254333517105723612431171434982591450970448222825997479623311939061418387876306841437707873690804054649878722915266562466282735454393867795893747942804175566140919127847670829442687408890061740154860422951506035852793989259428309823180854994075233490835006933829060935684417262456330665476899957651693591839792631181032461722003232970904517798099088862827411004070575439535978799684227264437793769688342457102811058270303344878604206874886918745535884919345119526423452723772566755181691189561044217064001973081044150985113109360491702470466108130664536535373382340361102581343257008602872881718451617840348993255236633691007425822892267372902246715668780845422298441020986989355300683186343494887655661319973162598004020556235118911779177159924136360504910805023912790526721568187949114275014103435497208376354345612404001991103363926647734526312508127556028880724570014928049396826790118020374902865912370943418731072364770498314186584061475559250268356314572521593647009892586839730948088625242152961896323963918192747199556960183402983998291116089429638157458432532128276980338346175112252191990429863316720302211463479361270401460508149979214253659390715977487499489671021763648339403158730182601391300203872808355315311796509088286111885377621730164421364165089954199085975133186340458974708060391153841063890197077108650511519792885973542656228470086885755581242326408086571027021662046304765400015878792139366815246709101262474836358208222945368732460497867967812518140814678853069495925486110395372240053470011086337964080598930008234226089287319746228949596663679684730234842527987023327464991634434406170469966222292392682511475559132538741840697967846109933311952704026848696519147825121385364482523796946916603961899927312834757863307036742506728803154485481242314681806041482884045135654682673948073542639382599211605685988169203061624486684654583685409642942320094069663945825909487803416205663101792196116735620035968094719387984062950335721221349207544839169307689280396314444212949455697135474593208244725110422519429629657232633953553044501398800172161020441182286878961234965459604898886423470921030360270014444594410200494808191538621212494050897777202568099553908330421360764413823181528028230404809683801011893188685070418363838767629100801560260293354437672080638962012677473525382160336463641322636436578860276881592525058762846380637056885934622348084606251346051034722420573199109325132688533146406583668526759758677309737726684720964097100931896064016245793539511400155666684921929733629490966215094976643061521468751335678312302870127624522545442243645927359843371056593871738593882696213396878901785899360989970492818181435687288958547072243280313594330615730492182911739143484222423673205506350969844925910082661028384911791503700586802603668397516663924895436822154887228723761030065614580168543890556354464473066028140403894785232595434195737671207742876843904919437857994781555681575431781506494270240500399948957306479114993570686505179876545294289712577467624675465824963375753646353106398285833806428980224712928638263404274520175845250083340472354420170414371438288617800981388064484648277962004514395790581161144231774220287937787594515661195379388283649106835202932068770986745276457203162982335594989676435987653077766390665831489742227958877848791300583509622246033499831897615167250847549824003999866305401617054374383592751093345847263350130541564076507599010204107708308431935822582988220573222239119930010956365583094626890516204822428574549587861732721128067211569478309760618259869465695965399277036936726631856772602218266010334328954929030174336271172812416411201078014663897254980806355277309762323057324392985392769747253050372102480692376769981721189256318346509024085820907036841361027342817050761158283457036309983236392625653507882552445555977253605632867703337468079020195021670720738143094554276978103469271844621022325868857066212980289077985534856272543143613027045133795313854093246648695286321768080814586390542633199135282641415553593777370856495795310654676629513045378079111019423937120899940877574641830521291258178035201968782206407529987350257237113231856318403423445910535446854579230077282947391644988452637323899872990648691785447859073092486599888398002832078021712626209795920774796495993301678750901480172614717241038975712293583377931373473563114160406471881819383637070295436641527668157502669731525456310339331746375682183942079552931621660070678528951621041133619664249133806131486366008362504223921763671251494709331285704941327036792888944004575380703168500599527520881355454582513186999859589827552707801079245924487900309373464146160921188216818563561249216638806249826808010947943594491878928721164073176277346706698608301985085876543691357469881437030234575102787001558633261827487083959719990187582748685521588881124489045590171969998829393010450694587334101061406497879193742264875631087874034321225618355241777006721600149458056055610615801022285864115283508892949063159294389552810173703683230255966216248891833875815430015158528283596277586729642734418522698774237435391258451965879315197475381041251843278877088589879571817613748706013371608766683091976118878083582050401363188793591809174305436409745658078975689008714837090205482335646799250713599242063898326621460375087064655861020635157304804565619765840212903079095857015925019420205199930552357443915574072305092533754256226595874829177801613926843999238342847745888246990345884190218654470328563956343987312510964315952902277955623580992623710021072387328265300232908152516654666932862677243452150533418993514136634185020929189002111005516223872837109431672894626549063155330931299957794450276903938025816659328177172821167793492953886079323789119369472662071091542936643767502875387465349589095363473361402712315004625004611130843895282288563557038444246803244716838883076770987865938362124519239848249019270136537606693504032048066483148244187619214033291257398129146133350763402886928206770797806806688885818632022303706924078789892211781946133935228315494987500597666703868020095198793091001450262923246236089664973216719799320777362936487038605322011648952044519544520409987134534334697844192226341301323944213467417536559220879543427792407798139273831673851223187656153320853544749569307571698797740046406986756833353883882163831236190524473703571887382106062225728105994753870583290799235282326901177273355704126585012084313198227053279463353754186437956573166185650074322812213863850218151493954913428875391477934185686311800159586628222979617743172098278309271785337028778327973340252011343417725519452643619877077928729772612744002423851784306437387455784065405635306551796605179270925121936564462132556320684510341983440272914261618362750418891986375516196807210180566330662306053551947612044539024766300054566437240002155313140221332475548768453737605130104278356575970129003710198738107050068267692954331360934842929807280925349187835363724342103409059940731951551198812846198040572182050526306786527070972062453108367839442017148523067073647210218904419037627090589338231217705822521569739826378463288297078107159478665980661700936617859873065045890377206453059729186953146844504666361915914195422164358073016930502451551270984241382322335566782595671065831509790445863971342246550452398096139463955998359233750103986895453252813230126577597607606361180807302180549002317548084222840696031316935812226593832514459987992558522001418442611711242475662497814322434791586972770772135323172734615475459534916906152612920247214388662010472196422122583071054857869399295355763666901177801747042687377940727371633050365042218883801086214629319517347630628423838491960076296570718818340698468713319463532347715910353473338079955519702590050849705387156111359582299338891129042215729937783903580651557541728670412841596222464645554955369982521339619187763966576449011299063037905236869416592909914592752237555265969701291118398893169934115232728249121495108415413120004848370421816895741318196266895477111069013504723962059483170344079830151400742734592482050899187008197205742818419795959208494231061966188470916442782440454170212519230151715046882611695586059184275789027445826279030645635808807156802818786711752520980419979866573210277891989379575011052665532262973918387079520851801860131193331184354007303748341114094060835630981278608003713800931680131410807377372027966758186280461807196067417055521765164970975503317265239859395874689602941488520642951212891271957316394944488214925622838063570365239428803561151777444230607205047709046147792680080124537324396095144169067897563981879951741027567141886591073202774419850659581719220195628964834336062178954411787073593764053923995868764725703953783169710588660763119649099307622791222703537884544118828323544859676705326767612904839662353581623336462217026495361180539197520880875089987395001122935139800938710946730705681539396601089121611437757680544391541108137045009637160088080077405399117872264677515163553901729995380388953081118726932371388484757887659602998937150334166696923682771218271383433369104593052183146362853215863523634065382713490722566175423091940379981166807471899918119642988735269479932008377139407889947698840633611304507889356695174809043424501422732851040177299185389103714669050604500774676301596377873714918239757993662936111426001748898389537576458228169125826362520422284387473410334415458417756671104923146054046722187037222788841835802482552859556334718870182168692866983505322398480625997008064605424021391109453829585379323205324573132813301652024140682804687327014693439880734527090129959053287235664497730851606960624135728105354706021165872656572775652096278272685623996874575819897905871509301002192726672056654062986497359477424260759118178726077828330500424583923847441255279521079176583165210547981785800939245537336483646900651284943174675153183053023529379048341232763053210789457472005228539478374229593927521703696026507744042420923677213341529780807835069430004572941565618095161727053870353004957649870313237347270625843773928741750411215422048351152933932310362090276336569303541697604114272382397801172588254127333379380842956669408685893757241924962459084548700261653762886427176084695356517579529293643582234898937154591107233146593941003674324633302137399159852880910014663702183560436536984060476609961674847497115121851591497985890788633592861216410954696540915552973531631493974021047382869395707369253902738144145346441767553159845412215669585379098130812959746546224642620171897846699695230935259530979268386438153307646147477223695564114251177981158135706424257366286843841894881789817913557031541600032672626622030209150465856834189124779548534538637407160819021411341902600631788915383899238757089377724167166434175466023581890474262993901533768512770843036729746123556924503067332421290001893999080127885442487419884423953199715813619823502035247902870605178566708813703600501697435883703859750562269221060082999425191711328072291686664135502389508271381714672681589238225794999490927344836651342037651220091343743225753596167351275944215249180351948688160233182040517389830886647288547026371543248177172183300124973700527867334238098678036782354233737546488809569602111211314410326369427834574359706175979074394061295216148193388575726303841580059815718432392113875515043358097837216342555212777968974172108575112396697475472925726312952028401333415043020460358906574229100414410116579652698137996619894338243706684255702465203811485344184612979941119652552019031532874480763094640913330329522244696497977409977835810629857005471042194338110948052667302894388669338645205962031831455336968296605962314169374393849647126753036586843211997730719716156600537226952989775088163637000578875365802084105030278564802178010666541179324205101240311843463945162640824479537915507158405822117723507528238447234696471299181461601821523876621430580433438143314142265997251583291034087267827719056354326208233225344934295474176259786342375817195207745136817367254912579645115160788389981098679222765315193295079709324790007158090783787045780140893115974918134459134813742120791397050709957993158030852381293353067231978634535961745179970703043514678877337088353114295992919778112644135376143657995697407806521420912116879215257924011624357610310364265488672687751973313621009998221009016794787187765496255439820142244160743221867331906288226580091101429494090278389353533154184873763509976771282156819155995636079865537404492734352095800638226849049242154757803837195551307834295178776884903360112280248960776115921747187092251027719332413284801019569562493238755652492946521610225879056610285422807318917493281285665770998354820781708240825323101597538554734344233714615525136478244684307856175978375455902823369558380765480164198428239177187227554211850000602530978534714930157089646272583623289514975940156173330785888130658547388827172036271806067632506685287130665091493743014542109612166012642914718964003782841440136179385222311416599232664619121815378950223081651539604731962001811095660468927222577334313655987854830677975391845190503625173215010676874187502884132727290702246919408743956341209749370405462432845313254894650817217902675335314237446221451962370327081378696600980258829829675929630992063210409404126577478863734495976942271238735191017775528311719075065080899108485434940544410805789385826073240609821314876313115910781513067819336035592977544656521558347910971221628872176142935456651668530233125077733170685417345640875766745557276502988542205908501278034755434796221342116252058153427248854777655847609850511573995206160274593965085239377791547539474182651553511713011695094436676444069227372075679750654326939691331150940288271107184963147538192281298444711262637797657795341237367901989958393005374327266180228167607551255698154795670655500518518373706798736623228580814011277986378284546256262932402593733081993623942407589375981696157854256094994152168149688739029016772875286995931336516047920566019278023581288924322464972482289578878585794837972294848485819387729694771995364333955977358828365107059212026603870290873869470523569188700496475988495360684574369083185749994118674153899152290977150213931354342961724671746051169507128391928250993879684472491080963186789785418435820520776707159025991054227552630989116519715822113266424616802695862340603253552980789224057550532208794171519494400760972325995370192180650762839646883415228573857950518212006151034673096159349510857036928165340519357187454558194576772653001222271664386740228306158971007153717446571339146828004168526957185417603292006915871130800444187583359225181347752520043771181493736042055142560826558343768968101860969188239374575629832577357424068711912446730609127728072747117694244859024813280673346561871485333865841067463885859315598522972129770967267057265753327304013734826168178879600993789495610365227004342743913157846984838933032066614694900748227382949227829194137115181783911220649526813432525021842522449352134910659311803493981071199313738997196732562918899375267113856101890939729376764020316013246360499021792979087553619585926338627676534677532587681332795050686847061829021434794122437541229803978017349138715379410722403569745652365557222220893358952796592865902659528170939712392593707506585321695231314465074343006337634609855653744898588543450278016120362943157475243034976584697375851414375706094228515758111924001503238458723950417786229988513852971874350809175830951784720227581936260629774081729042804858255385451662774465856601255873667970167036217906587273163751755175458690321761206452476967035808145869336030060105915365217285359884340158062102470296918770964430381192637596679323512684563891364733485085555621433987046575153398107541286023752225307335698273086614628305289371880342188384299324120111494845573825698997700115747750961031235467423740330103295718131162133905474137616037306060507398267086613637963353329977205729495263305311044743546185838686243520345520275019185168166536735602427905025800980961767315094852817390845583632807668550869186306301348265760077649115381731935463820644925738559113582643793419149306848869993512907430746554077548060090203136641854932765820864413918680748132636082929483119641980686585278861350370376982294386796450727773267590694647912550475528025853295958314367440813194548780952164503482577433897185179201997842424826677148597664858467270047862195984138365815585770641922341068380186924680876210635855148997066011687134412436315463850323825386464927204755930198823889626125223954002402073876505661365699793344491811243031584532895740218521689512159142337370323313726444533401129156297136362683223368365511890993625298403682666850781633024052347561952168986641547307425696905517670323616182180414903809012319875533707740984069238198083475276672960362009161936285375803774313849020204595299097979493022524624910547119793553655025373048636117760286708853287290829473189411818015003901360175318469377856679146971640297931946724459074009077779232182903500592379238868572393234359087878577699540536289898501483310356749028995075805233691007049523425055843356982234922453082169620905219450167865020443484345969137217818838823894486993669027853724703866328081948329413771799401551069378774649439048580819209116990559349698979147572909426268087765765996075506798857279744128725830110067201909577774488288044671326499912026697647707653372457260108699625818292759743158987761777068924776853329004656000625964676491453618699266112993805269997330817429254313091195273959841145551319044470956583505231488049659684108857568063482822629814587365643194694364779482987198869157082679859180514110129854003891953207637626693784971714027509080035064884131550047521721411408328619527732672208699263141536399369437589030975272111362822159228390992167584447228835017999347334313825555855059779647017761918150584122445619547741038669162538680725155566758769853798493719622668744013578569897606916637395314118381489903331703062442319581701822688802559496826761033002079795515956883098651473013101015990408250123523162996742898919199632715321143595399923642497806777863572972725487385265535895522508809158693799342972257138992771798399549449391046832013387639230426464491546323978974008116872374251485746982925445144949495907383796424999996908486833630063392271717839736406913290268860166851157323667405734345906996864435009623634717376745977960880823782096339907563470401351951648504310857444452685832420829645822206124947880971075002001415960116744855946407586346165103952285515954596537104699978410082561489116007085834866081778812817465706939253941428898195592588819487946069046356636815993417899799541915489464307830713968537085528705842255023493591469277891509078359240751764986477360475503216530716556897466750229852408768550612813533329548033892918137899526062370113772395455771545372149063354799558796306646645802730468201650314865293057603045624942008045316282707228224430393757651363720901941082719027401577503026583327535999394347791390151235396799408293697195215014085167623232111315208130850716780368519760320048165981124763435142793279795038950063567328977581326458560824297048647811790763363947373733406149903948949870720857415355919195984646236677195545513626094217607471969939459067922992530245327946935458050866005048192267342052155594475945130569474404261182557389257097098524068645446559459769566128499505291160275888536297816610129575556140062325409853899704238828185935278885552706268822176589521661921648662022204336143074513975944621629369136924414808725145266270383207558544629301257643366581095643970228849999459593588186600474081505922447604747751372290178077582404711841888657407351092189688275623666352320852774615377513713624232066677523304249472207812933156389115145728458847788439299723736060651718388307387054476983954618800822295809314526749951815576536887547843389482963667305231061687356106129372392405290338219862309296046094887139110374384547051165195637201982966227984570426203227972391540350922955319819802811642974148051132307336151177898395653206046096013186914593881594659194881566471965471479570966076548331246500522372299130543905822048646266210812152237553787062219779904484952783257613968511533820759870487687685530551467097617779397359636817385055250532523224332644583737539783727061966542072308640800721598190915145760366516032559385483875051710468796244855588857423199139450478028248672468216108755687353745560045159388476230500114367622404611391586590638899074835796716860369628281582934009736158180351418038583046343106824668390491888787295992094361141672161039723994802157577421283745734534055524115822565268710073001731968132267595417627144231250539355508468353855840035508447082423736606206203663618174491327394516438772618752826863012044124592386140008077849025452333035936990632020982259580982652500877087212720599002267884446102511374050119904927534092285301979151884176929848308808912482311561934814117535216863105520166513287179653968016857958589351334563046137024010276488544898831310707539659718392940688890435825649978126597733848485385755426512988161828751680001859284090914059606637753366161288275479858613965736070653666472139032459177621456454151515437371439939891368344667092268238620201391965003937853386062471050907161013835972723504529498039189121331815391760948127554274642047401056798521208258637569780145957799893469574096906681823048926097659914201099255974212313151686990927790709084053271057082092285383604481223585766814659796513446860205870805830083496013793694189566117890151110306219258103500885675464506346312510280467483744362826178360151064778211639214824026849466050844372544376718282237200344413364704036676489874483131682476046069420443410445370020793939536278755404304685403484921227404912118482782212254542542074433275472007046147827938040023193028871752853037435142652685131825510117270303194817182086827312239379620277642913324133687588783978649661396044394894225338976025864307266821379786594925456556281456918679440506580517772008446321775626503321633344369633405013026803905306092287592603081773328682650370609309181922155183084369222035068406446094988033748358144191322541874213232569241216057686837680372660271092752703628491681946333566665226413254018286986756869366572010691330341540200662661290379873316140885172467829347722815836697053971600569244334528725819283836577639863677283730126854300717211020248787365565920586744274967145290858172931311978085496383277722065329409752467003971671937783328538707759564715311054485133242650974938793826409096943521169526650648291707564086938216671975171201028503365828618452644757011428494283597915036718282956999585761577891109670483611474660439313063576523224126580127521291779531657138545900495931806490999893353838536730890588648454322890224920448021759792039637255682114142517841658903380831778375123178657284530951701230147068843462262454333787164549408786827158716967420265892226918629758149429915678716968273763924708076706074764175369105908171304396712830591320023764002786427860167032022173632129715962577208706508132064938237489396701669024358730653089215961002472491753250888091386104047439041653651763246158039895716162307588678498330350277867370954282047866919832727713747140009048862518333612134876777339262452865042614305218588352228274296896931850912201598246355932422341375778440885926754136126122252361364024188902193055495071701137072723334770042459734252193483792806721985965605700376025375723887810371658027391996709482826870887689171017015398105379390395492750449804166158951234856232736908297185556642277580339038115030097513048295824683722920313020605200001237915702302805286376030532147659169176235840743566532593040541264450694707539303755523074342850269896753725281606141233320460811655905307716842229547721156150645610173351159305276456072529072251021260326146870827967853468961613187890850618018928339450705685914005283482082242870048462829288851671302585299732528123180712692403778993590595799793788672678288032691897073953328777948737027647988956476011651258759190677206572182248370757453730793556041366537025916047435047880650320099017315453152969439369316745022521795138003225827359662496482083242141935552162979788300577866447037580790782588106879211849426231334713442304148341932790326680546258525812181678115270716812846617177062982698622998474148228518127157683856461973384156029555885741202346068951547445379471590727727309095095151059015831477724425327253740253111978166573504667863036118161509607827921301288841068418668739083474684454709509820199796729439942266144400874807010541494202899387566506455585365361197056436037238470360100205728922287097159710289617037223104007121926566091288838202299794697847074020984185672751643855865362276934111702919541636925032513120041038722090342732867995215126474186818452713340169610242179500467380803097645503887867837178341128304203422518966203172527509099602508561621488899744332703019613524439160697467742365202535681973720346941402121087480850634465055676763416798398348880755007908745787559021258038749112875758283744556378345006686678280054691769812393378960381153524555028680522832313376200165456962029140525051155008454213048932967778152202566677254681645407522110157217724020313128177272316423762225681146511693005846191752633455500902639225058002597201735975101025067202397120020222709975556556827083076781587432579418543754440917892665422559459868947547046354541450725226906620032280567423037672552239119500628551995704469921553572579770022419210537669181836772384458687034135059674066413224900434585061029100321011927083934428114995823102354868904271485196777720634177766173495676753823988689346619878406620859111986540119527187849680735678820685054166893783815578601412408911737357638662122029718271603575687731752823517721413767835993089228922110572486983518815331765878223852640679247828986645999416612761334026833164144822265211220370090301456895048753362527570108188723421597258882544096171105488880764867737344054706641409060608413870800366578080241541077307849466907252124626850585885929149034534200109843978421008616891421888587467446341571309563621964770926027990675765014133153566396194279258934234265145143029016496263203843294812733641838967695242185120636822443586934450938820004541692367244230068651108732596987211630923831271725470309720150822694046518212207321580206491584567436613740489236643527895035688495511250908608116641599248783309178147155347029692315253659042426220794579928047441010795065653804165649414524406771310269762191246453758544109383786173172831459300994709505107298541927430355907875527530354278715333181494681837416354973759435169869120835109544535452235674854244961077947056212520789081007058891990999046105655213464413974408159994746030519015662130568031407830584642938459338676049878002097532782456322180387086102011433230148624532244969998742382487702287708156610724983958887206210212769670270477216039739505238882316047924484682112029430639981818878784678433600633375088420091581227902848893662815108653002308347594247468363272180561559208809242872591076039667014593520835341759832083182141385281191188250708784051581656008863682186431517562177035185595081007418654589744781390325760281509154968882883919555018634951300565177961236977761946446893446579849504350736399387844167808798387028226317162503663920629666216082151388069227396129642719833950064084547261143169026300753082638717781001082994745802850255988344093139977463756059019714047745569102401337020638515618386753319467143979756165216458866854030641480707350333163266139157799151738997440097300322327678970433853828997001677743790526627126773808406162812291019199907744323185758467246238667545524693987039680856239197284354912763189254550954759511365651065978847395235969983032570852522670460401580579912834472320322331829901383526807395090287265276792719384923841167442620227721781359765982225959925891553072190386018085929036118563305489734528759719140218386455245417188854116901480108429777577492511231168513728095548995293815638255433751177575796488006537944181311033040616988201402028122277656597942146713382393107161316685829647733328312400975065319314910092496810604637220415092608135829617333866669636600906574172640483047526571683004596166071049447125285317816832095414663810552048388767747813830043714637084088179516457954631714959701828522510168255053152377113705875046116574237461062650281020966106945438489794438759096653129768370821833947090680092643170031417893284286079522952132913252454763923909736074839027881461118843248689743401468556345982168602313727403310592167841687413462702785391436646911626541045280367823479502102843610942882666363415246170486565656016449218368585766606572175547830407446234785155253640846929064948737340073374963954405305525002683010603934830892181293842470922871707153258987026462987193389458513073173632315064592439122939053620705360492260778646880600497728670419485324359826932073627644833611719304598237668691429518288341512051605277094953981845671366655969591886865398184664630137517622224012217103665414407321187536814834172966191385214025341056136024464439983720374335025529950437665092204691457097029298253855984795240004806488284688917352852980731554539150551935320225625393777699873493249077398621211220103312812186581633018463107429027396333183420473157824283021895396535848770686696106715478971826852109030911657831714311679480734004954222143443072489012653056147328776450464630372390405949700773922314251509697643735421251668798837572790407097726828644243039709704810079136647230864251689384426182356132837058504975167500181619811672214153640312516289744958964174524731143526506506895197654809832854810725930753340032101718182933585357140527567075242212594797320852939781224085962441711707229707853686019803448049971354800122663208939594576105866535902552002932292279173597516482863856658593065185725273478782607881948554252509034707984773516907112812551967268000000088542609231760720681266559915426354631584124461130922266292289722776448556693979400305137574866123753069290624947457910111934022351495705233976421397840283574869330298329384835791004000989307381724562732662874520179548092230873335168993835874824670349566347941216101660707125047058848567432619250877047293590872712810366316077919572010583094999226808903834326542757138394481622529796681683278767109177158228568936056140734270513130448592579436161448986157363443130736375697817014075267820858219090591909320689124903636388989924428127447935455146170024914213434306560095034073585120873510636995670291712205834174519430885501716968204240566903002049539798441633328126235187121360842284888693425248683035054963936534872718779798559431751418365330713009801022972174133990086194144330908745716124874687604341908239387639257457554272785173200813425115844086133636482879955483558262883585690272423090546973153397181139816439424369077409939817711554668200003155526745873437581872887550206029845698255913280872678950811149459572537021538621623353281591265313592534525530000486387793061883766110931878930923835567530191860622507084921290305987201234656352571025659696004269687158659304989727077959933990972295728829103284414333035307818406428853363826812810560088204818417859859224007630657130862961400680179918575804988584762253376666386816098618397777169493876230055818395882548097373746320245746168014616751015432800202292898020507862242113860733838246272551651819978061109277887749564897092938918553925977010867148557307152330429791478939908821066612302107985927567542475481642115950556702433342034869268236930459484021705742973963044978387298322935864694608690863779602851107125538445224516610068435385649101219951885047171178353078663971884944088999157141593125463101077920127659732118589691553205408880342721149294487860270151925258479579615772630470144124951583851258840636740540319578427216207542487832951355091010108806831045466084946604878691900468131907984892567170905662646694794231958475361880148558916552628936197523489163005911946550956308203052091093779909498317485198613994427177608515315647153565958081497685353612331121398624370337158218578910109079448965270091557310931740124802464277507960126209340626823342713000102555229826921069184213956851766383347555242777853207517691764628647070088760038732335524423784836932028112714715186089212606181375079485207248523563907393443395626345826636681255880330194726496119409965692231686405387531294824553350740519578218059368861450320660974804229304699063481758058287583066326362499776951607752231721893863004684852571571750551957760953021838034642954810086640284863647733866141788918973158661062573104749699520312146360087588950906390541961594368896560574193489686905736246580171569269458299738314023326513664248752331293912336832760849887071355478119891481170165383268180203538274302349328757551756525646605902466901478013359053389191310947937899111397601826340184281039951605125018677724566526974897719750353938719271125013942872697890275996231938697622729343374496649771182352746975910826860017106812020581360759397900830900956016302708579562948623232063822896886794545982925139926356606522224972893265054642262747168989839151636771309615932745036660280245497330642166856101900849965501383306105683373554289878360409386237007564828076047828806201311064642373089912597281524387983039041197267249112199243058645435943798141382351285536587024237619736290889394542952967798983916816478629684653110294881155033420586221166198555031272196988864969321778076375368396163329695866899507574157359022635370965354670157382565257529909330955422167212054706455437622583956830208314150616523546154482000566930279856449928922781456110831155888641331511688796901977173649634722548786395522911574291119461603389186579901056016892728420053160662944175996115724013702255516357977735472798271431558675173541229107044571133339300034199600345099107242998654592117108902348374549824080826343752765406466721305864443215895040650003226516637957932689755466585414917499951290159754349129723997927844104497232012609772282494423712506006409490620919123434246648099110509101578885132423148014572409303350265573628608054632778473167362909438967069815401149400192532700307300740530605039359295153075475136505403992743559191206575520243484238255593806960906975413857425630349104689891942211125551115586523521560808608241422896701154755677358522295959630935026565839179224597855766587218736490183458025498207602311476630195838621367338268087974085270093695786990973438472391105091586045602802746818788662002939207577820456369582845474290075663173904956414556349710833421866792520853794568616964106051085880754365834577705288886198382514339645627725477830179420201498174004198593968785703387179244518416824947963211871603657899234602209220211474574582892159053031613024105539303442230366611927594499258457499833628740138940976552455777347468405323851742393076371642973292567702214559189110768799907032278481391224387836328105803688111618679033778141868499444770348927637806820573599594238701809772096729310868982861850079224200974019634732671170791635262998826706592481403715568486138998309970064220784707511294523313269125176739255056530382030160293044940068546791000581937328941728579182000911014544076572301028708485729547937950844486358625649416370703058775382247072672415564590475071723652165919123310596241294256895553137650054115381383630622144100882324824014764183156759569971770352653394390172257259630575032943527335491871197963384369412659328177849704715665539806612282920411491264514038773206729345655328551413359266027486103423403788718528504060833492436168435032405825868848524370155505584289493446825680632825164758028307913563048221442046609438029760556055863479623726704754366602911232461934838486008730209104932706660064383536649892945186237916396637787181250437469636579572592584854564000530655463496833415625168220629193794317558599767909543305002929984411118595623931126849551149802698784087420260698968486458196866920984685970121700647362229729024430079463242659744137138809492302383999247134475464984846024621375875967043529110988866941809266570127706693723337577110401046882958131545845862452228435657581759762947204470648751298463470748024387055540318632690291434322100096842708735135112311176259004880556472875061309395215685017287202010619770463872429925297481261606027721335071817904133108816709946842559492959329071019747090001994744333131324679852974129002597108209219799683271401154953214245666650605621655361325838576282078558889969595437800530622423304222953584877228761159099970059128171033900638597899416840021639816761037514724915844481339212506838955106894727957776293995185979631483816051784102952583905313662767607345502147399380075141427019523076928377983286967197455268738444049086769541826246547967034332497136041047250464563869063747116393109407699430398641738729025547506383146361040428156486644755306132014816624653137365199531321788183631425734105187397175934209774019573114685847277480501596899555619861297444836313319224606152760336532203619838793836518753701546141927361275284099378727038223172377143805447218946364947549871955032717556842032649871439538000751373346700293190302038228550701943786251473946829356425220760799775605807752639170569897352292153427705252859143676269336947928004210807690104608445313514037323521416386002008496789849019664509982396905558394248982631780007272305107749145721878777631526118301504472564633694993631362024104823628099919181566144067024147731354366007548432422498866798886306787957351993957677856566645833503670684017352986961229094273667701853523192692046447287017525233594655606882487860791866420194120552889078125591877564733206422614828963349477313006595267425563865229168472752060863512268408668687839443456849798401991724155757978139453075796124817085371958804326259078238713930764607399137788135649778393689892106830015851186494403573381633072209655333522494500867822158683500501667496654381171040424095762404059666651133910205748031870518625104451506469485680552685856445037083925346042501716445748662499251182920085922632581273149819160430430167072401151226312864502148204321000284546854502783769771232813259044177577346278869900670731480461145133491710575388115378526155123215182873769525564889657199716179245649392595007826376238940643418312924933738421264181939867288221095758657179429771107599612795124645820402451395373395242381508854328836231828540190222832307939831835516891793337082097939411132789519088270946662502711213923729664230294077339092078833439323032391412831729893817736840463433984359457610755703721354517516122461807579072628112164330232143988435933299273253851818710189505472912367935584978537797619251632645751498691665525313461135760556922540289119896063580672703858696026034269884227366789758099729027578889512602036104512939471430572525049603148436711955969731232594797466948389334345044423641669641661718955061861042319073507140408960709849621254441980441185567719108650474768380218212379038040824436879511054639421733415650983854246311509191377035065645245658669816698300888546893309757177987288310741216883049383656953241966594249221979805427622437342425059800221812600817500604357524437423920969140945596808162303132117648116408795603923693457890324689890198400066349038399261143427843443119899484888847396088209423860599218475464142527936557147439288527176584969227383495418689376519937720636260612870174481862473370424723068542295735802294171959240835635288366665905706727925947819905859063105908980718848192877077639118080068460660067838667063761884692418436998043258440960853380777913878736288817553939043396293710999071648762322481500271495141009282529183598378466660833789011647211573381411127920780656306858599935825798938785086578213312688808144634335371602656052620412479811167325975199916005214249386035733983023618471238678274784099846552884648022988859596980349717615777500732032756732952529920420710662428521445391060286486739566189476847269434205266954487825706162446568672493265763583535425446286567758025023234045076666897554987952559998491542896036195378586433224476866883628385591654162120791660057348727948526465743908625999974969897852765603104129627602441836333088878641854526154734070710744812546344555159678011632677426238557396293242233510104118257918330102653245244779307107829455379392581052151448455401298884887709139283391998158810580818689341046653932502609947989691369538544833115845860568990793930949991381995100105640073201310213656658117184500787391166754864899755435726764029289396162902409943660993270065367221531030521969608054090622712680924289516132182197320091007711862019945967992433975917567465380864992947856897154446309333239580382322945971725677623977192975293674283004592328242029788268734575274162135239752739381323774051128007181031262340940510265743115707946984010427100733854654619482303711181465301424079692706507615053848089219927222841622398341461454635927642046098187995110958754091063085455503902414230239406473401121166456370537045123727449372650003209008856921674931332699120493845789294682723408151124177927126929543760993963930739227443255595260253588583233293658612962202194724324479885859166541148338849881710077178737619016061845034400059322699656992011014122104241653470522885857769664736671950828490589539832158201292586694861158069869178127746251241357631325999647352619293055496661616430017357391273623191145776695537175042064240035292673274306799249873316563850201409297720473408746745692211643901866465866726738541356557403935886263397449660987441561526685262170868455922698561791032810052525099890179799189490539815076712736229860153831966273256279806156109810190285434937992133481378965875741627111166991511384324248905777190510387419928220961172390019110213147744461873509446526598735372577371764882760339701397026746139720858238705997071056103356332234184825826126106893404669528150415791545038004350917370758489927792476337829968122054281832766138644336747517206092080719607870127135425065951373831841344967212493644495893661726900495869494529652870940588498280171826482979714915228174002033709366528435299099993841013222125095549913584239921934593219170711270311060204578127705852951741104600418430367583247297782380727703133226466914642084657207251790451694906631123226180887093458401166741959973356962074539696820074854732472520351530545722559797779185164522923355103793846103993081385081090670707090274113680146263728168498953533346531872026948592227759848881750707000100029031806120045214796605081543471120283964684950592743390951548301239057966353258497853165596043213855498545579804209645324170475663960432073174441539408168110638294998763148854382711434722312218249765338215180061777546473328370287422638949484925818764499419809388951322432964585120713442527238970840024860712055503424951912018017191269474405952753711635480487962453938445386855081299409856199029195451137923200277134614309408153055828803097828380353858748741617694322788184495372962230664876734660502244827859118395200584803781365104064423905455746153564249297014516453003414494425894043110964539544280838590234184982401329141082788278024274359557186210892875206839700171346226609791627166831994373060202844895159066676630589753641264327269263213474145034339497180720540490545862605707438305866871675924423438435470041593258860141898584181930451501728649185056374619139543404878096150773243243808100636528130279205099254573546507666848817827494495939335805357318411033255792742204935353263231560089634095627068048214569426081543617685087399621859554186370174498724362284302934325387341399756269607370829088171741233737860644897840420411126654496987051418042889092887814471827146365185821259414997704392649241264550300619479087344089896531922880140531927365146165703922860788583266351992154426463549944732298020586133311065000245418828922444424754005897513140436240185774133128888018364033401295049451845555461266304174454050822493719456218491355486589786857756942096102482834701469423793753298733146244723593291616408253580737302425330692890887597264424942790261023714614670224481283057427686107670391467216204921181796290561467622305284971672140208847868126840920271341900565757183216474414832290401891638754072821277061545323531715877575031341590602735182311713596595371251229036039094603771796148081027061267243325410601679127244363110946858729124539841912944089277989735437817789550135603547908229884404613417570996611024953457718559886718659291573625425419872534084994031402004631621385319201569142802173711675474843496250013573212240369086341699122935515310711951607721378251468785880681305692478505995581924402972242414870517139357128034780224844654876143158258070486905330095814063323597457356083080354153200960854240388927295643239326295359987132258082085280825758393842709082711425812738567392189841221780680799551673863086696188598355978864664518149510975484028033838807795388381489854414126812778515969879414387800922858950713202911619279042405729750289986164794451383518568391162166015588290845608115508214629772551421202647619223653244581236046748287779431598998503032778009225971410566397532726284355336842597314444083729880736792923350483741230132094714592086678033902264241788007559529911776382320114056840699589219940948371264580223211035770596355933909195265129416382424910065172019087955082206683046541104315384121927877702136184088978344288320373584952061907454934072210428098034670429211386336130012120885212513746281478295685862004631152240010696356834734613484179503793739155981495008338587147799350548179103630280966541074918169297567542129718540170519141078294723933380232973573143665302524677415650122239026918982434237774013158609989062265330555769206852031689070523917979194686022736233867180857918933904837387830733679016576950273175661618086487262629112830438950036147073925759127207864233091147782160498462889228682663404338927230505850397125962414266689594809319067042341161146101685215844981525118256178206331704691403633343324824952066231235659259856858097696543538218522552561593988306829831513841935547489710711648795652355311909264538361585765354192712784853194267141118103127186185963285405546739455074449518577808881844927130362694568835963869279958768254044651956287825287966827764518343776417082755283283834371628462684626320235190990212528870459447928138748961960598613498686551293945966410726033665933178497508062277572132218578221918352116059013231226191005527736345191042251997892974323545844802135591722355089863883384545332939958948556899214734741753248442163045872215016849970751668467408101036743053326050157075909230090296490734138171236643633283441128633195504007574765942538320001897770887733171126935442782494896630754323020543373715025918147479014007275202399230399793036604641692535111324113237387645562348982311829043705339392970846341957513662726729141837569637907544887313926186738866998241432822339569722401641846460794644709737628794431366243017357539156170970664045465340183308428326702530421818893606812069772350322680785053729861149330627010481002239559685924626245422127181365603224296569178416947272106003495638675433758372199193361420977031149193797419459775059615051341576880417897898625935006387738542505591869946361490813882570459679236577395310147540997479878286821911852085469791640598817138866911949344918167477513490234535782636942549785672552637174798497398446125280115339147687823427762745127087541415190773230519051511126072867837627897072870075959485446713920120534886402172661341500640684020740051896786087375134711429107799799839469276725570759665642231940933301535994194242540720272162238566277306946016527452285194961646321316277221471145409290453381559156993042129245401884138402222805431200602768789843048734952133224978274607628823092767346001589185214803698522978353671555846959611550400661585029904288257388728319920841419566953674077706323471250314997380141898244769735678252437764983049606797172818315091607910425645016869054798196736836961631668042507465143194619647828734248478096132197165653051335722445641959948483813827989036385964338077337496655005960524006011127169944287580461276264809743556894538393185660709277614092271508141581303665449645073991857621500426951556875377323053880737416399769658419071016495965751320683797971720861620041194803010174040333987585800400089812707101762905697328800387948325772912800735703911765005240570097586662776109828563960206198556224268900580930920246698466380592255327595522652378351973772354680248190549956657389752230381392737847909667251617118780417753189611373414929346502470673580208242538838610340862603600998171569496386505470283477587067001140508445325278966225350839115782169645232775164981047772855046040482217413245535668781609867181291839345616409676827867196432381026676474622157152738732240669805026516917511821829188881693528715897717790420762875729873809253248067472832266848804166033579715608178415545673769994144721665007404143472780292500739940513533753172783814264476316190728002869686706948913404153362074437316792514983811599091312757092161175176296602380317505467523174965331786067696816420434077199592558435033205305449118599722657668985999770031455595402660130331639680663926167705194123811413334507508567273082106907294901724044660486446418127124699969813619643556607757164582063876301738200468102919172062281044002964908967391905952853813345765360694253258800769424679062597921529208914022666488159872610258619450356792700091971802062765651508932644521801744869756434876955267926313979134689674680648509843883233548232732099405038576600573783150552611502320408440073847683833612959003338445403399087494466000638630272107281122584037400538344555076811772717484225648244833472167629118666607738362325542602021710084855570259629960643212207852654683653257190569020373703600984772886670831311444952925293719996978685182993212422136039689887175010232951736401910293574567701243519591680330700992133032322462265851763128726214411668256750683524657691715488924419278141375137081224513220343943069668013511782567521400098398902904061265773459651145542665594889376458059076135609031842480134525982444448865740966037928792311430985086736676413356440149345206373004497276346612352050430103458455098205043666731067639017591877140176014351929663730856374949421020374537363716298083086461951176392922151019520250612921668574282890149034758952923016537051969692249995194207479829414247673792606663025844809137570941770710768576825735086543229530091176179044034860553245516915461667567191872365887223481208337662026091244098708955472510060954770524976879491407355136934721452164358262072025931208910909755173649141120983860236037233065084042069413823933940285266038146272696550970875971999603743438181646222646012731052280271837486459572667541778865164537021980063301823876537512835229966370001295094457073143119614925615618700816346648027892669300072113519514728398645669857797585759945117803875358910896933903778662052707068839679889830890722131292716834464797819017964896221524191039680707503227391000119262380837906832755377092054675815635590300741313966829599705102293076772491882096081996748075760020651573031521095749666562959644014892253722923133873929303384665649328919330973298830041098269415682068628553309748278541839277642724162398615542287137667575069112425735207976792902885549859703993403257056250865441210778788196302603819163073164285824262172356118378247455635972859761649425269184579942933057317028092367114681869681241812079256955369589697183322767599088352806512630124750921789441315403268844420650416642354726458630498518475560598198010334900625874781730285671642720787814660188922946605268071838436378670206000465810608706427023469314153737560690340792858868149734578637018808657128809727995262325332889155941802830207845772606294923556109637414526894273180234909253054946230954876264268813577081540093224812463256393606656202665371850557966594610641330266038524747962114010728557806089065268840025336889761887211794211496315768937696064713376357598473526475104470739197446390193870854642974083022871308839459661571142870488450762194336812213705678407519646135093616992895683033684436490946632229138713120338206563128772410978031218202810452644544312334381290181396464120630214175908429292498100876488938117916119974167540712557803833531965525113790340592824810724001685938605481713338286394004757213678328741970937645469572984566355540037477594936470961646224292990606994412857883886781017916767127916241686339080295507189694388451675233189874697916368101967933093060911199472310913089344403887663519854045835647206494067612704238144215689897707341781006500399440839953082469104290641393974345046221385097991071283201606413185496268785185076476590298161675873154077416319000771044338420577942895718046672881382643856246445833148161990832844431204481494854455424488584198929503723184200327072603622153475243087091098655535214944365580953024191996407235307910795448503297411707253635090425617557323061046747473843137437020924955932894460928477770177425577396478140970161782414628393546386411737946989785199503862884599517023022743733411935221646020389046516560999209619941026988881849607788973091403391597273612938377028605899137375715751470780955915096230329753351417780418326433434083844394050679147607786134849905078837674397214411601971930229180173324033128124532445319677549995835584846337944392214444372281666042518838703232788726205470386140427748160299376867422918309799805539777452535197865736853568146650497584496526388393540975843647220548427082772077203514931316249528091980083383112360244813429454960351567829909438019829312029103520402229682033147397102344072520700421643390726410589239224691065174673998573240831109364532531450163692585356781308484293733056640979276424655557103879531835558378284412212583018834891595166406140912919613637384726912093456346028452662146873220707416629740466714041216335399527189978389041360144585742852408119989908699160588377409189116646420988298910415216504864399289120277185285453292709932499385575711834214970170964879697473678262331858173255298893988306943346016097112470341280899090069436911131541418120020262060551625555917046308631144465691194608553942010071386839112930299405617954295789861614340709328671880450149768994432781613454975014083195907223338722223560816968792963843924716195016342075518466229846717920183037389686488745595848246610222194486310165862648977872597669547987119001971898446759166519033166646279799539891033980098426854118782028860656615346690558390269967467817471798156604489337267898807762352148643896039249061994444128300348229908100771990691175545334709544917844005326737197821251880452196643537821837997806161861242513408287788975594808362897221724979225177616167815218502210349043149639620185470122437813002175113361561747678756319159566028673436402599831548258426919620024286692450557574968007781698841597700943471740060935990663760592609517578349144804542297015172353216286407114348422573918732846178613885084068737464528346366428446985346834597076545040294158059069790344082424064187776345145173453570096470263982485052554799027534686454013361839590280058351217751355614674581754470915887762039292614697074199943882639541847658394371818054465584836282791188478840815840035431021314046435250288602534541895544779675466590685054079137829436719287733836374589535847747667166695824286765073143640586980503977461396325493168807731075210430491306426469767600274310678122691309862950726459840961366326055130738286434835837144180819573931232473411740683653832377400008820290954941712571770301209717941381130311200185245190826096905143147549839036617644005642651680064212249209285142789217293098427304436214223279190963359694356833825259420845672169221569548848966238924503960709743777013335213315797264795942020475201101622459250363098396187891515470407796633030584034768235016461088807945066165226753769797481745225844376918241640270084050956293606086338834735880429408297873157209156115014037547243472242927703710498668312893812674620233261875726861980613755705215659866226033188385010420273747417893465941854325261026980660081887534608600805358744200115888158314453150256143583108836999701015141350972568481446635592749310589839459466415812153951663405709605879869362429549260131883914839373551564858548440235384346969000918716186375157570820657789244807915382187406306564616479167345012467896509393410147605746941441213305445291607411699693232631304470868308970133745083093597166504240674078107248521103215259380273533230566360010547052868472905674088182949479428051620180443205775934324752538948841267638225066322030634507955921362547759046999070300393428082639472023488484434660006164971543742216019214250928047022795232589736103845405888565665503306206448814275237460482943710835543155479887545009863340466747343453808225216283894648194142882144283536717561299557489066264126873543952875186219575612238172910188361877127336422731437601253367004369241670371490679305804854423390435775597041972808077998953955456387500335608062330800558466828948031287579260254382168713009825570076584891060942463952377525999799911375909927758179725077749329602451748418792211798890772265901037008607492626690553521185364854508943444321111433669967008267747678738717254075528658456236213511017703377191157864910689977354939569902204031707454231129523887068239008059087932503385510260792381681370981331214973965395766268322488548733164939862080643862226314317347891892268423250085404365908643489408683558026634538934154030281567977591573196419014118979410341946457249452212286238804233607745379280318463060356109923229202001253659868925613939212765284676581529523919847390542764642428839802099712236481836214131492909248782303022189255498901439403539956776664939211401188129035766535548081967701404145564256016706941345437817150808941998858575989084037993192414965507918906811345928956531447440003087088676481279717585720294589278694893195263839087260586305950842609016713171074785617393326733236785238924833714837755163865485115766727617675504807807398805183489719291822399765791827643795430416751148591870102596217982627926008245162144789088299776027527610078214643973960075468998775232727633937673640565890886406811932608024341178766914645576379667978749362913001308134455914011214803268754944171586937930634273481120041109554426041247981784460006367707482614423699579131281817051651478787724475883217683089912693730975348555293911970942503306486184260300440820355145408180899047068935186241923827853841263444617460095669859083399683619804258487671147619065747916993083458121275237888563772381044742860615345317136074304824786405548241191903635634349487981549800645261327993318415540948282314824112463138179703015311850759039198605939150731105189561003148393145307154787434962779465892162027084532811092735197531455626649740708928998790001922872563979434364385998646925668637890229834348234126401733104962768713363865946537340982865113559825826054828506882301650636206853396299804680309413519569261750119667731907846809129624882255427142811144105469922391322199157823589265612962871438782430767735741059132459683159272001017388888339416145625174449291273930698248258814630786082042315212147774217413705104647641103164947401563911815586870520275951994121653514351418666444711772968011675498204567670919142944269708917480615450646763266136940157480727987149537890377306015670197612738217129208074227200297691472232178750641976753570333929610071746498210168220106347212692996693430082334994562390040479401905921807776481383884192581971049646393152450466299985305688646216496467441698280085370700687552366136549829382357787306333343689452735222537977200107652158508162777461449297860560205574797852271903845195824892032809973112361633273870719829428772654945377348105437472713789425422084536812092294889308759167810936744392584357289631534938485307617531283662949329024369731621302617203684711043826059841864791012767879256426449756718322546503918905056521227650349581072888972383437463540129269914721404267561547881254667972465962466817589363144995833083970425710339147184987164142734872908757297287532352214557611454028179131169085836834583115223949367420840522984375536674077040108427387518750433239722734687119156769165157674550457257052779949923571484544636388367709837397015643667929925112165901841750356700149506956632587561916909086004822561237811091714644181450088184003812062151578802009854568981223485606707572116950060677881410601441414959861963942267108231258174727370863551287435386833560794356295371312293090976642815486125610039259164136699835174492390278988375681615245952654875029415442415983364608966083768237702697829272779342034274204036502670569642053380363183456365808974953041115121957294747086503136781495650672791048847108120374474556124650628924832256738528928290912672939632154096179475541462867072500508990711341775425073047359676320567040741578420027370399566929435629119497674382980450384696534625738347133300017107905356793530983299317064491166793768023590603113248737357269260042768720199731787903553982708262036699543522461022705687393193353366948651186286652995723629950586788597348531596380486285499485104648263509401368292009257200411414300114177001140715057363237369791495471855478736421320333435150749443284291896537012194417907759912581078424896574206182457900064796119528038078146470358784893750365260506142201533702552459146814593880544752711262031313978332493659378515230232852850152901172841819596085025411234288008763676495159010993500525219467365281697147912769104352360405897507933518846223158018136737292376562564060561690660821283897105210863515485033598754077100524820353924017671939837078974058291939230167782349893162468703305320978690082573287322581145527040362868676431818709024506126533214294131297939799904423400050434404265737120310802438848607029605932132848725759243797985068719153194471620235019924951488028814971656387147215038196617990186109064212069530093789199531258554693253778201005949976064250909903456364078056108143026100951984715376448241307374647375813037233068925069188886499961613454033115216734382172142586528619447448379882217653687655202559805976425871738304983773134152270218823397460009593618679940221201163046131554830431000614236074340520605356527879825576818320347016473693016801092626699215294601995341450316381503832295082763609639213095947685149224999253993345524232029850131212404014810183412431736175583103407346968288913341303734869125614226432594772433893188270563260183687901036931945820987450880006932165050954339922580206624502433305626721806923345165290661059377317671793338822897263495830304375970343405489079920270685790834374165673497298030884664135251755820047900889314995401098014393961620820681028345396416749690592627717525309316905336793514374424439136544277193912970436952764026520123476060216877279902927386905615119029935473497233735705516656943728636819379165170014853655841039382695134152910273490604188869062791971147007042327526788721301895663016837519787722468294925478362482015488345886446369909951368214528833261989525620814546272462442986807764716030579968575946807857437554539090836672993351516189564265932398180792916119384909631874764215474357891324862210460235274307548193456893093548745456840101116546208240061916915686467873263902387613406710180770450798673158784386139538759137327487267337549816863195333331255551516555262619006299812964293176651636149775228280251057422727275982560205518690430957164324275873238770472614546123639646539555680558519098897494468800259238860129783928123920567812765891273610804561446237138140093235630514080926970736354194706441900423745198380024049880274768975777369236173889337713694572381685928659457483001779279822439867874795255453323404898677994417169732398983852150564451510769185258115428615269856225779284041750790453633250992204514771489911340703271512662978169475080673218959980127758354490886023881712784329085545253386021115397336895197501639336716412338777673447390713485454917760634992033637350931298907186570931955691681192141557025515907152514243111381168291999881696763622150944390071893866202324933566129840522641106563739983559982171008719141852428804976723015975925703552943380455954108706275878284305996923833735703859921738790087319471157646606127894701432207214245915188977637587058311977855595937222859917778703672890660522931154368355384591711830104311557371935454595099793419702325719107880922745179894591640404150882744901121065479154529920413011100212906649175365564683822782546489072944269645748652696358999136710659586278119191575711825621386447406707971553262424496265171135853130705312773341043246784476972392374231794938168899046411830286691036261666575149722462082246700538025341082732076565559249860887530768985190490936042195686934522073739221617530940236505225433626149100538506942487301751535951005095127791174730676772624861385763576842695435561102492005827721871438366895815193392963872610130384984046536173751825219761309287881142777609202155060864706217285476389025860858622374172147569566582367320754405632372447313943960430357698785081287119387858629439993061243174882937604474804797999462094263166001056036474077557571772474992228051377373415828107046730023165308926941364124860688243618322569900464083439485982450030071371819177311535297341715159257586506099851821147872429228696101690848492330319397070559856728685319269480767393996503212371102972057514098141830516040889285066788623631051370046412279224114918048584543653993470175133192845344312573956490594203623920589516524329578901008614512297946662106691920926894940738223208335142955374459008323945565734786786269312205890359121330667404313933561132914884180151034227390792073441989927412743151249224214504328550813831525229167309342229761624016840357815214562939955782474633696369450922854743410953925472255781257017034006353009176953336059840405321518604451152825740963827562783849254601233605972471419559836867733737277588514214777048844539396879766195736452763594545148085123737849665967105293084190216201168563630775394209316909143347872737481125418468600894149409405236007834896608608355566983428109291641481203388720424020454547688388454572250184919493106964143111195715108232467278660681289310041698072469198348389836871266739602741867771190689377384517159975016018944931655017665428511440390378509180966112141699456202166298577692532030268105183906108550216786774169813651204791620914768291173964669713975935528840734805420806724536053446083587361295650355443742484281865129590657087572334873443029246275472900462103836736760470358605435204953554285040390736245518430896506940306527961091542846045304268041273827526615824842433961173359995633841985147512162498097517724787625596439583839343942017766982824531068325923980406882769926384201742267015717743137549820691344658600141416862776353429137339327810875708288706428711009160496330131655242859399329215087785137468571245235385520150334332152686884835724003285523339560884560799071525421759542307474600142106341557594370589770160779096189724011947879387282260576023395451620858485499475245156479976203943251388510426961949212814145867001727289580728928525296737596262387911456591728405713287621635806879556058892147474076193111231520677532754098412761049040501407265931724896736376145156083527297572444843346656513561743640345506700727056781038235297500133638453896359368470560666498721605569024841229450158104732177146564223567036491320586346019034508636387345092579956511833285339216701751673010774491137920486555885415373661086060493065703374345316910072530921680666221463237791729236521651881661580629345741511652108133357377523953877498561013013420032303300450215175656143464260419218845852862624828588083938197018208420204493134147904247846593665119443992785092690326241251229485446308275903746738880395798148782113355780654470938099687293742974160723289683844676283880425132829437616204632351886853476793510506509175921455595346706278703461270439745888262337231345115063480252320783019977634026832664368349067039210288284816279993666430729278377530801019764312131473263717218784601026955158866544206322872168360153450474778679716919401763595940688451178661252568748713880744633945110626845932697035919886361120767293725921461877068110910475383699099671024284926019434375802873725925946685893156461289841977063338727787247741293831711397070450243732999260719019693337658274687043457387756187833595214244223619911565318376212908681815008054210505391951355252057649211144570006018747937412982911790498674412538259953820483903976801010828013257945767933787140813879585589515137396996457107830287634128725745549345792774691787454923649974324734414086665236628520599096686709361427712824941592015159308784646017235238502571135765409569308065948372583268266944765137710451285881902149564302229362302061581229108790556393130826044406238507450099924319670945975598514451335753719619609442019652825376332263640185126323779289552455819037996552144078394329334003413325704288452750435710244066206022265824402411266747800076153224646728156347694145680791704717444052933182675675739306993458824785588964461449938170365781190689875293885091443479864419503547919164803828783656855315870590073614909666299786024188654272183058954518406209938992346336131038296977434561946991326418401840599755712384843197789551480641031522808163663315459907422410102299168966688124409404160212696249117371159479106648246621430215989705780885990924846408643670579492505418182198714240235325037846266591898461514814299876578566381326650203065446058113570987695477534458520861211593706009663010013986208631812693976634877186750847079226804591605831411265336387851250106703262214208821941058246567307368235541724064649660249462746801867632770965116687241113551388057410740676111562740258925969764462770656874032631205078615872184336638793651814639567933239415196537676362669683570664811845985895314282731779378859741531599543411999623172940648070099061084131287283033672455725527182694692028605984826989795077807583577604190872370663845498791347104401917753966232362977137452487525362701319849209245504430499380837772827581721767388998461128784790633258927743615450973338724012943591088157050393291021805576128818338807781640314453190032481930652759486053627084948853686686393243879705261338280619019068193028956945020307520267510528713355166602451966193502742179606497428925344697360172980769179881640569009221323406938656016749282517260830873250571494477424187457639889538085419794105287983336748024465080465758409362914623567145443235719242785619478109989794093092411390869985744082942996288865177777632448312407173846518438078067346101649366600030055887687973420468411507002280282207307339446308996897555408733644217600617372717722334153235085437247656882247679955892307209615202146324474338269096292630404822384877922867993662902217691953358677777119816036877903625049093295375549875643374010013903652134428789916650300606325942922760490892392945524721337578167443416192751871574146413273047192390954248295842469956593552472162830341896077308920324600203894881300516058142581325759161533747659953604068091818757828005137056290764966182875669798845471016689276491650640631558503375016991035771839394455907080834788605644463476207227117755603946789573896705314804938350494625599125032917394721102445968857123203695534311025060146850847463483294066910137951002125841599249506057494523985220152021881384421035379455810429064810203027167168346158876568356948990295685611080216563790910197556433242107622491382157472702427172159006190641814749361631008908168765238909904783307212037768543499741162453594903649017493798284491478169118891288521768977011529189638055646063703500370489715187012047814164543173179896259334631233738843637171523160345175184603379245215076038230777302013879125861198078579845767540116933359546509313297198306857078897135471921363143617576310115858035346565528994931900518342745245814166492936708541748375379899081746790232679964649519027702325899574626448844898885294869758590706755600698503908691616296857399115052556158088247520448628633998356535399235455051677625211183988680810780595910561111369536182941829210236617797349960821075393448968458073889458689042767178303282313028432481903591183735241838467243772365919593094722173634166551074682369163468899610968357445021659125916712746819482519373335265362929495556066754832926404785070262279592841272803210750587337876577063105355170986106726491162641779848365836851374119963057019751142361126779206366152988721639653859085034728596570412567737856220560081829352506044843788680612101965528226039942181647698124188742772558524075399373999711153353561749925110858472844039869078341405882038218570081700372056765537081682836903067701400369747086982157283564124399778283313025861965603714916607491618002398086856840275849578343691888682666806520772607993778836634154887096233823976053055137167092522215380507378922714209310544931972246421821582675662687135776815174691857511675229649869041054067567313604234688294092922046999843333954392325645740234324545020276163590913543402097511368997984418964466782876140912771956108658755135721801548403785594679580643828179210753030089291099953556995479150558102677201412492873505917631400367618598390680836680351375990548547064030583320005117815770448917084866996770938039567823962247655049400890052406967595658180683343310320563649843694728611273605788284007665442745656658886662272328366033930052514405036796904751094085592297113538620675327388591441692640523384318545374587763131700453986599460190354577997105594888733792827703149411784181641588936330364811966330100684461610833602382091387737385204431446668084963559396455604415520856524718210453220154183138843285307648570572416459922005395240133171127617141882027279025759770993677387579114565412435908388186556494300707587360339339203773860682812421942475098238192469793820503520534260678198571845308249155544560204533509630623135873757967115020995328726707311408638425245257153572287084553311593235510168936036246203263424730316546415114356652344601378561862504974270567300576317377352148138537399574976820703896321762224998313510277903556623265835301885228533338414544678505540049706207775837170394427385949258948052575501885271976515619854265701508299291657329252473764194258088027069182094361931808435571077961743223419230286581169715806447210639103487351566980461985735358465750823968526826001414251805678675254112718230590597376828220510818432184251888336494805232518926357323521138911910729575406495095432014335652442630650406803826523171281016570321832958865800600716043379633634483110020135196581479946224541722553879379065995253173536597994862409674668407374269043426616874591287202749066759426581542984522719338092538113664053167835600115701156420249788355664565230724268015637031832736583535202206973162577494466099980699199638521451096813452371772346220129317740041663202081021153034240628057509066103778601076322879412864019835509203879659549213721596615730806065068189096591654847328460026970797784437165770497705899816663656456766831558003131517831328715328311804571570525085291259754829296355818585524599900118962966130869468905336893704522209751204936968626385659670776746414482353421352067479633074697354819227467436554813112054493116797533199603924335871995883671761118626518979644286951952559368517330589469320967339030761120460732265601766626826586257968692227985531188188692696860265389507342225739331071531843449806335613196051274201553916712738491679848135293879654510216597271445492017548816729087667695206404857171429023633726661591629486002268743555067013624837255074759663735885440487260875748669330905287722403593957083780217667035812094673983401069044752553587853565649344111790671871113647795254612829530135877554385183439081746751635347230062667594955497652006711409203519525387651070025777838339408740940439278982049245705193008919061841234173046312727122976549053285605657137540128716701665333215229014963410012005337569458792320076456235873798443080627697353930020363657325828634411424208495323979257068539425666459212178214376540236440603932838342983374982283601530542434375351223614115656608055644434770537161304272705094751328857826643570120775269246386218103621693118009693431359759629042223511094218301803794442203551180776279804718860737447326795480407012152004744897531338260214607370629113697756866007828265139671028392504455871095105661066253529853117907649841118058935957920676483206937467076709602063710766728027830804698192224567751398542213884226994040816471090322631119438669182246909442365060169043941369308592804509503256235440295911882616124033918496516269584190593977197592528845159366997387950606573271238175399604504468928427225232346894893393748421552619031141195303701830776754873353331269749209068454798620708381575690230501284376484305352852025989184257980967242977107862753026311855050319426439021867724929645664010624353868755034092376324657536522548766191288595464453209192559019324356925250767419063838472573717651607789664898917308748908147314596769090403209805900328016005378035416093580109416173126099263925569530049423683614973494401154719377686663427639415820589901106753665187512033862169136159003059996237549086004324075122527265513205546073165082417863233534093519833251212108564166978487050471179927907698994391830257920342109779139296118759264820197540755165120662499647228194150956047032212420913877565308076872941083100924406328595595073179142112177883754525991704700702284864602721626082784689548893331389516161105208072786206590870085202387719427914738689466594555504992045407975692099115655178283378632242246021386225139160295651830686629763125715530317440324146441815455342118952881033109055746203978392105517054937448683183318603438309553332103408432929190630687045666348531208150798730757545980585872700796099461408496580553837931495455551176069726286739206714352721594457551210741601044171805257603842139990602898493769744357232563254421791560294121050492016926787450935834226104555406494581516737508265595716826084573010613845959430760374891262590161056986295525221982869837943864978590735984075062453602452367683881496840613972388249000295004316657315750292950681659846032385087317321545483044419715508199408070590610667029594636109002762110433918661774870055049148102060355939125281146984159906012469477504011589334245592747920606071775511310838673424378175426625832812022256819073447763546818388446954694353364244398613321474346931747909533997522733814927872826607505516509948421991497116528723798767335748105676384460041914528800437999608212201282000688682101946114725120031771456441116259405839188543389659133972233442344240291101225122397330125672910947798602269630872257554206402181702816081452982515756011371411886451090417221138768021557466705679655417712955199932330430091168191907490511554824956223842723966328891387585781779213090797621381940216906316094887996751918952667354079471588460693197695538045304847380825797835119034306589682617272440376324010495875223196093196182535047736946449846952609843111478363814002778972673463568590855682528220723152577983942455943065466917696969821403011509254362998040545251268487936947176258265488516473708160182450202414204272863151258159639039291210020615856263430170409971751676728015256579382814420759341116670178315498694901622946971841599382998772926262484750895436345922459779195636396017652130846185799683989889604594697872803402617459829907778723270900137491551288011483103589107015947383353267710510814897323808760621557193843756238683585839756888647651247787077844212953128042903298412821992692567686842603204447472598067557169260394529130773466754981553799550781902809036989690632579243562980154127275320402326151626190659479356466112999555825796245414765148420579142389296734413927130012353902875046065554926771257278644194443169858570937274098694627683268363756971992121442457435422526344641408466654986590699610252706465819284819187245704703314105440881669071430107596473651923773950747269936266438308576963385299774961144030834415070692173024972391023276250160105386613871888509958628354942123196232019475668608827721137488844325357897766745724764611015752361002391353489879407574126975951623376648874383176643557041683605871605822621006135411361658192150220370478396907421676319215639457920627435354996232531348691043140240986213183206077149614613855345002082441366299891023429990040036008241720731177927191871034643704569639616417232739119975267615218784700874956008258955673410231065483476015616900072452236739343269034208940411197583577035352452121241961314723904837930775936281551928754258215419814406304932439989658188629793688193985748491756049345117261575089343666923352886867764946753571011763975802245039896739069554567472131265530379546855362806999378504520626799676135794099325207651257655800360236786752893932481912162407728386026100455410300823546194423740914886661530756410523580852727426566628874065012635330949108329577650955524595186559213194338288092281989738399700465439899277559499338769661417161753889038713830155943104712986415740931246811432873015100390352591018128879111572242831198145410679027644512284355571720441729689149187620546400930076168866055228852568937288955471837633230874420845393453693130287020372160279964797490128189369143042700489974184607672024583719206065704542169503007207926885438725885217099853360285105582953208489930556532488489317060303661681495232775109201491017068711704542284137669458520090749393680377396325504668710456864148801303886563662823144797243665595879562946965289022465839657211240481251812036820270475021677561177202139980927922819471057221753322516275001537611860918497977732110233348058355712480864090001028614328608278568195047710064757590735792296025217064733045531381096610049606597503486425918318647777487022165025561481493791752359993890501438515321265557511910819335628836032392745728727750796827208704812835243761301622001647831333385184399182634193987869634342531675131080118946393934233258766315674534588068413694665107030428724275125266731637311187387210119986600185218330637239859500650301389306592064775854533323650439792171321494364718579730484126413230057364189492791931947628747113671143873790179627937732100913876381784563381779262386083146752335687609297715554648465676713006567938198521117526145810452630068020049922046629592091407517745396601530025176735327871180267034529721607505269159165820371385402204175468965272781079552610579076148098229996210872991716078053622669381952401705768071247207732881274801173202266062966301101147375611919372232908792730382848092290407124523154579853233525972378442827000751241589288507532392394462584023549332548862988483602370680457331770783561132931557481767836289662491589941911609732204470164536513064243686563263049299422388670007901268295804629489817151462359126256345649108863251793635800204758069125792408752790172301114596253617913854922848053180967524136878164065772036159871653468923543660738477681444104436040237036452045990013932775021383117548616680556927679002914526023761344360777966086704751750321642625317958886722995307826223199210513923234909889761813252891640291154395296701862983671454241884838366210655344681379265729986540007371326454437524974647971447476350915802737790362701440566211954121381521906535976585089944101044228873433713192562393882276958434311274670080177020651348695200166104008772711924603740206967431887287905366221122507181684428826439603126421684309570616467569174667355963581277979638206678950007507173012765343403242000734313841779184427698896443109951101462259660192418063314854330519118630823306375027658051304165695975703914974668080706333277354069290343935990259608776794483092348612070896400940411930206716085017195753590752244638024978787479733079881895804823589544414116675786682210413179525330949421479832950405429803100675127548893910227464716780064390301633838316211116964967509347789324052337829503226708421132813819222125269193379424972301246973750630157622378266578048823350283675528961519527907123974296551095000967107244248257441530405183070241415522142050268655288897070341034538002396008536188779647365508747126827092696149831705133158329713942580239574968632841650826463863015588049107324043614832447886157466655039564153733705853485583559204989122052314726823852060187159551444463378935172260899410232729752658755818058834248521554972545437991405569163077351486182888878991307636741334599074897806671332466512958446489263100968662393089063209320043395559985397997367569562795897306595830716544610636455817994277594479069002428905201931407163136412068966361901622990421070972970196851490072729675198649784156552541876150001681479587434770071453662994833840634279290617423055912077145750854285277471327207878637596294524397395708016556587844038684425089993146550109482080984117303546982135073328268603178460447906618433413637158092040631829469070583985537077167193252856254296513440457324063052533286107673589821931688130517603153129125104896262280898790328720205699685720368966267364830420350703327287058931153598917137162610428198960819619716345746873539026379388996875293818728611696301961170115514104241645440524460972866100382470664690483537299760815161422809245561910857815859647091352825971032496214843767353483802091754085073510442315714637463603927519730535048951964512657704055580440373755080847466342017467283362047479013800864176473216440068493822614513681696054939510075324209907247455698867155808409368825973816826847383049034869075705041644350403586129396951973196468255592812663819786582735306611864862573411563660371080397699980824644173286366067226238684143668678853034384765222627812189268678533526927006941710505618109822242583662738942376527450493958242493836908490857526797476885907153793415174164274573670285227242326098982480955011601333253853019133713749247917647581875184056679552294121063756149907461193675934901712155514854554873241536338544967844671589674411556264218457918004730232787349126914545618330219542262047057321006164129430296400340425131675165558737608886985027730363140662823855408720563057526545123280931863030039227965347783428441476793470230969973283079541856050186778682636353969168247128028515931771974096729635712583161818777977238916599490787533242782112922723572110113009971679287023299816665151077312486290285031811608323794342061288444684730464176682996973956954957564374822843295745040814096032480281097301807239341583086096316131894641793137859457085564320545793399908292920684190285931027934934900117994191426303172101168021011345300289094335182540862487908263453720828896675610271777089253698058701547600212514947592510326503719017865155116638966295312521887043303803057630767601581988199242358592863751280392419483345893386631149184312652869515512679135165494307179704176169659152082381883248482425812925336141143493108544689549447839582365210610658307520021084084418024322454709511421401251311019080776543741622460025733261148483962260866019185245482398100219787577130041028398969854175177211487714935653929598066187803227271780490263196694175909433664440891350854078394475709183527619489067423056501502787948165998025108500715196630226095798337778204652260480384420707006342865850522516809586581865748498602655695095300149336001766014292918845249199714621276742087592620604656380747490972662087725549230260454321990091554878535154416961357164910606313079037258790382641003246070458813424161072244455623293211264864114276506820998049610700529839721925854231247867061547843221736556676303426252904955638565296829273628686617363723627561026591354111184037544478145165732416491631871399608897119671130161144878506940365050683384056378688706373253946481811507378889086215692067661420127465029547485539298730592841562937033721139312451860634327542778119691441785212012276959966727232152876725276958382493645097216645349509564427058069461348246807261373020483541190621286334199862045456784469892053054100066477907845321020969308765225875308101691538272354572138211300677866283244268256188027852722358435734010076812391837217020166399887106749692726487769962927324261320866975296995167762398554921495546774286630759480710905756519523535486106235673833526003272268515042932753159652219862963395575556970167415126994125873127656065016632702827398756151249880683330193496158531179853864248410958282888222718204562046996864661255203316636662521828246625119427101591872027250980307290560789118279089425491157553461071253100002852694981274822306158789109725465249606610114680883774421145596975025972350542223973116329267109189874371952674747369675379810074776542272138096170882166554487967225262469756593717683170789567507291819162176135299867900704996741634699549768107061811469834467945676145365489355778349506702562755556758344859808361122671452125811243261363579747025707260849040450464811990022064970203986651593859642643343902426155131593216678096257940137643595413000994907789590267118643315847428101437348445457862522118962238964229601564510727502476008804394747476855050003212139186218171796807935413866172764050641819999525225204384057479210310214384617570002766032557133620348334932743820096887505700405860530208129357427168312546906510137764005970425592324534263181401577779391348975156012507142808188008384303528833974955294852771570544509579076309131349372014281286352544472624216914662920854169907462943659669837187600558217918536679128800547280059116082809889248162520716593946523034556579913827388666399940578495478051230928686570012047977582811689327982194177704871953244165659924611442991015444083318902283398077039568365131778368433503405620206376794007872031553372510983272045920778830438268410507734575805680850850263971207904664240182977195206494817670728815202050974462400782393274380876559344087725568295408748980637891226799158245865690500587561209475933949566492013258428558404161115680188531946821356940033474115767323702681436954109872043050701547837442811259740582459912943367572944413868058654611970614931361596590266514237337441613547799106852611172559431992789690603652410791732398298679862124756404437050329055207144598232667017322191246240966473817190783678225769515723686675813573208147797854372315265351602497059117766603997978682864067624539700287615938900031744191524455429240821478446018520624657791997929104465329308537972436892019367975199474033734678832212799129803044914787426174066686388024710139468886436500417887410057468290091989538059983776060071721538878176399530831358100978745918706731814066395594159052352851637070202259148360131416657952323931175846014342185437980437619256593297203071432580422897458039626548201712835863307414461336181993227633141328900434643957836962185890271095505481168501120515192684532007269747507675464368415764680954608321350636544407964502281081225003721147813176806964836731232422259744258950785251822973653908423546824328392377038577607298970410248950065294841198624267737579935982319807728959434062758304223595952364711245593923127457210579528656626613125889358986917151274559756713816759786872439544060507447954192405898151645703707037021464385679829549609558641217072909523940604881101060838193596945208256723655839770737328799818978999027514598516935795715621876842031714032712219804588379795907592148423540208206233710854448662627597450752606997499643598190014980706144020121359780481013948055519665504410969033336983360039063629559380833162316928582622524450063116432612863736856154401927742046223423338624959475559032883810547484468028878497049192675761849852490331385769414492232983317685457476696554781278818549544921859605756883630684611619432370762328253222791410104385230205470771153938863590507074561324628918830105033438742541055804223209621912406576539716538025805899504414972823790157020246984967335213250196406788252833238635348132677373290675409882505118122953751564513589513655972980226493833854089206269951218977141492794223991666959736408158902770871694481849929412976666772224773200946056423052796817543155118478420865881110616447222375149815187210903105251065297753471616476748517842337688618173528288839913348816938496008283268512110747017985014807759480409852533924427080578450890718165478528698896586844647631933128716155306624009471727901378139457286423012568879772970042865923999010321679828772659788875403355668093373859754083361501647116303349306441911099029672768462811454237857393226934415551835345157156001612541620156141408981675962374295262993544322171309622955028900509909128847906321144443720741777423264703179381060454052391072111980677498149353259624714914691468588731785046366533188559915699496647802027995997752682656046456326059126382588865609877945077737278032176453008881842020818329652977263535788085303304038665203966709714927164661252686281586985777590163557087848420703579852369204693541910822711273783932930269447110190207027144628986212090785177520707756501180402965711292331901820016281078265056886522223772365094104483510863641386300156964533578813739184492173430206760686458748351610993572069616607701270620410493661988826015733231354615707060450390023731459347327442794701689358483281004554407929867037301354110612053394829280815573600871527158511036716267147659338907517717974839885760958165616578090736837077858524529905378932612798545340453042908001129766731827671589199689360213689669911134239718356614936478733253011058217525204290222639023981812961828048298608232748574694415217451400397031291514529448335650168635070352186824526819155937085167275254192965831862202478545489722641069608678056717085304467890635503385371028174690812359480696996641800955332556603569650029011212131600371287183114963211348605989992487350267887109041096520836026186013785679134994181631195263519420819216303804102738591264883261973162273800021373354673911119297970315253591519678217289941576867511687890086798015442631312037825550681862856062084115034204024117723395325322403973693559949446149817870042584438452899998104493480665577371956212939223740311062838912702104678454717644131760375527892986152506983432428365453591981925427829411714773504719948491771856698293347434393371641071682655567597683257988015645256550839043453601261187535667946277417179195839491872450218016274726475505791585460738216829648674974897974248145253795847892630565141362222505498722653226276967140093268401584595243105793483764789054527395056804297549804060683394611975450315196650003844924488295378897428411168916873079132145389154491535278001771513264529386224751959159158652699730479107363509220771327337469088508608583574367432445064443971229589613604955406621606688385549145090799511453783589481457746899333626541793760963469254253090791191973153892700811167836947274869972112868596319261758054583982139597769058020979644371562434739275748516093955693796859975312427722201280161160715755392363695999499605983398013883371569586276656292862025904917742800700858477739042470271851457801721851745613831122749810350608033922921073537785840913755605827833392597214442583505687771994515167499145787812227902861059291727612199995672380950574546364689175169191283579536987843127305547559092569647974308641125677347828179413144931132140836218114705297346951141970553839369243065688140730351682623027406541376391392697674129803379842678447666994023791853481470420767497305421791418754693840422257000011345149383933604175394841960894970426498715505869613212592912120221695592274805138885766863886379182346217814420662371364122126091192576357876694128032015504660160803964986671658790375802727720535372971143318830499344043768601044716728399954592844272833273687116529093045141953441849594886003919386689876351377301223232728097848000459074696732917735244767916559539975164289182899156489100024555647931181772833887741473433128081654113023974710479360594877352545880242103374188555279824467320483324030070264251764713896236204076060769996735769281240024607750450623330982503995419212487161964567860541586404869645151722812712719693043759037047416558138040465566782080417325037396590698162015425555729043721812344294622388510580153639406525701675993228950029766778934794135261167850286536100198339562281877812048777873489886986166204201783430740025242840997736700885124447051551475711890659801586814716286235682711805590594059043206231695447793144304143641469847867676979345764190876515003838944614308300736144558575231578760377384057684210342310652927699629579795144538103044249779679171209988609991013380626135328353658463563771736796517312518756321353426785120116953608161190583946440949655000184834525307234115436987870905213386587097832822747275177494568726146586542973444135446013261910336652954975364287263863619710016223269591397880129158401665921997341633291391525598136325018490188875764933101216957692093111133603765264200190195337266746184848708298322941692866555250526714583933492268632123660591124359864792425761724916646552189840867104046475325032025634923968685534467906161637348241624275003057847317003129608298941592868183146130541597893014556809400672610521265561977749823628056035823071265365920102504001429176337007466034791389190295071274938049075636689255139602437342622138715411176815959532893648448189770812447871633131044355345394332021592849344986755408024746359784460507904895157729005198803167211101078376137345133968319308591260299225291857748787384316574922674495227974720889662619511541306149369400884648639827336419399624470469290271752264419546156161613235407737701124908570857159237413303753239759292241225802782791311915114010082840375989233326619624601484343984008732327038452441142545909468309964889615720913576394210720037476759722331487208594554314458487576419434277491808070605024272130778818085084435473024372058316317024044975707590546559772756145903174558860069526780062662276686957529191553739421073457570675663458730033438657126138784654283739506693754955593736186054771397483298108024985491142096600053977259693760378340104402279905567425569573559929129728877490266834447320778912922487738034882302621551708137391274005785687513414533413478525450747977162165147090144347874914684516308908380642878734907353945653080131019045420158881493936211347401269078144725229133588274902972401886513785092308874824103699977755803804690862210805514843323630141974150089319044247374348052731433977246320509129736086445549348735015439330570718283586907111113631153768674194082844353408506050558388907227876213169019038474075797404352067225233100532058958144361448677423570423816659042919571775841911506266957919613371753309606925423945691680052909537179863708794341842331373035874169163724300001803807974577176783759350733769227912212039055061963431708464941023543784927233683309584957825063713381850774503204911326565398796331971847990292422093356653462914038885159729986478238710110106280312370405516919126577386595889415131483055081386319863009273969788153515612771121244036829221199178952250628299720459201329107807765407041918219935772828673267314028514141666996023811287475652196760695709608114648680414741350699467284463714465716979684474025228304059162098918964465524881312776545763766059568231624051331366853861343191102882058756685293751837161701246847974295789992633761070209175240569475579817384912660126386495555540820858391150817206999721377266430375611338159277535241735389317893479479044381834859259029973611585437921583926807461695240794035825450402455163033942863285605979277041149487329450442325139086609939343191044659833500941287050135565506365446950136972787162990659308413662091952576389110847690401010967703425738196253030591746776028463023214944071687149484588969902892810782806244027440189095964000753430654094149730280126106025246699866308841779469794685255814905502473399438254208824091044601021998722738923024396204982377745451672511864872087505868331167651978047835351962232643024539846874323028616368714741316743576316441418732301544974841496199415016343882484372574301548159175766689056530070809814976342871274888267209798443600014356514014802729827927103519160744580372019823913849599068615876211551640793527885457035341045952837864584083814579687873321981673210721349402208849496120329959132327535661395169987376008384037494104212701295564950842275207997599676607418285210568227855491975524365151070436433427545666301834463328738156365902760912178158492692389952065757261827542804246739660357230928709986599397962172265267739485213562487415184166441749223367829759122201393995930806484568362713168115436091274399724436223011030714979857361199495846902300483495819812810324451310213207100923504804136539110327020574807747255386719351843647964173734988624543788920031008788999676563174966407728977698909956484248089461187370260853194495411147661766499513255134120455005666397174212317684983032365060617599168925178953661332312889950827529777565569740266362968138546336435794720760021933382749301039550277989914913122594823224122147383101185980823069895432312900218649271424665493946599353899563850044263499200910511277863428410876098622197547739938631822940816092022074075984050634808048196321712284663733700543124086792208647210772487093174283150637248123360744801304775535596271325296624392074567982856729277126976329726998695341818621340771844081437371308853027268225540794205836602411670124755511323977527075478140497057254064156012839168175075172566605769766997631341580378983655423267758322512878772919344986928527993281933353838458551204765505868758080491696029980247946027132739215204840657242900936867893144929140129465421038741648548220623761580894176827262511094049216706825208179341606855912355677598141831360429529382449780534207434966371162340193772984169962667532113238690678211497097869223595263165358391627393011939022084963910123924431378426815048226044742998406074461055736646079185370765594629504587651753272805061958125612306159336236421260841649029903580686447326257255394304819362357971511494310528121027312559193346083273083661740717116445131804438688674130639316739636611842355249673774312396699782731463800348684916839228512169834035737565884389142343899053212563631715423573768325782434725199385590341721335165107729750613325439455692766362110326008629392730528253258280019968400905182188292883983106932986530244331824598312320046528751941468181449436844221202650142741461962784415971619518434402445034360742228843713721317917724793971719484134570667860835034088485695233780307601886317897616218812911654046553007324069279395078902295636184549141600621028039859671388734445341612105699900664672626268108731228956546077071466107094887363899182371095908913171846320805890842745327399899312603946620105482825888347452996049503766611089932678708342220274734465925895095606764733396754315614059780381459023130333885216317632335387421923839456059817240455064997640737545650471526133663325385788847271911393437935299091937895682207000089606767838136165996140547996810965622997198334425062985809487437795467945841879254299798928088227863690415970490233717161821943954354764786811929527408017582872362015390980392910954895178495601128621795291389829915123204890850050284690706673577965311928866571628534923345921513401840881770995537885611689763593673250953588591311082138568689058939673570521487960337467422591152808131517748007231438152539192808581398650737904715284103331453715738195683978367130162928352149321849881347623773945798973822915041095837794690316229663786269498120467001567090437579488295393128326603270545650455567086596165786960191389316102320554437290881104999225054590353351988824901742490228089700746331024469079934660793544853363879597238543868642104801163556222117909348595236523598552004773725517283584156091894952565858428412689516899966902267327232742326891736460218681162541746372641448353518122910556318561170729128180501166124351887683135828371416688847574182762012155106886398926386105762946359448463675678554819425129050706236714657802221779486065022840550065709983353108994904027582925637256546717410885010859048142643096385777770734468596898752215832711401900226589399994918663753365928021580240504567379287193071255650478801446108055093262044576421885661565680421931734962717787065275687664471881745964806454364512403295495347238081189895476894270172836567899693582502127235710866835421952068039407493824414896997628573666290000633967952995054178346499704279059437714626838553462945880164907571359367265331169350716669796927146346760503008489143299506344549595221338485087884286846550221400202274978305936151567036809025856175238513555750708422388726731789879866111770226076648966027038210484932852075455888760219182936349151312580670752071304773786514715920782489844215725145411917029476403837658125460247562459827759150877539515053432391954499092014455993564324609495491705157451969851266408499202660540687904321091254921258806721904974578431582221187751666527233219993274607822108222206176595058567479016961416378565143054915532308973647738366810564395702967641238059399064844241663234323866174375197596971835790888484558242607560140343620498368052955652397129559515588810838984691928163609052415598315365920947064682711521901222601698482931911696429010853875997631407341408762987849882218021484495681841861964766466616748865853711110601522448479571801527007334110986085164873647314415699736767665824024899212805373083890484894242216867281298906505570088402702933782816598657531482004094119831066549991396255813184790548053853029265066611108780021565002132433648755383413227320482117794899293975187314544525320048606954049559469098728377685616887331796315027659332590980040151696173216501586786051946300895502765571776856686365929799318672112064276788336681117128724702029184894832145177789312036660663256479839893809531507216249238122519826344053733395241107976196780766171548168471356658653152651646474587686759846267136200399105924751285319003015628387510010325088837633827754095711939771214204630643713230891725193746202095961053460886783083191482088784775747571534402884441038283997013382363327017820468302701311720520615202954733721209991515923252668085819502017323597240543515640560641673035097423604213084557424593966033983068932773046647473188474582604555541136509283917499457020823038191887450238920321570450888630847649843732225827667032653435918885654647701822770388789325377095957166979166782401131572542282755071758200681170994750818686314280397282130465779674759110958001267183315167026626045116961376021255810309053115535688588023830513458656161103559354987989807159302270985656622270771216442137467355487340279430084854519946703644798299580660468079671777884407939692880128953155351811180957550855632560242543581564941838063988478621863812459576297099028351924061605647055230326665039264192909247268328075634557148292425262114011957898380207822044217642480202775824446454533249748470188956196881767283198053161353932732821354326021570132532455146313601481703770064901192872197727436998577178399819235706694557341057896041033135663412616623147299179022327638933662168012683070918517691647713764197084778252713449790498033671584701829101603798588968996544681999868006880838720357521087234449281605505015160476514293172192165270333494955181255828421289057406296738275020780927081164237897343574727427449664154810204030611497036622590803593687330029686743456667160389809992071561967859766146762324321487262428518889721998591962432142804083274954123420011497740472755881831480300138728440600149042997395826912080589001665189345938541838285481740295535449543368056054814676580582975067512240860535149070155783133868239562493302877719763806718070615479565338658378013226785359126273651362295174353311532877452259212260185250015337778436685976547214705847348137917406566737574662435268885614256400100797010347691847659942700214885360766858254188555448962785628924515992330897734930696863202290562923473298350144183537393360697005058600663272664385935679322111964963579725532430858695705324334174161647095695428005974123726518618529224410936877407060519650399322025862258001542303236560811656871570476917231914224318455050638595350716189949454946165720572461151182469890946683420927875201731956347649484614887914891767689530526383429937535214290392534535753273697836178576909959622846437450499704324832003184329371689861115747913814479456446630974949604560389805487582030031703693383731755555145664635708412473887144957081778299908895872191921614698670619317621451063308130414814809683733923517361475536567107935306942048250712048480862605263517734487701022491417201566885699759036464903875521556403436364802039698638776688465039435856106753142688358784975828515575899164844365505362242181574338868798152098979223338296611114154586391069115193898378073848131207862276738617541606113127553894664623166215450052262285253927587887639176539691892083132455908081116748117310201076749292370021769169721993403411501150369386291364931766050350702150076835319871445719509837045086983724401401261708060400221045822110156290697458196827360307449382481371765198766895906124910583577030371474616078772405471043722673145970797055358552734586581688953986345396514338458789090066208628884061879689446573842967941101080081731069506207929021495945289324259469448134254771049942162563821101427734134834812693555037667600109128164619441883882303086415536269068976396037967212929195326642872857001348949406138213459596052743491936795915088085430405659092461980441466291015645504238450587677640027681680900469629921882096036336697714664726945151292159616454410843022852683672721981924715841347118267494531426693352138592564836617224102306461514113502718925611029357714432910107598279133018507808115598661884144360433406602862956842925358641764860980789173076705190027487586352964138330372688084565804681654248647879355117570158957112605047216294176227201795691394707733794489411538092422101497605627495399214827228138086402344720141372214652576704713265963200475977669616431816382904259518150192672954334310831517925860742844295972896898664319201119190708341287741220004988017138374964883929826950651867028694915795185920103094144858172319891034244135434095787813437784521198728001596061205003558054275416400756170611226935767540588270773675752632122442460120350434987300819313473860802987967697770919292667317960388855906411342651222939353102220163501991166218936608824591459829767959310736187781304118054123931120939831872186121586735354148084841493747311094436227242143286973580036718538067009391566784707321103386967801714601807533814447271852671793942867417832083848725696838956843535224017108553765151960634054597576281383793798501052597769259283411941889209376862818933730732584324185157767907355850964316254520733579667997593608812302837351846399184794633620165400423430637325237657387511120523110277643703314255850261955198057470578996925400629790605503363420996174857941205935712420744148492769520548450201631523098708322272228896931170332057687051115574347185345636962065816342584116505746598126559368561659745552022432336132120749220839174616366007631232476145258273492915695780145785735627797749479770191002244777744411236481965479290578830570160551511462636422670339846956137152653177935070891588137294299972334834624498500671885197152615847750129117824353327005507956585136629581378692457619318712951676024704897658431150521741817037011113967543452769928209341016608766345666070812042981078740887643590205826540051612078346384899403891317662788579615834351228759393136636075969589945037606274165819080472276902395009328124977329506974625621749513868007171379913823538635274575551347407243627379097509276784824779065813642020192284721409128919674333068056296767162741291958002514192708113352511079156514606454367342512388805757929824785709023786475403897988371380246427466569305569956701454946618272427679809615300514574795283706368264250962294109101290305297091622750066530296623063830903892942515531353695752070171213078189757396976602627911476183578450272004702645206220335846102808202853695048570243043259320753653763703380552067044707469236170489662048279987642164544625475574675310828948974599552181224196454516842574104557325960374364372912244909655491051857934424496003114637213812172701110694816372207330688315936855419884585889487331712944143076886724464573330515585527190666690900130527038137044885995232650423642874827563247498659524248328011256704520858159892501907765339051374535147495724849638632748800569804392947829970928075669490010229426106608345091313517739858349509341404125128428494819277536095807497348760817647065270526546672754454950262628111445877470568992254601310348253016411449516698504589625674237735407866660261492517204050086258155320547987477540963398872515523042513190282980152872535700780393455504497824826956039834641348438555878562660412812606053399244029393972032161175920749605377257618838731434609914651129109800164789808260672081023763388510493798808724367677098328535112503178494703865643360727314330653945976915299311395717107842899533492256002650120641725029360730969159710322904289281646081446010951115491230012700899124540320372239638263247014271504320638819406563522900117680519055557927072969689113103238534009947074860173646097234144876686339574658666137687359277868613971389240445244643670554106513155838349401801570835921615671600532928247848370587827524909543904025827260580944193199514466651722264079878153171243694797468656434335898332302647305165140984000963214806836760869367526194937888727091399319853439842345000702041196270528700739471614791970560752244549112062375721564306389000710396974287083563551011294083000706209655799749489737936381518862507863476329877575377736591005480516765070984177746145707722590487649385141743822850355373435362709693694010263030714408240492315031812411857306391068120408618984405338847989558506165856330500541144708849371390197758464132561721075717776043338939244639865093891376518967906081680029032515737641412564860233098024355684835813932224385854738056152192784341868913070807350542859244803563465374401966811578670417894880667345424062876837928428360336658425276888070734985257464046073473280057743004935473359542096264858019805448435406870032522194565689264588216110341866240108901792634290707103354329691624974216830854623482962469581833868779583134261028368013435549414307784259010512710972114927607364021052694606343733474705977139710358033062409993186205733475930915315046024742293283952492846546751336331603399998923748779630091077556389707196621719774111431176502385680732246689784034140673490388713092902145260262807346270052083512143402216107488780185937833254710498581435879979266266060518109740505396684318223436678563984488040658683926021780153726998888007408928348123709211559515205741758444305490275304435929009419785055281149911250177586956722539703120771408768178763115903513824045850818292604984777959771119643510057707799703141622679709993219860999805217896935770887737769688271583616419793675286904505177254627195892020845741104169096112063867970806830631993245719628307244224687710012276983549987359730292750083548198930128382396143589200982492235496797526059598252218144795896310490758089479785470963295811854391796781806720916935598168313502397901884559305928870190657215394047534279208994033055950914619852465006911674395980865345412546311836327636279733545854601209226139748925872057808612776983940880495938927564508323119374712427295728689458606579511533144534564251540321702698846055033466787564271769901115641955053864567596139722128738297118832875884554840205406999676877388793367150135183758231450619574749663240970400257783557167923784634417782167610898837591888688936424737006324547184743038155472553482566781376597713358069266871636728042570576743617914208954417646722043346425520717664513956584045116391272522250089523865630522480518408825346277574257873781066987766403779937581237895136812051194018418787548038264762692000972450513553508663742671550480702703840913161647067738694525158334843017286109142832790724568540026031467058886890276583637686307534042581750866025337655281274954597588379498920336130738859689247325193804316329548593921151672579950948769613596462516909725913557583724011365101431901804274510843414726752233106346472523043388311857272391180220167142667761573490775853013012859506825895982964590601176245646843907229213712059021358540166157991327536822035336080485325897135063026881036320681252452966936005672441445541223183406909281304942732282229900158226966461338542849881696020298507268413699211042360870800205438856937295576753431939902145183398112370072849276311549408513780537819316173153474034179309666589470284647298358745886829587847398845033689568789544301062345727179198747498018569951443955089219213425961792593437674547299064410300518989594837672566344659541538302616422965608695133062593626817989934976748948627884897250334303683591641701473794190390246805395771017167389218040472762633871068908640450107713923865604648132590984728914424308305212651753407927229772302730902980817852760171615406314762711339055746353223873334533648810314528056126284578500455950034649115038709214099497777025098621717277645564147425210526353420477385391723869186910817136942817536955323976541373906816131100560122526488474743770263532297958858138938788715779696118513091422758924564536803552724756204682860780449530741012357511888204932415588755210080392195012891920498897906914997591693802287082208025072030756817963044748125477437817312734051038963629800569463368071121123248034166713445365074499387280551853111573863478301639335044936461823545532595034328675953263846430870038196893228045340517120782697223771247790577909993309966676868018448046304985117644350436012096961211768658484659916912676477622224475996188874438868244623777612632168688920523442836250521836689493601603139069836082151573456186623305438050889184836754453435050191897204185608606411010964902859335033758374490879593055401685432055307427543629392858064417107763141781660841742540903140668129361993009443322570776489768195876588772145050044966190957140135120791420947180868332443866340848635760629511766080551605586357303437866338782399773324693556725659420989141290233439279408067115844882781702584239722439570282954804747664540547330536404143147731802971233971322286933046214690345675821053225443328661929289309466797887669053644388028207959988505224371464657662332763783552819399725669618674435662603137900135830268007131579822217832969622787428713673335415087394195054046172626853317235362587385287943173398233817178896789131383581224608915193814674084074466066072859240659280820288007231563388552058277245295454526788053562972057593353577754425205407036657034287047750226256827746357941053387001316999635742714698422444829197647824356762800141445419788953036899327885891266753944589562612177732011204595257562838790020573682180716292261750191326626420906761832546422017082364207369605129053314684119385592382879562355622991132509125606372575530034002898057615930310792696145039458025878989005147159136741289317017983896717545154266351087385484421141311375945420898102179576851875031497117427595242284425614690524096056030526895113120310489070050311354502395350089001658259991933882686118480559213410449422593871304887974348681120918225271758766314060315371296616113192007465193510932823991717191144246991484957755910698203936949844208502380101124493180640347925096659150682177051320218598327864622232506759583585022013918058746967431459698533208627969699048736328388134014874478374907085605101496331492061110248688560942480204169432888778113733266348368707464678926230742467398447270034857846225677290787240377036989735928653174874033227012464387670237087759812738364961277402776651216198615714949884566776762581244308945636166373470952694978158428013452108992536273691965640005566424529558500242117962039978766947949322147076262181838066796501919392767671175324748180996548592408755151979911842864306221152167392919977489061889115094700333681383072200420482728603162387171622281842314999226057854819171623321603292680671470179400899959910436114856341832410378663086094167635479604018768692666234389744128200954706902061718339224668865606717309325754921343176542795402166765358854024863929556103830574583348610487702432989073389440503110614693562950581413726591931500657145642995117760875627177827886890256261616470421464647054467072178478327856241783032497049431022329233648579888814796535449140508452087747949798169872458739656712274497341054304078992456932657316554288970175160811143767766491142027734625099067454663415283686101109481346958990991563777303212483427891483027969153400831359001142690925725335989712063132108612915985019023826116801928925769106099563202744499612093906614214124463122472092433337632651472384760035255996373544761466432717883124556910723576097948843660520208929520864846895756783599645503117696173274444577122620379996356128595188079609643415421024726085357078559720980833560517353599195382813767782620054887944078426401105227563400341543074001065156152204097381156432025367616351306508893280679025016647903750452900450659737653655767758822562852926299779545903700217661857988093376571423876372435324482925589498078262511329553171566568646636590885889572445087360371027262858249960631029771918263592729200994796952655313470461654494550371232990908815650473571145018433978625494782576579744219923051874541976402375679751651911972050431118677677000586312636967116941497174515870155954135877938553813584209730327876145886880120950515325866439879294652420655776524993379075881559777460275046124519104497596903840517773068646415497709523181492626409673180468774696742456400425863995034279924125990619820885655243126342910334679734620501525738877171333512052506284745590936714860970371622716006776962168569099720471528099739850089559959530725194806184376176747638024270011693161234315193017951234684377557663499842105073016063791487290495834753357597818373365384309952533677045611386898296883124572272198259169733384209657835398045397748033907870628343079373137388684702375269574073983895315163773806315542198962474086573545473264483120424774576734359730384299682669457211203164210621933521421619576289536347752172383949254686424251248516635915619490471630423695778530722588483582739147569207774139611729663285414926649585019618777148044555461765452089124243498777306460135146173374399668816874882092876213469272585726477552006777538935224197407085993167341257101712341288232911628987914947776295442409673916146272104699343932198150255554207785978922985872451128337291459851573470183130647415951592573789011342444812668495234244228052207965320825888202677423549372303314940398054306201539498226281857488617908453035400484015671341545741519981888084318977523082810768311494356908366133813503904121842061492479540240819196421514597462775571647106834162960117916109798811427930746106952846852643779914885036045381614605087418302450491904727098488591182725597087205938025499588673181970471408073068978971805191020988085964605992634611659417995642748492209338458314221069381596783588418310195967182195181065515799654732353191455787858328535376694512169883276057445338206818055842588940146357094473537224769312013415243467759764174028345402027973471355053944917321559846896741888051835820554796110605054651287488510921406457895199607921508125965425332918059347318235810765722006715868065359298754019782218490990617282242181738887572590075378503279061431664739995507080561297759717808935789340332101675520562590296606121310071931162142545012600020086785530663140484716855046636656899793628476474705918179635840560289838045373292762508829364275207998259251508757394085005761245043682683844597033199667370489925640868491317248490606469737666001664081244175291909432019979209967321073868045929311194011013875689984341998486172502422815660371391902615398293182677800744039943904435976455323802604311501159329278213259452861359827787186380189619706170167306532058764558765957313976265324065803946202070656578240678501468098569944907276145184065675587882429025060811675720092657891900575146961515576645871051827744689253904768684352411323878574848673114519236913268731525351678562132238050316673157027189029663726186005414740834247187828642116102203896779865111970740610445340146044604091155749496848157849091251474513209231660774002578706054796505171901438525890156927219653671728784547995032359848054407263221723468153117369865556433022667949240269415237850999275094834575723387079003647807983024028649381168459709236727601866258711097542968626822168834081487024043609138309913036169681591793977433693467652459131786607796905984558420450210348832715381793369115851199079830394160707668414961136627228662435469721506133840500359500209696968478861721338877270185433388740534958137077346515110967215050798982451065016551023342416060031301761495549714107175971187514699198587325570275835420123032088801843331802927065466273603586237738409696184912617345694130677226680234229545108047172002113517199107025726312515119545893984550771098623234219683195523363844043321677629280700785020659001035624358012075326286998185842755094020334426440596421330138254183384912129155100888676297462171877515485025162432246089373487307982321749267591391366510699879219404123525688106655407239355113482636656144310901557411703052529845445302711817077440343193526696516865248880414534220929399287529902737237794575340404754349079605530389591998467691486651780124527903672809359680767258608584047114880485199521695593150902804047819678844076499812492554335407113610050907783803463096361355266598343297595301410158307308374727348143418832890069542035731736664013314353597854736692141196799908691442105111580350171609509221112515544094253934630073093292525110141543583477380623649880906226176467379721170318767546871195239136263730501032844648455660976325264427232580799369949938122623631726417610870304258717670894168969853868900994701795791244432387178198151619610836735287905738521244203654963160989649867089751493812153405495137136081043247212325572720241613512979598884198357995412196224562428666874015389052356524042134700111904920279316566224518936967141327920809867491678070231080166063087475990943811302882631101822957672402413331005165156757372608207316482342647244353707737845054003849144039493135262076424404989061582413905853254478389728857701257144310955763700269472835314093204667158593212274933970591268410835588838627581558272445395143612948707132437020121629215829511133408637694474353215881590374813676796923233726134589281060502486908176533125132201736733142118687359348319830873224439696609043342507371888117312691058191146092863046279638332733790815584879006596838298232754877984826482546649920088315341769750387560727205839668257684228259887584808344427505131041075387654119888159464876512812473091644802855674093906724412538418401658567153518658869978591765426705852205144165200175448901732604431855291530480969656957970387024491602287031104927114256153570510509331877404985336190329750614064004543367857047420455903196996674721053838053969760856958931136403326114513855522797849341652164149654946216532446321130217838858212742449861063956664856431915946897244607044462021971671513457492368145796364532643025618110265245496615134855636206946630878250941938585551451237856307653032859437536451687004788454788275384478504824563685882447251368762981360005690247210257940207293539252855118160325673971794842426087359962287532308764678420863194913008637291770661075632771128923863664107941545967399217567267590493867797700126565064014811293720246649492158423732329798688211986638029756658020265782206496902158244376988091512706678455252316379471437162977371176832249361360215952925011551353990485343192048104969521078507991867109794786026479302514445553706242215764614368405107426494017275901745132887294732138215705855663183784823393678089395743684154750152495048708486935509963215897266842152767912557992173284180314838998605271070923616958335725397672687838754710633668405516268343091666425459859283153416610532149438130693879291220003139505537522245317944280992541519101504494015285027332529695368526924251784003406231344292324036612185367472533580562203865594424811382533797418175210265199990239515763011105033957332265285751237099637552099181432080388951880220175758461659030076327510542772160940003137468144677961162464822429053753004325153540837295656634404621935608021727493766322903815202058864093792310045105796323665026969617832990139079207854014422187715875967748040447431403797204820428751658261717771215741040953868499405508232867925144064388873067651950327049010528826227822464757199975220658711342848245667497976676737494933208312826070594198477224432518401310439102219316641204254904484069097237041708135761175185688552482341898674018302141561844196841517702342539443928210443270819005516877856723451681846087555615654196477431085549618687487348417837385544524357054097463118518338890556153897203358733669805656996540266298207819789514264209181434526436371648862101313238500150065379633434927078775855731968344783621662763922940788062345257499402848081358659715890976733915720374195345485503337416102466840751920647025419342985529160487805338095765566775624547292157821754504108789418078775646797111816721765575328704267808754108518309777508362298772686748192911845211850555379525460484645154619133105063977083519657436968351130947371345730639907871519505961328952402132715331865958221192640512571644132694935047197387322477394988818222276452071596929373890753889399898141851882868109713827337038101534025981578050622064682441736190171294623445580480410157961806422827294314759028096228921745385376282946308157240286960894878333330106857001831584154068040725456630023407206604718741392002688797356536015116400505434345957513606386509680819314665961685835963480200848940404091904917964534097886433542589626734620379718320355876719240906978916469942240849972093646943045191404427055870674921981393771602139478499910420734162975698957137919684568754235467588153385795621478947647688695590579236638130272933322170629862565914490168375028571997876521220387736489008078880724903478183507214806214583238844140779085265312850809475496929837858998323567088487841756075184014784703906106456022468457944926872802032526496133282930259427064492925598602472172546753181559926084217097345198512099968533525524765295696354139967467635284279298278339960850079828777843489295007946162256632755297401025787207210290991475959073445436840573167537096079880322192073577401317521504727487414727613052624861345675645853733254450856840375862983083785619369204317535555685646902883776124740485887989479009737868740774737032177292856802971185910657011671597300589925864687305294038348944613816525179561276198779339538906389188736072052006903387595578378527057644613060784841280649164098729400596804112264861445330202589123995145586449741064619180617636726749441506385795047239274059241436472552569166222160350720726841813933748318626937633239350216610893952139665743347136652395049349992268211037956177178294829843936722285617553934051005753128009177874730351791272923511214344715038324742009055562840339654226905616682271374958530290676256748673149962559989019075401893110845455541169441998344262363499818439473298687275135934977162380322803200346106106117805404123357588531526744584080942233501063486959221109144412812883768905617896939509629674404662381347286962815693398535738403009151647899560331094130493480285376939368158239922363636379950059074795398371541991126050423620500795715686301734620870634818467635665842346368858123996591209929516947560356138389359399979547129679992881918525993631982640842917366159493436577703138652908687290349811641835842065239889323328031588979971417179112816064483745553891386248212242177783996400463582373739371146938583907132043054919491085737181446472037998343214281805527164543437578574781500623656350021437299924257766834406936470394453658492994997113507183416460080929883778007939277190887136696102307363385449735960746355580461295342733887214917172018266868847475754683339877398746492921725506085504481004094854553465015147984992423995644618833093139010663675704938310188535541570954596656859535405117655762160505730521957076575432201036551732634514532723933775429100186016393959783096821297542937313399756076228858122774239120644245327435438764782465897327091510073716714843292514487866157559046910481443276045544750558262447646160047973740817870532613474694802525433875949312614294233034622580926688502730221394714365104310278659778393046822941179848895494489569276326965935501580847211298886360684759878427172536376752168268142345302020866957959890178677882767598525325705785896856997335469751065610112320591220790180769619481012596448106163711776593947143681548885868357486284468151096245551435061393470753752628672598081809476990545245722706964852372914511853041102350654171874009578055372051717181952349825149098564021182322387711867456507068937350567224905404583139990136860683160717551248704221291188422413078557590923056049451907720253294108946769714167336012548719973837359421032408794306496813854791670732792976450443268023446417270574655134980193862207256203477423855623408113339519839119776726538088904431072449062640443312091831576533928312092697667954073707948987970068204452154863506393076885718645295303007472836982225170317867070484102610256089059409462198671415395467385756564368315455633244699072819219537775567467395855325829777812634860411640258368429101818388464205306714191996519263211175169076257970890986458076871429172714532595558371815625187189123622653409010991315052318058161615158473627896549108772211623500280809990669291748421059120044208689896302975437045110530080949033102077044794245703168695869865603494731914703830584744697360670173451805203851499939741322280924119432158590742205070249461014744162297693316807917240419012856173146091166591380008537079232308777644435502433049213433434554803424795685222999726859171681842909791618763924882365962414099453878850612703911960446842254823156424463836283869553525753640473775104435163935909923276993490266968923990611720128711440538695791503077170454689899991552362769708838828660662072843851684007990486300794177548026893375374928700184318156868580052795653990198411000088159739027198967415273285679624803826670527343068398250554674730792411574508195628833670027756285346522690668520868436609431631454577687691493006951252259178394572491554196545732694512834141459024537314235915424320534688644612298540255266478579350477640475440067450489075164830457496100906251062471276221908327159103388986003653572080848748860071707185130563977680234520230441927334203565351403434939007499694605583380986501011302048329702946178945469840398741255900752040779368710531748048674352855958758284327633438765966563911081634762023609451604177724797109072742127043756150893778835457348245319590860084877896109000402603438101360705688077821489514947400387929743192138320772361561510799907350738953366728345810472567394965773408980556232025209000033409814295618773622198201077891986478559366749380706306310686964814977182324398374766051991545867111930184039846458758370338358568706823062155332369605489042875990972307893888193845025757743771263655865692147684503220361974761102630048058904268689073732955101047661532512143164180324104195097618557460323063595063471948939880541715055559697430662452973014157734234848889707299553637099142395461132568201140133508640967764250074407740999957269829032357107229487034980333428033965962375822319787676331943802602940913045824547645226401212607022839897165119596211045901122577577784082946484154966143702012070002038280228367371405517065493450409266454074476639810164927650333546523794966349341028988711888014697125722896382195845827359310825672517181627499348244196169597503469836941279419507411474207382729250382995060840261956086944256503304836277900620319600700082838997159107622260397538308453022611540358342082862137813735405932142590575325924273175822103250377787831885792514982447572953605988817140266105516119620299277352949598739766793603388388266165477052464584926064466626968598874149614382321704157121530231957265006827286769906815084963323566219170854595260555940011220587711656647408050574757167420465178390159887133763460600596151365411464781119455972746102018886221948753143143238997435886909272750435027381960473891319645266716223822517812655351922049009760501571301479212139634860003799259475309080781721941187536888387533520362338226154063393403618364370068221545320645722357215225275917041711131169491487912328244490540464851009721126025526246031229323654105354172584290472662178690456383797184318219419359059130258245740493047653029967411662144580925751924627679113597027860290371316437348692757586964784707383245228273213583193276303185065278168412991798554709675040809324225340710361189260843142873157688294910369607937743123657114936301293689899543812295446359170772369036997107182346218651784709680137568424698237371390731732663080889348934693391726016046946558400375564074538856163394732093286236948300039052369489484550900735125609960015364336566833070491328428735835072262827447827331272026108759536728164073880194842702292228373123634186034739900358082369779267922944299565157883507942632786273004557362723942694780884205084679026890231668641623535969149245878150385549707997542684729375376787873782736990992220602200043329967246556368437374896083706143570897617195104259035631380642461125136979051704995224311633439795371219490381211887032114622358649369984880844083289911305040502222529944232558957123320105081139537921159991378310777959114615748992105765676726386188419303190346970016000627682349138972035554036200415488932271810970383544029086283674866103722066978523961402818818211935963137365371792032273915948634543712398236931376848545598376312846921248848126978621150845486806104571490233581975607747858234030782851352747887042224612760700127412059251608707328744942483550464996278122356308878519133477061227036531421159121980202146445734055147840832486985186465113521181035215495158892322099434050832600565499754678316393974470593564754157681694990072065494714739122615516447343380439248792377979260948303514541787011465575688130109865234181669381230355709825054245587862548184265180288690417392352156300125488524908394043830410423563569272490580465959507127449171169895430169712706944558069992094306647776021803774761154433497094575527650129907448880156983610625834318782691993886417001754166790930796134536609831039625691407265651168288737506428066242870103629013336174250539968347870420134594036917996876357468237149886120489068985090425018843796781519341142505348559312082154210105168491331659012632012195630300778506166913569775978738081723414466922887236927000040929797157969980367759585541031419220641671424514481237922259153793927322035250813657621020926418616537990509786245494007284106519694690470732689316365709911641499646304418901063144241257728944209437232319945067224587801184486044000392870035931528191498737387739457489337842102551274983445067964935202948126157757407808853270599784456354259546073765182025051246004794393418220957611131342241464170525687600056805770792190047193370455399395821427289611210271141503419037437103344616101479239102416795296993858973763610829040643586188318879166958150194695860229261491412367201640919994639883066767629106779815850863329239649720663952931334406809150180111299233594070584648638389489870223273556894285947822068716155122973550329121697395698647006111905200356042369707321188897256080380445880830111043680648869508317741984439228411801816302663557781500043340517739806013438385093364160682200430258192515309306886332040665959310683143963401640133730666509478050835490382431647210230422887403344871067725321985285031437855599605746006535012732367772790235693777550241433628943515953605117701995534799383676324387422527266782008397175781011834283069354791282446621485370848804694818504555333679486596490856207180560662388412833698211559627465056669344314987103580391242494257092803333013649940371693374748776331805087240740047312890901892749558705358283118033583192835104697009208991936295435592450287674567840821864292660335668574176128664557334069677943582294027929201894731651954242162010335095448865746269074571937041258998166147494835959840793860355549017136945165144432237723578521824031016146450949722160528833061638703773275842725868161207692757652139558212281628092131594065387753226257280151802129978162332299854572211717709838092768780593245409724306820172208785507061474556602111765182466702127821086440012056370363023764910973376457694917551452528987553264425449086072657492945578140985563356489651473855074345464472261986662593593514855130357677856792952061971201544232378904345337566553036998099667106718762869811860146809695578131992656330166974762210486180119059769796514944220250663804721194331855078757374847657253519022194124315872835510625306286288909611192608097021411955434511787211090040042734817418604084165156232938278540355876932737190908851388228655456128258193596029856918850734625403434037244355986576772508549743187976269294635297426437142097780763067886206131747565747900546933310607620193207855748075788551234552076035468765133342695436630839622610913935760411734632079062555626898873179675775246600861177591801259898088056805193015339371014649240336307602886212903432738824048381970100387317930806633112831140223213441502902055414827668839101578453231606237569112591106353512806937345501939123412902857318745056437262563843399177397188756300491713468612233212357101420792626911549454707797431380098579301619273954134845058673312259072844670918032831858665906874161861368391217259943184352427467883935423735863805968694105890584007122319169643157532505795538101913944848548045969168951431146437638493076000639538200004246984176641074902551012320587505690149774769256813837464878434556099527902754087036216936707579211279210787898624075813910656318578942734689818805094236740464450168749895863829016708033691373011007562552895869268280079861807372513335184398195472275582076925590331334475081243842247287777170562059624617689954775046019473857052115748706703733910807152427610907843173705300504472915314895130114061387928973278254135704810573279001152136281628546556784572848011805201361279206992577522330850924937275013106708845383195434414869680696546479351232477253179390354396608766538018764492765206413951229389715909632093928600645794685694998123595129191906318774143922923224172611621253207281400269675526624450098739557431354420558294964531293649088784141277908858317818118748673311818431388595444243457239917785231385927585046294394835623153251238385524421722707386048620664771148333333640328973744908293646565357421627225841708927502901601469518949633690918686869145647346418187105758938759358236187452353071486016403744943594712875872722016080468629726773019397938398537485915428562735409431458470150990909070264235939455563833597809261955173732876107938872544011148001880331165160230542583741445285130701651862198277402536679231749067658802846375211207687966215224460884593951800867535040358177155312597905400592642966479673634991795614571397443447052501642729891316324267787808646990427953885742968702697544186676233306660527607918004447410239084235882903712307945938401073498850205934412633596452418681767951229422182891653222163664622758684711164234891992165569903789479887814733843992934909225821988238519685619446090297828010709618514672123738618206300494214515304071408227475177738874660105582925603875190616536993572236821679973361944603558734295970265408921588880866282515298199488468271494389588738601275371252624437891787525720948581458899406015689654417316481408963400413737214138725798390075632715196656458574107660020485230969802537493993959119169595758444097668555546981573787586730169752047075651811903401539695747045704502076370747976629468934795459948076478724551182503230660881851329175088226995102139340949542185409206331421192643233906116599425500444065069679253359220641502650518095678283589658319069763497861791242165237463082251975702465529381742060026050398109108739517911760625689669177209976037793287135240353916946812611602668383409798980853562246542510784994179670315211755902103205565819532268572977399814215597817987511042007533775843017615494006938165650677337252274602169681457741901107291581790598741664954693064571558003997360233141063753770957102602597537175077792497043932834091338295067095088191687665066125298363982992831249000521962161318329933964728018927456494932709084229851871701328728118745946925347307783987990015023179436527422208891472165735166616965163523881130292309293022071040294255931604495243457021854921746691547802787632075902817182210631413426620237630184651614822061747715325982385783298306005469514197471284129075659517129028455699619231476724511131592543464857516518693362028091549537179087435604965750209627789537231556433854712934537743878865212874086494701147969495321351802890980713794952239248228045089510298841367551573364103993938143324605393151819203980720484414172987585558810716545210610201629886793298631274590805549964327156958777071938733767310688781861685115107126753909480010791652385590201653313888765849344213791208812260376442716794716154171196079835077967981193715722771073406379630444374712896063280901029854745188515194945334863852757548599629770357179220844489902900489186936162912974198953014556127043232729728961489335092925598481464529618575549444279370968120516366244426651999559660598300916898116098580911988970039329787655364135409524996322025723689109581738806533993810883884457545693389231408076403203645265858671081649662740247618254968486712980304423675329874754554824105069223452340477661750085095174977461729563862889153327273935498493868724017379122806540422966846120124153228219182528044292434271158285610935980819338518161158005413771936035473758352051901226710856961108698589546474330745971509104462302293167619139831607687316509471729223580497236078235071928021719723681870356441070387742380930820161880086592479887203806372809835557456902308451111720079210368098910839859346226848800837002798167567787573903701812581227901126953209465897320321696065806468925516539453523424743943652781631147892170870806428688037326096370371377477462765994453001237865030469059122957983857215674745495833269170035483434798157163127901524973838745481082737894355214223703047810862457859101085763151285264029876889328353945655241785473681153270637559563360152926368210930020020517615144279887853546314770039365536473443458725497397495020348210556699381362071854998926984282445823476308525992156381252784523809211494035014007492850360694171793316781577765226006803912692285621459557555735658623028493787437163002226838051342116836571740637805125453567831896836275249282877319054497453382223149177004370915994365589386981930801832181154823071803873009846127575194372946005616921582650240547456151105597921332840416232012507242503288782517960864658132816872752928713433743775824228618575372297804300515609148971535031778970958556597752528845297017505343862829914210815613537462855674765391005389630980962996939150464719962051414156245286584394464139324261268265744864313389160422309393789592536516360544359266496020129963036295931164551399147914366763557223673656894849271265146227942480811943285363141283156260449549849686962969416748990451433715298802686143040535711486244167595125763738039573906005072103796636783817201472452925251273095045260481250380414819192589415761837732071051544358620897965354042362015541202569102657393752397663128176023402333692972898526434739311569881467541019646431249109133825133528901406007539297144220390640851300332693353651872074524824319485751033353583519661484051551507643334213612423839563689192614993480092939983762864546163466031633823204538909548829776102617123221285785300686111242472487820453110876827144600791428298275820208191330228012913006511469651241523828786086441495054297487688891432584794872002273957633722121555541089277253679982099458361294132727034992580182985908362706382569905024533557748851864237077461106109592232932678729633385859955899325380773822683930857859741888591867076096570970454796481750094204037564631390927499118677528850397949168530343351841569682397788123971535669551857492501350965693032939670341574626075730036645536835339571988130571270136895955411165716621092260271010679435613303178086817695023454641569854055693333890980376287197222669759651167338471837907606542343730135372175121620737631355437692892265002688648621923153655054190471744726177256866362573925578380241989908494164252311513685709996460794084298561550192522932454325842559911788579086850955460870275871327487684760166587994496952182907742482145509981935906659305217045286164474776272670560238856697763343623910996097914988359317516294264058380598233856178280683039626117810895683863527937661503606437550738666622553022492487722276217289204123540348373974024611357667313927514379125878127804924079983538343578541376541272988425906126414214754403337888263567103896161123212766472836608094579478705404794402902552075004680338450226055897333878034936446935316623345628542977827769689984107273640154196966556797011184611900403753287173321708740785875088288144834524195789577271990452912382902045612539161403135766433298260078291202479790356543046289585237623737584270366834001817772412845623742590930595899724957156803542319838700282751570046320234380318465051929542003630722370492398288806701337274099820934249153987397558230220217495241583228347920784641200037894538855502465549017549273053247022823868131879595676179315735758917602132265399191885530965763792851052794838489065781488746915719373095077780686937689420395658698466600174228115319751539814129203351128461952692812496108884005181859455674620387209388317187954565547563483480263360990429669077940794704594769459100166842019993674476895515614216315629054212054794159297106829303234098345309725299474999894975086641019918689395293112371994574991272018897189239031146164706680746765032749758144364917291359235485940188982645640207224385352921977432868434874362113175260217000167546154625365545377606297657999609263276083769828846044211876314014255079065602408921842143124617651453800066882815098639854325929025072508802065460692755783274855346164747859674841814851639831139356166863996281142232901014802793471958933712197520319290002535192420699037408441856510070675500586856169431948993233477201223029920205373794958306207550601181078825538887462068342275951284248572816486846137904345924176156349756294373221823374748034667896158078166538824990562759461147403883143472475221526689459813485242728030852529967147032917716472468391364237002084605542848562887422567826050541314060565512279342621001653421503408644259126173871397485722902425128248305242576206219693194358070015136391200430190648283613441679613708847717695568185766268041586239921667560356047261324552023496954061470019956940826805920576986528025140256399520313230793355149485087230075709942762768681423471126674345389411051349319136655745355212146414378583672991659065767452396386159613661911677292640754791698557971517357309500641992803939811183616408861750638131979526571554719417371650058477408479474144681462843898082947709357100483658892280073448277381698162062634918068795162813713399130368235980377276951065143948027035490389826084514865217087932611484305297751423914934553333224871531727234916627825551975631451274370826086781592242727647798952566687683873117754895959011552615260128238284811092666220001849899948667396449406956607115550430213820179450488984683897551721498253854252971547230920517955190478742969614379720779321578968624764801016594444391830817664659938310318871489891354410598631809508253850264819541798555192588536159000570838032331161356373189987996599784112608440253528142209086198064046785941853969494809312468185191879499482110615727040288439840334582235313966878870621064078981863711681050713753170311836440513606730011816372640272074921706843111924023166253472279548838928540430612624306631835335592068282638093883953471709415614507423655645859448297523310954163289076578796045167331508081453038667516261040856664037166180337135012183483724825422733898262501615605832719123865451365846470218536720553731777700185206971644547116419390368975073366513995022415087755370389485644293503046550294461874266126763651137440917534119666050495741400808759472875592537176941897822985297587022215765252563499156662462404721193159666619587721413811450501226550955414093898138407956282047675430269952443363271261648893855779478437446507634075955389363000016672955936837716893431430754092764465148770509059568490859493750268644473685506529901360251376112451258528073759578066510075513222435133380456024220921004843329165040152425655951375758251182872507419249171266165489873466667180401425251273898926845140566895654549291706292408362762929300191077655269557772228129126161717295282734680600163550103028658876818695826401808663269725396331386331247839013129189048405648405730985748159542458951820963512024987275945509676154618032028328096226393176566111051151684864775797237959129471616343152550603892769524624211512906516612715616525393134572228425043546625598293791814312154309163206881697196996786645151347251401030303823051822759955146401887034288748737276914220964295624550128329455813835112022617834095778826562665021247414037638743199486498315178977602197672319233227606785016962725636407509861540248259414589083049833455514588397797910986615079300747290688006205067361280323572654719039835538580783708268272047914166982810007714826085383731846613160768408479050077355324450396652585758439927385514808676907734451239184374391570910767595581084847779836276100160373047642792656924688146565220133441487204522851651421614999259439543337022188972067818780605391699404280563828871667060907562128706291513114775281544472995662374206593114471964504443416764745183344879353549669722572597770101944913576029217119339008938134402746127022034996322977495369618560190626945610962199307931794787778440180930413004085521460433756832752453794229039293589877071119332694814979551560379028173853687262077712109420328783114424201574222765395497977023542734107362089548150900255922960843121523763690299752409296533078891285907853396943738125812077553491717529213776223170747015581743032648732102210688669173010913183863803715998834958630816498544164479056908529785848857356230198598655623807947087509643454352828304113362491613039344644953381814412903903447291244154899045769572650995528827627125361818944896921566961402923167732458594505904935281881494185617509961420416797339687392756974992103096319327387692389953375680652081868296866613935663309445563371010233897464542685693197824594634568543725516797540458953745780513811530756237933812214095328711358268640351853777645138626952430472348355369428249355143155766037876519781497890844187828811756993929477385139056395695044909043734169233477956146810834038666518002789753792359195115038887655840891137082057838186055558362570698023666442233397859996624257529662777092293435220160688592979263347568070995845667896567391734070891365147296775916896826328946822597088450549465773033969892424744793234557159688335469979758202768768246944104269211100072662685017522277137787000171684934121488689524325207050048000216102054543864388352770509744912188321834992238005083004382457089984497700151669706681478270145625219735066848655409118437622939727348887905901477257581695510041293140697231745288638879113186727146956659152367846840209834439860756224337120926139541212277299480569164947301447318148851043608923319352085027226710742791332977615395946537149426662371429297140417017089877946558524737913971758792072808988362052963907514390814657261213564383551039136613748919836856344586006023609896844677744735495874992036062348686241963020392281520046672550374585596022129721919035898905887639620440418668133252152026672846878423266632647480650903462379078940851117088791973987802638683590763933152379682050172881806939496509279287511295363473472655258690563995714090654177039624885450285563254037663848321357778290774199356234168900702136773526787886717803318275289733783655919768584524501680970767306763016925869003325901719851136515195404102753848729941514188533073789899273514109538855368854712021527266963986216241143093456938184872053531676590022987057422990432111234915434385479507593268934528592633147845985618647663264182360496476048353527309731075337404808073944251995372926805396717754223256335444401268306937738598086514096894309601103697203829625884095607442924477188120891625150106310798021021957242194180718329160503955364284301769964766921899064986373232998549722663124190068238076436025947596480337721967097348896985309581416416007792096752431680738878947924831944872972003923872018159238553326202451172463318163686265296103669429208520735970381537474647960303688378859756448116009453322283385316451425167922221144242591839349607548167375063560764879953790111199076654677171874306372882357646549300974810824010491323069417047758767531953277025107429059045477996669504567129557256596861175752139689130040887505327948820601821495852698105665344269379567737040891535597266634686840488245508095708000516023948707749050849345853527315068093881149222509911563277439163323323570512382251490782670547794479043030446763183025506011858756989274794094732601890356816943107364910702185561103200335062150649793261281694339152617209339229940721826323670443262775349357536186867977376343209352915244708787819097080039800641960047166008047827196016765216849629658220607873938568739801064715294842235077242194824908295229725519341111524766079415911481164038852595798337882154954770578042189066449001370055665291064683627890874637660005105359890504654024020013791659615924956159639164776998675926297990425763842995921061583484117068459083914709237077900756501929958038385561899851823142397504788557156870595270018497763937354545533714709308215472457549222209371780583690955792627602844039481388010081627758150365506004665683526617883214800663139191989470073993073164047571279164364498585791812398664299104051680682044033693968287452461369742781162806880190537109657110430147497692619265574461792448446474977994791425430701600253056026457781432727237862140515558423906006427292505264324885490985045981438389981902440221635448048059521147120382904438121296955721589631006768312209023273474061367478433233333890701366545766910151364971755622786558153090853788054832235032372679334205623330768232023028603708518197109380384423614996481211156489595287424060341104290512047626282866841521275555941852911435449454001087036157558838482185225522203226986752949365506446206949797329169395902691603252580262981841380968920041430857908646593575634591146495101765089434962740965038768517317867009621048838250785360534290450861277442501867638460565446557690898316586650272721448547982706277512399924852117081603085674850564770000803359462097953176256914185389813782222731619503601874200431830861085673758841640097405155570667126966213406623591017348003991952115809111334747909942004090816035043026521407623142809739173712476105271377866174774341934512554978206686805424910646072366830970787097348658968797566599828336518883931526601930712755895028808695259731148168003216787588850976544386895165841523759331217707912138132216203537797415242991217806881499696343023082089638483194444689117648575113092094595886235724271313585004446245598476050747447104745310016917778109386421834485593499861407482632816095732503325431221158121366001460310749807692392518798944956354382374097631622694717236112170851016031418324436802239454454312343035664064860044715809774276185731958133470633659795305379835553619748388164819109300125261196531385209762152005665131799730183936843554559836969108444359686611823825837735801113432202348117662176505998116965015323589242608691645080488150511363197510195894532896964506841963752344513629400969082433510814873341657653206877071659779795781595507072978765141479729183735102889761007603335747872328377090533601495543742844345185327230691731153803400553342192940379853597907910873453592944353410722050350959593819757536823950244544004050894096293981018635840076264228818999967855414914338841726316291808988793795104013635132544299083029228847378608566657377339146837541325407269324447330017914363185462365909853153278452870242055148172395698787097633082239932854181930207364732749743860139075289607200865651284665797499141130420895945381425702832786047966899122379196106059673168406463007047630417158585521265975587994403598628894396287983052676315219989189130905586639388145776554684335501472027149262646566722695074013195706325101395361556168229915854376783530965359949972158360684771206919667163063503826255138984131696491985916543820712857709108553849851405521339367715408318960286277284641090121526611664408426441863917302472750301665083381157727174155788530783568531464301820539171286093985439132041849636116815741940057774363929211018214061523630254982706690629380454166999471774029282416485449972362239172845241767835014339005683542580473270881687995286548787084655288998952629225075210568530584311139376398588224736392888601460054227695788226517489150830561569080481952478622020416012840061207714107728232600283598364532754596215515531120084532734695501138259924457176715679544062596756652483161301147053692855319141936572356695047025237010009551491995667987722653431295034538700030352496114664369603244719114763403995190229302054285362301970571243890559405878586166208262611855947291396539799482595334222268926372514556050967137842362554337547876283514272520370877477287131040205806458544378232181564134027025472288212837337205342218063037929015997061567086229856059619177445528579866643618826760015166168358483982325603402944202296288241888449300881557141234855280508277679482079479764982227745120256118976530583775588801913592772799696256064377904258481902788681940630669791900860304305054660637011994065096061650029660627712711146674930077381372104917141010885140003094475003221361253640660386464114051927649441237836934732050447984262477763696680609181850283009987578938304216985686171343026313745681464268166088172022119915748914158927690393893203014693424966448196488002878358643817267575374805072490907447758743785019778656983519041154442403714559439185344006056556668501443785149996862944722178259066705238382168309725242518412382651951223246522688565526293770457647882864328858403483140634747820386732457258626729035793380507260313467633131486099184283491006159498269412259561634453355426285502219768329444794615040522602672602280769160870425004598345187154163497976855533200912750922202103853563473382329025584537611461736613866744675091099712499003636078309108889040583896698491379954730091373987791724667601106835245131252791257388740992621144069686776745753409491193936024167576643495267770117596108195094705884182643521755593149200729216801849600657208000344076975490338495911490428011748115409869401282313530859120368397530954282729997488860397517755554403035059473352552842149321203960265594592071456632594030847594102920602529253717956749002944681351133880173020599723826257483294815549822993925210242789075644298656842280728663237105203335431079731408746172732506823621862958987889796186086094778283802154805570163341851214290473085301984220887958304502070893509457083683795492470344579333509968298672473976113781794147756761412999736147797093873876956381992702717105183740419489441722291328735212510061598199892874569793134968250063366812316033084102242953469862510309581725720149749353005389726083832264006147394012308786578702921620434062164358217606893948886864698055436730778178185206151271632463472280458072891328830952192161224151084493116857763567711384215780095823738375748923015414263736522852409567305642784441453081362933287197288647130459302656999091890671656440824614852319095855189512796161008404176482557074705121796961280853003816848327949302899696067137866908588007546727126503647400034557941713845496007155212826236963618044632212332948878059676663861382855535264566008536444166655676614341906132594941515261414856093665303253398355630296207923205235801817106287393683508470238646636063842160678522163672653673093902322263857298749461157580615393718402460983504200205136029036839292578015644287684711444175044865794154761354622227271485813082903177907647245164811666387116884232183923971424913405227609493347250216351981562740703906732480300173989483646890816970301579602461758091806182764717952672174642371823776039871182018309988388510556958614236248071210849396427519545179495482760013171872182367325249922548755963787089572850930593681984347740475805755943045268461386095216166936832812424580163655207809698336114141621813788935553462686386561748267460226671026075856579993541037659633794485823991342989321519476875977890555192231101838386863888026843329448723029770368251410737849150700030225438050391608509034690016237950801942591730673330766092021322048493652299154594305015092396849939132950012947144596258100865398714646083787906475889010548384495575347698166976633533644293932578342502999736576037178767825232341762770980768965037366545114531755366299860336863821182644387463336961130477863296648629260626713165572159733042979149647566972238241193136065484581099304397490244328504833912926967274465939810854095634972901945288254800617130579142639425814513851895303834734595900114884125581374260420851695848614676062736136876167558619774373428587637654981828262383348991918198534736333809688363162782998283636836189195116598663056790190711888020825455065949727818568503669545727857162883324402357763416574166017953123545933661926973176172862241172377923714755973909380324667319161144359885210885807499490628092031905172268409385672154484340585680951823928062678393901188891760700433941318433825185050217769146118411135930068822618421191890527621061751349348019606615510614976981457294034360490152790426371630671449875296993008900704123025866478342187546050773223738231435917641917957589880706104325712482200540255542019074987073841107959815016257501701693641851101050834053781611376459507944638591319258186555097405343402793889438780551217774464780142211740423619933180419981230486874124426467491456078525498463298625502104572267187814382265772091738974523534801657395936256058118784778954773784289922213886679852505201388004427234547452245594919803229435942667228148123869645229864137599479199748162432650492359928644152945011081027766461073140683385511400153550044900336750460865081674092338034453832625446500039437072489119447479062892654741084134530113291973566083186997988999258948607636547935363814601270792815423942844880289852885393430599166756297822690926669956577109412072182379142140395494592815640694773755100911983426313756781263699855125028485300930166959367031561794885594348295586294076033993075091421772845819337290993979394376224660909769766987218418540658588951659253786979489508611005794835164160872929369441640896446949103953067597239486172937289248644876549603478147113316602117540433820816671941151330113333697352490870972657508912701330175927653388397530961439430461188236131928712847780164309415270151952960974275537420796729124284171689775709579869109177968539427629174167188913943130079415235941866989347003400195850419195087522822116122904967839249663479888037928766195576543115235447709966588798220999253628981151346339935198527792246545273216427630494079271298495451948951173592324852860047511642718213799080655336109272071532109624431026685450080778969961293871477228630257303602483152662676016239383861917457923991610419117632199204172049653865273111825716361396654144550605556887530626421961327222042680383674613233973786076684696674014794252725079549885054528671443483235406154786627802584491032610472947671891046772735234415009528052917444899770536346665263745798828852928001787884679227484829842027461645736164820766617972637230198381441146156622250897164181290530981299887424897212250342564945670235358706626721791011478022923264745392869322297891914838668348302900002466398984528017574194161555973220667740846165468144118440662429483362659347995391550038047688012902883065887255769075627711814430312945454063133362544132720331629059138689165100542491476003423465590254069422395600112458948911510227475129414082874388163380418998435196890615380466074427612536264245875633822896307311800863977497672281664550856918544568778902286002576297147676507280884308316067622759541004960222031484278987416396126946026215653087839583492452078957233642608245110774726279126616207496903931547623542409244319133702116905639282543969918466876391254235856350091381087876500622440807372766880196212495351713981664948849508560919734368608483629872385796613847869346193868524957659090854619412424683672979418502208805711412285167765947758673315117504606262985909426992807413346843749889425957575067300962058111043403847985536274354056102288848225175429889544861350567330995533897902165848935587146863346790132127865631810457240255915982190311011313993124995710512407134303447671107690622903964834322985976444040169131826360270651440962335999975623260496603333013045571314063936382730779841805028690443063946992965971727621350146033106821536808513914216256651036958883093004368619403719771730270218549826490515631644225604524321626148695582855283608619596193725210352230490717680280406942064509953594263964203033250336762206180480068098225600003582150523627839435378013425534960623829116977327688893922696617529388648963745808045641087271946359796234664108888673447127111257681983449042261692926164430571679292922175904962665691851703524848574028225223314554452089616640413818789181564740798653042477862308089265992544503808707008427347698825933226877096618334396521163100129047005577040790196716133689542578889350282858173238811150441573286093529926516027853719003821049650335497351399066820049718409725648433637835500711855331636179719403154676999719437294253004585006510369198531570486021679002081566405613229831826656816650044028543777756974291628909178633835261029565972547197052760373232264159137416934530594975543483552335530123873222187343008387051665779471816646487759189604612866981280014831511744210614308242445774322674730081229931154797036869352538763596603877156129048628281522311323080756182614555870861712667802649264793283949221061347148885910768644698763291390186219436939807267523231492541511088000119081988513617148665175136013948792833072479914397572404161245546694756659587773574245475147452331115824577461059226388732395763925948825117374610961399318654188813591962940219814843170615389828220976992045478720481747094588229270451427847945350689870301074491354364388899448108116833059079119418471037993512451502748367360749830192778058504369556071757884211847041633800607271502649954124963560047527346270723232576137057912485083318357921003628740057469144277203014444740486939687335788522804770558693061086529582316074401407247288494957065054851446192584479564494662270935369681928608181187463205188081905637482692857414018591925885025472788190616206202668879108135579256816671414695768347987748485592104327415355543862908352516495960127806695026396991442412241720677551724753594956660184817186662988910058708131773587403458634995688416918304150272730798640571178527898269234193417919957932679257804650763998308386026933765867564373269567535415029923217079252903760998776518389427302595567495497525851831060063385935858478581884038875681774561791872910009931647775384157455033894361815776179743779617899035262674793490438037047935294269135132147321624404948923596743488676840334560015219643225022766749287962732883712409302499070676073365678778600363511269314645685097311151183056801860682051544057664265006194291322017816351116562835829153015887225343798851362871262357392568734541328952070578277822547435958955741795562679937279930599729491696136961425057138625986327977752950999037154946875757620167661249167195001935287784667582907171281292049776384742084805855369391426760390283930138260923419451353947845593586788482718453182241801806580112448661028152800636349042728830931446086053843228561327244421712350240308156007837324682435907308883781376285105672941442602041981039143122028370006469342073336231341231878206455083886769732852004169375447126803628433221046927782980735506981938742312850166630711827414725639377173914434772893149930782348532418511588131339324740725584664898649079173741414477399486106423223928144324345162957991612656145585960298682534531488472885713225621470169011416711720260314344354811161982119883641414890724631728634322925330747233783293599746086821576221882479928976512200246101873066878870234566345396487453062822725600961708584572054280965578044465505136640702788756928798956361976380216140113082105796639925996737927683232392208272573225876535450263123694830600772404654700984634512596859172764774103676465356250928280898072318883056263243053408927758651763362946504563415537226266497954657275315795271479739651701900625512868317195742198271753415321661840868829054379557098552816200105671722830553562978927617317097989201083121727271266350238957863618923624712690022905990790846138043215074923050955388112365684156877143138067741387024606228566805904787433949673856259786401324112018703100048706209988927353183137151571346690894019486242489645788522133985475781221151266974076355990702333624106842183771823557411411662316617707119537376836000691131597363350760666364874012664365723581098177011615007758708825541865671197713954836461071375021943824074558697177427393603122732165690236725170702377657189689551876673639451519142767669556738916842535256549041826196485861780532484363561140604137333249360852583448971617555816758978284668701782233374417213693825726056559713680058667776077534090526200320870904516201588425014575030833877179190871731813933860710608308421026563548066384624070067113764654785602752524259384917320482482384111656295170785864659891434065436577921850281962227207616720543816175401494619768743253995865072154477377674639661558773285370003234704524121626139982657941403423368084336133826687236164682513521059709686432048890432404679692663559532724032565491319937121788139503113631827946289083569975863298454510133437045062361430631136251295820407224713852076289656055445177683274769080171200515313931290348333593145192564353895256751694867809687859403944735449314885397571928316949560650476412421524183624830334184428022929743369858328413172208352474837477890936898354058511129650969746319371783487124094787434533596609100948351573414238998100922317725453095126258099685483877755566844668062444287052966777468578941772673246507288975496055622051336074644537661096156173492192646324150406992810292908138416120379973181728884489737830790235333471721587874568221898037748836517501632229294909809418332885368254777463956700061238974597609820937624701359060193322703609457445423611254468409998390940199630791799681477251252678400945503346852706422754352965281626746175972731761186631281362308617287122171104389139239955000802914988014778565104876132912684029739936497828435692547685694601315400392340271697471637784429830455853369641641728857764995933163739842222495280069062842064103208776074888559095357041350962873964650288987384587214340486947325876844091959186223033479416047565507054954495901276675436743624024760267830957923470182365086711640546597307845359717422646733074396828273252160223251363801071307679894055320237913370103532212295028706355325196831729311695119069166200509778438610536982627958207434665798548260351653014967804257925900550402112484443607564309090501495507248795350298820183843121508039731762352549259301880104051093843148456466180125140926708280570160048645056033194237641930850899486055283548050260289165884430046799105413333427199700131087003213048119092307974279975972136372249808707000486952471834412554950193188237342457391113605956698009523752844394856208528110364040274716086562205345416478140715046108779104119738829503456079045899998552089319630449598347106618706026414708913900001738035558071476324713817924117389948680716958073488794404803275630876591031491946793012863802648254437907807387498080513038164146394458783694544853111509963125411301664747947150206079804796760424249026672529342647746545666687813374997988915099302682006594208394450982035484619435083527054676873194385572442293117162243881871242966303569471519552267385670442586731447054508266561750054269326109374165752490776695829449157767096199270549881099755388976823321907151153079280445255350365441196563853178580740634713598865837972864406183868169580807097432211255161499054198857253422146966695283947001010954686283600407565615700177628126832225467182553829653839865148715510208995502146966682898784097314706447668926909471654737627519313533453219583803203283649413378943699452019062201294808724029131541364257771557716656591652675395027220687885372592785150014967275926378878634844243606039965625709096985814785135178621331679162179666035547388463804289114450208715075229219423470882743424286894315078545082344397571720182058408023198300976013694200759562089425860798656186984715502135755903914400292301770186406702030645757369187879637223169387689104775631624034530606315972450665284363709815531946725786092862729659488035810806059095120259524711282269707139639309031193016496598756833201404431757639807624010665200195180175592295369379932917916190363143374009254017615099684411029637045199149589373531472400617336977692130566504802219881912924842209620440455738217538299574390841880394874455742647299787655761106610439744352435858214908405106273201531493240726049465318254656883205828675551182921339156058934237311195362300396918072219860247909449227156644099214123184966009196397377517495736188929296895922249114473134491585193559421868234116303457841170435071665651639073062253240024572665313959961193418688108726344225082574381945195835229806081084771750264256745003879798402609326252442401919872189997597773472640480104864247091043417953477799271384479316882651248442987223253778788366672929909676507140681568804376024918549617018869542832045480471256970879006099166131194488635280802817098313163424327592145277424850081601286218219344632357075959861647908773416547868711050845461094137676334381627999904443346042863783708835420435971580292847164096317686546813192900786544911493738662522768056977203928450931594905786506930757636202841400623856527281178440736018574186697260322676357433392296192211889005245050464745755188295418403912792728149800158465397175910555316870314061901610899072898432624321880612962529099633024685441018352460537187404940291949219366768248635331150474581710787195959844987610658875329706415238237000594408986638384580428198320402940261626867943407369581201777261336049614862612744864782699384362966988689149929288360274804877553236782171742600482273368923020172891894447476224867767342682337304689136833330655383874202102768766010679548444013407247519174983897331961375783973218367827007584170210557394817614288583848356783381394898032501701998310549425162836867556710843164392347090117852430145044666841320874450703858532739273383081898649961953213636490886845033894492158055039774415953523305949577856268475420120174181774372819734226105876340072000526530809003225843880465784270986000792448615091415918612895300938480480270853825478596205837766588190329681393771075760885809840049326158983153733418960298725603578461542995888178752353558870769283612452406612998074496683625702385684648734287371755951620712995577840593663430192468798785937653731198100558464193686577071792320841218075838308700492289225758141282384380428178598029631524579524734901484616804936007259819399230235154485404554465516791304169970762706713204108261359772621940882575417732989465074314937585476136679681584025403659938537339816835203026925977891850328180494297735041949116891259240813864139693855458376868309549799502440222423205680002655744870964622542336123458669227569594605327559374041480392230789922817788791810253233362808148570906569365913460236804876640951959749205007506514717653812289633220790561127194811842876169618053357039493963532784875019781400286085770992906535109914833705421403136004649780309152473287601356073034267880332869897755353074024903849857307883717887430510715772820655808756803021832796408533702638080668971793950525893086960181483477804409816066020292911305180902364613726675441972166895686392866820441996038505227575020393123773594006344069088922966352109357915411531230125738979271898420709505499287051992870548064538071819284652620492537053234152543056276936078531759581163639070562295456569816043394388662087591846403079527534897771805450071488278942099272467504809158889057811248007451160168567640054120106784357864970463862468164204065940843685210502439282426996707376250664101187311604195072154806426174177088794338474957792152169414551116608683095007610741572888815937191451237840931102263122776264385007729040755631093320417203249976923804842502602025942895216666665502756990088491608648627206734417785291132879157872453824684150299831145068713325501606778311078152372378482692351556505762296355612087519752229873678622620467561704406594272670772129863964300814239772675502316566641073623223119417413699459986681705902442856206631957997082604422108040768760488974649815755690569657726404546453069536580792525306041454342965071238007146359084523718629543604177203298404262837107258169002123737553789383055027355553094979171560920954479622953394575766272545123297116610652992545349531869523378762817747302849316440051115254379495238219166432161353771853104030558026769844108765876643767982131596561497640687697751653825722812253385595923127602041709444631292804330721747388140915580660706137876801348126609523601371388527883826770714088727208282748961363977455174453874070178752241296404337147049515641852931650856482306515659914087095164139042553627989138571729946570130069050237911406750053742137536300010995542572891332966642973188847560674529691715012515698703413452768833344660255601562730535953326913810155382165389675877651738050735867616375959598950428319984493889812932847746783934063436709208770569976600558140308032560963164374649750288139194151964014709561410142593488882664787652082499119035968464437054511285026317680431078781911996658594835373344958482261381476744640822224368953157165209560745445024914065615845710149421282524931307608083476022324495456959715173352226637733335952280072587029111668336790202179691747399170792645540236538053020754270989835620345075776292941136812156901010477404045278056018151025907937747241814630084070324817456116073453782856357585706271761995118371100702728050802326296570702997552104343523307230867357615005375787713053285924993626343069896942219108739624988198897568645246885784241681543604981545372025128759898927379956903207237842717020901080145081786162825862446272478336382181328742552752332699990311350314981086018577653418265845651444929334067990384581327569400168705080494181473069711815640185096511907642421683061479251809887009427796043595440576799845721128629969995754476273146348337809187212989479052541572001649212890044975248513692173962442052766272260912124652027110754340730187812116185441568497650025797265457769818796868523854365359189318851960347952581033504141413693992484209320217922076341038136288685898481088950974112906524496497420644163121402574076147617609491670480547142928150679363539843776943599492888610535697742864443923924995218417498651739513625669761708420631157311792996638324865882547413060379494840183439214005074774608180522336819059046370443335452539962757236154309727074335817785610446520946450685142485324455731105979732909616844617501000911708380052482161122616765842015441204211497848855506263987390376824518119205019984538888756932342536840118851416921021479720531969496000182847160312161361454549075719430054156977845599814680458273236011657083798198725053264356989171673156276349277358982188324100862794603294512676097987075698956910872675337458845175618355113392860752646359792824631960909043592969993439711296322159955022289362200056314390370333012611360675728252726728497392851518775713109630798417578759143195767448080362094884451801740450192694808827004839404720400610275126952799080079870632779146947555271591999427634998129690472104634611735101428398925401513834351583841027054748540110424032249109046217108581619148074742319868358903011288770991979816239528748890317008263398893095471330483255613992251376945576151270940007430105937335407329259053442106503527127938651526259243092763148927466530559966101931104765076357367101050323872829111127159655457682929391466662260656253036711789320251336900765124450028066589787902020733674282492114320532508290937701894710427983735867229384167108139866656733463348051974968077560914159994701097630060689208765438906204576377961291410553660721705646012487542554504150992134660748667491924584787774194051010484995505099288015928428890641720202569300412667776992206945749675251946554418397076446466099011370071565849674213226173322123365136409373556078670006822992412829494359393496125156681569811533240171640575438575951156020894016050699291015879617180903290703173204555467194370210832566615352044660029664695918318073421646981986614888042997934783380703006777851551594480662469735056055869638561682668025202345990241172658699129841356463259846452217943474679538177437429713929290048648527343265714394551049643226975842239934373242000615145934004296911375618152844127790117680128918726258267134449385275608959913083412786957252074740844316424771075648657424850414634843574439886878651624781761522242892390508473310422292664302802609471642578201761291412528557631410641915904811737827298895012371502468644315078261730836041636705132765586886199640499943316801992453762961690557329685706938460530982975224594902933954313093845864694106936725078138220826134797003290663723314078245899743787713727868165561643568695284358667308623357332213710700764717365214187259045866959021998845546099782793053098979206849352536500986826354753333176464388132318744434144361315287952601292766246146849850490463374213673875044400435001723404000125424487504288338165173671440415239892287293528400925556984613577568770745448202789943357287297049383491049517183522684328267568554604100215417898783447969904853848254853324708410565381130967623699761736369788524337986809184160739480901109717452436233201290001863668862211069331589816790955258838924025915993398016651668170290939965454780251909987126832423173266355870384028504015672273416572166026938324321215397179552918783629012740480307356006797383805496154547429909041843339627888816488724637610328351340461373953586902489111251990613967909189857223377268506386674979541931208690115602473090949874451961088789339572777302357936369751471191722888702235493260713619868989870308736214956599308362459053367001431066007247798598983069923115689148993600472573592180122728551950291048868704467607275986341378659416030464826232603811823683013355432590610155886409301256930568883760282019258955691668411050113379585597110619995802241652070724438046481527619036578634289171374347658445308238558804435109357293478423851292882571222466648284614679180221587653197592922059023113540408940091877255773769115338181580074118727002835548316772286493881038091761462498150071416774897109118915592592844340554577381508173440700620177237591866964921329528242494826693409134369876531706635893382693222830044049915253383776032450739473009230516300236171572705011002536110168939752775631124441075746582532894525789232113550956673504847780031173531535870543998867800228339626487724256896841851225671879756491788477676242435911301795982378293407154708601198775360334332050050339043347236292564852780302106786969261405459915164921512064533722122886391314855893091143274115660474146447187014008385142909126173090069309208088405363761516185499719247012860749920423600299664346687714958804965771785852567985031794623557781180147582708786804446087561611240191417631079823680991759045657429346056473695254492728893055086737848708156391571388006732110490821170386010518463541420430289136205658311818464441611119038153965018301980557888545431591980654881073147151260954820973098624107546396263767895944831734372723589871108631451770364566582719696704299619023854569363298663307694115857270236991187038492244887245564162170504961236101544401958904435007040710448903244518158778696415148248939291875686513854361819776703116194904946550725658874536608114484909487297864940302242343278500893077954733559864310205594534399734320713423783902334925723152695001557151711044282837418238501113080547496078568780892696011120608288542100576641548401346485130892793777218923138694255594705206155605770634082018680853018988287826840407225760763103214649878068796444165746247251135182166810314271350873092405697109895628374961765576774182506893468339737768489876956610208537222812938735034777457634630764702090978013550412086356855396185341365366307321078170082582559435037292327866748464060758980602533764107293227425213573870747807302284706690624481035925545278042717122237719944010277268068548523368835201534689466257203422156040617637579456048384584261446552154940931081595362365380009026634864697985195672437412225664663093178834047293075139674634697373327891575264555018962003072837472093013839552363463695272353921354067631658274058045848840795898058382274223197458133903969262556688703125142918278027088445246247708312286567155797135686316024415455428719496550520875844237674562884271769151676318937589125124834978049943626963543168049009774201468763832978602615364723159614688440007085919090149434640306204522762595099812955711164436666454487227848050102027003005865719132307439899412161063129694637157980488824889216536893839199689529231095866780912589023935856872757121996519000649511253286769178099452296643268649963851350694487756068099747846485968186629564019265473591626820247966549051811741501713528093735211406504558102605126655692800213689193568849297210614221237343767802201797427040890566500003640386385256493700472159058449812788160829443630350718945368185067136738853300318296911330577454460975195103742272190540810338706789329527534567546871268055724416818014322729483298912652083973315762636712866880277695535483863825964383351228616039363206868584444586509217394743721651633205070771635656274040296770381517916193215193807215112412350274039006027734762966744566412582529053188272700006489784458766526237589132561582732261061607231178697144345482952272496746129465310014758692822928641297088603571097732538167226753103714792755780247340585179633922718654577004319387613738427866439361638172346135089703559273744850971872818828129851136870542504573823868137211950260678647931568299089453295062447404996972898432440965174263004223934818387865191157391625649633112395829512571949739652129376598942151353129432745041453792497952390322922474316862479640520716575828293557705046811489531462194620289801312170021645508598585109666061359371208379353291893262985121044056366644315775824143675576283781589772587502225856680709860647517514943947652039592855177581522367505191035819812667303091339433926235732117515830204456778100852131522369812680506823599609506655150663077733408274095604821167248962733981365785469735550565025878243030483206409176453682339063968737770162211841151212805994822413365912691871512564336126508643443591658688497375636853936751411964358041271160444843143573996845780410573552647922089258858858874998597262018370020520093857013404261681652349955159134564495730034869462657437237548986717292316523497597184667598443074013874002349858740782206561657881591872862905877169342876708609573416623164873292796961265739305467027484643412207270235181490858207740771313696287213360256164279398425058379946396065182709790356393523017373575098935992244896196813751046864171981167180757930816543381290300195187144860442193497200008168258586538980847192776062871543917944552916458662230746539790814681838291184006740709801833850028835157545737746597769634702797751405117823833112578062006508590225338107645746523993919250236980721486695728709461660586347970434738838801182387799651476797300294712962207157284731105457737851781296768356138965887594878727138915603624431886447055872012939122297822836019953378730291303803988471201128534221489273514476459065570426861350034313328999097334102331601977557378998878445251111267602554455951574911726960928168085813525151121006187565982447615938769979488456023219324977536333693888734285564017661792595674516838585673443150726134086018350299734040458296363283429843081446814422272169683733183532122631303695811205827019593777911156861495437934937698266548459189723895545873785890141376036085247108141640858668611197728061849760436357770944976821167449777210838937963722320849154566925693928811764418918417239028828946283899151790116399918683417121442854009730513092881250603456859595458852021939886360772824587481694914201911799887174943822320346595520754205028574939757738161605240981140255600293517814391876957980069389234961101782556752115606566859524961653030317496092739340727099697642196846141678767948894830733044688035150337840466247167349818071062988776229394295212436761557286101163116774694219926862831012832270669306011063281252012970670673356400327207710577526507281210323474318068366776369556835931259552383456516174338904508054228077421446759131270722945106204276361618780976695087139752876795222873028139844764943379068805376400919016627365877647314914169722154438722961648519927378420434364772345494955813949989436152319464771489566380534113547090979182029683182512592616167097731824936333570121884566430229185353593255039232762229338771126660307704031721895246870271876564396232959656207930067011733936146589056968307022049666061782821751427863341329642812323060167481744177982989167285830493592004185553458771284048023199535397522691385117476205049247015706850781238275533067671450771743828055012264702930381000746652435964464196480033925443385419588472227395621218511412775801451028887132720069938924579296930390016248274783334657622969193732500469368367223371444775629917255583880619956107474747100985981775777307200861744010948372435150672070833863076159184219542256916376540131257179581207346663676613269367865045003353998396630449021293897992586893566328271398703077964395737211297182008589780092038932023967939109488326369895182165896224827071043721841518937076348046868659560565991758125646907576859800386506210670034408087891461139411989648850292933995485203647612818107079199796555402933995609176325116563958179728186567355513729269447467916704610565434609801250547772711059739798789658337585750947633336871438534969387775057970218893307016129480943359280059673472880284512912125400485380554360135846131949246365197555998910838560907445685583854896910860726498791096142796042220435036676498107397883148214730867129272514285846449154199318627366015980383570769380170731085136011079116953346343552912123562548850648992597152607050517276166083768666992400469967878609839430952580835337652001791727814827666288280887965435176880435076392273199059873044791286490222163922589583974980165051207318753341185296115242733627158604466965260951559023983261130098663481140310830943163830200381951520811051335681571545099435029994300645839059228449928975115046775269559579225070590412740374140937009852648831339109317081962039740579473326345956864303726863031385614242400571068563515274780111624147862231531837779399025733527400340169021630242481094596810217558358289240912772916862463147120422921261506851868548097900801472736765606964544565734347216306925264041326502919036672359450796515727848808844409832914787494171042732176153187288895358611972145501902930733023998276167252576933130651000683155139509694279958175478592825377356100931854580085793845811939070922970569760881696088303041112775372118195546779989315985277570741540921904441460234393900007436408090189140402459171912451724531086258884334923731501607985339516841024024351024438109703531238423382706600051414559302710203733916053773719160598567422813616887243534991151637606151324342705211128454543625355109025761464076654664404707565615105869959988435388990216171059125913373725158898457500826578477358675695239077580611987927825095070556375415565255185732560098761803488234708002001747380714419887357644811145443140183389351567996840394830797985068496352068617201759538900934565401318253762615349582783163259840124920996917339721616790414894916430476734824445481595854903126421029731390021276251868538602296596609226217717949535280801292947779416141177517262584216769159377068129690872396538133276401375193406358833820483910696825649347057525416719116027253535036072708010928193688680413721250593963296703433333964439772782728400122877103484932432122153529033588801240016755164293620985431461019628297217357746897478664062496458891227839581429280899103557799605785220529500599167458462701948413783455609994694600331728362343768739404131586023703610440023396365889685315712115216507334705449389310727195438791289354608435690999584139431719128394120567123272712124940114811300043988555181867204095825588418619552865680352379323612643989903911638981536981480800653849374172480005250366338074656379238558773523697482964803873467263978487065356374694147738889824164454519454142185268821870845472948300121364365197568477128478823826829908347257260888304151922640816035873994657507644464856927715818497026504601870454874063777799711975954179666163000912187237155106099726304237998568135104590628464128660712016965328168107072104507297980649736743334362380432975521401743478163250224081646029999073208076504678605850080236085498914606982963690124491161031637324068565888578344480200510988901722887412497907675926967809198821339940389833460628500126566600312285000449475606084335321673931656037658483853699412359706116994082109284292299146540461340889247374614889150427618756660443103348156224222450518502141467410330919034853902115086880265404399537856731347425160798069711017071041832287277833547177321127529253213662888500590920715808999200127765471613863261197513303087467303383747193964597597404120507513473220844656999353498357435300620489423438219662479346906436241044175490639863094792075910848953361060512004243894204107069610310803712643140524398596656340402652712273813229956012290183475011173527041991777851353191030743646355437741142091316382937554955765319495875693206456128310532635944360578669700841175962287234590770161596865833994785192988318146118620355513927883642964833039995994921599952747273798513229979257040085806706908211792631596356761405979556385668332741914532251611263736806091579289293299639802025028654241658656587568413063640272308323233277809043492704118887315945873697553690986996417021603303289918317903137113926729563217308472064340940351761224507061286051154197601125089878958427906679680089944878738873095735163727956548119664797305009826704899765070243887392768880271675339122888864628751634055361295785819402121174427704446262761285638725602391790024683465558918740766990710284027901487049982154188805022639631114731901035735426290824648577030414370710114073326849574145401598362299358732450557229582883810771089428188521555579173230240560420558990512667673849377544606088051134404103948430520155025321012169511491195327972343685121088767413793779283748702686485791799236709399292430194412220397356811379174502238279827258588772889582952490561365254233102218992541733352178822255349940710632082711997929596474307230118907415383890311163478826290411351675537248484392277797615399081339450003770618681178593132511602302790498369623645421647116692216732666201579345969414769697030666660467205112464570466987885822614767038639748120720355727246842105204779014101470466900358644905027096977330863893036229220871496903972956635040448105848172468083538316130970395587519903427939426865988915523023680077096458603640196521924295802543547564238730159187893051031488149814045325546468080727537814333123498471174398003497849405923327468360217064499742565708294964403572633289231931736800104621415075157543491630245435603339501972711765470960082194525564903842643370877861771668144611926936468208016143370103945613708004838519327400939085293217299072613885094666477256064265221433105685465193986155410221730524498809170871062624483538587930346222624297236583864732218503066295463143804359411786018462309216662680468334687328067922131381692152552812126108604877801978778381817697998985453628866342401320435714126094418628236965554810156404192438296804485943777021956634597999183269572904783286123674481103811868747534826894198833382528862695059751768600170805566777749693405507779585884473875874455129014761469378104020139575981003075937549758117939129739312373136250865092970100004192412223396654763160229616954882341386220421795482150265168166394089355135002566951520128704601279425505221564132734724720550640413800348817673381812236784352405765311132271673634465962570946746658528086921985538516265802311390716007812231342685350027235677692380906339403569873843607881546269905214791488910147492222437205545777116984802684323184438439537320129175702791027253603996579237966681343322448784183034725502828528142701873895536469675089128682838007347009064441934494975297655677052124045318233308617993761627755148685193052852109553219136239971872124820662145544287300017229026284592254291510710574688797180689094963658256751569154888562829872813789082412539357273352397323241103204609290841922944487291974233273374635133042642361793060480529258107372385672613398672038920707832065288043589369670732798263823325598683305651729864025730212979423517712997873549680229438738604549365641400979875135693251949696335670424259972404511902344943020765101221889306727409095698677660846137919752307545684764921863932581115378241394604400948976844755140567186143086935668413343781440948490744693354531483604309043914838841160366479453485744455856296129440838119547493379604256992899899467566476195133010752841551191769643047622598126908113301282182090846603632593757590465785881860503280137554050711861984002527918252195234995418709307826409875786346212626948359882450464911555098709373372041308994347262682862236340476760697783966083183400932818148909744922174688945294948750322196854941894243057015007586485361975233612905639584033584838329319207503508924046830575989891598783682614118483331265960907044245115778099960688089177161342829044372046916653585109651343043135419803836734289972739377702360633923665490545639245892344325269054694976687309098057757971934406075928499475564518667137255856648428544613562751311452478801523480015219105771489109530950706722330667856933149253821181111434486771937626645256824084508080420184328785505090052507152753027132306260834231928052743937352285263911692467505233811862516012133890390730528540789805418976618380351815497575413503003400548397242978664083272922726071626757682999946304440957467478972712427605762566948115913076594942872143831795411085231909481622742471572792889753810576836131505448144465900637006492042886353792960932645081701529017085202996059180113900896967747267026304157511101434456716289513798183837981650528594684277835298135506652210741451682765919022400154358973438512370690377301789050773394230613466759054270854414070965753320290821338780341138279965746115915711233823889482664906023272530817013987459398730951827631917079590435128118711077510509724269748795775083663881224691523832325694867213042392941906535374651733559114437968736151653648058595572819887962732943415648136026651797949310758889853794775977011854467334125175013207204656629783179642705855180191019870684994390987616248863338058541899147559911740574654468935838931934945299578287619516994444676900589518542437661815221459375912712554155935306177787041761623733117283529628338184653986743829783404531631448271124616991856767788522610080787959128306038409915269813611013045582981666466035161454264381659268137379212238503761344086414183235895299642034752703314914686396008824382013031950918230394000178147114743556453041420434407500679021631921741454122411232379448062533786389175183674746596615699543131361160837837549271642570540840903394304018884711064308644661666331207678853268282356671990432586043418666024353445627427486942517682971087369849190445049962624805041514142990850147228862515303631636127886031269307661754793279640710235871706255773354721328754324194738115417425562826638565355026652739560869336175506832555063786486282092289052046539217906496271584244818846956322864020799685206389801744050293715809287691638544975913760024411066385885690945459321974205316976841920357902876753364526620773746583665846242421602843906126828362401645598800690625040079218167533542917258168116443967495740309872524463803732407015481984829602679003170453480837233358504431941071000136549118420170506233855189188141781241492844677282922525725083109976014579046211478217642137323119171373307386007357540698498115197933075728789116550732340621119544499645820963389693213576050990953510835415236170132309355648559478097985121964598159564517151633713827500488993370983792311010579887976682149761022482478545056445909530353224203673634187287005689146681999199050568438831012326872158362748580812283027712748034900946510956360420514085096109124500304749577605793574056679737373273255184249440928821280419840501965319643855948998016345335679175833457272981948134113206064780712321329887449647935072893001241054793297591672677169859930016248573122295179409961141398537637701414499998776193505414378822135145723592207072420864895880755994030723725049993755905655371773969024960496230343346126572297103650969750160326097721972412997805018215074666033546272283309674910363369353113222042420372430797138395867071948468915427189950307024326235934890615054167017843837743141097686069159589792943787097316289039792888381880575127100781053977965010061270915549372775956988029639389767209137678194620083497260495267414640648612050251586207621563270688788146290516003490414337498707022441337213864849895827237598292426609823310541276602801709363786293519499651970887075223586668370864997113993996059745410857027684254533981891239059103788800045903156528416617208407569445150303551783746046200619036153754811770083784138507452315269857999446595296520243234131377612133234400245376031763295259837810490170728224544253427434632256151876651018292118452636256278183473568997029699796089319353157383578190765723737122460066754920382534221007432211895916312927547654945611427600606644669790746078600640583044753539593450574233373004095639626020907127715571276506220116109810647918415088418842261326683738599906892531740213884211265497994331919840614120429481203915412560048268859845588360930887222833162764978037882490553027146600382979869105874082427346019103586254984035537254111406076096576722523047075681599088491284243961161484494683127971017453661628168475452631254592227246316510770833763877376480217641328378562577243368521138176410297546399209215389488468051976261185447849346407107635864615919060322522807390882765938772931089154529881937109629373393452465193227801446544513607275330913274215000743553771319429232699013774972280116210071771618948185239558931052773451695587313945038155817715925047883373567814496737957375373232357372918758206302521676883534388245421708778209291463534629871710354287009125545511746090102527731513688796467670473492763622171788063306619752117855931885991537719181355599169490910358644044970879521965299252784074480266296101563287239610739177663748267884002383278421478944073805531603397794958667788043620862980340317488589028095001223467185463207762312296782450847632314966078533292149526809476922624289875237386135271285721930310081917226612645770283181720273265402783609251013872244701840933455823424933399721687997157136106394762309222606734896116514902870593880727999378898779759065617257196958687858063893883338998511090997408524988060698264082293624891955463329237176117350072462156386596785616257341756233990385347872909749262648754348023169071938357975672539989239484563998831430216417879651409579609040435567851089629656668074232856331843982441562444154434291739906841079235480733620230655987004026895918024890808690104123237634482309440154207310818539739929386756682767451850651754726481633414082565725028876479389428625180473042624213800356786637213224167489552241833365318981820826606522923581124316505008104113469384968443555277290044040093739288783839752025409135195774313191635917921263944276167108172386326688255971435537922054192110522543160881260525514444414753807455159545575830684841261098306121207254043813004584149331372268409291125223640468413250310235469602372545227330334935046627131011220249050203785507749333341518988103300452585229557207112019727712563636906059387519359949805316817905913451626349592456598179151774877455098712919382234829414900114472128018143329165504332779876449811440685907311778074868524319619141019094405231073568388360716032443817737772205043996835170554712296270006138147999505542716894893690789662363281076530681341187649320709702047554131611709155285661493635770004604667545734330366883712031030451961618933710981479420610221858672734619326336338511691755740868769882682722865218746415261278069931962097767806031198904654837507719333713141489092040739371561897253974348459697313312826244548897812128700784426868509088711452927139210038163997523139566391420353279106634414997008206212447229919894543393330758063635991777924049951175046372753907305343212594772949718419560241106651149921202938113166303032422440396001725774391644178312117721992786478452285741261316505889605514095435508089905438595246108533195472335297629380817167821187408945679367386594272239640962113639915960068454364932839272812041319509625398466642551759542507515488824956444756846806335873876474692491477058892656930183936190208683239172467680275451967871885452483765501033919872156761572498448916842856567003751229118165041655887223386983841283951385911951769608435386781665073266133935020812932744188678492361483259377891996488054082235110900842486750711211182855789962830057878366703492814085734432057520921156350830619648836404764730848397195192141731791399538414430207625793246727779761352985573549795918622962194407152879508126881166459708555532830045399966195821142533986883702938566660298282450183384241558721164978562298990312841564725509853931609932844125660022978165534185497076286812890418728487221827978074851908724483589493689359667439331949931924040383535419658915992948317307929419943417656496534764358071644061571855900477711017358400973000347412837731481560827029517677011447123218564393739866428453797970373604210189283906278640172057460689690744661820865473547089090474562701998173260957428375037446679622233018599866696497135590903289931116686313307468928375983674035850523075121589354204558479612524655280920742164294502307401019303270135286425145138854653061015728204734537449658436926727659471316164706357467879178478301366182985517941248811522267223421055753626341796490227349513487246197306466249641814970470985506339219468350841953998814781436581855059248698297863846497885803569559732831449681009517641869978085387295341451712651451795061992708513888270222794518177572609713083464863175561525967540422449871631731157032395597534071448507620671830871218425224904719952716826258917190841315690131121084335561356543309835610647877597758779336334728295205923857573395743637110274038989083847229763153521933875463995272174702749945978220024043115417883609298476684363546752498632309775242188688129493672693004207666896266418250728110668397329419230299305894565815210683862134083066101109446791488435506416924032036472962803236808020830804999014909746584656852530179162447724207852443593477165208104827961611513802096567211037850012767778865509417580456133978738703099430270951183270423264844164738773602466322699402496623583710224194750386198698434085616444089711751828919739246513224286665319539751988616563710110726853855754162061066117688569870217447750281942646436916648054290679804132071322006658197494718629527565811969050230948855201394856632043261867142181682383243252426779000941077133637577846195970617627682500332804495567583788836570829824066279815208980009492363436548764243809323738754717734858280330026802358379292840384079377253664189369327790296548856136447428871470453727852644481271329495661240728998620308248490113331321331348182303833194083738729518463210477180658861814284517573119532145221763629129293677422284937269419852890263579794432626570063383093360368639849003112217129053496321743501656209274897745863661785742724848340316566369812860507961920639577164501044429753660462139530017293014914773101550051806321810109870382396534494337620385234064479627049937268738153577800161343891982935076906543051275679688911891425034968858989567169364617809997242632315815163392698709853663986300740292837656054190132412085658738673892022311785793639455198953182308099470039878656898570607095711425891525392250603142277619274916050072585191343032192389199824336412881230146097234758486551350606673283892129464394232860098161691491019993232038902126275329636648039697688717917461770137739469388647975565266727634502726517877357109004540252666836305079239193143441276260603375431324383340419381190434672162458853652448946639635080650895320657762883166700231254664258269473782839183977314884366962257973030211547700746226453731027816354554981002242643577240763788698848647585683380061119559878377713590862184050683230123652215323318173394568612313605039490617291557764034820550476812685298624842255682352175119062454535841701412596873393264283034938339789858404754717299974250791512024007879195992292752877123302250518868864769096960825487503377145564606353278464472882648013554605135595389046369727270053251921509688637347115140094556788997537573985079926237410762567881817611149580311755020382586417420659771252949502502360046932090377442651098749448620222099760695652932804598391063294412032795925792723999581555016571589142032471965421276987658208954944172213614800016135598508218787505578574187315492405566949909120339601864831044219941453813314146662936680140730182501363990231600821538727676838578867441277402317264820982580140190458703966044635881435320627115079356941175683625288027236753538452387037884183643219205018924725467190745650133950095859825635803501763130826371468894381532505634864124446890628781120357549974365966656436685482819934587745668764124856196445020716526306010301322377625471113396865846857848718672848759910720461385991589461033633329155058351158907121087868381145853854855698051680445269304259182163266966944176870049800924267716675238262616093953825058677415496577725751918919580387794815227835569843600024440942437308897114566603635685513750488908162335599688709695273403324988483907155184105578692499879697926701012526121462178379860362538594193273985445088373760252815390514586255563600757790994615438637265454431953117809881378706939470895587082524626860162603345502888858453357573920870752691187360843555327560861172257991779009000991773685340519155568230467189680945108374754255418355043960243116241802527332575523605017612280051292721165557401778660536619336503153357945932364088294738438240633680992944524284617875792486578388948429142505179381144995512292448901852696267029428677632432561873771758908687588486146622719006399848319606037726016697421486851971761465052628826823960652022429781510275672581428074530359436431598316849314603938410526976091102566158801464029941288247024608735553240052656788459615774212943105123467509329899049179193116444627540473031997248697446300726883932138996574236741475619786189622922423267561254990275080124064863719436675008372910439310413317210777561455727398541574984855816183530355470747965078094979347939559322910055695321107943267464810400701555946034631946604365553754782750293806178109712917385961333051125295933806234796776957330739872623641227934826340756772294306404166272540531997712755686013007217802159513905179098810053501375977608863775600960435557854604307666060111446918456204279493694362353932916749414784676443055829951877933325559086414242494582248663428263425985884575063090753072916399347206166276339141096504132368393511752296222783163943241103010309513157104955379905862780381506413728481726933461330706106438555049233451696203838400531237459867948016667934685885847608589428312984599529680367473601645138299362500145868528230668973252938811086887699154645452452359620583776820344415173061226477760879454969919759597836588408320375680207903602096885265778793396343283453739323668210037774869270560333378282106586745522050970640331645062822271587119858902352237258428964518353603320863460645969629239701497762939637783659680287505628809069878850947800031246180384682573074196791967514329310778152341445859883954357785111326972061206996047015067165553942197802160623249023324329837680755306339143168410642764679930209364477286497477861420231822684919118922773185336903723136894400985336399871873974739227749522490509918251745493589960411083596161893919009115188932842265421977388003980168656747556667506427970849332497403560537918520440645770247314244642556259345355900056835669356485237857231834746722664077736977516249880855025289991546990640649772206196574536397141034025924830417055620860648899121461297214061346579237431139035465200123308827554659664661223608277904408142627188519493041455561984410887611967618965739653529138395491791421634048559687613839003897586489941465077321641813730175169572850880733733310227888301265328564484120092597665107831802409191517164516276450704347000784402863766360352578363111732160396669655648102735865801628573579607267973486624736459118332885918401522917949679670034441598143130257643483574111121243867025813738156655103180871788809038818845800078427334021865706078195373938672379167494717209052162857212842684101721120645390501293174549557973722618788899795466708038486629481335739251429579863841920439837974741334342750093111411575226166246685646348589101279608670176270735684283149466800925479192048282755512752408811817783418272038717591741489798000765480649832973780240272465874755546870438225298569432206626622637188093571523312174340762967707154026083534866778259846039545973025352029283989969312256753333600897618324651388592587390250045072948892580022035773734919741185288414881347835052674580385782709222189007653576954535885380182710331441116386852784289388439011183011738525880609192585090278366149923576628321843249667375437788400353945931901727870077873643275371723750998353617252314664728123366682993179113778484076254155697275988163371378559525213853577006138814750123646321459744374662512553959039212134409577305919301199404714735005366171063852585192311214062343745766640387283155462978171154811190908798919100189269389617540744774981642293396980573728220349205552643775834212419586252102725535678714259626888581944728729251397557169216777621443647697039217833280916246198169862964317242384195796351571098304053384479207460669814841629424852446879420857457316257194683583583762183097412807388025791320355232127277789170219181731971605179861360980202237338163721321170305880885098871389660869838396870090331020498570825857693781553877010403775915408377271979751720421028198024698527237632753673955027862288734253636219582328160658565143009251997236225641281381776009973016945382019625359881448675122641345807837380674468715140178631600272675535607756651992419008913641060075543180509153800036412027499670583812818092417490246977860967617761138015349206060695168540609719505208446945394055975907160436680312179479306571743914130231474072231550543761137763782589239781950515294221093497118247618902721279067136637194266901358826526626697874511656841897484941351492098905052723624327641316744778794238235954146326704617302489739128722248099558878434489457147735670337550919321633399569896456504499563663955683989323270548357600677811263741339716416936149686199905498514252271373766936551986274346938572690843019503656272725072056932193930218492331103675132619605261568304584279383928909699654925080287459966073666153440708949013739722108959610146273569884822259509617715218985812662427771806392104644153914176114133457628311065373001529931301316686707159661972692668630867404284558826489947623495122260652504262369944263920172594817676027574452616947571283780810260058574926133810143549450885955265230024307448134844153465903832278761949275169244341641696733191214003443202873478605746197711350500139205456386954942631413075057250598025783745731220813545453978799291742497731533307075355935768642717492230744904046176346360934482126956230793729953332309658916455777315791750091337003497293725075091062066285861532007967532491553726721567602115919120445141793252876699777575114825886249763121480372501158840142936893811630867294233393402954132872163127846513953943471838490144823996042354329937904079141718087080476162438962903664283881544512864296391215081052091853655103968588095685661937378929897171561755231257494992782409550745880458919166189873160086037087736613203589661736802881396441879282546295021295543856698527739720601373455707247425726374564777423631202121347252577565613832670082178326565673393637650205744963101497669655003661207296314639708168156400711401321860046245586954753788172483561349790799778395890794187684334137316928714531917463891776786876225376916540434074626497827023521489949144620178517536679357676101663670462562432559402379028099187487653352207991032090852667433566296169486264330185363806303218401060736050591962460811982539046560257377747445393713688282487669517682894140519021197106834074986559227334357995440156958994268127553629038209838083409008172465202202887156083616057320074111696630022481266881590727258003745748844890792114456729335378852498639412918925002520370755076196511858678931029595130732277087293465975494504471234184717466711293521627774372070689259704566901428958331597568332345197804617560716188098137486972033395036541647875602939765828177257952988194717082811174943338342358735464493546352544134892272499168044267772315582429139497299533452427467609123485942182735275477630829220496665182261754013158595090558811163453276717536429360521331070089766783802031701875424205495498773911432800922230019280109342089236447395975117533541310958628028674752294813736527094758910737653891314458073002332850960200665881838967056355015546490074849902918873539600121771955805135923966455624282469827326475337653497591087352513825957871345345207160463640518653647374682217683065215533782130789331743535399620916320448947883637136162442933224756656047472205290630958105318170105867284962830243860671417687892159185283783002818651775891150928640212426607966511941332736230977659501712862076337482302864799033551625504353644966044436146146303214369770077382521261369506417110236332292318972587198869700778997997760342499243060833944669783348875124636324188227943027645672791589298551969134457315333376714401314976188494202788173150327158140527294936545017814116072677771980173311165081250295828003917843275913250678629965821409259050537085452224807866024266824467626538995827040670223820238177832959060303681260385130000463740431768139468456271060483034908794951254664097572648980760694133445164868222572284118364591451297740750892155221789553695689787827606005079737672546554470872832365579254281476101497425803407174184780583192652525900365461436806755940336036548178765838369866292480511923708417730202274892848006384913206405171280415324100167769266462999191139768399479962947963473770488617209486224344686911355064029970765427423823907515323340638447906665227945457133995798059193458035328673800716326848082386542276792488495913253961780468611910295932202463071362901016404831114173900106426941449654638953370546372773656884667653903202731701066025436522696443913215409240584579921710820476789149609362744702196660086491605826084919104504996144176503623422854183870218951672243529064458395169918769492758365847869678472628123497173156812987227571296043479241354750250938720664030733674764699181449082121132458201295957206893053450461059269964544926928411790635163109535567012563235705180626391250213804391658455143144304295919848158374972776008207736585372954221240507584895951090060130970396543916573268712831368575038346760438530372313137801756231106923322201404263590767832277238559219284164795014218543745692556746337315514953469971422026042087087235130303448278792283983059331984065060251983715671176067283191456323278553674067068735984623387458179129181603357483784044660039394259359219020687168155917111477456290075857918598912010307325071406835737791448587266678241514275682472163859298688871282329796989898059758010486045329179118037967338610176436707727991278720573345721527743533642786853096659475663527930270787938227164060085818316951201938842643751487527935854510884848734657060863812695473631313336405898330144132889472744890578440125343295190563639005922528902443715248970651468932187936673659555491979567360814682900400693394749283409528060092658433352297875223168379448041156205960237025339907485631438949126526735487885265603955689077742064410538821040940967577204031309772173321302736738879983044702175830424070141201303379427889609319074665755851644004020031177223731427179359866616619843749077579661001591330099477095742535542974484739984770605318661181327077055811971385343257342805424535039872126547963553595695638867387145475828887029656153428510290899737029739302977216372750364584738167021840862500381587577182928596494838736689186217021060609169590474427438793048383706715108166449304966503379257980883164319966354835397494065431847056807766281568503249011734758269740469196676280878417018853669664647599211505485725942003301191994526071148696334428730546732165359452281034405579246528656915574164701311665751913586112860006828637675718224202201917106133995030903510228352720954970494953146848033212874603464981252306732901426631860669290380115384834644159467726892184272310980274632532192512639670765763243561735421620539816164818992691073170121387660851666815741415005784020443927850200961700676090181622296109592770382599790694732809819608583296195225565125567049732337648198182662805140499654502061297550474032909729789344155150541988572671747859156520314828314697902323421661480266243434160138148442092931950070765001480894471483191249244167671210854976827599353851047066799434281275985131615246117612439409392143228000150683497902704052452280667363297909800721200781168015020188236548727784695688600431859317751304305390710229888859366418660926987068542432246069954112905597118216416583131164292823334042300934876520441353406337257472695194914594289487553734510717989816647796035335181328285212825443683124514407883691605114588098553809673379617722834399580689010384282790566654849851840217056190719953843383829442991800764676519952614720509380571147470390564199936297617323415295325425034464210733362007518476634861269086129971154504625191981861558951683045412957337816425425592774446846688675916024878555977024894238464690693444734014523592659965466995326481156474499652544943323365235998871045416088019184771868589636137685812905082077058769766644543298443820502854511753544964131540826811990564416585542555380666491475661851219909868004576198903573832031621534767955932518793143034160779696369450546958029895610898446227441090301924140999789226765484019691962877038609442237243100728026720327392053586031742775745412973841136226443124275162686095410695663838388795038767836294838401126426241840725214467386684784532171564300779755560469451762809934313473163837309373672454761595820751084717888276834290476467019948970172567191398774808199580142263526328719377295060735133875224360956738881365105801234633819327918669157636697111707551005783277752509679254906474181158043312591624816645539835584083549058855611249897980673527819930841951738561208908467440404548376815879091892679390760922358085104409702608265529678501840028578775504132180607114312282870008913845993997544446327919618898798673250661985279387768487834918564796413328956845756229392972101037540498224516032569610909004899071501422125329942292513831364157303842847900710304814610523621021656774064024050268713259745572037121110816633055784971933389083032567335763061322627386877097293761432150032835746631567474345552593562457611937846155520033440057406912938562930730057997037325335559650911413417860598707875676548941663523511212162211640414885324095021516633653587934235950141471579716705057776067820070115148594224858983204357234692482349776170956295362620756901363645860485103174890874925078501348950551788351951481997478638417168233044402128033686042932551010258533612279581256097046889620166064223371365177533413858551766033480439933872935375646448555600688551778279249574476129022927363421990621196341572099167919648849147149652890387281401319690309306076800039928772647466352739172424937299261439230363613378280357451480033528510112708000855909792214369743217109110994106971504844756348936341077375219264145263148405683663212184431589840949089576606594205991146250086396555807381517700818875182598502674011697897108032611830898328786036609805438369934392079337668837095147001290871880893465353664564560474674933936265220993898709504266266759492064387156883722713904139179358696337418382294956851335778705948991146653758994775794838360644910215656104387099138897861872867709618869464986140751973881799873685223136661533047109675824361398702950904088647569842363140470981339321394179731896951515559711754485022642617477081495741642018425528067336838748767363759220309265742672388561242505680433669603432018578872061429925759547476789399539309707195763521128397190756225912858059973714281142040328226180570183873494828799370771139792458773437067619814000054594739077489851168641267249216043378164549464279788580852339384920396283345062642916644727760003746119872943127418876007597271962229539411045224264898677981198806561762011429053863279114689300828906001835459176142166117361250437850091713443547710715185763744451694648143802968396601334732485580513736687578918822962657142196240456890023816563539451555767790034704766242370323784193569399409007094666577947689046449632087999896992473526068826265790436974598081267787654640551349432965480203398175901234656972711426369186104132164459812915571043734187766907672142571382613436474089155998472192958272291517563584776850086109507419747365646879712539276344735561764342008696677216770167226056404908497528107891832556481365867736121547663496537937264209861586091514351177919876102924336213843972481800073565044111351621978663028908502005096191006199342085826481402581262827023018813339362904358450019533107006313315263112569541926956275392045662360664357021840782922156423190525108087791779320748452787218714651717995264597554751208966839985493351331958727790116931495939962149822538389846958986403618277314254263645179472859670521033813929951101586490553681630488118140479419283646406521225970864693100916211972822713812844050770098294355366814924655674365250010591557432647573283231518595730769188083743601022209871477532456122989518341412408490481072674466424033948492731288275258868631636527214292712768426086093576471157201879830861570875925264972996803747963918652220008285022197394821035864507586348457973053127505647928995339607863028758039392988298935268831701401721346554589855563203437785427268023845995534718501780912761448833455371510693191672738079477008780118597102188238438843478901098661768630218394497038991980872655462336872058097167065285280176813340390692329230421954782659235009058544076212763973617055127000174759906836273772935199194020462769059429065781838881575525850126076265499470076176104508714351223975275231833008955940498775156093649375297516444223096354633632747164039051678334766978363839048237854008201165332968279966087514702993204711557097569611946121918539863648719032656461846086044526910751608567144051189066074470027342044760925395058036274814572577657617711166363737288389681148309513632091860671908026370344996377605274105775278009095912652797558066866630754950484664735471425035065181263140302874487279513536674539368918161947687062780538034789387737972789541442924214101115693934611929029871928324826801544481475741260161605425595495544548986467754535007891930720113709511576827593931219791573392669956273664747741812158963085632141934969153524630816184706947704470385633643933021755226197976087286449930834924391752647733701913224842110141829160910018389871364630853583657431175734625782232186212683738155012009924905477589481796755069489379443619455094757144335512602026617965567516843807047797010528974740660263112897800909982036448345344496893822553831312317943995330432389951491286943807644775945792023867695633924044858720294117872522097266649194957566823445267747691509666945068109686764802197745315650111906273613239233326788679806129096226605037274125430812006591836591420925549601611244009671832509368376885059850127277793422640384604859976279628022136640403239295462247766649107967302470551547801619686539185220579811775057878636252997243782017544703699626857574577753571914232177860947520882401144338145847832861481854909869495390195737579420561222182544751851511252819937883184842134262468037194978047043876949377978812125740729063237136264241246147833178835628372526732573359540815161260821080713911610436351909772633879392446302932708767012283663086173348811445496625246418147018507437329070532287296296866332068198869087424670746740780660372570026673796425809922850311325349885470627692885017427766324836437148252403245262487617840496867031982386091214064832529606580266641751727059269943461060390718897359249115152858573014484779421830983494076842977158190899065914128217246845442399417595092138941102352835253186101462677292443281677203316199313052473666664502623285908484777228570404713014392150788914371319412941137107019039953722938464845219577064399375120956356689603152331553314624655468608095136752758877394961947597374375589123471529325271227597398156582129694365832414673767763062334041862487190965004753496061904928195713360709702564120965500992916138850738264923138040048891105363519074713629863293597724144646045109492260940655338410772539576570114156897451692929632452948281308561837964831210522401489301873774736316787750431586002556688834763832001640152407444097012713810296131610131788106938949526493338478069056488789443726225879571104923062756802712014499438258174133053066428813409446622476368351298888816520093134156373615603823419308642244494349258415031312556221825613600229397842140270161962959838526784850252162974870436349636299775767909495415232103240559624974709938466689420876446977580853558624334863025285034479124983119471105239164445654524322419305669332445687000324386064197185460211612875821656160763912718125604856300248875682408272549356817519565494680547245604186642932554312577806619073155124574446739828461783383485403063578841840300682380403636917624255912074981795078485171935651598967689046906925677606677922916002486202147053902291563025457362210348580119020879093087828320708730774405621626621771254440668909543842011076165278607684291499959590444172490608891898457250759937602462760153201528752453331635535802949310840691551697668679340512834978467497640746292004558669605108031606316592715049093958937836178764779570171286964718111688927141250101684041831753594566529759347438773898160633691549885599589545322780462752603424495747350140193149811636324017233079624273964878097795401858332606973688392402243545424067467340945217596483234256723383585336947133432865318940532734035832233143476571161681234357385373920321373748339731369853511407930573458016757302055113453985916568296663748320458346110285636608145354566232891428413660561143788679449127435796781067389108207395329267065404841903225714053917976673693938236222704512479310698983068942504107548286480910840384117214737430558011312214123820375906108580259089846122748853249600803437149354532548615240841221250634175151893288521554648329187531613065496110930474330551670691812552352686161722760204728026448740067220701638640865031698265947610139687144805554164221537825829001314022779117424161101521657605039973455294615711766483477418624192049193919175425212796685312211400032842811590667403416375227481511237729253851734134107449753319589593727241474053376906669280207651976331111180322516356375925493616268415037706113115937649293389199286356435120826756033488784575863881019243115631011317822102350143326502718533815772768791199652093186723814998135938664434855676811027579234192408955089051889377810824281556021195144848944509199817894824923477391665525173323251907816144351255309636409524260104363009831872198457402370217537002721710822539265545828313813066212359552772853854659749894202981289435983611688343502293742949152606107541218562911631128784581791979327474863146579015631273420544083535423292764233655427464560525945112189935376150189449176851890793785471386531825723684844238323334833321151838796491043200316247405691384054626705398946515567990067505722087193982388071432945220577666018335287607312130024611313487422121787106674965215511971295447742605499693934887601443107078119665572102970205704241929648282678103793062181860768343151518291576515839478225868009819042682322413067765980594333776368936053837038348769406748496989471163735509375370051512776195874709001676724036408328953527486953477484978892652550383155359375404357974111510402307655860109671673853070198625500090299823070806690145647636526837694313307110341903501580875769066488014980784722021913970262811184112342178456878819430540353271511500018697552159264816540175265955999740008399275711112785210427385437490723505494454502339137964388257500075878016269942399764449451170535275877952976994882282380081984220309117379816189461573339407143077587607848408391521573963976542035182906153700199521677805236276364015128268135403050188778156938984401087268107824016080782827234543194863588237343965801135276151466445755273680521123882156020012847080231120902773485002628516281933468910887602942806695366711056052062806673405433376056577763147618579915194976111231637459742903560894342773806880285913462715139449016180415743548247406369714423235833998237255631725342531057865028206197822144114997015816453214890278392147773718727594799942418904573602661891519366360185283678181912515772860238192035396868451010631290970870347960738853822972888133360590764867928418998042191519674630729346404513121141524246086099726358916252976883887928181435372951750905699974919783990885935340739904695702181835380606336966324575803210465316042489543712434037410506324509651746368982596462881659061392820380809334476169835965709856327496493703248698637494013170405408129586552478687830786717016693740630659166446276824477444144539597639440451008984384443798941201600756701172414055542856294674090177684651963857019933916645548513467915600244568839255421258698287427576034084710447954687430789862656118301409912560581420917452367031478052403209228754097377283627186410127388559614776223032769705162009288319442799792430024742971739392114562233255918309797949962347019897066156236883007767808775971759282796704223577227690985506233094642314625501564802981662537815810580146809105534259175377783351362141923309817111995979340679788839978433570365098935208999104292280091249340081727058997886663392364055426360475440902678269859752880342471517252266155893155798787867095555836679733396151688765582343525674462670057613542398101934345815757816795797112926099173217396241110259615063073802542159461559124460837584427462005142762610914732366708956067044920285102799770710343931306301791307293258298739023028922779646215762843158141183042764934991287733827996183440720813563499487196202197914268000967636337345245290933186954207773531702538665298498087721795367183454362791653151013482622832627481166898210289191413575089145553508928377560677858218062389938867078123001412981608545828112364179454565159713696728909858112042832943289734487600682740043826750543368360131946652541246633716973901573435916889565094258626424994325152112726210670151322824512816788906530294383748263346096026568864860227254693793955066526326896555073862635012858544164653614606043158622983141266893866544601869539418288814586398187467527870469174276842761606343223608737724753170448319923023756827867803425044639315275478260253038033461935011356171505558032283895250366436069816582385991536013486408715285746435213306108179227579843387508416466323228560026494162748488424056733479000901663815655375648802714576263022039043081532338244869545016676494726704477056693390461470807918069227704599301988168267732731145559913069649366440505063664263822732128889775972370657221031844276657518270314216471710775575109366197057005648061932821151912744500031924124611558072602586649045448188985073920480959248296952094682996887423155892120178278682255159412497853249054974186830421517112211395974769916814524725885755459085170965264557318233122863445258292178906960001766345095108369289625535435624236237728285481697770907134815427441856208816309021448786543404053310991558656500744201972596371058448349294072403092380170649780599941968612599239222385785395152116361618953956690190594667090307047342676705653663109239469272831955839027994440056007720411345339923913243566710649927838961556740149113394920420161807333849775247333263365341263530565209750305311740727895969769228269749350255144666369754561143774216399401250927341392495124892143481285805064544846939992550787090350552570671879374898581712190076297835229089788211150348700915156224482896245543205548049445198377237834636760586703521496656616493549285303461956180605410032687927289091056538045033292811300005976646273886403872114763862392208643138048437847962676539482776518204376412888015435974017487469614747176149864223542118832799112579085413441462982554879674809889895111633825277693879771702393625491079209765711623958160482860610514069196813447367245015033909410343016604250439693341419655481563359743235639752464292356843434111056948191156462019445951752243087259824653781249639222207503689484304195222655725506813150921214902236675961745867855778615333901936274378456118166825824211625774887828732853213334384795897777671889133358530006347870284563208533382008995829566706491146378912638859591612032990674016235415769614551347867573568341091609602626700792847869264995676853907911731609856068386549395856928699968534737301467826248887679599650877992682430802883124219322803657690470811955831371681098728056678079024896070094916423015396839502946088976718338574383954809541025350152828314569625012110062634061159587303074157484162614908433021028580968325489006904760096864540692729349495242485571271426149514767192194142410293288414561050761248703106373348641622491733738276311834306663490306254090327623509580375582734884684087708938151179651100483735080799041774777075888873225563741323902540754014034786896257407434256446310908964595322848149663569025900810007292275842915010914389472863493571301093668297877245742324185158637369365584650454997221612590102692253268512621711843978177697901753708605855361320074312886270090423713593037171034669954971374633386624987500508393126086608410666083279679053424763325304622049041257307717013572420082541935741890092117954966683303199164689723636633292976359612050119030736094450092055587113428564647830235338025122036988006467799517481494680320559718686242176261885725788516178560330258383433140596604350140956709878388133170549709524947304615069497017331432686227671208738336524850822378017027163136376638318839562396121322133778021318083369234230301372703553221516816765317479301056997156857913945930143694241288606287668220748940500221793461850153358852685635823412043464921077547690418329857635964435986659288191389567725249727765892756774861298847412248300226477860934512933900891318976181406421817782081870355563642685582308070774214429279712347999032236897184054733789884587417605639574361665512055757981484778716066663157271750793373858677345316267064822533518742698569195628493578449336729413856068964493174126843293204968870305177514251379944074129827542014614632875376239761816692509577259404145780243346826975900556304438458451079738358914136658588707268276316436380724622259752393209117588612206289639036840918307512864043239740036355823340636853067117905329497385755594956316045756279075622269864708671366299258462084627663959460248694830679965761827845625003809590160529161258360467722794843531562921309193901431117282991669329803860404218891120217955394509181881144114150475430900797866225443625168071178161873956518541357129998518207328416672611618558307794597526741344396634449570040900089243091740634574274740859548007970443774269190129362408359377533693042130480193215612764039896397475622456322952512582438892592318452908975968812768082723616664709197983072731967206454176586105727564396620599030166314789368469186337025109990748309469580855553967344613603367578175962259801241973248547666076883868328051609896635564402346272107621668753173873804311559788666552834240099001857354226935808026105685530257508677896835715032330868852273716112178662883713178989151286035194733972576243953791633664990025126700759354535230771190607635109869112508720106789665873893958884290544488059248924913680619130109288725876992148779149105822299092819343555481596377340263540012194116526223703070716092037399219354749415869062523665249596280026019799563070247890102933892850528072975012669856983334802525988021149969011148785776057756857155100210462897834560790161735559060000512319045422801711924103566295350022554604939042050908619810524746317990332052373157246311994070417827169626842130069810557993065120945391152134278063846854810153886314109750547070142708590317313122404526621509882710308826703614925837178706846300800082569788269681579899798300802448318052759784398707486096093644720204660805618780935805365369921541822310814850264626094015367134584162410798733232646448265695961880959860387178613854201973092480104703194575207888074805332929944988290068661931616261985442393998223415056313803197515621002287960174629079075555433872860958275793917523617747728227452234552664531802150538055016889431118354677298955233819925902394059875795441626369137704367320473962682953503357625833406997599202799645759979454512742973429723605691232988171847433605159368443612099102207866993238165902059270985519371549505296460745088450365818279644328314717890490742674802156462482879976749852094988709191419604836462051114758032481718096337367956411935120417269031200851214850568778571200525215906939449624978245598022933077836654284463557845602550000037288901262778700051854481901518147904763855386523786702725719210791995846779052943602391073133016358265326087595052034427648996648922214752956338487724269852054594498781220642567165491076600550840572143058183808535668378738452551393886720279591146179765063034412900254012693202058039218305754376137748771792096208020464216380958986681292902229111867035297976141151230890982937690299656810325423494155963515876209572897245738872120520348087350494052643076848613073218100016993695412757977037639996852044674153330456158957666745613240270573374977099288000494446164090853576771397000865378610015393194179440184405479239921970399541114144626850758845601862534754679653038097291467153640209331413260340172939500254417213628832805510664741354845342666950845919999693343767515233649459428128668437160083309978615080184016692193871799532678271517274790775168126650412676214333282267016663182342387153340131260013618952302457046495058460810841486356145930731649272792985510985020652511714933399631660174163504519839646531456667206065838998214349552714861540530567070537497214108049090812628067937353227677106451230973257162514472035167109415664249351273055411636855339837145803537811551745500677369184846940753666498650261996460886306586633055265332214972859634551192813620038194779475811788498258951838515089700033115645953107630847294795822062613010571826194954117737752510274790822090330776002967373963780612580620032029596568030474126453957950849217446262168066045842274028659227966672180904797872426643365398945319847793652497320177682127049709043029795475829172997382514474688729476354807609887945050543472631682562230821796399016774964365084462390327015062895479573492032399350454084064987038783759953954282332476802120146612369630349513337477122051142551955208414475715001010080288607212618334692944923077137972895561705841142586382907861347801230893443260730981388431584904847566128489989135317704006491515990172608336774277873182183787208083217566172274673342393646618074439977152163258331123355995604169328739605388296332745528381496859543704021631192148390533103989897296941487704184468762040543314794555925814074477177549711771340846889075578052205560807954229510550343815793886824124917636511402566563519899232893811076596563360413050357512993700170578096466669969426943087018475595425190910104557404725839037629566734698739905375238582515296312741040672784664680005286406078670111482183619798870688268321366427253095008687822929897809101576270888295834629724092839316489316463714585957456240341654068400741624199895472529809095813984362271670784263298300048118544004461768243818611117314819365646656327195458762507818925850585123461491645272857280841307667441931846886252816363065540940502114460057896960524693777090595742257594326391029041394029805203248792382371625223084722736284734754186228113409053683301733448573343630184357654549587435122965074880633216855028962986037652264799208282377013385992232413291303189849868373326969012801435969740889822708963484481910751328465957188141228141923902058454190624957854023092950157662914255621946101614883828357683735117087180647850130649813523859929609845797308925296250836413863029085686317528647068136370328263740553325295915834782100888811187746094223656280020726228509564211028217718572058247512697522996665989863046908034075039191953140883668581759180916902215465087339608515329914875570554960460324423930787309980254313140532492063744823623303006703122880399959913260853705537470542688351834367815812722323503380927309126049833120554465279759289472856683679732504405048691535970780238974354770786589986850911982250223392445215622534249793598509188709871211012248195228747262229793110597738666331711573186621420854580528147110370814170424204045091989815743390571673285508790202362961871123556355218276659970679324222154495188492382290475290694913906673230183074414457065633931945319538148391366771918766736401723838268961552480568117182110189944268563165514728229244155055795210267616069330742434625963750397003970643790255429920614864248843893828177386758877499764225196317570820831085621277936780108147040905117180581884130926387834982586949210680521356078989881078482876682556809503703285097854248460156095829874617488337851516477352065732695630120804831973114662973732198065946083854695388409528069999727775135525153311185883626708878503744767433388205569867857901842859706916866497951459478818101033024334725652967018431360429843757793729565421948763565932093565172781282896322744430274066188691648918569388989690059927119585107946905296519746296630120221055326611685096812177456022551044623709918341455112553443710781067208973999768260037453444916932725263422101904978184011556881944134629060910755998724219913813689453439004340218194028726155355892794639173848191708481631091718455256479074012176895321517735219405752191270388634896385583143397064769282975246452993572877772741829759892703303234663202239745102053466475825633075937043305226377071222757472743616079582824118216659821248143922517418399077060518483523208182314801158673854468363064842132671512660370494414769976001055224302678503606850100636080290998546775765938724296387312445482220927563532354276105148113975565537713886803194294573526582086573677901897635866859011766939956027752971520639517528893693007119309973056298982918559459157043686062800011277955679439114379259299858968083942391948373185729854993566699949848877802986539826655024461347786467196275241117711402337649480922608467070847904380434474255060426250126458315332618610926157895921010428518873193615642244134692573172677658763432638189801986837573693976959135595157089188173662842252194431205918952169438902619859068554633757190264732114300943791410607647071704566106723941865625768555035591220345562709591292507966066601729981657204710990528719653815488301744403946044295426664468673603718264206366264961482911944270556634946860528976209179272588966150846699470855309134262636588947534680336327636614400208599681834303651479126922378911705898626001002488225282704809479169040850176700576612930296772965068172998519609989731445228938075126833309638709720789173239535327342459716843793198948631163363519589023392879833867768343179432840230015771306471020480201988283857034535326205740426368929994643911251933522251051102981103952225624635299287235146861260736927526249592281625210958747282559076786639155404302172512009115608111907954783595003539000497824986177299805723003683732957704827744743912283323776101154281831578335259401222296326477467382063732642373934981814249389320578161448037451146255674731132518394739137813073317620311067722050710689488249789245821754359885645374505862360098950358805736109850961530439978905151184853495457079775081634412950565434946263498986667569036215170808450079363765470100090960705008707535780201675986679406920972942490469312669183256883790008922978102612053940455469916106591938942009171116863608118185490517823702760586046848617859268638499370689994706793720325480824249879484381240025235472184883328454666833440990167433569661787415534741914781147963289018384333499220056658936301927741175652964388013757431191714599394137048371981987586050180462682590416212074986769223297801826263752140163812865758863553193048615612861115036513326642155376748853922398219872805748674675251442530778647928389738863959122947390501966488059529067504808168282064760397109539646497675219566946407185393415197409087475246996203636462750728410071360558873243310829742746295673562471178585209960356327113008735901593059726061081530060689997994458786411639801218112979566543204096827222308293474117709012713124722549571555703478749500225593845852083310823004014485370203452400308934547759433469788144357165535731900127498991022411621091597177625798201435465379894399696412818617296691009207303891090512887208383568859732970917357170341291380172946754397778572173992404342284922219992213134107000829289286336258230420449414752098526213655560519061182420222925634046875031307682370599680450977026198469971876304860895308482531734928894198834132862684695765019590995512760411469097068334353093350167264157087526315534365068795200378244334850080862643788458136276934997652109774043986579397749392049826075431344819976487734483535813320944410614925848916120874519283842649155003192393130950276397450891448475157625705275848284469579434002313335865954803617894246509041751517129329332547360347258014615317877703139377917556625019005726317000581122489479153114590289440983080055144962396193519206232995167872781314534439782779022453778513259756511069928667175023630354330574440707835318179828967424080402226621828329982627425251944120273084025671927833319028529144641695757324744651031465936051809793358658336347324927698245792579996240853036431817146294571645325466868351947524652197060340940455183918450824949284599796978484456553671807790355799747400787873276907767531187735414680809019957525919195337740561515923341913038578382832887840538586054100530001146144178840539224462164551018834806513744856396607464962314126274581063090798439169355886795762132050396114136266243885346018549262428680779502717291921324385655937620733810122190732639415767654767633845185253732813487318328648851802595412688585143537456157742375851410312223274241520087481006116305494364754153463242495965188170803264007156597489624377286328833239022173278786828461616637905870753742594073726099682170691073555225092891672775267870136822191820432966326706837780563731990691401405594238387539383444904677413977398640897776585225486641177665916078305742369444557318090142094480264054660125275758261325874191684754770808980385501410329433878664445008236839420501808646601870861152071807626224057039733006605664450135205433385366122078058842388758369284491731805120012634236980043238038091262116779820976676644238548018612499102506311692183678873477761321563083363423745962414654633703810514039888874633422712024273157245949297176008328624317945005430601369545725770319587410065650450530203665925318858718228786570247820440639043711588615452773203910520081570779412754796860886947713232538314919330258025224277877742171543967431546885174345147763300665070479797095952875168099492904920103544779614488931028329843655027838012919030916455149119773866022367953499955320436402483114745096042683784602064404982255387921117479821016721388841994177335044678453049528927044845936542704919362361995590842469050038524888579731041601040619277193986528577357831039710985311923912802216826171311475455026264627063937532765888779298305231015452012516732055938526371418515555558549512203769973068773044304670280809764297034501105218748721822162961850493813578890927572806991524628840117977712182355566939352348833349661880409740417526144497330162121472314773519313092795711236077779208992075647445533964546342986717831740930051532620589535255597363210882742926233597268333439625946466246098496498191698863960351993002251572335451290647604872428064217874493043272545503379394990325975560000254744152852627807998011769021552115128464055082875514317277124315668531925863061913287443294929087513138500354588575149408389826155740028398917442647926423006182735552561337425992867646750637098335291165450261203519501508775510507736262954532038474440424361222610363661166044346451004210055785402714595967085585965103381464679554214993911148875540504773197811245821061454650120439900780041195744346156852975397386738255326327419427665255847478912474954208752430622933479189241397556273545212609457217309516216328977621760763361477444389633700442306473133778108995752096464572365648359432545982374754221733510362252434469838120065418674785066937461484125345210448977144446750804854353645304285889667680556571298948683670573862713667315512778443148487715734085358915025730886136699117819023884415243504155385194265264592118682849356376442904913297478186203157919474332194654527068699860005434653806045252383062430477399212773300279094998064116004668144615521751704297431121920904721807124521196789483115207835777084109482872403430836503732295798997013397742047855087077772742620533691331909100622578194103640228140537911693159296592260096302260881818848579679293974844366912794388156707911526162305694703043303588939320113441156804858897279802104217585674200992294242127944733608628644888756023782187453469000687836357424542677864586763000489743066944414624540010736590759829875763165722252601629786740666070740801873028559247739521438896671276320278621274703063842711940754525794518562016979477287953349214609321078044576731519626974033144381501912451076098217788230215972511201876862664135411475455357545249241074151122447810188031549477757301989442785165980026268872332902335411931494872119150875529825769608516752637912552423886157882605829136782324666975926505370334380994886523004287106031693425566020889484307965636387094630390575095217357973396921609674990189716259039232582655316051690667556148946166517686379797521234814895994641318789334801192553816914969708866682111321597054409812866322667849306634630966706436625898106612827846535437286208139400240154605047842749732876430349328905385744275883483298937043556893478530817844758142798818666705694233447277066676145712363968650510609433454399411268666825490297237294915640521216270298630180299099852796397662291800024777906892500249238874001329357749180194738465196252017535808415522253651019472572512471464475992961412396574042707404119313851281060316877804310413048926719853612088512495604699550872384742908224219792048606665395414932377300131278886689637356301074621649423686531626900211323160391637424370767053408161456412492787715632732231513374889088672447770014596090310895181900067998231230694754426063023060755587417661786061042745317684848952596525735110692212872963092140479297461033923434449835402469202081833820554478050451857839292510565483780481458378163470289660355900031971173706169515965964509592850204279626426633965065069208364628015543012579810810507873782811628048196388777485636196251663287778469028178295568229758993472349033114197809944501784713263565278503721904278410693492754815690792959430187664977746583873833929279814523283773191693072554908240724494727472336875302517860871739291767146788877395461089331644049863665382024103560418028810046755282578977178877107444115477073719881690700799698413444834023930714626806629328898139155160777141417273022829507240405439168020109621950298612722926361696829891226296113904698905546437675879670601352948826103985847108187373760197148948597527048901991221388900442626689159505395142328615530291872291738089875946735925734291616704789898707166284064020044031389274621673567328525967807673311967785011945885689657974739999608154561364764749745376695744746749781174440923864172388384001255706221646380665265711833462455780714641898594219116436087924806073075206727581638857940730683955441384702319206235625953176855514777539512993339065877351008546325421803739573949230380250265066372615239102774894015939309446803322498903313327410679047185440212573390784959242598205489329143543887136593644779762997756926711080605560726735071155569817723569070340148149677478374601657460314094579164278058838229002126376081112244329683979778399480154345183514851257698589959693380112298545984916214148541398644926439010029677005552248605152396516463393262169054728231489898717588860367061009234529008872647888502031648579762369090082452502764879940508079050862583760272841787595415920009652918198116317243456690421619752330729763335036498084994933227593964879899111018633261875403930199353455478279968963182955154670927641725297300896937875411797461971937566817934515841318579470301215402016212936456978900342657382825339955091334836199870876154320451227815792965053430564455778292080000372029956941581780783858144655651857705104730728760648860290371415169794646953937819180078075125690094554175762173857253157354173748978089602480407096377953978744020994997893814131731113518156325612997541902075665023022533699823942365268723840054730175821424736630526542243284164807861565717046806405918679648593447748396871818063522218975540194505864616191533576314192785113989022996893000140649410320659108054875652030943223139024311376375946179845400465520236048981740883453545749219892253248067472450205639024045086009586511295863022370212554511303107810657738356307042642178388542584722632451617865347789783247618130381057301323894506721785272608809571388153136795033193342366086420240981466791382936936168237170481522323554548261082996548135026720305215455693007285313046436477899616748577014487886800108701245083725151883392580675197326567671961745819721446904050390772790014373008836946408124860115416864228287680929183027776771566367806304794364598310109719521401218989811972791774239038072766899769857620950964735263262355489907983922697696127022648580320012112610724694264138128380831970305173013092215508860731797805357223526162380368451031554271926858176332815274496541898978046647769858477267852837130124617274737977570881002444318542097487595234097472082041418459425462278630285575409530174391911402679082799280042327553038474103832709906436074464070109001820506980238973281590634714876136718705465477613061617661852950877702385811169332643052690149069275368854296745246350911077028640838281706617263947841847971680025511693419713267066512747623984076577529094026525535009624634826247161968063690513412838122783136508906413088046862483281160469347390142113204324658757506228296852300988360663870128859140282830879616331175309589299301243817688303938711700924906930101917422018265550466599242114234950004773970524050014978503755191819748693400918067648454725446255757963701999230801029020867368898138134781824194043899057903712286667465601735001313157772362035927286446883044216106889592408078583127265436614579657361512516496299120203641125107650290146552586413424023714822924596488623731890349545926431706570861006678049367837456243766875078168823162697046210256563531836049020451754387706007602828940039655727053724830996644099890646970392805983517541783006719170057247055089416648030100085729306267739277756097061082320664833374198340184231175983472625815274177287015782347330360040040945503321984274107136222646031606406115158821113713466798153917282183555867513892224159685166453289840700403531569771524742305718512758521729506377951667418114864635538192965727851250854155644184761139444627990325554046676180918188140314202115758298420476816592189254420038502080993859301488720662044471634262531877549632260714965034620963624233774668164732504467768394673848293603973703216298744266484900119864762599553574087781909187388666451655739967027862241677260564251254388482651045562581201251052995681448202929406899193781923519926530922539649792774422660336558305782910249471445968165839340101430456587994135997782769624138923592207138920092642138999563045564418757188670115638096448535740198473138205157123236407268253841909056500173647004910203758089012555233515114510807296336590773858825554115138647667647608697019006863780125727289818429252467640666429505894770682922840993782383547609521274235838599122808349758287597205067986117174681322206165249555869802009473170945667027771326986489064664336356726059937647526602961172160359240078298367280189049957523792497257951349241912449261867590034496071574982852795769919070890083837959322436725484168607825588246145705706429895356086746015540035932469527456275561793833842399847632141418215369269417651034156993768221038932184066593698461377631474298917349096089044022582168364066080963068634229507916648042294914835755486434094732467257841145602949799198409229578189711060251385637552856747554800750364286829195451701117910641569944108956923568939086638725471919356066713065216014056298879461656344336236085422071946851034737364302861870185220492072677087668258127584583873451654406363940565807860602721617885521933728951965152164846210926237035781689866468340150345844396326502113834783800839366772481129174039659975463703488525255636678580621947424950698152387032773607406672081222376964054121665731635839793458320538815341496539244055195559632181184705635030875363999070650766992948212252723784714748008454718648573214263405041756420889072191632165564536903658301304764273561079255747652027393789996561680885509787326971109174627224251990900649884171480277634581833549849913837639240443233933005875397479070221463088477067515610022755399948797517144527173686470496979209740476863168175473149078239857209882930188497174079538873430617005131885785158657003397578373514875004421272480238063345818150670789530219398090613488525127822916558784793162389655212440266990969252404577197215068996532728866116975548751867080415512084561566061032329561345967668991763795804629306480927738723626601319161128919384078272367544352076236943363502117220859818180882057363062680618799288061150593676343475115628015509281046680681913649880383563597705532470443928788619663552162337542196760854757461036985558398150790860143583051634776569386507894372368599036368791382252526496314439797546645548613948121902728753846908975065847774363329491411070289140781114070090056185413293173389189032388834291846246721849527172191123939865566332123522399502480104580642177207765931658603335346620231111630476841767205554150493678300597597688593676451524348376222173589177992914504000494445194107819939913799559587558007120671639261604266802211417635721312423817999676653093440030329886835443037204782966025134315780206501329529406416939873439078071393358075169126664638160761543874763692584653292408268542122945001387028165420651181914366681744866455786379020879385008559350817973027057948170145950369740459887650708154382716745585455820964008666704611337408093096031258720539199407986438415037450692872997466284094489797101833534540957899307397362553113127373642819989818388409020164285672977852521443823921008893020302619692655191651680504758779024614357971159426382619993560424293740301350906767155686501598123379087502843993856562688898840581318783315496366770920366126547810229340985041998148182501739610467898607202643301521089995382935998434270598074779260694936608131412851063468232728895829780772327769435733171271436401808082732806767677329288027433458819610056872538938242610830201978382937316194849165749638775693548633832651113634507479740249155798634316915733978030599572632861906571014461569314603162222578680181437914437595978376982650500572850985999175588791030816662697641893853696610531960262022503896878247073684044294831519315751515792867857808702325157499609306093179528495284225624696723625498987318946606875603427330335475264501234450845414113667192512339196384496400058781869426169535421842737410363451474096573514583364196867594938856841681533304281480372088876312405902246723968648009054740592212452511712450970677268799999178960899255320303242081967336494432964202173030646737882261777185940470085064401623254009729812815633583257932215394383701570422918705967604811663631626651328637430735583175665679662135387109575786245362059547862590124553126566099554285632056342998414376241073914089711040337777107784683061718253313131921653109246852168440728042965654395879224872630148232615391166182560149358566066816805987395845580449553915319930050436089373690178452390568166248360227588251254922041325007022014632609047425430394950995454289737001137214356132246055408668433459076961405584957751930423643074707786069436908413307541695376341395850086084967950291140001324429095508386484257841955745971332381003541302296088086482547793426971646649092718694413892460131298321520714003270124733931201582066690351936992749866503737973255663651779833254519826489722277698123170880985126668465295036781108041848303547403384711661384459744009070772598788657309459758703355741285792672919730996624568396580686566055274207808578072100349984405813658053603394476259476667941569979595821099027196524236420590401988108944932729258444736316599206949043303254362217465029958669217165177083221935565382828012149195570370625490979140743431359896790149624341362455302322787798466161743804484955766344665157157237247849573580303337188017362744285770040270429506580980780176644365939014867795742564981509443158496467370555791897719007597689347109747827011490768273822341779628315420746212150333806140391837974688657767137212278752600062635437928550282317735072541979686668220340385989604910130678064460611647707296119665057152065718461080481324019213696928907292156266607044683198226319849718637301019935604100193359216282536131378770846676963716807765030602535396135373791560697202396554076321398442532463435847322318135603691473931309197369163113973047015158866985566655816933355458939888504708982910220639119646800185143781380049829618368162451938334578160870067923497667855514215978069121035100754428538890279465755915268020560699850026653650879761043136906494729982182912307161018126833726779462607057138034473193504692556708054992292280790020594758853970816333245519486789443783656568820089026135637455199505258902758517791308808340388223562402672516368887834865818715980563072323847347284618034164963078984867360472091304924635931064826542916494748267011089998642235537866879442656636586979199739890424128685197576970245662552608979606473085643464349355599605671578700538288049987146280857655204893750513503965587049912328664737924559447158316918532694109986357023964426127880730273209502150950709293673710318566089437272689397465254450824050029235015887566591254588579660738808413182594511234977444992171268555530742712014512324343537536484041982837726444074331760170001560790549904100919435929479315661387248212181550580574065212055360789525056676937663883420537541183426281428655698928139144414410924311231155273438223976317179839900452922136759306336075809235874830436241751494420927814716912380643557218273903644056115355474760498985475168716911387266059830765214974731906236011007662081016014926149434124019675025318633083063597164177336599688299552170434408382259370278312876187181896762828898166001777034693815785012872866594191546987424591043758784753888907736354855846359702058898504599058493747736312067425637276211554399889917046371822058600234126331082125271517511274476094141479119219225904341799568534347316368826822254603954653636207476750910555240406098845916504983626605226940937245250681893016951455225470726185077947177789360668392869097608172068864527468334556263669849813588760438140248869359108395949330789421424409309721370766696447894314806989891629113580027941361617164938052097601671248346073924809400482690989488841930138132639945811588837254839574881280322250429828740576525996483042816239271816922763112806428919895193642239637442460368261979203796143385930717745803240881302273276114652762574229174649977790190899233634165675111368480005644252581271368763566737897769086186527397406948092471313781065806444430102983280907836479998970081332463298149749056843203953363710517905703116714845809665030509407778321238260636820449220405922825276550065892191800694919755875303074260728065735473184319071137558425720692907926671619571565227444759679166613508444977752360380304428583218387519185580540596699753380521049602240427666398662003404417762445804804563117005819566006673667426888204442603113535333079322987634051737764372685584241236696923859354672544879092558475554476183229333830006405583770367608450914053320397342789300836244025903141384075528320926011592372894020357502662526823697559151510688215967128591489708450416643646766026171218562807745650237838911778003307547230107838535802363015853745944202184483500607377899749374529409518114265407825328764153084584719055419053256907740698626958832070241048476738956959316621632139776346564143696163187076971874761242963931096948941953330917383584949107298404177944372350266647656621520456872286375764741033747258064144741771717408892899631180136513341036310531297549182457765569071521012857497328546402218499185813653470844339438654226697632184130445776546234728589306042199403387162469714878150118326204238554188506735052988057894255407753419065755186210769525367410073012772733781602862189961363735444759460265726999777513041367811131751451951040223520297979679000913098482347132629462265971173772328209904930397501630472572297167867133971980552378707495118490478707468184925654416295709835055055639217789277135747524101777238302753050070277762174510564752328284404370975455104427073157824249942163200229640808528869167182176269407441624584928210706885949146707748847634453512236588548194133888656435563147149371143029136087985430589608557876569242170657496345588506001529169078265370256252832748944634784947908481926763274525212515170101869593524776508928612086979157907214586126195963174947734970749151307965027932691922522588799968481559246209656079347101972451860813547739742339815356909388665693405909246325739610637160292373810598371383483113637268067144874177322567872219280650406455163939045759598952949044597435915146752219463749769154670302347788369935809024745726423233416883998362157223105815287747267170035678089023956921229850414756273087257333685717228666681332686880150228456567955553988087080103938137830987817465143866886227456673696369555279169010303122639153295639043795303927553004415211772001851335210508205099302265158810554463632580863833677026791867486931383696128780361545017281950909684004266536244651523529611117912469012284230424184670407594385126990923320421397346740645133470207834765036763782941696944107881461731087631341722553785389113837726879544831060211325982421366615507060726763542748157119430759379291246214597174155429263813231080220170073276243542626501102662850391286583210610381995173484332636217893528748384935374000384680898152688284721642071058127340383821720586385964631307763062965163298031676460241452031460563804554535909819067395371233352794064096328976458011433203672349055268865977421008557535777267864773074666861718229482210824147846043094426219586915791591619478263242764651813798818777160768852017104335356608137570494303209494620319443676363522051872642279010787782816237783515860958320144865019992731680444933206634952998114988543247508528109139824410000161105837851978517543097909365292848461859164579147693246826232906304535526985129405343515133558482149547711207226136125642987459206618407411789546531075133040896312217508118396517690323265953147431067860294305580125289006946710338930146833441338474562546504120517615260586006061817945194480998017130403350166803481799415829977096537301525498313666398226621781411076460398110665105245940567954343060481282538386557172421279614134758120956295035405806163056792787486730175288602899167131899323462075125661287196108466235014134354659506948782261358356200286095287576783231819229182539445194975912040401740790443534885073228392999254178186584698875198036612908627482238233214826290733406468652429820719872405222314901682226020517405827946441073806647860508237441207952569115201721156645790109148817737672768282937318864353122670075484191432978684238930435962616312968458461256948452333423205937629650269271293060333723653878108126627028903038837298120400142286260587079349354846977963490531475691743121603241360240447645605759347280946599586934901029605893098266452407113874099698318217064105834548263039092680642730383249200870129779191973186518761998334052146598887715370076276440631256292802827190503630998703265521001901853624298603070706616774723767180618014008602667671381549966206943678327593996525231626887862215584690513886235843838216794334806100401824801481461045391146668200431497010717879357443422655199030607221255274879793081491589310022809635858116971781258954328417938930265423018044026505822625029777196876657165291890361187460996468760849141644383427621765969553206488079721224183126733429943871460203319877375502254708981483655095300299327482096940748273510245536352150385196456220607044573084959880934001766042848403579664651229313013734005725957727330756872373155910930641265924097421184332233761472175612678592647560976823981612221217811565659741850431854821052100351248495077176712519986255680854812358750053288694290077124857105782077535907542522652535479031818914181930863863042069776563729265311249064136900913615668432458693949523164951380741749083839492049552293790010401473663049984207993251020665178399706183932564566691032004069805547784966512796943235033353623595526363398401788926827865014801511823088236915962125922291729309578619432159945166713760960370517310039100643356765537337046787202054542464060392843882195933227248026580224809399557521950810756286805745274126950257411855476926147526475385233918650884316685214561294181591460754424362442510328205291097244002902338404887682745273558864702199595297708014657938733400609907708936305048066181670912144268565314862736755038103722181831027712667298870005791516949667290167416050523250010491566406933424632433962820067280836189328372547804876447901044137917118972114608974443851781621727289834854538360400861540084871137653514773815186931003893827278593155050303600149525105413062775820455928348994488035486771765005782264836544991664056012862692268725434102820897302243476664695591943088711079734552966633409320361999478059819172562335962820521950439461446876738655683040928788884439794971236655101505241121754594658143784799462546108510010450289394846426775183173854224302898421180107298656173527626423881927597996171488169016115974636399877063007581888871767211819122826116653421167676061532528456673259656354190573737031586215797074845178263179353245237160845165749487493856365946325418486125293021387161387073257091626564136112951341703295390994941210891291500710587076400387889311303252467230619710169886594508975493007977932007203253874090647891693606897951578206511374803779356485167998243173076142451508291317314578276843489628146216518168595435369777664881803449882211820853489727216274037596477252154543321938230786945440111451090367096904309847606049359972034072586701134352558304388480167950879117810266616475165851496382241282489060119443421244509066319751113763776673867222624048743604781216901875179897325430961780065901671315317236443843087968019758008325569410579366963087211884682654121247029138350443966085232207254647154866385234983371136604425843225708010822606344601151815602638036561939786625695666181683346308312330295707055689541349745138510327497997401928227907424163078094284622615005402578574246612247199430975323130515358122296812549957025571707563710560109178039719846882916295725591383400687641834687701005115442691158022525753584966692147099613325286990486688768488667047827964570493700989484946754953526498301796128962887678971558696110375577050847472750619990677386868214348405952688854576360866341133097110475007504521324465419121436644014655898444815279864698894194293435199851649234555068058391694069771168755866790459872907330014525815316216750559278348136795503278536220549523777643230844238488261975324766250742856557856768878160864272978976700320560208198301703374201511219279588139903097125913777925955200277547182545493513740872811655642061110080455200765044839121409419897100196818340791761117433723603395888038216238775656972251457413234437969574720615962608626775732384412586145564741683533528202820977718109482460704804167160299968175251424443883598088226173195678959546761799768996545081322137775766444053554219316846512544659499345924740678307991298585321779682730434571045319128235031391623890334928682705367378418433891128770672746835860537544376981605119975505818974635647554475609479815142673163560206603226803008397200744364825975472542796375699968669955129641931701923123819978294238074463646927681991538634027908512033901909155493528920183065072612543554661934463671521252961788063495062683960713172352332259545547297576135241872540620704286460148968719110731044508336165951703152969313744244590438825333343281443217474409760017435802358557617001716630832781144566756355542472166084842457790734020999966295521848319070247465207599442743531829894056871294896321235342980003048268390826157233359601974284152090536905074885021661950366576726339254388472665441467143629709278613430116336120986866210933560357575949350543001633914207994478455230054642115396473431310790076818530440540589411303797216238278190936779341490660535037733257600886440920744037614917384704247997291474137155459383842268074159755820028499078997797000668857077245023539158228721936888714448508961241486216201247969853722538957390852781523529845965292974858044123620419862469176334483041077008831386359480196056756898345755880271037421665908389875407363776265450549994976768070564290793341433882805910325648673524538331226780029616036710529902868087703255986012320145522061879849382238174245182374095016414483247112298153526598648661386382887703478376501885761080422900653080071708388317774923230554874930534268433913913207726150137101895956759941767754678417258412057684893774500297217005267007632252502028852830639476248119842862095735455526733666663350800612707482958431765462855148582999868967197546626710409114485291773502605837919650342708401830164037548924053014216991112332140436938491701169627507979230435113390509348604185368690497950328370799254908925190971098037766368532474949422715654113653686517391885322718917224324882475717415823456953405167098639735023986479138935059790816162217233911550991221375115567800164133404980454130257480410362733331348451321836360214411920368838577097398111199593146182503153910302639811918255029033002007790711596538844787739318666595446694171213545084508251853553365960731385745293845329658683042304121799060021839519922166073507284238975128609764555816009679233368513605736157723222850557012814686273705929414909876679665098315310844326274244748714661405679686409616025878125951136708311662794234992888497207119223538478939520895929394247296714238939304734204086630304519389319597863685521087924441592550263744729060596140817859718947315057355928081606601226848426887169616756053980356106757489246205138491035044509841879204217781526769374665239371575040920011709630687589262307751870088062086877440358569368460008168806766660097457136921569087438740551270092125243338003296176277356200226682773270572612514336233958687503044974594217439245450379510200080958730409754553899702073222470640892649466126912778486686358053623006298839424034643689597604174285139799752539907168488391996563385406056412530437244548786458017851914447254093027858522699797837700285372071850315703890131689808489646349510765138198660233210262633054200758400918172471614983194402548473463498221989068602185035202196059797906493008310968438461450210872586682777752204161702810861808409030337356246757001841169861712513542316504149672315891126394763285489205403081085332944685351013354170579073317963597463950920165179709719546055090863490295906706197118830545623739220705950771223458748819597053830557004910914843354347826348040548442705608094850410101021697563885297190724428399893700455319572509898172020640811442705136483774116476616751512388735929119768325417212090955246941546083293880583623577752573270376950489786047597816458236028276966234524554090582955542669873624950148895180764322717386502929207954187091138439566514605503477123592600353535421422769960489054653642348631472054209675001791214316098583834254739221199763776408358728573201679615769954951713457485823202082074995148326146331146753618936518174644305792301438480467441004944902279167845765208001450890979930291588175487809245533277857955574587240775842904839582983539106367454796961172132915452808167718459325486697999265515293595998282734665001050323973394087329670602549034201932475459905986588815877675106011781264513152140367460826959211878422580384057647249770689614475780315040236854285801576059169366605520689783126818263257800230550830007931207163994945091270739457150580838093515129526492097586675000502884797889003753242124186601669704601925910931926180625813942793652554138776228019644356157350596011933341747809664173329022002782770788635802700319783973089621293043475857150252831253935966767031088714092567387727164734757270228348341572252559792068241131543989616660267210252967010064719982329964226340733508405898406595205201711735298508626331780211274042248380517141095838567247295021881592046239825953656168080868903235979839671078935156177145212712805785858197873326935826154720595763533386197228855478034557105705158496748397523492912226474019585221418096903698645139266080308813399965284560673583248784275788958449907775578149954413521254358425749009517114158807987432856905094443623407992322863592736452839263387888865166654625449580987857922769905799699186021421156274476215419268365634980970498780004728232273971873527345945340127680422023766281004675792608395078280025872055254530388905652322831157142585121722185383883898246548232112575550308311114633473290026951235341008386704799459116387157352293668508735873402738547331930381714967315380197846106926514621870683491290863503389411065071620493280526645360055530646629914741691536061030871492467088232657288728266857126488507424210467414579422659688543004870155280867712316602060546314920456061041830138814252051054781149331713697444825464038960490718524591304604394460871315060291455984944021064614879887775220852254478616372995790954000779943950839682487514240160306164122789104837842011951677333336890794491165961010993120350254354804832115738525681480548618276764542917600323550217991953893678731312757875170287508602587097669159157939826389594554404953474809756173116868093130829870247887552532886174704287534309476456452833186021901200149322293276279811948848892067075432945388147835858262460716123882701101809811722296658403619886310508157689328278834044309167898063896260485050574480542071539778592210246624633319077528123547946708580128256046566924310773362720162124533316049574231380835352624581365855701006608528164652110324644197511538336438414293869872517140874045868355514919432733525169010975139386717877220738384703771886644500212047290614070350447183691480170524646349223596437028519509014115492778995801644007638095095876894809399889334212944505960284161657018753802426500132817534772388410542774734166042759087942640511176835817365891500992155362615068998871001856354450646106336540565747664590991581048968361685921130661358977059580074894130411036585174858635533625824902485014569391630397068617351811444150084673130588800521623842134530374969554451729752634693078526310345437751450463609901906977825849390081457691164984712633820175914932862515445697686814749419703253547155754960469926586609138235549781350192119611512520156481686715610041611984988043882481470461856449866439955385733558774302927105802140051559124359154488756149119109764848491720717533406625626208714304499382327092042384709539125886203984245082188821061541640757896640003264461464188972875906951340301453604587856934918692595132036320234837175283555386280442169622621334013085550733014829699233541859499886207957447355932191156756305908281739716800134373041598148465792380987735362125424145644975412992449343351646012199863813538374573511210969711315748392740067047728523794299903358360605003129681970304965537517722915349882231615999357959668346681278700215838017491616442557117426127215566353887682641332657754212706360385280931352564271037884009345945974271298163194848677687425355708730829380249835059288884436512161722500977273497435100012727324545385286957112197019980534414339710172225849977110081090002515737306697244137312560531182290407532870220282407572213242178633218382444418123641912899574680552736556618736706853055695533934929502119874120723698572508680456033593447093264261817443753779243306930716498164656517926742440871125881099014570528020124378367383723948636884216153625373285381953118369263705677671104478637696526311984944377769702130624666045432350173867002085777556903144543642027435919959688723280649842151278328578704835850174304590160548550524741662742352755311691767930129389991650494565037445417602104390088203321776138921987146170130386543478873157326395671028226810713703983839450461505357716396707172904101958900598617523927734412050772047328454442835034096032096603247433489978188000005707911479546035214293120060273452551920471098599472487425904708767844812251487612297630334378918312963653991941005831910466050903891908774543939296207964373810126531214149486508961391105856835249508037185322556732194101363393223389487161044724452969493719817706153610798200240316687686605898187980563783050018006135905897296200496524083902544940333731277182494193484405472987511606763197009089230715221998853181436298551107699798248885125350695331843465566444892454957379753470314959810535706559880991968372510780976302087480119991841603525241253291598226323031223339338611107731463316457014673013224151618948610781506456989271740728122195824763748740593774869367576286462480956749373871001345559764625449161191785314413999099501971507023580208477618381455398867490353268657607485474836294015092578308976705534752027349352111112558692168983296748029086809196521196801463031509444927911655153965830521259598283125629899574017366909869819303395837926652420829848465221617414646702546680647377424742775452353401717296601457650875905863513190796620423156296519742880108536857588595858548383450178648161715516962881869714988982010508995236773202481409015339671240549699303531428491014589772534684744371632232196013552885647267358140094187252651879476044653794412627530817790370435788399096644329122540584187999784084516397895850260153838736096727727596682590179618056220875582760289423982441296439032314915037834735079855865391584440221807452571608463131387707644665792162183551288969841661966711084745554616291671985730104594129002496807944177784874125250772046736809604218095532907340360742690316763228184540524323894243973465858448385016301163160136061500179197124094285963256757019457847542454197109798651075228098991406734378964036002395709338822128051907275789675250254880696714100425686186425712120384680550829350858509314629426665592329537970216794691399266097880556736105623961971531052796786500632873438046997462150234594662661429078431924235192239482445065264135985793658280804792430454397793302637370429907287033785896747859949106399037082896354199391987595219207911970288299435183304020023839720817427739061175463805681382225341543873500480227023618346550311749819647005928207689655832745449265525310985720060273681456813987913039345681211907030266378937178341386804982088554695819684946100016605535590815604338984141342220588382992529083945136980442398718126605103450527096235187188223965156460003815259858220926898256434592946863422783266486287210131056687862937123486220903188282521184614531331055955961445058304571479455024501921213056111329366106063554414206787638286588933921088663843569833235911611689220918097076889044431426468275679431840969981709895889327313122176176262507168519475568012627357575758680677610880295615176643110005341201987878975611315956616408344510946135062363441793842611874917311903973941477601092517169603361384823630863406537704583975402916067082941721241549508486985988539364767379332678026166374882281472814398366201396893974067158833199698220146837753785618985393093681090250152721596941708340293855177802191040460071762816134015574542946429381553217159408502866329426840263791275426512211691782580968873346347211845454316811886275022552619052630620369332860915154280544905329268628503752222543748031617225905824419885975200959981531699505853253992267500839544905191888013035391127405184166600580094184143810558789094973888732907486360522210138433946129013475281438283993883285764574040135613741436704008807683613339989758141418790271891954400380480781387517788055146495080374452251776356999398274791211759933899126671917038866286475050830270730837011321395557980023799174945041426793384486000388672488658531237970699521725954040998489615302908560191088882004130137970773940623032087119904385074434123893237506339082842034682590860580717253594180130621143509719807724571055480158054475922019173689868065734849047392126877559705373285400103080248771549983085584583832933235256497267837778645693863756057141514665344802228637174482083564232568992266689368207185808978779376825322934356700261302899907411922577661900522299329430858887917797300583101689963943231891630445513612170558697599298446446198632063932146744526488000397930515986758406181399125745173882687749900429185394637582580695318763733364603530867143933731360598372418398595215644752477180078791142507972121964412274321081640304158463276888359639414094848637884590303477055015732472521419090983375325040672350482619862044081163937023235867698470842369444316829223690920501508482067894475309493156301117011545914492226461110548992940912754998376275168586152061568412246763903162087016780094137914880233751976532343478861784532853433758023866291084753555674678038596607791841799403345625571501576147014100657848576456571186585322971736399098277405946695532147584318294995832348152562199084078455029034808907990973740260297965818324517228106108162625716442248450089422734636839136683501599293602599045273650093867393937506619104733491250896968982026017744150794598450872078064545289964435150109384402391751575689716624337436434534336436451226445256144000416735115540282823235756083642869108362341862217674770489018511157617409918299945983402799692464904899450354490387408612574754958713643499575300717660954950136286617302593993075423746814405435422955418307722498251293962968018080103243658049439186561412559183555590650720429402011809320988398342464892084483345896498546713905730518721095051348260519795822933327245922626211267919945045336094879385514838911948721899605102249882660000203611605592536727069400704780755211628779946684097588887845147635574805473400122577510992765786587861098204972579832442163588964809675147540985934003480498406937862825030880136372534565166215414292511808170147970524024636936094151992324568639685026107013883126507447763184923772185366247464211745947821044962543756017918721068159309982923381633074639869393417682373666105418373826549536567173247313203993314640366211104578174150760302309778902173659145646632688181100504952883198645253216989958550364329921187794786954001820071849915662409792742049242211617085271467965953031719224025017390066237008813981156681877979636202184697977173412742562696199181147006777277630075447397233984198050046956496665829052300369991529669210994032472262623878063161958701997979764906105415290508136194252441138085938958594570296040817004074530466097089780018727782229143018471565585405200592227880340043877965456882637875908863324698501355715583871130588930960640526384693167993409565928655695082749074938063867591078866035351899089019256612588206058229859639109103676399050331360961485262577691880581472267766477331006238190692016077682980103489942763663934137039607800298238195491094158237749483724553736124234562736405951521167385429329026542294939024109237120079630532523734001088791929614333374478638250276195838399186538418971362843022281794223947548000772212464993760250292892950724365563953576877337692949860450798437655282550264191668891756181514795650680203479144103661257685759057930946186167623302228909401022408505880919152226521951807865181319579135706165350648776412789460371403219454559334328680415699128337864068624807651754655202032613510826236316510780567732605576214040240786456110271604678311869395459117966395516269109457904509245626542307210928515329893014987079358836849924580559497043066498527467633468743679194847090340120070777149610568377961715313067965883607096258241475348611052994600923535777609204268922801901765370339169820495360536776416619923768098150481723826727117997358400163184938089701264649578888579093810763194168830889225156514680629511983143245211283014634816821800029122892423767208002695499862896780765402071838019862140452136174836802847014159138093559555841092937306864273994697181598693888668188328566119070549000220283035465471574079849385599790539633566696203455660827999704641253158901601629462999451584975325185079557932632200685694053337676169194054897297227235064141304211651423439448528942873785943694461659442859983080492068351614825504237913174602403352178278137295708830241286664507539504956247440945095711312413976041330429759125039359558541950276831664907622242123506571507896030218833229177553736785403606674750411814048567341231292093960308898767231614218630159254721500560796400604455568296766966846770072833265815161765963374897480524776140872677893494808601661820096410219585391447131213443557571744345781262012993538950151033409736104543561506718319264748468614604478602740042081089501991465937435334938528540230983137963027451080013072179193175481677904549566571573820213470080906568075579439374298865072808193693317272456489734105230514045804796210713670978397797715375491762867252823066479807564372197700973324395882797616626229016102271277824151629546031933032973547480215648910252760100561628367071056412807787747822431398416097972160525977092183842601488401759520639043391802651762651492040031483851731914637381830735289580059530566864381152685380605441432846719876801198225892652665101250711473243127338471358978132486564917926377076128103078590877146441092504035045232903958442943600678659054774008920693853946303087198953224347635911395728649868245759720787948316378872675483975294525710528099063922936094790681987003525748247709364072429762921003510975416815593370871720989215169327267519973667284183100847014091845854880296122543513084093901832353156057290866026573242159720270948028657687396034824982675034427887384569989925675136172813987938529613784722406837591588744047797865844591491490810732748856530995316203790884959073744767563119766198676147543477911956979455451956790891356417627359098683400167931437436052423857349655761405404707515074980895785090006404728772014319762114132774624039682238591668112497590746509752926129593470602991098574192597726970204560730066754817161370385676978179958868706822923097418697811267391932730973986043104429416038884448855906090147402091521437397419944381208847450054141727072118445724538578128681879028005499775079810690738270695940001574382307797769479418572028741149043531994465780822862313537965097388931020188771668734526559636989633051362980282442250275852812810470870303192900671767471008294671708526791470291109849244986827074142803055759255347314301497730310178952274086687280697423209784952837160108906348700317082046021634602515725601878236436368313761343830096581204148462408323531448979372359173382045623517781712589672502903072381663009837567458916099494247913073125710113787819456294967519009569655144000445226709781233960302487400486943699694106311273532422189485639841719490973029503785303037884132558762322810157462055824146841017684929500422424384638864020923623236034914944215871039886212907491425064225348053144312625407931615010207264157475143138614814171479655454546953147040257265887340039971330076091300378507471853080920565999473884235003090319650045093895766324599981764967451935511840024602998543845674292129363597552936540487511584960509958060482295255236009100221546586494677160046853354269962124767161055277451986316055410995541053427599921973852471961456681332405410557419314122013113754552147040443779844773824228019323645903671058338160888425819082948170361752621389533505672103965499796761416787361813246179724133279724968956890682114641994028502733659452714457595555738556025211159637759231467294931343588387208950844113541819321207406846226825034531674553730723196293610076635867703519577538161849800126315900569845756406742801339848246967753095260354586391900986571395625232130868377496847844075716272545632548949105908141140804286868914187698067734160843958477007122193346445938645712261821287145965802037434762345412764394885265489359992076175427067810960814657198227210239995201005090474921712482603641610282961854524463170295828005940117831206013382953014830836701482011364454038948170545103288262026127222093069943093679364321564236984029603025914125708630496447551311557161092458619386953763593497507812340414827439201676355220813927482867185037859239694244131972045679608480919899393847424915153471394693599782830011462348155487279303540780227883974094569255107874071847916710243135539661941124190268364899635915715622261826501717150032738149883669580676594377858410885826640828808223003807767924751011034371783444872277573524473321343046721710049675216792678471685667927346755549126575514490146277352076774095300226511773885887254797371503120036185513153996740387068096803739969674326318719051794423236049349235535969566982152258987408304914269211864356979412781038896433149371650048418789355060640718500212533409929428466630898078452016556962772798333744356733191240896893430685565989394520185338054512789642043831700807804893832588756708358804221077023166260729731395371057790941033750519015334489632237400232929786974424259569387866513663128705772285916654898180247391958035148195808309912240499339448873564899650965676415834327301711247642917413973066726951938276840877221160383667906730832679107064269423644958779042102938370530611088576331434284083892245273661262515588707815509870186493390278748436711167902075911594920057484842647723179230147480477944710843196748567431510021903166666465742971181418009774180894160612024243422100287314884309861841780809595965535524792666178968881594278987764867649215286102350271468389484655000859205746054316802987475888434334760107434491247736876458828546499431531799349618192034905321295256561688633384360448583312403988233960278510779056245479359327622316550088678018196059281740337528002498630762187741375909401193850296659828616689862483672774584588038307656468068391853770366267964938885857684849122150294194362680214729830469640430208232337771500861653500561694142597275964271371020848077564573563584179356379611617660175491141804064770688072150519429365826703142611359284782343895167373628779012796197374764886164346721170307448835790922370730144134351653926504189989004747445159808648133920053140025803981179228031409391491637639378807369417728190047011258660009330325586692085346288424268283955874985077055931315519178710789821038845211088453053311162951542013066380635562337349370143067387265228530792473022819037283802074057032492457594636847358356833267870760098458819514000617279257106587107349028098235083127614483762135746838646720111890144053533628614164385938596626103587556601252269680317999994807258695755572857837768820563454410595323187451253275693363522737555043448590406105782477315083690288550190007245563058980462174122999730060715724789505224596766565245411966089134280335109095036547186661926950115074454322475079692832194359875858236595703376863375598572327561611284924107495568107805404996142342007745423561283292602914949607552979081564566063013423402724746961742980021025159775526801593861744973614827239985845143533569587506359915174810209972488504659577920302369497537213023872058766466879001175234850127690730729319097966108525568662926777144765699363770327188289156308778382844819538447333293419199354615092559028435481477151966469855382529323802737005181780594777066376270287390771502324713298681389199211096011799253832309017439823091009808904100984826870834384397301984370036292730766729824984763201170862215915044885895467033242958479337724137811823359021064029518662903775497939569087848065951133518444876567735952562940078544237489973815251804491575753921639770517974500815004934061400928011076868994583272535112882527258698143055250264546198813729308078598157782892891065788412134710170379859761047783524075048498525003923568514785957514847101089295869285466218919064816748514552301113699474669444759478300345331090799411961207660410141518131023267967218777256998176606412165985663854956653513530017099711092378432823435273445740033688425708329774171628978728934738277927504716232455000053880176941374460268632327354055128360398931305774998626800926658336996691289230006668974221719355608854442294114132297361235566357442099736282689132257102427465034419825275697484069427658415231959690214342812358081378705899480955124867629433832895750173654861693584072164234449628184788840906069706198774930460861193913556024088022277554731698503374177567824209623221739092196146721055167189720566031742189097513483129487787118163026695464015031722998658200026933097189054024805615911632360659650748083039659462937153840304825474464935542793627179009678838005090999564741759007254222121666063006129567571773201945058000796199205568657316342091005360025999192334323711550617618789871455599303569557524920443069010396018829114612615895620024163052973835066417890975847728207617124194788667941590594641450313780436012162966171901496645814149349406955527196497671946073260406788724085891398401334896165747616994179903950840406601105256142739617440607537665156613957508590053948247492882643820436922218504482589295179709547939950122579028723893744189420351983408078104575037935318735811485005039997353825969543265537238186315987378918892980547132247244514476427962744984883612383288194887697483943131662747134695895048105477864237041535361112358976833566098268026004996539283576351967228009769976554309654641029265547853244062172488528025457789475404405725355487907553856935712387652548567243021216163744319535546877870561963453736410670310015303188640275816165107887364987755487193643156448897927524460863813428629423646569858972714522008950763167734628432569850697338414933539368835648880892703776101751454911282532870211354407216803171516586287449957255235020464576172727112865217640636524017885586555987931075320526112923307307743521985161269736290533812865662075911022647621888707981699669874599376317842616112396681604879247860108937607652199551938491001409469185153079256213382728804699752350753914980097185028394620131148369744597940960319853961734925515801996318586638691567348731106920681526350862750996982773070605670773130821613515761051565147675357392150567145384862744654591964723136562390153716755737059602074498479684469075774240595671357957248199257025478842271996214165002599977826130186525659630831824129290882523583034633164104153659833545308133002590611621681254854563776545673490396673216490146876203102480906417505478513023628799241176521651050425849396786872081316835408624322294990855226174984200815434156624064818207513956513472661416774323410326779930331418016406372130743401213038260330444084785182154015292610869902870639571659741614758914834886475035262200125850443762077768819108116183450314195839389041923086763826288600855341524425063704663659168354894412349292061968631148592779158076737794992599626116485967992392175887871065035166653859910519384777132870972399749931887914971802376494545806118480114091350665133279674634922971640041047904711566231290334928203272148595865588812385410243554653121009332197092777274878214254638317229795746984766803505071507479711439065703751684096729061667100845069381812882584011699127475285163506537438024894216237635294911044158323265808186495920686581101218044299002236643268596095830390469112760943949897872797051636761476672842751622337480927359593304547859298471332198293526048016398372687272167668860042137387542925653820375784652359475307913937102428997466191670561218810648839964547297536609104146102960413636677702283400584504839508396784275636461912027130518626517914074487162467823840978152802134502483330827197584589633908761656237357072832626997259420783960711454603601990508524422684453187872005300555242242882698779123242859319805072214603402556516707514625570574646865042780482915430820439291055236536400954391032743093491705252582239516567428552478674504542116874639584111339003669914819006083709795480649376802843251125775112796553608545053517458005169990777061318017725481908202030697734443528469635675967610425271611643982383910530239625518755802223244449949867167719905746578048636711903493182364499034915691708994211369507402198662456778636475144066823739019869806043533926245219907344766100939792639940933808812154548142032987793341885868568345713854836713452999778432453070814387910619953492015995988362472017773153962937455503160569223301188504128818379849724282923157664003179165019916530555896122120470122411901605908040544977242288269375197309125121085873303447550230276725120430283879716126107506125884487956883918021075725095127993723782004276942396559395597814209443749902619816246523623242483957398861005453854200941844120675148248489095358277683259319878845227609483491611232217222732399972761822812965708375939419411235319119667939940886001352310019818205743980366869502879137474858585901687867752625915621541898981949771670021849006530574015413905354057019712074848084271461327215765944788145694122575003521929437064242827830196475508368529772353380336223744099369112638665302847608129349459678520872955505972588354002963998453221161281936754082901715932908111887120177760212089887652798717032039021202247333207836027629133090580076609709642451650243784664008841806337962857785048783734230452553518361228181942167020538007752406520399137690956191387499474548431117860475864043138516404148694839691574391390615060679749579423983882021574464303227573395994126051163947602238022682957666458662167456732433349604466434534069209129492131827553689761529783898174688822435034181815445534976365896352539943629476951677932450213241135982751736825273588621351260317269813727854481367568799009651444743522947251785329861978856013829348278355117953902655797276801005706742650215106911561587046628245457552671556674233047433025403832339248568700378190186054877179647908869346239303692320562341085764010537199267895960280713823715828153581760753295344722432609375984993856905755588794114527060976583149915953593071499109325882453921900377554572660293148084941418883319257793452746184964478421472034037561478109213915619502349007524757660631922525251709833323755893155697366369963843455834758545318013774924048006299697748328289793313428444035416518535372799334332599784989995505086135279712523356137412774851425533490808856832786198060268705716871838556055282892398227239435185798214433064588494211661445679977098450710689542351905379998295507254600414076646683834303429205103753133689778106952589156500561307726983058498015411593851743794122483067847782368924744508270333195283630142833449101387032263883599349128165041233078464242153060318684498920705083817046067311436402369224223709775111467836824549769389252092837469641286651280152734592082325362315767510608687647622024837874004757762136825606400055950900297063852334776080944074953967479351281134316052594471505174382594938371406189163210193384347942917313951552596281567035674828327981987354863471729137228285070773013447983519813834648223573893764894206022791536596186813817665290307343430372543965282897177410719367742548280602800074433414901637707449656309566732632586042782405969431033274428063116478491481526702424162069866015486924423180867448763731930028808055841693865686694777112009142311629826012817281640748166057003538684100246553013077028373674752668461588173579725725487690955267169439735891154879018373110172458885493839571505145790251709085599190383999424154711074680560404981071285311331389961239079578952146976631549763847696402131333397525325272172897002163713004833448097213378863714622189357097455911853673873162615538467402914810196895042315486654957873719140488979378930052180068750254304814484680675263741659726781447541198129135841393655187059693869819976911550125236417507944731603298670057756570089317416938987204327479366228567068513417892068096605552329658553585456049759128854164128410865459924261893369282145872535902378357695735689550574931093944854704436220140365169206287696231147690662467061618979025518748614852776363873583975530018795946180269417954960331370469559415265098606602218595846413650455800312036216273857771349422951503405247005329182900403068060293854821216234882581678550640872468965111796948186797534107420253725278053254633428675264454408447197689913976301084453292809906192683286737495831727580588532456267617719908373387216851784875353764961962297821652764821726910638138141632762637615616641206678296520704384134987521338726251976249160999659172582403059659167228022394793534926449700012491926368346099261831110089548880814696720737141991725696807068394646572611819369414294516965289819283645664996178860029310374917058274607731898113024105472181063895930214926707933700913422690986987572328245997198655308156176895640008730500768919916633641141468996204494667890230068707928794472834933895885093516933023805918634266187307675546820758944397864920540909549299794999419364235802953847313964294541665748103383131152284586447039490720511066985404901322026918824754979592088591768445071011135799180118737421189777584963606250259734344157263132346782336197294024855407974187993124129171734345844650396640314390577741789865644520030861505040411229674712480840601488112192825892497983968774089426949227097870287850068925858044608014134933314623851058481426538285824709913506096257522135158724670371154390285300034196972210063775490020988053696949616238428810384619422815814168417810477537313775940348076610081152749082489022334083030760985360609176418931082176920670172816683308440527127898414769851715715739640912940899493650688078560132489687697534988090963724249083102109002524165098680356743925863415924237205847503153794382685879357494976289804373180340427558884939267756665440154959715770147619091054387277003027796488370950294300333891301612676613597911427783440289154710963665890096542066705842097996887927221281114304709388732414103580115358043276863546195158367050329079712326506211744432763458923676697676482695357996595756361979950619737655341907378453385659922871543046863643336115158939621390143446892359443069846724703575845921995227938179747735654758584227200782565617415038927824162822075794363976460859263930328634199402857675440346941625956659189197274809682174573906616788865252403490121448048024875155171974575783416967774770914520454229279922478957778321950311077528722520296335018183864888485673201164349714905036370348166651156957947823376874936051671224081986048324781680451203976108764305622842248880488117624708763187931227439161626985215202095364680688664969161315451898455983436955217525908888764469766187148642533637637895995433950599271573585126423465811570192487640813816020617098700726768877882343991160618760099612082692128693438606131553835046406216071307983667818446128270662235245607724299733682191971463642904597578601904232099008605848240216297211022175912414015167372301901827054845717027930184357501204653370880877455707000059119396009330079280541578212518726820024117368508186234198927550959222118615682446423354824531984586466848968207877749209334736388631336777796032494511193036892298973565096100719944814413687925298591605844699412226391305033949488701702535390600867099313306670605494308851470798681310583621921507970041898933367034822724235229228746277624059032071700057426249888394782605587409422244598378239864855827853210622697607113090784653479727902990531916962343804375341994162393068023281059704574760795726739747362620878237886552522639449718113489343130431972812371831028723549361259113923950066785383606404934632105778582053793278176227322265395264317403067402769961309205740641506833956052907104245433727377945058180467274561091876833810284897713360943144918147948664074729172161502202214504638757273384797712223825027170025721470571746069275647109704128989028865165221063988450004944012620766565073932129107537944267873080344295212998714318896688646934259336260676824416465687190582564123809054645520734281710707459545694713534728783827636854790458435952394705686898548246848394826103081530634604708888302081521581166534293984947965261215206349949185173009059851402240744196054286171223155924687264338650594596447624306566273314290872530569920592964316157083830841425984065011592260614754090572163591502166607162677603480549536583986405795747480620006294771030663760118529118535438465228684570612184517235902031813927153297332312226375622676182930319029129797655195804026017076497654991318208301048676713554873550482749831893775906316410112959021098594927379876006760071326692727652332690393655053776457548877031999256343256922803683575725783459724426132990005217204076002315687154894576790174582530822501032349808809543639290808506967667057332896441261658807167768516163757577826373356835315485943685681722990253455659859138581482928262558385043128105317728710257321810680547500320185930276672183476265492956016629323105641363379613821806978268534724881535866602525462573236529059065039926628129804943096493105420891695654479602744790493732287969910089458754405783352503890045473062132607015680048219611427596511868455365271374266005983520823230088604900119821647286546673420043989760700148957513024295478769123838889869499515268093184025643120088933324148824820573065747304649091146526067855310241180360315773472078006695238836997429443067221147089262743920014067064451330748828074817928852344133235761099018193873957301651114052762197809041966703835161725749787248593229264458949133253097351564649334050672461863739229826875202482874367461730224152565351611381469552934485963054156115422813175771292305168154190175581310756195736621459448315449845813662579945505107415453536609092524601849062260096092199468272707166163939733721803791539715172344901040069475489312138600124378899950495425182408625004405469950607191759235971157803283370889470475717969897984389507082535849709065229488075596989723510020379914317566092866463386758420470502830325187946797420706619398002732259707345440277415302429433191597186988452666730968658501587210656996747824086957851181076041938019888811584275168909609152009363417858676146833583187143009310104607298156277238140432832372338893509812741683114425874188374162182583903381575272704011316394548050303288459792244137589513018171474535403891257056976612193338043485157280003208548294443247812065121538698984563969612930624370236819472787596502103299504951282672065828826772102713732767973486678429279031856428730141338158675267414672652691560378760831416747657980051277434506133115429363004659100586272544109963633328885974964578065479652372788887172755059917453644058547242064135677461533728801972528932451837245715660817192801008264644693466749374567220301970232811249183922136404109996421900500609484020919939622961505497828288354919442621391272517761839536869543888381697065212474768204958243140750979968263270580779060815248940510608890951515901222255885448652758021029720193771026903354755685469550025866897408488734823316650733407112169575159591048405257279978074149293489410804887644259952034007653764411105903516891920314184891503627314130522529392067468683747609984150346066116319072452739044564232615751174026052359653265259253128430623113746910555961903189017476830844679963319489867693626550721117000998413310839679539673077745330009885788617718358154565736587132429823013697121959721553777533730458820716529893857087393379225598333797633081334059627510328869408902023644364178234499078101409064260110200269658158467145886359539260894192221446866718901802524016213329358096236143625192372992303522629759294144744426036469952137567549557986076523611604936900487497153796328556598357178686803827330057133437989384532134172749928934177651377381103701487295253902328072030569482381522157829076155984555266091386362061416020335153475445820781506853031156250915082729260230440487626852251330836389649748117191374072622770337904156177437884505296685094247801215014779769267704106310221473523532662313056541085391373438163939600392077830438149171299284003119764958627048882108822390809964108516555503066724463327732963115030250168338161843953587875127336794320688533830585568833964765629179102415350877681534710710230325009280083099590788111407456274091497037735565379401666045655018400849092469254521912113786921243441806563595863298143283857386679933122647531264602090476108422135660002117617794170362052250409699257402473166322557590031413967734033672372901399706413171664340080951060146533338786367311278855816054107352606314608654437300849975949477820414939025066901261458674393593534200333259329172055535565087269384203411437444571561022184066534671087853645738336952379373649654148220216168994442660128255171627519919615849194870604910450855414769290942236213148901760897394448804075591735711940614255299218200678483255519334386978817467363104915624120198533523954290809723249269206622944824354287626733012684554753420066661451759522053706102434555635485106791286955495549430520558362956897168414198252706982290127849567685779073046006252910651325549628352472279276237590229003127026467736454943351910898895684411008700624420693660845620426438344854387312508312249128124728769880715016971933719738294580575755865778314476546931680261317736500642447971465500590730153097071895783149589876211030879063110468873203207877965184369157243639891257329417605269257621262712202362817610105715720795510788226950613353352925077296330685851113430734172743227537327109753191459619602558117560662896808021292943782673193111683812904764685872293979127930635559351328471656322211750164122886836433526486054149154542120284122740009389627030073682264282761236354255324275151811504620337021408554177241539467062318177327527438629372448812230071234050210793952802183649791216659755406162070750320822910137412721977664051162979495913586496035433241499924828326042311307310937061437350362143674330772649576885408354359994095085966767252262194598012623059491840079665474729397395070071607694070201990035791880998293973359447540202738590909844139362505512695090572618171948916085608989466962680732066461611173517873450757618994257514324138544802675948868363401890035216157195356717029248525827865944201722464988491105476017822135529931510170706916668169147175722145314909086427129176102553999103945569896548802361549153769986345905251978187417784619569427261686483653868802212250562571847389043114605422826606489471080833239986715840286284585744135264140984719216491426814135541039280577579131259946291647485172440709168346158207669088303746527648112575011462799645500520678064803092140160340633333813118895215439976391558745398628219444281850308146674090285773729335832152477335769267811845033563930710654901280408816310010905322554820882557335766943699189229900747392759929450964106845305684874402417552802662892357482511331456510366604922134778212606098617813751249840563425197392482773006399564962009114824183736808464261440057480125925697821202029538399163758301452185691918006551039057828381618958741387982771797297294737230251023643139427136200859337915013429522153056785020603174208444683060095765581983877523918568876297574036164445407083170416281629347027778784673798879173741309025412676831869191916142671679179687133125749880914328133438827560993520664367177117397715305664108649959041235658719037751501364018849631918928377454493115674729087997865364579137850759203217954243160578679705714122942883885048739635934786279612347067389914599421505635937207719348904333242705073970858543516265258601961791515759384430628604354974618820371970729352217804988787044544100121905750147985927505749915575890186606748389342693891702183550853212117461930578712255665541124215211380313127526704834340996341617658798842149343209069591130425344926420162778841323333660205057368454368608063778040872529008010117030105526014506263443920648707404173019780914061030868421129572778867624198674184918598423411420281577119298593755556251941005453471396031166425233168433675559652245541398831993985616768086947027883517354485234159047941400683725411366771816218192299400628806631946731537035788368110939797301884107034490350455493185596029927088701892367770288579799035774621058779196367473322795829284594270130039319834469738900211744927456061960662521125387996877046900635856226691718683152718361911702030961207045779260618035136547886718865379514455570853874797567254591057345004236284308850554175255639568511822216705326012985669822165897252695220326397380793775307354966114944108285215331964005348652342141740453138964521181454702316936969405875210403806180882427213920544532361389324853460850318911227528007996033345056785179948444335970615227630086516812656917398020792348783458431964840500134231878257590433282041908631426091083822839649730656796508375036927804532679231015952253719381104144401144687879528566640702501878939265409413086859620364628932706367743244022431413233504962474869209553544179398690212815149107022886368470302407498718280795085937800961722048565752196565467310136108531822358198843734932972390571886787690201380897032774943200850580197632104409377188556831308248817551938531778476865079535381279909656072028020354655282046623187338882184923047806957651923707086549759362328584325638668935813292109342709825283667678727764068659026930631506307547913494036664137651549163024850566110320598796563601120442172089039435488764421317508263266364727443239189829317409227193135232473123136006639207210289872481155648503862613468235819530874044518530857161367120705265879881356186315443327476086907627051433238829232802703551366349715224112785505484475889054855506453411482078673252554935497098745245642955073743978426688215741591268169248002849386528638703432424081180852832192497651043645737271758621240699712666685725851114734785292218637359499644818732355980596092313853840552997552741189286719048496111324065902929452943437396276397178263107020028349416178666647215296095080062031524816284015364831108516139866233040811025562287664072429051598822764731281167025998215353592759815671686310000060812430715467579590668552671351525367561914117879022045074488884018956679138735529896289194029448587671897427936945737660160091590676185425472405958177407000983083878315013922392189065013909097562437777373577382750934232254979629098063006711744208043135707303768016162302156856967287322591932110852542352162442139347172509897025808262541864925935272612403749841194228531885111377714215658747148565648516139796999541800993861465050437276910282799079104627903291649789919176623629032864776331782248068361751012257311864693949501926698482116870351721256986212247749265692776073039142214572408722644201831987641516400165563762314326583614844307945697084497401858283186356137494387970890938404366909276326665720655029785400667104904898302601528022789547870079209921208254750723762028568593993201600104861560435267744160521630249716325385497063178437168507740754915184904941693000272264403559491495043496178703065175466132725922054139852900127580672040958669648329290801986139355708219884026017699303762528564326793227955942557635817506531431174803590820000722308789829498243366805898797370557036659245464837838294314124268909683569030064035392904415791638576867826157669977729665440459490667234660212055507499160980720197523581857249587805617547541437095746701131940862756164827954788095566329068520216159963120643552197386338927244434667436850609029456771489939613589122866848968393907977160350723124307124871959103061744192239935330818744701551521380634015857368355261619315816204640064775858968388597047918402245159340185060152092856764034786774981604530050203006361527712519261432942006526708215357113869399529346582688266659108372973555775486315676822537529761403396468529855015643162314402055063598551188451516736974186754856539329952744510692630971342730105676880048786802241635466357719142547303365211038281177606920922816872726896450256398161141725685381741031727819284985003724406072280478068513002184054825068250996131584078088026512161185598270619600492579684395445419494908537968051042456299893244005261338615095299461351957546747583076301867863321431759591358632721732013013025120803629777727381724327026566579181121304520687873047476727957282806750809491766037719737093774871770965316587167058683166273145922022319728412504629107921261032188295383946881667864858171983943468864206582263704756853395162495251092391897654131312585677601230937860100329070719552061117989303031927766155487070081595955910516233614727307431796398147392988888592030293432004694525876668065988942580200093567993029237580508047281113636061923341287503904045711709913760376118540617652038831269785366043851625151335170771612283735219744701423457151963636601921515601123500542703351888240287746670111037169264295367037459958014876292009683236964143962400268948914656722683414921974283346382223374171789495038481500541032285269195852990107178572929562401892118361221332863719417457704347278332892577601586949195921472738452506878982296573830175846857422970362009047212429080155591841415148047445728892217901701616207499666670428164481912783374740550445008974105304726130269350175892761046931069467287053967613939879368695369169015132990364636176921886275495281016311093477903860249573328951290506714429592159906080302904326685660130083880978373313915515140458978461546323545834522716749996541435707325654352583380542902537893005932774631590432333181280778639351732160810328778935136724140486280209928065312728618919979646956708085682165400348580657227840010790740261661489161841496832906083036681572758723849360282008444514378066314862240464265454118710789159792240786742523744136850229346895466487139965260799630552111786052662670655308196827716811412839998286095061228835790663897197708414684282894573298781495213381276452618462044574663416131281784214773071446345506096644604313528961648587215791460780092942760324778697068314672188042931632982660333520904501506673178520409569500718110365037310922363633198311073148440019435269316614837789937961525197180539680768293076238903775897040705582709294670658065579837498611603040355195888292559903369039293004802980631850496764341517497528590517021340268334087281147891442181384438405205300625301255518100274429014437351677950448641770570047685308412550751850669060695538370558503437724072658733805291963590354897104933041080488342821410964651961203130812916792793822338027176930489307905945012331455960845795764153558769927284502448454111409158629516401098569369263469170377854291868983226524215375463386538258682142401681813841950032995116284143082138693996047371670183526003121498204451677722597663014373343898707084844317131735515441460682471354759184704177336811737483687786679257776244456083547117967744446674184031067481929730551146765637672895470543858257783853885875465870880339501362188637174868477928685505441930555976649650481501446854247645373801366270030730634037559228079867941010858353453700274364869527256050713968707327340165987399309439003871086901281933405442479700526213292009293983009486340342786391890245635467838706183298433555563734495085986270328098445489969234522123023501150229589469497224060839673934308475888971266730108116028772391226651918520682778504478450288039164849224984068603758962301823390800337697267727651202146737260483613824759531786185986317812588562760418912722279374225923219797674407617441679247084252617440069296227088496851166806551478736205732597591649263210979002118380244600238105914006093708805710994810833221635360009955947206886086913758256457078665333968352754200815280166099083172231496459054441637813174395649792784694635066322380200094787911446555012768927911790785916287658185150362376731166015329314309287517587473098167399973723505780116884655354927673040647711246057467981105429415808274488186860775491131693691146089708654849558499392137432994995469656540038689435886794325811643753736218665960971145299719702024676629994093436590813067408716243989170800371450754795767651437265797091092642634742530818971328506704779717289993250378346337529999182799672647668984075561862793378590320492367430141900239282009142317313800924362676595885779920352104698420507913954972601300648289088933074537547195877672887766424919891211970443039842368298632432744894633680950593804870035452386692419925189829869605402437836304352110052753720540550139681021558098789812588102036130077569691400189992579542222360035215102610825352974084907026086450914129179960490260891344403456322278669300388573436889837583173994938356412715100623854422048651642058380926579296359536329671252833707379407834989662763055696604307796424802693572762287578177171312361872164240596739611148019804926181528438494725199368784131491010030285199760546845070590590140036009143695189143721008388513983500977257670664250865940434616575135443384189654644352582614964143577204444272586951598818023243522098409426366637323688620655150102103051989240958166750253588064675076484894021930383287092932829915209587942028052856593657021403296733875581700977447423479347141069077191249969937391894850933821447747473147532600864396857908054812536745619647178561863629841164907989990202028170869889387391475800891953507332177327539298325664137073349689125254137147966859974048162899897107822656178413751858568601625023784243395694004570064449209681092287151870751823522892077215277899810976829014574550827219658705188142253245740746853608697784373896660045056606698854931377551802995217457587678987363928006271686257715328458715530398451731609635454606572371450673377865600772082264948846516877592824573876677645010387533629812329520493763852180098147496169349346854869963721200326960564320926518654883492834548947912051556596006438421762082148716574017479807366179442081770967196793253925201817645657664704823027239671739554211348033356119366389155948101694416982407721530565520320325313208061515336212612991058875045814091509881145719107857276211653216583180142770125474614810483780262221534161641912711935324809104352207275264683270530863317358089586464597181034380624390831835229847129818537136058468233786510575809446461093712857540774061068523394185379236021366183603866350722226333309933745943925128337470546263500339583136091097560103967518596503467835184569091086863820667316869844227012142962789130268170012200339427882724359224949145462940487348113295116026575410810992168296718510440022363093505380268269648482628524445109388053649555367723722887080308627430124244946608672441862302869226688063889943522593657543720756649067533729741007582130079304286793756711362496046132007508655176394874910688742876253712887398713502418859050697576044738410044189724980897232671821138601863387337269032674286096407584363111265794333545143148172059568198695636148547869205353909345761975313309892065174392268392941058592491541320033143528248697259931101318373837461299827916434074437818049054606396736211832658098015108449913134798807559717253231816878470065899786399229853376825659281108317644123946118076398158337700100608916103676186134543519896210059657458810520135218213784164707490147865621182786340864946323245151486224917904482029191655893069774001847334225693039803688188151486325682383346844433717934894076309941479342428247148945639332665520881863449462612528406524974462246026531753981026997032171948289104913738146288683226601961737380791254311811680185233586519542548238224518620036389627335015280225765464432736169755500329636502256379772675647982143808030666620868208075489582076145390380122995656126275160087245130382026133562897683256924979791373005040571990494569690860540700023246953829511176701839899040796136269389560210930926537103739622558820000681224954843204574241306903875993501480059895066537769517102163659986365666008362794148942380618895262714249789355821387088802859328031579950672661819293325438879363132354677808879122270281765358504730174757005749445558242441245962230095595275016559904099506659944127839864206828022412853136595357615013182992286746558687414079241203855280658715060317743414291792261849405681778272282082913119525504847897522848773530707218858778779528726777290805177872444299503720101592979723115559742298215185773107344708951662254959554939806171307007444733044505053617781907934661155238647886674262553582025699903517000876517486743021131837511771678408767795973411278984466272605597291062890248076104719256112574326846399223687354399119123815922453182517839142242243616502275185625396351127340199248522702782201339334018982290240236107002354493289036964411078190168177996518955106879571539771376623739430176112764323559743191743202215389595834612756353201531324576341057507763959117281189167566794303795812876890333115551008933124788222835786512910181862452772860355318994168380788956377220363387305689955113636926355455381477643161603521515407113670842722441872148068603123222926509989549933454787945025714968421696434513704801844116648875768094041519307251414512164045367318464130217404110670199242621984039709365497876836170622480824792998464869122672225421072249602481250401111379692186706873108944739598722760541748297154541460022159093587259073015363329051622611872477284369764207096801581415689362351418333678240811963405372008757038597401558485122265241915622283657495247299815945265337129957813310477804822555602836229119449190327688033389049239071926422603924528053256867319676204748770051985626248458671151258091375719757809405560179299845954648924446441248878313386084066780624773938780104815144485028482932010099262502103411050404270591849283315579335652013560493049100021423211768057754044061194905115502097626056684162805123208985128469924180674087882121215713153913027602761708782737001821041072257024071969789654966221728993250672944985309865636473121560984364384161285801178106299048509455309272731486802404407003541073067653411793089482363435414945694308872802846420767327701270641802749865571514417521336469520224561602445751664571431638507260174661640946475888213781377334812679990783481933499577711824422775487241962622817714108647455278755509579554983295881808079726901789773266505562534688681943038283442239159792892015265226698102909373074116167324677711225081885402248053499241535062458493326423483632566485999164913598743691856589307167529198748187467846083433886286987583908863914344869926798007754688565931301101815192615281629410761024324640512813483116848101415780193395556441833518582402512215190655486687969857990703858683625027431498750006817309295849418749322563434745706289273117769217704396579779908911572062032668631489762668027537754585306176707327880516084187335252174877736465888235325439370757907930538249236037471758087638190432509254389643375734527069091994288625531015080259383070049003309613828732448898219617082411298013312313847829416194117745067946349177771909911110559063857889385267746124109975528177810633331290391161579580401649147242652093151544633344937269860925463177012821160639325693945696164007414672300091125705975036363001181232350526081280293784266070286482204070869951823641413079476668648304228133658965216856567520430407574000819874690997060616407477923833833837919119228055263089221126717475032148626900772546566317763745914202200867926092048642171448594324948273372703590214312853814317420919866045809766512136737216952377161709579538508950073596138708769925191910489978294174698972508556437589526105705847788239990271561784533922231021848289814561110956433960427150007981374898891702242174494360403190554167854497676476405350122133506587716784721216403273677913125492446283889074251708766099193296755302727252419682930341850107774434692776271471285182357152003910850668204838417948244392652339165764009432872893461128053246107377452495099033953804329506784493799500346715344373603547902712381061567349640021696987136146129191136969745726986882597570461555046989408643020070444969164387459737503405206441200209600198185910070056315616987558436484528667371602909660005635333822906767040503150853255456010685366310248843668738631451039149127097783489818095612526990943242568884842814695879609826520995543055198605851416297230265888706907315128044001314721796424379817665358365941127701627156490328236843814699425782437725881373569472827454996180358613192850925500455902263790176775241870476999782148820947165015606882014739882676016348574517546244554377837496682065094879217115397998225179808296316142629885199796475497382553853959077546766989496300572623377646366978242525031442945907847302859384296038043557012425595291963951643446034014590319007806135654126813267623764974945957741980031737534731556178592323081274618226953104068058161312124891292443760869843793337993325612336997533607143817653201528540855962112348632488054083914211716984081654887762035777878839147455157406407815470823149637496212619983078099024274899834387652232878366858263044959977681386216157410273320849685086333207181305906513705474047487863701491007730972467357633966413240929426452141845316803389114380145936303485572307993349511217265058920057408434115279457218820556867592519985210916421818949860377389987673121125346675133716386436273488145479797869758221303491723086397946434290160232979696261535946999516158276844354017310649227021836928798234435808218762361218010397900610455164258391358595793508956677570971196159968043020101955716026404372918899376122485703911856253933750624947705498189573971047464563431561856270643714167002806658486218194591011734893385847787409841941695533680957109485968680676994151856540072633470392026698613139906458834707818860469045265269073522113232055543641882719095229677285403607348740563774229957506744029010628273802258577804339746966892983921648322718046072398474028300895501040571553794746173415677833019245478100517054030712884697736807089373111096485860579995062319736358504886016524174977709182416637717084860541520623329909885442340409267148226247116048352229769187957394005308434925553998585916744642537452698803814765057759218602733253535062455965511629301917738853903786975174579554290212455941955613559729331974901594824498852182832403863922616883911407178585864577647123844563365820646228942805195136262802428036315771592412050608722467836056605438186253276407720901488253165344663409771337954313487895582914809258098805402339921998185503488585107428147878991815668693496733522129951390132791082398372588774427444923988217128151007919134347412538553847690998534372477654593762408606043048930723670972594515049916335607176332192710028871669849722892407435816689402354549793225645466113627367958748222511783232045478216325642432204268926492236910657675187939674271336230785946383009243632138139819652695226017760403029801796161825886266915537992015055845267546117380126822644674811935822386973706904237396644172226445886125331449028903609829812143352578222633776792232201867233108090189103403427372622163719396851609249872648159132906190984935499214585343383191356030714932374247012675994695429603995826656163428194289078977952490992087364573117155446457266885272175715104283445361343223231397972615297627564782343185643400060826748036052491912645756785238028514464351846577275386243114709096669989113951288051443534519512404651434638713749079385252195039995812647333006725307436227466262045423659272660114804730294795596671916364011949599457368285263116771078543818269281277374497385261751362833981472919754312784685127759371505880963089016977539685833794794947626769381303982396045480624507516581553731927260309164049992725148706638321121500843833546471315774437482542089911376684764576068016871598332316946122744104603846108800588060736254083559493962151020119643012613471559692887356284675707383869421277613827175962778123065107193282129683737428681242512929862576510813933358056475134805599950804921328024018975926558782628316120092905389455184854637324855667381318387654363841407475363761932747140949934118497080658710119952538823895816498886207392792062718100770112493840474110076400258272348645015231750241122456999208305551889725262788600559775306064466749211094631942209185727753739449624381768406760358681719162646940661445087295681887673646514551043117194631624639119721627783277806881479592469571123579726409985222463394057003659730472369963306184879557981449025089049627985862769693417495767627438179126497810120377992515237136448340838585484056537914102051888830033150517094864192037035774142564448960592079879715631040607287451601787513086060645559646466711845379111007812753442877924937181444641167437279712995463626538621782593348314625024460837379195346742898470973223505525962760750687259103476526157994019482969745845858602745741976054974322750063955805921739475514066293025767021547505074946815008219236268561966110263938116886588987480105957855981667470773361186953488109933190982954881313985817877760415898145279942061306051574225399639477218663394571518227356990443819258859706859056104702941626512442375721841555700563435833959542458706230994048727017683270042357083980332497416381209660922719516823507059752010873972553758287089692936988494793341079359859421025846427448771402032202549901082540894579221075258532776508674789783578578908877757816567423811224901802218341501170543059163927338203986893781854304282365278155950342284128715973905347972817777904764393935099577207572085911328049409022005171554210425028779812563364669316880810323033834978154391283340786642333157758990467115759760373851128667257872113087091798117970393800617514637129655083052882457258796074539656830501571434355850413855806766027800704855800362069209480722249268131542902402377821602822132535965728976787389327225424135915977112320309579946031652704853624406119566900468606493700113558160772001635749510641837829612521955542745366151958375473843824163639794806867845094808267731968016814017733744873559308074354948936012902659869122772716641893613074752110158406045068120265912448808456287480636464640014251697034796111543439131853395443603200122566542481529821672050188280994420772243485974355867970543289779169525223896553342414037144467454839126794302436193222016012122466155566613096387318202635656152026749902877912578084228141251355841913741104256215242834345753814892240017346579800717129826498673241637355842436421290651925038266809453357513232181793882836759676662309592887223666204551817798480139285163664993262380313248468225238015476042649715628364855567450602580438604652637287312421185965110571413070017711572693858314485822578800499581608162750420570649913400917346890960521385181435811834486257549587728253846587645799673326104179696768327685590423281880576573021123950392261414745628290113135228629775114851024955501928818802757488788692632206587787673311414416574884477422904016848099034892778723035156420681959846783681911280236777638109927407042016176672402283916393315516097747805566843426709699344608716322439268935416491354278405607698722291398789016824621039544065837144491673357841509759556814140809129954425411282224944789754165727041084283816251905543003364751078325024488742772845802742257178033064037005561604387989684278877537336662239976241357872543589964641480035191711037690081144425694321018984986202577163983042555028564241133176567202343427573642071510568044866739894684234691775221901282655779754988635182868712656729631085524412845763711855169514553177782282068158131262878390972386389366827543365275702088712507903919591975707246759745573525137114066746291857049892129112383539886780185636644532425291660577839176613960948403189271658435479104884280754425437111852207056672571551929696172860444468102814464995844512725308271887659045267794332437334630978059236480274412565486671636571360785783475877528807038539532052738939804143240313646144928821027597197995946745904215732786857143955854364317293206292524592219125729928821788515078476225339943432816865098511944920562951777666781258653752541678790970290937496887072186616943522277404953264658618658238405201747133914661847878992744106637927824060714467675397398011127770792046186717803702238180586141405219661916546294025068006563165282108562747823275687728894260943505251959413916316208202200786447486264681221366669170940578470410290191721402123554531695693250223301497981771642119692614555533376344086221691131265796087952141870240386298224224901962362525545864091407736955607756720661847829246903636419363942284104660819830456777640335486606382020183950563971170449894076010541697238438105002464976606916744761949020977212915539545420091862322539768914802678204293787442597072568919715590522639540846985649478483436624791534214587849620619963975378798518870126049141447506003743342215103959920945160039963922252781439161546388828358408584971429866683785532330819715210702916153754929804087574999644567888735017874222984290555164426359774549898436916979076249133691606778113144153609445449619856889456504158622976114280346003812979257405004878264525003947954504080561783380822712578193014226600830892241805106069592117981118080478472765922786057045132543593094234525047370186618751799617920490109438386336830344280484409102751865117471012858813281727687327438362758351016145726139523166116310242212136391793020051922470246792701937452905460483393286270188083484513221253647109385299258588724821961699719526044219434718187386910644388217443942078546978136770195594081167178807631666552388334967479330104006322981124952502953004177046086622750740450564564680555967684389865786446462857718509240843533111116443700119776525314730991331630657382516582699344813604696299639172332325807901887346554848394761514474292095562049541403283816793721592140500363873029081397175120041245715572245528803626124014961316328282791670783251346693074908681488534654127079933445038426124063973855836419106796176640644834290198043526387283161288570070642208796688056383370019720871038675385438693156551624166513643496387065916074786516616707405482359344920266125314079223395079326481022668660881953144786675336629300482717444757951288653424297928368129063056502218429561359445034758148617304951113535157319431344712519838927377431107503073867885391658866167788318299585100246435317826169052949748654529779250951900648801667717208343249525184888305482017221074399094403143818983560595552114084250983193178698884936303958246416134989521972954997643006273579898541486084942443056454684782749040155812668265199293900518282972498156483527882100980403737569526382349679723491897609331818553485808755311403632068371666658935421579495881520823643071803634958832649570975185671328626703331318082387906141165561863268621563825612847996087384392007894430816179447967058588771558839370591938323163958126247746137864477040388673666981883437108073044014279783648348045238316818159548345592672925449293507364255682800028448060707717431253262093163025311765830327101613518348461592840909129970236516512760454806434244623691968873224870058587620729840816648983216601348323029969299166795304378566549146456453658147656555614396380049814259052172015766011030861179055002890088730833051645011096585436878457177786376179907496189549318276725674673200273594915163111155783274785074521736491725668877223722972824628072933002442541980731261020073195458307488218230249932185062835716765494278498303095521208263708563241097351403681513720351117648971036939658293080889496127746424478903875613791783895365790706584606029835769327237449352602682786099684397598879158755209857125411588285701986139089309007700751226232231613331667562526357986440304747980761483314039190499945516380563220154128865197450254839065428088395548168795302220467112720603205515893951814595343910411732671908782901724275738916607842219799376825592569095686399704480122045923908471090944707424456156115031435392198975619200209638246184550749510322848272708782933133464002357249362594795679059638454159626929193390813401962777231308334336265742556712113709733637158194525449348528203883748788072922561098292848279853719316140690817135426552255612375746756425543332100851145321008277263561179066860419826252377975843574401537500242247212549037088413244214997744897387615022093216650964090337293420361931955096165563457061001664167476389459117318620455235885091572383997790429533198495219714505664749994799711304252641903659976635435682354157783646937311378446538150652042991352950154765542094436253138455644075207502836724326741477122611459140489213472294448364907854651231297626645655806477384329282386455388203700992727578120062104742614493757100150025165328816213014665529794465696369232616114568855485463220585841912869044440200388434491190975770434475775762896709019974608530050663619193547629242646624195430174293105548389153004002108399777948817206845883937643493969686172760040538378701217699065608148897484605632437126799589120276236789252272467543017958986481776109488436867022168526889847433064976353716445279017225145689198874573998437809598423277548455324513946514279856680592959139607258324835177240970255371729476121415662181533396370576473876353845723642374302679909066348639339714498746800421241466783096802037205482178221697793295086770353287158158796368831411283193737133751057929320270124820643022673399042418249561152629198026067075546601688561091397448319932877542171006848052668136509593276096507792057567204764023307981427665240906848298512175270480470483698108471118331038367952572691281310286067520802083659510248133111662441991950394088795923406448149648712936178000994315389428002911422907042726302011631037860659448804666734824719936415404757330335192124322827061201975149453378155271847753967950116309503721394926396085304166358112770776622577580565768623935403290139675586489558093426006721136718497440477137982628792203801397269307425160188399673104274645731544817695298199671745581197701596338373408094708875601821214756560980158412997435727996148723655240062120639883959177702222773825165989017555560252345160815746565537274735239130408454791427195140446924556061966737132081389179471170886028783383526181073892691659807274381260171223178671496279728540949231246240599494735358302891363177975977453266341219878034328772390309435462901459790799964974902891842953497121447299321581058929346297493475458166617201577380487158958079300214454457843354668842247764322936768308351024439066789079249350485943508489562445667533649211847082362868650498132433229197993964358043804130380958675395221280886266535690294163341879000813966073212425884823972360326703989520899307388609913861666429536583625061582079565776267541616262515980838981666678128039374421009893725538829553219264166208382319101698763797940909002514166059105943083432371334300880223034915409046269567829668505130582116379428788674014438855514406267531294964834658371943249610136890716026742698438597047915157965256698888807470669166717542614983261730565967008355873659905338575823952912478206078504625883507144283607419008230907377187263682068881719783183660437955483681744061241897388443311927237832975732350906694064445330056862628290283964761953257712883221587768983073282441905231294944739544829647254811944662452953418100043789592477567769803174475631149003955299828270988511926903664549706256836145258583307220875768117034388619232675311987006050690743284583455354419542093118848067244395969727542330392803763740417951571237595772881520793218752252110139558960035132111652060233580276197629243920422688973501592193035293166621906203843319090511480880729572354758743469055680597095086581133787364022716319195481992895644199613952105776342861434984419213016218612842143615490231792689081976416108493033507875053237548775138143304142145983169634426968483738951082065649077266092329809831499808880190171442148127099303133165686441026051730085269020356553508443263076040726687803131294696884101312650496212085452730895354104426389394926880649723469974306303945238588063971778152066658601836400475399957922559730037613046194640876299716494090912846503956565411914267205864014544620562975835221855348718373055017999167132170660909403016549525338624061375179087108108854899693572302394106215046523246102511096578710821843443409900516775163200657714566864832298623039368048324514618956152231118767163794692039311457240238941270265694690127209607393681210195647906332369792909643783712939434896210760841355147452210023722614003506517304167220162394063374148243688698156736107139595802404971814226250309196404118822884615326903639765669776188038385892635078129884919682057997189868730799560027007588934047193151848997830844223091305401319125168003199358278606279224723953967013999109602487761077116941752909164582343126846903394454919869165342857929357185206685160659035815938401007848857821642136759960416138262843734855240163069544720134420177211105701994541004492734540697065969586470407472282641027694524337513672676120242590834466267106497031842002399447229261571092913136655592162904479448804626067006377707389515773589911470220388457034232620645408274495437398957634612049341474922356077433702207951061959160918016662090929298895447598416627266226628006129598641075788949120576550381527710414665805979537763960987782251570629049180642806946184276653408222282526367525931240480472318697544137309222030318057442512580822932150940602828361252649546451948935969743479688011374008260095595607253576207462062069989373504248776182443936101349208877839680055460880222558551098622740648004566280466696558675833727397703252539184264090031000148450888917221708379882643630010915731824883382588384848112886012844346057623186454998201870459476899829324425234523303856272414188669108727772129614970874373810065715040060190163410463652490923202005256095642902391851725905552825977382266142593200194209484306053797843788108048366752038844042034233775617148223512904064208799706766722962225907369102028073733201200815273238067474390114196222391049922784634357193054385763478828905601719117504591334734250155889131874953679366725457085640178333872039533686661892472433082897381879046916756347011218427868484322779860281067444193199840023314768229151355214954931634907699847700351785265039282612178686391037559334836725545592083607717808735637957499020944015348308838002995792101207775555630654900464786239435442467021607046582554839444707768258446499059843747657789169072656109310488799363857423931187274932796047725458781066340484469165416706210164857960388579441034199962074996690798426665237642054969034824140537382076547812665571452418430840709448152775254994568430804750910125883440922317097729110393496773588089265468794075613551996922894833742214043897371355644828836767805961727697027197313032599617695061403565100836496308061948624911986673444093558164039867165707416055500117000818882168472376654641054394348804853587005033820625243456305458953079621834910878039021215757397911522258100829483266626194841663626063671549165168655583320949808777951650380092362160379916624100626438135843888638000619556018518801436448881297422883608521590122761602189448147334650566146547440414357895338814161213032330850861866197382718679522272053534964042274877691466377237948298744249214053011321649729171754706776933967643704805133264029793889142581958764721932296143455942317843698031847189856149926154984665971116420556886963161770869386940063694733272942759316970032669703033266612073481513161247433997217747014517607626912238066745447756080934716383748690879669758118281525941478480480202252048265748427836723291954459309488053204002124146434022281124434528423186240062098821772841492243715229000061450863707297608089499340470928619006674340179445355982601594589892661747060845911052550767058885851244896198200362608606578443674493096262006606200818446194337465494725077431386228260655898898325536753857632742841972573209430991416309041919167485304586396648009513339958556097281774226023641013259460365457017000140770361416476977565976315200052570383408632432351332061021072585820511744176239064867386628296495996731850128118664164483531814928545247934105609577357893886721160495433126952721293412408471272720236912675029091658945968784802530536567226468101561682856916438022105687483047416699869609705178676243690567726341866785601877774418634424762970833227706362545859542168431336102035216216599840293117916493900620703811362389541202856352327562985724296310951664467181551729868184131640146669499361634906308385579912127213510837747638596049610874577309228770383309105868834687250023023780900803406313858964611706960096256650487472047724480291216047238118261826068482317227144075359258058772790558887136044163078725055428507630317489357756227460681976244579551987363749153035301887331052152120634982219874109152648488078500987298152540351386418683965542989083899477942435023133752650178419193194491197651267067911814501096673508611908823122003350507961390054433252193043418834054548722627049279547116767258658477777397295768775048443377572411112859578271557602012919646726643574134509826633029221270111565590977931240238514319524268583917469628292220533728378644155299197787535626970006785461368059882249517626718056047187575991368435355417110493693988629927518933972260608773938725871073195517000665196534912997824677389198502486318626169990003661762742083127232017725214920182848886068703924054923860826297196697097726629170438400981488408418540263377113614115884110593943361878216684921790278677681325333797533932519970617588273599666723792833746524110597989481738042464153136020104604739640639809762212801906319893412676105906741384745714342342496340043607165282157898416885061039339302174017663014896928045702044775475398084318372623390428710028942813720171166868664794924761088811131092395588767775067284377238464222717060626821297643300038600591823662943287132939786271392160127683242387494652804580711200767387088570919664050402199348507541637121673170396046262629295859425150542273594895450944303484888109560530614438921064486150557384586081639557720317728579592705364198630977467370993512879999578062871826056551994445775637181280905568147999994143847473956045264199696363687789087464164443885905522366258916782420451510649427711808059341499738132391442643483653890184473062005508329252517539185969987923589130512115611871334194158937309057606907343774891514439228980048045649192016457350151195466056029944504925065548482577168041878470103945592104682026340837786946336111984643938852244307993019304006787858613668555411631471682398583100674645061895278561632485219533715506723983732635944131596335982832161623151026116755743805023715075158492184215403696827236435320116308856584588882642543290135162602496285601141278749623598665698338119158483181821779767792842494998031053175182294797296308469799192689459602414494445477502371884916218589924864915175660512893000249905723745434903944204478786071197528065746072324212046369542416632231894848710727842188674654465054950354920635370874400098894375782427318314746108777977910454529623604905197357352962335466882864255257219449582378041019729755661258994397985089472386374773313471783553762521513132758628888421850020166352250675410563574256813186717374872606018681224222575166535439552907776676469840182375358965891347866366177842225806416214178437466455117936735621141744027258959488728121374030823341760089004398867228407045178138141790983841209786579004246039635527955424689055510308915096983643886604424466632075422815849269871887374394643422363711486191903690255173293590541328209247665274565310872441543731182727589429000800894979185993435922767911335038397065262396418354055942135554939350203242106174890223707906701488629338529920912746492179175730616484806843768398882004728167291344823967928517677639461947169832978467217940175099630409160680776062142779400319109318740126599204985741396451044023497117151205371200843636240957879760275540078904391490697303313632173584189537995222625444074853988617775543135326727992450624541128629664880235935476298262794434133876235489659561652966563592381762979195974505855275075727516228269521149385619816933082587935103815829338398686245814159526348598562397746523779227103521312940650954947846374861148763724142189324118212714287157132120799014541248728927487513541377428026120908718614523712360078652202161580786672629258048600548222242025468154489555295075335882482555949537981643141696089593721974332329440423731324357775357766048347416110047105616708229693052796994205177761389030640286066151937337261430739844927891528259504484530497415038685812154400132768869235941350272066332385539070806392841878937433800234222907963454262978203207758526807868811565230123075920356603632117497367369099553733956908991696906845343252910499700863595112073459726989443011460189984587661022774062645709008109182645760354604682012115469035530311207978095906531043731482843868698908679017292885722489276558259036833821243835864780001037411702843289793885040373762452571860879139713765022784728630396160909136628014957597197702049787599398131871913292344021635681981621912655813445252485556363772970246495244608711714912733940709425951346148798620114757762387394390383210139062359680225956606455445750506248782641251260386674228299081634822525121761623424773957413394007291896918253508620005547909451298737483265760428692265306061343907499727201828586027751993415115721822673503522865725498612972108168930621780924553635349634829594295371801852071554199028294489304261882418544138957737099490142051677636066117764789315433466962552050035555061041483674497488120775282690242165392287087308656797293721211626816567106334615718861205632177918610401601610093774855106165966086788996809508859277432532542250933617732361849932889892320366423605778328840160503462095058774681125318062391889652992614213104165240670541407547992884411037413845106446307376961795151534091882888810930304499183341418848451838822394107463054363200636207409212308759723520880624852077506506516426815296022392902059200253636531249236102259791126031456398049703278200638330394029459885600707455803844970885790556434389948017037361401566402882897665448596877430922251470197365689545627519396765606563609653809766065661493450894976365710984976030371107290776759328506023008956433931467131464157260890711670914057904765115719717024657036072846629479353875666712911072403883968743148626443326603234695450707679531463302105360086046028064100978030279769313818883856266252288855067611998021259308195692960091836808860189478368985624974188572896015381851539033044753554779655331645567447626157386050779695230805427114282788904865175026989837989808819629235536823449141444651401481760121144887759844029230000788771267378941275802416154569092293634379418472759909012499944941228023613355098021580275641702878566289656546549549013807332704567778190123338977693718031757090044122632296892533417753873408625900632950474885961963574316661547224197978928451848254520511763151932380938262972726027998981184002966422475758158634974562890660864420885117176360940489589387418408540079688222009442570472559309007942702964571117223827920650752670187230292922764182524222439235171571877748541879819390822202837924347678361943796778783992540270201024587277322237003195647224490258487856753970507812471644606582603719462065062407249873458283960523280844331264250231259691402743925960355418922444713648271751783881474557518583187861418716477231058738717706322045919880487301007212663587758062302541862907262931404448849612684669443838904771212268810591200772589856291127688918657706562727305239650261535948335169842054794706496252496096914787065616697937656845502869743319810877598643975423262117161707001954653932324529188379472359527341283000516176980893571595087415509091440191376439899732668772507878669881779618067756851821115444855761755094573040215166109927008117318491798775638618419939285805662970612506306688567872385813345708585022183602932615323613352264933397962920959814457000775173715400115934285141292827141023565054688287849189127400096649715359124367561637662741074274157574574857542277726259685226108249755133641842221799155555541789068296902374155709316858697625711776368789099405106851100914715474849734624313889311809849388375547002758422357923042118947683884197360674693335458738448620827624924836524585431771475246223977185212659963575547164145763517446449595033243229240436475698691182581713000501158706033637051909859725061647274289488329326643510374133283133266228923143786274439516638841554349106113020810795949955183550996378053860549792795539846944643505372379016103478250606173577154693766242572738564764181817935820556505225281877404831635359757093564765428005258877532664955406420422244422366809520375400741152569927208389281515518713494325528385712867286021155457856406112735094910703939563760495179714441989321310399940470671113758378511632747561244335399199093815899330928751973375531761459142924709434761934754574952943018515611151571042092196308353438118190736862757706398595914255934686812171557932810435998354419560609006384484953345330737955608168249841557400962802451946805162928922403571683952126337742442117829584177623905556245347774589750090524061423834543348001173231156575723391688614925454894995316952200938448217953937703921787291257342952118490649684673093976219797824198134451572142656315121493395295898998824241749625431594804096078524422699306927505597660725769492213538218225448394148692168793507560129165851123239985647000605794842813708729344147300833024639011635580881774395518134037249866606395362820215252206517054088824126706032838613403431625637839194704102562297673384994106077078547597220276780219107108438701708180280336292897788901396457509905854437299960207682604729171201982109498006118348703782808092324201429516700162318884074637053062009390963593925378586018044865729620361561991252335119008184653037763931114390227507186206954311619844383456534170159928398051029456009457759521688549099445388960219582204205361963690184662282095073996951542551523986354550871345053465170754741404726574260945232709144849715210015688811233054656686137280115409774101759861094493981229198831692589009470273496630080459853401567142782872106020367928415814704346485196516704850220726851079195674257667293441924270293191921190768836988351030183678588746241808954604898255636822986001780714866166676846632464865089964831269397338276223442923139563703477233451793832899074958000292839395815741780410783909404106531762924026004624459521357410031461081204941565393444237813357691357059450436594594761798245240088197810521341424549505669376742308783375041768069536583167041141264112448362706064434930826709063160631511890828110174539021447862735527738865358551080432792467637750882454700856798226451011845635115890440962196499864328195685000775248392705705066550024433643097505776771736755513507932537848078365109114804198210948945312193672509524796410138951446207551151248005894936238065298124040763466360065714543063196639463900890041787910795623522780427484469834671715290669983591786173769136073447222441838549252522630070031440248298657462006777333138345260726950022192422291318948202564092498831214949107217525439511627433011969192278502750523837379045085762413523222465317030178453306089943513342601608767306130942294165486293848442823313824754502052738368949510445034164947274641909764272704692558676064337004164066926204738277283594004121401362579951786019384441540308382396622746559315942474394121822094165674502079091724655760065188106088523599022943877725733651460633753301532754454530087181860506249563525671419494362483651194130757937562158725377714478489709532973489901454840913977558223854567893004290257564269625576739116772177337541954698596245359032934098292115430370221185863625724569047276755118940778768838292040324220558276960895479046370021076262369530066291981121532082729130762903386726644316796419680811418456751851129784386981053840388905176017021587023784361775719054272371942917006258561923560850028476388503975226272005704145682120887068279775743291190526769164651803582180826000615525542345725943512977910799599942013555154644531910875209265929162431172457576860293571073379286489551053874098575474976962116988971181185962398965929645603053487810096370196480613541223479592357888720001060687460334937836363611546110607492707019166005587524010582164138579437798333787836030991012317706428775293262816347444961311477687863061585053765622453180244560718559557030804176007622231868782070973125745399560509404541458915230693832085758180244839020418328577290141751717647384307432528795976296150496314296206466535900417022586048884439943256939468005096059675213347045106174057732360020888279632919625127859164031276470013522186064348393857665002122645853970866277833128098718814405057190328666426532265383114295662126612279519731847153926360546496614933506525613866426237330394336064395420408331171899403927245022719890523146337136513785189217610749240810124641330192886941119289685373434226894683334811723871967293833809746303298394770172449609511480814838268730278881929802156235696770487096586899450400197927242028198426607476185121385925024289035194121925429771279287441329205975024077125860082530138193636559410635155070883304517368159337363081634373391105296863114497050114896108514311814806908412654814117790052450829574597070321981822201755230339656443043894939007875739509575404409241142380543979673737263004751880937459244455367901284020857479547824876285865112280121556435762866965100076735140382830524768080644136213040927258866588177537932215031859959861741671105882823644412921875792577719421183376079146186871597385983200167199492566056597930025118657152612937150540392534317161019307976621821283770673301104361891336856201560641850352948944567713422839976313202596682543396146768732700162945291730167002846154498406689282722993280408188998527649675983262367057405286697448245280348325208714244751960717298586897745309037471604436018437718844585098091056150405111004816025080283460714992745170515870503080018249228233107892553609410587338682968869212352579002116605733382107050982312518123442174633304652689307345449509521788276808509232786343262943227155232384774195745598654352968610984759824073110086718339869240691102864763993822449718847332174897513980016902825386768260042679862043135605090236853138411199446100503941459679794826745841543381902748864991688693057199009909754880972178069096096819056913494608584657940384388956478300528722235804682873747680535978718345106537639113346310470071404444189352506336332692233043556032121055219051902939238629908456233903682709645207937697275547660524622639533088052724883122895597541704517068090736409883273631944926487684883393151058794859905668079474287936946019907816553644301099427469178126335297799809653213259252467662458639972163019260305769760937369936376918664380524428808608977404548958482332582891047740022257620713915385783521969803557282022247669853057984497782989252354211795649534511717274030985908145109499272358879853867472191700982842067788426098085026433928150606304605987954330511272439530183924461487875971577502505288264449410200252953553338779264141999871570640309395082654076588315846562823959159491940129993252670702638745118157664382773160233466897169039142522340473052836446816425022008648716483304048669874991110073331316854153229558717412416948596131182102101705744503785025375377299302360512384562021847896067791920648372362345238431174068554595922241279702077244473793662771151598270670193493888070332524419847392665954338941614150495307271018948348088898920569814489904335552692880833006706386978742100704177386445832454558976593063246551028187606159049490883838095879854755600985914387318534428361064764349063803196650987053865405460119683515300659811905616564441060370488085294857765441559668365820988638626657678127808123892892893722415096525253010657493118367663465325245314713154254326163150725064691329325620210696760931703634279700617051238310455774281577684631494896586743040961142585598352568183397737462157559976550919684593670464901262581543203031176357101343226239736231614995964485956462542882119035597411426209265610392106828924707326029295890019246789161972512008699191415745956553962310482540282076531146574226453737281324399861496226216676004710445448342321647071939306701112884132153878222356533017992970848777768858680474608754809567442971127839713504178405997232233291730014950130303951358437423995255888290461329598097882306444291624453354875049641776670349747638380552588434432478829712042055963315278804216952881564445686186993682765343410485784984121425054421735489707532486229225580136046695392791768662004858758271613837931139624392375906603758463882876584541083909935496163162688842780352733529869635157129212052904747923173469660472984739450178314401650454072539882890251490344374764580763929848646537820183954219639940460699058487940248728439664725005290892564631161298967267857167109386971489026014841194284788910473058120795272404833057689748577541448218462345872008619478028375961203319826312513610601203324852471833171031505341232737030924659887709596136056622778850999620915312361261855519923590486338210591922521820439678287003662573092420364758499172335050021558297156038320049182262792670304923409498994294994685867902306207810740303781093625124826754789341286910039658652923463038402578660083585925165147051190281626056831269107201221507266944688283245866941398865847984104707853052594161921071959664969359505894035114646444502652194898042469474261680258596375298130383440381271739519877230511006769423402558092438651429274199859658020342132794162852005742436202624370722974580571780293854360389458432365344428069734158586693428466731294974781645802743420277900651773306230716925374680416918246944501542061852615045845445996712045210168442470188266661285218604651368449215384797748715526681975709667912354099157558027118656325129235807096009528971813049292806998350843854923728749009479346695781262132793434730464840277411763222744050874787714516445315358530252067112492055789735512787571081944827026082217343939025091153270400808074994289011861339837896519666165906676989500777751676747022123269958910913076534640424128130737428534455147087452822191923544195431893720225038091524142440847201249489960290190315929227498911467509048679226902897773417275090763719865173937224883111449456378431586943093399845209131268771625396462935342850384061920072705964248770633518983139019369653900536546973127022475507847672169093848541066722620059038317679505831353110430061656778426893691206390575515478256029829191107541841281509536658733385266568010113451744894336430567970354235725798466867119087387210218247654084915894947535721663598136386168212059039952092449108646342420330139394408753703100504410756202698441929666027879780661408883405305931709192368793305113489635228594727148983319958548206801872802053494013796069892491024216628788401394347804835654152410297902581027851308803818919905632113576760840299537677008586120852336658768489846835714896620747916974603708156183644950130314379497935519403991363180349162990900769016599847672799711940731768063696487378540114160610742251480003886797688185080850995006441873489453286583042851615763984542981943409309947550179515776731251464526562197842849040380144710105034911112294173664261175569032876515932363397576892566951879894899474312011265519342953828952982627131513787091943026911671519629998086405791821298824842482957768677242542490959053493609670079727267802327917697020627561470312728588504163478710954926959185075397942754883174963831762094799547020758012001728328356287853111220686732856977067783320962037726104715375777878317537712840850076396298182666773365059551216588819306370971153948613895561480671263920978904837265255351350708685641831887121491199755060618505075885709900684761135169277841989651754467328835775053870622148180454299473219730076104542345661953744242075789619465449736879331921380824416451568841106955596124027330512318102437200080337117738679622188668891846425930095846236315715386514180999887723964946160459362678256829179196348692812176552171360588471229490031755484860933322662963369132405758882942449759739564994361426188177967176267915049547988655817009685810275594017994200287250645169147287486143438432447951192007079033978011970777316530148059580878429204303334630209751488330657155902329306452946253075866680339497397131975785273505361718598563361288324611497842508840613801314687757722421496663772562052251969163427850051652227740594770952449316832830931501272697104327919069746967918255933098028758193408288219704777192435258704736869912008469393637176442826915742932555381324666765515396521155038351119266071266867072569350742844623114343271831333663671966071291836461414132403081423786551462213064056438570232289431049712542173166262063344698548534274578372043234097296828885082916265462428435116569104456174102810495390073787052016022762218132810738895615236150221998681412171901321690188035847840437191873773240526097095742302029131995195898946179747589596012994201219422564483598187796939506827912545200371411216932985030407334060166405006442053588118617270659796520178072184473146170026006977126849835098336279275204970804395844985681530807712051562714656573157871164834010698557887924307311316142462868430864978178473268219761239997735660228259795553345314036238257152291648630845247324569017072371895110498050159040482360126304042783597438965238235206970342708641245135756323534076672649475606511541331893045491364942750425311318347877322760340264077898011646171838877639068623706681561119157342216443442503521104083459622018736324966070953598843212326917010634180194212484497033178570964831684043123793633668022712905519021281007480815797008119941803024669524747839709429086383531313476168812513138859514514385853676699958047331702372166336437607842813247992381094890017129993119791974579786984154954552724775599669617637425345754936377163932613991346597207633532327641458082657139049922512025677009407454432406435440808829328120734150158952160641799305211196690175757596890608950694516249409340063546617276725143858594938909194995899564459677561550592690924139190092234194634997762601767267504718171060116184444644348239471031206355874416905988115730051315521083802409587767895548736886156617784113761264255989461055932315576113949144663472508652224391681997299739752350944918586612472977998889099466896965667318133953690468622962154835473646947766558764684772774345207760258788158343980475332252773108497558352064415267217881098560509661262593602428120521123620153515153422385257925228032478484490645853574913113146730054468237918086131776063073273260273985881325568345951499999968170859708936963323169244172527155718635664827624962918668779874165574598190467777750040253276697302767688485905777143031779751328382220387547180801642080611798984710260748425276094777874246026249143155425502238899117657809859205284134043058310695069112830490197536957865109826469053175409671159584475016148369393537428197094999527589394298765208288703060978282567822356845942348703283206712370678060859893394061563538139334397426030354388134947398689054398892846352605340257168306243404033923273807583059097589570605834046309290699618679460679552121322544387053704783024364253397125069142744184084096252917077634930650205752529035522030051619627354272283689703376191532137571473235460006413998553678493108612470636817878537418771250840791064975561369285261434030462823272833568232271973983724069969086183540297541185938010771767882102991334235682832384281540297875821579816731239403686474765471521665714223268559134830402801031866489961345160640705065456695939769516762157660135415301603063327688861836029867642942820517826013214848615570749775263028494879115991999726522597048122796183566480196869440761399550742274229059753460568467102008973083269250177537830088405084060786427679428629370303963684773189977976761706465466368399592393869239349895741069403840833705054081170040783133986615631825507582144666200019698514739090139043525565312948925428076703283196991191139191411679345475238867926506961096978087154272103151670772298339631634058850874331277128578819462382262262647726926623926919310679215482128399175575678258848554664892033077083597353017770968517428520256790163071509553690357771099533168468456953562965533868131026224872217310094003123432222484755078397871102265139339124907469883095639113381605849427173229420229657982357217563017193654720841067327300988046544671011778387779683852902160188883045342058452560872769445019660954732082068744053168079968224038170770064576223132165130687485805215315721505696716222270151517134164510454214259414658896653943101829654145866378624523545606359017680385137969353040547183076598332073818171710522828510309737986508444806021691783368136271720795842332880385434575495165752645296504868594529902142730802455972469309117648863953233662780749010181493698505311170891276786987598340791881295438432235164349572594027698598676370892651125114309017889025690671127097327943143870085252552429347061523436518108353115328265682703567362674765370576935886524757540910987696263672861369880057436050524315291831950268488200415422465022810164045651514771089343322231929000473871656064216601380855029359626238049982843307111304172089840872994153413344519151364830039169632537039737492136904512263152512433797805726059578327215038265487448581879782822653870970763813211480216168522713126666046376115521420466342377971349087549207807207269985420906662623024894713400756773991992111678969589501497176862845958285698709739088008178280798345935661384706061596680845052300075252725226768316781754947584385851105469319839393202730985511395528793382191478850981250399519560646369669602975378894077437506807093233894731147281732155018356386066463696760022369929083002420141178233217123750814779113961534644543991975908377365799726949370195744889020573011889097351220419230845263633447297412816268888950873625622916606647016789883688825491120713872640057654334832474512078301019942502856255487617596950903600575223582412264164837283446054342209462913787253211937076386962947377084879775071400773705683908915762290343155302315879160415146148824429000158040435040760698703292698733103384769455049708407890021808620204825563260241257026744804923139452868898221990490148397824369458891240311362031122510042646718635924604122469370780820293179863078971522022530814537885710307250927913464042669404406411884018030950170998370589428469015463283271677949255911020207811525479521940739464227919555054590614005183591943576285176368370598362982569679356052418689244411897452032264677203081911444299870209230582201889175589255203740850961142756272831985324107859475968911955040621470496896316967154971095221075792706467954478068222662595912480288575861521547710021166615221511976283244110969910545142449933490410443860569719080945717338118920650975406775616179055469778341028165895005497373957657991132759288010797417195355274335344443198161943124080600799935241918897083517834648038679727649391785469811102570903460983000350169742143387325892763410030700723983352323894206821642978932162527299366454586893821092871290526222011901860918558267372004911838222252300024840054247154678323674617147023801134473819106093725271833183457759357070134686744233133286461353429828271812407398960689292059341671249427225966219657104370704249420624902058542441733018692515873401788019493720522075984378704399244584394962828309571817512937758427884024989388626051874260866757953031475658745386048415301919328545290907758048048872529646218741459398585914085937116580278748791638698528796987509603078079622391512911415388782023431078997929603527478976256388285141351920893467563198319868891934459375872303881201783271020795229150854905470382201421492377849400863455838360577815237162350372332932608726367222625321422195298282435364569160394048378674186213762623539567088926916059623155948628137331914020251067831600742574604756229980370117195626970846209463747308927620715849485026376209197062906163986860908994951908014693979166995425993069472562932330211901146798358519962680152417306424415943455662244812873007584831647127850536028871338564630649396175780197597215810762308172119227895422689639437097128394571943485627995058613709286452171591123000967378060482165534522252986103598609200216271619652869250628983044338596585263169199057886018801546673915117575484811508518743230875254168648562004924726225530982388731272331817760848257402933828259863729570902256668063512159578483251340790176632928594653288340736577628856228425832322077272095918764850784681880425797181099037560021947075279859990198666378135494198641252278981319065930979841391501313139064204035347002649737746793168357638233663685027789171656939705377581571788915233926057285396569019850791266865912813800855735137514988848593621920635014007322784806299774971431726743780977376333330179176577616865626309573113916489101069331319051834112723659892165458481320457463809500996268968927847575225150529892948035727457199745022601363172728281986782487982679686754092157308244439088419867777094521828470430373712145606312531735592595344348064711169309820012594820428915976092233333881824799331749377249785956849898677311878043491327216377075723199938129010205360284049283828438625186823375474203021766893262534326961819341427132180068981622953324280052731508541175995175267206437695360897533884554894408915473404791186101548448059296511924667891609809122050481153800278297844156429389620776458167309867525953725207557912811018711297896701986787418941461414899524040402153900167937449883049014832618465788001868667536035596733601834461606624057308042630243538491752865244230248890994533635177330459673945448408179067451214574903503374170670421574375401372702621577142520213966704018211034116890585611710106336067783534147962543779235005275178406392924112536247835513169854463498493813308288586888134064825454886784794143824991747947023583000748858496123076322189672629862813028280063505351303721576274173449994465434833605440929025417586388271561751326922181847610291523383056137373703617874554301293929927642464853812745077243912995100021523121812326740001645892713048786021903660129297723183779300628257086406156774416885719874774007886080394391201017259854932965869840610612499961903631752112556005125849537332767283537370121118912218976633053638958202443075483171212668557149615110777321690644451051868815666768609480138663158403290428679018867679012375939402678701880400649091186639561728352414714280126208548053265905715509425311988127351025332809441354432360196648257234635978850102773971368102767062995980139199962168799825807823262375362851344893610909534090186635725028452978734924302153351688802846002759685182601012103172017791654608348612854380096648414773957598477043449092744792317632943631744103177671208241674408495453659937779923148798470079029085095374710125466859046579740414510289856672742377405503492507878502626861566731332486764694001248355117673996032929450197523893832203770169979486816103507790932560126798146001365797049384108956386454287046485297389348601613085503704729284273721984832821348953568960438053643841093124461468239331709003601698534370414639930272841053960225462260161783029484658941181171321925958361604883067374867566123663993444201900489181744222002211981496312194988399806087935197322287568827372048133999653060595978561236990106432388133900310990032131258395054641373406999070052178196937583649771416204423597755268739937660080283445808549842717167978606781121505527303473726838797414085679879068316791488850763112366703628575142308493218335409204130691081104041765721599536325847030138357068283180438817883405963502906907204158359035056935031604686044445432591104966688032829787801560877957795639306964483791550699373869048120090856603537808019603859512239534122550856093683229844722451713246145165614494047874363924768032628628471360018802205666966764700663661173627344401797237777602412186750952322518944076827934886907047642747607945928006474873607873587548872659750135751979067162701625042288507854168101604543266427892119664888844109488822438226865392363092662509338748054883936812653523972729009591055436632817806655683367002642134301186322336444629193677920500731241536650399392770242522383494328994347415880046231521822371081062492891481893983654259891900213123437203163586319076477232600574602573521342466775574394451483832038712694665747698947042602486552491930936066086097717269985681038707328540179777603814168113757891002313088185011779804760018931978001453664782506251282812041472054754074752298902196128608816561926634297733587938961560733580177733992138662805241728729244593737290461414041484364996731700480041153585869586028940538050179711689678212975942461873499217766081743226373663888488244041180793846794665751728171972944733380152297697759781719523023724544800775347655111288634173290036038040069050147587498337339014258133434463051217111627092392403175308596120104929925085548891477935058862564719445573699824615907436816022473285222881684210461498277009998240514304200655250629514599316699859077175212896260638137863381075405736217917744763542424498970875109936734801374218509450960826312030751508253595541097249363531424650810653890412457448422045904242922874113359482319616780106424114691965439683307225962340419694728123349107666930566115003969698784222406800660195823845657734616293428343959267780400321132592866419354876190704091485240390981148558030969167833872140078971458659094310574801629410722428295922965088912748418828722260542654130791982441806462877939877636102750858553392182287511787893522005021000906083372694839070619372668074572839873103180970649450663041585627047273680558732997400861837437097555166426987715488984032908852003430460174945547338506550940459240238742104879090629690340805736673039785051243666213789984078324633918941226293527129869525655696615748128169945595212418947316307531332432059858824147756891432395882805610876070553245804037366140265098709977688629171085010462281809793400814622391572971207526651752221481050122834055944246376266107580545982355231720348392741231217680411998968167980180619413116392331103491698478951027892138272843627631051534674823858195794336088922182112241434220773968534617477385492339364468472127577588998725628824063594770034054467771861895007156995559783882159761789436297957258072651975970739430746719849726694059311058627357839691009304961475978675267637227841160276510331612208466189962308885528464576744240211675540169504183790182492780114155192180645997941047022849474901545512101083465044027368771155372695441491503155756344790425173351727035185060078182584575470990035388759899482767763992249979981206203913921176716386858697095436016086627023419527567323325253376254083755767814552551878012411411894447361250102197706265989207074033975350932545206247450211951325932257870850180779133334118623135989519717624975960828742069657209383019693009289660494888845565484110879742863776010311262703467384201072058902660735909743645810898286477712942940439331148496364587161623496307241971112607230869702409559330823769604773532246995688198306849419918251586424155854243334248325741524168608879090568712198875177376270443871448049714843376127811395557777594082238155476463397425029071362073126578009048595368581328836600984085077873439444578984202201228447921638602726824317171598749412298448460248856367533464529643827168948414442165664691325669210444669763020922620703304242204862516537542340447094602134588769999078828279994925191328994337844959283757718844068362675051447425500220357784582511882867189213746276398753751750446263322058416754075163780245923243323568989400737700606784489765782817652912422599102718333013412266204596341042900676303313210096568645398914203326492494001152389782361569669176004069575563424038508219820057611154278654303491595127203479126520417271134489777571486944558388920454336532371204945579975655492983678043433258441002109580587766068265097480065078679784963171861418515966052697562128530312819784618148246642781553020814560339591608373932266181660460929461656724274398940644286440870773356251008464851664884966503460808265532333514359914539633630820403280088903687361878820273624084314333525568367010143030994403080067289835615786720712047648012761960285112453646304575331124855370029205807272788721144795866957870378698676233012379084750330701120829541424711643948395646362809183644450650502069333922647632570462901232401493468060304670141473098685294146508117201244961092510851313587252145139765451426213410313140773334962234546114721390227673315231598216136023451021122491944384058262514560973167953801613548416171239709581246132523534256907791326529656849945729836853140891160435919597375811146343244276985968670859362020565895765145893963123587895943734619526989923966839126065370354846499513841072390910907327202867974313249426673939841281248102754367880269383503901716847384335174506239538436825150409373268933510318839937256147839516803325332510982857536087808881525615971543104754531051683840534601382769125001350623372745574067526834740433493129372705240585114480564293880617283428478778094918309685138323233384467776957132980273175041725384359099733230355829103081358341935321693713260467903402894153983553015242914472372464143220010459526576046055359350613487544507138543122336466851026744323157220581970747352230610461698026868982856313922385759518893087355942084402420012136011992175274755079136355189756663410418337245553224326673838589948129401736029488036344184102799721899438451293716591300125850601772576507073548931489179770891670998232385464448759622147434241153214885612802200658382712626709588536797679208023222187597469486741007296811219292442129849053528530496288231425220747752332252996771278443417677341353338932473749211153423601812690523116145510886659545554175481640115627167878114474575098013926641393988046823651106279086326461599026969375338473175516278080792512336205388545870025524199131742614028492975187283929444049531094005897591741789630877195144113485983243491918847406259723548922153316488604273136978177470334371321026617099066007842699776724054749641642315304538908244472153996486079211676912315552445460318573027204293914081965507955276224492586503068148655333720312864087262751118317811163753309104693350621978779546248286895468068754912589670288729022967229673989145164928721326257556489217999263650441838878448737540827363922016407832754025394065930134109052728738170754339346399806494288187889722077362089814559989117071097706370631667722084465421606336758749627247577648637281059719359375353637532649038012146286581056425139452031158899216928310530662418346197242459669087925197021365225418416250647515378203017098861703038510661075584305730444463172183736476127771864062060462002679757847945744585321380559897925269145106117986146843981833189034710571751714156563005994138127594948140350139386624616620034784480107694834722462275171382926748075368428225585482528040744608084200792309515014419742793915120643257027929151340676458839476011549616164899084043997815709415863896459800049668007603658297995575334429334170083284954548944297482789328061297214837948561994031051264047002151745134392353599416775990936161968047826533602390802257354280871372387528237499552979719312378603735175421110774091279941029612903335343904484562845024767359370074300849487566120887247104651033682524944705307771577158578224176931326946278417537547843508241927081989221098618831702604355698435652691354024382276924750934908319925993141510838341161553388710610514567397128957202052447354791139711435376376362982641922568401556718651128841952204720385224861880315723255121914393117431198391001716246718554665446766225890779516718350878041329392576155075340822431927365244695723570909422412218548223466441323655569555068313807643203416063464677218766364933461028541856663325775929789445311097946008782326066650431276249488590897056192457751922965380439815924237024049231395134278132549013764891553893611413065898039387456377730402362308682471761574653006329216533510209034345423769408686990120441806387505667480293105784284427902181821200347168210982169543748722922199490696942282465353693445576805323967275051246957953431093608806267405260150571804904089441205118680390795342157323118889432966370886192391504006545384293261632470594434261788978928879902165972414036783637966412798635718063444286388761295617632435858230904113619322395397738054948486370444405481022861194159788623355648233963111034476782715341456624213427374290713318794617092592748686907100326076793607541119239466120443024823189302660599883474543506310192335075464439897030837545468024994173204376694739061077348163834357462108895598401346116457998423801987138232620524426334533573507946918708654706412917439348762978208352885581787591142375824794429487731894234127747604028251997514001084457642429341175983547525433693420245806794525769872997310835329018036918348276819755970079822570448072088743478206576012167608084743214611000056984653489247933964947096953830108475057454598642730453065924738994409682999326402143883763182601442602178320074359001825708351366679575009016853142252845939618243443764977345429440658836380260990766648617150173478910521154800868953606301245707879129849140066651981474369760406772269780023729873894451792897420943484542715987463701754677694721439704970338564338202894793417048465364854408964181452077827056285477796659212364466210295607944601270707962462861099996009809899727677926416979366976157502686682668360700250698697388890929398530545152386606767859216867985470897819658748702472921299315626287526684189016240532134124401486122943619848862798922993714871363282551855961208712325787498458967677883858048619752762364463631776338755349517514870748675446738678145404915804192216383837292994616471328334578423256475668575019414030929090257278879252979884485934986525243478524303839501609592408683578076004389209667331882703763335397434451602672068661478669682716845271821870749122481222018493529180413162842752080741372479163225290779076075486513544040850077386766747037279174943793300220481064103516650665699070581960317863846953476062122567746760587255801428892890055482321404460856299212267716009829658798170606618217063999956562690221051305371255158449527283937837271523781118562406483650165343414705215372408219803426602439945799310802600575119288750470088068943083724187461944637411656953496721599151875475392905498281396935109496877888898956890001764105750241177410022514031923560248677153520102009344764284784483297001365412438281220156208306426122880320654463802034156454689274622086700954633388517329120460706708269181832059833914323175756786904124854841578206908838239942691738317787436734062262341422522431726009179326423268032858439639438896587391368741218533484195049712166046626345499833036017719248063905263785440692988078414698983607123380058828272672395431037778851563453850167208876726382401671869690844523665005269362639696259424544251545244698942432813730059425282561810121931868678674132767197321513562104716046867644072355058450167812724991711627745176036090559768189584243355362110923331707717686505537840426639318516654857418421693991526785647884078140782211657713603745829321553058750246286662232345429717441011566123572030787650066098158234907356369806054079188488519442515248226860238465242425657221893095315148284193837184208497272127993434365604641651107083485067015004933285680558089488897273975648108060940161668901072697111701923822130656943004096224416561642880311444118314437652064973081555582839480520556962191377514212735791473839512311991772509607440647528431439035146038524244287044846377670322439845108791058688833786738361935450380170932820701840189130429992867884086962636209818395562492343534740548966135854986015715539541146672488333135432882207866784616436881017586514751367573535303413050251025508568844217271705455182084037270367117595861234705843609999084595900832998010840129998758617704808747053672247705913250220261005461909641467679297372606345372059471183512156891827955638764357601767988888639055087823355557413511487258989493612617231491049443525732473690876184567585179829127292678878150736255508627451768582272512611107888034773954090450346187288948627936777719792983675894230527364838877988705963073126666072321525187238269887494490923828821808586997965753550728171733850555902995028603089124713059596851680826670380085362763566882319202378625169273479868506852675472880806136065669812104302523487564354748144291445543019853922330224518997670224132205345108355357808862940240692602247394697867669285353908024166014281443881245167477064586374643745479598294570431466662054910591951783370819011078869639388504493066540847074925012107885638070457361899835983210798990399284304365908605081870908376806218420629403047277744783883765576704711388067629652345780747323946713987100520522088980797478588883531933131176724730617081794641729829422154256617435848192734143959039417589331355009911423995951323902092778380215878829147652847388574046060651505741218462102445133127715205838280528793048561255461617580879686512776245280318767214759042941239463070061061113278038529918045423594750904900441713607571687724115703002630551361485742539814571756820329938544484117402104187283859823001416840280897226443706148835304928356304080942480200589376121371002810317771541541637370205203757304884124665950173480821165826781049034525188644302805422632332920372181591692464571673373239015926531451911197593870961676183553240214987676058269107870696140398176628975421369063642242491602179913299930788859257287159674345921189349709555501181723754230252015744314024973926869746672502364559339617248875022600041556578724020530400087895467161714367819271669793426188183558039459569615153744611213704572251542648099658908548908923268449568846527612412195369211670376408278252052408462815047881486414646041858639954043518617246656661454888250414642036170802448048827145911384617122223822711436898080957548453387086354190648723239347840167276056028390138137320906143203098731762612620445942574728155446489463630135780405066751592066559326471222636644353588844050103242800076016924892533969038689003321634886029730547489713771832328683442500101359601512436840962359005835126697066798815381732662291483729265564681472401920924009714854594726693449245671686154412916304735067983703152292202105363432299316207439457438203385075431322710413056369788365485925715100762966374199166055011665811600512218753430962291182901191986684987932415002548546540163821066568324547270143488199886290959604521120406575573188308156250990110765371719901174303530355482910874397288689115027135140523773277604385155396628965217199823499358877095054154912149546089329169249785358686155848171074183347096399282137861165693820138324093159356123384997601107782476438494475435491995091603545719399488487027664206154786981438801142998665719477017276363426304717753497121672641894110387930104530046025210427644657030248291950946196839688073210881815546698602062855990667531601010893702863393964828157200614349754643019108298121091902877575198786211024248382723124313588557919138691969395299808337584190737770549780227722165641695735035720438237899784996858635032515604148611213629345030910998442139894735165639536412745239439738038121867447598793510484537180312317288509492828158110835611406133266878355689681571198786196273581331652245450883445601463803826300226466167376941820799488761851095555216651896203044212562149955969367273774053056453814861724593710442426947320929346659699274713509146102313105725454175779506501111375395591381371200717665316676030795294902204960160508330316630890179882544271899971543465807316216361390462255301172207939187304749157615915380967799017841154269125206150325752953536093717699979972479355664770595239613327549288584851055160360638431001920164893227477619562948513448872178264705563019916783255710156080851567672554165168496980557726713763344636261561828479324294203719023216205041232634057086960852037897422196431525348152693817885034040642130053223732116498573533401066137502490244415386462352362276161940531657565874975481205325987414756241054584157623217177725048111622272312250350071527258183138480899345426144374239073616472164570010799586384039879043766281809928616106228791241136335792587724652346107378006460491631514479186262912851121576004562484323410567870016222351473196105963538886696102590391059423286785856310667487518047405147368895741813403744178256315864987831183055429968322103166433420552559874877220797109857448899970710813807223499123797588468375897678189657642216591824319258145077685008876294871515893523287831717592787354960190427938758895903502620362191811556477712018455310747289782965317310966981123057178223351288100707769533549162244518825234777985708276813349763356185091808905193387123847159196380812457294101071010049731671330038573345420638804374257217828460234625712705414617854236894728632800197495529322841780508425592463790029222925226110015663170127299611265818679941993914801218302361550182213124540787123517177772996164585422143452577971909499224001560663810395230258016805586088430816819123495586558358399532810297317537499174586086424208660959088070295072918926627103384869575610625916887463301606388708816581113566810564482658373568053923221599577244809855843581687418513024502157013467260058045848405958063953457397176175820891860404441309118066217933410838042726102764845566075041051572505247268949404980144279943312172114017159674749489700444514882375710633072267685380112044569356778354987870890642032423660281189536047616664141111016304235478223283923170996486691944342570019784776284135708760399379025748984887566558722339059960067184196468294084722769867658237531096157806326123610261032492301089223644674051547405737081310561862157261760266694304645648569367716453516739787317443801353968424873492834350185326027419975310771338546731491316658383123694956893288290336895424883065786984146237589051544390960291365927265860737136846766265310099133350961748982456091049386791925763593740481513188640111204754909665435360948116351693968311806064417853089779420433810194486853354368796867144156433814705641761646508283759698353942813699887256027502223156475534228620099236490363682138552514938875215892616148395666535999726492945590372489264975743840841683306566963948622469039129024688834376381391070247132767690610240299968933159771933177189641442633635168412357527869899656988703111663959895886177548715182340945871006085072607491776541509506940827896411564562902796691424634749026118050752153354421601256871945747967022014029381861028773143496041373425974776806291813937287232231733599931991171602099233304335108424341445688137848126978100612938558841304541665096456521177777455845797365072223975310535682900785895748110517232522239356177241806302233503387136940290839524321240694177352815503837594005473313005276248284251327204957513614823463052826996188191319535935560794609987376227622319194549661803248520005056927507423288332283491241499096647373642096875413158960885960957871768097314723379803330061843598307559177997271390829895985382338652681266379880928967612445227506121636544667147235689395530837512775023595258297461345412194553405518330524270361603232085494877139049339778939665381550151933736113795750509958736279278000136131217646887228713761706936232543604643738535203568326449027586788389513529441790941861240625963521800488879070762569201520757306671249259112446083371962982610532500736948736484396697721249759961427974137184520966822598294448758812905165654253652767327267145645158836178549411462439913036787952693903171598339463415669354086671666402435429395505455291117873707073602505416321948548337548373106528746395435552272107263431274050310081271780725628963298111098728714454432556227454020677163485241534695346946404205513290660035222454086853463703060135196862978621565542697141579282380376981435657793040204005469958392612948484814730563351589181538156097433973622512131079019626450638163173014428766406967937804416463922808715027145107066734503511234264613705159658992182278408882849865646380273106388590758053370390654778477974101460373096630492119757275270167121988984630352353386475325871189027793577019549640115301549100170242128775659126197962946217100923014020531846294938907215263053997792910029965068408889329713110884313458198061907102170820480460782963474034353040477874579984365872913850913964187671123918828102151256902924303107817144724760306432611752552073044150690378756880996797965606904434546907665913823304132059427852494986611400015406573542421043305402338910859210042457969033113768036126199678732063994967074514383062265948500913104905384828855672111404313850466109686293975158318339776692445245108348497109770052038043176318553377272755239307744528205526499245642280479436922904249605434329290093751536260406198984934026774169119402179179085891197808670593070651561081043864621863731341580468338826787736299867309012707635320791529270752484209537189439446385261815242364834956965126796870922732134145597682131957840560291734556093580555212121008860984554100460946187168641989038524202756261345060395694300393201791225834877853263533673404357271667701280721732612929261135884158198316309860857252825285946963113407935417523880697428670335180176430372770522877424430493250357848912486530413268581307977609187460538982123488976105620056712650908595109356071487705551653584491533861301992283190664793251904410906809020896277611614829818303021860099034980244243496659878186570162024823274598933465160807737428795347009451149459148475990112759378045714663346785754526859915562591909748633276500641084204400604939039269089362731246290098398805196805000453404837089410686954278049503296388834551881182974312845376676809572118561980110715476127723907143679050315235615940870106233267593774789771027810107996578184959259040480525447167201733401599292040195851561551088938437983791062038440299171429158591755728155462499059702227254004221689686871407273491347922906917240271603146662273611854772247631627364230080612954270914937945249935971766818222170703837409661369577233190170857312296563293934803056218690693722383372350820593420045048662044796576298752820163051151131105868152540112651993757581332956115204121007066796147833348789988234632077291097298440889060353822549685548501319875750734899186845701652807171348756672454145030770477819363494228973302982757970819400099499327021401712628025898771389247026621044326153434642811959408692476656393236595890411087739186418980916768954509884850679099840836274645293726586372526476611054744229512553059344974745242216849235427945213769837110891867725633993746731839289941561051512428027314969823368676550064918216408647886617273740281873718585975711536971272284103558888419177494161597176790095001626094705472700744747423616480401890052104329541592602647455386427778463183029431583178510019159692378343779243082238860131622928225627842356961520550811213578831466044578213277188736174159995813178018252444996652630232021038332123402122311778866320946503549108595965956512351868616739521891094008892453237315207006416051539843277266296238972748680450719669721705463948496189625764432031745689964354182629108794823259676055602454254776528578040954582536877685438689831924933434121401611901036239135466169570931476535844677909020647069198393068190418511183645311281272651702839378224005928180584668006797040023810184494519712699407488958030142479164041323430781807975071748044599550372230814367388377435979729575130900425595302339545153808395544384329137072537473128803552596581366324608039098321479953902175613274117475471500520848461913991049237712534250791678831406823649141218005399179979760491007494726378796677953984880715947959235579999041672378684848056725911220351272235409992674464913436620191595158792581685355772063940252832015032400752989640918782804218075484800427659266945082430486755143541286257872481510326781723622339537677903100949216963412567509354370851896191808540371189928912987590861351469250479342701288807520717579241191816511075680855273257165857941160264626275919219741180568510184308647417235435693047239534876557345809264561838624763486680633328276447493821900056865901849522930139541163747820273372817201336103470566649811772306016556071667618911544752187772009359590643207614057390775992373266464315180764557678132668259167391801606663760030905200678750836115389072283360325472410134681486495710474973069600913752445970260158541357089165934372904559036762412271648389891167688970934066637943224177283958448944902675244209501623130393765757564948452731338300781163091852868576802087513668848718730967908593239168941892728545745212087853166424346679617473288567470035932780589141801687414624916704185197332785611234163814048679114803875759995516159274525560406873447433788096289554953756202615717484613335593070930637412552635047110678366565947898680697230507555177262775441707142521909499680434472038888435964388621961759916659699072835611891142605156543839147662496809369334013731636545477250378967726880542834785827441127265650453299978463328455320773179483055601465609267984446476202382424920842696172311559676059874669577411218328676969934826340912219785769403833181772958937724413425883236940412971323060243256827428202246689508361245632015969483383614690120497859461696478430730795539787242558586783232282191904903702732805921608791638287064161450945230959099881991534357149353010561888767391729897819472741948353746407508048429967863985576017299676646651874003694242137522817711269494132683433410847337091923469338937748309990400991393742102889632000342000628585987437488016550424292816577769536865002900791722427490008072575948480595892506912508338253710336212613121463897068253265727167743940013189614623713014405568141280058701282497710045103764533341600542843869520513925909300241543238350456784991305740821509575778969978780751276626867491563210203198487553680222238626280709280863816436846917551885326631137773115570902772280357872563342489663660803279693844509839733754267522334711856441639788800854716439910791434631497096347569801014028947605886716201664462678117845574617365759867248450020436121473231082595276252295542961823665701850572625172068251690067991052108966425618575905921060779683073046879406202616670208041682268269540477302862081155708861976574534757799448777589665780081901624042186317823964144589750716913348973139073127268970145766179514137385028144913086290572320705956348192381479427998513908032356292702881423992767542487856074628756793300818520271189137930143862559894342380408721620740074272634956556041683906913668818027355100688256867516141029579750094986646324225382797070709943092448048852811876105088567865395740844813984879975450045697710865904203578124981612950397747329276550504392508941900158365201515386946540634850340298158127116148574890334827853650011677583081019136142592171970791393421894560702522199218201628412517843031338913118158286409514558373974029805211994365943628184476636756924636869833321515685548690526991442656466636178435117813703184986511055142339020450647341074837289381075724719282105790155061710499661080333931842628637097222978704995044350135193151503858862205345755692968956025899687562475696757820464090269496900629445377692493032692477773845588329538246745990086681074825385210932368667359342321005775504661483676738539622168553144443639714172143531233712227577989269441583526121013629269844546529962780855457603438780337821486784921629917990479250275346725966761947435496526986020848181522096102395021854288766462589381249057038437150941837433326297816839038522490232570790355613424453434685435881491643944591334204880923180243445260262866792891437473011464679496927600462660847102078408116685536270658737100755374586421328417134806608907949592670880685817112161679748089158365650052845283928379290091516321674681268342957469373591052895286613614713209386279359624400782544153621736033697871371659523928714250889245754295442780200963025652038941990322748818179681941000806777447129722588696653433059034561344346663591900123335536580170650030632479142911547111630640848369514269517645255071207994128256731143703142196556553566945566962823874498689430722436791744709770748408910330618523886604215983341181406224559602291443410534608295665021189732610613997904624877108889384936253477338079070886253759132126404370613044340474127951921649692634697571796453317110292559315800085776490713256721047647500453768258545472497809600505385220619418500917051459855653828360660440585239923286707827129944471464642610383090288075491590239398729217856908029323526576120175151602863477735340317816702736531498762608237738741135720495239608822500424219793807545281770241183226393496952831106959968380853517952235647726867094790936976710681927121194795832132249608620004615806350115700543293419129819642785741824916430621447898011606156671232988167740650785522764431254708784836348953259995887437757141496060499135050449801310631192467097070277897882743385756972967261254303736696958738958571705291871094065809678785160606204372196369250691006255480714304858563025564688714375423273837513842361334482870547977606872950623291375266687083873049929860133397584974834327501906088527530835421606668165173934346904562042190445228895580717412493054335277510398604925306068657470201111192862919398010557658870096586293514861001816813550920613348361079546033818031191424711202598864087916530726907963307689183489008166826884750656488342867917841891520234908154187987773118697130028995783623990601833542103184503933478094689952736673681979860328355990455530147177839651174501144275742314291963470546337207719742769035240033364129792040481383952059996891548139092485176366998810630292542184412454621417503639122074221665913892446531171400297489134205701405116640744948973368687354422153083962610781074879249776359815069839874617588625929145677329948374382394574952435574883540998428679477034962209547741665951233229757401136438356356012808554855087689111457860996096249917137391356163281786053733059841213475596870283310898343981708634427005970342569922174852306556656062639366637491361763955616840878014651090051383975260733860898975358152357483266200580577089531622816944517668826666686442555719406835931289762910457097515494988978491729295961448244123514073733239233078235819013294474522092148862325708358867855221195451121389414559959307653045648423416476590457898174494329271910683858432600862669686723546097118239206114524974712686451862541227647709891393820048139406451402982149057122780915757127337949071341276395129480310100906638236051355099107317521712174646478795745921836035866320567217153288784061718338598421512312859180416535453091346357001238021139408823635867765954683576070779404570439727333773331063006872844252949386914067550734381277314447414016696381979010787840003014930508198787187549696206102269695302651707302557956139674258431798835576227532595779669195007379472641890279518511922542531207926167979353788150873452707263740153177413311267843707123976479872442195888315795027654153379180401033750495434546267674788990909377493759644075733790985381071578829450183185618932147927057345878406670906026768999228785397536336489252924294168672810262493518368678531691762710460499091616273408684609715103867483082091712231220535863173065832214345097384429885061013681206667172606880245693804247024571214926019503943482647462272100781036607832653337139202779980754307338282027601466213454605955243607172133579706342256959497141274737934559178793726451182727731383375193336415164238445971869635035475369206861997384296671434284172690293602627528036935933629976286916767921167683609374914720574101945392102453901315048166718898111002914647667244766192948067421690810714264371399816917366269777781825556654642605923446554145863813828750511140879758021936201423537523978918181540781964241990294352776715651335669275085464896361265657495799510098553764624759445820939012958841412300667658895875351934027840462389464648323464649446565920291880943765887304438542469091540919334728359492355160753269064246117074481053921513494916445471070178816071376020859674520428468494990929143039826202706573600078245742552467984597903800302756591731700699793845535462665429981571570032832815666501944306112888238042128024828481349974734582468439586815562897480614437812168633906582584297099594776537994058111825471953901521838564155149085739484393642164544630705334705268823407311732461316888970220941656430780331474479772962106366855382881081768432507063873303089272180894342155446193182539124871066354330323008496769025248325178224599980868813720919942459589443765347068209308482499575016702396145825010088411691635438647323994706118193389317919250088802883613100574842702140842253156542780204890621132677716829572919784620613581097071466502375376868351941869887820300843338926214225819675816895955812465390776274291710423406754422048084503786030087180660114985398748768972779955285077246153209060868547089399439251351840436532645998333843689578692707362157783179086721359403017307262187014743296885045945662959916243074552598517612806517303563683502325171247718146873351807662346930246821858985459755329082284882608610754227607163625107517434983261850898076876652225125984873115632778553983766808129916876825330865336365845068531844044889115639973715007440960662944487713138580748579286426904102447838858044227402216688486195053832531998585627304009026905307548743628623205609694310395363531753943658784120211649790827835904653954581880139697948799258001272508226875831391956773156896051339540421426998372016785198030673554113194206636832619377191455239289937465687626415412348995663896473192623383560094847732287208958588602781114010809953403623128813745389656611513742927986100277877820416624448607088398170889168670940455916033621759113095245425338548571413559595709314828505925357616401958843393303523022125740297820423780489037237512516255090124511983800788857339526219805952114651452964988584564497656515805056919559604022615474200344840907923644897592329414486932522620352600947879702376824296903773646467406378002107543553219975375134465919537720947494676228442084788614484325520095196988624798278152943220635765146194245203489810463675621088422955299488952335842729030983693320586159453739789979400177029065650591282932942361349897721009954294034029232375119032541795138459628388859983309753000161651392584568497519494537877269231154178368934010437946122189074147725512307211420565941147855189265884743939100961595115168445965257487328443560333614644083918115236713563129297484712987820300408353305796278225167833002018182354409348158185725821278549286970189875404264071971681425667537147399220199294936854846538252763537989393396631637545280139281928166171201100274923912389346683136421026659324309227707822382655318379663976957613799381863319247390923776288476918963440551714884517760020833913244992457423970077251103633132240388382621349615280969546123133678008447159231733611422950414265171473160930024875900337139926558682072106062207211813905123723961453188179076419513787861318442262903286697842235407739032881206902008599543092465796010110331128932637792826330320460993583581584785973547405834900566800692444628633443549441281980954570558823407299290837578307554811318005445978048419387158353587377175353009008796877101920451061773430798450857973539701031355006461655082154620151212039514588731976591055321814150689736552810613131594330993615607887500337164385008804844255574104760187414585894261972525046845861528056404917270550951644508301223027291681598679552170797006374644461531737304842317251867646897020366785257054055640700093126401906134309566547087516808880224813411129799147660135682889538176598999854855243094613051218349875482456392077472226153671068705334023545668015705496811150501549784057946823960942290275519586720421297578703028708042013200808375873244039724040261264435681671625868214255696141864116674181594774245180222109605735911345461710310117835232185944681481956068877192833173054304026363904386474357138161967338044802204135263186495731597316111338631495636263199763059508107369778564660990044429853976273411894182736825746718202698612241281184606703560887910564955913754445545269078036262572997461057105729849608582705775348060562277604082029507183055992789185819231700442620620794070697638984521968624015356361079384383987837161963435560639777633459060634970669373382017800454685654513432029238599759709392903689323132572191947685878738439871178036271809019144989678306477907480871191304233733795555333288749587549812414660790835768158523579228385196359932400319802661492509427181932963706189471548737048586499861841308880990732515150772537145411741446595252755843555173145470758613325735403484945064892049203933245322958661056574829881630273918623286479834512109430577269895158109910591997654445122602919174634685333796897661232087293446407135119235348075155330755906308547060750551802169697643042572120728039686672121144838576085013891239506385084515923756076500623827461533229071281908533361235682400984265458723080763261715253184534082566805537904874602879594382193306364004760273278991306424296763148368921920563264559648715325429670056498821696894311359788937524120113409329546417802023518567355162069725473177298441009405894035856604633580419980259672621380250509317243301407923696511057600568782590217036211413556636256342178454022503455030043677421802966634857076365751536960257432410911739873772681555108321096449186311084270751104891908064575371750624734930579425442925888104313815787234212296594332206970111941144729302314134878353497671884967898222710532515760836273198451273998895085519467443854820472184102985176305295658742419686717388788780192718810138064167302459203021071640882578588459460314532458083894892228987710982615544103431775694929821425561120431579180335817953189214456103498277627994622362894249278020430218871681060981419456618588620922792767030169912892216514155901174661530742293647720005886141434608464360282723659542210708645280981294215572971471809550570802694871368627681001317760277463658735910008678741845247726392701746784290979553733096448487155639078241866165438232797093555870464534238024305856961280901135334293374889525051036639690649482562472419406759948615889116237270778154895559018607648355291454395615726386453244324351099202191936136520906186263527774998362791690172764558615785862095180916240218495567669171283255326765034815195016273911772035497384233780163351152464930232442318565314528166114031342647816049978954631305225039116765678595969687646444283738097477900983267232963115556521036962198217525293298480532006343673232723721710883475752696815194432235257057252143377262662241180429466954775283629184465540711159047377031164759771207814976649044574660447329171237464793327343814063640858397074581896198874938524895749503126557684807514077522887203589141621204258726953746015781790106739445793499639050947453953913463995467946546948184203596662375994226064381806432109322712457920520175564163349188512310240596387419813517422648507955417758034408939679760121562585473917037454727404789105886848266679741796016478149265900741547046047840073699743450539587146273161008510626575209393582418263551486979343134045773568689929638748635309718690456636648138213762281660382738935668715723842878296535905432807779854591120250185412987690182823437310310629169402812994292942089842772317158884701446352204100390122793160879063674816929059444490778952935606637925321081618564368660768673120902197996727874270517699943880583635508488626825683688029845332509050647201912915017396012202599669517283571869919772068032852230634682231285657896165294610660953218468488235200232025655208941868838136371008227118244041046510450633587594610760395156679895473699170984135837162737373590510109702577805283451742599295191088213062226407020469105279461916671818440095380544417059434586410760060984947910602456549222050348391299463757855345144009469185992229225934688988485020427756196794892430218807682963727155705680658897750578413871376480728523134602194727316027494794299860452727998195436534774929229437020143318749691187437846676171640166283772558723072346064425057864228518002902399541632697052827159802035026208657805100429903048474269188054676725567024808471201126530596072189997799917559415037148459410092432979834965086213230372113189421891935580576309604966812151616964763978451971851388606483137982890050375465353261601948090336630300298808071970710415796666331321862060178102657162722564837376159697738826906103835644273844842676089920675245283208035898294707817243857341785391793251131509300758836956489341545899914594899674141269069839552465569197486592074190884017911370907140724050256879633798208659801929411529469208782338615148937561321538502708389558524459126103733393403463062093961324762747126651080329294438457479130727511847913115494004579284313371472985714219281788730962861633376419435169393017258254236001135267701865197647436030369729849406407315835003008305746527931063980514178733054650755279342426663164057448178790751760029612588950910308928023536568037619167507904952977571735885075717468807203577669948308555134294819366482315664989019578278514003702009406059742611526495350823156386046453918631623082558767324466830317258999439628510562814665582570737414928626778696567412578590114240322428396822521438062657423793589858461279534995065197229272724196231941979339009556956309064937482934190002990072325390826553661350270772424210003139856784894724684707806015457461303996733450258802291240491465574885909914004317108938478750793394195007372719275213539514694214856263746945230067272808970474334713188403330546892661205559548789731311603860618933162790224110782200208971720852632709178981297390982139530760783642109057183750803025641345140718837223681240428113152742838007834898264071084159662172766747091879584717914474594602733930998530447758016667025065368881582867996437839889552020094100500770503651113914096519163026569906217465034569559320919538941813151042367935259232371179611915274149292490476413249532652242594743889487259932324998445200531572041951224132156087915806230759427192477938820857971879229004065045945723011530023789221583059089225248105668514928772997637918008160943912064774145606082039100668942630672373367521521087814290543485991396717782065329510865676908073102747965880420312730074219059323834928337054875024629691064392278859293593847666157737574043487163148228001103132844306769163174518158567907024559589959872310923909741915696382635843823124141819621460680176475818582451665570898549034053447815894957758174628167126934794299054721679395389640315471193641521885005666937357098385125316417168630831457057267319934193919164047414350613281308289431086533767100287079346239335010870322650850659371843585498351464683152300877473410267628036204416873260770264443725819786399304609714819164610314029014967541328929183561156257342540184059330873829590121484918786057855107492350455829130615911580827727590770943920130606015515029903758933856857414745626949981349855681130220142267898045736144460294113364615980189315206218129570859263385272957354517037983657598343980323701861484284534270532660182972630870639019958649034882282941501279582563502823211500333892722172514769659513457284588545296769232031594739873475105329749397769565776206170750755944080221072551032566164379528718298833612144597217911530782665219751655915772475453994665853854262264896211633714541583948845421204634578861055979682346547634609120625202583130640292363534809136428647433608567883802648384633744410137459770280834123338635658977612218460051492449374476848191120529201392701424005021658851523042859006699449436502208089012955363173209930718038836028034337678568741658854437409728885954200696612301939256069076774610924617222132366317949779807659379262619522150397149980759095400077674604011337352854388885606903248500009918307624047987194953994285743914097151281481298034034201294494415150565326374485523418613210922403906930741493766358981189787968278670997188237922444722683777699422315926372001548397120997747332074052348391406555840794349696973483285682026762064899174124280818016508847393839764692278953438990965652988292755139232701897304115483441697543607562967963925963734440961074088804389450347951587608607678179613685339267617929324589095691187398645142257048899704063454485101894022735021773781447852344764381084792974330461038674711201456930967511520448177338635923822780914086026555544045811171860329970983862252377586863893206782872856799356716040592131090406509849972562793405321004881212644489870092945925272959475967817013028350353077232526516922515671082701149246169266660804637894670292750233288441120652101661992325819900513611978589649131707032913328619415691969396230904415579675371212919235960087310144413247474479970865997242847394599187687031073498132047755466278450207574373574802361501769019433613298691421898127117693111656759945243422021416531096272996378742357183704192697927400130501205530177604951979955700956338953695596516532377497922881845260822681033710564005747014052934082289031079706711288442412787359305919679713480585216380481462532693556921383619425619840692404476586100956588731449963601017607174686997048650200791334883199132530649582458584834296802471412394940568700993308282589226353162702505483590115182341778700236053148857315699903837187918078047431705170521385648311868005979483230059202692526778327400574078596279803321317312025636680117003002102691456770111567828595545482154843528585260806314445064733947993442254918544815473996809185399060622576816836932084110356078231847554417805518061586163905402817612199338352608189011176299412061587507045853506477174099769522259427331905449083346980897183991047464031823080871563511968998969741357026585877363516559825903418299462172783323428162850928632637832586966332326257742655477436105746763545619314756036632737070856258339475316128588748632320084785223327248025046595057817795177657635322207996831817990819435416689370099994098674684462123100388235573254630330190617617323769844029483949705195020322445091902696894839840438404269628909992252116115963949077451149389833688478458876646857067566311316784638013321168748106750375449578630086316108102976898643662136341138947263724928471510331556252429068462444477761840760065616046389703117302277268929420937833307310514441935570809275994129159508575168697194010681463411286429126043524745945153868875974705212400519345904369898447396183267144577077124076300501193053652714334232664954459965824040803420501649654367343727749866309550812750451681935911808506637318677125794442998067100812823072528057503873904685549454710128908486702503406554648864191734262354037103471334771425768409075078160822944160569438335870630182612452286601480215041562025872490093086449648821709493753206572134037507178880384166886477076620316895431598993301110869769511998442746123753793331987438904527326725663857955501845280269468728951127544002681933197594691037733231864982666041536168395993098659830739719129688596043983107132780236732067071435962684538607131650398939442759671124309446678623990355743558243192189130594204756605057821832578520841238412700528827571892808614468768413228709983043646474832836270916454531209997956137732580992621378219667119130690943187971878567043896071078192331618322310111306048415719538966468333465891522254542972329329754287846146219149320387227431976722209942197853965657293974479105673004133577131254303547026722529720391365571784864399973511759836658892692783430367565119271230764219029364117159799287985161122143205222253580486034778205778940025798077675270745723186063259829877698405247997850985338309327448922575982333449071665171272075490824369306736040846436718785882773028230307038229190484221881696685958140946344952871831462523466116348249209277471291168176632127263793280669882750919760127138638678813536586739555513177734143337081065048320599507116595112996086728591564469385145137962225545680227614739195205319084922769672439204230540849516469031083775288572826936197868622464340705788387657108417915892066622901464421582719098475345911589351397406790601994343281151419969545983073518602447300540529007065793840265001267238461781133354576662502026010109321154635832789008423637909206671782687054904370707988901890688983077430094326815700406379687069118825598960941994774722889436781390822672508290146782806878778858657150154182195302154838907914474346465426690753696294729986947108481332610647524850591041320055626379167746523694086481092812448443066396327866355633181019025933707324253417484323914786614622522149515565677933977975408458971933100687434813887474654111405566459848751034410091274164738935806353581541993667445882021602338931470815656391526086979320786811307834237313181314521089497428788362190720401367773969067987750792150741314614498293723752523495516884143270991808892942442055637281110843023481892346081243451867322564274609147413614324088005505740293057679741245641446308690996329617597240748080931091489067031457401683607831102928516343366933867926990595081306522575234843920724411421602060836887891184794835810800578013953244892885165225620389240250927190698165108116943000741197536581699555127192711961091764043540139240682100173262000041909965980032098203562316175879763520014369136048249416280277402171200296446730862290182690081329106187244226688367512825839804399399253373476035722320352183391519279985227077006137899039674089013002715323107176500599748890296214651904970333295937382987778881650807295318872793955253643925363837123675848948191931272348892924584304958618133140145430313975803217933470406868030282885778074728851014570237462708203160257562768576131836420635858749178497360135852558378403141871356145470237721938070978501754452843047649372739868351092835307483302467099830277744788068422136407168940211132567022706101480000690126725555719896607355146047808612574762190861457414953278304771047913759970747821921867945416625962662121577172529041229059831070413606131735149983046729088613002349165395509497473776595458499266222682414969522427761107117327273284176870839810356151859003848206546746125157899745218858781209992094967988589434098659124011098194958304425587249747540239937677243608293221517154436790150684233808793624366853424080040497880243262295824901388850017639681873123133443412949093174587496413689038614243737475292194967952160995942416093655037586267065465892452594734807470265163334687837971937451658648946128945298768724837297696737294611976593549718432594469287740170144718053934101187405113353951723211761677927022643232657906225707194434556797998441422090069207244996976934188000162387851788394858368134480566325309539924863960602669674974802504561923683914071558679229089621889784266730542338202587974646207479609460575658211970609073648211399017228872946622182642824572447968948949613759272963455998124641296828461946837527211108107519422173242034078247985888799746526488954018072911387033731382417441048215439385156613766974635542828386890207827037643762017582101750687983576025593156414590745242651252407225240375029290680781942075434235915858897633355703772872073733120808278574166922628823846798809648028174376112592582207009713316164684346044924041430543130394213534237201129584302821058854700207357724597747309753679684613409023744195574269012501230510930231277389058482784838616411946398002161672485743634044326232713255232664836194275566860703580342320422218919631454830278740952581841295658965887746049245870143926795848840988551164185507864551165817301739284312708274231046221935463108414919944256783317077992843187460262840252003134481459521589870034480731413863466909823367903569011492560167959513650459345978082162468489295251314652138486131552490402100755301520089939909514347113318364450894083632148502830408282875713159740547315410503207577145194650735657353080120530123832144521942513668083773480364992576233474595139796754463690880929342102363524139855712681279052512270026923931299554130067859337277108437881504118082026274344162793561855226281201844287928530665830519022034986636076721267180539263495230326037045668258705389164792208684491114879542215786446046239920000506693799242072863939891509239712486698803683340420900657880390360327320417178885052493535479019581014462681295496565578848319558472812315315060093413121069361287525422649802531198116750977399163591152480026967674184123134639233522745980088155113226816562171590949120347105635188581072215292849978923433531650591167183258090203565706303424165908902946689908466705811639284036489723897277808048915218911996905305481550990587054679012103602722066845019298038997427822614104974420074707951472862690552528343928746814455959201926921008270560546184960467290002461512187588601788405600513527730721378156612636140609582375025068044749181294278905599557707705236609811728983128040104780601093827207621075931714508943043695652578108165994971726722902887770003667807546497128926610233279063935935155684539252655712720827952699105630371975827471547127985249051967443790028435275694872002962638938918411446311637001523309349050348161244331700639987023095512255127063181584702325795619286150129611478121862400313486808318379166134544104723099844339438233077107612935645144558468143132538773803989946477313625731587464466677686787805508000767607982852287981317397672328860675871581799751342308610479879240612941393889122079290669541619861989257300592187952474494039830172201678467279416654930351237310877264278803249906458242543528387750033536735709492210132091636310324810728926059041691172390314881878882245908335516799502981247504495388287926492248444528417890331015416215909439554154917692580342581493496998540676667721580248397458640096745571253016492012378628818605690710014570337120072896058775919708844636159117281541050997412616257082306214288016036486449564895806993260292577547219499729946520805548583744545338286916411111384847833684125378492358758858472609332994836997512069276427809408372705569379030841410221288329861300873409288340446410970682965450435321693062112912194860952132914086275863175789008204106408904093146413018378887812302633957357051920747813874933673196980253424737634498711166997904243242152124928903753575422824347717811471004765801440915729807001771858251773494409957763424555046668844243925421366393133560580461968569469581731051783726634874275637697528006452778283262330761786622449577375905551945391973381725087455696538881237294321686439689254100673951238009887896281960018741923092092229441063419744679449881351774156815496671556983190783435866230630250335756529975556685517883490442769762571345410594449474315772465892573217336382250800488559505006776087446978851478150794497037623959662554698303389769124114065551482888099588228456386158511206415138220134887007429200649589191920217753814034256035961909530583025458506929857543970615802105348893612392002790616407625228738156236072010711663048706966245574457175853559891696110473772263926998197167279529017370410117740516116599427116545549918975876055777140173598327343785717339166372332502402610434107638995617186770067068731587857735867488315611478762670986704524318741097351575434397586688202407107903384326565555715791705682507361972951488200843920563376693943368188994240487740993545341884197171890026779413273034007769203014090455264029004508048851877252985884651749774059275330695666317103210219116216229043182529007164427266325471458963041123209913835412188621599284013703335832089953989158079790183371326314754590019271195472078207550428927667340828969899699998513467964196665091219453763908291852812258150526400720756538747300565274836831781593721844543249570869630535202535088167448816882965444706068933115359972217229569825087603520393784896187407600940948881744143158454792973367069815186554895213211766861563315873112855052158087649286676510231410167227049748674922847325059561115184165666396716108808205137038704418592635409517377151797440541189518019719286751408805217044089712250595688315884640537536261590488931542417604707272359603732413994237114045993863931836434141050810902214883007467310189755341457100131601068314154605755662301412734984718114874008289295976182087037873011571636950297883853368402071210592103539944705213598197178015315469126746107378409208993853506689668074378174045558505109674938249969475330764099004378247466785249658007076816850331144851782847445635782555670770206272940732888668302298658261953985403052215690619841017912025137144219525073486757367493908573619297181264540533905655153217632512003851948997048239138541393830265825216242245812928224549878473948445914483825167637911478828509500077123224117751301814610819921673583350103036683339782614925277673872592412560704245281939690689360948626620503846170896872810110483169305605642323934709026034062148404119986455994755390508916831421477348513154009235965095408893357782358175689605425575768196787412807377704474390889399334384104943442664222730185035605346411370620805256083649469823922544030577278979062883763755268164105873445410557731956681854389370177862223259546345044295093010264096672071527332596482805416227500423682521606299626626106526511594970906448972500953344233695000669383672862817604266244489145958097824052032713155422847672408743498097571887589735853689038725280587941886933785971732930492062830946982444909295333715041803557898286183073686467434578424884162350646370491943774873193637632071587160848154161372903826127621349287495810769255993280944124565208932663983936070943376507450544644704831301356583797117133132083941177405237970739334973649074387712210131227482762289447250009827722644277211019013244217029642386309574491243964358546318584188654347595232309056103112041393222512357020715278849351650816300542771662945290787503445110822803759200328146063715494324830965922328980013663291091153255896249745319464069228024255385545818219573881214548618967354378228098807433771731288328696498121677584795453548413862385384430732711437922108538525963692343519488299604033802434055146021155469683892973519358755048954659652507629212746359101915947791993580221722101932916391596138283971268053883845201089812945975398138314227019743748430740760279091908968976023035391909073007559504397382484972246496542396629643252722670383038391259307829993471212532547741029613010234406369760004436457770880911833734038982968279093131254690167363415129107925122395053886071828858674289785237095040619410162350487815513213949115200401673441483973442944183245044712861036574055262770931429348532958054262346331786781127690641177856512482650585736020175999692364427698718884608293815425802427683822937851631950102034962398975297093170016384829175524895142212415006478623962013444990539320582608377828338527328367177428206799401889702694346027005350738962397168578977725787599833700568690574545819337447171831319760896235101891603467138590143435282757087650002703408730279662604443858104381713328936254245982056310347596322233416203555880630865691719245114822202807022439218574451557623307671080512926662458896690991199163019461391888572364180381696381274626744419179514841969159002937002547258836410729161073827016681650587650170556848487099517627979977186604804587496579939137429117481344498703656410656236467391622351676560038647101838567091728798004508903762119461229774763286112555821245995276504697384925935774089053895442317551053401648006933528073024602426906994897340305587943175015456435518966145668795009313021099556483943313261631540008487088424269876419640203537905749440848979973009858279140445139784092937458831686203076960633347383944937757147459309713207215136666490871048668758140329415499286189776304198370821965146197423664505629461978114319681356859276544079362558165258056808746148257437840009845684013987604606488052265566715935632992116620371705679088349301475879234545247778132849119962182227083894764263432598525528343079550016530592246506946512464669648394651700137263728775174715320833679479200294342979549012602472167590699442476462586233802527640757860573463780104148766966959870345894652716420648057190323960546604696950555129311007273302504629336894055242183764188782807193341221324144992439125784180479512919482949037992081829978713602827184941437705828609831586523820274821683365827395815457201184040630956046773243835991483132463894745157004494544236503339016550222652886500837414786558150203634092667249737306399879413567576452872052370435899602148238581770691812810734082892199932123997159952289713757211199358679700567792519340121144664167960840505471385145666384948373054780603339464549024817687983101618889494487026395295739131492558771334579770420583183898945580371703749233108697413501031374158943770381567906985013083095903339951638830066379082151910941216314060708603524302407187952357543192586994667251450522134802883754305051402844795379521275984367582378093548369282442377030142504204094311379726048687632730874915964657841808736864687961835856932532031162307817657041000549240029128893375664510177683772073409082115297140917807657155168517276649640539832604479049684121249758017720340323534143152990789426546324919379078111934394134530568906707031871170359916257528234220929239172232549016058770787991201712401410228635610358511568051570766491270235862610135305538430056704216872453981977983328366596307350467245782022309377321474378249764603399327991295602617572495894677146091760427237961216784790299218233678466349007333727723751880220585622338738805538953151297610560089278450315821662426085838219129906440589070622636330222285395112933870203292900348782138810115369900768667546128674832568672092258031919198058329287749054316884062406603102956765582418219000190985308726295704946897827976831954977863656185240289897550830094332986283990159053106483310012487567848101402933558116669065150175774766978591968022501400439750442124562613673955115556855864334231320722650128024510083577316159902238700643732459345246698316806092012443851720464757083406396022431618548719509566603184475976562242564970153537793910126550107165954401400332540121779029787296686562788406270094665268643552214793423486931231828133500226920934333139503046217553752579730037388111410041658588211988954649415362937294586411380480425547067982721891063498982733144531225505905006641027512352932523322667744410576035309237003198488897520651040263187701815045189665580588302861193855852563385914170231443668592485663130735668229839693986510026589379087384021133739736473435458527291439862049342202978980156997950636364894706415938170886964945911182712945402624439102368845234103597882046437803622068029264964011293435591480289365439568400006097200085928783999442096973866864717006524116808699636176138740244865975810013462201827506461023251529264533738081152445091224268451991343147547880646135684744115785886667368146549759519980377428399249701352978114513977274236359527148118236246293193376646847098535729862845145916404360481415444717348223976303857521864641386339880453824906849333326751127334778731531177217082328385862320654306308133058518440241961002090927859015944675123691586923665533567830061188625425127520779813596235454865320062314445367944173255544546120065678623386068977396938677850267560585606925425072705090844194669323479826894234839381423312432796373408355282571857059410358718207240677486407682865263569216290338614997307686464177924965695062319663280565464496992142441252117083897846784266738528576472906340880720301493751374657597082007606053500074144283573690468224636359215039971412469236789597132157808371673839389257764219348969831808172607149141641910753024716798278126714286800546916495349488032465845321025469857464509852276150416139462195436185199810423482987586599430954476879011306692861915699766047747052557679851590258464560432171138487155577564739306379407166151035615417719146639494626643166555129456823912076396901318450614508913831976626250309249084784898491207121179418372474103902201547314725659631433814958146542374603875867378401446630314781932387284511430469900595800676222867282162250248176330394107451410811229078412561829085312435544929145858186044584951696752648440109672560499074332832821212860694301610476538720190369317149769790197581222193279492902547672013196044850341200694549490994262282578489636506537941682557031137317687955812132861631974147542977402096530862914128733497803230399053868597592451247999840395821397888661446985064489532909007627239323094117894045300332222609691960519741860183874771498911997112041985453351676559939543940290626557771981214446177260685548149428013908288350166422627731375282492072510928119461383784576837682888454263627553149992767243213476538479157709587008224037291159388231893327753661998283411150159292576747124649096654440662196766546535489605948823254063451703719407407350811813169026344080063413301327036473079780934844752613840146025085504954060637520094053401891551874511680195329026081085839687790511403982583723944259372844862046518669670630134728185217923881122503521297658289863718258659592569312740037318167716165980346236109394347158056734116233972618887403343572367551372140502781575992397021717432040862308630298292168063068841807829329055094138627770721498955792066087752425079731356049528263399819176592710287764109632485739538796206717422242783155310832445759925294247175671417645036762345472278036617706214017027639643964398392525754550548937183043977942478247306115138081345840307220072085329563385100520145848469504993630007781631486553810790633298707306627109434265122131879719915249596595292539154818078311158757628276111571973709136105175868943859209337463217243987840724909739374963386200850209669323680349377564114587275214732963401810919529394379756526318466812440233850999820506631632482517966506301878218078188487263231664584901221343493707935094025481782847545510496829878960153799825346276203445813210988012751659828565496934774610788314542152903475917922730137944080816654729620116664781836791179520766458233803011007032431091457845460919539284288432847612874239533188632013918063302943774246678361405907044961253981487326816381341161970948830299424632896072845326190509776406632502461837073580373478168746883241077802101069650996106411975028043604277369552097467720358056680883985362553508260305109676693798870731336071419349127519808937615714347383532511796681070840439491104429206690215494184733892603760196929606444175583031882014599253032827913796090207616458994378929334678970825679185015395014192994925799059073770127825479697074336303723701080649088188951950222204208418037440083601661266633382525953039493481076145284786000189969907064779018441021941385484076015187165176508573878076907325534531048659040272483460771532437687874078828697603903031238962310361418281479664649891119699516107332074768406043612458286559038733539087692568420078696901716102232123782840052501442776553985298709849487271284916812417394917093483091787529071340943251469721954428729537941812024499640400833609523896099876809237190500729459824537734870433230890001782757991484412690857887505649687200171278801575911121997390276218792417611404561098342295616904719720709461919789729775185143986989099211449829482208017732887896788814271746271444148167855093573281194153709180187946287514015560943789248884373077730592365448629681158463781392708652944391731794816415756760891714715730561311706158071648477404959508952001097197539957492169302699316159949523445580941400595374060699833054366796962520977830647251888527825064848042735289062992665889692387719446683496778402037366804950291929228852543896817013987487359085269779497513599108334301471404778409947689359412132396003524175010435140937929766234512148223296054296683313509829163969541399714649068943977819034774388764172309932952832650814474291047951323298076803298860152290005345327090435172014326799953399245542494610984234032462181795126403747491948131502356392352472777846185456927615730318236466299176968907432872531452714575905467313470288103796445393346113703445879107385185964938612736504355580066763357740559414478766850157865558270137723638806587321515928189622896043046447421662699947808129694124510888241434481457456465739659916726280812978503047496908665250065481048855033109695691605578753690306716834935530699183804250409505036586453363084841697815180311887841729711239705233839634188564554629404726378626434535605275621748612822677091508876579225658639205983274626161039195153224620646817841900157544580880491359152525815289025949479293172125005229354354305069871874887681259631007118460895472575063948226464165917565121950878261812912534497556580697003672724086922212283707452641248178910741561929269399393028067661075588098600238314285222790787989199319814275015234744183163958849569952794350478191234236394448906597362049854922215354362454171529863048884089203291115314870257523876174048633420502256407246512025421639302259872138994056039612907526755176403854874780205048930998149164714374817028214361259810014618920406494627364015681370345785023155178593872974100822219186026797290158937187680325456227849329390746301164399811527463323313746372941045659725966062259893357302598036270998950528402647816587907437375564909398619263543432807868342512243508521393042316860201185539717391769162339824876058417399756775733674188096545104893659524466553361632877827020647773693415779603666603307990292209125837953839086504390210609178822764745066496829903537151473948836435076510639024302579466021431670324943979885163845540372474400228897867630826985449635438171932269529461286902948906351793100321501202159136315512652918836862536578384227191794505835436243423422891383270906932283787281781895348038994462313279824083438182875388651266876695204812365622229408873878120976901193338184053523809682395530269868051182541842667256377182677362953355540252001407637818144166495894789625350599023575466457738773676093024797775756658442042551380956779904206566722082943615927223237082431021653658250146522412464348001601995231264293343377688590893248309312225752482252954555537680022754876422556021258908004344379267349910461329827028940496133450816850787805545865389473884436691208202959614833347138474584035381044211482196838709447962827687423440878525543972616933789048487564393664346502240829167288842695857474323511047367954484924640908768795384846759197641381405764986383333300336660390092011678322709411320449725135214094021581625717041990196090272941270406002163202460711599526108653310570418421854070990695659269494981652260431544441445596287615635004005869242000797858968235601047132420496734183724743459697299364533559322444545762551560036437023853804017403556625323481679078951409253104436381022990590350654457559608539879392329336080510334154457679464159011473229393742191261856212204390573916443588076096383672038069273070369651939884123865097458745370556296219211624267246788491623597642255201511593213444796442312775183049792102484042194797556541154429913547369540956775285842934590097796255142711060223136085719083024581085198385944536659020805151772951342654319932044097635997944030082383708328493586592476466424631004740818222913910909628401091583507861102757365817796271066548000626645911796280525854840723038590922574543846045325821020876801187764631831246257369655086625529439049441328612972236076809360129647879305908488341596164594807312949656423016672704785066337835893968518914890287922445924326638016471219825301469616207149283712155355452190170942097252256927040185491444520739924959171631422706087667325631921725441880798117042732333568345400372974542221811406451474459704604836374331177149842333889507987428730966219343250157897365368874440449468405816095999860810086949158330119729076513176797138566156720726832224885131565461900275349137063024138900780036930256988335093414567834979486275468690364760282600708533486196076717781510995296650395584394045920487693514764296271395429007560334894454903153689183457218147126738431245657227459852034117483107669579159728442237365746632231177325113557676675924331410277423011556895250053536437254137176024244399969635620734445967124139769959216712924508439259102889281712253356968164960878129761095693411782218027026977381194166998855830065518580925986460274889824563825086138708243027527995999128068621163200159650145797297681589887613712523077308310727728926937455222497481542346175883027284767093746191683253339839602225637479172387629117004379738496310162791687239137895812939857632610086693096732397468407229729438615002833968540915431445365199459166298609061024434203149318041306453428715074948036808663252825694246719769627020943175193791256534525899551256901028557440768700819662682380489089667180503327375424786565875425282542743330698740921688577949229346633688300410640380831717051558990255707709886484216900866167612952509432731939809175766703340581754216976988277132249123564046612995203599940905466282092564233067579730924656861859938022520917978032003834371423255126238468780365483120253636660743533734470736221176967121768979244267349581096518022621741658473011366178561300290520724679455358080412990881775204852806867701952034892029862475403295126761822115911844714850814770830545564335289460504371704596801221983635207977236309051462789639314842371058947259571749165732579091483582080728440024645671240893401827546652429326007561527989048818990744001188636428244002928394903407305943242686728955185051585658008104321382305505651915650046502346051536720844592243292001604291451395035604672805960809046434373217452081004354855126268581433298234831628394487151577224843214418624833098577245256845915428788801734165415747282947326016082213174183056176487417366929051588655585438992734558527519893980271247911134109765369901378989587919222342653103477987638667984348122126470681299621037767553336868289542541229521071399033754519368765998800116268174041359976020571167682880960300765774433553831271450656014628052881403272012088338511780273555383314831811388221087967358898012384922989672701521816660494133457945817982612120393025477226363582952805336982146071827074362675202380304911755274675597986592333232035079873649051942040115169167781146295969406175492495940710715628205684062223416128263776087570162120962874555324775749268008475710723534075497756228914193466733217164798049587555412984899353077096950638774278642335646969253999339121797307272496863688761126094354457697885535284207323164976236249522064231782949927614383210897834907602077674563193454736142071866318301274961366021514925383461550076267246220374563770334654170432986559874665206379742707876537254333842913779542802402053372019692634849268792239669904480711342047988587253544134668225350366229329153793215590505782512602966016940470601390104971119439786224869731584132422716754498937446208000683766058469841306470294731221445106510132532943932610911084889785739782240823141076871184823975709590118273614066013650709262557170696969419092308810446165595922443662845158961356182465642891665699979226337120613529942280981187284142791828484269740114298811385887995485325136931112938421871277907961408227558639689428680204627057220020531338840229475925796867827889013283234642662783771916798383773695810656144254803450804439729758835670690081070495608870251980374522842225499607138352557933336691212488166030755902736221212361755896354356493244842288120935353210306299132172737742202558118840873178933003045698722511682548864150606965543081513871282827475272748232883917208066020947129467341888232140649126598948981411591868905163524725419678648784579600401561521324417946689155329492686505753855339418561022675665348161649595902526971793261010602033561649443673751879023871851501115299631353949263122360930409808727336942356487904930575078664583439867413750318448749376858414589923454080420159172651507338452722205847606099836591818198509268719058657667403170703253830604292580005770508632797128180282410451131334577423999014705215519865072674424330387880906708527349127030313930937150918808048460794513470317760162452526275284657414664182065087411218764605904844788980127667236082764067870126586066016633653982843697262581301270475355394078567803650309012387642091934309103024551651497284462013686447951621428098335155769724003884299707680605449938082107149846378902947450990986960929319694148517577583114465108682855588437194901091356029846103298911318140885633603662830761073331280879207327153850884572803921598328689851840127071419673752339737785651698606867178664521899233355220914410773803221267914704898320193423569122221142218019873540449249309763129231847045449684561792132586156124261485647998890127459012410314344876732378072622835695283631970868980795633442003545080997105905319140840361384459930851806526753845127897643305845792131439895361154093623159044120280574558857820172813815011943125761031697334965742263852918731167884819949801861437872586043228556860235453329136036356277019453118658055323043751895526232405298300729828788110092828807785137579080295502091359601764387928516345834475000955145258696990436983226051226035472536415634283554649226145965698256571518220570039681603559062181710571357725459496586596397505775947826793242638316640184223406815991630962993707069920418310456051381101526748059716422066973816605003510202976987641014709926616545653375746780884136323589558555464717028368513787045991271721806783325048437586046731774530828359875599818555452476730491488613762992665695262047454501598605629668819970439674759889085806731422220499403359063952524974500891475733428005990761715396106861293042157815669666440466943668515443022243695882280496107587344261499660589193913228511955506488313633010435472593608095480950923911742153889064080110042171584149573567560279534246601673709918920338865376101792093242788690884631063408061653033213883564154567164213281702910812925575467343104686381227968945670652974037300726094477984703598315267685437184121928709453697157536681871938574367692362713478418980114872038964196195209260103558705918409283500642222018144074984915627029844950927267375173015587744268610518436548789341108810023220576008115197538408757854952457117915360823623331017223239060460367880701819125274803590068913376738964428560679766862039784078511973770119660961006278764010225875305450572123680382257702921858545774444414643774964802442029290913948312729315066977197075141250003837352965128367720791464754371895784553029494936895121692200172723458432794449233715695705716460790067399574760820003986782310095763123871417624205083231625706559736385418748892017344088190838720892737027913834512067900621335433055243638910843203480140186538780630698519099037125108146749801130790357535736580570508886031430764888776627593874614330240684287934047153435055961584123388067851210187055092212299101186123806201760728533539856072611695713032090369170207067135663406381796794513069756341333812686919904703839515073603046815383275165912615871445377236326920528174124818522530582744535397989211755273154844680876143505407095979908075407791828575551133047262155366780178453225079121533124012950689105431236481021724305535798721006896596500718136234888382548220682481252595182829291627726710041692256726603300956452364754849927941694962178710131559392705761885847751175498224051888625793315508473343600806659904833227831551147409302515362791391523429344174619422377270352273399840210933780146383612809653358668001283195316117115909616570328320934553886243205431904667788112978537183484879521921924998396817134641247045107624789945153045148772062825682478585039680556097058119292424354558648845961438151853490469748604976695570845336796056419365947016052609698216740950862352745772915195740572868535193125238042438551115550974811392595046726124033539227400574672982234557699660690147313563558850416073655652062672838367676398192472474259163816377132360910755532244634500950699885752439041364616127236060125941332090257956419608889942847180269854966908064268955087991892415562728828192999745285636418070285789334446287480698945265557450016152750767536334856392399524871830733078895870275352005532916685732837504473600047217356297184212664265581314142893160823032632838927596853588842653405400519669895466780203341923829691973386842586622225695947251104609953509641170949833983261193887790920281373652831822798309191093277293270066062413898799902585116610031029645878260134871000584466551031149736822235591474188653194909830613724683903904942280746814232819901134277435472812312012807886659350304637329573382096062678938036538584669193660137782628893529392775928225886436509546237351878965124882478258336254270889134872298888578757359601631054993656792947393203951699613529458341014373060487996307828887081857739033467998066777063596666441286331516983291202501105519170557523997976757928116827438872281979263011080893072417843794674372499669120657111002866425278201715268635713066010740843779899550497777932882195175829704027297180229094608642753922875449097194042282176930043085102879221759052368428701601851433435058287194552329524699184630868879111859400950592845558555477099588621564459432714579209226227017883942088895615054205401610411337194482022936312067031379155629297829764108206374915466081883967855283853230988178244796871335591551409425934114409679900379589887277644933366649608094463549949829150812978329072688891688139073766342915680222784405050816726149210412610758961141456506043606612851927762722267367955090174788951694893469296925285962276331984937434596035679412178721485458126328088470397621528251017050754907916428693784382307728835480612148558662763155234094128994775882805463849831368997618159249615539233375065933403673390330170232540935528425017818173442014712436458897023854562783945261228580371796504781414537725251922217300964215231241635884768535501040829490720704924672580865706306342141437711904836835301269643124509023551345671962222099974435603457794131316786971236363520793548315716405354141720616296962325749292807857291905742237263314286857829791963492519895220941180253600799668654301015153459824877448895373984068662158404121290880190302874708924403839984025830171431339003754584704330726462683602076834389989473283674408736495417273057896573040083932972185669552234783626605408542923238285011115062608803523031986222115497456377656620404828653565499315047183642198463858452486188543579822486471668441864740467365081458083565426971775738646504620022252986281034929569335812428994615744736110997828764676009992459513305008397604905210281911294566383835147853635538453407774051172224036030404035529798135542738155250524761554526612553512538730321387980412606005284318879405183283406610537859608749588345967773576136860630051316498835265252413711688582678603588214447045916207039245564643027869948253416844908321834844166812316460475800295724963936234476408044170263332349468907391559517561545606105740495985216391242575751900964560022402578584122182559192970656545575970740912760668122607162616230220316086568022544262106803622704368386163797020687511303222208283714445396326196352441321739636136573524342059392204054807752373718221048162226983022958942396089405815427929464975302805013012412142518491443794651890762954975310830324829990293759997833319530806391982945492574186658460390689586308159668171267310184493332330238091711930488956129152536617571251486799778134140674643691826178630082833782476111837653552657059208506876474757438025533914526113001656683424690925403253700971103648224996511062271636226848033277204273902186471418276703388406860911679301779685712063654785324639850890036487643696606113141374923853671899633200311929381033800967439548656782203922306332102623955444605955694421195577471032821475196165991347856078482782169682493953062223656342983089877072332871042948431512408676362779275170144044997076311166510823198309245209656006745729906006661457068560913271413420657528852021729073133289419265824263643427422286727565534644141373273438428649764624132388536341168430694205518437221500163636039856169962949083555170318840060043098792883102281442686307149965239446397237648149034779444694001303088000247257124865844638311836893241762653545778271223601241871980047192542287545529459388524944645323074730295407496570218716150160109388725950436420065538693836470288403588672188438269032470364223514289485540782109615116064597315611198122047740553299219054825926154201470793623935291722041141972258345612991408125976445142420112338088679085575781374782568032067497324427156314111428161064769438386471122962077029018729200702140273316334748788419704742196239985960953485413037179761135474625486836960940034555833578409062214572196449499598264152713066102517244829824547633590753590548302862479992276740542504074581335781742233291088060294596084969940388105875116591852617836858066683269315679068147512002287508011435786456230588914684820170880799750391362252843166153989003556417940302772206747784482696232502920871167342992940517735023312584603082441449788671212772838052156423314791915180194573374156717648473602604023687174758575733628797677662841975985818775608347499469745821755104156942303763974218660812916934452607397729828828384452534499358854047909774500153629942795749972883392572106896413034846397980560470963151322225339666468431557814657001680323227043721742012638348085205957907196841093748361705968107942875951217396566013128402520265096917879214138187131582874171487500445248012942407984918126133839533288003743380793785794812959746685924061806802925696883746851433905981737462066684243241043178293310441782065006574805940634472341849640195714455292561744485754022291713275675078700314867920764158296710384214345668929524480720190340616447542669841850095271772053418478669685908643688933755586929377912008112899720524504709857234277719944539453570132995067159391731881665210282745388878257867274830091262129257730293654249686364319787086782549635323067759651956394775946590147421225874993850563272312401983529861406885661580113359539755780547787381519412089512162673859951421479878624455350009057255244448583940195140513738587685692236094758654197921156644963589399146202256618278482556558290848573451488812534146528666700284783635477394901644360877892184231444182262665460385576235222855164081992741154014136982356112114316883861739910891087326618267540884640574980283434896636873024836650288161958007924904496255454250989948834081448579770340021685744296928755453581966457311228334071354480964672072960813209445796602027902906319594382624680402682684747038408334486498161233256237567404765424403361864934444693875897323093878983202645181500237043855038788745716754738993005850504000975832340991249168053128329782561547343840445712994117185428746236039289669598723792682729681761188965348346176478087685835710452716454661054803202927308810345344648665298259691539033238867506608397858407413321700279506940735976041732554384167750878011957452341605255180265006848985218732759025704123831893022843592287184794545818465349680253635118814725229901397901558783419999190117303122851925322587014062612545726544671733801223380223845365494002852704709389458314561486459919045432726670582993558072731047562260368070738087973487861291994455240269756457991328939740868318499733098161112272796574750057313880998702961337587294888364445742286368992650982427549481133746057819948547633114693984913906131648831222736188207187367000216296625486791564440161367848498484693095214165001616741979572931667982668586354134349793710513935295458966727554129944257764180833802859579388965432895792238402406125125122819871956574601819909365751968103384295734780189146700940196561710239702907315417593238133312409403971364257181133988166549222809402251070599930957933230084257975181512021511361728685521401966615637773867169545068845993267075132464783436792934487960556096747078990343033813280141496948222948898917361261548316880008173913746780713448289520349563209788000743264817983532988942759050327373870307498814196414936404793359193807616204441917750066303377739216647788919615448973033232947722192529911866030117358667296125188871561675809015568792911873512973507947750371016556633096703348561624309272691130478068334856128139567700468243182952531346051935623788241709567447693730665532964849492592080692877776529195488363767361096192280817804925377556422329492119504318298444828615480477436118464674030342242954136960074618442342788208304103698594523076886899486627159623347009411144210974183194771449766237764590520651307782221515509733614962338780245561416909811114610752619493971076470946114237934121642595966265232731676944413881655697548092300949072223312800661991767305312382711980665947980480293149800308199285430108175381415340832317179985014653564641403073297977759100821807284578628292322891008754224944858463461640601675157780103121672347768493713759831515486559281889239879395081150027246878310705052923549987119564995857163330810734651125785696851543508516601370359047340538435717212666860986952861457164249151684412650372334676976849228287938576696006790392168202766258185101642832918484483086341801741774850408462958934221756652587282847888211777695482666516912270128157358514790421500864249334012140823429736879947148374721814254135858915811561139469656632140141929689783961026850200357270477354574116157555878722802122960606620809518550104233129713634944904776552864534424094013969615239058875518737750501743502652809693823719070922985552931080016432941272289714452887264961653502035413489828894600145781601151353179886306493849597587071881278066690179374104857246102654024816102748429689139034463739048865281575800623424238292247557165290457253972870693538475273171156094564146826188073838286537313669583678687506670562806129267224652881516935539864795135683590209285366688377270395136724498629530992211460269802259861999103416337723283191006403389013352637777283667238346413961197640664988501779279076691123787506864149532444385127382984328317159167588442384941850305544294721087825005494886625374014316204931814573800656248928502456708907059507969848808989192195208864584638114008435121815723256682670217331278298680273356145538988137011861991573111492869441458991929511043512317113088332474354302694467006799356106774619195654787941123755344739986765625205348125249120989607573060249277853037922726116880634333047144444198937402007147048607265057091164862940885330812157700426822771616236774583445284987262876599072478446879717825579360050891371228005995732586637468637831043833026268982715763458009850839382494626787589953086687081696221248448721087600956772260465098388966612449906642494838395714771417896057425090700532127380021804977154524715123810494907345966782646939479609126055716166752859681747178126799081256051758497168994854631243492059572766815345768586880203565887955222165232038376506670725632665546660377045115281293677245080388221003972149829235117202768393210776950266962042149395798094537446410439880751995906943269604210692318892308668792575632641512453899227898866486250617214260582080484762742137053664157129149314116663516647620079231550192929459789451740343859969982005951452372111946432602459018083899978645547201591462222674775773577004318428993251547962397932189709118524552410008719985094130914077472396514043932841854775025316390473522079083904965942691487302729607927603995319267724591883777393260530024035631367927379000681377045477134699746455483299975699475923217596896392523273594977101580261407649159483824072721600212719370333490807447623701479210787015514649070827823197230550428950350958314891920385816115619861303202155394652539012629272539208463625470578985932539858807494064469622229492930859534921760713770426998556465165405752795449588412093358993367735187481789292721153971099337049044592096621267712802463658638845906046873359553085142889141922064046728132328281648021151153499738916950066716229786207555023332562934047864190820504118006657790764998662531983066440060132331907672621234224765329890842568441791593574862945943880477882745206292202341926202116830414305865746729181868119857764892188163318037812105099617346744821484181043784100858290115637291222788516364280704108886241684218592431691071900713148460291332189912373849637910301598600891606682211479785725413419209638921902037317207854781886991256994012940170050337897336124147826853466962826090550516892485804968940583042671779806833118663162565514698345499365055966638069951018331910838671747857703526994696904387737614885441106428552073045825377976311807289344292725797572073198194245869035878759427545380221349086158840599664031124919801392517241718339911711245776851162239164355358505648846769959124144288554629684886217461204338202151494081799527596681194614900116346067464123079445470560745064615035757342841933170648147493629463097198872284319319992726968622127938908954251928778169813257172991064344116443038199204854997879862775968908084427879901535593843444840679761957650047235215320377978813565089457743778847805158860678070926537107923170670060118701166984206834670465901515061075429946788431231504876626939562992688144446274669154737002610450720992973877109755805598201368007347715326451364166769821871232253316701471043468904865624396145713696991121166416659076519432107570461914742285748012057030648653661815465632606461363398336444499477750775192825541495224499873075290197762185293553062907110559467757686900221976732173488044140202097867079304070272132270788440751063783959247379668039629523591431612535743051638563108296369257606277480913087814050126834108677593141917597170860532507399726326764135934273675028287588561198358865278906714486122826064563532492887189424626251474185241265325597004153300020599692213596179589113239487399036328301919102934883582875125561906771509793395751471458584867431562815569319392716278274113045267060295018994765950941634965929632591029292630418319098825182771929381057852928386020892682080178951955864942126150817669751836640780272471084380313639421674697623737143023088561775255072565049440022566922941484675687573786092890629665083271142255962133739643025982429929691283553942060122965804759652866416570682777488373662447220141065069863128973632898854956682871660842676392868241320844403422743037003594753794711922235534683839542827841228634737609528735674514462792041571774616094446311078364165351081854990290032001272018068464600978660097452245084442176907831279213508367987963157260480473476610423582076543414766249436725154307939731189131415783054180042448144734492267088430613899022779279995060439970918344284767460436786516350759706775361721921874444169111768721655568158974771712507164458055319771416789430230388182630751842237978393379471536162984557600852904338491232958522427620891357194258905435303557252741211947949294123872280502430449285835515247063087057715404856397433215941201115770057186417757741154862331103135382266276486317115502527624327670795451410281857744698303535294790679638379948984454138532497082605243878520706312002531198225153005934202060827143812538160465499819096098817663803247648614716043056391858205202933460493700489280773672130596396149777426672256079837113718308532859365297863841630718142203452037784120278345428559291254873945767861716004816871258853139072904673997062516951249805812793813507677248372037858637033652279941187349074011165272639595157159257571675390433338150121774618414968005356025840745948043975645137625160042799885850100826912533391409934893324168995585321269335884227453041210180813613744506214754621086314569798093404666799129179660068356223207895947353653304678771313826350823985119013661604281640045038071465095548817684185532061467070967779704109991613038018867170834448148103613261470276508751868736428681417291168073447736909499916950059326207595782329459499364431773139913514737949484941576778065075614654831198380787937081951665560467255275044561861316621975709726753239113939921233257248652020833694321818395319067029380880319928446226023348023351743887325199079721541807856022090423367967109982231413876293244509170356651564060735611638939465384559463715360641555281379059233512456311733156417374803483618118749141613571401496058676300678267532605145907644623069830671543424967660096239629121490090336255929698197367266960069741673158878060670711319608474587879271769103471424324047301220296781960074797294160040591910826226459369680912677540785889085551011288959518811619300037411283426401152830445079500880465987766966610681316783136448977444262751851102977710141532106478581360662508313762634596405469066169495546023599367018622649550317349545610126008209086385917010411518778450750344082882100261920857590446726723714316412893794398182164755616045707772195482486111029899852267682250146011129334940476029108242773239053650420810671377130587415949037487674646030416545677997211238864901316855249998607212390351547995120305635429453640661392028875334469670421995104657793726931402972709902647003708036186796966344889259817660928251793584174835612335896826434226127936881077400019257026564607557052046007475815672093961610356567280713609711093018032590932884755704920137842897970339888919878628231694423608995168682514633358359768634856441416416917282931845295194293226356049259356267870103479687242605159348694677223987114072793502673493755148820828800930889632605922984237164323668759998061604793324293959152966182589265279700636335403578903686450551382220658828315578877720506038799324683701261395688630965141315737305719027157530831345194590525394781213820808927208293822507031038101913495266710140367257380972114238175426898451788724949015250585614579455105027668735944047763507334282601503753977722456637904198350494498596367684245912958992322609086839508005165636917812574843059885960249002477146702997175357226562887651207125794172185712998157852520381044973533549802243808660802176666557613354434283976699689214187084599957817419994238204191124889539308974573663462191351580632014243843862639632427943280705336189063772987990792019549085023077553501367136009990764042324192884524250028794432663856332405793165143192296423948808846767927486388803611082499723511233848562568579315461309344707109413152485017316991431928606107621154304416049221953429359236869921885178415053157962554734575753513323332927942688787069261272985522642715287633779924673907502626993586677020688993607925340367846480910104683107308142976321008698579231377224251302372627236154893227857179351188781717745069815019122515307622107905932193140383838213795371867583177919871131418031835297783983658907165959196797093331186582441955592265426271435318083622465428255603187277866572430776429439401123544512020150856480714359490873392463341123740201304168309082513380717318520214672774954808330248342351194936061874301187871764054816508954444213286336756135080034068620603890105213894915213199071887165363686524046857488255784767480756678301619576005001587542743650154504803530383028377406552091232785092385305264117734608471272373071446320291808099917299846584481570515875660256849316880546874545905889782901678980275832170852167128985081591742912884543583293898013926259481674464341841240073870286951652877785971111906982074972248828201159113073645149268443612553004273530682246398121275525072090308813248276310429486225475800809286830256953023420543818662890930105289024883333412272974217845289396569553390278480857763014014907548177852615209545827009318232324960970288054644840668209900039609646766774261942821472577474438242851075009173441561406871101283872887507445187656619642275048461571318657816807606896456650202880706773574747017559748459854083180673332857900296120488033886735001108490416999549679009603796200974153390543431907381933624963905310930117297366867591421151568835778324493370541817742893361056318801433354089095513635215146885057998549667237650453701587809963913329612214293453923008689688424189932144315075061611666684468774506299878067289056930759771044279543704999815625226412687347100613223760537551918132168725392586653869703603379588530419240490387592382724828625404618821333875040993289839289883008378207292830426254665703963767092439519822079877554179325702652401293534085209060220075575670431441597372064797624163874488317434017870745049627146875397767584725407684377732260569998976398916737043911407021863151918732085331488207347299452611452583047366922872909421089520656028319719289955135178848180450375775828775398686112671750067395030716302812649616388014022407683149866882374682063748576687984877509478980743372332407991657697505066180049816878928509449301851926922316335991062489372042443784688905597470738553032515463233470777585388435686753329374839449939836962661664648995820976819060900488363122387749218551300637326817123566137789043066158246756915238134391191809516162038961907915842610900225858469837428378504656223262082713226566763621752140517064717564232798446861075509968492343675365863716188110375890241733944522110899557370964553729778838195467909637165165056997876996260963027939180711075639870172276416980935318031587435907495304070711877389203754066023084428550948342212410187086663160205386497442877642965264181487903110666669177946493570831643744545052827681670950999192917734883661657691493750852917766876166367189140963736498557361985881115455604947222414741037865619803565936647075500892913401878127699769860668898917115070510509929576336445760810532514193732051323440287496206956906185401138189227760892255071487079660053944377865866633979137884292387991358709832520268432173100979845864126874114774251211045282742726105615412839443416402663899231961268478214534283552845180097369628486402048981949118889700980918223720535953969554176621777944462536782163663874072334496826856911196997604311187455168048848121778192938001325744834048052869942013740458433678604500878762484911683205369513304843908702069639378103746202332674270141077833881771523565816627456526448499001906789647409588754920036049380023344019846158409445267151338264389023898158676339894875764368007462367059746495704904746043059302503405216742482015542362849794808390242970151744101640846830364178186919048405796535916350630895726920669478419627342537184318391173465380093245031775385944137912170679045845812996647699979118241390081367131637483073699461531586871935001733092955707850802168622791317281465217461773256643251071457697767394036378326717035598635032471013242575315344018017673897015767101002396398093204700123417740974573099306118889415110807718349672354915030585452738771980734384534787187896850336398877044820179681330932387829469433052492029350216008920369893260277469343183745671464468180060982843445181825484868381701397689454841186995878052455189442709109860453422990281267282824472462301666171643690844288748787057382785186185536710162858114509411798723434406011821645976170645077412527984274713339151646647610344034153025891902463494717618184050382034571191390498951862123054327834959552901643578296685085464651971910771928713201302386956797955958517277137000606736142514739160522079119566727012722429719909773318496036496660387574931829606102914878932181829798692500921475547897604385301008883300962149991681342797931372612680908117803405575662321134873600645464223125285651476080930095511681176575887407657927271231823315217215100868010187666615067475768211993800319336590782257152873527623001108562345193105549154988724321875610776588056580780021150391593909990147186205738423809542617983327769676506094019923332806951552347325201935531306926940924076297809962022286210530362639824014775790718849199828073103696649308578413668103303457858484510743173490432590452540961335869928692711811794479259709195774604929136078717656756729008587135902968380922783056717743011821674906628038673537731438175641319221030865718317595757499564818511836106136354060001182036529239650295469259209440284726624939684881775389938023270743716195684685864840771411684437999726829401423742599214486043599227738138899494070659022109998531670666943777753707812200653181108634018826416615215884629818687872626263687777387538668767716324725585886726775304660088791250014645417142501245357883243628559399534130183617477150368351376178264712165467494470935396448834155593904105728704373783273972016342014297293797825461183257381141685024246503217330189099411269279134911628679634651913090001485312367990059697049778256087370681024541141270959603425829570268973063468664738099295813891702042629056846696233282160767278475054758343499308610775113750777004088645321017255719522309803643436429001318944576788032584473261809842664012252891870961545036914643840479885088908441230934644153981683911106374655777548851322863225300191147322246634883260022628880982336698696581503821074964404815998055142784941311392689063646592631261965600550057826869808773099275253365889826777767672857870215014866897791650432270685922229920912350379619691029336236465202755388254834175594496653481375993561297594121055023946159779854227915959707236689777630488613101065395886535696683207688967038725805127990046657337811008077445331750384477559672570161622432201018790273501481441254004215657614941472650322258207432390877012362075975602465537639225131692838274181569364805201788653272341161579492343791008817512610321846342264341341978218356508507397084230601347749343469514729111045156637519651919565914764268280260623933636637770002249130583435034219744345538708650652394263592101650559686128101786602010136630416617223875534887339888807829732483014987839824206932193923495526730353712601182539654084352625307877949030919347192238975684021941485684083453449163060526565300591392038552409930304151208299508031680162797215148904215577275578776309615713794610596840900306282608529070873986742066807670788657822180685309074884910338506716515085477199774174519545194268629958588177869400162989667333811589239358608174227010299337034494958856926811515567400300273161073003353076547065752390140444477928247191884049766093981693420099786833026132201575719619894398220261893033187382531670449664329561022105131872142024368905667367438768120607641504218005521833122911979345719028388931337946979575908164342153909617721356719809009628695216363066243526188906769578021017264606947714387601339137225870751974512304218430844011005774728421626358792930979992740804049015742460693420647016994166847353440828277161627499192298593168048396906094953418224093239005748180146953023811971163888691713040791272184321455247072019308713146079459612642488472670955181468995928988656048493524326000261680278262672231991962830588925248731544498549921842727546982869317952627982998811225014008058924633892987059624845010128876679914076316176244551325461849769717660616002775114087482516946699452367427807733017752977737961535000201792791677773274942065151265398932141530917366117477311776303755131023804644902558898135491920976182097135468611946906596742829824321923497644643480117508979951458563675540279447706689317436516635090642799465692878213070583876550429352699975720981384333678367534016856024027294337120333089353121507779469105443016998876289315896345179969300895270676330281012845541052624311477759140598005825867218171941727561431454731449529584037177265295257229586576116828245409014573265402523571662441088608653804737820276283958948184499025656484271967688437426484893677602159492489363321502346768294198754603690032184027259782892242666098382685055189838538315192627214216865823323814313445880937991920304291917116093017550656745956273602415695048220033321575462578583733445489063797966037898417566435894614324714844324201382991009660139414563106683019107299728103621782009115915373734706195255633767697420535626739992294572679993688219578873636807141784205994869891649225070646849725180734349753993055361395625012506733188065933944463448564795390195563751052250381593993190508832228215442263918955771103889402795746238615666305541879180214605878756827517339913844107479408089134408308785514538749694221247109112627994119750999296982272403928200466435580785535567927298184850694534701314423444902457203635130849905272464169466851937053064316487060301857255505131371167515685544512351482071192557793263264984809095158724922214273100221670645164063499162235767553505705847060112350628296283589138164468357347122924604778564622430620143118310683233506764615409961503429107494811433741944862219223645914573403393508833248304209854104119000574903891475939422059933094313316835799762858355991077989091564248754259802396902915271990985714308091724294707358967830263515863276943920943055435200700477205459312092486173155435616181451837612957822555596863071632477137451026561814650890548695358610356306616905330179565567051365277186810155255617779739139594784396185119087613922332471145079879336273283934688865406398695477705492459078889032996198518473564232594330770345926791005019316192123999630868875711200941678525561176320358623886900159444598990463652274609362834652313702674996053284534031066504968555441990549614086053281566253946425658697415880563847714167391048855813283861216243112192052407493104931407271776852622745151105215967200994258875059516652794316804614270368268798801617080394967919403395249231343821490761992640284469190171796716661302842706901848494236662070197372883965251361786957982871763703840582705028184616191262065807373485444709671936629133723249538370351391835943467892914957787412370129095414195680576278018775652829329350764944780133926919025033200980262356023406586002809260730900893773342004069830770633096673609250348076976720029493497340919464254347676133010302900508019818915511729932245434120308467369093108045710756759135535927157703226594998334663941325629149207637447248880790749377499655021008685073789182297067215622372229603241827203627248243831077560838761598258180828229088331886859384463991186547191673555879372475535536367698168659481416890132835979194702237768912229376504213727213521902645724288354808198117137470601714206411278438406717336878880495218138992350152515316071351312663894175938688314837133495920386937068219633632102065555849286722355887178155378986235374275692009300469206010198062697332964443546764766462911454888208985669672248990244417861308622572253023516324351355203046182946217856539083520028348950702982182853491872698397835676782715788794836909948803651012231245144897872159286404518499360422969174114408694120572276115051528539612378492564787688519800430720706208106692387310607979933205734171700291280752778359114806115407610362564786702310954783457563953107899027551152215166534032699017867425037222521073680425843748133761322816429994187889608249420613664781876095831746388806524938846191387274275768599420243654803269890652609983514248805817936713694131000617764758473963611305369376702279469940239361292028751875230035278250545567597545537819556233002088389368085808150976888303760941196467632076510583830319529215455062543542096150631806744964142663694565012075664949288458187494751248380046047741293313633691210698813186120011262704981035316595475943718639864085806835005257816401932723883898089772060265055041557625117122585800324717450150717645286671038835083040197241513800243494531800393829184795679727542276202771948417376509862712004682721564040341650887233239542367148864145885261249078958188166460142714128686487264168607194029508327500275264200535368976591975329135835373687220889186220403422408810633483889533670509205966214909566208782701041787950781459521207664908478654635067246608577890702139084010198513790492396728854920615354074846042600460674975251138149364110521205985109287489319153103435748422314061761943495608602733169649383173021095769175071145112468571673820629972896029559435494536672619714651743383302702340775719101314893585096366194762093991279087546197371428399651943470359005716391088124094154931203657658416778028229058732293974131574628833912140896773581385787781093043582247472352787241008029559948351562856041698927288798894670937525816795829680426809562148621869202130668554522090530293195533366298134573576271265788618714603494546225085835640590421292908154775910387456520940272147609426668908102337100903298771117437213747860218396468383429091903828480650543072003897772000455407706560071968589623313108637207467390347160904973968504885583929914337348770915503499972848274910745881737171745525038031178144259020482870036956666724938699825942525022771957115247776714928120388011906073650443461371121390017257331150243403033382341722856023371862113611265166893557247841061195212431431599494953815000560515925051138819346225545546376011651196933189225809585314539631525950743730366917513611706097945943918813680491083144025664358124296431007304474191690188357096014078400546694555385826807719526880090160019093216805453158790813280099025001454279125710927329525454499716527768590189879932386151385963696637471718898514004926719369547319281110268364394240517712520446039883668728700904075001876404345558367050757110280361392758224535372216385258895447731629280233375767861870035047438258999727076199050471895474088528106280051052013911156940482631358485497061682496480248234737430208673181620018175708679321779720527612082828842453305302457429719391179806320750229313063132006409482925250399019463445615958163887179519604093499535359557384132198176934275309826596473528427453319152667109918375465110193670024291655103204484779158597353576262037606204371733127632080107784380463554684715679764253222749850057210982106627569806422311540115229489194352344425472025063248016710665902891850837170891846648249432035099348264472950899280707216077913049723494030641727486367030776235513686132472984049196425514268889816726020883716527158998361027765619776155703026294910805071676657321588002421972264509723224710766870208546181673981672698008926446646656610829498038997860738391794393852161460180666636440585210180037694886133217288086507940510875918621972745504090809575868987296418499535364876371426792342420456826829473548015171527842557157610959313788976975858862790458014407965570958038395286593798540312577077903571891077791781349147733664543141865522990016347062456314160087438420545550123863287581422075993642274785854145937866297399616898498527508734976382906630387993520032926544776942286023811431791963127751653830148302738082610901449831941856869092256952256533942675912810945627462537694453596295609394723677402868261530235255028080657056308677891611843464063531710042606699562519030096962722973889726223008546262890181684310596950699622462031127264139469279050555761631789139875541519344278661253290244515084642281719097591921740816901314461276962541791246527406610030521646602747649962249304667102132757058026699564991061898024903226224192945740577436546839067687724704089537798398186891500418755943382223316600888801624122233988624186844971710804975018720035297498239814036889779919042238695473912920039874630001934748900628511625186441496779268190646473535902340494782558820832849587347235863006341378131789301083219159487129617961974525838011216928871627629986189237076482243340108840802855104888920805928727914356316827884773549798121166228631348648029651241172583149126668262409821828854533724652710973850127798739949470248147636236137336748633622320082939362968262988279943702109534033193221511824968851712180349997390250482599159402627562556203824103652750581465712043970478531252022658207759029920999085474565141178650939804164977090019886633535882916343336915483516037486624461335374085902704062522941030449453480187438122042688019859364198154273875350487120594622659598829340801253742682918564273662194735605929382444422423236400000804582496477291509273995236201144576701051299514960433875089624609610015833447221101406243459632928129758039690091734303881747506869522625776881203470285874968561732407252076251514563613319698738837666036565899275587421542822143251146448157130990526785350466879488059158603107996653438645622606348944207542402802209011795491761860802523407558234864410641375762390695312708968083230576441017541706024334064665122388954017018080231066132397837111469470375593622949260420494319591713970262890935222123607128001373418035119619548724381428153766713208667334795810786857959019042133991860955223297126954227970225491611401630762305735048673209886305666150419793452743176512116015112240627042876881746980354582814953568309037787496608500237362291093389604622646197274452012594458230993132617015036338491358101456324858489934845142325803530182170855874898324358522798892593755719940014706408025104202327880659186284487853108544948135366399587167876932316394617145034948881546529293571704112310859306258427076899181143413958615795785380510369946106921301173321473509710312143947218069961984837159729051608230628712924805044007138598652916406340948481122343794752425744363214382784954557805658452816332624043096150702478017294428498955461006958312901148329549594613436148059046782979602446804102188078762555118034173710728194863649007049654108884375305244811208202041244292577173407008571743433557508111372162800244479650450276032996270595343424898176911123744235580487245107384917567777649147727372586646492548188138404646960685360295281177930182351701225251962177749044437060742164552483361684238782460500255845428447910550810080740567434562648516932504231253082065661079718163168065976586744203658754582091599820883328912838471782810794546260710632134526581721920430418336512048891206284110491380552672227452955778072293955052613157469243767193083445026044630850988838354550018780907839850270621652356262434443386168355229052081371287932632390132969273815222330104779645809312730571864214741581691714259237546889591611323018162390612325626504861298793173842148179588727588945156039579132569923277734621601711689695704542037437297972699820541234228063096051347857407394590331538293902447670039529025827934913212334998410989689795600828728308017413246130561061247332852683182709806200899538012679483096437730153813610810211996615325321266157510972710495183488791440720591568737088605241937642867374671422577621648452751942429376342666996393857864852038504247379826832393317110438695914453212113230941617779614282418582301465404526510565426851881881276476896686461761188626621101416212758101820681724137172300060224653921188278004895825279720252402485337675086685394905073049535248678062025024890748214793032468820994130944191851872616067589641659817980979301030663872919267612535429957708870074906894482219878701413151472804441881412936138758166229143937802933693887882513057777349306216278437152523029420918213453537160419158077076429093985052100419108285853117534695472372430521605686326366447773537433665833533137388242113343827127154548870101725702553755380693982930608056248583040324389841130044324376530157341932553538398086677213085826666001101662225081267828658302696870745284562890663892734990358187392058853630531433139327193236114692709563640364149149919996103109595829967318683147013619169444665669751144480971148759805866064445696756847827778963724071940839584352217736743176314642095725567718139725708560421657227719625033332632444428641071445725651484654467827700213941643212634358983710107600398368175466246429247695090268289311086362517812138766587082447661092306192244299875775333007265660563193393267781420422092902310714886107524430034752175427258476419199235916198908064810716916401755006030948800576507776010582465645326737267223871371429924374087521085499792926559026515101264117651983611089049849295129840170665141076165495696038359180981140688005785030068895630296285073517905361501271041767736818836522911901557980549008495446353405165112122017612836414805577445883431308120338157588789303319443148336261449949123466082144948708950200057521574231156095812953048369058500407376296392674991463951277636551538683950434261045901856480564758394058436340723997456004774748471278935925538048590372469668567355532251622026080448001904236228852951289826954650749336433121652913116690421109774465914418839745458474841413660057650449719212112267570527002355868775511683886346072417752968036797631104638309838801199928893524087258461384562074293732558082506460864477384881601362726207589798425429280743517506460673229094107171296607572337716932405821250283878316578263619397816623222194369093342851400999003281118965023229761852464268488122803069265676335536599009454699214170832421365806305556934926340363746044507666031799119410707733925898432265893627138448026710952499236906922733757507647686394711580500320439253002024636279819938961551079241633759726923954979793794492773992193555085830971110437142003857292621997214624478562857769293909551856121694146569846775091283910651951911402116072903901556645766564364195196590296834664916477422234991213601244605444346089597871503705006922380422982161844516162393797462699380569713960187216691373690796314698184826106628128144419934298419423858201062993689896217840780346377726558646508675501134519888609389201538890918314653574336903371169840324669975552682421457937536128056041498248074903962953771146461944457422690687936332053114035554083408240963779836441689804201414816892438399449996785649704452350370626643601934052258642469813900456703002852745199057043458137584432440247287505684953029147579075550468532223122286282232778155390267315783694153030614947155702281548051710899192340861447430003166529514552315202497020736950377151745816502412097670220676004978617264744638011559377045960600059626267809534813635021394147533917531800454392745966099677803702586589203385979476349843793334172479163659703383943942239285819895847320197179201749314430336316744124849358516430233084830004684495700328722050661257713419474690066285210516689825848677864419630422789983411110485901566762345818774198083831191827006717288246295106760359237822047290006034076248379896476583045308032769254567222703181410491965553887792178652384272606654404559016432088988676595464021783110411011619509172237365008295161240203142505468896896222236297114073571698930540890690122974239792650886483244461217301146335129367157908609662368474232404422341530735259078645863288580244784726994435396391095185495359892172862217098744771490618538547746160667454075625712609682413334996984499541310982742772370226271512687157841392417724771929499643412502486785031376779678554878148266150899535452142447632392862309763216670521795654142084913403942763578517557361141299450064209297647799116832657081714881834830180182851384052617361768269791275656927367422989666967257014308668436061895663300560310892375659003258559788146541655842327848053586012621298848984005147374746716319089044794897439836371004408503327704411371734838597975294401391351514048112777497298635664431668548655115719821003113196296492912720512411937938336830304648695690797585532984641181905858492757522884304226688010674682871632884342007604326365781578088199159436597478462843339664021006391815125520715172861292532406325386316346827680314072065110165069386278420822431502884099139367589824729832114049371879548555758209899925478778625706694643676200893247780385251832046398940081064916136873926024418952152564655570491619940685142964194498502919519849158486187241454419633419181438598915916850658017272204118881135655744014561903977592419509669259710441571534996826269661777492804849400417465803353690597707645795612257457126469058304682296903050335992474161558119155613989490403839160268283070442397991997319883487431684944615506034518684816207756176738116599924520969433565679167261934709490844002339311044018050948749787103843975880469046952462746189160484462382688178774809773758593891334699442337091544170746554169268437793722333257354679331966600723029256080886756705418157360112180763463083694769097370238357157945691195913229111305396524719804386994981292792164257019528327479043277143867348177329086257133738490031009379836626838856942501696182812322746951948615329728340688293514343552382608803412105801389553132488552241068750408824614151539606421321748603476616769492420504201271216446380296358996670908679972146290777929339070054889874913227746437086433096978584340136358920976748123986712684627437891499700802719897110808918946949621060311070530824887503987102000407086451594827238804089177032727128037195205760491720341034259601940602488515926140561078605770591848208847282220009668621231021850069819511296790647796917003926969208444233528075229390578694145165753749210599915659080023198637487057165805576908678583247503235611943473818272973649066958634771867133920405627284288548119345724652349713701190662753901979216768575758084003754830064296307641081430632805354820935242751401199971440436193411886653616118539634446500486663353023763737395266527290532866489314742800911705781684323237677534411216017936030468702050983548418004782433440446739834624758130721737413531609952457975169035743969402561087514889849135386869273751348850261213448109572090076213122408922990633934405468975594205668457302002506411793640349898083296783606182139145375367160064267936845645848074253991311042585572063222198628323104109921968719729347375597756020825620269904210088191821066154881739382738416236164350028091718899600807024961374584793226449340377414051900827091806708482974345232485279874502447210803301193441358097967575699716382800056635836974325949490828771512687977524872813804810868938011336994307844706397857471733492511721129729153684009993676181703836620158987919103676311275198621166858439338875648251459514074598568982575323034307200460060199093610543279609818801230627946409331935524036597678356600656969270621288955143471632991119868698539046528507896666955316633547818399637317593663309065957630505068638454050679747066389758458983265889341445909083167306377925817053789747964714644505140142178011451230146144587959718739901811307170518134208315828450759867698981050345980159353928825008733169366278758658297731738376452221163485820166413404999646008546953690691845965333377318633186598048555285305426200736662021045015836996638084937087828931223536828179604424221130348614195207307029302777253998593810853696396474842223565583071073180190407430390642878387371303876494204239862194627109896228230883564430652719440469870465252843492128778076550941383392777060185270003701136584948430305520056240205091801707621369156859564801213689570840968230633138870983020910551998719371435147058271801978357393892677259232968489693767425294801031705425057899521401033981491259038990417963350618523191423170051831726856598918791060590632682657819909207701124074750414599909535691072131829258481443458966624828193961682160045558546416656017100928232128943378674202465606491746622217919157401903199801335442803527771480904517615417996368104074361842188350102544070037209455237605529512194437746254287932122392721775608416875410360601045554179511030898346542704203558830045294549877841387524611891246489132519981331987337626607695384481569350236717893899517870078775949552405574196764393951545271366590088609047774558399987070002979471526099459916784948952183242267611344625231299192490355325885031385878454732188059075940580678926694389395696691685793987272202054204741664690046769127494242691158137321822369569696376166930928482022974722204460275490566678146119754652567506906719252312577042130666688909393543435342837727582258144034508808665343334476026688449731997245808497331670260045054039698063010242438178118097070514502407085191763335976799164204012359179775284770925898971962585926659941705271410131740589741666550473271255423049838673600857260052173203619234491392569588954020751652639632499635449638340083856590727924567227669628122595711956967705678019498601366063976353679905694525476409717789080878599209320835712911162418554648018569904530895320157036274827771803607827613469978865107424159387030877170584996029951864412424300842048476578147391100046015475006741581129089265449846015487241183237874803989566257689137818848862037241195271830100087557956045546722199438952954595039389687010251336336397726743427314851438424987247330581286236376509386754074631019192506041298992417260413663502615265356774334661452025461332393440019155668306379098018994503303783062840393032876022131509466401268291535567119388565458665295862294105336347882674344760568003536796055981277118786368259226524497833857479464452341877608306785093783047598128591730829230047262756131719718870358226155976455450026877502461100677574997358046442549943223161630187693207283461865285252686039390670674290829914989836805115306896521366742323241527913189043259628973802258174765363974487092339919500086385105128568237432451311179531679409881426883144800788310163756149101069426233513214750694055168354783709494539036056308859907787144781854335095321114305107825603135681531802667066645174987966787970826831737904784911572733556610811368582914320705364735403237756795060922436641667150733501253414318253961882336810595519486546309351539746299067959877731493866446396833504294200496023237961177452912329904789099617616018792097612386788285967182534493060436212289048071433200898190386207124183336245715792301976148407652669909381178467573899839244400889182801079101855111023106466931880879324332314834458473673892300714977476209510105949108254546573834712061044870626632332600530349760392759959387787890750262492251803155808715116273353256694969837454604141917794795227058165885909434394079912393707019785590059406880087050853956567112252584705534410353504611476130436425821490858674198981074064719734748165504864631240685442490091690041438054361390262774005358935823662922744573719985230930934408080875723115546830652030675971675222770431265003532248780537510328308371592115800458902106953487214065476956922701257226418587056241797984744885288381004908942876000654351184923303525967488541899680578213183218652899972613974029465032820773602848517296930592881359877369371274857296616651869260450533488845378743394775301209017562671392194114617791392775207147059462461299968398246026228476775976109649322382756556196780737078033596982682299278594161181945425020995657798307318712944648316905298014192392641299216347441023961173343416457294529069755994697320257023647923916863731480407912630065030695341093990392091271004318512364154701398478402434981485813970902881894762401836803081153855507905920645563905006182284210471681098350005399271149747733887986936203060914090167592526780702689258047846480563273443765595718514682489010673880909775992705190048807896961693388098605449365665388106564971135862539008511926358429585342180275548529376257664328752587934039522158090910356515725658547298551281635584655724042912159390965635495900724543555253529864210141008321411377442131230278946087292610137861997650322055884859833409792617728080517033267515901991477435373413194336725567432497259957053556817698910450607579988835322671328597226669296099939250059181558003489991406649133068930959638120043500402587257864456130903616600662192740188723976631586306900004328269402624582492160513945141439971935945225158857052027023409293690381291376097131864525131212778877501458728072340780298090357535720852951628593838469316953056514985151651893442333572448587781618033796619840445523888624604555821952367051324182729816689288216888415203518800116616738136543592823189705612031293427042369719815879976311601300048532390832038925521269227267287169664601677319042413034917283358478459377469503636172185685428144514046631040873735862804010242608298305889635209482550715822490290824679019675563395238054007444312942337169439376895525764457859914943829926883377843317117310878427811248198099455083752529603715425668267676472223666134842104113715879974626040487568007314662837545371019585805848638095852044311548549545137663543865970205850000508540524763420851991641526327904713414732164007995022727644223285919819746840304833759273731894903854239271837633858489490050714277960273094134679708889138212126844880483064959952902137890850908148198094161258969636560285471230536727080012609969269153923502170137098876199394508739541289900832929516320226851250816332958913799504751863471327841089592944303480501485091723627113941117172604857378366724586954207122538026451201707017654860721015972586475654403905345637673914586238295978623778197907141386373725407871208485480523132221860348868461341949722164776704971634713797508630994904994208266490089924569745121377129127901372398629505492591717061943566184578445488525705080673403343358933676669749512452189924190023395794176517657333443401521117488956001911585424809547570896425142723599174198381341072732871859882975067281426064796832356492496399921333915934169283406459939211785010183223934733485128023343354483064880428374688890130603433320940176684373951742827567523007873251318138261094447842877717185112285961739374159237801897951959059531101224792793329458822144257693218272745349368341324128357547384216792807361146120158695054387473771486962775289636319919539645983419493318535005987529865710639689135132263518593817987692984684678930599815797796334481689843791723167406785791549749639217672663779115763217531837141565674802876782234667175712309922252086725070959031231749535986375605553434184143348964049354051445925909433443853984015660487942841409715887861295627909190995203350240470934789738651302788778995622129997461194183281476402398363812681371153631015483639163274684720218671505388190117437940709503040834604930899602729004336844493158433615556244062199036707428182094043103865194328802025441423006675595573329319131399039055637963059482895351822196329306342456857171799848698266908430383581171684293210778187946486840315238610816968432643690451384748019588749086330074239661703919102387260504086635950031136376330403849411808037700597448937552030403957680554835237711316569260369920494218323725911733175643658718984317824749565979147718266091114022481972754908338611960092698441054279730823687359135120008215353532879351114589070953132661951958747935980959451058332461672205851712625519159498144489984550663660230520148460147427205951737398569916966020924955330360277434047526523515829897403428208643276687038510554596903931946642391391540360801265590550502585782126963259807355398011743765639250285038406877203562281008013260660865451418855241157488506109325056449918703828060027583521590454983254697181022363769778756977291564989590147322501374247045686224553065282809678595854418885753864295193629538865319362559045828306289630406519041903922802380945619291203143558517096340634952996352864129738552229269224860215264732760983267600161076995970216054818929670434710268189810638293933575280796976160961213887612139099265861638699758245332985888251394540687074718904852018526778208376929567115732817905262730559329017908959907934062128800048835272022018451007329134940780275954595194759559946100937730269975557797986627340335838107325027311914788002207991515597871119883826772200004982461302612402504099721723236856295542658807133683649263545130940670008792695993863875244443625727529747880766633266493163742927021594289165224151095311646970988669259830763207830973272546013186076225783730980961031695102539647097391497135888651551779236486492630141660893115929979726773629165439926758651790258270324243794061921846830781006882410437322106295725281890656120527232008216273043899522507557018849195234323598005628180118342091898047906792439861911630916538444302343903736763453785060031072075907216450127511856641078622123745462467205719491407136211426139443268264770859986869168272612866187598554277247176538761910940114569878393781061992828058492950776724951777777874239197942013188119933724457762266526726493769198173981413948637780278848820154759375529037015476144372020595723898457880064515002864659746878422707731576195657144682852565572325328294251607939654844248409657192383236258064099423514720237602202797159784955475006355900180777625941933069695345503827558070360752931971506786040475058814934719999531765145323710173959312605709156301353397047818083805777596990837228769117264029487651617411622791864539130041240388376916354644239307518037992970923989626266789788362914605090938426482981199365924063361166577679105877963280198489274230178737689120544573264480409659929468519467821218564847531926992423846315600889746315368185199453490813590510528350579647589469728779455878871180026669504231977638650006966125901077787456167041817179118705844425598215222432697858085073877566135619198563555258112986288955843448928221049368208133725834092037572611839871121672837854599577297182245552323131594718484360035357232446973466858301427821475126394429517749074667040283670234814619595699019309820773888329714794402536156454831812690513749097574478873091426960639133032574036889208463613035116213023511311430059977545152382712604037347151186731070231370853892814062397940315187933539374230623527259855936779476230849761165610969299195903204505993966836190486724814338191221657873405328726978881674114939376880353272262607334171410597124925927925953666293212052586470434399578703498412875412730043523701047011980647795690170221869268919676712137694344536341392336073895466395086048818562445131467819329804090055498446490186288378065712771423138927221600694053624629070704900433963730803436983651631420414280212617983385345991293222362481879747663471260359791308043278900667645009703071033835770852441231738477308645675403272057618593353858543086603534097049158628046114036417224259858694676502938519288063088387043857074177842928803180001952169556983490419246041731446256789964143669576236690626238070800758434849066376308723853449660632477166713495894182255376307610676621796410976616884086554445595457027864453233403180258504334411417599089646403022289217312896880997243349069198318902162294990460883186521340688198275954241385910677932319999525687817973506936190188201348615595326463332014621016758759955246928070174029234717223016712743341627170703035668730257370536896136215587730550342260173865195596831361219408576673805995043815109843596562863109959985470601315111361053540738254416962522850563427067481022680722218671010256969890302649816782788739895846106653516101046369200749978923022295975911114350110758068037407017592635382013015139444471716622727860799078168457561935911254391368504954704633638824628713047200639170475145592657010743140444824243186808930022617747135198031018316649872242894472648447270855292147869491544280581900398767993553793382517031682173824525281398683854455947551152105564798820033284884297087379169982739159025840283605696861206632094700068278770821665035336719643737342640225701393641781571303217032520172783475757525267356065219630420160441463350216328107473890812677253845378452786943398209062226820507296413268224799659441577120657375947030716877704774542464298329255318695074619696336813002741456641724100817348740011252374280293908840530097085422073998403411778808036189338977549465812913950562905966808091814176113059827012800468733033782567622847412917955625642327236897470235439530171876270105104641930659357587679739927302538796142920783005293410572241848170089542028223327320645226598609185387529995981076345385643767678366485110937951954917879098269761742302378481879370954210153129658605393692287300119638915073703314555455465125965127724977747103829763523244654564590674456751869816891520909714291256329687295328850627581536745883750419330812300064622468891315986207525089117932619024374409724797007696619863215689416329989489883110450758523825512623807566397051708919271946452047976635716151918601712657181042648765215652330270678098829324877749421596864386668984554643103243146790844535075480897561418035894138518186369687218256149489351554107179192811260476900249158439932035221757956060669955888997082643580605066583014655087038519851273107414445726385385769584546119991740328885569026490752167817498440129822962966941281351090641903894457548556553659163083079168409063715573447104029942883020929982482899080362709109813082336591314915347026655345036976695403280868068513510722320503934120542913466463391041731899539212885020304845312871498688548225714237368401823116695383141836595932578720185598215896436738891398901838862568641342278650755436232430223808252477737226438596973023249513182384869068854651711376551361062000243131691413485380552376547227064275855285758339755030646207222217990629127371615253822679646256392169520499997361615555466226181833685850363089954234956104396416006137033236808801944858607319126157396720523184306468190470539743176889960404384855704915284830472755979478861995944135388436366663901721270980598387701244539167633454374773270054733966653284459586614555371308711311743042427076635359164176388829039882513277222742184291325847694915741844124550550221503039793859630424662696801782754337211628105964047454842051879785001996960507595667979026731528799063960175757641518842479375731731196364004180040528768526215429118119938687676014785245194346997429849976858113938611687377453690335958404444537883636137226320333854829583646241990088241540846189980043307553532484513032375000476577509300909207624070980459160450138165747229826019907001905849159226621497847089806808693907338878756695913861868327574880029717877168962040202035876146183572494015426100968380449801061914190011891269017319557724925777990749543198881581069969488049537557392788717060198016673055910522922438606163362126888740041330789182285195467577114580912841623802114783874180373297805520195859478852610258789784838457962902440198325741013249902701808421248982593058463264537886477504788281136183367733027587875635552614473507393471272801646219719923547793004295359677349389339868262936286228871713379800976659454969072250469761331728437054385389456480436052810269772546773718469534267737584284540107736743352930282883413628156144924657955805045567832942466466750790927760132906980848160166797761261336727240930634295718329336874271863914877047083640365614336263193251874379625717245917423112159846372638459130233009305830456119743292600271154809943951401963868794868678454657035754608522754181319158110363888152188915095240685994946094105760607412965244456787482302320131491372220432666000045965175562782185324805187099093643304886099441392719323641280402169144125409064992670402466492188106317187247009115417977057140538064566807307722348986807259688456320971887429586868045324633416522871866572293315467187773307342560837392006682612543651460815457925995517488099671745645497967729746463268018288188820051648868445699026875465776314958972960385496780785686213354314300442459900898191792891723720380172699091725443515110130811637211645925773374015352426331981087870104415962376180727242832368474831489764703707401156619820933624599610544044096260532512473135835427770134274527574579639162915134702704839507030607978497703066430859986552947623117308882767148917488039047480903047902253220095321903040082383713277743517069318857470961221726991498589628996860920746136495548549921604938116036600950051704363841236139055490107769939503202764285830881583046204210590078589886633275562334141312635423084190624306421931603016220092286644401899644643790150217313781640953424531739410950660276919989533480466147005138820800264021291321898161121174640850626997033573582358490277429288104442336810581120951570867601667348834125178499177173655578299246777957735225058007868897756169132917044327420812438660017992959505656787861626052095581962083575301287232407948676124679853232457083225431106589671087120649308858627447699400210323566047123000484310116185885272392304744858676078271109501618379585623836495197807839614835099846375482846997920230366109556389775048173693619816452427728161501646866335730371970523595153239893718592711639132422202632564449535991782031758682065278129615658119291315763655869567642888831762118237050756667233939344948303998382901833505474442994278424851445325668918462916879837370070395545825424305669943153996456615375376025955443258835646553975496907029937487752918721346098599786903768181682206409054872979050743379336573370477696984442145831525776714091053353915326784207830071361871450771215756727582116246415253870125208698441807556337146670744069695310890899618529936085353710626042425360723800455457456904879586853810686336080028025333516321986421671357358266420601358570865877550681393797987216032520102229138708410334684945910390468362243550485034949485219911741869462698207515601392060453439003604776038215790242357885675956531106851543196620615589445294681348591721040132468936399210771036453524927517214492461531941141366107081711073656911127068120656971082012884162400227864445072834403995200879115160619298220390619421261220444705643797213506484618152680790729125147276387791652550837913110883475523580098518221601538140111494060255248350811246898827509848524218485672338948063151639571860957564955328839525898855850467718252932006574405498315564086470259652277251746587175133898083380061210536037747345235973949938384604967089694018001028969120366323200158320889458781768875052931630711331697432268625019497144223834507577059044242970192793338898303655065881264053911036230174771727706285341608755177913843983844521383308180338291203205242698537748137615457686167085557863758857128473274299667379132072795899283033189455163581494741233979689811605640089425804713452468544115738169621118392808005702677273683279311378034202272147566753394047665545884740691689522544243754529796444268460069583822552961904429510208930112191633178869275579095057019261342559137954666431678626882637812628110346757465399543135129114062053775469219614299010701605041715501985967026660182960137083588440697669059152670370157469240055621328067591655708905469029573451634030005977603055851252531781345206264550981950205888333505259574006411826659590783714752857190984176806544134474009531637117738624729866034667945168686903268916318652279681757388739821777929644629384295614698605420188058034006995281484805408334722409965474061507194150726760083278968682233977378635196692681303345980062378650064618609409487220971091581120517892278767986460833696916817745511521746584578061985020059815225262083429144654941767564692286260817602304342524205373386049485345823363732734093489546091425789771111890990989677024270217045401281264306682653630530613933728513249318146986542031089966162454513355040852893641245352624226312249054342333656431385387847692031581496140255151555264259936436299435708925297115291317176676276638237734584320416734314018299786187488328436682830568686289043697970729181855069380249325896005967257301913346061915265827957472057237255249883608308959928526024299906735853693940463905581724677498447527160133583887085923196208592602165465860127188859760533419969559378283629064534722107680894326154155520145577280172391162587273877025281263767450342157264495189914613702479542771132021325855326741879050306196705110480734427291018646024225886542182512341015184745826709750026335275592454019244352218140492734743301824952201511456888313193259190513118096595810791014534051090751895000377132515537295725975145850304708751586782951628470458997802688122958949829163558980899717647447425471055229860764190849192827480299969567817318586306373934285951598352782084524440255911813937061556448337232302541904863280842906191820250784806870479626894378498938403276471361455994345956543380386437521145130052739052564768060823095786962374736618169053694366724534017387570985746151023865895326679259408121816214157469530607224873360585600107086784107717718231981528970096415801025242200430103334886951121783362695291945184583012896772128704534279211445030300659766422014079186569981474423215525651107705649729942392882330039871188108630516547903762521044291584702159140559842407786497835492100050697466625505080815697529717235569244580810863383546543442619625040815682521122616946760128000608195555898905966946941142308603065242444397095755504609341578489936041642815726915063308104122890452906442659261074987061672767244963950828634383862722339463866509958021468205567644279073613446058263832488623818990906085235536923918417142145166612166301354161373043544369993844797891641469941841373277462643654133411266470268304892475873664369717043210683614618916786050777728398344983389037896598452204946427226606755828943542904179086359766666482814906803593873597480999859650706241388264742309989617314319856109951132029544159781223788026244944412239064037866605411086107806207285054243180949583654474471308614307790827993148728570919955512442210669653559555590767839946289515232295827755237828880015840410355759940780515359587153393564152832382390344274234188986299866058421552261568169325924778790264887341171760527098208964721602946842317080474003248365740004538390893674429993646170071877619066494191425352136724052951656903631253109060063165872792200197014494575321422102514036905179786764711334458486364877209575207304898125893885722007111845342599266109873870831422333666874817998668992523517187629520186090846727506801737232484270121181921177466333876964970980356622910790307767324590915035099378566556439038621927887383795147832031194295033435911694656143073848790118798482473239813341664824280566946090398577179131925678320065177682187724416480627998218669157163939794525416524563798126562510668320551996486393802977690892875216338270085663263027424446616934477702517922541127356939382846313816902631669111522370395871937462156969519179731851162027704144650823252329723002014732202348987889785325809191057512754615098022295291400800847395570003929059591369316979551036498512247146567245645103483442480577593559556410848677656916678707768044485160286299258271362476230777509714911156684825336574092854809353548047901191615427956532665268913715375658412466342465900786502626456659956318441006845569976292243607492890023789853330651218817686742211410564926984413464752839924539112356635905407603150283419646623592615201009318975951177323596639970112719208523306256854775021522803001002273661324109629828429770087074036605942664319014841727712117242841252745960681844504432992232578238273121031600845407214200095771303188386076023294909094666022234872919664158022034084718579598583131731753382323433088025584989201714362977478004152309391918899994296071741407700810069750164495423177414869022886047604942618998113503185091110116103402472454464755030758293769584574197789591716015713346887684858159883381932778623074193241388281650180681021580179382904303100890709685145275320191068576752840174589414726378390934631827256529862372762353466068003037346889514178249403840086310314175075055399013277451145574731944235680824086352133155810663970385524438809295575525461217118101409950954682314403308830224725350605339673055686910934027310265823652569799576413635695203161971923283477248721827282571661823434897394862820224685008799304498283464755570206555157332807002087696066669560716983890288710086819547872083526006789248596192697035175348410957717781074309311248021381849757029296594452480748057923715043555653523777387928151053594170800927509896780170674457483093796962136142429820729870293783735866332556054916807286356726339256618921458143921443017575925707024851687616600392888235901660036438767074326971999733418290590647367207570737933788040559260609400495752133136222468109792627211735482181427227757885720029829045243111233584158202183365066752659003865720063969815979538472354180878130163484429086221796672461290201082979880572599029272205853930152515657693530237459599595167876333945493186660089256149541531472486600052810783189074798168259661556112892812476862521135108487042503543649497020287767532759020349311541832213083635424466468025605038673940733792552604291357312804839393431623465321938060185871384698740512880989554702157467812951830802936965913655678192487930376996184572648447708608874035676644299093180601529050661527021768431638987952270881048362169922326255712982284582080993627301350868703235126907018612802298791590145105848603794563049637770019423086190916663013028552830074092215409476935793100676860679159734321162112819799272352716497605929905494902055206617248623300096859309636466345968596960411469567376686204937648102926263363601133716076540233698390899106327975557396649202285632667885594444668744867688260235360751868787431291610747687361547634867398460243026446612269109691304174664718823260202312394389683545421469472836907097411241354351116557810997148060415174635255364017431474984095495407636112728851207471440311525363287853935757895329180429172226030879503047820613369142197874673734976924128223522744724639682741002232101849905142313514941972449226566291603997301944795670988276970158027833255233457767793430844034046152740159005015334818484804185938556296116087824184703002787308638875073205162300314684835883872542881695810787895612460044359203932928341785468924687988030393543275124350761693576496787477853830617621601425920898489090377915476341059692751082639210223450267221935473708480768788847123839991764968252228879220941259681105389011487671199840128193681308486727995640349122798662863102651192698091800575435351180448171653211027285488030235750229947051570270044100447307648950932736519485726391792538545625566867390600668462337761552668908746990722591509575189923895575829688986402615900170336415155658821467321682617569648182014517687233474616585390358379950679658724576631016955256540228893239946155982901592394559637465634718912411757046291485810507889258524425710369742723302327044444815001174903637602218295787603508082861940850219011315905096022261990594207188991568409545887062740061406650717282457110411433455474337655615719936529977255952470308045146548820905627117818941129685928035520879621523887189190190205116832637752570397673579994917433679235549541466491749983289163191230001943201614634050357464575600048414196648604633870564395931052416024973205853070577835805460271695831984992123307511955559151009648479475973586650788666619924788871244216710020097353925309682367335278223863311713369305086445327510315756046585108510745989632364698384779981017509697175088824873765523990326379787876630579994140222378231074409942686744767872678598690445895571796909129732870542991167838767002044038668358356288848824916502385388172202167450301486264516716144369045727144677543172561134438010258197325764888087019887668663955390019262786695887665687706713672532979170264762733357162225711484983007425744670434886561975577848209629517166823555605852643662844839144086827733452571534272345756523995040407273101856679074208833676592353366013370419567500993033503409985167084293526073812878109307473333331445417640266249285427395718347183887680893829818144040483686879642163856392884956828668945988348064161754392415998088673586824321396035699056861132836664132447559491103891201381000841361784277816723249925809028723605572218398443869041216168999182681859511399244395573440263793406233192027624998588769329468684198273013648981860733589341328522575777658198704813067867196244970651950986715808039746678730244029913867634203834215468541469864750329411467781485629231539985918660763738627401283161273967228535324186225964112481131384068129313901039418073422799933964906741211307950461709590743191667745181554790214376955257879369126597908374297992199067228508093760577412823223885509075125685238456331454770446674413032491044075495940439446969629358167880737919185165228542327805885127509745913162338684900123384012780762533178944470990542477705132941505245748780470016124072356794396125312223751850335888840250559527378561296416218738338432237895704694419450495402591419076167500829325139221293125546512809146557981972890469549809555266269553176785802404498222430361234284815996047459326789024766113001369404858286469910842999620324190222460703990736417898451014435242696914229922873764510687688158082804077148389545992284685900457605991206607101019909400299485515526037307583279431864001925617945854213625982382947157803808753213440940995863116228245795460373948324780229616280207311341391309537356300921957493483329316466501963709177531522895345202378795883065745182018217402026625858048797883128626465204420539447788869032209296366573912118205565711456921776452218696170388586277471689102314989285367479675266735319552980501538918411976408404508156700426580948315509722852307409275359922431974760663661865228033511630513752279563804519832648605948236834130347062935206935610684011157460118671648202557508582589155945263977776628756983861371533551579462189367011915958501961024137992751946485626901430833536422029091994542409716426141819072215504429924237939465228774132324476982578236494468965694545762680279445172738303626704371381698765543984261618345399407549399921348425768125867858523038859666605592404295181047987727383708280909835994450166778148446739312904213722057113844225869901989045255692092243106018903903781827428169839497172680828131041536367693482413371264134733083226732133790354564152590740410111551037748039685201855114734271676674741410484290924928573694307055214279303117760490944618958893328809493203140004550938614034158739014554637149312874174400694722807416843994127673730177878216038178500117214871667455430285849902984526757702048356024700669663840691362443312544021904916014881313717102664046279562288588141755553058014244497251317285617422068414375359548498702543647156044523398449788442257539458472972350864397970206834426566289488509130966199504696670421280804207828553916711523353516123170760838842459866275194386752365199041394731446013328098298633123484929682622851882075378255360046224243646214196153842128833688783130670308818566600361787767582585984540057833280457361375434755747376687365484807048521283661933053317699408296277695444279141678889319595870665179512544713717966252681595749404841550035290875476041364987933405182194722075814427149073861262693169024417216680369446056629700293373284403403933931165481773962387367125796855435679241199632510033474070976459643869699169804108333286018955509885898973974934585129398215210735027896974192694108137498007654369196575982775456851842254017713392213430925145956305811301032461040589112895751878514586693340349676845957556307544414429422189626001271287606041838920877915398421164470284256843754659218935035506787676048135647133803684318909536119055783069763737307625249006867865477270964562044797059229667790695847642258495801700063443902525660764445108158691666046289136445361185571805064288721004518292078183637884792504291238880003387345157155820365008226230662367002040352190347418616184260947378348374040265377555124000591240263931704355523186565683314380010987186078067674748971879745664638049728773677399190740224234776778395769671474539289364416493065773952051994565058920409078869844688082757560657719346198754788263976918029664538033423525119815173761377011097665094434257015291086930943460263357270499073856913036829150308235350443709823593796580781561158990570991763039353502507349427330088915126907744820805509313308438368814112006426470311536005041672411850346718277879595206165468380945343252582934467380489332281753347109370691247913400774276814089605629352284280483420672235042774455058947445385160302631428727715268312326082830414341551869344981363899566877111972818542144066199952663703147258723285298315837350945930689534100162010400722170684006381836808359499681580629929453193068757177982661209014113815727665074647636756836520965847886694196868404784801468321517269451242047110634859318713151075886692892349035780718000827435823994739248007797462445463758289900582969383906998371164713711538660712679582504984312490342179206297408570101631265784898898333165597816192720847324400827022996445730416978585210135043435583561475848860791719287981143910149350494406875212290811786187017902626719554771405699041820850948417988481129696723574595541377991233034901158324069256362754016307105091616389243147863466356468675908925073057548074782141560980909528732422096687554737909931057224512873633443301609700115544488646475329039462545382434830089719957828331136903671671962409742996634866108068342545169000828190684157856880556565822728693270131210620873969034291433387715233334848545975813323630592265755087045998052044674929524716368869702395083109442588361483302641621008958328413184413942477619853229782167877133268966257424787813284858742023925502907348607220827628424345893096379635984968581173302905989755685602267852802269969522993488145273318212328066131892153104497797974910097001293143708553138076592805259600061558574095768736833172462137066433074248562452369168910521958027174406164634122526697551707679051932169020785978013547438418718155736817495032677547008973668252230513718116978408610622425247195358601070511787527732674488902364097907240284047547661675323692743584806255910393612237190834820495624397305251334959585955265526538214966830103855282789393346700946887946671565228993032628542684149960467749565335913669832829523518668035605011953529437473639980957611427122473022637559637654228402690487544168118646560907911692186248717348193275679965897649156849035954732705875383820080363701936741764399614226680695377770743292798577689947269932612069227079919622288173324387396438251455866833430331235519568127085409216770792872145554449647296135401835866054442760240271575410297914588512005946092690709639838739285123224644775199951777433292601207581406495755053442835872468077915542105761048238413475709998501374135966786903383249686505885557043402075553485969475914887229807441420446218034715113246554042832742486526180610417848059072367583967283509844500284671678387477793079656331687236495618330167703511100709544155214725855763650711122632737627131950534568630484754161490198072345802143833526214799894861407131427014227108292956901374691614670959357725266175472497665367538820576202911319486900430776608049215701642376140967817111421245884104327071372121138597507717339346745377084511946393957602943549851604516692457907075175023435106917983134963975887175074514851665228913545229232344950891941240447851107159563039391749321990968665689072168489592112740043093779376388759661557039920665167183945001653410215181169347917266859180898858767956279580075264117245798723134469652773157877779946758740558066870148612638582204306093731195939880278482954192536061447467315004569140491590707361241215525816609232740839137435714352114347942757532285002735364378073134909744090708952413410413638910090806132203596240474307393734030643207805711955594605301544241154565704164643736827073980435904896129721923570771602512997538331432932844211056077270349146102958444321414279625765205236512667423120271101413049358180213995776708002064165545179287726307832105181769989198377002744394179726754615079620897614716139956553499008395313228590280949001634049473096523951650966762473494918510075992291206537923555949026311066916471189086873919669655306759992625548622108970456957804531223115736613487615073986679875416694306998238011728955545016390482940741315548737974778698790100963330120634687964459453960511763926247448913956435858682726068701358136310766636588932008072143720264365922744454343441770122839808140097109272267725987759640304453414479466314039068998496704067798250210601311604707699858975828327353355371507179966924008091397587745655430691365403469656304886392493721581109568747913740151807644695560922186665055361590625459629163351372477148012089524668384404469456111255029807209065205420136667966190115158630321810188987189604049074920572370045598371843849017377871081356657609210618080347962175975416829743497466671371492038641701372191501338608318981261408661921894590065636038279555751759623954530279394990070974534430149737243022887830518098979194201471777842798965149476286896248358751293485607501978308649452715365253271703640553275543535513432036470296279417843058319703506152965967780367141920196799084016271479868636124814176750935079877724371106274118250847185806070019325229200125505693885371515493560927980067982161992375481585453972119467448616436863655697682675556553777125873189004710680096058742170282001556647396959186497885635340077421392819345219282398373469541610885084478469130581289873670914197541078943398423810539448035563390505711699141748370691937676945548644602171201873542580187663412282647863459150066008319866047139985747116379540753781557162531342288864274177199577503142696267936658839041002639789526566702307364969368951760740292244141202650663486055389439027274977551058479279647255166066504174057875726392852279569874702451655793263575073785998840967101900169721201957225638240478260067135514206297496830496923259598962838868134571359912304495595203800808822433788760098224779109460157945781791222951299191391025301542617028738853148497707549271688278390195149522553251797116083730849026236372263085884369973265738767772542087530488817630614934202950759752578630693471608560256047633143648413200530648060757281465085038312762331123263816828241379341069481467716276194724615841760898672855447408645780415591185818173255772104104635782760473737147192656001865481042688163487381673722585875420021983550846370788057385923063852379862798524098001050907798442429408122029935857657627309923784681370377890698488265236505624767925835846734978113689435670098189925564908744061317094977225168238960154891151390396935159646877980926910109782594938227851764845606992861271420651029378740169057110767496636206925244173817659941806276228351050134835205924770749945303699632839497510871946733788690654132396724436019837458889916748515747155233611457105850697335659402885762226815761695264145885312197245755922275711124372129569386552163126040688430054376001714244487066385677263362100177475024082227220990839892443490292575596232209605630980093840825443308630272780170926704001868220406543165392976710546336896358181455909989566909243899110919238463443102226102120718367079001174331731409540238239036458729251508147661121438853364799808122854039323217157868817701864296440779268301313607177507857540557676314300077699216847465957972723741253436506156278121241586534982187718831678317313150066255510799157540945762510638566561644157252070842828215336475778049142324178503508859519141223648027637522573251913402777102638852052599918646894431557705037468653424834970583574933968607815601216037363867615808933337492945247975035336000573011368980304709014660339006212103920429145410254516082957912784251303564450365362564313546904071067488350553956873821063597219370438867608958470371827611884149173748869397204533632785435040203652640988795035962631822907408748088396293060490055996709158025933318798361016791437851071731733243313725094891774726573834691563527882375713637654861769738973409416891391522243983665756929128608776588616136819354911651507309969676023978464456085847871322441203528046644177102191528474056162932097115496162555317799219014805103321849275773501878344540684239987698619592881135993697768727444453346742652033636715172543702530649502496172009309065282492120840908164154069005308262965058402713127669404977770439976302649850909082033930143459549285763297362637454197889873012697615998467528943470640910610706993043694351453560565122257630469096216802192738301321683403471753247483456582569257067821269724657178392333020501801369113508207078573032265808765300675381373173333932522581345599094370811401735612857770218090123634886305107375686611564022859937090985100383186800051275942602751343372493816032518056301580560776294783961389208521725679848378305749211026497450443472797850935933931586851247866882350698913138592620219587270820091567196779634266129871107476891881882304234820580042313450811898512561060327090666827747131091269889912323730222924529055785835958128007726927085997304695686999330186678249342094011055675666342102852750428839240629999881325820031282096786317009089791207111230854121230775156513382172424118909362927439618562453127064990508360111706138447291142740478813144062080300623451920222726740607161270230963896803243130968328518593095607244009652529072974206287888151441328443327946926306647191649092385539457098821105183458421905560954527397538109928791459782384984896011684364139462660929549006208927907084784631436566545178872594044285492016017333856712220049107533322089410520584578285864163643705570397434959446627647718381501990243779293535389287648754880197199902268123766982397746169128412409209507574093698024572730252778060450336596060052595997427989447563077408646116302717898298088797004362404444371935910356494029964841019917481926016181613407425706214306767066836834856119207237313927912546386605281335690335286672878437436891336547934875094043125431113606930614103932965511512279806354445166603820389980330528587711486138011626931448999716411465900666587955073790975203020815849579933407892000388114657474877162494729770552734684399938822814736406633631811392146079497993207268037563656190020691336995299095146719188629739661394131609666445186901228659576823138869234146475861493069845319197836828292761992572587968975770160992573486266914620570897389953363559294252847738364491627996973452636475357880950595813682832125769315425760524203290199910604321765690786426926889861284643117075852268533924504033344298988019842758819859092906942136045180556994440968107253709160048540744608455528092371668095557264254422863293390322148660453957560806587282943576320936714061384491162753092726361959517856086468668791478269534669165112114581853910346927145662302083080677752277672802891025898978872006870093912441188755074189340179831574863263376025309327807903367295722963089150774091775879359622795231699114751778058393075375943452519413694509822411435541833607907316292259516863364508058666800419407272136030842400264160613755407718077959413312699274214542040330377266328637723423273392324582145484340404115098865623926019558309331085977928593941553323308506164224550274399186838982983357986688369204435351058458393980688666235552193453393902041849885884343181937472992238955717939565661415997025834106449522470396052845192141352624185531779276732095942456361788673014842891997657956163129966230496251317214970595133697220956328003227468573087790996751628681397107140821750777836745763694530390626800997283842878469796583430178582813223781999406722754566098199122702200353857301231553061613452720085430721360583422390480200475055638623658784641261126171288522763083767279355256873975527318847539887452076741754814512427098136159889217615995090922098852995878120290962674410751012283144998268135952553405995801093354114560194522460028042384018334621197016663098448241163459733445711737907011963644710112587750205074140049115518272337651123411921457212444853377336094209385111268675025632865275615955405804081417577719929994163530449037582442550555427085652576462897678623302308016857742065336150450873751857880024964769154487707108170602719589999862647797808000067059485917007792523202965382838011005840648057042787687415963900163782704379088418137819047002560936965689073958534954380622627401796201405679670654550302411901086488447180097377261451066761237489083668732421885889076470807479540525189464533436901483365991161862431982556131802627840364616743643127083450380263585771206176914147696428214261686583720877259609783054192870757227362811675165170801816370908823843191484518304104777827130632789380476109607052961454489295575543614357258375697248722654194381430723543123656468730770376069625981368876395946857045281093413425684008119311941332623206821702593131162585831513462697699857556884655305932779115452732289478242428862400304010704676158294146986229392376921274958233314324878655991703449590263123744829860886402066828638119686972043955651166200346842070788233459580291626781745762302179652170239660348524937926293866291496077164736989218745815644332009198757626961461474468237212370469837409985191034803173132620321782661641783886520907888874440641623618327387446944824246542827955434415318219705071689463027578786406706013472295438259930482514594433035379387496323113831176845593505218392316997256008236720785379340623452266611394502071100345035424321464816596732543727802210372906607587836407814337815153580668943139897221930310831959082865892420713405302654826462284059692159133336907734277042076441851507859569613027560328446064377261114046256303051783008444194894250561645179887371768103000784436136410521682082570260404904457255985382254150452177876844305643778332701729172354995321319431332455276250096560127141306975107163260665215173036021090204730793917464135271205195972068421777673631277326065561918164632694492769532905116431492949744523985455048194039708096076112987820449547931426223653768275477041069105737901595427979574705934055173551236762799775263816257521537691890197629671429450030767191873818411986484999718476224553833567135497799250087263672425154877026440719696752036031451481755862812364130396195274274190322076667395978144616021583077590412053338008940495659778491231240320725766249971823063712703534107415858881690377922071888374736222420720271599571674589439214024625599958005753975147773385666171840994142026960273384356244985804586197589593650778653071502039192547305082654087240580781851237570983009577965923492351959982023149106751143895343428288975710444255830768713190165557676703194557239698490443763721390454573854926272620399534810034882416796047148749429481552027888425143350804709418305415089742233570831492333473794862631335389705126694680155913500495170607053697372637107548417073404850882994587400299461080619250322871398617224989365286062785750050764179493572007665390881215317969051699920633239723654242827689789602264467213962740172618719734880531487974236337837658443436170053388708913468723734461911236385426763403799608982798439967007438113795862803686360417279475340185469316155292432292699370835936900082949164933724391322267944187448507631827992999895762541303774617889668443427139641458557083918101386614086700444869824223470608544622414462275875254370621192450696150861212721388057372850740442246509883895064366959569512401030732374222441323050408650547855800600981766953359254604276668133374850965426955305202675562539379499447232716352993974651901087802735411497615081343643102887370304693112291686677672021864502963023591813901282478844948668339174486006189935235496482297660197856565562027728744741057601652525345776956197304480016583590334125646415201220752707537072438329872487730363246846988215484830362271156595600829676903709936724575782745568711449369405700061633923130143957191439734745182348628331146794033549235357666314660199982628659011167812477175530205174675664045144860505533674517089011561759242122303766001724659627415747192260959764093394828493150909023828833139921292875460917355753756834762960050439942373422205054827758283687736808953505304197795463522483254052182368646293528030912840148081634254403682124862193440088167029997401420924276476803015244854867082010118532326159104361356235585537673446846528543211887445577560779145942267219156576963057650921435465862692053461019903442803264423426108992321961347722949069504052608702417749266794826094469095595251670526431263275337204483478585732359091685423903003204536580031958940517136938025128750975084029516525614977329638645883459368972174368101236393356329731029427234596147456411985522761917496986158734700635055723611894017828658847122630866804666071136604602230627833170881780226947860878309471884107763020980964308737379908268939393128690061820364991921157274236332639619040316104660968076822418720829291631172158190609425124690140458716876748778006420024898245214445466151436530680677034026297384470044741546184893220253793079722950601620022721886296827670648831052864656418381306007559759274864693907550734341739719743352483850146285735986061250477327394890381846516233454272704773800989931762320111236130323087631186576001324049333299297863529805329816530911293686998800305422761953461658287903088408425396603261327937268892246219094549072605893981800726539006186211084961434974349672276370758806492614674996127778825582866587646214319502658873057101938529120120145270482952885182931959506924723784194301131163587308641760805992609042262260087640582776134615446557362351442760586916267242773036954694239953739821211370932377928544967799634563243823172730081771719601215177560914853973183779925440926315181530174268500722560065871209852977262808856765367147576202667312810128539534526956675940562760500050881179625142295310524656589562946355339194109600085837048769510982007920644817732494789279984950571896942507508556889334329787481512132206155962079079181504750398955502431178751498170657848165988904716555484830272566778550937275665474416284203266530211188189129973849422653901083840529243014552192269192975889634266717818142631463962105073866816726684321426784099666135668101242106149076245128455602579406755273610595951249873338413535398084563655150183340842755874995951204767880483980786669478241200733786249855092550197393659289951146235781029168262910083012642467928578749684810823070047725898913005355733154901757521993451414992842555950658699529016939228915332779301276099132539157204276704456548512255438991303234915540786051030698870191931677354680902305177964835852685146003834889338950331242799897656502434173996115752812318947405982994129360113073915598693504212679105908184343869925039502796101651237627300579336085679090980012060578265689445063308214047156559093303674837171208778842509924674167316329359884222313427976225794237441672716321425563814654020838574008793075290931866155832642288565359082238106617401647602693074014032050262648869610071284655215016117608301349362868398960531663538113266372371013808832743712755953049463859635583971218274796954321187462356183528188263243958511301274313214404377389025073960931739331489997561882516676171288967877891294068113705932910000564119270505377503506149167465745706638112901424555418313773392771556525652975419060206612612818661040596015142949415879749522609094222416459867515668324998014089537209275462722588416678945637935514459238177504333701679300568628448495689623860274143621214225612840374140076129053649075084195335815484873627303478907206662948606139186377767925974212195906513731302726098388534385343479832955716886109304672172875385903783583857588296050110517311571966326211875666711080907561710036861074497701642503812721866577473438784223256827411338788441173221307213026140769792610374273230412872407380829058681474657962597061840556895469174269916235805293763657772208442236705766598840520754448551759633218077453349760713879672093120527883543176750959269774600393073000926726481469030674478901566542105080220908775299908085616150467285924065253857601381568006273554422008756164571990617447904546593846040853485191689286775228770036193966215562137729960911317605570757268864335855868818878814519782479651099829954621134858535510952634907018939492166116689582645806595179280543794780721138081991062691720456690201228824041814004107152090378462248335482362938852119822594770212862727609375656716585951221471906677653550072131089823364155096776906600669740605622209634614336401972131486533169305265612501318826728746516107790605862037160823129052003078880380843155152885248920368540272461374619140276973043293544111858044326718652394390148510166799768087221960899240008262340685588728593975598762337343882854237031585933432659177619410473794895547223699483343550230171684217338129101759884472476320293880558453292519832629066964456699781936193404143861459268399716433632816137157587180356297521770317611864992266020378717760990036816363245721835032168344801490360577355514346092970144162037572273349779860831026239362912650978416534307441358546330591205022564099483500115323180407503640028114656383754926843207444119092594287409684073869484368013211410247187950257817893924792426420781294301560081016113773396449905567294128161703799683774675147678240220068804591699035821625000271184963601190844691151163300261455199064785377175278347382792402219962889612359004964307764050393500459476908608449653779965913852727291404674614829199941033615416258863879562864988899587781909422280310944536834384927152274828473904371432570426550364184442850470102505507007536267632344985231266685833906717064976704347767628802418565147892267446650714344328945229248158927573214234179027297330065025456604422841727449725032247080153541964837943237704972241678326536071544649616312105588752615950279872833347525005333124168041732708420289619397170024156090947389185906076412279674597933063332879412372700132980115141399425951031724676941725492273725872939458907206819337603478293889827049034717959153815341123282438660394826393585654648874466686782039575129347643261745503391116977418106971857346966639793272258983205907693686599296835215789675960537770039764762375437743630408229919089305885057575894953838930180935800063975052586083822832008952884832151201698722050265543372901135804830563360704435457258448541078631085029288758395402658034624694496265442582241436056041267651844715407789147088751544654970468921418537484354142258804678805952129821335452369717064942335904362348266176484428633128821417899754043941403440794789385524381457845714682215328802302005370071634409544731612389403520326832390914307437535966087397957263267098081290037434633308815871307421647505003307170000201101140238154360745863357468395487446877227528702373742104249686873650405174088019196821619934603975180386923116429520104732516078531735409220194097039809020500854257383226320303017612257978348870784547225246863935627742161582902026921686995247751941903625757525650591096734106728521922426402597800628118738846346268688863613978249058716225697415659714290963557241518009545101937716757976248778897559007150853998281112573679541464906820317924871676850869787988690488344385401930134426848953843969437598265744148177611375121695014587952892242526140695434124557074634001505536960866019582734898124551752703035098794492654940865130895701720178746136913501211181003345633711679631136720591225589046198672799497407203697710540043165170633677674760636253090176739760570897120163157936447361373075629270324886046327137620410933715450478777650969785972824371494673535140836786239845252547905888904960916446009253834151650215537931579198836941690122911461391040144432262511082595517466612109566477575496864647738535990906181184567732998232508681661212304887430761272565058153571216653225792826178711172955956306165458342762027205021404410816121980173738143939974845641610326099676902513108057101067618854256032093406827235283637194554392275869940049005058451679544724636414560451630359883559008052468908493802338533865596634144245794130363210425031406526261842119547415838638109941888946488320697286998750656581686053164078192439921843781835428797466576552958483352812740344455990742396296338150977845086035133967839747780399510428562133834050509382070176692672830146932507565554392433806995100731904067074523243790164594299850741822701142229577975218933525696484707194345363065342942777707026367471948280191152472647983718120101516978455757648398259032839713689056869005199717956887100473400758473349517426912020731567538174908441196700266707904888694376376499414809354907806094125051925813523404673178569759397176139883832840693567446075352073899766215689427683186354635117046387631439482623479651823791380406918312213736639684435291743807077022135786626715551692714449731809506590331831362859451739371346524548100747345445458832306400424149590899076106522477636144344680381711753485050553524217665425866608349339085502204260581897741359324224119727206025745864348937127597238367167156252635607599855996209222046143904166235181019547336214952227851067373908721078900585495817995566835381531041682596673221127543114438551147432470799863406417759469641619490865341455388533646686949212291925591554737661005688242361054445579088289654977176723893558911652960323997113163233789693695939042514598627314101612681541722615479791025741281808935818159951104563760754431488377697041533718355379661088886137429627299018772814299854773544282851499936383450584887882648830767061949487007276579667184643823402614020059636620881858098181161297866789381195870921126370680509158489929062106700338731137096080481547174913118334402738032036405132164989518111719168891344376736932865818509237541517571767245937220196410871241092967764596657762069731498953561228914007290561941825542848496618740753527795349887615668883393530773725173073675028686966384779818661823043481503693188903847174558541428174228260759736880141956559400991733333304026057105117744905816834585881271148147900560437585922337400957411206078970896171375990717297444469339315266893406741990649850783555619294817651829864379287350907318945117412133495035815506303659104381105932416204485751015949169239387012995299299527247074360323089397572664768432258472830818372051644416435928402840912624159189325812461473448371848577363079003823474721217928281535308170902588185049523805228297141054598511001290912762117530305690230540768987335083467545137440985081375093373419730240479931918617935051376462865597479817201028071516091285198859335597823903629566831709473338702342294879894882848165363497003489977950274094831240530364580461882787605783944114138118943039018825299832376892417776967891676146183537899312127892265155768860149173209498098632484159281027489908300727720226078258897786569900127764838769356438408818872576169939556939406675912687319760242950997431818858206830709301264632014166155847479066414922386173183392078316227911247553547464141539559407292066130786923707093255471629762947587052749696184958783599564020596954359423965557219690590973859099408005689433701874538859518705556690207513288232571034236141075143177685258243679053581949559140979474716899207230697069580303126844383224460454883077692125357175571923180801128578889876559428747260371852932906598923341044618291040770947526060674670491726280908718781294857906649126585369116708414043583677680753110174620573795139952809137833362372130773837171774610099063708048808832125096486822453184370710671227642129670373257713823631769597250169476540894682966978706036040446397573309758817446129813437752938200677262638782513047814599910189916107075406766244528571050241261177245361205024489516942036371995791693038385564152809153619161202465765142891020150195916787421683433792461545406536313404083710180333313759719249877340898312307235820561415518834791282390212522694927138368741961093814349880979421688619446906069214246766318091956270916868212194666007632715881502590442666336274750632174987197865027125106177715179631004788821417706540067048707665923999022678614292874127391309801444004405258675977362120081299823716822474647807488481343355600101394491664724363403401339289126938722526855020194119381952181325329893261134906378214474811127091026549799236502328930790508949252889386453418875993305644971527125673779965269382396273010921973220133642098565518352072830262046826565004488322569608824025963051874061892091136359325397972244621519008929641555024967842315986601429007281224793534049535770133472678476579620843826493100299516516815643241676372274849964141740572980522809507085839206271820512475632098876338869383593116739476194450955038705204275889653995184481266426099307457362200357120183910443311562122918294309337208370867511531953093049709067455369098968051157645276771086169355333274736864732004833238746374552434487765952790187293931189154268861809883675833067717713443482987247142964074573884886371612178991365159346832910002342081456739415353005115293019184587331767474933477099092970555746138076050596313026649868250054504836538630985665614252642931742131446400213760500990269906582310742158651593457026043379668423086049655946655492388957746744399015525565921932181420801908891012814276384497123484626833473190378984836242156374864346485961776212319996982103397922145584664385778107889661813671075669106764060694911876025071070074169044174647437609244839039919275933094787201157743040638353877843690193646277714670491898137610301606725549190488602822953743086793521453647655393660356953445360688104951864877731623405186302068587287027014574688674999391191443162218739256756468062823291622070398888579620767003905187130587903948607661248673812741324349387054818228563670601483962314181965079004069744700060581273514712115658272533331151723855778493154532439413935850214939947774222472935546650337811954899182007250335428435935350503667581196747935573809432401133445058685588841132825020381433891703949179025833139056025823922259416105003596675682847118630313486997933494943543948559690564503724477242030523837605300595047299352394909910716032080750389511649651008235654175521699611832077711449089199232930970080745711035499536166370371179552660015059169781862633885468093068520017873984103472121878363869876727259648021455045941988637345805602721755270714901587869019242474897177421388663040013202667180343502019808805520736927934528231270679930560282501439119416371140983691269447403644571525771466273586785723786458446211310180069824205717380883382456039203737032704164430317766650002159718306761332236631406653332812554418956366836651197884582033646598273181340421494566440676789458285320225302061921453342684372591419049532257068380446569217403109269483232340189380297074098055197831371228630622480449067454024241856491120388223851922817986969692127467415211610133745557862147222396033784050909124475926148409665775118344489204095557123604555746993562160921136758113319568710181895931590074998334962746001706309490679413546408436990758182949882047117353128255079161518553079320675496917716959942064444593546379435993062832714185414478911122225490855775752377237138514368565300843599033232105341091530962052023321847402278127751622508798760070636124527298540127549580781454487384244133483205500443752280574137667878745527977240254610208124512428725936479982173050382744191569365743892875518850151500357627983170006724311695765724855051274453831332726373256935014230101015746111629778170760679559548803846156228739442585582498779620906667655855024586217072447734437264512179241712863574845838816790373275758642931967831237526208969957001520060425667291119328348650616091081217904679866494616805059614989331972859137345922274945517191752893309467602015691592961068979937757770788126134917552996961252880743578239360048039559073371411677919434994884772397533592098529740973845726692289650753966931975823807962737197531135437664039732258032332117485794332121338694436510278015491943990366554598335246856186125528965607728749744610701828292043264919387780008709747804180986423066811357490509060616390861697908228896439875990881381568574429265756777360474722271288765214301394699565657529184508175794595507146329434488857056157420246520739695316924192570667037216642595350683291034951501345347664861736951699046181481385316614785157468284819658067716181530662198468886087070388677807491325886207286823796202053802353857915287563497491273345865390628094059816676608698810749258530608575663897042950547493033510917257332274907092516095753803009084204774215703148663514217241354787635523809849723755151727799865242397593257794971392784365152393884180952259950564607687603849346698822986796296854571226729660637938263776404182684209470487547701004319958989345349623524588638467431526295991814424645519204233755346305920383870777684779995966857797360201664253275257011496460902209841389071979361417300746008215132304370927047930216425363847740067997889664845936009026312026198007693647670969509135227073958599869179570240109665030397927064171354783770316696180953618261843805357419959449256651773399656466599264897368009119441279236073633779982168159670239054474035368017686898122353637088007849428086366620624880779083520559115941089956211934301512276704977248325028892665130676150019448822023795079646436348737272352960776653765938904186102167487377904202494987516416702260467024473865931707800738433884286751522121731024538842609369911091491720676083273990582025041526277618220285517161510871463074237288160956873141255357156201494931698607039530622497695812233639396765926943916173967514320334578480863384972649045556566437177689581901228209970068350805803640872537198474149127773381814039789018899038171077271513399755047782618326902200943113254628581611078175427055076440870842751484845214841464774053722396403549230470839648776256960071829477962338302587451537050273456638001063791480213239587963448900569237039700256739219339848458833022393590385455585790795422598569345381072740911960665717619989542477388808423044862041860278545157125547518861784633100840942259180968189877048450170445577608552274384294629282937775495466300481451829297691834296820114920259065888288111563995393039524610876553683623195924281182953842579399708150173608519605163073797400099364222156722449363480964299735157418133675973878297714745540759753285414801365942785896854040093469410962661111423989847812913046684943738920000887491719029289292494486831413804280026122974357266455074703404604025887127698637129643358352454112114579800115748464865862736284187057188967990332170867835415847747373533573831571647947567271769683482104553093063383852549457495683993457411440685354759331513973937412525791846397922279884206809210829435547710402337283179353496374096853270047737513378955219822612805366960625325231367279958312219299353949415695304191206595516440433946394997682094517063156389604534829444736795213782621210279891279604510915834156472051003950204212876283355588730982279209157773862320949478917336789352592694305718601291354365188426385845736295890958950433618408152860266903533317290003862823692564855183859897151277080048760144444930742592538686088676233951214577770453348056717242080270131021300902251863502001320664989197067076259314538022904767725960589335856225830240988969595110286760945047588121932569689066496388407236334471015475772409056723443824353250342759689865332120547688108560982693421502075342430450954126440565804609974961882499094886736154772290249208757153668217603339753342504755409291848988508990140133397103802624915089462403321154684417531690644895234423330447954785059564381500307668055710121474595483409930392476217418053163670094411343350772824922487244366206510400004465005327790143261131357313639187925933441875009614060353185799996244994879436000855744909462155077399188822518027457846763076015359884295084797654837211537246396481848080513502428699957457899592698020514944361117935030593214491725305262513625005999067727372613256336775777233989793106942025258206634816167143778989010033773338413838210553646220381182843446301529356834834233144131875237378947484818598096469342060528685256108621896306981525057959556349780654429810733893476641494304854031222322929838040065860929434431320261671649369715291458080513963151805872887872552461020317454632375970988522954989245616558799390557979053157938466299500380159966195792521735736955401508497917063111882803683532842081151209725480148769859264467927912859257268880794855982016624271691008306686596354461687724289438454717830426086402317189935334734989823176938103714329788152843872056570160963637701420056333581553070147806735929447017532769388227851167182417136650490919269103326739711997827019306017120798037673325852534581079869042172726522411532007985777787516415381623262007186720459679190682700937490298007285564105500112954287248822135598233956051974272582764940656162171303746143539149505024638325521279313387300119000068037288575245056588004399155324925626891060122810095873644146878502562713628727179271845901255506627927024441674618812809885520583650850111907553779278649594755866878797800570107685448377673232682555925744260469591171778622738008150430579910871807424321897745353367933280533455116284682612920917536172184448474618833182130344078590229423607803756750630974464015440247613971622105593743775890619161113941142718547653828740887981192684936465244634136952684456350812923733655822953735178652825151172456992037273584106872170395086247473219328354256578988034676151741019621198624658169229292450330439536238373569576595695515326780992582643468491507748215091643957913844537786418034457207700296004868266864865199627220173563887065508127233416776890780406837969101568492373193598335190159256861623223274862575053032072328938313613645487137298287032050012667448325064991061883374932657078507596129745315109103505500696140922892558741292199277521105192215421113917180919876123676141431617551210450042630672153316592421208103712508388183861449858447773875335164512875333836729191479221597650749880595918517058466904851305237379105664874935984306644036809088265448191114051091408492049479737707869345532001393621013167823125730754310269862049169246925344998961945239670343280547218106041870726169507236320539455650536638071587247426073550894936139579029677259032132677330847900019669550506283394668528117788297000652681286104880894632107269292710237514145233001952549518210998002665205029934876318059213220648841820689368495246926737133845171481845395229052216593021414970798631762646673554031895638475410416741820126838350072118366745414995785734559134462638936581629246340023652169656861913383212865741844781158557635798382063002828054090108356184179488454081660224984556947976865835531083349257856976275697763798778203751739169586502446878002820355973927304083934510235296476411565649659496395061691410255730706063927903351777962153936417465761711974123510362299928292897726850881970705364822674895092971538582318621771655727905998017625945956577135491422194549445639728076993633293088436038905148028826525922320251731401504471893731387870771205027033078832327683074683804643226143151046934491790315429501119694623059243519174239729392750603096936940999166937736968545541665380225383438787510911104200102722528768438086134447497298018290655971761630909964825908514656303307871912433330530221367387305479786558566225923438307693024406740640417838167102427667479342249170050985812276048876744104033368906807024806282137957601627825148457411359563114080342857009892198985601074866216578109753259053420422517809707313311745332324671531376575010775862847822179531587718260013160116227854186042430299278068500173367680769360795716426241803072694131879448621476832716936260481273212704336411109884357295086327808614068245210674999034216986030568887946697092611212081139864183468459318414768335046458758510069643944431957486962073595457524624366773380008452037154384406382653136307299648364790357814354077559123483812423370948000119119040166682396410330839515226231544505814519142323679560863891430966494279910836093572404706255071856030426108713570100571700564996199157958400316214317427902194541854902370045756065173336203750476662245730017163087372965533322346291291164986223501169816845136020323760724904033136335433573200182475908862212148123413691425744035647033526531068592765452283000669891578147752153634907754505310223022440065950945148169576074245399473587276739903841908491729366816798654551762415515046701910786076824102118224931444628060416241066021954418086761747247456111952493101693022973683202670312002745233613413362443510231964541003021759739482615942630360649093634537827370496599701441347947683358069511789617138215291670848071590466544176539391620481591587754390278111444735395678196765569707390236107842000315881986121268257856433734317910747556791094730154665625210360958982236935063541182922370703850210442431359899114656896753321612705709478383886591884214371347236771537886793805516881042986005524506434703061893030855753531381710272820397148360404321673783249116674286385075388710239742313757691265345459778275127527365770704323676924768957421132785431216840114636937495087712722933992139394205593606223413203686411827145309340885622694344713586392758273233315268263762907732235727100593625080462313442515231005707918840145500930571622404438267949786519120355977682500546688389521452780955752307195569863534457161272849666302421292477973939782679297831061252037790678507208635966532516110591323544130092897281136886845245107662426631892684241616904039149100434852710164868412683854333172991864981115336434102299236649792442723199807330923856927642474740564648235368120505641557697518948124492768293246965050977931555278714046236531340884892351622680821529550089286141174099450110595576778322489051275514585878389087897629755438638048560423564552010938558998722644650117014084179068921810090588615463058688062577571352220426942100614713177728106641610504627280906883583347855476948372864803000853421235731652346199257239231761218089151223402354098139521470262017280317780550042130679633094351468361890730644121489798694880578444830832697647641600891878588193428211834080275848465224216439136987331476026231608132339781194053487720162214652893770995616455485025753305197400308570737871178119899161656843152961051905599792851354727489162506381281300651210754254352429184169326755497561623867669986416341879874215704833259415456415563038784130483427640971907171179002861657034890927018569311782929595013022976970343023068370939824965171775415236411476828223734427182012253558145164516732602208504104894736463350916465388044002416059735342505157042865888652581181588893050431306156897315632331867808787388859763365690575284485631129845314627525251075781958558627517494171581913087646261188994079123240637770486924223445707789710307950777613894114825163535578775721674928120737167047374287035838849152053335371100948868852979317994718327364580975720542730262964899125388297725833343956878397536477773230248974412187110316586301112963961343482927694949295987800612674757088609206796399319276854726101689929698060509824099397284003885980826181038839761942927724397963607403323021016974365366171238707637349221843388422655197311846974759912145580546921432617937174594808232783231823672354128667579276502069517568355498105885312348022078006035365260186889437270329722994310203095442408631949155876540967315240335725012296866800969065806191592411457965121551737491174133720950427067608990409316725243911264198658075930121293963404056179180548732890471121400679878818496838538910283081275851955608486935552665389606561509587599669298600451829563743065397782712833267505468626717339778836727403760189924919424339284260910587762345973550752148498314953630294206849380172627880253437312082085449017290567138399408278890070934835009229228062892743133382152222062908513391775748729501278011369662428002261522190365303787446672122838670498165996676704923762656390212851015344385818302576195126437013712131418215392825565058585135425120875172626280622366182301342966744402201847518189812092907954854199654897446248736073537125354925499792598004405644285306475504644370710744789765678919557365292362702332041799568362529149580561585545320203240041423579615546379763853785896977274758464458748868059123746743553538103841279189297853067062347026582818123936288270522699816829506620995372038404661325396345927427025683644653500191885796747561133832955433210668715172513183653169871924669729602223242932685025065268967195122620521618623707914377637649412552214722403135286081131153004595827854112321631405809574804357233849429600998644839618861817455284972915474097153765931205708487386603057730975933588682670637550942166733885250698656940302075128298665996719727506990407847669556614043035707536570091111086691606843720189156989422400354894998506922532391199177484299145506008509438824847945632421894519494138272597773708243357343989879124052788401805395758506105143534003675706323419482053727843384190514224923111639480096024079627707641161013224803297298527935312964884122839016136788387849003806534676703009403492885669422562558825598762911617928536435251258287586907509959548512552356160500531438092127532795657588744627266772284994881669831714093057869947326457108251807336820300482327450686072326181679355388961932332896528782828535562201313227909464039042708432430146673946849209724771184025721666829550908239318206137208745945835945418241776282896966265813747928518423876946243566911991928590440663014099152435488153609001608108234493252757679273222200384738680622297334868342715535120858994342459213663884186634766923492216838358093456468652556131232087595718018354928179705856598451594019969323009614381980538033355787230104910464869382000684980215976655315722148003712643406587678313608872603105326882935124254994185506349849064861276706877014264863843513479418724270679242649201744299171881214042389417412000501595736009780526985421668307748392780000558288311038592797422322751183463935666288878935757592628480930472430574984546684181063136919528254590723337254687649138636656593228307731703979834126672453393249433756742609022700503747005232087990241539821591287543207136155405449406562838530619506610561735447408850228813684295464626352652817129599014025017050788100750895699301828523326941182201303784125870715333394850146495812048561929861977698937522886106747490090020858051143954137036254008223772299290243334251591016818492570009825499407436461614979317016990526629064536325497253854757334750193859696521657940123779662480815336531616250521628804754307429711178015159280539551821196278048169990641240469279127620946532852435020964038393051135790865660884832210937072741325274838264411015168692017077841897647261916639214916377457106118807035417528810377726578929289633873894648264028935941586385682749263587817701310193273193844798173227632149924044379787050361790200808918669609505685260667352835459246845935559633738171414916657732418967419943440865106092647040518808148479082121685507329923184578121367884112845150553880235055844711736538673205336449648325615048587020951298539841460096137029892541017439661327376152869766841795327736870320152808213720171462144600702318003683724685750419821016849705239059736343969524305028792935879911534369956653446004479473069238689100333441573046498351590568381050482206310052744626125829917118321999714007629206638526726032445975445457809639094293502943441928933063396574608468647325490244960626000860770245915768663264925288127028296634123497586854495598383260089031613906639237460252730766748445460116713319232896765513808585539763706121891305703081636439637172808921414195220250102420545130988516684967250887460607780882378324282467530217061887479369554900706102502789770232067953622341161053375270233743504166209279622616198800347819516586676116736625472283292718764807842411837550955321532524797713839323012009950716573995092956246902908290251860106839137609657541346924756508618746989245174295874271606307361612556707435034275926166628132064741914681189049378164737052048050782166193166960429020263972938152685861840810138848113580689570604388838663261413026136075011581022574124542613669528436270209282969288655620972352159345697026094974810845313351099252088323240959942802527264224220061650692883746947293971913807597130328859893325460153352160191981597457940999749256338052398498434863633631082860530196804981636960133982846865910850592050732926187397390415109743244241153442013458094317020709656830676392193914343580177989724591193103357827704766953950104711965224070917664053848440553794718775216919805996574533183921165326100160901860098997315052603612719425474807275388113770180564052529959764789395960014399578821022025722631944677328111458845138637902226861418355992783446626659503097485900618995914459424417579663903708466417867664365136974644827086638735546904538207390602529315893402329481541132662988705715957039465579744504517569163315541630534408784903890371033974649220168330000155592541169159398461809489858109934537322958224098832973203885873909513280778237592662195661211214579711509885413249146677669431875845594398178110405232019697693714082367422432704662616896614449774469511357968447737908388467343904976100500086054236205737386854901695059346939050774094186492454430547675428581117238633846193956194504009895584958741261570332731622179492696067063260305981317188377173535978012339854725947841463322833376772474781571461716136791688966272769657913961842435538680293901752944628651622556227622410719709730193349620132745569056723534925356512096356842692397377600122980028535885775436028169882932191504453193660633203361990393778828207038061500498066986242509703658296946902553135580346155351941584383121850529238864398121321464743179764101103743136604785263200761429804180024454012017580383126326013017693907934288562945927637446351270941472510874436228822022002130499580987306234970811394301558359132012794744181404636039792237182391963720838500841999250169655880581947893279022748107465586368872635320827224969631531160031755070988831826426190885615593695197213984152278146184493857140324630729707493775646604457308895221670741046166023510767943304709712544013899407412880644879498246406918254138548866204047447891876518048984556181703333628173417162903877255416056633098279712316716067802873023118077485403969136183308895188877488780268126832144506235409003272649394255168807451373190050028177189253660027946280592695612808735079231126000569818794445216299774081924325679996316853489009926761487154960260574202389369292354247140897054022546554099449646569499011765435959443695752617636549912468848157894083191501747918161979527361125686432748736448530610655929331442826227224265415649539368789036281625861682105862503113984022235836480583551249157442919950522785224845291337582153930134176749079848191031827805251042775216247037213326171816970514306460201915121685792865994607912714628671460710149103137377766794510701681641451058722496485909179905563043829466525712785827055694050147489435077905160953265691448664511956606236400954297622388131108517684974488647311348312335094354549405420083310923399762633041763559607190826052704977912205484322379716782454188812041982259141504347815448599299963568215816723546084622713830745365669441592614500541821679237757352620508852165577791063171083623827726597984049074666248540929573107416501866466048114245571786918107038783830140959753100233051245568783941077687419425793454661325449662438594447972610851239360457110894241637305136202545427573011116949445742489250684815897025178692849562012200801169695768566270641489066395445865079502122993086315334103907957489971952909375238444581701140341362477355904650568472755093674813514313221063166055431418078525268485796474288647492486581395822721129481558432209829281608538999187723680458847938542092666635182645542691351316716324518449545823251484312208250708045127316103286151745369985102713694247026521017955574304731195039321199982160619488280301763889970634143334626185886874041991285024577141724191173651973416312181337365796425749689963705349480238495550911089683134638774884140195919081032449728617776743983765992270797190628262823125881862721940457771656603877165110594357669158626435991950319218716866726091301274009377889235139074454530399209332912207023084994177860782132745791999746608974706567466812372519069625627595423132492501184970957925940662784376489309026429263916308818371475197628566683447018705537219445199783518020880604605601187627390016519743059692720649836275235194449647673549833931019506127174585619705880102811518640355248550542629795003492520446327769867094388322912215887901812261102221320143817469499240658972431192186046206950473572686900138120581152801429318979195954712567416194449766199130492318198593707701190447772511343730457178576547054584963884042310414478609225960064216922072582138407389032219565188933415284246363022268740743340894912577310409730073487917726750302356987882315729175820460822615076387415338493807504687786691562450065836003795608191461572078826896862417606720386360728650982740983077868577489384707825865933042961312745134987846225376103186395163310887358975475926140123780589460024107522589004675939786469773598414035359031591668696575004738725438301301618230762936333825839642968304027139241719058273746480513917146310346983126062897724540018088040190652663955842091003804004136512665231147904824045878958540479331201089335592987129813228069714098792651400030494597624390208498906609863041947299846309897886181356202523008734216305891929677794740762951455698288449720479571491920419220861500684918347625357680180565443250935300665521000483197692537321937085764627389499309503358606862707331514148149839651416695527013850965413944730133343613002364162175480984421503164417395798143234988637718332265251250284516884926834687095673222035370146342495079454133137968861405437825411256863829759853334823539419785316313597703107909898138931276114968481110774614845225442418026441820050671606145819540832840689839290112202302519292835147067064023521847818854005852127317431642410452821169933435017173952949455670050450974309915208647085463699148489812281581036829583579989493390176815786303948101840539121115976357564396466755804987491351534486524837674287959773218098112099130019678289821197537048052577563560918674916925865590220652792205456706159476587682636486678188199005169410399354798317829950481187717251521523535599096064053155191014207877536060267078144936418429003576056214368807322128091129002143696776602750380193428664723689148845396174773511863734250833597824007878602086353348123835651452014318675294010115364403192524816422313483428492621385805366788092372855216743770311551976024557823615614542825979362937855889561086399095291890982254752591674790009036751566912196065630951735354828629473866983626399900492740445945255558445217759381336010920291128835415236176053213606355985152673036651050047405207285536407784910450025867869571553692470882407775443190319349424744653499474069865265591094902351837088936891117748289064369264679492897420638418054035248134179421769609703068799046062101371462668774657644316468896548412670994747173530808592612524275924065970024793572646242643907692168249536947284654748207070001580956229808125245896324965463447419624152419670658804639675700314358092453000152435124299086276066149919340682026002683544722451240867529190903666623671930059729424276566022969290001280151712338152000359087096912624247233184523104333339731478024114652319287860436040756067717426410208131870776948909861622373017331882759036630150722288261413545411467093929398551708388059568146282795978795341297916760783561859549803827262757119120994493841045078674355609874057132724485744705645771170001344242362481532290929694923532985734725168178051951988523079924153210091857836344624971221426136528844639565518558652563218282813740039466281260907633213458687730050058285117844972732126938477412977562870635247333415368489779660926689110664593707484455873883634270115212979243575333488596313937851797302178721598087239815826050804921339991425501621898955587916764758437552292616904574615142361213880451145363410563009619638173717958872667114280634600782946975255687940348899590637664604513069091747143903596127689219642759135844090548843945627885729229906076168949549496627475092612037390546418060016717253908746773131219514901909518348761048174418278584453507300486670108736815632933155119950863510256984505023577958356204829939291467966643012375438609564913030023662358120571691493038829789998056431219913687701479800764608583798367568364449558257605325817916849231954601422522278244265686717873980868652977080028617820326225721871423558841346744305954815556618160723049430655162811832933811823008873672708600560588036906271879335863426831653877928435258574808389599243448564461399620321717346116728847621336862884007039772207632113227786055306685776635012611951479829056791085839486880848238718405830681842468971200495397334346891987249912676135311481411071582182259121243596525357313820159343822942357289905181242224531624531351099286040373393190612126003150663020774762813590839619494818313672308447166489345284217009794517304970020101890261485301718538376877440632179804939600648305284662441166385453275969520223164126148050153394767811831426885386825894601720965230451655029155879253772304194722954168637741328090631900937271674615928728197745745418492402248182770202065725061111130052031931910627292155286361722648993471206382997888459651909148721191364167108164434532552918394224015388679728976623445739645856267581004042641670689945240971327141442951278408749413210747873743906979302241823852722665980585431415405700535774909745278671301187612439389967330307271232748942149011190052957645929305835410925546380818576167962988309206773581923804008075306851630470411223658960014395450325787295333366775491292537870852405660500084782896900471409735711573184883541134807571850926657537906144710698379075759580399948271901026167746433211701826480790939467607619874343522833391645668539048112409960291617902398158799611750555089342728330569732624235937040746004770656957792734840091594599951823840064371678952035861755254037121769747167524944734881196369230200950630277305341346077224974874818422463433232697888294015688964186463014467794428702364196250300744117460739134677093238784737414328676025051864892658590015852262288925298803680228286730195265002619714350537207779401609330169782953756567510788637949654368019963321635439540658090338163212211275623520271149138342130181521337646087896342270642786638044992019327308133370352810584254828562260905162513434742557375859349914505542245433751741107421713426701975755258713796920032943781060185360994465175874270290488249020627769061912226628452399380110193730491309486019872024929084535048119345867920097339456501341813114194183960615375679747074566510416672795237744556521617658403184323254141637577711938861373480278367877145618952437441820640294570942594727047173022532345114403481218074814280597395949417501908514525261330413031286625125491076009956636332293255824561005223462073117102503738776486460132212888106544992822397459700152059881047398310495723065167199217476386268930194302034012374885101878491157836342875355386216265822511475164764654570647697997662073208240798179977749787464910219997153202993607346349702868261502641761642225408587492695421018994652093461878239605770745625781235173669156091292138963276263517035713324307392040000211559037656508220593262411388968066119122754779093073827579856771703553006446064443605931760775454446370749274159191727230375544042270547354143587021244756287884702126720851725766982173940620753565201558603731876031897303584382700625681794666146386152178666566946069260824714486345392814854989040088478938620547459476114514315514025997055599523365983463347892623323673078735290745481167696534989242332871566619522060946044113748608658360339544984164212225339251083327697056639400447958717501895920580291581957379625890620092920367059539233981179902092724234895740593663584288319827753037769018426068607320503316827781174267231713454514382868758518569093541804914951247263927386189603732588941907074512165920147966206086173685704879180796990575141579202995095773261220382946598519914397388755763220244760725973596615025455273495792791352073817670471190038195631265802490065435979751291239987331325835993865718328139081186451249568610111119116233271060068133357542151452580464523639948552527339159129360002393425777394574213119125618686582941507744918486705843968590054456555956511119130211106168957962206073368425100513631323144461209391388909338143064135475284344423664921038710484822350586273380932326820145483724793373308151407813382581307653328849746971542604520772279370565855628607847552984836212706282809339214207031054799203522288623181266857567741501022132438573157725171371692578175119981781417414182452555908441750646362245594751137640784117075566851147988236108105190255310899456210642453473626198878625984898994291101063948970836030108223603799590018984025519694867616067509801807114331409463187043006789124613773718056435744774987681094420323810841879952137205776960975081110762122688220434440891906059718606944666634103919309575258386872863607081809677563096485470378364680670768173022860486976713853293536206905872577690538064075749052139453378625530569958915187443905239092384379573655892907812258058785574300005849510367770131385533514220634981615667533648763780359283094097404452976016091682756724979777439351866825481795158907466886620762520822579853501212758012959522710788663680905213819074413573546849639982359043233318179024711949199167695998459234193823870083890831058655604234107591169559415281965721217116337173389934906414811916008350484794041458680070188613166539191461570225994098765408875237774827590315272543046458308793583295970344712569073630012293200061782300841388574928734864137844644503399867019895235445551566370409466506229235950799209952809659687971570016603773290768860035178468601713788617162914120584391283747430638095561048040597192721515567697644135488109322332975330926285273428920255911944431601562664919861441494866890867422539826292714712816921359792711827414952007764191656550995058609673764147407833199852930557415545912036596649471957823306718777411991335149532296603784237041815225610553360265654644827885618504183043689333597538127787881141796381021226884632897683104890736150750101371743656744849750430349913568985979126898587724339065560043045586964296458709921051571981169304471807976392495219000864465397584185660213370313360314795079678191690530138193077852847661990793911566567101844589714892881643595607234890170981616673282736803088777389693357784979387851942081866116826216968639313028158288661278858721778682445686886845067413028037074562433423582834474569044821787068908411444763196749064892969944221330778175112079979304729801042391541865226259639329447257765879340040025133769719246365697473024839587400740579237552827815802095923576238143056293354806625446337952675427896879714674098918583817990017540454065419172430829996678731548529759343526463026502196519386870986314659524249946240368270623474438972276467705336604115561221762629040767025587919108754558888654714359816131158462445260257901574361147194167054725783249559080931831473582662211959689828591249781412223110767738648249565212473472033005242905645689114911226113239852644550518839467644709462734603793728364669098901853019301020838686945205650881697226235903372170385301569244223929749865885979869593668985299869077208384970130957039377557970038730586227599533791923732007465068688012201573268188008361295928182711556486928825424901913897077376267672186531858715672273178978281509415857780576686872019002519490565944554010144876596660249107779360457810449016973447466566910401922541300335037957204397781016861372690081559391482623534333516480596955939460028798903057284787721318792526567019173097562068162857818972655210343807215536548717431127816890256752120550488215060249187083934022587159144901474285602071168046197242353906042752772386330757190165632527370968842789372832509787980971676201884763869941988767935941014743065835829656661383356994654524000917356153467939755932707477390311090896982752510636529501646231052436153721428437725672123904696354127641872907221863484350287944322137712010116795644811781804448667030642264963772876663181283477149613889662283652712330120023132169560961629769898435213690954119930588374920356786689499975315735170760051739676300684324398504117755387957163309981751908996869552562236766243786581687458796247969983637188943095264631736323179426666128481977421490735455806717380078449233941090613619515954563385749682649538550243279168335635980361059380999589498999076694144035752545399137007354060717174494654535393659060972343905187029866571405871038438291550627317767144464620249655352181091119757509845646780638739930064090873656645836114809744440796473483053073390489407076363862210851228101642283850323374131966928661127589707175124472988748538518449127399375415656128416594083456112878171178103588304009669910384424457957368295185394568875495522672570698797146596753370789208783559901452699274320956824144733061836443563111347921198621422100029135649492812672680472443170545096375067744966829356145649068059759758362566072216294066155636832411750717242932474522439513298058142432358016007565703694371107338179614955669751785500093532725322175069293252827186476005426960109547039412338993876596597137444910164065360626865752379615873464511411508679135342098905817474455651565889789739775029889753646428804463026424601542390967711059757109711019792499268851874942447071223733770614968948005162401654806168640132631924432532434110711024101490456715763414233668214948376902251208522920717930774888878185036472628002225973034703795546784743080460490658431556361944526205270993412703506614121275229868123459659097260029198188074724612760491648418838204934122309096316433237608365011124719754215794296590634193488913103749434931605198685207956318677642928106012684991553373575213753051347266268042211266006716587627775647111777035399591517041926638635379761319593231721861927914867366228856101447519048402337900313942502616780927508220147647893938476299886069720099765805678141436582246338374730780834861300980906368543789318055433333356382795553228099727465904982510321617727427668395905266589058293839274403122616151348907329490841054224603906371894279387331261012123984173192929930574650016753945896928094993355615194305910214300613618114005467510645814449305092387139324457863799248041739378152682021593156744242798400789588386290690350884197679110786562460045314515588887090812457591687642571532136403119761497924629516516000859615323412145469042110574146810318165548692941963020795895521368801069487753501586253055522013250112816795916625531745432048094197008558125772501291595974545156072393427193238586487260812277198802027666512875720725749623780112830898809836834923906302629190798504261590643022525510392756955861908408943274534417537180476027856530726669035823661348327358675750857498220543335809815734964302221343548352246884630535411535215315404815834838363026962000224704349588856672336882167322150843272890997588136009241102505756042077261746208023504873755270477869589740101249016064524521357074752838527403413288011272332872161479602992659741485908627962299301435138394375094484562102621603549686061501539789814215056197428119777117575649759096006194404890559772576500991179294672454324598409439426387224588768596206999832677947942831411778868845410296574944463370774742906449387561548431503812813711186030209593119769511418510387620976915453901805186017629012893166546205222582798377969249657495205426403421336085937204437389236635727718738533894289984148819920157955869887888402483982201868332264937710767642808999043616101608073446364845432791622277514379666819227178292853556580018898623129410190168956221924005401687121209750158647119274656024926786381423102817079523520411951270199279564225647499760393217740691288256452190851144019094981440020771231797085471106707459856604400446426774360770041463903502983991333615044705999483049179336845042606060658741356610412891299824608494937594469939571903798929565982399079724579631796520543137672433659424778455610431889570457694008090913315931397748885387516861231540619376975453898904396327729153025025331028174097919630034876747240933419477964223453974112449048303454865795977762924653850947075786645797118577544305344609990916810210393976938794419302379712632811599416592737946965532935977378680394641093602135803207448888694857574002557836758754775635772295093822408140961417827075167810097246934247411813994593247372401420623776466869089513180887291999992929760946846021726762755750181510954953488490296717904544872900543917394376012161235349788295630438697054003109088638606419521971877945231601094981793302608051340799482121819460035336761427369784211416762846611464993012156047131931466354987394701189380558203811146274895355976918952870310263993221199096107237996895832623375575380931947575901529587386319529101905356533747548635008046128284670831455036402591162174857286672907544440968376328266814482599290522992385738460824083125177042377661684327350366342685492831165074164069466432777976131325486852414417707508422593105902327158015405792086363171804130813602994801054908325979060544111831662871603035553756153856580959710414172423487118978690168970226195769837634283778952679870513372512631904734485410230566992489490405483381327643039292732933572708685165622902636771566204889501787572272194516657537748560806543823191469878946808621825231419543816005964368749345202573920169729040059133091877845419264700417830588801019132709703617439222245664346617289840523985345265696932121881371146769298451530066532433287204095378045786970865550272615288453130690722231489954919578328667743586590794637012242233633445962524053313576158904019458419615318138385471587955521104020065865957640773831511654348788158577907251578218245708623312657299231471748166417933427485065922435653382955173180053508011370974916611963398496830409370501807521047650203514918820947435149232124570141505567562290624736157518405036538827647107095997504404560143368071937782423124135493073910501531383229681815969720591977762056392260653108379286477492515358245838264518793706009606848255789883326666651667828823169736078116203441103572044173665217911967623687456801997379879792543588541279001232853411677849617654391598735139837910891383873653226579958192477015429814968039989982913972634773914969049899151256723117712061023310442370787178884425971236196489423171477136206934499744367417112685526485479360484753122690285303891938740573929252101514855836722253208766237685297600846227395632225654762485599748068341392703170059246648721351349844366304919632325674358130468594290969403885547890072185286483166176778665743890348617036129799823593392383342799165318125924297366252105639585097367066735245810898315137312305519094108422805772508138670396827901769311300719243695105016400065337862056132091652237508354254216237494237556015458144550744901812057404201915344999504642281762746706235159778218938915675894386926491130766823396104858708082594609860732491936511421855158655010587471637247021943348144480716096233140254915330806076377111254257649829785750557874231817006209257764767472877258776914419362334945191314544314430325773215074213791579394490649858154382829058838392449438818332126760855810696714068754829496136425973106251930015489971701079448176302171413945344884530792954870674471782093131488455695661886120499258584417990760460314957563313654627131404353944466381418820911733109562334509077525091656174024462073582620031156515493254692098513114234467392332156319300141338039805987411322560987449655598001046186564374122606059664963958292442812893508883201013146050457113870724911324946815283258867682843533196906707396704331141946123445992277670482238357791796914425396222125315450443402850719489459177767827947111627022810242352028590764931218085251065220032143649193894028188783466264722860176465905515201215457953399559303087869753750925165788091220210062989681246797557433873633367172275856354726688172256551227809428339491034586988770358886384881485434238537740788958436182557721664431714621975974184199753333152116330185234863730392508858673469714050154564593952823252645737319114080579072149901320889380426764260053681982472728937691366729719355574891218751205977909752038611374472744403560011354562028598460108231265761373600078675515925302643765707102038902259226311971892147620531317822528523933379831430354904435639933240950780816702931126428678788240323453866848276827201630270305844280503522763583824715557886345732826267661615678097797234439772049750559520016458650076972957123676694181042430430217717295212978268930026037370402301461952009164289049855506455169841057299056733249534443632893432299237699285809678593271432407663003542915930230040540145008554411148773793448028443217344568379329832189139194936174851283400730480955091667183647005664817969911616571687728636117260897176144366714652155480575156890583389143572645428164950388522235327424231569412037593074758916768412306601369028605932493192525325574166264374201993497086176560616137411446657789037855940165260442347586924198796490750630827752094463319988427390860727835300232335654340546033629871671335055121043968653242589471093251096094197185708693948411784867088013573985508064503938568282469321218043005004385219984247314492778344448809015322801734162475504448759916063457042499685610841767704821269116260635315926612297505369738603177803399502448677827662501000865142234847503837879494032571084257988658549743566132846338079838142154875469520382595838508923961380750626238387510552034499117113486905927260732100012602140182507202659025248737432227942330893512471164454047944358077437070361882629203419531677785061318891466455929018145080863531092255347471809430676774359465245644037692099046692809200434789790973960711270556182298154894725213853489478001922543770034178955353194208503477454133520095311146689290424791184498353889879438421381218901742347836690808081648529981299032565159764969011592493455433251934290228124220141776445097836357866373588790826797825600001767230254503105024711985726295421856126985780029842604215347797917383824800860062758593243860888101697226528661924153041588658739185807297163447555788235649380383921431912488607215235603855278212929308491867218669991436068190310971550136965879325955948571201917213820132045780157435762909657655233412361455822372312159247738220948579014347758207702200987526857116834393639492704401101061179760011424748942745406360851028843405577813995063788909161926013228582605820335282331301846948987396079514910945549023029574712908713741578803078949383413657934057700369791535550089533740746643448121231106988019974342534672677318336595878197553629123151120350762165700832815371496531799897077594228730483753196526846101962859609121585516078436364008146786733455202679005964333091128495311431173201785345044248155306656353222051420512406256585130736530777060855280140409176596919244739492580131495028768796892444217694946386040407558338092926283571219109623571905641496582288510114453530149007689822441000915185383066931136623842181307739438793723568232964657738733213136260479021237233813028007674410735734034578425668319878375664159066749381763145623194542566649299421927730800356109103236282654377226703196726101224041532391275751776872478939217533308953357989832089064013122026215854740835152520291093648323088538168742871064025918114646297217238638587509525729426343089149408916468331670071285725635260482831826929796475511911413018285377186202421524182653615075887452582698889931373962862735979458582367335792187293653416401680820917136421254790988740175742148069391484348515720971539962830175408261266783963371412280209051176328712019037511915711083639033706945524386433475789873725416382173551866829886501529006592015391026367239775508592287082564336430637584892316447277658642816994859410170693071396717754894642408610400423829470430316533734772231857481825023901876238147652956796115123551878568635481067345798306827568771505867704749149872548015929487538730043615170298618073454535328021232599703810936917057644260582609802756398694856559328913218652740532739593345239321535192314852387421010688580078301474803374950158201494768746756247338525828092737401711946035266984496344705470494294182768116178364205443368941457074593149064767556548504007147032436099829673141437966241860218294495406814231000155108134281828582155291040470236853423883283831441987879879802958519125036008282605437684123027822078135907550962713493358883666244907657741636151546541809437752698569948929464740565447387694142342818410926388216251895360286652252164677778116009438831325723255473511516996968272522584914782770980650840046282578662051708046980797071707907016021041464500142168502512141619692788925727660025854105671201505241597314219847453051800029663982863579200034955763246978783314235305145483926723254776449521406353622514225936237171860115165243095687867145690150121101714158383275541608985047238810316126248493867642544633925220161189855517800508067391270548689392787647874923266060267014646777320984164951547375419335493094546065940870458289092852180218150149388581749638117801779150309825178131576480763859991958764371215115414581695715814028283763988454185235902462044986375629567822715663959615168315145933208143506364539615562120780948825557609857990389855842484943070074257179308078483828204532530304145205935270908133395056287330507474303558827125867283849472170100068996205725632901951377382197132236623631141928051234253523331307533435970328771764139407017182859278716902817870490916065204406219280983336612170526375825478991674682937990958553582382346105983545220878995611343424448963507629790958433668709213671163869890480543385331200553719482876460583595956138559364873154492803057744983699715493608718737263062214151170418849141491376156819039774882263456787764668148095004868902638716557550873142871879664931166407876005482763272015748463480038468448986060646578471801907615743998560046367404589842476101553988373127142173301161634639265056395245187999741483479796543112644427610984702046616767649637973909934350548193374385300941479154000522940400624614029995750211233131347943639840071618616026328125228582342501971907988953510862107492531821633887643973828314387275432167980277170421048784154117459430043912176335940175294521434633562620431166118475935856064702770317900804021036919379594447371844245355461248820513551716402492916850889020825444166582037034995278511301128511693213727057686431522219212869707326775800837701417084749011623574411446206347323968520246512553745339031165001405274107330754518132155371820390417270793897612307485749799996177192664663308074139873344834670992187095209252212024203774423212438068932962289413928155084753525462369596478067612747494018511851130840772909439080641198292919495873666070778717808307671607423041425216250177188363872183396357439490057376806630488921194754035715979358795720241957812210133726957630503652339292305507615354022197448359326065000396698726019572573165386727233740403057297645317257287008484567230129552509365194906341680615096018531826498033627404886763355719475376301451636782600007454992349890561690028417972661403611453319881479265605338280018055568331284306821073673043979247942199318766943749504743609589093733298398879260220970404274373881968045358627514257445542586587808203407675918284154088519553778825085511481727143412655489784019023429126073921215530683430563525764170946209486673438131751280862773731186280002968739425386109013639256997966701170154221006828395576773208035778217039609638692092888108379824083057983494990775592526320569579856192770975482509825385129446203442040004171493154853396706509085730701184647913375615677861474170939309710037848485799921560697559814481456347322588122015919041619683533240789672347059602868337805512718494749216390994796290301095599829282638310475147441399655673079088361015299394668975655263449842749330219386800920849798949787037700711111388413779517544681695092870377374032325473962075593668717947386130320012395015658204759163724042243166227944361695894493439212267999734946778274679378359375022763577490402823929088186184201524884890654637741209774314239286794910876404281122887352721429625868468792515473251286100608245878329096707725562637893736311673853582928978822255897778360875842366336176796325996395151351591734645654133347473944847916942688754320043772500702540925184776572663468230819879340710549979977705732029167566469321149254841349807997541383530693610567126491932939418030336272162678080247899378960232160505114368747703447850466823800943579214726389622124860641868309973446038238692947762305875938173503603632901602498196446710490914003435371768687851043010313095403375303165143689712188574854312937885185592466368640330968093044083930714974553033226039175136313410674819351129619336088541712830144006145706191719801861680888911288004107826331537639532908172577930076817211609131075358148793188688049108586243637388698069631076895248193729133531389008151842145483079671278444162483236114914683285763945135812987978796688201756653234444338567510663119092896515730671502958017285428619407272842991021505880016812405853171262202915092899433132568882060867101833487525495259785977751955519091563392750018633372403509089802142578912981956709383133087093627268640603072794560561993701839252695747807169007669947462916811969479962115327501524905049209812615704600208224791620363131151771957489465621962039981449231693092571863845449269331178651604113348213933232983804509079079744976495341718483166525288712550627894972232802656910564592644833351362588619852760381468045784146133894333472971342268702179063670420104643935817215109617687156606975898286801788423806757935773785549990107270296039839904454280978104294870573376446255020394079606978059603820738248839322952211777304701249013335183924060949805242206050584892176186976624644049069529498921073831539951568963378043200017954665284007139611001842225731052308046438977321694913208213506376715530430366856284581925253274139013610620887016674409050408923388071954891528520698923596605427963338367879153964094387573234745055530078940067305096002949400757830905665437159681382123860743919648833097073746898531937736433389489206479180297926032844157125148962835972423169195218054745556980633388231290386532042162889430536302209070965392593707761793052083688086917970570313076164652486598722198789374298502581873226358792690478470879834125647167392882206457964525016823342195426002782338969081765530033180023501337000095820564129163039202434306852192990944446083709782556259523879373955009004788679931976961994938415242908088309883387328974915142793803642263995828829299720120632633319888348555657479622705571657645852884892740494688172805277967674541240454737908940665406032795161785589568549840547241422223105376678909068756205061690108213897431494326916739012120145543424775728506903476390228938074457529685008197415563080874276942538294288010519069676565426885675202908680523778199694935578999441658332788066312250185563788587836464311822718410682025743989363417909458498508794591036905915100069738863584927051229181802701129676415011520841392231437506199018894710347462580481143511519573207403376100658557449813857916640620238731774121972328401437493534403989974097427357884545909081403865328976675363265987058534164315299597203615155917002799880196526666560913088711257275393148269320639090421519013730830363901855537498801100324905604588466106919054193150726385844943201096806839310914636724764175104683096746783608314057024201873171590128052370454777872572037708053263379464682405595687099652006329487915249613775029935408470018156722370698120252127531621312351120603507097321920331857802516978933993294293104301420371536088561212474864620702038053218835969185326817494513064550769699173562654894084156433377431922837953585761756805733728857092918084721830435111924722742433113499245014833875224467666837478850051825324622356747559370691252879047225526870232226892136982673659588215956671070203668968533336536072635393153246900225475049690087317962890641001436164242449626866647078961048804032319784904190544799324949890490446471342911742565493171829167392437931340703265969552047997061315231444363259041885575760351109209685476040182711130583435136456552152995498023213845287479097167295111226550230199085142273794575005819707236619110763692244243458174086033891918640876326743751157680987196105389650252919717788147770967913057690181152607051060519103409076661591515405727351114982264723634944703555374407837243358691650989920686707078561857965731095077634540013974245948503251578751467705810888937185312328128381808561830783288235875446467316930887565640910673770703850636703123228833514335747455358650375978976413488240758380807137213347110601961252514230240127842316324491971562034760012783868250611268445325125426342298137578217223448347245677793788462675388262758485367846865300441093116968906485478979555070197241448472961281078536810152274264572350848767169680896974522395023349042401074494247764366340454401764590603982375658049557275669857956253098738484587252780044225359368408671488709455787012057265452967713185041654714768419424938843553341987842216671370818737897628624382860577019628594697175386950062971866131531032896320462115852232268879857721827263904332276886030032043831062354809746883842269147568827103925847099134376862154334418960399472930571091689560418165821657297291000970505948274964951979048207123748227806763668111142493880962735710748113673242766400334718833116772509752739647172594450525314419503030555947378777586619887425140415145282623213229379051182406225865690728943761173490067513098473281389809067117003952317077959184732154595074753266801488310267103468284026133929912263682293547631726236340893866549708072701857019632122284038715863966438371093195572915227797200262085390191446344247841001717549190813565819968602344338633266464158781553876304269161688444541701913131346770524104669438890369817757368028386122487842547150223830167846924965838382821101619784983178300495996779931919524427331387217612275850491109016888605259522289797204916913626374032846881969242985039059317486708506894692261295531268951532314597713578121986065915335901767524303884396195162239271326798406022898084165369032056081583419897974659127332225377843550792162907784555035697031036203967396972720197459596644845721601060213620308259473424778106200900291898022164512728050507298983108925375928530282333950129544437842782015223952838994325559494852916542621898565772615219171174667997921335952232607438830450861910717636284150545557342376778831694237620385625179229364878468585440838051610616071106678135443614288208809955524931806318571390186272308091761056792176692584870456440200599249699566962722243643329900383444768702709365645123091743185498216268977489619690074079233254254259059488203677206648963509028405151847769598188408779470476113296793647803818607834882679196701812116142785193025255704916357650244385294306510462355754956778739588542242842575795511703590644310805024290835859371324269770840553945779322455099591375752139484998723951361610052960400963275640284324616652332298323189863489882299048087312343073630550819941541219425983512248467607352435078819644119224390678153290232206400709837168412588108754352114422478868950570369896167789865964714647223596557833503648984090019401226065814890189075796985636631799653171613767500022835886977522309391747184706621441050488137622941880564020052908657192345281488684156946848081936481631673304018385039147102164164805214625171612362142378280467752451254049591396530817224758370045224924912100609958322075823022328321616811924380613874563331885996328209782777490108741743618982673671085836913775236320288284990323408269676543580400075996764780916932964178701241440232164697179053301362312938278945096326321283758120085425403564470829881213890897491986182632604150995024551554682267549856267965763652054645256994209071303811143384521932812392252625873500385604539478737948033434007193787807165996490877857266282873726501118629944423479518523783816561534477945565642182723892287319614570990174878466067845813161978609290704307134156704490863362196069175605062868595401305878811374182592197816222984745936282048914895555641541540125975588918787190568932446662358901080569327784907306028000602089297476112263977114529650896420973291824566137891408175353009540222121127029340073617574201409061291241538842253482490331613734051089691254222879648909725337438334416010002051265317655302190471954603397690866843794962764635178174730462539981064761723581884721315349715015019159560562339908403759577754375572738299787960995606871498450035240305447379451023394724734585310637258075495636749024499182624514826697277353913485139224497782025379607184240739094217373399924436565701587542341235052476406829361294680465968268765533165850000724199523353999412732073769697051518681970935039184351391397437789428879286727342533682570044743157334744526901399500505721031333138296501475051107813252322166694940364945355168396322904228886544163259202362401451118707615663564711997413112070845395993321734627522556279408017860786955493589759550581573936328014031612338190900315372022443636181024088856873738782672098064484843253057024246923408105914726096027850959976312791391578031891940324399237025048632322656380890680738998007137947194886855350161183707911514612327850952230917044120814770245209996563419152324025731596302502384156327129934902867801778702215253201668869176367117310681619041128286830747424150314018079953733639711407672436886695162006551190359428564582369981219486276772396178284437863286557531975047622878046129505497526723889993862022754141162107960031910234972635750818099523552592596052529286324056978918042754481907419220182401633545871379618851158173801973740273155654641167953946271626789880166333852976269085198251790233768533954229244686701131344006029660009344815724977771671604313476894057643006453934019844468954466882843272681389331931131800511359312308952742307611212149130666026477467288476526685834485497606163051872280951491849689989793678145866084208819571139971733007548629771569781248805951573892620771762351599281413070374175522231261333354884430123568343141588683365386752915054928249893607781224888889678172082301791559858148853343189487276973422329069323451753934788315554167371909671908343744308280855956377998438275942512082259970661755894365882226104362253814710583249066778958898044496295607196156129134593904475755874179099348964141239091029931292461635494289170276712536535237618484395940377471070827379377839837550932051976774099140645968977865729162059438016078491391367988818270449018963799468329074847002788820356641197331749961929886870129287171249094713951379427904590798784904365943630035080203521784381630613431320444338962747838997290634445233439751711210740876660966872673511250279131773051356338847435102219084471879600365912326408371213427263612252427495612624897045124608490448807563922395636940458577058684259370594018475319935701817079050849839313512304426877314481997144790994793026832489717726132632540445848078343267049543947923451343910457411152770570607288353852822032956374391824139485769238642741474486066141505507561183047514640883850875322948307765998927386703578129921455912803381532514679440123413791941365200174827668053901874938163294153350194462918144138509955983868771897323277766645842148971376907161533048518392210364885958880910912175126538007414480725564529811454582229061689064827254823370983200620787542959547374079907352095211083345495355254011539958389291232353490619547122981671132169101969950568487702873426925233792535425402326009184122326607726752891192044961769054111776564729594400051730674980598106907008463555625142353288408235094673614054146112884828372679546418988539714238135248409902366224667682291600725926147527989508765744622462276307655348257508032271165262920356023683356127912495103400580373502910443167566928720893209543718059170632351402004648374643933879923505530139196363672872640272705672388642485226975100968403287765181304413116504940827210088664905307934565501789187157221412804176789889583919974827634904527111113983642874008594891460537180942413418568527707405909275964559289686797838409428544024742837555336090890978188073938433455513141886266346394103945589577198800717854765052432220023136537934966997962619034838958915718243062610359911480765364749329440726703242091666984890771255052116914984410352015151841990233546960868738064405937676356382513713307612052715970953085632660464416935214891169794228359962069132713993732337163449708400134429252168708140256172363126989845404448237217741018725543566851438543741075649089016978546518913522363707679866920148936718453913040917817380663855009760388412583867585461468647406382061143544248499764308356101915988841220567512955315752213635401850204383950456421529960821798111388950564823842843277020160278488917068284555133526406018814108648801626927334068232465231159588219492918792464979882941163788072767408672117430559608587704811573240879820838128045088110790310165742994797060453372972854405336424218427903680547470944671029380554866324876963148719303760624955964185690077574929385296830245448145924577228935650363373436342200511314547964301136246492964619379647228246417900270227764569397500874561621192123638679563288868116689427987181216672341694161818559406430447667933741083953233026059629924374082569357290224802067827210751934894447683847606002187527755035534140173386313343885512349703787013982245843915908675709517028197387858984177179144632264622460645397588312559546835139719412905044909871489291565228219007431639833973167073483815718374542007243536504843566520050411388604643150255692986838481771345782966452045237925622435430351469467114512923532933055356163637063481792168614196603846228571714794212917631009257479854906203749656044435130852784993018871404735469852186043814811023220027585142670316000024338537019788242360543765618154340586399544445396450716700471189713933969941846152498559722235147614644470829897250133158971312991085489978842198804992781116923082198629951135708863746256723449202745062145910024886080771873356505875282672855412498861879023790258595417491456871803704479085673448581307759898629984094401940482944960004441358777746621989605106767623609625165756622456874981534447438894882449990151777552867294178626138406344001594997326359537326770016293943553212961603871592649991088896079702744558148167194340656556619106112785261797373460263500863943458607509475753205268929217663833129050621356253043259855817423167338711065844571921151230155534922161102569820227260022301482880069283353856967847127504834983591536305129227664368847458300685375015386981639875802366392506497081006078550592030758886499830244418140721755370861826934991383791802581830772648927734716818692862486285886772278589232295241772463005402072729617803704582931235590686307689469736503139895007807910505145777560257888238478058408011444522595650015873148973641893160559296744931327459836297650422267684043939467457308906702848074478118437529337616298681423631681802936113104197932209161519727541958780946721882156192198305249510757466255251099740745424597869689295366199399928229873408898222489168471044916145127783457847326641157178404674649421385012129049763505638707478215266677823065775724399178806305021130231875932684046746373033583903554483522974754302236641466275832469837119866541493790195857874248128554004794631485277828254237911170216121183197908304403919720986018205910348451562182513424926995409121787024574244708983495689201975597589107290243147938209530342092790802567001032397669094385140741045792147789009642445983519808454766089185277832836341465953622586964339233572866663400150325923701055877769178851746737149238448760049633107883437721793371297452383554364171976353968503356087478571308052897233529017274098806944068850406281442641332294684016123762538892794881499725463728466799924260389950613514124471912863450356726947767736585383985360863303817346346781228556400375710411430630347676456732445527794449686837239237982445563809734014091167506157454453558927017199449600255591375139059336142142801481792999379519868048418680123054770668981048283019240563969547951930129598445012749527520472588874918767133863427423188534399034580329074679871123744942635100156671905953326647081464685465092909277314917888370906815041004863865400703691272083616500064053556437959670162511771960594403613643353825015749768770267262626579584067531145769175046875929075439855698340297434720141967409176151655053643381418308459309854606259818639987860095864361650615662090453133831970967160988885499341587972789855623538059505873190188266846034712486184683271672460317983198593508281622244683231823511036832740163099650933009670041295009422415879261885588238381501160489238731533516700384411039017474673643644011458269858342990766636061559076331131136488768493368101385724186000001292016980301897081535157619508703976673951988166085443076540183298625499700748821106156945348687168285532345070403948937080702180116029825472060102640529011639761036182015179357278154052838743164825472978813995480046627412193714511552023263587794520710606446495797650618110992841395783634477008645647169607853033496410301565402912926029888671558065665287859498396810180313181875979710504365583809549280370224020935922972899347434674750927999497498221866661416443062002716126554278714011353200779393129469117437933027941635299353748273436458724001552873432811329723335654600155301490705416657679812878428043404150115630373685459682480272669260002573539991474077837589214687676046290538473268898589875074954289350409408180154525593285684198936016493243730051897140741481710414168737543059854847570740781724580791746053294751223811079184551191964923173346098343664103582928396065520854728107745899959592624777193740763736734111835801718766855576499207708724883624483858510802250915506738219905244923832928033554622294436260428518407960647266259738935869499905938509210224798799797322732294329172623149984686828811260892508259608924670965493576430549954894700266736090647990490552301185694654260600634298436489254877036586747622188392674442206918103228686344591772614388142983224164176205494969879117518630257424357396750960289719155441020179219237093409952550682398998176878157963321073543295140290052167443750239125412926807301074218836187193583471358247413069777406585675946012194524357996664348420382082442355938276038978058814828981592467455759055896557882161436860895391324053436528370204554389396422764107226628664171343032993066058047101616080436832450293559971184163820820821074108685487510206528154253761441095851986279094990184552602573756854322525741258341728434222539023353061770974708329032263506230194450529197434319989424437948868211716106784767768252772187230889410154789433527711226541204295085793252426596819674120083016119841402118045811236698213365663740149270559366491959849000225847681217180648813432156702390019801620417575057894118428720093613560007509777294394529182759879515759229589047971643455281521991019328525078139231923870910917990551120855609725402624823508106295307622793787214279895061105813377086691732387658886486454931701019169838825468918739487523682378877473167942193351679202797607958704087641743371713526643438184026889922674484101394892297076157586342059416381023785746160268820846210717085571401672222551152508240900251128578943480536129893001900404700270874461175123533981009386617110364629722417178455663927640678605222183049089504490072740834518041813422790668949528658629184841088888038203322444631691358584722851471448234628576013124824192267577095404992489046259279695610026603703597884804744527157778145898646684713975730778632568763243653129192728494179042930016267415542760889798331241548839009487745370144438307916079564592112342160545211916783735045455460024311836552289745431741725712810841993353454216714077031469664003323529799127330862110462951356242450539485300833466953769315078016405259904530044348927373332722118989431641453965359872594611949045208971503796696826233757221414046494038824646196038228121855528169821790167814871641481078800590045465446312698457856802166910424566368280815109380166171684461700656353778562553999872791776684543088778200076564420119810119804016469926661668547444038770868771668281401256456184881360487200171580052263729526246103546690898523698818483039759120678257279775690099095600184955805245816656838553740614664110910580420726563021780135377924269707813448020145893460976628216172460534295356306548154727330557108341127115156867448754463536793131502358391365484087012734273941510999113117175425151497699768562100461271078102946832120736041483825616039448497824560391965641636987815017309338597974947685488225955672601349083890100665627868967552653093732430922744450736924943082798914697778081428367745724709381484570092363013542837808812886595253727279467899312283159703913992163324408597117758600009349344945098307732418436854927556732171711593726833088412581695910948967602382613588996864789825854057494616017796805416908817356507713166554397920246979742161461355639020888648465750991659620145938756091774757753489632119292804084637226556092615510109679114188570653648699183496775015123542924896720979358407827936861345132328395924042049704180029574456020054794251129489388437227278731190478462968190133521564605676069296223089235814062115232622105352708063976214511059437590236347597934721958082119713210047215714118807247795028961845186274775474419731374145074707531354155898753327459601247256206962384437980043668517495318996078366695572057930462970743384063780871647909570744032001092440298022984290594621185863468155030984603783321377049607055026556934187630533391058346509951724968050105616240199641501288750586491085018245401973209936273021987717934922218896495332205903227303539207723369009175158458666697853827752380887282621998141733934740437085542372673524992555717446599836301822939619952524674021096664261630719027248161197668657988776413131985135333147518716150348288836447337906483965880523975664037170410202233606598001825932210909279745500843247905050297662298423529688904650045961078623254403170251012427006290537281907466945828140107855479452288639118104268979883374126857944139277994433841836715057376582464160268597196649530322201108475102617812768775867565899302261207151755955531886469161167469894973049517003521680407005354979394442348660257326705889660637264819174884972316186903249575926781502764719555443289300445044862286431976481943860384430589104737586903246342248633903868294017832066256451235675421200326980437723964874624661279862704289138802491631777660149440381877486805233099973450372869517094209696410204513736996268930469965624547040222348997128613226301951165832395807350961338339049633998820252804420746453263161258808618493208895887078237196797545142218260103852892077310491767349620691071961980272931378663092209899676896192795829671598034679724888952643806653749224229904120789838285049780559832968701659586005404155747851553643157447006243441378188476671092153937030386011584591723994522776201063318576252972276024707559851900956694686206967854663264925703231896596479131202107994938356204451031721585083880330376832310766772931967199654918929624162590412082793725316167191732337830026952150050618682130507648130260239033371558481077377802474033437976957371696716049830206939891584074783416660550146816586387257720974288041971226125577090426609421447202090187701025622767909368403264236217215648578862175384602003538707288928424108789628265387278065391213840012558099460569657940051873073351412622047013314321682353298696207258633617167955039199948367659218814973443732234440610898125989872736209353218540182679757673021365661822875342953798695675671256392553357763687634363397305128237040036462965723769361739203388209483687722890760658670582781248157700553687065928288651608421636898501394317178842729295623008032217076703035235453470316801080269710510101562736607748384110894223793786205677250762429445617124329109663170574857449718569038326189577506431681912619326493520301986731831304737220175177395930731401864402628830506717937425535269945013732552677241831566531149901476045747824589839956515316808582656333415569127260224944846690566398032930144741155886931470304871280878132229689066924073392365212008576928070343882777927378351487034313149617578984591492569231157654765067358460294919615899595384492596689992540105432636795915792912789376523663074179204808933049508628872661224803671874159259217321044711331015194574870056653161646135794004947669158008452248445890934576768939994800969005376378057657335373597380916471342731336765502783827305997834229016698127798684719981820828241353959192885630685738538940453697422957640775489875888895294575110549499239877220274378205329541561356856222718781413824099157563840196187758738019973220058211424130567535722968543733523834648488291839716984066478419663885557697895871228985698824658079549008264205947197225380759428676068843767594644402103485840704372297034690317024154889689657042937190553427575999123783798674872085106612088998905447147567391473736189136206023820630107000560999909292042692085153284132128269085404003849132943867199691596083656599225928327961270213552616640142677025871092757569642527402019668590576764005420257774916099470594927600910665528951697814625916964654996901868240837043867506058574592261966869060909767003308297666345879773968091900675633947226469210858365613640643082653387414329446100866955963282885689589624647019812699331819720415341879567413510885380924216145707734706807706216129368467301666346651694317742997786511936248302728362259362328958869072289718438086977991047681753074075556061011989851210290635134395008495083005292602356266356325126139374804699601728784247981299201820418641170961789419686763536755123076765067125240123314741278826978641972255875126715980007224944415079091382903205349174775995255116034919077360535327909911285801135612606116186960139116225330447547735404425415051558037140000898638401218426164074646074940936618771994973285873477670823439553343465549522169104007946127361440146004915918416832887647557341777484871671810608871895873904256657067577838657661857382961470119686351337420996379850155232922718956493937573596528811487958252327859309588087183392931199328711203109952850471162540436007517547422883127776699908297887588887262096197650504973411259341024193330630974417725094293449956196253500611600415750236992645101814866131288296405980981957145116895517553087641318689905762312583125644773987072030708464228790767603890747201262340365755328696429129134413299871114768591944196762955950022653103928640417949666006193631026052242649809651368536163354392467202676810942767052774410759813540717354600679580999145576421774450199378406719330433736907195189080872469002445833830715328588531547265076245848648885442390776127731251274336777792889937789391889850093437812926863902741858703340194354739060212645280822822592494936517072594179023058201260103841472883539812105947975583624152375822614643038449328445919390837943530057594316311264881874680430105342728516381385152985401860176411537551885775866028918050751289377125590388226413478045373228577412552027297635260775325355226235315435026805284680535725029069618882908792311094888809917444768690488765670520491910480246352950722233776700956683349243609234880522056359287407443534637494652959259346720088763438704399466585809817853713830293993700171498349894241245161567790868660192157008804995873297977220364911796996114530707813355555565176839990995187792567114131596118652635820271268576154660391624609006800784592036165965505772563290676556040616707046161290459710231195697080285610381429241188372933278217704677312023517036436660504617219886022795610799856330046252852551890683652225798017676720116037115005381992708298861603735738843856071738180618293800089877377348286838411032493988233825937808849587584996193144954562934482660825711253855134920682968294416336229947299350165039345039579925343426039095150345847058863936531370250842068338119888584175799049934825677536860879211290558401529058292286989226729266972700711251337931075958083886198908116503092059708173508337958772790878988270606463959281645745596124161541559928187151087167465791892314008930869400607185156509320793508667338376226319595244222384395357038455112546039124861822411636749706722204410790437376451693387617544030196883710743210192416809790976623152022296436962209646123003274446190476974724945144309215369388090887521076569863798365131190301674870185048735493068411711505887452965039237339110889118115838096140518384696255505632763216381652016414743897532298650136613362527054231855763999627499533395303408837450079904643432083551554310892390038928271488417514431333960449223979538128338795304538671887869848857206017174741941822594126045028599618881549492893880190039632765463106915615314229570639656099807023790446777345661495953669162807518615499576955962840316597369200517311283124603207883772990777417444095196539737444723623635654891417262775899160098371889710183010527252252426625119873593390032664945753388429901801195956562947911145416032702959811772191269912294717729369435097620846180255382719526256131981271647805546076298187206256103701495565213559293788047993650724915679241078174835890688481075950699511164992887395015709892885109973561817499775785350568882357946167387354275702961894501995328610260531614855825873697867784568675759510770148954523320189375885228326851958805522980687277225619812936419572132690055712372152772475219511501990710917510706401516254833031699333442122359984424368820811830921708590996159910371277137538748206840007262150688586639632618797652468040357581304196422963704753781485127079226484612578840538237892460885941468175430983085806891883676928042314562486812605779957798221942374658970371114611046436247291278630130706496744600031939080823840855611543877527693524221964770897648688472284741224394801392250249315612784403163138346016979233340890911630178046202173145104279380861530388691820743017391044173703647733431286473287537920319971664298651254103660974568277306692260492966368608484918380391240643126445982772210048830777478739888340057687916194755256536768469575230875550427599745227024806476409122801748848733239801918447447481288373335629533213862863813823325830053783684307479934401003495986107470581620384703057844618909315590680701625510784560312229168029166247390225564453540172756108254108735395499209808665758120096010534039165174919684385664363419981391181923669201977747753321383543923378647933548583467602008109623236135138086655582886530432777874494046098464607946256261823940107364711982149890211503462916955983598051262114528010817235576015591814970899632104975774671007249566508297737162710690995794051774393717846834819064576804391202385904261583621369381384816436121405365479481512706924291693974211360107801606139998332740287660921056116718467446071615727620040665733444181844484662643048455822561314128267505310309329863236982539541225548857470537493347566458028596022070141985184206924939577405839614237478206473234480642507755344951289232644521323390132313636597483866566689714521807856488021976373476838771122091552445480777871128150081060851784856082778960428639584365041165257781667818578612706413197626644918279183553229397061166197260290419897704301227319014890162206558418233843300575873962232689427849981476107617087322265509030889618875171550376373557039005571849504487572020878742867102747325147329317284121653261596574786880598348777832218609092265752384607576567782651494617119819246355056852500896431381266865193891325540929269409255787523241896623198813619853767013125724914273453397098538514535571863927410946726086940373071105101810251335355302777521324540253040631951547777578733606110598186841647665827738523554665441178220269166255165170317801389390885323852641350605649559835215762372302326481380757775529295982356875739597267488515572817631518945241849959761646239981194500396813213751885837838447958744896967925232473594559115436598098114925480120310627334462837141251559342739512876007296934789823373643665493134421260097138080864793079695114985167322172377819225485486849826738710056210416651595141244899597551516099870961718578894705016216538878263488104601381434996141388300201673556751264408550615512994951869599016356998156572661769012176586859087049314635860961775219025200426058710443556944335072854179430920184394578486807797962554023255905770138681056958775855131287830424154704951688350925481176113170675642648131052358162105239146809163048592988021178710382409003295716495337864450466758195837559407779350932856518375411044957423409136138746211000771546894895358555595779568497823181211669030795112082052292318428110563815284908688819031502438175849718414333623170729007808001849432353541670584875827917975794515911740340339527587844033962832677258646474191655585802168264595382534936061703940920383179929432880424691428222254167972006560277449107761077388464113138136257708877801930135724840057129699707408592067618176669235633452585277083730886504074769756664390929539766215874050207134096505822325683253418179064669487833637240657510420177089888287994791609958368242851157604452136157551155310734959223540636202575747198229203086610848407332071575006784946784486671231896796362771623495769792780916313338362963689407973344014895279834793201169705093822230433666151109070475491781345817355956560492255579709482720343139331953946966584025224519554218984555314359856265447363402589136150375001978840026748720316506073607549974311765429922158762268891519837562090061327451220936193866032838685656134894376051141380104290795564855567282530514730061429602305015256730139721061974787776914670718186167564101948556128133503910259550324078097665658731695213085711549718633771166303364733755601449405471869077803434856915934275037558774658830706699445264377688534171502189582736965956094912308616364666353602400751688040036653265276446581265474059599406692348925831016425688626347173728850026711168955189567442752404697387445083082701488709765704999131064314241262168900047536962087195272609988551457694810245546822799592910957881575738380446827755866516181980360812404769958079551886565577278387889060511014334724313784833257184666849507375214855503729062536372705516436030501723371465774118487397801258400891197480371966193712217886640839120365092731108892553854982219342117504044537467373227113726065185746535629724021499919726474274880112272980266659714808358059155992423921289770890075932342580303136992369008136911247346322144750693306046892009480658325842495406622881423535371083514892068072259741976346436919835487479237965029022114792065337340871644123251595467372213032515183197507665426214746641937044493559367113373522309403604067987140809463803093480305175769076515909868190959457639269282278418092174568836767086035008636784079909318488502962346343180306266777996244411729152457154451677266491623661917940162402837549818099905883209844609271061485271791162939375781318271490959649446760775467750336040794461726029632707932831921688136729898145100338021499006618629646239007637437727538026304383497234185452030825361703466461017075359248667930108561587002490581553223022932319513624302027553024731726622001348946260305106924444624060373013450765208561320710688120902711132193072137328159537373599767161851066554861462754659562488094611359075086534117035863397958812561838218805245561182976848020840252257098029708043748199860229188490249777704210810601766128161297031258884479885739959578476078890635019125620375206299804552047913295191911755551343127068546040071923027547269753173851066107445834247008067807509138587988570383832927151991019460768765429806183401588141171654059218789007018729813746356798524434682329061104756198115309540838137126758993838280548217856356405077231687861841883630212709714775645313695959801364510790922691371434003525597429054425384886652015411326481988065543191663738513226548966626718387317594876341771312825906400629595575094716841566531616219756936574869684364443469656096075241669954474330219994548081903491089037523687574261373726764598701097919767595296365360363838337907687772763621049163873742449532988156850500274044982702382966504400911628826823160261823332684611350538078518376262081394930089104423351756752529126711818860935258932109129105908235894213993867040030770233346147463481040412331992586428911836424233080777978426693927993896682119090452262489257697745003447313244677021400351088675133499284054319389726280865602629171404078542521922256908999293147218480605630006974517045011845768123172175657339038160469803281705652079491840536163896406526679743792798093767842595738533177954320502171294001437381072184484223963434966993490577646932774766588189152176957308092934304170150530373942263190202269842406542134255820552804842738363650892184400941041648237029080622600040808126292474437027626612857471756737556595938195020611350479037288450878231176118604945675597523773855703361890495116264491473775840661557003713650403056431815229815596138561390159270403269462409074150404393535938846950307734177847748871810443991535945032387829595404807363185405829007437284227450399991224309330380932806596418776597363550125604170472094324118121983355337589632794280678617717252488000309567857330379971475563384595046845641749294548989494058070990801203378655418640869882301954277536823551166323633238068324033150764558584370496030359597235810103354425185173920414147779854038732560377749522671872156076224321242786875885028150565433229672022239637737473524459570613235088043793748281601047763171767984243810981113847090762858444614132568931233029605667718913303839970014835144639143701927137960539231497612467846481060919903356127847118960423515103752571555152174504374590999402048223885767639138020103119667337360188788094004954049059582041813330565512591675756022747251037323986744520532151770279906983779311086544574995347457657405706009752865071525539067925520041095403588156394109589450296841477363966851847253587891761698319815799701090774075262462287143253402777750453857762058595729932942534843453014940914804209236275950626724977292760429708352075311175701525255621558267851051040815217059912168248492802709834381521003394749054393879793768182843683904105391832609389264486389499089191316268293323570838169740126832855404538636100820256361151120023723118079407757981869687348984564951976307552848395773506565405271475607080864356570915175738569604797938148248994665831562456106780441970014553944223069715941193813047740690508599614051689462440289932920372642167758502957850841950767174668057747958250960028524561570001858316160081217411873583318627135118008958759647020124925180992484476029158167556147920838849749149732132980454376934753382460036217165371237925321286442512147539573225118127893712452154602547376854361678855238525894641375543858390227483108043493127897225756783141581650713529840888620974762270024893046901163904269443965012376766161292981498851661166560472785121677100978209656999502217066525786768737883746854929168631301310203424014317510740212049959548943898095220556414843937316191016348302857229539643181637445418474948009745248781378524700985206998164401308381512215025950727637045540059265398917111215946625430284476766734364491876881824717003321909976443891776096828347021403446428732861602483429377792235363072753409816560817221896696943738012692733109666258160053401537476251431163173951216660493429631032142996054686733024270519117500052445071266549851091438571332484293937834872255125796984390287218871433407060809547232826837413748799301478657756647734974559807385877041205941246662802419584016917751620666941621274745820073632454216090045317406394950367176959897708458115953575639496305911658860787384533412024112388827702527670336800850104304166050043489703734197091279803878085154343936078560706607410653743455805494566314183108891157255000917657936501006731324621468783610463266395134117531599594994378392985125410786827645922669885642033396495239196417512229743207467901633474669170382261568813664857199282460377652174054707056126937812136177634503100161861031810533400698762155838506278166995455397805859632535673448336794476079646211181770367576886305339171087088729216121979461042093707751826525299932015485679175739568722335948467531850096996970002376286256026405276298198790299680489078863942092881293958665178285288453356690172995600433744476534420450316925022868320059788689601868097486458048412082186977947393503470122898088094358526799231350737971476376718254812852613765051951626725646662176724826763723962115012677876444862878540296918120131896264350884785152435855666611373958756252575309673718717167809164639390310280176822266731359275221455717765865487963061042402329061641745040077693655319832578272048514428858500103621407075218190838617320369614796380136601335065255784919043795387616130598365041364517702743265863562089006174871093462865981277811753369215320937119072493633691600868179935304168306081060021810985067175688261224388257012207483743667563910715410819059165842737597555669714061652302247880798193522627179549949059123737370531782341917719473424858646536946277407211355489238864228183884234710125312130632552003579852394849905178890275464364965254612784603110409726619792668414594644678402307272336487173581035253483871848495583408853721628893448224144486361193747184303940584513369683916117164226316477260745856081111652802302125422573609925453759070531396342749353213703514716295578193021420523902883242093182706951911301776496675931876431603375795371785016318141973909504714042714622948939038218852803162394167379395963136144555472521427736862639807796201686013387272225452622044387003572329240621194515924477143827051303704524813179611696759537554681402972144554674090925242593032241995256939086530217607973802847871045710138072108910390209760652245455138278717176185808610115534483830135699280848487906097231111392780083620839111868045974143353543007900303717407585445020048045056746584351295610124623250814079286570326513093258559093832554638982852811857226896691899232129898219711635560973266552922477870322244182530825742628147131228927642554185127425993639184478132389838255931839704635174334515632697066380541055228586277100880156052201528560718403146395482064149157787807007481456663353954429291400672711520187328318193144869617000315383837576775717410090467730733866442678356316799171697890172503720117457188505447156930904622780396452402793544886412154466380506745523845982863294345364473284565130905116713923578082198400702170920039770302641062524434428547060732742098728012829724485882702876116215691697085337571661907920083493225599122411325885256019393508867514757576749913908978497206713540982057415772942925129631904716091842460796464936208592784866427197107794075042408396475620826080984886002161762409796437434802821514139138683118913538762904038074185075589162480833733532131775917014806524155991294510407542752483604296060874237543880125514034213625105488834576852511439970479120066924876939249175855657257998593441323649620178947963838566649839291720942464451271262367858964378282181689506563689020206797049861257287085822664533619876885057373339226260705373759022506746760986399691175771436456836818259801658909828209497170759123885207045847615691328717992573407437702955469304992394819058956526702506824292537588746457527572953018009882961608851203394278465242271882725834567543450585978684463067882119229322387061264446717292728079113374370868264790609828301986969395009328654377641281637566296941005574905169412174932494235031972602240049133628776745764710344445291719269973996871608490514662454756069439238918071099523170943958478762528767052888821156915699204585992001258552119001753014040402005480559224133366991558752473024899519074733037158702742601865682199301299333613677800170240626891792171603350159713508889772705177661988246841407159993120189626301652787243965401202827292138551298728370206139995290345872459534926962191374156637747100100333297758363167753553483193902954986745056728913968119584727051597136960505417904796883904239951740356817784592202656239568228181800565212719538597461804899712546430633320993944889504036419320358916294409258418651549612520939421958086498011731796469297360896927152655624383355815324285325735438724140535277030000231920037152861787171828797686434683374745545542113278393989176965529597213367469803592322741709316500760472594573210991359928722369191478850012934106229634999692930115145378290780489891447815371175604423689149446716139550760968333585236030889965929519392485104049720102549960370181246999670797536652285954545333265278008808016405548889339064587848080621800737703356115375859623375833018374086100562430838701642618776856699864804537022054831305619451414127308034019128307767701123290970063858375592002514357968483332506907625410009408285351759651880879029416679462205045763154669657014607124103578615482613863271153032272543601968701928535564405718061173292060441371913240719944437820084999934216344448436810449028406964937009153910075529619803852470086269674277801249658039341385697938062057523200576211296806562469197235660823138771247223555297905658449918219357046389205544030436621390954008285816631192065804106939216914980066628719401393185094071766761615290651257326158972838741701819681444522878017718081634330868019098240032822453075946742361880434295315676187895850061274425393162391278293681063766323531734042138677738758928959262697960723121903687991371628110335247296179207314556646409783561390856588530717269804298770460640333113015406734576406847301127495975554547738510566226158058055097934154094734347489656344783634009753158425657231699141420564883119664646519956377403542009617437811258629365098380642486977157207104033008944767867403975800504010706911624899420631569150571066953503632784751324944736042758945385514059780613597295205283961480701314356022327136613560929852586254224334986298555664815994392264409863378869765922893272322908213340801689996472461929156146392077551080579238143060508465299910962190260465106527041292536219020343893753687802186597692014470662172603838986566153942792671121552855613401490294832667269186903870296583917179664072360441180383459840023348286334116239866170883735421938032967653471673409050790449477753021846670812626003906587334441774632965404215305261993438058317641658201359781596184581800010591787126071016498079727216905589318088186336996459834229088756049706387890130895253293495526116763167219142289733029863782767855235063783943961617479173875255940868593945770498484083324503489533787362822933969769292162351380393833028592701288385585235012049606828634708315953958867749901585621393325316593024869074313842894786501511309538465019786682796879454895896071759239122653584848297619262584886482450126903845349469039018484708934626449459770417146525454014000627193558175498627185923091932914152987681694666877118448476280220267782106906777546627857736141485859817654613306645409203602207532949122314495863555166383527029601635823238833151329823875471366301284541880002471706580135698284206733718182400577496566085133867476476122353711710809519714806076875579311408274466367763784721985278381006530349832743207926657323771049520783327107973625568481038670493157834560616453724925999227965275637180369280626668808115440703755576426614913450288519293167306000130153965953118071979064711524698873017157363051745060115552070071122598395338810635255846283252245236945189105505540688754039538467272934421269969827370803937210308508217372038906472789519251607591695113848611663181085667862581929728286616533766258750389490799786717137790452165045964430165271027333377198452377761907924460091179845460280157040272027306880464280136216535660767667555576779970550964190567630009680116675597467902854819034655319919686289352978490620967813585870322406530459343241148492799276646862535374194390332544101511551591892367670770889295196279372277788508307379606880145276392924004900029313530053965419730342750320825921848121552079120211521713121924628881816494541376214720706359704308415003879600692074926280182459852519298364898374764003052027521936946221594692337617084786005497893170812606600458237688957861213469375331695166307838400917324145576348390072013485489665883403053310724862254134600349740428869958362640519371602911611992681204229677764139757397840665610260418460974999967452575855944179181569408274647022506601422381023752842063432995209676014254422270773453938773160420063966987639528189796589284019165884324419592922964533219363641236732047944847477370837922578080201548487919269188636115456077028969946476552689391506282547935529383049129012133932121177603122100434166313780430871157030010748088915531395648933794228728118955986791521047937471375839480083453604617603891350572493492266999895771164678989107435187096223665319234592959609254020061547938049832922443996853512122202788657720968157825768784408516843979644639353385789980982420664617299341668959658424225670442041386444028443786362011130963885981955611179368979197462897777074476456836202598519219742259988069516100457855748937459165749537540578953052563473830442954928286567724938923257464541720385520069191852126916537589770839704802538776857007399217781688574334633061299536438767429121565102297851420527246982682252545510538793363982308995942635590179652969313489570490151713010723842730434587195774432537173346028736041244763429049411724728532953163685650437647385140810807902235143836882479345304900366434424320693259209742027095932824842748006380707153915331131147508125624127610947709541936282702404332588739010727647196893692246207386629696521290119395561428420919648242284538099542609537334573832792833060390922978119290335568391184929852096484265521859592118019826670295035414910619802121345050817794876260371593300320633258115674873114516862359264315762172216867004358367360787278347753838940103864865333089526568286579231109744260739198227990107442994719537999158524423796959857692586738865887034632761462469523856608401183170647844355572096588249163254029580610820242645003862886106573951414870685506699506498377473979924615631836522331863602078755235017143536295939829394068963800492757160550820484991161379303306924358200416845339296727679496210208625532286588229373895824370693382263616287758278514573914632637629541394001572094165530760554475383541217835408642925645443424583075126898511813711495010100629172736957467046226474866540620599208395258191079126493762651840648239230884785563019724323972104974466433418727836930137614797053754443450825997650008171514292483736975214630048348074349231539385800468534245445172267779859484683550770674868481493633902098497310608348750395773695074795787675463909496958186530743162737540285463119028875133463496509234563940476624419705505266290490959544020979443347726102330810990242053527356458417200147340947923229101507428125352415130190266704712173657996233908791723778779350228753885196227053116061731008538191036284426290625351489615686652898070545737758530207670803432803391649079427190209211999599984036137256270002064128367916062532281145379865549248969257908001915733852137025136321506566169416334174391353243306503590490852044099863531756843060301079410422279567074550148778706380992300938129791368614882737324004379524230069777254010809720720482480696513629577333293927303115700141139879183525503710904034904701378751063800395460503754734888828465285221254857568230857801504351255837717332926294690008187782636672598795948541353655311563864996486332094324873528249202746618163935804349143088259826817614810404045593179525093721067837662418578527100745791030250364717882525906555744461900447517524739173118768737871317933176200413301552108813027899055703529393588957130098681337605936219617760368541274962451893921993898569060882771678142821357742162208882450105682814324797987800715913189932980670623602038962836290494822681096891305772421755781449683658108081209734426599541094471688109118031396303905138568880778510689950640069938201440455181655589610576404969648559017227682486549185886954051851594018350317631059950595943922185725093405231247104279762528445488100939876747004601564404660638136165558875360034883349797313810007960825778981134380342205682529187833266680855551512052185518375469115452379837242762716266592671163064720401552128484635915841732810097250765771521113961773295285496716735553228091331138773052533405518827189375265445624217552770992762917860275647710917098092515934146445623176705924849641927274511115886664544567907589009509530062893343996758266808656610602729943376116434660704934548178956833943536681143533146091697828477710144566429240644909316780029269395499947583884994235464707913596268486559809992984821611970384087466387929094791472115084244233936178286019015433630838184661066331324445180293752287310032223886238219675787044471308888796663141839601819627895627608579312425997630819857697679104528273345719969360499806968267307011815431486891290015776720835961868237426496157569652947716710910470444695021916264669897687291776735885141028555177670374280445024444563568109722771372073047935419686399744261532625561869628439141667732771417292765606837364535136088319519658878504119561819398224927538896821411318652403357974781540303105984037425578707881685842653275964230522632121235789704508593252361985411022087771617568641978191307911613619665563777097306154347091213301169119397563690944269422128476241784241462846368438846420244913018898647141748351816927388335414053168798646541303143960691094674555191715710840568215378144702380026962683728890113986723905211718551670139904491402280043543639546396799418971341849100743313633377698762663646762689192900587357025674748463283764740581868998038173427482881380094771439856710243494814691918648503260556593647521786625441962487636062030328920133896205177568693124195861656034322401341928174735976298745967034791089393061575250568769910969324530035660374083804411531141947682616630909454316311286661508918291196090948345810799233322232728685804462962287564425659017879217702527341036652977858164935351591777252402486826228250355676882614950526778871443989830177849161049955718005082265105315534411213748066624138994724402437829347790340134214211964747856087313218938227995673515951254864571900829520159683788649968826805064554081826575788625460251476850788165608273204257593080994787951250818679452437390756150928006709192470096705561292780401971098318545336255601323329745826919114551963065794754283885647900706436553708382861932311608083967679819969933298045909859773415529660307119457661298194953869087492710491480658817419588871614294332517382305903742676001113309493961317101290080716971092187061480082751065789976099622814987300211699121932044330533228338178410442025469039221571569613639912444928521064368213273397735572676167237116044846879018012847950058249860420884248624851495913470868706147449381229213625054225787111236746583080807573744787588690088653443049974046658624596608959100816237497592827339047997418492711949309582845355617010868834724767196974019998944588806766034797892935993433561177984873485980184157980176072601135266804985015799730787249664524307117843170836050453385567094721095903315473488495971577668014649748413987504739861889658679343589202547765257164639285736308170008483268041691798739814924525765159321430052826458544827549357324012970818261263345819144448706605120774648683646007833621392389823855847311419032225788706742225117860239556096024025645111644906127677298636809366501434201496039519412466968284142573985040800694387348693121626274229005181870913104310953253281514326532167958997545013984732955607678198299753556913853422997066033341347992754207059447565739088921948975624360842710370295963770018340059194162369761500627473754172334996076496273102224016960388845028097761089334138330118939202302704336165158957660726956346815024853959845120751160138911162269728440963293398711401083990750939796161877652084167023445628227842600104982848605684004693443842392679685102646988717553892938354779358545822873670284499751990129878301710859630193997065379821799498797148675727286531049794176504143059311969010610533258186994020815083936881245110925122635234142820153992162668284188622478386638069528615193895407949452213384227916044096908795304664947926236399099324802970845183956345925594580380608690653266122613409313839403055624478701472712923109733661852507015551060614063918816592644209921813920281396450106757543335112123239015561148442323112296108815195438846910647663159170762283238486576456434307760424792552409576500627272876048431697676197128311238953139085650654452369443276276577774481914321180950181915016732380015519827337457745442666282414853361433491939294048997110825208150228393983376705093778477111669240310004770094752809403506293866000916611522026453494637871303632834931097225296468887260603400289649371576790979731541158801919628873649479667089833048486697818428558015252881402014901694846520034390504805351350127422183730939423360674550673776034979211446589994963221133401012179599939706791271407134370027729459007535786351020971188489497610424581372305237611977012887753141989320170692886295562220665450728739603326462066672644390684712210726255384085732284374413211396148383437411870458421596637968917981665523449844395354677871945237950420647854306220858737110529233922676241238075825175808683639559104228482915942505462782366364150892084569250626125547089187126751456752079751822934813130255624122748972299916836188360749157218258916707013112930586588322245461634687756975311935501072161068568394709098782877344354871527139952694664888115867773823626697415399867456456190930248857284912896038584438250604018505701420131497802046448117020282945157145416657587855433751323325033685985875235359232068358009462789216108712005747381139987926735007447054609239675239013833864163468127471286688243828187528846306388100447927390794004271009752376836201180012416979688221964987695651018924439442872565848773455443181887669240180709045190369407433364710017025849162784587609139003964175425362067771660797836425524182235977995713187111215001988006950459444166880957185270424418902914794788659361672072223530709614366540601108877993511909754391146032812787207614420694465362837508812851533075772266621046045439470866481228689009578704973753962941460458990803827213903324694425354201236717446500758453010119816913763568761500551679113477896092536847138621951995586024760565860002502951187799502827066782751374942682925998857086713028360260795838454027787516884224136236245603096289137209190705146616741229488603586850608913925441397167478158345790821822149851784100033579868654286475480205649693287714038552748697600209640672195085824782107517556433456502940875191874787893995924856370228382406814955656759834255083381770916842651196134576327873520711679876133297438083683449222960691503488116734983590154300877893128651915421364014769111794023225247099427724066702507101474479942394527073079780551239550419518067643911061187648961642292990096930333823718581876419730924691489788392264010924434344066759996734685625794974228930925409301078903448104042780066795711755182544020713279933787308706769500853764825552632899509326655606325828512470274889542820315811720446169293116882173236362451169502577029091901276084134219803902142832151091976879959521111188762360155673206317050112307226619759321818433712063313780577523947039317302605528460882577568118661027504682480165756285120672662899965848478184725715064232727834334924509546229564121340588806023190756912112070812751883865773785675869654882981688757059174003611439486197897414805898719854512871539062374879611299957418056100411117577248703824390313771479425031229699100336294493504145427340639812246317787433730872102578747491204963146993445560102868876963603766364559614819040462660992905801908074224874035981885540172849920170770650466363124791192007930288096571030581409150225347041081217439024631702659179617347560147472831077994211427744699016890637206156335254136036181616451337286884158490526585347259021343043704057537611783253484246281702503990684532626495652490551391625648093147580881514841390511698829323818328466851756773286220498616879922081821221770305216428089350503078992111932059968518504967094921553866357467320406527338809170454332823741089633560863772448022907405125900070338408639290306823979558053578742388723017714431935740845196990018040781717538151166191897805279252926465479232675439235527613655931515961505783020496485995810051941449901944818808987579184366598168953383157058057523111229617828834121184355287045744711223172942515251124695998420584322195522485613432489961416250141385368616236131028842996151374838004454744101794896552865202965791020304140679601173317711917114974156585344959775686119323539486072120640446683725645384647349215142430218094040231903540525209745877406384941750521519102745702081489679288494248244855425212027539516465481941817859723675808441099036870314539947475488455009533641298935178114471692628350220456595335124355723061568417694596073949620245411115096435565326474212063956952462025952312875583289542239722491133639415322574687332459934532675695972779578442841595515313173786881824545428066315785389105542357524089410514928858636773221699421535289810946591975419089746310876212308367204418970615223463032163971807908711975841638177970014175069708252217198715429444201058170876216151456565426481379303400585915597868608412249876444956090561883614811507777363463146983367958510576515834000097057479199870913730004285975873222006848355231562545237360961815686460822892700747843752041192078449078889001410692354089966039669444597558730480123518349411891026425869589048368404022375755037870724417748943101822078674509947300628970676609292289954116433683519327150713705108525632160429067452333654263268354028918282349135279459208674949773781686189285683372598793815039471945903746996885920913161700503566097559397468278951805690496713181348096878586475421449654700397754632106593340649470091206107664305058528516562502310361927948908456960516648986644616842609768762455369908633177872093508605690927699042348289754663483816973922622727475399658293452426187423712104609799462954393334810345029957453160488379723520483625630062275184922085083359723339421601513247948106370121349822466110526774899151926267870078151958599444809942994085534473126349956424618931713948602496111465376795402671636760425813871764860569700910131665105962452467038591390521192514323835319108030428064773595548924543900677279505534126389144863911917211846813129737648418812052134921430603342491980935916881002544533122965333704292739793458609909962033142844564694947993906304787533464936357877221916973175942411996867058073635858390152865616275315993959060544851057555061616846623847218244884395440241314237871207054929017351290325182573901694332428681419214473614224882178942627280230702239497575092539654181099794835537509069905767140241947774106281627900123540628646852038033073719555735983214432047222658925972795252045569918986519885573988796728021529633710249817515565107958320077893600347841970266622168146554934377753987322898011957204763209478531133748967365757393480342308461744064075591061359851764801218294224384405604657131934546995112254933137915493521879307898947670816919193830087508121277133028557869897398007107254615198846787941423449540281507139996110480292294068831903271250126214348561989674602449540502769870773520168888971345010327337880853109426793464059672256970035488606213436144051122132506244999468625371764519276783822149108143093433408591565528396742218796388324262319866143124456770678872896318646062139063165481215233884459726317013741579149609220508197011505363111011750459877056522342149820335732214204890954527221312578575535557283659922349503375037713578665375348904731627680269072177182493558431320547977243332815022608744935471621582975193834621189034229923322879614409314940189673334345356295047954935837799272001471751908701800487403415147190494152936442042669137943649738928061468777543065128958805186548105632052019672105429361936650729033878134421829593462198091708470538861980469749713502721695492768965069099923686547098976221867815683970030422728749254832687194493843753461555447597792748355912542736401966917599423615037933136164776479521379154112740629442608501839255645519814797416045117959417596951762089592114957034319256216058873696034901478206128200327090589557237810344298764507033986744645922699063986206210542552175160556759111576803950956377472245991090410886824700715648960584676648754067051326643845543734093477031092022687693625212067394001583054926758724143870374099847244229350708826196665290830176659474225765540489747069439884861341576516379412363396714254417078059739596399371918188658711017328267514002067886492083507981312483638550152076891366768634571952775066665468847646082165439154274386770520241932618839271950076977231496483985649027576912669094613429238743657856196499339045588707331745232360822327800507574650931770165270733848206844688351876122218856048039894863036229215422508954040075584978425713070184557170110841190298684615728037971589924606382640797438202893704929758905564784232357774169983556650936804427197325507176746700261287108384124946131495389660851538511477917859010955269383330448178651416957920726849618450343766503212514801706192123909190153583003024937281945292237808835065896024855942766884972936079617304804114171047088765163806993788566968134257031796748159072117374876309617139550669757817879375883848307219502679389773958798358196448120718714447762776571804201346183638200404792204689600518431398954238289957442246294523247465036996818802639014603282047186763235560052847847600555634953932229209740598118304870321843690688783424583360693493177957129992963124986231430538227359583084630704013222283204979916649111045148587978897750892484618016421948378839994411716884360365815169194089793516083056009314252486763980840875052176726156821467283442235505862343334251732720460587794375657694945914540099737752184380012571252974031167577672919267776317834976611378249022977689373226998511854966897713228688769330301370595454964453597139843378252244662344552827527440401320516272073160500646253196448792576814371544781688919057383367824393982367430948813705660043172183893274709181591385921750695054268912346561696422773193316331836622119197956825331116590810478563386384658936656498828545840131357750457202539115124630660328811109972671605270477349962754936979606450760255127780678962651132934996847378664404483577935209676380558746342073005899803838485157466617044999396059465889773701803289550677536668371845189572221095474344978617501286769284578100728503399642689739885406744265112797185270479199249000783871330808879851728634469269730217475933488711604598706059542035754467506271819386849080472899436434910948333391929218918761811748586426739696708382836679802682985917328748316259062667358602505107351086712615158072789032312395721457227576398009659827012595520411179304731879546121310895097064970744068873387327944873809845180087276781951563714513203087811726510111665482524996536599882351054212190723251117692935020736185379553132982719587975981407140061363738083280666908800735080593249681203621767267346116070869418638674365412914405372763981681595174691624014223031521141281937214666094060762218649737207925241805596613040911506779565362044755645675983718150513179156967936089181531049738294624449157535559832185825759092973164365619382577569027056417541198613695064635758554428265770163314684459482702624639270777457738346660498935892100543212263668412974527960498186980103934945643084574375541762857699644429797265901454265932067387719357755956154106066538223780975531868632619627064163295703618609412857455806793088284660178890029265517288257559277401360918771191209863376468116842895201294031573916422809120992933152995123119925950811017012813620672575190296358089131072821380045983483857008385795747104244302624321521133960416851131852198023555804919220969554322978496045267264850937943568190664981712109019954972087963949558488420840305644157922276715221868121946717202058058585037132507648531311881356771159918198720479908994152673396285690513747085183326103866399421047314030804310397209936229155854070375019727193118582630944378841418193057250569889758525654948389750856029986876865244362309020944524346178692505344467396762201863930739949296759010344567518202418163451662113530422799118208224709544353580871489180897204122686938272614432282830526886737462885271128767256307523944336729854470516786858217647521598185454934787654137553741834022387539997602392577771978548364130206180725793163287000860126765729559920116442305252825580857818779334627660192730001450450114589839596731421098481783032701848745318480268566725717235180491885889828894422412526218050575264671402294844947707305265227617355537063375768405103500268494252993969146479327925929616189059092067854822330812576505246760652169999033263410560532263934546119914801568503394716691486966121807016236854270132948358863942193665569200663105070038212675595136718412655030287820589758730053167368621065276459284829131389432510115139906127085799573897564876272023112592572302442401539530461041434068545309439028236694251859681584475328576462313591244101712511543580057707628221667512197789291475906278819863082447913436064005121397492739648440046626648557196174627829101856074595998164658940458499195181202678775403396650742491356918434218064656173946694471424528051800296269990574428411142042426116980668915868101350377129095917406910183937253417061351132042548834743941990373022532823160300531957989324460477128646607034454382685832637907060207474251552022135987337655025288662510178118368115934480719383798248710066987156727011233161223048650219050243091761760046745400868477598449208758718786760435040602390525485101574341096529210324076613299284418405051072242320133687850788873681336854410837032152809751442884909659325028093711479179004203832515572498563636951489852627002431337409739027935037295431043644006868316216036577601548153426821008832555061655898112843767510380339419758611187050999707874283500219114686560682975405026354525661931581468566597549941437529940772948234071149821889942197203984652047907797233850812961928354237350450431346360797667603923943873265572918832322688623738279757563128076053731156095589987202062798081099433408570894403702092293719782398355236960489326432056706735246655956964867306446902581167800393671815429725811462746011756500089420461006948157241402834876667356426006604614119856614298288622027575084546070073371307988910289905437015811733523891858503527062505572006973008937796941545848990902105286078359429489904635321568076529174745308763403480707139004814147378000493776865821980173457731452931534208056796657499738371497907737858218029399919160864221756548513501035064776912622541374316084158023404688997024639427447667469260682395476167956438489564079571503293163141550494328748373777123927746625043141734644558886800290642294238238070219447953945096573574567963750060031145880255085189754140408503248672676754042714166144016130428183397790128464598038827308491038742660722262361467834944680017283953620967172139154995544567434610381215647351721364003719067106737829578143326646810260743791245146143157771452324747022653031156682539731439878454748239347113840004931110975566516080861459683488250480759880428209162394216695922001627492881670819835269254965504196439050781656232322915659665298110928349671770507768994875205487806453108440120803994020093316809961774985168104628328092904618808585573595827054171207671513723896638860870840012692459573860940590648764317047576878381063410950187225409965699959587213401129374524928452622645101771920223806441956516715345583055885557605805156940398356368435241521418957714739217261377618602974354161381794886129437803840444681170729193463680676413866729045882471940430131416579797409537737074819350991185085728581083500931466527942058114911853468318937375546695323999390094582229944424880462567875190066988541717833035537706839977617112098019918105294613354145152703363106025151833104808609660645808980354056934825219894842249028403245376693918915940867697785252219105183962770632832407691744730288169544687721953182295527832948300053411551370996155827419493530934942604211786188288804965993020424076653559054849917304909694065991568778614902422575290835908761143138307147444231119370699795427572325460646957734732126666538347380236349932324079346014926428831275203939074241591243813485329472889208251060605258299487713361451901506841292254376161629638100440546210607464468859498201233958734201680785531756327468191661206449667884198418492902415803381381738218436324274853277581552891720797644030089767245841767992258534878052325576234880517695731494990151693934432226881951403635800010802717820054122468187982672699590541152391925448934534978197385878257674761204099577291825142486329159841093908764613862104457646358233638167637838626609199609265898426623360803033776594950386578895441948501893188705781205150169578085779018525995545044256649626283466570857478156703307361305318253621504970092131147532488291445531370142004342569664052641213345373141910783818384293344444507733652579163425642511031513494111628587927883981149440844171295552492327906217394296187482234844031170732527199730860731934280730340495239499261030427879574472840649620485188272187199220384186919989274317746023682315152241946720013728306866342276436445901446827258542684679623253392322853434491222531464040414708688992854214600636677476516857207544920579326418241653739015718612605514537056430966820849342877404746509439969678775385669408550595698778498707406535829242022310222617826314769974576805220411334067017434879204699980816276953188663027763203351712691179567286497479077759151925970630935077795676414370029625000744771857065000428828159620632834476927136494410137509779853749442451956936963650694710868131097357163466965679259856631161454406428496367935652378088969592462517842691199371603360478224183456896375362377530499950679731006374382879659487641903076398582359219549279526236857054868515503667375438062653076982935754408655475530015265966029739082761324487816337333202987846622296896337632903858381658869909676231833465455599314489140042361975812260706936572080848725876799012071631843422769110702122904976495858397509423071602605900920979950141344245799370715438228824237043174004210032313817430011947714016206464514312424761665826868053966454720305304779286195977302519795523288297495347693960554151210015752854736074846142515676575945305118420088905736033673803895117552422666618156491369256059617645759359070511765137577008749998317088922736762131297196924561805710600379253099077918268832796865064536879709804244499901628818394515889988080150044924018431385666959006297760591089894849867144600172642537261825922072310869335411847796922799521809724601009228927641370173693016142211580556087002655646216935270225645941284350831356471573275959043326134407782785589991655097704590958331216036001373902521755252854388615628747845682427283269209893060476971858537816284982077698178655380413493119147902901771922704430112816284471697404415981883998487102092624804191750036445900235896667899978684503848271729972645409936394750951432195868354200200856794459426317615723767352307805943691174084955548327806728810197416578048928513246297319552900947989997419382034887118324571325984658816592071838375951895617161754472480653222172757133134019005467588776634296757031331222094332732074006994326784382970797226908040966893816031497563214798932553963761372888481508385841365291095777746226827377439384138287195293579422575639028648339759792942370033395991533204264042698149852671042811347933166344229967120441872435828028536835367377228348659236747622271450976190129942174925902309119803806492676720983590158424991193278166469021807816139236062200658759680945566032109671940254057200314694545738519217143901862975071491465633644938779072386438916229982221324697605459534782241383245956795870339111901416782043989726341064500664361898495569275846226458690194434178395285938319957124496019844813871112186032388855502368476168202458662016882219737629833869784333219124919422222420843610021418402009577557561791195831955893035195298935383009384762369341074423577032753500254770631654053986695944559969963579040328380425743884060922260175726662596841655665798943379593765972811624307324855660459494994486265110704474810681197369417506069775845287340663236816075045717330552730268018803924613893821609858927395453452342095565009202447051774904485953803790070455641691646723264459269115979478524861593760174832264634146594433188854185353177384273834258086964876477533458748064579351918015251670364553157672083540784895738450057132022601640644982042843936169889531932122081325514614434864221607535241544040736485684077089870266021937202373011817091802561446501026285740204922720809538755206049113050318484469349249361832073230361677617553131729035734231490444092111729602400043351201983501098609495866491855743655754236172427598604791252708631195518457276962599637444435472861381763479111339894144132458914860149878028298672072552127365044927039850900760677170570214122443331391632153460311839568657314630582556080318425208946529315345089147526462414515436622912447944579001593505178799007178829554692143771237022892569542234819472460362700488628102152704574040380569928903557478453259188982998887557447808270409063521060364534518278780973227246028980935595530214848066873791708803154191323844634037557110197784123167674068400304907087999367341856754641112379068771991137264693423079187860645857226086550666475401816906401193435788065139590213761414126563893283792793050269786491385118656043776254394568189789269259663627708359370819434471173658012368250587385283916778655689668197615071533404163968356498855270791980412873321837760097781540529992626551543131331535213657217033793341928220207590248437945730759022569199549004228189857065342358501980229990988823191102548070360428107964599984101183754307462202425447360501814859001539688690621760697133283741391200343749533389347505289663031072986085582356093110192456349921454161610354112962816736669941424341670825932131349246526195973693653445400689010065261490839751558826430728098280540866437927918865923344056071453457245596374069259244346886161979412038837386603396631075714351402518315690913915834684347379067234038072727738298022839024956632775952570497372553664839399940042434389465565943042224467951596298810153140593017801522033968341635707983084778728806979964770674916930627033184931572314663518374177307226222817055739603663782569925277039783716730749963209036771309117669149485984005913041766566504871227067432666356535106754229518795384856309171423215461818041572824682463440948265250957809575748956464273637877945120742472204436444802422145519035009957087147696813049415991804393548367417148922701094132530021551990524807983616623909117440439323851422369628458216546068350539624715485501710409125635577286877499842254965806684230442262713761546510647174308968970943357762702663739562226083736311120398912729912956687757694749855467982270917420337459097713696655162184823018850076213747256910578948760456090010642526017679422020836176238556189701757526592339605069820797327650132222274215669992037028893525952901353652838034396870744371139414484756048195319598508001366609112729812852493951756012197553592313057032367492744854405679201548812527482669527792732069522665354043814821145141665977568443241783041998677226113976021068066864205315879687429204904947508708038625296220420015046008896052214091631792573981475938717286832156635270379932307393392913113279995524342970982041604999512746105227164043346004824893607720723156774531256653786445548351104165997049585590920111669001016884377742056192163045570952242745008289552928051143069795813041621094047502197710557287660049326664898441945296452039179744311706823386518221208083768932112590782196071840299498269514628659359561838801499909898234602036912173128020680451047047870903636363320070594509538089148339163145977926042462337531125294296949434728559298412571208883544290880916014094136837712522899070895059768892958788574149928035652588070508585539871274248935979795133409083923857079942474638101980944866655169282665079983281409637013402127489886644526016750970781815792693581376889787982332384306012660979944104212266656417935164635888202711414610258191276042054672171785217300325304100092885612928873180071929019819262292241045539062549450134570571065040281790976989672615186213444924391108349108053190299796249886833398173211860416892595835708919000608052872594980753366209553190172062895954726936118795053566753843529289972920152390648042781373348039483760450518706756463205779097848259398958257961353412989940704332124310552458153511023478067339236594803256366861664630468362805641023080362225149421973549473415793856575486545266587188572178093697199140075238841103198275057397975569841325945930678173174848778454836120242412763560845705202403492330407253885308989357316500049608989289055382631875132720217603678774396522089349563564520633794508212137356069515326821932223885256175534581142701834689458443609664144207479569864932302373017677829776833542381218367518148425979819142371506420407653209235513429300802892609269335015052838424247378333714726085732854147627604756756252502149416317999285423203604144854185355883722176399072297728161352106503374543031559441247518424508717229194495301219260143570899729743590918915116804968095413407973188421521685860950021568293416375015628744111960373535774968526270137665087325571588821646036164426793775184100146101975209233208175972912739241171693193343892326482787797023168938670160150793858255775286430162653804099054429881246553871485675599343032058356506492975171655548270523237067340694378353733675628277088040887192349849990515092437700140826938682995922736945234567151352881418613824830357137030499434568179362198210161051321961553332163739799679120509919481921926355897924050307112587301817297549231427652902103125949883926090770017531656733798408530519599425718905169023629959568737903594403012242585977623969294222408453595056500696035313420365533280813861990916472997031688709096159024823950480821835176305702240669699431782229784778448130416880250123826163751537505989777044788628820319513117697474081958190270526140220853872363935947588120265365983639773591369692981207990735665840656899092888102225927875229546580277422729856292499665069378758549319781138445396807045159039537864832113831718463574170269449507645733365550883657970333520334395090035784120485933051988223360626578348089415306971550445177700473293278767727398672406597735761998907948097403779222626172843083622876954782798618546036982068891183879025611182856855283841576616357273630633481441058284766610772435388837783486803566709019863483349095610769778759803780376239852412036275226612436405272209889051029324078083756143131939745351214844967594966694424133435243692754730910145326524598110687109193534626333143296126059963444793005601448736753417590747045240601406211537945196479348756453772223874440376832519467087858195319858403765537857991727070806781816641290506648795381511897484672883557033118575353475233116769497905226225627520495639369070334407073752202616957162575222335453042865986988024543984535146735524472752041579860346565270262405248758821284496909024018084325668896408622358702573697598076017465846355174481296749273452422545210766494264415642473398149960248077782713638329413034830340109571621403790750288537105182444276162347913025774913155614566368906675317263900434836572387041739437334682974833164493691994023872911726433582292264079521555336785490531001155927539921478499136025415095641687652244550742610661989213905238832724200768229710363035739918343458519741657655398335359445177571790337184935978110441375712340513970219422512549341806314213848213382150258478277307133140952432223982102259430859485755423732394007990604432485079861861476543269483467781130580110153960308591103731187011586890214116358687389477282675137746194299776061100480086855045732246362667011219755650251853311239427929113194045985590362787809861095736458487604278773335091863435145310112198221320181858242215381338953498356980927824821008333798467724749272102365035081482877695333597529593743837301991374842938712431095133093272260995193370093781918766352142469425107030831643910799999623337332664084681505471258068901874312508342350170633857822128959892174083350599705192606601188768722980937961725520102716456098556671123133115124762022713272540185052192521626310233103607978172699879016922487481862954456997916648474642997446763290317565821862667204266789860536153216873890634184534480001854995971054804066222184616507400646771420503241051026380693444357099412822734412193881539269038659386993436597878554790554145233102959826397707082371145182775536539339787858508162300900724071779754438989788265015628078249327218765780353993859760454307958658583330638753469262332332911996718890028113542191838558504836987929731487918815378965991510134576202908403288571547871603490239032458075386622641655551173128034796163975618936276685402126077389309403886021769758463393326634851323212280267038179363071859453388392027062054057444259472768073243989034858577806849674375845547038686461987664152814497745807283952029862612750617574948678411437226663870885693462650828562833965584748526131630514311052363817385335033880170899280212330491278316008423088335332225527626176622143116105225371588263077369153142102351057587422644887444959474967862229750035290718116584354737802351474520449458817997036335962836543628675178001861898770312330790575911376683570921740163332366493258028587768247275236409173726716091791786829037417588991871571308917626111221320159121394061051819752003519548175565448156976980644495146990869665878460299899756640088910374785186175816032138448049693580123030665252484256252810595844419011556553707241521048722882098028638274866740912671768975827115881721363234079292511240568121812755856646800199195355001521258260487682712579870114657508717090194616958397199365202086330520725226524483105733426343757174941689165958285872046430723890166057855390505997598641114116923738732001930642010925922659568087490708943406391893618892603684088405841582317981561613831680321263201582432316721468576675419807630300502929018714202522929727100994036354165855777769981739167605062647795839637537371603812863656299320326036476434986502686043897149930183657991950127624879209662244781253089307015753366045367048389085082052060912966626587912790330808014562266387719487859877066993334294195194227684580384340296475095798745158495664247067453171817016456469546125227642840484621276318603482262710021922460323521603132714097809249934785083761867964185515129633833476137241668829945323530516091962927691023160641681838337967113598869571902311367908544728396593410398002538025087964961234994590123600690296279993052337314873607399511692650068521372214251760178792882010825516422697451504305394767189614089750147589296931681991866100385357237117538121210452770454611824228739739276001042853539957930714872564374927898730563035059622664902372426695919768178335968189390922513606607791760927001416594153770584668558313032989145157313141884835862818638602874974213932290628669931282440455389884200102917068322808132961067700709759694320352084894062183396793231165576734483899013676819378023771078225228766266107670352988969069161689912400437670126154177469086160390880134895759340993251758223246552158369946860117577876352299750872761605677229034249576900182299594737998437280809762573262497499583324696506473004211861329362138841229927400563746675687382350946784380407172023520360132639391058116131199110083192429244455981252350036384057830374779313122104841435781533828933403313596698387350842025826016699332790417196710344527738075602760858582994224690823572904129431209285817296409522975269466711442441421321982261405134299654979184422471180733534206921966204593446410629208370081902555023230392862772986244840482555676183598705252567033820553147394888894650701387565479674051905516006483626877033146535327703915095379465077121692432109150216207704867028722683501030094908196053417417817045073758929694990818793657038273877503266220828221202255407157841363252132212287625282644063432043684462369426338951213145571975004795375671861730592015153804029322232668467314641917822133407895690419841100013712770772140055709696478734098069655946302164795792831993021049417220841374453457042932625381995174510474682882507945317159618357566327782792432833959721958306728400837476563797892663293984107149634739712714133922596267143337185701099707642918185240256280300098316002079220628306397327345338931476428122026309850187048051177823609141458155111951799805821197873043583642169222932753287220937726223572694463263048203112847147921547432729292159964393472076913152908508247778400796401364843330259214883809494813118239372966399739692367023394398888652234442725668756114119222394002937560513794604627038760109736202136447732280182703090899773229191974127429509176957499366374946135530934124302661328434523412975146058986421934082857662290733364092225802749003402754508977100954108942214123059583631823439451127385584193346618118408369483461329028110491172550831129427212160133785452995994220279628584423930498484877735054048132742920979866022645780922545296332748289680493129599465546655911590817961789155439616259126806300662540550176760846509607112204117215441094947089850471444106568341568297205710948053975498253535657599697104609616978478325464815386788231839577584847003810434855168129025124749652097930644543088038517327917947220179165133640261808436377037224320439794471104346695724187281351515221192842816939317651830925046273233980439516534724858978081524693227874156338266699113540036969877093031858860867704335770250856322489121292224046246910213451703635819865757984614581814422969697881684794962194885790303951462447936405907493706713093176009845601096967733598872685375140643332622113541096486178992092458521188866898311664238734609943992002589729586454668743390039251458175462871810240018034997887026929123209873544877475664101685118477529707194554858962753439622684511477157091337764810776746515379730048981895103799367944115536434810936472390057370053034634898725517621256991430498514923322275244189919073544825385854810636900367602022227894759437078608726012535273771890166282955785094160310018537835558259857835481598330375405046909128043503974343643256274210371179499815172416942706412265481734102638941424771753686758779946740743263987150089680448339865731864914922062840458109263297287597855640462923780039367397304819768603650017255238476128183622685005874086282140512763047562199103326528462899273329619361696898665531583508160275400367863460510749359651917362748370007960250158646121256234738492436170111068398385336590528120049331614369525071081719558105631512637486906483447321062690141107348497096604301664690117816994519020779363913148886970514309635867502946754982321113623278222529739222392152388584083466038643904423753795128063504159098168361021924760152099060116735713862629965564951293870300219484869154619823617767008599483957943812514730153827718628846099758867079016475249614012182623320880503772359209555021114615360581053812048208002306397575236596619579151953412129425516441456654965207662706021877593504042290499198388564015615021084718674990701584738383760989303054422223187284265066068822370195077649556805238031131726224994248107893789346092379303944972542152073772226346852942551946534065974637800045983263844737007608377105015491232167016296372510758033518530213935869926065776505649088327601615670500573579649050312608243831240541798616742765164480801258002696726250655947981686044183381371951214330777125631170698714987426365186938102653188580245571227254644664571943360096617059080282209936434905357511927844458959765058663807875010243384632469608563232847124110278845519099288995524814873534968925639454529890172616014792644252165159099334461952064651949292568649520584070072821373592309512643061496008111094984417233181643206702538478527944707939464941037499835611951227626660857505052707100637947199571709425628844088584073437970153744559850402221373900465548398375160005081021987050085818994662837165417536928043520910582142752530252821381351701604002526959719818482832915588840043732326298254045119495804205424159987379867529618483532726615221574156973028920652030562457461601074209101848869186061447457443093915377304261617578446136143436702131000024070780656353651472939487632153800981353848505911576880566925903814518055589435899435030340718970313029734388042708906411967150458635516534582080237958392225294620892393841951437158978776752794377222577654726676455550782818964016386523570602393250313803760084638220235621611976351695034499584346174741332960669684608371614850898356667477881295628898045267662119170709253365103923558929225710020676646840172106567449869910040331223842952164172617775795863490721096608084696554380593342558244271668311069771935291625890843562287556183806983957522459238946311110817135679372787242164540491683379237669897791473655013505302407171364670773404683553333068400333218642755804815967100104504237979017922578367062493834089074943177734294742170740036754157487649081802657725967350743811699883992379191445932495327531275887712390810044389072486671638677502368007047326791326216576734495654573543222732918339704819528703042355729770963867468162416162753817205334138426822571476927362899035842161032687790960218120022538280140176109047077210745301193781646885925557317477653770706921974102698774817286814559744233171697099621622327519100267194702054580818448208144348411267153868007300406655562268657851877049259775381136059340631154183388423255148345860495118700721683737172911244738895942542014219571842018593648793329116107012549535544837883270916087388847384108209332091768615072988200057150765272257413902319816204088321812320851267747555079310420387970399901736744603237798330808363816770756994740265571822879098153584660105902769583828633130914790464689785429435266377689264492968460961585915301837866120737012524217530004534211923485398669744972066130445262217611954366572764248216245927596942648385095638774823903552884924491196588189020790289791047909368025121573121842328208904559729762344487225212273504048735053207477350017748851595036701614625825785616459860958168639529530879629880518033332695795638821734595326172170249793119047382133166974917293544186674528657876568559235795088019992091190295171945078043426523432426696331135876554854905577739245978670159318457248712924056871371440897866371359231342828281972691247339968572126783716576938106941756898656716856700509607342399709359039075964448338283223669433533589413071547437883116620845990681227775781833111868201282556361043581339042716033210503355421284300816818742260616408917776971211253522387379318547942218599832491296368593028742814119011467818651726818793678097694386403930198157027747053025652161004149782798169795601512111527526272592516937991786334498948486073137514593042830087357997811935275296175746530193457175278120744651676284117555120115775420846203580629518013494157881305147881840774705972139558234868432070113507656681231780782425649568754194069908978630190435919598071980638111809876885770856617640916552755428608539976555454998142011702404405175592682590482404165067652486981034589482393013577341348348343893865040620868871343972712278047676389811719129718254570509081695099043813008464428373000634098388187743761235635263141034317549316972599877743948664412921373806333972064295739221366027845787962950205563523437470040622522894794583638515983498444425801017315947209002890839696144819769264085126670020378914952548387991747178108377566688981098734251537628746034552391612687698366793092250912803749147716099398821129030726028721800334048868978241071799953315466032143156208058419716167471120011104818841924137732024167739681361991748697316502987058133460489373364028354235009644362653783923683006458057098185932881186039362344836344901432300542011658503353459707282365439219992969236998823629165276487005588331669534875126599527983780751598958554254927230354503567505768982047101705254825741367850508249138492499813180987289022853153880154358347566519693175693643904266119191400851683247118814187061845464973330903266054008789887495606135137734073276887879646785241368995946185771624937531963960637849293536738082890032964990111444701110097868715838312824045895474352016382567909825039062738164852661747421787430384013027949912607465947041912608915696003047062556233427952966754870970342172773130941786536447694787928790315674387951979296451573718313878089183545390447067147111841300901785286076604329720078329268215170932451034973257099487740011192389272836091223091653608559217791258333718235458763155125583977808502564999140630324537272277879244250053023544806997840981285162386034809351175038861678657661659479169246608023462856666564410406405706120697910426601330241762335415998567622345303756335027800324612667094260875073607545563231374943690954316971769415712473251812166465805212683421901790335575588011508734558928772071438887334984989381923685235770925879082507820349006154591341784895329068398701570411733629636075336485336159253109424133010654137184976577837923868505076107826968864825134551314195567558275998783347904361377363860005283268987244677422348748868653372554857855130671712215273479583163966496557237732965749650895108055193847205627468567904725992064775249617590318522468013876250267352488423554792137022518149085227745240082746741220851900657513033612167613384689495719790659746054208974644704621281333856109558752198183322943198265987506335893535794624483922570586957867038097891046550598864958948118293813715920229322307850356435685729905772949497792332722565254375133262556275855348364183212761068472544042330214288123192584981978992227025569170908825888202677966164030086759361669261766074021619193435360284096064459200989641585559291621660503131203222478405780281730319392179222733369156378038955593097250288421290745658794986595048122471992259022884677165278761801161276487810902314354368954923881344712268777007141155021832704890988189702868318197910295113935576350559104066956297106106744417615629646180185011433598975823207090447236045686258287012274372782849185985593090220825517777057876475217042466910234224180463518822712009665544203423609780363964605229423856099376621484739767374427855413977097792041253658012566946465951620574837093208355629534514442507154905236986888462218790328826143841217520187991495323584622490832130604772378792617332011768993286146551845763178607881864345281777374150459805711032371592711497374795857826378855515334978700100948558724207091532038606929203085959339107904134011086819276026258752581276671025094077048658003817528840258583606332913969581048656589649299538039204618879283370330668589689918797874587762193451129109845688968705954516000267288104663786384903668833867131671456491064849525142887922977977685490683472024429063466431197889183181775590110453636298089818977677929861996028391953749808444554446532611990467796107657461773576145931518954575009295038257423565041762538901621264630091830085222644970162356237347126053673808724772626196512357132410591859127251502415762423710614731924925541692161066859457593565754409452788604723402417110519749353727882596043707922443101688740108265975740902538500704653560408523900575161982067755890401206869291998007775423682017591818809546006464011301439307268982205637639999375485258398461532533726239461317490834995413901622833002426343901387052759955759230797605050605684545714917410514278463876023108287078041436248253142149212129658910555243587703215859183475103770011209625261186943258942553423528093974685636547476122437448847994970319833105038405392779297079438733736167610933528282473621762812268278503948969251126046929854610046193986244445993823353410535692539226806509923748998474895331385663728497933019008153315360917107009226085351566944311665836755738104537500580486517499890393875538672224209861495357240268389116939810542063620634271066953484795763287688074177878044616832688364227390864972366188707499571280160600010604323460994867480196323725011274803943861295056920531450127048771973997129326778494904971470226568680667654211273407971730025788368854342359259982792931305522837746942264314556124338552093539646001854832441722469139294221914216014464133497441858551152920194206248105331973874730609921138597451380238009508922218419219308964019328617858626731100542453962275411827081598817481589264761312435746903454619335084358460099518217072018241431315371980413657147594209771592448753270422587157803891306433809995375810466716636953326938505634929238229251121875146252105250282174390605501871196263075072337364038297129332497896567149888252751002231411973966361559109316579942466666893975726113250950628199299318505134417307426333390808761988422233421046680818708546639762435697502218194802066435315469385672052649431972605025601776219724670005848128520867223295228830690990426309092957920751237669920196074244474902772501919412687356015410089115617981952852638704353109698425863804190780752702853889540078447605312051875066870105850395838992032519172402097333504958663688845249959950361473113634668858364200179908877324861128268564589233644150474105431140830748027597956391015960353544660825735662494123529578715934466046048582775204861723289655777559964767307607380310462507651661236074089356740714565585443099646852206524062345706723021870072097299295993192939742979043330058968124231011116965906082813667990681943605275665455928367705387784391528342074951559887108067117705238511959998307736026983384866076395139603281369061519871859581318786967571622553207267442464716988568501094770897972209951241391540070400624621052306794703717909118603142242472071601629682228370650484767087635152948491986911212670307766011373782825660857256340500411265797987647362426548141157218540639021752410820748644927335486536285764848332157293471582521768279398366040148750319252877130819250899813944412610475123071341185209221600762761315071790461651259238603401524078500341722583080680439171345278618759699781646806703246434666827566746010189761599066481814391442925055493041851357677170399905893536895367671332756036410008855700203889332006944908899534944829586315993567700204190840717108444153391560949459645314440431939858231312146775291248664328955579261398063759364183364176608024608326049675717809656016445824106357936936799564738555139423810831520681297364112108707475035790559915738713080042962031936825047336662252795315467766465660988392570740860208115522141339070533893505937557400897659401775708182531639937836163051624206482640062152728474698396448718532889792737083717156514034423844725347662744199180836731277645599385477540896566798674136108900208124096619005624242221050746816285617362748289639124331841990396308991021352440706125123804826377427765823081153710094021092332104169317433652394128963764165578202420555967325033266063510459207471732368922836089781200376254161866062421679220796991813195245265253287139955250638747676168155599514263429710324775519071709933641771550063976707228775674345468576583953549230492617534903191413316351335635807306467213370972426705930168877780122060257978850490299110695195328274635378992089683553987849572864426195077586237880792915527695944136315619817730054281423746583245721684529573297069310716548820458193862665858842038442901270889158491031561294108170100639067424972164896249257946972281183875620737097305509097058273231483658958913927921056090773945719578880525050388845467810207531608956552626318382252915176355293178781174449264400991693977738291103003397622276278926166112621467434136172267332877346687071327381562569426639626216019588124813591817135377072677175523457443725906992754667800248749235735605551175685205623767574512606196835436936103145698664150137135606098115689314336022831730886598481930292887330477335638871932906133658145943123258928914875511178034567314007262077187362918575455735112829641506536908799911534894924309300762461382118027921016055664644914844189594068938970573441101627742099328600098982453197875289340660603774831454178771034273160478914649055080775062826958470383928487454057756750358456892122283196691241040403118598534812466727137593079797836106069715906815312176782152888617441841881571207237164318541207811306029439545537317694797306795639499232645085921345747983225724307190133018895733101635054609101125427244133150262470324748326981420404311257030670641302581156015838799909525849188180944810330089061008619214867219220031360814473096359576168655426049135802053597286570177183600850921931220675922453291355587215106119323289054283336230183391345846910455913691541697204458925496412304190389007847373010278137296646643633885388924335237246960798369022633216182353730478270982983484246664498903725746746750005678575453198168508001795584405303136635059098585812696203607155788365917087209450478635071906070688033889820447169481222684065887679674781235995130997363336293038350818051228912911759157389785037401400558370165960901177266261365859361366322362056494892774158745658888827117643076000576988852886240683262020545145828930644280629454270227698291351695312157880563884266694138260575262288496030623226852716480493341641638975201974639211908064544611557868538427695522911624080969699297054494068033670887936048845117351516892808452473440410062251670934893297921372606051341297876784414422691538098145777422860132654106136193325838043807321474627124108959887621372328973409951826201627797075418583477985764719298302189297235394562652657432941459761617034518236940056335565912849370085154749053299494379029712499656569129332450671257221017753434491894092938403772829276897692341023717225800030261878704767768056647669463412937500729073046734701064097339556590091265077573249336644619328852631883490161242420156412903212479280219713568633982245287915755404495617379594587100796682455594966721599293696968385628391321655439043478746009398907288602280137744397570244406265501313146413323332566424133595043845441138143799155196051152490336769545221201507172962820326618004614578647451326662867860576894556746938242859543064497377185917301116317632142712152916527542726101755046062032795346301547559846773287204480871509678134430698962439989130699784282603089678058318237100013788819313118475124361080920342449964168677245040683303010105007606945799360169448559605255543712078941929035713818431671006073804505527903387280505521812478070631954988070510834024651665147840944677123271392460313622828366819501177999673736849366155175507586770612809342317490561261577469302628042252248219904066158198484977643926820233278220310887484548284170850262353559252695791617963998498036782016594024227542876854421697803863959696208217675089250464035806783871105266355367166457360685299590945987501897517888957850378289880761013028232154093036000209810138932646206590591439965910439406141913528924436834136029472366102698266022855269264057054915316720026814130694492976085677361921162232995672049277001517813475843708553306994660560613660970781395469236822598018899270145284995791095237386268752757308441891404745256291115852644718602936262380795574160740917145834290450719644928748232587075791605932358488720740201320733249609446926058358890970651228261588387945339890819589459542206713873050114133680582045759007640148690067311555963651402130867355832160065261976687309285955738758876306265219627040536334578456302836291139969096748954177002474230404549580937667230336008982848376966512394280985999809374310062066254048308917333828711064419004317923871120500596719137535464667870665221746737778475582629516321697132067907860891574273736458799543611120117379461492360333827842300802319295862573842039393958754695264455581259763902258187393793814452197151463197609887005021322612873664042169728535682754576613889824563785873101819713332445690231001492598143263872705458059554265924402121239408727805356636527601610340805188771512642341056460404246084739724865735494362663402160205401714793215444098459608722404537581989336705379393420456709888667387244558893038651821095329537367440938799481432510143599442473403717055632310563445563735729699048894314034578494213301211781888245990615832902961792579784571299955629675721971031093329028081223561001455531701947367208002379475955903640346952394790036864277814206850683819902626875484810675378401181157007967418289978361305539329304966419486919844896028608032562153926052263214634953129413984843370874082409476056029872525790378320762210042898701901732182061062986383021730259576727952498228879579028465065950308675275813379930306916081334701306833975562568050087564265878534959966553671944152043259877609117366776720707636117087102285385527332359789229052480450491556335710731417047199204592719564000815223355046329206887061323565131538055506378683832488454859203935591397560187933076629351056949158615085684340999133456565955397669526766463364560293103762943381810446150122633190023522843221651375984454720508349158469949767840558817312398056011901870918542529322208759317822154284757117040301888279293373012111779053702657502399264854637561872433681364458328005026176532442439635544769078873251658437421126909619094109188936415216074959402719592909040107106492012559219311049484170957292195390008568712111866525438040243140648050107971047744686907868005752727328120537987602717265059422034675339081321776360159018008785107379928926730223256024694241612738788905681390910663906609948432028880352673863038538121464104642253016179219922196814228929269547553530587706869029057498417632676056490990674997339082585264903245961214256091904657631461812883800599396909188845228206145860163959371745505374513949869066904425956068843455895626998647773152195294447481521957010010592437136691817719410800159820201098909524797988131569094104435286614203553384001103506706964882985811114571229875134708843964751684051728549018560632205494766760020788243004612253420389038302470459649317286209212458959118410238079130500241906040091190552368379954581715941407181646005246841777726521750251712503393957715041358697773182715734500654458745419422506904564106458749213976602078688180627194138181277853726458065464296793457324528669632813495400121667863673254677169795861409849810683158867057397819223451941198251049798843577173041887035570974594323114561223644723188152508335661347486125142734416014794174926991884829399918814853969166867325764470961537298313331939294038891403423394560447120165747390411698984936394101560074408918998054876191691041252810668656423866523829744027411937867604402076764642957638993718642639241974652883218744038526619690358102083093394973917538365635124287412339900240835662946287932367562262243008904969961754485918011313644198208617326652583407125132406656709892701650667525763897089748719576086539394353498878285184300695323632077227772060894586073915444285298970236484353263455771198978088061599189405409158820338052837465491486574876427894642177611464854997971588884983236064734382608060576018486772061428117844460270360345476263671418350816105130982554684819759256209092036644458817031281878733972683119805200379246016710009020228102829136082052613682409221117357048031155436793424113496296804814846389006161502999473637918459709378126414204913837528784663606696874731694360889446296752255199398539064013424917638683234572184597368581058614291306075181573998848494656993019555713749877303938046485956009357468418015723338569579028350979255932497665970937038417232324197487488413403008265619762464946743693509206297255720397437453020347872765444462197582031933506901493799121493765386449956018984976103132644612183838174548157828802623230592813137899297022406385933014720090614015444491574889841165241914180295475025791042022632044557131138062943751131232553383228715688320816711849021241019693156553060690865728600453993812136093426263386343152826712321811363575496354832102352263436904724766277427636303717445903508839088469793437409672928668982402165343762243353426074968365898862387521690262044348320022724487587132409570805214253458848519015956488943142134179159279704990746504831401358119285987276271941662353245063673801137512918556758384701734771898607885178783457623568145999883720349222515421318720502787978563614421344728364152830796139648521844481344082171357013252317427897719006350338666671213468567845166671519590537003977173837111673049759012464389445889517768470857437145040669072540937264165806946316459685021536443954710362414857439485437923591857178968567316097694387573884746711400732877068806456319602729751793114095352912943376341822295537365948133822589651328150586312377416638708113490707430581326696637303184943233495421804484610477083609549151502926547940144800930657675201080633115379773261331590143215139499050338479051276742261368489036056307461131731224715758049943194155514160354730522739458293142484546573366296793572295860681529778986134848891921540837913923379445569586355347370989797037608815777882180200333160106029730407270331456728993582251710940226872510224736975563300170820403640565895176754969201514380754093504483964150576571594284453388632867432945607730427134792677468323506778615056459081842383317576921844475182709738563774322065289250944671151003280178335563555047272016484089040737562745391858069179409607197205797783280892692112167099430890978156584239437838097238099670595783328572323750022034430918870951665642682149046739857870190613451845757645107796151139667616016664338979355896901807679662666738560466695906627882952357482728209481530695825514503585917747476422492173178601855145165888668328889575725761787818241762484961147527219101472588933336542379926128366347368198322495212158149152230067271858911675609658085524016839263068449084011320603601802595233578041887498818609997248750040757515024937638442011175199497477516219850646618201407725729684651865801640240900132933611336552810110283847505843781371221729509251886169738677936031959871814015740336221387771685275807776899819292766986811283670809886866972587571856036092908068486581717504317966143632802280310810025129077361271547862791282303641799994054935886338382309121623359829919944608978413354731540751959104359608062543591132196404558392822294250492345209422607182933510773575853268275096496065805643807373018692897844346883916336869630955411805328027853526338088625336299533214522500963224598299642432594399659474538150604527400377114975252371172267018946817842121597512532205876136615742662860595984264626604971243313176396256306296644999431801632433354033200722709911633013525071730024660371504822915879072358926462794550134200829025769620297758447139488669916460975017350943235536574851531292587734957013123443333318075325728522231562849887628211454136971769856421467574546710264195758144372955116867650249167302720956292415022318289392215102564208302859147921270842241516033199915332985311418500013734955187010695615449138774461718973443172717004468520724715158528322287937996974908405696270602977587683520669727925997211939729950567285850345812692966599721418891387577436097807568447724265749465420208283018522667738973822431410374928106594074417780153129207010906249935740218139116116636127766796811740085638996406288721504881342497349699607052670764893259360868829758447458713745484744774835101456567399308651430151593808091569851349258791332483607333535287785095919032685226658237193036279721268898336094687897793818968002469238957623005650453832890180223668290359099848463509717030939802315300689706539769855545264877247817454565824329297399613736429277937609262090707484529200227941242011734344985278854825039205428806143060829141638667601139551150734772277192291615950142006414535358226270800018089814029223571462167061806959949651583576892036900153125721266999705621164738733907947327866807220060764837500683808640044553510870493240252604174862974018989045190542723314048262043481759850659120036025202411010029262628934440882976610916009965007388116341439465482363408787142081213541909749931012567428173156497337058890386711973240664236405701873792139545693239488483049262420261104829166142269730126128122919889911612534432495188784560469826222532809136854385249469593119260073358770695729180935375043126540914605979133340762885761674400784199765588695677846371664833665217715549892473432349092800797799150346686675012503619405516064183477723733099494774802899554360032035863796691799072519911898833865977118767180285502136729003909018440592873853330746119592455877342319995820236404906875161419280848100622235977853254109129634100556794774971459297615323896890057261548024821213740368506986422266265259872114788278108734338374188163566482609717388373981491932995080960704506400126654525383914325712589289247585101062858152158464812282556434084523941338567179041083644354016069460668242047613291843081033032133778606755437273794731506868271018500426775685507809051401065355823008873775786437028366239676560433988989500960150559759019726826560833814864771826275670816357090042242629481153400377021914583859295415145773407287685190592516471589588718977659777174410121613518225459144960784800123113862846285116670812328000919652786572240788314838178084068481656892671984149936656367049642956514987141542297259326062412890980506055294731273918422445198963384600986372120126153712441899193230440292566094133416747387709213500565040364214241679294110081885019246969236071857498974198558490231752765870870015233653526538709196410939705750265223990887786747041560979385189563367223863106953946521158916377395448566136098916794701669301300085468852042388374286674287189005131664413623393325442682338808409458934180026748660179714010469923984593053805035204750681282010616318727561261451630372284749362434057671701086285033554627807527202279920736572132070990891205397268283600218475127164458302739335955559564112638422541410240916736274434404157973447340752724470989821538236911624306508110755459497044485414523562984028807140674808339055026221116963177563249758664100220951368480098027481183239759229977960415743221155025797343271759079782770401776139140736350041591207787453256862895923057479614981372612461053960188293475625611917784785002551478484428379406337363764965230630502147111511406014830630285690207060873324875845344704880637232495419692287326105767570467875985704921366647395312414659253663244680143871156239186194401995368998835254950784241226005875411474652190349781477669544024998081906267649425554379696751947244888697058488173629395240861193594800682393790176508014401726720363642723783751472522990478987149838273963107990036971977324646424894369787681336474719431737716325660321302149641308856651465983094498204079915618123243105546496555884750854454176994830037785397009567961144624046398834266064104626385464835378601357873358920093080085843827713556657411998768254544363241805965417294187610108279601526929566959792662984666613965814556289805535300095501319431387548330827121118003116301938910236968900823605690880331640088992331109448701156651376083762626123257672125085706809579334082377120339729738560675771057696235499390013395449041750788827877370116979503137411818834051053939362390079623029858302447468666971959857570427772583953384440174654696547869799180968509094094670970706536759982935691404667301169539146571629393399090775856866962959778588638313501778311112473406145355580521150633334185743035986622468341565517450048792878825561853268702943679789246694286749084345619181296234558098893317192485802870825606198831454887352853774475577210554430636987585932751495825063949584585666844842654470286239288522805271674401996435464088781903400708620405169478871670380770505356830763857063220577909967491348132864925419585973114671585702198051324510234466604615218703931951584082470898236217280745494271679541635789660388855516669928706349170971922994347141701505209463479014629163200885091367273290871533274841361353500426194670466967984481947442888488026697635724084762477608207498914404947140189818239225475571986524267315557325084642478070325697292069283779529842473049808473940235455889575271632859968865384377708107521239590947689509450490919597512713665661024955062724736735763633645747658108391268131812014395516875541791219353404155230969142573480520792739983588073649201110789323707453370660116715739793998542578822475009555664644211038530586036812585596917203628812485275010557688299542437867684356764317640813859734674363396338531216173349689266991430157092608296597410623955421719212680332048958706627198039500843264550665297237776828255653725529334957820886757278558073558420671291267865418291828777568229734720419690443089260436313410549096777849980028175977440732670179951523234179200217597969739397345083209646280524785411756977799814074703200969449791858356250357797147239883730652346753815811708728974624060220544824126941506497504069798339421680365960984737353285353103711166335161245653003054624627907210319634017133506081952906624262719859922560511957533721247747375606282520582983227764613784807784395797361620100421971855520494170876478390424425270352603402069988143025556229659440821893401771813657336354221063823698147307524005550519953969763446240310559271218193277885813550700647743655792598310309298931408818709020696238658082197358074102860655062360731561071974256956783906487480731032933131436730197934566921450554680656589543134977712683990630895720764675151133806269835916689970314293357457220509182835202364489372918717305347396470071853789530642890197403655415049687845969984902656439247232924237757864299229404975319435623411213401696292434990807860448273068063278472946115729046528161697709347648485025347428533866569497241230196170969170551512352339620917320495997280152605334365849342913275506093676722952806118514133412436710459392609661975768463420387218256558665362346895565405511372238223415725593056213127599198028875080152942158360841758601336820670320914704165171191329056800956818753855970244828865234009466804403719183718777667847944932813354268928276131871923537614604152769950912819270980405854381185047671550581045691383150610350060480738177514232350407827388673744178936943396434247452546488490057759668572387186164601914809560106508803653467021717345852405075016177087892134433479759292434484305643585532589725458465243836802601722748698036275135797029507996214163238927808414504735512517535746378365626342120503792687017901643609799488277745888172613472875803658851341153123203884468516869475211489973743518112983132199913712652950042509837889304726820293361085542625677115371326880663428881740531491000929400682965955357630347659352262391453358709582307461012758177918357978854925714145478492971491341720559941638510595658396423832164091028337546059951701946997388380241085404855296184469682277424432013652579404249187141754768730835808749911048096722459652085149638906112237232201093063538643734404092510471670302519327385394881545698470198503063460872891711986487678842384664394545896177627281660888739249862955340003120134430904117517189404413076025603005273835802227568909152560441956481950296838442793645270247280817470376104160572192801865723619396469771148155016860273722432426139159279292131025041155694095432110168373589733511904422254355068957245458486442109459267009436618291055850079720393499197880583830552329451054380402017351841896545579897464433732653707125724985321660279251785142162758634874764901533308608381604598875946843979676465232384810505246326146336868956193375482281856622803194659866849588418725522831912962845653014374631486952950604611555545853955195889938973546147038877330998036853478662841405065345156468598315142990292516972653616370001399761023886629467304076843196421817125186121687520923852661937671331588858713243894437404346109478651804152643613654117810242734094296576687173037239488531100048279478892158912670193723600181647995825629941195130073090432370611043566943092697251638465282964064292866897879176108857404957677778690484507039629842665574342619718767532332230912337662214431647740396998182811847780008736831920052389105578862528110202134841423987692947871220675387569977347408974983074993392326301607517101889267925143332300585334086331246944549461163966745926617186296810350434770248341050622758151685859246551436152417398891964903639078829542604642366911915975270788730832864375024952524208615364144740243654870538536622266352624023612591361682898484948129791447995660763846267359465439234011772455414992960145217886498859262833189130166416845584901879261546827058681794632882265976999712648857435985042097561479558114384087762559746458383587163399249799883958666564505562862616989143301762935100584403102931216306477615748159418661232900940777483227797904953440933308629504832022013023770816652088639072220241667541377793770221061395293784260481553936507072023382160896505846823000587327150272799871109621894618804237203261075902254225203853841919930250780207065341834655353795788592542215164621116715451686153603249356361652121697656577994741295541229981948889203420048221512619969905565831746670954277823472021841319452270604279428917091224161508952232336918177936576766939453746873492392319451104726578163456751816874617059149085741798099353956843295803833529094350923923304985987928487702384729482118156898101335049559482925957032770869503835344313868748813996137433992564933987708713698058159506245418001063745822477693051204598480979468198680501590326481253524977927495245686684234979719993370150251165683235596346665678982276771701493437472303740792303285691947299804800396344291042065384477830784585340594691801287881406702413017915393608741595540538993709505219407895077815773600462785951532508864505254760101717586179388021904799245438795833448170572375454994027682896456596180608546071422464976393460744954107585886339137113652720014287054615131662384414164245471752238548073113232544755759625248406511044208366110751424867025354419011655317832315939283786063889757922820740794910136099075272129181774997667073093014017017168950007767552249762640542327504175834634926719659746582761072088998583836564730736618491275200596169484108913646227731409196482145846425741848400464265891595025988426025821839007350267371918482368609886260729388948824775602804265433791185406038940989166025217568145377159691267553470281195097760471435953130362990553044902294251005652026469303194483891341621261404744116453455734516914000174608623510854691855158317377914161242878955103557002358339081486817582413308884569219088603068056838956287136219224953128934116942687399324932801783384729219475587457078717241165173619443723471611077063775475656969712230052614659145353064985217070355000832562870225668532623058306295574337935201786143848987985785968917945451695937693134643912237490894411951588662519456209983921499960486385894556762193069348688110966487745674149689175422326769665079779254469030880400300661909104906049512280025339708137080222110548627283961399575604083483089885367994752368495057772694838139903266288163799555466742277746743099861861086106437477524692243731831283389772443366596697545821079945317480709060305669488835815283455064508384779256516253454569622676311948677206000608425269575399331805853481159475562858447415962707958780075697196332773338062627557431661701663708009031401301962695847988146849720216724207225496846328941234752494374630613771578138638730606661689130634861799459510307037035895325654596961906372809424872857451056461922700350143170166011928230979010696374819110632842577567226054428416135378503161415757481296252005743542275461940032546660552876229853222508625399269257659197343766464115085934642741521377465852176795352443819067897829800595360209526252391405343869381855835108113145158688558918849941472595814225437515871542475792447280720661532622628535974994241568617915632124709142661802723704749712197031109319027026814375748714915149953632404357365485250973498360643960407617074114323696074128905757960083181233646155204600397393989460825035300866026502299662588555026674691034944523596936712616668281351039202396108135784874210984090298571762252184524522400136566354046055661288670565376553731950703289321243559268536482158089058393345805881602056151630944942830950768196644887639519468117204372352396529565852870575968012590623354370781554976998316766486407409235841633272207764171505070925788881712400341924005421388004845207223920805017743755845939336698232012639117543731734889219445326160749678711066409264442135198319177789868570339240219702298082800744659393042718149378393167938788902114091696463572275823546430851349996273987286833688897949762066688501625127055680530685933566666185695772656667643990869571506143595125275641712590367939874581324332104967431423547061392351196689776844393987067857321392317114255670618540967376280292133608825436434356558091896507108877687819244692654505544286315085968646609592626599884599000281055635550304993291674877346811847665849495192722642572686476831551502576715220702037486326907918770066063432465316996812430327396122612731430411783959460595000909111471193130163331119704434644339478304659519518490768449290412728419357079563586647993480606524005962218484718760538398035970425411587772541827973097401286949289456105226562941851064688015662645284259164196212578895456390360664857898257518990493934485153421091054169441527476075294610104173320347511802294168676677009995852237228671199770020588293441988161749702976078261022550399928031659297184593470768432739024430026376677068371166944707235972455075947829455562359043592147319235824346165305421139916786623092782158040262893937441007536241206370271681015091814418628434523171548223720863883135290382823257393240547104407203140861261910995785225166428266319562752373043663062111932106123947835398400168862156604639902350963887273140947539979949560844575354024146552817084753906176923394641621005682215999387300972668630031294310278684031863576786430527547982270762880327950535879247109088812379373865949270692357132262185478270172600182675147703977810686915250552587734043529710681732385832475907443073525545376127554447684701044038583150319226208730045851871864573114647703573574807287961752316071425598759261488165931861026415589680892985688004636259464832440132859454247750258329738131639310090516067104097071202882267963008755952509450600125299459649892826402057525580076871172077142085597632271131272827849245251191790034228385368569344397205821721519738502408393241825621369592937096432618187992397797180819232788003762109006653927846504264424174672018172257850463563187976958209622978717952658267436534954676632332781158485799857398761267214076007631215061644170148114370149196107152554307405270688101956312776906536701237053498617153317664831679542568847674212642112422509950425913400812360274953054284070314785688609523563103386882549654233203530056528785433281048016974177098777291077991581272782810009586233676793042400414167984974797339811693131316547882676198668456984149457437365581612195418644135037468669132908627112498188100742188946462163680803861736720920924860319226533317045319960357599004862075656818254255912677495287241110407827585656362259043197530364885451685725465508728008143441201697439586875183740434856643139588370959749633540741954378436595998604977021156907605868406821457909643363624408057656058609111002845160961119134593462420668201727100490241340654547881045804813068481988939964701551728385756278421509357193886789338542221681702506524486843096651053409734589217735372837285728037031127802783569655259635424027412200908759766020253613966122300935188801530854369905906712557441970453513691341751431870395524702423490645673814488462221628035095371281494910919058673026383609701205804033767225795658060220453690557398702077161985753042828486563290178720328677038373109464056452942497978182662604497236310553554249553022457588053057275017972052860917242495323819237772952455791170116380665229953260463921488944075335717346059659601769156430887223528195009282924431821536903445089481677264895188417183131360415351995749323848071110053897801605272632688082315589072723764963764281377954204982121321495195371281622661001990328636810746016617014978932941740603693637589091375777640672212045463118739079012271631744043544379208496905743017290712931554805877429388247301505783398074404176922407879011233837958223419915066834165330927073988069212952770902319818892852204308116473346530986216899079965714522628112799523314658698312917022194923620669206642952456510511203766465435192624878566859424083783329598939646594928153893737821842417160699428133073923640702451306576740363769076647879919279321501175944551853071773994389741109120911829438100305373493251642456802567251278457981885108336805765495565765828846010658179104996930295616409852124583469471352921574074680421720041460380956615481186943380182704628301824405888563915744002072488267964131139541683220762076216482422593987090656823528490661319731624883581591659804050132130731251362349027039395451350578980890115807370720108899340979522210393445054090894039082656892818780352024406126492410113589293302056065267996345045943722261403105311110145264373011084231166938446685744125837305417233339400014859374794946353827864696109002933511753025172365504332470518751903270272662886799241774065268684455826088758333169152500484523740941077801490285635466692245461274682351074939355851429904715576737201339798905813126740804377461449672419519396099500707627474847602753969713918471712824960414094674184329104012347672694799431194844167864512258227415355995318465763502226354110874126993287615501392767618059540837135530452609166092850735657605781563312508453886362966552414933479856868423979530198664209964907898276017124812825051368662691694827566236780966716794112191813737164186302890898896166941461796202592891954854426588286611068219213159139955282567627999323381825146306366992251544072553090975802682618922967942044556680961453778513591245478947613020323092705124736879142408918148634505463347168733297138751770277798170546483797305575184845505451495618818882815804660062244033004321843350495132230034210265481236700412211944707250904428341796720818346845864720927038627173403251682544461116194458980406320087914139619551557170757939360346089537527381576717570434330404274716460741962292678899430840519527492242037005956540912076440961493130094028155210965423093851306649582140000922210645876622914651866111440212857076319720116349800481181836243484277120926235715874329409266945397803221413554076779281609254230286028253138470485852053142042335122988404364457619356174202836473981080321043927774788552261813422339060781482854431964076697960220588382155444935740810962729750744175156897938902370686169015944108678603514710506298982730064067936561107518812208124187879751799274866179592710456642991280710912500853335316920199803214915951288513502630365213895774384710791269338208521371450817359733481287478080903412302337664038893582689136833478829974685543638118038446875217932777927056756636090412409446715781846230150252462436985392334034455880163190849174905950545506583559122031210464344294918658714332592286869279293482433546554710841997063772483207074600426198735450934660070713300341859086609803855657791328807191668069172021588459484375995889513867365432292951090894879276672850951637141351570698084997549728221545694697292386180872495979918736066670833607345862812342525579000685932541298276491320926157966764668558797901361975281232598324249730049169831885689477740600689990672141648870172707136447305899778107851799853286208083303973469200460268595334184893311697181498615004038392758728670924860087297005421209934000855830135035525700943296859057370963020254796778266606960672111087456462303268552162971894660283041375310037458874759647757070682634791150119756290893639856850946423393600443326170851325336774181388979566689671889080102705936885334935559569457673155695031123636300805089277816617018582172981486018234381775703346374559702358337393806416968201889452493757650883566739962605565067179697334771569589490322278202842416563179504190227424035695066709432199330150604872549083733221348913968496132113796661536492415753885720955600782564502222848572197467165786018334188690872619412404703068363353546071011508297442687988472746202607237219978585174564120627952224233385691338535964240750175382925180220329408396311700215774733551303632863505559052656223284933484553479595344860182976846544384539037704996965086768024841864751197530717832393669363054482598427798139289197909912615249186229701213037165091460374685821494552372142089499358833547869235342539351477487686595771174109155708894140927200650059477737877058388839576914751616975210802022342062861197025932233448645183045461154376010269778707840692554549048261359317409760278434098727102769905711679334827269607003323901967763872178783133521981406491606212257816185441529078401674725524976637249300631041022358485261427497735062705250720988586635796870354525227879421768811160770483943279059182500127876033171165689332592470574448616275244082592064825671704287953528148832296957646697172293631260522155641236436490477503199010114146996384730073617870994571406552370309420862546560057144621613495237780308757065312809374968800725755234722769530551280509448126800702739340812755167434319740487158246979529147042214109172185866427602434906398343057787896468131234846169428910743838627507088728478296987301829636358829527768783567685271778755231026204257504197898598624270668748080760030153758534144136171987306091616696140689757430388350258847248026851302497671498495711861963204885553700701725874054237517144390050788660509552409780307604838896643627808533381387471804553266115137093498644077777032225183760290881190907732330614040678239145255063671611245191309638510839956886293024609781134086868682812048707223017879627547759444047909389797092439780512361251685841415188795530203275154631003718973393977339278573667703944440312825544827909827225631317726133368091496785257838147954755476697958697835043054043410765730098187856687757078824889006385202617259350266550510280946430667976259265087220510647470109168867690701253694280240695214495701830761303525674444447832096382008770399008205168134933843090913141227026382468155597262500817917300312324692385871423228957037149415267055100179618000314292498396216607887829611211645392199089394939134613315948394917761758251082392342796430606519497256967869009112148760710796530098918323617682700072278430564025638996377335182121946787510855350176767967688732350994147699063100304128646455189479345260964350980267319789149597765429796184307543641800962306974078359980526298467238914630130453374464018264518908989969742078552366016306061677097857907354336070315377726078927025581153756680759037693846808631095014464777565194220744422449684507086646862970765383604293315612535296062479419293406272297998486704273755302616254363374615881304864269124782129409081834950267513061822320794580298272654728430915078765979209222636304426136176600098197342486203927342025778238172459421476332212527664853857423731241704338837683442038060961267752987999184859427906742402031807973036134122368165317116869036110994982953913694723419974327773288465826322086699654766558665684931988403945793998217551382280660281604976252460224731513046689427259307724040923377962452789245279801013823219052260971774552081043911898530284860707977447601158682339896306203569789894383618122260639397517402708523423827666581262107271579411976146176015377378257185177106562640827501499139661093285838857387666799630150459220407666284229594231263149763153847318070997207436425776748614297826436739296102427559259248672894628875335842106286379771317168065099997688398146791134955617560226674091822858265733317252761992940595246211753637874923129505648807191604872671015569932696653598401137063935621724530066474267114509758291848675418464346795659635840369404443745114567964114021403210462396235174780488499663150388311278617179684622175813897790202692004477028885110308442158133851351026054632519530783093429438073096203329003193289491966123230164665325071750973922288991558842458734836689727567947366250571423680658101662512556536218241217332297766393377566933924173228095009400912454199179054066359855643008180691857408232025042584648502186465647079698912337705600058487270062243396843046621429364307379590083682479074589510377987213403154946486212857675983958314049171518626865557845617447601099530009291004761320971883119542076443050578621577326022072268292590439489014441714221986230268671037679794125587222320900059091254986431566525908113135271805616270086060948538380368659008731561667392513794623980092006541233597495615457227442271306330629257818746767960095347517629438086932688596605824835601427421954650340983027606681984911770366967893972159970129622005377386086979204275821334533902544134397691807133008495661817659855298327073806929223720248161971494724893000729658536592077634407149770640326410193051813770309884041639338973914595845933897227809343630640895270865311300471666498337152366348365067920837600356199987355554554611179833894457447113312970390617833686131735965900741781672234919051665622944144407203989122786970731374355858047624090472126906093681018002292372570214789180896535259412355936449534022941815138923468985273857006459095016084818000223354328474629827317205752677448556642188394783833808105319537519948593874411469505499983242572087067950292872549229000070487836977928230419741113115863014225033995918592901332137962320825205031167798220126390501021437767642924817962411564826325816581273924877826938542227869954690322559220149361832282311781179117117038152397434867814768427840868094058217552733367855646630840077631224286203462294350702405846605788522482491137674645338126666581710541529054599736844771349118808157044662912979076457795582320671392298866761087711525540358813565117794549037762613160802578315969822479691207451445552333631352683386287333394695136759113222776588397433576331737936350425674438290352585030575599221038099254053298513286040172504220187892382338236186073608789503498089809275119746523375570151673673186866325507682092270746045112523643237931412470903483491646587014045166539314306228483463494914491730831243814709673042528741312002885315251019550267997324642843465052580858660054581581684977067839134802932115255290201197393059796497984507941205366835590814108947610277418525710823768074043174654730353714117222856629974214965491013985916270109715356431820518171780677206930843292251730563017229910224791875897916195157772391719289930521142712645263199191011551345161960024560370767892991119641669885037055109450993785598759032219631699149239649229953807690929183926238901075689331889195003241537536840299215510579834689052752570640015372042238733333941185199341969369112670115284996191706977434311299657391899987047618066356682543879825656754000917080688997371607657211080734529400974521696382979256545102557788978546197881872044750652314051417799395242984803375958433446072005414552712803032399565963929306382551980557373555176191802661646336918024709304516590724293797454018758538768919272595577825847097134154842103052842155591991863129466667170236347589323313841469050085956363047239166136739925010793020389579143944665480508553508740698286257417371165284733902057108803920142017376147004349949203763966425684647479896148925662506910864196670992610604394357962062104111591695753927082313985356851532440454238581891412884388024048240040834025909606457260462255959287953761739370052772733494603930528254457784750593963302302442902748525588951243816471623946040484516843851858427996504706242518288856622154879548854964274867197030932993874838203951072774340143250420227307144727444409667025015617492076045632004399904075100146638464765822922400822088028049434209981866698626962901412068115657171041562086179636316783971178682089403042000314160320805809249090960749572680623888842271809065835609356060801401905918338117035363103028019465556771239053061848142622434747089883102674797987275098247390818088607964798501620221118495906655773132859076614962539737365168890580645352040568482800156214756738550892535382973882138009892058704428668470291701295074342471864952132465947812408704034209932698462404885012822925537170313818311431893177783136116910746806939355127122032379588149073546368396348010957093775180329337311187416660343109637465047825781520655008590281937883940013679305840606348525219737720191300946240615699774488530315582267356894454007097590168305482268934776475695093475230931699432189221391504079411731866105729979452887045453587097336924677474752858733754451903138470634114525368728271854367705864721189876296264808638491563775240826417819970172547043914541699113772212956194774153266876059130303189428508895465196712013392737202459705577197268343993060335306123940770332456324849340229152526385617852089958204968411197907139136061756237157298037413477216220863120128796639591182439268478413831263178026223106223800981094447467183223764746674115599646553610922035874063924136076175625435754406379401442005666356729829411379976996008390631509220970648205257428908309362154002288206601342996821717653479080472444823712212114622297217328941197279463184285785976970863091427778971836148115677976477090431086509149818374135654188471395941446927835650404033516113416269691720938243254669947607681780179838934478854718178544674412723317043073156136189370060825572242177930962877916327836745349686917275969001487201638322140192323384402159394586037079400373213992474994935642161335678019567457585381949426541155770944856994733128376733823558223238345919178448682091482816246823855999570937369435958839581963699529969638854451714286744695893152770713134518080605271207648387988441342494167307790804135396342488603648812017722299660896735065811251213553163055863491884561549576922094293364871594575185071905911925472534988544219279652968635463243460306081047116172919748039373039451410899737479040009145393249161895700491991982074169339982318287761779763516769754466438041786792265043640840400653447984150328820702945088160215281336975461475935367731769496685856530541722986301258048101160155745021474586573131367519164092812882064409573830964010059609278125566883361289348221977232562333370576826988163352175655042463395479367274915267865184778419718477285945288519058778412602255652337912445843840206974789508654953380597748249548731823776193014916871322155206415309253041081550925322848271570617417085018341888171978540656898803852165302630274306098754675060437265582360982452873763939107618496372815892528751367477474944534826414445058906962058137938881744778812852483665373717477120255923995499671965172331935377238779285238103148203525390213814549607788849530038249500353010244911090903774823832088600432636693312598884386635249726133238523644854364576889995785309432969190835411999765939688252077110968092513568428702748626799007955033482175985695342012121147008738735212255395399002646728641259410349454232242312880546533725602422383295636759968919874454280392678562175119060250291310777693962061139628253035574756114126407801906385504967478493500188729152940416417048875376732175017534514643420812040102442082768035707334485161483565128536506607462256054364413743696721634450472580542926600700722784734914715506492455203717588821269531569588135223746495457229068047906258488448567891594028848695987693407567633562024058508212913126748957276665103086101234575319043812633001408582040295591702437391582453802938163339869100840228843807042140104089647306122003692173381325599528346620387111483220259952177451414238468141082634072424691296564243528900028167419540295744587614037607082905104268905883950492555289366529410214521556916261641991909150394162238160840341422180721083951609614030643576547385197150796614754746654763100640042551151504152007128181851989205721049518040913451866963182609190219650774528156339960934867848031735379205230744550864463544538742998260368549684441409724546082675871358011028200984741006252849207567211683660092985430587453334422806720820936174402457620636449297083476687312816415659201506596371349919474572394947676102675199206774204834395754508100163921967656249004308312556548925335011990414601912140902592184241086198634463659013804268366846907958591117632960626920234774689541687791223361069660713887255400551132346312503228945840970580515423987710455179255754715250029339475036709820023459061078578524428112810746539201944671770655752177335630033027778595160416098317956422013443344424812763707731477342536188338123839749574171508935518232139272176514417776903939748807554964964435480349089400796647619579480839209235638144526166204969672767224287230340548305122137373097476557083465080050932575587213949362184238509892027056060311115282992670785710684691265589201876622354120884497641842169470142253162115579253230907150183405510207093388374415298427056525487381437750775458953799657037776341735189194765731077333213206415647984580590923365281991936220605265539937332982239980338032008740326794570615737924260233724702481508262090548190761689940853765836377626166477104762068532979934875800832077649582218696309612368636300431688804703044837785899880256772089342739472120330572413877498599355650262359839171952558384947936819409826710275467630749982666847662318962680729836916663164132394065738390136616250682507955347932518093410580774500121697799659101620610868392172949297226712635572009617353520851504898419801552807025181766907340866481813907290672939445114094946843477887097399489226800718884493158427398908192931897076026937606083140295219444392893500837355589542400436839547693559236769622575288383046686685986201930071455941656808018293291464857960879408872614128520292353953296332663796763804534533920088175667796653229670939262677290004280024224603440302639346282307446807274232503087006642553367610217990288714506106020603139958441102455247264915755434511509429056974916325533276963314383589615466358395959703099573642845858653849666543065363515817902844880346683110280485333077796360262654025096043648177787218678258114481322626775681377991374907931442829580333895117024525634971199283018593439690788851554313800185344348763799184329619188759018053406184703647615906157887108049340635751534071244785009387114932161479018315607362710920697819284274766796354742660898287949303346544487710970801314570178773542595265766138125123492459379772452308539264508567030476771281643065284242735813791803124872187739772979778136990226019054885649463709982458701067112449534374962767002478284799696042243197420461879088336051625115891776505651435103602026583108569400250765271031000713343980105366475068830220056304501637350824512118655134912185750765721249187209786859202978957920896940107616109619092964643295295951483277806692509560021515593716484957865286421211277066026188676319472109536923459399854524912247787890858695568119789360391150689065665755479706229160930670949961079012602182002272680945449145719756866162156575257091885904166093741658877350331843664401315720646470582845651262852460724911735197115636603815959803473230457724648575726275144854744491336043310359228578477743751395173956140747472690626073706251058622926390371568067673056247417672804053943204071792949277786615815421514490356319895829903841190710935947071763158888408537860565632693450481183118784626743124324546531652675917327459304023872244139138916957594506545407262105664382460842571232947105706338852584685576348440115805537455089553210563892774895676804736065149488939515349244265322662247097376693038528677611253461595356102157536395263308690641177737960232817613956650238719887530474390009214280199327352132898174346022540658891546656180807649946768813693570060341187267289805679006492639668863808721650434673622877965026170462642607274326109821415818668730789612427410894841223521084887195309340291581334543303749114933427021460976698902161462372786192091401505549662312938244617777794515849241349895633636106814327169656267835413414944950532033013060609254139351248630650653241154175649358716127598962502708137831773487237107580989887370479334756294179062868473618897418361123180758318003082886189215211924090083021419835060915283441909855863746574356962104464974230109309446020873334780166772102568886854680671803748451923368762252622615891567852142370317524588141441610982416308824020168081019945258392944878676314685423516112032392050060355705643421715335474624610227143014380625377849609048163280030401895524861866327978576525041528984417844651955459910808424618195302509703962430907419515718502641757783020852357297813336943103651064837530332546094718125842559208950216501047615832833707795379538889426969197712361671282477965858325275751863265607152247311396566307772885290571902153955231485676790272954499836607608525837835135044360679331981491182365586917692596748709631724592076668268670916828025941512025437211406262788245443650633619311108136409162863572226082702352458685494510402555664440512340165991141766660591060783686434818678157701686900412461909696323003935378681827088173143344432952126369672475094504848499406551440964145626140873816097966120924665684803395018056825205983247861712044959031908133320838576179317866156194453087042331757420139622973830920843486338786917962438128341062544782347311909982889901945901061573081108351436607801275270712281581926938182947307598435014756998605112759137867287655107260013067379497933113101531354685623703072190028972355984814958516192400351774273320019830278704153503318099564303166314456513218123207648276314722195156153491704520778446660785597566734390707302015415048134828499760795900875647578884335490637878251173463355345004713577076025355027967897217567960864341554259030867140331997036994987046043962902445013708421911235624619008022636641679163813517820442880746883366512421645034021051060170883282875173935817987648055340777597965202666703047370782695757039503439060811169107828491215747589293062023792803605635645255902170518818478410683503357024380662511063970701627825921425610296405326173855291553150691040589337371268506522472092272277657173881300105481690912159279202050532241382687927665281656581461638530916193703379895901216250599086098799779665243894099891332810960194108357703860848491162172902211020818544783485234809014970057124558332979971229194460096382431062994259697202333285226920695522797520720003167399261505052528768822287586112880282072347846623305344702199008769471570103151464185826453815014543710301653381812294134657699144228220172155718531664745842476121508386355392814198940103702101482640782659876298459382328368684450333880862389179570098297237219630336273571262190210576262207285169008695132484584631297670107022591059010432592266833664742194078974609109656753588649177353632746964615654442785496477078312954736389895468244080616485052303528704007359608223992844135274755064979626604477099674513372665476382727660870410109803506244910315265501432846335708675138437017427827766915419008721395282038950220248591232620503740506216301485861498944938487839971919414471826172078091807248373998763104751530480763972918182845443519762514393032106901277660974655550875837361664460143282797198190791918610935902192767265795785898676217475798980881047696241200712913999297282448018599399794450230534585880653500447253112779314190312647953716418219671174867112848877433164633889299671857557940535074332299898880466007763628500651970257234513981893538461363684592746411551989771082301885980743167637369150097613441342085503028256281619042575302135913918793026375948231433925018322859607635769355949722817804424407147246800783242620817794729206593169898139894177622627209335496742231066090077102855163174102790497563950787898488353253781222194024472671001162649653732693069227084803558517233513606289127828193605523858512668942809127812690048257013282164866732045911071603214520056472904949419123632084578246777723306432497914168978859322888338539417319147826668776857362401564483575178510045976850270689914814206335920041237297762845564980855725015604783875947833035369591988164009784342433468277137462264660663473834678052177832256854318270495422717427769045903831298212683726176032029170723219781525642646821179982392611036477467848542933031754711110382671284282583074003664190952561315585480950115822602611044254820218493613077315584595001072090065123491854540318426305869760118957070313934510325313398260968790258308118871687434617881234755409804860527861102259675871308807206284539979643071888048794687032316565656328201962441238069743482782288196411649629918039190359774625816897993721499058019748370364707173443121283684923828705125708191006883958432578215144380782294324963757813514914650782222676938894611922133294464175755817859146645190671924406796427920692159624386870238777194445989770885655958595408212782629689062697472594940479720622726824349655104923559473098868508368806691152716652292667955285127034718370097658253037023429547755818981664705387356536074032051994398486993068722100291202660950580781551061604626713197215847056237729476257791174577977004714354904637960112668441146044343596090118868436366919420906036687820706854442165265464482266010685497926216605573815457284795978083465671832983286615453475840401662516355355410734241522236868695691125763411535474243152139019364590582445677881787295806934963487573705121883755580452136227897645216019189331862740702938647662979783002221002472524915397893027137714086624598000441785989802333542983526055474791926396103525136642474047512102693940735219691319778768571746382594994817649707858995152770137984363519839331066133442266253898674981145468434181817707446637278000490191060943188652389680643519771885666856611184999744666536599722229035210808901208030661581064719261093640497015417742513456216305653541113220425860522033914667948611578726826319800607988574649676861249618166434783339194526121199354163651467409384148866953518870198450910162478126613897861701461084795340172513061280235070368922591053472162288501775402481607552657246772013706257876537652387175232958714355488672200818694806055711854774789613855378884788318751523176519920069455815723766657807317663775039048093887787715795247942220741179723408494166335065167254006447083150674714998058740687030516364279219928609568027270743471567089171907352058563614252244070123115622402119493475386206198682756425510926671438071475597872057330002051734508527095792078263714299985516479167014887537948949343649910636912613510317381650470911386534536798892205904243847115493298976707592345227390138984256819588424628662508114994996637759548016208782169117584189318645500816362462571794706863098910210270068309347171662362842123771900684685991887396063510421601825899238930630094306678329424478912676871800130831923041673131948253013040793295801059264032604529801973213309755697557153706674252057439093735203821756191452211726512007360356167049492400665009180021727844433356750021915478796295174456487903089738633089148352033226385667668799612449648458678656624275977357671223383638532369862095329940254390243377438893242818213546308741171035150257916185389978016776991637301988902652668261323663411884002443078282998328990460644445319601996280669775545669893665210714059338929317689572132089900199451209761616109400745272570003858714361276110325625789261416405416290695301878541348994100616098626177229441231354143812505658416651481297611163743623345968609950294080897447749962346013773931598013269162972994865623477438923868153703619154370705627667773501669664795933638254628049874745011298350975874401064658950435903428215004720959991800582060895863552789451090083684951886935748867042556569958481722007517870583647767562663701105007383334503543652293860069448103383413424079954353359719644141611660905008606458543117353941429463888628611643957589391729645906891721626900635316353269738440247955187883808723985082698098182486503201335292555534509428398154271206703326611317930436954422576343112473342271714952828242653685754939030743798749698723034184376002369834158507089370422468108844933806590596314249440341955293761264215725108659483408225584329082236775461298923545274342394920347763057413425112850575057311986712668234779877630144950021810933198596438051610605462553260552026468084782275601361929379746976456623739393790766583358247606833150801772184911592325069147890646324010807805941941736683324713337241361295953861153293393107312940978505673065605767153362012887301083923848056125213204012072435066216072257929251032175207213293242222167228658413513131163790533984615614677387220254923852570497422131361804476692990039027343977060101026088539534582945189632326362217478162808128336842933417957016515257169621419903968708293063515096894477295325887801847368763418598409717591760032502373715795395261768017212567763473455026600460701510176804895615538471685308102291986046278504155484929796005371364254061208235736514945682327977235892219050997407947480956211831145613732382673909841678809271064362795277462992187599391857075583447820289593356613173066393597173250150052776035581275598009820637194059363353335194338568823719319910433569391109593531474823094600152901150284908001311248648183836584009276455885222871208686079647237973554473617985200170971427058183142196715654891629644028460311206404353631718246191995460496938551507921889854485548087143612785665142957220179287936944194399323192587714230083006480745582205463670914952637246927029120297719214699036815789279725162610989970670835251887305808513566343352704942666656141112080298023169687880264091827073591464941466611699209402712978331128540787897375499707479136597285027919442311218948751635028998189719934571681933320867711166985933790894095405687750232963100067293647272525222049146712905832082243403769129063230117416507384960136135490816777147757668324028137173940589635551172603500928114070795870998921134851391199686526967083775038270611425884602920108957905222309414000200981341182715380825002385435934694096778726945130622670417129387197232240243500552959707641706860113389383214548064531073109579427474568273399277598795961841662235338586456593167978103252675384031406656371013728137134760252726746372584004182755807342761590977452292783550680267377155365579853117330645722001307674653597701835875202511366075293741626981749492917921779594981404672179981957272821256013413657925316723764222462029331537059771023148015212613052679038048561269486787754157228890249926243530421976730007398338304217203150989096382799939818915868743179817962438646936708776631749761208219532134405085119505587435272371923744294988872628117053681776093746635265115623222478044987443498941801553527992702333935757734375550720555115485012348335352937662383132211608043860656193234753163622861810992327784498631217487849468742917142709120051612565448865473986018483006459830647046573299411928103731150404660053086949116724215806730067228005329389825655689992540073209523170710951180182215359249121151901049690148794652472571629906839020962474822103856286014964032703649341847641633853976015231932693750630274722996010520965611369258730353706437457177325921731132445561578804563408491408386805862425840540319416343037395048378505719988622126565792258491038161567945809291763306402159969515492557843073180126000129138757105145697900698376304549716245046938994124595363988412952471571787060612955057711916652368207845696093705441748166473889616057932845656389551787571922498370471383223801734083342698978961894360650308650427099746605308816956749264945106199991379234934528155604752439912891305547774489763820970915987597621273932390495081784092814316055370351986075975713388909994013014124720612957347406120719574319832300699281642810774955730226290848164582292837277169996289105529412508120314220815304017485319465898625234590534125694117995087354589172025708193000519791132223414527025893955691390341733157013753032011253185832364295745987133627589488531199467986099164371414155184575392632860871337607994718303561811456447292709688757148353253417128221473317155121664755488851917340269974403080463187879921791978842629128599770434820795868225436022727852716251011476449936908391155075961412295135496687993859685805520571094902210027828999512041155646051699519429848568267317770559166234351172820893267798451642363175825913655622817520829608450425771894247995943497605854907125850838788812965700070133304378659693982559858242349552396887938840680431436156688174909038136306071874479414279024721618264613251646465138320017504923878819309813620820554050919766415646900132868764370848922217263268136021935843546491256828099961889163506610647064031764287809800300218300562549377828291815976182461960008754677928265710865675923738699906399842625075107490359982080793094124564845107857910984394541365880402062687581438428429381814888737626762757586232375207950849504314078940741767743122503370723877795241990575761024617824539991818089245425104108044178521835598571847919242544998905546833348531085215616222311604007280956800711636341341469583426278386763454071400994815569044472628782495661238844831006973293480693294545285992989727650486133309611540686808391227154033390273946381547215820997409824140083740011141921274706672278507311008212756723971543641136738167479926526658912960253425878514908123316025954597588160272103856875418122937540249828945067884764166914762579813282226261140106325298978848282574892590876405786089804946515549013228729625802458896304298955726434396104826629861698903337944688917689080953626938675762704190647337763405032326019058075838917966394875780955001203805604906034685141178508360427859239541818368141645591671694105757902618080681682817554058417329055338107625120849675122156216416774620277474605755968739032317499574276261355529595362817842026679972825645577064656531693419809277004137611255174038953634092500957118177213124110516813319136126886052842081209638037035375961564023211068859960222708863311971494622596274414247255245042490307039813967554031699342669664247726282112312410046798236104785426188401605621383884969291496457188621507200163035622089034835455500743150854511461442684665142935355693296947041202895982089624309047846484955514056334593737625771489438696828526581023818604576382931543431513338626462234070408936185494116646975641449641245689332030532157473036707623644573856617333179966029522086708328856257335309314059213169931931944936247585144870968312253374691026354499861388337433227638523476630741550748192529566635718635057239268042937570011671964651557517834798639532582341023958467211758132335467030691372630269051481993206876934800099039520714933400538803555728027138504747116620915626221956749371692709128694234238517497340124780921008988407988874617500754527024499493010184041348063502854730305887259082849819990101480501396209022160137629844537962812465055981053964956638733357298748532864932790230814188292514333047972860538169080695639149593464566563611262643234243734960384333063527945289811643013528501085751812594642190679286249304247767748716788214474644026557250508477201962593483024743218827641575667382317441217463239952449000832565730362641862605815127364114189502180608582837898981254040795221957305887941458269783200927143153087453093015754512030161637096082940227381627552299069223830141121839448944800437599966536294439614989843341601002046802074536553134285230225267179241691912299054146698469918855023548942449043362614057336714998935236532154950975931713079108004233265241073092876187754812722479910689700129300064557521115453110311729509181578773051052283112495034953226899020144075988075553756739000833799026934135033905372285962532709334918515223161630105500244334288071012697782364344846459685351874950758220778514381898297846669546414946592955367878261253748984396654662156741235515050394194064890377779428928964368276023380700195001748600778661155671406135229413805118918524985719559703496134222601676379035133845861768982033352834395331016637314928796904274789486852272965264638876793066850302606240547362567673135118293634972171672364611619582549330557251808006716237319882610054064255490935155493541467679524162070731986754306268957422449589105737107383894054816333883499773321610129982516548209626092487712224937359728528232361301825489112041021383896545028356551456805701953366986487293901615862421258652436100488189198481793627638387408747890882740535585965923841178552141029488724252074098513972945474734856014002954246259319878102432036992782116818941141852022845470036265951711650199979882594095258133003711776046386221646478812911952662630030911785452316484076135790602964288519595523065023219764806119823819938230643832896703736029918204454496109470472633072442511274018979584707847546909528917609071847553128925921592303194129322745347979581910010014069823025211595492585220502501810590993257562020472299049076978919941310348364920191376712197498104391643894976327288388225929027323614153655212776620302372600940056203506444739158941766198291110795767173890758598278685972834430888008319091632043581368841062133972474115990686667428131209842106616589806047928348947076961475551574687941243798751277983943608136274026264541231393933129752787077094360806961271566596378196464885738121081251666910865333082822127058727802573266597547699317608121450250263284603894453434889425100116671362037170656148998885957901204827143543044040735776962536741219245389098030463841124894382917547424258846704352792250636721063556832313418839514722734248724507879190569314673691954587100471048962254966652534685739011410237084245681380046980545464550407598593349527950238039611904520991692948305147138389877051171611889690829176827811694884435212583539884181293567741562550626448217896132711394047463226517050359687206836750629684846652542880322745749572171993521748949761003390165580238466290217009491700018627136990050262230305567809764252731263917121351541519938531924738527059821893059100625247765122304335621384615780287277002174217977636252489370228158946714401192770245520813085513044897793984690789163101034491149044376073464379128075047325672046577411904732803282811125127149628914272437975771871478158718668535225534768484674481991208581888830836826060008525086938470119632159003874535084458805343993037703395322301009535812415678665359569608042067904031487377969846699812496179075983102495064381678312397881520212716866359545201604494294944749399340406323974435815450902492518460360602729988825704562946148712512219479979938975154202928914720204700839501258556482213163689444392942558781345852329577578559792159089549929513015809464168974129238506771521650047048002636747407762848325047754724523595091917106882211106137874733021116113600420801521018118210257890926700605749286662150747545428462943191097661760300549665797345355747509440233165587282862210982177582898731440782314320843237445599884737457779191688393467474911609332330313422796324257295700918662044598090543068308671410376919705252943448565072388261256159727630314242439755877264760670996611110357801318081361635812890469523360908563005870547842346590450042271279929626770296403926466044129039419839794879107847557231795733830821171722262778303269178984568042557814463000328550580734899027683889151079309235646821666121799096013276315964824764611208801935174369091295693151782580939499796666910054933881474845286132464116344717159774957866271189858533173064923483958364017050176461486407624088157120862527121486133276876526139557715041153339574043328660021518216121209812190100629517386866441153119060545298017733756994007474967722588216710882940721955226470478214537026833749826205332729195772596498191503261091441670818014237201875169587246203839109014267984737635791180243533456073381636173482344765512469427294674114406488562450318619336345444174578471744097158759026447060893508563835591528132707437590892082154843545166631431254035928756009486778316227078604977621042784073315761859687407216169393290747754836083319702641116176564902548500658174974893866201002810473607766457983325832800996203174510806271388818672326137920739323573009647822369922434149060442420366995447433275578512346987284919530632647118831883456655233301821276538075395623591565809843777069491618510298678283333143711144178708384293612866105729767336993344272445350268212728762428791412653237907627605340361169930283953814226371715621285607776656339512334076161043623883906212602008209182055389433046784460010964515954370143698005940070845759624371381160909787213606492662411991583521008940785314255909617451207036752082012855822054473167448233276201416576790573882878045380010269611179614411924359301990772583117484121062432846718006727811617440583302971404840215079132142348734533137700951948453856150218279663711949054950648285584341651764842403353976893377887048117107335584493835256746964044144965441337407696753345090534566073089261630403381194799755098179498524582389880898714351172918956754952224696955922487632389987811642890948046629301535809317154237846748486928487972395034208508668587987691051309952140661462827087350198601609210206175294404384872099818370255521220193935820179342617682418114433121197398670324533190976614036721822307912525194924254973011763618393937533069179424098940849653038196235298688891508303242122631927697987262049731590608977281534702183890088240839900046254931122684351298249500776810227582687462663776647570557325340899185956837259862772690682563865877122100682253409166590227711596918048141429966211816277765031560675608058578182503619797208725209431387995453822401135701549043293255204764672981840441845469863392321934221161583451032941737174542477638190230790593632177683807089887301628746052484380828986157759161079650024536908646935785566786240457580787294484591281327131574264003878690000399731528319152310456446320191104056045010489567126386481240850828763239130776188394671976216009964780135956623877367301095669569419156621644302118144323704564199089882629072209523561514752530518225279703405485900168681183946306682058583156849496043275005392228637741096595791668373955326040986901892769579921095619904405854740659567061353984229118335921612337265538401956852612089693543512580568378642184002244383784068595253836028588907890903970486723209992838341759019338820075074006035216916146548105527155667978753784981363012100987001255375261203268008978254305866745270529345570620195355069643564565334793303128809928014753960376300243429066719221766960859350450588190103344916833811038898703495767764532914414373077728792489126377730910711081363535095811345098219653182858681352474056350038748509727139669641443113349289695637866109756912159327211891030742183621163833820119501651543043442195490975136008255344180914456752695013901529041391550135416517640109087468720999679259527354446581704817811842023212223791839008572048402248733006363573739280199637293271774299861464894392329153723322471962628199037441326042849866549713674167771789205809292777152073861350056538713981580822767155312597176883237387966386967830426747958127597710486449402212125898040299824612203682116239824719367269065045598799811810048920456538479274021605017644316624756418724977281936590043141507095628971800752633386000247701957978350551871118928056597307950078075996160566617391790496813935225541126648797621105815936935863477105112905701231993921510190108416648416578850461565031983239945105846273070529691775969047446205821624208966615098253624332696525017751413651210081207802213661527631843830305664202295940457775469184616583561875479441270393290977001273611593149864249949859806558705983928120531250783145093023872141498202107546213074247950970823852561021320099842615111100549578672544790311270996026693271492308843824702768419263684435527945475845693939020955966636431710248512675597031841085901374206235592252905014656268975844391290307775616423105604980989248982052135106859040820274119015001576970289491290578358099422949620341562118203984747957795479909726242015938388827157297085928030291578000919165973662677713908713576063087498562803112139308650510946654426655897124823156734817410445040569470258737049565507463596846075408130585636972347919027665627652379777599477505394990692633221032444109959310408746883427211235042786439135137839558789083420921757974960686880057622645713017920214246450672628537754403774676958921485438719688820348635496231022629820742047184582084598206222495833033823148865120673234455186964505739494235805035436070555917657636580772826599912693149589926258889240981996377602956630241430433118863193413070256176962181715971617340933938817050839632867363781579123676115029521078511579660197568415052290734654713994852826923426037825576267893262393824533588874002972263714707628248744682138506963352359748755283235646728587993587700687115540565156935085160491878487529784352760648641700992172142631052558092938278991710328022278614752004140892261105132974363288862539941350638885669318166448393821542001478799664673733024233486503000441818318938405355687771007053777197378038446650022502979221767248816896449642936481079427753841921178537462383474478226928661712297691499784125713295670348630277627492762092506389708349584734178465276712517006569040097474521433871435356524786743374924990982581136365909429192884329936701803663336387767906291853917253355352566734687609955717829296559820625679736145862666600515443815473933598655197512841867008608197763442201913637872405356113796690385649864691294752860112691508582303319640593365323057005082918050191251359850347200077984395099391713962425254313703292913506203766153407107907843556566599096701478601556479764197871609377865234417296019399711554174828683129109926609661148015591485210097179789888006792666913282090789060391932237139311186147580770687750669260904436069081880499509784973598949049146611097937362804255717178109049538478661449513242090613082490432302574592867738380135256174731446469251199420929947779354764401082164152728795770143414608645303493541145727278100059931105219532892911826558426029586554523894482887587066734136796635086612518375360192056246698656437983485847711379598385914398464508568525769832238096565122526333334756759589373126473980484309273893387985168541922374615158337823469325445182361092112220220814432052077132253734605999624444413803019438809455391318913703728038780965462057277139074715570440953945985848022589739335550623412972278357290445721543673225746413692625459204459308024259184971909283845260485252031805420898221319928212304278390198195895381672677895945158442330710951599916380429225325070192310892484494184191013899132645852790099189061434261552369225354195755049997736940635608610220516993481772135185581575224183766902334354532603400615279235652307959639649455259367477337613210652663372325056908936253308065053477155549414731747934098772065896282820847598330263492261571896743424649113067074587130076663719197597393990403895657896057098690962976713749214826153109543464089219687743165507453711926005313111880972854181426802347992653839253883002687823978459574754272723223845263887434862468863113481607325723576362317054292661314778867991500100489183403861141926551741725020425959402823379880933864922723165712416270044985992435903672782064613429689637355382477750304352532955564834434618195391590794066889640614316208617139325980539445110005524736092121751330623404492568197394518300337934440800199965841779852075860659633283858942606645450032974602606881701892301004580653332767047204338902282263397616144709491625420539522829680995779757461575401742395150300857074827077262945939559166412197875304013339948336361123300958467193695551367027107226699856199733575858953126915426123652310723185036806447658514493314557634187687325836567067747192572082612048611403990376603474741068953019988789152876450631588403732424212874891012401393215496212866472144514294474448655110423282216438004317476407928172858881748824473942024360284074764425974150971603654891557990727262124832804936063901567139978206056810698647239541375238568354182683005610116210247918449404818748158858822714515319306202678461232475438203479913486017416778862278085321889753953398194818649419170994481285925391255528379284528686366888978437245090906317092896886898540213776669739218029311519991201738463505959025940449464390578180472112937060019308997181911582496746297310587354744578466412381149222619906543536865994466665998955904968399723992060951703251967488646323219095356671052997581411324454780693322272906774477153289002640811760386376817591766637014036933901303678230335799744938728307523662056046840406142534317867862169900503573728180937547090666246280390716714076836210874180616133375678560202550883078096240005732239954362747400001217637094833634977099892379419569831552472292944290532438232757820803402415693004011602560884060728936050595418044250246628551892671027158313124269548872217311148879530848809000303594594247929290706233001423427146442204184313824355626594821786543364458855809086516531955357338433529747464680811474194204700830168503471093718592353858229960007245744955253016763686808663923564207726255192988981932277856824393410103290377396224012930093179499759050399097303516318738631905189309275442852893933976389617949080888436943563875951711621562209450896301683408393486879874394368903584016857439325926803964805381144864384264402851729851237662242501823071101681564137234675599340021387125176366853041657647322767828624032521951693620563259790203382645411199716140612612315299609466714149133973110400700235510773842091823943944381751901374170430083111382686318481325578008272738904573745554073883795600748269359159540368275678528837922510911625412945416924432944933037037143065991895503899257167031339871522793115901397195363699000928003044783366989444081709446057825903331351846091388408371117634386107075872703708435931624524333391560103878722243338661078538349519500736718296642499243376278208870034308095856177031635125361751928197927795438542699544588760618472029552330828816295523175054454921794083998598518213610936625432496272049233545982498148567829695870415193546849015079750684296454835702969283618262787924016034886590698502806846262814107923350000925101687997405675968230686763259409171303745164402322230502833023522220358353673310983042679637802159353630316389455002234155118563364658078216629534276954428369177553346382351803564812951184438320767216643174811227158205510892482795684691673639810028144549031701737736277223073817777274140087070951436660290626931971243717141094707982200188217554412968693228016991984278438366208980801369069909230878629200736571940898972281680351682553527285080547367798799904679123794303164475201586846879657964827854929497098441966311801705069695433377402744426521074682740848885006000879673124814537390008682684204378512583268713430193751099070673087758973166079154027533701784974862093134054985452649152668062150626634933419529520025150396886662746985150676327374061881105280903780286035847893581242734778802081564527740231427368892566081252280628721293498866614941412472462579222970308392068875617316418776561423129762217725806196949587656155736326967629295710119353791794936467934248957458698611355369124191702927944185113391778660569445237149744707752549887977586656933006418739469353888042844830421783917040726445806250856203676336356797908791248989746011014939295948277651169840451647538317195147248378104320958749528265287857114159771579317258593055335737287783145712584242225216414176497188234290653321158638539087824635104652041769149100176480492341830766064556438244176085822177936614881317292489681200863858486511705947119944372802986243074599101419957550290314738081154600977714201017978854317053245287303310538077734460295285428672266870638695256989044467180870641033866854105064359490237573702833961485374654540608529992689715481407164003420861127588471614723668119201283859136958672637700334525161508480747327701489218016464757858524075156267337652781209781016778448313852648511258935477963906218426395441342417559854985466476520129963162346299275397135193526861571738080576884458150849093610084881985525357707666576394879159027814550839124026822491683153708167812358797670429061667340671716112872252574381269732447914094048319452828565953454715401731785353796447174497102893080945758293945354536689094829462159571355844446863123595291832671172152344751320154516062640774892236761324056601045014130109209218743505333807327804352543026073583052792684461469600109085993021945759976503772686762536058688272975214857039359124093786965672201917306356996990182507366026961900116205998010389362750755684212620526865491930288540973414471425456325810020870185159582049161334708935739972093552495965394623668473510798709341356929423854487090179007050812884242696271658574413810626506194107770814915130581295025770564826097830047938498442624944753010075333838881760618777560554106002749869294774513765729360981525640219777457111322264034348657524563730196558917805898275349564363907837169075081537912882950947480634276804509799365830439953651099347914038187111131562746782714609537228081706511240127824624509491377183855943158005052302577307717340901531229836076826622812168415463579339872287659063263271489307767366969656209903698374705563505864170831824609841458739651905773747246184067921712355809947887609964994820096755662118706794543072864179199739890232731760300473212372079615716537423711884473958383579732283358919467853970280641777431032813815060497164255439642577322226637587581652617524706872636819837789141351372646991594936558096632913080139323281163804173815210824569835694079962185370989813692026244167192397500128464479597918346894802339639710227286483589114941660268162367270349438315070798430624994814772832006592800246817532835078934719168079566380681582234638337721826869241380228312465230409436447811730728225362986624340974291800564121701115688860564199131532235717689542872027315164536731382986495863745602836395723452857631834733555384337837585473776062008334305597025828388329549818217165197544676060465871751480960357989858700695367937803083790130694178198220732497372341558206094132107140590290455458079545445047379023284072254567000863066125318562863750063905890840412726134726758058432767124419963279504775883723084796497248680872323876137917947395105996399253173697478102301043135137333855326586538376669771385296779244224019496545368391718465230785702870220561282312011422657264953193599114925597000365869958537570752490493352110018406247570790379998859619998259938815043428973703282253848800520120183292180294234157023759187605470866742049581437224626714391712988206294895111741413580649131227870089259081634215990737264132258784953270321019703504908669494158588287423887549104489618492518480621667362515958559246193490078644470009104231714010151701486039112197903065025273448359117917634080962821562372525465213453541102579627923633392647656920959071011092365520245820594191231756473319430046597863252715803733879347590194085316735629398507529701417533904101300384481604758799751416883901407179528078745218631657490837989883179566033446099045058393601240142705775970278056104796999307123179404603527720580695654878982177093399471643701585207332840630248410246353674569711842733890627964047553498746916289197606983063325204047005344563254044428777119462108049050073305104273214604616286520702447733193116055976791675455606717881043389092107110794302000477246114886550641942663267951690542435892214409375477830208816388493301292681395545637282153288096328975851817483407656019641753995509920919471270844017592451954011142536395779662310115093046491145528601728183521857968478542881326754341895631862341861583810702734548893611653261376858507348505291972611742219040406473339653569428175600044808668483517545669280222498433327821559368437714323626266038827764094499665171948696464680259552638220253172888605366828143704196350521115711477785873074220691988731310223974693881541890588035131252527997095833824406543015721172983630277419479829031925830063316867627017810986833315456481610494553718140288568964801847585935733927842298542432893353149858213344690167602268180127306049918610085352946217182541610094595981840476878298382222968374534998990546640246029648327705496030428984610051191081098963304114784977095122166434741932658277246193511218712196545737261996757831824715223391866395512604866619462117491845883115856293087852095470750084907608508366512069793297628327532774293763678447884280375792943764527069454932326076043152809053026250809725835434752397650371626217542220024704160807167847887451066876812641239815566728881859298449579373457046231870231480380846155125694667919823133816189647712368587469199522274984677134865129990407563558949542415570199413833777650468305166544356861785376633020811262620706092182481561861823481679079562516797627887337415777243339375310465084534652783659000796840629929459233212941760752362380130423073854345937791343633857899020671665204645409963075800919713328204658936598103057095348408677826537190572094515187498781906314383300868940437914519985735372985604403040833735094255622568625029306485814570258016833397649469540933800954634600561498187461827402975222998848299467259504959802793950262370308254471851756341742511091144566346144599169121045428538213023677250165907324466742448500320904407184522946716778641438764080152610749986953932005309329124969785424063591131998041465585928983596800071885416758827564197723700258162032927050736917871555559580038896389043830686761270111226239657724453340152183030068736549754722159628270207450287479015441079288577394883721934065429912478471620701416923318045011071829922002545098967262443869202471524024528790586502154729501290078279281308972878704874717560697521865598184757597129027867017258590711307891726521655907198312290505463929652366013919131959450534791759767819372548592389268067630696039538223245152222303690696530776938919545887312819925521487900374146843780207937067629813239967665234696603321533758163634862798249377795061429261073373106850831627421462016890901779264542945853166212929284037949608492838240522957805164486899762574594901361597628513021805057082882492184259384767585016503985516986893774900939353079348001543469601314987838063241627790513746787303730030717227981336647741490944756061835461129437605535742819242415946083013653012946191188974121382460320493608094419276096300609388662959998626605178133877516088947707798143829311421242605644100025237687054194179147577244349369456150722689487488486520335604073305462522524093576615822792010251566609433840954852300043345304997772726882578428230014923839019889287243102527219947888743616893420059311871632083547545676081247761286795411386997456436055073425403310722149755958279963299342639775880866758468065273357855973486085339616670465556437507552435855041114460668054065034651587605209667824328090429146852642235630004289944651702899599881662806477783680432685716383209300773137203670081588994899560950125212170229250183150580231855348731319172531379698564217557988901364017558666955687498775603212451644559199156383270481008037825948890383506556677332893929005896516593902569539857383355825975590363864966833118556501318269890100986032358069793031089832550839503171859770061544657265275212559523473041862398926477280003548374807110340890196673866957336297934097891420897503093501348012212759877867961237673154673038998765367443324365192102599458898090676687116775003532887658195186307720029316943083401793817069032240783455983927549929933359552214282596783240170840648909334599234428482031967455412920713406796902819272190367219322038448126284935041877706417987739215738531859774317189075038468131910838425527538276460914126407386562730845358699647389864228357605292938408044694530087952115650451156946707471673205458463882802301072403498912713524726959211511034063288944141310257836273014811947823118996728998803872945245542185779734639555256031036945073905711243380281419359438819377426090780147973900293964794189229912880271315760230689130673436014649267016450691419038068294526550955476638106962882208421050573566331709377476977288495777276759691606681592178489969996316342445446337124649666653515584480551835444444259689813616044525297826133369404052131795246997578011401035666401301633998878834514420521748175734988369496691794827116011375612944573269066633765102585097454567299265852381266452030006106480209321932088560038637518667778834715006424039482476243916469680234176688852049771369442356764830499096527935903222623618512464533165594848761596715079604859160413282825383204237215157474265941126427783116014564902701189089504035792958299830051699320185995538850457081069363779930212064433929657892769877992735862473241552764113225056551893017959796630810781644634856286287334702704832444299056000790997914427526938066345422042573057843908431900776844595157569514558061488254964175209056939763879333028352607912246222925143159190610944572292496919523769781588193643152040634579661598079331586306535262023243789474422832863224972637138601911277594750256567696585407508797014204334836093218538505283653822664554772685261078635517146467028459385818054369371417783614815235236953716829113954046141690441527641578010992287740668901950115448236011613764668213866700547594945728964114916782735128761272247766037833588916692830831968822718329177447168731964598209963518445743646510812929156010297807536009193629096997955269728777914237942480052483470306284382313547968139044373288067825463190579871043347517371742059614292595689065424370845769710156314840343005670335548431050836853189551897095775492752342603683725398861713543445175459055479128219503727210577310058373051438676343189161395409755125228668100356794351705807472336908827736936655608752634165372540517207594065723502699827404854479386396709983672634895825778540362598666050628362250189355481479248309224176596842733664705749234434747302479161549782946145700690800739749805264019938181755542324309080389744587348760867002576454585214748009196548201009823666684613314505748382736865256892839179083168305144247343027838235037432128673480090639733015837004405330596480225816046285248046923217740720070226549779549988280893877001034166938494146720711399872943181113971210157325336969502593919621582065438995596455277280312188766534868413079011304128884523999026412588327924816796398693989310212869135040558685797372989059911391580845410250514597464251474592259490850732962003642613904574526605379985337350027151602188169438019307192038693267205539934501830878646172106466961283649767210194065847453686831410832689903748884355849514434757565488536857746373082805038774565897507333687449688931035744949329999433838003316186257907669044145277238961957571006280187084944615737185200679119511031243517352802716869036334369831869816492722165565088306652915687741464735570246956900454896405675148059287596621231775491378564806695888773965477204477194943169288316251922023710866155922112927570012723693522047380783283174248913485216676746634595166466438187816801034559939843302390257530665497338482421212131986666642950807699256376535071487906245516893978948270254851413093656946414235226418895809743040477388289125519177114414153774661508895447416263838881366028893426113172857686198290482182565160270099746141567998583913274398979200790452542565171525573027682888691089668680588184574280101246721499510287842395713635946917238043868660132401597225425287182038485544523689251932431464276103673520958428712074449889336329245159822350204796164128493256635451598831691991547683695167489598499739809063099906743527707558007843357156351131856983170571750493021657700032226748745600038386999164739888726185401698645896627311369786760744948792102637104933554854045680003823441777084884449404965102793087024629404137267801751225691630314538735083457791100777189237586894682298283507285288620366631837396706937302144928992844067666887155906274535858390769688776264358060877262372997773551611079722284271684584042661854637746777105760745100482028496676727881644345099008440651135556402375066402426710945976310823224662010226935698665145513625096825164402120481809438369177016519730411177901538096224638514723006283657874534638113910240244845755199633418565723264827935681180787952568233793122818781363522028854243878647207185064556469493319422528497617795166154720146735778337568387298953272931704774650234985792923554420384013744502910957975967653666349159004589868503195094711306250083258137127444622835159314917664232739046759492427772323262091267674960810454371598918547449118672455085914540248742523876243489695572357210600517437777188571542131556967341665366776249122952002951906863296263421486974078717485552910253128682523535059209986760276893361629262333497971195580893315549513471829011848326375993713739632666221272360127448260901204304361064647756763783647392561418285585995417249007333116605186509962609661197389569796898508403364171230996121293265051843152540378263328940563843940584427479401318305377131012370497196206990724953197526139034593894351226259514931049236480464574027435621632287239854567474629213813750691101658240687615534179243527417018991952623265572670566686189969328001311100828756253455587354799592821909684596494563452372794623059636035942280043629662970375568729842707988128752230250234716275283726816976197340965415172707519460950213683126592858851293629574417574228846072750015318102357897255538320422110588819847314633877589408433759815902344948996139794111413154337121586294982136803689537920770809058766357724778249759459300102799502316979270131075004363375711171575822134787903120019765067100052244840677225492041710640060427062586961912711712071617602289694438485304808886824874826854423252934384743335839531156633802862256634069653122815318296117664806644255298969197216898675290983528925156232198335384886208873726595077709459460265896340830340996894162024741311959860725257349056133214994436937813946663760562375204685791695557997197561473626411767799821174020576687095790684974504973055894577516307817126353029782677838860492971642775299174200157634837234067524132938702344942687821238216587471669998575071683475846766377268899683446936946221085220621938313690807086924179710586289008766403505961909810197959852910268590811270241030300232676250374469432184549805957254601872583229147743619287098314453171603176659931224191969586853780543005352539731982036573470174192483696633098287238355802407385050532293872217813673331830058025939291715444458947679613313503485456090402923890738125997909390112202219871238214965959893832729601715489316102054403672786796897987232052729060173021873503620443520266207232968233724519938643796773714926545520973445793379270507509681213598277233029585971456098996508107032313052040216404155218535988534022058228526247066561284100444248442964725515426134453545760125107004750505629807558006520946698912441840169427950142960658143871011298271877992906244493163147766158486704034188123601167614759784003155524643093872595457023941990179594140126462421743871701120772780906941707507320160935350384943659761512954699348054694159888632900787699200018626621188594773075741923285071136568471321003967032514321073922852623151845183873509402784809364499944689856872714574657937663946298664209253463425231633798680932188787379809595726615692815628434667190988886003378879461799402367189215520369550836107436779198297297218812608653343150175939419446719370026391048230433630889856574402775485607477844496322072119215036534564193520137676653145268074299720527731576888134192030121067325095918660278812164497222656369610702487785369663489545505705787277551226137493511942851773741245803442089823107490182701591285837812034446146201116740063859590423349012296089000220348716852960524974066588045997794504269431054231199006597472953154689112821891766535517180102336208870039151769229556958271024750407916153659853693472217385474108559270070056322423184841392898658222709140927479319511894667168432910811430965161830291051117777693873651056914903375543682918356808877289176609473745352523430121420304746325108936911144039289814876914830725844148857341414161015012036917080092356967607286797599131070684009177255583748533841619060450116073803111687372427907106855540877299708341187493478190955388528889944348378040084859749812537533159879919191179750189208138382167215833463796954771707073864390447155087469081592450767928145598516547504452338293206548906144900471549347702316555472027508976391676364805461742622987419323047323485895863307976601368322290025635199203872475936992463930144980019067811771743710816717861388437609327780051408689266126358136366439017300369249700265295530654073496264070347050209498127521464261622295326595082292223942258330929245538927083030553788513508437928733903918747128476892890345486136075940901742724360177644473035358587831800710943335778229948536614813570909229409509398206217166296092261379847401812274947238759717146750633305658156596401032472670287255965946310339170385839857759168767468371673755821088558456582458361167413481913426319182946334020335852721375165601036751460277588704675234279369356136236634758340696453918869072143702649607205147080942318874429404193267979880818736880606949269059335339241298744093321942584182565240224822768715214392206527266536202668788394142362185996670896513621107016091926274828766530442622188974545479819607773902947950951436209043383162333446768248794879527167371818913237778122775270978553391048609511398455518402531591995301848419947816103248773882212604779851334181625981443916899715537242375970744976011411871266568167720802755860606175740572983113967023242256679394880753459043750869325472393485582227759403170179242085522527861056439196478292087551097381649359755743926685287768536173970076693106845833238901880176952686181701546493579611086435029099793931855208080691339198785172476724161497387565837986219619024116529817750559643580465259840846846393618476398579814026300302232510856721288880917157912627229918686563370021443394559687725451224533084530130214897160295479517753681800189616129814442594322781306635251453805489636149203135013116952347086997774616743516835287169219347029793957713714009433511544350751483387294966942739242950934684265356191644025147142928931926162301447442033094482922022808696250998107251499459129209563721164036132314302573703746287132073744380871236740713361049133176676476128977561656074306084201861032964813158547075609526525333908079180580056254147417664633253217343643726431376282879200159689180224377827088886665666466267974022056859337236800081580715355422845220538205925799610599860372509069264611521448640772725676523071386925556351444651536053629774879752563220858810373254612433985361604840860873676214271594249674521585341172504889992351339232646986116435780159501820436570439128252413491817210832195715493322201768222293913978058089482334249277231612742022070254076004363383162323580940387499356969501204465537644301431128256031218362495979262523526160203162732504303331003493725817799290521426933485536872699106492719423061884244549101589749476590177085393187876526224691800489365103638813653606020275296767560587560554413936343499100814767950356988940432260788005830065994670618214668735120682017564144370430421784602226927765017693210543467965863977748389853783976623452178102505871094709802323182115690254967186563765207576197074794040406121150177061224972349440759701310967789440757068025451762932435980653669253918115711383036382982127166583202809715365966998287262460342743565138313337146306003078019794954646452137243881114214887223484538733034717095308090393086946806622198677971291276698883907205627052270408916990626239068153108666525290307659812659226762557196057795039596734820860824707642262017015475128603895110742908289331915438748615175063505223120665056679031341683414217347523393295448853303595611061342692706038432503585970905594724348641766799787063352645266834273827907178461480254166693240460490103518547639292121117825363500043057139219381482056486148624269188419638542063426138641278457093280034958564153792102037753232174959070992461115339938330385225572456807698367460475706152466612881134302683174120412898338991164305366097199542136655074801410720410812599010198400183754932787856630793966602116647678404434380806802870104372495128409563696364516738161125381011535802248714701131755279569874776379147271632059854628741647390708660313664096258913506958733844890465389167288506770480344501287824045866178860607612138487299428157539114285424960614026107526533725862627741448557627197214664511591605673474706499562863227714565645272565319829727711294933074728187536766337754470787781074281596628441583178936478781748520357880312311636374495817413255040331399758297766612116002861829707670518698033352300409992316456372733533584190402957232291565690144805125556279115259951346403982630067193770859926196252234544530453667228349942977316619911776399321972806997485590346594108402650928766060727905214583571373452737443530484094022007894470910861764975084223935777003206842426950073483517315803660274218581534628468129919253404050831546157723513850320657615943203811485774721711405520698700691207570098142298564525622182464873725371797971409190669347316327662611080189238748603250348840945147667974163904378179433110050271465570122073117834656247124343665672282657789408503552525296488726667932184025811374984392767514037874068500624566540317686959822496054583741469854120672255405068992761113104061822081547893142553386460774571328846018174195948707904532970063339187919939787520847184188489913110197342458303484320342199405538440313804411613572788621033095448590394266912632932661137975163214353445413889595437416872670209017352553217427425306745515842756338017784531299712773718223151371311755563015893910210809296342776557289087659092766728927221625673895627326075589177484440775824705822928955775721822121242573621359989236004464506742039535890253486762113365480487321939500917591573310344056962112690668346054696552192595964378603014555316801317150176797204677670227888723263657001841872806749940010001374032917396383803912604880791630326674041865586025852955382262644079076122332634616740272723177686984503234322496368027117203760972332516274480925766770444961968571652948601881177280580263055678194811879995346145369783582506536210127159830588696757905308389877734966942743572260127964231574707772578267107816474958697289169111542439926205883206345330864637767440329185946523863706194385831349743522015965377529202809143380497136030913394272819176516892234321916767956640743019951474737501184145246145907838490565963455755077976494618816313347617576475477811689390969319979524433430491600238844729022985397653901358659339428009558093581399661678783428240500863209735056522861623277055713658525516753958298646319843478361074618988335403047547919709056734819331211029994170483289356915605781460131306070681707161338836824889603744905438587353853263104974997062846825235918263385311620405565914982923069151557359418327602127665601718456366988751763031078434890686878767181509536222415885172022052227457834923531320057378515648986309139395723881163734643722066145006693127786653446078882626569774888470271586847627843902797413083060893261544951659045807231945774669873757351925143168026886329320936062364365539550010360006702929673387263154267412049060834467326587631154625308183097931991516165922054734370015407401829211968580000670665119816546245497840388646090304064458248263884802928467029990625309083715757108726552777242853980723687792422173186008354286333638907333627639685667813638799844589784069880898581804502397113374375587848954922171671428496147358911303842923903563220742319551777319033800325764917566857647359960792289615366000797082892066975045097193175321907533722215887950643176670405019345312635162931467431747070168003918759115952278646771644826505512571360483138999875480150597357521894874775616943313744758736802063833213776510692563045461058407045160001663734278019680952328893006247114362127135396751873626903404889391622800265086968197892905621106025409612591642303381554384760103749717834303791777987590685099617516294818325369461327508224526027049335874264112751589860016735894982567100803520409064990571363613160639422789531590067443874439369600811499960337306111463584597241530569686136529796976238936727497407138052761987217712087254114093914525717335497259952092393605040298440469463537569765606530163554791194754999487867383679342937020012859228754572372709568019084142096309966047466808031622052411739337314287822023868971724497499654646177951041799321436566118273077689231559254990668790980698096341279172372060499196601268765606775465272055103222784940583048476403599444190021490180756504871263178388251620502083175432416899225596583962041318060574936905947354584637398884480758884062451056524213144873002532069934359404938072578536879799936417981454979569457395562514129850081084908206068083750114911857580918336502468138991667958252336292942667446751028786254752188538220378863186912515130699235488384515621291008117525928647327355420342594228999108663287801473759532142247437851225949601205443770668282909902796272453959327170360671740559449884630669366984070566238541513268071957411368810708484284251250560316218523229193922465957458649580108107830442802488143890258627825451069875088701243867634324445121225543601383412289296163622825112389389216325345890868646709875774157539227306371031969110034128643574997837056491634583422783857875708988421106413737674571808679044954958392397896434382261522073035614190239217181168922530556463937816849609501559168857109328899850012177918160982372775544835983460715900180568334911014576289148854008748223073330026207704244468684525520765857957169308639435913395895423515751076512160271445434716805666099269280426999929216806010285378542177280484097228915141021368627651430217227111671278321991735188488983798947169387515958906662708407019909774364010818411590911857555770579503928313738105699980760335933225112140414891706007209708350996476523406638714992097024347478311079365839173017623715792965504813943585405036975595052380884243988609549490806485383629358193516689294017447022997590499055526868263067114015931963006399844230954561170732267405383619205826929792144838176707089198324715314234252608764027443522420122240459409879071592112557338221283365133011680827678267826047917707939124893778790810913465652151958228179246321732054143420584155766028026736909561034548051737188134908889223157061324650480787708772980256945666061111765512310060703444926067400630994973300533570752388313678387210136013578809309431853557406973525990882545701886924004450169254575881843758303877582836207247226647471355966419981515882702649812424213015493137745922547725083687757697989153004864625857805767514303864443922071173683044903553709039576201860091759793830118798076845308243538907491285005017628645854160703830401331512536777887207281670953376358300999989213590702786400922687341983395343682782213694814694321885971450972397338205981139603164475639149189050041626740200720620574551543072856512954276244626242722171410440339975701680801443603650377168186951540050926443127763594879438336632010626821600611800142799831643670191890704371776152396485730375023048496870719558343113040691483554452564995496575758238086544388507747014466794922049122272149229802973540776713135802941439352090324077904187979205054642187567994481043998331702958372463563729470980649363756062538537274570948259835563065473008520365305270969743632798170057982038780407340179794078846768096012005518254501042626376893047017126254018017210305674141141335133535265712362204008769636465382554620951857403765349511484661934833407221843028633977932533449703728355596598747326316601817291843700176130980522246316445724450706135400991302343168356579429069253840049524344844427402759525137531171737547205134668628385688732543615100314672203986800138967837153538391682952220225724170319712828065607896453909150736912833263439418435424469221157721982017054950531974130061144622568524122421712085033579627597698623790641504753461524260362403509242048102953298311607906301055643914660288850901357984812550662610855949223743838004670756947664579861165950012042590689466443253728446973099703931812838846370758795443655864827206368517806926774613486973618690924539164509200440767902557534716088329900378108098287266593072007563350237022567958554689905816495932492064103272953033636032879862898955889096494650175627030745338591089380667463475464665062679706876898856862054124114483807271993340939350464595943414512403847332536104811421892232052545912968133515053850502830420574145540866482393516128414914185753222429696647243963328283236987670358427442986895227339251675036356859195835743115134235743369961707462188449047208575643317421197750266278476478834404371958964900313727298271048861596521733052469406914459489483438237895013099784940449339269349214005601323128507515236583703379681592200756580593300860312909887831244449594536150250825622707998229121729024705470908215138728364537432977195119954359230286423700016009669358249509825518675798036668202345210909860455190405797316703699555128367514613694599393989247059067965663969143036553890269661565993241399576426673650511627342392235261220039445977003135040730685041186670894043135899427278656729687335974136126040861792035154258965792131554067591133614066902674246138016830940216175409326872479554893647733673309430230555132174302270417303412800962284074797611332653542681168017602275238586829575439611198115779473644046612128135462375165110868993315352428243986756891856963352452117331620042195518135072150679673594499491568359178692235965261304952766083749143188875744272882723274146787738178378183719589376304658489480108272580966659117277266254403707372260836024465335119326273868928046768299962898340335572696763709256113124211629585603289845381400456251065012558054721545568352395094505824231070412672606193824519756800873116313144233018841658014611547634496964446125932313414687585242814606715603553704399131620574497910422247061296350329078974581298470896440399076584365125356585074907298531594143940517604818659311345416660635431828378769288704238467432139950554613417772756493021166558282446315943445080782904834904880001062872268381334364182111516771060144407236804956923217928540459889844421774563851248085021558580193383101311076003600503936257105710437141204023609970987055584341366062830967322443449963366640125796707255100409204862111687757593226479429688460993538775883033174932731696904189507770814902018662482016910182789683138528015263546529192330424153548543865160852926042400967848555836378908518555213023888620407074709392546911144658018199347021972609069562307393022313784386143055923922477462718346826039233376961478236738753591731442113333536421975438361048255528017905629368557699256816702702305028232903042966372859937052663442903848182768375520099941019997831980606400825232421408564408687977398876593713880521385347530554973834887961938239426608978196344138939943907457781048782287675343555086392356585162818390149344564795799422835051206977841086018184239216753989396721110346879085303495217882801638076409308539198841518333570382478105647124722594466625351128628731206533193534537379830705027689032162108831838093340190417193654694154379573558727663497320191474498929803985983989904906257010118011180360380727694203083145804634572193136968051259459176546401483032710345816196318183332038787176286655145309344669506687593178489657661518012124610444411704802960563005742399494779242795719662314776959761872159153891086807989948278799321024815624081218497073045002757470725504818123282469461514245210110105843440507334440905563958971617303159436122560338994843954888848857513850430946305485715727551975600487129792315199865004212525519496877275912175160168809628807471996866169885922957037946157601876954681680308942157759018801714864528758853979891327032991134893897156513094462996133650617811419348074560731792421765610660973273059794254200960350967890026682813726511786595877212696117052231776812881510450984314637197742737234311269667574903730087945000152431242123163480449684650905784305342413580566457619724431350680031759085962814696229904748606703662890370931124137645593546452314170444001371142418728223190341572057948473428389426987617120541522001870896845272973260500022894433997443846625238990834925857476246651472181602755233161119821533386506617691593377066224070996857220535677585510169615440496411350138284784172381744805370296378567003374877325711750947248399949755898631081409496509851932153103833924483014776361560308927932034701335260076761125829038686564568049689742520278525542048855441859396983661045029930837576568748073637804036818440987666752743706190912708404617371648589097410316966187355167119072769123567168332092132792382733477612600929027996386515653830073404137613270812011514429488272251200557168606635676698305596900408046328244601226864138250259747702237286034028190933629702909799529659741292803044539876411840770884743823818298333745492112337300175354306174558968435989965294276897330255616051235682027395902073555207075170759976725021026912747591652064066086811950535738410816897364024208402040563504108810031227303085422795376201114464010601932462468352534473387124558071130841638673120494825138019676898786843034302161277219883214126020593162388836349407924661521485569322716004932751629341679855876092254225732936249361049355524045825512727416110531344363146053693062713539376859176588587495705073270606699432173694178785407415214336247291407315125493702612917108081439404369849716258797008397268732579719355825795309088188317436437025452443283523008597170035141892154293068577740827641867653932404204794338191401879336408975326172495031476157130019938013725230603569064856703298284941357592724057352506277394824233726906801454107451371390480867086832188459939400178599634548467543168304401476174661958247208695523769021084422475690349859353310478978996023717006870288971373988879809810406486182318565556153790205636795501608915292294394686692631041226693096903093888011710496584608103199779633943976442566511024244759014627357000174920750841724044205685493521497375026728680669230304393638944694143692524212977759696854156782758178012942917084912027766173959115420311382391732381491453738069800512476431091923991423502383404185785863570358229277876532602628315503380643942798634676667375032267171723657380892243640142866944062203855443794673962849632466251036083182515209874990185721712897687680688736150727824545518360487381170217015204701571325388760887022435956953860623162290903311547058906650686879413379349328554066253008339769043044789905301943227290046819109701526883417343573493996184805276534716012215427971551836754920112344811749190894786433332472966351788873012170720053639528681273759923440795812033465239453501994128725207526181699291867354819466049452267283325376304977955207265658839999052553826295571775843820260397593227946471851640123900889262534342447376679565573656404807336545200958482114369148238215820265273454589933831601216391759423193231786677653356162290088522887444091325414688830613757751881013511364244237590872103162483955730377561545997220028071825158415927289111879136825162909042317866082851504321641436106020667924335454470817495470761874507072158865405489971946622902851591940221865583041735194923794852812497677886584105215896921122329611948357751745682126916224267565351612398247937148484112009004283616509707229780787117890651653689736624404114504853707416767624387640966003678232904568801790888228259673064311024890350498173217538319403833474791547712882496383622972075142720984836471258632350263667799412834764508398270655167028773512042603968575614825055533009863684339363063462409646524267428155850182398677954950110941941460423190635499547316193169424438499979756255173671005510713438176818941980224338181174327438777041791104427824017049909105649990206337295606106874521152001513056108929745030656350719863918402975399927529253477504518884640812160561324246240396660126049977262120053756928891057885753010487667896532430132885677499983172264052230905597080838584452612965856673845492285802596742562546777060444734857404001278310170632237120107053269426664051487524055156459671559105364472926863119682843587305630229960982193583040505968417267738035187884262966647492409137543148106578898753496950468104481927063719817277228768055100713919876486177601334101433583634451275218050477881194590301675396960973321367594460871604433953661534485779864500687742968535971272523419370943468032371120335594575807120627525700392590634152097278641456524749460650594807060894902648738933555658911678672667808951450309562693161925267440824333432322192304812408353502467723728126122181707977396827699486192280659097905524755790429988083221983272869841832261094459407890510365110169006169038348193728850091313899793484445105669078353675920894682675771563987794818096547717668724002796993302963474872115197892274256355473673635900855927056866125477278728814501046601045128551456548102078719611745610775636448678018501464965984423586598507974790817745091559065532992437604346610552979358681243024390529813422198595776175099052758682739650370472987905878418128121376451461535144522083472821525812825340289877648281836516375425527634349445385510440845227042920134593772405324309851430785293482714062101758862756242146252945933907084792893787444546149816040172917348600659330580794200747949414881069459948470602629876995316116246449722211415335552441292366396298899845004077230600607602929750152908064129159922339662352003823721596272258801136351496106417387527034448001566909245062935270848873558849983134922017328761038820437664124527261857915634842220129017668068799266004749511951078546411387827332392396247678506686507330161139717214734667594452820040698230439101376008876063083550441888711032912405149554721361753450766198848770851489461366245129912975684556680242357651015916585120266731519087747765960264942628041004473298251412274205948159143070108457586863967669120123681243233787850981275548461365771747336983913379223671984745900559675862961065534768792921776959235103414011561396746711932418913516681718943352839672178748558213093914005828026726827952864846446710572489045761559342437819291842846201052309598252890694558585477169751197839476980511984234978811742893827741370342592462031102613968133505904952031620930435011716055231512166171701638553296709185750702373014898246777997535483214868623231411143439321352374038588515840999727901958256086382997730168718617725141008689624558090087678322803368163837171036971931761439792429952798437824725733220859706386063977342645893115737853198097690442130521653257927640328411368406086243791175456643457537511833467315274390664911981707137397826412153138239907718388718729323723325274635166010056922601807829663670557297685291353356022160501282379032159938287712751560134204630318413747724985012495373929687361773107297020970328913861760791468308084930475935035865435152780983647693531382480546809526504853622535078629933634650302665759101754643127839896430325996262264791597203468474440685997918826107297903211936584053386580300226100508966418524956567655018110605313788831693032774015469979786427710253050971324034378916179626463141005050784530736842217193048556101415534134097203746769574090867817980831279525723047625117885982769628732591978498449422357735356556682489969069372294330058053239341022990406356407031235488832220111628495345119778347420632522851736865875387868225830945704871733234235234182631826285044220303211926906332697195349363457656286400681710262907588667879096590080446981671409372024124458727659883974700404085518733388827357687009736706737655356343929372189625773668055433656040408235903945379925861743329008481879734868246154644392949506955339525614331758160510664996521829790253648778890145085492208190861963043598862083681189260163948306713289854917530286485815464658537156324679464104367812316649027276149230505840625910309451373314657518432190314660974634789905267296145132161462570265932356281566383220198975664473737300773518265721472043484500500949091399374497022587231991686678891806559207010676252520239811997902661895533123899552237862634774078023012686986542132079590821858519811642098153611292926804703317272717167225940153272961919785712723280692963748771133969843879300337177317744073297227233427373033127917501860909397901036541036614960969472344857112761612106821706633268380851032705704685232830626145840646701902774148281447471959829498047713821325358681858190411664820361955192133532430182345288003033508786153901048585357814662660145548085198226152166237601310013200324625210906023993013570303974232627638777493067031101828774095925071396277335497006624286972173052466244122415722404925295293701666960458445469369472372712145905311898107711002206290929947983423176295952167878651601830205446585968246944510780353590062649854899036035553406150013535598379067126831226215075671257413109385226821119627344215721857613101520874686029774012965100719826148586124590698142720623731239258270287140049569769514023648632673423808204872313002885387192456815309727068582874487217207855190059468621313323365401574609021619796967091972298952782642670554619184930723524214585604141581417413766907538803137565680940015505247106226306376694499479291255659699087592891750876944249823880742304969055322580884074016473379282813580226276494762890549933149447896043136387391230529303075452575934842065048446477259273253996595602830111621224074177630245098190484306022527340402993974938870465344406230684136109024598204930427244234331009889442058245595131375397857175620938714661554862898128659178279530747416037575731766874651121999052783624296202005208372398084002090849815812824314806269611261642620954104868410073152969384493517006690704852615976021827365364492099284221568255119082980474732458877204430393166849056297556167147102580085799737784097203377574401657257150271908561898503327769377914126631971419647472955896427797038277355006155740421000512831839901067678956642558079375436474682765163751195511373483981774186946986348327354954874978906159935534650500770617541469400073245590648707697406408417188876484570445875280415532471253153367166843893531027226971792831402533592317085988231399528206808613145984722574375283181964766106857208410194490646882002397628559241534454381679254964136883784745766099449231000266532494341038241218216480982012992609528031746219046009790386531123059759509032515934275252171012401512174323898406376781572653118469242755923754482734753944452628047483916776925625847161231880564592897910376926716284849408508985037932613286230937922875982939046562938744893552357098075197676694063704983002277175282542049516245104055573012461653098931272467191375293075910001045657822577671680677658968650150474675296694950459980908907270839964777303706570365298594114122840346963240496459990204009760909277298856149774263227348519209583070540079094833290213699298396921228683130963457490266570547555015752020652279007036973694285332887923272712666504410375634654393728724253225867674638101001608352804899920229362037816519047269100436641928034076696757893762039703366758066473484985529114476236560436788809935645768557009230094573824953770515868793830853058628670814620775460489934838999286137006123554650148737376775312899500327098467961585604671330565425284741466044521813597517947409943413108934479997039941058579157747245251948847604142993746876798113409210418286878546252610311134938172397916178436736943928232168800613569901604506262116857114018093953935413228497796014077683135011683427786221007491298855770303434482092195369305993849468635108647619349161647113482203032279817790180524220753869672025300619207996115849954343866252234451799262817261411938117613382191670663383046616363135877840908858016888026374583869681787655071776358076126295670572809416833281509210711267934314392029432149423683324740396220761901893215893305551813652863289089874845908158062970102696945207265083113116050521078688635728667585027756316809448061996998435258402925408471926287761510424650495231020048315431961293062353495238800203507847754230854492862608954536739421656852025887717450748162616195580721524201971843279336244475741866056762066926150309802456134080544306516951656477732924698754381620666324407191814863611674089573793924858783228376143126924660071634806337148916645101705643122074141736350402426258141842972131929706382318241481042001187841504222999864547566229068236064345736864665444838658109873967141483585697493552782645693155562587007665366054248374769409870748862806264355149856103925975422390518291087434752386528623677201321442367534061956819481019809248908111394097006818824746848253602859916646116104432249456659954507688671648682869808322065759998024327649396226068187543828176330803976184808776456456871022490021803694940085161421457634354761342567608508360656818571059871506042824414444953243355440743343593697699247434564541618909814464099789056110228313067115487374044453579956335135797525428632469924799112891163473403375782567572171215191897134265834888405569003190846673878269163054612122817920463310846483931933004085643865903582392141995224476841373100345072320733669635775543877679322926777790434062071802483120350237041278800951268105689151581715950121426156516014139630411533791350219913862315628526071670577150822006151005356213567746974294724685172112074311836316540604024341569686628851359577541588118309510123567285306986365951862520056110292249944850831092862555429739696786410836852349798976040966566676923823936306123319400510156488220883228015662144277537146643895638493258585406715117241885738019968332833122197395186628142176754663965583438420141614730801002281538717214879744686144321664032959287973378019153624294862906648058487256176594194055644668726046601618916268846412772582251324977753987943418930222511843871684215145161533879903790851233546261711694947613760681321570833581402226353964100398163872628713358097512473811971933760837368820757318669908562632739605303759808692581813107123919710022015779800305249411211250507698749497953873217001417040053723360459580414118381459398176594782561762429725717376258180569396668486289740550193404138397143392068980175364863300598256053870731323395195522394789136016535803429828037902918561361585514957210847850525193511737493620260434711654880482759743484925844311881192192430464862621017526650372635288445809298670936045158519518532502762113984289981710810495009715961484427096740100535695908387166735540976944494760418143926767533747657095571923791132372189069075114659826048239792280435148805218059441308462306931480749974334335025414679091768501384970087032587812302750484064650126335443948257442157214353623361739550864794626420587025722997074059656213458592473963671779019568383062124463604136652589214222060091625217791138244848069743350227453805415124724424003653833328999225823433748710167376930680906899255829259466140545526667379790387690991049411213709800276432362031566321498006063337221659914163446145795037041859691428484176876486043638270480218107406997048803436846026164601672272249124411562947084801410226302217940069813536601958828504425268839334699961643308936532974206206435477674597310096121402406537157197226189355098170037129345369261942083577274060199123396303649684791503123652883393839989672722527292703129088231130653118392207812064560743709933290366775727718270922320559768202993897452252254644666189811444485018783428310924113747778077339301998651818041419874055764024214494896558821369984368487611860172246310936210920415173527019647309816005373565528920948812788452130341481276072598389677377379861497721738676551244812389022784747694802158874720027535882846043618388398373354184344289956420108684913330986287992685302470925829631428449012733084556572567929040943302910438196138891077059638162620050380405422393088293063716270150069166043049552181909628850474076958634790657121863751327240436344421022503304277089532525776630485577949354209500488518088371650948193316433409516053258387174888804382074730488297532594083314306723610994732390143653827935253401194958140042673058579657455933630120642250769099420157577997727882203498621457503237312085756931947433937848649231581934052046093707893531818399643820284927896581097364646823688938010015070779511238615873500999479820398693099683312210154642750845693086944006152348520315692838973706121534474615956004422341257370594351142379481360699857693109520840657470083589004714029187491848369173673594885364072300397814199903521201177045731366025372882285888541474749057262811298435567789118968126050773419505759292918222544442036722411416133860225205559060134008302963296880497675289528430386217560871328763638831791347879122042447789200974474382543889463890475371908199851635573249797414190821175572234052286715379899096903194627506483139205398108209914132850148839036140857068609164320435140689067653009160575288563822284433185622661076482427378606693205420153937188693165669479130905607330346072315330003561953797773598115253214135878882962212845041601736760606655732606282315784296488657929962192993781747355773737562837000544332470141878992611216280715881806142235440950198885474430169828455471206926271794822719549798150042521300642814340941692118674348058628699695794150752394657724403184525134966270505160313987870717299760818271538135576639365790491902240817207452891375359289310916657665079415110479889473305984395530262509209353480580125454954017485587298432094073784241370631676972865651438896465289412263903714365470235723797645525645888305667419688388865333074152367648481669161088500903082313340458292131798565979428237837527094134892641735032372542121096050467614773232526276268733296883566213984909135762614016576872673535034120399024141491661893875266124638748387278299959102227046610489637048186876569093821019449010936449299126174570161489471795859077082077041651547575690048529611615896598362730580630104139080075772669904919157150759001173085517890700004007134325637772539908290315698490314565421694061842731431200639877220618856952213404783380857921893877194034662004198605940419929181922810858019371279988689166921263753963548520982831569815791976593115250313299978917092802082300187212137664848091331756919275828127542904149919032560177071032910509577198082425645794849213659875712231165824936677449485097298097649407954300447695942566795167454329098908747359829317375160946438236374389220795448697121296835950626320699045314723588568624610121117488793504653785053636627361161783767918196666879379217857127053814369809734268133422233198011985861404695196245313207290121622643621185243630735864728631268574164861712715192295671282671156496176477180266388960200186450187733267704599060166187179744701961935220205349832710168685366721831337864642814083592968365466520435679487683003171702471142016499191455797510277952865626161318390490045137580339455656086619947848136694765102019455942058956189323362355391118017659628812044250298079756899240983493462100775133608177549455527641127325225006609467504907007816995000702548663810357086733352094653609978042972740780723919115816667428114100304530556595120861442610290120835483211402392116197639370139602742964212932476527348298141307101591167333365277432631185535817790363674855611107755009655814267245447440465182990118958923193291836732556590938746947928268657923418323453637127970658916823843141285262034038769406048569103609148770400204817380917359283531601479798027939281320069588632620621346410222526469281104306148106554761352190688193761559262584277697017410777888986378416247375221123409019100240970324358664727165338583393973934816324838964921222578421810373558091471455894520990135505252125736317764119581633048117417755070411642780860433526819790612104184918424292787514295977237547872706213298977985687973431746464455540465926218761933358100373452118274474286619307728233679113735164482736035892483032916050339747732701719008983783549941850416219507293896031352532554566767293597474388540530932804368918068145962525432206901967019613818421308144908450859104478365901985113665073737198458559890911271966648478650930381490418426603471720834021136481299669039845195645743659703654181783167013581065045217327231520717607178569099060021449401296985317280868246273632815613108928028366444661647603900023964789317651706545416523231171541077038415459105411929438665972086209709798932288486948941749194564322220957206980022429834749910426939302333189150832980278432725430687519178575031797812283882232164330158263207318607512117094702622627848503479426281476951890887725800291557448685476492288505867793762133629736546596883850034101975427518380462688484904665168226649357333113963589866635624223969003412051170189663787159733407216907285144410971798084471180478839601202517185591595782808927961936604704396619016881922827870599514683997744877552853255038252943732474594235273194154113543250334025635480947252297310342319043363388115939436356966441105217836392671123373013071502983486373027855602026645282847922620662584735273201558640240899798798811489334139084028250057675129201575774575398227036212103870997860128178095056685027196006962584890971516303398169866887336545385546084488961896152737745381788809938609792427604118674281312815011910324061760226153700589963831687062434727100965459140456648888630246967159163906974975289323726034519081269300863720974653128246736111311022079805556852719257659057724292779448668487050973975014575303313573195885232343999990100371520110374101176220370059667845845869337419426075686267241337399250801512138112054906151812772597678502056848296323762256580308721249685300521861784251552218201960066926369307208408724004338957856021330016878967376162249593875371977807742958916428264572104061481629537549866408586605060948110547447624620254936087660179262589420293759502693897801830362424315760629431029394574103940405340892256495502004224808927976584196169080799804720265291893193489796170351535981230035281136087143823858229759512444594811255686135480587344063981291319957137681084813580064987251587931903719296443742154999461728322171074892179953322143948176394806441831993305128082049380675950222507390680825322052226005855372885966460056827844182743234650707030314472561182958701592717126654169459667383452096964549474870514584675845651704767140594455727658665753457048698422333503548305818421256713474913797798714047305336362310752061391286893429117210493644197528183583797364790013271872593187758641989285270607344862541673914428140076452330713424169931593666660377221125392148892727131621381612975273914582735129188156508111076627040698872714777760043052165802988945940496984425779527818176060270007815431908531832106917438823760381837096427896541434728441834861932437802470851501516155285815085797277629553992868734592684083791671626129130426985757029348897835285092403285095300636366447233881968032727921519584434317297424628968666673945402734172530998749899746643782022594460943166210411522985093299607514576660231305518015151345361718263737475076372453141804458847506609450966501917843277869385146773045639619847962626089617573102264852906613223063987639878816417324131799526235644384497302924163260355273168669687727958337451845058830952035880349423378718753038369942259157868746747821772107908543986749798762517829054280730482165955225036365128964728985163011931655928572390123118356784652409394957787312722787677873678873216957274238842531551284829290860729403488592231650865511778965003089831049447064139930404917355265066940563386007358944921677279066453454445172742396768124244333704094744284458742489903849879945568041747119373950283832555005900261391815473407620576334823041401240433621171559980413945439211462418223930078161904624123656003643080515932506327091973895436885632055660983305636478464366895090980774147508891386964400673269648042064597273188161163422118300121463409243653125509743256738553617097350373629941924273436653990301322308255281433391473113110510083284086155247015238243420313818495868514755486246052917088015872054969933939374339567215921361141894109248092514328472943811426234712551323067111216609219526620055608002136570842763590571010031157866338979382863948728046676511220700638435378038779654821051148816318040164096567083470734495781070811474851002984839546621971297191026722138843126447324291675559028559013614084799981161339374621838901108841701618505242771965010400005283954414460877158982314331120987579490676939671843546834671610732408119048567682282431610979412486007933204280164743576203445472361904476038362659496791959324084267473217898727751189941296067126298502067562456916023087660815398857144457632927857543708108260726052029736912445247551160391047982974480997448338533515930074590890356373516096563236894627377755925457291810431313191248160529704456264199906472670747362922884189493529446419364482567347002874084475736302514684091541367565784344501923477223378437276916253041044065529561108998554949763523635616862102370628492226440650755304368442042543422942709973460306322505482973004318329792678710857174279328803640230184734502668343240853154820644498423644947651500669973118432673397891271281193645090194954787729132743330567903815789779972051476149658828875689916693061847993084367164180025570858380035807703611521145033060100508778168856301559243111260938227413850358839233748334833293002923812898108236611207289739722126277705496551262026133500637865080532156876791708019271732713588165958487049209567846562040583200752624717723479040431708320653033849350310941276433924588904730308360436337891102173482949751648702762214582687555961213659542868667939313256603094347340453838219367631438811281883547260331059212478807639794079478267742247422328700712055021406981995222716340037229351796886060627225740386628662462145967426777783657660714537592297051534441902681141243077099782201521450344456783720401392362007438351666320944931091792693115843394991113797201067902141237161104044184581678247385059693481548595623070844997730105490064436514277615820809633477311289765459841611623257314437877202589273730384677521187997786408540537427981737587285377197001620942257361531731115342458551342587371501882712282528324966998738781877106088699755080477626463528923243094830794213962562245499744852501043504715564497631821821147581046998475131616936664757662115082414082871110853143047689348404121245031759518116842742647619253387284417738037176638156766217227058987227562833833028904922104571656022425039623892018040128673932165121931694057339822449970098602910339985371980674582875188480118076091232878121617394581584764230100405749582379923843230961933152643195887135282873946423578398375725845874274599103373305301812044003464644281036512123946252469641581479083784980047735060893998104235360549962487572143803817274774239969035748634541746627408646352887501468238742894134400832493101976699781387334020930355167825727327910676706983812572298666171584461681627301313086373029400766860162549476548977482734196836942029890315065295246481698769674488115408199413561750427396928490387339007245837898887575995713280103712229311135421039049769597891768731781898881049081837076784464507056766581087616390084270519691846398779487475535621719511133017979441992050272079812111484604892526268227688618389283412292096655632645100522321938417097927738604016405949145976798047729029770927575770536255150740795165119801877314190545842693682880765492443568545736038087635527503406289093143274215287347425913133065620925083101453350110049958205612014835276968834757566092781628687602986702239190724283516365982559694173095842665906400588788507184236894192138317050518510802023140903466795433872255171600771834630102178185274179474591837816250136893524018185075060490472468588590546339482830081021272541798580459845244156721390184214548610614962543780702557752419079317499276374286251951529391939279461068370262704656826386313437412625025443151424961684756986398588630299411070613213108858135323233129950409033399484024610711230843985530080923261194074630645790361727689668855388420033794357053977104774754072744914883539829364942701891180575659171105611925186668165881893260768286166458522599582193299331965579607433610838611467723668191374534129679392945680561225240886463754114077439048043781180819819702542197402386992252104079517586120998888513900388943558297054530566856607940553896480324368640658487121312771017362328357849119136129608968097090939983517269385230698186324185056845632834724966782887645782749734246566961953706441144386716892631698814055672713172194945443757368278481913446374089510940356357730836269541521352345573635982488988986488698071965296597779932009862155042895455678725640035294314511696903379807398243560809899699003128840946299065727127407386541091339101534493584849561391875178757769631826457640895706061710314173209739408004495355919216346002004564367243264928468451922279937465607573007378418045232074687267889723235874769648527546524932559020385098046037897353616316299882943358630861330631039979388710455780869742459512466767880994041696579338739825760600536073980578124393062707094840766454515362607045197041417479259079083633076887777931360991843773524292960336135929376322333080742001156821641575930241721245646640725400076736723478544278025246008699834876460135026724200611900954412432684852967554773081110830889080993955746285061037079470838190323036196678736506383355213483516761124318824666934918127508934727778906245290900778755142243646009219511228767215851509252671629862037959324012644250505766977627430194841188416096403038658308099054582457546517958070134654810232273544745048386819392052529709205559636015573013097050643371932160954098390825180961730942284363080520999458744473954543851900811226099087342840617166089664642157735958487696242534242644011711751630723857597867478404610869094509292731698725861717583453644748190113390545922922098675692504521646640972895238037071879789761969552171826691739826673083246142245223292824011633096416359286823901779232041812123515076894409110757262763798239922801702728181261398035493786049638134638409758452767207605386546147925329336646647983215689367197792155302473281168818932307894737060463416715543109517881163919162114183924030814676926527150002487586152761587953451008118842775369382468764180329346049191072954946926880806467400879248921305241864051611812249997925390748482372013717046812357874643167275421432595593613574293412326929232226024716419337735831743961921959425393369992523535376451681556518824627567485355288987215547067006688836293106499061902501349904544637750505162881406500935699150451846929006833178637275921377241268773660749321784593326123973065306916398413026698260719767329103462408326131804309198874215854658972124576471858627586938703863989899378619281883479155805778058676743375943629522380033331959426260763502503560934362928468495178411360641952210717135304792526810032649765653736959774483863376956797330612007510387653122595114986454522778682564441598056109755759426161069180617906400979063620275121183820049452526188934579475496265086583317837336503594689417264792744258520879521281557352029421982768670251129669729549559396811469082961681408038784474243106757119788812583595904429322995273059707118400356336215572742377894919361429878125949466747275558009700713191804802705469764924862816489273405489592286124924073008087188148188622953601753967807239311906966642476663729100322853690840681167053395927163497063406228454604012567037831249350807167913947242646294130112033546930745218019600226803272556828207639669015586221903380460550220630384968201701356174864416710621418548125107148756948630929952442204439464446952563295481371945873303190059195613362934693678730949179485022427989977019597354945304652411748225192106895280846680144964579504696473380692577714988634509002801162607120358627065775384701769016214795742678439927445340687153996699866965144160562974464067976706401449851915887309347844288549235523260414012400797107526230156436333237270546737543844268951411600416538559451826793208616450516379986511852020490742383355311462651724219252082541241179661752330907319873358813225801148230864464175761867602506744772086924409409412263080766595588719628371510628429983267288508057809147468572171236508472045858778714022177326735552108743765091515478647551136870105279074755599941300668429143811947765429350516845417455665400066413451746572285133762303681481374685398417290378698432786595862911798127515332222080581455151699368604344976594389112204927600277142758396768211112549774754052127829428938640120657121500846094734161820533265346953561204592192685066449182466062927956722631138010389772909786381875871207951732969461448497821993533852947430340838489611154006884615783214826858879724753009059198074084152436920369991903164276770745073501946321349607684855656155575829360128367454179488946389575965739270080089180078896367373543716787869862087653617082598875891361447715107618187497274100309809009475402926742685376796695384090964587072421698108286020063280229973436165457273310533397565496336437984589794873225519556690080306462216829214831079593924788320897775736299109254965469267740827122320247128034633220057586603062835277679060158269744669368428589199566146945321651661012087566046631959011642735574547191076781520335181275036902516705846522880649154326146804589955091326475069115870349577708575626377068922869722776003592521096875605340860388483672665224910419435602794480834748599131122760355951064722030409504131557224465855362413842054341430483110598820284029030581162757359078944898588172560434353871224060991429494107432338921292819079290105583980454297527667639306413678910948885869848434681906482715754966114518081522224588695130455556577082662242191444281849050365780176174377755716840397646676209799030447185977764929494241340768900884344524767748703267966731227169128020215431018595460338362695415720576652852925430857751939422315823304635637182661204400955570527554201538061663181695424287881969708319587928334632176478271037431565999866353585879819961693843981307853818849904697504783120240274405455826834067526969275594420759609383600941107125917586240930993077146071652885895478584796221181696174744657164052952704398066770954869301840546915918311360316061764791104706465959750141134698378957832539831416580653089808812873331661519155943867097251218673982027905804114745286209377190400585517381542823929292717710668939731110672670483845767901864939730107933041543248081962300108502925712082337376984147457793803429175654838507607396113190071213596686345406741647109009468281019956390443495241268697152182605785985185131997589237564695243028286162714614291205253528696013874768685447666933409744383053564382401106460996774895387097820640924231471995412937981673250927566415079492328968867026707428529923513105057052019749464814550390200400028110108721070073866448392987974920929295700789463929469871725338101519430315898599177361515497632846263338762377932098483512592021900724741660672640769204394215214563370006940742269233439667783517684163879322972599876542208015797665664451611939236084103706463461968097295123971900460840070626761195064099366236363066176101999555971872509217785774926422508269828235830603139193258195208612430530124470548829593013535347090129350707015567136032150936421630876258329166241836083349775964521539428158847100014671748232352375845293973680100500867080828464047109862935395850989013271292331580728998356101686373720706642177138300024702590763652328885572422199291510438319421623875353065097512498868555660470115703970966676576122136968325366489311473918581517694607249149578363315058150732493244710177500739043120477769155611819149291802564154750556629051541677991425961016404764404917250641521988472120275892987620105935964180474256976888037050256485793812555157554744651742852784518025045741880719971600383332294289361567481100200893118021055406705709027393056387994240236936309753143019500156546429681093047688826672549948020577396739366620524385531141825768528994347587727362239757413440443086703801889213480054237898529151571088092378535238109124796247867234397563395000477139792481430394805906882815145299868669215261512062608386898136702117277680494025496716643704275752908481059276879473042728069044795170331176910033144400948967422820613016647346791190556898299351751691600950165822492068800340656995796165014530146543751220371719131703439559565988645458796516900428233677339323535551289529889452372715634837013152781961568802524962438530416451603527259428026474546671682264505158520280797450183670223097181770845570867590728180440462448932485080824932372480968429277477273319622210532947669211833716693147587111473150646875621171166491140401912604083097722935972460407134729802104792788444197221128616137266615773237829390282552837468692611820857560681997742889030551223300725308492767306564904442053838303121482264178533557443801236408641438023545187378402497576622205069821786531874104019279322560969426618789888323890369146715819159591205222593681632004111799887437237521821207006624911102921327746423512624015889036461309232933559211695483527259329938456134443072162057917375859367966790966209835070867211389490696207583795069365773701949813124242421201528502697342283078278523259201541248761075017630535391723829503490719087418077261047681445368445020012684047473216356416656622413751216222054391264508691594599983269645704937185752881176302983771219698345881895488325836848505668002056939947622424511327544808082650883203801977928553204662129810646245559714988559197765944318243457459578809674057636387566825303311831221780455440426610010369078600564819191392644407327711692862860987640617507419494574601812008874848176425209104909621096589991091028900063755565019807208973415443565503205662618639519476061286877256134345455958705406140001960048125111565866159416699334850972799293918610173277608873337623619333449789540815396221497217358333821619118818126783694049270307504558489486367092218667604184048277630033961015968427704670923878564251143540584198019013137517064512803342609840034780834482405690509116878222708723133581119132170474095767986269123488141210645384916205136853614998646395887690437013102941133649427068081371972641110255689320424938465918449714205802044193433258522675071135365850181047985149871085043276401113327232907726477106032421292535792466469635035400489647947702753607452885862057058039009314545179709841915660897791156773006438591012198552636224862215695498960712632512333391514352455153916146702040634015294524248722083045612855413866344758278702747067574101911656797428495030508390785673135433763216442875223777562332177250490038002784536929795874257363685478078525051860487905645717439376116598195883311628583726817177460203596354530972060966537282198315390625357129288748660974804075035375376425987359684399610264943777653259526575957422600104262178605166166583785400554491481092891588097630607947429623033454036539193280932624505521478613081395622055402269649866457898097679555405703453866204411973816385718677628585716497016502217719131367427398583915749492390086436239703043725646326720592169822398836878849629618351009366610119118866830484360768767249839345682114304930078082758238706527135693993983919861363094592363997440358566596113642616714462189682030149636634455313205489102122006846647661699828175044162015666196345301578884513066938575841984455371044028165136946402952429114788322544901178594306275322517371526229698965490319833656498185184403438002049434591111463917781839791579894723485874099341884527824422685858658496030201333472520453076662946249690713409018459436582462554674819126473557973448056570852805078637040609798523863303193698441291908071131290537488443787188683878992250194665531679773378797240424117326156553784064771201175953588888529564211913161852053835444865363350461140935181910979088467805156368840543576633451759939056821236253193223470805031787766481158655240573036344168301256637078503659144858325862616315800850720415302142644697265731390279585301997266127017103899621497937930661267392369255945098448342536484406866368428128508509587237523636833756589606686237165221252887948953880502611665484139531239578723042956581850992402528752813369640639705099022175991319091571072678895283874132557800686456780754319421565667559080434538574699068871186125387722388853106032412859796318266966043498500025767441074870649282382639054752163764858446254229021857378924506489812759380587337678353205392678247257189225012805212123847331226309911387863027856334799269685887907756109726582564816850615887668686553788344056056436381502159664017619250991335376987949367700218039780681622962982486221180530690748318419384328950126904049727254747255249321666717420102648653234286771259015145583347062308983912232332584519125831190885240827654609656553306395126584780096660167578324848484665929979628245446439421938219819193515428737679618272091111573015899859769466908991001276571402619878607433110381457471325477473798733225030084813273103766726894955471973486226666876621626675144105299988313663632608355019272901193116984852895282055495084263497558331754850943340216289232877700843359251231861054701085327523326399757745366625779911922283836791350175544306350812266927126374139638502816903149302127786670374510418868890847328409775905805308643065103274062011826817574233873320014962119686062644688337298344287055600474768680947652500405041264648212849735966051121911769349323877270189267364143576165325508862787861861757541092013394161014378611463015588913827489635156997349623278573081078447009617230906167158473120781505971344874849418717686083076530214710062804080793866916275800504552931194409557508845735172316940142382280783334510367100027097279012277992906218004613182768785755237833717902544088730673706290901768922138277330699643558105632094929500636278526746402052378890366401856496435303175908127932681778116195466671422421778341498310504708594525417473596670678752881044228917256213765475090707576321732007171604655082866746378179727292680319747730456940071050705028338222770245446567668728135347109952321157475352592483581457684484518269518595994046200888236726412547946860801570209725480501767870263446916854767814543664465296870055679984899230225195114834557999899984441460032807380281323163121488432692032641393239117767913426635318546586262172392742937638723640214164266371139082079539067639431969536624028974855197886676837145743725813926514772824214696116202955613520593306511450929224231765354208073808212285171819901051485040528599366456389951630838553299589013086865403681109391603972267970802495813168008162939100100478989443404630070231738697254506366746649097188265046536954262478068056443034914783595931142200266881743909747243784984956468655126646297146556332977491135308352589641431792362628935747605608580517432828186459261251983937136627572531444741377832202482322178038843056275227281521538578422101073586672124882366465059570270378398174511693876987220585749929281687809016989542338495180490212923102488859512524663192074370688374331271857806197300420185634232332452252059196660159990591814837928101934814890705453712995550116343066312654481290625427844398237039679586514394529181802465894524092581715826382527063589633733075894182712081718317887287891724132872922360956906058477636071622323804553594144374258726631291444184381167336270653539059523048677226025766338213002063280589736781140840114562336111530080638089141883487732586707706479934831274845773251768184050668918316229469331604466602207534351989786862511046021689976813368548921768102516287459122024111413546793125330176745703493881441287613528926923961801981184411054113167099208619608335648382236831387328130835524438860770810129387730056811484806734153487832895537118196125329951391421938537254629351903036292007937520885921094570104893331447491837254563109743892481814515369560778626603044213217574944677165868233534978129207082588591241365262263744970874199715957846717420336513237939969661941545568712526509368468132886174540187111691065905801379871400135171031788728791834484337260608205203484013888217663591852046775333198188805187529995831871379882971411433780277812814274969577768829064699560313041108544773547052589348010046483383742980326060623535063050043686808652548276829868126473839318988476540638361383707885801613559787451833120456073841299632604879113790640870977028367371247033129976297676079513287787504221765344087112531299472154068687658191106027178202600237346434992941364621928471129929965734150208339907873445561478274521861902809582662187835503629861128938239889245992274545803215462120768169230580964144745435169039468777604449710061929676167160328784506011515670753807467125564189349126235744197185178245986065007605600666051022702213849658536852657438483106533650191426632854073751148569393059217252812534568876950710188476685747005477200318791014016231815365272791399980253340453280514360459271543166897269749225265949869785832955180510554514365968339309181060264829955668043831820151744441029146206002167833168902344331000841550344462586406815788775797613345578637709053127892571836239291563876841305104127424200597183953322639510006431820783133145444192421114815503153637200600398598390126005242619645993101597218955763497954227577398404635453648975936525547821793669027457593466973725505295312167373433544912274131141602130880061235530657693103213307971300996063489905480718939801606884638441049464879442536273546216873132131438549460260112716637935233706302080101089226284066817710969467546874266871608423252718650575832652086494330559511068209370903197832831295337698102422955165056012575492019102173342271066711994276395675051934802233686007492129298066076025082708617121278444897916971325598394127635552014100578914181636004349376801860126723160615716663277571570066541558327219683608006386470942505501050864731311168325277055894846246082288181946900420424820588472701671541832433213416469119466854441854024640137795505280547512103014607799563780412549761945133662783490935739846383440747605631407893661987275275877197763356404427896300657622741681060675676831503458211171368746919687255407022196568238240373095547341648194357791055465290759300693384514161181810097279714739445824331749361310572945093029279104513281388306728427741884955875011218363313983543315570545408834234349199418891468653248263814841968761674401037157181039468547590498472615768303035107057650807287136263825660817942462947587369387890669864131350246216140610972020760918357942108844252287120957534704805123860618352664739597080181143858328187460040997898245217376626757950633373509397952895117356735648357412079968636408995347658884050747235680492741723397943125003236945966576743356239542960333289665862516218209594819528551957575911856184505592096879054531079711383886853006415112609132001730375967262980009382761705330408842026188948880001381628764722752627681988591123868008616995736664585855396316487627174206534498991564748507321494546169110306754471093817230147756204936911110216809868407939466146004423665421048517979308329296228006597135328249998044492575729188783330793250913624026364636838211608879105652731992507686233812603031663588948637173034959561886952865679946190520546780126685773653675935909521377439522904251237865810885349601262529787157961322255639015062259539212124597083576531288539636266287845574057083127462325289204082345747407137841304570865578324050649467070577816063746632348414552575319910361840975612066020335594068021575723350346057102250690070299033510544241972934386820344175578367100736336542729005602259953961739845400183448093685143471008826568650279443292274915945772040341471259096978304087893097601588742514328547640351654508698624001795194656689408158707540341791745461346020306235665554856831943341816529818013802420588308792388677816572853930992068914578229494035288735707801479177692488247541978831877727032708937661327530536083386278969080756615038168602757533141486035354297330432375929131030225715428954971768454332284399298219224310517245736737049204665296909848534802803191683961892186761335526420195713844837022913017861810823732738198827744875138885218600752650051085068089903141402853320325542953681916888191004754806656500487144821675891835864761117911892414269282156374637425341345005002592567202571592889855848297030024266447030170400075579274733300912792710451666437051807960392213008208506404719395640309316876909427545156447352251975329302433590793049982391076332700345183909298620148957378798626505427186266364941147878642167687687556193386171971543156571551821859510142654103808415109821254908397528423695518985859817192111769479035866109561565910873015810132819842377186100668990798402262350559452113779864183718485412690855708248000931242997532162893306997250740626773762068099823937495664702299903678179772235677459949084412373395198080675214749420446375958112239031972483362165014072038659785303872763268497476447398753454775650124933536132753746925464661008671869700962860927729290540363391281948347028454486675893545514744607957177904651212828634368211691748107223261449060513542974897808201544639048217879455007312025074481060950903986248383200601666241788880337576607438573790453060236559304086710497856497580738888533942795427016700322788608349615587508357748483979208075117541071191009865598865981625130856652375072127293284884767648277164237800165756831632511911851609623099420774557775284844717351991264923394676738057037393565333351692686159154957261539437406754439080136645358196864644573649319575166299692678006315082627096358185966576387126893902732717275753596412844396328917749905325385965826957157669639019333982153941801207707579803327883461172196692786448107487894112621775112279428316978050272393218559605382303470843769433617582955088084910795875380852783458711751043280382123954664016547049022757095193506584464325820716062534319718072342198342798527510162097578481270543542885527758222436438502182820553564203536681674580544383498319540255310717223616274880860488633675914862492474250737625660194931721346588452844365735792296644870920846575644056329091993839019327840517097634582596846924560022587256216519331154285112713017495609408087094160575378792793172849256925748576678870445241532418002063010772146895862567438521227989557859464207812740128576091317317747999066134169263864436671305561790678707770739333572396436229200544384896809666160022203513361966480437154588649263822969917150644590664727892780716988348003009702816247764404742269780578806509584939486603750942690236013465557323250353822538876945228448930870802301362643036952990686126118575885070859320557805652126831940476008830502067804661918591770131294316867501123756786210883807357569071131647658283570696997962694588682747824615667881621126118197116358198962416350477655692820654423423709288579316017644278385345875204587205888371461466359027953212076101492122318926654876044363082223420904863793429233651322759075370633525573759002795656207989622784613563257172576058849796707433040815454017993959425499013611596492687546119004731692319414156224144595403212784889089154148484107363559300080249596435364814384522846027593378310790824427627156126200379267662995573717365685675426820080950894917381388402625249498359528634460318535358504734164002081423433928444154526863441517058531106292327393199435599995018115374183649106492030784229901598496643720615136544045142072750694058730089844140172658418668906436877858742680946131784354805130646458087184059814251645696354771784336457119803070001463485826895348194801690363000166984664607958338565238761057959838735363840014007732310365956245871052975025785987479630104331963330620671045111492554155831182996964052592216957456486601502775557834222612602843690445427601993710601636341178900391615687905162827697869952181535036690617821737748067859603741900787393007773447603040776143049322392447861000677565594929740145461059173348319794077017105253811841837832926698525324780029207498735502990657974691761234220547385101519030705294725919133309497428007682890006362499804067485459709987284855724421656066066038168411313787810696112734219580910703435957640984627190137332278498070494527376589443197750392598037720106652193091756062393603256809270862832058330747901998370755149641833956578951157872226516277399069403695945309781446919105355565902245853637213800429219222515411697978469074672511917829607005976585871731388277430733589523011365533205234600222318021748526464017626335771518154571698950799462447767028807326842972123486913672013005047161502009010909783690601874574340320213908577097719857106297088923675645648317741379205771584130807108747376420945896723663017882963324317704526763584158351630533834288720915274540971973125215986279806759110599682251720880980117593224073172101803960366851363473373937969080533729782109453787901889983154668309430766388129054740789851985624197827885421229572383857634448415349742748969782732132573737271695232536067243995312504929579733148450503114106114388249866442498793297816158375441462556075126391051737411846500620144798390110709768396969466481247559236842328190843066826644771234831351495766815805191699381622551543305712442114159405107428368674899482636903973982383607543655971312968876121209151266376301059814807223964934397620314886134049802933985881345106909207082113403543282864492834425053475368682184431356697887276747265910815624992371442633834822606853844376853642914171246015174403393624584973315492264113520576518797448992385223748373969468580214410211541312803906036294922853925947317033234692263601387184920401161178799139712788256999259755216400402548556695827285861202003590563483596566559684072012729019002846522363243251149345131187339229000230867547373942260668391774407787232440719203401300008332920768418873453015088790058267514466296412728864737942027601793395937040360899279309647899929431785296792681165437736005554130210184828418287899756367870384052831010604666380633394878613846230267171135401153774212901776848878229489337848194537512409075762548530586026559579053754855489753515574045088693012484408748557889028091970659585293263426162519974092269501129268292885469953451130928281620373655972465488759128802649450603140463462170435569493515838009064666490792499812175309693766937216680247593738693450859661770465266995967435445105222893643748495735801766378017082481020853843137823432449262538150904881750982053146228467088953870915355403765682356997065016387014678859391979263170725797310046627989818597026712434427911677172379353773517794797899108302316776204150819183352489177860926046841664004799597529895303907038036496797650250045701974018001578241062560934496601070750474881634089444575627155693844747656834429336515802315359715203147272994145279192358081354793963663175214122792128092249423537367151120835554387553571483291252105038503603672526669074815311025223876874203755565899986575950889117241983048692955548078691657858512274826283438970161676833816039941543532180863944816609843039245169333646156801795810869657007571891218047389089450174096601923181275287662644689301866200056657181990978731128594260539018293527514898999099247437741820439716968448123702356907987357655815067144837526324203307352849696824850845703497483310357130975491280537098690009288503714341510158518180075436043603115302125264160990806635778360196279448919739315839728123895370732110076474361854707158274306770576935408717276873888606195875710036063395590198632354147453242917431644757875796437381568196491955349589141652218328363277534014647481771731184032023441837063086757807604048063227902454601097675677513813112238457511438907122125315700752231848320795321182081758834465265918474135544779648738143240558663086045907853176776259686044781494185738655516717567650579164956334190526316584822235273247054661466589355847801971553158878041402433567485997977619978027274898987639434079013169120952198910005334773434225735659075764764853386429969223065508734872863731273031807481110633360795270145852548926224649483154818159705573210983118585354295427337395971275456904715324375453766582587565841081009342650008444301992253395337485850608516778017592963405532324104466136976891025691930862752691286969567940494326354324545010917745081974176751177194348698685042768029876326498187724688698341561346422103924699594260050808810455549757020789096705622212563908906501010265694466193322274175984107602455326609843440828613721002567464527801491453931460185302201531689545264571408298830276731585936387893728652475187212127508343537990921596442580708193016426302381194827267628117260412863296177134775323718092699987100986459393795364393591706374076272036069750107981933090000038738270177863144050950596184091526860772179741364606365567026904875265122903284672105539234064189171066302631974961608634119022013671150631209669259225507332070805074646586585244068845843390045409378967511896568075984792590541840364425831951806472556681068758348209410253347472077417415127304318017261808907059827414218913390436966711828542482581291152364215563173646234989351353663499634962598593084575511093559395978003045261277833943843481926484259759470262568615934321566509919654678004171348489390505619608563974519345517265897647884113900717543213609217812503951322423447150606287141168135028318000429158033232147298028316573074031565521538780888845653406440700614492955378235507239124300388742959869391700807476717308957160892064802123934474804518662577907235354408968046310209005221306713213051405174933616216523480157212338756406984080560404505281319247166765074330330029397517691393917653940100455735108404642377262258746974389411254929739540328686137180776451497179685854828478814610665044482231717985867296077375078235352914877357414299215889094646883888081463846594635618394611527063948094902532589680454015150525847598299986358236980053564898993985732275412455555403560279588143694014629926841357895528518977940785426667882087135983599772610483144040130216840783873218650033993536549367741885946069706316208347496005152890732621281826673691568242734241213646766838952047133070822635445965403551118350815775036433488220062850276642652685708310291098640245856007913993121994559286504782245307674732150930125668885386542485133341832014263611379313545176660824064372424834375624416556149257660686984408312183348148112374485628661494636559352277309325755732882169120913552620996192056416767271160368339040379547653473173032540179204396016292378516037526405423668772315676936604706920770252638371185629073789228771138608854944660777025102218234463466585371380522002429027751467923341834308253106772567150137711347688229321252010981958841695732063804042247744184538684046739537645723594944432928613637647619371097209935619279441718878097454994093469571883379335600860820592865522981418341834151837711286075980548530362082523462528082495608009110557612250244199616960104914452621873517121955266143167287655318720794994386276197116345575204294318995560262550349711501927778613950395145203994770173677231002587722763250081610129499016591022032821074754765412484151258923290443771604730211927188484535384020917829944638553609222886021449219280029138768043784871433748578532581317768635803319227413444260932251873462202562481154214279717650538293865623414860281006747478653211812808808479374623260808234278214544705548957524228142601348419861038992433323114488930319515159015319815037948794330696066307163443331077342812551859599838933268884398882344582141805854022864752995290789813371234087836974268799182131319488036073939315703450712567806926258395294120758428710746245003778204939963006202343297326787872076273232291713516457601216107830427055321251154591902659722193771059353396719887659129474887069320487238805999183769925381755580821271999649168105870947631449642580314273120642000507594643458173270203371345970982237508889307979836180766146096819076114317221119806032905959722611151846452044639912886356064646619468719402145120623271291197844992203188328138182227448047303121317883863744674813067505714448832487209136619642466653208875041850032206286791777634582800284058485339717130577563960347069920275330935628592605802992230279910339352691819979019397143953939066307486867069916052041484304984140917854375647354859138768291412378014286942157255926549730253920355575935760178176547002223958399862886023451995655594620037564474922948686052780261998923959197056814173104146642220320695475338132146963271019933628792695793643755269158992334372645641290159058756348151344531327047090422082414345772914278634922351757834557374542533740132419410902606071775973821108867267910501629917101633681404472372761569191720589017381078616584176008781758071788149269031051509424709552850990316944154219591744183029956747391821401467305856830860452575500597572530280762973364896275943550170919256002613659812590188392102859268242416417778234270275251518141256266116696953101600153740008245454703815556017506167629357240875226053395995056006845786538662021970648540392354108136204486519311079601278741513313946223685804208734304911861354007194448580461249418719374580957054375234303825402988649711419750910255946855692485238857203213807238898275435084148700302053603152195190571075718082496613851863399704548901739371937015995208972597996610944241984979926699973253689124654542010570221588200419687618937079350850125192828391282652566178510303946024058038865857857549498858877151842812297072550850963525943119548071022508854584828651744520400293889317964308908649552521791451616158712901967784063409510706271090102947277061204185388348773520250711100339161069651030609027661976262300552857612451943171031084444366960445317612557696172013220798677470237546950452040941774185250810600154575521309352828678037444295054477995884798997201970270266895425497876999693709944085189491390689838162848942811880124196579834551963883677842235460970171873407862263586605235521725147887799915348651028245265695493497019527345069469111909106594471803483200428191286414140470838355588305363169593357935336232286330033161781540253282227212965377370037408868973506533826133845289183704037841918079397301291869694920777297991810296683773351893289219004748373763669895450839529956447777637597447866145091697190612591410034488748062817327863013588051473782600909155716214719615913235738655528093600111803332487692491121972771485704854533932236553348610119845484898763715751133480486925505283619073710375813553921589199660183236396882173020706867645381541893738773319433464482907752450008639783930865476374382249133861676104400833784835382373112799135045769711073936371434757662625087571501521639887945738933173490530385867068989331243089612092788803568590482804789616813867713464616720398363309186107844320728963473588686038459036127328519026700777519031692679246359685340281515288182297847519119574628051389088032162484174986037638714686073676193750893039451436661407364846350476040831129567509157548087527739034509623516823212371023295764238901516275557682793570898028515143771429192951113044775122181236428913666654848108627627894573475483978612911781745425489484620361534162421333278750180001819724093009284549293518618731966660197474820243330322737186030432637431700741194167008677144521585117883760985164084738819874455974106693978146262990273077290678821927530739097652623500651547002826298552158991815780696799377176508201316887551117981685296864978543981508969966268754590437343802430640702072101875332288645103906173898634857840948882987977001685284637543841644235075685409169375734337738873743273960232520824839921408543945349613901435696385714329915733579457864083341413756012317521115607679137114234476990044825126847994700524013031779055109945496580004853637562808729348416692179539894233458088149110778726900327299003813697261328065856074915797354041033668715091906992694746618248197653529033270555000596984459597053031948548888008925465906106906240902494491852312108678803340826862441717416094614857425558139073986384445722743621428539206865828153381415252469772726337952865159549649051736263389546551602374514357658342115362287951600670314950986569614342914714349806007257891383770132857686686693005632636322975232445798727207390455457248491038529364890158945427306644425257774674613232962623263667454872088785499200743017710033141360079281969338104252065708001934893369194384632828335639776729215873131056097598328808915027367783505546158728462636442426318941597175330006223146726596159483711101375243391188775701836628411304587629066980968246226835961767854078403084904826781662758842088308732210101707101123215787354870815066667405240425088936755505614208165156984076054881715939179997835075685534346581690172375455380301356249052233737500984897503496944715002929687604737709633869548511236092982846387285926389744709191164004695601071004595646187869813708034042630318867679927753410911651146357315806201053578493338944761344901172151857520912515355402849904542142265582981335698678457863444046204508402282921896595982117405967179926581135981289824608937069091405117833914063317532357958829918901299768362259291216497888471219013033234046867172150957882678526351085762673411997873950849080679702140328716493511704512196954728010535431432455359357386271960165361393660434533247103806612752503893366400286683142499367854885579670460282526151844590894596502286084099748353109379838014744085223050553964695238324314386940471810690716171703628842224447730567152665813077686852324848613521388496885442404146813094253415506234143334866835003648306358996401255688889473330167835308974192885731052339875341975260324210811653804213571897368387064702564240575712314646799968780535251058831164485406575681198809076708197444813737027548928099175837964797378466761784814417225232475836174690156063991122527167389050899877818823228960464085391254435544348078064464631296436154593578935001795418407673839848776300368963602223853570560745899899182952301955117253713630089033533340194965669017775576873580202057374395664176159223772691028501824028638750219671040789353966150593262625528755053376059422540586539896211768275295808750350539193268840925296741665024654341297948299106749428320691431475402276049453601251767465643599118448783940518041058983821106479218419572373862157181526254355495697242132311922679962111146915659365672848998125179830288774424451162725626766960498090890245284158466110286567104481024261945534314347425760955022693293603014882164310388049270824130867490375418067105384359215933374022688357217304458298280480483452846377030800268222030721689105059786706017766151800343006390839855954185167536526016736090623816216018680938639810907694947856149157729574534632562319439486724632583735567233734334668045279734933561867417015001375988264343881088342802044631824755307306304159272706904133369298066057067067412402696954702480533337296305512590401926658751820760380628059293205202535889639378177439548063634327468665085290443657508329704184461239437430779960848836574217005487976234282100410024510026630695758984474876309582251857791579921210415171199134902956837513281471258984525596459366601910229695584308426346296783555185524605889466068288983519533144356589935785902394434695880450274766141916965174619043018485379146508857653942911199291064311605771681357556482100966995111587551535082556295529804158199709250446703096547534286146999688804031011346005591660167201519984627652914974772034443916607663581995217716071096819078649858096975740199021130090937695588352958220950040805993662691545281388803657268363341192982563900921137992488563386874134176017041817409985438863012316278256045173237369055908793166716921773288578546795901104257424841317965215819399585580301328277361856058342958973853314608947620506802713633842223845051012555112032794832240570473241637597989258234218233467333310190163112177159569213450830733611926941773809638875720030581409429353706514346200979609534854736905897208649397086198771412216941072761128467821794934508777388522169836994051118845150593506688868070955588052420732768416338625629996860657859455918356677355368588397751473132478730139516592921762943865882174947232148381198022876213674404007849098221237452079471140643411772400021738164677594462702554294519711686040731640390651133344825599708201184231509985766238098475912107720853562827166084842921437812111250382629572810988704482110832207239599994957229490915716827957882210472931873216822582327611990582935873531031479784387045295227526995608392387090437739043712196385417067138941041929304870266580199535081877666554681135627131836572810328937652427385262029218020230357294169081767753396003106689271622963515160788846584121772278355056887031734547176365956651795307735106032584287275039479980316164751772681880696958154820216212994094835704284369894145604448329984195429178440049588308856464682412749904347939588833980839346972829034830457252888430103398758900836976916426173826872416697577049727406868377099094260949741979031422315431942437708890015912267750814422126739683634027759766449632714851978863164324910022117813339468417918876196880715446867146430756163580967461436117208963939465844604959957748078286487766620232037037574850086151698195311174321511556594508402826691529493827794433038475222613717068527652465120658079012012778270139458418490947156768251508991080938993977051136210319929231093201002971315539412844626925371740041342579135940435616235542902174529790127389357125063166198784835311390224856813554804564130452750350187391272108890550649950877761245214360801175721356100076332557855896836466369850916724226754079511147531028752005582624734388938654693827718621388913983090432132787039354985081477951617166541269051432533879514137280406623802251654981479904972633689950509727069866460186907498363875466531823636190117388892728321362374535551628937088678901049072092163700302754701253011907682034567813204644453126982393069901498472719281544326257640942726018625352222182877951950087118022950406442953614658476755840031942209186151176740996145550312058576816549015386695514005706206072471938146994507700392400212800473813368306524200261467284430814621625812728212632161591234714444442606663811149960376669994173232826464706665138430492618060427028874632790119066623247235296130088054297831648797659513466538915822871207776063194671001060146612295688060171311950034369540019487684552368716027884684286961013636763030590333224903622028255220021002513509264126302436664142525872991927216123478673354057501540882503628704662491828489480005428081523093017037217698076656402284097157170329440194616346022483403092578324200968430248513401838545714554942224566722056150603699625343726671692293892454293108393891564720540955369928691522781504928684549542648719926506489065479140250853302525576242474380679213017980801879963796723948201418780461077604642563539482387972688650966018538439024046209792142969455486941975169912535018854877051773851106225526994232944403622485872815863506752227652229120095185216181861154168724988658023225474171135080361624492396143112093387642283113438884482669645876628942995771717431299720595444200006449252859336994607818887411500224363773252249495757238191893933728052043099718734935785264189661186945156421955260581943880362387991866032672624208638925964736540591053908766491542745006453154427169029956761939508710133091446611769679426632979664147714224646837204266733483347107424504157752674681063400372453063030362339590044666181799385496176732248158711883116309614741492843770300067139588607560708849028061472045366116202808766466578464668597391629173559338732633409332377558169669786468429269897806759631083081657185463021681398914625308412352359012934081057580300439054575833928341370293060085341903907364897618162524357421465171053942700402141290276182234732391322727336667471751460412244955367646120669920421041543733715509178317717919545265327674507622294319650847281792633147262988274516463886143923798448497982493925313044071769402518723177575078712069675322238383404623865906228675302172360856616353033776809057751267214138464449642800234306758619543589654824734679134579923136610749110238460281710726849518847541274965925965282128465091711735816515518867937917569626398091055978514958756508305221323025609945559947489280846541477988703579385374047906922950107852247292818355497434641059516345986461132276076522248555045844292249259909863284965488426627971776367122272403952106741781154635899926307972142967850867929731648042357395923675960091386461423280086526664651312845768007670832844625363072078292223936008690910457826281289027249068680869456248844066550897933192612371588396849065431441413789812614575480926548128181990662351249494562323736077022854137015015084920240266809034853662367542311232939207592414661006015413000567495768196657312896737355898480604852252872714046332806987488157809335055617263594565343281083758983472420842586945586970625942171232589117082628873281940932089165990486875918149659936662720058015059165210474397045739445581533853223932929240606061209455321683981289176586580301813145595187507799629256706609924801078950077913710743607607212684665953683819185340229463098771656828523527953971789311960558787064388496217670935090899679697587179476035766873906336072393399886135424479683965607178704884751284431508193922648741408829301919960226153781531838675167903911490525853442860427062616102166554275862486346769915626635563779247251145260738665767751707837118530723012321155068423795914675835116684655219179027989352974730779236024025181021875285753613068561905143497293693191628164493960435950110252367643933395848765288064393821297659633941310683834877386251571974032329747993198659176221453979677510892332679942557743057295659860786545716619038891593504271360624290619232676004925697874663632172007059857037008884521369402718416118978222785022210731859920176759375120491477515904255941507401589494389347181233422439825497448099479101018278660162767456741955855481039389058750636189994967166559163408496363245589133765488275955281265890263354859215678135454600505419347024209310928165476018147634446077636682526946067980498395757116248770643492334131712973350072549716545930799901422899681552543057640919184202387524141288617896705009182594573773198051715886932364319564221278678429332555890671303193915586968083202466823042393657518237748401103022771903744690083614869023515171034201286747538523526259102790765872774504196245592277478684022976302047922592980543382886200876697078075603671718711538076766903430485389122589487815273576596012595367414668175470883511406802794885201728671308762851310815641719726330366246733883962781045142309669438009289647583744417285544692628681050851312629386963153142550024766551523723028035764603892226242472514406356347298939713892616089421842047287171878071947589915125606295667076547563888665738402866318554453816082191274291025957120309354626167303263929105773137031232066872842506204080714590863961957932318017178119587088293628932743342456920751352644525964491874445889737895764584349089339848630600612697980981088752701504186866864001342893529579863376995721600445176552825568722590173217308816005272388708084886556108995463201303983391858801809703449077940420641762965971327241423822285181079538124211435239590150158666626282118839536698192638816437230839813688402508781246463095240009304179332992919752448023285404992607534515952767478066181230032897982569373696189024016720064594464780214019725248417500497948681731383872975723472882078403869990347261207323093133517751611804144714286787894439434347645349709086374606649357401363869176626910144011572686642301299455013782345788248760554297254942795420223857532546728741409871693861755313826898937724731609561808370200958638448079963669782088416345711508050981019158600923188214969583127396866245706229824263268714731736501982429743633516983841458742724654105489903381467408854088364246337614068419381741130297901658568368008027910412474671428616903773694587254927296224007998392133799291521368152785050450094440507650415548949108267434528872300172271907054536184485453802079860098084122977689211746827559847772434254054134628611774803606724536507894463846143183176047867392893582815087237250305018293921326566014086778931700663213021750131209567056329285369853295049209237784417437584306789739207045496233513723264213991613314883147532214531046467993003315553804223680416592326015348212063759116707829723953751307466148813215628192187495760018028607949392337536510308824953989142605084732135253841110421489115293530988006422374451089367615086802774392407451447382912208678991750939429356873517188288321481993072741367323764123906669856744085011903256295171373856971627834896088044177792385737243562000221478022988922224176203499291892451920909468751619270465026174634422189721402330756138283077237005877185711188971125142297469043650465568659032193797216841372361269958779759802589437218395752763142230618001241301002128913321470162319921151242879424536498801875478699395889307392139589339992853056045953046163423407491645625673499261197508826772123753620033706883442401156878757607404592015449446072162596064406680203824992593524380726842499158896161518163804848359146014712647602744612937170568472380386877378453968303543207376137278275523912600525733653424613152226528266871848573759079423278934585432793772377293674600242093673871491348184931785151027439591486845885677488913876730108909477524036441581523606873462194430929441877044354423902289272585550325356074544722813191518196517153406916428966702092815833298821208163289591394686656161726818491092608244239690471786076201581926551372171382241290699703488168721751687829843985364408773184020375925530752822759877853863788408914924732720065113999815170323779369447596324006358832728367180931235918893208786249707949708674945861739800092298806626752411443116123731565696437182800532719858857354981247464365419888217831549789672105102609447247248058406622429096518698178648258607008821586553686884485391670327727365122857109815084659216698245962425153413503314704173173761834563323300034815021515908228396914775316538812623765985384019393139154125348466660548034732671929313232123780914189603437189494601364564352716785508767179898052375304582671572165425853562971092691204193111225355599000122390456142789330024676961871584133009519454695248371729177885773889939363201815992877299685644024858627339813116699801899065753019040601340136998001112309002387366489044596860081360262248924663888714276998401043611159880874744213799773249474535502240746540845104842845845885568995906923050750246709448082198339163861671235989836759292301244551566359018619676251669910860237675647492292367588304039523622144256842709942265675727168844896915828826580682244536102356237635076601428345197649777435253789927930314977829392072608211059458863887568582304434638373262816230179914196748626401443890117292437016970629977245516620703133114537347582334221385638431961610022513362351278766793820308524409359875055612111889835459629376594824265380369691916408182979017051753585767226895372186917603168522381036591485170489193062227315817616467071444865013271242183091922844721262338551992959742782930095719903580381502662002121165844026194828030031095432836021428903408262499174811195968112555152848629935577537685597121048480703758968299418916583170787440536941329231716158760079499120173023505305020931876207103892616269924445019464607922517696205758449663569621024799851469551637969627603928706121407230846226243584622829596314701092123471805931472271130312160636454911984955213885209252094224932729685988753118143511583107141786514900638042431186504650461474113636338159897851837973365984002034570915917058088331784744438580988762665198161047841294846931216908518005695390639165844867682065182458120906008700074283742587624170353633898658424180545120469253593474630175904744813098423646327647870042427930396781013766956991003021305423870096718939393511073868665383290669922230230339217247803628130262098361765639339112902885002821134477253627203304109579495144552556576292260818675882638861155565449329089124370906061620591769098899723787645350430945959402615523636012686342831332419362252006519834896497055004363587315685470024250205666969417355279996291726930526503955792273880915213117024962622127798973624240511021612398101201110735836107334612360988455996778841176172752464696510934457503220691336599485979862154257653355487471826384225851118678489461521617172369111376270661358209441640467903725877407257192507685054758260214319557847959366913176381959149662653686403382631206253969493334048368179031235580214280018447525329050412148869884310988542331938481481646352573974975958709683422777411830875073276350931420283419203707084243076452952812865708450054777849294299875503687587083945605957166267343984285431885906749846584789888213580337004592985619980467733199800738523371992824328767976825243486895484717291940828786765164036114008876653358645472680117624992493321940993409971212799842356926447942895010540210669239827884787347971583850512924536429251507947938439173645990774579064427569593019619602488601495205553864178680627797793659536886320552862671318214313368828882649912389341977020994712059569918061624082800446158783695173542536164112194287651154361251383625068693384567152393267771958932731951220360012080544996104551124580411240823380979360996933503616270058760225197863685091187028462086325514220399603704971696063487245381456835635460914917676601464479985621613793107413599508922513354739883104473164592156241907950167032350182058343399390809789688085838925038104273146301905702987044783718635766228455861772771869223626499275400229233937784001997471109853711216135268167969298109025797911692032386481924055998513541642606347788513614029059382457199935694812317557909935287072478010643308972955719690674965149647595926860547272846322820142182520711330257274237792498856451562497139940049816157469013740335594920160118550206319981146222387874962894059979946630379984865077117192219136874586196305801468626574985061280970689995806034601975490925323866943459295591321565390501370494109079343837345763006268913330232984171601054451293353305459867311238920693216876806110966358129621553755591986468923124819252926175519480623396802791075358963439236847823683999818755503448529256626420554486527711342755170668613944180001677658274437385681725214884328712722516041730369226576656866244912034160502744536028575762588087551651287408528575782253523697880256121700417736175036384142498321728076094698809886180931290606807936088353212265334251628305122258128299741926910411575038841079967372427737521049302263978268727739891125616363988374172360010535100437190670618853963002355127292162913585321245758832965316973895996558854857366488663849269765431894294259312365314005347077689232365051279575459073701420638211876918644153499922041641687337595383404599589991135107055685334129976004971484790740583700096619649598780768223970576844122453143255313431560994367057710757080980180300189814239558898976469200467257998379270760080965457543946109918933730626236128151557139291270125140418276884186363310674659362282936531887498021820287065883922073201533228838194934325420852069538648366470046415756572788524036208513259314674224076964511157026748697882308960020187256287151509159506551174884896178460311495598810166311293027518100650125070593093536282038333350255974661427285077438415466446938562404871533193772960512931115502971538312016124689311787919474553659362360261459485729292379706751619611580364982699226288808207525759794484015203535951178385383636925782579382343885839310652154865699455291916708606742615542549636713224909358682410214724839420508798098058849743606528529324670893796664973216143011160435890942506219343328441669626292182060602877046833257074884250709123017381816833306667370934786652010617496140969779130493162067316713190694433987185447487949494832366047578947026662151242412290710120907112108616508788882635125634461617123709392005154793969796206831960997473484594941621147693627871225950417886887305784055527547069588258323156590756833489946386937552491991673707015539695304500473932940011803800951407576929391227827149342359828950143689945640475036608292550178022364326577976933060417346578622000202743545386836270582540569182398810558811364257436177978577951491599932572581434420872530016178662442787828678269512060563388537305578820639860049845534433584336388024402711976888767698447114112160068483187451564955463065415931104221792131458436468223869724536476375466052381703156517054993193477215346499940809948791334458516492410054870869099489033296867291035961407675610036948781907261880430453399913983933690708139131180250293759146215286180457196735554846811764326385137859143120548425146596716830894935102825897163536718402824628121469883087730337177823081650680023344334819929504209241682618627936476428201661264047299179257734273739103395810071714183022283055734960901689701500101151671990667219267343432084454356168333715309720607761490385275921550642731189154378267488112874284471605156570705663763425057512966590134320314603130367615729743195918807797801103009843842511613918263483230355144023798517715722249128532919138051285720298165104535418962605345986719792776818989273695513721350504779944453384537221685414923310177568573018420481660931068525697785320180562037129232945468759156843462795063609888266939137151701492766652580972402970865913791634349887427043008056575964519460416542811495040893867004195291130527619126659112295158382043855043652110008132749534877432349812672337986736054288182246133067603672549570181553510581645689997557374612813709046416988817578725763272187730444472302084725333121567444395467132614431494747540864946401803866996994715666529668507299767990802082532914556480799138339658269003404033503145901235629256137221726705571707517879299325336080494468075986451060698946666719252342801610012440856826584156317774209477155000261101709707243027045811528711285815957751012353585778162424484646920961060788243680973020935272058121601738182841713859400841680801283914471532626223527852542153079277537543650784279402517981423360884226203813301774397790134035341511322970199411348672173618159851581479852412866651640205339653633517369799163376952447363478358147659186668525784244268283627944533300307390132530401142865291038725017305001261228817464448417660215067125982566654858996955252937537688816474108790698243987152790985549968343920247567289680514203964652965710217192894601576605313773703388811967340000283017366790754122519140647544568916905039412442381614865051111123692046094384782276163648463630366906177501199654822890263106844845934576488822276221629207729093366149493131392269044028628336493957318774624149743320320672083099432496358877091729488576329983883020574134746866457959008296737598342279505472387678413661388962970583291949197488322874418699435202884013483713241051236003329220230712736132676497114557351504559609007167141984416828730292163437811849990646230791242985144303456212554898223845352251985190856254153865133510402317028444861679344191253224042830654529219484177413410518087299886822447462352532002997731833413192969799815070529090090334679430947813409726649552810692074641273772023577627328569431957788059347949139285721464999298764368561741820792865967130723643079830811255567824040105141384219406527359635792229990056489918063775230648071507443232137939855608647871539775846510619068041672543456994749124446365378478715400235244467944082545574096966186107939045001920999714918187982963399826890059569752151597921898349472740416257793904162063203425426078128450516267247912302360530217220539295537152905098546434093850906711641502036162601697127795322073093269671355181047562171531991084738011060336795593570776492564334233105839043273058311011492145827388512562972417743961204503543380218962745186237203287498607848239294990209658182244374738462440376221518327079167781807628043102845066644168513657394240713281321672351081593203771787840495396175695645194768536527108916603329406113825800030298943648374437833690528110937867342950226623408282614713015970422866810531646186050742209388866495857841126947233967628989343138537193496189916384341072827823901882318354110195179136199708969435142056016576896599315410042055680853206774261594320389635985553625979333411878279957887204947256896134720650903059171137375477235290091867439802240261933597198819248543722909871908852421816806623539437542601389636867348625833693946024699369096158403522116469349486074426367071455072640592014626713492770456357731244386620454191485002141605495962915151671062261364805928744824734057578373563100803930553806279530875070178020123250388229482104443598531955824716155218196612689083335068008516939257803868977472088532402211302064911664067643039471003931249268028467554257240954425242239033674845570541358346504662561219617974199616388280959323333341009988503353529716782629617492910676469343771350399463850683594162999259992849313992008954282971082490594837592537070834657855225867324044734292535453687367709274181423874601318948153346094795822131743347293899877945229787646457706663716462955725102658939353906159498798058116026308169467733399491252055520522071219665485488462553062226679587132609122714674572013755574629432905554335545576456763109614862459411381042907411635565525538410235644769024688450584384880126413453996076415816095443355352419862194640782862740200400791900734332372455083492222504320976106928643017872791137418587516340131016187993621690934787369406642960178713104332446835261637732420008356642788262949813988092479167603145381937011013530949015434402086285505928355800296953863317012159696691427166612727284857194701161072994091306918634692148205480572195091934290664821632622392855897430102100865315482614936722549347177744108209481483636546524536472126606574442030738428165692534379338804363582423754903082432899722028732371295128133104672308806212709288365975179961196722520658160330373933818754468118092781485702813109543641477985313204805763215921259345523692476631302707674357134298136471817599556503224947731318740164923486001036435982853866153092708013111067282826621931014089059574730609296364819479053738563850817800236613453261481852666968801577204704122755662365443912178124906570589754980721304038102955316573435465685718072725430373547566632898089909736025925116904489810226358761067818843042877763530852074363687058691937326734230012715662833577793696042897234000813939070342199643079663735342432179086725396135586026331223995233157586616388556698146802304802654747083842728282375186769826791371228435082818172728590609315291689367769283191746484503313563059034425481743220103600424247446321694792725566521094371069873057432146012795862152997588640068766523378099740384785263314590352482822124023380960352203868335411245661045931754540887712337839480330174449197453516303704697416876543456645902701828162545209229189875977434303585845157858523114993901688401225671871255095431449410860738953043657888385003779723166258334661585643840113776090813544030268927097480347619750088197998944637882211279404693145756927422941396174303607160653960890354666870749685758255886286985118379735437239762894291026308508692241069911394619627857581485711169600299710080477268808427593447770710366910018235769702591518293497214992530901967102763664498276367680586680028942168474080413658526119461648988672533946940091570468640698343346072549422503958175886811058577880934251772935923686628477308729296208825013585776134134721232492636616085195274025845518930841931868125432797858032513003446583703722142459214453340735464448584691954351642373686777351337354866200749352755050178972474783159096098942586812882807118748845501059395235022773563285075235196048421129453772923496996500001653318039745375706169686861989204286354830849238977850651541808661170658871184712564349973868558251551600426640948170935825700725365989741768749267783612995357173572367714794057155491342289700310009494169088265915788629681781929458129225671567104452350927741771756938840479634609999289176426696177117011374549898033503225944581547796187760247664828868469350074504542946351031920097946230393813509183717611569211919341657155332447736110585724076285187095201220623158446575705044051746573655338616739697613107253425774300251128272645319313180083719509621595173714264643444143469370276118060740910789822422585118536568146752964314397946348227459031695028891692850717352286817423148293017302417992652749158846963020072781073542156477876234566337353925544119870883788967202401736407749772417107118483440627423148044333163939874865569699459531635796391822634271347084127070598632504201476129278995778893639147465199165107608107087244097634725711026884863219638302061817603765465136201899062369339984384905623986109448765125189780454104957607526839825360521300130768264321880150506197531056276564489227416086867591145042458524121788939337994205790586207982944714226299711492125817755920296755984863446281101846417904573932665942428107164504299794083130415482185919712205887106257513066562143530631479291140883092820552647021974457294332160413206078225385650636702619223761660827365718278844067597029496127581309696036116595386648570239933798701663277893037113012769404853372163548364376659745337794492090244050976169401071956728200878590439732873050168406234989971460159150099178437370202867686500198742594976345797409785230114087659244728328241940775383385962067058275161439583875843739702154935996158968799794040259651872483745559661248101660557981461596832195552583359779583058365930251605537075029223095727010353525580549591492395938454481127203290440271085748803521937294574360844036147521916170063459710206573437299088025763495868853913069413603444810831898675221441232310728903790506165115824272221871278874732644050938480706548494535669778280997118099734634807255284347327734522778687901689714641978706337081510663232410635109063013597005721310171709001084183696574949683318697018676862353136183129987323469268616219817476361831472644692671429036851639382259098714995694431547497875545411003237447728182068698934672314831016995297044434069785154396835715580722461604851146776907352129279094490163851932257412945124070025362117108571687940236394995527617851115153096680832003560074632854993651584211038976841544250622070440580480589550000524543195421064479805300716140810799490455633014946788020908561948930013115184156776431484408583198458718272572421057738707833406653262195769931057955527886607823436701055420816750251122596048010212917980970274347473212787498997727573153189247512011076312088943714176871729560358985065258922853427871248937970566519766466445756895435763736176324680072829934736430080932812219432343313860945970885583527486104308417927918428550500436770261632343027430661301968930863045468395207430692413081093487304862597958845772723289530153236101640164129444084077870058680370993967447270544567929165835900860531243932568855360678596178856184942732976953641184941457620134356143973396350423167451010623990349411646043582562711873782126953255383135767898829060513170823754525759341618928672609178610499253571496266508163621981441258295323007326991659720016560730177441592089703233613774298401295351450095775074790109713954528635423987378958130915007614366906979500121488091210085376543093116438476051974442635788071821505441672317482993282113896075801235092412423645835009973055246292910905227102207175714817997405814210044338792294402208742945219782364982190374468315147490638521947723260003381669615060618808174077614889460880069126503370481177124798772464164769539343324839063542627114294999768095701000113925670030093126194313118534630105174030584307345309104267926602142359668856328738639136588772679843273407656673893876771228002503034614378357077502974377399516545813065542618476942473387500194151001000017659246957116405951431839496128882764729991128446990668859727792053854629163491755847039338827458468112404261850612692701059900589969002222224789916639806398423760292344296483218009681535828733781435706406606193471388808468596524984236758766598553378560106788975686038771195289980741989881558610904055087077760249304809207429368779971979817043042501949083500481730267622238724085446568298842727645991150433269651333768036600249840664283575697385524690633242646656198272598327528135655956035588642837406531624974789783126180504160347410940416762006318612256035493874499607709408605018345787664457363280708643461587420305585662712885844044642924045826030944646047367212482741684141504360569301619330090163586901132150052009146368928309333489019597605570473802443392254426334661865828863643231171619052231212692853103902300124235284905748828975081115904439560902615604287119449878012196039663582014249865482178893767982017562123249505180112529210957222363590440390508462754772334473356180956203002452860775545933685570745234973085342394643775764899491200643416625203322319822010119542896491062659168709399387883165583872541503232932609622887225371329028557955194853557187722304070250226272211545024552682283981711993713776475194842856405010982840795400888194690630453664424935449076278030160251720347753981213848757328114919491107011370205387660264125528560705425499113503265723198814982254415300104635152018484237710576060986732425881307021112933828694688840143145507943259531212067804979272584720640799936230898224374115976011482998013398935875510391127449838194286552813240573356622743803610230554107928813926031708741726721846575062006723757963416036174804478484672456565958562654615952393965698877698563959046572440849437368626748855827543675789358107198904790782061761231986749500467679877964530968411826069073267051125639189190367268014492089357710822475460988126421341482432844641805117232801794974967994549822277417972438202181256759264573406120133234682221318853490155784405920237860231203569048526287183159524862043866912746703265939193384668174182485857023479936792978591104024876967239946062813666893763568151724587539242754283380460957677705244484894075455019427779629846476224097164515267455390066693582854456013445091263836498699112482689474472672442433930902446632861368014720939434319444551536490366014630455948843090980058857179877348368523084711184538428693532472293976451065989367724300154681058190707968169227392501444474580755378746041507430493409112229817869195844910319236644806987060287374520570171833502580880952318937977979358882518570789030216564067883638879348176181156178121125862825659151047597267159170662298390383516999646383543731817286780889411876218474013409128180932264215301145470592675283527393654253980137143423439755475862887100562534985657364219283536558285828674303593767309089172534175620193013671679824945989597065377607305749475387553459346624343020480340802037997089263973015910844499934770222696272365930723239662204181764951691191458737325014503629301170018446007431728715237387740322880520305452724521061439867908740157832116671248214866312953496908502417875144116374210873096008869015423655888406755560131790162853788221298714232779147179918794908475093250843480367004122538187204197501764730372041656430158496298754918525573141884291047377313135984169040036013668540213831514683017583583887525002283838264327894459991330803479467030178185161795240817474950690748158588362946002750189556934356790092248316542997071185133805468449119716968235978476086030679013983702936621857119969921095946951380591038288118726934388863624233143867297974631768127786930855481210847103742616703603859344484134235041217873065620352086234547598520547625636293574150625822221679600846222085146130965123175370475735020137682333007606959777038844967839145938959964701735324673305466349141645278066409612392498998540194163217340753153850281110244074530069056418792025898526064315584393198231981055779654524307366877215863508524442252624497416898950868743572942556900895104819780180148294636579153151787107581826386364562275172433663150605999182810683921211176286954684522829723456224243997005624173406388713616919140088928079051212608863236625604871822623735678283717433760189319053413305807556013541538590323175337912014215891364062637979465050555770766951334680459765558596433345420071959298076117485801144527660435000996773735607534657653822459208781917821190668428861908651798028181307054119466340806369095905770784232736551663970950298358310594897010837667746423284625830747174714004319572635445139902098951714679391775527030895476490585757667353496384640289117771333119237875581443541497347153952594511415517628639722674841132209586396572569191907153324498466589915017369246599005426165991024014976818618867278500010551794204577929161977526497109236355745146795027926451620266835902421479544565283990408711581975586422758200145458320491393486899549162134555833010681911005093678432714492733870313324818072458971370207905586184965943204155570395451004406579579460416490902401198854119392933051124341619357594061063696433576966026601522974081815410510778575465310525879734740226917962057659466054182702569514406160391944295912511210258479674513920247803613540272391009474309139138073270129346649681172460256757502378648292927737225375767056366163290613209733336216202097223779670229684436613952032771885598629872489083605176702684277693248472245495749038544985905927419873062546700972223668004930878057449628398251671691571288080392427913939431480858901271836664980063450949274639538870972586242287245114419578790030642722230549093761289906357782930845086558586597673974502164700988003542615509286566239787907151881237647103211113574877768232301798772044167633916025765379912694310366878968620140779313038293004562335610080753407567226579269099594234835950068583907668448285505824896235400826903787677613149241202171761059671197430395279514440033725504673892824838208274815557306001041554117016478490958419357391143067318673442318325588543221857812068920158079748460130210274605039122810249533231632729615796115151285938597692365664393501572496269365782842984078397013607486197526362919705061906604271152230322531602491340978004699533268041249012931113882804061386961594226126388804006162874029635505516395168942802074590882216354074094559550255951628531549962046853658936818745266544469539899731804084084513901195483921204690604372950954670670805108324756425013353755733915752341362707495875835639749113437319138336654639203179072263076657072778165412728440069559172679020113432652764024589571235379941570458671037838655689498449828083621250492299016075838586137867050389079258721045403411097530841427076702512255095191083335339349684302440407327033474492487124041561125716592654792790172594039800013876815370877563052197742220955632731343859219372939788609373206694643617616815187584052632871094939725870261944998149297839864231456653964243345093288908577238297663240881669849096639247924216765823290825815300779187765088467973755272890856746268853817698986324530776605668650814182133863583601704016268127296532276668280641813438862484105553531150220941745239995515835477461220949676102736113042272352356018885870480860893072724050944427135868587284793163339107529251470564502779503787020245241608615600525767919632585336773274211070304536032735351389509564193229705980982755630792333998720229649230573681731413977365479828646871345184052066942057246117492040377862453312448382917715759742645037712268027631050258972017968615647202463422087302834165764587863619213371995539818683720157900972917721092319303835347452635566228684787468772360200326686919198320308958777314056772071466614528879814299079526953962918404224382521245816608903734234008360010286280343763983238573256885286912625661292935574345544054161634012344836784841352243714742831883567122552634840868910991937363293855379906079698325467808793312605749446079032033961702586520939570857802145878539692538023043776439074402686937814669182015182498863266561994336597149059145425191938785393008207481526933235577413962694364450268301172446788810722050306781415199246154609450222047221466615046529972353650372439511082471428782358216791029980723997886135813727599610745882588941523407399417633068311631663864295681318680759184970922577566946136226416070745242058150426142708474873767151517908754084145118517327671839970688934028919974087914201252189702816533616525410307784275739035874918138135693901964581033501861428886789024552542423841247316543583217711608837095496758384021950112598276431895124611651501390330422675241330938709041020102527114419731321971199423783905877554707235843472883102425359222775353465828991673299794198890728169627271389398804102723753618184117599573920711316777432367478904604513158516447246454458838833114955349512379213609505131635513924635817246830940620980870165650450800130057186106768048094714060067617576799545817205333114332018867462577500776300066039341054406295545047951675105712156081950446268256127714192845964023678288151185871695385970718471682197263601977287940523046091793420975904287246531991941075155181410496563864369604863260823212761913359788908115533649244927788430796094983594664797114219279076677890093965597902044782155817356640454822032574929854786201808205850219980762067361848315678788269848091580760948085648358706058472122553908802600465796393247151047482027678880700691395776739876980976369004285291671931636482297979272207519656716715513214759413212884696845865406691170750273583737066075477172512839778661089260978440750773443759363886835509979398612664302326938783301675056523232335092861031213779001323637470406266422943964220948068924840638371633857259898135241391211253412406343391968922164881434851463776146272870388095703821615685816660719376437044238839393748395465473123355398173017082216512638138503717514324730563247169685969032906623005660749126632324122649990188106043523279578437262996885031821802286638751608649609649272732754515698804777188529830264733555770567553581786296994610121136896629799862026239992788345505814655525964835063184772512315561439206075714834716423580581227650833483230944947185086577573886271769048215877535687010550556549464367930851840445020254729248769346099041555912704778919596405795570812134767985996589623819613695668705110445267805562032636973370283429024279587653761814252420058849050419594459548819367929339861253412467520437298585910717120401958814431969388038613208408217251109988924141808823493148919015943884611086492932161368355950924164354742073102884182786332411156645167419721707259213182583873852597159468386373305730282045214844590744006632333306643826074758015135314260445019601955817954190481834700982807689205205436971012211496972298759836783237130171904896175537655801103358385896875363524500637410778156694539052235098625202587417113026491634742518812056066854526147640504715959566734292674646941915898787751806667498602838631338018635386798537164907480676399616681764604219384867503606023116028494478091228711791535487362948090817239187946431544135000548699851781056243402739540820111330825988109672301647904492438055608750594854656178989449592850730432761311793903606991912950758065889859832024842210160404026030887663599197430382728012126232133032263568688781492520501880912459310075292249806125483885775095724464250972625101124036611248312225144393258794116257412906007543317736263258341646957029115910522905762286385483447000665372136980041027882680422086792595545431017097218979147828121419534534874198469452954671043215777102232363219579519438792329425813303778217347978484557541902563618262718888484872226108318429093585685368273385022770639661013944782609040148026484774128653229854732247211499803163468708627648834711333455352655422021538743132068045861280407952254952611681829922454301045978634713530224826768881300535074626980948926549751488563266774161796777564079297390383995159577306394574414212191004490061435787778480649036602088077044086708905463146434958694201707853172474394615372636179416179403559065331831501773939638268936510227304711830789308406135661318361846972169863583301959019490889916262999139257924518193076419831420623537711978808368659809834841592260283205890032670411095786046274711213148913679704159919431518086513275003315010247117691340676961218481117905310103225701722368701552214276090386911672339261880615570935031848164938675911463589314750539236569713650060129465032783165255663865769314818365151662048276143995905605548869574328903761772479188228784931375233864520446432735583710585389991341927877531236562363685497971253177529894275090023272099632098370792863770498373748402508853447402994745857106143350216118074326273717163942403241118045869292825634797751535672231031914276614500085468949097531344762385400608577473563432839541312318052025464175860735079613813349090402635450238719369030657271919930308480060471226023554877582035412281216593553715274347223518270800605142758355607455464006381888504198467310620079385922812673417371983653941996231798715399300526730057104503990950474916708302700643163316924347177476105920071166112632302158314101872145017477191816507286644498279697724429819983870599829563046370927867780620984332871492016631326241691731531139569272915839562320472988084942702530355609049742598042230755029305080264561017541636064897975143226685342206410585663637858603955655825286677182716997466614746357179074153319578575478642578822846970369194643868011229522088822089352735827377648729978607983788559444762881581261826688136204755710794120007777656964107963883269283497825419079310661822592038987082681319129085429258420795749858784574751081941267692876941794613384593643346283307631373362691446512750142132227754928037570723437881063049760309191230909284027837909377259432478481249346161740074266949547433595631993315292197114215418883148800930296061236673876729687608713730981891066872131499948997660548305798099107644297268134815533038777544233788101838994087468492836322138895067093618044562490855269625582977377074721616770365985702863343599838417523415046947095422100479983352210542193864849387353836701939736308784153245322361579166659539579789675955989947499306641816402113341669628932172975459477364373923778265209488873191460281575361633069328142709751350681454630474278769914325610365020891464376311972025836282407018919062892583026966783224081923354475202213903630760097128895141230038509874704329275425918780953055007372309014737109535043438975147775469698439785797768003305325411950148788267929688095049643311084791603639404160701939383626663872783890672737551067545479799443329100960730099612293110147615261030035987764946568647050048638827913224678289029928934397143306278018968785849987445277335206255178675803601941831101427557583039100743438552458332222456416136831158262049175378736434598780115707655078521465740209187936831375167363806739509713234170993755251959028929594009713281659826346778154474930168153146645227723988460523259464321197840543849861575470726606301779390583829238956690996971453116587019385034485378129710224385472163909379109162414249028645130482370577499659363005465375914544802080060675002252368836835593090852267861980433282743930385821596530823176909005751005801177101600102908843345107225804301715753922992313080414539818270047827863870435053680091158858766510466496327969266713900584175294104936037137404026146841325717542421890599178664509159266791848669207551444707136484903815027766451967825167889997594400123280166296004970630522020259637240654663733536922205841008999509026532507119174617466431469806663185144532848675524130618802552607228489984343788540874472864418043298932477985869731269756753685715670765159058914921550093875234445479956281780970433752771365026164330100654577115246274487892634678240186081845139069538272427318607217928411428343032550868838568043957118908285161169914089474145954470984661916513003489443924244720439674688713280819697395175538443847390697783855659534666801860067543504216723616152087876069416002171608851919656940621693264020915344026689381308836487432874471612176429097172972855558677386257471390991693631681283560873909072274084586753336624265992066353979492549017791949257726598526044267992483608020224401827565916333826352385906567403779595490723549475904807828648579085000465331927333272650737651011906635271894869220441687711550754886621856531156875631919359972852440193584264406433411186609464806920151126300994796791719792926839898640646245532334215210444045234309249413395705877489247891292614965398749479422081819068934183944527364402651472708044646873880822398809067340249908258339529383979816003298628390539452629409088357995651844891570709311073534429711332963027205520842264254751430785389153911157609267875304908196847187997138816328028510233531896042978099261465574774741300397825093031681354951246354314727731296922816790553286138712305711108857969869161040291821398834721152576219120946825196401954388608432016124319681285381940055603372095861687469401428759345227460553677962419336479320584271968229399038420839378613753724802947328462119739372784488101812906931930346879204938522380607698385507419230433532803633300116477674191536688021646787673942805327979160148947818556741959352227405611873635091257568838007233315234918778665956786018529018857478091175902189468290417316875983562796568167914708614669107339688955407476358606737132058998474485595788941697751469715496124011752722951372016477267641399736364794023868622210009569472145459444036817463146210499278268395705532424248341726067902308608808484876430517014018329682960089424968523558449109790732750061843760521096690496621525472088888326421484813819605840651865877383807328237967980488054701018232176478730852188297838568800550406732298653466879138675880232935923876854554809181175780342296388041817085871626614157355953284420720174221331770108677433720122452671732997920157877814147878130305420902541039001586873254462472289909335471683403595449927778463631760339831001501657705790449944951832845056676531936845028385976522382419662475000857070315049155521033155585940164033796740895409523271040192171252229848596693914904163360550444389212209480715777176521738161178823514470935627834841155487731145200603203637550246656344195154613860245600949191178832107417004941317702105242942989347884776389305358927874455851073525911739783882081400990428884877548077095263299775306399510122184139925115341053391857238625968401767851376400628424168089504818310980663952484365885880938406086124988395389414956499638051395842256144577930049576242745191083922360787206888907615651251469217065176553469666888988873250449413605652076379867914361735499008305661713182292625108378339580396662574459672259412002613736202013259513117141820813397519946386982412304347529134912511580646653570500536318808686721159392105401860752593291738409624212049266838278967920126949602646669230500520476966695974295440014825472455608693124395741847998568186940989321887470503914922751753966760081776211008174293549760319067228372936880667239626478653795246000683873833076419836553004561829110797162172109823615294096080683416912279091107815155733766184605349714159176368940705203942500151497416749600994323363436488843149125593147304868401687761389403918202385082619682274332390423304043374494457803193638876525988321872359294030579065604038030766305644568842775056771864065212020174769052133564312101906227263122117944147901455089662789048017945486211972535173027662925170734508317533500301296037464518142278874249665284813202834319950040991375973933822398350653475604282700442971508383764519852786381799307128513282647700925702860675640647624977498527552474068127031699263142000840407975703013708811512042357028320419438008344962887205758110335649169307050638806517213799781972126600169723822430098822631494382290014857213809027493055551016379744295199034313955003783507446127352480140204444790188957439422095034001736857832397234624460630376146094939644693878246862028574027226664679670056572964251323034640622458538198643050121310764556769576144717200986347095995117589505083683373232425336949579682511633859622806972305446513633089890016463634253916590955109938322109601365831237149826461358934279739813338807483790750195037842885948001874072828264646916691466251219135135357557534140153657423531952548717353421037298275290153066252574275496513762586480246113232845097237964386228104558866586322413469235289875639158635446937045504092809482657715275227771260245507098287194809804913100308416875283262117186446227816727233985779258724824984100748433162589782252589978663406780825068897758224827287848840370754097997469133809045520798244857894842259006627555057426492337065628266183556906373397291959105108916885523561669808437522721159652735084725068541998685735670387184282967317307523337913907669768081649100745752553866877016903440328316809629953939639755338377433679615446079721772448030280838754016193249283526653539094336515910010723112756025972299403583271374910345020159491523481943740294706727846919942423122151890280241962577581308433220511275150588750100572710189167195810863752903915064423428261673315121649748030888535949128126937876828917437108820126397727320576401745403512616001395651868738756956449232278489204137514936523931513314823953402552128789155338928873596878548760668027181919658365621462650429684932342565081700319601641298566681136835223894996375831651128794097516059934662577381525451851359043322932437595857592862495069780147837460809167548305376100651507116536335310238633373171317340788666439186972419017517091193110955979944272512258124088577934815355173924707605370193525668562683905446114034479645328401712013992977716544299255667816900554314899832228887346684497141493537013850972245925754412178931691298973938164122288839228209020421133830485160945904060729272867456025721664667241031967045658190807550973312370143170269439465867748051211842212238013147150965573920074033415038358436128132594668459640565055324909522674149863060309523831280899659237794647155786314562927116549725461587708342766391360727588263891467014488216314000537060706082767576078908497799267534140264651140212999224888629296192354239994596508076344739812644146701978392604078924531295974491826673199076752275709798219143488546769694676281907184438108062060641251357912060047169412225270566259006583641840415472894286744843288714884952517385127251101397632684631532099642306116711629680761821105994832860092074490600995042590894933306304907186538922962770207468316426905360120265371672271314297817601757554564417400062113502597899836577690606921278808859682728973377044369723288747153932864116255533062027921848111897566171166194797000799676088063009942703469585224688619587419719491365640904779195110198307539382380412047453077517470964392768512881319005986840164059948207089688075219429250528511290813643092151480936645248080160542167269686113241870207191247666042751097268029159930445838121711854740598420154293114218843658560163354235146003779941903682687545373416594774512762505449327552562886535265446095521421136312826816991711216375413306817124671684075978955198637019416976878349079269228625511727746289565052085985447483119396777413520952195042397282295530756161919029620476743989012446017428320932027025865485419212934262881017671608682565409151437934133791042525389380017873203569179830760573839877219010477335936081573370086314184627611659575654517830009591263051456981205066733089034430018221688904260700068190880761355842372469763885013044038173562822566707624222664394734329009377147132425461821648736406673074304176271711531910296272039741167023002369367619073208816289992293199364844059920448916329661672404243453336473287656140953193260851776608978690964324380975384805664210038666851948093384912544330398062697077649785165760362036839520643092122237497131947518994319965574663662926248578038871069025382189781234342800474491463149998911531072190714712386599301908157636221604423283893658110599331147420934495861823642944725712126919754977095243105356747685044026964601853379854853199382622260538240278639195606312378772903891642048628808301949218536023873072036626645065003292554999245485292087084335253129866878058748131091775626305778427866758510171505910952705453140736454206460460678419846794643312219993257877554959973638864430456742855512756080252315328143796289523493918163604630628482556053190193962714813227926947143991744561291762809516693405783740709188444169701115507802015598743593046397529346916807994793911424296995997974101481403056256969106002581231807313642329330095192619205309262182498902001894607818565362209204029543690403085605718189038487597330844795539143532084508121333225743227602304053022681729833521678064363519672003134441291443145576952665923095269987365764780443212661140158215027875659711286383605159042238025800107169772948153982154725720819991427209685553895818095840461628897196095327238349933484766278764533661315067528995562434947213951397755088544009588194999837242272087890405342295196587972940384566846574523075783839627204182700744239402589477198098013403658972302977024344322285289774868065195780864290097064254821395519203975060232909787761123334767862877509066228853713889401117215788031570019528962505890408338338842964523832438681377195214405365162305557108575648112184351396039562530685299452679793082345158844882142308952601016912646793136439312978522443768877455274873750297605985904732727369931346871245719515633803763376637639955238512086795286696977219541004663721913216690760997476254475132255210716231813154096137731175949137081696967754860805362557319622965997887569014086023681699693085989861502038531453569607713265449857994856426991392440485363253548173179002283685020118441854736349078687160975653713852590777257684956378860040771829187865851676743469679497280761244230568453666333519544499001991309900393669593400974546871778787224636378464917013556746536805216176326284721771368727976286853672342028541023584984945925729806739423192608026260008179526481226956366448638119353798328249329250198308632009971220312443808528284343022533291170285966413824965557916216085654686395849360360795163199768033404897922820422576516372648777850186268965211325149971221252538232925477015122142844360916839251547735553309424044246762508990334566329972709071074246719823772990982713691551324840250251104004935482399051321932878342205364292205439624044222955417630340994957928956262447894337328718171017006605863544574783292015477478963215478612706407341328717908670480034780040676540783561794444040453573094480925629069027100251175873501666583567647977047772528269992346033719666380925028920313056016626993746645056474619992355983820146111795993200506462886202697706111259225129877906969442903648709132702478391008464437281959057216244650869235152434671465288473899179163084859058637556359945407190967478574266372792596409936806087493695392918710577841365561075441180447246551874286642212795550121207627223530713674860449363748494954184632307831213654848782576252080202157870178446941378648191737563647179254547742095190763356129348985943069501509747115600259140102637268968466021237181514713918988345206133871526307146547271476232049089876262978895912382327531819143367462581979510593089497001550622361771590874771268748377849900669624528090157496626832811879762383245745948746519203749589794775329143315950610942385284620107078521994615500036570285914253442493899880258140789709059635171467885133467664240290954220382018906957908148793210497069184531124025961704668842190278648234913014948851900412606853864054466476101571852571042777892633388319103302136211650830695320326920290666617803126364163540757092750124966671339789148761259816620076635125841270687404712576400060278951879379813525280068596807563271229603322602537032268762890928857773889990554224322439246502749633873427633558885786583260251548692983449629115250202464901401712774164718579610143801118745659733701092229589577067983008356935669905920383065744971577623424576219710391644489227409508333438905157985147809796021407367012216237475491679297160974868630258685772191728627972788529473031664043813010183478781370471965381908781342864555287782796244226063002647555024383079170876558995908110361434372782502661903053085838064981710767774273682479201662951751460025240686208427091464597563710554264634145234314493045230474734772756768415588097009699696116658159000346576839818191106335618006839487918044258264670660768894490112853346627144853077692563835679958126713276071677465917961156303686435857285632305344382031047417977507923349964438898241708733460959418902156384254168894483708194113383762805066211287718408817914458556154677418674842568581800129113139186412246983099700049983475671374592798254844576186584031908865399376489181123649469202249843234572251205884780739441052858553931081471674621414178674021191679167835410947677105554502894988536676080059415242904465757233459182068141948342352756612316062029618996298540802973059918538639198529928493310278618562038023647707563081285643602679209583440635029085563348733510928638996813921381228463312140088327175882352997177389666440491189795096387981997485454277338507058879411717732850529851105062305743271493603666540587519143157466986777118970813361301251354867602089201729779094814920005379617178987075432385019056100859358489824592609569052241869247171213555724986431604479239628461327304497340226368953370134038217277260946731466926176751641924669443493804016246235397665493582297744000146930117670438859382358119808722558239424601511969830602721786124106763985611157143301359995509519280399013188154642753409825119435381252747807162956455317695454331203250371579857986487887277671195171102869972610436295421671174234241470151044312866437432335541630498971810988613831180052704988610317530324504301693723166821611512243629335948926425406903446739366430261820424674107947843018027116105826547577516700083726588111138816493603576759513264671568627471684687644570950294459713549389693061619434664142654145005619720175506138054151134334791172221214769954066358258703197719857082148015549525512598561109460429182748606164106617635264774409783593046850344260982727809296955516449139723806152170118938334556366733257208072599942202931408731729643428647268669111619268670759571365736056967163068850229903632987830494557809321281514207940361192441926568005843708347143528102764624965038863482537189529429200369718141006988918711509667341007497177248336161331247186256326364507660726999658061428077175801500751092881549674026177265173368189708743693815951416140222807756558339876519532668572578011605108157837146422753826736575109555148811631668785171403202678318649539821193250545473500120482116190463181912999439377517314034940026793421565911689719811784531699325925263643491730332982826979259090009967895099873780239914698104830721126210542610271154469783145411911693942359494337026956840969959007435182918940432078136395869112549634249812910459238165480957671780070018285169249399567230421808961553928821461442400256667603693897736231589479813740562481533392278162036499541492537926352766605833023171147966781999354315054767830184677470328064940033533751232149148609008320284316908136825339891259999737142346709616410005638971029171478506280648138197076329960744855513380365000319907546654158317026576180815280295654296603163891168914197456350009016162872108741893128552762295252291757383171707006688721521198962668824971820030921872381176703013087964813404534617209547645898261377373039507880323052739380747426500821404694735628448026626737357766051407824253491428455965490858293220753482556846074065240572303277700904132172638770680128088895857379326884751957439767784392497142796971497127076381580230108563790306563804573993014677110887164241804048259330762487141698388662163109918918047560111894154217592575759776099174405978274606875213236897913400691150499097543214486675901431511255268077752833104314858881117586823465836062547333893114595664052117527321246012084896449468025474500884030720298453325066573341209167011100958917827342379325225495928110642971777981514722552246371904810766327868789848143494972647668429132445611651927469563419540784708600619609185523434877431892902640552040718971460949397693678407884116099297583183913836966385191456086771665468980864515378808620499882036763023829488992388050291849948169518235076656933956257651290971567713276144811278314688767884070303819970439601107062643001200448756958197074932266134116521890430327631037147546699494001867318029486871945248782194716020040677408330767011882651723024428764299637791598534094928077661892535433369283205756368922809352698248454284735941080952754384023615309025798470760624876228586953257772082734305243361691753691962052734657463026649949571716393771675651017237157977954696222549795159271245213744096533961088818396128835167899792417947657242366012073119805786412157518134637787681475049379678321612831774643894710045369841456080590878996008255764955151894908963198557160712645777556375781106300009892052388888447892305534770141066530807157279293504995374688446478295712391890176550486783236028720875250174460315884480530801839976328533843013907428809519728039638763513466041458242067495269283590364437533342485449900725229661055726790249946575713442309425864590621538742757430778292519538743444613661361138631612809022671294729074319640910105015073625852053074306232775081557043618213805406710532718088057290471214930613475007927766971949153466446333428363113036983185158153624364020748604522838097635743761621319649753235070329607657367819652510633513078613795308169987368123409603714699924653678490515949231218432959655749415810789142203320419700053990727485630851793552220266012956130060413836984511508357848714985331146239677649010968529584536644735401573539337595598689292022457825550779736267176927060406422672305302561975714504890204677178820011802359377258197500285453448280153582374188058773562308192442312308996332313026674823028236409418481174068798892425709411597111645529991092978461658588516533693685174377839076669783926185146342005517729755150493042529540046388939199100724273802667777629899669408695327651863213104773569028782550520293899336163284616958740618399811499921606668959497697329013261650640709821326424282786187755086832753109613916119178015454475239114655088390177794234090326412890437857852657856642657952233280045021820905106121403017469024482341393660167426875267857708366475076367568331107148415673482962022391089470539216252482807317281896125196659339056605603638246141117103874334409430811702886386634803790026984181448391901759902668695979570658652914188564654417132074763916045142407099203803444245536841184286348913502026542836751902060131231075920964059808874340128034588399352481221434754772090435162893077647096378153935800720815735536797052269085383006208633080595843955614760350573641809052862990670056585017480514140729847090722422921052418520036430325249558159107739361661005573721925497332322795270983618562103315382404103027659827536562729921106888407952431448751979490248893654735868457555450872813603499810921878707024815018050479863889261728676409367346530159819238812546301081793077149868622228920472360962963672878573393299441353599527386748082858397511696082366482010993075746816601929023779601029388948531002471259365444519644136985130248334132248337186138371414915955475783050995338190585627680156046314559335646189382848081789077571886619751439924883279749684316790861482932549512475071857494312773843182329115984680974595123548567343857169646538416707323638834712897976523228481446736989385688394947643529989806775940003791706755005978466841449420879452057370750293081589191797334475544433817308852935313844892100684998430592777391286667357909912676708859175517429319612393685270360594695532215411713427021640286819408510984069818139924655776069534114313940065668929880307417684949648530105779731060069985959503467301678449016604833491006821041960554573926134396994007610121759860504747711992526126187462883829172523539923761738319863904622151992182989450339019428715698033462254955352849648296624128606794952027426543856083075271057073753791049971886332515627379705292257844462536895327578269343844279213585728717067764118280515795657071921499213145285403984630171640992337937288505076017942323528502658552461168443228187363564594542881753800329860137940343038782318387976335353989015111370672961899791748933908389544651619304250406598411897543698850559337549061233997708469752302836736704201414577905390376666549775625698589949745009196062191788356235061130012435806036509112086869210764481898744868203885906306663470665476189672930733505607002284200402376539228278152821272398247183081982580835849014377438475345957176523609491139632691649781312762541500567653678550525792989958013668960730122694867406052566329151479439079757187964779982952421081348308715746151209644138390289739514820812721123475417064776054102305623023214639949313702973724593331247662421434816218691928143623133470302143026951593662383986416640556493447984812653554421482000900432726329098556206764233687072175504354143141669966550006397894341010911751065885112630060471418765496754019473703500035530953025705858134572162472579928314398505524694498356252656553604400067602377594052068809190011161258311498747080954828603900253242130682828672393501534909720130596098812777687215388330783377784951507688343783309522180179187376517352905487641489505056363360969676511002657262400311950035354678120349343571053578261844590734326559814477504081301092237837479297276770439286864374385032340738695651572542704246426295296093523245579148232047603032790432512574676777305156207455086330702973702558120063585454545426901685477756598543227612276593098427346021546950307894846840229438080567910174568960373267551607420181365559351190931592951240198188362704649963076064969671277411876988350000727548654352060403189569791836619144941739200124758227306178800891223344716837482013033897442359901494061504076224749047574764397979466142815145366698521789604122062503510125212023388125580096392698906817870700494815157404445691713519376316259373843144834565765687427032279603793028366760529711818992109300778408449909326868209633282790167180720806439372601421806008090067289977052075747078287360696978506222687647038086576145636549666962241437001567216473163980625969599896676559223784151248595892271699467178770028024209628425306640918234078900088256704686274313513243410972063182364141018873301333975763156398359780299954994936680029113277192582035092493489625231198003055573466569377730366881334836858624916792281070871201738220153504274574214927992646773640409967273847407335478234715937516418613147189704703017059845860570164394485311236221503183842895516653377171809237603598687145203538626458945275388601978033029950848365887942006429994895180820305856898941965217013397500362857015983677129133942457700943469207318588769791942585536797854214729812829012868436432912659703144568956695078341899433941016138937598644470189185449957999170224730948316180328154045684365930239452024949873522434255623036185828114395036703815073966143757431630467022917343059080414135162639735111658872547298527663322675736532181832809137095107382595527916470185040181057157147624233077356684291671836928060904232931975796742677727809166769473453844385344852196545050999467898015145996743049426677552400939610233193073798488090264104136890276759601674850785366492076124865253852543960284900223846305756775284279705089283906541733489262558715143507151642527575258900445505708727657728397566220770927101451729746509585236610570546091109666705832023366953081578091958742652064582581558418698623204971152580466663075048230942705533102962374758853126583900955099663293066398746641908014303652926437323551138283818066865624259810693639831707879629291845949638432841252144212078093496817833814974172543418229532529862288672957703341183982372433302221445830219306688441353430467006070712573154034686802323933576615450285726183617270263425163542431495693565090984952497087666788472761814394635405206435864243774678389349337010741254126155850589958024933595940675783270503226973042502676422018564180859521689606254008281481214401480662529436659486091850980749563193707971528604193295352599281829218861872183092213399394775746900866106769975883892723514537555886306969846054281618417288601407284169273549670294033463071955687126833121954920605179028595795126154384660524536075199159102080631565896716247322992881860159304114669371372652837260694815434437201829992782325901620783318358793690172739683629868829286005607722475483086489737267661764449006206487677293405161201729689339362898704899271161038517121056928349183343249402736601179322379627962671177409386958321385169885285737581224857062468817252759282719980924121082961149286229266492291221621470344859627859048738368904439184500216848444086436310107518167359544369470634291423130252240447283057276043481653776764977864435175389644248005378371528572361056105048039973028582777852225258614672284989986743820211168492000928855182671016700636525341631844643058649580921778544695179258854838974169283145940664844355003798423507976894555499762792695637844560275450116972196994261326310195251334377597352251977324201184677174956950504128543855147234302374141808286531112606107102316107649468137680606541563329003790163791896294398450524070135182717087136365475678605124695964735273596500109472030471171425376001681951239271088420972222656759579970224327274323817115674967333162651897993659330002385777330606521794240223644575514022524520838791401746900166103787859086822492994748956320634826383573531692368949958559094524204562373049906745156453496378927432269400955841943998802839138309280814767159163066202677027031650741594803214873879323201387533750718125282456080918145555758733064513720505520584543114317076623025269137929003133425467598032566561131451873018351716085772932487268637478539573067495951172908728434605740238257763792385959697063551611116316903280784493094600666287857543492130982900600508388732705231489317462892612362250100742231248121144868377560566037837626515410959099876134038942679978399049451500812996320537556157014052323763318524250349372883023766706308595454558409221931337191841731327709378032728734898731116599078076696050628298413633066160493737041260454591235467534456081672182841081286932871430076311031899559624788798056019859088724515186473015034741072031596426315501538526406433235875505152814322058449403441042039710010043782791252257785123262594527067184648729521487945046096017977051409324665435113977442380128894650550672613931715694300489134340384832162534993982092951383313759843670165664324182856690525179582835783717978036867039158466051128626160015358207549997322768669150752602617481038856129329042301521477974340621646903617512952671295550027610586061706402901023057489368254890398704601415912370780799590187139181316515066525988921995265019246347207582691591567026730890953580843577545156499891881786867469749391613935786986792363898024277786803703309200077742507359382310735896336925621722306928047096967034163814980809101253684105707536654934075779962326960402267883221871373278456251120313027688756913882534809417037952881627190226458175714212705849686639781528241250904742528544891810072717688352215827914968071255955056177257478270016135084740906081546588925795743019203031205512908599828520055484090617447630945323784124817711786687317505529959308506806915653318398240841523163896987428995303576325739928832185396205777862285315293117792851905448557232457119534035416775656466552092659412180308437012518195369863680850906339891989985438861586165899256198509683986629479672507725904172995060654903355821560361886381866168328446049321290541526881156993343907968589072799743116617368421923958232593046364532928521295632894324384931620517416727991152848206662486225258961533455764382624869940798774625696808842354865853500032640555390171562632721570783158937445598938596010476044727597139181367767028360610125096006430964962466121161622999817950562783801116160886533677769498523073867549076794239524179857340277534271578445245546328569462163814325148259004398261154455791261879764846985609809741755637463400444891774514301936670098502924420901666848337694737290879091882711246672597018802759242677546542585517798596933617028051502254470012946616420012192193097266818971986177058612371155344581849788617788175630465848034395750064128489569182070544037892750668801333540198136815274433303843253245920029748331823215683696238541324731270233430941696411080529510501270369098677379933562465156264850612957933861231258103624811586060739809440861959925798920149127350722435401805905396668934999379495609715543798927340195598221709341179478435915969218027920175870756294891187104770691635287978087441744294514729071055991339807407441676450757791954335750631651257112251688392704773202864616426675405383515026079616810259069544833154628426952996967116490104456201751843838561203594506689488541450015300678791078133568232176500655640806652946305495063504514482263617743209694424309375024610308960343209873210203146740878231966571678166167919103715524908765290906267497212050987848729739963604976866098874981019404536162100658630858661406244868958428408603046590698572153446219270764104643181429105308451618703787892508852233539106400653161792547621738760382625994978551168597838038869511016082652962249530531228258220794491657516911411182582108618981418903902761010698193893993999396321676728097900125459141918151501790926277935925914680270783200182736757736993448014143530411438921494145456093471815640329526330682680418659696320989943590775782437194000537869199798767402036599639308239229822117121684416980595996809400087421055817097822913547495486626748389896171193685723222293438398562132467069841745288525138016244088522219625501457028985862059983106755582672487694066350168335036057299286428570450534508200336477684431914843904726604950039683349247080918325164006235612534670117397629691795672892695152200965932975040755457793327986746995968531412004184545242235316209112438512344538177788411710215405641628746686749007692717701717363815372134481571423375479536673335579949793106148024230404854228035580984540548851302953366662946255756741862493257793025012045556161571620007804375430313434865234501817447101195780546924212208571691479594858781044930281493492683666380040224310643923796908491927789713113001979413496503272485790084918880900591024249550103246479979807585655082219283611671771341824734809540350769050318659685802366792954693699255508173157535561130244482497886061472628286259584399713394168958360340676378720899499323734067657201619300734949842652704906520779253181702054708942906279744026027409514370652025850335966572948776733083971019397472825954319576188412225195256687430695548060828902831338781551753366349544802590174228856389402683785855992533334083771683051945346704552347230411103534775595782308324177875546236985044109782592742247841682380775104076198708661584204944190965154972791986170909002651551712561215369000910427671286917743035700834823556481679015502716241244708592303062597624342957717264674978891856897050326991704710779761858889005697515653857542686756477511536104155168369770290488385805979799079760042513863095402984946418813175702958470928028566437855433000967149994646136241851325048396093748784042426457693679250752858596368089788916070975211877527965692942548513523508000706101753344143337963665903639471194101377161916174451940602520315772352828391159556537946753032817275694976784744830300357240658838044942978121170684180706888264551762303316266763468405748390772557194564336479853396015507537049546078692009490614325718119429766591941236651638197841933689085082220011455400605314918052215755702344755468658564623697290958680996546408888185054151533627219949969222447356642414048263240032219127021998965432196849365777665860961475801846177193821850589149654592508382641259871203668386503046540751138544136142134405114625086963542403236427275533409620916698448996054914898567939583879473623243123812242329009388490003960103090809583077991048205047767349469477072961374413688757743833770855167187847645225714169054542810276094287544650163466196386726394164181602421005765629358896672823602409848964423763949349006251475080181351380859832901370168272770225745140241188829684849318830438889917023538131150898037055984560354458286288522614920169089654696896830727711002042706855271662544022899910143292683660285177869901240218605506288318623473776612034245374017947050590861398619311482564873369819233878404185518514075028790810942500962670442084200911102083508072612124838279980071465015696854845382370939332757274034420890809777346444885357034929403427195817508667689830552236016268232654491943907196794965603751702791513633605217705476753042814454641781987142649697996981608803458350745040518955745056241258307580014068249791063188298464908002382373978028811710290452204121259565151890986325253538758360850870719507755447916797133878869354351385426192169374578171866421518220424607316628647180771984585739631156976710555461207904037925589369484928273326803899786381926427037657899611627317587459898728393407814690297015004745427660317507080228509874308513353041618153424213780382520817570993185970496165596465149360591224443206087312272777190115369121950600905872265427848531091088253647583903158783982859726039416429945842234654740691922396149663278133970741940439789581825859008300950687333346317117093464423080744367341464043049047137971039245120843492039865218253628966897634283285889911224897383407446929097274993007522377449656963430897328062624939822853216681949003599166226582803864529583245552498822628805953599784763118909533521742582830501819472541921576984749624578702325052994979014475038962270884569870316072556229727126531675963700295810842824774395866422141171813003440683876415352873475142183151711940251415317974885115040217049476324807371007982093763187098793599221483083545153977331557998531633915753338304378521213068751822348106086993401962019183162374810431868062498720532818170913173245073500601349868596239115511258103767626953034497180778211537716729614207216665904423569539756589560501699947332720095315849782114328947777907944681308995459272268141475270220286383756113461819935474126835824486210937594799952202863979806241029704133958910676104188564080275076518661830759607489413903078652422162600969917189608693014046727859419109165024878457736449841523323174364891885164104741174881773043448717921086428007365728968877679561706782059495650335373227734449632137604905221827355269417628103398904034317926102159362347473601846315854599118090606246810704560248551817310530258625010017354961688894088078007831218039410737060634670950785820221694730648553414300650333340902061331649371527710015531698474989834670685439397022353850886678808309350371280362318885244037691324097105221272114678891341833881136932319364773719733394835689477700658072056280238982300322642809342344356565637299502937148324220464618670469281661211015685113089056715162589991689107662668936983639290194974039728733191185242324769547842019791680504334067071757372365283410173929474025601336562417815333349485376178027051464954723619319853334757364439706470887121627636378703719518219121251236553727224814330550681323709437375010271962457662535106117679842041379721347304637801418559462257734353727828461338106896150515823366915805038712783801647713946693662666183106234703542961405613946627605654476587821201792093398787695437652282131561869870433885405833660326969317532736373628628685722216942903407627542162881092626400712531729065080536571819861222543638033055777778090243650989414539372975947881426929982117588829974252859126321302238044132020930620614612907861329997961855701289488543008988131490948072040585852209036048603429435926522141039188341609933291824148333968061880787331825161304456644266086333844498888410471106216361385137222491441285002005299583849279451115469962983168941535169287611749795225063900275290364597857584802238694218855163270346848085044596555476621746942797623392700490212209087310184604050563417231104298620545019830588235994624501397434797600124130484649890585489503337642856199825238650573557801394412451137839420926315604334686943371788039367599023202294702609452459755321399247661293080798805081217394865740669460732017301983226506349869424556354982783792502366054362121513742550546569038722831869240109863506965539085189159785772897903716211525334759763427348588195021574572818835890174358923479484613643165898755543820546282496473352897530841612692234541422411936287599548830853500263519165655769575652829371501660870725645086763560608025987347461782930392533946424151043075587382164320186980342936869936097103105387568649787833776330906416786837514113579742632605483301513142185755251577883610782741416589260502272306447562069039600028504606923671858316232627175243277521375448335227361929455440894234725142802119032939981776269545608960053872694750982209957071587990749078513085525202840626812324304695132783300091945110560944084856133112404276337537708482858284062382575289361990458876483673100858783711119367315347169145352560982851373371621852308004201917502524650029773232634488283796232035913129397034752024454328388041368741568523409151291356691186403209922912283272250532858608084567245475995168189461093131989580702961509311884834672266449480343184261189024582528449448164760037233713570827365110053879536676718879978048720732963459011770055629997790700080719767862403261012385471353308434952611536247735687957979159343029609600845953129988189503139619902851834725452282405248139981700367733728030028611892869113023825695762395576845390863528494625968398129227976279296944995924394348539062527038855543779360995396972951242849846026672200638669663537823920093689990031573820373033181566431460934928935134641155184822633700903263770025519895375227849475916222191186802752939531785370795707753666585157212220399615236616735698127240180913418364743380658759745668681584716269410017105019895212840487060606779818043993002942682556963991812233727093163350568279950409752915187566486976638807346850454102171120249540538545928782561482969915024445156400763605083951082287162573906696405464442990934244563384084710769351469527244063059063787772767065578633751055735388844379690399189838365881253602186215616632832425067200631146360874959747914049438193338571110133129400542296295913682475637068059011894405525979257032667321185034090194283292285591076332617899392063326179019492000335719203703314951412789563384408104131894536317933268171334310639937212467278702577583298730248719791256785672222582994751258946821603507647169352468060653273790166626920698381627291429799928461320373871895105476939390245467582772619098543724826584721674358924633595849420362489384362450385475217923229545458430282783944625904056822188218659375234501576496933667289760218835406218835464066325636072944689739256063584580345034175774046577835686452263362130510927434007657173896101438682479442230279146605364030083591644067636891022900167005192949316088424888245330090618263556129391232671592089511110919334323624254525491336604569762269738475715894680065493484908558117760386007264830581786262236835607569760610927844199376949225991679332941874332238863625497445770969315459031665692783159036603913387938252003939718700615014170618359907636848613221971145788126007323179260355967683169320831171894590746098963612801541865645099662275451644624991748984162011592106567116612130817903134488525830340198037390570786498406371170408046035632883642698817089012743973944769930127685974325985639932362840618471972817136110614209368538402674606347469178156293185692945118034200103727158937850653302931059600552464460785855770266229717813201541250434389489658750289770891954903661317361235288761470165022871998978710512750001703676403527863832689822917765863744830245239668002241349350256814430997236579620354372990277573383552169921030686775037954727023162120916675332957092649872415620909610426202946923198308183773719521687826685405471584728074228626395771679729722128012019729147831174402409515882891823669197060338009567478586576759570720863918749941840216559058203163664869106423388158521711459036549612578501087381882253407364319337479466157098601745130631949578678634749274676308651755502408851743109862755354920388001863978546400514600691346421767911548043057695606554964687634528405099890642189163603127004003476623543234481379619978335255224941492511028841324192387962257850637193717581774828947674604626490106515418615836385390440625715559784358926076693515717873185251399476429962043915298658749068296631843337267928700026904106285250964886343596725164670535370636155787886586300013415647456389826832593855892673300204593932521041857727360080905692562971995445464269188562027383516024123677193670412443001130897281461856240857629422427463591936394583930320967568271724769790660140527998035162051220127412023672514857284006411489483576739465759968062704045869892839197145639967852952841393029851501639734917620945376523036322416587659134279802725483989652427392772679077743124387198890005421473813865566246373184336961094917320918020223844001499676934453133672178720509042296409583067742107905383119200546597549253808888988328099670510700671470268160944765580276105474311053943030756235422576143023257682068301206977661515406748276790003662922512800729888337652140845025261614710747566849121173111006401943318587613563667042420629531889809900685183447931605168585172325098364647134741256328094040425773900789270922551635549624198663278569414019539554894668446176127631605385647900050964480047756268607437542860466192675261182629003125665903109996734474311307544377979545009674712384819901317021988806552461574720160502466960932603013628017808360531430164653197705877415986355879670405994455462981127188050787790823909080037228578989395611125212678128823467373685695006243724300475246248927884301009361245685209506645543796205495412293243072747004146252628109439349594246717831502767688893939238597932154790529489511567815927952955503137125098467519194263239136029358048262492999671853828723469007085328304393735622871446700937472908185967219484558301032005818459584406365938003246152903806224716363623967694586596733720453356895236582628823826054897867404110967394782840308322457492389743746517004713472663713696076019380424453270621974048108448251404129732455013469601606533580024655874004652417773700607594956895348402540003147114099474573229653464993255167196826287438249328827431358048143993786735963343996683667872722696912168223722958504698866590913333471267407510464955179860321267149504519373085485245111798359458480601681049331955099292127962201190914727072119469890526947692919803146584297407924177638032751422761625364359944661825354795551296464916134029684382107419847230976640043127815597471687379408533257664024699194341692444416324064247651619771717925454619343311336945576137673652891676845671917903853526467621077147599919631061378437712684857915684478811016899210114571764282822527759864233793613598515504216623131949706827814846905332201306899758528079469192506566978332227847629994313751139810562711250629108341876971941813765855765006343372545132275814822713079820441668082912595000095100898505725678754719960254621288459584163657138570797891065436426265898208664910998723096053184425215687610145812752914558182645020199904171989174047008702350240532249094546022427701098708293163669213913925246053315210858142024738594472165168836317037273794353984367151721497951584386296966086732867351970969739009986570504895260452125341521140296200316855811317844579321895092790340381763910692464688751649339297040962563058393586694766451874525932357317344257453978663580623306299404963679169117152538562298653943217895634554117636229026895397584542780716524473855819963910892372083336198179325661054323787470981422298543481954876047702036849072473706292767830586877257423536786284160227380777053341353230945465896417087721736078986211679975354288876081387373244379492387947283789408901004663157144013348410756105021483036905190176406501291121173210318238237863976352991248937570898420301725331853700184544253274478784196535929590305002760634265482954133456441973993617387830055684871395289331182947367843303347762393166070694486181568758330222229243241980623109742767842009755028344388242649868003869726170523191154376425257147372684770690145486489878927060296909596261820813257126273438825135756850606110459076220825315881398645268644042342507023116167315946798187490746719391855117969488605447175479289555521537196747065100872624600695182651756406369263012543888483050918042182820859472135226738613638699859593556889741638068060426022872603654016745075973162683194267715102664465966198230460067861570049843543136738831390378868788530958071017991439107952988173416117950716529366982620207958432414686759419943024896564147534548297250316972657590542887685517766003772179402235279124429509449317112941287695271716062213031488565135125895218881833590258767163614396978479148456952663280669560385165635079166762170695926895235975759730161126135271852751361509648128568499344316383302767949029455334824597211012542042337395217178431031718869932881027438264480097963532223505887696652273750082943598216841052969166879964720613924767799079807907178435192097415107527159472922057643165392770776745843068087100742276031249183786528940669775785479070543826095433836126603381888349172543985590512709749058478160980863296165518501730428939197319756416230646250115514044226498665610082807764274141991106417428965972383017025069940884739292231433706073310192575237443617308944411822365070855286619109542413594545845793707416748365107100693163515874411175975865505816457590898773433600027170702827956726524527937969448158578197338083734465175819837365449125760993027014449883808612107115376936195284134718607198070548044373843430156123016554351944170597833540469093194173658731724182191234193545598544286667320532543289040587564534747065961501806496006614923296645609150625604221982876868120721719418778575255525394948834153458096650320040386341499661665512708535651288483709391500028573020156935104876665194809946114855327447751314668932225302237892833464989766864373202496712927772560171218607520291845354462082589661488077720710952265538454488495818036881702024449608599927029794324433571041705270320895503786651967006107400614256440500394600516190019958581205179733271348122010865283052313354756328193012376189267480940563643145370844590050567270338907009415132866909303453061599621229446150413766200281138251379070582691984995161590449058373820764635500460363624403331456975398237750940719486442955797910387399831266930846425229294683941262210244551708166941750896509326410782749871204248086368675919526460163886338701895274923273699389962220506118043140694052149028207985125424824464220514863261822690943090849926627793801171099753904733654110018345577285059833476718582951985167898370899210839883573701919273189444738877632399118764233586572988867974389545450400032193891223815862772481317371076107706488559757903175444003602269400935363176836188240883368840627743724036519707868030551542493513196023814820321013319289657854554670239878503455875055991773534437613742418959902691855654973531242225190340255371585912510618072382168499011668275984857921236620595462245543427894974711097171384435491466123175510248449779829824817144861552307957753131086438021802132217689992474129347367525377986328425589139217623754530366208808668602453190146423569300815061300324921203294644620843193537713543431138340655202706568622466272389958450695839824203441587085772572123832230362553988389047188045751322798930903753762784293665500470540752849333680978900824376790495677792929175929660527395357557473884337367564403066155217892284623331117547648903005373607943199341962273197014143736539736305013263841672223538672682497315747792956705744065660970273823550718720722921176207551146659949288845198883078047812261385751690902025395790351557347555266255614302487657192717218284447504423054053396385191455779103657326247040908372446331768858158668382165607864912265648825221149192021118662190405095559500834131620144843758469633750919402007451712162610436242344290199932390425415247843800178720975662179760230579244134926574266686269520055880702988180111297498502990986113502282063656805094972036712428067830118433979087098197110093887242493259391852493160720267861244753547211417555579517598798538381084838857144566507858449494603976552686374416342554509519015090316567998087769952981561629805390925485748402926749917997691314877540938330271423957269775255506077071305136494169317565601246828791544166462014037835153873073344021996515987181283563940125180850598927807863717525282296277561158570568359124704589052422390443041892532632416011314954804304171090194398757879824250103488266046587720966002914933915937247119857903556852514806271169516805236867104300835543808661980270738371445680982799804468401114253785164019319910615546894647774658947873897949370278420567942411020154743190051416951648157300817951915791329510801522817887632484480068896446821363568063001482459615511260906354634363213668714223132067825735038917152325897310802805563658223253586077249463422502815076546114341247326617024417300575848099054463557656182296050416779014894249109530868319218663551625922511707144328015838144408756031620496089178493762469346853317141178030170915778765182663791233682238508314110349273111262295138255280963193882405157634251661246523226886284121525298178480246268035851110193482019105768283945297502994196827823240705171838658535844705916260266858545335281469891505134451335524375683948294645827656403148662792169038039420991392023402787091737454745760352351699440055574328397294039315862004928180178535196924050193450282566614852126113827372822438773214702013477619618400836986347963927955646574068955045253261780159062429006379648402807625002053294403117148368036968617671712307633330842951341360856375258069097321245897385851058386294044633515741692182284122881551194213696127908622186945911652689331086065000490929932070756396008249821206682953014474434059634633109348366092189616695437704582768572189573445286535311061145015381179732421401287445907360761945392858277580331993186754769354418161409982194500821301612119625221814294104369882755949690561998810332896074290571480071112692208570608630229050742617557791375389402882719593736216878577510667068919714899215900312347897469282346400720218423813722179842597797325360626846551875368513584711732808694919657941754479147966549185361594554256754348195453751201359023153351154190286771972600103489748056451248964871549872806918647652678621059406191614862472358909483753963195521185930457815182508879723924942440042173227534306494882808150475635120413471373382638585803415990228985070156162597197514183315760493398382918297670723562327617008745638861645628498287753871143682032714276886858519799208404164219244819123833750916440111836801101376167365958058764620037285446198342860823418323086767832415919094671776295173906062287614003656039649231383587473677718037494616507930756384358953409526628572706983791009767840292856084909072297271507300059374116281923868418620199380510418760249838307953003767783783893144743440590402370435747169305044607250874745775274093760645335146901211165093778813210437837980957988244823177688313080087382913386402013208235230157247754916762254314874942155357634160577906316247267363269106593355366005575918461910235533652147241104836016289120906165789762677501061636219889522615744576727932893501451990072865357431966719066360854414325143006481709012097161341425015122298559190676464503699256169473050223431289037772261573902306042757449458832185872253089246984697664600450788750826700331063962608117799673685165562020418425571455244302253761962115897513102978282974441099059529374737298485649753248107845134879898051877300616276005811903217403171331877620533452968823879576582367961254805724745632706463215423971368294390403444528389288477321398119162942085416941837783334804298159904821176644870872041075801282899572675608333395403594007064599056923389530743437737389180216622406910988789452933221860313639047629135294132528690811089017301878074033747344343635522598295944367850584397816794587784524842303673770453115410404592253975998239588065426273183545221908896988898921400886801176151940608198390191921512067933609823703453211077224433762137050394391569514049411853205895283676556555407875051389523048322888063690958767948158931200302425564676342055220003746352828957019196723387139130807879565075043575713103367729627125517533593516136229016658192381323741392526101926419645545799932019043054410997920262399201186017918304399372198753332199313281609159715467124187055469642659665006960017192796096056503371490965138703145137653500905621124208573023152227270467072005888552330709745220965645584156353363817676395106971183233659278441810782675680340603155748339665519622702209617361061592011837902630764771476239372734664344958919748306852954185878445124853657549121107823958036935745674112137901143057843167332216415951031961023786622193196868998916261366652811759242400708082009441885616370079443814064772862016412819047786920989338548834619943064692716867398742821879811174203106656037769935199071587761853851796706034411851915556966490529905350043875679120470052721451528588690791002273243153037457632505123089115706662701446394038953720200978830519242769788059499073004405171725607191741827680935564902202244623931879881249078213329135130471277447739740940124646308773640665915041564107189891593317378552043343131393931768213476550335359250133248451889980622303201107222396824807323777385883759222701106517220638540358376598443630308415427658246380154322445600024534204891097871996151061662835299027253537046826535289790394044487878112210793255154434339033364933432723386767009724474424784741520746763703676528944169078034791738809282243950944103066819521656905832460262526159154371804228212568149958176661384568519610049225042235147401189468669321559761876893111961700455227398842411366686866642009219310034334389286996356095943726816646809930690784654280575808648225366859925790576940791490060217503681699633624951947548510633116166076297000598592619668251277156397427878180576594436453966411520136934247751430791325350339397373852925605420838886875479966874647765252354530619895540149392936597460362710379887194281104443121467185852556726870185276890498937171241341745783607550223536481242307572438150649399614576410460459602074761161178385677399736460517345357075486045912477668318541818267534301766756144505181567178787664951760595798986991900222770296476196206220230053252717688112393588257307186756961606438317337461744472015176245689234708327661426694254805746325676966543008249678092537997680227182908591109981040563840036164084673446651787046477129824073039672963469882674571087476062605034207795886445388974611503766187930742784252062073254258144439249347889572783950035536367501607269599394240166920136748273920335957615073975893920140130997758648018436910597998877564107062941489013833949527997302787035356369486764418801292098926546283829600680288297570849998204961895510796033603176935731387857374964345927680091299591365438594478867781530707913777120036156071764889811245751425804446693965990885194777656533083401648477590478053437515850801541746754080166230191549289479711396298174727292646855933218902923403843204673533992600659204551063614762359632287864934581389007022725590299770062942914915422127016889981084881348284346846328672388017247529843781009983241017014861279244927707278165559115715162948012899731818778397819382637770380559655192010135693373713169342112696319040456051850691748598623836530958058207794865324325524622749671246876393790792170543377645090847313114862375870253703398622534844974552627252347129724641063530073032033247540184829732604007134711170463654013443152220283689617055586435534895952789980209415168761369576009669327349229050825553033798875150181566589411762210865577660872567570480779318305982161802634465930081752940308439769165229681638375674442649803506788874879136965148158793164494873921647889036372326442103653508991369066256463054433981191618493523126479473735089374131705963150228301790964916911671328521528618599361980935661898136261068478279990671659084285993355554201466874995838506253438469077055909394539662605029062820149275373196567452115999587641949226340682205002352701792345269205043340600477507840426575807597210828251256051747040805338055988668513096690529458797776493880581851052565044942333686801176241074452091861030884874236484196121063262991729600958741802615824533733549640217670181641099893349616148310304976133218672468028669795588612779885687789347586326250957495394473555376462786965961167297586048818605853599555647000256803258735397954146812321415857623646395538284846409689431173459376702715135797947840832081101943104650548156915235405284597955484869652366561902336403810301551343771000720859953585041117844496225435057096186447800072517917185972045546478709919191212898349012362681997272437529008639513441873764609968897711401468227307893132954904961049407082050278468734244604200523629906196773938920505702062851939621767561923369053722794291059505849158355448996991010598052484028349270632572026006640032430555434033963457000517278689949313220223200773873763025721094528551713084735541044614343841001679560500244464443016715906080675624254745390414586667839369567661581215999364182319477424735004068516460331837047969435673459103074398014585609144041120399558798623187925930617460691327173460104441508090820186521983037677788945189137055065176388317657230211693913525435181241319208872872282840249028961945627065216932791887897191011681949403049799289337634066055037463448006058469844822704242625659912855775562485377714884500652041619552943031776205689010409555679126201262568988207873384833529457917898996126732958819602936002484442682329203917769613804519011014966621443664146005045096434008977934564385783571950770743782270837065284297637958448747301561362425259063992778262113449574912716731703293684356946037471251480313992261399859024964122147435033438344682651238098672334497962406939584281155253033133208321228289092635035332422947339407099027781984027740873350711610923177211943191597614692140339464855147946869792430020768113787450425717366174956324526294309730769470030602781056589818037443242831521197959801050408096213438931849702737864008660020352978424786042294364139284984698630384792499217350211201675809772539390083348373738499352971418875181565083941484822214469244796076997327546300302666853528328786778953723131064186708723947649134900107867435706192963835914707051242346956061540906355410799034643656274856674368548125747623023824234125034346256955740744467592409313423012141484175222526987581590654840076721410909891432362694849138432604574292236165483197584869449505796581148143075626268553062821344256873691022106386682230200649986058017611414989064854527662367744194783773295769990850356177346244907152123812267180543348658976108635884443953868499679565124359579562257085472463183293319796411424303591841856572884547160870648910981420508572947253050555754347717470178954567692596988677490199603666857112390359479024749241243866934731295716324107238183565895334306914019867973940736242286168481413344394708477572167721670855627674199587652254138567601773160492325440783546811907441259697749321951168698935654537198115508449957350355671761029828889832993120858109244552749261940408473720895736768899389332511758363108286928442148858105886370685025273404541491197633566628724080882713924807194334906878043127039984431289060219159882944577381035066008848791081931154798770534867642344641083946851276934674200734226162494242552870032954207972107202876374307705049382754715294573237970924139019441022071753666157434186159628715919062895882405909445855563174055865073787703345439115602761926383249428210559680266819214197705394193713018364320751553951416947326054403470581799782695156247858866205030689105243710548157429611476939716719831443575731114849443805529285621095073205967760639923625512161738514918983067340956613350775766064095091646314478660055298378689297701228572376700394387486334721699800603165434347565446902834700392487284800842892951793955806997355158646739608631860749091631407994448612245930798471705283087331150926099096658640022438888449548748247207516087511714378014232098854764869387608314568043559088556310439369737218513732125045720263041662738462351008506369452134310723882077597165050715689771281640697977222940655362845265565464168605812676756132227233598672517856372903064048424621955295609758870826866379861377538491498890074570217518128912400129168538919508425298448821145456709467964926420822548351501119295438583985660359203248520896619994383241241541449303495697650418658053171297284189262662658991388867244326370180198917678339180497156470981129511308771969123965110305213548969885440727044755519832579329072455951215790639635578988048703316609406182051873605343328316335936384020177653010859365898140588289260889548500697364736409751853027432519196761178841597053577685617178248662555834651786137221640093842084769816302394759153481209533736592033390448393901172743356288232476038774204287200674465982498678919627203717043933175449448839178605083084280262657908685476348143663429942216412733600737313874110333357836311320956644343256237763949640970125733978791422971503327225017512779721839656484362188668092953950722521497738127861898875630834392267454200378585162502161251669224316823973240829562938413663002559306072898585965393613390840092495313723325019433195717847467864052086579411089883256279229528066117594431500232296446342295512280125014064102339973497503701266042350175996989046521602616036780641409641057582265573587079378602586027894584679813286801733349418000527050823009555171010808276846705651507037805248392258560046719774094818689803593246109436520885450749635599983479706006215701955332613623819521197374177185614725087092342466337889817293499239791921947220293837491413371164316134169217936901947003345318933561177176766426465405789604734982123914497460682954916313499231006686647776038736504331716509942443315565968676916935217978894943264314971585619819459724837041497623123514067282305688476384269413047756790481010268030854757241356682137737914177466056240713516752010061200469393417897623414346215101249644516169977404824196735503507440385865668125449215805905745999670803384386445419035895441703843524388251574153634559054548916019521982042943459149208794123743061916164348929958405428674126187997536679218478481010182141911109816878940299196500991804665249177657481535391461788371050885098881315607637015896767785327667913772727176403903547720952054153794054567947990584477582511422375580922653110615985697161245598695694311765257280697946821750408496442012341119445999351852830409908628233531377167536874327131954471255095406378687374443125360377459170350740776728977917495485484265394928207027109637607137621589195637743391304162890112362666275141936501417630109052433908571538903230075063615445662614738851736575708543744475169928290652341987432262514806224275385659472165016022941184094444527158854371366172275085563086599649491185653263925334307388703510217123451095857150015807931032337311243400655252098379167573885506403733582238657124787199587227572108105482182808806652990193764232052043082048529965621079025770790124245708555306042138491735700080969116062664949148471761164197947861342566932990581368654315021064593876052227544426667723760159525022636974918613578496343297603410705020809447656821925259786298981719691798618050955685638328151841593694762123906161513698791904287088516292517583002195952587034780569534548656030266122303040327346134229489461171948012141187326113110093702479563623625656147841058287516372954025731515913841341546723674113982191014474544288413334662064705647965377908572508067330689788047664543044952531490856814499323041220265431455032022888683595947781885831002628126771015602566081050598077464675944678798864326444520850568455742704472994994195502902377132101003264362651537072697952974668837848252152102806807773025080663073190660415308670647551647611077130926749823506584268813528546129177846217300405396154445055645757175525552212208892498395624916120841563538804291085836565944772631219960682098899788313681395564362316483808916067094240873025236616098388543095435606236093685386423894344511392872081324985600632684660804104716939930253045893418374506381493995292698503004944501527170907229915051772457764624809498007029007724541326977080363596363374404632109258014065630015202219242917334894838871303674697220611520247548134300495006642896992643902818099112801141447800326746889319816474987401675191119572399424206883437708753210347679125374566121594670360380532389661285927430807510188789997928679455786778376733108450356984406686711755618551142535377238370159261791057251633156687280139386760484814050793183668375899575910069402200927214591363725173423984112731662709604555981233306065127296297705672802892632547047322486220249355430733537556411258081716568907444915205396482782076881696075423038966495483773969109645952122814379156573890657780026304838386428131711044215587837714690776936188243635730705791459490613058593070173911163535178978608657041304834899322957484583377993143255550540683045046489085710336166595171546492821182207717314285926032862661733684874222936298624062338912960894070311359530034206792798167705365406008162178466308230213365855558745076279647769277977753300809271697952241323402551280480864597139429568343621938472181516146274511875835607383855257023020345330244127587767667096006027178739232876000681206490740712539554956972040436862406531709606862661182997859372995601458465595609135768637756195173568565182058936688680237434947178185901332409931903602687189821868706706839865090419003384965901283887381272413776615640356033870455489708945373449560881584344376137570302027110490063170595534028153987874815576296658688985302967971297648982607705768334584996143358447765683062351675844522493478136768050206820279820469144388687978270400084221117968668193075660869918062273469646402965866234766971445994503868775007443619542365026855957454901881788690590128111736276852433191654805904375186121689649560985625191698102027336928094418062308677026986165775551260462907759454034648945361216646072785528761479593620873011248867205555014889352588716863286939792987523839008200105131536539072090325001918489051677388360395414237034657900282365558815858185682847890959930144386215855062509146086085769065627634976586257867085181783230858909843347958064594574301532477757622706964660965135087220487494429853542038836704558028009422954520870871198781919388124320751482685970626551786790250588910432133572318947148293410102687625085231032995935301853874000271724657211924533223246913358076376621987957432864421463397482747081256489327681168340386137900959484465898652214775709221475491207731600225543355595627310855486996067508839279971555204515789081581518149261673549970517652222537574700658216226033361048816462281224192750255155366931680676165664719007212787372979313410025236849925460701275192011037907384793014735626452975941854571764836752108906635974255466630488427127000002346569334266214817705266364979275002899002738188088404555772741070027562997849814365818649578377271008071675423242894997228364199735019807256310832341030203599735620510485078532854063482145381866474486010289565449837487174322713160776680727328113206798945940668540178855075567052264571987364623591620650061392753879842746550714304108461442796930254228877413500478131000459373341548011956113905115296739034751889137384053207412941141758217076178034192057077891601129757237843609304083626974138362312414107634515566732988313113746777935854330380308498700564389756267832239758750584081806767055404611892896155267229097605152451266026543466911523607273253511343944478284596304846284838534809761167891213223511074464756972861538016329523461713420819812876049070305386783334284225392234116053165832299912742675964828554500531024929253773674715005122090473704774470737210227036176661964382235589563632303111714130880649785016613264854892129405109647179483269907572191777386972272377152204759190876377376141437299481459928871688491755036214582598360146656429990619602958652614032695820478571406757330988778480360954775164735589057617735764690177034306153496124126430601276675492114032373492831927422285930025717219514150580767635145545793695545867240429581777717470656584749712976240607817145955312148277826275066329459530218472746320452186222715230203285562845632950215360345735941345957774057398597379393666264637745805709258555727292161493549824709498907742710891314338643268054732540004945373551297067415943647107734758915053148442498033057205003207624943620799630685156127199876086532022413610556409977778387071268379424398855139306020582899725961231430059855877923524593723210054946739956795920174237404750788195183776506732719012375463445055256887889215424460483471153273843432039892380069385175850557799457300661399849146870825043895448173299517955589851738590105690963004052596700120880454666411478245496615490303057264259425044383549829920969338606137235368695289469651740761659766766719212040143726290561720903427834469057751636417879521565749208622343513405497093096566575763378177186602579168341467629887232555496144070656506597659269105837935861043632408740214008390399654003254685191687337825753875236110012437572891439246687122509696732558543492024974256757497119726131379282718479167075108357900846503787307028883209807306209252413041861508835105453562487156233488985273397097722018154347432591533593405403489408670883564751567104603311567631705467774767939002472483083897442664526112315086021273415640577000074245354971824097323602310797617855386692870896911473420329614502168194618586855641599318225408127331421570372034460108739307265989432440729220433728837401622509369253591261120518021701097048161524310923445341069466788034004986223025574677927089340048307972914364176976151782754795608076325100011753539821991635178281164921571813964639902182153631425408956804779372849348403330182361785172779995943669819568732872276765252703426617026693054995720602970560376609504905806973065441385563279879336621060317597032304183443381606883306302754147886453596196896105337904219949911197759050734429745046884967454912704292122698192840622761430982730053194936267485917118997386353418846332649055922863681255158104448138601118662164030712502356954487567554814441130676642797047685271256704920457460099852068717052221148171393789201248019053364335019738274511044647862386622604171312814125259431125783505176153983705306036502098076391891519106375788663002596755769985269394892529257683955808181849958907091027979121628734297805150942986125226625090512165608700492102447083634300105851242376989182799562732607004989098019017719122828988784567194733016387256331729478692331018289835797901349066309988320288888709665317274037862535587007528496950836843646333784597503829524323436586469111359004429014973853590880476791050892143201437313680379620143653627007378799403134995276447080992450411315900612979624589497300353102373280493801034928418736222037837509548747942824667645160918142430543624149918763048578547453712604945259271412168807911874266086995139090947088102645633627391022331667544998498788175002460635056770202449610214721994819162080445580808450774716007713312905955198666865365496988555698312707046354845832505395366850139551835594672103006947377866407073164667758737279489689948648604369597270441961821939358629634643237895922035978934443712368019778561392256367920915739393906515328353730565574773621942285168385725715168603779013773228506880636148308215492659918192498709155254158691658929816671937128989915015164192266525613686707577828370907500667291149787938111910168709611703470703828787753532300162007160245025694138422069723195082075571631269840076737738837789890643144129260947096938180492977401513981305410390063428603642405756402348014208987626508674093092402120469868153022482254038352563440459216816555884551513831584211619225859939996137368202182136360850719520506762919442527034190117942913707109807464753829137234705794629031563788861758749965190004828747529276131341378194446058890592609887708733270411901741876148005880015848351455268044544546819128431475899015665626717151482456480799144156053897932914051881972260637380244053358448176858343139986660855904056002710017919028897221640334938532828979348231905386279500613725542570718248788447955825488630894259580265541915780544987142241449926782856507373610631278782818199331429772348978896089971721347653742383117291786419027767341309166712641482010354051368309281221039604156202129905168884122389650187788052519854015595957929847409393467531602268173824202731006450324223797270718535152138808386147504817077746424410481770515387246661734766399506989881954318746539304753312225413196530979146999757611946445459603347458327351980167091194683019689102197912644176861189291131769516021429027795681652220416034329228757291650704110257801688266633394571231535177307802204159709581735772553853676751928514613191939461483628130155659200251904737419297662696889207120686476514475083566956974374231535893668107169887762144528505049500593285281512563495298515220545197149652981741604171866564296875122399864564232470539778183622853502862319203487659789095051047944988911329206902193540151921503260154306656046091459598211689318967598028533069189988797622965426067656456311572721937994586813933597278836787312092652391365734954851693291224285006838603028304062851337246824965210027991213696189220377523815113477974842245351286386131935051261003885993756063019255624855005835829014586068200469674023961998345682747410516412381757866186185901106987884491795374186642097351937435325176473043513191724020320233004395160495495642558625411423920553022758529427430331301826141734879010435361205641475933524241719763916441217618984340164592471274980988923757774128312655377355759819697983670646585617036924942922023399620865570360665369400065389226908058199351221776038716376010885248092784595873545938095690399908141103353621415554965680041246679855887596150701650412227109975484064775501001925631887496992627430180573261647729076813064431432510989851131604441972320281761608139589385492533925191687024023256513682860915940942735606264376429213664744096028281583720621780278404097719329280130667793435431870519088731102640878050459890771240661117822073007485805318454090330974785006834245963468429881974726724043558108042782080313032135149850547790622923220824820198538238386667305350525322536524616449655334504583322240879386260598054281345438342437451174842349424631776560695557117572935285144585726549881332640410542947802059847948167857758046956279454089132856307617969084098831962339211849033795625221968450208227982298942900090487015385873937515693514793542274348167501012772169404922235530238924703918425995752806024206391691224796542424262072365375141928192037872452152404573241409895192941187468210315279210732099876671746926139374173704568345761480867917336298931219821873458588770086069718707572734663503699799160941624744510870870932915256153755094747603213478880175264671757497948485703558714723740240311924274112880869714156771412771736224112942729257967072151214945901201706354137743968368553485131764019743629241187267563187731877278385675615240529720814107687892548983057527046811220998398495651610765394347502588150310956273097232041907465455143661101570954850088398284040062931642054089119544174924963584244134081116826721796105849026055257699870469106334729451837034853711222679925766630718159404942527021877572921045523609643395586679829890166708861667870703515438666622824566482793624705851593542664286670833171528957569420401049722262776307744429631481294112742888771658036858978599845293353119916839209233680170875348314423662142784223257500380910745603907917635392861281958936932788567026355860639297234554161511758508267679637884158872432674803372019275926548106282213158116852798665213419381237453853389735352199705769121800722763904484033806670761951150080518026027194195038411816916652687713617392956619867524442780743800393324591051650877431939242809620560270432939867838146813940426620841885801363342868846836780639962782837974636416296158541422349338781616045427576443683890301760010776972172075544718184070196629311381350182450032862434436432978727661979741558763370811039771126487972523849347312530158524556497832123573723551925994076691685726720741696232159467843126882973972612476334360795071590507017436209574590658680612395285812498500104977760140766266021446306461454119055077267968913256286931507465213708178953170107763579982844694535474309692116672896798908008909901331382662156061868185156785455292872626112493911443210273318984286892029314249535738998523823760634144558405488984860269151566382384936979988288998259616069310079594492986647706692016502001137029866804228663112022733530336325769723416914863331912113453062109121126927478068534161521895837443660261159313407735553215966968318972183318034812197301256541690932486572683775465672929060590254722754497309759395561759014077711493636323029497071527050014544332703998579408706302671485642401192188298170835363826436457202389811704333848363355113728378978049747986113708494201703587188662246226276332767898852420285082644383172757876143108749984327861872287672197283157451638504380219576851470222757858609453496071171287149116193612371861923568820465947136120374049121381848672642146877879165120016600282492559723657305544477370306353126468966611651505354891896474041435278471722699125391859540182163463842311219905045801130851434568010177368418124400424698774124350214007080589961388001062760659288202914500299160812826920174626293043177709391785863288910400146322094837406299862884392397498699419197538485029637820627397311565778366286358705085936922812216878043292678185591978035796699766610263941521287782323071054296252334728523860243844472776797536825362279662839399332468341401034357073025716282263985216021187334432872072813882936455886823000561643216553771605300939835036600868017266937811954732182527978861829231451677625623243654373065308329132199467360667223226773502694145751846302157494515421676575533632861209247736206763863919154063362006730118964643636000438609969349069168814681049818087199642245373820267534199868316594477396762843045769050601464194781927933394405231596487187324275548405544007251866945847046721817242902907341860081346704756468428895308350294709869735408448734003826527318191976678538728239011071493663876760994311449414990652722982106137868803088926827459248305037545692254564999689349392675471270513164741859766214220691314959407421621357947805790131638350357258264421929331315321994054276543504171839478636698235334705563536301075704471306061355060581770649579452837558027149821704046863261812146436249935572176605599868099201388888624431185739252564356040188385365766182363450843292840520296378540042129148786151877962535862520385065271989382870163507334164061613969390025127293964690651118643489660846960011756405515180227408993730038957879196065614689130403237699180918321406922166941600509786792095307982192386164790452665504504533321115591377457358442086647120948313340227587910868515395400902707799394188962144214841621462679367405418369769449391774420728528598088038921395424719267388187111280072778614150444464594037144167212421340815044551139134000102692577997034209919161444750635771239499551969133333171897326909427661283941825759639113711131459731682022486312802174767668819231782256874930023478116646289865441410739073609513361059380633731945741779000615678294753798479487674994651224043341347281041388608570083383260235373314699651185957195242347223883093665969714360168573831588279220394935053734664797067314756555560397791022428643110261008767502973656141766407618685849554018873550099692954733484112170657590323359450697184507045685438621538764268187011480874303486991804889886439854379810544818536352470525908403362503949285935881446989338262725293321001664493225819609383543184382725058479729659912203106542941253819239095068889682911807696938218207808614521947720968335595331587453249586946383529814152943035258378584817099698106919308521279638953628021288994365603832037000701795419485334123379509924361105682432429956255494997382346342235900527383573677630914268055425110176642211395888576121623188953294684175136996793583248224903549053958336343814208448496841333834840573125337164206135862015587198585317079667397707507804237780845665082955885041395869193519679625172112759196772579480124578912252196866933009427140621949156102862765883276138072423148336346736164291910763234965761880755006131815676955606225568089946002691810629252597566916090763594922571267928901603320431044066485896310967414974494176490032092812761948146439390308373524479366508675422010265267273762544415153595489292967711980133851563365035704793062247981242621256124957770026277798426556673667354221710872890832688341127225708708819580307402900216359367459102373588968801872336774051429422856703070393470149757128084055815664561637454694782245056476724062366951180618538829982141774735490277149501683904074870642706644459657544814067229733111178934105295889274489179970406554828725256719969105563385562462116158923481921649822572582864781745611806208424311890886389906449046590721240536240622390030393830662662721771139791485265187206684284841567204951141319417985867220393517268683784388816023435686209996700028003281868590004661536449317970811185523820048140935453304625524649638743719062608745111854840112164954830638107013756743785994382630631054788718201876876202995812952471237220792037254966636398358408696343116784823531745992186384469298350347344097370016769282721615780739793465277782999851810397476481273586217196747219047624763610245527637851566488459038574364782263053196278698571407649124270908868356381781886089816006325551315684020474387938137974718902090711082245129215787471130579173299173825599566889960297630056992073679562017340422507716328935655483705207495562953862640025314329898760440929931349125519049204627229083076189901580879166579564532902019487727065224867761318657610448390029559835486105331282764389415620971153513624058408089727389288348614004388555374140795136762067395756266355910320115451762055551155603262883247218872142135989468833810803085024289454374972005765765753598615970214549525078023121615922446555890442495679197169074595802325202930478051274467944213500640617888631710565391808002430385026230300694407780321189570336678618647918708061559616409671533661137256002952817384254750409651894999708795178751274655896039136503460232249234918864176319882760760342583621939160371099787008886970049853910205484228172130334079063871822346985814609186406232223325202680904943084290050810204728919471945481875840917809630627680804100810475535698845070327321217959087438278766886240460108584525436931439078735664018697322817422132428759005073448517243463029995455470566366623096341696208244448472156947246011101964815093906456236244340729199692972301956682404985399011626280468295899758881021770668271980145912600537891080728551266239597632252459790495788002443757248887453200101051285390017981721576416245376052746252869655615376404385991093948025261028623298181987178713201322223141834225483517809858796451222856780307298088427725866456831639061899710508231926259909559332066895843959241693738021391015996256807553488036858311844034292819633931929343942588892359010695522701235618573182766404549505385045778192770890676090352121116213417822802944686254962783755379359008051543577560007377590789690503360720456549331776826526494740789858339252443458683744821189469559312508951367531476448410888667459432921769714822851188795200168453266745025310906151306747953870448479050060360062299372058069410902413053211538675980418321740800173656091566443632751392490475854242991568694366264934853998997986772241821836476356699359269938376363369525045661085665918334869602054652131003193363850153046171331365707599296936447121303198331533874624186614181286405859468068026664209619279338431800171561135122075308986343036673346978212804791708228234923557252070056486158245916678503541717203986997769830643002975552929608950820374459158621918070880145761099328774241073158076391095206799136458255687848087920538131158440770395201758415876932728258624733159336849861423007784079210079747403878461384328988625440934053792928759041503367459642359702247225229998086478919737615855109924825628390966291899745722986032643197083464049463748525231911000374824171007523565358288032677753317686983290344596505974913293275455257740430896104958739842517722486170088960185937679224320373040791209730970579670911821785425685141511813069102930867699235854824850269987610649355932868767194519431862947540777808987857236711104057781748360241705287416652757074363635151363918300482112866436031505352677387654110209067254233315697595561119035991048124712990368398865439641585835151533701586155532660839439700781420364601973717817159812933530682583219355107690076488007936139385857273978239990118946064964527112593067479663755422840280252863683523244211334431900550687660945965332168732748498538015100380442801361864714843249707175036076636640167597620466445172672474529497135361243470146045502289887342436458869038436875069137606934841825293892225019457124374282706151060632198126002534047821126284986746096250190254414159278802696247557089255796115125473331098702851383786588032246334920836785960455904068046516752008233188607094714532451696678283362784263715508117550262533292812299595138553002487747634127447206698701485292907342348386914126105004236192316086267050764385474879144336922847419688434028882109456817061794335538262213898788526530208304829618036335240965420635354101210742002761332102335418499272768357234265982896431325970676472622637686850038214253206274413391648675424284117322545144671697330811194189955051536898544128756427597539468649432163548183106018552728468227974985607795088647339347514647085212053046580737818834912700164804297660100032036142898298678266721123743357447967585865201818162677449953033906555772651570366982266736933928036524889616064972081968236908704813824080980018774280687009512020412612951458209003095025962597937153234662874721789065578604883346835752430204175474363114238046253263394747209941473249882739350900110655322734550519190897229457738739362463311768638529357614914129082718352523876225880715866279728418305404469338534023730934996733218986646864856880573164309523851600864184091419102380276187180706367625632651611048004667435432534618422983607105202423481899501129004853554027152251994841009022372817123716694958163750090102240131282095929124010459686936155384014828663491807341682925413831249939734744210647533594370250606606182186942989934510552896578450782929484297256865454269600472134444965198623955360164843455192401159701461904225040798903908377165263790864311728431825136778220097568020083890671497041637998103352342414320582124196691005920250553606239899019457032790637075927109326609417423138458044109887595273871528520045078180688674349705327837383609670387999614009324399774154218040340544543780536340515647906441593598726305064828265966000876349172288093443341185019315098996673127226888563222164519566801212209747977760463339146792345195024189396049503950227171138145750912667534809148421603978018870726295283078161883835123547526880522160252310993684161792435028266699919847199934885306282031158977162998922094257473022281062336926619683716830840798329975727634562738403089945795158063576980561259814000798266466377468949138312776829007379363269554750599994625798808770216089581453058046909418463913774369709513250308452172872778532042106783283347859749794416604681897428570805009528222666008020954024528422256278742476753868434186008195129303265374228740625691259154416490684647379935404650934240972887218471358877864017387247659163965801485524682884450643603152952274572656280904053529149369701559814765444019542554337105436077527088586202266202270802339811243958928767248707753118276475282375077220930416870999898773509749606818558065672126424911901948923873602849066444878476880143728974072473056000774264759113034536196779724008293803333548110657383515189179382755446364116736994334019269287524683743884571172645559855791628387852952843487869573757071226224637878082423347863010036469572537236505086849820778535431685806347987000449986037450510003258816061979997324708617643996216467128202106199167038573238039220349487629017458981300852910031564891343951353146916024065241046360207017090399062563516837097450907703636017994090774073535766932963574781731334097060971085826378646365223041293783482332895753123575981680933297207574106626398895223775512218757077288312638116218898503913807184803006874257614035270887518535913158834564166364498452396914283005980795934305485497215568826517147479213397430085312441988937779978688122990640265487111558465285136538127240472938259639822673642439382648163037994470990009348517825388466829674828787513887035472798008852764005793813530772651410676784606490773557902383120786004702965969044156514159478157002592554627029201110350996820590090020531553497966104823712583312643222726673591971796666189678829114483464961836993379001246382487158075227606549546351446162759144276838524198874452887673847300020440668134509031771670032313104632208745772228795343746002673913158874394256155545198521401234711834897233953774387342902292299200333837710275762180257394998407070014429185012756077765393016055799556825841711024482267617875316847239809681481475397423181543554438424665444096760758958355753613357272751642135239519450034118096683618104717713194952897409749686667594741436377465875943427203032974571770166047406990317925858342047688170319574862607793588565661582816486646731634055668793643566521641408048693185330055956092217405199282361505102031132890259552680163154437086356348071931389437606299260518261020920205013093098339786578970610776948397583801529119724599731311066929359148375637218950740443270929797533143168343038554583626695689705975267281796935557488345491945657322596058935012253254256929599132063365081337337707443600245560399789070987191685584193038490419651842332275391523735901977199147311609431508259411403220351584496279633171776649366959640488522335435642071834957646604042134570979001622832514084262498087987339259045790966148450740700766293729593766672329612530496198343955628815449619707956411235306709751583201703258944371950363534389287746499933316650700905660878033410572536758000643294965957498060684169703818671769775172515995021368976122461280998038581353280881561495988388369392719564942632896395791209844049314046035349027508715898632561879599594329683841256063110642323973713808402319265486107474074858220042431294306075692857593965287213758264450091518141687038687351208223976716170421541032429519690504328109281629938408910278994003608020557000360303749445011694723573415408168792739774039779157381810631083719603440209172264017033834683387277577085904905953747690711364965399030972463432669426694557559232663439544528960600809674835028594397663427028882667444882203198007604003522767120269607608597123573913093896134238405651976643136330877854584233784293503389860899527605127106330804459035495049156128529403409584581292131273492090944341723992614033453201659797520973138429024970388932184961371872277230026333486951282454018857558286928370970302170482033270543862970850084729935980684601918692249796069754987483012013863876075889690992230009098965522644266138696411520849891918979130034390116976638568146686559552307995869185610266107275289537832680951150051050465454086946180716501828340935870289244582635327704921690551811995494398188346055835572265394257025742705220790499918594044667098900220391349204067555846037089093955396736095296638623571493870778224952770648972645676105754552320071046721912745085365652454574769651243169887118790681844848811847111601390066161681605716321851095627320051295723655654360080566896304622047538446086786328940389558458245534693753310317205301209728754372566190379531331453810837562931600842146364595935508278185650971068571027379616917513715236109997069029039668438225653209552162606505862477504059771370777189880061899091831063014860092350961962960370818737205245003993857974414494564475066223863856740096105047747013447577161763246358744445086228815346998005133127255594270137517913269039161667788224310177046131596058029999015487634314490498440256647412673946866965900461494505175271976191650094589068679565662863850232068413684992896397036962070477247309491142015501574145303284903159422460611004407881619722589689653612449951295569689631458954755367723630336165289438762746901443371507827939498227053150024553242757210452909888775277924119735301088949049782481574532972827262272317922075520011397040194733306089264328108065135761871933259376248025353009485041074082028890385145172667148880955618732447765793068001059648107237748547786656942397734052425886964015350125311222742958064313640501013815517091143097050019610987921988420729967876528059791016695764466090331189502351900113361712413145803136565186147721903888789138738479329426755753409830547157585798436972730997035972266257661641389793929783688240049565446798550119167535689900050477531035113503434084449109263689211697121971515498085757324322504737211219476886017544393451625448233746147135629837962117303663373073544531480418575795309049533787093175562649568351325508115482781469413442639798620584588267014522332101421915790818720434783481028551640597640754696845101671882023343590172818500633643809464341127624118646470740014195233717722440021177573440706216110354392673378077832633984873615679797523050202612334360276621747871738950724681943448690129161172009195685836671815873818732878474732414567548820002391886826268904783475660586918556076203593157266812176375243753551957060915710112595848379818335366725154660576700838077377753025236132637098025676089451111375718767542386862963763194383284752818085733452881074319286121676426233376868938653442499144173714991807861414967537587370507836820766267480952450567960222202486449572848878833977861587344040791704870475602983370862755972764589401741758966903390834171126759030114627074232195315335578092577396281283212775858327780598483563107974990661082734296266634710852104524780326439714419491183194215956758490814708780131907674125331579359701741923639765949393345755201649787725385773772261869126571607536683996289516892377332432652057084313942329715572538223564485212364915795171797961516915347213921581237197741698439979293202184384468260841897959170721628909836269975314618081293583973970427512423834525730018193642712481892149185860417154582811203598054183118711842997429428633706346878308759780484601542377048652901887958806111825993282474936046927809754394312031022796687787890411679322623175240230826299131450872354814719985520207890687954294897319527032489419704167303300108472153367272226747149629430142294534379997917071392058316709006676120594639417858806537862408587238509241235346452134176094535785284753993207482496165123512566826742510444773839729420399941802898222055338684681566656205481662792277192985273211248587417805983060542090981439212064416770221003891973714764357495675379044268144587844166385496482176883251675567253279772954574843524067821369384381051788147636529641646214052417238309112606802767164387822905566741240632813083809205833749895110500963233090862241628829479827183849521441317183602865787596582435097714413420235945774503853045224725885377004435150809189058658161932400369135391248196991184992888083608428563500061355982500267694025015473190950216034759886075897273262940700131646688265149428455250579139238705929662083879068952914494212704533990333881498794512268755020553521886855007835343999942457997540416506801216915358050688403946138516523395553447095170983645898084569034820025385807854440829996335746044778271321156461256452985852596482802677979893324320246657729817986792897945940829109852598560330477491976003214471364912106172112145161885701851131426726516521765871935634643565405506667928614941726894129352391821820710027379071687472607711537177207366482645901025664025449013102803807468921768840749925757875989693021041961695160105274647098491214810540879224285146523538648110557396974456502351074177109374113942459644341973509609868199334765158563418470384976253179983802501706839813308536059684311075684904006024147115093461316980809543566300087791677669967906190448407503049545172877475036521754573087655591056013266091303290555294728316972307082068568870281515972907833661838650770740775603011877529520615266596196394035375907731744877858810509075182578104800468750389020599141439002108863594856855994941358811873786136832451620412337943956159197336125588121069932537206845563931086325895529038926979837811732744889000095236415098979922317098354677800120614047372356622906089630202135740154791806495705419509779269014430231412480751664313480898572343460503243465223450520211384380436814733501089627053045788111818010673481634938740973458025895049771317674236485943756868185717124724445417210631606152828872316220962205930808668422216084668933388790073926523653101931305981188735901897714667013427631865162571090961284515969346609761568739651524298647817969032847585753082404645686554923999946355393260199875669906769508866638536097056742843025845100690426771322690271187002544624813712277956719849076023505980438997775300057073275296392317965205264306372441238688647019409754843151514994175003782249335379816183219239514856725127943256153957206025521868271246349790775330656796941786225446047935919971917759975501769275015523245007043846611418167947197571726774430135585954837202284943586735666831941324380867604275541997760128517091627709638226627296041855245354648596062093392563179732404023727259574260069697181509929336333387552591519127337605793320815058686475428178208267692708907671186562928893180963850278320097567940671288783697465676216891729235898957701848090357701579625618312871608348543969047455857162283918244649133751563029273585680907434886230297047056164566714209195699668370416918475039302900904992042726318826703281358677261589946887461663828558167614191830256325159311430063509813978731551272383146464007237880333445426221512883373804492301641794932381543761618896992516388090876540044511259039566992310050607415753243153145632763357075581687134257521913294540834448452210115710433435605955628446806932382125831835746723635999262733090876924409579522172372582107940328848731272057617916540713585679747936191143300015044350688892926027014755235993672470345232863665546911343027928044843367878603743313247462522566908400058418126086278036349223029860961927501264658081867518506351061967089537715559612401749179730881363063922510935022792985138380845718359089979129188022903655960924022406271295134619558373115740646228600707581688118647101158455215723935869862521444394232924094907482583970804751345420113386725550103829585729943623498975914750726161036826651811373723302613866041941372036944313213371511357739852876661994453673662146921202775049510285973360286622718131034352723454904347513760646476064997893152183181334696161903640704593863130037682691904525318422264613994925147909761799605499190149477462703563543140665243460533480849336852147219774490313369422332038146173534104947740199999209851055887194389265462552638050070404236783180102387193640881507591867070589913461834736907652202594820901840732256126092119164319142960861596445553984568680850309330875004320634693788789429232241594054658877343772144137046872937312205893556416168908234232942374129131690352327483037198400025401072479806270303304430817002807557879794792860840999658003615525208988920943509864714736899527344829962827315380243923153134049368772293285663546355344681032446655095124655062537526482203603902751234857465061863860894377471100622546714154758837705413220680171059172410122041626263951723868715625552439497152376383163112697219244067002403599623263634722741277192561794257497340681932806495989634839233175642318373088200988868578628800129700461549852206602356062803582486897346633602463660163828443811402700478187667159910823960400816864327713371276472334932471067762263186994638656469124878544510669176773248319182902087951992073262177452248986219606444479571115456310147292183051081560694264733443871403108559394313252057008104776169591111974908071173534298763429283688640014342529619906418090323738079999014636129176596197354202113283463318135209511419053219698715148747349795544085027251607966316934684670733393490023658273850506991516483166422793248004596246076718523741821058219611524733833639672707015747320988360217699526844476747921401734955883845829595724382610112971872128400270164525171483258206529562478835688674839800968098891810714464761343018833912717224475527232839135353004623125001044752061185621427430529659374439022020732797255490514305119040659997865718215967126472606930377804697337259571788825152402394344083365699488215634746457070038866758183305279697999660338562638752716405302417644327533156937851771324962082695591695240019826623978535648596470891084425881029426020053033101840466480580369908903057300841727422502582753823080704090871635412442343084269678434399825785061295790784977202553458336771533783778460818500275974525476023688546387722404384010696961341755277994785102491623722812307919001684652449762148279680691091204052309518516132936137234963469018293454310081994584940999466393253948356431418825541625025665130927581151848430539779043696258369475127041778611163715121660851554479325896967303299504988397876294771664613315008272326726641615881835385245548905543931561555131892684620596251009164096262647708376660894689392311267966698941329958242774514617098165399433778850000395734016857857784054296822452434470090273431827950878140907343772740034658329960034987321036687723660617422102071214364839668893678711721819977907984865175515593495739762603444342227589896845093195714850271690404479031884196247000586661155954763596422167195032862643691209251150774366696456757389288988073097162239405733975297430668008212249920170739394203349684873242110951761216123131686948657786712871545274259998926771917903653520336791739790386560476214126939551092493921168660468903387859922669192937630190926916980291094719425078927402411547092009564400273350951651616508515285915514714639082209905830878905084151888027077094868099772237575974832437949834283157931926183305879674103549148575602535748068298477431486162800692594034688554989967993941943669755359469684194569704719285383873614189124407760161153196939153339038714193725461458665251512723814140924442761240003425350080162598771978305026675711006614884535905169177049602501828095517264162712239315827364200854106695727097616304060592318827745328709525731793054070337792246516611958281761604642192699095269836516649731367659459793229659742726225475537261220335411508559109443423798541850714867197953911743214952502153347288310063978657958946087372218157872276939213702819598767757243438059059710060134786049796295799991928598468910219716224508983103141322686395192650403620484485923713298022666919097186442165580214634439591679079202338851667667779444898387669074552541706195573875096202011656845808222687351792076132166489956780819414918544550123502371051766778735617411944093622326573780014969317350145648448678829547576929716847251326592049520177918477367541981211660259221949879842405480288948742105565273184359255427209297117620332082027834300908512287766648919191833632927692343055768446130439174488472238916735380407298035039053144595647958695794955724937698090541125760050896538223683634190057107265514036677790148237770685266976653631422589448140526232873310175722829678501173381040599609930232863599794779893503866978114926761618719680442005020905884818806276070856852372392914670851484971508792367081009295237979364204004056794852681166962874681106352120521866915032468884403735408241383058099063301604558880305043060914488567053076834811375296456580525962136541891460069832458430934542145462262668615367771257225619284396546559008519842181325856780213770550053220588260866861566961091473814374189125625984164587880951898180837785781322842246303481970383584734654267288194577299740887841545024109811321235473984065424861971137039473564844348547644885110525463875381817574448676999601359005138272785485403357268576894957959812144991196162025195365394357252838473394559911907344066785214445610965653322992536884362078090495013074254144202861250291376352944770007626895728833635459316178920694861375689150019732731088676152494154211337304410408089321752882674036429443654889369892917869716654336503971633558108112961952680522076183700627691825686522971789547537082002107315989381795259907753593849416490717577232045571317236036488093100508094957081831906416488009275533206429803858472372131135949277733797480886654658128026526983598314016079189890958234823616512347257123653596920458456183592036126892673165347465929763361891068202403200066956655327310735837544058747105256196189988484240000761512184721864073350055049812412834815071191725189127488890636151464576209429240985053211648293323443873092190754106347331418371224671558905946418731139729141043154159090215604844754870294780639650966610039361828643550316928867610076971204883530415447744421728016054038311131744156423818440680878421040491756555140420104299757941920739579106536723636193272900263753392985080156157082113881012246206136617023508088909425245626609370387096296063479192104298829148590632574688216260169272791025213870245110075316615275590005618259331979453636195571224032620033605892449959172396287802740870441259851665047611930334614606421510546454692821237132323802725811151072580944106135102915708137259045505346704080979616003030127122391911382198744883814121043297860452913601743892110033013283047590638064828466710834842003041499807556769901291243501980339246991094718585471278501342888862144631438728518630819103496133412966368457932606306679738178839554610031441544885739955238217453068573840399305249399148773663686452589746113095835996873939966704089771137585138294718305604758868104746558341896853131669762795687143930620511079240069262818782901591095371312960916148120606719260633931377854711818702442068893671148510145112085628785097108827084935736440540350839958095937341114208483390011056054632042780841508373588751625274857131835135396603943361025244776258501281778146005792375581741469635491391564980975234764492016087938463348498683443770794678613837398339652884629457151557021771119612614908471526492803955768573421004997146035809713599197266738789058947739405491906909430762617294133113518506413468139572202148936500951113088878056861590264652928474737640862388960197490614799257954147597946434972538576263919263893094795664292068834547491322424451588232786977601196428338018211675552234984823440219760013490291082568962943803526985677162229103838951968215014758068978665142708693154553838657271065809910613232122819293971529775075613864173693296960543067717118737446513930842825117938355627312204878325166689521306065652261155508695262549672064300842875318457130595618170114873077931634032841644221522228975836328799661406046229653932895672957349615678021795206753142505078548199654328492074184226062024893589143030584373321341430364202395934744619289799655382062935183217695547485095908887387720318355017299958139168146816437209604131305532425633672006921462183073399657779023563527196915791774044382228386522538478731240287399124916817018242076385699040231253675398033763740064960045150122509884334723018961687523304267435711034122553918045896705999437193032490097514231162847893283195938804603099600349313467746613216305848477795669864960963218819317471565874365165764171720256487748181148333506065824940916480568015433828576329152513326440020813183458004228748882891318790212252142569554404678423020028105398531920072606594313894600015210013157158891886789268679344402495053337311026108168974341034807515370730898231051074035510659551845205141930371910631815257695045031626386164897284269898951070994887446849871259341509440167397536614028021067733355586041001026762569220356611506586619031804499255520233742337610114519158343715415607896575271724287397317728099711042384705487546673060595109656387116916866933899228347904262855225972584222651315721958244866410818209185471918480580761230957620033161512197627880990036563078003941771114481768012093227686654514352888430084891347189084424492988709225520771064313526919153263366159437942816704110793623015993858324053124427740997246662347565408451576638043130072675345496136512487941383833266006932394766040168025237622207971798840935696850139646808059493058555055932037733731021913587637408549358066145828554189473239306479103154968280009518902548102467975180533467284057103417565077175866079702121412918646282937794180473957596789277528480967590782411769302969473674586558670581102333526138380048004689837766855745219396995345417655647080219545244912376589744986576929095761176753210915849749590504037966530019700141253329860361928122315205569715821315408070053431211441633015845085542415768903023081735018367505536721470652505897713201410505514302363097367742736992676121281210069835518367969366997887822196971680552032225813277866096008167754622577362172454858554337543221120089376221793968961955663270195371995816290387862299742761288135237359302839991529009492329636217867641224483611811687836227769834475766442291300797895197217751927277792926261728966118389928313718111517858092000648701134413612890160209707878123079124857633803392006252320184571351746497073486588318301411238319952184122869530657771730388683289004555325748968565447305728473828222167902821499025799791368596241115167671908425153164731011956294061948852469328496161197729213193842932190624726891803376196656919788323186552346914824861923705372115286283803839312455858080937127421487169495004768168384385959144629058429039274210074005542591255025828375383439099723346055202287492208873927275714323682264266199648448274886144411325718636188074294583943154373680632909600628800643581886198392478680591952577880524650841070201962387197737408627367701355348648085995202504337209343364303506398194733444482197750327657882878113778974904811985658068982270419430409048533324140079666273819625610382283823942628889452883010993776520769478652458812863966570762691281702624298267955558774398827613507164931841248842672828499924055585253617225482354954953976897962643592349050470016784923285876631700605398016053020944135351625752880817900222995503748132017858459489568938571822819182089520119992227275770979829780104637362400262087439706361401278754286649964201092338245416398893276049135629454453713577124989155966976997778058300934812839614588390613043519540544650586311990477259435012533062956869600357907565362341452240283970387456309218173579395549966492991932405680539825442441979310081466288109838328132245671198435898129366554909830202487783923741336859339942034993294537003081245899447767301978039471472439476241882736935565749836252880181687362074901374070569024865575805037390862784047334281034896621932011489314219318660948176690952560302989752639099778879424878846527936456907551308516550444285942845713104858307579550101000596831318941514424434770263709416951840758908292111529538945103983691177339232411262496826068895730844835217583386280444728815760152418332344215906670620694773057832801869822409804275073877636799952606870634050386186813818695681101867729844645837117256545392945579572966273376765341448679546653478285097429835772294639128851659843542702558878126985437643546183659010649282258874507909551982173053705224231161554608349753555678106881002258214845941550347172339164450486969759694892880501835781962879650341522616865590261658863289484659381625746081994428516591452072633012473185378906653984504559082547812882190149759351322549076517839693223489286430578064132441476283867233428491769327723400028508078847302500367624683895314520512696499431244433249194143609423833477993494958824023700314863590026891530407753611176201740285818869891013169449553848305194157479545915360226537740878639540147402368777296674581957425202785614108910883077044824889386273788446045916194853405641936318815718636424310132761964327934031495041669996535944856012057365623855544223875546567971816096009208997006612295330179401246113779311769280312953759572906078001365787343186147884104090499754835521186157395492759979721402106993542870569535136812532287152253454698484049091068048779391253052657064777482434936179419595054787809671696755329514894196375630189060310418627592810341652843341312790669873691821372687493120077528608638713745252832312240208670721313431030923979922284080603299981397045122808389526243666850795711979476321173431481401880007087701780290694076044872951129827813852251932586682021094284616086951854927641307372425134862402395880065486291115124629607234720226143211291451522049096543978530815370352183508420144234813187061667617873619792822251617008678296373638116740788242053673810668482696942838752190840169676659606560463278915464380375231830224148874511748011438497483756899282588712088753408806628864257157706033709585207791499547159201632665613285479348035974573311206862942396734478281007717599007800845634699505749148998648809299322029782265524698939403830788311094558524718001127614212388379928480557750898421581308476381474749372727102247163237189363783060616985892069263883284011258924790389801516497361555052485018069877168329202070500631536102236973886275482031167679610939676065295049006145232082792942062860520284512546675059060912013375643145236427490602278647913680305237065940351985576477338869850657482673321512176458007346077791270752465390445032686883476776793908978030771704967710829166322585400770758417334861097534907449967462233916708600758025462466298969417567620887463488579948217074799373691951160602826944869888039437088155476649213627570266941166770484254245879420206890475548753574614253061126746516519802514688189800326236722582397963717954281505068350240379608046925462949386403260146151738948627424563243020393233802074986367834177197942278586973253010187291177410227172028062038148833686732242603158567302945655937901548317552475195351009030351347445224305590587169406626299218667752572853617555797689940979992913513742235316473082517136432206334745033024138393634305074629612435127682613929490709032819859640529222664804463975607426058468673212939207475486890447093725008180162359256942237725725936744011902651883299685718299317991320945481492202563429671095474852859135990736248738052506817892901836202268640424697970745658112887030534823948720790852519371768462735124141267499287601742825720391576314420914938864187610264839690545865604864539834414942124022616922744898588771868419626789112143502649758113103467843272608290562187740300255232673654958588247340140271247664854205803907210226905002654518861972154005485810204334468988313908383304949746422260556233704115878344928743797083171851746123124313873394070706893619016830476846179069937087009945511844633720353735447566362774533908380930119940456126490324830115497573349637636834815322443160085093448606064095656558944018270112235999100389237625234663483589427875788112474318617594040418766274504510088603730407646367412212391284376251365423220748228729086187295259465145914386110510541743998599609391439967069759312775213139403788347233040011146611965151499854556301016979198576789078395592345360274958127695506940485271639571404409679344699839868487713939240869804837144134269194300317920208670837357819356078220448575681717089375411123295503963346730033723432774285059956473265353186733382540522045347455319081205432090133417664989929404104932048529901468297687931172096236911930873825446437663825705785389120397136117641019506745447173674448538840730339038383384663051429625540064465275885901873959817113022280757795513599634069809373375310711175134180792747819500270337883304348081489385486227498317659236898420013548569110028891246570951708663708463889255863206223464909000385818388934265640105516962217829844885161995652217356985815785434884988112558396477971425110325682485227800735862361873394757430445848533557208309606737373684810101970047860857148369725242064974776505389463299292572612466988245212308177074627826603008618341249997678444870925954964212652671556063162454152015330000181154304636103596476175018602487357798774028007857758611497725193855183314852740581497116944290006551027460668047689354584222741821189279044220647906200147220524540763340481292571774968289061135747614434793684443003368116988159197746325765134880087835183468714272109605854908326809862769181992999818808720478164639051323007609061653461558836799329482590608867436956436510652793627112195058898478572523310615918653675822463083986250988592517753200187341171871489022140325201170225764472513065595679023261568001689701577556253088244202192509434512550177876475452188187321184389567767625547098598814852496818444365254050657882692552723225696408510229300230143033061684678319185403028298780241131291295893167674223582456104976902330771749844128129919000389944060678255654445856693609786776835590708027737705856245919730100314286094901419023050619097353447424882660914636909249371474031045418213410293022868521048828289769150413984871307730195760609178883549983076606912474587796105279523596264032487241267935461027943945049848169358826092040192215958092934559257996890533376441598640474168806878725226147993121847321903473002242346507113301248809868449901611764056911085767962372545690583992090619572543478658965735553741785760167785646349964495531105904366839607956637506933353286876261175831725558755822979127151476409503067294659498199754961383965160057563019969118826550310275020268924655973362783308327771398658944611679176961111550429680817290738261360552398864344311345811746558691405778066791173662893502131772232399206014237301878255950142064646363413914097558634806996083846535304035585090648337603720979981515371423911743317859587820286054912088893222600443508373559681828272175912638998557634427654195483376183939949033538786737887974795823293943350720111075927939503164593548215611651112916639951756779094452988854634977818806689326588030831278745887952710603601618210561875224607971034031426788507348981815968914422525560787071172598643009376360750320979729997809115206080789001741009087730362503373663843690271439593341587038149677029955316594490571101951477440259191478390417707950294547257804337077897031011147466185431921884189635140207199064096929544192630674575874616178560183668956878096017743055444018083256028559369919778644644890599180125078866468686896739120692471247774865222777271427026962514511724396661507418675097384784761726333482606575668554460554121906079074751668691873596885898789233968803251773622221051988616660567734980832571344351566817190793833614842278494284106480480246938999139625078217843005146575576798525992658111829099706521209902027895719770674658951491255790429185503292244800591789586232112643118475216767911724838174934710603786699879721823700580309311650260510410114858179516454622758902971931651821676670240140643652356573581847387983364353013623662805857252545034713132699205798823740615936523616880818265229997875221159743138933406693724414969932931681989735741166075359201087247700595492498851178667841634910383799242671619143981986744524889768530702934728402292804878651912488511153979892777271354828371053089009113281923880943872478726347123112248165574249119956799726155384934167177686114174217214684358769259990166036036794769649227608436440906739686799855234543819692300876182661772298622626526281156178982199217545779122344353267038803629819676772200741694148979530823974407914495565333476024993202422493700144160242640614319607928584181495860363179564876622713613950639514070617324720768191658655882167101943040664723083182864461038115010285096772431001249055441259628055764413004994754966418590909275619151236990098540753966469669113421821462290507007895042761915991154958082240273079086482534365350739792887424339927689807802269366819245039526919629625935480375606639623358025111012454814987868847239039924106292504840388111415578294443682086084886523921760779942859607210620188890483035997737110367319127162429142159583411246922425765091264989473274801659938927229974949597212058682560452393211212430637781237969189542728121697543604592400599593208068092567249044912611305473428613739434378172417506739702781573881415983092423433994912578471435914605326273980473285290218443805017616872344782849227153245910183371883088875140458260657288392711250240529554810166145847471662112763815605377069908224928088696725781331399499063246809896848857721211669070954086089414406166479376627377964409888779013715113946821791448712346740756673655116803012873885998422516325057255024292364060753337331767614921790155636025675390115941074376492909079142468277316483121040566018085379522777588677464418761876634153101049190291863136640077416796017938211640035039984067719189786442448455133250120420842171078009122106361933124223541539075474649171168970669296634500983974097994942782624982516802220830306842091906660769394877859806147883710517766045557278900831816116267889154626707564131993757912412072603401929482357005997050341891748141534309978101920106619249154877080312256778715471662357201603602897190495347524927301531091662230532145498873536189806375882058605751360815880891261833224363944260388870802695143853867284891183566675183239670733322978968758568965345221044997103592836825212480856527828450121372928771885376673264328068404271792591831139595508130063057558447012046507877907816481765409790838142908507877128944093899633614905003265821342281670393782327992526240480943279444541571988203013148715093090543475332503349016493393741929910887164493697915445187018498905189632661054115563149995557371763136532108783465778931397220513277907940721521276232450133936379576280591041521784678373484553697557226393823883852642008131149654397104865838429638084754779344282983448084169970716693110317772893885280509321774505009509837907582368299026109396281618341146127661315046034262562384906384223417084256336222648781927485335450536770860967479340418309272085412890002389721986245387602036252953462896360408990398697100669400652844831992030706645033177932501862917619049956032443282966579797225785584095912517323514458066357934701888183525714371365590439027950169260287820656295712275320266472137905548445899994191244880190983508884265786157869483977582341336862122314906627790110691312045404662380284489045826658971427671415653347136220562886992946043633115871300660110122716661632732411214068127962913513189087106279014831817078850206381396759050880004191932481256073000733147282122162877750732858240608263308907251632622909218165855325665444291146240451854663433137834875341347827676590372206394008611358530128346455017968640619883427570588632010247983796748380127628231423227836897259644533357421321625264416221827929206284533967547431734181297376078646308546701608194055975427373887077475408083192920141395491247263180572173887210217075104077514830437700503925130719529778122652824995637936669180170263242833257278350304077611025072656356805336992875338950959218210983781892815351886462017269649822953579282919125464430736423663457047180467866944462274431056152430239127741341728841004360231547648407596486953188022872632199217373239664386993900012917259575445107195130869476656180345603259921262401760478324281010767671797198372066062811100363713676411999205906654189317329859060053851224781752567680353274661132799632976826600240450803957693038031740496358631996058693756299890521380911307626840939027899747913616646207419907919429950101875015766883918728659614160099715666774815543384808045538585549677859301313840983885399429269295206119726448687455780028047958086858138542492331966175616514697862494643590897886642803113059720160029439253663833420493039448504088249481027265857196146746269093152637788436880570374981038207663936019882778735382335291031319275612946778405333261900796134764778964738355809883806414532110616362750271730577553336498372872463040290015938553177492266222969804457191651973417762418423545754411395141013399657339949800342301854562874328424365603494125579748009409965307237785036322627764264658335852090335497344076580169818158964414547324524012635111007657685395156118046778645095090863369042582331191699254825778172194274732528457688770531461940317475533915399385667611627344847488111933360157769763557448803672647826537357385435817355082504125155050653850676994568341048105401417638941053114078350526215287132726974880594809488754287259108390215607546300190254801279278461733997262780362093982633291548943259698894694839383690810792879697331826153584996965458733787320339207116898177802582440647234965629750824362015218678709445909716083896067594763332833340722061347033390843147252827610791513481774151244973637296702217037242923654474281340905305342390320614206902800533292825578488276013122537024266753504919843001417854847685702870309347474899424545509930286796928127058503596696031060477596658523014148645659849464950125779109682739410390794028300580408087624803615747798454787620873203694920628994411423236233122290223454503200217397268913328552073283690077408780914842663348706213194103895520305986069153600389232601039450588460693551213482879386449630525704800172941926570123419190609558116597885434782163984925504607371846047804690711840302928063130867862099959545138805567615869640244801902019441949101138426381183870028124094496521365768665134447475519514832113777200885186928780310567351617675981834279916669921593511169200224316950101228990486158812164909153908554373303246231663221485868352638943501504400119656778695653265883433315508934431412124053385708397632880221460158401339899759535882942819133109849349614311411530586495220441427426290174152816851101841408375113089552668105214904851018155849511334711752542155472272881220357955171379916707398142138210111781876348839050486322228504467770137173553101916160990839923713147325457488926295564622389745810690736941000500203044197898472820161292881750622179260962630230251613796614566103439448419111229543117015261748541476323731704000182431346894307677057054122144571598819334415925139043210691933780114452427715103988243805393842601329948814688795084742763107574213515740166934430607519991900462081887768889462740743480094878407391887836011759130503847773580251490762466888348012883097853982752655161187915407576950579230130354950869130089613091053954511654943556126008330124025660738464104698826644976836320505595138648408642387896182873027523267620042467645792735555691767010538859800733487586140573623497650979945681286738361217744708378770182224850868740808576182243501259354198631794884714047048176942858506840012319376714395724734524245283376557147243381354709479984938015003163064154559382971667129473686357216186359668746594339228194842864269512868539208468765697812753669013808900203208871722433984991381418621664006040410217220114118375848349659963741433462594585824521611179569074460747568829474467770467614221936638649448326169724522430111773316575855204425500060738355529062724442967023430211380932339267312123910491596876359255103663048575915786370801969470267918536610560248102529743733642460556942724027845045617123914875262139080302382214637683192098671316300083311662866602583467444795493823961430829326320443954150691899725088333112039448712482648165218478530735173560871270670595680028395611820603710836086388581637371642648468352330441010297308123006086771611471682986077340528635333971484247171724403875632686662868122425609170147441274283379441246989161503015501107369274254899338343082063082226148924175466900082768512720737837976012516489679965497690262047630556558962001408573066443256673033529396081184349371545682648664699443447001415533920583534419057624464055772342711297001508514333790027921671817959717546259651139934698849225026922152804650469370043910201564993947744965331965572637258924628988974530371246192106271397408866647489812445036022552149668002357603954880960317269546429825522641412661088355768912875019446002663586383806708447265034962277219024780311387473522135342762531445900901456285084669088668729795220386550840955518075215472180410168101052722422891116356307725698195330657505216929855389734051104540572429856893907298114868619438903388607543832261686481069957838413833253843864903441020440870608278526900150512327075106974490460969348567507458900939426872904057307949362597533325746040955800627512039003253255554533193994591686202592295522116174219668132713143181339835402641754132440972211630216600934019532971420144688227653745019519564297055589422935620966682297806572184701752526356516401915823470662167519309620757793494863976192654909513854593500337783050335508518611831389905551893896028216688174894195722716705316097869509448643492846549830769959308860214795511064866644250142708244670452485625424823376523834382628672062452684848416935989904448282555153705328425930598981124481272597255913291573907106600187040228386877716652392016402378520636423270326485556288045425231120920668621345665150598998928995202801954931942865124239794844745506387649446353902703501741710764489946421399141893597611983601986376242823023163101765006803469129878280573582756622384931709308935544488096458843845520389125612910558099859608138641478692150413655483860290038253089691431448918365671169248524729824537566445977663994912079549302449350114546573731519368199830512310579939556678016250619192211554856379964039842098445238774336289021310584026087712079574973367089614691978589252384067888994865195286188270496106581272664955973735299674327682853950333025591406294233310134245720717708666066091230992250045212718488800880996006084460906671801070951628036520662150001366503158727844724011683446601776222594653349030487845201737821914991474307003938632129985583709732788675848079344350897444608814710240135425351144171505638309320041033751960832445098849855669645900936183782071900900263218449789381241586184280782790411323143400238957764759563772220672057990494324053155156523574969164616913863203850839821787682386782095141877418439370914280290119375146845159918914387751027518399034560998623450371270230064083916395491556273086661263290150782031431699128512109187930644559057676289672960911006942433394930476701043178297645589982342294233377771755153777234891086791439297597241465064508703210725899523906687530641075408117186338864526394695277147424822585314448139066771258777145112751752940958363440959513601709601031999663165787458334836499284455100166520343520560268013379519226661359456804889353754718752400018972512171758919958579714575528665259119069387425920538579234175490412857507426436317555734869820724753154638160766732848620583916547194079077278221047174300003350706184270658970660083450539533491792808925234672808107091942387278648996447583871760366064020126545619939154423922243191592641462565580902419228402458432025091632599358720385442346780030547952242830608105703453052138489134994269617437535296552338329417147424012178177306466397124085036554114364957652124611563481153008966527054408080145561396765025360796806059249403595571593354266496158864031387871785934770699417903336839074813978193852443198383323054065248246542707251998327971982698344524482589909300800379619197345889364681970636281091162477236066296466254336951344089834437509214712588570166574474770339250439100048571320940339253825000128440586975369045454568475412628508253163064116486967149997141092393575006827211771601337554022281552048863764613211059045275269735182581632727029391064190533049061647148597323313238806520202503249019412226283539337497716702285908470272904712644755692398429532828631797097708588456197077381970371857496393984816510468592744647865584026529892310680503945594729980147772275108561678899168241128227270915915704596290551749361873360972627780405911249818115651571895044719449873397563015330133699563247119200047344861557664833768387060395366495788044029276542016672494047759954352689235556414668192315289433256370677330023944016403711346698930461398747951249141749500920897106281076467235994750933610347225221095399915318899173418979437294005616903326336150622279617180403549323264059961364836541750003437349100427852333516663051600106148893291880109313495152686224812874988776217164098645986002842387107785329444319378969590482240406589041904197681035607743894419332773453599556303979037512702689263242320553596720454955629824222611551328806675469788335194684742327780085901739869695706602885483534739091333737568356855879372052174746334629070841212285467225502779338466978081524035976648534270557025649365347209208979788462729333998951781166375029302855732919943948722347813589659882637634633768423721793837669767279636452749347424319938275424068328375630427573426724283854698688480803720007945325178209514395735441451582267060509716275214283737449525630503703536379380324091163814176909738422093419231941111655773439353754670279225223012391115480073481946552407345894106729748552085321843345437216453214891582139790473051530136005426754629382986055754273129522072277211708020137063231364194305725603324654041926226552616178913244348910328857100629225589651988362913950484148946121489200696035337543889192009053426718747664247488914471826100040111866193863626072011106184374344374061720800621152002004456414974605452469307253707291893136732952249674720208960351029591312922457424847165461895812692530688120752993782877836483049448558148466978260606715713244967298035876677067953459455798275427372365793902001311178503752773239885752467285757506139692716804742051525283119573964603459283802070561018089784738340373946088440353463116586800326909956048683646104354087155654756468385762124767417130405689029152137044064560004184570671814299453980578132448367126066833223879985678829700511228269775556214251259284079902181569208365762998321977840435982158708726073978155686886619711006602922013402700485293389209577949458177257776409639212227550111455081549521365628197573546153950163550136082686688679428365632479731325905469017853969737966238796525839501030300408482331721547007107095710970412301010572659726890486371593788187822446067339924832551101461539805992057121542018549042285859525309185493681835551162059075332631902656161751323686139148692664895173019644998722026767776616252726241142855469372220421697831966379718500420377722581007376948770957398988494768101266251707871873283111991294338991275047649108892359704512650750935697610411767896108898992101301266510298770209702083887140547449850616114461178364086576663981149574437877867471822806999430554226235010529836925170397695398601637675053794494935449915591110324057106781881811653769307640164715379458466564069188175274932595511881413556718280484011463146329362142048523763601684954566794618874092572206069833792046986685836261853679102344310996961720942441451904233154295782706494890107307644042405759215819426647941494716656219726838090201251145237219933829792184964441553941646348673730679864026518216326688958619414334882833729070173967352229338219924716918990420173758216968703980736425818343328489336529144883959957265686380781560070030663211711626238731628553953702254202656736316215393980039890969488991259113903581966774746991510296914517255504220732071258132043974252453436675158647391556158544721236197474890470274497558736864943638486561659931349412614693290343785314837971314409331660024885979707131589311305107408461503674372115140174937265057996964759662284969787436552377942136114138840619646053720822292629731978739642948848854616169877826804633752663683302999105511650527166397826346049748412827454413094604180813859682120004742837893795337618434584320970608349660691974586711796657410513462601823262860319836309721120623939864891684015839752895470705014193968953270458071015781463415186931767292983308970961584943824280038776224974779438052921671631466950778998233442441542649188771114325475329395527087090735913620090878529232200649553872493871293853075839920949520400599542136092300613450133353340942475702460962841460597310815377477016408223220578148768361980381485359299122201109993474863806167654874816877136088796324040366978446850495384947554510171202844667379979212493351863894387897391005833940142998141908387025606068257370769079554305115493396933516466278526526812134446300136311408602951059448164440278671221060358718406959123085395549123835161654541327584978325598934673416810864453009146896808497608606350452901610466300184816441383973099834925279174590274951151377151481700914766307475323077793013306925950946745690363807895129523440379573413699252225178734291484964957966512498909559235289913562033242361773605361367986140326386679757965491377409690081005592767879257667009134870663543454476309054691985186198362307134415489140497553378637322764190503132495915904662605210894757768391315164742078363042687503169530393635423670095874641480529277601100799119301098522864011673655889764761789965823989304055673528333232628863948667283768806597483741174217992014922355073850913413908977267468888273292850520731457338845768530524224008301451057480791217391631644834589487626124007025113589940107849693581975858359336840021439381193209038360689801794150394617137931663417454345883173942360223858002880214481549761492346403417083333718722785111513764525384186813591467776655935408397066211282399456037407647059887733554910232740327687165367530978517457763445537526512368539397676211923924749332750518994702864279544207529621394957428497740322755059079108274822906537071622328216556024121203351761202381031435315310032791008033409644825236701682096892012067078939250544989782616851566859702120602989200122803476953588811218474539138860508293878734597421469512498648866999881819755098823238143773113714515267504444103816700168099665723888292740202318913070627051694566455132708780639157364391939192789444518163119792678993164957496791939303967410564755974185647197264463698844547568804498298975938236236787317465693537126414077344386162526078709460764149416343494449641325621743803031024918536675976169884279808704877688417568313057345736591861509862146850620676996296992568898733537070637483263120759498690154101464636710436656227825121362177643070681864287261854198994339438749362356395642078877811301217652546909378648281208551115203390670254692995778382944884424819229263523532110510732580524521103076066462309998316266453238935016259153953900344923700198204173036461960377004736531508483793293038053006917873990129057337050177346650357799121048240675736586192023887014879522284674209114070134601421974541675451834418823907093380720366720667454326656312971222045554314634094848634070585696981649071924979295122048365072088378237437689879476953681502026300385985584995145502406384669081194304644294884245219267426908890186827017072223914286205881558749989720576595164734343034204872311462136057359038570297366844161527174103280940637354845416514197202635092914428139124963026834023556608590524013248825261166281809520530035525351516103953809329041456324270455506337028283230446458930029218052492719295652032708990825735835902218221505235441313845725790220437653881703896838396269759962145219456665772264530943970337796157413487168613005977484273897466570574384502562986479484636250479926584464869735699853310700274088079775114524437167197110142932498126097183848562090880528075332033498200797730375350148310699430494126436418311713316965625024867259974121976358827999776634610821455183448797467016296757031545171209275209019409766503300874222765099414391439374259553025795098861781364135213119676400689373527482691980248992590504505241229326726964020564130888945925849041630549316580140387477759189681586089690824120674018472777622572397529715733958508295458888159224457042018140244753427513095705864185340466714854726545722063283169879067852882675091392566300291644032428435653862115990276335334699526553558232687644044725153933147911373174042916962136441465823213013699503413290990854497354815314692436499199447930987314080634256791640688162861742323181008211008755853201054927361186341699586512141666061800171719031689365547886463312176838523013055739619003078306072038870431205304209403762509649362769927376208486871895061911870357804769033030586326500686495730401899168351998869946231384194684204156742147854865501159066258954010033564411528306869128550536158452501243592628247865142398227460368401686800345857417467444821153371605890386635227895448072783120070970996456305770453367521313933366831954835927515019042318687490338084918748544005364822153651556148762888323284360669149798084626288638228801768544678105059983976911827350221208546016274472155752536139219753523471936406902548597227871315549340531933946609195366616254851024477609081980514957715096792782413116673349722731602763813770013055911020554810717393964399635015014672579206294582089541734852665661728019583026949534475775985787797057585363456470903832068963946120395510664191975495595253874412507642102061705878878920637929886525261695676114760722800973285922154027668805373249479590590162793128945549715504229600857357641350107288474902459551362463813537466568436497657040367203120181426867412442931446140771953752213286359146590616745456709454044602082009533416074941058602220754572654543023709846093148054576526178747354856112453042174081127968724971440008084138801539034164397930451155898308786173803182134024991131295600743141104574137091296903347567548643493521201182840547198968225004386163473696768768257184948872955878415442654045720082848903912555817579340968790052452166936502394659215937990273464010542515066337798760173439793019329231459812781218572658251593710193284639531862769405034438967508464522827738206172925068649322088353093147996948222673587527087754320817078065523028366977891278724743662003536630386215849520001332306191616370065451856430452756762122796638878478235809364809863134376637327319903251994385744830859576532979736964992571132337307532942257810290339324192604767192870576315133626243865955686824749605437558485284719275852370412534678105169884259325671111067286403439124333385298369469983934307927422972728517241341682402374103659649402486120199893309090529838113181748906462413069927302762343034027282626076234616339091952715039949345497132837678911474603963943969830391902251168880481771823171804257266786375101790540176228812887977511340732150276613556757184282030472520194042218573441638251834026221445262108979316574000841806065574656860833601284380029849447102481965221131098508195024405378141307121522982261982532151265936806019552520003803209108732736188874072774165169674573653311538979986042660080642235031424186998715799705871669547337126209132609993245055142565646937409342513168980968081578404252901816696852542752865877375291368404355105595311416462006277290168117923100894384213053235192841118449779124366581845067500225829736356529001844397768050608017695084762562899895084303919233716077016454400511653722099114030294812644558882763793527860785257350717856247861693063539114722950189392887083689310914517692691164269949690164544007672418836701953800105098748080175225682590223250888251463756544910880023545324744740442746301693985970497340042689604924933556899915770305142407841305298078535923097437017685180677368413076890707761951524352663831102910583696766062475830253489471349050171927677234761686813894679720013285144543389891438030777070196604877633527783208448649146411587802260047003544829150926677534587369992430520655609425133718512794463572104561656430859222758053639761226597766420733549683980953666629022539488563952820790643634484856890535373108971403323436685473510141246310340197809750842613934795149348729430273627037043794606766839160534156918842152015879798528914404471960067369114611955325779514257911213719152422612692336915273024155595229289768814167963995034865861792124709035083590736969058520080492164496560032014663458516489929072063271404066725156623005233037643013740029372735266309238640106967411921614125287650137280442742266263500988775147030368612611884596590899697219893484688059417392003557181943351112176841598537503958437000870995358301780432087829142978703039199260199143639349614288551630018206884877154683792410934147365372085697488276644916055278993991368799702289386106088310461744581938543014227857117818655403059234648731248916279759495373303752946447549901532848392900737761107878938269209695147445503726916639440620054461437698232688089582104235923636238382558822072020439048462873306580089511458129728451666727039352252384441464542594620409078618088158447618350842184306570005228957022235308261154966030983391255143739109740945595387521664027607474439105118522025915148969851586501059589728495454358266446564003036611622028506152732694904644166984695846587190108698944798765014510357204471398815934009709468995160152048962931378965778243126045592218960011690006927561073220463567572636983951563318594678021849312664504219369279751603034670636680514718047655684924768357823430571188892362600335842178541128098927716541647032709907372667193088837987868655840515460332384964475259253115159863408105964440113941229434428931528871258493336695219789067392108608654318479598620678595422275557507703594651832535444941499408513061060430010300930518438752965399773688431173653716080128723536895921989474094494969223031544617457571075053872611145873902284526207981174627721662565117378235325008512081422911983029270870184312452206318287474596193027608699945146010577118166076143755751233481280901211532473483225348104943608100084694789478574995505405918244598178497390592187206002382448474644323631739283420278387966796593478471905069936790998123916791393179796708053035270533371635895713471095960814755895244713474630068369280385168944617747508529226583999184422263826889456015709354309046975077622348961001462525946904741608464548969906277026913473900666150695710730138281238101760395371788062586980800170272911933109365546980143294190645918627842628703306859110383192067110471344362949121936660582631342320224655504835367749115672987048303501028089163622386510974111618044054473890791187304646751238143416470725342703964931463235446762522908088940846427015757686320406641284729840318283107753578452477390355766331871295166319625195964143287461862843384272690784936254279689525382204402688607072209404000714130022895752906725281858852914924339700378104216804070473456121289389204642915483009268988193567957759446690635837981892802294015968359851476339224715159759412839861186014425324623978231391687103795792279048502350205811309304111036679916302760494420618307682567879224413808667567814028048902807343578444751637634010309320904261701301016047721485283358109683839241716245152653814009833854742823292487926822145512207195285123488074257965605986313411083626385016871463753551634468807346576604944527610025716705191869221742366368586128991318140279045749412245045334765241618773011336580406694275824756987661220471977426289243702961942300330781579932049441938958380608829655647362495351020485212865722457357783372316540536702546569507803537710030193317889886004075976312616121633609193504436309622409166019557483750154439696119304849956010739976497536129072386626149744231850634316245991101182547584959108891661638987170127650207021937449164107594916965655228129675895533426437607925043768007613895630948487010931308534851836703517085869494024349410820332753043274940130500602823019642662704102436941412418006588662637870902108180599113318249123720338730712899615387758662985565830749271343241679261087691286653650096370464984273008424023538393491753928268203649099510078379554090432097164076094503846975803221745212717056935871606673397161245228107463918937457308943383194114779314586140241007049819487910300462329690107977126741584437438192259216315314332095992180447741048308751442219942549571778613607592625859871122519561326825205318153095438253220950788492980652492534664074482907746283225922503393430678472530534057727027126745411964950869885386596356706554532757368316473876472363018300396941906812884332658108398649349095094916913417104739468298126136715486191943227418365173272303553160400472161784944235830252332386732737581658003467789909145183946511362114433679146059308993991758647426626348254600117766899648089943991186668508231479897672744927377185419167394815468837324025490612842729224664482136667150617428716261714887251933525819221014461775476046089851968965395670909244026821230584142836286261020201447698156647383051677928939595301207953040949952687412199125936204029718868329620876176500251483548895660546219765777201347436990418645070431903893556006851019667676048570505204895827931407196894197075102887065934675622224566903616859144476982660455116685430381640275961594901305426116628788370608778029384565814522292103599163042650824656163498451062417064694101337372775516224527523050743394302228920023486985584276102379510494748655311203540253382584345006016762658545817690439195451169830298994876261901196066732702379755746938773929953958455269996903904467400269991012019448284842768223465534245212633407422617554551136421829587744118306269792761877845963993980748704711414677276069690136038416790355378524332610556214293466177319039485822004803054542676777961089892099257878394223852888795430227434789847010675513459790027567793755168730249264757110239171772341056413546498727844913037952853706538809858428701306862178339148177461289114071375603487128029485505134439214381347633965779778005795958486068529748033667289694195410261754535821152304534397675709631325897040436466620915634250979108626231876072678913563713036920426751655110599530209987589443498896070631360942736917991268203480970071822739799809005401848460337471617103635932488126014152568063862103563837385592358745397059378416596995018185172639744895443197708075582335694036611905217073878858442000015036579065924895023103943256981278815603893532735455954887709984235694952610136480740717038703468169786549247018062597257978513320211088236892993160930289691861914981301249865159730577524396554230562874044698953347097969293168711365564578915967053535901897829920656430006760354948705792963670947765576937269863490007143482000874074505959005564386727818980422086315925512192709362705805741691997519172410973025598288110527322306398481983452311265078142803616092509404743636355560736124663121368602237335620140032536493535746313898946428317124029017764946944136312550947462520976495237189237492387781643664450300623068023249799363530591566136639532075420015479564720046934480939794328122652564504086276297071240090356770541348122540030358759522949229603045462681051166678822204986395522305229633388035478796605175146755202935561154827837358779888368483833182300531584333790280394407270340389948858306155820142001269119706521007667862067531503837378336913990110847813652209690101690858143081583235568240201089249568039132874178037611971396308262101681432858466486650866047666669577485437730992924365820273291254220472019015369112248603738837103991086264890456798026736240066498491660096025564386851026209280814408238536048630029109593764046886321743865795998604491641175578343041747321136358182263083492778062461396466701202770625823999868300967893921288188043717864198885407132500084199718434779441058194742835738953276403393658858513996058107286745904314605391986526397519865605981907667296377174759916932262858485735913917854983092394132471159219394650223770448160237410770424849456715503770706163233611726521586650887161110093508666068901470618470567215603004715330268141459123790239838966006232462790538444270657648867444858583643918594572463742507824968153709921136430809116787109145974527600780804360954245213261644749886289785302754236828113648993307551983760408023087218886987067974022459709954182086476488117638565161920146489527562687034488686474222989497326391833970888166058434984948481406223699517633565786010250113344232326053826121939140619294719852136723405918054762808034529322604406350593596535526366883568436582858147627563529341073898847152860646942224383265091307523692836911691634787798010175073753930769190971358256250604306549573739348200334321502772368572038574644726859684071258142231393631493382557637639166619771577907364595030843713491308211112139683463760219064416904542531184200227726226443495313111156307433378117638434477266228644031218508365437498221007271701454704096104686078475319646060097337925479728251044875073142174120615751362284355975100359816520208969813902410530011074539155636780644703095688399655131388513844658321022325058486174393541225985098201397069814880536853593679356670486777219318470704417361350963823489411298849011537369963247812296059954549148860227687678548373774010437552884285532649043474460002202269630987285791391205216982603999132692523686342323951441828212216396967327173936663677476152015741268921316218241226539749798047760801903790052192490546697702209627823731439039027339102429595670038461041642156065321346214082317575082533023931182615532098364152289259091000406260662312615244526499300572254458486396078154588209727488039308009111837524533127207274898363969208035896767133602931173027620979267117044416863140291437506554321161583400238891000434650358637688861998076581500005299983963452798014911019085500877422328904560299291778462112749144191726443408238476191534626693893952699985993269020472969716020828630984175724794031560318577127696947097029486829253467476709057383181595441673615310292433118855540646193698246551829272610481010098376029893367608348386308397715144109642417079103150199921821845157285500775766892497325139877937663920374568198469951339625746001784583069853104373472064670145659496092660662284175020197461378027243641399002611499639127310228129830876008983236755499659390908993102035546141119035859524996936197258176502436898362766559668401749452378337529616540378653540627595426113993374108661592936048981117679307189946199445349193615286477299633406302160383244514770481809301879743679562257502374660749063595851398567697144067824579381614904454293018489039721880090883007628467020912709282992238848793865249774520625638568355539550404247604198988696796487872475868615417753349873645061338866109896418759918483301043337757756897185756882018768851585024079666041275386503756824098892252639943151141409730699920939785566755068377211072013954650211667329417597176042410609796897673841281576231572081141075674152119415940658709684149825406703788106355627049148787932860275009972092719438720202484295691516386724839275447839650246278329130207853182967063817200282952100696321134960834653796127536651444424124742500120229429065335450087368352155734613867315037189786959857245263537570836980613979391382482839221781729460744114604413475710081534302548131124490390306442882091650025646835339331519721618465246087468233578768864822454833139065550551791887026340258441111586528343352310180776501800085764489205015134535064286732180828746467352399190916852585969380684374898192012735653178682144771101016404956895161810745587108683010581564263614673807171124754194244997345950026084558267419504915818183972183139799157921948339478820952933620530890059267590621610800106647425453894139433055428972642147292643865161474597876575940684367833286187544138922037777057168088276945316287908456661314361034902694126954681447656594500727350626200316299187345885734443902283206995479221509476804564137647221270660744100279222274103156082739135066228594763132575799592419123622145651689269986032682530124905007616071905049961726971630355107904437506845567921763499050393117705619563725351738113332012630729523800296724569205571892982892063081063297747395718176779657162461984974654178033785466654383695043803895084139137891007893999221126718351310138298304976747255405845685407324813361973876946882883855432893563756381684960969186833683707702230846248607627422498455511929375203264990449869109650727608098752676845898358148849667646035489527848252452804607523447681036907370241832225047867597541052972839882970833738828378209104086178941476766723316469126180271000920111177505312743520559345342535175552176666743615948228752697177625416863118908894774542062780536903905300400087101214276783838878477981055216592470366184590681569531890905486718612569110571839149145529993243620920638069769528278191071288492774460925077246534213438569813773910374533637617983418348636842224092917909819491822669231459413083501584099195805979892896941788971033341317215084215418035231429720827589932788087412965384679388193104050569243237342027556694810567484663349298013064587517065184443051622537039073304654400484762482657574793262161556241661922051121239602054209508856080815508384879208661590833877980158375649118949897264004986574897345970416681317129963108188107680731315587699660630217271028591179636384681629555725119607109571565501536911461397002252772418687132922075601068507350924048621287779383171349794032162756822118759819608874212993881023038849122120485967200472127033573858456511339642864718214316723777887203494636092773724078204593383739033959166832614947704865067993777051481158726885140998574859370416213958365932778013454788049031550133344971083996908496625673577377465048833323676093332069855227618753423690880458568198386880402908534740883337503259948950261613362967529883126828684465243741000514289860372544654128906663801542236696729360910540431330684819588737368659622302808645497826281334985001150879730151826642758896677493919418969597994479243225799123231980683071104843376616343471763755035986316453502480907897958002309515109420922854388310048067420416614533548563095949524698788830418224560965028711864943701658350943294091311295723136458065483008201109122454648186222858434124203801452156534442771569779298728078100239617428112070093819053853588415068058312445076317371224373116038340824312298139193720448103557681538641433443074913669521709235601672716587858696590415785204859320934862311530050466577326740676399577017931431284898123528567430324996308351158269818144750243332504395494929136667233023163196948366678208257296895725715786383638064005910068181435021485844372422612805339086918160990759040965384580155758661347070589522843912756543289526477226779377471408848994662334370709141796714677707098180404732403234725292926540201790042787352216157816090561741041262573060420062057289501762452429023657946260651750746835623479372860952952181461767062707048121372663083849678440897972740927307316316341928781503956789783253865495039596875574402627163326584919325993321881307285842930255202220712574651642572931730631308222353452895476299351403958130222666052668117330574029342570141775413842822484258427351852351344303185029853431565686713279747626552050694329058033345908962424456817836116113412749839976145594693571085902091332975806334708627157861845643498990922369848466451372980053877282456525369868231504947626119443538712357124628212316983984700298772432268729319163350037066662178754514907540346224255181858660000372948162428894317888443875793229048183337478120613115354607506096522254938417189739184225327355694635731984540774430380556694278725449471316300674087656713178917813732103516607748184494050644235572429399724290319596663000631101072606386619810499183509452665620432239348994542594339733522056037477571236553855929405475039060561047236298920682485887090058331206319543453089692227419314462964451449688697113828894361951020111402910047492757752211386358077433062427329073959715061176407149131816562291012018719961185235192300517797704875391795468548375636685411366383088187109348137041298979112396462175755254982805628877666511756427856148821855134535956261390183443998891025560068385279235186343280182096660530724216072943916077970125610020272578619487019454020420678251533342882266026305090449938125436395448615936980772061690207199923191281584752181300433822084953012614699985858336398041532568769311550366458151618871585878747875391406050343580214395529682769039622384588986332216671629372132606041588905391947846131390538470928243324038607192278763544121188925819248713934298707779771007991391866474728139862716181170105131057864542873805650285082042001344197214722647561366362937245137560251485849730526474376863534471678714331822617233649283253855003828265721185396630040698713961383678732249470373740533824167532693025620842885028648760179139625322542199254486915983395960927072951026824012932271670804215642861894247074973574856089075071624454464129810367788027270419257282262165871559810627313643280886717481613550621269104980425678768015232731405112415285117006516695192918945006398666520115399721364555624849678638326499479599611779723982702794536807788470396378680499346113009466769130511097628951898337077833671742098611678203942157061568237708949209917211743476497648454513614765096474435138094835850992745716097910979460191349396560484813827193577003804570081521971543205206274969829359327464639218161134634130736798920031595067491395128388081825251678919158096683361561246828742969429872744933789153502429894042361513859277179567110169021747745840071340838923259808031465990998133774027025276036637249579353701106815232001690396512041227005077379781353141154278328695405646969580262775329176681831006972120726072084595635237043101090386591327076186000501780365258347044841080487389962729200166538915677040493250492448136769439929420053554968253861596065460162898267814695782315471069568717228120485682826758309366030433274953850328194188641024542291109218530813053686659626565352726845127045969879742402591708009934571723321642058104348946227524229296511255295480215540127078228924462439908880919882239395973592783154314827595536562245178492376883102018331774672434606378149315799366719444503981268073560663491623319319026136422499980849256649720873453591419565879688963587698454675838950597901891448417270359423710552339104835735324838890468317986467956832498478506379893726993507404780498383639964666611746764248598801025278425032918250808610118911770514239526135296366088959531331288971422924865249395952704203971870681655177487070071838758478354579502724715376568593014094295985511378688849513593431429075055877141982254289915880236769008695113297335218225380672976022552903034213394941717426321797526330311227116019764949006458344649109241371184073389511830753005483736418074246708691664072358379890385646349819521602310485904864676502858902728904174424575937667480626321035728977026728313142833398494607433512305527265203538682939082619577491710479322737091926891712762876651040219940468358103558676248469950909065612649666308649229443903526583301737822362124398770993493754080153211723276799595814659678719752929634131448324497290247807250836820164331117094335425666975697028264271549098021758680993812461940966438128866424661743634933184730496898607550775345671325884009222419969914340948559007166096956153030940230166298475156801637858569269435146926872475284262946803671386564887622480851412200344262218344658138839734184815687149643959751862187437147710255035842962067871883717180251052660436251908058341874018597857906316711939112676257862285661681912019340876437371876118642021831816980608761558690817774503883632851529657624365048683521122584340972897370920793524912067033517921067426385791653212568951644834234381301936733209199158299355311106007279122202379369748777417516609881719880580823725633286085186559277978456876619475881397757709125484248316729241155528504542927440810656709007683803354239898770873584235215399640523917948975008674908321561449613877631648095117367678162941266939449563566901386215620930487160854193521904627253661773224613960051122542133095101910167607834627318821929563459625669445564261034229090762720802700477082704355209265646129475458084813891761588461436657408959434308919163220570569457244145402348201520500864176985970670369519060261038568512516701466644501151490848734320465741854220405660705538955526143249267343999589191665053381337413133310867566478793686122347397518531647677845397809183116887228501265865003718281468869448761119102260390994221997149578187615092904571680891703902715812799821809648567945409063419343276061391800076675030470394109086399562723146527204425184410637380871837292122640940220245461422775995277810225421064490972919690333091162507573222117798450374258067419049857894129626902369306624538900888882940058637030537504374346854132803018801146699250490783141310771176980146806566117535749365027146333907887683401202425623382751443919581158721028492436361261680085195487856303005246967627818344965919264194201983330449706738851736814473077218966021830395912896739974813502596879817112831871665100072266473102426320610448415240535851512315524174599685034060473022139504796717421376536145543812859015813175601376199802386735126402552235604930571438395350751094507275007740981829782238553147444351182580475147831707380574884292241250954554757010047999669741917061397218203389411235725075810323694053369613325380328412459869850739527144159454408677399399489052925102343761230524561038871195602898401223209572851383546239892801351925468450872343189758122744981127687255730373439675953996882390624124923003349381151341500249931000559704215704252427638026867190977821508884581939724102522995341913231572374413262181433575410366826447755977936183672396519156582686732589150003436404384627188603808335615365095225047983544345853777059163190392853752934899378819947534292817775651567543840608730010788688020513599343816450792202488573468616568933038432623288246344262100354519249075198272924952704324608376004891611153711259786642294265006333933398529292779810466659782475488557245649574557896340041792703524596655350106048147825172790596037111375062973119042902606231715722111687852496554084013264641425907650186826506280495765904981286782341850079412492244805908394148683389749635834060197499509409715366922509906287152016904745996635262880112086337855087316053658697730949401027840481371296142955442002429771504677304339678407535699597229555135038839053105771492555675464408482824891612634765331068106139455333913782326160713866662268469093428963381004826909527838485507387828681851898643749798375229991527086440080817355363703644589814308782076828859909878724298588514467937302084277998436720256803152011031884935953253560112953424547614587056253960905426680528715094209128974262335710360162113693741856071006195914116200315510920534578529475709165683460945051292233302028672136541281672034648002565816236196741964643704664047386558987009758033239072352440852434577730702753432356589062281983130283639388338470946144583121777150900668217878573622457019375684011726145036517616795131407467903210522980804962915604660452528711147131739934834088747984267952875163727149303014924938438768774350993296508214960995151263886163671288016994335017872148674496721869203187721025922945166540051547058114969686068355812328262707240425579078654445961890815073845867047065456106071812900716924605067498420323835368673853922355536407462073427850068280992993044261559799564472871402364476636528288623458264736240387732323955675547529286531622313309964037217180027975484195000388918658945292126237423550617103570029481992644179720522818074591312367283264556826209633138169674432351214829312730464003446260297596844777688865839722849250600287759414474416649565908465396610887760127197744750062048908959930045855301379125244979680835197630263505035019745854646921135850330400951493589541031854893122091987573769758394338306355021030819268981341734389353746819369899141065075120573680245978302105741381723975505523870249851902186800638526233828487916686216008126763125156165353319667176932111142645376333113421682193183898200395143309246342798519679229776151652281808444268173724348019031400627054159558128532209960195502956317462553217807844465744791412843062671605150985349101454508094584591908968068116381090970883984669558285060509563967580161293462923461484500554378503965126493481369158964103537640455921226669079536034655717092315697873093416373322926563067683025833732237169453400331263615030554020573284980397516886890229824092520241862272286054672565924839106271632210182750470314466310834144810965073620329986867999341310832810953315346066366319213169705434736237014946744839308234312278106046158618532665520883171986788948674024599496329604616450721919343343920312139243612727643138998123445275119963592023233295309826987086634592814425211392973061836232931663113181312270881095852183461986651107319128937106769940824154187035717680407107993686733932080848447007207598194572142877071513374549407100216225675456800281566317847145126418893136337111550618839381869105431146419620411338235159433382964913098657286821245293511199212458917093484175358858993922802355296001470498287831425910022472127447475444571356570670581689650137373168231949426417901631278527648992759689058601201687877488869555713662509075350468548593307842368843532708151726043348316532284026970949647872393496285367674215150346495993857600769171026142289923173459565279899733235690260358493765551187140446154688823458710791417900806281876458465697105007092306718050901006291237463903447399756448357307531326008782739232727720423684753077774958474428205099622239053917045094046180923401199671012911593188084294641036336305353499573086224885661650475841704404582858855267226591936451775155627001487610689920614839884613004850226437055446654358675598359656201504988485898054588820645084431709516638152158169365888406058119554945924294126399811333621779708940202017985811677015989654422046822568790142876119020144936508496302252356527725114655382289748529480307403373272542781726145263212251538792945162089712284006564599912752088358873035283921990353828033186555147924914301262512407048819702395266411667360039393936244304017548528375260899160343271909987504103883170881063676815209630972202412478842383709253995519144628639731041994269264866082907546439594109302297430627647560607357128316862571669190765933462872338524441990191205905723329257903467432604135067214578387403890030772857022102826453366107646236433494195476999423568451200219231578600981086037933465102296344844637120725797432730630045991372610014226902048108573738145757416165764345178889599774680962012084182455804751187272873658873627464286096677473677268208839977305801934960613560696076107975887308513343308259836636594784966209243239527479431266313852158216200883481750626318542604394523555785334987110127327564724508243452751711424770869261712034094922424292614567943550722487224633030348757045775571443670848061098971339890299157145134290138274784868041681775195572242560304850941182621829395144841961520090373747231202036661249484979066140420546456074726814039780451502774433735488583753208101288153777836877959923260011846597889137253184026247964178198110770805132629015382025656259530475959727014633281609842448103397249377304857847806073372347120793333273292850022527371922874421027244986336452068351624855647372178431382602866277133844650085387560652148977811632211902426224455317175790293775788577213402369995944953603890643127878655000878816845499782789607731640043223557294917160115076822596854727655762020122660303517172993027196381217037686423910484053071281690828231829165740629845646251347380713377707023005585298584300014672392045656086011381078503253250572889459725229845160022297634467043055190977290317577598010523992446032345919361674045591211084769121841265453915203927818573698072847420103867515626573938370829098001280426396923248797489990471539947347444894004168782310934726601730884839633303644875104329827227934011037428520109475137660811939952729481468064261466787433277755012997000050915091989494882756573472672617129169722909086299090692636361715599504593721601566950890552171613632988319986194904883613891743695121734055317911070447795158392376859766479939327527390809421658604429983112695839020857023468470134497456312447341000104027601097324412398578395609512945344160464978846855877082086855490816184719442643259669875543473224008516259832653241609985268386388860216765363812032532904227918263967066513781397573048842845533928535996971720754950632320645759783291198894480421369550445729462667076227379312930397814555467462917751613008004766082061304839511331369686254793123379746409484230277764110720930065759329853608475457213219664033404111415348462643628861881514126647636804390241379669194550010087372476544430892730292423770750787194596391524694055852505965039696094880844584178144334037486339269243073630111749787965867615613390667613605900386149559171568511821232316235562388492720532623246184010462657535052835642565904141437790839879714220868298159170159904601100872873853017898790807624181727937480695146815556283604883187817109825855600317149042371904733441718509252734179792305526067727035264902884330209616896649370990192489408108585985800953035486581759271072162126730685360205411789720054751380056253750937976021088023529894269747209692522306428724906709488373033386317028120002582062164100520767225823796620618040926566595365437904230932606620381768671717585076611653716331129180046307913833627852993112407103901695619550970997006010781415133140363624870592002884366943078080412194512892360061635261286589689428560252342055938067540005925157430834952458721736918894251847176641985781095843304708315590659787698236523905895428069230016856860415838700463275136287589263049187832891018386052601966015497135701028738460671549690459594833072814505920956329535906968505761331590162368538284934419709801218964775649631445374607740431295479772696556849658460266976379185102937533879078407487543982531267532280228031944522187726328948662549563821207791586908996400260064890312454887309431218084510818230547969179010282270194173437155903295786515277234671172233457754500298048320075734664052661420623756429498011069596421178598473185446236627136864390431032099814762537327114636916190091981062853869154600769068693443406866754087328708062710111698135976274896050006400585939441455081151102339135783559275583889384908576189229904927843715020251431420987377232092900521677380775797211698100966851314593815280781348265778608570371792425554479873851345157597612094768638312537986239004170071101884835677076032725405016508188530031526072404302137865835630729874319711710188018994338654178850910927672901305355481333566451128663989916944690608263545400000676787559048358379889161293843216864010688362145981669066228961568695719232028153796649305586574447293439830106869691463578068433776103640659792170262572013928585401874598090255997204428310717589510393679263937793668465286005758850410719936965140085241692643259873774549528644914464720552131333186539168051325012359192470156191939789302283744702860899321031158400709364060770196966505382720644643553834188592181353935456396222913482722990188299964110920721514690888871974481326546877670443394792610530865206817624716291809323408352950793871947416762777688000844738474814053882525553629473625508880584557775494502509404601244075876393309799902805549154731498449125001045457311986555231946846203143180850645318583614719128113905877826248617096895581385192997536373011584857261985617776651036631739456267750455472965138550565068389146365973768509578651229427552047473843318231368773666840914321576370555647010287457366797059108005894117885506261070854995426297914536602269287594836112830243877593397352390458052185023134530623219815797959602078651494459535914402607103076064968266693078835332001636780485244252967424121103246916757294326755034822065853475558323557108262837264940585718938126590634914962328558989796113986959562080819829561594045529226435689142526339895325337125810855245921420506484793034801921339833034540706764103315217993917871621736812576977962057478335593584739465577402854881644242682454856326796468849728591791942146671808057582464949666887684991380765913400112912309146255134631615435413251484497279451922930416910020165635388676301457810939708619212582508690985375618366356197108507005807561861119131181073638730363516739058118509808084212938318448173061152234873660407477901653938066410382865852864293906388803727026032080096460619756508254767561658482532675210405113560875497188408911554300583676501217701817354978809963870699804075838093627335179847893150622405040620926443904692773623925499007098696113814657736586830515283292397658467623778800244122467816226568462408415750450419012168460652484225049826062026936452726901730091885616491089403320708224579258971723311103856225036266318435000557172157332239521871068230057275485605013790093136005847168429354941184082633090485285579614188462022766097080700040034152460824521622698118870170587171047803374383735465269977390492347773579322034119574199038800912312831659190294524928609668210067514626547860588703683536647507308989607789997941832336122332530740811926900993853695106486654332031277580684680203423545699619017681254534875294834172002751800644492013493216498657026758583912826820059166382454959567509805211174975306293434189021218097433480185867699059995139531679162858871404346810038092682919129332063276498302385459823315442993545758956024066705188823380037855214559212028694295093942360901387244094392845235246809490803638002425987947279926272774637099940707609118105426548444301540457018057776207549156125755288302017750901932332841929732356148586091591432460457736989972219825145563945131990772336464732630772228760154348620359711013757164496373486640318415176317955738587987616779883554310124442621291258477138632998354716192502552302821089287033079289306412516521675562054657900222570877647952414049360346044558088433021725838093030088220097946371839311799305844987255952952083334943063656784996181810687698464213809059902355334729324825632810873388875841509809656151286342618560795326045871508191530105882099449687796481039269906757534335490004640489017963126854811515276739184610889512636648848993679106157344749721699226008869178492075825634514583564828555843129362619407065342071758589076163089452086667938926391319652672195132587462409243403448908255738586757453073139831386346327188967465687118714867630165634105129325609671862360630456415625744525991156495096885624356643572089513321701550022687860843592213435577635927826734153163618681711631556545688312492618866381571475111697580647654329333076627843498532765626188215942939470470890413686278391877506146265632311129796838082779078310759655321890553237520531189885543393417250454803806208901596465755119244240518709067355641148913910424532139845595291840910927330630670955300367870083877793430148845843829524549299850861006411720358997085051992000076791149425917758943433763161836089610717721161365264217706755878730240756352789401699227464615237536987127056264028501218912461402958008410245888233557270243933989914525432644653694901023280432102457658363766892231444257359327671397471644610908582432916839986264648371596460327858434027858567928511514480255538843688170677572051227133623882247979705145989299469816824858461827994764230230910464854854522921581624894591893805441613962868459154153466164593291480381680758218331880405932210107561626138127159843815728524505186035722053259928765554791464528300405668333813352030488597037957808995826783245531473236180316409768607372214279235756090382786555547935286460351999651899781736586562691647460583471637665896409210935284055067637713198080164935023653908573938857714985885790883572110945217912145555142887314821555816843185696683901744182500046885037541234761135649507283353808349058531167995250240378455580930054711931623833344737174996862694740515167461669144142461155638364145212981235808146667015991308657455809816951896096438222810515659375698438135663319088103395231640784049114418889148498964754070143206887873834722903271483400104206684207191975885278686157059862314883731251096319504219423575290951123699498046986672769574593286814451685776612038396303281031597421881646935616569218810838311006143459673191666283891643989079712066959821100293453378399056087379605333286002069415589860340977537840732982057937972382529578099951602326244966461050915365387553322029978094812422651731216285613930859369832538539478144059321415249093726275531809430632983981099890991581352822661868748757885927737424085915756469308643860847649105333395696239199378941640798545561980730645023231837040824748899810781648039474845990445791740489347627785189977012994501964906085435087358008104807457373518242068022994634122398520796769564743461135259523272777843588297718426023042713352122659331227163899587416733836991617231399664160412340589512224054878621367293818317723880639971220357538094861905151555317077640226245417408126276133177378936993478191793227348895337425979971639178463243570135206613251955270646078526413041318013936760736681279661486370199583197182268932008956085035306913444980040266451992592475426106589790720020211635602736513767560589709693175804525777572672829388968011076108583433121672264363747130439535637333811128608278045152596774287622229184100797424048813493707107621273726478675051390346951067704438815589124212890202374219537842816268787187113444348345386737248124898069466217539942879702554847175671200465486162026988901773985532042290142270278513742900327218613603719932165982121192838770122542155762829259171537850047946565843833696619328584186906466783650300936595434178123286066882460486944845871832254825575973088924614863717771502408584989409105418237751541083120214193573419612714832315534173989052484316166321641477603698373809433689762691245831592562029112932880501171406438511372872493296185849976261179422411017576200741731584045201375868775045876208439557467401700756350098485168186263480693437763634155416636169583479994949463404073104130474161441275829852100304750991529252775961900722066174288330579044477286654387878374488942969843193082309785231623722493423301597736350893955545243627054914559722950920912901200582021024163259787441168218155069556529697911810563832449840286243010171561779242808784241238149963136531081018051691364993990934223463441696135486356220778854708440814479173009961247643360578023212655442217928682010399675530219432053858155023469000803796505692416171612088626644552764207440088304375590680406914337228813557911501152766421468069733198352863714476017808824041973918358949417891977154198528700481096119744720927283370950962879361340368128944492663268619805771162915676883195414049634168053299899268859258370761723647300721415764294797402960264220202555561007028043363831208451704611275218805012249586808083086933738163044369193975918599651717432587968421840599697068359699869741962823292403052593824083760837868431449377422058964319659699096018818305395756666618252939870960868238207502347001056493352571531531432193223310451322860763221419152608514554553384529365269095203656094310286524918283578779583006689693662343397410705209591446375389611875429280166141728416248855392871651933280066655252339009151455126946729915320858304334557435060182580714759548783425854499408128822967489389426526195385414273290781089248492699451461425434946977160622029775449660212770283806423243809937097088512644519615740249577860506265277091570800730116480196382715458947204228980242852307395158425335254196509283452043950126527291275027712070118522366852263304060888522384399482008538681196982268560571202630565012563861153931687398952948150422107042759931504480072442622274960105761755043306917390093567409562078184649065429960403717979420676608000423808768442002037705597321804165839556243745387359301884902448731720132540333474076560269229210268097692297521077858887533160514871359831689093077018471770061994317846736018012357995394973806056239903805589158997381512998426785461077590370882792176645426405341708386433064157602850731585029504453129685419633321373859946404199885069573044715823433234855532076773949020164141914926663789654788039424581646327881677767631100622723633759351574022479201601073022908529176937456183409311511334556153843392346307268581326065779836282695032793608520693831173683577350216441056457974081786393910278579478959398890020145155778676938806867681852121142420327345873196253674374466010781271564923254467323838769538310483167736134375150443142773413804603959339324568301130185270639322236660997147096515413338840940823473447258014995856480291594842446657237168002041139256145470848345011111207898656026550838177120425971328932127934617814126621263857764231517131605929521941520403092422517350321888908164131061737919237468599424579681162927058451186456276114368157419227890604911738614171020721887882535440061795785904188256007658760653549419765997049474798278782526231990463662969101542420686692049024589537914996545955395847119967716192832090159432462711991402859147726261062672728964571848846209505562979878992370294922669263565102690467460004843351130288468798451024592292436186496599430742791122167975981823066232777520352063765099008947845829854700586441882469587795016264031280618654332381711723908931924627449725400971739360991017988161612010114460139479984917530249821891414462499028781021106685917387186417169490917647321462036245516320692974646830605648266789751620639240320457426595999136854963441605704298163024942848202339588705948034830239606054470607602655662931457205965053342020065217515057587795482688306937122713187625598707328579343677921089594035133508046577616506706401829159060897175331368060320956032203079358093687932916108745231749050110214285650383601103603913562492431070248909242991047728211816356002246085779569175112306602275473300345054725465544020414153122045787735333689141178750187829295705672353220263975489097617570367977638885657054730407704620872085954899081171448766108162204561010088593150987333897644932000977261463193722480392412911814034619982925666907287673272454203885084541948523540345787039836325533110592073853060055583389523778626068108975992702751423370118454289198571264816321799128825179564059178039424937609623892738496923220265191899304572029669531554476532257255796418070629507178488718005976273272049685914680234896377600991508783861458880315054730222931950233789843353740438789949281550815629639635780323804870650896513556156613457456939909806855961316780435003597516140191707954866128820746753562791584097014173524271204959630133565330463485492108531136033340190651118229386357272880923405799933479154770473523145661807236809563728679183767996192822522412240550597415257217307695426890464757803687180356062086631389390878223330732814563125234726935356036781821576958292982962063063364133101844292995494026722119371358432429492906833007919298864780708766264603043619489600670200427470886200441400274598556502049633265632510084209119678732344300126827872733288616144908465514670428826988486928010339786762560010313929604590889984985951847994953363863441248948181571660461876382416120079880891922453044584973583788122855342975949259173775977055694203217640171343714393185109262842504189584443424499999606736264707056373486136118455088029472835394981275269220388963213759235813308017658154594234289647312392568494668930988831710540319873100696605326546912138638869000249184235162418480093913471255347275985850861520342003785834735201581183876614834014223320755992055771715285362987207919998713105044045148095603092365345983710820460995385738892955310871886910991538748164873531121224508916977356572371530101056948854169291787415925746964816412764043299656261921267490503375470729825272575676048872222582109588757737592225615201561597857436896210257378093772653708402140553783602707978675510811531936661292842220180919729939106365638409916151943957359532523789262183366732075642532372952455112010959607415701177968457029913912390295799267008374038931115298409440210413901798075664996531765865645500121419661842712789889611679571302794661058124521072207522955268643795386578710980411233142824864223041601802784864520158245691782152392285407606666216331983024161515490420805173698965404184733233723803992406728462073010424179239352247918175525450004991921691056649692799410244098483345316018327896938521280980957557519641809110855688329968492999254083800462865724777230151085243898646554060387976063646813598124769133751104862860350061282056511238177753443307246151686260992267915365857910829444755742558671472739301507487547862746131181963026151500582760324012224976156752490233119861759830268985637647615865740877786278359066311466347488034461604341518036908293268838879823732938428630724229658140451238159383366738646603489676000023082771737795638752902216984850892383436339557970020681786991067455740096866613984194637587512797765151056948181711630396105758568615327941210601268924073137987707219381365691432442596660527737340581106723338418840154591636280060548710625836653256103569957369944414398298943936296684307336625541564223912445541257987728061306338361888193216321491876039146599083258632883771387921684908933314078025502219136204130112249555258215768638842927787484204015107002756597873754032680576387615033649712172136748120909879590834578537058922792814457592567949856075244326190765381870277042917576833873033342755125981237391068814079685918899725063344310491094528617327705059500331774370268266188374518260762067463391815879506430796291491103242865631275408141620552934615198316659643826825863819988391410174326244160319285442603445341853626930581134906365233411529720326341722806188819563996979861078456471369334505142593525463524054454717350817593463425763203884477106647633962371442467119496464304746472618572593254529821606733348828196735684089943273379346783889850632351519481153781331372491822626052144314981950836489491486865449451800136656916623354838374534282751110245175845711410852142444205022369835267585272743784945071629447655672687432278712343422802426711366959995262270079481441497739441016459314120242216023529220668341578599843744599793604090015143587010432168997596182557279921344110140099545345741194226798030489007997440655755586131088615761305712781969460146228109370857753785046720815151589647631844914807736806339609501178665252426843317791379059587526770594229925883120747693412681790501561772742597441071739274114136134892326783707220601217157736425848495751463599738110100575675589556809879485912893608199007587722698490928313974514969594130461020525244607974007366343525005750716318005176221586244481769507507798542413656214012879251462596850785701706893693733953943653886468870139521591232971311508094944469053871234491509446266814580290531539536273839541262634554092330963446802655342708693662832351678511696945529551341756544459428415190605956553953561928740955675541383401668733140798636080589656140467518480564476626853246204027332052880625634424103603664416507073479682482792252628868103577268230948686825043600807798066061012068261691550857070681067483403048696765573214423915314791542003373130996936502835734429159990869894348035914270287985349557149581758660271222405056379730947989727635657103138879723526086252256058497863889188427310976284055569036577353480512569671842640793096952885291286386903653947503318847679144800292131593985424309212897463658010727363072954623904251522545264648656926685789771025632394442984982174076030001466999566713303411380496836911562261721936873665040635266378419622649596620848724855726393943819362450903769484960581142880063921223954805012908048462429299678626542758300799303722177589290760772993462385853735885695908741796680423985115162114520279822906807028535221670355303321585099399628347964997144181279582495081415460266646296553702813515223889036166020581194387773665851349000818976198309466043794447656864193479771708371924002653046331851879162370071867604437925013204768892565790555047590048200127720639463563047317583238106675822783068937093145277714226810648766347224376738091813097822707173443795974182871952098094163811846771957622499626550846330336521989030153322162085668134811965744424833350738178688867494268435382186944861982345066917435165219179355585998720326033592299147910290294144654056539613882046695198839711297418832198737788631206960495122410683862195446284368630895675282441253037578776931304097253323190363270252466523143007217640354723697362885556462023714883194924115659985474924022278100465436394247042651664045837844171607008550597464274699104894523809409909046195858416847558432837470646275728056159649369306471468647583909338738335547121441146658821368616234176266150234257689616721285703727112612688097196564359770482626385485215284198371722321062143177474753398864979816106304747836142935317326073808938651569068199562143372120645798440809331229467042533305933949704074753288727276419538815859667710804147252427133764259891920772074978730764755903197621368990645513323395988838294592942186882256078293148545724455875398627010584380547725424508856818379481885668894008082485752109786187955702854418975816151440219954866408578467887515969534593975603484205239561529246076695751931353547865363209034195561837509895407057159153708280804056973085658812359156774961884922624667039837208296275951882647471275630821336926436532744696470997343858291122807825467571478269544255844712178856473788641105233432919138127967706963390203819558048915943626888412806943816574419620652981037220312675394061868326687006959339668416927338328878789950884193191640962849618591719278999486849425801093004435662769753463119172671754210393392943191594060977551257037690796271810588631679394792542636106960710061715419465407262693536212213338927489491264230615852668075472117085530670025997337793939410739203685923218742549562711621909277958078862128439395469003271427169749389825797608130354694859277245692051998214699485665702598434919072215556661597599317131798775087329740328355812625928693556945065053421668443704540232907742756795709774625779334294720049346429497865765889964415996566818429124203561820777007695374660489847502142832814447482153337294308127394973936343967788595518667288152148032563237002449178592177736428793523077374747442873599387723034407611114955322949862216224876369663649694910052225915325856051619437237559095483584997806710543134787071387939271007087306363513696951002159068507342146859010099900264947510208952124363415342996112975383392972841949420782427562958328713691301945436379972253180151412708759698951475834735526276736059544513081845490013450976934731611406411138652291488617985612083781218958566069717044128906418298002731144264049508994589365320425832788340884249783557312115010129378509637248715633159499127534713668274836326990256974067835798416625605535879661137442896991952768016158120006170198012833057738401488639361180197134985161474193559348749931827570525982036242894471817180548078008943294194335930432748305493268732447992944937104085109682819684688458167675449924504846026669865954172282089433028404340453180448984824525068207039020206508797428133478033131633410815247207840857080407079610013765920717912423742054489415094358857169304770105244516050447285582712605960362681936339131968862074645541705723907478379193680792477014772459895854807139224491587271795604597186542524988007172411669711412339334589772422293032354627978774472267743059465132567954213560223895772058113815425982183836685528781997676585363360522360198957875415069755601863309175367196829355581875576480789268814413197193970193027492427714016151696978795330768191378161451876229476259452885912432701334272833586560086654453689699269323608632998314045852094634591895278170468332345891822238885678049459293225909971916083883465894807018605028325501889373761248359295235910174426977450581503970959783915620009745299053157964723139611103460430580554549104118055480292554066638673010573799535689904817783474087408955811703508909157458234103390678979547870534385505217378789773668643817371511542272042546267880095328158320809749910681332836692438451773257222659583193485094123748132673259982649749605926546821027841128320876712644666756692477910934523107656999195883365404731090590858810793055975673463837153458068697252431712760799694276033804455028003655457798230989729716365166983994561896545014768188766684989557934060554879707958404548231631978578029270939584789920603349537184416315833569864487418004359139003031747313328791650921538611722021533594741855786483479012857716936485066424413741235513884284888371252922334623600034096077517297034719039142779492980872628411089119700186404881389895850820052235611327784361209052185939054176222647956914259089854377807737122470396677853041365636530815889132056505071182542798120444754407954629034132369659283700091462191923825049131857963196955430250063199269863719036573165230301035248532470237082851165826680171079666342315318988566043899242332282670126538111100357133655781566148194681129420621842470145718502970327951932584366995445485267615212481474705203436758215887348984799866852180264653500872666311421499887545690831156234499348002684284951556768214869692313714338138344659697869323847415104240500500761445833328772502061927705338940186186519147718146132977753869487044507360954473237123563483435131369112222086494348620999057959441914259403925961917692584896386671994729797192995779757400073727765715004483576385274892888920827734523936621488934691023623387723731551817187208819521406789564630758932087763525942968265997845549123795559677008037075282167749070367733286811883509349404956412162553854915424407188581810351823164988418844162803403583502725920705452186572990873058396593063517330047219983056552109952776386194562973027635019093286430500611085715331063212507311791785447933614614938811761523492985813452799603522817612339079708250593632492016538613023328791134317248622143127287267206266427855513529306104408205013263596937688787951459354333152564460264076011370733986941860394978995970276041041636446080801031460896004196690660623606983676408688067600319801794309124750961336074794213370270418760330178354753818280907101009190871587192614573323936956806358730279910779877285338236718952195394337940370420419699555716221290262452674218575328492106772577682984163122383277899899605957424102565629484334800673945493739416394482312619809940178414780439473876746066151498414450514185003650843469648842160421796685400702322037513500587667385808648349818661041377535933522302008806439085178430839884790449438071901432406065272704507712775403125908579191682502311904545565823795386316821730302575108082555270940928822443357710557625982262106593159045503572403849032736925751965455205959384625703471836978201702867455409700324991154564021887753318002513852373146831889700820475356626015172592405243885219346813800352069536026420113089276686309520432524667823376239351188982872895887658747731049952724878820995283259792572151716233427318394097937727705370776762547328402270093146840909756578987906665203488338307291937398113740811792215672465794900508422194372354444516218090926710291749785392089907189980411089961662234615964456246427345865792024762777494995786976327950073704561579565131980754162712537200277911651501669332735770004138964768086240053195605506519319568671164301941123779452031372385085273820066008903674936488482666525247950975467615177811193019117015418079881145919158340903443348090255126227676114345492456274362212919842271889670059302924333510999827342353567444290216350000366515715208473898322031874574639543773472586180014392308008237920816756807789278439519561536959357107438597061668373724718459029841259580595461418083059236103852166553502967394310884648807744164232383628226972220300262921238248164237764991011537586530729980950516852866487554685824989687717390267001689456740609767324949041867430832305986123512795504647757429320810135114166066985480930344476366055710851467338678087009528742383228337514000097265651852018584615293082333984060653674085618569280493509373196818391587196299395536668072422713939975550215336632930244023824509801789307453154700442882697794920798232874794156108182200262577852854059843186766708876991918609400306205579669950591260591066927494890699496007921935476203348613587161855398991043917766266720137557574956739341237891800033118202456426366140092052109192523040394126688520617919427545083357954062664239548614417448788074114105456079134355318931693657412187455222350927886528943125524197624285310343643940740937011475028242193446094948244167847372538133006222739328804961357859157002250637449583162034217897236446513597492253513492091113969838337791488952269036547616725339347409847793456173175425150328681798022348131454642228649950108202121599639453321892784129285425693536061584967217178970628379534593635124974640148293083090593123747918503412816835281019886251936987837182475349355224802179949778806992787051580854941787093862705036135943853528061524476939814383223888779582826670305657583260581577784852933735120361242395776417466189766782066829556899739895998940505427855418620573551116277056429213201368445957048822880074837619581558017450612908838601009248456748290186502628615802686571246004466238786532273751745345984310510156374542307129168628797585433660454529647828206486103063769573531535235033029744930810997780904065618026573606922307370584810867825927480038858995103528454113774376694776382210669451862205759011661334739013894458987263106759994702745700162576555693422427704963446478290372924554740150099869224589791574543432620091152080866644062600119527420657169005168638067617656144309538561977966886636462990946162530917778952442098610703347297878540505283935431213000780304230214046501386470211542485477048212454439774733545429014032081809693102838931318727331583592583667927692916519368571544842207401734226098681595419558825700785171231490211689157745572374714232256696809834587630561975776443050510163892792508600281597065424154863213412289118834720145843463543609159640723847910299718553256300156959546072465222572786372557769222161572875124439620070483574042544297243811901891792043891448077917040811264465382667245959650532623739186844763079731826636254083351038688714801478876902706216397092325912529837721484807839918981254917042568289033484676725052527483730014199463711058169994234068885707320593166048817935542095306794629060145815425191591813553454232424534027468388631753534783775103545424613607056723145319954807224860073251440308208331537450940090492430468007684043464796358273123712533768932935336493442187549383541187889126055259012095945435412939962749299469375140696018464192605457601303387543803186205689429708619351049854053818789874319333045166252924269340998164967362201192721952802210163388474604967654691892432801837588846909998441948438184766289860710546969910960589475364725278671711660964180666153695546430531842137184146768938609649556535078363898314044622348086242259979446503985952391170960955392663956314581592521679944911103146869757374177220829922738182668159080678768336767951635063795893937012028243017869694932917153009074482969457132587761455223611787291012989008513494428144692721928941898463426219834282182420411063414760496324790223199870828404392206169976472687757657106170475747494510057291333913564124222350533367707028412803991259242456205439703099674761475738836180588933928963053056548728114952286308896522038302213641922711504202223314213469968493057660493836690838765436251076882087818963248119916420601710487258946295504127757895171804780560284310671892671199754494748421310238743104620465911319757468790801073504991019954402415862684913235461162972129127456892089311018161783878705026809131009870616216688412724292904109181192578529408337833618903710593872487628315333797322361596259173516685296366066936253000676154451438764574019874297085932161682665705128660369852121137863821567384214493977835123052432507235221336325108394803706144765809069475677510336492397985859649061829687205940443897176147415591248391260272186834043506033926784485712455150143838092788532656753266268252004060649769166765273246119446547361629935267828857845205849048188961870714628376364144427826019895179160421119940935403558340642130140258052478747953949985585958214970948929968333719534855518597522935929651742149270848716875177213364468834332820640737537874474460644120920279621552304275608649390677560627348700551723369544491595115187094079753020798846626439619351269964731055038301242552306641707246308551591055116621222095702904898216642989723942526795198838553328855952994528838776964107605991701710560145093216117244489667883521417555636639638413275121114362747658344112646832137270221354856721827729996014619131360361249997420338620868453701291787600737493674822285319720472215434966771193386296514536246556035158303595006474174858163157919733013039931358328263771086996682584714221130658418874089595031246338308286729666675169729972748502348359296484798584703970089700992543713512459488598568759093428347344983739849115662950178229308707831829160956787990457718953282184812878987054032419462358276469130758328641297272484991665255033266329294743709458428988336993860341535028797452233213856760613995430133895713492231295061252070837776962797748447394695306468178677568781955349642159149064447775843362288343616744878830508990745419439765964007139303908359783394844166145045210064889606430975801783179143070512030947549876997263500255793144574388604240420767504133553526142783083992473574478717254323576068277785118048034659907825339924714914258475409350899470001629610161852833210232213872312234116118718670341966529765440247978638937993978111536090727714070011536731738689557695907263215527134155878494829788559201385860268718454280960366400061562197712586886095610734821329662788654701977558548102179585918951442983402863906077458571119373019328487961865683118353345222007798993748297158415906563720547049044191064132487199589324764849703315417622992359253347762501075685954089562173419754885753931065737361503948030677749219101500885724077996379991019489059426303877387691443499504740742754394120926102087434354462802657387821849841223113812647966089186760966865291810898662502806850770269909271876222964291038003346267944199587314462035026732032841222947956803366430396554837031815740557394835491467471839319030204380410305041973679825828658116697487154713857565465614462063791729285485423697510402223822950652795448668578639093300766139225928919061945226461526001880907459002089912909184156336223746332727606999616637707750018762992008292617914427285901033569010429258652185896583758648743335594175089413023609125773917635573331509929143867472117743083363246514801863728375113083362356117207621616282835989540721334764915984154552358370174750103905275404514349277955721170135027566512163044755367539335571615466558305230680390352285483872811196177245469893298204281572904133982038406380255569394610800420196626123575104898399494216641563804000129887897883608198023509916442138057731289824214102448161846185722145576267713557345784849964540211365949080006078997796572494973535892322343828554498275721671436538452881559207193740511146291299081607681336192743645566028800498730952158466406883470241093824527680999787955667333994112515292691633989627234115185792332128325908329425113659679336047091847492473288671295899733109145111315361601956483396036725310592125293268840292130546015793005257070417890163277177501479402173180267874936877643420282405867966169190273086749761562124998139750654477635005083297260998689958432954063137183305783983580720449223490357484310916929655850656259348937314042147622016153119954359325534196353585667818290064670460600352140470451650605004878537903114361787118640801420153659499578436379642743349520492991926111089398714346825333024277589772376977420948752667906507444022791486357713860032392392497770233624626680560531960211193050901220685862402361637080149660589696120786345896804511685410884024161558204381342080649848489630218818248933974505375034559035402068749967011208990110649993192211168544014868149440308457359506875979432004511111968931447598691557637977811637107981823865783728894813464047652534913106399657037584139953671843825666208670275272058190694385097374682009235367402712400728446245509695557199913229980587401649215898906138833284163985228187944730448770046862519383333539751382315764790710672585934239812589598380539826335847247994925379734628909071962596153547090651435017555886759309874295054443050296005034128292793108753327102795766511204869037229036299097226221275629073174237754512750948543263536057492400022661209092045958319036383624340484484472739323695563501706129426513941344713208427124824130228302719345151546617241248039384565325791046383966562157003800468666504924812699230300302035682247570505336700224992016230220097361227570521945794580776946573026318467815497440545854412750521227906152332605024840191942871113430296826080543847253545825910782723301653441958463104655381571017338078213870391683348994560474178055350852774248886335427702362867687915913129229690519305280298526602184308131309513740830424587431654957791179353056649752571874315003664416264315209310015182266394270553274619576337913978586935560645234977299226125351319107624053255732406610201525058502427661397251278256289783439392543202994761054911955551546267658239830857391697839020117437573411888838012751974616974110534840210889302451502970946247669825157466497520822359760375707404631755252315775172683308191957174715955672544710720955550927252922111892385228467721905460762034728420314132980423596215372639090371884842173749978206856039902884575701366833956932694940594530152202189764847053190178483906037512905586401671980986831045521849353453796572283109478349284671310211897751693492965307604930044974320702838070485723697856214169294838219457001084946320890736021978136641525194340010489203200941181538623631130201892351341532670417660502772627052204905350850206818709760135791355329894306200270617943023820761128721599116320774692642758345451466985904817704945178049394900539583024075382158150693849182351729562041746774889578420685394817455451749935202280934885186962522542650626429924369230151329653066443596258503129326075073847818667001606211348274971598511597503701674927774881120717745013648999926280657940752008926870441682357849507892069415648997709753096612956842789531391304098097323179706986946091555151082040236586478234543462456886876589257878171664306579503440983098585742337456199770802956492730944720653319186618880747131762549296457416606459362730183201801351444959304794421380584535327095842283934639834848861841613879318975419772949954175055400976858007039188244266753320039399889711583271138064217993796959605584975482266512861390435340012438339392218167244621599405089202696779448219343577225792740383299083669868856750219086860472281324231397148747345231625378992201247976084019593878813005997996191625199418101795096578964966144853546522078986706287306259664742343121979965889475732665841259184248615089357725758360484247909447557601784992762633222561681837793296434263343706840407931980171219982924053801427184714322400467755882338848603605599134784429970584864392183832083773509672027745197687789598572459634503066451914218059426446970168826808556680249382212211835630178980646439458990294640349393237817733572969584387559474594644252039138405756082910351263531177229496676748527575759447708766497156985020749117054504380454967748941885923605930323877243485163686481981556628427204918496533302395365826218069103082495424886717505617375292711763593667875104784676197978001000960672186049058217836322295000562503863001160290901679342981349687810519955238592728085995812196228518930611776380464652192767460719927465211534824000434770249685283677580749426175411828800139932813175973048250245246314409728052645443603778269833466911201361996331922352768010068376727816454289263263917522027698786188516300622748907461604275656636332427364600629544761739029747316905094435171064995231449916593049347580815921537891204494180207538151115857751051347408007104340429128349950017148585980808578442451367506480041592397524742117790776060715478379096550891621569026813741892325663549986142486807853432214813527869429861238209188616781723764595242029753372167425636381844857714470099352265770397895443947543831249705468097165394553603302935700592938758855223280332199548084163479759420274937865782657281658921143923731266238001237730508174566938965728755659840281192377509900359644519601343409997778438760037578171589158150994301411470795761461039531203698967209243734093806890421891806531892543694202857245307466133562161665080928267716293944325486464274464540193052123899248741088158347003579228250553226183778526966981838031571100871844209144424646866526996629279739267368218970136910828135764675631451764282526491407809601975759386016094422922535767741979959072211064058629597969056846087133711754218391802444013166513199291317478126651087750603485354551687194813994624525654159282396923806249348942591436159700092152042161455677849113593142452798549393011255513649892323050499285815066694522019954555205133288499851934426245768641453333010596767539772046435540086742570291282451151204420527195043082053729456930136654276113848701992494231511603982633349416154918928790007418811246397986152320641058142515138266653075202433033869913814150252426423730242077426560403584559262309634489351216500820789940481126823116339364428840842856928561872912168760522708228071421715443867719776584758621546007932184345302005095855836101413463464466562654777485626405059934906015427173279854897869868194719721615043551058450955018710355605208427726110372162978200161726921034837733849044757907985576148605498101082173294521747483514808957775417560539485368706300922710571488174807090809425767343790288608675976312409921662436293604164493516155770615619468983613038504753228090162755256781399059972862409989943366463644843686431575738057118259319166511981840721187498713413643770419383086005487204046413653113732164976308937153784138317378590930425778709966945764918012777580337269630231209242570010514543704867950817846000255015032294110453372677598299730177955159108687262235817962469016498567132086309608758382167027062135557733638358684652187449584761809413220768536345276943005305443294804884632721752481891116439692513973671460715742993912771118007083034730389135383141177758545581284284363200872926105430739018596845868761056670008687899095603268006812272772441553663025438504359693096598768499681839060434268194825924138553921794768461058496245509992596371539147906340392449237097115568661292039155102832787138149164065026967876026036180797193310251749090069276166666229332011753216173356499556594355164269379470847756665610715789530851046461690950117029603554830138918007243270426267388554403084720032499059039827350539440098444952707855881777864497144999288846478956693170198883734712331827883977687636677012476370596728327099046159592614808860805981939959381558401200976663928579572530967214973095962097453457900669818417549668897610190050701687281573136383514779870440724576407585579182741769017765738341870839787072740081290840451422185090960817318598678351193473109521748820813300184665505749522601323693548877943671041296873778209013765691029737126073098295376993699726350711058464774260805249531851222777618560566360115862796236975550925022410823508910578377208142000843331560006302272637540155809090246865713941223190511638916339487285451906754443013013405711676318120583468811478054886351591142412711115538256605219375329950541618541995756171152589257419970591896457064781816456512568353806107542284648739014261093015575262445614961303519970651052744513269465893220983836793554023035119596899394063329552800570696023174035848267253412220060399385831733825273631894243783194408046716718916782375772605628813310554243593883489027987466323217286034273296572645515997288878521039044968548456833908078474479428515025405224464114290110947598193214078626165348029872208340960519233977060154437519272823046422074630246949633079839597103959950414564182595444595188755389823923180022615082851186544945712451756189214420885146509787486273397869340257345276046957704306418211156276553838485372975980720773737129168754987110547130813938170056251767468166683559253737913031192910907245770966348320022797898354955086536177558926771960395746230653848526267228477392645539980450800798075870008382144892403484089330970612665301216818920981093988389154123715972255381146103735057437775167923834161731586447581607879358681640144085501058872510125009156746377746688453074974866031752875202057085567206477884003609478424718227500599286027164785967716418402573202700070888244898559251085134504117659511759623872477080693349648742779839498775700226052447571962001366732540597043100061688807451941604945198125237399036504714774844577739301329892793500983535091961801012861315817454568392964936951704207847402669562888947708010759238571089956542074146917726300557329703264180068183341574084188536060319056142566013186034910253498764389230902390736584771455993222725539967572550509934530788634919964547684465433462700021237054360161497887948891142692998363174822402223851050596205364552007420210173763120617372219965099973654365276630586119720596586162806528474131327143719090968295609680279648865938583740381582389539554851252014989518558760566281516248794201545544301968691430147235739361302418287086749566777238324070815507816473354960997406667414640852703502336384622802564657937066372935540160490022385040419922430597532563939897707297257290851878890013451362334622521725202494427449160370603589502760354453601138197660509371721990615150346445363270545343988624669940344755273141564213515785376181628457086319705789129558099554364400558640683559054794210131305803647999142379985590968405560608932582370298777798847526598181026765193240852542639361686940892413187623387428993314826873910696843205129985437557398400469533295708696789425892539842689249597566855362066616377369665003067555002157895841979008078481310291739580716857916938883938856310668785940240579301958320012280928907528870740270355028787727073364250536731572542324231268787264849903850421662770631741925217071574656690482001868426738657856465523977181065282531865258737877449670295391044441329778426280942195023716329909679509722253591680627251317290912802943394395176185562542092600419710816164277434126342771529086816022489760470805683810288498550683080041139657062512647377319765490301290560689086351480545126388645805289179053217059047383792200759315778819262270293885834629075193247344577000970053618244405253895397349894263723908692775072140913013799145193146062719273776365490106030513061873001683040389364078395254183975413659411541074932717375740428994066837416389954799509777538094113135433335201096316867191812605042807423282414162763864568818191794775815960743729304251805087293020183188080617219903906986720465906163692569619114383072478771991734203441012654607387805282262219467970797159924898480465053542232124078025096295243633173089259044780876130514322477621347621163058256945491172099555408908015464744061205258487748023671010795403273676518967097641560136781226943814844472831848717524250697471486098661465116410844923724134500166586025086694194009529557123286606011730371727303546988242750759652763981170364162978762554623025261051035859475271677017816634427240203721110019744626567229395894216837956397671083501759933953837498075497047382595389019673880052998130989704928261851067361148491802861942566103967095592759776561952209242083786753600455024033916918579246934999677344512770972791437558796778457412596859651949690713101110888204561648423297204005693973251027407100115769133455760140000588562456630850548018250485494416564746548221954105662878247408028566604396822696942927082273656275241514154150444878885056497677132774999089582849091374295295825909697580211170112929202118972706064841301914129282150699054710465272399531509498839032261322054278972522623350974118692261396442122767016160921388525649977681003145900923499539537402345024996711552876748804130685442772363729282640479245037574681703783540564361735349298190117163151888745575690148170269084553068194006182554200789335698701017325014567826515193449412030704620867710415692356044246204377362083007414569807428579893499727724606782568336655988383021081328917028109618015395605723321716525409517871693575734513152498538864053737162459852855248990330899084558514689389877968057201769130806868068874238031043518247901364408855010641272189945998548755279875991500058835848827602498592749376977390139745632857280146477856403692687095317194898720624471925506128875887057200094494014514765722095238158169724020681524121763015691635944852189372189773292895557475876508629102140581379355866449024434055575816725117744887655603640746730172427642584871860611528712554871826810283920754136018484651037369555931825613766087618637331807469734113147162635837876554187337234952611343994612273311476485189874220713572560275519180540869856794150373495900676417155726044903227653905294167416229571223731606892104183714955097032305829317411730163795550567198444008873110138141629756707643036147232105987218166595060151203239503093141084167213344838622412635517785304202595342652035197116812864309010635148214577323470593117806867335267674145138956610355623436576664836278920075774390886695549683092368497729012540520329839578634876676885486288775871396927016478344802238435172926717880874956611562792524190340504662152789852241345894246871681156209081800745331458003036365625820447262615172046698315756287821031164332735425669881787052072116716589598764186453624552104551484506214399746547040603393028228614705681929357477200845494217236348223561421619494416883243393469611161992961556711253815169774974548075599861241385194744618396896594829431976887703051716154558853290443575718175672240525305461205365602598805853893798888961064479428327300552304063940334599062937896291029873643825341395509443339756646515592838688658415996783658292302148617097412613411389390013730378960200313454234118162615622548313350399661784249984096094889791197394386577143815705776683817252190451681521453588945116928456701122231453382319757479135101584344194501533470057549827251899876058763185660742603021134724948028338792380862199861097761653924982657324908816185959339929932622701681274456726386205480559108972409754249583057380664768900440197903461961160854615685075931623593692777028544770874209313150256406471735885832874700974380501290825904958898060809639007197670213280004312831343922331320086824445716708194858847516809755354703597742828217581233480875270179732160602111467681559721036851841858769024142598020002376783763705739113554883431842395515158763875284574069595822815876561338479694276568348660574866431103308042030667653385166517672577333292407073361107833427712161882225347015294839461440064759205524831890962861757318357938154353943316155252921737780111742822545516836937606672026810507255304813823802500129868833415690683158197328538938044117520931985439892440045523222291514989898338598635351548906365522807136878139044160499445025976391487913023330802077775215384003319853744107417393625656906171796270983441386410861560408772721848548074212272711414389016149781905190608155474616146445408656744852490340465359971626845034364227849137599535868224601204705592500469472632007230507036550387983986488712898989430507592746916617620000457794807641055168870552223449051298537002991262607247611106411092599801662898068244455234365444844813961419845897260534587676749086379491099825965223084940198804322211843906347342351621547268437479443653748066493747498774650230696016904524495386449878110707788668802243997206814421653574712040995798237704669407644249148381834167585077698628934992665230366496459896189656803014283807692267719959180394555844290723519963544754702861935260738199576952799230239862736321117707934738093655173280762081320349517599985322104096174466624534551691736389187261451997502701867701038209592867942034479588756831836518381964566683130332281030372293465446580095502657928429959343348665876767044054151579079747560868804663702026701074912342876357330028015585055692529380262463978326527364414183596963581196890197650985944209446947014787287413556879324633700580256562536675810492300677067966232131864285760407073064278247936222624675232162296222893129677232298018033825508703928901515233051403876816040615425188494101877897779841964495068090013474238170631997634118256223517468023262572964999750335704092553286721268936174023508729241074212837686036642139731189165039013636529017627893615649101093014017750946396323192604926658542024497863861992616874027695657793192138410687101309830976404991731163365348648353845300488769314677668012193831112524225530830567414389074535166509662614718111616566670234611732778308877788958009528619520045849799717264148347160936206114791914335169603006000765433935686597900964115036305131440095974158602333369627762134249078231961695291227814388557639047885403657863530755062832697682211028539958289603490385365824981619153343866201324656396852822367421868724721406457524613094128006471370252856760712914744157457654562592959568061926973976126072496088042882998938477579244957935978730979317520370618785582189281251448043454648767371286767108493447050031148808521933250383595653950519767485873695597670858517328760129353277690964377591383132168508985405309301302674133351437506283350814662040820777400669266508801714187106623383282008134773577087022927370201488834285983651292746812328043063089683607274853122129758462336541645259975934639403107006380438428071207377649892047679871464047968291544726631898471031856770952406635152590178320146883328296977687839494288183197940954160712110925532797234849346956111851582165656828810962013487927759062389902004495066878590111378474687001578706543484902503143116718263620921212559121775647826757689015924634159316692714236882284426752742672299390117067749116961493340133308211063636654237138881072687751275233626549287123727640356458180589069893337959455116812365944307870063098838280212526216647397996340251577607190462287255128743251062500940450790534783516880344766384985830362523115626067536246845897930330738195245693845487359421947854697423136437091593803719475589652331145239154415740680394679476776628076532121894410999354346982781481632492637419540472605964678392923614399518150482956618733983961789228758291505621985949429895277093791740147529991415569434802240518978502701930012506676001145050228749972692791797757611682200479658062586135649198666601672341659045508471671483442997183901069022045371447859015922015250532390367842619565426451793802819358005103151005277146315370079182815616842996975721342869736917488503296341144217877078445586719710018351921234923854270951150363032048788798879674870946712302352251532595220392662010805300820614253384381657095071878139711887531900231087341393190485063110669526405235378862939422550229848493957781170797768323700423404818262699504901250184477134177341582597246898764789248589837696535911342366450553723195962000807558894548810437494725521562166332741840779932130667215386731121384920256977939923824819103813713544603863787409663238154714831980170700616149897751896890751218281572980878726745944717914053990879173762111990359109153275475124848688390964268641820130150781149476188266925282893080060313987269654266613808270646613570460957319590986020980187788667427775648232279038482002900532289115855149416937751702060488002130376401771271921070476125888065766529515236459315645928580964160520391465955939120534131744166946633219121339495244701576905146331570779432749158800193194429857777189543531033974151634908108017878382128812001873133577800762133240254863632839157591382718057535135146041967126590268205378751009536634892484679910793465567767399057864401058404084504594954995718375092518758325884252372682673459813910118225722512996906922055521400491426418242071245835999732813358455371298623560943105294840051596324784603206790835235786024497518126742588158073376798824013549197706744372075830031097907312685990395252968113179862336551408195573318298870816001557736760431177333893073928163917504583314573814482839201953608813985435634534188456560752078883026321635568850002807093098466850554997553828988811334457604192682523553931409751593108016013112521330150161679502675911722173055812658336349777295309706063641610574068749916334326697131937748335865930548684998064142318134374329294611541009042399545090232450826821078321443118825666121960108351114687949259152715728745888864804593967339088517189894290876251498433907427835845343002002002468947827594199114247101553828677888750520587642696679509203394184940374920632358218324678406850090928047894881512393999811364828173352290456084638218567550363621036553756402488458330373473033623750694855772808445345366080002675177845007292256089529327196803598402948759417066772821271392183967913456396010723346976938878420375918845053588480474816907611805954253895642884376828223574154807382187526510651807193852885750463779056526679641388658516489605069770590706870283425824030044760178841540159850357259630688331745548983620780686805739619339244615062293782024235285691712968033352706936882415449705481017111885368169833052632011339840566016119793877066038168657913105556088931972279481967816084371720642882336798071537860645796576572212665865908255369143459308565082834178074789358340004970756804275094782043334891061212045672310542970328129171669221930084278940004708714756471952492268388789163065619007258037942731940013491811823991205997485502081407327136636703036937251891594714971073336249131654543645802419870222717904622754835000309707806180816650278685746380031087135633818464740612037470093501729169046667739706248671629082063980027900032233225875128230401471447061082740823424845183247039196602268305295262038685487684012346610416642586015232942373957799832919506954709692168381942311086861039054301823429946861968491725100428082328213983301712168777904682527270044942034876137974946259247477606853307465000003529599187022636390194600595257390445079631327379719231152413286890410549092593543576864744807689450878807965567118541676714080284531469650186522266205922558466284132925587181037261169512846930402179287224789455657490355443403559087005936071356483937466350763016055100346483628155603540048478475901201757500101299122791807763887759626755574029843349656636452728658379571920731600999495796088171039294575155126916663050638388723336778167467416064718693238514000295327801565876475050113870709672067096436445362874530527269392978093216923949735134084958425704676892700593429420364979357107752416364141969107136864290400218465697295513076441590094755117473188569072334782685162016057174851743568457162278370707201632774055857122350913046968915412295747957177798853142039795026086510658557705674893328477884107193135130425866730197910347699850648755934677756436724518417192516795479447673131712888694257133101187971847050042473137083405314041591003646962394160959251813284769069323063336093706315258710554847826821544662446427161864424682376915009007837118606718024786124887888956065177273606101159117646941828036162019864677966221358942175092431752906440037657414404884025161141796568314929722463203907806710265680722575311108326569019668877563337823218498621373510528010473683473102401489942367629254747273100450860211067932681820396560203516759264811968786038025581263812754053196654362271275633338407167934082933358382570600699125676329688558737111627173157573132089610652008323467882397259810168856494734471990795735268938711896448719181534715747277757898699530876467210744397052983848183860844949933416291215533300306429457384586359964351437140754595852629960753188502850090054763205826512615040202531978476331511908307808788566175226734319297109064230968572045701868354194159729577146682240012225051941442854568104129837139718253223155831097803959425312409445486867466700754707825511278492114387394242642223714904515650203096820752997001470037699315659996095516433925597627905722711042146681995363632701325875249496206720028696522428577533824864326354197596563086943834025041276721272264374764314255775269666929844681656205864813362794406325317481547624589987198591432951096689515364885164996195568772036112177461127790674067191590342104130982851458173598942043646042075384205563698290463671154595687154114285426173595054142933226454777335411712081952312397792427311279486228082781487936427785608831788707764529808506894885359349160160636081372581946962477094732257650245210220995765307145479611424959930030396561338267649936506208514039224453425468439887794882419789438014332079857582738678201819222117548695764714609302169168757222980103500178642987608729753275092548720561535380517843962663863845686690978510394680590564315482680957408896052790876434655489835904789001856311713733635856543386981453183539805450115435700792156494892542449220282270031150183649936195770197209373964872336960485531418873081085353739832027865668368757758368990314878190174077544027935501000875073921138326698604903727657499487470918142651481040306827052454607471031038783018095205113231590279950645678499711714404592588745757708508741708591765535684106778529742786175285548072796831756921147543080406349547065705420884116530049882261478471949230854010221548326073052095039197457187784203239949666729487657017019496058185121274545344956526618407766899320139532937000167746077334540570309371671328257461488299003217958118147204348996099360958391388823514946815838520280988745361433364716677948343160600953905919014013961807626864335816453317895538915277603870957320405879954669891529422475524777508304315079841299606089299177993294395091289254616098849368389077614702666057723505137852707734537184590125112673365258673132388728209462648145420552242732871585856771666675367482671390018640397077757044991452895582822369339077767329500070699281813032175241307801775290808299729561308276682701208750940797596067010401816501299284172510809722607542333101621131343810442577378294402303554710567950793169443790437810051664789021871145180241484585297448578691098909800863180199906822103742516979825170446484746110792585746558388013843898208828544198727121633347356032321296390748206146802352034514847065563985032055386586802040730582377673584650968268522157768735725658402715771832192480956604198120458387773977579792028723439715115608035744430296166542233197443703573663697446411547457307338527846566536899754656054722167686212620685021320670332786518703534294119366318375447493187183352693403642702227029374827677429739484225318190264734505145887218837856539823345288182016130811508550048912002773596013464412400284630158021542025927633165759836735533910608610199287322749181801195383586176920354558026472358479740270872042916090310141850918686589445815659031970269971995308565243766902171754490615316032415692109816947720447431709552630841788578650756504411668568204533869041668378589769641983426315946759906095087725634991529973343667937605933395206226854326695845356409827251090135325799627180283390743000461735856478933864482390926062635071501265878962956389193680359414833343008294921237050185423126917278054795045180137423517399077062229062320219344769934712232439577539756398051503159476407098580255415061148151062376174105180006396029505990234082155399857424531927344908073801867254617717089296149055656518840963273990086554662644469183303057276413551796493611200462550704861992685280393082337412309433671095302333716992108058754458398483186730502055359554290094986679321540327330106924797769209379200562946013228142219716954409177593243923337238017368416389351280806584061505028421933334371507847183871026093059414146588069657427402022473859785438292717256974485253040607341218132262169599521511813767599807828474902335263375364081930881673770644390341501038103374303477084894773336624464386095328254843397551477532980984461933172351318282834436862371072692590949951974880179316673614702474075920720405937602616554387590282758382770140303857325452185818443615912961828558699359030259488732298874362746659806098538715624487153195436190942140415251221866969380308645328936964952307947682058144650286717570872218131560127441359361461240275273681488194953713282045277868529227572878172619869454341797378484277137077577193161492096250558245396535743790458223052888504085402850792572327983667580240303160288236767856523280200112929191603481994570391794157212348598496750118651352751117326423891185968262784233717105008138457387515977312492340617934930852444059682275450094848478497705396342708384463611055793193731812450643906952708660448954766136501290173949708057627699092611215496856401622820691976713508979994360540227677478190067089091272668430152131918529618717353485629804232161946314460728247154091912445274778023085751040664967351241326572516579378979968832654647564819067265239583867454547084602846990250802600109702630096233544425317598912163901678405069373426031709197373909191576799134406009831680362829287907471335752242449324382828448873525168836067287239220084411497096300352963915907077965844612754402549510362830184556087244888293047421373081148669661205589339090059054220032705078448856105894843888096189008761351608387778531205515508993509965039817342982501870308214293918120694933368774685482560843543533816586913572780133970091374088514552510475538412449551111266167478959868815460977272655433647154869687340293715319985626369218137905973990494732017215509802906033754893789577929995641763912245404420179506200490038568421291399952670180573226162993798726506278887251559832165035077305648081634336884867606606809058669823102438747785438907003161950768599623373199903956742591044279846843355453214115679573424621834465688676439918363125281260668237422907583004879570835615657766638021690384795697619587741878805418754797631900784166136370389294590991672375370156040474353440485803452597365416208346206847424293969722849449688498301079166662015313582241783087951390001285560246985383496814810291576812286203053393287487417067749624190651504990157417439410917543874302340703917609194550892378436518010685708627339246806169756694446792170410504901710507859512118704772988300227024358511967058218242042073891225394318005213190860293177149406481750604519657581681830491616092244009395890448018039736775093777361055258605748423462120952466129289568352051622057908771432762182645658658704700804052317882512845378823139392718989008261623558001302269661757945747627392601057379576998801821726944846582627850251840990536355079122573493329526409061125017843307502542101655592633358031930532041152002000038842988323575207922902975049817547512999733411052079555285385838777858563251220953839663651855353580455631084428697124712432663729140070694035849498969765624167759021607037706301568606768070841070825649993108761277042131565802036778424413726715461060188554457398939251563386294569171979737334779643394148523366754715607896303980890819177336405216019439480697713677980834763310563205386384487615758984556156338535824054055978681263666418358714209751850427033487877429357697663088816763630880410876123090282129416469548102844772005624861204520102103747624564428985224312962862544951992435338122725923197532012206084890986183544107879739856362482890194394848584285713694407486206174019640366706743766442531978815547975696504632688289742692895583095301183232585715844319965740116048594156691087516359786140409332910088649164525157324398758686598083955581219431155999235314223075142573613035195631480418370625665482579425093007803313498331235408204424935441973274830174041561468672726950061963243383196586704869069591585907360216427838143052298285344112849588517539005784303839701456951754227336221115294274517878161856473699482285875627263419427240732186009601711618770037876961110976348545207626001238679407944345267574155854173555545524239239658875471482587881678416429268978852952154306167893185885957110028918154977502946024816400136528086549585801696363979932803803742478351054269952060109581200154181072923317104083584925299821931276110424155268814871423472272757969018127211980085122426039738622651630827367440807856220397150054701319251819964195313404359471602041039715357337563924163189912698155577879674958247285711516252431721123628806853107723181959767510754510612651799192928650419763596807946085313278954733404065822968265810242969284243437450933211949856464316273887555455126355018767883383053637202942196594293762681335299868519761726168130402445563472463870157221933420718737377048580275061076090254412672205969618200020807223337391536499417017125930930272793202150028878195066513917688013979159390436769815619327524090194365727094769595654457311077975512887308021744840720782910241886634307984519460056301711494174387298359932095685676339452672540563575682076861127960762653885308430683422483514078709222013922201205793625129055905046835768419515629351445697445551662414237305592244956758137398916228791162281657769796165898020499617509272134328680714438733261879277088925481421212899970864200754896639141844456342783491803641582968757414590908821263948074094473412102418205206367345763158844368171699438642633897352226706606168089247250841660414218790011611928522478758557742057885343537205111172134709560332996029388999850233794162060254200283159566196110045911745090441628403640923463525966358451295458959570032863173865184516065583788150347057673527437186221071457235720001589808619800869121956621013426563520019821640930935818641664950603071932646745283870383046254097597080063985506393854542308542858963402323457505770890571176455509950583543750670843824454862974985068255438327083387577490165698467353739492777327672465788026287371093078688750530018640771405055143783812937601820607594006706205354781412360186769298164274340346774850387905348322934458373632063236475038366164167670549339298705143502841225245867553007675461476547767169252648870727523951818911185755188522412612113901409000135822252335541660537742813103027009211916751839127840021612301215450527880679172152386739638205114496096606110607827167395860242545986612954749311534846742097614759087432638650310566423421172814517464884680833027933357950115756395073301983434177374154955773668342282058207012630043868811678617070232598525327660124789262985533759521915601425288356136759157632269707939319424737243236722780221485721193389121122846850596694301918640868673054557392124433021470544422707144456056259258024840885112254947006142922651639651220537438999366119027113185316108238325431758635815949351313538198179656240552672744239445479930313630186713644442535509068706373767459719861411987354143669932017901898075342497032646510962300499813334967320098829201440409805628947565746059755276622846498494766131573676913632664272455886943434771527005672172453484253381848087230453342684188552638746448501443395843222262642606466544333976162671240648760024821625316700333694497542092709903420727297071833253107032091688126247056278619171898270924787778671950219481271001018218938725777195431644586110708540233081077580400973193303827078352076153941391945984708006348383606765110968059021983323213786329099678221418532955145897257199192494283993444031901017663093986626797755780760297102354575584583474254275294215758889513629790001996612842988532825074253789049691377105060808767740167254075661861202312092622294974856085785925321094168085828171848882977299736533047707908700215114990270828998553270011366198229115962008852058508999471533301671754744018387463425384030781256915241090599691949133876882063121092238959268020686947551100489487372964199311904146914982953079055695482538530339667952331424722561055256948793166169541555150998905288609722005581220355220365501196268348404725289949182330219440152345743795898018594165011915703108420244286588405820559770986590732856782169988024836227315370897497904711117777972122925753138323853329611842258704100105375935871505193956182573956238953684332886324230320120040767344260419910996093668629413145357391491010165556451543368019241907860091354699159481278776241164401671268297827646275527025082037788349894115499659050898094569831445236682352556941888108862781682084526398858325448626555042548922367540017823039274765163196572435092927562648303298888551769437183170189576096920744545878716641291462351320532265087709035726553134956507536740824783016391187408287104104544931630657784937066310503184408260558167434859325289254471433607867068727889289967179193621159019296626907970399368442827418477171892329630189255729464465162541275421022505223324015823310488969253994234919604159035921344817228472330810925928781310826160623884826511026179133936339230428229809750510691465743129078706888615558012742106245917713857187173046224027713810992679024381427212533724870981534175943706498825118121198516839497058593935902493893325842835138894873194326607212253072622861996655497392386459085088712225848846292827685959185004588735190882752587146788217912972825545928993223398192337811167857706113932073844750110446498435062128323030427476850175665466564281334219336909308004031070314067992463514393823939587978645386241211862355947715153465603119307989131431802268432859312599877534976347717233680487186406949006785939696553703248345614415517313380915295937262244584061014426484330802648120352664771834340506515761438538428595096415654756097895507540806626915561297905771704879895544317141570656596174100756973243132465349398110154728945883549638572788319514994346589546524128916980232583060224998614970791729237552994516448842922376424143756266217776572936585933418155093390399796886634037678738430565919486999615054134380248517615147075837813350675009291697765881330452162245824074344601330093590867563737498479629846492962823955302062523880155770900205782839842453739205815477019623310944994320787349834287397247090538387672529334290575901382977095046551211041051891910425754869181293181434860677701932467161915092112373840179283165533121462491181425534148696867993930762105377360545808680007853178154464540410550125602946135809839668900153902948091380710425599702160587370927049139911869788059221820884709284016237216148589599337053572981075968636827260065663129102616416907325349244207210246970295014750905139655986127850234076243502200299150473674678429011655027194618134690038701513752056576024982381606318025927154417533127122872541346270836393958253637879338068010588608643391377397817807832431319530108559580328114917190609380380641687594685018847926458377222861199741872524752636399965814349505581662750628268267246931125687902118301590929389086265603765700640757693111396282872765731600336973358898824551770845044029609662911688000511116216918639743741209823267346370947490492950220677173472394071393428991639390728198252876878315915653177533793545664790204336868230479822130450490216260162395354466298258141042456256923325319905126399057381937145651099355476105148372016793851182088597973518142918384143339329420465897515686590593946883442265781213134682102983266187167135247068607636829360897638421341515030129805377694505096704438659263000587452161844369558966880561854537135948949714074961344157414954158927748469357933304847972526043257854710676504148834153435386749400506229307295974741714645261958064950671158397228003360834272437794838764802597042527702701188015657405160716676729328379192359559696988451253830499255557235275244527445533142271034812063451296451480055213793276310687223155295855516068693811903166272877007397121066805085256234346778437821692026891626181889529195425547085899439356222089150304698563631041569088828548584395795632658150631717557753797471621242633860597704752541605409889481871513185213317937507995000604867836557068036477486461817450642893119504546509842330785954839208328739181964236612422657073003640497733221142983352236664722226251874729812842096057957882064955697395328188454615687550859956421519794843063585015476822879740660046522009558080304387334647541624854937473164613167303337636441344606428394088438004339793959598161214024086798569594599423929756206570856036102039125011233911109529851582758037678921572022795743388059164507569075295409690837733741211073059118454308593451760032975830937644342015699839894272684895358967406878172818665372523755675849495479673566853966521582062274755177808611018346588048515402817160129867207491931130901068073444431894155189856233722283527992415367796099151246560077094310399686418610068934820445463051140000610947671192886245416971815131506932406820322460492311562133084062391149333496828497473189500665020953966952130247954262115625338710837785184235629169044754765175371730186716047693292139638230769997701858875605130214301118130543763423889244985410978650279758514177230723640337666078489924062497730151610494590781167318238630361118271602364212970066771302564998183594438119787071073544012928084374211884793498158549078237470772344263002795773505165955863357102290158383402299555934242751528218217553560482368203311348011253654613465720049264619800801695997354041535656995285375767781666860269018669471171075794516892988192462697704917787017332055195836376227933602457934691397252648717612934558871588304075954231315711476996515355785118369163976629659123378207714646370554470472199351235729675171323694371770171194968365568946414847983657180777308019875393404605643487860666848414503731534774523322746470939684254603056065242177430126356643624744941396627308782133271445532349736054245303462815046620285890760687307339569709133940372369526263319935604658195936614121255936016714603837383870756023819047542454529708775166295832961982420869684349329759975135500336653145527064590113450947362844492797802064213937106721296797241357737638695747449489546987452459307664852066334059917660040116149003168981051706584581089467681061644262799711673171615917045448843992458199841514919418761059186793877081669146425196275816791112219029854722394696381987682768169499052859348666146099047353741733216607704571055256558896012092117308988906195737863407750362402743964680050231524075807223232479724912686054505126993007463027216963964080639937780377713276369748464910262802581684666177161912262121486505248220776633191852005883923815961161617193016221335147941454505082486857107889689003510889586505427526880338356179798564876924066049421473516838277377138868833446679280431429663426312426986286969103585304215176741049804906903225443251474112239173074010036274353886334641051393328921482781875975271223473540369482262886679329118714761270581811036821177410675800165594623842298444341735569556058330533489390196293159178244303761727488110257385081570879245963750906702669558991514898924920860132690517829360586473736654397288682759502818547538066596567332515786623012758218538982037836495696786943893506784311174409305090800656522090702736835584179184789473319788227443822638416768265609365946120373423410001243259491069636061473831845191166718441272931267260096174341849837484618456827994186845381453692528961993790508016874201480207168678661722564630217286059100165568534335731878153327318662502022344995658932876339485031146470998601934224541809130521126489181946824152982345562630768071939574819543409064566872867701527975020512036749131426624985060215090976838871048995774317427415434063844911710241190460918840914872212400083480779386819391178123424155713416160726553970173018006389520893885852428886460387947453776674970478613826829455415527678630517237005894679785549319356968974025080676454054708456734878471603700968997953440911907168228383287859803578478731364516700072186928025266922882628154599656078220634988681212858574352432571197076694762542668998503641570079054886001040492460993363075379797725509561375701123240383979847961402908253977334208544999311612334448251412165213612034117735927196087829955084683317247924644314426822562081294298143521928674092910674755961137519705657167228425034636981275588422352151470968225564070647546560407734751816485272752210336962122788926826208123127555759949361746292523909048273819121535214472850797664020766810802645898192078570688969891397165319641032249369913505452159142669011972764291245010848972870496420444593801569093681675729850090663031428038798557602106273864046704121663651065604344963379717168051353133290344442243245593571433039506937311029124346017913196213024392964433088109567610440945999378608997055389782392447408947269025956904555714433300485258654466024258388269262104446779591374783826994358896484131185241668553444268440975861118825622256077309434426530250096314551869284589066862488201021998811394759938114036309583690727320759952163540470302440054331556320272053470246245970483276176747207833987981611986880883436190297197250272785652253442869832303600301066731532500654333369044345738147376882323583221617849552108538702679475852060602139379169274281563039873475836951119880369754427553234193254915265294400210580523842287027317296522776254232285474380322093712705031016101536467242511492803729179261828453520645690634051299578543382301797279594535303460321162913128608698950419036059373416500494197206908523310613074345404131911154678038132409671776197081440611725353701621546278622047165308298531574556512378997556302387453499528245525017461423642852975641725842077288009096685137065363896500801397426571977906052752630807027800680422151927651706757262258896570041242683550064827503264782782236515484287523979134760655588841911485771227473443809752960372071496206619928358375363896550852971142187732869492770708071535708788968967743853460495224194965952128237844273047114532077038776714714590155961661712866238282315852385555703053260130405034555151545102800804061575872130620256506660145227138052038798137983366677452989467430613007537885590222349379466237159785090750049946387852509733454462265443558106196506620049387871885811591738783738971547165203970956705259311222180334287237316051751363915930455089874888871118545558628555895226176200783651484570452544412415392316567855517143627412668739310974467838551322964840690501674175794572627852224615468059790060741093441675778665095466956769343282822897100196695070401523328134076999669253651847865825604256267478780843443231304313607286633565299669374845911574076723534554520461640332365742853581454346610860493971630747955128027849801652965574023864899316959435377375220545534344790765863537643991949376637706476010462460134502755457676761485497083342677126439238127292001130817156928251956228387574665819743205587559311687654850133540787913388540136572152449028100861214935487430010210330947583496283013939433460492401504250094042924962511756305392837400987994753021459235471794054895332557055455572825193479478522550195882179904903390499221737911421886050973495911319414270910864167396581477121876624088043727090497036904955271941766967524426409713570390972569002192020967715820938592002380487756485040778200565587354622569511221844025873991422265668115509927245060868404700116253475507707477659177557256615250559596946428454208589082093260108495774935563001487020150537160149318770007624533424576783462878199268302764791212332241109616109065692582656434747171821228676525538369184901498154037181019206557265522258452178870285515184320857675982602342387137585124624283445371655330646794507912790943920157809816480151290006044267071385756637992441623629073287373820310782383982548156685849821992633626713291450027897590071388116002462164295307931772046996753398069381939359209355843786505534344171315608277805663919402971697691280965220962389373760791115755110223508989680818037096675641856178835213398669675391993864777401945862379077738631000547169667367969670336160010067586552357986729384419053838271531757634659131511865530848604668358414363542647245717050201628425658224844747181666986571135780640887684027558396272589139870874833775537456549209921283374536188291640408114184969094899055374949033605171326490915824292802515197014793492057701876970969377674720070415211601645391977215151815051637622944095375824406491920483797322731735078173267911586596195618253768702837719574478714975493430740802202776563878258401613799634750088124564986057022756295273083556614155298793028899656448651412025340242345149949650826122374596920336574546169236293141901982006386048053925476019987965827710317151295941032890304130392835934812008862852461605010495537569793623348217722464237079252416974393643173444100651172139502777731751793606053260300033156013406073769570319234062640686148356683761772481104181648205339768810509520117862022241910660422539650541092527507006647967540809461913998777173505074277799016501235826793042558953068812397241866795619749602366120725730985309927123736549539527604339799980528383398170982545059998699430865949036215453755372518541715427926216496982522349079496381910709618324937500079649280122415019302494626876028914786617253756366816336438183398951246353831212844539194278574469452586248174677765860668877858560247155062020567956573447353739768627794349670803216471797915305452460949958825813131635059310129469724817770368231650313789779425729751893431188858089897373599828324238481578593317814374522283650339815674992291237483342236660744480704793498058688465599777719110389897125968372095629002860103778379091106539991064497675743685816421843334255180182574976223272688749527290429249222790706516491209716414950243406738256200761292193375981989721080154448366295535165161708318449023035893511628165261603520053632111980134671190033240699869671802032267549427235682456120628806250434250802616887787654108799762008391635205542212350981176821280336822607713933285612273966127799525095231842976032921727244048445519200435295932459957910318864279585178419620600344956390671438898381703804435442028520045147505289936484152819189022926135606973789948881596125525937148416497243243260230843825382117535362342641012074953653550961604470464384042418913143557078118340291505499368051398365070306079291842576657262491572968483023817639888200821119851801159087879428397994276377238002904627028382363549659705915292200876530951661698390461848633129556708947809315632723273325896248814915565656144519152763382210394529916832623724650710025586823522090557173296332001818976067102065002442286242349808260179694246167898809561019723307854054394686225969967989884181696279922025484849896192762230353270685394233639948034720786737553149086283387283277725162308731723098333173184105215466138051598103771102056165256377267520991143089093365620787116005145055100736092055732011376952642221890959273454220185882225806411093772679857132546483324765605523733425486146547793173832185746032808196065587803037706343394876011958016135676052719115753849859118781984462194619407672624271334131537110021539517923472839412779345978072432916442451376746521558945863511980244726925987565338561589301139313401049738277839285259174598352774245617318667526086558974983195989643479123788913004478030663400710223370693009287285362445600512501885941745772392862984786154434457074007154541181122728912101250376767802999832850996697493776379548997977995668609268259604247068759193815498589272578270444219534961280813152815673728461512018215827346545978898229720257129583012401400930475537406684130470225324479932440678058341094962110047785241115214921609742709514087425747375062511586450677194692955681638058597792272973758139609478931796275896037499211616576577370314589586103460230933674322029135595602598176044120463102322651042912907217003808434537670665274506363941304858382703054096143202873956833644690954033313748604642630210320549685203108160485902711379995737746860914768237328856645558102401325957041213927062685932907494508630527470015871671819094049243557147511280948500361879750582474933154432895652394385755547678634885309199135704340050935384960859819182201452249949130333785038906448119535006409282798002299030965673995404434187364724855721204604636462829677155337425226071947376621649356734205023240650390593427244698782168146457314531889233232410778177664240457398048574091334260890697911336129446916904827517946976412355409893453473080144647930059833097352033133699479754217993379039640300910324366216401374875028218308944043374143382266995728855607835854450915051998670880627478211274834338305647053489690964533700967254964856600220011800423233346324593347104045577066144123374657554865912956497945069226451546440618805869677445125274196501857364805389680399984164019503301506538685817094270652509214180496414662216879910866286637564673247444465862584248496463550890209298853862044857059060878903370177438244807824765646190909051620104984152432985928957654546405231645043407882265999556945533468835086087819114357502658636816195247890672659356541150387282790936678748897967072071122163195958299327309667851185119478044254427477407888669292677291719518384798457559293688092587168980412939322356162406861314568214922624817174104655200676187010643565961616342964504411322787787376409092383069886280733795491430065881281733327457995155143287594603095539760741288500205997238648520415390805858130617669720392365065554249978197260091016824675290211442679491875713517960873392535392602793649230220074330117194677304406738870104143812153434499529394209637378007754029773035612923515087276685216801803408894510915017664929476145080213070194971332041973619320835207784001784685880676393039502149386016379843934609961541286102336140044249115249113345662366466643471934418068495018029862936474020874003470323280152845169112264416843028309351935621359355984423508625771909744887312676305220515595239032191182780413455749869127569962292549038194114326916337727660935397059214856527479090191456961456662374520411282320421143536211619686807090612671138475659816933813205546894903430056148742060255748717540156462375966906953182139493685227252503556850806019760387276943090735044944462583566671999643942799762660236148978862717233614525203856048300325506797382663307126724052750807569628022602119325555146213435838649616978655219205024588720814102356308728340788208348255853243242190807796810573981738611763983376626984360028033921911518621899704922708383709062569967331881931752372852385556552688111295498188441769327853941357183306979901657184198458028179675187321069155740186742176498837303548831601166790175232300651594818915405785075279309742837572766673281260997052690633167720776572290789170509632246549270272351877460658965986914445876617575171722550497240820640690076161667482532377956574599711243478455226489863919709196433443940710945475308930249839955116188268090353825645662611673396303821263187354663455221380329394260109882199948909987032260936726825810071607151796822749413691444978733781279781073396699265575468413722185643654204722770310383994318154913927792223677422178865438526061580182256519333421374040374100269890169005985843842780700623308287943263532749082475104404111603059686274605021776612773331902028296385638999954056488632376829359058217976311262207628054384101747801254185114656402645381995822559584342149323336563609824087947734475987424194271473124729683252812004871006895741226697332691405061949640261185668100963202480513051106210809774143216651666468779413254994124797185704645744987807714642645818832823989300917893635188329882875538629464227809276044552372965633794945248942010185583639573788632276241061294266665897161258926568112518648801408992620888883445837009463295046942873629974045818549336759431002097272721062513578148439027574901543325513790455809010652805182229925826306757312046874750888438456726034019723114012859264364125691172257195668808441195662468059595920901829820860671774564496359417031812315386248295729383855055021403200240011652290528292169832818840784077149771099337323509295397628598116667048595130168869885413742483126433599730251362238026025830128537932051752236328086496707023175677510365119780536469180706554650279967610333662227934892643602281456277937927886487286564527093371531344959752991977056592959239376935016089911651725299509233669851276781382432476190273914134010718323145481394110210132541475014761515035073111846567935472858430675794198149477666620108041564232572348844606713045541462214006401124354233213729509212960061195026219633434850063812269612450066637847655488289730118473485366546680194032086238321671141395148409710145786194135584979638336949644954403195998010135894128535273441866994641086911919332817819957741727966700042224976573878355851091277600126310581464644744954084423374095325699162046800122116798466607513882267010673120301946507879656075131665315017232974431085097876426541739867212660121426050734633050241319803800611306813723615118816750259017179368472632941510486254605250290269183751214357405245955396361067406433220435815280175109547013330748601317942164196943092389611489959784504017423910753706372984120410297079411670149031726449930437616500201144935096685333669887858384652052120165075106090241991822037023052245623314952871322206498003104970503831380374452353449443681458140583732022609378159159723706379568872803802593543196220931409709804282703043099945861436534283246371326527457090747134205225763670071715926874558862009967305404630003699787359230914689284485921794777091438195203510918322571660210932018173810442352214380857951527846379600609773352894867007683181131881247938796208171369061718552801590423795530630351094491136843051386154298874098964540488179295414712525020412841684668438946451763446652308209719116142694039972773353761396341490199625860446394882231101256350761781379768385319394217109310276349098677679128150897581130172636339418267690622262162926711381002328623062574096833082723497053109912863826577802116750339839829249319334141145489985528242088021973366752716193715773104464831417473253162816767042410235835101611691139661922061367168236864859896263462607245710918646803761359598238935094045976108796530446007649965986830723128531744163995583684128076586569779859644176423469616094735781395883569371848817607817044113635977911465962323180685069380399177932601740571512977714359071728735688596966605299448691168867917702335072386729662133795612032752440700936264855200468361825213710165985268045375763877970689255170144129196617661707558682329747349569863612776179141100275500263395447798827279316310630887374739281829681103806577438066335308544326331620572447238959973471712761178568387844451617876787055666826014617889732554555700194356335569437145215403890804161002819775225074885203163842426412534637603555392676642723106141910186814815310812892619750083043922368246552261876391877578820980223100881974998329450298362849499430830776611381911235831299131151782631640582896769178736476258165861977060805746102883123939530051702870213932947780303504387436274661301221388200988078100771345251580678368210210072040318864011317368005807424137482751084387686969562163387541715642601998376789926170826901285926073773669987705350116999896528666742524931814894708382030234659412453151208443083758841250057469922883708332730571516579330770881881239106145199399436497530301895081240625659007531844768614073484133672015304445463749737457850464435425630080276278861786783151937218617359716668121058510078735159522160916173648067645703812196012404855209926315539669429925041876981941353011550807139129128078478231988177714161589395411478787578372233455078446723660141228156485254630846691199330377474037322640488469971050852996189328344070610083556679811253794806119161568042614450443778798126242029811957211941468117192378120511077342610704862029175310507040223930367872789854914907895382387732598457153191470676384924381557136881740806013162203523647081613192527552773282126416766021608060032254388678635260040451278503585731287776809211862789948735478035160222402902321360647450493930085029638051363801381935702090983588769669751500081751745309794525833018153374045752733259612898273543713847916610436349513920172480126106845584140555692122255631102256296059472535428617219547441263198245950280086490185138066953927313435597169486656512172388236392035724063502496686991360051033359684432719453107322520965494519080766969358565000584483011893526379855622754204261092666860875660316234411015358589149054468301668284447496241629698574346773659609816680411986564287241033045164710966346527670072872032925751618497162878494877340715259484221287913089374329478654036549601072615975080164727169207919262340008314578849842073134547468649188827729095953760398709059061040429238647912801709893662274223090414798926642550652692725338934780820836988883526473987852356680194564388651847134004506912157987794279496369642292194621959847482125134958660863716399986817954848713856828704296893830135052371520645316540711737090276184014050149848350197581188750423284690326622513083300115453398170791404525059459725417001821938865735455244240561594846722974465444395094956447958283824348320832472015990460499246017572780241240397458054909303887019126392485742432784882247455310195582878877774889200119734886483331786941570139042029739821891552981989301292250421738824047726328198840461215212642747362982843681686148839910422847168418746247181739793571926783912306480829050088667425714058452558238944281244333342957600420127279566640272583318117392172848461807722197915488659818595851659794718722045738695669228068936754190441051816836854287235859805908722705424245805017091886723326175959391291473321606819719424579736780495204328901469711787234351364633696927243399311613393083770730900844584301321416774579026043388024002220136035411066887050023572221074318670517294245474378888928633549497118148197664197855460902326479627949558385456038164755672218430104873143215981569074093763281092180137067485156529188922256353108754786477133068753510916857348945910385626507208613896202303826439916369174969248648876867304512816407230842334913573125693180443875142842181748819281104141463778104564285906858169824181798996146312190303609520392476428552781652179494183596681340131811026620128235310748249804236883452848616826966544527137613348150793797147410130223921869955940493236650591438785120655860292681248306650077768200614577859143663255020959082890777427639901975721494284451097379454840944807532689146196668196480771053868540822145508208982333853063385514347350479720292859025531731521413321695889236097632475180580991663274336239739133490191285764688277849895239225037229055852626958091768528884880245444041730642521685008289048045466991115014819621673960741570645889092789670333288046649952358609817540710307768435406924887732107041594067439641838638712678147804324737414757851017758504865014192602679512313168063576993988137773077132774750517398586497714342351369726057674977827578619466247916692450603540356189410003856221493610052938170164051242790821796851524061316844688190350169604777401531444668847236623357286647589344390382134368656836099444874520873804488040192899908765788227484415698520345711743170046590651806197570353872480634842335563699544996466904976671138762000541906873797280871237609663021728289811353984484911036063589231085971845971791938877148416519797096826208516018902922381898827290398985079035052830412295655133705237454488214913537085956317772999878904211099011439389986705731973931440666224448254113614341599933675461125481816715471124502907879234478854063283886433314610096964215933595341311177333096999816129767889446651041249857247183789121406636881564979107085478194897909864161364034022588424996389796250435724357890833911071505880001311314197522818466094838908792513178100677076018948023162443986941389896684027740213069987386385109977167216441274800706164295053234900242073612399707185809133502216474640235275099275755236557786707770494287846043984387562193471841885022894785263616807206563206122392666970459938696107221159009188828632823732819999727024400743954145374465006911775266344131070253901422755157181648084714617449153323277079421675920801562842662293435985684894422806930814786882623572147850651991346969421590380697707853685856444652799046062990662233967589684777870008548482093642615698635360562110020976949047672721864524554664074055606236261848193517263107994297288684261267947424476502786162817789527357251308350838904692481357042383313089148007189602654364248218069772062624164198478942271928245072814641798738588948925779087812869688297659098230953406236571465048832043429451638388424090386902571930407157247258004482784204672190902167783338895944324655173072395965210699607394489980086405294526945684431867498566887514482233795871201154541906948894023846862182512519819525168663891039962376029480380927215401299667207854221046479881746955011211493946393838357154997567628308965276235682025515679348469348150070234974210659203626006645650001259562085650731117118696381101145457658245101098599995166467181583741172589076850684254608142276408423079092329374383750932734421528084666378818069452756652947649695710239097567776511773864329669222803215189685753921135423627626801855546996554510851679496177945929493073655973759632274432236027716666351574757808683733973163419436309642190798205687534404306834908220937799286130178501366402660026079012982171971880110834538372938658989403807671908298498214811946692765261548995176434872555313615659892635835912005188280337796392380657752394280695153722540460548629312659664621051553794112186204832305049109609526406616787571070599344617208969995806007094402627762295047124637451485166799430207741933890149157378183565445016678623345932093823707395908944659890198277377658730130978424164408269103708657226764340533342536106808681147933981073273618144843357043737466599347416232948623665759677386640710520511124214275622874561027121388579407258765084305919270056312391484439798997617192953938708732262778080701089198086165969046190455281135327770779242534576407995673723267234461459232226821524601626468501164506257840652529184896156512608276630655179630235189847553303123929441212162792471911240195319741540505824602775952937356227997160046267753610444578505406055749975829130323349184223634412728992448210949140375560677902179501867953396211797052135186773120068028486718921222000350127996919177971463003707194422240120984291276526386094434209153591501261300296251684963050762494674599235402116071470230790082437178984545532249191481165366377457518541725034715983782191986406017399370279487656213877976397313001694236069395314691687872265052000594149709683111612552021230832633681562386840621855171195526227595024869108654926691273869908882459003665179308031963614688157253758821128854263762383247130768527512438692088998245995587385533999792692880027917803429311791905815969404177091869669144497833479570561049687440970972751278652895465194631376660035615893716937496279508559073416329154008088176245725406052170549493576619306987435701743759797070535038526723916071998183820312927271958644395156415575969552452417288861358544454341545156749080560651846096394374811433129875781055157880935529694719876072372272017704948347688730917144354180624882608849023361358413110052161565586702833949136823321335084323604144828784562266390135063651063438962499792353599953367917980311326547012518085875319458529818355738178736866832898292180681030694565718065986571178484644659690420784189377822109782908185797927204550833470958955905473906996729243767880366976399811965400115297129823908534673198373804061939188196734728708472174576511662369680860267323059539840672397136976718835241973431495857712768077460168500514581159926158214534020253106775105680770730912833381946345693716797937853142008283464739672416359285200862192950697705756238580762074881795459909253687283276693976415362681898765921089144580027035642875992945253199250813845841816273642615949962720686871629343567143680381075752120932808190874757941632292442646953099908440486073111633452671225921339474791151322502637132408516645535421123348473714626433105338365719406301701755650505474661781653813589676093527595165660477466941055506273708672621230047469479005681458391069802268390516919868948942612280988866160383044671680088794615139753175001804376219553945041338957088809479741277842185455398449206082327948902639830632274612595962628252712155164456334984959258816007077405438872353147294128537323478034523232303622773558398354963341178545385523074718498945421649475361602813625832011759015170872175727817656285698566994784770696263260111675923622334022370146747905494946693313147603692133333629346454330000554230856377727804179064397914864070260293268775281098960904481699396555156829598593829882790233487002834540274530851540740468733303148758766753381474378028563355743275127464099488611937993686237172728717869485125396109161865922028148176490713241373820798878722400586771616618182788900829130767020481558636319245886838616677710749173759515376302093645741494649100308699211637580029016720542341067043499510184095995223641056901160764427218930122807370713123816803499207544561118104246204100967784873855252357952812185609679170296239813841112960308621871927438560668091354272629940812199548654510872623889547781277231465581291360646158045258765388205507201450261510686958888582430424137738569098962241001816469851696765614984225423174160957301684463558513625498009929379393577603441152773744642568653961656801438350158829745458460125864977562112621392250834681292831850992162692026784558700901061693925772054605871630301022207242696036119849451621183877079105223476456294629733677896204930422522170467862913266174336856393169585174824445042748815144979215274007024559735821887422761391547653438897559431731033205469701586759138006501018006394808055140681648293844742664704904627862079509558321301679145200510026819799769078003838511010217284034591538647245738205825456634670985529732781932901580684879359085896964528459952141377010013115067253271331674832220241827778128786616038044865274399232428104007956635264946749888405501974027924383421436107148358200141972977623243636665383621265101836034169095930013224466979912062024291885036299846451941890461139992915671005141787165403754381841700491662064337125522084683223853782377217447359429626230670966334642998418020715955229797145808918985133278440158957124189281873357763734108214112460878852187751445732224503977437678468515256721500081398862398272677445419188708285949780302167777734939913294932631012103614964702550236327085438252246506153994671856353965113805240877929689012329828341777483717192646213915897994491695273219230257545333099463073149069298870396781596714904359386758589429845285465736856017485449198540136528076846094648442739667763631708194542085250094911602229352040734410114970685365999908064251160451203514110920797449831553329927325623671956334614117085886266019790415515387800291791370498683216662385317047282069827299357418623646401822730767502061204451075703400929552955690340502475134958411325413269270891303566723073017799353630369227281859756934254107471780893587535986175070876297461389599224287477393792196262204757106389683554778810394395426844785798363501157528418438291616750411444228809549254347343402600881395730646577517471244062230080272211207859307226857373315196984351447236092458029811475392608827159926376673129938890754752021371300277347286209532965518098042080753444671846924852234950675525535733533921839224371775151673083631129357874213134823441758354548611455403040777935460930978205549468761361450573865751865477613640044742885078963407546114413706652285331341160341060639246621591777448867140923886635805079611313039170733903796159289347267481930313463557615711628958921188504855569590746768442459126976120398678869402904225441844640528862495047126464079904731025239278221801450912449322517569219564618617455029440824787100215205710031957339181570612365065324740348471043506279404290174553237687453535950447024653823102523843695389290794552591141499848374522984976655142265306001290360048999658373966893143498645701513391282404293991947486541679482100055097406861291761944140205547058362157659348828196303253005872256792237188760640483353931701901706039514575445805916241781254119765283519639487207289471818906463042154564694951876353292071874885479398286456735049317987291143594003659593303531169969354207222920439747622746964062833615267484242361603508413209593941226223390214004365641841881790733759399977649855425671132375143655338075836212275031134862902867515750165169923480374954314712417817321484085926977240760126418310394422215812010676079245198697430822027385290971705884773291048069960688079072250715242562850283798244017929479841190440538614895314908013093032891376373898814101534744802797592758604864657315318426525273104059084183331995338463905654745119251348061922478855966437060706036342759593852524395949008130106212729632622571964327381069264575616623074070079908016001292623995651396646215209957484249523957778032497533040877026127054178107437778151015996778346620888024147375036888552902023693815509024436701949271168211683502739961365012618097940354772393646521570550465759845062069567927126612840000183697838374763597551466326117811120953235455577313493313668330918798170369776501871561626279585200280596993364696004767978941859414221278743780908593546207519027310880290593505836674933818915556917528207834310414933135381577968334753512134484407930448707747460649615677547554107099401311236910948926067471217226499604957866665283545124652331559787177599983921141587744928208271559715426401300147763650399852644156902083515562986702292460974268092696244985223122211411601320187530306611305011479872202153194663916493741768286886553972990148314892563627083583238693316928591550862907848403464792208367382170654997996484856056131301729411553808426638613980986272774641685237569487300166329063851617733647983296209999219757876053390153288691832392290504470857814247838842915045956840583129171440492650459393294645182205269322262801672825097276257126133305612374074325555674668351698604051397859594170176950341588034993825472474362127175313886209048838482695510330716382112503367867802225015413578101571536928294427005555837636970126345995125972004306327481844903457340307406556356769052744882213889599583974705860957087619289705839736031583215724164468367743140575619513759352180371819268762330550472056579270314147640146953676312844251051724283841772315051728889020777024660956637492646154254812839944388655821160768271082420576391386906784538606425522683510171593134471728809248381116539184056333192370454403638229648540503698829409571209682043738818862575873276950202375106596047453709883859354326971759211707563218360452296092770771592542988911011798447812253821759641729219546260086680580578808044119241466422283847710309719113848701077027823159466082630903466586829120513670158191771289524453065119940114657649345866618863490429119232302279000733279676767108301618070138471846977848094692367203572968324017427956233882208730741044192904491332044080496880466822523430567015950353345911218003297348570719670623274287681247492199400679550440197349665585684447326907159238694928210385658297831098433239577191177830131282958198666310992649348582902374173395380854148366731286431724898361906700842936728267867104967885851370907568001758823751927400133998584098807827214853388772347948846595739031240028562548427075993645972942153648629841638135226722576459234627426250373356428943442417978494562821580043481872463609464002670702561990340573972759501541041225483147951614946293173844577713418364584639520950636486526540002916182111097603255547623157668299987122948197171648422445349974811013597101255044801935940200396919619010610052383232111838609164926879949591042117680363934756043135138121918301793017329660082531577200228356019007347396334682834404771837122630167810342684183180766072042886482726290594200615510153034987089925276139835039418891930880237147487169148926710735346897320095609005722243817375624726132868675528409362880230487001903023793476139715739600871968416100377918910828242319150589288991108233492575880000664593783042549806347591682839712847998342589328273106937534762922842304713167183178770345385117085812051559820620703751907549267434503391456448374865223301047227717758778762947208994253358545588167537491733302845391111158868333784016862224729629622123889571524767583216024859741541592489358380298289212119115208200415730421757010855264266375831868106841646207864753244894557174103922016351167777415596843525617306271685253776360357277886240419236769737198399447052317771534237269646407479763532190376520322364867627279939816816535309153783817024097804703304964116618099903456759070361692263998314023676051291686550429555811289922036553925475253933136424861097674263755295982601720955901200681722638249704135194632428087856599877789084977359753771332583041987672182798736010450335699246885180604763438678990688572017212668548268913000462598048536225365301614558520702568889856116854872326601148399342716300888623168914234851689863021489845934192676662014446188371544685871748736712649587353769589395693982097666215368044214078405204838462422255802827759070864429224907649349842793579702354848109471846265048674083840039222663544283589828165127638992625793094927451581427848152025129164831433608027728153348106239816189904342714532628516660861778925587519584424811249965707230375771635839076952140821482399947985679403870177528112092994089419667766288332808734034228689871028742363733837474059301783106431848838424237502023856736778698701273251614017576708452384159940741390783240071319653983497296561648704179113276474388542244481532332767375681153499558993395681392346097879338605938331065617001942087986977400933303936006004035185258338161252428740481520225767746364182875251931509106514885266499131280601347588909979157015446547518352001372304413362246319007645137559476744146706396703532134246608476693232761919024870466455891426345887790509479426070027813720564072637570270226858222471015121892110202342293008274915600476350000496945345202893342702108463159416439541225254665941152490569414445753784940468334741574799266091058592780332207558947599713818286604524082151656786770688670312140752689172122527938749850067954150040120535050689784867283702874512125414598329426785875139350247444264938726479842200829100162563760192123548000456988952337195529001645284133552094238527546230485395489628750288659298793831807657404757324397427439642278720194965437505400623439714055063043669259295262467377183524579837444851835946986926579098971743783954672905049660024234077195782647686399730853809991689973540905168574091529987785273757349094227963146539603007561164423586478321961082236554980037584338047999084484837929877345643536894058764202085253797718542259346616668898655390345160156974645460569139286571640127325460631650032118090020061307522192266731938893122397631143579184664954556782785159146806754776505881307678002228900979336816220771224359971131452165086616197502837027554713479377083973584798791556353587199966352721824865387862913773660715592551954675387510134649826021376671970912987024938695213167513203804633387364571381349670716983232550172806587744854942448286976878947246999504378569959303600483270492362985848477846244251215281627222034532208342042747618140475227660685954558745928174927902777623824638555968811350595593163017983739806656295984557094343669378055019597327871384894102143071625479227335597188855940388126198855610145352608297861458267839668295052316785221786448755436178345912159965398120137250782044036521611273654083177545189299095471117077153535776809568888280185290229732103885789662497730310566883486614998499051160832905782166267170735997523568941637293189556013364243377675541656938153396785618066858183766491444338805329684777536333742624980996260684029100472200199665882596089976360894606356007578727729260844554909514452516415947063983604834548528845689795042484623202252787302082361055431684269405792272351434818256050483456750485315979941978742258944797405915352362037998650787666825646004930484705824698289369280515898972930518936708526489769938452068299531593638703261667899740948298163985333018078773709026853510000768405379596064814256125391529045100767371572801312548959726821078416640725088405858849152095249907146825174813523860152583213351281782401900244835153755261358316391036096742225330990397464919609851379104143713403204843076587380618381309987477526632326581473779763210397198444890719950241684677953486395789067703036291273180896998224016178567172391071008091422927034997898678636436262726446375747884966577756954613831309498086592386041039786923742681904968548157870484787529880804065393656341807601402289624835925766901171186905877307984268337817061989238689730923606947452982068160010624396189528287704398625029206935868390348927337337270899737734600709014371047183844577039711333369769102546125175097645105278529866386447472709524648356615886701346642850506858399681269671140911339219332990881587135143570083830275592667632735057869357016793856748773536694723245770945859809847153851125163831844178436540008003154007210294234169999804525948566629856494590258082685362492531894718010551151707977722329474547209593710597181275576070439939929350397179022223295869296836564684497325270441719817222478343115797310437422786819584204189128756123025272056660694443281923800461324305536367264177499339903458759890781485151533450649319092445122547082464997394485684028979449323254136465923598570540091617198035180292149714718469114405073821524283192885268581999864493737400537572500651430423380855239197483817651077798385147063093797223453857109052522929825684669096705675763867952184538937047977707236252274999486761091277212051801639095362640839228437176084205088795797461217276095838384471220456289957028429764186841927456096753022014221110332750509047159674915102061743147564974890181228231411389701158302546934977327821055725296901099546918210136746904531968169739232037296734191189913055242487821454130628897174324159272145012208220230442127132222703382865160733616978222691794635521253011575602566129386487025022137859828030177873040704534668222857667507139337234184500323718119852960990753436105911411180105461982848081286126955527379366291413997749061961854869922820315691724111893820575415780403822871902363836212592732203390256040332288920820740416189509462182416094150799845838582604480509678865146872168329259645759488299376418504727123665582531461676594745036005334692979759754761410345420892176388048592000835917497380634684573816882528439384270758222930676348291795042459119345466684177249354465891435604956263137316869395804226226573381803631466455398757883512261301195696087947451231183449826222258752554811374066731357849267201961850683297913508700138450364897396803636656789332721432070766427103538879989661412367638016019713121330503956279291995966327059453233271530041296693045568193893248092387508519737943180503468363179716759967462316840506086239038540330106971023332399595307124678105092234140386052109560442938800178189087918620692837258551872556333090531788843976543499104028531971530422714707588713236399366924913533578194665573600442531395534393400989805764966499176339222529280419828821643119495201706463324853928376598016058603177365694875661252755633856786921479369990974025251505803455834476555059996215009416930423479051485088227371404792587513639324460517950334921189062806502359403011296109804811338177683443288622425234837321900418514904626497381427962240692366010597118624256061124145193627638071301483806920655720829569853187689462589389846069708834170743266912369177207393407954763074435190780587498988440573634438422524795919814776818447802215748012273000535707912607389618914310724118492787826162142526513333442729392114484917829342998710830529182764636309863240649504292043157894288520575594516034133198861494001081614992098387522022108641989132104397223238647855452062690870468301652403050667081372016756032071246289341445292614793333989070706325881366461205397162223883566808058235112891581768834334465993847908239887778052494867971698989902205035240719577389417971383266753415762855182697871028532832931918685644284487667291923939223276911321020214359701525918914116985672750458270232778139641986343211233924711797709473535726676606285415383937329148540922149091139514476284903638969806350596142639371348731495446157480924216586577519466591706315092944239881322932093376736682490810908708087962634584082204954808600483165325073972343186923267368577430619108417010759941182925819654625732501851746201743949535436691123111253910598578534227104292753933484247548164070064021257099937852945623250427891707714568900523240119495287882647560613145385628650659889961373612945644993533812537205729595651823583930682113012084230906142549529848861052583684565695175249607121359140206623813848209182849228286908459278834929842377868509707965456862452822941942439695509529339606837614878692883771556128336118738150786523661567483343742099363415184768320659425772831423824684897475310982556368369010626611196130874763119654105816839048439618895826034447158638446962711598336525000821013523152077113799122650817528235858919371856034654330825502296560125931205897345101425863692458117571415246527241982454994627795625455455245772947274840954093053416121934747392648452220796087853063056689558169927394912336929828254731660691132016504627383796124245738403653628844289037219342793049997945211160719718696501278618251349963847417616221701818132399811081486939691807952847215958573301755261973318561557100615425547104625349328722320891194891602943963875234256177990382748669110334818652090073928501395400672275895811586961508717789891925675480172820131599392660400899769935107382153735745971905086785260901865092772406456148600246729918912447413263776936741013410279507869063690404836922411872671118094543746373600715649256959358331432437554033169336588128867430007047259843059668400813445603515011173259471489236806491250531924984846618105047204804432117603898280792789061558198170852752856157153862052749507494757544931425551506651202240947785160243842418885041529250471758338416443805877200650987276925113948123395408017183819388107695752825297568915307429972273017295966352974469452784552709291758157871195854268413249096257674634961900058859942877885284615892627237008080197545992541735742149243022922573012051784154563487882959299897520965757367935498071006870084622848486323412341963843391333274173021022944267615816213519057195908700371668441399749901270318265138910282162723798023623070110034704589249434847173458778953127912789057983860064949937648046776095625987134817353298310691731354490596846802648260551962703534613727596431536274759464198874951414984025189974870939252902461634742494088824117303029650776644772359327737407456402310564520873110327951290167510292111116599181718673414773428702297000142624591335941723558938685928302441302117214431852091704294178903179343088065422084749350313510158612824091334826996983278514580478360013351717198610785755480337025462032406563909598292785671523034800344433744180042367904855573500006423204953352344024995039943555876701288541631925048693191752608176094426391067477082512153642379050339871858067256595383405986476056216720439333696858268493434611348868949519787212538059758736856002232964996423287916933779511195181304605920047782540526778457619107432327357917209855743111882407792889570198372100407554380270389884290967809328273885236227113616488781379140593320889002841193870633629510253649678070039319036100019610679623718041851049979405245554488921365085292630765304356752283773947310856973210512258933921975875399302645925368416544190452126440817043506805016385504676784309411422151040921255116239764254417206490585691311106134795810084015926560767868337775892793138184946927953785475302213897771131829902405778953605904311884554418082026030621650630131453975596540051424089816368069327177122081085342115965891112254376616011021558775312517172477150087897436391031354625800907134265537126162624868409155914890523723141515408619224569889599680183985330444487451840146434422442691661342055443517935901727951044450773503780298790884467787356619813579109688860195080816236284601861393755945714867991814064793028017015315218597995729031891998471966068851140947473337485035399011053821963159188256622930661970915823194115745271400608371790352550836062453127592066970236842132924456281616733405040978993919731032120343050764244980827172173973912967122464845219741776215038935827873836535171638481304689045987685031287153583364611001856220359435506807231276878429088626517962196895685646376934028467598074168818815137627051708466455030390190954929376186163552269137314986752821788441414254081412050867122547662785261962788668252861871711344724976922747253077313377068451418021372381822503897258295891376426449328156500855228779963656225729859745148223970174487531514364492788820134886114236216915482310823735689738198373850057059137612590447214986624715186206674034238934561795600222354045008187558265111843212682260421460906602536286884078129430235536732063627675395157669654756803568140315867530259173885248290573317576987819813788482450140143371499904107050424818102395994249972399321720461939470590295478251544537695078575064197549765906274252185933866988397659944391814441896907803686491154921635730407760490650811885029068967909094050765829752632394631226347519138545653353515304893078352560660575137522180164030402177318080421278323179176375794017914487984897205514215380143229525948969092142838565219510320680345253397577185887177941658041934349120145366495810831171840521779466707107977704714962529604301969306039770929522886208315315403728798741490330928636795824524981128921973515919354572943240703017761225401219110233471806639715513837633678909098385910012461684537853960807467659272762094576480871658797854088134474417749247448560680724737943224413811323766807220591570562196053193995078872297562368291748530532544205178781714210272994585408465404550772404488739172170001951828817356037876893030268251971512593300588262149845370680130397680131768896599050250721478466791504425713445888814672259430845483121188631340350883607898240552431365931908815443585990690363114697793750350751626471243200256419023527640968391356708170442502457868043025216425503466853841797808636234960448580409046355706170765811809648722067855988175786617460978006086014185631947134029604495947678315384550695324329579185741516653436321625433322346639667133134350098129136072834128495964470918477723304689641756772427109712788454463406039167287232767759862884771730200032249712732372282396922660564578032682171174225943738115025285447456549565247420697635637193745409889794639536888251680444884071189137640444752994709964078881817670211842824076498642413829337000514662914049073205879422834250763345257562718479860301196842364515761284323421551803002305981624130023063058020133337807175057053962062044902447679985549548924778409216338421863960881121751638212496835893732911564780761525703098045124984948438554764076955559895777784318435283400282402968515277470395270451704163302606447436571577176623131045575906812297628567407614848407643956474645088261296660072918684027603294679598735225450355394181662259436372949203205455717492947898560803817574142675689018966046211993046440980161486943957025614556140502595315732721169775165853770327100708816320160846105542046023160324213187711113597855711016365539590630936647909043808522113826987417273183230738471270877652919363321328585561746659318967996778645038636154240199404667883895276954523318084836725811081512747592266257096694979615631242340124580830822976183365803552477162724584728022483951632558126365093336651244537483677501856271042190561458097798467218319041677416385672149799353697827080161135552030033888916713726252271612369285383756071444376055474467346874282353428389797177335895824744816433313262649762521466968970668556525707850955989116440874529268938645821940875965963752881044058465061870611657503825514843266012102601800623096864573231400523226629449332678064034198608887797437922515877466805332836468236864590478435262873749776309592786991036059450645539550343527855068880403575931411538229235663302923148051217046101612252333553337361571697168972877299709586470459457098194801046242883415728470682230578554742744212224182889669124841020752148964054294516596897899279235209541112713793150268201582333305628396824529523288811955186914282367388111595499999136036668223606567440810083672402457252541444501172361991720076358799262574786703319168974300640364356980606920111648930720018884104974887274260369055475513371961193075557449660525284967044593957030115703815744405600275231171746083335128684114826707817520308524538148540461742616103154228284217104851885377506573282690102466071907169778029430531477255772171832175902793337913481786605110183171020077867374120755602769327460130351799689147431940087977091824282790683484710324090630043829762056791232919882733318394754602499632705583616531879321540542241795325478915841740006222224616463709416325541958305270127599936825205793746654463162804225123210431595786348645930743658102513102170723425119595017418853694470933923575737879709855738703463509335124965193439991065319644684513000564756245823200580475727740508499595899978040862732664387508988765122455110803181243853380684267378429686987941029394944619545754334528627202392962206228236417156901473861280075237208527399478317055597920726269017198012526645668113289565904486855334468726271690143354663410156876681699213628339334417523011870854780010856150216001137666083068093483531653179558581087282061699411031692531151220987734842217218334395733878301402893505467095246634738335602558998204912218066508794569063482658346663192415016208630355591048406345958708633516205339482546923585874158278818638842007829777720996758014679169282392521065465158944529259060245792799332191097924111663722111710725321334906075147760870582912341466698274694068486830354592394047500528729151963932136039246723634770619815323263079091263229615346867616094402184003893108050291916871057375476156076739464088037190104094588585532885192555913083401237346487332982168805133239633966690657391699193749480207290482228964121735189154832798129552915955171718815123620122131294127705669882251882267047011524683438039130509286935709852415736195783604095295851989885035116752366615726989842553466364219550066125665321741821342391679255914825332254117525484303170633311480885205381063844140161896498090551946592326745394091988002072409748821228518181043880637039885228498922096871498203803788286395923484128311752332077296206224403886525581464881485822217500770770250700846864470895549594394575801828122186008625641681786619430324631258023662386880456976731769362358021522792639980611350560549735219227690462405611483137224617073728718952889675588486725114149845221347673988872517177525868872042542486440428199119015066679061904987715100178309131694542254517118320855559969844835090799020764718570764580737134101167645245287310076225711828699446976155184964261673721662734053535690560862231766033472185392728993395953110785464284039959010453664391457896123112746476770210618755319767742123683101347085322115367054598460530219315113818740725332978508472446644179452997175434077976244302396768436755323481224425916191694215621475988394557262269358652183470377285320679341789552015193141897217042583788238073440945201683917256667319921866126622841621993693963903812978873780669829195806132530519441320337234327009299635937321371553344269953361371468288045815090319271604643065210327541096491907287314776677402066659697630841084193983882482979074570698487539644397595157512634153049076614423203911802065472215600541616714838752692600842738267871076585091997581268200136643604442278271642770780502556670669735670609803138950418892710149320099885667173795336923593105442751078673273679681406435136586298436397395574707334310459328272146610083165239878036492972944577760270002603034438936262329241432963247697547341355612317820366881317537935488733360923222361651427347111782871410014792625132616081642968280684109179059826877524286413827917233141895229980006890984949476172743966230009862743046694847818651817030851176510955816095843002609874646011875963830547682854663992933058112556777386304443222040535292236971483704494900809165206361511848715528198588659960988639311676726561450843124137460693992475141717430989673269119413399567286006820089874974748540588077666839322767649387473609455984606444675608317506935379243820073313234487736058617452861702876084138111192677300931805028729127757217721014922890122137234877029486434651237378057332437423859467336996649923572102983257179684421362022932212393213110299095432189715697461749565590608316637375687108522402237226990425591885677975119940005099600927096698797017855950932918060899871427425548058257421578718176776206120935411427390884396113260547688836878631552418974197889218735871621513875931253585507406738886170831265615872980487137382175508049933489240689459854257238145133875350035739628970187314857788467921192490054071531287524022588730126939029103131920075614078482241559725760941222002407382973020164967741490807734143924631989857812212326771925518506370631650033470074012058225273835174703097248540603917134653642981354352164029796237885192492236540726827736177000361585355927590450378451598818335714404739865159192791431602170021738106578293360104572248110096074765883031640142019924487101683699694146428149870486416844419532221393732616481131492090307932048124127395645051436124332009877772924102281357789485717972706473255428955757271811837347700869081798294435064522779516249704393411117108675865360790534298608674539682908143811392751202422578361755111431350878693471167838289560280605154744293624978555519081982619284866414477395636234455207056472454702454890108417120415894184390199376414905600191005699807323235984009265191325085552244767236494186172999439615542694196873438877446433812746840485869950659322568806112071496916257217763305038211105401072877436426551993922738246060982104941910713551305973235552478489993492293905508860328710667718253125449880760827505590977441204207592481276009487150137871158202647237493131380205866418947391697365780368873174417305505996357403719119468023561808058031085386854469165638872381732517832914106144856049735843085250596483960350146985022280764723492409585688715994247783732215153562584000927337866014749305409407270012620268195522706053860200713894251237426141469367933700579838759040747091112216536690442060490219665841236954175210320006519857265638282741384099899408989238659947321542943640994947945226536630509129907706903342814927485288699774439430131726325184449908793036484233711690378358573784107766983373573213118706841590041106494407259246240117739110496688746804317558726917742953576356892021134097229628863312003035297451268414791592562435359066396074507987532922157195494655491064179159731955810901545578737436159524115488463521020524843248658543101773805655432387067489707557728520970718399433104613615488545792857641281322171390734017435913465179059668129153828588756413669567308750344053072760593790950338426168127360756706207531747876803746035426296886422959961939559083193328910091765666477378144523806427567398662050066210714664423541851114875891380886021776566280334844228377455157901568412887439098120979154438388167610127560414538976833967574785038720145167154103344950944780609005172847899612150131084505485950692526128244541024248734942587861518553287644050884795730216512740167312636695986666811232706345539845839061662494420973604456004961493250763102238346112238041885730274068419827558675482390212952508634192130850910426214349952421181878757044952639731073168810839467377298729711792739456624936696020554247485010777557381390069519692253142441285491816504591097684278850258317823015388905610971203593668674473382215259159656416320604881686344732221414282330599040109693519799382784649908686277132246925286821198110011334467009748688804768856346322241268268313444207129780755247089733098186638460301594174521685902045503327291873501891140356382986040555206420216707005537586647656380657952615074892907237997261894955441533396404034257125800665819648327999685504098049008614891886048617087763465865868727348204632851207219616361882816457504048343521013942199875023318895719863062455162291423620739491443555286520793208572668194659490225432021406400755742298275343855673574811113387007249101465073421934766010797224224260527001602845482333096153102149288955512606719114494039250260050286036317570553107589375259752352681938954623470345884658928389076805981351284844938410734689726398126509015299523949179895821105066442415095629573382993767879947245978321407673881949545588523726071878981536689736654193446237036273545438066668516663970603601958572138504864851157539587598585500326998965277922384638275587935905879830582738485151685782797357324572236561711757558176889191377641151972226690868546046855349136353470651134760503689041988245296479556879093133211172523184118367447049641936441833554902360178389693929324408581822298868600017082519603469821991837548910644178861417490053756681171928330392204654299433960243132987679898758322177790924043050590346792583462011129840918624042255850748538886962641478485468536965845336816164188780515076916565851623388795519149512823563915372482336028447236827043177408232402076698788572464223145205467637164278539181250979313049661936854907489578670842875275159144436974738767952880331467462913547149918724710988479711433417902389538849327005446760645189042659087349177242353749049324518101615766835029351249704894657535617782054102390039090890418451428674688134036860845692298839556895154046854875196760567035685386634418190063960706409509761631426451996002281602919770974276608083675090754557112545462610342841920082987576523682357119152336836519977473183124193238475836190197128094250424139940942659836835826830851853509738634923644507787221944179530322368083465449012749953314228036148828273680925457122302923313728817938710932237381635006138127166780769912725550596913638634104036945655768808203525244435005914287464442944205700873831172607571296981131208537060761262864345060734443045772683116706767633077942469260963192716275298108674161798323976814911145592781465913493825509259120549147650144777202148832272221149421255752638726602098082013293064164376904806599300008226576597260877086695156475712706446320701335388922087783692493267353085478120307182279442692135641715141161765135450562308108484732690874576301982882680640722659841759660153794782397036211523591586324436772135435767329736801966174147077149106441703265535285613405637052302181570066277284435910957453273487691011750580337127642389506843784696394584981215165759518392583063182096066814163374809880474892817183075967655837220439062634466573722689670287731609724336571915850372300433677606397837031731044697041866375747989661631616131246319145700127111635756000834466028322299089819660696845765885595460097694884733930594272502615854856424904153173917213543807676200253141242474841112606627096397847564395551439573822281033616429038717993254721558289580457642486306923441467317954459046428980287936729141864742291018004573657997762630453988846847301219922274722509717077719728212611528521370167890928762981203844821057524610634865287215215850896840693056495831639993625899753484472345801900325432515130640311836149757763333936132831308378247359588509395649893571703817757721138637850412262464742584921089707011655971279571679804058921109936148433887785525466206790630386922915226373386526736614025939710949012673706677029520183817910839490580699219159938608345665385375581563567492388350931132514346296743547554530627795427023442546251893077238449207938490632171086675671011643921814519129659590455124205991593199349209316578008421573731016135060922092677395607551279384645561147034996800633224574825131852813487987470047547782043589006981811885381435314949902709506487266179556779987881759972070157478345598102709138408096587467478435583842039297090945074776968998308913867907375963588584894442421962366603546497312078305052327270649027051067117726218926824377309547107338239011242020415832953925244565223487014245082900649156576333527604833695292828842078608473306445029927497531099585397164108957888227748779333498625814757819828509145067364186989451351733885384360027252389859847154786655694996658176301060169285006747726510731730229452348753709957578166971196537079886040766348211188073527724781754253124461910936222131225038554574429377991782384625982181093109461560627085504770289605416162819002699320977758447540220429883651631425511179294282884322974181759362133796854195612955083980989893993552879741461979648816795664841140344628929151814790833197251621283033685227635213986478352199638806101518945175103512603536509511445413169031338509537596701026966327020867407932478914680437281228628147459213818516886608180038188754781602038339603213015338279469099117069876460515990711190150433759903929371915823276039500490975572912083905171329594717795040572572879702730277710814487440918246797543175198464230481465905187185887415821162241428355133379980678768092388983530629012280608045547315665298811479194479966022009415003314979392399442360677091838207084746308021735683616162701196627979386419244656876208669650661401359680164962889119703231431938462867012166656833272253027341369913053735238477407276568254670749672028244300646217681621024426491666713658075706330193609238497824543231796160330535183352666064857653757420724716619211647709351696384540831386490504896263640213032856378757757741810654243734232900178536980831195411151309848407150415800195018385740381170492095816696455114110698097299416634345740522452722805042285582657499257193342385855384941402583452123920395213972394521523020914844337368282858691439398380303587339127975943588555731112228030886836220788187102224655281584716497232187159913653828061632290736055931092892522231988496243029765778809407663969319070397798297968354962710452764270071740762984021602043265479064047216605133236854028175115923518474238092482807759634042763424394531094833226834869756028792515120528912498805775212254258125830799883293479348822882630573142604958622824091036661036996877950033497709985802928014626953897454348634042208092228137234878104031098014337221079944167528453424890515247212151713174086102195478536163230937953226360256304416234002698105704027861964944664013078505572209480251900654569545505296757302086850380168154561329481434684017034626589377094238856211749686031027292266270806916385762797998794250371600041908353280692544301585312142709560056235390839189132267770039990231957311221232321672739169538819561223845026476251614292644635204803215306656389492931147467085633490819866780819569276133483318282661250225043826291335419339363898367511792169800575761108930922836725470342898194429988542076695628796145156179449443344377805373269524946914181851785546743749446264464304298437000885838240662098980096989867070018278391357877748390787878879446873832865290325550097135486860419755981691469132020349023252009305304172491666365459843098502906320005501667079809233937089919070262368143492926865440191552616182012959566488521831282831261269593819638996841813773179478745339424835834821351087457010963610396902426529939069147040729367787579248866305359191396042712691034237729643549574277257292361436617151911864098017289906388003076872552656507451946916445562960455243487062437099083989619125808487307910636865655479928491358455088272967963291886733354761362367869103620271390417073873832927433200740674388028069283484540766123045055028884538800624678084104090757337050691793728982419906578539392330889355891289576538074310858018018809542853186942042281482108559940542718713780687706165857999405471442364436447504250399051543090830360881549263690169075165475121940250268564294897303608815801725846745293272296349219134917077873967826393849612836056291834173081702636665110074774636598357541362734499697816024269267309690069161491354991715292307233453403292996945923205474316649847227894199645500972971781106694788922282584407630603711518239888199955462417075581106839250112059817385824521496055720954593532034311132756266735250934088906756649864163358434010237898522356865399127294245616916451084118101966922712911603134861775422264173659521409309366652244696169569418255415192866326933328529170930372443742071564043519320112980154402042186756248012309797607596057122040036089136209856970913846867497461080413603792708798926957437648281593477410627963933100962873441949920975904780037129291652779972563575145131708390286980960629474666902107843489373870597795582035785761100890370400498436300947547784638572579142744901366017839347220728302846283970178401663388985109136683222857689782414964063118743871493276786976574929197978830980998389875341366904727509573712436400715129514184053177319558331320037901019606501349038973600907228974792281110174158806107626503442302381841066134195889876355670593653812126388356694586721361093550164225899407863304221308467655798479560750942656132860854575307871870727515710699885678283950125778254211376283307433413586018532243406690152247724771625086177418666157898767455237375658814164202040334789232282512286349088628736030551776485654416414224778530703977439241800645472644585148981859254589085635491295063093432727498347707812190938695271612149952134966564039017044469851904009701106797051193681255050877418891357958318129957735781976687501930124626151723642545220618121978395394142474100177053868151808439995185815610056083645667721893529181216554910432413047711948726365637529224667104487412301824958386707276111172382077289884554536341813346986753860871349902351947592201591399697773465963978136547278761576869857592482080316657368655988104205726033138922212325332263884980110392095853456802227611072094006687651239994581019578025111797656961836642350214575764819697171207481796962947322317353519218266396444800202895324228549741097042125297290859319656363559471152461315825400994554209880483916641455452947617059930003940904984070400812443473595861800103726769560450733877201968222653503296797119151743167862489847145635913178378948485516071333057848594847194755084118420462962496883963912365295059389339247954733449699992183785546667946842198784036770808702275324917646574316798705142718334597777587736396685261547196250098955398758794986833461700502877552238849691946629278707116425342189415900020470970769727438167782040934986777627144096148960723340279628190158360152408951027646494539930870761215196130512444476694337115312781185315251462661198583450280878561052024107712298686361735555279005925659519012477781440677313005104641271476151377986019781413234811444338189912495075210711295156895861773572383614119789619813255021505546762203749842501827243507480417954646967314746799073719727778437249977049998630843272857847406516724550399858961289667326850893170098229485461136667207316785965711128008007047940654906309838120344215335645817097113402310017041416208708439328770162876765425804551764843253173873808041064400828996353161594992569777157499031806938979909801059143884159029019159989477385587598844018500574378475765721554676047526865197595613425635162823519546423713222225640334923285020460150720008979752593664501082378275129129738567133718601622850746563169881174022937178581523100972990861128399492106864344216994463291582359928564209997969720179193164577423867212770218227574720403640641548620455336747169419911469472807763601370972889990957902193302035967753348198667737496176063738102426998986867213712117108162875650441959206977992128934542788703080548952459382407822655709449077056897905835278497524741337905434862763436379044747896215085123011740244758519135593762855567611483708214933493351848417440790492661603708705323301459014314608669658714478332069853116470020904957598026560746982081960091921091367684391119275879206066031680683392410566114663171198673739714410817634654161603592897177574249628612890984665538440893250106430413213786145127967793198999514084344604198408219298281291959461885990219644317412403534650662826151332016115788376565360705730412251126677231167296303780164181596900749213675328730220627965128921477195217564857549723012118535762496580584816882801296934451080072240005576280523515370403487618468828489232747513852660383093314730206350059684061298290029764339341891688181372345988013286427581302087407286621868601639244666041898103396064105452269734072612661285607473583793249234323328557042227244859708809296657691235358092611007599209637399881239837786313788178678077976985231530659819120130769642700971065123153977755217105905333567772212946272620617616932079071516375898414922433332377703196359731511795444631266369134821710586116892092183357698301335309007241851830839589650379765118612935250851141812066780535398596310885563522324859379519919047378114830657352074323005071552695367228667323124610238626479166846019969221228463432402010658882771355148695508521667354663523148847330970688536166679259312930829515010954113646402487504480897165226838960763446955814142953181359922022126771075126898979004514319558585077092062832173834224903785939407727985113258180045100130102135526089699138885795188770166262971179863790423330750383568598997384056101507341632917525243193848325420983872893683456910441416344703956107817527462474390884535588923303810273429169503451397005789043050247113879450718489306355735852981899999156268268273218635019185102919145411993490416880072957321875617567231416674371274015627984966817683048942942247711883504894185223710237762930918039282759858408638057614051203924518263477732017578039671790658346300619234280272912537153873683855356008544084852182167526988933219578645487374099334432727764362511406387197291937586562863404961032355919314729900055917355013120867766076963401870702049423630590003666371194716693666185193977840995004998262986867911593570920453802126931301705955259349525988597190652454222322975292278652710069826441495084517290947089486328306008105662651352340589545259543440679191988470199417322907896461846039573959246773498494157479938751264796173924627445374050121571266182245872663532179952306646355238746919279169493914770609363726231744303092275328796591741119848936218725028152991215721527678963071257354512309772634678067233575454075333254298043042410261902936261565697622152879789951896314274930292224666506073449304788872886282268112136716619441941699854680479017640849328522497472669420271170651288341591845934476483994954711766414803878757794830145334633470758896780040013408219023248830231840944941803053125343923545817029497618109125225097251873148922850685618944655687155267985836092183489064627526350585410982317970023537473110047981827572152324100587578803485524763893648163047225910402862442905503818471205636548696143248139939183670823409966252134834012186552462890653554666051221322968010336723049500976113249492320514899333401092914436116694200642394511588837300250060183698377421534282249819399581275383504208026634637052868060924674677399553407509159460950542810631827618414979319406327032595587475152261901343517691137168537293828470574965350505058770087997173854410593118534560923419343687289634374918297386276658710293662564005336342927067740748664008566044087949752012053513414846087851277691023196727090076785395231324616489659669943179800351042099617768910420848974708516369649145091562677772492847112045230767825166078542074268145686423327499699607045483455174834347969948482732163316166318734940953077500481751812184743786116776461854470441557933883129400981878852165435219943121038186751043643741701613293966712465633224310610227595927612131978728749859793120141082434396392591870363338618727409036734001410426902099453588437726895752304116264900404643566291846438186890958871997481682378796743420242375035917346376720849561072726208822943180024742452601633516114711963049067063932626029543277619248892339088926251873562082798970222351837977093423684452872039767321935631476291540992655015232039583149706806068917189179613116430563723754386875613092138655604355780414470030060389477845717047249089991843428910761422146638617786613505916466801233862736434342725358246524751389084062522706038936242984411137393573724535413483513335138887086354453110018885675901838246084225177134053932390164139176081494344662038095150413458285608091205314455768831474955238948731456809531543801515414221732409514789277294947865545497752704683699553188387771253663552706666191210224536415054397204974870755635359100057317177366000402268852668205888583810444731358876009143425487482160472456277249033639254310030944978130457237821087021236326057485738380970310539647941439348838298681013092217639818847405726850233679754587107187736608026766734227809182741409983503398153790554281172511371024351187416472772829617306067742710245330537339998866211889424198687435759473262992537018447974669585428982437511881461349957341454835011960873277308590830981857081325121732223337422477777782818574752419815619648445142079806605592849369855584491580967444215333458707742910071307716151873647498780870768184004049283934652933053279952795736000911158048106640599615511627256145451894097090974204997404072144191631023873685225465916744769411818167381671065847679676656172968848498149470319710353225593562313610462230949358624495446374116195653258772787359034811354722871599540804829206973995992351089045691225728039342815747655633864326578306302555682284067750502027168746185819453963821857035221581004733048820510343402028180782199833423585825347895031470530538006118655776227051397205884298416497007404472753825683528304783695608948401469172525409579393633050148748913709317848431948493640034863233140800062871450252393609668792850938358069339884595838646986977302108934793203233291568175658447504636249105168970238337393938641048616663582073642692031335813471903680408848355495028497411208142043872522342538107208284116939861741028547316854434119815785239469645579342040092603571947547299537105210536717099044296136764143486495146390371695198199832556630073883930273805237221915959766607507951440382107371525834460500635990570379717043870058805129239659719500060168252911482855779888646665499528849115960870361741702045188071916780798644172997500999429785642107189411371288095390070054446040027996129430313913146199295000680757687921680119522125770940054751731226936887116877089139743942221986306162640333581754199027277479145814382939673034556626598970319578431850454669712757180322241206796171072113449409488796796628845735720542894940522372694684195948839223543724478797308329642743240747437429180381293267855685911175323243202362477728861283579732502569512729071563634917169773525627248774385016075462675384194642429059422235653041193816907821758696687144088710763117581953234995802769708129221578480918651678716232150041920538979328652633370893163761988177276473595273187980908730313782492541723285453071250001582330535237579723736247132647096801908709626927627063746646310378477782885612798693144176847935634868376053483743575088553710546919002715817311189597644983012341744099750216532470322860494920041131787127535641846648770635598213631739797427409872370006395946175062289760915701848164103280770085829193054336119620436576214495412436393717248242772109438641707422306104317789945769650338007278668454733480701784560383360810221587761641084793831230494335801606937519293771314793488423504738619720407300253217843021726470828488886886993754212077657633322125131437705945055156676796753956069941340581369766316820203777561983402916220385074880196171458966315270445786396988774804404051113744073128517830455718144383206615126763545121061830891300399065906646659614397951138650998770569675372483223992882691810838785378507302165996870254537102849655528659619247657545128498381303935188044134893734970879008446182872600108824367012548885656810013804813277273509694878781617321864716044465444665328424702855091984728176960688063180614436041678650264006611395718407186227460416456917944572187919399897689572880323461225502708913617819072514379904128083527388661497763066136929258320756441320753184499544044384814731629245169036649540884030865796739287560587478127486888886535415732217493880835900844632645233335284724829006630839902827751034352074303759656721221305064048965460925847796523778906209329656461307018689447477319564725174530494252045362147826405843741954315643628243988396465839127467162582495108452469586701305874458081341821866117448039344416220492895952334877977434804732382512943060299669775166791443169240186944707997489438420914865238795264532535882499705012908415783592272003844245205697594868688172926737683304292553462139359293397357231965842386491459726849450826884791454315134339324834154722117920360556458833433458839794653471421929248665689566210677284696512304845586812649859933433412168800471830219231859271564717988322949099645805980818857047042634207355673741637589690793496284389900534223412716023465819609119916509545054724713650109533361843831715258314040903100533272313036079292267444817041288277431794681238350106035593536165674724936321896720017122467933596801996022684154688165775687074010083385938399384187670904662149974198498297562757727439893274061644137987073154291213484082720192741375126844491509390986838034762186835944751762451629089556849911765742257269472476939311220338541480390635347335296573886723460362857533544011074137138356035680373351709123733586716299143396700776955289912482352959958716350152674217788306022555222011333993086491523945366102538165865863110219841877720098359418871480479138957178381410750160369510712990910578943069689629283670493349995609326043458949240262157212914653895932889837341808680426166631994527751668943344404787618402778627327479228690770735679665214295494624779037858994418608935659990138910885485208375879612746334879590006565387215591842283073422647951818263147225653409691148825429718565265616215082235327496867083929271476355255645045008888540602755807350739982236673552015068614884829919930390385191886605865994106141648811445044119096666942257668739050665816984459181549395720923735103457063604940112007115532853395127700713359062397515751551233078158353498315619086947020806315574887738637898809377540163542930511369163531134491594373867863469774160037031024175965090051886603060409867171046350031700971972123197241999136879523331530497882271627407487616713193145857050555873583248702004722212297308063080415274278685192274278864292152945000650862389161318422316770903230724979858974962626724503144749149530088245183103668977574994542490558118374132019840398503283061363463857560967055493656749193995598892615636332605519171539714583207361975502261535252606912296124939840054667993588242608393297878747014517567265220108223135420442512361979716908828338042526037856926527209353854314901330513482544999738254315632148471419383194950877415668419020771969488399902600242455608077353455492083646434442218807027230933472126861548201521256497124608279982202514332326940704755549104671129078009481727274007733268439151059357120667451921168990798218280348225335686680602444337628033871556697187850960424696520961402346762095623643042490251657321127674297600123179721827195698829903747655641625355093239035806926876212494595922158668542648863423445055523508037346042155358899094563588923453500012950513364398760389155623393531641845988996477424453997123870906992730513773514866510763276735300053150794807986942128058572783766549822012053181735411519725119615024954030225051954149150310569797080211189118133892517200506751765546976402256307492664794311336007503826114370082741453329862467639741347202685229151276516209675923507058133997958377383610651012891468038558149582638229171765225070364402355408074307932518569601254998382162250745432341254597593286724443256412541798380573298932285651582875808388254410737093473142448073492448970377990367434687433516759312263648409020641297363439567313264219592433972175318251023508943561294447063945391981365169371201847702345601640652358838933117933795664326323225825097603151691195281728905948670886604318458085563810856905730011939149820827722111851912520267061856140452910960083890486748752173488502753449716147154001884927886120552555327972652674921637178366104716670918408254784949046169840812150675351581527999191248766103573374038880579954354219316316008832762141754183901656273516893851418094648539407387613973958066335176658857420409408602448535022930280543932431128862034884522051009570142899371221940697135799149160496754884090295164112671549740494701290842254309139496970951367135852343501998067870044210314673832541651582633581397039800169597235335140932320732733456981514091428930499210802627516655549946345296498818874896347189896674564356090877285418995198211591831212911070617374194780180103052898312014055733575814733199023366686197742498528213817441439443131180650547365243200879280210355390268103340401057618471049301836060122204145743072929448883694995846764374863821969409561155463567501903895810243764413797690161088891381776620077749031925182772980867816992496874977215462830573989715180565770334511193534513303287229319838107165990767586547315049769873608473025940982037897383163709655409968560872960366383628672416080412482006498490537374907038028697698311521706595022866783604547897934839127925241524445447837594139716925101768275291089036375721889990871239921588928667924665666511900469199242717324272302602684490303025331770547615465458774031520207295901873180688525192757947811136864698857707575685941429589368266124523189904417600267092687823755600375109002928106858572754354636518990099370736563554547859406526916079210805811296637801610331183758807363156622694396055128025062409486500216901164419706029446161185352583906304668575049592778083105180219681702638967074315285666543990765023678432288798920979535807376078092322670802543348182135220795459782852859821765072908703482517433400646879673419919186581466489757948871486746452985069125587389564892955228692157517670786866932464320413802605858758226935608437688203132792760359333358887762374418107543559005883744832033541101202093411689823461625743739663338219535452519121158421391344146733324255344538580713568957295979415855628986637893951079311262380265875567350847270890009898268279110917808699323394690212534106327763366944956809150421681649219694976301121630223427165373295327495883884811111168257550131758155920396398296142786075810310248183399011314889546937678231168825497493739811173068447225694341754843921488082515991544586422125338099973459352836620366860131010127893650939739943230825508897456008882751645270314440989270410026895006289884755016332531455749241762537370493261840179550138993734639951254510200181161309439029035005143661331807345051360888475963558357850260740025782468057904672070458118718161447875440501741285994706671549641319623278812515403324575124915718590277780163746700909503994925661823754082630958467561328251515810572051142752580582321776426080560642346457049732920484176756014333381695634382472320539347088537712636052077961950032899825773186329726500757336041077108916690235790850933737214747264971741204191464397401073771639914807860778195517543036088620835804470618100967812108439088716147361436243118658228669828442920548354567274327370978778734753357614802977756666531774913290230055004084348687621240870447490373302550248226158125132811356999275881015256534027016372896547985888250370955655943026251440640337088937402673093010573390016175827062467734365511395091688351534385997824626672719488607489636964173643865376216642114145786956921014281438087415187966545155253908019949337369017096733860693955468563360796779767929723878911978497155716464903386828797060510435904661239335625995424278248727722352369095781525395334922794104351125033053450402883821167725582549432455113459190144119658981818339181665375570397585398576976501957489608819603782959313421790515401827898533972000970877109315365183505155624771701850201782953104912826855359300219277176542443778378735904972669628199201815877376706755721951732524688051364237870836843543263655475373035255217129674100929279273350922959194352991936195723991130032632170491156677081589331985030458872103610444235565321297114873898585250029175570940117641820260647210568097502276391439978165039924839557251209115310927424741947209841902664438602761837501472884049161246455672606989715802831598253200257666243553367575401205329518246152972660516617182410822712953243114913550296043568189834164023256025663690579847651541298953027624866178312137888945609266817498214258543558777075676970013798730421603699850391946478753819448783178419677001376792078588944759633866278400588115842984068504072507532774888040372886673436109896747606178399258898676306737453008879364562712492320978947833226173627664290502650837588830984828193002044476142996809639114086309016286297126347874598593463285728859766963466876008541215284420250547559947951908333370602832735505259316775209887497095450620246337156779563638203633885357421362411998777976876657918653763992342335878870575421734300295781992529450985516149770432727703971603594563413282339543759548729151723073781302154419466534344622566418103205401461426459518897718891134198440973223799622942934205433824448703185694486188263517040583103207858153129352279008491959569671832003271866678511075650184354561653570591699236029768273986825862500163630668907978586225156793272963629470503872071550815091048500131087663599738075309065779016606396606513330297398271694024000458036527284542909466503634805232639149780223617329966786991382724822539994779106276158037469974707437339547911669556276053100535377137822857408636597045737925090241017365206281523465987267244548028969077235366819557801279676195559729645719464287748874478142492953653421384368820899348507843770513078770900443982004608718765903946433719177830285226877870288343052445077528125641601581808999144538682085888336706490538134415447995771520799359503581175888740837631789222547990606988636806902926492833331856836117923544583908745844874586726851523590568855250534828714750318208078269540154135128978187241906149418220093327631477344004689153966979482859889016218481711056552416081423306616993546401669681395897331653826312508893211735625588232188767944472351699157006462841017424335291139488469909977741018023150034989987061963722458220677440303414471342069260143236279722559034369805482905640031541571377665231551720095272178466309687735288708172126217132433166727894269169462193400906632722087911085112824713836565485873189054682960661765455063193750497737745020554115154927636944241959907548953492032448468043185516322953394723057949640615349529252503479909863271423492718827466985493820071610511591772299439906939432696735559112546309621146196200973111299789125156798007103114669006499451531457384759567451822842919819027151885733643473362938718253455841304116938865232070313484281651861936897560784784923121343695733104495534168999849036919203530966603111429115270137761241662747820160109899837824624026648331168419969373699444179083198299428863546136983405733249823701792558343697255733471412699572802749469796668064676065765597859243688588217835613067272978905817931681603811157641764146439532733634670306625751373597375304701895999273949881212386940562613908657545742362729781921727150517402830665519072886796582392021073506186615255044303178995318912399359104791134258172058342518990825166280480568503340402139759137680965515662572974637842702730629868056736608223209447504102769110775589483268885262778217656350566665784550803571637396609950975545511270526443385610574000468270138140899692384525804123147064648765042589487517605662406267920353541769621011959908369947578585787625482996588303191833054753249839062548958622389393192430544514414041058193838462244821009601398727990017286557369830453414350784257123635727674174239412139704551987130731125112229470101516910528377635697603525750606018368690756312841925655420656704930507158000425204154974440527354225664357538517235153945270771630230720054385412191100058571787324205222669633314765985543243007573043993978482537292101864823502001555789121110554902224436680840520324791345608801220281460952325878734373722883763300302473146997355111256711704100239917602314191973007638542696053031393482235375731609932512481516632826423869390133772608151509613766442504944073438036120168354882712538373823167296702116729901335933058557660437883988451494290166451066144952029531906467367709055874604684290999204485440037150438264660820078760228115976160795392301603060650936775357843677867644189759691778871627483172303638154593593742498025867589403321861491713132393528898742482120469305359706868989773620025044198301901819529669842724130667364965250846239911911621967785188754538696763532589086052697178584821189556805325070941105471474304511394690782559667331282515404475345652589496803471427595124670987746423236376357348983442513020968049826838116042019160533282738219626851884897494128498638531348660548541058962307755042621582708493064170870649686227233612732950390277817731316752664561965651316142397558840696696456883363561639893865738093861524663925714446813858049829789591863909376819203817120465623185923925753625245889377014387640122426352239377126131958076460328902417037152970657723953315212000361204046468204028869237306211890415296266217449273627541654130255000078786629606842135903583677658435632551764062829854824950664651856232276925079061558431523150325563679249930334830889517823143413597843057832414828966473944467213911445165812821461580416940713408471794287459043064538380412396722581219729449265529302070088995498628711556980026162850748014038563789158809995530130799827639990662918825428471255708817230964669296402811187101216273243959416755289782368642941252047769911419910261877912286850541484954732476325235742454589426614390074456860490849115731991474902066864363561516368204282997702966431487302456270498512658141402866049608027915950389986495133972852255788330292756867268732198971797775799163754609169950660378707276908700682631438520824247140050002249725938024622292409156416517099591205625529051355681619374823008800008365992176240856010357609637094182640648147521182895125289572755886160581953719432076084265535371937732632317858710831606390048240818031536094815255097716490411175867058491720839151372661982976580899626514838097279561658989735666030483158547605575276604908490488509952345019790628539408231147849448694147932380497867715445210165998239469791774310259540689478561825019324393466668073184186509033708627648612814144391031190103427461765556750627889995465733622289564212285383844910556154989078610213538675877817703596875524732777670404735565987840331115510447072555625409417722703687368815985010418125882296489393641410092972183160147342315059865972387314183274283224140098172639360985862412082683007199512876099304198523343900026547465467064190749511892561421643495158504475298009155058271413286040866548954655050980768281652015192002956513550742640693808313714403525921789520096323167550903066558775823577461647561015433035784049711686565955967672901936368294872928150340642083676452073295572530351205070631555860327600164678767392057796647079581686206251568948537484295128657490261367503726156353120476958184177391962042073739283588473487611140391039945045005551519054368319670684339633845501533780875885869948119064176032836034336281233751532208743941588920916874388145473638231795116922277213844144014405969329405756161352509008019929796344547990719081154405032936683511987275502340368594673161905508598728643948156920423180744022624740639617491009627322520775239047387791082328023656704259474740270331189240186966759948022027435271351182514582582676653921511409520168566258515703900692444117640573076108851261856551729461257600668080440486202388878516689038688104005756083182698911561091415357235682495234476104318795505542177451182840055808916848896021170231806624994906156740160362375464629208220127377480813616672532958739372533211180894855136106153238238030351340298435044068583730124431069886293767070191171840295123197624593379485895891928061963289155782754656004671506954227839186712798050245227945508166246866023392699870130219826133921707762566248655534627833766988800696446283002680551973368994242699492247833797495247793189872138950642105124963252877956071344352708890265644548490742590605666526670422268911439281822438754710750039692672681536376228005872884803206612329325884938034355833589770223457149670011907155212292025320269772035260694949207078661493325452113956784334879039491832005627471420501070548526256591970050252121084479590671239272963183192117479105618245984101975066342451193767800806702151057135980342781812621566122353099912861574431047042221035344098359820430254592403290428843734902617230365314732036173905822357099150763201591794292681927938571150461741122516479741057757985068169400767581364693901587800626525870247142575308500196591817568991413262005427605022724517489670909901776965205736795388613462561103143783540301288343045369232630284225259335483290312824615552943899602570237303291020487930770775061850510590752801600647006619983134249652872577725377054095671047534539289780259557510426980712921148552636093093763184536389197926323865456728424218988820968045372227141028765727364533013638054640642577077035667253495229432075087734687550300763120144796689888442005950799829234051460458316277367114844403304438941992042060429681062372021749827158104564608892150225397323735668493217445915116862438436797329904006929535263798997599740675026675040193153057045553745916473132705256690444196468923517028079030586148835533688857163100399567798117708016183760921692264621789685046013492032879045872565729239144530724494186955289536190818747158242209435044780575700489938275973639577062902969319404644719288705638580953408029059979869407229380710872170940786826127207483334787257486891077025531474066081844450509663530045681233706245350176976170357585717211046473898513738471466744735291540840663666613013174661867863489416457299077721603157562350125974251441697878564625129697623951281909476507668268010208778664568043775018897956002532967477692123555643877254495278580863805056007017828164422865352535003565892933976502338223632331324533947418812947607154428081157944582664204218265497071979968295934715305625184932747974928982069962387734957950057709630197124134875686967222850371315213402050154275861252470806082117448278476133279276749837787435082557510126679846096494497376276209169006618707561104444269682385490914584559888869793551163568536553914651848563531302096317370359889707781966775676303803401736670883246564064486925268662434516126586174642948198408849418314610458504573187591784117348324451446506698548814411765508321610490022539515213066402082909399130454425994252622774790193542345479606653138191051633079968013151214531837655595497226001491437935347072525598423384154911325460410475048357522099409637969139239292120821545914323700242681903347502534673898077682017117062665269470747930329680150635126697228377024568022873389065397721307457917373111661575492735722566269383320464279682032683342206301515499495856389731266567949308462997859975138818934726844853502275375747456334269797599571220727309773817022208475344189048444603555218967783226454724973113179388254061120526050300582318753103778898996339839330924860406681043278458970221004089141236712982759448776768632193657131229185601620687934285327646787310717159938332203796776471218666323786268214938232848200645670923616500918548545246867666332562186886150205839339008672075827483451290603964682215201030314105338916262631975494948047563137070800304948831761227700055671675695344813798717575938056608095807139481415438574793546334568916857560729291015238584462201182801331933244160128377351333961259282339088412908814755844242621495668945181544884612040433715565758596065891972524353362199618014065764144412291388394476323128496889525476034006752431978743534485518738135441126980114955573489936075696570854811479332432112707943757660633774225469681209390164911205151931404358127830767056906672305729253316754125958193141587379277535844518533836400881679785828439026302707164650536906967349738061684874863556020852564770048721610541390534704800104525166255515172399374926936146223750629594775020755880181277146388878489193775124305359926789313455442719592727687827712582850383327448729409857626814979214420803379179248240830912315291173021951043224926632598090480096210789259856908106973719471567020852410908795705427915863812961635750294699378123375998126649589026868296916425990337820641645801436839965950074834853900967083356292246223327247879933023396437487924866707793748585177292518211989674045455253086563148897663354959466682825093301061571226146575903895945841505686924245629676113536436616571673362037831254683518080585877023414520334532616096728358838093004266680410121566685435065679590325887223784981700097492278815555596461166799755078234114429028274303576913081730261697936291383126457755009502455900498207521237607538992970144725831659058506582052580077285645033308628853224543944579008389821029071977013560806529872561695668888444594770177177032419500769876683388216099381927159824208697125507347037416197636761030986125823333246348978785225527591231219449641006827483818319555384207872148184735860334415178920902931007108342728500568921790062800887358159728664434873054648054333745979226183211369585952146540619662571917614518161636713588787893657328392568180092525789336563424545196924733446292283966870626660421601877503572547506397246390411696592812812352374706252342085371210635150217248209105762325445813334446024189676973140618818158488542706621313974839457520901208364203748790266203180954726685958890063443704471213642788679419754820371359307809850606009194904384828017899881424886907726373137739321055214256425239741732343273105260206492421732658073815249568930114948090367735611089766002061693343491404494885035964261150336800794269133006124166552072921267381772210558298363632946264387746191679850848325405006766389618111657990191522517281360952645327382043749077361406520151212346671652769142250025096589502870989483205971043119392112304134791708395252843652755791353969344958733783856024886743892402781914486630885705457923269832500369799470249305094743900049468163578600445939183792059372414423196587270166079769676487143272029187807827216152562468357824544911821068200011830491496441198164452456439539310202095740556792740294505028313958263606725430780474861306989809476601219114838478962735683663895453247863868186088407749013602314536963986952079912987497845828948754533467202257774770120809635154140605623456952138924497344853077502546761971290944457459281583631169079142254496340165133740674999107396194689516410439892098764283933612974957823343481394133282481233602743346005546061377069252041197067545777835107705440995093515000645053003078636797274693406501183575761006067828954813657458997434889880404970664642777456385980805770443830781500636616795313040663330127118100114611123828921928935005615830283175234058751469435672834397082785496919324162708533903861413289188346488108043572604424666210907902170897715282294200937843151406667443232373964402737329051627787800966594518812155237000824020892588282199146975842762177016277344076859139386409042513214416620561469727111980327355473006123719686699438471133199839816445760955063610343981024558118493035756816062678576804278685129985401870586312350176031361782126371724202002452690487183133553473688351691411222154289075725315461918386077289666081180413238397659825331444793464131855663447692983010990879166731749356752679912252993646238600188006158983316911918614691307674959978795577188194208374082452798387992640671692586364427087326817219672682433201902674984762311403065986718349604645906049902848387774616111108999263908794639494822729848622082309420882494168458681133166221313948116243320024884187509925764483000452741697199054032164272446316658832347281594989469242038802603443809371462160988701722447894726030823253557133002581111024807108441284301784733025760936039335077053637460094048953624239831777466080416324742989357135018838621797432085769197005920859862091302596428345605927933086844782325361793448623862916457020545828971022373792477921463991183215475239135678091477396670693747938718774219709778501925263964969044241305138136753667970468308002859724149152201008011311081775572197565211457091286661796604398156395873408052991386911139307524672673719862418092257266194963592631026907754793176203706231433620230493312678528530297939368650506083918327632582226200360527292531686371437568225137012037419082117043040053954162772680113019959818101081482504883562951831911777312979132604743730289041087016038805359048653613804891332557087623684889920036416496702641445226000299927365686643608816581446309996339525712330870526336997919281433929364327709641299595854459657279171619435308877083583970788632932656872686005956126455796778773593550273939955775949833891888600632259692939359491276885726714006685785964703285240476318162876610525875819715855841903619197366371726524951369489070123602789273682845019006845353391274138791335867019451827114844644750248519143359421170175384543398604023436216362481152974999772264021477843967295501869157969335419947700014445856204844195721158447152600782842896705494331673110103737875592071274149035057386563231326812297837452866074790765210743462058782437367132684085584590065146110822677056496732886787877762568530104587409826539683898168033120226432358636878869767996073035382697767006141285330675022358855170708632473135032745268449076624042992475176984515466283881289566267667612926925019035034863791797270031621106597784127990395914406514178957363345631326495929982091027698986994113681530115288612077847262157303796917466295724296937110702244818398663240345229516064704808156585804062704565615177053085295688923234939742897837427307022693580499061800933643055955072120167089231601874310546862641076010236996483744949770354865609715633817740030288281895446784686232185182216348168208627557659022809816270882588954218574389340706463017107291945448872452119582945819902670676858954099185272244313699926494330441842079997637531179397423931233915137283953473149546393107862893229693920992529153587732592448263312879682979196899210645432430336415239612499165946031877356970291787079483001695049668922506174258873566155429259601755053761333866108709710069916635691891677420460611366777567104264128503576479596284640922390939971281507689559356407018659189066885663448201755963781925410713993655867736693515417946848735533204885252566176857197658742935212603892896048847073159113610370386358973934050042918164612226148467789085337902286219603045917101993689010737194507846107053966663737985966227343825135140626885966238644523782218492139258949109569247777637410222235763361006008898911647809753574893307537222325231831897679282406777156207643380111644981801892597678654934012715285003433492401662733359121334976407439851206400351593146803466768503096025266322825576745790030732170603482057251787064340634292912410713487361013145905338624474262269344875591521788562705635250065864530015250258202151512661296861204864193374000044280360619539180014797591308880783629853199599779366048288328606533243256022469338112071108067339802925333102036965459175056378201019106959816614032689239444777223106890484782857601073074205051622331847592754385778329700565822180458532919542268076867471248919730461568340715662056037893221884553345906924292171222050888631737343837078866505196582458461935453240692616245046781789962966819974619804592772974488302460215948902467237130881202438893329201725672182596998420089975006410890711366281715242813982776798144359060428881293863264050056271243724316674792783623911679473744180234102871329346449322742058080870342259022891326755391357559545963378304358851172514288660047022010692511668627671312445988867594554885356628107857114938508042514382467245892363682309024059088023487405350586457935810466235911506381447908966560498416279190425223690460334197557541872303975604591327246351947623311382436657873882223473019097675034938813604817644680733833379314599888668282437780520402004227744929481373348493730735778333981523339442817922139308199032624230989381287616258475850496431218150437501225902748361955726800573888367792863139394053519968575672510323509192485729925392014535321590736921420128950483541052404715720079838344718970279585799415046606677159975893971115727431863544983475848236140744870658508667282740712400559120615779931810932064293837413776482672465717144088394005047934195918100612411774023589416631255819097352959206632619650485386662147387171683670465151329458373905028446429733024769371810663494853186835546182296598241178746907327402100428296917824026941407659694558264270988826955263151943585436823824236321505815668040864080508047114973425284808548395264927991064408046104450477870581010076694384617778894025626364586329462056393956517139390551663859186970067287665953871046059759235594396198325122067478849564627162639259494398826281756192959251713295414224849936620261310302925276399473280247018480323436202480137069194079891506497573293221966670473345669229952078100685492367027957983153937032791489855571555743933398614103244348434074052509812541815979582401345992016273301045069004625376584946646978451978591435080813095047986448259408027177907687648036431519712730444323728345877795837732219381238861428095449444084542738488457232600119864790903073943871725148540793684540756804902950314637769113399267627874919182745712038121826081173636924711382307639148157844157633633083256497037280849455947130750728487399595650327673337675256310354284743863210403990182579728463245504296336058064483172085873000563097434993137382051040747370804718897734774542985228416066115542861979928419897141809596387595977623045078043161520533057715329231599162876652448502080513067875587120709560442582126555119025460705270716704859006804878328262368183771381113362624710830099068270287382547052369447492895938730692272772841082640912154309789759219144465972724070705915578657543142031688705736597478151380837659147295202915119770371166418985967768640818225062367821797506059632173216275284563381791698401418007885699065986627739923462335706566264312334521376094244073531537384568842429848037539298519045443194625745249477333715297221029901244418470908232987878645722755038439307448228785099083488220124155635549334317274579910816104413962878437247279591425041718186871266338191314332331150004271658154344820708353249375488116503340145412629821598784098218406181937077534541246551793826080517595784955789471405298639989857081082152039378584547651150750285575634294504928733096188142761795971469890823908036865430484711213110789523134416717897758925902739594904037879667947151694562306618797942694715965743640103537047128393762649371258898578363658908913756510178764923842351518922060440725312494478724567673318993052985574137187483109066631456894995333951276475880195236389365159225440414837528516867164845831231521975873334762031709628740846419117506964947459830341563334188524750243616035384177680135627961253170133615950318332340702389851242406324718523798433366354037841671947612028694041308168949265034374159168728309438227709037544424667920346679054510626406398606172971482424564058293086658865431980108316593581302541124745438326795586177294403176225316894061704033347790744879510076286248088263946888051331119256170168033046354672377840822735658884404317329266422819316022895388650977657537460960760480933023926331202588571020356790253664889220225888207885196965585680210957740134999991175515319713893122225625495185756974582007349637796267901283475837308926491004834214306637843765725413808506470835743387150629432365253855857764592624182363069553215115829157719492922850430171022380737408904863381657907482281626842649128643145733793111777152222237912397279141261319217395258527541851777348577669305067812253251809510855295984742064415220813838255485864288163152484346048016387628523158869979710409021083979620433275445250172182209794116883373923132134840094622695979045434587492372878495664637116183576035508386507084679017662919058549597181701132609444314823616572351922348636044516182236701297586924913849131760357419836473602620060727754094754479239440667799461211196923642245893298432700999466962686596240644220520863862345056490794077423125660177202554235755321302579961483849381247730306484041994098120404393705614416308611337923496926165169574683888813109484390007104289365663263079516570706198149909838787364322896196673542761297593587562849572501544526344615689522522264466612416177784088268124904833052555984873104012467581480034580581614547186429178840253330901725133482739671348811819845188440302707473220923220814334168635172752967595426757338246718733566670113794689132281570127446342588598685704516996895984115982967478806834114453356582909025808212944488058436859893064203043701544967550927566534153855743155696048052772173020465306576741023608812213689760441594227782584946255042772256052645280401812084301367026808487742144173258388439029028250433899808009171105322167418040748462326662442136424666264313991005420079755463722215776242727328969004650102455245551656322441533228923535764716909099191041642098204451846152594394320427300204559676213115803062016244792034701754260783850222151894054016243109736299476586036885351584523042086961903382719514090904649017831448587105586449312534859019168756739015928680928808806778940189898394117150926925168722021929701852207308096944399730565752063419456078068969977741675607666795223572067870578954005715125016515437041403832040074741420032023530394544963343225164994972151704448028395454491421551099711138594110862399931553239611307674527819478804227893068637662015351337287728840523998879432996572302277918742330200389595334563217444039892350877079175943299898336260774137001819409211663058691890875550086767981116753285227751243011622980742097696491882269152762241540829131600187977522453497825776975836740288364616467153236107115411970161538423944083929705677408241711987456690117989743013129932575626511431236012210133962605976798287645992156951741645096662031154771875869803602709522660070932501728724807387421592473182366701554191372218114556328672304809856491752761893252780497927392126504594806466065919730403770331929541842332046794381549352039900444776858625906977344358374365896993585713605609942621781137800052575100909417193402900565934531046241592064663930155725034953271809800253035405099666273248037712786350150879166741999904398005403054158296220515871309942549189182049581246342598783435576320046208215863575463113599924508148760152253726104494576821270165428042637715954521483374095255104164266008421751939601250364984811834378996880182305995214887129618673891999072746592738108830581749929575507196498234284161963645104530766097958578532144544992643569100443974366848462902392306065722124345687608314017928717541728418422882869966323158454410770951391900024291222841508652956938467556498445126862740685617383110774288566612218155457543387347593914685544592116354305675594351072023918890832269018066562111717956282960996454842135052581043006061738044778543110688480442045620783763316717217317660775527949586377460685066191262183988838245624601341068389590683817082830103776586801536768751559504523733226866738194136884239597273819279784749754276821626197959873930730573620215019313116040289518573448957170719820245049693397194836103209821047453046685975569203158093860172225402105223483009370333406913690380137639654263002493448457672456253911252701704521537107268091207385576759746359156523839873667397907594564847979540947718196392306828889002806433660312007449599827580525520300199734433281636455760135018139880939786827819287630525076794209736667677175786326750549327776338770824005656453783273318492523259275996531671123291653954829470975725115539955856859222418262893715126067728344339840430592732685071743054072648160493126900179732522409851240416593411421573871618748248041296877674530992493140145062802725268089976497767156344430437281599818524872161760015152594145215267417778174337607739092268926834639793222889089686122965595156627488526550559053157723033673829749211240288490686920886347370306144850643976288514687964308429550484497714989666405099767078983611967165045214661841833925609702040925156296971351632114315921714173417581090159683222944400162989823539976608714805426298931526406436464810113422211472394106034185396662686977905337998667790108347723737471717962636387588029736327375737192719365731469963278718074081546254631199569205240141350788946202328351303398131990237078672705662424807068955937273254038712183619539955695226280316387264009218546403575949085640152731001231584351737092207749742201538678908789718159264165381657018305798728947529546983824709764197208403075179715458853929768225601437812545242634626364284317036096908916196977877406867985223209241430460199810195380429808371384645374261512507075726875242506952645258173343951740809802280335312647121397597261221000016898241488876673594775219969536817621626378479343649447661939108409000353523209684898348697179418864035524101296341636608106105443813716635174443602662656373914469775465465849875583682188788981612453154464817295921535349174359414966179863962943477758980423709340076039914451702355340331618512231692073860863389989997591220288636013398711302770145707026373564079245068046210222566239684624726783378723742005563294770286474169623844308974120025249024419664814331092340477248395322303580747567229435405737201707031943635296868186581622192373861852701849852603060726826542920865092882953217480380647010165024691318788934909977953395813492078144183514546414502944172900380035037773800211170046790765505439594817674932968922410207693631295189919588495547122480039023953235639086727652009755636133759644230366006325820703155971631866602623414757596265325116787362888157749041130110514521008393624492066065621801955475769531851224645540224351737012086190193117883659017594161745234978063771359914935323045164649981392795230735280743972184743426857520330392868105582214825324883614397531633063483959031531862142407424002591325850601281875766493146241012344039508304983682881559686282958014307530644516603792922732482511083350294211924382108783874035131652800335180167888699827871358055264899349751335369013749280977481178943940755643276488044315816703849758545617680054917699151318521108175725055336891486189475956741390743977800229986667049427733530593273077859618735279699871864286317324248221124633610951408786213498288359903784262377625453824932837525297349169584360469917449063411045139973918466706748688580276245759165377591740023297592282988736804266568560935762572949848532536027659329195675789124121127155607374070683855034744332941926057742750310640359586609790041411554772013423111495587412993715377585647992137438035030005407089960913350175079757709734297237213311266185609800776779113004378304633688838738367296055538668416771405064718874813206238512020507796350782979332014757632804219456683320421768681763957734589657942323524628308696135753230436107899807645600190739168039830523534188688791697226308855722037021651654755294696493088995408055335392675532879341320086536240973729569680075007722068716798863026211992826982842522586088294644440135298047673602147090816941426160016119834540863075013392370272490731785657833644790645885011559786700048845189108011987002598391767465488424981537000884902896587070623711271631566888160680097341140436145536402031899065483112177479916963118267213919537926083424302647791638897787184985850104267001039815979478924980121311976299161583175719714742760699282877552057027715854008949578784045793899296405206582478915070772900654115349749243738794008456152578340271134070335745446005799550485259529336602959500167896567620241749231196867177118751353952768504443718268358587555944642842159112304019204074238922363503348031691333697959695992015580947927888626093986585522289024999570755286140033027647182607638564133939107510669729528990856304919428327166175028790218518234775340472799771726005385942403162069056899838071071702438779906726522414505341537335842751098456559582212747134514013170704757246173891506372161039532952117719416142904667933703764481886418294945454295030520629098801515028668384369437388996443175088678650227857954646813041053587134501365951737412809964412564942659441503866977625741478092136017957565750174447749488003905671586776873418490757207269930960761290631051483299299846506848464231251592320967520668382912077956219034496578980308840160737785789379874380939580941525664594742315321289711234613824695837508875926699535153155807674082048648780369407004002879207125298414603862351864072445354901800510276966663587807633350275225775927823974293293886311448039063358582018191219712851623366621800572979663824450110615647013232467351314455092031358569445602419312032232140301073328113180008460008605942967397857462464647764664394619197120652876901099143045030736553816431603018071095563940395776836074751668807855184275268722967800583312880574468999096285868965006981607409549927659963268527252476957088684495433684312852923522407770811404069557593706252678599261954509022200735905005830533150929669470426561738985496240914808920511973280319262259986864941591708652044701603511535271557011796801438937406310006247446029730278154119384669538793578161512527185710852324711205925463156985369690728477832740754391850826182447335619966888117226228139288938572341336663164720061585937256079234610053630997673715451315621666530369162908000549468723150753330179367449127410330403653107095267872585913975736788037546240000269366357173534047229485550451663040735203991139757573937470856583802865330937374365026223060751958635092943008102498952816246074202891442139536590044730471663003929340230088716434685579630000031513017619543820857161721493346977947235049178345921680972642418873180476606129093702004854013755823519747872660801908480022983582484046381421214233323671142999401673388745978548615899983343960699992519729817746317869731273693810630171715933599094293030413329873900681945106354873816763744319878124494526883616379110698763973957722206591306266909628373005080660648493743918792363461603227532552928753004001364545325555549522367127714057488715212163148764355738658131785994363070808006000101984164769200166578748676723117076427360439621671102231187059789404172222039309423353687938061067835193130640821857148791946652307814857291784078731092955115650195772300246814804660971044954818834893168085231105710983861376856397289901285581991109135976560276717802301644981487744896728706483467968448189000486447317027142113634802774211807657709986121166725543926078852531805134063365643283575560200868293836614162632574517076693126684706967359010378083684413576146258391338013584590698739067264495455344896987396273515321437207486573108215517276829124515775213637451563761980423713885321004353397556994318322882396397105048154361592673342403451552054332021002442264854571886277484306326153697325432625780893517322758763340769513256421146242317203394260772874673516414940180660209852753460436577009809170541874057265827337783875894020910590603775805174021868608755428139651057929060202911170805777392499181790265701049482990082429978202660663121826484216495705171757740108425873812347221683745840726303761672876089822484647124290162879142179901468220081123995916906876642195674533080450253293863888512163777363159393969248519761225236380822779812392166365284831497297091944046584548883356459853256619195241381770837333728180781648576165999597024911485012588909536332223146022307525663600429311514833685827340774771746101227981413271635387724152349966293645576158690248064361615585240903004720523396142222481395567630454385794993914769651758215441980452464070719396134707893482125250843646694358397982927077738827227502042908878957663517656734076002653445982982058865678694729476871114687089091503923440285157344779727357437600364562302994977106944901814066976986218830723296282218267873896252695691067496799135216055330826362662238082533109452308056870762973361383907046967257061522416825391791377987078530324806178452254840315234134698459801366234781469766641772577276615643788291437513602415749400499606383430303452928838400760985088251917371158075169185512540394893535800928876847251483879189464411378323853198050337499934920346736885434332484844532575665844335775324902108898803062251257387284257223112493832330935503943463009080401820530255866905967346783180322807919454549722136607273600667353366228077720027427779717831202949307084557737256494845858572313290655941419007605522083221954533148361488027659102581990448748934888878808580954412086033710083475250563120620203157884615176991597374153069601091058351521105231597265285220006428013643191775901819349670370967330976134541511553264319079218131609701339118048665973085477057837144539008819498059302294173185142619009881455457930029454622905647720439226667090251999206180913769725521110417286791622293221095284988010826058146941193275136881937112177420694862355916734405513712076164857753389456979807948992763128823199311266485984814415244015556063195424925534163621530101056764290088927916452676166525419798071867775993670408144833828440949483986479132222329703590564110809129229098949865748944205332203470494007849311484668191423713007746945512069965754674696369730609338869836617444988739014184067448009864106892632370548869273423163303583165196919202861050727146109448879474295058903522281443491619449848327588455222022102654352856420376348184305636243796549431417140129594261538092884444620900086106050601708798684509027706186797807702606022480299206916651559116229179469568439262272990964569253111150435082224942980949643505431256024169174004309445902687768680259279796983769874983144293089940231845535152459016128093388485154300989090466656579239413469698617136201561972373688735652461055746838171384325811499504171180665576499373730587855549445143786974834871895529083187101430734224943764449805624046472163429701790687272627180869907254022295675008894694177164301517236744394525106216157797241125390574426672420727064743796611248346452919489685228869980920568158431884548350895899090011449027702280597909623943582102715335213654506112602910011202656074009343074881184309704269345770751466883570362178490308760247290241393806982634511033181676784520660070166794466666527864856737366203922886180951203904913100956074405072482429292451772311939488759640630239575007663493789486203246019059264751947862446491977985506990963922506616091968575922560425121759268921439842542829121486809661438776742629358111332059811941102066382913937999582569001701144696144610532817049511755872273133822775250727620174926419565652068525616150279609895079019732092514458426915973095823330415294346128130077306188256628027906477835069878017647941966592331904670560923172345247861003989774736996445200741476280312816156046930168597802510179199631650032445083624822182247537519674306310413289758635375909399650171240763415845102622328824261113761271501793514645777027022893036103767094101059742520736575333982439213758701303887062961100617542016359427236247531433763768006102000497751316761996592816622341166188394055328465388590502347247484004389396581507309588941522444044975549836655749126063763266210010839191138305049530648405707183883486407770897460771643217397306544981043627238617245176648038587060090766776482676873677296970694834010605081064853504561531755964744713088918197685060601007191207869087591940741859102711395948902678703834083142934424040213356122521837081176509736976072055487360138884728890092961142934191995127669762560681208473235839063043672321305101046064639363443281798377899200161706728779837580844361774494757721321689530646795971718685316437415569621550081466382908636531875576605322099314083318011903338417670913287820429074898738450772247927955713840910860162794811295729071341571111145874196228053609525987367616996621380251677800528095229702633443889350377251158810458161831655973641698152019270904094890398694106472308644394364069171668981614349868053403161989327077834504950003399318777131166756732490235038824379867796224049407646632930763820281462307668587309140060926679983481246748079013667637443616288146651633088963977332512705502207350329320421928270770413870052138484849822069482431940174010231679286793198053370294749043657866378614353263136497459181424414607261572298146893255903745275648422474362905138224940399570044988834029059227831985609246477486041630007903697906054480328750515688132541972968797205080095093467751880246253592366278388979697585552435089548209781064370579683865587089395976844440268689459398671947118586126482615063794444517066507644471496110751253918458402020029432898410654602866065793890054740844453198125671362457974981637282829033578133089490715069680936166516847458478890386543863068657181787451195979406072373190330188182548229849217491179230659254737487995863009928217413639445510505063243223514701531777963616137493052024253988409299636337879150538234960508053605297260644906520913738216161303304989886325729345652161509934466181479625836648611817237223055044349877341431470583021670829864135371017245848963954039523785536610875202168937193976526588060315490690281449184044512500571981990886943045550091155099543818212261666960906897166879822063156598499929163056385356295902568791794407282361515565697171978868514572077823915330449363267658661185573471332311772881784119885492539920211057686774554950861331257998530975829905984806763600698387144446597312175976702305655239590022604613441928609031975945232587870107458902292656238410972019780482976743702153654318188980725375481837326120173932319307348694420367972208474033202109527421218442431758822354904862074052165780239794842753447727323579501184493168300384142734505680924949875377206983159493146192285796084167585830129850685821819988177449489280279473614107485364999055680767827843424971248106044194957754715468587999554345747434565941769929305707418285735700072664079380100726669321267004888601664251597441062143988219861850101983338758433871940859754373398388961534911996446845182923995981334440724847300902474228541711347504408624677590255756924616397713698470837484382372345428118104032101382435314542483769235297211984800801341911466920157772490514832406075834040681088181853940495925418551883579418785565131351461428693408852298575938787361794191555390023741667522750124676036016220665493333503192620480519825014757885009394009595800223565373901957831848153785864292020854933330166251044097607580886698046722038291470220967001773865346240592067076318375394791338262773662628097129840602976625174607955063626793003098757955748182426690722318869221797679982298115093345144724528268780312922890349428433098947586398532495392309185561036165311262062889283572809990544387885427499743747557468639849235173157794639615603523259519007629474400110718819193414979472151202605179708769785455430493873635965695539490681378620486499779671824728480817679885948272973817657626360862093352223656067379427638973677997169014589769721641684984138191408732930615058734591201520663326735422444208719943132889443578457714732587459248616282197785115336034508763004513209505647080397729204758828654553804392535790505827994726873568197124262279480097908282690532108607686106437533806465672305101772404494260016293202521834489365444734026312793382062348957345082988150380693816221922583348296578790845331093339961127399086773003011386602504082499585881205499821825441408590048634188983139687084032305582730781776310809532941637862641842836328901961310807809090194847968654894197049648871828301008448668198947265920061881907962421583805292132389787721884865997080537273847353924935307734729543794668685698056896620298456932916040870061553061081591239367013518766544273370390847787258495002248091435319388803163616821579030262450151711676505832040978444062780132638210988100431416181994225573545506412250468920597636985127119986039824640662459686572603244593415417310408023325142882972553278786205201302753167190741737280255707002218804573504357699277583517805230518880105285289844594036293977705084971925703159182324560081908091489035970647206333217565384658390044578790879563831200520869106430098423484808437831826232706314996497682358244318089666117042819650579249367050976942429919228763654295314507277431903428486772494383643216151031053689983701163575764919175438883987085169817046609273308865949494234788236920716254048103814298747453474961991161375245396779597850792897859189661394326853406841125282249676038266193804101320749184374214181178285282789342336636211085602009450371811823905390157917719282792896287535687041778377089107264551633091961689683263378488608053216399724884554952922509818830157533576868494319349388100951652699924404174296281960676995149847848583172707968003454492083473418913926840135927013241184973317536412926189525664484699545709391250219731074018396930936142040107164427944660373426978998680655640277641759108455785126024976034000515359097446446252396973040070373208480400732233001097494571902866694338445067244965422830976945312614504233198218532035472371595386271551458301313627083057156876854238992478810971015848109033819382322171005093349856835305998168446138733374058386859799590262342199441155566444273760163856265939090889651817822370792969256499744528371792081514532020851681875926935183101908532610132349647088155455148043129339710555998998397077938983240960856364973848823637716488363212342938504323585671763553132274143490082138145000671819290028120253851336624189851218631006692792401533439150758869385491151971888785211472871902967897294131079254103925569573706517735876584707072012392044813069287282383853830443107272714835786119458700470637470749779372045576787431164749450344618693546960360477678954278527433824333047486608925500863534924411683391419079433534636635365156839724534120595364489557450446086363667611553328581814490510259755552249022898639786458236897065177330178320991528236096337881573087618278695304040910368476821404443592638550349540053204022403074031313396114318526323239589387622940381224122903049518593282540720021495647780643070521736056027376356915223195100357965116124780723212536639046416612779363230125537650551811589125934931467297971757473337087507408647202437438435902207237358085767254109298288839132265859866819181272316611942511604977458304763340334711599498967402743784049355808581845143986621444162084926918654313963335562309948546707156388844970512323516273673503367923422192689035909715456300059088871041322310895737070380560571873827114843408874672234880758822062591060354083539293374626894678951514532270154468365809441321146167697805928169884860340974385421902241845707496839973663833119046332840625663062801692845224634962188085651908560216740879424012072671115116856276681476491505987389707038282383819387597537236712389024051953600403313510461972341791200153705480184296558746046887592726155963125494839977830767496908393820784009778855843387814398710267806300472408367973895885431483284205308913440453480568065408299730253822923651228430079191266368127401152577296171545728423917532774558788634096388621619247447383709832203554038852087979438464876891253473686661446702047144809675763225359382343423027596993737092566245220486206787595226471563885540403614755217292032692332873692012165365533625717096669306020985497224531028069023058209566436059578381412605006099539379795029589356368996005112470948517266282565921020667413474573722189138425418760470989522612782765241554310060850733128955076007985175127828594760834737099150220401858997832332205048123551162903217050112498946513989257845597074034594305224186818541876882395459864396839644505364289358689669546022405208703492738251877257509833094614906094585443429811265591058327746309340537210841755297471344302790627112544032039152195281183729765153500984894816237587042936131358828790884745877953026673626701280204177010556062037736577836052581492272194523856289301496950897283615041927563564853650988801473755702467537008674318357188082211199378224174526417449315580159843580535625746226107294064231117489786745630774698800688927649793312178155286062837422525747132907567036101201345786228541786768380348676928800582785421695975334598884058648671644361165594588302021574537799011117452049347209877913694073688112681003401978646639763874334620051892582197740772502241963100361427702884798020760442425975547705644368663611785472653128086872131571047349764107051495158734018175703836813035390324876769980818766023478110374673671750820011871426794136641077979964538014022133585194183244180213497599338038005179985313226725078217972094021311787903662294911415703265181755899540693111369807741776827090995973912811021474045074011799452236380823951748444430539115621723537792870666674469152396481232099412530495101231802039299818231104356003110354551475295071985603968206946104002632435542718136562105531386604884931464908656635882143646527702491165356099223725662225288752201697908471151557246961973032891536183875233691366751108742752854168227008501432427833361528207935204862294930850990916685432840355099996910667975517630581873272730883200459014696849393092406746012056670083387173784060903955337749657098905572800311480111627885885714101166952996372601730185530971048170198982213357692638226403941904981377823125686913499886882061933982849058469362928674344842304149652576963520343093648578857438806152078365635058971907271798127052365552200789530519359876028875755726695744270769924419652529019268556919116950556491399300315624892612217797946261268461003168529600869789599511233236540137776878954964730098935186872305628300501280223991591682353598358347964234927526020372297241582271164776538318823618542366743558140803644282536652172196358640534717264949396982394801254547547765830204333939904675755197225779415954235528141603706897674472083410012223243390169458817164570959176250507508894902138393428938136324399426753888359929484280026670872814838829546514394697838462490498930806043038386921678858337741687843030998770948847621978075443662047653808381367010384390642320588309628662764662966433147398775930477366415170083566770421630038649397979344569341183424387579139984888596426703496760790189032544256258375993156474975498503498491111541304631597583612447066827779184858723708349934618021982660015936182999386849426989878969649453632096205340124901481669136904459701289258660556468752054253127459577804313676629906860747745545957778389754418794136252589139595891786504653510445906888361198676395320507613947550109578501501873908478617789816183594305933677758823366359121433361068967460368466991127998678019865275399057222315876684161133825419514916245282151678427757497825734729050798876416628837329386345743295006998451469026862982679872615459865650912887458583015542995469853068689044660022470472494135438298852804099942151020913236997743765276359955840244027423829744443276428966558617665821623575042526469568499923834218266046216844306913227439784559181365297376024219021433426577484246981156086166577574146158681058709876091121157740125588330394453297858768623761416447759488921720793575380139782207319692718646043124254102340505092230267506669385252411072001954619447611979221320702442524580025571930310571102426726361441201419258345413655814208773809511240054738263067080531285134243153502550439486365212086100750897654894178612274987978565260311208409574267112019851922942193822057035002793862444630542759117315797662245240575508084934720855914649156473948076374152538880624880270585754861171975608756406221260918151522944022739985025320810350685200543806233032008418107033801434381985005175772083741840346773894219242775246518482432359909733898204043901199369877770397159447592374724899510180773884051037448571037350326568456660218322594859933306484676486521818113429599246443604067919878366336892938046468384436259857666819388747286491717325955516001385857652079859109277002763851715351278679154222116011743782371331489941785107383970676846370561423146304252937747247588088490512199154352299113617105525107245839455901209173312211618501394317350062135593384033892844607633881374558821896854941601711433828213287945943306020903144980975180904620844283507803598389279896649701399351342624980846585151084856917902959730159866877190299886999134739298517033190509060822365387032405610027408242380785939750600767323767987762838038320225423512962812723710610758979656090844283261881577048107840886938686576710581883345259213052717665030003211486754940369090779866415063869330421694441234187777047629546003179096417340093330460260832327023384984332353928831248899506865116788051183593453545683545414690785559209031283675247421766357374141375915459785922741177404586008004440145318942018189969647201830372911971593696331116583773870693970971170269022522389166715287700398004348365599762377835038565673150660119865525264418305994295303531843082519014505407497570532136974758781320432384080679755874112692349846870514709969999844554736002185256699839886529701153467860910485341345545099578337666680270112185634043902281710854881780034184205324838557015295583767962877993607679155734071134837955517439917181160652807559407556891743014405606458218451801153957659219866362215098821243587769235506329446991701849469864610181429933606824077422337095398710062782688489133910599791153215015745573048758895487683082584838514648579612469065643778582519464589670415276647598426136573998916442190675310701364225103055423298540952073019375746114657145628537587959084710041797840526795568655958143089556634821975593413386314407619824731725012171811289475792348812211343404555644169948544108778576879691296311383599134045871795892127833351782578292675746372287801840246337202797879517912219044400807631450249023650109657905324878625006237129970361504332309560360308665611743405341780838649459027802693504533342299948409019835158961343482104496293498940973803136976506682667883694558636274843308121922958708584032656106782478497424229681771752610340331856552922866094983691164874416451852223924850954839533954067588562998742931319113259078001132967103225763514246803954519163082776487029789256074039089581435517652186184464979727680507716869592233932191811864537367739631182433407043389317008969185104429926185451751784165052389504865517840143603382586665319321280141703699744285793828090296236618018326786162912467242685959044008379714833472730728831970429396935802125529635929047314627644097019709192650118461429976336822846324137928536703057050843485904177422600156563167328332884921526579241061898472859185486040235547595204716638346537903480965895612074104708127685158878405174377626854544443796842686744180112728239544021767195827117205474064683119497778465695129671376790379629449914668789883398888770223595990800840665196399278022074312678857972227309000476713096677855187852127374455532561497232546218865829371404689769219276711976158746558402361519965802788432313552328479700815456726417088694042503931760049954085769274137659073755938277582450615370364950577948077332157396373564617948808382012137917393056616513759875949802515123414832356907111970120335487608280168221237266044221217662082428201873522721797293436593498961884909960968489753266022529042064614061369066573426050293039443086043815452041280462227075135769071370549190273677025677182368774497196980698251951230443242978269161269704024846205534221606411648475707506734849216344636566874989905345450616874411517747958540414912616234857063785000037270272543733847858687688344920352572343415003364533814230300657998167251971358864178613446576060614693773168801666072106952839059255158119300351556516145459695521463973802279582597819533939843646680502632776637015988402936493859576241342384328212257522955674170129795027929557100366115598686314365795187870904905019391264245600728843104612386898462946665593103306190994198307650291683368685845272403744400430952385033669670146482989758940290849121144484020453809434136156244700748270126376738121493497980833344826963688971722686426531631951085562684902885437433818343578405512666982358123525634721318996583074934138797612152924122198022949282442403242408914874443816619780034887672518180181320616869421690912203428532077369315231519907025518793291246512125105113941538739741486596672806077711335285819541908545943318710271270864753179740700835888141602978726686401513336104939812803087729833366709080165028708195538285029565599659442706615406243358165700483610321566162678535606140171612565978948778529672392250828784935916673504229688535086809793127384494706718437232197204927008069444582686762741314240570666717280782784372959899444787005360647850170400718142763476826437849226113476480234840535270547296079643324438113076344921874649106713416622570018770519341758653872815179210323817765744759715263634832300428915131320347746683780548187325238748467944990701393171659180885555161135213706083306723696405377858337894883105748196327348016782716253121078792174643568615738015644054066468292839607081091698507503946668587623744781272209200795772040740460184280215567952561870144783449701792983329174139798500560627698584854595749674889941375255237056885902777851898737673256178937436185656561683020935121847446075942860512893988092720282423916020475847293554093502256365489950646081748639385030903179276707276290077332429535606902104137097502271535643305646604132109616841906603509384361640344338122312520008236403862380379107357976619932615793249307583187981671548336352760685760984870815917901615617116630426716081180130798779334484589660414227740849434254211193227546432764944829747939903996947622271263892842369089250654435068864750476019960528871284332923368565551170866063608078833280481556317132214257890185367978562004758879423422575880563466432793183300465862766926703892908727198164935258268345472075063029700295043877835353918622955527396445804527512681853464714234666472049121166064675514605692108828742060508922512303034299568398419858970732036479286761787662352308320771815742500100810016197694554425488545989076796264973927592562802861148532387512639310718662015373081010595398165205638264373681605965117636923639917212722248643850022617427353737378187745052215878609627713028055945262783245291402283699690074443148800519093902980544676144770031448244770290599877961158450894637405481902298447327288728894542166344250928994023940069389917904840217498815252017309323348170009413548904951370847527497938739659473771486592226941002670412485656578363365253405500855839669934182216497093246264145502472941098051611185163676930074915573100776734408373474226731377919912291345311204852708331331197411622843488029164858243169057146913409713266125790177935474010012427143763576253244438119839031571635515390391237055231418394299611075328843989297793974195763050588389334306418464304695398286174568703419733619248405035663574428178630821604112995789786292016723311620291748363787045596972762622900941269221383674709157711944649885498639534443518627746759788511014904891513451909216910627170191227347610433653159782576038482044143107562473291940781065412279385811503536426886335520192262900554612820473596649430553895048524853779862999619417756444446043600645843500466455923480998919659239942653919059818692949683333862735397400050520568154641741696403273446804591760149147912456268065000371320858477960985341637118270055566347121287112452178950076990902569771028462583941471533444084441308431413145810795041913557705751953329016062088824321598611011673519718747385132762605897722711246346922207798710758660492517559336674514986455842287227473319323875112560894859774149045601012132617725449264008250552915979936352472633135477748711705582936624720286890480421972883601418546056144098544653161577090421138622202646883991033316178392260842402328432442824401361082120756951776386864836571454046801585995590038888330900392085717801412276369496536091014671793572294417299411039764689380262007988435761531781370173840386124702574591218015255767849303047323902826382046919244276688296955132125620348440590655219631729680126060617580941606250668579951278770177536520956783088136870643921001832046128192996680132998162950213986526063054143575403516597593814701636865847182862743858283761101375552786272099084852502474209502975201364774183064420328795248397651333099782047466651947027212854280878054560649115523912415575724176022460278203135150900233484841554886266076091926896528885202077016532555645555196630856948655743149764658907504052809595454592004940751849114617439841597313996413880503193186967260287604613695234166146883709347197617061408333414408085132511089798211316663950867850321843538621142080771123978520764855912079245502341250327581533138156651502345946728460482119050801210309556607282703599785022609555575263202589659178367400454950241252209199240421087317686782515740732361624334738252909020136973668887924321265627036743208820171358733277041633913236807822881432624590980934438552406675697051305698213748780784534923908476760987648918156518871681804988574685165340451031810913209262881879267830082341874235556832514085865977151653827074271337296363475988419215615702251267959269500222044265846512843504404057210177594527836608517045340150733585021917216152424606458345860053523427120087668883755087681320314166892217750726004567450356313146593356178674624941665732988337627311607916871950366864742406997234655817112268179128028730381811591587086156044203775101229698809304787918604830124924164868940025795397644100917999308269709497774319654604859291616335279821848346983026422381294432248635214900743042122913584639115735857238100191588972053777919657724511587282215532940859293358495739887304498597099032386524978411011365519108719230451989317640781158499696449459775876488153332669516853337161671794241238208188393255908786135933717196871609886829844080372572539423434834613365354666320788787065395179243078271019826159038702183076793721926948303629113750520435485041983345848730500123381060991168855712548111178893882638527399965672577370946079700343090704104069633134445343831372403890224161308716829241616824065369948797129323500183791871546667718504916856144505880950232305618559420165434170555336786085869431790606026947261548183996714815669875854009914043193931002096664494932090329734691365757010409198055050417080741269775169946047101136069719286896287685951383552956485523463868415572266675034802340350811591340877473318163863258731501585144601325821697900417560863851297498783790049789837456480186903813233850157152468435834786516025453566681389750524904169493710663138232061328872328938058855407296230550490131444522388202701489581458437978643046021649308585316054154346487706735104220565750152714419908741805654712651545842461863069941869788943878473622255865378860692393618959829820833467185166149965336444220218261546718454006605138795164494757956943792490452115520256403634235020441228806885997213937755537675222910858962882837658656991876618250131217691525389943641651646165008426829454386549132095524829669693311110650941231275694635449284773966170195667681320197212841282030808530136972583838349317763925709714942378020552519923592924822677647903028004428211729392641648477802655326530438179984547278570590903128193625832497527446556081450204249760864446227790973182616824818752009931617023842397058932582775203861612520121524520424251433141807895219478592219012929200163464715749873031330893575499811089625577073734789140677329181332522143134490421922893669363675162265467110843843997412172395222672952177910992056766165510304582851949493721348690469426236257375381082189796438487237506167834128640683459916531211902894730017149666708043257990945459557890363497598676708122646394489373014133692782632365849445299084512070490677028540080730005572397939317738916447887442440109846790450039748537072311943501574794722279707110721147708772559461578427308520804475295613907985798214972583275487150627897961670155091585236742206986050234900697712745966831994637733071603372897275577054187264793196748546407345500077681409822291117534673549406352928808490009739735041133622158584154550656656710436000809200093694488526989715809838655922031400340876794352017649833636558435827715082609232434562711098409245609098523390787888656330047743010412337795307933459028338477502192402141969940500285491313629939902074056832040197162769526110434242475518032478954381593955172294335641504982268320404966037017666658572693533915456312196915345482501900971557004613411951686551249743149004239189564656177248678343849654831051785734986059549019754984267041168162120879997124860867730994511417411671864112069888393596582181874728271630300018251914104917259935228408653486116725418154432777346916929390504289500497881988977079417544013804264294277443479765732173187864335642902522611045037786258747803333907852659396985466530802624227003685559552943660657617987884756395234940797178122421138591789955616297430847597141753522994675231360421406408061561539275527436405735428564221828846024270666937913329813122089293086700773144113186538400432165172665112830738907649296946894847386754350150413604366571604349910879058738934503912993897731164816162904798471175913333410612388188896175851252955488669274257308934536966666740785784656368606259656877046611129609219283808021183595579642402983600123786606187405998109664528849615575405678598476833346987733659362545975924084919111058776799173758844367706571902799628434612732120199557928168743601190218240053082257973881511169685174792626546475426876007399028038319514545827540484397687303250888282017020473151820011300968769974927382636569167829750757825710638963440684611935559286309958951650807973241559764766910178218863407196787122647574928593878896975290243017260673517255273224573254405098407050397575068287118422667960348526968092019963609647732134015842095621366894996611900039472338238296573476315538855742880404608086406014079389237010480403120133961625557339841581558242109969819873517237670166198173249658722579040975328574820206894788900623675512963445107069972571027988200762803788183503007989569323464644941831714735940338190911704185913836621486485288824020628585316182770913477926335624565121829599855113513789627711204985734349897366142465622612037300086545895138680570172655106853058869460964814527413338737532090973747301509378486259307676780750734282771067238623339250992891596968844714277467307437537344755568660606579854723351460516670230019993179311025079260490603178907328654855712742921909944453870296454104979699897035014150640196635492028847783656212948148527155651311305932726295122243007927294789924312494791534192228665101091083099332376673799979494125684442120082348175374162051778464395666043884192174586617488189860884453298772809574683385545321045853425403329393488456319681248498349239861400771120508380492937722874779216357584419123162622752897640252629626803554955970354549469875175209748224977514688272478616177859574631417770832331892138200399618414678696330124332534819094796486542968416178753586827483444367627405937092794662591339140028477527083569218362053208325085357710659169269915130179292409001355352687328251219393034693751059011252716473211196820829709854060118493533269386437955787928241027797216399905494141111416033064004814648029828486528551338557126641455003732151805861124649935384389662080362566761768355683690845438216891244828847032687673007994879922172176888005744737075500017377100833358458773659323414539776128227517167431771334275651170491497953475938003278774934244002203109742706944948352855480100102034163296345443160730366033969426801119218681373889502717955774820898144692440116832964010146623735425649785552386212537500418113420071969380004450822432494275407055004297463749124833646460608984641683050626999543266932309458103667924808751177150728319898376792483859725986144970033560381808901193203479720416638508830240832907772720988780548198656958175040448594294042087934274627648126137215190879475959035142369046865487157119041637425437791523848929941842599185727597685827064620807849997402245113820353430844876137094038004163616619068940908350761946011258994729067491203744929737572125310691043092771045698591298070558608993478064255054850284111744190879885956354310904850691202236266380622707233505701931463642379286885328091901636871155789879180282438488574114107566667425976597980205040298866498370614756179651011214002465260948760743485162651390329733154014323960373239038740522718553176876077230033845658328095741615688825695368293993905751921020468422232349223887975489138170146024601065289013488475528118773487385300209372098905537654731418389655984431403828736136017607728060547008717946885971387819165499079035151309935793062001711256578267623759094701437264087650739223156988610575835067601973546693509492966173720311029572046905456620138639596154729264186989707629242939950755911999179870605288723273564819746961522852187321332465733253709523263254324217058492028511051859465052840189797753746642567245115578794521206220746546144315620832318209513613949982138988706894717389497152691190719430510628294663411108821734870058426499951260869738605141214708617810978058826217095565499253911640902150613291464120083777196282717502056396294941799283745542753526472513347435878245924893150033714529221635509059827435976790319492789138153002634794344267238897652555331553753861699053961396145891421851514228847622876023873050281048448151347502660828003263219311424932823274131402874707518472866630902188729961406547343873031616070654383283305783640749092966556884780741569900259254324291246011408004808460661211905881997493594554811624501109735872425289045423140398915461273144024813386833565482509427507157616353190231445755742832257506756974907147972045381349685619069377672160370976361451982960508494517115898538063433135379420562132682142065531558129678532555757538133197981202361030876693182035908367831136212748429810163158477120819162559700553620666826392867428223404979209888109022260625237190710490418647571187023199457288493318981552578878223333607463193822450942594119720647613235460983638019553883917322037111083183119391688189956103833294655658943764736545299768959574993937464576453114444161025917658683667971362458312796299037261213601670827225997515561320899769394031004266908908646112879963004550379506854520777999331828633540676021025418619489583830339592616543870726346023881399629440292256539028822372888912414487977571803189690115999478825800018585870220447053395806427480605613129302977447211713961606767907443149771709331258474413361952213288579563196445876937021644916324603098872277983605119948398995268988204285031863514122686881199495219099876478460016246500626680600497759751475465425499388996759461605972740164999795972088573338280018872204877446696269750091563242871442868705854022169532140915403289420174311750616938749066256614047558055329446866792191371688566138088346191760589178186166966433164634546967997206898771459666837904166959128358193802192276772946625299973857166540613284190517717501368292503022064063534825848050365817740033273761906306127140005333899000761043691212751180677752191168504419830515587664339575293446069677584959764130121615263534649024420455651423256916090512714686791220472529905978075055584959564456622491122068315029719904258252653348495698207232419375674097226192429160576400900313447272330849218133022806291038978805652322769448788212711047305533561205386725145215241688215973280521135100744151376048213382776819643316348749639893105984253611806126982823110660352074986937560310093110195698563800810116898423456936237469277464291836900529743842601524552177991609979011944645884074199706565177618709345918190857785064260277137573421356204748077813479765207099866724073933517850646840678223799930018675809660267464487300753357210733337609528417591075429042338181761905870597353287369686614117014548620098971458945248692273414086826425905607009150716332474212771996498602266619637069184463832815595928008862185651236086945361237775979188858925311196050139730868631542322787636591273946714803575571748826477487922404575889638130909613125375362090603519026220187849244901920138810207509815889113669879797760907906765616514006434959430074235747384114941281855476577083076255319342139087822928052361807088753991407321794955312210620038622770896269078822057392859042786917841289688813283616032266440614483141591076349320856790470892481524274169331342294549009299354108917535952075744065155188052520990326487714699267994021282718187869902165819997425479750307218255485886647207336686737296142260253928081689633277109334981424775471869651938782344338346951861886872872291351062866005928116797469463075474771112010252723674003796409345718427249031880182556716842078383023917502979599078231548066574328598636592875505378243700202633154777786219743515348723429844556375629241918238210925154851229607767238769022383662284453485395203189421972733400511466702001076537872730653841082810852401031632528665611275220055293060788240486397461053222051587728388058253072967608878065490352688475945666206269380725666916701523307460428414453446895949295590823659288251896143885401966553382843988248106064911363393228449187540600329568990558118599741708001146185244392246996987504544488879594850185200712424365806595170697491019122899413382628373564392773465134676552788829815591620995182377852818552988790118559322561861384797481670490220685797642262530936464487943887668397361787088343034345281600580025564772034684175787254428418206365982254401343900182908570881093251355114366943232015701680664702208284490427074115463219095515618332443405043724580482151907724136771163799575314530821438491913341863578641926170725946580741591866787027449473317144481157334453620101039094068218092764934855282377570835216003872675364469191042136353657157853662753821145645960169263812743255331635007571284511789865232053824047741447380892860578068693354883010033687826710769292256328671018234242693974362205158295857343233865527269658728468092872829261728417948914258947610440413774265941822265502198202474050921525219130680404953771597331489009792694011355444560102525704438201766883943065585466287048544640464018464742057045575885138802763076524562876633304954858060132437388449834214427165516649229916274536536802308041715534980905382415058676580534224333183825523625904818977305927828011949111812502981646871240709496844165452864911509159316685682614618879945590048933050320769644076931784593248906847161823360623193164414880393815007837789927177861854431350469141675684921950573549615022020843552514597111965819351919225051639630101312553833376484264853156635172793037656180064793538245572481621794925001139928239530328365116491853673598003999081657293949947169085639840610154798078004983567635074825253666651459219662218567696215100933214819198195380532894826255413887573187486697545366239188999166577997048861008000993597888542390920851943121314078394316602315548971707330387064871437332929605990174745497986898283936012677412248748320791830027024266224012933748785666738630947783882037024821508723555396856183581375448312177914447816663393574583499839109406973334932907112853401443436993397807273121114209901559262488745551249572320102469821008397968067871954996597589296302270342641782339235603397955932527261048418029777909808446276891452456805245707531703634515349199498039460115691954029373566987219581554512602377958857939485622330985565400379730526558184346394189526223981719398859685901302873154767567739863384648091218461329064396162668131107381761905909496940187939207560961119436979101710513892869991697292988012087781723570167161777177212172091824875902343380284857329377265513711244088703936508896784653101114454903447786358005841637012538142935129891093861818846545669648390806154581960012974649223131598866948103736468601864076773780944854804516890593184701927649553029625163534758291143596433935273506119493138159917670759135745090260012950063122012878086127324541018902233143660097234658108176457989494771995562476271396233407549826559651782748831642039731210489352272359177134511100009683293277240236299862418311549489017137701043636574627891831888280743396919509739909197073517379102082009275181914990204429276115722020817226520444073007722790904807321909352122610474334357198065229765067599213859718793991499444401930097160880341676850395139649256824133101204658829633037865884363108263228462983031484821206635182546134478193237192735720063234457355604033317925085697927236032448319892454476128036081220991815110056714988126917652923016084557080853521998551813744787458450035935996090366288884043124884209558059272133450147182506827039300218707582134892297374351433345681891890247005691938148047107418130937146482008389137527091056468341250007200067306292340191080051489202319417798034193863161635389253171923288834719859509210245432327871238094496833983292807726169504631903979585171355938075245773781791479349087794277002235126094200995055746350851458047131762426665232475059081412453221892128804852425579986972993756406200738006464701325276787708310795372156193730133099501701843924798675792824019526195245307703842342634009852270556555302241156463302941855605369862488920335177720697421841659627839964595899200745648516852694204274321009095963637335518406285798198206070973229499121604192256827111351852202778351447016263419541489556434200577639117210670689538830629447785305028848749722519019548344988085246742690397544533474524549038402202381132818047283996675317061582529300521674260372145304058981636082414657676328356035323450303245156904938048775975895982903745259451198698268796911117008723500658286195089896853867697668993837022850890448313140977759401412637750308186133751252265021842595294632043694097046413473640696486266909187791922132697006225220044104447104005413833037844941380956146514791112455297772078056138977565043029831238872579569489060621221299009744414621664833328574490156973178584772022871602923581981572638571440797128542398615252666454420086951367576926320144896930430681893299138874122512213741698186169848977470842826257517107880320618201236322203497047068771305353815798728225063831003526357311907240048881177806099587650780370059755176290114550465427392545547138292362269636511769950228941795868694175415104032676753441962452641652683306321376588665382235513278977260144076672486090365546393642433107338914054524036332212070724613618242912712362264302532116254885375331806828654083469200643580955922900733707245331097915485613246531401958111382899776010310216347334907380724110038127635438820706577242451998550078466293308002808724119592685823131787568811861966421946317544810980224858178158883707181238827503406813135148857050139243223487755765473026290867449431142567810589688026611741840096935398696318087276698305779560778950733628850965136521587075244841084833624710441716557305638939738269976793742826467897040704208462304645258445909319157878959847742355223311952771209512415244400908435982821475772739221647526796901412126912303680242779276533715779925505289443915978522306941706536710091094182443174639397301679988458555447503066733015275991101022959288777614854740957485786765975967808100698801577261318602380001503159108299888219099739799125054597566978759424017511617304329888234637322500636340491910767971847820394088218242790436564041053695030403960952114407186442581878216778048382189561546298710607069395471474948219299219956262637089323676892470459969773260161465390052732568909571797060133924040304153501222224664529374970403574974691707563698322194673041427911285772284400477898680414486228872276950968527149609429606940815627819429547921838183316217584856886103841604042628078536552869763396809013804400071798765991653929719486765913151872242105611743889038103521413120139034893420986403107547554310140189300094558347837911765307694073060595669837515193518612527990554779979031276774815976449034831066569753251316771021395249823370785256410500420622941808085041860816137546674022220528821798074958434338662059391579736938305045867484446708448848695171751858040838571668458849086461256771461177208670739344680293177005052277674319049188450241604590521800891614556623225412660824665108374373296460035022672811181938496242667014058829239538978682270077064363300037532006146615002936391812969724824210199045031567727033652442373712640720894809114432489418353404754198488700748425652394770428420460929976140620330726844949180435269238768728376657220277457198637506571229753775692852826948332308801285524632788492435145777320317057853666930956043534287966782454771114705274085139439167112075575407523592871790486861641439673683134819086330431235755819282319728142021616016412355338869577653012514510932796062112904858277300354075200121631122380695803940810390886686719878069520736522692284338825903688804855497907071800191651973951693874525455188255149325238367718581425323217767604224629472572251026777776188265641910268500415874953716803620854182201904060185274250930015945138895729992896487307458013700299653864864379970175172507685889297070803530151988494838673891618194944468211173552334796404879170428113437993791129791548485951272559136889231639748552417920104142385367218499293038921569181141076097866400902606810779002821587955844279358697814376502442552997910568386820985336837887996663940595453124699205142897721959238793377860774130797708279014615596526256563760996403431040160799765724292960648432421768108295419171093213466455876415571767664303910742524523066492995846850836803479767401772814007971124454526101821801804536420312540780472676608746025419174936102809112050044011078376102363115084973118897179091835186575708606496398292435188017562407177035218679442246045027059278570462839136839373627749171268168249245157676781933225734827562682828834835968145959616928591033556170461367029902281637136279921429951015334806372280304302911683756980680613165430804828731912449723748281021821767788270930600835146170617316091092907597659179048851949454104906493670153176323778646542511815112307617244586427466898821695647069800743100406008930916786010956389394005235038049998693112692689418723234012339540106684959234303630255750498667357432784579888629633254440181659169652522015839104546527256704668363825507295716335079706841406108537242388833784062094109534344027669726495509165210718820496042137752862154373852649978542858951983789616197568386227916339951509531059053575255286707478564421758353713989178468506233268330486526259459633464615436363159319497528195610354737519315005432175499964265951804712305309581662916311282584724033228731510675939367166210264043682531113171091144647200064345892231381037803475064766920257409591354391567500077831821698029066446610927372350353209142216193066634411553113896565705437513975575161813253867808778085261972249206199922315786252770275133701098625789194905620736414742423929551585537448917211107441068294243171812193322191040931780352995454948359460518095836983941774135197171931422578541363534342961632295676824431908615065837239246576253474065830539788099328265533950527745339156939594015004500096689579656652288578274283275390315735776141139965609390063261768153672491878964360821938202474695854354731189481059585121969998352608175739475399078353200311834918500548553844137102378645585169315618073538370332957313074060677121050293632449939654698271022564009258691586805423183150042184107434854425061401490637066123119270652253848852554657222484344063519116245278867060702130909763362457769731587089894182329974460963566269040795397591161447786984606272066698903777759781303476045344368814559849506164527302278039569721161806198186405821836260413982422297143835752850201136571491589016325149582758580740731046361179619018406082213243000677943741000376972248409017087523454151850963146835259698221132877773278534593938990464015945183079168582895869760785531374541518010610070238857666250772036956869836826942591642259941336090504591238923152612814450488256346934016275087287269629857094717244607355878567465004380328306861857309929331780707831108445953821783469096216278801272095697938066059891344460045445956256766360926311802229385022693181828985774320386920402800497818201965318245355175909276431078538162017260877291297646536848061539583327910500841276645524130304021965923286158059125729265234620962938924688377425948540178248115042271912565169940866415403175828038784412475774881356885889204486518199609620181313646782687009632745073567272541784448481776458989376393821196084998735700578985367354570481541123788935513824593193315131600922411835780926232469484687135015219441905524428624501749593713149275005203240705741536160704358289081736252629342851711340730086418385466235233605965902542321579053105516080337570869474295374800540560669143612338802657968098596153241267657905993218400882261048846679352781161083329012150572202332607834691048396600508699627377311509542573148333930613786642431752262738863658657367576528580377108665147096849897619529078897449021223245671596651738642096935282214362656375090389612896735200910110017213698998399715334298617154243252875072568207940541676871535567108392961669843196672426252901926424934011415271250359744203790831620733048742667232286776078811918331239073191907886270839555386650679135550679665506133560683070147187793105260283456710418410893566596866672302169531272926177119960522576715818102665500867173797259102819661146260020857799562239797355212701689370681696131308169267259634006171170564089092058339246867268630181784244772983046468225688248792878301647340442499775487540047191845097442777371774495053835261312198784196761510466939673325517555305275180411690424750207790219119237989078087849343193248802435469227595544868818746920806949509298022853218694451823379786990824952659314744265630481169443649167742774213852328410490123014658132024602665162354476422885868223076670611096162276517909978037918825837513595741272791290548189964328897599166640983774484065243091006747544184755678511411229073028046634085108438969005747499403399271683020099822544753342494322809384066041729011209097675610760563876674870340342741863785393501891286577805533204893229396948998756862986599630988381417274794778639630499025846935498475170717563588539332176861697709495075762140427500105066374660981981858243712107270634426870190404812297979897880779244283533679579699870222680228066004881903673043982232320524041124595547532740947227339695258279845571258514261697998019375868876795277663630603468502605452179533563683185082960057785022911434391808824433837612291051992448314810969349966244621605267316278055922059458611374420919697302751385244031272025893246694253485049476745563091523647295535520564571016850297009658295813952357091968898041081200633027726516164748708713086816875457237086720045033839739766727748031950520413306409049145430935522540534558437039919390359514791666013863082274813871454935150178467649411672366352786598477249531034644366094770905658209758471565679216306222420813363059325326632485609123722466095328246943943690517609531134536895009000516807041473388553421888383059050778194897884050580906788055981809596489755927930882457011588740348381589044799972409606661974427829615005177852652707693657729571876750586183647834657456705320121410874593782349468493204841009597401302994631716978165683309858461798934581340709290727133768768466869162665126959588442026168625851509553106333417372718300178061240646196790873855688991856144836270526130637461636045644226864500806663418347670291499164905026996016480750911777714163613405185952567543216369225448363914938810891494140493281102039714914286945863917946846938615199108647571581736205138681780057654984868072125296196642243763415839980347602422635350134746706329787480085567174444429387946893313459392614209438846860761711994544177210463850469371269672191997050362953220840401987432145444254537005739897032054047220911821697510607095233829017731166069611541976047873563517699622573721104904639373746646254506254829357256754686449133297736521594365195932315732522588650768198721922553314765588243460065904528962937708966578958991368980169811279395452535977779438586254870807041815996223742670535296386950804607539916978898500798735001742043244449931000742871058568304046550632810168882974390490281199199291529038547147044932103590189933303426127877690745965048636254991683294118442093518978662623001439940756499659806296436860889070531826654100263791984598296123295091572270692417831802248872858789435992585263823211178282512371362995022845708879966871666609492215852905201011408130031513869395256364725466955699126119682951535345456481306143685517628550795755834436284770224098798718139434585034718049759903121689435265904394581234191798331738476433209499030022234462815872697949114630780922194757205199122379493136636850434542043867107249632541119048793886309220114289684142618660085932777335576076104150374666536324035641659270378346323149214507066801636104004770699455511426421333471716420941745220737085837029786885559886935158283791711125073756971128625024961919257847570222422329722961627401952975269029239257015657401155375633446010560164533563601769188731486578923425258189866857911962364654589474012176333458539346396975836489152163327532905513425322362447159767694621499039849467909954366415330935298258556831782246411690301900118301562844303324148353756529015634966069918986775610340439436199214233218704900103910357025107355939822208608921131273161071106498423807248307829627410487220984823901048415790998467397625740623998461096341384855152033847625221859615372804979568603979747685629979632914441521270558223346994522041817844722338086774739867474906896962333715423458244393573679751065313200816201880829432859774960252482745850398271360751620540843840476467610378350967108662150259592238296489043889612192336939454842054355359570532082293453160238138248417528721085317878192872346903353598645875549352020582267494352519702005411065833279370802959507666352682175136400335106259603218409154322128360466102256172564802996524581405730453799780751074602206999134337172866200690573862700971543981540038845013941374333381170598085222359126762734805935425981085869996348641174345962929237120298567193058229906643178235125049446324123454554869839779820642611516734487823894389615566557015744922585967124673106735944467889631578782858185838387308784347333891462892556458956103379532974086466400195584466121122328079956595731119457620733228232081602747737320015240832775779896137902165389038144967143917201496964350684134419778149801337936743520192305697199522462565762455329243910657948518101661760548019172871548899982111564094332970540080415280974964334472214778747412780629593559536773083928332844522914870594301886148761694306722270475803898865034919168766387248322244019904929682194593063796958065559417801922327133594203345792477111712401870349654655200559685736916995359054264284281183635458775956811372538527033602672898238827391606029246351079335009552057774691903265008781133687655472241590061368138273099214736756408486992474158359578898616965437937836564499675358531800378930925452255333486623113051759788316739883163339060940886533776135660794452917829492989324974479232110405640326045613648832356685038981872027689076594790195498690109794224659322545719181213870481325584561926438120602943086786766744781008621027634773032886396357732218080790816059205915105060621342225504271192560232289242421972453229902562007324452096363548472268045128682999863905539047101715873463555504425033960210908741894127144363627647929431010948513583983133998791957689984995173970249173313647646371957806776099352027248578347160653063157860239635174531736872614234429755546666437063438334616669687856533959335736167232975437315822698008644587993237060691634713747851694925045188099583584459432722125903577705085377265247052795820519951822349950494654158018567539094625034662198650790867615800359372002225094993526569854019458368376004777183612959059925906091348366481032888781316912405115066489997978399309871002324708944824227061474419680266258390525727178720053215388223465449417168166899578123534734238749193188467453464089901149453804880603150511279064672537839343919759423507658891667364492121130547246472923561916141411079082697077081286433309829591330196549014037061768224616647460559657964913634460904050499311776239937269759514916952802669165972361921907556669320727384126537108119325585364548380482979870755819041951409207401181126103566647289462983502214889553697749542321326625338447036949863142951071688993525771930098571912103591024315788248981909656524416639211755379682937222833855425281769864354146167223444091356523730592714084574630862981010875553088991498121334270888839966335710405566421772099040583293941263857342319929830287750651619822188867251967431411017639606564923553147323214315412356604620280998693985046571188030765660209473759664835307629797805881591128016294996841090871442682966563540572508314159194585502845791955454444205031137491826383848339313919123473803603291450152311460345230516603750963294889445459624538972934931313423571830711933982808241020868694240509960348246411242736880077832442936776860372652480788777674928123356609954935604025600116089731629088365536455047301111369536443918795478433411714654210169095095535030811875824346974879462482435149622378278324451452235187204790073214482832795944910909417297871780276417586453456367244606447448577708643042101915112068441306112564669287063404082409945364096152665745852537579577964926478480316887832059896913671612209350736621761619599880632533071146156891348536745019185576198591019489472289410826389120702881191459719875997375935052860226000181601874538490271782619901608579970296022693292302441716523601545395741666173650024415987608112970072012132614631054951445523823013308977140441885078467630125190573593418404974735282802497001059835556732607667341096144768647429537593165934607175343312852653641374443205964157847136750797765322246857043875155353381252110918156466145882800507738688903664475859018159704251121386518959066388333862599444181294354039292861543884397477444800452664335603258033760730803868291202673574457335800032145017257859325954304852478209549226431195627654104596716396400539126526700103390681172361336987345995793751430519329365212678640762850416024382674133456919739247132293137028840859815517288416981070962158976674394691656184535051451499282051807048634043747676105004053241786546962158090282646901585121853288202710170705938586733349537015539743251431504627523071388305584645994886161601934999944280851288721270214810016488070035989032267914847053934617704986259146746639267963453116638119059335584229516263278806405206263997593691083997141566108729611864168253253859535389045499785038334562583737428865143794582759047656931187498353492402583350134840589622835312098106795478825787495422825972946366122516652496846382976718527984163567789438077613317266700274453984779771076892651406231331502086119018730632579795298763707431314173920630098334540473682382732297315199868239816285620524856342122261685783480030871849020392167228256256987948679254018911798458267565382995228565590627954882279815189056262040232124754954363161996251299337950051871826703952897404224234413301178553534847117215641602049913551091431069926837000028853681631609960538305720316003720494208586078642774171258563250647390682167765751253126743145924072328879459657269346810448183646271854341933895413672326556932516201296374851267041167468439633262749650237197958326115314997740586589453548955071720527130068369004062852265346205794873989752513715520987263080151146039679259353024285879517659881409859200984087122394183576917737033787622027545200726391043288386989700650645451951058892814617689759975619533889152300328545868154791094758934278894007161847438398012090614766091825638529814837664313025872188533183500970870610996156597674087435584938875906372588231898852813235832425283773257178327578021079396429984572216451660633575867660853848902065614102238163564975075057961710298750906168288759055490778281345103516743932344995938913476744602504201537198874008903400358416781853857143715675004278088485826163185690920156113267563176597520962916190292104819342709987098005747453228535981944941722403964144911502462397396060551552511133759634545851249280703363832551640245632372503264626216110901426760945647504265019143236322405381950960447696531867757026928922331351424671397000681742321632707274575089890551846494873953653158868070223007239064734485080535228297792538831357123197585875729220342841912107932815295115947563108190912711278527320953984438239800238240183072869810007707196219146936529198498778122684934128202406507679916398135138604533891151584085985345155692889629487161823245970551345383056575720323815209845641276523208456958928854979307962603774917919109058687010226922919201366543228469514719369292086718103026213187174972454570298630293207003989194175967457067424848693870132863711941508225913865742722580302681080684564167172645823942578907563394760288048480873100944224553664426158337045924771584987798854444287592385584064209500066625712216851702964650618083698231839908691159711549046068346151647788805712730242883049291538268864068186139251068990388908118847130821077471394067192786896259643721866736828337008195681343786606607933376006020019414702783296527991515613022015832030929636736686062557135249140261334563749204609569330503729555976224245409519013329797452091566573526956739491006628830153846090046510040570445703939244241744551705415069191844336840035861153388697731383160223746415783997757440757656297792194435549231311901829185836586817480304565619742514345016400503165723802233536670418464569823042038601685941973114163602361390114466507411176160600207850759012308935006365697626806495264624349890423970725864306189845635503444375222516121200689472231721333419472434730351163205549457417705028093236150771967691013724639083728646712020860269937331897307900883526450666316856562475483756510759687823926575943675199101175211546108290675499401667209431029014561941624837452153161581477841843473009284991395865849414695604864778423862898305347462039927403535754947796747086705360737208082994464042790389887398304658225687400352489559051434746196569230054244748570932439072308037853627975828371847683149432047401851183631209504358156837653261619804683573793471984643888070872911336348110632063093871977631510829804399631271463331920112686492738072358026179489355185767847007803755288624252499098991657190647656418432974065533213159149009264900298403517961960457241570615101162070831229202097212382597300737339396140931226060795918492471013033151339631355203005851999481550559324924711691737219901480350789421007373253089258335712656397982603511111938502271244949648759783746338833128499948963877826170546599192820238309572823376652056528400918116021822363864974468002349032559373310394738131229039835390546420007328316361608552655060555935622591072868257462376062925841561708634311481460567167962227535729332053750536959178917389372881756543368620447605104793273639731275580019695394132296698955266747693513055085764387898690583884494601936482442168854233913223833341241962359090965310819123065589157062880200011205186576632606895459725202057535045937792555785270363789375898394841771337366338078413246803846677597150707310323027427574696067216071290470409769989248814191379445336914817652576836269230270920861586781367455418201808525176533911690926284971277119186163039110450970857382685028785788967575856634131280698050568294226981049131765393353587824109442998885832002687734077941665771872511054544820488871719219751397334900484679937481621547724667022934791560826407192779387801793983824691735210558715373292996741239639492935026835595634158008128493813468415011071452955107664829168228298329188719218286344179564087390900513592777248967203605111761650361306777096105131478147832571493814505285786010003873028639913404699152789939268087810829544790557820139718065581365901582268089715127869439999708378889871021076465751967435866008578851293145813891671475741317352731695346909307295240710098605560762698426542093909590425879376717355001529050985526826302810982334731197520023569399098164714063926390434826316839157680604252557743463698157157585664761301183472069172709160632250802546007412776453779058519736146106433162491321011906910925268884910364720617552242421409792616400068663439707401427678775565803180369203043700687990510803253112918365838724677660228570519242995063122521766034369135451611072631691820196376483878442167080785356719850330590617274234870774625834015578401403612170737830341913172997274735777404721009068346239087413241823005301629371753262950163480850728714377077777240266454388495066562466136982056261080198537339135335268695474771474344755149889309378238221485804671727723757228593560126218924387617858876231820665669082230191871028891265115660415835369726659345178981417935939347561376985266491268560424956467605423052337403273701032411805076594049749688575586966840039945653621938842343694797748564348384339665254024039153077826759005402515145078212401371333681966975082143484960933693436262939490863854537167508412084268586135436478376913511003494635536512135646082888916300073602405199720394156094639358297733124973731556292985447883730039207699933046777538006445214107284122434566762112191808401561733788865018735601047799287103460479845242712101325309133708878477729159221941549639781002963493600177237066075425119560587410901094908720605832473501024538406647359189559638020525536698541613012919285802563948922753780103727500802738057541933035010031295189261933768017257366957543631500809433826831003325429726007297280819530711961934950893819607452896942465389170738925481988919452257471766780025093267857449160116154005864106844966376456244904084406057226589829452715984867131734602513278908797981580330460132159356512955021858976102797629654030847580014437150072117181607281603776381080169904515822638355766502907802955865861112609472837471920828903756694578097112817767846080983009018781776320813412326836456485342367221661654176288110681949088293114496389614765301452570456328308481492260624383612009480953129401112091984270308369655955509261537982640735108589487286403362438848208857238369811854381331240916103602990831238239350251892330150132168311112091621112036163051880592026759972820563575860135652600796152822824321580398929176411133678365537970682302486697588149967735073768100617355713921002988726521681276589808621476054917303837690896499282281865314936851747473362899900346378399396449247782430315477903790581566770904731941661887534534175973993291500106710157395522783840168402259679245428640826242398703991179113438741852330968066626037752893358557333292225832391424639404569950275533888724261113015436051591853306234032595339734155279718643738996375356288735512961107344421183129092903184123574695001886618789745593720627852952945715136972284904006416468573148894025271295803835165090549585437090031642543503073501932831123945042931082613988092491145534720922775761675676286009393045853492126106209432759909294715973883565467716834952196774657862941544134659621530465235162822344259937870104055409323949959673259996651806733636967831857887187251635279752950782936950344050378469955333120156912394424231229313369298308606245306137319268983465444867887282228031342866339469738306020937138912127145613502843859864539209099505233309380525008489777861182670689934316629506978783437905674243554665030035642568356669123731757381341058567391246549385448824431839343628180342554807252334677574416780568431741138531205845353314434126298966389809146587544285468393121088612407604711310860803277534311416571376735249171362802417623745646249186787622026472669240005611043338374464663228042631577523678220938409424153137425763353173162133181419337697501557044683564057017888334685429748623451685783910314091424195642781066151965698011294570156728952684497014869230702391020342457872344159267784075186145898766671925830988776850106148698477728353715161747117956709673996128568481243143027737739579085283770392363033853572284024194880222812921648293338870164574856713192010624406097345615545941377629329428380714104914764056925296476321768009483493720476556729369165283883587610424545225303429672728203537996069781088070516684051437004865208308794338975029408250951664096202740870608353011627923704762783379742890271714873926832240684535171868807969461702161042447354545770122553218011153140111476886678585669611901351304736433048103082867155187181036079376781471872555585881612885789415823716784615383058780651435831574983649774583595949227275609427305538821159654137102352255940691761582258044501727017041241375012893976521286921724455529814099784605958044172308145185117314047363067743675659950835039319562987891733074973511519405185717138493376436821871085949341009667916271744888854249546611817528757276203156684581500263995895642267362570540639187681649188776691934656605321769386360348709904090345167247770354722450119557655099179032325388096200044190369180444064614389160874187803139730433335280592382759398246789478075396263114991715119209351741464115703087240143335393635980717624468079445702660336133032066872410052065576134206103709405935985535608960147947673560808104176726597179636194388134251440565552928199691606476052870891779521643947493505119904603020193305804326867999361248414370898998435820743634971521050660442812730517621187090386055170732568524342701175321338982110825649573441365527341206987210727458007682177480244684887993458192946628762136076256822041462280638497591181709411817985714132940471610641659785365230431055249105928310262137922935146249891091144142955923164550550298958874391898962867847214475554628784934698845169708307512709584438327679886408487227363421062910647279230291690955486668048632484480256217439307877663563296797984614079579250653721585884327965303032776156793735767532714457697996520634029847271177642822949119786267964925508017735955580857615844775233628439458077065651288241055165707137591730811020195423836827287241165008369039967169863393927022140460206493704145487561290951636822311778261526116143277051184337825633710564743789669314394036535261762664424665378864639265988318050573400495763691875663452641414058618667171843312593522138130853409301697565629422539111766488707785609654058641564175308126762302616073981639261942823557713514204421149731403824551833049745616238607383461844465838054923277226260129020587131973946153538990934076148441017909293219046434829081089460228803486611316678763211520312526199064463078830065708501678855654953072072297372976352358991961672071130480858319627551310063728611926401306969377809479807339976843769593132933738968486022754198199084218527624590248530951161913875327372927254358027257293901005769305938266687719927206169558030887666399383862596605226598285422281339500224759909680772434608119894709187179151494102812788569708593292827180295817934133491967832269498864183503325252201980292526520989022682126209143853968474306959720800295249146304008648548424768705205449986270549814878106242806953422358525331955058676183335139648718754637151718607280990632834707673763846901543123744129048910680870045344128239877609204188278333209703357182658329058793861156574693987011741196218362290914932810078444673705889297696854107846628754624375626776315751969486337452043059545229316788058319073091160587535629154452803851672370516218046088573241639643754525117804682115903835312720079470777354550971427349349271853696906391330851226437468625516580979638890109487708253358700511748018353626768463717483922906729455684647796776775057392094996297206094171984919522353462149279826484227426068607876630593353495894079644068653676102175123069035547324310137019606602554065469421889671072319467976575230540708478148738224240773208918609050425393242096718424177189437072143558338143849524293358833011464328246083826960375006672694272312766122684024111830016915571060760213042679126052766221711136445779260432139958317385670406664532145082129779262373655121285241132677003829620637478025300441773763714213286594792403488464256832653396558477772623647348774761512098984774134837503580748361263333555130569699781462291073187502822067395003645020203650625587816713879892845906744095834801990028082908020719561566609224036338764910013027374622515518591094980538332658875575061210863335332510876484836965245506266302670574955569300034069363542799261841666191033198994436463531433126435730071740859570519161425513785786895436581343398540805416987024368709618992702470679312230922708145492621285445735742621301441555065915903857312047123009035723093558111043178060128903303325072256774351176930468638300657693107799029520141125623806178948231926515453968259932318483251458651753621852742240183886033778983232375431539111763266675598957344936748143349105309849991390288083590792338495503347146576029562537116352702136119946649256182030184759192212952545796150570041832667869415389429273116920079659067627113825586365074845982059146357590837794592808092847109815179340699318073179388870091025999327465199312510300295882403560335964405999844995441820293026078461147476132223388230672329049776655504539722720526574246922821672666680691184122816817792742309667530668657802120225623554398543796110789685595440337182314938057888072351863923704116350874759367813787968171332258430287741062748140881517634768048981687991164569278765458181210027200748616915218908975337890740020816903803280283809916964991218354326144899446239712077286782357923951460138322244435313042562016243290887629490948790663258672315453098352473252668315172312882873236555522803042471533970718729667959793003522712212356175798251512069021338362609206073718904816540761052853701082030650430643894493969376014092096740501425642439771288146578547895507513635080912474924773083551785294466052217260344989935685964125424432048399553864539839444561271489282706046403964071246763415963973361452389551158815599927775854518056086790680644004486122057029906902093167318186177986502532807034866851646271368644358894708878428581184554658782204482655331925416553150986390695751911553785200274650181259039913089702585404502579353063558931001262863077472923950282895967257645284761081640771168470771223765481308767043147686085814144650120411092390853319292480998744142035786261063350703935340603615476936914575927788239480219524563367789502783433652464821554204106327626267721753751178391400476120745647560224564162638742813995209851217298139581659319205326867809147869483365178961778683758105460565028063890465097524040764514937360440733135014608707358862420130450672629658437387113815211586798553787327245887060324446068382769330431107727580039052190161000631708847739180181661730637882315896749889871472586253241241526708488837829071091274433936808774705377177999290032015365757849951822586550742922015469521284758456037818556253735803103150390342646565325624920154617822401110265133113605920293939113618825561164383891934016380920011447873771261929051038682840755092652967270900477516345385333993316964908907442049110933565708018729704369165767551543406246815443158485518781602557358561864845279975460865684874874139501452490810557949439679642554195964044244705823577303481492422404797886192353561141444841013101898150334899379424274445934154295877160581322492326131198071117400797142442790989603001719355504453771717721688125639242996864445339933719182316391614872015092928821875465737545844368128831766623933900568612542359154380480227333209187558544200597263539295946825535198820418351789164423250934696666866875559449904414306167127982607983429493096014061603274319320969227350004766835294124067520261548981337602239345592313612634365762126735638551538237693598212382747258173687771852930211075888675870197157495621875957163836831583548118454067741586867132166248802000469689578118248397603438411318291289068875926824626731410477026144904588867087492740260144955566613801398474074366341918212180302562974263001690763572453348370498482449967273953980053908946209154568791057851710794136523639119866361217188672741600314660431701894490143805481545351270019962793461210271446055361166155520572888796586380284616391392694905610703842877700211162303886212645986201500556948018441909619893971177644509783691023904480017723945969450430069858074440709571501647044330677507699964047126076169814994224637703920200740957420900653920129779105709071866651937233142805394456541154294279433549129540486984890210200643762660622996361001998235769951456350519566928064500678838268199074246403545770231155274628709286318477205200024254910751912593098369176514807252138680211379019550265868185890904495579749519301106256668276842771282084616356690513691638686955622389562328012027270957234328514738822985162290559089145996639243133787943488924221509967279480857375824251917275416342499735324587595843787917339473147678605886650894183571082168256825665813019582070645093285614113355142738686975881229204938942254848162317045050385681388167244333981293968835651462388046703583381236435500459274951392956007902145291264264202970367774118684025354378309916888139380816342724551077214929877675998419184146443930464782715183537961337581445679766729376077274136066380973533873749121541304035880794497920298191858974132050753670956712743233026237344407313493993223142496558568553686677154772842328632424680957683093894758278615055354471044559743438838136309815734889001985740676174490800982843573496283260531626431477766440214991227344353384275623182540790077636978647871031017073316747232869824953454499016298021721926202640525751229930529256556786372229599430520423811551032064062262271623763428053710842412320439119088661490667081135301028056110360439697380648063423040550134169040257682394201711246993658546564378526635110617859407539583729707228629036090469993331597656406088056931478975082395592490614992193124148303126670476146292124016882997771847122423641487639050054016441824418175762046686072755898339363301160522955399514161177675815196062348658056966131450394274397551716379614882767093392912312772597071205664443317039549844245337724411807249111726193966907023538990618188079969163493781763112538617154480740745250366834602094646169654725231616541921460980518583474108839847704985111067925918613134388162251465826726335789265574198517993123339767438153528884639367180027020840536902373430404509131149776651072798082296348657831133271751362614673419551427629897050263890825034876561661891963391648551549580041013479030453106417154223330548659098723936035098633945340249636810407995734448112892268084395977484507741062410249601753429493219608083759176032448435884059713626890195759699826762003236158329363941169281495372363654007646908895724744628271382071520986587646683523644991882728218327576353850746543908215582717336095577284835753735782032170506853890482893929752362716927996168084422626970217931001468957448826892352910508182946209521067875068786369456933762597571187511079558048516463130562482676595382843697965794690371371715009691577019102815031331904932500370659756983501894202164623056466458440853502544483069878694562064472030928256984155857436385121150777703737347548618452797959647630903195513382946661489936617699062445953227158333806502521145612452654145043653716067805675786949488964277498957889940019753079630858142587517658809202732934530581680637048511652914717379237726026357447122781677958353419518893376841507344339284077796982929464035827519589106178560613013743225281997256133606717373562595985228235098363600413943171508508642928473522122340886305394885020660249452227240564109269905695866098045701324053722031802183537265276037752682354486278589787388822484550306426577181412485684886513430698137519895831057975958142061627117993451252118748903975316339463759596456132076928033840142869968183081245013838086839386576688075283549531843431347659948102625227281339428927753486759786870290210765258704969783782590695243159799667692222376805277811574623790782060916026918096569034253192905151568985437878957018541815738054507737513828753152018052027906639678594082751025223920825831737886499161845595720533769568341826667052021407362900878285560903829594673158372506582206503323628518407002436928029244724215451593601470833704093736172170193712562870097660182199483810691866025361062122581500990535486110116932436276514955620634571182744102330041245902495007582419221803892619178662864878576423863858628078188614470318446438660856426256106712083361415749785585323598309233263052289987368004267738324783541048704560164738012603301061887357962317240333910520432567283866607307762532288647931738096332522191340722297795756232445844492803984524251491870615567833132366306164569885947330433684762472583035132721153969685300264523417705044044568021340810979379022414829939525867786572584945492574322563319765016967551285111723624734900802086013291432131095654289645554768669223798184993405175870133684636332385151838358445257950025007810403381630808821075009043088414945532617261035012044643758046447795368211722373011350608822684901071039346975772207129159593380188507966569828751938668948334792139912709105677691829238432399330655748716652329608526893431905814431947637081208012221483307533856100580724710015676832677752487782121975135061165133482596517847763497486659330270587360325834577119638484970563527966198965955659262074312743379084147890006387832394878936884137598332368377571845093358020275307869512192244673841988132025945762375591522671792829642873727551239603223384537522002542039997047999966104964859930685699196835240511731143222691863191811373397017986629607867896655031464713609385354685907418173542168625916371476091789625829080951292193229063800419578211556568322154885902213663637594736668074827384329283796643756643890464176980168772953154634300720942963670553429581421379723314469317415155303759439286438362668520460923442673743156691519980953772482504947111198795325701999554230715946962754582113499691829315100844175235007746214892579092683034280962294948459670159514978233591178048295196232690906621727205074665574260960544674916537347588257890750309060522717124982471223398264324876604885105274810945697893646479859617329000443801464189358317980962295167746724720968138738439568272078855794355505141585896677602110620773023458473386878491190048633486752907952212490105784978271895358600789675797715478916776969006356649672472248179196030535730100186289374534874316499899613460348618163845238288488807527227845556650883110648813120092275151847485058505051716730757930268514877873586260134843174236509635460808560076694993310754613393183109892296086710465508531182019400461729271225645663154031337180738931210802974640200112878948371439294809216064572765646756080144840970171599629681983242388157862967342469753465829973285597361171989711278680449923385591130734775860454281393084262468718800246487715678708450245360405027342005860902825520418677860686178891948363259577970437202685663635590099697077933399610483713643752954368234684272371452556817445999211510052389662439264554090135462274974039891510931320321074112206537399467511096842501775452210489733898848034910042475887495659367648070458721730186371842577494815125953078465506562945343115058802749103761852406609603025202721789671474583097340796764034559902672507305536209615782265905936310843310289596677045781602198133849021464126123747225202934903798190876175517281226224732900204102628526746109055785653040009939767695070847429053479623206646841489410415085742620134844083473802145198460707073606569565844835758585826511549554224875911796749517527661494022681276278029043882992774292375330789859944816649467461625297041354454491402587083091457006234146835934933275242728504890784890286519975411828096296076030236133456143816366153258657734213834116367925137585609314303543089342973492070150980787248655848908116707579413780257033291270444016012843333344872906599251485698830973702840026076110289512428241668798074611783362757321430039170867101384262345175514573002093591557684944076951933571021017567042022799159541980705172992213553947904218463455720996553826328451300929034985996624171247007770447247692883013993552258860526772132298515117715296476507276909090139551714084457388120907635932847700008943537189465508906569238198569498299070774709189765572521460057556592344434676433132133010163434582400720350627784278739132920762038785119499914745716856772651277576058248210467238352551987323169106191619831890614219783214757737807502188306096136897561892033388226208124067523535771044939003169648528583706097499293049191045015185694632292732622629863913974232234692328885522415626890654074063008954399963717336320112443023446356035116948532982142315430976995352036424492266122690974962691812667098146087710982263237308879266393603251591498367777564528655390599979603156468282586737868893539601704836794585074049823443555594549063406918334237482776719526990234145178874119984597237937177931110493597066596235032091334924494012569742345434428452343173620606890135138265224960316796954026087811523061658670577713070926388468308391609811324923404510997160428608706911427424913410975898915729350163516176086406329287152117790665450154109693717611270974449395016463422668372154263657005194769959786479293564385712267779194818777140045776749502833742490256132233357283428768469863296582217772672722486744155627493587246862267994784928564354858380187578025502735725317762437758955178997207368120504040266500055267390340311487517748917916655723018993308266692733762070333090237221829385457478177797084040011285009614520501711781915949281589765024175171468072712028966593328891823014879279840036286700501451516576221253220984843218851569052891325680160035158519075194676419309354791713303677346750367356755415211461280087643808078108557127278880974029505538651091704478578953551886564012862124201247622379746796395443291145553754074858987494891466290532851496966856997176584609914637338190656416746458162707824642417030363942432144522007010867102678021648472289770816040621346843356565146139845693675099394934182468353063584362385146086644742686574275702309323693963490697770735698793665058947974067383464587416012154854801512321051794984253345480866286430905106443621705625063822872865811598328065636427513882506891485180090646391892993980230743603930983272009877530444353373619485016210392821535792302438478432283286494488827456351764325302718315007449547573194065000493515483329328363538482023915653858070958495144917452786582456297034633293616637016231398766157401072593754248956130184496540971941660629133670227948323268526979656189201530055305850259372623425871348728256386930958927598547822658137190495144090908581544490364567452599445913038080924870093180972563568938728156223979590145526091245036486364511079026958305949704913301357583003329812466711109824671996007462935909559155974658784149968196919462661531180137007789061635426140712851830436301159107989774786903209944905902437241616435947842088272481870761750619464813266719782132791203599332382397491400582437981464632493220839669784186684842989008154305836384689629682301857856395249427644015003270974431396600450556740236754583129643258778305475923485424357251003747884055582792529064764359268770330320697915441081336956836645945579548938000787107245794486008167207647322927127013718835614692569301822425231481017701633134663862258190466390027417580712760778197976638526644849719616495761417773560278617426174220580104883198318481622745486526993264152380848253134718511979504546307920240817525337673890407820537447153920514934692671430582160716960566398146990555205217526943917650903658356935584303442814038754906596529343264830501707035290197964450078161872893123341401644028860977184011238550621592260890694506123230779688981942214822366550476297745446776134584407156235214297075132702237494881700448074525186981273003807968522498626359049823392598630014403009767816860809374701670855533954246045509470244258149360781828032058964917218174860419919397815503916899289728810564265024153417302201659323075953359965329891221106547070525355229772204503759405948998459954748415714711466062085426909849443531177494039965697101380453187186576792587378272847190662558484778433802460598182114255326122050492162487816158884415206122144300537923322018239865143867645697610767889604216028993206901392264380377143644893203877324184814359127848774628630666748168022212429235481170119934274918586248589112379044422380323582747793409752490581267804410290253520062600459992606977051489537857971246696586423591179992956394291064146161391259185589196578409007932529906725883065990729316034026403620772711634109962307743566988094474875869869899391324696711188272600417154959555798230869584791570050187278053072541503456757870119587195289528369438324937784024911066323455433756717626799812952646787019630277866947978334218156715807169014754409333179512106743458935927404860608551121049161028411796425992431081632773887144514186075967912440586347441392093763411230933952352558879044822458555523465561876063019831248375509649266693404857209928677759907614660235589506192851609906993230294388930106343230572982903678171091091146963456797486769015753194342803883626430272222270248444093816204570289593665595436291221347693998403401700668816548327823344353270405334049204329002047413326031983780255064414528075262639323288568447417524383039939660122176569938524295743685622881588308500856958607331829188960525650870159601931774829356444788830092973687793676637987732950420061765726924869957462277883455849851856942903276156191267125316061221338376830966567297038644107685989413767768125530057974254840111084634646010823880109793812611179729228054046453925516749342023540019089070898894545776509118982838750289571103589022822372008024776859882738685791424224063442532144972710250241499186424812936593100204521037998625078324681730081077053709864672723796049471765076257445168521664295911471960542884846354875536894949859840984800490391844525743083664668644250150526766097626727900014012503569260155168852550867222043639939744028845568332361946734857871726181243576403648743951436652944676610806688274137285747976012923928494643671561188634918049905355860180877031149641745147337189892551914686971804127370909832907476216356309971917502884875236865397638403641951974749852126052037757754248379941834017959380495506734039003180839372632552676551353492616293440169492643769033336807841705024500338774012532706715769929662374322580777002776541662433025710247644645639349133561167966428400296125032404711047616096785849702570077292037227906352105224718461170582034368307372591456416270404473363085735046832874061391295112535197054310077802994364657611490868016593661736617937055328909221106418639484207637430131967504880664566439432038786029906803225546512785255219867670692282900702708966401667339962802978666040146110383635677155790179858705705237731214836841866332254746168356525711312025917568244480818523730619520276113723479635241652557558130741724772340229510462690449716522026700470507437094343058892686696916930222974263863137343999734483556270586523727174420212712518747874845509526248649276092437094568798966696380205260737760641662512369283769405787027399481017063742113640186053801299662135084333518269535452320750984620116148673689139221715949681155414734901785716040454025130580872558284146326089744286724322082766066861156153873993528543117744074525525341241648194468903076685000716197531325416468587007572397821513392953713250929435781778372528580303604924207486399703465907054128360984164404719925966422161128068795414172807278192842286905414686354530657319661218655197256917488624588248765075417899364305862940224263744812338019746532770052173784519219195229980257805131390877307476051622684377009482471247233581795751323355561679398352407221937066006811050194223123586600134541905116342068297811561248169680286143159676425003711322131613129945974117282042563331542384561507429455461037729537148328986713616221971755685207179241597649988914006473397868129567443419517667989041099260703396754585951699690994917154758078553790100768680899213289019016508819222699146667130333801316313641643234817088493853504064881998324573812554016956477784522162378744316195534716569455572212224548881207281362241742093149008437615779519138337090856713847297806588989679927494022902781559741152886365621740260379130811944851695571686077433683027741444320254061311321951527544295779220493424964776870111759135341055177615044815360136901779582981764953358581518228330554583486492747948709199442243506461097463421725235015973737316138341237055654806748606739941418982374434023556622749274249553098483885051014779140317935048389947884377828619404709596172142998090395280042633406617693506583096547784303698721008373769352334774974856259591428995349653691827675105786127782437316924201479150187685961173162734843236053397401706321601760094471372193613944916874183412415132369098137128167165616560784520461870384745387096088823416679126385988615707212125677699721859299833273888293063872232788805230523327008431789501743291814824458685601735691863289962522386404181631106632178728078005110250663504476113807881438655665182506785666361078310511478268306087754688626173478291498529695502899358951507787297787876099580709590199915321237946843619543913323159500160367028536863864398978725767681203240064219717045615138310115905791429042300463074508388654832772171617081747658194742291560402291045988328074205659033994915055684081639135737653417201915102334741468026391112395820980255994079273691806930886132851581758571550985798266789078767217002381479164842879671096771484819656168061804552348541740613082210915614230315791452194330595434590258421225779439237970583708788670750032526002760874850268927018623737880284994833801167065819341313885252017594078212298087086621304836517249915920817024266463453537500879165172169358213898637989381463684643530010008957801325428481646883211413051254308830130787972259370665803137541263887301412811059689139463381145335100056511034327942852986365286754372489979201498783699031358587313356111636787662280242756975624898046445478808367618984172230656613932548457218274850954339757385711589865592620013327938356731266884549898420839733284280297876522864001683344618553550551009351236217977917742030731834751614910351804786231808286766046622746098743669528416712181978894420237811086504621451890325458558809884219858185538630343617130618892532494592874199587178342598353477443689024195222409867035571739839812254141250580336387976986548568416312483286077200167122365650113710802652916695359050197758782427405553341546123559601133548192666041182856668007361681744304507849207818118754787419211005283762459060425555279341416744748154525359797659341764753989885342351723986213007060739369834445165707445561491310525695832743001292146418227134160824555009290421243063595072475140996892877192971578309535455104118709975400470385043887617806073114164004938151427450546681497266669223302779975400045329829473733014241165235426407413543833492171234810987370462298161528140609335449784727125268309291115096614412867802409838294037491580593218821900380527815095249997895465121394179952737149276513653944256496555901293019712695579186784555866567921777396535570988806954225466119318825952552817332307152112169562573407987830911607510996017794088894498946831939344909086718345370426454753437681006640663399437399176461916850426274834632555362809439555317065142933569732184041245760958641361649792880419566600027079610300368787154570791396851889158272998221259903785304712592249233143796446595804035754324521739720221991036676985956936392433864990945889138954198993705327010763510441442572523406349166125252053702130390892441714764186208396334202639765321418041520231027365273340546552427107497214358101741091590931224421660452064630699136850818832474427201045513043084105722685278971580064701567504859355352860753296730898630010562124778631097179345955890433706925454817826096991765131734659287472113825118152519736551574687780699990761295518575690878902140787766110263843187937736243535338152903545024758526104216049997564422820004793916774590961396663945794764829129486842915672642157948830620977518046005237391893104686490960593170731721402291537588803704803424915798496587272543936638917715297062720162161332245115257084132238766427239664646172383611280868140253336257586194126322318236019751334368938492683378915269461344792237446230411101990569582746289337822060982446298835394034301776437704955912703673427020655486949749025412626094906127885449477917153765369775586481707940220797139275131906461352175797715860528221002698275374738265817871349576042225227124052256772076647067246385283430019176010730706509018373355547565318819171744547913704407893240344024763096092377083341692418631574420571737564947762606195701497549976236348927015686204921521114901718685372929494226754413643578252514033662258790575632283744090324724583616397941097694527451741184941960065961947832740414895298972974540293857053113520480826059676659413026635669556784086879562942071436911758985130010289459288996031467045868839384809981645772806292973034182844057804886714128388752893677277487392877134557972518892960228422855821059071218581165646908835575377364659903686469681409175414510021545104774766461542816140615658797581502652415259444214826463779744415902260099051930236932599207578996232621144519717648224149335407255867357840302864510488548736155842554327420611785937852937933494579960469013544990623638053180089907682767091666059433997989450648907849169375122961859166011559726040317982163643191284603246543183961985542073392808513486277543186513620862165901163252342802576739512828882212185482452239467290913081745591396796485251697753401207122941499448300613936914764850729277917958767370202949739111672535829160413196006228732172759138869983760203885239899234087689497233610089052353966290591139512849759944762323299452988663457968713837304440035605733041258731288055633503722595759087117705647210367220638816115074284112416708920920027606454879115270741324597588091663076607545304518193430572640003321486806431694893674781359612621475221772840535611761890945502305333126609777726374106592322068186431781840074936429955734784992965975910319685527051707976737757691750393145527045946988572997096422333182986720400558461128012233665209827075275072595127156186185926440171830501708292617154383099197689489798502422848065344863744883633356736230216547019218741329618025794925809429176412973774704971346539779430254464259323364268867481848387338576943568554399826893748265600984793956503353698116801218684842994965307450541813038130923912584024326837840291977066705052716052907123048563678601052809962529729108643991560142343665084239033185883051848868691909757297250282394546101004038832361790716269353561896511518463728965228349970975272045940240361340307166367068716578602372162046472894260985236551964899744258813788603128131612355094849398905623197626166756664888291609129830108367559321615793054343170839056855805992262557825030128311283942594115795226959746135986474638706435620041225845803653145772512058274538691150860013961714835830935426409829875131802908598369759894807816180992333694307588561505903154833785569882798801862707591307011893154357715903410050634223321922392270002554788664371535954970058138028958991865548251876008180589828546574292105991695020718901009937337822936049818464064388304005162138572647900506652908634230499806520757005049624848616827412790934689938326167755795204664908473131344057183794034950284816745482416390028187926553394764728022509806589751887788162218168318359823448971632124615315078699980419332006515097442981957274498014285047467522751066134716597247968028064407301923718753071587655867646338765186706996873857597569363004427152723513830465762756111916127116448595290825402262134908388100140528141419028918435686363730424983533682600706783375839516249026759171081837581948776813951574481655501062285323971082379477375551783509871250745928467605317280596808688366307970095289826880289068408807111660138891560859378319471033513257306462344063164755987613060870368185655436722191010973876781972366649866514282319785889441882803968228553291374339143638642322147668316980846809723989921987360980315570696287557094704094183755877716301755301029534116822753717314643285419260709066922623633660596767866401811012435028484984922990401081887146821015754788079157038259017166020709581965988879732358646733947480323346087746127208418865290636221921868103944140902114364081747812750583201269123191233102717744542667342672116150030589864101495520391118135501965320721090611257995812805723508162797751888765858609877707162687632861014845661726328829317008857032649547958959123049418693595398951283972690459059203903867523322624787399922202484510926936972993963529519910230512216331125856125986633744445994083621169193876655252080269142324373290237718160648904365629466167679187237856743616238028565155105292070046506143283079521565008877186383896663954175414947271509454410251349036178477860553777470872133233012243377261256062223167653108728764297563041683807002389215437277094959522727548256110722970258019957741532196493755517112731903700140906725087610993402628589952786505782461545039058976861696276716287932258563290187506870115663306547388497998324274207732706188791203611128090497772352830864084428291503969589483105620117933858605986393194723791403426590190700458371882988011605239919003824357556394164699985697527878656782261568007668549189068785593722907951650174384222023032913100096476550362389471713630616643661304947885941443429707230857301261105109056279096742301729655579214665321778051819336031987980605861971548197129228803920529784330672422128312419286126790650407979557767003130850787229052213932712548235822605206853077357315126695629110690156728489252567429545805512928864206475097211272315537733031364246475781383728098805892775133610085988541271639963875073584574158358778894215608977214392007780190658638156974220705312630397715644927011471308583444170638487841688152291534613174743135526138240344649657295195330660628169574202290273728708475742127950507345394526915868539264315535430248252674075009144853500236017646026762992821363088513474232072877382517661026399351582186939612309221582790338713631496484422517723864290544226458474797932308801858293137779566020610297409450152850067873693683225601115289805179625565891473809591522875490385798872353732007289696379715042713743342465792410195841359508666174692840307877396905274927645825897889264780042548477403182231869382442361758691760938853640076576795976442018326193110352986458061091769988661174766681964462993304736874021548163622024703889133603180582947592604823644229909407063857874489247787647437556375301465694444610006412647716174963475686490070986640226734438880245901197401295042266112538034678524515746563560675219559909621485573536550784361184067433117957892842231968606205062617436404731921486072777666875543888591440848735170971754285342153501357648274191676746199952646262578815670557050344049689014418627859107895920954648281157728901890334305707442051441390878008773561496063295073446267046646198423938432062079365823331760980723701337360270188839431818855438795539410667269285124016672505001885339802844874436098126302756616134767063023866192199049816793745237792486523965435723337403818339470790093632320333973030928501688936862975605957969198524450090508583193878183594894001443247994055912520020604140519769374435637354721070076285676319083062796704794423509967931276142048472865061530902190944393496531064764847477140524868058582868160071931722215252973649561444155327313676746096553063034737759496749070120235497595247844100737901032277290539739472432652527565920549626887184688279582183665799739180444976600077735691100913393960042206490728807079468411924699892339129251640801531254757442513444634344993857156513732236668614883504309544900551086451210772574813024302938572174647322548993358483899120662298334256645811461468157219710069959422742015621237551000244173793452670883127522502870442735537199732221487874703343819878046253683777944058394398782026870415464748134102816551318203517523648758407534802223402664351053326536059594970017802921115995305514945821205152147415175551880485456642863211271055602584556988662961350687182673709491862626949422882752463917791679183807368433163576757205771647871370417601943444324037782032800599727565812962845694104826621815572792649678908426406820463230888255951758708165905053982136265415075073078039711585614962651424677424005171871054135324267047474285170983067618597596562488467642922053980243966750191525600760529571340385267506313178765976800465370769329347550707370849727138812361188470297436767878685965837889926211695538784684263452164850409530550341785222380095412101292908637812377129120848022008189102584771564856402498412672285763227920758746537498540632962108821000536581020643783607143114403453454255346647055152987774881214445175348130504139292632723021281502409006984301189805348582514969465536175108272765543763422452536436262717932389779467180401813815975831308508100885044442920803137040202242829754378596987421246751375391602765637968762053347646838646986781682851691428948405321083704347160338635960209476508962085329424645023750431113304602229206508234245262678152202683881122911341178655186908739909626541188809959031839886398236133369125491056338246512849512943201196272598156007109030587512149660832752841120297805637451997314937508149887574715976054654539752544032890367653290463199973800066246750246383472380970345203088911104601306906009311592262125588635866919513034520639459490546545402104090884637856830722899789749487927559956721282193228748085159123573026902621339499832181868098779249197469741029199035884713641755449283718460609517033391008620433692860919862059337870949259825318237385566835684223095699588370607121254215453709592773716124433205621438193761610847904151429409616393743859048153440911394667464876327335116605818629407544908992221410773410786114211405065193438534937385781441295370979759417130899156441224776182790618204491589700832103710136248650904988997552253993171932744309159060228127264444910141418817013436079220905785445392127593060098013449177332165565924292306176922355466568390153867940317171332983835736899744218914806518503834453703952962505131699381884418478201790027047733253381469678063417182289372268464865190708276707816941371111809360886884524301795588185073886077518176474131049051733290365913041892863697630500845632938560101894735208329231321472716320921554901549284002838229859669984799581944057893080909677800455623869944307403975324433903893373564955897217123236415606778761803823445829730173683902108235653897810555351027644206457503367495786237872702900339698745795043669667045676570348647323725922197228065213837551159282650063554124332525299658940119599085236810961367448547725551693054750417938999694282904610339620757468572034003800918772145238753733848978632112841178175302362758217589860521260795257048801448076696125399207728462087742740647585682452199458697452630659119260400757220132618585797676530767222539173865393045787670288087747599142371038422905608383324006385127890699887235079423044076307652151976154671838761406098032713118164725606595061992398096700233895587046239280803666096066580796349612670053039242280382893313889039414604150800825211013442514310623187632972903322747020613360395154642263550271512181150233817395732545469613183142882329137970223710682640426494612873888827421922424537987948389203725284493625608720106207973051560123333475866961877380580724179562912400693722490765083669236797411335029117721247801946629388346823702514677826525786079595677485068739762741433784459006067376510778698993717106559489699194247063305909586875039057458909504455694248151696062625884210299048641375170597101074709947318971417136824942684251943895504206224056441025304341134421364711448401562408210134893286902510017225629239257508256099519366902138506897914645433656884488178348817418588385752780373733474988387182763883489562184262042154217720453010267503855600525419645904882015700377759656276282251948828241839033419853185327399620265994382812743751326218950571793382219927780115221003256600664593335358273543544345875400193538675560375872690999577000687193947156674008550027959817602495759522574465364436014564080363324288973604551292387886421679484835381632167200899908557696903553972931494036654585319644522281076468785627374248682525178370522689847792845387701549081337058837128440685158656449197697985303354281381407257030193757875643874223676802534159547446564080673804083272615600340010411727026229731635715294724717952015768215268249147941709573764496475891112048868618397113534378938874896489118039968704705714186226102705344400864473191191582723499596935370670044979691894303655201075571030319342269866023866744930028553938618724307485687643750341041331855373568857481423855897167597168364519609964413464766976059286693845271026640438825696851931472197595724142063992048825060014705368988963460068351773722704256315188130612606084699659744709191334899689944013742339002088232406212269430904842939293529691467257873701473875661507765059698541562481290011021730599500658373722735791950478286167333245234154265031788437537765703969649383572695868654081519044229406968829929056452445424278689089943404038845797724418457089092179898967463950593735266919676359551203239645882171338570769494298885875713348764868107622958099862316140893611019288974641424560746282558140989258902802887591268866301883830815474466944128453910386980035981928295960105653722312084478182649519511263797771073449537670337863157858965127491170072345712978563764656011042981034230524464019390037072861333224029285038815487414661050736924744772907841765348148376496388627518865355905317626834530329093508790234554857810135005613493769623374981170849227109964005385472012457019523964121125661687337224831802017647127679646468122192364508737225352449283325749645147065352639889370396625834937334032935586223826002593858205097558145221208704731190783713400277835729704394597054970535940745181916002271847114302025860412786986904507592878654980264339909468833649316829634321956938701393469901678363258104653233517069348929170031928898068365668348452069470906938169831700563867618886729983467363221614480987369922805105543737591625858622006015547078167126796766838413285718778082553295878503397816009487317523028885170001729748193172467944823620464324917124512062787726037387182295501960596500948649472266549982349224135754416608991226246486541493158580791302737176597811656951002686766817710752525317366448073450678886281078217714663872622339129628696137232152526843218863429591972066539720929730112076390254396536675962837056182447905018600214423597267882180869446630258122040707854965578199994975235742812175512238272558485601945507414125617649699604639959849228320511055369959659046596138098787190173127998141897073769175994283176810599141037676541803845361652193054739111046674558585177160668273283461073389703114592964701918440092148371811567593685067465317976311760026511438592013410992017581002655861346729120496532157478813467707931932269790362244018780352030195133810952810014790499860260888730267082997109269813819165947285511635897973692531116090710508286170709191529448653228775833303904381620514306741822577404697601397628192392568607697182660630812642690697966421047755131740233741041211343283754504124375236152874538580475410095447953965050128387309830068169566555417713729012302268123443819382977892123352382608572434424753771127664494807779511721117253375055554511549666923798587704494865322335489833603548144644553207214921149830089692550003308484007682683218213144562686041329957789923774334306480225710562215394147514580483631912063354127946063601414583366581599606114777895627876859377875703883172020345061081265602820130510817540864918278435211197364298508835408389735877496713835348095686909927888815949360943851568083661206023074530700947209628343326296104748798768633575750576136589689327149738843100933457130787193985498999556733355647292476308799534287668487014500944132294090476044163674523690733077998694929198639123824061959081355546031257033352461933685150609819509162221160345633558479590280610170797089575198360891867658215993171601013780084759352503217024712617795680524803875316703404804630413528960481279121847584544960622099758564235161029437527125788638425913015367615653723176695998722174738377990162620303788597631382624485078901597683665564924867481593393514888219312996445734396106403987306150457932495966983241541537231083683028785035395586486799975255819777004286678019089379934880555794608887579286024774700427459440382583813850007034751307224650644865084410815301588919506005346558571475778358677107060550622675873469925586434976440872989975985196179333167018263197980462273735849881675548826953036102701876076735619209335038240255745057766596972296434371594727901204477680473891484054231444494540052382173325672929611545382535669767294678656020390936916577227166168665205202474810212413581363508638348306372752596477180638340431596584875762453267927170776775126161113983851354034106733565385734170372136824321229024636120630102490551052813790469053981895170979604712957178332363293546191080954942092017128749383969707263459666113168657109784940213996917050919845250572927157211887149845825237229600406869633956396355924825597869662927998856726842118082194436218081937045756576813189367708451004415029334419167506433755384150296237283032329854376426285211634935960746980251588732652559439326501987848207187131452600175277002731437370180660021766710731405621139381617987965527586820268783761962260557438056517550368861179678972464408670110666333376666989506572590025206061811400961207901219628033183471577344753837889346943316139743222058456767949405582159150094154895579406918348250692835732179627126405451168946053860184840709888756648081443440932219549346024103447816511176569317021298213076475870945321597139293793352277786535238811085035836789949167410180111228302483881703331669026518052376909937556954388303440966114160965376770958809829251065387804792235863533538640160766441441428485151437102441773453761261615985783421912863280780476771794210470225842885648982488332395614184294669409481031277736858084627554564276531447697885296656616076506367519966749768778789809507445561845819167418646730412441120037081704773442432271013860558770544689641756278062179866870568483313552202588152162416267855996988515186584858141589215149865492032424078931370239594622069018625254100674226217483189442809704902830093387544708808842776928832781425421634862192838927708047688767583390384168715631835804767089833367290193091861936971250988610264345485302665448041423103673529288832135300410416655773107965672147351877689580495983611451317137901262232861052012790471531234440711531068770116380730763382908205982194308883379695662707487661145548283528742663761073459989331732719182921313160403232084757729607563671990132706038310079001457459513347427307945311409861597347665663598797812836384982135679581095342324524533892446352631154878006357443754183627183579380143728953770257134636572676836514920281540779951597335218751795175867521844477616813748528975994330613092896443887516530871614393332306233351699558891673872597949195882809247890816167167072187809236077659805332668835352011857730701984232084947430262651525573768721094657442741768538197862228149474399462128909931908400820151846042758427043802265676477186468032729966542918922686164782776555913801562038944217084220465248486837226951645180059493032431737466012797897770005525171546382766649473379597673531454549751220723966270078790087719528174051139675030998209603486582825716190845778415845792856255526595182403549283515129483679338961678360693293679866375696497128553222559402794190322648809655777257651187166315499494791708354108423637238844943000117444595632151929964676426174183787721379494724968255205958734409656941588172624728484968971131259333828399442449305878975375481937842130506199333509690676477129350781121659926512728524276247621648596494213111041839222477446656501204390871819212301900658070604404167618931296141340757954015718867064815896066843493437133189236896792003999449108360829276693957477114529999991671695136917446832146558049400954763635474558218181976031632763999412162931541135500867834470278110429289352431345755362302144898372742357053799973002172034241396911817277947190830341335956433324132264861932384539817303458983448111289337513372402358939862156016404223641085681518874949835831398071339900239355701830358316935276393270565346621878668008444388914310908318569320929722018980569587993332061678475754260113677747589798529504773664033541406389078787989502865977116052843852302789306325582760378474333668938388267071487517220704607685792195294787545989808906812137611324354062634732178222883725027240450102322163802802748533549823131710206290029694353436288481822638788700114991873666668406609311738909504974271465801433939281259896320131546157876738473162313524350588740308043181830306576684868504375485249304482664992121993272264603026725120415346926890807151845050645634367047730621661611455563579993790166661560600351350720771813893118628546417959266205063657847390767333960206605763448900872179889568490057565223698922750406138330078189234041883726178866695691088912187585978088251669610866184973351380758910424170280866919335205860056658739876309268152480113386393326419731481931546235215502585380295616419174531352800733820686080020137176495682377426475852467331952086307700014003718528190050567352130550868392665259004154116120129879725091023095925642193729155335736929944649909961922836280832730625709939710445042120780982263986518345077291221779758544805957927921032975256274165397137166931650991279512343671836580080705430300351181335615430436919387326915939779926435638236904650979442671232494677769724760606810687788907261538211137563502160576355127299006881505399424962168059053940474402592506785745537013704480863732020971998983757197460992490841140349258996753761563483055372665132110425643438304694909966636317938947749540280847246326294038486626025265861622971285343277743147074376682373456288826577122931952670535497258144041855823067174545443656541353696896363815417891061028858121396137334415635186477282761723620748216074591814223129187529096581420140844148855511102001060580422818652616395595313249615742303272720004979085412684935774973481746593122621742200186807184172744340263775684831645086099849850910302684759074503162863944025232103397750636933832316382984730787995896735629693635913221411306004079459475980092100620751656607772905147757059196114998745825344644988332143114539809184089867731141360696435005606305651704076291870724340723719577083042132900735553463988865209797408639191656162002527663901529856256976001071125077764912470474459170656965401836634475089525157469983076954276982227723454711643789013622350291276700341113128499946982934701169539894663150259709997281757070651891569577562713661203039666639144926248474532152878487443447130268145678521826253799673051716699021579422224590755473196566286039187951243301685382276209354622574142059690841715210997516658780048360677913085613056792310050388275413595712586220937806289990714965387357153730228046644447702486803748688026698359510891880822180469426786032518703816703502957253185507565949615883746744819969826832853492055107118653343719319601147730682770034826386234976956105841863279145749298225918566439992391859174324711251496780684904303229727173137633650746008658624158984917146720288917492393326095568198305796329157320785020478250590335769245616048298062524016956393775210192911964195135761734670601669838767666496546312002870475173303720958423979896482294255149526334155121890847983171605437953675041904142938874501572311315548000135128963876322757378298800323035779525182555351117898064860924345979757985993546722183820748620151630363928900825432940245305276650416247700084143282390844607720276964219663706784607707428409930958006064570968261186767359619536700251320328999472514656694070614245804727763675299874626617104263324534765698865505581652566132695095208862866894646491703541132902609224434061347289829898014776441379677768507873323385286737904322055170507779462333121754772393245974688110637623098148403676552204517612178618492192193051196724164353855064357823710607135955441248576311783893849074347674576459190288350732440525451324917665211488324521397915290987021770740055656557780980059114256266397102039350833198718447625317362829528179637471215915111499722328657431800645857102910563420881541105179479316859668731075087708206227713431593597769257979867537714534606455038081755872802528610391209703247042562910048248032365629656352634177992432438128874913689140037327246059510157642893600089883837354519272551337105120391870367032934617791505161813935215977197842531351064974817980704901100430747740842967823047426959592879934219337012253697418199016227174058590406672937656620856584370214262764547103214692574464042188762013497343816585112338094870038810168844387448680969954232588231094558814475374439053609534351638269094012293445121350279684205380555282810431405680039094317183220283970040551085384867689075727572954470459583233752501813331049704808120891706502527766705779436047080318834992463315314750538788424649077379235215561205113382671688147469291789508597258679266347799925389914580235836287366181944186243837747808396676289763901874023589137959992933592676578280654255930276789123291384250921504812982867488235100674411462265937287069469873200839099720026501789019032810770363204311170640253265797883027390240635375985728121179158789969339295218542144883626718139728856406431794960955114179458520220988766890456984591546705900755796479901560024289536984362625797769080920685506152569214962661620200569280333566334223367153278699594928081558411578069388561848502215550302628231929143316995599115015407723776399983741376235353402222855467838181394863015217020316950362461390174705000304263372819732678024992232140695287415755235030709422988113239859904481371597045750368240516299996285237347337474591305700345070170236077878990746568922683301452386080891802105641083851293941814308454414667987564367021637751061826023118218419671495202210570520472856379122459886861608365021804708615229495241464038375189711872241932375656474112717713157533569917191327788337895703750166288242106918027954107327720084992313909377433990972514881091691455897647005515828919693055423480710055217131440130916444509678153178737288929118688378067388519655703230969567458891113605908677157738117606297466682974534302999742574571506988923132391539109618133491582675960155975465270883286218697629999129169029697558462480381054328741098117626533946343350427400961885626434580048480705108472760503788161505627287964280448773695670828720433533146871829032854311471504889007347173422413432657802986302900890788137896174175670110173015576530283326569010670757358354106627471769155886429616605836049568459184962047704053059944781090665329548011284301025228216134459228793846095218439231302723441329321759396877199923513445556505453562326131452935543602769177686726277471832164253633304826159177904719754435948285431100797589509830980649367936742350158191236795930549309201961268628557180343655302209544633881244702660070445782011758699424805444677731108008324946905851559058321432765054922278652947654109637461771553148338564114966856277128174324840374789412649484538401982257377306212270143645349799203560412271661373462445150242208988693194240354671265676991945635475882823892426068803777387157326912674056020197026185143798035158727560274316899597145292775054565094786492606513238831454989093129270452360819904974441368454697642370932400847481730442346534174338369781385100766976531517598430200366936194023394531246117278151210762862733987798077357469162439015322878058296669576525344137648563343703775612905122594942776968677690209660070711258302306010082048232867929352236250747087549505426315500783429277774125610212058234166194604150500308464562303142657784918696929406888385542955698735620045740793041420661675069882472454390252251326593548519879616276849543679091793028540019579946324281135090861160793404786174079257357418355508045446886353796529480677953484564976515902123347101176246520686846424793460088269825985485024170850779647706706451209269826753127452709347713799974261431594677200360395739245271312296631170132539042522183239822459947255649857105624556124446565859108226552603566784668598181821529543624490864406679358288480223793479688150015268787919605678462958479023812332675738499954406323589376476307453419705491958849067934503805147741673311070601703488718904886870385130607642263099186005012242001317232316057414310137603342127749717831850665827127411668106923926814300299523708950366146184476556988240002623135344298768234498308920013415183529158090304226630225461539361245150600817231243156565740245314116568231286218214681573661253070539252495552530605382505577835090877546458567774541982625268939562047058075427778804296796354937449065527541704569558495016877119171882217662891129543556693197337701826249506359469941093697552402402533197322831299725386267253484556257572647443752939493415040986970719456579781674899038994067947209094126868503147333056488643624057808490968073172291789016527776808496700347799100825824765219137300625747534124293892705419432393153793606978230792004252863219094853587694123143171841122166210810428524354954268881643408862319144766872185321677460230960059253788154683068762249657057524110851497455504889016751994112623757991098251831129247395491497958274155475926483755675805748196959233955624097121369085571543648709793913344565053996547501430904582324241597417885501114095984337429938253940630806579615631188864044101530837908984476355812122167218056961709559062124050068242496557162717476131076623291906729218415025785352230750524039169628661685159375289075811424950317986091981020877440332298665272092378173677828983334902938277211472581264363925812435694878149756011356239737711613699651263242682607222991423667501257112968717936016282952065233568211783223660740452785447707596543088529035696781791245014033190812620240112538261049790575691150422251876494280533278502587394756667337465338496236410547678848913211691935505517404718426968606276138254543839588911219739042662941351242747563138897683420308522207535182868771522727412910959253048905660983143317508420247954564157794110042327694362160675440770705810130343825272456468200649795600411384099575079317470114614468165809366282996472347719644054717320777343148116745694940923675704312503870175687259711463098546635411904795210553336328235970341118807350839818393844612321867963351485149562472855514802256356652500106917769845598533899230537354494874982860999304584977547648238639019971005252146143155042162248052916460368421623031110063097707066134089265245977298883453547922627443190496311818414205276910489484051726089984153592251362233147168842625811877158905487205478042331267312169195108467118177572909036198824041962360699312552030891665316091769564393826943091752059484062687782864441587804151543895932641314618338116301582946057248401047830440266657014248910319003115758380309244409905387327484289842461691155444717446411950602781100112475018969105549446185522024603979678072337383869718911192646107227373497454317593492414076465352320708998437713197703071735696680965068523723611038339420617392807385283179200718260453186688831116975754811052871088949762876041645017564290791783484694997663572474730631135774853409720957221334104635257873532838964339255373451038319894033743778434747521311911549707236561758003358397141901936784011208591493402061131083520268806969267011071816675266910592719069196383857794518635998687424971596614351486323896800412983493277018275010028366902866594814662325472686832411514569497616416707805689511356204993411896961854984764029703267436648834085441938772961048447431565782362931267333258752811013260885403403656481617694783743165504633228141909035369027043840250647912540448371992995871053812118061327296318301654764221655614974388932906738689672137643500773536629879123726635290293278215471392921863793445590301690334182329403208284606756375446074065218903980483551399979031877176290169924732979850377775280533718734861838340742550517853616441506429677581064895281055702017804119726477910893946302601701570116986396681583517493218648506827471841102790503721022628902712585875490069317663942677107540323368213158848388602032288713717660527050849994499765150047807650295667214318955958823771719429305830483910395827072284625193288561951583998076505097921907569267914162579189052556469274413861384270704564524429828440326823320030703222332475607703947412249702593640074857341557192796836180258896221107701639941119044789014398856603220000143921893421951564863392972873761741561837816401789198417913716144444439447787894721144856417100595667566354611605234944891728302385132543168065045472222609940171589254601711060304029504031639838523505067666265364119069935837450711641109369012076062216750724988559501008335579383637086604118371895713183362607395070738330076427676753582011669032279591378689133000140468748516071033324281827230983326167505602224099927716459937350781894022893968490935923897734648975600646845886174990655522121060002845248707179240344203464406106449195812792644458753081629834058699094863687204381352083318273742099758492153553497564041171647204473003468013352114942514711898002308286416490176064460760355857260203895964439671295205941805689933369342117263679420649469370156040572161596705543197989030554237200497888262630581137265879212291536545895051291396116251218369168771162653561518264127549036290979125336852311267684480775640338720488303256302670635212196915521554033638848229645335521435091878678123084089575810397399742758309005552908067670881588460554035896758705036881251646481314468874341517644936797170076025822246997254571801905839669030790660447898566640840596635380897467554983462495439443872536073709162535223134205177538045215273677191486566929770286437652425979850145846326387326286015901463282653176134095853190268816688627243302897926136272369663717918518597067164073795821521539971134290924705868431324562753851286752161258899729663583295634780827711833722357651122507418968441088548367239674305183562834426573956070898480438179543628433238931377054178198862097706934890196583252548153639777259613630144762947337655485933689107838215316476515107483829995568288731020934826681640186026999434416198257882852930596164516449504695196855529249041607784959941535587841363897134272537883014446636400718088895784141217411100798003207534032426287771734970531831247787230879656538578523253826444166285899276980368749684098814987626705272770246903402433989052812473128731109426098123718131640101189363835110974861166905832780590716062910223526196742277686167125737835885094123882165549884264691291929191124567505166232290913420782216839781164663012213956853524800509214003114075559544210744741588334227137742213705482782002398278017558678608199201797165157225198084415373303396812965234931219428744242027657561894833369593486858909973359964238514018329523308098846691467891244303882966033126054811644251284842271536757199792172902608155480323947273169598502948246049593094210965458654348842988545444418480482860960236223123931048016591966765751289031487120140335563173343586276867276256211947440759848037825488944970670281506371894669488764285822684936345343119678698841497123887318459478711661819354615012092021486269535516975653541365493091045715901071250059726088366212957822163786000909184196251282728296587893770937120695340205036004422383759276565593646988319046604715852692165296542223134205111124482521774104601659835733347486088800163127385653309126344782295654519734157013257758579664604676143358937918758182144684703728666658957181007636751547579955067202908946101816596046146353819956611534291671489983657345337219336519271370995716287357851311091037014771974175519412712729444217279949976028845191987162214294053505297380102297692274584903643285225543937661712500277746155537496027950017179709513249029355131309481958461080193645269253469160701341998696825667611572960862270071770081360890835351366915939103603258641039590985999327600700647384466965625342420200095231190070273832329427179152278889015172373783472896479020342507487209272420843208793197415711235532330683361178834558242531627285652590751759740231893011888166988527563600254224979647146888666020334174441964962044150397432904401190125277555546914257970214734329951508502556750473898833299799504759655577071393058363873488300605811391932040616059797865007053959883524495787972239708009570373561686339812126447458194918259584096533239207238439696527314395149710498770228601788240622362448688092341632243199879936251989510527041550028136751398245156374818665672551666391921126499414021012135231005816771838599675381428687114777322955615359642024926974263756987996657310847426325585213070019205569512575826808720378544887304738087678861400541454666195688980381801526245996077768306051500911837850801912001047842072242819813165953939306106638123971297990792210269186695130394632573838096371929616157015979413734096630263071105340924093515347349722892693507544332167176208475474142533705907911931378447321650423221758438801226075407997512334420802520526918567761872176562912551157337418903063238419353968629764667580081321792261368097377150517340727651635006511199935237951890987200123370296892893111723342867301403427471996847009301802135055281600250041292234659006954852936229808593828557490512918799997202024259331472871747463723739956729020397049776925001962445014962315428575082819985623014112099467834256168493411637479930445302642196089894873015915193422996661516430237362797640814070350226700519257453292872110512807208193044410398700902112650791144528734934109827788909002667423986491834638282989123718046083869510604218705489277448816340906065025798645257598940003176578276762860307755987103633144248521698905474423366814392073292657873920932924021536068519225623452942342008213041378905387496561996522025954651789720309230914777937314321523953498387381665403317935129312899766387743533480558558379910345161308567986391206811890165192190719194691049379708055457899292023850205636074801607998454007314166898069875196161730591363771582548185786935588833366204240012163485569523366927192705800205248866296086795362341911654585001740357553627403772738358459486175755142717097032453735404967434074298286907348104947596065545027985341101082360826394595773946137799776340424344700137309614025344259449645959997727839322587023634538861249674212872680837436895746884953034472713589187419095359365029034906161641795296706723316386074749281831950832916676262101289119661643406422247598365804442247636188238520442722519521398662752090708396264460189190445639703707345892149419919154903200615210930095667020207189092805229806453732563572087888562678489113868646686344334604296710375004040582696162396118685934188784828144852720496747137144521868061937755011288235162552351013865950591054370433365220704490941906428402798788370800901155718568144800395377851646189923212640544616588428201861892414196935379782808851709129628358283043171949839195540084641622637633018523367368614829167313791546173885326622590589734946883886883422660668757030835386734808083215436531304695873785417876722432130652791575315063448641786233905219913014256796317098978787958547243362942871572580497304336785952092741670765617515747532208889085204872488642346585383422736827092500174885712939515482391691695743196710246921187315678411330652259039784781405063770714001087167754912871735710625695964401200597263231792650697063515388503816798860609559729279663445665881809180714595992877348785522726051350192638868529790184724371834132355208994199562389293743333545030074167244882759901628219486266989045077549786034090996090230413432935674149939836455253685591048504481891021694768952089948963317067825410318923181085657658059126518861030379174405639751484557128616782688266529145469940900358569439296051989448579178209474920514202579028830949578100734180564181329840305554125155843537264104959582509344962953189710513363499613809308108955338348680957933866145115935153574493383542728036676907155133264976583780484116540230523172823840001986264711765574425360681894001508746512975652570654221206627420794562715305867133029273032877136730598270907453137295325198150204938002388086611409473834840748038388198590414407139068144627133065980181402212030468626467972832872237729506248476170337533607308373473079881998702565586779108993522000537192923529438272908493017291482108149881866224118076892624909738318761270177436294899551351404141194374386380429292979033969418508227195979130732906467086934091108035136303984042299297162778349170871712430737034139696623968474183103595773215337244305908084182447224276228944394478390040301854473895412735881613182571559895674954857649799417577458651081497733092897416023368386822517660915675271934273762363247337066563264899377110097026792033200296547257261870366794549885104220054575520834830409286495345070384921311083250386081215747626133325196527209130792748800558501115833994477006708846452501698648297138346186788743525345850145136514684942010957117735099017401119178359262336023298786950130172431134773355018931089275146180144809029407804816004479254534999321743181952547702311183955019045602451432783861892976862762632168200776610528682230140209159456619047092761815811163726335875175135530450560713795060833328321888445943494282677320776916931415919450170951049338067655073036064520004609104984205521657999890225068761353397161372658758948447787624739969391307782010937033235255439928250404435643965609111858429376099424604659457548939821807343327298383475621536645478738673382544225763644420958310412550874918132094326646427252700716508648713269286901000525061634204032365821687608944076906639516670432888795079735464934614493450480347239288552853687020221186284971228594534330274076010730373191583111221187826718295188947492670746854581030631115684703009526018159491195423751632500098281564497637022690626143382470774565654418866501576263017987607004921222114317708424123534135265643904926854144870281158055922254539336655485268993394661598381977459901157523670198456427765456948476031782745494869002510505709227159698698313137526936722373205304541859659380453801876008721018369920813186758815342916963031983712813299390526916673438598651601972550202492107818675060968623643134699243831877882773404657814602432206563968285331055340666403176817651049190095257587031306545455944132007504241163904523192440753545422594588001874117062745668810274847762294864317634609067744997910919835613483344656228854158598077013548510105476291912978516799477936155700439421289544462303725474665351454908373669003857599780839955716850605323648338435575238226148077484951813272403773583293544925181961861352538542475659504048202345121942760459490631133107213830907954616741170856939490396862938441366267248900340599658486260804435204906152133188676918011139554600329422480103221201476714362576709569329276071306823327754388626414034503476879886502915112270484665593174874202352111328279120135409247111323600650983333699313233263236098757480530233639346053068411627545335074515398294546512277793833140601395701074605878969336700102722796433320230923649852386467749156881144262357875644420117845072394525081689173903325968395735940199350120391025705784523542995047562798147878922125790760641985672295643370880245429949620983824542411872592286653354738457208825299679518098525955695773673038490514290591238293094582023243427617860375031825131689199550549626087676832579675858052983549080935254159678510365386478588524682585597118162859543754681247701878526541158736134770625204051620994128240869686534530988698039672615760394416844727627416824164298334363099060960340665564976190085101095484641114153214312356579292518732612667068278658441165205599131458912224552137167135980808069208337505340898480389518846996129219516384629034794380471700416970291806896524165341846075097289877639085350767831493713826353870813367740254426591969909482715877270616138799507399570779350636081520253988899285868877950945937282398937417720788856519738301550452579065925776052602714627667676662227025367680712100527057434637828596875861711808500475209811444946720450516781177987363570813416828268492845166232038450730152218460750692317776060924700022535957474520245393032463564302828559147779553787389220927036595898264238058158198662594454808785720740484321361094268007837147601186038554984874353265991721271678229531478077964180923245437022788763539972672682881023988201958092642469671307028162950204643586080859240602294473441667230981758068969318280807527130772931540752474027429295840009450009691781569492483825207524437132381252596162473001928382945266473306558174170543422746753032753508904230438076301962323365008167006621396375413796894550179394557658867176319194642913223826356940551818713792489010048462536319760716223378048516165307498292962480462857733763180175390121359484385011327501255393535143747088569701479705979590207553530496999827228349041811362050332045799256554578910263125488705730358638978665422156202137033702085776462795891010515579184362102436560950730200036442139913550122659478312489547315176892147954301554208259006628511815786932007843297543709949870145632453622191098812852462933659884108498401993567118271802334806045002136973472585401233862742538187569353812389477078548052182859624592762382345258983178282526675433088581267872837772936064093079347654329696643194877713467087718997688373489002466886390396526821143403025714314147938859860128945818553026675379845264407812826177718043796497018324091175641299079281070975389860120980289762639503826554156141453096102307275386605903997062510549101677374011608850780239400473469928097187711321590176408557282934240560310918462519545998491419123504608673378635070036723080668753286275405960836990140579509065246637497118095117944930895044440067954858486159733428001314554202219522477387792186800013947811234426032433092025624278412686852737221166789698367796741011674310060490146892851578573834580258799652962360827131314045656517101736536056961404388642006907490520810336864132886925477169022856675511507813705343246764526052952142416620972992044449652093762027522744183353656461969607279648459550450067067027167772887167848444393301317658194730702491473512599736414595270286205030895403869988300851110043567713075111355145928414061420708668597397470802178436991808498376236167738358735919557984958275874226581332190573560143204015252005908732026345376991880632665163759289576691408263539689797856304237779081181217715952419216550974945156254743609409260901413399237699884858691506176470683150133064499910118377571452728367457557741690127274523104477475320556452905552719011958932371798696482652467793170669224706308615150007029338615062350240466482879080287231988645834041791617415952525851198973172786913861705844450660349800434852676651636280372799766032088167202564895811011687691681731333001518943485501122463564234850124919365286879118648741626111950280021135335855971891324249416998239012842880916294600639303671398250669689435838308112638776507895858386590126989606019090030436616303004833654801268864762918457425483103679210534036773913139403696029276126008353602193552980254022381390013196481493409591774810920345118181409728289912216837136587948860494477052550581291844282782654095481088215468190976860419217726789478129676257843263457066876863153820861396122796334143449487488753402160977031056943431696616212621664851528029918669543936854557907245736641736228642328662922312245036696686680637260415661027535095475078715967140249746790096064254487138947803898844540620500241152349196246545025440834600930367528684490870746980609462013551041378987975094958013843018555675157404501302619202986925856881135241444647998250459338023337690893729486768092524727064623055556612388359370180860510650505054839713887887713550130827872456974728343780946710366134424961537710396522507429297475880422543046525886528367921105253420874465297930588746712635224319293793360226968804187795002739153245038441039104227682362288902565627836458036135486168049122761897179325529888322136548661689490055825315313644145067049849428117936416108576588767200769229408950701814516076025524460841780238031874608697380920289418943504709804422329270911628728877622372816191634756120388778745699226608712190946962916484183650329082720697182055405732429727916788390591391212382086572585602846167884688925940741705463381160786687136863645647085601208437924493861854135846919289204568815943493972894873460249662537549269977110859190916168077023427209224906101380745581308046660544043833996906438264288352587131975214464786087101052096148191374105516599861575598288913079884318078233049895156910966640828683238424486426473603390230418158157724901737692818622066212388139633524456728760278688906246566847920214962349126356392848747390909308902418061436296984972213756492356175481745994112440944540515256399340297867630862134299973868466986543595488385543015632937391307018280433380505342938825912347601380811215737916995605356057224500200524760346660644993894620714926291184842694735951986394324416779979547848413074865160796927538254121295990444399720754097961745244083536947133759005193316511175658410723111102697748330605908157374479920567572030187621995083495837631267731456311652945102820263976249078846856501532050266147750869897366846108662544499531369845034812352257546458945845816355715964355047722401074538771530449601597220163676957095688815747234410624493680487652534335567639657280617266918928420173273490200207246575077857859569846904539596508376470827994423495980806727011096871671415038415508098564284620803793342514577575637699190958162679461443581844591324654554161384176474675873243985326914977378033987830281154882525713479568266193368308439183423482784497734063929972908686725582935668306386805614837643694410113771350261747801687594790670991347316715664202895503925697367527999915980637843360568045172688830309032275540997441483667841750512672975702780171014373218577557198036585630595349264557986077981143735792697579494639363417801124945262333508994102790848151533698614393072574961072922309230625418691786843461471944759839094737841000622468484928958246453923733232383765416639690884645917776100750658056371477313524282903712796660416036519129008875160251519091254762334601514900565739976067251467871935115857426523208905550268123940186049763393315504163614229592540670439247145918465777134657172608821625261051192177102173406499019811408682266577708885151691771412629537272934567010739783980861882798807408216638573282859485134542738099935707505029722078711743658321425234171078808056306969070794359899879912050849830429795643391359253502979351373169066960988745040373790704835567142850474359607572521227850120075903074163724441236246210088225099691565233904191675757033625657485001817428156550100617221375797193412968022681260963391218535221003840650962895753972332539338326449640548219350991495056529354677574070106932437107591053988252209355004763170372580957669174617296281255510562712169623881810202653676670045163866992081274430668437995647149492393013337703557884649037320072631226761394994816248381922309111002415257639080951793253528921485224035101158891163953799785638401512051363616066944470370972293804754358099298989506728766909943245474937783375913299416109404358461237605467922233101826344794298242871118256193311463951310436819331493616336090835606550403611475250820000292270160725058805302146902015779790575610278621170348309704230547653620966181554062928138899730278442940582458317463994498929957957034899902159164309935058012700625169171303920294890368137291563829007201725900208583377425705977472766582625048574107403014775400761292172005317344014897471380442785694185555542052537698972379735602331582276187454353658559029887669148791308417509090868558042372436280347267278434307778056668263285235507316884879499589420241147476122455971478154883423264348917591787008037150492631390865580644426631640940593641886020896389409126867276258627515827900240607981827835877434229058515666317337328850929266311166629766780486893053852057792589992319231889533714965797586578469847603475218462359773428213749752204554626462336642623463684088187241941262904741021637697847382923073974431931464030091087614016847812436108786853687598578396089010344970394283278382310544507909828673255991457058979826874228896007945692690669018752227789905320190558279641430927897559693092577030889288013043686304563478632064273010064413532970315495141771756558368269212968421505669947429459574008132487430685635682017829075062514847689702558400504671761533178399192139191546525463537275395742333274010828269304923514380738551863876461030192762724614386659515928825851727162085096836631393821483151176607680362908434297116303548967602274447679406129553724980261131711970503127031481253701886887792550377137890341246785959124718494120744796247024218013294782252402202244618111637447205425142008640820863931583400629387118106065520697811291477565719250597180130921183338772131282808687127715041918120830779871685893929763915851309227855152533084657434733817938657915420317493384913671699990115913280332686943504167254259673046683496406534494982743764167468648271155071814341960150708451528353149298971682343164852075681833889324832490662229357112828306312667176831482644413713601094351328353658894875157860021543183843018438408598583422133621536879951566559237734281090481112155337445945629589120523754575946056076778257732629570077312172867710258602139397039302705698591990866967678702533439440125623118297167377657365557769335404837192061760196261142440470621659132761113933696621713415415943490867252928661485649796433307762656212654332271193115618112088274312649780092371240180913964008538920372190725484629627941674578004013236029385718503958550472708774214101935067980395276591884019178678538035641529037708300200043605626640531351488539918071378311883427205617968631958976149044151849266375517508345679919961363264585344415077369755037509062057214204187964743676028828870970512545576218658768208888895120587382886587148583216070650565069715780177074380553282903948069525701581161286121009427221368931983034681638858271584966619125013200000153704008353515510957176653534907041875396321653243305719074321905775877198036492859999437438692625798818991481477018222567440784177368843780498823517808145186158880460504089180879899409851528203919964169489568128595076014480829669573358314594992188029995543611473451572859061782908252639427968183799087248169326487321388380616805616852627647818837751536216754441296615323896983005603764786806092411744754639199910721324086473835506276388695752761304702236599343245108397771288000275769625317487919446655729393717228641999275745506273775376038949772367879792998743847286764927395334272922455145827388829835585971227488778214220462974331159986592225729851615054721027218992367583261060757811347921272907826859907610443787223145540009293749335785609575007995227843890436823047869857062978827375170723347456545403221714973303303946835523531366475105578139227711086202857208026176136060462479029127575759011200515787097536692108263133276448191745986379504114512982321109882081242968287610391203578846959761762283504063149925803860298224745740484447890790030243474375854299271974286567200318549689939287161847760669887362140899408678416334913774738693332402140554096431067353851832395391710879578406191850570263983050282020899283903516256184677934009805762551450002670411694642495663221622466137004685259195510117304655770327107782904682186689181304425000008830830161649190083074595730324948712248759046453527678173708947658976271563718526669741637517284237186194990128619550525351613056802581888187320993879125132879233212157236780234515537485474459195385097422799195291978110383341588778630089740242901734763594069586925324684931256752389168405694719898264348994662259502477659596432448001371988713832386351397371591320919846753596420298843785041998771303855092551595956887749656139465356092787214830349176041335199508532377607353238258098759237474556836478199488328204026452111297428274270883594731076647495769920228996068487030179772162198298951475995232504968545951791916670359939652422068405994609426888512242162270900843094219601765141524843850211824429118036038959561972708787814455928732680283094427760326227020808267101505030665544609859109350536139322557830004477080994445231436739037017891218350495501781536036743279535620601131340834107040791170845729787008486254396215177309016696740157129178012826646522960277879348441892744086378502618788898054050833084785887727401841262179884712203757269250165401987945681408759974910977172837774991678089886179885446412566580271127049466700099424290559601048615254692984748542722328917038241858636933700977410970469782479519640782616102755460625664104108890844694493701292569119366035207612673634220258340982947535107533012414033724151943953933279522982400462142992623087808485084545030487107479283337222835490440986514208248858573998329082838494468151813588945819891371232799714534384782753255262601154557043457886335387678004214379622563998693774489147484907686331444441348392939705926011049815099195979304290326147423337233435239424927130256964239752602475789225683767405141874628418470407604243194846698769871961846970789183484941537105895580576036497301036005592191363328781462709524750815923438539479335261304179280788489381092040046508100196155759863793372755802948673615475763839969096813902259261552841888812424831356736256448308584298767416723019102818469981089145298087662544609183827681666537424155029575639149543196020338966121533079300097179484790543314089313796251191416024878853051456645396883368070235991272625434682852537179282121540193359228751987614001818520992467392411192464651959001607316231878470499422085563236906933546549752088687464404934684471544032756362271859498095241999374922377894001708919293305414657196299764404352642318613133510189655988015581044064322539938742802768679387092347263455470470804187193852054158964177457215463541020226007954888820740701690412834893552470781318788442834035107668583370003571977296638153565342252728978329466169061072194345834443267828426669730628930596585897031067488537524506894385511235927566386045025302727481292540220780727235980497717951014448558407777755752683782334569651987205151027490346877480630088917821655456316910875091523669911799483870748275447997554784707745172663445334697846778270199689654129505894456511983051799526219610184786304845972839389283709452774264581481324749767787174150738731768717502358948986747792642280783507984542173324136471892891248476750514307618227470875540079350228813228399675999197247631100528615536793426465877547548734157254688875538447024263649617692473740799228724103476182764871389292444907714164900544229518196116218814220746194742532717951794250849853494245121900630246853567686474409040833236623914153950345034517917799260164382778721057565562542194212627930706573760711105893212132448834062005121257644997685952069714642774584102299683747297235763128264198991767099564531604685090940912397824370283468045504390534997608733629279891805043524465161059393652246293035888911812386323608195553363521615019671342048768876098114386675320754486748080084798612699303677879492129837791821633701748127904951668068248577881743071665832831647603155125001192954392763540084013721313217251860135665290153703085903401999715104237343893931935191756955663174852711528397200073762087795029377588836247697815655632862812145233157232580796355943471411758817362501312772326254550546336480360848280059600328200985407559695528072146801803583701364016118684800582611221497599797850648962603044574098365266883740704626893254164173177137621522764476150340205368117359281629506020183088485183152296694261561803473828930538810887143194806810898455929156919156194571906665010754684188492688751902920736361025610510007746704401741842473019164288337581103564683912289186577600490525702732231107287006754407586735458741758282468581648942416054621922134742710689810061000000436080179475292562739245067297859144269326000858390166667089861070162385136092758724929907688939309888276075036564033855110027426258206855456941753144406589410895635914694009411739307768343387972259543034061953520194224640268761170987669573058868744950592373868574561834696221561096797742552466240254643797764234426657785802387307480525745761029295804835810342588035781986735077266059809100774354428702253530025065416320040204410516535238137024489478825577039202433894718302208263291375726280811739888198721458251988404369934543232612841549090032589794556151561011537923050170472975166715521009488558074420947639008990526085175194574562944817149912399564703520641489439454082736805426992973106969191287176046826455716150603659238932768077626669174731923604537384451652688080095273907079004039999959294045522053004603717018208585685659714994451412457963280687850794403468059885470619885941339465638561942332312031268840234716369560188117300292833478991760944844224406637926095572769023134490604677413761811320170314908481921405959495101942105547007015438237525616387800211831909950065159223778948065723129543141724110564225790491869601652472122529349380925984468201528651321893211612079682056137772339744512828523970864700574927281374897675068270617198506567890643384892254855694485910417170468741251374862613511301266441006926338303758281784516468667095299988665304372230932496431218268627872384176850653246278458131110043814358415213307688911973296595125253710704451604060106543957178987417893943041195491972942744837686340692344073209888473792670052930610583828667761168156214697233234581667704544991799124006113733761165356611927239236852813496218675459851263870266829509114851743218280787187101004638962723970801701161961682422267066457600961026540092688554546127295103603107955932048685599985277851885810650760977544960903965907589173634286198693270224333410906312567626716013408305831943636681335262519720260850188973961783573446260596283134011794084298337236185162669667531467226582449081711440330924412225940695542689407175939014566007273799336582769523544444802889811814208468038553388097453634708603146633867008290774359182104972352851801909719542436715484852716959459360394695201780143621168258215578039440120833001710300817976665029839237130500593945036315407463703674026370765197033353057722086574338990325227803029840681858661612606254171944367334809458110035135302614323900531799589338638269674806655830274408335764597497899148929435685134917615665601425051937502293653460359528364279514765731649117878312823432607675179879212769643800518270410057438787142012389451356257321302378712432485215850825169258626343694947844644531825598543198010414709211494334450397085342172502160894980832649853975266306048443918153222012517936496238903705941829502570254999778406456255594047527115205988950970212450940289795303687643166976133118712029329095030717215486900161973950233890885647861892939610953782989221523102230531209519682784495089220309066363018617242025017069116041371168395531311936371750092085138682524080263467037838640885142224588921993433447191222379812146736619949954613047096717440117454360841382570148417855243073196905784131765748711297189038139837125452584672786707074147770861960733877950566705798349843105519380470334548038638041723736328080170470305072183443075808822829581507231075963421481879319640761608152124004646498862683113986551622941930963275837342297551809637881305727207066811710926631493942931406428229439966378630190211197104935598755258609779171214302767155874373063065296768443236617099700516132574338486237642981176051879052727044663177421155472193795542431525420170860139273065634494387167785991588209966749932089352195122035985139800853268700127677115255671505542940789330524718713093417308830264990875593477774394105408972223229829363942678178048589712472301783316716724676390361715861511788954983731984753370765392669495531868328749618022243091928741369793942564923770823547646132760651115035999670628075337204544673120056364457058139176718142459465649289096129887884010327755547507461386137995840004661614617239121683033199315484920636845417836099209509477672580307913683430136780451530104020474550449676494786432717843845498648252891349942183779814877978452296600605361832980887107565114223818095436237729604142101652278091508321328029244885630355980646688847898621525296673224681412698327120233224480304052756131015007558639949405120990701118620467501532136924445366625094125953841615981670643888558043751905542297873400987558670806469237888045810753240424669134527875020481001352624147095938672847385632383009646977441499622066763584604687045941847140568000790254097290550182244289526549678306170291482074496109063258159801191445388649594647956775536721102056810493320768172074637513927087050048891491846804599858926066812206107323039067445809986915505530487925890094311952618318625680682100850188677065390981590797486795513162142120137912186234013647986502483293839951151248349238153398090916050321063822333707637758892701682096307300024927497622622247610022957662356758548267378407509733613420682947510493602367963231176029985986241034467359541042300952758132046685137317085850114665766279891761746494781516954444373922553707401701893470140002637730710861552300590235401028846144234748030089585202321972612371006781183039017778169684804628791491595078002563395999355511491838808773908466008023431121669688683187875616988670463614544404057879146570167714962023933995416794115414523434992939042670388655232435904195940249990066616634485399203214384673754679052115669623220615458427311455531723220171175018390938919070895675520966465653645872588866148972950394703152404022102898121693481715038301226934860614772162495883139482214044695618070960323164236049739395789405187808353230429846905055054407673719064940475772555965917067767245179071959747339996850989795955874391386346422712116133597460475506312961891159668247736270036043380963677115645540781107247635003935653534226564309984707555955973715838976664849688285410747639675253916805990054527382323897416842962782647211780810817151226907048749931749419852054566885402393601651260957786018332955458495779277544260310290626323726476159525148134445953839342294781513583300041138748661601822610255536023932391700530141266021783879214416244475862770677769546601263176935162879099751189458042392344492865190298788556080983595455902653911717670846412138466580683607610608291123279385186184220804057374677055045589287424680920140358461407817509349644371240969846890067351189406543519334547227382842695995036782699146612102613908035882152177128530701877130801201540745096121314672622372920537521737836638944321980626260093668028520256759992681393558383987984796042184010383942697696672416609737736413434664896034091854718953707363335225022175144372098048084177896466790392446117683591374149731917598848527104654696076280235335259710975344118043540408580334015616776346692092343748320022850978449622329710268194142535984419769439448755313293952959380256396731810416489733019912348111758947341649619334467258463526583363766765710558946501487229633684808648711875878084877667982017125835585171927390268516089689767323043719750668546968563185256112201517023292507331162205803172964679147014891695711941922974230506935585619705333605336536712622494429004488962849732877689593604692050053034025411404156491191300309822687863410506946939204380228761606014373409701030852366278911154251189949804342684459546781725137211820166826913178222057934644927499161337880809939248403848042193826401708508858701661698317714526400928986365611250800163746877007696121074896376254151082567860764273343320516127141915906666266978727658811862882940900276085915145686467165418721650403572686618345423720467054534302914560762630608303896084641234526838746803018439099929662591682627995329343109841560595951415350534656494483068681969569625052066010083388378038789103972602581648664104299276460640243246820966094612643921949905803178497838229246922957249379266985150195096102706057864828427637450232168969463923793031496534766694142582648163193682676080147896681347218519571394422874628223534568089732031582874469024813049380731551293145039569739479357927400555810637307012586862183282086151911733138127441637099891931313921755830117631907321216244358924243266104040606757918856484792401287614834034234085599142404597369135682579022982696512860776808106857419351275816498116053660751411708921560050750095721283727373595502518965488659200878987239327654485674941757347932276595305306636807041846037978008363790697347158640459112424897907103728549216784225969737221795415884826735760311588176088830759302327182342154070864824860215107735468745386965731557058672902654811447964027473064172858792978621329512777926206491287204246343448844408594638588982745173953754942088617051442444816341833596006170287176710359735036930378679874695118718272356589261098301390455013782151430199165889295890485448523932062709265535340377259847177813503214219639348104823818131907987425310965960408311220421660001463230799379383998101350086703331412223158697804464728652760050147625723909173782223796342943554824812541276603430996507504817555145689957039077138885526108211086160679196869621671768891570873829732421128953825388201719787701115785159939485129835172452263013691328307725110124381192173455167078693227778187358821201795010029220038323602481140989388262606042241063012422416216399484816556275295172979171081411436052606132592201802081617595473165066921891194716524678887676260853798210103256677652544865352927301131817470794253077526284774053402852099657643130219756881343235751520260733962764630361388331084978117682370023336291409616685885072375562698175002379268724071392988852915534023827736169602556168623865327603349431067166403117000480577418909015542179937366257777538824404534071481332372239792219600786523336289893308143762594207272055689608717276001720636853545965139139021152884498370751675749688114761384874714180104583673319214323359797804517179772556177529651160348085532807905210321691699768454393184175511137700590153543806550441284019383587659437366476240494970593352847479266752904838556413792921366138180545425302247031160838537039128841908463792601988566880340265915241181278429823674264455481150526967059923447137400371448777048059080511186752185514754106198957061987025252014037946913515485300740706921570839205547171910268435086389791754828642808640593646398463892562952338694597655284900751309478346736551008572917405461536818499309410537514869029764392520274439104325125945225165587294080959192726342950056793748157873386993533663890745056183661306964635640492397418560979075382904021425425008835663787139201869681498037442295455504265795118589079702239659099843769891988990286695438237427443959474211828617928044797539869712460649322209513175645924542376857499007494165457299761481099693944802230163742592008621053933140791872767377141919974585446024380038842299066588761614550886513789371261094520619251171669309131932659842699299693957977155315755671757596228905578939087572220855234593017948713428350221328794436406713802719910805540740388488925913565595131396436925525663681741081095995253537411082321951156552660750010091184139860031597756499192097792075314678439494412964848477845677051481440899456605544783400777844115453619625416582360847060633560204557553831072421238185660660377882746923855831964448613153157651045831571436285874650501343965951748837756480950547112299040833180589020104636759395827019660541530221984167054211997408404521267044904922228841693879680174519207428885182299803730902692169188245741529960377384845208233972854963500341372176361275110620790286181063872159381994593947563577118095240903948791649681046404003574967854714140209814887521880756310728725453627779450557485036033654415643082373425598571205952778681867428788030368390482289943007862536743624601303636659992278116498055667845056157360445176056662962070315466317637145986561631745068530934677001717839085399253609206758430016040913298255094689623922560001731845009336155009666309464419697098030848154436743981290058944231074651503499675174975141475543152489524707307984658488007918192030198099834400912445109297417932009862587913246851354972779945212582038054420426002926747141083750872470842937869338834486813698848394440168043036462360845847889869159174785513088836124029496304337976617163258933597202674215473283690644512361230607566551819570991816552429678013404900963873571746580889280683633640362960831585369091512169242372779361032709094195752154283210868855183517780651230310830031225418233382015137472871503330865706738829982747141507743020087293031298314532350117959876338317158757728976479855831794111579311664968094814356311197261783490040665608054011419420196329584671995188670538348947219659227775050093727631866984820286816512394382048903836646582995922299889462488523584429925171071842107040606718023382847198149778886943127363944786562865555984407923278379334311790042725545792171373331189244043045042941781535802326748211304235127687100989726668565817689175380822378412082540539534426648263546148043220636633848096885652581857677126021910230451688264749520308078388622763749578220028222303708308102296844008409561086999403842252180420405550197416923273160130198127729389440517468625132355721869931937729171504177888003343396240907174931161041852997183119640966458703759809825468701210367762385229173441505684168925090357369115119398598910476391714642697470743809848555999394599889831440392210506203929703055130595124791984500519883151902152253341925553837284890472230573363448406297873572068461190593697952055421864285135065077438346641233888457633680420529119320113973323561668108967613190806339453288661494998296265935386771885498487052276679446731587101933564400214221745467680637559567348939343541818448469349845654843857199887149967846814204881730293434543398800980862199458421115361405091651419211913463188428505717101507349109691955302584109253274805967735128871297548823689788316432728137478490128322579463788191647956374065382909136165173159994458864472148636378377042823581619977669686440871865439505744302033589768147751903791560379835259071906040637799335733232491644976205509287320326863904450926980567568819261119357808848203243014893707283440884052055378725787922524562285309780326157914016341746080980974465195013071196221060422253515800729622129569286387180208429136330885165056256155677104554710771493257182221871678621901791288172042527893467270027644086163012754022859335793765263053206220209439394641624790118699873702567527989350886950593677204608492710261609611527871578714681606951726223184922762587880162558395112781720668370807960295445673247154483788367809050108863015600827356237605140802352064127911948341682673418745673843240549753988705853989223187982988419600559331840956658934461267126636100055113845711583684924587695401809648354398790393001782174213332949667640925059203521782569863585359485586532526192354272132896019117963416201165456921971469721632027782921716316838260044143228633863149656223530392827889008392765707105207273045603120017338083178352651348154618656618726984272108642533529548027799894618118441066253559054812625968697460906238329319400918165377164911229708198499932844862718489240275684482347056276389714184973145734896162322355737974593477038355575782892037468459020304997887542807886828585791014609436273969178142222551980215950728743170297499639514253796029611066989714238915580285868476975830411779028950830594024783175086766747853082774788028263948543580945576873724744817927364303196041277333739006439022613050055165601059055891155814835835406472597709660888948048202299174995702195531310277987549827156887620319126676790850328528496912919746993011310292247060977928245621291564853807081361061713527156641711582417976698776635848288374983455869083658309222379131920600260927514339828828182435422264726255726296545663559497691400348914488808230320427986627412961330495315700729717750063529520673710041531075912740513855182900197472567107603659275600866694935227012528682704893047656964058156835732475519777658005726910335184614899694070512006674435384430942879622631742010573918080152643890639280849906428962599171201888124874209496034617749634354316515024855546498447713833368313539128906826067615548185814247315334666247427488091154217151581212902009951716413575540353108326701402367980725479701695562613051257871364909864106172444381688831007277953695079637371597970284605831091016946807868318015923726649565939283139647658006259064828191467698792452223474933527031263221434318946733766260666801527151326466076331388823812832612828858141215953096322760870276714119503031573599918525708217829757354425917147551658085626960602362615886717718502921877441106606188389239149739322391809809605150092209506522437436427333665819896915470146944838695109656438436362005600800150402010260753493994901074435557861387380892936932161690478112702562410102786784668735342951994772930066682293003954425172880222194663466646448926682715403163991073391434955214688907950168233112478503117034160685820423436482623960132592289583480217786041237512189593219774704299456895005760387240263915176937143449506929423552277606267735407597661734227371963193109660312294848105881278534984622233604039438244746937067449821541101200225414353732516397277646540143605295793807039985006201034057523975897330298016140494203351138619448004306743102647800231781775203567933583879953054911903932296696669341536884447961638330349149492634666916788881310567048409638148770835044033229176118976605711145535043270775094010393539047520001993047494417926300841496818144078963543307656653224196811297875196475402495745418472982085743710977921771878076761352715272718571919704909775322605624251276547762674665343909515930988874273199759454810769774697195128083813683244883101577781442255687475840090324488584432156008861747681035662071627265099083076619345118996184586458389203062180729998833204638712419107023095207218287031827559925460523428961644452489679049039851827897207081551932940804139399884512238859119350106897236004386782444415069043855531950460241473932303334471291849284256114332680379016192787830165539601942523606642009481681908321341965214589456950110281624079404663586790095265056493753613641310538658503347778411079944065445565603122042243597976718884504123152478592285667187964916676327467954012868253660660864654064785867959542030151926793982701504545644509807460768613572664620714996354344074839603900177381667069945519002348279329015925254161006079462972588317129438754186334392937021812515996150175278162393011433671625024553414501018175664904672056864533941479196158189773424858998722233540310502720811138701370676247963224141117868424445941717461927555563318780552650295843283067285084297675925197833135130659834386922112059032390399123112643069938580546255438259519513439664381568447497045717690225955258954147868498552614905131123413698522339719774269258024738316240908174827028268529633425874090485197623389457293482815740540613925602985022531989272859278404878016153599307417738310690237840458056745688451538119084200474502384025822043037745264881754784243688038924716512349662408217194418929683185868114074029885921480873949591707192027548334018745185848714685930248612572163833254360145513688846758298292701935764336692162435381481415042240582394492767181796464657545297141282721060268093807282724523212176464198295788213582577390817278224785989938848248448328845864038171438939853383925245957997267858634535394107910319645494351627659310172323997851807648280709677838281688023118019953494240390191977330073168721400234337021982098219835270615022623928605964934397474214095256254247824112618601233533368370854746213612414365505705680079422320829657556864379512270385456443118215635441152698007242583523227222102980637869792876784535498041940725819213340930556911472089631799148034706105468023564992102136733515191605352832027667199288096781609589422665886079109470700090639952839641061450095667937276257904385986445452468901548278418039862148384905354060212860320958585191925709488831211392755164019413596577360405866017421486802749413577432263222461009953121243822968014437392079465650165260425066954445629159056905630863870951188167663595292012382990752577797268510146463897073671369314276262656384351317140852885351210666088229688466003914562063935176547348501972289319038183386646927466976189060334437357321541340411604584446307010785796030471472149703613266009165825426658498768000505634250277588874648381408486481247795068757705587840098658988035519591354950493650061462214767825478620427666447126252504894877987545629428926941634551231004648088069605027565348001239884969846207267040138118980586574771893942139755393452258326171727167376660534548518155256960149208308681913631796176142046104046710594695407547749052374258784202795479487956750796376267405551976592857904548803571924693321217145022288856902610841160417262063891005480153197000268121288686305510955831689178095070264326395416759810078225016209257685685188150067894164020680857930883269853911349715528248845877412808213235198015686392018713638285296308938835963763684130700352510821116367410717562820042707674923873180183065364928139580835418202778551867420129824338146427757081639402758351039033354972201027340100098923576100743358650392841711339437070384152486055050653428232270494830885982668801066791854172824149076781959436064107257175606504911444629513808790980081140572397623084344447965880520100717414070875234404821999758073793696898394303379016845651860433817249000427571189877938816881842615793438634185724073740422311039515474964795791599363226285662701375184645677560959882829551425964437349063913148996285240917789636990963665768846040751174308054876625847034166446496706155587480043045174039432461363203004982261644969973423323601721594255717447436418805286499287806576419959978825831196274398078307885479222306399088326586371013003074349956215962866272068814154670645535906674615800638727144280942736730712037790941330813228861330115309281244232118397088189453183120518459024904748767034967116908027353331956633812495978804520063292873379969898681174594105734827956806833484823612852178521149392828299063869913300303021177165332454457609818570449662526633040220407525217889540966373405431349477439861023865233425030583189674997892633531112161306263582100358534672350385571556203574255658190046467769905995286506322024333481181139810864013440664678378229539138998135381391834441893454761464616854342653023875447533331526907486675526097380928651064464663438282663629173113736145893629139710645286329873915222988874131082594544615318286010992404526598398458110991635816861119290929248792163458655636228667838976473801286742702269247942098765022298110876358434787170327499182871807213502404425079830078783064148012865775069002777971117888363797681340591007342663436795032565843316681270400038020048046826789183710631025464602014284215502289283850107138888243588008778084313642721650043284013265805749667786390393033207764056883735682611497742877787382759527736037302079349289939106225906093024913144018858415524206490023351434234266926396341987705831401084505131574772542632372031276485041113867207647477186413125794447707573075988673906795317084685062377484770962705056386187024121051832127982193319913469324463902770393722504439668204333102617186016740552035238358977328716913451803235203631198149407383654417873430358230140509321867178504335200576646716678703469353110330921111648930772534974352288486534483323590606119756143290848433966497542549552461790234431777232897465488247602586840226099553892480378681263396048774060188333612846440939610237829783933834877345407773231735739190237591403817985176168630765644942294034220719382974798483811298178419002653860282207112652706013100284270823486798390357826799925402523646838443569691068299890452490195861303132515672938120049588915957977898105368885366765815227116188295186374233822974986979332213664830975823357654469280771042950349984219095950967808525348329762801039092400895924050035280762804681144217680072011572336690314292344506404573469201094823674420052824084831250222275915870374511682909510083319121116231625478671587888160017502326517004686458039408825893015918863151358623375734043353749284188050931047340433446073145464940398795717341607859141935510838078435083591677666381744743444533853929307633049322924488894892783878143587477717287936539574388432764219290525971028265604668514565432895228370061381730187501445078158824601454222720420526371906259569499827888912009928042750900490457080776310574607306045219676299711101446608092772223608343462489302009939677149139856438391073709166033824648168701453245497573872423022235413142581983119526352002720366475373930614412817121056833153951574743250140145449061412393191225822689028357605815588182906099213922620865411889048708026934195564486717732848235259189883199449145413074212549524788885450483764502911199287399230382783862292834393247458814525974804544425879852922772750650186890415184104718939498723557485644559362422935574199537945754641927221352521603499064645563643590408563669827171058534433009503185866357982142740076899465011433302232919621524757004059007934074244869255646725947694823378688942642727751919523520521007010727355019976487501396467849339083604736512798276440927205903753044129803550869032476681425037035729130717755994556034536237753165716251522563998346636759202059417985269674345199251738730083656579643105952126701282463406236868925184126147329765356167236313304039620562016417516263039044790520074961559465400026217245638086857095957608329819169796054932172156247361712270162520598004837520160590584070280449196276928705357465927248969782127003343256329176324787797521829861713671331602665917148840636531788244115267509185255113456063397033940970422379373829904701369947330083773153589812725472688163602988069097272044144102196945117640676786305611655424840057502032041876074683034470819235420847809154194394713469203098306806271015067998819345766772535468884844216646246976174863040288366819749570640918267780257275011425920087426714135737450159714987566787817418953386679535019194887051918562129492057960857305546447733470883618031154998109213149649760624319891967327485981392456638137329532276991153263715366390721907646633315522746848151518229869893186771144636001997895643688879819578791374949417587362608442173563450625962013110179626211919744966808579629243786879134034239918395674295938052119342363474091480633174737067821438729176181266399578560116082919541334554659078610674198163050760406380756369698918146008339292778479741227986454158314905782696376390366399339839143501074379669978219286926301918782266982223802597384554165375985514289240213637263510518501365363238765054534666521998899388211127641792944675339436280242652048857812017351856485064791720943209688924630665076014751613893851819348066255363937160483446961946379864710497897868081376086755842084933249771405302781365608037444738504513444176301094820408160023158768341913486154071251855564077986287577655286570292348864686167470550412789421446391966634746309966558811775234441163523762284450810635297333198417225389972596052307410023515484834983986184569199938916285525144313649746986673796388967663689428428689218972399565206348216594117784330300848053044656695170679226481044397220016993446057894581991312312342669379840862525013416110894852565933688386053861625623325300198171072214829726242055319153094351183809246509444092581231525166116702294143019634126649593561264608141638579733328725281263547191850539711715202815754368342374149852045046956665032877479500707458218232918190908818639213756415000127461821376364151162243210788939992167020216484784082790554431725799023804770391739548250810292282225506537641253818458535535354482913401937199466195268160643192863886935580301484271456438748036687973217352670893145288366101888993332556556951292114462889535542745091830893670483213299777638657052301693151899141118986716583273467613337940413761525529306316851693425426573880068609920184431259143407462038486898716345254790886309052298544749465536048320828806245089048912022550034551170704078441438053908792625041230383668991188260688806739540424737223099343388040575374843021040585270779133888304532499920940092470786027717040725034608492274398239153391451999229348257717613532390728001908936864777567075105974736558571125528660154861266243383023115798575382134121867078495974206763995616788603300452851500179430463294891330815724930259939794690308987987251930148335147776268330144182151110385178272035717653295894452787652985416657472359370152733540278731335208151392963664414904031904119979797399385540532604724959326383218201717249925107670456603649456467000420122006503900890474990170953461334546762388740577750789972070556458141999941663106677426419705195015782094436987060984402511431244302718466156464926278259558068409859248522724606042321141249456766998826989074648937170459460624806252678230727849638972569939243255134635305341733553853427477263156747505881097507066701659752048217893406416286846678255712082600437842767338670354283084389408077849771523032076883298990798051460415047313298261569021028663509696597506479037940909081903682827792957310582227424160686555782282998529961820191623962661278742646210073819914405004487459624293848640131088543467549035186874188091463616814436885969008293534826573448627640470202991647179837985154494652489112283850941262487745133409697025931499122966036759071310153284292889197273282179149468810702265053735237065855891015411371902055553485102351944005283387091758631107567297297466740772390285984712222529194121455415001099268817674539437707138877118115135393336993753977286430094032056206539007966181562244770584332787133198024879780818803350933433731613897991479421414300386016151394844210354295185255734469465575369593178402260762958632747319739151868266872711854705491567731270030791450686416379434731227522828800060374062722119258671930789335560963030812124326702388033232731329611620741776168393732719337889926751647360086913087165183399722058932845599994113506283243544200392573278510232852707388842300464506894382317871156321109445179571892691177074516286632176642101836089874550379768074871225390665108037785407768156507779055422911032509397446972353824430810331286176368401412265845761168593388846994062602322460154541869676374253474444949428707078769944128854110603661215307362794912217760928255078468997172504988245645822016521348694916408909098676052305985540891479445169512997731125716027314871702020820672166419135031348648235276677650521781838700551155193693517161045687071093700634560892991977300450985216554393137754255017418473257653237594894518930746906623392009607214487338257383405296115054093036838922432840563010118553936925990569962522651916444209031022964835031665793602635256728707706986362493167170937452162354847973612657862701505932697067496591713463724561473204104037706609231611399978756965512598454749025946141170843911319978232248006391180730398945009264497373182821546774980351197060785150694402949807491158016753150599392532687563137414296824591315562140346291578433048771158172314816522821133976886096016031386488801819193815524185942752471733941196417957954460149252688511062624058072978845437756207711275613603546580804627562949055355284396565690630347114608994862313288356304433332214675635829821230827607490676986024756817406445808484702393709194634281590235403536672839025269027081718019886962447653303338952238044874668050195623694060019430059281904576766455424739665119470523987260158311569248656353317857218059821795444387193655806016781237034477174677165572509258539774270658620096716383236742826097283043198172777629816369222556928263690894263669945991213357902843267617817096498647338095481031506419555800055425387980075641359263883208891139985147625897463360578221847450010968271716508051599209277198250835746774499391699060987679784626956608184916113397539965939463175357697406308330823766640733302901192191678116686437739226475252634315649026791489697474971557808466208235279574041640388126743850532592819675578927909421781110198086785586134823400742593075058354596904999998544706266572385067039344090904341308895052837185720633273195625523084225440495349364236668799642889014660847782942599490448442802727038440271572733279575164496559604207920874280017207593843850210379277016706595195336772372385677347924409216854195078700412807632546154491865938076649229312308355491558745629926422354632351832768203154587381780779005322497348245938786626345032605559012794264928531377378386206661046824190680644646551676439709343844406375329375079865107985068145178201059625034191756996567559202305808953657937657066996971065129786695534715284507307954274329740560348809723443111610374588164464218375160067804780338087130925623432649927472981488684715236807843296802352881647876898572692201291780486975126970298252282207891698886400241839199370248993691543232166753044236805500522932472888711414428004935697468442638939161020029764535430583954465008077670234560832470177991237128838903175871990831444155131892098168590615746521639790429909124034872286360320472852021412792817606958717168163706699690194304652432466964921300259536225043857748695471175238181553014695776153895302488280188516749997982437421345855995588107419910221084322532633454373502021613712489039522130881762100457187910697758656866933006540460281777844100188331911202484362128067647018778037966480550274710869992051849305159329187838231533646166946714469197412498888712852377725970097211716149992023931088116421332415823445043715257179468100349737150409933598573718876783887274664253186689306305713354439304104206105725824099060381445945512149196325134292590698836185097836608978471110610430395517992937486206374569256866187537291463121045987069904011651926138878672429818797478395519794538330505995151787298794042175707623122581274041777536711518736758635394703527886553247802545458550962287415493759018457701685521172659559292602207636541956065184070546218873799561920338522253957685191998735520986620290245488114838255846901283650462105500885160699214692396142818094416774839046287367385726333372813260286036460239014692001805036193989366786438272874695907516046972774532332093530430839343336301136026167633765877075344948872522359802366016107051404901131989848557304081762337226501518440205345896601987548535210530116281408097765791349788321145487492592666334634296034803917367194304396536137950468157184444298249142317668944953362500527439590258788165043787008921174803349734076683958873030477947998203328635825973168466931223977095223342983963071138280975521658403052019691080405990595492831540907351192452311302132363485364462394253648428135619062239648910478605989989725318293132763898527442019647804980676073264926935745475428693295344876423621155313085323163718824886461944241111858924030847253973634457891278727256092070795069102499148756100324963757414488336605733777676300901931192897659686729541974587227282764315466460056110419397001898000229136015725625497928824003352897614950409741695128893092721719174195753085860126012857011276507931773307114596489005699802231571621158599519386316381554033338510443574350827467335918311029321728198746236630400825795982935210649488714125703054651522856442128761159557149456662682159679038176595622456676809629379276166292945890623972386611126766094494672335907664032196644001538772522279470562804799801054892971747275354624357755561173289174510677128797076477046357869915976090635376518015945322647504371079562066898293935549945608314478210057929679370032060813030085926928727176916825927572982606878571624667153803319605892253599079210096690559193569511123679070177286207166594298164270659052624440855298224219746718071733089175549127921591774594298786980539024421763118060860805577613401928065233044693454901260396128061157278983511305192067395228356976094317565094339875256998432805191594714294360824251378562436421100500855976139714590436462802629589665369762362905822286536426435165516625544058048850219897734337546462460413915774006514529079445598479575417344314654214645180057797130984451160487198054899060277206292793697269684347161959293085743962907627464455546136993811730010184242140127256703710713468217778126164532056333763970738243405991957566495720535262010560219404183604684437788507927962066658877596361407934966280276103407710683202672492366374686457969598319794833000356496111604344301014688312844485539740682385979132261714156043496391010359481867400074119592539324715208066672990021398082531431847784383119092853465519188358476767712966085146777293739605650789787491438144301145148535948001293119812882910194434422130171179733228757944891575224411144589616420722913245253002462400640512830508611431584058311148315243312270106148342104045897359790872930200258334082980922966982828710771046181924902742466784884307144784584141746550721792598114901754634360594513245483817210059308572262141173041362286119369600063833116568676767718387601898100555343880496480768042129543353770495847151059422195017610834795221441582459879326061103549402637501660731689519527707394517539207664557889468012621883759457869848179768755317961795048062639898304859205640178267654479044535845874750350718047510902447990312445951862797261458838583263235674284314907851018908372663259714326634267741901918842776318928572195986136176771731894395090207244316696474260848193605157797421770813835562967325725560609731864647162592134217645533830632088389242351733451470757953243061890823332903055076785645983102160828262790998137162908956065848424850368052134277262590492683687997289772765878953971749774613119882916559214733942467736856581704373876822917779240810863196644463756949221447829268439181597779107713159722229633232708881389366913441160037087497638471289504365977386195631674800619365780307824051920300978059674565969585014451000947912933979952863406440973783396684831921362913212930798527904056873986626891635182106563770334624896847693974852831375061862456940597500074021492315700600964972425096294625528658856878926882364872077955425972982357982581680539335259728378337547387001379947392421096913791646320698565340335564313800081606905195749420530043125017126197071714677921366371811094316681431190104919534084156574012658402246735938508759592391669600982124364581321413104418157624594179459983557248595270988217141654379029952446675053461144928174612940701477439847456227708633705505326295752690828836995132177556850649958408164192222786380576708709699123922170294582246506563075215504358400244648552012222857777438132794743144217839215537128304068306941371882851745730540460727454837614378796442986520599503875368073448950184469552364978774155857546587514288016787442701851794184727807535985994680575310588255262509004930551874238606609988660613391259083856987720416219144643358275367441302052262725117622710389649665353407909093404606858916322918475377657789195379823433868101097244112183529360261174087916869566647532880965453930496934959615760536011200020509737248542248786846791306011524961181726749114008382104393433329233447116063704476919408646688599842222992975079609881429366577934947691824090068685193049542045154109645296436073675479718053960177927719717389782891101979370005321536149763669840798567810599727950758502197795445127266667160201383809784718627364829979241236621446066297507521434104491704086941876201794800006470516858011273159744084259487788964016886605450357255352891668301250022812750761368776318384284995238759586172553985342783670303454979461557932507425999449192343543708342520960332268028247218773815920184982347703089479216158798319336636913156834436398685735302696843016931354826429341473660377128288266218724047286664165253749605679777984137122731307926043415443037410128589247285362069967697307437825045322008633395819742077614289513256419220573357016829748977045738392598513807486559745509698166188296241941086918564286614766418005337756585501431674880882150973847411754716829509164929055519212935977799767480036704861714348844890949550336998288846827405604289775419036924354217531788234782080586830253301229698995506918949921631923947097456501693686530172847644572486155613709980628363281182143036270058732067060030932959033479378086436896286319484231128136498857830066957289053817578600110953438510989446027276911870162403175005585168367294323444888033149537414370148093608335975600513799909123585475100329502593596348379866343784174818589671497993685489874777199682448636081884173232186142289321557941069906398041714507737728791444882313874627182003726504133272218512669098937562051848252043783535328423983373869740392024411336610802707331498467292390038046136141295739215862982507561169551499889346992960908949082772546678889164652333756127570924404036768327779819109235415227967550771358878485493850003699687403140573805857372677404371071295873292898271083402248371788655252257660251417074678220381735967888323258357288371965702219989953625811277804298892949744467520933111704112042326128994009299748739876922811793799860746470638492604991690389025403061325566872822318640033856174137368536565869364763696442686074773882114625655204363905201684698977527229567478886682738003167546270075230849679566211601760955037840371196565633790735861687634143970336022382609980071955732584049794845930652225258070070715022235604545193538199058903690279913141741666890999990394006163790935502226217313973904646304090888869146382587294189949095793433861238890462570833560057593590162079915688173127267333791244997396989708665552022653042059853542379531638017669698862878572466507844759921313424965127893607403793660731035006979608268903618861054308682256500455975699225978373133428542590605181517090154678066716548124772976462878724307802622140972194168843549571695704731626505464837514163115603682695705261615599318802771325715319259526958449828974277874056140526845323488756547447775244409729472554537105429864527368458335502166174154273819190061132525919983190827360532090955680125077740190216075576156366682960975579241168047357799008561118059342500030588207832352460221692705377235434085916844330363308919146545811412053918752972665188866550794873629543061107285918732299800430705910776780870862798830339734012971931245061668131176842344365480724468431841705447808309489153737998354691929902859293900411603567168335086007257066992210955036089644647266802373558832025700194699841789668219642190405923594276573979232098204426808438367800034867332627508477977152626665533626855638310274182905001055162207480962566915149285573759861786863024971042950758484928093943069900168467629295708420999334023516454785570200040442177968403342972938908476296891458738000196450794128446119129338229539321186445185339529021996969394128817053654284795560162773103974013866422442708413318623641341374713839146605330731449768068717426865342714578457419997902816926240880558911507957090414138443143439822017285743945901175888429349862902287124489016944741819357760001961237526381353320432545717976725873342327406309372476075041286901402534221605051002380906679833866330730366215363249588069369173323301917318909041817382545996041589367953622614471376701740289420619462012099998221173120241679361320457034518704358827063788081730441030913484710031815106408820128677416839133405595630253441586595341973551286222404801176003105534303957305572783254992877974054295143797788695757459023382616528358220895870580559743249961555014942940836107223598630279918752689929138941728130767493370937687383224232768799353210430939146124078469018661518234609050708815067514085394416390601241892997497531582761980732152229166282921705073764747435447577811649920653757368290362578619665024089118401453774418756240906923913565882179642450699140114035281709136760956239369533263050522079941821942333708184571298022252339342837945208645779550683194738735916287816686445791699535709838058962852581410147815794170923401455725418610587214144627240931060056374286565538909379098909267768476722973839307919598155759965739416333573576701547417049449971786473654066477906584083656875756349466231618097305595343700110958168275138042853534304403850449362211009436543119497102220218249349114845320864836839879904515137234047007022447831963684517752419252700379413260034575277388873193122635230580780987796878466290127011075307095961592698264850561827385008478064465285008446121568651073381108205850189276826288961206283633511117137443412241218344779757343234330148085045136880839301370477223581642968297277576596500756882964228380950199195104952046061520633024872411562362845228472628577944460413132764202070754734230217379555839859183041648428785407320166190409958677306317420488764183228311546885316310994467207967408184308730156830150196136526778768451000087225900014745606426823585661499832721411494170309092365660942010663830437453418613185147912990990203124788353684866982999099096342706956311682108087072097393627932132282384916066563599575416980167605528746374273133014401662353677190465260970097866195274323144305628538932150599209077142624230795261007878646336638997953026436923602621971542067235968774273145606916684762371722358470521216813994644161271111752706805308023099736671122865464853136097860005848558184359058394762677221466310797378851242151652057747293604640882647798750727358776993077214905236223940446620629173767060647203122763604853163239098312089654756331458368104823735960245606340192488114176649831639744897209080483271601172345740363894118463984823065990348477710547542858587868437196436071479962134179254319708154008321418519435295148030056245106770277651395939031567254621122187774195339976349101440878025359748934957627634951365392308850256684874183345514271686967814140822051436166722735109917157185263470399079878937972828511464781990645802140268039029653197181224993364814252422831028661640649190300893132718662262633993256137947851707974878803445272833652230042212816957669812443818772824039727081227959243185024295574815261714849064087174418921914608424445353491400690585895711683978423303318491083373091224534235228143770386817712280434343406097897285245877938368337196528662121488144896885846453242147395745628364620404698997643845275320662715903430726961187851647419065729718801249308692619787699320584986670034334733910900429108747415759456551725507372406647424815708114705474154751041605047613896113945761224748855721419318300056276158793556505004660941947996467565894554777779582691812120209570415810616746465832674966190007093833133975917911915983138888652938236804553401522849437460147563437291842932073439009233073061684863665644303565972057914660964652340804101078244257475644118368182501349127599773791895415088788387029698648875751754492204060235215239474928871401169701656781681917807872585907150099825381680308389655679961799891442712581263668626663411707112902293018090303531224464357382862180210245261660506087922306121403317673545107847308383578042764579144246718669264231272136725906626646009237296560387887818898376330923726217908187230190381884055099856195510780820590680904904452726448017892884598156923790480255742772255213695537939444322267592911914737786403630543734357746798540135295795027007496424777216884581809423636542543074680701697534938301915103168199252301574058173899191593016031259080065246200264237617966301828233232306770993780535870248013016194495741160794069468118955609745273468528567422808506129963296448904835031961109967008899557593085512659217091528763844672251663374286259275172690158826717994664151042869739424055521220415758652422845947014223319574871809870185167329977301577024445371380574773757690380437615498025685056732901628375409351974967657018315611812626848088349128841147613477961988141605023195708807049518487542724207356246495573221165283524839765459111531364346630178088970008644333390325467751631703410065162341292742884016744511306891480670206213625972647137911997051529856837066223583701257392459997687993496389388851731805718088028189149078186579161967229405014337809478599958450188789897749450423952294737586194773082030993702458364663733809353455098701959789876704187517304101243764054518149231848721450933882547566677322967949861011076351210979995071810159060012412564678499806807852134283167641510880687497770491124247175467042083039257811757379067196422411852015327685335318362008638986002934435424581128147870442638989902297247812630816445937316839811998178726178633909316342355462423950321439909129081790114753701021298774281411643882431953652316286289221206717211559964400965919929553565391021546847148153802938035037362884492055476713185342089732424143483617802036423248030155101577655810383121743288141026701536012265934515740525668275349785394836832536910280171055055973736915111613770702309700076887702309185828725159629346786860464320271018988628667055440058299997101176034106208990780875094706948534226448956639286876072840304036495306121058442352156804129827058373158280278456756223439687339101635949346335217125220036414466852918142779784162792827525519785217066934667379775360626373432625813922101045130540016233716973700366634638401644920869281951558553527710433979132404884008388722175578888292429810880341707444518294102734870307871501830745331825681610290253587427711464714799204349999197485233643661847583803499670635764181342794137206127976864739945495299907228973278101543750624372718107716522465234654259343460951219117742244871503428140011721234757074437549885022265554727062767313520749790811089155148050357406037908639091676495539316468101633518955372132694957224652716027668920835670047962636729714611413010653341209518253146504766259062150544532534155509748220792245744365963316579994500986473922763503467929350215161010593400075409228354649389566701068964403272093503912851043389700958767298122463368101447330072435073605399749664254701820310455111648330807633485126706349350814445085426190045875422557170792625177688371799534214952484212373829463950075484388848216852673046771149880988596367349961279619272202572151711345897768006066830726027917843591258308062607896333527963604221126678779327121312117588013814496142561352406265181860211263519361755705105649045201572957466964642383083065746894468278852101496536588766065997619349246339608850202213723049683810853675629387661731270313626329380738879650623684135623286568608253560697961300530443847937719896121508758804931314471208729937862672812824319164299126406340073980092754159865741480779247270218157413324769127069676914490128718322709643020477042536595542784869825398066928554198458409635090992003376835063502728143930985883863256717424813166872969374072497311390362613850353623350404090184684269667916134790564119110286322818459268669896008190716771569716215170005235105649791215383726438047592647792992365367371454625132799520580179643049992842798332005414928451654866741746530665123541243388816600802497056408721353601139684253256255474559729924690438316227238095936789715869006907787336916937181150928783046570130740498598351103882829463509567421206406472179221006267889113482497568439142514763612002826199686280229619662655487722411162633271176242974909580550898688634244181334543012304595081809751098119019462129553882262034860384772675459624503768061411085842675509371986749494102175588756610556712451871721690444940950020628031068510005466304686435955516284691650256745920476744497195326669669069422075076783448730218737214252811081549728282926689177202628173391929648843608110467424819102840250238184567627717092419471096847244100299245909385444359652870947038632486078647296267324449673654587220159441143934487549018646859152526864317876427333397009746377985793855807115311825139644654072626781367073848357398017717131514284984607726497054938734075754603980892306366806721994612149074004500371164228138854493255422720271158572395410482476835539143867940563275510778842513942175828476322856417415891557565503909674401813600224443990740282399091995128149658333418120705039962121527027095968580652620779629609020753957927998795621968475983925173946310626897136037581463990326172442382368959099778779920732079518280834052003075743894104997254718839415849300616361400923376598165951051671215081597534381262117537514307402347174833761857681621400435231764506245084998481185607316571567003092881345601354584049666220478828550036942549981042069045880493709780560523812565416580161101923551102793122775725202795771534650838598449908248172391178227242165632820827674135638410720375085512868614252360976457377993176728013437665251194369504179000603278344856359454786556457334482912048406886295283988782907478488400433172666271235828206432766236856113807729749661492988532145576081909696008601529593234275702565207429332428202232096336549439152161871703337370780388048936242285142459810868598706506834951884352869511682297299836889774982864111559561425120812423407156305031427394241860890803617240772738294766369725887503233105846461815414183500073735983466775974605163346946214828890687638744654102935941192039665591444656234967417545990108904007359145274377576177545338063444577893910358364693076600050180578040727124265899627001617267224818756742219348851453003822231041041260221785410901870381593953857026771198423479343748327929260568714685718734716536079884918554217134566666910566789164361801967362662213494178709914673879553066270148849855978440857449075587648162406050648908787433680293620290657912837560922498697595584620291771162482176488861674858999447206004249210940786841918080737533906951126746143747039271656084839668002605890751169325987275500858757756662498083364569351080742935990135211866387355111726176909070481566084571228404335740904817934366428716692283295236325458420819156032174916514654618509692030998027948509747355919259672734541171810148326284634107825297145179431684792630040073572646219637773750398392800357031761833718429111803346186871490678124589044958799641247913207302205181228063377414437731393969643834030524937661695535649805196338720650519363189122969435649666799333841553864755443999290354904064998194063344907259726370758035992575637908134958256182574768443080720229544839934520675136049555819183699174722770938327036183136992884862391530593725166224473063452173744693371451887193242169804851697165742878128379238034277726926258643939850916011649350411282379477283155228290442364725619942991172932074298957570883035853478981413708492413103611790070463714520477270995463806173277910487501557144415706109956452948102210346363674201225345782745940674233848179366442601466166540562984559544228896556852892623610407930698275263346830205799755264577626719800611086461878238448135850872628042740418456880985979268534870751783967661498163135502880686196812893723490445491388507122213481881787735538727241518962837732537011828043140019527990728376479815259325231867264321397981683401452526936511876676493446035743076729668151486220862187913617949058829417019590762940864452930027982565512619495942779890137550569613739044667697978925474649911390481844893713932733419036170901204175675327315268316153959243501514987487062675483008318176461331323809031267717563434492861391658907087924551710571354293608842346557097503918764467423186625543146626625996680003764446102891249201067244963559043332247868973638378825709206044446593653148544919890634530674998717616043298088129967632831213565310513840891644831248927485926412764333452269476165937340911482954182887858900090655867070871836846199768294269490682315756133458429465392381448719073711268598489018425561798800237805837565234992641463177256229418350327367714261268100399761967825464002073978184822320093594796179751576201297498745445242563296587312742012332834962073331276636822334105878407568016244268812448372458840584948424623892861548319310707198930111329066077458373974025709325959933480319774998727367262184877444533558965178352919129240809163203835202388261708923945582650338202336575690228247279157404004749296037941273666814597879016582549144251831632842967702491694922553330278138911052132734772150015179448100291587977121036481009180949211254585917979518806321966194796556708464629558762373319288521796210334634798245953890390750753037831817392749737132114134561377008127048090932393926624979879816930454799371431397976444872188114086157461415864591433783635957408747732898285065471644065489582080315041222071802720355204634440455115761573620437325611143196417078334348449603934784186501769596591775592987120540565919580250398428474171474281576725039618186614658748191531344148171827463419403858578597915717433443022433361688291319363695994222883459593991635836301642558935210688144976523225281645176774560511035772440163501828396975638454465237565142516049347624541013027834678275965460327850263465850203759651984030627275883573306077983041967441744399827634079964842714518165593303731881892637458325392060853119136295041629342851185269836949576346965042701341535481311754307849157630140453413731392323976101450283404361913815810764645543276529788685080189176833026588546995959547320532474472747815374189423476167511164928812324195687977172238578013788988025586780322629915431459187919930857389925405065818440200980672627712579325926083679021588570009454485608041023078157529944023038814695919556291088738538592972469852695824039248354963150745309189686611001842990552413555818475402387938668161024332761908500641910186145437242221083116968553219770284394515361053026417008030983088922679340438408998120272864188034077197396789925123415263676780093567541727123547678683331670484554613807664850007234026189996154807379835112917591350970561058823216310734685935633890310274254746895957456031100810411723780052196123431748936239100542998512194806917171681715131800525989902515052066849902707279357561678156910576913445527150657340307471638047260290988723891351855603218955742233945269191807760078112000095874322196854366621329199026694666624474801361094862633098231241420840567095035209797199665133734725404688383571376124865227137703856092854488160586814524642848978552697165293915006371758657327349336818589090835788263895984159494396686126089886576764704836106249385241761071645188861340863468566228075715689619516521080948365954382044223957933846846971097401948598173007970881938758632303404690590930367341192178807942170689775297814404928572435827674944543529328716589128673971593457199337689212895469948582646543300009525516949648523798726848934924303894697890990648599584184733805874393909272729496372303443600092702773343969447160971633792219659953816011102257965878851475053394817225495596414180325100455473093932730692095987771744162298142074985978302348907818704131520965624784146305601483865702353347053701358312330069850520208391638909863737824414868201393318040652226367808053834923283853054912908667327551047302249233386078439454496855340153017000582021912400777412129589691881388684780811088411885399823053299627024769931627401195636303620114869527827369983435671124129291531269535045133798721800472122345805925502384431218869978627942705538481445343167490210109835344763615117134836869425286667482537749299649333542844254533173450324904150898714659167977959941137854186869983497912449720023338814028786105304046794675834192259563766780172298465589093780087805345654292808511718581547887480972318006706768419893915586863712442828206326918707844926697837916421668018086537936922573986756332188509158489900903811712821148079283856115450900174797695281595152768534303046192745178303930943270815444159455611436805111255863905643529019242693643886962840916225695040486220313771397194646178582565346137971006004400416584263024358285038843273187739173776875699831699425383281675341355042712616947585627536101258302010437303149262661178694458625311955411059950203374169981250411448432125450403125654143520536260689466357555421382754542654658120128911727413401430327749216926289091533959739687364899644926875710399199853166147735488690663526289458009762333536614365052232226065377331951482774306716805802953685841828074848989521814507348083523849874340836377816318014822158149644276049989865164693295271947705123011736361694144291220845760574841063142036369853642401373166685713706858118828455619598550300320306691797583788473946899797558536251291390742664619264693178819357612767296637008624966835492413182408993836102269239011273911085689371413103033450987443435356011418427361763357481769074296526380446061499424566012663131866018939447324083616636730618935028706221300562985771802952785376114607719836504979610936352704905626582919067581951203124128552640579521672374069742091358788353134082640538644214106917460490812365464213072597820106301220691356690602809785419079910781070455750515205518342765167373209180003686387528609671014682268363684450872293249606991894836474839927741773262679613062038854681004985863495521418325180271365705195534672703001941074973498168149143766833463318783664265630682995257952258958629288499109809878500721082811903141487003299701216050111774081635180565529510643737843486339473769801939287980261076297632489180860631266115122157164090973661622355173669773448611332148169209511146651738594265436228388360790710516723166189368038684267957456238860831697708239715198628321659430072141050873627597797099761283337732747674003099671444808142778588460556819418692161759804232701180124612190966151213985650052114523350513896859991624862692063342689150008005561462823977796830100841145013712832047609628961291225120522332789353716454905647901801346313743941364551158062840679509551423726496868254003001378277375166950815182267215766926332184117585278394801798089306814564841911597076306231239078132177646212636790422326619620320162955478565546383166227400063446458479709088243079209917129874834866932457289943762089528284156285603626327593329850604936889374842104907109468964405926835963189395355793004799277766405933860565311492601054602697888572158812452568116787516264066534587217281155970930596632327028444369679281166189567297026843649433690578515554916027146225741133967510232002130223834175220521505971281300072011988964792704885648485885110461153257132236507637263091695445677133513775900445593209454291383403977608014216536186395166910025365648114885564075360382911286708588249147422311216933468910482418315239157197157780266452495861898833226133494142954687099029196123011687500421923675496758066012010992977858216796677833951305584207393456621327469650297064391477737831885627944621940186886744113659809872672253111132740316491483567192385246985221546501346554386529767544640066445211475386179945581414054115007490726694727787640735615485109152970036328645609923745757880498894714979507893473115934510288293532943188786367384712089238079279601642382294549233774459221750935745123258115117858776804944063074792739361302154057641867169220867769088745593746298183846670221611449558296853243699607788303327102408738956709419294154241229029244274132933154530307586009090048552063884023641847661941081559326747138657423928114904883087057023063572951110128247889212330486618535827240464554443028213184583492118321831184457013215255341506859958666696200538677499542283539503638932780759955989876778684750307562896331778978349262401130554257635602934427144211183777174051046765212875592756074217734042869091225101005143064238967081303856908396024951482583189686315347503467869233433649810266153358171474981025596003076341318732472663751416746256232841519310256547187794266326763599807022350442276618230332230692177095078851349143184675552080803006855281259654582108983114881414357588783265550073027031244148388819197894730985228551374594597211104934576116834336418479643277094564714538119827914143984963723567333023587901027160332058202420299852543773691193504655752219363522052341576883206875242057209430191478691686286997557006758468058027389525120842399827708240638320431812398516130641201083019960623240731204521871326369554381637235267083986891037704470853117369572478867883319953117511906460862004026261720209900453750475423699752458197286817148520066526774850347335638451740746731909227354859469847778279122415896459652095991184978692715192809649839937089912277825185229756435151702434633577349787118855563601744932114284009048105700473645714394145064345224608131082025537729945117465138515660356744002493172897704660617545277642550851555446505389001227523504243695137831390971996930380168204498255562875041078443151488575757451314159569410643249485391068333336831413673685634432776696655703708382573008314201743363286547393249612975362399084872852925614619466363272583004291488813640279212157288172002384560611258636493934163993402103828796685635877274162187798519252386556778873752055379163063983924489027777869584829540801697893489058288878784598583816188660764083028312176764280384599637992371282900174366727131778827192551021293689211618194208167333231919450733240501128663114308524581946832865852498597196988745612851434243600028494460341363862254870898880383750504561542324101752685706839174321833973171861848617281270533997644458102330209655676605316780057811472056105251062084950078351768013456500581712040670521102610280836773155434339392442847821664552757316628351413920654442610995335451766850975948101799222135135679091563949680194837727766414876914878456196578548945003846989678248692554503006815137587968984114090366792124309344087959052123692690104577726389260855636426842209705704653612329674275115517598380000996974350142878068960685894129889747201116864598517311799885256413141772715409263499524636329524033820522960285251829275717551528446566356316831083274817575960925544425149418589098237702864781585199722605537883626288914744147178720452073433178624356797028308168826843688028557624025591872414690533875769242524939617793432871347799373255192756850098209556139207414571977861473603362362720067474563820897788432717355626648409050808113214184322140853811243695733712197106229973553575808781306658122206368365001219455961941808640770281005706271905377844896536954383686735178915419451908768892463590091805199418507012564461832140429355410026297015323991555802724205909526921525303892931142393212992225549294954827786645779178230215767126254561361214880220793941281096164654535097866290292554178375776143830771121644143426161346803056740538143752072359605648897559976482087410140369360331289790451712242434186862683774904973434646840278683942288836624954224648921501028906063974912455941187620481948902436663454458744310514764550205490335725838874753130706738799979050940044002875199220390362356985082905250695300566474616835119498613002093954166430835512677596522322111222845999747211843596475711227431786817772440149838462619232255921621899881877033339921647665659395327993174069855596889170444253907128522425939802841110893995247181516772289077607342499752852208700799409618736484120448627203972312054681565139675911580615141136010118705672277782110243093107155277077325423234491878664130608864584605631933724443324789113836174754630795282720037968169825503443408164469663816599560224925444943911973927626182436568690451154269888669722186178431233993307783205893290124784549221948380427801077064015559493431717808397903761556648055405879689761358946267507683947274501342817034816264695146559890625518172694989806738310680515064176129341091167488181585765209839408481194446395527369415355358243144998851128391468093974723761635580792093148639790462695080094086395289439651344574039513678199154884235518552856046687213164852173747388242374237555351709789210548494458565640248531936133656095265896720054448734205019813832635216519280993932017534119889613094520786025011977941122180674288214901761197176879215807715822847413075878523135889811830928756727528484405980577085704665975710434003987853026142442679659845425583785216908316194920628486180800722020585083816048389647575946147857409067581407061750699102597853505130072620851707751156793845494811453788514505053449967027326401101666015270056017595284185266909945291083891512783826405249590220958008458175543732481818151485873969577087693380750329245960728944737326190251575691974814067502206470585570438433235379940333422460331124061079694524480094927963355989554591068876611660872295028702515095879721748335383563646227301593253959447663015995860709342636729742174378771920280270425811429852675365371382998663060982988319639029751413600123902665004951922918613525504718688657706005455623569695314851027119336111668922888661528279572971154592953198888814060694760688608539796456699963933640370043798586110734096230611158783154986088377295797820992911018232173754029184148306409366326313205532513428424241890974713972645526520523337872272376547040319660636399832081672985763741081319701916240565209251723773915317356538771563366143806245713807851298675037288053484483601488477065272028763935247433524115246380560973350598581596795200076014167479207502959299374530081212274511567038779215896698315065675326061146642924229062249523996221395570641309206121339161273429066684627011683669895081696972171361115220087857532954289622074558630067721410252942980076088586325464349513341701042492491865708751064683021091403024063140992636849472700229836108014657353788069493695319171642021218691911882350741309463531901383452053948802812935983552432075678980979713287763792085817657355395480697590339260283967999533388431643402356767085320520918165117789593415285398526793837871768514652282685476501770893596062046116945132917768652392219192591396002254462874780705060372550503138515612246611449366849200175646101986295213658822388003440816060402550313854336805592733679301414618215890714929802381199335811484058448629842396201889706486401996708540652227121718946345258056379684122211909856913458724399284246383841592696308785302912678853207780916572550837874960195528079763024485754886501106396483938391058385311603128839731256953592012744479546703889364845807115807984005383879330596131193320188835655395766227983408884908455828905654839638583068483758409342700530021814502703850855098752192688956191502826179667650750404160398143252577608354299081298816955256033176960858824263446179618952399366098056666322673706090248746641927058673491399283643951668590839226103329167897836411912847092767750176406249627134619216785713492986220471626724049128857058580354923463223439141890149856120929830817649419894460822447254111920049787570418235956068493047214261791870846241019659309030227748388948224408951323667299882329064600911874573783092393594226458529194232607526273543031764312130488242669996597340855815969883059162283839936267660387319648504710945425960265127707512924559616501977967034570950770486590062118336679093188576358016112251918203625094550456388352102890782825488170225981498922247094530692690055046890624689504593132102707469422160824368149583621671051938445727284472281402764289897885989516945522680746232674404016875497245035577391102540927175187810695484147559428455021738567716846951492156703772336324371794333220734406906031190986876608370247760775216233749729937283835386231901759270232992775211427344063659244866252408432260128018990019806182103877516854096472544529098751850626728968115398898434865588812546530460603222894142741169687953819101877849095223108898285713524871641619622123994581664971880131207701080145568609463157580300065888899768864173679890599014812790348862688181089634488638871077494428334319133891253361884154915935644602457137557418137465819459437925598459489449918150939864258913853347265529739463982351173783094823038408224362659934592539219949266736684132935104404058949182926324159174047001977151701682047092978221273737722313571034630594410599159794076380656688623232351389983605122466782817017392273900873958532226867709845535336024409241285563894586693241845858131675016326974263564351559910361884792111579215765681206362152058818795758793922990146901463448809077687172651792839297095790789797746964979408773992390743565390327609689173591809936637110748252615798096763897749367322420007154911593696867515919326267195781010066052185946921011383203660744059250906055198288757461475515429024735592893626715925539547085625656214826354259488659448201779970580274184976060662007612894133251750053815548878074368990510219346906259477819012553883842250646827988110780516731310515434816114559241934015533040778554584203126418487364990570590019813356067804625703635659397552691397917354710243431788041247745265933962601867408626019978713151121664652469880591719312242734772543665814569433734722797051778349549604781225112025203147393122114976964777974696555466642640795833747763238317154541924505716745017428037884592840568129571531785510469254622779191978509662257775484079145113027387951073381953372965774314716762167638341536992404204607592153726655448823192292638333958625289040331354950361148857695868755899304363485078618482904560309944784257514194268678772760794681600733247821162527940353691614171799711756915270870759740328791402134739227515443942325574851870262245381099467873297352484704737006056299697650860474314143726153915583883463726006677097699683949901442780220901306666831922307710997500573020929568170722474870364971970932832894779326226503863406662270064948466859977115831677717511049875755817152563719675244624438084580985493320116718629644929913234116415486819715020412794081598408399578867140680417751749106856057113991560919837702976025403752226236398923864172018396209254487005256877428843834852708815490688589040819590315926886830585749595320686702819819193908331637328488259552254957102029876373254069765078411237253979928641418093090509449767742646101370027614636608182550723599697272111419480058953711304152652173873610253794312173877988631999812483447125074475064274699680453976251852071351897768288541160937198731177401601950570767280237814014760653068729520604934956356788408209793557763514037673877399820825437809324097080751047768821166259785079312691938217726751848115374553966125948425222788963356789414644012476191969760616249106883287322665875257427595536804178673935527979567053393032591582606896909311307501983005170100763037758555280305961831900226017537232878553560172288736091841781595337026719172582819985354987614115770693307206767231622604165137585122681674675372998965900036734703993792473505722307221056487282537290357089063038196700727668062599496468908929752250160855519603595878717352280782015803092205660281688310304372682843199102668792402599881006978003196967931988536268291064500654550689064573273278484011928460563502090292344778023528449130086722449398483731707908475799176306935119563358399410427489848394708114379923471096234480394273707035801689717774150923459876022828629930646484132134206945168244511671213615779033851389694400499249643468320078169876788292416072155801493763046467049440047151276599283042534539841187742827901148746324147489311988058179241759028937530566167551773878568963673235973618790228004714877975745497697342923276524852875801411501573482703128346361640524327985098063070441742364521323222547259087801624283576578488937103033066750647700829850686624128923026769668720021006153570717500492469624185070127986961930429773334285727110569892461507767462005322802444139442605457571838866954770742712201616301317356873689426767075190715537767593834593892143509611836983622788057366706162796188891352320347068591355178314187118240112787544736200259795929780614333771683144827606024955620079519569769499581184957205240546186039472051597095444093610168401367062377552736620962363398177738265320179663670264290433409804756217392580881942017556105493962333162940242475383674752879099738642664445524518897498158248593112205115737668831079371489118813029405194759148439858676840111581737377002676509514036071778654332652155312040585315847654608983804778327801149857611490847937487533902816830167073419319197910988357589251962900790699809191098770237060694192534165051871444755967715674209970679861642695076148715404863983951739240344824542163256250669738386235834908975616411803829091492568320718845086055907971301844250924651151902292569375708784800693032077209171610430215121645184306694211008948558081655190322733647153505440089850670022640085325600721598424237188984192413674918813460913089641506054147332338522652982889756532673058209568266874267446729603117041821197237685503920535564132647462043379609175281879898989768971124532761539282971442680138902695618019087422767539527500814432569121824325304199177167497297229277967683238902266400641200902418641481383113544565187825598803799755019688078598027514776887854613132949893984306851482215364492500747269768287189200711152747344472972402125800962063920940766613761476830336463871766815161632538849395093003975785308036130577299838867552793458485151494417675058989968528100693827403285035002320761757973287268880592961656466321780099560224142369107989568004446521686320697258324383582237149010573636396084325465423803726411125455622708047217373383595095473330051068071541442380065447329535443183380764415274733044378807756128551546852156712171160714682354126261058767217129909053200838954212621496548302330147890167245879954374763667846281967449104322956645622652973799876391731802652611277693469068086215817794210377653998170831822263771731684027672245261879330907896402414965908041402954162638031961875590689268299193268103735540555541526195812002269523940684021096164977261553179080372248834888638751123013708064645425308533436842197049573585261458033402369598572174913489208281275412381314704593377591138915909236737974798678197647880898404419436237897243130658525902265734311180218749832815108557674196427950398882107013984501173265949095788236848223869500252453096398939026924277789253484896984221423745541933971393020504053695575411325139841257497408736927904625439991010303475296195781460188456358636071829775098741235668114310701097047711747842922501460938496885727329076225032766488740022657993795237379150695060232689834487775144509541265835443287813776584192877239565165554074412281131764485825886560307954188431983529142517811693461682478162550155093573680685044124773774651274212011593767566505997490300765973581499514460497082930701404179897111523962871915852529053310406014073234675649459986275702320757671006121558487741483671660913449526088730993793570713391087481404355387023464557752990429674031410127146567021231279865449112521658720239598899673624213119008880911031053324352673102779956446759530740758742420108035857414602214754909472642026009019014278498742229621056862828550588485108556277328252270816722536914755787371957966733077876136776654472898355281637517292670737479439016999400267672799713949709680331169648020083467201808280324612333212822413201910596042753092866321616197048235877297029276570224859561058935524098589530639816615718088293012186023105473553221823470394948265388846691941778341907310502563038921295099106049482889592230447005201700875639290982172233778679821226862347914404046425331953330500599949224338171544272743039853620462042727362582505347158624808407130538488252231726082552106431807284253303799060679341942755988770666757319526248838672796320522206477351828639058787812367091280233248418260709756689434798371242813932146936037576897675519094796768314962461981476944625645171462431904843467159019343251734338026046943473423181616133649910900747438698460858436707013963169131729407262708653934344383550443750084722559157541980693618196952889982808790154350322714808061492536725402306479748558269397114454961273992356686305173056731708738324878735986394938150380166078043015093949555012809368382409459276044076235414342546344336480046292819740830008506989172574295417149721531315088295651850804214382257926785838283260619802213765464159468783950519980309597776207045367358765153660213425882317648689654543847485989717227932654871632037208929906500762176993778322298827246163606095779241440664749230742432273513556134647002525522203455020855831725674942196501974808807795304863902507758647553565540897936230655781234431924744536426000160264107720605485891825759002435575370939057654814371867133029299393411533266137709476186384144593178857443980144127635831768456346524098322322614599349132120544062720262104275925333484428061907013699819289347106232578725049645000751701232285544766885444678424614155925550556279062656931974852252515590773707846259094347635991758410463792468407737270038603647695453143230395137148223248268972243979773997432144990973156847536434042050853541058056905431660732215629935320494301288868179114959102441700099616697814378648319268675446503900395610012204563326665555709990109302402738660937761563240353613474307407320358345789411998666147335630277344742474716403838103886703542521414909372457286416968262425114125906990824256577283000631759614032294091684982095525833678978796707219635050387345458558488838555557662481438679847189544404075886918688461803148258353336440233154919142691296297632485848004822989661430754796095158271342590737774616779418328696681654088240967478081719430335733673150005614245118019366770911785395935412678669437768538861491894203460022060813393565865637518159128371609397331649594031976621924752051519464153426904716343619580137361587510949424538551675919755538495380923811781846305255970621998225892388932452972584216967007312653873792065590606276842480555809373933711315184885005357001909510941242625388316903142143818325407692959201164869773263539050028117105979243328800015537544661572482587792800241723182819806209877665269684502203714896521271237862037080516603412336522494586913011554922647808225529067560573866570781070830681795859364410778941943217061518892022864819798906375184621811044483670924961888745862744000516286575287900889312774312063597199024665555761795572046804343211906811512893936123391510461327512985981194261845123893302454270346494120141192609886424995554880701245164498314314461726271667602056913529246171845351404620733436660187247945421493139300069091095569453320719190327560929777925556586569183401674696954155471923037177877510020310163533007182164180930522563098666581648303316684603875258262579656152299063936312148696034797125296281006043265296081028597348274557732206241527348135638710008975663680550947544904235910443460959963376527318569270506070360390758874481076621768812532753838978794633283775060238722872858131446534894705504641285903711330666865440211427043676132777385638705591065569138943697365915776020108872353104371847355130087628691220562617348521338255177608212616917982978772749135945654755208521837903453616896538923319333699375293749372210470700427327254618253514109167936716303458353589345770219399274864082042765863456385995239922707807714535482450897572141056854421369116160831160080313956213977212508517016487127378097479345055713392195812923848248096057635665732027052749733266617575514196940604648161025059512441568294494617562785534952204435789038421028636483799333855837793642406261202341403662751931008117400477148966524275723251705743017114269955060882099223442046812805110989369453530748539694550725487909861641349987475050166571856525979699244804528697255016143107340481827472257135182001695417527299113864312243638950649261815813668875279798673982807935845533555949187860039268718528271682270964783109260137748064928418875592068345386364473371881153378823549644709142091526215758196491021558100147345138819127613227847626588141400184638620050467201423867864638130776777552518155574513250493424506905306214200338323346951977550108391338270408500369665142204583460834916160297426083004196796135667030751396358005832263114177736962320150797155283032873383801138304480350204590878455848310368255350618064352359979272468862234399951272217022415377628132590657426902266862077751107607966714788976894216443101330637478687859667595987319014876321878057641089571158374844497654505549215553962020203476734961874084464429862888296645617774131595447548304119938876041946438511264150751071772804108912962139969382262697627210596745516345315441104267982701521942046814894520832251550987815941491622023269339220996479811223237705238674946207596134946017389887995004602059119656595847673972897938676124698520651534070297917926081639909504800921536637142075474115504500210227134592025324173432341589326950582411633247199565410660959147136414951514641629671347327485888670270985755210623031741763380047880289317846238112356542713517154729948834714767131506131926501959335245777680856590011687583913810039161443988518740368543433609898931554809356450218913647881114746680690509383366737413544776777484761146737361646854703263766728007397208074263799351473293218811484941448815972295078964766549518599339603635647586646550031469108843422261786264410424532211787910724910870053823463773011238542825873733388998438285646595501004845556398647377816407893461543245633763415340508619474869232201936565701682699646397558957447841513284294561075386532201646934843273388577505508196252579638953475999393109781392127068195517312620654690390492943112950328840756427878206996283997548151908454843416009288346073985302726341229805431988942720330926368823718269571307530556597091413414781663945111476666448777888300037760129161150934859915174767853108772485866681564469440441550027390455584024583989974899792871411907832630101955662609632174654346270943870871536195657616617382453172367535337951772161797284586335528113658280844050793319952288082812405313689414292594393642572634607916830404522292434245126665872048362608790022247298502016954344979462504362165402779510476842615337154688551009447252453046607567961460160582955220745429610872635209269075959380872826183614500729650403561241473882470371378730816851502595497244171009078038048916732329124340972824532990772746775854812078270909297105469865888072621322137179802146565631518780324715065611150220946460177527702963404020988153536824386794247724665696560182035643814151725389983706758588843230990502214319415651901655860017222440359996868140955229139872877694668619622935715035344880948038539274678893524033005938867053024249813212198525867860476986923803313352611385115501144147251694118001896798549898134422278938744154294705309285228213282968937143403632098803091787481210301543330139652153797016722004389854456899526684573377521872252739459098003647769337280240555440259054931198280396009345535765142336470997296693645980810964763241057975765472136117929973398580217008253580637414033915453385679901574237694432087107863654884673164351960191084778853883318163994373805794633099921948971782847364151059424368911888062621649797075875643036693702829630576067669330970723941711656182554763516887602073292137548388007159079808987968216011046901646148351805404579029453643470345039888662985453418794841539911971611432964855353406716248821650160181090729460203640173990973503144273349513756521273106339104612709695521127115206107462829322401326763459158905788456489614737868572486562173085695194147388806118300019729283925522736124827856355335319355070226755020057311625920084283650140168426762463915099884656794533619239253910401074261849421582889648404226077773581616531729185453592018562524976521172152097283433822317786316614416623477146711084638658697148156110395353524922704941297886728374337451584006502059678807949742140320537740723728522675560841825409178126678550673453281685767051589412505632377848723627038529663821256063776424160927547738723165458315082440901735006710870633383904232613313619039404171752070508613992123060222467230043359089778554068444390569087063435444175969496739870577130383349664614365976436069493143580012791214374954574012011442407567245831286783201509052794370990655240772869651455551488679586813699453367270285479410565089902776253183231023205330655412926533464535794651102612990076256537441180741507428581405267057362678279844927583061504263624543875084886493951883860065674451925107011791357230332288778062512656589932203380524351205845849704939718606163784382720102732525156768481016255760269936181984923338205468226553709937285123003679583490285528252467658452151110794965789085552764690810772901987290388666315027780419140696069864172067239766733223350022138167130204501142904970597705117780793919089403479214160676225485743626491459109076931798205023051846907175484895860857235260661040836873859748061080037232456873273953152235301749347013692864833029896619914119529494481235670199242853329870417740510531650156148211959897850790123580891522452061474863168657150535538902495829735096780928766721576927452637462796415436970599782203197731534258835994175382037415643620979254588933671873061878663698719528177965204957375817521297455438143353491840961977152256814605256668903162875564609042488765988090539850999882853217412583163861316080070438035099174896072297709662946730531167993656095034099350793137304866992839585797095473937460267491844639163404616577890726754182773739069582226809825908203622661622293793445680408518162776695720174185247613969926067521462082440461434593213729413329738005096607815275157275415190663190722403832338811875276478241604804622658928697948301431352769967604361409666899050573269123539765601307681468603696633896104251246456869008169837329998939606665776856253525244400866797400290647057883078712156070283576550179172318508322749564769795720281900339828664697381731904367962907635364221422078096707704821815312943403694324262484414162440627339423762400028289218820670359355563146732282939846829786119272519961106347022367547048153378078741730301100341291578755939104408990420054265699807802247090072955848191702616635566499500553837307854414151794428224003963333522070140699814720665825679000628964707964569814557622221835035238765390373984029971717373421242203854705246198892701408633681501947059985998848844196742620511234227998092586504501357522163876989873139761613639266861327970497510473799699327321357852503346396527850015777262258475431294382974026452990786648694383525221768555336056769652231314602584478899439201473000358891832050540382016704646465963527017138917756378679015683259045504295001563975455981619093579437881269570384861340672764090183566006305089256897529824248881828341048014938678730150093495660079415944775599522612426357981547861226167488445793356307173111472347085534474658698254239235678089075463643073439878237473610091721296346430809807761026356956184876880600501012375328712645300081000792005585482986710778637544236862728798081627516920384951845391198780632855516788513034939731006960938256442048572498774119610485551885273632985313757764582497717807600857675562387598731307470425645121319153871721365421629243616742698373964044329356196381470958738388544480624668742484466692076185601144232033474556765255660013993636064289171976081899712430255596300055231344639408752549537217652743502921643309944194467580942073166274040944534959568346989967319080152574303279339947212504872815722384048500225482308667556995312973854179668274820856930146343838205008110546376746547496180636476907934822140139225763752896587984495628312388082815034942005394586837194467071270502617424824465029579288092484001010814037365728413088564672919914082911300506265358727980878330594249025829853591876414777969931553847101336641816111210286352963734921987814950656793112462264376094413088022659939743288665245918401939679903826573951233240418429370238474064025173412948600516140269649637826535518339207568124830299339726769229812617448519859132949087126241913554755517779112342845848562241743531685004741306519496576011364649745074490571506980570807680430215181892652102240668418090619012984964136552920592830272391652259911494852521796919369940433887777930107076244939283521097711329383334211529803330255095938235265628302508033326163145205165626449281960856574040714626963447141415285028624251674041950767892689787045132635842821445375873679253148512876842629352553903116671796880963416425241619249310375016579447488526720828214165748657001735897302432120772178147995311266844561609363452797391746695628792469716602425422012453154569684173547457738576596878045508559931572854428171732353268090891493616826513015380015765074809014112695645889726531228538992275865242747808591231190955694744056251841256459473503654467783943813858555260823493410650971519925158010052688902201387004243580820626494078878444608637864200182866161666511771686368102865274484787924161834259764186805228462375526650779643606512258949593510591851296779372028045197161955367964449528428002120050114403708557143512288168258120993411990709376950498171445184375625213700570861163128470717309336548364228164299703567791450852373934232583447809278985180803034813257739403274778352115889634862611330226822733878862023451336336903323831591946375401399616822905716740039824650059912404690712085927994212845590609447250281679344908833016646769370758402855075871376868077006578327874934629798420368962717708085860388065738418044610302169509335749001783988176046294358672257733002855868461194638564810470425609988612198955602138041868566551119152791754055726223051638269838590787417292436482529484365998801655223040795241029207090160683621225772077719703715927831830913389823942535629784902939071747827860833773422594927270411897385132642054600711843971276925549882208922051149391330336682293462098648955706192301915849275106631606147429386140197721680771667592318135640889876219332207971127628133758620518345847248372310041672682945552297776514061758078694246900741458959048259991906834244699943948333514517672080181103122516508726273441566119082921050274287837154810770422078944769087352141088512274810967455563960834154488958789285038316831292475571313410521394010183998011097259941542366745157367208179362835627575385177247742818897119368112071890183093735352633861064730925204554663372399745831450514035874954369905495984507563935403490839396264807222635710808775063626252424353828526230308450292149608830317003517673099614389828205859852565081192593956866703274112721936289159320460751462911910189921859515230569175022915653345273978275153953394897661109635077173936027215564521595948220022034532935759274755139408958661357580502652031850458966420124056400877994675513786193514960035316187773844151699271549623464995488310896424185048638755572345437472558914203429124098709606693603569692675511118526914119593080013286340584925807555919976258159466472566315834026725874543784588887509474629856953554725563294773354407600275919331932320878714074681466934060055938055868421581050760303311150403479262344331404792541285665713976066974081655661762544060322642568282128056774643269192628339960163039852086019045348943567369569995730618167905592908333455411519446389105765443524446080358034028507890388019225269337326912820103658357577363895762424909521825946737342450186131226955243827437536902421070933116749136312012395084542888044214221043434609648533733578650745724856169602440053543113188048443683276165903876003922602563659891822653762705917630421396631609265810726713415465771657945985908112833375360402384195152461674658926556567981139378153647097406971097812263749155412612910431714902944598135059378391702270189531444917896826747973533329409859014593388349121516067054423251886938383359469974318487457206827640685231973661047425426608122036850201470850059754429369234945238707278022079912003118571538518014899369529262434759778275819146134166890952837503966647151137986603967401450168188567471465031728569179979781769850999399693438385321969393590759752485445396431682943883614741214962851342403181419962476861199392298590743396456263380642870740323520877631542508962240479989115015260670017186997084571363030757515193526727539032941154973684360985621558896797271855763436326627244781195785407695733270200182101225670596797455827213005399066979387028667866750644349979084632204408370799838526978312800203149637108834753110092308011306472352502297284521780569501955684549161329324580140620931678185700651953060788829272348140147295857909329490689529280760345759925120451517352885539035688557480957559592275701090127215385603968503950662450654976184406617454736490254699196223147956149999251489195801198531213186043300812949132130163093531233839509266533549965893913304563555152651637007745475337637463688263279102075497152952972311681628063724227803097897453817291531666639855619021794109442167296289889155027414460457245193741601860923184015154932150569479853623114884745620357681036341178658003018251063502674424743005134782085789250098678856906934832411296984511170599363710891100445968515707410111550698932564157889993334926185347468196299542971134028321165510329970522827979443378453526632547716875036894967201665132752788543607165639647930393369321698729557627120363673735588414420078471585989715740367726075470001830841580138149638372467494679887664246080835816117110571055059924897022083178829323715995466756403970476444957738566287302823824320699155173456046569781791249898865836386072079401162401448556119193051617851104735880700521223454123816710928559764540972645931136150940560266597696002185781262340459792211763428515799894618879942870598287887478843793345491999598978075598483074432009345060438483260980871601393498231978315276007665937126184214171849346652341152487677370092777875246837431214821303164670827436604915425394617255194729436250749893896823827156593076627453217886254696169347252836874489935727978624282596713063884195092766283825127974150001577901841264406087811614278040509793511485578465468263207870809973318179816093603914132681491253823971414199918584574188845893851069681112646357308337523813448793301337607893216791361660833631835491450733305700315715233959062148908725623735745698646441709700211995594499205481153786998566662185571119403249437112601927565006000355932972381078097566146219319342109177794910994237743301094989844053504541821952168134295957070751510051337750734713307853990225961895074264915198639781753673635440126596287330890247461531344707186113475072099379803982430717686270783571724161363050316399413158604064825759786655546485343750481432413315178701823666599627897732081896362792107268690751278004772973280804930996629894522086794482640865898403028546703839554490446498161620569496118113040011323200218690460268963812971574894815097662076174955094605227498061103454201749305534266536599131722418056632946606980506430820384306212931343523993743688478705439664904339971724246703650722406191032362618028572481938968884983699577234345483111061115735801831544108415698313653309906212188434733885060226067243169588408581961762837717012245424300877434665835784832837337847546148218477522352850655574852316117902033451596185682826127024154424993120225044878729258687750315363893066061063551827754384811796305342609799850902430697144695718100621196092738767592188547599467442721542223268918288611125593076811938173557277402471120903931870729635619376586458061516795803667065704166434879849062079549380306175079173963082447042778119035150551497632905280037160639964474496561172394701219498437492039756223541959677312494464572882310909626565266891503012880203082219072092551388749816439091886163311304186398721449368486381812008017547484849873948028462903118719009506998938624411915888765463149780205044289745346244912484518660185066783925419848601330559209159308241158198515362974605149674210459662640288812149594893256179519138938508272786981956109472484554196284544061867228118575736366000623782047905796261741964891203906931587759410753355624146465583616327228825821525448351103902051361880086239021475262739519396752276297744284777613543116611152715693498496130592830512965075812626715922416851766094657556184572579874433504379035574052513806609719454691830471831817874344996902475526848267303199064578406873649302766005865527052502223172743227287210427827311144545975721293954871219233393992821494574693936698988826713089755621308495612951841304180219169346290925863260845522300580763665422387586447456976175925613385896339861217341795892334595412436819138562593332825013868340299137955510078241038665274628399585803611621350110777298591689886937219696996055527006455360581597795490755262715182824751345295794905450607077340925074853247451074172553837957163590386545275995445132002038401868290248666038414987358985886449565565925236353767091590942345164025594272313893349413316723589400055334580687218969499621273543211820668371621513676615355339280761971175539181367723682090693818187303956965383783072231791319350386620209835996530321236860918009415167862400505776431065849262538603203114258264085395322877914263361696867873769907546517556279836585286670209060535324962662683730035583936454880410519610988134723021326053048206104384633686105859646589267357830229574174538527960426115058016414357240984297832649065663904737295064143181331423152950610217300237063479352084183094634521068084889067851665419154802306465771471625385688301202935501507421620981968280312470301171997720958719364535087556020390935022277822404723628502155659329872487239802162829186194836132188756194025256087405329099294899298363171874143981774433204325084746825912480210579254924034811674464920436043100342129867040436883943273213298391367707139258403278225162579269642250442275827773798272869831810205874983207983680526939825698251065163572124705382731370381829290449471191072489281875015716709110286784430553287483119407262428631890423314522380688985079337912953031546961751693776328981990731319421391146956848447869082904063361382287869674373896866421832137249247144646753378892864626456991285345326657799270800132792934947862264073952289581673825473937427748910999940533001157745839162299122886755766053584602827351045096037855157402101267621774582839407783691850447599248549354822795402879702068299764934961775785264668713628395584383802471510141057665282064246303757563561534420025768231418231856056176829183606028788875425919962728555420102128906539022258865001921685823879189991313847299610589789647206305666904973861544677404690734360724764773619739104092392884327356791848716387412214691769024646182782522836130007320254021948264560765364936743068190813400171319711182388922358917161783995150285117730884113637141460276455836763585614434276044808363890831567808797864682219773647692213893245262784914762420405040300047176131244838174007218944993187299916000250614690473756798287010493954210243105777781347168259870365628310580846835574293825732902489095686461351098144440443384874038701009378879209714349850666816347655173776266690316115908097772509913181666431815249318649855008977816910495324536275952334919891517125017353394042837514710909604498881370290381272185301837763024894942146794472367906618693995284325187092486727392137711978155656274174711374688976792584141210875119665698889661442056752917157431743806527036209715292304191169456107021698528446668946983346754114858648947730567132434501103438922754324563145364035386650065888730661388882816713955970629012502599149349858624339035300720201921382916346577977116516377044056072528411401949711119205423218764973458863293457013484430530817655059219794343637745704846277787709297568337184873448560535840810404561302057554028146541451983279054463649927112640636867246019541175062841605837864739796700411578213178500987256205205832038113002634940249934507535222478256665433250040030781492245859191620225487835711131046714158246194624936809488277718611996298855705349884086876847179510969973444296451784205790778143419965400319513629780098985615444810384706074584308291494824894914344192250295698365083139134125977248680763952356364050509627720811980560847525837427702968098123884144246156374502948698843827812214766265884136301498455588520415501481440155355336752348846040193010389660170196914085367727906156929804983701281642717922603289527844855487542240668707539809786440978410320649764684945758131413493421412542993144524606480379721614291936151189157602999968019687805589365606933764794968526127041599287626440205794669698243109638457308944518118792018279242454618210907663701304351578098016742381083182374828489334076337281526929507222233567601938339349999508850515001679593158669337657034839251773039089415466352609647344968153164168919421405084571501018446719882041963438870912918849765689229582592577104229421999795472713536589349553442797823122077351496908244349081979328736973854270779112443749528047413570289194819981991141797502246283048116182342989768347112996605098101202814841069806946554229742498179670027991196875847522658024556552262319453398660970052861437085316673490287263315358949547501624851789097738756975122256508141467061677389000956088482700388697285185358631054462192414525172727462758556068483973655631564451155867218407510954468766755277712342307910986409990843126560083350163829691258654330489728177362613199368067367024095357144164740293364381625730685036836954527785593562821236791214615138255513499621526311364104933092655171221077328663663474300199565547806510074412762774854654459669643997768244954062396330977018980251396562641463682965783770290470954518757304829088637322361926069051508535009978008553780018249990020989625142865398374757397159089312545305074853109917019482453099687480969701849224215948739983030063242089642257420633811443787449833861488040145856810548499452052129002698467363282436258105396574315645379537254989420987700998278230196774391092536594507817506817871780316456915025001181778567390196651161721463905739000220261420197023862112985863328004731019844773138818438280615750208052732865102061920606147849147603292270092198210546665911709001494674785727185696368960959645359424207090020620324793422460413862747975662500592734879576267392892551335929379357752087326623328369505273140249729201066841102381298531067167748930743526363191255184656641747525278888501759289674026846213440677921303879699414653547048049702275157796659889511381587732260816709430624108854936303581720079584729453474250658547987545791595433416099910831801810411772478120817977996728051666776459271028824255091565015772948733527766811125248705700059370745780005561447532082407280472793829833581254662618613333010801562270617032921522751615838578590272267699556116038526377764314253960567464573799030019750232639545524158126299229166252112536862459853240545730734966231418524739244485215367754522770187242686947824531288359215317192528336816015839660768664882487495923442523546164480817244676232460648649913912467306704904084125111890657123808893141584877444724522389944495492954008049120359442337402007138968445934879296867104716883527389027209875640427155844575876030035538081204607733182628779771366387655351515375303630949374469554861815792547013487487405083764750015929458069584459528056403260594679168825725788656391828837191005577710088338044479397374890529999479729834107445448717894433610417565451944138437986306726997110114119989684398409669444410856603368547422012367389473728835254772649162107302853549646261382979429868999150796408943376136056593944885360091337791516010123038152899596096938824992067972628717841887073280160689384959619131421003342129704615821178047876065925652245880252052074026464335960320723290016727098295890239350525970594107809506542403643092671068953967327899405373882884666346784533765655091498920040425420764784685175561316302405093426144434211771381018261647395232957936199958248875417421677696384595398544656175626336380371091807205338281991946687768582971970130262403695575860853342527786683186844237724474618977175462763741878056742222965667877694928287065501672276962354326812708056419237178752774133985390878907477082923493918442285249152943344631550980017412492405861216137337772162127105829020053755307947701814779987783323747289367520873738572562174754680074045064235996294978726803888083669472318437680134181670806739562130532319182517285553876311732732780746517630469798822545142581012961995951936393386294803737027878366659946092907618203541340346108692428102409091817712849711790304254803560865950907443477190841554378967014895718223052201409603718377907112647097704748208422339003886343978780471644055743631672282398958768460034672379276324418650604527082789109266786811648805277476745167932697762327362260961504492895769023759332419981906845307402074576697547613458915050652173580870603111458810001982547378815447070496376921634123570932320975032145851433444847996406654648062612531769354454493530411293900273495668437130643874211381468551749843287516496069534640181893217742269614597600406154244714467063722025408365872600613781062475010829730862010943128639030729684051463174964032772945753171786843270998278465810026563516479745420230834253491131479336524432761133070969316710612318593146141347315668247386577429507316805088425188641495327762273366417381186358995247195146402778998313089631380294808571570324398359876988828560652061405430667948224912684113224241929610266242361079762565795747839138890199299671696774108078793486361783095812172202011851646915691323459900548998984942561748028080912673413973482266747651422513281831694178566215009393068976238235470226794317699684170173512218107733125267292517917462545881826082409876623734977751893369508872420267876433712395479055821734852463014328687197321794890849500605641772124814323477838284190007705285898577882899455959060169186616007129134611686450273313484168935592779628714850837496098112162083982022038172302344851026778527261539863849055716365382003491224892048262000981245100982451872470026038167089384651961193207543588431841037914987136033254083747423774717756818177807450086722942748182906940668168352170633005805984778499950830870491919391574490746497027465687927813643039647599551774021476034319931312746866962658808516373734409187834738590708893316153086164684289863332559498064506618476452997258906881888613593684767841372553929985529673594264890533540714914506079882098983881938389858409487494821153363076429883995774659740051914276041659833532030743849185501201333089728761751298162377746951030283934602431962202772017862833642438974047155977275677826772477264282722099881065434146937484884238826955012412786505883041758565721471478585973986984050621563801426275829045739923873063782800381460537654028105085829704003767197373147614499589693677734468174946754154904601113958862220218917429786851957337349283510159223616419819691144155505776065676807744165984157822706632897482299841851950885112230310299270306054843955401621260092528131567640933178858872399524722939119235886181879746945672683920389653764484699352102753011868096013190562902520628670740260869441202072505566916339845007278436581177462409007412169291413843522920953169205554910432295911444177679094017593050376944666198982318059270959018643749110273041681638306640388285712741426674592311626396526997171292940429978505886855766413119212596667456026596456941135960221628237012576027716016819425159659459233953437527419582451259474721622943418017708271173661059080438255459319221008360669431051531192349868711979333200509988511024889251955378961642090077823135133660804063019659925541851845012974147590306857534951282363115724426728326020943640992375134488465965799792728330162917583297137108921424547256219765398844364067189188666946339356578126453280252386205204034398476293019271510302336401418313277110186338092710319141648095199849805215693078377340966432276260977796988037904783483871957635044591679117452964086544381751290098800610578781186812544214115892217074822401840744295502402802047170281601332346217115817779007083282925332936349163060115771306350453704185542626046535398980262495573494101875052935229524001239911380882564179791318328445511261451413059433741851801907070583932551949631810365747906228636394879652946954515092240689490722847080706411527336348991208135970138819749560886496861994610458782766567411543592585881722166784413613426281058626992179528202044806611371505127919577910563534478812864435172770282746085253699950203922225371957720831584298136207990358295476357026901483041922135730802569935352100392341376750588467096679759459358105701323521164947257095035029871890598281429550389243403972495199199301637825787192302390463350519142283461347131223705199898276023100113365633345559241863890887724390720887724466412995193830083232087488064886181791514099745894025962791990202949169059597120098788339905429887388389093017878713000223639119464676519966211116171465150610816619856458772427818783923381126667979133524631511437123207092547999091520160090047976434165838646407602875318828766172692211108537629004136544435619272598456822840264482575239124561877872441485562086051877763231960356957460049868631887351366686781932703170528550956680918525235593551150974834721784127193998565017338103269521134773756915555906323312475522488248266498289455581144839238704627287047148048016403604910300252451261248013624724116308014869321510645413181874569654172014790274325868167520314241556681520351907130927860925744987619195060261277775293290303180679409023953763624833817586799352955553240950827615798921178041537560895402623559051741413782672521591463701570147409996669785312650305105390127601385913586017607654488619692064225855949364563817274175081646440516642718529171976742772266500031466003753539353143599097505919306185945998360193542382444097321918732736147832579394074121781407259742854370726149255901780825000469835952261803210694057861529542295597478516750460081763143066412309038036674954733367045646334241786405935428103399173663395130944009831933539640429565165209039968185238042425744129329299406966290115665569943744989192586541336272010346832508937927858174369360794711590221845539640266963857153180298576850879820704469560173116104602029776315685700003355574559051244141699748621103874018289220277195071141522728096155309777405303092940540023606058396241086350224060155679131811573096235504458333567851151099535549708471306041409759053983240287619568084243440832089115567599095022922234811961515249495214685765544813001489746598347181623737198545479759670212131780657613375984874683992593062873970494235566555116996845804609138594457721611148886124549654466672593175422024751738001139219458988842775298336863800292513418822179807025342433110090634977318896564965942319703349117806051947633836831223018451663144995657680871520072483950381363594047216187706042123204720529101422834087031316674631481490120615575627158390019696549968405012798444286243980461647890797222881437953427606579783446122019079058561481829866701400302759330398712110377481435509068969879024300271225010216590823107211263493725941435946179240734567052090135126572969785535856414559921252252075727751352291659042740524341195558331371253629419407753915525848538448154708438923636276692259223259486965986741947116547382809100869879879352822160418253664112449139118546497097225193783284059563236781905993675351310730499401882925531470733713694463128120160743759712284947893723701387484011998928081552467217467139267247110191709840486501940674551738429684648170337384921412606919463427709019337606422546091702079567045205784663967229062913866578094841183615091192367664504485833214048400484452985939493555868256342880733192677360600531715302975680185346917059021751120970034792207145243603803891097278417922976255398317408038082887794539092258779168389154531689594858685790234543698516750105302914901547355338648776512761662984416581694715072743933083602048609382377468816649576992118384416100876760797572803639208818488077246038888951087349540317410487118722674892337451019688960766329191848516804362931096696369181451490441771539553775244586821983235569237066130713349289565412021024910077567391773725432020820631633543244799815817790638514545425492816643651828401029729877519762859625887937648323126925499598309378775622879885415192135750837478705091719910876229234690940578164636016535756749944925103362728025504911217243176570193452560501489286491356282647455956151460068988176280449824941331197472975177193462223139576967253578219041907272178878257803545307216792093952937435059835977417817494819232319820651440182688176606628821288333967176308062676435290707491805742805909959917600353735874939892301952742765166030699347949321474282555439139376894833221337937360305260751203713873881209732389697435157242251158092979412979658020384420179026610243155976498795032082281271908317888363548940664972587947227240740312542775542341479324616075619757322745674930599812862794213387555430651231976826056555086588906555910641324800197075171874682603401788173621450559024655282308345460308702480731299927279617021958185089913839115870844577031785985828350382051999486900706209154817010075724452002808423898905481658405919856495619837281529995602631302112415008217258597673780526069917308654513496815347857433962039517872216173598202205645374118219119701888343734100280887402758385942134606096843455916553689316446830034890640749916806433240650972632517410149910342086225668496723817951638974193556091679819107817119695742213617590636170441973363340359437663340181664877396551955677862481684872503271250879601112333411401870338431345238023051452766129671351517878889951250660429473858158723304538883481320506809751198924418768996275739594694554875023134197733869983354592293983277861915331177048625310304389140349778648177188315472767678992738092785738445203831202746876056020413407667269487169881595193376989844273959729748223792567826748349313721282840218949492842151915352232944389004644221009216402449150083160984227208470227368125250235091154366658131650846138551639036166980334864649228104761191904695849617352037788742189844930630197515117443143641819462317308460846982828551012109656446308192087006709698989476061431049227457364914832627220010020465426893817978874267597373255559755453275610885647675041643588151495508030539803420918969641899997253686458193947209155619147096275732067274001375765301642269068979321255431136056527641304069641677401648284415300835754642969360043042752457472325675650652564951227797723441675836036103059499204341839275676687480396311483544409841709068826733548682708131646121393766054284899226975360685592709845136901930621302513094695241317877246321885089716962589380994874817333594682943722801903446251179951558117356438810853360660482099352229595859497161670876958820251182102723633119054368861146269652158314879584534966265478908931538294285390364091442305719618322744343885893231696066410698571703565053804589528563140856895232687385827947518959232712761701940508987335981200892721796959117387910963871146323756970985014016036613566095825108549937197473158661799072536928120278232540448261372312768766420515978333900922467143745643191248027849916030296647329280427157152594058833502044992548956727625285638984154488645721945308061167768229089382653697350723321549804912737586281206368318961179904684530823801852573062292250790684281653898217102046751336257366840112796374937804157919701300602218205946452076683727747573821581334585317158244388955790661853730687616383597152341681403376355695767477182967721410747722973564212614315438002523772443843510585044412670470818748703250568243998525155613638663211058044630735008310007630072762503455527488571539470522714919162886085656843639134980365550399444056505760736868305018054335237350180017594629214304612638324292889253413515242841434587335418479313447742485836389273306751728821155370204935247571916449701506579411933241818614420744601903004974157565597775107843879920487214839541301681808322971459759658545489267854989392153079165824519692690792286442701704558832466401762727609613942875837207540425758364338062576335295234084658204619447078763276708261779852112458642962016424939078319606436351838657315860018122119819182617969967195357738411545449816205696266221481947608817472538659768086069659513069042557238472832360523186357773824293020720024148159741585368873866684854831135375879848116150765263559320589129548805313311702220270312600526895104206549944001516781953723904715665510652296846802925699107995131876147268593142288720702805227657021167839809541309702427213067566740706304165417713944355456554163984425197082317887569325821330224493842816298819710948511295897763287735694827412392116970326874103445724492371067530278273899220614988426050914629444972059954361028755100732748062061306648698806728520043209646969755554074024527260579991695085613902606660108366080601296746658451619669824077190518197036009827082823680366509670906462629304296811041826998521391661610281588995132182672560004483076447360765544311175514747694724137602866301606006137796196846195520316575997957392824608988552536898969119572211326508592754224694608679963152502373394852634288427354309048379998427928364884210027665048587948574109294706197141621950830479888963304786972536416235491072658405219983497789496996050878388134722795108674605030501735614958260449260098246430976000248227332309372031109281815434237576603794743623297005232618657258895345776410342818536489483340840100910666167829894635906890136191651241984496710215056707421836554557791928916889357291613785741238910235355612238561869476290187891449873715614213833488369219049713651960379897739070753028074877631650976889311438839703795009564321550881898358039661894645750901193891819638736187932716537052051862593521485425322381678041178810515024320625470580584158144603048298835635166682217013003029100318306906116411575662834988979231584601009222775193940791307160127618752818222999953175888215137464930774493987186485578899900706743546316753378954672151260140540420835483948992554759137386229367791111575080302923491076002706176932997402342942974912576835297730999557161958037884863213385156442050845224754180505921488282278808858589314366529832039403765522793031804771983613555366614929439849490497505489186076433205395768377203174720671437731397348067762999340376984816627393333713923457015060023787906863601352787238918061367496613685491571290654706768633856383708632788314814860891353391567553211809129907356567869293622404150814418130982046261946239768643291099118977053460812833533464852996831339119415469722014862304036692660425317200628740079896124383210873682016472179312592048531027448256912978693265999919597881133743354087112617757305831616689977553043005186371521453654858338102716286450758035515112202880944035322265928799018337067572276170599871075803734561306162914254736082639863503754752546111750969455043557876401165970689872479503753165099561802858552278979757964650912968972420756138179259128705934280459298966775310186032715215204645641829881193133842265731024833362427597518130161301808424812559548814275625469702314715431293126121979307929572795915660237963032438728504497674794370533584755805705359279537039424123320437479925087801372520665425740434446152698495877930107344606615036565370215769617631784570029204682753028771083864379818050476932488427161153104583723355684617492396735888282309934837207247344488606320626378830751629111094911449913495239616765745499990092469366564894795561957410482887852451384655453274030587719574317614756194787774463533421114522481090278421996047281019209488221312403516386259931697639054447621776435929672945187078526027996782245692076977756146283518430999258754787747358076967652499325607521383359668077009892154149836180204148097441205458386513397920662444717721166960353433205855911724182927907353375868737886992914967024814823456636466022939178822975890814919597714410794670490159445701391757090905048226764937961803636945753136374279225669564821058177551966274791302379349431259442234332927982610071710303295136982740301869311932650482997299069750289974362105168215146804970032466505027357230083898790174513138093226082069443999068478207214520320618730906940147309544933854264745332516668336668822645705069623889370816529255431296684372662097324588787905080035457116801721728467020917535741710902298315437180151979594552033011668440240103269349851915474916063280786883681337905303118360804266679028730312636579481490137631842467044464226295152572412983803631095783160046068955146132876421585210820123342361533400060919230496021405510647518393958622693438544427743971490645453315543473358455194348981848443769756992617060482113583455867450933339509146909396917539732023117414239413802696865161082096963841644669697408642557180107952270570621477573302709289803950863890578445758137525248911190435383248937250625869661101837702974623136790862515679086116646323676911637821605323669870240687761089140714841562399119192866985526827281516239340274419564796588213476630944058638383525905222275716021424643515734515967296441474761103453170112036229925227303431264762442463057900315550212276449172101418261797630225213159369618218325213747483549811151426144769806762969343313096600438935458112024443485622628879225554624874329633452919779732232996674557696025606025030980715589947206660235100517725624878811326335865625079105492287624102009157954436851981696329196757286269114430018199693106508726613634378870732931079063587458574851992948619913882076776558624708058713002273582817515486480254863303889216540734965235464271337034349818111957353173342576292652689949825511433498579834264430334570467605347916057442328649292130533646142149866000841006460142123129086701639833142456680443350906972531977186865393439521238230509999913542347140889335399415570316472947894072179129794910131904795313784694880108740538173279952028065108539654047421304840184829680360186586834569837057535202104095305482261819738037331643823693586948401895751811368007210427776758097249625144794138762622140294521719525667871542414497487221128964709102078333662356018241029909576289794148468947614500138722629514225311553709202216007262520673979103470495081600462122004122969414315903789878466827358840526949871405201744658812191593453490683833359583901409539068633293772612672369446898867042736101530168496436115781397719916384493709388258180982363235023564890120034207227286560407212710884472595166899516960967400497517047229045120254898260081917568701209582258346964195980091856983115274450579416357157733255768434340637416324419794975862365401807234297500501727960378150276748129864907034692979635174810912373403279306367393914631406953346216138334789872410213152765411088382004680339991303834332078374263334137572110882627170807370695439718851505380929466636308576416012650403696684862425595284582046874806985025286216611917224250330552060819827742952984091051436384907092801520698167055867981025559932547923033510014219325218863141414315242296998230498972798877548352241626253310101570065747102163573770346806621023199373572328216812543817337688314333126844019502071336001397343634530500920493055721954519388443679412895411334706005160887542447706837586424133109200652126161991543824477610379736450478717446745284883429291252202721347097800141951130201704896752853471826996886973770067820773726463628540418997737409150669861031132397772294459813156001836276689884740168524086430018035960173112687140705880360257832467900429893780778956651725509758630572838209970209154981538210419654405492256636940505222276292244269248358537988813623528903054853222457505665149333102413635213701299680970016793661070707308844873164246621526622652846084015408085201222244323283819129844301890253374438488274743254565493443998932005270509061615159308427562299922179864429440354493215986204854823687859804273509618560884523360883615061985558007536264151008842213882016670690161701529206369144216524234736608769634103545290637737924787298077888390589774866104610280331413150690550955900408271971360298642931821783104231994521682353265517293991476329953631389237251658057711381028320037402418830921919946161667766963518235016454979812387345989303691824650240904141474351865705001744989800212182720947801312331723555724984196644737390812501391955590865852856077269256636864451699875030016802191216370611317108058891224747981509272302927202276429006837860418377636058091573656535604125971114607258472656307732940620298746351197249700342450019659328512549707875890377821462235324374244040955058459301071011259764067129035621762136195584146143299368713269509937805131831188414573252196483852616071137198433773005423782140468236201590999401684379281357410930363608567262667555935627400132487734755336084304472741889582496476932967239194273211010250623624960881485974639473476439775262862498831057596247021039189840316401484591846821494443717521918983509321700300533903936085558544848430206324569854714559873299546200756616088445084381988676844983203553675156663728517994623467593071641882372938903769964547114751203167579451171064565311935938080985695529551327794619300190248073217716665013813886323363719300356793490445664206429128663134623200088229112132919101609797569571980094474927722862843153832269631268791164999498180708977413519972536482733295761602937801649327944662485340289151199940301873189454978766335701633739297249674752448743451714955371500935854647138792146369549468907700492647955804100856445021805495550018787558410650088278221359187333463556458618860314501421102451556942255309941709390750787020251122539709649400449010471526477389921400178350483803378600738488357350436187894779288985064718736080601148177302031734725269952336088975513502201937910945408205815585973703684844829841300014931024114262279184661118690037708372023624667634069327688981511006141314851589204580083508171196059160123406939874315659343608603767544270056924796539308056950982561349722461902422919339346909424607221509416756924492772117232895195015259240947155127209238737750230987404464863518770043444657094073265046026497253290573490909363228088754652384866672508203482177593494507650793110748978510295596818159335000840467572161766540157191998843807146621613189825492351442522902565348552867029354093537670353023566332964536968104540259472589905861174441770783129020543180506517636476989009070119008995067552546217913953705531098817996976385960769959599187362250696024948689455400287829210050721967302918680215702346585213645649078028842606834443074282903778588423634519770188200861099532039539556938151684819445342997638025850680979316326856739704190028593104838967147738438920538751520968306797058121982201843017647385786266670332271996903566837189119056502966050378484185510699191740354364710951383223294510259011320559857114416429211640331964765483220383572086043664853568289796785989341352569350755792531301571125266578610660471114266221763308523148307035863256071322208365524750249383859164368324735415291767483644542332818112834807270721617126397730003204388558929667368533814482537129075629442962521845411753876086124412324246098867596236720028366712904077249826202999926041519992096694175280218560173263802557617147984843819965422713650973559925411148686699273987355397669760485024033141187712158096238742072386017963775546026361595911471679824489077522545241553779726731712443341117067787251134773916485001576432232711748314549703777980243650339145686306543889671562521431650603415984608598494435110372198808107533500490513705375516159297992491174318555024684861345694481766893013724457190034476050079115905595731267733432159289437288629250931597214951696226699598045784366488784848682072348270395823423421359650522995507437761230782197507385745906956130163863810740713336743729150705591982397676234201590730888852876263971342593199926118265331200633769625393756495065798148157438137896039570898890084359057195815648051493802495920937867257229386180434728257970206734271945880372379242457071377243298581569671982998137167338045894080966371201164667419038693932145813073748099102960390262830316026890902864115860015606354441838750308423567692910210590610274525723848205077665308675387467327017471449351853472508234762891413371491060621831737041323171750603844817461317080207521131475942009545866313139715357341337122246420853959780608155439260122328437709400021966138095068813642049466480399369491073555661322382483531790212614162489057502383556927255887566217221351531023397536739858607831034123371219233784308722605434058934389524170405863147759164282063601768207043923772255710791515641060727621529818138543164441333418870843799639375944821559232576935348149127697409968360848352327014067110589468058296276564641449151547620890283928016338629609429193478348141916831027648695860333903510894899236536035716700893736863882749945171688882601379755026783528783726065661013303608036244018464683755983250674629358811343119369475297579742260546756169734269760925150457663102828352840076248150855618872417003282234696481729711890799157177686486872076872530630176606937822808609957555447538369326986019899197727883473005114545470307789320311799740156072389779926264532765380810888662975159605700378057896511588077149245150201711481225355858486934836767291184430454357926119153268843388780407195345960180881331870477565937439617917973784353639924033148564178732653500924087048058656068215014198227353613924493189257124482098261425710009625267621848596592066594262165119438841116090161464539077505003408233355910268608077005791517140576117562138765777795289211089219683374455510359802641426363557254360499233921291355930105906938517441897103423025122943041094434122571115109204620992910639427195554112866004880965504822080542088155611286684302444398265921050345831528138062294951431038898660422431861379753784772280003101383085172196568857610415464644261701517226785876360500059057935801426019835763474973143830836219167741329574437891247847586082177923695396474346519576967940987361728003567269639911444929456286558387244048757881690732313777463112246883362361786161521919071128702922750959593862357464526083689986876716051647384687411218374316365576835185771178997940633427289294702781406618422086084691956160383194273880414880712326575585336525483807900745679444462903552851038607490956269809201422733864119863811814553311069312099232971581335410042636462252936223197245329348376682275683976874013784004888114054779683995774301286064509051746591051548987065836206546868906170853289406046247576439155526250968620744191619767348806823948762458300281040896185304622226614097695592579501575921654860139100012801571388617890002041525767930306345679507979561621631634538678002664920048301304832881269886950333878547718350896410931846107237252749044492637234627167654907038155135822535871565142285499084458073840192802046838044455575135480179969388226226998499851163914621662313980240226972663770002737304122051527407358199851314473550360680328848803554035393401744387191931463944999868799419984548563617381863873200164454644357880283987167131757600995471180411971649706907480865372092110147216763474194521390716731995722446680258947735789385175449371656391483439994167157137545994229535303346614783295777127499754065765271280452010597321033714552459573375876624214061565161779560547475499767970848882341256377400027908207362273124336803287424826604349476493823384245229836085676769527668172043740900388034000310682976125033579410770933972973052293340384971143993183428254745020626633475715408864073256749627948322515149718353593348479952101693317323538943687535379406682836302324169306383438196526216020152365914696022526539604420974671834526186798843307690051141389015018602057497233772977679538319329240818022636490074376318415693121373973371705805553296315983917980161627052547021984817542316865983103798101708331787221274332403382796315506921657216831750659153907895435695807460415226873669974865743068222548772058191961365242983910460876212189328626957849108830061328687171396832391650318527952100211275786330718276449337098278173439312508627048413026389806313877970191010538365830045569433422444527878987666614952631435893956647571985015458299586164311158942872829291984510735075328092233424069604100692861148515324903764869689957133822703319555798118264180367429031568580223281627488695359168219967120762141327016723435421172613888542493338509225522045093722225068681749269252834835719053820125653703594287219997130056255171286491175799492330972933132170716702027614674662706805473694077640361929707120092097076742015911191053222868668487407813128121888284772322233750863079849562301796367611446882281813376876050319261940902348101350486142511718737410641412964517568638387849555086284051850882251059097689779035370757402935615503664464217082707464751279991003872218424488890523204262061411219494047548925484439071943911457412535996589265299933126929337385125935901590381297239602109517197783870814469747399504003204360686613319413300661860851441575660850135483443472027367154209983186357082490943790220404841101799612121850978720688995699924695870052690649493704362057623316912508393026866831687594758717209774135217435942508176826973462723226068418592898027303676821263401918294645021254086815040408532067590979088611425268433516456201837373013824205249461152646637435734592216384522504215772324488234105790937997003754289532255419114839465008036010957673254812281973267045220518810059331051717734499209021463553522990461392552327494510879962321946180004321802944200232707934993051002143551412476769102651760965052922294314844816216378329509433201357361229661860896262034003676430081097053283277145045446846397856542581155709447173012625504255674138046079432584817154460858527633642463667546367721364466777800131102017084936120836972857815162385199325924792849115771517995914670902295297204775482791795338513708477402652779057584676412613605121949471824046389582144047411675098017873089535980569170985538818847626530035657519779368581087347938753851480629160878474976000932624752407214529421858002400035465591221874046193784905569360259127967241887349976801827828338937917903856777247937271203180599533369074877543970876050331122423799830203031493506914243924637858560057139474338881539037135832741878873631452309727997727284409700581404590118094613560927060414803377497167507336358006235889280548993450216713922403492092455316133153018326158304516833699634646641629518789592325621389149658700832643500548127264423087452907819489772831669404427084165660682988347302418941820540419483145816660241479153424435541469504102116317205526660754600387417310504485272902390312364413284774819858482198423670354996898783150610347276157152114471901074185877615023868658492545955123330528567872985086294832315783410772124292626830571824099858029101792904746031496230349390921239304546799694608484814335869485793104898972822535813468121570328647637939636823798892228163388785048723427112019861143041826790717239756904514871126285513943122013762891682461886382129629152690611316397868792603057299732765643049401297789458438091123353848573715249581630802372397335147004394248881992865453641723446585398438261297743717331534204928941664889417302911623858488163151586136573007462358110465331561824668615845183274584626053059894456959277996899715649234623425418897186328289604633526580060507670697309193751967813900137441402831966268881470701775012329885883047322689625920865886178704516693034675942784817073927836668431248942118373558070214209495526131613060357033901714539103107972804259346751556717498326777108237443969359614769154226549437590589590127891851322774111681191210992460931934359439371796549714339925978699131640776363824479959719773036665539528209997436478797611676794329631564580566716195185835534071793085860021474510760856826223756857100557282369166076966023464553883622949578936850977209037386237538309467812388913276075894845151560750871593711086960574373972055530441040916520985747702198301785501178258587393361881615491449515558634247474854737429748410767145728983344129282591779038508057278018853212873034885204608715471133766326754799242048603216413910651983292146076485213120500569992538168508407720747649072996323555489382621847671482221839500368737304884909568968164969945784087401314928559766130453924991566987777088310001110481756423061111400003230657370467569407198455293617281606282145495240049862442772504846643902073799205559020371293661661851476823818659699690548349350406435085562947073632881593363089866868291660673933255288978638215933643756939313910212820916750014670078463432790784920990443131903692222394468713504187305467461576283992721967711801629806498940884622951486345533229120771059775424279984967129792910152263045208720791108152449023709631584621422974812452504998448349268387247342539512512012237586217233237320520191428666542959227901363010334552584948442513677658579707323442676962486164497244112569187085557255861129406615858913029019414576197623667235427509982798433617747350861188254134699016480599137905208000211835405599320933619648964891256968035424782025791387776718179959302191924776632711375285834334177842804667081962019702245142190737752370762447781347424523421517982720314689921211297430300533459410536127167635486522717080823444229900605185159163507948155869761435898607726183704232012411028176566016317953609581243595841395840445265426964873684764127265838229894245311041025599409599655720480061043127215016223631318672129560210708668100974601441324830751342442947360795675675455380809896225361406058927139110517192494156480681628846536244535337671731188577179373296524986554564692243332508296401823439297406868274418441386095703344175502062473344817277686493077445501190597459030655115395511062045447501436566751444291114523091311736119617114745943939059275580543761823825281567579137587182955759201716281990569281910987553347537828596097200860918583877494878854733123136889495528262851704897665696105140534978604787047059767669891226200710166569300804177500922800731562456125080824327963919609494693573326535602445922876663347976146101993158249382378094781097160249648691667791065844652225191742667550353444160248825290187229827616974872928799193375783718259813841575639239561914799101698036790182178987580604554093111857037253714005891808693462957837679462942942741461708775331828951903104922795672909761416219339989295052328652627286733481966587694470108054336130746120854074365360340349320417228442610688753702184703538231146233531882986012197996626664773719073358524505367746327254448098961978841543812569886136787710273215896021256940266394973152596815450539637389455458377313148630327350814383369673898487203368035245125730949991015412928771556607653441992879865165876395570179394198973780161511028522190710603322890169940239066022675839254550443433743860403478934443445528722948490120924312792943616140296700069776593702026243838063069035909290375357520244743269037412481280769754634176463736111472616999333791738546401288447823937142873012043109596995870151458650397503591186954944550812362801528267762905814322330344612056429604403941426463469834273129709964688187651885331848865668912740024951815279741246965171665748983017949457868840201392621139394138647798159172482327264636876465662162933089601440813050000368369696903116545293133505540646112805133524337380610390351275189984969441378074094996225327885939600739189016172126713833552410489950049457216570884151218807269633410865476361211698259231111875203436351537043179287277737293852907226549925944515793982675654240114999263241493172270281857714043809983826518938112790241827956192586506741630355292698639857298663130976552739590223105207693671401424454109595001714795267338548747610676255952546533194459082592100599408787483453150308456823237462210591465116111627842408693223857604808040298409646323404718854265973930082124907597999758369716759693451477853952509600818057941382351191616239560831158900248610289882216690065025989650530866622911175264913172430877295917148484944553052224833631218259183197639660935392686398612804789381135889057455505422498390799089241533622156439186624089241194784544100904593300647484351741015212583152188947867181765580464245400396319536817969321326353084420894705340256196413729297218926909949850339652271720827456975900224803988844503333210359162831618773874006197253225804080735000552550441557456750024417854545007640110564586147550414992499183729423059932173785739327645334143024013147131144967848697050748206062662407070520875935834406038177586790420949378784822082545801462867432878625033496806443475575023497484396802071875273935986116781801811252090698007008022088466989494472327174454139744966059488390386971005235378782622114197264340017662297098939317138583066611818569467206089412651084662970512445729358229348466109169492871110767712544231228684984184673870978359261613338847570473066269050596416308926938653935359265661421459699022422908547766702250225603707479075561113304224162308947959884486970451301949325737441997326030055135334961842840632260643072929775561980732571326078174892680804539422679851179158336599915629036791980394920537680891479550634226558998419188411235089819361310820796038295920644630327175000135120201745910037742940462565954637138275418404664549376801348589712459503123704494878108283085945435196243082727460451411985191859804630181952738797178912290211011239429846422488824784946959265399599254511272816481768453355191795020668751879224858845592048529759086933554161701389744506159129061632180688106319969329956389926738588066459644495994296104569445032607504611921756617577547653071875820119671773088918261405443178301394994174136604591711293648053998666757065144574149789991924845636911392096883191194324497382130611508183272479395489164561040646781784828551917525384134361901846440480365835479372998921294363757674820495231447703467203564612445177641565537299831554102043100579198010743875803373984995075227593395468901039725292495719111030392032289945759685847606775512395343912826348679393767886594037029316848266091246762456065520295757968434018692485421971425022851878639755039866383204709417877344508991526748357527446808790203154392449742118182098818149345226853418292460350058912563101966267430060733718427562853535362750237416490913329709837213368710471351949480774446856194540043486776392584857590957596882789133807599468065305586376901482305720374021239714500195018135846481916396720077289336489667897747339417292934742680378997029063001345236769348836472796739579433264935112922043629178557512654124731208473509522886420310396306708740136048451778584857169863971147592735972965154090001535366992460198555955820701152749333189621483345753503092707225950328871303450759013315601891505035695409449812822073272775516111879816587882997523952647643385784998849577362629161774298603184933129724224290794464781326499182838176779571916340504195150234304881634586765708108568302147765896370185337170557049242164267242495066336633564772742981861529135054840627391996794594824107195598469381905832182782760072880773030363306948522046910738230685361708879283035982630292129641597644971191204375090041275257431247438320175898722782680502600513679174630492949845484333678981147048319397315326805842631635788518505265204598677514644870532920047051783148615338067203031354480277474687567851307744516893297405614372019587302238607207532690243442123629392816297325799433792560412043996162824075298311375156878980657479280433853390843530681946819514938865503827368346090468031749930425924996851289310109973871756553506628039855655580248052625861990141356274923020222852461074633011624837641418468514101075754065786568658502164812059338795857111628522614287436007606936931085599539949988950329297357618495048226814594197143431617228697905391347022185996772136530724507386718057984866363085577534607021697936084414829006499039615649554754044444080638617437053098772237143002710809054850544407006514570494821381900387544979040112224212934577981937713940209649341661590500450435022707191722036571575390868143336829893639993594225261853677951142910516894074393798235186366634484575381641983080858454428866295182761518949052278382646238725066711123776306953054620943885738873832891616771432833276228247348391029865367072198977537132037478901498769216739964029904020747435157509143359894830869166935443541619213216058080458882954246404659334407209624394057979839078750520359057062944727574894803539381149238100081581065439483301301033380115328293632645295354228680805542458646619363439136550891728301239234123828193083920373767540196510357778602624998985394588890315697941350809212613968349638883526467080703885762002337772034891217918850388457294973044662670266647865996755119784230374337460982654596548251205334574520429519391854851365054339280833437992361645915181513571742368834776215191620320328495052363776750653228289409378590663523185495962988700675807854913625039505032783058103667161437469447937890418752720655757756140524212800149620287334276236579709985083831034293582757392428772826844435671200703737283698459389352745657933466750567138618139801797382490240213446100342873844297793547237766426734752982881115458187542253528255854483684766910045791716679789188596197628231402067121610428521441299665792917140323283269316988619740926200712831450518852789572798304840643955611855478548325515941144433054049213719280879508932618452434182276998123175678530131725610511762075298371710006557416049040271611059514651275630806239250559740070335319012724249097330911644360890786255824974555730171606030003971114096219971949844285229472466903531141929082620742517060882330142577920501291900558422553250643066044520305784634248478314406316243626134681811251066836374141543972693306926070002541185438404417975661765502300479342504884306585308180340711279738955625212216466831153903201401827059574704784219259446974346562031420236113558520350283283119941031178355865482008070052553605323652558118900025628465184064477812226129383635590450600786969125361255979621694511595722274526937446929303140929310832501582671195438265514230952497106547975162917576284513621003008089042358545682203230493982051663112081980692258940311245945947614085383814295188730056774482248290324064723953617102655989631871077353720648469409377798111074353080066380025693146885871016236122950554063120478308834166519619955527996343296385574364639282805275625001527256935964394902740853007648807461294399043205993390947801265970333300998587110778841987798179754286892395368786582192732540844269034019428517868588454224992824283530432158981776529173580644314057043550947463866412094176963084291181695575469407335995781019446720445387213289100612323098173800834969374763498947160949890366461298115731846620069590875006207568986079763774124382850920236284577783691382433673870163856323593382982207818955511355212313086021128241103967316132472196854083507326009436700028777653995183685297533276713302335730041844896867327249511453858054090094803393581951660464635403565222533056622024200664227067302258853359243809669817398405720736482728284809792253679555461785753662905354957305904182892125427301769264782469421001074215101749116017069104876207030510999552600957452264577018590514099631671367891705455410284772992790993271135876043897523643748737772775443088573769097956343119768546671443796194851859822387850254753394861130637344171466152881875600912671869830829945881362036965191945084568411756695409479051015758165176714668466107039398198815251119225301857810710742271510039312124645352237219226041828081815814668022312026000876638814153018287283049143245046319981856078645581637911146570339079397852512252060950351487998338570609922442708513805252366431274130907182167082142884109820267883843178046933251387768535099765030366833939447777315290002877544032190698836155700069551835959219113830259758056065046633169485299487686581152413823448826418983689959864916516106449596617132803382719922146198982610894729844290442976169143982641211834944407139380000456367822994993890038874760249955159090080777074407775556947912102215757534523014495538855663335343362313407239381306399742999691853765205975193857806502456127514982065463634491744049221290227213500339862432466327780511069073485816187749279760628065478856240888238803966927597321716574190715149331493600919399020940610281188066918632658397250262666870074456839096685403528343737163101771592682285272046220280802864157886995538951159636563634178392399159087870292223138796473969691538735257409962099686831661129621053068127585932920658740159812669088007549663880649899745690303970211722974175969285502406453332903057080948719614982172985854356573327932272285918739016539393153234720484445558746239758217104197389390068429890040550361613997333708842159794613191809894582380584274106793786456387731956791897363236447910657323955889121357797345678729962120744034912468344993932678820784090922641822641812254494698205187005732547243663925261753081401646178724401438438585312773837211235965304801100475822684556540994322752784283482465919815920716605483803049487410094948853264021932369690300367187460841843076165965345841615275199919106370762610037502122841183514896756463804912376200798867907199794609792548116692360005423067426490005207911674986127651848433767067290404365737495509588665773743203738554751893977848989375509985243708142522504480055370510311951835173026787048929425147710101233008829405579047575974054785954679018704263896268520144205023831710116840477581916254705353305248946587819842628802560029973765620730832365734833739237743828395177332173856194906077382143548563874410905829369896348067644931963422862871297758947688164650612607691499947491199965892804585682196586177476008889153403993093311823321180840492366257661537985213135809467772354163313248085040224579521750024832464782902940263859146085637109632716912741516724905507674184166657310295749609502688257673151612000556229453714993736007966024938080572569232902118623832299495582450364446497549286282250439101250371562538056056378068322599940111333584574886418204498466488198430816971768128892812021619620422958960947201574566384750874440196195925450492050246789461467845904251954601159318890297964287460796635543812147743828481093232085423647746976152194278396997559375279882676172099773966058335425171634280395267826072887803823241657603179555286033033479824245871318078174199021923190574346882841365810844543943165518136809707954117867166062869063975710183848871588511129031516890823450211460274444711555245955661645340473116442773343127989683879185863961582401072630422636914119135721624729346020584744982902570246839705190419541332654621253192997118404042066642404011829505995485539038107112482674157323218111377308329854614346127180019910138610716340380357048039228537431823748991864036270786478827664638901159837047570782096491087733638608060496931618352287110080239692981842515886363359457325075051201105702690246744551529163767956581904405599336257808663959994171855282273893963458733613228323082033144632246468659020108720728649524235202177071939207270772333503388403888117353397300436651927100883411545767754439876572807222970485657548742692973144675236398651801425602691465745319250341280857495917460093191960423507963003899325623955758716315887903961773476649642084702720473962655200625845403117968575741950187296085093284713663792016697592037696466425902919648104640816195038333300824688631804799862542020384687064418834346400545122160494803065554748987017805847100680481327364153054879724939465663889742902642780449519388134289159896074716054006432239857286015404378321892357412206015009577529251933705932401012919645028824294688983267683527105030578932514230054442207480761736605664105553073613632310490064087211428793513654850411199806803562828252859115812934765044585425039311879855135439736345776898509596717243890001178419874282919985120616089366672277006511943671111269617387467712483104943297647970224205867249919131332216061653697284667893994917427450059894782269156157872676843038632395637443147498348530430743961124390382520669472748416361132808479394934252929735831176593457425613557905395241402879482986378823236898196376279776549981155116271959786993003211417048704274727164292088665619284257933962895142570367087165178034009198239535067482287478109423814925046917293448905626410787871330923172829768601791164160237245922996051085216055410681605287420758445745455313919373349028064249466546599328505152693951256728972793440391427860649567612886064796614873492621683777129612626643866001156673807160233766462749916847529530973011813299140619250068900054257926686755865226421453941372833403657374424987182148483091970094587582200136608002862760955773800001625365252752276439436588676282669495294532022697103833359586002618714197841114213137408674247481204551496193857788315950899313529868740307753443537131181694362841799217148391290508028796087358077481047857109693090380850895337585440394708228244829136322070696753735927411678359583405917275826936773604872328684651277627580958783823737929068309727445793477226469947139871361922896784127767411839829636880192701728466155422655007809829084602042250742693483715617435606428395154908412528337200962985268707874899739726778576368843329395402179484103470816509892543890906487166861142453073914491047368223463588798646859944927765453900208299226539650624439107444866633598155009343295641755316811934097376707144595018883057353357611207525426215111460998044385597000071632337732475126470395068057689217522981617607682212203981413951666913780885637160275616865668455947514235997082737936760964032401213979936023401710004680839089506335357578532342860918374451993141147973881786448754743361382294931364945248958982094109173633361829051964598280596571629863042505164078142856466701930000050668871108890423467018746763186049122698963399683559794663509664316869281092980766896934896399324250044676201409672148744554383969024152272487950984545175944899989923484830195311159728330237090964937807850142647633604161898283837021835976447120038155632122047088347874237760983027969930284125651956323423317836103376925976210775185391632998667445751008084354362818313852137059388647804917763415528668313311836921713023607088825848549464038427368634257969612850544840776965746594657216307682921082675045186194457685644004825329926000558316342133225422928374052745810076184743098414244615364868391882230286978661608113070503927835432669242157117201908031355366667184075738425178073412731409752773259347319126657276258956250080961297269035097070487684599385376770900260593228463331253691050167005567689884052773469833746014788011862470394051492794640210045922680953222057100064165856952608001732636588338043084579152485198766542289737203214255966117976345657915225881922547924949371805814640318413546745762953950856394356756037710710053291966305021407276903378906655888813304661483308006249754286542179493039341025928189673294751139026603083736782325875487925724968509221326227030507011990522722262069376201091391647832952096333073811671146297952871848874546417685460016719452483006305524937680953024668116665814124843549219758410305680045628541124349974241947037820118099459916646642947121222143933230038571147194923804329218076578303671655657582451169164547524259625286276213310092964867431939514629244405982348068870652654424460132639414174587383157844534659013750941165707422455142651030727892777067305710851914082610421947254849480520834446032798658588107581714293501768124527142278127973286296022063562007040628880605721337802420002930600876674219816090898452065065033706554843060587438936363299306369884761138003872461323793392443533116150390318389348813301108627234814656814954252875184237105484545959877684001346611854626496266655299589371950114357679144029414025051612196557929419129464961655251236643670133455693497187135916795811431757891784284293884626438107584905994217335386089088951194876450309086677361676295902851300129732454076306686246256044119271442784110756820674096720545494569259776287226170764388446232829813820059558402565050099678342875672564670793978205956951816412334371544262923110220698847078663731733910126260871154764864091367118626147350947879469900245202025230189210687825443405670629685161476278223501107054534248162388343926386425745225938141363629338897243467291837926038469002778563711910964235553516320421501907338003804647363708628387742870751872618797613445403760125180762561715100147382165659479980549048797986346552601462436274657561627336741563426035925750475172761412715523582841377832819116292137050927745620318127853889487735419764246448333106222207016732336170536120800327187407431271144719204295418348880013018511805635832060732314489067814490293782053912981486318896241780904826792610326615294934187238046826080046616517106659764006159203198292085826697107141902634846451939240055936997486376556239162024063424162568708983260766695994377107458301395767092706239095451664522135130764790338059166926404418581392790865346548507980176146640991912818408418705668933905050470411592188765839026965789082027278167701548365978576288634516419428553794045844443749257762534266135492906796937977268300539149953864501831825717288047215194773942903410760364659654381332172597544654191955404071088394391657739260253679252940768848627518831604576389961170919180033017649110371885643761798906443836707700414733068460583720096642804044180972677103731404211463873820423164824346748153922282070426037196521385928283780760105453640680763197007984424776077193105129822021787031628941110765132718353902629718730022282822568128816675047270813286581847356380382762213131916000622114253011074030279063278293552884017046543247215002456773294153190998001733105544268755617954993713421776226022032524002030797960722031703691320970754283071775624331830986981937514190745415549042806867563199367785256314471459981126541578353657061728436533944615241708144301875792061699498157670203679183801582895909704913059401482684145049139572656398593856443817029619784474394106091004333669592230817203737697271367967306701053868790908470053140762022583296532524526335899307495023337121794091947335347349903341405422175651423430805879012915497088659563730447798080917335146158640073301238561548384005193512249955140014912322388467699661838803834465310434984582300863470197746612329087964526875316385057838614040504049761766211597479578830600143742150326396205615415557951002301242987225043747691321129045985796949995874167755455022121845256939310916492011562918937219754719880446736592084677873093003339588113855122037315628245597172316322393370533921423596751056135029132834777189952044470455111205797612206568174125159678159337283585945305711861734945259180706126990696821199595228336788803302342298825113731601352318918243162583609327449009253714082820904705826217387253683418121787929235020728122253010346905264886090168679374029528779995149777883322588995584909044215157460081797826319885001382887282677879952386248146894226086978078210682570566849785999575339373860515473163954550303194902352269250250066370412255286557267547684257714380380443311901359563357694156498913823328014673328275414858757703705425426036164783361786890812884085690163532086911262565639760245425758462534814978179025228563643433947674612100183360145796275555453263489797867647337181959936551297027254672955162007878810158704112226446623652817904122663514078583165378227470797990111059150902926838807996050701488322231612103080545559700447033998764943707910044750652391284535477050750834415118282131961409375601611082894820467572981345060167581734171109455390302450647350688513215199512242397096619474140166745553109732790861838351000881240187039786529283198186256042066687140608643931543307516184113812645948149725195622228747083707422386709038092561742926609430076546110054055641970005330522166350313094443173589211826017673068384161858228604359518388137211163742583362013674775743784564860464699198007693491503529527938608356490870900257021005043622511379627676677107756308145165632546199897779546776115102885687545297496315761583550956308434507393951270464119507894412032824892170723303690380330072161335410579470956833738612320104334709235245117542564749769235980486379257748521145589330870282813428168204946924236914116982328194640406262345892731722316037601572621495913493220197420120448481888544052367751197105499564455765467568167189104816444705286130197187377866258139256586054024107043673058320123021869191293203534513065155169746077178130265673514493569133012201601114285981014001647905481141894118710002712163235168922439286131072555189948917618458006030546132047317137738503923349775485561233001559000787398218535040110079432747641127757902337163076091947457075525405827338436914804481755964460560741578159860030996107315064392544644893978493422320236555259839870144230021303420761534024688074753384412052012338907814798561798732515201803520021739293348428524818647209348985077778807429980500171949931055493158252121567243861190982992367920346252593426335682205977127458990892343763218093115510957765289864597611227017642477401645574361844997124422682942229623789182155191308694793035631741477372054760485468530359074890952981865307243535981010405256196423095961870693387740839253339660609400312567847615217376182376400541129727069948949572010029588821501877430010990414982583170701426559052328817693928117267360559902147035514061939348418729114918768665828548398799243888252418329586081767286460998856668123510605544522335550091010336992175981303673155442215921845061305903839889633300288117749653920099520597947378264126166322852769710720921931366532420042527878322339853975359392827828563347080131546855688006845782960747677406442675401923865199862094535447044876333505075869958639623775363764252529619171543654914620403192317267969670976014600115968995812765056224991880590080601998340188522442530985029018359234906908885924477116280384273361379070654426488170429342020442022005194368174947439555828188661190945275727592137671371844444615432230047879741222032510344816366315137868201788773666125854270170375599653510766032291068919047443947558920188247854682952980814361891048702041969723623983147518804597735759865099595844423347294346690486182575432971809555578282214502245488569722250263491715332786100476613386396077808755407781356112423023583738451385764596626753232245326221143436925136643374782921538490731686097983075272509271101105949361015482402071107831204112178208569982306507847830737863777912435755890299620662253352511124372322120392787147795883589267766301040261211256756569147656833558899293909676795245510061821495890386931914860043283974894897570062469221836626924455084850124844699265250652809368428611760136841606964019056697054251489820541642724485461775578630467217851096076426380571581834495068162409548303330100726015078077058285097216404045081247386790716467444330535841794600402455828044775384432191250659269319612592505372015669135030106878612728556514228807723878178783604807640803537959799352511595645400080565726460775703579854525404387727999331269515001561949193688640059649075018855765931520718672896053479286287627674497444818126737891827793032362443127414362042317951950792244980566112742598997456375883694361331513738321855224061146146129494928248934179997466571566432086322326651840976595002633395232165706346466187360300380994002757857542702810306279816120208785751203505822259557092491689978047624797121661643055230770292599605435943734674038262006250879516274266664135880749582124439051881926352391908711769189063711950049894878046340836601782909798101059243512663876223341476350738943545794126303457448440416049683238258935982612667849864346285416282024152841465725329921349899571858643899452552421233088036496140101265794800058407522236460473185802176034587881409785075797023085840724148386200873657921509331719581623449734445453320505274374390113924792699929283557445270632232876335874094594498306303377071309621710123255875224337280415965742582119087530674918690829706207617899927637118058756679717114717556304172405057373043886246834530050544606355482939469437097574991724583716475165038859720068873517629021093847721201823308545219101714016050350347058180805444517401930797720890542842250846845470862557842641552202080826852714256296483024876275457766608949568732708401188837839050936704160471292934660717722804320765397604470374333764005772682945542528477438618542255575861385808930509105907464034192513786795050084229264866053268574315203734878883433129366965357818096820364568525810281016948163760743065695714879030767202796982689124809920876529688118201220720208648880156078964374087515108318357789988867560080168834127205094654261240176676948523820358322498636671952493258088428077586371740712665414667098585082507313343128046412240537999571334888107152064235910639478541850500254774911831249914463385082495903879010169827610645194094053933700877714169067361596493797310302307196326684849899289576016565364022424797880149914743329036326642951641922768952204921201937986480010673500986857778692645759686402985015748976674132908192616783080696391545084929773293178038689001019266634020390322279326006093470637566149239320271065484584056422044693044408397793291653189294140603346463399809814394658344546479813064526164706841294718818508595003904181668918285225125481690682161255155912687866417481949909720477670338781088416881724121149696831985382496669935608238269731941971486365769693501756215857691833497941090000757177162243376356527477436832422596509336885501946145960269412435109686124259525549965575717256611808566332829418772363379974777854676138629311365202148155726344906880737233001742559359950899968036344856363112287383340682319206804642053493511503847432094138182893812202163688945616080592036903682953798903620318134513122145921353296252062896319551030352370968927705287641519412794139580351715341556729166030273583624769283302011965833706081035069783547214555717262448810588206290444272744249896418381427403298323300392319656261171288356623203731550587103778106814106230331102038219216174053486011475460052298471960605631118342624210119796333981199552003088188567664452641165272923687450789446086512980897591551138370702114100930045360312860469643157795959125391960799723894242132398731164972030446499668471306435243413931003040598275052609606559129331740482662817153790794148525269342979856314302986853705927535926758509144832389902008102472115817941473695792219940045176211004432369384939816604474952584932466648290338819663687631113577207708523576869493788430526264581018863026820527170728875625522306175832507157801822850492194591843067053416176948012899044544095496632190149096459698837133170473329563141744730061085806532828377847972456273817155966456494915948175079286393695409908523218372497572329352550862115715545263319373938981939301142418569157258133176226300067852508500350555248665632060674827807389196018286710806656433729484877582497599528271249711827398701071940755174222446369007922693168908453866652377116200733695014654268691490084727451384979902400843082125082098557293975338435238303263916170797465571095035413013601430812096440406445722071196046935130480749962956865637336291785722998216832202508858463571557615216597612427925001071213248868760273348485351018852216420913163418468860696731311315651849064128611140520990005776247763336168410525945943192094899601871257700011092394453457950747131035557327114103386532086096795615906153990564898845778472584869759369291303022223043078978428084776880765762390637054741047471510457835060054815413193934807724861140238321902533658360548984314483106618818219644982383718915917029200010090060339361502131750076106122864469770180117349424234168516791121457999681050491361555272300645841056695225302432489056775052630102113617611587406110029996028907109501056828383189207065778124976694179982288980807069016605724416993690262724198586445078075512923535661764533192557186268991796518333394777577746161158431338249563933768226079558598942066647726238179598723744941938644352217188653933836762001809672800457322825832922181406625281278224426361739669466960539992242261036292194029261566229729772432016832354140994426384378959931465747138644759551237213973713528053565036180680925474224812803697698562040419338215640629788892809925546315536153068935439117347097711489043517296501887180748564510606828542759054294535104877658011039254212881744337551057623863817046052158945105078508116085357463959401857454051753707845461430095794404044637463362266733082068847464921993098611168338354496135388014087475633242283370074726409257764375939497715609857546633163761991821182578578312741808306512041225888537360841382927594099731432466271514195990438679518099221842876266804149092372681921252022512516711776171176157434288135817757830231225067247732252433091782197929432879839706171291407841519639015858172458868303820371383838432746442254942701209425206372066655192389676313332737745531526158099531484319960050369776594027649086515650077864541281165408768399158238893025519694024398108803317920740220690361837461543252498705404992757498807748871538354866518875973855832513944962112102148948404799233601878090269267282832332691570903712833490719085747298661981846104301653128612141111375833562690642227629867591008451827240553318199014446567916021543048014309112567286356841216178176075776306595317491500630155444403471179365011619186262896992306241423791600576390830731682605495850950535266024172267996178706698316567706021592542660846541437632276840015624021567574465956384674517951073759093363214389170670694607391196174507381370460922191921739379832972759974523600165694148780449650468870069137262201642381788922246660065854698688437731015090390886961132900139175825121132897029479964079376595388007288750280540428892710574544689896606266568951859704127524766784813720104554550361629812112560464539802695460308867960273491389191571273438109274580411829907090577823402037808155307236592708400828178670475270304930409218904180912872916725619780615275239173293539321444125558015746888987301544757256979199956340005022338807485457968099861386336412582379584309810023982132758912363283818854537896134935287234539652326971845777479921282086673680311826004286655836492788070548320227802542014028010207088888193587726758247587640030649101731161584871362216751217836369543156553575611285531897700048434422832267923762849327034839662883984562016659730041074899735014642481162822753279985217824148882758136879564119245618653033913886633091883619136802619269421457378221162415352889557349423289944732916108940209545664691657395688019645414536652546556011475418871612584501177316709589834167203550546242154718290190404444812576293520546714306428933715079990833746811161252952010716910982255417446241125508963780273359787344252617458241854871277105941336251940309492323188076664394261686744464319335474611456045538030642059412690029825666390712364750326968722724396150077255226337377004550964587295418432985819710744754748795937941601926034573103932824283748161295668833360628754631869210648166826124673113837126634828818679882049437969143640250102996388578335142286146278587881879708066119389993184097987008958431554225100914989613861306034209246491008773858638460546908554749189127550724322593035922598034782153680339823410799318547893851642773331738535211865278023509383526236075917878149448533672087284598542800201155743161878034149160106009795165219880696644328977587041376452312383683457758185151280718640828157805559913684799944696225859988071296357793850688032520753196358813077811955923429748465599515105116708712067581389059308955231447708188713168712783541294302043694323248951556906906534594376111104573529617124692127787829961347318764467218030523566567537918216703998554352891434170241964676189624078099932084731172439376084690966721126241150903096826311787339199775224411143146954428887046058609597400417587007865224736079308055455795806362368360571175750219499521294330739121562482646230800695672888134796749313738512580474806186149690635998633217896785870534789814422021466530289803935168131815470565006308725077858982328026357099554325001059483510859027839744513774151876619968474095453698507788487002532805476735235354539709653859963061614057595535670571437714280471441199498484865531836768029896190641675879367841689589276093435602664434949255187458241002464332084882516925560948679427002381828626886763220678275411310121343143406127346222509129325422159549439344246824529583461892197832700329706499599027972709004580041489959234196332873022275167718879573597941127388261132518723321383090954541544767737769987708089869269586015452213662627749961903417144680807734828028719291854417542039548852454113429338216558523804629953246631887295993941888121269641318936055780345641298190706358191483378402228967282116972527373896692182029935940359062912145979045580810197043174482913141713053097571505891461892810820708019839114493394194721550356799579675449548304502395627365517002890865694835604398861146328076982924995145575104389223056247515474269801000293571259799890373905006421745556533823110222812744956183354422741952294886404211481491073491167230217022714590825649926360650051470274264830390548580648624919179816233283534932252474112294433876831822743519222112832484757907202675791260865339129256943979294208332407949886343702183285661557949653586320638060003695113699165599500315815113649784221845538830677506544625201820323907557381537843931878734423742562688605906321331663011722703271658511298395464016116629435834269156509439557404608209492844709595560671340633138367457350480301499354619547530224584267012748763424571802294681130279898291410472139664308152479783312107840732915822807871613094332154889874993467469719449671081495784409503387513017766881423402476892922228400804108108724941615823017008521863907044268725041325597367410450934289699285589402338746969665071738784533373044871372147965092918405099064694332370137744076016438957328784484788635215138833402032479556038220459523790035892517721141455005136307220062467192981195590681278998724301995817675520624048436938537413918537987437567817126242629762132687583240264474241036554767291657461397704803024803067219151441319551290302216340126581716441504001453529523160453127657919214968733263483989794469454149284558632021412993174828919269518489742091063020454615385967441458447197438197785380441734270955374505935492383532037501688262464625205051989955070308912391296618100600462432562294302416148729494741486271260090034968989989270126806032980236840630341875119458854220515151188521990711371170915384960968892233752578077746246291976386324287634084194965060006258294550261566541272293584376823899229861758378383709257648236796546752236617855939469687496113351985202708802280237806863819826212530000306142499607841640942059431648580934174586276498914434403412507459490310596381732365140673759460054524099139803041933613677093645982527242192515503359962439180520906442026193949455369289912291724719132017154443093677512088381611078517634962813447317442102471133927219384224524618363443229435177029710068971874593914820791837343274588944432771410879396783738058982619448638961923212982720206098048606206563046308811890191514088844057819437164460767376836007223110599206828751970563544625299732388236749835826434461480289616570246854839590052975785023842461620797130672525023504317978224534529372660904101228266109674337853838736646524653169164929529839309217613881946017417635772919838109573372275897350555849877411646651599158915044615781221940276484935693786446715745798770619374462002847441162065193543522589517700313730137352909345384083363634335130069026504828296548262489212225345962251427818459307903867879108063608072263660355848594479135392907391366702688742336602002652067367685225952288192455478195667351593251621648903667798113346349905594698938591170838622684243142304509009242940147369052408666229191865942266458004183930660549952134768248917445862876385703777073547997351282837693779945843983312778308914516992181012816774007590123602557619435887769441860299194119573651048506579872321356313922074724892161642641795537690208062849791078646041105441443034965383987700828776429581624071953209302995921957403617948288044056183139875185628349038843760432698395188902424233552415472494683591441975608841260984728268031273770054035757440529139577360264357136713111106594849943480736831601310491519280764616140413577000137547538487329306920186310362384179262822626756246758441343931157454744451499456157140886555955127700581925683784761849816547715808753710159247030014029889914357843053525122344488292786788591718975554692067634673434930620676157850523210494245079815964808624286334462447121527266194270031632541112680324935242748656176987670270838436475079350712106185927496460385409014629959208260358568232333637160037366569662082117301090086604577464235682350747846820966290209097793872381669995824117698287177210274200944032482465525492646878963766146473019711273536281164649975474290714112660212291956781472552824032529205866622183416587975970109624826132655610084004688518388305366427249783199342785110613481791302628525111868039245460396610303109377478113450750484467669382795972934899506081314819585142399422320383580160281498973766757514816258810208704491979326642673127683367909373990056779900590710458504663304075932704721125999827715360810871275167938332520430657340434162970906983204296661980335383233052085371625265195155535232749810702074472275868660278548099119086201703303115869926399240371278493934744053091151126940816140107581437342740699330388306600390837609934022726993549953375722277683138246135955713654863993885281871828946351765536713307719186278075333603966007368804183694738072530600544474049898882827742365995379991424037997676778927711740148497747827032461910561506598726207588442462780461184689002755350208241310076146689955422449079926192075779963921318444794475400807226164623715860305462585865349609699232116038683821644626576019770018031825229962770095147967873440291150626327976933868536034897105779132585265115721378529047749360630532364114350457221239278438921665085050619097161293263853004110662677048831284509852497629550102402397990045654402565580117920177709859527952965978982022961189443485204140847857789499003864555673625994138988064302747751571610762773791831798933531692973767260352494024729763378127898264676620028375486543297561673801197746080264394878185303532430139052694632086318766022860872993666034438197990416729646541992661460499304458106547023094062437380020489203400062341083018603145164278590586421285087249523042328506696771070734991542329041190926503119935922765005790904545324847466538010595714235928544375197883115955214560214042008634575836123782928339000253168619799865210846592868916670875030679991993549378842671317809625801402687835008370341014682265653720805134577984290617437081381202313572232591707508805402306924119237043958460765034168706352237591125968774005625120399194632879985108189545223975533143864541390852376165879795002167898315424831678858592769093759259571597473099980603351100925919075044226182251290562438212094996173935824525239288499311112707751398216651775674869892055144592103502439033210197899248428640507575612724375949782114656134022155174644940395477754623762290433148364470260753349686444648284121334841558838837530037914739002043291910322330338100516287681967069489697947695822180804081995674166241009581677016557853396974492008801714504109074912123923662129552735170257190785680527508498489996437178267179125647476588379262613602642536475857075482732615448603650874936610880865517602980928306522595776869413821124299129951997749170348130659191785147899739848173751669318235951873699008792402772486269778670228140941095321008770598439544479626809303494816372968689368357553735362805800933913785764387646138377210775310289300728890989479442034667446945245709902438524709847601123273354489414285964423865376088464840634185559861288940281798822917825946594968692439383298851611636976309721544270392710216937056502609164919413730718232366264049406684354749722468656304275164462722191395386327036821034680000315749744209436950617174031835980432508923198798612504101117263447393256158977007497370543160661857894011711174972958445051038013857783404627479646700949291054492071482271678952630747204314131751434048200073216551087333764281671421481198256300849073218180000503812598133483129063517559037944723247033822272607159149020315248217394995610760948022269457710283287581688500462115209135870576640296061675818073946778998259112988794849762571496648701305009756047008910285288802191622904417181176746001281616872284184960419885009596595019105562608297901254164245739331693370412582381802180723282917908398525862782755575369860338946857299759503029695512646931723266167781240435161004106123652462686105241112586375358501824176067660012383603949074523037950717518183812206023061266132418199134614808540478307825075740301299348914096502417092300743703366607291603838125116338305264180342813415975837988315969858453574811832679328673584090162033643038908229957924164636522257818484827698012473929165228848565466700062780843359391346903633680474028291441264938825134960717220782373346149860194504624168722361164374278097018540317461284228537716063737064533580969209996618741093117239317240673422136949191757449193239826278832393280746729494949387291476357565889719276584566625799635323048713973384218130794049311678458966771426811991382953326892928163885669899481113319656940995483822544182739048876259188552419508449628281464504900591072278031195856302127665434044823444075136199240134287795094808553336685376743781407578483867105192660282915311012027193494681265831312246318579975271313550472761946804929402658838197919694846776685236010386487447885507118495676734276066833965047644051053827783759359025117697969696256135680255659400675667338090405497615255725024365017704272847713488901652540474893010068583626501209156927166870056001863844070081036109183613214663381582355014273877127337564548231904415962406030334005271800836344485862025597069204074791364332553008532822066989097611120012470695419932850233055900951245948670222405310688763272679180605329255604363668733913537301590889790811253856319033482709283032145293221796127198438801983460849675311905314200482030254241481639822645880977562766424642157537981999961610719037275903888204441711131649876848585008895772525370940268110870354919898663994727026226678126943621421805305909036347547915037103304000197147001970801927024516872967153484251480766420849199760041725074208509061056445471620801229930417835562641051113995961425508224748716614150490524832644747053210331682505445560819425073684012258637916341549948657826529288191149519263945090114827862701929875985222819338667648062623325619414990717310045372383469402484220995608086637686827654243580945637806693293563169200469548022794083619233805613233802490383632286237212403783284617800534603114743387494636668238600089910462485946847296544427907214527324136172362217960262589201799518214774833989385168492036881895743886496697188684018126276019476824313025451534942387014008075806439212843829957666287034784625523408246955343172511435279800713115358273202589056731092271488025279419927265245144564292710898252354345697912089623398944657544533712593350546598343867753874925465852655266912507318999859326876282804131048795297160287499628731263869969246094781038462049268044641581346597289035143414493296687272093853704810834088504828077182708446135724833821642435216178209359481486187564038714280563987437733678519893636714984910377498332057295545532641673154390514028933024798026399270587328397505135573116484103228765195636046632160525619401217392915228111703736759185582491547137474666294133136248044552032908403734585381881001796271365225053899852920717141953762358949796036546492236024520074933943885859135139072395569221527214597791351664688225526438315089556532550958763948305375125142224213663647998453516623132314076775038246510275229128524488604101641911982316150770874012963223517336426594017242991307324621038264075228705605850334410670812346761823047650416954724310028771300048891802237393060380469621842347534835315023631528821134842663198001981919732130218736477432999907338268255271770178694477399587976835029198603334289245380800987666046462029299754051348440843576561584304051463806086954759147104126788130232592346473434312108179391086906347001309611635066046549943876885390591511740202974932765277899984568249521814410034078212433801070008083536004033971051501053905278419495839500662009804402841562294970747053944787500734494298360521788518114382645525539585707183475118084441637706810285471440485597418581084898711902936757470806827508601308094975117473395589590967408938241994842048920829523685165305228354125458342238806391302629243408374351728630832883799660453488585442444680416028266069657661334876561520493314282433918843076693573419273924050863091082645684652658269458278201992548900107956164051899945336580887317485848611305647592834378964824420546308747437854796345771688893394956230936814179441367879167801807519808319402768605728314590654930181967549412199251336247759969701537498359298218131065441297174749157421963580782711977035158066608646827272553565741045307310347179692989702895294622265777500040684330009154358579447137217330243710141836914521521326677162570081314353257192426731652483503511762291120433423090816982674559727403635668386739147373306198174013266593716256380783108393304452389117156388705608688797716441876674053899991942365404736328451781111668077910143084113480297029243364635721201937739196919787014667968463763392334109344895298261001610047248223478592533716074595356879710153147443319681899044701778145659335498500580377584526855598476974730456479884020263731121003115451045422407852228503056048583842164160259483286482769000825452194095681172212630429626619668061329052188387804802837093615561465237843081410548301606050905548254556336744272056088138280676021169525577570121277056745708331312657597016663049923259544322437394440266083970785114589346120605086508781698613802183760399208714810608340436720003562804496683766229857290652818205075131820216932379121820673853719351372746255467687404292784425906327571229218773529600392933652543816631699124250532007911935722781923886887066932767349072654514092779283945025882030725052218443986464550513781932351497042111306962781636654252926755517793836824829826658584748087213494147518617150861408444702968815926686923015357208354226125862727705451477311756512860670457746026304947902487209464934014905228649729715995536813672849095215589391249491060035772632223634691669112477355922173916138705568165727987329936309195510391722154925712817223467798977517576395817908587179336384501034481962321157299212915427026926925204424475894457831732941966877526073574717211786617915551057934302973208645197942463601469846880984069372877061642759065146979850191901929726211711060939946805058878648638560525753841365269508404062869954614766807610512532232745594978116413011566354549277106817761245343695953652853286531960532031541998685904713851514352424233376178192274916166421164131080610398190818248907012434071555176626705948681869773020559755521341160023899453379624187263775374681259855845365967770488544017571630840917642605156767833807255406337572891058335661027622150033838396005634128342472008023928424735160240398412188396791211110234992954921367530134685286401342022713890724987134843150708202733082206788017643972298451418384313519865170815620226370829088867969922814383446911615051962812671760310904163216554330826965726852086045743074211835511739083802640818076936623088235889927226212890305422926619905734608885348972567429189783649331716031600521854002623987464504923534291497120251063340048811502981713521077668719221822740160640551415194327368528290367676937872588307253642034992687221740005302151113419206928402789046711641423110405386357416938338028745583861799250950793237093581234310179081182041174350254827602605230882265965492681203495163071747039811022290414934948513755075106738181371555558172482221378166712526374934780563743834691686522906041728897055864597992820273381103231826334464524117889440122069389259519879034490732273528705213333547372593622082372366920347964097262577268512426850146127166237216133124974573021133596907612944139594096120707538402039079357240313992016930984705307265798671877336954089090970575701628736862394664148077526228820566689473645518340359210660880565537224340210266297884667840666551266932787151497467087708452782132222277045044052705814080690459541710327152067173509719993579027484473041553539100258847247120283636518447344402668346834877307557527552486486512413425629414126162070231863020899526897213456232671373050311479819032324728721139228651772352067415251204515597101847548100370707404681752465316159486529987595758615427371626185508501977967239502878704426128519377240538391665093940599267378715861267547163613057887707638179011653355589042644992961012406768062496171979084625858631660052087321250592593338375133410576247580688932162153602070840305957140499906274849631612106547140919177252940765350422450922560487987866989712621922167140252558973003614615995921242503585736392587998481335728162512079808363496516415698074701337708926744201481276699034150066709763197031641834244275846041633164288198467529004546898380817004835370450551489302715553940546073688801655694483328232067948164590189269544008282419192135949006639592354236378755693251809051595863476827189809563935476305628384653582313882817980459767496251786766933494702461706515859799563379929932437935210811027106982064319722089884080644303663700314171805152201441431161647193626644159885342948140290065300980551089383706570219855359444479697167939480334719491513736487909958039404058815650734078222509333776541551703485837292253644930974934799083995882182080485768611128460951818429724892195138408886203898941185167557031352330593886592070524542559048429446336762104770823274563749292155147499425326554186073387921149369682713519402583981795741275986903343571799520533949963724990091565707410880605290303462551446694298730465948852043249256188407389825470894049108218636588790818985068878133599122524245581384426640697649739709043592414847157304138180373560244030812872244854917991063812759823552495365786981983939725552260899035918046718367327010321977134139760155349515290800613978565284149138704775036468598759661674346692366319807570211444299635690182719230054188463262048183996887234681978629391475634048482484158920094083585454565083728437563441151843716857284686943683045095863367906689565156316953585058893893895352955902719187848060262000628578363236029752869713089730225220767947202830390359266177953025878647153452324509848079408083382409441231676480231258095645632181751120748859630697894081785814491208517776455731127797233702110924835118794257346170624522282231533694466513352792546768817287142901493933793775875859331620938496388127292431864637842186261071778146702002758754634433379163079773403785782818261525709579742562054606856714910965047438405227307198059878088356023762775216521636935938131344561099514280354453644370292146443046378189319016681934902354314024162698282208398780701591001428836822905197355919367010831440515646668554292334016827558563135706881039580495491506101487610411102397806247391537510888242388972127774826186841208400170514366716184226954615057638955166336878866367735837230518213674250859412567834745476649323379278331283125461062581912883189002228516054613771535756620456123150676109841171170459479523454017025004596775527560772253419746583772588170807287880892281981509202099438521316262995363262653266222703435894335796504819276865817020756939134792118771277872955776326440622088199331669919473075597778235362481945275333232343733779528325659769332135389127693050421855145595811499392689584186802720844988863993738840428753057686697902423974956025579950639497045890299394917696632693041913070933697781054076707236487294098867854463292687225186840959690597131021230737425448511774233185909015520401213300802874130568621370095601863990568290017642941726555735083439356047113439410742923875560954759171698054504196584908164488771175127678278770548403346866987477334429387283965684104769622044397466166620636822626282290767733729544272029332934382779992751517698508727840834445651159132885085403801979068549503849986995632992884566849204833480251565315605993277506678182796546867511023464245718412624130354283491636270952827673561408614727531476573641309950635871424579996854641178351347418729672304792988507119978772683117893155901147066772566666063854903320797256159349543856534702413507079946457024346177675484004389304463952915150144964496635364674833568200382787580542451140088457022204237251506615860864405213703444895566052742789651301557995946099859300987555804459564837539779833932886650670767391533117571223928908925825505686364716569202500032553482220261176602667979393880762194344824514625783325437084323889123710177016192419470204058418648417355295954674845518116619873418309287301135612019022821826938155491632932254818649934213269517556815063093882793521902317507989430544078334423043668724558373933695207001450778488165186615012056820431262385627113020350000067941889495242412623614730768125706313930449033968383672790191963734062348923197112721433086915105118813380327589002490759252821307719456921039931018033375055440280155558144570132216850363850341680658295738097591043164844442836957631193875287446080585970480145675669119270602193111284915251730617641254174355062613599206869861933028173356568073743589732224159006911997058716985671338836775045744150414563249448277367815437762024972163598802994881440623017767700516004743579173450704465483397409751804970311367834688732123959504831466287196061781925294794628783438335253524745791983598992860660878191822582453043254677671229105292364523702369186179682994865295596809490767924710024075307944257907618056577913248819163981497685920801023163271144655452897529584216532567969337940013502199501641234788333788812250338189886929982036283110284241843584441261389972066123194775786297467331025954852751032461687267656956388178947294107556300407987051194341735627932672075464213940247441799630544311302532245654440986278742903669711569250164586071944378269222949484908170987833071111436066753763126415693993607460152723824592887569761847099794780622874789016986745251949205743490878129047804343077916102060557992416381401075246638265331448382901425749851910586146881373223685224717300619159113461509280807298868192715106529824236733302283098918188999284923525767821557485122896090702595056971619087245405739437560071647557803142194525512767567878268343660973365226494815143195654118265537431561081845001943985584888035682936157638423582014726770015193094524601590807405545689133584058873848587849556088478261595204733893048452710425917381227696548505636264182665144064206178555326484333156668474956226544267218080130619559489224119151762765995119040170991966739589061227061634128709237121123329480396878752389834028232105152428560374309044125605005870363813086340174896560435045764371057187588208872468284962569129947662580455064057497249619027346624457792753145588157571783456386855839603351573496647099374810528555201405154853947990215421131270477401969388656897505441320485152068215147048713545645662404156625283936495362691656009452289099651115757442850382272624600950205448459099892314007103255824388695505497882915676839092361070235597583549193327171541201152789470057391479968705346425692714061044221788960924769229365523751534050306274480618586136073555493688486872131511942966452229118457068830062900310882564246543537476537953653213325603853818783649378662787762716206786385872121441720107202720251041026037899325306829190892364379482480523583228685175363528195342576488199147112541482713682860210882626248693875032503872156221953979379448217142788598902452270682180012846555185428849598714356142473315975873772303255504843526157962825405676294622920074806738196574112798502629455432947710318669871755078165305226764349412331556067866209592404227173254740131248146881616367094107827975188940260006095248880399906223032918198233211451007202626142006582263255669342405260169291261983320492926502829182779604294401998010172430086151451128771168860502993031498847115379492468705477879803635238658503508473792376585206689279198457837584510420777004298221253384502846221082332186489185637105696123800396691965304274247640076322579350495848117546795268944346213747701296111424507533871803043754674378319729109779140266611930719744574803057863267411402073218169553371120335613661102259510834258046011548496902704548357828769693553005154294966788728588391468730787740587768779796987085547777427170654322821671922799663343020410297631350997240109933170019754943699643230451256961763231825872703626923317541729507001092185685710777503916444681039097838522112862034867697704451506216304642815967285022940575225385729946295624610368614351033083518877494399951909108789974069791818320150359659897591905459353092856849698042515099930822575755540093104402167088674014451755549275069267023965842499050764442120496523115195003445861459837255034463803567857039323522576501083159236643437042704308724689605627553670291907899221364830917080939923989507932241575073520350494316989648742021795531290374375784531427132734033490870029198749884134204847373240589419502725441614284272895798966083161796096575005535386823018561776514768552561255196541153189369320619824196221084871666152689275081397439987371431780298934429789320246126927519832439787367918529843321006799806728948601874785565097487867040732133734295344699804516744855060702512765449081816887557364846123880496838757730720398656204668709890127847062914347614791613862917890305366441201491932121366782276838145539858244208751198426776011712308566366437431302631124878001645797409430825594997136531450807113474157367563532705498545878806139278371927352131419730066852515675675327035168442752400249323768198311230306209153991743307227053264709723098883459147455692626303973228335392934440579453408087192223571210105530990158338438447276170118156038757940678244844494924329705160804262009582500929107467683223438259217777583494314440067995704069857282378864928398134292520904898475409127698523396294681187926976513126379042848870130442050238616617085901860384199064998364435507376975536449064441163452917941992579527742256395783832778301718853591618895831519660923745246323049679038050079299092712884683966667993281635517308707764987359637873728717161298371074448720595756814856194557809128201739284329212873939744637515672762439957060691727904515697864823390215483111549168312754135639479988217982744962102579831642716140250926480559818070111087277539063294998430878927618728054282156129638377548002538029528534934327884766794301761168422114935642325783763476281206389653489632270758012946665610497196815668757084096400464246409823128854342281273252513979276394275652899698633055391047271265195340004981661050643729805219716390734415176858741820996563827582129837309866317634334609818162750415663177819970087066992830736162658068168808211905204998278316160247510793466835726470982025601034941416619668361176248524916188499604470265100788485254696937674655006422841306669872892256135274333455541856056562119371356778144557666786765343257545596505742111992476734836459036406878191860791522848168920710004907305818117754536629131430836365093963807467807735140209116177163589516099610755052398083325382891520826289796375268219003133389096724989498729543077845309551675779755039841681069316926240560095001949511217299477614202405747244939042120494454780694608491908711415786671095477897308637936217306490255478044087019873624779621336782210237583129128535567525806852759825712410495290967536919092032618400741564069914920638497493910296409790656409647272573781081994650268610595849457802016138719003276921622007765074248662800497333310773858296460134008257650925774942470372424953275686989468062885106998302240536383692387233663491627817749188886439332886337797433086641244757592644281166677644759740410331911626348668788241692712786533658898760836178112567065871317732166391665854698712614922780243441504153514322624503150001054493957545288585786810696802042878201279820350296262468752735325120616964238454720221887921055902581439802626690192147169588182524578317806813305955576983851197638764536508111259702343765068207693151733740873951874015066008597697032496708346407735867373838891906828201534111807308531133628260288363022158661787488577963461034167817163560392750716690123069001309731847588904534832212899196151359944923961941549625795673171990901230086366259979297819318056954294465170700943937817961574848707039029910290410302297269957155804864970501311249283085505960230274912359892076398294596500979591191552136815395401289804043390538987307569358840140701273654869733982884593567578759774181020600085042352444176287031400503874588836578339846759409963881547081749228018953986470023254396798979200671916825903037359506664281589579056853551365925028839898485892351352525492908086244658497627726795386509279644355262074562275137431956934151174354968262964866611525639485455967556600801802493023195284824682012315814523909873335614596806864673454363218320255521593624246136832365231986569122196287853736661360094265272044984774817938637218695451890464699563304906063702998282651772659902487559906080641903106512927117661275412190810787813551428301300867577634428282551612539769162073591728042054687780618016777079279368220667347313225762508614098267813595173960825347158781688430980604506129235854306553555505319678257152205698978506036413167040932612556636231181371565090513799057099270171604563982741334359568836228385014484389603807922268411089772352674949484541150389482671284509408286422680041000934879234663675829870987513646803210414874337130289063315709867336967393885098097978943511376180392368236125527308833969983625986336755489252332894423633439834768177850596636025676799986628958353389751593881641452586909814695598436856902262234296397857030686448872512852576947730948247667850104159434796834149695653006251329066503395801869051845219455733606965858351632600383503493103186485721579550761345095015911114200911475705626509073347498995874175728975736918255693948372016046403541090818002167136055030275834711865906272135587163532717853407941646095220931099936109743536053241238621661512981366811682120201914562285164959174434828558038828224194210365559763598236539143857854714414006215257493782365886307872408722960518068733330994090497239435604322525509986425620703658258554867322171044212032189470375979801400860698109484651020035043136080859607321779979260846987983735546758458569534182703306856428819424072757247328036848813556670363852646846382284673282893907627503959579986823399692469379635311482734792318550578262489744478909029092194766670101788835992131777556731275897414000488095234790143461148046083963833638574479566620285924485066737059149859535008031503790530718724119836511055585599858664788653734910575113806469283933432400219378997796719396733572882522457397727642052313909671870268956290780628204723512363281848397849891433228780150193729756372391317489920395988013314247985623199310151730176206955827565148131177263218535599376928019953243257913700634716274024903228269527392728326501798600949939932261504348971437585644766997252494553590812867278998095365724868009655859561452618864626602327699342175479357298532464895209921484542072865630492955919629791066396651142525830722118968626696955361373719535717433440896686982218187987893398192676850530024835707522305101614475094683359587044693930682252895395287572437040948860496563487137509791793188742745215745055714687649474867903141441308434777589291086333508969638210761239936028316062952480515585694982896697983433205169863250277227080033716700772966363493491372288307902462928087264105633122974366471401160252284077770715259283731452291816766688554927661838525183550751369263207254285950259492419479568117410834272012285008829062234903970297033472797095014251212103867040908267567338231517596759926930399400836862057137519624370875267607476423176035994573478431374901888383949676013427425952155152469423894831803863293280319497450834531114530268487295910287465654743978271438292409542930729437459375005749848998661452791325990144346873808557280385703520976428699497745998852705827207575838996837743823462350888532240863762990060350766343885319840616370209312114358301151005990553866212622101635247874393481083690476964868635999780200830154518649248194977954906317846376105079684897891948182161903607496700023773903557572677727022973788698057941685940149591902022725712555038496299772408689669945111521154703073407110778764688747645153096361086945419903425983988174105516666794034211700353369903630050845150330918059620150869781629710778743704875219823023243160279607485494689587006577835783000340329383039454471907613231091165600044261067484559396736378938099409365360871317910714007857632008823835883437966425387027261830989793184443151235180587121083419115745459646236790272148546656410321858465931857857105368152546393084773150660095148216628885904068167392149898493701723803378383377547198612067308598453214788383056189393989595969718242896791522528746361856447582051907812854863681645791344219435374827291974344941032509320553934908385627544656524344102699199071373164825507026797130639634967804848248327224744634483101974208807930838224161882329921835117357546280257061925233565872133600568072760382732357958643049522743751201992867737031152320301765213574988910374884659074523643085850625538690118639940615071816917679258570854524198669437132526644809207075628254991198837000338206808577452979640275534602106973249072660101821907657396315537305661671370180856606269250758146638988739320553746194874144107112422896586743122038046308653601011814486526720423797254418911769664090440865255585672093750690349344308589670141196421362352610028498767236009272246323505761038992961700250721601581359542532621472104015165819316896491429404937038669513650536851037982991866400049865055775477583666993130969072518960639978070206433648683918956392138616141127281589119534235720428252792011435766728366921757912323304554916565274340864639442935657540835304670241067256493412038160800140575659646087608639885767424752716401743601130361674503791454600601170238171684169099291612211525016411574407025526366658200578012281020324274843445137930958062400613198382708601414063760016860249587112576491608351714497308289437322182597380637675096400214502042502487677806547649406045137353127873260335309513071130709822899118781043587194510094695683833265114119581415001159580169124020185773911219583247117450147773388448562262571281131138631037600481104382068106099127655021069997402416262131446975586867434115220057876070475444738719822161467071371737639872592085111884628243536248916819820870757735554667519250814980533564176068026005690999181554753994075761477992819646423266828531142950303158543083525935753052811333153634528844688103492642370532873099655943758104697840474313136000658284967512534500247408943131844978871841114690010089728151608129883485472230122579903358150748445122900382468369226689429354552871390833648227538558724940539578058023331801092188432116741443892733603717476124094442610179155615117327121707945970464763942509947882959438398821303074997242771329489702774900642370431882932810260149198610296543925503463956072541977484307983483229328576085002348795728544165753493714846130731245250158414944422980740228322129991705692077599949250354985901005162775240113533134100739113462742033635694186115774487197943135699708530622698790154735899214100876222662713779511548870367548985594179455823907597344254865980919445895282466606243394924305236748936517389651431473616253657250540120497919277598679936723288865601840734783589512264360830649714375417807374030284827165505159753627751637613798415433211199355918650825287924784646472961577622037164011054389905303542049673044342241608748704944960138373768643215112033630109363693256952038870318118959475406957014611791508480868205232624206402394558212681019008122755505150156310747724352963774854956178919341531343905423089350243445974527528282041676074269576514282934060674164359357653419606958793344431960008456102506893485066421750783574899539127213994089220808479908856430173703295039965209405888398121356905905685230304578285895444281876298712481791295825597103760957806811943087711891334142419482738603674957113407894861555887453044131110075823404264586679166254231822653052202392466677813894080851482072459222464751839564488867587988758604556611545863045961749830012306541099100316238889065735047704806345934292001006598804719436258936349120035594028535707919752021562037222683273231242520677474363207828742873868581454829568836315446409927983056330662035377973976588846875085886675560482554053107136794276502029062334705894675298970987643657519083369164124153821898218483295767568421036032991177368777379961397896352020540051797046926403023970862203651619748807827849021059420593356193221276666854847052350452302917401853331870929937733056907484015692572053606005991343029980994301608942741688219967295587193159157683070122925910433342454574946698036562382395339637032502395899917834008722387942670980792208836725385023077055691484434372720718876691414543820559322951583818722723882956646302527639982687886081266628544347808148710661534383205586262786343792004812923936518629680126636486724171220808902324151470339877407642154371689291467798078393206786249804639058834641414963673738931300929466707977438507615086735436111392456088609116523582638348817725063492002579146343039995615036659348639572331698830926528515850375062258433391770963920372369598514830461697928720057568040771810246835696139804488210715407428699751024564473106341881910051322835182415791136732086721840140870032846550311489867141548677221967687050864150932245487467915300404660339108845518950546869983972792573754228900185305708572191221354478434938602714005788901073619512144940633036325278393352471921536574751897292963844171798958245583076367753680882720221460007002972897477984255138462125500297953257204597366843854658923948821050438034623801196991277103790594901492538954725756459360320964448728444707739125287330532479616198966585858850180948400972322964087994307818058374896819814442051238149967129820054791796310846547280300081247433573366954728255720385865677257389102579537696303189207425551597473360824759566075573584516886101591595318175312757694777044368583964868353596296526030505419337634375247297462717674723459431844038277806226718792994295752584115164121079118126808335056565448569755953095806651539379350941165343916462694593548735832054640201492674690716229183738044933940128134144942325758918638851589849822663634194759884455015960478425449138789616879110910546943383781364708625515007895790841788047167634230822013777678564323144149873243048809658788107271577242409793607531437639773370165053894534751751283332104361250657363383150979181779358187490416610982821822677616817427893939536055206358419206093174540085841071730069884326440017644192473101060576797922547419522319760606998416465012492761804926142169037728495252005403512917128455451777165105891152140275392997296460258659718955565531362190406513217951314369790772925483201996221720083231088949683523113908062827982933377499044057455393815791821426504735814825258788592270390029083816563521130857118739785805713798217242191129515699308556027675323722207744435885618754063034780037467406812227269323559821514505665621274879917096985237236233094636742543422459470845929752174009155268834805997380219888543190402557829712479058338511122199182746610560090698068835073560856105534009279139275654167664055343475780691927074802747682859047806698411087023570555146831314703968281639360468233907591195016616277892653283682908901474000688079290435857611427624340947602173907365973908780675903577606016060345296082825104306226166381046392258560945947052025184757284726446680304032668116075301747372153377479626013037963810072050157203372904070882116481346157611057751012228338358538617496822496740821690341790761624942729834857095811200741608862187008793594571986827055035359253535544782873563516241785894236536387532138886395428448384749634850698697727129453945461203216031244661627669541122792098255414904882744872881763948918789629539760035062188493714515128949320210182229824825122222504190973995467583468748608448139685782052483381467193156259208911552438726442169632486799166244590935442580100556133491394556761562076627526007420597748968662119300401401553130151498421729115109541145700055100954215763818722838231182029171399267561518147282313706812729488289422462005642324857136681199513069359118686642226150624782915141539150954731631102090285038863173224599830853103341939006749602476305091045954927422979248590688234131916263943782872447417517247861215540170359887566012530738067571548165648068812120285744139310719328898023283087525060470372060679905401072857721869810293475329558153739293403528362572971875267753140350429125908308204679432883721035375957718032512824900502339240034269017678599787916960471732911149468063566386640545467455558583660632836255870124648327139363663390121302527369862351850884521127913275572913950319668000844527354410507576704801399924678362155736093617100887084485227260642370907889317737778684941261188891731800661240843536570609812025212545903323751841746085857499473905968598262031918235061910431497697989990243331331958781481058156703065380789587000332255972405598603229059913907952632223380748936630578481643321044394617621640272831946617905291070479333813717069020170129371264800956347239343260646871437993826230978383686551407062207883243410244948596353968322748242692046972996880677703593836097362634469072303460962406373489337573470648230230873115354112235109111925467498265845435041031145180791327228515253263132837832719580326662069045679129748810608932839488308683263436243988235544114905878263959707969141710751651045039415473541865043696515814016946962742907508094116530121505928265136610793392791690420478057025123554200993156543523887738697922683905361177929828820495153181749173725253093114691185716910879329394783603115236479953553554236672125891318688471748027758862598441154990703859110301667586242573264609228857707118765168129912397398072291537057662460989234708850849854897471830887002306844791832804223404192333409809379531622132976584081097668978523574190875577189352874682239979398824049887975178750806504975833232553240429404226636348034445683685276445943446570957104507378653381085938095360952848849438714009440146765620723388170334744077414202809831054114668741768331189825481847090220701784942827315984366490933712424846784822398378705137958371575334878173707724678912374701101427049110518392888562093846204742394157961137936992603074995632139242419685284722822226367025096020589270183999791976313526167893235121367699488548361390649129878132577191250739294244574513509403179564348408223500432920072264596573777405601108602677826933542810295316511633875382248026140751973741481616286478291177530019577870447942454585662431285795270233213277427933321261479959046084937745217491116747286670623113440962678728832492688414638662393307242550296878593420561611572544293250833153789640297107044007916701514290183426690204624941441711120705827903569241721672346562403931878497969245624665574639479753521608464588035358093358411166325153247077393705810419479078907960221066316875690814508561670187723739267222576213689565358208433390123292452191324642031165066452201289668325941226402342189190603291830596137011515616921464602180950389601764763481678880530305755761184961422440377161702173854111315134573772400317023827001369543428833691498001511427327270951569500736849583052555697340559475521628309009521914433369997082999376795308542181483055939871209799212817432243977167744748636522425773213149965776478907318465438943659082107166793809862696508179016756162816912442473614154083854413994349729037298966156150024613868172805869114026277359512946104843425933061392420864810964895020392350483822321304420061752683088116653696355292100742636686414838009968171963730172588090527826298342190342767971111515331785780854467093364906890654255094663066375279266496025153066789353515815048422505243773888390618504529312589503175498344944074833627478847483941839678207786756817905636213170916986382765223871918211009545776806981123979660176912594764874800802473379306758714658860940555288122046809708697719194118350495209297881309019591789526872570065095079115869279689155761194902684913670700482316619213703654381495608250540110026260008187056537286748532224871288060233990083440621863856745530348541124482548363709301090698427262251284101092473163845791875530778367961782890212983276867131041842788262849510281160196568977268161525085160417682814147639524992766046067215230455982170005572301047253399508216814443133084173462005273284736321974412039971884624890727839803792335331446315215545234769275814286852671911423383720424211545877077120341868356608586295924139616273840555408347162224676205604666405268208430624548657340923854324596420726660593530812225055381288546471406113307793483929375093841862938828114071659775554615221737766604223948115820775895170562865829238333100587038600300373778947187667424449996053412829605166865485826466083549560544423527607025999655065660875080109399978181110434804043557688721517764761225683171920437870263685486250463410527756585516795866713570145263224846438162247109019756909585167928718544743763594133200505925502428030881203258089704269391541981428760752029952265214777320061281789248635703021777254349911731795208538714776326020997096360973420531513877620158236665545446386553355625213684939766828050259679008959969006379673107314063772625507167990526068965374649665023296310498719158426693563792151145829263166241487523228829901779749456144604870582150061190438662639935956869728804319736815924657171061598264074395195025942338394685592179520434538748835964574746541903871787032927137171318908729517825719230264678550132453604917112231448380246050486637719247893395987218591128584565127768813319985765886443501278525601837918749262294499519891483307384095343931873823159742546340393470498111473052970017396428899359230961110038383967414989960106937475550264503028317679084778907075458559854145414062296864300778621393189895790344568934618561154836673926273486834239411271212498881097546891769389904602579676775677481741924783132905526072114995198820111685699363561269056184653723762826702243120604977796553709827492832576575518854942495410441598701007248422178397957349157541757766451556452253710614862643587843531732618356333174807916817824266752299919110815607436216073524430049957972925574705292143772751977107878124618468488314254942221278898016107607590690015297926866371015337638204577588407490464383505196230504088311537243847476569776244385793223803073804355917402067536998926629606828894351939272020463239401761399411809642334687513312843710795353147249188453633244623666008655815336593169469997184780100526198904632620512978314388880023344592490534261997773805277070821748069092088781634743279556966935407375375315897063319329143201634382300878246875535183649108863433361888776857894085656721883678897892213620692708694140571813355317587985769649340383534834229586765508070245630748567929192594840057691799295411616250896571035399579729390251447985074649549020964399795938468408935567315410060417053527043440027598576505804413620192238640937158085251699647273837652420090831528147035687238468514811638069095457778995011629167803687433949481856156592604890631344356767515772216223374991836755300366199304495071205813157824021015807412424280664880484677638430099782132851176159346037865299673388575109010271324493332577770242349873187545225509706496373413253018306344833112981604179325125271840267656666477880134676377331036540542634913729742746993959797177961126539534184952763477683074236511372673524184389314493931511966859072814941368588853255676940602614448307448848177688790573466081739444567913014409189342854559398907086769657680824330350823975735531889049854821094823642904453596731508221603544794760288627704489512770115227226665253705354619918736974362988423338215389770561628844495241755986787142914020090737213188219299774853186087277831907821506534437865870741279165409433837947386907964451917520527191442199774773932242881187624739101773943711281296404873944221507055961298370426018117915300118110944846151104204243285488319208140982504320898108781641841777194078797625972853540737687812933629889766552688058292070078134463901849726794401770914528252732404053720253537023628833734230606994125567196730399739456860461931850542300934544283390129660867159053453663505167659821265498802572710395428891520351709485407677863394449147510441406012936972873298393472084479981057549897323223831135892644251256263447677151163501698295919149676936799196205921704910584984228486378313162540997207644906802717513809791777195933979619459129254148903113014336637466051021954120581606614754114823828363219013330403841038678016621413210851604158110297691350776078380130904674490164820367591864994369431009072174567539675679389385033021345309226573346447131578745500893749498168886256678073078572777560779363961585270582422574487554549177851584571629543316517427972082260789028817385512699760582524504868433235017338620408254267609935829364250204355805277049866870485774017807465955748356873719065377546096337382391661326519477062868979969511304156169676803817677978030758174642733571936477569325476381218154182929721993820595723933058181079921227661803889947608081250173493879576557796653855960600141903639526441422493971443994005710425073442166437307831310187096338714209312238225794316717177930086114031796984805863385875044929109178402538294469058224404647234691716192171654141479452651258457440108505077046429314456006092439193039712080139561942517191353635445073961851189578371621506046005904006260055853592302342246758145841956719637940099541803203552372870043565888349808955326831682321649273179955757745283492871622858580379017092225749429177079136538807978509555456656156362832483501588439613370757781323567680812841839677446912909065603467433521018309303513515444527911243228260326138001335927042032216043242431290209404408708966407421852291597582385810334035803560797373318975501289709609733456746213510740489664092968027586942919643889311258916963813374825140668496713489674087055212031951391378289775759801624238986986654805451763212907741621357688442703170013322154764902349967685263852925469008248000616745068581925002461591190531327804249786157885836756983749293597224791757081139644940212317963360881715355674243073726786403459406580415393513012641531023083612810496809132044090507661782580933248733385806180036675357499948613267496578623119424696563949077195169164313442669977658904411789012673381412002038720619623990856227911342970791930483239103564022860695220798574430746046874939657874379472616755619360889327278412185555388054418310510394323434220468951567533566704191400531497002176796771182782698798208475527352772141244605830073038551252973286120568526574439442026819567706967859878661684660145983895967610274035123167025844986177992942671443293671973969478901556271752682320237196636170186029129455653006608868607452019887039573720489939628750462071920673720416853715616552442884074938592018989539164503524016838128128144652158892433223213687367308549402065346150542665557760890959919652072730821710539486574171160584354517963522351403982890853927580002876142337181836868836060283885602527558813337009789057516427294231772556302743538031457355401450090720740107415639241981373532429703384114514486796494903379938301710639645214136294783203438133077625561870681162603482548586069383872873324484133967728572609021642820978354264880218378659919182739566066193202532276343011446156069466214698724651894034559036773857640061699649179302000858927475637659027182031882183095734908352354636391628930731462270679784537306127613596245567922975261396096601204538638360318102132265772677385729713379701056321328657479816636925748998647032994136391979235745646503097189622188405461059090806551173009066771307289334438204120565645146929351194629762982235816434597012340420823243825751866962562691961830628394464878151478690705313345479384259578525535455993057006652686362386574082413800373032609412060447762821227801833169458459725402266421831345547659903800365232605189501393975126926052138754497964392464585892488224580696317264479712556727849565286901626070724935165373639015059712983818239377401152360613321884996824511264805704123696924120245172708620411751138258318865034711928553403742114274783454729731123078572420017702819299978753385616103638423939773997624985403309839445459398552470049426527775421100876192609563891657927447673202515977076368023317808975494169602753413505988048428561514759529043450024119669228654786394133245518168893479271027314375100994401503069881514679158140653934308475501758513940438202830946438196177934749611501695782463609764060331282527256403444669160370213803498870720213378748292158456299244466265586082586107069271047877584824098292309823890953738938122990258894253423341289255150989807510967253557918712734206583181679019900729579151203536706996015242099143556130288458662695951201716585277417454366129271975029171708497408200871075244049527755300185196037933807764735967201603457994789930980405174678976620407204527309854943938294251861152384869100928770858628775992620165741331896881548522233729936071440035032142581805802038508953785577644823629999392046500552554278295664601725483243351699149806703007998570116601097734069143118423047487974258953806886789057483146124390096819416660078861256949095150983969430829214263118139137472333104135678179791508639912245403009695374980684691390937479761420982549076480395611712612400519647254873989068272757387099445178433672401700836432111454437101348681193384273768457621831110746274797870968019170586025055874240082195691239672215243809905368388988816534934108407980646723319505901093206228598465003452074006642405774660545833235232546255408296538592961199034483328452042370114545707872784214383342561576700645466030246216375803990201133288214670760287566584077231255897585953877060079214147167377992295794456976682727165436860713042190256610374104094492795645604542716272265194510870202492536524047986714857663610586426308309331535739053798289552170632879294066367514916720991951067887811246240898495402102818581055143535387247573718733848714661360475710088293333264581669564136713042530294092839584589606250717589116789046464342988649936287806948963960560891368156314542545224384185803332976128076386204032472980108312172542884733046897752668411769226052525860182366070934853839902354359925549467476790158757301741399585590295420295210471528902008048336265525221284985027221564040463958362023022197863281473555762835521831108191603942186124450205024726018714377544529608399151436765804329361034801305789555183555369291690544592499294284960628469967712648129876589184154978837030379082275391538372970442479560830525968591157690997898615822619738235248619448761587050593067340272527384014345716006032397483427920444664244212626408321889464047060862931362311024260377505430269747748899671455115714532239843009138521693901825740113034955581464856953968299277318999659684767959582550031194008234552243507635751952884676850452120646762492345373158957427594522682628228756587123224372575259770146024790608950289373028305753528664499105290814501937245150121258058677790756005496939767776523932381455526469954558157600383306222084163433880382224704151615628461250580685129490884473159250093873936573585037228693868081339831897450970046027082704854211538752046920984549257947114521280654079757822546475921158204536366934449688515219847951836221839384734863153241617623650235055799605942742293763062946228384729528677379265856533454992539057067988777994720569996072964529562048681196033528590003230821184560507437994102923408223630686492843890263855132914618941162973651186829977432543583213199335855681553861926243160491780017057783555194692286817456392540628876910169087830281641158531675567014893942801698329242119566098319782571752024966976551707794094480132070158979253441817894527672604229457750446457807615434365377342756481948816936357216183596505740128166271560388047693482180575140002331404284218620712706696892335066454201907805875642141928874351916393217533765750778127552873641238051463127895608865455366930505804821439252863173812680975281625536363096359458265880383760316174421541197556570273080149770423497297115568461077437501705185110728083925689514632209151056199102777392002914459190557555473076457285078004190458613183706639664486289124260498624895037762738873194933097081993091137058892921908635239030182911112025133734771595289612255710108897400229456166142008857748868074639465896113613867950826185936218466636798825703036313097059150543321534834864973737801194859164982004623821690236350375721271344492429445721532119200741040884162859791164742863241969587178612568406701195775203381571041844319856140334035605949686414580492874680107955164419916170950424129961433404987938096404095142244569541021365419021942905983774478504127605931593436679518525198743344490488800815293326875201857006034023298052558937869365257894654954689967218985252042753102061915563657969058564779859976285964014347760784273419917736849564051040458314788205907133825686813153286450498942947492559053663865671116289930438987462632059875799691770259111537527775874497228040336053118394708676939185923857862493149556472161377287052420562910332724807499582982503547287769273702440039065292006958784883109580805389002854179153905350322332071871542936401156287293836896355549228831229568094742237287915574670595865380741365432443485369332111519462674613240725606740171397043703761065540653909794860082753267659549087919523431942820200290304064167199206365585136703955964701944819991533137129851680050990644546104033707152944564785982748976300090929186920265702979661647115804301312146775045726244894382229940163923743982317579270998555403220619703419843577764283083152640962901139724380041865350051614079146887595434050753280546351343447833566473184898339133654366541446894436309057562734519069214491208285857040618078592705964081083490348425585441208610301419043728903859495315721393200755547323197238877911411689501078685451272168667871312022661711443746822205281898337164927345917791016125752604270300824592121257402843579725567773388518960714846131601163584551718264709134073316526726829553379164928979846262363262346768923884481848398136157147010648060148290401652478105993475553710189133057254704696681391236064168668355182552515626960010421052361608451352981126898853156445222690017004435316884764822752130677081370471149422468625212663112819331368119684502657328326243670225043742448143548643737932844648914370607768849142809700909516002523114826430531571967872129455331519433056897612865798506231444686682991626250030119371941228990744505983425982705794881226349850683569914349835085111001572082203205610817627813300350799437246408112240633157153797598335366550656223574762691168101090755550193500722239608846758449787938970290518700679127365137028617047269245710503063728856507716366017209236051714152634859634823800616695997437768731557092065937610730923107991352221395013956259218448487349884631244646671799256684259859046452191842368212035948466379015976899906155188303322738651667288503457467368419236103849587386332944491546473747197950151095864969561971658928733141109363487983576202970531411380000849965338162085305714720037813520278128469219160905731896343701702691543745086127596149349661308638974413001117515926182997759742407716379330731959693206264485375874025835071170833265431618548692847252029040716236157097080171401785327947691360101059314845541694714288849081091317583613764163178930702401305749392303232694851594993398409024208301179220042057057908864873215611005023937511276206901202966858171627351541584335407107592380102935400194007924445332007615039782822972849397620372132497611322907612755383554674872166873416964058086524097295444494464605943440636486618678169865341638635496560447189543392886775653322048770784461034526560015894718162644322945300752183621284718351427155005416028296467115608983960358669419676191797657134376587149966398545519341278925889946595594807781857348317225899981618087489600258274519764579488649109557090182480007111186265605418841938156628111861466678260609358603085814973070138154582667900074879503312777349334344713663981848287882228470819152396138714368557091272721184533649083245293248737598779104109650646808726334897866711379332047968296914417995426652921116626664419968226133271665614721683627715643082705613843931585356529031829810418179542992633031424695291892520393314725542722691194080800087559668727788933635127456286602766951668420026527702932903772204329639094917815056033006216472339693782058182594999756033471924457163866160738876555557725235242363667090994303300701671213220014821429795710795260342715434973672546164798318935193246553400482436098923337684073426245677108562547451998267687511878672533587139050243404599952490495033483901382023367945272890038107847515588881520872456358540010262884948516437027397044549182518752211666512612998108460747199490775744577331578247622714410444959805907134916718460211391710861005124161380716448450595521658761811243248335416281957806270330342105470218237047944030918135273206005763590140296200597308819687283249420469375196051808706405933372531465072155109800972365102867028075423357556922656000051315108767264837180172727374158954554321445843026140443847996352728172073948877670341601460895279346697716212130465957626569223899072137063599742826399859047232163932828773985410434121892784802340087378785600951600516867201447616099176650198135099165990000000364719100830582272891863177633883821232102604019589813205844258806767234780824009132472184588353780195530606638099610931337904453023880811452875977846711692198097976138826546562347420900960627053808828561150939090393608042542928066890765319656391223257761768512438626749166590925485082020282617260760489956779119862342561017829300283129856274288719976659174709629660175699895636170583840599747653683058673979864436549774944407832402759105662159972931912209773874284170512505974210367307736214059173577741724009548740051027048880832566195072401667160312850332583685222600738054677741561675069286226510224710346083477331027338523862236034486618313119321412918991578483526148617327071161785821194287958903807995182350023343985831314913604572148408328344814893334897996286915292906148843730479407684065835082773421057676189323490655101533615611134532220905835508582495084655815461768408744403194465697509724703016577900005125212671483133920094681954000354007904664796994087886448592058043415314731729080116410381951623505791286498114857197720288859634025391070754591260164424892525073698515060838853496697831355165523791968037451701401477995261361823629775262764672937437103704361109623443222016436624505985857140543712852325187289865276780114633364759843786612163898066188993140016105353422498269670298200102537841039854534502555763689190427894968625039673289737054138341733190879677296963268373430389674307898644893028773845222981378592058561530977137313204554894223912309485066274773865387035306299153871391795869568838202735402359452327367524694747926340843309054798965687308779507554867175675834039085785167343835748157700826954532164670765162656625581777931837110281740616465585291382283259939250763122343437906550779355643634931867563920235750114142573455010609175219190551279952227999892283028576980928548785535976241642279044862470172655293562427308772311972241393781746608975096277901252113941462603300235563461121473307395022149535368428476325916389752703434647540285806903390807550801221056132242693527650494472431715619104063465749275077582317668695258692199272845539829473989076254968124812121763823228734724893669509423742891683994610601036352897158728107583091418166499397549472715278097304039014404146148284774891761084524881593685417296013976833881415474846090094553764386100682973224504432251933091107841261356906500527292724318245811533495957161177358633680662586093311066639067490841373059866869660732210494229057703619390654793583104847375547195316999911013250507598176449368797704620239362094942888712553768809161871974182018580847333315520978782090823402717302593623129354927261459298870914980503753583202131192460365251785859940152661768912845488938686036393197372595061536169320273995913833886162859304824933995294040263064268045346400822332445938207644389088766171167274897303546508427782713730098488683487748918371861607194215392634719367375071303702248630649955825981050851493914868990811581705007295767099100974383638559099081188773636176249981589872397885853364232483374810975270221917750852435971990566169455330355839061374658533875876127081491060034641720840761764439953459288776498396835071241520615480263999285822683318362928378047536786297789562897471535400313481380804112858449046009548097995317306178662824285076717386264694436774978057951729520673194652352082338522012430109047011643628421172927215217895698767453734248270253684512473700711767644247269764881517857695714407674261070126659477452542067985956662006569598652139714144290321457002797164022716079442608085671766110446352356929850998375536642715179725511674579431069052009786694857530184178675410714182242704126867243465090174735485368085700453070572991681201520621870650530958692785864555202329503302809231292959170469688109509300981125887830938536425486928382285346232869175765983884761242155204049454913264011046705530986569088915223252973354673598449441000287004690793453340194001728584797969942447501856815762783368393255627507640157887839072689412851150373106567104475177011791716226228955934497328178739860231401165766276561698000827413775278186746184723781056757891686204771036581680120666696095376848772385994176487108725995638606452711111453609956448271765400103928683827091303398099610013732468090905600929357089822546218321819904355355127564273631745725296874726832538339917070820890068414306772319954593640430501126488441296304856548028404758791181906971826763524821271115994612690532911060515273540817599646684699234301300151069552446264403184916854729203557412368667005876354725077208042025732062642457367632127947043290668683458750199853467573749401767834217669511989723861401963118883440601564717297536056814389296780239189033400548314024938390244370308192916595030885739474178880782162689805934264207091135772695450583333430281658155775412786634384746686264277798484393728118769119122876530022156379855383325989218628253576647018698479696314266069860860806859187318363339477001712825761496621294259029098642464644718564062862495658557410502552160296135805369949979964477029184148729868184630705382039759667792988759840247137162297724282349064253610681652381448057154969787801007992235067872957925716294154973631595260012635101675595978973508105884443020255057719198997319214478444674623509482017873031553055895173429808337882568937032460285036542646435129762959407017600882607980760727165287238421276813525553929591478222492201933340140936506675274988087470076631422495978675809033280447241018967859582370099190678967984900229109142252192990780918561038501587246171088132169018560224588409835373334323065274480040695223384857132419443997847646255583276987092023713547276828291867573447060941420196011504097494305200805976992219801954032293942958613951609358808670688519640270431630692368142966431199743565113404126800300668761423585343680536219500530957750088938882448486701771858781461770534388463190645608738684438301012418722624935081392601633335211813817924844942521773229620288254133979735230401664943349690482256633656456664484225471927235276036506813857990382505021798333721886103126683273150849077672855876775249086411633617168520554749119829030062181553375432005957140423136024954609097420736248872296475821342033689875194043057724323159127643167274851036077170747068269134564577041851293829225527775331734202070138897032737644587428995532412788963825190562883349788319514515923053119600309750846880883364913649613218859522417110259818120074959230708447740722117143283953142175225873958828377300301940749000303098921720567824645863649553080049095938890229784151925527631792106208796558613628070823265496723315324530178703721318211108592192556813809542789888493150646965351446105874503853852657042762439698120491670298882296110143212862503326199367389742064696474626151305805508700369491077081953134015789761332355467940630433134236242953319750119937514747567870859948960514962147226062730406690240544544017110791768129209481196441549165863708774762337846731898249106713632636889499741046985491107521580218893079410046639390849629554099632354584272620648193323380404967780724071557967740416160370310696804702248334020717055824137617890123129493878925613349332645203596629850265987264716754478347537464905495515174611544201028773596879300308118067153946769513265905532742567250862842567930867525136152280706160919627882169212342096432330263365448014705614361635392378436495323156351113019660301982965526167705936070158010319671179699355371432290048427137955304774873126237792142125914054586273084406824027968735452970825423264759621433049169674619296069630166797853699276866100518877932750738871502787250331243303092174651480861159496075878184165631365861345134142916322905689459599866370655886477729055094209391788741462413294689881753182390160135486794280152112824875503060984599622945950284370660007708493566858189529491036566488117771735741578474540623732764688373119648067424065437534150218648307174703190239359618807719860409640679880219758436648734740604063135738062598849503306380899865126699001047053949955613467407413898881587110615761109770424946572819927375820654528799079887123539513285634361188057479436859846452220039984327472734915188226234075131257732936942782368269546529685207047103701341097197319434155360722295957237778986769895073937806128181840843453978511260793833944781775304610688582954260960522681540461206049996116350650572016508341170928357598824255131021712129674905904439809384099569687287249336114478221361374052348159777787206573915882539807792278003966472531367444774308435892037509891428284434597760669282102015365759878740429439877258720007917687785386486188053851227752867135481907274511642853858927236915832810734438748450946905172856773081400964274952090593608585747507611694405928849984220644772055120129174181757726483489112433079203698113197356281973715676680751742901160372036514468949719557275749261413742959865033160004756394404421163590198011058253121507820877938886533367267877173534231054217004388842993243219253079204855549818467736420431905202564881745449459053054079609032796510271751190965741341252968534990437700300555726211224348117406747721665934544667095161017174129155077738859736409335153962347616350696685775438559650581167692572500196882446735742469421329102922241197138549007994741338358423053264242317771302021768528687909439136722620831103672234005116710368694259413375125472868086676748703009429025081053721066320652785471457617787209597208484063052302053230042389504487291895408777352720330166836659181078253895668926400005905903534866003037022669697366072327978546781964936520421919055209651701665962247753291649014466110553968933942178300196251472326331795453616368306643926031775131776854316551223285513997612005000812665350836859250883607423942520249312701396587661195606786397650191533716951863046402703034407346215098432224481826560639832717653652725674592066018170955338846954597173187130753457540613621303053779539210593136925413373465800499107769734479063062495542074915927273995490411263104508106727766789161485406608317476112224976802786384486515651285146562282253800584731829455633261696053884566506953797601831746302409549755715860505689807127092237512865404105262769467723068841682821844702993698805914047753645037297060213880497690252913829407804246282920987764404163062759457893087025972112159777545214630575435736474807468107616371242484666054109259593817680729560989569802457930932612689305477890845372837043106570917268603260970463667775895409267482134427519936586234655733773050607733241578266795527060130842365988314539552616056223075931535186995635191434886125679464440811740896239892129766047752863814803389011335492414752696498050463813672970441974635299150504416777009445448943339991088708884985535401346331560009254522701281937690098870215337274405841985407432490251278760364373300346882225194930198924320273224779885530507768017332228009112014591125002240879181031406399063514380151939538796779220213670164365598414617183842320362984807511131180112796118653986942350410782494455129743896620164966334102103915829311630011545241045012117544978645128535318921678511080579027882199872323189069653669071736278943808832075213063984481954389162751394264070761782616825545655133105719836446250971792343613329953868924863374855699186803086399746363846275553583545202872820746209084666487792548773873009545420495907232757225642497852807606002857346038734776070598226943653409110628206598709920240408088901216276979985284528169102056733252393732062557069041321507159818783763264984010475764588335348810857509642952933889257463193648281886272152089303445273633970747821913168434030071620417050855905580381305177259881669439263581921967343432610709690328772574779363804249350168053613246508387209882592818560653582428316807608468596746478834565136632738959736378248205977520123526916874146143286831389459337227881753779892008623568151283971145920756693849114786386722055119854841632290779984764178250008172284085634584033058734699859253040168946245192937488136970534985933834061834300385458023105834626257649697290661537154293657981404650160371104917424730550676829791278554386388557007234594712941356253709894100588177312582561519930227519005920041834692919988187392938472738334519431998977688311639207150748886586500492845635498532229132103660264436582701225479626339241522353962255724613846671938561182915541538511900988866101832937696053559195534597631359668207414825805227298947897817368803924260030920075300212536760869241800671344400399303591984710926565035943426103858401722282611622974290769691559777438580548935521191886413840362047403587552600213162447749577601532643763592944940755195570754430980921251243532129621551473841108817319656882993707721430831231640536790865635280007666980184396176689615025501978356945825618761816361779450111349829659948404953163029409978415913541030136190259704839610378861276331545206875887749129068685106557201353962478728839671266698933639779078600724805045317944425724847262056083592318259161361769236504351942834172462711484742441578481282265864289701324622017515350085070899819881231641408394098984263182599396059998077704645744416236473581661966403184026505688199846052515572169313148242302392723415723645104013197305410642728983423642478568100937581754285550767189818774335813306025880567130039646148459901202836103689015648055754996939338895756375305015370316605178898386689074941928168041824688907933691654785702743206790657765955371922483188362047016994282850938395446039533745938858017086160239404772746919632934354886506179888258748581986193400978342738302111127691586086913474260231330311867222781546698273080475638223839833764485798044664349096812221138972242882354938036121330963738020142470881036232954109037904628162060631184360354039186684261976599219711821298906136799464956321013642320691791354031510006466942470932816552429511006577329408685405110307214707076064124376670942263396345770273579606656741403192123822253974313378516056588444389146547804524798307538310803337624317056256601732595959589977947997560893346179640311889372946975063121986302554949343753326477467718668815286687198372843427939754338057190541127355792219801772031896572754145826501272665151200777432306110377012230886304656716019697541910010914493979837486094325710915671386558728553042045708506317026366719108090992527676241083308783017873615311308441432514604628773960380863964924977262901652198507441090964544683971853940411716825993709545232649945472830665863794338032440800475405972677763581579805379166765469822438042066654069680347457798734354357673460675759543858394822066768565735353333812483836911237444682773759368698639076211795640364037004379635306199399464620105711566996944413662939283172484183629216272801850801193967315223557834199150937087015058221318093026535949593732244564165359029105321197320115289889746539747627507554418192482030901367281189214058224825798458375782379652131606261428278733269043049177832438777600253743740141310272942760712975290848633008151522097315576640909257105269604297087643121687395396371693761900053691605739766976759898372783779572126799521841239543796141834298585775496256066529788922585994265182356785165263882736227465522970259032800731343823870951897362715629902096078367790369669694643553269095407422143607520526911277774683421483084889287710896179095990011199926007563724222045705620657104255834535076428507915871810943269805254776197934029351461812646891964304863248658599572955984127195696904934929543368802902626148963530905025005704777537755353735557781004851737189006244601327234817147377929708588228545261862865083132617101419450460827571077299054650867029187971744555287814835939981090312555750194112393832530896700146478499214894883362729860680834432706309007747412950853322704278449854095400079553216505096599431798209795534291695184997544761910132429193655837885407216200871393811645875284756530770803376608843343423336271885810944567807159397116931667503158299174572781619998592200459288162300615928403474142043072851347700903032245868953388308995487207078113878987223173349959614149216481209882594087373472747680107671596301428456141092619289088871391511022625688041609181587642002710280000516622203135336870374616862230132912498565559480998063994531439210264452737646378030248812449183986978441130094514992331440140551663774470108580564852437287828126449199676825977977769857376888358821656618391245917321154336686054483982479991477884498185676889314258501274671006991709910882917285580580179405515323490720412226215540647982804015423122284664209354530606123339773714634144683578225635500265320048833372937779076725379611628580540551330913387415977274713867781773381919274598365324775526111926210833324763225943345317098959075179082026675877743625300447472851627554235871904637997878410491704052977952094372506815471522141654601563368233436269955872170592341530420986039940334689280798055056976615226356141243222852828704337859785325406977395877160679779162500071529686545336582847526698064234909519015096142867400831744944524640445168065046406807994372731602299657983722630229003131446536175572371825002380997413162189158975374740952274102948488535839416614833920861869753906891167056205422763824538473111712852448772064261972669566970924631507201285362061207908922666281453410222898406938691984849366962055681634602736742494754436151832714486683601357486962461254824815573309616428038842795843601982578687380344790675521833993149348897805049794814343225913539436218657344270693511450315242318418309806658157117477939436515226210675567634595462716959380950079668813489995561753515131270038787057540708657350238968589763904878443604681078468989296814881499344882782423359437383666898465034448722859831532119644613010197508418351128953103062140808587271576005268534090034704761291818731291955523667015642728412749219529743123359508817400134330032995757456619764678620480507945476202876651927179687384239936421238400191776856705935425702430536949914728648643029819371888491116610701998314607824276725937768317407233318143419869177633790167565065640296949185350483141534353390193724604630186826322864575543386181289801326534595608248722216098923096813158736843385837563185232386657165091518718106012318259520580163178717691641588374708246305280964229815508413843568319578836622828181292918257448341067716424488789689596718751373892723579780206682234288340868661700509720206886907344669383986857039873652156553761811013722364664732186580394452559843300945480518084462072089839061756886516056939615133660517572786617751827986001210045713970394178620000082610841231242136454674098634661166762476226381340863119885094399643040773824322284443406691712292535145793929369720179833080133916814411263692984008221931045440638955063300752584220420507908039063542422059712861345113123750813759495185189710331027566538745447447870777680055664173383548391868623232257290260516054578492156555277980041755211678049495692405378578338918319570103566339691729667855847213943467313858214565326876613027310019123982494233368034338144415548235780247347218806634366171783516313154124379586909701825781284717894259498815311211479739953529232262323027674279236031469690412199643125134511169562756777661384055189200456485663659336901786506825491128420171699891955944194891070361016701874631289522148830384542503253232771088521373210215108281058114393404383048126816207212732180376855590125123981609691794236253761557555614557839148176533748169850340630544553055421584682239598219702648305066699356846891052912731615933358641262654770147289831785750807494743043963600845796909316749919188296691220153202849260535540677825501043124673635001689004378596152406813688141185674653238791820304369440517407749990321189337040885873639004369470816123369848313117242988520473206247225132107093683134733043017531298412217043700960156179017015989500643021114128534893664911625414477897401934005727990790994123579560438321721814927602867380203179928586192459648576634134261026224788151201576922538517677524977749536420031322965645231719642365266045625456673366813092726954181519180778423674720199616760489591535016297115511143358344795428878258258431665416311991940488274149640741978447028340603766227823960011542523895120017530451132063859437726950404177288810897238911388204755237283909442401214821451073097069838418645094450370404642184697057756107681583677628127348048994117843863532001588773938520026664160545707923244224856510433649367266484595638229637132849678129413683590272908716853686338172158044711151609740534428971740529328512726193039459403577216323889140958760614254277662621403084614146757959260013772515762523023731998600414552178626248143647054189261168596143033166334414879978735318587498535868641500512490010858425315525547796536921617104862029123877648691072578980291646494020841459095811932101558947088942568273800402218914624235737829177886985652963749140668685036945345089819306615766561521589769055845833710631297111384878161576049881504940178692923683691599546393709837765763575127626200455298283826975701061806468730346989781093158897270595936049126016196643530916794395076205185506473780307904468772094261989756649459707918473820503598224929026567048095021353188231481789459293723029077652547028385649504951872174013136490351863643042511767132708317596001394444407567498855911117321904324299498954838319826542325703661106688968687997899690787184977342499516271655971553163829531463700660783084294725767397948595847485382454045447312387933255957513782878533592643555728735936234144315670447915209109039013612197010267012050626889640658034765140126218143679515408591249847419482765962248116325552556751308730708064894249618422024727260871594820895383528904172428337375482290787206304393039567088224251874633354660935269315828336905533587097146058775255234187474420701185785056931988394646106045907153670889529376514440766424835519664428557488404733524531440741659264994262627936829632158567164666620078520863225157014610435858493826464636709842880211591084103826800158129768562912382836479185656424497220775982328140767223545872280479978229708152949029720861425293236522229728323525270432784672829206958568969424447241689790577320021467313822178603903824127598890017301680982916984313433949821969538017130756069249820741286042062126961021793978265672394125500136852552470739858716527314858207879169654815295286493753977960702117163052955922360041102702012707351130478815721814834625989201690078957306208257796010591664137004534748139320227913639780960858275849735720015862711134051827513703250051851693191039090553002392213697599120420459832837999323311864380763294861487290534069300849458428139255421105340970872700680414072470180205301408105763292887667560246864710693837620958088499712243876067768477898314314692682311523867228133876202589896628049707432160376400533191047274949561918595546615918548864376993196830549318475439187328605247975036762851871162183359145816234893126541364179666064676361375647757133714905352427891054663555167771787685042287144482668821319848072840556437267650669491316493125420618488452713609332955358869375740376614819316540437103401887624524587084232568545725359211490929966654477277006101254434945144580410785638654685338251714474028458778584871599293482738457192927427168511271928286562278824419272872992825596101059493660022937034099760194278392744191242186525227100453865128619825109129558063202276607176350975818033485995370308518300411234590968775413800191100328517291780236797849880692162486229855866553362194587972997837572635217511798169721156613357996792686619684255617708040702368989753382191037630623827465226373174413515688534581902449441349426847598263899705441634121876740115966038034591187970670579013020319696075313877353582504921403409735563694608409443537315278446960191494497017691048151876843587405485013768884206010107246362567718911338500315268465388174862393873423824703947001599950632593449042343545751815668105086982900013496228221671035238586551244628462645907757178701190982702036110910682450098540624759881911794478469592964751698243111813532834427622431506238065487186277138010835140991651153649737140504039519249983717477260155489927974613998711736870646480649501322978797843309316773341580694787668397189224898362103799774842995988438438563575806908112719866331740584396551942496220828947684455152083844779955254796765108555685676180374489543046178863577013561884592521396695989674653209507803852375400835747205624305256875416657933863786805140465655673744277325128011294379398049583436433944100447802054886751013534375633172766371784132095314447393840424247272149634073593538488297461456144630048511491640550545927813424184610698243686692904234514405662339857823757067295727596125351696803368340985388382256717965228357988928239590808294362519089583574974971454328395401480840084749726669810656903957586904599280824792435286921284251765343427337128912790575813135005272436351587008909189361885771338089598371344627256934588931099146303814408348817007220400372802260239177806353215415025176764482614687787472902674204928675856233094284318006452625222517172410360624000884300280787759931651555038549119979634447314793829339002167123762962727725277362284602148562762847999428393344662835926202201698879475186125806167487639897269074555002927947631605920181360309293801974800682592443987803279907022914166848723655215492222316186124554188017547161255244996397328546196974959403661668171081383809871464795175629695100892061604527671887180383052211121945835885313698971474008456254748993088349669554642301137520599653723648643199124493825881915242849155835050120725696847477195279758014917922703024857965149565697246997440454986255750334399582216164666410454882806614413050612096908381013067389495028430785105316938531887368121278173470993057935016888166897222195238714830968602205155300987406139754457096723447796846820800426507688205086031653067600404881219368371390766283226791529818940483273250017202303920866056980372425374516985672608073022424975388900665382159852517498175213359132248309413293356382646130551385562707075930382817809327679253292843382664384974245574352041819654801809683505359021577104575883210899899050531922273368552772727126082721861925814655341274131455298523796487860771583522193763151811359411211314712533834377019354785307516067818348544102336290880909401582487289086066580553088849898695753558131249417070957202453173155760627619336332459152101987378123313032641789363558899618160778178761578857174363225247200160226749063508855278527637477423667571338265702916134993423917057838621966930637072307819367365690830501411188497560426318016633645048419099743929866528260986240825460650285788266257203905386931876753617393385499675792499932763623059832946953952180870026447343643795304434313817993481088631713480086073273597329418944796288209928907608553059693379485616381528124012089145499247964240308487749561604830131356216358468309097141969136286306886279882113892649463009563965696604312484487689433269618108007415053423145607346506181076837473286233506820450541835153839463829798624431504814749059521297582834086509756529212501577137706591895823521462722035594354875491611018246233970514276778747813656751407175043610668404353215417911874604780767105365449493513449901870244650073985449164670693553937911448546802291589838852806875413671266898794905571097148937806812311580076643772528625040039582637652285668236611789039223624166554224140370185440154243829029102781371316988139002166920789180592143823721531578433286036042425168606995480644162932474460506372689275859331641313669489713298971329910018774334572707029994107536529794016245795082026803565115195989813200729436198972726942731809581705407234044012425728177398110691450356757413595906834426916329516421414929614991690107271530668603451824974070573417668961242618202650258304542512571588237321249332496175186967985364989084173923217700572735941715340858625497910216544901795301928741618516718880191413424201192449887095724461257768490415376160116406877264123834916265210398032883025823733148948066808673471727739004781591884653848016868885061542001776147470225752524291611413851854304488187548586602548319595663152885752993110096443684641618292600449464494155066458939415738357804739705668825884621664123603949066579239823526750634501574275566642119156420962403812609043557228700171835870915020154738482767750240346486300287302702933568452718648024929804203546123999123628830434481078162889662010481977648914338574835599096203651680482328464375352051023504630159203315713122833442557321318770594739143936634057063561541909340152320660489236862247038167396975475171782880006278859123441493944712825607203395849517974827459217738191399618719898252452849144350694216608783826286924266016590571669105154420891603597671666055546652986891659054184937409977309158455746867432565626438098768126737473160435583241248999041091327530423129461886359359578976946504343275734855913560269860034047200600648733814911115929215496631053861368498684697518612936036535382137975262427595682473819020145868470957915495363226865883309464348378379218476861998646949795070556473264943031668347265317308784644324894298464653212809330400639117096100896934925441553556676553111973165835422594601305011696343972585123673647344537189149230533772516298982069091904317541323510777369214483499346804822532265938818781244415703272252242289048112585043920318558790605860359654860097621928268785515978888763341861546576245893920789919210631262777918816802340618994231801293422877508218992767394429813447295987392228880320870721807402485344127580005212742893267224216619415811301829195991815105540086546373507877738359630799192873545179247575291605548642657697362290854634600771874822755840707015141631835286603739783317024230850121718166528752885154894234061337097318435915833577180808383608689115727104751959616874365757303757735535521809534667721055918244087272171108987247604651829146250782508577381715776925291948687882760203067550266748998440212466918589858326414972167440866786400439182985867190856631423689593701386902017783673446459385624476940186883986671756950934778557959312042583579593869671711681760409314977021943275330519569856257082909979631002076500276905408420511266525725216573775807023283954276989151535458820313593387918424692571600260582969992542180493386384888527960066107364613924298182200161113561935736057454920677576398250606867973623541147084973650317772830414499404462672204414487923954553519651413400489553604174605450334804175835364068070281006913841792333408791479238176877462375762334910471489459966924745174946200995990761771717535746240759483134570568598637834543178242703701222629907614624729918578044919617365385430634496562379248522510934190227846766471673224946866772716711259315143081784271140541613249986432229179366792022630991716594574075179812277189795718539988336065589456270679292444589692205365420615455441576961666985136601493462231982504828040427239797002887906724741481155497209444975235954762089350302025168006811149703610725327539500066152865110956361822918571959744380501880224178131480726720875226544817501297262715644210225841350247696242437345288078250558487845757805069515660030437283639280949298601392713404763920670296231569667088045994506660312789325066671991879357561256663337539662431520253488047224140125337587639263749714147462515648327634836501320208546616256003082855600989903632483308691636619999928196107626159015506079115586397129160596463673418479289733208147787136552935823434464724906356495739584437859278989326888070814980783201274820106923317517043777497379538453781366048630537997227025703967865283592261698278886920145134140018074758843550890617410506694514486219978380398292419451771252298116789753078015110383677510917551799262584219307700219875639490816000876445205390096925516422746287189949275770627830323829620138319730908582799016740116525106154864693159629302286322351789516110228113849919745077858529280953247509064922963741083250916262716657962824895955829325601820564254749878245796296729642843914932593287533652087110241545235216856247087157734134989021823986723058259266907706539439541595802104215337519481596492457624855491571386098418024898829922776446861283299387954561642956010117086984866725459698964253891705254473190697715467460852272247651733736123977457554696923623331610462118598991563925364487038587070070107053987558542761474764885519221597274869719320505375273520937923852097606375655172413176244810277163569142143335906723222385420701774372311760755455315268136710711074255128495780443893427726339476729327359946621407595781149349803518948841894973526567795102390803178647610279131131938714685960499776841399950084005001769751074570309583568766809972133337203173718486283064099702699887059989904367274340959216473693181552697524144909167008682491266047891682487496539432498747090791821123807619230457760535638019668602114046053970558669086319061398331359791453033826413797126922439018642583456165414298415363362835975602824449251196771625143997233051109407006633172396243427310393732294560456565480961695682926216783335246590660836340950958586210951732983166782618892692568948552521122175145670780580638592608457751570283177509873912694715279370228651118757521045130971597238929848920945928559205231427507588306414979025752466995293514518395105162014944692338415713682903621634055106848395926616847998426502714701022847214381272273385596894692351716416752299872991098061198081574414178901464399981694137995047248743492073604506661011301931842364782165755870441767300929478346924178497459781996470516652776780246016905985569852990535029833138836212456509165210157874331983123936998451205530640647393201721664734463162601669712080132270344475363641853049379540377171893559957377365264515376611963838668549779993176837611888943447819572824922617579213763296347428586230670016447569315533743826045081306485026791271894385771591369383595799112919597035405751724871771787728005647661752218422985236967584451945325148304599411079976812732404124039828612779708881804091832480296822257077108031299806002691750732463345918767997516471750779858585279798901102986255412535223356138331801573851643847184176336080305610487323695604827297348034805852480042399761609765448093906096978062330097924255141775201816083173351658670289610846283480418351775134364740144025699042230412040215117389613854583294932257875758365093339353518654020474299780473238186316710067983512707752459334428892185983507872608680819966136290367246682043470687493499675430478365801443117008382415308954023738711509519151677685321542910638332474385465064842681723269578410650111131138654349572543189486448766900992155732392126833763968027469148647760264056168572181181496320688413870582213646572165813857516911203208964253892318436575931223078777925103812573681871563382880231203838356190926998715363742041858795693929179655729999257150247659146493347926138747007031559754030928270813577220500211831970403167757837850467284080725896833725444568822858338828576533230728234078438061708892217191895455328507726016092057116177874381092905410966578777876446781174296029258814471699021062140716186346875720373954831194530753551723813086751902951285940483601918427896317136903246593334454764166849643885173859914654265299577180569790100922077725877304260050846286418688684705552716222438767535434532603012851768127220877770414564643962451551590443034569773471726337774706766587766972480775197836797633277090487664160672654175788762769892630520537339466675231502190388584169206596762993547502324653397689195046301559105745939644187467012330973326786234000579014354770534748174426284601096186528727877598481223524486696301021040937547418227302742582566238702566030272035840435071832783225017750572578353461902489511104477764886944227156004819556515571576075439924739685928989928445186799359625519354613643600698403381362682764600358207895583027650007186445421923583056772123558899987592727021343750324833752699655928630558744506890393284885914282254995684453272270218733788325405143267131453150592173629691440984470619989112117304159027311285068250953005121237640925056972983964763036010040506694585255093762509275352904557938356009744158908715912637612498208120224691975413546049095544051789480652503906897940779947704025270522467851275132346286141289135892312499427464587743849665012478763411208706965900731549942200733416260658171080690610364653605976604824022482108557977714510783783476110741244374200168164841927201337581078051422714813669340522387995725834042502057861405085212011696942583173301320799450517106414525276494905121238775096910310338586934321355787136956099272555754904085154650993704671063503480837846910904108737624139012209393746794211693249830182091498368490582802345498686089541549176834265092323034555457505591308218603660880737361317257447977797079344798111493197538505676243339053140021209224488405732833006405167889719036532478177332516022131620633665184980162803785830766503332749240360195851231983108741152486473528462111939088986503029312133952402832454068212682661638931247763059743429542045959962710295778367726729791005516202649495019237690963378305899188899610710834298397330293965624532290215583337992975165513184135677695185039640650317243997872550260010015363962684058232674847411209451548199930152243555019074956086151263415397099618955778189952072418415186514847942368118561377119134251966391393177622555962062201961199726253638346110222983216075842400430145697218809736509355322645571720849361901604842164405667892748418048387685141281180238731967177301753209809797804728140209502936188190583356800356424076914435325460856193226152291821555221809303020987064623702647165883950139918696829953892137433775061296044717808490826953224894340285568361578153540266159045552645574717778502610557912503886196965254586708980516616221748881005620163822060100238324703966647361075379369431002281303100066142358083961958483667212221534001401130204409224605064238960919873680706951554838643231632787368782221374751107269202783848665923000284111531152275498699870485056123233470435965236926790448825077885611625346548231080732892456672853422543733840988165916401420405906995675559606859303964779018128252182761927752321541401044148998076243549538683737186679949544334523399846378962499632799643667089110345950803333283698569928412476471972470434498876062472502842551793395771026129445604104416364087660807301555089342770401217032229326310464481340950200661228834264076204969238471091177596242552244640112035049900110995930379413643161100494475980500677984153973357160058424548803343212922826645954711652075955810890383504981538540644993627874418228412455972722098667798183005480405080553807439885675270723220579392886900714729429625129157925266774169900827324249316582131205441004665453138028051831077878428846724801498692600353333622499681389016815056091310588980841393735045487003046947469743678500885887710038465247212552733436139806363605029558357757170632269007112793308419963832823408148607215482574163342962397055682662628768955217209503804846684832621421810950456002686983567247413863356977043015101799752901430304326046937652535408276185801282391738044030125629850681031863565090754989871736116114146573283679496636361120850603795836098307862769989028117188180126038008890664734957465219278392338986961305657746185249407048833914184292715676316380016545631463468339584016940999380505946258481806289949574831804082468988690885912969266533527528914735141230155023861261398001862624905666717227531826853615096698797910991598937032855815100472372423848425331268601111476126125010986908569764303127738113073734063487679190737039714938883263234192885372789390639075532097785692999928056258246290460983281324537137525025097869858835367379857718575994340468487306238396521383798473435994434360837932948147177476133593422310976635603931988224950633736557930660077797459493296274559293434960599380516196920560731712318052981676225825637204235962513866476312883349017335837034773599451411891296263034878722803671173079759962726759965883301977284105583666049192660921871245872862322362006083603212070491076269617194528305359163491164782718353560779164724517640839025402806276434149715331882577694427346555039437810181980722761865034462567878331156617529866404981180475903053508323238925463444694357504215620338114731628088445992814445033390016241239207169803413109811259442748226689787601294961150686693221806495083182886431752206594653544137510291256850460243842003944276220839587445229012166524936367942911911413036999835972383646661657388031045068651279798968049871512611086631162860169922886051928503113997780184454919630973766808034179079510016212941262895478457471542946168631288972829981146541102062934372496843518131628576257918944647520350552571787574715125763300339586254022570541662985661906427986221188428466682868847162035623855805976073222087810005065088974547877207656861798753920918887418067553475368124523758513034966404104537615876009348830196468883212810693292217416243148283721230352156715972269256352029901926623106089281261562030983819265089591370709930215329399040059418732562956821973131688292645454636822616610089462067289788340921977882586269359733854886828763431768233373518212359568257519396655230857766226286441232947168329335503688212615502914275773715192234840905092432238500939923685061394737834597403599745389803286421547287935097696213381856055565833285435616711919647551289452628047044763340163175344661856143892462091429866303505416475010688895686933087608299682595380721921303587288542159063936980039079635459044364317116499247254463814590448509671992806072652715826983436224421034548521361387047911539821325089136538360702886002439562442504059289333652101454833689452388848440342851571621925541800373464144351396355987637353413551473488066523217343369106301245416972331442207740845431243941767562437555715574433330318746206515874286321907579654320607601110459356303448294117736599290188088626171853481870996540437424276378486010925059547360112003163274122989600665242316717110444607567519954000826328547731645197820235814633226971582083632274148260629421420045067664093291772874590456370392413287733075260722923081956909060218335469209571578061728481428089061401137505149363925585529335595333855496831616785837575639499598981412817677736704585869357975651788381357070814325959365671626319924608908616761973797757426608669929938268822108699588607457427647070565743144453631373930991738713574121601620521422757702336502710595203017083475160213258682259773795898639494048373996769483644757680858488478704320263055665713514192418549657463624907418998031472064799156171730092826604846125439660037586618774632976760300787720484744584077355528505582832492186596042582701069467129701900072638661840707800007950698108332429286851559049516379934987368334391644374497468208565545574097789243623347083789547275817872933550129307551651452043057122642246283672419547409839165900254798390647735862078799329740882924866769851611759370131331071736120237952853573632985173671171650843343480306047871635280401144458753104274551010248628767163701494340282916553383514570037796941406466970188809910408109934605636567072960395014768202573592744224094913000235796560116743385846874511207255652391550161078065546514437543033860904108145821775990700450140592168674399294330780954128072530490704897928703110192559915100026800730165597439758746183919508121861376074725707391003244983794675014148858311900000519836833108172527564830897325835128350091231209803708700326796566445489127315866595038920617457565715714416036548999896227038436456122155998182195738617853104945668504745411141973176471534281411452950277463033620585198317888369996056194068829230769367674949077369266381941696595378810664667029340899332142220106947820054541705892891816242604148888556940138199607711806288435653211018635706971610111005487530033183354630517848577729490674994782120345011830673744057967212644924220576712018553445458158279807603886113200161985633773179417171958618688082970512614247062326028093930016126145186578248504850521167777876656583450567351083728542505511202119037596201988967273915854936456078944470394447663427567906980954919241008417431265385631889157934264116325874331075997117875794009313992905917317151161344972843463315415924933287201053575310132359449801944595103154264579865197862159531322673936419695478966731802139381169624591266821796584633876752632517417210805558695689932315658663964497762185295265912690655699828123539768123826311824432078782566347521753992832065646929450132770355853314752072832822719633291571671128315527577762587021101606892751505093741082784302249836213423482996495777815635803285324716765493473039515104675589008113717205945697993212348397829262002873344057946776778763394807764649135598970802691886021106866786667016033590203360469598464059264630458976925087548900823483324455183340265548228381165535240179551853789315496100567934900316553522575116559673257405468277663438094454117262455776070311478075944920938939293826554381627172938963139325054115871834461748273678021120491303654125157286977998566978232279340592954580308412880453970499816414359718910802841450751956519580858901434570273398463295461896821409734379636253702273809003287054365016128188737916520203678147726397152193005603871150641352595111391834284861389506778100998948222093322439756375502143057202153085706551116772462388192708098685423384025295494733888303579354726056610527148826211263304973717783581953374892312639320304564564041501295434218025820708176148847755697325978378441698730289685915125968218340305561999031387713167105099824697665098769721805176568787577662510461502275361987367486889333891132549365090644170772057997843778986691415094732589089987381340427080620612827857406804972195957865679035912799533771523381748934275005426575865034794968564350511917128395650072361065022347244825762168969832617260112746841358879596766019598238992090717476091844966047195168265350282974827266421931187893782490040766362660409541173101987178247208859494613105865012717532623585689405739066595337885251515306663889152624479050654006370687596268855772076649208601418943655464498068084534056737025009422940466211315778568466108419105604486730911626892578409047009924870936589440381659711387228957241792509143317730037113878501521109629929127606559156527672663490601330103032964789849964753035285287551263402500302351511189052421004318633130332440808385997254968527103309124771220180322093152360420025955051255720662095252408526622943145548202739136335311962262806868486754062670160607371323689614404537874551117458092756947998451025553971190567465873505117592780631942085090924847463703358623014176642832849879951936938442190464137407451172174390996026673277260451540007860572919295488605119197642135768381816074277359976000670600427347894192665221940707780168225393352400379627533364488014909234231164350578348191779525333919846477124623541358249329654265619366493918925354437461522938237133944540167905705588396776447503628010168871935796994539010271154702587512670699224633502280058978672860056674140803109081905818729385065987896663926812910950611767495336044277966298658949082581231685306622889099957009892717323435684846653079565643980641818131463937209591708944457089335446982681192015588995825153990169369246419792797955126674740685950478534811151580287264210209127487774219630125989138042799223724569525069525260640540153295388174143581249303769712747912471406656671007709690501229522793000867425593554122354404188175493596705461859836046048348319318510321267434833127240661454656164564710069635708156260247157027897619309350809123510154144137041861605441152678508017515287656350559099563784634886950928873192966456581520258486608868769819654054528482950657397396027592593573786771055710913891996801646249884732192491636310509121525399133208318233898337492553690306549237629132426061581127161074448952436724661619273614115138363440249497371133553193140711752981229382310774228840303688226191012527435768878697576677917150761341807679406414231317854317625683868695016617519700492889153641735230386260005011917323714452104231372977939581059743207715495574691159172728097789020283745112326623344333536296506863279194230703577488112577442694086177046653263179394218439659986060485563165708721030912483956145719542668982075718373141856019496521081938990198791754844369774681555908396709168720674757195179954594692828242676651101474955964582027464693061410284940518548707629931270130702121414640108882718286277452688571457426349683532723623825531755389826259537618361296255181320710637464736726957328514753812280251615496260862891399002170058520514382224861381149284911803850660054849044127188403724446818149016536855455603550200756165380728261612227659705363751450593399119241231724753636013808546718154018121083895947231818445069786612758267757111793063742958759856658485232724325128071504202236340633971057904436119638914808099075557601221450024327658442253205153685858190760755942143753961386282694763222614902470240390007530783765518036434239789298004994081300515232444197632666900004450656828039326432896538464121971556723448700395268026011274216442937028845187058273455928908458582067518012811822505896900610287380270981594527349847639005888097796862899416724360939474495593487449230909693545916746085328569010123041324454771163990704085866635144948295359014500941984750763945626119221849812952854030760769006530228600609423262621301863749744634355836065330926705137948988756385096539576466585135332582999186868817176353740724564187127333013112102141830204364175477845862662000280950949146414370615959517329823326303397650017062516773927188356022430419038447059845371583168058447712184272035184686466787596532795110545205115884570855809562995167707064831385735443926708626297806823779793600418892944215524954838664498395368424919905690938558706390881266463827383783863228990753944874555316348567814412256838923681304296233577548991672240738970215596758515794007653334446198702561170221889270687977783065158527401601823607064622237319978022638756430817429585513835160975067745527853626053578326685674601227097337535704976490893327175796123019734874633002276688708766201352629513340269910420512301717572327348343012696231390318229974035039288259070659081703132644368174215124346030370820791954446666889183087563992243488805492689120808899750199209460624999430890764039645444710526501982498956736823174721573794164472912644306125669814943547290442307408607911073482744627590676291475257745080717125737263108229694302868691912095114652153212874415021240363842636807560312114054038524806110534654141384702126123823527836826119675164123565957612287628970596187580175904054627663369760829849466200931839642683390920122540252397061367423095874144312265358915617222934863810922530859824217071537471247537733072936344293693071775811613589099281147015191706764449261893651763324345710041479723656667950086591686247948973380872804158140296414803065362519251974605900814366863517092008033925595622225812767761533952950465863131289804515369023041306530796970316517612962088499516897792386210401577028822445997030934579029576445396508786584798401715048393435266055220177450828056658293410999968817344351085786253500848951536080748615246025312996554679523669673325288571412182134360528396518011075310470743351477902908785284535568836798676730750456983798164495574103496687539795142475443873144582727580811555272632955744962085642164544489598801259488270422134272907012047942255803935576228451466848869867646839858084405727218555550422083768637331776489298285672621095890786238071236957529995641701436872692347558246332006803668888712984194339096560138466840923836470750445453848748608031238934909970982590427748218257660406773833650149384951038579089945850205310717831269580215542694503128038942703415146195720088780612673177113909847882309496575179101947525768253022175863722004920626495781244043077510808568255869213146422461573770694709544153262609460264235078321943605346370510900996317647831329818579346633297222805915001099725173541076045535764361803343162474408146246800960457503963932459005119354664654456444989173459541131570998290638773046460648187405304933827136392706426130465732471185365553522194309779292353207405499895616100789097652419587373006043082788012116871011206702070181154435324297871310667132876644049768566331774664942931148634860071835452367952316215952810006183695611555147040484784896127453091089108213855533005852600297637907251808576546056675960360588330111283275277830070963998633081751078527431976965266080289701353360710716765995129824912635303036788605528003965531050723887525521953212644200406665741642091770588845657291482213967999728473837633362364198008918917081157871897112687601385639615324832196635905141489884522743222155175762805721724624999280278251877275941925523552001145992722208459771611422641461152781261586512880494602997164238771436089652772701840530076292080336901822812979741097673799926235865277879904509497856562615723305711767430155880714303129788294517181264794495195425911790049237397080061097037763278012735186804107248874002119189404346556511816069335160585603440966739307811496740526193398042902908819364367169696750948624014486564370033154754093044667462848959557072296418030732457725641314107613515802018207367008603196569510725380564597894627421615172447877861635585572165175684445065446157974717723629290534716903352302298870658559244639682163547078321199870054716462582261600999836839041921059629827402186317026411769343897142388244871972158871218640254056877208978594165609743427072934242346969263534148533098670567096552181997688081899385691823638583568822361456045642758562014748109530706578898329257065034632973428962394782776533044053579388551129962650447640772774229924835517354073453640278570112717320908344631862588982645153243418761392349002305750206601436256338902583500911098329450478836156203518853049632104230552016753994216989867539749015641841809032875668893174422363312749522884314132975374317350051969846820811933889263275681573983031282332455986039804621262556999938675586728125070075471511788447808356992317674374642033029068557452587276639131540218019080422893096485755139309562264076334793000430813071852836829800810251511923411648118066611265376864151775990121298001514903224471628851971108478127096673433348693152365962682003895527489235958918229091760110335857809298424635809980989986339168096137707981712501473606400955047555169319155488232957060350014457181124747745933266066222111288403945670218059957588035374321361519816448807414057495773985175260334281766399264738496169044210635449544528750737087964381530394763848212636864455014201280016096150077148438599808780727473809375567912759187681373868401064098180686825040246165255807286577712210072218447119122347173754744100989641550217570039514077267758545826945590816957221297186001904514792448427591188480099924196773796532418040656134584166874360142403973315243658115793908544620205356225094631870001989491538663953554085645660086791070661127451991708126855690794376431969569552673920819960204941083107494405909435726944276878263238727877069980697773529396189176835851935178952555647721934490858571717306091469886248144389122985957497835905634837364224982490441138500489675180026618321172344885804783294240165788945920251831010815254807504849702819420825836354931498107489472803208270089926246000254342627531719418549947612310408695577629578323412509028895859758053109179228017490610740154847994646731373311358903226445246338865860531523325344728367876272025029905795215095813261825388376590080895425212437778927995162376080238548604312986199151098611647629983699854765421511830872850454115888309412532374525330906503107520152254680595842382312289238803387593236349149528641031223621274321387223964815054752498515018545340754913339131404288334791580032704202231381692029822358849560559409245970394850143563712454221172538155097282459786529163266761988294655340003894074433458322534175915062383715661411934707332649233598327686967516477266496430729475202947948959799168982387062588048304807912402472583803106484809791139322755400620274408040044768650605689819045530052129490505257481532834299520411642782146386585863175244970784938982972212238224905827742344680056936775121747278539801109290912028894029794359879707107249777062090984510765909479307090910425874179410071771231979514107852770755171093667543324922680200619178982773208058618556652543841948201650353104810300775361338190208166892248228111430141177153877854907720035342540274635390741817574388865292965040783039904614698491535261629070112675533934604416564813135117625209409501631918352311916890411013213342951481829560877025295757923574476090744920718696360382841108635365294111061836894997639153642214145987033651075234667740350506673946246225231656418276069857832211389801787720462794418355158675707231580462199664610626272453572355122539134224966315390439962325253440284688912379590751151364954144827097016275867324089033873079762203899069959394337669314337231329601519789139448003168866695285104648169588196629656385980133652037604261655295017755679136231025774603724107646306186120868934779901873606047208632888585072607440724669289032283057589793733771130009897922906489568946061622302069472953273911842473143807874407745908865129545234325134279435098589928481549398770332013697276616396067309251441211703817426872640024585009652050198610078385007658762012666317832582062233758643371247019197814982154860625971447064774654339629968494428534409022476985017337998141257413064261035602626589978003612385448062018490435439868360988596328320793242376270329353983306241616044297236284504189826587898352485984774208568349051816372827544910017061687338071319816676866940491343100430413225662975766753683565263210202630952454728325802927393615130269495326541076465342223837464660478395434437273303851973075404068164889097971444287347723367253781814293489693528681961303437181680447063387771554565161989204921536526081118551026358870431684198538011430955480218131064576459506862705263944112393793881081502065668635978058213369624488506246162568773052655841338388988834034946637556974015421897673925100780160180386083190255667376552664350501933640599685250081776445443107881697280925497130132660425785632937123875161774936277604092495018466253015215354479404052947853556613484199626354524658206808269330383387788363224697279826738933199899823951676315075647169594040369171101073789403049952598507820684590433540730217915997973698915216067135880603193834129156857722866171723074611630240720065901785675181243855602586197702142240644134882094347189668273751105749387537547432231674343834859146811511935594532017432797793500435279290350345946871940623977188778079828436844912402608819067574880412858957652373493375088977317350127210491573822362016987331372310627967193097204380503145878233817337894839071282178427679475788577358692989650479685271088492627811084960930719662950155594596080939413858968720889255938475255343862341133607657351231830540405509809896527048783225795738081945054327293913557800949200805144788035378081765855228045403045171568331316213802027483250536947944788790514147938313068274329781512533686473156275337727960598293211720463161486692466343976082960510042629513373117430557982227687709621543535087268530451505077265217073269773449039092486231512808175455918911387860488243402516111590722511942311274870815736013171234530449074219019552221533122433544060438162778110617377792997797447380552829629895248590081925930475537620038437060213419188031272774187468766893574918975912788695989445457041759042231678531636229152304490337828856109737392994558194859241089114562839354737588366620778528835348291042880735310066415654827657191837547630024229328293903386994106500608447731994588823854495416558812590921426883505087274115179513489420542054192721282989349309938624545820587995429280620747654597203343766036486727276037546931590206527397276761902534359482576695757210568540811963362235790141762288902573069687099264897227614424481863153764782248894382608217356938344922183521265508358853713721292502212195469458958283417037247872823059637554209312615632903051340101185110607687525843731195609955247112901643057800378763230099562909473612944569164686339062602911488403288966859737110770894639485599068956898248582152317158449941392755785860994927749798409424956886790912374991931848369622356494490266098762672425330471890424323311198140684179466617905550406377651956735587803704450157837769974804241599235035734424733427318458109840514013858734174581142599788438197230042139831426219019556384463997545043237723659745758362436761809995559750836772596169842124306342451433167820517297836651189289342105118103206369361926532519477679662478396129601690960140145381446744284947264395256223991597539447662489852120411670644047948218297085961317902639332201394626757033860185435598858550239825880720312105565176232320461296580810644475669680668927536595900372582202475266870507623089753729694879147976649809464474594962162639392640888171813736075014735575667538716086505593656010505192813894867014454715736153428510883459695510604621136075967421793469704346322957812071322541043393262349149230196336842107905018903746685208508089626784956411210686669163446343584098753710274365421559887225148632171261151403524532526300060487641690510493106067245800080034952840571569484861951174767656251073460765176187823612654036247118960979357800567639437646680343315498724189633911398036564047834726945865946141762754504716030736097730093585383584949020525149527116711555266002816632472638610722506671553213244881083073917072683861986972395300358493288368726754315498026014892036429720960038703188639289163078404310593201310938364280968669182015318612016412843643412118854678445589975860580702265570293963523016134577083274928896328959071855721373131915621946540023978924137119697903470717237773281644718258373914976205481799999384715352502417754336164056610234752071177111690040553227916660118982499654981293833960400655460213656931502321043250767350071762914281063579392774406364362718584857128460952043398431468925067090822994367045876696638303231681577361206648521795639181886961455788902063003788749350508250540335055494275622110955526711688308153830642931607486761293828207344694769806843792660759684515459279004282935684415279273043842577064352501130022546068519254905077822887310544761173993547623910542262142689652526728266271977571540519722970224214631030202651658353770175871078740436453087312942213180473622596060939918480486193731865925409391049526777752278421855532513447523596040283997166045458621173784144744335454220748536877321670891992394954885435246196584916575033286606279722189522440480800888910535622172492673698341401093864133067911270358758880201831855696808148907663956194661882249939554369136331425819425865427850783462731149486095670173426474072465006307486745621264711398203775297654927389667232198158764427840448367796416385433762157369766012916601245638380347854601071899474883781929937839415278684037319366956359367230218921001966307215723338968735306091900519946135291344327049357230304488991015983793659635653040179381769590600129746587128894839222557676258919542613530503664071531247193656814409163549486627270109094724401553084226135742194739392871377521239814977394833121998056924880933311800900441316587698764042462326399500268182057647348480785782277522028337591326955831965758499212761316810287553448488452200429726381969535412893565444372819163054366678317834794278547332838886890834033491212024262986092672281990708883574526936011038227300543321064627239964141519858471013210855223325923343417540050173510562175902909319288423395549918707790325544099778623064483965143433576236520642566089416842064900650673730979744065124916917398456521837095687930755387892681605888799280929190246959031962235090697525135733644431905444026251690400182275555722146310418029161661661694585130954301929819627373041686013621220748824658321690601032189548777188926381601735752356991219615804799003397807345978176529229472346837594295897012611414057934899953002894785512038945047856282795457697523271246977680963667542341348662009693080010969345377710902958681163295889716957700354609133203019635226191017619982977840763995210289840173925877309767714762199203198200664491011135796850046001748509358366728699927110414727931216174539751763033179542393276861721035022723771307192516278405329322903957764923750911176271290178594788780642205036231115963845961463223095012138490380689968089950364156418010225321703868077377434395952952168445992221217842197549060874222428786153903141163167081817885877887542845213147187897187271929280438217097377605964545813898795560355000052990579490802311826698938703809462888170894514266151607415216634012991321500821762455411206758296522207498799546060716755354128582342371792935323608397694627341972555900295251739184698482885918372132884836964506085469788598344633911482091762638335661117890791547563513321286288513905542683391905352262457714640645499517969013340013419112056309957673231994572283470735547319655853620794437001468747986696532859860855191058942467639123528068914222517171189493135381128327190795608235241379798257141298177051615465886485227392710197609314345603591383874056221463812726585096759048301875680672783748080569798762119885691141430374574329069659211199659470677050931926615607360604412927997180501088898481146699681063873163248182194114138829539498744410286809966647689495251833824297013149493297418304224543352783984160214324637526874749370446682545837710435849235016007816204138662678320760912444444258729402146718886799670199195538249216360877338430121776928919540010596757455001482838798471154386699992720960745396868724672080178969041240660234321052075819237559598251722574256138777638897288517359592184284510922827534791874009551624947934171238527603048886825603611605564633331721521052465873294211652225576077380503753875950695318895244303279750920335880237992038072659202326896373655513746593302057016584225207483226057065870180523290620695142002435784915435516350642107901119557036073424100511791134460943765575829151571952436938201004049775267708283224251998805757349074382281298509563221903949370082499295107680234876826660421811239397653391111194707046467371203042213577866538533872719628507244537959674735980591479132472100346256878500811282096912247792280488774728909682037823903709519371540801750585962766041416132243318986366223608458602892985524922995253422275792668972964368532563006619874099400668288625818272870653295577068587656369570963427153518860521685313586934927636398236648534615795474672431270367591437606977211042217515899746951061311968535736166518383065262640937038456736039938229383398930420497881972367470965422354766581925794806768011082154167869843861396935730550550681260462870743385145757546290998186266090831480218682078403524101066873367863094524159105030933455668641118148141400872170882362324252522229273199715864275677648741179762446543599109437604928933882376712460330657757321571641121606042562532611528910118708233653304133278546191804040398112043086761327309389910851871679857027945871916110757372869756227130016708746571379385354782846162869664449136895062435524063386416028814151126487528964563292923510963986501143112229664623456080895797925480192221519708661998041662889532329601267434794771317531575687904030343464278327440638147141069099643517874890316587761955021843035213905681889340720184389776540807456609360070756804830457709403099919372203113025792395713061455813337304864601284019938283351245300308178204592544394783443412110717361464102456036435970086719682535329627093015375794275885868106854986285476277604180160406997695766673541875445430230602530306211345153156494074901840081602647549061857354048806595437674452430338343849311832132284440159831518293605369269037860175439442124366172121141562538061065699431619547411566799851219769593262301495444149915281577331087121896740304782796296260711870231189682982500519075499666143811205419381680080770978162187073151121310433608423847977889527028025889385945257200092287271942903050875460225991950149991679868297069216089810326329218982070322421959505361172907117877114686297155786765662253125900054969376850437592266243421364941516011507974744381266698046278741046314512152200455495105970853969066413363537456758483038719720461601426815194698049610957778788717353564961937848571197685266487289207226271036304928420738732396294983113713286426852797669770741200678013925518619151099124027840845134860222941181927115323228892080606106189293803607394684210371118981318239438859665759156030570915364426169911836878912580802826007658199317721814214654041233942742900135079578030453607579227456463713209595955807086258127768573711009119498243330426545231255158996940804591093731255858775574429479319835554830832050555777859939936487638968872898755349042790715378218337439894315123234786123741113383291869245190569735554975801494953815763622348967903992065555772129562256890796081313150517948184899871316720129260066741111696184669354078814525527481122825423675823761106489150130459694952633283806142241747232572445119930715851152024121861512837967399856112549320723979396266922406216905473626214850688246900266180229521306123091455879772282727946821096418676774783051085655563650751689452490145382954567114321761141862002815114699959940790485948039969178778256650084955769772095047382386081427558260996896855751842545920529721254735582834420930024733355259146185293539148773435562972417852847708772122422029638801819910576500951615742101892428226399184747176120324540427898785117028406791631927575874496534168745263863588106769808590896566477566307055329728274464188648276750496691976543917304148823396991396098985030038755026160907285973654836893921865293156715061544826857915461817114871367395657586857909104754840519966936240484990800422322751782618491122176319219651921788195578750743143007486938983790183550204177453119232539853935405176695649553046971468426345226340307703766540594151090352895327498382419583819395283546494128692866511223898240672605745788495349934852347749052522408591677391609697573558950482185175815788525598954379391389849890946503425820107412637064419143437827251773893516939937373283791553670036379866630580097487518270723023089768919500266613551937378050573784757882638513546543776327331645193120360371239923108805374038041874153525712816990697410195963382104625517665152549051954090975791254384575542212841611826920552543766373699683337921609942861726682684327545802240718914739586965044780823155085370106903135396945632718225917210070109608871071996649830747201894620117998304935032650314184915314111402231924580815621608504720987764535269468829410031508519531710275939007790202974981928839372691037330380011373325077105176678554201719915193053344907813381923589132663737743455184009107277226985881208166596045625186179641386758156121051102660731944928024197340641283589336491586284276417347212239362697472607650453421458722122307644977494653759099278787162190563949778771827044233722529601151040214307310882321048640146135200787076131279976532512143054637321355017631931523376842046909741251862358257890503152812688966191896604034327206887260075839287041288353777172404058914685874228691710201064109521284695747518623973430478956124894534806680634208336907714758112610738833394460049258516113457038290188339359671578423079978336235986817927554421783771362484274424919683034599627006282197859231297816220659337072241865712194061460867691972619664532028556147031756622028049384616076183019392061964583509212574939749416365693119007066071348180648632758679302195837453495725648284500911169703923843964286903196898206637361592006877636977718673622470419868431615945447365898422533764522901337657613237612648112724202031346723988991246165512202598495630844761763805234894224568319634271776753807430427898533026958439485522286164981736750954834117825681645898957494335161379831865646884633321210581001682684754130510596189908676500812294167820316229370871985441322590886478074813867148654917674077384124420958235502466028080887933623592877370915429351275662060199859460987656954713734205215815121970453942697333494037122587612254015441342514181598014566591230754234612740649567910017945393960337589988315790585269821567691635876281858326664882130433350522636442461102586367004171703754329607576608772366156549279379032464294092998903109579653195030203777412082366636589260568634246736833362068872340014509628944333323055605887353668197225937108380528141519089644714315581948532856471918713435303997554219978434470137800427738035245519130589076563711640764930040679727242547492976013589789075882424628820240686252399682227155409293658706224896058074336251662735877045397998177611916194067769997257898729317011921165784842010321763874765571072332755514314664654768585951448596741060884938969685102734810716002028471907883927879090892447902599539961427812267808226568581717215497313501379604896489265680273627085285767552331302155326933708640079429053511043873423597079824749597484622276235351884938335410806187268985917953222525965297555272403735778641006281861153805166415673760557520857490138136271209973796541202858336551908258467507372183039801749203427807667391550746333922102376021702432865378632501330776732158715043895959996509507404395390231779562655592874644885506124851650765956719934088128272644497881887299629454453877826107024588789212846115080615317597816402213852417189687819117433695663875861350526757496471706997590873860240657605768080671136245047957023409907629370284570230484565760678349649308105496008251507596631488507238061974682729501310530220831889160471191939200505246294542870383076479009008627022179339964945811754512292202191862019094320655984862412794753394894130595292509573549685033749863001082518352224430412258061897513299606345521005786443606105337546861225854701141376954069775736406855785857424305934744735907171463661005899842197539042603150885366298237873674095621844425013811194259993585826270702257887038502518048193279114043084503921518929767389613876929695972488214908176340355727822526456956002919326381717739893969921965315392605610228920128489064498501906054002190641499388503972927542603452592603273295647775364696063453015029323076741892768959121883210485045860212877925946655568489933394916659628242114281731941270846497589784592989835635847667442022616247907066548841707459084507636491675662525880234869435721846002746499679010076156470835107298873413394822419928216082269221186074313038389338642414328562193356623289965601795646129724636827306911432570889791243946117634791525841106259014374882390038363605045804342753544828310788726214050788103093443508978107019958382541312672418569572905962732121412952041899491160436079717514852582213037139306488197994472731524252715342567479840079721593849722131452490915495817480958571222247906639686483429586566751973183514620417694007062384118572292566767223049574971173217000866805013313124877332648679243820953780278541055131394950881737273388525258647882793717836822089624364390232421646679434299147557651802380985578405165390507147618998174930704953994731029808904743546136762658781477487081238534016332005929875145148315928786060864831611971133366094449218571918839187680300259385867978785619086093865145742917888264739903069160091209014337483881286128794153605156504658377978438900222681329608221687606152934601075933491020529535502294675281445722445807699049773613534636687450830455472092262247330915417125321201803632757174997231023308149722364768780980985467164391256872859211663803963234138500300528918216391880225224764492299432211422999362049531329989342691814583765782532715609249526401136299722528697862064526155177729743070326051767725462716048425966712992157437628054577897784443976107028759331431034280807986765474152865186291515135895765228571069931099471873420690629718813599670388246156942924911376001660897182055980235372659948036337867848588026547198958321675585181774210084988953709840826557789812847788551941258885779665449667971874286234716391906404920034873980269489269744486366412105700203180686586399589924956069474121721291671639820044972958955409716648341977726702378226682570734652451948944517995550704844273617462685363641911813182160086995022982393603055703770989502394472936768717862746459813926570800020485778835081845812115107274956286967904671298190705625963718170667371859057871153485417664135155404827693524595569356067901430386850039925443513046906341877780324544776752048416357613762130728262209998699069453692323470101969145098536940112645899367126358895287316777664684154350328769082847424993506655497665460910296447624008903778933763896533734769706055316635394177300570193287415992357931097000524864216728440647038010421769435417546791685886228428899240337784689816057674645546247576697989440464656333534343853076691859394526104887412102725229174229910724290796087178756342646168778901494767228888176982222560489749040313648669287686060331673472605662761986328759706045406218891453852166684760116204804734457415687175146982411460941675334133273180286891650199087599172688613781341606314058275958091265851403513444086100345632700585715494101554240317579583519364623480102709436776968830540566672163147005419926198159376304829278343187161857571758712075268476375684868874988322764696210072828198172320060735653410504459270372314405881375349833750809551674438837441480981311195389842517215227158294056200965381755807557817726547027033076131221820749315600265162143966241421916605348395341811334719579127428182650574507326927760851219549223743670256233450315025748475795785926276128088520404198990616794084611176244604340390914314775477430165556961291675052564511897567618270095989573895040548910351174568522119210016583415363110564233210023135651830488359832335622009690745606349596647412168420910658241897822514352013801106393778616942754939980537702281476180727305850788042276008265559882426103666328341169767131816942697503530307840557059038626156473254748443603888507888723517251061342460291387521167821490256240082810431335002472013133180227411837004960425322538759850585663925150240687337424699045675780695636924112869325882615467498925742957575229766615355847513701607779748210714426396233154296720172409053163588607548844738040776805454640829105784037614072655930772776285025726845729418003871557478102765388710607691531891212617421912951407639375495144500880858946630921124527186432749275642888981689316455265985403887916323891372101514049043649640674179505721799147347761540517897620971250045747983271997597091807957558339300171795888139897147835109339381043258513719328352556147413312855118751821420204216980015124215907478993823434772930858315964113888642089244804631760979005478357525902438870876812217354017520592672317898486925907504030244589970470977293671598881296835842988413111918551764749207332561520725366199723775219391734649011802914616903972719971607530128383251031870665350984648840203482328509028547149120696524730222915611317139937391594866682033450418327320254107848220253863483479535916696313782271085145612032057918899609281705776239582981008886114379734282737454668621019326859298276618417162869955157707877546886343667222642533765093014123051059070960927966013306219057220811376465429447130146321689738300014424954993328431016219960470634364578736217899414820580036396653953230472915369752200383730818576301936438065499852654536210962808550267013345980626119393206236386544323114871113128408181705778982439808481156914188294978959723878528496308676457874823603188708893322353232954793561059019833366369375931869804511010957177190079393132920067470482320214535372301383249750671686024414540848885055918510958833703816843438398803421351649849646234598257780805673937206982084819777778098063594166456773217727654216266353440884240058757930773970904161702220536702251427312613277580183937038929645683372029523563796460826093200885949492399640543838117779757607080994955635732588609204898971192935600117159662989149898185882862177511212920636996410683700136890018251761371077437738483288908942798950509164443019800013730774109594752332900142365520317389204174437378254054143288429656665741886623215207909186412666526277407572706636786128391421007400120671233250798059243896499239492279609928689460113517473028801473248727575644266230197768922511756703542805741728658337143973831793450598137040222595673128617829959837744026618473870377239832787260029973587642908660191122866351271877148884316520277069018361557892472948443619891591360168350603473856297132601128910129175795963194443860517340102659631520442020289319474924608210593891533553607051787226148312926249569412843592887657434627754417438199627308164648475710554162804365524121473904155232770061223011309924480478900381392980164185990431167342823103245272266327702880475062646347288781470887106119561212243299888947063610549323149085777160746299726441158129701103659758192766878251820098232635157968757971741823440394509150231954726291178178079772313608644777717926935682223617862238608154888579673965786249586788514422989370328514175346112393365247172045306882303794319458635136648007531514300227459560249689865521590830902218885734313186192028368966483768076587615707983846785659135278280802696498248358109579112575868168528501448796050753065144907542020799990211683751750540047175171367360651194254238473039844768338831841367026615052888740146291535299214986684933845427044654994468012628035077311917246498318957793685984651985172507317470160588728467837375539669644863960487574191688563883809352222247764649530689747162141873848632966514072686371761606222528678943011911220490627530166687081342238014833973402491253044598867713203265263918335292462216653951889633886316280546960571342741100364948871006574885363539801592875726412484142985388597830368225920990544452309328168187651310482472470351352625063241134765804253687537672412559698704205616384682496546099718172561238740318168436901933493984933090124400457072895481440028131734183767933454086592227217141687622346934271804633739413131586284864015906793457406443479755125174479813062223159899378964834295622132792965313081573817241976197449294928727610455619645629565892901779886536813767126538676293297788217791446834400046063930755178325388997106371298317339076031131402615734494675809743635084268153315914247518966185797204831132548703029050116585298659540267238685300173447526612525622587326375943541715341084267427322972779662042839109347191204049050927421495304579475589994063570546154274003810144521554056454241793176501430467740745552246965578075994884020837888047815846216806986968778991294890538020958966821398898893591471495456007744729829597082941195450314366505373909718601545063730654061358220154635731781870826941264264794366218603188226987020596141963416873436906289589239298460022746117124408615264969343351466164192658003550558658716465026946004501261411441207280151387285893766978921704773906658519914580579019472496676007610373692259407255426056676351561022089872857502011608620500850480849495421573919702114463725848190832151379876859017181605742741684969546431479100031975538844881012157138680448896913490966672942024905974044803101538842012983169634875398400667199545835840088044702492955032808655115606268489963034136919655447358393049240698843049001733857157573781469736962640094979679571628984696507611261834586424941456892197474293219056182613570577956447382929807317655430374754912195247902341771504190999557625549362498417750393399244031827924500615367046184710140020735207803265318710248687878911159863411331676748167508859078299411619006455194039113612448728520896191717377738771219502921100407134301292339181921529969975561803058354661634926963485988288054533260777821848582091484326468674543708333043559719979000429156750635316999606336251030566440243159072427594431198168489643557470617440304903976403511190832992536628320283756575919955636259319362831448778784152670680223941487192701284715491042395575299401867850165819863825977265334517089618785258560892888498609002682976467869852618363411321063520058685459225102207248666588454389540297003572640623792687911329787978643136161463548509159891417415790015824343500188273998264640839080313414604799773184172469148927420233778216381897922761774277929544143783897232809807321115221117288975914839716826291773107035700808804522273149076399863510833448454052224134601274313312319126942352598638273266277083472001077254591808831669824010321292581109771931612112950263792131719187322430655374024889746228621053954013955961802582667937629068127309002746110705295686709924395625228841254705454217554580399491919258532415619817170873526707259202940933678516386933399537391869000380169807805491699437933419413939873752148527832103879144509786811722857301913179348383102908094159612513554563722722369052400113090903969087702203336105675594938657195192483533094945514144317446079243926557362495953239457147995946839120630941706156413440436685227186170085484095778980292210913675032514927021002614106725666839066952113414616627176516198153663899569250558775632009570876949937408989957277864277211009083036265905234338340076519913113339898761680350265187050394177938947127527300010705973474710636441001261660735840466094755578711317323564193428687306301276348312770901133332172485986931702250489556544982783798432495239749290633274244023628835106601296475175763738236890148226639946662761071841483358376056137005217139545199585650391848898748226447412639893966779545568640823207796110290655453193612420547604139036215525442951610634524892206320279294139753589186678589838831508133473295162744102459779438402234809792960612728163435374983303631843725741584277712870604962056288004109712493764621013396942028048098481980682610135343883494588795715689347549150302151753426490046296487006336332088186125223939071205620246690928279679158216432520254776451093464354310023349860543414329959177580894945956495613492971978424105177523347274439539767637335064087958461461875469054898554838100816945107335635119255013414916686020913689508580197563395438861668814423635205430971936142906435283482625461449740277436970361813434212014372453859299403328684098125357265116818808039950629999601193623079441052278334440351814101168466371647813955644194542436153117663242084975122060608500156431613991920097906956660769455860454010947591450160900509182490704153712497179092505860379343009005770374444160700983147969281743141988917415409323771383339499630947476906798462294533089450151409304772285869081589617831084375437428866437449016611927171344227575244648417225683273121550646750747441936113089458020999946563662751232406251076519725114724757989007323417437704301644415077318690641269589431167349614522625707799425074729321826394205241546894831841223300459476940295512344073617206229692315791069519834892413914342997159162052881089648269350879031182580790896764737903739374499589818794682207063563042592000535986870629157050352717848921962542904283618891595727030187181383377868305005076323847528287969042360437405698965310780192868507459796329537716702377909844809039945300679632555244692476543014512416526836241066679967098185597249281692357988464859244228179893772929941841107929676711455930235765994106984555260089136927010638995616745221527077381952006270157042177261705343443472016939096194350678395998559756488987921054151609442286257352695040788434249120013450159585870007457011209509165691324821520691943523111603249103182831757294336023799397423185610602726819810744369652803955741513784850119842274443821806428835600536251352544030564432456183532506321679889660808176766617376292474741746695251742258009869403772007826148232209128936681280587354563567356769181589490652012626001254016003878650319814267636610271560155793572459494554447101010037653887415035065476373903119447246748209203389496090675665513612935687906819076593351521580377968605718252633430346420211418013575715608047591124062928068872840671383973927869913198350594173687512853865242633035095404517021590752851941634789735522903546768794605079574562747012694308972985619680159651806823528989910208976445694264502653593147035933182465555294214116868443137124373029673501053409491194028863767903038935793845807266819006338303313376006011565307220910675986851678970153602312974898015191621891766221079563480971990284703616136173736996981460513599895882870441235040443787428717117281996376755362162284469986950107318935819021023894211313321487342435470324623726829904244680149620229859490562653146412872533518450633494010283104993662486659905429290586432801563804122798501041290820873492290416360093469253135366286116171824745871427996307681445700729284041853427632729578051148196601516912543347311148969642675179061277359928666865866578266015903912206740212627813398270155078950969985714570155516804226905973278424644434113922102864702538669465946985646954557137555500815277127403272263317648824764778346939833069089768935885936430586339874999369052040379169604776987567761841336329215214525570685828579706112729659453328516637133001769066230749774851729435626118923355505618227438447264819270400498224925685053683137854040891381546456007776807504320969013412997371140453639474245697492923364579966299195093494482200132095643426675703562304882474058667798517888333310544427415449943365935812402374489035831388785326036079731852449873877821293670528399235649497100994695289593913153419860313395562598354663233665641188912954789553469214785719696271656093274653936871021792896215257001126389088131651089043167963469328089763122047730874847928227680169640579941114244593316563481219735327475762245851224877605389238967760979687846991523751602023168687529459192227795642570528980958470831532892444479030726465047244423946599859951605653068857294213715915370438766935703895340714585375488003904590568867510347512658385870099750606055306403134582513538677559214457375469870330590582695478629546579710819378275553475796467439964513964064544550412061286322869881896204822120385908965376919084713598859707893892455715376959796796304801105137381222695926415669181193558702519174639758871813235239993608409472148052565627943840410941451675485975627575581304100703463846665510643771671191091751354470618547471569212636786095290739996281764972692378318331968791414341448393209454956528169832000921850308274683986861719905852993930809647369982109838665911111291607293898074912301264839972182363507728988254672837064342907469988869813608189521839516899890302658328257167092798743148828108891634732632602649998916520277461323638452383593743535746329740314031148084950718245107379457184058220358765547655016694289416395579319194416056711622434312013916832793686586015737937364178509458994356118408083004169656434945953559443510386745665304662567529529847009046698292635509704665367305497509183107756550204892878966877578897074528737021725798836626182364662827577835171480600699845078696011583019531577878560870611650735615237160175458208682684130613475577184659412504474346513107110358091203105900376462851527957938273840478010980655116293395943627385357914704152999723929293957110692184501166337131333325644161629209429683291662040245725943200117810477772591142628792645993948643649624992697218291243394371917116833918085681365048237162665168964317888400809908685720567315416722708656911121040122995630628912018448207246495567167249427014015544022271559289820655902817585753739869702821861112851140783366674399152187028509946883534834393841224281970698045129232040137126857772819248063383497971151628729170441327978216477390166862416629147646437454333609505663648541665585021525228882758780228387747217375096147927959963813491936028078390189493483665247846670106615917990306676695669647396876409142589281762669448791114516366930650719808351058833372808171342661717889059041951558518015928851065235860701463600705219242400657346054970296124881084098339214589099456847739170853990202895527235284295788612693081857202066278459302292529590736182138462995910605991928307117280525027676012219692918116746486554538287825324144559212558535478058215621873172352153247616935675887137789759191356063384606572893813625378897597304071185459008463889624936297592900162634162961136053160458868225393575789200527143692741362713947619741320245673747475292975030583655979364443200874726864555495361547694014837203747629262388209723281558333702768580421429689917704515590509668779201197614241372940266150664447605099726166095593383804804562715830925473929703283917065428959274554757389957129382237843826967619392922524336628544475860496773256441813721964971857613451958107458126941944797434456460295497455523949238313680881456937845551570547791481567343495874361701038761333898301418007145123316484640326487079860255816208361077287793091014059011730986096378052925310750683288676980645226477545962272032249991931705370462402513783174147210043062381148454885620833085118326663769292551671116947882134660088611500277266075596466669258134541395377969775266908280895379807546950038159554478578846704949791053116840943462272543349123949070039161235707215095521171467392651109908538859408409904326911423098121790762230973431839858197324414691813375847099587206889299403675803838818442864364665878539644604808576978738454197669615102713181000416685669550199053580387109438033598519489423835789557185899478703734677632158307676285638697326223527049914364946998835244496469018824902415505550864251649029235355472255324243495148713360322826472471461897178229628921601609654909449851466077778568399239271635825519895096212541246615759985126068307269039977440097700325603762087646675850486560053107329774718493695695218059843348414217804945860719575367174562881578669663171773145027536951167185328185407098265137232267820857555393891525733870169348531219707132302721016828582661958863603595480408174219377992204290633054491620441913855677972935394314456523912822699083260303240017681897177961439229417685091444823680545561671577931411264699603559388616104422195693265813993092906725954095853564070818656705530055734150130772101307152987432216365545432455086073811807505356525969526820777591960199492103361826449438026959116947611012369138344728072413097173647172982995060585352361663950301938588329757795013942003361041069306527560899618184844965069723360120438995969475605850513986048727405705752046591259038024324391707776032284980623400400837519874985617997762002583785231926536836008775020604142470892062979317295561783806394611064094909675416646203884553780733563391645546980184326323816978704383790152754329339510988302020660363998773948426879009590906672077620894362492243092933061089940063508081095976006575411282601680643853289070746793137537675773828953383093224095200211564586923411055879743445401402232450214392503337518341562924505561068033364198216165157700156574739383057878492203127791870843493318381707348355695498563819259679872980325387862991444672540244476605843884255967199345154163014207035395627800304095268389296669569718762391223720646636034180860371475883875442594638018174927803345288478950328571396161731541036986571745950503546616024797028922987926497553229708448082889784658535444319685804367496729308921388916966682855153574581538124379806578733673534681674844888914235851025099590177850644811144058300073051439925623778217135337465155443924589067874932075682407060144173611053935917487717813433347001314720577207912789115179637785298965261528663171087001899140658557637506524802386222567683774683217038501326796452303620397206999976240029099360088525400989570766855902624853943763847297412929578072753544452449181971282250104738943266035926555392746302029066834466075063817629294465990196468448601416009759030006105659126565169874593818935657569754794435987092222807678445690789477762343894680836819998696701068816630271397789536183409521950690865971860075229670363700808020702530054333558672461262756535880404887614117757023493735372239331985387503068780046974916663814591825417127270147301527310794216613097347966455453899977118965670103089802300701561254204437143149997616257712906675410955785371976915921423977469712454340803951517743186655325624127809374827060932516598566025315441783326346443258712775802357038704134892748567881713653703011063553367487806769380263340362521416382037111721958530207546525136227604711730804730430081605482554984373570326670571152807103114072062482674963600660016453450247344224906770153888257326643263125391052694368367998066970225648875178283679853213814927650126245802687608048844772305267299878347027149344039647758802678809016873320077937362372903018102184851114503365254991887090568944937524015979890565571729507619162004685313777003360768270341109442536186525573280941297763443436601534662809754734237601245969550659971388533807450902888197028562802628269013039812393283271501385842060380133493466637908213625764103039734704278543758190666419372232652162439188311660617785150312956501160388354371520501712808349200980795162936374333968656322068910896039171407542539433141663660136870897525775124010977896464633114495419477732026813411505746721848438780244753814803531045756409488208944899984690943901602085858588784953835142823038004478201406466509060773475454762378878574783154000306464638860839327463229959813939766751750307774501874727979355010463536549865787644347441714674351061982320422705705420497645761418080465682187218137535061605490349043552026310040316889879179828032575221947344162019751715181819961973606559320368680072024518395695849546975477411935612433294061343737845845643245090315840886061572832239647829386140840219692939808194507912787375623072284971146915378652673319536185240199463301679393632236044379922860395526570354150186151172438914827673077581059779975384365731442051544523697129355451383838788715752972652917749326738491754005406133948280968051289992878761590341242021837047308351686042990693702645825352194265841066895257554145198296100146321003083788592487843747986121850616221798904208048661010792710641959276548138194063246679487421649205398510148287210960460404112151582337467220624891366244406790562829374218128797459263472278208803358653113375897118343406202880151813293872975301013512752775432854670103405630386232703868353945757879682168680395424674435392251112602715134954352660635929020051369878275399533622288759565234742646009662115715981049774779498366314904711906896102462895977572279317515133516017514018389568263274546910841273245794882552449936745428592174599670009225398888396820860261633856952602578847919899537511614413178901703370447506216961923120331550298758885784656203033359749103228109809325371999744689731312489568308390687434508129727497249594863487946705533220578199434691429023741728518681371041943915979503670592695330413340612591472030747473672838705092242332258648767011452620240845489668208372004049181495662160987250393392960164088496961985924192297992345792682963607626749264615412231422815751379834701492216304687566245539881148949484832825898712473779265415408836914068795587416380355087664897615748722461806728632671284990592656757172743070450335328450822303821444962437423338573211673097109154158576931650434304613927656958127912990242745730746511344359359967273732408369159099845447101337371315282967289007398014315571328990091421039912097627043641916790808327015865763076485549796465244388250287943111933967632173470148629312987683610766112380505193490980161379401834070247947098801106203901001832174085176260847822192613981615667602605922226594976949562998908424031653053754369842665438824045289726185819869026742459214418924303498512827977797155550844102568078580636454253992833355246332942259654049743895076568161848115135183388412186793272504143880521552616924691766822138967787464079350028716057025770499129778404921127177537077157709735891759135487468988589171961345399380579483828484406702266273184349491582387433727189806475501186252087192151478437422305561869393389611675975100790530564539471118497445787456738230984988674385030883523302279463555882376107776752573215218617504207639123505070406920644257623082177470841837725609679358206375820281015983220523824999808681667873028032609295934007806382717414177179087565843797870078736083734409937598735138046229084902408637036608496916232099626335462391396886856600638713245574705584799622409588302200500114666859930699247583134841367356465559310655583874974893888021258342804650934979371200246904759750687636108421194454480467299552672150998380167581803045471390355558891821919716421334471146847465340010318304356341094731452343660287893574359362292117493309225148882316188090261452212266679811239627162607497191158257458696087999772862418535256687658905519304795740561984907681477781140637885698417020326165262202012678039761739142284980524848203958816903688280308632868320205047545790192609826600313967338849357404585369309466839616201515350455524346253043674636650952414845971420850881352434505454892055829162395106365111042044995612746016059631056201662429169553016748204148884528060772954958384528675517305361881986928123022515184009038063375870083904377757280305703175589622933870116333958196802017483239600946912815037436724372434936004943835783509630861001528991931204901368667560910993876578372616117100321708673091313212683378895990358803597430582002148750302084961740030852131966259119835076671388871011078307946497652360518296270005522076120560187999574397465960882364722075961963353017439047550232395020963265063803038191080984903921747255116519869185422676940162839319371861979040701584589140012985111531691117346276961789746066454180426211863111377859686619094771332977884071018360755621938273655321877385159894106350314043597389228886984207694677069660381112298764131658903378205078738605182029237334051339025688776857320575664980553681789622358682005211295153500499757117058037075359869827722751052083002911005131967382564154592889071177904665026555692409443712003181037567657391560447781008168378188602694097642081121632254993648897251422762767214278059579176907518418354436621454480102176270529244293732883076505977909763686759549807716120313338955990224183134362711039856635707627104614301217859752687524067344427806356818786155051698645159042085031097656884352404468895050709739843502222875085239646414168765616622631254447341402256004064867689352550505178098468543855383745916408113514867942227538612491398162648801873094032402121465609833341263805880520369358726645348372232832217894723478244714266080474713985472295725584287339914707946277791284738757991261141468350524951322841652885792540073822033023705439885384934112407025414711076204465133747323781916436409631882663699846555331249898751525364465313116960728277177788597455776313961706844434855023623373369060727115975726919352308806637085416378048486869824991271446153194681157782315597433770687337735463320856688946110891667657093214392038744583671719002037095041471680202993865824454034638057628625515713937083645840866509672443192516896846551901639597668487406894199017537394591845323259823369169838852453719291874069271231957055484223622297420218758960848917734018911656926808979773374677349449028993356050082527357071964970780326780290386603144003034336215272245712791767942423215120446174606178423220349541535052391943769357664289650355167829556924629534574864315863287013693608184492466408613881727581017850147726258176860988852662069595730315122550033705078538508386595528573429190392742656336567705125641935549758373500656923439527281819601332772613804970466645704710591087760053712484093385785224662790262104739244842221261686608588074651559131115604566419314239661770962828844995388858216483960140455375262807521015724039054978593363245057929709763103872958251739694803825315285099456256803882109001288034666668033036107845592014036829419183147765943639259870845181931954910053315828246548953238255986428414233648233962235052368700933857287608757839716496388671322450177747158161913609938498738285672055816218862771617206349700805672825135981961060123787823942058767726758821345315820398157687789263287552298839631143435922094208800119385147661239150099392316564257298667421684522752367296075873770189809713334775521138940901305282085311740725731261675318728803801905273895754987777485413419980097355573693966129957488805374320423080799065682418416224380203030126403016435622133180164775731548315774501933733038273283526335587605750197581107220451127312061517634049028991133168405968048418720825704309965953737321340526821945765264959196927890404482616589413906715354539075257541672277291986797304876280305084246744851274245651525577856928166281094333651083922102338052103215086463237158056322295825962139247793353974408121837746271824493422721402901229927632312103145191378529367182445977453167525551165139499163665033201783576556770590216256419708489282219834990967861619588641625367497409320484720079059277845825389643361359037360341807218668692935442815387721871718535963656617645032778942657777601945938009065898653363986043719870854341977758008436130738405437365185843629165426478616030059884271343868547348604553709279049042090462331439450956125293380140215173162889719871761022809167698062403245847033343042666245207290897339552472195610650110038664830433329376222684098669649233621137203199865513449916814906854122549875894819683808084513711671111639161200287812789591930008119099203716309538186379469443502256829994725358663805288428713800089868476504901260716679713155306624982414223978023207664349773235726535946475948262179977989479676448275735956355334260156379419336714884452166844354236391441574729571321391473152856501298024658934256320989316637921172407347491382304728744910558802965740873501167647489210615449709850346765691376033815846376163638675106937395541709843365708973619333663280759305939927392257690022857158004685759372486358206345488943546474827739360199832801402083483211514997881036035427488233902942154401840881182497667942552043663001731778532840329274846221876145929978107097448860466002942685030413912698693665055448080723336898376759654558953707440152637474805486113576938233890581149769863816533434708269025181538042377743244202530172174108931449954915464249412756297672521506068379053279379979136647260716155352279241479856697083593811278208350285113573298263531223368439251118264144959747660887591605302688389040389243205759090353951372045131799764406084923304719060350988273452047559655186151004921948886979273126223352720515117868146762827781881453511817053718767881911791818166490013499208630908427341695998624772738203500301343221065353350870249712530281867527472769125628954668540904555007055751117339720316072700395913766855123623699251516950250882223473473227105822064614605769680522019265995450846244533812035396902751289759173261881552960747965870066202425345829606636358634290032879725452789559514275486227713048189213066558174450925661463210370878880321386785829265014389616856189165333787226793909005580682091795871429671820475124827140275980973549353267283996419183663059527030834929112362478332865148989655631408147508902436517871134786439475997535329791713402372960750401356811571607083729843201846526903068131349383969500268630469210410164252764390597975590534550402938380052216365073994692168492815948020249725052612052367189720705428396579509656054730168543501290273826696682520983075601345346028002367252907755849817915841583600171535747101801129635290479703791595447645497568234029037277343238800673248343131368451004531465187208355858484384005238237432126508892796777682415585172970937718713178752293687956079974806181702207657620696367793478117196508798883792194396916602049907166769149478338824259457216661579877631250666633961636737229709384470775767333222213288056262755343892266072313899743943343413806315741836770406968952809140662028934859636635742375191461009020492128239636161923970316729277755109213706916847732647269431077491919649188462798324554811177797418971326265397005281397803869549013921491378557556452768272317346694441950638154508363473669251887939567810176566612715547490251146377115013341822349767634084679271499020426962308134558487534890194069542306697263249218305292259709189386337593954582259097644083402130494178553961620704239574541708762739703703390628517564143979010335272388660058833940249935390122791164354268606242632550702604705321172604529473366594349150897639672918861710693163748431481614936421756462093093358208495195576437751871453970907098903763349465759110077866969313053984183144085996932163687085729070164575609727607221643603767371489201086840444375740725895262007048886536596157746986323545550125568285129487103651539488678863661182389754322994204904010247132051483027227298753673635943952118369905276317835510055668941324093012396604965965960287949453926083792791390171726357722932852921483187801945472295047881272804503953740087519359573426675306807241507418925091655765647397866416408001058719205678223049392000185866321527882119046984887202804488791585207028174708229410365845148989934968099972015503216882030568258893637639180783666894188190401492601850311990719691461474163256245817984310666129518400021369584044874000443454604993665285387213783337735223174077411076468688101727688660463988457105611303447767196173808488636136912858812859861154408574435016381753703122121463728248581630289899968403436037035384265914390088877725063643102780111549585765580902646072832027721899164986318335092261139873281010107271323166529771413996299482515938541377533083222345309221293778167861592236497028308675977909772919387128978909091176437066447673799308877480335576420128922715404979321839716177229902628080783248529203359295561320170716319415250945188263200040965891428816086126481882528349272881914593247663683972279215502187352598188986668287928344221155609687619471286609519936246843221823035732812122917238367875461034607602988045851999470834919937282048772036786308661043830107626981870342804755059345519252469992201847852045264921902611576440319841629854211823866879390188195077457243464580184037380107390313905834682788582748939263533700689261951230225395973221927886871413401785975548454973635147313144848123360956521745941604064163295237479366818778643315040545590607070693333224230262077451338528980306137410211504464140408039791362636973271233521599342925391169972411903601198507397378220352918917865793239697678848870513646439462423407957270918576803455734521048998414612124557372178942832236865632819735094529547507140389814485839730529136316083849119351593942024238865974124667099064336420484358187189455573506881541465340114085294105044026878046921666050522182975303562363911365603428950712146467016156094261695839573928347404272907253263813816487782930245350653396144124896590710807382757134763639119049819981143317434911106668642386549537128807584649248094764749011426158317215050417598770690349487738120528808293286258361990622936062365838429426938891130008014888656107277890434872729245072216568053808468355846085645195058455119732130737178643329541928622569194191143300800734147049641042778464698231847570157924744723501054241060731752735169721274773365349048317537651433660526967188349386109717437040511512636601897496330672324931688286567419564686173480397096460703931744716023701929808399294832495406200215326803531000978425031671249845448979038214012879427866190866170760838360026235774075963772830657434808517914187401106589993648421523723474065483126979375801932867156897769718554455333087708609733673294427861955000429354498137665534924301592868845638647240989625740141862298672098484113964377160233948895536826753951977060744275285946535943779735424915925249458355907102685691700970443080024871832628056683135167918790745398744131427455338090631305349912631077955878223363148307916984173259076036420646941725539179336936015096952550290132959278624904689317759238653311060261261907537777505087201158713598302313879226211454130181213411365844427414636692080879463233420793723658760714941623046608296117392929373603681605319995960000190681599226703045613155937137998785287751225918439028615335957846528674518389306860099689960678589439585464144196920191437224228191570472671760883904831781002720004850584018743148814472693139788174457284621037492345752696124562222024756166901987943543122247852221994278204159543014118953979823950681261751462694543012205265492051253805976167236460870095501681726519741839154025187358962477986150004486743695061607506798158537926202109715328495231487065201689832231484617460102194747106486058027986304740789786515506704146667785006990239092524271508253182107282092643686530771052692894813834784600686725851763375713357780072737474636801115723257836021288013021082679921744751605984739190608158133899619232058034253890069259710669542034456154535125146880568398421331369147415120034510566797755181600869258050387821926612732481644349274757925348212362426966309807434016812904584538053120176665752648651966606219363207310916342990326693563286858012086555413628108214024796117982125488259907204293882413916789213320083446133107564348660040142383152288617136172691246068867280225571594138599150311031888060350255311310670735281730109925787281539551865125012909396594992344141699477982561314182689730856094310173825501292562535818279100871890331296012817187485048245733762742798974859788643801886110887954124372101087555707498406600060381649864316451497488913566960061254010730927089117230406987200703292583647661147404395347946652640885223622858731361276623383142725136972149360132354896970111512183771642330134008078234330469284282962827864587987496451985057706523331895268667070430215288881887129830271714565577804642371796901030364190490599006707472553495803439821957853431209381549431686361775635140559512943422290376144811454492788856177434950913654080743345927165361731053843878407986926893852844260859086663948261692881209917112521185381722115659168348766177289227505756389293621963632487862371959686319372125909169417142856593695758249700341631561330473894996779761514195859676926384712879116994299068410877332260017084041043566207672580892865114997051342062536206801682836046882537022683498099049584896016771582311665207188662346366621512728039816417519408080222660468956917240740466741048210467713459507125191777842159175857623741517716024465567125702324121652258132463847730777750840404497487504246006603246791216355444837040450455814956847385525183427613538308860840758693413144811826471926136398894574150046316562933131182193605440508960415243918940788558932763078016791496788620314510380633246729959490277579993672140609527539998110111324905929680081201147717405461558257069352044044415467040377109845772622850137299916516135950263028025613640215057582548591723915991778364839668425402691293910596895451787632564822756111822686451453816746893820477452359343302105682511844527236752329747106469593430248316918458603517668026954548618315433704540259958156807247439453150175796284348548401634291887192607146117735224383617377957446965029959055239519771419992932329501494932563089590587528519706327611358720840719739832222529049052718060089739199360693903896078260665378774447422634175584722233323881744863143848605467604340773161297601107239272409825131828672208654479752481890978570951498359255325484036828060463642673785174533740671056119440779910379753115077744756650816130856168033688772436826890922914863836630250759381853040890481313703733473877078248377428233745689902163948982789738386726347772315826808209148085174090447609004989682244995099045068934345292655332624588386276148634823238472887761616523120527800489846913081072746787780944944793979144933039006310195181989404466651242576404738530885937304508012138986804540478951988188735288659130117811367927554031559960920054378312218302131876027965003477981073879672981965093497069947805313611178472040268823542412581664992462792097569344271712953974839559480554211295350678322787800853395346897173395252982313179938398740862919737570174791359392632815358896209332956899603681812561753147617361134009527575203535546469487113647925080115502763550076124208773546990046133733004523374618732583971104850862070656007108901767908256056921818844617296302967092913485876686554033020861612816191337176251181743405549804621387741258024460948504435547911639759207130215181804277809385443554344176360997501549031451806388049170781944407629873676708836861759450549798264204416293051245417244964530533943852329739440368189111459272870047219542357204404375443053534401128340126566924489827879431684793714877132464125880296228559631743010452338903613278609508592681880162536376576899882568122707810871877889900947162583486960292178233471690094546851339250252670044244533733309882586973456408393546000584232626288316304130959729231509862690683909939738203598277042124956698651547849292907142450806870117573179440799552736997516036566583026979119911688378075381728349005155055285512510452958721145176355190442669297316883781539025391940226359634829720398432354793175739374654182448284407700647406697191309620013280616065636175326571193847085731392869360605833207797122182764529505806653399070628814949345530601025203180261578010387044079390069678141974397837462067613858781292651824899366375101890631725969240481903875220384089871253241983259654513398629282240049071056997967067489142102372592710507825051930762868490349988898830070298872204466109265972154771155064161271040880723658072029958916633491027078606777708355021326054022780288564084397651886456940469412235986952643863164335697173507682400448655909267080967002360459382406420705175297748351163306148744364473696476463436837101810921280359691634160877700582218746463748700321326274521025806289249726221317033991485453100995351642104698004803794475832992114138411333672185513316534496524790781092209883055498524016774787103137339392846492738855101704817969178331132103389606012544006738173012245496337916447073811366095949685333117474286970558727425404790156426652178910166016718996957091350602502619756592606294128566482543111361423149153411727477572020721383662972237251583080044028619722611395954565122596143917983116195840478567816576516604445653250040015930146630917109271268027548941177215159383249377120825801419428265124877442672109179939507479015663638736575691169183630744991377305145727957423974806791697892914334473260180496062393273675315188950533715242193769648436425957117728953267089260237381701087009000912712590036532631050262198108604821229403334121025171028107243720286346798822530381144899769231110340395679544436532959054443100354137040856156912255870895648015126013709054346194500655592150791283510296251414361598987882094692232983378666649046805691475519318833946687653605069886076250217632862553495856904938756665909073266323881613249296300954974386738301891532471813598886067764368289790375515785406168664389433019154348592026257972758405805930899963223853068647959051649951101852357632578022061621087106305008192871536469510280434832543369900796837422196896597745518680313211603176113826439828210810984183677100177162522022334063265820479815834986534756309279007662137249487890935830921944572175272652844685666854567709930988335101859289224759356659530809399486210375736475235646382354922091970129219845650049777406643559312646802402674986708436238352014595513848569926692451786121971686723755920210602378340182610086183883993288443674425707127160796667231317759316554883113737709408572821175328068402238875614451805809209633576202906838007095234226735677879792554568583241307877960645039393424397938521934002154888761564772484119289518727435402410281361073885411714985605752144461702840457498745595281458794520912895351659750260786284273179916130950501943119935271424842812379228613409786774803123298210588898828800378421214813100214251392309333046074301029478166119489303625590419908414338543317513263784276374359675784776083715341675901069655555036067277973620157353525991469274884029678053458335573799366471412356845376726530071029435687005404604191058384648796703797686560086196088935194096426039774439030006998631209499401247199691705193291955734080179591764824451875774288445340374875935878266972516627030353275251271906486661056619604329609134307887551344398415902146390149929841402497655070217846149468850120291011579962474644687372116673230811847946464343114916696008648316381154234650281783951233356453121884481997130698531660647152271496757753668176482862112067815966256165926815487026899814200330083118054770538566598110166673603833866258242796689006850035508341264584212044647174052817344390872965890602726503242922436493008314992717077346661496235505901290813200649722887696624966968947566216736094406570671153968263708382055007517541283822335678031513875144786472078026445411109358446368844872317154452425722722573839380317491935153529238086009600952572735897338789832212248551127114472893791187618810744681568943507366653215292093516617228679439904225310547710433787492649213169421052306493885472556521234150790307675518008082459670935078874297074239861489134148424221829810377861913696257891299582782957910240955686687284151025492078870737564230722560126494084401710645414869755612387939551997528484740511956865102797600454755601364941086787427464989543038203365966134997260676910190303172447708600047536798756209047836856043292515932155011287688091112912226288224756734190837070231594699122393326097658241348214444251238253569441570446913580529890517191218202045273593111946394606995027228103784002802100719815421873653557204820142807941307125489523532618797987514731598412408680038713692971716150601465478649655445337668905354197713835271832127721617695388449075595323488860953434998573879862093386682708592646550200225456229778658824184905721936327415810800820077680348622997407669351220240721472161539870042275730332137726952909373753254702523671809739597425679788102886786760841187734630716188778933771130211035503287260964820297969756722459135353314971605558118121101652935875681701471086967288120420760249438958435265128332511880452970378531855699837169903630733037633853171173710236064775658629643597670849374596892625199720742027424605358840224945192705598906107968218381778689389708127363733507599703601402807811545202315188806532330707620283623768757366629389596328030399037731651814449562554692643851565894321712155188767642932736769932943839066476504635749822977413704542721551342882470573210003155962472791808853622428807323834473545947235441567059975191427123386892723030759560008060567895840682354840843429471552691705332285821923660851947760919004704105180313599257820465349748631678894178407708252512673762415874395692555083326337422806872659044166943545729345226812649875568095680182405974185218269883694844876808156435142798534964100503868874732974523203069572052401557663170809452980302595393575693482562802315732425206680197830105862713446735684786689072217835097515076904641048706161332616227681296345367982650305240524919027576250298912471411539424375119318286032737259688164638162561207767730372029249612339175532787617249729520632106123358291464536699338630899747819390102565622349471555334773315361649440618030149221035320907347081367689163936152565326762844022465595846747147467768371066953401867932073885250750359318277805519382389990132002910940125988169046617249934902003991902449419385013254801515509480112051297952757392314111094445673400615924238016192010974404119206484884131014526452438665633566356187221690721628154021982934793704804136927779373801586459725315962919652011310395107492729178342342329923483458215744713967658434625344833991513387720664861881998116594912071005483983138873222714788926736719424142128205302745791481306958098558796925615356949006876957712136201186398782654132871832034850312736224165013975224112322257870558186265331281299925292555051349352158766216474354067050234649838619640345457989284772139231365060066715721196976202145987553413279676705871959082614672105174394061856133113334472580869040514302094746963300590536161885534932566183721490857919683539271991775346498366566828079573587651575735990143231372762907411834737109419323527161313054444366232915801388311920429217128701262025583205235745363464890301897369591025314239563679047203626863053356780320741302748791635664663953521359831775727206276087725595136722917909277509679618385743664092624441154500739915809089200919882344078463665725566715504568776743906055920564449995779377611944012526337106626000088185181056772078223497517771561282031654144100185563467161956981737487142481038611010288954850303034184640042467074712842615865638040585543822598186152677183445134236655192276927526306500220163574013851881439011035167537395640888949575624468528258442587402525411479871033379769712218471451236779029743568550813541204696942726049976212695973793733388079667723469564321762236827330930189421245362137517556531004140420674266944760096528939781416545801460934312477898471624100438775668019384331485049790527633178069272514544312521611271089509661825643244766333102449760802324269650404064836985318491564760328023083425113855182711573978948189489946391072820739684394541764896144117566259529265498963027379805544605155166673305418733706719660270555103553392490132489888882712786704973085339999921543424662872672460399976599782348264170283494008767919443478821988091224014863154042485398987057267713301982430206296138306258942571302670372692990444068490941425519830375458509258036256132856091701133298559640107408380972327094025226688799856618336886273145991465390038709011547116003253025308442494854275100029490147283742173664009341479082183588088565534141058385521025475712671522595096384825426047337610369638097286168692173151398219073682034232269512001036186433441896473221643352382948429176552024060452412374945931197038172961377299220006004225999645390794629065512594000888731777375986129703544111467952119183950371030902883329365939046332783747028179299618093457918326027934144682091976247901204311062613623850380468531277218295823528849911695528541470046245142887466209032901305161907273551733395386260312306433347343274389676661433407628871687530437895826521324784492783987681932722325320035598505652564895747210822605507081960763508489502825940157673263999423688222328394330437197641377282741207946695289549481818322609510624058823139468541364261167575294459624651747354736979823473073713904496061396642038899712816654947560678003914872768599141775833620651233916273783256373177544927951987115700810516398016471920969665672937648464160048178829241485265896663641104189677909080482604659412604827831617059645695278850159414016164115413659191587787093116863626669058318751940260930449747664669526716956533093536518951962137951966861818605011018079589321286654904359554539531274601405354445483083215207878535578752122550055107269046503291914429499337345690457470121812124262979984487218727908690955272011177597893487580239012531141815612261091589299159735427419419827705789837381087358766304409863571682639140070817636071718781576326257517559314186691823936184066776357988008959455693886612569785056083411986776192775993997244851082584847635965122712552553757537725922790540535391993240079707551021667270665126264773794359767263041899635713846629523223103300223497285534543062986678773744401776554911842531355404283356606081342728271240550347026032014994714624102959778104993767649756831589083303728145302059674234217646041140691125315851338061767878347203284362962287422724425862786676767987599116952769244672739879576070905907756803688236103458981016530312264376682379927571119600821165067900670812378902825933542647973535031880713454199806628142847581181114479267528026347252309639798998276924408624651527038661842740750427334302028493925893491700875884882059684596078437952258561153343764605787336768276992038988144918615491838518113750530828505468400544530531286834695368087292428205358603857335914886799638318246507861950934218349727824538077510096539694680023058628817935867324048025898570395966028928455045051467634861471141588681907471528855471788381816839176053482045328785868019614852174731981721292452192443464780014182983449175730596654056344774257862944137559997537174640669282648105787796075959577365997577870298434982607321800452202126310681016705479751657825434600423600107122363745271759805852099746098665720649210830680866361641997902900769082361845878146984306699395743985148375048805515265114646151182181262584122738309537709412237483646682294065704892835061712980077938890210650389882973289437361336186900020501252491192330490900216353453168437600725377596015545006042539440480644895633903885242319747901871631553745510373839231748179341462612774406940232463289772091191600400099553499042412318573853861199345012136302771420606259527175588797968757444589179489241858597863271343275557861813204896110707565305573071525198790907177430135907468541396319254822669644368396184294486317180604074685697728775920797521155643006967938242507219420595092834456634865141772109923447055904621477505378083944180010235926544645437048767194278063530148921582437145848610197610833725763667285429892279635154818878986848690319770688335610741225991375811736665964768719939683194301411437097803321757086876031567364548252623572059633985840202755092480821582885114365557135518725167691910963620358106032795498507632923895010442985569911419283765517613711863227256614932104485607778654163530711343967141531838714970491739647719985251286862648357144490637535415711414190308960801522852453430010656952012442672302743280979827206843516724134801227994766024505665292473958439514209427780113810305214042711337236479076151354707286622181716739437977679193082942237650825066271787126433824109928643001851988200345740056318463598421769899305464841018511657503283772806064083317974501696920046049723423370159494666339967709991143313358384629018781270323654176585961275132731580238252306291980625586052132864384793213940689720897510425853884203914167981134059023525406168714289466945127165187417351880722100688956825073226775779278673072931659250538768718884255700077827698734875259289193137895635310902216230365349995134840444347127885963710930348255549819456688779641988687727082358902767988064818701412043451195188991321879075933474681714922983786855341674531509600456141198799900794254874393920727844943725249357131264852002336026254686013859739105342077152786997582336925597020817890395259874674694566504566278973027109710454837371752941353145462980977142385475022976591554056266348547264184015040899461081846572780196165541903299288883209765884551416168488135761906819090305485170513970445776725625701614402589475679250368967961490123612373026272545478465635738182103200078017440078509001196261040778981036800880618579386460122278993905686050657959670523456290976840203286582320876187269947589347228993087579074596446842156457111731216706052315340919166868516170462461687287165711771935757538006805735104350667713173349343749124001808385879781792183526274606030667276393720728035714388891167542773961573352925372934873881652037453086932518029473367591854111763251899071292652551511461957185771057439602158963153207968127364451080565197925941425475085365949490091142359722701075608585501714697175394013309764963286642213810891484422555432339149183318020984047367338901359971911245112361921759920581078612556761906382077469028369392817837292901610933392757840018034364519073092593096274702134894044766087256321755404133005736463333973823696931693881472666861920486623581907623177558269870129721862129113467940147298260378254621982563076448181497714818961512587409376516660876584094664332074008424877754703601197045224036905634079943596354613425830188772470691362656841653829669289904480340870404941755011468152371346307243227642375292995623247643440130836591801009324598911762895965205405771683904224806782584651272730490203591919935241465664979061895199170594569053994782828655817894701009332768059616669684846524752816292399461914594835373325192594415755853026425015065440058057951220625178578852892349003110858137120398459918915895695989174489259076238309393445322349164616341086708153449938144783361400324142016794000082686084641827565323750219910390990638786928073604319978747524022904175466730078282962678253816297883538787615406616034503280480606654635973478793608356238172876813228149914112908223949474888837770996181303206401992291759558683396944091622404759516319402296548251922088856887204481358063084660559999271348582754719462457864769328091877113295554172636707125085401434308024998244696361246481311236568765568626780367965010902757934021335369549171854129164161237554593854928568671216265427249203370171369123268545540365577666820163584439210056470770203555179570694877065169381081155805512330173057032648811331275622436959647170632918333469164782924571045120670595435852469977369544976291799063465976752151216430290633025410922021738503199317624885946108298234161059483025973641498353383778163420541201066890407895502420816029078827922034856435654441936652135979972422279853511584599118327496237955636966994717710761418170713703619374221548542580910656591139490545567802226046447742591610580452144168410482692504735116235080295961306492332818825172276425301167144182941924734897955031749749013798816344648231923904063673386245802133253338267753260875438904391141803143772984497252061485911817385612727697552597541262412509187119979322316009761645841222645140975329118373822934034179571829759712705430098143781964417811238611171597868235708688504790917154431899495552432516956355485540194415533397652096551449856862492829023788857910314878123699123609963061677559628374930086055982875926780887377539147907824780086507341838283033244414913636862784005036387367899435107981324194491983791439038626828882848559971739335599233768091708536264796012442296556020594276249284344233581228910112986648468169878876001425864016183379674528513728073628550247758404879970507941893791549389257355996106539450877978377306383253799928415607917855639764043359083587080543552219073935694387850730219910900131010942859125067438708728278101203554118721059315166184869667493724605448686743838063486930598031112163499267684023118091562662343070424279403133836200969633506013481440336765917371775565024108134975281754055504431190536974879040092040117552277987584259309929966376007396728019393771994339938828948532737410030783448971966224799426133483414582120031534219043549465154462517463716238715352209047763523381181617326085893860337116635053056275666325010681298146198657064713068266906846462000522345574021164207192101516172187622377420448454333167153563414489250329996925432591766112161312745447592948218760266603808988031062496001452913090748076224321931914077539199275041284425375853300443495778942402498598608847772054192870788923954435301428874061144538630105964687465399772713921779651032024098499902220051645875562941699231363331071763638420098940119376970319677651057691893111344314078402837006173986420879332535911792373126579945066568217035733801848684878865390922438892642375562429200477548899050416298061562148066135429396769471183648581160814614245923657983367774729875860163582702089306452781571774192325705761117702563137717102841093500718641016899427864266634432272114524410204255232788406378889643848587995466689211077831539943828766965813872416893704009051944331792572640264404673144015315592421476794683096277258226781074958085506859892190100042365977289667321942934151528377379069139424921315169434167352748303759183608374918715709515159094051075570936212265447712605895893157416481058487504064241090034213130333573504444276982492167048448843328726011672749027940117432744886153393815559034226542345686322730622249351662383169698101372907696809707227840016604874388818893937899363809828471408810430418205071203194065375995658179858179587036903043040348489495956459482928121994474528238742321614244864827232952361869351076212110631203773933484958802868457209336911182722384049067399796922742730672170664651142491205389801304348885548113561853015073549518924195126544139595688730370566444106801718340195146764295470438058274536304205330014725104365452780224173326200503797122386926154204997166684340003384634267578008575824697630817016239307649536606894542924186121149143568716094698840187771853776950725675682395072829898961292003548602363753786155364183276770853119336822438203439170118351111563002958225701055223451460680084720068964904623038378181872221521547036635735230594590073058549708919294545802931866050401371879433503071327200568488863926898276111657130739886729191573045884346950799665933759345644155069906524594414600407498393093800390887602605781613187385629265445982355708258511809834461658804726223973239677893884413825669588043372082278005602461560975970703444485748646792374552176143044964791231643949367720044409127438501698342767089114312795017594010187417678172520789895773417801572653354721423175775034795411212251957752549368978137522672232271471110778310680702631271752662755594651096565023158599246159002549206551357371630390783754866158421932147812788037901504306843842608624278775655723300403145317680947141825881631140120819223447939784933649898598193472113911214934499791592754710851601187183395541128447023656745860118385345247053702140009719813803844467559416890587764807685373944262657297384648827875524799168732406178067213898606935543098339303978616180396950890319041860327497103825956859771921434495570890865467285744192775017389127022037880179808586904377386938514369967872898608982901434305167591555449337753962527586484129108968271564569138787693018260348437713765801196029100965880111951556267415608986562296913745999065816113586649073972469421957999411086698919720243832353323727206037297276260189269878970569269749787377019488468513436676815515389862272326379668664437932133516539773880248344149626355508191372452148808111647285505989930933983700785023748184850294650331533809609227501357348334027159726945128675785235381668142720893922662649956435961937987615886731581370784837325209040474448148853479907417891304767783926266400367395736530207699918983151980386424008079362114556267141794744839159080579599844410867889745609040776244709602548559521711254977436707712308991387412389438403049034037204563221275692587061884167105664107127637763240819793967474606862120677513210700901091824417104110195396701489064689928038492857605089100753530276252554181527865519945294238874689078162642869578895066917872581715322337707958818604010731117687167750315434687984828689990229519093471908253314598693537257355294602756727703541250257684753978860009276963929303015609857319652843948358976087579580631873238666736691940841684376602646827220103275824845474011029563074661309775001013879937232249674001644878406520338192147931438031665724000990004301958052420211636774424930306927769870990322211237638724133613751568691976663447297274615231530704390019370892924538435363784854017592844257082147112135988899699049460165281667165575625601545054884229609124107392524715863060624223976810029928163985367660454574810355791776190790986452066657865534513227956730691509825918799436463614440279173416344894850725326633538577148122585205167308752973057276618862145933863234510802330883069158113899470998958448466948617760592858108316141021812108938866651474780209854970588696016375426221307479717733648755051957606818200320396547202483880716709016314914660361982143693274270234320204823946691034794980211562878600935254733475333832096321146042595706777599831647862339298187011876379980896131058741796060054084524981509086796132682778560300695328408614839436829911137572019620035266225600547201255342254750324832365986409359024300573588042674997955739409504497197960882007739859459389927600715412601331037520111874710893869358938502114611814120159046116723149941875640885017110248778320767620274869306348293237595880932472452449319212342081800908850712539924996965935911702088504704913208893388488280519224967032540222046071199781839305925136612184947451008077205201118095903303558790060993100850549538332995594071050000751569840243331427667860514466144871807307960230085583283308333278847436810544901538277576578226155338688606239445004293291947379789359604619615299732044529810983986672662893634014308887116403548411034090202545314466023553932011609951850865176252010608956296723593136865688578714487692994293342095824158122793703584608056612652603880217877853583515530684727777591829126348568305172217170892292123423435984957722307936168193172691663990309209001720143073904166275727818327209369813496381297135579653069510059426208984170531953756139433223393582442570033902837469525831579330613055905703009492290943912402502083692134073024818775873997151487305397455986242816971178207678480268770442484959722503853886001494993244105457406933550089264973780965452851151670513697107228971165105145346692261139387478730620627863082893001497447036807351285087623960204495163412424958315805487026530465963021639446398060392316683999959891452703270742436112175627881851763053015493117554343232897302711680559557701605269878596390634229197177465555866263164763333556750317616854589131193805652517646144761068387960208357614060591490460886565159596965811312179938633907949618498914639997912995851325093907935170511530247949420976071796743540882504687496450716183336973274058783225821308212762899772090348428914170845874674125408215233693745889427384609376154947566379950408037736826797518411398839056692563622524977596761279680882563796103606620697639397394517254101713868979444861705196607589426613493259775242022947749345121312894507152570517465901963933673309007337511940071020374599589519470918579565651376158290884718290032192440343024340972232884209268495215501659416314395154184185445995950731855784774025071779489448625696196611118602179980645991833802657262487596754341274833407020104199920160447203085321836628002756415755322179959485531270757343775111505495324547037494458302992230146045139639690668985997870052173576044282790690181471843061711943252653013766313807387635049104939865627244610098815457500466530123668657815739863057606345371581083832112998154400626256682143500618678873100377566019921473662851422945313753657779865087635636509270488977716559550558592241846161682704172682784903721551605315130029507106897878142493074431581839396230182113444306451760836337977377887439548319916672487973272987934346239039841498465859172628947699891229993948431745907498852806310810685737114276947092279423859855264485054869160864108364384206111025259070019231439028945908976789260832220309233189948468557422101299844845549697697198606721520220838772228351576735406926615335464204159965664249639256160803482939990436274432192947228106512800441519094595545120891121719878894148868100328560183479645103381452749732286614815419338001112219757075102109836386707900213435653258715170375209861081955003633164108987526590661461961849879793143426450467287331344788910576187550058269893354440686045246942023027192672984884618299960249729162072493268553498231547487249000077121121527371660689791056487579111279725719661915381373280397831736425593677299741138417428664704635904089761152903928928236820000311024174598768116680660461903598369854117386076662999488185419605392136225413256519405571401569516185037279342962347206569723052281584537150421144116187298025808506611505466020614868131110973236190054804122979592771851796280668569424033804753645859385519591985679830351549276003751616665253412302291982982738781682312583182450560176022844320252548627384513393324230912811890839956134493470094613546815688498285577467492786954855484195603000579920288264956570916659042541543378780108110813147347190499003432020190178930798922013249436855517733702210601346052939638294578085793954766189533660988883971659401851878505821246003278491938177689769847511519008020031868612212962953611228947652682978018593331512915030162132793996014180791375549101925663833500961804241849865816511564236500309097925785118053720240937790880985667962499286336936348751894304549501041218654627928586543405196271709847742745019183620723155614356423378582593341056734232694416682281950153959417515100475097937447466609804798948619362177535363158400423458736072805119015832898744656104506908494242524239148408534540386399596714646240857734862306861310357514480428124130324982262566249624201123557916804871224060785338342442787671173879288846947141356710286622081380300317743342935387210772027736780534282052613078197823941160003026257477660979249632269524687154551962633598406649804246963275016244513554238648043162112238931833062257279490493768372884960492238253084908099637955373389279067549322694809683617679255359973586596249617193361099742552243544984759864935940831198411321060738529802605037324562905363316689089499459554829777341081917398829479991938578290744241279581244018329962015468155566201870567589659104312636465992777911967118104486811212904325604679292492429548097547570136565301066051002133716823363042504789456329028441850338598330757328374923980901883447837142732345668764703327073297468180874710991151484683956890861371873676907995271174990364685407266945516344847918888737259669778349153375743350789222887190698804193348844401386979488179577586446321916147225225448318795386329069573109110400929202806220569090921267496628792554619381003447648312136465150249466980469839549159079084043749572469813599600144971412667844625182299853621463928784653827526646850084445970446846188590363689279236399534661189193040655569770495766215679886209517389854787533496574582241371936217344471912802656247602417145078666696172845351234936024753324387380299509879581988754053122086641378641505835610538709349858569617513011053051179166632227280332020426193210114608821004893411523233413287929719744649729014452070173351716138800053263960040502367919587551845089745984371793608199802173919524162825806297570045019015048749813546614771808090594934740541093515440180992695339022332356527557494438778771506822080005985894525363017718549861914592756557775574225173040325455733002056760689962865017250765950099361004480319210241798319982124540118698414822369097477771580534638093737086722241642686702890931162478255916361842687493048274457012956684854210471207659447835821169203317998130515540292023407411513907728903073348686108842658916967635235779078063390396584895126341531116482849406859017837751417281310003440224838289304900703528950536228410181427418673260760443017542229049590763068545882901640301968410502955108216806641697105563623361371496597349094660707598533851748401118300281143623936542630320879948487416921911862673630158093649839285091224923405817894578908789014391720511553137494368237431111697306624685210597632613697987870488561042933850595515605752034260458025084493724888902405883707858699920558916040108747089948762310250574011615882723169862727226032032546710587293049472856834624757823258633546725571857454210911234529540948038420442948501691219981984760811281432751855106248982388881312428634532045883858648867558956451460283046523860556461565112565372204587214903400110284289020168970468496187717416949463340559883080468893696651471374533554914581308436839076873678682257196488989103721269156662808574015682073274963853549529215012438285888745440198408699655293882209995852512215713563937920789425341384045995692063998664498595439501953191708064230625229846529348569411122972711613513846767603079590662767365563055587177939315532071821849388087020891733316421481652007118885644606608415783220851387965366944741881308315604431911330741359082674422398345586558458438807499776727831289297387770824113852517572508711409532801856472651238312129110485918379686319613622335678148281764754432967156650451192449327908130183233615679310508145963252126483885492977995208110321902609367489844766739100340569599159548804115268378510152059390508588095869382579784822081011619321711491391399759044149556874925517999120349415520420183583943101219910381359875496949516670706222815067277951161874645375716194693993849288098217523276886555133276121085944021855474978131595920053669428777096181154965759102088312710143511167163048177569397309019596222115175536918663372489645429064234356601266036892975397082243097448874618209990895163885545270003196144303961170046634705603388167020228382508979989788321849262023240619953714758365466448211462584394790209677442686707529497396337796481453144003022926498085641458716614946074752078903720454122250769930849062929732834729183709656826390424232894664387076735855360032726691533512464485123306747593770051041397081358639383202613750096315187369254774458562101158660002164523251183628163224009541607845414139523032866757345874551681382502005981151696701000461718494010901767731593949661583514081860904948463828600325679665020114519537489965769804877810682499453268902005968321155212490322318387277516006963895931504463383763798811279935450325309773623414142872101197115399052885260409240354714198659550247989205680384581745739891819349089135310432275000495168099333699038879580630600232325322625830705507153817199258535537854566341504547917950222912382071734650178192332271966730691570198810751645435390017380562632020201389217542277328650778666486967344134770361248743047274607737145013517540135403908713457040806222725571657161082694248043014615067756424125274318086692712298399298746819644934340870041985893381272904496662846605241378451235242349786989265963659699209359836065969508836340823766630298339657647085185082976172126442840736499189963774808354798184627329477804867186282256070373166679988013485249715933167410362317776285732785127494427006477821109996757439714344207665726739898550713388702958799689970190687258926714772992852965893356289433723994994842531644173330105597569224110722744133860392973671106322654821958074284450821329548414331883801797631536815051770734798894016929652880156751761408284293503542663653933106411680029277428349017848050425590332071155725871519618554933656246419877438360016410402737692043487528636514393687667521474216370199419189470521588948659414561808575941788386083292332990341049822946525974744948006259690577570428713667636522167668066628423050933291513502195541654403262837935141514136291516529584919787845914401048209307032402566844139036931952652012359574391801375500310133655472007672843267234347675885045079171007495625395864754446590773138682693292737177497266114412672491180546637719902729691680830528150959673771119353074902858425805417605164334621129402791648828469547497742640650184513491953338240953487317828620937660431466063569476778825123519250111457327025601425085995682650446466822212643930479229199290820891936287168036848314063385450843257072452020765113628870457710696643914523062302911630538695491649609154140164304128048139318862316974712725648362431274231184891757030633944866035988216144556989758994167098396822748870274961055358908338916566619780174954904980519243165899540511113507463231248367458684111800345166539731181020194392872896694210748681961931695487756924802083209514348547185904281924557034185493688706281879741175738068388283115743462642733325298020051153581587625928486719592233020219142943292644440571045064904927996673949432385281147442755531862128534797229653338911011441322192917119497056418232953193952953358917736519284992240556277395774140799567566974960958997689321018340840605023266650188747995446124586195466808016220780532006851754699238668294846618730962944036552366122828066614249396729894859337486399177420534911138446666215218365947070583964261276803374889041860946136633758198225374941478058195803879604564001379903445723679603521545999315589549292948524801578886553873926516793268841978166028922895038379482483038605538555850788353043624678147412506043362287077487471154315219611496498435822025035031339760261296175035205096414408701811334895925679325206382341555909204165010490485398380274271843683476833124094059012798256037477035573504904585713782412388921282768891031442755287347681864498587849208680509231555955690944784271150482350415787337606720509999739823382562388803867343062245340932625001077826021158925226249736363653483210835911253795700854065650750954273266440299628932985175744154014881292777589848012115435866480235777767837169271993467516408536663736671780190887901381235202250108938479802606368790468299201673731251085213379689436354155878889243633018339888866838237287673775366997210752174364141061948397921133350726181993479502875772923287420167647044221126686000698638336998038211865211754734452967077599533214866264996195334196240857979354571279939811245061330391098990930487701046575877269864443143459233485459206393265252310288700650879309278357888403178397377619336928243731067049498875765042920398378095628299489283532657980321394821835654952673762299310593095847740319134134275028819962003199530065579730890070590070695000747571139815226118872309065166575811095292278903359131975643327033481480573115123964490861640567251347974289016667076917250128496156973911879585124065355783120218496831495183319299727626520463789961211530607881823608714334387756645633471978195469845215174825391873394178977377009211650522278922958038005309517303559862443730669095738136489022870836850267920283527334532647559492107715256722314071104746387982642000479982305039835695623392577322722311787691983106147630294126626097410030586320633528629459835317911735495024216138021550807484111416617392745126039628114396481865364415983198987089367692111250274628125999757712193821297796248452025654329643236639578967181230182544707121457324988824443845012774071372997977099919107473391775069894408880339189023098241261681656587585611944815465084230791145284842004415006404203428242671750165337886898052899943953053235373486728392876910249974857794497495108166894615243426514862390034436734401678160747378587094732341606101423511209290460326744475464703755871401687872097285868321793987406421640338897791222722264297955588016103844595381332318044503846326552296938171480625895665510921556426231618348553745520963820536428508584276302443159947373925936112840917461369771892670334460732518713767522245023903376164493395390697059172365164287746993736832272057683896666418663715585913171501600166929907515768026531690427017131429822812737608286451320016107819141356159184561201626048674844187515902624923057807703665104848766683163243091130096750593813078725765472226294265118270595692533680802405848922214778752691689926682225724264544001284746927805199485392970088487530304365815095066740832207674816284337583768962108250428386484736987147484834363021080095760102546559543704917683232043565333661383370745443408382017089953046860505002131108506145912280584246494080248551929732838190381566955445964410163636915325258859330368957744643804428526490313276440308689045750193864607164242309695609424667155314172524632000422282486939339460091045997068255862513898802472787788620546687242490980220311269079340618543910744605906446414028445165850328228311484015324903941840566523802109248423814085846328306086967319264221930713902484722214037898183146957812076763415243000831241908741199520945970509350692163554510543943324207430976973497704378199483721088302387382975942777804111083537560344335882924261013073555358614391533793587428629376792489542470374128038496164499880166243006841008089346027300430112739094671139968053583497461571228139044273200128347739097922440084561366883972788475599764893428553501791151341442005971566266326290286923198138712784028323615266988123854593779456194291218342098407256009663973354995328000725527739503053032972238834233578411199934232816203586464320249536886846584173584511765779727402785388573723491734883452404586559276408734172199872993751911322723415056195586105914932209867818366153641971894507994869117260361505110066703194851295519650103380046457356182336605903671554086295743747892378666325356249166940107004225506675129214864193722680523224095244954221924136124427537590600036101995075491936598156328838183310388800444951819748006324163821491597781422541616127945083384092387365439564573188534561136213817326989098555174760421359216091212852758167860873404467276524857438924284760846805239029872114390501696214691451833406388482191051165271367288531452194805647930157636483988750124872552041178691158976098666362599620829510949034560354690234965127999930672487868791829624950844250108533291598779597991861377681996179126665377126815569790539030369155213282353216169846939819300933504839341058870285637410738650209779861359185394336075082235822562550039708651090088288263373454636660959788478576790818397675673506370895219251200813539621514922790412024498703537238041638965791315789834255139169491550332513234588100169689908761996151326148097568664523178957912689046417528836344088716689985755751171293589920545178845430275129008619490115422961952920380837221309761105012841853249252318233007631983044644915956067768166005609052537424922728794535506253664115767223748878707872067759245783879054399240294676687093816013437525373551307589256579701693997565849766407139580081597011921895840935518923983713448378049761419254477316325434702006312488957900380178616759674751528983690216909482839992203609804105049397239009202935573574247259568695542573595836286275656377106327395980903665973022820999843403234100988769558005892594120355170207613304319571956613585975621136761869699986927755411124714118222605172097589772590039888867158412042340401327594292596441633620700363284383691645860019201931334895458187921203605661631324693892288705338001101563772874581418735840662484627980462093065770467060580655426941699713955728604928364178863367463763093722172806767957211825928158193009491934137250751938494983010503148666294534083271804540695034967658840105429414401154217104394751349940767072028848771071633152301400345222099541239193823231717129115390224997428136843541315520130433715300252891042030811390635530467916939669789883737745725486960276587304722660904497151400101159279533375712698397866514582438979245400186310095119654496871105188732654602198524407173834846059789111624929766067160035697361823917676477515478535359950170795571929243164901955644634157890606967556664700984723652567970589396975269981857982288290393296004195222688506874453306643140691727174237373239793910465546776803630998980014985031982617006863234097167905808265424235417437085487636103483909801149384486937321340194982073047340077530008688536688622845729963524561807298002974732759092166651162067544031328565480219026054303221995699457715667252818276800183749855822395698905037158674168108666621329512965741523922666878346739802189813038052214190020569758642187740628809513224460064121483860448005213837171958725690888057820692823357348193466396259868100321878088933822039980904553574452660931893117700532322039209003961679000777868853119147475407713537547039889561825565801444606616407975173825603663862704293379245858515302847452112777990045078136818212643347128630100952035924956954732544077898040811506062898995395260644134443412374239534488853289591534261346472950894580903474237780564789901654473720555521384455117344129826715105744581554099921685028086058722706265323431282841888993209099923376601075743187549567782406915458503740252028183818839521669768294882792493112358575314481105214920495984362679444485903786618069384280613159539735507590154419513481806942118684313369744475258912308641645459542567610206912159235332813645854714022220512497766142362645677036486751933727766745282483207874172938208856746414894097314105529842213231215036871138283883852039500020724389664714090917281330052657104431771765538777224300086370654868893282131077865974581840875166571854628825280162090106751523513711560878118261905425384087540525508233951262012160840214655851493536449769530687863714230308347101264790578786704511790087264284931242584747086712925353270548601178091163894803542464505886390870327545381861522612345838743863617459684914282884733248889863453076625799526288210075391001284377797639137805823359588921020068668392864154525299339252089716606947503907111625490614331172057073493476261049400561301440172717547576986149214109786474028410559603283386192071158359635296153415967549313136647334841315714967828323462434813681799011343356883282771365209336394650223134664567685509510781740892492372732694943569262790147996089654844016139279707235828126202537247548822372850969257195166388689713747451415039112000310640273082819305174585044594407119144975774751991600038753445302445086276177157127884809533225356462765588567816337744298644126943627335462122141063255458827925591550476887167629612772745775909336584470261638323239348800490718325312658436672018660353103272818960221483171003945664657250581709130176894068864549915899222322285854426561991397597730078448027063311887751569085530920777401954509296026809323585074328728442419454533570770932516469521632608379550198563031418208415721792711203419160929340777198194879985334073976045929263746737560029825214930227220915690663790448092835353668653775651688483853993905986475183602292999650520287322658413855846960322209141244614427336674901926113148969500788231700047308982914198559195329530139296153508274836270128702900453804531755451319461500535585599378053331050338191559248654663611183958518462704322756762409014839463895998296145721658619116606560367189633962766632395532570561251260229005863929842584980045496080730289532190304860537568798207590927323744472771993800578549589340886924779325993240657419118411559136286915433230417731452285140502206339481880887369163901931028628402130105780697794798963163047492660904667915470739025143063182612971568767439675198420284280233228634438496276364301797119740258532273006696521416471321876631747412482406288680540987325149970193999367201197732598193436049733743539358647028014296851227414040214500271265436142931285801955355888658468035971985308857928873965477065008530231882663482386038758888501224754344369201736743223446002709878059033210095277688852402108518119883645127537649112078675232598836267189729003857868995919533306459846440326529156569858346743407788869769644315693597761691096804934169187786279037850238365840314944107854672721283778346135484794963916275175016533644082467957704255940575449802728048592652056042253840189156051809025651831148708163366649006974125031020814940719238507044710866977984663830630193483996395039583565656146551188301808664437348884872138160224170797046863653938348976727722817882032400805895948274874539665523261163856292659006672388286579190552670461048557027088132966828208021074695623488756533349825400951814737307252745159881770339756938948593582544609359282763114385558097864717686480678974917806119682500034293834388475781697462463204056755417817774512476787005154492405741675185707037080756075223331768496714017082550648240216152131894919289237360358086696854669872381926432944623058246243100030767898443573012191369370858918700582077270511459147362170707003126202846597857084935049480616818378859453673226929009271929368344205939601233100555246576548378769955822180362662852657175134353657641080533858136682324993396819344372905427067686423937853699564740783850617306614896488749351712768446555182860064290178018649114865604068967927302399513948371405572422658349529182852964418213245849863033130267577939613100767448727107011259072669710880910779645582257166879053698406607131280983913934734904463548884605933772546135005301133965483569786606090108632723104134016103146101522630605256396694582045838182890968694754776138914868135550740197446857497944102214924106896790476663322099296963433759865023275728513253719162799812659260380569427334435548737620288289907662099626838765083020632326696692516805744154219675668990655790204100166551577935518440666238708225727628360421032201209720014839602845197578629917021258884533680431578165134751994135019222277727976983882770051330799444483422316168903738395097251371178282742683326134922104068268228564851871595910405459909138975321118276572586319437946471130899651051048250762933137437278108027896222502367674854770932012669728437977664639647331818397360065306215169430748221605877190970810683370028841508317184729830792122547478881710621030897566249300797352033461536103457496113630004319865508233553386495090663177171677060372961032157250396231525129641721229717409275090112440332016076672903672832784677308508642573067822907545449284381035453460395913915767480233242842720943808611549581739894133211855873216326207612546536872744439764313170723751718597258462672676473672270354421840084190827332308263579132490732684470630824595846912320706659873019695080528888696010078020514028484678196014707267790140245865206334417221905508948708864111196688156228306398670435881959253244040058248965851143453850302651126898847140626678796499975160555680148628279762704590928577087427713500862144527873136760470283446665197972845071794213008047727015009028698923387851660154756873201792688268898041197803914774254275867732294255525925598031063363788120861959512432508712081819668878949371043745133184638585509478453110159094046981024120223849821632083154878426681119243227178143226444863422628609622395485981320655997879302861115014527292090501493174597502188829290322630253922384237675313484079617082132202310880300663927875143568360498344416039705543635648052585479982949456367761304599099491226564807047760908479544094771121429342271541575483793918999663682146896938139693233946997001019036126132435505227543103513839741131627162957307391018727752739001244896778148780374929527813829073755082113308796953986904977648828862680582143464940075581669245822126162614909337784148802311416441368605607403140975802588324750263155280779531786653264698126137613480149837010347738724283324706971018104554623560007244370607882122474947478251231685979351773507744150077519294709858236474185794610552800785999470192747828178833891804299689102258785930038675622076249173786382086666947494916048887772766941495396821839377219589654264407415340678295124750007908248769736824262940374526745509195266705437562966300031010399196797945623436732462470842507799160830474455725283905284501503007578773106770269126720669405945894741572469846686791669674439681372290811479024955103168117768407269408272435959341086939485190552788613198788283702289780854487304519508788561732940724655750555545183039410463591916086890617281171832241418400558768422972623271302862649144510984405939366599554028698677698832237461620997060100855996960812326235975177136151576752637772854712269109570254142808956989764263574763109298066992553717142872223851724639082873643899357766802870740764635035176727129447126758795282620570861392190067157174271905217021270186699981864674931418089323524041759015879948284464862818770128082089866465529802570624557400822385144025876890098593694312149765071708714465858373509343536194177062288650734886471884641883675108328160400170961061538744835513444906029526767585423382997404065205040637956317432293394399875296583189334851747287585718901740643503702588637477580893784779051147701369880410678820725981438057943165884733312913715558479424955019751498490116712166412241015251167285796353175948332919982853360951611730389531332719388630674505468304589051705098051545585100069359525158771594178070685220452977301644539028745027352032899424598039028948402241637759262778446564616141427712339539698832646347267782975544563206558647486895925454134438823335878717255599726576227870886262931779323243016686235408092304265461284988772648594876171499161740141930714261063255818568157910083100809369113879245332734998169031477088822803172221298946321145988307331050557825984559138772494900365368622738029872048741362276125926917780787957148795981560596528934118811411905147479789636468223279012249435340014243637159588824206470901565067975155130260702378949732924045524173879519912641322785569338524172372441516961643563484207011419718676848246911976406914823261334969753341092460405359263521453968254716123633204928223904498673189747886386676978280071194105089307173391043635541039667814136528152603326970976292438839620867706457387920229589063435703794329563650443410770134931813557607406524530665252652216045674694287334997636032535232748054450143837945327559454971017417295616494849311369028264410602861778447785816084366969251104675644039157166458499928833931361807666656968137883006935467537702895638316670164530400345322763954705506055020778217029608413120996165948281048501505712602730696766346019785469115763610181155512031133555196421310642623965230115619235124453449487143740755750675018430635013186504920298017955278430432248749775273303975882686319687945264843906268560478611921665476335996072703912404233702645034252012002759887411728304188339802552793445746338643643416565970734879468596530424662724110310358302425393173727642780280551149681054313841950585524182784603970074614678183649229552652905877725837510165260613266047380951038359197999884177728858258498843604470712812474135780713937921861282643790545850153027608991108754046505536077705290840781313904767026626655493479777671246442939067896083700858956146856906115830544032608880799867689600232140484854821434236018592798936162420599746503990463072234735809174514064093947979438658096688734272570337129988215354164276155847357187347496834125017376597409603655613615182443051082714395323065633687547997584859932665232244629019215668925725792905786743624831215190665857089284767876627546986552947713506639933791079857974960310034245519163844664607861990129765414339173956637306927360091398931266698557225228035513929030327582387837014528448052716324693672154365147659455911228068969113533635539214254001265547922777683015087682923828815534169974293346794129790988461566167165332762025015160683184832449868416890713926472914177018436814350891506598298850923387127477711163507519622463088734050022070333583958038830129137887039448190564583071908985615444470626428228627651887053852319215185558464106165646815184612725777048261492589596911882712369305396838400704732955408223103631548491955533095681134065466042664498960494450816392014198253745036279196059831488260537499341202545726079545094390317507241675365620274569983412343100125901327490147861949938907851822413925008155510674454179083189639585447565651701623827853229457028851797648571407638868780293334739828280896344567399750069088415731905700789579052387802755062914710976228377754134824683391652353181792523171171099160849360515356899147339457000894869313575966316468452277445145000562620197947780002192819112159576516010367211959684988220753025796208208437401455832271379147801724424369812403857192637645642946266384369233088190290821319016924473538726742833867046371823641427395323727850238834200175293046367448679414353220757910734091613029229512751525567864571885412980497998384302760829071159267048994494424544743539005044231550594351229437061567088465105895160483451124872943721234312515931769688055933017350551712338322656916795061426320186281252466063454571097112406593936772642976032750198266081028094025799355043005701737836045103809485979823565979588359846602838926204540010807012437501833122448603106171819705775870751640726122297800539747096326579843185403579895153475499763238144627994265476147957484500187546640925447251450555295783034769529421999470012209336723552263229340445907920562734906805035897532611876858303848268362600866013698703975945432612558500158497211951751595342451327662010080199123723338438333460499576908648654196749979886889516325065898111891702914842964179072170478005368610264708610722774319706688206602043446452611011701047532985733351436457930965531512425437225212998570942607802205204395037563118454539973896148347662738756649172145845815159683691603616797610232828347721591576952097083089004785254532393324500133426798640265425336064923927200732782605696774477130796458756506464091778245465732953807953942676481390581240244984928407465559519801141916044692984807369384148611479644839816739338333015304730029188578172626929046430451956194434958657529989760828480987790976947956264038766696047164834988500900961634103251483276500038410654569780345930566923607899036458101456725600091719601930072694119961545048096017710441182249431611830787090337613599279518925950985751262899143565729545717556936966577826079368715888710806415766764390031818237449496553199341457538366780786092373371448992676946077435630659399053977984659630561606090223292335304534562798214300620186156509853529635285798685553762239233844039910117328393719819358062782992274362054701156515166516100814960875286201039893276482149792239927993078797723688605275885441872477566318581859271737660692444777037917021675411261732995718003596987557893976488004556036663834379436589453863927321883705764108444787930818056858457555190018426789647553457917786617055155296442381213878925844100610480528160367890925143709313880877585922144049382414822757868886687955105227137648554990978158255665053000996946039076793267484818347629425032465401558727017093544643564952467535172837583995101226259297474078585466359929158563687410988055188030616280981317952023560073885365491412944526912296042150850245526502990739322074255753839231754153782712052364202154501092795370613518487496270634292240955464969648055288816684918645500824484466723853737810723890738218820770648063670490440261639151618426708221969175419358019442518346789582881505101672022713529746329077825787510340918454034894179526859431904260882159138597060172580182387444422001109151593795315864139243674429401118370897642164751313305359913290902874438706990759047530611863942530891214594859662098033075972847163300752869824455478193636071325697386470667318615899792685938131676251412761461319033610394220766444404406369349497093166144717030863273699713864979352157417319823102202733011644597668557274162085844093883582236218889153505097547014536266471073391624129213112555200492825560642867104371443515376647493580151050145127286454840985332927005616102094669224110008736712915708025158404589392093980515517061547486840597444076015649387335374403610142701744489327455927109059318683206878376157924564735729946346768952775356886628442231767769621146694558563713414884084270427083305761548619431296404280809069852126148700256705510561964642276425894557540916806642085172175089000218442073189441847419087396093249775647250400613861308160525186189262997691002226827344037001802882262189782160718135302478437117451864623460117108591149564605350156806605468554074477705014281713764733149171365436877608790036302378082677032144480964667071519461198190810370083951836832754202717449672833923235093954132537978388330467519725888581047282530058142271396957241254132629771160408220362596441600044793286362781999236358624171787604001591586365122260515025768569516877201937316236228948596057919560377214855707105674226209015182151677759365619877371072810768270924493325403402198258447887590370625807635457582749552984391838413342815775996133895598720525719809378319256221847592103446139282160090275436595468492154110494145533719949365175772378734942491268108541010822965456986345980764893382716792013055470370067304405633543726231774977723835268326186559118517370144987841514508089594806853087156143954191993674857621438804646868697606192296253321008324726380202257104399417038590136123600650532895824732081029612248440977893682132620043716108916372387181387728103334009808301401143763497773652707878124772633236932353158601695070770755605310877163931043816500155645204020803963610486760885922383506474600221032789236609670174375727531471943787012650571060498228601659622171523464858372725903940012907634512965236168955745395344980565716406938711825053820912208390597879902885997268985605527345727942447953450528660325269418652238166677652409202419930747078043369320970529512562246320775207176621713278557250187339809342031145499686696195268083834059604904468610405200068905418402948486333687096710369052411144249080476279323274310684529452450182164213864652062462182922808313650579900864490930566247694198226217077157702694256420454304370697311872798186094898245903293186091903307865280728377034433505037050152953770095484136693805231544244430612399855548524363719494862918375590346545352568444217234736485788693404961984618220950118498271901429121531395644136914229927155274783127206405513619104375013424868458855074067475081935927380378997230493124448184483258409026198288703539697610347911700768029321646895590363174368757791722874160262395843188601267267669445319520185729808496512137488657744008696294161431043565132107809098035171597161168900187669956876528599970641518905159536724008021879268501266060065758548308971276440106007840091632685524777890545920416718957718762419502524694206513808102787793268685421174550809716998464688298809824119933573096734014110386022690729071096119258666534329291379344817232916970908680951367867904787741518634423015296024411400485632780107239476315738324446819563797022112763003443018184010358440144446201119915279415653870643995329243431487285249212150014628388601094227008419855455048152626293103840988971474670576366013416871324101505052816436180303686742681354134967123866761166661680461477811926978328055527737992190750505714482164535592653123663564245186223438933438529915525707933223810013763117369609246414894157550622861592611492441504852631439478597222153796240158555674180556872870589578420701099823059245547005614729840907082542472652458347268672778365594966586387590087915598460172850632191006326017409439653373069019125597797133890137908478409495470223749596094464588336863456376451729781863962649493110920421511740878539134261767094794111587545619387733954881881146676473057005241213238414891836574404251267476371528301693249140354081170509307167071048810297380332569433253966011933659577141595513165252423973282685082030064240192043667393314962656803988752852973087614218670011110636918878220493116471514565670646038257875270718260107334566439367410800005020261465894493886132686549330874954613292737629823036712920547085485531233138563889889553245224878126919893099846537341733258893475488035612593645293369546815827087239763285629455148310961039964914194593362012651863124653897293090708338822680048430875774059018387173638325775857993973998407425572888011727158146940058268775394532633257221184981410710811775880251046471713265834457101926177545646281763616103073872643489100622397201473126651569106397012307082613277576663748322568669045794237335612457831671482913321066366154684711372758749044275690395677425846294419178776030946152352536178440844221530339946745469609870511303531675120024467502211779564579284015386858177565126349713337591309818019631722509369890446648710928102580593075286383717161309156371765947401947434568493669715304224511782788618227077245982487830907449760072425960572424927438633225232893107725081759245425512524431311244467879376042961905593858563729699038079766418582547631335366805367637458934469146708102233431397704743345990862528573699643832479422523406603717508331332140555047915987981018585528287699649895273033007472827384398528942652856197509273269234830709603668723809011601676006728081650798076897820782695462076048095005766782260746445392489626145144521060422674432856830958490304544302506220213301521427492228667410704801482800734860075149308650513246148373513975052066789480181382593401417502316680458359414405281603504055022262934274597470538000602756342992492254102422011542508618373042640955716460004577861775161554586961080697055838522408716138681939783344690706084916416334625957303174290327571282382185096106715439873277338334462396815986842857864654366901232322259684921083218431926739576313035814837296453991209113744466132763799778208538775212699644541401478812781911849137784507681023077812425241575068474895277630148424490519261189915367861391471454673011142460534886397009708310690862047378530730711939563042182601376666631266328781627836636681964324282678966132048353078917627925987020668099344097404058791775182799651838494116044952313451886437055915452390288951798985070780814352896113036195964174557502593256785885165354945407196264282735335482872327988701202436263376369255907720680354942535117454505130754324191752819921603498711831973035029063324455493866673982599056556500606486045469439186371497730421118650406459599407478653556681636940141700567701979429585064281663672275302762968887263190705808612420958844126951853736499576230454977471528561986531231476830054488210901366334136581713312147509822767014661311329268678870957266227869968272774089671863102953293151204424064341146074134984706840316778541555228681743453041534643440366784928196477814344048494113121350073285478788483785046786225209892960947366966769121099613092761240623431015975309472425487977812555114015565668585511514606909971109318342784848591127331992603700648087977384578397317732988556729111962556156949524444780697849494657321905610066075338976412764897301187459297362839197955431153977317850093285532112239931009536957157045118208402773141015316043803559997995466962048722783362133939437224085818627062445469634695574299754298326732515896925939407329306626145624990678025265490371891878441932831675411156036624826827812170242633419494884866066165482072511571263650347712485557708638482315868143335760105107575134031798582394340332540460750015881986508158161956539349004885228710721434188333931959473885302779630293871890129292629070861473256521092962488766207532333409992011247002513657704174526731799943514161463121039902758671992529299378923589673716297386022052234456639446988414614202480092732307413516818942154653478101393778104183314161397887921145504949711955696185617729815546056301898043685536677058935565035944296592939364747072628100148826891440734998756909281341677640670982986310150999499336427679630776988263040475911714805018554002477150641729900376664986105364747958586696257659768856071561577103440810794474593321458626744083741389170376605266898074766279503180626739284816209370624358603432079369076777130071410105673640352306528498790215279506381766295160233015833271706146443168000236463111773535987615848943518176689621947113314729881180666002963272447519915523012782583764897380049303318470756124372224581230749521834435450815193540799880247971607791686832559407212726946365929108064101477409078606225606943886158787311761589689845301085141222149015276662301411726929059493219894718334200825333953733264600401324507360488193628429088811845424234852738339925950664697210649206180975170603475577078257068746832140814260475937422700684139084999473311383133774321544130014001961348953563950377761430753513922020157688856982250978272463078993319026143233415649035279847209835411171939437653871183151050585449669606285564024826266947037033208572596820181446332815680868142682021932099286194299922535452219108861297051977191441150260439434331334122835272429602121666773366987936428727043322034578476940485955914028270903676354421304812809258056512246651530208833004716887218125901350295915167480292033513246787955590523378343399488418969172447542808989536194378351951058090221280313374621630891580367855906267808541307063653300581802249555538548968278752796864093992413339575799012616960964762486303475159656602934671640583987050817497386832513269539430483290772236364729420902943397405194453383785975407203549267327342765605366793497780232639684505119853204856702636858496521387795450015677802010445994873503980964635895889319853106355695876191001366039925744652115238371314993589687273735262702998240667278628421613050799909050217008304705370455619038645093863522080317943440818643164556506597251974398244790724170576757795264640421316188266053701344197082143766356744229592073596506846526716465225475789320990981875824708596360206355134180773590874299122806084206228108268472149363670986924992960314144128984817778842534484613349303691887729695482083453050064920179322735836452263935086998471635838179648429532915354790653498647200243054667433937915006203252996117101423902048864169423866668673536464605907739687731028973320856064510550933790383258631647391719697386918559310785868185867209976522669774814137995228761573591670230037775689824717993175175773938428165340058260765570467468733722551853397366213657398701074759901938370360093499364686786096196833062707771874511853239187038805409996818136661809938078991557519038817685824579614224140116111054494737899336896777389541748575107313789579420287883803760392708102180083376145340561459690910504961714415353185380087551158160856208781139531472771711572045436079586660719486363469818860280766933352558244214312591773522931144086528077064075899125057186363803726748135084518344101346843206493915993862605583730470327007870437383436969296847891918203449446077235154784297573511201350532019238191346756472668623514911795582766565788524685333616318830196908675701172535089290134273504124443742199605809230516425787599260397536253786466266598801690127695937848415929312575952953081761463042436818331274053032090961863538523700186349545645265574100286564717212380233510051556861313595250757323106126416155880068252639230798722253461178576475402625721225475575573849119528429109158418269718425296441643149697502136825464559812345386301928014275983941892922258202249617696878486426717977400858354987658841762166974821609567330574469527247420869223474873953408513185926168341010045532846990306100795351791108413450397008584619463950146926160777163872146972804278487011239145278695526872965133771201851846745461961882033725705405553864082154777607066146360596036569721700988505342897377368776033349807732037363342787887009766976609710307292088231877988829211188064023046234876652851171949427412727061166302553350686110840904037980595541289302440239095251558389725039533169746529134943459911663604870775889058495333513215586535459771019811989208778430836972581207500750837150894010554051605710427207935670221544728252451250969011694209570530663001617417148959468414123665914233121191353750020617475426160673440081930484329894880283095972857327728368664394954529295752243929871055524990651249948618316933706555033115901719978373628826895199674144470447067567710979917558596756398756316736312783107658942149814921384210094570075405856758105931431538269222913410051530465249022996754590579608237072065684653173643787509287822598137740064862303085235081830662995117235439744761818206044574466539186776002971755995360666455473306588651245997812934299729216801308682807833226396189332192539563469112088525870526463115056985250247278965382059469340011783897590550009230175455350521320057901662779478108535830163356485090155711889910805988062377680082678111151591054906795474776723654382620046233955785915802434216277056119924740173247542099995323264977877438834764219878743220907985542943958020004742999581292851337674935961190127175713251194677199264397722096419623485133330798428786780293346306575656026729718450403714995400147748501350011534558200105593075726474911951286547300291906548810822660245173247868558773511161858148330142599857711118734103101379191336329079871156585910699527793301476119059047093506978770643282696391179029940005453006488981609795610994484690802182610810092686111231934569596125384276463671888916386336411499757187023063211711345805738215110865456504247935296843522234256149113726134736250221356040062212893685633910728312416743329928170113546966508291405824785747779490771877187570975723594600084745573820810100969955154413250177395981573434151716626634026490995810500713496630311006267764588296234102406918104030856776214704337624946974564848494448637954648660035903168990535332619592978594957920988996296934388149168293125147537773941336602316840643565962503668861862249976131501670492947155473759240628249782878187446630889720410827751624772913029728716897582757244336682767070653818046001628246092071935477076823643792219573327263096555327894843072572279786249110442810677658497851404211796634417972091605621365147669776652983544332175754533322468754355962041679537553161194131344766659582269045960258775355897726453113612178077316423063996521193112645741244471693617790286836387332854380229122592031089037209084666582090897704571121124093554383057287681907692288149762506624771130258422032686920839748331617374484610335199432212868397864053767191664829031942347304015238887101738111047912709772627331232124089664849530615964241250881259190883059797808260243451182894772186260947641099638781043204378379400962360691935786822047280784646209447194201029039834207069119397133930524591518681829173872554382968031301766809622312052513581035295933373519450084518006182236988338300862173585142227569612205993731396776749207832205680783965283354891288864844312783215366939430894640111316805144796607724062912234173060012744254958114207197737987814542908965289914127292254976677274309391161920613343095921018458220946755083470582207114979636009713396890847572720611769355273817619082489441627077946218382647663569978059112169752446090851592000249821757399369098661120513371354006208039973675463102878557870920531922328149697629543572933882045823991306149205534283811149096552756060553128875326554427556753274575212717766614694973225528207278643075709365786731138326319601234058051880271415449203643783825393530712262639825921091819612928106965555679023530543332798610897440967315968150637806903367922328357590616496852011517641150585599618895781598880152360438629461684941410437500486472706354156013952199575862833152591778081042926388350756670506879667513410505186518238689666037385829530364974547895665382455834162868574131451628447313904323839307861617954152901117325725928686447329019700915212559260744432153022494570740678644773351474694061685936936763012925942754511408178453480056896913852406824595604065583659486701472608702092466819756229362134614996754116837031548194598913472982815790248097956610581605428977385842198500560677745839368124273596274782140900383357816957359873304025608227037684378580507848124575299086963402326214971602635361276603890444798516770187363364468851537555454257847407396052748834214451127344817291672682994112150909165201026311197526410290435148106417549141642478124033161839059731533756330538672853124419980443892271430726453964009918720550805043129218954848387435851451633163701363303594619303813529700194616542100250245525058357305308905374932214701869525735526481397114632619169120628593024033970135778444475709331896248666857477782268041654428071866324206555193336232068817583819227181831331788244418894312529797899211069609797704516643428167699797887167460852949173261871299817819407109463515853532053950252874668541863575019022748964626318893214593976867565960900807605083532089318631457108798874770377854412525680585297722998729330467932174636908832941200067166000052179239686737510139394599555570352638949529205462291499065766729377766708617139609916900316138253189009924651658496948895598318320171455989828558530400434646303007357230604145249701681817676379822251783562930149002991304493404953587517356899108541538986059654151461784890575193783666489381716191435533259166581411784303673021014963471291854475906849631714583428879721684186183126237425607567594420449074111458995907334784778832039005802594457164584968515357332094876169060236174418531605735337785724859204670660058232955343302241589383264229659734112696128084978207566095184682749518524966023008354140040352999588307481679210002310361791998255301727468021380697725184198496481243442080706035512213501048728047062542387605761765765651790767003046137288711750663207996323335295977428239308968219798338990188257292307525926902858795657929307336093729215207011823238536926506431498161939618553830802100609830979133364142560905213957409647669902445829690280821744681905212502350365073068256938277561450651354210389657271118686251043117646623882139145498585641099637206652841418234142945291503578881841533106709337607017410374336111220688454556952073420556663154303169320766699242348679425414618637546748706180209398791082007512583488553420019502786450670245241801576890157750906362185452534929976774767970933891692958515285351097978631716589181134514927414582291794813610926239963044082110638659556008363584912208464310735947078045231247904502045266953511399812000520327134940204139728959258609855584991786423052467430358192710372385004903347167557382153703830056775730166816866266752336201064939035310631062686459565588246132575309081609112973964921915220947293261153490806525174822757752174147715121175218419675443057514846939543739791292017157939838454036412528111688882619667077231453102158364959011381207976095927167152070328616036623805545380612562186097667104465145582217648568865714805874885471711900892036712024036121669301865777816398406658142372320697427240419617201351235169727813361872552230524349636183369886900366312092083559709078929738404266543503360828276637738686016549263300365853521766512125114801960248504708293355334707820831872397024550211254459767643906393891528702192974594035882157945897870010479902435313779453245346014245289308341165566495279476671711208070665647855533678372929534429982146243269558196525622466980090294406373951038456879127354200213813953991215880716780914071428095661878439531244950875193425089023973354706025033191697024589900492162973505754256806463372993403330101068132270942696440006663686737716789117330834684871640458050243254870642972463561344998935007780615197612883265635797639627581858323476429406435448475480666594355339043549888895674557095184674148613299525528412834398285170322604715213268397558351048789554899959854221580064034950270981167336553686652421025718189075725998331676591246310450678554402796581868842373619608882462614388706873936488735132807921155061110598084713151338978278669070299050739831854162170368846401261849816459696976016011015963263092930635853753798182350364639079199498742251754291800742459009968167203229549654213218931749480967750614068194538336686410160160687630125512215833351781982342273265307372638983290194575145355643755109576948002971185240252380337848088992581322647878892923379204066761177315875483436789004377029370091785296476618196949022869881678244260116379907201373322821698400055346383468347588485325464267914387102465723681846200559904824704696962388994892192697879341735933690797722907007347931272844486259202078836410430371369722502353511018465938947472003037261503847816270353877457268213233891020767612947584793322306029970243244834289317949113705397394079789547951762871059624633724194801617669479251488359644989829571585683963589374685659402455682860711199551776997032601278453621857748245124948761007575635640069293785369340448894347842702332471498666985910674904630145093394531595703928199957527800112765030236499641373820885565596796277938007606271654970169376370663349692189096085875292526760343026020587116729204047968986512005977431375599916639265589565362570892270759764685916399555989403764132659620375796323020016195639495415270453650574677493748218803312881302788392511556905377323735394037099990746377721838585213636013269710474747022185739865081267240467176329990593371431313564848194219384014741449282449310333296329303564369936684289055366164925322075898167098929943660756737958365683199420060150706208490925886944344503927341440677423192351887071545481858195353892350148329060721323860720062687216863133987231344753510701205276277386903737098086393274798225787180075410103163137280933987583576162192741512539154352909058890010837806008310250387710872286575142871651134860519662703292125686354208260590223429636536410400173088782922683776566928380323709387420939866673912000024485193018642998548905001565602016877677046666197021903558398100698270610158105362477981615853604325819299750078355165197571335320976192600007461744334944052138226500080758133028226719259380906615943614923366800776094076444732908284918271925001958269385234091723540780034401395168221469327360515777575825258255132423847401798427062028946256655268857795687441431990464264896489600264356785467581815124543902568722801093152177942499126603208227094637787989743205049076512403609109103768743727715328901269653181222213889451711745701526787530421262628406102223279847559203998373571196964335763650041668788966195562821293543867690560525286743597052668013640024970322125703917226334502210792624280370331458207460756515941276575333352651640156287141670714056010852352143250934513025444946361214977925348540746447379360555400008338557302240365226281056034562844117789211273070027418769666999400751158121069529311359920659389587607795544183414165234741359831738794316276699565016604029680866646216548137379860269364045003280222813357050468371969027934940940361381480802179200861268430985548633177723173354414756949559472469377159199533417468421974887442069504104051369986914816363350541103091791014700610743639375564745642379428006792296796434765495081450276654069449187959310520540045917291437291651747756907992438945629299667448803182781362425786747776022118148330766901368728652016613149083151059865367603017351453113643455475989118748209600220563312172170558567704460237730404840575557915851845220021950105205096946489709310036890861945036337724604499418655371269202502655819297119041303645541353253190814575197266176696212110692004853668127284523841934414198396476123801090193545013448038020463061084405182041886118911409149951327572752688176551043747168548718080702595021953501154455609116794466401867560882528197043766973491297267244035244729934534675335104627668604831146897321589089590802013803551517591975789638913394216485718356836760424312929992588293727433708952719218633557411618222608840546070999813438393647829181157301866595278373745931402526474911964472054365804771624415924701071599953825765934081882008393620775196283532050949625440767728355683340589371529113230969771282464161781430017433145904454027968588414759164488844615555657072805506963497384054449146635466539583545105391387017542520891110194238530382875279141717788478333334426312694999588248216623918618808535818461195071767179254113742533862442132143739586277426227608190960019854282202955609060108061829423612805811241632050503485250283267832828177224308202954575947072642500127521452517264612607274116923227061139188661722305560300630761175274835039224412388940410781430983108945109328122158414345986123325594725244099676774529881423246467794226504609942368282202213753002772628105696747682829854469828575904112187105768054586806592427551778353676652273705380720855358491896609012284475768252520187457092347583299312986231451073963787776472648485036538093943966969132456043634768047917644436696247635105417773604707526977157314264103034938730738052368191451358646493628892913353138907221658005593334672162879795700436052424479360761503486297998088326876577047791226834845412447448256407274173077455816299584432261474100231761109050100499004131647848971796195161767569330868491998033218718298444460685474345952964477998099017233194345074690518458903132513081343750486475343768664186863591512429094765920562083006283274729866270991147759871672740507877856665816146511944197284362910200582028137163065734888014698798997658964785099531069178357649563356145825589956032967041976251138860715472011099477159086603176098106677837925238116075432745630692165856409532425245061811572743528407896377228289167151151788921990791438931827188007117431780885831261124927748470358651157949425329404172019512646967763274594571513154372640980735986673548257428602399611808011164199420647558885009655822528908760529462829993656237069824186403393211910620943121426685006331331763114980573571191552127365502629317937165559299506035824752027835266954045297121717226479197766419997137885793515605163066174839697144444380072261706888991776857631444230292685867160678941630871311404593792328561194451746489641628110214848177387910743809765815181098011090515378976184270098915277470270927999843456581013280663193603836683421143534610626342260449576662475644379654487169425142647758017680854832154550298998297147862226444864454231652992252083770684133029020586514488804734049016887446464128365549782325425649053583480453121566214483697214452522765551946644708887413906557319028412642712350452797770025296010971770522307500004069923307448617035883682138939551920961907829262336289351393779867696332218280006674509644773414659023664896324739246351555642115917161391490366490040716068277158944358914793321357680377879131775400505559915650355865108338231786354464417686362858907358646300535899345276881401318411686397046099628419793590477636994575479684863051327359450053877850130043779504302815069555671638367313429998124580202132319665048892001484907296914466564225079992765994696976897302621374112423781978025792091816357034532863711100115784772275457730005354694525839665487818828068575120919157776182568956873624088787857453518805701713119596494570326246288930453021459874360078516772364695059179456268095181238202001181457319672965777039650166789607746532287595849798229572110196427532306137637247831903937973376371735828910637980118595541394778028873819759891413163507911153798630064871824783500559220484138493121426926771560445184196756335162873021181469862170362969489961490798620080783406351089104503933258009786596928407125953768895921665547972610452632173888947931095362105658430678258304544214820446556075006449982168245450089520420561061044073790245587875668208089872223648161997489972515012830402618128479326905219910766856586715144218409111515816869788534510033152483078155099162748015699785806690325950254128107604166773651947278393293824244950165504045203623907253017764882643283851431622495074142025091100001506789184626326935169822888941172040953614299504700030859865219160646527135390724882605193473877283358281304877706137855666951480256390021447450853258099426631828554470675713549418806484528691812890239085025859625901606788969996736321184859589018416887313361940383974613446421802871058327655046790239793826956308974602410110281517266330141327088889530685886680611683435356115463936890234046133946657046531858465398523205825060710001038786193809036682578318746773298193965104108131458982080564527161626486043348847976508584923867269178476766467449094417954181497446365739786027020723993311706927253317351865010417319154983760058142133275097962324007767794092059027369555099312862557906948353979305849251187992085598201424033717152265946520254959498952430838059251876122823175114761404065040641409235084089425321354483660272499440859722420579720101960937334973254077984416013753096809755677585862896264914739690816839924158490719458966106238189076454980082283878220306690015088644690747198008924402652904150207208406350238197059605552588280769847611458186122414292158631316830107514564104644487400434064811344251215802390039604672119999525309891772189153420616851569963571100062019433172123231538165436088212855934872384593735566721571580547174295291248268305034728559223879430136611566734965441656233570409439576010696886044391618246271562158170045886090166340383103229635087452503837843898394270240084533272862541782705784522651160721602082970721533670825867621553517251332672364752386410698641743417992938909658497356895351385252665069111332609395667408827217976202483800138654002390412085968880786999811780864139452111541325336141366325911214238640722397915949777759144994717286195407635636855145558489252465744403096587282322424075961203816495754113376839812109888875037944234851884712736562615388457094891532365861392891028724580641379847568646314973397510779743710585712852617594867749996887303255830122415869245450864965917291666995488008570510373631319408312978437916888865215033425356911132807304711948549878967667152904619582702827756509661969402662637726739676864501615886311307480116587538821386264950320232837352456258659544447423382484006191719780252222868917047268016052570119942303477699551746806135795226874001965481238752669212420691527891666246665040229269431172789011662248514668774599066597574173059142487731118104798230131933471204592735444406839696467672325775432696083272847083709694162149495359987800147359439361622277117732802306772538601153297712325527769937792271593887724343493058404825453384584754822858330442994740240140369949784960673214270771914940285230440525528468430082244299378081309877193589284525546146249215113761379064777966530909819785287965616902157550034097293201633456057937373000462186121985127663811712421085037711671954910052482360006491023244675683740640736716349914143551254227055026980501140725256444661007205673924176013881650561192871797028189002310510909880346888236471470383951419271332148664505728627835637936839933363488023165390026916954774657479574263269175656026524450369907310455723214964798336117787292187843463417022403033224916197719249641282477435337580523136809623341906629526202910618497888055134336640017233771502776388283040020272759646033982641556459151584082396980252213616670536477926465633038265191599010388959384572249548383364834936496741487743828334492542967312226879079937806541198842771995318452975728928015845549831305648561077214157692803795172673267274061054526496260778751030481275865234340312290044964055780959293539131213739332726086419070093665277927139321321278550488977042660655397315525008571526899021121978809757428773981587257481317118251301379722224703971957407913592199011093890452578992851408197521184970996782456852686229840408155855643594397129630611549136428882869335523740751280405409362047912398929610021322256991904547384350409014303736559535035116082124255186985130840366886945975899712757761211929152506007219678104071836779214435862081396017469934683420706141790788176984705729195234216233008429716988702721594008571514149761138712207266915011732593339539305302781157606221459329814006387166500026470108745783303396700693504007530859642669587108924763220383402437398925280366631318340885003800802350483297662732324431448598380425514610801911359732737281408373552736270310924804878980605116649976133910987088801513506004631413594993133315968862154129885917985819489050299205807271848364222651196237012253578610760248149977057953434314165411880643424001298088091519884214048909354778295611703930710960822406053746926899550309421004778774006748187516646295817483248704473660294240850990433088250127727141589313298597369391130521438409273537983761723236569865841477011521186172378427478286863972867479868072987521706934728603895810596335373808757186039011814879140922559878938320659682008142612011529794467449409984947750428328666453430859979625364571646898101829147901505273486202199292562702423335560342816909945619784028751434116367025778104488534461776959292019879746165599374096483405008356469457325365576316572829624611096193922248288309130573092242368152210142091080482113588711323220915951977076546139953593713300244532384986438868675440200840994704381812899754447730232967391827449624318742264683794817984160612245919973315136416707136762408732023920465681321851612956361743243861053418972631148717029814926591241492967445797854817068039717879012006886097499585173289854067960997417864548225307133585445161690397088382378363432926351389920842025727073847186787040733798942742951299618267825357386853382158459839269444283131528836785205679354527879065387201942030213943277884456997987219922015928561647039320434511183660644325564460256890322273278145288138230429914784215519756479481581999860589842907141424168931158883007042086820365214253866036322961230831066310653086199860576604622751745780430349353659892778157779387778193592032800918569660078949559419175893130335046927558654536874280814008172714731486555054276127792079912951125783736536413247411725260299744160592563636977840860885719572012057473156657549322983646516215877958480587342809111214175722669349508900676798584908413978305314289803012522402455546480138206495678708541362303713728900998410029858996528931418166540823729216830793344782903319846672279796463445247594327928110351690573346736770515240342174810372198222289510164534435706063848476710432394784000146843304275073748493971976503270321523423570755898446663979618060281415917061912418660754727073906713967980571472286703364443918973350805000324733388060480319597224370696959903629825574924589514069837270879576231744066973626784707961091940603074335543274585512604787514058809645669809919116586735685277052782574509311927859547333268769243494193895823662749353149012034542925375986117910839349131730342316384622429318070051258149032260925668913629632863773833452454015470079105828439102727911533472249722402974469004138627778266033216651073697107174561247022989613802350151800720654558707707207736253247519277705401627804084350171214996661037670364094368662247639293170706394575943848982662583895203007421893298255384553169499760922727274443469239530119150032157499687587071811807369701143615019089515906649162720342012555384912538786803565336859309958109715485882951243818130921252653041922909175018677544244046877523716396896918174936568906421224316874163823522870826802567494894536893583910571169555989554749259524883677438747016404225396590029623413633328089770830191726911058273925356435944195305790687298093379361860122470811926597649936619610066026202941290619002057389954975011706546316602387515969999917772091155344192391697424975094881446768754203838156988028442921409990581153164926284994936255522322714769909823917659345335822490331914815008728085008822742725605183097748687273119129626004195642789936660995319714527457345931287052065333450204521448053262312493106173632632051619106797051987771537573664289964459887314494179279398784325767200074729043041507082020914297295722448653546162070270513166334223268772786998922411159701170242375754025350329323394419950482814407782183932478653496579838223909495154528664312620111966629665798044894962894953159652985223879757463311527178220226525220848597867399714880068722355732855111081196633506828895926923453205840298994585858985218716635579692543726618415625799969552041700886885887072074142324173904922120447959414122773431248968177469664176497379210552889580016027198763786108814972235180819706166202986090270359719013453170754098120332395808042572161015683218100802645470271748359380498182821931935566905043398033445633671194701196885569694017349195601564409139745633305939738803157052366807850616822676662934246647432279103173779123265684518347267278512752248336888659883147952871622833565099426958759128916513280862935276642570487657566419446351559009232642762771250175025851437755925100020280409310586153553403111325216461220926638259790124869581362872863439253439614909954540958039080760945378043844000480966543555764031513598433273751241857590292545166537405844976871092140540439665013018583791104298260408357462600439583492004433211549304736576165770355728299885607405855128380117641578248195309119649624013007985959420647459220027661107366735254087977688965371724338292897962025529228965495272539422314647477429038852512960571541363844052168520819916186648014723495057308624524609659523747457881365898348680209612758407361628245403247119318049258081438312724253627354931986345744231750249659094637163829603442883404177846620143847732678681255903535312814092244456884998369458508297753613010076528972458987999147439154791146870265148788426850227053620633852176062813523644752448739611884135432752530565902392218377889309555906140193333913972155554795637971388429669504194456327266862369081394695483195859104223551182794411112325270664436045279409833359149922589020760768530049303368523158644345842604945629045442048584270290704968666949607096860139191513428769202574384285184009850262917480456266534079572473713831767520573840292991513769561477144488133043391880490276685511669394984487262578796464182089611757590685295476130628565672021055583227357283501867327539945547168509893530759779257723659769209242904793992652355304720066121991629994206854837463055341920688775360872269129940367227969705514472507623025334149726975436185911653444881503668385699657670157892456147248120295995569928625555757537840631299461610909481311029379255337320832905473110616518980956969954829122627734951996350772871536720841891265893359874136444877215485749077110856843492001719492835204416021212277059371427314945051207404170909040162323895328696984258612947235434803128735336984753492909392534127785310496970521846464946613870318100587268426431646017349583027467036245660755413445243341588424000476714410849064802952251447447468010910212705395969647840132246307523946590764458631662661575471186415642131018365856181656140937085932270364476101069915741112443205140394015987734906685460789397334110694334301889130559903937278194072193659395621560952115209943173318536342072697499660220658544061093260399044990067596745127790658016868240591344180340749827066203781900148592664484053159161226566631839116290004145157528365512134123535763339371949514963279357479761028942005748474975395626231605796939619122934986232770402011729091328650246923862761633064443136432401285704507375113160308455787067357434861245428872432684689680867133174362621986709774679880361074062320821943460803382829187624594636055063703882319028422818172931815992996448056572531688402681444439464545093446868865201640044328004672615995449175664147191069914746250944487295002740706947328000166413527240946299888330736432496206795628252247141480042477842942984720830854533405345213361975313751530564281347607455008660086344017292033560814139479557588679832681884384671676941487920388888739816606607079848840400299391931386583811648061740970909806387189132291570829063366797502753013311846831731713416099284648194628864969029069701293289729079329927623074153508668344998314393124168551928390447079260064851578593495120392483493497006268620799999642875052346583891434249198820441761762668213179133076406470169005242413085831486728628574723204265319849169768282280681107684686588971286121242905723764428967001378890581993643848199094986382863035198538481087565596377543163990426366960527562722151424262500330430401149814883040829450929918179578460350693319115453969061510004573127068119722285425407763656532197911052310048947372939450420455981813692909747898601090744710611991192615933327692249901806330568539707372746371001530010021288411546239424818643323143953593673357620931475536703976693434997545641244496017758502233253826872271004762471919072612600716874155074753535419610998677570853181320276109814459848149428309930988647577951584095615724309645087177076136665688247277755325284855624519778817422485114072212231969505732409622722408796557939539148093107876041523534202911231291139665993085844658842483253598518641780855999436057000018797159825015255089579983783457913649193755338134031606577438492183405041399549540260740201078427846176555490190428744889111513592684285534690672124018095754927823084637018476337049098050665459612511398455780424035006405760321850388783591373980102651003300546999541366595346962013807285712426095121252259449411376018331943318512310292744398634678289071390902870599437299045843055895681499408996406584201046507539039889987617336731317920660187302956390874382063769791180333766948243501007855301586752566476144422693284621839434726759846481028943395984289487661136770721917247481513211109070353290280505695230705461104511050431489706444237638159251818106837183739148034876384958267612344043347544051992773967330219879148396734033652343070593509939817991494569932294106978226205627288926552394305377827732678045458223000355634887778844156219187544236011175272810373790129012153671232342359623616524527280851348411612733224876170374133525383079609344100310455307090425510441305017409085964222053288216778891613000234908163455825503405197005231331631887113925028361834305014397782157376786422377217808532785433473291213519315365053122757746918619684498175404563746857502759196962339839794861507581120864577844635436568805629206571076497025994341274210098708657582762696468222661615301368951470493990714644307241945633254837793720634435099431268396389875918966491731077076000573182011397053850557459398205466719148237918545897449841628153675617908641109589801198817044679347975355883299151904574443911992497733980827805432003774480022278817021094436221199119637944106267445434660765116014083487956058057260780668525033421397610376867206130451878432611371033944282844301462180703857667376073227433771899687747321004314239966231345494864636170136520539221548528481253644143307126115891532942269851167840985754030738738374973725863751886319803427809868214536802251948945334520054463606772332887145481926392865097239182827855823986289233710269977466984733743334627079736782586908767049618386143639360728703408098158072986825526512109545535190615849370259907939346531032974881045571274372573337041323336271599997011379875682451343394322752432886561912203772861071509291203308917010037053592732621125439763748574603701462408873998170492846269270620815213480281604858835659124551404490661142473891942628857877011110608046389970259742657089775116255089271062176689973223054573262222041643520244939075297855918475491788664074949129899419163752179506461052716134726361398998769170730485786162239904566901830357127254179264650922002219060593975611211579832211426778318407902625871805968105390000187213013914697878836101376844063820760811753525811373925005162769840638460723836350778555686755117929843422854062433108328994896446891097225564243227947613397786484354151909788391402278733979860686026083728733266404902703954084358625165498107749344091849832137380805090208857319758592861411024534745466342215677885049191569950965071816135303628508670975403752452358585844147325139742978615530696235727018347015445789364339959843650614506570431229592433221380297593894618673514828205217809528406816132068733197030588361493468750628529475179841812201419520943857403217679202801603770727217751838456861557241673036087086234795156470910078217656153681094962063329201830398857647550774125319311977767865982452901109513415341114588743474588632005864744697569219154415147323968009610500837726338478381221595675602115119822389043641579137160651093828608454017879599593915362056745268166430790927942742824962122723524086325740144233762049053319271377906666960587142924484957191700606472109158519581735659960627594282878622532946439108309820503509237508552419196031189623715261104687426869322502476781972022509344381001976455496699740875788310887919028540757865943182841005847264966591374879375793347276120888664263663269060749486086334517493521931140293516427017470580591832643841477206647957034920210444700471502501028203173022929262343041722978104901113206216089191902620264253247561536403982550542666977609611474755252346228570082368206359112847181741152504176238746146171826475687838605931658094848565869019336234534821099509575269810691241097021815545487197622142948197315406419849469722348913568718957510760037285714150646266455825384814451792615410927142446400247921050415505173407080867105830952784667642614683918892043265738571584562883296020983743507305911531565465240676259050184567764877848154443503271973349858223029268173861115600624432248959719627904301767413497976273936525215987991257829162461180065744497437404337871658744653834482513227914686805369040904252959061236737884873906842658916463820293099163488150371133958146916224349311147117532567886390056074219572407094944704187930772975799179100656892449683374373874294590140933739821955831721230247924366737108412121381369093212490572057093210036496977057062311124362552390262944358106320006885059482307169890680235514788093228719419712722044459889349703708072456526745535905216791204756069441871823237271185818560703360621199837650896825928620867228890142926432087428719789848849371615880451785092963256740459208370405606249848894550745319473130698374426764584216678892389585364217954459653194206501991313248064596927425854962269621272368090451184684451153901935120837243461031933045526830885807674448653342811677828697022236647151609726822293334580438699061096263098556509575911245207649910089663153861370224750374661593586042989748665594543471586117549438107434428701808250081309198721819590439829574086019899606249805402769620140764553533043568070556144811375263185551905935618705228519307832802872107558698660848111663837076706700576475308837426278766771198157789791267619481305535774638605077166323390817179639906145886351989628973058173103849235614975185966868273038913943005853794241360080632677492673243818041694600096679587335487517693992673047687301218111000241304248162901544197511275891005726366447259722368081880528439345157712295250997732902727205983863159600966163673252431914724303019404867641015854273653287798365326825271041566832262334129971424137405574027324670648234773152442564401514271040829418239758938329882453714130607222372635260663913113402630797699727544834048590017120413175766581433343508047194547816493908370814076196890686649669691645498590101401842870160111334591093182167778626867870205321873486393660633940632008451184383396382325027310180832655419098215503624777600243155769128439426907584992512293525138024695899571194450420898301762204813721169041089293115086401142687024647266884511088679672549084848660166328654114674749033589081984731302569322761811228324173020083042733181439702768686296694486083007936738869029530133032442068172711430171912668246254229702978543806494911758268540941660986904099920624811724355054256663224001279240740224778509756278639439961492823087115819399904928386978283552233594501622129692072903099269093595112099408742587685763362194734560426216999456078364807868194424263225422134433496943703342568074232764708608081522746902147836137695428360434684120158720521694244610434345106149475113411496547657320571760895303766191143931074211150521965291605772995530037474666004713975751031835210446431030671357463983986659812484424366010787444615805753271628043339315664340561134987686841661500715485767667533382527905604445706966225837382385962228914462031594595247847269904627655961901086265519194766158510192203562184959654890036442108870594602576140625186748733891905312346035852358619330021245217130228275732477710265996854235038918351012757881401330314751778420941756098564196828016935372833598929026511060225012102469426035314286171472477113396077119284982543508125353071763218394617470864853423341359552475637938374794534544878484978692055262969473196004466552163470212546396895736855217140328601928004591776890823184417959099904084712456062218290218475539569978389679380154884705224945904394043315680436186555751481696337104934375908255527789334058450479412918704424147734258902611167295599590069814808472392851655792990501263568193397591325586058011103419596228211388060163356005451483919204734021541094646605949712869297217679132057525626425420773688944534499444310002704545324251250673780289589706635643399576253425174438490776799490748247039315933340151971934227389438912453135559917713656039846259606059886708979167916017971640456192583634781278380810763832635313528194668514756449301246129777938867920941826051668598567231202845292981336474993144092590332106580168150596712811910294823869211596502928100222706370417138848517332484119623918048204559988042087867672400416731898481498540171299964811359446427105205118295069305927430538079307736622345814398404421813931474629720538671182681988390211817019959838879801704969766807618091303227951390913311905976674352457289509694305670561137100364879898321765681207335553282005911841699776890792773839177589375433269178657642150304486081513905019958685419485265825255039315804512263073328022661238127910278882952772228973321399531689762311381212580132367338169901864403774822593958129448405651581891359281814181833938839477944989554733113408667624198993261226724460299336407362693048215331134701047907772023401442452768097827490648110630846314213101972338390032318171686182710080927690460378981306959910187774200466864872234131769390090093861761800772376087038098797645587496268265149494313970366047557828877390361978919675907862134220874007416747878056237985532292751529728903542898459067948010962229950702435601421964109533119570326784496914844545654566044923513804300858172236781392893742320924404615117048157726234278515229415554839457039371743959389377800393061009396665856684081976689885847273743496856186290924852114226926813227604798125688637560660623053595208393020371186280359147714630418519746201872937920272217208302444080119749920392742036971707198390574012699303017409140589614639052233956163361399775486093904938761812349295182838052698308254105669926668966867464458567783423986678874167593608304240821540144515666596829749841796126307665866258146833236739330019264940073486260369356650968756426567003578303379215865870831393867193321533244757745283183974211155552652853173397915075767666220663017042533646789826977839340877299320133793795297580485843244615785226345924688896405342133735362434259774569641467371487155888289279070079309049966585588201852901397593675946148312599514642840139912203087342642539930116946750030430265077214319735652154221248645279101104697190340760360464331253362364390322726034082174505898280036294804382529155945072332357092235861040037982283402280743573821320447952774283552037377228076006926951849675263965214947863506407647357581725035448673252907313500078983501653231281853532831634684259004023237663715992730781912455830115254199476017208618498757744803898212223504273394546114660520344517785056137251563303113238749201175015233140673035278587377103912774126519350429199748438276346199168059452178414481122973558658773777083612003041155286817684454116834785541398833557187515540604937272831521918245255045396016478845351484330445188463208363883627026384991139702184700871808629336339426548106493965197796958238742340383967811237767777982124180486236220626656818289346996003816434547949932464388809838530436645201040552641312447166136770770419154095714661914648564072199290085949956952690836464703779826177564856480528691629761581441140519263320801374030550439038329760142787483668792331454386779151993549920884137927957537698063677402839417165346328216938938578600089655220098589589765307823449923006351766686292357768379805473313754680948560211489826146152231532100442822375414352323773100310778507766850272968688162704017571648746882858666960180903163411383752580951447289697760925930384494105277810846642120951697829736407981246982587835492949617618194100776741032677178927221080681381819102413330397987544904275038513590193413338620429382726813673676393510249603678089078569926568129135891845993222874232021856307003950202155695813132937139972350375271346178032795449988262475821644504632052843018735012375464687600178639564737060980089014262246687095587314765898060480368659898009922268061333703533322870147010455721771611230747160831751424982693663123187046384781239558332436330920468460783748995981620309528465108893688969449555296301627339646369088692739266802895434648976921434843006347631390947244838023663893683754022384551460229196320321902182542495448328157341861105580282480777952384733696983398073837406753547956836604303700861709127865332987315331797753547098459992676659308429970487730538675208872749988299563795764991630660518414083299865586902420714075324680888981004835055418984236150319389698174140182568504682162011505561685055300337206286714236870286265869729921904961770536788102543271750603012872911065394444623451576359345190042449358808562159398604919152274748556437842252765641281050224581684230528835023535460351943056955513377262132264336128519483743987598326054027709808121029806565587896449478044400417410529134846215183845382936935704608564760030008046538829984103368622757872916806318012617913077492638955216062483181569282974528138103765018765160194418148538209756324924996113080862660447541631554395389019827086151316255385206863813982926707917698958295840220340875862787221320898305882064956834596266867645780203272929512232082238826413375061558554237272993937036512424708246021380778537587450068254348755692187292394140772577761074049270982974331217888392573458863647286228930760621189357516515514217670750456832473556760656176377096861004170611497463511247771567150540756542234418092771449916722312652480780106721115507927630958718403451548567129109727945091634164553788227236168366300656127418525938670073164588135545097924403132751482531186710425135622670759874502638828782911825450584829686854999620733887767715870406672626748579227126471089870279092125776149512336730753610751876690408356672899192722910229183843977574318803264638975797667410904102504460395797962028319624292537689673986503519196267584904416821552993007967083223814146371787291176437251234309433392702002337558575743971914705454620055845848916929440613480656541008107564346865788034048813522983812594437298866513585163391716092878889746727681525448089883741157040027775215639285146120706279562293849418300330095729233500065606931772653296676696972378898965313083581238440559257439154911638587417018775002168155816760238900567199403342179977068397526858507852275857885616657448885096508699897996477505684705494461966406860943972088039405466582739491013796627642095035866178034132622730234919631426215330276528291346286755687548774182503593269805520819405364299311478728449773585425207029741963600740584488061364856867482412905098581484671349232716973900356199521276331293201517091901579387969224400089997403793892359812678152043845883185125683878362010178295062975306340033252824781401707163261170137137487134344835966146429259454901454947458159217584571530836763514578027607189753722367188292451840249885414243132700296519160479243896564244378505272097960599199664788402227386088402200024421714771569705056032906797612535309478697655091103042391352567755400564116643133003725019983201078731578368840824795417669018228885277318395011474883443804123705701632534268446917754967980893901348567494910933272450836875927441913747879643242366128889141050501464575257601210592017733934015728118154720372864316167989639794976053736915763806156983714319972805551744253000742702106642252117952661664191783400772816291183849671326404158336830781992935404856180898523672252857756832896932137307774238642258499203048721596233391180220803192178467586915948418345161584574720551345562830798866028289721312436460195526492751881123358769842381645750735407511785359581963615618871533703629373765123943329667994415678213461672708417077870920398205994873333393515476953073621230809545801313608400190311807576462093830692790076585962573847312019377548664210764763298450376547970439862066188110647691096691301981468084430247033805087238798336287717867110158818165617818616661964448320657377890945385193105848793766479164204820704035806754751484130060850736060872694486421769595931187650023376706930488130072106842853119282738242668620281922790532858243488130166427213433732653283494927726972231881148003664245873852779129727699209805025833394823692263395729138096491531155632130925975719751733641228058587807859620309603825246082916345180409202383369463569507542595143624513277209702108042898890298779119628830742875992462974193116218412461614441677815810286233491930289059351047020145768543214498048163015466638927322566184967187371326030536026233559177553400914452907636881227397941069352640848442131298043466214927044898762011584322940394857641999334501454509965342914577914077961976175592240538843080695233532997596138039001796567334565898710727366242615955175931359227329932137398924313060649732219018556506330540452889464629770210391712847363112363101263809355028141824581996189792880858668493936084848500377897964112061722199616130066499187128144452324653798507984936333127743005794922276484456732338743472960140618580694229588645601291466708127075177729384273778617795914104433283220525786945888853566849156436236827076796901727542428439045492865635311506705247356857926252306134312915374244394346977478398294288369283455262850743012093900568913821701457969693948972147716423400961773213427352385298324082849196635529768811625929080732388184272751039566228130094226517209559461312199003547195756255452045986843672161878519422283129030543694439935088603718181773770452873899047638686915056694247528558728873156123669025262363938903326739488974724993694611162058216920160485888458712641900528776429207645310962980122025524502374129842857021732193314518215035815140029714785158409740052172351512363886029857140896577441071150421031445068738409785787124073683042137534641945025418563842322605807639964487541889485774508884438669442676466313110777677228659819805880735546537526124168395012160616361603616923399015479169326819382986267234225811435680387389999199699446075173598857816777327381461475558578894705693248561651288282084040192517364962009999542967163929132179750305611967231453320986792561150478961419024299235786910669477346554699064901753163755722528130857927265899774631911233792482095953516928209626641174697548402161857419060753658999538350474615921857111662754945873657898172933902519575996422164507758917466400366357280909116934168559676825927541356999890131365688950592497345109252184310315802423728202096238632140895263959991604765767148251701651814020319952195758396171560933014678179763928017286169768754610284769196328235570621294153917005270217623936113027217474120247638881807398171994561779472215484251887265686054009286355103732346988042507770847006132068654189234551934376530802652649992388783369877477017499073156993526278993980494276798505063704126809203217048282053514205496827282735102435715522107052153950457228998321537832851605932506790387139762712592621748378659276023078543336742133725770313470892707828057370813543461354500063948257094593669743704958224646736765079809070368391746594496897713754050373211141798521867322110346030604232979683527413262002328570788577193861821245015769389448260528254286784332161414550944298878849034550523437364241694379251564898069745056237507759416421748605532305772930192599638912182809855106562672777919155723662078343787294539060457364474195505407654434734937124787515731894633969286708304542411333312785845256928322659958163660090831379073070325499760378573122635333718257576802629396943883300977218265574444442404550624286637684361387181393347173316122232604394079421242356755312552730355414253736192595366962986493300294910989329803952417745620845600334868105673142059176098952486418481079763373621943663121260099818668083916165362291097716123958414990912164053076002779962853370167332525845141349908850088891173036023974088806028644546829338095307752873697021879703253865704452172780913778073251443743881163825127209291577399949346615646035749836671197959320346576335375202959462591040491182781428675208555115864315504318664745042004677429391473318248467871610712017990756978485215521375512617607505725087585311913613717789401988816378749346906990161600923688549878563865095459861023285919564188800636406881195199279025194943794264587708925541056591063167424252934470285365421566439758617995145137302449166341769325668224743279715297361566479588663472204675779736829418751082500592048455762164415631863739654491731342417207264134233059564227498532828412951965660803393645378481723395230902878260301643834063434585284173054625875720378809370965902557659819785564925011346404023489133259448159390984709785606937460178028403804119366062610293619943334085438153687970456860008772413221448551564440411594047295672748390852172938157772633391807875142117718933746787443784315945744888296733570568602854487346546281779746616259868777329108815151982796098096932052937916720845275685147361175146930812999495870764546508943138070218817702716902050527286492913335286583794107840427823872191296669863447483130831983810062793253897150231173999529893511130713386540736068057086472537831982504065467854271040193174828699088014926076472931778811524377340993668424734713873406265933059392775145354402486627001366068811723803295859243172923317814813554239644607415040094595344304443351153622855198504869920761126925315708676007076397986508327271863451928545407835792652257753192316001797562517898353926639711379710700999568956826328317427669464371043696295257680910526228729568692142698299347200704847264596945884714029755823938754361956625702932216213558490060275841416841241776710235017211463860598660408597545842389065256698171092293534737620521617902524336961451088167934534436739999792970385656421728346787508067166352110671866728517628845375245112718619856976942487988576176563127002325836110749251365052960541044610630848647670329606308658784716838442327728778702133966572535635307877968865855716608698220183995262424012555415800858720482586715502232434906565000324508575996437898289886520524721927050541873456206975474325856286331135677205001519872324390571136541200713535130129383984252759281721324424162478829217401444650383238736747654633753975910594273953506358853691671006043912416410057000224014275579967100464757542937702025333824949511626135706780145888773754225422758636961402805036760192100480883067144575319600455738516560748362843826440205281571754038638410165489593586244351765109467074297808781900810120269986488024931434914644731392243341194404881566644425159571123280782476057027753241502828041489867771427268732063754693946842352547846986753087759396186919824144421175006273302973041287127667264519902820777890622681508528059318140495982019398580644733454538802164801961036326261598009723342338477139495775280621873509488916239443547243459600787375539178035769388747238056851748343854540314585937002299136285880067698084114639883063384582656588127043389904249361922235004006138042754934398770501576601664655006981409784564551143030698838583769588823926493719149055538837585160471520601668442813146889520814571531252926958771466420000699286962233431446199005045429126429168472351255457229411120290904973005714507333895769753089773075199176869704993143441209287590528964809458042031478011826156299862600026742707523010628989335229277326206605304515267129844436368236315921596893887093322525840675037391662954981528013318604389043940212601467374166924351923399986230804445863684770672830438701228218741922583673139930738718216271185046203006459878636255610780446996428258535577194969538270055109847856198635377030127983755788359366554595057674567429245320861375166994922581538573041700900415920359049523990467676826125322639086151023828228759183069883424048822129665785862169095438986323021250231508715778587857434949516558137066307433302288501012960107861182945703599990545469974777552512740990025446260038747055473370054522755087275340708227824834423658285896212137693049742898887947895458564292734473376944143757531218478253269731745665511327884702883056025360189194675563973266105832256869866631064262755734930375828307415753455680165219076536059507685420245589559243920271031875991097229248837029100601493663900219719756759739324474650221922076585353455756584188176804926871095734992344313697530101107917433665629415960282159174635490931163045452688973425302175804351630925270870439284963628514299825391883025431783030127567558903505009915567673473834828434471609188045826896709834357361679299110645745373887141307239937777049559440124229957935098839745837760897042125694852014286753788505164317464332125993943680789367868992218225422552637337535159617768190574049207017461248217851342380677384174615456474208019711418292350097327875492831904522202885459496114014122135150517512231306507903069215502412618560397219725108591951850102247579624645176808895876186586510735008380052732567266399984671594483270348345286847555180638882464682562152414586933494872790940544614387669804535809003452308854889227871246799033729414283824210323404770211021683119104630599716657647397334742394690208203087168203302812315142588686694862498840907460239237806274596214594058839518063522935002130730505567724971596624806178031680993917638146363893882042963289953054412598692129317025936990315612681951815988556567534833850388640333976226040135944568640643225193438154086794304384252817046670709452851512056841422017929050204849542254789957071624427791904926937974615831602393785058499926338557810410318609125568273966332507327710103016363835320176501000043208757709308323315766488286748008937696559577887332125787053993460039874875468445061225307553296190084869225625939809548283517199321664361107728619371619977121546839365862397364826860153231856858594284881999945378093463551083052829467237927160262993210980482099693338107851195947722583252124756837880718858861985245508699882485866775428528619630320765983298469683151029029892345277735231216312733925559094648308669917505055264906175422826115854766120703774057950374125495269835628272511532555870864856040477192580754454259569205513363350950173080743734781717718553624954278555626210832712577379325652126359327237108168469012124688071681043460617885794794319099061391505586302331902387499921867012228660656003717166574958051040158485577771115353718219852971000744709814764334941139938468945743584737069546684614062126983871566429981082726435000267136955944269932510986834014868149560608054701545065919323518111249598774255876017889488661984220419720599099339487598456918302877530409184124927879105785707941257458648583302124476567040318446532607521052588971314897710358567644405758848608782337830929733527486878395823011803213141562485495400500295138744904045541684204972051621445346782688647202735314098537015352394564671387714861258669772289718847385701923660515615411137760400624867110459857207055668013533555430337379893426608332469743459489121035629586204665283166349967013652042697354388218152740154800508934694781023491608293376932377842930030057650405194982927472582630892709510776057350901755587624391134571031015500611741369120200712039522593005469397142523717248094631467583794043998287225706676237878628203849063754813981851894971046896366707976522443578007809502803270928874107729498493111689897780140550561356879149170908945485036839664924635728588571943125039359552001002530892727632089135668836338533886000801364150393102883399407304578919913215366518637952057201831049503202395106536613797063993584333913861720061610179147917125640051941635595053468194952196600258157094155650628939989649054245236369857691346576147628750220289062742045326323670836709939633162128471631272485173425783284434410163268060023073612829861309580712740952176635847199919558172016946526365764350804404983530443475251465983060751688765713118477500421070607146340299051811177583011755927169871334064272413921111562700860866555166149707308080756158077695858614439218790245641529464358704960752248045338572626152212295965294736942310830645109745478783165119622868968961806293970784981861175542146703226704114363490249341277925280579755508688210560359235815132384789916608764366993542790730783703978307222782852442821932864991683940794808239713658064190792187031878277644448068020939054245722149080457474301473762182125527937647781477272719393796766799323139650815522290844372807416430467113711589196499270056497814038449780238103004963673488721202210990363690767763689908905327854212527059227611516569271930040836484685107035627140047753074843400653404690848036109612746776510783024326830209187500651137652968425518450446162600170765101068581936079105929550620770338990988259129704468076892371418302491066501729715395970713701473066219712682643879648685168470941135843219903029227723925472105593685487030649959543140760811851451242284220394833684329697385574329991477224454876558600708638052716970616561284981050126774309559474554677438242017874594300596715608310528898742440635473939447633080937400285801234304266460944278473667650779619405708882546196826660443816782805772152480734199529404740248070707178141769799030857311582232055020501732773265985562401924864852511540959053115782876112417693219366160861393610528355553088784917689747497551109584294127236399728411770541835555633925190301486434916311419385482222145880927242796690670281822194637302849573284256067024512224688762481557746695652732037328637065085264298690782774489832514595173847333516280014472625151678096292022073830522051032571016084582741815663330801923915797410469846973843926242328190707289403475918429069060621764697785676663335228067634526378053495484170060013785228166777971791068354134080817041795037574780252922603487666331254934486931597433904881553308253955084072104206398983760989013863497358197654104812441682630245424020550892452359626063146046428276567642595952367553398108586270881949034715809500094239302557155220423679599928856119910405230675036004255887153791576384807695918407399806445359429950561304214144016393808952676577918880604638583377943356824290501670101402212742618429629092882755687737916297658636188209808450811512097282435942075219676619412054472600607280787555925718055766006095723913810477310139395742018843042282901804365048296189295834644753936815507623250105660839362746915435897700959253704954412569411424231625358376038876410281891400664893467709362977622518737755669337795627932674627242014204118499050203152670578262425618307849132071016336496256217610049301873563596039431881437004248970961769823454668482059572454934409563891130801905342169439500465843359228927075395082608561471947458990568093745439017270825515522287072979270472242949051832006822243114881489397614308684665350654679884317715224635234839960263062687743660395659793984389727888539868175917527205312963508404491023579917614389462778679039696611224749983438790706832087926042972136004034267846708713817116450079659871397557841671388625419959578947096321565117925287026329315167858123788645312448419357576006039979251428838150269605145104857329813899079185627391180157469468673679577725251674523323588322053422142691083381779291886181284203315345872028401294474414989045983749260003164388288669614053770807780511120599265419152883501352732057382008173079994156537080669686551914307330033104439234970480730819691078478578678312513840063710964212723442746624933675217190410842057126506961369295697874488946770977805747954024972789784045393179230225855275671980535780246370930880907914962735012977888916299590728029296766237406409074940419410779968116776729452766807089088098963183524930407217216426894789959342338135470031133135468609913023102748557905337977880098475569596954725326851378866733061988704420441208151830324322326436051669196422215217687187114264509881065587275193169003220731661121967545241169785146655699659065314385895768653696726919671371953331051974391373402228160173706109769081465835551711108102975296096620661779372392965966437747331841072786668747831675541192620006243785004068350467671629011471211453240331301964505521813360964247263258367520422235362090148028890549867485948898994791293291535852425234257353235914943206045501734974293176817322074231916915358902080084599049627298426997588205118974934008289571363259191617610292325234248253129928428513177589167520595101289698948007495478070705718651758079643173497059873353404838811108014765677493845995534830882348371539265350301742488997548257995651513822072040486497286998038871076753318640190247692061832908719859784395276566740738587317750301216502950765061131238225728029465851986667542243851236546594726983124790031335532527702486486656681775413599455309910379157762657234143049702444094658237673060714968287865405666504603164863468164407955117954774443422700463993047724676937694235411284638917626305260304302975280035066048629481727337699860649465791544165029697154030214002891740727003601275031471436475844327164325613588381499954486415497019232672586097371366307081625956588945820745957854469810125794309292719423959590532095266851512219633159964564975831769353725353396974831513047436327091185121654849009933404856808016880095545373088206936104019105652468232009770219696656841552169231782110880282122721613035302047177123832167995029986692405603770320226493289111177828616525438407017601755594560675482485890122513997433748769958882475890433789142804644142609979412675852046825104855192856609723151437023615036905789233042301538116772767490291346057020317116125798115984835443549641133744939469131063378721155318695284327471281593491590437438365085252040562007991002934973928521987573456899538880303087989799604772380936758076198959623169623136719993787133931704011405273113450898605670244405429454965454755112471794424463916981565806479839096675604509636474367106525039669048178899604595316818315483887544338176728620255313354415696732055032746078353628674804399609799841736270866375165111031908018364590587320762334305401359733035495261333125279784160891740462647594205149647580028083733287743411454492621377397007747387943378208389097157236499766160525088218640968613856615458644935574797015852684018439675495463090821372636829679675309538879267404626952657711319178363985716959770843016140232739494587905023656541590153509450684430837868101055117946415547987834478230130883351254020601815776627423046453779526720178857422199742385994059338810284211710114192942679768517519355681047437648690315527707220372168584738170790603653253063689000049056485081217935364892626292746748158896069083427598034406962513304148265629937571319215932699053918527586500723009071593433120273859243485319865947971131221375487898462952044085823332664971845580124356729274189473700585671459611794968851159710505986382648917426286000302329718952188284066045800167426881130605050571758937109252461675517733225804974768149917693502555488428465724824306112753516991731556224579452258370275947468516000434850626989787297567850304537240416758957955829420746184291342339512555214701208917402704814948911211554791668656605681492899482386168382854514470827953674119037885997656762493231174207777644841486405445080458173368568702148465976621245596825936889500589950887680075378008405843792644241640539288151245438973818138251235784655843812200739861672860925952757543683163452191955266379215349727894049815606415098466306942153657336245628750254262957040399175109193688233867041389437417452351736271546656339821341570608127123995934506442949030195289800742300816099331508272435425803274618061955763001930643042522735647780508399544504330687151762813566287146825439560350135616512990516473401963527064268437318097636101649126155396210082774664072142952782349227234195539356904699311776044877467981493599482429929272338757385009130261143977230294727369047304532826781527586396035543932497852999157066208781969584768351471395406554976126200834461966322446041356174702282600197276757764126870110509485765165485336675027286921411136651231489872582353554963800470185135028023354214457818324938387352510067366530070682749814704620185269794010883615206515305585805655661410829962088071091943443786103638707038605375536066632308273096867070653728332780607772863639113425543678449454119096393548631709395837331489669016686169958774072354599893368461239255744990491534377317616856638068779439218318571892288171331968852022843923414833718572875675736080837887690786075238371862334541966003826393282838397506384536115981864392281121591965733992776409475105408769467210285076563027371459737931829839456347686429109410462842299844046164835819439987958933541323606623650646108310140888660054591045134922170005425127651219943795564955694650066850151566440657748941075425670163111926597519924806699235706776189318663529896318868830894129374469491200408089129826679294354393876496817401321614648899487813313501045699376802555785386151783782993047246219452437495888382952216609687081067191676511523070735921742548563547366330136092695288992269760537054137724587065364134421380440700045731751831635433036053928174964813821903467488965823236160335530735460070155034888392535450368525150467684917305919870805471591523559883156733300762306889333850421635479656352834219459343756718180900169563689835021225187403825122537037483253484132017496048029406687493969922224963223319861076806563434190216592705321561392175953375885241260460117817979916176197064607776085601064517020906014561235805640362109663523737724622950934550420536998811860111522492462555837702642509869307618052223826410654741079580696213375905932465027467697459135985194770137630332151652022703741937533321010589053974967970916367762269338708367510892623863150291876858777768225751331068343429279723885132167227109165194341817550453816571351908710172956105210456950943076499670987618824221871923161589370302476328069735301716175207718893031785109162884660904036097846612770825336132721193808477255451531630941740552959138132086834046131633948469229365395659691884498920351592911769194058642685553997277515178145053853611028787596629751277243777874344217424071552680485083934949680171795263782887736152363388327877923363351602927445043720712648239073368364199387392280875939112908456966111347559265315183893949282488920907854341809867066274166388440440138073090771966265330877765785841752958640501514748784952934273025994004494047678734573563117429633214708338817765801376619377347971646092505535774865197094822993718213357637576456098752098034428462392429135562460150681458799091969213348963966732440062804619878496654100453184234523732063036738992808811684716978817885392819997344795090632982857402489859052692312798026916286189230882866728020336031695186575590193104527893804562249151918886431759137781529369881543486819377041288354236253048838622086636896232308700520630963431750809936101857882416198810806919707104998216995558670258865520177352465335619442032831062809429413505661572477538454848972840288210763167382444106733504866464955036861952938890762697502067912335733949986896126194010387056386508915185233162879844080621948593824105240051528041190124624615708186765879175281162675570942099521688664700713427380934739155894947355614453182113019412495596681181124013966614739254500105228431099174952372966273810503314315259101203500023603598546196375135977971023542116312269101428630560039242604607131231196835562798808224114494319663676404141644515728627706017988015285356195826734342345814525610642180507542362892138398394208116826233252112731705761818849644982515917956294798712961644301457696775571743752049482858977190875340581907175151679875706408673124013678146841893873554566133181810174963205115408193739812668653469593666070329647713955085372533485514732830249060270414328779467405343977451993038173625690195621472925782232994482801192358956509297255105852308953479032857407626782223734727267423452000842518765506031641159456823049214723829313321851647875474171010156345711862117934379647451631245788523682271698361713564998305689470662643122148248287989683680362129592604342687475134335674999145458535074072043204348937950864975790659132515219278810264227626162989485294345853178331402287363097291728688822677284572124011437611398437648790600355235024519136578974293266196760530523663363306791246873689881192191705320704384889775486281831459349958803846939588235923813475181484991038974760189275639166145306770148684471936528657256702382168781990348194893010161545957092860500898621672201264098706385864700190221822048302265190564313372696496583711801023018139040359890374178394614209787006573153965941737677647988350775699528636384082275183910159966597536492956192998769807677029049040162742797252006929534745062297560138678553669340392750639978437145179275651190790190738565587502083935377335688283484229086495355792334213498721861894692644660193693140886405038543764761751731876167655482358087325952298935898534605615989617790053938838704902676391061497274042709058687554075600509355372634575112766707012879766473305432196530839580451993553953779236386041476780464614622461083316063260493612391323410148138933940674175753758844113817468330800658037344364777691330451059134560736897073911627883091245170033098186244688191956526626766687200085971811191993992513210836084931557000502025389670210020446131791317312621731501019719219839957860831402459105381407012102249042816672395468432224533416037195713749218760999923016776831644114626328595352447102883586192945619473927461351908537222530072150378640175094890384010167136627220068846246036319806751456557987476549026860137616271330676726859318651280213988023214870653146434115201536264221955899687093943176200054458391944277359771592245736539488652539283424395519068904129639638120820663057039234259205972661041615805494081996791811237268139346292503190209413745681489412271244408918695224032327036468845216738247913676924311800577602292033105183074317867397439509393032405847642697028420951922390646418869856003667593013919690620910282420991222211350967942328779296015270090547458073693111073741806969020694800188231377790027693022148678850931648892485693011151000187242805408754739051274680727466380508584734176130133950722147205349897733035370208438821985019375809070827752785534954439928053755588725444149896969528175701421503479734226968303293030376681637903139406129345605639529128491098759206492897747122092593235885464084229107331116878371431857198954006454527418905061673191548399674240495868649889480457968158348412996972903616058191197924419402163693026595433205165623584218333977618617386374545323927914069380046471727505730186565020038986811789077538677478501949760779340192341195173482749632497087475881859971146765051473758656559535171077954759284417356339216759788863926779303500146978645942679534203367241072581517700500945491429746692370130443923359709444632448254157934553510084632516436451405188554844114890610135738276192181013001509478824013385656936423936414372278816228329202104635456410891888133414759381293176120404991965729397015821217862990434985712445862545813671028617883516754132986541768878970461138293019711304029922206326982753959569893659629439807462486685181365581213575884084478123593323385795789535704047020855782124811488788402192884379351430073970481412935097528238637762313857577825052372803266863068889579699837410744346825062280963171781560256772258441293483071320483222049822638725390411767255379737353952524393647817816095137580043319128775405513441139407504885655900287751377862961495451168543192298008228198104051925639117299451812082201620688629395659010865504042476848382972539587817477875482499370607125567979380768043097028646891101069377245103025056434775133976695163227268424381040045966092170745910607501345673081915627225120229604601494551777258361089526537919575873297662839799505896965126830377101272836969654485745900736197873964271730422629454782740613127264611229035536762155817846544482231477623985416417748882776344682748745700567972913529523369127477077362494483375056985483638963975724154005072705822515473676967584906250933633290733623747852482630088798064555888341434440597547550667537557942092977921848837718354358695062557455674309620328460742570049146967639347793501333970785697572445402998062976266715866361716694524249905740386619319623686973438281509678294157585526451879295632837309753772048238095250524473009626572734621341683949826708756783594147268619160258404359312755045864291662015975000726096553585830136576688788410229372371729668466432131573800472486668202383891456065963770501406921288670183816451647638740034138651566305539951792004298553366657750627026002249548670724424775503404902888250242687315718408559350158430586790809669691650124148677443406190852141082032015826932081645861455640290247889131022152237197132439356371445118485284257219749856306309059852695214203940504233866624056700853576949214802636760368300259992208108584781795530153384128563511809407019952853165100324364452890923449033524284079275700707652982033708384349493915813953710502327168363666001482005987800994750638469925228353467144430344849670085526358429172028844169537721684957500554207196443526458619493643860337431232699216717430319102756896494481276009135607434697940511165489318488434416652802326506544876677084438644220673903688409046590661265678620704212883498701528149531823445054972253948950448742770363671063488197887275149999903841742667733092116878119740999355575033519562559111062166883377775771148658569262930985038441042340601134995675452798104471241449843051576097376711685588454575916625186684522380684340479514361863059959448508586745442579828093735164444976209356087521437765815788776079804742090004793349764448508010976522360196150270016943554138567659738203655988606051743478717035395118364958513428057754533983031501224373017427274425926946806229834384005678693042959337202666081637142140029224667974913461095515848322114217313144789911979714750140166217094634362308352734410134239978180879450110938142731841626956166877512301752053109415113458594361376987492234176365114712917324253841625865322714302703485285350719144652767515066852639807361622827377270882682410817353252897044322171301066179606142952847048278713980220857068628010816784117619343044606548778831134007085992393726281668733828047179655044817975640456546022569896384599635081256023584173962446093873827301516998320741564389183338939352710123962264889262371893726847904806614509300499011927299691667126699541021452356039643056283906885182920505342856605017024309293521992746336729149366888630954945400938666654467142353440958651755730571390067258155464482516541745194146639037615048177778257858475511682850472861946819704294658286937434484537389307125181250757729471552366376010453046708925491188746298192679924550121490138552861539215959257318429247912697031254441116818787200631925717197196722478144358902880804216777144559361830701584188938829049736074186662624077618889567112489171559776934883754729833491824637567564952131810706003713942533700166513017736500728707766195728153934787188237806086257566790753135041578030998482154639576927676943464213595276985781801294017030300222240470920749756643193382398496333805603478359869880581322081547338887021193072728616367199807036052447927002585828208142117305232530108210332085740825779942779121357562588236701249569023665887653493092713537520614265346572379217900577207181858682865156240366393122466169917459643429822363318446833227205603943402073501104885316404930592069321215771834524986799843369591001669345872035539291138914393345319361053436321645310044439350488396002754841063666853766761244539911958704877222233792586016878206526990710594803782975147161429046379553131429401936259546593318783114782389348693403708411002888087642952834213696462050808831692433736979806522447637902519416818877565124203482357913695274350283775699549141497053672152159130924943931994257471483185481448804590955834509300883276588261833407598938858349966892968473088518479350418117721887303514127343349255736364032032226523537164110468055639626743539735106135682479686480328370247267836172868051639694491970141983466443340848788547875202131390833918865471553644777658130008755654490095715168859459056680590544664071150889814887270803163185568678069566038028420535673914480408793937597386230801874467723382784611406029487664498169492938468536681941686018166613159640556438680521974474689310117125160317055713002294198527321947054142000233055511587538299931907732642646054631633330333113090065677117861416838641904741281188125463172941518579267959328613342873926511112714668585588740611908491372911521490581573709183846062408045510448522901213965572909615760825260268958628750828857286244961667869893228370348913717522372485715058584191624269216901619495751886653663124303201997705219898977132677917644010150436656826461987613835024617391902113966958687930184784965437161532768433789970519021445497937961397096276134730234575584054061582289293998663548542997570360306235175194307370083632223206052385456400660112141619505222131255759902595264362444293165841996798441478929534165719544462449350819309831107507081166844634760007405970474571847559364295555353983016762106435300951432883113419411838385381206269235554699516573719462624441520664551334871681208004112084974924361877151676551170534574175898182789104632133991480863817431169995593874648114272368759289467964933217947387512280560365199506161564800981845056365715886478730896784776471189669583480387716485416465170437060458419211068425981918127202782267570479803638451485051933065429891848863535459970755272633988515777002545137695287727060003340195218187279823938316984950306367933476642560706614656658552351359794838705946325552801783672777726523299136887247893103347141216529128248242620476378317530186548489339692453773698991984988904239247817685385816130404083293879342330474477048105121422720559333123557358834156697343565846921898144872236533700715449300422779243577252378996441458107404441637386356467213734236838788603306944406251366704593032147844140637563206458418903498538708075307021900586508237215954168569110745859765463224465193715136742366252603125856882673819693152520026934664210698524252557632569389584177060386848712395552046715448240709208021660962178515817200069362910105416571401848371284535833942307996896924647461881304584467297553912301243755376943956279182550796918293692115057480072377695567679642012126594133024505331804181226712223906631967816509524209066641572206743005004663856282897561257029857751692120715246355746389340342119690557898256893030075783383463926264335817926478393289161472629107144589334963667920056818046646458019488157567725481520358967852166351680654063909093569084974326099506372811710430637349799553707555967189155578762287081627614675934254655516100622100351075578455906297761426371308708122664914030451630728447234146822504809441081767701880375315139663006156629232467894239796567068759696841172032864222814600668579999266849678996667499763378003102014421561848426306723007659740871281730428671441701618470814675325808735521511086172119810055786653130801317456566629672772361205662936909792244475096872680211000897866988011740666244483598758125077575837124459189422564975667546195748091457766190510227377112615036294515148868237065636080623892029427595986921905097991060710462662307339262649257494831506586205337372005793654337130095294295190167415212023910299881980287999231089343984974660129276105833337941451193216956900253292355642679593393807954524872594174857997830763567566549478018439343672875554809377265755798199479772917107679450888311630179646656194193997613737382707041418443402025584027144381164555434314468832310241669098385581482288732720924613620656122988609403057009090844540005293879207505042386834967877809696205666682044016345149744721072569979035137664770253966837260012789325499737867889049495882066984357978592073408432645316439901665288192066094893508321148319153081319130850408044059013427251665465401809701165033358247919224463971353988201793832554175022580437091574657649413220839922752172886166085830244481582835069298426558093020611470412005870264508579271970791126432647303935816607037416792320356453864673740923388469352567669239052301967243990802336392052010020259056945551396113605809342102426426318665554396708148391408954299920362420334358134841296204089485553103863824438555803077472289565954674932738528731403422858854707808543918646838093998558689882648852365540543643136821965273789980134440493158518973566586454808013137059519144809008954575110551385666166804888376702434718478853781250262880568725862447806357310421556854246125144955171786622845512550449199628236265856879391641080745779418414232413433459160571837919094502792958962223711221980898941914366299709492952621180156228707196111414808407908200101900056137840266861816155288922638352474324095443264451297577699604102474002821116812233743580977685196574188380977196290598955556349918426432201774557914785690166770132585831938887673397075311699649485683408516769153682066824268116547177547672720921340950737905066369083572900251796677685650032393587674052971575086838230966691923776873421587294412220714534625907479900424432234546151347773582490373329103494462592279659980972844353704987984631625783595592372038972225895823638280609679093219175641199901069594335097462540349813868721053446164261980677206739946146859514861622422768230952341169562948415661755850914964538946597368271344305020871252631423466115338361533699974065814777201664105242711011823212485882453026818157633366292679318480271740618065969184934326847790618579724238580814708689435841491732411723290832079789058149838321727454773054371993503220575614173174190326293669741539816361839114527905469136566324642116016432933855940431455882486727947901196232053581238522492202151225017217835403546519405724388757900034711318658745500731430145049789803612922141399152319474463677991994397270133654800705771235586033319716297036591871858744503868521357887340568657632032003032216690828634395619535607982266933998716001129315694672119604125175321713634939007949589937816225766479122948784964744124854188828268549190320867960443566764856396895519600040074308595319548595764374789776534298498124866028961923303672706567406003903159003050646073298774647810722368297610792684391490974619801244785060111642735670571914582468397020095931291286434408124217811478533740860856840446428087569644986155668725471709082845128667345157175846395155150943954348376849315076644860676417789934258965299176475486385450904837214434506125733399052981371549989804739118093654711935709078406964455525779467048896105543016398171029915914260853756109350725439920458828497205732951329140344171483839452859239026037658153419908500519568595176680106993972755749686269413144916306681068566456948127975291015612424776252606167407821446741550127537582943894147306246213260634143522088622077539366107254292802884602419909878517434343869654283216668821288310041878262226479555521612824967724457756941122176723983273491736122342312387457678654699955595382102067256632991863938102970154404455951405497965411946516369067424622447329497513485377792531283249721675679944375808146716314984989784103225029685248571260101576547279136109880790264652877843858471121961087471803544420070801150115633561747555759602073895898217420514461964980893338859939622170760244616523562303500373853320802941189834181840253163620934908458475182099599572230516380692704326735591397535783645330653637832090245586909029723464857971472992106130224727726080035978810493981728552513351778090301299794931290208812601469913526128542737868428891067783267979757732053989036197180493801713286623334983047451321065797048819828301627703742669279507835307386890962989794743236410955792005116604327405538612100592860110407429285513300680294292916420991795017742511716325013344856076798689739540859691988920974573041174626156393263228114456647756327007628250232597640982650492275081815373481378937882936515746257702581864840559004636368389060810065312973774310826995891251253048966106847923117950498832864696466798908949664905745761282028264262972142908660684400844218875883042033777141879002911796151049074580810174763369396251453549543089665473326991651977913920623011264108147576300354516285139273792801736253256985591639236365155701077877047700103901918741168665946485596553003450645414766086448430313839944911156839021184990520048467149363088524230853916072971568561117416128878416187173377672507548341979162523562887546305567306022722668831612771324071731766075252372102889076745132453450746293072176209658058221071687203490047970248858922039967304329695575265460327532737430750094771887296602199589774509201708246207795970813933629935684018487655118139440989369511518840869697852004555776227754240217054471080546896096075949036575980653823525549270122262145690079524537225415143982775549851627566504987046617814386007946140856458100734458785902665404812766599694592713248037580658944101064487339920950893132483930692653776442767831945416497393027315571759232024560323566269244674889609363213108194504392378032222702354292502989244419575171652644904578785533613279136050559223004796174745922575509553818851987729282287950958701133423129262087937641726586284166177403299739243685335473779422198504339872946678732020912691175833279405383110216534470573113158775941358015551945913069068388062878081141759358833232910774893797516672417807620558722053684133029938420858231752489874515565644446161472816570497576480968095686350857450834916322783234656717885534204292153534725967617986875176892368056093782587531154005382451651151033465783920715857727305930646918139517408668311736709199077423563396063159780965972763563233335810588119836225423266228899981559954986462003300900879225091588015783531396454907360351900264762987942209280866905176544122436185228904925552247249203068385844659639009221587575884689275994718201834567854659705469773811553081770795274711088271757135154479598631630332053077456671724441250115240409858211140745187391296133585809095827447798671718831452811901935777239082351390387163717140269337669953074380165766068668319191979148682296943868775869846193472297412652193390702194888162712227046648379032486391218232902873167407541474786725379330229775873239368661131592363071845891743882054867182249805160568791204213451317411298628325491318373185496896104680151119285808025723505946728184353481850413910592770797171816397673143679725056649269994549082960761665207874552531496635119193109094373629615337525091103009169310772095958279179394671071223437953921378263996086939702337629095413574013520501189349565898991851117324777600855412862606023747681197804591375127613239640382014288884902422247830891049113503679758654434425484327556276058962457730634270469034302125150321096542750210915047302199928362457612244941064733375251592224376346570594135501608500126125466050817258543964395851943444276185596225925508554573874796787997545907883411126171072662267744492646680432787367646779024865363268601079063120999413122475037845752306813374404605053783582360808799847778246471131773008985802105539848416110302543814665294169529726934276849707571558091915888341091098105452105559250463202889941082470090869136443012054653237951810042335845514341494233220946183760634082329088368929063015427677339698800050150721405522265768443234754390758045968821857934426991149400888598710040201335381509611138259237524034722261942630847050571175973276480334453938737607077535552052880191919328064750553377618545429603118108507262639060324578025099170548637146828967074019335562278835858960608415031412935600289111904259973163105639572583322131124155488743406901214979064968638578533181221949066771568995697960259343953939127747049343488199876351153219756094946722496573286763518176053683697083112680761747248248376057410416476865205330839359080871652456697475184097441612804861955509886317110891285427964231325314061162587749677256942092019600454472119733496652368351216858707927224183418467211085860338463001335995140971018051296291707377911866224666372116067942372541823490599570576756714515049312060739481035661189090105778430021948795755202214192492928091126550123641345396847477700296706254505319516587225479108925430133130826905425501309683136735307058067043688906917285250936967646369203183147258622911844844120310658162511429671967972071330368713369177861556306721437385613844083906164104149559380695270595846301946908000533947580011454720154436310879133549548921473789315086758536860700071671109949293981334124408342637631897370016574243858888885549341637077692655245694940128545651147134086090692763209650943762126456997417143051627863888535017166245319568366494694998357739221829675137275178882282003295299520024765171363432481393193267921018864300420156665611064689138061383548076081114875411624867367723125120486153455974688485733921173389572906037313451979166411806423965580868159698005662408497594619811839609930960548985602316470619209487254649055749172767224392662777006322103609075586357053198200762275396810110831957474344386407785649939963273199233912197756558732831258920868503858523868785668535877377337106408502787330724730823138630980123253562734454541347627914948444287798017282484883178734130261378648863098765042889084396295138700928964114314845060988944446505215312512147494555004834226443507665278144446412218857129406941093340512750757821154741678450316303159473967076040174772965601659826905765007738201375059464251611635949134080057745703513097688355652046961355148892735639715934831990344000509717147444195183141303811214662168118847967937358281392408948973073673848431467227325546495296037731874641586337923709865091515053162179122013514099677558252280727439664500266243670588522614052584361420339561282931553592721805209022390849593938030965574258874324997362873640101461622590371219745599786325871524750752794616939999030498500259645705136120970566554219195617804120684049317327522909796635746116865577866240071686096341731971328509327445012562047384512748394794536318396189995280266986562275131393894777749088603164196813062410499033560768113771256467859459726489485807243293894909963037424787402864881510314808896811625736065177519880848334842564685444131361333363596746321357377963055868890972271058954885026005498646892459263332064173112512383342051565544266134147364271170740370505041767883311790872264006880976098870653633069652043712737085105270845193695806004310116738508415681102778873124678924641769225327696473352079352248457534209999842470136287221016398812986296614385172395760968285803518245088019408580280296310102963897114349360673988293060818878133837551879277934856429697644477201868621492695771333647871938532513200909694072873030960510011924194752410680193253290687908375741375702722625791936881876035017782384323060969498015903908042815081609146790682124244225407187609894661207262660070027080659112237899279624345162334390679794539028049546033225589573798577911412964261101318423855567078363999842321830709840997625613287858206982195283810754571069317483434479084701888496693873889536101819588607431599956597963693212716138277439470789474575946037448740831557885818553361304291252485173708456078879938669956178783653468492927659760448164845285496493639276748314771196735969102856868236615178145921187491129923344307783198492684157375829459102680031784975944300058150951642172273126020463406480064213483130441757113982952552374899307036754013837893642578571557918279772089915204297296626905087316105497867771630059085646841943300346448427505626412589045004963702965384433524465531252170942748176949068279721637139715618427230759084547475584362964888499622966177076667931703498218799349518623329802360686022257243331716759582163484690771792494890532902228014002651487804529192456261014697496363331328873519867448396812116406540603240002240924807594253113409113251569720900047434622101122338953738782342611936070036857576446441013235031294901536220095614402504145898248410743507876429231689501052373221140259896799153279886304481761513139184233786655188810339303043018767696441981904752905085263983197504931164817756695578177758458543038252605212162915601440835943029569622549684905527139194998774152254427470770485720514291423615021400515156017937987844646309162004856696097516552777845369961115755528414850598350824314231491892405850939247142449563800526750511457005622155015274479508624685693777447394600751189516170632569517071903306978856956080570135808739860586696085817110936262601757668495745143183994261804578357731591849729002550608561370821557153208512404386018596854932741976838475227772889864664893715867087374150160160576679610979240587590013570280322068738489313952019447930404577194302341363547324897759133250980397389947107620851137727708979969312279280638834995921882925763695749986839194939197305694990056290723252919392085761871723769732024721101938440197952321911780961291950143981109126478171093915471772063379383549853462804817156242501556469906278186306325771127891616648539313417297211062699192343674154042195536091361083117433521235643436504611706881982246006071004780510893430103784951667796806432784796696015789948435622782100180807652158952480141405104973886395867677794107525943463878681794551183854586013151445179965699557828810037033614201171204751104816149801841231625538373707929323752491409254218159086934337144718867561306097241470718786675759611593338622528007890948084975875578377689573093765457873781239352905009397037808570639580014219027553732790994292480236748145519949195553296011783254038893844472863757803158693702672152343028754794226623738038093807508394018948878665908475206006132584511849550145337508581542287165967139570625331293371165179144147250605494602236633795913453288209454936551210744998027847574211652244620180659158038845240229283848993347413920591405643186202912658747278719652094506234636439284373104770355413264995396858168255440680230596177472662179020604880962769465032430537155291981186191535233670480755894969229886308185072947806822648237261554004456838750196978785279736078729366366409708201360724307011814799274853604453997103337604892533908274852853738419992930774323509606827708766233784039838764401996374876534688918618676821923354473867740510795569660318622149229396954793330468909365046608061273246060896977011626300617646589963581878629136260515941119520187211636994933417683684712055865666838022869311494568922392754391649108952570717396128663161527058390998950540866931860780002073958841049553348417487985190509099706742889689008941285205196455848596635966336100570283134614199185806161529896790701162498162994987362970329997756018243579092078099824338205212132562537806547542128451880137183617403346156407548490684045318778784316634993535493865946443012263211682630980052364608821385070919327516560429326254324961556705221408824238572571261106781052197144316938320027522442980100327019225114897364285138787193738262883323860798498438620151654504373304845773479595052448575616069511072006021773402432240646074293645659523324682112383833803449087701731882535497282384737995758894963357088984649468268766264340755723066215561510312802734214946901613972835328550622378520895627205130915438064504393179661214935080725978319332180038623034068510972211493255561490577866522809598867773078671269874758742192692862737118673296393223469012808168288535138075583894760909955247416265377294994011902840234086949467343594165280809356968942509834752788834498790201917946247238441461029600508491712966508952387089341915075954043077269028524843664426661835151073380183936895083486871337560849097688348092116304701559718451935364173025619406074532634636822796685618897177979434093383208347584240783133344416211730658983447711592582944889021923680706050131024645208869689332704398456629686110467678879559217993370391400364527710475629121827528193830010415751748721162964902003288793354410723078013175624198019919504014141875064064308672894345510614058237295060636126599167696615078240846717578978467587554945888274338112948129105271706859278987797794575578997588505162276299043795201569769790708933877339439525599037534301685322444397779023404533722059424852295627779016773882217280266088013398148047231670837478299917130299645575287222918316493849657263695924851799332339539210077234925316371648985696421747961371786465829574531510405517843925158712126447742647093415652085674410903043138160434890965513422618651026110922716837173101321354670952552877112645966175202037984001136061973542007294028885149866434854717030226553873132706540342958862296999692914691519143827556824988740270367102083136111294656539627280783535388640315243556011490455844544852450700565763823799352575201542372129682473182058076667021725289385195614167432978312457088204372511383420195691625767992001196943348267061872115836980843634878994236779706631645705434640407898008458992808510678854402868310369903920941063873796367552039765523506983684114143757127950235441740529331608027895502575578190865905592169688738563811396393653083424512505954652313490321368765358976284455299303623648235413685624495766715870488511661287250625824297594641400868107988686606254627290797585179056692871979143177561077618975736814363404458133642589243825968202288318876136383535253810140233786200158980251458233801332025734632655772719107602947452054815623122989266809000424592245153003484313723645264705550429536751244828222424158146081048457361606454789541917369213065537914039758022039772339783245925587918345201770389821049448327251913918205133529879555296077070343426205745955602793061508267177577251192492706842882771182596496704396247562265333332433151304068574782049141540963243298232606845149465161800511016108702251815510799016970640460152272759973028801301508375662188796046461906921353592065142100653880300378611754652298941624343589529149392362453695183811407570245144570262078907719293519942523463904353802671787670877570487694132053115368135490842397511099410652541351676068237096695568666201140371817456818100279178251549003980498400008781038174311268796112274213197572026345985262550526838825691907661921634541063324702639014773036107681099310523450860551425505602852108059345969433759060214023297635057709176085010248571894329387756157872448966481641907753798813693280150488957352806893836402059769635126177012545904707389949422654214317391784401596758802452296519363421039871134492571493623960423996981903213229243197597922708788185978862547303889623564979042448277720489114931690951584306921565007569427836108747729946485055798481128863442828363865019620198693334740200334499615066227676606478713532550144355037620946856707162903782513701006038798974154392963197137249637416112519986297555130441603238964971097390237126324715065838264034581108165161339330170989984067745232703390627401263983161662680219996691305525189220015188650016509568156918764165827674853460683169201463579987747432789918083405687079066831467719907226168774903616495617836335184909957318325500585536086647059781764841230087152211818145359456104602519041291815454123790591942084514471390840110329529189362056939660131430333480421418667456300523315006273917617687976377295213272217359700629014828271588998066930786402815635323728924917999133653787581790494998692441116551835465412139967867393780483640691115544661028541332404070579760582994529285633438169569397007291480222603454762912153338129248519599068153279003501838896361001232629040885926659857895066797305368822726243130307282694494839677844676979886758304695254545144559177498880996796804362965047138348433187012885614491238648328421872622662976231125002502587167484342077363004539860023180916416237627412897355419558955404068224499254111114145720349579859417760380518981979897477687595612327269105033301397455161432423200220530273575003542635644281856016112449672063866752539795356470035021766105633745320762824639579013476646390878515965292357476502469749596560599814585683857827192942653110097919615024557173291287405212011388910498525680219981968627842271166524842365232462901504761273355201877972536179339863092844297225151851927240238447885504415120636267377273423639556848787090187981477527834312623613384182619570856217617006117422981916489997548063631853761900485333921614051727539174017567767657841253706987244494103710793221747816967839665341964166223047181717907528249454721675858133291857725738636663901466208208473731946421542080425583478285482011310509076480821105987433140725778305483401884366042613917176993123810616421992332755450455050317985840707685877708134226751873855766588363765623001088619829457154222760054545937061951557077588343034238670236159266996275188637155608372525297009884004138929201767609985036806392390782753813662813318648327467881555671897176733303494098625869801358381708008557795343742505739805220139693990091871717324779522901857467411294850618342250883533734794519188162365411173770407052248344685499794408152536032385675164689680703129808206705114659075859396509437871218002083853339206096282860094975945711493489667348353352646662581068916213947941798613444524801100022843192942002364383725070627759317031422600096559895656245126120794583277553535719535620055276646241330321083100259372727310925258131836307483151587929561648090775518713558789659489639159496323897553766810502995639855613571167431901143912588296986275179769286892647385815554283944630861055573830061669534760448279323810148643672291449358113418877138295560454870784507164630017265644162333266120458544364859981748966712505858566773027275072833916968389365179058672464022613554905427626237149740851055199998042789702056040153666057319353208123429855790274165578480009715743134594575265648699205799738191356782624808528311865225732832035504614799474193534482723895918999091803891177895444121847488662146377809217679299550035232044286408879600743999540966885571147388846899171197786626604751401766811385499592289876668320458037462935450757271119207715023005488220503494685927051810342015147234660919765669637093390915262453043141896435940045438276015619231085530824420961490193357871366517927308128957003018126756230752643255567911549596925959244247858018391803934868783212049056776342544452241281842673808619360481674090747661561843208868597272416146299123386008575736778507266356013078165134633220068185244142703663743328535977327347176834230427802367331291343070924473964319091840479049002935895880527509999232834521738439529146877190972885666882656220759803110332645943865838250383289865467795053329490846737483882986329720194917197056316053784241108020147305304052509252528233166475068679504235926771327970744450119748681299422177466223796948405220881784116080686560468973941787816197923376885458630724882166020495887258021638844154085369612958185676856559631623897091898510122637474549430194819829402100574325783557414822264773289551377216144058182459462607054442941169326978180865713242932171281371394954792185750473929042503985011563638527013173505265921065268549461622575425140725963893260532504400933446532819713058785997243772261644746317890050499310108134452137894917264191525510768056255749525963037709517880887694561923372381865010157403047451501046963525020231374459311718990418556518553894182649405315384410108329642658572893822933724042888667087652612294785259077595924663337830905479586881124287045834977414097885523028982008485909411233668901670792212643768076229904183674584429837178325273581133370862946923726663801163824823701872141708377667661603566788039556145525148015227478036158885751694244953891642080520007244205697563516827122993956848374672376007666214440398732256205647040126684626542015494175932137791056962754965675977620614315677284249068576696191878045325685427658900060458937838834900730842036342556035776524474039802584816916287393164612422229722021778975059325783370467165160390854884569580591445911957944029374570611839351056501517284679468684583980932869228683019507740487163260378431659004254653716710895188756751870762806006640156200819266596096900676856662491969689098662884643421000740714145279044317918782806795770339957390162529962006597427025097209628412681739432926637612575351500035495528586022442510449258921733333090704400163935074021329676776831928034267089042214925000542042544102320451357396432448069552755790475335204482820807969283320856083449907464066343849172332466497559937506161695446280982530862821653509001734640857406512505106539345757366653876523362567427359147362741598231652983265518964411061063549324796756759120321659675805948478986934310997950454978977924944405673675605228664473424980303734690521609722080656924099451770236744112013964121711602575578110537974284504171718708665288546573445701621916465786194587918017681648725525825003865586235037773275435208569008003148106724735202478746650578572667921023765092662495546540239167628094851246741424404761802205625158553891465497617784476897908830262540392993145562456551449576272563977137996668689439093145192391034882160386805794130352776769245902317452750641379573914768776097218226842807103683941991427969843980483568988666631034503125397724764315652484016944579007707923525984382596103401347229204003589463603756366594742696952283909811877302367750525294443975741661576581784195456706826249450080717055237089087965310961945170137643835201452648006152835546637061345960897375156309467330117434188451015332443727112960599914685244414587626392600207484208881778387290573079408709937886585278243538660997774302855854836963262460598471444800068750003402932199619457502968271709765250502655439146207852833311040734889330876255237412601932663939149797858828911884114469791449356927154369498710977385860489760210023203621991276739303893424351679153727376412958530006217379110809811156174401943664277989959866656221437271303253716783336088168412699024073711442128804541184351959857702751884282495632944335354409852791138605010790711221028030805593192178405365406903152755511766104070452012304831667011879940803199271180495973063572121027383556579467020880069915479809362166447915386200370689428842275860910119210298095025986057789177824762038860886424512714527365450776405832332523411683467383944959586360017640853421399684754038083384635502434892281245204175726247310310224146931806871531239388149615898790548888290958367789201619314543699184363041416925564409995540343404688922055400013496362613788594665686929093093923829627116762108522612747559253113362712788686811876481504089454323045969195262780918531720572596575154677410256198663993907397231201745629223677232914926064527269335704506251324036605374543172584667938751219427268164670355714120761369498302652838383972578234442413837988712891688950807907188980647677885028845977530266539065393065860825626844241914757933891327736923900311480458035449514032070014301341980663815676312471114791328703404131540948065416734291199693697002505983086417691060534891067859362223645811154881749095690235305142252421430732962847667275725014654418384738635641982035001028468497011054419720976171493900228923158000335241841714827068041545424290953252385381615598431751436121407431985750915460448398299255799101668157219722357045365560706805363841110708461497283280206617792761782433024999000042822373931651362619669499015388249900502243361812494878728375812369778887739011162275356505904782905985706276687784339278637787294527826668981524090501765888129032981942658915888295141859991999793035633941860723193147254654008882118846004493266724433437072683119167603362893810178289053284777861017701880457460892255239693375625418338303298249368746735681485167542796557213620955654819677947109028879763000609679957417064929369891295299558980215551741588961394716404684272579750612491193626161648779774985684304039705660273254810730738051444631119196757519596752401496846476600830165272643480318990037085873385720224454695713674564096872688082996880551885823607187378269103114067142623878071424732990390619005586832906756121495218958899921028105298571299143522301515263443813207116841006199270040580034261908210437825981937301696196809030139030452859734761022952528562674699826826255228648989722483232268255127344598562664361904092582511935697283666330905862336794598009033141652096925629838148752565798416106860017580042078600115667798451925702237571277001106798440684593938258982265414262428511463524396133740884378804177824787965828175400065144132805538749720128287364445103091573497803520501429986405702693075065700429178115457779445260489210259486350600844443869932742782862718535748722254066542041167658422739830087388294052859876689328312374992622662803141210979809374739704670396264492557432757971429089467260038542652071730054088844698430436495807526504721417222387232136490816726054016534065503550575453233261380243878441607970307878950786300222193547676205540159986079906765879364647142664518643593027399751718522916151808242023516684739555752835077246799173089820620642323211673575222603728996377983980011577837797462627168886586326779987154020002094434198760626192510314048096576469693107958806383453232705741067371689103048639580657529835320193189241830981485385742640994042307989318495451962819628643760751248059299415548249506329642091014349711293631745553556198185626120563680285765583890666144926717855370097238525430276578099897240024150557105449245366748296649077277586857299946086540224830395848872658732674766064311865269813116252995777582264011446592758423188956542609267702179205653578905871075097913403024050674213597456154950854571581524258974087732032001485976499504025527557005123157370110048576238772109386407915443941380645690143873526706860624299958550868881283197491113686767516993816000739427520960865592127344573682409382310201389858182443107579224581679298515315535705375904353386663257266364804806034202507396893972162837351076522408442519092758149929643092995689356556414560652315928586628571044467062434541746078167517707808641895519520308629249450670678052694703185266161695260248656132644600412179410451753467054679759238023877222358205293567493823398109557297240282560548754133399607899114687970381438506159885945594930897872603134083344891863378960823440546408736349326954094805008114036002466571636726062957240377821846019237364947947928594376123470580578555622161254599574860021788873975252161379409696691017094151015681652135346752694966314994175045265881902326310307294162559146606569132594262251025175667657439770526606006926420845471117075135665460202182267651096817768095051181525504604791826941154672993000812347846318488875492142804426365803908849164299019078870972756091849993746071073699827404551670789841498979988532908254921492719978553951028417856878613604163049282402712408051197790266177440272327098677226311838074861620746258049828307003682689263679381459998676231713687700409491714128133932755955235293790306851482671004801800128601774394995341082882076285027084168289028839954758436646160137778222223228666285181853522668122412556723236285697194002416232257781619642141059287787017299041689379245293903241279024076405657766784840632020728275726419648463001902140600019089731075968590552944953078808703097990938195898330372926683663486149243543639459667607201319435335066358469862814208517352988387993562560698100749912911548755101177784391131996181406260075710406595572607603339563047261084929906573525552003006089656386288048953048423216057684835959776502744821986176710449582320568126678291244931060101665970174158122154003260006435259946388877344924849305828616496240099726168099388405538233798620728288738713659046911837422272032749485127577984721345840039604526948172191540341375004658806478853150563988960840770784293654121137662244572533667399463577994952964638200073245309976911833002439237711254004774765887546722031775915814954472569529523038593877478671226098750293750909017381413405651604903760666670608324127628012751352737029453788665759007806955707833740922226973061338969882831374920549006643381514736505418914182778987906287990420342400224638231439514902172789557471942387431506023142213458689759748331243792717682631176987822420484691586836447389232038043117339978811394394605571031248791942292993254108027103170579470692297851252915089674374844074041169682814521206097812354929350643231196478476417103623202662990741197415048981353262594140489834426194050376951666437404288319536927266672482428229688133106634114157037497132689287075022362106762910703571809516356379682320720544020841168627426076680827563465650034705791656414746410006979535949390367677043335756731896350427383744876937528928569549200691734995337547495049135343352788186903301013227621791867103214766591895778717608391044900356678252493477335947419214998680955582200411497068962210901668287501605829662462065938702818895657585983485499924127968021623477735365806784543780884117038868600335379177962608858328319070698377451574898655087793162287944499310329637351083369410158274269507949412508748086029435612947122430217076103336633963295844165199590935559250546033722567753528381483315625713712530142749609590345097416543730874048518658983395688822386555148852081981467732093958728992338187018019150801897636070204620847984215843403303429033457719721062810318362714116627151811539169110403099789740148601288408244324031883186070812529782672768285467452352694561550735565237204744136241757141105023378591800731929054739819028841572631257424571102680486672702402449044071993215524427654071126576444213928928266416634602671218305954291405763586672254918178933381025031766807877908680522896212281168164823472355898330755001652349236867816433756552154668746071518924427606804387237418848800676096272202805187777975155085099349973107142678077134743269609531075075999793771081182199427953248941366433418782704419002991845964997905388973627273795775569500295920747622310639577800969003058510540332234374440907479684421232445511664886037736475409071657167933117556958764240019878950250747277206433927142405005938522794716826941055018507844443752778331315989758857838812807693334330139466290871892831498566295580481847447179183376046337663071926966702164852147682913687937939254839787484431424011949042964058722441167475492328947865666942440029840245684459281366539828914780659760995728632755514586082675624359390749581086807008407469980351399725593176378404803155701338537029524094829885013013304637089615963621049725472717942082625638883909750380670337923514031688654523999481037819239328920932665637746870121854565191503528981085517076967006821891061924094862099027815011447131088292945831150021242636827703720508109495737351354269809598041625143564980082207523916294006657154211679426602997946157306712744590388940169913899083510078024181981984268317995052135426701621048266549836700115972129008609436241115851225450739733782227557727964253750263344204053146279436551725038158378211257046652183937117946510752476705116765099390278975210185754893548222747555082607699947089722042895699877592739889150130419562460067065723284472705025127217135651486757645852024939114768743880210403547770207050657781993110173154822978326610304633058933889511272351694217880370808837008396542412149899300809836607611485228870357598684780761192400749106565126786980943540050195085157644504635925400383853128892711952947077532982565777455210852717727118923392690947813322852687779484203386461717835218367607104909970839963925554897384001959649925498228308258827157325666157915093847708627094777078690620487179932981384182017790496828142805083301862072264674368022200694299969012497299267404921435778172255528649367970797839745979380482844632731641925223136574666415952349746686838947003961652646596785659789536012855324876081031627270777771714126336911484358292185879582429794851842565619413800319792349828534269707081283674522148529888902406845003401762252536538654440320701986393559624274609032619829840838551630221940108919885117929482139409761128174029839865839617199367184679321792609428935701282252044333221792723679791388181401421752102635756998257037168200284581572260103596669807750196981302372151969429753512529707648093063192549654827576861963655120074733737010823110913416259343695244785542272516866880195647298116495798231455377555967134513034103664101887551278199362284979283012630889898189541266531468687444139944853756894666670100874268555366165800566939028103593416028016561631113195945785074079675596506534189802211173806644169739915041996282230945009321149882792451741501540506931188718293600063699261038414801505859826297244978777804165611133348733921652270697633928279601980680149910500332438573959566715940654304175675639001770787023247562380702444117933128661705210440123232693705010836744337518603102087638183448618440478274505250096172847517229756237460394833851532989901871116930162866461105767011948697975603093864136694877357113162283751570326983401015865009998241028850461365724010875288917740509364503608288723233572860368223544997111022938806128561524611901589735256958890223480142681220622240055322039299689007025296773384348249451617813587848159081323970344223368701155392017827989105810340994288034329091461560793738567185854926769679002360072798495351338968070506562333602005798455436549592634772536406776194341202181900346268807584403522031977246903736005806451052086213901911123371491021806739460760597628093601277141759269808425723900733371040189874479498113940700948620417580854925644130225347815979790666452984456465772360349804178594007199489002387079682822525471515228013325562414723714744284556912646562064954203238657240016270383292190927756753281869078692111864784142176082898708805179376124519690983033438796899254293404747835971210143066328649240081865295657312901135488975634738673789776685821885464934038742015589015790719044735406681084614677800419641490221144865724763709361171943554370777747887086929822987974508781480132561268152360543285838998794630915080627266320802363786147923175207050981950283008142940172849965350666911455429773694998324664589516910908333093200085584571387849000687681108891786345844723283156368782178135870328967993759704834469741115611208070543229961945492202835152133067005392807185884201416743343299065875404741536486919717540710993401830688791962543026671767739919080559098309456048637519555826304788668185691671059420208764946971777015601229791289730495226796775260002591615584081374384700024886972546130631037530623901558261897935110112890576209923611058310961020095606829865554418064376667711358719951300329233550913683027999000192591713340174878976569422171752757067195013182356468053362901113218025352099823542406622629778191210575824095987181189141185900217890055651100388463660168251395357067814262732429934180660979788476735062448819477868731758696235355934666628458994260594889180965961260408868436612543475282298314038346103966683313536016452432931943373449850563893406403674268221857704147097261943992132482811628223758124588846501116633939668466275054165511536704943523065008529415925911618444877966677393087967741282134526742898198508092044754641758187348316072829699861084627694432180166820959688957535492413037492898039799329384914558126213399191662015578461379967522276536866569284801563302388517546312522046307082845411679082617626422139765337438053347867843277378787919560036624545778876513685085683889334536550086736189725714947580524980316951964350609966691804280356883352581584115600291871492264829216710754813822375581868648280264110377428205094280345814586960743633165646716975299762905334404924240295630859491017377256566592084897868633944802979585327700211840434521812797433338316091636507610401715760351724867884573437114846345122324999512592750232918008321526678760404160155981098251223819929605448886179835564478874139230500426018197005126026835374777672285408887451885214446423913373813990065777480997711860557677522464189249434707756135455015035323276566288121866106297006525792619873799009446718252816687480368144465700966175087957241222624609310616202712379216424297602554704699530737969066575127230531058126696869694475151317506359780076125037816698914627760330242561597144905863069700642101034831855438803044740690274057120231271351313094940397813949673235759500862737426268541489138973215872140765315772326435496758169586258139830193908867258417290064584900704333329970284670901617973364656290141037016371675374361665855352378970765331597756800129708866274380573289756214262506296441470558882051216246677987662370441537566338764262482599306938430222575812698570509028879966944901834043382994267520374196919991343977841089847782186904075720127324177924558713186793373930244851575989075509202663321106716071606655853587285566304563673290714391654611519717651424539915625088103277158660369302436870388371502133548004876761529660627687117166262083962165600550750168455522665777847434354167760652039317683007403939299708877318646075850797619592423690182117202325008848711436269749127354289324890707818736314007935639376519916458563496609495446891290019465114195953904956204799371385277818770964850605401772748846991488709162297269159867103814237552595385058691649106861062552598864029954079580463626947661106889487204600816682364152504855126197511697032599136705015561424797210699273779809053506362103029265314335320451068963860066226213156144711698766651337242725352009815335074243856700903093475130128207996256258987649172153785236927334863356346993676417913947890330077068998096128642241987598890051150189186331490953336329059352488466365162252632173313026056923909974158010532968657033320521855284219586256185041812041008502588491812893017688235155140512403262572892319796709459491204685407947175903105404800949236831428238525876803958931350895630159478093204720234324633913753519644770984360338538763332595612357901974197931502825731919325648616678196233775724509422522726101825204239649384057472486513250926225260692123315884529069768824732029498945799527455614305135917908848134078717516193452371889928023980885711282318408107464981605699173027901188513725769614078300938451637831372682345377894504791122293208655311551329108160907626771355613047369959145084091903125973510162883431656046303961793996733824891964602161675438566865433483957490655652334329825165105930402693614738704907317048454982054400675257486423830829185873778245419892895110043491979026465540935758757661411097903492959636086459431193802343640575979828765892705332767429188657520472204313723084009743893477268571100329331421451255230205324780898553631085500038157292465564235425221364085627086168448834617649558886146509724956219128545168452807651395077289826995508035120370446985940010325351851154835267261384403286239665599303948314951594685151375598758170564688765355613681199133044385900439618390712602694370928072551941717008832883613294229805443908517665818283711923860371468552394994437456323031635707704678605527485328650695355875519651988947612835392579258419319933729834070866467949798157473391323875447966666994098599044899059170923666046671586226564180396966948394270835184010835925698538544486674806510787194211113308043121085526871562740808409891269610938893987245799610692264772202871870450023777015473807659487291684673113111975424086329694708348723524779304021018452912490610715957114434922234372509831391573074200608446714565914963093970883264901853544771451686984623440168706718316062364942175920022586511059738923741212501547933729186172888867495599192197725109843173954466833205099259686969547940974971688890581791313563582632991511458530757863706212953545040880457324904724852837278083351847003629676723463551251100666934070045531974846661173241779212142757511989211111191289384198983079237199292400715072981532000261791301182395465754256821745836474991982481087693202331533345530896653448608928201533742405016899060455419526172622489298205805600686613136396368982599206035084550530644498724811967263375134681616343124843388735375829367006801875895609437216090180728695142025730732677156452111965744131902799856480804431731748200553430182629106855739945962441182097552888130428797469684262726507496697255482198643400797630500808530779760936659230188612285027144271521584264148994256880784930334361208086341900893838514553892880001649785075121306568671799425746525423634671620496267745306945895506964446458840360191961397834109142863332496759040829012495616446107670523186088515562231478189599735219103369535529797951683743924292773720941015053686175885882553073288581920068143730726085467290395066233345440885808750660009574825488375851675885952383804381685055761018840381633461271699464022586598404471964293515662218176755348089574626311859786696676949809604612952451850823657738891103571463605198834613058057117072509415619356700670125172318189225270019535888681809885853077124562842994454085801587818670256147337893087469778730534895150937566824710580131990388294812897980815424508971762605620173713605944705739469379156992202789489940829340928274977246014772191739433571696442705804320928455231577857980297211025948030769638961604329455335002409154686491811437986191198236970715388781921471201479273414770394086161092258196154349729621795503209201396479964642023703775570089473233092471822820873133284940129190011001121614151239713790372831361745393161594192561863505744667064796187158440800486878646985198390421612527280142211124812294762897990116289224732799712186905952831943177462965615371732490836854806548206199260613758508930326064773539354131405078691994717485854557550998738461606060307466294659839739327629493542705434393609832239328447015423322456130340961690270151979701742368058771752366152811049881383878007139596293737634272770670999337347342908641302605872668184554503062623715463322781710610262143429039859105859010244652702124706843154662444305268094831165988596215828802467339882754169092542122157665803266774100344859497810416180867352591135164206708161107856450345888112512898172070915857071599335463874132010961181782068771755965376770259169423637718977452951414979188863268020492362362683775217954162357782459762662291092157325938735984212694570106447830641320778969778769105246302881346304529104058430014051855680655733223914583368506672293021051664478605657060365708815961909154911152618548742636267473019417754147089262064507781640238139707726438435878123523904945567953663154901485181277786456815263611446113423376475413748268172168462139734782531396652441605477547491318531420468163594873353880328597651825013477448411688243432015039025984094387463709988281585620511194580130390777490489527552384285045816515995741790921388335557057833718748529043081086515924190378442674038164576800364113976747866681806109427047217815342297460520683830841029917209740535073011671444624906059016212109505046516404103517171556645723367985736441014454378880065504027726156253938427290311122224122365575804764385315261615708161092032600592867093123299215254390043308048146644507676219224666811702760223113207614179430712432267102544748436258153899570863118011489890663132751277056234150824928533550387387569983312340599453460970154012217899531944607354963957652684234780425404069164709619360000737600635591474098923716248897767512298481434546279074745617640753530142837884293034841672933936053764449006116235046665019365248970772914827780291499212596915896661487704177359093599530342971656284596598528448292055897919776345001085005570586486390462217897825529341545281000809770138840748066531422161392723040353525602182519095097258946395955271049082298816132392035892365476869051923390313931752767952046605429983647510309794455480238125996343776787993304064892193914836062662005470069227347435198536356028187639279589816625637628999941073745594577591581163260621995368888130771339770934041704407088900497855377166440736202465494595252498979121701887763798963625387056428003994818480844563925256161709848028220506104163644741505288777822070566243680864756433810367536372810430602817420840567311845999300024313247936069628477378816850893417653279240650294853243448913133283401480793537984737383962946280907965991399124612125143380393238753748076939290336011200310155573608834972902258463318872063278591097683507297970059155908382946444944156438542094669718660914261475435908947573144062414381523074840549749393894408434258651941302304796913913871678509178023039708531380644870047231987407593085464600589249502183017090918325975655613086105879034920335480571600489286987868021167759400518990205639704305070653396703739577540335064299597702620070577645355600205676722424126218251647576570134028025795664057532756681282155663730664038972961259611853418075447867529204368912347760527610945006408966874930825575680794903280802273966376766662530278715719785762943181942089883248346995929458004629918119185849552735180387963247868649838313799852702061454230688447530275251993463898316086618395134332668987061465351589915450633366623070817492499632808803897090323564735339482593300483350759082817343295390826270342412691305420734126182567836268598956371110745306143458350539601213082315552821250620506828139881933049966725321834838240416415249181319000651752945516002646015830391922047614151550970324759658461389010314507244545678586851973362750926922897378951548880975436673858859919434938764669221761886965515224385631618252814714176238250890763103208806254394416734196551241179711221484655333970930880586928058816152813842153932835779627371542477434992876842371943793948197129891993617163289569515976745494351955873868925460278273173202131727309052961543522358428925514460621875580697171520191257598622473294412831948755933868279711992969985945926766102905561937723739510055760852590279551138781368896086404413146142300347718882896972914427432622264516009761611880725335639704057611028937186762483654117389222631588834928469907117317600005941744337150954191876697010200838717601787033097207705482588886628010956659020034315462641020866400440644822583950857683452868044730741033435704432696569311353689085228780117002254160672303461737630005317006124253315844854081058012436594089419764666711185757408272264015157926578163380722151194318984034216378923625360434597080854493004520491745627253353709323993631047005249583521316166054288518055728243544041440400807102570311891878837766257706313643637672501769277474265065585936140027454660405963919632866504391008382558476753697700181843746122716961005455522803820978321689897926718524289893236257087098854502729092448347005177154554399427930682692896649200188877239187827162691804647312426769481379044284097482336489301988717789191769636145178395212534930140160479438744045014633988999590013450176048940456102625757103624172120163335129019009235950167923351215711506997568997486031716469215567487603658290863633304369337961468627076008359054944290368152445758012530684159871258669408927843653910252174339990945031291201105249384832770910897607865919020811925014036996980781797350609326002965252420396774396142816478227327495422825250777273960600646148227936240922882175373582331412015657089391198993840512432748769999170716604706150468835999838444932178221983621980855839135613944446814611364398400942608136235720977860312197499166273829911402900300180466287073745719935223437547385625465008169948241780481840157182093347014445458512252543277735876369625683305248218995840501483951795604864590643669420685793977372347319011969992069168031303374243249018171360032635854484753700852437383957150474845227480900220218191935158320605877050316139954157588653395457404801269151785383125575850882183752199929641336928110923761728268136263561645098389971444851411473095617056958921536121193458492813749620219178306962020063010406521804917458325640703064165600417970710422341378130445148925702606027513449684615082179890849540801841432065660030366585408037027458096334601020176197152105760094311618411958799070406416396184720532077932119245301966262213570659633884872981974328068235465119756822975751282419365212851809780547416294596895894360667940753175822297688887422704682629246194781785049164047625101425513592717659064133732978072738347193100895097723263311198249957026453968078577992074722373026526344221402593283441288374257107737207728533902778938438332706901915057949412111583362582734404015431846232559969059371420668805243529989850163635672873687277155188559060145392437699783688965927349964139121276511011751985255938791623231272607665756557280958283844365002150396707486921573011517610559251955944473407687549191000622822280302954851547538444300314190818091922237650134549263007094669186103530158402617776021200581916464942841782770222337159174657296786979953055154559260884648114346678798124382201349558464259644736727466983629552384784347564972535097272500177663110066645446378541737341479957314452562023006400969002696016033629344582906631300183890441249795207798125731281692852247907185739777049688228676418268586980583055454419824540335943334797176656819630140292426748377581218255847833966506240710330236697128825290348636503575048183826161216626904033297439011968086942806554131978065226519045538829936663836355335199514237355742584916848570628644777591812475214884582813834416813215827115085318202396573974456996176015454457153847723555778523825107837496111792464771079343921881986278848878293364943676475502402861066183399491064069623125333645022945617691823356396134737991528821923361696181332142242660849818116440320553423931336966341445192953222642207465462938786058799305942078884554466630891296099731547345698674230397275918957227008772962733807795003132497145225374326406207078849807403209750541075905610352527462531202339969677793270933285561322022821634374749446473156480541725974789975222564510528201495703828409563916717488073018165028735476392996123454312176712268194536265511859453854055920734487863013417644173873007621764233660834263139811932760043049878408554991224883632008723730405899542957983471131186671025398351699151272618719285592830817781184261792450211796273032325879438412318333125715496172081784412614875486164220729718991071825920937271186675858190127321815390865747355725660424855860236028289331445436060938147851689981953256023138820375207125971115827855590329079064085259100387425382620722982351773322474516717577012400416198746507027359834325727093263459171026036430368331351680334749957639633271823450126923192404678747963042412979710801820188937926534953452261555215520504777216612610436841322859699217209084954279629018718398683951022935983894816107731841594687671620530739235989760908916830364347139571590080126000647437113303582322425261969730022604933478719021148915174222915118372449646824800696902764066361466160246006144811053032940777515635033927361027650925870535017573140240787445293096028955594004225113457521943988825626079810657933931254887447804449124638316555038233348468209273085657436895217042043724441336452296260237934128888219030985139923483258761842761710597603840224845046415343742858423386117959924397337440105301167456156950882313710555948812347171821983510599112248008103748458614763128337942342189849776443363604611678585353483573104579704698718742926952123230435253367052548314104194107048864363186556413327045367117299799403018085260662758477370290631517444607238549902873258437140040359772268292131225317279813363944772319680339918016729954102377843045258755718496187540005585710034102440797814151327551632409779050369346308601416564462716301235473595925808580804689687574550589035014668525948621253714567952656994075914647418438612475562950921702951180019470026484296996864557568640077644784153467433479771716979846216592679578121741501916269018881832351586935992770739339624510101313542075029178338755086565573438916478322406018907820118677027289028471047759367157743420679976496115722528245107918551914041469682602848396178235760132073243342771011693313005516564755459290722922107776824395839537394640006973548797892287879018741170936730834648463323101336461720736823219257963477380632576686149301729961961585452517381681033391386536039559033473058529240039242671367637920900139267207925822415313683859518939946449428874120606541812782000780172954631994136590082244727442151030309765209832939001813946005850952855141453680349330847506751186896816601552984375078327438075855886020569791326931490065894794793145620431465568687837194311625945869252715285732649315492305740379964984910509727685447514932347976702359673284184270436574971935373231125075427301646161095285782536406015270489169255406284464552043743055447717930092112883618346112212123550312688828494807021448735312045699096198559451506424420811327810341460662701126243945286235527569272097739524793895796242557014320641299081978927257877391808789909911140354631389771878266095682370196182055570305588190236390499372724944874364674163495005273519424962539159958720792275137814439689667632958167210366005830812859635602362490010785638034029237765494423143855130361710789786575061889863657117659003578736009630662795003911419352019346939566807913358610695863827092310596681506620817748876293514870387619147185249311420821561032233327533497367511881185419364669191992696528010248705370731476027912064323874252708819629331227669390219899256085722154115989488145673794945097713196290019797522459191926843501230224569925311761631281901578626863040261346722066744643172335031772370362283528399103120563163191939890287918758940031912884602168563819070184505458731304224730304017975003076184448040514139379563181749974019351346388679669933736020803482247854109222984506292005939305635972071611923333040768347521976577489051857397253777668172593638016962875674538812605027972426042264373763620664340351850546562423582298712123761182627162092979446353437934709753195472009518095790316762540185262013974277859235019972591517549328050881391445709552794993669707979304537192782908856687577089149094368912711401456625919987510078580351028202322102623489522345808697998809530351242633059584462924765056893077232254010911896452680038390563166924028976519620541682693431470347412734419382175711647279426298284073439512863390884338415595983651660680423579003032899671896347778722022916803003158553884590409415453021903687125822278424846080878727497152497714935219623497125687519885014193560779259991583714835702197227190859738798718570024618835291561773932961737635291353599470489155355403927269273007336485837951466917098085489127514098406653338532951418345425750684672880543842782131302467367615559886024736392468605079522948541330207457593209267111385511241911000040689868207998692949787887423279118736626594280829674609457227180594669883278949588616511104943545797960790054842528179140640360693197875052984425770061279930762153852145913227965079214547225031409220674503550091963910881260444194883248854992622804440890515602003453535648728228810127224441121407218870081513674031989296783189990251649262238707228483339966202814345948642983943015411994349412959424728917917338400575554678457993744916695571874104545747622969587124445828375180295173506890059611121900115399922288815458536276241243153269361462142533498811896692458009526672222705025212267448231545997146020555977237843534895952604131497190751010814723005235392432939931794339397620804892169844858144325330368139648193904818605555143255591643108980958162336223086048024587470472343402732816114149043163998166911560944528613014419365395813567169416163261573004186708836709919232182620072241232354795749406190369096082443777348584457791107185180219479541892929762872275039146578107609764449426620439851106023285532504435687195283123932604957861162718245923987995915787863963838853235352024206200012865619615767074620485025077723177454980604818962774270026884187054357222863884254227781619532339597822102883760850910727122163294862517441675994699659758625969226993740683006406659974073974114527970389988385000167494813047865219295351027447490496738355099111078459793346012305639562442932448887397378244764320546528779812315154965694956911434698636779319093835077031582772427991253032538671184530159246609522043631268438429695845594577997749350116573566502802435305987148707821363482235449595484449499694574737866285516125954884363809579465298278216715202266742513076075741494751601767544776349657861889480953224199616991713336025969513564483239674049303696561694651658127110552038751909670311401026378765544969785322348539332225109797654279743326172312624219322020375297739021140540675535343671844745230453870916958743282267135215622562981265019202873118823254219044665645680158527208301343239389306200644114883425289892918539006299520470507315805816411639164506082610623499460249313579323643863579200468218229682621598938101877978057335889603346630279297765230283406570679804299073834870582092938306055669356867041077279401096277037485931793424413118623309716916571640984130739930846867487151310395717647683642496461396624683994512378035447446992407805997554210413257603317626613623196739885396925281578900993487038895081267402920396274125636241939520076282083306354724489140280474156868387887567290422186713427888904625631690069433671540741363049113335061586533338624750098139708968847981092860501373649014334228685635150630966493470155256049518627486367248292723511605422869591351398462041975025660058782317942417021592875204842941032152674263394474620550124854360127843570561739005126610581184412760288707762552627567739839299398129243477453067076661940674019976159981030379951145809585716448388248850003323224736996005947387793949271482262840851835749999847211848113810995383437315009369993388449496089412839886373296067551715772951785575459614624452630891710906025173137653551280935711752043270421609330372237030707617511611768775401122580329770856852919067020786175586025002215312737313147435181889205209760867651890951703190438967181125991019259431487504728959795495131165781391419355197600183085641488393219876594755540814136684736404413713429227567265791713673296580430823147123366096036486327299023365227620637783793700482336744441115256782957701998449093650873296287779707398432993190618018974468668094131392575960204004024140816799702696731517724170294295094269885516848058158584147418880509866351179802057920988342569611818915145802803999126992718978907055779559536459168325081538286004533211851369022885020551264167415992329351353099194198208868792808623338454855458030896345041979065440988854190643302306939402720947806784463827620737979025419615541807927326819840491473632424885715435709811808798322588108838164375377437275411539482072057110638463928143016520890377654816084651698386524281026382403101870080787949205303902425656134198518509573273556488533159351166881398296553027561573557721208463792674598226635379219177419838651905100501938484678328556920329107577245774209712971956743713759870714790823202194254577654108950991150381551856139922832931475363979830356887979056314648876688012904245800746335054254536241691164104112764620004566437690104646108611941576374468526917976867854802443590591531401227129517177949232917532779699630367389027210808649899012254411345672964745228197655760000955099132514827071391794961891875274359952761752885236395543580142367987655933252368044924327686181684856216605044259526281595571396887062533308511820268077971915853840243139873403146688588971506444026266990498215280921654457157661345277775533482204491338511057704245248184215070495491368125441840040957016218566042397232390702365823258402149747638210041418531761944374452442325748967221800058582474105689541566722084436026972631946115624613834847904644221856265189280649003196887717166779320496061859441907017446101117601218534850116636109259542135897786646628002412971881195253536406671494015100356823314933834066155767484988570694135645810946891281679299829629764189827859684708120426444582925847720434282638260562113892809452548109577380221244268280441505288617399678498416890744544438754529505946420855184970685186071748202798463010005032389243026603667164781819953530828702224870995545437593698711255159637527922344122769933218495823612147461765465800880482840060727562707288563595689477556146205737082253362487729461731338681204376843203576456969967024864400430385741448090396901506021110732814200922593693224952843250842551414533608081262326461309440921851367538335892014348681523741631180562141250458407369041938374848929476273887547523269789823556958949547267303747844731258328879116472109904237282022152362499458865096591168935090980879735124063623427420629951821189469720121310423691360145066281770361264151685954276786159217275301799422362486902800556081901607938747835841987182467716018905382897607648380960912396232357009193095275421809545766062164402851143276969229115736912114102519973013550558583520919086814529772228278924920586728560838456084165505458599858219946340585837992922329751688040422077390015434879087458980508101193224430642678170991202599283578419103674418250508572869568772440687283802623888522755088675964020489192530661493168808635115997015415968560982227521455147439229551610341619157162718585498414958117978733466174615280155191692391045639900759542830964660633646229993813716404034867345806773078644895568606311617183527730230951415173272415812423172732739348657733791947078862182341536717359837097649580663060342500790660636775734588344232983207014291238463602092553898439782761455507926726915073085397376167393138069859360769715697203511293854132206689879122209719815392300509828045317673726016869122738922721632749627883510093012591913164398201266764961867478428146538592509088576957812573997869333863945798937096261153218203725561685315056819045306820629798867679119579420201303486103635427562356541294441855157165974900450972911951432960537219013558199891324002895607650749215239037027807391896513997505812350014781544992573415256694930322225818032161330161722561646701182665895246958202024275923562144678446833439599075256198318005420062551737742217678401048514347522467928696442956772261400756492318252950586900865906403200213761224001224290662178594850390250160530149566932922973822458495992268546819086871794657305262431740090782399827603812429593035128192481785312866559983075720227784036568473761742818671924170261919554478538247017360592332595421600020550778321937073733993732225731048764327466545385526133370301804667931565046259742539909007800480787180682719785581836849419173597457361840126130590242411523895563536086792552426026749715879624252475991242296144716642451504990958875850769038805509780836170959001705012973991927343067966843636174819897069972106604214597449411493745085386288536962954226972751298824169604382224601007453173003911343627575392661039036877000633858928604510568518849939273568227568127124129920999108892785669276992701735726182595877374028161066121447670107185391575941031986225934457850073887015961582861305304474578649730821950778469194874029094420661035835592660074080079153758469937172332603056016701965716684248917192121038864189416779648988219352775662123688991380015677185418551737733446565274587593514879825006833555651949979423377120161947211465253110053334015989587571186911132580308775556231949041112182697625263073982330225792444035349619115767316388169571331806164927990045821741764127715189145756879116786603695924419452981318320577514207953756063337119192804717836219455497194764823804781001085802392236981486914310786833746756012729110761224640568087084885455803503247102330984847252941754789697194789298757247940005823994693751778025636046864029005706544493707756470747480854936725670132456110635330708815027818112645547955832358343175416975187635783913455960184333284832449503981682986404307997045249204290715847752460546765668366173397809185684220308784990885052043021264458382407468531970822065933672378978085367622355858476812383551598262189551627221194842689411294700514769107844770580996565902017452513370892687181795202184596341755910819328033144057378071851595641495237103525042706543457950928938191888109930681239350487462518418260339005160581233968226200172646732305079925261836567696019443262196636595057364101974905986071372296478498063053871210674569728344984020534243227449204198472308218494374380022846448801608167532958487545936876852588256069895636463858370026860963314995525649120009504278186400119265140764477634041787570323780056170923010332022266203620036063206758292155982169021226822577314317885637783389841783901478323028742292554085997487967446120536805777125546865285358690007073835436359832794921827080300990756095706370666991791523648425155863024072886692745581274648025173145963807995949437600126904933717431535800587439312756821184420469587129170641729155337395098285900901428852592261523381510094240674778492686287585202136428094261193604093819356245005140685492249790336277405863008728684548671399990139477922569667740241624004753522081145670449213122267121814836331279988298155495716706040642508709665967931596972639070154160420662315392233899806508343743386911467873958477782869363477078491189698016550034863386598198836115550947961866754193547857355928690369269057744600909881417917800293192355612857907744827412152231592070679040074121301504419731951717531850894345122463584500558811957811869004818425910557002781745487063694041104454301913749896506773627493052214295380202474164765813270697085424228227797436494731933909603513663191922837843177579162036696107404685044089984127763030058202712152541570125957708916822881443794535533046492585759017518743549688197897303317856458387252602922161816406049839332495097125709398015659581651672607765298388886242486183043268426858542654812828593359116871119167516504517456898967594351422133521493475619946421488421582472923884955589457425740965316091345824757634937277376065562806622307019932160375781218428585394385715328093795143065847475643005096929063141638639822296163710115000740150953788395615466962450001898746936043959125980903233405724019043821053156255900600676281753881412186501477847772527255452640342891224316393225198998029438962611817413510001350118941120332265901457053391473106413234062431373798637313856140446548352405776969290900655530039010474350700441129106954846064508497433643620129208686266937841437964078923389313913412043317642710770894051773123799136205769672242137067772402282470219636081219683818225333961152794418230012711566420831586017611717055571719348411603612116692370922127481444985150218577511166374888104030782473621404539801723671802424398294867093505925225445554251487623871127931853878283319190559299846238030868147951856377464973835218136009601703066893399589493536068999109200503206552093493996883810908271748425645383320790297921686671891144287848487665106953956897135970732766419517425447096011729448143504789393812342717852570089213433337583114162004569724138404399039373895053237600843442499043614241969405382800699710159841561767607493066702271327303168314968333480657481899106544358313831913077883213532828908193784273981725407033704689887522870968445237135294801422723515754797701156035336934911112377192556377300539139821467074838142154481224088888503118678161677792889310630032079120527788952753023005862824598226958186726228112568404114047500890035651851967465066719526842448414977565104349185361256782610679022893467134815855497404070871742293083560188655885987382719145589608799759541300533853364774630077416218111779986119214211917338458730661536798532192854847574109298421609779073375134012797891113642718680282541300771358029706662272676952667144611942625514723497826312756910772430482460039124955330240102575203289527672238386751079047083294716366470503219425004372861992292184574691524007539736851843117014911416566040218282770166377151216806457259428792178396172576746918639408046126543678362305124454334152348764215999601452459347210029040240226729271913334809953946790158116027758389550394184847663105585282704449234812028213500493796946777647890122243584801577329902788565172683641129875004104815293467284761045333180080961943065237398771720027720123938126293669292379967327353990088151562536485194981252477679457655352529229643293622262769312750367258499737667895755451169527769831948089797359671581902873070222769828311655692909770725405361864189155703596950984870875609679648397105451116087506673812615829832821079546420036251133764016455467039885970530812917413116816636962862915477530023356526374996034129607254126483480721213754664974047161273812619412835852304098065697955707556377905033717834469782296249777204840771823794378853553129680955108791177846730694645492108748472697743465170650083032621582114227811866877036663216419925006843475914441937932287118041050538930643749606066750525829086481777198712788309674555878269733666593543802724685154725494821745433444721723446935685922810327797114039563449368314571081479464587743500077054427288735980299150970362360616173001441729736927388788216423146234217172728952074419209249413037929485301298317048235729643617782539200814944192090261123182895165941165734548480559092503992408043776461284725764969729150026825997065864340439663122118620503489176668712575365608485249534038509953310977969737972303122298128989770283554153469073117319309098905897980958366766373032529303013753502681571908105635913905287310270888310629688475204276821657429815609639416413247988557851614793636843929946014187642959945238706459410752053156529845436603459537035124441617901049495096584641319790281073064515124311384549976484374869246472536264486815019873331644640802150302006018682564449772240829995857132269703420029116861307319555404305320286492019514402244616396431967270289649150207152235311602582904352462884408601915469487838930328781173961983385500364099509168799944165097801288716004837897075715329491217322385733372185828834700857154294252268383139573405672462098166962970091335181829280469326602949947307716110771025433983950032466929075937440006146659411902465169960482799801944157150367384165042003207218724456372238300644153567238679601772546049526736812892911443626599776882038854366550454564453324379807271165329878929057342778783472092444341286726364558130643387525138072353999223322949681106720745202247797278486163900639280815548080733010229983548838617939573510726404784230216499040669562489402561817148317472798640218835481165917363886587850298959263235888794950605343679465585486330712501403655102033618294979936459277609066418843525410066878921328083763622011864151691342827147276215632287735820584101033360848058138896440386051641900780779333553197959305274027500239653226032081955244941899675230275459759518999864313633586926403385233950612358494290754197594539251418275395763837046291651101593806262131711436143051093217372390639259643445560451610536856692424143359456727770426848268922057022332122654756998088126543069055459084011623532096162962522457956242533179997274090258876169595272549397741560875838870320163701474736396390659623452300977037101775003633194833109636673646180479683162557145211670148836112031501350906558825785740485398872557262035254882701793262772718785037407911320782345540757666967616712271450632895521787544761777677196591684063719896096812255214404855996717590532484753333498610884200316219936058197379994158649950138561012479886144754099348125189439042602945841770157475006576124755948556723851952981895894540825167486752405276395222055227213972748507404120663571996720099650273789193623935545535614891401219417289258588276405662319173026647545551768600488754329172036758490096234540635274446426465570657629877795541591391384284412031647134820802523510730069572451390801368410532641358659729071002237864405053625527580079019913500000253585727665981101094214016514210945703065176909923364532387306517140416427522605610841614590509144622350956477566007367060115549833115620049403629695749157215452767665365456722763604702095992852557192645482995099093299130767936928148741678693624193752937812333939323335439286533710785880211842922002029958393450742214801202615058322040692190363113816385302883501421226612747894506038392082617202296858927390787814784725623665696815984753016972908252326849218650069411748523498052996513913803950398851423909614981395855405087052333040006439246588506441203862507711713863372096682785687024286035901230607610976533684802749798053584680345624662957699592209611360440845677740444058237838237343146352364961933115288914901848000764878227800718136165692570109898546866598531903722407184491086674740454857954624689730750229184153200078334802148491676249369949494543856208003774762553753694967340343893342070282492858546275528955603745154328911465289548166896706884029913057513378628560647288869298624314249167226108059446871062803784325393665203236383721279282642568754329634513326731601339589488493704624378042874816479678692015092062029589613269626777013566841407268045753412124829647152510093506762073002362705150226371908757065776756764502982428106788580531303827456537979962628245087188356987942730365585884006968740309193776694367504725304722510899476761062447623750451717716535840740983529701280876162467740524972225964334663840769930456072887757785023645550032768262746220955154036790508609725633063083632528141669149917205615618799555860069835021195600990987718217103933445824993727584617903107748717666172029727157439560501233018409091903068738872960537502136058574676117474022448286384968593196225569654914825691722860976175883435705039396929712853447953549332003565631711273732753514637609201688720547919733655875325373171609608807075677329904839426923217427514749637336425941339846124334619426551717746667702552828735936982221516628697384505999781876497774738051299842060207751849985871705500534500569590407198212833416941339592664391582780398448317166056549896836704880573093446487030004297994252445003793707150682808437699757401741689589838704978222747621940693603478227595292721768414048104764674523589030858666871891792490297003402300577356730880870877545236012321748388568515266041547147215276628212207537822784569158462749174764599192238400706588259246901498432204088377590502573811062390314150546925705237868152603908645819853534541406650150886810934178030928002682530726670393134341812394079372803793004354426300084114681797637037948303240701094673800438346600443016059129267220290694444328580499449953418821011566137195899589793495765925738435542621312885107901688652987278284645554285178732879679820944471857504622966756407356347244363619510437004245932454098753715213203219363199321027321387264510533210395600095148557216539636464429265868877784782529214016204356194288081262265197679471601947385958807763983604350589969574912761628696548111988003862587174283995735065910258819162463800046873554339189786700300186926825423860855457000677949236000279536017265006777169676554697803344372808342372098710181713821770694401021882204614587770087846233722183883023516155188590872480174657640170723663362901010038291290502674266740609838630260898445937137752797929051078250958891641283378711269823211684560208898259995275184380994251803662572020379593905422885256543608235928751770894468075956381396276919883010639843332623564475737451901831987726455994997406450834908144878905250881234483150817563710063329542174872160924177206730894048465704707406059247692769855430197278322447129079739992931599623035908166269894019046544023601771438999066646388287401749993454458406255567028662677236249065303101345858963310501652628684386180560963222206099505948101811663070944988033341371644382242784359462965702980594047450101804471980345852338421491325579599566615311223813855673454823909160684249356187427092575793328476059976221302940896881653366874453070819509603100859110768042006099668476481267102534565585520622312092324666350102096674403002170362559621976576672857055497537986758703905785655082869622437905198783412951455692913652462415802010783507026444958813381524269562937512498483637499020982846230597334176856645694923945600968790888686239994309944220571091836346838313911079116970262018225287514049833432236802700199104766188364275259823251927237241759731960486385647995262158240650456568847029936715235657121483416010544898408008025836921315245071304551394541053479538546989721273902378002959770122184071527771261755468812976317992507281275202666238532777071770067117597242494181399715196353430949275088435881210003723210127431267096515022933273588173445601797902213922962322482075044449339678547476683907957182298048889804044471652976520946459379081231385483918545856870067223747312674311975955746924913518679323671652049073512748213169585100125843127032038372271089794552132770247082482869403741170417990066774210915958435444080155792551925687230680460424822395469063311759099252659691915947632386676785508073689045406750568918580450171140371993429289921557939311402429396756099138120168810662284525135479649108213554637887287675192971589039422584303226965313121544943476262066216793359127818483057897675807650148833212993496275627899156604248517780077112946770331674614388839648158377698024016650551974052923140639226311407433930081400845295789565856547045370906854602347653365853089539374241444896782786806930810373582285202978068630123627958216238833708821746268860496037821150495972445693636376452015485997938811358060223648060945498478499017401834479438080539601874214028368913085525208496402628755902438596754358744915541091819486579627341266595109255992571764442902862374512330715533507810374022961335281920036548753285124910486674204385239832990887160499415842068782194328092515506288161157841759231088458041712726720489822968194700548234453865056140213125722487559905778090768682974696029481273203506147822455838171654015601077489691347760003242933312226858044150651569498119253992247333428397821182801768774548597271005727795482599254335164180133621006559162792427481074359396729808939819864423671556637491222052474546636274496890569690223471091570318913436367678442059850473091718298491362410670370198536851305532023028795392495034765776820642118208740644793517223207321338970691243610409957988137139318026402228778905912354977879071940333552123823718247235892568443871879108612340679943535062857587676594689177270503620517945115449429133468866375692000751585702778375700595122895821235404441344237205813941507495153084093790224552445479240950533095015684693301908807367420160508835204586519302605813170488337945971688069449360108780641863544512347335796252153869652792504092259747204469183965880152603283501808642172092672797001168599186224970739349340707169586002266749140056091461238278186805578842245921368534837575479390662717699707548069349193747311219289957904428066961753035087526775980687787105635807607514370338284494475952931812877593942799869943301795868038396758556258157639450825090649053199482553379931399174394528584275948225140086789646893453581339913488764500939933054094532193500640360313071144686159316293148584092296330889853868552433519995679691087089900669583552073730015012454030519673373221432606636795931296414686521423819982998193360537900754774295386304132574870094719490170741671653591077928073770794380823404322810292674213887393871799683939480480043491854840178245368653769117895492690943085177437617483357463624412293436369241072428400435121229003448301809815135075672209462113394087595129854850701131850981447944782359031048082782038125415389468611874095809538107352803966002647073256352687874467358587746684978076278364287967149509722815337091016103666193039495064451172106141063276713339494138804281754816354536910040495946027034347315108777454693098491384898836297001905652426856037087970933285260934397317958947077728242753695704483057392755787219393937914525866201173299389919544893446865016275622197802525953238629474894715514765325292466934314516433282879055719031231075225945371522058411819765247500683888765917966433293871325458072393697754352263832263416477998144063062426790618856944272223174256517175497094237049343767895427556196676736300264861628212262392712169056871903334672075352497445821539223220991126816748423962278924653196358101136929219384097214089422615203408972646520650162536387733316858641191532566857777632706902721829907132097824168807035455157307711233539959186455642083294703114436561775512226290306540220561915419090154093205521130551692645114590432960775225533050965732310320268654093663168022294960052708141695563574877662602310938500343546950112703946237862623987675264304933010486895598119771472685801192535484772279606932382743215136125043521146769199247137514753361687784383683419741086283619955470089317077499133339590941836291456406552889282811047073060334240702532378407245130415121148346420115151453792007180113989086562306948505846847614836092725471953537982664587429626806491071135482727654083359218684192182816120056675177077841085769718266341405951062047857010390603621652855106132907392783206587399235479107123150952605055681595068473138481087696362676041937663210831458613433481441454415240101257233080865105161928564564609524277959754998098732406657535856256928420108546112491686719477747333955477344836288868851910469694115409921456760658138666787858427677473965552284647733822924041282609061346968801359625110817849219491230592276409802801900318953626189305513248620367853841258939266769915550121807319712974339447934496861267043343713733765978909368456469636719264525620873944525731287233721233286821422717324099266623050876629090118458551038172706793171980239593589924221544171079149405664491548847410996435760338434536656120819940184975170635452277574426933203687897399796068091279185567928092933558400608197423624265272434394855568478515521591676687312495651804153775973545086910357576493120923391313889185063408901919754638352131564195368440082706620868647718458968789475606977662780601985832967637081411232790273283869976237945588138155271706286275460751852524999732448920405588574850007393502711565936172087660255987913307329655820245583282937714273064175103748467070960786950440280173282656309061927175582767743431026725407418385283777053426813441720715148562792895447394816191266828662168185945595698178133412962120261850568050594964443665702613770761572974059151952075719360589090553509098320159876332026542088969583458345611386855552749959628774906132040651292392439763645291229230154754598022763655052217144803036575890977090039341815930828196962546047719593049097178457474516505573255749843657436234142262141717983158225081209661190990126506182749818673561269206465287338502573462860882402462386092325579156999353196288332796596852586626914812097791321186924546703914614887397165008572827806089199980774290599166779314969629849082812208387385589573886998462500725455613744589824607884003891810839886437987621844408358782218905641373840364400434317386426469026603859263169921412535496002320922382242316270697812372356706033587039431078012200809420450270201411086065170551868130043513452868019217360404480241979167948563082372782280738943666343527525879758090271823803232275882080032011393641692065457245225434512023552904287689536354051089259194490454712176893844527810876729343503120817109714678850225470693132302409714092235931776962002258976648859539265615298347833559620015671358537975553878024017501356928007846457644406185137397203042500893482938466504302038360866834911987833143737326609562629107191617625521275086696919809695815728614677695441559962405204103968075950979805252483113585509055913170776281065118576188531878298326893494356226058367569947802907580941246438455552435627387825775509455267450691179691275779097487319212152877455244083161585849047142379301066484108673994183363579872722288457308413585924938937677916980911913304104920160496483588372576416455115018282842781416260995899705953360409514371500041291669007309391266107921619178728867124572088888590629384315176074528687545476728742611842732003473636401791549224218305249679534779501305611435884206076402725792442519505636591616256561075019186479996714206541086098763104662032063482164425943709828210080375153468076634340677066703688861068873628866867420626209170936186049258617737283604103896774215441319349413877235130658159648091214545110489263837311803473860209904944683712417373457987691871877946713722242830571392070074855716889131576436576521441975790250250503059406922337871769377164735751215673568640715269641397290990932504556154810889064550651771345066078959243640556915947587335811882620989681505769382142574293650927895196564728603709981776973300688759594186985742542313715088740830793006245353438181508370087422455240454994884540596458864456626742730153431439283061924802935306150050746183863483229195784579027916785895103547285709390647421423440627762278462302913864798762698234103971247813853173467911462773278212935617805697494690206809478925324796092321228597521648367909239251456167501988255390559008211509315718722369556976307329861394818158886689848487543934833476995624825371531024143780669859036154929479010684154203458524892674240319784652838306602642224227323849340007000289288735030167013085229770538290525167093825443955686262830803273225562598201480116805659313392623264174197967173165645272122005826475125959479113318780658084296085347578747576620780996089496312371273347599766603216185265339539152899954858780477919394430080638606777131594273062215682187408033783501383894386681571345825439896167253379636629958332358196377563114157994694702055761220077735460471076128808721832377516709747227043350465638664401228855962875968602999387668504449043405200262717300400533939092963572084581010014251539671003428403328353931275098085091483909495890469968783691405734870461901037532732989282599968156114249337769820653957442689632928348298201076902383368275434840643093824504052339398981345639816531650896282740482015814753957285285554966971929398203056731653058815545527231014295353843206641738730748417392345717143951055990642619997346431916589212532534664324114199615416067484693244420888648827059980210621871494940899880095848026916480879320173370937812142188270744183317599996229565195718743095322988897058153191529924381356520097201749254544581928533321006620298430828668628238925354366334011789048064304707559962667664123816820328317742752138088039294446490393474950044419813538178850166562302287323890123280823727649088931609641020193187079876621449332212800387255658941369064063785440526765303753237543065248289663422396835471186459993408052282848418787676041438061983096884831895292772100815162388470041931071983178744075517996171165844659412361227710492546761609722166689314696395137676524209064377945100336400830576907103853794837373464220466978194974001811324904296196959382268151194891569394126089029695589933295861592786383521653670260224217187479701172349427153349615539029318959198078875247543182167922269366335329122949188594564015959885788366470136301745719275279448345771555202296371060153414486638733836871039273609666060208205519358363711240441041375487439176877533908262428173959181706252814237680206725050413117597677073957725039480526497220616438110061991641181325080084687420708627568753111955521999067913541734551767460237594796699078110091310287207438523228401692978722991545269045507677317122397545192521824992063236262941851129580169004881841304759954153520851714364110005774988218932254273943434120487028934206332338039724469239308124517935761454949879878890024079299013236625398714927505863057885111418144873900455957450668739200805440215837215494102704538753260404344374426098246301783853856409802154044016762291276530011642459946751888523298730946498645255603096623412000675984919888792952358517713213343233819621547591189524873589311552178551320160163412502434780831780239975291877362993784531539554407392950890083114556682482052277414017945460500712419991950655331471586420771403553214963974887142702079740722077351925918718593773370229380543839827972229563865792502695309666046992276673409355635580719308447590418182486030237478911320816383781077085938856322409145671308047095249686912077453170454511462259257497948987150516891529289593969231824226223561436656068506545992638401474325896008516572352592169551246461703492753914822587961794846191608402485860673745629300744459273357428224131272142988333081187184391810377686327699415048639044334517128570662112938998557456467305655480832367634961581508918698199212078719786987856994973605552130056892532950166289846787165519192692336720685640196079063451334659907222212914667053844893878755508720133499152436211226956192919787388403570120136110949707429578865299271897579947254304227185675598360215796000441007842128629449347647554776578187461013821934707131325135285890016242856221395826436063319068343878426857308771957297606139258888142750925740507723656190133077498029534483076218815788256360631897143118715404779058111710243405795212130485579168428046825649568675936234191765169727487484893190201493873018564620382584454268063576673647886572393468766631311241548542277394058430658520590045084533659397638135395061704305790762895169263841872616724623028421821483284567190363260325779096229588375557894959297626504974474385046352064169279961534525339392150483289583269977519531142601925428513905833191034406325987324239728803503143841659851187958293086408193964059104707661832970585894363040628776026357479862234113250700748287968429057575039461089703698792061031480755175437049508459640312299955570432483159921272159357029326805017335467280954896040419031812644211066239931062960340656298164183945084177733311558083014959594203662262881827506865864997642902675756686976478724960859917742504819159895015978657111233792818874771099118820403659421406915747053468666819598766786969332356126504457014373058997427510106457461064706986994848910786261357294706387596659132730881109592610559069102805923255457720857364779066959843743430036903634564592714323825418690470401039575967634525607368362463162238435032540348880314224699669008809642550843050363268794749801025371557192914520965935281269209879681092411236776442461241778168547588693927185917231187310155759037605984958346234999165076186084657914204744082500112302344794458458668055162229038959834676544764907169960865438494504938835095379638621655420944609411895304606616533340837830957082035391221853062366536949161046383624447505773892972431518631845704628928467059862515602452696839005211684053524419016758387650766941270897239993725895757531370580751647744267875556154255803549778411783776745444893385181659896883718588356117366440334230423411049556230590584183666681774862748355330271545367632808592275891146773026290557184315651762013300604968162568518230433286785905030341825664639116968277512073489158708218951894396892899100135569078744004466779628387187137526652857842011900319698044417428147485020584513341858198654271657620725983740022799051033834642759567852272892501902485069510266541616400043206969561774534827342167013975837037499174729224770084300155333864466049367690428639176211921147661918308556779634398309921825752819941237938210608520565927096704002902745191462025042544263622700318449562180093644772535984410948758313470259859532601588413913767230422680456849703520507187622258929157386021614178367244896936748410774565982091733113700149744142666807428329439477117747463539641130732462571819224045249111507680365807369313152607009020074109232257539690277172061017300646964861932694926715447484056278354290851655808956375620043181187902826546668856610539904623603285262112680190647420689022669353059237470500512629034851298055191987326435409344391241668847747200241541900043362602740420077326473361156892127698404419544583874038059126979567265484548158590019995263676283877412800536045125245532197590635433375541223169459005826532479614931792534251831830349715403804787155172395670739459981096639245066745617032046622119275542375586690520649726832848846280472002401078832865667179957828245612190037826441277310831011823855424892467471543176651038016954394498928415808344458677071252776722595939438001148212584272357174909710430161844830933429349601260553430227918361106013430671022692089231250908770211079974700370164572719968715431514053035014032596593694296677554029816790457951133075213098026817229768239716495330609202776048849982375698223185006761130510378951129577897789339597019687629826305678904075126242552410026797491976316540612647891940303437093452549848941893175901275756850896207662086579431298829927914864780038677383155588654224695208585961874789217595416935458952857789779346868016963775021602885257113925835473113776208015912062873733364824813328853509133240631522330921767065816336481470771157093615847989862293630827146515961122218974961272209002084386367786664737215879257523092212544393305177297871672577680753561536951870325729233574512881100558867072305686807295349710576830292994698320206751414677076475566169941718981579481780323997537612496409131091876938925169219550836652093804517895398585754654724473849975837875506148304243858599147913972429066363882022286795526635625214688666441873368069907430249241278557119985542704668556983809633565017514280565985352292366183884952295885126671196001480305358784865064316122722170256308048256300687359512088492952826786189282848012544517441555249901801545657909028030500117669275794784750929892949507560714758060622468055510731381869950641538025202005330535839991997302711394564709773400007746686704602052061732422497028267724333978437033140076901703040413892461951957127647567370046056816328101959207104136053961639514284456241847011125356733453571160278296587746977196251375453773591149930215654151110226906539950313227110410738371968596166551394569150563444502825235705097575403888657034416044780227821504520553135092835933679779177628407165317180104826007140111133781012442628619296946411191060080817274661438654646207218149298610836773691675947522101854676724292795401198492329265986126575123364326997616339381881428484513322427901485560134426361613825892718653943151297687484307686080377792291909850575811728787943772528726896750632595603853348009371668149144730675812156442472516393562308174233003519860739637561103552604151198949545024635875467631061934683651960137302406127910607281174717142408311076307525833295298540656523618938300801505661805350303195476614001607401658450571618524194693577043666223440666011449990773423437353748743360728649580700982731757248702032478989974460154679765942136370750831296924910634796108218661474629853406747149531366816515612760326789742699666716767212620342455696736695030870861862620379492063522127754012948346472132470424249880995597751213471705958901531094809777359767984331976590734762302645917791855602070308243922189693417417262537188614843292361822978174752964216939870629371429070793946899106494113461515538587665181572659553798483544964679378942984060394009262832638789739354548946403755317482546866812118953938151555461056001555500242798594957359132565434381610543401193125620590495927387810237027624845407132332939199220750567696392518109030506077172931041447314339054486605971754959126409387992265063981945499609554725859001920573959186239450848324150082815666720929378141012673605480520805472113112773686742202405437800832702323248140197333238181609264284567779006272178006237396946874850660875501227013078387199942662390583805944226108855913544089715786233497539604967899757557083432887759388058873244521964403848494769778492577917275483963936394188854092743773762756716810891198304067444253988121088598636453284097674096679235339391897446794023630366870921871916751815738404966235786383468470267650765033570578206773699055021773642582172225369814009260711651194242301389519281606805335719362289957719335009986642687189071785275373475977626155902887724770512528936628656543667345411394410966102258966486079513075825492057534001665318883093879170527235954162416400098846232630858641070494177873812180380429415060555140496047456327100945791586258553514049100012701820575175244109327127857912268153223461801867763593062807397675845054372799778794466667078225514494002236066613382905433298168125789995579554790203687551626300808017790742012878896220308080397544131289310737221149785230668196884780618872494995103585810351486486514755310087671914359223058051279492824866016677361432353031153138724795815721056126062473833097774040085003637501538332186965226124274720182109654919803269091871545381210411311357423937204228055752209132699295284061418714169266208484419648336544946038984112590090262464031435087521815429635034090002354793505353043247052284943266264905302187694523406524331509814992521785299328251364414743273201220386204048895112754185234082022804720845841210747835730387971098545092073416469844721258115586926976572274464821942521871704696933441196413232276999814602432958177904459392067130286153780926584360249439165122986287147673090280132077477074987644542113366792201409877624949000207417601056776631600016566193129963612188803266658314491784174322919860936631120355103810028965484765871941779618952426658684944198684521668529538893211462527689316938857019095573896379462813340025485752957481067424548537065167093538789958876627093198311433364908056676236900320113318222392207305516797609335960244732499694588302307301825437030234633975436551642895062674347680471138407986115839195611286414841898152829944158568918333752587408762786978036059853740976054163393558722240025205928510741110759553692693922236364053479773816397974917707364696171922671755937608066389379402994954141236416408496522015704261636551637224439348255013957480357250662089271190791761005772154782720555078716433322218509519813017124236574657512041022034513101675535543548712240501056295941610606541432997919392214642263933065623122966399560082614033399116646701398539892785810908088032135366727859215594802667042798214217998560100741202528921198425186813217624567011465831332935714900541105282398899845778756173970443113357549019448559525817918818703206650990951582902952057007690153461284324346906380129445008498590673505319686784888503802568842356513613173092898082414295747714925648212576565180354635698448041406801778705431321366021805897608375323006379357581197632270508978271677094537293765715496442466491826537804753176420371905424269203734539297995541073079557940457483612017600344284376660822170068203563932173099107901446278173810035433384108761419510642120768907151091414146372777421906456032267329260178225409360086151645750386465006741719460928416698955630454124703050095819015445825047351907341786532372372688408652381403717012030154801709544815792438347515884236333303043900540759392210515476491420597481621057098489271718267303712597464560078057764058411376715721982225517981870319043911686316560539948165377597182438694405773049654360211636602009092748516538897904795409781622142929172422299031573614039987476554008760186305482873010928338115185167215952157502409683734353218426321143845724953817483827522098700544383957774924988443329492876263045768991327707206438126754670375976498493424357388670677817921169146069886160581059019540755260185379137886494223680027800250489712861560588241902731451237193302642986118685350047617332076689404560693835246702836544585730507993097880740585620318396529559915364922493399812766597177469470570565410052333307597808169528595683403670550167527293254688726583302817456134774824248909245668889519450139311588592134604088986796474771388349774936117574694636384733049368791861397952449666032683238637917333230313156836751556690272975730443879298652735785905145126984514885488316951800727930307434411997696807920779351932826166863613164645128014504208533601769024719071628953644232180871530009242507773820274276927869198241042222270725292432992798020101016418644591949107935649865429329747704818617546022070505124552503121498236970402560157199248317068411760698350490161456843042073674051470973252434091081249380940553560110204635211952219935266105959062160651382422291862554284317031231074572453842230220335559175284096140287273995655198593657918633105348286009927942453625816312762800593757655439313428578775278158693903613661923914177695384543051305234021903370589021186651836802519759840058676351027353333756086567049980638746994988986713312406036224072947171298956345061139875338385313520959114058703982454668307601466697084842452371000126737956811423760113200415868063681247768246748785156025993073787576738346844930736510290933405126403651296281366172310838236308334440042348000814827197060964018433457109406570740114817671307513670498600080791276304214169723651378563438286224133473763929861053873016009968844955866522132110750700930843033611287029008884690982200556152812774384317414819430039434912769113565447982287879198802843506711893733562595418421908392760155594508634503182776785541129573487714342745260626558238937660273029466539210305042387133917047043806667933681344397849632014492104756507516247650851767152918544215676295081534540198813317585419994748101522649482376302087674496373236836397998916236784202204597664203857982134065200003054235092520613947185248766127536458554916874743388994085982767685578990209736939658284712674206258689364758929282976781640575411146373744902389811839387963558182922064914400427779951275654441847600362870163863265828391521578996993052706246527277937584875227745776858814458296667600023088499532292212484272955047472552541719294603553901337310506593887906283774418910718773938878697503510198067787320855112560160987048665066421704901334672718403706595227882114185445516014530780458329088603374643912868842844824697474268052184865099787674237424721563571274312344521723790736723696554494586585758829777341658730566932676784248051934709055521820195747886905990572488390224462079015062953384352999854510601590880899073149126923565801315945737314826558782726408805977231546435132853573728960563792964889983215487627261061304307028624968118697461910091796768296623160752962125850473086087966228625965235082963117514340590666923580475025024983308848650108135370134002379017660825727553127727641706940751649787990131685463852953551050032490762323669000066376149477000039729773725959929167928757162194799073845316924880881406201516196651122323180185013677962480099776802103137943824361137630077810757176557447222739384855420157258230756208893311235621660839267554461261593364324953848867588826279589690539663533254000060852439219604126095268295731808087214341772306151763212673495734764245516023702138306331007727220973759650535382365674326678511479080930752112538317077530014393141007690099876653868260856963849346175848597578711551922426012234446915950635430536395796392833043576735163151339628930304322156654210662745289149323631038529786288055374069440472785839006872552727825379422945018345911657843844226262943614183181356845777999065337447057174552466033079895232118493609618767732953430027333136857613892788035288623064951999011140443800936293495939056834344483775603633852162035635440446358503996667986755504071353016779425413235354318002707710558846172185631412646949421172125540612797468140936780727327824580893473714896187193656861178565051964810214826175641682701658346370365209398012338864111832306717395622841528159468556467545216813568975653344392672043345890954291648477082885528099753216132962624309056520422038797821453369046941311408346690936559654034755611670857977450166279395692238145112024868808945478619050459659461547670256956912351329658472260690610987011302517105170014881976592027530900827011311541215310579246809377491055543356906451013212290478145524182404750599988192299548582274373811009184227088474624982122406954130787305421240497557304868255845205743482641742912209913151457421697916056188638186443088820760749816160592583996579648436744800141107376745143174920879158448216376181687907696218682850928653799747584363387682205505850015194250536894495919741775987829093490867245227308602300848206661901240731342454073715544634693452842178040367933567607854873435211854056359033520880964699701840482878551140911518590515830267444089776712034620121220363399369734012819534755929577795572661486891202809101640877990641889688620749441105913686741395722158635921377421873226670784754874914494126395146304109227224840814274847383234730735387431376477264934259370017704176939183293075605861037843293081131737644482799722834613805276859766247960316420231632064422726806055043936601717324569914779202196159086685855352452044073212258970338126512372323994823218990733557328257414894108525662985063612951373789874590752648940821932691764683086655482029931501595762992505630987779396959363803022784933631411924705018119253801196479890708996297646992296958410869005965751026874192304789888114173754526631452958361863489592735668514055461956923248274862191127768156538330861042762424591501569688320282204407702256428019525952544474864627362776814377839481581341242167782773975460068745027419158134960265279733715349589714392654096361553321474410827389804667389832217590307280032299771910240046193721601872081118752061904206477209197081397209260496981519004627730894405135320020506010610662119277888820802055566502922242399212799844512576831225159353134999003195674635899491534394040980470974276715675765164572365270003601904148849565688341928208110060949073671586232280515912874677159463931723655116578226942225538554988720829491878556217244532847391477722761710974945581665266266506444281461323189873857813727844797863124496279670602693040806886540298634772410883690638100282182335075749861020938235947660565416793403149717627814871957380556931504286374989148441802095937310594170350394802322663328157465293979162706605013282162489538833711699825280150905381407360624205426437341221449993242814240593488954186763335226580517742562886069611985866679297448450627180753285552935108534528925484801419016411329528779449261394590956971176201747634406880805247954508882292616684919151631390671052275259591728548468553601292197783624261611551387761901786117530186401897408288466096912830941338593546224282397695399740442044084516085823149166393686801699565814971359614257413735455652139899579905046437527173277849862056531763441868240031814775642319554366592235577947663269346075035640572567492722402609969844433332070291443566660269056572710034115047932817758448164465498333379786437213987718200813108512830006096502852181303604480671817303094692839697143977656595487296906735505136421305592268981353098717322994302652517709339309503703523479641570189279853982256205657428062336911850593741772322127958329062102979947772327856950506743547387251396072101609093498547307664900813814533912079539109353285584092719788617015376854302865831578361407893032069483294633432030928472964425790598396812904539870920921884846305794477125423267986671907238678937454492368946536792044531239072813238119808522699369764220734056184799384301843847103942943230695501389238747301123087842770262666899124524901180972433407425958226474439967884788136291826801699902443686240239497093047180728661906486533858867450783687588500769268306687790859424897521332236911759861872952409611385667678085721589020186438736646858610615390232454459707437087332064667628204172254723522777637329850209740753675276928813524445725025292809215846677247757039804352575998815456880020171552861037985820796897764063905229106258323755147573305396198893235728556017025155707699147148549578597531617999496916881876995896526643350998128228205434678043318563127939525466152938163391162021014642252527914833444289732619147956900614211738516604769141043681485865685434528791157930262222996150685006766382404990593208171260132186490962941742559919739876395330397756158794096301144865367483140813082352734200254223502208078574435774826281456429856705131329923918900563898205201349232286805635364033118197371132844042724995204295022781062591431735691736587460078313812675733766907388477474233119387018783491189415159045391144476972139221055531342145633894542675808552523536490748844311811459569501572346409563968778661701422640434343534298657548663573187920582703463766804647411471412414807572277160640826676941396537354621858597819070902427084536285436984581090623641233570392950202512493928157405330803146677461084281537510543449090823319764307320404191565404081824193730160169932945927519737493658555923011759427882784121071580921011368542857460955926198371532038641147542863326573211694691717702194734112434391801819685531744855873262663877609968409611593979805762740146960509676794578887323182893678916598253492356350770395068146582975092262908604985730497696212792278792050159158530768131823702803518698854349709025190269720937666051520972952014282089472968390395611376095620730617231562463450972461977863313268528284919235917726841717198501996647223853693696936711262288471595036353358143167215584040747165630956267884202577752864635144976074741518273829394162405437674214446184414931317658472258449592397016589268541356777226930034845141978747798074969295130029779787007601256590679079583550400858651673111938927815548424354276758152011688667913216626599702735243011564043216793199648895178529362871079320943121911357166876146242285545527845626291261472634177430794642025733524808649921269383291772931372876191481479652859294919395544138257495738506978980146490369523509559519649470950758465782741305333466401192899627669671862677889995475349772142659827707154222638604011341733757977517490745204669202989550525455662923419758222349973640777900112956000882744329437458466006036725581076115840325344373553547990918865103339758381565506296711606189980251768897033650208755433658028229513967806840312227647101110048824267464739946145382811558443247624270853070822292341562874948466238754438756364450744493952210945337667102159218506151019194154648075378904098324540325026016162769381945493279321309232516068144871712261295210778637769174493908785006598747922549764265769844205644126839870933048815069395618897831775778516851115245883190334609731663166529269752883297938752519862030407998099551522212682783251462742419359197614402176040794894077405969285631789841258741557360460333921447804178845558753501905879407253754169312551709807749608690269889714267793288275347029758497214629827381377277911995078917888131498064509673119226168939183257776096434150924258418505782628018085125981362255329127006212853213344189703398728147037443003442912301354855258733810167008318566039649561001837515844166429380507554052024396120845507402595335318699990994884824409908072951105652485050560750957397638161904686123467022230476355017316027648935983429015820890948111705335534064726692900386894314083239217356865018327566389376716576156310837248697518848991507326897860352829508818898621505008135901871272359594488904047403585457997616573026570012771553448583858895601752427269375341725500593941539704071322170518633147491536436385007596268247935692334514270823241856888571894801483915350887662260861043095822824939658916127192516203871835122751070837994074524664135198266821871504006486686931232703761818541541908196975308077864633092977992769767449450554936386583208472792455393852670694884899453088427144433495105890621485980342565205623998899950374824109422998994622809196606623939300316919165099923094861815277928943949642547508043657771487190165801474885887907228110810261649079565365870734980753629973332105724508239910933198257977027882363721317456905907952867579528439256221451682212293802360799116873718340068694702014248694614046808848237880498358669969610940783411664905558537384440966038133930133806214188188416530837281383992714491132867377473336630764700406406541456613012676009206453868441612169561514609138119833569919868685265946676733683249574875079213022932675255450328002570921729480695419923870825710661218645180929640827395925694551556051933995146812034190372620390969337964664050387654617555379842953236703539129999665243301581576016336616790323151515612825291755278261829660314767467806897346975875000885440467383437633359151611999707426534436577425765986909860170470281243279464575287155751400371020691385503343233827886940610484565129955295140454602546946313220004309318833448863897931758943471006692480192080813142447305709315649289885588960431685343151128092443859916276536559998901410171047948651250579332858662680210508816912267883643302920698406078045951102696328600229080936757460422153077202316925320971591083717829449913057143246253901467576410937124703662322011964107234012979157255268064307180283199661215100412583508104434343745985009875402113918338713866347923942314767315550395411518195699738146407490110188278152519304395757541605702051166122900778676383184757134363341475840688224256433942857309497205953239664121987857285317922406434089699241151667983756625485368030662199926645912456824884984879906942281900563024932317342895664088190471411573838359222667006990660496196097935616505113695499839187257824209365541559829155089163111819963411778220236844604192001412280819788830466701636467708370384234148451263860485843829973931231971539599675018513942112735756378952335104075216850578941840017456281416360589899980250677249703398182911776469006267923721621140816702202430961621094962840016577489335230749071730059401280390664264903324954756356732424627263023961634719953294461437107112840511109470919932802318944473083951142486034712300918911265692426227847331203161044937911837101025103668257294151662061428925503745624981734732717130371519840614085302962882031903177481309984157128909007898735809613463813745381808552990884276108397653155259266549249668498226235574222817058933196725883005573299342673466872850355704839605702985283370884515421964044935896254574774622675914260645233991636646289486956323556320889180342955943560405788394472847585675518777684180462849134586753807731243664538911518039827392077205553898432586472169377385315594828604138304717061350298424713271040348447320890581361703269031257674879482456102955676262019463100349975521205565954267283899891617229944743836150406047422594446395117397415130064616316024419906071400754587656255651269312010726072935352889320453232214636800990378556775257156115769293944065052365086064368734517010850462993661079291289979806325945314369036901871904376512344582153382820154086468396424789935772501388501704209236097777080407387604621836450388083096842987037247338463191911659336567404572761897142779398291128801265517408577820688996213964573561346551321563415713183536892737370647186277439186808605733055233845026929554121686346176647107952720872463659876240957430734406024651208483382832557400961028998133248075822324202312884562205937435253992013128168450261577187376945383732048614224494150924477407170301030359870416875412191273167493539586360041424008956671568954911102112778616411664126694354219572488490361396698848085887062208410242756957141586160440954822618130099371313339151316696943192974811995777185134800565571424253189901955347240368319096124463756937215152977209101735257837785338171724013209875934828755221343498695548051753771094256606511545917360756873887736697595941112168757393676285062549770567178524085493653557732769688039848044348941408287313290679541241640549302645465423243775300697666516618227357216893414114290401738172822433291761307528878289076931705442145220282571321018118596616239716494262397071205248158274063045748787238349432931422842770766784141905460025154274566843343945511188427663666597576369716797972458718763610118773118595565807809441285652635148207868772754932539715709525782082096005733714126374897371418631555732369235583109550242097782873315773428538244173563200794513811280247415966353485438354994330714908642515784572809400036206738529575009211843381296467855335699742089928902711616063197145543856376907559526392025466934777046150126541899280896382489350953842021363754349447580847770598130653703580716705715624160033417750072822065621057542705828528983556188391148393402101402551729480441615697368997056776353757318153427610154528380118957246325834316932364923741638922398291663869960161517744189318424632480552739302138030784541335693234583007258308343884642310697834650172489819454477924128602669467080863982156113786220478228984710304162660425100996055929777904731217392857495600324327679979710817491480612400322337979081665807221082225584378583803418734191562591104311799199123114123757909071926813208082613082588853219473121042417140495182169767067281833180077046792169945745351169897387633041594882461014993990300272200550096493416128645983015448626887845828036432671328564130379462211953411449011440058213686864968135984833218519365343746809992368581499572692738521618638894580465993556033100436873831967686202735510783952033267251847361830570901675946720679645229587157636080819829000624734739537701577810644799973740041822613151639184519846828994406584996043751777934838131051267480788359041320914400749893093249222771320334269210102427569023687040547109298499106422356342628916882094555056084401796556578064993997843717476114872599857576879251680023490541361812855712470919638742893825424956695466328099743646506598928559280002853080711446177393819628032763934907102470340301389924922774832846892161567562393370115047745586525382495949290054502933884943110112365197776063082186167287853456093973632344547137420581155316800368598186364982736737255345753739925097740328225789841658428205100336808713467976951405004716173160886824457008842555574048571915968363450280201138406384191455430581180351285944684291507202632013390008464046761831548480661465704581302658256429218678374114894085482253370014515860135878785468051065288923514558263971902852448657941237584041672269587357545409563757186500003612972253409371307821520395248117117777604673497758050644277020139854902285232409391703596338572542624712634905710575757717140673390979877088333339778400832841069216517274701812272506635292064031775863047404205218802056043480076646232002217784343779732253820230813836591085464208209697903105052861351205268031367797283722483784525558435316836753502085421178830671354017447358090271395466351983558194373701436160036568899924313278331607253614768242951786468404448614480468362278338966211620186618528529923028755783468807310087268066703740548957566318656807323953266701387617300476765475906085638622026848690408897026555844573802666907807298312242254411082037409554789455144755023558432122966383273687814522732334656877563405932995752056370085027876840288691453606194196717178818299678631833943122827412911244110050570641837186069625323774049805232254179951950654558879777418750114661956564476278424655123543415854514525964334661944463730565480973246028003854571211090281046883357438891291189564127747361203110968873575464565507049399641148284300919771290736957459836711422361056458240243115685503958143575781497333530543768107949512671734953619540869839795183654141061948907193540355736756833149958583376141418848152560109840676999015254951543492138593571789366042162064310216646011801652624080153329020641226831316489746902548527732702335823831014352064172125002209474551913378238256895821543583050967657023473393976508672524378787528339909303587093417880422485487349239548330898949285818846050424674296048690480354437694416760568010575505923798458794111269130761217950259954427306904796398974453498625633366104244545056279266712516328595612034906360168156620768686600259146827979944561443308210671964834445688069655680163976327897915051837729454118549505879786337748735680912853028249480354957054852978488438028949720924791847416235163216884113882240936053170968893749112699290142583853042746004469106142848051613568395425756847032804968767230610108156595132869517762498450248117581127755226248349750564037463883302087561058137146795407275538283147452982336071989757505910452520057815506571518614699067756727412849405709019239293084046219619159725946328088546488436274729269916764149985638331957402680195332044587391614282377939541795898243137796259186770169981047426426353715079471128564139828782169771531074002197829417603285750547315208260966768943001045532682340463633952162820766206222319455320859318640927797428487765873425443179330865492495573593515017207772979220098106017927038298941798698125983578432404786547336617481064122499961572016526230109087637817717084789671128608935995782964463494727356245669125271681025777160286822286905878880448926012271545875745289320145581155313302306552972849477892550744665795944667243932063614352832986158865360350387859995411037822618307521091990560471046120656039637988525796205285430496640744535147553624458533634235868011412731091988868384762261680070990520137661646200839694917498519034428821976480746226276470086378039582176390326081770211008617755588548614080471131563260536281240264982247328346106277441532909577435649174173728765634654401596576005952212407995172665787684266817550601179748990449222283722255498139631307355717598790522660662213935967946752030626382194829649863429415683989905407373455877298107388062300982150155808009103323028698860927647380300580292068103730112309292103948778702487177516781412039917395791601568756836643881823033124085272495567223605915843941840557225353725742940090289653996704897666261033994432935494145918561826377968639446033199088336899552484930577337026066910452998885303910785146409935913082100423506941599040661536722586415382536191847207952021539012763952740245274669924781763261668897030792202358725141607530012270558077853012499961784629747360145403582805170408674016334850058409363060207964095796568022966737284367720115809805757790382696916396429809400161219105037912699664589631443304774529722345251368719628153498703086855738191887272142947871867486511354823194062936666314415998920180682223866397378984648793825591649708790755271642097758848526838517029172402677955062424083083103000057462694157763558975979974612468952475303275393091949357010977689995342424312164733349706539528872192264298643385020767501173337142757642681617810072637191609339664114390264342882520633129033649208795774687307655895850172171686758648981411620168784936330088379851783895119433382564790905909324445001897447816182092933996169141997810364963357066586228581487667520506200512609712145605877138968161708499043558919152098240835029142611380372926399926657803709022554395640808874262188150891461621477772750016371651908018171601682379434083128208807896294489842166772685600831423534669902429076586847394295281503203482452337829789461937007940036651206192227275862466881454945884664970814828232793893800257180656401750545329689534315851667036868889944750985339995117621481329970178989516474513620480871692547204941964202261884422307684298750520964802711024424058961338054365333394362937796892048786763101339935580257404641283241994691477046282684609906561413026297808536339342762319101373349810736567047195230935778188228836450658908616473164489023392671086448059083655339857417231035936357017198236146538817363493242034940457418669552907584096607754386522955118357380089213376198370399835526453679584245787415063634175919170084045342025294291696924755910588910483835051447133966389700340776541574773619241013358792966517809879744346092784092294972382019186236294908324215130151825414953518214228363669690508566994163991379983940084730022198508959135073375568105843418085361097300060940414267841964311225924014694006427114445363356190605215963373533626185831508677429831300557225433451984898825005790396486373589533932103477550199029463670211505118143221402570516391159712786989997796322076042100159448732320501585355147476179379229047984124231427399382005456152737334658678904181444324238131694011236010930221829194075816563552640195474207522157517527647573067630863182095733118946459356075362036626574091499188026627688485180285204733589395701129482874333329972206868144278565266698225178153812359258476269682320370519078464297596529986784518570023066672102487870646605112836441534826776951411212617322965329382407672433338524165164038899259341012715453794289605089086031817676634764413605092388328812788311100494800696744447371766673650325054248106930371501956818750643483494165489606384661826848878360159534378287166898707150156016731389611065344348308083037008301548939597298301851857874758121819152692900301804493710689517844181924568714120646077834218468004716134778674047544492936306437819733480380364764150725012516519855573327251003250525839339812495590603649869743025466853376264470473385558107562580382253229189016670802494568597624052612551820734715642140265317899584896113786339171172506000530740900619478210043004654793788269245137320333170355051537110561234942557088144603359477847304305103383991173674492742557652950402060333201459496692595123470932589385553478550775423963672469901735893744197726265015097313348625323435386960573463437325109810635412254306800698665245137447748537432153913646007881852067905970278621328775448591776869339152846808306639809563184155178960162416340003706185947709754439929491520525388408975581107355766266257877127252914839792560701999349546256829846802465595437278244383868655181484250151063332748670822129174373126646008358976582975553461690131571958995018581834484133381549442624417628608776842459371646936942333399809733842650055709190337109318158356583088729483543339912615532768995703462415552745581473919379167247623636968246315806348087967086038510203946222868177956121996542190558495533389683984988509350843407203870748387335224210873570936198738480639272287558272936128896215430157367278113943723125759285699356851529640772514648145239664013536220563923181004307001519790727762753730743537855763795739265470215680941741856479221343682476429676252155714803517007920182296043998493661758015524857986382722783311360618364884183205839823626513336409493535265971625540031624089945866625312034988775536577900944628866221464996180144874262869810651907583081723410185425037315171924918909280126393080956660715388869796676137884587848608940354539242460698258414153964390203638540572859588774269290740248707444812330271145423736383270798757357314110583230772882134778865773719859478269518388061832662203075271935955680851370140636015402661017155908157508598317170166168558904531407366354045109805078791311730745671476690478058705995548032584434558323892952403005299778748710837275702733875702736802401461865462487239315302618685566257103247737119289288272475256884231303070796523265197973955515885989134371696365136607763695011105255571448632111762016934519637962751479898565488128010810111381186249501524220194465376325331600838388223734149616333996818966488458110953030797332132889361183108158253007896066436653970105901252040250372491960664322386306896023020055136811330478643960624722758755556628089147464935177071858305504573566587306294901741552486149805372867690052065011579978767527059925216962934828605436401576923420614888034302035725073109543421954142286794002764480864462914023454478832913399385283163064263545054773287296645144263740698713088954187642934522584325083465352899102235786523561589325076583829432328448303692436200440193173340871607008207773031038779707669585560259358130331157361679552000542495039049868768597270979433722952508602352046769914241026815286311337865172210292095359439611476232469511086246739779261459988729879224684088981376692550429771381408881862343630472767657852068411437438226614083859685174480172476463069842300420476896566105419457474668272355385062202694225707129535313115853464850909524226684667456606001425276389284199304065478865573554149060325926431388142524438314094343824572232902965193723859524853046208951749374945880581729058561003015625690157120309501623460160129641825477375500728497861579851155214351852068615956860023580405050217856439906393714932179771320041262294666142767018908560684606190547607730440367527753575778907829913939299163568784073914600494658753315070869866209360717296759100704599205249585862019659866944414783487735807746939944476584876232218677061358922071147528119247554417820562847675157984641485208937357634721229791525013846143911618542579234096434565088160677791595365459517325328988806711703128900499912482614495897762418439886957764179907927692554784153239995436386793414843201127748305436866152393058065586829821247240778884782454956563722797098609033949665000264378782121974568956891019943467866329782733559687812684235762603920545266423042303771634565620615204058846862025238031506470531021779127938593661802558741261754717119304911143337571581871392528852183727077387252240501141540182690072087429534009997747614627371747290873166362479047186425129183935501270981158090283877900253796052638641069150879828153654797032248953688937481202151921545416732384447129138487333032012037563185986457950155676578793516341510120872092577109461480591277165606452527894532063052988553075075481063405565148023535562885867904214937721985209215785519507740235490892472659546733498454570675897165088576597099802651508217028334226122256512123593342119454794515280692350297966753933450330710414208747293171523894048238463748560886346321509135020556524160290172861258436433763087463317663045725945277451050073433802466121023964836581722308247186904218014369892065626814974839617035141865337677796708922615304089880505041412711707362259852869436504471841792499593881756223130478342696677022648840905393545622066089688367779617635666542409278420800012526322596202822385998499721245495051397891616194742295187315777414486759065478038464272002167001198056880867276393943370609356123227533877550518883262485974796785372074556623201700615340192707603462943630410347185288454167540957201950783709775387946852788001605167804854137296276682586519239006384989140325472893067915572500308573222247049105299095267611537070968812882495787033487281834153031220633330516917861273209444568457677844427563929907610848604615939399932028397271892832216664294710440040027648673320623213332510571754933405120082036778444902663987626951504618867512383742298443413070633267079632656377836420187941803360367082788686046969366250654896420742229526107439757231444090962733730583420979484165336728246510279514310842045585760841470577402249125134710079455546533314536832042846024245444961543840693226104154963632608945199876499484022376946316208652983783403968121657545759672514402827573351131664788276918447875378667151892500374939344144015084965140432615893069802297965129863269236911365474516981477761306360787815286087721789771058710977987797960554166372542957483963365058516315373570633373466542335536701933217701763815406471691626030005367766010976097508418652864246387492083522647866000589565387287606980190907442389290656759686938230887430791385310616238406858741400192128669703859648076723297210210872862509862448164182024865599303468754047630107655502603392520723303210761200171313206237699059191020299080977693954534853646996059236792939342839816880184776750430034811592638652927068898045631972297129672239150538545356346339202147627534019685331067557384265945127476432427073992797742158578906021570547468970190487954412513053602240611820663835025896132261999605926470325892408507101344617737542521760093061714141709560099426699200287184213486120643512258383121939274730983626940099588888096887528910952098008869603005347125098561970782822245989256917799349363783460755887739750401758897713108506331837685995343511053126190552641357176570488595751009050667625548140212312757129088435608718741843438549403812289603007014663868791057978955509178295356229056937601433835275346301768023693271383839640484433979597151191299836012431295221266427233916027892501108854467666365042209507079570059816871214720505251261759676202605911488910195006709415691980755628454422978531698931968207401396359536388685099452407828811798839470372605681618212611989986952720187210132746356258154439588529821075211506818939149396961109046260964604015606238549555575985864756664941643795629953439810802262693181873962252283031046094368525453545093537105989597682446587160674628721599903531691598927833533493549663167320372837486587009377474211079704846409036467939029546072841535737456493626982689017222955656043655882084718679567269667676193396039365524080343496158575018363722874672937019312401023287255473532884972441064536433238974876210819250939133636124527996819321192466723111627536671341421918166426001786800420323741579576346053022143792466915370286638565474302909972899785820490538514274507305675746602460630430821688099647765213589390001543502078835689272100235194610001154405762861664906537673116075513550765005963521325583328534503769295649792876777577652513940765545618601503027120299603177582722444341535964723819903795807120127290196855064877116078816405936624656345741114911982972600989127383011879370283449789113741815793942645757496634189246108310669660171514263879452559310435388505442213647095190938292934478700687297173412867984889979591200819214498538597483496075091424444839376657330245503052594919914640261596276397108559943751907754829419532735451618561317528965091776497686208355179862128656810569470674058470684380919822364769562972393972634385876388526832761706404328169212370063157839585092663160099891955979357951282374025810740561280069575280155886022893100590113280223816881510275815260212515899651243815453173172335582099515259333460176900155102061043426554683624150972888795828623752972375343004037118492442534873301039999724546955018997630249360893861983331604394033345023013079229599298080179389265970928963638733519779015470650573675172122617015723376377253168677923750701133090590486005616846972402105437740538393708515565830600473935634787446029677294848444643879017439821606471052247021253419670641044070248981185184345459388622395573502903784572091529050107436441994848149527772004278237581238626835066107027984920278082938048599110853448055568961681308763194087502403226729429362385526065225753986141832933564190291873317799986330685105873993114438428340883139764007516760099702519617001545408968421311396218130480453411858898146330925923996900593888906063561937803678103735862076823445416556630115318973975541179369841831120846474284472634713258303849797463417492456220336884492555545957518666162856840479279213244648455212597050022144844127240591592277063905602119072683262151455994122747154405175851152486689091194779043602206665834479840188307500509951872462954931990760827372277128081138072083950123727613580274255704282338053391664843264180110036013868934530365651123124318990008628094329319510529909776089671579645253505058351568717899083060130786693928473690286191414640924535860854261366706197936247310322775212793023988919162467436978160323470057612586213859851662006663229778776545030145153413330742296294157100153700969143925764402416390837563678907393281427723152659953274080889966051981853741016114895926787711287871514141131613601387583479923337168694085759582623256255212739680251575503045775310542441249069701680231602423910702719469044314706154630696267544130078138555972343172170447638248866341730256932574944141613230628553874193041695928116668066121079780960672646926257379858267453499362037827471990231750083356326716644655576099938399004486063157580733805358565756788887236056216090969765126668948815586261254972683790309997991520429220249572400888712318636876702588129970129195386899253100271360740210044731122255433978800165752945699633430666305290301663694738683597851469450823983893481678548424053140038900166153674028266523559187874879971086015799664328725128344170062293799395594264731451955515761998485527217155192086769930384051741512841503398480041217266019796044551147845770528106748256550742317771122840519278065914891733707357382136076186348021004607852031559636121206927996655085090905473008110950018454403268215392793510587027238895644754070567177164279974237182129789700539516929844935366703554386494377910185055524796796893072234456112911460035984350739720716586256415562501809170318947585107588624195779200162600968072930832577678564977023329462674433436782880766558718585793677184363781386538801462833798242769892124321032972946834197601470203740225913483532571456819770849642780318266758095231069881268899027886617608445554831285057846342130427336515714951001518098640137901996857360086486970142293560248254655588332741762976711581434950955322251635287176501458829503815946101279297264819302047323545132560411175169996188402290092625808500422997480637551246953602734528464945978042571138831461354006342304785284487670847571157296421748238036393825354186327661204483318407294534173542783337916274698015753679323266180043041587656086905875556164261534345721131468727669239759358653690814891693636388314711608129971136461797021100083797678376350775454174576374558984881574720300604612048464014805028638490717728226373872254095382531475632722353194269355556212318175201186930435709039399758425354528358104221612502043122734499120237283580114172967318582771755549889965144964012018955864044260974701225391198211824217997689805507379319455714127997421383676395189560391947456273307319894576572458168997251928098695463755024125870270730441699934062469421281088932825982943593182167160816959422003844473204470600105934611742791837651757909921060592455983765012705623970846698546247679323116454342751207837364746397218444013211023744752562109133163849433349044031242827524321337070992536903813941458698712790989914882959179651626043115691269534343215159402520579571907020261059669532283510341868560669865544232566413415251757703055931190707453159634210021918992645449011832601485571238591664389078529824069675859495230293715139134122723109212965930288913886473393837166117641207950001378961766653599231485979719407016570127218327501498402886042311023294816724748159897067708567196432860848602779373780967613539300277579291589174304421398565261248274759249375813026649067360410854528038605159825505733332538660774114630906156235549236212389168294917802935001103989977510486281913866726883235636692851687683606262099597241753684130074397335589708799956645446167802530180624470640167444926136638026188273538878619345369617175740910156080469452684718629116470463592031639076204034499072418141787111600113012020787520042467816741747890363746413442750871697032334159863977385705938719244756815527612087178208207765826536521161628179315635773519822907348535598401168916534492316841401252396072906788522317953823928628299596895368469670387995918566356959828028586963597322610878753197945059789043392883109971683302728634763723469457936481383435141776899375603291375939289754794220886413366567890099481912779078118280167754056646545404538032286319221051016301636582579256396082689172159762559937189446256906731455787175053915447582854315383166271150384033729466510906481457967965197448859518918054257265092847208302781170823243239511554330532280270699602221550924833754948033967998679803285001123244808521971986635085763805292300205766912219307184134023488529868701835225954737900977839473137511160892493668664736562406533554305634395914220889980066573112517423955989594258936390267116097027167060454507316353642261918972791671542668960141419691653667664027437587439952264170271876633679763690623113348154457931109553117219210471509594298769369010120794032213577125409903669975670034521390182232948987821170066349026402680655829496752502240600046749914373963779233150211228671207322040725630984229076246142351613850671508616130006132625210882980323999598888377263144811639888562834833399023784851514465703307291101423929667792254345796252055875122355546266239290122532904034451444825751701606654411830124273436571674977937588923837052720137481579255902705644241621009436776370118083805151239509161831158941324534397700171754030648464261603340247175098168785568829539481333569226508574348128271204358509875986715408404783749767606061637199317313039645025321668812752054005855786098943155878427445790184255675911903941242831720044956880720292011326675676344883129732258222070651186741068350269694409262793791276937155686089893318488243464790945062378712852872646927171276992788612010824765434550416945047671962181580095263956367031382188262735633211391323322082972398332705406969721200621564698553711009572132640291999511303078244134097461801127866253944113482826677478804219340943258948840985561227713400739680837079793563906958662203185239024361100781983360197412955129868860997612060386487472833191878244401016765781091679918440565123495908608219425892903018116718400161847562471027374592033479875789850291015864322533513723514125966802268027416406651728071964768873776524036405387455000478225713235306086840406364021143744520949350233241798706683432591685250444977314523440573732676560914913784153798730016736824268649109302687684184047741611598581716517241354327664117688583468609579408145981834497782880909651810990183598509204599425320314774608259951730818770454566824975424224764912394496223981673942999459070544687642258454855870162855203056393038629516557976880266199319660534698286519794003630343013736061947998426417234253104640985017867769057133015673877056773564981684376610178059949544681469497459454317296790435298415717994022660553840354189156101306348105575619529606640011972794256368924649012678160674808332655234438332361864642790008181258573014814544142178648661843497699827308149713668934445685061171202662224716399868355848705437659190769029882108614046329339853609533991112802902517309932535334686456410619263176711487523889782866459763049036278250150353887047845342399509341596856680481060877798260745356139279753721236128935270274115804733241597586570124184674153548055790888932329741293152440952870913919221144075827904392704865814140217239430873681372087311633545396394623098311589630610069106677916290837445122578123854062646218381526120243755956562622239303528527238953146111943642023368129774460976942263554562294185842539761158505278343564541712718414856056627307561264530186949596454646400140157762328034463922678684735421554620007102697449422419790850295170771498067724138960074813302926979801647066487298656381786902266639979327133177846985696414097259727886765229133245876195598409675569543787391676364025833065250525569361923489591539389377962375474383576111041063563048234438740807717074404901426569846522080843364947795076370648224859065314377594375725125455635175922504779947324649423453387894711938775434335536069987334095650431504947837827196396773623925606861069779470529707849574079984172007849951629234078775879349631787020544648628664166776856663451774858892674656849814245802162965256833008960837056582850541589289356747481600463900003677583471426854089990541684544704396222945911168538364077524780426959901110675145156310113971950731780847156604417075696971347087862467163287503852168682533730915076920493047137699237202032141740385962030621187820347814547806531133664972174598853694521577574454982731906092922552581178047340177334787823764594638682057118495262185313168942899819744137458377697227571636114186420130028908705777311471412486789608148208307763538284784309891679049220006659707691665677927909429410657836815223743930949011625036885013818888081740065400586419108740816000702927551468819270162236859266632463015451701627891117847134732543035504990090370940028431935793182792366445976135852346616723744055130514278255278892191098167454847966550289285682167257013366681829553705806950802620165153072431913515712521935921653220186089617693776646442076852454510832211186625233665736936534771156240886043893991300825144701093237210023004771912946398814460886085887673886575906786215356783417462602684890856933687816673950203961586934628684666795433500722652375842007301972565504279929123012275326130417492633633035115479322181692025581412684104163216165678755408512755196341704856470614802777101774105220143144626038957341647444992059243933812955659369851190102446285625214162089738700232370636375983020340583965084048255794226015783607160969221598354750254493366807779040981343228479910594644269913770111943028724854170628449810917692468357156002564727320839976067432264912320123293973782304964724085741980014197408548747874834550165226232089905987353188215475345842623958166027490242086498712610610216643012705842886529465169549885208972345089365820500613675327646190720827927062798515200891454095354180437140185355330374510591758689036871133788275924831477646284281750983293446837978232920271622335842010748211331613338960325322882522001884002660706361056870322170771397689773416967665408801070198584875396462512576952356288340633171413148059351095118045162369230319666009732524855749140257415398098172126080797583186950734319705809256592361048644812548623785730026917955994953161891511823141368267336210895359840697341569093454517419510456564833253553780950108658878680353358952007001197260360462286931456156426579480845232370569158453821871364130264652136606263644601919710171126490914568792455607718060113514576929640364558427307361299634403276363079980289122667367285597876766909269089342040228032952424111243676494414180628104884916442811941076890661555658296664041548804362705081303710426906340159309915131600071736005699547063263431906914768617295968592463968441083551528236866211904403204961857159323368619868977394273067302326731178221643536242533927944143072838591448490218548704375390352742420334486785923264752147867070355120185315695700669649630731505161808210982532700666461647618841823730842476659829826190008256932375074928380565225024407695021814108507762838132753411530531746277448652531668139845025652933774201365767599398515168526171126063077517429524084789219716826865274446012227730133608756480416273895496070758516831657244029808752548947577621071248518289416255290328963753050134503120650154667123836941746100156083901602609657312808055090770034441137387646252358715140203787298382078201383404948045642484942956960924588636325645984257867113855373602396020412630579847914242749209896665912686141387829613347951772055280814624191415319727565526857134118933364339867930629026070407873078226049765872488547433154230022137463410777424726975988479924133131989140029167847109776492191253493654840234797476073988078899210639852731593339234897424133442580477445645181311901908845729584400519414353437406770557909951112083469901909936661704536350394913552236307679180663523717269157498614779932306305644947024540581846855871761157618989527735881353970351064958166710423557277735987516018987298518980771676586950712140722841667775598464235385436637250529316869991594975617540723163798066579965605775530382938408967233116429830089919682526088100011464717658500620649245621729636566759906747589934349465998102050105311231612692737337623613457809505236390086757261387645716828565316190487185838914764840610111867538925960844980491366495064333364861622571624908894667613639889468032366071733347801764020671213932153564111890947420929683628040911754881485960091811790096381103298793080073240840539463934722432214291964637289352485664726906548630090492126472781556887264842452925886720447620508351103024428794358106030182789995420883206963934260722350050053278115652082619569219026253506837550156204806119944100851468676597558451119875355417540286000915390516387390849656198621413232035850120114556823078882228320568280905684671926541480216197602486371584853022532820617930946862648387464442706722771080410984239706959303357926943990992227701585864796742844377956290229078341138198414921546418354869105958163751406817500162698155618429573844681247756746967090692736586506866589921090376413625717425708690685015927229870997549325342500932706483138436029250333081296259813152735174216551920666114285322305641399793148563935123997504664583191405152675195715496616991189031310440025231140790957401731903876855558785940879264778892826812400980603366234033585322810605909654378685814449815278628360376103481807552075845558427319156068961329831624125408643491945215235844136497287076490659560932794949654719920495200247509828252677776758566158666934735960933546151144119369622162159087678743655124067501518314934307202806239493613022837063238638411527338947415073444763429286429238955214288346257882846422198098894584164608724423514324414362373434872040428234343144891522928643337472691168603866239896357918183810845633506184915858231416680995949404821359174865738567616241264526424486471399351989999260641597114214803778566415072304931287698857347543627262648128441694687815366967229211919069645087426182703263023904121621586678896719142811007661647374162425467348307637735145123167312026164810501775449499722136167069815664244289796314999729703831588090320356301515983912360998450693027152324802405915954018030357655146544530564476653909533454703827907284713531133888601850471831272556414957120859804895777103573992919027999674940558180287471733021897147777343939170544443817490295488754785463996512894979037533103409503358024264396517275528146808746651969881856859745988884182889185939176920662875398773117047073795881117850181033997533805960536702493213360642275138660566714244882028033927311118578601652062666701124604775294807395322987982135326642639482322618179795009281619054690121525579157745067895424467243783782084157022420905809703057088678183797942404028208423055904151548908524998178519561683714309927838196208640654600266585033039666581093761298173890480374783180426573363370731044016896176963870423979137800460902067787335037527609141302259211920646585767184859259652608305934428316530773606598302513951330340379417840744359254332096311404122759349584644848729134054675821875898618683533822514921618218494786941205141657014068934317678437550391688321528667650702798017436558555344782807727882206329554720131626913684199631702424962505634311755012264874852664282894750249002219683611524953731839261148232797373432504077304261157986246890074757878684254021352751348955675678998752237095184761519359269489046513969811346457769825825957254699882470942261995207376152254301510407645594877011449668213400852988311266780961151344411176931046035743470507675985834735766153582233272784498781771591566627649264788538049060834309800334989180182873864776513039073109029626356265190976315618206158808617094648024332251545209697846613845399740324245202134496500340829576141190293115247775397231712430123749753000195106717393313544240308883331758166620847269274305332029301667838180410962243243480122629203228422266295361525796505941950147182734177197626408035148079819941890240994353120743996208855283141338888619556021594275883361303326596611266809569394618866792347517267171920344220204613321830782921196960173345142679984816469778908731852755796703927641474879615877333604133393464803312329495029573286290490898996799487837461250988944284364419904988243211483959129563563253292193058818205856352356445718922700531310703959474187465269403138155370236067106524847567667456113740610901027216853320992371442024358872095733841633825627682281655400909817980512489934495070553555468887469961104547613047494918513860931495163881948264499491056289350960270345433043008679779569098294575609883269696780434982164293783967244261364253132416776257867164876322034110314586125400208072440841308680516435749643445858620438974324168292273494536792904516053521344504281463089948606570597744238479652331916933642239501814859376026213193894497037059320804307782487510371505989124616243823661760314950112428506196753789932284109417733676279055221238893913608231343430956501006779314207391652583262232173572930434737710893461034053364853072918623124550676640902083095539182375824936411867495047906953888473940231837491483847510869024536148020802028848580802647059677297040989381906938737769289577450692719355406253796369365074425430900910946918176693315801179246856119856836075785594716323401878878832666433442067943923173787276296264909031534295473868003457004280266709823164154665984829489220468639968002684121938760625679251164113740648493916880946437875491653240187706023542184671230071436837361458863723510489955378902480181497133244633964694194926866488783949562505890367488929093523631191936967308722475282501312746324356420448530272168922267631822345996640765502461274679515296904289917604513116297012581229733598380692916902293806760787775791682371958415228122503785676614907359786666104736644945009766868048484780283884168358862676172944867576878730457283468997789198673719909363509005225010465292211131651609178423843581367404503351778905726651512524036811940467876340035279026680381315133308522490226403555294121221239115934386079801228857638666745099843892915564702222006250133887724827088513822387365170021058270057258815640056869404508304784866116838568353971194405463744902186055141711699832021633852823743421337766990913752203850742320192724468477420918078266051633985550441052623460115798706616713489699492787038251511552031155099707385103176087462225134622050015795800940980299399762473351658909088659765570136676613782584765068361215961924313014424492556630946863985916527155090318054730367180495931054016934231500379258135844348700071349494647229081555031003573804200958361806486589461643281730734269384618991086606249095968696321386431471375691292799687601210173764162120781870261136658060951300949990753001825053958953217160444492833759321484237886095014400032577901377599324008737177588413555217556671255220319510089979669808851900087141645568970532463196808562044551575229270832614347101181932721096848058646327954587997303131668026690315761419018123460172230904279569986213827849157703852683980105199600022512531897651927624655588176072121227136580615168530739485893899933089997968762636802236626983973560280389880123749976510728794828355653254258971358059950776358165216905555289722589685737537871225115316186466853084953439413473252831531628320837655482047652055230478896143258064508356979437050358990434367458715344276029128247207052927056765955204140414498388993193192811327500596192797737316475548120508080719551498677169452525898975212398542709749772987448883841450868921347880585990257275237039153964002398409279001644513653176049537773091889787483900409710815108340543973236039208429118498483832009791756575456724373614180133002243110784071273494358274591224619963338082033009353000102577466399137661727167330126452821987506102533288207912628825701854020309975529264064485631161572476739210132308801501583016604444792950297289970993226664783710042671687945683576295876701416852561120007427590071661033485072222261354794533921088496482848402834462067606820247073878836390223959810717038432843997564569914126841164813453833129051028379756290037364381491313599324342724192395664033648392009992251178580495894642766065970107929118291355353136901286345712121282499766013290929544386129651960980924872293675224744775275616370850083893706764121699664004227034388644688586495237559339345457301676479420785831590283782715376993642085753682527788740513735562313685640949106939519191365085104732763354756070620518280625030463164825864098273390264114332395649848271971259672407408422825834102637111706604880345041601460306773080411412732418203014158122600718676938718200385735004533422399119366632717086390222650345821332803332484603947837821768391254073527866509532249081382874799826722819073557891231695479702138663424681381608888770214867041094762158899874711073851905404009186033410042547387357201907796540697639127122773642465151643345128066453204087258521051989276187155109054856613957059133138595479820184009117971608302050834661029991363975524232155716817902472735905512632868385471994822369717283682715421701809197807333624749093375389933677181445117235151415813320365424833360772799106278190306337529732808537924808279734326987282013712772506258606661153145325666439733945659115782876329939437583480563944812317911599546690986647060655662465108354130689009554604743095979005264921474642927316166327204495164357699620586400795893056665602397171602152427297727841235362234936699802297607021361425107637182534093706294374314202350857340593357484370430958641187697546863571777087970828423390753028645748081720312080584228610338654218709635032859851793286106522283435558967991509589988181539827620960141725357326888431533773998308010523735774650863128950097950691719557038778828770259768992594604091813131859767414224070432335345982315694523794952490153322231630433431458285951168085323977656840571700910982899987457950539378892337015355111419791477804615769775473777665080149174459486448921787744563016370253197527341872710940586274836420056960971202061741470997118988368943553436254497430510093378419442624359666164372121031596071380526890931071050550758727462432578764288910538322239067948952942814146085001785534126891433082526652946166654170109508515288977223051880775282585947647444103164047238990496971827432903131200201916803348172593220952081833833588635248914434420134134727028319416108418962512943261576757118095885827846254545304846207632206545198202299257373452848628314386254473702317398433007333511246675116137739473724163667680548851745363963385898908451866416823933648826076136811014724872900646967492638295050819715358798096887757001280403941569700059764899705227858640736350240368710875609856213716809629630971177969255277877822911845377264321091014363502240688118648022242296001761127293476562426633498889363955382305079232237026463718469776098281921582701789626010590003381273662896151441237310465773655966520812807034830470060380115427565676520848701890194354125404320343174475229066399969989742651746312143705529958598736662525185033538761431468879533601789270121912308185445631939927324286181562145633129085771506793045359148136074671113512800961702664111416248060908897606170018219888812564291931421829644303380182919169495805584238052708547150807151423177257407205857326202659660452146169263446617410460167320170481894647434363766259350114698504147207118344915543065907982919605266075345956794648530165280966919776379655995147415520499186073803995135170422442942573263256960494247668390906328457786727275294879082881181548312932139943762048250569584512377282800628606603520293216438686728530249100757460936876608549530476096494627439763010028519677269533773662507457634499115381086247605179662858604784969061162005605258812912599771385969881565486004858618782226843947928438332841545770220897150645624828708612321859619243351409027656082417442461281049471114745166148937831087730956307690337741101256583865588530541890089084424628540565300307919500208935904629856874671291410629194035218601916432270928278172876647546692899806022399043105443866796198447740697984783049030196691211321537509962724645560493855994715451179516360880622577018097089599990919470819768282070743302582140092729428694779220271705327569438616829313318579353336482288277174104229281222800910261477080482115874839845789238156561909066431816117881952311347101886451995001087438036998934608676768895702437254901329901256061152133890865149436470825984426039128728972835667328326724049509601344381608343705184534360815385572550494066774195980633015088746022111538620132511168754773143014663032050878618293630705030341659706489302925265678132290953486752126572325818478191817091423179279307090860361095022242502145905496539106284032392625298557835712561508153313768230293823953835156259797873668387183122402860372733289066239637545881988693714215121652097803315438080172737240101387221741430152756708051596601672036879022474877151198541742790276664552815622229501116048230481742707091043478446706544783188638954157263677919035377698921777360543657919156151147212359566933941624511921933833626876394245681439511002171800208886822085169963869731701311826651569055380141176890524196376275386689759522673769990153842331392971994569189566528170767425316895204705116764851768183500887278198543521603213893797591614453624403659511787329762900004339829705372996218315135771673344556336715495295224058292939214306942193634682750057875761686957908797318357652914847438581152968852838171099052812514484606229203049650626474559665624567154155297088797172859241699400500917047412129373317736089392597162834746225420008545063932297246315146897675700872306957379549612016005375225402817561627548104882059389913811312037029695697761669742302590821084372106569501370172607617662672977913436198326901907223533476345285053700719432734645009420249144991444571867975550028981666661745058135365441561542565021219544660648525716520988619566248293147568716849446564721196856256177847706890337577039441872089021727132044313385923843809202127558783507036665050015379544564219157098686732493848434231615972618147256613325393292178652136901509532790542690902423802147086444551673323143434954687701894597985751490407428160954765826214115690130091705045649896134523188547401234805468138021892574048148562617396346389941742905838800423946502555934449456444882147875940459217705055492307814931686526580239534582304451115097226954056804316343317332691375204693015927381426484961892931472920631614010814261626776613402181342067260807058098419998526920843242130163650533325809016991474310499921066325474624649555218218018348214192244908628259423059523859554275840211844203915464887332227993755662567147516331567875072635914576574723869199391218433023264015568413901713362925704411384274385328461961201285620186372495974124630540302675469044900975493518299041258978771171592585286994324589510796754564181134854007786221762493335840256646322186946967748084028104851117242436504364945380099721793917274996644373252663750218919677469218427575205239408561800022424414478882145150445636689267390689377275718743672368653511218444947931897754475927121282066846668411360748236944014996545122593666632813153358844552781725527863516465585602831319474569259139479442662107136533454761205422025378797454022697608092326332326579360005562254268751160489348306505093550224578457504745650083921431418691350179488713789472132815018609788289754477907710760620797255711837122587974965981946987343673176910827895489329006029317792095509078280083267644152887994949640544529448568435563053372527396649035876911857590080640252760289349403423289074066401941448140216533058716885485888425362991370696821137726916717498958629459449718969307855146049063454674891415660839715642893799061053398779317923435112709163192455815283152340631084467755313847861376372257081318580175060418308910764105533683848376645568368556407135725839521139472940252139894340377507931432255230915467658161247510314588984095597413589657647583992024034729503134939987136709948790266400580382343433785589684013324880707682945941896803233147867492207544729508681391126800232406883750293416990646907060656827129279697173428845020075166795223590023298768621205620251400034977534698662330696778047146264299648249583656340494022525351689481258164925418239595983242181508745884847724202788153250199529018562958893898469551662595389464647771373907108840371151366902682201674921381200183099662861304730664204183813100031626143992391096638391839518126854011715588250912557509286298850464685856310742339207306932117904886352807926138650057653495603300855423146856384540655294047677988775725662774809813169305212093051160904005653171391091383137694168958001730566904289593088887675406378094117890645205429676259734695364702928800732902900809514788809652775775127410768016523397192454255797317261815337585148888537265581734038026979294196586664660826711739108564134536473680151816224402602131142092609244611323675770736784756983491313564534208582072330174570834577028219649673759129226266046039567046710533411939359272118321515585272679886995712073585818475047387945854208101165761835868453862690913139650686357950900777112681392813066091645941320368079537827080225724162569834316548669951430850440547497220178361285179470091794594594844011172375478530874043431172784267336475931223515583896181467678622563194329711096285978971708130097017097951648491419161821080337873524405780689886591637350927295433509607195878341205322579262666020946071267371278243097406817695619941315571256508185415038026575697887080854321732581132158891275345300151349298478622933397918888328522588483529166543747797544413407424751293806250254700400229146651900143724166604650393991253400055074919043710591642028522321526247861200850922698129877681905763652579797708362852866009872296557851269538719873601093299066817785621570909606359590947167079689814989403598197394151919042141711578645778549075172451151944710879342773057968799308961992236006643050737724756065349016863692465083464497381596615314625358421166748759734852013995487913825574757688936312547623796207658024847668514409763187951636577624616333454607729465105861078542427503644948538059713459957102843383524657682443172886384395989115750308291805232726171970449664323759118042060087390868772739495204657462774138677645219656243100752532397489584955983382470441436960947063572269009411084423043447345589800767832301976948272557934310991358028621244968868816848924035082750094261380592035097017910809163939577213528988380087920585648367717430103130418042199454670545003265491377648749291420408946964792621099792914871917897807149870878845418838407352844330524926370208465939964112170452632184336577255389181901991367851651981406611134601978511218908765387021583868270475221492761552277838171117007382681588209664944265700983098873549004727384263287163221216984587608536880651900633463003900629496822180984392876369998746701315092299297604446146671818700421297152179501796521268729473142186444283956102804159854442810566871086429026892767573391698256896967355809739001923903818280708972399662826428768960837123643283297481093146758188966377110597214563375452438528455917098076649835696835705243776516221050030345405509248675535973814748194362327810094358901952905794294375953274655494489844140108592824534558494500937591874487800135666964534380084894843002116269122878385151179181403666811074249401977427315509791863141483378657764446315991436346332244376480578375247867318681633321625677816048128579532789258982427929624547328194202618171739299941377971673530409199906191312862619297933328603369469926310957025259105701348572111082402484392751840366676978984279006257543946709841369085417523112098068451241447483945930210976177502685386649847359999200206541697049002531372199860458834989150996422744084065000792424457972867445231673661113603481476100598982570622601186866550347086624793795836481477342275588870835594437350129549499954767130238174072069885000321154126700848598782617123914962624516250439055540870944505988765429327221490535030822217271829392500633318917836300970864940070759309030472676499221640990722017754049264591763141152863175946012420931695290335984942137207613136570190928932797044833249244054573641503616803592982268317513010483962379415827127418102189287321745678998108692381770704258204355833405155554875615288283395218953389885914276557281693203124648833098366060547736714115517030031238298317910055755644030152555225538264348923491184013860989678857364024463690858985956604838231378424080592144077618820805068738946289254605051508543211754440496060743283054839456981732489075349522275329921564059420610228568820978391049306114150455929475207856983534504118368591708246931063677943870860397034238901382599215889963562290636082857731736859117023107015218240677414955410042335013108795550369361258680843571854379552738559572051453649683710484332397157734558190119408749726671236560215908141671176426749091711932373566579794964964188480153705412370394671709976599687434674706441355176699963968868945432996806939038536138861838500070165003489453206044148080266792362576848317801029590037872854451006129820897035959052971301008140389633625447290667100646358507007929952974179438892554337385253198615752129027782151152786232497597103041963109673349522309552388593811497757331382281560813989209196601973610632312179805675851586388791264647167674596077838864887466051020712484694510054499537768292049256237874217686123052442101197064113567006713140004713041885644852575344683562819887895199215636811261864560984145851521893156488706287635276753615265365153870363331911527816684694116851843239633935582946756948395069108130739628728213668612748951268483096761779294684883342938853187208602199995837310220570970618290902574619205628590527359604284585511325162333052650639915673002407141297835587362009177711500123044503639054777771905074997479114679845515513771475936425316506131196406533229255587181451980430835470925476312652755021216095236223032364117546645014300378743128306241295405943289047086522965553196330277795782420091601657455108208235636699524229765127527687454260493422801045360200795875478343224009279497697299738599996755444284088367522570575544747470460505471210501667831837651756171344489428839256829594461398956910153193189010386172959312401784135799172303632571985950151112755477059903168450058190608407534402057161244716466898343834755856709742592565530372110458263968294971298152455303152522263461043177989517255389484889953384856088398133735889720685862573406965348359596304375311716001872151512071412391896891610240033020902990605722148423413325381388448206982642719744120119196226101499451249694668551895543228568282524960472936622978965199302172596714369748757866018946676596909412079916959180602058246625952092854259018865823937141183748131993741545871670526273820674640840623995932714773446585532447751422924008183384416477371701915958165659278912289139996456316284534216104819586985062691035960524909478734350560859520023268589277052020233760963629964928315819180762988103583891139065744353646834032065291917517503225180836308418225123116439349092558655534136315972722730285279669998516435602749995999639855673837815286952741968807551332660560994477323584384622594630291640817256415917605253359452008814768252771132266456308155384668601422164176503395074846008464978791371723998033585488294519624907141971518463996680513944518317258615221841171378342744854921321477323456539813031840262108267561890926908644992034100429644835820092894863918983706170950477307059821605249418936090232417961566250616001669689468777184684627752831852573983446985061721325412563065133475042544549735329214980751845842480309401474443813946406305745451944914187027727281019845143791558270887347467223106481770312664020550352465326567679881860524652863546550913719576213907874300469483705594435109382366622169209661894697533257397628258569401435400806142937111813771730091964966534850409867901906992099140815685830006642731655012827712441369064942269847533992337656881991072993879558025411765453634016656074549305800969788448652304187348826008988894775616067151162892522066785649709079961607808956885400790982539529173939922416427066996499916643966168472375006616089976167300261641323033901660884698854454076847957278640132282890403643023946933593487393647478230919940840265839010877593048670293933859716201675559705255049736831586612734499398577212623600774418865417700866442786727864578938885783430947487926430526723083629424740167683923312312379652393481524734358275325126208299705150068670456914279135504476181753480943165248132635288080380726047801665691694381144111272323312309351111426763269723373434734541109370245683132935356152442644252477714018707825717765552847362267250834254611336700805461019964605728131175349003097634177890095441227041367448074604117181622545774782291370182674939558794687672790485718153375736949088686761399617932765222238940617635603244097468419844925013845719551383924728238657273846736988974232016727518366220976431618880065864604365109613708520676040450312913181363430248831240072544868478966649323090270673531452425915326977144460955682722658650447678047325782238618163683466831220741767007357426631149171653666748085822164109713274864296593329864718357532915166401460217016383107103061448210016789044050564019203762106427723482163537241776031392800305366913535302583803103138112037557818714376476267820816391810802700665773810265096434430075559654022108185412837137166224960612276006024425510123927964991200800016860363206905765144191171083413173170902755324178633040301203608605707820056525731724819063708460084899356561476649725877618140197864848815176837770301344779826337865812131775436262274629361309629144097370816187056912858425182962946234579342446858999292515201085611725540045541615788460982991133872401510236013894381752997997399231520811978011354776063721090580790606986514781143458532312705185456330381921810254728965273373436221437678999473560506851579418457226698398527419528453492587545804956233355267366482273827967497701054882167695752464688992206825422555908106803907125887744302341123484981948384832158868606344037692268404368327132265679429311010893527584155136978803101476659917949837218732792019471372181466409705911575937439951911037442874983988237104327234608580114962139905603828978205508935254323700478559564334573340687668820701452442284846739455919523062780048637437481551041966452811887144376011775251628096215448825189330601300453191866019240613510291315031438260362997054481363973088304966241340189482708043611478442732214649884499249167527697772023464736768029550725117604750959634703161649801462053777005188621788240818240857811645072908035010358752200577881870639909376443887704475435390722936487005992273597563506650024640946373159553289460505370464711232042366723919249170524164536273026263614101547637732193402489070859806600005228336265261488684666011532933247697495030439082642500807718881362272149712782954661698310991589160254634248628264556447387586586180523176621841622599371205763974983398052162232299376816274032596629866014462734647379885665440715286068453329282796771910955584447469144021456426563778480277379476791010669253165473075700412789753138786817990202124041256126881949079834142943643816221358550077541985603888894954808717122756403168883521641581115972265237720742791150464826972176520253365386875753576718095040670399557725554281567868812537464889103026492553581697853172452987168964264590343650237369601843794438953217747927975967193623509602260228066213768659527496250101220323331403461546732626786434560769990912931803293836231130029454571535836018154379610236796592690019377993612492190644015270506725978026088568015172289810536448601478705269446617308225443769013885535676379280977475802991501116544296889469964190733905955194387099714095075691913672423813735138231534850195328612565122988403040279643742537865735511445579377118705922463894828545537929187647189631863231801836496243944722274390484533170861869440598207043029447072317236884839175767880670150315919874157836235297839221764179445546938818467912038303750872606452896818576408619296043370741127243937387915752359991456823878737487018731193368229062014467055861119773681079664165725687966337755648029888221503687131370349319609666418999223941345314911569113607783741038440810224412039038553548978663484429884222383038339538828785816673518587999603099399301821371149920180530602476265829378525825853665387286971444487659668574128319464126568405743942257178747490208559316865247660185373104728834114345209267660565517615165336756658673869155257216792033185826947653132980993636567823028389692314752996855385359618632216892426342145911134845341861798303564985534885187321305009308233153683917099915233060607763213603683313103560818473416227174862844425855994843959914159912390223074553564733812213185974904500304293651884093268874194962663699058448093148838104970623219819767850657691603479849634899170096293464036019893844028464178902155833801203789363736482405407754396072259118823280122431213027427630139522823763252712050476165212932237268233893682472386739105577328644608140048333079962891502464391164967616975709409536788109832533065536345869148804198662445819102563843171961945422870905834168007456592257564283753439283485507683390681115073626700246079920782247042363560822134543952651039119048153489724835239162161104532771187308612364667998595657667558680505763389792918565018852711370859919763099677367715657939878163759718214157749058309922773076765284349517740262142383943218963178670820125449186435287505462727144011833738374571556649699356495555104845445859496883566301185451254274209891856680481866850360095583967171422770373957183806012654094338372836121107299093997899917466459409656309539415744799260419119655022187736320202851148956247345851036522045223376812692864310475447172576290123334934110511245832455147016539505525381708296099387946265710515989436521269633500706223837824454578257943560823382793202791812090350405224719959584468136695589862988632056229530381578407713351006809195180224057799347330387955599753625525844177656657474723958812506749220563770791807448600178007550113881450906941175820178475022372651730920830902580129476721643633733970992740776272893970721915098642699349345757787785597902382094755302922485849762654697830373278097151971347602648991360045001172309654991021970110678638079922987525499355113379905134556599408361500925119983523761864029128023275059809674775742094664732252143918500500205963671968470122330030222181579386592182586448104908630732288956905341073653408588778778184493950076308453626469128452330161886397579000559925410211912443742724979835332293548762913873607729231257346314181605833226264276580145815722107112059106580340316244522220246663379087811954689242109589676344961380667691001040029064703506163555711184941711048285635794858837273732609903542470393204065492066885810478797300508445180646679104262360949181116711702509446848986357230501221014402936468831950963880734811141705033252849320668744706330013233779383599085270667841661417988383531332570299485088566735899381669935526319796549190889141916356756009139256672854609509430039714707468283559329967839006789070349329555623956740326427747578066382587070460301353797126255009818681947067508949163848996091157167988647854910735494521678527005683313063833002293991350651304436659810091641233121463453768850595128896391163281937669648259687479355216971364024231434429701052359824267828248445108693359838485345676571168513826581461409682157587007437617077083230842800125217422421022299877725062354727706309815331922758234267637837507649522171000538624667314457867621647810715694214223631828371843484749521456281802844890486238805791773284915638815009834728077220780866939626001887836839378011433766379674175685623267165554822093235453635469312536711202736425765791064096378612765756844564228219871195839740278376300655608026643257920213949056001298775849551862098500821664184708654910530870195233857476280640711559038498941030162285708959790476610120814042221628623069703463953853946990192152014585379030584602514403183987807269311149903333560241149346895747404393609198284773964088297970304676971885898126673679274755382060034667654652117844107705000937811489255529547997161016329881207902084689791222514305362356416680927649717409796857321016397797076261609058469616652885598034354910228425801208936501145096353842098968914871207696800536101793677819510631000009003868598618423605379935695708121669386679138024041803503591321322170797740599674636796965445004006693505370508360657679499817562174547795996924033396979903580015309559872847551533675819502924645662335367786977449858372340420408777064460346535119539104155792262418978488941762880768536077832734403010703103054088879194074634279331529381768366065028891366807412083822140286870623804738877425040902437010929423544981231028307657617820639933427828553334801908508095377194199993360780673085008355136479892592290525324384391190097749643335939287012772267000450168772650321619316206206946969064052537681372649594938747287381514404766405968385966360657978450895332205062234659676809537996033954451805549774354914363302354125125263390309028021289921866436279639103264114257972450930708360020644706602639478878449299209935566596971043604816921950055485596651891943465335736514506383913976677098271893015438838831456998958345548070757912904398653508544898472775168522318555956342779001683149651297045125214113680164376296603737493002497105880840361070268366963765706544489565372801042481203245303240478941667671362762769770573920891926824156425936649629941347542957371847676680940881148502782373475585564236888727644884099051971679596893884190585207455313347410070879326342602729971845014429026822607833069728342218717948472160339315021087074889431772474675886291327995744042408134869939698330663205246138198941507091013492854256318348626616255094494789781181427223674150870960382330402161926678097183467197801097324729496486241693506541229150244266066394975679820595363595861720253282099435401533788794088863986231584760555842378002486457330132671693232771799085446299168842185290382841442812337289294114196742790885505639342639871877268532755528401584673865010588258338448445154820239394198480954434170158305575985545251438780021432160652146440000262546564807372849020499213207808271021957999028028316741837807461696320661619424450188730272319165385143581630483983995682635156773693920284683436672127200009246098956231794750474856384548125154599838562982880893919282287805736567278219687655055514347129165965797255400638518885794623674518434685878078408721731431639406511032362256048910460793204806184922740683606908079160509228846408806499691980284639392919234553512077962924011758444430742580030203295028530525488233108137449524716361878707823284459177672163480239133562982355935771171837524057794236367550433606767097312523361900510853298374918921266120066129198531293093026953968403741683473758754554164136243548972786139704942235630609172495299350237120080206064414113839295401693463961683051807517176956984584954719804780418218522652048923199324746874271089474356800590778700601013237142614626514530245186926226691257720530084174525701665891360014891880961095671986511585602775801371506201125868905670355270758439657770115627397116587500058415181892998593095281454658109640775546031951716844176841952001616453172661764662759981457833908505355421391128719003928422042797460038247026474987335731121700986171402917982105747703788073605606887568398654916238887473014991302183595512460135954563946044684215512410136591028194021598147165815214760897247149613053981464173191615468641340261237049965482736933995567048450326128693557061659252636035052648534833547902432604722043118700699750096267710871125057589620704874963764270236730893544345724498190552095670675992339688080228478606163503147974731287428062511648995764990575854336980997286184022550631959681593554197215360945511715747475128201800264469357753318826696526500716283601221139958049227914008971816906731134569366723077410221729410466495394658108707206294265760661698816123203215279927530639244982872881654643737509340948983547202267019616627337270711361412285272269456782565237507251760095401652659476526563465815311315071356884406216553522368800034577885849868730124789265485789955891476109737248386735723899805061911696763246816000299527687795127493241018021349311351071811985926385819256453846098998876918812246777054509014320316301294519310214886438729988057717403618324734657747633511619958586833420738241911671278294383043507122802664511380637055944205077232340416299973109142008294030027645414637081637353821692159236342820816677523614915292848826708708487396270018020514657659595645606438817455639113553995247308466489462732158013388186238615084238873220330056136988624162944564663665872032027749850656435589259466550519024045369275508385631608760754789521918767664285503768266043624878989774881378579970099817645862423012778997197666210400692514852345974146793342853150054521200018897109402732788614779751121350465244513675672754304264356920257178984318525865450332941605464132239885573411502396258923044094566009002710563219157214201861537789051434879031127390944036368324970685810292871896904094956226151311763905104016872335767202453335357792527826355559905510806526404844764627012548102777682181291778192371984558070339916171063406451438349958818436661511561839155753920749758488700053797759253736723785597865931733697382315486397294110983487109333916053612432212120011395582576272051060317292024035181370174791091509680157984603506368828073991859012914613451577707170782192118340760866681644077567262358237077488721206457508637946967537231655872201841572891118871519025385118499285853196972126621455094956657400330363241338127727592889903286084429853851092390270882829566183742953722200719314444246344650812268761387197768322681119078263763017258221286634797329572223855912129161825853997681987959879463903552645694922361620485262086274410812089437388247599684013288604518524050568737645802609909792720993031773814183278391606137037675114990528398147986985642114180649272645565693090574558085031172548499632385908599161856899364296340044797183536687697742904057974538090937402374083891771579489236518414144397100538504731374741006123585109876333385201301318338418760340045322163890027309807902769576571804201431045470779165089041477868448568970828483872192419402227657012762399612775904945392754538974247481840097721164433527973662881492358207053412426528137096495672924831021545359549318725594377700507741946539822744831082659648928330316635676636279522631630180970467320077882799035516167145929751654159846077285100507679170475089181975268362829785752195115581101859131335780868559507149973093436850012165984308072528759165396630694364432164929903670060027027221422581553948728659908961816483190620657772180961051783295993511203104054149262807559032939236176180324905715444661195545318973169667102891605172476706751916480860357679564488655459507537353794000816468525502305220449741752758357256299195421992783676007036502639233906379294144119531854892241736032853478712547814592684025883188358841219237306710698644652434086393912587490293020576745299227607483823725284259813364856776394765932240462548568868733774752047572950918221636826307367086325050266569526648716554947067710290777581898588176590891866421879534861538240243211708369746615044959581293820605935256777651872961899282577725271479701689599682608275120915100391761579039165442860862272946616060248252392706795153743981683183417815301586892956381395144929371701633093698476946038724171886508563691377196490124340162338892780290680293966718730701845058878546002352713470959427894577970254838652413586788182672434350708128704695207865903316772177145064342317675604788566164010059071846255054699633782935113020848566512037899823390181016313350848585166219418287711563379033512145140970299464468895682719422173223348569362467563324528790476957964709824883458739405341312186013113357714354658788688333212270439928971519854540496683521818921866259265563327148052915559715206984638145712593301363556294032423610389965576656858991405649055726427168336762293242373280668817198441484895677435691345082239273552813797334133697610044894486287172632626825516936736098767805146586921912725796414006151986932803677642629994640057527329857583738722344530226249085354891130948433980771261895449566787981309255675146384063445918459352401109222865537014214566846236013715210703915043963248071416772196831689023645430461077294180314223230297419814783631959279628318349371653283274484551795092971804248805253775196213518626433295439794487802996499982248354682332022321572929810376502505682219203299264136632938232571477744944402215324962767497030621656558199004590359458737096861838872679523359234084213634021463748693086779801151011905369947703440815280909680110810326193588295535724926947538924054477133466794150466166327574510523633235194222648432799343675989751932249398614431490644618411540455500633861320842075939417749808091453279639474211309783103859945852929672806736202263875704108033374869838865891136273672506891819424696591318903954713834501844991667996812075114819526574100711328733732511690543159650967588239361337828990728017488003898502040062390597176240897712706534076536111430089669558211895690070717871818614637523694389167274216524049423323994016485696782574454939610782544913044205760742695084472994212101303463164525122297506218096081245098820810691272146764600912131786740985251739449284074584957429530544491779674668209437208275701906328107269539935094133428434572532884297655407211748096171005700311727115936802276303392504848109558445356736464626949402877659257147578730964414562009706477585061082731540645164959753326491797468983624982595074082822371672650668219488836789812686387817424534176227928230922912498864271113639757362263672158136478053797607551201304872207049263420295304002751345683816029132258070452028494861570397661533554960489557000983328774394975552355519278412892754519921197760872484461953595463264486700279244867082473751114139455178635011750190538333404626551584383593934130291276994808437770411341848976294260578110055800787767268347090502873879534740456368814809173108824777085717324867459452929291095651354011819671503978805559005616593062750868863230249193748718043407677451572956791265579111593074547576391311859844503639867793957234740853103113582852045011446579242109069594390716676428385401755209777127243423461042455371878839473191893837890031636198347283029786394062156888811343927296156764472499042618989382459490437773282443732030495535056613735659703166933420550068396357391164674852208359934676622529945314495355822914507412516358463171969453602722517119693827609511348065979046645599684640288189108541982502268251623162869113593106525611103170623788194283491784763201786532603594653981920267095850413700265881300105223191817545660645645846991388856495089883606149246070700397692595005453092605327007553049542397781777934260791341121033084129908654414096191588238634023151483691176571734664991072323702017759168093837301863419692757303731353010521827479601673026192057567326628799002606432112628926908916051485732844321341991874605877206046056642200116901727326204885253681130171239550193466090499817923940423963356232333384734747739842363749628967692688814989626469709918072196193277232683852688708527654557959937185695755304717708346162205517669515171101577978477279182663814037443832984031759601863700716488386925723063410027705911801612287626623437225130366628484108569662896844874438372852719756533157504865076863674905505936970453335742200560932596130229701838694516927940122246387129480000436292800173030656379679266453814905454668686777064572924171151383554976058840456987923274501995568132013456452805668595586623468614995216037040388849679594709554303058215611351658231221473920736848009155407514483737323795856354515134966859299958990743490493771915753101687160226666497810194718687689934316654619765737263875698656544978042655294431352245752416807702599004050933268109966302655876404938694752672463655390286536737406398260799274523054871028292161334281906906478481407594671872663564052372955943438665893886257929587422481018991059665415080006216532937918881995798135354311123358412138923848335111315287481032886587175923483494221234375642890495498406118372708839610046188930933536628163894315000937793606979816018108418336603226927818545340707677354370603180913310905874381965331905792294281385185839875374560074603162322470661430314604259179824981179900180012796107139590063176915217344500544930853830948352282281825297706943518626907132629875041607147795880713880509518916122821147811866744369434713559560920066861934972012494682990537047316368190565602391273204051786976978704950248659195174150747511686511915767194885160642381987603004141849293933727802743891445226384196333171947793469035136346606345028318695807768391522524740168287764557927816291211506808394661787598913711994529491767298225104075698883232466214081938865363470225473072127858241833660586360543861985168485851197653582245844398526703252969862979339068705232936955260279925535486658121212401240572402909627418971019522533310117157342192352229597454343279581162248772494040288738427390372042658646114707201356620443877416589170584513118778056868869393218098904076916437116928744348023230781618800400885926306664060200712313969829881605461991771844831245475260692198362570303321684166800678151605102058757567298060080225418988404704992103655730027026926589676580538336549376341856583482740295666457092942665141519054654012380617411350116009463125550962328866176662296835302311913686323074894110067842614636877113647809570701821907658584340734973167805787199908479676952636283039082203976831094824129551176467453221339880569046508850210584656197092186042686353921678718551868771904861409510957599341457891840201061590829074956258829696005015379557348212164951754546897278192409143254010057190054423759961111224124371027708128519380372283927336389871491274938314638195269722003210009850803288084045119243112742969134635767391965013484484370562516730566282103256588375783054095083253406375715370048419894970864367228248045937658063593947859820123456573750543259508943495467309742774365128456766725233156259705274266226205571054662649478032762322233225597726293169942702307602931005959455243843768951798846120294872173447043666200349823920728141041972148004631832983332229773778352778034604586991151594213637562497492357728940418922654396000134564054852283468104027769349259219593945106884409675814014233261208081447631050701506967998705462943105259088122404488365022497594128337242415253441763087382140261498061972198727450023858474108131886164960293405113644236522845859363062976495012344702930334581907570345789539211654771231201531394227315421665080088737004537296657428592894278010514240723374135445885798247631115412498711620977794305254395542222714213279719877527340886393752219213740835294530499306890466669318290631203237640829170874510522062032504874465706399424571010866145126999856125067418880195565808584463962379021936430188424954582011752556999269317089016275062508989485875694854642114582216592429334670228394007025861409017288260411314490544426616404422980755364966435949211611733929168560543728943810680058334152610359050334226564605977979488571064727760726243944724532458217502510390610203616816738621299329905041597083127717247345973733610468662665291938781119556284912277122423317584370619348374856575653005137080113674526539475574811606706123468268612351331862089719631897337275898850277848420270522801325970188039610746373944483697533075223932176547121884781338062389257680174098758221026166657197892379000127224183769357701065122937350387858052579953428164051548504450248640912736274129642303403233708531736807767602159480461872950853520497995303828353090420436367371869615737636567209786615066954306040812325255642460861200497985557541230252011323463678936367290088143539780521498920985446104560171874444880851167150809626769434207577933469695723955647308761632387328079094728944595829616370242748788362921069742097402189079361077158985548561401703584521087436057011183562455243319933055161475477957487750245051001654995153996208382687001279567865408190129899523635644083179943076558204110141465354522216490301269034043425021076426676858988287717643843716709293514349999597054383972484110297653354247320927978666253184911074246317011751814643200708955550406048023538700045663448793094194097565729913842145153432166984473554373115169825092579596967593065367788369350146088372227740623891428653950303889216372182871922979626729874571660583715169370349282347975231254200845687114321745663236556424756913286482777212545598585696608911840223188065977858556391548381340074876499319968988213504523812196934906099530993271822408516936134005951015905104180214976601326144507338469966190253068329843302293344547413186684782887284308417390648958487615111386178179892413010343220105543348706723250200018056566620704439131809411784885601011248075597088875861644019310032228164726114003264926586325775445490718868469129866953804179638705626070892776917397988043373186090192960197392574108881361974972844813523126505431440874689985384180214952321433176776745658299366442350721731908799050833518712798031318377119615195639980415696772078004001142227989234492074146018683402856203960134819928620223474762232462679963919000790450465172522302221374737856452947290063926779861877389048046796303020472125177858498267627763490940505771716178740701723550182812225788386438820639727803906080858026709085400476458005039652954557986235485627316153879916428269412005942540013426351972723271693563449907848710014515282635939290660877598065598302236211997352121057591112921199120331380248106502395545279116317934635335436821612841992643548522531254618047207607931913271210054224544482840150204532917397566933263005711686064177044005978585028094751410349465994049107105971218384077410623583522864404012609326772980955505465016475162520842742837241507525347417158370465036914157375540560058024112809674964833178538367007655882960881415530377284082238144120478689797450008565529652382821000423711163047185211843258927292167853674395358894406087810280157392777091961232174008238819382978083545532849670273346903824269461326406406078064898048959274395890745761130600179307679835195149928757339086171250550915172726269332426663612581861831063743031892396280740345856174375890541120647291667301955286441666050474043541369834225330654902680378009731455757706834995258464582329252131457005956614403439162828152089556156246361933054400201723218854786805025569040164783636043527489255257978694676376772343728494712983885444544692985125812132280129693620257934025842843952255667316797480879624526346751475705607969243751883441347764429712002094275701421612096413275996694281653338319746316021913884417478396443724615421917078323665467302090357759369332818103279703440864590301756296792263611168359080715198261071477251687586172684330245319209866959917964373822515046569795683552183831928782328701918656068673106622627548834290506643184681990577903700766321563405093933142147249106723971992834494588411571385773562374416429360681899993399471166416747669100126093994491256908027898863277333281894476635143832287977712848629628338294229721109781664439523041548807421700137583248192050090460535910150883362449398222416128479503636606102665467740166412899342411828892447646716923297588105547944518492130436124623539753602167863706295959372086074673397590422931119456185474056569162362776206470391329429584859794592967100598654956055838525178617798527528276231755688294296342199978855017197286289058201689143917153272113493036063404118112666522187397620217509725268917427071398691547680506645235509669899205400370565920561262955430710134930465887969610558250797914307470254423667911444865908676291378691797178338334135371363597205964472778896345881024148074368456619591240784530299495830409575202738964791194845771561630509013425430845055714148723473395524670335365304234618628542603388447005306955274044687267402987331423670490624308192648242792282592105333550963139541814875504119585684144335957122610867933979136139587995777814580227518792717331165866144632015041504440991491479655387167762888681783661267769376142243525747251599957526353188794779667038434581457616932875901801376592693690340596356016259618328056912303094618002328238076583785462299940968489514127611311186565793455454758649611206663956937115812154339103870899546995957692210872450902661400505840376222388608059526202542255100963773842336425978098913871846945794145014011805586987197069029089055769228327810007439446134500161609553872137566621848913198059634627485573551086712308004941587804202184228575582152034545994209870825723499096023050039997645515624340746187432328090833049599315778425772106233085607467570075073516680075510343718923479750342874404768475790438259363075652002187184057058551063780247492885276910723128803570895557468939678690325148680321574811317750778180310796768445112181974786290148980531982016468697662422038073322393401680975520515289010237189524761602124417222061219436444570307000718310994639240253049339139008143711256837833117561384391290594692432553963106355817759880119126897213599416841743925998414871284049877625293087578116185252179686199491032553833406242959879491479755928820467579112319853889376249864901342389722420061495346252270662605606585277991389673286915352085148782395859348702879690357503929614220644284620005597604111836291469891910576426783237196161832458726023393503245510330302636391047329713016103964847020260574352692686197950953530172702947161880146981242794248493856730120324222565934959876160988688508170551735028589928329051137756772292265441343624194706723864944037481152962682473841530727252387321032087428290603130970654508774401802756311733833243881035318855515905735108314040432131160332126396005826923922265878428903181804680206300010747089336137784838054369233345259243041649605233073088912348405799967261906053596299702117891163109310828938857173275540457322442276880481055331230158720549618369736361214512848848187365954281646396219330593680268940327103212549730532846889866151012670343894161925461290891304560220516164019817157087005621923670385642122988624856178147721887510305820824895649059287370419239018905692952889260570690214656232006292782222557380288902848257897603985399913325105039205581090907568569690258083088146425176279950455130226453781472414456024666781203327536023134449523233799310533638947353235674995893045473274530501718501607155679958465953206592935629888183916884208522294029750021410165278289225790814129421235478965545952200887859193337272491813385048167062105545428378302646196754688969070889422750752435496920221525217761872752734160838829106099979817948062207800755548812550746831713330684051796790909635164301230052075075132656222349832573853638430293293105219152098445237858138378347046905330639122803227554754028883022518812442695077039857545427961950647743365123762101943137111930495212449583458963293231197564132388456530518925212860508909313391354453544958160221057606635196188468611869212672412920289283430053063683949332600210832718634478247637239073802656149692754941275253721282951063129884721464465950837901708521883089055472816704300470935800885054200367564492998739051619788742566806035686968924464905544121166329958890313200328646365867380697087689249566782611603883582314765828785249292793580386018081277366707030094827080925350762920430488011299852866184093360103447032043944185512493546218351484864267690613860722158377796204328833846261004428747383416174317650855666966956935158079243383384759873868582437204839601194947269519785705363196309605369786423215315018549753801435430443456212590077145377091800895502118368364550771975585165093515776532103800208374575732040596773902031929789052119121353758707820154984858094517724832666932984595764555997492958543060454188469029642795819144334255638526067510901404459700515472779146682471746139899556781721138491206649247706047597120365224509591509059272473998907282074783222538975960435073979192616871830721242453899529889232963344299944112796131127670225247198382222984734514154580330919650777969466556325242331414159573653520246690460764714165262404787833778690399520499954943783886707333764635234956053141976255867252246434975177712555419889381399826747263623470806067643768976057659639650689459828586987458208401027065955396122606529429162339241808378653379921513036387147670122225591770803173346291318522980495714195252490589896972584856226820686625610150903682084045366247744126929023106814585416399060398890677663668310970107633827093567698564939265371519794611798609459905486386635334113320462803618316160877119100415433054787536411491374774964518329937563747856344595591790458749599991295557324346312454011003730473697690236336306171297403479664401069432859016993485694760227700254651034150392675082183410885309373911691231692462376060329406485224806712693968475857797868395070536028246490036969319148433028102298364329708798340804698242895005989798996680652029953488782539868465217818638068033556564454973690109157287094349527267140732908365383375695817497197370953217163039172290520883925484367426587241679203592253295557816746051011224378900036569855430567936439520461592066082500085500923344835907427664744256651104926952652805106355577756441409755948014259443355187863258871583682722197857848181822646031623965215459272400038779358897152806508172348920152312384893281299702081851300913331082655034707174040434842117989225258758949132625340708260132651514361544266478116621156463383167516269544809104428075627332810115216781854892062562281394094030053172315697182390948140331059700313663937039832979190558586545231078832171737581792789897110632744362852754081364194034915931435104548062736783022401290475972588407055907917700633057165103529930998354960746537865503133941950244018549337335897848093604976140964087967538983624762570161130249483375547145761095736683554482983538216500363982258358919516966310068346822927528426715487394993374554170790677976466662507369281099246553866908165420266763700547947593798797456939465942936950515855688182636406449948792261177962935449467916996514127218264460565486734372031994664351615832376856967533425103530860562956490093559172542744588904267644604471289287046474814595803987129766267834082979079730221113355882594847999112367310856030663435773130862441984701725718973650162289941317742570753511160641922421705695047453247103415279906475053605379063159703297776868419820360413321308973310918878395955743259433249501261852117144270490297408110950063469942336483015800758531596750977420261756377136362943546346159424955605644076397357360495837705306469695526801047143689474410132130119581521208564807637875106239298835984182276238885764612528100244835555083596246199816551643505232361673073970599811802641760693609324842912141910151246344107337334502114221494390233573079676351486715786705879177575070249029944234763390078888291455779273155667504061636227568493513029250046270788734545230448818232550117046197020010225974573252165964929456955966693076621680333955016824361389156671443421758688184569628692423415276266884774510116014966021346523829446842268785777732319364716696192054355921110251914188333931314058123954143749246409861909865777974684787985608262406113343354159492501644574119212612391416017714385498971454474499022388611301389556405547289268993712107812934298287244764877595785715106354847058800647975826932118770604022807777510829802680269019706523858367321006669643154311460739818409489226061054591415924234476972665041288317576732713603647054459753435113191832347131371876536482971042344170301547122763031707814205250217925522043550067382797634469487820921074881949709000744632904913878474881020294093935256594245808440789725595334019405904754074872234347721535965283604017653603289824020357978728413512129970097187765700479389510462861627980396941224767622963697520591525302203000396556396236654967349715246468273654053425643193418952548564819411776477043949817985843205286795446059763565753574101296244339197215944811627245478824539578093593434523633244519466154670668244576263784327506615631081921168003544821640709381664807316823374665000817641739769344583154392678456533846275708277606084582099114887959025135757250705312615717023992896159486378121189080170171146103058305444090622127636652095048932654585345729003592439510145985828605615153085174433041734071361809461277633298042529247025482718060446225862856554499127198874560546819633118443999226895904950253312093524039170199075431601542781705752805877765481403183799185006477998432973395352560862449887459729560121145623094299389392879596362985435144376385532291951096191493165131667546490706830994098350642435081009103614719406314601929168471360197921575741669069763216775884934608935168490987478952993651107368967384492877834025700654732183086764507163551744105140305189097023788246680168390413095692507056324479522055737397188799530131974941350700564840617129926025225182215862176668924478549331757103415590423437214261616387948116234560996545209215274791312418723763015067553238807451154988920520417700203891545333772258794735168762198960203772774400185378562630779124294779407350045154129776005866032334786939054074955337050630903561146557007356841317686620171730668329015124148477220792393914421533698616440928916325971253763081778859475523482441364196318437847734026017988831922942480077551436856402244818865680369197945562567245388951970473211649613990239841609712259550980744197485867313829598945676600924567193333192886204150112537733202025061812569922397943674541296474171978281209889016826876314220489348869873075251282342662425401429317910894114804477047351298755888695470169691900859643790435279300551446532395747119070785194375743631436915048183215362564291745450011490733723193502818642062905979383039083575639089519032435834376799031019011549953044931525890050581138576471228947613975388600123909950671463472894697390277896566042559712283617169976129208670175184354953998452899029032800696062127854964163873487952115026081822247756472114865367274601022069627029704143978955933524481074433705807163303627872579338894099438269401503452677856636872806540713351931343056540377663213313842179269412645292055715532521563254738296974676351530570264572791221032831837494291075304996513634539006853525301100628191109101327516543758622157676569320633119553803336686666500746020140732030147894029439143642295983177996420256948550533593585470984842024264144257071955078410882079128386138860033574338840617756000587185403325187209181272118128221726060529008682007978065290545025844715005256151009698271323201440107481408625143937243499523625777169751634254597644472897933361461624354292523380115328063546793875594182187457389037457254431441408457445743927989514151309544223541881006964863910006759708400237054518467736115289875193185599316086923227799037799951228387831356390638184955943929753629140567518768880392434625243947135477601130598148331389732398094380520598848555910292307736590163223218102161430124215076461453126700103616572775062352074010166461614292990544930774676988695267025568291129202232334959180398256267402520283320265700011054633455539356405757367984203905672519184224956140712681800266933505038790813802699203015952997384678270585759725932619027336870910995243072643373993542131002243836301678605077614001693583629755025580721966015188398810295711646098880107217770666310157539879155658033333692103367802783081389695396811541766841232668092158261350401574547843430320148909952198929027657160137276735199931395297319920136632886532953811099736126371242922065564071004469349659185614486253306314105248939123565724016375461792526126992692322722929779281010821651346964604893390770580990152147808310659357488431955753458684547146877238080116875925630879587941984250880239229187545589008549571833492255496800865695349353692147307814384160610376373228604033424812957470300286570049976892557381233484791263211788466418700288657244018051896407569452743201230380575651515736981922959999444227187552213680476146052690425564244222012343296438180984336895868958294714078860154750645363159162785527306218010960655937192140896526515806821837494884179903402865305251824339368909769664649043556743506235050840344785556998759984224544908014070917703302261319042707755521200782513997433544844192652593826792379321372658966348871895952839683747313018591516173209479273016983991942511940912271686564074630151140622960426773638387939031575395003383533546890118513620761251998547002790480593481373929456921087003023102983692045373180703216016166102241076166602794685978147683544670783375888534901447979478740862753510896841774532125803708762028227208436211857819218601915597775310452352893994120362014781949065929188541843407649654121997010932329835395879221188050143186284970793525107652271093330925558080777364455679231530239226258166520424447053057885051714944758482843084787336704064952577298393629304556927026529237160853577352233437595683222624198592519573324895270117468095825506829371197188974660452613230362414439924275725219434400273892296001600627180873581486804074258979050239696657260357760720528818075920092256275636533048004802000260872127597017166741712597724955455806608592369806545345625979133278238854828064445417338120935738631312310748823680944494835709519708947304690404042049440983564495331731554900847263512196302633510186139109154714592115505697072518338718083857623357554980589486206693601553432207425936589245989032110266973365130040118030211840797483597102750597452977699869481873334801964869265536429073281191550663620566836368693409659000033270385819835005690430680884312982172831273150916740279775200107313890518611491445494151391045947887340226198716640071377644382525983588223382486219524827436894967936697407165541769308526278763342498879980592964633250144464940979478145598413945291570340366514217820648502834056480455651245448160606741839359423795380566758388657796596890822720084973127110578509241883720356189625113408876772683829866050756917096038726721008984139106856033403522686556915743114773249232878211411200958574026397776537035854442363728393527666035108968367704496219956341276623963626184977445900016605971060124315941994240400025972190422796155710354097895211409641906783218959716904314265591035619313473849841517698313959541062628593320496305438943410600110650816561302386131313125244696136589831914018963689594970851753113181860334824726009083919039221171926593192004356407844662493154835537492335209405753670078646704318570698906207564527859336988018488221800039638925427876830306518065570797934877664987146706797596805092755769369648814078691401076681084508985345587640526943876778404519180987212284753752328872849515039185114385629489083188657894531133685406195127787284113039623622556453269999531341864170952007055130972618906621734210701881633545670923641413726420702468499339471024340990612370968739375071780461799807868103792052884431708625480409074209497724166606777269156421890528796182525491560494163831446271430314391341104905236871887537782615671940434399321914919571768179835365565025898737960413041921201420069060820444785543037197439481707642795487566737653509197992534004342053370708088471442499895238809617673719980382182922305761674456055543648830499272911538850120732788098589991360395976776626607696488898165567318830590528276120553180607818907027294357021674017889801012345625974082498719872319801937040248250135418495054398920033869986436009291347228480230574962694818621914659164121989451160907135082090297552846971252209748128506827581828290077577289753398782383474982063589481636861153270095438754011445330382686159435253553391552276111560782259814070277581395160878977133144461542683020912549144877267099167022422257065143025262904966425279293592758733220867625502572707640591461067544734352862136702124620726209048711446791260415059733997673623784396928025478879440540964118552417744964284712367183715476377241419946082182099335600403235121779025269668897313072018360742766744618438414870637347990652812580337829426220652346436135924358936190969489051917202855403751715962802501837146209739704454935233525955115846858608230992925096793837358116047314831293634689510045796642023618555556699853275437846999120526674807777696466781308203149617528422327407838339450394635640106346066335181735357505405334389561591020162635094291393852556878842846596304615875522871088404023207614655864741211552836590014912430021601921918217531609879373786683913575491890132857584963560476655680638187776385347035465670865844738934672539582828226406799990879083173524352683068245019376017273069420077642083823763705583055998328262163421420448893026141192771176541463933628223974562489253671848243866804896647618996783975934228735285681953084014149351568790387723034971357761649833171115354466173872204310612458437930808057903669789223807054397151738866257525475815298849744970146129889333277832003850736374591196358110962205562673199165496124958670071912773283723230255342672790749003273942509525491157414237637367982350618008390236671897481695150287832706267108940808662259372096030648270807376379699814105198315116416426122827546923210191425276335796750333526860170545810518996105984603738265720237480030372417140690246627014688704479130746628153171270087929020113539568942480398614521971065415258540780789666776343130933015760776066009308233430208636475914521163700268341646788710654392428001311563791819249959294198961066349151068296626404384802294942761764556973924969132072403551235432732974979695971272121075078629895591209604495367004657575597261030892265997821380014999678622351681115097176808797871902808717450722437057587502386253311498509946871650785089147586951273776373599233271731303191717082262521941177117474936462858384782324058486126317299400558519915538184081740248746741812908665575992086892228271413185631174694979741745404647692493949701455257571308870192984834685617491333406930846839509546588198046890148911843383726446784153908779726112011725947117250532059225592659426754797552602524568132477295688315530511273505986787314965408951393818995766669074178280844158743825761606107233853603820953681728835101761670431250968122020166134478441762622123054508272202989478763872577465949320010336787042663010656634106806871911827793970144512631579390075713382629574788909369560387402309877441898052322003835450947633265876077318491540991610418118798021650879333117546943945101460016021608896591042002616229276670897626067604922469684712076409809546353941092406618434036693162843542603492496612825652796163073589568604064339001073586394172591313405337883854744926203649501982394337575341422835791389342294245874244136297335081285012819898480594076065707926810435385408237959663278500868085187077430751119354564407099357035897022272966511572177983402866242922581684168129773800116484558029868671050952867152423610445529060692950313578434800029639802029917354881375503962857629287251489502332205089123257683636482889668892697889404855727950861463197754304273633934740555341876660824297114702889757021459680944836153620576975592078290354054213838652225536202084382028098667962342078733787678078605862552760293674539938725698821798499308076863678145451378189959118751373180778555164342117447645947514450483698363836567347716883286643673298700654301873246358756449083120391673628451355664821031942127144297271041364527222353085527138363334299144564938116038732178761940843107882053071668527972498754991676710768886383318490686120518941994761365413340119776158042544629794997079483298450431549733103826076632614907016243282319006830234755388625009728206927432171952493965351229410766217192388873742403499517041113374939477157951308708708624822428801569356117627706049014912368124765782013594742710929969388071142238601867165594733229590837771633048296542115673221452309068945930133470123874417272902631451822949851667555323177714304969621872662386295773774069183330396326663073533800934868964624595261604941774656929226473382330131461740436071902585146204787858522755246915710654990584089220345014561377488926281623127334613104354826733140432564729232682478173599945817922151324483257470233227911741553218240429601487497594485937774408061108692569894700654707704224997686465464788958468176302743560514995699363146701929461013274020438610713477203761169768021632583805469424950880429230892876072813111301087760966848200372078072799314748584131432864418892269379691974524878010942525412254853732804042206396758479250450036665820863939089209000454103735227889402374176282139130947656535058319292663221580750809662312975545768884599910308251821305386309093899030010655014054422344327521856433289904096122806224985673848926790527061299133145542413521733530783748101153492250566664246481669294136197127979778258587454816907897599272048780611531275199265015838571441101051721402390660265886846952650676674591659587673736759603262926115521570364886135599555909481383339228822540819907491148776045700585852102541328730182616606743437377822089524783963506469617477915692358302993949727074076652507369655681465200391525327430956659862258953436611001415213896161044410707283614768001773361177126287140431419723880838443181416129470522670025457068960657535421654710096921530717744406585229716440266868434165153923699934375273049752810494113801102191815632098699125965916528809702329092909930623219623028144832078155325388821229819766838291833790002033206681634672797031788995225492679479736603820949368210462706168190219399332821369226246564305436279267863959031465207760050646217295950272904460401800833246546253795414662646032936726823572913358750442193517898016256694910720014936562676582487029847048080470095039239397657918522186039415071460295859073131248642309694880218744519288888738137239002392497165019801945556287294061058113963823954740084563830992606520349841077545184574360598487002255513252830027637552047585195442004507071783177621996695432548261203990444681816623619478211413877885456600271855057777169687367221349200501795103497103728332511192328321406415746422962906630915817589515636431250353961508932034498050034833107049452977419493497943322140312932646234750729633285415698606997141603118266989060617327930159004025432375711468082414739516572756265079934717068841683778727518583142426661153593100685168330422841815178966426718928217029051786665392351420668258590606974122921510590980820816091916747025877828384577455958346505428090124490596062815533860443249699266358379111129945566387066679870286559711893675496973672990397144816123601192245368245167359903416796243961064726465822396081138897415805669769741000492713959860175816720672505674750740132539007290143094533597754035842040565028082093708238137168905074131330760637230045824117146913111102560334834099262845611564858453321986064206183745877669668612748184261885137141089546488602410667439298261071087322699495463683045279971932971651392173941659334935936860469561756089666953608159752391832788611574833110032611208058369936167762772416549982460394870248554167709291797290311718091126423060486385606385984035026295231042965522055682402088624841045468060684117465503640151703231050351380464613388917266377635074653254652054470775155756454747485122570303437199648597302416361289194527172992251881049965812731851278063080057989829619490581451487091165949565882415490267129787879744909666240328208407531249541588096390862084137144131197522661950260668753836127155317919271706224415417381096143305306728392126254465101631341390913048039417183699662231974143382354033821820932585972465891819454382862618999348673307002284376831943299640094906357649835671385829404681245426109406129644406293644949600927587522709654281272325902172237529431933367710462106746840601677674861263456640824310015260093534788282334924668733389371229173948862319204717055106572057359253043638861973403381257042788686467138760937786450769517154240200906281605704879816478901447338234710158703301046270980407234021348919850237422074133037231719748636129528931390905319152463294903473880383142381933678870711414224610912044973645781040759368471878711316152309476858385016256927342351013133029533043687205870186164208762336353163325130965313862735337612285261036918759421893871060714227479280352801824908312289122266364092585988628314177916337888926633694474916795291093215664186857233921856844192214194651343774852045016445345928210348934969295999752402720443518394045231784602444351813219096458816777469863718072612386957405927717167318227487955492220306191065718986341786041882142560173980912644935640551656627012247539555156130877345536849094979906804177761660433164282435125026496050784697702603230657951963625123179417399310196710828545148271383173843252796482695515723771844565866521408080789970769905929814731640045691526781305494340737713146446689380813883727988738259790916934062279254768571238734286921495272583514950897273926344143943061540043099412181907823442893992790251298964103408814861251037690474579017509867162970467203788491296278593869585250881088704958756605552195904930827926839102265549222833714803678827351320012638886602783120672427346495174097941383780144689186246401060046617650121925451725288769358010818464451583322385535490333297843263378535109854474298964360305225013426213661946112481924327942064084958330013908637079471998213714537188116008752471081259948019074091671155033408518881657192976223071492742857546104852900302648142844299824437401319014287665325317093986698822226840830607965754421388642941965224261638140941998838217931411182794526104247844278848469326468102054765688782141929573182825244349711313227630788935218326568600806643150426283183517770751124111069695545342930611803198114438176242099193237325066819161219741033871366124554681591038080197048915311209086411504360906677950970499073863895582823036333217926429205103836521158371790506571250300330566089468999423909806646632154627398738207583932299792157791643219008130454687734715797513987206181187687729564932094896422670116306453494797927770184100834491265277406809463156477557794218807885690287092316131395207380661236578847916566233740412568193349510944784830387261776838979553561559236677266054967216937296141089206840931073673728059948101949274828637232101788581579655053028385141450228800046088191735902026790134614842510264294789381637374931699583008908584472907873611778870448532608530580026981161798448530451329669665221617891975172874942606780977483687256552577231573662022498291940596063507102787802594353940581314377253258105326667340424401295891818498872157323886210299061759355855968772973837253386623618776179958265936855595111525584893844253883442195231464621949215454548376712375778246979959120628020836839624796134517155002219513823705918858091313415343285819258928111859262357947110143602946174300814627616350087085083703541934743833901581820681390135106392473606071796763124325680758671782912835875414913597213555368346011290961900226088436373026437390275573643864174910728992116519541930709545223903875720996094138747219492010811714037545539574653986643409386082320692667256396382954719328956059487299310821478283838871485925480554943459334548084975720179151518809655118738218269208299315371235140454726697180404189185021318061341101142559885125918664490195358933422545816726989972988647116877893880536693257570580014220804428410924834184251492459150435537064709534287705578987767124716460527275528711330751664551956150431910883687190929641201640895099061751897081889847285938031905942057268380758594377917044367072730405879484354569446220397178722281592673992627529191803502604859172250059726757083088430762746852073298345515993405592944840349037852195795831795040834310802648212413041402041391521986348261242998385603765235385820975019023349543036824248636256974665495853889732796523631825672833714145214243509937723248680684912189278965422693250322141913336214517019023699316748182785388997172494324777571304394997906336763939945196603743109429413219652140851048207330021372221114299497160424492014888542898946582708844922575434605983143473014934532221162431940469290399375386327231967508406151549085727710921917778414284464219187310495519664580460165412418279984561542868345697706776563727797432929943673743862125207962706043343373524845662914639034682344996869145333210630716686273582162397577894203725432376344115683771950375428106487962723473915318946770271575154242793008236106958652122147269721463975344099790376759381170620615986761607431532648593374978700812057670436544413284455174245505120445766210570684783595859086135020698840077176743670342226628828842247430368865144764903166747823022211411882381588128742652016935087257594899435457737521742069756410083836540417623793309789683845432949663371736933359303170215053462035882936183008395142929816502714192488726242283887159931517846877335158569823261377726359532165968586261123805532671004909496129432133130987564898721743399779071509870918516407114762984646993556397551936221216238193812802373677574197519808758225281700555376830227468922746619612930007620096373078540461752261092013483273466616520851156566568980705455365704033960791823626581264238716026692306773221999532955395174828455088818528525469887564355276286434887215279340950784330701515389520251336440864790644625484248913688985577444960687331977308799726983866749619940930385189804165206111727965338241137694036860191261578696520362118074628440455136811341825175810706538605538153160571794032507568959018133699136537950008137526547947772824853310822266383295950155330600548542286566283256113336176344648797073602946264502381353620730706177532816655032994290796331227145709503323773342869590745685195332765184352501910246538377685029406506377372025629302481591218493773149372069479573305904731199902039259671577001398427380725255476998774733264245373427499312710147953466131243110718498786155972503208437782186740226593346009350386310232190739306276678242529642293256637637239756547196920230178622335887524288514946781281010008403027897992659962586570529161567580524070684761556903775203127117548688683700479981483737650808848032049986144861707126941659633967677864439307950614928893081418482181106833267810509389787195608052437730199166190842441556028036042835569392001189919336515607634318824027464117620026608849135180496649739435250977047776360362425874784906805781666329571355264143074762845736517114489330923582303894209179980229285378157720267370703542272715168253449623910076799939639074995083797531968373653380505434243884600268868539214308378633625558737778371748270574280334109627174988422856937976259539360915184242321527809654941751796597638734703387841945390086482302477519350201733319697349983879995373659646382040242301915783948518406204356122046675476736154345586295146295349229873829189123304808828874627596240970157179153994070678308802118733484569516050335580382585769808721542716812558281035187495120381587161961437067373360293581300140926504366698450883800147398305555749850491078172406208160622409121534128312011276404856150452809720649021970572204456970940140895478293153626623115486922575268052274832187818988967400487095045256149531720918585290837175789810393658822287936198555103270507849107631646498936054877650593207243561345602013122331524565514056127645990307005237180194992075807889771690669321042286862202428996865981046521678528636323742193706355169865716189507194390947913199442138671948658115117782495153182840566970891266148128323336130758097380763591670270921631779770570529822121035691089513236930496958405141428444434816070811269654270773115643177570298234386104257928427921906052857691693882745211344545447171327793446669281974452878337220918681434443963336670138838120909069890605179650166961077569738339672094457073286098479096204010965332965830758572026300448627724183184248429334286436734126129950447504697018260838672775226214481383621145374000524497860482476948011374016960365933567745054719518155920310567867999329509593967368360367077566224990548700277403561559034125612404554661733533458833550072463368014323165385028623909565809164281425084903774663601658661076330280294363797521456703078835504029335083091084366274117695849249065178343090074206410083384760347003526946906069776385425175672632632452445131189989973397986288921316787676839722983651335539402845762459984112629700737550652224771105245075262966579325724019363690897996716486099777084528221663792583974075159683350205921852989120220162670908406586664359669603795397534906931777132107988442024013262609245848922306247734181684417711407149963803376979106757700196979233074899591125422225721287215687039043578937062981805555515770541362116137642293476145996550432426811397532918056330010539925015492306465973909679440976812711885505594187953930384761084055883892415282303456193917503155710466600746288800966635004822863492354601489525555927185762635251049475946109285961512663495341220275897673448123792114888301276374145756960407519603801514224011691177169119013112255097449700474767538043458211953425409168479512800283480050379917408066744883042945117885047082933005273063339130053818971665112445084856185263775158219705274703749018612484352622309587865935070956786986953977213818047965587069366071166209586297176733465609865135251273118022206237406375169661782178043532800667967688365700547014463020249297965204298846791147819522341656408881797232183289618074698669533466069210501743688733977518710228097174532672148966223897268696490370467602338322734133153073782160597272887905040270330551036375643440363109433438404060730649312398213659439437793515899899622129075148848941205565294788477589460857032086479627750672756098706454767543810222651197457699419509298647629924067438505217869758188793418257754321660482914790071440667935629908187030528030390671143296999580900469702762111375256341168710388555119548083082165135005069438306256642552371417030147606680046204905547962394204437804036834554404738459411097259860987516902377750096883760341435013022257160748640725274026984231583436433240526685585580396613054294274479852166570507806766158250913599083458021397683037732985253385645192914248824652953796758954599196147753965296228119308141368983043559668993934389605083527430276763041249144061698974267525794816263045517048028040281677597684118167811751120785319415957334352707437245866467673557966860444077679523874897057900505958704320454098431254677011869036764836556832369932307071039301972256388147933857033279652365110551069006561703430067959352766593941837448353005998458013817239621404696515237805460390974581022327122492929043329218059584702643020833443374380594107432292931223744795383781883811682319161152841889413053342229163045823154379678260884768491353025435167332513736637548831992123170028635628420619252257852015200748924852941752681657316859272080699077413171632880143400345062727455184754483969029074878334593022240485906100139241631827671017925011764620275368264581082892538935894458873499823747520571085656461791019352390097315163841166051877221009912185372935225654512140301653637443868263899493246781230830741333489777286046466648818193985686861204543699309456633499412204196325916059622220980130242449542669307216402232123103388186713467899845183923183017844424117142092105180397688487927827873730454347898012862321085729791428567582241629921877386967215583510426797362847464736739230162925500662626126394319085983861804624015645290623399714707342449679835443773760618023218692161022049632090259594512687767702703187743846098714932032392497513995788963300424330091746131364473406312705281386887164298743635669684858625374356157136563617907587571878902215648184244353841897600381981644738055114621655536899177095680424648520980213666406228446386785699593774326002162319926498873184278949581659473506216176023915455099002883989501685176649146201618206629456037904170365739424535134217518549788553184755554704811231458307130528794333233876801964351444668949504867562597957659069658535324088867090288380948984079654834705408589468845077468118938060786592276223413967454369886911428309065920123852284799080316081726363912970013401647602010506746090810195769748912487379801894914586498611899185691353601415103212098486916436739660635614983416109925286762903685445561355492913242763000335352262710075052764791865050680385811192969409762637470846009785144582246146107087478874902969616850939595461944890619940130241218279704332810260390963100765095387786502628360469665539949050802823712605458827501385846234779239422627066609637568010232300648539661410939307990716834304531439569664014659490393571248924612713634841554374616396741300902083397052625419631612339196611749634784451339861843480137226253728025632448289013287833759372350730008775600991259106711773021698799411639218856243405667458357705707490606489740258095327877957868417252889069792487708260610346263537426245673184645741747023102814697721569007773202446619620964357829707646324622335374214735964376770133800808885851609840788966664338169915529886032115408828002610405340499746368843523036578307289212723147053464534777385879430659818794412037388543991070585329488287052252739879129634962416242690335218458855194587563185768709507207080480270334042955808818554467549581590918012774418013512108049284789182424756687381806460154539460713383902661478417746520146268991080607740296577896697302459571915020917128724869302696138547763509308024865884378366261072460852647713583367173012127230082035939344570111439523330153213768383627694214583974774936548127324827680633216310496556375037161840794596979678082968101698363195126779129994329440774505439154080265758396463674265568408051961434044563526392316404764426155012374186169530068620126801767521044949779269679759169045367689543248239968202704839252869549067917086832127046685302145781681195339940383603289761123974739461191045336412113405680307329128813172625524175030687285567173765718933869498512112438590495805865120563609366328074973579921438183749204848120571149255829632620815256746844654255187485395008414554434895730652711056014222312467600175938494579500792018832224371992152605154133344481862569701398871663894664556139454863272436670691805431460499899453599033951002648633328118472253043982117524717874097992211187301224415425911355881303780170926229491474271306857931502017783769372100917386198598348342572863230214894449183668958968406315557316586423059237673270769970896898737076380949472534482110270448872095106686766434557028523685946481341049002818857280007629433063832585531328089987874722689079860491790863522370286085574042600052726484949020975027549280852806092086916702302735445187937582807144818974874585967551658925007058960841129840985374221722801008942804934427610545419755378567733711245631844174671445585684106762847601063963691575015208437286677877600772415615683989183692474146662075819915715594520186532986996792223394059994252237184602289800197582399416570521579178259600273609727016310852912988325777634574729279702725646757420806007997519962186928452998771997349822582547948461280031613403377294822104695141535536083934845572198775052987330606863724034983613388006146921096032973877602196446844307232347999062259093022891459234536653900272116348788364373582799874109340570479925844383241591869340624871472646517816841711896603371883935492875515210097190373564046198677773404997145502035091808823425414009800146856050099519139987991313316675655434109223959894608940014566560936498697633474526292240807084992152110385889751755330960118518315484095296039473771649439914988581605567548819108971759311400917080467547881132453021465162745067701799803019045025594184637406279501049235127597596651266193125767208734118899232019951574440582293363268793901200530731427804612444720070337111638670603715009922952222119110953726806688533201433772875169423669781254454466189531781070439613125407767261081401616283164969729413336135897556568860613635287203354368919615920860304536039439951783345574163912957184705896852077563306231920870916129686747531820101834328718254952716860405879138278813631345668138714896515632552719582626980628067836970497860208477813768659525116686418673886242343208093735518270535531999707023008695404535047441055436222604721866751972927473397402668719813391887788312551902036564703249328429993504771462481507556250839571144534068793279867938830240178396693404726715897674758885519800520158985761669695014619075152341922845314183662000042505005277888850773024394645500074827333734442120185566863258784512324164860836161849978239502824454741172266546128967551251042430708740017556312969211375636607607975090295862123283007320043845062463666333966773537832329679663385362156511512999133324246961331314293930600346633818385189212881055694396914231788372897632205454184537680833868662700408815283030953680106795716537689075743240143812781674496831814386332338102038731855562698563569523835047801740644907458096633114122237171070799231086548147127424463193931845561176186127712181915169091520237828808276181966310956624289962421772398751885026331222301276583771663358958129951883389570975984722309710766641576315034742481397182004575055376168857562849377949138139208427132174610490693990297032576948759096040381072245888062143895535006502082030790234490911691946177917544988953626109269318009786519277841634882884336757292768679592894053838822221613018229570217947102171131119799974554206305568873859411789903266215873991587155520366816262620582529872873263261032120861967072336132038387479426155530790927916319461333676882405647525998185705579387353516285376971400531535408398025601693073634651826204910759077602213026257891033274487138721232054164118557168388491546356211246984848157664935376989157960380325000225218780140570803472720027198184005042639926303600058161966903027212379222694519755233766058964322208140898833664799230394825664570763783360112378020342941365485905505040229256933924667712463856713954083346171840464517781364329562612827081844372111732799060593272338900910787523480062532088362494514607896290995030317476537884641189853032158377186312931911574710638387609367788482581994680376201630317672983622707832101500217019403892470642079139257149799898962413706244403053982937875961973796175767211248583034610926357627816000406698501766655976232115973153601817674226114403928193048430532489807961333544880192963287144126010498055884137718554869898685963280464897260534160015956210237183368266134441364859781601201742135638813019090744399018294282297652672676384118886193429093817708525675680352112533709500964993338252007031672549269005483536419342843094749956960889306318469258708660427703266265174971578289169551376110064102442496961152746280317473750919118453999318407504901473130413233175498033976591511135527034422935810363881022931863538950183817424062441102400574218427506186039670358341607133030761698824218348606383662424182371039821730509328917951730339714237997816961616688829235686523692051895347105222123970785522905358190072151634899437222360257734449424909148816752312217259751886494544583144455540008184171873194347629814324855583502800395174053412717117507676856282860301338787613554012819891669628147727806097240798421075312401254731673721450724203732614668289879891972239210470672715571961961286350294343357091518617991189640897440205569030243699324607319370568997995787928683208674586564894392764481720824981223029298852933846086599041107377644737920598210341750700549294857012264129583776568097379987414969940451757974697537280936147542871566840437034490143737241432801652763806078968939055928119999514983999648787031843237511905608910208507779268845196431229274887189990805692038829822519104341974416046484735406957675717525672811407966636732175301053688293184545913770163402800579760443187900534407234286631983021205929819908004076808713896758577665346018949758196681532503620969212391461425884807463350892735323419018934836760387308186039843737756485392871732317315697173006818151110348065405007257886837162404089549975526011977120679122478531460481430281131077566802891969584910947679457547892538319681050931895278850148602997492355687499245525384645834249447167204606206471144576816829126314452250635550366758567382327910558120403035665703793941902781225074154653326559432424681191098901955256333424782881530621936473356476120002141687793698714271724624071555308399865298181521958387327154192239328573971556022544635573231548128720476693546967099582631470802254948155910086739074759894166924963095827306090262952956451111244453516867375431656780133448429045900672165764945015454074514010418272933167378049568798400099111315366822021156322145086049604915330600371737346436080991270453921339979182542672290068557378838171644164155645132881528412919275162546848312370866616802682900558896775033264312865038666484809708311615384402691475313250648076640052902800348702536705850197894917534247309424987702790917315385865199501342375501256212203674684668059703831957304851045909758853948668130063767388864977932275668465113585564861123578049937162864152043645053517968159947361907565628492051141837776333103905898707224622700912751470700777621276963541074784006539770345439501322683783034289984420166495657105186108914644785433385645408246970854928427886414494317386469898257993933120394541517438418722359695724122304930546539962708599026350859834587284775693497913897075650573941687490300476919860488729735216744149508606414056180609706642447040211046529599706231711226571220296675389087912071816880367511993557610687738342282581944015962460273448290217496785898595481936235308383141366794523777339176975490413291519662639738460886616191134434568700768268668286844204231975247402376912118731628926136018265903382321840044201110403434237079596731258846216856205627735685739004904909724300101301351642812986651931876662642700324691311849321733681355653692708381569539377654185497465735301917082916527596308426003207274922968902260351690119912201088242555160704806895331327369127117479335269255856455419167694029111997116540503859862201951780987812573174277221191754248011029048826071909552342948614143948363952912097946377248414886829039101082133740652921058713274464629832723290653634886529951473281632010844416657984708579469689432415474867413047309821411924610515765911865555536433712347188364689674799418074955298025846953094196152793295728810263462348919594089002591580380010675195618917333923731134160162884808126847991276392056679111655483007295180536335104728130426556414752122583907356561019677630823970830932185996027642281471939397097454274725869288708902526354083459067397156179880132045014246398162482847022071547722679649785020876023341574644740320086746339459225780006477135240917933385894881362055676708346476507944864331672865826282888555496889534570841881800639861648095479962634196831683075029898473400810433551310416065848945733907725283549104885523809198525805678143494326164228793728967534304525622927727019224128433207202011102125977985378778292091976906250239994903067615033234382773243379700548979586429119244598170913889948759708276260362471464228499903960194277202813572215465364037348296705891991469656289595741399916444610886998226983956327089395378838668841439443975322553630446256764807163681662802003416223599725146722906602342154694162027553416513317923740556412017097023833549945914786475014411191359731407792299603536861490770630379533439733110262137542835545149090817220084068370792377401760939160981560629044327616437115457057117820978620100552880883808707658393365590964248797660824196494853108938581346624593000486079323459083732670579218273405091830659839291553451252998160978518829762495392908275099767914170250618591982360488349556152760031896046239711490857366978592794282265129368431048885008249659797328744278723706430617994615830308510180663951381299678703248782249108666654542751344068575752479189761236072764518106756234387929212591561882969621355112707320931130586257360942343576325036065237140797612742750499244511785384490332862779442295906366682270991785545727584726760090966540970565894624061100555316205454259015556087772384859253485987100251566016927263502033417738087095038797374179623389090567369744210896552796741463420170156574548690318632323104845256035616624034770542228875719501954617665137913685427739464034290351491902577215650388986749186954786687689136132510343954515661382309960135443101210337760066604672803013295703294169522703158942062199268417891302538076851028119805883048767654634741813115058000240011476658708774442450857562866855084750038214071130700521085260969978561943250991566355751880503617957122693367523934929823265789847949695158532580953798356829991889034355122540170627337232957387744046598066208900395365355537834116585320685129145955850386988077497646700702279731531690580198346978299722122603678585295863806374523599952942125708874049813533045101533313998021529238244594863391011984080249202075839770066390697721033405830056218980011371443892585209071459587069132218482510590981715747041704509226920163558057175860475896893495098386249460048955028799488563267626820237053025772139873555754147144147141693435011803693355715714967304707243754548253468411245654283528581181501104868212474650444326926790938612751604376862939381983768254392862409679306158912659484780556680653698452263588406506546403775308083670358589720726910284259840216736561724634628835912548894761888200276709946666715781514180544218229482198241029546294491066630092360499544286710012340617739971014999916218012181871789294244309994127045001192871151099967537886713385183498748338728610275401502878202000942959137459678808100294319777888829417079872591687475564432668431969209793396737972341556675131925194225123158806957298066649813101495609875059807189704772897760907357786657184082956034021817449388295069024326686423111551952093894098010281716309356262344966510801102643286433547302040257487941674884490540288928075134704557996557773925296029194473090062985722149838437492737934934124367187028634016625493731470919982694590106742118735603591827019183496950084407564529830585962866768008960939777143183302228733766476345975484427448910990040237897513764285782189100601243577115782787446086816616893071725378254698155552083584866593798735577012253266785553556328434049621458994628314926998821537667992923399056946470470965040743029593820434538219274266591205201881099584683739085686873406753866027531319309209919039548308551059472306810967430134336608905135156347123804557036577387142444775142145328847488909490874264362856428556923229579092252832135745124482861723445437555015933723331030804734146756056604920759528334633082022970339354152664253812677930948178845571105766514124209906385172094281632438497579581521778094457391486505609503257976516212440296228182058043464136019822984606715905618986726189104942867833628504312413438940411008230604372093150540773934353745623740318633412714627641724306743341650709784770615460032800587788076518034756161560446804706112437632829871108555662098889409946770730190994892270581385822775137323574603601665741361150041459819436020703525763433632114469928883468219721394643200939328699246956342457313279651304937330443532451388155878494305226765598914080528565018183295305577039344143598513504574494060802917160196811326111503466478010389534764852056359077979009525589517204991215870954143133505476411605858283065276275396884396042340196799312589559313682381134154173766793707576726230545869292015496876046447764355508706336792577561550567226491906420810686502691043839484961663950960826221205511773540000287118686033950604084918710220378456259571945105346243774601486588520539360204175604962105076178911939338851260065743157266601079258468914331291806348441444504494289487832810838251338330815619900381820171007195990326315588252534344980968892129032332054864357479757729668167661822712683612770108233652666257109536893568723649330202951604402230687657702504811628322929801689824264727438256818459120306440355954907776604045846850355808070724294817187345563304371403204659613251134231708035872904141160053730957708335929531274389038218552886208839617269700615800875540614532312934801360527304871704289823166212949096548809096461967982427189789950308908347376909682826166258305739950221726449815439087627482197168078627822935138092912021889776716539546406211345869177529391014990767835351206434130599813732274817813856005032641812098048197459503117319920073223696812393961925103183885699950913004797044481909036032779938190022796086831304808359058705705466839367080655086471853337368404673985369948340102047472788391492451796244819637991365592903740978577246207305147856263446018926120879371138222564769829067655061553914707493624044294047420416564561396147707055035961488235438552328700971358874846685885986611780975424310683726622237668284945203947238354965431435309099335603969297997418234621625139514912571477808409426433440622014741244117542970306507617027047155276000256380457845270151306826248787673335232092175913624414133675864144837726540814000713813624107559681414082119980663600095174592142944156456842380310752773960064544586815323292973460614307079499476484896390064049209172735092875774357508730911567448640493917673298890645480907154285781555380670607518919860631093837089816149892042940183907901894080053881442862278404665976478585179216561840148729973706289226691995427880717682927323411582360482306396091238990617092427112123411243714240716093493398580315481850725058139855419670117215452316960127373233097656831319461866401284520210687369623566392459438931641359656783744720890411426640567964204340776324594887186867871808111385710239423772075519327765234478545286087898329612836699383603412015735507995159581044211866569861454963132007259842960322466799176700348013717731549232935681258590714881134677451180848586023042058021665573880596921663119609490046434827300727184612479776677418428485157364744569608256063409161499205322542051752068695214444047219209454847223569879921282128263368083229267288840868522773481357804920085852017998957424459789049722473923463948699212368406194145238901648392314468745096743277272634834053251534159231019466211196181571283919064598923993434648102981807012101920849681652299182052647427184185230736560852416781408791837647281602986843939798047395865419652275567372250000213170591799534669261361224895657186643165402396637057048097419770317925068553145036252583692751253528520257667827016133228012272836746346704020119578010044985614695239692793403176332624804430781817434709848166872081716193867111504046992010009917558996965664823590200141121910614083748389708501377674219726237985538246270569778199063500777909343971738569499736054456823023216058872295625597517389579191710164691100092217425553638305429518057423812412375721343886617204653321603160873920213435607125110436015199498836098164957464616050852508779145203183962335492157791652533348350150570290851241581311713729168021732308344490639611011497812446394018161504224634330166558420394849471537760264293840345170071055511797217743588061777794429985248659815670516868456539845523813081592881574380079925613893575944619069350244857693995337285671534357819300296423304829619136810617195200863900217782012143663315945365714391872421987684313840930393996697324882915305766724955012795227887499651098016539421202581897866969734303334513022441448399344822649050785802495536217925728475135938035495899950273869480008302867599422250226040294517771469656319192390493316114066931151965576142796551150714471908563490459872679804819861571961784930869696956259224087588343098504364755198548362871014635514148452844646515443669809163910733439550582581031467879361378842486836060372142509141462285949698507948552670043380058789604763487288160987269365235057925848569314605444413590626916176563393920801172951772902434159900688971183052143781328568019384083045874166659202685833848778418982466698172442021028965332011272960663713605519548399549536890085080158225336557926610320994654527810509619382929544500219272227841994739198431418165854657467846964068711690992344752352363622675658264018531989554630441698440489483061591834031463233329982236463331771739369486700624771883599519381444612885150489833601014710052645599547083539660275570782402950718516325787802678958271287981993709559734312195976437204680496148230451323940654813049449967834493500802560222420675383652731174470162138425525067485721095674248941228803307019137334091793612231770010056411716858393598065970841767739284508935658750324442541552358074203416583417361341357794016244473826112305949842789223115773094810642841043809646509275577402064346705926728570387693678238648950453625360279474265507566668518927328993052828229445371194966699701552588183028364660017211123695635514360276231011778511718205033431539812815903737930213663866017384866706945034429619939781176728472036239436233400740492325970408208052994877904397207491524616447799456964340289876524807735014996186457799954784966520332810133505584190496981223021395104642065109031455552591160693309036599989450356504724997605308862779805314153469397999814400585450268172800780615888422172754311650484035121189875532568387496944079645211992900075302020647043582439228096468969520467643658789361800848894688674266985951334296907904292800269916145953720626929413358176342571695864428027739209329245863710628077056906294517546008870281965403305734732951914808031750656946264289769257523659477265437288398438437354405277550278062041011257295120221116462276873862214531071240518994858840934629431157437559200558498660322293441892741085592919431052013702034203350905414954159051184041390905075596650081824894949483361394395965724201507146129834163290604169771788773711037407315401430871050167596446320298516419427678753990312447378088590134490565061554315923715061038201738689568076000836503603387638684208347745640180165406952011090580088228819418625113700499506157313403277211363116442173522727211034623324747669499181542698862415630278767484917818540969898611289212562418786052561266982484109996967631299542079518897147107322979763971105248289008987838192209180137892191115561201444862097129149087317624462074920446197226579649658722245892319800728051046564496414301128781999218829635359418947739738961145319643283421640392086472055521944573413566904586434237594490975572245186517383205178593968618848003053182481690702867475716307321820008186948724604770914691296254421041841651759266131903673084662614332635798586472750592377205693691285657916318444279810881291764571453959430941675325268741262628735699171209531269935391036201206951633907336793099910360020817139133929700964465638044601401852262710406897204847535023608249004915814504721048098912990041023767875131330496413188761753993832867464524608807786235831526332717459518995225193667875667004750534685865693415031946187144973057179229292573513877408456747461179028753616134796057832433462084683659826388934272726099746107927432992255046206378467932452435564333619807775530703572290249820803957023778868193690738262575868684088724937421496127989261278588909849310456869881223707511986803087844353779730790734512985266203960826841771802581178806108997314009795417836657131835627733009089707839258479390154667451596521460480998269746534498754420079641607812525151060893962423111732490542685379587407796040876531544968399876358112040823821252877890284045359241330070975657625431597550859766566751231173337247145887682888816238264058075375300801362225072027477704125346693186106448136585541482980474713348177326830696467647602210829121268366351663930307795946276244238961162433497341301231422238674110172809535473632056182462425680095293024194544415233928714036927068185498873500014894019932759817105453321610701704968950284797848559828196286180623726382193258275997857980653816675925229409539478617021498227165010395251960763901583119518022190349977943846218643594239574359067849834877523856263907232881293399409600817370664007335061937370861612719389122473128834179855932063268993222741618719316162777824537401880279682499891554390063239917773020492612114787142416132115053966769325076009593862522139840153939911994037704670876997443899674768931867524090820265944556797405774147662209262576967982663431673988564987691315556721311069297806160908198798293523163086403891505020265221623299805476389201552161990890330398792232251278601688949797166498520370109620826037079031860294325855311877587848797757745205712652313268755140689083796452089129749104777601692830184809041201375052033303968354031097192212416346203428797974100915836780088384003033399436935761845115579496681278153136810086881035809647306368394312517050859379192900750068843806004315843728305494786226293769421670194948244716439166453369041105444121000555280696037524384586524214511069156759501280013727228278861190986860768228216954322539628527577524521890538392614210966594860831576474031711032240701083515139238689801454602651784007820428967126127159682832574892795726413682477507231001590160020771824900409187986316289510708440981900597882563126862500479117697718816850035287351840177545680608793218198070682875863946606264616128607377842639283591071592660346146975308838526424634403058243926731165584976238515891242931234983558405049737312395135949275861644912773339530044861868466768913673127361653732672799327342304592574520201041724181361808728305723438188162716453828420521192279858737468871540660790196055526237453732144135281514835850369920443250573397389563684803760307439794647661341057678480716643239690423224937150039164241170946232865503228636125580978284288325991905108957837698545466018092849807744387867335651296282638758715190978734724619927756947682583676549781975949750465462888425099668408501005212519666047086312836084863651421665212660082147917902063535372970811579230701050867905267735661845518273746569984384700744897825727913884442597757670260179727467770525652207109022399623748143784155927600511832536069261270019256003217372955112155007942927229319456228259617134772694049805955309032348353629614326326460482340556262740266009767504533008879845557519343515025214837817071338172216318120958658497710788396726128739673307042861007055076185368263994339614600754674991885393548445376542015860840348929077651902541735289112694484668796503895853775694135761191475227864792640291927291194936722715243845139084469176057660232117547269801686691861867485960614873624985413552578000087350729820478934420990782064935233014804193304963484453826019576331902295407499746777490096045470056512904332938156787403823798596799179660594628416472664629060412037714665983531234912666285747654220012734293905985080678446785649219265948859683400842824211727409514557753227226126406896194760989789603840518792836841608105286733673435049106990743293185357497313813146473957208117803960506599136158140433275124418849531562419129955777893670919883035362776388997189184536804647888683266523126517640544737305827273823570782246253773014721941489724576986545728086011097648831215421520650739498320109007067481579839782672181227164470203274230954000957258382012137866643356611905473440159323657633920471011075129546068343878590411521334068362364329332949071657310036774987662575345462701446743561047433642705612988264058890433156659467403946995904526467683147374884607165565356630782471958013600688492503843115473491789815359416569018889803058325345158813658530132408130749561139025618020983233329349417759191783403441315930958154195022338632108619026510929443476449392029694956480747576044804716576320555517897571543283675260482535932995400501322223973812073267972764323464300895410177625585273728195799368222323952322107984424883396781084357932631884633829471169513900403374863304558697934877236233018061507886073649722557682413408086851646410656786252801998435606746877930415004556489846803085978899379416016831493064574748357532251487442284645743564457439510235625908637711369352316493573650727258731912701380864325044499897399264281184090480377905090683555919835189089835376947212607434540990987740973665321841024136069845293255495966161052308633502763455803405879513403257400296019408945686887191614979589369827259638687605093015323724571598402635583471449150156446001112933140784794608789891018867132799888330619531358919628421293380857827340164538768359636348341046411205320810942759125073208525361602072386736819783985911341422931465907998316738497809044612709837524751078683967801163378617033280566356896355342396929536192379416664961883923879311682474431172509101422354693195261635136417135417733469286143900479384012061375074985045087739660789124980146683908288042042960728117041553854776022750444605462198772537672306893942131485824487721196847996303427871867754835999981821858400341429474287917585400323872831625977900327499484428091700883517067797590851563866159846450303669955684096654822025010329816460913395206119662755511401006333710166212389796317055805052572824622314584408093870990915895508016064642379192824808380033569365951336038013967015570542223422004579066952648256308809282462342797343271971584368993661277973798476107649221595773840018181519956420778506667728115142719155615742918425038161959269090705554652149333262788879790805931880739284182916449689769666983344870981333301049882653359531611347564845442923064401584214681976212381427681218266455236616529129628655769881021707032865525240297671800439027325219185571786972402495510441594494740521123239189006826256860379418642546515253326963561557549213946849111464290588208578852987256418231555475040992171224118511082764497727022269920646954055853103237905072925443512324052814717795322002806968722189048856381809132868469015715779477268450186915625596189678800786137249400293163161988926708437274157048785336662014959095370222737128620657378495827362552699780621192253903948572154121716608725504920163639464694172511339002889203789996090373338957134398171807381844093654765298237636321730461612226022000535239517970000181623564853811873581625060434516253200105187542170099193277119793867983711043464004833904024861458035644539405745322213060782884263994286254624789215735874462510424179216931914419469622468179460736999983253893976518142008969253388756807348528743626488501806484049273816860936466364455692642719194185886090056687938979140584823297504866268075894348379612643086594557106716077251488870653435751452607338634745637462824490523908477885644470925960391925976075059024084434037416319514755049688270549517016378783355927161473777133742654167359005817370535985388869995947083116055864978331820198842920135934909776125879970575955587652947547574462516393624359871617963780790023525028086708411457152100571938143003872838364325315632729057581355527061857763346494038676022083299426908265778050760672945519539080255145238858563551977121670005322695638465333954129274064697959846500203401783905908194482466815110769151247681556548265281732453003309464237881306544656831771538134118022265939563577625958030070880641751144395908399544323767856239241961389689799122416231868616283354722169926754774265012426383501959226930407508466553239622731230545632704080393705040914942050422067578713609358436475631630178392332596367708275444090779353366685184074904260006682976959821667103724537220712536123034368725256188337964593288980223771679964620072316875045142636313261742480353929850667760989853562249329442012603118336246174439850201981049345726114831636921990452444882801188702932829702912778818453716108053448906534403327232294357964116936689288654357931990984100668035621836767941353399835466736624256064671074858173175489910120366511859312537187084321899350507177704765515816296426121092220253951495905424956349477681508346292802085863549336982319897693173181319433832040637653482810930071042403868079420928428100316675553642561080936489455960638858230833281115895540726690478378944002413440696312282285725982816729457889048445266936901045014370270904524755181860070062605136801192340861806754006937471485183245930611603887502935327206968325434907765694387804208700185182799429766978768961126286841349990799002192297386863622909131855297528187183450366255989159180313343268260085230000160779516377657413739021621986986760011084714075381499777610436441087459147047114344070744858190737385782631935973619523545662946546340123551322460558846942034312315766108807496110810391197576235829878483362353531333058246881312400591875125116836215808292301117101779878053515785254734661542774734314867405208049358948765500382279444678365203496142048838795364794743615328640069308325467667791467519270354597040781415542104660456769110255347959828976930761070468357717876340523513245723006131588037408143705731209890645809438979244617977794589330664237082055722665447459201522905518494167249456537787513334793544486763021195730148231932676524138374208857353586713254084482068095884878102672110809420857334134382886740420050145021386426912078322363521490530156719768217372410418927103238865489034483067135367912057134514741305176752764126747643315804368188849984045090366371315285469520946852668698656455838490334178328916730814803667455326648089951554428472920129814641640735089437118522716037380546484949901372558882370531735131970170166010095026205398227640680306085396792410551198708916569855346887302625420889602240109726704786962581607348902620180669911768837018721032743221376158470322444251220245689753161362827127584303079769187713808860998964118303515598798928946881014554716955639926119891686652660816681517337764680188297052522444042090708854172614437986429111944487621116099470032061229235208835016925129713326812389040899039788518247372101633205896376564807128012385330755577984353494064806622789815194945741409056966409565055427479109324138713434237027911773936112189819053971757906649785678260067584430878700079034274164661695278758724329450775588945096519809391834292097735881297953322440149680872460818819697630212411235867441244964032038644644300263358602187191834816748748418347452674986074287130297587402430466270893284086803378511989580901027909089772203172684317545061808402305113743226378703407402837547729887144639002126956077841390045640775866949801745401072078809628409711706377151323018352257013445444701385620366643772810394434135127796235461742035765482244011432866536961551235806162520449605366777810359021556058639208861985625563746813924948813216063590833466590087380804415616268899156422156163533171732104234684096428740365560167331967732728877975104045055376998958116050714928878510864594240753177077864892511397151193935641708389670874576281985787787674293543098729358985679480340879091697327489813239440677266171336023410026996197323062475947225635591310057257726137148412661451944254955927000508213023158981769812342548712873687907840432888517570638799863888784346472867440562535203074668677141044807975305083463269565323644034505895768592836803917018794817520625358311009140086394164335223079604579449327254825859555603723149318035642165165308637620736479621527212475150974074503018926901489252401705187812621644825527472553824865421547762193202198271078584785595793876214706957472945082786747098833290571589393381863381813089618752595793315955438390141436907588908392595017778751917180250065891780659910638385046110318079524674476637135080083870182337224115183249040578914786369376791099046273958424731707383796222275889155945036851795606960329230758278316144515636917081112544651050769141921413011430846163523083148924437059222047888145391440297214925408422686855833873424822934949624527105488913153365338725906832372886079675129569869239955446662221725115752234942878565117178470134431361083462414184709408253101959560858134797646550305264835521156488294016808329221734061383036281940107666881938086133526116272659101092452981675946665813107693882549623591560012707633566067041237454279454955213194799396830182646816451321889626278480313367259403613972293176870073928903889767816861182176052672564345424982511696973146009999375807251422539292915210244851366042978190660653533262582385462548950791059089386152432777029529034108912449475981517145337510659690641209834081721444055005977073337508332902797743007434339147537478235864954230423407159211279358786857401126042834649244963219745129946519557312936346934969472453699407508500442204317505183169477732373273347201944214616995631081817566390194665779971250054765560674279001492159368346298018527234504729227717388326841847951022250998537608717625131641572981461996971189618328210792970203071877954596486703611611228188891011709261433036748242009198800709849030462013204481714587773043041671230046741387874650695291538406082490626312447085857370624540844463187229443426482348425295175794890931843816067149895521156299854374610570558592105579003973028768448564903506030182747315063753964419092307033793249696156983858562438580989621714116981197277207314181045181885318780469713171261383481507067906005126040600565611033250392244075972655181051139130903657179352072843332878247339274372250064787596562777166972987404605190094804832693116967372047938913544019993009780618621657149969695243913140496216910211314599075379167342067369783104735807445384600695679249976901774256741737978645475788226213434065342857114861239335659778359970427474422157967048815258050822735410412764230924615292537093552570093217430199933596699952707799169707391728362450352076806043341077174243207747217175060127201823929706607322316561934641197264517976923829619792685729854525204864745398490787594767851575596463271498721021486025754598011570944487881933343273168776874253250146243023808449798180963266997075965693064602947398893108241782834292397438879981221684662836390814172595499483067535142321601437901829150228820388045726993138502733420279872248516917932081295142389344207608929501066850658466989714796996406073355705978271176269627457318654762329140103152483000989792758995410090383596870926809431133244626056288457559726140145576345642438313123395864859755070811647461162020285417749690721871002994692035505175414334935788992924538870413320953223146452966310293403469734889025485129040623254242083130997704293070418779259706318812320569650327112092345742872670747391185032555107686085647306576749410946249867789055694055057994706271109730261881740105245630943471065532824133859928963623421777230633780209938364707901986738697287983115706416508702210091318622316943509013128290801185798843483630114393832104383835700689121752575285148921677450501474025732897259138393117680710757656716967673040841957808391994095707559682325520489352090394938633829616268793128161155424235261040467603154233386000601305225231296686243346041656238321989145671095329346128280615229504388159422456494551079612526815162604333472327362801303528119381298556897970434302825739166715865076633262722430892874477604801116942980318065920132815526705997520365844067649313681062697704167220745692070400910074583465588615652753058787513769978855552758868573516662901114965993261860795532709339053100823119420494728877077586704634450967560080510149300756789231144770482182321848887286868260677350404237949945483192517294368290497821408225508597010961433968405414948372936141277482255008284421940135502736524423609099641063266444007401715109729599204000407655770476755031515142915423889081640213830507304867030182625629274047126975139312698290924492445925071760064157382558312699138528285381221659048905636475575457492816242356560328767777181296859411604253240640484223129400374023663244713255470362608221163598955451459610463054410115021394782089166202113233802209555339050739597321129308671553105388698145251530035247304427099583891939566939793487160790437716357890974998355649754776677142100513400074054043442380549171106188055563279151093890955480386722455604303433210523928988252597991400589184790658791904284306344619927685280283079365830499749867317717347603252515062606929404826794740797755615714412452021747747436798111184624315861528145408293527611994909451881825451247607682676400206564069869131735126184884949667106509551133769980817827491938199674898682247096943945442789650468235659551064110851014911947918213530900154679866397344224417626547508966776692386457384812841539456773952058471854295848342794896661121556746981541236687008370564756160336480133773794166818726058720881666178506270740382266067587929339289209389452527784832481255542831127037135726009705918572810249171115632261215707412053201287444112192148716486866689566690787569816432820692563631790780908601310889529111235759107229321164475815988871883324668680776096017952404917816711043433776117427788756973160196077691783227441134675775226074300093042395526465878988542597382486201370508661808370650348614540872638828601191175902837623700226269346988202949557362951591665526718243151573842888760720677141827960860257091477028042580270119239757229451297015397719941382302097004669725144324736782206578275637785046979531503423209253266551629201416129563768239326739413915769301231917662220477511128584248124260808785925431071991800585850252112397582301292958589305026899054006149213941858911544639233800972918305956390522468999757803623319939700634277116445456239877707188561472835671220005804454292129561032436593696809423299370826167179175335257795762773798164787235465624623795446929706274857876469686131546265675099139860583747401023825015992252533151096523292479825760087448788047299138931369931126577181597095301952321391027147572275784008306503631709677964884609656712985275189519173215972964554507496263687473788109467057115318841983977398762653566611294225661226900876981963691692129960326898770365184013717605190367450742764543340618222453020429324698170553385631438616913066421624995499861407369667485281143285497357794141217226920425538268131369362967911065789898193167334238056983345702444201711869772052585525333570351250018575699400337704909064100746291106345354768136041128132207086654711113996591262476007676748793823129380047372355234501107011371713866161312048585234414382239334891315623458145230318272613123421648720026280094222860984515891098334733052501974095782054455145628719415983098997866248784109917118626301485715362886814330616085033585035751190421599897006428635584887436934284310154555870967818555726295577975607164685828106286495516648833987498518237550238717973626041074327743383937171186107024587289886073181376334963521978163168971398884430042806742112921842216538901454443416739394141339891088510073116892439292336994827960169101100172890023074405943577388447981866331182956872104350836241613643624811030620853378275137500910208995155344241588163176191554600375619855196588584802775665756450360972781536319767022827105209850631943718539748182881551012163749574509670680569042387772539521649345182798733176609292379262533626525342477614203846914612819546735625077029773175295023644257828404756792662192824203409819265980870022984078974179691837404442507921307689426201835631538945550908525886092157143661433408617583631776208448810461381571878935982633063275906430307093296317047636065336039151987725917596622012110517815739200117876870802535848891864313575872050375907130463314237466503817435516128678802552819398813340818460019845743529100514751419779600688376961052848821127764438573222961932999310055580536317154709361147858156436978602477294554070904671197046774526574239436061534430337086185395809525053572427860704487717295566152232486477663083577004472733807388356135361215520901735972134200731522597880465918642433631893689312556656340006667556328079812445183493815121883316878861572100381439520741965839272271586664757902285316805881950925625624333714444339534067703563361143882724209896682594475179080948899619563291220724599057931824781786811335086712082240349505699643519319776431153519854186307633479612066180480124675944456997499444233576849691320575240211617166676609085145972947939914906438981678702809516401521478685560931642884224360691292522299606846122417119275949515670411996884648156219202342361559286232652986176861371152551775574029059260298668884852676988977576403526605799662837883966952946102796340836820783498414405726863839257198587923229862591238917911821365890383805595540492578645189186442471417304706515843587828112773031951365047756865374846197387785248407339811587808711123522526158473313446725789264883802327769826425268790656183038136416509512151177734111265295522905176006287885359175296743967930048600247658637907306303473312371344206149557420835495101109878681791276292545466764057439302533624022203693143594350535709578273921464716913548226350116263410359532200290382545267795901120666002451511913993391975607765926112090525609362619795168544040048728187184386133337954285285643159957418246221891610013462633828805642521945345803810800862349399662922259782386388842737609304271019482886606055582829890716357737008970942450059376959492063467903688559664964153868849271127580494118553790036231091650174699220110378022432438815680692359923364202402010910444206084215947927530616436002467528007378181684326657324464824874792719726697645264384411105242634509785510415075569871308187835092569254781162428719920200070947955928884976750036437752882608264635454419199719219567662708365578856938640253754918402620354835991969009146934608260797637244963040791907361563477639628432795253369240872709191156176726987053222340740008438743444052344966420754608696277575335100051789175591351115844185693543058725188688426959274317324203207198878829546132131024103666697900715914523780067413965199657622363156988623880212052420019652414345206267810195240333846898295556080916988344264956549438254727919612802421544999660137377186111246591152603522995974098896806055222728642866017340913777235836839395671442115546561200591082900999886715184702797352588906810512498402211581763211204114430110826034764446937872846751582284920613708772761926527946841228254652863641156096408741582207095692091267258609229674773220427195373687248825123909054123491726149177565353122085289388107947071232680172012055866809346656401322615401731226206312425252306892122527287540796128403772628919404125313155263354159167560011384743181679081442118899742597798451829603887438659396215186850557866400075916606706153529465040535372507034945522467500749522187015792427407770189628325775129207198653649506787751176509487637231296064095086581174327579921891400549367028402931337735066007134918395816216952672885004152731456561412536630099087091874077116866996936023986937971281777547397523705079308578057596834658829188057889166297895194676794452374736375233491603937328202657264352731120279888403259837639920812790554059055583081581063102192591843360213211873289163012630313396377745353573190559218865948542323662275039577712608930795752501462065603946810555178328950000727269011949018183127044965143082520629855484440542698133428236724507996953627096659743257300277439890584795890888382177072093194917901523468877527501105434064435644828558600852311061977315917166453916833466987117786486869682832045530934140351849467779507336872131712762439645812207786206873060675503048687842794259889533909685159244814589842814903841415816749698348527919603166027637953881496288676989851330047523435234026773563360127851405011151238335189599779760436227984807508170550452548427562970592987439725343428904379703550184928590890785754438800373223573259483704165144830791916106134310369893580430672787553643543652936298897655220494189439885760009064570135431601277746565992804367254111783808625735916887473898508712794634185192584665879215869949138388015307307980273985475937101051243423629039035506616496763768931822461255331623381730124439656812729864591717907363076507014197816232086971234284327057574835597058340085708900561719040166858616357257956917631022345328812538306943406472805137254856103132415217847096772844333574930723739781907468776597765432558376532003909848255832979249590100313858120546917237875035496135425140671969660037587774692080004394286747821135262061602782496142836475417797509097563605183440243913602372667817755251352340576358185960470747710744844229218572417133829939697906505507545324078161456179753716537867975785818861308949015125202127767396227357673196748351773236125187650290509011710178369370402847750997478135559064916773582473696383862553518849143706123801614395536122889464890624366666008986418276354448273043869052544312472898005063467716176796362772938617647192912057411528806754745270824723277166559285657003384877319703915498927341582441601953246240845132726016594192863257345731538217309944898511405606885562151271330057967536201300627695334887333850975460869194581636905980383204928648677151610275920845975937163241852680739883845958129249853141413110919001883241764542284817420573178731546982445273696265991535856056770806801679964789212668922341903746990261074946064291447715632249095044257143232817920690280392776919119022504967029073130504478369127431255948279562148601480243533181858359826898323314393429980196066975589152509103750838264070978509100007191479847175537215756773745582122298546487731415151498933973249785286795077946517079032266423960816217680172570735068077507035377450030247154006238504997820212005401237609790403341836725472633529963592184979236914308755434925601608068578713530080269247725031051330779183788576047859064014965231973000279155782939337550354483441989720537198204162724315535631260278992394801772379351188319801535121937800486827455465070738611831995648443474160237214827022589629656680285373966731716823016162621899520354205300051775864564330546055098457288888407508045785745591692038905144402267863662862900575680747156542066020963116146836708409612179420687740304215928192429180653347069085348441485045210589542127834353322453775708777773756110368251470919837559613045322052075460796839869993508716518867837873657250484708766283724820224016090526683284974293014922832283040385440017335819267456458578185789935949386834461138614524921303080407458232174592639050011483857958958784796451071884794897222345855871561347365495984772233669977465108880993625301376571389478403043442818798733777712674537471727035891746137474275837901838515896867940316747976366364232940705852609157314172081676980914046368339428929111695288378847843341032265625796023711341182239275037277884117583780680824316332284937909399660069152310428065817545086241970284196945912274361657312498751950448721393977303422573684237538099777194445341860226246981486962475483435205461876621805322179126620225197900137926539104004023461344516943548407694669606599375572320297019888938345148308006547745124952836593081131323156210508156323611841191776774058238760514421508438581721480539162644564506965294005907672071689243126599751568954165712764233396991109586231407973768767194227718766589967837926130085548464267916326478890372174227605213643197478799690301171616579832611244592241713121462741815785650828483998498063509225666763208067554787081975466899005980728496912172979164928940207851679014143411431825275750699585479978069616184914366557829747862944289848086975320012003775812590693776080240912973133585770128633999602775351374045571128406175199598735940532031157721257128378091853492036492208310665121224539707637746126497873339274504581345215059769895954981012483548496123902599394054804447346655741136388501114597064494593978850888628316822221530558749165864871261744061045560728528448974047049879606081048080217943972601241567113070826295922794833579766958634153854349814084808331795610703411119091277244091171321221901781551742111719805544524067803060898956126732714166983134675023878926388145429986835105971417677704942478353834202344472715319155191810209453589427258367773229825557849973960426190627249659465703943536309614125851048590900976629320048915175271503644321537290947755569132487421251941225317963537712287606663630138075926650705428744836309446320230107232266823837490213856533403024691104025480832446470759423189830692728740995521139034214677877938688200072166975114977423280570484725808048878814701215194637825789051341110059350387476943630279353415018352366609459575445550057670420957772841190419039101454735156764894159243275563206971912745515178479965307499463608510564550893980385505583595797757467149405007229370188780961125377022391360983214966968335969737531757738464568023134995169591059439047690436580587093033258938651888157927962205375502749804064876569344418054610131407035781856755776642590727375200758681642297367667142532838842364450882552441418353136794937327542944766525280411125459475202674417167725627348511393170113476440965763376344861470523834189777946370507412785524411645684540361128280371921533625229392136336253417695635797458197883772966683742946294908602215894304424463501975137655034285851044766686985928351973794613421132227106978224311210298574069475068898652791125633285310661495208394854642424984153494678229689298848034149455646929587049928358691935393804263213324267172759347863191822911361544026015590266111802765868686537117569441683366573604172428112994643394990688017715213766855454813355826556264504933371428619117985324122832603953060349162199518735231288530526268055351736892394141391545139006283384477905065648886485501285906264674975233067113461077962048632088853664921000999369391568223720122746623354845748077949321003488848148246717569341830762586439810194859114355081863798677667580799621193805987483377820299068149483310642850055451988773347783147732564543762200296201847183190332695622578150082439528912964529135150203445584915584634276649676024177929738444635649914661764689329275631708498690436719129311280350781924869939960980128566964707437506404350170394920918515697019770443437604280611825105600649105777779333844148062578634191609818916884293429870160484030778588513104582626163011692213165197378799526770967899941318480357000232340105311334853087046298390681325801498380012015805363289744822766975928987336543482004097185715506589808220168808355837330087776386484392385391649704638649636173970895725644438296396794004942006168423592671918446055945994658454387135805368865201178955163023096437999069481514615656385213970728830720536628687722204064590430534198456374226450154958113249566124883112301331072013454677592124283858741514156966189224734622794662338935130415124601001840420686499554047134628163189943988346883452410644023727245746623480413025509101581186861556031280425682707723559288917861661537034359271974434188962540876167312364578716153822736575817573397357365651992605514682094556980932837444375009580836692281154813674300340298693085083851637656182246248994777930849340061130689088109644746230817285321598019258458921967118356828223256270371201956464284275716782526027989807143677645976761079326177925469074452877906005298724446955802739136648988663667639267373340399737543933194474566593352234832633668004605702739073755359916340673945006818125626426102026577292458970774662184492668657854526021534054942675965456560555418570264502902059024415527151860098941553979553709551385980929801427465908931155403061951576544037187537141242495356554251635294064376072076408924002638540510081896953190260652516095969966662061453384621630993864835264192383414618317393768487374420709393740801734917838564971541138976124003569132285645482530632265179069565203052702645757180286776160003067159889710265129435017129913643896708888494256965898988144821107887085479050044710056880327284280187473088108692434990655123895705658280703174258179164872859700612727924691593422314192530660174244544056533752624822881794411033572526736468698678846042963032944215316068545830782302905777377089374851308453480244592536235490575991437037909768347669591695187995614152416750103661692008342909313915554707222314488110187227259566877588567149128476110941049877988759803209902720369894752197287845071110700921061354121953004828685504219762750985294643722685945546029184423240731537463065380655836149342145699396106508013369308276327573538163984856455697500628976248071564626652112122090022355981674982066123689428800225831829978795460560347669065072363575377745323711609683979079618196768898740036145067909046540641708493244323000466161331074636991629627497484894512404323287752975959234173186748688959736975278262143082158806415059573107216869522006443389916569307527000472562459613509760058236197932240911107431784203271527359795438796540269837911301320340461431208817680400494825483746819903824480136800472764703350657441951836112228529347775750735635128181382427365229450752619645116530713092456089512841884435309254255047021463957166168675349837584558360178865982792045244546070692188060310250727553691127551031321094504375156581932872006241705965066148343001657288467389873837370141266486445471123294659107410303095122652032316807267664196549587599222164909521361200558469144857183932283148496837222345262273421964154739726456359337791817788644882001070992812467394444825234903503521271174137012327871117148442414062617049636857414578376700123334713159503829439324489738071488140117321538130538754786565571284980151304196009037767798494284858719994908199467699258753195014864672980033404779160466009535395955146331270316367495060686304221428627835307131547605795658249021468354445289198744856901668313188413606326771775982145633873615678701554208252712010136462307954087469778785713993711028011940515102945057679794867306244412755512629392437133018302497691544872473591289681732442849490350603163301997603431752553611271857801328896759042153972402798536284025512493126625636170718770931718314516376563729464815353000938221310647185592147366016277054252181961427882722591666092652532930331270975259753531570156521180385338145769740142583038235088901097987944374941629771731592887731252500014434166286681887400997661871641485891684016220614202236821763185118006827111258400776964392514150342208089918357901920034969509295299647662608695878846242536015181800026351232912837446478022791654653644557471865902314704245163142997541523594089926691770855171315527258244826444720040226778785221889354840236482902185236372422788545795075193045615762574375921493578261691997890603799059888045871876022069447791451396289383633595844482005295570063262865243667681805757699299587993394449213669894602347571511797544052008166230801429040365112492423243448529543080574913619509105552020231567777776215186096418638033785305630617997550776933706189561415258660071442486688016503584389073953864036930939156397131570751234303413679770375209967520488679581663214389604558345637326954589537426349023526670166739040578332670420934385289543867747786300637286637095580029494170322549742974014612753436707158791474125114918453508138148667322117062042413163765257069172600589107429281546615851127743154372862145757086298693314237485143417735488073461880003711328851856168255685244240944408170721081629891266990377137005923888615445433986041922133935203617317909943124784252400508492855242171052623818935253097765907488859016009326959738320322393768976879209037440690841698075843702958985205679009211573016088016777724180923416598339447210758601748984430638323064003695074427056034527743641710283137093687921470494947667715850964407498028583272964411955894305794396431854778770735390430789286276407400672007961711010885537747685454749938969037059442473550220204977212837744749990317538782727784998569633463505726148661699351762559863782168775268117206628546055504045922854037960959888478037458894061449114580536450315880321550444850056948114712496194386835275544082578261810646915304148813151241839006844631660106068200880941621980347001041656860134605297318123480298243572561540209966444014846333149228037326053082294953026067471405385479766762057720412880361381811596185327730598455391922512140647952513803983421312756820563709703511189577918602533071010923006470732631506306310592647765247633083558573061451179079636489646449815591858278005819886251419275318983218965236407372263550725844191954998624545430764665278837071051949752664209582966633494911960542044167909732709290524953670545611170597018512343905823325324724195888551735973883038387982698359844889097254137706787873186952065156966136630884139189955145054881684467606145416012563515912511126765611807607299513430669584649941570323780866238297665376980602468075575161824372703367190339795994190591869975158876933614903716421393346747931999896817845305650393289128793163387815183871776570064024583394392580100492153566344383900619682009897104884020747173683318111229869508712668228880558285280407251182187158101199858275850080752415318799970672941242266588249812393794955296838392297403065705895838561773666344805080537802582576124768190163566971883589657549045875077914381160597493853106593822785616345237805668016533058785920377074551793931980126090850541426942038636188517665726267399849128519190657245371856951814625968118874551937216941693813051777101483893082297717212455648746681538893043971410230697901855611652661109780304576799671960902150574264094239135558617720870313207476150860897080189596461426199419564643424769231342923479048020058636114131540568677176813223333219390055928553504622057857278389305334936847229813069211936907184702492603642352682752469214444261841322838118601079439108749921984964893358240199606605920361763955956884731976996097227073170552990230184603886165102311637088604549533712295919322135985168595637059196970365148541158421646514534884492099086184743411431255484003708352450219518787520659723703023198767513535431787372700058443771501690275175766217746905596813597029150882445959784299710915109681803954853880459357925228461650294072112399106317021370328246725101210650945583418357219226690475278063347785781860827458025274938134060754640473633465933804815602357329166690148928614837858001641001240685506537566355017860321092508884202968207070143125407302506214863686282279297347837515837110136024116593892509896136379926572302196010347525552862899269883050340634843454916776176142042077432890755167473853256393651729238547998522695875641363290038494386379151923953709337824888384981492198865462704568205812440315812632014896621442484453422850210421276599975259794608065371900280756098734373853160937650554186324731828896425034840958855298199200931369199665114030688729666545911358702214524349517723337069194538177905441188367759226273905848757558848692478082608473273536949412091630718947578496840305090015100034354647113636714091739849381140511572461336844875396679244623389585141309774533486269254653492007842119003421677398421284242554642090946164959977650874151922995030201872980189184959106323986703157057121439951582397706341972385012154085513117895004011416945811000615954980821764839154590508088233152631193900798281073677805346011993020278422824098766901423942625427250355784493378998844025620810762669319707791458888203769649034574901098729033971062322514457434429940285689201891259607330096360561593311436100082692508715945561998768530558040155305384395735515159859922254875813014457524258858491751265252694553055652405616715054517314018394905072241610836159764141774341558457499627339940337557205433710154106473231879203971357653814636618161861575804338011367312403546230947987991194776040816797264758030855032329039837307697242830745204197228369810428793864811675008498628230568445414493736632322163315657463527404888216755349269705292856408462997365761618490861574933276032840903809865423122122739074862338661172548678096549872085653490628068345587015188486444186348152260105804641683561212294498054263467162064493702163260408340333361959015342331460668912900935737231834915993358597491860558645707213230912844209816160550961136825655109464060363323554439502359766454211083932150130609491023938187931459838463880361648989462232952986314319050363747324866732745404724248325389558870713391730782257289186965933561856616438006628690198830618081803304795278787313500127030055298057354016155165093829337836500469582983990526392258690754799256945090466386753876041142853190044773418505796153372567560617410748770214952038227177200805187484526234837883214479104264918952236260350396448938304617971658886083338069606907205619104279438976450771327550616800275367803285764725062907384553733691593058650620149548813693311400432934909337500564535906855261566704298133660605542569152556440182937863238167855164652114176671518109114105953798650355626823504154877395325927537359182493094468149978198016258615452781288355525866722560015600112306740807415907776181472654264360770588419798462894467445363681302883599792794700014224399060566756448136682150130384594569237314356219718104298375192132587033079209644796918794457481297179298145676987469328051771554165071690796633744917979913224906365212055499814476394480603568156888849051043655533410991367302269854577548843095924830130118307917811539457770038680969926000905042205184796091492511422327524355823772709079963146776591936335119462687097826796066225855097883004356124333924324844594709271501056440633831713926025085379457564747334604337507665867093854302923272629008566736019903939142444280447414674822352762017490655423077452407579415296922379282577559843422330755448802695251323032083362653050527661065211400561053545576287539723774736017116174521287946868185679050090608130634125556832190025842688272368303713431263126906052286905658088218594249371892634427459988916990902145467615390316968214603667697256975271718085915124664646733058316894962860261085445607713488337081279402643728287639868175232673326280087720534374208371743552017592352987545437659915479059542268555329927874020617332274926705018258669724450864083105079673082826617008921143165891740277628023215203527159161429903812559340496887617767918837339971945226475786368045101478890686348933962567444024922624217816561984893389800300747357109072987699476152905108060411444094788154526869551418830318769259184241262647164316549357708067820090923192988962427475933404727274206454547843466670262516805767784547360361072166471272375874918445970278557780603129173917240465285832394127201358989935972589512762334268497938380661452576469829391424631161085544153313736813061900165448738036243849398903205564654143395287348432614773514078543828271695745425706238500197917351936227760163502132812641921705185185538300646816940698307769070123854199650512582159606937792435318270231130700599772826340861816644308641049032904427998166457195578052681188647940249504712387145499662586754552881403589015765909701360762366872268539388540627338173726238714938341442027899888198066192871687985571905298330193186321624743807492346520110485999865458491775494151294484030827286467385538655454953199904313082240398443467211354310170974806578262751948980538282675610420378004342254047384967544737712919762075720875194798104059206712789755463723164180032467481859453185839806372226945602687871398434808719567097365076186439934843843273283269402364002298302666718145417548384246559303905528034396370758032688302285032114124053392708248091552409245449644726598795624794401346801519685116156251848951161108991733037920679391788798690112964456234073663446320482356343070995019511804913541108013583270277463818555359806003844097533207724282352173561679851817695807938517174472484444583084761522049366702081456378617637567331862273092901524554500932135265440038192255138144247685227262886942417823661154317794600039447081093187147480401145442393527292694145535898662455827853016440138999463755565052524374316616230001724052407952786779658980166723261489870567396776979811572207361515061414701421288904340353629664554462548504272965389655875850991998589485946789784130240361131301936799454453999224858709204301181165324338936258221572956480815334774035217576812133832992454742592129515037846268640093005046539120661374109223946377548983511926354443380039642349882335406237165494464051466487969359420347146391127553592749991986376182615439016243843864845652129424108528476459598017619665432142324642263766074243188196242976395183831025843428233108917453200122173897886990052315534267162603796775498002812529645768625113055580903254156365288416530245154199874540316886818716687487580292504489749424925484247921519381765937867063644298829917793030781030841348097894643396138064328033205051349050352206821855793310369091832085045544192762129544372990929153791234337630826693754665151250400413701581187845407383603036795982725617477243203944453772499912658350053902450109071259643210508241740413028197119335827851402022665838947426565439703570115693829069102600271199566626895637975242501205174702498499317129208695243656970864671806324196647891570059991165184324849512285246212034582195117004151148278733165069901522170119553628024041642978544186372811901285554581612295547664130524404607776971162087296436520378200364762912883415562802387608471255901793062691702612470687066234145371778226318053838738272681415338304021892134064833432860327995886723945902760144059141409709782996372905850208730448606208649687734680048404590316961016035027852842254984602497767857275000418301890901798689330939202983378954753299983060542182648312043351057717468407861113420581580419775204630780272620742454267245683516500528186883001535562727060128227481627092492564894354210534522219294301905442634918868521070735907225669364105066743262896544855664387120315214202000684756175213955585849204086270735637413587520763799334497719448101525768489296703385992873194789898303167493150375795360853257629242974249679719488460559577837317514825089967485025917817520079348448604903814838094921604576889334466577308040756991817117464268908442263133885924420623646798248965153078075929626662043585462660126654809098394428727645700417982918603437915471954533416656263775975557427891005076224958510483167844397351358703390113428482776088972918196162104323257584810626943329651674478994060822922729059316927572707307543321255399231825542192996332489531077405761745024299556993510732229620382985140719374063550718664149364964713672196796747441410565883539566857656610127147661960379722479066321112133026594229953531981043750571836851678000441396201096906532852577188151023917242278192438434890271147119941382873656470681029216885669681717771677583054623612225999574814301996592119559532519607744210127421747016879058447608743029851677853515081624180496319959881874486484724851698488859985392976431980350722857732461647733348896722810580592754351279810113157317956888188313800173573759531103627182235507060224929560550150865829746019379987566155466984628125076898508381155221433973332502598677585491629390528559336288095538399922464236168800467812438553376778261167926372329744299306556507750102507372171531717224093013340376488886743533986663492120757906309067899758951136785342655835768590913766808725902924136231951672148790729496391991754017802751105060334810900914497243088235691782853882628526028995367045695396787366341396814115273938847603685142554684817539060254514803826553101628669257597946251745210117313302703690101924913075864900589831640192595202616836155548965696043308573275410446458657271199731872724729359696999219653455999259378219744458541669312712389035601133169499364151862788856407661108080736525733470073838908187998037696603817764601790708860993047445266218447041811442527075450038210856684462108904833858381252919108755045702482748638565881668790166382434934169460134808383313291902640263424959927810007105097310007917167890691749392604732651861166027267308603107543290644790576256033750428984882815228556604422470143601338335338819584079632786777815185716643571192773170645238096463849442635573599717878983958248086474665701671973453557045118877277750154181644875080815838145139235914000280914629034826570197317206166598647359190758333849534008135962556662802752980901166033004458770418008369703161268262160969743719954347250688348963229350849653150283944200455019590152685118915717161844841599107906514071232360989520563369495177695745973013510632793287694040487938943183868488471365763744244265778768969499342982671074659629418801292673048714190786528806937944963662673951433186193295405265075362839261648338638254049103692696845542736422576124844181422880966561974794460493553249833306011089624888868326228011990893588882443840465061481919778549258997361128124406918703864812281741229227612292196647267142598236639357189509543735494642906534664461288056126322288314245903900001021366369516660618066255211846877467517222470034976114406698085299749100157538050161855426047538675157591822084058259577444121115847096302284123041152294327029811400066257904124143420068091001491619804759461637064070185191242739970830544796484836250257504676964534094238584578019291275474277503923576044917578343289186578813281938448978263388018803652371054634128285564174198891752310465253030901005433735603819656515401249322835321598383799039057728751036890572626643445482925501332217944991405002653402739895773127316207658776168980740146469414400913140238933584666126235567943352467677350327507099132781450390455581986403938144071766437355753854307221359997930735059582088545668180114666090520808297924736146076056738641909240327822883314126241385603636412202878702045076966448799876539972612499929687387394184563645449307707563057941245253743662124441142584898205715471204809533245992592947259363889882478112339583589758305825170667590674551640497264099757670632942405335577698912359692359938361448629672000569295563972924808161551420311586844941296325723717733375054416300293252158808408124651586346021027055684337510164002394839682807918597275653039493677197329256447728120300276825486447547424221694239453820124454429836185010258011756495575397606465940745243792308162842148568695172198833514833425068465436790589891200607045723444845759462216280084022473440982485295981621662238710164228558790434812566782252456049965111464665006920155464871197041552625274510656345770739374089562589501502882961007957647174611561965820075693344679959960898563045606075992581134016656248865468513325568292017262309949228917676693335389066756970518879829811762240946852268649008698097681261140356334704864587056424815636940833052304172996096793296057521027085457842981245903238853355958297207101757544414646777595738343222449207670809717087019819084626263728032744635950738311784858886386680278171419884699290310140248008237510143683646535691152065190302634238291680760571956072157549700958390313175096072690575972970445485464322803515212007679561623008396091983915679844026630042725021102093530910054505372037985207077247787482192431755493181705080522416445600643301052724245892794474487919868779808484669675834227937457123746037609665253778347245873287828241087651805284543503945521484007304155742873697901138061982108959657331821277210275232074197785301714055706415589904426047198035037368847128150161608315121019857477156709972807052539014937246602015633573259022155979025302912539215523067831684228135119775319843700762547137234360382573571171498776941810669200038844768300835723569961604884042564959642091131960832819079337216568697161692467199662456558113353953082889212631239099161623277480438493419501678349521105355037791752405950786225709273598890227722861448432169719048066336828921598074586292326395778223971919338954494893704893561722510892492705162887749857806857333387405656541097272100375878825549023282409970403025198656492650366696293893489454984812405294211473560881592551875018843884434938476516330706960983168314106013139601626012183606176029378919559952811240157116537556223468723454533810863628846466858194765566799908485359788987682134287697229213157538157410447897833927648856646509236221704178268050405330936135045706378412966462272476454214064765087789851243517513668147657562700586285054361113361021879792462008114119667816236125779277850475578889057876014325643009705127786310826565455147298282588976680725721190163377030341091420035899903221278622681896062832986966327475002046028389761895277498912816055242876029070065974443185161831439989359798106608877461141929202266575573714681800378159827462616885156295025023477892569596091665819801378993039004026739582235461497830987327348075758928298444595628285728647190336999389646698126789801727442802647338363037032267229628417994827501946565177443659984324960595947331728523095799338714093754454519131673623134524221010854336316987679779441758849839247505062702017737333286399666345202408272053798668137911224444352838712600221414804876986567736638585674082872723215774932960257861139894865606539457961177910236675985815910813320059721842074733563862798760316224049265011542889194273616169696395562208878369657471583941647567212021589170537898043553051918023562975745240822643177966856547391003539711825349051176083996046011427238729448940051350576872257782351407400682583617051308244452422969678932279210482497707199730082181214116955334266156137501114672241590302123427396393348663809386950619543614453029888081089697415711238325680419330427946045748668585134483189332768312072813488715801305646943264632984268296411203745168073907632242745011075974901588190822279157507101747700749067497128598977372897380336099868316532952211571182486808535454782400103958496681790968200467849664453584166836135500639521153028883776424367891959271503076758723619128044652190078733294066778364668934167658451549587674224841760935370158185331708869824066742089229252285490462793135813224122453779679849966098226915582806715656591935366808477440323001360359274146659120213124450713620638432470450880395511433707718878476058384391414620755599098670565404557551568855981596875029020905038618830025322209790736662612749125395930587964519016478578693355244424714047549928932305875302412501446644958891333731315102428665119634524207049056652569749380779930870316618279620638480589104693637690485228866553916955384079011271270122428663757106258520522766414633688943190873369039906882554682947851897612963714103317876444149308134876156648601459485826335618330563527068098723008804782375658285474077591648384048708394025421681899090001370122021993254985689094614872828428429616800311404578864579553887165453152215614846254340333029168407880059422625501358835870932465696220819510218050768763975030607101975458063890566679848695509686631377530451879880808613551666665001324537488623096581394393566991179879420650377589508306931977406358855034349708518542560917074227766190411553592440189725345684823491230353485864756031009990645710428330829042478275458232054310033937089962037267719502298199993796475330865610348253877504641611534909332024737558897303866516726450358443039153128492112164732263525926657863773599198939572800929589437096896712389517132975138707612457711543745396913074836065274518717644526603501250351721396694479859473883982916258755318034603755904449494766421497026060702977615344121102809220868036833171950760408703205702827254365508213724434779231987398138554347051464020184934916389323546958751916441175945572388527589153269818564179737106879967671636480070040684532175786341413997109812154614993787495121452693454260805171874131974775380777093837253294533625310225095474222539470940490271202176276907559185188241423754309431089105486796462285488369565964354027681831042504756387816617844318934416054199368857944529144100428326646101469146493443692169893269064433929300982008915049600842685684109405758811059253628808688976863812822069994186772271847230568648639021824873804063114499692821042685066586829333343746276553592130294967424808839462579269859746913067663757989050838006056171315726685002945201364256655515567081008999963409297217580947943781595452287880581800407330097098110880309060428131956000065342727542425937360201502158369733792364549337739993105015347692682037820220664977507552250134168061296367789407390757087355967794595402696188194643253155341469346051052323390387476396316784033947222255128304308378048501528322357469174253224985167130413369893754298784566635320634713993543116525135101241692754855422448381973255400239436420313928249340955409617983843640688751137662935212727498445384715580149016736287792583932004532411810999120895873726582635376478795450433114392568083583746166666561250857294314765875640132136551460375380168953835959874642032975303470269664605666856187912598666827279398436317208245445070110309547192003529770166038777032408516842287060890214205318593675817187195742171092002137157599262806032144719394797908537616289909329545448943386772176698007503385320710112532532927006972445180358155032226902828623585689438350967319352582423579769020977693319591239956331664762272028429313167335987700926791030920640624131866884557245125255128902156000299797660001865510516109702160754709423680848620889875811555288178384654747664893837114575396004882446483555143522262390058977053178489790656098475668139307506832090345478412711160555997898962764019714241536633166456317275628442197254646443538884506273290963033072017769081740540583138885564700745486579733989087061922698180214751659159931737135065330656904928550330341889589649861620946812346199004139744797649383097234722740816266063907554400509466155703413313517477007703050118740407143213833506742836786762241775349806548923545939013427690969378972323956297710419500478153757170563726488142034108710911099810707143271863093589021371603081021216843490442818993197261888086662686039301452489755251196976054493095393473163514007164538396143752789181469267860602976625942403272572630934780534554841989687736823156240664424931093031706358668152366992396402679521228823109123496375631567470607069574046833880918844425817310338904776540759991395421427375765486949722530119149878415521538770093561429358262666896075803189735263823607689227750805336202612623300112214494605120534008248251081124853903296090416572475303760737095224976756418869842456135373050651895330214357070527578863353653313237875021555645792356307535858301225103778405739810700293835393855026127360317715796134839485721005113286083340626157185855412113169474664604360055120947889412732185763781389795337445479442276739946957391553094036236177329327387085751603936171078426273736222309399762705156156391980599586481443995849924649912271399684414754860331018707984843948142238655811788874931539749671049195518979453830140366501070108399184026516830930595776976371993917873412942267375237691904221444196296817635627438954369691120447216433725255347285330977213871588362272713772199947199042471627326036106358736466609366958899652072877517910710175443840835352317968337904996031830715524066727439600959371038358714596233824880233814000832349191483232665348092582606866246756197866802951966491467100061043806318911794911233126128051160553193679008439469242550068041534033297845970104546025657000289303345799770583552784697195444018210670469539132453583447242498577143101286971252972130122146423587651232435863773645668081610291053494605894807703435140267398679154934243082363293444421167933030763158381392492700329413474113967968489003293029649106719228409179633672433617571923443643328424537685374320316152632655803303060829765662259156212762582282756367598581010198763426317966901260754665973238676173170748314205383269298359970683797692421929888757911554799701033125069419584063954685961949586605378685718375857183771355615420260732840444645741574973864865610076441617951170314745924661392835461868444839946776255901805414484063285667441700318538941343890207915841673608905052685617539453314923271796452544220145623958303814448319266530973610932066683405904803072118683791655156628640388309835470429489336155200667731920341460105890311920885241999982501274588735497065946383028308436889986648925360778448313813125712390856911640444879170552320703805479617554689126356735061691432720732231131609483444068095472360695307548924933794852244177529409577872153840099128078798163550357696570796782159160429714488206283539669588345000486636367051035186898525456767818422247379585120246906844554929239494804526348291338498202992609329150513365200794813048349190148162325220621562347870342481140621980526472133198216676233448464472181372132833757729544609000903298938832143468574004076706991104244038478392918045171677972510679905608436964606092086923566194967052291843886628529889721990373544676923007790095681640423480342829171722638900662618673381483745942049515206470350672119606819094176559418637778152697983787938241878869579268048738725141600606144423133101796334047545705886576240036482917999169671146247131611269694710485970387968358265421654518908114153163303576305543320254502843221393899218270401317731029001126079774996160290057380427675631465059783778282004343250868490060182207573753297385364289635094322680126491049617189037543854181967363099849557326906435761026607661972713903898437731423857919070497539250186629532070446306427401741133213676818189326659197012046968262497658407462629693003902908069036035022846345563788586363087932474364172035620674970871953093406867228023225824850872435294853377128434106738670859359216906414747806101640418684927379981916069730938806225466167087897134353009984911492362737917217626775860852087180939194225498521677622958589183891684386336986609928409372655814366054430315791194607038407160887129769623809009361707628730748491344822675676857335449036957536210521295743274171128525947929487112498774642949560209459954083296323972942940206400733450602367964619161710769619688116097555855303984990088197270292279801847725568489169293182892237088763252520345349291924895894012786504378897602463553743801712162289905084183398423934626930310679674405915060059426419139292737045705416028611466478100356985578935084398953027243419603265026932978217122760532257203130326148880228268508984876088407681977225511241627604594301430143899356111640053085056759292154872563158149066380836770445394662642979401628978040971804480056997116838834326034503729778889096880814104758005389570527550554551150405547796902308058308031894757347042131096502126501280701997375535523888930417799070973074782559854755348957829242970760502204446042704678862882978067073106598429731480536870909431593676345569778615416509638549230273347857897052966241085444470555927709291693823415192528147548318559300923002734757500893557818290851044620000365293760899776905715454973700521728442298761412701702768828255519638196603548462364948746317654973421680259132853133644343436967444354181273267228901570188585078654862574039397942694108558834967612724048773116627558203214080330018781251613652791425110925642764041693898892885026011598678945891342159519004715114993000998949761782067155984551466790038323347581537862350415323382529067738471061333269666699427550151408078071463667957884852958736105066143359252154383958959765060087004247091489788965904747694232731910324833799440790194946427295128824232057567479656978580669082596318617226882596676364505280679843618083389261436113328594362449632275959329181386618104736817090756996616263619307228263313885644885030492436787820779938730506626288229262158453894404326973650608863722481634321880666232183425600448780690838264949961216957179291018051764744936262644609458468196836038937879835216511106278522034050749553172636653516046759098903611401740020648798743825872601331783981273115513979881495093958149901336203486118278944365453841725776767495034392723241892986907022075582158287597732521609787463589409717542366287686336202874153776768220124642694210706181374049848396041650028260497460849783978663834142250794975365366400542874877090344630125585494815867810595816425172333326607984768029899487141444478966189343275004744012210206013863450928219157826731517015091920006753178573309281504061264949702929673959721607558438771392602886205001518475644896077195034411973033629326595986108303927155160695518624742663879001147893433595534853019097803296545654390281181327365578525995968982142253144725096659235442205992945561422008351100218042519165648446572637545896813919650098215535860136318401903184252344170558744404508577567221398100356395855344882317290264176598154842990170087744617041856518463526328905990905504142296456284420226985175906609736592152661619330988625080293209462920237064531444100978379107871405194909547370298277870669340480633133842815966255977273759944494286527652403466765460045578899331995875282085298223384863906942378091378961733170658416232956077103297463466600449386314966708938203354803611953200687591777438172949425616352137006764452297436293083599968143345468044762119470667687693869784589477994896783154121899719252580636505207085507781278818494321329554304877738113620759977613986314851254751780993746050587752575859182237121216851724458937934724176042986578495108305372355894294419794106339004808694369574966188379515677834846073075809525777563126843495729895272710796474586688595039947314306333323588576050730748992556361820252082981027131828241767279371561301145684581860771143395045381945320393991954277694050052120035817535572572933409985328774284808290300659903574856535187153487788437952190351488312186113333671621053537032707871865783500688536276891588748462833435835229902205295986974908625751223250055555092548412553747639851960542765734565311753259221235083691154526818811810730004985152365061019741759928048566069835167660540330134223984035231087230115021159347519137184263825812013977472263820745838169460186042969023351095169257924372038571016543909321109651386261271673384954332920159728975848799030630031427774718637690333419418743295709442113623113038815542776218857512246629798808557713987584092775773029341387116771201015537597166666084442327467208377239712527634045946004139413436873692771456230304051103071499160100199312206261792248794166842298221027358779304158335745924202164014437021139636916837923279072904784033273843345435611383260372673685266039991188940770272088816273944744330259094603911833652129763867089262754427429283430128224997260737065812584230522159857373524367524194104077659213893969131821212145519466988208043125512122519945699664043349700594615385918772586550535913631269571085890001380876865656029006118285892687116037602253394222282218269170916122192012999616909609905865497963944988830858489748753146124931346773029421188543879447715471903459955944529416063861907571974686600344271773002441743955470874394994372434072004631130803735841448192822243313706755237148903975289339474132301560951784345834835170826604072198921198519254816497178666270806046243024010366942254947985749839868598597986020582938067067651578990430878903208584705148730338795395526429387447212721958731384435087194900535823240586469583596387863808550595222275279824825915530371209626476383118628237755287871805987498793453851762575182384964454131157830532409454645189983434481700251096706474961413836999654343803261152637480143879647352750296289050681912181901298613793522894397598255077353811210598850621621589427916185437423289043363418083237865961004649938757524629327895320455440547361340975947269509600740053646246393729729681003024801807950185461428804099288455760972204666171218530087936409935663397457301816218239895586389719949164096875182973510911979188737383763793874449744290081685987532821444779940604769830596058084504730733163933067010798634992518626389769171039700526289106482748790975523574150543428549451202083836073498722229008778666422812195839348352960895673248442674270197481680928021908414069352625307202659476471773881217097254958076911003909782165595993931403239079244195976247777173726059221319717759113071205544078902405468968850363488379572026719818877778966491850293488636014391213406958964977748965199875975155781407357175085120722043045758968673651448683788764515631087411190537348660145286450515816421566253565928731310339822947008924762271013327271020438400537747653585771249275516071727444895180985043165742010734046861916944612735173088984262667418714803106480868556341479540781780703087602386480223935595238793469716723371479878757576181287004277555478155077271446350814280978628071671557348236228289588504355899387493493781569691727188406057805261455549924830486011000270724039511620661879136073398137242196782265939522662077876557122643041220730026475641878889228145333045292924968704140718232360198558656413042386583817318325069302361698416151336711580455662657740452551867240883921598934933972635643720603359865342090632374936519362729831344088349072853104228977788501315283190739671002058887486729453385238188130723981483420806114845482575108371404053202289987861840898303012440240866653163763563346344737898685044290530308295102527419925810320171640919048282830721351801533827491611325397562608733788124630788043940157563566824568184053831309310046711181449509787342463520248108144208524842099761606350152291884453462047793564436559343851876156555992786271407919777671455787033213966051377253400979237080926110276942239872995676924277155733786408264246570729295265616444354061184727363529201852160737000018677548234487603359609761578120376468830579012987869067901884073476800000749019924945349948769728510910491858351091418829965752240255172202026465660794757670496778223482359151312036997419030700923662510325114067256596719605926228315693024414491058623257838528525209139198440708304082132777703595389930781009121784728166236452274641166098129654481706580976701980294069190851045980657499298842315523821728688026927162956499226907599162124866134227102934362504910154650262165134193800377374596033007289192124351382088469655531042212965086295546855356639698763906762976993024174519283755292842236184551209260069806860869839847729182439476340924689276378201328176193859437472025141714082554382945145590466431266594470331151239947293168935195289007934082266693842540273521622179945832922226451047722068155027079109679111072210259055871030522466665696009835762855607786027417779322363853768142889372216341290119689511898303864641724146760183835353522416028858101478230626456378274016248978828574528631323153985762154549899408453535163970233064524566408792316117556299495346053865006966131930731196381726407614728255823971053893241893586343431212136593533421120880915519051126075944959150299582727821931865128908036571996687212195583675074294588650290704312272117576237986309318357503325886467469297622477110756667951840224459381787894902730781725640716724662298103214205074990269383578430280690577814429387308429251413832738678043288749169521699768843979714646274718849602121386720206267471554937245031865942446253632156355456359566596785095361327818491741785665570579197379233201950703532134017066122044720853987041693759986366219817421324297324345244432478572524978325883885598800146626966679056596017485888339139376966186258130324485337499945607787235233004417107964716835988724548395460891428619256975134255348397489434562518811125895495237976982979492891061914882279857352577787601266379597398346927954410310943070064722415319924101134237520562094508911077525333597819361662442370984196936779200484926076299514970784821683658730721420519956916839971516044703800873480410195029666481734974787232336522363758109665044679994531085719397147457997369451241843902402636169963156998157202832807846312952386504907367481486583930375930253887576298438353210442835667070268206596888089581149419469944480003143664714844561724007137818182328243369441936497096467715207965395359236134612088994534411599768343472750445961105462290448398008542255045848933952747137452729209371910608635160395062133743042396343501189378714200643628463037445463615670096682523894275237083635656041181169820827300804776913771990251199828386042769659199538132952661702234071163515240633550125122708199435784076628969725942846665705978295054126024494831760705207734787643742555498915008316874861347626418633017156737828252194951988651593442004963274585190403197043643730685609439459599235588148405653076015026782289242325956818721499368787193995767263215633124465273512540069259062652005513459418051935983315882746379336853264678043593770558462658667597978380571303004638627956217539933336251002891882758476984116269505295455832751785366372084447997172944279739700144451089395780128836449255202111081613890905663015856150613934387115118824705163154924032952229236848434543791455215311433841829961909318590342760761963378624533109012197778914277395772329847067151782754467041542491147613957019018859928470900569237645245827452123684156604658690611444963316076331362996336381305188773306892382539495634046145986790429323116250705607225670240703227061317540399483411988723886847929377238853422900798202725990654604058948784581543845007423851300279486790405665593288154556828911452080436870192355723429387956071359211507065235872379699678931381924421409921297927179239037598989858329381738654279605689964678286988356862313716371409526212547323425598301175984609633114418191725292289924204170990476003806599565028618882915477357665934784329692135003357169775145936102729990854961591597317346012102660684716644449199293545373760833936100706011438079861234991389845188910486544015399946175913715125357079285220172692624614937849651451054896220632614723915589887317868001018169617391846971116289869939306371163082279018846999766660766066208879629128841745929190665056902288370551680636796469690558538740354744724562891850383235855415449210103386783170757501058411102056167483723621318571432102331485929966343910010138528844821915809680742137300053193864728942317697683824004984974322880878153917070120844898394238498859367597068384161521143218997686364756035053255530217141563174591371325619624269455595521764473138265370232591392704179217224592620865761720120000238910660017538520181724153418792568257550396111583920549772708490114013317321080027632134147687780124786542303499316199173328732043991938373112244809005248276843345685291655511929889600859689839465767356633819187793995753423518813401930019331867617883571072911729556902822910551085566450183218216207659163285399605169545720388559674910041303468631105961837592748557312126948542147290033242927004999515865768274546828543766079600327806007956478716751666678584852147385984958511207021079324462186129644812772042924651699695279916642192663959923700272421088689857253837880652767982546693748125119631749741912548442677387906321494589213189025397021893569534360174763656699987825507297219201058172361581809313480538698146724535773078188514682074044757342801213228132863039845483879798646470104135733403854894204764465986814230417468445576268376385977360553242600822623350404576558277791085897036608511869960973551524052226436070910389878736060437585694843234859911665070016492841674203771558179381966585329905308168459847068823610255740981268705555082790745857540450900366349446825455648977285476733135956794727563084329154308544039110653966991327679988722777678066729482670178366614379436257225237321188026666656799833068406593509211841604994650095145986346039419053152557669067914339386236239957565799866758896388109788333892191070100465171109607193328808795337873307254237454498518953642631118964150393646000307751281715322694136317334344083232127576333195342800233803604926060592582287683775743343601185344040074358498336473932752059498092285845072132089221355847403129070265153136832694204070160342887705233404640134391460456472891115061127939806087219688441598861848370275136857664584425401407184448426557312716397270824383788921002293968109967856814515114544738033729797741085703387918896778451896646386689465464004620169540440926174401595705715973985377872720537614253699759820551325593645530314432917946201524650468389207097701672803720452111644241657691729535110058857636757612307739460710890349072939647462648548643058180779941477701603841048641507605145652185278595013504900160163380814033629663094030159777454960371146460856091489260788524040839959167780502380950207115717660431605994729774281410017633363704953198134070590839769001903622368968656359526212196876462805631375074548771340132558522515791761761003172967277390907346592800799615994150098208819395285987500003179722137331911720142201050903257379739635050079528221161114922190861068646247141507487891028071883813853593528064620657662203973462289843577343232656783066463490083422000493414308399987419218684220666471759357963865642596010366296084442856877016513090705884973008628167818683600672757219710414494215905024242787698764012798857712355369253094660400328297311963147664980986295792291789157068556450297760268773331743266780688468543983205881242393090146949787286603902101263132675268174081563184443398407063601599147310694482768235588332129585954984806630644946970957002712109667166911191696490006276992147243519996520305725926337444186403502233687769880320218086490896132318592916043510208545761301926209694881172671807599594588240934991204244568636862913500075463484087757878216892552850039952909591571242429557768079877790863096761522599573528043987507142091762754759935880508801049486302699286085005937372415551178417451955815099065221652973899260761288167116798236690082196495190651954705511623024616825279351913621108787062549359028359973220283243685098145161295582810777966208583057143820876465373891245684917003200233314043387602000809519883390260330038581219077581098856016848038770989613403996885754079662992974056098028521859985295214394781901829227042362390681523281297306702733471092135411767795450800919948091690859062196875279993457934922365045865275709526156606362518923700200792718992243561160729939590056609720196042909372294743842572070390138465618961285400399236505595160638380760702924224801931521680531030478409247547162244942871876053142605690601131032908668066601537384127866854523329318610098505236410023003476477257910108708580474482504649722479514981097634614491896462734578182915340689826751594442591981419986611803424689157124017883290681407746757278454470346459387232541306777719099931571394609827737150350933966548557491128082869955258633849555777256779471826428782640564479695746042171995355622343078552138937015940708129270374814033289853695364630422958897779017203194507764272833682404080356443130091705868360826434714608128629184843137894083707575898427430938101846712216910159816328138459794339976973649179895463484789227158177859875624900382288541885711803571211565574927203229582244438515279238908764522505570142324182053850003860781772306516426289012281083135220644688006622029472466175793072974376171881491860308242988322680095857892909378617849948967652739987024291080271807538970239166834917142934694386460520969136267964724544074299127361619655065273621153769207391889675574472669746553982028191239658832227378136943961483385603082462993664904420419118814478742446352925548645719769676639128504830642655047247750116988130503146782762541144187703033539431563851946533091006704251124744832386421141127491523282738843495428704066562140051404432390327916404707127197662311976593925349192618572819141842213281536042986231846189136682782154556481665919909787061768730632119128191169821525026220868727259989253902567062083096697069384483535635035220023732126218863741914085911209821788314127510769622572088026949829336503919958187582602536757133848116406480924732086047279073456060983281427993323024006784206410851087074095870125307743477686632606561258774195502931274576793126587035676030705744864473698532154319903791372816557969778589315184974265515303629011997690146776109240431396966292594338278465417712682817383833421814068911960460545303030474839231321509074120831670464100406073162606353839091684138172828405696164714316391059476964985658185406168678351675026318675611929687016014765350865929151530773011769247153138801946776301654828679079468427992542594722680882527884670368921402841010661399874777029564608744944526159237992393736147734414074668406132200743950662040927758907759128823323882062505422978175938260910106432338171175456004486839884466469002602927034932522175916720087485159338144095024470945549654123108154056434111509546321949910621581232768308258648515276731922988975927522424552834662427388555831197769699191915240499391917285507841554449028866451565377840798200893380473780500352451863471396148136081380934076545619799120536852678365530502923007402410147353986447265449237320691857828864684338626370843941069272321179302693022420714663559132354982147179919140969345846724591591269101850311673944941900222458630824373850619162057447897532583326818889051489820525999535304731359129267343617424837408150253258038545920362536335135097912746473994940807195838266005686832601487413557384057633188926617294566386574349260228899763427941643280765208152275035493774089537874344789320508326040500804846353152264025329490997848878662191646708903154084363219910646422522179326405110898844927380791830320603617061321783669832854257209295253410609358686810561083478879446612137018487624414810199500513566021926322087309634838949625336717758544859737796474038080107337984604529235410991603393960526097025053566347876183797058113419066462261505148172468609409327712722330683720642970302363773980419593289633735583060779658166827929715604002540498824448013090350026927463622252615338188566365594851388244631252663580744798322565010201071693441884495872587648360813509512308167081402789339071222224194550008173722038079165895247377153753816339087860673654662574430988769363491214323515197926218496247101593137445341948398580558321421023631310304123306966110630868028168343039788600230551993636029855987060651598947134120852429268197972552186090049427729968879731760169332945374579151651459823153747908792597221762674440281151778985000124688090079827198681831652516833831137531947978727978062160048684090917950914585780327143068976976973124650412493216506490628069944366421363861838006948583224110883335906741216603679579717117175558750890871156071914951804416678085841373163268840994987857284534629747837298970279807839596798520743897827254485433290557960782255799327033173226387853923030347197836740668141688751855932934569793170549964078633026433211033741573186271988204997247732806951896175135927192049144946338164532241155764050343968926319661758143983421594661780234046928106233909340663836062316436257387737918275663823621191486180152462004923732397293727013799994957360471151982827948602381079330401439477247545697293968420636081755606439884440813742261855197498540781386838939017037664400545445980103002867184976500527954698083583239463177387864892322689772828500097189146298172655310345700920359399796824125834033034157205714742562114667769567619425858732794262754936172512534401565999235585043260914234026954516429545483002437752925772370117370904138501130402987709030698596688364516792216936602252050756104189876801654085613184235458538722923575501994358209841668014266757762558149433599199072578179117231541776415908764865081428351401756762890237416728531066292663311765493438674018836254064845396262411997267177910153899624460962608510005666874615815136345627171683717986148976426130381794993274095004664722777065648520902356859836734308622053223536282357201552568837725291555035653836256405404832228304900840926641192135793602952239984128114646927937851659043702091342630807380955109116403895801925613064495162598475444265059297642805704161890935885557370694894771880285450390655393815985542425180326674275973988959318705601111020742703306580925585067347957032837016618505848017830643805913857218491425446228849103356478513168862681613797592483448926442329354510039311575532016203655831538624009759624851180450253122102659502914792762858886457731502833814259454863451175106806005038369527100432574356487809312242355086786101679754387356942117724875244058339030877101737110418336011491983780550395487152710813273267974661970686269285108280286662546281316748584826488333190872642832619472837406086452466626256311807687348636815708899124558601760776484924470834667775548143002413257190442350638268559404550581656614291322407066231857351472273825562880767272218520497853432348185898898458614424132489237651871790804816355308659311801834220502113047118691822996127248036030770081945195607757137006770369529025915743643172362692253487492065689828736997191891070158472456790811976522699835495125122300834048770555529627587085730218002034193937328227212714959650653004634045957209717961910288907641365086460929050492105176070565126920018913668629879236121483374411202131493549373615958075077537935167798006923448513793737234362618010204160633200187095910604354141377459336163540740627671117316074050804952430998230886527166515433981721499753155675730721411752055511927230751986156087115218550188880107468731196535218751380036416925379042820882242545882783220663608543014439436055082997585544196318266957785533296229280660855833008590249046882731293084999002743626070394333837510673446397118529947060728991662030139382675708306605636925004238634422407225925395760389670802905112084813042546453467374110854235588710447936354549603761527990739385599112044584988269975065050632628638074213049437603883614569137597929010660626513379775138406505423282559954726626064815056605833055926613206664117625424969441207661165475706413391708178189284707573814078812593480843801137201042367306023246813390706724222237828958795594097308713296452286744809415723111926769989474092564854155339510565047085944634987599017574876189089998614662358526426005082165100915366926546562598150470452977794435352654548404391217172697346508872580234680450276561210745976791761941265129329936981476545870092980870645424580472119645596001887841502882660963206237409001752548697906379031392716325007262113378616155292227225240176820251484305027007902615606482494133187971705572913126261884216866307736378443155490675991786886512664471357965827268163733106288329152430265412965004433595569448791225522150924503540014432666966057425747865543151313241281259364189890661585511494866758783724491304349381797830947887585177709994472402911583843681684818173431245600500053302230188380609123511875841962247178506486132089085668046861849487527825267451961943797438994656410103021426627254926503782636212065935215763803467094002374870959698210244371028373785009733253712559201404894660720951490840125832249796332997445745620480033525014722615275301988727159089907731209232113452792442789012500352715737489412080172842534075996184860111210915207445935460347297928573476986670120571370642309192950618096301018072856447842913917947087760527504958779320424939843977598311173037201775600252099756568642436309467892935420389951843685418745829721371191648514310985301691927031584356521808051314259839947169303374353266999279922827953265465181921795243889476997586830925246551006697972930575982001094081780989665297085096715141233027482428774266626271795036971492477538716516293933646197553246354863141189128950161885803315154255058674125999854053103559813749720563006554686486541922093305199883824856038596440525238557796386554948841478132905617712585771756499720834124636976912226459845418573558138654094207464680240368612940571983625221878259626144354376883993002165186908073499572554048221956790286951626002080966976824319021664980657217928136985402795221901168799041531029454211884646572938697981692108795441139685382741498553884885225475823775403161787347078048738114377394156955293832538718175372111014808992689626455277232507825902641919767135265059587604047235906599890867112556740676911998153893739753821389585298565178632652028472392361860860367277723010068635636973926299494127186502299723430573583640456068010776486661136149772991774433960393576134986791619541774082987256474034562660825065530359305333923474538970696763426751631545392664531474996560238978804975012088984465811309835337542328874934625585335839291013554686809352668864181261934890381517020830342261287159708518936642237260398550892006063578578359698070730464002698964270618750820861203250873815388567056578077158933420010908321377800079781932959338375727305228914924478628365365425645199604814720564832226707990969133204166067378838194946324564075926992643763919003911597340347085786231511817196231562754134155265682307069921327199097940796738815468786731187866576445551029330433642203209041606766122060407489984993028966408072982903022115924631907261390360482555648946353224079249057044644167402294551410242318996757079527688775384134110636170464247973360869771742296771357979702752805829527041961669516084830737155025702636456681224080729917771128838230095066393708612622482782588828221929009444983229134989701118819762872958813412779717487021842767223462457015787149445947577272864020012479470067853844795469201672039291035620243139676297685997882544201586417262074307894710514304078010990980013964488094650798643970128936445919659778451583684835899642394712243907883911213130803840063654396947859088023585964126630045197086239963381812281627179187172392993078795336785825774987631398800331871070903434153908758759367868250643792092965307310461797112033519319499505914121137372703723022661335234751524830039075725442311196746188071631662049600694450275862347061425183514964232636198891949870833411539747865344982809823478363421058502718853977496944819384506956074157699059109505207663530939209366154140466929069845899154058455173217956847641716697660206644643756919076529836647089410613655950816356582971504456780612784993805562875406040902340090109357327477352968524567238615472581388934910362814934664369233647447582774791437735528484919230595710059764278826234619310925651114950161406981635577211697298429839415789586661638274723047172987974971283304156668175848309872999350858364794922330481007622177697784792774732760772089227906158470999154158737372846367823998573013890156527988874077941482036865286760302528162437801070952042508456908580016927296692674521377275958324651052823293028523518620540651208358759028568188542499420127613488713539247611784310006246927759557743899574061109476965213527395446813985066252535679428397782609422870166167306258962959362819866223342817573107482899000876705802237641823116141362710262380205043452830109519299378408020500517664124851818670698009548624938851869116363848103161503487547099209640823732510187917109035947918760335257462574402722787921105711330759207938832521871440778557763503318691464373930125721594623547579533528001247836935719249050058501459535599116021756507781668562060592115861906354683391767769645739149690335613261688393108355799841993231930527151784188789891793910514214759246776902517097882448007841775817158294187116988546845061213513673576166499561204462585345761037614197200669163129917849924169336672674044903234666004814721706492282863591310520747097036698578578815781904389604530550349368068418735718954680877916694890504147275622717633487595485473692214977606793864363319998510977843826657590841890080237055877356524771839103534417768396056665873139079004559481415759025401071812840540360542824903729806170929423705414111172252066860888365303743554867985090747950614997289920430773999043885145589703789026398296797506183381161657633020131430450111832961186667207810961218245656827914985936131451523410947497676405514474347955165223703426420952123516462996389821213732703948700722864884164949289717465033494886482571822348132174084771879820979420931677993358708499093601438185812745621318012350018352054950364473406369356389329881557230251934096704895367484535834408887327071130433400945407609462008499952058660662599592033322491543937142237092240808989559628346299820638659690273410406626134024377052306130950476011264574214667112969846265925084039135154844253002946491879181410685628643559874315996534539501329722026558491060387777900059256954080293909396006730852853681026122412232086450405531534790910779769978320827654125835691750974388340452565065272617302690878965289587095293073263320966200885246031241698702710109079236207746196983730381752949912417725375216692782606923749189051932359602550913490231174165277454994039432577450974146891772472041464734859041893948651374309300512647184137716184559232297020074859774618725229068357484052710298923944027048196046633295962997016579937020929189526670268843549034496150956869962284637241721623673017100856086621151807119171580008060264672063885152227266672328860429363598625976349415483283891514010489819362625994284371389725580472060358131218981853204372162567879446831861903625519647716543233950978513574037896525391433865687179159946019877531923823970578531298273634949620628329352011549021100713686217336383036269368655908882506331071596549390632997775202129148733998687661489242963994702527712245558808265575611083541068042636700836465681597110064852617581011649507215874521359105433534184778500360436907129671729992626855371553108465922121523447341175938807969558680183243310926968208097902231010123058794739195482445917946667552936086797648482023202495164636000770474741112395814562370908029566213738636116604376757683704866324721578139676888872763091956184645984015165758714618534773177059842537134145325815223871385140163276526294962666899454081553639379506960795224170003610945484887937988781530019773080996303708142411742139156403104365726947849175383151461105437863069876317769512701027707588341818813355065614436159001198684284467485277900318987201798284174565595555425437502412406369165914697432442709866518263009214496216857891017125858509927883699561096889640253892912300244605937111798062231178940534052598785614491130666414401904552168363749047355584018526911094797438943612692663288568778106659481305876901092786503027332583122064305912173140423037127623999907345064004037443879607604694383346644543235103220230680386441307735838843165895909056250326968684672078660771383940357678126388352166480397386922037908276289228458577056104672974472682213426508792512132930260136442162229256185221327162754980704682849348680958962012587320129339284021976984946990338291267385564762675671256558800572254238667639244419434424258250341490838702582022229334667883774365920841343311564337333580077467311595445493675653184430430543995643228487223863932470110785240007021313663860294136624329916655293449161156353350460138198810188649966009090933171331006639184579959207499547462262110657299462076026228901987565433381211860634752407116150315451479647736831789117612178195115670845513270824544456781677026487033649040394432702906788533368520544794184412969341719930263982760363981765287226390044777093406399052119458513362957042195667480362815897013554816019359941654175818328532777743307824024553790688982316747854978189380882368006943219622393357349312055949224945577318552290218351859916838549324800094166748533064947804158816913979785402610894425771174290605762082885129409790092718883650486739108456106379895327241864222022836903051218953357141088150609428490556482310960550025317912062736343496790201154862368329667977801483458608574310591690530379921621480511662553206025794858617107151602946905557257714740433225393033494666621102856252657980345103707069355122086050869914947899279353863533969512925447562104802602688581370930028256904692154185490360923605122782139844535565030402418157630546367009964997182107162709563805124034290039337729740632474818079152442655651303562255760912400611788276942173413002589066424854877901361207009063998380803764643502761618702253092688169534971446172940131752958460937825981600233430342031411193602472320164086126383754467956474700341955616374104359592624249819408150485465438262398420506794030093049795052305967912257564689301697809637499304804635876510594192723628610450048027640768436117137913559756950774043604590435391679015147042960934336454749042593750998639078798117998620284765474337693470305745433449637055104106498191703685777433894165095281046484932333097426451762359183601068853661423970580456442201253928993010684940496090438296956826829711854470901131079167871319720096113327207171723172742364145265170779634499994486360162049146419160114238695104328047412097126277524090961422356977268213623376907007480891145135597177456149407460174389643976354205044531821459893437585135271207322326755553397820271289244882657163316219140094220326272022353859275078074013154042394451887251776444361507976611566284638117163111260039620510069558029628347241378834003320515131341902288064120223998854903844361032681540552364872413902355642213331494882651470989997907744483969576791575863575781293249739419520021326789466309007761376783630064338099250561972975935106152437541101007260171393066836596189302385320250842473205688959388539498047820980315943013175955355423094193831696314938400897654925897318636514535073139658602817682075187560818515891979994300618338423272200635713630443580165152824323646508229607603370999685369884644047314406827349384585646758666200343200227190526218599934397348536291980538751918729121982456171291735387421157206930785380941953723692712298295946569645756600236312260437485743984048713130284072459105633965498569695362264908893067572059710864143672703125048881741965666273681469283771854829532173675710407998782926529460586666554402572796316072510629291817641696383001716282551506614891535244028919021488979115900088038201736279854628777089211320561392533203325321247557333036919941247633432169824774141071347659274567504641132550171907065684612878986624050404566712078612005744175859883186414981776856882389620947846414317028774354401605843308503379225856168493561085179815661323247861935332507180191939500905161737731303928551009999076112161528148645256026311363411136569057804036419881433049111937655281575303350678493134128543019200668791536354288839757905011714320485093890032004369745183830446529483460165762359391111120616242687049982140488818460324479885707977710672334063782980669585396043336821186197366315233658986318425749599087024217451939720740127758411001488604269657404649765355807385363877937733709723318831217834366369552081491441914572438076460330574952583746458205329681337126493826385467947546324273538970340477575221907158703097855058551547450752036012034910787458496445823280918248065288507268955157200802370097937764512881614870734293794981727349358553723143879788671817035950672619554598441237229454374515475615866537305507105957426631455296561795321289387437319615168705259601838847025728398512337015462912905959006985274367713304228177634044815701744188993280495074964210294779360964690373517478176046518184131709254556133434882045152857350205996871646395106130933896247309214079896285997668564347132147101404566623836414581349737667143077281758883277195482999424989579352217341040903122667203545331487721462039841569233832723063052164165756189266408727947546613049569293960664725404926789947425211085477901063016007554912532649835002036768846468713175776010710506519943376834076081728376565708548601004908035656771418673974159187811744565974917788226134981613086932128530999021801683124809775194684219294424578646835088780573572525649576976409837375664428329372011878138329289181682418449911484878578161522979500321455670421595966272483937242424590697965589204987895178949441379347644395396642606802049296464233102900362333385070495584784246274434980335300376785792689540983046932060680601594089129620618535025361618351362837788666494051046471732005479332420102586015947368490652055074213973089741978505690838886456765199536616431628507579155657102046493429388045733980262013966995303718746672776753005062239869809789288525985315900874580732169464830680979031444348251317381912228529306900580127870165152610966859345283975738276455990426922886079415585259738013599933670924889853166226302666227946707889384551596593344003149484255211374685812120472596544149416180080264246367548547276509848194643279989207403209065482256178898238805928745269793763350691530757433037420078646509867835118838699714470760589792385102974809807209871224364807364828176949966332046171555249796409194141958264985519157908083884948141286360928575118255323356573503637172219669441504080413468181650684157191087067981504247778466996509411951412145294676796596112910134293905760363464931776114895564135402146889705716171202912106018798223181370315370765989933511373192376336068098280608308159997042711142066339155557063938595610839652183677683105756296031122520192856140384991309902562054510501167547546680996473688731206166294778890126326968757818032528404525819826897992046898250671156709265481221238906742702805239993527473176340481614228593975763453760947920559658042765004885393648992764143159807783775005897340330770518390736635857311588700255653207641362824292759829751384720305196676640366679652807431534694650970872403038012739533617313583227594405811021846190970465529761625401933899931589641578308827663354545673672706588686181432828734128225093417824576661376468379702748692532582671917009986407730714590062024946926374414417802027261307520872813294563983609098950314996943927705973405656628954841065157673442194893561312626154508905163588171402228592875366889838223144844270629716976214107841087910117185532266726542733917725654626979782974115158793730814181512295145244718591863204083824084383167648098164660925693342293792634864124796803642096587520378841623768321403376646488068476527185364116704952692662012294039861347065637624805809836095711370197210326637872510121235539968077450119570051063703300145167657984853023142840018072480238861113138524895902512231569441810159450340393452967127185983015094334860895954246396780835768005374828366259140538739884812427735742614930766088533252012075717088115436691757867881610650971153390018312890657591887458741525762320396667548172380813024095808955660981981531861904153204837904634306717938792729855343056743281664536604781564431183308379541637279641037283074802342202369893239380640591358541003098841162147035593038314072951466711066298101221893186472045868675378455481527687130451650296015306729359408636142841379205449427379226475729799105476757108325816877352054347387432818849733656113888287376183109733845544993413235649647109366286178491040084658286030054058813958915447980104291913953014246607548972619637155811268709105811355813165180466692810223043106765896286003086841622915100957684144890875193438635413967446848211765032312891006811004511695681729756422435816660897868456448247732082167174062223956280032452131602662208285133435191277810962356477547814686515943249370983997716803859164737874625280253231955335166495015611065382043185975871579941501414594376644305760126715613612731100840169145936376560238516544743357162797776985233615568677912147570843657673712566964269683118017518554359179544867755992618470529314650575114277979886619123779540317056317498536465117561342665066326000668005081799781933081958784403642612206749412954236317317245621826593999798478720517006158781436019336163176003805827020536757602058311727653255083112382718071867450143665845836887858250637689682813831612070993889617519758848248351948748680095855181313250131633818371338364797091147816875033015118459191098169140048057724114076086487235477268102788915159708739893830238181187493511277258616624968828623927993323352211357947766496578239592263943920978699936948378897284658282565834051483624228437688286270805237774838354497658489212579883514531389189153443507212196375557993895618644141106898438280351520901868362069356294911721282900318946986949543440003067843201986222543847549466445983415966337969925438444310691736944100723585354295170740105417900263937546017657352279954420349969215950984391576890392854554789791891078424977903944739413270674322868717903982618748503456380505141466532680564899800329026569361709315506095196445735424701353830802211935089259783125689866522740167932666402345183058611359097971067348773076958744072509740548201707964189314731903802835800824643711810895984060869227416110732740125706015473459836349078784165040425194008679739845393135045382613474312465365612397906630165990372040298914885096492148323350882927124324562480367998175200144069710375748463329038222503396366826312921477756121814633691471533063772885107482075575869645724734045710059430636330993311344206232594844711629667577600038433585345108486330051033356049966148013670497821619075600193947573515643559109242310182444734401250699120231110771504700597997697339730360506829539726057573912308957391986089734123301799897295031238971637992684269738686583949005974661198568367203992114315299007431883208244567092843876542436064761518115069070401032729826296137367627291463085586293547071548826999404847042816765496406835346409089566294017985600084813772596937876723040011720531656465706003056929056768428047935735937804086863853771368011856014665789746633735750141292599447800526185544579176609936097669395867258907292745104464345416732767529392464455327019848905624696748101058601558286699810792250975237109493770012989791418293815345602012586523498646684590688196623919280615281258065976104078254577348367377830276781008442210514996665325069490398901839472860502970772736430395937042153985965735060431683471836081865256979397503830670625243158267189942112861421230306775180879980690810742246507900566867944842068074975978628471352849757548731873983130458481791442417806770299986437912365471442173983593826599137565092806429302196196116715810057617626808070444974534553324884682015596698714641223161022971167650559375423067167111796264418719709720278566707038055544868645597447309521744192734710693565121748148445360871270848444077201350092953411392482079757594614887440838550698221244944986331678836742335018189389518622243240567657566194280012094543328727982902175431190374776429645265562006030701676359414647172235277700250377013050686398610032738021016377508305218552710326640525672233869071309578112488454443884846455241966289078890907492964208687119550763709431725227389702624357499846608576432771281565864967747520769255616798890538712358746140314948907741165951455263105594572117873806340128126263327250617581235015194083972726793690921680450215810900941023561287311766235844833659549982071541860994088876596354792274575321944144043770526221688460291653409013809011253239791093702960226453382554853311431255506260521567428844540779272420569513280878359729209327962612795382467038916078666815410762609199399275327860517032439245584266348541750116576860639202521947430593603274359882024695899895282447997860857638860646580684991184680911271546853173345589189533449087921531170761134038701741969047328771159481018593473825698515012072296748985167018770718478087682154365763615289851735593967644787201298673219470655591263141836781770282824140067134947906753699099122461751520412988666868460636901304992614773698162371225910012317199282178300464957757457019338998549971420295709203895590333527665995272436212978611687498057796368790750105363431729801096532772803208503857640727934611784415142105217198617125383831834460147501946348156255822614840159694255874063795840356753708816521362892027366994051123918135663563336082609895428930897330394506849597608643961926207675334857241656790864264484460623628710213040288082018492791946114670320595001234106758841544107311741681549705192015823326137064054492615436157011724943734051038016535816371833613345352324777177519046775275454018402679504252064026589957638719868755437276277862150078064771188262979647624208563035093441701500954375582174666515216973077676712138422560941584408409195276929466790705797475147461978435301060569163529999164723877464602580883860852289174577604568614686069901753937002021542119365939906105381603982905960564336281489996835866525076010924421037661050813642106249117370047050907342394069186257683799905568910250116550895234592623766956248289267559964738154226183311143477301354565647841346777420744361985560838417793469741209199717347336878271253357553415599343028104143128594579643766096318823213749157018884019201134490551077984666588239678672127585425414100605026840570436597069925849142589634885140900402284024520723855812906007408975175647973891160735147310926950178262466544728802154918315381695597880655505995478553212660746452908754713645611828953998802262151142081311452967226292854459232567296189816281982076176874700500927167375298628900634965326720128952781742457795122525707624875782455268474594592594298380337361059758152419529662849586573538905107237752472933171156946907460094549434843585927292650261965385636999452815698282462107455470324348729298460791742376972862506280192615593170365592670940242086184806166024337360592460825286536788322170514713588556551193620917531877129011453354410341783281257059683239763194986308251422499240055013039885902703707818731621553813153292457825587059585370257977706921069718235520837369022242797768401351162906679476018796186769809494981204892214264833273673909307878480228936271665897257380972833023635038837066465040265885214285194389030188679078718720875805364495290772554845638723562603672914639287336031837156856209398410106653025245756509799325608626389833190652021717153747169758570852548091257160483915560016401555232212931655333010013125044608093356819438929927298009047321120640378184986033603201315884100534162823996138756264397473363114200362585136575310131178314791048307247860399044757800104323422731086293006900411392155489780339048445396427039014159887931661280421959912737874993177441955621287098459738383242290624952855528554602737230685357676710849563698334102825067781601500845981858796399889172743224575876801494616690538857252911231374777663907387076694210498723592671881950091370698561848267435203282806442588947119784419222674984847863636642838191031147095532601885773208047942439344024412112774621389727533198611522465122868797919573514606706551826234451231575083368897713275493833890888731490456809988215252142696759206336366133964347758306600028047144626900414583425824203120826013538810424847924951391951548819271170099757712782207812955693237006614800342752678235950047428754587428277875589883216030226436322429374632270625348068803503647788023656557610533417983739084744659716143391052891669250956857855216655366882815016052929271711707941605063500910274077146695340981010940273402099757200711946631099330277856765113621758952302391654410997202898893024139381644021159202225554132921700025219928505616073793964226067976652573712031383244738537623429960247985153752696940348883071755212388097966880659446488606501805163856249360392277285839331576105700881280100187921874739525930523415068843070399887752347451404926180853621456795140345438220182707870589607727449082842964120456918249125918195727765384034530218596081427146837642004318563097646556173500074002888989587572076334451885576693098395153031106661950873453893417033209843111483282204835023295053117020329327478984793880879171745830156367377136091359185856975557077501223715677352993060569033847124175302390067431227573167621581002632210874226205775316143826521259194535225143296942879304554548752599073391284453888646888027810946902284277826402691891786614993285059775564308729154023616650717960438730790923330316566398268753695569898930531883221325370191595333716281688120825338695986295256174034903105518021253257692259659686865382373660181323149986028153972214010155348517888416511879813000995469493160900747618183912625184696121062033110903803071216542539502732781505929574962727773502922950376624874220931572410609300585836350325102435578298926778660233837313204928600788050721647634214618874729612479813262206450176284295463472975626961027430537196772780697031618149430878996667068180267877564266731688533255652467443239316842632661955761823106516054015579780997584411569792710567386716146625456798284187730611501086209693758106020055668201427654453272832392726760194969559861959050143773702047481924689639793901762695265555428450544689926274747194842925211833221818627338476612939539529960461275613230569457274885970265617589400465686447196867426995280630729970306122309690325841989440996165453939280631742719698954939915053224516089051473596050974952521229106686429324041380103385250724921724923074546366019869761631280131729422245767899401718155705657146473661873419287581562095690229965875733281359150956215162143868736306289491236441853650078507408161365591941203945171775799188718921821539613174574328551132376929446372251458551764696822188921725357658694615676408766641705904414514076213152402994229079857240177125524584036761088777664863001671863389728230579531422488511974040402832715638529813024198452161871682953956709372701631571533725500903359501355560612112227274432390591094231624839190791282745055074443500791941579570477614255681017364229509562351523831110358084140067340026072956481519626743193395852704827539476449518021078068841858047688116266382005966339373858559665011137860948555350660820398386539180568549825881320016744272447804070265401490164701565684339279772193088419382851635990386190522569883247206839462557050952533589712999210844736237614874682048859151233072336957616700815064642721345399895783610769674135300810744180312641877779252538087553362307415550907161476183690935057405161017504907685222001462773156681356458645183800872324065345007629536213784251637140697561009496534824980164469752054807062182861722028062089294998130220233698009789848239966636279097049816764770804449878687481407350192240460653059392412298610474526849555309218217190812113814630945650645072349289800815619295657028619825151400044689276201713674067023300354857511995661910738718626320823833909253663602299626833041987616738904596149056611527906514417215321689703539366417796734781093957262368625247743655125490213503809285663671992078369370660624573178473186694048562067207134919531532173159264455323511214672068214370840543684680421853108471365076967013650417592554974848378876654261727213894197628114686646913951996269838312313777467282096525895458305854810994569467321652591281586565595080063085725245289067191874209103379471459444610026898048437781933705883056227382621197641796438949336961638770581854627917882377949042619345004382542946656909749001195013832834070134798924612513598568769889980303864408135963355031912826430366876835847079694573804469621824202907484469925915885056403027296110627244937444264348374446514276683699913751941613157956950773786705791489379209020618790056413010876600293348718927203749112408407580084181848474327982801777017152417903169157327744051001198214775693584366922457332366829484909330216244135291527409965276553608780989013579296440603791049912494809393503895011055981827669721028583851769708591978406263198352518020932740495111203205668449969928017932914540058494605604797068437184288372948971819940572234669029394545303980019690249344597486431105734372315141483459897645096911071797303589606220686043366111124054668861351305613830169982853795739276135095686143102713088810731773347892420297024622790155009136101069653306834039380518965082315452626088337997000882528871669022617419583155676532604015109674255045970854964680795819359189091857001975917872772374140461155667078773285823803547132966910687164743639769162364737650274587251593123287208369773285864041215192021974004789582960866769706902121529016627591828981432084994010645095118060393320540533584385707179587798401679657894450095571682131893836340697040401992481951862867953009805761269751679301027026121142864219048996129438973975376371395284550330602474292728694884071589315595769532296645348096919740575221832183817236956469133519591146718435380776733824807154562452524204266976334861615066029729054403066243502715246401053803561938875005570609666255850918866033548953302144985719188409557713113437529938359916980782287362835534798139839916158346676635186071197039693416045200771236602383732041569335063577329292129247078135093791480332101966967715553129217986404164119902091335763630586683464282181860179632936691075859478137385788517018162862485087446665136621456057454201986591015965733862276172564027711325478368546632463684162546004817485698367210002316740579715673255058579537270554431093974362237692821334658531386117784743493070778184456547929304126930452230118520133521250939695437099833101606737145242749741097733189564766714933081373366311397028235833199733190833925038253218613829652375713781169747725316676187985451912619668366713168753264065411613227125394771263117203301930608526728608236816266888768899585354167013638272808510697002898177582090282641502582365078013484278893547348378734634539621768006604398209895606260526598196378784946265306406252327089797307907644076614496162709197748328851871614186328572351755062440333534081925600677431986767886795012623341854775673898610714735574783055791631294703723612416136708035528773109355112618987767772866581589700813593310072804490448154286385906845784578766647978973751549146463833764397380798016694423537647826745561465634985977665037176716487797075154753044935898215676270495745708106415587298515560259778481591141327939232820411883695196632126076065801344713057272059253989236907171749926827451821801834169644084723894505522037150023666914259951058072423914300653628526333231883920343131592996980248594112133710039285874558246304847079703443614483257155383166623853807323914033340084427652513467111514156737901968436742790563342425180429624249531816015666941217062212102276298686177997241153911215437819954457376802162523171255401094116189370569631670803883648415710239160011975460112489937249853443074657043650684042402581569506551737880535032493013966341676806175682693221396760759006414683811655080327276937760844966382611037497408162981370373261614555011775501799669849657491201865570099775706261467227452325647434173943281636277804972530611762925076864408275524047655104304233619721348029138759924691369577223243531496815713658076729500980430478920196166268277319579282096945699623612923049675390750081861809086659297438190708588619967946197471908826646845985355924118977556332071776689373679918705290293918086564425254517602841055795420423372466122176954366342017333334462139467739333499352495174411112803313215849678025421390933980213812154250925907530080386687691197269802767395332622286498817634068646434774914263297509343855717825310067383262703286677417807047085079897209199260398233463042150042785809627830697068393998755527973122059403018028137836736496100143340604701498222943487839211644822881467031412976601808402261124091538515489713524758567666727493502722985961398937086081106851013514266311700054162384634968969492856994091971016289005154523388484084816075406860873618308487420214450570114259315151867622890969286738196906551814659380239907929719389116350834908276038822077431645677162031331012285078743208659023574492779815702110160343017960733432952421676805124385590082255183691668391308727317549796051984489208532262697855511269091639016861684708755043136257315235681887209592618176859399552971530791031888390746476455044473421224398517620466374448040074577747943581319318540545417332062610518432568514255366705096345197507605929586266625327709993688510472976259394304282604929984813940023500697231545950976651772049352337498992795935292368722110540437912829638187655973044270478859476226179763325395724969129341274420888456186038675730379703536057569816514337094390252608353682258496181429906538559870757581658060198046207185834508179400387697172731025801035332073922932458786231136601544608407785094969995161298024034024881095560569580640190558593723615640073196282170945495448404674416112457276060583252935396985416944562539667042493002679848569418718157169472390194808094626630997767933948823764519398909527301461514565201266518071610808403386854719967833545754329422107315990333132657232983896220063244833116332873894885732309523160794675694317607341523816507885580778643042069046138094346161190216455650621747789594592229437925049299530467683164482459051815919881622397005963335952119708604885343210410496572460560518275370056730064093958308333742520245243303396130435949696306586997759803953990560352198676986175885617252613610140561158436673013643024032673600603104947704147501160606422708221690034927645515038094484570619898763928984250081980412143728804615468660758508732261038328991086665639966735503530509486656181202805415338194115135278152228775365809909450668884202568681134978947969402093577777260475024769177340480452553869310401666730095790195503257296948657869459736909199887128836706171820627100380441591826487126436694954022143620309688071181199583278740984705395862245915464548195953881416790024612914422535336990514264044927585241722305745499529699337205395077099350127255021382378674744805278668425876351805791087317995342432040552116970201158934550116426528241216414489339196632107393741453713489666670941135501343087781899527518166863324194662694352185869849474257052946623591699272244341378645628363139688405133604178061637961294496566019194958278856290250147175984263957112379850668097451534935802223412459165023577928597372418471235134449962494274845984486727561951433179269743136617155417938620012916444439191266520370338461878458244485717656454555508426674104776428502634904765607779996767124618416304358874809237372504327306378128742867326826191256260960734823003972107595662041116479211404492354869912241021598263980218337377616022071700313224018652385414575230078655230841510427403438982143706955452028800542760230114487260717587615027451683503925922887154355735858267206140557300703655384593769406430927702584262431455764101447437317876332339138766601396083333508641430607885749545869828702308995837246010143281041750439445630439501651535902799622433352696616302182386167249020823271219184903518289439194314764634349540065854129377905324045915619304660106817828247852409568545843895036323475510144017352394616606252481962422353592929423927672404501047511610261648467762779595035379578629555657095524848477240674325289316809777670413495098988282996236724405988696442507956544548031512497221383709952899108978036352383131157640761098181049228980203629951615314282085796258455565839503622529568050738981682495513601138813345653964780949611102146545378509575238016040574885000483616861919114070180407868466757903139980798635758411491712672119501694585897822683761621957327740027253682273157350350841724318722272248654921826309728315370453039236597734520150901969420153457792306131766425731071202219686368256719628909315166374120659069376050595169481364387850506729775941637316575785533240178964650431449437353080554203902564179570906404278206298541711114387382773342919694167679509640331419937624409151568214970736447063441065117092309440457615312551839496347658688202119303132087830533830048220438381471764791178842895862120993866468081273826806323831148609045541788399940782668609449829516002242973128076280572143405176922879377924948305557569339064786140024938134587106550108435141712292183723036404124480360229490296162816592415265110673639287803576709610003392219995280885152272195352383445379255408212129106664223419380485848411706862907645048174195824836901408852047126368436621458098380547713930426355682664207254872464290778570758946023293909441610454079547717859764905996877616966043144315649107183109509979025876924471497559253313501498853840230275306299395383080557105408620668065021232518890087201003034004916205274421417316972334537901512077754408719876791491699544958076444085251605551880052406730798285208807539632641220156510406711253867810772481737589693225195548948492333974625005178399223980324928327251379978939815621698106535348663053156762521917657660406925015273988618191555557060712282693356709395797817960342400397765097081669289151110211764603631801800150377452606254451662913959989362409134704541091063834277126025195972742464994949129850371511063076596210527382494694709097690660871558815171108118607125067779302750706459342563137069802991400277389124385701112269482909376972014692904514054417215323912617833052388213722154066775383446496849789468230328968313516674292091421583479799553247513250144707265158367242959492978941945389314552508728935528875095668827218008960528074811143029759362762966505137843494239583367860895887166801323300270311384128443002530737000926937167499895344645662126738209003055454777302920524248883712162305645479314800720861458704560487707445681859193656617111362141157120347756488703193442415977339333003594897176016230664967120688079589864817090841856055214245285440920995827373223106251425375589601283374711827420441222281538866655442867391993240804423399949793199464854083930344909286430525003947811377834828652256176130198624892963714699613450097638313767885644615507810382516581656844667624711196039683032552789393911671552322980002982756378228168498102031489126494462850299716176206718989550404667504068469951686083232057813632481079465859676109582019805612330300103781510537997522113160383523029423829121505048340504533700482968516600567546917206633456035655740566921307695356682259485530570820307796625450895066560673824131003883368362050104882161064736548140288779438591075809838923929630161460812567218483553469522872646578554731927403401403491259194164355568675603687736449052864367791696741062588197954344692343267106500782742625363427361905163275746467999432912103381916447937729525242394775113180817748657680565743327635768641460181972883912136970204955344138251834541321798591989422711386453217132008989108605313091518236583494134721028802102716432494539470857397327835300532761155770465340415752593836025918390870328856769381800405980350508363810112240378155368361265353090687930863022737935109256935022437994271707505437788223397423581694229406818061255134893595097945253567915906670308908576452062543156306510821136432080270465375423176264557765440751640627154944460955582781153164799230005340103357151383969551591613075618676244265600341064369807731841056401541380379100408924036597375904879401404583999113739945898126765022584668619169399527023625664899339789326577360947371613138963796062722270355474661288918616518580933760036626100837263468391371046650851175718071983879469767492670248293654388649360791697453771001074415177511103960665850212502388096728800379830569185204022719264280443949376567384993074673175897378434348252617778151500786112738835427135708846343432067006727121907215909358509131028171009972474672969800601000404850781385328234079960107406360172394021799211685521021707148643108971945815845188952574907702713498910287332047843918266706574307278235478309210036390407280432412705783419063643172319523095787460526448901487535237601842427120881706355383323129430203499408311028290793158451431399181825079287219688640763581093381804847263327410466323040899337406341799944911018326328739307906319899762261672539364569903422549433826335877385284745047385064335538865063795604039970348033093888233101083245796188911495106376955406297835469686217921985395113600369946737519281087560819076100071133700572007512932206913588360072656045512057303746405861777657704157050537421086515990196749123105101127070376807014386641337330789105334199031904310970553414046888434989245325757965867639518783970538688341878879746454079013037164697815142620826795019286121119088195063985313880678198702823816809590668876451608980417507135179526921463328217193583246429219456233071610579554037078471299539066439528448952467311119859157699801498944552066134240429391650093779350142322845637180677803678572767534072905654535363791929863542029172526590531574021182956956447102208752868419068362047029505693471220903256888264445950561357678868440072152424078979669479416675698765862887300214923246561066174558987605323131337402195916173162818302726608440345415425181871651528049159065485768446646984245266623586852175336682095191852528794883119753176117529467153934438399878064016897614289901138945160810953377909837412465461610474649373849622475541572041325202153421994316561985118094928658886611763218902431824461695006821622622059874127219777885990383650629994466495227672115406552000962978444731901405158129436271142256216307288231213822055306699619161441031460768062875744077054875116984320691739525635214992995595941353814130269576795196621537047638696503392525834415660240002292055472739482595710926797602735935226971485084887720986866845499675628590222856199494990279871727467563237872821445023092976224206125966946237284878837192745527436804990910578541484093845538372291868486561443050795625195974303220642747534797911649389471838869018432441523823105973408285156272269535743621883783155226958865790067761591715394853062541062332092637669828240395275246028030372557967910129249325231665947812755645985357774328769996813931497310165452738750612394357672748677869748605616994795702470412700577996664749119886040539383167013166738040736127999407307423398380009786158806080978800018398917362622667096654534412204289240170501072746982744117834820128959483510402560768777086449425184165900670353256721169658435602815930078612161125098196663874755769508313612996394222310459972967724533007691311876377924215920356713306401158917797129882101495339718657212007126308530250389474100858424209027375550492854643200525471921030280349193828229085548150328324671108423297686725199973594883565237868747670712287208381577072485359187220243529808287592425866720906006169110513085484925325909348159344025786340926528880680877321768489042408924127531566679152553891719520476248941182122443307897958206628584671296012093221995647213343379573356298519644309620914916399637693068382021330268739489368832658482351727728089325950912859545374711531300339763644258315076520074261256761461561752487502562733063293097461648472052557258535343584726078585576859191813575274989318805691606127129764647177588849338154772655050139421473022603201777592790711392131013636453021926948853784372105521990235191325941380591379679745042082276995527628224314259148228110411731621776991005681158429036784956912989280566851516077162586471161720268965792945112661820856625842129746092611075058565421375228500321021899152727962527750278054066482572937344043389631122960949570171109225659499424782419459827342601179655096356543332737798564460763930479859207479607464493516640625238238572898920313326327701795175078840393519809263051969909048246209077815804765716746765138792208751902694181272087339779867677689807610695474400419168114252563614048251662517575425756624091353942057447195582284498970718099774783309564752899177895244848905853388682307463869474731414202145568655838634375912835733320135702816351629676684553561690845286587622172522464326247335381792706457573866232560551380429586085391606873833657197488469477118638633531228043569385559525011055128077437281356498557653789062327865998148152988267381084965900336808694036981026956850048816949143462536117502431383577828413836788681465320399936550017798604725929655103274675786879958933797615404797559810304257199076029744994491040747953858466151189956115698629374357939341681705412856499564447747049662672523695036308432857851931470218081239191367009881441612174754944191730433607672637519562131149012809996577887514139437967231404307917657219474378906210110710178792737341866047859507847061012290118278914874530139516033242498600020721173981532480164416220913656894261364342631684655701545136739636246835588677632586057667035615524186902844822786665021994754925317734013272603117482952372631449550912929743273029653999006351078961231020614084811747185747092051435262922731568832615713146554937054720396404183775833071385835508077653222225965634937602699504648366841934862676248488863619579916292880362717407811037066832686805083567372204381058014293670889374962864818285480768755312353378500141134613372798592667955369783740181398205105926303672983958646766423509536878559844700132128185319727856821966358336897839818952490639545133289130527680151602684455026819387866591699724961830807863549885069423469193061380090946502522280795663400081338788621812424177075134127831263560865554552408556067778300368022526747100471407772390919688793188803202336522697677224274536645972671111675536301348551701436087439271679490192409181810588141542046613978953055160246565864742106752331454002948871111031761125245855052658724551494478854436835785660909389679264969200630899032941579357608549995156881048855432350191778203452093097584584400168625268915841154760016573178335028904479071511149236672706703258265113064891790893992961121541347838875477299654511967651262845759961150616928479439140069987370031678561818765080969925252507837458592244510054327747641461562188808365983405622368651163977327205250190318246574371942630625998926421443347461734738996099124935000015201586791365184418973807091952418210807315692956028008583691227861543673868189714007233352803327952893414775549382307946889093756097939940019408227185391073222943543713759075951303323195815120661251275283151272933773352078414290579560236077317051316985192978326439470321175764730102592850328201439809503213252077194609220180805937837410403401608114586990424350571618957801695399774562893659024149191395871508060395545870845331789389412602495264120897308750303696389354578944783556640855097174968616851967759143636592915554078139625398643420419523836763237884502740542824583144440402021500331098743328759609281456342931593108331098766151216604447021507097733110017128213303751031893973426454398781702454536022855185240505804945669825077058593845701107336923772219088186310057888122885115575544571956789344468770005922827003423437400217138273914826962411241274171713502451177947836946969499736691852629419712601798622987838269631031972737172212762149568926526122272246092891017283966355654117533516032828332077761816703222709029929496718283268704200114801818802122567833152570113606769472572152665774650171143214559743205045471531627962360839304553236016444974240670465338428545763862197778127623321184896816195723752548536173751531511167832027358846893579462919241486308911803156159644724845769020200385875706562827273260166142243937689800702152148878643398968393598160061519595653664428972788356151181850787321329134055113113322368778328344764017823809582204182937117023229981957657323301585777795223262634899803251493103296988956939270564841990877805979322448058427265913385584557279624479613533580418941151169551833494087782658041411486305722985875458663681075412588033091224908801684382902371527251248841558552675881987862004604998931682944122588718252492966356131856181644887432320374349875942167022433819940061763111689656669550707051283722551777747508140377237846704381590323394374351459120728425076921419137151719678247155867599970573293698385775808517036245483920229897032823624406987899370801615898869865592540099504416476604785909191991416624663530629371840036758925297394964258330151910891085603901307474013631113739043503374961458398021375256087889120127318427381128234456144806887530806970927797391006481016539650504883850362471719822171257156798888673309666062515072275292236737728552501672195842718044220515215963575466480802990749193089014604095375106363504227728850193507982510776136997657483725053336936715972174186422646287388347206684906754326029576723225932504529198199387282136012320283120210959441580898003199108243744175935335359773063027701261919256808318936897825561615252728066007404149697663219205973706029528519803312641276495810447958841320023840970226749121365599843262136280710087669607964684097238611399760159759070752224616312382038009417767331798619136259183707736645709621881267780556553774683868724105980458184795611028986588516478250994421496149410052187852783792065744582786324893231633147609903595726625268437132258863223818829528198328919548790123514478186785116394446495669548893863449878401893994938644831817233764216011021993872174541452100800538135195996537402154408319951809466552973499414176199076446805811496781583922074081011086228746027417056203486023001135622803315506509514597616147851518761588289817579240940589518516823675404308975102240072195288847018572864580867776370018777730162531866410083727176248857066438150237030411050755436319167106668882015056727324552551712072393970759677118549434544275944292182162260241227123714739343493970204545092260927870024393073853252096775260947259210374051720989100203382864102123667206847766346835271625016359321156058197830854191259590909062811088851053029841653611205528202488216348371619109592359291834622969082502249062293896124144422942761940322041702421623730866967431938774163502542836289064853045406570940616596250713666064579997195962460933134738757185065670078435391538842171137311270165811191216208506908014365532717002939744665967182412231122290878656517485504021265540925287419701811753634731823414406757752905113637197441867844112406005703355943810064889450009073060822500451403400391657098680502358536640081881067144461119112541984243727504277949214243151825040344331496932289415070346772416321984082306432958335975587742714637249769125604253004235791297545321456796372535646646212432037613191196379775964125886728449958938895008927007289974278891894498346479725007676837760498493119163123463926163835583847869751887034261748285879098755967473098305414012795236371924517074883790582801040721264261120434374900565225160523066718698430031751715966777625444167944275856311341496501692281400158681536749328453467091270713980704480345568173096389289621192705008419375079125312693968230444947873560228232675883122096383853187472730150839512443202558639101025870951516314628790400609043071700558014972245669785754266660007629115777243085664564317842143399544331495920995370749102966570098702501517567680079071382742698685416803715495535978070871303861988248190918141908504487801346574573676656798655820488565300106280876600884953383028592205374168403467020463861886448546391206677596675937028221452505935719519579503447880845226050155181007495178960806945377149998003698820348529553060394643504189272635542894672564588158376663986016038217610048585963744507916592638621016706187244919620204786063764607105818501613700425297418142735358999683857443705176738951579979094263470220240786606333208134346258084949692298949998929612714207427712483519503324104635924918211157851245263338379885295448408983334227764707811896569269625268995815306601568089710302323679168669252695152467928472456612535973776689123785453423540720917625074799098336633390627095880149261920702137397316858643431995172686061683579484391790769390324794120190101428228767640247263705799036359238974388364219816804237680382050527333604971831942565810592618023847404533910872893004720234383394597492811563084128724120172955464619869277026611335008482586401172920295352033283706146453458277941154847699598128223970676849095286843367426580964807018654914550202081292440237811316535961354744643215208570393246674367770140350218628333846042279513266924235281744370302267031329603417386756417811885255273456424058221481782707200119618145426834046444039981914203560527573915770758298798148395989367432725184685633258831099125671866197868248928375720469366056685636982337033027431449835182300868454083877345269308863965663353642890000867583312247687033236883143198491818716504911703848802462292031764714289178300724774301492155577190974735418515366808972777018911060812350841828888332659495442884624343999216449459817751284063828704207041401359820199382915812764675326366329131955902825303267321844536115642992826547932891334223617049351251345162266188602203959077379488741427003970647794896160179617847417797872940727441302576967161956941121313281555027425319038130179685821093249880597207306094573430580989707752237460745797012585716818696021920866444209822869096664465513209020175212579023650234975087194094054652844881741249175993095990747246011692966936888538469020170377605700014210722144123379764438554028127763348688955588385899168877834650455293119116331271166091498697779066263589341143102280278276866142734867527598147046999520036278126686737827636523147992563180243903406963868757119148124977479448382508023493810854382505756248628294716504419541388989795288662798627758259968011693605643942214987508728043262448926171956568191750628266691759956168124986692017064558332653883511150343322517342761114930776512986904370649195305002662478686528235385798138563949449786079850810558524402050127655743083691728208910784479356062382545342920563697990178543766109205114273766932963901056017969548219694600588035906888677252758775413302741532915388310414021308666387331958094643243067687631119677883038434720753913066504897620329709813817174428538988440376514482093985621022007876512217450892694653045085387504835343623806057237739376538961640656357936301081223417801819983004219472751935302534956112651799821474035998479385786665252199023134164199615786618833845749337707800135395524460419062665613064979707914325788056798225488978650001769617216626824011864999872861512395785251949083449644825355375344117816396530627320430033577035907305097939171788457770882591029175045726481341288515432250033548773723395237665998222693149032586547692992995771823167092296133631629978509798520403575922909267787313540514680363661490948217116696477688237502967108022705772151962518222979452498391255751624324122250627587272237995112902870758061812343486499053481039813048086009836938060420386312994805071513533023687723206682772081341190929872266499378004957879010497565754411502112831152846791879752682600730530397765020477381344124526569487142004353937846591759219574655083305744248913796545328468076466667751585904785297121483725420692699138305926838160800008617222680630804257084952938000051127965791467039276361829473846129801304348023911237491629143481868341718391845123293512317145459896800120874641856144797184786650922256720525909851181285179160636081971151882519722109319337553294837981414980055472533164648850816380995921576582974533014205098125792839312916970640151287631110911349217644986570955804382549929583932460770673596677022195384436320471055916949016831414611299015553145792886840552094313516742365603575958965232559340545104236323708373617664621119856653782345609717952109866393032715341370873226942120617006291802405402773841582373543343872343813583613795471762811435601297414159990253760195398325337432236370708150980384654514496845785502537269573831932660350086253439673361744201402188570116015138118658567731759627270567233412637397509749995977584369789315836730246680597629053763190747108703127627246539639716175819559311089906551980095940161084494374458720877302731749034310177192752183295362686521316984299913823619730023239027198217023533481787164155167635588290628185225286889696403468802720772836721378214343686151421143827688277795620789340215461890523538308343866368251937557161333635498928352920838929320995145644128194006303995146243629370164993119303482510378865585298367371808183086580840734596981844362481092968886767886286956773677552692726070647740097209365833438580422150137872052274098359498979940915547284750864926323202930800310005964200587108980969175106281034522891505691418101154865582902596408042389533600053457283743904156847897783202667583027303478407121249360837029165024927739364418133562906025989323412327275270419589349063854885902703359368435335957022882248652605843953845165008052042935574677215840561488812893276634094581624125570034264513028922701046158531382875522059085966019077484225310702297478079239220436028498301873357949920134549920489331459054811883561763608940865012750682263459567736391698484128072280247624427730472804281070436518629262475436566961795633666806312183006397116483357867401553812553647617600391662328025412916578560722464968658284175782222356483248519606290636256146142043372234047605984703259409833099037498631747123796921961455266013849789091253411449338986534142162736080004547213331771626446008168827755920759296683229815002208835890836007024132831106613922426242295365898062249921282689979396623368625720954603143207092533408466636669241145656822209428368311617938324574693464737704718851973300314879093945611382184378487137255723080266818218506878956778840343444969677289758665096194530596758590845839536741050672130820021773045160926963166783000588248968194803424939044590326448977652854356778770573962294789258430318621416930955572237745529205243695560286162203070467331332712985781417856897848624067522977959719639009757630575570567594303021296752476104241000249760088404505898284355936396076381636700909629231319061486724651291302312954427719828234035252151329045900280704468888052718558124280295331073959635925919911942555013733594687355384815589529435240281325299863206105912129421536502841627996694139184274826727041897677725335013818419135960174297522879987158632295508240389822475091719239901969026029189758595737368358720605546413549678582356576359592384437860033600606277281975248128676099242205706681953383598171955035492667474700384106737799381931083312140002134953276871564907569470242149213852855514121418226440047154667327721400494454201413545992165104424022742040219988544419663875465300431884346550669166132673888597208402031931962806304607220173087345255516158200646776970889374297344039828821752848886893052242942496624050372099847961301267135511890493461581829704968097565465901914754949123967527395226766406458502122911822840455187637157268208462138381777137569275606494754733981056046186545971389620856276147514655929695653449385481089995598422598085342562947483035936704481773321719927523670404337483711329032118317523867754502837110567095284989734506157875706741554419547751484654295917286951671022589688413655527267689743025861498475040646061837331771385127443197606846981463307791323836219154219255911610576023775859510863894902690556104246451396896409578503375899287734550519583843956476481872854181318855720892055381755126356582342053338175084187172103135315182827950575758900462104676576003347663728643977618225200049753286912349595411078905552897765847779356512516019369292904648597488508368676057735798403106129570574303889167188884258943160963736986230976871459016923523242176190889246828591875272594587971851209001793964158611286156228775401116864083243628091259374426035424543520126496479071090691235862798887447722486765256971431652742869096311503912809406241815085622764251261742752206049734003479189643590829776244440636609356689697514874232343300475153200074696950431382041609809455018724812445909997044156151221049627117103468390296879672702619613847317685812471155539703772712389196668476727841490353258788016759217880177925366201568981498905200053137823126887509808351598208595417115721092790587977978227333566605896046107420041251032821464277739867621661828191167556905250130629903026758303653211347258536048401760837538830847490554907398110883924733125071924551093624313739906988713109206454036083887630688408658085660075635734717478106992724359088154125852682417040083106603633530221352808833017413240040200480840099358669030262804228623329604842312814431971561716251737700725040906839795618581940800937492715132159062360897406101380396722948654615075287309674110027679615562344804761931629115277632773824132706985146686808745071344145851654190426375287450289813791352941715790455066549419039017093269054619713949267931464954703584880192105046856168273011754259934388982518219528217112253856529797730440062474528129890719180674100130975618062671794889277609905988072507426200027210167952727782178063561613905563435591179261659007141774887612161511737373590867010066582365014431367655929117303042581931172019348322180487458901238065856926561789726331025490741944950289285233798617915941718276257693571418948109567347402545867364585014175327816730926421821388159155488134548995077364890408703912147513049884231018850553264737770580117057568976812860778117568426475601079513928892030096718060538282463103761112847847347104713926578777795993976697969617618860703774616791308046686320550532429329865087735797644995927565285333228740570363663945309724778759686961569691683288075634305629272853641694251944972285295684061142571275170012325028738986921021489636550236819051058340131249909474094422314299448714047986571872755170395955022233217629430316390959358770849422775213428827317251212182258239979010022718306760831255898640016280909125835904552979092305053947080317319008443185395635391204958404262224023635516313045885655406241120689422540000536648913497548514077964217816085171440065881745070337212007960895853331890750843148769169469640278690754667334264339628109617136630576835391583774827573187134595440102991429947658883142376294673870922332283389445700692133191675397432704981915107821587799204021731445037998253119062548958662936438294588786790913753229507413969632405145248720067403689027266090903125682454182500960268285918574232404813400423201347117838157856427400764578911072750476370545605033556696817826500703707310012225607222290177570458361765079261331014070219099378903524300053165614034666746302683901497102913941239449190758532656838333944966249587577796933807709172287287685962672277323771743101016822444457802706985037313626282704823178084126889400334197130231887545050776947452873659690780241265919715197403665432308578505734670353896721921650034357827939866332711536069698775750342492501353774334665399006488011695292906289012033811617596015685028470119259240835302198116806190717670666283543407294987076671771083418311946272781614443825832510448459266403753363261124376201033924282623940643907260562903081050846836162756782819092669417199008817654524006541627739713098757885390278251823055591659985920859942479311027913210349974077499777429673755846809507143481160612973532969444727610198319276244892824144865755984757373743334101825574733990033021694408435831386986272117770275521208285622567211188512282329968402918435266464783136710513132152726124276426910161792431635065726551727436315993142378250930975062542298378418664617638112885182256285916161597322537859353747168791760738503180946526161257747625334097279012109504200844748568754649383909636945233410411662048811423844407037092076375780301838461572579283544335831547772383843739756813667086141835221288282018582088465312141950681010309632053472617926192280663762298988997300322343728023026766049143339952071863681875137860998970664920189644711281429748675511245557879247950784508806681904628310237753130063773431152245793419815486249703114110392780171306166764593945661584365583200574040681885323858999714869999362684606707177179151253153563354657267054165942845292657481719908297179864776409586923350957965619642242667329231123656874510406178463132849766854977812072647153091316269806274042764925948436955205179013941495114872871132580414985766998265382572530129704279884547266126150222048610548212574704190058799344571339348503746846510659832185654392416429217001710075383369746461501178254953802771255062357772473733766327764921458711937690465476157990184515459207581776535018618787870517985726499635071182082782643103464135082430745744530389760153259843742589966077783763317649605977593467056574232338136543655867061222158774044603606620130201347764393140560216788065199071216787971380037202045065913542701912232700782345015334803685251282225447836772608896054023259068651421696660320323930548511583774576843381097978717293463609620709022231997989103667629318967541946630619847526948417691971645852061920711242253794766210435892858589475595166226530005673259604979160214889748061577350568308294852073139754262640045219796994913649183673750201167813615181429891021528185316708195889687197509035069521858589605458471165423090148019186630394388660085749655305557878589216541015916482433458331747673735615183479575610026869894343858599130123429165124917344229651504962084057499409685735109098148202599700698003225244271939723240274828454357284537097993753850782996645821217309665348299957242130687109409496006976440420836786331401342797301287297622367267884070933940828495059428067093836946675971138168482948872547451890981003815044530674212403310013412125237914752279156322652262617578040446483645852523026101999717438709681162790548141813044215890422953032118190086459919456477405231461047560172620528818657293711153292493951677782910760743745394851775431116415271766926164271408723457367883852072371923024880808631787901552844868762197202862390113744572747121548372722933105668364392250351700028236951732288695884077380191755499233439750660602598886737985484196640916745881658747874760345064475083740130606806089596312148444796326856640989398176780555130435397832383900438797366715514902976477719770111073188034331427794224689905504260959730679064709241700826640842328337524769244488896729314757275970940311452739919807700898112143018218893097341860083120705072893062716135805785665994830225876918184785309489409371133471829064551895700535908101692428424686572188270104820051011560682049304298862409324225617910750397307362612791589251595369678456443566639337259885468936728891108394221685081474197763128183374496392253643568545778035378918343291150404535542802772888137017794114593383334816831826503913462116138082886000867716299862598768334207234638739985571158172516374741980292179261463117013543413041778610875219757117864367723728813324834320402071684756468190123616643650867711055176060410136277841254673295502856071747874472624595250658835505094079628629098952298218568570559634809233996010067179358351155225021735931985025640025858750647016231371932231811904327804944227885367310856230936721183536225419833166057490305730318697022429679065348344821092488480826617647746352549319638340788047237584208975439120457339522441160342056166858691097598087639520269781626537616272291360967269404441584541141390575132197481183635856338526743751006564728776587379957307862848895987231381655124007078530524904065152923887853322744249312635757076970242583271802897370986595941854083986013717149781052296728279379132815126308795886572114062402807235571545207885788842124174104550209995840251332218386408905693191770363045684804783418113626441053289577083673017760414418109161552590863275944410726856447617488897831204116827537548392138811151542951779014230255215653766265123281153706622397379004275230752714573877138527069981824579001867785626248217770808338045336984414712033144054579118538705668134722953790412365922330113500249290769824523837309063160671129167509009856454637123616930719466014613208480693344223824704184961943123971366603511822220791712941537894700968768335052372979901932076084393323221776859444233735057689807492868069321003565121816518630581953542751594048962675629159707392345351299913835272870782821298494340682383247185486720080901731018195941343431796006920801726087831090621904722180314075012134673521815751139068384785121686950419886670779728990521640292157519082723868056860267795671560221044355395051475382578920421379259940347125837454535014475982702115846428470928553556278040381125437296753735232684955453510381606788293054781112024096946692019536779381855440601095985423986122370759238523984145548336297965936166376147695954434592336715069639994312594935241072023493733707375826614448339325909182575429218007284665919190642322032037717382394630383066835041569524430911697991620156037986398625394807795625293746225604196159535647106533278643520249863510414306308750820324548464441975786622341096480590700118995151970364908802155002043117947701437994632243345382572623183338292290293020828180423747338804699470376692281587632256731615987622663706334205698585287147890869730619661593905915490380363630200873393817798333868634022243080909388375696931522824270080138295418678201940530426523365112898388741348317443390993786952578220532363108082150559986337579124038513152281392148597709106010093508356850320218006449790929070442888934013117083861379339480196974207488030000299307715605083271976215074623327667430992475205491091790341612051718312395181806137370212563744044998293926104851915746422000782569626279333760708231552940716923087576653210085016682850273166313262413699283286220257869595715086814689791043185214679400148564875191018604883365230417452363760497268519732642637971061919354603759373862577398137650465391991035510253991779640260722473958310995317864605772868634492144729741156302618641419505767046565758077580287128771781312447055080404123556523564220813057446334503285822938940132261017704000545950742280562468526906997733162631839820372308610582958090122823483495641195518560796261626398998941133954715149385868277802689449560777767248195200986461516967723534067400133280554219371588046804837686393086755479499469910457640419639121899645893009703152317040175483250646799971469693813418791890147107149288234805992714831941349941351240933943838425346762221767469608866146030091624737727875679901840799637893250311426405971165848243885958586073461850447276808871612405286356109940547079832018175409334214104825660669535576633964905878704564165883808755675867906581162834064810759577034878595624278805212093456892879587360947914037706496390956096997949541514796654863800927116096580068746954129558704759474883060063431523738584975663736806740945733154740058647424976631728970437063895602457823218836831729756095558715455235515161188921047572532511694183175751783821937677600484113816050670515849960086218430968103437665953510987340316086166553721504499078531453865073452825168526077169940374571087300648222836540323917420890270937293292794535796543810591499102985113282238186165056281463594434988539611654888597337448666751550638947701424989604926641906760026483766276744075394057284681275355844318225680937210025026756388737604148840045944647953448180640856095593213650851105573992003149700204364401122858545716832483142570225026854508435927491035962826371146539994988082715843798036509230649835011978290268774381490089350274585524178738194092641961477474665942737503917771530293256548848137147461660449025942617933282362880623724454858416337873702331325864395059634769507750815523694225248445340313395366810526980506921263926742691452600186632238675855571575104674493489188915481395990802500274906735549768807336254630697689333853586138238175246189512122855607791211709921138406231048912955415955100198015627284059710694133380492486315819087997095954930259257609073424988825502897626057701114016666014815745515548040056002066902609528886595405257557271709913965502271183199308640032001643975582084618874542591430079406661906715097419898547230695245874122136618196055000961849136016413996664333149599619472675813503933644522474495529449972590534817222357067936415298755253337287458874821340732443727539878861047322710984590804392204156333760970321779475612873914151018620725660483603768918904455454381545915136601965970983855928399895438930072740693168571116821020915425593723521514564106237664820990355763338913140587716607775783192682236568208558463605720958169452248226679528821745938583595849552713194137544989724571178680810509845108903292705587003143955694341072447863217090362739026811913560529803207091340997634218750137511398848319853832337861563229200219212899065434040774001774649493465216459273776960735794789167107718409492240249431463507751524410059144169087104316775694423247048943467992487772281139513539282477789393498439649869627785904647302528383428270034810416739963074649236713382062554114979641427150260520345226247595383610071281426254234622404419024950925198547843535717795197451902164437720684093136284177631135168581588688056642026870994380998444992311548461625225339255803694656782122282348930212314835490776012560312853202708542249363263795766340679492882991550992321286270003265613167260321707600327269256040816136265591613388886404065614494988138412990700684334048084612185646590688344037094140476204892362187635585944806046016699879956554740304723594679205275274839842234808570010304464614390036598957886995847694011475104948404698563868736900011266766976945870810017156359890000301518581282734315648334959854159255526368533982171707056213569270854971419387976399639400366564035047329425656949461907085686443039890234054104251741300750246543527364217602158609128715446855010596350522991687369174398773015950570624620768642657529315478609043425429944950047261652981012575212852683379764551207094091916782966643455283883508078891596998978378446797181876981871704148048139093147014395310693520839604814616108752964565901608640632419449928030385241440087163196322963452686190998422026644554201899811020558920359757917381341221460450305635982376658138251640787601484995363427931771996605236096229070258463335988854921421754310508978730393421630248914844286186509895884987500941512995022294048420912623868699249260177766954871043969965282039578627532818286134337880540104790776533466173036981071496173518606229826867041125125241274732588325648024860811659687427242360590924408348111178423063064975149294070983701911178445610276160469061034463802075102634915577737239444126919410771620019092087950612853339689165931354614084323856866116898041605344087219604995894000750824695598998540864093514197401618412847579185523350532421138142590137629686758918315761729592233180981907904797629215050893133361216313735942840251149399972602342731695743604546022992695471022580495475023306717922608582406804890345651661481222180171356583501324721612479876068617871958921230563668694823924706675397398083765873767539059622454319180672800699321956411081347927651288435128471705067522572658969023624410040108058618549569404667172993105224743214366779925683059704438378936577623545112872723315854449146275724621514272890511057176358139478280983593386176388818600923386964470402801164138607136858020580419772846178674491082312048092798096495682138687295607315169838208197507459905452668734322159872596359530425406583265183643817670270139042875783577674825255100806284392649286254257373968360562160520357672451282148570233763746769907388070138594068959965789059286495874181353194492372005982370984276539770101564006735323166965229161656340982563932831431364300105899754760515209246643729045368693882828948469872672827490292659532289738448564517760301748727890785240644309602614272234946847604271823545225703030486022226073096793190718366207568818507870971853759895206388341000038595740037758336204105117719386162674534646043671040713517289269128570439922658038236054277726329976233252608506075139236659487963581302613160381004571109866820060026799524931234028699090632640289857125487183744848199957250765146408879067687589142853060413747884715207508249134234497524224791304663069225783795390025950791271716619776931830391724210524915820867034193566547797590291659370380233011065515255110118447373840256287657232900670877954188271746200901759395261125801809902189719811511371135366923540771884961055236367972589746837465012427109945456351661672781215320660687193817548097152586954479423646524144668230830358378674352018885408185488854944699997027013486535091159238571267050809229246647725990148153035706011250173683202692385989348525112008364657004523525278275825105448298265383888756329070904746764907182101908425895192154089163244371634877508345572048004464139643466917165491160382706594044068317376855382863705811233674225549398453387142370620663473757829903170378269692395899202041612829537100252389856238656609621661096880625710903732292614787777360352937394707777869535281941970768621286822967832828328292136432448146020368779723122713294536229060662373740849923088867503125473250096093038088439136974461750421421756143994654107291529643879002070275748102675121956353314018751761036809470316646596792007924096502101371596771232511373435194739737295840091219456895315206347869165236756601358710858735827544342721340131434490355954436715802624934993406670486285508140351039204088213014989050065762315128488157992089768865038534611007965321816425795180428379209778414068995383456489612701652825707735819049702099362023984552229573771669345519094344283825860126412398181640658432986342493358747935370309748938484770708276972146538506817855031983449644431814871498255845232154547373269972615729514793015830696479852493444890965851123757408269292864378249147075136347881908838169552471933494606548732238155832704489814541416541295524946400278899370321599238335427745447512589296265322452297984225016494604631251363881563948340352060986898610225201083938594193321214222811089965856331298102805925405583333652729714565391216037467325062064498421634689287758126069289501565214785006719322665180711843702356671208784741768286086223300753223766917549395748175352375230209919114855261498521453614547695499230585970973175832651338695168899807351388828460862681082873239984721879469995054987914896986891232677955452194186978438437887608359099682029771346817704290540110316940549676600282866911842863109216072175921305858232480400477360077762428943644420621038227932706557077583479951236243043629547668586130362110687770923449200086488624071203281073081191159680700560721489863985540504745878361593556520953874773288062083651914618275055653247294393921582508991560041911830226870227887277457050830315347436927690890368018351836833889291270773489857426723108906116531387280843834097256852964992270029354703231843952577386044112513511501902249111308990541364342651639382599236499477577816029575136022408646593643515702203230477283638102030757449089107750292095472946024826076676229504784836082919164648147843072520157202393162032670586922211022843581533534084206147241408623571529084380694340761273520593999899929921556580855757951992169508209664755429998052645341426913757317929282663144749484376186492014516100588018803921823857866508428582285827745697899477115098806665778382407405376814724753463473879380981967028003335783145623571588264227020763967893037795073076654445237051125626262922983726605212200626531385998356025439165353251239269704847325495183385842638339553356553006562676775151321357592066858244322949243824079243777890848795160979868718087512047267375908020090311197825295334109725824939143607379959531724790713641294568050197808142906899430535206783724326051207067144956735008394360646999292929985697899361427145769881437623043507298883242403776972848474141896645856895796136415340356198314670209001625901727853102424436707379530651512267877629350756874475987377415084575945747787531648070500830135811210878662341786752562400868988209724448348402800224743939240869269992600145232724123652920939411413424700613134702204550766410336767750127520815102411202225750923104976598545700085219952036450596585461329220360571723462476161514098567684396802153550567784991661847549161453580585414939073189500425366557433552824055775438673806133418753707375157981448770380680556790078431837554862332926665694705135040401163339799275574977119834456923893861196190864740118126890206271221054928240596452902854605898701926759633406736351855919052332950134029639032356529797382294586545810833454471691020053259230450281740147103155452069928876664802235832479943441255500887327430508168982597432668263124517959828134208533582358666746711648647369112928852131345736681600029537757974933818908716896332165651753627937477042836753578640757597337238966820599870602814777358824551890731004102289736414600713471218273057870546142581898912504789528144291137625325175801310060365555529074927480297642023509637279693773383388095653327489293093454780254193847633558189811445081197509412694686685343284209658413779066374477688243147251459617023127955086317965977345002461502320837936225976136678866145462660592477891393262175409176777215242144199981254351931780043893843825124070127114551059808136377641721598320214508623542563928871182619040617699876689130590041863732853291139918189324659200989731649011282965443035134733917062797785134677378186137213588152687149177340422861292574336690990611602327010846247144607934286113772551311358195950427003625864890334730211212871012022012758064769557513617331669766885768758414752630941877569619871846970603185960864518277150649000911691964567261973200696961736045686911017316510321522505790236332287352714513533076764474337236436948471342502103898448095458073622483623462688790609353960500792233207125152937210082655689841772840432769972262435067166404862616767582925389836866586165156964753948429405516172336887097066630798047194502031148258406571975686235353386181074385202732812477032784326093217287463087350104837615990770585936206585791114937703495339404818948314413756116386653850841182417695529906653275128070285620153627280144724096288671632471726362392212485479108784629458329064439694604859600045682614108326101394017000280322442337262699918776843930526517326086787578019884089086463791853242878545837271459480180980211572950802548145431852591658620759400713615103518031846003820892468166735230383613433700619268593603464173813298475537551577204478452794006545794572276261982019441160900121773094366902462388738112463635599614368571319953542890741298644280581292701728256346609860614744498977722900053557715559953651250693745865484898223656085608004547063720439814321539055870335007465524883761756965713504525815418178396027504985857194088833532720565443612363647187212698636675426494698642335720877464173008052611057990842420297392540474442634282979522011160619283492819364906395592586016386354560191028910945458737827919899262645065237535424700297489427464249594917219084090440051926655133256606481144539298378510033839287398184240407414294426247188968284954926835469884444225382592981522418786726261754614648968045170567850083353659576586092513377836818748176004232021139681246409235289293899253334128709674856969816877818205828531617848790442502917188589219633932206870901520063718710598122231477083923108662696129400675364323503281128032757653968455492762339901620855523851617443209596148139599830011580159052505021783552879531652095093218431043937165412944233773712568152151932809613866367073189492809193012841650535988314102071259159860137772491705452370204259777509495064829472271021763127513202251033516259511533472087530514531060065700401465321748392628446652639655750940670072823487987883862086529772636072954070633067524173757463833889078898835703027687945748092131960692318362264581652432673636519617160468668751688614572166390035211653500380498989907042446695675892986796607094601142825764723281388734657206638259306716801129957651521385667121096661289433584098510249047864339740528131360296445395755983152186944150567904935244114701218372099011468768792418509729852762649229218070960884516666778244326768610076902311233535524999979623301476870388601540347119555666316122946684236522109179424435818437834191714833166955218448236674372404030568014412583329723571243066181023682523754174267183319244035782036416773232775431417614599082217650738884653687904715515829232492253695788364917605420829596410548736423699779175617436079802498841291471220862643554316064757782139698291021772801300835989374258041147662494037721194891688396921353541943251998619150355503808475736840389727281107433215013698842548887643506813976465349663410454522594202635746406443307087942237515339158988767752426588673381882254144642777755432121370497119530454966457720695586223637997477265080130213352217446349911699471300261226413716122955885299280910795113768586875422778514198428395853087134627458136455361338417797468623883049954375676406743675754722517293677530409873670506281907100731270660430249659771158866814777047956623485785535665046803465998978270635504713430938430255207832672379274567093680180559303679092071210236819584460137347160337413783113577819908368657243817021418302219918106393327222277317463029593002917846667112660920237865973768657661109131303686354965332774513544437003911276544035772674368370841314252372172847764749831106099573840805873663857796053722893394835027023590821813290001166809246970385178075679885378385292562953059466429884456656670431675613645996147909699195551354804696874686946835008706278131569288667141292606823717415657256618752622433931675655966140278679665341954468060524505645343574864551694182157406707850181733761208621114174574891122172111898084851855613034748693202287660704811402190203576056557716318211153614104787098827285438376881734188593763655205006967133888696493470622964496742273942743346717250455187293526911962869720205614061947916014477765218588323059399758292550965241030272289765493803668395594535602142992731988601605091510393145719411756840549829004287580229656658081637388332780268990531611789437611562844255355651895963818752809327048940184545011166589554226797130575284416586223091928180027012162240917477974583959029222068851504536663682067584436165354655555064499884325838456037680176152454154575334605358771580304556287221862425926610701083090999026603469814066572462698945748486989327701867987962929868826141027074841089501677393566981033860616426510616994564693149951517898972784482473828232946822416939142725963706373239198997796353489704772734267579363899641665034130730000174629653851006025787053317753420635229587679787077489189013495613431602138129467657125312214990853479945273789492631399758806267177013494630783284749667125051400995956846865928307834902444820044737923178868016168577006346196915414286319601713050409110756322259304146859110688176415289941335437073812713577178908609228641871860821576498924423358169005478237263711106028190669043478704842696425687715691145825347826315766724941207546037557689631124955132203085354204573756408143657635797467643414704838710714645009012105890914525522672752697290833893511915304604513611685162804242098318933045790280809959636687135969602423950749809407670073927340128114945304811239274483338565099491040898338751262059794749041558170556310130192111359511770198350099168428149061487595303289285268905776762802843263466399733785461504523618177272975688313025753316234310462961758597602079381380217259820017043560771969757964539088519754670391146017828103975761903592029351975316690486872696584182481461934419217433117703138049815160797998484885396702338425863281041486295377427195503144268706353005477413133757224338050604049438190155685711303253052465879933801503237181506227698014183135846515043686887598255559941391099851923925531458238053433078694825692880034943661830075332655213330095813101596794537594404952433408156685847849647009043447020408014136039374439025249408422734552479736773453164286488267121897265373630333636332610406752490513203307531912322319658737075810076227535234868997733825687952699014859777566729639710218008689512151350414354853853067518154184703228260896259413546274153667444704863083683061464372350801248750700630914633797908718153962114907277273593905247447906594860281447473736597052312866444552987639178154286396957107932543900251020611678789207787534502278541423797938090376302210832398430983273186989508635779603989435128818722695443986240274950028698515462785523634149004922449347540357981664881336618029047523088731064177775721101911384865331291919979325518568941146555351431839640158640749783498191588329908289437566257824067577732898894927401439435835501316391518807370993116707816371209191405342750861300620940394985606892963889456899624438315940997509162179151185152055445300533496005820848786471336185564188714364971142048001813090084637561014519694415807288565171329021064520221565257976397950811941391233927021342200184603447147694441930599968895456129213253861180403444577828084823622189479975576954069915503089588323864191835737431783015298670133321951038501018859700621826585524768917542146224939455104523803186163021866733195412899172908650885993328496980638766798123050334304203275081492653634293431218386957229396375816701044761961416052478386260576276747821673252363234489446544565080617042332776397614893744150476029782857242172927873374906594453519244397069142671353155008700251511307302251212805675955813922622224464047701422026280659844019615121415651288233994455692730031773209205697149617271719473450629152439056445951990433975035295248834267544708430218430194046083422094404186987277026880770264171264956553309470823661649570255124528384097487497165950185542451925705437913464178917641115588575641108260416515278221455591632680252625948655790658789599496816203530026682435102619460158522991928886447603933051673930687376733916497239393105183095684437985724764336526851277024290577352058426333358322701282785282162321049334675303123730912728621358418966573656724547488484818103899753057163465620445384230206362215553646198212708076668100710454657488198372822759388861249736119742239376106046753097566875717763805041292319422378464021506679744287227355286808453003802630131450065741878967008081709942120786791972189851238420804713671508680060122811608881243815281504689788594812013610462539465349964481115024962585057370476171204759270786117616078411258696105123869452021359824960284681873753631048075341873014196968795985169117253680780954154861486308575190462578453480160953466596078132457204073659979549989389648068084090634350917083493965099500465914295536652776880456304290776633131248500804093455436867387746584017102396409447389031114311997744604795502985732019674733948309782394552199236936032231126716042063068059395557268060784228907864739007024794351149626967482157151652880846916584628940661613944249968366709806907371641307838321256398392906728840100629841427304144490452057497975448680388249529048985770023311738639115390873841283805103968308389160940220571327680564876963928320038593943273627257480248149670325136866550487902003399927275524380790223560384677834012709336074978317076571949080498997817480985108794158677471387083918887092832913463011292781587463614362309882781397754716488234454996292671351780187944992705593230065422204429053989186611147462629810452551062530495083845137562435912515067020693216430539765418503850173405723479671364341849916625656047107055970886664150079388301552271548398470905164036467377741434988836445129975936613006414417319489194642964180444707922728270094930479735150708503653797125492375596916631519407120967577415093917305976405208788446827597761274773980331248063550262267528805035668432395650716079122290160121386354955142762256870550913804704154021394841714751907638062729384951611352001877296473902965090483517172653899565130866612889741184298711661340624506794250107069469487545962828331554447800539741556023412988825496728036385638110032605253989011598905286068111159199036404192034698175848755344862991857086695401353343289221695105689993594555650179115181953360766979319808764888076794609261337786899846010476231309150514301831165407778114118805157749033788974470762082411707605804852218177915893738900878836343916575137780004972875301022618359045953913708144899651590572867518461322607434271560294432033531877179543943057478894376341813123542627450582587575372426384326338814022783977963058828147199125464794304059686558276927913923640009836671786299500108842462254630424202854347410275185962728068936224977556946290498825431971418469795192029683160266837482583027675921830066198810877718185765933414978202128604656043657260914899308583785458666785513667792599899720887245965437160660777332256765381843918616420320880718765805553261774763641066386426850541736626806624388972057276568988673496454977959666215067433088579185965719791576976413589194129872950876328948066117990863518751089476085843533033113953311713998239697739331438314521064983082967064553151790145746185598937965612146072063544175377628953294387169111741264559339887745356444500487869157349845455573457731992993359692685828381769448796582471771449698840093624776800647876739694433213560219871195050154069719274707190506692758184879464683883500811407002795989147070255785138224173695262195958346982393613098607154036682153723960869831214074240753430106633443977010958459128171174230652476024792747591101620532542097739515671000187843172606277909133869655380921546149586320981727635662731702717145311407942362242069689253583833614160539596136047401945596962794201570934975625768674270038469224658147051789567435634642086390833015047957921771636158777371353863795941471327948996067172750030863541691937127265945800022778967258905287096109577110274621975587896472793135300177353816089146543593958007585409849704459591872768430292490245881073251487505276066451007056923368555980216892867553391093682160334343287559655587372853993536728084412896446192534054312671840194314526635877892731010917899295407489683995536996371666680593344857284624588829137643718497249772583350515488756893147136563911019293627638653517048134157395492346529497906091361752808562993118086748720913399593981723530238333387975913087248232327925409278576416170577398674230610177158770742312996928593837646654770287411131672684298776744571340562286872751966793170156927073229803718683528858050562204412455046150528372946167523520848050995973480410726269627128118356437448721877296319660905421015201336303433103699713158559900627211676676852810585321576197950650994300953304378576155331354619564088295445554677864621697673630125929216941204961228575876273388102209347032986765428495796467155611355469904912055380051138689904685097900727963989039996815119188538444304719609482755093320685388784853177596438349874677836738016658058767326972444006736659829974523881593024592470136592424342845136837879075919823241674580098083232779742908107479136189260039668583252610513577809425091935630615087479018805941093284221530409639315877304679988475290378088453697002807075357007038762444062274329543868856931632923112071240522843057054099600457119540645951284665632276362257183394226121562094174271126903684051165990626345150352184430763637430063933761072047350571467594843388085617403911922883351524647301568527496054628835137431153435162756758256705427090886894198687382120557259916206584271235798686466002246331097836770935571835012741398925196125948686660573103573458888782923007404181113395414305426764061961291567966441784844027072782137265085002223027401201790052101025497314891621593816548293093449958677104867970435621388615583289205046485287560276546689793382110890900769184103226223632612734929636450158967359034653388717805416772989040468373240988010424221646410264541329108697808087057211047411721135269416983015999594511836042996005487062500304030086536638347588086875185610073877298595184951059885890460692661435121043665379081565426186171253106449380474370020844085250565523949476128904515441246913578403778637550519798609336316988361116666848317742078213123199192597649472406291063335853096324534853907246814207745893845477019784637822389141080348676175892926627843610163257709447962321645325334820588582675613614583028446751227986084918424275310762652292443225001736102537255420503688990195405600168054078454970157874771435115945634037645062947968205280443637821514056168340047452088725355546093750550059020780727119273980035148463513540970383507423917501492824621730114216535676925814556798583591634329461191376400764058586675411912169701555067759025559352613427280409743791483255714989425671115547642339891634805883923524166703506328831891527343565623031102027045205789653007826311986321952053524169683244586539450845456715646075582561470431443813731871868735106867291042633000194956699385733510420141160433615197648412112461416521789924593696454484371341288335739561799730666685747944386870519460570340935147643445918484955996013840229562068946020287711742368690412409821024868059580421111553678421050616922132909345447589497981652752058805526332765105186468543199585404561895772781884257435586592802898113260096457930478619275785560422231289780186475595634536348689312152083433176599417206288420436562227458372269980044839231368267150579906704502845349202777673371491613119522464443327194764943789064242241604432872754018871241465419726217415580634289254676136559716468286554959850322956057088167655692696755457492820382246343464448471674335338065129378198585267166597755380759336926201126231650421964182240726972601533506188652260701122065454056672184152100484933440848404026900797214806028695757230538121042579580532270478366252473271199733467945455488602922917045032001539620981210154962377620776292124323013083845417133543788709845856996022455164981098320757352460883712307428178361457019683511843817512544982001430592351296708767326841899632034522844395286029276986691965077547480480053464350589753134795603596962088434357309613926404299438082302452008370718461364497297139104360179271697499248589559708567911724903040852868014769844806101948423811534694771502412426826950027165611357624442929613175866150470960292051902999257814047354135406870353229719622882599005560879084574298832740421413090583452899555231718325119000295758218939843159137501750484204922595336551195323198067668472831153086768960404709585036634053107455739144455410805295557130656390876216471159886324350277707073153579437946986087510453439839869702111882081032245418126844244272767072134893557815878596465340161256970823221141354961366055210494938399758541034144641895798809102150633843250533258253469792940838651765979063183949345713829025935482414806992966218879107031921808631576188492461361194042574239383775045390964064827639531164716830706402777756577368685404301762503832993826158834916420115034335793441215412214864585487043343678741415430013445944290707001829834567808796215460254333134654672104008451402098385069361400791149512551541530874905230482834294626096009126627924847951477248683183166395282432343331435773870146492830208792781699565960129751572830014457815357510753172848736116818454976118684937942193481552890838038131070131241740214134386047107868741583940968533984776962806287259167339062278105264303583956923272199245191378436084225561842451570622666422541523324848754942727545744580136672926873452246960385393307476183447124245749625652515959988132303765996015735175180738917177815260065223373536728773580323426886086638391161705527262875731399479698055887566484051660489770715031262825710317794725800663005077651319019064516059667869622514095226878027884129930664052913590273656170529917216169168024664960542829362639814210788676657109772713153163630208787737991253784335296364472326181642398191396560452716784176648274448175900070524728419613491248687708740296402326486782758324376906075893136795556851861232317170882812652482540008262491746649125233056155001046559876863078032850563166472914456131657647712018228794818906994931451066883634835469211767423148346840942665045161773477492962833728843206931816337895821595667939567808161920145905481749548031224346129537076233285953163275255204702082413444170827483588050019208429166184881748368835711210094368462001315265874718126002346417349060256155593803702975863753480008864943491284028452835571735119799978873108864698300393021981358535720280300399969498604073626886363380195393048479899006605549568142380118128996931142128252436644314430393179210415566274049984812678338528683591003864754995880736443878390068434936429214469102123963120462452945103913190826494467277063478921489830476263539811241091589366812666637103146525787069962297678738989352379750000113016155353580137376006874897567929852796914586492019534220390162789993931239021972417032267249180334931539008265317983235928633300175881551342091952417393554463452540814942743830078121844122922526552961319593340361246156500142015601205521347786847372028889485078761358560548892133971465106931588635921252376416029595756167881113362514391453538833373358806550471635771274356308281962392610800361042968139221740487917640955121926600592240962543773580909824156289953111394054999016462176811444106586475210147671566754287811923573752959758178757548152040957146574547591063036209401461233387091229471389175685870195075995548281567188432786787359729910869688843706124808022062419511824895793823921878488675143834237579463621320026805631328946924257894659785842576898207329525105389715968160211037779234324454346164611321829384916002706292050754571038748467197028440067195233483702892074508392063651417552828861583198617830011961518167751280597429255935465604775359638559750658597169397801984634267014429805692870516394414648259123242864888351203216726144018919652987583109208410080825515648161930273631201346818449314270062315655178851913835606296912040654221105842337481700436792881286051385585226200168338771354053170875042651231373239719630331786532198004312721950696355518825995686152522641786362102395298420792441166416650460288789706953148364530891099695144260215572802876375186781226340705931617138407065050873519261036167770588635090029037612690709691527980109357458237033435652625221714391928931944234894040020100623317084617916915863795080229788530729398755270679186167960356210266350135510516425645452947414562345451142334797207555949426490352543614911066442836266633049975036709911885036417006493458245485058695500568904951112504393669207198323813823890977089319817032181733263847523226004197222230693129357586034805510658386651334866152244960791538841223178250594334639327532348833441556971508601628938913877874239595462019444812928750181987782491436490354929163636640361644999479429650782549242832952717420411591657017703771774532599891575891898203212270652793561667706773452878587469414546054540010351453523775753467919048074991618023637561996130476151453925665561872631996883178528140224264859416388013935456082031792941696143573920850308087487432005148038963816360427868427379568503998711735738347008649369372178768112851095181689797833175677208267578583522519006461802887581041511246399642323355456839134390990138860030494859402792767059888123018504796827676240552296792508823764809336924984823041074594283371879004054541734165772317079416920630728474413261067122096587042760789595777584350736846219955143792608138371771373021733998932502369073511309970791679953788951015655246100180704665965704985788905126061880972326217348369012598991073137190355785162820503546765294088950468809623435749007829953214742872241046347548697250276341035005674238425343446868428449249174005896361831993496892898043423890419966146188713697540702624278693341582344197122047510339558071147041225922554012648408326200608919724296259138444985422927418509753554127841787754813210010114602149211665273100171302289038750135508153005626590920855276582665286232716541697355840003433267780535454337055331981750387683769019653795776772811768114490835672031907688409209336322512265003366263269327055688116727677445468980019824826720398887993933963465700031666735692823791173229020995861129004569614033387600433981569378677871453978848495749802762677359896635392519104595688241566958740353591476884598072630146551134792841358669748227424423603496726798934258300002512208954588332976016600910200355505456416565245370633614249385579725105945822890862011117498493882071851601760017571085207497832951393795536418529313817732015495285153311495948343222819174060682969933890624184720904718100576963243510762037010142404920466588359075840135421228403497715444497385076430404700361390803935681418470829561504101111426285075798311851100081010692031017363812631887538286233480178599798709274078231653147901741204672557194237244838053814504498661560788870126649866971174386329606101508084681410118220409805973153986589225883348179163819691267937342850319446499356441451945229050029025596701974096377308846547976775854247245227413072012017168294741433162084171099279399265200622798820430719561826909639374955815731991645037474255123241845347431783667039752212647643634025109021839078140241636446350018498995691010045645701874386781528063868534980790323792804805647797264231775496960449258252985896722387083245514477780692028988965848685450102357680768921428950854626502217664825470350843130783382298478532705077098973954738999338573898386214341640100448457683950437628416124953407700350994861495424770445053808557170703280453819559979214990921031773581966727612987589131087211190591312161598294130182389036613065926534067795489299777712626536865783422982070718386524918708792802499707880366955264606815191711744496780350927675191907680476271493169440948873773888335809466929059349313932366036959868486939692259658386763858294778942544503478652460265351390287340838101553279529180441071197023380423238935268117385932763019586736926157778323266708359676806034011693978868509637073433734384978860666277189300710918814470522361593315742750469749946763550860723377331901980595896672759509981437535175972556008379730738649421185613335602138044121738835379094588414008398310334640393498234970492620355309541629796671100204603204156887248183824657506610031451141112690326152007786369229433848313828430652662288417059860793061905517562020992743149337398122565227683973066662541218272973629638345560662429950621953382660730896340491090692573360216673635863224978190601514360867610427665821266613885677887383815055251365445598380782047884819407453694611930420988811880361905931070001425575057209490602526982338234550944050726881538362924129628890072892423397486430973359672618615886574068527661403733577778159418862528016873827519587332403590722889183922488580724111431952848085986473527869639210511682305168521590682581934588035400735158443598725002339039855860795389961430440757318329642782398148951568391362177335807790527897776403630575951990378088948339707366993914213368621271102768514018395911312737319590784957424835322002762976129940350837788574347548181827546867768993384650036064152422611740897008567171464570588160644703937264050983535186195912710729216501625712135670205598378318716249821269146778872558664400783836683481813545907091412724153663975450214630086142924009574962642772050869849940144917537142780143963776467235885418200280274306528619710221717170761027394254886743625119173531775659063720530821378598355301092373397752154549369305899714631421718735241694315872913961396658170567218823702392867597599507752981087325584999600179890043882998489130310883009487344396109237622893256001906106993942480264681545004048167824889301987139420868503973169211405972697243644360296526186764053105852428081888245834018935961768791592080674523828016390264476822299189012480043773977574770204399807501801528507966933957703302095294116799959831677324448608772893385325167161576977535433496763739166936306762535710392947914538336355877667917149736041781784083918446683204867312115886836999689898585268583610596650014480422441280589017231146034086467531704836964547841138208925917981723338985675813225912939501072843022820063092109690957020941634160319984047688022669334129356704893988054507663869112804191050166036728818113610588989547585559809214218178818973563823432307220072467976815432705783035780411917805573905533362151821113693329031312044254222860540664310632555121093183349742628855721430957842219064670878868725564703750390526339679090236317124293568658335829937078785205119806469108143828135597104627997643483354060703511953402647383486670167697462808694205498072194821972299983053201533603371590917431341398156337886841677135044860097310436329520454550280811051253688645559695609463924270344134019483491014194059487646062765306925646934888864836537456202394895822747727351631953082473611885824995433542939780771453496596842642165761347517702920781039766434485987811671604708698231663129234801158185965611550721450841730445979430331324302506683766706632210382477846528343424485399689941809490315033869766028924182165609307207642297103959200819197635444402628109781420953357032691159365711883797641898752900167505171111465600767196766327226108969857060104380597184791071883173397937222858363421683263654797861115218267485544150638535121237009858968342842045870363436677405371024784199487982761964908897815839579851023933488132492214760347442129567035475181335113461920681609011584657920554407413064253681934329102628764053410344416768389395781156778555222498726582712245187833450235831491538528586386961718133690146176092506068649202567114674478508926828276870477244711275939721254437275345893095633196500101834867142176750099585039055826884864199272774923574972270074181564727788713778440573578389619423685574489668050282258776241115309614276878829435353988484959936136077749806150359283198728519747795643327034198467860618624079147858359614174109805431033566259600129959164859442401102164549825632503582366924360206580747619671462114169254277143871721992718550299015260559119044259484824557378308596854028490537192663517503694560758328509936909655931961641937823430769618430829179034815203372129620539055158124594335971355006637539695660992935374447747633917860393364695087206669417978369118487217489888121981118619235874485657840825355458231764195831087783192059768995749498709080477360584977502777382221869491803352800061536723771562538191562634820801381658475303834364300520647436390420138773336944360437345264326835426972616332293355780786577853973582631698536818881328151729369979394125539714295844073562981142832017252965319133357866549768772021836099869575990796336730002141687897567271147381100089411701128151330877372562031540362364848217500070323657852817533565581780673310003123892826235854954335868202698145331092733631377347750089281400557306249822219908006830106553537875371780700824349357359033517720786070466610740326805496028771445643032411933314528786504101608746484740504645871579577032535926247331167317308254897974426946345810361467985602592524670230654213834516743166822938790338164728319531381548744236664457465244703804348646539753249922530891494518415572572491148207168648242723103377464150843239957219274854177597713182047339671986789798313798849387986709557267247810722507076022177709494786342159428994397838704237183088991282230689085084123369028729058208516522067852492290960227651549011817169948158572703616388242160711605273636083765333708586383471413009398551272836506085145978151548064440889897912456128846987566065954638684611270777149290655236645781267669245580168297498796192674042564894902678812399331694926107140637970279842941487215279112195171697866319344145105251405763301805860828617566866350150542489840693493830717852775498345267836021185453753986217033972205042889016643847183932755634417011075200513181498808645630287402710181818271643112612874403192958566551813172360295689410050495712437514999280365196390657992582445844250472850472207347904777096404085198568115162979202461083706338694477711441203685718197419471789030024365593998141441413955917615840193443845481403703226220436991590254533712092594184802808396835902623536134161717664020690691581620007282478738479028503690515908685825458556643211766850128087027531167930350144382223288238202242460286104423658328147561707691647752389189642358970771730276527555240296805183999896352641463553985712812690124110709608486591271673522248630786612623031238434388809915762812051176585980564750471664838904491875363512990219927906651949046831090021983473210871240938655465078026782850759658978948567023617042529963716780779358796784806310513046790086689600869322434756041570326479764772465451680892631617885796018175823199692175751004201258001290491527648878099170619329186262373184426444667645519956654803892890716445179023117893742069840204271384626574082975985907579830587969042324132310362078776731393132512705136136075681843267935231196590953836080966060194837449352328728854512711218664967919473620782856838690914149142593104806668621182746943522047918300114099329376937780825535926227388579310399205088363626340268364426840775947899966113230755791821503557443917971161880961576899945173153991137833926145164753584149058544988170537760629683787511763429636402681841145440354072475403628182218749626197392934909762737703500367759352443840561023921995858407925875939414672045581721332200862670992775109766184743874713722603976941261187272670034570052275257486743277822638865967682312636423794015368272023629211408833342491159874014460697690120707405576075030537083728191442520542557048188376309617838105800953705084610407048804928116359079166200941956386677744964198501918337660254976037340986181527373504391450470036671198517390271492273367819863207486453866087613444922035798486654642270672575814768247355832180562187739065005880794526522487061707424876966991725632884645041333787780122024929908494158457870372170110344067601974276247151960988736842495089361162176355991697798778312415288200959651709844935732001376686985485622980478772087785271230418738735168518559217479902296838462868049272316987220696292022260190290140450943529941209053546725118448236342195008089673215066755613293376817042174995357422043589184364667677509240234426831154598579810789989177088694060870227413087577561694495077149637427075379685015324933437030704670077906454568016726224993787538397205490341262612885867065112214370423074822179497912913671133027216480077790210123918503931006821737495124634965096104287005518548774889788144705182251231405854325320981809012950232047567651023001314079129230449457238678991514243816582376491725427860788003614335948756737457354850312014403784162466502365591835981855090637663617413001745442046237552811799586419173700448641413848601889117724116815260493005469910014679867089128518139167060345758907485004268453570034159878150949358497586599556045932617442251584862949770020986118490268544929438051908287272501365604569016630695045503749487605874955698092961612912272949852573275847556273286514485574152430694467972544451299426783895751936408426684642000345167236198102000562565046211573893506196409953480443016596156889578064547336335987493907991256697280502656328932615860847177309231303463842749180231153453359249406968763057049308163602016667783840906365681345929732513805342206339070630743514055221786758351965042626946635191659062625389088659954512093197609368112066900238818148356709523156048607443907407516268290683068965835501629446302010021537097248388528297675934585581269589109209929419944458772639949077200703202251885260343032786387621526862408338291809194579329708779549001798412216684702510520805691367286545953722809557780413048002710996526843129918938717516880319802743829911074646115191009416230769872550659744127086000216254053257706022061321222740657532645904518685978833075924871105106739043398806468566159460523212378679573894715180002204597899058104468264323815053387892065373897997669057797589392768784871803982872020856389785778703319782780202992510257349323161957021107972092808247136322783490180421930534135283171057963143272604169344084094299412383412120381947573773998898287893336214722922038875171329523414137455944641096991914288317045446804055877193647877647426903013774709020689736853959601757344854143345936105316201264244333904652302032206197153009079068375064965796042340386711349209093118957207701064231015768466009293093918169933025990711265747688141051991453529505817416457028144060368503697567173158310144683854424882774458972665622503764597563809739249723286509828395785640507170820591938959328404304402170121355044418351699745148192098730914259344563937140838228466490689566639165452310523717594869392839160511431991318214465694362231746469026431680462731544669176788836824383177787242266178079643408007634846011544667451674030359171208627852243541419137616190719740652827046370099397537572965134352458935529796029144547486319342339764731747423460248042357358574773395206145782827992508916261222146554887072749397359452138682939280494473513339516137460707619615132775998674049685253071199357179275044263339667004631863919537083547236568061694351095595793180122961257320851226050420738829107197723267878588157408057303104248680561979142554504567013144896323527097227575420532055828538369900500154101526929577460326944601361505941515031404932600767550167214406791035039572285750859010731514070942368668480939020361261870818869261931374801187715642821182382236184602355468329969469786519972786286458807879349526108330738984444925344445846560048000158741198792204697705266101581555850127532127597470071568801566628521397586153856618582657149297589365940669370966926407518047298149202548449810437103367521798183497968664862991457384354000783214847474176909727530195641038831341910022900317820107682342454921360400036533793630729126543129828327979396444981989478562813762441651084459688631627509626298240394913845133280870876655261759621153067779786022532593928286901490525951086167223469952883181101463284003541493766114427948244618407399517734925467180281924077186698015494986088987694556798866884212149536383137751209457492023262752442423883717921487900468568224624082521347138490355055690318920339124373956248984071967563932544768680885111578957271771518434549691921327279031493325637190572002265500913009031983716399991929121416010118436373768756546581928230825956153057262337927083090964425540572471652849731847344101444500464870151653557546257599169327992854316390946462322556885331092624717973574871813726462336162483236443144312524484887853681466569377991038322488583886762916869910440195726239499793494558874699316286897617916615706926239790018361534095337053582944596502537292245040444853177616915194108168988773181464694019095933752235769538910092450305557042973954018226706811407710671733498120137912644263494126502292746669233026907791892563711312823940451006688803847735154040583254196556766608292221971720279434717325880349113221673741200073412795550852387057638541632736800078868217387102731214475298175738583798939735538424020652965171218631061568089801959591152671910902561832397808661650852516300273618490882673230283222978581762041178128523318773515382657226964648699143510754189942371086060219091283082690890638971038661833489858764005124712912663311934710349004434803907142580735074668589249931423938383822555534054053624472475238922252305413347245826521324278211553662509054653839954511508201378635316731088799145919245536415991092594529236465617993942272491107445262100222263855824237257187851725342662486639532982118301231819260679900957906792002109899165870346629521953628559887101984296260518783950935525929474508083571247101164067743398607534524372231485766200455856299279598454340718990527454803951414611145191521640301470954951984712865792641849529491067574744382540043107594396789703576627159544563769452467805388103130951573668066608172067840596609707651992581710365411306484447486371009461273379537234764243825650301388156361227201961305695129174941493680059526565176227110442309259830548570994556781033458728204792828297898826083070555132830158088218462850271455024571242262540019812782026580402646330881334638871335155194889290112955777668636595568441436508074468118062969810206591660388955728694966646891714607340964433657799133936324896266334348318473315039169182608734217650232505192899915497671272668469742238595608532837993097809026233569830807972841460705326044303544978064407181452882687618929375102788295556061455109826991861889194082400895688240640246655524206629701603296875927904536974817987029055132045303165349393300170177163411288927924162453180591310984936910998043633978150175221912718329447706759031765102411413622997347584379047351498780878088876113139373507400963338069896792204689800996439417732107729781940478233552672083967275151907173652732442560671473360355138664867165331137842082054185088989802912085625193914980379411430917089314613079455557253853148391243243906546589025828044222763306210389516635273263098429418630603772703172787723425110864562965348160874469969732505319062375972815464056887608159261524694116242887994318725165498245767661559067342597079036656168683429007525904991666933497406976150050143889405486458796898759639902689432885872020524109453004803811719870451329061248881624966641829822209991924598840980692868994051794010963079238359577563267816055795504740341454611686422925786095386033153552348925249239731283657954322992002949914104797615429614870937577892876312981571146622642609287125335644197624353636936037249178596315567587628176072266947760475291358196589777822659979810744886854690427225977598398122452380164798166594607769931682836486647677327767624728946215275364052399827177438009116937631499511301787811925528251082514338351729516720080764433835984020159470477453893439641122800459280226031737993897845021777116595854444858385720875222890266238929075239778546015730762199681812149858620775346317214416030709522901483737211957553286798956171937232054432069132082794908274490609479613936436659852071679842090825092378153265197626153295618936434096035711560978172473059982182165688541835145536691845872177037648651764310576374931269001979998273868456380768500965540866183259510536316509496636739012266608358683563625778125142779293914880961585029392765260360512567796627950920306512556759427045208382038912225241993712071651748115926225248476442586519742258886649106241778558562296818276981512563457462420829284049357304879123944016548355065687934014237465942874898800020433415894529480700305015522708466961326439036086760770637988183900415698282459609115133974987347890696893561909624163837512410645310159225847446489349939475544512400668326710246635523562538876599923352334200078293397474607895292089832613491838488489879436446248660852123194616093068467265514972708147161946672574675487389275704938837241432111232070970142342005614502855980889286765485770450137405459183594450762286228149526473896614694622766660443018471952374907631944165588264349288915124937788731013548069096130689409848846077531606076247053952270202342647053660477336269329723476027852268462661337118609091239162226368799767013750046386095945117275909456713031029101035267813078748674413361867731518209857626212899100454762426626895243289431830632854355919858705171766347262831908477177824849540120681417521453129405500270071967248308275312195076943949520930096325743202735541337285216041797109860783723706928243458726538475533758457062874935871051574849746416068363705893446590021443625387536209701317434616777511854428615684071045362183657177551149070071087552743988178025695093827394528614130012410291934845612388413952054866051338900486209416635623287780168712036906848957371558419079799255529800892445467761869293474446062338047919144024764259019285970130927569681301704636163336743852124764705977770571322196022640447262644947766978418269151041675081247991181403809709664370456924718616604055771919191883505677537005120193110243245365895238980679367390869609207288995162927226501731545091656089799308535933672487579796268023827414299377361298655913412633553398882303560310344927136392318404344428383256895839229558192634711285034393077960405759559240627492536204391505569364558356341425128725879360855829695506578219796750886589546938071220165295020013801601638345126138235961736090294499225028057380459442804305156372615609732713034557046936006814485686370839083600969850438405186611793980486874920254526913048907039588397007088721818818508592517700371429914065733144399222763989481393453556559658326349018762804841518301963110460202262735735917402949468251627525120371622305054142526556295750926896324212124033407008238284933108689286848596528713738604610372375365345319558592692749941397521505901938039841280323052639470856233912568427847097056147412901583203242805695636289317189451121909364820955424737070979226815773646029646285396769144054799654441396149945878970592014124332017346741667113068794844453327142225834179859650474951060407289649876244034593302837945079196984143809945760565503926079251301191812393842661521619563780732208300365407217677088829412973689484780211202474246973893472860195310531894653181007530436397008601911944980072710562123275959253065047767214209723066142519451310665845699945428146622615343204909267683773267696772248792373088638037209569577931949892175951429828737559515776289823709539461615183078389753348573133524427693299548449975270204734912114124396527181250542263403415550394888877028574013945067047417079710289893368169386764283098002474164299150465759770418134956969683299190642376772525312268484109546781140723890457010955069341628845900945568448948646104121665771586930934156547664145975156022231502307687987442643563524573483759094131036266474921265130943971061405885038846476824179939911646003865119549383713290955700860497982304756256461194127917667733735862891387015721933581333439825134227773619682064334534024898861819620616639395658763508327396935780596275934741865392673200832254332802244615125134417536297669761351197560596152786324031258765600265311473966714016896457621377504136845329780129437908791868056360207748532131374431272572010869971165148474370108904949845273116272434110321395210931434250283704530478667772233431847161242111681564005588137933151124579170402361080105429378670601142697314107468898886539238859144915648652902138872325456420032749600959280647335447276736223349545796340639614379400276054863150889579982584720876189523416592807170253399215115697267138868589886164400331223646802245781800305879413970639666034611346795495358004043988578524186374612129779481352745035889130444840060382928753485597364434474894996613286771697560217459791222249556879375193797338977744919115399386738676226320816044369408918081869398134585920453213654808996681031390796637929303830648045206765707078479767585423436885549291973873469902304930460097471827356129700345521984994215245631662034952235019896847493777459933906872949609665195365623181055648520986367011980013393276846575574753359050283105000572008317462416598602140142845469302767107359133317941731431498190222852101685089183749993611978091450374091996571145819284037507808846381115367818333485944732589549293838450792693002561878324301580428815786605508940186769309651355337269773749551483498624388169399702832149057282379463173162445944587076668297658261173088287777705263068414043784232265843479592558508332981219034991464763964582901584008132329306692503180979183889846349581144324439178333454801568072146538545734972296236748954135113998931343923088296142069376900337095938248563730647546439095733264233447778478555874383551558633167838219223174099782090626757754661173799841282338029583747653266776008833779720217861263222881947121431934577630835876402896615883944243481857464595547898912101138295699665471512113075494210607129962382330828470428067963000984164304683129410448881150900672085909982472080497535758961785562453723263670802095381283255473744316692289100367004594511224894132983232979924176379165986552679689540963350476544753125253247586544467746073253349009051376987825176936331617675242373335365561847338903383209086229146220789676108535938588996134788780835054909437873968355613791129769899239150277517013892150809926809668832576523195033890776547259710250186966341419762261918571319854956364390661816781866656861959949891276403510199095485793836717764994477348956432716990805159697830370444371180198735197672638607141112054839740035340477235112142854325173165101338130643095706969717293592263907196979228800959446219489025844786236481731583670190839833354689489847005357869332659339205976827155084384678973492580252409667509497508201591532201732241932162723025315230293251237532265279607755363961678794255372967692879028052031983377752683322675917896260463610142488594869538515199703062271529891766620322094435084709059246723125073971178754925384145736169166413945194480805326670510704432505070271799457669617245546134122403599355442469545562283259814027841001912186024652306028801221510063815699310741539719591616746614188951243294191385433212573874704279036122833265331217844117961186269788085007309216253849775849378372504809855203904921568122791141846280703275234773836350608189073161498672267697034525366744447604551557989708457511067345541276443806413638295021555273245798330480975398428938880960801235817396638385881763404584268903244242767386600446566007278196657921142377705910345820663256080390037886993234773999011609573801661950636957913025847991454224421305284174031282433362069310768152358840158832337516528535003842979844312938252702240754076683518188443413538336324221437594214216903443270894351601564661868106731669687428417147302679387597370615276154066907795286918576329129118939568770775787916774335053378698575807448152954589719822342479828527047237593050417656997771972234762792604287387499129623804972493953259452778495027608441941299600120908314141703256630868828950596874394605479493375927673840140563151202636558828380886745722740169101304253460846244051935139707143349837495334216516056322481285791288634500931735569933814079266856713255138904207687530848468496811283062818268936094197348387707239862102006165178017384035287268379440060032113202409635495336590257448380292781989096676910962797156566904085246103783016996689410708449951360260882931735156236510976184089902590699573154785074534501663706260575792728261524606659703612744991431854686682794408773311983583291724023118948749945841560548637422141155305447604467205016642637860404966978765946433614999205753990388359644424844808762387006981357109984033721650203956629823805774255922850258725978915034049201451193091453798195477404298260304611159127278927731893225182167081448532583582927064111915600681026896129885939749040238783814153024585689076012010251770204516846194976766900323128222321289189295328730865755677801939281580310144874779419902104024349431270587259647174679758577735759531327885263674749290440091181752635465604651826973002506980273326043588928529411415941894390155717403879520698207689430205267367720440446951011364089969480772482193754475168119168300162346657905967105834064474787840451148648098276170905636416206883362070440171019419309778528624966724816389096951686373572276197953992591554366861067038761999471797529961048278747486300010866358115294952848512900647407896610003825337472390515165160085019091019278045097115797324273700491511806047222669211846321602213225217612416474699314656164120861151815451982412440930868458306625003595057526580558505521764263613424330679039265132281144186410358977408349130298456724277320138387903605672596774358359704551854403834178721083317177561072568103967146407961994178571580230102513112927625753845781521663489462711822834456149101464535113070203533223685551412725107763273327943110241730965273610628224245312147439301809770178287988839750167112320017581010424292011487057979154341578385257009292124556031112402619405393114001614167030344349359270852701981918123212568440791915405539022265688709323150766407806728317006267558384085675357440606074038126881002653472882463576513556910825932810287484681451750621810101673985265103188894655025784730291449891591184367773963700814935366357049062997307417840163694010299993823667869776499790948458797948518708407571319236235684827405131795871165235354834390685420804353910408539434961555357229704185461128905203917400807210606283886375789873554998953083110299947932861515687179210385586145881730641050235665135183401329224691082544145030235620326600204955643275025573495689807235707401550370779865137070521694096342857952490467263600428123821237300674763877454058771658864454538656751893379031755971316810302788868061946395640054380051167308583114089675170860607747436264852021074734913283074113670085944726479157576736765753347438985144714083942799275400118030478630459583845041337532608343848657513842791322792147262164259396381107734477139362679788671339313845236047757527622818468670711829568081372335361973292621001566954542068189834672550005442904637104296749318103661475071478032245726802992002800150763025793314050711510100128741060260313675880150549335921580182897876448177390785077809125739986194387638822640872127532885189571198946812151056873006676023530267756397632423037248454727539069858065194680679924638570079427030184230880333874406138677382443686413931037724043794780782785195917986193076212274907609817488985402274180512711139402502518497680640717902464222715553720457866736412585243187808873469047176562440716381593034852865205961782058115925955299970388964873019562456624964782659288170967618933267631766759877043784088342776095052708116536731813603337380054725659560203787334885657386950984601291412165711321209078914413052646506895124966327041427960777777371605568352993147754990817862846691912872182265900774681719623074766776995123987843825294732260061151880794886939451930208548108398054036522263798006089862999134367594554423923664437483818555228081989682689361995459704131357129389113347059909165811231432711863662426906050923561265420035090953128428717400118532499664506970803645756009633187116946795575656450540406832018789421200908320998765283738111946166734047240680179034453956416087541878671241751172564960870796910807552961540952074095452193550574406831864761451990682926392603831618488315106549074104700833913821031170637913888424177034156457199483719163901070149168007202159601168817116869016573466782487059051767821374060426586832717351718241182929519505701816066131076945543706676489270352727286783393993783217249959438823702097249555105896699907909821736642166811678169871230072876892829458104171596130044427259281209255007158920317564004726847418995568253172318546532264229729832085728571571635919863825795718765028823906954472205443427039729730725787469029617626001129940892108617261903884273043537615172810586277014892214323525151967526740195172943422753956985699564130091455339236363506979619231908589168292599279013639807441860374672216885061319794238421781477350927552728074674711165938483930757214217645478712975014250355164757253613288099084766660860951413635591565662351593018880223343777781696143973871465718072444041991337425211984908363932274047155239159725088904826431424427209336538264992841450858100929178595613635631536318191183050757073475317374740880240746530452665674138251265363895277918332574079818803696073346339823966000950708805461150360335937328362476562225720885588040563052499896912921937440590967688384455367689669599324175144258067028661955220189959890809979793763388424541476774333601553140067930905674536888890534448503076913564679458538094768699233473179149323064444946542949509537174158712503297089790522269848722973788018206395372959118890679083485081841202052413501703467778373572298699101401514127602225456847063907559672390302507993957940569603067822651735494685757286501382615594813117208497981205360752715817199923084352620269378035817264046650386622077675648359999212212791142623764413800205103119690714506248950563547669007038166523164834402919268668480582192563293509853226202820792012572942632361380646090268859644806151505426770037580063370759463726964647310595874755467403490217486029321031481275698591828550932770457535852666719694747691015119078677268874287687876399482091080148293047994859654903596361113823636854783268517491378378397498861223960732449333018994006310900212284909381427351988343370042817689831212643075351776612723113953452493892209841194573975095159339354790557472707023680661786496237293424868976568747733104064448946101996209133919429109019791412062252453860428116152583032451572649393028652641050081935960099831261170848501927191304566116625791120840787752449544056219077185585879066272471220916241264204391208613811879743250276531988857368773428934586675510575159807717092063734323525351895066121884010092045412723102824235275303830115144040726568102345435103872823943035680689585824003889650777320239323836355613378010061071411110892173863774410452740843137887002926901007565234530026278079049135778966392875009335791351582817923604943249256095109618925801718051056604607025845359232778407195471774114974109543187655990672983889407614995401697817806751316865753484953076126878409703757039731671993327637280532921181081157346671217589336606719469213982390262555647908130291208401000599068388886587173177833148885778297652306622863810487094082692702640924549497936308196899248781509204982085674916045422529708966242776410550894612874885415636095758905206545879055506429731615061654426479055510179451017942079323991360154008957743892532554746994654257570489186963589232847687601105423744520409458288222041446353257095941684685049513279127975132552654710420994353382435557820021113213123624547997259028265759232295670183252003187160409861893672955508460346201292054210892633397873285387929184799352234268188580114119225537982725123340367020463742310923574441746123863438884763252845618835151164810209177852471305372091744363359849179111332401008788494080075873170012620075347596269235189776247655669889170329691277347850129012395821330771881675627859752855025641196341870313656244270200927840661064094994157785047704352517786169264341027397086934817638426841215836501332660174414299803451610158811169789259697016915221899038993037984056550146535906238829326037660722126700620939514911070162002489237000849034010668341493274595778194828310498769622738026126558718672202493352669457273779110745723411756398774986439945784756739370991953883315857914809012491963381813408359128622045637779262905477725816999759393613091559619247178410259588976298378953441980604912115429405147339044789720753507599791586232869624532847236343828822785267823902346942423882042541557732550079408802804937722883310110450944836513435484621254575945884715661848431190570728725990060269606278583559846050033636280112146653859246670058076232043726107371086150313420527127016126674961224012456067541289391151943463289575966215063957336818000539623891713085058055865973447075980487842662500944037267901081764067858593421909309489907629007019612495446259045050348735683032244409419699113748830598944027278550249081249372839433189165393512157279714362276679326445178319534430788659048426048484244526383396256870669105720020865309113264577136680133499677793820204682207527950798818854301342713971559060941102597551712382865907129016928778737009876469623122553887758743739566649881521853496864695136198311732684731919070496716239908615693965793805840272881114438199196740553137925679165029507364072835027596785816067050155455983227784750733869135291051492068998112361298090013492828260123089821254262277346388495823299815080077491638897553290461566367718902651885763798967637288116760156233467485148030877235562387757290261310842215565852822790104872020061912430568367905459596510840788482636279528856982723366171525316277289984257500954205582682787291527316448938129435171921624627703370598412254347746492505991238567287936165157285922881062383085385824340868686189684615402415494803372033313377168426598906859105768085854500776073299039160835139113264622046939071858238574754774318422759127722221683263524820992953538736826745552205395313803441814451665065282341772592696785284015428515807416158740136462753732125755006586603557786397841737241991032815989866401084197921379828043395090385974443143675703549478416281227078535696545554926408330984970514945171007991821899703564019831114729624818956941890721360652123260761703060328811298674061904961904335885452147761720013647004409604082044861184945834317375997856129556386572959654708982863537966062685192412082628268923392528041887730282116628796900119780024773187339610154851313737912783103445661273615207284105790818512529496452753957664717086260246493404520645400515476946791715616169346164683296664874576812833392815161646121824364772176190194636799319505629325936902530529463107127657424302519081156806697122255066933572455169506392751379453940390692570899632459616379702901835409679019988349669864772136359188683602362289686958304698701075885081881751104921341874640252008715279690662012413978364259712418888459796443023010558835149340276136769055003293310640801258271861703335855538819366808456204558829806042469982198433124396270851994814435211128891787988819416730302786177679759967952966357375099909701213882733758394327481675787773636734452195506657311853719229086201395070778352440481885174743194597589675572705315062738753118286559782518288265142431666896457350961819889400158778782017765402150776765927848977649084400230808195656152783411597068304892230739779225511122248937668286641818582665889112999314518132356835854555376189292244027014018733471209118555663586493275909170964173543724512733384809744306862764208063610043531481973215666096045960084387091691002274707150393089844163974490030078404709058471999439169951007070514051507385327785004728331987075343246715165205161304407421300615993255197016611686049332210176352306862645837150403547090611456988263597903477922052612883837204028196387237636246900598668557237811381463967843195326545099479119896296154846982891842795856380292161623864071611372567840891461024885139485756919344529626089070286196689569623723846382907214528560487493691307304969397555886914012351958132200558836695832749246780952838095079389391923965075922111664174303886306409613985164649606354109082476258785832229651905307418422300188658590455078184223584089805337790455031514291492871828179471850505614127265426410644004597457151577924647806984960667990318820071771331692521337965166912289745473947950329084448383043727581077547284029773230102502965715617505117807864204851797078718305394369920290784911346926090983855047349764471077366869137527975985576973503858553251446853190862327896473197619607916326631265588016283112223680600118561376672091694324734406872575066279859210997943147793509280261487335389696617536903312223192713952309965555710118331162045505594551474395232299922356030077939501315305363518435958504985626199841526216788984894325729521155648900362785739133559662128629948096251201877317797947655351246747813000539017853369490357528274426008055279051375851708617982619596014682386676927882356187378517900012254658126567216414707133718373305222804429424799987986776441346991273339902801084940501838859936956669074378637397389793863668436628994475227489111803637939501075528970775345350617893171103463691897991078743656180954883153028814458909481132205725741205223785203238037718092261368812480630538735010351369168042808776164878883958437731707446150364721698654645317121453660830261357846733546515474381946519611313156069040968209012755916214201920938843029294791281820937664469379285930412678972650550216381759386978008475217430256152889022167001327204505339944395274139936558320949197004691669562271019687071118034802615790963798248832992795773661278622560913124191894232698345897089642127415208034128785144979093933913954350259175404564177525052708476512697608536031233351700341045379378497543782407893851396993252717963841412541624415832021571006363496209475080982663000608067608644655778141736666306500656740742173385083997036612745668125625885644489328338700599025973723945828509290033540844131590196892217034111995964846163929887045540020967444568289178564772399299189990449821544234060176979269041828440751192310808150214645712841257198680793711075200800511771149385252005875713627883283150461343187493391645398740320506116498232975896262138228755739818124624743723266676798163107949880982310619146352040921116938717438576987932363594815384728359180719748911919185298080342320387116364601548005289945874137997092396015801082140911583331854406247199222938265811137971887270482870095857684144701019590533794138491359818936114736384687742180484005637649232805317039114706391163942633621552835869395923494207745950059184190776117503945876046714437877350665962303587946576378001036208157445421544856734635414997875363435500731401062968442939919121856897395330467935956595302957531803589993112104343885700054720991247364416797257516735565160337512941941363367787581550472840680650409225991225298196775887726261566495786189879440698919327667847141976096052705363239167797490354976144093148923898654321038821987220740018775636589093458106098427854529834715030385229333807575093741212826089342520186622831785079698103062988391193213018520143835698329142983132005946973546892507332075018555201142485659840671004022133713242506363511293827303336761150752380195011873847518495926717695020958281989916821290950431411804438614011330097577482760331022252255177028344726095404969536901443968370220102012833793295187738875593975587176287566467446914830064906337238300393638855424646645149320680281654251555667503433592036342777799430972684095438450877964006674181266001422289125546154161644223586086827481364887953097139911717835506710280229028480051477775537873357197350423267804113214178177332872003548273517175077505477341320170287699026777450150085593408293134638771517947810437211477817429883313913527800157710411222163364278051130629809576359740389021431405115426759975870052708669938995033955693203925590245846490959014003472035939375531668429065926917564391822646872028552383614427523465535617319385019405744687973962287926803125980781232654001870173164526966167363133850702973375839825581265752350203144431256215537768892344839799309523785100462073209804515376465546295498238741690695468294230722595395171751756584060284282609394472102866967072683014418750347228052210958212158446626440917385691247120789146001612240782331148466234561990929235479934581938417967588239951260602976844538342613361277171194314641611343111542333103302907449735390017665981057046147982973438725962411992182837440206554928078701740202337756783969784715693172951864200406120850103034673574141612946309355616553266188149913056129072219024324219593290962980935298269430690041471899179989446755776775019561117678020163640962821191067973874634604331505955925737777599601862025550410435091295160673874050486002542882773384514144787738706086847689728827965177329930686773031709537279131942202948320469416159684907470952566755785464664393328539925153403811551668184720311928816042863475781569322711184895787679197255481122968846120661055293415449831435316428752624448564689410828286734247413892464675237647185667425437562139175235123282876997770985701128758451211114284663037435164211081896533389558315508255677387639703988112628395177045795300085929265530545499936929717591353082835494600287217228752747724286676332084398384046356023285986670541226117004691641488538135364580149052248566087175902315360695130676498703020592364074809043070175059828435034941290338788593335428761940732051493565701085750856893398390428672709438407599780516413125047513157049841476748091372437068246792150228504242207271197041846728795044327365661742422150231526641919200997135051473742209331404303641766157512474956498404575465244215563335216791176951663163728501391244301325384702218925666745014766191433916391323024207370473078759222531418331330902587027000574843836240744184001349210854615204159538559180753339704018732651868846287338124194526201084141105408739668379751446934289405369473482314496605070258105691707850292762293368259421014080107515892323666265202923616802150105444639536092501199528197291888965393567240561157375718990071207073356650502222890955397844742908184151563507772701526545349909626161459828845819250173767740464856927972154080862029298825345268560508635673122507439055711817961875218139479086279423382780225211055528912625793122107508639355798842049504820673565656198765437704345480841844402210739035038194623942911272969524712223558141929478840426875116846396995362616966605295160317805580838657419379697942390836646348231933838170473757799672931096699654581905506725125910263801750389582287299467521279287516703845535415717284888425402004249428294274410510702323746492975796846502404922200588341008330884754545451346177888968378927793852832144757936967872914181493952802799669487670915425866704268770693131562779454237216100150356604858709118380991969840007352162493901641394839737521593344263842705690009278368986989698333228633364825162619660572878243775590555537202927489678228488122541565783321896916580207534037408846991597356308566486259653464932917534535738895140605853927033635972770215588702970307691207141110842301370608205173167009725176306858390512797049940129692290319345672261977787900238892730266440829653648231548602950759285484387447311381274649591420025024916275931396038179542539708150631492876409002555255015151083551926149037878741343475485084611938677235022298063226015224726521420965225956905656085291088141969520289275297054443583371537300133467769424469836637420472598211389775905238429780397948835785686043791596181781210590133551376783852853109353178558007532865337623907664109480831114763645334069892019724908448433203874676415871089359077441554758343010905317215637281849003451041825670602278544525445395491368758684278330115735154055729847702573050919176284777973583885682529084503851279861317267427926003259160998031655332667967984171485276742896008774031506204465361097594695214908093090811149922232713890098940002344311414619855419739976583203095931989827434881795890910265499004640453126508162326898957495519225785179008374594169661788889511432780796583804422286099249687471555489056995690852989952560626049154374714989204764859955764222610863770513657208970737813163278829803590361917595268503842066764116183202908367224342172895817038216819074638489267394091267783719377068730626845179966562299390147273591657929610899722781007427905992166055945386854646749155582872684430136812406528394912343699032277616609627225794161975962146572242944308532733307210000216392546905616576984779225110663454019034326668620975360868374929528808443545576466447014634988908042304271282774059136384711468118589104822795715355975072314371658407010144652704759021404139827467194944995142514363628276580212857759501447476635573832196425639613562285922216352973276066062939928781501646803333574491294526177837751964122133076729895632825341591767586094140837412212127110402810978099166312637646119770906584643044612202952071466508639205166539832570199148767319627667321439367850503900770730029656323653470575281977303489501549582943999196171572121358992258253116275456462303707623521986942213161990762979938681306412505511317239850435189303641542386292644714481027017583511526634070046186890999764539257508319070791259248042358934865781677260707720096975247580603295740177450435512015838123279684802798427518372106662790538130278362076154531470331354136681709212725263754648214269475247092606832152993926151820472025622000486227409530746868041882532217200118875523429209636357071577309906785084019903647779044459115616897805963234358947268808980811477384917176027002982535334378135655659296919597340605681085224803024676153810682972968805689836174670865410513480548136125048863109750179283188615430254952240691731143480497057318391790712392232136713757732530473516844577840854615232870849158880702367998086502982763084154634317608279782012755516011060829942716942515712785215522261898330095863937646991050314731048864610184032048212012124743005012545608044842976246026235138967761924658576379866388188887739982487841475057605352514855324334826420709964439037590515741000089752977640973981756181488369044578325358637720778670167906657142186938838160081677102747849618392656296462603675100289783597325105744308458691823166513230066341727163845098684189956002673331214362544099882224471511915825399535859029153016634107536394006416492152347799778541607343513381791725151557553798084159763814563373668041400896812742367563856975361541570318309204338358657505039906354002548419299774532410842934627097045148054421825479733028329725467586610925091007128880497112272705678045625838834358110267670694675337955326477607002993129394412516486381268447631003718131292587649998410649166136084072317242892777851528565250062675633871066139408998102993941878404629756518198012575234303712785381441930737265788766264544441565873970223869468017522800264289745794256322241367729419955940221636980040394744417041043191857432788281727597350433933828270102741964054066314896418144585863856293869400186312711541733262525298268033649053657903071231451643676281350447996380011365051059533635669003775870734538480880857557120682995044591484741541115282281667107623398123981635226761570313273632791106501287583888798588660976991101923812906832214219206682107872315867776743729339524596105617142601491638700664359740730025399009602929636647083155249354657184545823750231633126451067573565969501815383401181915866145767906733512778112705030398104360622692858460539102731635643186417731742229194292251307534901157718803128850204561032036519343408711039002668493597428143754168897145326121034611631977740922900504025475922802784810405702112530595588738531304056495336021976972877540079923235726646780152241314211218121101672347459997656655021257996850682433482977044799961233270702501644558730487658582739487599817370402249737125472210699507621083369084981140667127903572575822125234309775861058677387970868038441869960038193283357222826477590744213815070504548233709052380921145268088139493806768510873868680037309373113499962486567891720211921199364347043369370815671291692967531038746821405330687102098420065604668037554113839025047776841675097566729683585335985649861731405705828223574333981235251596222158967178717014268320928049978864643659246225574753021960946197570043333047861718905146940116435764388084229770359984051634637577743980010470715722195054174759718298102874073517193055448186478378708842951520591619530049590551057585783638708273363945410960486845701409107064160435789297310345284847619205468084657086982626664928067000482791021517713171535563668057536722145100369681291457206503234414491042217851110116271343697265893714998125539423183018112130601264715178653533851742904380621777018861964098859372090738217382661578995712515492395955731874792319097663438541374203505958638455884609223475198556172355184549508252624720747140834881666095090952289614458661089730147377852042405280007412147824872216345016055272010230755878395237029984176046964407333476036269053867157255862303210982133859552158033566046455988843142363628212055408903466191539028119227159049533069986727242193052715665900478362318687057245926518676437321834628682943433880284212742718163616063647540125265049581175559014639234587130142919800672212825383481029643977291869229278153865628017661470847816594803418940037077645044445360529777070436364079220289413702993036017505995139608699500669831096622350388567815603149250379297366373882226550371641983688300096030123860768140722750353213064902791033677842469260218913939338687783219138453053804596241980701316420292427251341142563314885132490333996172668200265938903279819404585358596288854390036275400478053812771310241719558836049947724588012401788539059194309874496230250804950567511195013616462921563758891492986780955777517277263217649563204868876321781833069416000331437312191369981864185745704712926932698737885136182355973582949533362031569783867616340022586199300525272618161875055995842659342850305588396237234879789218328107192171623340772215418994794091100908808818373713649790908030251353675299028798518278042675130845261116637876933399636772351247184195333999108657850803531057375015135290856516527051620339681673422575869446617568604725332258221326609721075789649636977063272650838145142902412698915067682859722982826478205423869466059294607029126047860407989846254497949970518753880372803025715783344463276039575288019026963148707624465212718539536301881745914512868076875971629687411907953698106777017372136994464149241258030207382355760186266339050670438676075646069567399372319307794063037037781390289796412373280153425842051625479202787433396056410088359913072582477655639353539426822975144184680347294139745058555067699030349528488444457010261222056915654379245834101273986164797637046880337605169280206167265874400597102542753905846156082792045805230845276610821117691956442881639804233996466137907829526360009293340628844422501518022287725465947540696109208605266798063378602069066326473397820521573214326611527604366689467504385447863714929865168358190272854459338944749270636564356064552776017746344943856662350881853744754373732171732435129222416261525243213041994952925398325210751620691750254534497511455430380364101953376908489169238777108108038681859332057594561424281871577266582012920927637393917402638142690010928223168005198518161440947901046716540223370340345690019619260557889179208893510546095041458917799402364946773016511960017150935905868119141372932345956518026978533912151147802579464931560838877993393345179712691506095044338301983452942438918707662857191515830470112903833683409038431124359577461817593400213740539585533273437483402779583132644559514039457690706421084236170097643062944626045894600128850182450035568204645775126602417546940966418350184369245603486750812950636211073552981850454169680498717744718235700122655346019574563909987245050909847379778699225799808571845470270520287750289064937050117157351104572813355673616407086694281102903552678293966428839526849905761416497406449212190552994239137975308443876124149346957671539961323292498103949351483520094017386967887843660128064465866157425774334627897980578782204746893537041251824426273222250959010311223412161002245446001237134790074198711173137495028393798973951701218718257059834276178644250539643903350026785199793417238680628198242675842025773595889815675461425681220244309856660662977493591420127122177533919290358189834358649116907383406426263095251249678292804609114474177949156085360082915820145299498641814842046756029548960774407428441644274074197470998382863304150146527664852450004698461180912573467658834195950393001841276464496520645752212425548383969112196441665218468627184117808413413426688096496942860761875896098629543674753794739848512717164634917753227901773695815686491594778964606143181479551844991179074149537615797349813898893357770718130023693557874950681902625642459517483270080587779217385585393036696523609533702940106956540731746772279923803539775203125126542673882345519634528314944126816007986864453716908546493755934591149819887724292968876686952640279681813626671076326146995401253594532087180033889171288087090340008904157985505806259675393980867665319683997234732780576456821809805959982751257392453900638830827928782305737987990369520719261674871885650546671396806667943517234930763561206386819587716321254141732696669407502503543339005583477509224161458321133540670796914640306735033161888633709031131122875679980229122713108883380258272427210026406398293647405337262025408969595457559245396089228154665393554745059425352245188927390128209836185638257299984034617581308937605454511654462847937329003960258811494160839461191035851401224896092249654920232948947435271614884498399376865647911631217557623132334215942046209136490933812642617072015374239866896228623690251629684700305516649851424643886606006466715764492018900827698330497153973391148180747194276839128226096096625478350036004469946224701145456081032902591079381151852879326825367872161808041739085047956772279173920124937799506749700826910873857778498915491678464859842677547925771144535826879110161112192397452250175249545073302639283415829201534521400419743019834386750650793165732293392061125236419559339831292019552021226736298904345282077129210870542619449033267211754980211905623496836484753542386099963735110827664236767943712513411996675388617311162814686233971845432445182727788444737443086292543161722593888032018905977030426649365970658640177446192688835521532827921877970395967094637498585994596962007096730605802982169338006941019087140996081904728344308512220473887382654084119824054542860383929326026150005228203751924788516397085221863261052849641450070048693110321183982208726822889944523329501635343721895954266827458686217767508391413307861414119623236512411052379524453359310562239549821570182008991877871156822615305184344747351692643191384317683286990581030799198420206750137207261733598382400422230764597770379107087218977592112401017259580681044394542216054988219968960974150919388872468384433385215395159445584316671723497321744858737835609926694977034569280823830596586406962985321910225451174956455545803570646849018160153247644316289979599830156840665824306308335587193008715910413856657814143785095423032678957349816081029373257574111312016488118770113763221919444703596129348893647056850177373507749898590533832329221235612138605724909111178698468717780423678359316502772501831285740143906219634550097441949547830763525849478274908994826827823887110867110342398866118134796595299086433186770465774549373235888112572240825480477040951483722299143894252653832855823708641712971975669701620582316471342523359629350552954453530866751576377974671671529711972851425368758392194726863900448141204528130180866820520457547557165623235581472838246291878077088988482869883224257994691624045980855145689238637705051745821984837166515616742020496970633680664886204714508670259165241829723352370783566354508364234797444271328554779468538946922529314632118127100253611469048179233837052393918306290013500860539120868915904000256448951695960376978222822684178196701009564740592452774094160313605961295627628820724862902575147863524123807620013008331648761462138189440103432642837331163856495642309514596060502510461075406011198587295188576768576320785637415124014133977639452173896476141791462778043441022111877756278072181193653082652325503885250639430900445225692085256553424446190157304396025708637030308941556396237849940021570381148927855312839213668778559000825847798314049804958949443030772115628475893295151872661822021132007956904862825140019178189580806494496689761621870860871220662521664448715852944074897640861405304029149757283941163883367257965900678366554251432761684515579907935250423705807997471998741575976079481206629827184848104971157149157873403509359358500024686166179516122854134137179131830459992735241436596637331668034108137077821533011468473896671219932251001931760076740421561949428983122044579089326294223692303315900129214336404982922716879482383282230784360636316010096520605278453858974073976768643534062293107091238983056211480188191019020444793052360113730503005860099071084333926964736657495891743742953666073470794065433162938312752833192654362249179391343868672978634300749394173149154647526065702720274702313499848426901316673306037351410407278766295630682021424597411765223326554290375913519216148343848163204896901963787831138797832728831715443233642519551106723747052679134920201122876065677851546308930269347708297267460645512940788143735829039481622457532160240179914460677819210905422114621819015242486378458564263291321997800051330916569095208215844805122843192428100818561696530669513521906696575888803414539053132463269772766507122013619565082177134784643668924649281166793314780070034408079525511994574115353207366130146435178262813455966329933986316728208614037853439622625577990795117673790442616138303086665502272678667910647410973730764462735937082521181322533288429127669861239510370492591248241743982227021039629512744344055645275595038377588132774192766915348135483543061777820125127898079357326804637730512969212296791250325116731944919492743493103205810576842898631880423433819779465914834277185435127376973772965248399215519171241184080009920466487690617517355158985534436274853498861896787794618807942210764390828755143357375509567200636631119285199489227306650438314200095821846797010659099121291509149317853941028309727842642226855761486998845239057685712039111838791116485955390943273605045152291647208450628120139119369600242270391226167799881838278770101412317890887316720710205813497383046241542144973871818099916263135024674938086394883049060672259944992646954601459703072076394878223352619698342744858155305097436939654916991474369242609741831323044961437795023764443537107296527603028374997196014343006841156598598706935031174560976501185656393498452686573577518650924683137703973181160860537721875306502489511547863680472335353044086248397172932739990897165606224277653078802608904510574057889638516893713334423747336469522726307424903316855022102331419048123983611446411854714281429890198058558549603060563124027293172770795799912445877983079369751829870589262783785119625219458164536460799920646662899096962824780361027156582768509607517427654191731918690792372175777492107571782002699612747834536586137190770754888568817122464854800347302576762926702342134013136132669414783566299024906877323362508809583653750325107579431704691582171809382639148273871130785945177981043038793124360189057785579627297880878296156953159927396167773835667448392692836559495305021718850535321337245918513120310645650024250033231532929700260921283298096425393340714537462075567032507677561030397541000718685282612450170315140688846641392394295081378440997872388974760613478673228580338528464459703877007665093411376983034583439763718384139483481824442481642793439472681354686528859425822265835677950552427472211154704068409638835414594228628722267579044897319974405142216405416969837725854571504074715772019588942052392581409395453103385991994822891604255425453466833019830498066982635067636116390274821796494405982935070678353447637144596815466569083976600016262477127600778351678146768186087350026758729119208596171727111446139915065989589788033315652626927488033265799811793259170539152317297212734905104222386500875290969978273364529222089766236464706673253385944923972991406397401246082335485854589467430200311851430926440596973471794375992052958084930170443571341547958635199520430599225480386106965470953608739857008942251892734197531254226806984635391723924702957010034259847949695004724199806943274293537163907711296395558865394342214721296945148955042056098512516114322583563068277143624315046001730244310701286913435921926314494906548185501081691140745379494632596582752089735726626610461860671000406478221940338617785719356896208422924022497245367056291405526494841317996336092526789896334243994161925653307845181958071903201765455868247021799722010166729738509693627136416532605262949746099807951637364520434870176202890592674458096184169258243122860454764505064694847745904546589332778287776134849334964242711846532699908352221583019964790293839644685760556305604924956132404495343383438445961849461075489224727729975146724424512256023614268891876293143038705516011935963957431812370733741372577914078340023455139730425583941744103981046545312931652884689413423155013616051396473580836408621597410568789044149171162145019991571160542426876120472878659885272775232095810752100240176684079510263863914692393628268420635465106755409786650907022700809648663525625419389524588063862674020730095912240918407269262626314732590805989898345745060178917512634415525986358118835071564150303516834044909933914069142534485203406031520128631173328071465566861300188735369325133467605179544646245871624275676651810486699114005129992917165597429323010075128750445651898665118852906158282780928368335111965456833426585043892070488085297538185071581692859027805663314353663946540144350423008824496523774316209390910691691601727899293064862060141230565166809019447180147343768178184286021141227641710811650091825415599951435899868373481157345317108177962123676429544657868448052164481581427615079473813898039957567486337252772707529207791279072704483909379759503971255999346349125843191954867572941482158447978504850528861969875871940660274538304759691346959168991750375975182490520541692967591709875990859663703826786253542014294022711657211591957890550993258464844396890989846547633985581998785759854003499313161539061975605353069401832091586633933286965022075992121639038095366930450552589740240858059917619860380103880551665088939233575181941420395644315637513926129854877513992214554890364291426419751656250738824851026503715755913449706232219250545615221748954869658096000953496382487263870736698386164830571573814235632902372560423238847189865689988508111499712106303496201575985762083998013044304615917163745669147063858323634255094232018087447342682964358260561168141631530583364154616892423548057145784260539611470621398187517641805433259193972166643791743325652801010724938778004393373612597407862904586950603789877631493242127211429706572282470808709794389524777704814917985684973258716301481169693869041943133412373957236663294753687757680651349192348937847042568388431573953450340404769063942235670060152209428540284748526408921230103058738665011213234449455112225876163997862088091431822122808198375509700646578683451177950335480874932508387137009536683230198020598814550768090175052912588860614097658158010923494705911153314925970927905379188583634830667497759547695463254056449124622581525752722406896785818266413743309493944058171024181838036060923949834556010873506693711746479299567496038551141436007467624057506562400087947240875948289614717983663274015281939670705510619855587798270840161131651990824356131625480307125251792569504363389103411136980010267937574522828095602803417766258741035584164559722383010141424470903107956682918978978130814380656786835640521012669284723770144189794134071158002137455280952570447191052196128650952606227841966504522177346562469479785841915098913945010600527564911681888025557331466351963575300760289549044168139490186811310354152528414438027180817156182680927370271764917536809054977947598724207483639218975419552172890277657537707062497268512529980472332380369113362724466133232876401449878922926261494810086348566060362585684127889192535449293513203996181690988854297687899759040861136536112460748016691859971233126251588925941915980616745254535933156961361620647929297522719634651144434860703680253470521185686396267858054609855489274994252388850429133751803162584441260259047971347802487238621784067127758515316796160533584616602410235428603587278265195092533783058555526847065249172857186953844106386301434374432948993806227871144331677562514083722813404255974492347269581851413188976137798386537012092286944736841005128000936976614701116333037386604835624398799682258097888254695022129999338348565113472131514386919006911830147405428059269436031557429066370693718355376255608364218226101891318487374778118127568946765628027779475365109013037111161797286308605138119425756387839760589572842913516479395418934790254731527866956995052497751390972351197064482677374484005221053675749759483464645751988161095726716131944703107938695995532549985737066599987225149800852337480775027880694046264036610860210033970371285180378841623122867165982179728573841195826095230786060710183870704486349345535228439178187118739048167501909602832346410138373629495822027756606171943397078793675482854012845314903867950682183839524476872801442833310400506989390800243414919522290955853640670104083809680101069173935941963986361621919212486841047591884200648230190907774620872049262045525959761248634326543219508046438039312615529961077360841404467666702199113620921400697043071770048580533316630106786084611565038742643233995657619015779834044575281321425300447563451841079802419680003350767928820768377663977289778443545503558875715802991538410091572554273478430431665325158624276534829665347005768279108929198603295081265483386831624878550325475491855120331755874614125607558374464972539180160566253942017034134909651788184212473502581484765840741014300964616861535851390499976826139852284064930896164295042015452613879470879098959950370594796910199468130941884004204661374543553565959084079015264147814637095254910798582385154131612825102394081333059174048980021780553015938743942797352777445913289085238153227520472241613207426276802553989348991240948084841053244445661940538376563843755112994082548559054848327602341863107224114833533377540862460997340791602644054388095688828338869913497541771429006112299587180512475568665017003644553189976416510426897066193266142517164683726511954955074953323055747001509069018230759597781496893919548081007869377263074170253754130354484110730191008780479900508979051736271955199908413002216793489223605908706936436798653263269506208687321707075030978501041359339745074243374123012902289958334089385225107382094200671393974788755499305140130101641479051321498164622642391172111613236638134916551522364621639194012829152644870787466875025861475315734665211466441750910813165241240702878646055581993430806817587942137426484463132505363782870337487380914004090652237999938168900037607594600623810504973631738648576376658466759601816781163819132230326984319851508894122643465927195991153596913010649813379498983259110195624568077842125804468238261010161650077417437558766056374646684339052647562118095462407630184541441215486765141273976512259349547573178797545726358171516984858829752890554815548559040884742348332675739254060713950905877487251089370080507201491189121218561192737422079849256892679672275536071359413056624902891016534745184903636560434011321821454497022003548719362176669201589567038851914858537041621846231744179651678709998610425424813297439565657019578084696013828632227721454453774062345041635632013082025028158873726012482457333122219136246139768537698504299338809811975494515138078993437793638476625309488338948951171959744750036254138388767479197309171382171865835020690831532952804153244545136262486335484915810815224234454758434822912242981101224719806573833618877987369031599155957626360080333276228442323890162010310731055739783976890370539358523032555239077935461213354359462859595198308488818226849822482709884104816173791283116790718567323169726824987387139906855329956739602264618555857997757015910535788660428497544832445433149926160855230553608782245470678910279444533267074654606719761004923566967104075485225646168019435187516786497767363882469555981392305277350805711015274571396276428909000583281832353024640953243083829115356280882762065282695116144978550442698171570563769729771421567612295150656542574908263394016631683942360312418391626761816169232279426237241602829076742376687090533245260281543526521283015653209717882898934252607845901679435711932302372064380971922789466203156659276974286981337279044922839413185207320065167222569870409351261093253385313015126094060008999542976087470966784324753845530082888707775111201014432169816502055142763983649612371724405888457677213729575273258711414634337267737258073900275459423013967330069444687967450213317440680297422657320593214804329940682159837432594504218653081597116300613510256325697507735582001581360146200210804925808818195864272218356903759155716374510985368039046855391828774235956914604051372455764204981546313468342155495632935088164814100514688702453356541989118611247195060000573787219321955043389124094601753741931471730989336727542009412920869700104771839234096522970905223414655010950067431902277422321898142830609133277351879805672251236723420086047297032470586690480579719546023549536906933599932455783939405714555474414307087343051687968164468888702012870349030064864941481151753185546054140826368715915808065826003541200613554544481764953996100589121096398572003618431358360728636043684740561774871912469825001631744450137338374739645690387765922742733623865268548892891086680518720168162692275190201311534337373274575729910042090550243963647826173851610452682334138397401159129360173517782150132153625829404603203439612450970247852790943653134367438335882650380795601320205453996494640137378361042680519316791215132982340915127570546757762226699878359265158237457442578182653506670409211726374106342342659825859770919906296787450971467343419740764731298704886834767620231984431244326308120381821092788335360497360578039658511990316501077774169689013732511571141834146498428944987945759776614608545323786906011892702857360052340473075083096150815760137538045552067057103463416129093499516225236948827290957022055339030965616791527892015089036141190164452654617785777184370166005376980402386602704936776714427022216538658234337310652722887488382072112401668033577182179885294619724194655741902591758693980831103332388414785293342871921855045841120106077165067665397237222598257991160354835742659207077681258896693103342550916160365236636077895615236528591333771843555368584655824236495263927499224322167825929703028480499069811843794575288026878747718911175584416218549805958128540054960988825035774023317937856700628587203554340506817669195945751899951428176425185715875581468303640751094822649318841811437147973817587337181784753098067086044043926274184118689981100765319327584620118315015289986119293729404118001587927895527643545469829023114838101194124795769860738155189094779198233171435140393180377723102190873005779878249025738603533739435905975695922020348516573619611568210483891084293503336959599379555284391557077581426395278813088156780329823211455384037354488142860150840952114390307154735572973397907594178506902387003218091408357538328980133473896817426588258785104572550819275295857617868555879874098664873366595254443162082733007884686040459515601234721051772077192113280251364557995174836280726979488186083359593058105450536447043517075120922756916360285928268752685926985596688447716626946303358512405288464314271427078858144948540260217274947514236684962602336141755223931214259092754279639034456072994300915004232974291970107110926054668225273071805338596820612988833852857430872128424185502922964761702690625398042492867418837257688442957093018190055102019438857104501953241880323009230563227633711359936739418529570614305148190549922096537222854446948423173766159382483934193846396899489506477244194894278850439910068161532557417349666588883574013530102129536335640611367243041351199347600075790822618569194929396533120464411301056446746482732391494154388364111012960392793943835064089035430081754999828905868065129146998616049049292608303569871098306504402030783852305854832095872646585292697905472261285452778106755370035889567378906737073483216733474774072792105457191884976760757097234249293033241736363986757569063028841449725605722415613306027599099576313379430901883615368313241593706837577481657032968455608002370150928861702968268843633256458629117599130500532194347213699529517924306847920147617707379632810461179462877956986577181218300780655987420493035678136129597906012174631808696451415778326156779519689494451832517721539639614452769618084681013960894289897763291695936276753643508832565452501480125590768109415456460115801697189142164720368388556101209344346518941449628766184586363365672463277387135629802279464131339537409887573602422374912630025613883845914292526942542535473972889615760368636410167910438869671314956989984033986283970990339391618975071964025493557608619753877390328167662433854706424391306723613296782035856805689823330951909942585836324132255611898220328066319494289328247508250811802916576236515753452147954434733148198344815465227636055364157550466697978234306829274865515012974635612140372618976344498581197438654959979919342592395374502654517024560026926838129333677035039924098711788644956715439349780990884818713002399398128705705943387400468948201271022441170113900748437997054237308120678392409231309195979047758410760603979497349030377126036446234979899318056525306549024015378069703073220964010932467419165600621833640950369768521285747218667722150917270167072286561918550370648075766026061313831695011241779271413883705494916518551315138745977188190439614503661650456569609908131831568226371491357249245461359683207476052274518913597267912587387210881551838877853743767451857607798537836963239616692965193823768734228996842258971121514856589681263508754893128857196797851871472274033720866160833414676307657266299948434432804645652959964242839717808176349466242736533253501114121354588150625402713569926412374489100316540336349875081196515056830934750022823240423124084464586155378288965030286955180420267880807825706135458820618917907338084234437543015817995892059681676253265589618984551979021766569577011119485568918140612572319048486973232365783847869172695187966935316161637517976737579073115640574299501148559956943465277348570022228304192849186066749805418671321812985420448343718031736519269450065859145670876713686907526860247353168443042086841363086952588456120435933656236626333531583886326144086707640437033509340021790109056814093549314323934626419779373850516413191393022060703721421180434897107150612991134699470141564878458201405653074828305173616952933377924416301684795012403511415287790060271639739771395564362976893548121430325212388186350968988481243192253747685887120773110227309398896165532205507598487376677400958977569372838357700689210187554273320526063797685804766487664754491899223230344343569777590224612393922464743586023035928269601912973757806479517212247428992177461439640213524934230009321949714223002049222336082686724209820331585712208880628858941493584181799025794673912188068658347321073818622707755482548510970206003307968929117639858160974957589838895361191399997504774170884262040159057302753594197184871829766604420832538455506889172213253031245418610493038603352949444940621617012917489950945528181799146900398000274318575421316850509068885149392104267960184306322938042371904923124204516003376318723727131156518915378346186688912207646448790562739419966700218578962884555341713238434918037393499819332870759976004521960837805773383907229056468192716468489279654208948625209226152623747863469791951727814051398291020107493886188422369403910816069020099675391037274587581114571690397895317191430952701249004861478066142247199309856355455542561923904322451329495355267818020197704372939178191562121694433053218822224437390308324003192792660433982504969306415578078798622787293294798639638870630726220863058681504313478262849709318572388455288015887428258388513841432241915151656927413715534672675324057658831228801614850299489889783367845481933153545655630263555655824244954523757051858557934185464500261020184549769532075323694914848859042226794378401167189132337229609533920689006028142473081964806564005135560738681263701075705611615876370016365213585024114773604146533532118394021707851455492774455143338189686216799575115917756032665582795238411853773796554249766812679310615112066420009597355976990094468112455022769284350905175691589920234226248549920199411086402050259807198932374886793649129448751039196097708758402976627307549076264048993031272617494804844976514968819045798529136274030996659823385520248109476141671898292394241126903501480691122135850370446322161501473391924074770401361102198245280884266738994789864085795820978869402269806011841974256646340453737438147012278666592213833966749671322718614778537437225863248001633472031886111175329059932418755279341912611016884293962076386663830014548196695416583035796337149356985326554364756411557032894970820101993407106837214810624777751901320216356853348110206114887972254181210164199169438202403816114209545892769124606872746901556552594335183599053173877066269265814864217501264486205514587858400799042156671637138040523424913835769177105150936411836587343172795352701564355900716973460112096156142477492477566151539370153169711073808384524030209468896039912659453620160098433277746320156738793015555168155456418471814639610975221355958485123353332937984531137961453727854312910737241465284127425904030227864272343160338541698285333480748711579738631695754764844123644515543007648197440385729955402607200601126611129063821498044640784468118537713944862171442322031478733910058282589306784553657037095758149549569781617347281775636528550456944592473475410026390069150428842304154916177681656754940822597498354339620981990698903352671713485945447972479020616756701478084042460912164214199731256332900386639603893147811232730347477374609775328656512239918815751691007010597311115412196881999591062971876137149965453619847316363102507762988277405112925400005798393609251203802613058890150022649073444955954827311090640799298486324701475850830997963195370509096308276755247252885363392945878518078788142384806879874912716684845195894803044511886494608918041651961083183809507619377658060562276225914051849448309374918668055355330125240530080271808130745360096350994976010309491646925810754646481530842319869718341322182756943212280290752414540009231837445249214217648291106810526605386204856665416332813906692629777104526591854847658728631560657301283903994118152493637730382423020301435076375686900158934307583176719246439770362249794565951604375847172674485382411717227224806710685007853674535050021264005633639272755628190079731682709854800979420088916409404323975592630551505584341232205770151076120421530602931385887515031350112328878622804101697720577712606299379088633345959026022291714936631960151062354214488331432431540514302306548923368484283862966097233740539588592486315467879812938098260065244019863541759592009203926650272989860193467251314427865638960122524522389061924014106777478983176733840154743363087817860049759651333245437729724603161885157563364941600764301391531217430243666469545912050499580287063752459006805489393290603703728842059679460924911660751647018359165704197681331734739633590756919505931317397366117609041046907181897410542555562122928363289896825033797052025483640644187308804554318990615328353589095639158728347668138550152581724283688977018427257345193108656765558402737720411555760296646834991204649349575262001366781357438660854226512829019650085445821515082743551131605420898037721831632197810775682352247847080708151847767979154123640365828367759142830729237260277018986267194331934769559650059209266518828119227989880238131540372343480339230063204055662684514977707072659060001036788034496720364435384208343305727052454436274471347183236414398371556086755247813015154576124573543236066375811217824531702893191740135559256722990162130610248303226340617671126956662336183088796176756437634684070919791116155363264364816943252097972170875221271908700488339233846386652861585026285771065888954132549569482783390571091865120267643679185661407595836163709683977241948165941732894219350929450782085977514131614349632486115240491253524050222583313524663309361934775174094930808856903417249842449435250427818186681078689864426902424518887389913949655821570497873436394896465558996368189347644737995953496590449085919546612172878061372153612577352888518558063705392166076681345713132212263388842454970122424343425279320479085365682732609730860740728070708868428098521691801935011732491309085287401447986455516187751061771390135038079600464455304140615426226039722720522826199654662878522788124897694906690913800268139848797204894332160882856526041112295355467490834863702405743733688347103530595868087660259307890715068857672683880461097532899236453356344931179977825461150277153534080822097926395596736671887576021559275980406569805670288563899071836354503110068883405934319310976768676046731303854168446559662493833613626771988529536148849891319846338537187261774413234258000333145055331947556256989227490474269807756956131015385599086433081342996235687850500698026648827535247540717583351934278289252981342576449643450349990250955649629502398474056656436917668095153866099301385604284510495387481135617791881033180854551735927700244631118789385320592879971641249627359488695230508047549911064932752596133022442352269712435381969147657940996390719645915989377234376909894467735504046724700113685294153991121784221741314283341905389820235445759744802935529571712287904014277201973359151569068348796354844894960751500510831404726931395504260895174417377453268119809940273055111956735114581959389467028584740313367722471989244349526119403516736435464271235261269857296784850084914493388182952783881010637069270062932845413782616384311783185295122808736239487944029941423230013093449448800769199050612790849573138108107633071060888877401277154903114440484376484447904251762621566909572812303354897069686534818534485581433082084284170124422204131481561391832479072276650229254920390508255611095482773314380834062883848139241661286404978717846258627392252504141009251665912360746203544350272602833338847507815680852233202300662512295689454341963646759548719011484624411572078313314481006314007768280339456007289543176431291132055766405624326597494134475956873491780181310668183811818210440129560562262257081275268617200354608198779079367287128021714244054626215370650691361373637160437521123831022469112395273708032895912588688105926404642073803573313313349512000410125547768093360848052292787782740003914203793661826381859205269881119946516177329558529421939593882600689746230305043095481031295187830542739693177318486964679534585259141181033907341167420804424792525366473800147176520295702416580920008065668806996164685425934353702788489284564067684375561554745509017857927430722909252914140437088905744231658013078798725845825639420131895768566420000383728232858058719003960744123982550681163141053792880285659929565333772687306676922638237758763454974810780873017957593907661910159146712523680783851457581270996006492135008330276400167319540778185811372071379716117826587627396654825014033511715846696576658366303576447788295517581251527721096143941096518066256628705098214473472925383935212199536028220095103055373482406598701302163310257303351056195741840085642441109300985665542732048885868171573940872844767412155397010834634926521498762072957805519828473552858027546210136791466499060588162426721241187217855681265974864552579634729448079255925428867252823567608146502975329645881655999184194381789169588399929777916274776202409008424468463455510870063287822473692397753277917616178733617627337062023306329775291204452924070774692029729758805349581662673902108676358248589128771991003082287666655496432307664575988175040095980249206104973006442633871967743012294288703590635538793371194861162909039009577080428457165278594661169345021082162277942654711270225986553993111030825085732360019517677783628999226568954719558945463221824268098524545971436803527703285490516163812171381801481044812484639987783032790752391547718502296559621787019551633474814491933950437843921063819677444076384343461663042742864576857499775549707796137348627001055112045131969254492602281651499938029694478531002419463815460346704161903733758852405105786448972932757519815083222769404960447826440124503989374735573939719251457764996087167566883179826577956964568760983023221129523939041045741983628234490911319704856528998114863661343542976583847742014729890890746373303316881863710612088432510216386081653768601670497789068557253302164863965522669837588797620097122598692198644163840617771777605242338987333103138164916656799965043975698812239757129445104703508867426168548191935954573400053224503336444223305145343926121260262769356748706131363378891575049986647155203587524869108620762761837558774729973108413052458784735078438494515553943920550772632553752234343446689512825881560339859434977645409696448798811765647165243179040486639877397258934704420595797975578630333022179602203581735100723578476411535943465387827487280764439919044176834867378624361103949044378229643482482478721644873382023186099055871600320731964557066564162545170973457042270465709609385290306272887559378874277726566533531999802144292221717988077794027032036426645097996985877166528807982144506651673740104591700456820544682938680641861579857276379689101365464975890013947425258626655227750007591540101495661038763610985122078238012931112536624209451046637170761745854887933543615889558722068878053444064209944512993720656895344415335600076542056996692193845939438392632354836705358419525663842523230098223781674840937877811749803304796076995477372418165173436040036161869390086457279485664647884452258978035499438128598923362588676379823650680111069995287689591939754400781847821103940918250651107179534843136603390959920568481005109513070377467173817507653712699184695211733183436003816006242801463898299363568468662360768621659643833637409761763809327458527323239375539568658265850517876236217038380799248635172574678788467185510411247592307536444859374872896607791143199593668982058065772786615844625415229004846176639685226909092620430594081889919292732177730166465809033565899105305441444887070857654515091847078616364957521675308129122228716168919814096493461760128072990616747278887075880063534130667992583444501730512087730784630236994497464169301645321836804857210668668035632938883514099352899634409444452854624783265272256260402718221405734873273214372270329203668298728464256614160236504132267394404210979490182908058886650714874344074041227680342839360090501067524471283016002052606015144439198418514372629286089219467470776131164514957788206886197648864615668434269302120245166079985020534555716339466478236905546178027626127346295407106623476315860160738600142992904862957962439632159314503744470458010771846991198375436410416806075208658573748944744466959338607259005413278484768290747116430371448833369742995053771879828160850971936821509399119076214161088612278693884499461457291359611328008301747441760733614312012918045363078495552264658009393088482462619555944391000696607152354907501016795577499706046231242179532631052891910251284379109722756388512577093559285760674367380104192361303626350333021278077520489566174451801420626667201690398836680232749116248726277536073159267712871067219049832959414469591953483986230722157321959974283920305635979290338326503064987644757696029696518329746091186239014435646464780443895695364807621708169020939696311799209219946782461039142353324648296553457805010022720962956474379747480742149490704896946852466223211162124651752223624403313102919957571564252340119687314859027098586425485199021322814639611792689040705739555016578251484415338046110525876557353891235219214711470569888276163290653582498101411977675719605749775762452030687759635331147267200776630311906369120425266370810433638189680480641019569273454840805745610851957642083005146008694100595252706969387295278238819235804864982999766515158916958676488137135707534620096132972965092320504200275133616871764273276440845312274144351157570483773087037840384579540338723802945140006614689610091717417165988976352198700804588871042194639805365454638586283166834328012710527334940056484309345313595669919602357651049478452502028070558288773998096022760885097603172023585884278465356362091857503271739228539607751635228008480166481225830379331964250222321418670911664090439313019581070326707220924444723433242639608684318298139207153067024151527567556024190255860527530060773490482253790360846552082514470909026139713206355934577981261339596293179249451599124555134357680763325280238216687083119261385669548082071698036948035532412380431035781609695067628146771478239764795473296492354550236315465250210256355505237431919472835175479277590833444698054998074204103722980083906014265644825354354384005063593114245177121306754789528850274777916915580240973793333027063898326644611679931534509925902612242567303204669427266421114898618018246371064602681346116851312684964079952994314433344093334022467073466584708606306224312633680902049136990512254496613403020171396115030072253316036001696431577564911786424832725910964068841672388832289078044382981781763222133301274034666702197662465144227147462943831302426410084993816090430643829912012475421947362939808322621954377661560062551363416455852955631150959477022224266168717645219197815460347421711608912594854265155021084523248393236360144339810718061293530021756854332242732781354107768798711046373079929247037941386018585937675142682658383642174485227912532930268365121228697734673928323590152695771036765785148732741039636269539405556952303428979012387356718574503721540376791824070162635542502937003090730882219827891957118572077870994780535891647771880041250500123760984720755536854992382938627736487166762916086776543345952718207731217631080875743091366965188993063850106988424973966564214401689127862450861440287974158551027879147130484053621628824087762253569562490456005509103365093178775098885699198396628165414289366306880007491386293781619461216040350131625604526010437313180960776503502699961629754911104084812166735177541088354991867038871896537806013709426700585572483924635673488230821796775117307644302969376573384961930735139850781564373589695122821493352278955073463466494260263251772883888034566367581449322303844333728343334951332275000871699445483508557529278816200822363408894127414285107745720565162948029672868867664130483234434924274763947171925154140503328223114845183909506011603343827735564834236554325709557691544667120422394951782655615633719808589566737307069335194557131540540348089334746508134572441511466558627796635821478052276028540219453593594775964887383988295197855467086137940368736155455364922552717456695505317195630721313674930532461726875989011844481611735883020139776009979865321530757854051669986602893959572977475196339300522631021732771416413889105430887644161529729849550878737374962305239861292016214811607131256780428959654695846036907530103116798928468078255780112972996748384435126092591523835020787463019997777338512122725718100662169407154133855450615275447780858909570498511714756279701723850986491616164928071346698697647403912928518625215194687254779610177754207583928047728337790999440532928428751567700790371050079270311785834136916757995931111714373265633798600775211609376031442687879506085902492777120623994195561313077074697735616903579262404708146555000740205178645068756309640699498799592101493571157455247654152069034364128710852126406505091360815746208667541027310976986294955090250447933207676289175005555681392238379343832729499623085180992119752560950713076889844850454437895316233509708869368892183236083756550864076484981243351647269487928279264817206819003778555202974776897207362701874544852705734253841507119321525912762206704655217719215031650581808593478712298050191754437692849997089760581074330025440005049431021014513000162738583416474914865408040891974001407338472562280868052963394634605061516664074357042714850026244495551232017725225416325390115732917775327028950147656475751287120894826562063174746673621335633503571756990524021602800636198418174334454962546569244398033685756582705470451446251122671565892241086976281887119109283358813417257036077468027713791133744841137370039795091229544637574895113433294319484856879951157608432156112913840474788716436213107048548085350130606048259197189836035196143851005729451820390481067387622805912798379544624274338305744464617829948111771492205563523195045440499763723535751448100525377061941284952587344726099123053544966711696730979107539546346755407001889671967440447924292145093499499443705247856708077468750984502652652551504439775185080480191991773291694858050835519554357950857728769596395022330082085982784515897553010081048961556761783065225807091517606913575006986085458511878242191545842478256066700806565050751885501093848747080527437270579045797013504206605116882996285815282995122786977033271539182756178507091589479939609067881381315168130831781971988739468439937160460360019167464240175722080488553094568383023190328230529110457246032249951338863724709276211119135202075268397979185701051331386563393645265368345782612322857179285642787594033387385987983600723751622494667820779303617750569030329710416560276224860769034046408959024707600462432199266558800511531580098260851124420893310731263522019031905995794771895321820487384854905963092790837681350505267126099066163636045732237859316031921130563379521271053557888303915508774397826443647689173680378365545659838626061829081412876155689005725620322786165014598823718930574746572041873849277014936419014186135496951566034049358792822504969989531313262532603778147191541269273700808594097793847199763906784066736335483928719277360635727182117557821128793452978623468754946252574718273806254310892916873292499556170817125887441899543316107514656476052387918872973491877610013910466376850355460400718846316136820884333949172989360794745167995069221730343649968720398671207857488481530280504564806833519241071087445907581607700447955310000678985694397340854738945272058558433420539863538572673872307344267320692889666650284889373208464858043285698547861162066906258135514000292599375622067939348725698081604284115177366634050729744945960894897340495363142712455478261103936067354250465634478034165311194086499226507666503504743448432626377920004272129796763581177510170605857157881576329486972170971203313873635766433071523718999233357271460216904070024011739663073619375525351776629651963863098947185297296680030262031412775923586164730257596650890347114615414215107667224630689558278334190695764547754226494707728011619125138373726003178819335258720182495729658876936261812927411392051714039583683233793834252111611183881631048464082967971129348537099892042840477947966294184500417555258914452905586308442488064070055150921796119034733030658345058786782371250479079632109659290126285682093845421014526227111411772876161074754840100280877716367202517277108368962671563575508757850292039107057752498033722458011256838396054706385652826601113399984527716930726116286598991430424925622218787423834274245721814425261222148318452214999965512706456451561435024068780484759302285413616433010837398497051489908798318948073432622231100848481187103493266172689926702172145639546729717685988811408401224253865397707229122372871515929304908147030148883060538057637814529188479951597447961209806801307584131374374252568144800789650417856683860954039140333337083305837095306819766863344416813309284225399276486305038951555946546523166103096222076246955269806435635779985961660940967341104902627959669382944536505174165596910946710621251902599047374765709898550374668141885400790474678713548592663867011069301470780662975012399242399645110306039497532026735032779405714222734956439767441208372596673310818811877326686239727480852460210356900641962044951090875744572973614866524804120518283876189577727702765630030213771665664175994926238779212929384682963376424179576237711777868492089906810683719014898068209720255978493773200408056156544671070830311750768717773079086794520088250554932738476352431283408083424289801460583981006102364773478759232847487372285361087437526705532153057335985876115163000580418736515001930013578925275691670916117708630908090478580531622915861942757309874279246595083024596374729479422432939016474774582218642707288834439383378243197632923206835669221471145803920384912202622555917681729786300796031661895795468397134080756481092900426115016706580178824873327767580310633632873113175629767490913064113514479042550888737922491055373705873528164373870841565381319772712760998875138681281832323337543902819774324450136619150374224092774502761047823912211687727169501989452640775218839577812347194364172297841795080410007841439658343963947059862798941831908987251908314496370614455247376528291915669056444997735493430694184438645485912682382033013715309160955792942070200150897775890526481633605760182483331447093324337720403017978012271675399237636239737776127503095970780839724925775952544742528919051034239367840316770160685980877157586193127209585417466376731286715721531486658117372670597241077344560725542419345955396095474434011264212105198842696280840146406408320911394794408363496547704558292886177596012154523252516698507515057448464857524647563902652752118208333196976409375367585764854450328119355648591302111304340718830361001905623740104042821326437422753630814121096829090452199498069277399816285598478749660072786504256530338947280395053639693629219412987491657032367628124262803558937286343715139436850006650916328094161687904261905406878039034964060206835885250267724396832989438679328435432200381325852651149982297662011057696963637826499456518567521001352966734972463328857363230206331521028837011163407037444058202530424798080853289737943405614108938131942533201196651501840732388870206920287210909420873142188672902999306347396009621606806250097028796152937028264607503431884739359209715185248589506932838480842616440950689564199478433606127636499362982143956263576803734384740629554478584140750141287500642620482316859933769197159946764928787667149108640073157321872401788556351979776544161201365581544049682557428728050776157770253595022383874168026715846113119805572881247315619745066821651142977568002935106087076400707090620522023303786402052484516959749116719545750181180435943844723073302997279775193240392549258243736920057592661077246086150574669613023146066678014313313819124634177275219326851460762973870009341132279306489693655033894943482422772903885428902062654883525230662531593096313916775970952816701830282044266628856795626740471029900162654779178755523380136853928057820417117852073524366745541266883371362787736022397927168879540808351183192499519879469737241018430332327754975333966240369406154738564777239447169838942216091630649878350254891146976517035733088522078675005576497409665851474236658422200332080960872382219100438288715623950424398007244209197454629211517719815263254591178965870811799108375045143379174475037295304878986197881366867046766635998751501983293096585310626796771916017216138608562218116754975231004082159670826354323450590641440824621000939611765784561548146855310382417408399861894270215316750261081260973930396286510526055435012417205971534346125400228892037801573359994009051949949947900369506072404692899435982401559575308771331324996111931978426343226275897842802279192955301406744753362903492702016940515749770601370788674117347900092676384445215067280766763337535413956271872829993156306596662174749171079926879355733697504423655288485110574739239233433976903555945449221050838376179935978266298805753792591476740866824655927207887966479161434772124958578190774035833109720679752025235724700413384277173689872825736307261694659490717005958516104727452005558975358888966462250008987662707370453576428361935491111637530759177648870831248912642219084404209425936178734696433703721495506624007761373252166762379404514182976625187539307456989396421042775352226204068799159783046794971737338911111842884606230467824884047378373041093084141012194493629596423576639652168112245019573048413752355252371954948103863547284116647097235757378539073037972077626014424651637019081448675625130049129092421805714043566075765874212852906757309819011536758101172311830226440506954883289101054503434730673484569670169848514388676246549536907978328605255494501054905386542679158870107503894601811386722211654890162403179480063301245281173370473344684022811278983735871088007911508452310362505117759316874581062351832554309840172718947666844180256218352799635624199085699207459240794681596155746338449774243039388035947745961842818193310922507406135963261056503405130367146770304323811080740234711308071571646123837739166353910575892277291665629744841808230600354407011748706829708122228966556141017474306962785472156082309297517943138052690443542292561865883310008924833275830639956644508866375389746629982961614219686193417939055469543780540976793334901948632621183710864887685524838382130696678287408323273191008315315863818125659073670985421668506475899797163035864449765100715577184219446826013041446768336831748020515118451436500580323517097536593846173958152747385609769053326689176017193433711126530053171429319097778458223677557397408731857828281400743241478887305821119074709135514388517067656208137736324250751760986163727971812806536048573526112790339107778646903327462227092504933478577224971611775919954526576407175011107393263062042847643851780993229599277672774509647554056553977720382731806269869375460022495133880277643951752619454549111514346824381604546796310969040880396754955189959485258642988132521809720690009615002293986644687504271109645546138478707711877948414277011343306559253207877546002615048162222787482656179719268225021484828011088844684128967706789191893683010626147426461731980997912050128472250107342274638480772084997773389502850782799047978994391818736214210304160900591194404543508985226909005117235171025235712884461278606148225067285372743224067112972389071178525893197492180428684309804193336201715854184374466507614910660299794563455046356773104106811032301981820074622306737584148095737464750385719266594784741229104924506744095912392498624403058791023334041321459648393198566963767329598401743859914298212394642330885742274442496829620617438065486992276801911036319571296151117524295171698567548956307094599202125620111777481175683761291334222259786208329227363853595987888327346158775221265799861794822259036713476145483053666414739999334483620321043031713359765942700731138009994711698533711749504605820260718892290569197217561384780204611912976725385457763090146730413947701051686620995687377616494308769661449421552078398068137520764435488925465769709399235406351801027410717060897969314007477142538429238233718914239849277701501815073235187578537052693191743860012458831601977558696959417400231396308963255102646319606288238848949025188661552400367289639860016700918235994617955747618649389589219919766722608957967594231096648768529567737010056491759610710930342923180660149914531343500261068555050869942311077132234293459486330031844712153111798291317051639227497945169113580482582006396091194570945326834916587980832468466739567142579149925745601942444792229765920876067983475104350752952389945847617626500215556836534246716915037339322084952209496985848784974816625219498560712484612905312572508629226788186872535699860678218450093297284811520060988836175586557919596287221226053969208360665496450231868688282741408436970920664849695786597954592851698251103805708310574709967410314528014047476552053425184882853894848040271985752986084440618062073902303817055193596087006800005447604122879043895677728577780615583562596608748477519527798997449578950882778350355653918495871466521807724508444969981480637572968688953690071470142924499565647171007774435588440172624419507647284552456191652473880880713785021051319272715561475474999134068051944250602090769258021431230227449920204079203644238071775954166724352950949508265044493492801883513432090098726766800515693138740949542497339232927756112702690137907580522496138134969672636894288940074032251377509206778978353490860220523745913636291864260953578180567523176224078542126097167410802096232233602337029826853305092939742652825158119578996112055074658255920915823767589567699450823090341147078922193443395373880916034084086442549879253568133762779666638283700258296279183599605097311751196098775591530647311452615073850464350902258001644113040426645454291389399823089354277550882423041051130515043457483877245163704773927470797298043989797152416133131528982746660605104792875422873730330194030932951101857834988820348961866534529184813273090120466437186423597402963851692129302130186326171761772791805244710245706700014974550564628390511878243798495955475419851008721841295804547314241514704567664407123074828226129997482311967874986034765451591908361047399594103588158667766278902307143912520355854437271670411505450528251185785348745140461133944689930639390364397356105971787336540172688565136992349298547437478569560451134383404049460690693167437538379454400958113797066027381099354982121613191695190982338700587949147884177986836498435033432735675697597560175161564337161168950470071965290413842613171858123385459597416445666650013002992589274069201077262244434035158449073101313244656058144704748915114040331585613229018640527721066724838789688585665342522268060792292141811370717309853173923962439258832112652917368268580166609094239360708643700632611743679830075599293517085880263117588998888676407875680725048535729279430217366152614664814918306426650585476481739925881636476644344258223723607402451775770915006751361708541805330949330319796750846190801364678064865933729791781274718843140885207394202256095974533418431079647939129177430720058274710344428437139509038760661381851515200363750482734490712264276482892468086009158188065456507830436339533143521542374020252244547655030397226752255953526071363955582810290369873560129212635258490822125785798170340698884776241451560743912058833129565851503356271653852405495450899323371247803053011317008457332762909442860981494104956562564034600381730080720680082270965924271872082227793221195903754094693126472742404408287026215626992049362841089279460708137923112819104188628748879029018836846676151142594392298538767950428383760465834449152980343447007800545514777416571381332984028571221526593064283729838225067613098446000328889206097645753780339628540565131120577631281870083585561275342014051733729510406065612459234420668725917706019206427836359430372290652282414114999801737952941749374227657433322433559853074397788463390216460887250609005900321424054022699420888850007335645481458237477219427009822061533710612929477381420915841438295508116024660813887075937262753553511314052052617656669256566122847674216543393332271514122502708740325794918970871931599036683195557517855725685886451297813803995254370204194030816482591103621148508869856606315810513601509828543856716883114720487191575323762688407707795425591360252005061888969509495507505616632181884483887156645502317912503426440252216346943464246475246273876323142992430166936893857246561649651943416913317413823649965658081534666292287924336206320559267213050821058393218650458806864115983483665015979592737319152245609827250898583168880706453711557224924498946430848851430200861381034784229913356024155784055010738100215132779993754575064467529648489323694814473427277763048362617491341752597099196020243203848329640054582574723239325158785627016371322415046471569330970785765253451471215839624665001624500793853504148031641517845017618381632595206303190388786920902959068588056437998727025165832766917573779423682772624099937473311357752816611336422275763526490263615990731417938632699465023090541535140595820117768936262006134035024245789296456386215070471508330009984343867261162798789863160337839107373487168800615123401347059213740730580882112987066313344079812273937800507911119065466657071998941848243115720275660651012141877522737492549639205660600546932408672093865325921230376497964434047488008873570924489726303407421837242322626876267221939710617535697369505117918292738990628287659164340447403542783605571039448337994045581985004196034493750203385665344938901512276420453613159846422696129819665321591146553977240658940721031501691627598860487853811914291655573546558741694944341366314530023323881188939860787233171659063865319064885502943523212832641750203870901939216724318269449964248482880968526948779929653654384824032782785595451860886429710023360698599433011717900892862732137004327926306293328609074817151234584090933847416604521948181127981252491847387611610197147583495840706554420312693213322440534936452568865734027383535874573809001964065003652256319089919495374514438558069155874089055871530930061345264821321921412715057792680833958257739460648999115617024615157135268792866481539006973987598631340806552931080539082419756599639361616526237818823701610050106817156729318343555475656663912353906696027090612560742015045328606323715725347758967183466840818337803069234701242500786671134208297860294010652177979635712400462937816111736570142569033440561473035438713760204404045932908080969930767033053214548026205078862276946488565564234151822737741691793540340720271637425786822296838780539807984390915124526921735007899460767975665455708578014915552424886730673291278519759334630315910873275722512260118944538046962734765951440308657959073876469626316072974916238024098331977925959144938596170974565323380787686690884464413600680036077713103134422008979573165469099050929783479368206614102869847233631386672827383789859518769833371055775494608406061240088555051589324769566257620686919312064611903687816719714866970667937669469595527988949701749137221044383827573474994950361009925106000378236079964297785876533406189976739877861802472597355424713852684330666724922907208752378345230867871487743897671387806731796069530389826077949959944406631491164682851587513908229520493739842064256585929590917052396367497937789454804943769110383591037551647719245035846553135826036178069879000779089361927741303669029498147235875354252854539641049190256863782543342526183359228520891849982998947686909695267057684928458684135194518438911272469898692352327300841778315355496860120674898162259810740173770920349222165024777109088902582160987157089072633498890953259211393166155760477104738953383491384198389298315142280578344100080956633910703215536758627604043246618755082275846922978004703971569050728745438579143235443724510407533252910921157660792826351297477502248770383848407241266320633415933203740810696254096407195867526345063240910684352718849237851501770482831315548247094293458831586313778247157596885565208880671537912625259075841762818064723694886607985340085000492724584513224549160811553698684151794778236459688307388356136247317982737500945851062442615531966626553187762390194947223202545127330053536080796637339523624888043977234169090851966024589024097868072676828080843130176258424013390712006806932104964460039674260288230021576930442112455503667980716022740954041901913587192367855570406109917985401740172417965211494014554619295582842626797239862621836008459777874304250286610936177006493030699594443407343407383346768339553748530151704850469796801149717550259675642541368225417233588493650010995831844371204873608997052912872801129027229561212540978706410261112127816866486674154975001743851641877226041614293956282996568549297197397180715941555002391599789928214500797876752937070236013646595071382474195656388283387361172274005038834411772679799297118101917456347354836327186522809027910648125883198750117408750748846964032365450445975778984692952509860219957680459903978677187994213804469893569351388645948877328198499258906061277991988471797980802566313700575134129469069076844800282677617410752503975784982640288592669398669565226989896217689805128751038549631050862207967580711478946889180747023346659815707762636541104583795701487196743412782096222031375947329518537066893355278150971889860283179605650144449692333243342131568771352896693854942557476505695034000612495653177604137990267850499757018725047265453796134925095529968821742066863363574734700772248235955845802304571736682929737305566833257095867393285797172447464554429926092025072474577881836934034526487630596428575658693530912050406565830771504321918375239628696062171617040808261213006123334960378573242968376149869896693908430071802916531925174732930718229468252382056721632121710275634001582293738590032319994918899694304460561487845010253556407097980505464557349170499299188435282717012304503141130458337575475640796953994109995391911156823987652650222469992813407178592308801752595806449829941858292330914581717032507222626814170022466051192103391256159369100654969750300017614793180190396062892945801784735922006310709421968240416251566444594263573053014402072926348822255593802514684050114854311191459800307055732550807392837497790099351022545265793048925511455805521927183928658384144209730937671467191707660095807156418013403399532599176692812970168460449296546879810981097656773098175473327017699342408114268025577602363672692513542695403915962549090351896104723941500472350739815930612344523538226219459443705858838943234032215529346794793041269161958705917566651094955841053543028865020182072623323372308147420759745997729877646688061818430745007651797078683192246210278722984166290049588941859704197528730276947427398327957051335060509398438220211507380966607951873347639345961842288454510437742882785385960916561327985514735281034302099739568033717943341053424522402422763172783601836445547009680688518374602583661052788751980891244739039026517753538039191297544267454484228951706753393139801480474267946833185940056361521807927214301620389054658527523419894536498718333979715444032803494686926391367570456756630411953688186441995936980883544116760733837190451719614945937995118435825218112693758422705933037164795874482985329366370037009822855884576801551900826355340142441332369788555039294558492795295642934153081450830297591805325790909240303444923970448673939996106335470583480995070859351263895140572694893244455904703162328562774827132717137341330416938418647111324866089651856168589744719008386473377612888954719760472389216802228708719038580423807142783432485649072047944818474444828439981165725879497401227355801165244130071622081060213003057984693358659019889231606153387352259204434746654292442803577278593137746532937514803377853906339296267674802531535717407712710124642829784480886398250903056935345712743328961598634577027169756883546808915060402661054695271786389637899931827105072955748515235219961056145350048938036751859550537316639819870826270827314694912611768799795566951721642220892666314074675028440604986179274086325216757521131021045830644155881727984614747212684442029722359932646398980819539220223887022584105978858060432119286944607995262847179675474317899497405277204115911568462470979310337970876180590940208124595592226253964337186300730229569772247393552673352113517703897767839718031758827850301375478301278990931614510216950443485293427654114962135444167564643152288273670462137746966147412174209922191259758988307581281382182370522843686682169271681374756755624803202554295215146499816859578492447314826923444987807148142753088671317061481577546153185923448141753029763453260605112488714193064520878752119399367679135378619029324824498895661352335233362873064069550207360592374457066474832567779576284800687997410357971924151201434346901288636390573911909284782139246057617460382742105152094272273214390568198915757642328165177279034981079794169291382354051940512959416012425625363460278885830335133677251102160720230890790889992065130982512534356826952442493984501550832217920049434763602611031078784889453035340670125218858174744189014095837719777702694558789147559116648287563854193876657873109472727120735120113898023458530740188544865922813276483213901990727455479486660128873623836143458301298204810282855717333711601578682974604843307798413531894855315443798902072839750149692287499373531917223939232111672577330783450206345182501290152595995394173990091164282412602385494816062496328829111890769245197869756242910854562745138776125196159249574286250601408789299055779991160229527496965592044331503827798022607435766529612463037865033558450359265445613341874241820657132943004732743748993364984370775277624111192302563890792782141669486335216499194627796267818389701037145235796463407944252675053243465371285055028177690770301217054094238020779263652091850528865012157558493262167188130985707963403726890001781698221983002477799736036793667509925763502013016686420877593329583683072760772256281192761062629076908403516929845263049786154133880873156386825252887309179931429549867749281070376436110946488065840290603369175915249565498396413299436950216370201493152026396940743246600991097315000509782482991985496378691151689250878693242468184171477120010256963847925858425226140361397429176456108732528665928338911631983733368129875037567868882773991962374708681215248066637035891276824566210829883548590042701413112036337203942777209667217485926143794527515190371984973600747469261166311328713407790621112619743351307773945936923731122423549888933104442779180921789754986517082245533475253607418361038925081648189347983866791573777941717575172461674958263839408605219701947578797530858517581393007055326402355547080717852577273494643554003073747802541323248103980648180584922021833348613598721243190763259429648724267514392676199907694967492662315401869122681250791243969322569833900286760443413570220060671524991383942194380659080057268274324095334251057316599476033359561102676496847206133913167025224325574824873394918491912831494297164758853377512160566241133335091941366312733739726147698759244355650853504062654676985708652139696874933593732890221357422175492804500864987372158054743040553510407604403881012267531176715384320731501262123175961106174478478270896260257846717795608124323564879341100716865895909857906711981717697418938674176160531886942487076119582162624391539981027026311835396803650278117475584896090575041847341575660321355248622184025762535466965652693944751707061948935318029782217453710010634762459388150639104744775884664239681076822768934192551276162656237748216753606921876222039368172559462592189671855365553459439190526399049063326734535596847871782595590771619694715017116172702044433596357102173354223695759205064993253678874116960180549856189653635911988702697417122112275549203404976458893336864033102417213061125327679059503664424469065966525955716699722319319833544789435028608559334485523505254486641591917240738220826650548407702136511138770503041749222016916101706830474870287786609850070018761332149204287236191014128436408545032086627797007539675061486175560444272847016176303554671771483745038181164599870390671066498482742436285808525522841680557656218749710812282941268392276205477683510765716064929578021816550887640212599695259969165842292405741364007967326590266614883204881169182900774904493209107926962200833180436008677689849608216160598965028536328013340895128923532654244952574053507198841223325778619805807537496133815613291983217612015789997331270975142631957408102384401552140614393329484339304542611597597636246079971437250842153648438420497803367270235920217499717695259162835450986113607476892257293448299990201687942136472475792488431769556540866963956146056442885462177947844122624543307549092669580750922863606156942687666361970950961339438380296601442331230509920998644567331442569444722923981425580947036730472045326772421661940454155398342504806911888819840431996246610450309448425674921257415423320778604164088843965608842071891095262859540565640197639310512031843869298351807754440553937010356575529979645634909490826160393255789611417437025975960615620187992214377603521771025790504126374351805587543508953690045983614041952565768392934704416811561926331865496181638571515971995864542085221297448047916781841316400547014051280084978272307568156074871871011832483328835492067200576888990547904576428515900939119898671090843536683207769887824396642811412713399600793162508642232047660773969639909970519374244195546393048215501976395246030807216242334501436612795512673207462310470747053491908793945610766308491777179761456111346714661069226456597819390367444254155953438947010580402583019565036387373332030833377108970629780947154446088229448179357535872833850858171770263686669471373070317841340559847696371743057601734009950848569659332728392160510018961371497410482974777103168331087497614957124626640231118994076746338462131519399557124896548798401211798355464318472751130574317086792870815190970970414867648983663729001727241651958690311869717872129377509371018855900426860672704167067141965752295348741368910631047975213208890818836530761937953055994042498673649229493462836695587889231577044351232107224170743289219218164605532901391057949791810508124482702921091516277963758117561658099067075226647495121034572717000491196936027295546236076156866286900752525759551745457104305542441296452512164484023324334777295672364306673350158075644623705113709010176711199811461445545064130141127524450958517753420458595033512563959800453714211748498654795002494776328580075661842581336148822474940070605986665484337094131875108837352863237893546537145237379331533192508549672103831997306123936648055929098889572423072156874930505032434210965131082300426104997369329529620116280892739904415226312144767124871402600078284394556961092783241284461751322582281586541355096443891558866427677243387139624982322173379772535298107587312671186497314902654972252238497660463976676656044184384004060408479308509982160854845955308904227382617952744847380547913615114498782319072516669690419541811172051625005852268940620635656558486124824260735312839577185154329132644533909774048219817298837821543224497626082216731418728716499735733091516231693161758913691796716463096846951201603397091052826939841670364799054470638615819338560182380403658613092051049185251983939980418687594350598871799113218174893620833198395971958178714940058906251856152749120459772032581134645734630147413616347849275237079512857380490166916862621585122676527512876897367960631190806148423557718177836245054790944475690480044453579198723283154147648826744336748710307282487758035502769322252908069055098206195661590137068819419710005582101650406244821102686168260668763867939418723161235316398406739753618892468739274723655517275381953511149686827111160047143414836668026238370935546049463181248112010600268750948720127457935682349514671212127641370995212813471352990967124914561263430269818322968564372610925588655675628260479306422075171990992926182088066480824019594828673837829590572589385311302746536934834297967048533085053484949597300057797595454788911946698479365430480257661292058446818420615971234931523301573041234131209100431077349839401075319319456342030544059701871129984503703355152021588903884309133370056927223282127854262544690597874404428185845859212846937454193549457410030166912915633711887323884694650834447164123839698870025223782392417595249662272249704653453766742849151764440413089064171029668169208354646355193127307587557561602297558765158062656318595067435339184398807763069166452317982830328292400242535126280078386047217268412741627268654983072753675185411498027717693198322427616095939270463184971048221332656963227355015842536010031391185457880686707236890332752464442073465016355578151646771007442620580519686423300360402508703660960547432924446439078122108377203931549772707974182454289808057982218462919369228859197163904676183319758335434742799256784293522137098735609292365462147964816759365211646387239100641425303783369685317756832490030524256367223510007216132815328950835074186536877649049548944096322241326133980059606427608969998123352556055574536891133302055568288070924744265645992743343798608882399900812719854434364100396545296877783161367062825895691196617655853425289277344368440910386432388967510632618365466096275063005749122565934719219059503147098655859270268353230731044520972940400857485284718383200755162497776507158398043601296746085715884089358029268448848922964185955115375638183421470073423759288737924576167819338675727066117195502301843912022820485735470362602831776286734259459233744201031716088760196652325362313634039777432931879381176186787701616835719732452147963215432382180802872217606011916233912890606616878587883986090479420817932278394822931367482089779247677015364276441633598663885749234021020309524947197653749420327527375443392970811481698309276807070050634135424079750535737853419198344485653080487461856910496582475646019717342657860822076557449075570291113989827953301190902968123710247663977690580957396868778691595042928448748886063078781430889376893216422650471484885354250269535300271552851943573514246843278635274075345280046160981806912791819535171592413426901365892874619241348178772843225865653727352731070756747566212420720699064986254509590035322000152001433641947275685263790006146494170235858183111460944863421937617083594780709131758294201330396521188158434723791269929149973702048559155030905361854326323595470064942000550533338243402206931473322815834287133457180859510774381670110594760870272357463081427515607263167802857461529507442859399148458182748624554619131741960260241472148821260278556003809781049996254080402334356299638207563001493261896108388836099190754321748399773387242896162426415470589712223903271348873390178006044684198573473188921868806593628981665106886299608719651263806594252784927770570673274235856138902872705175152868607763558766925942299942552699739236079511665316173863089039879550107269676856033571409361106804795414473072439168344437666780885743709025668093742986904375720817273837935265727778977757333156457568550764388531201506397258187803809851783823968832847320889068776127568378774651624952169817297974711873569274792665395290751581254349607914980155012932998931501829359064580327041333559821280886908450889601487604034893287449287618987181799436161978558337924088901252471716155894886455512102440574415037321017630356603469228492388857639853223710664555447018276442131324451934228265445161139376225814564601843754972957457216787581967912350757002837260148373175682649806053283659618309024191059385772162284047929110239847445451825691664429472648705577088220231772883680068865449918179797761013695057231384399142724676358806376842545935251766940219105544230991375502056371367919356543262737899559579801744168171436585710848998501467924332551197954849522190338120523346561337014176713043079294175222713231693241496113529299625878947813041010141516449912883367872103936302806747666997090163869604689760481990880301799987476739764851427107017301455106314716616421329032647540004904143272160425127635745694349882843566989181938444217493122595488677124001205634943269142903153181157398775099765897383738208116442194227894291272896577503838649080381330346212410585454996984922983790995892700991507190397723028230886937958381534859536667557282584859784125579388433385383872894758267969675317375839852761514178009772109901875628668396673883726911105911167402164126189952322055611088183396866294667812476354729459919529843308045353939729954406236300517727183863814455313463367245030617760780096678248279820284249934273860448589750692930054436208461981000997177078768397520637306816302434537995632021811806958566712795825944786660392092995914414246422019460117418737330781000819522472358050539200057912044665788299840152918557665019905223385483263976398047472078155043721132714803060577203214418198111579620719686015919585880209109696960130975047907966728056989391392292879426368783769198489738999101513417796819375036849261304229968011589774190989384764843084364454656294771495962415894568377034551878906200574949572070249336642085599819325435747057591533689359206097564620277808653643544140024783344811377479565221932355887844178767520533672857689696848341985412164495886643792289203635720024362574118972788214027415775533978758926611198105486604082161779639302686169642269611528939508623492330403554697177464349557412877429696430054519322789593088060140653141280451430340697645956994974715318574657122445852517918796481002805835181614885320561985370721824085500022547039635511321078910458515362356845863649867432836211884349309236941082173724778182478716957235667625778923302984918846779155391905523613710758305766694090331749120753679769068110482197145545011946627806527358374393983832717905387054404015113147554784810326449614650207497919496396692160171135109541867553402596614505959054698286952853698105358511346708776066331635148432512130817322208941898100261433269221412676481608782558007370851020821473512955295001841108813700686394606092717776124090440383892722700885057218608397209658613884414016469295911830120890967736285467862878343122619971895505403506148682882669027251866966397136962803309025763210673271608179621665570381146683298886387776123185400156319381949450970464779598462247518806372392751437940464783223693325116591188872070914266156978632578684414148161468278718081530354008585102850175503123276420843049045930708155894381397213630318150158617385466236197860563852997048511189442381137969984589641173170848241545524212818809201987489181903524070957356805300170225486503930846665042253350128620481731498738279932206458582424171960881868200265696538154442584058676487496819408170639569120988976637282236431963336564943419828538525433269839405403123462862553845985561614572482082672649697722220861527045328890933950041401087873707239735935534558318669218876541249124269818693811257570517517764260607991458536647618803814440958711789935095420321398989227754773567988342842247822102493937805441247618914657742400642321126223825576759219055381573875312605591799113087856179279393472300640264743753563429793358752955214514408055227659650944496065794338207296261121869491224066079229220229136271686198709347825547944104609973177836872804490430402355198449975704185535854239499585472733133001435705775039682735477883711796987040994692838552037585646817218577139711850231614253523230173604995649397744384150830316822338297107351213829335252962607214342197460750339447680143488603980286700900499175339156294898277869177844614090650569712669641596229516276812164376181186163491099631355602425757653725535464511579618365870869463571768207666586512075198452475747563983879940794313252669439452367028275630807248640779291771827514649435493789801274781730338790590058639721901972419600913722258080780289477785918302817465082451834121543412541879201053228016543344620547510176257404328286243554925117388489961894889100284414020885850554653552404274796093490518508477503645699376893362062167042088471160375476375257467597569200447420381212832654351938431588961324393793190399459997113513900140054027201656498055247842765395879134281201112494133973922655131704949529297544640900802395873805402671390949800191771005541492016245807989464077196315917648351026668034119335691202586382552024550079882847665242211942749302427383737310279414599100769515345409383356037156931513403058297244057724158047484791600906030778635712371949443697758498760579470069071230456218641736270679942413190854347891434083973547958887025826566815197896198791434908423729729512016923359028476487413809790492871099776804462454665645497439644298331989985609818717863484368621315581168028552395024934497639221524220456750937544898605102386307603742426859315894202151870255823484751745180241484651807620978770989109940077964997732400030872156806506686690992425643480250493096887781057505422059812995605290149247631180668298277348638154774126441531747160883843505639601013305469048741672791975733551693294555297479434717505812014923460388062148479197657197962050832444537723575887423926765576465136351417279476872724263294861126913163936611934751926882882329180797938312413367557892968014481885607889311158174843745191696560321269311862265040956073939424929993088229295365916396229975962563517338463082564030106851183288924579641878660055040029873359222163555663330579963531670536086177843678202551754726719128979099847798771849140310581360054759986941828240089538552969309515041349102302768963301662916277553006382738599877989388153228994648394695926486581760229297584490979976221251482619381580773408766879791941004775044396513463706858890241076069402802263253374872045695495180742512776565411552036433288610515548298718433195437590842260150913817890435969659624095702418395854632708835085883257530607779642430530427697368770456811990203299350313128271020229438573321537988855744046462055930728110797483731329191812789483938282693845026726385770644892147316695559664802409346539770012253589977278011421489195456074624312310587351915550023143621477417486392442150618264340498966842265477408825222974693350131900902605926033845244878427445161820018917492061532458306099620045074633079266051337668279967683182297786427953901619349876119912163427278330038431712997458456344012994461704090395766049774844121498717974125488617709792295492119313984453195120929304113613316826818189185967668027060196550039167743224955990336655764629864456005497606513333818260658823495569250737175218114697867927627693444022878935404000524818275597964810363395688609162558208095988670938451738141961474550920587770954966835772480804081067752250706816553251430118237929962323926054652574698667331598878796465061367018825015519239905966786010582083111764602223783120231342499955858468406539606573643803567371082433597744199139912747964814738144691034913899705722716793734114139414776137425816564936869993478140277779772097805713190847826181227841336133086941185153671230709192821042991724354437770982847576787309598057784708649685063491182805005264924149946230447448133179721773484500062086332263929250251492910526673272590593871421623470913576831346219150265673773869702810913938607719417560563953791695181159875543089049234363724069248500436026068111920004547110856796894143772549747553850236274841434818572722654838115609357906226668050398261122020917604083490712792751837352169730269823882798776221990795226645864175248202726131337287901090315497526493582669296844916478749423392528061670179975338274028973965340325923277397722425232534614728950016123691849003080035099908674570015421688376842466241248329428516722493006272197214026824939793121638563469106049556341631442295000387860801489420857206644623520874594433920584906830523389918497796138025076058032613212310350442471016123891363013165440770529350138439596202193300453547094927688164755182309551081137964186123499012382580919825922962839022812102485591821216308039333094979226864722847223669305062296720705593302532752923095114310464931496250816069783269075490196137075067870105974471442072623593591242581635768960558775591670283552029440110675762985089792417734583444414894046431262103692844675814865357248866198725560918617028834080598013589625408145623318910024327330035961528629050000955056602866675644787549322432303263476224787057835849018329393569697987356607642318750197788825726552515255305697278166092455399240143574274953405366432610168501139252565851642725488390703067328672045210709979726598564988970129736427291663498052020584375516584651978293791824705545383852032007038707256971958347108889318870707736899977928287158876804725977646914816173197401445069768814736869880144307286830990227452113631481978981964318240894807345668800888101594850832029422257219948859498393904659499429828744620849401374932663019423423004263093622256752917793982879321261325290113610512171935276930260863344923159334667004033248716724492273854990639940316870342618243369534199545518064023982396423880760914758536504573577927498244927061929012711570501780323934900161407776246894426474145728256872701239131404738420112063400265651545729598360030374604219170033983419644609935273553762315158700933067102293860366154630438996045481716877917392103946900119011279057764965535413065265782051225796716761092964073960791867405343389810774142570519204833019539163424157480060190524602219811865715645072306122142506397607115190125475209528657579673934654381475906863661387647272517075296447608984204200635640582816230851128786948314562925429409067690414687428753901536527222252776351566875834287576632395582470779037892024083343002626975684335889513809765421525812127507700316352585796854337026240284953137081452617390811309871720827742912743451066191384452125141816053477415439347717948324039077677590696920627984200853377698339863346038728362277581873898085694462153293124925759288118973702674090542402875234027573065360993024221130184140578539086826195597712702357382128428172286275520641337637179472462294620605347109401682252264655621589335545129602932828965228019426706116077314383156685706903124425740258564414019734535245727032572612515939441332841917081611809524561515840724663768049797664696188212539423830782135766598062413220559799451277307340241656546326863088039505724401379538638866734670223436448679466627524626468618096172546332384169427714683171463747182536555685131810751930747668201671920331971590971517042050213424193885839224263784214066719825901951255914257856256347869945554318068712709023839914332509958035210115743862509779589055018186899825573730705209741445999129946620903093241476890987066029762970791649007019405862944239725514497053903637706501394010628312279299538263425402798121911667645582787286595897190243500185965458067551857344007339894074824539758176586687559298271412664151519494997569307731264537767308431276055392010784650624196128793779142657517177366920840726346688706658829390657710900166120825361630422137755879785159383086384123998919111658634011369527293073521328818769995109713585346917473796828671103428015516192838830350556511758999906168239195620150480955943770829329783795825903541750301441049553510948605326246904500306929463355803235212554126027554772053856864196314488653565071170067675141342569905193144780235586499172529187877349068541780015953197126887328641158190132484950054423531245492059430850256909120781752080599861723092499784280342181058265005632703656855599267584045539572139552102405990480890803840992865966187977688600168119168970443501627080649497456103074672958308563296251999944180936985896795472293102010309141066893519151847694290913751696616836834447674429648302010242543793686721153639933752611618868415241571479634192385436989513375604695093744685032036250519945092022970829987877095288872943793375707025815914759594479297892870847394528439705675690435475677026069124141292041988420717778290681407013958970387251276044660327551392279268759464866807367652512324933545887189496348944476942382003088952440767046200893944353357759551709860372948050614803860862014470782137975595692833434144903232444378785961840217646512945438207273148534933667254868943803411733050612556095758282621494069686025984456022301568187703486451656424492248819443747988735374604031838476681139016513042826492679614658304161825188741692966145049652649273234892564598124571570025201315416764182616139630896368160396197304865884273189938091508817537661155188470959060747672353994289864385333190185565499251922180130696924629383690234999033580397722410415476649780774212662355221227058392295833281326091936199078505769224752469775767512869823153233590531756115726845594356395825193731336803815976851148842015090584408963640455177329938698719910871056551659682385323421283446837381040669836205499658844455587837603049154029667507519114033168649670181100037261796234897138681775874110790998232509896170083113321920740425333988401963153493956346359353281414129643671317987373152537798582222882630828390426915521039550064560784316981184991659353129797857564230060471988493829448994749703353039844552141205943653910933407203674418013084230170127070005907148707244133055533745310429933954381184816187938445055293482959522298638468063865824632291383817492379530075567621467883822051729287699041499694643843593988456035280897313257176707299550058231475615615238190678528790668380860731402939595889953891704190883454455999063964734703258403904433181057198079341503822531262383653145739867024904392497221811048903434979159328271289012087292393337310975089738972052573515571000015219234391711360140265857854746963150420604026885685429880169232347264635782214796074283231071383557307387004243453813648807511589859911592814136189505086942265937567745098077436519508435230595031372237592847281137497526026935082286972271597920105526976134857011346286857240566570951737025607019089582974310234369908648694134257335631706283302890415459263506706042282425723191285064446450663669966836820223974150175456744416492933564045454480789092611057098122943373023404603844072376133109900500155980410971711569217952030904205954059966759213722580935072528977664215157535969356615598795511763481074842937933526502603297942833486810886262167901877021794975767814610362711168572152756086412193169567545148401037328064410472511121135702364219845398796976568686560382400049188407876738323930881102560031414571954647289853025149411791254284719310946954245374430259596892501168880083054069017108634575315698470424523762406887552410650799424613708512372284142385271969260898473306753393835735184423015599993413106442137124619369658753718968077360989338321183585129270007045017625165157551597283280878931982665178693159973152322566699587747593731986533296580985418945513646464922024619644603805612999343763831513777618069190719247976086933333491336829520616786900449002948670643143818605487538324314033771391799847583741249074790270054726344539391383225988094597523980341919640141292423568623408403130991661942402067603757570462244924656399766702811850559419934052453307316879690482101511754393171423211532444117361012980409971645055168367548556852119381693748706947927431814721763697615511257903738934848225585166326030634379973476196834672565686697337684156827384910144872149040285441306898412092285789694622056232650227558333465234512939186651134567462548252017166032864815225298481599357949478357805069550163068697991648436867019101068481184738904535028074095651664606128016394872458122061372181765085040720376247325326202535832923801633127135358851528255812309027634068635385311546445853109301477115534710581087903265203864886954013581795952983118875634390073949545418373146252421621914642331803472310712834618885719533510676250517190114387978686959154855836129330426893447348886626205655578311584318628471930558332389705750854212854814557616933775907234114820821426657025018274774689874437716829631317667288259987800776178123975944440237377302447955289013288574746468116825443619076320507348471108431872947607753363467466603450196907409578966806974664641649339101424481827446724495290752561001673824471553596859163418758015648149266765924029794374481762184068459106797115994972739446140390211450156935299753552914175117480551266969000261193955283851912348874043662702310701743624684919840744369741296721723620793055364041917312383811666661033435629239183931377145999891083262471250708289836791632514263947157828734249406179763239641281156330652209948358131528963717192593317616732111885397256120161380187281331539603843683763402665577296689012981515658345616324406722280982778627338859645403941384036913024928352779184827194882819777285078194964067828333111746199010144977003521697657828513654772909020588813629289552975913755804791104224364331315636958594945594689876205301222738029840962646372708488037166782498865007834569849375822353484486182657983702871136789001580714775759860595724117631279110652541763201049017179939823919467027704776666584146260394863261446424907703933854681796068340671058015147859077117220015171482172478296849948216376576438578816209014046325827048302602389801666053880674419129299179933083629216833541992859666346656104315200434616363898618056154270971100661552684075213366701301249320962322884986616516083042301693952905730220738098634167529628865061175683101215968479317730790926216411714212324527630223318046783209437730124437064833545899418363220139783751459989205002860150940244623859150677627684238222697089758252942257362859187483280932039176610919896829877536402412754114328364796012878951562726520917277605509019689465887917943903531674667652098960637218775676047340960658301018611689880694087051160257303467569858278467588177892592210491286174775448647230337694254563470462999535064923224657239810592899566053645278342858942790851061635448137338948282891310627175946776406645598188229583952299261552810687449102689177254801365007175953770253708754212244300388906666057145131419695585029451450649963437379431970733528700802576476728899712509668885822525200565630986332991041007648013845737430927333630607623260043875875853925293071056081776782820055529769269112726660315959504132614928864693089516597221260954814419125952651844233198603768053368977128935229801197188745520943766709650101744147548641614004349669259822421982838725162945054629525332864886904108598770602913471751455858511361249945934441391303300593322181764034316678418529367701342577845017494492809163636733184145376257676593933221378241348682353534732852128782690648558406459346236811577364577780015313629145032389469476591466315639110211821214843542772694931648821974859841336173578629509453666392246187914316926437534569970602504541454173837395042808239391960376923000545387434545275422762306667629881789661909937712737497378580166267338485405935892669241847602296276392586142842068775396700402667551384201801342251896985450464832927351644837370813780356227579114505543576088268213821637816591944374659248017586673027794304888296037339745995740119338681157608251392761195518998871681523314162602127472819070745649165318894275757408511024959340622319032173997802665610831497636474308559504619602626628644804790613480020763346278395663668708035809747972854728744627716358517857393441395424428964092506779980702791297557049701841782806349762713584424669248910771924483358758277221836728425503502479872334788750025605520716452494916947917966728827841668146974336512492369836632795374401718839168711922299325608095277857063206341053328324201818040162817430557219493059035668184026639975187601665617803855441738037609352817190224709141512611262665147711945926788050479432686068657220293513982537353923682140301093823142322570998835270589088703578337759812941222502146548674366672333797185026759064699316127085640648042560984568885838837128133074469287865489533576940007615976893405277536307066135960675670569755609885932167924288398562457228387524512678188778808182877133955827503897351336466574821109691758997184088731231687993902660572166190897200466795996247356343409702277498025519871257143185755086104901529442335796740947598146630398578944923423326232226254359725289108435597637343901772041565963851683992747461037549228417923655292956158120534428472846535764671467716745887680913812271928518251697812673707240053079971059547237136789952284632438418366931223044143701816537774477802835685289530523577684277880350595339721031494278986665986595292396905429996791550450416969059242914511261516793431934905942788246541181657024265097740350087491877536163005036625277645544983992339372109452541867993840710710793848931098887853733928540183041219498336900794978776429923165315067107814285216544980035776150426893636236584797150729252312662701474491848667654643184192535100628339378264194181585332890665561788876448049570060156404082422424827018823715534942560009589030966037631639193066426399031544899093436649355579601354702530166401689835106276062900951121513238687463544604730691091294644820891302540566687724188841622004263302659484656499538307414038452296415521306623281947991369091807213382106919753291260616212209266954025358666416467948326982596939030556368769258329848393974994978435824407217360833129662760198631384502476448320333865140375718311133895558092327253559670391017098138816645171435710945965012920734866325516496741876729692832550169170045783650406118523934024523122466502936638035904897822740777244857559055030939189270055029589881163033062241914541580522395441902553556081404345519028145332118805862596641028696477460303692850372414787945551379933202810319715419812435063469361371899385703278445648866221575489971933092524092232500072368331755241310608778594258304931216992172549133889535843842499910211812429655846926739887121292089404891374356198862038272672620863665526784388497247519157356657152121877921429956928071584571920074164832609319914323399546507860626436513895525812457221944556956731873263511141516675424369435023614918966569889425518876183042820985661301996166237945069679472692133852207635897428335982303247555899673305027473440054740966659534446921766571254015345134083322836859560119317907833575024518299296485374927159661515047599326182189001150102457645032026876002320544581842253380448027078038367901968913685770401781644175974410658713448611747313122856378778497727564733615497284103411908183206117620543716841735644918414182609155842795095992666483859985554309898753633675763546402381216102202783051505918037707369595278179197669344477204612851441301754887524232079517220865236474297870516220504059859582260040462469185888656339125613883413968626013641063964522630312591637381401883646806474506696643985360528539902293429466180583386277438596627252935095113775685264272826139978182555734488941503314286023358277989556689389376769058234558025140278074154617040904475497495305306199638970130871499318594055145094932549084250840569251355249334925296812281729008492869953871587578294009202105370365594308264522687338679946571757562366874972494935309929542426598697535216978253082724427355351796633899997891512083688986023132783107976621941733258849610186604519330744485077160329425535246119466762845127643955589678386173373283489800555184758838028221973295613100405243250125449722009217361487810790115005249135566330479144534410821609509542655897351910795476742477870033668879012236797784165608113253944755119402953964294363931678496065688542103064447136775144739601149556923291433144141576775841751285591736583355592022177426287221583042480888568167354058824313704847395200940182283461650456501099638064778431130580089797062954947633672002360983757705358487594786610316033141074160778220479800857748304558851032183397173499361269138239856209388572671399036655441537086403393577780039439381074309856230472975203191615898762970212167087018867051246785366469124518014590974295728756458501569626533444088698263533695393792937245137818085843277415077317808088431589825213142133641069626785692897400964036708857407594866421271083649261059598891672333492658406518256693109802331043630470132926796402450235323141060057611082260756216523064317634425081930243201592068251343499386610281932851709900877744422848229589277307411183340615806316841890182391514854518910480804200941132164995255065761853799727887597037802635025573510124485930269899482261353293073338696700280196307142562810155085586910729441446151800301459573411167387525799504857713932649698406581347404425911743788735356588178125403912919114007538444033797247057934276853244061731010345380489321253776776847001814157813340695935183449059754763865142987456353905498235527598237789883423333064596083776321496958462401450565179793704280954263175686429573536483391811310987071526763933903337063363515891652823537105896152116975183336343706760809181197124265973518756401922605719467360640378032794331629960505286805582455234146892273754940535545588703106340772382576174374143126706617247125798139476320764381819434854586122699124632250377725514484094906997491583071937566628697021938986800543551441850720275917581767532400738751837679183769430009506279922881307794759211159871488698048746989008040494782715295278770401169797553369271279024254554274628446371342950984565394738996743357861353172773074582377248324815472204190212669014052960975314765058544955389077692713895225414317341133197055478474817892543865256157187159118311833784118844724870229529894966496723397033218036773053079662673188588124987922151001841660626527923393177964485615774451260530531409990157856251313485264887060877649622948330755092769993072882965513965536530768566626058884372894633906786384827043108158477404771786395089346906576309238276272353653459956105224891297937999063447574538482666955162906585680253251739988862427153718787453032733915948091899818054843682518632006042639138234346317749071600595688950477797506128297748542388922742968197788754390494150704587817486168118862465801833212608286015333308881365099152571535524506625451614657480349915790948759889708227266166058083738731926726369071460821802046666005304733246769104818968503994420768555903741583335184683149590145217178988368267578424493935851861728952427973646808919084072452888645914289454385610663994316355315273740276120344859552535633849643949151790823288823407588613551205431146649020274901196035000682932489219376037514762485165235968920557153137381580977177186886163783812542734960022727312389022392536781673730327303644850554459529851103726169856728094547923695447261758725753617158131229211913672877015601206666964026183896873474485000602894533673097089378600486885407043967928418554768734398684763556542835737682474265487692716228510020053913998332904033655649935397042538266807253022767714358797781832997761871369641277330372783046256881895837818001739906815910934971483196966456623154229431095711241641983527569468129257444540043174690039652995816262351841688803679729997063894347930803364951869044044524568597664846178045551144727886974196427884941896923847239864644845649572744275593026238441997331930668423293543324289736796047167854040674516177641832043685098284512082987307226666348059151084721647815110606579517804084544502601282578619609950795498585771683921612661925407933455183349729100507347640819094411629581042874611771147735513415724562031643414869812808180379538510132370778992382469550296182290362317705673437749593575015507288232306346415592286478173714376195872824142457864414010512471614466676182468651409686836334302860781735171776403432692613671613644708024408859377058137332107173783667557121347239498133557660101097483097527620464397479331711091088317051775713745620915927560978449841753698470322734215510063880202601459667582919598588633379826859754863479577200365234878818811693307886850793281961982246042806842140750357884751651976052652310545559106517489833000206310230427502743237575007485925727565776765699722927760798694802055511389264012575813069995393886624464883255921252527633440757992141567340934651399901205715261107390366072037956143806214612506453919516418931340404389711198631844077005234356754800350856852743153257919208159753006888928429527239709562904575762979612648278879978094614219738983414716591545479374691924431439635988769915817581711551724096326159048581687658557739275730603431794991502199688932823492693565128676273303684242997982104626731292513402548283510694961161798627854518244718786279331589077840073905636336522021618914421286168765361442763727155214250192566614316467454899557486011692910024149697452474404777625158784300884645061468679621523462488326629189446161016472851994326626024976881223581136148490415952340819793548345767598566046881230334566142331022752607193446749770540091835494683026458887439045023173008255083670714615242455083538273619949763623579006914508676606844286919787105734228342713380062733825697396458633763391441293089923838266286454108103191119355555640582565580648527841453784584063133336599425859863113411551405794243621927287250469575243997679589449265165185509002729810059647491895927968979644582956114062897551773055891809924854255136102854718546429034475781908399985965822218962272502535465857813738211862745314131576294026626740577856660571710650741272039917835364514586065519361844458249429626478498077350381143483699198036006907932874815188162706679204673084529573244380625949548094078328257931159772527538196709815303203885132794982514243570108772842158518393641545747887795853465879681503873278756080797258846158284163593975272048721545860407617336465803231707307856120292975944409911846115413448459010812685535635501874239409605406543269402708491903388111973814031714568457868405394855262386750937536155571725655467890309888706154325354026215092157404752626971065090399975110518163502712071194837491692958148146644941883426527170326231306717938361370077420812180905547843637469302865828412345376311397832653493142508984415381197914336992623195599287819791140088721089064709719377540575235901981910437590040014189184359761689158804328360959064337937007917501468131071155294515381106637333765763217505072237130802204636732242346636953562654437965756795587868400508334774755950710600843836632476879088787385253331579258328713035083571548641997013730945839232468937126897300515643994947420104835286101243140002195648359497194603722521208455944991517143194422515670034067857859293738222385312594922229230618083220599693084419596277538154465668750861603334098559006434432904589845150617902850600152906521735388521530505990381388491075614954174860851780314176649404729201092370194215515440176384670450533420821427272403584152347163428058104891726940917219951896404628962112860534425424221185255913427604363922494384528611910285562082199586911405879751754316744192966032808284635696443849690294139529963639878517902707405852503341597898567038650314256445220775482971082366501662416764519907869088011500891308983499935397443749151478097250561840066196075516529139516500993156574420219001000174688244901017481253666021827822018512148266977990509041938912705666079986092736047193530007857859367830329062534789921493998073443660611807508026527893961871393931895629330662850415161432199477917180079757920920970479046070065070763613263036450999670082775418849076004851332383618409513563309498381624463216555966922370287121330034549223742061174012265759938403278918743367174942988557837690757907521527666070989910274272365373317259423694706798595910683697148138578913879743172305261335792753577455838943250922654176854687134879622632114266634919611462307754253093022715913240099362535645548413913326832003090542472668656354312030762371679403818481860534409368429519734896247734430673111814959979311213629134526331770157207920331195541770009764890861310674654108177640815194586689938884561465195847278894064559333907673952827245657323398159491470984557421097600828964342644740734365978917625304368130535465521425593948823289985841943799724062533208199436609698497631708340776796257862963217317392838720876414721192269738949791032814564936076384488964606027360539722862234424334379456188973397192642647782730237825164989200322844244511428556695143499762202362237145735100444130802555963729289537046957214498162008697076791150071998668011860328212773005896511581656384545186607086475753427311782894367922725022906202434111090842327735170155666953895886572091521758929522494189824453958759523912343689993561198469823832873047218685986343101984797543917807564909119635092917377597572919294074284153043164602707495612862568163783613912534081370921738241262758237420514700889016627443218084312032520240562993566385689658582215178791560179461526553473686521726387203118163894846949529613951273137010368879262209922217916204684266394243214986244789788379937001582030214139135805095150560833474843502303770451126572021038533743470482260244937378311477516135914914201747820732227644125483745044563114489080782331851589063668095537932304809171456116676933660080873270571094098625606233259900282667682219360680184917717997054137819392868578174248518869820940024955619587828078707212055214736015225555723528516304467402825508427530492739905764126054372160122948292699073790576568825979251732989063183767010818543982353842529881933221240575988957568092519620756695313124716475599887979305766876349248097329255713683404911066736019891042265798495953073519884107335074352665799979790249140028093772481739811957119655268168790888835402649596040905570945866422454308119852708082680677086149995045671160374854907790270619483637773590584238199924897994230172083390331519179838436699663355587828484880960719628716819802344809405007525024930393482951065503626245280884231135299389756077061879775694437189434313000505889049516398795048508430882708468391270073935433446430175191782559472826057860534741364111149968954220469642757436703496900359333177696937724415322843664735355995936567055225553822140058886529218193623917987230438951029144268155743169899186275811256145559952452362159133111308761840900361144534611383733124285263783533458097925830824216313155997694837566137597879496496182402942756139573949848723554213303610025043385330901286303346794694728123156907706614537210446458258754993475760421918443287652030711278467148877401457059692605662399420623791768921175234410654704254184338506148921168547413369457174108249356105419319497997961717840081663926220810973955727631718997448665802144057101790192830194584303129827160583404169786151792222752528353954339171486477534003399490548275332207591197463916423669293571793587878469580780452161232358381801762951028739247088304257956345379662173698059268549823044889759907046823911149021453909806232058916201865308144649224780831845280094798004737034147480172778679835749042911938756831413417901795615698506970361080722299756567284475143857034382628620463828639075784302223234724413645002780511368570635170672959016035215186389040476920551552062889991164412369185620006492140390773704253175847366001659118927540334036871821382940482874423286984281998268287356265443926759670825374522256377817845781688996661516477893560209340170359109518832733329875834444264175829643199993758513931267465006767590015476202422666340886576996893364203486785326197925717460664026504050702364852734737152288636818541125913641776851614409633732119882993805279984959409732864721921598397879765600840011253701553859049560196710980761507451991643544280921523997066809675881027930186312751173591497952193006095392099075491667145922973405580539539647026556820058470544886373447124164994587985951036191939883834398807712218157280603814637399999165392160272085090050922401211235334708821271088387616057111377082109101835759268791421797183489321724765085495216367153856733181404322987273459532337451585536188731317458684647799911983866878676692385606205037948796748603854716040725159217238335720463141393419679134923717090824353579886194858302170271673631465571877887980889848282710233454911326301276585286922588684800184588810695790432422898687041616834001948227175880878150979549639640109339945350364309802221973385399824670094731821772943632356546435548117334052004450956158875780057649239357721154549554259240008733988932829970731335620883910215807098399279975579496068356909150895213039799087983436530277013417761842262500269532580125924197498154017876917227145148247689032853629706667018848268433997078508831224293283745185978151089291930980360676889610003110100097837843469789819998314451636500759686406485412662384791536624177387131293404216588298245200350620859959350102824802168558248307294873980680224631085348846458163436783258787173771699879654690577197328661516622536608609338664538053223487414908721791631899634976886259088352996751923751528454874710372041349465495612307173411554324895296306741598916820665981025335847137766074895974542671269905347779472673851285635684736526131732142212547181844119338287610018395365906912354542673373670419457274370337157694581137936511214630577202274945689792656403075151477276925063424375462102906894876228275441365021181704404108991552589863608214383309059448521854401188989732068236538545865911617164736561397206257091010362715952118778393736866609064492484406802886733675679769508349282149079649465937907614144260494517449723658645601479427008650717581826348875268160523747227510240889793198338435318415484687747406675967017607692993109471486429037017800053292253865512090003773572970712346083290211404909742033969126820269791564653805032131757835329688809980164298909834139196427338923989900740860180520840588813061353070350961409995922859650518586519075968945913201590972167997976337724239451049250987984116463675351117119049107776200678456642716979405110669875964872542240147256533979016262226826291065890196340623045389548100107377964172359114362530707475324104569485584812574527071249877742305125547593643005914444411268140524544618345655843830422602851547520718330265093912974005454454893899479736728063516144649357060574616135219141245015811938289173620861910032446235505848905392630597502460565878588379552569381124693904684811476534601825302033670670840796809796895428649398674317615796965687428249500524120086911459829088809063929793410607225196141953488778320742748809284884890761264734562629365374858721331387207495993734005970231271753829868964713297816513867487371038124594801437470278279821255936769558292368202416904488610337670220193441359936353536773925454563325241818643310013866238286874719285671956272623262982656963812488287375047768078744790687067683411172198546998649797873050032145948292710573981962158048678578347911679671203864952384442363651933198337579694299223108270934601941177999519047455965581847790617841158759139564797485202838221888029103151104495388201197205081877515901138255885191071397140571971269655858265765269233210529904030132622572769521266943370884187414827800232128377094584318996729980474612425180235048019633531238403515508791228431438333256384397531361915009494945570378884502276940315536470910427985421373084196473503346134776812608643440121630807903983693472858118809877014991571441031898043716208057547095616253427333156987435359093036551121261272843616443015257907598368021952420048440811526810633796319143048603161329615485852207491264084059923879891459984392991022261201196606598277254643991187091557641829213670359429010269902675100228264827457135606606496784126846302144589822843155548713336834078439441469405498730686687400739590094062630467749248686260382470616715238084522623251791289104833640014625518709816490920583948777053773882238588681309248070267898971806496418624492499664359397407661288050267658148796301124556035187743934605168104808278048429689575446889088360331198214112734863264454125965550558715837333692689923333450185586480522500691501297577388189630997267878914808990097532090638427257672230963321007652530328896917541645472151205477506007877278599769626633314183378162194556352893600753369408598721511072069056477727670899891635820975873907586637722127999745239431058423695694003941978957690294386260275828186770997615110526534005197587964115704805712602480742535193577046946376225627520599054312143625574122190845207886414014370152127966888464277238448995872849500450567673584186015398190463169904520895181084721755726538575598926522259558618511392514831431303749936126655515503306421313341784190059736009403525991171772728880102264630352660257829073064201813108881879216486127928236669149386982354800306781776837627936498201513994375182764218445284944330148573932526506868266941576495014290473714528760246595861377931953595120342789395968088474859365497156924869694365635142454467654748721818718497932391026311807686210914321325683214989411161999074956367619477769365303090692654874147763894845900416169073665239466600631315679276964903453211395199427010725207992218616558027847516691837622788282904467499721952414657824277732850445382334421253703376660276269476280460533091245530949521448106574262736044940374001195186000898392637640544516580940243143882127077465206299554768135351328777209964556131800904275883296570922502646893161430474820377721417998046825391036855823651259810248187315602964787626466083682317094581883060768285658313928787001098269795056744379020674837319726642943180148711191488318858549280894127457683336216318870183182866780760379677171567647452640556951514207210228895576810653485001619467846766850546907371086719808996686169178712621392378595031949465567081817947401538320027486284573324179897063218234585886947900818981774676101142428694581320579612717024592664032677286631866538304736237897854492599339887200938136108530725231361050465910137870408412929647926776005339526964242392181720565223555504828767187052352048221154660994447392934632934929044855725903432609488636262101220800009643061539138089461932333894412559719109549240237756597016972063147817106804152700643117247273144172633275551680516324922670764426171276459926486052378639947778744159435382350904008335962594757169963743454048621577572179016157213327267290641174911499655491215249691556751883417023762817159963630292574732698136076645269229482735831408047484308107651569100812249337137261838713284924445957530926175270550105048944215274306163409543625128129900332396726292284443864324901202938133440678836925710867518766078794269948046475834917053711304462457521788719799336091396238730551818349054557837179437238096617959963953724660259957135643889441567699356640910179515407204819354168087037796103938684571432559115471053992724515512940802734457399731711554651552663756677808401647373237062580518630035208118452086361176249917064566241130372044429548477987095006322735610439249694868753533198422940438508988261571789681415824882701878173232239152486532606239818646948036556847224288771800843530925324276933332695943025392121283826804974216533467882240064670931769514764735172162575239939553063076816993697980716067282818788648783623962461997694874553753174907435378006354409239501193677366838495010319035374883927570869788031210041019134839230142407712079501266419640884288496971649584314586704487157308866349125736642813666406890158697031386775834850369351259638545371392539635889960451195119470144322351161746661500165338130894770466482087647128834126341185875441522353849827994639780308699619879670189320577622491254320717620182183710866798575980315343420560413684600340915401069901633564030841136482257065472226044085874258859749523640995072378494957784510339525009712000665719997141424947622586352551798376256297644458907521097256318274594111428608691622907035977838652464001838207673360372391097287267154646420673269147882757765872226077232810630838586581533473566357470817224902422641300600210042700791998578343486510953478881617765615554909083868322814119879714901566774913125633037410764555341840044368694439065509772227734043324228321582476377508608504531488135466240613129552286116077650034001367135631078694589773373294479288267930367631445088882790174923459832462095659868672014627406432764997176456166152064812550465818661134097695500063813552554877216949385941047972943928531108909130225199546312103295608408430682744002348907141909608514948178221770052229497075423280505554707697684033964327487745243086317154145596576570331395225323950166775936689730366150861475118053122510531290858064182381313238784326712781710799364727875775812458602046085837513481284809724409107673119758411832523737888718118187688450227461762122705936260068212859068157929930667504589555322538119198729992983399310113229150723907757860474514385140469229037264547099384749204309537583978423455425505786385634874926883076351057488958801279362253533796525820357860253398421908578875580800902869715191055863584393884263279117205297943459523691561297493949027291992588501374859912981737011873173717796950577649497909570574825561351292856420811061365841535988624932858320669823610397012640721986322387434995809928023385301479399470875617935753370690939905484861324050431367747433109098458029995914397070270139442456371110946551718061675734803161194315888432578183203949094110203314107174047316593890139774237017731135124463652536544745452886394368688023831330630298952453075979509761416495777412960370352512434878678513069155577801058130172042346367921124802397422050043054098789264550524305757424062136916439346331030134007219457449684924122092140297324935211608447294004157817915217831206276611357956776906185096849053521312591655787505143806274701368880262502327539406345016061488537795511627068272379914418309309829551693184794544519672469640179972894767841638624223303132417806097512959834559009524782577421751989648362736727762934309600295970941619044344248734062711180836921699715102586395260898668581781836139129131513044027913506150563696610905296824298598429126985023373643989098927590812718750635152314694311555354538602428474242621966676923463761193060825766543602188579719615380336858298457824725640273417730302490116151026526145056984247803188876125834595645294034501211416200379665641478257851003080214307059695268548537332590287114530978452095690968986242119115309942058453261351466882510755560714217856947963623761483124556205054320362993291955870279489536958294304874985082702337092589512811591964776023727440034642000207660385496914360003328973255318967410989165327988640888521930758672387969542712623578706628843227238435184309058077941097143958277938904510254609355520954344245767496397605891127860089487474515894432113830190276621258784893565520513805225809471634630049818925883163955872464548895808140624231596961405932930573191534503942892848625165716348388107396168122722995147203981652925310153182080836965617457632891094023753880320254105363843320539645336926072520015762051429328545207188458285356526158863515800237452980631795059376433978122446368929882388311244254519188760163928141184936448397438206456977026755603469630051157641583555368382903155995763522752817723921921794293542811133626170638075840912355124459117287419208892745240499069681740722579284071955146189368107990263029466372167365361713073814692384892316035077258497681151268685045965368230100818087675825986227406327653696544578055511072409116698745885450819403886204361514129525177503405515622668289856416138364224245784708898328717806333941181767676551534914388362973123072376165096457248162396988388819459591385329512658911863916413744947549143244859572616751754448443847023708396884346515146396599771402645236630258841418602575592480410421008170264744753915566423201109411040871191882881708253696036772259900024260740260172836771753426601885150174949044805355948941895474317263528998610139370371681429430365525254559122619636526288599690928484638525518963272348516327617616700726184625140469369408499475035513611255292713916354021407060185712503204553840670337062311988948111536439081883926547783903564454796668921668018935723506819644647467411448444892549342933932347825723623381367903131614082178089415237769529443204771735227582954112942161048204666615498089920325353631775102275408707107708427874643615870807086050888063406798748913162475248961439682137754435936572434484374987549438687163966080228935364243396605129015449331473164518943722536129371530496762700855285508035097327065690944824850643751095164237938273232875653997381861809931547269675915357555482429921604978635926180656985752530235408373157485456147087584163781990061813425426257561768018825539328329355694869460745926844375225136317817662467705620767219353294699245517028835906046905442953844522968346296195646892990020525444725968068897639108655237610790856140226383464435099770936841781244443195846274905462514651125850039620679798883675326243468068011712232585511559985138616298508332127069637009207870981803388559946673064587282295691054107706483010386872384262047159868154308605514832852957074504451270096499257406431874935297112480636417565097393380198434074175893213846945186884895818479831534175945452245866544177583170266667882184948252916741662756381866546867365380088352525674545691169393453767648170512815480475922027435914218320859641148504854729150290632407103154290491721300445501331308992786469933826094760280044620854240839179414081364022151123771747463409893415548443183964366251075366877459321498965330157701037600637778441727664596697414708408194256620156183163727708127364527722191230113510291999076557169287698303324440765155638686015331098874491275467628543753876230216373581082356362620307553655726488673777839689948796973455224897297988121553221185176105160757745603290786025801415365203816378448749288970528163027363916562421563076568307326716975041338769236791269773501499364466077610036123873443226168778767604058296505396462588468830140976621819688045704422479984982400553949257292626831377921169570817425638317048811381912514428786699065648953143284741064202990403704954123706887863207490064794530793665537494959253458742932050924623389549758346579333537086519365884555231892536211690476284683453077001001386283044428152821218662489648045137898132421180345746011222871105715447429991657185645674914420266560783251340611836440404082660649017131691110012852702964252529129641859745992374178815803663807439330931857984149334808454858648065543887793747474720617633162371541252928130733421854512724989623883428689474646366352894147731514494868700943254402604558961593351047864566805465072769552543553401799508125495207229721692373670927939755649635310220292011651828293110452065183350118236624988754660227772241200893494735589708442668393711327851752303722447483616349909055846080525299759002234905531007567263039980163729163793960925506681427747966607095096564676946861079502834722523050452099174519922463996970889850034142050108775138589962807201175245614153779425982415310436085304636990212505440908201152018422300175642550681831527895139845982446372868328682776734812707205056005741333092310008117838600975362581867195139843467710553608601152695740296888506902591324278538840653881021053233484291027533437917674675156966200581604560583223526882572577915466187661261782998199902979423956563183952296519961859328924774809309508922520825507443664460676500968352881030230169075729239551194405330140687346345058817113732886644215257906138226017648018224570652889590883234191026038486149078779386034049904465714344798544298421840131615818095808163801090553668446974230581340573129855546640214277601312200988032694976481669629461253564878309453179872261635630217476981773563278162249716027455315893118182894060008482905465895860485937589506944201271846263661229486046615462460069147459042954752565253560299612365713149401143863314465618611244601128790723299390058568387792440391261190648940258231408895722141554519818261925014409724503892960492192006747498113616181606106129251256935604001269339177309911111253504469436191075615117422082943440481901206690192194252916988696239457845841921711703226054474964523714157760252292239849482226944232733410006151464295568388119037385999689321654622364424834199700152228818693393620350795181200850001807305889177534261835073129799944220681255723035891591287988949134476720431235477936333002671327631892820181072693638895775958622647006294108799606125074785287068911998703755125035423504037683924117273741092399343217533543836059769419857239838111410591405363102997474869524502049563053629737309836354990865422017480682733199780198570440315025082597744297908157748107077491415317180454151628971590021563793714474954923470578260639880157298839269754808278133203604745506324348286407132297977287541782569724322489114086939062510087590511845252298098794052381559633312256286024345863842750658587244481767875709300623616805282874868839292916113584383797564748558146055894154051764663949744921901231056745317937962010159237243422039151387448873910401840199431748711433043514865571432392420239010196846944165275014118044657800015818893042990441342240740853811961415344352475753226234839129948680892975518954376244801905875897029966416734872454418037121830672526428925607103051721386537001141057752541839961367844095320054895849633644483522287662482947343108656704855577061006989763835605269485777765623337409556245596892072307567864940216290816450475841956372250617415969454970621798165865782961514262315120403027897391974886858403924031196302555310580070959277952215569396400389588794486398308214031684596047921091661236930795668105018807972823620569518726764159515494136591736559487489037076650715980912768031438080363943078300783239689075020967354872006285706885833593616458445015915545515420449996893040991563337497654919512220319468586172825828236055900144736912170054625692064250752502640377909028236154580737327016075132109694290531846462184957917840459841433370354363526832882963469839643792715843621772094574779064546069295618596835818472123152368310062187258074779976532655002301758529596388832064134863833019366740953022499105880120875096021327926368323378488541618397551613110794246218348402545553212922842183146886471923319223088110169637611301052638051560540051582772364123668207796364167582449182767525488874724266270830379901583064033464580373868811020039620588166393594569127867760602978052400314754894290341440281030688551479407679566065232071702002312917381932585467731795116991826606807573374578502955771583458879431094017171483353013124644163749691789403946627414167324750660035983563526849472602189516783268995585436809197473659254070139434968840522056385472527733084414184012972433982699133684429807001057893139272078647257801078822066292665380025877678068600885621661597293656966211229444338179261473138858558860569927519442644604098363766550838590484676909560103748618291056766047265016940733829838273214578802822699870521549006252398539150442342405531965768699277917941125489802323816245517393002220829336612290069003689529376567939582165370666758833309046120104104750401442471182097540302159640616625111276805296959509092981042427176154246408923359652841990290980145436000315365982068386962084085502724729263664264566601448018759240745649226321930648221868102217074098424061041746421940082766775874094292983520269235617991778653221725253868330938665786400414202786946061208136783072159535085059384928039487853611297109485871194276648546505150445854437672061395213656456681957982122284589473151036114567545209509222680197183296037276516984254698377128122615246881540019134720296900559028539301333109303385572009435266329155297108257070786519624368294796142438158828119252607120547465722481839059440356927556996331026088369375632354029849739844087568610890246020928561229799058107698440255712585964909854126958952081681085205841957223851458010389419551076458690035394231902779774310160776636497837768336326829162379618096739112250415871296854181016594467485743037352480537654393702470930704867521624567790502377808256146220719473498556578491124936527004484101471425870847095896016234948351475448354599131673655882446260399796345955718133374079660381964176083947201316890613475019089992820917115209275899644102899613650859987195269318413073768269613439368114852139829015000941979793735852068563575362864798614189779140594474913866010400050088689669719862565138747777679570614802567630980945904156706164220947785347403145142902483604475193616464674016252438676033590203247023854192353161092536858482038664024027322378514107759556192052530766898335171724315263119983608649496534759450699151039438393441578047361357675991510796233067701147437417401582706649717189149763698169697808390733988786557375490193988899042391071939299292774121697114238239195981151264514948430919553007869948273203651685713597290926944489737915246486521973985987924710911090510361326022615292720128765345030790325864967872247030505403352074688258645738655108253677153790111227148795908358705575885553100915865873536984959894033107659567945367753081123724616568282283066021959486560228368949786834646400225943681341472986355862378184384754200227354180957210029821435510796713389216874511054629354899560685670539786353596192502274478013658975814110461142985600540967730224751969765914543566393895972876401795885320234790906265959355660772512761987038882107487814162410253122265990141076837812786340986176946997250555062549841160155380716608856106596198226831484988652357423080741116921883794062191087828113625925111341721302125689613174100974570526412755483483493338148464685451028648634214024826992911078725430863898760517345074377029250716275625999731724187584047232949475953707621215809075287722185880034247416919850489469042131181653937631399957485736990426996285281025709396977062174538791972830902380016038276624254113064622412853259957235730198700751798847849303983807563892207814457002859743263367217596758608282697696762702016313048934867327200504729451783573619618670587195897598667161016821586726173002547554897465236224929542760441374287606186247902311529192689108157658879649780169989097696646607192759999081372519578235687230797855776996146134886068813848343789318473964625781590204793125946694060747498576871284409759454996025312258167152777149178612351250259132318551344722715748645416092151139109810370334910805093120134310784764002850626765032171950811134485593804958266005506593010879675223328456293168565483142119960760283659776837692422680765862875157808289550644283274928799061579523276947264910127877118008178668754672092410354413209413747577472914852046880743719416503418540395791740387722453570434506641078012438893263204304279051133301520805609369178050621256031732441744776203572427918462288491561679186770861948260650909121685034829593450535230518451593626197894648022608172540982867061011085900742199883947686028456586627476163418437948863118659944675663583434775833880238602403161896369314253429652139315040767151612713941053210775681467027060797608043503103654149228668110026087663758198970035560900397616769529368067805473047502810546403449905688022941650106097630649599372925368367739801542863477793185616514740934706418113500373485494320016468883585814378349187910182705390689536030008589791054633780854949399665945089665036599805821300562104687784518889892713828545641043117113633973834261575326011795063515575789723962602046297450924929773645106316197746688100039486046750964441948151136935454059493899729101914092404477583668388325520566037881901175322443058668114713430548756010007434254206231826260580763477817228366529982189097708716377433009569375798143477760469192162086051799699163033494048374903083602391946257337518503029918764391669173269018036639966421504665878845500575930653866115009803267261008716977247196182859931212110705135431625949701429966355944709491673421839031291649785017041260308613854641358615897930763430783176180278052119092760414842907138271886004152950572467717672277906234155146407201759355743367458989544405726591006287740982683273777370055534480584935650149793363964871514673603359484520681718697963695680793165290612649817870486568768652519168541108184855582894618981210339611107363700790186568959888229248433300808425435153646821305538113424561132074492739510914155554964371831015778620499722716782189853445126036154457272359700758541021989092275979234838233113615170820195944281264629575676423140772717386297842152854438245982113980073643043777075560385719711163428573517636609070542691440488465297084037465841610214176913379523840011550340971854256682133082676519017173963679975793747202681229926181479104463577167909400072779591631859819226799852108074109638497596683777058285771635331834265119629107872671184460602631582129667925568711591754699326331151933943500349956450037406580059025534663314029388717589049634315584525052203174305634638248518051188630232328603525491119001359397660327759432128789053853871046636878014822488842558123547660773083300105332118014031973819407227360095860995151329825570966593323222926570193663021647173951402369307900655494116757038243381716640993214534592520009583820707885305600085989500795695851621348167545274207884195085746539280136881860314494567408508100049869972081740119372992069712353549428924483368582517330047715086457847268788307813212631080844357460706341528026102946237814677807247364395159885357544225643457949770491228055232454766663008698967729085784378513036217953838594972876065805707312637670194564332384726136870680660504594540925166089092437604492090174338751148539822649799945407145264757338716504066605719879527429151234064625665790006327008304705887828134993637603523345341038073243321077227857564593975122730039569855354408005482514152652289957489282880533442586586332552275426869970622016644295313859397589437349763945309931265117263401689145240998204798338976162210098921376165886824759313524155687923999178677185806685299264948187418477855244363060787486519240365749060104594302499065689468932687469021757996989771100505862828012784235300475010703118611405352169337096118843586111399587807957862605902449582349950461691796876203117067394588063787397339601149971500264314932944513063977614943141632381660811024917805716505487502256411272516001292311566399147869697986677890512149445935536845832899721861197986940769607320849921003856765012989209158039051790581754088723451678997923864421920845339900742343228416465397702099500604012841128469181059141523025724639158759707066020607030141550654443728118229781202728723736954704804233253655480128601147015924184862227570212662720750841977535248402613383521809874218555592271100102778123663413517140208994160910045728795869695452350713328855402397327361611206363262373890700719722095318099920817656159236974228322225935342563197356190076958120308890562846957637762211942468339766556385882999965103048560441149447453095632629347051208072034600698399429002101189985758037595136644265737266282867767412554275699171759155636850922428958398518617775377932229893524367404948877977241389182486421641382929855295517986767828666847825132354516493214672087454172603156352595190992310943225756238752271516614419690795802891003216031185780377375332673175665871684880961527676562537145790379342223557284983718671302561214246946844317180042162234718040041553127286142151990708996147302461735121815604777624285143562501972822667747915340885040783680747651088622631342026231339402088319470930236882654907530729106150130770306325275651590460946967276321118806145408925396110342661541506355041785082638857306554767248770307072660563393218494137734730862189465259204698104796494779738110475414195670345725886862551490556070010981298146639446917028935219877028078637756404731044069810499196360354079648400097246746355950110848369152283796707014977755815382451725165932431787776462896645622974665582488761095257013969348198658448947582635259141699118119811090621483407173845915864500216035695239143023757022467565514291166480736847191225361657257698667459526257654175316779493008570238764337295472912674750473037532336866354916482363100177239209612414783918786167377141322926853970080258028095780449913083375410942671308056010759744143351716433035375082094595770781827730961363847752725160471868085501706108885933791730316576109694623988959949300357476919802540055445493071427613401505398804136593117600030206256733241813817578405697523476072026668829885116700351730110829874702099392885469829890738129140184096360416638989605978641020121745039062033837589060520869428727967097792940652914733912183787816684743226957677186267094796475622887982034088949455895217404766149296357041065420620367866182302314783164222982078244476237033359788006829263782100202501744086766129474564766804711692735749434776342275382843458674181677348768200457506481640552164218421049200656329492191525738349490978639428349952793934761729870181608258746296493058235293594923799321616137954679421693467569346556195849500860977096336157921334174179148366827215037792436514302896563268478900722545039204449379047530887444315711853187797689537492225916758191880694193721240355316200621943852012367629851410721685233629153935213502003432015614777203786118743890461466538038114364635220297270880430132011772440375515041027080363803990574611614140593155299405731030642183082203079511650564633907375450944707758943128901132394313211767993596151768621718597560936238219584206190326719073653091202853634787568496360268908082947628194089909038803039363000020351031202328258323926049940972679140650567268826809038975799645932418810336308396745262706316684125661000628166600597480482464402777383816644767891988696985223207546867709230423323515453061239409107845806590978901812136662863289585216752512088284070177272629400853953774174745775383208595329744030354599934204514570396191575112158241284876491692901272378351668542160793407503308639476776177089739853014311228267493060672604816734431544626894683668379997320661650857065107695951040711428452423838475434348772466392989041584333594316490294517996652511389427047631939451667750476087045298001553268865217882297927416027796200350713994041605105130042964338821882094572860214159877399187397133235581353503780119349515264070184744308950536992733111637051464204330940396721861668162995102612774024614106663201691737490577715507437162249107028806525586320275278991953674339105685540412583230828277402919662604552453753065126346676432763407923968847447059490412017887952453351860453441837884972988950526879312907777147801127430990137476376830701675945927860856489985688978851353791998385899161027405914358310316050238481019634135732299442633222561445334609285065304841923392503705657286955000249395725341342109460450189780712065807153327663019723222539655490525792740232238770147980716402157447493779391395549094346888344487239121488898930579891392318340368636364534385716384446012039950664348350344769703100654298325863449575534749333957040626343020709795455456774164731330177803823310978340172555401110992962553568693054457044233632154691209393900060635526484813824321184884536920371972869028642104562707828614618909763738345204124383742519254538640252208165914151831452730582934022978031186717120726310420618596355059994336103501705504515566112282703441646757473418409831347016757353029949741153408633918715048824256728656188438976160439115616996205859370109456865213894380148944297098312272801755384044844243050089749927723389364124272309560829632323894732658965978967203882438337601672595191456434269827660838287717997120344500272422099876890745183254153073827769055139303313274541660134739093625824639565971408573462715557670322361295699169252966124780173700400599568421259999392311159147464866047785194738667358865786299673460380343862014584689211630528070559333140102453999049540565599345319596900825438361872679375706491567503517154922774704510735400469679900399826903995059776524957358510014366508252314169489427880949569656612289246747554523496125797339946751262549742439777786152107372734791089181044353159870191414351911289571844930402491669596322303817074572851157643441573816683080762213078502982587753649894788250604161547354814355028137302713981664789906992007301917712167800759823043262640352562737040406869581741263298432946089897420129096131045517660711042756078218445662236514152482467266314166274499985323885440920318547982490634129483424497716607158890046369942428593558472101918859601868336301135146212635606267639300147279197524344536706433000570144957989366160215374874904206178366834659386680021891546266212916191413611725469373602528048707501600790517978132451245306639354640406334973952514514315298714121837015185818900337471150077565545480410175968303563262243059784244454818419487651522970343120560715894430645114514240121210303878192800558562200443547897944714620218040890331946840808872312923735992588576040252071991853048773307798164376446380555861192604723497484336304503624586196476818168771549147873649709691459808553959715458781663985853535732440659455559902860747762692269822261720739739850883884894371872395938750106652736523929847072671881038095211306160234716836184837846552892644539899215721802281760672461811367638803679534291678719984021043879570049388358734452470573020320825693562313834017309059882928327609135694306755070854225288484066309436851722085876509847909830495318184594774030510133980475738691401093067944394188316828949686965745023051959457420973123704599865668203395281256272037186728540748917260845020672714864338250833410442161468863863179903156473988553160030001900230231814747741794685471168513113947127679898624225894112545695055857916657162428002960741259709718858176578231699425247649295275602726301621572033596760265319898927981176123763799340698901764963967216533962683659221784395508757289643853534283712301360880165419692749957385479137250651164274657339449353769429457611382367614764717099630149654878821847239275427395380895649855781003025522019919024681133293758693312205153480362109419562317006069133975439393755845621749565049895411547085662055000150530651638379387192161946797810263884860059994431031211511366978372891296580138905740778724529224392915488286244298074345052425626904970327956888662873818126029394794473260531257793857190592250254640504928306710971467309006230135568471453774916875974696433493486039333158239577063192795354603883649989597099809214841029044710776232688918877306479829511086541508633880215026984119515083248260491632967986120695713904822979368539637775252115297320650229984840156457991073772955279673827373405494186199372698719670129767710498385441832164619009816375269450830848201721314538607563686093790434343106366331463929385755984824091963608892510304718050926195677833628289595612717796614761793472936148582954709457593701981941834285723011565928189088663826565574217680772642773710284889003388909355045304976675204274187661219396678513163862145990464750798635473196816553494696760469741171982095641825328016038561790994136995710717283110169299597665724618029124155525859316595953399855791426799156229850962644343077688316510058329699410597723051067322216298486529541518124034196942806118612954515176893936978771444606260135378743960183749407722725897194828767771849796448010991287085311698731025067044600215600873151104396161781596137013697542920827547459531811952951175085136262009394767162836693378454585281108087741289580554363582014602630372907403170894703300256465809528872517599707977810323582809345812014709487180572070437472491480156890742199848714333239195884913311151462919442021987371820442232149558218598860148727667914451800970793060020339829237466270640825086498609508125082311388463534585056541349163338633302473553754151598590013480105502074127487861843362180942824095568827077943744299551091096795180429545862809237237208321384487195244558582409735075757597061099186257351934655355165620897768487479809032050305973625204451221461652699626617783495191694717609927901531979579977427748584236205370670391732604432983906005053358939290851534922357250630938116893186008037833920152592997059809836231185710309809329995447188313547167875077653146138695487957533630882868600444539546623509139024654323461480798840517870686661717902323971056618546174002546073438412945811186944509176559313191401662348815575774701594687724797243477181507126363258454340444338861332954288649165571100677076029706726669561116161226888461513036791083288052523757265130431536539247939114184661404739320438537524215233797203613151965058670237619343202694275679032636516739142786059073498010899772257590049361769528416225584740462098326671119872566042572292218941609860004337963216694888328564663615239953397749447100996230555609661976057713277631471104665568966105636071183153088803428181892652251491808741485205147803830953600993935201111415320366633767615111649812815909418505500361764463773965365774716660460852233297523317709159417400935505155369977901354648216815660553749740716405400717744090838219486742356196810358373355988216673785458006935951795422313916449945325259195100798052820157502837304293314173356224571387624373008195157239367045632379732609803146140453666072715118560533351305630793017403862497336064662927930377105017373721743509179481261709288707483684388781883579642350657883800716050973654864606002269208552203600096037632972887621866029840183988786001793946574782382781379790173350818061665833271668874367932068305288405462936826064400482818264424287894272373369683833476749004351862327604612574879230620290802589697625309939664160145729006946252892426752480701959135917046731223913331901764604557139623065569900178627869400408567887540764358717719687811959380772173374157784531485740122424192797797386036085631404326080904149217627027537510524086095479738419712920454939906297359860730298126534171446978901925626060935860679239371978142340064214149991661959291742490168168734051201907757324581439451505112336475685795092051391376081969869997596488301813417811461483950273215171229778661940353847548335443288852630111779767095635678107277090746315860161738276365156314769846066496119884705866775791426507790842053936587282020303524852023454194761745871942503165482970351585147739291048677712081001132814059409204868175416094936812763097887611300993915111916923011260736585144428267883681648389987254687359423256828074126677904625750122443822793512523648857084787224306492133656078282933925422285883088684486116943300124639486406433262564356183782230779106276607032890474611867125179858334867641754006707850933384794505794229492457948874384424790202561132037556464536996740276522890176865241110795535423188121502119256368126057425183374529577488494756114451445929348621571031119166258459433305362459693012430561033736144409450078527772714112445895727921715249651846461255436565694804970416510341668326874849726511834483917887437448671019974097939915575802648520275884055903932455080239572987741486418789860914618073440090695972884043274613316890978881277244375394102636280592663648290777029230632751020045062913247692044577115500250666409852149384996909655752925615976380527352039942032963426130530200369732111331920222022185968207232217520129938038426143429794444184829589370094142810394100934713330324003165631183705651974969829108049940666698560882809970496318820024111087171777829308750060086527611966422610760393756322400183910183162418012424450576639398253443942325560782225027844257614362223486284531439412908779354708419119057970724529344630310125898948688598256334775936995353857166826524189610036610070282893614765122921531326016706740772294974350452748840441957065710830569524760911629133777558469862553995737583416425042993572938074104372094285076562326961169800304754469825722855975840157561198529174194884081299846049593217821863032392263969877192716126592475888172787408445186791959101773216142279837005196441312496515925627424370812311431913756837868049245044110652913977864027573377019427120794609092703162447810114986074613272087081195384469633217098186271900572717084653513730404974623368410031815209621895473452160584374211242822274830241959299963765132910048216626827115309454392477683521362744082174127198265820663108625484922412196523685032439331299878653143836377690269177347414750850989303736383512625457966049806645600919458168242718449002532849044179776467507919846283169020819221254493956170465506315241676055476936807036901085118335517389261577952608908978885273835559806416557038099729827954461623293649823394579212644491686576011383025452806675437947088985662044526664679689417265903951514056905709023009293314449107952654388260074151644519621906687786234472260988931984758052185317591979653112197761717108361338246234932503900955453444845357974846904013046030582767272614051598205669082783352752614170035232982462430126795995110139284721889577512878330231670051571998610908420996139380576807887717817367340175369286639397019401969787938209984954631436799289196186319122124404942082485836645297998827817423773149576949287404096662889181055968376487689512575873656414488716955669409414618421279097925417123651002161711611514591605115037801110778512209888497152199889717471279169501961738830005226486142454686770590635041885967282900927383996236497782154328816477227036831058701364835789426927703197019668625033319104421859713473506127097034356034680934355347400866764128439219589721221216088937388925744946667784161585127761282790351091715058534534439195472581245645689652579519333944413395535324758675809440279836665758809111590981685251712409386182318535167522685277343127752801093611634059364097208245227680715215098833949153508581403407312230776420774039965735103525247511602177392661552865619750693674767009070057962741840945034775044400827678090842307452074274238116246146108690738551528082911149024209664747890674034119569658906903918809104633815817103447598732192740297149306021770210685300255067014716956817650634457552800084687428602863214011158081339599928599405821974149051397362445088206564909062750671552136396967790564660419285858142001702034411245198739742198771686717966982746786829286621950231788919645738938810422239390664105775032385793813960563329972422695904355806262577450487390269927376919178901599706835839527010183754128099622199123754512335474279399166109416822531874777222381683753620182131842190567384027401178655230310627765613835422328843281909633122929516495181110814559669868344052293974208586745592680902786522281835665165488037443266233203432078648959191643334694164409995379026157632421481341157137825815706456897879056531726549746976796103464969758706530291048972125416946596798166330117265466398692127477346066364992129436237798329538442483195080984291689669844842680951838308727571476761448292116721323715652626396988114773159431708234206846960464592106920985179573668598199098173268145950287482199254241849788806234235465616167197893959179295885750443772344639436320245978554935620201383152657933078219646133500921529548343065952502523556783213254469779113456553558238371821809585568595582544872194606016427884772147759914324567809858917725811089716793326662654160898047467132157150887533208881376325888376635717945682008899304360754670243968135094605728237323080652007016259676854900868193729833300926071022947330058877396561647933506005986193043661256659839440495754740505405705568450937530123069875666424225370138924872179602981140213332437008969332938859190349724599077768765732266464684727657091692661691418356964525259353365028358723528086549556350723927396070296598753209152778236041769522941950692741562904841383792446004971913992435331251181303409609384565800411744461632714622453828928511297143067255252050796467385035869266472369243958290564865092293686028486146769721076078595934466996339465997557093519597921207827076816995409879911614640971623272552719338389682013366476179136247708678169960726591131586139898306136324479963050199183059153098283060714087070040519738592622959206160988469684201662199820377533427320583861065230852878789088253845744994221995970963251830563755308435782386807372288763905784539814168347930960103304866499288863743004153700337315231595873747923432691989309878990095476398036578308642027837873618236443655316979193565727824039844381560178562893204969303652554638428907453115875796430074943703038519724121153830738318509025992915019746451350760643562196180883385582793024085353228409567072238052441651913682954910858016391729530858147738513373036678659656648432322145818923764156059768346692480603787197041872446061272657441694659143356130917597232444367617205657984158765792159852572867317633501511689668980628509579125071684617873910454546653172173591260117768161140780167117482910702181319222050153995185950750344638347205770969448269084087629218444462959451484153697417310418516460572842537251108176038187519928222642734271601685749325615383544966245928745239608358995950452480051776500933814452120880648203696533236025699582243974963797389220275324254716586771416482131909596395698712011234099499568295822429456195304248574627673156109269122114066235664598735181792031385756890428605783910327999035063242984807768688764215156923904147589055146096922792563923628387250697068201560521863323156543192625118611363681221464633064744802464390926729386245211026187063002456137597265141176707618539785313579860032399732119790763451184620049425836992257885970954810903804335132979522386093394210912948044042070091278183082709458747249776435146186221731428177797724396370556024394372379053844722943789387263021982917387007053224174215102626878182305857315602469291207585638203597525102171908258959687268691722322413172929213738176333829486076347212584530424048095582016076647848793997783085940720267975685059027512428675457677901031120158156717166710364460285300218906061646182920037806083156453137548022117947727008370396551541855736224230743827206511006918763254033179562696508542120640199401125319082896981531723152907256648608714182218624506467818754051676309411770354862020421131895923201616546608073012491894098351504467034380481280013681590059200079559902979596583296061221670607225451397024329432951542752741810519204163025162931162871351276048648597894772425465943305786869005799591875848825967779047139963647332003815769356843753840971834173904244385228843495623524615124067607848534112945745434688629487496284469616768847930462802208244546552100006286497408212602596452316198771506621456771293529242812140657071556550997139614180506146669815169264291122942935921946722857836150037152952859729797957703797229366562626428087435676933194516100076248006478575815196684865587358330089343661314234886304875371100080684825693638594158205270326284407140324418651216758163232553253010797267895290669353744253142250319518206447491554656790426063253231310088219644369144570284322750179786961367794757149332120561146358674896563112115380827986853979525174322048407277198441092133864892604552362014029165126006754141433486081707185860630993134933473889523275237105318417922019450470428972414796952340700472987152239816313269354176919561662798516401031630359796946465993432501821827524156016533118626483221346060050082602141776372951663408026153881042793056119536140806168199428215217441679342082836090334837626687950637596546713878441276615899048879919235667900753609336170440772267061087450065155000034444925089823198932119248340833479697727511214577706469794181112397450930484755962004495956032398135715880399537157369207045882629889108354015860132012712975808904520433968089734476170647465934772383142407423461469143458320729810281626453012219154193291467839137095185666073312362759071707504416413946910597991196652481486281376537165162574859895016695677924173414496828165469343148196281941813818848954029431897233080077193174338482783674839488141918413500614070192064551140423407385068802327840338660828707406668554996014018612761054818225607730135483788832019992408957719831152414978752810005021466782796100499369946720111009577186613214649796823143129772075388271050273957006458261893336208623736083404737045847575684783156613226433616567518677056687641507904946094194915780850601493910539902562842626656148095919898580053762328728661104037296624980799803003045901862674913105265211773842876531890954104500992393428350299521802788849617048930960761959411605575393828034317477529345576696759997003948770074198243014601278833927516415259896498862830424507871021103244317523463899835255814411248133307033657915603751579336920225364226365562143814415083475320746208781420901862719494745978258165332133995442281597131846752865760720219984984122371180585119925851631226044963238450018651392600960216181934751548394518791098826704000955578790227923253338718127614745677555592959325794578734318280990602429476260301303179894025664317148182911020956552042329461346932916307629797654531354770547618378154451437007037726216544674396659641073450694115624453312513095480410776339212784775214647276809595069850224789073231900716685176431673494002723919569068459713388863527024563448339869620476900359249588702379409089279212115335152836969180003970716460048316732757361082619777645333165327122491996554548189953012674234436118793659691350039606371763810835343918461681462713520820690158849938899936149989745701482200788813946483427496216547690188978460636702827530935216055042867563291480596936292697740275819700767277517778330699122811130898254306696765509072046801051750871310489808373252475450831477329237933539040132989304103203131858900542219085986159692716719497208629052645918945596492934037864295590389398293620656619392629726663539295704724402541625192065144281725570800183943553568001644473699460691376708424834941704875408994022433856503276022350900073471937367577212945132367407380506661429082176962974398290780483894441951180555570237446698432650043749592706094706672274435706875687846142735739787735226678530563834081141542420445741142511969275893149640570328285524314861089651861701430257696790197735498273841656501708900336067597487404054259297994253051646236457135538570861721816642048486228110064584019376574735839396203269845770002969008048767548408854780261321323096202762648031538776254177249477283957169563349426989278969117347451778812241486974025198018614149368372231773427867830333851183115423806647713111372916919285134264862586620696838208804580885087207094210055121292591045486231299545572206042632317466865680464403254186857354433722565148196408153203759260307244549564762863879286450361126682634302623107572343736610847689808947509440686378504652647531579737942535428536130990665330651188981374763028280859354399694287044998630957091454237119512156838974145206808507050839150658270620706017575508198468617648179772380975969144086087477648325412455204836414490974586809775222771654577311340486426614785561064037974175289370909900864791384600414200949537028669037132050650203170267892071842472449635576879358714841977525911025429629982495919994492263023963950172135802862850247846704897162974785603572169352298852117475159774961556332289524887089566422859757175556444905169981873984564998424710022168348299219850680953380158547745367211642369426236292540949413889793133588776866338016544170386399741543436586031009271904985964632309346138983257612836462367932108998185840821536067365476709003685684989055555091341432070460525121269879142153012875330961493773420560154979959887790267731759139040636793715596493334480196306080346499350226201695327453568138815816194667691321208586925007928814853709083777604729647159991667097040170699132281980828246401664285682841413758017405621113789888175663161871956481430913788447600568035524231533707545405378900745387023060853109958809681035118011579780437517970922283221203171679502005044815449867879528380561719348471193786226249628044195674401742204110218266728129817760357365188061838542667258767017841345420928574856821099673508119105077523957765691162479904459415917963484073468699172992319398326434118684899381761279397101080870186963979194992699656305797045510615179318977947332848024795082228781212949985170947975508527451169670589152374302925210631108124385258923246740936201689162469123584921382831378426392596925549387048165117770912149755275457918406186949523319715746200526453101174367461279134702787985003190284201519617994193597799812204325605940415654217275105807210819273373122657860625475034171295698003347929604188344501280895306523885887852698966645761871444537812017054336115937530080895592878799940897086514092466464188862902587910302842488401059782324611068602447955821965226185397017991167451227179175796506901435207038466897065516752847004535791450679504625280730830553200218640551181981048354489629639007140724585294044748335112678472239002204533833016190118814794700322448843961077171673525852232950437023677579842147320672497034077643339271466724745407017943639656798989121720282587383520175779395037559571319178552683348809674048923311956425832238701843014333807748889223855551809923705618192964677179969740400221739572283097877608592333086691998298057425836514801483289919650807493498715736671613187892604802614085290187732551105942139671870629346763357464600523403734584656228354938811564836620265291604208309506426013491780657028121784834800119526665208568868062849942698207142828412420116699524790672525422767803534943904733930843628315267141961603137168350427976266731399711640545878451115087551551294499782278217319515361652450338590874953543991542824703724463276243998007331619123289359773454347730494276925809092593877999678573179107062977973978138765843256971260572449688860044426620692178774651747153273994315060649853300385529482027961507815941760862782778917532856527145457451023906756823524427461106412965070282650757829174129747283304553622330723140800622294385544853151377731101978591795922466488992722387062172257135076452814462342064029568959669471382719445920564864382010849029973573027716691606376417688121819206498216294713493278797107268910640684414705826655635417556949941927635519906641969107226489439137307468463979607361880769174081628546237556111262989966838800515845636679808893381310834391339552981277076178174706215514527331305175751474654788267075402171539130161390250000392859378715533129729802923931287229215631578526784073502839252066828270485440135074179661667334471031857300158548747576340999656955527563983412295511268087243372937164891673565947249331115326156325182885880839889731967807012299716256170916746318594795238784088846414579863270623130828370591229622828930771909889355657204935772135888386601676977439813647370760302799292321558025345176097594972826823422520737618202324751680259055820184343611270692432392798872467178546253417853961861894040646021896238246652186436136870217842358338701041526165686736575532372330694547176291333255372112857756299278336553258959135094572105652390470152587328084369562345651935495710622224304866065757650686257881574704924985450780554582816090433963845014665818814974574667339041528369356453197794441262835933636356246355278596941052393653861678610348090683889011955891406345092455152444249151886335960263727059332475510534730849904646013631210997359363081987427220795151070556560227367599468783638029143564609331763605059460517644494067015673050394207575916630437220746526348961171924559479818570340526583611182846288156223263909161033613286732545957351807630891491432567992995851904099496144252601465925194848898607724718375555081799098046463011919592302776843901519011628568762940934324417267963304217274462878197408161593009850990304653318698065821066777424612170037471524205683678662047215036626221213013927414969736049262085938561208147770660304642478596285906157873503353827532984977902312563730508650572756955360999439256330333393375792863412205545424372071220546669946500989711044911447559223604724221306259712543087101074437353369527452791482915828541734698393766683723516797373057416583840814760994459257731600050590278661545910417860747565002124425326730565935659843112003769518017529324530661929850241620627347236433313165184603382772931199096125673165319723503834949587364842985859225074911256126046740423061522908961557313714716089936909004570090733029554626139172092574172764681206407665560835492662543242796204258562241989106011306783495457022091605938695623391964104644417907974023977165583538659783609495612284889422333561975944942145579419277928489206414547079186511492466175452724597570479703547339685284697722636340507686122334207094911397818522933850469177971215473197760267283857343529398302053808978984861323364027507274395303207457808908250559612089355590242775930365787439050590291001535503492421074224427902934572797455858743442565448200361977163919175833234302405737028166151821702629795227503998898876249266902922778833582025358474589135034899785275850965803678814704336542536675510679810784724769985380270519298076767002820381729043774014258018090840167428389637821645137290671465643166877423081241718979729632236333916871067697997764680518819071063432896243830705598962885590809835378382261305153742401956061275656859171796363725024397369251351656522983747170334921735918330275110679654251281955219372661315819267707875503689424875044817789714793512576685626810852185876594037007515752321621248804482090880216025903721972518307665261740979982384314468197787934128042787179270506770298189902837804775148671224754348926258100475992040827042368991408065457201174408981369355912769963630007203009722433777431863153838320833534201899711292673286689227806337982842518293790602566879303562842116967250147278613372090457559561550596689732906019639019207464702331843084540099681955641170624826922984090500954435899084235726213597407112313526419139059506812485279336361268349805898766235848282056489183303756589463986592250349372669756481496500383559075319708521063402423838980803081569773111420843837807488993998475611037204293481482065713587177872570488667129240362952101255227852885567157925959259860957214183841067095181862399899394577708167692131261700567778580320526991928475443633776353534595993944066537647094034303247642892255360216294795038902541958542212419503211533254977984695320755096357682849670451685004906626327394681861976594828537898405605425705352358825751732176125363066631847349938744977404407682056813538502048158259422380797931826331512110813328954443523998497455322954201715563869694111627457902852170010035501732893594915651521328993878173807019169005342875737833063237211872848992631026569794088668341585448836821964442805547292869818256442147656104711271141910477261432220709692468199687846091043654982354161548715498670284704936580473714081901859209445856285675605097046689750533738574750640605406560755834067666457859721487208202396638251830965995564310975468189342459687792796248446843606588013384618011391983518129900898173119437894915933571942245307347874770598136856880250502219225847425986921411784547469947667914705220069985526233309867186434443245330664485479528675351698679023659701340349639009994237741116593003506720459216845404498923335709264041475823783017604196335569522074518001180313237111356182595727760085402972960028307768547717677098264145130690015930976672446742681516933594907793158560604381164039586199682582690286204529347750632890535462463273325896799172896071004486628155286713498644799204910099601549172707531276161662748557719141204529999959217159630742513150698591197499599864295149318311533619698793759924375781621004022809691474831035607980117081281926570850459196195783958109408668854013181522696967955337735035673068948563408131265166384002924134556977325963431000927170500769362652454207540229687391987495857208504639501169169564500280839781458820128794249368859223674771295400086488178993248321799498826497299530135562376663388482961372830452178664887662540747754930968465978567701019304844015117942972812265415007566524871019473435108331253821455744002411509999025628174943661326983443002529209815318704388486452089217405379020751964096029655781295534023570182495848694707148148339629768127494917334864480215052457355009708861703262427995329373790094061598484315343862487008891616850806480815780643538746407957027856082941063545159323153273070906014813922832199072881183799201692730722033351431355861805487523758736283389268079949030511090734220555164896860527128037863791266750857239325094084473717114127644998512871815577619804605523165134893678978336584763451026345774990900575143306618470026865876350724197855367636958563856786932566588566993223553291693148925762954094728643929517246513204411094815411192069917823349352709336096198168914170470293366667555662394618738025031963026518827404873525916309407828388903912792594220613063230390299115020787919352471675117729554177927444303253061066085527477422922190982592377747539051336924506130125621373957108343308318128121023775885264495285732881218469902870041258817511874578779015022544778811916896998000101038041556770691090426525930342151548228878433530228560984134886551953820288285595927622602633983379516247794792961172090220142958890506026849526665772577881709610700736908430976170903987018533591814144726004205741042874009755957203588173420372275731073829347303111709585543889106983360078285750611688198161829650745108548895123744187207422710340907614404641211160790473756527217987978423274430088448247907356107157287270915458792402007255832140106952614179068965612298923586575103747548694404758515764733172353437617408442890196835151436586258438854337384979754206782319977246012716431355504254852934120521739810277916395838415212671872583804942863581462877361627907147699082032887752892156095918523505455452603259921149277205881154774913730893255214037784850117277996575497876519210469428608974832320279692028439885795142325417769043170591806558880093482057460576136485305157577456468308750902341946625962798524301878400203882599823587042769943561245557315094534369429055908259133813115457825960417317320133616500689926564563964483669411699378157532079427788326299987254675075237174843217398284590688670737396967750342251441466076797650312079592280286831933376263450388186478120933177675491944049646771782483655264116185978736016309883555083631511010274568466988017302973935618702599306684715601530054317751085669115570966141651079353594691089105808711904921078235970660649710631827106113279494425112562754229778769977849771752943262194480907105581752659811447295487173039729761932049167076722671755865906067717374186829528555539503579108846312349369200016860461989131756854508060953932966117258991467808178235524823584409300691087162112551952880026830839977570465957930296285583933396986120177778915278060165757378545345790232922022515891455681969254490027844417642265592882385276728589295211308217330524662122331691410792310159222082537663487735538089518034418650064044133602416109007120966285437083653163131347551768229289013928679342851070467453156002610540490891623707059249708272284954406243872304793284770182589369048276086028523161199220072104407693421407558871809052095158599620927842621294531210546796405813625341868242992176384390369838862950818972903996930094422872443669628061354820970648125348230467053975480373990515178945964694081710891875214778564110769001425422275383057258465503737332291466043140045112591221469576854040543418553362400608490342261276896954660937416084665803151960228268224968687883732256183119121085232088633087579445939690270652489930356626548373013565889303456310179346177026065825186099692920669986251912509046923066408567478733526120046211632184194047426455172697805977916640070928223111602238494423246938941995979094423047310518067772742752097048100151434657334478916314623469584521459549339277625154232844488066980576025337271162825010609728771644816559683230957507399439561917433737018897716522945313891892085404571298759764608442790507279798353467668093327160589912054901198260042271457411785933724737325395445757163180291954965406555933388631948714985875670331265916626673119491905342315303280510353936215623352879583763715410209250768668006164271249860946145016090636875592673694739847823697854503213540473307732244255818517549258634361504838449464852645600397798959290010943266844021629650340898111715352177865932917094915692520863777626413778705951808222065236525053439882091008685042105795103162687599855175892093422001655783483155070401959327999590480957986554991545134433450223413243544412656713836739615285260949395310668659045301533455180266052154396416096067832940830939202729035957711411201493086381976604663765103663167201890219049164843516235161555924293790682863942233080060815336916701527715065419755006356898885382806377411896711801951447588885939465054330349228041866637488264843252656311327534537269741364675211194898308727987149509702200453721968497585590077331565943139871308765511607589787977315995193812837880642610977759003301690399048967059520579281998699765879746754883497752770605023744396821270688428395446131202342620129950213849536117777351783098681170736746101463574069192369026233346664771965958832741746225665633396746642895024110965117654440071565978046622734483866694208246174969615993396987632904730472543350982649161335359365183680428644123585345738536116825060384670648225210431861937890537466820185593068475090883873776931419381562093794934520548678553891159520279640501888714594457583368688962765873909360824692168125072760852699752529364905498846546872395684594639388910190275631676603886624844139273928900838829090913802024279914056425895360089794410661167865888542771176908406604738705669165647277730536130113452131779143452421847181760053492588486801847237682329549379537685080011632874030016365285777184435746933866519311579507148962168235718120876767219819822634960790368409293731580227226733580234484012086333307945990441768306158772703679122603670440222414873876807658446565502594572421273923511774903845760554179690728300129755393231359643211561756732233144797417190301199201615012129071673407574258477525456257834307634827525053329990467117280230515581789461134762674218241585700913360306729787009690454858113345141038187215009161307618853185106707456564079636803205295697990916817017773099718974366711749510031948186512995527661823719306578358871213110527225452655545819108720817506210086235525347230254494364121469948973825650228976931440290466367509860148194166557167697023783989245063804097145302153366845229313530936434282058822251067616528960454375399450264541971989488137443461026407726130813181031391943694851338519940059033142361672860399140227161265922555383434673499119173986675226813346577850682264347078257175175778137270490668399627234298561421101131536737925939884683574567723197226110965950691078359248226170149050094081032111549556595197714843926532610517091481015452077987183466955439577227833343892181313098217473821143055077927798824705983787817430202546051786645893498083923067615485867411722765581723771518264664058973872992730029333477030145565058000443626163378708772418655066100947755152299114951944653660056444358457751188875210448414447616199620219185841335157811292598792567112644336131190078691601189945971591631676009194947835627256842344184300893208107015290922436401861469162170399293584583466827732111397188235012363160523262888491975147000540274355125779010834978456295031292575635559967884448319682672043203003723157153865891442277469857501417409151115050899040861133234010458612529237503020685198330395383415949272694834965688329553946466751060304527061399423474409766497639920991929277806034158842916054065428589221919073401371622343689848545000799115383403808599520399398965123542248228544406637963719166337846164624373332401816093018245558329968664982331802199036423356810641948086343103707547369207526730772916417073996836925365078460933256754705070985747415599844170290541562305184030953462124574253441705782068506647463764276015533034809650541116946058719208528916345231416376742624208250786689120138229621164857036089259968908679636996425730142896805880300620164655789404670926529011139964156973557314568975638749270546376863149071729020083260246487499687773878196162287040545903340303354894071441518990845546676533935720601997331777853083145954684106680447267523468367852844112706622444679825831991351205358058502610190372894443481529363809174725687617153736537466964971425147714688382338097244609369273319185640784272043113651862407379733637538896657171948028435928170220990567038350279049301806050000330915496148439306462493226986018402646679163913843597166290643448869651833676827616751117533070119019094293830939879807860518107735218456835069980010756739970158489644189440706255712630450218532271014221509363704616488767480232875609018617579172190415845073946172284821242130622504839524879394276789165175308362461481920419769477131755572037183140069691370324365632302608772501316167771976111288966352309994494417030586016530966280067646430530476116173115593981984525752346318821498460576592310234400114889053912978722787697337229236985944332476958852252156716769492218347449639881029188691929933720984675026086311131737104417454325805582858063658844843126308357483410430340896364979149827646799588658113659403153564281467289802931022396573779751123650384779849600230017010509096395166011219691820766871552273076811317657875995943075401124104694376863714964078328864054851013548690407279828528553746346206226967829902185390657234190114447758835560994671952577094632618210809969181343952604891499614828455444798203580857729879394775027533315951252421566111554751302608330948193754666198202878881788753893233589697244438000896674509177035245259857478878860149621465349459431814010437621702636593829775956903510512626568118897454269341537711132535551685368862859873340439844888359673705024885611262707768450653009500738375771223753847220722754805345648738882154513709692220233969012455592424555568610784530608697485704474106517672837570339360206093382129899757580455616790107352873609442647903311205751322090817814259548909327133579873197728785171685467500259895671924238168213121163571001360040525480280585240644972252038504707594152163323064849864704301431090087572166083853648332983619026164075777697645348925890592404147949261778719829054646215463211723561098029804822188493238278604720404523672953199573145665629435628523977346784933143398272364008865936572805256272579466805975095128609072831269745414382892519903595242659773717770780452104170721240857210214980058956699233580467379079860646930819606903490112769584011842223869653923192480137824280002541277297138332051334091749975581497830619669184288771148732501950083113497287192074839664859653079861646270079594024123547524602984288431767708811596857376803556478290354070968548985455926588470512162058933361363436510038520899023319059273948687838624521269680575720530355148743087512350035847135658719139092014159234893794769672546929625566219793087957668417304488486381325500713088482036618770648319374956701004586537301620522631149984756543901474538068001588508142731478233354009595036858571367580674556138420984189758320601572198880572351754024103026385859503844802461349032070448427415697772298681765261227178665649115234185222562639093208745455442267492789658770626589287578479482820375787827247740839198165356829756358190705029576890649979679623875087343235838763094864812003164571646232717044293643740482982177558149950566217679823217572038206046086854489862593037919372024756648723506506890462204556198023052081303787124770214774086454423308400010508713864130896218245340911556565334446815703820893772403475756393551437821239679817953062979900519005666936709447088470144386578446183689522104546292836509664203227729363754251830451796847529151348409755175211152183993583630481559952241695458750351137429205714296417009282687699182256512346637300876505532466772300606742481530681213832873810667048859902644163373375709597019563046321975843733538039407097800922264578409421388485469077199802516057056198893102964932843728639465412541331148416913850171615019028766695792995847623639000235473741419169505134492814151375614479708056005557376067551889742929522136619148984272732990310820525662400325325433863212059851382857258982838143645863022404492019559651709437196773183531687330733498469406705011374696849985562473423753541380563780120074530709522932604750003043178017142246290831120501505630314975870916337090898675073508712873162682322565160969906244927896147665424078801842353932984315596691445821722004935064432992256167500995753460018216412894718641384074288658721486243184754684417192434001286577714278077824482716613105559249518561163137244651275096567380383277594825590031509022859091108881369652852672107820685844622624435274480211802863128464129182552682551243188350796268130503515613230097502865860690279111525195847894296449409719864101898335764919111552172008849774501523679240496766688938295206128949392698200241847773639900824574790921922260808241181064308749473292675679069837839764896834725800361504002273745122338656280856903231684430132518021657876383687860325542907371616755368822180745597998321137037786687216071656669417097064015768471941655893669133070289440703941514400804851237229090677449888099832455171674989392180488330032704163443986212282491097427498133816664825615311714556440187671657150798212048569115277356201635741999622092553793676357103137533153543107727901924917534421983573006666937917802155054086774396436867316275387805615601568895237195479537616797262204052004326531222363971723599431844215855655203628343824439069478465430254243013746941812739140122683264282892564254289510118921904286008753953774503058006974654531584674130461122922273131458096237860672873459101633076012722506326155546363769832175186226438636984756864033934384025852824496136938778366122359434071358405269322815757463863619272136522505325367031169218574264915686973975389007540653431867618902062382292962933776471663187174475255240404104391626901173014202791099028534159279202238843083410148329734194752045350441740613981392719591709372350110049336677288380791578154414800213559189542761274125071191528396723097698680190416400913945997648907866024092627306085194524318360970077230787624319684260659649051040134941621133144975074012427855054912002981051837544760493177081621108126039818236581900990137026194119669804666863902620991006848371851970724646043052225454192988772433286171833643152524397957484606049863666623467350016334865104067773328235998942851338261072619891561196803368295570655945654731006200754105484470160249313367250176218755958023616054621536287400290984145856995798996634710424447790733800727557817383172872100959812618623470077719558867127613168928125080465478817636815641797045265246544037258846195704424924975025752505764502276307268132205456878950248441378766246163236222768714103829814181464041359950717516065825323050784548197977292745916977455166903559632948271556674826445900796032328978440720165663280497902749176030467682649448001823218929552231855381010053338327504912839867185417593527352489904913888783131888458540000977186786758054381448526022818102624946262840800988689433776978899567649117254435025636203865240548488887560350320735739801188032171786606282829614551050723137977813439812569597869354978740983707815404812135465192420234503334512389954331560564327640383008182681422556192978927914565812617443555191611077897055487059003144612794158049439803480174631011025338992397862534160029521410587871414396418440017046783942044828349498005742940899039679114762795344808443693100440401014957699854598604637624060366629504818407997496147249734595359197795580762583376913609233995321153395037796200556695858091809866534564179018394272732806464671480621779892295156045248936245268091067478929546219679875022054810088686175899910761680516366525665021769253255888158154668571287338469138201245916463420679738264729694915103531960819317514266589869048350237126993029816355958891531997051847122669583850851043268296600452904830017710536058640740149235119912979839118577363794872569719452579290184030893571269673650788535153425399580814214164796487484603139943439908521219941508166030592259525712189728505186558587070548198924958905155954844992758754966543051077803747495012245208196724187769346850934424371887289039652269159715741905736510267636011957212700645535478416611317191395601048417016902034500276776307105755108623319348826350024429468119251904151430802888837737506682156963708849453311731868606784172023737729593144986130619718542995922699304282687073193543200899718381772132616360549039738972413042169832663032419809172299728029356317419583504590085432295133628083412804367404622954027783926482792139318981155687327370057077424627210843320230262103947828695926872121484153340669091981708731345296962524810135955641070921020363323470520854313216264593902638440517744597391956439838463917264825561541768923858682492659187528362791184586936503657882894713144426139467989852754635809846048494980833179425673314565822503524393668903718503281153267363175590674834408101482967290725631607804765393171012493449193771930219321477950865820387663779783181710775455640919103729500119773854267463765012257477312890243247988313973356896044282389251474373534037841328941967494220503655317314651911805313591135474741848625288492749817285544936092251688460478845194470706388082577090668797343077619170304788511699900703322949431774000764155289250536043579155260988981417455682994811020987466618493465489716004453318757567909991942384200483058827668237771729028739817657662567344712779735777156386974086855187826369789735450785664018917655687711340211680150366470818727554534451789699493795522464476219275364319978737272051192659517780169780487713583658353943756501315965381125383998370462754189767361209380504233955569749360031489595525843336459153239164919825561248751321698106852507913895063168988907963094366691827110301512813987493687372122408287977680946289527640891545235260646469641522056514813199310513957292376771041969012000452013187167732722075762780470646553896301691731422968721011311533773418249961236001321739110074848446074435944718350244707751885123270639955224551648650798207457435319709048914986880499906180883378135844149755988037616265982634715994315489447422899124834752842349226868409372472180203175730095244888332519697194345237853181428076743880550735351493347740099369940278667581606432624922170080482382619275659898166362728113589715532418197814579273376019835838453785223133208342536190873925192751714690097073770011990096733600176255715205072596882821075843779704933315172432868871581609743484069666731499326253329242895775006010252506564294152283815452951602419023491022313585979988694028429649976950089130917772020216040067234496835843500613669050501971855715504631337082080778075380036640839785052278019228965963094743151942267886502117962803344870108221463885819882599595556493100976686090387979585325760698669887970811138683173121386369623387257635406244560496403932733222937375789286457365272135351449676216161569745210227592388509126879535771753835021428028012827254784065785021467725565579512674873645615399668931855086339771556414174964509921078608305430513838090836229395948196717568322064614669846487552427603662887197035465516225016240610554611421468307132079462739194504395169832706649724319214110255292862081758464678186798465860886748775228948664599332090998030318249342938021142413113429626169713112546576011300974381818080366834099182105565992018220973173550582816781487783567651871037180010002640522917442102127921377909561613036037100200338232087440594526529091675144778678852418738612555841568774098890806693423774298546471481506894212788549392247989835142788846473638060036466752981533599343544520732951708305077313260247764932794911212118001993720696578126299169130796813292702446098539980634348456389263914898043500633393393620104515046551943053713998516345462760270222683154086816220114576385461958490465866432253314501453202815754333056798101308268109505677137444300839096288326377445278299077028804167601177817961851489753152385045090086088949055728768774136439680554884744843775853214323941821210713121367881905258456092235910465938215087096970426755454727475078700532122854778609257902635662456299264552411466958081823954657254028189556464855771809473016338084466764803211640422932922647743780474318450928661848689534104772245517735066683347117071742391122073906908451576137148851617754793399775059584230841848566552067633441273730031871452272347347426014705149094738718182930298322069240560738593062286854284784890778975772508085174453238138406477849650218049507182669550222136904561828210758224730224660585470819961997851250718229019054939967188351408644667883203737103219305004799158159289392356787352572146714585716255619033860922818259231062670437371141851704741476378456139823711045025747836575601356586248748884063346027539048697791874335381262753925199658707003509462542698687990746126503366316170083441109818391265816992218062196080382915553920697830682178760186445148352051466087414118337153344123325379944169892140895663375133303985999868176559728722133585586272506676633371510255532780325532867249335069114462278405662441185756008106348608552907077470712867543688508584887975871664492067095292876716048494944945084933924453861229755652900624087442711919099604174986024859290122037808687043391334293567369266611509234107757470362294040111188380800550940284404971876622253933838201419789756918183597116961079132789693556980298451949653762150541234069113998584064899013617184817582735258328298137676957196430867462147221561036153210872205623567840846891177200866397201258087218108604131517210844537188691060610391916954113709815925571912796725507239847631130374062690172194508576230684272597589688424836816720485956276929055223597549269855119033746260242978356641079245373628649674685702170284309951374593527904847418365705443663001733673331607078352979439960630391318654270275443264900286629130685087140245697963131072402714148736334583674914229079757472068641938402454976667524551144966451494065959397329989261684425596954564764967921343642223727525206121968699946546319020511431875175306275724702923900186666925920927939687043714264495894368316174860328390226979084304388325652042228945638700202958702937060576139082856592690689066521119639149915247275461663935506551696108558910055053580294771719085499931991613692875560799806077404214282481095485965633092575928106919452655290992280032955084915254992206217910131089388067405668373391794550304790586829394176891274114845533902060531801776014305146106511383317244372824544131874202077945911169763217156155347775629346614524044485971437928661855288283981775426433330996825039905455509941815973808378728965939440563026433868539550867037426728846820125492103832772190690166706669597102345818022564040742942824823580474683965741206457640032165537483488612504625053191483401124225465864797613632273333958714232732000632838743019951448653012480610172747267817893755802818242568052605930038309571003930187567686092673603127841683979968097100315839733118096293552140145798163877976446695095604559577611360470190965332153357175425229179007478855814586431044904074154316569310935204381887488201875430487315157269716504371310331456678912835029494237369417691923599118710000872725041314080752146108758750147912311774269127803935972904334073129018173813681417320365228998168328987940013630608676381616492749622414589119306176591713921804860466210460750138024766509542676362017020691505220440979877917748043960433255896115405853787222522021905607311100489867582536330969155465725370369169009300633021332346955992709255689950778902575519818476456372254350143949135980983592137145814015315511617271897891773731496570672743003296296541737631088195607481709831953077934140555547150802616336673055797032827019639403760208690845487282237666343341799441206994774920042744277605157318182858545227458742618917061127290185187071565622161990293985664716203282098170388512077132528423013974070100891563813386212522677141433073107665879063894259957226655784401133213214161709541515411961994691984883178567130424915714170080095411033822728112309846289450570678964794270940553686572759015225122156248259704110047132633328484217128108051901659100011436463599425552112863616832487414500457768510646350605388813466699191103190171714222962286673911043509664314408230594710929433907046392565459678743744598541385705830668828309513445326496916775136908931524636159332791544878010625683811391832445332172337557727486233123757818578225363103478942200616450325543174072042636348453862344015216722264242899785747778739802899911894446374155208799586330083021902033245177948961703425340142265081433666171423155506954527536851323308843003405772894167446451188541567247975974623604412453066398304751368318840495562766053496190373714462128520159721000134761767914207381454503069017526405646176155230761646531132523975637632432676025392913955474907055547327736781620077627780693061784794326123861902402350386831881036363130625643031788264254775790337750673639799913679395152047595599946265280828250652883325638054659814378260369189535159229965420595266591090233706783554476002952345532678910854919472584518595886834635340014101952470404106838334640762244412213169380625966485228699329841589933759606758592275821930895760302132904756939157855412443245897566939519955393481498606575292839404057811510624710956251021879552298935661929747112040790027694691674763354581159204328811255682546071960660215807236487135717121258430542947151537693587616932348243501510950180279275091488635117071089686857310948729080017303502699113516156466540938762953844879836085010234212560373592987278075820114051827526588919293859074575991582739878553609891090438494011763874605127175265949992012346601913760718323275651510674927594752954424456191725082859405329662393121338018465285690592945362482411725341199222861028779638460112008655343070874846186043454102296715835610982985992898916007169844269213441895829849794510983332060625322519524332219904811416534007669189326984289128031136180642805360488589640011636059730154907572386828702789672667022575091352388097869120608566301286088190332433706331338819969112350415397781248196136022022439737702769951743546091231027649438346528353536611077921472524804533383705232642361274730461937061969658823663108765601809212446858897643364812888087115410154704518464337061004987932087998923412721860847477668039919466023889088327530021654760963963461286365383701779665691285905251972402241567053739088523635422965599211691966051949230346564485428755331461186203286240552052580261479609220076771892610813150551745349844131230663131361744886958659306283561213999887321041994365754607464066982933071097077249902066559132478666748779489332212234649611944857717304321085937059343745482247096854006169565157192252675543759390821798272650311323280416347630099954035954868042326250887322674296632898584017552717664240667625693684601224161808514408285117155889400679077871978362657099257607031512458049046316234209670062958692821517454431132733574083963641499641968124284064366872201391327625762940949474928086424498897104875747496097372274077980419054484027799738780951231118893569593048076094813817259974893803627684635472237732161578600619772822312607619373867414579074364523066081355539831079795781139494554188629474625580902752286974629395987937734886995173695697313077867473924626033169009101938683549428559557618590437878670246264536976496082870606642470605025560070565931833633675561365117015712011373520146918021379872527638337732850131377159293546221513058117110392011656127872468467042989999478375465217496828504624897917599797044446572496512091377479968171840057439369762383545481133172299613161257328943623210086673438690063439469469249862017995121304861755991463188421588362222021844773746344960913219848177992492510493848011233720876167173161082865237035241968926861602704032957440832772398621015134470542863759712770906282735583221074134628426851702177183603578232345068576372715485544414254696318023553867064941629444652235641562013617886707444657174314323353480104756288206809622305200320565468746190664553743906506464697103841137215978658368565988253350781323978752682321881464381621903813552844590845301819536232297163069205982138664830874274149022595666817269583701833736985027816728458654679448033716918536790033122341871409595022581465758688810377180139774793427959865814147262355338931767434770682867291449695374003559164900264568221889191409107941813621022182038209636609500203477983644104367726796507239623681466888578071707084001095801558386543108986833630008471462017067309571167476579359617448058454281844940024889952018999707508065122327457234315986583477680597365107328481273563505804425437318996791453026723875643993113119937725543221995908768216864490677183372685727237372997736385201076154921092071873930079481661104697854472580224396105936977921554923159278853606535953135967659098520164068384147294967698625045624361850777584843591455264416008335282717738807239837912725624517922946794997742250892951486092086812293475765684400683823259611310740979525263789162020597923868044088338333968161123327946494158720446793321864082649565050421786223755483200973368088373904218109728910491926224465085240649020752998210235540346905252705288366928786896169436176311378637317205687222841281819692819582178904559397794005859732953248718079857534039709391262886819494753842512106879890544912485644466986808761447740451508541732479774986539999565007313500704312067936473841738991792141435875474442478775421721994917790803137461401889079783147152542290536710456864338076349494409323251148945819009710492046262246564922743307317769165182261334983029990295176997228327748353739996811066365972669218842903693802814870732234834943619827182058199621053688250872658223195439546106142465247180599441375049851276742480107370500795449605663827198648928950533552804380697848780764907854261626572916967262347733079714957682091648238567386114484852306333391695921450260018102117615082686607684206135740023393631996173365628550212396900443200022538342761754112649448223703985512428632132036995674518101841075359274236193451839965871308119849811171984819023507247311161621778983807703320600884515660299714737927925865916607079420831604926113097487470894914974198701394712128632353359141383559226872300279211468402761015866821242093324720043395146770570317431812962492952942941941002058618272015791666859642757903516259278493048268112204287955975751966562858069317864519135220612444191842259796618528789312240611575901761133409203061783432605567557730384858718833171263929325677406807654303230102256424389858427858777721543256027041549373589133927171200294127563744635045652055007584135539618870414389112233432908215974137167260145347532764237556028184345932650220153626299729302684274881914943169174628287328935125606175560346150003588241467432484226269658321192739593796689373916441321241577532165718270102685337180867200380325173420999070922415325530237551056023003390217550945235386305520217437309903401037415742153507021664958985372960037319115716158296012832964498107786827290697340757361968677463114518420203808412130998810497922318600457405403833558599877375667125632915237682406279609493240096403202952401659590565579914988800797609670766680475924594381590293452718330394446492628650186971497137260282700310746678967740179448446359566255387156603980056683915917684839083249675862141225296811960593912853124471726976896116881316861371865178455782856928344202743648186087455919600207193894809807740864682623128403005165796345969963322110545995421562188285285162653918708646874718879546649813856702370572156632585173997555300963690831101626517758573296128355317317369601171793382048152900819229130577807375248868639552782035239348321983431089319953786550602713914081538397075551359999622241743872138215221073117040611970636953000362970164426341430962435786479919783147095041871240025839911471955169075832429131410670048544482567763684059747457285028656289042672343039394746087770565236388440968703723875118927276956950769791266954886448505085082373549331240648771975784013201117510674274494094330325532775386122883736756910840331789322609335138355411552216178172078052292520656598189303414762475828461307870191053439078612138031400044335612026816267489462186882461165352477976187286769826569152900779848164222547280549443958405642096350516699278033552232317861707940953425059367638195444848947649169033579404407475100356266572520479137497866285912070630513641694679474132495155072784257911658721154408659641852312006779966056082645596226280918962107668325684714168964128454986215505306750661361925268876879125119961811307580696376988723130965703666815907338019725730295246546099895435279114271177639196301339587444256560116846259590446130679563160715307209061899546761503102348244858912343774547064124312508156924050506945409249019242085450348943990441024928376604996408341453208398600780168008227326378028868561049477562029887703957629848458599148799692795901233436063991055915684234650229053536218031669407342703989056776891149097243122896845037272464064606814264704706987729306745273193194129818234305888611178886375477562014931696938850384444459896212282886905380517846116240639147439821015970464935295584665194312245691953967208660073896697472273432457698905371738276939325517607213346901486489994427320847407348354689072497558188726954917469374363284589397769525455922692403658894817683216066768706790827861396943781647308918855490274988326590285709025997504435790919246606603033301011921892015027255132445011829920827468870830956013552716358208028557734824275421598285367267174422407250038961661685515637101798406374920450501333756844680447034850763461121754448157497182962385773286100128487413201980522068017619769076923749103589090604491929415894713661085039010951067320873239499063775898837631615452744687515474487442106683671673820345322336977636649139528701040741985514998242486426061489873003589654373748227896227115060543764701640292749902703980535653315074249209110308845912512494905119805270109926050664434443096851305023059043819902390149156286489842367996332404612533448076578318348102951939165395201715974780338467912759402885362128989103211625234820637228711870107029641563809413211503823803543940599148474952122843790305749268905463671316190142591004569098936827744715481920369531710416938069930794284580310370775677050740089293627826388956221373282984770643302327413471250413329746596303171368796463533430654049564366028366820428484884477067727004192940652380271638856793426253170341839276739918583222729707013793731316060411140832550403232871832406229934482596060985257282249527667558522394178964471457024590396482869168706701468302386416741610768999777358508095094360833461734263310612174480267745655555744952088328207184363333506696715066739570115441880700997147105772361726808085247657897105338391901773404857486993764188169656945046072472858630104865575350100656749364440784059843727085662593185768548376410652821396937040470544128734195093720458953227118904569902305372108894367579953159589925409160692128735419749838312297751707614835285285115536759891561683993949285861428624893684378256969837077202073691598114306283685991803429541021906458931394117559087402219577563270181136849742943657391883160762105466934276718878550763497819720933217883038352711814454330557802630727922756485738435535354402528506937104633494631348165962479256764063716694206852751141065617546115361979835898779356395267658781236469683216072336595554387574940223188937965044113758214827719151516893703363681488261631147445526009769039124662876441201197400284733055963550081991925163235450568537031027021342323301229437838051173654166495763799620953038269394814967527924580201287433235545651861735161231043435579322953631127254922695064590801036612120034903241952162284990875838609882677412822337167282148324766941005163771188723234758108026853860404274128517630825586089759455360918695415034207800933645514592084358086819766148375833027907380144290507898415463794329728833503489658959967868590693103353506345522956225329700736595230915746647002455963749300349216759095094076046550936498742405974187870003648151302730385782391119566652702130639879168084301854187807291050877983868661868883714195554470598120983145705021291554228121440450658023586368452087967250804631605941538487000997450608534495118107907856463901035115021456604544141180493337922993630092534810756557764249248461583166473470465054430507437031511401482123284513388298953651951365835609273311253739797587883295707480724222307502153463699738876458036761299043432933554247127018078711637233850846382784737379540947704802922196162740389082443716774544666166278475717197032990279256421977588269817102168297145613270322381434067321324967806539652006082114388491667111436832502224994247397552095247816720503175309665903952112757008093406633168757575646532130684797833898352138985464078730897702159693704732244245305904676704338670424395320626123252019062279012707136249218922578637082930465334334645971159961011243436961152702752817575711389901290391503277808881140536911637005784994851541774398429512674057058850970396895009212932643342079521838718353351296743321408865107247719473915164610294908327825937052120979512088373372957018375744461559024559261370889168602680869764717122994180642796275308123369882044736607619928187711081124032756886152848711518852592480423897196099015818344433832407412518931190082638074633250214938057284210875672929002453282663987330393678891767431320454950364953986035741030793860944918661586299553769056628204215643531892247608064341994122554932779600036392467516710991667226609143538519917426651579007613766633433825367720390911170220241744312554071881127405971578598507528736730935623963344870795693191827690065310626732094008454362134623602332256729103147895655748849445900186631277466371095274330893494605329401163745628246285585694956020490300815249286262560763653275298886652694261598988411817372178708008944356038365207307190929440162266896087580770001805792468737293741388360894363536373814065679263969270156417379640139411105928822845798799057417344249557427335715808411378059400168611151147260594516649839292480617047789058467816788838176116033536246970297478359503769871226475557836494619174778369537276560815114914260948594779877207013634627955320629598772479551284067089585942250444979026860015571819290469239735679431182923143902964526934565134691923080844418733533452405762774297782483011761944718134534618145083775300785995238046447278475275380856801025351827397120120780792015782110637201641089488251089626515736452386612382816901250445132069765829820026342137037781974106215686019318548708760272096797855186334393896210456559125655025582197455319377097894579497694271376353113773681031680724579074955821330968714309123254950566751110068867839945594206183765371833369210450174298030494984074442475123348190803164570572450340198649018268539597240303964005417188590075904458039096848473881622166294705311251751435693651480660396594249722775472168639446785629526006787978825194527269871110130047614570549477893552980780715855254553247793332770449386638018350932771073476146637082902629220244267447346405286428778332489562404048703243644222929160102562793883833748550003233991666580803741378928231669444839482045127326041170340307035820159389305751584061663353567468735651415385333497969380817719479612126708314351387951894642027426005830169276018080367571006345138702699161398534394461008358749434813770841355602599884672688440625361336361249153106648283492479623712180338246761661577422051841462350223694871973965665339221001707615105934070165442348762794188581713651254535894913074063643503849380484249311794730110595739814556615599100896535030423009591493884997895651150116794712178553748861831882616722847674851570349436976970845216053201576306828083047245222499510457842307766709064835374236268938237960163762956173085410367902649818894878617094303118400249048577799178657552756316711969700630733117590918715638848792075843804431298211393007987469002267839939195167182937370724441894759302436851202303339594887042175412917535924802073599172572481975853157467571383470506811983809682608010778903156494488952614103159310799083614194547679432701868240586492823498106646760438811714623215808468684074723528042269275340733172944264597356426121584941318889442905109641674259066742209115458880216414173732027579561015483257054902542228963875642496333113405225275050019045185576858305031327384548892085662876285673843723149706318753376577703584686993329788866281862346822354632149711171468068983845814490267860296396957182159439419476102497420711347838232537450889873788860150119791041742927996930051582239184892165337136993964509252282653513443721715117522755145971823429542862493196227051394217937953372621282968461609338684752131740530728567242888500103001834233800574361680614487948398072266090050581046153353949637922683951453509043664023533204759811815917504845014175143776536986600968560132651782831804425067883634599651072272059787118190354872516479728359419227935243100372250245135789540355283192271578342977535941269053289702350537260017223846955002958337638018394113438968519587745581296385479158206862136515282838122619760852012599990415115136626196350586075484174672441638075364759137318815303210527828191358803759790453018889270140106262831789592222701520609187117184360414972198845357064365289056731241187040360664197159420940106254792711682863777593465329721069021596460044813972700560089505388548094002662150214520029573630334978740335998611989570227529035450992703072956208227679851586494811063099571528031155919085634645327271001984197309927940526329980943546950926762392735537793622084409564637151880444438311710295989685555042163187022885083820741874855590403656948487838165411954318162481110821239327945396842882491481556051913329326395198384919245721485298384562467532836518110929193479632128372325131862257189238602227005701828407971118220646728349516451015050375290809156344535838543526158249979906223442989247671998542642950573340389563555949378632094103285957099314070841928182594114721939854012085545957502448127486760411120446047781430165843760742919645709303029901759331436834677507727379691005870644824319546021441811857891287572218003649795136629509267771740541660966363510752255640510636889507007804609331580747040036334810238997870324549290554352508029915608443993310073859503318887258999466437221320234413839354744630402439683878718395743547941855167333654127439137324060332984311901163233759623648892142636852326762760313789902126622607417415160374688433963399854720507848261245027806936513471823581819509242368461992973355120956226841568249841932428090891988228154667735612416494365507354237769064801656384981049139613563336616487225205870594529429998285754907044832478514631543394179618105851646376850841379486177797271971853737095150588608778385160967119945256492273171905931468319319463446428458298697981119161230443988477559306936396561520186536050711695127748208493484386804649423580845381859616696581700822209621480531050701742271386475309536949854384543293463021047928001306816699096329843372594712143577913292229528244506347478390414995673511346992628424610244265940608797105072264669777652506750786489047205732361486163016889143667429149276040183410723304032227512126739694408213988474400272666641109639094895326453468412599335218575533919560962471818919771820988128415269111997977512055161078255096380929844450248178917102090952269977499944874580050845155047037373208293317749648349298032110701505491843426646101974583683220310656062711909959327590027833400431082811443795617697563920162963819868619488992895468257704658367993331035773117499107443206630702829057532003504305380652619571479145362598722293372063103719701223389632033748833683353585990887471864743787878366268642776358891813251221984825399670137209050980062311977496853611655539276904503012780864952381539921271293674129757993882219134555237680384259101075700897408138633935494922153986841739007200868573685011905751544472323687941344040636183292451811513949038878407196866654745426259895072802648540382885916535155266666594129768196274527033787788085563383222682660999488266695790102639907542890653638301297994322144057936015492365286559757042898190565049679454822155212468548538754943157619316173373532471144250865443163291912212286031161484048389432513420257780895831880639642930294313687019390486902990462235416895698602180036617415664829316963413352183217455654751288116648683375519240609144475384186655434491877190742208894347853337205023278325360204377828963352299615304248624214832764291895172681258623289960023712141708021930602174828352057538917863123618969017049482414855005804653202328333653898925928716460790317867409881648404631649002681336062243001601540974095914150271297464739939023051905856304375155190201398186898252584485387861204143660427467417774421068265002912748837365263364983308649235029460908323546988912781316993955504403411357603230225191807321959722158867344094730023620794535321930626963903463861059363265515159173787094718481106723814230132928236739292235133719660394115295815601214491256101167532166733446653064916584013810659434919621700576723992147122875961271034467601325252710117457018447633057795597371981788296257483955868166884600341193454344627199038995790709097626175885868180851980238627321182784104533462591243968812259686196292237034822884764202089083061617076633701541294238163691090662409789680595506434807368556017055385251402539480580012856402972818346825669243443579293113443620730760213740373453906881187539798031428955603358063289198984412266161767071817393085774579573679368749677909067390859726337030610198625057570188161113942962172278441344353266161323115788278490382062999049575913861276343961286123652508860208094610650486130867470649440731956357520639841893150053365459730651769109551060417817007250049342888309607311292784858522327163753663954157979217434903703267286706597780807612080008696444651760613030467572565429697827362629221637782830099460433970240015950050483957757987565931199562491122563595008816079882228206075154142489568905634924808425608488981571946004177511949309151477000386716053434577637524963437497070165205108830475345383782147117719769723678235088849897622678175716795153565217447598187064331832506428781138206597878473640303052730491170325812692222364436634490437108580913475680594140350961261998108091142553497027710394125152151613744461801718119648189517902180368309625187040857917464559260843545842219491647415019223351713669838939180552238129507191368767083818008541819671711563146771105702478672821664776575948731284234311976324644808217081216966172124893475936914531885581934330271467158739048158532249415847947126428405272738967808640204555337805456643567911771066852962857282578791008359302168209619566548466910518445472474854136023154816872597773375735507295090111414553817761683831562802118503380134091406371159350621385872608929162498657501946297001143081065145179956450191669954953338534669461292854374165439175733616814425043198263264408293570717695671882592293473142330770376214208768610792056824010108329686642340199131745362514401371214932866396737315870080787858472958720903795925761041981355154684411094508766311620492744044784706979019358994771508532219587422689018830463021387504943403415808427652231833457183976396324586727115672420467736830476377217258282523071198346611494127066534818173583325850853300601972325658562967531004935277521108785376936178682571954157395700600128101052268706882384259245897031209837954072686766272173011230238247599747585046764003483647747417583475443364101897998141426689281189511954892237051512848521448191593582146046753144422924452627078858352964473950252357248608125589413176996091358539148401176963672318486411097342973997500825012354411555633761615428832284881309877117919893822473380456214639821774295356012093098499668070583889129132823404706599808188689324523804096850052299194446903243363865807555766627843282369190904069690362635468271289292290854939147726727947117505348926641971480425684899869443923392973122634295088559505510184669714817095367386258053356132182148555570702621463734529720939436716647091017070063176649434779282122078901088745031978788354101072317938929157483599953142250662312498669721237698511885261384984947875971088739112868347203600843522959110591483796972263239716028080801166630528377894440830279864238159003200021664288702225909936370977979583814186543262677049368233931460794279320433390745512093054190246780753909783561660803771948454626211924511408372597784796445542813881149054530647106711071949199339496755518479698471723153925220077177711144587871196957465808843305737346470695192040628799037551596903589875786237086288211684708620681876437197713080895352821536297983449607169818529532532689602356285689229186237796259249850416257878154850501425440755802176559638145922022697453258611053629636519139577176026137453655837164352055825599159860257078280991976125308965489242479436214802984315257855989503695858912256814949769152480406499546908773968911006405839946712365329295920038095565918183477964366039670666693493319467322791411125144945355737654546916511062426285233613758588181216342565461419057902602889653086027205397018265076517119353502731224004999552189289136822352938087342261795878199485896725155645349240645572509636646474884560036398766091120906408531308022832413643304518587012069306249912758953330017748109968489685440521108302099814734027868112271199225798906863354454718625748385971493818220526465309926607969945720517257166244469469245424943668397862743978819052545120655799179153319758490552666672655036322842713158765274507353275160359938201048222149556250266492694268564523932619141816314563693226808665606386391565559755108272119980016681366340401666238844407882067874796450061113477331491638451317171481506714649023168357812282025429197681979005144457261547364266771011392887166720905172160553945349958321946891352139686320187707837424771406551502417354263759979894506387630345437405325996087431775986782052119716641041112739177372447705244134274138514392260836826425346579578742539055897348936901983695468724703063154382618344910488841353717829466038711455863799802346687848715515558385123209066682712249916819502441296805964477354216841946174955937253057339438360693509098214113525812072462607098047413413282135970234369506501130476456353975466747485409354362049031342635286671404867934323551251646623482706171281111961630897393850314493397974578954529659676492815057538457110994991194109585408497498703612117144054969301140164952107171062114307302385262213320481518703754314481245527361156808777876393656514569685649549260006308656103976186439101879355148930281532530489497000503298534609771993217972372214792473066855604531546192353646940849770918671476886942323411532768174397907660934927390823061174590436726154824922423053282432305244705093495927246152376221500717970934736028447091232262195199420041229142410948334066599584698193540076351551641879351012975535147187546606268228108103612300266975681182860865887666260232589164095981059151684181648271976133262644718514984920164635343507902982737273167936663171825538580788505844463729608420616634211690847640170212289791402560204957124699251417022451087534755597160433081687678280397635650456362877862894462145994547834543340939722620320511955807691671539256604122634669851063799148045820649440383983200433245874585829597318703397156754637323041423265582054697147510964664610328188476265242876624780907051554720021489693059211874840998773506552382709372497851949397324163773033086562604889842826063896776752770688341694818197059388986530107981840021177349559339448445005312905749639643493968783843388844608365100535528636657192342385070553286320854814640532487869471051992536565404418592702291611538417344443366607125989906470570530667952668489466181246435605651256924598678512427992577319656288771070085290598133201571080088990137794777197894410505677567168413629127015349105076307517787290124710727252358723198397869451636729949257132766651652426270775764070763525299491118585909056290185548394943872768610090926920427216208400482042078316573303207561211748672604665147009012462041693024390972839327514061257376670301847233403403309209002533691797006455195322497281146759481133668464367972935151960163700168103310097801348107775368375459946701169459943367473481903540658859982329951482133760467291548043886706779196111827843010720954126453842613059596424334053745777406409238843175214634813296090960110302495554351781495430189230468121484493239765238245911187601477661716653747463339464101236045174368888924292260026980507436419668827718537846001005810843497018077380901726813767027858260642017269954058128879469823346189307610777499820430149670866696086316517292753613895785610683166168299541071737671419471344729900503537152713945512607477519018292429447904341485106279005491156155791147960401341834107062276240305113524779939415103668865054221127082281895205392832285682714971220222227370559946536612847325843650502006654470025696880315114713417937984634800907667695945454170801336680572429701269546959421919862398222088109438974390851636981716100930685566158176116444007984541312082222570016195553793147605281880687030038444454049005296380925561916277519244210066071827106770159645529061453428273935331528780898779363270074353073807208702258946029770959821827799247432376057836510982209986273604663107410772335423645119915065694210314214274051640550249043938540937229928124203373891886926279952005168840449634874380567472410306980132521786252006038912036497686241711748552660434856711436961137755008278588525020471056383855398451281463435887157868531455646863609336495789989023449563847447023975249529183175635185984119106718046572937340224589251498768935002767885969669372058512344837378785122653643508778580765011221028250270461366610435041003880848225460380969551699570459835063312808431161960150830674221014861689825084806674755996890741669346399768427335934553752242126819797268394473755088652818859280259467125850503926903446030580834089866482546706788022723810106930025323209087061984290894154491821295331306743334519357082560534484471584012105673037389188776781326015836726837148893233600763615577022875012276706888070173359603442138800446789880060382314556132284149708726501050429685240768609437459622077907700744711737330865233108519224895634611698037487810466110752395272555753516519801150623020242480246857308667252235837089966660704964576880361773412177139095612519232114796621204712645894033812675181917158106911879882394447872931158904776925150405704979806120679429263017911050052905437165018456383160068234871666346469956222779352426404142174355304044639293819255525660527618929920487821839939336070788038022406063050105118985611356426193101703223872994678055647384116546529685051581933530943664219846930750112251279409013950229576445835532097994819547378272364327673713403456466277879010918156124607849223870062921593969939323499877759313121659181903442477868846633012078861310497008180895486924050620543008904877435522942477789163381921928332900333685046368660702296010936930975984516577603127714653700944128944424226523453496367392578982096753933861779304147911409221111681735410610893375522318127614993297238684553773674010024914067790171490008176213959329791762283234904613091882354351826928566089320107070516348406064160687340430856291935913168008094828380553396120053783233341700474858223373666218484663128789035710470945278871978871645709294989264482782594225849361239589121218710228018271359478748140085686081972389320101696638332576502760086027930982700539928439299980292885923739297675946542625094384364528928644355128596471370465760408603397071170056268692166707365903294804247252329285469526336832064867667128196260878286676002697859044436760959946436044749185321527424687980903715114003911815690669790999733653380227492955970782589266009873890408668774844335174262024604322644554945713518630199580345548545337515712406312121017429782038069000059955811417471169507043640233699871389919545048491670846551186145128850324999180262532488682420340019172590697281611319853733364885325253763666435034335502959822124213417571752192212847298192239601409629330291904297545504956611074670664175775242181066143380299287915015683434736863949567380363848382192632893044477432912346524445680035778983787643032038632362852096187634722112950458473293884165834166570498847749627278994874363978023574070268985280388677192244026678882323501692253793990645245419842086053247797245144800679264207816500279522816552285349142428858458096271284539741756934243989733037136527372750121285396570758448524675287970058456642886122701758364918401170206186262967096619135801793361225721058771300740891280829803061674932021596883952329953136649287033676974319041319584588842223954817365411108636929898697956720127221820792502512982776229956427464621896252947848971885344647362288311451744790028857365829008335595696998238571315662367953175257197508374530851496401982473598554354711090355420516478751129667771429952424812411295765879658095109806555804855536472449466953181051736585812667066207857067090900746502787436320198849123265702001927260691116752023824415185464770428746111029255556888614443918017364694458363549847578606217584047068795025431444019825817040764890843902549470546724506386769625708685528311221453400797902284799375742133335490000629653110182156376142972404124302670273274969124456815384692205829265903875363692180613663278838007130077779386226016999368338604876358094673301315902873317222323495308982327088479924815557936958535202208612439125945245998196260428190608426434799720697066601836623810924454219840839194053920738670531929769158823257681783470499084937457211881676357822134393352477529266563968979662386726576494944641452388306627591331210141330217379976254482229069886679541556896170552973413057424868810015823723191270582520086932194248157819023706490451920443289473506884379219956482865617435072831973278260600491348471554334217865179318348663576232855472680588480913787293798770638707371643605720495103881080722876415720199750789821371773657534703040951212208618311335084737471745789673222569504739591027534767216479681318575660494455968470923838549016301077335330493680741681088472083021028824602289609392967725570245399072155644512833387299137477121879832533939994210120356784682037349840812077343235178270351435354333159492182958049105253176954644616737506069513078081452594502402322553327172607636469415459500789149642738208149381521164564950874460008919911312139484896282853753764622320618178311963676654276671812818187460124477555995695221401734072730330290044958658617691071634866908165184560549583602109344124124278951396118578820522036872375120775657795553959726405832353600430005642930680166114997060561895310525085837921148974064180588568996530698549942765684589894437255971812869175345754021523205787522065242838577832544083057463836626024879025325822486623402113153460869635667307767158479867593772380721491419833626019802223214571220248926738470924558036505112476747198648860481264565715672536011084949789228856419236415290067255439876194798984110527898471551842858620411977555173895032876858088304711984192174509987626155211081457815007391068202587046812153872183201806053069601120371082401422320474985460474506802799230251579271775966611405580195015545958585997524551206696722613795537753682976753889189300090645025386647572103469759017995301586894450453856033402303677368200433129672455765318359727789685973993122193095780826981194791158292121750148336719943133394592332979990303409908114342961635968648211564939867547671313855877942331661201353270904330410679904551846731472975682872620850106704807004978775396705352955049188018788730787868104109531542437999835640181541024177317272978253153439542881810173295443843458531166619129764573093642158855231638045269467490848468105457726406369325481299040778468125654537239635728955171833317934189242227087957792812872020780670293825020159396883159670491996130699558080095113772916222208800841831004920424127802040384523059462444349967487692124852494660054672854446586484431907259377175624731090626716286420870551099025080725618246312917651169468375635479735798615010700480422820256705170020107003175800865702576647163195394764841394661041392480717545309439027521349661292988867555618546392830864530116344945789474883305437637931696926141605271288912220012217910231628844064972135920556129510046314127150197425817151987657840399144761699888289102553818835313521225103880670092849105220650140483804228060400682506484717326969315305524106410431237480231714654150140496994783101202052784590324614917623537563926970805244943146986455499216385655090849144105963770419099779136227407812423740769547312207543678486777407907829755608002840650989060790882902120716749611619392394875488207302302694874570535490364356454612198963297169399649876665358365128610839158385774140860930174474563496090500859136147028833512871040346520864699667492901689132984464150603022161774280558892243381010275147148686863661771754520538334959348294368485276090427059118808648355450338874239240143611635737708613519352345116424879925571619372717621973684112281089731665537818052867025114678375348035263235419525433567657004858373007866350722481297590296966167000288645558929932519385724247399361322893765781735547548633499142307764606782494188096352509636586287205567797180596983023259337123127644494127663356714889490332967943174767540057422431115454364968578573655603990721599639410276464380569622609746250271486180559738515381346367334830972552609063211298811056413542815716603160120614006890646937725811097816873392040490471739520325777338003901069067196855561765912779594666855816521854920749031437517651585783157445460912978028757372415268758124230248117328202676017643114266787928926026260816688260858686382474787400653456586583282202303264719264603602707020869262983290181821287516254255811124916872090719714150729638731248912030535841285014237204143264835405960724872432362744061667282960793716031872298618381664571425730963709475062748806817371836911538467035026460710046759766663158117055574765082841823281987644291196844931386624890002486625062472822624220865918538841481207447240955540920414408800996017618114642011463423686314009897180271342141223311316465751748390847704612066711607355051028493087908229100704398555494001811616307281839030748587695380333326679252308430349808705310240715151628512590913881339620863685467701633360541763138970451293497948820078424617254160232615372522528758967035641341363869483327118179336362918497297417769903841060259871603256975503308550624156950621729177500824747964658844119121913134455307892777495857910594217162997121005541193878096679257443485841905139249810684504020187525785470520688772604307066289109077476798643305899920633795269825586402789531542509451194950053047420509070855158079091232373678268554474137160238270315747727172267691382671769323067717319169658870059648981526128820743581394086777488569747866956647261524141911093331162058124694037145389523142459902584075704356011260274036650804979529520075087012581508376321638907526937983324848496217971698758354643651040613790584282702110011013336661580721021657192669189033766273012084684899709070255963010504187566124908755150488435330325110593246762518132163064089728270616268633706194872081014870881158088828513540723222840967186992256725209565761505753358217264205487588112740835680380041660647593236195244437640478423738845134313757658263814069878589597767405242632504539218598743143482198880708435688003540377004188026187044699706499735842038542330694655012211799164569187860414777022068057163974288692607698986184330922434266329687404681124272704023048801597549373584495253946986535962462392354642625084728029375339173065815452517781268037193176843309298449154152747728987322248447517828284898851866459995206129889857276902735545321650126216937693287029258524305942026370802891051132989492752559890321474076947604288936182625275374308232044424021275782565926926435252714936170420764104630348194367798735725386366542214912518512611626587139800175503121225342250972128415888085813719133238669558214873619736056694700865645012603039809502264243522974107394452337879720637592397542367314859854331530776808622185237439773040785937262252550407091393730899503503015349957500504269191790568932982307826322747544758570057313888007266863559927117079064658108025424141902070736166731111557849879142224214289963366920155045776970673893522867575137913064320103073833168965953926638027116047712313530690836788898862504246979420137801485469079999381340014555727314067712351283905444859763078750891368543728241983334137934895782557259225074760304440931392332178905267011142453353822406404392995805257121426482669707397201322713821020945068975070398496624164368869273981419215059078357558090590131116840237862661293353062159894635857619025056811594640966592764685300701588454264640258339862597195613688431481757274747715557689774159330970933222133809625329884891177901062302071647558857505321274610599197438539253823324747887327933682609797528616313112844628985528448993471800533772042388156928667979471742755048656251585217672661392269189662526942799026099348661148811265675193803802738628834733116725857721355258244774196034228031574523221605256652905614793287733147219694980110882668146840900704974324171848316999814527519944613312713894499747810854315611839244211389491578489926442708745970918826043671536370614386052302838780496332462740602699270975556539827755540732121933530588310861169877900525295766578212007115600024150132779893537682940085076130828301784288616949664866473575627251781529168201559521997671622494934921666214289629840696230924149268085327311553492465076025968396832419840738950511805597987601135442548397636791239020354023090202568468317507879071172640746553941617702727225277420109361595705920369809066408101596398136007046717915083354171061411382405510728144346451927163615665282776920209934881688256878780124930994104949986456139121278257969479226475964458917350106573908486573007612463720628798504459055169487331163174045283468928127637522005891073419467885598197070922302164462199147698222346623971130352387898199029973454694166922974117034128393271738002951307969569567351889130052402771295185604259982528357947490631669056559457370456833881781031380646338290089597008442974861106455063681189906333862330012959801630720593029701629228156284161462142206965175792774764189627143884622970831170190826505629109696303252209780988999503101328454110694898285824846858202868724835542926921104376049616056176640896248141556072991952521794242315303682949945841534354106520343230848144269133201588172538072685129686614107628978506530954346567570930622273138547992179155275803649373368195087853975350521931322763488580855081225398441490565953367773510010263470402954321949628457216345518840946254313133692647821685503086403644774716793855992026192859910405458450854736392367117087229368830732367509667024151811352175164272469974372504153395408514495682348750180506080194583181170221658586582056544466115404128019332056391220952806688137110849275769848380663117002418362809529852852039226056601647917423283326234284736274293936054858792845949894433298462437816555980953406158302503478192774362615425500102835467721111873695016026367575401452271508419946672520939038330558825908679522125849999712375618959238564426869024444093856468591362785970145075954440963518941122457812579858911365185879125643459179854464934401267005637704422147795617527426454232228807781408056217709697538504221123573142212102209390348833511511362634902050764107237992094198158997173880684454495486055573774806997888734527719062651710156491366380675462377405013812823026431531485860365174327390679370458674140388994593511196839820047966130421283016604080299790371241037196640384859989229815203520557163321562781402207419278145245875744666891533597492772391899798721003144146693040521038782248001369057139267445165048379473816606649801431518189150630524237620546263376876177035735034888175484342542467733630135351137678429799726384207193252372170231894316893614551130959916798131157888701731625527574534132227403983473756962750812548371941814229451061699878944653055571922456888618313876889034612528037341218426491291235858035062679630948066506817582941368407179173295529438279763211443240891043321193869564382615196064750046781401377776469007785363051301698138222320237383595856332480816973833892407410697603296276922808985808770526690786644886021868116520637028773871051519952905669651119643005794252112576918582580314907979889984382690800027079382127710137919461554525544189639367536151221517177285337261089883640854279536994322651691813279681896857700253428279550457583964884283006713175931956214596785315551225528721124371494062395949003680001745518267788986606880696750686305615711028399855473069415825625308700319993880935030403914339697559582559529932166296353516056902345771976792351322389397576104323692757005157071092915298059415921390040741539153815352561350080392427733807125521932366131628505767942765042918185781704952676383168568921586534971082191159773335399577325544124670106391012788514108173932262917647359234250229697594406212067613086378511558029956097236750921096307615666323507046709375657310519783891213727749855619748209415561944982634959996221086107935918417235902607135888068262573602549070930172546529091092949608783628338253528992066727282575842251089754191354247697740403333058461736495431637593096526041914314947305735439411572636812906133488273033207467177537972837179507134325478785305303809894596103295275558413188488456920816827053098754158467967138704702857302442762145824094723598367487826095294481824735206857766838116495559193828089209533777083219450881133822378540169601885092892429589540912840517817526360904323887530296838109758348741393298072207182727793573916492786792535941586747457318672029880799187947134868144496901414283587224793848117695756242714196187123232390231021034966388603130893984870582585632425107220227182140865057439443971626408583683581933761934972358559185722978832186232872001514169589232615731051539239481971951756479102205446424862376485616617007048103451463909041159326798112462683274770617006098277401937507300531998985275416250303665415998021577543944843098899375217347034077454108879297832794582164041930172463686393005049950311593932066266275118071437602509550112231262014080671130541746830768614375125409407412240508806584020501235213797401930999624495165735973691792499814059362796123385687184949860607268860093186543070159874440585150862542551916553938971907216423578060727679323008782653832303458835207350434116169612937285450158326648196947733983636473266511292946797524361717422251456347445369184310924471747499261781982665832558811271504857984122463369271232161792948791427294303660671958942248640073152918150040747377517428464744726316897034015043905776238683163572471559673752626079916505982123809979590080120929168543860613607733289901336375717062604940527793665851457260195289081029716816231443827612940458180398057812894847028002368617287940761259796292522366008460458519392167495753882950414619273100282366237044561001403194146304436731360026576421467522084068058352385940790482034802020848499828757931995396148572747600196225414793406047586466129211829343656163103251855087920959597793292218597371758623438255382670783302765653237011729249452111982792351503012848680427829814417734236285985411785081969374127687220794008212302229019061090994819819598884661057687261983784894978806240529738925045626869011178171474790613936162520312325436709206202726678530878919407487140764085917405153272036955917712443398426053052928494947458869314062651209107753131189397418710184020059480023010174871476329390823665340084835181642532126389703936388459233717548138577811741805879546959554239986078261954522558415590425356001266792023334250474744072559104848025515210237956647566368985258664436225115564340385746522160190346621666134724530279808523386547400437608938015568844853419705626749196111626260392281685257369500570592003711477171300643172097901389845401601479538480669190327804107080149307953553556824401465891216050177274969499294787451377911892188634524770485859063926101747843399542043428707792777445547451733430008596752634504589576503692851387598971607909110951472320609868682586418993910775083536695877361431921065743020865900557563857299485657913915127801716033071524821726604784570193547156607750198299106742880050866875139419189892510002056091267083219918731804581285004863741216432786420034634823006556878399527083201521016990070897174684509823275829540840438496010757648494179730761011447128607408677018667703058550780026155563851062182330173881829832975604139552241171863636723340257645018278755435683373734100045258747351567984357664568758255376973746614503868299342418957721587216071682055796001822542267556270473292265063054110674907272227126885198200794304242512400682539595222784248339103017566629769801838461196445964031627189661219627979152440377544017848385409943870804368996338640211665175868648209788754205800458931848248371588793170579394114469856196331188006685035071966446210171262762368635563510412271806346276502719575828809658772671178456431762871717810076057811491478848581223843295718031102260258495366247159482388968946610937835634904576371114013882942477188860844316515991501352111503393367623812340450142351247651328647323998289048065856529599760198798854912966857651544707882520171926265574044403971022184650960124220536576318223735435576437335166502261573469213630301458941369188870940578701913493088154065956538734098644192227272167298389148450908140156967267861193079871509529193653321175434223618494404757320099128927006157172163116989409217445116230446631979818871558572710730483222182928366433062119669527040632841966217522736364756925957543176296628264231453200170470389384095427544992826493078620016997401443112172005334395560898563457073285562196623637390982816088277512669029935839607476028318748819534390068921745261405428507020899398494069414214228718426869223485524814940345795171036462184041932884211588175179415950480914858814172751893270256594086314790408419702352087056122663135860338699152780066815147751340029814916398701728413029971225489807479510882141185723928562516819904698468908162590135060316889899555347030763086198468314978895664459987534260180693399016606136770653201967098641766097362229693873974293214706018302416144065531252087325712147494639562251938691672846332286251470476688067450069777919315378252566619397608403247593390261886851470978394007664023580077781524624868621595904714820553824846020266421852456025781217471751445081981823161104987136232299891639467734721691106217520051353434764032961651304904616652065358178955873492236624028270445014099878389296421918977501372987370393139521297643699100109502686258502270178880247294743432604719077255343221274785149890318191210810152105087747789381043296877086835140802628337607629827289987891095414922066882983552350115539557463196328862668088625080006178816976691598340784706814471446624382958574533430976839669218589196491593265133406554956081389443036656068840806241332002735793937617966368500659480389396548292818449832761460288198889142561624234797053726536108206034680059043042642087116325968712418728870941845179119860527240376862587332896211918880159304968663708633622767117767766368971872446826839947947998809674475824981121480519310897591948958894979963143369819796394657979706250842058858308538184754967269899969628207171051486811061372996256959198210678240558201854635935353453152618773487367806880157550180007847556714649135856052181124250521858857256417698476351433612260044332665443764086710577135376197129784440578145757854438848022425742145748938421994233352269958125189805916583889756372429613826891466840617173402979039689883139732071799431776855861787307505500025805661218403979987419460816426738776227745430506396215856991583924721123925667857321024851149890867590100985431548896168158552901937578459472283383671649424681232915430296546218485500195106352675826303842497709975434169069291407597048789124425476270667206567054987765904035290846730912466014410855430804608365515486647889994224429467251461042929532514270934345190035199617111679091350452691741874703803319945512361289500677286918648937544351279541508532873187914722587566540718174019212628713541378631250104206304809004124145324128663744675166243116899828467472104561897717199868674841540526532213078488456442736830854071795855017163421988031757736558425518021784010379519144316188194546630997621840706690391767747371989464936777906330657293189465818438322628295127957249238033892851946867421567863910208263464843179003015573865824472538495577477668497984769712355026150126302863806406293947043973434375219989768576726453582833389781759650428151682899860575234047217447131838557228247851033015062171165653091043530717232351152098629935261354224411208549931766139550125545291448582719270850585574734140519587016078569404703480593317951841556822894660268286687005573983305318248318271358395842337443230330379324694691796464858794123421602509692540392127622645734112131689150280242546566539976241350026353664620243168347196633862103423118243608523574405819732885924767918639038174019866325234403783045978393461198052921748420948834727708577245686759833906765061847553399342354095915381061130022587954079747016023783314558548089013087895013611289352139464451532273649681864351993720095895174378489494968168310534611455683107628886495321607515836743798923104009023301782951520309335911113686944445811321747098918947926188052313459036129913177133957835537026513309758142447877894923110314782735300941957208294850141176692115679977929138642152714035036164242436824361374748076650661080856435318572847911687593536565443869556787559099048642314890227564379401691136755059441417562697040548992726744555173791992766173238192688337065626305370854380184869155859379937270379422502258825952928960773480018959781880202936387174806984157538578808217520049010799906131123447283583233165419808050296288058974166170546042593202507428598707187961382569490456016056179235851749631324741908211203478187216221507356174083656586260451531983358875289303337511499272705306545357010470634473629901720422297070477014112076490724091538989546551988503042721782530460587436495040994763979120833259599900603541872307734174463992190894241575338913191218738338597924304952152099554924811790497853202657387744144917394715692495533392798991737477850047126754141224219989217304303508523973661740671515388946496213453331790920424996303576394103704311367874115698254946188243724190749166855374835624241048407685284185188120592923047688440602193222535325926595809570147147650403801900401905694454296041020861685098806811279079566314247688497484742189642105614649285169954344166973976506065940764404230764641907877456841989111523956210695424338816065663901947208291196756851902755422511977760691223861231341440895023176899388110493140917860754873602611317966893904520777792697486210713513546487389815809405505175864968549207607960298766306626360272994720537671781398785509953076140379667657919035702651571617855707988211412912017211464413799687133042803455667179721935726648905946107375644411900263534606246748514155929193962302879639887763786877025424915786649833697569560405137256637285535670490626619149005408875670639845582517686068305524921802225917104849708285191732437255035322480171505510963927937656563362367065202409756823268630951336400754178983686399405186417423063669096993110080610326373454167870442014595794847712227061057391309460473669582038940685773052573416961556199435448368713932482931026870156562801531919824240525906661725338626299967450640664849799638849067271529808601720358351570492047908054371556634143372800525272333440925860066281669674721838800644626554762816661346951227610030711893222624065651973094290142344624484704175181534203003388328622499252522287612366568656645746192714839742072104797946831791862373227049362624665462516193630597265150333289500861907767949546578922580905713251436028397669885357159490113137392723792067548714555319846304988849909286712238776485765012155879790158729689251290669667765900304012197836194385198156404925057416745444313523623226556348079276721890631338175825826016329123417601779858354744675705950875617661992464260630148065702412399426911002974486175668766034706197947795151198155895774131414424529282530143767376160510644492319203742440753967740713741329090480366940358803504180539488059169688760817316707754200958615394027961083464109816360497912012682223053494096010281431465427462789454187042502201577756987238438343241162559282164293423247909582825848750816197242002510434680801942492378604166888032284951291099092523157620492404499466011806155592147109248928869488101246153117984747169417819320430418091251669801964901002273544107983528308551378909379256813296372266499140858584878062708968077005409741345163014841394696100012141718583452492560618936070240715299539634254687269463964376806511867609899693800440508324548051095071082974897970777169982052239964136831729250467984133146529069957840632647321250217621895864294900947698332374983186575190842939732615903116204410225960356886791256239248091496640711792784407457051812706299197570757582596157434354479705341005478350362188457837792647895942507111959054331959836686195928044405220695269346474532247857034888839262189188472056396245380930087172931446114496426143311256644710175942195624184430477780606599802597392519325155390443302568474020702656009841659401898821029642783984522844236207898134442304797124237661886870007174160334731334668848995077006362652769634919857477309279265428258478721578497231821814879856632344119708703218360396463234650204948251986311778033864041195797204581372703165677492847287633102476033964446089761723090741688608945544316818699380083761273416170908692490075259897907266428950575074166111652104181555187354508517215425532741702703683836329829622623788209204651619319699056080764707124278488220810673329138076711212809060575746345356075325410116510325321180716200621450167277660652326278846998572550600274822749543069088916645251796124527670880109119243672819757494641158359810317747895649507129099656365796965808663835700581195204241465661629161974432388093197428146454639030549775723978220556148721025313276084461114077856913789883474389350001760259902694253724847262338968742272212470529181239983971878206249007618514707033094239668109346454753232228041823222161124865555002136184813210109375510434784513164274755914510255180141948646537362130474828501238182296143893844936375353390263615800682939040183424312825697104853175407769260917428256199684700023609069750603330096464743190892705916426743488224732674675695509704711792279131294710116557195714422482406491279435606440898631695880386055221967896796505746730145537101856853548933679029928045438968435158089221071083475457006586888171631358280315077679415235034774816871067381804353716556739291635554151494653983622438148310050817044766757319455902678443252613757411576591314174621530626643401706394246939905711633840964854603433002137967466425604912002023535642348090974488393341525711887991011071778742826814449555355513728541215711224366603569646952636920553839882011108394313446416695914857795786028978524275257477758469822452759076200120839452980455022212682672815102632974354457613010889211019453603212843520443121844890940381093934336935454025640453167268758830057710809573897707879381995397207710753372139643264152606454546912286669112354000350737679451533822116550393890262145259215333370343725916082039567467871547788762360323220244081528869648889005852481784013754397765320561387134032197867249297985295505341663828911102061036877656208589130620003749235323490831983112525783423127197597247210074612730683676754556392395902733013600685166720797077900698563655634643016532215153182150204390487839407839653481456600554180231342793726853975910863467472365205419448726712433457802020666718775540989660835984519228145347616510509846339623509034767537743003272304655107897131404574718666089128828997722059379467728492489359227856239718768951079964334306358192507404318091282760320213299240296843029250360845949904544943382588822200191184162715076631129755956374434496081841751903969395587314274662326700666015061041820332052060475104433990499830284562531382057841257130108097544318580563401326844499894656688577044421022137113752228060601199400358208983105213658816733326932330795416071561348656581807280668343503928438413706563253894595254808514674868176885070127748499033557060329977448613722967476750823594923385049675497377893430728587941658915701089947023041787379164220837261640961237113326364459899157095017801085481092154300975537609107282110977562111474047238949251787664703550384952019317405919887277590131846910381994695780419728182410840313740866580667046598026971490008834597897668468531829043930394793845838011417947032890633454579233656676793279468521619594442105398657484893626919704473803546953863199239464532798392958683823451066565165527124613727597363124141774435639184021041637054200037417608936828692841659873809738310203766183634410946508777356881767155829589787484787979853823487438256393596217143899553328058300326800026134029596570523300765887964232293368983796568123514427943524521099492638619670132802365115225988452172972521404249041570059562550208056171476857964961321327542254379647813797187323463339356040568629701011131940457608373434135998782439349018118527037274407180018843394741292894308169832624571792624640414444381356838078633434521705247107784873985673527247976431928734644929971856106015477424026144297913172626963926020666624912774938680458959847407146345869863925868823373113978876151057727081116826949780292711171509099608535479426973553938471488329823403874067742230998587860014651421020423704994777179657428137130612286687653489564872147208415820397709299178903425881363949682429706324638563597648996955649469799393766565183146553931408885511364133500984219587208484151401377482751459844028943792777821334589029177351781448420850687800077094463618019221983127564731325352461490984872807961948510831142978043796195660284390532033390354442617276028753274143524674652588617007839667778582207873209774998657796609218215820408834726873377036842987873797936033770523741410723262349002900839901126124410543074441769596628760743672422749930897256008218877989622126264787838798375046314098444082943662639862150307813748802282106863412566279078179774920292514018253547781538731551884066903596056898972819507666707961443713990128822290173712270394851949798695589213022159882948336309627603221469905984398646631879974630231593574290658782203096234930526405140384137732850654271282205591634904639553599305157166740950577275041026754025847723097205758224916038760571790584295839782983267645533754975788542180288621801525281179933313937499916661855587252889786488161400113150060556591197094864286879388739367476796332532749207757025227717456719968002654632875909312624768889473390487105663579349578114860850608290074224360483919060151913040735752103617121683744781732596054980276156842217076262787023787108058811457612037593013665385316703315232394446693376596075686703318823282086210900086216517374926556336558816958019484109439837641209987568449644727685578086835297438740435728726605102388120269958649724670855426564576918043690958052335307453669572899697522577267373648299499558582778011877273036543625571005926778586911390645401672974229668083380692909753756099070262783292850592358117963940323486560193999658882722873004076940272942185187107299717182482028113195359587670937912513309574516759180090793323397471626791751583601808683853139783598149124071200813950672598191921349728847005921630256827265950038611190441953181257264888292110812648912409526430386209171812711653246018647798553577915329847431446088362366409086588974213999487554497620128208656326855784301272493230972206069379809000109098710912712748141392152944995295096375449590875765302292798752163599208253154532318835311050954125010267282345027485313272525028193870196369745718324255113124858338634992779273669019155166423265116481997634312774052433761865331569178895572851925597200846833292522842545978306353099641821020074906328922566072881222187080981233628774926826729115610551164790631521732995406702013555363407841329769782759745789622868385260701440346504885340313706937633956806998281819291452031639501668552456888331191789391802051071377243314324896172938688393890235954598154422638876487469683693351540113590210317854532081966196068295701133767619195435017120803990413460805331396600218862109725839344364617807485551118668973251549386463428873316170550599998368232231795644670735879689198707904602665295295120690133102283766629756027823269232840164275513567155756636100303620599786518812258501815294846117151818568987407772258303677224707797869222285459516794443297368632236660838589278519586663873615870877035076050269335224621911538779812720600414512381554507055343416759246309081299310159818137124368277159980392441857626656659589862200197953450959349656088891354048673018091628874108948988826761524348921721184027730675911268034276751128242688006348740342369583647849344598005686208125964828110708839051090377327375074980878792138867000991906048654198153569432090984656423532508993831736319550929010810698783136361479763357697395876723356484519747504285102371912637951558952180820646347194866127242626476600684365534686387138242179533525706144204946933692392994074716532525130489208900208183740959022767729996232584269063192121786875833167748335353139744446959762326336412874266223572822636704618764559578658864106697625525616753983409327594159922406829867500607773733138708410759403574201755599569642862232086443065671051390324630284702463216850680209409256432775580445037041306618506645205859153166140175506171045977301651569140402557034653655875582115309835656388695519388379124112329382133751851568567631416809633882013643667671138814234210009533756375824119713230034250609255270061837102116991628898013820860989729475711575032691476070897315366944605005958449860208404462619219985556557546679172488082760351390132743982028546847365346876208886160991413869710887114565498018467293148019647994110064127338272813454756963212364980619841095330159553474612410546921071125409163967290556166354634409129836542048912442317816972566658080558976963942749312430815204419661047204747115980482347809615205981570758375230663173862172227752369180344812251553212829037704823461920295031677120263062119423597421491734058966163069183072832526368646217408334885522107091428969626303558900617313961162280585396046148544634765961084199369175825354684141099727288497089035146089968137261720255537032653510645225501016130992152917741948976820146004110871237207289009267911844866472162322391092785773264184250506206809943566238927857271626034187435666323234620587029997673217608494604432963955354654844077934478024144607397698094288552678063618663836332455471529699384526688117145187130874763648580808679115829852598494175055181028951734009807035817647308827938465795685543359693612579566321563482674811600573896095801893324363657629304865048090016166120309969467130385854957890507438050986280502125967623357520302987600249686930222020723060145812501078554478099867455771599950299679308938754934183807179748083251330036322442055266896132693899724385484025674534572469007186213408891487177090686308988059568240504832951412884298432234188326375218530997753338770551198785426640585174079318734220955048322386966865640449571145656142105747525571327858040816303842577844568626395740226664905457229211537565682442932191464247462845009306112797393015340527007758724795239727887128606236302928176595162769605992203407809562592457555004258689042360781521127697272534964983042628227195689383896335023988091957899272516007891479122794696721399754483059253157282181028078481467380173016207817845990807516017076941683576575096556407008847730670802113355542561067536277117586765796367308282582979391490379063670206546237746323688650206665117181683021746971993217702677318509878299422020552846085264905345488017249492990151030268259196133980373442768066227145359878206813135859638215187499732543547840104583692909382716218487044125805953418126227008472836975373470039094534200354806028088069614954453236423526343872361219004528064168394868369025532083920880807884586329845860718368091518457384086662138666970831391063130989028158053895590852675710440192086790029744052069650022385924645770225197536963522587674629740035755579677359787680668865763464943027654242156850192150974283633490138969518454866365823439003285747468299274290870519905116269255204200565291577127326968035826671674344959422761996569299512805081225130211875277692139848068118061546455929555759043761496166162067364510326651683091124852402406508295758787815667613159686800288335470512414717310149242357117560054811047882465293959580877799787083682717943455797754888431614700860458865274200524405467441528234368359234385807538906752999062066833322292518684839442713683361084655567088310166210129849506887938934440894196005768203978943885346410579091097599001785298602664919051920250327446325647872343342525652873906283824476317835346442608199919745217858535217289064725270217077977902644822817283406877960223937079494613629625253495902774119696066753182152547663172138685237059155049475212315590509741211700281703487454207678635759791090532386666652277469733672221696542009743878740300771698777169793354809347891163422374430011091700327840335803537851350389488454692012153934337016922128965642284107132215829652082387520416422237767326607718598944530934337262508894154682832301097197199060647973597436921656921118123306373404597147948454461576368939516103155642582855623906744556114182979520711577369307616059487100905435498375570135288475367409223811132370246060393270158793602242458558778631820360807985440684007733510159351669655367347937595698300012640062479515484619082943193986870168641290882027187814748065800112241118976075029164188471161745497810599389527240727329372171638229945184065677756353830061658282148460917952090846801651515483071828388351253830468787345237238315785339440888399689669396902989350034637262347027454963067414988188128163918545049714731210326615184833161916873978361475499178859505069760883849859329781458530988463298093432097679123120450075561902079111526039507381526228951862224878297174129103815762314603562794167704001382154475663443454166131411620510608429698490894522670971684447302366774859869705516295810823248844937212646278688938972439541722906120016840826329636875670408804451086736051861877255467128869639346260843657798539572331456643372015176619834505680393135473087132869729461677339770099084273370938548905024111510858013196314041451715138509074720460886300046773060582572137863558156292932567574722950904092369265929654911111039883242417729405915696856879803682219724298699624796980714238628693019850131575706712614687405558074300925524008440429502836106993117445524188865999885354099591004363993692177554195921831492503224203237618448761461362748944944685065557000817098750466447514362066127311695257280096967274802769400388442327159670194998829522508144769374351075968468437239993072782058223298550379677301566967120819119252330227904006236603412935033516157763901797698678813057198542396580217172525349758718212780230616225949487876225405524768262622543747679533346246917181611797829515352221684680491189290249352611599034493855533062207687357254732623269415578394022914912385698495173542670593306411431952114122608889808306875293077393526672068204225578782557322528205041951357318933168465621428250458655556519940802635196021369369150444496902988082654593124848156891243044404952106575705742980058608400347028797787310821938092971019874717038334581964117313030798609154864847038134706680105927326020263621840085850995100941707810617966268390294296792724764217185541987402326422028431477292387681215631619620949711480095953333766464811598601683391118740727273036544456242022574846427732571876017483520370023282430584594219316463604928209150915347028805686783513227727582472740505747085650145880211635897090623329716478218493440641660589342458277646298880598399949501535867981526228410285334227860006095661828499706176430935107779319627583865814948375437313886550119390779012874909560515791741587948709342727288641906954311182882401055122497066708867618763572310598071494232115192355881474080999932173577655914501758688496057961601561158016950237808717797444497075250905815119151042431374248767168493996606967172179219035216135290962362976688609057537527640528336406717538753336553403954620221866300709877383502916656930577605111207676334744893515368467285641722307543376052876672763312623605566906170471806022725967511891188874870523956036318354921007923959091907094418012886658215170339484004404861837208096268506542814247372239006121651300773107355468754259080101157601265221256539869007008173617336230783085755203513748054920903091788977376703115728439742387082217079752009548815677307470285230623460019874068492463048632361537433742129301992716659838132149756621512290398058277869149048072801773297267934225726903408390707605975297054047871231949563206363428834034929087329036867274867170776982888827889507697726895443914705289742118817577866054922124677450283362642556090065338143405240962525392874978272304352039874201132489564959111419582343003483710938227723060846327861468676482304917148674240775807258797258648829009678476309358359999452859028911755759193730937060611508041505581681330675146239566690743182128679981876413495200534484429847547528938274248194209319293917047167203887522589726512168326239895027680358016171895203642557821442276067491764151457523476741758956730123322928237735492379733126613752102114049785762145973187400124356977561818624446401529918235638757194266327630729039612240426646313479499338272236868272874440798202365515327113773704337450804182129179436752261011433867932839817711218325273589383998322032105718130228493012386905553304901763888158802658367578976216345721410955574701158123557782242555087085138711953663117085663965327031281991556433813781515518375200404186150731633456460298271030059230002765710389061345389990561225241579895053312524137996682178357421658961278774576092556900466115310245765445635804905856600096365682910253743910870862864587516381346855576502536175409512727150824434881750347003872726125785993665654145603295714955016365571233465996907374556221525018415147811482663041701452204029503474580685158436768574829160249160278799367073720052802680651785926381491816298155146079071707271682905331161338189653145341960417395793854322901134647203287083949066176085416109708829697198755717160425770713983865218013360647394220423359667965902521781933326338905795983354465152053543254592193819786542634568055515574241745185481128456048851713393043681361498211949722640197605182167392967126439963368430074707985890272313610090051003152681466833373043529982465062959986560187615676812060010447698485497036615257879453107165210743281858048218922170365089129563991697187617946875302905450959728474738438253432231298355350375666199199842913170587057311573535007074729029445221235137397398256447145939340173056908339411147197765751615460093221858323235500619429133504297396135405636717455231046718564466880018952194839121576337719078150930451794703790154295743973770162365188666426255317094218420386563115797908779410900611183766269443152211389497822503523280570611646231882121362110951708143057307927750707084013118335720860527489039211656675069000502637536508770124820994005235775362190671284544219560368628050268068394569769924235869078152526916827893126683541971737714372406691643676323886300794844389334351848129391224875498719958601452602778976617052401976134670746272669470252225727313057084364295984080047889841002855989282851562965360483835752697445742749800085671584954131331372373585831417904654093076379036737778445882550190927792194010218504467028966578011774699039813364912863050341948160608311491400521915556255607179928456520933255857158411623443786869452428094573279580315521913616415592392773828891379842436277701183936426307151075108910925441662154305577406621993545850575151961822723158772732387426199724668416672369969540498782585160787282147612125845795432168935507357074468924618989914965250436975552942834198070350323564339152650085880490790448774735500366053184895602407769154512902808507477267949823794210568668905681974925004702124203605623172808212591006662934298392875599136928808974015973528252527029502494455375197599625216412336824379065654491210936128411157814123191504885340245529806161210507783191710211507744334231858990047799613636107516304332626569479379937605321121532030934442162310723388889494864530168417246497089105645175193043964243917499042972411221408776784911950282799816064316790652377898830469146032733529836378515487721372431703474207711728765875290078882712054149776573120012017759825531240762801102746502995014028498171077690181194442303390125225582012024214373061311188485738015857449836969809470746508273828290737509412978245812524632682346892466309142894468503690402152062397115217746301046849184675427218714951492724535321742465938911477445301351755352703976796686412534307166319412003042670409800827638713777259585406974160720047482912874235042794752832295073755623392920344598799669708617390440340468615107446776167908085828402785249929585930147370078996016899122262365517324462560367111361193666169105165373618621334746941017278577661698023669617555732655054111645427884392975709675866565602964901144748371428063107915571783518263191015201119348806992759722156384497889917601206426700590503642756215380002494029835845605817083015922701817860450699848390206541809425238320585216984213614339591658221836993191951582937595499605935192138930218430369085857937242456609934429236371687773631194054229389789812412851735717229986221156683177334433832947957684658405216616117405006455485521133199150544547330497154716238719154598086404349571959360349668019833956449061345461175247309471858094166155224168776906530387763646534264513509362850834303777568626650160979439705321985620030538752355022385469261338671512624757002036487163028828843898638787877076620228534465683193413258237234716688145456773721532331593841410396839868458816069209004174401408520819807188073181229703795956363037380836331125222596501417247442124893455251190856660363855803553334735597535649038737677342882876036259945420486211750581832461447974690483042341995802994803456116881889641219111993523476155260541359965584607279060028834319268358873927151608423290021486072361448997634262348164683892315630001045605514823781158489628129993272934193678127339767259652456494997186312217185202715823691793418345638830190318257110407701611449316631982091857868011610815575978819464386652431355162611876706579215845393195093325406962830228132934393317739118460038822579864246494962222981703948560562772347209385946158721695072108433328878405686126283550371140574464492917156003171978640524811592819927576630611500273013431210866573593566666645256504468656254655203079962128396189462791778291209401490684385335748331686184124838645206958820490817532904651481908609956362788230481552606536470926206028662083083011888195000382503570412658061450815744486475205361893219531578588402890958899577922909917212259269305860289365953594827105237205459685292162267008715431063098491799103071623859988895796400967615651199802719551788152979563550739830019348456020691371805492587796954959882130681473756006286420313124246557872659828531462053101001382364074221802735065054839374611379000902910534502284627640435223253956538143473557697069555966404002865187569584403965257842702928196306491215826563695172167556489020762459218550437656897839511266221800203403256816154564883612637443584189775652811163798097720035391552918763510378284500498314806204166296523661419804649079110446160562704840114833615298344700334005241411050394858857149469532982766451756335394260150755366977063765654129700025611091389329567272008552196130927870898558756419284865136387523956462929818132985145755245470668435114947990614999783452962976505677376935008183371507571527748185318630013286317808707235824843650131752978318324961279950802614583676552062001795865314167927817532115824304688845830590394627793451920182584369595342060931816144058328728473708623992472601616516623500917333555838675251256013269642984821189924221539479755310537597850663327835259794633447873382451010702079950845329263656168822550123627622701662686171001722841741637796602647595105987188090053137193390179565828684093081142494445015388354013626543796771526512394741762918201612575718577550080688920905593464312200563223488425416872893263844118066887948808491218807688009110235678104163595333307730870140437656857851975800337434349465840793996332365027272613926144917177790029125420327312014491963424459186777339454510593570135847647137063766317467316134070653345782882149800598834429225404130923090541941769606555223681430237811851565238148166877975203044322194897964604944956775624517515926262753999985927541079277694429296446511425897030089122364999686781036837856669285660557281778119034064127388090311347001637242388213031907294191795098135445736801855413336824307938845176001874457922539223506970574276437917312628374795839778464240397722034919053913605549530858657656037032859766909739403773092002620552068035947085349050278290765152322622524383893750920286591948730403022261988570363725596699944715542901338132512339486269133232322907700348648629996883328019821735980641520668522489167219956101124353603469547571446893953772904628809868089934562650856218350081811103811138363713648735597717605442767964267490988462445212639769159832039737991715194536120071585290299120222241073218541044024407168749917034429586989721420569697254914977389779717497744228605553716832778932689031667191161414306828428375495676060170688765820897333845724750588992651154622010754216864919539939186550097576273679257671358946104499167134713871170997939673765035083554715951653914866253723550798169010073039439931586863676602795395753617345831465338220854614682439626170878504405460773133142066513306084157491948394931873553129755860430349665064813535253298809916486262948213206276262308813383318259331614437948369715061458335858231894860035995950075781683508543325174948052123817411028444523216364704881364321920585650508410809459522830379140091149439245173722902037399750983389678567490778116015648685009798609658049741748601098066868294776443995123208709377935764016617398050033407657737101463584599740904098032049311674358360411534784332949099176479734804008708583305146534200406764164987315167361493584824589800529978545141889074654207356707827925675703165781550029230896898334528580350447548455381935313873490648509872456917687231551861059451745157360628769683865683946966740892991217583441167990130006725876222606428370845253582609063751971270157789557481277457584283787988891112504492614568335887574114270812652224844432847567435188870034760867217445046401206418751951114487485398883449101442335665919779016082230322076594150149582227625078053783729742780390401727514862400969222930957036086411466957432749465636852337368388769700114546164857875115855780630505658667437751780863988799477505753087546535037560743434661770818882757194424096769912215631241630949145341126445354110529653677817338112265292664632013056168377980438022489643865969358145640582456149634971536307484784981632073412835154919372407641214661186530629999244147895366311507422764183845898011528870202976697342563919573475714587562431867665308573185255343099111092203306528648219705419772957458422988474484640222584036389224177159424817893879856318781178783600440173602858571469486388503304481114331495836490338626000302254534993813614413642399922157708284444037478771506885683905680347191776617937630304557983944408063223734911501147292711418130668234684909026338976461395281974524337028802573933598522827661490348969032457903861279663461251782374105835878379401040553110776594475601035811777311573985720740705215963685820926278585410659687042508107761284298454762517416452171556010495025069751957285509574167092322474094712931342329204401291122315026477808323308334213095578206977436491540441004575307280470503384533162789296573423354642742907602969604491666833984578920587743374351428213101939372430033230055536165285472971520368419751056440096684670143919169316477300753817852685707121684888828603106494302297023507020798121394494645340580068250039943710929655099925166112344388891521419127494049942742240572610344938336563544882298338449281899401880958969231649632990405939330356661805423753371212827167626025222027514563749036473514073124845713476581614709791474456065055580670350673044582008584200231906646763214833116347770554913036020595887916485616575018948201801408818091709619336588037140711160067675126826029679875084107360693767051629299745315527041089568660076526413823287576546612464071806396367993123206223112920035389785777295996717495236820127968618859921934895856100185486441776726886995623750349876616558189037018751026146182899717991232930346233482641628418972896450761031434095552205841793765584837963736282604675639727656982045861461138412336567996244012049693279760429000464942071710310653884760570171828409925823651142973805165050249063849300281554559856658677558120791336772620335833050455413636006926688312119611210638491872930809832490246026496622688173440606136889004034151669932871070228539895784184045338534376585529709535695876099355420547716935188337973059232996543427104660767538297601788334248068068014407923632041901976350870224840007755625288121921973666976312411072075850119738329239076482131120967119720034462904846933873537808741841113160839093022641175931721831344231012523530820296523425538172953153805582323524465965880855800741661716769596361187061356762606808746977922808459536275948737815504267529942315300631020713236653755094385492575747031949933583847497445519287340123867146369325418216342404498319250893016477989402214996763447064548946607317329067133533812843998409823539425541006170991957436511954209559047627508457852104931093922053079902894529346560045572410812901446799503682322717631821613324412479058588854806087056725235367779095453265081944706396434882068528808442945421409916558904273884740902607150600677227255726330578865196172790239106922403632422715965256212453761609298060576390525479876234471913856087665102257120358834797814935977335043255896256464450164560152135300779834541572672640494148996736789911201620599308755929748997722057749946219363853298663130899195417155798085652597326746546413867151640415668178037896748201951230847829770052855287971749064133478232964676614478906529244084905406981529736258210852717635933603402652138857998411807642595386881789404513118711094351433659454998642213666410907832488779011900515015998361424700575776054417178382195722760908798945795630518546853142126223492278538107892763295154162400154153476215704791091920515609397864524980972969078187029509699298427483392306000309971654919523523813106094727379206013380239426782543998550032082313057326453535356007055587730308486314369916691306495194136173843621315921346282495298297390429709696462617558083257212445063980636365135244621838814221004898957284176230981132570850417768085765632794246278470489531467458205081612714187008953742086057116789130967944789974521330905751588592338894824642754629223568830877313926330990499763892650665530669099141212941089537749873862227315452763638449069525929050226989099772519597637961888420262894500550516177086368713966690540502003557954255602450363773097981847672017241079237828222267448811831721808214851156021595492479171816826442052526276691341728774826600556866177266325672564955453269451810182486325808554829823630479428728695958960540713563678121049516897724813873060976305026068023350044373389112573698356268985176182381298074356321781889736564489036082408186775880154219287526013507940702727157698727881029764418037036177399867761062822511900740250790375332519006224744926263557228824381560886440507981933052192377616795199821985016993703764739324125345736006913708014569949838179977385922546055289032825431894477824112729076661103862070405126511984972380058000740224070340626033986624598563365211814730907874722531910132352782084307631135126423245314120931278171732467855386066624171399269507679924621172604378812628878411438306941615059864293840418218715030202975033094555076257094155308169752158976978667522650151390517979647471970735376708787806986716686984337495232597816184799115440937078750695427587320619068597304168990120154738372818623245143460521648368648833272648814181741688629270822060666781744363808040242973924108646246903082858252456507712034568686449454877122350465030213452486032448447597438656379773659594749310335469133261376445293833604918952716333391520116466470700494440029962306949809444265467792725354389671670967828802431882184811660395954276048095533134478050994304523440625726240481140703988475513474672031234990932296393421526752966109576275286218520386175745623035432161765943563145409172460996376204274184616399702953311165202764848861464386140311095663226378328026245322651894352701445378173369965679581903457615934266016006804631842233040217100351425187467688327267955607083794607416537820439653385301758847651298788226450602803732376399513484615674013876729071212703176390619576574576421729384610099519332113494152603176316540636669781638284092588243825549639983871952632586610517144540246381141771636567563059564159227999982123201159074126685471985764352377012751391598760424931409155630121894398667739372985505541264439407792222771997674551727773283671335409796219633936364090572675138099104155264971229958827369493485069926109231977521052646659920014038429673169547529436418556643910495637974542497262274760524069908727719433438078471435409416492930514999391485672076221719330242896418153624427072405798606542831177412491498621107042814162462730380820942766847980389073236903728074425502595933337418860347180329247344429384778139828668173882200832093622154287702316839388098707207208155417673979419909702965380722445583430327028810394769803867999804710645683316729199487056737076777225813168966009782918079119431042830597778562971624469589249803340623451873324801107810570254077127613037296963131267993302144254589325592759271970611817886240667605270619386925613349867136871169324540353689611465090385220145820955386059273837725867664939695528569603777153991002544540351563812076108372823803228591910374854555334350014582120038840913154422489043834722969406246740624805439554397883858944765628470101768222651658317310581586486003425706312060535598769393696889319211680441686295818427342787282541040370272883596643605788074975784169927058399616048657300595959700764532020654203408164962511515650526324581541292089927751470708992654120115915783691496942793772220834964671898242350324437206235915157164468639679849068198165119695005890340752246415260156616712133548182918821271361742827041678322871508298168361295316063708372222763723598177289808783180426966577731636013201937905689983379431951701158951323679013585143142308622376317223678601537811850491289842735937114383131153959057544759314298403443507934468591575721133652278875113986420203202557138926013986868038215206694461745302691569187689552314811992166635106264620732353844127520223751664050609228412688828268618809809729333839830302054675200255961326179928488287056449636935940219776305688314115896526717418161381074999718347117992238471376330698253939252277571331392901520562188998698293128533880610386599113103443529277714798634742437628681958868524576318891718934175639274829577219486148075665537313608347956591586299680230305474187341631599066049358239926881148707124144049968500096725780465641604732275823615219484193303546935042774656121808974863051118377367160194864381385629736926489322576070551802317883097966653505979525007144564349474335472795244937526101270339430945602027603282748555024507472536137341926168634830618047772466319654601017418050423344044499481400555663516201032979036838941943321293720445209253269986289679990247246487373297798890650649612234761826244879117685293270217516171521615046275083311645482565869897895085071578937570536586325874611731401486973084798159327671171356757661590793897297640489878351487474031977944835499328288735084957720140270634294663107563990599261167022411609394471614144270895440605116979169595128509557959047908794656451275440829587776061976075896108295708014118257608435889571764163279167636538054184716619565452513159162128503273387036677039014827642421071505320063681006161610211884109170114954975404392332965279567347328010422631320678804977256050477005681467341084577710230833999804657233132128361097104561254911935719261376395175046637782080809429268567904147044487248879226537352683086734036172310007944605005837602268081413535974624267525722705330201021232833570884532925908220034448951257575897751732943340920061164740494472513631516595818961340727065412741170032268444991518663647500615761469692798706071053637576451384250353723433034958917003042063366067246846703751570949703624293076524892763346044195986757639981097668791841371150760818471817026581225732486344604067904180628419461190319480490202422267502491891674928726858386991162442379644394563662978153110879878147588298892176637411308119292674802698480228530949339652216440515161969727452902688429066513625309678186522418026837861334266540979081542039699223419420101880546962424698145674313242791100707371659019371967411634780629227555300010873488730641167382727293867254735808105915731538450809475615606813546493406857670638780119720122078779956240434571116608148860290572236446638667902383755924470479003230831483347140965191012679019376393600835634083679896520955689922085486313047858942044930692453978507570346201321560486579672726357137749565708881676345036990903312009281654400222768917292958568151037264687031964766070738439184320256331431665360613280980075584400733301637434602950229882249381148107402219942881698091342813858630248235353623069411962774029959799151005160114666859320787189314327000573112648779060029795388847352263572512210416229695166260955625931460192870519449112791437806559793547970831794542726227060322999799825017986361240659324284642141282412766237651486008428908233077334201559226352903736258415020690915962501686931901265192060599026325519200307428996684482898546353594879822983605797985789946363171478231218531868664516310890224176448697367973332012189345759158257526015921433458143831681736874489252283982663497820764839739229945651149286187751445802386854792637574906404556405065510715666913918833932400085256685518433198841668982788936606970963773061444793329849805423986979957986442315115829771092635933643640452303006114878254310486496828919362344826857033903150967879520818488152929708040624543899456104600976456473714137252548422547995154998569456475712226729402996937223543535151069351059265262325902687105042015146844560298121067835269630323295461850482320854868640214428314350361800171903447799535048658286630521229467845461837629692934044638978926589941360662186162475112595919858895464755297041218994676825827793672612165007361462214446607621851424573041453531102028448806490127830720733836304481302683276510551952391677940019041015437428916100662207264850486682241925346430297072481370413871329728693354335900227214435702470859576261192324375740074624602836056885534680573462408883743058558354368981989811402414483882656990748818899291114046686156639469420822991705659578525204411773246861653985710069413264447661728449069026734109157973750829519146118802883259789055616247874495570722838564975227270086926945569982342908854115540052324997501474278856265986852916971913372391488740547212879023430296081479464955001199788731379336148554860525600583094030386295516499792026008494338434120222359652869131300230370290907023013806222964033150550778998928634690597904112739188433653164052193420149549193234175928388934200060449757077619304742359798808516948273707819869899800965290920835554245311805686569055732619517657224752144034024240269556048031067013279225491519559386962863163944666256822361736948792332074417012683870003033253066323754813004161188733570715827902901437615659330134552772167741968652963951961889861292726387278510170177128989296714679302161321007783156844928618811420077632214180841210366521762289229402718774029015010044728765303931811303017137478823469625301496288852967758609073333897221807091179453124152046121107017291868240073570838156415457467739336759765864983386742261642602501325673942912989228097549810172248413179968943962812731081038482392954084245691059342474212408308330868551901420463488277153112847215680262806320173889528929721745517786092589071098412072892103858440254975811826929005846347011456291369078065164715336932085455794489461262738554857495617304709152779496231439481582585425357228946929049476759066825657280660432406454328324281215750505931989071745607984910092664197846657741734286799822839687434132021121089093335174863539853364476942023670974172370904605028092312040058660586994921585075455718360152316946503137172212922125720588721096380518992190223214782601722913372062098595712327854591144004413787696730578568719401809790257323216965055722709352374468259779811102699629288050208291796438189869552681803934214986780106833006919095058699403150138550417017742637604730751575563887958979040766575881625617749587911297129596291757713481729692306170977545518506793377311796573404785346817275313007020533876202083666077324274042153639094147427625726788032470268248525650712242856863603238718435010407582533147658997393259870791438571784053309934543305834357005016035784943397511443547997422195666650559759192576950509269508688346951823818897732953181906250397706976458665179000842246611232523219125572156913416449142547609144626111688958136794662078389231392554309574107450747311291444804196636162488553277301419882582524377024593812259412525714377013064777368593597270413730646543644341899676583080580109190587761505295535973438145253086206057448791236121338380114384860310108676212249484880075043387590894840311462668850840149888704764955515007319164791219876829589345193709773826952548469788090751907538986807250506328460515722220097007208763241516536798860870660316164875858609730895240468157525467021771123297428550057581309524695686927601740973706123435636453310436031434591280707940793277026079314274268206085078880385381257319379190031305081001619454043807408293199237870756601381521971933674930606811113033836043741725818607373536654818785181121828117894644038739321488016777926563886762822630334420519557262493257533238323682423817751028685869275763271192078728218697966756245966067404386771042613203009593443098090718836468796940447279675449403201388949922025640043058983405414442916559263452254011521859578444849850926120038708844504027555030374773358965238052280560523717428100301430991032670402708777236842067892392050532901546884634026217123427333738156445954328157519749130741819152104492701957878756405727321174462076088777472072547640889944809285996217316652938568499588593103461584056855075663902134096703185621302641246896361619299025055492642662357848497663616389400256796445838632020556861495861457098370643738332244311312567206434054003209271964813297350644455032738148552570143280859953409759244506610116830763156526795965580899056921040605598572922485999920922124745664917824576877619989206466980397379539270459325318368021112322097010689891728258272235679563471850502720654935041210031514260405171813798962242231856392587443449701665303752541038934643889077070201085218643667617876312227991218089447453393683198555509690174797634719671872704448217106867638270792382199106060714993816786159766877312107568334201739894375592122722352213097966644149556340577256563397746901745698822152825648544590515430692463734171900491969703814901769215549879596612920080585146911617959577408575446818883659527214698974271977578783603112116772198190283212655687116126564008738121618482438193279314698664692849885786129310426329427124309511255420324035201661819032430797372297385465667873557316968894834814166817877128714868651348260002218391357128427154084318575670692787525494454029777751803388289632181284035005953003280955713129232045778696101123635623668181278634790049097003097149916852018120744033919674102288074642958660169679921830916500642470942792408559878536435361911484849964990092742704955159236406176725893720761343364607351878824536279472421072343949634346160954351185772988644928466572712970442797887906047548076507238784140308020653233435796035649644984138895031360366790553507914532829978490536221405737397714811079599090118511371505480041250584860242797213161666535102489342002444313453536321335261128774872382470279826647118139313454077082330699441692624799273125863842507448966421520056193266065031671653062163413359634151792938737103271103151553369494046625558679874276285806623823350932327700334686045038791622609932273570991690716434125570469136046497767144953971411528690199381833970638986093178429826759614202665211571657869459586560200633404265462664564796671121921860273660700786064858039659434919055726039721268944016345790873789825637579333289247796320019701912881565653449558408519637174190197631914055737275210022316688246388661873810162454139244989178577699148126845442706918725739837838287026157799952696077436892850877970528427753178486477586378230895396555800707498772867940547487301916470959577867933985118854818949264259616866864033566510968370914781852340280502936657607771777617153570858826716951066758170535577603447685837637256147768458522554616320456759834460606095198892803763514723333161444753718534870965022199122717137571109030769831706997414987055706273757924517436804785936024374737265452429878535919821973924773472007048228820839091456459722869012724390024666282946298729438025702207818639275359368751249639877755499030215283672733512988176278875528802821857090641603765644918174766466911226722696287299358950493754977428258166550920453698583808989949777574930733523346643104187273013839157315864346567070131908769668323937078744945013609103122026066778960105793857036598071110260482816412708863135560005648543478011606973865747618364218346215476293963926624031223066150919275827476987383837218461407357484319132385642474186625278551697799778351831701586354316434910122045224652892745336154992485307124355590831314110603226045329172377348146978374195664299170335867140762606687311273606691576489109961624772279720320255042141930887678101496630748239536669329336109887861326064141740908172129282969279344336181895479354424842885914943283272514201637455303570872117158959274821330242785903026919013549042900407958717065934554998666075444648382235890454622969020774444703566651743806862805598670716309881127183887372691646549697738754906520841056826999372944790307783080955725515600641200046130517401913797123392690908329608669707959337712755979519869897511073735513352443533501175206279161702277338112053119089337114241088959669459245430706429000333097045532012664667345791731288453437490629301195710157629948275100860272018792820829348758339955706879860766427366065315651938800412261889093181367943751432327224548633818567248600155583461161001323854773036738298222487346891698584883313325217146867863041880037452425487007120936695089409533975563607352336455595064124240062091392402249833429615664206161759873635574823881407654375590911632088428068072077637618570417665813794980461016495381000751787829812798165689124414961634649567252710117544463568193905365090950449787973869190347144634229025677040707150568950496683514139866357956222065240640157126588265095398280648271498854700348685985151641347566231134004286472132878162022294484395013344915740693957124351008243057621213917670174674987220078069765215771723843752980538613141738728322154382386269454722018537757166758430724597751967794863685420995846765953333318586929094517576152274429088950453932666630682749538137313678443517310226537581014308973379499747706814462034316966572426329133864863320815469051809002055447348922864647635841222668696416135358505834265600386052842539907653458075195244397841862998758160883946772563770420662312764947676948518488534935882412923380555418265784733653364043253069273271498187786439051011395144676711247834449437873816762639364735167483664034444078466792902218623140904166067988617473387029476689876760570101136421292193570568210672481085584986575636367891926337563785091790401642624308121758166764834594048121314174241144957060837031799867592305965221335940819250771132109608983205755997220887555646855543179215295371094986907602098956499909392193969593171947568566997176599237247559928351403248458663247312243632878509731197673212942862134240312925883819888968852199714443053855755619399609845894288562870568045821839312745015983227290780886066693879373027131191951826294064931260738503147297615100998609128705113602972543716246558391776918964899624950786538612392071367557737956581587466138157522689869304610469549210093618784262391241507112825624935741650485871454923001514004634032647593865208892511170750805352110820177152150479490919111400321832225804230148024960367013252249712770800028690755834498892985283853508941726980225288814096924340889959376281854620536459191243161698407854162773246165529450856795304691773307975813939255656854111381208105612048447886700725632746800943347011963075291369566299101162585713618264555338358149604764796051861706020820580149760581026381129017658369209247761852319391595417522367079279798463001315725284213157114701882116424709202739407787593134405654740003709431402104812112772150479182323683643627427280766635660487930479976006168125298667532475295947466978495324795189764054588500102711651792700168644585811805800718610956636354361796440250109947126179530062801376959718396932302607242513418299491046108138851103642433818828731420026549794728812005005952221614580119684870830885934653711870476303601415032838020569011539750115070986555380137977599182975862090850517542996731398954360048454431518696800201418080829769986887893403038727732722007358736901697150341742527977520524934932799840602200489906460530762310248699547527850036232586075007720538909208603807211185030549755030020481573730452267118218543959603199747029038226809747761573324446863749772339993330819087679854992582401905481104573524907009195127643605608013714751209048620154570365736572281125509195612086941465815998514216075810403591222326908164779120655516759954458187138146929970162546335427810225448379237578234861125228682467278022044232456622353898564332056371413016476367890043657906358667713081868044331332207085753077075665842802288620816336014407892291784272739761995892873866180243655467180484178224546372506023186656235337674488487513471047024983402291188538326709227192301522048736781677777963953522653044298862439951717615931803868396790693137331942307839576842507614574560493497686336462608972636662303506138919715394950272859531217890730944226631563388258161597869408052336337445958179447579490567079982925891923559434033398360049081774380205671908447990550775679890442175199416006998881681940604252805891262515557267260194536354967147623582499415846446122630931700437639162618054457391185017538894026503759354758141111432936772381219005699824184124597163898307869054029000567536971999946608566541122964292730517006248046863627723949365855230349633503191140498088676783815976768397407004819979649366247295230279944536115886359101056110582973882550641468216083294153745601491743431615404508341876149188134808193132069386148129602335386094737712560800752777264022081211298768775743848766769444603922911628869521213698371173383956948786696892021118319428226888239026527365620708895774406398524978121100303976428297689612318776196334933220509648365479966331521333883150017305949274176943931105691672821705130424352348173625602595602431200513353933194604081797491365491500170948008747293864633712074569397743537423928717568178723867930634329243859939752777230939642529808639523480204736200131711089479553196938432487587073620283716093833526220694628521319207889623605236185801753623066119093905224303743518856567712972901626451164586826486113500303105860700122881508929765885529215258187187008279054467070620903365885949464861197955468647939430772348848575317804625604776521868549520073429157900867534106634901834151404036491728236862157494387328316806680845418255186294200325931989940816656426994745054973764066978853894657580995450522857186403990198391452508376817792477979221566831620847307219726355371518151740808039687059212903295584798105642245151820073798661826860062829728319025251614089987183605243916806666926799732398095703215015250595619694777582104017301700735016672141714949418223625056583355570071409143627395619924718337804008549102159615818207104297540853260001340058044682779638338843350665053276435033034353956583055890362819054891736318630109295940515672442361309217076251675026350843750885517105573725762730643332722878531285284876638991937711512936566963776608674474746272321105845071334339675178385824321064531383608176832230319094772631040177936993232398985348955513662713180457322610070236894767480064851015526320808116331258216917152000208114327715005343642549123740224852131062427810682731168638047513259737102558847107711807057790917798048460987279462975878467525481585301985311303555396475078269495905830554671986832413203811635734090339787318110374502074116572555558773500548782097630837161122902141216176133518817617726946472483949716561771298007073102495780410058370882224465148621155176507537523356271314518950602681820782956478944161178219046984029730748076536741834235080946447516832290240788815137535605366782405375444928770403107026473312648852724996859425757248422183988446036313866333493619289338529724342602981314121407808935931025221637682583142818876043387803419971485517652946555861968629079163924264994208730075890456464025894116157354069020561036737709174967567096947172960580428301388014784120028190180054533689208237483276433820626795828848162149093466738019728611649396188946478049617105588528924187681826951018122905325549671631316463156658623235059493687579334361017456702498549702143907371475673350367283795945208132917510385077160999432002460421071360227781877207547521400284225862162823306727177119244369493021618423197337878343913877008978115953006255820100706908696077761350340636025935015161420175061106259695758855429029988010793738082413036758961995985560469878153782568830743301371395066235256709228832132812108193134347758194912320127534991903644302246674651942387106402889947592647699596107816474210514579303595423623811442314350855941297360534046503149309306152093415721791523428116471364709610345253824548966088059951492888604651477781898528726868858908106226417161445618055906898531319743015789754959281928989608356896668849046853976889375592253358172787919249487877688721534017406489756501562128916227803902827168791962630151403232461770251796282859392554175258916549683917635829813992688809744821766907994720439449963333896576373572375696882253564157153069499580591638020881193934857886291079841397945699254247105580110729236891329179186219559860141013668217221932888900418735047754391096490513997792764722380905403480919585777896116380373674333746829688901371490250801347120911051528163281549604373843805722967120781149314197266943563774279227369422412625241434626034435936941416603656818580698008480240172537683604696003153064827787789350995893847243772642501852518786949388158708274051268684223322311463502103054112120218484936587260670375786460472843645775329901851691356016588547934768888055939619015083886175172777805317705668338904450600578909067210185010732347453548143095409693423102611239602990280945861350722696645974275180956247215429852360136403386157714232857636151295566598567486254916425848250110244888562728043202750166635196812003767336179451634842385663745374363464778555608915363496153720521705571386073062864182544189117449085601375582053713450967159063324483540764902547130901076292428778153613540601223396002482173179691270073161802901669818390495229314506505322508993624854804818671741623461958214464410690887699230492670174921754516984714287742616437478961659070803557736100802574102050711072178999518865560917489191779393028120382936223315514378683605271221590931872266479200867276740569192879375858203562946453214075169748016032551936596274433293548456027360027055051750956533213150761754624389115016868035191056055758402605193762294615735315675411923670374038783919179119826835892874548692650034293151287649140364914442074324437798223008838379755082126317487619435293189704037671621919297296215298334279433960054806350209886534998882228522506371049238507642682941642748886627158623705379293552219925677891119735066784370379752243533115229672885289477688364135518706729759554002193237354585942538125364298800730212094379046251503461032002121160685021443457906673367262318978381517973627533227781803698022588731515916965728334266273949639617457143648201851529378115521165848815894016701278429138979241775754874565433472396718799225391655830072088444524358445874958229250159375785476649645314540363971003675428203649518635185119122312581432232078165845963341895225536626170713799040050537231809375925678103851845122650250856595508465526145925291837505316653982151569468162266173772543161503859731828275805922888220630270396264873797843666115594187590151565921770692525674415368837241987097178606098633717861918355578192483980832636650996409487224254611090905488392782457257642424878141184428632049246896482308773762065560411240397735854338506702751319650055182194618401909057600771602815685897619963464625841842344634127947165962175993760077983985469030287635872036203438225703490064852366531816175774860621472894560682182604400276895485595569646695359231163830299501666603658368067547849610515868947269067192231186845359549008883547647417538386941995881479632774933909924025007969330121379609731432929331087396860020297428018060019347176446465163172685771260706566931709501737487698732409878517885635779138233083690112686977517071722890298213564685689625066818982747695990826854364730353288435623092814387064297205842057106086461157468979121523249286321844327290762589313474788976823405126516206766354218391488915922957887320705680091917033881106960071773804125181658597533177439269533677281937435577365262530359630921207281037489446385797401391090470830256666546094086856945423090793239185722946814410784881214076329388769133514462172611909616841820532980108496879541419346693185257582943105569142816258521761428645818590325002798180025395878038982870463592091621549858305298467954983818812823757008908110442791722897211852225628999905665360188524634802550030905597530019314727634739336057442464916654617746165485262692274580668191848487367850940891455067216763808979716765855156555233429910896582267324276621764638096825553888092377455324646403784008280146421000172024083569990684575301654728039656789361793144508502103513676773287609820868029694991753042949324256703061624972992445249516337761595789625461447413364365952788942599963753791833695378246199944830393682652467470064843223549145706952238715913558302642700854029359860389115526847680221495308291524748054303118127811887003693146975353144442944260289699336274037383446625052221656532786748399272947786705392878141600805211536409742160858739883112134747613498410205340945312184586884691847554317317740435049041396235419239196975926177789658218851827806901612334275288426208342050150598237855628692970562846195941351408000085121758561954077743702786694198526143373261411947559088446871709506030332477903155595792775774779061446319661274928361797024939847106497224658035878869933059604782980184968903695595294469321971266635675242830561643946146350604097216815688922714236558794153546000934768074004364411585214561958300938553644249460319645699256572184628093884116932163924870233764208579266218060690701996882525296904468307219963377301320140938999363452513519810922088399930268145767496889494846442522437731741055457176147438974514973219252433227476726453266531430456765201332914138768997686570663692902914392394718721610317372097409802360726451024228813207060902303874006050221752804868538708396222078152070870353483633840623083415504718357230784049405975351086453547332650774661436908843813219299591624618357260697087779330432032963730146121165786055992826844458661028767598095832916766298677192838382899475737535651733607045607800983764700968091167799553626650534284332975295984042712607162839924142992606547357172635611284802235541940565057167456731190922053880924457898397909451901112003219365989288138539128136430331398233797358655531481349568436533213750706116458045522711475595442340946929708333080997666748907197383622648491289313414969280855099438454210207100926285251784132301003728970794874967393512295454763635516071388267039318064157012389712726453003048595341526831987475891106080325898385650178964009881406597248782091583794970889911749273193357389406702673810469660459291780202843164065294537307202011441627757301832751450783711755358705390202770316443466664063628879139691328489977742176084505338157420490601564680946123630014651765837718246880936363311735712425993833987876209738795899481107490011686402476503879596366953163745561044654736855507297929531059324393340591332543329959149032869287867395940166298307744747542781481650637718785260490875074936012337941880675531621295923581098385257393191661083625818276464330855084031087047309201906706661691422290650755172461511498874116367705006835068270673615591061560286761188062778257007551873841168288462702495913008835572164764503721106439817158964614038962206877936331902963861063088110624433894371762053438472967379575005289982030022157611141769690956995503133823920000233428745881805953151211116979728606656711918297990935487828256750200047205859508236238481759553909874297760656769440572815980721693958979882926205825921681488053023558271932033890476715421401389323976473648794367699127969488948456442384377862869778621492367849481564814900507787226453383382242484341264358681274917285173753314193540622561079777477066947789962886862041298672707720638072786141348477018693828292698902138399252718927440556774429830952479400056026741465765335503836776204628544014776557640093577855745712710401974660986031594994965076941377792306842062470962012171884659110459447376706514353687696506161666102960478950774939015645331932331778810234098229136606250109013909152910462041312571488675364340241350259121797553092755008279039566964675305251387228635649411820538195504308179846733519800971045418200352673224021485376811232280932207888041092343037471601022874473036627395301026391499667435267334861552632468931807071358674574455052079199862904608224652439440097899875700358264831214665143962711855899270599545051575600416959479444679500522093785513903608815557479785148204854758560196863009048649314356869449662983878596527248823634856146152713778864643751916262088382541089788434946013042478039274385842426726483344830383101535905217735680740082417033701123668679979322500249530799948632463426024717372600561005994109550935748729004533878801044381588573237762216566478175556681081460244350062450849865191538408270896628404612250732126510460050075187204787955422240701796990192436413969261048932724731145051691561042916983284371827753144422695672886464080625111928621442946010432713782071871223968009096691454331816554711737090888922916337789410519022817415349279479376306169699342858200685449134346578199309286255422095458693059877085784502405866690700829246642923914254825479428648892117550522939003383316272972863403261887844181476989217199192279627793376212371670137836791172090245798196758467640353986401867759976232336543415140806830092763383072854518687624131705163042234506453581533966975392009878386619534020889970679330102368904383456198813555465774077496541693976931465119668193797507020528158638202659197099432114641917286721968052778078691199184641079341664763956103107116437591733612164829480950266635217506825686358575626503852887885867280651270816154745291921864577387604999918601172418217439670448210509622283735273936937637022035072421336783751204399714788101649645195225166652798194678795874812225692088283559555515922925334182481035183512128293828678652951073794974595715952860305159660625981526728355319999694267000028674098871233552061976690996007961354948234593293749688067879412774971811111361706735253653381639438676100669017292538211224560625894873190832635576608289217616531338455671162020627337066304894217689580115518365252047584414868032249614904384686485857979637077337586968607632895374138790095145562457457079279248142576840273357826319204043594506748305357813124675487054219925070530464884673886976939491466032020808647969635672150271546164779740435281907712696009335566240472994159655759656667977778074484950336658914756885699073161600706997900171218048874630028789049542840712383075549680791203295789159344431716102065586591602078692912621043412723340197936275373212741897917597876166123880150499620264266565843872281441784823990590652859878523546569908202129694138839167464332872365399978451264489480400858026838254750253231999933033569252769931119877812019429555530076947726517291563594323380124041332420617290643478936165571001421476658334034862346605328204892094894585013000115214528003504893041330151821621213263350065760573159298391636478495894014842749155337802846078404667362250007864121689460046335928283675976360009284397713560828504602502019757972189622289844782264267283080202931249525250241827840886410631415398174001128576170121360351308811208319814563229371366243327595582527339377087232244370045337823388982320636987103512471319249628493221292999143411101748280507305897530202212005203990685952167857188278743338351788631764214816964973791985196395209634213680638800711492252109697498481543388406898017047026671885778844559048210676548562051096050669915195064769340587283622438445803036001333353958630081007320518175901323300811894011218429928935396019860247213276812502041033477769333061023075308949411805286698406945793588041821864451143277576397796776580677039577309846783240858059574358995113750522319262444922325212062995442372663974905153220490497432856436996892046208762960072411229924741888427485161149614122765806575205405758689119293708575650041463500954395801352051886601162363873645379885637257469723711379260312690746649736765867443234811296643276727975670894944501111835319961702657776892788502374123739613882953905186316653181896383915274571076377205105971154844602212299418091127638933085111573439424591332404054529637753874427873243703256356716045962391288737996643142951917895929623063478206716463605192825009428677707727107694479878763755134857859222480505277928362686233529876196439641126557498399851061357102412048665714918501629559002854494028779400669993661648636000743081521062987347902383731668482576857773809699248297744032057843394008622543059754445630479875236746228851930118380628459435926498881746894160276469069005777293291749241882147052968893605509101725097071544568023652334659583522130574148292204479950470988533860017699904380661296284285953636761864426620113770669767972056445780488757028729677523866834887715139465729804073477542025375969176559550997776474655293742605891725308356496519158629817187845379234680708951324236532564940582454062708752851585083166684752939947853186627967587100523337270330584401067424162591573351844953781646931160344334636144396564451808520900387407397944496007283880672762842322774028615159184826712742384248173977861301578288671161857120826727852146683333263677338852378866967596838705733030866739937108869661919924375369604557050951987092732747561964084005402405297360834785948423035674656273858438497887765347815662146833961030931167776205412556955284995488872633903869884823354052752775057387865052153075044137713615356910324349583988143300183562160723357298833143493902537482926120218484240611074816544667357454267105084421620137297287803903100452317508366098105815586341155521995774268192444269447377670045871649242824239139995279729917378449693354128362461945920627501862461741770786566934468152515689948887493982634008695734073234392942060211618186104861808349642456204213281384188319586027907315854702015121528748004772820054416434955135333748315795731801357302263527007206873724759063283851642671187564334327796815952173887168016470969776253332332337347295912649573638480781725958023718719484859694236213675406091348657499930040003265230603618630324423442928909702924373822108994759758250640959279790274826160854758356340297525658136325444984763206192209628325663777567860800043979205496742267915107697169869236674218468590297606241152372807099578894882654368592344950523367962593580221072826767926078442450636108372798788827933411209387310531976892341860452185064253462863046238269535044619945564491650163550946190526560930974020532492334910401003264154475853122660221399520894239600096125850659226279130998793429314264531130971293624439254635767289428844401349784150354836338257822823642342423060055175282831926542588090152886251827115509527015604356150063814477477968006375673171011108427202391445549295031589409696200756466267637829667665668398909132109890440550159712981477210550290174062284218265083389543247785837647944795610905352398943037203045853450482141939311719183409034857828193898923407971395582191707598874301816009656402126961146138765845680984805164452276039609793247017837641507689974210062885833407144296871246999185866519067388616886231440373250727701762614063960820160659461921062144923661516120934989979716916637420475199622236361032000461175779154983837416806026644985830562017050303372141929399564205595633258956728140798906216931658851931254841508459654963238903533216901779439365472916167922745765866631977825021975032713854730135334198803122904895800590492696666487379266838742489914677201316092520387130701382636195391970901346358819895987813536341915617196725250879695937046493378945214155176822358912896508963732174605891096124987075176262431945710128176464938562385107159954449888749047909458043813121347820989524735101376636153171440320169584918996204983886018152661005377785631709922031775419960544609180681345824942159609735156719186701704411464974985846093962044192059250529210702867778060439953839509236879545120575036050712278504179169767389166649240518460502618779924175158222328145225169433389015799462756137535241135551483712634764812533131159082635639110661981199524789832869647528084244511993394636643805237849682546004661200314439717642720276887949365587653942421661943518382377062238505230364914452998474252341779560911789072214894250379522978229431933388639469556271314351883331550900220677127121526393655946502134011027968383208258825722866238138565604060479306484849158059165325774957898327177526293787014934938184749414162728985343714010636016314372153910253766040739053909938133338766317998807621754414913198766502929033187094627795843011766491354171136646417963553813085481661193934744716446400811485904711599943141037448409536696149895550845615600073016847906685164986555241851847938996480288644134024013858402601293019204213529752041317677501001994011949411870941845221512650274361066271291519745033004251534958166300064614386369104831733805412760846898921596998660947274168567284641620783812709029905313295671365690521862212301453887360316253938867435118335314319736270886982538245948348072529599887984956194035071552007752942395505578594308203983278564195521582297251746640593376348619957959375453926717727660982132101770168161616098542911700062061727033006118156065330430896814016182905289415120463644186157078114181190740986867769594690666418681750912229417988931929721948233374873156018322205678367103069403255120576743266049303994059116324869733265430372912529148782991796674564801584675183424235855045346488672090631210553348066029737788093620679629312534895843922618241399188437641174916980933633826971184699709721188179217562609193650146026606961581352789265087278263631809269688329663501496181782699448234614157781503505418134984192801491784198200964318252342826174482608598752834838894423284468130392425121492354512200462417128132234366300302480298307606424875318740348970443324635571468790689348349155291094735988722253878995522504284964873844782088905441908097125460457457992519061265639683297012015081674876749529090826438242806020566368375815479426242940539102030537877083341697848324683560421624203751132060473097720790307596790529456338241569898670481233085637558433280025088464370152256821229788543399022193312806624912194740605854595967438020489608748269089825916092491251231553082839834206402759663040508361314770675950812067013330854005942503488076020085220098215229511414561064788829478950448933721750034724474982730831905748899803526273375272890711631022060432118666544196044237326393360600292203783354008663969128918505170585236278590160467379010749378551391641574144023319704191880285958220224159514148703699161565764085048126093725229173770813118269309587281339530577763507697501565152572849059723523117120430230526535546612437906035385101226525146606672125005863549629788081171966696010238697910365871461714914653450081731043642632818165324487328312951502645623778376501293986197069044259484146001211012562373654130453803139710164285615195613683145081364087405451287421542289250623795236039345520884626473689655771302415790455655064161203745262237271037705143859401139120210959901359214777859559067577876823934611391507150216967464513609867099857184575143738227896810315347440172241495110070319113481269915690344833490177136220982261259729492747156373667615603520999860180130055070130981683921954472957836234780868449852765629576576211555441716232056493559581034913351727366746552748691202880181371087923244150308404366458819569231634920739424791977446957705166256183247819471046583624455944945846677010476209307900229475115640762654284303189793915492567564356824452204391735901433647712218667528767665673726826865288857965971671675190347254641077551307185212880306611848640006452934926703407958945701594532966565546326712145464259079036339487003442844718496731595130246428823257236522800084204662661847579680731328104154801099072654591689833411422485106377357017977152607449441451119776221583098947639472861343608832614868452355746888721210468926274202523169321049445494401913009170334320095161982586464627742693453005287115715868466619506365603458657860272298537007703448775325720960926138540828163586957919055457099425657239021347919276148964216295338716983459704556848521918667470219132467089356932313098706297766388410440509604267332499965631295861270935690309976861061870962924289580272540863888236622493868127394844174047523285811152313281558026461694405227183947232766393209442412697251702801151141740562864751262481702064338547119124358869148321211376966107256196456277647654681171973872375130916592323461033199785563792883270807557801439977495580699480919240018142547340694410557434590131460581673026393986427513754755971251542082368104622409134245542098211283765750388837632405291538957387360326328070099628525787542072447094425758156032191401625885314893569617206478178273893857156202384385236527915782837255497992394793065584253236432853212639283317359458464977132614865040392120680886051153321113568629354183621299470215479661470499817915025819753746604281779609025663770304498979345004092265212802223681986637888399898933134738292786079330157038997005670332898763091595600281162667850568055137959236067446918626836933233758604399824692373554492224432008734232839472749494248023505804504101331663187983355564121018027650948331743429067320615399948166620614105222598607516512564619097219767717683605370931645078487800905543469242632137568092369416945704556769549096005294676782193158875126438924840230642969142028754443672457514774130858485014458864763008850464970532401333293884672389260475351791454099140355856257266330214789860060810016424593514653687252531946733613847455654170901464916559178786914479645082131800585419974113073764584228070334661945551604637679370309949473007094891241102419912455939232319972478465498889745000650985482585955829849169783859195775179867802418870783931584770321072798275938425182945817683362612785421138538329753011214351991188587751358344696698586691549346708142871756218562594573488267919111176929886933646460335032393353846352046482502852563129803373733033990677598119688806081580780705998483516453331128568677062632627954998023287386726026933686228996093110543855374744489720850685493616729347662105625190641218008450524677035337797003654362383591226672640401666751762369600068303700842989925218314989397319560923905580605698494802311567883836091543648943752934537778140110094700080234295489534831758477327631021874931289865154923943085015440122183487104015104745807904017806052401039587690608620676292543507843769919865449267172833880832929070906913602266196522390929242016542490881420666459060221781871976814522514782718342656794734688713368942897375521109277508433472118213073701238025043476719050618335727667447814224546066491746781702187887837000312849184399383197476408782520086665101934480919096449884605401015129953516323082729052351909029525838713222805544593392049695399134638221844509173932441121821664097179676710621531192496816873103790091675896553885332258474191160577711985936909456208299797609380097796619316753720668308551472902534090548468971135538543042523259438327496417196832407930471239707637402917588548169145248668320546854415307015522209276644366410059615745549170563657004597704474889845052426927619342416220269648515059136136137785665624004995326143395398172648723926604319107341145971109270288119624624957196335340671941710570148987409108271904933961530866174845716879701692379633428656005458736432730719058557188727913212447443534287142086318465925600085937655604777394213151361590055443733515005192042293812133234214507301990326654092668523454751858415211460879645328990428586512596546854801374792619636066784790776299557133759291145552434579798743412776056489287781008025222661312827217012703827109417962917773555388538232988823416450768831641747387908982524073489930921638944164572771764570133404076131155489160824064897778697288700396010660742201808038998555797149358852471770061738535900512871669410857390445609896115763682696474011612900575727618017339004533443245747569131020162177443136478875781554050272944121993942619917077847599045832201567839849773079983751648504617526027438670262332309640513027938850944504844130697995621366526258248463459094419857298316717536022424097541702768617396638658914124044666688738766288378248071620628649644650610011142133215922455037782850070081290823005150798501507884701153965919564695688765900673125369810105869609145402050970167099106484620429626174861571873312319061904059940655408207903094362951806474031403509281728652806966077339768754586414052096469938703044040605901942575458087318833897110767193283677795367789848054643529951165782264498534601159382473009998911471894761955886726588237722167668957353987770228883285200706162276087485579652366866734993031655923501236883369486715962799789911653156977555430871755995002604268712827558261357044862240986188731026833250682467121480584150738758504432785306542199420922129564328947161512757635056424802693379350292393410002999190557402861750720376549200761959548425842044597122310335708153084392262683572839536177780377785608080129510386459686135276061656313907150558798131064797679701543268813045245831760835011161386955244450586829567830449603204121947355050949280613490834796299718046612205237625225455370624062634284261046026535396295932349817749838052902647037810370063582244389017346434622669462137101182056984036486196981964535270138760349639125507431659039377854097035021393590803194685792250764714538619545170433342922778087455900112018028854928063883669677452229321464236576113261475971889266710302782812506521484189892915033332014382715166227719832309583527879779047407962563019057225527293929503659759579576118327395754599704360913104165467723961387979265676557330313566817097096935582964303907975869548343444437804234696870823470454955491592457439509864529957463040370464757872826724876675559088833503062275741737971187271352203460374057039785797530287258954576531924373147560995269852561798723575888829115623345295737694545185929798987093728594430712472973808422079569055101830690911024448370941943970871139719298509729206551206601801945265984144182532807496304777633524900806277632107076390607933128167269450779032720661181766119766948042996375305437790814902095682629490163369137239231082900343146495134882347884436538185870876700760150524769294317424593851733874445030849289415418192449073737801161316978327431509925365077789204989149310703393916501393265241637864531231213533282498900152025202572206229990743725999281500662081271647891338391064523655516034702262425815234319558525666210519810007504199418729162519160303816569955786177059565671880245390046482876679121257120282868576256405560010873981672052970709944254201496717891852052324059369791058979044302587689385017093342727297051223496625346514543306339087687432567613383588318627334071667108926362812744382782063108563681034472408848391785481858968808029408697568345530502276776863450670783984375441967337668505286612743837901083595826340530072009451929611844351194853777977632270922785686535686698448558746948019268613506118796777228118602199371460044387718448182661133549752757440345437232259879799855006957936275380109355944754595574887510565339601336698620741108965382650909735420376225043005217374337000335484679939401928876058295129877060997960561553566903672844829762783186646306522780985717868422558118013067585226722107522766890636716125901651976290197749191503497358207060744241354548424255806917523793806387357419169885423509946211369686014299635632902480938574721789725980389374573447810038794422291052760173356108429236747574301485919350272290843464008106489821572243586500557790767254269964864543531360001450373286924963112192220056892224942589860836584987568834327964963763915037465311399188090951499280280280251268239433747725883839604681898712033666392513477146494090637115306511591513743545792231524086177401821098500025332515326222550557063763640935832701913627316020366305622030889606725286598271318359883866668081439577174633939272977857713388229288644547675050830211052475076766104642717344287317075604515341285339792255941991604654403321211001658777992081778941678879140209899603570734579555064269319829445920932566993171479918782591246060490741493047091524700004268362927409959408052805726012956107445356631320567124289519033535437883354983175321515300554577170510427514386380129737094603606216140428034514009716376088571855328540407862988635259147761964191463270801490881091317499192786060104761398142790025291400777502647807912708086810341038409597523374561822061957203654063819498007868204533605348403917221136448966251010951307421127962028276565731925631068909349475080321521007805820337020349896483883429149438806588041178022558601852092869324525193425108635379150980524769245586141175790402674782704909137022313720738189812567444195522887010551785306344779536542072498058587375791446358947346574214870224866811087907142547973397886445447025515645674826821581582539892285976832245465086371138892808418180159087212222331391479618334917585365513876495941244565535140840780620551809603337003359233184497115092108874627500746268191369666130208008586931259758693218768238577671078753849008163791287883561047057781777209899287740866650895340001186068331094598353652398473456974492504762980261550192237946083102118693143820733745722014976716344538249316345204266106213433959711085255149266841965400352676735498431193734794371609621487546714079102933938724022941588857453316888203446108536834129733352334714375208015884715439134728835932368771489252634870355460236465102252569064832735086929001060449318461647250587683911540923729663667993139037985934978802984651236720653268962835047839147488571794596570067110755052915185779198161853142780004536145119423096549011043176159602066441675043161373201536907370674389474569360639917574224920435778417133892154690032027907544834875233906881929370215781503093589386226868612187171804535731663486164635380143389816904480901137237099923789022727781406597336794480897592310003693292923867146745327666516591562669738559232688479577015326093884275393265351702297648760598013835488880931108334689748896992417800535856542915729300739782163235821856773738997423695198719086882301808004071545964509026556488179207472032372999840659600818683517720022663375756851808983372830280656007043731983518464963322982446464363089307919726487213283380395494603448386792915457764263732686966483887609549691738605983729132253552971689522702188214589484193577082163289308681474899989743099762676977864031004301730133135038791391082837074412418574848398487628410410151718109915435029786296814862889875054667982939924568156970008346798474996967290468670121847872501880580676238754848720785354487557222267182099037846140040002184913626547506655546509787133228360384013809952371336575326841558214682756614497109528436327666003707258815184119192097399496558225305925208289553859408330790933583084039669065305886407392633809932804947463610447662513751992749012665543229099206500819165053737831288661295190529827938762455644696772519456292980931022751979680400377040638979861720966519349296506428550828084166848706319295971366482034454702837881897823998549237467106798531033063020829096643383770535107523179738962408664741045454260527087861972009158139917932420035874519956934051897789275505289159656880006853821714835025920581453871327538301897078445054393622323325016259829321847602008600931131529614927201580703863092518204349470409257699913709297928553261728054841784480662212964588059035306388547738139086375293344699210435608625287174303818106056965664008874182966407038653147108555267022197568420371256971079735936761514044178987332425902277617524662881697669713046437255342609767719981698563797358733562779734920621513969051107364258367780306042740853401770760304813307849090146373190599934271155800605612905236194684413375482768481695051253194779550412746265066906047012620508137603840878936245467988649394223543876948881840259640110794364964048654332114070614459023566474395239358255275155588913048685653923757045077108692789067615484789339414417533759455706975718954479631605324934376648057156189178396092410738465838685221341716540845306860044336869543679513144548708732420826879675510746399937891781434927514567724738262492256800841201327495419058445831260904159254261718956124565991458040438168661190514927380911652095852412760058401133771903550571198868734477808658613978224595303217633394938128006165171999895303192126281029137765495763394525347944974040928214379429184914328771824747852254082878261468536070363860021849494921790418199334497987068473163231258510502237631603357095500028279735796235085339740432050288095047974482045652173185294651838320326011797659299004496117752859563515716186103506796579150228806337581948222028742829705808988597884171619096844186527277247180299766369953459470792059519444277805499037739303499694281791976108350226294754361576934453182299236398866258216324066732140559997960365981339034837811403287554831737234050201929586185486312843932460517025581859631344501088306155739451279195239615578209146686198597048566316229386682692582195286931814352962248984029017146701477007810468393434671241556528389444541822637677413663351681450439161050270082044557138472967929628031743233669679699179402655264590231418041715368018783014612160628851731410683793973859944273312378428052275566682340767864782451580835530076850395356263788714112842508195908831278260185671682173060032429881871376593815388256756255265390491304841140948207793245962053371632275754350262584520914127425900126508493650299178631156545358615362475043300722096793999526325469412840697768737702718011937435425035939494938449709541776716384533264524527764232047262642616517013349249636492890365403905834308707033519584421951036220424370251986872895807752859015369309406647369177465402431208824688920462565728027598247358188879941344847364508662813358527053557536513794950534892391613921087793269614073895550518557118618616897584734045773640980773291100773438302657397996207934737220963833840850504886958306872354065270369285974116897483398305008339768461515618633767504292600016660781184285735970057997002204522026460289385510082621657570313289478162849512753268721260369908604927648638953333704942569464479986692764464655367571738877403970215649037268075482370389609022815911002517972208926385068534031889549967492158137939779945613981744351637471424044512943955484167035285479336188336976794146768404254833863148202433498277528878021249785184169030374959406553144565282596855784989022201005807616002693395513827507343538099384425697865343682854905132518036453864461930718334864401876704920327555711735656466408432833814146337026912689532113501393032152794983636797326356060984946603743824695052249991365998637071276280310423636003959934460850548146384097161027515790596435381060701228272353088350105427296644273908341938639513263238891032646161777247871363360560785415433423390686950784225908736753479408283229414081561506774952767032691261993527150183734228982213222135805019051442684650515219817329180133089616117228034408980487045068209962342221646345484711881587462247394015662230368202189371837640166209606174070668496073063025615005295423252084080696120088552544158915806167602787805359452427146732105380879256671898024149511314087985485184593008134401129804983433677468867695860813384068084351935173464527319800954610992576882372810217917374086539016370410235387824941522402672239885665530407501116223105545865815091042217287394406255120209198536881295386786421466768691062411408650131776818328214431382185965900954826079646309496827081011435637286377089749919325342551221186136137887973550269274196980507558180381616480943202742457494189767190506783071089241453756798348006024455535620944922444465695857079105866727755566481172504194465001755162616960224831754199835847857546775927797455940007651556985625254895214862936346253773808877487399996740658960256051580990099354779483750252372847609740926861748458699382147210628644132270773630800295302464782217733836895191793102461276486771072787289688347719182952871806288877278550712334525207963575329389970711875325059221138696224451766360145781300344967362495905413423629644653557875687170384165350393983277138054833363174700810633307856265804287937987938572373279052081017111170751864912513998079926451635437302326901749188528110159614367625029184463272378629120861997196337618985769671890286152107540145742181257933342391175891514623123175314744837757700364848398086599473240861955727538283666285782592476977347186497481312672862280500104471842521429935626074061673137283872874498790911978732669227958860889808723597905933349054209569046813979486955097886773188395669781657083778243118200049817402581311463306413290259254091333060572398880242675920231576143022948863097162789082063543056198972112917068929955255174985555570490310918405971445777649973795720331236067469093926703881659705084692809721306884451932874611955328139519533775764269031888836232907272059876377730269638559074544012561232016821679685105830939209694052972984432347109719900540129192340697357565266651127280827549048743830105064686998721184852566963740308798611977397776832646116643443369124403253463718170049569119131958680365408102887016665065568071255297460224752726177903741421707173928783872211414369183498068091926182729748323296230761871362637677613351944187605924217737158869142780604577441211704795128866225722362578840165151812501446822951472713582400039020698988368162727848409609213977935089559263540387550439224430461125084856333204664678332327000185001444887985608668087163330473434212221621697964605738372575485824392861635128938486831003581774486646242263547746045971124786063734085524240454283338795382823377838134203657734077810935394548634204951287496111158551630593118227720318436328762561435343734413829936470861162844901217789422256407931685684420243335116133808056584591833885863139800384146350743932525469929291944274398686199244403062706635536902829646778605074768787731746486938903144135021682806122374548563704830305549878253885627572725519121893677236585329947912701159935324209583912488038440364279839791952138405127814193737552192400105128259967862050265354205849114346842812680572939642685624971666215088244132068568348946230869784053114246193328151921243843532251941775238506732314823584898730934156049491094086153940289924437563398519138626858606806436696574046726143162067755907326784182631365471659505138615390817504190713142514184255555914543878029327233841515258930789338102481556052543257762840928032165869522271763488936949315169414179983610884083470275414150860264393496912493482556193664992938097178414953763821753662527514314031424954178682467904655759609174544353653613522631757705606757723760615679767507165786293105222482618714455445883131758440732387183240781495946085817959993572583510535591940707413707557516648228204138145369490987761819559788460760208008465865799022745708609151062140381334979404933915240217497709269459992291771024322581130259007581546778423230890003397887636769923370551814463598048889574944327144007031908238379380539211505046770581145822531355124891132554637517523356031691302195462218732735902264087724498814889415208609186665535659796651592922368647669140916997025345847099440240164323657743649351567768227029634950841234041724158596330571158885953434573328486961138752002817945424102967072787833113931673435345788438778748626857217745420036916616254655676558031677345264098998357896411986723247904225141829265371867132265755300446768084057057914771151259264349797562134071386949230370483813830747579769161039132600146896458050818401801113390621948203007861052909994799894255099189175363461798068889717307218862922977174150931150200190333468401300024512558141234529564740541567286236521416414731133829564097523347881757158703179308742688018265175519101870605707789587809025698258729333106401159579589130044297438164252035943794504994589675324249175127108519615226684495819572742384036148659228748110253722248294028026490412538069982857917455109647819128715143313209931067046524959120697364780057945621388200291175805119522176659200158371809528528122565928372535079114477893803764794159719454588644692759247681824934472021659928220951427852942697957481803860496953612172301484653611673952528511603578446819205686294727780149345642040413160116395305988896582254437326574597722841417844379774104314986301820023090269617746927207860366094245988855460579097336005664651122036599920910486314261010853280877255421989234012610332587450067192304302706710675922496830139855816196126672926174726867246586438870049562669775445495989956834364794626262970424719108906119091871373486158108954107154851229626160302262125663078294096669144739863891808757170268000336627808474306244956488007176546199777773926142834078807468006024346357681248622195797575625577739035620376028939605164581133381371818237693474281685702985280965576138252221190667491408277156443120977683209853805884883559151385548267796701752585239047299898462772760389615852313138900292311616620985555148200601857769660457472944931769359551398469657287624927193887303935646626225612870946995654318077244502086055570375082788496657351328549372341901035613816187244378384429744610328418777166531216289968838165062407590840365355446616384174706240824007588370385620637156728188356081430759735394139150336217949605944629778080042524110872956768349601482817707843896896426537108706231427371635221842116653002988019131627650195345910682963881841613121577417542932115123819852178669366833777832423160937712489590724538299076255182274258412218198655175731312155885164172517186724600725427844705230402409111259839729565012074719203298878106469949483732097443179480135002701393525908777982322571561153273333942801468369499423437554739877343205326050803048945856565346020097216920613521691711079199923037096594974016177276571187835457715945587800684291422573802797766225068888565024810535623250189582515726708710020290418328812214081827613414536605215240487583174604897764876274159191760539526352484380366401963633907484776002113842622125908803973527371540709733004897024666831864412771409201469682400391698961753272475567236404721609931408974052576953012323119537505232625973171595171871110429127539265065343956062455802624205836042674228178860004954282321903567931962286418610583674657502389077223546047204713944200207368325960317316895093185887036466226158737252595825821786606690376585402404515210083855641340258974139041178969832982867928956873302328153426590803813768566891707106770853992538382605907397434964103437940341294960378374548411798904322264702842600165064334101038463248913581937344175776826141173659780913463877812968043032452895801546227593882513465592319432254300260155876405811879836757456299090937283292791174395155895079327390204650138551894809466296485161538844753274682251661005135943574802185049314959901790618279711814280378979688640142717318573830710735490021331037794747118217696120058674856042802000789847039850474427689263227239059647768169901637287874250904925370200949522136351004927696537718774064671292224624721101563994845935852508639865209105284381053029128902544644842413683321098442973603382126728730828468703426411090094347520982166774192466732533796352623609484190649398491769608208477256968248382273096973409640826788773139541573656833422424998716618708494465196119180220885465833772362374565034753755711952183050645260515405541333077308371160548120681786194943190128475978397187454549415633380636888149268413385693816513546669782717304155413733408192123237728458156631371825073200679447123576905808722450551342255344573577916957995813916162071795198911357617168417485060196867580955545448699600877633690101493266474388913722427163557419949891263223063729422692530459994281131139979580773031362905077596331123039794299793511252608853203540346310232445132900649167569705050010355732879235654028934327141527890718062005523595085082884996724982318070666518397828257290094739342596203883691664045933281648097749464460160928182864406388708228476070563192032521614026733847094924411746373705781321005104857568257386824575561597863287731636078852256432623464521116148841073007986106807176733651449316785514437862636737965057263887538861126183070443994165979305673800708154105036063437874961580998244959502120436750101483672081464357661060310034988831019080044977070141863686665642645597371009720165050625597566520285398129971019351289881915853757412975537960571163795857507824142348643723336922724359829985462029187720365246577939942917825063472606045868543188476870669591489026217926095695798556084724180105027460927743295494557884303252239600296214466452757320141612008846705537562271151062222242416888681356620749429504170765203087152064822630604380632118175006200325185450390926130036297691199520698624012417301313602983447855011110454689828920615558784373408902815756150879852046367075698909762662199965041533117335461513936928453429410775881794707105771667096952504582908579604260991114440358175412232161119939995967521022749247467334683926560494981185618272745687995500079810006146656301599188133662432754915137844322272026487453035073384927413611890456020496666409922395008665998201885012287120604273199803155085056160473199723515745870535725960971596382341230665524607442630254848721683299079244845899633895790689363899035018415094798029595984878915389807607481755101369440747173993909510750214486488301961083963746497094509528983284595025995191761893532578365454106828940325529724179546249241656198675548788346787047683002494907806574781290576797710970261439539397068702139785217649933971151667496659821175630632115787474369899307597458724476162831899499349361123703912250127274685615782934522408284720411341164232780124922960505365660909718725380583245035886991602235335827455166361813224874079063782364055987399531023582341716758860538040355504560469441266009765237295127784908113009145670902954038763318494613132321139382298576857553381810534258561487871389257506974779906442295733767537615876087204049871450007139664165500963725996502450988315207659352109315149312455166301784740647520677034272536566739266356571423723240543284100750118170223898169952724534777476367623232561872052871252446942305802706169112558905277877520015841999051623189084979291914589877332434945373899376928406727879862154593417792398781816042866926155266691321783989507073647565822829973284895011678877510524294275219461462573576098593712033344521529901222099179494630560509824404485789570062201597134657826069324319952194410041888339064503324972124021114155013163006815643403856930037216652690633680620360705217034963323642144443302805290873949479225705495818773682970453572329342544938845256082839618112624638651595836970092468623156214563872271510711816225757993145291379225015340092359201871462279619195896478444365537448342731364722216703702306565859298254354133983519699930584046101673969646873290191928495793694578795025920422552447433994478531718634059834303300695865231732116894541970061690341954439017472526358670747665388500010870871278474628277330487836364509247081259653624635145449260868350008585451088243494863240444034199962695510635073899353313738532891786782545721303394310049608989564233071295920436853783240896035395651515202358197299025067696912111625886541553433794276671227257445330376397636019519993820162397205648523881184042557862510067297218074108150826632062020363423007371112941441853205484165547388479133542112990967900792044598097464036186891308498150384748046745764619194617008763192146844396647322685842468850237108660025510012856872114057021288500764478104758834234035303838899029403178190266905014289985681678755292368399814350185262477423279727855087895659345639754613206228633685168313375576630573670758596509041485293538405586075780602156397691562379381496497742232774067592962425284905664001633553565282878107248776504500717189481041405157660683833450627573264482119002752468107612478845801134770552316276472758840602075636790513178666891101114162357796095378268762925343158084257101294219835476939209561263074365033033783111719815957468682731619446485552972210444911167404625396035776597482996595302321848433426982535916037466923813260605977782711261359266425604462482764287341304032054374157470459920423197071081335590390934672889447361072519098247083751448139947485419683305748965943136478379552188059112389433018249194649995383576632788787710992845845603800081782039873728795352008832114410060029004065285215393675538833170909972271912540547694852967779065080213369925814877842371298843056563738957100081238734606403933638850901108584375082755213533085096367935778384104966416309535638907665229935002454523713851780810298000492154588758880971930083832141428356989559290813494384286780924478932728397828180909103979503943344350277296413443264649711495951386482969866288491134927304076533659285823277735125084006449755206654263219158125130589965870813102666980649777988032826694153910826522399189326315878481461588681276533355671668228164524590526897701967858089567854362459667344067422800383494240100735652732635605839365297285523256591149862560511165852477837851071504513488118856227182398143531206732158235576876525151064475529958914308472802568617659352088124860145704775769793679239809074132718066960241617009843267653661739642893356871196902740556451258674103529473621541416221720789717443307254227916747595149418345332378522219666028532214686722113678407262802195398924027869089153175003228628926983172747682299707432233520554314915308285701157819876631320860987367686574970511520082832275676862283004489595370779658400486529059740583825747942550345591882585466607518227510391191851958993636267931630376478619560604386270023506984550150364688240411701861568960281034817823986795964052786835844592460086129204735536437452414423280980061812701674490503048680427765877699893584182602271267664634521321744139956874997525742636437698277823485257518999001831262836382261434513939744527388724271075429576736766240586728482649734861581073430022040355882766840684719699544460698508707237032329419571809326730432486723891412557026124845903751079968778597887845621869233267552366607571612968720406324435888786482437015481051302368218947594252112519030530853073352194745548043687282484476124263108549437402359721604614076912957888442202571379772655082465903213308108330106849410993911033917904776842546248333583194753062877894170355934914027889032602065658631987184339760361980470246028802027882053490621471653327572867322018634266178548885345411831469288530762960569318825026227972158794187580957833716047386460053154799743883253251983822905944904987541224978990393665759360545357568594201509132481526508022846416028106573138873047039517297548961671090499976461789734819572907997180399715644889340708663847727586525808675339180045894650879277679077417471653745424571300176691881656757147621091537980562615165033696998900167068133369840866790961117433386396986766119943376524411713249703878554004815704970235510656687515442287628324194050483781500394502738018406283613931445888157482036616460844398264177988742306239908056509166085067155013863617134941167725994062042510285978406343916564639072470689618827557660436163361762647595301826930584879311727999763789968961103952028187569023730961683886865971464536523021457563771247157543608788228691493752665498320260675993372163966140561774927910787541558654502347014367672581946078126440657445593353413087372735605958886389690872424027576233509103018457530455810500077181693395115153208760143780204164230157741623953258275131348322143601256402877672696780225489999513566149649806310582826644517350784133067926387798331867394748020388232417884670921649101746988105860668329386867512241204384984242922372732140994990037307778452780587946732765978915208643936485757054553215582209857996162334208224526229232067680302957354314795640277248184821774602045660872698750583077576134267788074964006258068522114183355762535757210878817102610427355151868590949031272679408949509703416358095861885403538129659015109382665591384579888642297257248010771501045698566980313915017313511932227842906093538289003666744922360453121947144528425996055463093754169705203580786937126182356670777559863646881337204040808281941558881023948551038369525800539367916065771720880296048033340298525654460278174587770580809697652373705835361802004201020570331014076267980643536593282480330742894080566340002697513091324834211970743595507159292078658047265253777098810157586997562449882238211375781524669979025924968738050236512680582526688634698187226675399044730679177418885642815335205735055373898320636374317922905799754201792891124648043423225078359137681235704232226870769291934224609441019227914637012668469798635269678003666217815126752854766328944342504273012282763500200434418963195745161889272693510682421405284346961803809793623752121254489493417869314363547378529899638299306494827116134447281084941455013171679716686334185386178512715982374884362107833351470095208469714798528104893821798202495334731355587585151296076732343066169097219805891203583286391821589186101099247899641459773607694556854569801649240983707850583273799748384562987046080365475225240983222336966078319293477758413628122101136582025718645712397736157623860362597092324522834150942563153257494056212160698060942237495260991589267126967714074518939622752209244584598785102367783433817516668378211077132000971664076467655518271930276605030436251673916385318042228142248867827190124426672077016638627784868162431247092529908848027212297042052523083008841186117322860472961601518688482401273473420009462992382317146026479831787977650416954191665688750122532182262492666357743958839070001221812413885684029640692897409621683743349056970932265497967961583040818928391612029045376025274539823483067655170049516399847732851009495493378398627304352583388402102652514137688171720040511552802619458992455457753641904603930671813440997138569199181724860537803639332766745181889639493026350603078112804922878903082227208453895175622018902443250785359501939307305106678169514811598690304106721816053683118646553616629470222738884796197351209997345696376036869637628135876708755843486911871459113243572081745063615377322637584328529613948402372509861260355899546451336203574715975873170309034714315530950139700592793044056873292819249693026929263311912342009737929918271602337087927516408142396321002566419549307794714994141474282044963238616732175154516000724199913343573129058657728284493318347068691930740028874740690528951618983564771514175191783279037900901608935529718010471328107871446656166025887514645782199651981027719935996300395039124171366809804890257683383652599055225604200721180201293730779153625526218932773631292892479541832446757716282824081086025708609834416535036090954455371399456113904165593306393560931966984414433492110144221371832063535329859980697975543801753418245339556054482332026076735835898236691065285377531744683025251523133766447981704016903953501831525025993458731230720013323426081443978384206590153269396409878391125215075408469913495080155047437666445656268882996803443903806038604546005460635392142007191807474100526634704434574152893229595480818030824620956079187318012418669335450113442506441659389851503168278085270594080720979227698616699633140084906738083376452628205239789059936872450638503504475927638475266464529906820363661050818318904845324580944309667394553540491483342871217065734617887962989590327204799109688957201683613451362966681904069735801030295845160932428192054308952206633957114707104391389789150465945516249268355030477643606016496599392132817849237968546227150662031685951570622503383055070956671094340534612889237658290197330871757122101177111927454719816573703952491025805050582276229773952576893086538984955612301797047401203834846244861626906816536957197041581001621169047050103758564330041982098383035228033664017103777892419798263641640356049629266151496804401849074190916692458124008649825315809678834878773772531606167640903470278258536598967123326632997570656588538233145467662934992933009621824021269392320201438997933926952155189814522145133463711225408254512380896550479546456353137272888004326287895695036040303722675637819409397802794173765974677684977052849727671298971367870704665134022589476390501996836701649879083265904563570594226054038027374349600507328006873287724882719585864035793975010894726147581574345873017532738194794748884434746782423163185691848040669747822684224872567660749066174671911970727002385423231945778980216372016845280822554773933977880221467340740073122649193370290774640808062882880216537582857586716670125475646353991290368711530924051017536183721767864736586033356739242976023088344795444674083238772082790897315036861130917529792488659922530451824636365656969644416386394664141662367301068526367678814353613313840685120152560354036529184515585345915692702700742475292507551319599229784128348447062136562739927063394401747659362486671355149002685085980430584279784592293969897774357228964937974454143085508886418214908089057903364660110702960105017272518936876894168986264202269310174637606133936860027847453412405201868735612255682074527110949550391685027951800180821170711145405441747917106458965615988183117868663037988416620241590957889961876670360257207383787117525247185409251004184377238118481366620959306552038771522319402208741758891373040254276319514052775175318385734036099456046761909945271533347422800039366593743758809146442476931134176166218397115798205726987747362023546589277264623220513123854128497169817554134017677611171102523315621932974295709646606251236546438792470925568352585419058664369838401562512259625352906463705846549381408718501858232654589648895564218376496853396016138048343400093782949665758094237986697585383331370081127538807789801040701692449238618225192072678384330661523618666441118802971370271234883819104616208340083647446344459539332567902017384996909329262128486300759771159531087408202021350221152317940366758886971131404431649688127283972641002635496403935455032110948578303774218861100895185354963211612603630310536020933833297772194909731656412769838085445614545304748124954999496155222076670228460682669566259950722042001875712067493553431116602271761176234905315958617528299693117383141346439235729060889018227928123291666401514266117226663606075753103415094528315335235959127976470786301739517675757155636050785980312551441829000702406542435167419150580926182369077695174179844591873573892174364055553204803385526777677460316095294002608610523330116152626297626767005147236718764089786214178517710566495792297078318894651226432152306468679136793279594402409646988640581464150311950156278692794057661590331963250933803432539276247944636337377865412063525697400256283145733140355233796233798667733459616856594615616044404929282053827222593453085073415128805193781853811115049956968122173522474550695012681300405977723920628319527039639646193788564092963341198955171146311078818004422828818078985573148683753705029248860202389089927879863176146962793440298653682701485583439962855196753882550467139441820228617917162880790331429528306451053224586049227097320257820263345166589031394033338642532249729568713822697963809892872064243845736217244035716146749498205098982493195304272937728526899105710179541815431158594546153885452348722696905085131171405592846719609744721383391262193632818398290002800364008647451582923734814242627135838641193897202277352247790481539954917990538962205173913851391650351245401052031438764932618501272276205637855335523179587620187743665291739378456042178543300799855460292570909360878692896298239992042853500656276415596043889799154887365087546345625110728865021897772284704973830068865726034704528199320772912689338115227376004390803817319723856040135672392872510942976737842372886865892785421852408589639638846753175220909494216706642465812268063133081473333836965112928439330529496340465228272691180097385149676003636080765553039945417714499122671663285304947502274135158858076678782380323067697992829401034583047443065260616907595063883627097199853246824375169959155922537301479949672745803503660483686310261712749647418384464998889745810001238653201601994210858990509737990832684134333612143828335507352257539984303234927222904994691103683979794837527872371902924172613283721453611782446604743343656678918841850431005254543204113597800428926230903393771560215167539976456139438501187517446723342119328072241331155653465479126627297300912659878488042155281513372280733246017944390467734081662390019478063567192388375664550169083701834219478555434738362840754721869086899895013374928616008903215475582478674144578329083663835073836406978305244692431060683319058991181262774003643323661028236851934235727276719501568209768951091893628646273908372943649163041217329190604268886697714810088849762083092482091998580014079248456650731358949426537594932806905783491404802640937915128225570814744358853137335798095963657138340539334808530643181728141404552985780421465775147110251027799303425299180781710633803049227114994473022088037339021024963858060329883424100279951994217762242818626649935081599390911662509544545637379472079829447099852850727200525637661497241681514282980283576231542971246832513905130054929680474551518661295000145425463008307625249811797798172975089282593517693376581637544022513474573085851161141599169301770005813954028551698771504076755377577078565854373439013527523413960057917764406976200185614161854523545918513311277667305453490636863027635503587420955905672794800308388797340875910181552331536685094412894218532852073537082298760546748885755186426028780258721069953905945653426858305574840404615860467675915223486009250355927586139337520325084654448050276121107121692251025504353397481475714599541481637724464265746044387020481484313473101683528216006654141110064317429493471070791116970692573990174460794031165506935387222745865315500334367764784029197098121141578792173637276310230553946009529840007933720512842014002698185822407287615294411789216250958536870520780136544295019800486976562754313841784035866041511889334488575721523279047948243685558678338251737150226314632737090438932217104627939739489040071551098095750993142208389115925273542217614576535471480710134994588544313109584938282035976586778969108124183033850725183276709201148145925883487522749075270901701499330673789922974914349082371483802471718563598641085744093100913043274892296479204107583321218138965815068092951163587228250816681048749328628286487342058295342912327126749656917176176026187641074750766889047457656778900056441227522999755318765873440389832208573428672535937807371045119204489053501519708303600762690781534243092211786451438747081053808377557070265636009580249176382638427909871379217450690776563870348775662741201903072512200043083587601890482855918038839869784438165244907561089567534869089917409309921060043020616647128947684471631504998576326397585044482696598050047905715061186763377088598458451407570525201198562001513108669634520234854901833731953871724680477877131272556465693280287629830964514445800892804495865126985475212553052110847495504765864095682275437592572925728395746499554493962087431315225760508726795291482084101528061225487017280104597494798135561516313784090968995338926270502910992574731417716593024252894352775285365314923748303432292431713824343943877926290446622233744405111248809879632673341363929092640469807449682276014199232860470199314870218267849511908352992550449786563784370848632518755733646374962014722033184463626987706411568332728447883335206820779069768742934017069035333662054462208374752296741243500553356165328827183933438748677218788243171825687888678740319546238879941378635855453874556134695978572790882826159020860384153532187431698808060393606001723928254379233260558263485417809571716814825443827006171602660503377535769285914044665527672218514125468780692530305743267178381149848611053794523305925916351768592355597464919136825098651916125200635614086993193263412380114796664632026016681965684216546384412100679521983282646060720711963899911733652183647654593256697071398869456085719753167592164131552617709741364064484172402340000349703954910308881989357131755290377160228133688857104615425314646985905562687738297770514281332127892996378008040572265674926794639429325754718921930874605345459282201434705632766415076643549086765449422300088507311658777515612731129573750040859354598834515347468066241393946558445988948763479281984030054748140533182764956982182178740461625009761208124379745834849345335975369415887010720564918093811188051771734075623539463516176512840114535254997173171008566022911641130269837257372928843049846369004445416720644237246025522317734611560340053147872250519446181723761774914955812885839675737301668075748224742141140875751244890091331018780043081007510146070239589497955142507579889292346712250712483482320745123738231390883093929064729761990888062914396409968378599369508872945499072733838453453056681709301038217313055592540440823619610259574351860589916155582596680027321163173139444921231274711237466506911657357711158203105957727981291061775748600182133892668270994791020638746832633834876354894523302091294713506020840428668705232498312275964248227000601645262301194032388888651957884113514349876417193447200118236577136750631358151824343946017295948277576667646766493828662212323690957537585501012217749563512587758170796273145851259459477923718736750255145610527116640889619804852104469830176350768385840847494862490219776697470252165545158157989573215356288917099160836368836095408639411521088618581795265283903034590650134985794453740225770589690888203824606903145433016976680358424602592052547240641797700692226962258371772330674665996380817538100563980197130600347456259734734117767629556624243544775437817845767719483757332379786956944486150647366109175706230193645629327410892885009989351015994607256664995782300563318644173590046067715324191769259517607656433345512608004455517945446949229041963468633291940411781365854129489861335676776442594481543988958298009287185081883164089625403453700905015965614497173725724488726239992382068479435602139253052116048523659194015198405125090995874948433924393516726261220251588453209680788090048743667060071921400266441685841389245119870113902944646567497269831172398847533267566390359274565869050294442460643458528625795325384482900669162429132010692760366289730815847671480481182415664270398947378670487138677723497193697491947583662140233986037673718657846524850787174628334012944115848204711908961651990343780386139721833598193401425779038366573435623025451984621527583618509119592321106987244749178291083705081910550227283092033860308717727654560914044487719191612890229954579107487758223647180113632994801733542422903447628402535053053829089978353407708579266834313647564284970244967705305980077724632822421846561518898259973119903226184061207902539724482401634505783822575676438467406688479224979042811637919128591101797848703980569326404704036200549547343104234713093878814414313914375104824977641432724236997559327790743353720881184798815969546310481427597340772655766138700022587777863162427973052263670683233156378839501969357558896114312193708263152608345802842109929406350334501768310433905982818707914945936251624574781156336354997043009963041530234258480022571628894429865587250995328138588580826383037928483067347213642669720472361876486998774459478755570353729283187850957199325970394723145101282034334159803990258882551788002074873079218213359603939171579931178802731364028886186564587622226254029586133802972693192139335678929649520016020042400725946400225682998264384180544912473852931870347047436300567630890728424632872273779210913119936068955042602730414396500286432300005014269530694145630253043046875746303737640458665481883354005969278907237443655100563531545832139008560763243810194199351553832030129963097263660462500427529860072836101403921801980790502647123112530032296546308338418919520792587082272536939254678051649572093806613523299092268350679969651217733127214077708940819453953950488129280873826434675803052594502227663395108435718250630325294162119429677991689059894794867615174445444829576273253635609126804746456532780382709891398685698367273390543488320870581545383947652455243034855538495060199235781938262784912531423611603813969247639292123736326992366234625278296213350437752923611679111624689370493985392727337228958634308961956295225760851433956050260800783954310961455367365793353612863646049123417995090524334695527805926327835956677023406548962082247476356338016680447429904920586157582710887154250383510672261078901838027497705165899847292538912870117852649834477343873662868779109220893691256103138212039009625660892644915897583321822257519022471862085368519903314384430543501457693607773247060996398714016132941641884537529243450044867300907748292520977754034024958070210044514807875388399153366095853965703889477406212794506760187064221919329180590430498819983781326133023297768491901321354561243320076653215200132267485178899863598611098230596087537451294196107745656256685028323939938140750691003518899450949906012268983499004414299358515474776712163231626388027052804050734670543325005101425384123740239292670766789141827983475788774240365730653500250634216824040465425456622254914474603553497570739672886964692616890288972902319168147179816638258139813625428310315574833026133222499339531898168059632140756680308846602258592125477952949688272432154481672975872277187607165860422932443932880819465748097647951862379372563155761648655173112277341991337900717631550836616737681491020937324376945611774898722710285213971029523098122231354489784528831550575699247470370733663816013903194637202128157727133303431322026788868446038794548124986446590014255733450913153489493878980908348101381068941585416361540213558027576650659038854513514810577837684223347509832367035077720096969151454389849060063041581921182302213708892051201772718098280663559481982839439574637672961329824949315379680602575972217998423764447561049228164649556459175963860669186566077400838935315173613466120443215395447154785152994701964175950987691004991823022435031094313709733781351725264789355420550240752798933155575914956676676216178252146004641400571822096571559379678858600965561318617177361864486451513546760900948157041442631011149001749477119925752472267036847578391186645442170542413601042788724997694736434950243341909242954580153834576653193758724333107546723569192976373117286828210212613127704143111200845133723189224758405100715498677962328833982262929491411390834755129754776198520484658243012656100952579084326445122764937796535832923630549899983158005528652350498632751011051084202033813379625450939405211020233705910475880145013208114410806901939563428598547704773703015743661337554075590972606989532887461148146066196680337539859077584573142816733191207196012455478901832883251507172646576224381291201097756032497532170300857021775102797749598675406487871769119518088201096917496489709511261982102104525344958448242954264382285327135176841227731591138766386058570350081381010879476582763768972925700539072711134153409145024509298014359687814004560068204731975336582366239793025783913658369106829353079066913418980920996619162419292150961532077001372403675849784108354943865408857086370956626634771951553705703753545708122626512500546350509798830501166780393282879971829347402666267304812447003090955807377541798523891084400420108212282652467408560426611381246512236440257231284489950248190313410875048095685711488678640454627125775930846357170798813696273601658242972807356413133541076008520319818310220664661394918128684754705027300515107298851077166592507245526409510915119837554907636905406334849904676575073950655613315542076760601779586371621764750935116033422906208330329572674519475943570823659500359346763129204989625317556097754300844068724282530101716804268711969122843652955211506173079225064799519193161209107487991248252242922760884888169978868661782016269903599244790589421907212668577764107978555649258560575513112509571718539675276925679263138913117089333420604768864924017343081030866127719989973947560226765167386364042846023850935341332458976424435651647418007200350148455318707188750530941018344068231410846346890109186557422735635610593630113149338994271189916846591679808934848352011634474710043504636345339191496437994666584556188053769948279202318985616261198244118010344846461712368829407929637992603881003349331448895850080390377571272085887988027532451587435276539495765169044404710216277478465745387574010480827400323406815748691498581206482788838895627125154579072027307243584264722461467304947742584524047363491037958346650749601781505499355509435757153100392711817946283606274767131060307112393385536819921021657153954718117978317198357735541016501300093809273215145914032795656100260453042674988092755240935765940759460378272452252917340143092528544376386230068036301182836138347907048320850909757356673832129616583496051333020036868360880864233216770289276152388514987439622999827607633265155180703592064823772613787161274292262360664304716849499927333252714396951413883983350028220870500665379311687166152128220017624855257940037228543153287374184447000594144928006616900388004336547981058660906266486848939678639718372101951081381326595246121873398249329997249400340272499279334485588378944451472927977871349842846324678478247978703117556628410923794794277563789640000969853168027958343002722564671256562366545941454564260947412578242769976196826279215272394549216284198366184669642041253372710791691783118171343180799917208384306715480012275473207639094751018015746260842624104680162334014034040285578924489768128319315834724928851486054485855568351832915439650780366769070962096864721345089726799823100832350076091127699424235252633619952754778657125835816579109921966877127837954613374395016632336002438270682275400574251238341488190666644194815751718545848405616243205325810897569025645627491296161493713863663184404785093179968044971224562622944522494464286729147167128347815796049144845780664420438510952585980190001366439529449258056056022842218843350134122238446144969756360566458731288110609132552797547122414772284513242021498663805341775867897973204709672946695389107013208841141185452616516764296864795860961619055263283373932889799390331996014380231020220706623173656445390457787357040350685293355452310478020556987062588920273593297842910124141843794279753498862304147395585441312261662371700393687123109521215118933938370546603324156330905727420675342942826173270424957971261583998450074321805285481901292858142868665748528840308137313064338960840856708586721986083657447021686204809027047249668585022975287157606991390623272987770673806866007040607934651984709240471625605132706990003109993984663622080861230977798659793130361473616331586564284991593439931088494928684109002330885716125521171762157882734517200146892180314686975037765119876342747831212055918533035567747971458610726953192119648989792173322571328093792153657029494283898005895690139670846644099578548726033888798200101531428315074121777286158152080942870735216571072398272935477283432479285385517912032107001201739404259975242663541483934750934761956007110759228768351734104220563377960567860393539825009786138417605964120997874963432721181892456322696230604278871706742335789775312198117309646982876815974314817818950715456019539762451435619263574319231235866445084174210234113953019244910262750748532188291713400017242797456485716633036000938963564555595182878368114751124197131957752044386087029452128546698078988751663821015578562967657434446704744752382507000953626167881372056188430339070014797954914923698207585232849450179540877900956699513005530317640040141773389522294736740497788586954897165616528436980856691529177977874771073314318776772489036295846724455896358160022981182526458468229020638298591434787306431983847833177314995407933885554626016341901825660945175952365710033521370937264576246470709344062908353237838679491061710883530004239520608769608259730952669207973246947435407876226296232690322057695269637739062874623986450450949475534041328115511225492318222219451430403897614356799106613658002137674336306520927376144897148672901988055622842197165737235212314135425658626495822721291673234725125525598658021193407224126538217910391070095865309207853105338462840619922210422103868424294879903679494691027784901709998457757351399864339173039120735478113843954375536259274655107795787840870943011024095436016328428455112554422199322559839663124603111838387648101674377554758602216984392900286312009564905579981108749533194329656835349543743426753583934283170245515389838131620543767620117013739159255170851300621930945621872917453482594099668172124482345320758229982397438583852618047986031255602195843397492059186131650004414394000183991845720298036263736069803887375259097278948999433904746045660801541961077785136228598431992683663723526197720897041141822250492828690013166675658780612124989845532638324604104787293373099030382925857222433006407081232397275963397601420542902287186810869625664684231367362631720761246397866804033052131199571713322782274268021210226045324777167717769225684609540611983671332480969766900321415025722561184294271374551879029227343409827575611216963319289350434530755759904600987064532387225217054007037051966568556825590851953094772206200277178938087367071708728547178983694835492753411603567395381120495321263940227203746215651611517106068921404510909299865854145174685379682461878612252851921686025402625322685272165350210578426244715376857564835810988558458766971278358221424682676020567002348409534802335499290123559440990471857039347207393921829985414208667943547019222878219427848122992145356753101426406076137256772269402315442484136304264141461932980612546530694735797405576636455901881992436305875241790421904703277382594064046074041297687188262979745577851904758304454290062873712866670116335108795385163658034613066029152500842639349213392790551111918569560386277728007501731432570222345594722268143340920009119414789327290225484572142111787717657716461791415837412634774768238113030818631290201331024804068234006012466485128884648287881446618857277321604646417694951852157679668695922256931439286694395201273359598358989810846347507506837970386318425228415665770138470487654852630691758561766260413882346274990682314105579559619646065518356108617439980515762296081311574183731340174520239024666598013669052831231175397117601127758647303524494936057582320730034232848763161431772058414905962356905186928872871077087327395631176050206085118201051317854631044534622780787877488511541123569409900392763322737286643618502291863054135809196878958625732030264552186882858479773920802934612295815468402167389451008077810431880818768604000410203308123347735792176092530339484529957943408985899518323995737694367049338010504711936391905830484427197884992619504289911115878854878876977908258784259786305993898873387213392600636512487582535383628773843961183004922562257267880840758038672019928789380476055060974545535380345586851248433627247900480756469529025245550445486636665489767393518356272514367800687311418036948654048844841425845078269987605333749251941186326384691460472285061106604192401888789682418928702590712534816478436140756268363103011141194267889891127593999255316380435681078554550996953001837882517286461020350195776484527149468480741820856518891311213238333260603556757122092650906055396561604801728731388768615688401332215100336092019324373981406915238177297457013681147747726834467370512040740406532803205405823141467853157847325044485646198502310743693357630899529271125561010414366289840644294732873595383104723649494632062526669419073615810816419256244816126039521699235604299290995455561112645794555829281170239091524358696379583264608119620845572894573743430898131985057138658064086924091121761024442585166514045559149020065739672357355318591889051855268872513632383167254656497416194408463477746060698296551171343480338800018609967139038612803428496960360383013279848486499888117833756244895865594377189794851586589882853131886174185772762883744775399321771293750251098833752262576066346770526108302757892576658133391292554113228101838975128254196552741327543055553048822364277712432078093355985073553608327710932554993638097237785939982421928003368686228801170509285061702461533608187210914356108983861358734924959004548942087713808508271609558769271904754675680259951521077157085374562345689445792842122849245272614382759142473443405210002464321240771167131425805338480023613750069611100067969000393298284208501655355612777620496215688938353301233634689118503269277756193788643758285409187237730134714950467753125895583416533634935861060650148458203328502718785854325058587600046819881041603981036006038413850538390170538497971400789506359940340256602151967040207938126663076865610931501012524681621347743377400848257435537749030929401586484829618860453277508042349365445667982887261517300527777745933148653029387488331041112791589105055446960701162920405638969487417468478680539340668684681501604792884274906076454338751757112231874665948515278180714278972410540936367107086519276127454927508030279150286165773009604369772906900275938685260425950672661476294470018028428461539453997424548724870049774791977193146838866850195842530578025959520552490503986317757613556808030611224079745107878868729885971424995238759622132199653737882015746762657322236097581820643467496669112585362399986310835508785698302487384061045806729374510741279242496928375908256189364736653553412307099875691287284963286739795583091606308242841833224841935843860442647823080576008906227759254806804459450743549852974884040064848089776768050303515482975629720745732116466352356030283990883680642675585284917751405839033191491452321258127246610198797373405424608876121922123253507731488591700967076007118748874712633462453993767779458630923400497333441337839838436296778704978790685835510288816120591204166881581901940335960422329724434459664161077954194107504191856705015330503827756223947017790566022009122641834902812402693182506494897243643554962791990983937183899405356667549597673416778201439419745119753753526993459770643761792688285345743826261191167171424352838996045438524145564095036982106809870771262488280889034429120454648829268349969813601580259506900214741240894435554074132439636672997088879171905997638509546248991714815212596494629045291341066484273134006775366622167235751949336283609931801167199324246435793007378138155894119950727001738953397130314025533132193432259680768598782172458645237327753286184448914689908879657747222326565380678475329235301096470289647293716581685767232316021127418764120059436592022295106752750130654773650843061241901135701816264758089648100270838338421089308566935971780764907841147230221362271209478843003734381863725190395095871656449841019500880105494673750025072299833642256361801623324551243033543329938954252587090645335748498851035993903708733031451082055489434950384481952084800054223266750561071199984709809110890595338536871882916150846453348926140602932886281782162143592755945772976285785009028938593831993392484606735997115610088046440487829419976706177647324773010231828011889662848374153673049396509628906200523252498593635262433450778556550100226672926349362787465432479150570772760508591897172233983113060790752889435771552947417518257865578592333038180410873846870952520184400954798659129387269945745091695739842203737651866984331149326715744965262694962467935437150867910676291734378338544980218990359327757033764521858748372517512633006079887336824801988465291297757940808578671594720609575211937742093348330619387581401418146990731141383502550784907180458965759677945448487095871243684553655779575577728874538213080776292989807320565856321600855898846689100159371019830656221781461672787481898995535553974970310532296888232163756492840544347949430556039565261246356521377962130711583778634212677090533672396779465870298949998685165002753937431738511696764193615669450541418235619991742990399189905393410136166630736305072452466162577758192590093465699579817066706073765038016740528473344471556282905505851033706815701677019771110095763256791308243539775169022314059658537552170638968294151493611800949662884586982732371540651990782953161903106452653350859434343856990619026081430861219335175312924116093318843664211270671922907200988931952343190275421876783121459169849557532281967418361022899416540173437498379707685276466692166399466034436810815240551468242989238960152860407642770374465860172707210089350819270994772316366588372181499534081536230032567849709137158568496953428244641912374481826392008641142770320699663110930502729830508471701761521174799614338040949820759168854816562244359067348586303448848489083351590973042440492294140769293654002592354617943847910022490604033395501186211358001498959176319217168643193104210968925238185994296822854164300625468025041459084099461984122444129401720427475429743473805373385203865690783986161624131696679159068570654138634366535752014554605865711594034273568930489336054819541502712815746967849809383518239104008329983308108325271001207257699649086793434395904356881179950708976921624100321267484574400647607788755966020839342283379679078329208980747283488717823101925564291051164966403204801238178035317921578717287791635636026968079092846935718262648814997672435733053068778761711805228638373855096309314250242966043568964637083341958641056982653137203896244886191555233743565646697782048122398855230518647759316575249694054153364890343715481333513022252121796384695638537295642480441829207924805742069443353654205421505258157590801966797834580365845607337385179607579288877190329765633257372477394675112012936262291531556000797014454854533255071890623860149615241031918121817397611052081294235967341427039279101858083346159000009526036809590319416343098549684379101692044698654061078639335993673743984454425292092469359197258852070847339064468351679746319714738284352767541093902121854367660922176303984451698844488098349966494656843911363768707901941296903468548759705395506285711933310364924486115537399442464496955591985386981335889550643773474341421696468206098830504105936514868163246324550633137982675755508961436063311926360197457957749270123431328163032057547755192636729338468619377913370736211429221408014796988230473032645706561702967529379871518503603462865591628174877393497655045488931689222815393706264913962261830126930610645143017643114077364778167677684737434012443058825986369467210897484454306609515651065114439883550701406371718924374754981698916851288933104782983636550059609799618800135325043950048712769446051227752556743111937701320210223621695691283439247982530507864797837868274365317800963926058856648596119168448735157297110844880352848105269324441836179447710545847545707272131421707084892839852246925767973523752872246202342058364509707423370366693690741736315243203996169428770783991309351783985867390460894563218469546346423146008827710746820478576825784514852302657999722821122721461336228243708341208627761477066588780931434619566255471934240089205622454845435572355354009368540665924761071423104704871488129082936486514530086115784769150455351153594560547465598215638787392268592865628255611646719303154804282808375873980721849935949707884146893096739304388420136110520108366162578320057083324831379891552617055589431403708104934198697987173398849466851618716481276030854153851431082844983626514765720000245604005984701084717318495506103613684179878937314042487915234235312616355023240681304102121763099949000010425142544916512973972334303147498257782709276933331737142582064670325311229092882434572044272602664787591694045003849193488309957218355270834958408856640274388050881388379300696563908414363337244552734471672917961914168748828522910429596802526044949670523208618518667334745967458195705737994707898524633952453701163708226661118404431816134118647125674389989755622582961872517095621476759498500368332488217920031510726228889032503953960439905379677381284868509877535977913984452093378012856132149839440984366194773552651644650331860385592557908873668110321462895101876243526326184777313563615328267592882688071456715975541376524150897523211343264942420529964414225374044938627054656024769252386280445932631117297337288138563773507781871355983635595943697190265581306323988596177219595064661409747316284048950405380855500040684935265313293808980548603747719233447883832686809162511688880168876863150037194129288440628006509083365386244410990773477849220322611453255550767197668960001878982007536961865727496259707263156686465102677261506872047969391492723109959598000202539831695135481127688505155150046239035110727860411194959170746197851458680300143402220469104979461422121759196193884079727426493078355298124682876659086642222725146812650422877752861468629199696393409168831049503915032081036782245909290437626541842405022872462265469130346983909547028522189186461246758024570766505541023730301660771064840130479341322473126657308108751646986347445409405881562681038471925066526976604699361648552301756513334204184770074686573095591573657415301353772693500744987800657389959369521490788704985592510367734186428991295336036870984748596916983763641304384953242707410316327899563887177061597578232706262230393919507988194092437591364454496686919870121012417273136076600372471625979540878333118066336896616384604104787876417167631986373950889226887870776552603595661788533151284991215795700853377489734468844015950563566533753910240110295110948488284606213618140793526707522732939608376692549838978761143281347311497080803337996382482646004648998653481467467650183431490417273731850431119772919259958723135666939947855274465780164520302727465817393739442597499836050631867742233275573035271209341664240722013714711500284185201568848607688979085964949176794324181142760610690869980622448073232828612336131140908393603855802910893496248193874362590725494100085235915913595245066516131276394607601730579838377164676999293486478592406698063208976919274201088776878260200501686650259687504325110146680690370056935917762905659209415995284727299924500151574249746407869855864839669933572800481699807312385560264166635524885273896748774481179799747488101967156869320600292834765465598655515433278834008808908363960520602505367225638570023646572767593659393584651520810173513932673352897009362824584774115904730580584412338237525181037580143130578487326318736931728499769596203978356129545311500905339361990903084488198863400307892756825861180595585626771964040170749937927271296833294772270082981891920070540080115004708631209264431885334844523927298441209305367100043807198761804208052302950022407468341928834566002781771709846914228083110347541600040630966288445444998468514401585112735537106736598560217368864378515384536410089717443501955585687518005950044626621543502116477959412135702027509465075870110167924723645554997523931392315259696535960243395583068166235758462153720356349806889597530151007767907362333547033040479541184879537309527612889863965105200261185040664959895177443008731553612656105118205425603213418326841262829053391428817325595869772323669610601070826066418951101609571655926429174078244237582136553107279005015332309453149682731891940044203966056378666477273276418885874113597719432509099578110595864128059107334506459880254409390247656988483469427793213269085781921689569053321064143826652918070860741317999913197710231660571563713787268953743713542295307227607155094836892941999410584443864963242087617189893098766370639060211812709119540755487103799597919727310787162253059369060209033864832375717184541909776637706282466124342669204691574100420315724336418813820825987589407629162915774522625300794185708618308230792050522682229538478433374590373563007461964504535139334447199773596282334769886114590282515576308643436581919676755793201517246103726202342683953346847624849882339749472505566574660942398502654186922679244739288889182424562918132705264803250214876892000086997370589700017318618594454083518911484756658753790653260367331687380338031110627703591131496505315556722667562281716985552057392260851185539349928097705467932768971621660354062592764585837458819091878243957116520996068107934770567137002828927341276548133220199522738679666367398183868116780939983391141139352264586900535914006442951015677703783535325174046169654960993708770454196161073078325687444899907144529310483491592797806329740353795324448052740584198216530308079855018669285910954415652782206651709048113432686223847573738601506778755754013487960568768461525283270251841271743052398648611123780380952276726251560829049622656918743610167105423768674279821216474345392495413801367311643526247223245772989927451735676363025065483865625190953454038648780137828486226908724795109595274509210408719006689211603989765874524566155296862307589218452466287466503803036860491128291339691880363599278633265116428459518788138950251865061759674909457885859039876030636411567024690314923752926706620970351336168643395454224292990602857070245034010379369711911219453985790141372826183148220171623704830729158833390991911990370813796160448648009006588943058647094715072568052071794545156940014209353008089831440735740228236998973190273114767605024491614235493566111171957634463208471937430521944032317293535245226220906596871450378901733993788249817930554676922584065402783722456679849644669907680618357178741753036655975942558779073445301271780762537226409515963028801537293462753914999590178382233046418955466844592608575986515658355919952511495048249530202616886501651797453030693298310914030101375712102919129994072111198859933701333454446329345033939989994085018439781618095863070102428432846503794133217558491251584838243114094190240579745057775251099537447858805077960082006716359607318153313399656412179252250243556370780238349759279107499398877158451463238048802333842181244654560451676378413504809924929731745923559785105095865924617102101876595043884316561211913757914149147413229797757518182318942546986288577554674560188194765363297829863431123595667603099922363976191842610453607313930800263096595800284187115808248246536818979152476939741571669014566517302217668232099972332347583826980477683943142500850844106937833771286504779833265190597534573728167768955910456621933511659852468899237033617408425528659201262590055735395928485332113898548711029047708361749389307367325612692326352365480650248281334692397329048404930217671621048594138522257924434478519153383104227825047568648555500315847788303147091650163240339646616966621162168944662782244420374200397163897350871917047506612239840305297173264310446991639533331388981190297661014761547559686552641601364437433091245844199449100890581266416608977114154489430282775712981894417090899744710899210167713507664197232782404350651284926778135987160468647595250795961116935224821273966925923845316195815677703649408776936313323133540562727538935091568727994745383844503030822526970706681443987354769279079592445180823781966281466522099552057515732519759367102228919181913778867121470433263387122273769701885021827173134493707084271970404587474246924888743645186255987787267228067314918992098340108561491290308113211420416619239404089344223697915394375482804692471866576976776250904103918910635368226247656570003120982674564295746699480649662205037794586859458986256597000189637090572654013810980956032726675197158814710385464198301190923718629495723445005850554980023628281372276897158723808097188716213637998245032911833348909350561946454549060916142995410495451411607416164744136195049906127496156497459147276375338175109298733457733334229521933426006023730871668757697405446418162353950508982934734205230299058865293936267817823447818285319942626996836450266602101103979959585795336758392737171340560173062869119117022248730942558709010111712444373987989734860862017617571756829385603594471546557196578921303990920998878569471863841391304507140122515238051575720012618930903929547387550519956186423337818175065280153694622816552399669065654005608999666574094621232554524506071155289459149462246132208126840146416838011285139787109034045385301055897383208212395253403362577109649954747576995237752023876806017433620097397463517006098129349654681087207738979878397100631195091446620172641900875101693527616126983937912231044159766131680758849764618352703559419531216292647420112521606759334864241889612607733535479673142932132523349838547945191931473398790178277398742073821866394533971662109396347225378200754482127863290569914290990501300755739049636164950371316072321763932629248513696655419732211769594531119303586649359499065007970109740442916323682698950592725124953011728344201107330218880788417742185903494621311687711348356244871473368784770239962804845834360186620066634110263994193415888212190234281525556262950304353133898899531964642750501300018990539742731056466250742614581812077858833021568666804892138422172047861227565431965692358820938336612256228554420889503036620036174336243922773511247988038447393189331970521064766993289880986234722121714957538420021914323727134696803048438362878784515616026168098428031263038447963211978458051828018214623959652886996258558597998602996767992517555597576358587967910934742713269558204566383301959161680948403704774929050084702131282140923243734023842488822213130864858997053961253663678532555450052354002002887965574864712626065755888859231440891624629833635211535866604359114862260994053916426944259505590446316454657805454792308879624909956027987512076564414390009689211295038223381464431631859235580652722745286393232169804111190551614033803912871417065609257729251775095133048277593622398815169438093474846131307119279345658911538346530283184400138693875169737240957680951393074624800777722206978729710822689142688006504590730289349901550627052220816312820495171048964950079846587119089486817297340606215700276711142499782485525427433286552865964381943539436506179097522141179267291555958130297960755288867588579357564084101636974657424108093486582347827432760095897546802107193146335661526214901383246982964998560145940037852280975267362735179866078618272687126128341351837612801385360647703593001829755985335680122809204600379945682743171784920317829491755064452630281626598750047623079280136762692509398219671206577219182260060449309934561899442685106202012385338971933942739036896137057033315696146199224436140279471236412856134350710770180635639898618662986344469924239017462661217745071568310432955972186926757768802347681140282242621463028279894956517970086982933660113564333052032721253397759577499756067130378001777962872936103355940346542713894760883195360070404827507992898419458747723237881619594271390065030434647319978895070657214171123165753610712793957266314588818834269740201899795449673238369706924624816011722061666454169209117478832495550706650177346501242912715632611527538573229327744397596263179594327368497653548310569515888787269354555315980561431113205907728552125487037288035892093695156155957125104250615686601488004770805205307585151003989774599610866359623872094529658808232651509752629299553664977125417630098981726723517103338755270054027755366254240672796976801195228678482530257382126562018005715174178699342987752417880642938678446924648450918121643481193525429575027575856732066029977592693255764390280776803580671011251696944267010156824802738103500494414791238679182594955734295465758686049283420084462027694062481562352620861160038525245665631497391308876650834931608618762038779553256149537366660053920554086601573224306556431776731849555804593678227575100582830795406961977119331503978048718801495111191267294695484628953218994691068389417787351277116240194459071067092281367455047016188178303255062502975494621610803901440012919099165418730206940845416681836645646074570211179282734869651755409588858552159221221728985367662250211118636554026157833344178756664133151427707354218024793263814706459196252519362898196712737027528746891184884010628580495840650059964946713183071112946594869981326096532075829370445827418699676221039525270801661500955932637239466499256930972862870569982879910689333602610895203929553848206735237386602068310871275945076684969543602034008162161359465531581491766694427240306129097512358615056582083650122789665796081163673687670346607083134525598339837141898850827013097646625700395075429715154683596657642792664677993470313233917589546279620349735812494559192287122595832455230707645865133491901025568198445167228471735396896072055292117892727354249870696379871445326894249836784991665365447998253836281223175767229092508143945281824900684988804737505182701374407315545536911404929803491963281480145573088598279953210884906538450550210194339296321297510957020272588801592775842714928307609078103530075054947297655294242930022376717153163151925804640761726290474975605436200123390052723210822981217343141513881826358908429421535517993615150014030667950411396565792887963493966982019634519561904383527319664093275907016868682681578366408641589552061935975779531200799147413313972077754338701639445188769051624028396311881019502238159969394664130058719379547756134908209613104175377600996337687556194483069291738220766725780493159971623877071623838992065618254664225346253909760632633967332123564020352607603090654307963949835543582310721367976681848107708063205399606296370884451221453754239087113737418552056335448692839119009785311998321362617129160492348511956006423219505535588726158706231868031072955767272041277688592097067426133058507825085562137186123845691549890170822340465892522362950824259478732200011925105463540918586924196813240510724098958358485649393670057058550602992058577070053147146147182153102718275977568774271019739479042901479197025323473812267423612239145353432457800423597972929041806408538129855040653872477585909336142639480860367007862264027231919578953794793645130188617235303297770318868652186377014304146511713477021644289733664918485651066012307436566949420778810931479812127503243812675064511764407646225939685603949872228653873515097849023330050097844648019155010656425515366091387676909624028010132200305946918320523799829716949339367106812835862535362794782384171424186947089817480816625632319274977779981396229960500217142984184443327682177068674085432849550735967293838108456400901829227954660420788528944710232797322819182688604870222181070305618301978597260402120118330354493190035026166297411416605846069141226503926751286033951367222760616936621012569685274824373293172113058225400607542126975236346636410511574641277224807945228476582873836320211071100361314552748515079865416077184660805730629973769297713520871204813279743164118218366805392611852235222354704807135523649114065764705735844266953398243853203461899896544678044283489147768770620008863942766656282014743294062802311952356829401898193963636164964483068048942133034312767976478917319122597050478903190755837831507307008950682266176235248661791150532111812128883271148900874864218678417247449015078580580924395913254188851928430517978187161390931153828467450699235769828721133855653116036712062401796686163799620624094268083103666299394359632367758944848494761967210988176041341350992668475152428743623914902203561182415637781443947553811469218234265511384017644913489627138873718548273001615641541669075067982663732265783116492071215020210454375855611669167888959693935820365365303834369908552032904067836375126541284335414121040631873853730957390730011657484468142726923653489312170283200696088062936165140054096839949337802347594010681159130062694108262749087952150191319179840020863881711962261146691833979305750271939423344305747223650954229247142675217693683574283478466422318956159826043351778139893925747719546093266521510541733910995597197677644734614197058894685250028173905578679201589781498007353609138803191635950917744608223810100226882926527022169927122317940816542885130145983616707842737914415956784788884782872537461994508746325802837791543800463210838265485599957594288584914294176826736255196289079982026463940078393393802011003623266268185632290948671311417915624042318393164000226503718470956500880305867370545709448975433271088552531489525744566953833717017478378867084331333354913568615658482594830034737211751218002437244288223041859510367404402638528463050433108211031528115065470043911290473761409405117878339085118724000382901362350978609568682742025184332812004237860351364584447582046578453075653611108070591579316018895286250468159835769920224261516483707159300387467818600219103610942201815918750013490895224618752349422707376955888408590164106202425161418038460187600731634445754235576315882700010091618975966892145380423617110578108109916152119581182262119914655951135929641689228075055790814310559530584098856363132300116612993046807738751510543933216018699112585299314909644201588102928857652349519683698727905112233752163811326321338292639135316634949535342895329943769075973199981857121729656809867961364403511626272655280576315937471416148078975871770113665833139728469997192146786484207320431384410099064065950322692411508636488115091787211864285534018455106819006634921110326805815301299759025174816132864084767441990929136250781819697450634403809019099600443896342160153122092470779459705170105085444081835275381177390340357368464664455378854777989764212175147380806631085439405137956920042326861315995287998817955092623749904207852401926421708461476104302412606442836135185935535838801657615083674657429302171163487307710244550011610715275724498185511952633126588687175043489709585180589525719124001759865285611882423644004640762186882600264305387442033551213155825137055591753033281567112392376183633783041058819494264489238500581767008826784790015098987886497952849512368745060722106657412538937970280504624839280870186042264884203625217206323913008457887171573036299567309759219610510427422674608651575115964813990863919906540352300992907507922699642247421605270450785890047872195140936878459509273215492142890098011089789301929064710549980095582823370513255458003924853353432165438331228540227026549119676173522558127427744241016167738579219808672126690618898057257013551843088795671298737093462669990360245474640633668157454762408375059104627461834369056911406370985719344556798044436253732921708437804581454132845670553095150702445752600615353540564661615030542427078361939055596103399198738177463690754831144592791015496172833654696083726293986442909641051879395898968349274424420473148111919435245475812138858263641082763256593796143709863464182137030761541381505818193176384129391314051794279210450257682634671529192466614562601924499451360392154467237567736137158514627987181493037048725229154723657787170063063825143555023395118274721632595951890373699134130303686444925524165522125898399387718446519124667544960117483396050721381749405537261389785231110236889081218665225872476786364846730576194976382284003460474367488666780509088210079054525355455981068672737817069960113347938254572303298269244778509399837160330321746163274001985509736420507244365082285349543320338915751942935502020208255916318917529787205957032821874845084069779078114252403124375031664465915748083977165100567301943050639553249818460616817723565680204076173163621509635941139073145938084819007986902070983302038549338983361330896964485850675889661859691224162342443712560790489144079553198634534238865933433532419194862356267087628773440456909614006226863251352991123833964387333153708749795484278253461073486469488786032193021464582879239777092789052731612759539162849861265865485509923573745563427425469488848915226214699415576280005398251813874696196439673860851739187011072044421748099889679938423874878660283374225118071840186921435896044368415946271131121759306108766520184317003360717259531409766395404359162803477361096118169987431314767208574010936837655603548472404923489685667238252717019261189232324081894344901825577434366425523998063194503119442464502757497875644938192150526797241679822377978763066835584965882855192647479140891185570192042843906900919502425502142896862266063553318812173255248684749205478217884774607887448613215856590870888289683411619697055286016221116193887613510714863637306159529268598171105860426060159390444186454759552200922641846552549075623020029940451645057156952707461372669449284889174542313452925245851919233458854723428348507019274850041534529740711645973015648662534518379875704161192253057260710811491249050295894596290907643662124673196847266439663867327277905830154440612235066785265087526727874179992781832924821772160230710628036427849823139345457446812121897940261893573910130034740887397532395741193546400108316338653441618184900514939979234920831656620927076453714848334522346852205244267993930329058225398068137326585016729755854172162437081431747680390491396877820348765969219707063242532376861601555297695420116980121036998521222912226314288642352485892149507436638328605751272886092851790374761073315478588142675353924080393677652658222221054359627433513577566747148986179681185972504149993604090304827399651061285324825767678989594367048567689428926795931905278252364038121467143312417112532212110837414096841276358826607030584917818165185819696525928126218757773777973049795575307459866196546885374752484030928292782787976851383471704633442128469325028286946113450665951614261045889919133018314442523898783995129323532419337088034265366036196095428683897962916033404255906384753757987215673718523241309157624045300916056506119720081236288470487999296405509674908039085879612865677325251313939218013421724086985324034773936405684215525794070648450945148895393193204125954256050515354366940426481720196435223386745348862706297081604232736216318093865403945348666603077650330781824503768527143494473848378027033951262638959425123967190661598669274626060179843523564602355424130327237871299391575422977437019346236332872678041126452474375671235256629407933248170837251609722356444823415641218893083745013119561729126404962738941783356173505364760462839727093853181041735901629920542073928175344967145341374171025961465089966540884208128458059024404062843128220430704596380028387815289919934313400568382384790444614271908312241149693363099350896322483354143174334287652286018013396302554850877077567233101359755526137068478175569201673519238673772200940170159737737833976178542273249271943847462577549680412867891520033607057251666905661961791980427708161011048491868499906866304295907719572281113751591160833603271923678637888890651240945623332631806517102045361250298754976903678330249289513227361896450966627091813460888370070452719978979464351132111334715122405832712388381408750357562959895081524523898434573205988171882118985527720106325982451013508810425632635622168269421060797108951060945219293545731566402029488114761872561058688046424130288079624822724051153893141867844422146591461529454440538265388763832547196004420283585740272316442767273347088830151374342451020981177279750575012790777208114469645669562639669085289536124084786152309671480346199697834413986757815370964180086150358943787624638909668093547342379112426300119000279522019132972441974792972377484053404515393496762372365943904721648463134262406470577511999796396795699812926590114853011263163731155860737161917685973147321275696025521440748889741305542291233697192395251511551535770100411531236549619665553268732549697084243720174098054104887308574726991058632426182368372147315516008351713468043868537661753154274219365969630275037517172612074327627444473305927167333326247677092572288592121851949288034287716075914322060927173778244654913240579045613938289652778300756418958161392850156915430752527958298194156925277326815660786325317391765290108380922057824288581624690391832094828863583434706908780102481226231268633542241227044021030158608148042720473213296695231978365098916086049614128807801321696684950363579062458664366811179091305312104969544657516612710463072968507996070842589240557474970692620858262791212195708552680083106831146951919732052258232300473398705066948936610842927932503499539808500356721199744889570922788562580469379923464388632498846275262431099685316774828898759978527936286058951006119247592231436729527320727902423296960907499690676076515945162617044390650172500480967327699116707218118123153053976845182011740545900278571103857136443996889509314027954789328266796825209950191370202786293932610047689704339911715988362778337208107398545072047960770616666180912199546393455173687415184041383079282042858363996341554151713802368025769571737449712206359143244911795240529179297458616640635040850179753202470952947714475751470640243034974470969733817412973688062602424325077290841197264396311883277064742175417631820521335475237880683604701493319912922077370672720693062349147153198370963127820383891923129972879835857721559002088827907172328219422479602766308432987557558638163031104024946175106722291680757502408622097313196217905397955603011174648166031432043610598045180147135593220690322378678489820268955363263175126695512878502281743216095288655057719807035190378260436014931591911122474259673772545484004198305645776214094031834999547841406170635035027499805909258169342827520902896663640249675855489719995235395692584326676968294596971098156483324930430402602990541440521625273610321313940978057788459369528298365138273086252662139976110123245187121361310685266302025976626783909762751470585048963208109565488098230959153136880567132076645968803169882226567646463520991936070963839725672150717546197147448449610727905020259884384424966445090582545132495345413514139772378199402039697151903895189062352747303521676781025935129010791962031285611260283921651329593971151263021339839266609094173394516361735878157352075639927547848856040360676112300827364932981016934558071575655899060461574695907878291872615861172661483589024566511396190033391349012606790739797955862279073919635462210079303713152049365768847130944753088516507779932720542532260726288749831069650165700346127327392533970626848089603075502347821611828193518537041917524160689943168363756911470327559302181385106779396072985160720033444529332594441657139786024289558245527835942753786075484535221774575415138686931740410721236201705408441292510934734790374294013463897142410221521664789321346838169533603155444174053660043753373465104629855965274625792210293885959546125742528069969574668370926229851977506706882412729079515545790491335407237882312321405877023473617730372617508781236732943907176390775237395375451996513132283977222524125633512283328562389763852842324009877763555236141118275012678697390865144909563943358676924870208140843811933979802924549771873765623410861620075821874234006326674097174693031337804716058692643599248548124257775317122452202616758953653395714331472362526098763905837113341490174759726061483233484674395930365498878885410150950636575090422747959397810817834181711110326288774526526159797255555112188894059634673678992746984145822432035189400178562687186850972355446810559249432081634250635349211117477229317800167634870485333708287893900402349524673709234435924106789103643702929263936260188674656926839335014340620118472752512879043024273464083308226030576621670000789711679128425196491091378435255811591886927937049434382236010916344312055776692293302144884702355622578373575712759335067671910394108555413678380086900079686434010703496713329883568503467101463775248670861143300081671823272121370793378343279951318110609722527155119453907347902131356940533259976819920657734249544289922895872282242274666273013268438501200380888879247576611130348862887732942627542254135097583161415089083650319456687741723938572574065256458484919785720681692234842539206779097105095121150806715808281395244175521718055507970086374216063589944885287697905791290936275987628547532764821683414171996760254135187491336636039629577177599277466573896104885051468600703735366811616720781351545574127652835598585382119517065541983339072760670436237382061131481663905726334029539187927016898415127993456429775891831951137199623855664837768692790066108917232252366801964406078671406083850266534293545759411704821078048651624590893408109774486914626053992446896355855822493317539163108374052113983895649617789345367104770087481078906834333674821275889754409200925279481972101529291155078682325253859953714613504660601419203323760953887697605064241943985205729197026055391255712125790780612455314554779032833892592199413523915726678047481256906979180926175687711607045527293087196095546893591474265404845041138680957662068378829627898737416602952289210543493164035008631805947453568659739316216890753033495521742435034630599312186330515589572980171687997762618624728057380421803125507617920010690628982130385407743966186763341236715561864572906405162167433940836233554381863273369535702575392611627332570638364384942752202457036575741480139580994449595855695057819824231467890572285812332026784983246903615306145513223573916980410821956203579998854733166657868942088149488870270341436893117966451005518647851553962148542334783181535557553610769059186526905969970688552880330452545370561538291844662488379708388395390280813757253967741924961417059086330114254070761435956531758193674478654764405549355564901303120344035399685716280400194642182784379800140567542132827782413295673383558557574631192169095525605970675415619786506230888054661393085770490016488812810138388498362994852999149703958135168045459376370942898804536166387754204005364826664684228150821965867043230336339446535788247715241970632629329260188077459010527871365010396152677342786273036755118117141003036290873705374941520711227400708981191826825857870805488036511074401475640081759899222369411986135931436196586243337437885929283052573232789587913384815002346248380352604503580900917827092050827436963040077725435929776738365948545710832200638105648600900693466381000396771170746204710512619837299351529558951469380195766479899091065379863603354444320706134859620638370159780273302626761092585200708584387130741606790252627197882326186960088619085202695813577379352203247194185826214127950554473925002507100375701626193131814778310754292500510692334217895341354116717053079914398982508671283340597489642337287194052065369230047445171412062261422354030151647854357379097659351589114164979151609295926105547661673134748232363738673636702829274537548128430765517258117230545964983224769618013743844308548579151761143037810578188306754838161828855892893345915012331717780339650349570351002015604816762816161291712479434298557144522449825678297847341001139689211237302684194854857448662951287124045526127397299940823827489305975828088530751962495769324439412065511676809183746136884638284819003942362386474910556427940899114585971649659608571199572029327292146326776965414124067095079037705914678758054703111735269761633563671379498487091758824353221293364427228473879939455104171248772330807156596867786998890592878758926476542505858145199266789258831739446290887065770563907306798603251141691737024856014311497876225870248448419186572550267412288669556650401166713098647046900801869150489337112312928544098862679209241939320214607158857871998809651313942532212511837962881434485986609601565997874150985406247867328078608020016078399887184243558129912566761030070941142580879262127910281501469049850193407997496758998990361250878869478600997792892788463609486823399485900944744061239830547011941946826265161191761877361520957212424230496896645617418165347306740429437692438872403787227656309106824300411280188740503658107010043175610883463492256065638389480932393656308673152266965979226587049989230417236132095507077018605133526547091314168359155305243420297804840764447579232696235832369666818403922206560882637183426012786047914301260340124174017952256201132912928224926557804294791066897973835258148057090901957695758487317362194432690079699030926866095289699860201842983309237112343699080946062607273538496283422593210406281798911409837624579557271441140766534475527717055273052629123709323016137679097188972147891141975008434397569440060013160382397476516760360956303676643433812091179701678297785277905525236880298344847362558565838422207909316143962376561913853214775407056263907567873220494943537676753901409731433224630489432925993636777986925352133235646205634077843294298469797344278707037787935673655960468053916382306384180512569857670802031954919797337681216416293729000692645443442317794373229424623584107398414034562476271839264980540946076958743722255257046194615446911416960865029885053083684138723944021093383086362926795409403240718375442626216297252481120788118452339704469368858172970585495267858779251612631712508699774754428449763649468485401998074517054607814939666916731636620986174444914226943813347076845455493210110992703037919631009348069892487315999730632818771141508030164016968525550621124682420511927501371677105463856175837614660639194823353093648713196481624774811880983695906877131804437985887190409086831440065995106631491446371458994499816031683859981686596264481018179613507323720407676727928694083806437436668133362183381852617420990785791516968467697924716471794470068819275633425003586298146748744051099118338838177605595520391860274115934765330406054138258488988580711931794329451356001089021765182930202383042461718806303622574866029304292052438440513580844862850232998776841943725529959837328287632332005193416687923850678690504692143882219487005735984683962540497272347844271124009387477054078895984318834854971533685417560717974955822884124376829888388097929069832027492084030165063900807950044016854722933859890759197457178529199170659771897341924471688788320298489494667698194553270661823477789921489578814392164415568277006243267787267247257863171081123391884566462050111049880123736887212940201026167108395233484086204661351020419190388669617552900500685261990333563840256746149723828448138628285308035438991983242599682608451631776223312275846854206760736279457835431180053539743778055345773474576899438929547265241112772553132086917437996442898550691358129775298849855581919296932951513463846303787263403033710938059231439907226892904128381315735937995829349061797788176571693743622876485952429522883364870978191135456356585900328160438712653039916570157547621692630304202960093426285785523019184682298785741459687688538683512453212927376655574514735367575071983803902307834802072985709301531516529439389652239419568053404465055419548327194237675479525524910705517507398545411474794344423984582039176172474268145447536696000773253457196989359858553245361028220028241501106120495935647308975946311402624400417428592853201522120112391398899063306680262821476896209396243996273873139553347249900555964928258403855230634675165787321157785156832904376266103015168756190267864648407663436256466615329074492524944493224081072600249352990063224857724995199213156964750500619521487513165127293183458206546258349403977691933198833082407883992394769613033478991390861212977000531416200214407781459065225398368526084255900775539348707461216459329632535409127467020627616701604903868288711425279582576840956937183517894217531930467576530259548887972189626350137685707432326531400148286553547779707964938906541999759063357973703190390069428968580592515719968057952081269436373399540583726883358398028842564906509683952108221636631250939155674179678610900413478383201485729509352684412767579640431368437631183924643570033222663815110390084241561074362852280713511028681996716116173426445864933419634646124174713027126823961546503549004174064372848862355174169151397052371813236648475695892578759451646761015743270609944129096016484517769767726669236188239957295794156896810404611664085349011596240006259579153071011745513026762423763086880878670513709877847443004361647196623489751826304076652028615191489786263381560519329554247373759927767346891588488054773695740746071380712470820371977419971402525266750759690260787539683224988490969490233652045103250264445941662771276102893391739949686387128575779504873960320473347728823891991605221439460978100539538933752015990134881360080332495917260030724579630384191200324599487959155655492604075453750624425605833979476037583422035060250010349558736134314870994030382483495696994255000063552499324314804324883013775134604961750832365158626943746886862823945320077191020186095933261988644880856671187034219013235272799528743583224197370029969056945445891002423846348652984505694499086745259997901895653260903613913781846250656190775966920622417307359489062687831696362567075261967087890233653715580678632697277374207560878012183245875808275977834632609933140677529357668788863988185230094966861848507953221088254848743225657703671804334540961302987333285023009715434363902859746794214161836856779547970584993509270775281573124036263421496578765604843912346914600812413726681119496378742722315275771952429279461860615463970237171087413982448365697597063408397453161631116962665180553020579845611744359342936935219225214195879323013930895667326816623203626844815214022850287185496433713343037637550111092291007066628135988841000266292470111980276552302132626132374363906385109837814624828902704792633512218420117825521567270374665793883025374482089561425589754161737573974076558540367971273793175685002450099364769854827629921110413075312224962427664425750655396125860934748185926714544069583188324088739022417312072975213182775872402649498427285659730025404171012002874705689771412856877072882155405168515107372207265926540661237594403760962273385611702263573582837769083558584510019051269623729942071511082826328809296812456951455392098081863729547022919093670459403685329256902983959671520667132639194198786442817872755984778879155376108590128360164267490280521068508037125176807374784479316858314641317059648811378112691452477268613986414394897589848022129756718364826716193781194314195325796946005314683215881496315063532752696252282808755962763510474195946723010096935553946261223848956331253480284374244973142211851319741209635318213314840859012700143527284149081219157657060805821201655293292135669857271513832755695793228261716572819055075657168693165046795105035308726649400609656219114091825687668718830627120082407334711201949481143544521861688635437970306053351481417865755785074038501240716625832492186823414511624353368827386310138829644264806508121165006444472401501504062889788468698699334952859948766117813812336005794003956326434126118615743160890332025815957428103680073273384029954324843012143859717799030087126895333292307572111545759133376683031913847159203598027168265129798931250274239635839445767165361044599734146087752651398218757900520197475390072490304271725179039922818753762512152985346651005535508219477476887971979167113520704146459626094085675929607387442153081083677824903170852511134084280150462388173242904865701405981685157123491268053949822330649047700285868507721092125312387813166674171475262138264289690131879966770730103582927658729581830722312466782927555851058501818974975998438511397519747961141095625872395154699898297044463913599292546127723318242835467294272562056136399981706471033960800769795821625891497797872319546829311478098431657429314606181616246159028421095644654362943172780034529922581413498756121845610996409030661840238461889095950801473717009006332729082308236660860442214591153808807985060193473609783917577247423530154138733261830211275755657843309150410238155776249043723344945433835794601848916904490836388427014420278272843802665674772479127190443178245204145379663692937837939664366825399437695822471708473680680934439902159336043547475839877066996124520892258777217483206810082526781729892033794811479775197887410191738518598690636981611115642346138973821680156427457591557699364396478747592133846965392056146234387358735359351400329163278773650424480868257562287500314336655726296167564908619582755862734556392636525409319602009534091732035848173040816178727662067060692909741354832286657002340617976644656283781443457013077577962187628911039803273597087809524847429390662513931184865042677534282469781035463092785053171806402568402555353933246131444188885220814548499909795841316942312557151692154231655018497981512414209478300932926531390878013008143998519082412043249073377682841542684370660780366529942640733910858722862761002157927667131822275247195988788176064198982234297908236587699802030248201913764097469053552986668241708746274159279371825134334667836867074705088088661539954422828174838484038354793934452124365201215059525596909301925927995561919090229483032968227640600150925197101671702203864380955464597756934137474749962284962027159929076149734228474510231517977666726725326478811004471762951150458722164270982200235516224381948218364448796687339569235036650447807040565733363602878911424800874497237272701024316931039649277628933071578284512547022681664525476207622880721626878787374542160990475257534731519038786209893065353788077588059512519073772051232792324607569165383885364866802478993823744088222663557139633270313738592643555735686182618983577474904596839713191107167127586878646912973300038070332183162851176549940272720333098875135813531836274359272229354073471401369748583057969006959773422413566175881793607462861941344008420109600317234839935032205247485544838471642171843360473253915359109935417931303139351442749022885064695350764129142888920327269176075579992681238534571011397447479033694325026788356837282624988499764270987168721451683344248079415758947924551887379527829629790901825411672787368915138895858778161338842409504451610684201748155321801850516663232014490560766331344620238194697156856463486632867220840240137418218113557255526552816658786333281516037212792008219040777278824935084753406689351777252805276392764809100447776013773921154344254451862887646711822809273205266930002421002109651080463813098544012611068775432204429460938865673334189261997804271365815359005308912474837795468081699576307565729704620476345042759484003680889750313567364793322482830920579410335893862022884707872632247181993720243765701083691786428257383545124538699869853635887803781699183903014533491029861395280905684991975183746231008216251643028772361843573718421796653248813847487080609185173538147662471864274303664130078436910432358360793224020767387233559081792194055953482304347869260432737435700311109788600404784862854963751167812339452956048515459796428198877568950172404600850812941247596994488847285590883827840853286341919626879649222468108296656492698360553240364706703573718084055991384031139688055364220714720057417283211250882381703018811832033121291429044590337504294577344034490808681813586986347521799373560273473449432639520413201542264758400929493001952752285917849849573722528772353165341162565629550352346143354564429136285834433739312487627668725123322853555354585680824830450077527873818422623673095990084812149553337831720461292540291186959972401998543683368373304470290029839931923303669717424282433286072277363172823710294212504716061814925311999476601181504056091829334365710075066466270972054959593019316916607816556611093777229566880760174823527906066737879491063124582033794587036008924722933757688642467339445994796492624740043458451177138683171624777036040018119923478333549601482148405786023245696129539823618924291198942796205658789250153933892676024800534970369449488797969130006856017027548031081028302975056203819385038631061881725264902149179888630659448525597043307608279652504839621994847179154669406984741357516570577348030621723442233072755121017430679602059769053958915610931419940016025769894989749172682546026921119388360772036775324791974995123960894214220217871568266406439623988781539330317949979585020672308801768600697392510085625812795071517296054038772939919488547897617704802381710983018512454290810394540451508927480864970223339534107309000419604068757462745135051424894424583392778154651789526973902927078305430264241187305901320191389402478510303965331951129590147975689862985748186383563364562503450653397982594848500824563139319260804577310424680910548578267924113498618425327797132667183638857886882909017620086751120365492454900283567730062185244917089771842285686692476223366572885705106396674805938070403463098862635358686952132056445511910803326600090591100344827581646647041607009917701065553507267638546466001918095630412904825600447304367882276697037153669861759023321510826329572751607017766397085096612489559052072707194288865086614030853867754031447977816849030900560087888952229094148606017579854778169913072005972802238731008603196977439068025425097973575343856240767734757839017616784385439363003682990784987073806790592928796063769267029802769160381654774212079162074999884211172034708387766009339346173341524272132773283586434990720834549205163579651931403155719989731497114121893789374369837166129440682931245350118839318965888146695816199555364110142460018448353594161271897336409270113661349092960735935193531865174767999620865789252679620804860948881145650385224473550650045501495657350741364299929131599963900137117411879301435974770781808786608524695323014674110235575793817019750774359647864047386938629119196458303748044046285549053075779306593760140147716283776185770482731040682736092803641533654818370646268837913537079824243101921850039455389526633545787766465990887532811213798471298590515051583599856804816309498232450258681998299284539188226752174761784754875374426058753288025832595747316785756682334057024895420348198238347664662867721058476032565746603269236584368115620341277110818296089659806393644762754942452893858366703919176595361035407360882294016226174668214847717994019785347777246534291740904987378235932447807969746788513887919679263444631040487488682390604242846562283944836590844248946347818128619642152891596468446822756947261304853218960316139244743936191330385097136037137650472402291138978123618387414915924295512684179950983843002387526697837604615262245106076665073759731367402668814812244096547514724369346607620840285661216819400856496021928708440780009052595874823357141809168355318477601139000480646545166314736407088157030849953754101306980884622964927574648389241224933670764568503622420432483582956624322421858471846248270280457209195338595658796831489023329597746667865262168089723037993814971495064001353996290491910030539034418520966954115895074919379633400133341953574512026183010292102842707553736443615600629990064395596006532332994838391586888395043055096148993445153300568532964431114850861382081485909689857173043376634282469783157924258909437296810680526413253737551983445236929282951120082219036387607867664306355632088530995600783510311987187312101160365784079673290069751350944905390120528347743857800290783142409402464269906571106200109397237894217153569004699314554786482512081783094734618446134324392669335239683023110328910599997979880337969928691440711493177026536096412712457048241258550351170064286407511500442045790656201176272134150634691205376190519872868543513750510291692766213762921130897780157205404550901378774820572039501600997903949131424279414419994978500796813065033595492846003638712368914492268573439661019934665435734370654410520228406898984073360312453118356943100431706779247322789677877233662136249022063863449439045148733250051679059024644344125324916722219308796451232706590049594231594539983549154493817163974757032800268615727973616953251989114205116045961771465538030191010379765599622493212903771501298070268319606217802928959026015287850089397009527750421834679465902471853859041753903776934787409234446200441092345947897392606614271782483778360342409436842629228442298528897570880793954943612065535414413192872552204563693905954640168910211208926161521078739784032154915202855771493097359777320594021976215885378158988686101837810172913356992050621428933731406745409118677621405668911747102250482117915307486536091019539419140855461922477716847827635040720141218313395415345993358838229390557687906746715139400777153318679971940920932652529991186709798349081493519301766759742704788396443399228350072498221297096068220513352683323702934824557851469122842220744908053213959644816178616627999903427029588868627169778773615990761771918445344777078771352297355202577896440870983579918833323612462900639266692870572669868921477206001985220365343886568473195088451374763398540856873001305000711050402053607603060983676062831435112394064970127894438491432555898317187764747332776318216725039917591056897293656000033294407828880345301384243810202953598307751387216496530232701950953468173910606004600749939716430068551664332132135544567133723723346578560261902190025275858430609996312135782215376047890381018369017407351138987269884997735391260177553737688370388185288347190408685533880015062047171235106489250706542052992927949487770878225838768314125704505476249839506316744199687765654443014130651184026687601227596442357540957614161149042138854212927552411973514175563947020108990695043488030341305679528710273256331055746716440172299486437235432311909657735982221308894918239489375871606938883117068050381369009907379100694298870658161443637421849480648396607551888165064211295439972407920677211968551121552898708475449338868458468439989067187578002776158861380149107061629056074094480894402790066675160100459207944039387104929751162524413569904492782270187923352451515968709539257484286931510021043911814690521749388589338924032385701225703225574710063721655077782379005156100769693137886318143471646920464434329633712840955563736123240304737018394245357124672844112716529046909116759544359518983817377908302444836386441525023077699746990933559497500017937022199645141144510928001024000140263741119869780836166725881954482552470661423022474869103249071357529699781038304530141941509327692409704030920567584396823313212415171500809948086256689183216986631767037955163822577982595349802159988467686075470201362420644019086576592467310343889315845357707977161355248297502026391479014347854213066109680945352043201169514494335126884970711620626257577748427283882953669107197922689965315186412917349730098633225665014139746150531971941160565564599752244123462227820278280488949775262945672069903778065476636156337611206990663830458672445978004523994310297669497359073236335887648046322624178354769145163262719845395808707502174455825423405221364965568539877624309477319706477322430727442730483203359549154947970875813214126308173016441050720498019802241085966192969179638324850980532836713903323328878507998833099028182118686329335360632642415360479041118680071448697101299058992493809662923785210017941076790039528907527487089699069942511575030564393902726319196084908937004192564023864346884146258139758408634262122250106461586255709295767776683107827882149738968625412872467339493181121551562243967899390336013563272537521293485192996503376727248482843296825553396506903477188898324218049152367086184492393378194000508232395050622778780163701009465200772143813460902513812368637825919008322820017702893072094972922564536794769734604366554573285008295038990830996312903940239347924000925333181051255561065382320432963483818361911736298953842218249906140198571191192507310924287171172686015273600794463804749241328459279206671747573915414476377632396924258135169369338504478289934684114400058318465521540029188028957409251828859156791398994781170236083729837346072102648867865681671436009745221990967796587828433716079134220543099906780271723362914530018014310396555735657920146695497620334907608255131829383761724690711490942851301629650312108386031829939217050644824454319995884914939112006211848002206806380950569085589429839909175220217916021102240377550796644326452510408976187177534516846595146238842166067003557988893808733678069991088628509048456859194987284447259966405358101622378049130347473175673747510022085370118815891147303316818685099425280043111616261873442710555212451074752345670319972662102195231411677400926596448802753428828974873453698859064698061987784934194094749627250985182841629044304587728904611785575366514723508604327997437841733507953939295821422417983377325768831715151951030960875092242590641353528594183169181832117915022086784261517018618483390007604638116350139808855663043616337905701627779926773324294145739552954010441491846752584930427232134498978708286872479686066631888284806536899050925548988414891834357459158876247966512233596430473114850248950413038299845371048275607381063111320024702167429471245393375847561053255291734263378412049059324516387253201633958630185239583840179920919556082540536842074598787641567751055282606840563732218706617725547669200540371834049394835299512832301260297610632697163033181148620951917552297609184712741631286164715457281408136450968919399762704725945625268529195585503200518971326700187791015260794181561721428418230760523424688131479019469009304966725864248774164542925777909449875046901827151188950815239953433197922396443693432288698515746944329771056599050549646208819085790036552188999402505486295856944032799316991723872292126609350040322246144561093041944115513172216040083986530127629842192558300249436769612868284005163876608904072568248301021703090133336509233465080219988443059739680133709132325953040579779057658887829522460062147016219597478640366922480370829525237550919992288495303073375899452667993498545121845877965063067734952178514171950268358312973269836765208399935002095893120266306740552613628157964428264120272987553225640730264567791866590857689039738254377929384824306623599276015371315097821238584247804384307771592120940263785050632248735582453071830307415097441939464379325469865558289428769930407000674745758841505386580900863957170195869612593341757827843974203630493514717237159136983714166289817517226596888648167571983385289292192106034158437833622921048525308250309117809541556145113060547013619694510750292845178936464557249310349057407587801927128755062550906884907599627137604462986152208115531944580627544554374300466033474914946786819744214746010817704687800836023063899814306518350454964175037777366186554160420931252702592917907629931589696595975015680034919474299337842971176613422030657116520832042421019953083227918534109708881687601596984893447296527685550869212220120539643638205672762525528842765024737811103471026405907874129743660573708364838414147070332050581633318362159175444178400026912767210879102141557486195800591992190825020093301968351781934505593507340564633034141356157920102365387853148067741882084345729013762749202830434897618059172949242100402912649245793913894719528765933274202250710777339370370754154295457166531586944650997533583107162407811912026546088368691018656080294779491766622734272542652390613391923162177932748358782748978640755517773521025647001621495729834455916704957232355363205381950418006857566548750780889349473151132923966819807398852755790636912474225988950714844423888646053420425655801617387707957963488766915018501077950766559089491349353852538626484678824750052470348258462668135724043531214054731194926900859487427467966676458379431433343011715627793942548497703677377821777871141343972542758068007369727820199587071958512467372661444003112743032399731924451676373626606413793447267452679752579535587293164076025793419910022617812611436239305548454069261793532655500545744218337815499587425892355791880700551138613667936686805105246812736415567040848076243012999341980107574982853661228474536998863063992238998044517480851661408739742130857311890126453304933311914449662710999841478238443174805835504125439276252074858207314936176960728233968537053757839475038437132970399488625721211130375792032866381274230504245526321905609495995263193203917878451302262939448548426562152810682115780275060500933745208629664061794895383271476410070471861439801367080327243845143129606265718378643578337459663156963317600631080311503036534904317987828824105198499947080288882721706088160567942032010122055175804793591947603880683503239342163975747546836673976064786964908200437114593006995338264966129042891933950141070213870545520454217138038529820575901296748114590388014609420263367208249638260178974275730212848093532577769784324461500133804581345830008223499218318606198583501331011065867146997082082807386789181227345979750442723553451194080368120745379660114829224581549767712808380545837883727611841779473551080265696359977894923433909399013391700179698719349625876652882516968098412808976092425988610416090722542045138105298093117182615698848395814415883808744276211940293315224403633816591928658707699293133008960547310750748160642176047757894789035793991555810476652651226907996241379275755812403517627695470711525542059817821378779922231575534310357838397236513254707703787666248459670100186269364356816987313725247946540069477971508795618190701055141844248831057824324604404410194143319167028321299881589267093441608628487979992522281967115691007759952672566846088499264992862248741557671749257873304819360533831181866447118405920915431878289984277480552600432500829118111974287930859972793047958827519042335791439735582152489342889595726091230368504329690276396977150454798456844898309754636845637419152198972739026828297747836356869035639003524226255723694409277505232847758652783050295647500131113444079698218982008310830414846366601393561396474430269955267207567816107317699263445984554850483552787666721638192172454142665625607319079024828242266775800990056297546031514253457326157949744192414119183843833100029675487953187761208582546444536287645814141933270604217895420951722627257231781736327365881708390239566501621392409316175558830753383935502827263602294179180815974482998736288116764666165883775951159179626158348312395440999890096107381630778270380586916939148786363160048588397457046764031203750005049210806762041785270390157720577914196835985513320223015227130798144767819883496586726010001418465833342231004307440837329971918290449205386994989530455272853026462460861287774848252692745053283114053651369190383244821462465834532446051352710263102522033878181816795247016910354852294235604974257225214964259366150857163556983658480498595272062290191141139258578287255024670676671141283446852710755345805456215533058327584669419220821551382851748730609305958497447517672994392162197590680364390069634331323963482993987398331935117821875851427793856001516235577453804497594854933287726777086965156612474962404076041423553254663756837674971384575093094841701790530997897742383380363075012334530817794375408387603886592945757299340111255615436324900364095456294676511562247232847265207674719423873003273705667465297083304227277922152530288146580960194419744378984403356676464769826524084798191001162689630838657758546646195214287085664476136679123470379179974297745100638147484198512175122408273305160090113632744767724449459349137318679563129005200243749631009682982293344217596431841106152556578065543894415066804154663636671004127875384687588442785030296462299018589009811121488436704971902727364060776113236431272291172095542424815805213497778772392663730518425971535098634558421165348332126608905213259012692955961694618600006261065513309548802136387016403816254671488505223775327057041374140884132673244306772429038898382982143434991990186996056371690936319331731223270218954901213568157101789000001455660594421108863956598005169572600976903463096376510317760769907790131623696523409032535984408940064730173298358377472174430328209380725611712505503487455969168260321733467995842209913948830013807227839670942294856805458880917942456282570106666098579229142133129456961243097297962436148904873190731718153010007642454945509321877227843589981492133107324415853030256016636154989831797380225876484291585318388535844905166269845243380605164504487567139598426225078699992063296941188326212694153134152005805304628592033495786638185527066598277310615511241795833296061367488920199836549958456368012985274371088015604623533607303619864877462850708154845398286274781168723003173726788891113567693369821845150181814775423174767135405904357983095437939969197817732699361910112776347704635683549334771399052704431368471448200895821795146623399601230055734568087568232484557538934616657912644928790076914464224749330374337471120601231784414457050620855328362602384024520669176497979101059953636934313771037882167597650535468592267633518131423011860893111293314538379148479734077413740546635273233704780965443562040710316804988236659512388140587282569238000858803133512943804063973979153801722799339792361544054460517333708017498241268226184237408893764483515589375528343309827625202234292771720794171569063374906286324022578005865251138401695761083605221443980881408090784741110769261604929932212100385772505672201708134715368730528812124083902212015724171817040947294343593021191335421591242421200531722468330043707448681831058965739215092553917903255685308892835457171415704857047384542547951294387582960606394863440359133774877525118587938007287747891913335240649010908907568112666007711551925396429293384726979559432903929702421310883347401323700256982325981309397421637620568849528345494338806129158857031404723022068094530162004732077418055645138951055333994149194613730015558053671063476827997399217114583609204092940897435271101132327162179126811230507744192541131966051968835992087834867645085033660271338699115489896963277560442276072112201393814851390288129921602159099996986085349943198608239675545778186375288386573587540294092651579567668904772410229882032151928177685217784669285373335644732488676130107735668593710753578685637847126827402214795123854186346105965425708353783741734445864850058621364727785461351216016745875594563461075753932445285082670947322342286821453888594127635581392513059283598589893353522002920087185996817247315634132346038041248712397666742016003900406588551771225799312679255810432127294065743496647041117571020737905524683685391403212249954026784139229113753408522313818480708960094604013905569121076260866548554240812734137415110298411016901630795362901424987885457792175292582097809558433634018622136870713686146399914537320795090569599187495992300018009942891194953858882817985252120190554289639589952445890668281193568100281009101869873569161880338451993439855991718620469279354780473409445924749721798304161068378333130034662139686539335504584457353581166093532733142789401453051245240191262668356730308643125717678445106315851873242067869798415418055100924527900080161136911222009494097105443578474313427646749140584585843225140804114282943150507381974707510326221447253185895043207101857777991921465322514864360892666972525988460211214924485880262983500495419130950616860512225185242791132593334856759559269330206588142544018505503440311713721637971960334594210099747888693595399201588937094665830478042784939423702825232321466500774597347326772674986922665967102104387942332311561128948120870642175267638235685400187097820278360069873569626954327248805105506075313603919149667506918748236100581078090181223312200462678942660806670945482109550763420985516824044582869155729759992719241193839543866574639354779797458926746749153421209133785840311704227891901446234476361877681677013910000234238989161327672109881517360969246245097592367894599452771894898496303233114051245012412557928257241677527029264014738865933935814460077287117148079530418431206613554304374005854469038886747484929707565373163574003558814334621976623508479913152351685808928854111064344522005228983648796168169455575232868048246599569332741587793853698099488947772913597074066403134949174041781910853743536264890760124676401754761025017979968497148485129472355840225313107088901968523476786470210326702358738673553433697792653054267023596636720287539527701278828240574405929160570028771072578859145469605106829590926854788038499625292641993414626873369045171278168224805211258275675147348304867987472737499366401768835604062870918111777571229027607927703022413002702475158661181149218253861054222078446456389146074977740446642128202996238189252131149034377901543206500851164019417602451725844765267126523415964145949954023378304885023728410051586731736723991776141866234117206006683319895568783183668292953861450542656371091689720453776770008545026914858047729345005901111613353149878509835139557774457087869182533090175261696477647497775403393264950535469795111049185013043407190033235998544133862113167202237361721022337735573608286231711672111192777243168937855506304062763819927387147890509166999690560210207186758503356668096734386745929355775056265035727237359591773204723583830621393846975633415045013686158716931803649108084658826390271008763061820233175860333159763998286212423731603195690312436030044269152354789077452570282910340377748018067263698906388450722053056353167897584760186292819675090848143498346516555520175884206551058103647764233241130977161920187319695083450632524825360318395740042687774602445651782076284309166003752794436026391548433111303817114610980575166379434964095735775660200174820215445870189242871920011091407023140018865367347527624122390969196876703662063118058316211333206218662753662101356131383749148389289405488247129599159481008052961645566249567300644591366323813756502787386402841653630538602925909252477298616534085296065414100985101744760604201207372600350849852237379590317656239677032791899755747957585407765761218575489899147712577124519248120666354942900497259321439757728619283617946118958504277586243152023171724442709607686902479033360190273691285204746167280716357593735604968794601810993020839719323057094661870024692285501529635048642989138251752169878787145682235731911912966662766587843411617065699022474080728533037413130075929099975612097015772900078432697733540597062443803018862783954958573701021614915700970758172409115925326309994758507086259191518826455517901081811494300918371971582327859363505915567572532887113824468988402101439199988024646570466891942761152739319091090833976564174317929418417812914136062521025639286457502544118491852713721168770024615634361484927049697896308185411169168757672270037098636030063652810200219095354101214839883349069801628733791434572392243529572140076031631199926033280217309213551552863285548054094737195569907682125230340536979377429030379991438071733908591724243363668580764893032066147693523761418435091342784032466015444322535993399980391442371891970670666971888650875957277155773219167992526476349847813669274963577050766915659606059643349992188544937162335140589024205076568664385174569518829223338617044420929840305125378664974738827673016577188134345449331639392870541253242231603647031341729754512546038068687009409067458816388637098810426110616063782630429508281790231409619401921342181726247600341459132799796315772478639944282565254388851131380760098188406752239809770682160824819809955388823165223056083164714103846336738287131758926446054505785857535484434733009502645437641617083430295746586640550067857705042791676813407574915553436017372172251354646719564804505026362498944531895340929150382889403338982806582408198874797372342358593625048126185924154454924742927079736755845667027147455688229949903016006119383038931323451292994548729015515306435166355045890810012447819080819348243838832213771016598959687020569767931681814762536640203744311910581853166846754881474944209535624551553791844332541729612681338885449090195544405007683475052977014237609288570276427403508908986560352473152298952373364471852376090845073971999108861171363377305189760456294874238886599136535722918184782788240522306975945548841700421816002388943545464975420853559577374219471691545879373650335079762140963018138727724972674026477534590812682448337098963723114558660926543404582693997432370273216432508586610808329556181813563276860973147072983046034268919464685963544956045827604247147529950700044081295740578753309724696678709823334175184141913224065379123571788407611062183056670765925993813376872418655457908048768357033491662691356117100184577016031254764441174855080011171998699042715579939551441308771426668018235375654353225271459471885933961009958578833229908711094439792613775919337915866841028581564170167310471870932392951418671281363435784154410470904692406741805012725030428856697845731310365229618421887796689367449128930125089656829902959685171725620813268333908494311267293145661501946395358682856851530800993991858596977408856953680171573651277393483098158328208571687328063033732221284316059280361288022960676791205153058276573253332557700961262776970424747011476648077885767398037252471552828203877110942585366074814817660451505097105895069285898513964767800354129306463339430055896285187772312418629453926947690233278049189074885641601499232699393505321103893300101758944348140252586606379405254549227982401919113294304544143820137816359469237727805952031862346320020197226217245001325827964416596478982544522089490587291822232850895975337783534455955196311506120596863115679838999784785188652891445016206509838806752078791860088959664488830942537830941611746290829462392752022174628225559362499134334424791751602282660851797929629455600038479766545358939447669637170503339974989875968005023115868644782100302533465407928914262409291182591947528413695671531459688789047517072578245046524409720829206372691283192489088650555678289395758687699019689230322891703860794416814945644657024541175441162169321295027704542548428980588585900117741301565470241618948750403050792831550072933039048409834989686195801211818702980003145382870067784449373918629783922787075417752032813488090972119754985737811909411050941955161738914369436055374253292018683319602509229681963667902954536208959590303846587143846065193369559181148942783991068164168433004018771602386049990839193226726408842028582962391622633165155169665655367108583150061809569859626444459761908580768243214310629423913930976312842332881613014650839935747364543294190782617638439440283267280193242174015158273955272825797141904373215677383614903933153807425807471539060832998100802550259361026157227184595618284295649988774663842503121039155212248363440075661021148063726465497295636357158123935207038592106588417145509812096677803311753494188866491405555306196888774915889229123919793927009941447703969489754946703908578582805689109358756590430932443796390062585822695039340572338924530099540291529081169418037829517401329932977261360553057119685313152738718380126528272893941248855560549895814190399556566058556689522943262485191147797973366594095118373007300674769095387533183617422763655775318136892725538636055126046101344164852962508515038568039239822156577261495942573540320198092599998277751205447993898750917872718190817271834019182270204857858257231390451307861028107354644978537928017438257893068160042686440034025172625005063040699496699492921937354266319300868172385950518634608533197174117250310928785704153263801781797874125133974756404338265911322407966491547123203871683189401925536240997155656812913382225430738274957985837182008385440941972525946435749768760471384877039774839292418061264220569493185513574510955752998728098826440906806793290205932111080338847902917279344168311175790644988524660766999392637339154305039584669034392936525679735220832114323906325654278860042890163573717676632242960236776726345672558769847862852157256555921200430812088568805972154309175817326082236270023468965442811635959185552264150436549193838948822776759614566226911079784872531458294341299100520119074093076851055077828140132294316339105151329178040116522000701779581699679045243190268099326326171707643542419615181306421529967331407297985937457477372846527877734682512261259655557749568793048460455174376827867539173051644001815590073931608564677973716469858955610920727577137381669056643284253457617597508118515168849496663533162237275511018333068984880919714344083823769904255237772063053128446646173978087858662960150397257698781689571192892415303816603250946909897138675723999008062901533947894099713779247333736709892272820660424443089544736605214715696811357579193995878341444113376288575926513819175242648678366341993049295447274131883790700639837036695776416980253210362235102682514208049454617908662861840417812997684923135116885310947786602769588325867209154899870748485304243802611696141330165464726514415026851387540008818179634016889697132276505438138968848321326521448020475884558954975781340182979325522882856190788159868494013455303306211187354048374046198710145074237552228172187649732340324872404823185539217370913375851813784286323675847998290042281138780897806977828791424031205512582726538672053479682665292877950978633180030949671683740327588237897923746598354951060820347516525174042560404924075891658767802600534938625488140897157196898511837254822536207823825830585845158591566784785824934618651888245551986777980320000660949439596651847600469586664800481187015019674292957349279688056191197554952235758567924991303082183118461574200212251207827730166221665925382576056103434021369702301601294432844334323099374152424785840791103845068265673981498933905126550070261670295491563525083359643300220378855442756084803958987451873867716041856912451342790737173761624215506226365688656868311292490107603488735438054316627753831714632266475123573072921870381938528090172995953542902445991932232767853258147648029980192331629848817186954065684475780516618978878767395095339747079565256560630968349834516720285208821936094023231443958423207560872867151400494956510748859117260187084684839372324928208413206652539799899887846784372710438343727868328479822615703211347174126617071771129540865021227933776526700027790097839225664592464183466980251318594890409826539352858625035186287023401120330118046406585741403692280323782874302754567468299101968602941521994410500255338311366011297035256229616180798688755467191584826624978534326200282875156652280707758131736410341895966281264252003172293186899871498127211288143883648028738945114793582956229497583750762208886923678937297861942981140734567293540188527164866644807403486230088820639632306551160056778053227367288717643494526275557335127800618964584579572052683215259631325265018051517056646073854635349973097955725526228010964829323951532959544970455336924450146781193699028856107577847094780024387804535471729112433142822474017715593182838249269056846104523543197655997340303338366700051334630721872280468322333590119191585244476427648679228641360452598431924513104412273447996954354964800760743461175886898230253931678313716560260772510265924170434900523015858597756731588433852813115361485977493333054906537721089058417305920388242983867944275662894793618166349445739419545750127188189354571898765929118306858748919986991716059901444297529930908142948520936640486090415335762762727346102458874552794782734518915516774842526143516559464813573447838126888246649731839810192127837291652591480918520939305026347479405244972501339668137603404751220481935032422585216356934643171068630231829659793101030602440251217301821055704423537230192444563479054919417643986065624257447525169339589316619221269820620619945878635694235384009858245226969845231038989817005440115218087805204185975987225660275507512253760768730323877416185533426513436751258455871702455884921273334144120417796264297342341825164499769831621341712493640489137692854020598722098612887370910916068433809973916553453930820347664725103502795273725932919163768996797228524474518471259397303822574258328290245177661491369607344353323763002998222406457895171887511683617032026628187949471361262463277789740863150450728928968316539059157102896768520872534492232309327488988910771589366415258222711047229482018949334022869305310916138729408149453771588894297834166383608523061119887515642341062388824679845307350320529881216689065515326046955952408421544250424673934292246247272552504271649834659749559333541105142852192470176718707528221548658572049028591422124540525458763318550955918108179883383672764498188463946209098165804076444916610210355425594235607340441084154503230027520892632132456429199752074020510663575666143643460454779351870017214396688244431679668582558828416465891000697245720421978247436331023991921719853628719375031380648754105658932580648610935174462092259636599767746626025812456063283966206712563656221150185046134959330053902322356680746961751336356285328561905880440129274082325926153321244969190192982546479724659236624852158888610732805732050179679406279322842080948113364483290421675260831794256782368203232368550562804705358371757322125448656446303788778809843552388601019523059437876838907948698404582255692439717833165297348121095115295481396266649264872165220017066775053064541149145539881388233173199647971559700694410547512993348859982774556099092719347104667494397635998038308683585154205665686451220581018301338744544846946894873714623373318016595584672489891353416082878757876735820445191988385589819559543961178995327516765493992300972146212633851667698555411050587868551605502596904908072016312765480316590858214334621557245954314311645719520343887515324079626682918774483859307858101250792519093958181211632119511491369663646196044510974774257857045698424113459325626142177746698328820682856724848024713433507491167554778857072613995070453845119866410768858252062395339342096049153614307095025945707023876398484494175189344495146558896870983737995759916419543441127494285688514417489843388184621786744460858260771645020074093185448921511319790464346842518930946439007968256945340804791117018702874048567644528509697309351296818655719861606400024454714499603411310114821709426933427870300642884510294728615994966733379813314772541461001735212219900260986062681955572362914233613590687662652909163540112513216593135033514389416825286875217046626251035313089124428529799584805855214795276808755554313877971552789393418512852784067888314590194466518735900050993203417560360726428736265014035070512500238309546603690445893538989714380174278740082800623174186940487797126974064145676376643673288517856315574906773719296448044227503322400599638383912523810638417098353637779846053459003631207064711527599544512534076735065519698734248270292321186688890950613742284776485815021968158850169867089347970163183453181341409613561519791186132950531346969539741355855416239354160356639024570932094501706685162887335967723209015904487281191207380634344499013260400652054914693771226671783802031763716125367518616559661214139760799275788747463101237542481876176309969651178574601779694200568073808232006991281452539005783323404541708034046078687575656305264956634834066904825272427030198443742779169100252080581475354087656510480114187517518747927831447806883448002940287179058986189884104125374037223510424908510684469909019509511132519298802309822921634410343782731523011584342442019759231818876773553992628135907401499999415660907079051585792892442877077687289970008361355612084932827843351696968338006818585706984296651017288865718046985771657548625415909321091110961478824240206864829924551999182422229304846804105256925496456918666674894041663418344985245834602512326979736941294884971797395510926352129388666702567717893184247198681702977015899170686133552359787249402641504003147394592064138056265279967370983410802238716684404397304300021067576041222689749302800007774471013624074797480638699485810154373915171883355053663795232480244715312444262746028829397231052423957987265688861734549989772693995061578589474681491837676945658105932797703974660850128604174846918089785215220686683076790510062421137512719168423545047234707042529466709051481380852858988569339989206158440822994910304148468283142374656680380754155516479978238809789359948519483961505352324350079410573387730449127328196456575829079123814701760329820978105194302170571995626360067530398860855028551103149453937973696416252655438498044442286506066505515696511316780200902520335503210207117298433265254460925238835295821030647052861468480054662125614842893477720424008034368465336717068615476821063124303256297724678070674122338227742037963044456904838992017975088463715093681525718365202524894214240380720726010404743279523359610845425545524283478864626192374081865734083979720971087113783649277220016421605335467431205699489188468006193097502664582283505639949620330770664366440795488612585844114006459424995005748194647191550201728650177003260148627517631657274203297561506689130589498012046401977730096002214154723438791606433378263118470318168516769942700595662074418301090422468652486275689066449566606554962533976345558352243716146809248524989445009299316066754393537729785629110010669134427679022521499916458777355221626365118501873517964371095600147373906365885009380308828913215464983581251234101225231075319654415608961524071315672526186033122199406590205301189628726345985656584870034527165966790691921474186144319629358142747187353827581719516874037608395623760408318694095800611312739738554188478070052399863988671366560014124939846961273262681778686900681651688157824524755168982629662377761272478708410117836458956880235654945514628614528866813212779971157319231619803791776879963507675108325098958418792763212135682783790509402625968361552450056680627269245483862636810610230498501894617660094167336170918971125937908200035483622891299510614140564956175385360435347754843865903095690518010676592961334303299149246290997542693356388722486945121130103635251792701161259777420211854782478905036420020531991659143334264097486280357920272803725391155093333928315951951130187498801073092682036415499915048196906917253351535690381987475104189825551197884604981552736418292452989358305359390009031108296399849993329213583167317160541438158438787427432272886538107952136825524335581136251395452511076424367875879929503156576898230743295780362565969047850122977249694844359436664010406512845165399925941851845537368505257143410895491063133142713386562952058018506726707334181077669318730062361399163573505700733309125628537788398855336516615490439219491950994780984341708717177193531015535481133945517429479619342426798559772851803420245632194387940121320101492424801413437686747495798636383634596563584128726500931590803597640649876038051544648232239733261645477436857332158662020105123334250022028265056604126570884502108112156232086672819662552992147926479196027776819296803633061280776958722409919221423185774917508334158137501077463342611727460808981000956181884597117787756373891321302307583279684786392210946477892847535137476460137695346432754501824410209210483475552454994560904026054811168161613200006880669729610618702071044799842453942417891818331128095341548281259401433865459646886664625382927311358294994541216514763628360336679451657632247017008790627367470851085402391252674285761073999785324035515941420650569342899112408593189440219224775745416595497878569806058449638237149022171618072682322819823928142685502704034325565698855318227286270197799986132171216987765811526306386084590966559697637724464814991315620923005450705454478361387397504491678415799013312577685566078496653941770085413718410330169681185338201350509151156993704431919088590725430205419350798942423355340408222213263246056580709694109282809415287252407384178986866233213564142372459479033344264739121308910316516402384139737203108672729690036746394279786637486520410220072143240597635722031473236977684400265715094727850513685525831579807332993849550525698218482142280629291440628114785622304856396061911686060139156655009031079844872582842275675571618002928812365575556357776581015626605744824683191864189075826866284900537186340890748793153683708340793662518194173719572139542860477233175694787542287494301562611823957941747237198455346581135674914682642734315441586896908355852779912473596410673437882790644417535808779757548734060072109485426347849176751427639417104659183125484344382683632029073069564216857790116534298314801778492803108781388573504227134533737453962629503705436052133172905503207509159070829327781823285858858806174852300171918876033983900737418800198794724509246568990264540455466385197577540011671414341644662260283844805315068273901786325023144365710807142064049453272767667414067617565519416992018129197473388373439466341175002055438779162913020199284098432121136656899651555829730627046121601724203292224808157907463815072617383046934502273407427304075061806107294847463383643939241779392820576397284162253494259505244223892561987853704097078800018709968820762277159562567605825302151457521697369997990759639483080323270267099714766253505617822034936478223628471368094290611765903248327790391578127712247337314249118810095319361713626627666883630911315674129292567005702164095387449496732175501162850718099675849070426029501006238271985432575176823166393744031255715757283216524836531428922969958982498828397347059644356984287365084721395672515392070821980040642382179872596686113625005464167336921512929003393245618359234401781647293596956133183578311464389686146473515743305697588592211196943916532199420916063071347188568748731097255623376699319945431093240251495768615115577456524488287086251152413926508221550188150977397504341272819586325004526890427027315449363710363960466873957325144272722901575154340860195746007204300977098448926685025258761958295203805370018935329387099662672231611136626104407798577536315234441089750739604980313700895022207083720749556625365539936713607610525767630138747541603517800840211446835480017285851049005393420277116837352062164212783927780385045523622620220063269820839901704957605630460369228516373159994969819800950895032630014140048760614557420596211777714325428372932692080207437523946926070354037543293749583778641146755330441575202637938566016050126147108267576154803189142192979470257480268740239895101373562780006465406341495306033949080422625746724382666202507585807366122416376894777459047169508299580554650473628954388307608086389708944965087429320044050844340476601978650068421048424076258512582039178050043748395232945257567852469886984577881991682680406752833977765862658443859660830794319396353747072819796863740058232625941563234542220772608069900491297484182039371037771663075426904403383377037472624658084923683458798361538738902278931490477016684999811472454141332206803044429806968284364178880812931173576601682928379519241532161325356747358714531887230236248912417392169464297108621788131770002034280217648834506399908729507636864069298706751507910550973874180506277917018731199116201359860443468355209212789431704415683860608361622972181846695147820779450433469305674166093221592067228578685501092089827731198504830683121316098148922476939252461881546432510945475686747746579256346360034446852162004358981906128373921608156286314542836574891549271138668526593618883333467669650947872457953983027225017335093192863358681426666192273383916577322855647163669326741368953598031037662090363798391880396115257331570324611097781473308975429545637255059909642248341259434688228828503526375898826525613295499376133727973801977195653359613878287722507535422811893537910751404484108141902134091091974812330609137370535060144980375585343331632656942089333158175513032333130464653357305172903637125168793299539701132479895480776842289493547458753141282238489141472932844217063236125342615640275778274083710315955494139136400443657062653886360074971408590005645706785325338247070667565757881793828894383716755137381099745785323380210586334428752620507249909862056143114181159151596949320569692406631439060977372890612324839458311166680897348006562108254220029583621711257346120254887244252736794067511971322492821699748957749741676160989344318640015975433166607736981743090126501789530675532259947122117990339205894875213486731207442965822251863142507610177579043348121631482092395280408258121424835577274548714772584667381413461848486509455239931116216778735352843907594909223505039114798000690427019371779128151441601362141592345442342335766222762198642653278494769730781426299560435915984048744777303330734419501987617055177254580156484903424581706451090759875152790515682911351981714726609312237597393632246985152293040008607650025012823192325190347285126345305511372101944452660098516822768377826038939623546368995118031446242270966197806831706050779040820433674390822402603330065894182163939998152728442412328572344325352769185940556157863116436246252404038887104961478018759277202461220421900751437258697217873246772780449195079337116513589365743009469439824727807831382662275821394542522818775830589089503896504279161184315205944063251625887809224514392428952539522037113221959744813351719857654013757996926083968858183199103885420355303273285831955335631253058703749348686242104441720751843077622676788019041891368234817071754464654110541284021670454310701963359708299244626844350186482334226713605947986778265297051225394710568157452488898618939372312063234020520626599693990090689689766759568251738316270317933571766023662511191914451846076767313797797285132520562152997333640712583217993268296957635530611518931010357397924106446693523182991358342137987404262557076824340135896497154990986029496742036849058649692451852703967349605604093183040932643980250505258550769965797602783009728695406964225002770892896847613661917740187310172563207525619843388498496628115363737197908470631798086657941456308937844160862845699179237076038839695617109284459362511802148329745760358440924974174647524926540694675927104732003123588389910288510265192855156460229551278594873729152344790581593725400210840303264056470430551528499586225307358832716416847264990379945991591440243486827243137920870634657179837459170681797124939725828221998211556786838368028302076699894000224198952320865747364760589049272088954596921199175631232307623997224962100452342047263301109605944502195465927846021623886106761089243432757556531984556188340203743537217928492551215461812773617469813540570240851973193288197830731195502722718806505681057422996038242831751276290659232597913470915939464545735216586652093914241269851393980612836373305841323895745641888865233563779836770252262466825172946341028644148590220708804179196994903607777461374001338131954514024312575235931273001993137395290400482348659135507309955845284095795468203313132223998935558557683830814584099984485622398122614928303732208194376816510314676753660417344345736133449025694882361092225335641275443412933228838631141206352014286147208407994542823322626012006107533769316868563767390943524238831104640419134523097907101838581507482551706894033749378545731098081058309711274419831126485855304405125599899235367815546651144775888957370190034120934822239408061091877813988102003371390765872907395738753221864518159962794243169202396611105242984076592746550799023105963886555236590613523214189089080867961885610565750457242866942403303335154349745898865513641629643466006436445577463912604756421346010745315719470280236140056624710452029011750164183216385656723404034576547534709311766565559729363983521765855309889334406260368785512415308525631507179941029536062962003628252045370291210403208940464135043428128837629539848461820233981666324764159878610520458799810757373287127351839298303240431488479296171489701942476944535592026549841246245590973625337097867617261758015040307212042120177681900334398407566657204047505729845390132078198701108088386047107113706592129370326556288183907955447126487108128877584001853432789424852825037158252742448309506488261604927708960229278038630858677299078549820853566103699286040258706538694203352558482704434295218533424595892485872211458699763977762630694417045534059085755738303294905231879968773655209729713366380545027368213809656000767330608732728444445190899212087844817392549301042013576952212112954917830430197186191771305193590900982891922914427812625256877509781406136201722074444923903925747715824137388101324694662107376154801553713548745178253881165324124525431991502948102700158395524688144156800807894794604756925734414767780697909222633685833677803858341154628042516074863768212681952182506609774227274518107903638028415630308275505123975439399317955375066042560959467057770386190807870155892366510394876037806928403890990020924820221193910724062479865321269651270652362548517977716662404337414774931362107388497212605692655532537329811078170027119540167115855787093357685702386193284033738802679251045338904132746469770291701437426381686384771399007655801465178965989040120138896761919322004698892529162421019033495948870555727298349173080370918425547229462110922124573751195561218961766685923013132104942111692202488291043961074637129021725530592968282883774288445096249478468588835769846538744230480697683607762912499946379929201373724438000698342154229576700313517523605301184962939333763017146090502690049202093705053248604101616843415850427008008922892263928015152266766543363877378236537382615776214566002624199921820727623851074839728371187794040173763376482535047482983959957240189763675599149919833902698132300151736081712382841724733484485325574861126504772970550810981526163746332268899723286425258912553206324883417449417751117555294313945624735749040130567219408199688483413241737237832394297335376398755771896429187265019663204981330761709605158813633701678438104591587860832357899468777269957548130310524464575842227767191133603305523287114152150562851536334431733758549816227768839882630555973629230361786327540962543359294827813204352079600001442689415348051273593166569899340324109250455817525157465717669205526529865590608531056093837106315933641399708998410581599306985309954743127789132735159658049377146263552763702847012893753743928769682592857731307546815745399193954991985652801133647352744238596066605061202293993753524585288727422485733050767146566457288445134113867408663768264937414650268565800805453862459581111405755491695138024531856683388901146192528147237211289266224878514224108754189613211567887383810899229462031909062211073356622675011548613135887544242427765394480585541046222545262744087292633068611994647229532807185486321223364674428449390033853155339077999945965028498488645662643233042246388443839143510820360860398372456009780447596532281841305336459309369393351641531649073460696698704216411180126298345556981033263644030391244045915032102047130730273390725451338449159354595297899061321455115652975755919550416135071421639011522645641319180168463601521124774105722329398798242153728700723045099888546590491599381051129285565291576135230870618689979089582406388593335422918009413831324257246428155129453432324743960901351960448558366419774424274297952146618208174982080137443929255704032457744635094545621411465744718174396928093526140832643510770481789422158665359420777401890142012461066613102773950602199622305330847504418883426977754180289585888032525161458158720052252936074223305431288542929760462578767392516072538115457964392402681479735916603481044421811192926103220757458280437384489486428649332441156569306458098926490184733728472742758273525426298684754006595426639661617397240238607521763888856629057482884995979115583224820236899607297383388495339321510699335662206869278086659042497367604329831558084643367322086612531219013303454958967428160066385974999546591335656961698667469894351411486416274562000719897252182796194531188173835843574459542696564638902952538497447570797105130482657721574308383021574774783540264100187845842865531269316486376631978876435077658793483061024903002041074834685187473389449496249557085298177675967854870993501538568676008629392323040602012649873977630299556126885883836088978161116700476078709876424742895959745868105215041576345314882225577133382874725276933657850911099671074786647716886992493434792563163700006476443274195044945891100577408705446641130512824497982491065401218426119794957310614101479438108616912938456744900373804313029099150479927755543597408869470056346856010609455823816837118785413073703667398522011378037434215884691822649689312547444543409600357108451306693051441039080194667583257525434219224696522727157750755211046533315197588295315631945855839604474655547917407667536574089895150827445408723322501928621920562556566346639054527708836618739070193623917615457536149141134985946780161586082687790966808934624739997737778608378198758563901087171009316444705850773434701311027178124886065996680652747726960617591587064809014169461944283493533524135389714067909803146845968816231464872004503477545202618936638016433898196021438347394029101442484976006814552223612903083425046481957946575862828245468315216479350928679029146195341694909363619566313347057279658834752924389145684816838624642235370015628266252848908233527531861189103193893777900767608352466676787869167056006043519789886181381424797166081279285131559310846255930660140861344148986121145904078493954298176082874917967376062052181377432902795430969850571941648772685772662883747894022377768544777273095781055237492260045452924016331756248754779826065063439800214565856706606690963959625751522981196387548027441509277796621166746122601158382482090011097085240814799737513594400428097371658079968044052078306185707951471038979796014402574638882012332575708371610483854550937504532223212153739286149656871614528988939131414654026008832219083303495693064583251375207742207484047741502761798994032778659114272439108603053950037038788437430110872661735220849243184828964389815479182181767849832686972648553855738804405068662314507522348501155415854065934116806778622138521196859361089308390617097422640833069806536848816640140751039706535762992367420991348948362432472166973289321735541972908404740719275161947319215127602736381585604683134056582872676357496044032788409582237715225458453890144684619423289059552559773255891870940613979501246196631131381029015019820130738123139546601774736517250023245840387470207914184113491783534751024364645218770463198898177128894773444205557773912906936957094026285846971365756302625144834386146607229657704561231346105469089227485030596830774942191197907790692925415607195221975506886429022065392830464436473553753082734022531882213536979352145271425661042388289410654739263435119415154562525141777220027581826112210946146460386833000951346883892211874381906609427039928702382212396723784816662853536720671691169069261206619509507436080027981447150559563724684625760594258823222254128789669674561400363652008500268992571352674136046651050586839060578404052871114877985223432219163171179658581267865237626067853340584625315249020130947984400267680354561013580783429491000783513543546226648284599563325309856070467008609513336358162888354194116250261341974408782546986141051351579661620534327186011033022688426846340848197205623398676232877550701761951955412726083473873784755208737434478715669309996712188616676132090255720787417432121200808948387260400070413920495300964101383137652014474259474556389731909174891045763791367007262030542613943937714628291425498406915339480649512799796810375258048213653025871900575029424612290343649490519186946169836755557692382838538720025086582130312576141958406021551824992185197905834639462456781588583859223170057105930984269974519417123456592907330045702140710439126360067288865533857803555311612079625815521793007332596907114877307798211870127619428473413817073991096492153697531066836498138126338501965956178976013148467184306143611328109749992702560853781881077181483456814788311027034997766923599264396798229456001991974336522180374465581719472231455541462415259827376715033233976699855556802329836337578072584758745648204807599769052225400071944940042633227723883286787480518624319430538939273571686033853685904454533792926617536709494039544709011652882581341248799657348108682066882528718598171876439672420491443735141679029439648286785528748395523090096370325139622663695458709688284500244104289859602353232125665075093038592291287137463139202697904405671992770144465792729985786974806402912253796398267448612729403431489463496203863168911524357139836663647522659546202687950549966693894418140013110479205158662949375407776436194167414475406171084107727196607666565467577811333773966077509713105826554684603422919951246858265349716388382159896349832896112468815391944384773799534156159498121531499951887140152962779761961102864365103329108958572732858127286236444894828189995960051845153191341701872068440059031876159523448798839000520494621611491534581791492864017426167955297712182030345061918787201247841665934019695866169051651605389864374646270877482517192840615359910344198054364424439948518950385064817338063652464534741767893386018805011575832568030238337208363888550441236561743407340489813572904093112012200785818305994828346021535768199270041338542910799059400317273742330147862509929048959884943130135621425768575780840369033254036932169022289411071450475942304535809010728397629386355024115495526537976480677956609988243932722486749803413745441071245598966457615858322241399528295680492190325854177486079756123316203560029604393163748878825080427024367783542247168114360874766387150930461997666245703572934845704615612977691270797127407458887895229024962111688708307072670268710117734307930542044796689466977365138921547911814569951775576423790817473061337171571681854504755821793921725036375692942077183192794995396068569891727726670266996417416524973085266637333863895113835351756989132588439941069574669663190329551317892187129591163822617830898700370970370137626451894598192073154500754322357026326410393606116136313019762758920923613008874858892042193808765159579452267545451974766832259184922730958921435182854081232721284528601908473540039623098284381576490153168938630674850140858755236836961375867109169443447854419643564534016694739491048107494999766898435712412231924759564338889364317104993296250328652625476565253985988542788841374184369355096360172851017603993591486264193482885920884314654539818359188322692272400862566645853340309592892662049873779931614884287215133836659993490342374166589672196776058301940206134084755468357940035130185072739103253502018882405329014049584609864593612623599881877922542008293997229796657543105332482159068820189984034033071083199453000185852350905078814539573168438809234695047070706718625220176943987662508246485947477017361285047182344438481133121920288288444091561093510750587050907505685252810718632635973574609891876151538031768041663517698275161163721632353964189317096299975273978411443870538562866141174081047469570153237458646943286204025289254465195353432216530372873656807290849626726806977222381292710286700210707489523415198055197967276396339682369020597534316192261185942080942753934511893085271507459923050784019577648881511706039158237523747065781938737466234838999400257765293333261366754889110152835900645285551022671181252378093924034186540632888287192946480796257523717403238837589478812169774152612266180888517248754849905116128641330837709359548215907646980564444665170257247443462833349599701373062434515892096471436707705945600919736621647486655845253183754635539904702503467520239674520789869373882227718942674401001129944507199197149974126595049401025634377466765207605202479925123059050676688558463570685155288886735856776932629289539656667873499407431486410876758194718081581531695584397964524982304374146308753429044710516088056740740866154766025342625950628088064763070076296286272415976023673416730405849653164488822254862718951770118914702527919512978033429056576645024819784612678791739648923139333138623504191833558119374984625409402241917843018438818997655770143123890498490827718958837708240861051305677691685029795745609833167696907868649698989184727187114267843729593008652946432789539816102684641432559621480991339220861665398764054405907222372414938917915181115443639479852709680315218527734507099080422257003432051623700064963569714183116653921728935254246235014781001135725534046975876232300524692314016660823530444303796960852914044085715439551633990599464745514868890148300987514948868452507675422180022886474933572704353543524192937910398941782632485280424046247084522325269703365244191249731575566122277646677944657395338130121357137266359727890277178712240600622515676873736978634846248668825108077313086415221239922331594503154629010791875951176384550159175349684129393268685956807845731963602501251986028423663537580487038758888519128255310612561799972947640052758000957721334086473856030181847316061389845766639287108532050529582786210736965158870952708959710383017660142742185493191998982333253357086241696763974481160156074270791423300173979898331581427211468427001318345937862398377463476087737112579910003275381587344172030973801288855598360481171427594968494720934690546581046906034693229633595629425010739348477892266922631029816109018224480317443930327611588479562937618555884512175283680442425857069546961791783969178135640003885101231094296521697634135620851389166558860399690822890227447633899426408672620254888501405574934626023567127383626000429461484371269382317209974941671231221397642996794037903246784095922648369576711164884468468232242716327644886710899359468078469278187310881737159157405695763661515226771019752974365755598934201150167208487187511311376500437594320644621587111851550270988761094341350605911470466929777838265854095651701675125630520869960881328938212694051671509047668550958333708950391463262549557904521994977119367775525230470512666431483098510054382203942969927691903603391149780409708009665696415320423255089815180816077587443443446087197716552290764138227686208716341531558934257980037730646103283847095788384726890887553294991430278745713787118907482630935750623031732329747884595050911921532083945109851524237027076520167592004693649835353016291973937345213289059438405065914424993840186495820358747210217652941028583606772126912863739468089938513834624950417840653825909750693594486600348069627092374853883310591253063792981768155449274181763761806219069502309211676998983287944244995154204458107001832744830939154650581992571621277521875529285233901579213160374688839621192142783536068854810662266216825745291356217602961117822575658002719721405175439727750975067304382026244131085929967206685739107805647866130520624902221039259952339598003621887424909886753897543184447952865864934620837702417482716234198871230324814985231549794994458687196315550060679739425665493438126823964308671029301781567815309838435715265492924504071677942036262767385760903478616167859570781211290411053379373182295945823118979006913724090830791327525257838578569095515337242254369575339609534342023771655852850416723310077369617023588804610021547427319064760422863725147363120487512768420912440579983477900476373522520183053708875023225307372084097221693202231621004067357038528643997415468658758046045879635622966327158551850771422457405716831690070382582875415984803305769198708938856222144240245029872533956903753022077938156114759840526544455571960562576377088465933790497183999526675767014862050857108746537834514761938184477719186419701208089798356396512404658574962485819385540311069366887453471326656380977509641794052739479831320515133849330072958776113167846568333591929737582808072960176720909736847159792443260601880513760269565956939406401269502792827541657069354398461734458391782952264758552360927510517481266760016540792727698729707128008845274352195332648563991332074533346254524916134359187889409489515183545139661382038548282322126728264535166275530516719954078118466005830144899776888647964165542241370286894543654305904171377965450057319847944626235815744227905026845682650006876224180342847873798900740848976931867616281917976817591809460509692919693890809034721887818132077913616900886577590731070401572929607202235076075385564930381257328840087697988075261278420634234701119178114638375318884781545322929814426896811131014059939457179031994135930829735019591992262074524909763363207889517560732500267048132807198260582139006007397654308550251766564711249454526593403434122855918334412107264187884486729310715496960824914687542929980936665747431615439951222125165773145738076222520207805653146105535963212192681684687904979544116939887146094907321500019033469089662537210918332862474256376492302817341458305112697954155417567858823689693909047179423904506428818744435037738752422000906781307801999507307405533334593952471567154736088168920700225809860297008193504333511392252717447973426163306532569200198393488417759149511386522224554999051022810065603427051607194928694746188176580424316399245882762583575547602266635735928532932478145900168957973388168387928691211248614125674743092707820146879794631589146339441411571945941639712067604876718303012794652748045854382426381121401848209852901904751970153653795122007174372692884863065412563068776073233597583861429748116969160100272527041430656284055039620025174982349663801993354760927703294105654722267224676004061071219560183666070326564152876882237585001805735943357342321820233432680463953664722161200814845614302192082259442438851179186271875783974668237483449985542850608394725266821632024718491809897477918828626094185633570086087870826565472003551449380061531046119320224266883961137092636858884535664592085201779248477006326500471922628097926173088390906355841607051960932315650044148436461492353633804906063397556030077499453894454134215605146703870674844597597832180410407526518478125061674244834287419770719047363012513646322236362612228832080373977993210836992290534381301502353014353373624020013989874218107236461489128258151867686897115688298224752681940310990694221154012978803679679511326225048179343103926185430847473728372980362389120790381681456768320679997678403321005655033390615964038293579965670005745708753364829324374607768426369201582001318646737757103873395379171631244539900139669152327861285921602322686471526688044463467096913762602350441941474052326055235583921554806865261660201909628727956275129242828856266644433627505215413780083571726930619875643170319468885537601702982637082524494302350951344525114694592942363797290656775717965072829040412835172997357408685405974498218883001455216333005484626244932855857108559212625866634018412447654673033316840626767228007634827754412338019587974311909870797639362867346242907664115877469098927727651629897178334280574915721769783912178202026134424526327833158490520715250417797803088187352135114549546008413390691959914835235530532163515535995942623001435748110571196750106412033092432489044328451200370103216663761658324604224051422133188713182988877237437893487219033673562091843316203265472285571012225390768932816838546997770776273513320250761660711334195494719784499983458557162330960886183634273574483915998501208190476047323406051358607731443547951296242720953329422191649177806019267986851575782670729869963052401472977652792560467970608122835136886136117086976516194473868662686092331709137475203936323316104361688611941275903413118438147952246653598480357904544911611428682287477644572689125625901066366003849511566733071393002658284932623748525982627686474570377317112624363621402265142482023470110285748391761511029176572409117221365593003289196786153280273432479222708308832925732642891522182959144941127027241530972199292013538631741793023486707318304692052843382080645905385641382565880881406941985678601684562722516345807386197866908433076060815484791744352704813307573376183844603436835426529729060820468501792568356285874870704910852614492156272344382975888536271754780320782752098705150866137206770957558786159341724702452604990222493609445076655512559705956069723868759032491972541705138021825177238849981942234703670441547604883475982206767305897897201337480902099224563549995068383508878718877186556763134579012570718058775982373008663950141627877933266441562553638423595283400291754345789022667988943094898367154163361086791491545150271097653374618619777975447065350656703894547499742184738535141348750447501891228761736126403503654916333013120599320152115628300735742336519381572118042883652445491282870930315082083821558799746590393954684545982591028106731939152996336622246326838208888677947797480972435367878495054506566058388046945620478812065983237249120894041983827542297292533190297496741472189764509160927444276886200758920421754500829768544283267239347353807858306451898937952138489556782883065563189578079311365317540226233069725295683533214779722852654383438478151193229869753706717767139693419511265299337067186078935637092860420838973584905900907979732274836111293278914185752849788067092412959759401566348220634441364562228154276472821532593552859054680633771046243113622950608605842643435598502690824029653067099959866895776057629714781530612662060666909684631770036504903181969216578638523281693202133969592223256289976247932384325232610286078688390844547244902256436130373078473345364757826010391208925284225262364089875340471919333426216492567184067534591859981832766101425985983831221441040031445456122792332450533634409564822937535658702650804471618279475093819370354468012010203035854070161799576916670781921981704971275323041076088272579148910275688228201622847385106609631250545326433070351525945161652278771097843899729053345962165524821792067940040204584777781784151429355726911138456223967922197454065044753451451904262660122915424415104216102567336890356098999499194613277943303144379360444973266351098035506470103511173632555767100751599592165218024131029312176441519147992923799387800442470046167231759928518600651634320786589314723077567540336206210705966607830133954390644215909127183110410794383435160588000766320763514410743987652449538913414131035751353647877399886227630457564931368723067565834621993853007171633806116403184599518175607189427845177933227111231962710386067972360231944053259228888073414318253565944486192876092238841805272912484769551518339563056134952335616141912954990386491129357949104907165833682495660178416522898602428706577867794989770461333841045216538380361547054141304681355558970111247530625101046657328507930805466322991637915676943147736785053046419173010118481603883789682003313212129171467634874493983247009428932584962077954264155271690315788326372310294048688407175690168508736916315009123117889297709047122986559475138121492177779764934885485863457853422803209870798350847606268392238446941811164090904566184431188432584648807316224962914148927438111917062768783473703836333850406851926786168109207600189095644799272674973905556847889148948779125073111427228295510556454646763842724451533544952528482026143807808740463426047078904688305254096576179401747394389896780135468505011554719404129312052785734664586105735893710088485913423334014727621609778588481419302501341265207647806564932158266456779420797309215055353145938530290475977054809408485618082176965435501868100710447582545071689692229272103699113206658244087874707718732082917648312716488141718977961224393382660762596587813338567646895037398532417185274977415510447433204793708696340656856037792529875528911342993751025492814894666080831154767038298137533416169109918668973558113697105152486738177693859438577910785954639566309847186112444231914798426804581052614899398234482719674404913263888696171039365394675325111577993409230030087723867459563119449033710588236722043655396554192863634586374257912080347646427185151654252990222333672109459470838846512380628853115884623586898159441031637940696174289639828294934552448414708364179124622191727653620522196917461888939837856259459928106244567816576103999758173631772156846020012784678829964384128049116076897820562265680081469139637552614832303538153258367750196737853503667845026893197517536169875489651404104749594071382845673588125360017482066757184562114456032919586570256812650974681653241960712744552228702796769583487183185850557552708705467199375424192623838688781715070446556556160328480560317148483575441022249902791563905082861715731701493629563579524163027703410697577556295564954048265840084770581905511050112432044924977518699468100026495990705799363124789666494029922520264927988910002136664724322759044734088633761105663742813923449308446467888391542161693378674058407624800849425351883169590303726225089720217839427938748771280882131845140672163102710234408631111244106425650270451357530804133478001976185184666751183524256153087792890761763575682061828638793279085277855959849977529228682118867344822345902141890485931714707457263840311256540146896749940625887826570576405197633228171036584766082132540911832326189340922908339391829761349165197543890732104043440575388281519631395131290495734297104336845874601490883963330123097781782882103172401549800801251074192182520902188799494443064920731876622645531152282725226795505522183095489378077637759930557740620410957549011571355871211328081206464522128054765440285753223792562891627111182941911393220942358362655902178878187625371922621548561832488947157116653141901009505368178520690066920173895653827423222051630261599455234244306658647995087465776068159756927017556614494232554743834608758418959917451216999904617776186794076565261672243058892586678065806039246449629626117229885378499909308376028361321313079319163424288908936699029175309258978958107613026252752328101050897066319246890351362085245654533314997778544864084802530847962364085934706859849920806605092008937962131152517563548366095822698185746791381793030016537714484374209264354476560163209586351033823658010350997926204344986175015595332813175480348282801361726420127481851298547400569781597633358118730203962702572659113974552407042044931588422069943116316135944488596433598921526635254087912836432044213741767552708698809517029973106644991300619043574569906507262716909477575269338457155722270567327929968483344947626519507875005888655109460629571563338300830543122521304032663590802835809623593270546267313980024065210146010693135333198904139578464926471346876711646494026011839758094833512281253650921242198016957876416659595695097466842282737787732903918259714397330374866899757050365588610009551017216761348809837894599649908020072595939258068903665111451150129355103273317498288084857144534651392974819442296411566941184850631705890112975353826290350003595714044344986732574436325811578449221627457353058513891726956776092380283995635256438881859588694704743994447741007107635876471241619155363323374527154532506499740334389837988139963639932692417613921812469068564448679929124767363371704211583579161414616996647271915738600486924748496957992620917533099433013995341756243144210534342676048585426992886532337360012749971026368477175357019916765863825470175608540833860353754963751045932793421554358687695739588954630070497596255663478154115698273565709734813306493765910243221520246610020495925076553848349658121978537293626029804403865719827235490645566270226087892097906122191027962512241124879665362406753268975174520397888558406675573257223642824633624346554772291431653388107458318625272619437114084069393797720544361145984548151755904742478190175309011156287032492903584972613507024199727945667597781336912947168553137144025494553328624472302029303803935308097539988948635508437771824881697794761260574510803090513716737932625879608728832675446004614106210617540234761097012222698377221063277877033915351298874369595980403289787011752544880520194257100783940775281676696604217816285783267749815550219880331910200794240032049590290041692216312558618759414299432064490074553939205514332308822739014520723705353952295185810529640768952021418946758727199168705194800889880803954982575573198676109874238170627340115590762293805216007161388873517856448210439143334829143132466299015026400950847054993798856981238713082083719239978422576910776191128425272487110253068172302710440800535216064989522823236382755225057310522401593968405066102299942268940337731830670111341351547557389473740029197002165879292000397543765176187135290337700897890930888782128144054659002420787737185824155555782591881858010369644116176546562764697872641825921711922949368062057342068265405476657971965003979917861703352893751831068600606307165997367762060421608516662951091492216651083231080097346962729007482888749733351097381685571052728704300652785013586853344950682059507118324021689408610501300687250862328149912203231628642257978981416080325411442857182232922902955667129731990702354482091245191891653559836584208399480185814822866183580509024987127235442966524548397350909988698091853238639628229609993256647530692287019770138843812053687090787251197289185829942379157378932349921872207634243361659708379385276953382347825221719592153478368167567341083486020708057674509526460110561083378516265472217423673710063517310507162282115582913890054694123011190088044239835177919811278142258709462933912986637860892277384089311400704267278468674445360769204710895216823350898736380826766895335472463539184625638785428509292217257996724282371882891347959338560703335654064754685516718993171614919133846635366187513485817806837344426572311038514310476571114752374621902136179216947212856733295535963408636907377447362421485363691007655877178086253200511742430041632567486126133021457445711943668826337354330267441266125751803782091804801801269819345597503845978625022528729669174865369931733337630833993890777581533363176207049317924207160643424268863926889178999703846167385223986393435644000437475339801669293045168293202866225636678998851785953490086518537756595950792810741473609236455736463604872681163168548047139507210241996853725362778700978038476878858485617916485762558687092943855804851093621422217113174043503078854430156989222163114899645989016673936505455245738783913669326386207751282106217682858175558277766685238178585148579870833342036843059265351239798720851017931941443435553243349730691074971042446630636646339629803594250926270256916351316916490189852915884284461636593545147974217972484412055967684540809914410969965955178201695420541986333033390455381927465233858350162954674582952354996013953124897357718791206772552941297411773189744781828821343529590873152978262450751878907617927845133838310128565284745983166406163489522182025176852091571796450190673997692553179719479646247864459227230667235769374435355328190279771617999280023030969208476845335315184510926942839317345476754407780948176656145982902413710851873778001071211425400251641178205042907970594081229653473533276733755412941834479413485886385966546680579846521542723948949770309639019617619191723726187260496716606270205278126491906509075806500458255781909015655917147933926291698020357749182866416554349396401272262440517023453127103123097305793540025230589930281429885598585641948443188622896360541426718737989978883052992534801472502774894019782558398044426529483320486264233785150552860312968675914895651489182892896110390200208002688800798362764031648658481643550195772324725161907374160029756942562951920191163714659734727122131668975964868179157225822588983544230670180722561778166978958737038448936140646818941584085806674964129059823849162716117936957854486846345645150362187013518652843017232240050972317308667068747150278249304999858042482415256454860041165654887580803870707874937409661902820446444078417465220108021712509005599457933189196702616277908706527338717283093250275885632293108162411770547666322595322778368161504187539044373177383991049174742097616332421180822346210808550590225615612118395863372273021973855918992726146870546891518590981951508547461099406326526194581805687811964466742826408418438489018740845486830416267004812020824798971568744836379065319280478703744190394627183433998261720083710281937144753425244733784470929767880713151047442155205719843038307047418419233566497293643631192382927299585418427342885800760440000282762433257156040128935596360970868062711086559890579670448177126110315820177578165937295130622150810966627187658727543503560479193712506759853830291196578266064167862978991682938151706160505598476369089526340946430190710494424384479608494813712386777372687526709439141878768415031112480641088942149765872536703702670469079982457996024344246181026909715871070468406925008684107380532291750515103203722826617228050948630215585741273370798719159973352521832351792121465101920728302495122680759626768087478822468971828068965752690606875575222391013029911031754072416300931673247901573114940168809681798006005668122841721092714714947504841216273144540559491099251976894788531293617063705238045093708118145393218261581402614803266281226933077479637218688715003808678131720544180245810459059796106044823937115445678099916362930549531993442288788082346463894423813203235445708344593094974872869153846232076863054053022019150269505021618026180350555391381992718489782503686515956134020584945821702095799113937688231356981164910004851812548313747824290977691547041553898111246642410725763605099683584959030079785984201628860666677833587103765719419453370168805900821405042816324626465021695751797098416682655100052603843996460048542284982812202719451889141340155188768141179735192164215293951932540121596442444709250897385351509258007223863685332997367654307402815936147187323196191369965517728901199556002606455598848927200945583684835553205767238542867762896361781621066074638679234264080309155729761058690099787910393998299829871539170368870558203061551083614679984239614656358616579326718089965095775675675028280745503908324589333737837249621617865003870981710672287068007210661777798237140397010316016569905911560395416075232923086925005017862157596043191750580789526858570408547930094418275476759863905979246228478143250399755274951267378482813218100034699023122198442261494837410205216619549920181988469989134480595216727701590009111092906241198603557018579544843048475939102226479717510682310077639746320159388807067076706100363218012904710878878086202369712849518392922923174338880411743769887775445072007360431663240540709707465884830317227909019004003200322983363067410293017499211246597391581908006068601020546983279243249522639768895949440886876518753764139111420960429206939400707455384058478567796004713896920478587439571738414549921382938105303487376367230279480656959958314538997453796198976157804117877062796094837492016551957620742890444857758269788086388174083183837288870993019267528833713925413694422470993361429913072241196768989994390959211037288626599864991510123862592629233238806656452024242627396362589556201475585822074630930232226461326287577179758049765315844985840392822072668616467021090940845962001703484713308922402318301684936363879675313385563062873144250526336296690055184534673365628916837649596821611738273110203764805098433141178360430213109193841919713114203379434615029677873976948990915327399144115043899768179413621856954496576458681115935230952004968125849815120370592908233355079742515581236105094398862284666554239766026987056741683349607103305685776412219306949038003726563864111810736608047204956192130988278320558890378289282229504801894208144165700602121109718898656215459979779883271073669943477730078811676897747788551260765723499912253077981366218464379602921034379117897158741729873541601956407723916687826455927270435757287635172531313918949615281917878148842646954138135780508491306923726528774838628542985476198721322695999400670188091426132191577771603017420608964971606480586599516025531815629742398915531016967440932235388865473982467940980102407611911731333960444095500171646218461148085821198238717664494215783409238049158046489415642453498284399042356622106042814679467049102045323823379157217450973940922097297678591010368217710402736808575098365968188085674493762438548017469817732873877649946982595740649798104522137923715928232940269118831775130511066143085527415245698422396212541585049918282163213709486966499967562356763787200327859983343119635338630967966794167674901493148949065637111844259125620819251421639255818187985529730336026243288104687877258419825830800301111628905325537763604784651562369023439009952413876080023565193805491329133676069275499349953218011166942844612507319417085875737717403324816670029559227576199018446221812455280417129928137357285666793023095201695949436830837849678621701158557149320367512552345554455183794455481919049026971148387993147865940974978589939146022224433514834667120715862861163751695634802032472049294886511155519929000884138704406526059468417374661243525045395781876315144258103872107028936269927616179121498308884909585806806185882359690403930522338214159828831786344127630898823118798821891424456884367072275547323509984676744883233313192436264257196730549906053341469558752178645690496649327994480954309129962130215602470210667215626073273638681246015165060458602070795697197845890978777829526825527311127419906012948998891065456669230424487739843319240823799970616361504398606593936536605481695048032558707017571356999033828968072645277129378161388684336249696603407068638903563124581999313326135262649166240540359366982342494329710567998534617804859969858972151080515536000663422161107324728957232089995589758397281705089623514866402262575909108495010911889449053405803850881389723188335073560992031625551618291568319868211768511369825270468657519206224613552821948281064970793302901669613712507767408721017792257283620265838599101122880955304150997206398693337310472931217326854002528834947713707970567128330277514103488214168789552952902763834590024505478801424055029702518431723014006571757213316111853981059161051889902554707424943557472438167786662655400415220593158508138595964237901361024160882380956666212478925353103756626904114330073281959961177608025921984292580213358440158064917799943225318554036508883097416621957192239137700501631992630875715863030436802051406970247964689860881443753420734399134790400178534036820443071466578157087933936240274925993772236523588055984539733687620589245197748477503923832150381228684198769732349598686889809611644496333472064081060106426100105353164054935365322832820903355888164545956721174964477768205897314792447355203765344115595164419955269085383305445704181387287658717168732459477105063385679417441298689696694753302993373282714070414937621832497014610834844313168678991532595485397427386215475061640149020516595388978163778996564876594541810720253796177749720295557859284737601725638718657833621621675577636341173763477687582496860975975250472660367001869354438643875848616075130960914426971874615383308346478150925330908777163184138279877492011255317143777100703320479761405657755212963572270817865808881996216173623113836579810721276420612090645320068696515414651410089767465539859896607410205165663643449266657966973335400574566119006685119313190401708328545300499174651859917541449474236141027703153046525749328548986204258035943982171184264533096816182874349442711973258820959423725574912837011730266788586885306899212970675863499438880580640259804339139232719391151859163199783822721915359685197085962446115436437794275337106179594633194085144688709868457944920419154030810321499693504733953080956942993561314289559228095734762340002171526625398860796773448989782164659142294032958012054130605143006650664898841321829960988240089085653018958369704623047502842849963282435253216541459333401708889111270358859296286241137407126069134260810987718851563205673696716303343640273614654078516279963044686645715583062668012866171002213349324614186523121372771774292967918647043636834676895247635055768677527245460383681246762729161573076006197142098780819337664922934669407904060557200658547880495146990773166654687395852013087120972308483917354905372150290977677070877590389524138530284632057832276459633891033217291067483683848676209909067372429170077732904127064979295362199871580685187694198833064528480924895932316092754666610337756042028430856842700072670042052154045663145038718515017459514182476823347438511697057313546894253768718764021051546882529391295073509066938478821976362298807544510612025558788658171448566908862353236521718574565332526783117976779129576093607168864795784506241011225500345830766690445594878640643809229004136914480825604038650770677492390176249788993165090516876953822027443261946551177301340897176855563132362256036863319824727962211708039028331462635013171100986621696135591029620200106304655439452261462026536148475458742202654646771713313289137849196171157677813548911533175778445082261318723966216593349514402069782024570398364239570743340875263513804310052860126399348882543970667754551093483173830613696841354579855113963461810272805679964319788089121719904260533230592474210600489878975192848228109008819887957899212541821005261581152402133457351179942011067226575913694087909536794827828680119765239559676038118624327212924758094146250333765782427282869244910474394254906346189833210794467516095575599313670898078554649366598657729814480828890616988676679359386477372983240576530976057841979635138231274771894791295680871591750828500646785435802636781180944716088194315978661299127651547317015462560807414524018933662114998137133416739731521688428164204335312453433456377116973544334386407123197917585343522520849049915828171138176126960324895448891019273462171017866744043938278326778856945671656377579923894854958126900492041302426812528154310820294307189330065783179820204362498757854895662408985057764461233027880194642345130358897580611510377928750146121253882163654232517398640092538854265018275157711878532543045248814822637181697917307698622806803218951501214308530827579574638167475772588625514588846942702133346059576730705513353872443443969889865184722442506167489341190878209781139529440161503585244919588850173160076951348793729739344868460592216141873177969034489170371304096843900010380825406032000959524157463225725673539515610111300959490218427472148650369739751074748578478969940971473161291825391892063247255915672940832377758947170255231419204785551511418250431905269804492222297385680974627401220356299554391851264062651622943639195873366031724653462858296663293560557954247403150470796438892889805399218103099001321747713941324544728030702074752673292183262856152639147445545618792980340984092236715066096001079722499995841675981049621373383208132091554351139931429696368157522016230679283289140007773579305588095006585627700850366640506095610024196374813420565003765718539667360787987714939500534410002020828752860828453307936770189861931571661732889862897517704173747958486033915002318758569081286813190297759787130678975419780312564025071322695494002931927589139895568174625648264966043766757923968612920738121121935710120225224809293013182590423975225245709147907535681557863108823598940909761435487770595079458820184721856307471938963706902927742967178590351935602229179100343923873928958526638565286135261359716457564641564705276735041108627245757535679188080451304259792850562489453136205371451838675055450649352652115826095799069053475285414516772659223840582230521808646385338895757985353138898369770494175331024473190543601100043508379150034530597419864009477097443765067800689968278796133773517548391793231106470064240007915139801586188129393948112404134286225718759987930638858920071119605594679898962295728208232399493793045627858218620195959286289295145554675211374044041257563444267944823333407199639618716314384303921067045203346212215135693108391115056182431917693004674424723652531707986155338516028191975231246447470231023392043403300866346965611389487649911117497814185712016120515348179531547903429086574368826657995133653314405928269332511512646683721219246961142747438912218597217663869606375619833858956836203643294977748264808073584519886761142959302730837601622828516297595498178304560897357173023234298963577021087547698043227612602521912540559758481119104054696200547928579706690847708163252907514127168487895387611785107123164556171969653315309962861297050310290466626242215721301784431469210437653263941008963361028204359652198386923703563011456737074803104065478773289999749704249026943064396567147746356004132846754802573489220951901763672286916933670927442793061996652116648963514113908323884551123279480346427590268884251506388998788821538017585451277643164068040209911737088242363137396266949831676982034401018163572413257348747367554322885925853848014660274702653456090444255893028188974879678004864699044680472552913284584187216880803464446122816971642014936426512272190522597026305238989861418306222159887685428129058232174742871702728893926666429627754639536598411611782093121559868668243509088037519702273796587260471879011683956091806324632346776556634363211219135528407305440164063265975002714634349709456909123479824180311217512265648786919916210096722749745079643955291116766927681815852256631702075471800612729007219017030233973556273022113133813054652385763852845243187342636351063403846674489012341955146486662333576830215734601080068597749890406986744501186808883760087398716721891782171697885077826040426994594932346154727015263405883731902257157192799973630715668708398368713196481184321516754443746892493235042222318469410432365855468416918324165222104010858128982207843734912259279307909546342736018085862884423636486367866942926316807187755957328085123641130346520212934641058330811154038882760872067798631563154387506426832806833562802004943698778262685733112164485910754599021016307173988180326086116589236080361312126876460769669766419750495634090860732181506095947727205625953106588019779418137006618754980755920577091097056548518456063615293893116063123089202932903886061052374863855524919389465681380224540040439478455494018329778171612040940308366075881360991923903521888002718074465772678521614477075295505322347637362177975368115307366146912724999927565378002681561085103751725182295933276422714321986744049040180845691755953209179054606781686474011248465228075525281140579926450959280812174273614878862911347116052816691852571272058644533342213867214881371665607643820209386535655541758553999590121118001990915271311322512839023974579769837188787293198545286612165344176747587714605211228013899471600243461347309508625077202623720313774177652474849983331564960104384119167149876909891140608776662529019137637198272483727029962858684292080406665790239148297760017008378168493512667041747564429700209881654155905418985379334042405583820725252937204794094459438871102636473490862308986731044910465760500402276528572600424314462596056565120200915866201643381968496684709122993466836238010952262000456720161187459021650761699439578573506486555797672358858972057468909439224001984945044065400952944701064705142152555915002513227089875102382099068800063829718098645441463301150314161677147469369976893839404931130115354212837475676218132901227826528816747450238576127326214049459032811509382845931174181446357999418243478870157036155218521839646972294427582290464459649939932514840084408585184845336386892990203346730341644490811834098242815655697013184288070750388210718694379252703371664024060439032807866880219285031604958882735531474858208262667993649113745458785341333546583234022361119027569758130096635261218347965712215231687872173311515055488999556974362270271994655515807450040605823034368405510477767476781219156843455352871484250064818783233505579225279289579721624931238895835880688928075229347894568688815957260056585453574138826379397879359850714733983648448088805861102507521048162542425314867831573868555098100255522471646373593287413914140943915673875829132854556926049160746583138543147291895883303286674851546290679570086086783632029444927042538662648427382921789396863610635321834796702164047471402145156215780563970231545765784294007484880076112435808819596817390484293287043884077034112898515915877791295744254432196746655159808397789969632463420110276758997609016246949076275194971191210828969461970037590839292328559579839864530673391303164480870058907130680848558146979804622019351314186479976365076157290044551023080819126451731584916357222796266224277472296710673289691568043340393173349887011554179114847195724759097094014454545585189243422282781730487825969998354484406355996198629595878099755171910155047753560914973900243225509080553531138420485638674016872571686277736717045978110480806595788169244876949335976489272295566695496797109907152696396002532215699922156285429455438652774089667359223990140639962658105867148395893095142544206989306805539582551328187835195147732028073622205799753498242990158257589010434697521128621690203146105803551341920109539766885612367663988831732400239730525019899152548269201128869951068073275042793743737750136091319183586595408451833066357223299813976065076172586245358821616417857802340862292382163250778788886837188043933947790991920250844046836118354743122659562490843475980478168627151886373317948975989914284461807744943222011829257966026216056670869265218659090104668135506498283066149831050309713850848790963039604034817328316915267553318398809586189220096342274172635572170396376914320547423626160724008316407733886941935362087095190613392731611169144164726866070194813246200817939254480724151918569423758058853972496427254969815334279438740664271155623009342849240508631406880662347312799375645960778850037367505137627820062879838996943106177793425326972604353710208411109092096336554626477111872666644477380536955940151421383447102390446306712900247131352041621801233198120639915551229294794830422341398495868623579698140814661727918978655562904378474760759523457004636829467786361797062788426398721564162653923889216712951774929185682524255897346701369757121463436904439438569673491352445829398958245063054988370768594152445990401275228279975386967867234044543448538017966912595201205802926254914564920595893154386435409950618369701350148016191155530286095319590634407485883155696304124337856967737235223004153851003127340209219395347805119666814367997023279340960300274502492265486948825707525157436730170273142098800268911441178220736624045004623515219571963332966755609169562663904057544271318673241927628645862681567711436537541664270052992712585239175942360646608556876249488582932048375243170659242362397387703451213167065709185422656102299576620480951695814119265348686481407273884721626080624826272789531443695877237379372243682668240521877026664485898113074080092952857949098032206610535384992736739878133150826670508077877205483762485534111003163657202006297538050406672237465614089680780277931231362952773621883367207871984999309655033385082897121484856744833608355163641940586292387982071126205254669653075807579079983160708296856923594405993228101182403457657450959423459478238343984507757166583940061784828403722235801963337218174500267019363920116828707064743965530713270648927114877582785882541664197958196726031726265612798994540916540086579003232401288393979273887835878304154547761025200671318396543279634850066060658635633740759401451093644921019063717903735986884658734993355335059362813953485268043599540608187232002355822882037292389919570252263336360211842202728550578707564662751110997664768445430383131390190927116678363660301884082308653303711939830950757898454469149208171486936750940773683961596393882150029803737621588500777018836612803781219916284174478286870636597507778919251709072118778112277956673447993383071861297537497752720036961754484283825768487265137834420967778533563244613641130485218657426444409570933103934250348164928359265698009898639817912035726189465185642991497932286461659504542513596606069699761352120901080460639084311080415413118993102321711832653535308195596606657915271387983576171917832480292530335110682164026099692034391380369591210407981987700763536779841591538766792916705390192616712440153462896511132809251952542401713215828055991184142896353982307646725870494917077533858944662693054796738156082920078509365052986910622567395860704927352985760820662099605390151825478081914639590709930322124471716826573234940467658714872444512700392326163346814553232849747435441822244142086734646536693302412869187310806287088243067295290752138632174516213066694778687255762350497723438066602551833931946470561634774150086214207598252525992827512523393174704957168271123263531276836151189471464260406610622674050217791180287194060836966027637981341737586048650290696167874769699737946844906928652411035355831549726801686679294137721461064288287282896773127508463179658872961930254585858471462374157232688527160330107217255413440189713811101021697537586123658815207058004727198688353657949033187411314224833182930047069624851693236871950141603641332715194996114665228235980037164697696192589754416234452704868298594844042439711315831563511458681059270141958646293492711433937160278127297322773918993762445206203189712702596030165182586438258436467879825029823886693820256755009869965830085215587616770446358222234252138493998411265573516930984789076898984666035906493293200066427395008679543760435653159087303787578454563981569600269901257167947435166977527452872382102380433293139271659870462062819689035117613115887055452547727397122814882563994928808777304134124427246397268241592337285013773027092814792529068915575095479703264099740861047150821868913541592101368736571332255200888161224675368944257954036196578046089154617807583745862653527053987192979489046215583841825443454917786076713298980737186653249731511129649289408901917483068411324106773087377225037606477096137324138011624747928146015571263366709674589044200957191988103860820748517756597772816823177151683664676533040986150131453481786685312436490147664706954477275333268766692158188022755065768605417974404309460555754317159320391000210850419407109135869987524893481939742846282976732720357371108320092016197439649592974175357425710452565384831566879604900560063508499359820603848386505650201658791817163573867119853935213308894316863664699400705324705038794661659601960437438545996410143239857363482811352264046388785124904749680819762331397222787778659563967986837534692905051485963267346508745570881085325401454810975815836249892526038118610242200514896104787548577012397663895433174461626969620304107918738177462800248019197915559857424609354766702482931016100986000228414976412019187300993081707424648379000826063385424501786796856547439392576777563072107808892720312508610521672398701668770304026683177025984892482636533078436838751227906602689182287587729828476617440850570391126559822453525076904721342221016841907636362136980582486176594742061660578942573367028291594999819972341803375799305938164738876827909234678108211297255231390851194009936884710150122530903421019852134637367835910124285941679801715592647899430970277096176045697290690005827607904563753676731456272249935371329825230074825326319917214651863180657979179827416905700045011973481675290205174315752284879166610460519892944226308183624137403078746650582893464950378357803761190696526225235847795779423767157905049336674523530402463143564128400077535782465186617013358128366746543557246466597200552450061510159816146050475648414023928332409480417553133804614886580023887539254095586677007912646851787430986939244206743524640845428973387253387972621301518914242186992921108490148083566775070706709182076257887684121117004503274968252697059959619830695403796015527653884892368038664479179988549472850771489116996770385205279289682546337359165593157028900284122900835495045379281482400855767520673925521133003890619117070747563010583829985554581794558355418966783656347271052756312215549298523179721476570834169184404942026060092246384760850500888786767677303725250106354035090796449910967469791290006517565109460372927600530468011564110446254191479778803510355692311466628127035724248687651854878104031347333527089689335711222497023194301171491856072240885106605799437109403703207244635822651780017231138420013105870257979090788419523975243673427661287135093399436023554363406910461743010400954038103146631870819043009748127682106172349995624988090649419966568460442831968332732126989446301482979013790295145160482596329296267509773488583433892597639560594149846711950374948795404311028511307983470633743062598559737128964978184136063145666999116555942467230601239759683627488619208360436697315137149564386251573169300621798845494189257583101094641691934742286865826998903732816211793278493448303887907326303782657513896347649903305951742352275591230425861980474313736148381313295337713066354754680356723056871840122952630686555966681078250624113739826737794303496067419169253181460109650537925409493647833185570787750532660572461682848860141564584844595479158647338354309332972972933969370763009274094209770857097714993420309510391511357334493944924216130520801777193166760988442358173304161685355120619488185955709882026766080893543919443412702244200045563947198337802282482845784909126361219985037041287796767163709913334533200188175202526414328815236354228659116296608640105506416015265407129768481083335544436680426873707162524449508350836242241721849758332668272972572262295570193897159984726433404635962621959698492523653014785903566189852519504388217593778124915537475737320532540422461890755571238248586302292471365377974807686441487527253228174739600921207991756383316270255411322105041718948831629327217830986857618598346667312806860672202058066440703240130560699127049821148399203723749355945337435114255392471850590599321253651585183176120280310809017594811152825549362454937736775264020293771446723952319131626075380331687196286596823222989854483608446469999910832215542889607502900281033134614240599160215121408001179102599200648715085612440303729523719632516500418613899029751584438308470663451688469991403323632603655690832272346086595012454346312643722013932078312802958377950332055081344809874741606626101708080682097785456976440975440912614140758971143328604425586168908256675711076807419100236724069177609745805191609779046788231314649365384953427841346581830014776956792404672933942660344598382865805134633332467726099512458871316629201092402313702955170489733089604747198891819988323070564496375652866930236495017734777638366330051762538766782491830126914446370508364276966332630789416903895001767334327706712604895064262287823865946535664487555100092757433596117194366269396668826766155219515843388497106783075633755933785440500797503435064174918864051746311941698321557408690400107312721135125620741397438263886088604552193168470897575509211882391750208114315588278717939010299114495398764049878167298630947210406047192891184255661722772857125407446469731369661154623847186864020639086451582717063894991148311125047250950260186225110999586779285042608346976278662023980316986507047368056437371403485295831573734956707677492064689583852056601649794438840498100460608677374425086845664957556162226453289609803891800994286774559813793665965651817913739923623093230247655110368089272524647360903918197132968269096724962650830971481141044617644056371089076937261830871485772959926463292831647193409669377212799556148300401077820466498162265667094603917863395459508228189546582537430246736587174981868397963321456173572257333092193955443348408008786245518787999493456820026605191512825526611233097777744675303830495428731180532295569225341026055350175637093253685403057587604810926242675495080962324116070828943118627290931282866571599165403434823538244987761276098259059291260321107537923499079985436732169884616048429227523496737597995592855458409069699249688184424933276827035967742213343172181078332707919334717024888088988610366423363019642694180473834761622544264416037434633836079077030791157630926342069232447756414760096779322188560751942105192721698599756361195260620958805336665884397998055745386629512543039807742407166600987826520971594565104749737250552647412609164032880232714782499219166377776723938321721588193103048454811134995617362031847094389081406126488322875600527629362770794462223020044267505982642259061043127196998320610852329488531958900876580817224247818883764268985661314771273847943530498565377245644315424945614698086361241509603036062486872111899777221804472977221938497572691146234828174530994866854315624153864750973537365801590486126064483535381423922294335826019139223488211413625073791840429743010269666670710451197871436454291688953261478668308335209037881330914609806321411419851993459018843695246016118253369277209161769137874795627166409421147597593767530180322843229268025295845525907339561991111933928279437931027770985612905516938592762826852882231055123575398578700931180940424624216863416716596395611628404221027877543714932103010699652629023523207240956295680031067723610208130203027838801011486389558196851852002538519945650921283628336362262962715466734895658627942378134328272113423951993453000230687139867681696937351896363976694420652201864608500979114919846802351243069227489702851382284824053032802198594462946108253729449380528483671224347328295778977871006969194698301968881301680373987952831603826229300890216869379202505747555956468344126203689580774537916834211143192984331189003350767963611955430019758016871586174338999972249702846917702523227125767697332872213952650512861967652912392571517730821141769913706025154316218282189975615532822315644405086269191187127933584849825942508109002675381236779458830157985941506241553035027860158533795273126361774796480238227579329295292416794456366647960828787860935441108462653504884417964529708712910374822739231494517604923511124732233065140210197330156898878669776507194592614703946045292571734993123758458410807225893505950401792076796654778506116884789374206515528752109918930627578853970094139713782793916489115135575511210454081627884789814442731521365374761243221330232795202795801062690238215904764340560032741184746409724332826903290688735417723087847953997928000260716606987973023536718982749254749621446208467220845934749560737487491396796516730493139832376291669067444860688743493497543370318085996946708624999323758286035160823808507538029512295647030449394550109577996615633617267893845016033680211622074040293824956007509055683471324418472119432992970961094329594658883572777004534527331017512088480741210287511373525433101433363350971131132453637540534351087058265150762745195938856858685761483690583623364095606811225627715953390832148802316601703032895837592839886155537689914963038379492654912412535927668604940655772549002278400711150519701185360657818649789597724117734089394293726935559653264029924239912490680126548733499229335677596638792250764429410878730130826158079922936282235918305131829725537370865295395204351531547594955679100739687352185774882261161648235389660650319256480326301572570800491447589105198337169808710284654116848756548101053879976192027120236598828819478449717630661001804875208525516650158463849612578734571445789923941575785418687866496292207476046537019094663088139606160221972644555817796005987748287747959023288365149818613396089676021560844683383313127866393023570645698632231020246917990697116326205657632638589979724790350633951684587818794190547988708823315529490654306963309833777857564593076677390098149967387073121230552629807929434328914551620745747617550827663399762640113037260134842435302294676300944854127181009650302436478356100472172804048375691288940230847754874845364963518185913496299697508736481778576228045628603166135946825606493629706571880573537647946380845073785947255320405523596583962307854501419492046450463054552391697380493108366750841332049913087717353927837310029357134833374394710187528850821440403172323336751197896638428241029010533969054247662543777198410287966818607423181103635937605138476538190929382064159870779212569829041573778435754103209776864593891164947693853164064859027976001241508961037140793307702745785978228167231088064293568866598791507081291507873868941847945302774843000210301530206327180466914130196802438237906018438429653500842129799480900771339205386811832065444137508760397208755204136965578922795214144844080711891120855136396301215418670848633348973879277398129996190079969419742367817759629884453327193382132399229806072638522532173666118177352955944117812421810532212272388327159270484244747230535348918761715557752221567711490626005099891552320001428981722689778630585061001690892793032358138532450273419474863552461890957792989730635694956166047833933176510763062888958628916876059939847315407235164361836208487342787374837936379060459514114667960589595392590025873978695816296832662484264494692849252078808851589182175307488686930739329459021128233135565521273963335248900248408036611557484578371944308933087390239942009535604815036494979253688285901269726625686442086894359527685395820147679046266440184960223745424228973327547706792810115017871556544668759751098051029980145645486713363532359010763851623311865579848088982016827629884704119299398658487534310155272725752775911059316573845940050777982421233361913378004566893758789598479596358632178489820745415167140652389411405680762261816369547052413053754862517287162099008200609515847870969491025033917539582583047710898183240081282864320788551555369829398321129247284509760360764888714633866139423699774966879317125752622731694704781108245584586461556555938668302672591353286542634821776664136258153774873035976262813412561710840002584014731185387236004703995632658395088761828362412082095258032867367591758806990696961141095535808319152264804700009625438686622449466051602756057060037219432542996858828605916091448096400400997093138898465612577947354686040320740053103252573174063791902731549810342148914466285614684050057657700110180636438795981152730276114433389738733257345862365290803591155701759510960173124195438025673752731184476783800093897480441085337871803615070032831324157032937383079856406874315735347137271168120961911048500142069358975284577978872027144905608019246875510704321606660085877350670035057866131941561990366359856283043946200113732321936792771665810870831292848095393958690004788926554215174766150722996930672786347417107914052034260639733215081035704669260185920931735594412679775805651533266336861266608013309553748428201345487946691331138278122162986301936215562659308261146908695924029701304710671944107200618005429540392739373377954739193883762766577433366430233995504515593987731371670886483941902184954936795401597850361691071452454783724895622610095684921652169852302487021539799846746029276594293678076447063485989401123654662039470815662436211198287467155202401917107461897564679718532886560040529662252610784462519197802635103551272087635616964413865633084384810196489862227346951926905496179820285277899115569662506210305031807490401461718105118670824654522847167538943086193433879258609724236623740744537156814685744425301106443360248971397672514107456680549458987186693963810589610215483588639937264019970603648137163968329660309106337257429433617380885413679420085271240969462250424486237788145536706750763274587799608745624492047069442663253779568728438885739369822153921029884515111907006613159226946157352530716566412935723938128279030521623670067142065810167669095635842357907072391830883330826246185367028455483774271961579420254942350172602735807022845354185470564413028450850881732184627911127693546021728330802019677123805139609491750886723487946433793747013981344821180594416230859612493570401787717468376637751975767166254646773675306464520535477181811696095408409234993866939183954732973590314103434634570214612720425355805472546726876222623559609549417350426276415243422081186391825201604346689291691588438037145149668652410192599760919126491014713856355164826551177549238691345965027167856830874364578334338238508244184874597047823082927848167849471851222012982822565698702476982965198863666685827773256567815236222192029503865740005592094535618912835823420725851899406564241750015578504629833873688666726230554951161415115218751144661011655909244250278443646352435751835421838198339329306198132858753893660002633751675429768134836731378403316992693000812239460661257364611678606277152157758627236093834107877912036121513785586578683651328126890441133673351962999525014788761423707274720137472180542422104795654873241805850001556321495516514691621008277495404383168953256110977185088502897606399115933963180139234874168590650304679523425062809955506342245140904205390789403367417640543913223774382991501843502759349312333907715271652145496360097047090522607683022377519018214829915280298503096092385539868108163506509957588216335980307730573337047570285281417034126609756996614251369834503227731414671136332157872153248850119532483359076661897481951562009617800250926035430815697441025012737220866859334376719362597488227836129798320842241829383024283671492386911327996219176471099712515532460676623396301458849410387005902838249789344906820961409633352157469728716485135605942831355313278327881548175307128233969197533989042225834450517131873705038176881157392940849822771892592224690770781017469203253351781480527928553737631288030562478870186345871225112883238846830881235984866773430414181687800716004893899796110874923061749064343690200203565982303774725498716090656610892542635449247681544318333849517928616883916648495668867761037706108279872839588122257793546385542056534677099642122357932887353905637744231038339575969696926544426321942151164295563567903174585325161697567639484662438115514226568570860613670391327163608732741214361378464923724223694506503846745196590056613772139601589022596525222864476814007795317982826999097484961595353617349585339143305157877591017490690861062957877941078587974690531410120601761370953611013376040474624912754936719508570154556421245442414260493949014563923900475428318643781113924191235693475379288943192511784745245573847396528034002464124581924954963899312797624825454088963232601404173833624373174213870293485988451686051369962273258140999810476445691808150354130080797359863847387132545776309550168633382955330987600066007991625383940661767323292605315118931501608506529235928983729072171393459641664623934435692624110377539773569856924597708996510927476495284368606906722086580043574259212451622305127169939629889252606595552333034167582000310604142853219733439957456272693179197536387936351367916477431462774178542395083284022637769407689720344541605757070860028351633695312777171578301596630161352346255122406350445686053313762375982944349276637466965086918933865671489247504543951781894554854010617394365320600376252862138709439441927581079557316899742691385529189746364798680863538030173195507253726672128564668387262125126503496771996099068370463881101507326768660827611892096701515645319846133827610735003355301462113088303923035038356536072095365880696530974448791613973344483998662334955865585280227826690394052060521021698897586322428100021356429315151163164979573877660429673707054074741731828039949199674872942875656968278193566870959267059310204837528507458317161079595042858748076073515002074494159173759609458907771383406404675907265083420815144639270227329242695885585451199683783094928375782914730653003672512044824317074954672696707523298773770895255255400500000919340206398016242829135997809742725381196977229350877441959907296210993461766078218193618868234087916645812471894933101425365620345564298185335124854315630798051765658406891726997379782345860471632195531938151234954737548152546285544353698050223402713246400852762442873073194299924253786101146457357479905657122764418516508418631252323097205349571445267113610764997532239002626903543758043315527673508183300721271977264021871955080774373230607508864895049385706326114069681886430498850522799028756992361116555463614794341506473953121628384860903957770030731904839517882406531854346236221495185534204426133146901800901025527311060087523126316323722925765763129878033783303095387645201242177672298354236819814175165590467966148542648185031244059645054671072911368975871018810272491520285504591800899131259895574081440918809096501057926378407879386087025829466921736122455444762335191601163950955103372875363776143973805918412137069084616184121595799082904772055341384579763555584919811388093173194301830544074338141414949145010767667054391527931090726084257137731730701646780624093269585361484832425911623156844885128133174218572850494776358872491512909596927036724402563307055177407863211444290856941564893482068275406499021857687287863627690716256642916824493321685872234434336864772241770177931496611328519445684310272901945689018353352095678651147933900582838808930990328022486612929764952310483192189251642014359794554747926572236103985796579668917226470803491859994717737077081987883234587242182116367808335600333094500044221671900787991015384409327579596590523875012734442473013967773000753320529182842888580803958965273032157069791381779725807724322953782970287570313631415502078226460307935939223751048772968153802780089145119139688227696429841907530627349635166720507740894853005958430090298011788180370852671244430007384299813351898979240198967218991459224462126122640558920434261563230296578732135119044221402844782493982221590371431342154878829365717291989143647553164323433872360285664602495837016381524390353835260563538792488544597848989265362317942695421259991049686738693217548897008381656152025666366435228810844004747040720996654965983634150687256675862441296030360432930239068006044814960247482086351267934502387961893584454685879549362575474164488738665841606303643421452827342231549613108975765155877412011591007131599742497298411717957800423177456838076024770099441550320521660304875771332079860273446386820358805357329402455413236519651688339374801218193309681047319324574676364967584422984001872612824008045423862879062237593228371273508151077186398857640962729349331649680966114097256800655384075981998184310555481228068300276413550730375151756883820362531224796017978528558854464130234698870178981036074207115330354752193479926372844593966689649610744787453875734240081503293308860413931434766438648805242819255032469458841819857932986794433265657586958760841556860854220971569740551312511583644218586797010439269589631686382477417425210954632497436369875371508941009488725969634092727972640924986183517803869038798782758337373312391900819081144911701211526386063738832331214268124740166949095644199255411458039591141322601859491802566957523760054923324618020764523748885701893257121632003516159725733373607953321306858758833570953397024178594205770455354898531342220685083057959402150018218010396207953630942397900411818320063141388085394634312512276320455212032124543857926728616471054767800139192466973707448142693280082725194038775161949952241628794718744641582144928965760924181862609433260486036543848911367813167765324756185239288990138968552450845097332482346740170004474193310162957051512383898915123123604241574676700059769490433668485275305973484101241133615601355950061634714106814816892228722006645610093303226691801909935317252194294059272348804652173772026106287124634882109660701754571445257495508028235255472469186295622337802479945729628603726763461443911802546119426808524371414564356177126244533018782686475880568923114114536436007410450426475894750491414190030376793727797119323944990456823790112017777355152989151770608243740389796869635675404500601896043682219587973000225182082056119554854685355421216557331941636043495757956077474267458058280168254331486544026558324560573343667257653087253367163211413607798976795360433444770035018053219530078470021307142323213168750486726194922495604746491873371531700921443393612871483495698390267707196288710577483409207971070759209567473687090062191476106304299056850165926683817853946636079802792565880740333478849700309392070261796879720173075353054832700336166508894264301991265809053666327183506364538075242128429899189189820952340517324917527057508903956512034682404123784205829786197966271071219011534734711224927830202410215707303459020004061333439319306816207129509400880082277804615131006610313142218139850915528415945097087027059601740432484093920784289794179717942408887319090789730417320410244393026653137869676104428652505366187721476438371709029002183445578488127866760207209999481070160549377994750496079826246200560590255387845599337971185401134485228550842104998435899245328355524707889273548405410090612731035265147148665660404415345691625171115587176669289429982962499839613070248120434489465306575872126164693971926052911036642936747904935613680933677056674417683972554647681477312230585702130441073492499612076001569289738718508330386101119549720959016346402451154590721859309084206252792575524142448494754417175667616724416149398400170878261358986106297825132127737087432167158416637020006438601267496565645212907039137700293469860168208050538868323860246588126915007671244724454213614957364092710346007385999617545958633459939993798264867287277802936546574566107333558968563724981247660176676742776933862957602907990287675512369395393988099358693375809734721344022444744517534884627834069723323247481773038604731046140681662173853604807475573293348436059585140327930093998120747768291358604699346238444568073676667226074650381497935175188191067951122994823682921918849247229131127623857847696566694797826888057549125002734126531112597954429375856686950911318928562898821680146156173769231838665332681554915934010827708479190569238801783238615307410358267976556491702097858177467410817390380051144874397241104965580724826251131170122056178368723705286452929908764246368051281059670367385713230698998905825836934255170759783381225803578803476463974377047226679306694820504740797551696159979771332426272469824153193412828142848028077163689810517765388145327042381419992260218662506177479499689567418505266084919327982445036173516850687647656712235598861655433009211909517050314111423467813723172605087525631668271435478047779693701794257239484788305250578839942806829746989134186797341297369754498802351694237118807218444615746587044813863408584820283967103196870507022246414989761945397780660827640272076475819285045718357267276378775659499997218691157767203147681016128181921818196318579490032191591042199444108810013361835676958957422608047264167400316822944937744448435588173029184534049079798499335470960230416821008133146064027831821790628553710168330034655375225405447930117329956446306058437181459605995632798358124582351254896285196114577247397594447624291957258772929725650997977653871760017154943506669507156582041269477307548869952328529818205312784030188781531441825450544509218069698095319353205146797587444611230304309603168763728727150224691557551148469963313184934807036119032413101840576641312143856009587069912498589804100279086821072315583602067706928972590490806534487778761478423410404277411724402101452206144847125485104697881151887634699392367760274471839779592689254005601584568462521133175647843677397077275154443746242455099933808107759477899211785007766503554601239670101953379736597893063085996053615561515943593622306449166462530800881991322577181909807700445868048700683714397239533975808659702736246216258332744358204286833424631847579471373973792918875905126191661993521279614709240852871828171430070141784560527626973525757023137220790638596001800505386200199247760413154020485688825444431344749962215301184493721802928346610059484590755522343547353448732399393970188891455147110313487937225371244646303515223705302391207919062954969960500389867632798302366962230940558842272499905875399460781343063755098590622253554624309891029767439215704589476062162730182169054378980632712960969139301011487925133214408741478186964622392195134233448564614651552116800315528116097996783504251416007102928285954728453002801770873130337944467320434101847584630837470366378396270234498056710318498924572044367839228571845308903397431227615540727909565579176474059701258408820782554405374061147147865816500590350513751943285792566303688386862576009789487354325934250371494076624588587481168179138152058756880158669851958875897457876599725943123669114606453162010913606989650670243319701631470807022758769013700271281042252177061801040711201881473915196191038650883923935283428400627003161078168278924738987650059690564762853993085309728550052371702222950074607298533678526408960930429412947808332081222191516354856092442904680316845037866784461387968011518824313534686654932660873454766509408894258235719488806753523624203494152939732323544064230894801443888553292692260741820028374280640660961585254684538888761721729621581543790643262693591861393884926154345332306063504084384616612281435944189931780849509584477214661582258869822941355070527338154760943230116645082459923931612546215562476168550592546192628336630669947070839761720848830397409004231597126588808271255096232739261180240098561225129750714638564899689082670026721787791572640793405162895598639224719890565804127644179029276854487774621541341173891559814440967252650841532834567252639222508697896234930458653771918996178288029788954431336223544341175830164037311825211487255490231694121046775764476728633678511492360858365638245181578842990092723673787514971004201861288121876240564227375943090681078401647231284633295181683575081508625610664539870316368332188462378938339688934583585061036513589648251062927007990560029072668369455696188697825716117513633987785413354342648997795720880106596504924441430106877671737999799957657508493286008088788725898540812532166394139544903636893905622943050077937544322436002141998023804857269747832539349497888778906823657425616085579456052294308607086224085865559095092929594337592031677881926410951093476634242639023333646773618136980490517269221663692983391062930745738389461862251649117541591713883460093688340882610180495645056994463404528979143349257098880973249599427094675911838650527611809225073105876148643594956864725495934486195130219035301034043285434548520685664495703509635228539991483010097482987644598025078109705754568813852262412289007168532030958809041529105682234055062879881140472607728184723562751195387679898611139528292406694260275363004966688042615165370385511612629676838123916109505983828467248196698194537623077857252621324920825697875525726551674481690391144243531409089259077397463845154534644623394595551153300578685343855036108509838036060800074411551552664465536602278859839544590693691852411583468739624598904977785664173378110538055262349247889745232328808900044204270357412160442228053192903595718661853489070878079214530424261106744499344801139193034257309963838082837103523688581840462364746488355096584397659400061140586023727768797446282744203114727322574289654067477816644971112646944827294248367292362921788585107817534818291382618237295507863538736238943577248538537550724559083877921934194681473306564795909590304702472275133257965724262044202589528454326193091478610650034655455555275102629613294399700921973753361188843858693763154168786286717739032046600973749405235319466170112664003067874052642060895069092642382056747798081887993349815928251004890107699930709523855077239375179442041715439027783164827806868836992283086024054487169832468133436376039191471148394341943958035992362486154851850833684277703343336431494443758497354698722298161393259736146676483251326529216742160118048734656062543087018901533649160854184891157246584953684208562556260934747532397497822529127043303656747720582447710940218539242825039828012251637987041049387882060584595396031759159118195865754779132112668808218646824342369198723207401677048670098418431922993297574747040310664747831431277145873624020952594863217133410686458007474922550938985370619314433045071560405856574500206673231445409298283174457265510814665889918375598043832825431923245923195294530078082339569237268078529588320727434173050691761192572157310623738222019240512938814218587076122289713169269473789551959120147234404718668333490193078558182371674893935830062605260177454731642794852322601602248322242421791092600725661751481134290358253053210634591198637278927556385710995706599134751731542261092026168761260462051411049013368996504411221439190262046958352250438093988053721391107440739186766964950046714593503582468620099425681546373280758843729794840855957895186208477514792604893589585137911172469049794323252621010332630698819333553864280701264432480014846308912999761429349262959223768156366996888901616188631949077338122256355685153618710867783712381342027327167793159639116599875719313716963747368925127082160971134020554414897392999496910851584661028943720334938138404080056203848067710297517453587610579969692505232202954302869932954573851804210834218922581070068062497185550499658153752744071135033112287841713622204561472131864869011686802542755586502987422163562825553231293652847141249244909053855791551011506604876776528200800418104790374615760154155525363500909705143735319680627911001212610478953080451043470347718357095703700243160149777677126969366908246880177615598401608622901681437642379963126224147763573540779810069359616694252779888523563987381613994160647863307455769650916402951252332018242103858080455984602744808149573254548668003413003270192758806492814890856277716280547526810581737430691025395869518829294443140977920718087096040597620380875713933235469638908803214318504752849398768751746958214868004892360950834072618021137827076822572488591240877297906645840438241938269018915655133680255119008316707022430545947799594541701517793003053295816709870844970293437872479542441484262695258331855891282662766614565396631785277618205415174882768053624792013536665129978187510961220135593343126204938194952960249891684894751399040681608461224198323117791073480301912362048051183955581420270454443772639290307348421540028405531623572823418983361679676932384481247766392638377906219992572819369333122407655356758159516565549091124049066616187450897656156919342787482747694156145646669263776000249218588596476307611662967215352387890614167915135390792871822706984978853041781419629566011728427983210039421329881221555745830272106901905446663877629507923930538392302576398360186434277123476920378198500521666635253343276723514410097028744665574977961778871676184950747458528252237872303085336300824558635304972359577797727008777856859697418780310504255911454445103934183712955629312858998559965812377615650522011574542072876248027803015185550945161902420701780663610670868224929819132747295086801513465259459987807850025338544856865898800950398616980064858160882438907934771061649011163273508433604360178468357516849801110285675628377320391590502959938637566583385393856895697481326972223741010268791898956588731865160967890859069808680845275620750338233459960382985384582096299361568002597567605815905947738189752670735290881190964389313699758696873755386178279072704562294940891864768536034353221570222063730505599138319598916618810160625597814294577528195283649219947666686266732692011903459892009029054388676043073745646527102163085564605748934274340020392473741380880756626604223456765568953384847963431930093943725626700501520370178535203243409617687782189361338439528364473271955084131563034323010189057741681392462107022340841009774910491468611000709026312002056294285848194977756716000533557989449750193167599298903569461934312515617640980468950733731648294484963352155875211143439984159330056327374474382146461299240110579913732698591442235851520374080827992019500688934187284541195449251157011570213452290608879888996356933292078612370308864575624076662750413432726507245516696124384485364007752848187899881042395375443255032142376492289454451320399088026123424372610711520858722800526453386309200751929334439151387416666619917911742616466119959913624053185475617984553722076349600677561639890939697061137289568172813563111898565936511390065419903113831036744621928318799231194184280105271877099472488074355251167313541824682499950922664649359970785934731821345195203187367129569547509379913392909687456300474760481355232219688893365477500645451996191504770710473140831266047514416951014897864053277224586327675201155421794228020927666373851306060537958127975211327805961415206655946556268215201461397123261715869746170412449200241205846144355914484073194786314642032542513419728260276104139000660323674723612907153112819059932545352792974595196967295270954698416023351436873604916325960700188123715895571795558470280327452246513167887452305767744736480142084228923324070591608726071940749906542588596946713845837574203769501779370265156692622972883637270657841225016999704468725845716295914333844749117643972132066588821306316782236380488384725508987988496583695142081003098199518617087127133261769810068260016407916847425784385464101560032686240178466533797478967896852061664626012472891404921175201381349705598456342166867197069753803282339564961868278879433233041389279093827606895090233618376492604386542872543787211971263368538756366425224831545523432638859257778922024576045688536388876894173413152409998981622868041028161746177635409535747867657677052532622241765174002751745570019984188835843381329249761208654161206261224419970746132457016043856478955355780230845745605086736445890878148199121133630594161098833117679720341297624325984386385931788893329859184581279312439560989473056724363340552630311675749800595263717732801877291049432576436474844374931368248426961783607714197756779662771586696827188695122974083627284233978312750797247822100987337406002777917680695423080695731159528893493983818014303434171417055508160374717928907122058742029510924044029625983402004792237601046447546884425754250614846021945582138090463058691552853861744445099623845504520273876838645924558054655508704198040032385045970232431537008597325282824417844366591883388059619202146197533284986594202727744010922989116685513624076657143603369841408643590361079629130375592227564453982110008892638125068182066087475546816955791686531776816920462288808592665029888707214910955872792969362465199037453227556537979258576711710436647751890708097105257708470717464148463068426118779185810888476951083719659708271610831746801011348935714249401393979147418350001714077339072949766408241509461431168953430085466748221539055781917556347194066291370769896531704327551484272941603523314893355662437370066973040445799464022554849884404383284511994849161395180276855093510745945549151641705007538655919457228417258294931921507374821317019175185961052141834812454734734954545708883115969782457293554240969636912103252106951040479456115628193210392444177328209664839167643834665335906495199895445221026276306453936882213205030679728688311564401633085809807403877304032977088786664400430200277377421967710249348572858516698330209862181622032365913342301855507707333382479586491769701659913563214597641821634474544903627913539850010066601971039797477126973954454806540301977115084718698794254951644882523858443247446182400540395563298999322250564608408639491427100558812461077268458183949061293289450655831991191369722770254201144778155789686515316966091613178680973091922016535416260641450238950423728899236414527922741078213600199212674853195127589506360742551504131527122047390725240164624312872220615944015091992067728963866400597115927727985033086830933419723195787175402625051067062909531752775996219202505975617867206500551800749735105745011467207010723777472518108031408940774658280248178884228780680631744779849611058450960836356286505319841178554819777821392451279477474859130063680558161018471503595348773177443326673773245111997621250915421898249266023241946255704849228010880565860877835998198006060259772190679870787038746919729746526551178440582954346856303071103343247081737490585208072497523164145367958840429658000670649117282776610329245421261971801216732973373888346117011239719926240079895359993358731362075652820193109716278228139770778402275863863902727284299865724726310023724059264135149062191248850532458007013162449976541811725207631624437567088625536269818234448325192844180933189822684768418663531221228616768021893606991756903761885733522388610751291985493040277202666444336800351715411201020665808719306412040924971204348783509022625428979632262689380649848714545458091250145093328904082820912808619215013211626790823321961072012192360225222560945817345164788299172018044170662658748173770009354658736970959982493003086153749792256597448104085611692504827821881377625964388753865522927700665442508961099027743407011143181993070101520812415349901831466290780737253342391001899286142106094191487867811139512227140181834630843728408895307256078498528670944009234707925372458572672556061092038196408728482257087445398293130793247737090189217797552258510796654698805696670691852691527297411524636998296214743872562221312981260331364922034641006136388849415800090631489547401416340443201401588121864906451951699694358940843665195549504870823488094152098375589323848093818936936492180790846942009906255922787457323038171895990999205641096045850454263623870350659056133703391806929765446665184557059627582695523888283361029649759504901226679811607543946882426383483835583452997510248135758673061440991908688120618930612643893910506272712814443527705738406670327826844891310508137356395942378704493518504228748785739102064665082876275018741910253174264467524734288779092994926481973906956788399111005220302399770214066753943650826145930480979852418676852331871890431911040314663846264233099720476377770342433213054555110198659475488229663645553110526301188335665811533725264596282720194127593943709672839143645345030772696810862937229359525918234599560119283811967948251723253336877561842753930444422218307030773923448583504414082952901383733643610048058959643467434963728483442113828113901886041975256371897947021190222829891780936912683357147043122087920887681978729053390081984998825942255169450454262909258793409578536804724189578199070043317762742511220959425642447397472119879233233755568423506013200214713465134731910181614188848010284796963220484089837530619301348971293950297849359303512778604609658535510031939891783781548625702324219979118441621521073905851805782682618547477405751231163538107422135569099013079778064987348059010048349278591742956441705579169109890129836562866600147610441895215526292905528998174187064397452436783370950084290662608439115811583230220433429806504082057405166872105459789972186903223912004803880683872088044960308328900025680859317626768386847506996793472427828327248613923740225770377623876071881069533374337012121090808677351578873585737637630967156416746777040284132286920686244408908515281561894411512287097078081090329636475300677027654780780541781639850325883914619480072235138852744171693712551596123946313763140587179466767084887043803457476129225650542609806604570399467002233528706522646086601852151430972984877298552765730473544086064323125218370257535726110569095553910146686699025843865381080566139207881791102193448464830484608861881704317598366588925941653831834625218503450862102540390344852358773548436200317390966897551491656142298225600564924035201979246413970118657985937008704754205676922347263712873131394953347547153654404235754831417749398426044377927376915990325048090379659907714530173007170486920712602308892829091303871264656772797471819947637992270744282521473375269812960997197801949515382976693661578555932416981953243519298900705430950283660835041450943329368747130344812928875874024855344193541087439103502238795846402724676596550023332686544226769918342436230819515164685793974217599021230117555388275092069725757200712135230686164502038884095607139226967868142618396976445013350268288886393095674024574036135474655394669953090963964315087914969267969647725664597648805609873262264006429042269836435709053487744334311338877340073546708187960876989810411550686454015028996601558453543459237100794547221691454429221478909305607145253780668462891557444851100905736480170622015489213763530771378088137286858245347491334754069230022899731958952761729572489038962215351938795151935234768475103506694791036110848259142066507412783259519029749062983098456968622701022306773549619301527680377581790933066661543601858847914573040031891836202561154559494208824103395729698963278676862337942559382622449799800960809373780909812397998795685369323523379681807234670995250072789214620209246097980597403207737715617235183345891419772757735983570718244215717446888405317007218917054663530524770472454963750073493275597749535988094107958363042367097432639808792581291923655231136191413733817079321085207086960059032579161237266475633808794498070115492639413027468247566055386286755269748052609275273104072009313603307138290823523073079717062745176851056881804447714566173903955011729042404946200865574673161461784562268099097600646997200464593494549059047638705487933135721450064579983119606702682580070426413704810372651063863647044690944836926034966808356566740470989067683767603139327127053947337624496565167399236244188390998138901684668106142350679524371801326557167549707518100045549611347137829753825908435419691061898054397032747085490714406297275505066597567157568553450466489328851147925260524994449502860162538966654236310173636646253223548631584185647088454314973100192569576556202606340063083224011129312763481021981088566923450492826317499505254391492904035391905690961589201713673668531141450670840187978303689469372396150856843169964860176765453904177605414808241753198720221237532859219993495520693355328268630714021263234826319217971074537017656930372229139229087124809537218952069302727184388477608586864449303711921703016160944526261531695790977345576469864724663132141763686140574174818031016741312234804570590508649099940276530185226904129978101981803915854290364115645352243048714100976099363835720854055519817556482642746835288291665520482043598850235991758247991494682691390872254186530038014719558462704815364795034532894917507857941053281497175286345872624113907201118565549184898496323603033657381257668005476983955370685203030138974558920458492240337258963550615436978451625051515673041958945387445799284455959387652488214048371943913047042162077669270864501216293145140193489648169895926539591527803309663114829472891512106640231060442333727677212531513020454607183215065852087864915491729167666102423898347043795955065299723164152555741581190331200400128234936656383183267033011510565384432243411740747182267849783821817901435329436867971281414948517640207405619053408670754108977605387126076653661835740809812039083589544726942437056852953072149509198233390256117591128999400078376255399053081369531694340293278642196147284975065689049286060080070742705340942565410580784588472622029439854739006347314712992006193372838857970858419814366571004958571213731121883953926534685048356589898806002562323559495086526558855604097926517220470718101141755081025473879539327999207330558681199907501362131607994361698249661942530384332444672319881978185998910627585882109465386501358873248044510135056979596746748181044022777366957063005588759590349195728863491610381789567348951235311868090689546829349587571982424098805364966449959766326757634822357052899582718170262471502541580285290328747582894084346113571799946234295494437528708369281525512143112607381645605931616493579694604708483678104907015638324992682150254605963516823997647206147997525496999773029618524368753789262778007283250552869664228689872438864577185076048283106319504724268145533804090414223559673205551558826040206387449656477460501356355900653542265554221239504319632667938140763063535370610544397990838972906089796325682695230643004047315949452592864263453899448953245470084146925188399054548521845482302606177701292577687538151208506347516570623404904439197038374681575531135077474592825278430468013066503657860311977649905738909637900816995365344256730513595281331385864018735888251259248895503725824064106420531896112689229918938130494251068272971287186060681581613847290161103043585486790865660467712350787804739358675737886115432741585342514396205872949550609890690629349549010802468142644823643379628488808416400842115200791915634623994765950958849704647314580709022958228958108461273290691366395130656553096493698885427774205114447688556675479809534528191509326449681549366969624964423718728031750752478393636549672183089974012074601790250876422873617978561676942655004779765009865734829327503291053200182506773914025491948125099395232573064638887591536207078446044738456876508946505000388222798015527463854063971485969209394870138665840612840693491107565003087090463953844850338883310951368021093508847516420560996443771804594787415199161066592014624787790558115030393000562930125790332742208966287882453820690925832636911492788037172597855769309184274098141377474458443807698088729754380515539559604537174632280566062035553429530079454407102012061066871633895867232466275309086354238923952270647768445850762336827064362289223294159222394507921130970240744035669231169153234598787002346820997306083958145516667150188550729372266353737071890971777553995779950138516164839502982177368567367293471190505951308677756451440090863125165453404256925896404433251743034999993063987483881993772790862203073363440359220972866275782058652802928183377262011022442223952206342139068416179695790468274870294411259713020587298154973070548309149875405912091551144539699930591049935396037153492909064628072029245432257650532631204345758891273620092799848110118972104387738699681219598873900279752974833846608624453014951092953267111995728760644936681115117052691739288908277962674348088815888297487892859900131577781692938226937147493533964317264196603606109795121830775991540925517297865372224275637859434437428724888509752470905307056509061424138688074520548567443292416562856814723751327852026210445105480996071596032709997353135128817181706510950422350967700945307462897903058353040857929445486605282478070776154848121334753884992158324965470403893175401521034918438315305187073004162257236731475270390379768188236573198206697549766651288545256614513556901924666247948932087390346664437306923051956745078234838189886743602013382002953367408237222893544975932577682681374186833893881099064317341978794884859075378996953020614960004105401232577790855083064700267044308169300914214447877688617329381427163937387276945496824402601942457731696228019161536486156956655291835801528698044048464807999995598836418212474801656271960431705009293346109000497601337542092268667438861034828887116454996162041562979786296210902441373323595072936573440366962753622404210782714552352631972693487040335056130515422901727364951454852136926801822232420471391766533002262214624395090913169082470419164863812996822531116343440312512501467144000532115098557347765688561132006706176724215008124429237403902712421801590688255566960311469325160875597294018261275828005960939830239933701831209625127628822298954586497478665612013223395923095391465160233109958250294946895334852504013960754643077321186308341886320542231898204379980923193961552312708453180832293606828130378633297402205916804572007452694147746517807532123525650715235461005027889306083923722258400823299639785355518524035187757946479748625218591386459721449511465315811633791899246161212504155824933609886959019273063776761788232888449149346364619526719755250935134650414289365316350732440406523344566395285333360608164681653364934780751599339992900046474201208203595706880812129806908849675409199699581963408353586381927760026101376741101503932156857725014403418469584205846504404421443169057488712540101114890610156560939932182740612477076639736570020072287919545075472556912881889326680269027178407579333135344479904111125016277486881252738189696779400699337993922597429710221016097269369675550177262589496496769133858963534781355370613097868995592897962815614364784474802341756160309097427145355049903392656840776659215978932591723122668918150744552671473744082293330734672876409388999808868194513922810690333109387232545045409809467270131258703122064188370787792926847455303477116380075830768207800111438916073931694654638877533125667962687410175639786969168637665647325044795503108514544765518882090195056314580973603014150378385333825885711262214718673707443185123948108876157478798842110526787311738138069481535594514461745661515857867975450995778724534844923840611097593927198399276418967592310041773085436439124359866552600529909773423239325302487769893542714295345151545257300402927877067912756467721927026006282934846605902831213771420058709791215584585227801284963554360573844683972989895838564307701151722879085147709889531094608893761479233966210910674308388986093894315965303182755843136759174342467999860462131970058283439438584263084584877181561337299418343781832410458774859533430635787578704935235256960328529459027059736220170968017390436662228323775366806912876542861153820203152488803031403297253523837269435333782648659857419640883831178690326442582780400580342826840043962608356794150574883042335265258783815183745131225639540348338603854067404999507851623393498485917790525266907957141820664406779730552157781753013376941818517958387727359427712728497341472465876794743419382151673588849133788430436765532434836734857168358703703330652078784543927350282117177639422772447788027239391513979515188779666361039143562218607691028173230818161987248205009785014682308128202213163986407920330454360935990020546866441586186484333043186322606468885236711227315808968736623163057832905011221002297616192340035067366586069081072364099779490422259786451297693066452298343395220221649147003554200855022966765891874832371248696352354092957420828840750217271473456691728727435924410957646951165216290606378909455900121212873341166914255616858373903045242477926966568518647619479198909197961139180857026438471713703403425509834047377835256754931601813855156121690026619600672601457848274736206697483851730675131722742296948716591346847231619290407388298629011905218731389539365423415399383401668617767697679646938272075230705312886058358716303600258124615704196483033731465230426063758070237527415035963642121987789242164766667951501652779779127169747365022331070930858902242397463045001904035356838282155231698204417157833481146910557089136272374943541257599447458397008533988793053635446237599775721136981279023370495310299333222416917003844737961747078901842875891412235419640575333404658252504127506128647088060533262563553132262128999341175597264378867548689786122790160509057865397767083615028210947236325496188105500197778443745412570414117508055323714722144724816791662792883428700990103578530543865237834130726938394671708401509956150496267969904165982477148873826992482913452908586599867815878545372210707977052452602160578929631163684033965933680677088907567818379164110536567662404079337463389280760975821054922494551660709478895177910179422306142928368888248667696972469919363237295431911425167965330046223911581716868887151100988506346180585536078430694194906486716258612093759904770345106508167920516674638947704803784006526769826715188125613156363017814868870891592261101403835978885328395169571693650529230057175575587091982343252359870357134329103160327192431816024477419370227151833203099643203968407841358015622413208261678455674953592762808993769058676039868767313843755551002084898722150351764103061334095934544170233593521698464581657748263775084672078694890603447212405741520916052446855090007549844177577789850504517254554576271843288808719460012490702047501015361224083715659987924098936739283057706695922311414358401160231695217221952041434239539499884874912358760776745918824441853200730542329448967470678958112910018820843893714088820635337277213013184798762877059516871256151686078378751354206083043719902856248316338271267719588572850099854322697863744808675811984506585144267640100738778136582935710748976850927217361681021707479581699583950343672811391031360703424802300347593325422236078192850189505171926717249655936513492984633844075665843943839028888794806317413876049197353369600182504853159042952870485147829491789738109113982184907469517417843872565400665109868390956591188771377127159186573660945812519014667707670444163059051358996834536611036646384302488413024377404926186317402748249440649782110228944573804698665475914201770174240257631073415386369370556067336493690653281437032739791208271167398343121449630170370878659004585104609154633956286378761032500300928895724008379535397508824663788068740430873871658168963081440578318879584707577900178632935037915818653969937724599807645456041854036814871205684076506777259579148021651412291221644911874235836448918322350312705452139066710123453846625552376055342210274115644107085922184363319361854200771020451077688372720196466184327320445937876198137509505179374092296594588208454693474298003382577351854446326391797548059819521217128748681102791429270846563019654952753040883627686932487731964623583198715119342971719693427326992009339109206737969048786161857751376241863930089914151299563909883669967690235382626566859241604774036988257908247507338175469240902155592674301402089719076214589112204156056849118902784413238057788359527026401633507021354354486860998988498610513128966130336454114515379672390423602318617705689930921497753646790144684445898431421623828997173335330886542587577637746167868356702034814155692290767255592830150988267134157156045864337901822849772587246455888512134436645532355095847476036788229507486222795296252348393021276219915200832868380776312931713223263186860442807619482325558566021796058787774367862510354289074482280935045358861860323140310736815690286231776218673638100388183210924835860248706089396365881432483487801157861086155551133063909963056406897796876099726631312619925863083813910948539293892149915715446450251389795787066428385709001374848304036331998242677272509203786154560385630944413543535620403954388889191547131092757997627097200512583002656029912637280674417456747621963489906300333511961256647284228985051474024632919139822307570391593695167614472863107606796138086857074818863949574023618965358828946018242857631783697327657158924724164335328386540062082246514180534107923058589209895819509303210103132249971699346528039488155615756665224780731889634963032274200212106999513871525918532378244223542429077714000476661384626094701516584536619725015802938797339145627561914648493197949636403535037783270289021620514670792457301509640302848601164463633224697540429291236082656620243731995079444641861988533573763122185977291537488203584460617137694082765900460341753985744960800496943250985605954717687892695773649277234585487733920951794371984484965114389213733538497256857450149207199742554434355749140908158560981275878820501070846170237645628263695350775827597438448019798426119414569986537041616316754565660598566424215620834370601856540706041411727139049158674278607436367571361058437926045926746705483424047970690146551463597787451984842359120919050728909869888039904597289900930784224909280245217461879396629054229894612842182479430157937575992188701553814710624084898636927822836010884213599969779584561633586574482905307547017794965866835964264863069061206741514249586624863907302910128178810946872663034595597900563166267109030942547952640155893506978072468867272676702855179858359268522631336388072587583402908385419151870689077218103831742000589394023695068156306667318435499649127868513642817896644468180816746701137556488950659653384123647771901834812831466831526870327622185032679373720756163185109476814245457105914122126461393647875066268224154109430820203517692996507015736137539052227946705625560311923459747660519348938679515292815308833582515056664103267127738576854297410262581781009940094821566139609197465515400097474112429203966126275027049853673029130664882658945922838545336135720891447619827430985517852907484335587516946109298216135442020055826542235410669319572326774854171018848774424652990516825079408063474002925588072778270231944357780134283185518046484692466544513922186228332191832782016204988632595492848218016988540455782055173684873063359898622895500595255236950135466492607973360710205080171374092804288411831729236033883182653961059200839517296768485776695781762055994559361906511659666994343090245700201268006104365962232482155646221436236998556359559859660818311785545356272231247139295301268184097207404083330365703545730867865640471331250141611297959180093816734854208357281787103489371432985624838499987385798812232545357791385755815231240303223112264261698839533392458967449606719684065649798851085601440978934932578965911654852995410299461326073771848390633615912050877367871047560984678914805486465271774497194131111960846145172863809158099201929171956138645919585041770898981954053911527944379585820596369568118012689340708642667260999721119757897660817781947501167048793100881823009004314642588171605323872048031647707529216674508124484567323225223488202444475972783758603018205338512461795933653156639275448783360012697217662235125681401946433645237670396123668597787506110957228859004688279605042898731914056038484586804859567093833839892734631366119782067437076005654019234953054504146641959773989124990177928518557852289358656163713194022613485574725828792699587474214106406678068800640940062617737211439394449202534505530370825042758019186776986703982194696615240140762549637821306410990196323462654754404071565698123427201077585253032651440936589030978748521607796765085103285179872882603963176307542127663650363408807326396303129890707045359895762652854381453994867752477547396061482949414993725385109254872022545163305975271253154305417633020984452509891260121300646175372651757239125221162421433276689787692101192784145488664944875536094369321293433076570803715766132803844974512889204007389169218024772365130410146368707559672995329172420708958277334428972078922614328233165859631478535324807994055795577277898987367891525329414803303795100957489537129395910540624543041332932067781811612593110230275224228626020144656462894922679261585678605226108071621146359732670612514794516963509066489432537936671812863681554027097157265572211554484210715073774440770458533190185732234268379184603969225749549142674555268123971106359785079319645086019179869899103622539497728130077547405316607734177872932852661308521102512776954358969428672959712835867414897416281108217231572903838527043407090794097442677483606802582744566589069075242884852806902924547388994181378034695667592966977087098019409538932704160567151634616878705432243284201846713991963564944661371738572260553543328208570927611454151739285811171760650143189803382628652260554353910781874485394043951302617137285015866711208308050969870825874667398066199979397528926890175914252471301089593716436564455981023495642168042908979632338596840769058924399614194485557094627108580744108577825184381128167044225681212847693747756787222018423166593888062177233637709253971162634723925836431710857761085970022930364272756857975295894442463464518887467220105082973879981844827062637770470175890475879910226612593302479892169120505538084850774327928034387383032875217794892662220063648076177277457341581026824149289149285757667754286785029966120761168376162644299687504019373546012331836655754165111363299000974588540203195432489051102639540912445473897267342876648900760175747120069097326322073613599781571518915426249803214678408726742509745070206370670859140855394043407224174878943798151996878571782704556569206344656766825855111877112754253329991233719808372539222923600144677610277974157070963576358922890294673707994880622202416881843286719333027408882074000803328068309279512647719301429487830255818405845576822143609917218852084840255629419920311419936539401231586935684661156054455878861859385122533152144611717704624134077150598369490031513980565738271453281858205720005087313405009304289107021059436664205364897638557370954906765326206871585702189828546969245398437326101922454483527924154701983158300665302430229352255739421774751841617841869866490851940946664029755147142433981601211099136183906163966013271954686374907249792126377302030551619411018351836278398878440994347511329034034899807952536274163561363533523908476393517177645755605411855384943479257087054122451230617658746518287593412780352997783769471047377129401655892143897379957322210824181405558528642939105870710852629262654796426286090441336316764482152155241967991083603962485136039650394633558944008589970171858181043685705650725971843027222641756659909779217457220422239272981177229793368503745714103089978015661917877985843303151659569369929204547406131578321974170541537475174435881372096031813114892675938867967012476912995342806596750256648609260758822481615668917207284556426449180110828325035616345442205767839179173174179620027930897243939889703521964151121150352447127725986217709267535654543367202805867725498249943991964527714002396972445526362632105954771816794182381782084270353874053602966724738373750368174560624384406185484334197154889945893008548440827100838769422522579332440815092464255228162983520909336681596586946345020993024183053832644967960619566403051145388671769053619613634705806208989322756932354084691065309108151547001246402796296606560072384162263506726291572718427730212684221515505587240373582852897848220664542958161025470927853679939520564307181085936243109896172515792388210408018151783686122829302940496682339651373041617258674687248338308179753154910909582140904711442412279099910673339732436585552097801434739320246404598312117256931590204172828388446626365548302473214928916663013783013428829582596488894182126551178541009808361050696923001273458210899939234569647159060657890146170841262179202024069810364327670477688348286884193176078362305224147907735253977981785736721826273551940001923726934715816417826769114287756550637374219827147817392079433314639233229741815851692944482718555608643261219255132760676486608781478591545780394027142799264417551273196207717309044101149526110526086237681517823532560567911881795236784707473500961861341463346316016624428952038802071298458593267580068647266221447205892852086660149058470679679961193574639527838847086951875036263428266579324483953524119839982759211850515097796595406767743867642371360047413681340083583470242220432475553111700443097048882063902084323670024099775844615659424122189461390966813089663491631826149641167921046248021863028061760715020667425407277346129600142447227353134971861611127112777999975519543510724957153106090465586055415672955738604514671552781978314920924323700208869474614039436659083394613149588236006199325911689210663818016441666798367901528516867426673669637157195774408230814050106238666210589384008601354924001810082194841497492198210152588047633927062143952806144887165201594131961426317309655616952088679006063650920527073861063239777491550625237131819137435881587219134942426731692977184216248588008884829919496362648602280550501966898236727802671880798620704530992008649038465882862503931454393594213025443023750731878450436770494374773436983089049847475036023138096865386814483143819639485448562490873132963186932329283628387327673269046747036735783943656876300969076583579239209501103521271416529811691544755875429437930190845496350145338668171688869994410780422631808196533028115551020647101653178671993139025175776550770737817464224267950392949332490092376201416981343925996214944757790574642165901384178830480427929503674190404854664414088421966229408040814090206216540386577315305391638171616507866895693066028636410232710163633775492225500131787330309532805870986846385557464526267231715057179557945180700914735585763069266471596087102936856956190249514531687460084662815492546822455447863164541877046611503799628720681437919018750642295591405693452740150044747604980472607822870797840224860054672742825434046812080844400363546067543828768638361565991228832884893248917407747045367679453304865117558510209220088035146054260958276532033533007344368196673360129129281840993946865303328285831951887004715849047525998531273332119325771833541654999164113801777007028871082879947758546922695075294339551189159328010742568865288358554195580401653775650307135078789800651226460496816426108235079538096532943895267516677450561116351094676683758071404705141634557712874970822496480707073287808504052026473572040456360205198964814218831567007750755725524090981469653118257970597846640616201103904302588689886474649008290295160215353060467652796268036821788097992373131401025541961087567073154133952473215671378507566416868885701310182379797534550737177174344684433368908224077281319374650150514122010438702824424529473105441803546991333891098271087114346090288692037659543902234005931741495599788657603541433828248104484942025198555704836155851458532520714162703184102570451640278226521202009587401790922785648053395597960609295994569934850269048143967488877526640272082544886703527626381760129214642883865656299639144644204019699126479040937319593224700204119166237619610508216639337840149940144621866036896450888584787472590909833011946409816315646500666380802834608188915557522053386778547006204720333768340578717086616219220961011187249563752384287500510392588302534096706658032158670831433962369539204750692769100939219491764415184270316763841866478770467259967174945351369513292411489704821173609718226352457370667534440394351426571389516295904904037696482984035700513945226067513450842588532740060109567886791572758208968681341646410520025656036227075498629190366835813472841619147662530835016271976751554463230836225358662444258520939001431477272886585768143319507307047412964228928445340841489361808235521733493253891551724442762912520129447638750915906236925424742662411876416558902051078119684403361832917271493035610625206512100683348265619869114244862037416756051360658440489353025957613356752882185934622496626215079139810635247246439389572185515496717034624567635734952493147526870959458477995322184210464600749370030521037793392361380967769877660053691147176782752478491368000981907653637988152100792981937683724067232368184594954816166735585756248195922493355402748287027110046755599129490961641568508233374321784907047920013596898563026401009187558106595838937597689590445087567511603964307950670409304225631421992156522733674680531068662839261267292233364259871802653946908654685733757845912114950337340117649346708909531850012272620682413844566321233303486195817265356642330783352681198877939425044277990961325361270403860150693347819690900892272853671930212568419577777917438137390809292627071235947318084149327100727779461356458844593488262847499894911673114754478436712919783631373202164265770697218105395432658173102186627978128495722860173243026360915916131492654663303592095693429357842391285792661897212775822615127686334617129827855216371409864241839106802345002060823332102427123998375626340734649242691348538125729535867194961837035555670245653167656897035506168674870492243145774812139450615103533673955887510367968246938000603787367466232681392897448019471421545768158554746965281220760210116568224670303568299591312532684643017800848388960330947143499422919495569451915628348393341240306453283890669873428003209919510167696985271345664730714232001100892537784043371749362247978188155156083844104838304862214176180046889577101910929751952153995529490225014320325505803591200695320482531112675227813228790673751582271639506665926147714851243082423995647320817557835029808133169443086341201561800289399557858135545855320269563159698190452737347331406753075239981079991102051087345584929769871072336412171193599858867512330547928725790646826336157229132922329083533646500727972190766017379922530178768823490892573658787937197818497576498907057116272074291958162159401127539340191127567923732390548372846720355001653072813301600487739459170509610214419443184713045059109425611169076605299156857186203680102286194588131601962684158498002838108010669632529443969918221425103773922633983437758831768475760322263129721802609275777486526257550369862320766484294101093408958779703423102675394473971641360996970680633055318184348886274389124790349706700820543429989926451869084734974186068049282592966111709986453971395534387967128521863504017977420976916320079914667862148219496761151916852906061729734955189188463757650041827881254591350790325979837066151864635150502948730956272752241661381422928933839450664533353509797523042924043469091707716233319325366760186209408599511479788896078696243440086502432740700281382730839961629427407120849395508440020547426671678181140146426054619030666805414503962156382762795526027519182248875932442832490912421108053032725106899931160860486944854902639258322218999696649718545149446275635630540894963769960354276458701166697352062109128621823086837534326848194528073521352977685714536721302989416336632419501004496800303887558338736406863592241870449484889757526920458966954252102131060414044884226760079375221038605834049027762872106181813132132383171436104942561467728751845295121909439555752070747926857187590976496253434860261911581213834831885094829778907362241273518143082659606701493470930549810500613702307656010782433579964034413752220666016834107124374359880804261195703699823998555246957885606496937473127098949547621544086778298642942281916976351145410908325209958330407597573141886705016931660387266345722700402651296172305822826514691855225864726051603978063244739738060730157684174462856919863432617891257984409871227865591538249170152298972798813870515011703189094168028429400141498339113786401956976019509514372550142950637319269037742590548008659973960197529954930899941428559549753946701814017573346687595803334017132358008539909114303567153567195240619590210855231887608750532938872442646202590774008232292372879123654637275217614863664453610859721509848254110977489711286666155654536585292313333609393579056093304049586064217646924476664016809002968765223824500670432024984672727175425016087181758350865771481973124620672640984450539711496500952773675948996429229711947490856076938421586317775135448439928589624114660914862117433284652173426842887024616779658115897613056179753017341513478413106584533998693436966425788810511162442018715124328392705196309754293909917308333404205029987931676893866131000277533015804111701676018486538068637207115927747882615911050074429108060185364519766016031470626162788750033398852321656556262527046838629730997564401241379923935772609918101183733302738802811309233505515017498426600210305193440739641902273214190256972411554361483944937312117590838281245936993924545300641921800800718834932263408490338210109079927824981487673206996216200589754330876866483676421395233356890310051470294935590609110498774632161163539085216628411214160096447142975508592654434094285630012902311689504492767389045812621553118354824119841577043401641805721867587171832247122542576686732794763540216581121405125687662540566824801236178753147651187935970626587606232984789627205962854112710216956288490892969733472281092415108746571214021424007666824722753254869530489874276076776910464443190426256260352044450756096140889591571330665890460341269413324244600888563587332755993540170226739600054942240690573450948717335973028293414676279668189427754404403842669948745827603363762204705810113692484116098365763901085889244846406779252103414241420393139648242463222467570306698941648026061419456918098562356158668870022360199370067631244417728973226232602750058739216769613169088612748052317611326811127001773861070551697276367493569674649679129843848463023147034004704726236677316607891567109633575772331763672896182212475216821738876704722661569797375801192950508139746700711347814033118500438193140840414225026702862009609536404135047062293518956234781426703039214014811854062570955780658492711922790912773288279903686770545835815138437425139682299631779084894651029688415045063643868589125607675896700684039741327770242853494465200166026156190606016282642195868024937432725769313046060670155068056617524570183032743548804245845897152910719452090321320924506196951190320258367795976170865471599339905439956137910283306851439995087217024714988456436183111281152702677335315137691634529960355741123641813590335327713925841002130198084190280795976045528799561475936008727413252746297402839723318832749604696210272939486919411392210267027239164727226964971143852755146797780872167745012155065428906769011905800927766056597835118832041525979406094461948261573728510006529094989489985430698813935047193443141606616855526551464615237229319684403800119579816534823842956511625830507132999088933143460383146356632940158807605173287654714169905315572908656259933700429573558564813796720684828489734255302885493968000415859098554959854548582988666335485262537142386598743492543456341700552461291200322176000086209385835303135163963419325838521066693968987956939224745377854780101137605624507403391528894491291776382865103102534580128095358431137689727272645506161590272235975619352944052255640976819147958928569177347473935762975816925210161686113909965422620255569873462541173607444616291390622880719011241202239762498708855721125930013707943376681527577139300901070144472397036202806304272469796807412132511430746543458699846238751972510885953830909176983033102817715068112547988798649694962464323393373786311564910714928274387669998470357952954362647632608186048664345696664142773520119772705897280484997622454440157053428400918788970227363767147666513523096193224095571483026247289287754071418585370407739269097136713121292916055808713966767063662601539117389564982993890884008024076145916037430420180254029268740559107578216838507928644655289980469373633803487649531671072755157268700418054265844315714971084142365635003321729097528154280708603637997263563573235476415803561798448844476855582746990620590667705983435539489505596076831508462243526626723113948585080658497253400769808322583238905507657273630367501303019493225008322628748332375429770025484289691604163326697748523650253923211293322239488062075755163787394777732244268632790834412423313027751401800665461793720792445133944016073850155010962179879702530443425170336174498616137152416757412754795880551791013452710654814358008533393017351744640762462210161790058518323936689375997757566306383311194485417807604056044068248792636463608999668111547334797560284457135558901382019040864121908679598473543954995153172558016442754642075574519083813803646052219867684746495929829838547609248499571258129372364606175556300717478746197133103153533062120141727957409432093830059377096204583946738241720971388016158263962508674569231816094280366650488060854905429161879473043897339157228669892507344799843559911364582153316850638713470759374721175054164956911987516815352914255031323297423750566769414544636811176132384998641679455268204402047411587863447042483682983774894758344486744803523388935163926149707772025101083894680248035273152240624123399653590175270685903409513441257081644956282074057784824357893100136080270806602492250161663856540092343594168520386747512394703811188911305084501993675108353865186238366165513102971611343029142178019916863702847859907142925813973209512629635810150812408760571345637886624437600565138437959772616924739826764429011995703501670103163764200680277760056679127205785381240734895715224410417395315002103151412570098800916582573803038290885405449595256942619217070462263067228119956189021233183660450612106465827064034235405754635969369709158107090976382620265157336559764173126986175708079313870729553723796656416579574369185647822832671284565897416835179415379616828117487163398026641841437255193471919169106752738604806427805150582137741080175977946388755231250627928542781992130180764806844634179516708803149648267608228516174275978828865529211067506110571959320409955357688804155251154134854137713356010328227709960385804855944456966452150151135026842700393229029357938835921891558937171354771344705195872493153247963166090129925612553169217020965604958776487325058386641694654366183147810879758127032600492646438355961566224959209158118100747010601083407322315730978068150310747637628194143315129548729914474152017351972778688387747691942342977683623797808205424683952160376423021551556081944165060134209811905096928621261122133759317986148451801902705328501289295457741331712185871635507776517540812941068484025350991458766457410992313127940111435232738220549455584715785138847375882531053087580444832929544047168890042668381201505114683071226278848934038149832095142298584218603067529144575333447325795466968291150912940017708206461736566155667850960195243889220669584828729476233120338461001770720965168094313282859792547494544842624693004938010260158905804244602518415931569842102018208528458214254744023648593278401908006606693672032952828877119185879639883512969435796950380677801452683016398331677943177039709174351654812415807635505133207406639415216760313671098424654390049697753669880883838703134147609559567914983806815340616455329596509907662485146462932236890224591572160950305547453209388404538525866918916367839553857642043098580311219332783964421574537844287318930182716703027090637848724793795498761886046318381570789387917637514878998460952866670750230181759283921737708124997375388772209575885630451113334736042664570889745478987767370157923720018317970704561998901968237363249531610322035027990752115119519288352552517671406904082988008928230023936573044650313106807047274409135777781214890120217782320969326837345010638662650230015540421450965912001966844388548896549558576621170336156401473623143537043902811033115119363347159245006079726034253956968492806767272302767451307427524237844840560707583454971065579261059466145598932650665386848657811099023736037051008363377889046273431388493698514688642562274026636581710784668347043438293708730006787065805350600551192333655376446006845365071859932384953627193885765551518761237036673282523707950873995723754163651676054169690558824268258130534937792285250971639893668677597128592833243742538389836427699639429540403657021142626686550767178620772769099076756517195496356637291437204475161830523508396273458001666689378601892518463465070947524634963171319260531514323983528016817853103561115720095562291392833833561451379873001588083633650500948049460512139890496854973706936133821795893972447963641576961513424719182920277508578750722156360954403673493623087900980799641258250055911878661629369004616945578305278081963328598334781674714935664670519963085590682542147752212758573411837793012390799598328378801431374597416560627919768712088992849498050052572052402299273634345512735751800868790733030436050743084371667104830063797424353425838542892085256628137974253777356938621073485296979662154366037702175692608728831849875486984422504126313863564558784095115544648921786336464969574927895185280458597639117464222501316461689651238020863576534235113224432785410479581688685368168326643274968022016208439996340383017368704840501329108813143531944697398907015019936943383486235475248745778318267962701380045860914393324114751160596863558446375540350316360226790715820222961875669468905119019448868328147548626752269219027069972162786063462804917353907021438183511078750631855945237512835714698299956671644431427902377960615268072230580058750159497204031656382284301924325369793659823637631863712792749358053758947139623035607591692173543541857060723657205874239888116080671968274834425969138675347751455722125640422184964040029308242122903324422658229779913600841766755554576530015807182820713177194604828885173704465426819718820013591424212825161276799952268242334257651487891083008887705017296092574117564118279633254545412842661052988346371200855361873925383251938325969541460480452735028163485706237173720255935208482435998960232945322544082798909952478356086464802456389352269245623122529919283828702844889824353627246949055039411783448165826633320126984446548594260358209244230445888830414357177285165625634365567273726209885234144581729705536330979629233002097753418161929815762699120575545669183235145288367388169874455504430709933003439018805706477860498910607887892002535714941957815938260055635609613169535210521787263147662545243283160270902059975065387267876264397561797756670647112098984886561490058078104705393516391234714259167883988900099123043934556724259916240837767078775496653665290318186425634428945454717694403489626800883718050820615837616101741391087869317513999091316667184611506355355499221963037532910654599258990276442980708008023548857275394727322954842773014688648356980376170334845636240396969426072543604440742147637360182446349217510035329291250850464184953789440656980516353324862551732052612388115976621859009081041833461098026431147484254935882726293002062746762380742436277886949366093237623476577768422491110832946068524946539134185616952161224812769592780844829048972080727265609650693771144991931147112284102717989474454653840049103574501162369942726786836708061937829085936459962040955065195063927576072488803451192071363530320642544831687456795591256263376650199577350210468319098143640134303765716338192535507628278372841161357483634321523574208601856568965605867985056036777723710477070163795066188794011040497901545506346932204946582492001712720483203338481581964903717205738036295221011733070760065959396424656711551531775890310903787439554512435239195812814031190556997073525028893631180413535962866945360418081772720651898603068833375016209385827126910361030967283085789982716202057924631123125460503819251140216221857667386300447176167656376421970023752150967908767150577003381313911656492078113998627033091797230760437282676444951898790138657182935176906783619770084748876079918643351325170421617269183666245201595590915790520669118664956831841716650290510529552217705068433522707364782046785867352118369077542266410088830939839053356668696893912406628230087387660896898136494019484776079345628125677806837638452107923419427833150949745953742237076263666392120585779820509908602464926606078688049610366965930061249896645295378091590465681336116915203655702876640262837782579087475213008634866846762653853927190833309068651093736056890169015771573264017986317332093048517474505058658311647722198818931648470638298682315396195434925353946570089209323402576569152291484220588027849245202726246621481227009308185590049400040492206754554011018744108576342147505426808708294864545761651483509239921291283937679479363598982599568739234137139735273049684195202196146879739125516462474599852248661374925427141499373254946068421131331362415944171794431590462739502940707212138479836428789742109097118947018515541679196184166321299826106372508130142373565211201507077329139707124547377070639350485896760068582292353610091197995159299149764799778998857421583337604131353680305234929650986834234047965815625955980859266969782645348381009398204550333914201612531527746280302453057302149768816049724928295640125258747162957862317915820927678592535667362511919493374395420906284206516504634135199748017440814536006249398589780572746145294946576978164662373020379325307106618599928368602755906434398062129148703896038764992748850983510450369224868121281108440974136855275415286285848088389246023168322504115822276100241098943203501629300312766399966881002539091965014919273111154438007852768255819014125038236644500020534688274369225982826016101347410472838932750887778180446490747775595879555232023059081743457801485266903572772614957492039573732248482760271636021542746371829569017695220905545418100560225595244286407446274765358824640421679311506540864743280710727373136701175334411494388368460064570836087176540916521483554560753294604779799800934450819022487354037240862026761151937181558517250191699892496628590779675899007243928760886409038276089616063633877225375323531781289434574918671554729685262384171168168580346163647202507168814780141884694125681050798004905878708235332002204362813457610958072633383304587433732113440360352693843816882838634637867691563018577713963990690097180033752626741864682751823016392062737292958568778925731802132998340166376676666634382768719408829490952433658555725360330673303030852354995513346500919781592266262488034371663394724305547572202972002098891453488349812003218964138588125599581982379350448370683235428580134893383439524887198734638892039818198411825232762947712322812592306926996608424205893165675430156162799165312520716417467327085855276461240097563499232405125167355840171088508540930269656770918461929477150590340161597190534327233600197840391100481282751662607221869405705384397613921940867635007228120056110600945971378062823228192628989052274525125683840714781684799695094019949833667583465860954233508072458881407075912564068923191948597827131952768497739144423318907359897166740795874293217911147732722443194317907905254092351772564243238144272148674361610078703285757513770193043690750208646001496723875221254534867024102641687594821923920907566707155976460029861926890503991179660884137198266198052040043393846045756776701881873856869185350904569575567553741964928525355785986124650606804774842872699627613307686996771212328418860227550607942770888058102846665210608789568309196895616701725216711902955580557913415292897305167602182343145064062643723097561340541382619059433228152198850424729454076818970337266999982284347306132898271842745209382899954995743308174603444906817411393761062914742865100051484083434419494016441787052956301740794191645173112256186534070497116482251913203015834715162952696308902990006303541792364072590967080631086270625378225712250310564405980149983727379009615523620969239542767950724720682611150012139766862070134826101805590089458405959015885885541561593263163369425316961254660515816549078357395508967346706683247613599578118970556390176392843790499214308671267691184791110331787897377859447467475020720136574346406704991014924351959295543687470389142906885117078238950664565449443045843952293476993691990404104717716767900491764397476055105619934266165492460084006235366771712292497530193456252253850405881591831582013566913532512344893787606245678809544185915743661942785533554415431636218300373882520320784300334245107504900147441930467016619387821450618252004459644654390265260036009151837980813652836987751768364656014996056460361630163346988464987478593677505584870140842459398260260310186573253777645138078358430118908628887743707748924903018434014845344963725080260948050102231532449712922910439503098405518894583550601182924066949816244900525334476749900067743234327712608172733691548934093253975643164413173759904931700078903201194231198228693682371891373448021943824262970836733624582438357759592300676410001075650727073470333745483880069652439376009637029131688377157801235280643407492030688302978459575957646491917083267034915960618653894229442439955362805084029709325338002119371677138223452131107281478256164148698702013087479113459954877017013255730465173189980589786258611419690936642551498685234675032884716072390607738470874057115634853619374151272361143011431370289585316917983533781410801160557979700393820085335907306436669786536482388649987907182497310698804629051287399615001299152684736281921467964376494089038270923672998527074068541318974765120027842618416174307675086764173668961542078357048188386900986858285410168399485710459778398694372981294636390324227283327992073107881943353498959669526968405710955265710872498046563912098745272672959746689017846567073707272757752222490779719602753703102830064960734923627016424330874845914017188934185696642093728979307405150506957417463035945174693272537931195495124145967016025602840150121692067748721994385226828404772586798480672403052386463434428834767337777392783120155413254036707087418662914302301757596582974336326535123809919684958651898159463902938734371511560368581268680553502210870285544927013339172694191627623352014364083235789453362922035463684169468458264952233183745029004717970423577911661762257696889746686644903020649696458262598464312686558876432402610214879638674860618921273547570198894590410687456125630482693422526150894861114940492056447983648126602007344930791957965032499331105256912060706890687140240600882453701214840304565032781364875704345754032787267863677061375824847074981261865852335908019838349327761316348731682338594311234498196280692473192196666441624513283496598860930773027203637322821293346629672025966219344406915261872845833906345505119824398408597342499863151538259234480057476687007203556927228459423987511635146254014167374866433653046195852781725092106882232913976939599348440207802709878364638615073129295883942674605699803033594450483970732531003816039225409493715245526194602668266510073536719348313412729086457142960579560606010144526251762737812195479403295473227938508556236905360517492994573767846763643393050502770475913697498763002814151282602284781836216831230226097260102776172999287219364943558754485062654560580221147531563202564203665268313661689076022366076862575835499587244941059529723724945142916457115365609580628781735333346068778991079165195139672604632827855926194050626844064579428025942242432410347637567070064367194090104797631199404623224332219476215017888730800393329039745855801612671383232901984693540969274462288743735943663265730020356077236996090486303691577060087469198793519277982528642403603694455011765803288171062118047836390514393070549676657150764569154815065239778159233940665040358647765202549194896611598695272663573008953566129887383429208093276348084262552446683108195655996937326784419318353514254252006334259526079145146729946256545427331496698096921269358699558106640100216880824568445295790722267017555786964350742452925263719746703529163109332613006733119522062139232024539476563987408903714870284081375833703717264089297056037701375977977055213115153649016523323338371355971553023860097962376627156019613597996001959671481996302840107247267537069414484248404431214670818474026428633954770367321414474009408822120720616734992791410565180042256000539279798108623461498424987449500906365701675325817848718323357599469491595661077608973398738227944325364698505933180819092927782777262448658491358919745214953689047312762097054044108001347164811853921987562110409726971454620478661972131222319593883924023182376993220073359577777330315777062879125609100891317669546713577131243630153019019051530248636148415244916236339644054400792071019295344719013789131197466623936612436180987189184939444829550567765287651112262101305709893738261297376465485295344751808502689768268568466576620407608106044945170375693594220613505022132388764700775256495901637383067650210162611444101413435693335021724698907392054028177572380940018566033041182145095436695045912499190100231731818863055026994892090726505869052591054907601347058961224194323126937359454303713679328479104757609330068158079454094688016079239270594447743648174565331962763689589806620256322863542445166999780494421287806680011587337770072004329796081912772319595639965411461221474229996603685146550015790934919765292714285706733646413603506257348602338514228169694184807650089010817633676303648106699647539572600618490978015159786040954864830821155301058476110454442620573891272887510792084336612573413033579877584497020847028323808499361640724184754045798863935749170915118747527427740583165828890858132703696696517072490568073362601424202912196234461178216661515754574977575354434855380107299423985060231585392733224392522458097052219633891918009818065987177341116931492455927680268034129176123900342639115484814654849033802554884530885351459502469989870427101087006260135976661878930957790375518270905724697588194770725739179014227786613277910720378188460276941404648399876646940393347184619068259602441364697867706141993363033508796424845949621871456451157937594721499008006243445475574331396086748942998729207902058098304047901765969395478506946925308618029643636114416794508288085506822593916243855131346968913214642616340261252361856049709708478483126227377083345887909787653372025206376476277448758921341708824117250239643707126420496532433522484910586099189571091315693291455207037723962325409169817013514169006037771722280988050390394766189744830634766431057978735956447357369989262359577455689638132727177336010564795363198081302884046327393532406186062071637105162242554943034824255383484871140828178094477383908797036439675742651915805899113605096537965538613696221827118400208755849549499496351199423374175529303183509619973988805959188697257500840187987844365316726125383371556706658306585403327252012863285577613270735951966331147477118673422357516844132491898591711913450753266818268095621987904561862766484124973037259991263677200968608943181759436649075838601176263639676039680087294004050607795096675425056559859532328684752147984777552890967823617423734587710776619137767531797476106725794372938668495820100463051922887325739341580641612597255772232737974265179527204353063070954696295200497197864089987272961101322032240051515936924071169161684785911266512714964215444263765318078412246598882929899662464574073706548552816624501533123761833758266266460951428858385547105608148073757282840714513272523754874092035643928739520219416832828152755607869827424141900225523666360255122630352585004512014610550798575970242774792745023279141882185366917735282229053522163738211829098132592192469882818513462990611138485567196797388249002945684334199176517568053676428356594827795505469280592759248616829586073842541134528345992699370349439717126753132390103960284526504854492917201883430686549483880552040381583962051379428150366407675781072801260968988235204783911940980225576327879051563881070040226164222565901291256059092231326876058143339035854213527884396248209687227507635510122871108613921813239361521743770032989007409029188863755596838593144081829295263771291831218576516169492058435544345164699786502296705100235693405075679161749943646336786801283974892580681834570793642366811811792278162167790363080599231153908035490815518773743049658063810179454814011932848936621939127571366847272490627758199769291268133314821171051689701810855047859622940052766703303678905593637889158899533306299595211153882158661520397795448212584742120847874685729490322403272650351878846303288839129315792265631797326945434148372232518611421993694769760128353941940497205516514650401524462372683295352286364426492705516869626196529769403692965076861668780443740962996516909651365259637395600774889104085411794986382491041054917192366849935956887165748255206554599201291612694954643585379637329029416948989874490009106979108108608317294631504585161322391589702159705246081529103262390913711043065400250759327313619116615192848425303989260307075230087632072936848344065543742044644100544802613616325477966479996653070072159592802957034062635813856725804510077214332065846821754381703909895341097387774003553992673743543543138444951267434219388298996944956829063885584011904551433879541518749667416281902292598146509615136401588836874048157387024598297646627389135355821075337768029445104668744590147738400863112107773594396024515803680899420471330324818360346807700025217881564680624525089688537371374175041723152418061428883167087660068241069986457997801935964951586185673747621080569689992099869161534480688559506907238532172484445178538670611858525802721516174155225553734813326419230650676326404893307764780702953664177623802164062628754106861194514904942673254324663912781243330230470707476394427889908766486603539000555322888795024191355643373327139027684019723089516592516887958464115673900195496104317197252059442721324029335648424025290837990976190917253638922890130604146000569707415077540725314024603863626134805428949659069475723101047872290266772626107596684153256158965106206995962455871866418924846438059329372255942752868406457057592965294349771580027550641560807083109947488900728682673544879365319610078499651739875790135333158776270102120159807122917804679196794540407084633094078198924360329457674931343952466469511846775023847695810031550742120127490689895987439799790550446381888870599653627331158690588138846744983786704902743880997513514274175296912993475554015113408878480405529726069291270813667400501395386732207956919030348699288070935787973809710014919703101710321164272403213402071947455280837319420847031791443111046018161402255230406419929044358931928861634930357675463815318802354097651255175927908694247354733583634412433666503718497590913385500213384188478552022780639870570800515547915233665943373959119740333134615911465722193533286747110579222957227450630143732265723888049834446659065531008901935853594574603662217989360983638637868424079690983378300938897930321963657745867840848225296423249853320400950022363950225677523659073002974533469864235125767617531618382157860425222057540433606177774429254778501935675720577906858307876875761583601778718751398037268754522792029270316470615734948134286822043442573460151787266069896408471682252546342472033166174928317918655803068562285157895189847135707257584805757064613279331897857793561780477533834693752509612522404063802863268006614988080042157035211385550141817269559959843105329032554989451218079154541931892538747160609680037113650868057166053111521092602998151541667572516242105322907319980270804282991922775053332270832381101297829727940166082435693874746035202668534176771627396533670415720850085312528862334708859993126047106892748605902533925497957208965430025367033069807816924915266199983852376448467872445844349041761608000777060883585526604440508744574764261942179420773095440617894674665447986923692250489396255700108813508818599385371840195856670004283781131060356926852501157920656179416998085503506934416204993713552470105064622141003629036366318361048674097660364283259097299279114858126691541686614918597520788690729374909575210071072817249010522892769179663200601367859290590848017805843558858021947620780503368480494921410725023836851489230079016565019814158160172806005482881717857203387547157327069342626986675755616654346969148090598693236995090702203984821678401927927817054214044754515665756630828686504516300454924814638763076783029995492969703377291414658804330230339091048267448419641499527747645819243656080155467473508603384832471201889982517513392842082594074533407482274865542732939373520374570482942002582480329845074405163947072879754431994255067275611220666977830083056414368028447157315962818422552786884045920504836030480322527990652931524268871953338575407066735973354237907804793727969058342143606428718239844561439089511324092955923572611058232871349533966752491122024200007078382695422490669205657742234284871431036456153335758088466874243729906240943386211827458155916679732010651844078123793025390332586208492939093647333874716700911934975783773562033016525591993595140056908785602753974142174705521470975293270000449719706223206036275074297668694258336819452758444916746090629860853738918496694875238941529892610391093560944453404051390932257340548044245512775533352260335288860088199396100947929238181191927943679255928108028148773253148319046273160556113693176284696913180442853033063363267533824587436595142149008634835166067132778434438136828283789875819449634597838486159018161609419870540254256472108037422988116457449345373828387651806887295464512533310611352990394226965608671153844575500554994614430228072857789236938407008254489182182378928263684414346634085857510904747657945285036492560637779724533755890150866045784442046571078727690136828983875523187764119777903733073630936574010240843205709184035294980692642339399322929213441118124163605724869251456416996310275386766106546062139780565900135425518357977352605659110541830140748132708849241917199096398545324116878223092673936425714195327914576624911567376525026002314403331420258534408648860029985310494849582954783077250022024732891640134060849212960922775923978600971539666155264933391446402977053876211602926350297887600041291468038515546177062091270616723313912304612124291341993435333271838186806174870691000724643303954001264484735569244893097458926476990598444279139448436734997365090255821922088909616788125111478477673579124052428861752575114668178850929449014603165248852910207850582071222844148866011639341311069814750090536573345082327357803311798871001184368143424743108077229864744835521957182881155504242290591261435909031966586981721591638782991232111854142734622249563472864187973842444046314284645688987760292583655630591822563271217582953456166373362961534476297270939612196245855353508238357180272564515409089103650137033916219984662865988055036310164112802546321392143233839532846075887915053567473980609933254711704341016236084863452366724139702911589917504631908908131723907090187143883390478024572382984948198381480910498605997035613028256453913902825334609210280961004457783308768351688373842831903105622117103677416035850734167384530519420969719039778954646972915669695604320964405785300178959738868689050249951760581178059697387330191596785125849461618731193945647944970645576178459821417023715230495965784848886015435198007654055946016493516149949731060472689495798544754290539896696827608384026904267577458929983177046093227472625768013779099652317568165534889018529783905445513058086753662341515673278523652873073674097340153458880318852426897142892604146238388386795668366169708087418353804290442736908345613789847826835463519346945693811603782040991255051716232460386292078931093712686014499233173871644149205485338522287210584200699745201784007230885526509783564238801013471334116374513025089415612902738404357930416407162505741945627095437753324131861287384991892377496492903823116752080141042939726553740866637728546824089634450441439378138486503904655980142211020833102581548143872148189798196790575119970745121977364005548643860565696807116165927850524050333944623081785010122880671992667932622974083746066175807728689675867978107105887584545196686482617999020197689702416091764924853719924242655103979786780335859801935634433381111946847817748073740122774452696857304893432686340684602934240313750430826681664231920223807431961323699390306069886002367995503843833649896155193722751718464339738427598418246498064467351635653815876703501461713548966939506565020031179877433318413921891539098956261813541004494576396727472696899489388388076512343865828914275317457027939029250865128108405209044683087221965480417041475698866631993576687687970471610145429265491699656234973599314012699676427489258448313858504783903984500650023015881088264578860785471136948729247776339162779307372743447418895795042666505748596959032656600397540156656401392625451215798825794148071221463498373257099721799885689546997720485414084414391296612968767282348179079590618109545892392680645871051692373562238365914966168299909417809166968332449762568487675817278800457989231373555375746996279446042567798430308550947477983984155844537227507869409611142510847963000125312617501637199851268690675716633378089918030779435026102289518801319177441359610403806138077034330416200121672440792872068458584112713087020500898196027452007849170518807399024289418385344092388990980689345024821051746496179392321646487247878782379907780068538459960055836673025459269131912914753917340114765161000749444012918508884265005692230492112612657617732387353847846918168386146395087253888359200603773768367337886346921882298922578255192999674791545766810096842038206431913855055929415671969929957406042456813643002709633417326759419476023082097682883841493182383897845348238532247800872833449292026668338777156518523062602714315066379267660005836938265992796553160979898886348817499071206178198840925749404824458466941272309412344891131274812917407922885033299010937171793179367878429265032958566539816392147157104859656721906757701320285286525498180359184156238833431663372976614089630813630060040814146690662589032241129696891382573513327586420804978225039449703425524385943497513912013921792645054125391186123050861704573755841277134249257405123120320193276712954542207357628388092541714802278455779603836676054053123675631032810117280983114606769125736651910186923213319351143366447626836937183839580569769738941460853450497514395270581230859509017811131694822871319328702156685068867253842325571606834482152073238746697354396962558498679141899601594289581716522970758738908962527184425487032515089106105924086881921342117210946381458440450245186832521164566341924891934038916877985784748491103054729775953717873489242345808056360128438559104282976820730761184128813709406195017043175651519371035026814990646155405860727892886285194012353599439851561608441223153682147866204520768766823212950149747512688862357450209294141103076793383978840723595841163942640868746138953051972116035168343519161097144087499452046395097710250262440966601028996661595231979275119628313672426059562499974030311475371985353324167402909156156840957389898020354273236608872448593315867200523598862206370845920685336789877738111209334770011437597450605527126502169989082812811140085912456639780695756743583888322266868848697375495534485063123712369120139761650702790228134177952710926771521029335365144918672583837018823224089735813008823291502180075985400174508886939698992253093955883325193314101299272964688817561757854149183915281073458098504419461546074442280456992848632584615480997630864277136460963674403701619190036646005934786707187910389665409157558584707598766980588833398400356619416677279029055056859819970809704840565804629415710369618423085418670017530140986206513044007063173686581753960132222823291624992218920013226438960479653051817110711347298603511722360963249570858871359242271206701238843490140911720765429046673933013296593916570000535487660460602885170094412126202581718881022848117445206369884173436101688208604404535992639849996406502302167896969231231986545953607888966009138055173073133238716867665834364400913975646795876754684578853485757672556586661982057875707632769822390852359555757905846948333989751551825166723985900404800190054179243254094497757834929720733811119866271174442869401092792031755671136827204952239037356545476913200579525386799120057695420057832733827048686558344146178492470540155741286683489825141046791821936484925189381495533724917810056593667446806882172284179979575238571722087054435473907694584259526077965174054041787316414422865236872253936515348541369355456487256311256072710368083441651634086701037632185118788040745222571487087228926242824863614000694015786820073430168888085807408802401680469655654880643417714571990857098721533283829957005698721383820683643804490055967380836846200463680935044616203853213978484130600899208860611001007154366807240730944575489572117984806822909854563638829192408188310635180618866572954977617807745685602459571746018460664891491261161813248309166158378028216814171261680409294915864913548321686833998474072565062502374105711398446929168611261262714384203789697661455305194453108467688534677887105944571679848885305839957841426222092230469189579843492937699036617810603619903809014083133680421862846536586935426024623177328717722966140039447901826494706958656844510764875130939052692092703720292391026571871347324104762637958495693851943607915245374381602728903166742440446238989485177081762573930235792151891889654689533915429217083655790577040663999634164241962521888338368538449402821817539880042597586087872007795170686656858823240942807576463819452934095773244374619606736615740296896575526713359313848567114229570708613060357691172548075765910621122167368358382438153619239865425406190015573510582887235280562904182197166255223996255356051466105434916198462023050424949471356908462548742867539994154330039962182055916881834030734835991835343309654920902914611327735783527661361044584480513094143603078260989294739709235561636199503739798109286856500028189852405335736078508149349725248774260567916868179222460367584463906725313133658227054334021918361111063124704229699088058733205429541867166415627036489491950766454602107071271799204169946878995113152555776884023405480629747506349439608844156186094131435948557879470028954167887997341553066909423392957983826668301012528738321515319403235664724185170642168111332044428117175318910370616769229619612516680326833948386903542588898788669239910439190836700947416796137978351107977199026062148765614673619412620297523326703431847748588222942381462111909149624371755780174818891391328621187937586414973983423420690625798092434250681540289995804039852740617444767090367996597243329057465802443985033562711531453443306474402482522878515654250234019416096454871435648583849989240185873949708697782558701371682403572159472667347685462409703152264390879693236757804975018722786708826489635919265905874837384455882876899612091301356685833748453422455811024832068787045862314571242634277938705270026455518554575194441811415152244484547520900064834175049888174047581865375519065489289740881481378942145765880459225671933828248568702448998096131688131676283838831940765994773432167712757050648825490233295465190650975664635281901352452181670137891150135619917865587850566494653170991685201884928228229590090211095980678303188838035569466844847690173275953915268551732627854373738117318534510920027614822637021864774085072142338073313735392681811334107444857801935966677919021553069959015133195394616340547325399572025604361371786081460856053601086266670639222232528357983434099998485123335652765557083973035675288463523915892417710165259436329710380484095548247807681306822162090064089451846512870747891854006814363136021579770279566493697233295499874784480315723424062777797340942523555544046062428771300045903845166432530275481368314115592291863718854288346860201516851826092730361925504042439048188504312723004849739599083213873083717754585270057444041884683366528774510182572172216421347112035682598129443754727680066648138665061701800732595261654439638613350176514680551383944386981004345627066901449005791628296101760625983816608482759282646349175052173141267163808408199660346602561825897777088900045763900915553320161840795611703052977328583584487874737929373077758182619428446351843785811006912089541126563194053735320621155812929499269542875353618956231098317523455586994964530850012004613355777178873602530742125369295515839606390968464966232616543947445076697008406366183119971544149952510985679611526432664318030780241412637884480661985754700979299493449061469221856456892287980669284032694861029758633285708266921200112220488911694971264598450379415954582631163122145867719054919436618074764509169959909896506580982270928834203406567615710149323759021481562030297099742730062075304258876062828827916941661483618517846737638624196424362668672236437936263839592773165357359251812526411119983464246403802649390854467141708361600288938306412586851544608729424831047106959043915656905920472205622838077875936130907101662062745968856083041229609409220452197416135591314347244479500038553457435896387462975058435771734803227687114819175024887569374619105816348647803747955466371543309456152801139781267147345888633359520267510603658811753617684963460131779316866867637328048805697043453208751281264642589119042063904700462295651653982138561372736664131032564790555342748112562572589159692839277548857150006226286693315360235046464695140512870623600883479453983542973101030692434561305983595507112369072377329880811541868453074345677349509630957710088844849450098859854376909177697642658634019737470401108303889967506041761423037742200665904509671008343894815612145562785329744266723122005286125127498084658987245071179237136225473751366404445847771363484742614330010155114224065921340312236327257713155853739850840153774968748110988053631923052228472720306626870865850304067134380431300242285269402018739333003895233863782794053447144482125370914779541163521200045785156682721930930893243296566653590482548065042746501368681417156275386072181849997323110405626112846487792557190837045027381005357004746333847338389258611752132761909394640981449486788387925253350394124517329159336636396522190108248396001299228829369303174978079362173914863542381373853740867762162174857033273418381626729762472990295767093650715547063182835407682513055445587242134823186831535175151183101182420930546374633007678911303459186844396291445906525706724220180784104006662247981069762210055593917760854700736506382331342226897555328966520939884912519416923054306770901461395598169659187206383421268433494787531968758124827394378989576215382846347211623882374111038056632668634815130503894909148113516572085734660536755161982800057951480201489224444733228685984252715365474010308865054795772816256258559161177370028510845679556861998081705621505516840728041785436377733322065532989215582017813631757520157156428193252797216108279872866493096090573969998859175649220958472842387255365716963782920912994188573804451874130494121542320246358007680611370463611876862488433439601974626996287662961966270354286833191767693717213912616192434140522829405159947767576715631920328747688102734880195095992125577507546788727777026783237738601314380377539431277820293843176311112550670127623484953791798984369529087830845507540652974241361488736892996741508350875894201488157708197469099383206027146173281665732027132530206471797246724126680902931207259720757118435027100945277735900560541871377754984536827875263557733777914573640194677166539643391292656798774023858723927985297506586894444283440847444703221558095669903532854308051389647726832847234220098218197052243631189073800137717273606394950499808703671791745164117341624509006707724594506505297868303590319143036680944685765492478449516974235742186823240789898502055478228150392498812817107986484672034503778443449046298707106290660046857369759861018774919836670893220861927597464838271008911664663032293137199709246656677332001681672648036273486089507949669370049346752584121789946865730904279301085731020611791901946952791709332613384511208144175230470911357624215695407054342658232262768066309503409100192491431658462641416407534191712639500707184159053052294902152368925861835972180547920013064473345138789878545850752297572261894841304489234373541755783350528951854837995282348549126449313159018021560467573109443003288172188372815033179327246769946205677122987637063415176286839053183849405923676173651253522290383538351639195064669406257331434378300877268706809458144263687519907907988710612995709740328079235238435657221287633082802286345833703520490521770001112631709782148455016659684529820000366357373645326714160160964532252204184802077209316048042482654437986288797292597605570420382124687368084530572826692333522051905983668375284945945690331139079640238740014370247857392317702823275007143237380906288560184631924082080730564213422028215856310671429926122497057003848491641671123390510969797556440895706788869129934450965321916365579714387496251287167055569070337102088474325282039830450366137005420253075673815964517188151568426270452106630244883931203203009690780178037493502884699665816957116140072454591979492341213007842292129746181997912705562517823560787960866581526704335424134782779802623227280229124850572939653392271488444554081863681679240886045670839259798651240966415918804967813052853687362174645248074806704109008907442420036476356018174228782096039188313212122607446696799815684740618115870446982500398275048202493817325795071119785349710494286008415139841705279280757924067743624710922736582094532191555212200771394494557956792478722580090739122801590445022613540355257763338152738766042052902104938054103043277280490951145109115986545914798704483542968670045293229880908789935814768632023849545061260954185192783674186049772820068654941341970225678097959447502498402496605131702718291063904286007301515999494420827616185519308540926283706624606251003489938456716405341473968771954394436975647166607304502047110437854495307838870963466333721637856521869908443560746677687421760104237576332620152505099313892803434927100711544011189958937261865105797594880596748672325162204915933306947217249357123253099608325846202476614694778387476070559151524668473756817847755208774256638983514758893971766506468517599552963013286140148800251021303460967246515010372600789833343618165109836398763636506638538574993070320401223497683859340032294848420374462015648610167783786648154025091993225041837440442039636507308393376281019727686533669198599922072259896903359097201180629237591189567397894201353354769247670568602432114669923801631297299626716426847488368886388690957513314371768505950908299603445808611418341222625032800006382478660915755652009700791896037511242572403534275892074881175304572266623281163681209175530952401004212442675444341184513133487772068670285560387057938462260652554548985797649417163795160614884955031888508883371469802000888299016543089541307680036007852443991271363299751578367367462400510180959422807212490568070713034618662700088249612687424519091238231576253069000258440687270251820142895513586269503283593725006812361078665086888060793701286180265133427991688595213095049856723158793061734107117860631896376073665095028307835545085473933031525378367679433107337204563969527848361540811088514354060094569825173791684063046215054026435222720820441673832881753216127413343932483216919544856738121958070060085498903951549539246354883776478968468793816367933977231187344388490550214157073424915387224738403417389830895233956297175319404756990930810960649561794470844776237403040968638907908838991129854285422402450258101154768173169855914791501704236508974317759827983714028282744097263346491511475908510067206360942480796518849393659549599112169482295596119068710009870301908662960165392456731526039038732069734109402271190321675963470199912219435059080040522355934349704768769945041769034613823398045503359374886324748800572750519473992034474230492256225348822965606026536319155833099841090263100412216763163289273024735199017387091059354892199113260433178704491520273146147912272662655147900937465598214774821000113640116501706297536656950911745341985895959514405177877957907788441346475491513103975765251339483209172190096944399529824937201165777139834850795281327970203729329656613431074613596113375334422191912857395402509455583363783665958880462067607441187631415780768956516671825923410710269503204865650944731856391596755608434416540818330528316644253484205051717181191864328987815235353506675284474895360847281706300637427373149037034168388900262751634636665096687343955858268746434941542841810357270866921979938816831591891538807702515971161859093983619355818855160313028926476982143131920762239993011376675398133185206030734478520319782101695213968230136586403184774826297752346555325418357837668826964085239615153890942369633536919214149949524832557512341463144832319707972413595283557079627126003201159005395670758942613975989274048420906143887051763542760813193223203662815323979184733088439715980580248203438491419645790802872119109046305066909784157002140381270573458370184963546893856122965435128113884991315873554708738501063083467943036394466484746529110060436083021315442220807619961676165215413742700436211019642840394094281862174083180058149962947843456014244279750325990806088566639373095842360898382187247539913762804312663557997293150199817731727191077745826074919213316896357209488567248991334855881475920905410383576772246241981005747182025060982276596449959309380950812978033942136083461644987589880561482334827163554517864932787575070141639047675373282805575459960233353441643531600846080096318761392176329384006151455133852846536954725641841416807447875817500258844302934825305932726870136967818538806953618267608857210636149578684214173849604595732505269443878802409283498523227235805696322760338089156813298951242158893074159693804334515498284721841724143787726928346495447267271410051034723520873093518503770799987375344387102336672573385098314745538184854888287808421973397870601376258426605514889820349318370408582569951755175536614519679183321155403337265781796371739960387937775063091496970874413601242195664298957677806764036265874087657015327147496747961556647229147388735454971131041790805958127574436599106995140281649824238606006172718399340230514482904508654449946940099018448908530645920036024113115547748880146108373138246988562214922270982578201031850329609024505883525256130877293076341269494787645729921219352595844220698044246779957932663205959527861081511002829534384925013331630528864152169662484043672734041201724779670232568997167469092487593327219958024277892288383507317219223685493292173472850539493351577975673568406754657751189146517434913163951411275603622376890447639031458079120119451400950482767316752264113144459267095105471482202606433911486583597912434822144096540896408217825882791236844803498027857851169414148975561846850961496816681288732551309019228064943583799903038308116108559378089931911982733307167467290460075807672731263262492057909652252732355442393605951946618503815339298187423298355470819941769710124092812117973495693720399015862083213051786082228606200387128636145682407327929694963669524855025623755723162875244064019119466923183865122965627365253101712990336387736338465604181560121116851973017223943060509669494751402525919414703392071388594899966049731602144603077557028599008655029866541034211638723455835110214053825133055615724050485679152092264712537374404367288886708634481547430220685496866236206026891454230904743541675614853194835587764242100834775873768668529807390986796631587439776219721158796624967594543103664185057936339373132077499974985398255423378596422488312904550984022121940098850571186077563335206426612679859127185590174350374069213419980194497709914432246497260521063105653206167941926172956246632549480174576792380878388518834942107206439952981863056005181589461739315302033667290065949461385901248947191408094961894381501938855315516038708210358889389681344179675730447820758656939282606464813619584118978355239490111872422812107948356557096897674805339523571047095243018966514584952396748317380952767698201355003481375692166854154549080683178908760270950141179894818188214730541123354152067824309673137138060329973655734456373531597996293364773949084413414655578442944297794065789092695957611607759169602544490968836920975880692361276387071619392635471812298326750943371624162553022911448266461713009239396178256553001124889685683212672609065917369347193566466617797549578628882391188306750384892223834084906578538622163466196518651244982005787741893330263984295697644779542689545638343177461233468178179329592546268636886893347758628435024996229249644296369008363895495871138491006365173340988882142356867383518000111920497684700471206910065078769451452497912564613360285823887260952958340249292796398108509268202082297192730246860508358549779704371543998815725863562136684840126669678696632929134539045518851856692202926484876335757451905009494207930703713164951247934882936490717100456517139157307075016658075904763448310964373612741887240205305917992523820616704345109625962891420339636804379702002441618420349178341511000222352948712352126059397061273118140332867014233573363811690985521099248005699810688127424956838379526719867586147839754506998569306063271488682480256539794003270974215540448058134869001449913809802719651024992343202249139716534106319293236018863425453576840319339743089856635949904329372439879034285382248194701813584055685800820711897525598445525349544256814509752325942873208208081017536509256794029461140740188178252558298731404454452872423876705469294363528386953478608487873775105373068700880403416343602154977655655446500773142569197918076443696457477897499224157911414418109245731766456051953104159970452214919860783713780751641885792268416877231235225884463438353452393193317856930510779800255879722976959397847435082344871880552277624924060578413338724178107419456917731958984380839517789594201576585315333862536655492344295431681806773042527704940319396815691879528340252850061727607033634266221325016636636219402103563587351604478546147915982553563239515093718135767498532989488702319307013206964831047892102315848235606616635263744508811374223074319212455626239740439409238003281445283439030748559230695426578383683293370869911231748354120738129703528978596508293134995476884665800386747802752318825668932220759767622923640531061162196513394707756359418651042280679011353877991438586791706464990545866164717504232756842824659517384942890981194717423929590093854343532608741012942607015030142999130329832990871819270523486705689689962857509751625269818238446494208544242309839143394518427271427659839614627757764510892222130657299245286066907715607970529655114095145752898324289683810654833362407678942249168467984677004153247272708678411171551396088607276168249355362514940136561041236288736099408299621920316754504944914274955330700050411348658069396296552848801895945800140124727619513799732315144313651190656034497092685609376632067543080074728758274051731063243227452409498889602959137896703533878844030541348983078831476866064581390163724214278260563678102458511368819283711590289159379645407311166481627450781098516023112386696522724833226848729287050952524579742797078927795037252361552399036574609823942543479176273982479538236280574236267996903374361799555620255876762990854168326230609096972334152874185244180022447102944108628749494127695787367484255067646149370324248252467645113377062431844153700140070476269859742457933934921371624386423522387176148627749840846173559138644036528901656352187912983578023649986873367058640163130748499000973312228077262439003945941286325835634508877999787295777562043971811945855200821205148728336390974573089206172291854253563999218692253063086620741363452044995416660662397414672100771585318965388626273764015927141489150641586878893429526150100514022913470468768640101950027385944049429816630625957869543851072830642555278881050927966994846942381096633624579082753730753089442201252555600333358980004740451723832740780500240127958174423496205025899282227387182737459374605446601888286393490373106735078090358001011634955309675005011483598264836307773015090504312057467988661400527690520344194570021257037444271486120894893580136036927934111699855788863900944121155033437371701564384051738668490139022289610511143018109670357149238042010555958716929699715581133007742681615245247683429265784498511406636085021467132989462502724057076638320519407692451852887418215154633006717079702666588724257414513574816437457576429671199927205084234763327342936506687403664562086928252375160691394169030028762056899278436322463072370317818112865859075290912826740170021585504820821539887135750179519699303523399847452609520053164098854704721971498214531653357124206728731725220095551969074814465340848425770349901511914677071438402266692992007207153272218611701726924076359409479416282383016320888060583702739495299381818256024903111537255041122740249917834699630163493539639939957427259732545072829738876484966474189614839651611587510315654540310496059682512028578097439061599146475001793569202612462960845465995170254304428741480633537394859708642860163220305074200172528182209087918640773547467135664695003845943387058399091689576483079041095876955381400826203486797656790837171900329893618817856262237275792752750112396913063899692296718975356285936526830030271336847668382231133159607578019821290869466981528903710831363728203570204097652543225469954901964256707649480264561238161390511077635763792590705085633981618525676173210334594252597950660961664618272082299316480662241214186059627196828759396789162490391035497219450941214732127766154994019779867734758397540451274793477905290157906982840487649134299590757776456467159368706550100313651319047208452014656655452794030027280118155164116444494034505618062890512742066886166086053959179505561851100889263531241161468502727502362894412026193182793538440331202797091179689972729922406039112714717363687282368093585000676002105339303784625588571409534092320532420763761656805973054277663621576674043873887014741839297018849779993802805124860427279252838341523545061145173718983033524599413553932694031194452764684398590017172678672909168123161245032586362979731167914680834460812108415169992127328574813075697976281382149119811164690909736132983379129582906646068693235247884947380508489289648981279160060967786067643529820514102632984456032342762284290852407249050911033067711875102550420775598432877638815731849820759605898657370100778339545554909749650137376338459781398930543100478019177383851845680193749238774002591702691422904792219030132838404482724135169179177006056284719393523704222503079025173853932088106788490116737271841547886619090228939123947705244256044338795373965953724186799285353869155752823711498306945779634408542726430292055094887120804136940459459519438174739346390204863800052498649368112451140238029845859400194909710327015141994241609600028818927823347453642007877324907128870228656496245038287837946890836047070673712153617207679248487008126740834723569211219946399449257115796329335613207518755681991724642013244230502070417564566757762146129160084443709772285024914606757720592054261255992087810422916658338406014229970532259788635789944285997972723701421615016076904517480515136011211089536725521148565063770191059684332622534798444985812501941901884584464274119427821010154664362474967700778431208605101675438627809909109632852441866661550111136318726195087831786503686490338618952036112114306790975627739355985482196932735042430851500826602967115230598829526106042775056180831112431532276786025805485856575081144335606675846515692078652228447324203491479356867415045939532909687217795982167512455463276657802385370937855639399876834938845334147212999746335247507649062268372761959900940875273002882847286877699247927025000795074013870312652546548960916164374308031453072013441801157032393577279229509908990169351192283138946850825997385691232335593300784014884221782150590651808605273765706827274598280670087117339645490415515985700536087911421848692772917007895009237528109682772529619899991311369153150943417089371534900423451212365755063281624128149676410821156358912005599071748536975001466414488648900460699072195181196304251956018318671083572591019523886275643039060523514723862790628540333048910616406878207776528335948203057514449027623815276282260925241566383236320534049150811908298525390786766473627025390701953344657235759233514991972065970349373041596512846896257260486003106009906858717656499137498236671868086221698932639289738997265853036438447831619490836023130537633864117295246438799170378777729537841494320239287866695550437153630986791110578177502344008362671307158300390221641424156777514075531186807131598725858338774646309584681098871840398412161485138036513521366839895100510359615655647527033828677276559279935399856881800620783020809508081303977948599758582873450258618053788699013800667274908368341052201263418482694798054450235877379570648580805931369852682449840611504408742990335065015518896464489828117127450009513244095900517100597019359975546573865230583879452019655675800096930922524467837870645903641053546090976561499492628077737019179325020865632816714377134387822321392822966630252610727764348802504207366163646104637585967490994635294841142179279699114196418834446551766970704784416015604344886266828829299559194342430985129661583976521547123157907761636430809198523518332304771122874805713932070771281444931138828220690828730259483322344736478046219938206813551238750143239129615593301386665519621948223876863457068814702352059739554146025445187664450920280101533943723933155462499450800065418170296594873484285844581429779160477413556220254102765887711847140249091945178738641058413667086071611863498752092817868347779738241337705470847234405317806051758246941308764106776064508950065878864427374250780500742078399169791566551095392416390616911126512753518854456910290910726799932434315621524167475133041167994969602839283434924822359108473739423247245564639393006344948652183835814192091870009626579039121097051985502909976285455663428630505715995155543373280822753737609746304659474726146134215450518046248591956072278808637656419778800724918295421740426473349163105341687319169630972881144455238637943941337723836852807782652862166753120061993470054878359401608745599134087608081623293990572060851341707898614280313381580674714927695395062992621232632309523321816842500923807001713994416039108934662750347382696281385971028828106244653556946343088202792227682631535937097675783777125454724043544787941497102549412941128497594993023603105041375421613304087548828238849531266584792094255101970787860985502136435305298176743841148455934000943210215203202116608960568470165885444283198363132891493258604795150325657116841881495042008001773551262462904227556150822237674215994138212136924952282739221522877624589938834952019608926207064261095145319918996878658673917583445898114889667978947619894072453703603278057240246959490841745953414284875936555316677192462725978764390218302738272850195495894485885830514695633286210549235459684512890916502443014922046168418290167691223181790659946853011958510926054247045805235505196711000114299830260202402302828850201018974394326669499921140846655556295857127524923346804696941486736617841608606469290021801958463167749316340458324962009167357754397723566565581332288227491805480185563580150972756081937583276628779356587779850648857555354871866879865859933002153530004198278127611464170993897481245056443710371833763439297894207236990126741400913273682056131263201770318380777033904459830823859197042483928447545504755497741475890717524360524641623833846954705926335147723933400767201782979853847368543397623003362571018171013163094943650714841023564132988318391559574550296138001792207892904975332957347339060731334313035744227741820777920659590760489039440149865456461647078247143403351731920588259333874145267012606061584991536910381725336027569266811219610665168619371849315905681566573990595319681077272724911320054895222224908154819530616568194705738080476210122283673627939600951727035904445396417921871812191423122938431253220213225885045486642343810672401586069232821450531645810266546046928742395428999477853020766103339375679488121651983096598264938825189332150528708521608707395930085438238725903360495382569146066018867233310873320021846420960683418099448939532097773867783200047326856392953356851247921928825667614051926856892782516721209967732407041060206535587770305173414964434508427007304844900148237864078887338960464148957860477891940469738954168503457495908058568229608422264076402117503646517918239309173395942836982337884547623273232929090190212398954240478834420366371207815763589789805644120485630382576224101484508078917330873945344027771600333860279276455336095814498220001167854178401052816657708869018705713751171795491184391056918059705009171189795665292783935426089012163677513116054737161687787427396868886366032408189167263456821488452145993988375517847130160073898467468836940211477412251904166810587964560495964513175025339022178301062389669463486134992398411638074596070986154762187117924834990282396539953493774996163110926178369625836420532067767011090622849875963002227588401318283581060914214010272488008207002574195956397724244716334488540041570960471167341259666508232552936021000499190549222504321514077641500604615126097440355360755650619105759060794397177763839082942194317796533814419336795221291814620604086046748970475414328555958750111335222773480908731128665033922247490876470345522784100641629398262438097568200041144102876147717606364087334877671707353831566613048626824434349424517361511708931383950458986376579356730402264723667963781868871480097995863348880044357017220813211807883593034270231282823276900956842008588339009465472292924155991682847521490594102290173289877955178926645841943018672171842745859801023439559958622689948848491551029553318619985328210731090632890142487061395210791682672157301861691039190726855250632102550580147783975377043353559282380396444087690882822189159027097667395790603873968029088117846042775676190571232864998329845765001414669349576807342533636927476669783092429976789152930620913567545542592565000573270967694433063026211035174340247380963245397936936695579265947403399384366176654456687627397209104999424551913114366955183739879681577171659713291691117729917947802374925334136290849693141011078822420489168091381617047440612587755221812655796673213556640285207030577053027319564581980219632061120541856553051571325268294943967758338756342136955786000095267945056581877014608610938341896656124229725662205882189267136910750133172351947459427713987417312798138768719592576574212137644197041873285820166498316734763390476419529347744734584498862549400072620252118210282297502827067518096594401830605920265351289061485261708227891225384517893055991076193363007197854276353075070816750465818095047190492775384844064580663733411295005091388810835256397153388469794151399807297638185352877254390159389320221028927570755188094446743539141895953338448567987400146445269572260187061591301405896983432439285706700197350893964947290888734557471140265331050788096058517278595151592364033895628516832236623992604022706360202592860704015745068090448930986968599334530092396065510664193652242233162704712778206171230190816833503868542369790851254192580507560995400483461997917174176133498088859730575205010106300652745157362257553645291341998890546344814809598755557048893502074552190598970149758851058420180065623708134461885532528134491930423123684913953469581587719592339685453094848813713260179883412014301230649725634515589668538380660155218256039003061891313384291357207514787098266595745612534599894140676816070173732804722853873422325309938941831789197056664719560118139228014868056111115543021500348465116502462239777360293604020943087297898048625458928022826177843525190800180008431006742151676873233311233707909556614033422486657998553435079028428490532628388474981146971738625957131733177488117506229613559789574037508939660385865155532908785751696775697615916174003680099005109632562577250346021679034492245637676331052212368448580655819858849091481001530857178788479384556160586998161142265480262298538562802864100833604949961029881080731377781971875965835673676724363653219658915757315198558215185958143974034199292809825707187459247190129587822379212316392862874511149315900536091663001337341648694062679234664745638522461079445297061503585589669129015361846074919579966538295946978854098896432128062007420877480034303809155158364788752345047374850142985143864533232780660723058118227143628556550024912079183577027173570028758711784333827911670836689858522411575508036274625275505139394730760162387243852845100238974102688314885933563450593907634268073236895322553432100031067455363981105140903946229367787203429100859385562508919395266968100104588910770532936560893053064263228006851049155402960500382438498377338395982939949022707783182218993739146922100231071145190464095690034158927238069354051809775176275019301835454796311217177126426092363369817430730532469255382008149731256746469782288701380649083206102500435578383098121268773780882689792864120097944102972718201742591506248035440791791821284189881075173439401876686866870674349519575039052506630313715111420843379535745206119658978064329578345887730152870352307869346807791036207019077788520408568887131168544126133323222463961425480801000610198017667913998641090971359074857817539700502312006374879903845490572390937448720150588074575772983959597686417823989588324261094297637709099055033125929455887118383359706031189130223947970428375809600249247165050816483099308198271791211614111494102945080850340706544368478057869715184810825154701856348827090530581996363367176352932817772405627490533208043777551824765462014859101658396816486700607747198678620159017715468779985741833881176504766975554364388249485830978070710961101260355697302598692283093907047109340871177880057720490444403527885214821537179026895345239321675748943628182047678465068574480701191136238641522748523728086955128910809713643571473788745855423393081751228116573501270915839834344188993728709222442173089143310581646565978721449546402271555246653485890977066864344778490663205244212543960850575544556359760255630176941796553107386172842430066352031501349303166155881180912456685685806571699679249538588858227402305193681744085641739200723207601551486566479604047336139542918285620981836788950040271829541556445491962076913476392014809524476779880384948688264617345250357126093894205501497937548250993330561173152602574787841117581407527557472284124371066312184644167580853307973559774886191712862657331576048098347331652075282586928492441241081241890823555814683932301443442613845769348760162454630322264877986009298948149715747227331770762799083074225113615944746206849244927698036046062272815321056508895184434971943541183773066414127997964038046452981527045475038666863051129993299404784862571413550955300167111822663730133795411888079766008790498009003657592154585577887007421400906889435226311567114311579956082601811649183202737191876550808212756722692591137727692864665728511442983868173324951691382103118295673603390972104375633007894106110346046278321833316530151586750533741295469716564977280153345771599548558458126099239621421412148612662958824835965877968018045024101205318500585388661165776438178254883892610992971716464599856413620066781461086305419540945636926229852826987366434520912275239215846597662638974649716651172302327399075631618965500518600472826375925795197215745209771969547198234159576576334945389237210073421235266799982463697708318543543777370405578278882586791982701924167987018130743297553077787117929277378173548131688797959122293479673481223020124462128259857780174361476966665833668472558395563313052228512630357331866743490588904840118142675999736066548713460274672379062008744228800856225042664692218607591110410523633112798287402977175657336341929484652845333911630038465970626953047031204376251005962582605158351319017263964589040149532026079387986432693877406379104491004885721858395827884564531268638685401195009610265499600564999143473533704777406177352769286260103585870559624306448104629971638324111069140691733297055521850575923947490278259669946652413004682558619087127705476421562195738566709099548399623693256437582775721674966704997339584037362462830612654714168996826469563108189252188653085982617143634007980875675888675262317188045246413703384695506951801249507142306897500949559221549081713329594598374562865051045453375036266363489577834683011173285741432144150231391074618475610250344941835771163638843481781792012538003421311935270037930916739144579288480295803411616628210157926742850428688605203872543634491207683629823713737579756163083448447171756898915982793942579941519174225444816938490234567247695932901014225761054893324429840492408287550959064438698604007186192037882740614538820681859426316815673900684564982577864214551405349992237027426208308878509400891692897630442530317886213240385524149894703397773929798419998099566580681589291232478294773008037088084937855922245042046184362412823948636057800275890401494834417934707420021759085821874953915491309274974746442059133697537994105494974250653670157349430956503812776090161197032350719499393489310449318787493524835268780988235875603069653312474833824387530554423014266273182265301548776513037512293426409184280706436423677869095767286945528776984435481985288959968258373311696904598840982865936315112552230975865451473705114061773216734611801169590283585151934210083410668585334289475122190577196770310863878236495439666691972813492113183840878107102070084159389406957529340109054759439636724764165544040222178029552005213233055258759080524458245649938286979711418259121084707933308974140752882410773320252930864282125655718337668711027103859621160761190291878850758951094315693128083680868753968629677732634960934315604226790104432082498583631032696470950111367361796297535503813294779358889295620919959726645917734662202523516030973556688715309095718656922005624723792856209506338424746611945474305070612178807340094973238712639089415712564067599148146083378125009557651158277927342586914193239106209579202654493837792144096061315543521896803482228084702194296712990408754104086977679415948998760585141265217151070086137373774940615426141384706369169391292771906025718768519003266541120897875978889881109046369081101497533515590422107802044759294459956024993261306358784595963212505005365297990220131336755411306915734436959327892245039861650203144796432864488542866036568320159835252488507443909264018625673156548894416574810899371675438392289812060052702743288539086082063864148264564911007077678345529526742704316778314504810758670334549502021623205184340731079956818118652823512355583827353763075719654878899205349330335070410774339145809329394136531969655256463290491781833221202745200310109568215035932345420762912951677616603802305987353588443241247276110907581114247731601822448160816319823208242124418994460691679719578409072612071917973180746636215891916637036368660503228100562162820908605716810459389823886443710501485254083010559818693066023289990899263721547358327510766541412660491518479667690085851520591650397547126970560738490961381877660968452535369472464427629153900438997284073710566732787285665524049857078446493070803568515388327166425902294542367442172612659451883053468883723354143482083776336450308479076268941065732538088036432640633844306032282067065387593555799829468990357627354482272808173813636860095662017245257085505992205230335737108800931786238645896914130560345857129998325775216052596539913520368190277664254563725398667860677360001753937202742275593139753331605799260695023258518470130433638107160648190030850357061414727996407247817895093532231554021974165508531902829435499622692565923858882186591442157311619121247992085250483163331121159005094893659712292334060495230256910192799598738699212818412921052944082412163717868250267091309682550430817932400744513907285584084424596701807937765538020608746467130773401084552298300447589216766353828272171014722215614004417308043494464700742786404652787935269035388621536243465837132287042572189948631653133580652634567918164259327336383562945585315333307977090360674410921355044337633495901089236016917257042475898098509975079644215773739238922101551216493058313506858833998458900734699291217055547976767045465317457056160836628624504839781988704256153126148940312038894126441667649668205853508429715179148041437573746258408058313905640612720237280222778036396648198116437358356441537106251658855648315207885673956117746203361195108617698647068491272114272094978971256401705673581353767361129331818389225517724556631431186945085283976163334596244920982180070823862135271923122654261957888006100378191933934992049026884452134569402211709478494791084168864959258646902969825696675960707950849426079478816505874023408709308015138731700705168747111871431445228394139204623824211920196463144247452972524596225670447436540726460270180314245362393546530896154137460796979869854936521841696396171804371499215444444537159047050582823803400367908156815075883917801613135780665662506922556407526029780234867952995085285713020893691184811323066039275030923640413504587484776156736805765242096566807658214520967513171146524231710375302205161563624241287716522699116639684445404698177966137809618043777239963831186570801835697855158934772690387461425050876904153379032022794641800225803285357404515103032610572405033277989986824319991520007250694148573875520691317708452927022174926153580698369220883850543015121438327360741699225111097497807953553266819237831719851948327613053619702777039049976624350160974093518627064815133896337893095090751577247652592114456459248367434505355866187524693169932115597864435384933696845000878593273939485903080419463864914371585785495494768396160245168689376014411460934931630805962850553144090676557637802791527487195081918043443014275267411339269484465083422388496455568044739421929033498797793849176114631265529953557461842135530550807415241781511102435352811460154554341471396377350951298028700018889056548151024318943613612363297287792892688371209405589392940784012703671522328324585999352572606640751625419115277345499447221691471913605611248697462987579164637822174941142388563558919612154058920109492186927117492695530529348667487749610868572027443859399306965540056097616335128361963850811648215186953118901059395888186438226004944233277809689355781085750422710061522306195938467483662567212507451116063260445424926394259739680078292375554136831917646604384523006465929335609587442262910831927222960107745505710036376351985007198059766666147257280607163500767096638888381081707757832400926298481594752785684624835889320734594263532344852161183650421090868054704221039007449084401778072870434081664125291438958747198479211256640904916355642726117621195427810848848203408021248286133989183192351156999192477375888097688119415946009782035169459829724199009652858741497547252815388528842051893561870716920233831276931497387400446300568623561327012239766218067279147901015760859703430684610030790844430444330339527752336696777366616572997842396440581487540438917444516660382561811524995771494742759338767282000662570618382119884952919592430001746593980793836713903069964527818001606346233570264467426798249667320873012993888233138988890347438065586736033782077761610978453753028600634134600236872876895810981217505661260491312973181721434178622969061201744823150748929045068013408250093548584436707535625875453943918835680116379125130184683844344345938758912920699793324095572445391778982732566599123901810091903923570059638216078826357341375784661571717459740225049179989230436140936025883013302891717333213456448508061600984642296179948968552794444889748333517216448794372298129328546945496271692546788412402831046731528740511879077594291567935755559384990795494022584896401072968075005805401807890598436303832541196898102118647105057851977688540868961295259047797372751446309048157440075489553005085792655788895789920497445419209576406271951754310705500246173007693374913670675164879497996169247790572409329582668213345353130189978660981347109413330644458671289647826971470267826940885519777508660008715369355001275210591413664797784304275139737230140634310672390243337240026348605038462970402968942436885214567036786629823128017462710924377503667918427832406511465550045897220728119043498024077259836856307602694346826188063271500242360847740180401858440875957896606956187354177501888469352141935785524044527394285497838801461421830198068324911450621095581023606597563077103804632056952120243313874914299699855967723874674726246456977035984779428877256950757805006651215458637103972749313836317025031656926605036766001897872144898660529555489357990695911680859510640653799669164890045815724068316413770056344700176809798010693149700280925467517053440062828830003418181787364791697706132957109667598573923264363176685237541752090977294238285258271212043309485179646347583750472801239111915035620876029912857663335050388916871385612931625626659407251110465701000025251296599154621055065177306153208660701263288547674298125638491660107329141522147684952485968956050876457932112053974380396875221739624200091612744309183596776396394182339596472838704673626783412012890311509937266400734656619809121237474632094954603296588393368371960347501091327410994098266574139925258462296584287089990187007523549250403697799546021588381739575730975417424770338277050630960391560830002067415178078677973110420891600886789029479685457506970462516253458318300021741377725690194889200993898721326491101168238960918631099544881372339256216841787631729443613626792094077875976351295298364694760390747594250486125276365347498899212810474139057516702921697714743143967909013380948208363737593659222432907335935608722048205093803451553416720322645095806166633569250742066395007000949083731337584291545788084820346618254760745490904352380211288950788375552432097992284603016313059163669437551988133746605773150220873011891303399469524627836619336023529350218165439328704429665519801205950264366184472058775382781551196642597533424252484318429051618063576226686362871434856465937856246707068335788136516394677710433729525021390647178419264516062868341298160326393948337693544778082524763363625918744938540739895967231853512502403956033667665078936955440823211955896404732660475233226282653971831932793686671345886831398323399971444253199198076378300775122273736541030458316321857154583111471416752451547683758217502963811593819300962148661802168719281850510456499527251166095503420897579475343608236716621557387351716647038877345401465286025811411278875456302941795930185064014875690260579120007975745473390105330136159589644861840156256348438838831926825325316468106763528853470113561559214996927932897331737719663742846968158369902057252779417293165256078062460106002863319805086959555942021314675489127424842508573201237229829944884307232616000078204611484552931765621444257140426613734937652582772838880457917696223220508388117612769717821364507563567880299374844622803651695774974356429691854019400770214315573391912537287285172733032332971702009119147613604439661371482789468813845428047287230485836200303010116687146010784495845091331827828413336850418995260476235744886119103881290431374322202354746586287563262135218657122149809310826291681683754744480602905112938844019578721535171551998005503993494337639877537408643319141002978003211691594517714339923659700688638877727360476991137976690126497750730568492725826332021607223683923026762784940822766270635191421887752243057263174576467997959281658853005354403655882060519961275461909028800368476066395462250463776266044949289822346132700901295030212839777675222550653332446366689132884264629819801279455192342255142158252433369596034617255008621576312144591389322014859173813936172442056384008787716738970431149739935945043133735299126915190289382429667401369403381999654306850602615537178679703270920672882158903775900588856416408513077593447537262690157785308707096867900581214258698012820791381648752872292156037866189132051942423857331844517476242413090082114215636261087319421843620804631715696612293126754992638487330188050932486967817042260827080437754718820223505601793974441341223240634007718839030241092078311644934575312583421857933889399363590159500634649387557127232492597568547373275362377912140469298497089613415564786547793611706168237975847052557852110240083751866504425729161261591607113438873735166812005506702173332839962884834952001632132394098565751514692177360764021110415215679692619274191832021522704118375976098610220118369940604841538308561843555162695937590309684860106843510171395597537710697829344544740935469331740691837839213884754773844072582511473357430470923821386399131657052688082128391812010355653090827291301434664672610615021205105820280151964715198834293301922651960762979228864406058195712478438532117380760155459144652899904870803928609610263851584809154958527981773520540892083635923152156643214517838858227794608931746857260399249544735249236442572163911338574217030411588196552395341808654120081870222805238583325656046218680503272807092717284816729995655864874482153672255438780456381039527237892313927049278581526235910956323498357229692552411048400907163089381239699808329597613867690369072078019142267688928862477815284187608010925253369702079414302999666138257874793568056338261013658670533134018117415506288453726823286121489404647497891631187611809305807044006759611327962347976309367952158167513689926347871459732211049638854801223459074801226608227409069671732292989684888570056844866683771484270066229257462663037469650736454558700290821107588640126582171882247004707616037571629172863145403038732842031293314826105239792503974397136100986523984367017080898293180795934188156195948561719914934123456483214354644867055470259387914842303464732904937730348521684616751232964595884088664694810512171209323366686963639230683297932514715825179944272036384965830824270619286478743873096329636893879998429269344804201796570439961950252722983181913803610973392197847903055846822515319301047939807411313664844176248301198156718277253615154127414414300192069651055698054318933814030566599948321551746779973681974180240765893512110862679223005032956861381108662693993436082129051743817079090060770310294714208649953443040075462283963879586399318228323515785325987710691360811554620461401128247391534228395749793256330706672762119306762727205148671908379007755736542988971053988554788656595080769738689050354224694519978085435269558840072891558411388063437697972387095427351426056090458828143135030798454335731038793162230506876009284672738889825561383527543779994208712885812219732881945615822947722288253928149688035734891131839686268496263043648689908606704244605521734703230333224866757426568876623075665984740501962571492305678408357668518936180462647330265654877033073938527610440704375029412716820136331396773650473243403982953779970382459555839928299503370940634834195567412163384133259688982843210840656739824651248351196312418972206346726703411679999253780646517696085116059475352258303168041844327221078079929573689251237262770126410865414366712419303353687686142609971341891414685145975425518543965788390834078361936246932082978624126344956318879717363393072840438994634808467440203245673451994239880356730847546971947640839735154181780494335370269385564017671736247446993788333418890356840739142977022300915311940087693816682146638378032059713697844428077079436880363412948944350653477654464565300603665409790030600065999948284122593672874803636914325833732205168502332567506988874016967538509403079077700423198753974340630381664393058529706986708488630034647700283832742533915123833466647657075648884466469043974773696323762835086780893884998002086362685227800575188153765013936384039824341812751237808538756282567733294543344734447847502179277282370668425434368276438125894808686392787840523165487317919025674835685823168007513423470394279676460091320134440611279837675663821703267666614901898261208386643574813521546093648788457632697518713119754369610333734803403766216950068412226789544637528172640670700942174629216789459811338472302925575991437932887194160101679243025969665147314571474166332213159734753804069671810481140359003604665133557604288855985841653163616020319899639160036263627188581446760906415394709858566449494771389680569321634873082153255504994701718262960785593933265086708676082138084745441822140431074054779880673217727109809710894591110049674854460198404325710011158983257091394736107823537763982570764513782724267039632349131898398389832579256943792408585504961055844029535763314465539437035299916327790102247286983433238658515561232132242036795062449599670435397105861270417280095000057717726377856772516478167067481261756260509827539724572758556906265071098569080820660242250966593036248775581704450851339773927414254375948817367090665726899901219492262698042099776859148558101430691786319053891678691267893767234678776116516729850909686236314931914552175937395685006399920817049703025016886022906019131756354603531507035802408457666914806977205296076749585554666112559293590534848792174942563689565151400418935619858181174644851182641805299677110843461752553941725074219800190247529068439828103042495402699786882654568861127173399307782752356234741048102273773923708229609865446886156642779899923757866788538097735818216262439596303635534808070811757063750323926785438775434709329321763502886637619759088297744356360691187893354936439151953526254345215922925796383344762500174778487973947851903852908028963141156795453350643204126635115091399464322301561227083532835806226202571202907355027387653361244285721844296497032623064744069016398007487236434831117882016258840761451733652030187863761350058158377640072077838576763940002066423927336037796477310859813331863773657302706950125131007528607021166644864983502155691147430479556934699352357297544679845448543224472334692647090919372127608545961029666030335234021534425712863537678145199389239114574074733739323251328020908866058918369539768511022929309708453885392354078526613045463605759830534725900995527947619615067915772244286994679527349821724257231582013065559961490399069438630268211327154079263594795227716389017452096453364033242015778774016373703858168128198832278547211572948203779139394006557821998131695611325115367842506848305191813675938371677942513538013305197783161856088846753719009569927804149952629859200445872297671082462498573315662772567377455916186732992583077684832418135496363503644731902074265792031453621224734737758048953872031506216374892162739535021636066233955839255789056047418011708659850144800659884328088699702367128816236843642617813728038642493349414953848765630313394418645079004644691616582627239514608517253584224798760453307304379546806743813228177178668567975580462607946411960264494165222243402451879354191407286233786566870494558433705292784739640406199271779368134825487272113726307772186821056894774381422391327716993009283287943111996632476155248332661035474593071150482769607227105642115719993673273087264665090276625643652319629227840158527442824281252799866016146257948161655106507940515702195739252048420711006616818884062928134894569923786209154334785468129880984848646528947118339645122964627581621147683085224896506868628411040119062260955535131813016993356597221804127965535351233434918390863478353107644461503646232450431192893673003643399638004430537278324630293396794741155947043040759338187905721309834681163873773882796829072738094520513530457988926774494189709786813592884877464256489650682380781985724381028960636639510736953884450245226514537881333434682324670362740708750394348536604053613043177725729113852395304379722242644888943164323228701139113735371800970112854041956290912582633477761325094670691044257125074572356539294508025850057321162457599665904292060842997367186470222344601441405186076908130731558773816492708713306605349374767215934312626269048013729804304452995474263217712711195123634506609716714221443935980386515259026318099191130586297028548720175974539355338469829011580254267775324118306590142419789912040057073679375147940585419297132084152831768394319000974064904057536482532353610679850786302889903867373932675914938338719235916030057769488013967890091633064640737312257025047886641644348250246763348245408421828156356798787117752296151510046541548632580527967235124439197339123895647874177263910633668363681012151923598555239909540619883933770279743952448721190348600427952507799479147095145134716146945132254977177459200706613766966047710131898335323257315348955286410561071557060872331080517416227603003464347755271035954910311434155763669056006302092778273720457259262202922899064374094277339327180944717702201725991703062681728725957401604566631559423840171533700461034432833972465859523777935289306947511834307411841312515123194215922101153318273502585826066898616460414980761918579320727739099310509791681243747375275926751410098622409484334244037974441687734778274136029735453009059811902169387440598821633782736103464037873528016574214271741068589178961357954253381483012914407500404395644323839894388831711801823984979509431950914105579314472603041516251929880556826262596049972055837660130787805226382273764808193547212330085253433430066328771630800352116787535974072659574775373470773508529008225426438230230930533303921277121666817184483125154035919360653969586906024545849277345134567075033027020094042268270323376008549602313001816759830659503618382733136240329978381548011803717763306981807568405621317507200580204023021313253647027430421053347452333274105883600875099664650196510227167402042324095913841477494829445261330799206966912863199392776837239267749406066020849005685746644861000968288111293801282093150754919389642663157387633666774701469881391050340761190358649018823320645102137930561879302602887464861852366740147757959924416042366317055920849130984728008896152524492130482507833546992927413655184748173904162692734951752382418533223732042103839206803017099113558662463562862780252714448993677721574859548342918998476866640208023814224655689129044807807490613385522870735892669274499788036789216730767300737898942605886890831031057334691131491043498207366556962897059903534611813202907196665196559995436707846643301085894768285765280983247241097440163600581064416625660434563159847305842539959265719813425478056157634107349534126263727510276357884832658789295993809308216866161025982562008142330593245834019064977158997147225467159166330941619441211216743745024803847855392614274241058445858508423070465889855340686725634829015871136505089248313266524380026421539629637961837989644888145949427589941489730051906686046256631779848566711940179419674658702227316901103238875569039251459986686633389042718933647171126008541506428649152762267952084955728515027903056567632309900924841451872579604364713868092628978925429371499532564460677277445196603536162662592525767485465768042386527838696641740497674897212767167166836992690557056680861128523386465198678326959095298496016983172338104101970822654473664217848469861080980255447023193262402999570583973585916791651057558897528414817354048800031317105577079044896758711492748915801997364785242160267428627225249192320247420164467691771130043548012210628081611904450849156974416498711211134848169659557738318737372089585217120781349046570961803902067832149295344488702855508528199175715851513151571171931672837337554664012052889947107092006864411728281619352184867657656737742703278047154383497376235327369727020687163693492701550273407015229311359879261300451713835466045549124691363144194640537338059823409682616674870046466135570332440910738818235773751927545109718411307224104986405953953667009505434535441734292812723355186807413187860879151984557584756801347224254885623060386753516934659927183033147236610820702081099401236845388044111052336578234053178400023211053007619723257736516659237927057551081594514416358198697775937776953948537879195608004429573072358941077882660810411386050856274856365114613802956618078790540053989748023249945459377196233649305795594800946783550458830780168242349225200022276807985745084325381991987080797212331672371356238311991898763981545720001371236913084368902273958732023868232394062249556534029332546741350466383589433501089510662295604623881558878415439854390429530883072653386986742323580669121911175241616333185112089743064295851487184922280449666114064045388433783673747771243480928224464172008483301450277837892319366864218108080975841022139389133580901157029982839602238052827755226008278701534921604307318351704820661631986866742084956842293978534622000673500999211004060961902008372959784918934257895756880716058529264491358289095086586585411451218490115517117157942925216553970310237740544526148280342582464946569122629692980233791277374306613894851900369156487760070620746545882140071634594347625551851880042069399632645809516568216250807531190090989093954065247684093846330824148190667537490589410384697955941669703942105695976574938503787557542006184133386647010557706546561098136738608373130180111758377616180177690413861033607246752903408925894175446610605439001354855942886588338715138485850549558895741654931241996712397525139992278529808041888411837743575991678303661611918313048242705308498529757439478358660009900475543252384859529091193074383417877935853380173253012879925442267723411251060032023417873248161834141081861302946250927266839954881337741032118200080558123458766654344898412259603580636594857121284470930799624682753021373257301775497691886547250204451777955957003437889357051682186455422072083742630576594863028689094175981486471123813315725771016475976353683461112830962778258450873202044380052716834469104556580534809531786447410666788364579861718948765227749935338809784374246107010162207446046476628310099584401784074214416392649324855031690792293314101200996862076763160747163604756091517339507316986840216744301232412724049530098639916525559540315317891001568311389315281213560225942174055287241087279649534742980597198750906742063523441797762262069073566677888897850357609110462295278454910786172770949374900641560070582453638163393547969503337566866113862722055073792130097671632095195245646120993958057287334435209649269124476416708221629238980204008713763876433150841785477643757347203491859192226318323684093726793267427303952324848626014218895425882307528451020466328110343758084548096027055116443528564786165505450814862478838053776150182426600131402081605339007998530044586947670035996119847579711373043088247233064193369093569764261564644766373346594948784498578252466310731033348832020313458419395023515972347138456495854489499215046256243307545824894391213998817831945281799091206627718048860315894525372752288019650395856907179254330589728138665057100897688757262875491674254956625820640071464767890603518357571741367569983708800782529402055859641418909066099122533131235512839315900830627715057425461759837655926398469334631881179917121710946187030481940847957528801608170103275315501714014326260737132392772984080586634290159054201508699494642628955960063038516051841088067677708540953563323199004883746579960789185401668333093180619263462003313984310216456118737859334555784810044072257634117890494401071269865302981076658343213720191809455390468248706018813036954872091679412367488556949752698313092914668121774995362565552609068289685605619702837425596810978187940285414490118768139547927470557912848673682198379701581864214524489844732925634817695909304194156803565969960715115739610893455869477128043927889051424203381364617290495908889177265075934982528628390765644028873234732435425619985739283512545111518684778431090197828270928009232354162400941805839848966929764224493837556291918814447213512450021243807571960763536002625860484008629986970238028725661868905131868972782839772321541038213805196741158612215897805385710867184877024573825411108249912770902913914118780248585400167821431758048694748693345713144086495187698930689657031215458291678758455272015158060772544084221028450240152256933825215357744724176725239574845133942766758600797180351856270909377564578660076711511601290802747361562744320123806452340224364698334909933085244010334860821842223455463787198827405275384371840694990709377227302272981017216741935222789773054646759705324608904830720302507324252289129103302717839238566566091939270801676409785703728705033798782807432306835403101070031487609738859257099025840788262032872009926295965312810586922711755627875061519450673007109444559655495904349287710092448721587791920723906030667001956632737512893788634002417139890020727477201767923176816611970596625911446155050284871751423688790769750470725602736975335109225100763611685363060994750915855602737109793652836371191446981592187126128093472604835822491409247252356746448832312813693493549463917827969400739770518344675884283876171658053712693049778945259543105456219040736470981222376464012451033582028888772343493000765257886550920109939931099807687721062408161261517938094946423522957383863018912042017722414374914073212532907528097183106797581654477772818226506698389686971536356144820278111292126054300125589360948724814764435654073095847028116078856203417874879175992538962824806466611261325053225147185869200270770343354925813971684444238766119499308046637191169233779955427859591546692291704247162816956814864086019452256832165603147689672802645959821405208301566126223930834109320533796678774149748148389140271685225619125722609715782447028542585923570610331097324076345568092707448478700505395676348338723785243895353044192349657640480579961210110532165493109823999237645789729572265384550567083204186336198821786057281261667364733918126199060891221724647662424401708801495758287337024585831208159100530097157591594259398830831119987796939037132252978032283837644800612547091715184539735120506258674711967872264345100188196494861511126070733347228010344274658335036714398524025637724622534819768226053839180397324758229006855049879022888444435473184008687640549095656882680080481975294961793806031284731021443563289652944489026811600497646847833985585389102091498481278017633794769524090202690440978295532845841521751876331018880051276700612081945393738054825764988095008182903499939386228523815786552968941894739393701322337928131239729786891974628785494100248973235036382279814079531998367924738390400217898294710842578087467407801092419099169955319922223186039152741606810277843084181992160539962713831897498991565476538991923059310401353981842047424857941226374554766258224297333896386628882019552639522205120823872469556683593619271925187096530455868579422099651326482601843451427341278991061282590775088040467021379301055765712383395165231593421392794368535041469603285718900765502516833330359715411331176498560802018622909803702163829921693225108393057859703928717310668046194263322863463877264201526335221715567215911169856234627261618381412996797411962652779151842492488065561431939274857319380535552102534544751086612431973263927967306799947478764973950793243929565317899390348313976348906257407379970203558563337336389859035040510070225715717829984863205997915248910845725851807542898512693502758970632040854735950304024472214561786128390183406558620658286208943713958056777632437633183774645935353786409072755363515445318330395945401803283225617097174405883931293749359231569412921168188816176540572113963122377020971744303982102187055305279076036231587983566878750866815498513992426557425318074444611585169594080435015230993340866700891448814233022186845572115472852203262644969682542797746346322284887469490983712239618160317008965520020799963602253184001358182111451438661376270518462009598249772883615626125620128548881855078436362095808466276289295622573114931697930374832510166601766967801619164871606598844298917147495936551578058076705476302199622499092225398729226232772781560026138482551786168107736168556618388681031203992970929011833335021395544986862648338594931193161757351632822652004492105581463829730810155875311093523037374549758871361487653341730677102244772517311125766153206116637162034240962014602456979394441558356788307486892798707849061907337712516963714242006842771903792572477384499764055044536872737389011735900240423574071417116689098559211383236090349089991225641287423475008287919740575171676765754415594568860045435376907394251886262547187875649995217975870907238689070031657819264952444060089869886731652176782172138518597999183737841668399995475813499114926673341388550154345262424177847814669058609464053645491127409223554755674872165391672700519749812992983977466730179861951660742689451176472528919277191559592210202908397445641890544227402137752644281929936092198631872892480344076765348244851043447188824533932274147136226064574622887972444766212805200573086811791687988024196217365948711171553885327352663023179427195819556018840287675613763756057498820311800713817635750880734587447601717582730898381285639427302323615328446371222891362256386953268475910953148911171667963787347836052060565425340759242769766063250693599364570266586015304938811249154842555023800855105621958300657428926195602818896061130402774028327410182516025423549534257871850066231828444510404977701661233301372834589950703250835795977982730463447347528503104739675306502126426714929005289269855614393769675630982017610834192335036947316473810639193050160421518991578980114984137185601350635099803730187279299507821005053259512759202753054741029496029140941274304294663243824110109084181051250889219608116138224100960959630644991309075702237717759388894644289382099502903835125291406579454643752679519769885863475763834385621736818405019575351482286218529381065874601260288953490242860990924880998389024319650474458194363395930307929387143284083372400671048614673838082017885418780830314741948146577313254884727709346210201883788731860792344747796868312436469048609901907329384373348308824736315715006916964569747143983726977533124989735292671682111743380031659896301142191475482875417466367215051270098660902181165086544170927069677110695810756891124254428873065816301026394916981358840688974635510071560990832993464682999715085394529361720204845618941023531750142529900786458077766817206198010469286671968062561387742333352862664636549297955591760179877894107328875657140314080524186014786178459409095277712315056633959538700901086927588437062223903136957241372119986966668954302594201578338625060890758461073955907372177947895240761247015871099696216902348985217470658290788786826564382301854263195773735461912149508172480957292105165358705668577351370099031466579533168560674815376019229804634779724740668999035886960618538668746026748515572873228229263570498033850553839644909067354411101090192482972361059229255867336312748845057211047719861140648197148285332729272596532134093999718929305208722791405164529310417834191271859233298624305751209174516090726403374758022031500968221479850707907094177378032914168550940213573721040684184244632933421750990764325174621587918187103817630737772347810891263347351620065399299035012714629009005998879520287302193066768642092384636349608767978255724345046926733173618864245982049347556238363083052385646121232791074221091018411265187299284681542064400122827491535122949533367487614731766508496084295872630263288239494525889658381962465064560412604689893518820356605918330144520767097909995963409988803223895497131336291698371966107228770197878419064466956990185460314746823140471942204277314320041391643726223579981320180672757358712878887784946408361721543929881604223495334384006315062508339446591057513310645385723799899312124612115119202408992723029312211740889434862235594251548896435928240754097349181187501999622187234533938150179675771912505046295235971246704404637201687891845822272117457141606782923887711340875349413988187635858141803053829156064726598931832210911676475415054827420120170884528790435986989384267676848714701240016512777911597296497891731534269137278548577953551946823922567432011440942970012864635036246001664544045940967371514589515964674786119060495567444166060958590795984661852226889459392998244738338428353497377788727528158009625104283762211667888510856783161819537597128022323939781267972181500102918679759163216487903258652961904789453566394874063946617502630547658271517640750209721002026574925348175589728866396362625244408432115777839086570930387057465371538605931489351988142603192214246768545466810282974202851215154670287217829238109834047791743616831473326639611362104277480380774116984506329375340365759208572115319703154802372712346683542918083971947251837729278013321309393989453196148277812750365142470375913628865092683568829012580064786727434703920655273258947634705768405055504206384127324885761550779260628970885296999893972172844587596423167012771147012783605913719864454406936463005274746735677350637628893849865775319559659595032638685662220279120457389793252756527712982614293509820803761987998587878762360507011678826131469649771793276402618052057728752092777894737571923953333793697093603180613410602161310195339134339622746654992008220409549470161823853634151449776699118368183754119522074504122580947342203262104555336315290013268779440208293311546067711556268118748371818139542422806481748688783311822900936551464711936019939520049980059690982567330942849999651015150084489529258232260700066015281185663199912670245632072692978977348527260713210207429884046268039493045872841196820040612848828500544752153989881655422370067323415750832878732973115191616098913046766850232167573246062503981117424743073615066779735331873965297334604923078108949026204579620985232419866074121000262932757823104970661832463712620910049836569570382266819096029454682437004930300388597797905848655627013215048545790482950186160224463026229324927907340646112568390111949078197764841090083659484210849836224754683566305091994291530452726120230747321360954816382431854023530458642178985459840403569659123782717797134949006368858733182495011995659508934775073437263973954835420238896144729275227413481126851871179602533920394812763831433644246429182700446384442986454647000342005921483828108595977467999656100743760781914239150196731104570678400192809092786177755439419572048273557109241721410487055376162835246770592969852267234934689593542573779745868534134467017723443513728831496602016999366080165277585986067520552055639487420992616927766254933270536067499293489351976811917331211133574159413459497921687231219849489214916694787135650539871910049505025064669807642794243740235143058976472117920059752086409751472361431659014595247237678758649943748101786692783028615630438471101405059938964677828569994019333629558733024828862818501160231722694948213519180974342644268456035672593350947886543487167625515652087652872489851654506663015156146244585641260131287021763523859624123492801206952700938449798614113207486888924021089673279356746286552608904710867265392584774254134117921453404597757892783113545511188287911858892502568840880562632279063336192037253125866802026283903463173412016873894292591757598078895661208963241194420628649326922409503831710982200934286330663605200075501840577327700432614636363568492735590821602483899074071148910148809039026546877888263972280723358038131543236714947965777176209080488731764142831689539404118436471301681309591347041911734942377009763179536158120982028019268016428697327125466155058957076761225653197617321238248771648539886545929951603057429491387476820283972833527681466805313517209270069715608715552389388382335165233644949174832290240393673807646809913321133252305334388535407270298791870858082836804542268012327373819684724902567187474772101362771804251219226637179921829945572177928837919135618639347576070394885278037594629942799402481609639333320197093106146649715050579182226814284027318888320403914696236454260569886270648013691372079233585079616653701022432112221281981984376772496466620298365914952588600885256197657662458610729006668588797623718235139929957707417345464214757964443142234834389699168940389500654961615035387777089254071409298923553378507030811147948716677388408374093497721850993586009480224063677698372509474183523515040520662111015805078440811961767227454401234139166726805000681890912176574375836524345043471831220178134443836921739907847389347858100072667501900369639304500458681792504997266478905472666429366476547224946013275222413747021548485604225484238085259258493669872115379398072632880203742221172709011579502733512854779592926329054213865623032832854545491357348979963721187432583215633110234237127182998697617784126989017757983349570680924817910334260473270484435332284945638862741885613615989716060187937395204985509157284156686452123023139035848577058263161870754731442033295925505776917192990715205862502794914344583246410122031845127675520596915289262530980390156220727156509814854605766571015068909783702294857527299852581426009850286370860351415317938980704529412996611932859534668694401875998904991493610654317399673772808153276514301896848120911740707613680541711326810070317333734445937251112251806993379294032496804358485567380314952277163675991952263372531823047700834161922882466523239823294581180938364941836936746194411551668772955829400120971596815529966957773184314845810748275249405402347565214726881689073998600712185802324978289340702771710270303211285585873428747153564796643328847404565941992042361386267659762201885418830361878467823958890208633060160192509482905382523966067736186346865602821016678637287832803760056642062628328238823587506040103022015998864719997476503137240048534313579309167917553401167301592400896686313438609913423084116532351554042325251493412496483667944426472224705077371847841725456660202132366077794968833206176162908136880602896567815523052046802600104739879378894715673766350846231688396948025744522437269535388107153553373518177604510434291412043261883071276098557539162615189707892412694351881131156047849332882820902247490010472315701787209803745932949993900576527698032527623127814198943703394670091907562415970382260050955703324561283519886381349939558952916789162003757793327786193798243069565816516871832375245562455228652179443559965856771054915884647182742860319889920725360267909398237692602488732419692724880563027460120959235757525230615029305722849730298072289845545386056799915085701234974736001662479710842761725043472336645430251668603127310666854275908330893822994069338110383948991146065007428952353018350021286274661695328560188696559350335907335879677390723237044299956225177267348000200716749112538571358271771349413080806153402616450780162350501073081349998482419283649927459886146424048119569599721853876592081421640683261626683972523746830143828532060889503736332006240745490237032290449006810180428307025787828212763388028637957674865276648769760836413273982609581697426264928144449019672721789848852147337564058955232826562317476554931214536560688324600260801282744543147379846099766824328170283331568984772902111700348355647920510204200724015077272928918371480332780516191624892445837936150477949654784774019279782024271301178734322688609058229054341716930921437847128668774305040502808256236726775897512821017623874903068602864813623526723646003707605428189745968618376710406530028595679492004585148838303639395281203743864274734540845715936122037364922910100315731757521517893600258602099849846451747735460855616583951420340833978366127201957125230619292545271999513827393113097401968499209808474757000971652324056766608392142866896981217397420333984394610969121274795168428974284690994218507675784234005070866312155752661850503856083381524509071309399107147783893517236986793746158609695395709642316454395600689131547074825878378661523429044831332377417148774323284910545532852918920937313473276987022239686812817150348594055140474756116896941865584089153487509869487469769226928620913790600378444600249918523931531447874501705876858423523903373360223240471379445017080319227842828214188445617398545838636227768825095171224938003338016097298013447941830823314007005396885038947400692061005407151616064908728990106264953264299139606343812923668313688144536848989427459094943682438031726041914962554350966835523345146901214417321174069670449839721998501664332860036160257069766111573456923530131634093615102299713221667901637077686011838109361532159929367464675678267246157980162789924260409968084577352765522046042091048212616928208569455134012846085609962637138083566741315174292898146685595239253293186729175629127938454403707872156389611249199061446727310397858840719709407313351719843950652752247476042339067165074352018776804591975383346560801272602376827757929276355621731986365689387283585459121102455874915547219773879664134847509387661961995569574012817320619444445566412838999332018803388857342142723176612128359558546984463018519656518221075353937289261717075382094198181644262057664172803843306422217102246764741838332335414415040185196441296227258261873262228713985571846092787204649168778372192054492177437577523273346469556053664255697860350517570770410053739848894291844307030885691380842389877578600145061107585740231447526744135908435810518649504128379378134864654292584306837205082690173873243804886352257425792601873752785346694531852161391716637908712720389603401028338335917259313542613531831973027554415736087727947332901745193869066546487517130470085368391859261017997822670197223589571385004188818833177109430755047874967817366906799020437392432609745080236535652935820381260765088891498573129009257085746355783192002371694979169144608344288115708856397618518824962003090926348392393713637325073339568169787530984358462517753338795683068154193389007365170255263089580630620506465669356566193318209429639228108213474601376405850299194517787210560665853624409658468714345681920208453574938697636256824630431464197099703704756186884897795233401430548641195114384119054798890325433967611020541785607260306522107945883064740532712576871284307774781741516743217766568376058475945919094630177988225059982337569307531627962285637355850202234937514602223158258247341667832265533742993923917508132676809268772239432881591752759827177905676526059008435991287471349774739224562173961951083200804203481147430150278408125161537957417084665534368917030719168799255220601235486190268637894195972847131669760266420945083355627676001300499036916679607571077507256768447854449372579062565527213135008504425363506178125696391657437913538634310664552709817600226486248960746489933430998033758745016421561065017282479999564930862074605746629888884018818863851750222968980632297202258104953891317742573331528277272077685050490445438615547494753379365458699056132035343076606461248923326842892076516133358913790382228295835251157166514278636972263042388044487101676147102412688736383167803794951461956542483701203236722122319575946439465125190242943646403139513675387804910167128337114014070107869200291921886950468854342526451253974753810769422252219441281299233479960287675120524669651205534915185344003044788070267614851363138393631702623436110260460090836347541838511295799892150237454883350319848122824831902430798679483773079628014691429790233493802706092201188276056672836300195508741676399145794458820915076009643546988937449440370069084814164004192407801159943043059204058184780325265417416501584213234131836996418450156031136897998169756182737612358294211339983452215470688964492988041527778690900620659434328114807676470928672739705215860758147428331104072256710129524524371004108163737779141573131930434160916358538925919873474854477179401044049220025761412389097445301634948604904954686488323075450549716637966779460808457236011443384693715324677424806041217339527294684595035200125595148343338773078857360306810796917160935533194408789979579745102081450621500356207086855978515981838857594413542654566585752685771891788140073796537768679409711352195658963867733967655029894519196633603153397829631470059139268389571819279431360117632559806216121951688422530505555148333291862475486241905070078761504613889024192588816506119889553418216021318342562611203200507855341556664404555927172608082640559764280164931778234461387008769634136617087633174185898882217749928048043310440300147961875374438380473307133998941507833450085319286287018956095643359311317283333207172186751031817320359134450742834866272427773855452631456210707945236943975407758442565391757901729574677073168888953501746339678636753509394755060923474918234927495321006028906160001727137769352033645966629302197785513881543968754194484632519726248583735340144360513591988770426417824768889980984624927176614085064539976741652433305759156195437711576338152679723948856497030560900914865497661560400952044251519090058753035713626103069839406056442343386662086789945244680262065834910978804501306750870777612745248110924800867397015460958559726822763560930849385380951019045316235384182676601325324527864917803389027088494869223876579276010066137875467896298332004662973218929547487613866251822351668288277590566867330124797522637992480759506664882995915446910508314173158396363339293006697768466254424855086197387581301561046837649664517968312413922909490480796507970789763141189250198900798613050367809456308416831078627563707977121566762337468260474970031640288285617352825309435867398943943076265746424326442189125606152891455468557831799652635735692350830393822752564788204317129813867512909475210505827732982956981813085271283997245750455242374001276598889401280474279727960250376984608262998146162201261265245810667459320164634974107339975884144512543678667569119164889441413017928208359305092873323001675503140188024716525327325284181411953781313116194557792027841285201829229703157439057188127455243647947375458668780605020997184544579355618887310146606642202150128123389093312146902516590455093623943382477522408717476466523163659800421811087752097947165643304501630711569339230314828352863009195395907149110520995179687759210786410784415970641775813086557002775435732863801313736319618595049797159398062682872955367716987788518626236720812265164956064641845343937027766026123703428336101777979580772916808337716477936603076195275266539026975407310621726528088366463208290588314469701140827306985284372524644215654606215347120375060275336701192908562962905779225181717080505295369305415497123461488801949199545863108254777233563267843942664010813021331091869204759765750979868487210619557959768868124496336001572517368329726406710664578330487555025497522583644499846998986179667823824370415195818490084227592649648014651746911092873219555102211307520290149963094290050269874922943987291830578774549189838071660388054968275425892814188811591312345244441676116111588092745131095955336937484325238091462130281963234086840499801896793540063611686125948031749434407266649020657860902079047797405243919629442114467058773517016790949828250421025359291200369630155914646354483789694063957311661684473892567747045593636308778929351709806347832346694183984822206748890909329043734082222060058392447908378606489225925811051993824656547308363039184027343005545090440003548977507878921235137610446192898287735231757078964056689051206253107163807196599233079003356452565199802335021189960736901881701539654674914248135663134241840425481271498141679167170621142955381946257952603595196667235313041251277473115462576267861822018711054639645627184854031288375845280631411314439339827708596069304111963898816400621457723380051403609457339305916918184817860247620672321265905226070663950267268611942859256253102599955108415598642537716702539972480239041758648698596450301437067926622330263131108628432280832097940070249656492696902503576399952797899888052050012974652534658819750073408363551914037478498169544057275638153281377045189157792714543850488350126742270694611144815477545592899115053691839345202492698955688593135407966137417741822844532426636585167724291632146003496391552000395575181010057933238476225816711052846821869047730651248725941813587552575828398549826433688895793333979051671270156984838413619430329620396954492764883530620800604002660407757639306127285060670508848327103494831392644538529617334462405176753455718146752308547027467659446071897356188377758813244875667599192285339118715548099623000148863743284921723332241767364120561739692373058239751816747986272676815648069853334720870037449401483624278734750784710118367038075050051616760544377834679740570093032991826260937787192754009633769680682861607713598446748442238986941952000327926588107651701947093024717198727100691992064369716337876582215174843127907566422218932238934501807874383459258023136603806068684821826501271323135538537088200981579028485077895586290513541374314655826167623310753206085437052915206162977562997524724859324783908970095348092582690140228009609994050733378051522778350074484269253236358733454153618639759594611967179810485817498097168145328722296762953581320616099574422069573402032296416192740803086990789625179530322189339966308360544990522081243463034357372633742319062865243482496576933343283512588116067199985224764270326143803391183671253757666408408164887065502221090467394281576259598482058167457975468593106194384093273026379794015921186927149553617665121636650996609492047195543768018872528573779762944552428810245712039705952260775787181003871459545128354722412137098177075027983034021770266061825394566899242884012123715733340589083047179695518547073272632640179743761018664293676630710799076378025249775021553609261087199505052807030754601487624687573143422628789206665466593794567745116271882436929161443361695829077151398037756204338027817416203286028810196520886907810513097044672902138309019311431879021253584520608622537615684906599697027334285183039411910315798809843418557941173432697269698420499386479795853765733593840745334763994481692135441751494614324693816613952368782251087693220045434295405673464473910744256110061044713768144606307782098704850863083658772103383644535857442489528546321407855353078353764863468540522037391968689890559525737511035219930011640454324229407091675407182916265683929746961186174878244789253987671541155902395244882553505620062246940059459846722919458831894195915395926784590242810152103839328686124873552668719280684093945961161892858711292444492947445134200579887591956903261416773793292101818272582039162847425483706849293847886049464384732865230231209561317270962580511046299109594164906977818600666711053526995569627389649531645993667391905338536982193698367537966646425289052026733685334065188527996397987010802741287563016608312068168764615678020410138739407117217722294779914365987139993251417190612868907340829857198558764374348136633803791148125247985409402896978368127497697167713563791325507810774408018516153368695749095798262754259939491378534758625804860829370264963600642352400491177489367677466921032325045089584976780421660538147238014429331122896845607338202810117830297269987977502129519188753530800145163086577867903063617561505091786725791608317711613147881062577416580598704964677625600094489526554733054771550571773300720395723705448819960961397211573352638647174749023457127488694085775434194229690105097368690819839716887666455582423626075497257640026733956459927100405983727017809841859518495457212068051137000365109853900533139615425796543846119033473265278082228846632298151915428430991192528119238368774442826259583999163561119639295636347265948507519294614463614944158864100101234582351205649445095452014025086232411574306212428145765914813944573431321820270870975292416416262068188637017854530134909913000625102177718786317398939762621163350525891766050969545833584397918345020156286006346251935138262385672173754435257875101468945842191117669834502689321103421475027167565390216382900972262417705673678968688266263748431921193487678691284513218000539402975083558090223129184402957385833432909638777837192503778852091668978849721412355989803589612310443938100239053020230721515065413126485560804442820564297792368646962861131388577350700011827648147584522351497283344301261187250789030164670681743870788938883521309984361513952108021872680813863823817904836183373885639675937935230362778999779153561086934542276036899703823328661994354467969322734964609517520897866312985113757831851621863532304461798814135040694695114850968969032684929114969705200411426199099218313575484335632391113841028742139829416372758907248946012275002235836723784442114927114064923045693201561532262522287048538665685278753989900237831042910660775825082628696069087355566415835517353719725491306603112344587849357499891532917149700315327651987745939543579030754531866144261536576615654035124432946972425561822952905838989462639445278052513354481136958293375257308164106271797466677871862292430161046579763360564731186545713808142808041405464988388612708893453053264374165112309587243951355938892139102052833958628177551221498865271433893814252722719751258788557193512793722157691619196527440612807210712569088014816665687014317810891584490772031053824649453328674443678333926114314283691587846673213414089188133186571481320870925779557441511075328437373910713656979405065401378575464671250217720887643164117997603693065864117460900777443985011267860723691198457375659817914726783299684945305285904917452926205844286357305886437238387741774806056974305475049156155399353145904147516800032169266342793480671975884034209280002716939659071999732306269974273615254742700706462627131722195230561315955047766329610948398144970872271037964444057745968713643195449050135826895974024435858035260669634027842948933013398666194380937498854379682261990845802240794365154434526491830211559271691184581966550937881320315047185095996443913003137045444029382174389078349270641192684593930654550226780496678193986095936862589015921964996046527091422509536860209759369513125032233820822952647513226501959699824381946747505779422555705214724907997737773462555011345952339913833907689029204614852566547235232427182678233497945074997799120907806004435698031547004641404111032752929583386062330268215620600535282775635886739396032742487692340530390662868507966772499989540166976731460224861893071302782822378190147875517857151228359986990587649193466962778064426502716695861229432533881111095412464534719276805559074705421781928020217655829909521842742982004492911013014770055806208649318094051211618255813136909419009234863474131364970249639925575360331841347684125844371881824009922945891417319470374216282881135565823595809014050714206858210572159733297615501228839034250953443118238405767395654345465468339924593575355412003389111198070754502321107914068522385044074746767462887357878293825793526086973270836369409920373184561432368252412627754438717375204861699914180062351199297781449536464711343689392578325200602857915680566145002429966237974275129188994525215865881155352366409032375239136422973259733739737051863698838437252890504342795862106570661961772026486842786005253218262825932094092447927872869610398644060334270102305051519872032614725128222710912311544378880376937345885064122374236791793108122826814800757917060124259843955838244430278669265955577198306885260674387877049497672977291849004959779703943635404027679345836108375078050125407860313070904079661918197719432872619133447402854947183954572958785239275799053653708561106637060930359315589186941136289030383559858835121573888768903956531106303743377813533465080011037321539808670804775817012997091374952305814438719597098455030074232875922596202791179396624026909052365601750494921860519299873730711133161831223406203654193229146586776582919633380191722271773112403733983021188537218837610481202184115869601929978018047358748549570101550972164759227368322393257406600044498091872600746207413095248241599355413583166178955584098031643215514728950728437295028707386425377858964403127871252144153073002279113295135190136967380506191344201532743186462782398435063212941498479348139255356809668747958873215372452579396384496220913683491704166210792782898063780798067939595664792581460853089366145713175501549914207469274657643400757966280648205993738084140590054266717527202886047750209451968983479862856760351348872011436320374248689864557933203533577885055729918787424616456974916266492074003214070286193137052070037996169311934114853488834467903250737420112940964272142501547097139559037400481209717498870761474811901610908524652731774087517271723199766653483471467011364702436760274054685820633368972405490665302907628151330027859366267247288867212830787487840511576536760413339928587165984677399224276427268913130751705913446719693628169296045207746288635940590317530673048624879087410270762446210783728719017303401377615816217248681951765054817342041602301422762835695034955980541942721403911684985326320187181085415098744846466500375024853277557916065823052274475161751083016575526170018092593001372973459734958818571325686565251806779145918458271172094553986105129244661410522362027297600749938735705319968808562618605395834214750134113528766626067351528486328457319202707372459781676031876297761182437113980486019395055018237937109424313110178608240783901394002686471627234579748295716095557970417634783782369181198814277060311688023442036025771600830982493327661711317344773559045569655905235946986311747821210489138797534266483599101328553553121588239427442447085428861309611064236572150885126350038878092005691613068118987811143473287979915099654186956384590100577833505956904209553447635903788929936027468493213966097215288253035245645834522724816031931481405001791625127271273104151231226303951445586823905005827057934640181647361317579046412510739968193099980549374349864357416763064122994862844634582029683313729707543564385358165789815719378299643400542543143685747485434458658641485591483352641433250608300837123948122877415404987791536613988183600747384918251902784014309211322730558358587136096019932919621030313098122574448835675815505752975121966356793018783742999448583607578895333496869893553857444417053894782762951453469515341471979522583234615884186796113466858267672237714764567271222054675260308771514326539843916004530433918355057339725193415827929274962841447532907329639131563945252541533073131755793602713489539460717367254188690271316703344295236253431808528636339412409622910526796689219979635659834989896653097916867527894073972586732089128364620155680424615424761046737076859545157092779306233103734442421043715986582613066240713289763170349085480780089431083569153101082427287610201334153418506364249139812950130510003892635548364409893360608653532017035853187073475357489166996683527735391807422644873666246185288111094989368122592897458268899733781166703708437699891235517485582273321687341693250419280082927703776208984093735860414321133670768635869923676749690952723794559713081834362843267126151487436011188691516749094420009401641763405578276846627378517257081235501018540814351499175776020081500238063297806637031947854354679922817314442527911425077944619123368997937090736066276330238405008874938834336629165920424775872879993308324096944637690232173128127511878879860498128856518339499904304002941016595227119341434560131833177165628389812296110221312881643033798439265429260947617745062485218346025319869667751877077368698023764193909200824521759064053457342113028251540765946930256250689655413683050204304553767912772939597297492595641725345337986853736492797527832168469704780369319615476246621115471260819315901024595286955147125479280019974251215950799783844936959717893952689235623491794127433208607451094005820045888334719030011419095986808211792730436835776257517593235643608985964799900874422976785932431610344778989732831628114267518899409254219619860940217173347812182706242075601298124935900141556772143434303364406987067527246904091641823037800098882176924421294408742597012309248368022556461652318605900629870223610285206490800419234381856452714304028559919320862882714228086928212703430961729058603352779486439074924053868192528331544100132379575768745357955220658170419393352160168185763476417855420022515817938559998992879637936455563944231579346677926807341995931944137692004227846541491846727338052477980121671032683765959834230108374430088816311043162745766235448270818848058380316453381287588254018831204755398382871226653559332587546580637877901489346164057929572659463936980247239919714505185645502019872525883041911201349061532204438553100140232930657020253424724142456525669421384266017623434547143931474242681953821239653192924386442829470236305073341196913588562669015901278204164340717506466716602576363683576377707776086062215893999850637238898985165492383059959488312692366409715231596366186857419145226449574810952919135608534862098239715629154538144343872442950619270127419382868847715928178168170068307695764238946433332701265104559721104072119686915081737378084393947362577288750884626156066091141974878025816013480770203410334318370160151420663621940592263803333663673106670476322639648872707104480604501255175530203780071855497454873975649876880582640472759998876120877248818354710392053364797574374078501731165479801741591725915891060980873900573616646359737916400199121147390876420064574652981923075949083774641125408518051384320473070989198650968446720747779277448528091884338503829404619430197873613496365038872588612704672028094499431879803096833829180140271356256285668868761071942602046224705395712669746700479071031436820296536008249047618090871987621547212007285928825000789303506893346255059497533619184524471664569774436108458926737352000042778270456061843110808006221453680463650731383781660238660586168433613996428416291287297745124794377801188083127005028063207177399281772128976510284235544948722040946530984997099966606654582373703605184838293894378361523789348596169315727186889613002425543925498723375219123398110543962167607917594520132505876329855794115171964037994973474091021256266697732410394827902242853924707888145404561386655058237443418120368693701919263464741044349855453797506011075316489150913566794297076720541754750317518492999542728179573788087702115052809166102418835120769285210661994466794717018769426602220026015580428139028861355915643710852463169482925997712613386290288184739885601884781226306808384256518050451239121991147352163218284549479650698290305878686718884210679276502796319772647354775825297667968109234036925705865956006494020229521907455360939483309236591038398900942055283288131129792189371158568123433268427467992376924577523305493640581251204195839661264656587021457617211417450590406491973790940616226265742271112187469614161855735177781986472793043206479927763039864053160987233850740441705109949390851351705803205296841141724236409997876902023554766207995575797226346627022510214937160308913917767988106531454238229139119536568916456104902238287845117613443941148319905692249863602383125275516878420953605592857688162025238710996737215709175902746300186209449402240929038210795278422402545916854515394600643873259643350277648680203202993788919497443160002714156921077882434377693101763017544881630516676862194831300461733345841711880776742105738771813718013248570921117642056053636213708814372023677423759967509218851326780436764273532253190182307533700018807853367044523174731536380788107338790012268234999297567723811481102506032076192891254903666820497909715639158038518056008924396360195020576504489211092355422714300868039849248927813822775662145511625670232136432602719880712905342021535577056548955724804826387309583468528585484343015955133088938294022245786201142309940747209259368780240350049278564695595419676634394136436686546060903183087903555394696688093882195958632087851262567746944118922052013796380760172574148510385564861464255060249619004432244127527560768692764861803504812065350120833287528875938164919055177371900408771284230495403098752951379441642211958253005427212985014622585142636343618396736985322542465096383627894448935050331262662611912739519722429435445726982596967331044342457955308865197310497976830917268751944075311026128255716733273933100288547330785123156609845554690880624801108630372770103364780728982510920855919416791857242429494116406084535875741902138225657065769124797346764136730261447397870370772298589367776422804524345900062610488441239412924242472621509012672148386160730856058093017753958620721904957105580541768558169075009601741801746669982036671844843350991857413551072618154455770954525822004826901856140320857994023904029519510599451353503124303072915615835134884603361750657368045503602897939761521780007807025683721622459409211875295949683283751385689202349402969951998377743052029877068212374076123056243856978411881588704463992381438749399587209868210140554311767362245748767292106770345834428735306056647643887023281917215631538446397759458949492551573794183087456440288493564115802672167834414610699361980705740160451732261607074417225934840318500688608694257924580397536387769818091946481375790065644927250758494041485084849220426766238935215254127324846587801909215388309422640181173473271457243350539360557147226718477339427058380505542284186246845825574831398705002408596022525040718069159508190189703749190496905766262207093640890706658518450184845526037610967860041410442204294924385739591466101707363631386858054449909572865625185178410271569209434044334236776921890373835704145023493837769551956467488838511783076364257927361014901043896148942669464840463380592023107214641116502617289556758534246444140651768771933566336050046556689760936901918446425664487188399422606666018695471170933101940887593803178650500111156317791992562021191922157428172769105788006519302308603784326793440165500567915650121115510952095023237143869218206832575325343579548718695706631257691346968725091015180481915718710572734574968648285869360358742075793384795749304585032619304929490681077260187083060866101030390676860225705339105146346985222791728633294904084311084227130006206572459718093154793696095479851765934332878893692225833169561261005235838874956089547641201170460063328985089210279338266295620858531414696168167312956549010681832300567318413510095137243392809160485182665874583132155648797222827137221635854608381105869573369315067044881392410622271600572199609319017833670730249869980975171372360582039240791034053199882204701184955540453643864917667084892487295527321335353614225823901312887454353325566605505410965619466037130179022888735237073318340963136015476652721295233077184765407890725959213488516037061369273217178701684887018518816928125787638061413071964099216157537147289313807876812614191791466707642259907760731248273700791238790195005378285107228641050184859465298545598505536499070766804321019295726837854890687128735722911484801281176606363575210781988690744559470119064235719175341823081969117856551770133947127716100345625553283048576971803379113028951578578409965443954287446866786564573529709160887406559522623901219175445759742812159981544854647701367567698627506078118849173628187022852395988085799908514653184312134147716833198402754343014134900649174161675889315515411480787729113348659148513170322935542102721152801578846589532517923321741927195230795572729755270988413546386816458536921470735402185070646524955696220512512637775753250277781380934927351758549999400395647234038879187092613456078204776023094463921715894989769196277156744524597798623645897360179088066784021019856291507982963119799695409118920877358291713680065242692742395485275572451460269356117346376567807715650783961952912984073916060051125418916889022384287936736909837559047261119168529127127690467813063141897087744205073311830604005482161382376001900788227285013331928617338406070339837838168372040957271535988515570124849869709058020258001186585670207117382711511120109889440956318143564611775817997813393849488124230225628288284438022507716761120695307749467824853941591634876273041949602072991449368748699278427047251328418574287049973234969373436745419276081158932767287393213370904359356847969219741844021398874918017846537593928605710420733864058567782248773115318020173007339314533310195899165416753708446890965864971204871098443105788622218817264129052985263225105108561034205531957398857085173016729069452435160367322861938945825745873158227363571546111048869413474973561115363131670073354351981954872941709575708146389538736345027284900351144883928611792842948895067996181099539605182167828135133592382254169195129580807117019237285286061838243760845890014273123647483563099313652297033213401960881587872521674113512240740717371809732269765827295024407083330353813752625746942676090779158405779858134740787654765274248541718737302974569324302356007968037057872189134224691536226836309270040172672757042312283867615247820084870511693074583900109153340336633798460112589006637711381996604718045031792967629232865183879613346849174729662699814187694376713215553879924594921912068643772302220280126811717162538464681066493574294495308248177765314706787052502832343828662563333128147643419635249734193104855750313608695890898438611850577038417615566631482774866529473655181217518966375903648230551615224629622161503220958649075123514438921397944795635475325010931180210105281810837137618544368189360598488289677110643463218389136821082935296575244328308875496472812500491065686008824285133893894627611513544079364730408988491733062889452890519021213360569928366274463938832533012844633766737632898470018905292931307280778923716063260870704728136118697361593536277215256311608834034802009346060477695475917097481473696565483920222046259006976096531059999530146524962179818219947556459104372789621110410741542134134454129791543010138423865239067833505011906061212011090166801804832580609274073067409015371840331710198012579061762955338547993473378331933988117775032396312679155330175559669468638682882687463415816710184994171597200059451266974122643542229714235691776416865783843708407090236346056241580461596492403474534151588283555618195765147987957447171923927898718048236471774744223553749276431915803571139341626008059630879943630820691607892141699870626969092044930693758600645564643805943409223361025364251625379790629080510362256480713708037460860291761496502911614217861876835224915711786669708237637130369526004833410722976578086139947836884731427970598599582565924597315251546651942597096148987507301716717246429935529483532607297670474169567193717071528925235209622184757420782591035336907436344136239451971564005228889163633649845857435091312158987251408244981916526748985374473947349549339417646310728723429015462934810103576807218615900508819544595665987977328220717803267060818291716186327090446963922284520814359931768763628985989849994605794608272638709578826288443145514489006700546068457266472078080067727544065841237460608392899888238275717769202616051183070080493844266543420667837226336775387440806699686377261882751728165774573865560635191782004649460692501927764853376326358552848387716614214109968407338954715512069901015886091115693470447289041036401032202655388508003071784618156738665236541502002321062300388872800150300178766246150032125443631640142299529747010708012987449165275614069905528673038335807849650507927154695872936242178653315259881318555239617363887822745544644977650497993956019486832075627423634027492992953187189350176791621176438798708138272471677349590845704563921778475819465604349149617567528025021941078907486713318944844457167028264903241395723114093170455929043079848500027618019632765377089425541584575327700104815934343659009592931441409679378570869661238176369748498590024871409280459522197492854214203979782167578218707854258758527729732475638610497358436713518823287515398389431586930426232983261855701731934298841476338241167370163370294334155385267281456595805460966693576854653249797850270510693517352233255945961533252105342636868785092753218508037694709253341258339045421696087955545934111282775958750420526739630644023047748126937863887884159084969083143244590355628301177212776114762411553713353584924516884083860594787128582528174481742616579568390708131128126873005933636497899503053613069259565458029626411648655203248793190640748112399162910540511998202136155633099046488138100540874860170032224561703898036134063889151011407804531899641159892057229131250973084806994750757083332210512180745448340046135264183461852692100507182721703139374462051360009406594652610659900884204347036793530935567315380946230261203149996121712175871262942149670824220503143653825108705688263322114850566087725452839682303914456656670576972583777793501810761431792992245396985520080754103414965904525613679963205565945565364422667051548585070146506714001779712299350286581583983828462843607069949745432672676334928398460016464835800314120850484722863007060638645445116242641249288881299384113696110343407320593340978303398107745177075430631012246750584330310628125872124789881258172205714691623463550039936871572007338852779693124131997408208618598677440854377338261883379380225389796108763006319301150665997124610648444471018994163059611491751121322432339162192440483886897682638749518676194821417652363826341140062392540411506149072264018459294607369515467065872743289465383812698760883869539032650554286810899385998420428815950658473537844258872854759339077767988408021340556056001053173951686866038301570357974852330027495846994197507285703310972510256361832691325412687072848636674119940334982836099226805369294819205001581170947283625243279064862365815715601698813100287088881645626855031012752539497318256336635352191164485530872701877568146970308487666500510275143875116307484296057474012869543368771908409518054144395055204828137670683832161079783197020957157854089951477711461886636021541904995684892372513863451139972021095638465558752956267810326442158126314456549716882345396720531729554869888367205442834005094116616291841899918260530550482343313214422841524514704055516187676158452984286090182685922727074247494655597707995425172411122995777637243847552168160976030588700321399829749866563795624315592812032868020433752995903191004358814970686394124033169797693080174929515562620932266018461450804011944941633965559435760066803098910007159932634530638509729649448811245622700800203225834687658630802792329362594868125629495187308272890350513648270002745297060581850548898112052567900086479252223774072521603935539823861874409596543507402331229451258877565814575336386738493999945033971764166699844350593285660024881580454048458992427262528683543398913954873909821609607339359729176805779447099726950241622311417674593983674056990274821828652948845874015613720727495579481562935704336629764497231902803934577444172919468286858538851811096404732673550865838741616639467065673782662610022663641363596891944555220219845482902284829199797406461037713317821522677527354312696882894375826579411435928782613395272757998574189775304836031203070423576209277557692769732391633731192844097915813205696135627397521010791698432414666642396822126699760755278114288180902770733326462211882176782370536799075249600896910064772075437766683432651556905527798576521790863180258282951440167063220609384941950155243631479288570981284825501018912490013781262776543207348445586746746963530897717183123894770123706204742637498492610969401567042571712463635109010837999072404927779415110340448269218050037997114952775871132325228413960674499279886244620278208600652661481307298422838301845621407286443727573666931729447832029832958682040285956962681867116198670357780956106829479759305634733739744863402235035682233431088390658407228980666852982708887112063509122718651915449470477095743926410700124000265485879571945999565091184697892132085704435776821971598521192409926781407783389929276847198599254764485046695543474938890319169039471338678156410519400126068649919902746118693545069576814495939562505801410415595104194883677849097824078097132210627579345725573109237203455229230372123582292069836575831797838981592500388387592035297284027384615377857571647183449977668686897054870472846091957670175613522991616431913190416764795596509386835587128461964040936419518076099609686010234312008333095794261834747532842627814866239871513439663647280291649565383403154345124594239215111390638487277076419978347175898452607729821348855648669413573881195057324874471860504837062861823903319416146574949723163879644881573426597120198795368020911577443615022412445920338336906276124156312537927407069018335138279179942353101155987501773918824443490588193841207023080667400589591160453271355452890599478569358199976493292544639585036874883392795524341461774547785026119733061582955150778724012107303585069426092443538039023733244663692106466089872884177959218048358456618541170428142601910562077612272476738328398722489026539262956580631130303537395135778014873922170288588626480673137647337246656905186267437050369803046385086441847504221468519460086543500694783204617000023122143280963988364109010801065111506725472898095833971902679664344895254802796614598715070662103050177374544578842577787779065903231120788022061138589179842304774015558523276106302217746201650319380753978846792930476011400589490101739881898100817940214829339546566220427498841144445849670494075259689254468278336183246555649712074129682532068759354568930413669511938510487426828576693228992203697296700988406220982857038817529914992378369509203071900742052029514788866257555247058920323607400285813753227124187688342838527656276602581659129349941982157615222767804888504008729994076701581442218029887369210268353330810925678935102562038447245261723149507204532557719944348997648130786312638201453508994749617110690859916585468599498694771393178345753436207887618302249364256468036026159518998782270237630127896312945861081626869027616837233661369732383292713524390999607829434538558222625410079071237350924400240977032603762043567092865508089209194783419585691581930979856822316387758558668874920498536196151795818874085025085706546861081062914863436286675622677081615399563219375387360288150038951247023961915621054050301438768458716809983738123748986850676035877857144614802445031778137088253051547743849198111181542481311102854304579415028443355350888005893399074647025101629756717096109241113767049653872626319819311820773968645044709084636682138269027975261879923330985442735214171478597688350607019699582221158806939419030809098445185730271069582739001829532896577617190750225429642474921071819058833913500903010887995876243103177146808429368674402642990106084086035838567087011041184872262819704830813689993482012500510765899382900302301112245547123618927647115218651564731849436425456690484131335255764673975151568303189403818670081064478569873852282249877530059589436676800229991122754388355014312511265489719181191089746303646091502587544813216859021504149448400491237111348152057709278440731988921855274868148334662447333167676491331080054929253261906623704385351268505634539563858432640514129265062618784640109495532434862994549874993981691504992868905383169250667903330597098280646631205374396415946566417714065964946276598845830828185760576219657902259081506497511650206084157054071935560836668659086358926065085165210869777249429145338969411224258052979164183699723906910091559976819692503674489145472307085633301188431386262795339128067662157650969049342475484817336427658738430757459342231897118493251349433772286352832142387227269355331046719022730355600982590477371908780099247273412186548686887216680697129115103765638512478801684344332023500267389579035102819849028005832612223024727747399255403932715266935941379251489913023433472760539317437973526524582024496202258433067552170460066848086625844597798547617138541864339806474877939424639279641052980606325126189140111788288155800707959428208369915813911297127222922517991733793072420531517149533764463440593179873814823092761895072110694813401606999376330536003098549712065405906402165413144990929734794025506655697104849363361097443915339958321877790069644402077259262927591429347953347699326884343698565904880160978325778736086196102419549036869449613611468890454583225820997666325420140893222909020977993567209017889164879264987295463419756475612636855057208136685147518221071334372872048858974783146759123321499503271253903931374904934346952239037378698152745826120185548460674811390178633042279499979289644604821365983295609516584927314905002600526193532031267852971516618668585588641128758513035925358450755553028813109710702318088902767751038424904141131596760776947488024906854739734384367601598974197581177005544464507805873016609104274901468676615732201517388423011835978293916366079137073501053246414551637392002205605565896671886936910354110607223821505092720393319911812362976026408669661408309632786394646093776964332588111188045258830524464483007219419085096778749439839423367002605224589937095642695478014552655682986390236214972237286780600154471702243908749908544858611822498306115860012258541376425864512039978154246255092576539811278096464514225620712781456766855205252246573924311191213970910701051658932465277672090874824781412136775488394069823478211079115883385068326336195958640617679519349868117175062942775651507418599620156369557269903542337279628706717277590253327005903148150300619872167833085183393838648972636392909925363326767601991933528061974487470615300465130910732920791688242384332094229873440911148261409276013036745761096822006620248210413662666404901081922194523726735518078921511274621370923251190295094813443847034762924335793804029747277729555412782928545756219499071554185947290803898642740678053825273603519811470188499781024301171872456047608924999189129621274256305995923087280909137498900950379239913520514479745184253643240878107568685740295368738900219392147608820902656635137187701710483911366171859207020792900542294631279664951239121665073382381389639501484703253327199161794555096812760067059373545776942757560799001068692343466645404756307706894017936694540027774614524940581480736670279454570953483674928611732154850077225205726599641260334367083484033690749007149818931189457534948615547561897451068623940340559048053017335190456841693800972511862020509490312568234659159471708445622561406534502486070662130665558417662865271413232844323447691267307889915345995782497713636213917312819091503887369791207426889624377218467196167204041645386627610823224153346523153570493702525913284524353939852206090457393457271418494614961264393295084677297371299593355933879902911456246656922019689561740718289214431001209501472207579480272912125258291533225136415172975959464754744637386055510667115334668762159614753017651807063018134657812084340207970754163158912340310542668603136916606852565976326345694022090695584853261526198590335952416329221539193221990307968092764383715901624619546447434036772631491120352318223231141084276612858637524026432391522176822515262735403560979823485672812087878171709582891966418176438370930491289836775164589076741905347681732230301923245215261115511967154547109394027822646353522487451222553585895312511204769951655064693984045965475229711695799378639856946272899672963963696689396188424615967313219745554253317173213238818260962232260483327671447303209195919665079137541223112196458503418343468987862187272296278999192598670513798518929176283431316581007575881841908502399515594635062051275216818447661549583432733201259660496159862320616877982935691042148857896666001639470405618468344277831117947942406889673912024779641975207829973273639024953681808998347919961819964385793940941411673260726718637050244205319429144899041014394535339529059112247416643126275400045320194157886185387550038105723699372156927046190771252217142750814794282147739396312714098208795806348206854709712556818471176641988638573235639898103227103200924163183550956155388001216722817071483412122243301524365586360816642039435841921824292328837811993872874317161441005661286410098343344308246595410587771563253178723626730567092506007844130754215325028743830807851812149962922683535692570904016998133248195243936377745966268709546618115124924488364265926050229042279748601311336856409237790396761419453008578487850944905464062997398746349287326405980752164874719155184688904522842473962007240230166228813631763211685453876602817903798345937143819261972633111729305504157254080662810116326079116861813077341692393469997262412517852324431208686061573059098422976088482734147040773510473440938880159687212731991617726032259718724500411687158429602348162618027729438677936827494511518960257684044497995281145758193325173720247740303902685584631997007002230196764503274579269732577252009289906923007002961561916884595452668458492555609175790679918455597497327949538053812147516495798391045312959332141585556314023358665793490639817106775960145393860658594241467517593231252330276753859233326099457413697997597238969605982445404500977744975079412707061479952683260606619313799353902184076689530339732598781699970691854550721749414082842608227505525783369263669584157938791275354692137129905817050712120355869634188221435328198325006107748141067167849065640103204425353531461128188853783319272003931371477442287596379271150711417223153419760528744527822264637645313512257233874062674339607672234459074765155335454918618423773800834587303783878145418429068135831446088918517513573523071269309257843250513931563036137212331605105543318383100606405616784763352878662899579410844701677868599629950014603578697948000613181810143427509304490760683300601728550928825317785666185209340892160856817547573981570224323347693953501369498427005146564604207953582972727865801896632128664994102903575776599373540801013012580298868670568085990085249110512788624033647957378312819574820626790799941017297845486320616714083604949782352522246218265015196807231997907279059215826129507798334577739921240750727492123302940010126908570790304212416278687764674482685849400692323230200111502469324339634078492973680176198111651227006438946930795054668895048564963083987179631685398451542414988614386549663536989692868975705980971283612462792457571634598084110681773072168100850712294520739474041341496131207657187116005355275649091140366204920676707863812730649926778099240453242318869214751582897388191565085695398134225801110456917874744628472264781040839562235295448124797576346973065247153945408262456028244613241195579750202087321246748301905278648163493705218882437787880563226367061056532969187007276941507690425685624176763878738268854250463606790914210818675318899646767798689432540823660555597652138186392391857365583094520971012424313785817959834738996711082795967400112268805805337311231463347656364388729186553314487990806014496211026443148623685545283393147724556796966563205280185535057565329081597122886347827865935975060671132911465193954673913530539508483114991236827157520498139534376357020737767400097718133201976014934014058989617827470594455712838368063559028044327178582350577403135531809191597760873687658440940750905081049471722829794834289809478282721892171577777043266836599718043584188537492305177488924539851593002091307345902573411832856245068218825729798235959418113584745430892241487702949431320218997116979287008388619985560462748046793020320637708142480707968374106677015628244216837425984270973840413219368830801743205125509444941244654170549250500826781229403867652378419213585187217010962214487210506316366012500544382741878495216882503970215461957677096707342965314793435038243604645327991518160763834057341592681789807574725102324370607671959147773335487198271235734597933426765928607977744786629045158656172296728366414595952564021422379203094915302385746450340155230710861576005274083701966851910574260036670475663695854743237499686886003595868060864961940536895863503073585345013753457892370440384989977488271062417318156273164501636883841910565646138687748565829429996614102680536722109055157249319924205802688712851841122833548860028808303975262035887581676622649148525078133357907828551519155107110458106366548915036195988579130204193338608783942194049581278366417281045590649880279255263540066442218580835519971009887731607826277391891977437213653661118393378673876597904834943288004528354192330259457117263912270079621008573486506509641330076989067421804162841917281494405583898090089639953587046378078794014167508134561827853154594293519382464562502735901624761711752114408587579449971278139131021869333987259025803773441073812619395637804025116315633009353328581773287029863351222569063163785824095614585480111874400811352274080371090063558819735388019728812393128445631449143792009108283319658009731080589918164923885131634345325366922399838080152179174020884040151838882671525284108291247196783767423652380204626159708314660617569846500962132611087085732020338641351318392949598286615869334904447613014859513822896036311458784691840508681447263153655964552031852427271631233258678062571885014498413892696939130661858592060707515881301531981335132019885908741298642251208588588189870854040789755891446530356796425116466533990847174206938350232166066547111796307296936689079027142353642809401566499713399683534998284703354662656547986916618511563867433467863040683854814851534827497900103165266453856739641587901052520695555058883462727416100442609604545059045034207453875079846224216285109245115314651687215260214628059737876920562875258812104625440587586024038738401675603074844421185376234860210580068131637457865217900685873125949344034119337347648813465188518401218007804790999870436888182315417232570358177086470858638276754149359866415370975171861066408061497657971270171202584152580595313638821359980901979927562965206716920457792594320358983291472709739924714358732286827661731031961777753261731131651247842596804560896017460094390344178940535655961182159525689484705517879789329734995039825501688201244326793923107500778138460744245010583057833646696316201610720322233060704978573597888676079781275680226709122230816071350036316728254950484069723182342844777548000515038717635903555906408185843030976039699653577759435327031476825168068024868993357068419505184229223625019214493010679531866514333110054866613314498764175910312581770818257137318884688131998141811129901982092673409460757543972532277406668858367449017403968147118707284123998218403568222979806437958580437515356546640400936014154222730819204561799455165797321002474547810232591711415921628795271767741489030838578750791494856233013254195156610117434809074436991077452172478817204074929859699626727246789536341916786381381187118852870452513032953583408192292240403336689694549703215348973136640087058895177816303160532719001092600550739040737199191387420571604924527569689033125235656770014225200064959681399941688069866458960801322847798021755587715928646338625030901442109944249752633908635974936453733050085979955633717096990430896711391815506760513235730766617911214692308379137989957247246772464841932307319867713373677045452933452401639254048086399587274344036969967847987888820567920903233417163543581005343984964594228645909514383331831326133852567076233765226661465767222169049079980755608917069064363839610442590329180522536677915263828797373636168339642616423652020003347064962515069628687647846871418455011699796340528118164807408649326983628486545507997302887959518803922999180556905421296618789683082946029912949468149987828548705119258659655145142044271387802074623686194114305529959772905831044483231046054995331673914970296664583261166524179528547318013021692221072433810932977156379063036857389284538753022048204965577054850220625637571002767983953356888540860902437036230104975860103934564187352782120273573552358606312374709794184507621626030247458564745546686482504849951477720431324098396927059519110388352842620485451271469140195118464611227176587049735395753762772667554785026101953566091032113441017923794458129139219760734196214115567475399550724732641442615516136810764008783416847040274206186683223019114046809200241265992265602106845834968864346273106380531987035723029667242134455586746493131357768170873550065940718141687402389065985750584025045404547441938755487247642724322855554063798113420497184478467586904553173524432393823159679993110294001655960866190585492316608316654863871369746869421892281425088505552461530549146482365479702191883707081104695703633146467915863288583125142771323715610408018291226244063064849819206514931060327764973179665345450420214521692249516372077985037564994990514270954200321491345028724355375146143116329823602721777398633368511312936510785268118058833663370780780482613287859956626244324017337268780470708100876075986302677055864341022855726890572345723602605629798366792083495457904466214867897772401217832323104600549372501456953125459729098742758295995856734002631990347826030588914444065356815561321625908069807309188768929811901028590061954011533480129637733297810011021629297451885010292487516139740258471285499319291451451129540398325212541599300574010851760698549227762006670641728606528712823843480521951552442299153227269748681490067574431522153627802863895478373675091017291729563424684221939215520348832955464030552942881424533950045621666928346716138419490568576854005114168003645096720573579867903581835338676619096194832423980454601037769209735938188368002684918591460703852093242919896292901561273664169838808056108233429633580252699417599266747955847669121156679504285154460546273181939201603043399873426879274829465554336765679572459224423093559266767912156633679709233512540479538655825620043570915273304654633243929374259204544526399991571712613397840879693401848372432493908783012649068166934842721952085241822450398105192618997083038135354721329665948726715572137578648595700766035528117258800756350315645405657704461157296942603403119731705611093184309710029807489479448268803255394856077369652753661125052265998732151359185059590497147203935896809706868736239928601523052189239625104820738069137494298675599208259235563682325600205206014327189436925351445645409816436708620820125357579718292592477989999843463187146148896217664126934037871238739945248247042467987550192061939290044429394926998992109885877402917106991611487751309389475100094751549156668013829831628296153645253117095425611964182602630070265159244657168324823771853042045265487635040191571975242543547973497743745644283549420611606831297100372632666682504820545071968090471619122535465185692095171385829596078169474432392234732880974599956587913801784865985164123883160290130508422411121942648560262008686088019616256424772702528225014156616879637366114021079785065246812461254277697815560101921555198793854692721677870960618802090756556634713041574741212259300158612746568590633280548007758811412419358494988643532469288042839690686001225389213034196434719139272864571036176287882230870925598153699485721693232947500981089057682915815826545753160995439273666881212692284706507321458320139739087368257999607865456359741919676965129355806907226236202374144819381964789871660294181082213548697019087984845383588028049283468542802989849485344318090757160527392383305505158108426678416860850858306923351081283468697064003280773220924592086508615645942520599600503848468042279923761970020362767187557411518071962687248468538997583142719458446460774497649910635110141826885406756930844907349445696524157048387166722189812926687485072682268964046686389210242642621799911643409190010539940756302813117754191001900779291820907951822612810593033203538577100885830773712845324302679123377748218335061305984017923098603537724100549380842263229591775912064617322359372851231309485090008207882055029562099377438114429089867445771883882065863150215244115604440296818807902095396709868160214859805067565681704808757518594692791605219011279531493353939947891571807467318116669583840575862216003315700038178314035822271605043116752169252604051851938483187749389313932696258391359351372473074446633453586842010540104864702864722833319600413471459727837473373343309503619447170935951673980320584606153626148571319765235016153363445436482845271950174217913225650753240916065740066558593734345505140651055328731719859595088956612381609938261006350092097956760442252502434738348203874495209627011617888502355689888900594432879653751650200835752203185287939861471635832179054769387431428540084058968936514970209622930630938937087168157696060845914968446612757824618007270647943184307515510746966531096229787790206945016252807495109729493721746692737885168602592224511880552140045789418192102931741196603148621872120725723615353328140914117072689100364767014586535254678477890917883175282755305045718822844648697097749673209840565630677966806251693378470389358642484743985880077436293900408673692455253297488570902157515609524825162041908062082225453567009062001571143289837687827673784830364116722619553763969832576631318036147748299402652903891626967980976308562495675447823448901892148517225525412926144942000429037262406337147361263685694743973032689802371414944397977582839374638219691935495149139520862196054111738968948200611348987172264770485023218556193511961238600239842323698974658959183824605749080851001396578767821225872505524956850478717808189303744504347489644112657111853968735526574300341434137333229230755774709990874578636697116178225967921528522821012622031338550399167228334542123079683619812439416464234522581441906230659487244245635413109631215036663240786123552503104296907502354239923549750119501181682128828555732476887036428471116301547834012989494528181934378159504293687584656577656714025357944275376301928834641821294231732553376329690957559552364048040996594028904578872362068426075551341893978314661265619297892797082136059770640951561024842409496984394108024409079952204433774486283267412108189624956125382615482183765236260287162096159308376260994786262443829189309317491306498787938403833692567858329996464593827106403019367362020921419874882212494207412103001090555244038911085867615025504268469175880642209683387366856051855539798481968325001752001464074128535807447069506079176361616646407702030250189893867559171943821953781149525346414460445611489900401523989474380635925794714186335362821222086559632358543862583750721837787817416308080374098466045290119996561963136230324780362871504714395621891710748358796334403579702138599175070103571728513708819659746205534127653506493923942828402514982852875675772636448306685129066947448893281141300071500947872402253817600106238185218815002324458434335714139399273764111238751337220457995821138132504585592652661355783210757249193943929240577242908068277585905283079117467126513858867496274045391566752916047450785653038692133177677624945220744823982614419638853181410815522852850832896464464770571809512754383718467502316396968319966482392090893866357067916916090539542463184179488325240567096003070876497050315779541787968761893698759995688434439501220895690658766254483809984263056845132248217136558525249914062076193850840856716982691497013570756756919250950790806514260357405818886772537283925987878796614226240642026319593431039441734000094413206932867962505473310315366528601327138771767989322618591452800065497819861576965254554164832306271266266550687393886845360556816014337549976711492187599349744127591184595570873337960520755233548761406867639549445122810717881546466758597076095816076917771450686129854157476660690818343355354023263523670607040508339950541308650877773404739966692869110192661324317826784433019016409806998607943147623795192277443175404102471882911713009493018048105760720129754750488657262822138754254292765194680159034141768279184385927297429898993826435139647256486410264894925653665645623184968811298167729958842718988168962952311733343391330385060104465362806843455899716565948140409518805587531946268422727570811294489489837228594896871810677632018791967605323146434923287110114371785425944461186591095961493691141667936837238261478626255193162969374612177541474304970994616079368882085981762506880455554543984566996761111004948976168845454993335511351029382143385683411992556751851228717301837532701855309902286777271660871774403416856228924145482900276222981068514596247182831529826546623830936321924638020926464140922033336159689640411918049476319211778563258202997231441316403006247734258046038247990075052566413010686643777272782871213151355322737601713858891161042760408257111128874813208969695332889731383022078851163171953568548397664947357660241472441907896983156305751083089983068111315160659219322748532609146130859206971656382529847565774239333169349946003927981962961615026044020579210478173455083608046008475220830275550979774535838708002200273060737930898455177993488967767410935267237266930852189378765927776240517933342146778090292557063031701603086557401595520570104257783950727164442387075775617717954735228367848280182284242250310857915805661642963815984455967750121212037082259111628623379999128839647682229111403042491670010393867213132038484070374056022322534846394999251652794114739926329773758671838386773290252342282484710576993075733667339698183265304057151011057871917392127694029571337566939448208068878311490779999907543968276927705466381638278281772871899985078986773520329625634853363549236546038807226151868147018804923215082924958863257732869055905364466363509226416911271653090041661014555422224782383556772185383508492539961377865319453544223981860514751519339669610810961054982340151844251949935475828909531755021352892234938685715279961896520558266046415816254666444002259670134979624274966346913760443341804049495060574997027712557020419164085240849370770633683230382899373786084698470555330995934332390399617879948425065925855233222929163275211332302891338526809133464904336799967720319209438861036856016453779210919432026718228881576292289893272091322121622896658075672112371687719049091942772134313639091870529416478878100088398241221288640870233161615336545543585064889130204477545170347827847661369288950197499711407798208992364553982283606757936869666029260871791878794165315635111409323223862983045639876332603429087229584967310812403539132682809667561376810796133782108846365656251608714904906584660790048883867232323242328547509219193850384928862267660970793807118167904816101537992347535739418825795629689046996953872144855429073205255506847201446807945806630938341936044662400992591469315090074941883625147527377683806909736128340070683430603159602446960804754368067401532335228113184459226636542991531440115748478416103397949964020376517452188937178588919873143565603995303102965628652674853628852213347371506705592947453664596179861369565865461138282020941169523472955015698228455940812615192123903552959254695147393888827781786368356779125352780436752438583552444520512311170402864661118075059205610605478817940263196770640429981534996147737504965145005462937515159522894939859133259796545011064781583429486079100226017410379366064037952785634346854152111274526028499422936275585236166978506603077660532287790890574866660195568969346870001178678873018813475963661994402620379944618185244114189129137612457403988263913220843047608487680021989668314394356950159459072512981822879324330412775634629825061442988669706953332133382522944711787916455121678637318752895598455149345102155039831353305626034201926624490841719597275970678961228547583134446989104303821073513296726162447271114446482652613885491796679621317653464762051374937300803550346397035499828200558913940141744724533716012713629220062048901996710667607648287903475817026937737737965582471773806816170695009700679230604456444423187906316242530248567877436047714705129166908958413415301223377566275315786576066465788448972493859727058811757352006286501992976156962665945380567341866510476924253869217962857283279565367573171605601339681018175263807951388733128474040457217085727131320383786043414946299492550010200455289948648301576670550768257127711019429836403083040318537205129359456123137039619897063791888217544854979867852733342513266364488652028394726421570341657452282959486748254894982812000139395502342577960355921874218189084822435164034420459234852218783080325737205825228541204901247572157870546109030743214160550766210392051642317424874652748962437626597963053416121267526848223087947646280665568746001499632971840093763628188562659512185146324257485309285808370436867256675775540216085523414810955369591853946588178539386531175862005979561620051781244821624068135008465471177339169604360678471903122587284874409265995446638380567495665891363206941365803197381478046185264569828749782754958943813329410875608045738489506976746022213287287674063700329545791671703789090561139097256845901776948515920663057778142690410175572546838867260383239448552762225378323394096779402921615680542681596973851261273137549890055565590367417055116014267441662811939128629939564520153925320741776018489658631480401409825700786676135528042981211311470415483373390076738594868271915565290052749440402750237523704407776854766437631975419330038305321055837619144101175187844410561639923870890329801422615619631286781044667428890150091837178362378149712898852367241153174996333827053288811324166762040424921538281264243711526367632297782791179035347165959034257790616078596429880033601162598546066790904999882585779371232371279065806576492257649215297710271649980621650283989241254444262202919227700885818364835717380455003535584306412892291519151433841987978103480722173673158587493798683777868117054536715237331789541776674568876350061547970633791699644290481318458502335757112511159497265521853089955568205764909553716468128127550972213572914835662600298578800540014646340468722887162349968809527640521236000441376422788165544425772288064767087407214185270301290791622979864314664044718565031934698336199244657679451452077735757984127213504345144250062391047658901926520864122270322413664244194265608089283867512809567426576955215101650171961534941161462897499133860978939994685038833119495407510601853364818986398278844161291595137590068061487589404184676123347327032520040412902584493096087450276048980831264703317292884160339287461535761958159930563943511055180897280871856639822308280347087878629482322548667281021179092235644254102308998781683568484992176345140897245544538368680151220311726168309567516348346594928867706908915155073292496915063158190890715888870700833127419679273419023087679779032750654252632882769705412960553471297992107247668180867845131156803826001402740894180578266119287234361243074807007476380853459698860182220501598919221059427845909675286918291860661844890922506681807542091975618568405950954848516449665754356557143400880303044717100150203044739402804046858978824325577724470233836419190032578064558307938563264558979642860816735475404607233866062747590403625055921701102470378277941254136495602606693972950041742161481079918912912058222700628508653052853346622245939414113663897146283647446573694509170458659237210729225095269036078781019287318770796934158511075091423124426760152491561579656741933324253395551610078520604331789237961545560998202409589450427529637594171036822505288693372107685189412809501432318890850458107706715284367923195795176966306941350626063345556214688061490489641082770643680223351682000437818994909276111752967387298529854688206352147892403061327513633160762565446577824418527507671169778141427648572597023181351795771992322609838832858744469132531548884273220207872305655927529262781410201338704762520206887262225503806882464933592669767189263665912471373011903308379410333510283069286677074592128081691251298253242673087185744050006796118688216473926594274154097092952066400923766695453556986642311090805721530080293800340879782442882969663814824489974419888741962065380892012307660457603242725197354636681553152909349398127893693981976496114036939077950832804520560162272328462830541303809920382096337954462859135238733125647591570920657441669608789807840913305115648309762068788108410088771393609413209416498819109745465453111737128616742438113919624341376115538672217580098141359783482960282742670564014717939723803638679034323723893902668012195428151556696242855142899825088555774895882559561314482766171644641687547916522280037299138131240948208011601883706343984235416920978305012478577277206976972955007666600952222043487603205270171015621138102134217833337195307462875567831716391476881919738483851503100751507445077357226033181257512099069789249248383381518794802580195479697320717569354768591219842582507065549238446766947695362539397375676767407198656472797569549557358266107360280777809481919041920215929710581391870760860539368747499473345792636805560592601515246508611956177428398635921773127005343682535929306193762280788007920529696923176556611518261380505815533797313761863496844011852284192116827746995956488000110743742444364493774419587632655629171466887266049346767914342690355831265839484358302054591847587400892046673579327532334063745158140943357686733516421036456653531601307318272942668166577377337378971400213456392183789697865573066719106272013794955990976129181164200594126606862284569807790501667731518808444732751879170298809206581671083728394236675441681010331552188027706211330869815384522997809625168020655321501605203063680298131023598780094979071885529781027183038549646357537127608118825702055955757452840144706819424962491528695726716315324342758979065115930582727364647599451997511736994556152202876135046034895819456045023401684991097113375962920788658953164107672524426792222042721174432277758944206193574706643536952467017919420613370936486785130940588855216439080222316990389694626285316909983052554037958972888227103972768129122027102853721423455348723031721063623834756617642780612063179356440387952023319519707719163426858543836487878838311301937797228809266376181954807515670873768252391890820001071739662318904791041893405859458469531925095185502190242031062570070621770448141097197208310505663069442075168369630922812094982195226359322640669050882353832135121215445580664217884876998735723382628661807851689763295943007344046798394971447557242062398579233998297540595584769897809213739297636196590219712028497495447410364032952179433321560782395034988305308073164764060583358303883676084557889330985743898604085438477212122316370557073421859028726566544214292147984961425887531029187348767119155973862044986259386866012622210919575883932333995039715717475516418272944895484417196223404362973143079030702988506542861488261152558207350937259578202573155481359797845833009525437965589816803975430911344615220857498183985062143048573841091482436543045038203836270349103373094184184126438324726573461550844105335097730967841903873393020889223564892119921503002007157302544546227299785780975935172351749147502692656926797702981832454767234332326568780397876475683294380204381774659875084767239818899980173560643120338013145330555947929679625146287490873425014575494408198538366556711708374132671398624733848767201732524445736144604004137518850000976429235579446847371785681447207303720618858235449962772346447177114132143702446482073769221100070527158674780180607823001064372970791057143213749592545257606374043697556807737478754896453328398347930228632711848524338237354652923307568780997527106605093129717598860167288420095113006601139590241865539419634194850308202405286286828032974630807924658738480088341934152295557044423633183248177650492705069393011457041344108823189697457642627238338009264966630231183572459739771256848409895291739948936414673775517194737872124416437375761275415240919723377181006174834884292847454873743454731487878754702654390179142042097806093920564454541491023608654478000179505625496233883488117402622487965411603039896829643736047010821954215360172438770379451661843120165603742966923766189401349432223926098825411433926826283177873387122850207849876029357981200302791393153698576076764645873840879029310686871666640687087734654889090565527004835840697729747235349841990189251988504017126404757747827130440641856155349675705286393453884781759134310511252483355478182531639994035479362506716023407518056091830424342821626842874432884018127239706306420689558596885036721878796843287855812777769199467485151393398840284934468690059563514074245215406710086738340328323220385582247835974579867483546791086893713857449507372144852211151642632614610776721595094650095604099902463249929985800307694888640891195133499189772022477021070916120269282697213442854321487767257034153148397485725407543279703326621932842540452248292168665539364893252500908118111863476381521010053359032145625753596366704043191522564432939467063217469521176732750661329952907787513273160999964370058243594234258550424370908710545901617480578736994650577751908031515293584017078402367654461765418865676412221673251842349458840908596409489308900665649475509808499500532987969590132523015876686207642218957871851545552014346891141556085690231840106442039723483476339157793706192210626196171319573736564975878086225864383690988416457863706179090683524504354459758618678072699223071256415649033515782911227439075406675632906531114706358398657194891242318851422411135341375768850108562817373211795389844654181598963347545961026807138682885431826081594751412078093416408618173152411513053523522795098251161616279035696918821049113697316236248641820640266327850487746289236060117926626164744042008628697932761181087251912501992113678164419086588543113572235036992711074701172246140302957852487401763454519559961180626939209930492110520839231819722298556276071043864262923885352096069070245605659297714279324623695128519148900952635395581171489852633279323036808717936056560660159626350827581877555852221843972328003793195322054079923066437438052623892061263369292742151269667890094349543024140424544078376772381486852816480363623948085270861430931294626133885601298130232207616488875672917235431787451398773754478560087279908784202221975396154567155343541411269786162351667778191240351137866453543731600433607481774230627065051142804692186737282850356769426464091616332130226165646976205503887861938728909979062142264496094236875689097503254582691065311389693719563029704362240830920241915998792002779705590730981022006318645292032415136457992792040339175991424823272670085504465563872640742216310176998251772190232326784955487808420098405275534676499416770897977123277525961169777606708698826322162983261981482766809848789687277037789255130230510163090104565270658518837671945474245536303004188216629313271379366538897368291105317253264551398945127778621345524013303857115584860215480800408544526733499712198499424215721134696943354583135622703503030735016540016733793068862815122390206811577337459726625209541537380090373731811047768467938802496555376341253420102827320420254030546270795644900416263483116072916068035746593659424723284622755121183478853790360498571548168454535602818003433101781475829441216593111816185693380270195863339637753775976935773844500993087744311322511370455575075263366612876642732131824333026900125795014262425632665546121814341826017087069982915777779977824448707530783593857682681920453166178911279441088535380888200639833075931589710832335022382635676950761807877687807356137287342826549882488032905752639397906715103148273429922594475810963619946116098584785320408707142825144663464356955491824004745184082498175018327644735857666653815642633747377897932658912116047236688169735174668345211830251242387996055849506806521123729576456850369102397679631844322482761853360107629863430785375866680882537539922385990843239271174310855451791955483624236207308048703965078857346353329703847359673885540834565629625030655202529252731826827822329568066956493096166262961032203838152977843315283077431386156212222411377194331248279366170956884177195343312500297693956564759541527529474416125025484395370859691564393690148762119794065189792597476692102738318902090855636491848983025881883022185148156531254290843061319930233125795996507446076307776695541106496239280163246773030657795033943660233270696258616419672977214532569724544205117792008464900963703919586916420787028173794107099350293592856911407700449513922896918404956275517815404487307959200364642386925592393824608518825650516047905337386783330228491018907328467083826841886517493208652138742059008198066591171459761525980904836927373810964923679468816962664462917261958523284232462207632980256241189302817670610968757883117506262723070291451081994491688938242808605571671080711499001275438533442740289239043815936867987375164010542586328718362968800080854042948053754009958043433749279885211520469447973978375984664793036498904701327710861599049409340518796570620213280490681342324931552064368084016441098140214998886076873820420985695046654116912536077886476168384272942278401980825679716723932010300124281299638354466254397862275938421822161821932935577423279162957994160683217827612370428886645083479567116411834304786278929820357474215884524123882878971852232314070353689324053166898727587892707106487418658041860736296142020099615921151770201578593945887882956882453525265995300526967179895673399315083278323275100160895268696948319498245219141927082293761060865399940903342862005697330011581609616209819014001375550752639870442963583491108398715380231249496158580426921807106596349595331182623512492244470304293249750250477215760364722155225266466940579912055463528631043242457682614576610725211112008681696803126586411273435901505460079996852654033890455324381242571053498855781279215476955642255813107797578270958759444262549167415299076274953840404448258008035490056927769686195129072251777431028769594907593806089304227402710935556832998402188094238503696546937327550313998184979648521092514137872852156163453311548833275287953755593923322368622281840424245773120369808899741767409791184634169789443027129847923317821953202771209815995179086607329475290367536989363268345963526593814943912745482094714032738419448808170974774454891762061901652154313731427100099679865220639408009192590829743374571063887957399612535019788847998259563966085180935292072269322638454792575183455380279814508671219310142691107410998401184920131637761454745703543787126118200876482213414022222919369608329470551967334333877927721344870472052921931157529849815813300741104145265663341926529326848825557328488086764178512659244170982717192026723743623660414786888802425452878941352912980349949918867608044505239649568719316478855446378150922691223622625219674107063134546192471462717521425406069844354319346288393834367575944339943885783657624926354448449479688452901038775482959694514048926926586155470147153911112821062651446423447552587190737349287639667051140092990094692790634952502325857757178750788934877497851958463280930303040565860330972688322750650461736238916326501401287859259425094066582377884472484494005219607899142323005525815921166296168716601137462025123035267271048054677775111387829928277452048187199126071614693075847294479555455047046018921890334487410227334153185848450019198328027921765967611661790803773601259628177155911271312424281659685575399385763708967085793895488743746703994950472952558252269070335339496010404173004842915747989713435255419542790084448744793985127386739903010847172712531529360021612194261083036939681029846022976022127564797216222632835201962738958638966990972335496730630683023071633113857958621726963077088119867966143128709592852424281155433849759958777117170453865985159625742837665164206306084709368252879728990813523035484337987065755220352875405104750729731064907243813488604233221707602438321086967728265423590666891497713249233561730061655771397674671731482628191551295931435721981422021850130297229767934007716972718203223985007369934842264835144962356954117546403687209714147317043135025304873195996354501688815019255264004933842711256878761322705821678796570874006735145421949957181837942014350840215194462520704655420890894311044003054027404536446206218035234524352765706609527285375752030181284244403681942937907953534024819340829824546984831705529744685048948650073750143369560623113118285519714663033328725072388919222302238234583163053331879867152653767581096864340973610279237053586551003722453693943114555518170306061184122623895163864753700308149458333449915582989262536793610543814077454185402558548749409955378082727912454081643212170793835815044691428695060752939689762350417284721026239417528678635882944302807867933120082995217794958191972522465670381108618184191165844036416594867484267442289447227655280841468308163163914467083197752798815987340194212351761131996378966693057279444156286858028526432295553905493001689246302423333063215770842709827241477270993712183320674273244350375694727570803287161442107886614444665956425128685488834954516243077171337169947817822095196790014736182454106213784475846292334665596401575431002326334836831151889456209806547738070250387621630726156995754528822303318512335639299250460296931609150637686444637704015923904738297019650131159437110594882804286294631857225441125198270375292752409620592840424946587892464333124533950913976810576474865182121557129727737183120571917603221768741957759732686583997312784922695738051633885310779821672584211700856945622720316347216337250584324808389060067567958813540497767591925484943851369028354011212433637956481432003061778895567729248807081160205121075038916954256668538873373717388825591343810225056397550956523580434218584440624534733504744679057724938746568007526623437056458463340059392138342964935287640777657767394295346322726918234362265374364274950990440646757110794461222086783990292023015897538702930215478298378984951638580684618134805245895937371522289911938169729634776508677209425619273016344189938131197051541939446981730599339937028152738318330997885659233172702096983492329014090241601333043859788340811478540383776771893528084667360072048519076604492006985085940601320529763972645896548303653373918998780050629091679911193928294454722309715815918847227498294678637078452612747041166964182576849664392251385694056160649064250061615097939894997178221392721375228604628751354552151905656098848718952372776287809022541654965735923851982621311496879451862467617205967716945769758530143406448637358936330815717596648386369373016399545773475334642153311540398757317228558768567877643296498603649257287399503179669925451875010585943417029194432265384239678064065521081465602223527458106393633567019108697354511641121053358219695211645145202492005561494096108953435196579945084847939084993989550027905534228929264498608488677636674075164736559872102125726219958962729139532168493576768138419925193793530241428320995292469213456166088400805092145179679881326078648922712267677254520371367119514932208673533148013098367515593243347185463404589173345097440535680177880012245856448979458990038166991287420199019650203779892163431218833544838977566601660964540878802891353756152902514559015861480016129829325975342098785364684589606450024942517975601160667748659890311852420582145492557069316750426273585892103138614701987087204491539399677199627777590896733709241334698594029885958526159956652864629988399672986468620019111319367992812080080472251683004721481680255445199132669673337961899490076648655707386959752534984800447926889240052871462065929294882729961047597117389441369433641044785242384424665566458356592974376069745656462481279901029640499363354483357164636188988490750878013410897042613789926811979919048422144601603363797940909961947935130811995214580796468090483902985082158893363497774964831525063640553704204652416272350987061957301727880110289184117652207532505619346796193725811591487137849873667600099734575991800853382058609570349314420993726112556531417098794510543997945819050021507151980175932101945966451071272872420347719356956136203582582873792817489474038036492556981642662438722491738546544263389604760956993227783884368360070566375931717522556966729902890639081858378454785988489177403610414203393029715721957523025445520308992509634742628256120336985804715104071534261980812128567436288692170653901941151976957577757225299951399135441246455944750943791883117718412809513407058584892709677899709015032956657988321071925272674084071868656800663509492786045659621286551722141462630051185430898384738194189084076407795021544943386471886370081754817378403796518848997488612890743930387882681970839594288385022252913288944192756469329747705239099363021120906916202572834725568268431219865290595978882536423396067519768193251690764273240948367288004944453579813324307306839356300293154862928787866180458803771786322505282983672226531119565608250513039950382227162370513008054140118997864234077390991178484312088132161691669852207550900232938133087532761832858849291362671820635282919110129462532932143707498724273872857388727212111296199894788548019131314827362042704915959245245790802952795040729330464685227273064222219157101941721363758988280469427179791628927964685016644312710408111967004006123104507282590842322122794503414308684356366903418578216765913226709597648218687515575980455622249766704121033578378619857670998788017366909705459247982838428157931177744661133588618918713072938238899950090972151428077708565013876081884465491308305249865248392095344097606434924797061138741780288033601434032270536606116322460257077906319671404341247396854665189881380073127896775962807569693176012346549747237531956592012028438235968935830104142348530729227583571712214708427161745326392651659150915205099158766028745690294942949037666313796644714870296643743450065960899170402653791377754258307520019806127443988622597363886038886615579819309223565836177109312431309384101083107429307479792680125716568923359349931885112923982657804280095314296515515051013791025317771348756571955633949449957659182359790061496119794794022634108379684514263639798364755376196840899396423641906405612292708695433348715981419518101574918079777509178336368340115615000823757332604735670693725535855033919593527620163834295818602040997925571394350435190261429622661904723302064654027044988757305025542464641808082982322735755278047424336994988849157289404472735859587500406050421872866606707759250187523198996215114116844447481793328707547078924603760046870607289401257686271781472863805837267827613951673969417587692232657415227701254154976789836380005506234795566364018116842344980073665735171068422575223986431968648566487752733295821114991544796794487313646063258696138937414728336164678858524397273261293922835968816064018787271363910173655349249425352281056907452026834859796007338800817001632626738101889868600477088903181142021745262018902783109936537288560341415282538754761419574042786219530396525926094596850562916293618037718477183404332643353834270927352235568887545368058925385438206108128913599213655259142899763368680407840290338590193079835877142356560846466067528214715930688624874331796459055183115886136896528245039573759955707451857824897089284199597762208541431425956868535434880894802053627418416719328731415503173983152130246878457875388374111494576152910082936640005234903796297388488297811389442901010878154094713552554565359783799907699695521989106527135182231926481455060058174521380984252664476558845583029116889051294357411278629214154764262673867410185343893854759903771665120664708303317897916439862376432342121620599447658461140419425574628331231229201182237338534242849048742544392462027637673785959014881666578636547347265362893665682147749562536935867350286919120270500174472570008276670282928099736944479529006243305643035634492903422063948858953292029201766317085469845418060836167816591676794837202438010853966884529677410191145546193339015913455848832862769307523461453956186922158830874043667403805738291590224325251337566952222192614532059222720462946050170390803233975999520165776736688757203936963964530308304184919735647764882345728361827954027152331494404350926669502745627149089791290803892972475651381397745274016026913068835254320511303459213211027512187497324653103376490036149833647866270042878090717228497550655208744043476584440603024106356794183009996252201776626110830686373995669601201311532580025960895035122175746813400601727534449148204843706218102784184368302774863149053578907215368257465283883731492507491307295376991887839789720042527730868280956510853900449051110578319145204119917444532492603209441058767947538051454403826429793465378494811980381257818676249017307696086960108871004049795721996922781572591127324400546226573337291123101668481479523058107697449938947206181153952318642297709612868343792082681506477719250572474334594525878208697465327929686569760157469485757610006579584335852517273005920353466640027046992262058635427568149731180686983337087054254640938325991130482480256333108458181955352093542926701995865673674668149763666805403615197382881000726824081025488516155843555622789957005976965688601528225629733112219674848454086223308168026972658609761541424288574522195452675979342560222981123652965279243667054789728506655635481758179016769001824077311087064002430902822041780529280850078127631357576108507424306217945060501743872280019478240424954971553168667518720638429448968317264414866746025275212344617456477282346053531245791567658027157558396257047652745278335165945955225626475259356372132853588618780801013043079966718356387979094169509376327198279870036090753558382980203421743889357344672203053220787323015511866437831185658064820054120172499525869153364737721941608702784423785626518903703320211451184668422095191261989936364446306973078190901071067856487384006118694676933276238516089756291424628983555858855041388303644034110383121379964229796336189187448760144356652852072765127152247329322829760468490377296863716789454769188500420377539605875496551047796555651215480355840344288909934634130465404941216157334498794255417820237587606842154865885346085995589320259000659857308923968705846188493815683790239402032456888614425046064443235696754162491103148348030357554892026171973902723154770540179496668736981293996061567348922397912426528042769774320948085880076782606507487174319266040762024887587813779251849677496900547294181335181581646480717497354740481081638811131793396633548805642214671564338858819149748892164929858371166057504233457227774967747059989802436467615329075588336410768713367766173277432009162131708573376504872705815901001996426447266497193541754997448307745133391618313237775697531449496906347185364241589083555037968735660441550162042258110470713778007072577015606504315023527940725905495621670484682245293185796967851911740482955866207080987723102219081171822680674023482479822568698738150730952538923899973400543358689976316770570786644169285058900294192524613159125657829832307754350618602884558587903696682869926219380062878150998309895174393588285280238458632075773440798812552588285153503903101309109763483439530400198781060680288569515052106191606392333805154422539882531939427715758585117948882018633174411932106200815891201287162533043580572774796387517908974623048537069762177481319388911572457238894847532915920457658213119721109380561542483222111296354451122974149576180699100082668239470167631968019945572002529611552128480551424992685440187860204785724413130704136027867357934957218126502399819831265956571330712587667074990740272854679684807295870251178469384968073128762850418420302067680539384914322248857851929101431296411233101398064082896590274421635875444778304248926088549317898567156532669765132909649198651050936262484372783431149977749459273792779927901296555556080324782865566458849591451849214539735605326747994538007624611731051743295387836794742579695130779733338965935521961139952515339810583353115678024337964308734710891974634711266241079652010001423964234411341017970453043107076891651808689117963284330935065323879966363517404200994658881231710801091973760398915338126909314256012715613564503569067046842360542546399249750766559396298235799138245155945843634068083388222768610836032196961064406640317096236861637316839488325426890526040809003647774067002255183113825397234520622351749037929952535717325290685511562172691620406014143479139243526583686904623767819987941251953440383741600330522780019794772684496306302303668244534781086636174021298107987113583599215197425474651675452348695008624062284280066261316893212394083962889768398525270284517182502828217288320131142502423535424111012086933743229768276322932421094242453313730097843756610062833180680468824787956264329079973356739282678496421104982409210239033998657045905803995908969433802328038245075708536491120653749176492150464338462129866891997672790210207053749221514822428623658781889904149093217214974062510884294059850865323595279850578424907622884544469442493052718720027309675171521019474065860001759136977283415817948884328338867051107690376425434430900793195524960654223830843229904477872498142392950242458323819863970872463043492924074827611889183506598741277624118037571693236899035678419611620110529471909354743017072746341455241407151278614554048456136727017299908409014442761259732020175808297911416321961281813248290186474502928477013989506667110612202029422606926864738377210226049313286675044698834468644567134826887304792517865561008281938807449790240458886174857102401464337000313716972442961510389845721076222150888246955723515754135050183598280231632161689179267403613116922876656711947171318616288332485189978536969604461334215770442987837886482891319893045186444662645696681466139118508881481661304251288244427362946684088395012421569738103443162967782861307186684061426261112673481584607641127785336385816250046313852940493599933140739944730728672679303970168806962097292990602795933213216654244287593876391679208772940123575358016298786282477016791650730644391836111836292001049479267443944276714137762200582571825075334637747885686043974007345127326766091295327866241206315966604719386441928614764179508917743462289183636657798353187395345782643547625910388509486947216332911420379259349571045628973706673546508283851177349100587459891491891729348931446040208436892055992444653679582906177996897172047275064208287014588373647237981376510553223273726997538458730474768524591088942736901551443844116463904026227698848225782841820784225480340696849950305669942732212294893355425988058247768459439115865354717763474866795845537566354805167443672032156118610291225802060878585120091062221287076819603092603264374110757153635355576778491133469902394408932302739079625790063340543645161341910679014930351874691941319363818167258358072758305304564370498002785231413522165113827506344129298998717172184903505863226535418630683482465127222546197440997502859513991259590374883527164990522341331450758465638257249127470993866420696427128618592286407367557567511514160820459152384273356612263046947997964155965445806712685129633855540299561911373182853906900788970047094315887545342834009593799546513825305400996339706965292185676674757578866297778506110540607082147382725207743161543927287486703543529476745628918663123564519450201489358566140197094569432511397053515677231741161713407729355446271491781843928178590870984890271934988014510568581603007150313111076147761620141615971023122341590112671505763436300067729231649883705246957207346645701635159213050821572658590269543831682387453738077119813442985683257075250800409175531139145491047111589340302333314335121243712733930569084220170042551151732124205031474415240290600683404971922296500749623285227910519854401346126191996126092000892839116966096080763514995258683503067994655940611008154188787289380460669728000572887932783719313837806591934014804918829077432289995343515539191635641686312626333615704165147625384181788796201778002202521268115914460810420366019618222480023637774514583514227095782905242510585803496335866999596345741261365920664533900149497954520140495105920751871060731237762995884574551463223991909721802874636165898297298228174071273615264080767040616993135914756833172847070728524595578648046975091529396674567732166270455374660118649826334125390451039459059346123910930776668624199706966011357741492520273139160900055804094032474373491935187167651644275875302835927210896587057303241924590683537920956186721900794330897158068447263837576516883456462879897568291089068656235663506479865924327174835592080753614802683283550283900120122901852968893832887871181215773303297723614884378386280077883253143269545867195845869547787846085765832340323286367603631441117379761703894473356358080060896937902961018739560362593612483804287357173301207080531096776070535239511909275733309714076543140286501368064254164888383192206704523974712624474627013772335141543961420631987496509718023666966819850405284179108140256239245734110863129344725539518780301610845516856590745624862427076826716843286590116248487282887198591559040349311839509055826583736562865745890683009936693524754965366715477725698486471444615052498905186803896498283984962562364547255785239656153477467870638550630955128562776128163074815662032258676165728095559501484800475511192541652551486980035590306675477809185006175978285918414372979575356675836143756861571957953146212765736160910552946962148687523689315907893122200743243971880695495182882475445296954094544105292606953671629850764831740101003397757389895778666399656448647140176260976411047691675819607137401115461382311050371316585259580388153948752090739989580712452287671685360173780305779858757591838012421138371390462265319845822100842538469579167304531428019970017996589023507542299273489935849309482014160691901408283585844844721843444585104712950679480421730665279430504553581887470515515509448273384443904764772272237678967599064172582082130962038596070536365733967760805720164568636673980859078150284736032579222274630357935705941324839962928784884415499101798590366061694747983910640140702896618728470352791195903738429804516779933126073062070964802302476544918308970093254794275096107696361205273973093236429991067180527935877552922791941130047515726654529273225100290115346746522363361274969733078796057986344480379252277178373941327398189522511898237657442200684760051129174379735909966866909772051009858313513058174343462888992836118633740669097031307259120122554509685492264183823198576356782235390702622782897601101740679595737297919481968561170093421567472533533368712539363180076692448880672498486966635239708943293884071103166325936929421799150241250300326219860817062827679295979056422719046189700671073704371016267808283578941881834614144436405529392297813106694342890274091494887927244483943144917792864760951238116943997804506689363645670399778898311903679229786370068515007770621531457904591679402717575686450527238197944804560066452197859065818334054998169907481082242311694589088339741352970574111951865767728675301818989283445646165317710855468514238416087787610823928211744207573014156340966469556769497267885636221922677469788276595861408474420223538047818348055481414364868944984721929262015155261427692197154001624432901897528309753088461287367871105123981966793750638086326078398578054955215602933919776663726719632337359158058625442332216256102775153084271081233901003763036843845632778633966849628972529288425628809169929630965870624857994674445227297852069514565822555981292696454611135322013434910346864397321616628178813470814048872055138889539616444080622251862661395918357818034490200438550743472365194416776238538901714290379459793746811864309141573420389754035336105557884888183917783213454888729964865546733694200745354272282605629865890847223202075206643760590680500672219200598686328488641456402990720942959966417188652759891341417619983000247971785695832557936318230779781414709905780889868635065643555456101487813575555532809190954958891161382356995610821428979320879258120279715569360791381895695534968058243315768428996308516575425973099791353910072930982463632956530787185293648798143848796204185479762052317302118628342327587882113534662205360731312053089818057892226533811213813325873032768760576870006920398051540531304364327400862099256013831244125002385212981168745231034804542022509781267447867310784061315598270704967621931259240631222699179839673725755251092491686507752898956069245403983721694717833376260262237404229326337028709245343636219005571560951073179344421919300408989135697030423568664921680866633865061618885527827362005514773057984029578312671292994668587465901244114555566112570156070716349443627497843931078904227402007865803518261408265886585878362101291668290664418931189003863074943801086523480281717267294626302126702688484523374963027217958096192343529122659685977430569828946961216957639020468011034595004852067158243934703626361654291687360496500028407316636590574926410805424654814593561671042980958314039878844631533865193300260321176553440745791050253644981833361967440436364473888327016167356468928593258005814456589477665010406165048081506702671455992095399825787932523722465781276089639079825422490544494393112281113580458883636298495885872389268218424340674754677564830998654769915186587385945857050002723139294421399989576044360944270193445224266524504706706896699757939077337352722613520303339904781624733685364542157567188934840435038333715164430763441623829042122225997085324303777293721966923635738197241829727726284876784022591565686122361241707777278760278916985608352207307090097941034175446857646490536059284104419873844206953396980109753236201592750119366063996853312027166474177513601019334642214308470640017981260875020786781964816192119259524720541344183391071300254230002861487706600253186802146804516021321130915311709002112301038183165764742355105306262047611954463863826239693601597155060287339405546879364319054955445149256677207399071404237885507608154992528260626527283160769701620069384139823510792488421414844038738940690442335619271631370976351051596997272330558039278344574373213372192866443275703405933055340333432430925822336593642039887810725207686992043995287922574604915596661826901494421433618692995333025215814356263492413990384465795740174956813431904442467219135499352961590823663595039575543645717439525386804394108251425183490695639863546012699253614451096065717062673839346677592954009168672316309693086756753449207149895321072545957322790288518512446350020869719035032350089182430057203520641735734852696929412191937477287340021195620567638515715997803378150746136653618322683018378510489885130765407718971226622322014661953649462429707448899142543878238033481984252793075035638008503825410120245600728815981210231052575471749870320479326179183609641193013323315387814899975041625026192965475498658610195170600521532164451069880296920333617315613365527119222020727224017042947716879255286124062332018952636304432992064834704533051237273795948405395311324475626126551389586149975281288414530128386236822637808461516057836270084228348906350123186633741866739866671667651422419937086720203836435485833706713837161544277550527362787686810942891391630175998946422022658782997579696945617972248343280015718845647420855092065213148352009179626168917563135216018250034318852693936199161497406270578402548467850514392615822758333305045684681505228778476779783330107964310720972647892602683835366581368351599280098163106570782954539398381141166685529685600288460729102177660853578780414707965169774266729292176539803483178339088120739405285330276883993121741989009913245220331622926069414802425330116732145350899067772903316588288462315119753284536233826332452873240747649198175365657405678695945216706907296049853531279572949014895815720722590096198168259753476087081546179516614903275815460565879506307772282903266655009470621844237103989047170818118534159747048623679491792713142027712560320559083706126066146330226022725798553771749845008717934199073365055809657333075792931852128587008367485383366288649909599559205848218753930558597470670937959278954851757750290159769763551311634666367743123452090454321735400782359652185967772719314585410935915126211838626429892678521678496392215889306371464258458417563374470974641599755727080826857119085791822891711429231927841150191394182766620715267362788059672881229900460987442769545685826050786510825344441984189665610098301466263942227959714074846796067702958747289242972110703403656146355111923454441612990416646037068178272186167444796005281433521393298327307828209149751842413612168168958312764108510642712306515854014963006195048927800690969388211387929746897777877496655640163753041960705130088148986229529491971863138184199574713261781070835359553191222748305964286249089928602953981697768239439267042375281965849483190877631436447843034654696248525640012892428091105909012655607451091492119297931604186529992716955962345623100745414388726072282456956468819121070702034468027079511982778341051040315627044554863771098739731046439204477265629390377776133249976189261417955081163940206963158622549703286224936247194064728274088023882407461344506353496446847168859176534410592269347790770131916661126063871300662364576491545326793288955473166916940876159036952443348306237619516970706306768948647115739274430013464316999761104502529708778637255065302282174848186514716096113650055808299379219236640985906785486304124566349123752084966328252870413362301511160826674464609581167441236882892615197166645316249613177152226007884755718709557927615361332619777595148469108554849123003541098041842728977354255302991709383118109285986909307153777073049944218485644975007807792907591723392111706024914295335837727289206301572576154035726061677672263620740722977227153431554210322366562709804715804728782868373058510570226992104618780988864449414543685835905709433342009179400947541086433048699955584490594354180548021251138095838196587170621560116386202759251488977056700944058707823206001777877898473152618705905234831688994901165924313044384815971924631446748678988358006329266528118274477014005443486374333766958511579072003501973187051825011285013399318713592426438249162685332707272740683060608317500203981022291786652473441717801735774050211207737179969181047116300599995554518436258111194196206901752472706898889457638069864153754839779210922079679160674537253646837861676212219055104621209552968842233190485026760008369534921513903025377023071457491342038050920913206335603048024579725069485805613616527995548740268213639787298137371340072335453854852058826860636508800843229372781598132598757369327513189726648418874016781601583058434833239184025372283259976899674403650296365225440914270068108037212618979163209968957540356626280137705635881505254529472048883652155510790613299915380821421646018971522165223617744479077941135842252629241271341995929033318705380339954038075341831043967057589176826868403217644614931036349150808396670864424528171601107537267107172385591388906660606736844137191264329835349735939843731160862847621371232366508605009915665384651757306740568163404662460040010322145315943133850616098143751443578978120124426547384192442183226455734479181357428968239994131389068634901332233271848272858297552647537935042746840714762393725851100617637054366624061190790634772032430371628390817223994729095436109557855001122535024562227995700875070179299332346861994096548370583590040184106638511078315842463384391106942280784955983687177899747063732403911761026920185457272724830913736292455049916168413759240739348740381138085378334281674526253290562236766156249064000745003273972797142875514719338770073492782932860940654051809213817107365047210417691481782470212751284501027568652208969954755856065183076058824157095625461187232140441117374234286493073540575025833317785114298800276736587766072188329805776394103874039512492670396119910315376596364461034429243101368142911530425717828829660429293630627575578744653007954175519434579510442555250910633494858551450404541283202595992434874839955460600787705236338460890482981432900903600278269036080347985403796743358136735550749825207508968444417232230321738605564425675562612065483416525954618478460806203637361768873944235313457759980156792563044755139147674675104687907230496902549559833912737829671791864536551341787867131611399617709916640833671292735286992825139063720658367172134052076261708968880649673562547987077169665870076077411673208357045773590089942111877715250230470832819505491453358756465031661838727440540458493356800194821639495304909176508099966066357253083225846543817678464057814166595344485500008173682879571465956671203566536613699222942333925214513270118285979660443056753457879314489286767042481431097052809023248280213379113673014126061021544169874711524081909146385808726719575918043596917741479701843936637529816026164805419363193355099707958946585609476738678677597990408124419499138796958537531782712003633839400519847776317369469720908061560749540758275711349517179427513894647191254258945629812629260285577139939294419827516139047604375805671277227000634646620739208119256137595293434254792274045893367528484783493856332551016323342919729176925163551864078616269156083041112663555007492094864800071539217672233594332153476940870981718510671728060294523579910471597226134488897545627833106198599057340341306659023824484553924577161287415289919808256340603396073618795100492639071928819657197075410673473890694676582911751983580640001851833516006462378939785838660431929588558814629049516213911454937268252968998238058306716628624185247775572706554943547704937014461568733315861827465691721030987005141424736387559568888786445504715228859638184963714860144889256523582689515172178289140449187462928117924313287011124837806096834249398859857421563656019327700144426567899037069378250588575241905618082553469700816802645679000817044928459127619697423068571264076057380947468455019548033900276935391152206029737754776838885966626333354619858871321620182542588096630211397405406807464932406812589075542016016756345424055333653358224374656705292534439997485469150697660038180430659887756742597636594607848881041966758000112011930807902071036970466949751602655910029440222861212271353071505554609038562511460956384344159504761279079504324313203888104540116711874974537037246682781925660546364161921214816919849188756536372733810915738544301509365613533798553454027559759695056422683934347218457968487951963487363404791952298103987126940396830720708987204536306258763183759746365273660882697182559953529038032083258030115991927173071452693220343396158256633950603895725187242986850229903789096026839138310072625589716413619810979203193610707328249909849093254807666927990167347603435498993996848757825515917796746864111062739459866042534428853570524518719105729897091055921694398405632099907300385132060236688280878925435525225985048342925570677930673357955345798888584062754484846093861199515843667852437077074642282408754564529043216796610289998794160075668934532473702027146746725575480568002158849940338208638295486472303491744024667377993627511170535060980624302983722594162610485860996278435186476464952587584928382856848619858055069216598757968431359145129942255906630754049348805905963173584841042598902805132500722055217702135291237376244532314471306457008062802736255731027780227951903961763714415614323093202834940109104773921490455852896345743748967484396214415595816964759449423689465352170653345658981282068720492863435363263780439468276503253862611526506151368649520407173324280351347359049140102217925573180829882756321717588914705906815136893647886059455781071377079618050338998609738129555222466175240149620707531232023871000766003287171091777805908360143518701689555981557693895871633915252601466578006688530643869317740636903307713698873654226513648402911334466130802166689458262076495883170740197829227221188903984642252060026353250620659089455249178895968291543084967402102865364534317749065517886331867353722826421964355566600779640509424843325971324950764916080054256303284805344316519452684243669419214507343089660972416313189621995623042353564740718626321824937502522296165882650260874654021168106059779895565498328270644169799661993817518183722773812217896530543704641816070351967957474794995308423239087240122602161430840500058735783109927513226839379985266622666676209701273327939879799343852598147875398336356664493782411921859427884387325776866083517927552163371089099617786474052673876516317934372505504901488229379290078441137222864131795701147724825297974600625601434825819836263787840875588024100568245444990230377343241102740166187975557339845476413885906806720852813453676149120166126757384002702668112973509208862886478369313936247358589363295434281340490961916645037757968502001865963854649267810755244282561797182073361495693457956533456260831740656270739601292921703256964995697486100970844578847069453452686954384386014230187804316040241602252058846379729871374602298382827131123302756848187516657904209957827764608302603550696380128124762174520970037629242489376729331878843579901949829633611962897299004562665849905020519728265471368244988798114135072810578931048657798280137075116189737241769266816887018618485270954937124799375319942225091454349731671674773372602691243271629856518617260080167695802804771188826968463926441834273998871331057940209595136694988576225667748127271158788328467078006001881038738006835188442455101885265733248844094252097349367431198897538507663506357179689717782324890589261910862558850643171996970062258798588279272086413166142049090983690890553103894919939780903617523587870577968822952675730984542529051479411309656689381477739390399988919967408150268974772275675921594863604164706826740806474311065976876441611682854919009402396291704607326994358121926386853508491996055666688915551775199953001742231440094994992801446274088844062247370844096620306491286467044384199388234497842833315493321159239837231744628228688162553064036484029667966521046965703890424784960000999588951406181105560299102862788501788314756404237901453318657041680671206451006553421787764446675772128517291303184892245635364187608218444899647271013792915926556954173751785474275006786872280246583903780462503237429216531345934026961854692258777354736827572409591402330104429861080257294464529852187240522927079597190976860073674043537519890169380981134115626554474040500897936747940445769217093195163271555284741646701942558277096503587522667007244830556094655359170599040994736301656847719613926729974148745331575912704436716503045669474401640661894719047282073543295900185220763233036538033630097844043642081968083016597240514629885336587083757005856524900012026483226331159847978583005915367138240665504211321933212700994800688484604854585947083227872143750814911658132521370459338906166032236369003346483603855506404246711519010901768834269513479926890620703544663231232769282359380623579038941526964200349440885141607170032632144109367658448327792003813108984282201763905193913477837429615206596336551804452347060470738524512264198056406560242614995547194498339835532984959673634464307996084226857896304692819433062491782907797814561390453231197337623263824766114862145717747615956605299158510259037891662001649489381026948499733702961464056517974256312062565481550041537305615473102930985818036493692821916303850744422950928153505808448044979228140324185352622556683468549749152446246522342645207918645252728259805012415399556342589378384981529569888128098834827787308484791431565215986779133829811253344347478996673199793286760238067649406219045067757366480844858409939752146357200803315888552657836399580591942096253290448044850327890953287099816075311012726926262676387773830084331444472166106627342712277798610566128828464998549981561576455529161707911364281722677605275420624729347325856758891035995161675608729381462136058600300750325001943153583678241596572430632100340608772155364967537054790040649091319466900619842250615071531125333086782044259137995376455427768606447621793491252832920870669299394599107281987236295606296074975972848198802650843560081833057597260684419904376343636938154641199458466470819462164833718352530418748658421033381732619750091531202707066498439997100914381614991349363922040325968532420308394440164907204331909442773545429264654081757518231116913093824330196222320081499738551413215148981789076687186292108423244684766685655147813528013634809256058422339281374712120749545921970186488969297193168574197497057668242395226996760732993498367439453834416305635595340537613673858238087287020478752810475432146870438781656438257734024551294845385328730830731559977171058035395277446469155993876383731045131104149791382244005547219664448871410844673056636469426569210477237080524341222490366961722858527988883994085991086289758314436835023770117085483842018891578870147767319306663086381035996251089054915354664480498131454329805296906210032469624274614465759741509311598310253139441366497037692422921910881570243349879052646230945814414782032404973295170769068806457930599378933818337378310972128539420643147713151940747836681595037693192710957053531269781342158185866075761927250132502949162966002764855148617772028840992941586968519317086968023995581555652325515378347204522425096544423727272000517159208320759474496909316049555897951528791006667244328552100333962215504956536321633766141883773248190640894327466010228609260866028366396365140050086348326062577195968629255634809982388263859578120408608742989392257953874079525699080231242544887696732421484336440872927452359612354014333415011683157582199345995743749055049190084702892297963528344798389461496487849885897188575731057801853052738553400373833195568260254869586636444571887433326966876438731691249700008291352903930375743578509721351536774726276135825376442928147409539327582913089309076614233509971278979912545114560843262359873126613927851311261810239769439477963126901167360104912158836905186584851438291374754848859593646085804751079942969134819080446740288002849754682043118346365048005262014642090732479274831289252228444123505950327014989750403575373508196612724737672614176624957159057691034663173410395924670913354966502962371953925901111888385139320620671203534946886296697031239912267998338065183976189269476009857598509427830432357630967994164505344934963316089683174242455895559256984960541239249545423720350677000720932391801536634310350139657088150446475963239440632155630466290288262152725158782890826395533915814939565915464919722677434230543114382663574800954192696344830467879282539247029706166834497249751856137059027139297142010033532384012611358069327592647888566338640834235834892784247504988285579799879137689743035972379567420659464938187652825695499560655734405973265673329186913955930223403446642800362046365914921709230671519884599868331047006584620635186437099945348978685215093118810323153052925670424660496967875123521349220338404087831672191069291671143635845022485390645465758669341604513571363607003338408812298456680860438344534747125382654088874720015002035092434982181821357459339689953393197334720490582304204189843455017084743184115839495572803424090178254172438672284659009325453261651840442148030095563681105739407413305073615160755975265835713818862527272115676138427679119135523322979919154431215034746888376053501682354992223064955248547477978100325833329945718815659233194183390074240558438413399797433200688388805362342529576165118689234567476424207012575062414740538097116417361553781622546023229302736948740241488512186701467919500942626118776045905650367581159183461408510431481566041353268099361853757634304424184000063315730777025096035517402599727403514656366061619352261923763223835579474285425660368659557958075471527385163066196913842788808595190127077127872467766477125819091214563611296941852193357884920617066277234914658798438844850679793404065655281118515161599020518768401385368080178451683457128387768520084227808934930087165938678009236549484047386061779899764462125700700859252129789233232376905004865556110793393888019288442628734170332541489765421330393435057089057271912920029198083319345310782997405640375808821925459052572137979902604752972190506808412998695875050572362120260719395661143088099236507810757302201897182355666022930227856746017671774566280297200363554809766809132049809209164948315079879555191425736015017598948727461441868268552557816670309395211398354335776661854761914269186915684751738131469495882344972399956878740294664321884681156843434579083990426627146179952221016814192802267775420519631049990701906708480442296858514453542630584457023529382936231574331331281294879210252889249506066879019785797920703541840676716289431820994566175902070283340378720480237353714974846848966547429073343787592625627395042284573339388071612856558553330962820876509732595222701260490623930858910830308411750076275239894736165213265768258994504168078019092225111447931980118307165515508452258462841253570088313063935956387700879800906350540305072895183455265996511615047643482130791220568913139661371837024925422375923021415989559962838247802704134722110506149402232445509513213355091341606241297735992699846143112956965213934468801811997905099225942914091718153569949910019215279847327876544086694373697877131319912140667187504136744399712402661535000699848769716965621935196202585712737929718965487120724219163563589796765520436503367161802829913535824849891974646403524049398870333659744037308897222963120167973537405150735992849480905520827194098152405875504463863183244784414515226904257538635312441777608190358655104983991678078218649943187836357921525765975704756393721781068361851717142495709175313082677170557585035026081622723945095752991766013917109259686189828798859311553892246342921314668324193833208606580116440904053195858163292512961241589488318749628849778140485445580944817013435089791037194481573664777093485744828193248851709458678695318242524865120032931823485152560370114267992222069171513293008975721626644704958852957656976811124082944671217337708989889463577974078198379915412869038639977804616614412512006207613062198853050251512752497916390908750351385685636325602777387254384481853418668496648022024513391345652855412261628190240290448538071576911731927242890250507380959597238399431804607029513236529650380257877533378182696842001716299970788632540696554956127280167475918565619433301727958218437526755671629952766996243300586024733122738559379486811218079982403061775724849919967527872253568812893866392509925270662731155679443481275278220353860751130164552298190046990239404057477555507643121466480392616346134502125633040610847738709566166904868914209518922803202695673290607494418619260938429495634299779026379026107853957722401710128179037606401980493282761849911025425019306441243260911572584129754874994046713325125708334301607017176090012251421561447006248064030177257107515188727936252717211504680633959443580990247525839471980017927357042628104155274132590416173123426283857364242779187314230801616145706503586298487104812579896025587071268189877531123561103894557737576636683915949485462183716484312175706110734493843463808080871102441890963046166396733182683066162312102546411696775702527879952083412620374356669843751316299407824672877825655534773719377321269367381960200387934863716027892466740410487645239904767749950123469303006947568782779347653324616992091988857996248093348852506856383249046623244223464571104159717130970612421361953659322821619029935278889831347522988401336563610512648425727173172732321142002875723360648363969274466693753655944116537809582213502065652408569200804350928522036367648494750846625111794117508607668386905737054754620051492830112228390687030378893352692068160822228639683399460652892003405957394789145587461789088263830506285636630204970209534541321041996234965558762630492361823400491430312137394414147967547460034145183310717076358841975596169966531317353051338121811429120015043684448834128032145720926044200968435513035841773067781595837379775369608194441916543444088397380894048506201247929815500466676081217019852761101978275192142312137519606195920168799005024743202484785483146624671098969064534977894732383867203194301459254275491155248417080272085143615888518833541379956189048522427103787309945618086973705668400682048284097435094716856044741108184172046465788099737150247872736920502335546383494813930446483339274183410537977142822994454190581447626641886863048104076712320980833692954975577613649257520342586285438300086565168843006942600304430276636123735320011072155595382078563852274669379920851602974308894404553737524015219626754062891332776597014969163598957276059944857585822294924993752551499280224306379528737770957186470084599563326225399496686941287524537676599458636524482403019731716075025590315835875271987520765209016729528160708956985167180819883044573883917637157951431602938491044157704886388480695702923107205846059428144416815790502477230434584059841799155913230294756784871903091168368704937643023508943499670642331210569712699370361678998870973918518769163953973018494901299097617758597650663489549037576232668427528869550775985763534375556394629902016624933669029493639431987495840080080971735039373353199979086695775099492886374463941374647164247590325267957410311047187442457617923631757596090995688192838070946206493468699261080682647691899048876821008259168396466678952409410203370984218796983020842432809316957579785413255646383935115230002520396148551620361652887854907862393997871594291915825318489599638793257129560725689283744748932561825597552347786323762475422155935431117989608199797186366999409567029224584027481292588092927594750823198116042375769105063505980711193789121131817294176996698777395730661837575704599379107185372007671530181418091429795168307744231401485585120163483137752569260165125194034748782977927700991345256489580486807168676482351169350879432166534293409610571031439729546184598745908194713842523092716098462819410631011885712465109435161476010459448696942275067441034293096372047842100805337246757543046196199760159074792665613261060189300504119483756642420788078139039891121288246235447394911945980191406686391685011834535003959289197006347899187803632967588259236632048879700357194109923172432117385746968250689851457269132051165494329249413115103971056910005555830104888648773022688394686865048511110988234357291020780421767260309975385419746832842023309623803345133745663976483249892570112042523469055258969057626768192252187331453930579822344124087163677811761329758702015712066432165091679201639427330091378265089924790352820073550316110597109402671043607067351727620434447334558429928256989836237083956910271414732545058123714914117225685037112666607933951559238214357082399302910827611541883798171912026857718187417669992843192382855437852963622802000315427372960559987957160512337834640794281658358626194415253468603526948106054752342187422366930213567225816131998277089460749797792782180951242220613574610723820524199152609929728634867395041127238252396450776456571535560544135616218056814596718141483091578249031901065453984226966991854753838047858050028847550336262215557649548809304603563940550707507975876191522993282041784046685296203520240795356407044391326025544696426718817537706543240312839635964937850874661800974817412463531807804618563122071907996134376787730202710452178128357212990358357446058146978885328063702755946878984637301538609002369027392945211273363605932733314538192990507749562645323953870610253410483165101765698907763790180539915752699383506406667971156084205140050947227574697735874782942920813155809474501608685105499277842215492487932976500099392198859017711368041283471131098698675980614817611202706725348131552637211858351881114934507415682792991560768525741767724222093850430090309396751085231530970395447586429854606380026315658144614091631013858264694556355137294128080239152871253802172596369087786439957074166254743218633405424324063063724126445498671440932269313628955731975084368072430289973316799439342690311059998388904837142701570778437385009418623095227424680812153803028708391713870960789050730051200049812881586131373212571216818770999407258615093606174900091523811000105631853451330671091454460640740644906745351849116628161913407774082314626484865367006692955822223831957458713539643209997733860454440505813240524033101665766323696505294914163991195961064050608570836956424176102244323473050317562671628808079075983186503843504741780828841971403958141761685929797415955783193234422850733504266570280259505226318352479095550940037726390508993514335066182817622701436695389192254381080787352603832929068651352000124745883802819469534259804786144068761623043040603480078081417342478810481862350686669611140077311915820344912369341575748069209312368084955867926525794525644988825421218218096289043319917130332229411012171034468665815334814363065892256831463154731457185194116745814054356108847328409052674546995115579310311855863418521474293975312277154055630864681915226385068406896703444434991767641613394618039753244324793514873653507781964014502119562765691478832858045847299388385206040410548618486632190218248588275165775764237765672089732472614139009748995316704910304291060185409536171142728837100581849287112682590932585041366140412696929505353860633048077877070464258678703530888378232115601010891309166203845551574445087295429774973531293662880228439306987174292903671472626905279123988131891176076073884215510947071606177102405811399013574169359727900171104739304920737249146684965463608303870265870614377554616939048565965301533952152789249507193545663101047197590452228277809629490452131579483533111930787681214015871174868406148989268510028519422248448052386552036646501198325617062109175443774164376995804040456296935046803012877830687634758784808371700877962750357940418781594804855908724843951646076624949323696490258780027217322626267280886320813042509206112582655948677226865186627460037348369286605550977182556456124919592788167941174258591538747952826920219370042586478666200262864155537595401851237293078945776236855584082739385889208423104842395066300491982835804003717204666232373268928969875712493145219347284080312000118894897468970084131467273474293045336787367554980457125768648179162199020048459884229405697945903667459110961139331334452518779306932552378335384082319088706953627773219848433602990359364020607702669030896365539699721917544709169040729020510738800879696055396966507874384012464038818692024938893695474760622459598929700855633662400047179850430792722438751528312735445582514943956975272493150954592537965458227179057204785727555907951226345880156335573055873084892628188741639503154257527974108513489699490979730335636642390943851130194956846389425616626773658824093129293723885446588686624997858429494315963059598929052000037619353853129421122707756205266767177532689958322366817867616630195349461654489036176120011222646346342056577254848337326386044502397041468787629659480985560371386688091008409771512546162938054123161691641739994160400002889201062919825538148331059925160820839700618981586421415087402360486692278939406486452520215863304907559796458158082593847178769620253425285237048070062832865471794752818632678037104384169728956012755049710224994192137036851925846492388520464149456851814213376114768738449371583428024142355842221972518834456455282168397022667060853782005225483591611253206715225237481469467748909491129929207001269953521255131867404849981745502449792264443944656713914250137825819090790354119432783845220992618617463143605234795989127845760342648309868271830289503063180672583317053816439195533437516732220698606789120934417804079454190388713985774184503768605507546703455052920074846026038099152451987561229078859937939370161744499668991981358975704972250412249981378069505520527086683664597744944305642662416235366649506199814922042144155581798797375614109741093134730476644499841045239123992924771327494614800124249070123106859217762640737118012066599972707280546358562319029336438772800447148257623603571969701388075630838612538245862074698054917667040121102384496899111001396154263078690957395579400029162164146286678133025170833256189393166951757408416901417348423411247253658289851888955807139262540712708495365610797209662076523217959288213362500973413941360975515968150595591390680286021682259979654232980330285809869206263462151396100070900697801013591374731490074629642290193082581780205326703551815959364414130235400137447372417353591821092862678605814101765819073951078569458036519638231970650856937422751668728295943346820098675600874535782688924561817735553949151858764251595481809769181487880424350299033330433333426902062801188498367195278900299428824220710143611465902868490766173533773537385452783949362328174196909913706913780363408925868428704369594635619585892625100919186079245315300007850802360276252372838803243582657197120191439095025788357625426456767616776057819258760539517093438105842762119705207653470089985421983176549877310264791287634496901652910615239534573439240464545868427374237720965859777014591543730237292729573313613600343787155462890970271641858614690750376177842265753333407823750466020695588611324011664733225952187609094663987487015384735406777318192835948624692195952814611855831420856132607926453009620986216302843757739307721915739020866415627373295146063315781098615234906251506719773675404415413806495981212567972569316384348987972795191483665109910128828675157122960990390067812563200949148208813955561867836304300283658512058381488207801984956313539453314872292951794012213022244349323053210785364807954851231227011399970193412769088768743848559277004811028839062276795670522515687358039293302559919371645109757768638050476933903952801800297891635741870196175552980709550923203254965159913435760070579199215937026041425823841722058624127321658094174603349095969828862392270648334404187435145735964728382644103427189786318544969892398400664101050517566248308957919635203845719833456180272786833189275067125167317803911606368641792907712500320148177691193549472035629336603206192119241486667880675717578720448457863905474311427747696950176471744036832388319131897032726606685507790716986819537132051038049581902531343107493360534669254804147498276497453533896928127906936370101965496704206502359403806294073182933037764435806684627479802621828608313745026407924664746659004173474520417691665803706615991942533878385358921072462435438486999401811211662307424571969839445575701868296232812510442282638552912485416606393215497235006909478203950084967194328729701705429290654304150402710344133629027981523298849275482021789728501520711421105498092383754318249153685659361863164881832430887015368489674903793184960312287326544345992227613412043943533919544277530833815595032924162111973742888966335575117226855144595525430367982145956883785085972198998517022093302481418742553235037593914343225278187090450084593042067797119782216404253428053315825136654754658390812797108869060025305770044707779393297710345280063218767277597485336762103709057664181476122121073116207347569726891355417469978488703536595067865775840387219275598761643684217330191089585336510654827028460312057539849498887808619733864390476607009719435312220809766405826933177175103942232333107691387791266122162282795866225452187690984549601529631313990913423867486750165534426956004670526099306468818677121433585598576402575490974558161770468882415301772869480068256470525781758002729443438111836121460072011030522840670263805160061731200782278409178038984540865948980273249486536886838366352799009257297427139236543704041309964212615788897841375048018659260843923180226426825645648859818075291353399991223800991653554529246262388755000522590603962388271975577290308025257198841619092390841005751839325730335100249054843804192680899019500397570315583041232860431351602364054382028270872407440423157513554770245275837995381620886314338092535550341888519566158149298013562025706897648533991943507001724737134497687907713274687618662313944583361818186509906781133191435223072164172199359691878928671784557968103910372578089819315086899709552191539693030906118853393943528141810421760255390239842658268209920746520305011370838870008776086272574132520742082863518151056672133769507928364146464377074471991274137990337505742405390482425163327383591954318057469862019747859887365152907692591655582782785055369063683898460649930307133868379770999577117806054263442238061746356420337059738193976422806042800091531313394201453512765264921200004698653141603882060003429282996196382452599640199083857792963150449136857139379114495539737408735769994156837880515621920337251339029840214415461863361317628976279490941402632442929412007107051858494725029900399582825308310910973908826241853677933886875903280104959829178633561842430630575936604638523907222849890176126258391805965046669804409209331800600299037392508788566495434502512628123619046307329639582844881015590555241753684497826767249490229777939803548747207850544337169997225479508114926512364494355617122760336824893556980791051631030571953557479120268127201362618807007245333403438234777324207750477898983978649367020024423127161577013112929410961031637744516935860946074368721967578135444869303832182546771244270177409270298888632478259054501064572197207612572185722212049630413175335466870236712413907447726279488437884495067994709615620355637177059208176503592761119348656282446672097650409089624274544922329224335865483186070865112488839973223741373353856553309507824873370668161621815000174578531634883394327391075648718252586235200383138308289820991305050995343654065563051825566015201151963700658913569111520134757735993911274544750293234927197005443890128977015764395443918916521101885261791622992730085060864998830200882342523077785025175354886849263401524008902978775070436922590565002097746821662502048609014908010557053995526378010355420854975783166743286914283404542313202920260611981855367056994368621598827383923258082706299039741479584094733490023674643972404212902538543138681075364977266147754327698750971106420683050268478141955176495756577718671234972500438968673526198539007636639483545872522832707431732944984722207795560312347606013061877347379518014891937690252702727327899053201282102178066516088803516445149210279595474550379181029077870290911833384102376191266514212602650859126965850427085635914958284254692321259461072205966319159979641183965130861967977820817600515662799605240789936981409259507664621188104191188811839809947771757940177375408760173159195730657336471246452933466525556039585424420719466787859376279002176500858209322109366325203568132998959172211642402181650955192232178004109182084072709245848437572224113375867093628050699253123490382748962559889264293652454766784807872918889971044195126717665762950625127270483924985977607434902321894795462781229711984910386867811953044318179899859268468994084319299417205386014026186298924239621721225396349902726008415518974330381252410305644357545022495629121257557708083628430877095170298694767445247621733991310480245893710304689841424160689223080880529920261323981166423567940468901896220983236863457523560452916346839713904464650788964786816622928239726862925463438747425490433529413355191284292564169775853656234397759132501452342874034324878865576905752066286559314528835244005073324507607232565767932758063218827478893603304136045018318691904422386460802072725144272116121711678367043568528019551756062286692415940205913455968759265194161308747399218085716948957764456105339523742155921637540521986114678357676726585770407012832189664368902396899209980523850698697192989765094483096906065733308485832313927933877362123275333448424039217324659548173623782059055764570846014748942522612218640913019883345323811308900368804041172805630489041041955463773279750688890326145719561443473578520512035594842327269581959365281412111470696563236974579251957923575887538907628438071333918420407734933640439047317325311493401053138460322252084474496193724876759895123739882814481209457246483953956242127172129366873330764830559125142195896686570163766699280557556424512761169558361877273697509517413201981628370154922803305282718541763366463421528829057857704737084463055435814591063811699073608218893871939327838430926656087418149143196740576504464207311246250694017909877580285199669745547051710595949404077638929926441230952532557550324446168464226360623739966471186805269919122259568078416443261035693633216518679113115306049289494920550553480328667438191573605914591344186384536856155736342551194360553148960007125761197438042552391560336391925401026140027400755738129123134629171772471525683155761769975724122515015919334358545786386537592656610414480562637282992002738400681065189139148118187789129793875997936543748114156317034876559064320675764470214443781001984462527115668948017801030451475533482190464843992502524954098594581495503507828587190295928535687818130703126591310104074535320232317477777208748901939115078290677324387522635287220386746745809433313664389514944330966506178206557687425502198838027511969747913009895469227753934539481629397906805963012807889562880558301205394031789605156813306152028479892464302528199606967126057032848823755057212659921887140008444638660859726781245621721710885839860859910825664172119895334115000805626660696163639781976563377317030822543304991551631894335673350138826591107480075471882305271502148457571313625397560471545094653095710149501637915523044935880346674024246146941376996431245459307989476558185212333054905926642777400719185083277163548187401397024993100833115869172332146426657130568705079468686501667861408551021137468662302890828896232319605361290061201260955290906079539277220659154783065967168534938874522965917819093107132050643806585918421845632014061910337827869441923411860217497899299625099087449913904207582387969040858333830069177419915026102767201250847235499132554197496804571365965838590831546888461901840328126819567338572408213287216706935351285216256450083647169977395027603861352331407404565242227693914918837585275385594545166424699954720066298213292541046144975372891659628785428184204634830578703982344156434232146425250245267338591836738450316611785773708264827567155819591037192240063728972916929704699669516055927897135446339739394564661349767912211187901186584236806756833268865010864194151002155329582071349828265751977805085113219659110863978185396145438064906516575496164207114404010643851539907425184843395282812355027882229594174314614623585001828150174072806188651274562387063703933421058012691701526706246960109613760545452719174827025353439182360086243637950383020978551323658579946237379990329505467902695455554602665494817634647769215155622897477725596828142133388124758354366272519865931170640282180618058685247689055904108394495997237079787279325468376321977686246578847174440268222377758977121526745622717100944822879449499383885275553154811804286223061580659365003496990541469635598978676459778528752437311744214222013764577913757104685742393294311564708433256870854594861612568225560284722182071088989080306234775666084963145229852029730442897387986956661878785705071019971559685506943956753160265351546140915698014634624717941093062612157967936774238108573044940026088491904671271224150794015144326949235125731136508602505122615842866291474768276656000306981842541817835467988981602955463674528761122270728611613232495790341431971241009088795023591758756112467589537836547666724794088228923966391897207318963671712606110689314682212377854715384897711194670639410736668034811313462261730421426049810164649679089637249539789238547142945944377958796244219105123827674088020930920989807334044275904857121059454084587400839427942812635867895164667228284741435612404899250045485777749314799039197292127639284736363946595516358558176575595308018332114810399520910158116514186694402791920364416789821935596606140189208680608503327916125875138916071540418104393135312972145207865212895972442396135518412296851643433562673454261145344268633294975459965863440694726544460202933709820414243897896048395188267850597431601261200442571356625743178116693363528246929470573368586192955469453656747704594894049063357657893849914326770711852047499250531911893350959096981428415399869837213898078220764512456068696035673787522047896225983404669927154279014335527709049868516666107613471505696077480780229374836008432288479813788018162649170048594847329153562456440386930261134720162998949317727715666689823615152758687109604898871311967077505857614129035493707445108408668815454624476586231769017093269346532104586504722523561386296164570838167325879628520124324161811526869265274017113633557891772793411657995391564706143078790650901501592313215257125074593112971692892055149566356371908696041573034753772968147595748670915839610781257820783264986067298117253393790503991555639907676587743816702109639509719569985833013629278877804539899815122996450599823348364272289065760029956162707985654145499603147709511910415915030441009769977666324719303118498707608807151672670276980531002442360462851311223783050031278917983861018849004143886772663816922567339807557989418446510456018082255546977516595089661212341599891084475102183784381182785262068250871605474381415757635551017673217162223874468057371927670142755132842850248402351760629579917729381087749885081655313254819152602407368010620216393183723594493489672470361501683518903923454032903431356199995103052117740352337914385566561783054235140310967302333136870761798619739565151125315645281902426255048046237297248577449018793073775155797555670066828649187779482485665112806641897999226527843446368441571793569276063274403375151907360630421041442731509383571803986830653079332818591448141342695308699060973443649703106273069978343288161569914451017594400308460788331449475226893436494359285160860883607955155764767229194542344587824010914038975746084811065865948582125686316357004076155035235348271581205262553589180949564455394767572763658216412574779338751757905848833779060614970541052425359908641560795684164510783633035849319590111252189343889947888124806471234282033391872519865517352232248777202881140928020284933689668758811285151806644106518150301604750903663633793854459005526115156954658332610342162005207964798637016104202758972174351168656875451268950738523650268550767118346813172959704903403997245623454123716500776309673590099187257742085858657713084296435346023842655802544164606781156166109365202878294307240672736593676823974149584750251215874127372197255259779446964090126842690021913825679976290447570315189236154344370629992206805456424351850805428716989199400551743071675115626057975731099013199027100880244878691090223606533372739569497480596230153026645508108862926980451876948470958277171567635645872926669042245496466532129534181425773999520356349592754325880225783768944630170739586803099078800886348989650531514843640150571224934501304551467185036706420881285720362696421776017166608344111404874566177831456383563474224818164065991585465017676308786838686741379153011062800922995894777154934047447381827281271129055788701990050676758462407027131317087902296101046052894475618374622069405368432300279649964673609972120073245781349235661348825243818693867527278767124986737472972235363804535026865288611912514548458389465662855238882299979985280719410298781286990045950100851556721434786402056726660220148109929218559555549715176753876290344975195266677704417729385648322829165123780929768955620129406563393165698709050373075868190679910971738415276268353805812220551644692188524936550718126959124233455449409269044328731815782333574419553245985937204551864068143096452714046696781726022675498582840678865575524277747060822214822407963512406204452624502282703070860188801934525714404490321928732841658988797059412151745837459506240389338125031178686487855997855601631906085634280910275297163765204617616382476985238266219246473102311329874570566466330332373307390886025367837058418422149646017818083923954429760384868579556577858138354311431052342466760645530935140724260466289223982439260274231436232219240970202119532383734794102346741929255765710396029700389891874741879095912766030774493346126791574058290323067236743850260434832210332946529800973984100048451801773662664717892342545824055895145622697588155831770390410917755216913270148125944776613546778903737769917514574699794914342434519986969757716802455604948176778212519057514044755878600311340591004656239934653904390498038796144385775234247552116457551407053721662038352049894051609674843840661467944772794480067061706580086426506630301145013639673701808043650028956218686763173297840140391426084770967028290717427247722435173365017956133989305824469054250239157481802921149245917553932818253081947778455907565999836492751481798946027940152307613854411329423642432969689090067543795858616833387795306035570883012453431729474853989702034534050112571808189652544952047920342425820828478006902649861169287441286319120241023690533640934197453096621210378971272803290623022796031536763895631014191633234392100356468096820505094149824010991688115294068602418329055210940369271613721103216831638535395064564471206428190761946857742199181977609206651668727164819212498370387528959246261379624278669466085885719177089085290469795534193426111926525835455580996356091314306548827088677668348725239950135142248164487148781151236045486831854840798287437423568906576689279908991083075441898728828059667147934435741169798971778031624192671100227290471029691893198253866422291032231273857631941543478421460725458400348435900863539126750000931429565161341100522195105699387158240524212938083409138627582504416951091075187987808967872712774684412410951359568383790712276198966092031749874820614843933379693665881569127473912052197328150934262888723581134425879404977726556735920246651067475726549516485194928792237913995223060257884308439303321229236556915882578184044744533415906778332941538549050010241353867605547149993635291983587112684776691003095935733128275628820150158544012905405000013312551430409269867693946230521327136267105649110715840116313769995464194072159126560010410506955185364199623181795503813906907139125025732475037941555263108669212338814313903416680387669191985025353102130878674688993270038244831764719576098256572325602063189783733963190435689017100904238477880335424961947912869248135188569812108583554591712882942317484976427850157635370107633462025678240050900621932444184868289289650136353118299511034067625442239139273985639332974812145654935085213493081074941328657489236058453372917024082694900524153893328626761384510525202885788896344770759894581484133041903746262848718111507308518984337718370295553925014604410398511774828810965466616511412956821286677558406685422943264909712635005029975418393006429182138155169010444145461061954041266802414461810328304604778760794732149538321289473493317308216024867574797230094111767384395729034919252584587695907015818178125850417397521115732330758116036837809340470429547310512337704077904976320984812738607315511482653141450884223591472937108682787039849977057012516231895549596292417063563504256945544756101698180601075155132481937901404805096061291751814187932631262673656648196357833745174885813298609585807703233625226234815937286098182768730748264961449099415860337250043417146541406606891127267361066917943984542776734530800160961121994076372107170834774416519383689023640451097235381907150999135222501654712638681612924048552063665913679053194346589454367873772700285473032226117037230611264032805336691700828673345333723802397802450077735077838345878662221456477686492444547957043156311922109398579297328623913917250445394073266877671891579532661104523661410755185943265119961932194210641313943520118938242310205228142864332063845880249961096319903620096513022354214206103356046909754711293115154019706930820608972676246065153245988011237506018710463805675831348119610513992653932383717078227085795571708204411735619777406944657354879912104383859679398682743725613866535154456157198227078159756238070273130720511333975657265005630604063752641319583901982155701399024725773810614179725360516563296289631804091343263803646481357797794689858940367282309682399341829167448936516258336307658990830535208974653836238308466036246138841152671206945673672958515565303644084432685666160520762065769341993771685819670444819277633868336730779251580193168071371267943521007430015500938120493443760622968508039946901993932646690720244571305364207656140865440785620533192153868775087066392403053124380096324152637439831056770428818907375018205221905098722530630905157625021036284013680129070722209027947782877580254186731503729644118825397625330570290611602382480931539788845726782486949440683579578917933824324858154724655724018306966055941412290251147519413691736599919870102246058849781646048338151293787411293297394378729729498516976686101488335021761494912714035088669704841787729933145781254287537763770171067583603059646655594637134003505473194034375933266272367458597156503691001928822335684460472101517778730935551078401040541788970560294693323967949661904785610958143894522579432182248815240585223552853426376950213580760298788301901739288365703960919206247987864099890107038886121464573762289349477998027647108171684004243496025091461044542383784100462602872621733546255717357004794516429754897102646506434140412463493070882650790991320787582048553324859291395974693479369900521112775683257211990092966244832496206370000189400204733842208100963037857420233481774401781478675081913391807791047125708511223934145745418866817157721280807385301488611305652766337608332617135046525595322863765096829390223015215830753201852138392641148204941091571980244882241884603661846607737898655152381865829330929418961962076650570805297950064434491692740295952953375168837583160820501272992489893553121104015771043616341157655658292424167106236383505215662594310164042975615593443779614407119522957300363241938584725857214513843143030405862263311834250881125686471375741133909669281946629944207897800790404501326286617431950172294822329124781629496974393656098024191532872671838078955981732007413311295993583835062416387628442554680916486585453302938699829070539952381238726662979314910963765121539534376954855773964196187824614825671005340728074331873087972629315801569496114204207473636347854598837789439248686070960334630094459280661029507548401244625695066413732356613456694639662352628347573220556629341564312403052587884511830592203513231108399770644879228472565447002778922663944111540497603241825900583784134179763883195461691691823239572754878189922407670950084625770172965193084405163209746613487242536074443271024872936310911304524526185116752145213832644934701693727815009904183048812926167028274740243044125291602007813724051946094113929168829313563405527256584710603237954920133864573336605635360880830398219502917151895700781104359900526297399968906700958323448529445250948007311735162241923640647993933419450947847867839331339431404350749094769228231716421914259824939921895919501196837407624184363031056371170062961741438158397365347411133765676551848615585038137760404304707317730195829589835467197510767316734682480812383262465156009825208092201826901559024162603832596496128480373598824461703708684466978357007461789268374485625578217873875895201509114684785771430433870084201069182955544925579486343333190820220116535912395936497469404669357894094511106602212667369288757130395157273753511887529970685852496123691806016893451866571406692276740833644542556046147173215006066673798556434943251154186699141543071671730405438052893509858102806865480612383940310012841053801136052590173787727874935764890937566304204924213311097069603064415236136556825567361187794590719304096848134325388325621801558216864527276563545191816120992529647329189620626817148509841422321840675337853263733777515757810669215250177660715977104964244753660339796786089219496460862792426883448162204169530607395865433588358917636251627082252482693993925149844038625374745409699260950667837423968140577091394199880592054281050720267414287031018089710290693699004486896472514457895675114880137359685063408647931570773152615325936489814560764081145433422027842756016246063500130416727006532543553225424472758453804646381109485290064872327936521821718169176047868500342663177717756319223464134585539225225498775230950484248536767002004585049188298227994309821152444825812007724746079669399272085159758830536736640012936220262086952218661745106601806150712512101870487270069930593759076772229249546225984527428287060702339944822798468919452621219648071420632285253881430837476434751638746841331933358695374887521266263656243674467808634263960118644019908036839544154272964962365873026934425710126079381717621582208156886075144377521292913225198334575525565154789063137820968347247839244927708273864404648224989403385355244463108741774771605704084157893076565617893640072995262309806002529778704808359145739872566063089059017303792334368974456580201650459341695897277336282116627720247927721108529117982751345883776665130224002332868574234220959910518085067937161939244134008301419177461279988533969830283747869629341541377318150418833847514084618028592215684705050194181267144045948243645778951973090087301067210587217284135962762569557901488584989245318592004912986497239011002058595164847082287550217172057481232956063333991058548386421514782346389387875827103904365708408604218196728940801380679887050083837543456857830463065694170047899427412598798859953634646709388539440880951246914179975702114514677568716411372115560068710842115928053293675199536248241188447879340016179734659120709107162730040691633472037586232437264642286401015789161204417506566062446440085571733403050863671351226688598904129569075448329212249626696175979561681056886810835882737598209621062155551082476110660243329925147624617652524292282526485562700518985729750386777620578332984502878668955430103000337083722624946784367923036199790430384109087085474087840571541130363573288036750980537105935208562970887777310987861798423122954704205975820234339567632676347612811283966562214650337671341032926911104483329500114768686764299644544695491901641782484599187726693526763137528023139583831926305314645857217765702659522979905957487653794967058828079114588349928256112355431853714040411114975714916532471706920866584087470992177818536707070863096113403248764382973337461461920314091894907695596485773061312558974731402429497921240837942887886204768716182172669830651925822198783721192916572859917756954203636165132919106872927806631013499834602503201200667798975989510305651424176848009422104343549929434995385079900674354221645430555156706545004145025588279054202531601959730188860244902515608382965369737048332717011952662149753546896655096297747392335346022635113676533032790633682550300579629518361535957973331156295305567460000920526752662401550914131599152355974460317268585642884800880749884236569518544901064389184179751955871629565543662853088788680741046209600210664531977927642579368309845609257847711777083860800462874571803498481015048155744670559967382453438542972723172846690468924373164655526252059178490712124906858855675662815837478098844442633894587784802028523673803226289086338511866292497163263027035963647137013059243462034701090741331207752867693113423452573685362051028740536308641942066382315150807721491953177402062027396655902957989705862398426608893321157116194919222863465273544177968731797530445069633586482637656479189740776131414911060096046723782811671905437474571338255000807356770584278187160296373349337894169045134115486193429072405326951398078389154191486237288476038651359825755242160771439720527926292874246491290212990405234453261634817492646133011128132790369252281635368776505971631613479188029075894361716770833788942515001357507596999891670227677335460049039139523373578558540352532243499192017432365084538303655359206802914274265307926924750483446051066027398939320685111567530081679835568936003588389392697029243687496060625483232878211415303663460035427887948954287090621074569079693506698889561988804104872517448111535460469422561159388370640532391537649277984167700005634785105633409681532386855691912618458727532267779068634042686116389671842588262847540865778365364976564321098246091519776193909604305741366438617276210399776043966855446408509840370735095366966077678905700741958661741432773127612049630568821516893428183501743472435601015658384588575619178595009365320283575848576222116728926506478795184879261988355297437894197724054669855402136896755592300477275610805606644623476660181495457260179290852421881883373836941114856532690011710391882326396903660757919864734873984945531727754747417865493711802847386439544012310704617363952107882261319839154044611204981108335384622746884812773406451965286083225840482586910813427709866222203990442383290766878857210683429721493650450785105594063352058813211283536430419435592197433035957996883145489909616077923523686669198161929750384973261698012873381876784655338192687271285517107736088739334977353867484523454177143244553929938094006838131540963772089605484004447524650475469448791457973753367977422755974784543551577341846752502103618974655933375480858775472357813447076632129393537470358873216090217309531720856931349344222930583536175784117477200157972987413404307986198414047827362000476228918852035247751232896279579573079967610211144094133342125965464088349896768674768811237108208175415773620502585337669942691626538661390800995175364710552310957205538322509196096163334521563202904560046856428132950176960940482546336394188697939862778436528769700477661065975547757468761058366191438560392547420832021262385409273954129648553383839834892210313276446815868890056845466573538657966009351386521070594726609910949415241506011710024656231144211782371121788638879497753528834509951304383834068007329989875299091296753217835041282344542284900285583466071794843395113884596018711292721120175209446513558571612029052416256351678349343117936018319604107752842433853820065612058644580359308409522703277908197897284913052248382091047447971782254985019623521299185221292286765297064400903756010181248013664434166357105756419028940814724062822229897014621974705568677884989680697540631523892514767483317448728388666042639284357784469941340264077794382780426106442589194081524004307247723106304681521836438450094975985871311619462446294608170607525238269761880758166796809225700917072772326194968755064307132445796475870092947133524523891293460975002918551342688824051292746743613946625547314620421329773902931928215900971122452925858630559336082857136057971998408418550096481547689011854490315637398992090894388963231498203610501384672944344449202070589832334034411362136878687725355587871803933580333031469478147684811988931335417824645763362701686565163970422186080525627946429327595500980106343402471146696139049531234873695511756098708376111332631467161097920512398924196901020676264802349732754068041338930353368980711549418149374087092984284907273702468174071503724182655950393922568714607836914653547846279977674846918478917888722017303412975284613560761791708468429955997963685396129335851633775777305141380987271117403068452291813849285486386461530919199099853384526077412354113089022692868802029474812429085014682313190291871086319437917055583502601414602372217043892767339166704591694152705943443546478579079383629739596372907030221990190047250917551064688303603407307271038515251918470749647239370594305180372106343551003725964600703935405330766741907729573327103477549098857936352930797799864876165770807748492841237262211505805514516410371459091828174074917625759139430878388622344042069910551201337322647352863749772816810731788602811200739649424442697504443047225421620087627199509218886752654883619007461223487285940552511340110483505689566545923980753163406979254418082197547917792677670333422391336448867029929939956187115637946571198837477444582848935738797943214032548939881621841396835733554607279429301567504499467589409105856751104706139364257200881925575645356241435813858040827212220792976058361309887527105185647336003531318477245386160507841684900888878118149710994732877449464919098274385819054402144129638309350539393089768371489990379399812012088562408501491034977512781651676672969715815202845142501347732170672893913775369230410981553140785566314746125468418247031177088930437282173504906909423817798470708186448448637987207126759644238016793188868342762917938337936994516901611292782459272620554069553686837997810725071421556371159168479072697104133214598144373610626597094249824515775702634318096988312170157459780516963562784114392269625339566695007297330986209241171994780981444772557621024293099147773918447052583817065374596611186455134598159707366897696764796544052046102303818781977788465088777048826972845212975276786139085875676791476350942449204968859595934881390263066207264571031246428453921285241786127982790626377037707228837256187027056045688472900547743857765595977826284989756097137839972452571201831957390903281485362938588716516438300807668995324437483124010764236040601635481689907181285080275938227941448736898523073152169354913364254206183636791052955824106182695254565980647186656173408668826487444358148757316930828974888547039447118280901295374840621316801563542032350421661589847123134522785578199270727878051787967693337210648995921046132627410083901986592330350941848064943793274738858826556328912793102898163858054707853116967885452447057478299576338313234967776000339882759395660337307868500996183862356034807293707440688642296983230088009622680380117226328241217897576463621038594517862084493056512268149915490900912152714598307539143149623069860773109599293266298277434445007583134567337988500785028212987538746289223092397529613962929703718174673274797366743401995822453403244215430010789405172966816322655888589105977824341415738314453552148953713246358963214755416622246605297895328994817999024428582047897599463039304646334597836103720665630589746929913768004418185700560204124302972476292336161582463171386846619211730055634770046648552576775162702517474913319861447491819611151238706208436856765966346172690154331729257566521450484571875187268279066433582305303756192932301710898113154665293777740593885474811828808944216517174654128589993403600650658503675362330734984546270247065569136529325615602619301235860611806773784305392044305965751481960647422413708015292992056974079901859619343610605760696267463810887659052950436642320419147759932784591664321834171761868957547619548163701892888055260870900229621372444013748645690268951163576748274282598951400322871944786057390396940202138503325098401134946954872206235176472569031598637291877192051758223058722694691031786106857822817739030452076904374970792828231578853781373955490270420898930506694814316120725465042123821918874741507282879324990339157736616200079183445861313094561489448911833286607961506856901729429903239350929323556852366416051425540656699538635734489332247339487969104411976983448533790396694817536311441370400409159198655563293185190673125925665573169996787400897293910434528810948688597452500616768795695946256962414958263549490694326080267556682689035653162244422855263134816866404635426298537767077105815050906381522754899941114434726595052175944182405610069454024492508338198447985032098048771333568926504342099486098115210565056405589018438240523666516332995905667764989044894659903506064288075142416145236578465575390833542717416739246832232094662222569632064922048317374010112060585217406393822100988016436814991475654856496853387195156192542783035601983629689311556610246219452810136885997570479202993952174405557938186110735965434051599875457434610636023958057091907110987021753672574409872737403754622696298450459440497063874785026410993757170673792900030863176808721714743018276081282013111378902167253180082953379363921655950823010084562424326938185402629386501304482564679328703789780588455198926202855000452753866327236220386932478142639227023636762721183492538809229118453335348303521305151987977395215505232677506374251612857369891499264802063758210653089040414712433824923906924910946091836020562356440667679155226347740920167108045084597632729508691942604141177707313632392582673888355263664620434854557762122268502670493714249024098931375719757423453639473025880510046852955998303127661040957833070518595593010935428552922991631566203335918430971023368782866250861215702233547860897836773246790663360136923679484686796065472207398456405652158190567592368672822494675114107495564663049875993582304522502235187966732501693789565802591457177059108071644189173944101714240549980437381914309911415457093431887824318882832688719007067826517953080103970998207157445558332323079116552131260276050747462622181725105858614773009894083791843713006791659162413407631634996751432582936304375490298521071225229750530485078275884098349783198369533842831052138792806360567425390888553415869732177534582775112956076097852759593117534216199566867923882830679358650141338361657189245520955323209622609389623242879651907855178789447953183905638537773358665347841040373655112726269502933325701520969650523525331355185779317304488167537409864305794591964931720103953757945054144043661126126517263330414440203843376831000727751518447006157888062363394386512989731149357655510551923914551427264712650011804098192864000366726761305470037721008205075697182562867288977872166195292150563464175488014993573647515839396751156625081219292898766441672989746760791247138158405868744195087968366707297253263584240737054051802723847230810604749941760902385802586819579016005853067401296779080710260190249724023388140362776849650512140590357385274773153681215943744780091872104368037347608331320002688752494160638732820028472202051057479138848917300482474550575729780616695124189623091073267566381476732035913133937646519795427933234345570507581860012390083456571279750480138488585717660538758561666092856843054333752834209356499488916941882988513194213850429545246017516422600288724718199025059586973069395101223939927812919327389676168590947439796380844031717321160425691808332797284331858637356464370559695612069630546737700472415137510307181266726326911629868122202948037056679998617347210437631367796096624209617924151966083974793347940308452835924403336395660656849009809959784998966916684970073123693348215853323290892561090181203593712726400783626288717990614111967428602015119575529880288308844889279108745486315387766995681752944032991299692219743330739058472883997432931507959563580886789191472152880395460200697562553400194833756594796581235056520543333592860227663783906398805452038457099686126932227866631088901362965152736080566275109544945934759655984592839169203538639787652610139907226754530524995704527520842165823974403815868044755295255905945977597388327418907468281838834471122548934526022832065724357805288893056774859419073196530202499028451856343201504022757556855672246755987574125596153560764720784573862453275029206009102647772296025866730192969258447113988149881815923503510418331844512348051342287376831347919202619886084909078686172994567861417289957508721594058374005149319315934101704054815478094965253001740651100740852264310475251596882561718325424313081635405392434236465260520902890432595422652187433802241407682979397470510897686329143949028331571494254084625534171871490153736964631899838993900717440842722219938305972381528858630318249091122984951211195490991833074027532237867509466769854542760770544670987437369313384063769224835653402122893402386480254534230603574230364936001969136800659697108102712349284041459008289049772991563649561776562906684629449168543888531316343966068947492570170634509882969183000393319457386009307853273193627794118734468613181696134871879787722088379897684486322965523819183472959617071869248996260374057816316878789734415776267637222746986586694294942569116784281286047136181760401407248409951153726168873842958048987081289305496189273652223108858161265075825991837846294361140163910064412371968691225087365408440195699120632065706996038252752309008922378288492197351683950036097774664247891520464622425834735773530574870552284571923798884900646642819537674383995506274092122448954407887837876622730253354160820940572144992645856699179191814089092723535934134111073970786544378962499482440152841571076019670192623017063194238120993780363522259574587686147836896120798451507094908861802222922069636154832500961002089290029299885208771119962722749100174064508557578424682140818837485387089825118624219147104175047847623513841403295967120668675435313463112102123667501582618101601285281640052354355356684620823627811505617213495241007014559129457878974388875934963401316480717604084059160286577713126027783007415224801114328709624826416140300056481526670219144726852385345090745055120123180736401972150218823348183927568888694367646797879671602945086435247748265959475153130623571366344210450512169051981513547564096781521767439645766217473099753902540664772266700912336568727208414388831062741317858544963415383591127987208683954629780347471902495711329949572531368524842288354306476240369097971715836051017481120032719473567744070487151192788878900265206596770419501892427563544648553272410764174452619964155003034821603595902184152579941495176467518860255018811620054709058996280069714846446385243381858367670420842231139651388884462198612895558792436236001749006816488546923697273894785112182940305859146287532587029943418942237035657338678684401937497980925758385265041340363910239644384408526279126924900486150084942342744925291026461505708985074706919575193087986255507158920093036624020156074523891840357401883106855360119639391529346628089491166026014317714012923604192114508198148805805010639313436894136138050078702902479686227125773490382474807022537975568292836362526998037475253706894330630727742950475468219280594521208817016521264586009675538043506443868965402179858012467893474151827124045653928300865929083915872513861081713348443090926710657526354529655509126675474142024042084273564778460289950522081743864236293513856104742054078206937789205796326743204868433802819817083093587238430515680568899405290346208158074580674249318588872591154802843293665161022999682418279028325413001749183097760596907616059513412921786973894931729545517995279026236212585676619637888425594894279402130267302464581018060957881424886938285250794028861054440649605530792629164460277226786296052798044093533710285688111610365393497110538251552148644807719456163625302451647838509678657962062972794305605798416387422811510606172501299190797509390503769790569094726618360130613269622489672135291997495954773865298022995105433414408015403627704048257044724191263211526109050289465669207847564790753226704087725587618592634838644811241737256493532432232827908863724309205252829708239840385633869666521050252740315797144076554140091787479668805296766898816368845526782718877921567905382939528466688545041967856422018570531813804428247127648094924955339117438436508278582959910106545636410649733566847068830709488428959242876762350607693278710898268544564586371242988891828737700869748644690652967569355400685588031223280973040475205988735738997674297661874456183736184600446089976216300888446794030273655008961904160342978960187605229354512057908954893043465218246384915928025568756903781889247305949164994453890503589248776450827924517593974054070163567951380580418348951788926433311763457224543120923055868909950852884663292498416080767194247001145410770332038710318981502591180593491400879250446126980142084180506782167563653503541115041931991946047128708468793101149966687880487801633005158334443383807627505090665627757801276919883680100023962670827865476220156632845536049046648495224087376527094532986293009810037053259272925766960941265466738871596424521653567521726060469112836328079220098873800328874086802053559111779675979458513762747476889407360133376337503815184340657306688785803335341519391943583865040692530399608350758659741681791651372444432827520640925684164783357728926388427622647699294218979246805549297189568657784316764849570864636833443174504323441627688841202031820528731987704473624993916497032116003885332060622321973880710391912324737475697567923635976578478117881525087169213565664080063108255343429434816815792062646809030125360407114491099540211983438169467230957413042599094435966582211673585743088844169195508359762068433115988242195511699836628285491336456365144209495926480030582887453000475059792741832029160564741142733481904965802440097129376524701575143701853205420795290233510083589722170508470003615955361069922554009875539346419935527855255925651187343028905598931745731916113796838322727307723581213778460308454755467818574890821502818093376660071912787865195136165214081710493063329221342954014037074278425243006332855542421327114622978578189283095077774513565967450258138755014194239311716336747094627278864617805813402994896400504369136109718185857445728201301646698566743672863259936054016832244440717522924426215133328410129564193786052194889492824751048120943466070368753882595646405727388712712272204422421258796129957959963078805060941073008811103756216156442915958903555296341089430480067517457001712098455415054413915478535354789611625327577848905714257593791190735435009874386955175302945998780756091667256760929598453322120036555168834558916942901815170791280906623532207965435170992634951663620239584378096579083340514671002908349869424330610069795346902770517942641672823335182747313768625309510905751741030932897439347409359646946710138609558546276071954386794011305672345325220889104728003709882257903507285593345909993374521256985705532413522561661094105723852386576076365851366289800852009655335192659324665419744792129896137123988234845661376982223858881027275564890886963102332122785868052389508711943189866528858462575195300544312572288610526869608961858859414571340056213483920133290235737370727958579776934584245556482949344926989642109132642091610166296765168295392111781957776198742039226747280288090874286855925909948015879186807422339957975657034844476924503616156930123696363953142530739534544096146035930724364712553032044009660982878736876864724857483444374095032091876287693532740843005980586249688590893148396340321145931516032832457750273474886616890378137416902652948444160394844382185273186712283010190370435970272819705316250599964793668792615486082482309435646349660179348098044455516855837403183561749248914922508734862718451806908973184258923252438332981804643773092629382880599466808979888983392099165620288635988587557242056520095704492213819463091026954395745861598461283430550826613129631313410470642122913744504074294791179999963144367324357337274959273957721514422239767915616089118423228790049134400083041809400580148329341995575884929012680132086476088760657246548583061768746317981737967728441996904589552085236388681602321190515474677849172351844909570835943572160285220132872720649739466807668065265985246844114237304640297413662585038781704518742949535556522340400731214471887069557484309475820719458651286007465951619872468316523508359408595646293061561914407047539139728836263492211336015465591126353116155735414871389957494318651043244466152709877330802729947908151802751513048462057171073844772723653832521571465269374741872141019299704487692969638227949580279282067520346044006893280338925928070688203875406598153900813191762565687470338008469697626464516905277280718553642793926206573603289629738363444371215467730650381225591912692413099125880031402099482728008148026045549737027277420345505703742162270157468351482110740188524761716772766304686218344489049084988070710616631010941172756600145665390643531379023169758521170472678047119693284843453800521352609481080703993188204248814107567374913643901598935453127344089230815005528773486709963157482234791940013561180395309129161909232945277704615527643787261456267668359198939063419782204453153243478679993153164581696335954764714532956816114669656351019607961318934404454341699316348883148684878391237081495808013014455900572928838253777722486648966057923362789502268138709830939460200198077217206151193221882906978080503330576747233869669352373735071509433067169257863923170431454824268327174181809048153911844921100430114825197495326907112533204271452406158896270721460561324724669944665207290130844140515683305056024521417579414603368641403421508410021541439580083037004658557642550837252354127008749451750883611307765281739841038996388493297241810083148752871855453768629317892923167879417910683324971338827845540218454601697140546620591564028563380348335771281974142239077360991199287797863686050810483137663213462586464828886895266103154832037423858194709141117226506500472521630459936544748403487819212645424718969355488505604347688224127029388062848429266522237351484487818673213120945284506777217669598582342128869934017869930208982151054007599195056369299866993142642842969666677872531190873310067104798647275488098589271292473422490882601976316515931027745228669739846293362283546564078759765842227648348341363404930036964137489518593469099237777480758606113445019401505219533505342967372138689638965272628878540223098239204428031423822936691889096294243105222516162961169530558354994825289499651405838238203016116201493292573122378262815576569633478618771524780949306808619282083656866437101488513420403220989076167346164640348623147493444076509631402964060946635320167345068817973727756129242075222616526513909876048548476029243106415473678112303374672754213757860763238500235622913093162906330918906859039439784655118112892714387761324596571338882264629590500921190890041566407568923244260873169814960633315983442739675694898704513106008521479036595824626462261606137367735817642032848582303526397406966241044293476012774949529450788915506141359911636188680604113754087862875517428651240849083592587843386397895235955573688216431822119287193186085050933613206489670690427148789326067872403898264317530267988620088715894211366341534648868104165875362844219224207719751349498818415976004917773434338103745599345306356913707693131585609208578647273523558743236795262409142574419179967657945921574516260182915740784450765428296932939548710133989483494266071689060292755240912857284666185690774515897628765863511388229695618547761817672835828006372606544172617292393337249691810711717951846715516138426439347615826691898770928906701423845953917512816673329834816173569769069362120231087590203694238585764636587354270209018591274141004085307121004090753283362576449098118245008398050843758602234222499327033963691411649000026318301875070619186538190322727200597291866357089377900329819093926433481696756210102064385799597750110365632570176116472500796753058779915130091094898049503566907816941824025810074200304601263475237263935883550254649844375289565697462758771790501232146754330239505618561633044400308278490860584115366432204019394577397570818403891098045206327315097845632714496723932096987971384047255820828099514812046152049798328955872505296902838660691917999078078227130552611993847901277676958042155632243332609307491167208280898194062087236517638881824810619830262869368148043712660285122951985326940802793118884955019136410151585764493205738592262064002191842388788900949815406314512890885775405389971110747856352664164177419457219746673039493877462048937184456290945146793572646778844215002168145170532176307279611115422828400929949159899062852181721702073696424188885553640645365418573766704559820853710060950954186905057351979526016202785665369361160310581218940222886213042204676570600480941208040436180553782992197136352730176406518546989012795739929214932250655169374601441938561072147076669090774277869586341899759269118848531344003705878269162917328282758700638179119777126146336228686632003642433668025030568883767850757797635400878644923805912514581165426817335679162096932988541685329496557821387499220825597007793977549538560786146175571845175209818699701501039756234510501681877383695120206911313559629012131396727191610848237304879700849349769041007186997397730668067804873802751039527099788135006944983541332461219485149692212465414829528940825877040419874801003043344415415808225211664241069478755302013844419589892689256445836810877181840664201554851550648934290899153001279389873434361046009559297566371925068541306060656877770518087231904123199292193893326234125527111512542255255045968953113286014004360543571050284165682788597212631797058003895041118222955052432673609761126751960620356724982112493708016516460021268593428617271535279667620652152739845771422887787674138674641738861162919605340158112844924472952075052085861564203878967106208928073033458291161679140423375131315983508142695069786690690685711570957919157259563732589664068193200754442381091996250083495860503612289478536947110432597869148372078072029500231098926339762600700715669077071234913213992706857299681889494156932593718510231701968717721733482792890186172673491676969764018278701887118087360559932725564656391240999827104897061315446119471428492790090856873318434790657236993268398383595189857274999994714809576668056613945563631163981365153364635552510268338672643868318112259433992296959283971997747912663751469494159921291553440460444248749829031664345445622184603807758851362876745172906693535002411011548018395585548286674194742970306239647984472668739045713024633894015243490587532440383549373217863984032336332795503709156495857837027469155958728972434785967105753140439142583566221736527786858428214879777334296719160935401319176862706569468735580656716162202677732003370347489057661107477246879717152758964851928507947997166227207112990221556519811154351060999708113231788615254170591867677605965312102863936257857174099229449647746037546609024627810892778233328395094216476713819301455048318354219414060011195783600894098430333439793440737270867997912462947572526719681563162730155106748394240481492017590513444202515091541546692843783000392089078328115720605127011219338277893278650653545644068679571690792733719501230674410087301047753312167629469130786635265072517059917490000633645826975989964834722957206964280894077604822625255072649548165986096210531097259430104365168294640697253080809813101949753250437277049300027568926683776920534531939150875501632158993480078752952289125932603087648748406583141164393758234989890673693616471316884297809099666157599770420218427579951588801939019010621159191417913022449390272927330037137820843447215427134584380738965283764935718368319439124819011346181777738054344616237612235067205108991351875173500305043730797699282714410883305674804007580386943092827943643521718241486588426144702848586204657290848022510317301959554832630744956792739446955872176477200489364394997068120389903947509321104624946619830279911505852441734426453227717684799735619041135528474538966451319535911541759715971286530044016221533018381270361427189650577884050006652907136835931455135235597194233925535966907338956569528108415766865800862128878760696079612214989743759699037421258277792342573496929269436936406057793920565939985578098128846524899591743052590054857676766207321062030909682574738557959185872028871527427330415877375512296749222843103264806515771203946982081509135095174753377297423543783474393944319451801247836450524196382205578381388876530421438583207096608717665576135992255538759175231484857712143598423726297940059972973440530576945692169123162452925205487501493409437461954167341438700053423215546037146491173161668601947754044774400288674609218099161413120484343250780091945212754371913909498258151320852726335259790495228929265548358879289675923834692764030772641803329101775611545411959464363066972534998109697715561825970318632680203766500360660763897652852916937474622591854442997058500856601453152873434119538051476409967915107123267598279396640355103464454985971610027416638922532391496973633744149370352193379181000387098594695714554007639679418210995111608605960014863404474828443849157576450774584397365690727060920759396269313940771970802524406600786940493519842894348700473472014925028310477711445089003821841907632224898918253677801326729815875538517465662242167316350395750111068289111081998642333797537699724271688588207916063859513742852380709341292468569161646714457391865375878813430967439959331790002936760865028373870650836706166866689065004532147187000145735614016152865181246687045697409074424010695505594075223244229596222332806897735898878298693913022171973257475418070439795963599781502132392315413883987672481813132690432023885111933071752181389893032268954202587008223765361063667910185485817717469571718487260932117035532939020935425255412371908548843732444033748864842512283207366885895150158123379831044781716223515719705123361437537773762470264640816503745478531897465021672990869291948029922031478785440620953064273094519612735620097388738940025433619223893385794585548671822271976905121948617117167466032072991285529810729222047513248212432437596356311138081695322111707581704177797678074802770401751248561429216304918648800474483356705871493041802372033227127994736277724460542568017603269121018235285228346220059178612724479819801335432745466096170760109422561266640589119855871264684400418251262082490548703581005073209277018584061321761171200657910196222885062621760013726288404318775614745450641564243490171556501934813113590089601003578246965125510433124579977634245074849123365781296944736256137253661999696759013714292819389896229587617230777694400806354642404503090079884292757149643637590785251682574734442780740966198344422082722959924087933952591395089479909028192376608435950976741953931021691036230001937171665708046665382035424842247217051202739621250909900833316506203003276145628335677843746376231233198387499579458443922925120753482956017043986716838360842246011945894605114192373902290743973271162796847961384746897093911046192043357241117541353046860510803062037062553177009161166897467315107835182549229354263109518639019284862643570016086602943221826730599121591948335024051733940663832751431716491336770290395812854062382955502635245771608722394762517545240995485663181145914641907992728922823238848754764436938168880347757556146014078903122986413536838163043700970898224389752527247222551075363924090961435065883500079772912950224544455058593005322071836497878253935555949041431317112778434890724352088928390488970266321995447369565694433161430134962758300289669075305483685810264370705171745252109513545113976613155397890730146854386616271484800478777518906548361323024868324320243888769356244839020764311418028442469199099903274138613996588585833464638084988394542354393698052814486689275717207958356954236997515796049878762232191271422012455874788916304468929814339593963653282204985197012083002419812122793107247560042767609389152852311148787774731569297408024162839286818253986970060312039353122245231704246059276303361783792807330725243551311535519326818016545908504140034514454582885703169841471617232575248900374319315316925470559090983383003612916717682582137147073951752348534469751902891828770082658985961319787869947376952042636447999327966656787972116124396241698194455348339170926431437077250044943576786201076306559840956517070086339335698495672190842887232730219054494426082534021821397076313953396393645726124875200057649902165240248565194339268329128264838460700494646914993375321662684995814366587164322010355603111613428744822477977884832474031020787528051126070699993852144392801298255859887701603425116303950707666558534714632144220931272114556386809321018151294012274346727651339431756551263531072723462274471207094329206598317517393825222362322737547715710675610026784187845023474294380140161716764045137780163349662998614725220357783137053531768381663743064030035766427219036665547130872938665975480652112338833433753047906212926905677947052845947642618707480894709248390524330648366108533505749303550538011441212913120885775756349305213040843553325296388851087310153745364342966436552667806261238736627571687589172573927506201341387097786475436503824760712651660540936741982807438637858881971216480661818565972449723948944886944657444484204400739003964075571982758965189969382084780653575684635438492112525943210862562430924998220018304587719376798516170792106994595342961169805560405621762854134911562294889450714320269928860637672373293206758240125626131556566109559188154114157023518260382723190986427673100659042699600895145863690950159316585608772266173588448475027350945502296955384734448731635126799568673803389539736318620877430018111792939615143812028294471858038024683556879534655095996880294822936118647997534686838910601600004008291713733806717024482819640256426893168871163604413419212168042038595332165259987635172421708649946455324208417824549302696882598293728777420286143720865487549914495174758160612453766200076969597576585453916343899847411702709567732120533056107992267606561873458528051661122702791712415210309679872360601406532977494864567457296235938726972482983070546016692425236092773335351138412971400579777508178352985801090235785123920851838186447796426959751459121236268042305309540439233859838354279926131737780831781684712131973117772238986464996609765708641760121693750574688462974042373154363838192405856203832685933177760351565864314782299242879924292990697344762162206101260067663951331892636382839566941712670141949569159663250699063363650851037075571984048423887891095125847920890639985439952528146303108881894569461652131691120775707357681101525534205355609209578368907619862082212049921638577480784573096121476331000166744434327335006183486139882010596178926194427889154573544268558979161358049013642804020893199529687742101736446784534264285272250254163391276776529136693417296546525402138114911700583170883138634842762771128709317111292444608554341641514750182445579681776162044984495082881812588324359508496492784970304961645366107669881548331837121697674316867913435396359168691022589113444184392644255260374962054007989708146710257661184418280158491342865126580571260419573548601179745596575974823149332228970593432009785872716203675477400723934925973241461584146461461313297202734798426619929034301450596086732289826935545389010463754826848729531530163096082235782472871159673022257500086727455534067023795150897173527669685565494954921735394542517641160908735455856217544436114807504205605701550138158961472972940783491988235311527033272451321080443225054078013377138049572456742454120470773046831935098532441446582113261634338869490366796659294831895056009465091643521470909773918568010317296412410214337142579684657063554815342963579434756609288087131587067354255948655274307722616175813803002643910269938795169877382269493657717380383839645564986764458919874903825936076512011677492702668132270457417973251345923814310488802284691856888751833572503488630295765850694619159031274097813054911047806540110808715074619094599739381110516086296345329088195629568647537138933369162118154807091257834379164350259598104443570473536551546566472571556765878296688794922797532386564786512738402702921849072849937560805308535436346993278241749183442416335176447491491982569034272302893693888660044152430892437627491957764542580441785496732908210011827473972582657876610669352310946749245684534469374603954953448560036998243496352162027534387891851241797042843682315823935891326063625726044874705200050363337657088607251377631209459567672651228321626574744211322458268840043449423117421772312499220110498576001307990000560429321228027830796608078151612125152143741159170337616957775865801650815354861165447833680728388370147583537413848289945197456550002177072470891026191743124168110705293294166189723079478881858293596700996144318144482821204911096270582737777386725391087135708243946369299489566655222681007915217785845771601564212396588768995653799567657953884900271524578769770818525061202749527398554592153052207338390718587888568726659992867738944790767154175091066299449045152123313947626898728075681109834325357080981695468239046147000397557100551425785430295165521236300414313708231107728965647186822505987424054385973538520314248436508846270933329611145183774052211535367633472999498728061465997338625437535693607503507338792887154609096713999998546865048989099280474558160365667565637159068069329318904739692769869911212993197901222230190256200555894595052396236616988036100143054771588092083448543301864392185930547442170964419480641961622333137381335844945322090682392343451191051809981822793715232416182284972150373566904327293814084478410860053914909490032869282891576551272935379429890589589610554837617383218270116766462930477842130285730210963322862292139437050581042787982905352634140194255007399925527471951124707383346465778314551881958602813841050944624014157620637187319225160177902008029731294554792530558937849254646416445992490665761907023237603935698945412545287129784456642837901016484088088345656285061635562317684033244071314755039898170461167655789612379338688067836445768403841592378072549663310833028207659805417006417567102770771983724124276083651206500701634762930294970653574911717506849805132246269893301322622455915515557951351175961118205858372631317143216225714643779250080125553121621221711126304750223335724923716116243996221941870865804868777685453288923591571890280171129349673151829452914080877843698055403943941393583000553757387523579206340459007668902580142911476518396604759615914545221917972476532750964051674904116324490115142880064957421608594118163127273444487555308112309730654367752110406954417977782122071358717036146510323849300803419609395185692684614856482389741168500710175133310488378920204039121678436342803535256695161282380139458612404183898200072357244512262856938213373008618882893688944988910176553599322932056026833030187654536871227503061070674680294629690951091472730321103389042442876477267325051316232644102158820258358477641839427958326061197249747725055879082347348977733621343895246795837044613643335774556428500655937034740933936102959729399723403926889269479947446771411357216768116450753234256417982662801558873863912146655729758190864960250042367708442983780643744335470813052432836108832732025139324181300155504185174737094378595227149722462421913770147317079143945731232211772589523041717833367596475703613089767046193512988849550906742782747207513222802313507439431139609333735201303383843831295575887189827547243335262965827599011244256978640029615289494710794259616388263728479635203193160666331246118569269151682093127707972220495299380910886992959174887769238917518666991390538938396659808865185203434241404130753065034672722517645367066999150458679770425489243415725118581810785353617357115878506779977452404950657639770794072918386460135177648321494290454149178883072701437746693117658990779112605260468299841585870414613196998797663517732273753578627081059320789100722029489003646627410641618394837940622362589624123958033368644540314509714231310994915347650762113745655666361057800475356891583372026594357114153859477299538942382859245780433352588323391415644886516836654214741250276457899391649908157734246752203915322898150885676976390399118940084588131658754420665520352740723512682372269284277069818931856478978054336929189388723476594538281256937887866654954273840040468428532875441201245313355831233294612760384886939574413074088857866994617245240787246240881493943134999839810190024409016102873706600255201683836654791209619206774172139726719275524669167485066304942980333147515794412655253739387406807357770052996171711059591068921692109954138159926569319857797268283285766601946286257732883407256727594068384612203398457053525414671249800870244792934655236168960044758559324735297543185305293315130720609139452036834411100236310944754253124162147747841854409765840666982328899087070015971585863248383085511724303663126985030234352728838591706673932444032300410163627363547695922399913191271533980050175623407008693339009055383741686701095750898600499733003303957091966894784214477390655540182410913863082210131185311945278325879143813463148325255270896163099401830131907446812468480233630924214811299496737043034173050235114398845570630112616598693103793754793786038296063389613891508598551196425167900568796086870325386484098508293559758465875260807524630439483052278551081851969682414380206690540251643476270738613539230614106198074247754749399008022095928102330237909636601019461137150610789434803357227644864363824868103101729139439377557217670398196644219886594324657498512844275437653546149914623687138402213048215131637311842347929470230335686593707157658400868332695206254669757359287128069008587711323104294008446881050986712472022630688179639454628874725948682305816717408060124199970744074445923372980329986459598170208072766136116555578545891340182564930997366891960455300178070596611608994642175618976296170417147243239604897285442329904322507550579911871443287836197920228414986453972542862025534735669998642008895952286177863038531903397614301991375755914862387308712778661240353518593751175214731530535654359690210999570944930501493543353861804806524823558870138269687066343201224955592402118278085460452267691582827509104633072034375699073169782111985539755305676955898253004655576092862588341448637985284128079303897757358968914343313369907102228498947418905285203174980764749372891919616236871835199939226576812932447212468904954102358502611102460721062432137633969366445580816382421789463460349202965394339711404590733878334410992351062191854538832023797575755473803287742453327905710908243241542343268896486113667105632386440705743230928329073877916974495092933661409655231401717411504411869138350497688968224538725774772174127439151576409017930349370754034346586315136589099857372462714749156100162991414603359973088180597672938115864910578581852628580885154473663672675629496213174025615194307432183241383916636268919982296751158819525895072226781222249397536056952892149862492122712550700322079583031647449178881428606506453969839579178729926762994151881912583120605561546524182489386061861147677275465917934982588393371520852007617441639522830544409843265184218805631179938768403286550873963656557783840663761142890394109698944123454396602927061601084713467215600474108218960334464054304384702124825961663730997632588995822114424104447030112243650827646091697673132491504295671065313414004102639114176956404166718955094914948318757029600038911405760443688664794369187091049542077733901712702118078160840247985365599371644117644467664346172428077419013020927802111336379422445350429625821949760831117163103681494002709654274981645153121245581849559157413358340490079107128810535645046900186587912208059544800516960180928863489632480792850703855137424100315081642853785830759022977248805544938229053379327201356382265575879649401150225266288582888014671790349966820955484258960295653973968205426965772766378633836704468857022863096926226320584688113984776895757006818285115305817559427028899097159753226687124310672303941121669715767266656011970546296465130514978871844404531788699999471522533312681568837230609379614298607438721143420839954771052428955331652535541077041764681831149464069724446526354170207642813655955762884039986142818998510649136503326565565016511578904723204678135080365695172453904212426979793882030045281298598167960791875026053115093473426532145410884119100609221434086306678353812771778524582453813467142059731966240304323860844928279912288082053524503742239932101644022715817037818945776360398996232123351995980659098680039103575732534760487058592652303336163368070333773814298871469346906046493637251440367454103712057769895232515847101925769272191117281246100986439874656132219294720158437987708039455339956674009729623108790721360049601916586336900271672007086711378572392513487175436680738547493246820679551707222536759083277918221157915996867675178704387501989342989726117805466989216839666022835952878009241319792564968190999168616859616044141556585900776937550721491464132149878396020900794902332251404526623645615552265081882024698116411099753221680647866213142480222432444995515859324923508184535694665274894163818790449357069151497903449663173785512819563440854717010073315168609233674023551983125552408102212145802704875875497017750689021290082751067910654747486024568218602933016146254159879028734224434968457135303226906832069047448225107710894725829273594833095744589518485310934508033843170140986765669144741542550752895953521202077637017013262252437152070758984119612061518802617439053208719105775682018962817986500309657779801132977164298492095109282196749041659283923338102451841303092980324695341192379333748846927092089398903153669282882652633656698169989825445028497904124510909849873994446008986619123226765684384501710820861408728302120300716677201387092344036526661519601617812408773202137402514946252807225255956121907357046493092745987963316531152770113445875839745079849290623880219906488924560168252582734576885017314909197264702053489363694761412107326810786698383165490963830435645362213912826002962570487009377872305504717166380647918162534135034361664003397428900684288125599225678041851658742327614790053022280325381043832517843023047323340511892410858297311198274965888949523698881386869766828985807986353084406539865556867595939594890473017713235149132168898786899184120112855170714071461457789931235596446811031882947928716414070621943277940056445094563391485775399669068520888511131958150550538890796954727374667467328002343339283639082681905034087993910644283810421649123897307536506193995652770881694118934485254729622857911674777034908937529165030150247833707676920743654235772720126779062558126664877848492941038575377909167605793396919591234331760137169050904634241944851834177153297460543957578443822693571574432588379218816843956019933875299746143825114730578543669049082446666913348696521642122634526357699997128129780640813575020172096540462671316609388571888090086218430578335494992261055390950863227416511511475111076102812657923239067606213357979101463168314325205520617918914397569346077922152163436395103155643992829580470175963760707317863153788456370297890630510460401747363543836814486029206267353377638752759608063925473207179273627758852101680576302676045914553766348748592744950752006342281698461191025438676586316238497334478964337318279773309905909040903869393412095111201323902943161996481288374819768463058765425276462979174828103686012149333791471581296884334175993972696770436185192413859417737762588866435367690950811590438570835298031353119984780583314627083466020111499584948726874009808351120304049273471109459060769115374336297384952091529260177657752434155805717073596227160972992675929787732095536882158495718605813364623756839653951411878605641880817298385530917521820953390221331109493258722100553259133650700328350759251326858056639671554846484778394114655254984965491638741400014272434482460303709627135512187917363743969876268052980162987122738342079964716537344228831977304573414131229107359012596718658592437077787085251000603782762531359008862523650806044528173411293738344590335931709303590189017390506308186596305495814403339494291595641890001687070282757049842539603624474819794757122393763711681448683159792128345676657894459841145645927889350513577266960557309508136556973561414693858715730035164389664847688879948541573597179841713950653555704332138409340692816759310567480501679534520661892743526867558854994394493607839686365050875086394278998141414511724060361434480335310802060615790988604256096046910583507358512484872073113026294022802160534503835273945087750666333369046497493603276698362030298492209073357052203137303575010050381367744964760971187973435705580316163572711233305447144208379480497742050193660927265010430848142562901145722030772094447889368467293091537692275456212101890537631481524824600082708153487292172756437692012277947178957087661513863998234495071608534003019916932968224960917375342687117909262575938361506951950613043855418317150770886827468997042686959234255397833447607039041698965674952269573739443471331275940515372532070270298318914341842732037169372549676113327471978793645265091588323204190560761059083508574202707769683162066216200731076011438361103456755593600473004138514601758586357651091958105994531529335087136212406133802129233136042649791152653044864110530277285616060844038808676333131102128626706084975647774024665788842794820685653467261788045262053340025762574545381708906300389271789210592426833693453595589485696175408424571924880943369229898130257937084981573472424256894917682650091394172955788826567861562765663182921925439659822849762600693633475375149675994022436378465131911407321437572930373717933248741045360700004141013002030671349083993043765922380142123374118080427825489816110395751134022692272718433917751726356052912505721257022881226349892638528834378649413293524346827678854812270933319011294704467536645139419325432714057177046574527226245470430481794551072493328516791477298339041468697292711331334801845595875767473573345787569958381635099375185470075266304445373931023672224893872094632319743418672937411277945775720897536498888290980572033452729012896257584669505460337713221783927742807729665581039080823429026132920769365823626640932270153943117206674578718742430582874026452537344401691798466326293733934910599371208015667000538728791820368385086696109089680583122181578577439112468726062909742710697825953224182953693353462702938497419332598869753958567417756960136790171811148551470711885347352864435829179511288826303685009091563954615593476782210798153933079311466787079079448819829284670495910669536006058193425301393825307982739424644516443713379929835778277929721245313062448642461681506805436260273290780654210084003888029931929516895641889704746208679500410168603205873911453807015415287857293449043782668013295225367730222773712382605366143788199170594505269654137703317056877313780931334809013464897424441026567741740023025910549171147808984224174274041078467309823990457414003001731855887054612359664028146693073006516374634318688056935633868881866705427071226318683980378550566823883451883777936485662963091686756091760725040361475476302039164662640362208214964513041640467670539059976331568168798433546913093863992260780789563793662609863693523148127199515763750383937399978410763241650207861691679872202442201966659213960818214263918727259021725226754697056577873556799297220419644026539259594819989228577483512777487828412332342453720568924612822582622405081448465868398892200526721558355041558974046007990477040016839514270234885580478108509288615671207301102129801221889723896162660200666441119497813787186557447410171554437021272755914876158129679769320497522650871558642246099383684504435950229903480827830679307565410143544914892236179447158574306845524708505539783649085731591826748107207528660022263300861048784562904130967662729938061032655360215314104017980340277012870943134247941548452418852509782894792561315552859338539660825823138558812263447904379061986426042399548220567079813304048635301755146725532453227244653414724816251904643173610660933001486200567554711616660798751577547846543932078633422952780970659553450692799776517408673616014502747355420868447814012075240870103469977342417463553788288325522317254884529073019750738233775379263608743731237630471486421968432031927371929299907633373467487984585515286955367980522896556333524807729739654946114770933611026509748792922663448410480486151250119818876339279891451289894726148557417525172286696885876157241585935940764669538002436878725334716823166533694793782054120183571450123307227065524542888665044979828677006585844397777768695713147831174229438080995490992668101801675284524783767397820579089852573457615227335691771932471343783584669558127709017500343971639376465173011635826950549426717388032537636402488297926047620334184859325799210736615474417556959120844724841115759922304538457491838346193087361682429489481115210595287821899372884271375186449707452392571167649621200759535308557270159709123159488123895315286057283339069348713839714107335865078023983356556257551180473696677200318685373078584371583208108856636366701808169167558364040022564882777989858527163582556248819777126499888270039501028064994675908096890788583044805081630799724419749797198198808116380495140714332472720433782581783267991329443940750852789097891200293473874032084980676532182437096438439812933817566123377302220493274644848138751994616906144040467248917965605587163158205275110800813805292864879997786980522644981688904316672136605494082934345729696550411762040681159595344195926062192205600553169557750167806966415929090753941142530098326944839024683465722947223477155270611964904730799361415909007726146079493553177478221340722378460378066664373421445951359122770131368863725813096165284314823694136964941391930107540276299614268090945226041972112261899272342361882880194948237265638726586934695600518203156765579914959971527364561267233211808502016019782516513166383825234644320732577531541374782710855809795270740629085862814880482937334374228868745427194255913391522494339151455140421260994302220020386509337949716826431783392748590736698087266735111009440641666512868441593977000314382129642715038428863165716565105995509850089684178515916676517881734496130744143441928921684745669265917256240630154236097199261833633485184339400324586534798387635455650531882474532067384587757156454815120608649678541921576151686873597351596491048148930985143058933012706542552263576843748459596094997758780158959698510205023471206979963674142006924145251635339121364803575644422885238480072046955140767008816805105042236632022995799673636353660735306578945894583415142610427647653498697345156263837635943877813483594918001994981095601587225088223342073713445463470896138924231895950495779600809422408912822695747718502594687639540636882405834396366223507960647172679517026096345953404819816029012827512140669369078315972920353024314554848522481575481583433425348424125775956002521538919802426270936190958490404932156269561532860563106967523228660235213605704751640129136038383318655048853955283141123653310724906215377465541836104051275637257387651284369999718846173919824555222979358353989421165216686676127965483866555185688580552875200135694707118380395461899972991203882618028248326974263210602754461614205147338352544662262707727095388492731086791433591363707916272671527742048048867312358546935132404157080923581615664090422785689196174565300592295899524435355349494160340869022583484588191764235788549509442347465939128634593429016072586603635735563057183966636042367764119638052914761189884040289318537887662299989335735346674833393582249845071379758596971302305796740588292868470276983914341321816833573335040432930382482799305758118839427198876078895288585873891249063720093921272750482277773139091050316395016892207117144614358097816751165346880639711409470993914959780411240723595115201174369126570465714355510995347522782800680252657744364236400050966500467189099462737971593742529942297258365513736230464666697646128272014566503893241566238354416337605142718217114949901949622367046061514943600598463519657455116727444391378106186687313545658284367188364865186824871127196915554181416708591549683421256554589721237156635321981379879705134660567681094763288887704682869948109730424684710091460077786631388538173990412950116928760084285286752536182546102612679894300116342022920443900458049164954557639415090559954128366417844446943618556249933292636455778835984195348142588945025100015204437741068184312936285482092095608249348894753171663001710268574862677712842596422468882700469555591853786853872531631967009319601550847010913643725998877719079636262831893324288394416229139916150755155511682476971571662574715576732132373733326755876284978317116120773474431159323939385796280271461373735559446176553592582622277477198409471581137937039558034544138076329679147115854364089952027103330483381683720022719291026271180268355971117356225007613370572458632367822473552926895652998491517581407590866453142666204337726056685428776902408465399562823496461654947786088362870087111013713538818070473181416993978435682710440340021301386362205729212822767029728213919119627856276197309114628050620409766490040718433724014026069583967382744787578179592349143512859814558694737701290358364471786759493805079354776407739687587020292648370520809208818679906906892837403502150587177854420855080648717402846347605702235152091415887951870327604254487677639389621666494501699803232217231731392459553222794863009934797680588608890045565629781701293521237067852841117588297661522021933094230149018651168401119365845589774233781878456129574952540090590955208023278525493537325898508537079347033920767633933034728400747973409231163157679379491725961049339613054603237354479284595514671716334440934882077465964552301369155146838527049364611492871722603357648634524696594112532894786981210360787525254615079165019717558502766130576082850880127542186551767755289822365010699463154934841921338058678493013234522337624247602097185327645472283347822726255377150774964839789813729205790909894903670407633551898488662014536902386054118896373785453600990734395422255443847346301019581433879867394176904706020414920280561500276224056027583827398241672532532134990237475596255116748113519223082160374774193763886960626960889507980410561840576225429905479194184321732264717941978001302850975519322673827406319793129370664385287289763388635729816244262051963889914698332266455782780988446459915367058746182377535799178235680653429471807184198081058864927190412226608330030488492893312171287579676650764156900835371475303000668420427141734593093628472411582130488901490375710498830294688473282844450204212776644924687107404890305907745345289449536556006284309949407889661628631900258362644508858849239092199936940850383306945804302005382187179903581856183811221053597280667086728570325995505215024585253806787198016552903510049762641634927382482912944092016307305531892132203515832984911657237142142939969188516312086835396796967503272037135312474306353877774936545630941924349783854522882619989155555257681042989018126641006684654537970676391491011349462783352550385240051021255397315926023886108715693330588074824328505409975249638744061223761224843437417640403296394103061260571439877321479958635894946211399082248386187119398091955244277795549268423318280234609441805370658781130994447090171218984353419736935375808044413600543011953147635850620614175882716753176164300982176683628074994646557568703032279353772511409363521641988909694165389836722830280359039126106460737560128229216719966850116230475765565508835011143685610206638326469712622686879982580189367545097452789263928407575007639482257364165382529954498821200075836894797789848837998415687808941837514518503584941034750152908681240754455105776114801615585315909798658365356308806987241430434642865330505676957228879282490718287290764085444326947742467042005750268021494141143965766261860432180835521064608917365065829156757246257942837534376647640626662746471292604097075030093712313848369488291665928549563075608372690431942650542923510343723672600148127646056977539794635406710949821305580368934688461564568067603537656539008161750666027359390179714258386205243006872303132427797846189434920863446878925887023846534789874175604952971272203551038212209235630925545005061491080796198411489885549250469775980617332855845329580119114913050774439379353446807674915150958339776489146078619894233639803900747960057085288716734006679325891961276239992689437392872841699478319779351879559804318341759468283607200108028997803865709136901066042467207258916134260026232061188038014931208375440059364988472897933751716559099643950550756000209398882184969874653648843721477327450738792083290372887414914892920800490555840852940072255522885936128501747391091050368613707406448981497480165925859049587046161084242901256471717126885813445551884652697205926380783911058894030989007946465900927936767630329296054080942824200030029479608887029086375722072972173128038901541063060968306847517584434279123586287702883297779963812738539432540721807867303344042656650050201348564866743850520175626385552802600474467691391442078143063013018349037336259806589366561336885273362120653634997492439409574227739158670956601204557733768431541425864241599278770343060653740045842274401116346378187759480099419638693355005546306118169152360990510172647035986539816665688595523781725099305173241590428983874438530308947750952318548339900310972753665841135945886916830999226351046478436626740184460234589779642095775514145656758784642076074212037242837882913241509301598777106208746736111548441584560912107273962760152330520141998185835489454004597301480106134758628765077469023009721477580905075019429852458321044196178090368024534019081668680358825448133708350651076978957200829906023459766890189137120934402732245797597776403637598527646698737326233253123010472836795872762145984581794826227965836996070697817850834756626674807272894148760805962148834016270899877732645456567022548802861393932413161552536690701779772039817161907371747279901124495448229266638731053724327970695331847009655034560592424466552239547968103887260422871715275804156500678631679712597080802937768902501216757740416003230702335502720977869153968315647788619890968567296319132806210251707162216133603426693571578731826177336312944669160867610007524131953021187709851481971071585545444791643329486557191253593091753448957063414586377059713367202973372860380071730497653806666149417415929551285220015052616372850726926544630983022241660131024065662717052159084192644646789662690312262030784375727042295162385586881450150076933587216989980105164646085775261370736902838966681615232413528858147857862213922942725784006833374735360503526543321191888624259437236090959965381962031524412665029524477746396447994124934495681275964621703680432597653762047125959706596406811972532156532217708395613304141751848521912919982882927372282821454040276072344413662129975493530724346980524134909793931557007636874366831919225533311766479397188952419049043154666831641962212544697209664318945943349351746846063256476088706841751058798472830158516667203908481385761499306869337529272384399367770354165959316649142436334594409984480853467006454441639302780842074083423385818852733714845517942084247186532529401884702572478524004164825607433784316108778982072097601584263012260233537195235874261131483384567912643736427992631874574256860415443678179257970541893515890201831607586456426886291964823683635603242475749631627216318816238300175043569601742176651390699315364783758927432165756330329699130882048472362574076282652651001668542714903559869926727129978305206959213882106135587106462113923797906176922094758734210822989966328903219221656537350069195195571580803103164714393363266561769931913413156867932745025219712100952490120651576477321872426600392585490913005353600941007361957663438264101626298577860809363851432427390747904303365856761363909313710263473670693175668335354237320025721136487939804894923459705053478269262679438311679420620950992592333255715502196738085157208020953925714195882979520143657010609252222422599663310483251509784364711759514871573707077568659069189605386438532908834427824757723631376053067261541667482639442018334113460757251552765979252068758169251418958207943075191157268335750333826504416397577720270166975260571013039331639372833897723295148740607386905699958278250506994348379725125042707395108072065040512466857116422233925158413668955919387748789148667653913062555204935682314003043200793234344051388175162856138153571769630743375737199740666712507270382075965402587108815844319733953878896316261298915322313868342683142203376435701169208340916975096244285437685703768166670779314619871347732276306201144263460177043242233335020579213092814681181802016664108330967823071874946761865585536954017479545405557971441612588986657240097131386102267622910371764088871237298312474975514564790452365485004162637579180044043574009449534872343558938020945254800745105148225545330728072776784616682875323394996569692316623720240925408321234367499049223541755394321803135536267134739128882760001599551084660890598663428427674528877098085526127922961349925483703872084719781546401986155369816735896364251486730125992963815937913898158232527846250362328156905765018126757273921023653635399761396791870388404556377082893892504972142554923021364577510527999738339465004412037597015443226968737815722696699501536323279574186564735527355511644533575862180164256929953206916365704086817156272283259362490007453174965229007554743866903995304400391553054643380105909814098207572378723452751011750700969012573594402657763085447941285884251365942784577364660152701126759924716160014739145158211291177107860839556084661105756010443374104459348052965182549184062647938911638013850339317239164289997633039986933194413125461862008790574927550791572000360291597567406756435502658612215899454700304420288689746956097722021755794313060323171882982557142156313943487024927381488801753675253798105470153835133894129175398267337394597242978974018435964804981308032486157365234949223285933610367764345904375753706368621135775853957413958111819706181294031175799881287641589900985637597702717033773585049397532413844074884190695783196508687575318346623777961928386664188830831198021239263163612338729485350768196516657790002112942721222684665555221784568774442520145640924642014734326582105404290179174537099701121841036326748359638178573958246884270791054440516116181463675204895730231024404378879022602014301723945211848840509723672790186044013397536657109209828310816031263956731750777541447928841435919138791036324730266348269985971120803211582633472129949976951244136297548724974794372839146689923191457190794476827873364449652946689603326142156601204593821833667051910744792320831550180563358404279126989917369754262281409762266902444742428242456137954733383915171531319036436615559685799235763178510538350557616369039582875281936398659873648712657931898552829320810516626444357816958024383365033305531991790011727564157940291906052587847352419908916635657227127037255871720915151565644108845917572781050381609561396337067673642945754729210211967499475411440921952021939715916681218229983719925175194541806715055883955923427714038813481042298539517817092536500620295964024557593327004726243099964428510852897401042739406569287636210808732676698477765412255315759329113489691231791707224251280940458989358770765086272834004082155649000386934612545478255246339555185788383319069518307340471276514509298752616358368764675024419379191254833439011444764433466482742253519328725365081921763042865169721046586413734624397487441466279487740554263870575199813247292892882307273382620802405540848275453407406193481415605437047848312895508021076529847538882545180060225522842991994598689761729079484247748151677044300840746406722450545593190596625408976952776973477843562987716732268445696529933705117367983325308349823162007465993682257396008651538521517289029706255164632346379008560186047474628925330092828391370778907724413373277874829634937793572076540217551749365807952319483053981005834187436653089079279084963813033673475908113112783950621600891545650495892033435359782196394419071613536556080994171829334249450343409509346331002753351485049788146808692690647613732575410453004238115167275249774598497982259494468308070762817132321282601820752798910666460007502796710277640190008224213511040811799298567545736157106594836673058876055950586896427909053706163429345892194420807152718080006817732072043549573151529036343916760469069788818722083569992444407497195849200612984513030581862331801669209496843613202095378173751191791085450086534354188160255657379001424954921305076131465862576839860559250859468411733162109605336794422377686501769919584722467467521211281005839960314788595740390322904327717011858994577629082987791028652930694092610565667886595767697553742294073097805032851875945656047671572773222452140369159702266367109622120237222080616227494253643276367174638567826562162195835242871084319068195936731552340804936546260712140119107594641747710127594722683020657122533776726431730561933500671875124329887033276922393408972018856012639590801507908803962625027798406214995718276398532484831600948067942401886185963628040357729622528807497670128240680939069294732682049793089009630551566765470337318688989572745796268399040572267344167105808660665651858779949564975553997941430407918435277059962507491676265852613870185581352176120101895299937501765657233343210237755936467787890679233331464980806768030240631485278433604702613429382046698642439886645924560268310909468165722102138508230943980517694791784973830074340932265992944691212294661774903479577070422128009984667340853379476275211718122460970423599937978567049145822613905369567528363945272414874839563667176794622731192902966038247809036870820861085008051096909642987293831816426381576766288254224419394724833975022732106320728989558392243532898465755512792059047149278062211457411182686469796632242232777077105524011447450950120382339027862221731281420358199439750608074286639742914412725333092234192667900208845702518353104011928265532884485340050903133109498883829897860453491744337713261753687006863718610711421343038788820762038790002165983535648919396065008694076416966003627840522191125668547632327721423452017198703097331514313610024108136792090734259594503535146445859092638953564548696129994109575973446266843163583464165373050993813851530580673417222606882409535916615311655921632444098184345840894317534248754789545731533816343536951035790468538596577924591760431787825540323118264548467654175864928458383865033996987584331027464718468657094546995616182784038491982236365436962077787627042552075803159532342641703785342175810052445253932740463533163804895393380847271081946707782024976558272879674317638083025092849645813865734097173664174607218335034525032712361786263752816355311371554662134607603675950096008011312835732786843851180546817399377717154094208399826890613928397476126319502566200484664522333310917047848111648509208565719708437330251930272435388989751256487323655452176532371504273760263557264298589399588036754933869059745647399357889235107380677016155622340032348234848629868718671814837836470535006418560541775331901861618101051764235801956355359482473750321875014892929675509631155407226845501169893143711374234401773385858446751465765961632018391743819017523991861812133608274764198171551258977196457240697983329324929675607375279209204083514733813977083965886508292963407345210514598732733984981211206869847182639635964796180329581364385414481659058608021787191334469530893609373462050702540709583946062906488935124893456067715820304791996134412924108493746679355385170418739630738635249527348572720712358814722552647332267633978717071211069874531263371703761761248732937424012070578142531556644362050595264726845888251444631953446548233901423054095023806620593786437457440892575909504511404505626818189458869427181609123456224002998378435036442088330689447255186873319071219160231077234091919999393383373155861699015857780341645635735548583921579921631846890873229960903280115727248526205200946608804592125000455130122546457948399238172816691973121828061509823643629998526497249388789433145652745828614038741889835213034239784422802467004107382310632156794637807799312279025999235479881078666921581764643332288425126377282825672480938365250424895823005335400708016798115819167184228735103982739295286149492522893345711346592993121525017738796528698775700835169619041403107407530385468184327037680388212272741004119770098834946578835753377251435139672741482245260660162090792560424768513509575874480707831783001356899523130811556179264914141137608195457558553759897510859826761439559064088171708604088701431073413606109566275743382298297539378243164368456436432589618223272292847658618741619481897159834757725791480193599857197269423668741837990905950052309298220605072193708251725209729540943281544789206483523369065004072782303892568333636686443956035482699102650821122562143863850318627727655381455689645432284391772563801409241408802197752608771480454567132222809403542008519586315120290932323711175801520167113411294406379067958147594496438148778645662723921773556670910183498532341001680187641516266169935622655758612149412583760844833669541140057495082286254579861503093857196174106627444352846697425029144778061125236923414124703905168112686230056885820279135586055200501634694086052570487067858019528523940625528870777374619525687317290516406511555481643211575647889490227812984773884350074068952685308640765937234573628299404127120786248086187079084759612996882551805542021372239189007645908474797649773159105804369823910892606229520107388016994319687874031616901621632739945410888286219355274926012944976509625581876366305931993260411231271267401693485241296868463420369360777540591920898205546170912083415769710901262034016178972169967154401758983954228250302200698552535026305861315162393084184619254322623303405941653501815436516606504291787611005084716008308963474299806283074241300062838163695048086228064943104169989332090225757237787290830001549298146674990597934168200448212151256194669969537914249071242247256578903321102625981592707013820445006423501443146512166897002721990719339177407785382465289373592989394376752997992769481527480346993826757337204081365335504670503237745641241579155297806520305256335450296417551416642592381163422956111281931477409696511741826568197693807121375217273060787562473320161521238557523702527731538653992815894833736024111128425680427007806773405469181004165203933314752961143891381056442185165373583502503275493482395442911380514075299638449554495309797642492154758206375333244627906440571839548437476218505143860887831680926432319865231364821328059413348870976525703351085576155351838455413075743059105426304762569404663325757212458041035978010903139053269348847188086013533991799897223390319774322353088619564553319468210174025116089901728485622242482996919914385014074106103831370206095937121068618889931572459881547729679135502917769420993780828198818293158680098935535535719856211690916738874369196186743634300030006185093638867804230563283330421834020313027218407664588650629809282469702852455240364542587796337734552985600768794007638186915780736825581519945334970393103743145641093510238421661531231956931506983739462571185157554704278525895571968721892745315389658328798566242095325464068498271630870717500175438377084884408443064527690188907541506248031407134793287714580451088314554786936117773660392687266290492459308944229543243486723646015403515643947364769447490338985549814984794013157976755774179331284704331033154602236833007545216310755604959259521403838492342413727813533852445622493191030971669803694725074937262413222172958415426212233607181113727086796594855543896714732672384332526573242378231685474099414694317819217586954754773586164936478592507709078924859514866382102752431437807536513132536456571512723404866288031058976876260436854204063912466257612376675975198200537461477461130445965445412738922746322440613172436358573121143650259736359926479113016046895452300575506311439000332891116578622311644616108751164799663546694469056095537438797483728660883482959851820883368414455928813084675389228656488024443120274335728689461881536140126361858024101918687375968315721418053936074277764124597691342114462660821584007633510749858249670208369588582660141102701254529908433606934087579532274427759365998658625385611457174088818219654492883889134478198384325681234907444518251581204988742191228282358194460809204647425468926721158008534061213332058863753218106329624147600056349761240575122878364287311079223588646731598093579655908566460049684513670604614317528842418410833065213693402356262503283140273128073971681103628258209978902824099853173329405100892856647567645242307012129164840066140883756642747145059763424517877636318618858011654974589394245454559980155971728282961796074867697697403507768220349545132135428683524654189021670095635327276511354574945082688269606474423329378272554150124268669889857099734904105675877170495034290119464654407784733343015371990309706804311173197865820870745639262166283603624725569713879063869228855351025211561803776501289524057651847564428244037780186219378644676996418914100344061602455100148671270337487710030640928521822101437973563316504612769817727664100509843537536832707272930076184823843332430682434889133218937824389141692302755329219389863347387257029115246825632744591992599438270659437934586915963749940469402377752032709651167446330842251817015887911413502454893097742406452556725103810892754166193608317821712437722389458455636519586472688937521099328240992565953166527017367682371052469993660281261823837151518212475177146710553519318792828253233218667030957406098301526600151861701551630985007073725233603183048881508612476924808571037927044252270216016081157814586548403849255061993762661280590655923356261747268296555063896957144403829693779617955289581974463283170217019175263796977448535446912643149593251639002310860871519142853362192570666987912186026814297470241175725719910844596996195513861312776636854983268017232134573962294149963089371120246936490870438405398676625169469155764160725138232133658208660343161606315005975931491055890319101012191111078683351685510893150708132495649986002175446850779149249245423324274389184987234426370542981643880883648268919088914155917463512024673835742862692641997654788956447915579883661969428513479153147010991453764921112894713753951891103719339570077115485123900222136806681549750412844053984413430156049357233220518083057120643613680107354009598370508989410442599105582681375506443376563720713613868651824989222989796872930534178390531033146243054687044579008013615773830620946788170176925652021456661874926227118192850642573692273370075027506659596296463684782914139407092498876827595500166424757630496289360570649270628377084311340083380173702279161747701909452111386024392671214400368571867035857046074277192577558686434657965262860047693002753336622851719388076758049842200104614578308213742508222857048546228939383022447608942961150054310084116438867023335058965086037082044668769851656810863520859919937867421113439032379120084853853514795390645402069745468683251650464271230853255721141569307110726854466370666976066578383621541643724295116987231261228718298784364385872547011496805074322879651764439039169915962736702597875314683686441466397519247853304098642139363348647326977958803482417028338363198449391483597059058594455587927928020800843458379286393754406016737982048607269623307030301566548229819597738344441207644027826108989847679255217735706302622657240013600267842078460813566499916356048913968171385367402472135700705978688501778739835011049810384212228203414804116740811732908299498743290401439123710051031191553845043349229738053643009072055599787270263653289257506746154468391312816967186517180624746040776285176043535780702039463395102695515165271003012302852580433528437910640779342296863781649022976467511365596277412176697378849838271775438937224159384980473145212636741225821968311124785446692592886885358713490385658407064519299657723613385364604526002736511403417510039129404644378256545563375569941571436672152559458967547806594055756545735170483333532490682868536457393705328687487532585011502585668074287020746845741131109573484951248713118917330096247284857121721138475701421238392021827306848714835333123406429463086986247890789096564696750161690890103535513088569080006693883059144657104012823216173101143704671309320956202696583365441717469907900147001309361089260977419500889696233064046587572861374981735926199402151643207808063515308143378499638447173574348233517139118407267039170413483172375359656376376154041799547974063908282365668024870135806268386448920871594699652335265351601434603934358112118071468499291018143778328772955285360139432479930074389782909729264109369476478891566721561056281633733045350618195599220000024482454417967996124004061525300006058827863774754104219117675231275344205141112002878879812345382210773186592760540744477966445720787862102662900501531837482694246443581496056796546900383045168711710270948059561774488677871003945612214753028592650844995444718197818261769097440588185037159259570656178080637929358495276292890795413658544147040397344827024961215903955071297709258045512448307318103745751807431648130710162186891407830282340693871095887475470918432229473574593533735696806765446831488818223650025135971598237927998782192733023265570902846105998991548606261913601125016650601204019487081366873369554776813489574412901250865178918152400157982683895511189375011975512508018795575742369410254470163243913392508128939490669671128749266399844168518576532581876831890844112795594452559496650539323943450315662992402282189720781908319947006176479600539879416102357936042521447984607128034275059283389505017829739749063977735016025851584038604495907570761353927110335693553964929537871412715628132329411165426163347537666095824807464652565543454038552633227378413264158662848272448229524850161607244820521962870222976035430811313645501163332631297304334095370140228845811051188374944512299294559099033459521790801667997770751679752066761177540365662652277305015932425039040868129207472810060224714553892916419860308794402701280557557346830220896704037415073003363346966505059124035872406002958472947511360471222089326234437903646121836597912908437153084750720811928407499303850412371385550470889046277628490452794790426303350416669965319730174873118146984874102265028131256492354872332757860065853487656602886826405878866965820544134242343252386152565272512969307527690546220364988683915482651536911760297553596185089175463735556533739889285435231203144312291458550490333499163978013074720252502064474430402014117926920051860645846604823288758950765255168225974343635693252727958228459186468866858302335181178826657369497331334963609660992122473095518878831379410403383237061557505898867482308277709710497813893096727396804192050936493244743254984137690371376450772586125497105239598403599948981646268083152678463381772707115230410238328259562378220484695101441615898338022360973768957502075616388880621850638776835404473462928081854153687754300363707900737742407077717685440144074565475455232387557527856485686403898044498545415412606872392823554085771972091897803353075723578775218666264105200720215490096804615710940830927105988112232322839786553723377164879242986208932720180317758531547930523390181874060284695605610230708981278987279798610368835361258632040020298215593906025499401752751140339977488622388890979741640283096822574832001825983953956764397632281381343186553433537942748924539060403740819712956135972450252359337234142671033065189024271909062111917190046971356228352505035434020704663108912733589039046159169337765631401939272668592865365460234932152808848873198279080573600030861379853254935661024517276581837941765190282784511796969604716736707795986527299382497936113831712843690752002409579234353677558886402711109943458763892580187465411323695592176483998065572468360975636639866921268448755802297751297628965401475715736055017570030111971822217741110609567929468933424057587882790628329056424974730021578869414912619173167007808074105628748779012287671704741851470077334197548547020973241444275617393172142275566170996806366200996425316445400111534983315216867455529925770342297721883112514923444335481232200555122327752652027249617660310887129547171984325020532199719317943317216101218617200947898375782746191227526334593906548379248478489536521973581376800718439052680409239111777065659344865127389403663326908789843729302442709125287866037635957025499984184794014440054732057141410485757222774998004606117778286832430961639372629188158400521701970408203560386008418433665784385066054368174456685721601929938914459341696600851084983610161116887209150276344869847445536246603923497577987370799125572524971402180392320886316870716596842372481139069564030348430024996178891606896019675363167622217896218593476760422124417475352148350171729321286983512668130662082280743645454999545593534913323304866982062875151990458136295141474146595963168175451283285914449855738397129847232076768544401175470792043326749726865351695331118321342194333940190366972879926237288747993181305920407192123809825432105121095827744851605611310522754232341547641107495191775059314366750611002576999863010501694209898371442168106611938891783569389967468291868640140588133959500258110887224992778293290175946576222933606726100550612222791042433250901516509527214997900259776382893364703314754840636555520808520509972620805182278953445482798378354473215718743265835934882060828076594312838749947432426312739656382705762441661845138982075382864956973162115216652663085296057685008597531761979101153112978827755937766518412742432831179237622332661048249144516435268979531159840652817939894573965807144210709454778208968077527073815848953614687668558099431897493891599520070555929416281371356539311642123092996182150161411532173067169618838057784787790323898265976056246505505933762680211508106036373796428252075028109740703025562215158620894848370672397202499139114518817858418793197470787817640130750430416621938400513136017296306968376576590246279956074003228388402365953927383878021549958503036288956137942917315603218624402612362283029686380130293207419593972546608342083649008576077676433831850557099921716857541367838947739637036209305550770199011527609909990755670142387143491828707707305898145355701367277423356294106709934355365977267223335263752826866107418755348425750368249063701347679335959624358016220251364363346078190711483486642055561069637982795358469114435957076195207889888768481955014403365430109028231774389105678920590151919125665611674549109635673943891747956631431801666289220890976912556724334618966913872260364511071483470157566922519951693299859964294199933466122918792205302633381889860069297912314774805337140952748891187775099551736602884424932691979548632480734698116692831071952509949647810629832902184124194733294129773390154793828326475336425827535358307436776534723710784259478376840472571166430935514812502409890322822537507959876653218927199465438315988317541181665958236633365329924640452896312488479300481544257990234951322147896384496498419831807451789286263175079928050326278515733064952703034546908530104546188268103617858860282005559943260518003640743792400375179276790148929384630459091624228845699839584522530062989984804336814435661371474887832563514647535360803835860257516527967257657986068869885985545393950129327197273437868243559599805805098839679097104548626765801981016669034351721214151816545313256497881719920985026314744599871741508128663108067032906997163366518263519917369482404823287299329432304326913963999806529069541582268233606956316200515654950470686363039077758493303033046731543134945711876261501922093540880351917983482662332907028922384980820285910582449027600745187188805265053468372456595588766843774244533841795079615741195980395517267692726529217204440097385133331624453148023575992274098513577168068435842270653665940218230275122629955161989906831465482664203341187999047036630622091559663775404650128624413126036934461997129814569523008870684963624815546305663637393550376174687003956681436509276658261902438776636961467704728700710589873043985536876426926564856495219204263675123859906124395062027363524559199430351806282304138230753938603975883456219089779268862967114437511441270525064578780085324919780496640705558652253974666979397598334975708477064408951414189002597198425463870999894769242063150810608164687713897802729288888838895760131619051942628119512540312708587100717238198236941814114902696557649514442634631398848162255714569109993038660836317446154051661846753943133811408016080230412636076604643020469544016746156838890163418042930456218345998498539833527791886752046664941009151080686177095568308908320445639757864639536119660772433109350532792963614584373776724134600814488107712664743670484799628206075861476812159811336262314145164910959337453024522123105945565316536193075147790081355561666841455388406109149977260764788058990201272606227890322714519181831112719746631339129295902300766935964275543505376577680454736566695207318859605470764718755063942046164864588531321148824777828811928804313864249074014842738372870047654729767749226454288113829916095233904226050466181348333023026184673814578695872261314634742014181145295335219821915531025275297375049721459467777466711843982307986673394829956880342704792637267988966378698260223643035322124586788953638376008359200925742036626094867001861396311184260952669128158593240072308804216954023150439075596850821893123771472611648129574699656218908952614531924582691226106306518659623008931802096498320722827408103525260241693147370803859434890751331297652432136779839170241663157317845124647264914271009887651522931222146190518423699783280829241452972004901595553096060904218537131481944585810787404023784377287007686867476693659811039242569491436381424665725428012516075703025782676058335344612676722108683408429318167438552270300770466547725185535453841613317102869007699152840404865193725251717305407377683621120252075595195780439813944616454587903435753526779529922337529384327579749324287566283566391895919559302990022111267521236640426146338909510331006769788722116505423746018569843031787393129735036080031235891799379942437200964510071109664342394812072320668075545318094823326463758890605735367638476236848724288813307623014339652738725841427970379001094176648780546103737295861089641418179550801798986517187713264497107121327162553337511598838920286563750033189619041270125489494477605000206107777270257352699805754706069725949602581372016720461407102823764572111608839465364514455454227234949733361455860209217502501743918390841413415928238626464081180619915760304845112320844928480202434662189550901002464439855089268538932635773520887439917582704253767920382279899730748911036051967829126215963704658328867386228239984990878966808663193610617552117343180494939474851532629570348582384022029860555520924964535292115362077280197135279817246527904803031703943810964592836367238524583734549113187275635953045258626222833289727757491517412972803495808073050961952231229421865011104361611210768876799962318753844818408083082848956425833563624656862738780339911020723817072808094818137999933028132231739372558405044755500757555403719803642101060147133390567657153221746121387668447502528715798030375116994099333897907239682995875119089896200324748154960374561988671230474950972277245877973445702166781613274348218244273176365843887130029231227624436500889239210437977759232421978429147153969144794446855179369167445630312080887252237726477322964771532522829173362250256277339747443011674866220183249060292133066771298704413855034968047909497049855844927559786427949275362888148567195947208745065957745052708511590524246822410830304935974481325166937174846123154408051110306088735569038559071505652686873902758612465945224441739059288801071027562014149470769050493959816665055400785029588926082141820536220229977109963338996349949369182936483804434974062248799597219195913409271926134547859534120181064551839476883280951950582567308985621487149369915525188722811004067278918515557805021757509213434972316989441192761544957247464390440180753453230905365650603840704970218600828315109048453826960652877300495556042619758644450530738945762141395887915515488912303020825748494405390063332858438433062573867913264447187777452175941306415454761611742819438749784057538772450335758073866937491283780495856122246150304611386906171904193020903374253076201772506955580009589248205474680027328259329043901746313813829324883584902818706277200751668800251560127017007373773073087440885432093681175305893921673829073242764065007627597976084713583693006538274149978502254660172400579546690715582369360366267800963714740151844838082840943880979438543168378439187188882385370439367258536451501829158795914295971469313747820438298681238673875541270403307327956591315868500826698117700745449828025540333803369934175577891631543155579522039901160486457745315885440065291714905362135156745152844267382340325748854200007861688211442196100798455012934755423386402429712430805584554969204995813952419709403835794561212405918515501631365804544606578980089195517308169060834207686131954951298801985517140906945721394319342372903493760969370662321857663383641730446992223235700203391220675370950833305414273427456047047880510832356008085085830192762747831819104312022113583592151281804276117523541246905432325354034320874785638239961627202729830639877029715990183828355290212382524295924189064632498124732377231077636380309795906086740775749616452521669792084323196873466867976921955841999945826020272239547785196752776708756243247864183784969554730092855900685683886932460514584119365337994767316028752981067867811700524946780155750876376796572209252955296385348351854870654060623762756837002454068762751403177693825323915298070244504371171734137333899255715366379659211982082458365076579825878912186965212155041041382348013128942706963464403418888507092110607647088602086788716204518042125125847915822069322007525077322950588698598637086321575885585248240882005418299536418052843824020131968410852154514613591513829886771722540521663327909440990534678015975667965009359530303623177327945674103830295649130212544516042833851355027707933663473180143002220035475310083672157582961812617456415957109128351109687925717636710753168643070965260167392768964589494578656438427129598460095093077367140225745864069335569713993259563538017203971033490033875455463198792976381362536264534637190920990502680620425614820270158429039893224387913267989706942410534821281471735800918636925263883327840148116784318946848514968767507818804318314768273531716021545937162595077590136577862999966930744624427303644261266596656281595649469413719568270016099372573865735256354363348853498025153588891192350991984916046906359775295164799926168557269323857600474984823579991084396102521565291242138416076772242761973722088089727955395721271445466665236092436602019064166909523261515818649247597979362784214514695697343374548394798629599500009122802303898390708704855980158440227733309042848633133951582792269551827190869140139888099493412842168415986087000348574332600546103404340407646167773589300648692937525555753762056371419359749221114009283165681933182355369857593493130713047310915481252033766974779766548765905942635651312417364624573242807489649577732778825623691672583007711963396736795664107041245013339989588588525591277788087969644555695737456162782635747803404386407882309704336388472315767368787187686732350654191037708026930421812627743303424083166752669591552188267983188240086193834340896602855644661502095405009984899239427087956375726192592530146346370504217402475583767207338843538113412276387212837165010503168087512409293842767880748876734549429529056774386280498783117601514271359362474246432809666559122155252076628172528064505989379631966141125064457590486656166013392927552089369149545686756389359236959214893151249389744014033810282373554910926922804228474071169462486992451371533891645823094861305801872292468729924911543486209430284676842446982889195229860819978050480728753917129376098504688235007947188667788281356717033455612877461451621002106068785508424116938025000164265690016006643068105178710467307844024314153285312591271959870427407305548235419720201344664428948346559608776756756164777183693107117930176476123407038659899237477357928701119007417408034458418449083857056642502999029782911423652223899445500914738794943169646981428663278243468642272752474618487251729954937415944975888220573520715288383014475346101265236982070559900746400667942315211439002241554486256550438327781672107973153325077609707275261156742484693840499246229925581233471931171465904808114777492672718196381158212398989163362401354958443262999319517170543726419467863073732544158981149497536377841359267117171888570791342055709684559189112838970094986189617609620686862949568199985506168339434908871434355878949532458848702551511092693877034494652184523532826203630346698145069871216666945674045397245452524912815915970754354298033063614129640683253596012474250462142936601224587284495299860732351385362936749361962401485904862806564381242912711097509110350608393763042642522781111929402832050676061849082757231161149084801944167938922105873182412794527200334880176626307476232571514011718066531779789316790445828095503761586052968002814451901678621064477276656029525969616306199906353493880134615045741337070669927291329085716197132618516290753939102534490358223094194208404408072841685501772527915413706399149811429855221643532496195026116104594567645099163081634224496928082987133903155377399716774874047095470532521306811791971253279618409480405790887154662945880528895634301380748366400355561148559183775862855716949183480556844211177124001221082209065003993808445404198324358973936708292447341940701439326200511144874993387475076642527644586729384060340449147580559890954145984170087930485621683142283379370436309734841701321547490038334611239243884388192985027381246914364897229120632046927941970324234951484954658201293852040227826517055784053344040760323536935536395684422207928841015165524641984190251409556957290952672812525416659810840808153803653241556429570125432345359244885266502702629229390825475259545540969093483368892479713209107267966958569134056749457825879676094678611506008489712777691878290653299667783315020196421519235214867567202262323569403369892139018805365520700338337551678566651416459745374601359987513928069503414610041373463404708889888794293605355256022188605427496677950620084237701993066676046719178505259736334713456392465158905633785749347508223815467058494392632835496870781500989529732378697893994267622605061253842551468613560960804896397231210160398360022838768723249716647894242267628000793792685514603870670850855367435822445244289667855576416490141536599746708142566633443386219268732190442039466573468504141234487154114026705566453693111697827221273308851131525768139250777544907293976268650670973615997912619089582229302486950842245042083102410521699167295865178156943239814179616956124986884561191845514468749204966495175659293604699111461086594264793487804609316312550250799014820716827959464522364690761112060863523074488052171758443179501425569493113060664780399191918635698955904915348255264015759524019580352121779291159915205370147111386051364800099309644857785145860216030772356681861169561672085468580838725001231610089076884961684433012117268299124192714813365559087438766811190034614083942608547880376153305243448825827081311590906953958965867847825648372813661973158234015654395678939636401123109974362334888011423981194729956267486108727271371391209319119448464392130222544854221766994829205147307432394765906157911208910414190642928654630332253288263209445240243669804200759119461774006288561363793523364815092177847199680020778763191251802407734729671343306960426575955795663253081682302763740722085382808296948578141185314285106814622963678893269312685913175331624985365093783162946154460423339505018634870338996827871650074146892849616930088909120251929662542777192084201976612656159500658279278408177218848026515663958782833842897205088238698321272508471654356068247249753091365494507596926451759277091015789524104041992675365583803487298010087764057271175472784572957946403963986831470816686338440634293840037615125407383012218412015985127065990929921523122172128503343635634222127079641204700095967852214562303214588959420674455751264361983171566765878320224146526475785427672266312500784841669376680891752024192457053155301838769905237423323108453232020324456636709222085496053402224249299595555573914088115323824180737125839735585265821920227709778294132425448952036273645440395599328026068392030541034099342679711569731683481093267839464986648474128909730975882169907477618740774852137381640560555703622224621313280781246241528418587467783372083508835179666132742034015472688125699497774463240018506944685321886122701748185468636303287058151423623002129169584160814029440542778441103481803840461790791505149068113977772227799482970836984462123598260433790665240426709662773063060065388940068098147318237911593724102707962440203621721226184360679201661345091143789186486637557197958436295710853291862338864176018311911808662334501067591807889511801172342776506318474045466249442444953876624272277135069508643246885451831943026703710426590170005763670110362780578068844403471828065927440665785214299545617453300387182731403139543148751716131648477742472502790790835415226994117662854747745885025922108192342828572276409132373758653755141205107999025275767783315668127335611015191555430213507460205140122484093743610538310839847554108957346841189411213590816686444589026488618789292914673886307798921421209598133766090849788145501524910859924979563379530156285332976973701100442129623828598145981548879091369934909081931336134835198093813110611983164205109375730617179723778230442430523503037303207228994880550043855441312494032581126007285145768182942330584793846529115132327627474606581671079556082122274198975582387869479370758933164017469660695277893283680955377811356744078881680466640601227165496213732088255082934006512379771777814489636620324433490474624623224902438883318135780016580669966569525517524943050394157475703773895118002477991095369965335165179605409685628955321322310499963814085059752966467408391524965897941674006341611366462024673043883267878515826849426347106594685130504048632576151339375458694207217447148873583798891314813543592945408233994279352309712879319731870242029343364973050371791608289540359528245145453812715622784861434604746898658492804336153951641062792763238994064911441780612417068120566794787831930765109159575734067295784747774960474418471574408588777254191301274311860423692576617228898477086139411642779712731696017040857985694422951006280614041511010485227909370204568967555389725392191259716740880409454963651168649677443302953427797736014860846723199482311843042151240644757684716870323252567055654725136184407975802790961073565293963178157675076062032773433257726917268226913568259235336089103979827652121547853216434767734457386673928243875779933360431445368032454029641937493165229929757492388826782105602890486218031257940647649787214166350956958954725770990542233544455884881969694645641580339425129077639259638318368203484964251265701974531749425730261333783177953726589675462631146906396829793476673827343409578678627613261514008593625667344928512310149408619473134723769946044981634514141685265688671568324797234244790894484644089911330318713097387221580265887787934179923510698549725497312658822746647077448201267272455048136882984901211075704169924714618304699452152037947291460122580833401572053052054561740173137979050464223859919561323764294926083348200498920862929733477365113313921584577471843249311388336369123245442940379250487870542388030454221526573465365969624548668695872728172328198049004366662139310696381317195617544211256864605542886322679582371439729522701798800402805070606963554408516823454840035135605562067252097221208746501314415141508801441283565231262192119586789272557863547099359677076280367489026653713384470178844502718049629214275813883875302341391286453379020131461650061337727470176741779252445813126902328589541182136142155587636577846983336504320945356555965685662595495812750992438180717205803531651315194408048741569651331096665683543311440682879624736036607002150942423072085869382269717070997256894457156819206213664943437495120259338684956623414457256451899225620534340809966621275091637777406078838310465795957003192660324700652860318309104320911662780905393371330226339593225562202766643178118981805795740064785632030255422629825351665751413324184741924218996091354078688488999539754165253245841706269493518306827935397865514385770735987909264344458689709976160714719985829786237281381777955298751551036528144434076222533338076501348033962622758868823195202841370394150485976033532707771885209032469522765697791879618436106345393544384623430101127229398405672057713665677214755776561444151943488085444323839916056361038249038860803769136609713680566130056968959518577258608684481730543910177334307028410143557494770319137642765953323864399182958051611466644772835345840957076339976252122527923849114059898282525686601270336608402100500866714419966085352575720521449502776887555390592992843926098955917039879640852875889379462334854183311616492130347634338930613302267554194322189855544320919827659396301965318847963708882635695955899739164255307218187606544834549134789868217484414288199045727885150875065774580469121028430958582691692622973159402105706417678307582255016356002913045263494368024058010314155326971372919132673656673230540719345689589086506840574423248832156636314294667936366564121047558633928793599831716455269757461739251009073799087972678499005691325059150136435546506990370739173687697195060949909972932911675456027882389623614009205558430357089138775908800956040930981501150599812989560463536330714019306959510386408692820717220953416805767320498243993645865497442362934946390893600371905974867927050283297645476589562604347747049152451349148607081287126629196049190789606713616240724621196181299233400811239947422653199209546624209933832168887891168125692707104299175257271948965980261410090034309150972327196134300243735175993448168449073907919445030317089655497770837719268267594092110373494670685358244326642122324698824153108202579245605308584015510194139493750273815504215281088102215200906930022640222317353520193925011891183889546801284552047173999475163717922953592944704626781618529512900615758962512340766208570364246971889855657608225830193036136861748982935888194175314444343472189669774806210134056783999146647805418333086667564088031154395831544488888666921279954451394099734769566703470064696435678346164947786441605059802144355967996788156430491029737648204579424827971821370064940706742869117692317435302620767376131961701227076706291929401243753766618577631484946518335754217522596208253916509368055347859633338365524136529672327177176519297267069181889978233457989804562695188655519596485697304620358855380433778956541428619834546073046562768262795631530652546355013995531677776149576461881313570393606737994382246219704249872488403322955664766851881902089894004573706580085308159520256366714919022431276720099302852711867005603339294839882794271911786989167709331315327917041827012673208641151336548610792845711924226822569314535472615363042532337597683165438894231066775272568378302609272578386743641859642560465378156183806507805208579711013182456760615678873283822004370101448897196574383614540784836813308398983260471899381668343892535327688568464740230609214359702771781775608427401408572767378891839849532770723343908342496439462907667837180473109030177298604582844963945103929806052431840920933945655857805958932543349977584838976326815340361596448777989723778657082544448027980831723703565834762690397641025038002342117101312645553923278462880261202767910062607582999863398423340009713310657596565068204106023374062291832223820395315457476383265525769353874639226413328569673588446093596585876661278131713442310792450901179241336094595106270841867154409417424026259682452575001228867772253877853994790595272253200513068267404345692104729296862582899720901154077517393997847949427666738204569781148011005075645322112508004527689559801681778066841273967837752515511459509110592857828316985570042125566106106959589772542934785190247402640987726381024561994901896288673901924952473385340849186215335516354488613333504844696457232610557916069214509935290184904717049854182173523800343875868946776007672315585632393400662884623932061569540774414187780557661875613978430765179145794536044686037558233458771323291461228792665507733271811095611606689804259117076327899902223862096304073919966628637144026310166942927026460688602991986970208939500609740717971440801608171271311176716617774367471682481870573091994777811962538958486914927364108222552300754904940916203506935697205948235679274526032857234985606407271268077632628823167772024301308011901907930170876854423751981062436324616073172843831894878443705776693893065605906336158143063827082911568020399010955242748195308362093130846160803232022938009172585655650330174821316771023659977509459949086414652893864300804873354268161391202386449798276076724647518848868567215747557584719454107186548384828590244303328841512321284850886463773630917737406851144936426021736247914207415909666421447624532674671600109300438552427123631602195139850809336360153539299418671954563847032964108342375223412057159949088208963789376027552458975366070936031928567874995216628029535608591442118204670312835576740948859166967333179688282594894096355571092156687617332255107676649189265222758046949617859610776364914597591281310292342280960635525851713236341238207663535536848623850845521620901654543628667048941433754596329338051099088056313737209442346395300916785666110524630443859109639580866216536246729511169268659334986996192071998389786748183389787837547965722554482711678803602737894134686742888500024859781324056354712547394910362032372372421860564456701671597323857079493696378485818946195788134227131360105059916793820933796692255262972453687193018811811922656871396484581889905579481996272779497010305603032762444974677262217347741267017937490562332705549674175199774399029302647297638980867207429930954108309715824878181065910575566845835604118487309413501950136141110197420893200751196657054326705790299410691521657601572014282280218993338485611783525593386462808222756667233249304573031247303254995886789684504286636173646586556568582230050469869580311765428445482256168818803198743047210277795858537463182064573424290891451300592936988485898741060707506641356921429596540572933048974864179984957404428935478801648803729721423274517028279187006771172599193307283201251792247186100063025019898356186243156612268926554698821438215115088324371804357452010661279084815565986826959569532277578103468880276538203558441881039052809924646348862157129621980234674494893482471856371991797559688812009726995942083366252448253874248151036084236460322737770711569239810972038592597345066600992353621261221137562688763845406228508548991948413224958315894469493812955466233357987966844051796666047327924164213519591307490483221481004850593361935596051379259888070920661222208194800918137486423397823682484265974825366437612735225178413703294797854461404682298728963102751392678327750072892901712075208504370208494892067491822749384652529528987959163134747916723716314907656290044529173212401267854208024725630607817599172244903782396822608875953156135531939134974442941359672419844506887325822236121278581014014785343382503382306481194944653814479967865770476113564938323333199132195012471600665167343265819328646942832714236048651398733325766212584458104081080155773160006851801411912730893051373654676362735768914303313646172859763362347432599803722127923336760507585136416056778577930124564530613925729491946648180583583658855843718543272239695857868667658240866791371555898594984402436113663795679377101825775948112138960377573862429862877283076723038015869129920284145200856543557046134764030813754688183058638520119735389270153376822960856187257036387140421895895423869041210212226509845699624291873408597436245212078363397283316002611247643343380108798452163306290838831012892285376457763526615142271327081313953017650149312393531144404206686980686028055430633276120336177133822044929081954438039272259378420030530272083705194833078099292385941413579008038281877927204044392065232825618259288936585921966043640245353914922826668410229270089766233846142852953015681452375662399403651550332738952142676402568209811668026816309866837968775843744027629525119313820965569153748386031381338097992218575654671608871500038400248831361724510770257578511168779538024112743287327155004681858454762096106558164649365962200759296624599644463303553223077492554967957348434922372931827498605778881178804794500417022142910366846775077997554704111215839275489893859095649963933530140913805086374823216741589505681687818967993002344413141019658626383551865545824601571827415479486083631706580004004345239991319276949229153940476960893631151345687497053254857995810095607551290919271801031601775651107926425523002658963759046361671501384407650013162144306313414529266527908048554123522411932893267044286131898631875832128679555929613266228801543375996922583684557329813582967969681034299865364339628116579909220716951195643709796992127095175953143795826395393821542958208086844081189573214077303000447838657446648112836233150604938388950956208345263177266493160560549084348511614895155777184861675172579084313713077233961553837602204944614280201122125876114259763042563550241225530860655173827443307658480210833921708072495392128486010093303745632873041505352085841314291828884394173276712379166574149352302598125219713016557423026902783168161312790851139018848106615069326563187912829936317770597842485265997161217371407231202692128238537827592652888634382803569660512345063094208641559797894441339054750572437928835749982560415642631589418053280970773787788879908983215143944460649830809132158322593731771649972821061502554290319021798787205987225318254288762075493422435346931319069355205476909332347540269203052929625387105323419819875317481239040518865967157404786070691983116812202714431461947748931790689132261198646950853729391436161203182244371065375457671204476479029939863980247766798021660711116834673040163579655244068547081734164199243795120092893800937739126251616898390070848253276515721941176583847144898660463752716210726901896187769471770019155027649521633782651046478207864180003899217686656096146825991289587833557046322143095213580264210770721935630949796887381463959472030636394313435998822070548800395192080775790008886626916168314421346474743053029383588543106614113591271807243125500997911551326927849036465191293413346528991327678594022988346024354325521486228908353744272080812578633912213735622094487773470064177555397364640380771521597981101953713932313897190562826690837839442488559527026610653556676853728244394356460494306400987180840628934225942259939888724807334671138578953512231352654580458537362016269676459652047362746722102761990701242326540514274947852418951316510294805258006480406399209244737571374462067746395233030997223374373844094867186204510049975931375306187298840654923727826345009770844947951556293479106437659199961438555103421554005766232088106220865794504507578091635007863971473957161102688766167588212674715207555306355635600582946536357761523871210687901968976441153327055718909911136386959751014575128741099690590144977169407472705696477191190681799218750778770751892060830934844335818769806703255988032472163956186781169111449835185997310667021662396706412519768797981986847274854894349934716386035939332522920175348130093583358940012183229655375044034776072011921485033910181691220160354873580211791506929337475971870932024939193003820104299692237349844249821707883305177787689235865457433389452850605979568987608965267504712014792932564306294828100715616982193713221315824829752558811374506365950474463690245140868510043924329403299469791714478430412498967625620102769301374443958936486271235632736012911810566722710494217814065476638553183921431119702756006311059051335896924444801089545694186195609852819428924028388381516506620476277649390816682460999658411388375895933015149421077940778766091724041575756093803712314072886911491600929363987366293894910830734789516437719735946936039770548104805223844519598821562007560428174212463351636723565350998598594376881391094000406582374679344658190587518879893832073038657609466941893991561175037371521579549870448563512682530466182031407535731151672517469568738108128668215794853757466970426638968979713135276106831283338890286252982145757926519343643271530159930661534687796214749788746582000992182516706561308701680985863436374203502465402086130744548689188957949192218732766160018233708225353699897334112795452395843780848724970563024166546168665394937616085608781122752506853196272865291563438644852922677157861574746723595112763642696923495393619349351451649977842626949821592748842636679303981420796224466332539056244937299160619127216193678209714211768312622514059046056090543025758535641446600481043741080074413377662830219754671305153627827600746052784146002357232186130800129918119288555146239824615218886505007482399604380177547498034067234951535874535913696847033317051739884969687954476153742738917903266697066668327051738887652103361329902781842610861600704761200960823927371486212740053820631986048131590861388515716633880478075911607088989462711536598890751338797600529365338187317102538598251434994563194007441311077005647305695688068287223176414088551190536132288545641902950225122878613942331108858962950501132521652601222421774205175218085495028881434126421843927309473669382317793353235926819370034096107795809900342190610806516184085264835277056283089459598783971932761719512687262588559701950215081185804278920432588841265877668440057319816165235256524150502615721692759347232789364504229977082140060732606500987723114765803029553206640066518516296063148146972950289019872061725893192685265969518892920709416239078896710286996939664073543990358222839800778553033696787290376659476226564735305156483344485600043171275313813872177530607422896828731868397166225585925312256124087340601597455062498046072977451453103907603410870348501844012776770587622317723743912994170452221490308522563084327283598648650026913015738758952818543134475191020081697676510874827870047256837123835795042165448046562297459139846757872750997979500098597778019542692609044259338899401411618511351354336103023313882280341040601139423013080359851987436555207541352559650286618901578977423048856386744736399267086113233542585932162459407665248400312964864898638409621597375463401999460541777294317695819185924286897056233836881711292522976231331052518129746376862029190231974921422831026902215206594585420745431096642212839616998517154002603046293990342305053390790481747262396526530047551494059387560351376338716284434498433986200573774694964331138969450937689136731173464751749407917717101350894544572576343487558230564288525494783456067881060001549259362588260273904343432665728914216455868484953007285303206640512835524843494160513565618766819254071847949644625397372747101140445511517353014796599425192863674680553596035292093527839966766749751260483127095020606806371491815417822904210972181110465836264506752311084948342403900140910877919920008729633235580259361088899583110150607459290627549295363942247000814753669998798879448232473427489714285696160284135522155028391142233188050788570571973076563935159627100688968042430371006582980301028434027829353550586623005266694121059761333834002984628808530554308721736928431638929418199167556987551710512598192786622831465518253496856693082887570759455693483492007383999552751648866956562972134742677385492958583393977911681316983325506439414124494161330225081470361739769085182879383833735956311923742813260067046765112689719158076740733120165827583092834408892022415388477313205341378945728018242978547378655599634952147744137047916448754569210702961122973265501691532194929165768738413661296440993422266692949106034498183959891511214690887179891874917627035608967275094960146474834274748326266361457909806998742640193753876790530781464761157220746863247401391267424125496445825025630029965769369901817016046265257337298935494361134812127752907827544621371117698494065609326694785749979793728824837046165420040660903280671683224885863025619061136985739731941986540780815687379205888832087345837766590023470576573904302970589128338164332671450123537350636390606254651386364557346337509264006960634061729998417696867457782333074214066800986433930128766853433702247473136034384688832662666874123780769765687186531869342699087872307351477769935532956244644541864839118464408943648570963331353782374398811008925963757089185492480123515378909974687946802663248349017414788302144573004188294192895221615038224743559525123728686462712425410433712437226353359087737375695839009481088845938463691752134650164526355974704590974697402465597478378274910332363662843886175528820453138788233499073180562095061365958523072833636093547594902031108558659244673584548272452926808235722547911152071681275564897702609542726688359612402484388851542496105143221873002320751874578017323420693042037573857179907248604730097655077434815294571857350127895551317899853798212171672263349591310803568368276870253156892461693915061190076357147613531307247639497678836370479927284546894992319167542445466055650796417279885542161870139385534770369328777849257306278933351626795606146595677399084851528855285180368549297340847903329495704273266499998065927926644075292668698885053706084638928795079443361172266561706221023952620718399390851633880692479104908023675907720556600698740834395490408196027157201752414818116996271334685934265213542843627053936109729138997045595105902755804074926512790315636769843423664188287364506078009622542625719826138032636898024118537599973434056554860797285597613545655877355691100592558496145610476366166545619917035899866069286219573315183758879585436288201236726425499594203885150640384534154420340313495178424310816552073123604820757022889948712065606975666865039605524632257894496052128844555198819395713139121352621400914671232207745977750760566284012480052854900804376884284965751145699202565730850268817933722913300114761931979052783594605113467604725475868882656953166364490270058226127708657473950803994020646747224693576561238161549106400410748709334492143776904132221344442038564749631297806354937591658547735657365103778515492215479684277611983242425943233117374603349424695527575470719196184039175027776581775394191805750558665066151248250174721793540840420036395973207617349822888367812128234687501989023976364447666053131116062705072558846844843969462090131186563970828842728770394252140229066927223576501153053247561449135013656303063320333459206003099788136582234339698825114497729095148810115720822466741059050234914103249133915372455155640196335020239110672637987324937113489772781871392781577869596970711885536991495816620222680256840094494960927988477206005484278666097196726268713548626541596980472828399607116191908565306069520461371597856333552173170770235969581822142773394967566779451714693394833818094260524295719938711384252604946239846450694344916853178666349766543828593479512877968219944402440477561554697479438338793544119649397386438158136023410680158159270739650299713537507597009134702376729319981518316623431814093017959752418663490979036280157833024048067882643552127053895663703539628823317170730548932343787088301032425324424580366009579550331126389991827832945940797333503846372055095152930756016550939999241836807316836276303343446251555440673437774771968696464018800602470604722138039511511083055242566316269876647346987244724254143126634261440129932600203434084095969661797844878574714599051624818214359732017411894281591450127215051275135595099218304366975827234640393530095255240836174195930325168799684059313633581861461377980513005781726530567304347424624359242373296294517091043050185884944042077307111242015161083191705364589499936043260599430259974251773697015434266044029421599171787657370139419823156002910226395625396673705998474062148407477464062888605646132632885974690510490633881267315638795618938558421872662039785880017928574354693082514996664508766351323378820268334743440064286676607473329873459163549790488427405223846234287182345110636855418103506471409538851150591703195723739739025708201250844248884327218347687650364960583140299175964647134631550856634566028096720344850300263927549464892696971141577114363538715712627632404095794347198144392847296095058633220830649771129278308757885065985079757191848442657833620632796296951276992925783827871687262315781021559886859164040471056270903442943012847833403734801505462447520736265644752215956652761178297981935270768122188889417697552223137232198091832513411714507446941238394742848528593162428383044955493212972133293797576495297431617007853467347984213810003144935368022560765254458123351681639097688510624092675440775770164684649021624812833207414868259621223902861754404885979069536737176057730598429197569557112710000451712459029285467116559380761654114742641975632940524004552308243706787497982129793919427348518650165408123145286895681603526132893027925308976092837139568842308301085549626708620561297342096260505947749160851774281691176760597308757708404109639958224961266997852023161580694560842256329405906412809101259811075068100428953757682357010360576841141080466495714074225057832440274465840047662812752888954381791801733596202816812151447856236660652709689252021694164377004044182305404285340992148811905976689057007897514656190421952717875679846011040309317255401296942906910380616356117640761905943408836975714618016755405342216527920968568753844850435029827305819787894218549936041516289515179505070740941926431624750246716193732664319889819087646369719505901127936362506330908524438450768731188039178893545536793340568218945521425024976062299039139907064341557652387178661779743434508330505269826194369304187871693879557966753196295185820212816508232711309716102262704122756696678722914088246213857902590762746451565944321682058172617948498392682778856441229554849201758702805239291239179211608825285792634090175484729787704961039480168867117751736973272665583553104728961279383929135096827306097479152431288123174691262438348354385036455911500863436416636584478682400116796454921976177029811311722037876039983665700373880549197829834322734446502222621910134314340077753877281701366089279867579078033292402555757388250713033797365901225444147143964308262780518621527459285910014086967429514311836995442595952155223928578581366801384263634781214848510719690263727195860875652694538723321440370486212248940892505768890640717146959644917036100184784969021272024824040510762574154990526950058741293267284927444398395486593637210730603942436110063725501962317645185275396661896057061404876709718293106075563667738293503411131813121154076272294066478204853947901129616361465811449362314747064827205469974521635710064862045655538904794340509911883681463464084027965195772710641924166219774916398938016493108982058347115002416415237928382635232724036997634263463970923742267391240966291777902809234104329291532711440782133411830818500036153837677961681281579558356592450592038559848829501881611841357604565252147884714555251902143722859672507357270210942448548139604066687408351843231289105026301275859119605013560841580729985157116163407891026331264552764029242905712175650552311380089267089985068637479457434895244674380956785803402354375732946214838719196053595003073635848099988949683372699215597453832503144673469998013982709330882775176381313020915939319606457642799332915948216463804790424113047543483785065713066599369871885105999585345819476276192997732382529370068523480862757410033683502026346071990826047988966577499462412927542611187685712558185974196683409016003622450893848990300788339182177640635414679607269989016669556475853122061790885798221386826920929496676373527944965775094332759574734203822450861887703283101853543577809689970909044612184956020783199256998542114211019865693601584119450677442330011794326884478536168573181362918746670758953031113458886925770088361269651265912908075827137662221223871136279525675569893892360524997921298906335403575583849374060968735539772083608988523465702680091372683300838043750259501854565596721810626754356162440017357147922692387795357466750126935638133688604678868135955148198769170881171245077545000437212868162841767362915209883193810407941375067378691351504181729334245561134968961669994454382935507030026264594370572845405597834861911344739407314635124109989059431935665425118591083987227141489828363386166094294006038058775933875668092322447080740165227892091861279114128619767152672557843283672953706514935177532186855604052978254203853037604879421784354439488100508231833769837630840905119167735401660579435825201330976161335635627303511649798547000168613653231646473522805489718970070237514064278812815614256945879472583388824577886137691352793275555828042873165635947246506130438624085443436635772538858748612857469616008407607431111512139210890600116655642060379889501736784522376316134954074151778870137573714961841984598377470173606642903435847054845228162153967132367956218224042184401577172574224276344221730513316698807336702440441902648682412042557371236101712084407100904445835599650749944414462105081104589090409614296715766067076957368550304001139827198270993769469014742029587350363156807816979517930019283745955734820810657371276477452825103401166532261595896647352423689223154812099168064803433741845264194872971386806947991877063643641593166063687368132471297073049026157394159822995539699941917442639983129601917435705770435561491837578137904540542653891612720580654654494527769675964812545453563566802362093662302019037665508733186486089269193256630679825998952929758742709121040508493204821793007966557664366974844028974078169025358875739739009753641829762302099697102906751470719648090779382380763748251021850573743912368232025957109517379313717599362885094971946227601109890064693634605247134583973740763500191263213608740538856049902995075524740132908973624721662017042473345766811643063699287202142238524433572527777210852018388855511702711758208830652337300168820931668300019149140053286584356325902761979554681708790070890155810822491100872600279088385490549245422460829803972222622326490681831653123671516748141461844963194529783788793307166390994956134702896971389430570374248455346249842657142268048767114480206310720649974078335558918326277139264180911953293538855351523691503948448463629860326145573719154038109040294424713103453434062389381908364553448680741977713863268693930314751687523347614034433662635374522178156795955866584101460611800642886695037281157895633218879756475841984885391613030619015537957946798324088802989696988509484120541586050481727983447201933026779176067447987761582700718536406789517582388506162266467743644077883784604827615883652699697624723196478404008754448245679262299139612055938700367957721210097092293653994207034660617123089918271266164202907153224755973200822613617836447273826976731503853147884169543803391694260317220210961199181270177084001698981525936059428068354867479606017195677131233253496428559652471312428026860770731808405990362571830623392261780548219334462199470990101343600021351160673571872976402749657858939812587949539033694654183972013546985701532666076898169047283759054105213143202996848338550906939749914615064533943626690051371487267581791858017797549835279486191760528077618170653339253779112044263069398444613864961835464095390050169714655643494158744999244258532856436158814500084822453391008799533343050371194015074005781101129204410949842542131010164077541944694163164184619404217785242443462842593584155957415975422922009866276596787206567587297277655932571570287916660546851582512252646705226892194110710811392636989614828682303308626471458997213617238548251969658548228226982711318212735139637909057018014351126856638694486789735713782771171492010219076649078317914928048622272361230366620856103960720381893234557119847052242786367026508575083126233879659963409224276785360582577833184864512811354593461799570157900957570663493158481630413107375829647717782537847729281005743734617159894873160567069731348619047843709461182643347911682256743811464600838763632893953151967170720635638724811668493067648949805504233758187125111824870847067365208116942966822999512337630845669896798728235042511774574181088405602474049814390962729675229670116962572077614425388522744444585089797201502539689390688443255981415659758792629536036593594858003524774716717732582126110082300209750023429355750255491853275657306352120210003908196906503555376048602180698466974513211231309667226006471965284645239743568528142856729319292143225739510441186842952164183475699584972848789902654645798907679210407631902081739460806825672780175049034704932127846724282929791636612225497264287065900081596411847821997850124407804513154233554091877528447919954842282941563010531554356193094677074509161842610365544635121251202812904602661455257460611828573920683299781678936553603506539279333868463145123555959820225146115482922189488161550147432611468198286107365941985834532031375046542368159043396483750373434750068964829250648016400623922347113921182111920473597880236093349896941378645940541118266584217864326509336389814787781411434038835835422428612378875489808372470810717479402585270747609671668884772195723931224997134968980050514692172814111806489576142824863122881478148313823893994137036830957689854860744174178523839723916665047308234209304338439558178880170316937301670894139306936822688941089809983483069164446736403496017015916328743639022169379346031545074031341280224603262724383609909041402541704387041243790867519404930663919057687437783877981620599433478893285842353708219022900006589906629990959225993951383153156593639527865247073696031133341637569886710048018660775073895235582146898079165842987228449307474361184419323616183748636106976824718930060943535435467623618805600699586981548216537597476255654632098620531545145230203271166198503783936890253979832690151044099786460329668042229295852675493252150287557447661761287393083237626126372776124174194349845675571928834119587573509233598221226990266947847885205898964923572613410296413780979627106524973446808638989811223349914005709660892189370940962626941897212575528597465577840761456061242416786987858690012952195422990925478904188376284085987360774155904107662307298021557615141781629338817045343286700854019680523236709200306519631099532521412481767977550650367010882860331965702169846215579967340577930271266239721032244419486359951533033963408797621093312060934617597939927924777468307426276417405861879010815366261619714605138459234086590793216789263016587347669403605846064305342666954870029982698374680164285013756564478341773629125516446469879254520006949057282258930958716781491714727018526226547520067124418938011121828127543878620542161745078077005361689210243740632164007044403875180019411547158556381396909270591608428148819014740201455594052400182664486013305142349333458080080585652560409081981511234276234210964309046450619291249469391286161713369415896082146472040863654535983450104797621503688348858166092912064108285951425372592513539391033969706456114971708674161398856773208786749291567811791261673742358387755793356128383305602506038289255618070145943048007757281032168690532636517293326167667393106069019927310849326141601941976554700997201078854681347610658592383425001633123717674958052395383418164491371214828159617929607827528843553069261257441741418845798985487136659217538673137186142453324694239215322575593368590812779345196669768413706159173036002956859678393407516230763643643900536599595631699144174336632923792635197266251984774296963299357349461072893572568012537668599752489754685200741434778552096071442609542120532488918567528023977918450739179786141147632622500039460652851198128619450185929553805136434883941366694713350098554747201363321139542627137939060177645268668125282787958774723877398348195726200236871098480443348527232531000162807855400719424866244289088233411072860004405081095478727055426505558847235050149711990849826477358766695561606955413597942859976261022493306347851813134921498829490484164231369662824490487115292324171023915392555164597603187804899271167891547623530863232502235661718673254909846224415413915552461477709688938028477986014197938465282437113451424649958909395848552013864351035071035018629448411692542778104347180717789415641100384536752126180360296668898074328169253805073725486932383103370375193197530352591985300728752518839783093695202708539974305402755506673222065986137093721905934684876835705644307218713506645245569243225240995827359273171928984717868660903731657213372723151648026715326061000233582098499873728373824707772464979277553623342399012937865226775717244392858341566087975850833435352617744096680470271790926857034341327424913912352549441763388158359619149967758302602112248396024598054075608528966466113488278015937936179969060246611174210749510940722313694449957011993638069869438455776648652462184754826174299191454345669289151181778011019692808712346516030795458940359303352299396515744098542116400399741006618270519426414642362494540280681554588338808573079779436541311625044395167375368946588751787271457448375579438656099900826255279494683016041377194940103966168901157854921715407982883802781428813490235920125799734686215745126579079396603254734676495478729280637175907196242149647701042723147615735655919683342354480943161205205045005837923530134962721042273501055654629533175326838056884747660287239752490317538145172602822903818807783345107730790690796532414875412325208404335151504429687496513386018977812759270973552348612774759831450288648772236485180001322208604796104075109758672294958821821618863252072711628877437999360986058892623633560302582771384721526546766464688362680938655881018962767433795015277477682315128575237476890520847495613405678129824347961179348589545627995432794035947440984102661323008746020812988796868641429148380772309442122433321652557510928382950145812040323658382449884841907441929064520082428768816839955339435302776948946345857344434730930890953961396876000491228760902810095486676742058645544069113767156135942871998596598686620684177121745584684676463912765228603002119623297143520052332884693897168282641397903551624269459961172677661286236286283703257546981265955251567990904484582020600166704090074189012472929596344523693608006683319055349490320030555094544335763368159239578939954359848973349458777051008693532126373310177605968496721995974485387565641927207819098451557973804502704943325770747605097678392908949996514305105534362202625497519643349721092012551602866372767735842262302193557103684719660565166113223793989053959524513753562385596369720904774266310488921139203011340005769473284245398691768443275515744339881140120872568085077703073861729842908799403395277799831895296989072590127001771795637494773655368159203106915089782374362592706839498722802056503552307144884307201978385984526296363069262813271821962510511737588139955196228608811802218886192539234963916857319083094950436626916562833349191573017170314820388653054918291594270728264561884014089284974842052187124156983857419485886396287459809965692834454429375887403838981625831997202368936392563031331608362100261887515875182758210343406619868942140261036022812124895995046154779906622237554633044634929470637610703792889527960689290985446111129950543999968737654066595611161706963525063920522996332572544682202362670969249191015069900877705884002410187207011499831576178975747016251704553489424816692975123042339281479871992858875860912635613729010022841402467563147654703856369937834946976467008495896255523252944970710452569967983213078819527137826610372907192127936669764783099105716029031985905139277829751627663425595050670360943869944001642275982217386144621480991431903922883853287818881582983002120899972556445643272010963943446901083247479233003052501286492129880817959778711278998668718224257122271120448588918723351207732934042495723757625389964149307157029918222796101694935493882962818808742869020169241036882936799027161446876408739165536635101403756510277956223326373366637685134136386608997139693647692820777030222974778880578514784827401343439080076473616435819113050067817807134886236820073856613662457912246199981949255017948583073300295383597845672216149969605196249423011604618450321663957856232664424684055232944876538088344321765331471192796288765626416314155403464068128606177786388860436078877650310482235919708230573517868906427352595073728797522984051700087898661983170918449082896461660867477883554743102487620961180084259679601561486637384433323896139602553948067797164462209920632711586211936733466629221596554811695533931209485166104399395904212110999083796841871406214653026086064797351645396986964972029132783395090115204937081462982414718986901726737052565393255111527712455559517218424534715681378088475657486557053052939428187480322638415340656205381750699927172455787648899847912774833460639088518286230703501642191513875380153768235867425766463691601237906927385959148498751360868398312418594926085352228043273978985113670220126681194923136538741272382093980014349575408435229365258023571100145026184484780503390591508351415675558347092795775062171270777477592152627656363538094525338823328479845016073220860256772333710131535637842952586830353478448067009383855493607757315666819596046660252882538901445408357399956677235678297054396479730796127698365330463038095396810059626700282966749030632977989789969218272891090421327351592345361469999919333779736968593004966201982672868481495970583091765489131549481197468684012056337970994724179058215807715438242428143926476439111590423627462139929373259224088858089648526915136872219000220467681155848431378813854018634150065230945083156661106787673596025832631501147802849698130191967663860705543806616361105486588504174672804512249833162494819535987471363699667373806204265068312839941253100964200353964656323572645070973418593599344292430770274971150025014927895920536988831004538012237527749624615495056492123045984828447574069327659331490792383414543482919404549586972563871413187498786669143169981229122327610347534790535298009110390489209527985897211214951898247294964081344197658015371873298606464130627859505762710315818262477631045219893613845319225159656353831370210749123314018046096211417433552963680427338921096424685212150777037940342346818963186194748623819430676898434399875634011095138090529823881858526788825921493743876543049010695756313490251021754131714738212364465194282656638447593050060629727253282260083523049891079969290263849150035719852510828515306140263347429030174279660227365612135378095658366637231426015743175943329572407783831478019397546920757399102481246355000954513196681865742845777095776651588392306628756074551192895159984912035241417400951753048818257697137867253426236901626195706729641664315302711000911060057349563050403448416255919848989362685090193493512992963715979474015922032648557777972433022336917959670402053149257738549295765452567511581211287014669254550907897334370421384775773541354592228452401904607490020771180689028155685314898131404447522627413378746409127545183026129610900483600753032392253890071305117609431093912024519085309844454851489458765527512455432325348085107333608191489747125469976787772307292058249286988032173982647697967427127846428673306684847474125165416829011699187936565971947267345263177410027348018216610224677391162795238176037003272665032124402575615541086879267296126082941175603959809184566236869947804719929669695716714121866662503531534694042035924392760518363015222248796891612318297826054108968006252554161663223079532001900722707471425871772668325046616935461560834254882786748396885846826958435806020848108857556712897642863625296889765514770546052702012978708356518312614468095219407897301551643300647223417628810215652588975437725549620771440108385383389465728908836348496517152402700297153425222944728835988109569431331628241625433521305721468222297443368383504499704210085959859922436156537871944268342454526888969272196229190258076497972475731219286378318014049124099802105083792052446660585634554569712650623144921741679160428323780071306759429898189500308600700577455093364561465270179294126106985429559826213795921817798135902902463179832060690653403579198163331576581276440024620643049404597293587242834174561719975869879705190405847522170959870453518951053080061831440429078936379256002864790208197927266780880132192563501490266629236346859932388071080184765933730612156269722968187137788258507139641527388759309831586847808551411466022078118944003132771557459761938363243476306373834178107909456489117066108656155097805755460049291901294819013570829411566581392788998202863570688242170253861590303475461501916264783552519368538472938044712538053261627502934506704424059363077072764268645498701228392882637871025399742337253287743100777158316319898332764475341021445662847206586875355273751433925957992812969406807437852513857525545327419337509521015672673639832778630763783179542322244847475438928184553990087915773984657017527882865918807313631757251440192065049546121459897873836753366117975709965438672977705925905922778126962588783031341587327935896123807866043441229290805098233149551203080374364302513587282133410247184802865118805139324868549769266771247231941457493790854105934607427300635982684142842440486417876983744980640857391423383975654002945250420981669994685214840337006758839279025595177089709570869533110437330564990628020045926922343577198337281021998363082309291431972196027939927867734743322536774782224506651279822907717956511084831143773457854769597202372141253139227059173179240178588985155802101875659184569229795179894553659084160896570671282911766034911874564632077349441740624448969227590062066123666016468766814621259361257153952032055978557418342888699976101438321951912505878569719840013357480074635918581522355169966381678802144748549858163984696632857867285862954107826673534041981415423281838196520513434018989084529267695514629003462830008841494193019611580630148438194620370358132457501942660146991895090675522710401284092612157613392545745050348450720069773562513673150243757815187025039687404954890411422821615423987577422425055909740801289007020625023278603756280381323337113168860479117630299632898557761037214947671631793903076329336726164492919845569817176922171170923057973736246111167319728962870564317893482984417359182118365974934069545754031036552534434719200372865485089535047340466628924901636589181832829566678738011313931540867656557106033383144650396089659292150327224469253215296657064837930730405177243783883373883230461154204463806603134618111441986462955638983074497814072509038920702966733883671998442600861847254384898931476080050025379007794464793425745276936792073681995978250899776581019905566135476331479686392528555033101364798467330613014806554616372370007451226047909673772368616593706154506725052972617432691566190067076871493718514516846761365833468086196495444938466549999116163796244964412413269039222966306971614813020607155397297273745707066240940537569511155100127349561172622901809702452875379345241019492290658169377468915623260414437593029194937546952663382004566156088087581267583430996241378238233586670114614479773790634412834194466144847743786843681510049568971349410916725428138744996948465602979909748168415384665365558420923863174778278007014788089894861953730933685121600314418020096052189416098581635066711845467695352620180705744176494574922767361938631845769181933995330337025832422907659243889876632636247345420306107123008987339323019037957027426042705415337786598978129372191371789503458176649010893353390293665698913789451467059580407733227534069452725313563928542941890949891512013305874073861691642874630146883484452776490798198489895099398626609869604752340570129975612694798970010628651633700690049027118050298940298370613773257331327045867943354007324350161045657449342515841860340617116345175592956670004767478385043641503300283815736506231310102551875763840440485564965241673646526270956667698721837634949229702916877269487158743320031641434066269999336231025039301961793197478181116888303870765877562382261302682514787262927696371242957023005847564684401572461759215207166892751486459099308480327050874917598083349224278026003355981501943180053929824582610547751588516861517045004705284305995446798302084109641907737638891925769775455223758649637069141067547840783044930562617474597580793946989573674274926667406563392893355770769146719536633869061056087158942644860890292904241213326764386706061568812418764188784470297289627386121852058411334864794351982963253336249531631383646324347271353349652281784711110893254968441748578314209469078175278969940662013311450929748657313323378980119916875320639443059369704807792519717203152419456954361583848664326159571508555005970791096488310045902450110412413997675680496431612338120838544220581039098812205915925153804671269900090294292622529331253965441560062706134803941528342278710390803170065119786736935143756753496585558284578381747947797788486342738707660899407031768301781458622884961714010855687553686207669171303651804855137712402366189701514727747789583477717991949605635535121869579743927170652240707237723397253883176239744671280710805690285189469819621167320545773807937846859875390587284490084294872313955519317034563205042350716406280898990448278594607044705282250003255152811024796661746282878811343966935773866415907565213768591152785310994768639454022462976195262574450627298151437729794306295758084031901477655115479675826087739977087498985780380011368613644624622545749025657969363491256409467908077353159832843185348997529813567191185660715080644733120779282199644703188458262896610184547811234412771473154643706726748514207224760004713778877821815616408602403734154113023740912566345187425611195127313223500050187260734402803435232744815597355340424077587192196489264633144294445296413146658339635303876670619104643633861922326322160352765143928723751838636312770667812522887529094835721202870595377487092948950236538899730933868250224400198401694105374942704448742090906097388158768203259337275879714825656767455432796230630557725721313736992471304243164880308195078775899803850116340863211129328889537749983258163611574820049753080405024069415048574379036886233713184027242880352545256243142688217714330907318538822690654696486981322784042801987909082096888453778928902831288592077845236565686353432410997659156840287051806506689602663755336275572572954457583449120081306333347957709621301226596126189992948803859478408470366481648743002499552667028935768615084615217964894145071444407401440425166127720006610661135199314482321972527108823681210976811465063820064410802084158438843082627315206617784695868958930054645540622075875172599342928456326311564808102850966783971925103904507229389282645771745295877699007040991007911023305460659226475668195435411830856594005646674934306570535685799133234642618038732112891629273554158603462232379807264734652500770959072087305817553087728913640518922476122051540940727831582527392663197929630526255863509697395285397452404756040381785756875764842468453131296565526340723236439593268231252045494468249032705087428897367222986647721356969972800178894341551987991104141394762703763163475974981104080636417465620591420213545451876106799762477805968949081860233010594916675635977344458416012094787829408000460179322300607822045828252606689355938380045670392451487406112698024483888956601502561245374690619230655422733229550513699873309100943133492476359042721575772616063992367511385230902145545501036331367605426845434132556906967097260463488201241153982287373027634402441276198348921443059646225934790720864704080888208397064165080151857470648417299046897515206406961648911148553242112919328076014886779634474594973632216428803639128471727047644837643084166895379732254100322616966889118008904899865078970120247386861095814801032866832283858491530443849967666848433653062279554739840385870277057355340564396600095720814085001270152554472006603633147890940629607221737300987323322737695315447443839891885688278495572471489632925553160634658474607020481923396431458724607566437699650627618691485846763432011266623007706083524378110035579705625999293460113711716587529608323794325263556070283118317890564395534686573635325696904710073738578143123634715714553021637287483792053465869676546007403085809599524550498215327154222922041031720568894819954631434942236802414809532730252718807974739462804664163609652913022669403153815196023438584351857391154103529921365879482635487336098765135235831830724483615996203007235283756463472191935618119637644341836264255063010293252132505277970113757120048360670939173957378086799837030655207512589715625021144984685551121427320922243299245039815845571853351151300475765558743551510338315686686164474923120151833135814630666301436172441291512581999588044238399613495570348099924628002200855690466037747769758258115299648975442698080099823605326236711341142969504937265063996392778124276416577599951406832826008145579280826695562573785702995287963495601129623223577091636459828484367752865093234839012524029952726062358373064677530568451291802097661600539157952117446742106668100949666722258302495359860191795961232740121096460906620000224539083223762585470885416047161223399285440382994059179075620881361590144065546475582783759161322165296586228986255400825193753826106124185970093096745980300332135567366685711634458822502942034529515103859880169853932795486146537499244231543685250871013970832313217695526354358893575267881551190961486769848220668229473763761556792107293500090397070410948923445193229001096335063952458942480835023314403018866809576716296828759493926817865952134822263881156986483789709985357042805790544894032253055506818166674368841072745188399253346477180525595250327680028451923699016224010138841290394968700287192595870796818442812947152668002349284957730818569708115284078699562595503091437495524873430116705532899511248936986415414814758380921345024932001421820075698009976664354155788380609571275254053411192722410939151225108593064248693965185825373530070910558427147975668059998882728668328594902343334674382823191974283447788911094237953843780373794946752523661507939297483193912236458971812178790641609177664123072923242809051539069233857363293137098017428464369423868026307816350925814653554725578911018049168329558358037585667374652119185533425843270760673684232245330546367321020551202875148983572339000691155377322882248598548832618905434690850669691705614105445998873703558346415743880805990894802583333892224488160382986943342389746009461999866356741341933358330408992894650205504571575750410835156696262623232391141792519580129876007570852888060927335153776801022332411463522911614288633957965872657645432634773437077463070350108672229246211501308840875375267198522616324141549894875746063109830435814820585186972558272554727878957006935369840375289994018628806863168969209492899336260587031262087166793632082789898497478593101977195683263182911130682318202224045179784191362941442610705002775506515289362553797601849244947196761384025883320469583964399024220316524206934176193335647466144349907855575087208063944438339388338813375890066178560075878782680189814775507067483724909910580941318575026947647768098247396760861455520371032969512810067786408263072502731495273177774005590243919226843532336171259372094086011863293236818779416042579788989349273584757019624042648176147255967032134059033978322440871793844365228235643695163858023907175652933024234225278077972820173490492989581560247282817391136403574682050130203818815282256318710307326954535079830025025325034952206861914865740798287908365746573525860254408986279434072968123031736823034850267543554301673596120081884298879292501012332796663499671585538436319666322395802257289868353814664736030283215195314967792889780240408553114570120676123991194720722272297079862487304796522314903050128146165027139586984782615930292531235317511743807726585286334404306117518071561923262707944772314010281011880269695249707349014408190743658803959122131784262123505834477136558351547523323383641758190680944198451474939174160707634659072334080027692749894678699639093154992311768367036027943293091909181478031330067108470866359075906167861627524011594535576030924775065504881458562362738185133502158492004748233656162071735272945231771625169526658498267577146623525085557553151129137788106089994690079149815943811022021610965089561988724979627228822768567780407595093480331517971684983306704301626109451410847800093027721072208748469574185530693873417345524414367461650238823621262132799610537116199151389112421892313694445496323462553490285187128572581821482715857399546166243645567756198043123877996181502527820023286239659151962171670281674771146794111952081407436803380960946966163817666415169617260294528258936914651891659375579982604522945499609835014089087012443838839441040945063257435249051175212448269176991577956951735180077654653450405890929709181483434665608178047288476405965774670068789989677879531193946693463788607892361794836649764139028888898523203695843333524946650194262773613811386640399410827256005825936950811907127151504644562411210219817245502836484462202269443614033639338290346079601616863532798285705669894788187928491333578749918738686405044666428526530025642063595895355011718110508032026795696041194126080717756593205332889851876449483897705808990690979501860500062409122581001671928982090574741047905990466136037206888451591682209009572507304997545245848175889445485041661635753326422092768767519392297079585643947652712801032582281747574767278966940960990962923815327653873355005056956668926091094133754828996648555288391765841520812632780849823181041852363674304406802179738279712872918269519418383149365658993388268062271090865188072768227387311905892743923190200239095040807126389798044332067650837204509968618514016665592944671484053528432232118322838221797096126631579512517385799932773156548564316520017546791001518377215425419109620309656566201170214877941141633109814613112894636855359482724894123531196948856527872049163887978326825595184220017081686487031084013539751033416856902121996727539403024194451729702922525391441096364391303953649381391880923111637858787879237746610682062254129142581212395806667904711858448883871909327305500140981495238751238395226301718112317613893750234911544432645121523811915312582738242099889902896162136143843008962210901505871859020672618983127173583736591583867844523392903483800955302144621022776773415514274337313706236796247275009440705400203114851492377458006605330904454830638991263067321179756117458121400607733139602076214870332176164653548306273026527385699953818683105858683650598715476761480322047866012507242548175979340041520424833549788490419296449664627682284487403547790189970341971884344844868801924465989073485541171553231093479342082374317484052665657285472150636419869060185822359482524878258713088768062800133744209333025009038223177571424080061579876559733238083656245150778248747123360105207177317053637996035935924115734461803739103034766677566283512830588281667549413823123850710581864676334926744191970638860641102818194275388346870539784018478695772999929831201734781401734227929426501543318981070894276075390373359729705518192290701043938101813763886305094117073386448340278311000715524003838957994481283114291270888091456287062558941017327729824233655755072595827926095563477662821665797853248803256363824621727177971854183594991949263797348628342250126896914824497129642242794094608709896914664986688308349163963115110016693869012403256788065512969371828578844721267549549840676526869855022562284930358975993064950946328415821669879453594523166461135338050681924579505421923191684039672593359237306875167071678427703302773944036136456013479771388867858454653377517515873302661712937873346329132483223082293721508223983140560870067522192776064455842642933161179455862416960082990241765948867062042790382938601730066535609758483457894741387220404086269413031362104551288772563373527516760415812638592349925568608352895418597826185153029655928078507335504565419278755426379855182336104814290040846422476813546455753400169828755919092611537787548016448423328549936359529757707289525074412421502812563779598077847828906286193012164346536944719894648440338254453737019451933715631826397528932985641363888751051207171755143152895799447084273080483568162452159481711862523849664768705221976138059675267538365590237833859205808976424381821103358380536864125359192546396457600895484417746156547046074607116022642467395499175485128145872372474500308232267702788014059549958903914748733498096690859745057416634310706857013493141652341318736471351717904736436158134535622728098046163527505316199300440499049962096515201554997242857513859694966190648537586155226771769029578433754540743800951441329053892621149126440388760308067231285962706728097536775221169783494906779554663483514182005553718207806471683857634237887593955437525748611960148289197453418170167818357814211728565068246553070217865809950039687692749381260825901264316566395940245534064232223800972690066866437502683687792121976592337875963537537398789260055657339120009753122549781902711026272603036461513363977720699332714545880419952700064308818867861973297222029177617822229115063283176994162391705339664239950648796418172073407731156834225822018965553848517008842217901234327330948858773612359146830094955752838061525493577858639180752275657096655160048698602424811929744829707068990384067069782510138690753856582265881601046423885572634268735219989385066041197450314565917916120326486248610004102264450359602429785865205173889832195473306265800054085329107054002262542905778670250260958765964138736355839817584609427779032056031832272178838098727234869266303250244796991727069439547913137875551644135556648143348169704882216703695992267507839045454701104748659910633907020671256351606272088526780244122319029255148997392370012163407883300624977099573755960623275944710703701477897769368734808699763597052150757857932931872295723049271569878046210359790742509693592151468142184278883949120639933123591399302517036270372479901172009688561226457848678297523820191489796595964803528822392314836658498741914679749782335563946708062569264548527033673536487382802355454378419086202549701556245120191181035130100200444997090826624777969284790824893726113349731937117066169565627986932129896842253111374727290965547176771544964641299201894716913013869728570914957782253363710276372322282763396171766547724172978138264905727351150889481378255166552515075326843736937304592286669253729474939306122935375862182654714469397801519123422379164903100011249968453955033745012931371765720241485661157098065033273244283127673201348164331233593519987888571620531578375045032865251884610931731731582452641984405987555283959216856141678037728598618997671827137001274798652695498739789220221996019473668026411412496105860209239957990537858623307501067776393285978299209287067331347504190665909793737478170653459343192914312412948861666424654298179266241376671843541514048444046247893875212652940221974315765428033178912286896207323365371678240805077929438656903974564553921545894187319959240662880136182855028416164767178478028804588862097527512804772773410956691517541428337157498810850790429713079356902121158590185658103513947674498317215938472185194256971813444841605775521700756193395177523675229139302965679181556535464392734294901599270423184774955571540093777966965361476256286831495599072178977848255411312649872213486381860523020560981043770051151271408502438791338416618681806107474914448045808673895085712345963667290037917827526831888780794300922808831198064062308965835896273627204963710672711061422102508271293141575836778342273473457218577026527007392671153043548340785931487866762944130902789532101735058273764387813674789194744938224393397472951841630585266642485888175868751471486965555352557981017578564396960423924726410310947821718196713079544156619555475468423913273469936910660616664523051407603618494842045149922109717410755240148320691422201299039553194604506058333884264798437397417692637720545144002649564700151225860676152665437709484044138307419477196355882905737099108663753164058504517188335849146092955339854052709953102680021807365177883569113029875236114045434937536930258274616328795021211245974381977710657967456774228165510474227822987850124110945077451806159908402074224683675561602698391965551272917493166951210341860456198197746453180305121718698551725533102087295586345148149183318870111002161642086718963528358488783228419212075265234803498537834681977414059349170254639800170806383111622547423573286180278838045837646402172315937604489788183487799607242499798888606307429549719956017716465158584824257456963850392576898152761513536254343699338599683270461325238941369830625174488409973583954249212638118337539248771076457634829169842730410721685410221695947779188238410783622096654739180892606011366272860239255674961841447940055033515691279092881439510158125194798628631150445876137512088701228613795580236158581914758994430525644620406052533303580736528043903918816770686918908383952589012973550961666784500310485666109098276443123231174728632145138127467511634760416437195872295424670088063414854316639928560322149775046361299418723293307968434994759712190626136483627497099043459429496096558550371051950191276692345686339987428650690385395386348532732822625904991422975851537823373755085044866376619941733127984166311763852505618093212008212681349603697239729053847814506090185129370802187080151519136589424461640120085708012766939704026538458086551238400628766806022430951454808534152550362646178566727574857856359057940600322087928156464420223385967288367509521065113146458566970825555093696845309109033016237668895527151902951375505170227515021747439920459197739751871674425400723752982052777101509842291636821507463042913301491489656347010576894130098185539885512882778886148385097858730948058813933901055144537097968287380076695282340286877428455599486276032117460047670946456227407240345263998564150758608141383961963699995346246140075216468578111622822257542813442035650318504339750249995940807481839207175205589507125040492278902519996537341027684144372255660759363017572575677063121067155188760089014012511334691028350922551167944640403329492362293799786637121959994617902923589679236515670597269247433760053302211397577173481097499502342481311187292838099261096300717664018387328625470976223539656805254843537403408692381044289836073730089453812593423437301627742382856874412661033990251159786966781311879686047577555663316915913368018365008540943841996201324983022336899674306206140410335655876718868389397127431358839609873670812569724688307222746547966559217708135371558886696936569151478299363343233590412019808849513317206290466125352079306515097186102530431464377869241012279402409672658861548182409903560758670566591584644247444968393830167227338105987599141278195333722067629681492062374912839970282318593037066681675180122717044963883623528996874230096207043851986877793123921794856417406665423205698394221673794490975872373316847606173400295984008172096690789249790753259563225056951917105430440467453170806345946830308217212459495826600223804401047124596295045925320352890648365864243016903317056334919780079565365068347804878533035178020705317895298118116809064885986074015770785583432221123747911677464017967870206713391237845254357072995443166953689455013792771471177662310719361205469818728187936395927792182967805193439352263075585249280346785034925986936067398396679649242319170504440929743347875292199776833794586328360497064433617484866759627508100689551513836869084281455005870789133589535506756085379556446498278814225019155867015193370913310610476632458416751007845981775559598066994227841900213165960096892079202767823135123894911149301569901951546109929173908247615778882286447529496590427738069988107259453604606460812719896384040221363577641242293643672045447522359665320635851234386986155252809457994472690680003257787781630491808458324633294870442174321996863612742558626337356380666916111858308281144954815352060213815272776607791833715606502251575627225398496209072380596437412358268571156708147144147492884662424300642039438742202564672997596640005654673091193700199690085108680835760248172840646433207910817999428701215313996940589319906457879797529930828500609964841160670162825432164212925888168225513918813611327211950448960124156034183596095672308336096599176098279947321225667399430118644215742573943825370915019537310128686711288879999696208568142780562665923578868812010600796522824708279333057585698780542184924790386170991331128539206570127403901856909920043447507267593986020832445293825759378467419457794233420145282788074188867430766057956919886823388906784886879881172671207533094396710093215270964764814748998407498208236920012497954367858506013768788564540942687675963160969076205271137078638820783437428188953756493785650330294844516882944222798814520465073156756345912656908361645590738478186561483444389990774193849383272062877995066280586653459057751186233204781009393803919800489057229777062625035223308181748367565366931936635021622780896762585405445740041323341277246065253122145622491955950337748255450640922983879064887432045880776658649786673258931349374352657104004001961554283082538523169751605848396195006719981410637551710856730752511159188081688427569750013121621992158198607429518964037031118539086174432975761724021742194489768375326498034545257947989072092162049846392957515488533996700868441006015315308595098544010358915074982935884031736755124538145923104124576332909141921583886564322228963793217363132359703298778522934039139015787889012880009846089791825927421273316620621180794850661679933134247233529259550734255280612881864843166925458681702717467241555072464158027160633475056788590469772228474044493364770495572508138820503684605591512316354717465344677846273410475699586807459613553579411395513932422279529880572478929751838786076244716455286013311729840110884949270786628410931920456443654338256121749240278744799222599057974023628521700485302489189170505312524870551319056701678975709481009678064556501872827831892754049144251773800392437936141416520713928261943509865900966078105614143165413770075650646585448550574178796520938834025347590662336357028667822981405131464083930047926117213798953070391235924992150572360441180174279236513659045477230448051850355265206210087885002535774152447732666038618884732558826502667713315712820645701034106517596210409614963966216266301453109622136241050461035984488722825825217292498794438459055256167874623639493121376540495014452982707092517555369384898033807973546008651122156281154611593348340298208844473000418107742264847325843637203977220513643308713494733824579674653591456323432829111591355700990796959613900469962578117461969583716334528367323017190440902938910041856652567380583388380221254189371347883148969845256384264171568391379576472959682658953968650674987883828467822812697107125577518914210563393243061171731851001569034023988804964617502341324425974195136452264644719620137494613408332590056530645056142413142508833810040905085076360142260884652742416976299232057544098858572799999011587199836036341945371536434070877886784001457472087837206139974534466284628166545765939036796847960198216769745453508174645497657729762836478733894550471565675752365977107595460550403089637685817641506450773829528330747674484671261469450878677451145508367127568378366191368480106140280448456199296642001433679369204976986828222126025269993652033352231726593740029357365901780498748415858813486340786117062915562064596812162871440488491911610347550379158029295198693501379158362117994173742560993527102086819032129159794398166481543275791467172821785271796711191017214012119024885445563316024989586933959196511574330472766480725543582230251072335635949114973452061777433744104141408286228440678317482761541584110381899930183735225382151297263690302911473589341671211474658479306658775662891130024869037347722670092111079255519664917364936944972808485817088969446264646131844749695284949398707508199843660197543234987204428841491174671214642971064414532976779871811348419658009758929457974040200992140318590047828967544345316757407430670190368413906450359467741660426089519137793608051658539033796547248768747306361096904339505909185977578786904531107783399892474883073348997239108133668962853813487595693553653779006570663063945424425344332095036562995025103961348853235000407208795811903771545613378101867096355349428416881726131039943213211621363099609217927004869784632156047750006600680468980841877315471509130409246736740652231037808764830541159966607634180921486389037595517368837414679066317624010596476387664589977882667438601342564040035575583075243136423448552661234160576580522928748987405026343465686358066907186560181046187503510366520603519403494025908678388019766499659940265952163680226621825135258737987349297237484903143415270478590727165910887709253996589594343361823251357535702725150167031455217319721328178055339285952620496782477728279253900673143236654487275412881752107039751459012411190605178759902383754466949616326842261032187131026020264270303164870198705959971227034308111894450807305848736488264535329688781880961235793242884284913180579793222432865118006810375489845573665375533180710754083606374638804082396987983693970772867776114468404983765437892447470110651936578573986588036484794657141161226580440120542217342507433154252094144957424164107879820215830007084987481952028303345774965300558342253943510243101420126942113594464794470572516052217545785555890173360056865870099159002772660444154362014313187207218430025610585421068065106049401037865442892516681882998371768372610810399678826233541101734840443457423168830002513086204601760271120506492491165195078535366225827532316958180496437177612207073585589131059793821893117103306215851782259352319354245337703372303678827913759856588097577702567170464346671055828986200364038799145324175951383462621120147085211886766636335936379883124624912686028574346641585865628472686201433739125273381230322721391882695240006455265162832402779879163230318730115529254563336899947322601216120465346622517717717154376649761847286352985151319884529695123059898588386422134673575076983875005393090085871881665250462910338061213949284078098846328769398461453355498046275428701588358322928026992229286489354531602176599096265782398248388321112595116167896820101947239037080879720993333166925572825061275895923215688956082807483477679766963374127349652528217115090198907420607188107415256341671972678284753973599298964648050953661790339815982445362701598442939559617394405572033980727718592984987777316647511101201899636803079307856049606283138961483511508353616316662616680593129448981187486903283526628475382550532613092642805224758653806255699655039434696634557009434114439787524553443728495009322891270842102886837252050164931064318455268554346368234169196208294205288345378195658990660287530612736743311156017603702065021983250086796533041278112578974575110295902812925135718458167852099270538422021707130735280819343861605469282510149598575035518341301332700887100107252740007785051565641261328624289721808777549771304324665465903060803770818460193997392722759385736911985990382862546830715946766702884645542912607263317991232117269455122082394132945874382893320448910564023170097689442981101976240636354631413239224538643019555850913056798900791622862576053075046073921662153925119777496068522917456704108754331031876612253153781795890405172841584709978005786622174194991425674433873390411721854620943494440810162665397646321790616387534989644741361937839210697505813131643750478742796938808431197446249834016132627344801885329647563292112229911112839200640000065989665603744948677047493774836889887907722024880692384447486451222103848255767301375593358078401420918157213913809698712538919997721794685500909088167159917987041478827729032299059893060496647952929805678290318211723439029872191167517525923034068694302191561156580416481704025469262965868864400552125101571069826139723323864582628630711614752491566691627474354580799555057926301411406607381618902922671590081562717264088714805240921477409322195419344133290380037199202899744787220516924067783008481034069614178018522769035003580786862045521039497953486689420890565491015922522169492049560428662386867042447822076714330897122756421563270738277781994721243420884676733967719690464247697110901751407466279862562496730289990086859674236243020092586099663550290344828627256736966491647150154182605045532815531204532486724789478852693781646902787310555261079103024129104459073798076757839571054474364693651940790856873208489658493910965146991797982287393738075007597843692497218112066982844258344773314075784692472113315891510631614079241360886843462970509947179705870902489375546966691282053524579491411677298917078288520601251204577210635741893786489091738529216633993806728801076271795482460804709791709629053712123891067167979255891899449614226669355818797500314230378372158450954575776917171299324501819996452556546875039880957740314751304826534709949525142159629163211194097097646905246144189625527190578316480881677538561131411029316032688993049174400127335269524333445242040633201676797239154546041635996767145287876521809102221525701915559265538463475984962183694446514576536025670755431982120774047230702828097420775655349115317652027681301169299796500443600639558910056697092935301599310879244412953626689427209518140656096730799151520149738467979484178629522472632862836631097924423038122927049159561252599667354672893007080494465473614658923765489293104994594080889559400989470654441451086085050598056847220450570817953569971442288300348237015491522569477288847161523965415438844574199952203295529696662410166927652646203075873769008110082115900574402262189441454810081873624251486643002309966239260331243457427478017333308680790106599394260512834392828487333637917632127974484937127325398154628722178663148493338360481082160808235089201805201548547650188137101731604731335201558787487321216392997359687566668700926615910512811617406525152125242586597296005966545418086321358832482002299909085013274235831800630834945150302022765288630413783293421909711752807696397507457988236419861010617534862783276743217842319872045731576345352836157078090947648850360897652697299375858723987087973536271250530326611114558916672007669872820089772960364490661588536755679069552008758904368709515288379099739111960112676825836981951691422000046760987597625560321226202268019939845404921415144875791193104300853171124029064560816532924915215815203455371506642590502515131575045908241876192712329868140499229174264029981745019829938537976760705048402100718288574307959233606003030791684928445730169021408452933445432893215368186543430353288837553264567575797940523310491717828078110342794656368475280905773002687987381507232175626891740526198622929940737139753079649552941791017059261444482518023911215621445723980118698217728576358640522304518644548891533913466957775854111612865346367427885291125880163864748177563761956247974397259114471062035724802054841340152997933222477260988762583619601535744150989503757488813238319144034642447013998314185489843398000408637368604960747389719356827204506530344292057996882905468812465982641490692953464675713691729034138968397599791049667425746037219355484070537993899672376316293290675806234097804673869158474976429103276277253839266344663881299335823386256449390771571115488637549457684049969854137306522814134751701002166172266279382544145082630774298694641997430259014231884031847926493762924605716370444325583370031542390642244983569207079602797140322345229232804587816192538266272804900992483709526215044429322399833520770070218332054003469240957128552725794026337129832835195908330753566278497535775011673257241497527143493762239887588038922241465148379380326171576533820634024569382377520678204912964831447260136398631148129505410024109868286172084719769313180297504205375086138615533390342809230974330341654218968808487271837317127053617410664349534943494476530623074960650705400007778148545971429103038619542230330354952018251847943028096924345208292210118657819142206125424372888852585378725404229641064549902978502539199154122373707975398674259575084122492258413781282701289956044938753532700792894399772237692814567670414054744658052306281409796137347292989903520907098549534087469224615710981955966840459272625014064360122624225270805156865472865908728148840780487591232230988680980470570178718089351466816762855756539374211887215992820562839126568866221356118248669604780112453538278053980875962280418297362098479732879692652050000712620759289125968903957490342997732496917661027133423560025180407485866507067412493193129111982043795235046411250489263428325415625697131370089719525050441943223112144934140613011004224259866712289966825330199303360807091170689929471481388503525788154188925691759756781932555871577334261270393026068575255937260292502084126157945408077310174800326929797092941194201280094759796607406356123144984168422629982176610495203339937578878493622557891082383607172008853171355754775396601392267850011407249404958349292302579854284736083267070174927056959388820677594399884771410068170061468462048321780314688491109316894490349131557586625576597645828988813711438825748177694575325426139929011473928308534735852511864145420964997142264816126249104120968421664655061871188517351896538236822656790605168601641756261018895093054594583772498440914902605345035036068452154808226450925421875415676756517540771183656510864295382810749081070301967623488923886039267155567646237609011929298437907787583394365145542404479673316132371610211500028349142954602723191547188487858181749226024904392324297269359286437648011332264147972464780228562282812468589268562812338524119299432269005468636241724794789785010284802126736299439303991308055135438498376019446893347823115640534106937530392651116812820358774779404829659444874880217173668701885456842160552441600097533634981391447965320435798593770957399612438961291771606892605478764232608866507402660576713823198856382591784836661242841812212750731897342393523294701508357127357906771871317572995982820529607109477730033054651018940076996862208384006758562214400104513531258863542698092611306707100231507502569395055762992112365924593402660277377499159410707509871784661789184951141007434053484859049170262994727436156976870245844276270295215028167806932557648564453210235900838995432910550115162851658837323296768260224213634695591256715461838159021899512346612930232490789695368221784355748011510632871137708156398489595107998491573878042263680854315893247764659811979070634573729568032037760794083679049334075172207517185838704356933607818978346081012240373967413813716168933935641860402822004982670567012099045304929511524429779089056693770359434934998870455455888292776100471065443538148924362058081439866681623760062279385618431058357103852278000000888559808991568020496750327039517421495659517440371089604466083502946510961077182893535528851731363291933687814636947909975736045099284461695689861163698138940497719776859967030710981991157607740215280301752951387403265699675168269339872815841795360478507530233653765557932123488059550417808212977190490263071926503748891222873971093961281338727073369993028200732502839522967856848832029936319489007486898413012399829596384134881065094743296521479093567843341794882491582252056094508196432891489421882192533061515278941205025802021489840579294703782215060726837396478961647500931913638054762396913505723127514813624475104749137535193560885230780285837018071724524664782758630890020259338020165663568308110255819375737944590474863217770906034714240062676053030134375670740093116574507439216591428477165021220005096909604225717284221365227686004141956335589818008100228666866734721877297764698390389524347044026103394637627768816770171740597983345397573455034646541696814173486965323932764908525343080513745838527928698684826404384355243464468753262467924498153421618369772722837976208791290267699563945872442254585952323108732038960813822043578849389409132204637825279576957747939708850522503264786501647351023970317193036768923754963715483580106910195256880544810166057438643937218601196539361121867511092823118618109574758784480401756764327992439460282702106968720347741631091901604752079422389276700841365640452686755435655065072520628591880103680280497146186936353059715602151412967165133460096341033801502344730129972273727795540045693080665694499808131397938213925889087488396823058607262235822103028054780305811100374877949568229062844092547930802902211385061504089179776504502157498606640119088845957147177660902584755567422619797330223729353192281230684671934058527666616479565516279169362319345055453524215089012229117665062950750744736162940865692461400421716792506536626915669342229213643657292677472485426074699762195788684971954869640267522532289610817316415488696528264942524064310286816759476344336359828859291301438525184781128956890964486976078117484204459669806170945872042556880619070230099097752585585157821244458840170982221436093693844092566235165455014912203267257017931243220479768481667327683529103006960455321204582889036729435951097607508877157890205092154815940274936538966339002854919496601733051667023351078987626746381375168272025796948066736559299440191753286813448738359934366879369993323281837822359710105296951256833168832858765250154164435335211416246365451289262754529471854068646113631653776153522274501737927345262362996969441894105607779481684863131860754283100805635570896326301114225735988073788079228120129634554894946158317401811958756513813889408281017996337973891767613366003569010615817185345290390059953398748586621361202557419747421713784512581967570348050213474527983571781879947976301327362736380627535371432985553641891067187869370638443897137418941722915255908873447500768475515735768445123998831693727199606612632447229213180431547744926141543706442795378877602072565223257001711062241286696845590206007027848044931239029923388994367997436547080616660841068584364607979987235150340122233007606095452826044909585423640173826080042236532491102751778730370903111208530589241796124839604804657640083015836296632375656600412305533729552837276834099891744178221139692657967628439904876805083305831505546067940730122711114509006783747935217822697738371585062284374127061003945006632257674685255662201132446494469412276452811497517105945777831674971638387234192296985258472082806161513130928406863529396634336689980825832605565535005344851057741818746045086187322138597565458935829051491258129848456132163818618112488892644614322257953391848347189689335787086237684359988759899282800168757253178779271141976241659939980728698142824113144728835174555329479540451846823605048348210069731220483664283357052497781681748189825759987961165235708008292729561856364610555296204760958354123886414025843072624948335408549449434401181938709901005850963929344838058706719028545279603874424474264496560614807191102159857613863065916530844997717200880326231970133727664996647170501367040048918534650114694080805775002795426544434467974446015727671683638948923617599765457776731087101676341646263889293374797731730954959124490763762040909981479846556986050463345503888482047201214148342909972092134770106025479955182309561327479588285687895162684020774227082914463509951503366416426656014639782057953878972536442725396559486159294002284574533273697503255388171075590977027057508274957725951918868025133181502741504630517533856099436720515363012380320802535375246522177809679281365709943809114958064228153954443500579442368390269199064167016349344517795766660155878523108320862417178032909021040356443879753244741337409016243463224529538996949243808444605935377595396193524151747539982581368004826274533527165285169392203490597552846615623898764260680779709727775571321186269416757192152479619046544793858736353521584365869818828475637440936380140506713539645498212641228648266924363853379396102468895765389495072513651451262534900410727880664846532432997980100171700252280602429129342808311667221239349053810362262179818205390396509874174094019109412622869642461798310240204311858450948109466952295254570831257552619157736240322983910296356405924815307999057964787811929681196007021179212499428974889660840802760970931955804492613048778086775601418824479391269765459545977942702904427617978271660314914568086619726363275933807602275647486563603460737004938291936319374392171404289509538846263181649679288606576737160667691570116999243265296263663705067214119211933092619008477919855246985355000387376743550525186628678110712774681371642210754376897959590723395573746801959441545258790450306488265662714383484717897442817820216719463569693306860239250337347090496036645468055941971103921339699819838296312002372024987775832116209676775831715663843697277961050475873404867074161840146355707589322208337231771077540108621018412974842697452970566792688273777775307227435404480173570100195959386042439189086247180764867666850184236955685561697874547382987942331504560378840151380658494429178927535066364675650788365907222976545665294178341446572121541479639203434244321947623770357404338212485225587174718898160235346221905888499285775546134060065429248268156657511896460459488927814087009944761915311322286742867521461064991969114085028976942891912097317452869567513525920682934248904501723639169057096724118227301090551228791374360499604728945117242155545919238250678594742118118551307157706438238762437610172303357047687808742701808356959740296990879699800061438966001639557416299183060210856346670002521105386094448902762795061170426022617625241157194187211481368334949752983588285256242915357920739146249433175630627112646477757860480971426944952071156082462848036335698211250698591772337252182339127106669139999114706814878977165743074713367232910128744043228774419423038627596778820692210290918917034806277593768029526064762963085376183869480632656384281870108917967962128439875138370485445346996704405335744096440216422845817761987425866395022927709682420120628052069043179993030963819636998475455607646603117723971390481988764467510728911399584832385878741207773617688398045378655445881679542718542555898562390786474696543211854332096889572532445373665786665788631546625305302741625346503450312338911185189304992515932627121903866842643851889966583763289138226964740980145885486720168540595048038863236767227040741399355893954793824912385379487273027571038528826894775812877367225446640682611603504399539007819175880038051803750791816280575169033488537365827902531543119944430239714283084272005765444707475630114245298058291260421652183520324517845204269493625518156382141044378118351177172078744745525822295105633423207639990126998144528130722210043841212911876721191052041250377547632953203050607504977518596791022501767784380210535154145816201698255447778447771794122124643007028935133855527772362856083461189273937777195873990956974291510714353811026437543483446872861692353220145531679460395695434919113700106592123982454766065241217422061459807193063252407949946969496057979442922393629066360734086056333684492899654742935085851715419593573164770289773201055979511401158309961568219365456717699424081490995235742850454392309943383812482113996549578472599653010584037554974578629199897133652680852106589380964979941584691114481500969099992811405801694696933480674972799531653252543526161223752943451122045388452701568037727010199398045881301276818925664292054492528112085949823740093949559983183157109452830300701641640517568743789178384990690593323981213783777045296855887114909233294501814386366245998380710346304754422364200866324945062889930920456245512587402471180707277352268256871859027917533981858152881024884290634217327662761266256546071413030496244285520580537946661231433684199961692900287800204171009082445359290351214159529680942270507001337097723838826945867624018360070506683335021006465021617340986062892929817112920144681180275056996646465681237526663960490271011315138398062249367321171366180131479769281257249726511112520103510052371273986326531167761499443268115581958515528568745804163357329059548110948969465228214990315952031053632134152051855202478964139477340166161504892447479416130970717336397597175801591075679931416856901653222639101317380328679895145275375165475023194965566671791893175466379904904732145106724254890525969840814712831125738748073488271301469524093566724958602568429921172857668667729221443584830341804737614068705893646744307315613902347526152802762645664223151386970981950860654319780201310537885853321023708984950734573743845165647388536723159951522280174458192441819783144480524388451562307294807250368967446304006557848025309132752182716892596999817986717856178507761962915530563075119928216213975310675722353117542454356383058585276259182277510850884446989212932657339798174344819269333959517052112404530955067641027241938917441017063036077206993290755427750551255548511178816956757261895138418904237295750321907620860115470985488992576773732879816259579738749738636119378858046885128558553461500185487050034866390809256727779022243676095298401391294899104661350738937634332137294709301147653960922962091600472042833767279336220325210501229457088136200176396383844144040295920999692470173682774984275932202318132380799812179191391408007469901044126111135618649121687296849548494550606064905634875881030681367746415046307917560413197107650944298410695514595903701188523836778958189986861580631740589243348053280773646361661732155935789123487824574655830904750357089577427285263489456967958056104394993293919622636750900763403006069380571169702193229969874620090896832703256370106433140859441384444043853560373649666130799276933614529880157893740650771273564366249524532879335104814847780866993834010523429762467388978676353006107106572602124623737120054529197002095926491621368657614217412184328843690709397338849950227431898687767531453830406649111030063115384360661500751683773088335083149052022131033429786193202438837117794642185390573072763835548519002001757731558766363585816904745630458759724187250882830862751344992452946943263600293892486177151360179417346391606748187681670393534641139400712722034780202860267642004639724713087670343997661658580538415174487951312069107436952557258492971502963316894462125522573042464672503854386520842023981250802053696051767605763444275409489466612051739559811587944206648465271552190615329749514332061453636548839307831152901677575364954383434529885648899528091253976639689058803061704717206772922763719626707271825588064548720274763163977323334180288361435382559960492916341087057274172913349820271674511556877458449318245381548975322868643260207824185574141148543140918838928348370598872741177065607470409413225444019646046847537167326680035298752495515335936907049808438191837954489192975433223073763409491267070595040647485770160164244047474632406879352789439404105307677059207175544280092673560258135859242377192870313355977962350831056014480514315384807694372584857757484988671340188070789876644271123614625234137070403714773651567301277497225865388369677221600164254441447339049019368959672954784285356213548726741907668942366286741867125794629529738579367590407354679725213617341537114945392504723246130204662879195707402062441202793758480858835353646462802906550888931458817631794636476956147864100416101921863442214362569121359388785531059301651778582561674728982079381723353784019186559671073279811168393781161689751035009853558481799954355552139796795411250877143034417801272932770137478268381601139540086437106319612963942999628840184011275890337555263217865085199474162994844328175859386891152518444219997346196420562948088115952466201866352513343850066082618417210919082009996327008256502927533526419718607147552759470279812760638310453620931500604896653755286303358414069283087658501815251148328217896331633614463908909122069233648103557654183596869444034932620034831713196491606668728000851310566371607070050327004706017140886686608129024842928001160869893360771772432368449109429674040004615493821397314200516432761974668067215148459227350247249373178903770402739264688681479857290454792728615097581552480478351875763049002249902831771165571309387366443516424579868829466818756394499778216206194291535870366567627223183597575031430742845364500217617128082313350193677058093289905335959887369027773370622457817855130875649169810043756084901853258228041740763927604430906324759101051024520204428937705703772879093227668673991706949212277525594612625546256538139513769558007165689101069285397957044257926067182515601550938284048881115531123927110695884579495916774925713998270015112682422550770799881031862780879011235278639153621106246663908772910198757265638327603752501409444450916397249146903078554868299017106245880974909186380760347983846783685432895531847011020520038121556648548038186889728744577048737935159234808299765265129161832493293237442501843286095777311952255010513135162023441674276936297591726941579750420393448143985542131053618500712875743067071499862688857417605053455162757260707355957888360860811088354939080354398460780726888908488651395377654448653314413582946278274592978204355365366119190118579303911240080746451677275392798918996604200790164385583142442944016335857156888302578662119291120690191196163344208729494567961891820785203916304312022357114085114919158480517596954664806049870298362436851821367828233165853665754041372584330394886738831196974339141364635122431162809317648432619358369211044296774479664232277191455300062977391603247103751246041083323090000883547261206926096998608839506242117743495273064285403750827706452063153654385626447565707400734079711826186568980921383428043960231130907004012078654253385628034747177675195615320903096698257915452996699794343298067532518757427364161368862431825827297103065208680847527762659438425421894756239324703349607255016664356977571066857789476494283671994868093095947185142619458024058495661057835839219990150611668163581724243713948813736396102253464816657102444550583633643534630935892939118003496919526927227505694827379642441609016899302441056772376605311702393489180360065269463056046931064563095777570871433662067509308467733007927426260110016830033142469141595086872814388558484862742977472868662322485208021704247878601096241885202600363369802939813388459197479420630336398767371673397655297421525270541840913876007912413163516760873019727817171756342362897984428834536547356191136349858613275134074471794842517426157512823192570701679143678373094619162239904302154106532256771238216486289347313063899179938204334649660159841207493449330723041690353485460346318193884054711983815620953630302224252302768361203024029836293484120285480198817527221856700852679379994562779495373521851860653397208004135832949334187786088217501923863036359138131954700034757542579541462757051118736410095508992290078825125560847022363751495096578995225002223005773402750235323032040816220260678514391968526454929567860755509701243666615831059963721887223566922073632259226373575192832042895362523797643548499079131352029642152530014924415333501656234142866349181702480234901422624312488302861408197601878123219856595982611821740890992477319813062255243798884840855047282102549806891346790779052958350024944271364957461447165317900010948212743859485669331058245697810109517001373853974855511420282743213947973665308247599994707910840503235462037400471637462573093285926545397754198121985847326571043392957239529575420377350843563772640191896811400130091184694720538987965153797763364047390993668153661404936191150050012547469593379818420475892185703923659700257161785125765328206242974466908782295128419927473404004692127044740587987726313131248908167813482699840584655005935750349318883934793110098301677176951488246826285087520668689582455723698935976715841490122310133793866282067316789378240006681471950838532340069264327378361066258076902719292726660425779845372367603014848206838088163626333699378260594220776139564490612023651436254251997440556993290754380118057033710908742299779596409218233156763742853504637857599808308313818347996884072922849124682121827196347260517356856840608309610443214742138129129533151795958924467608091375358731702493428391589553341806716113370960788178546691913252319213956422343205201990098077813405791535227064691737067638330724875835957816624392201823045512560588206494854564627132568617921943660017792110670554730589868314040331293682666334495681526669152412802521191209309864568657366402177107051948268758879433447027231636634426558514562928093722829845562617292085553375329348088288948599998331696735641354526030034236717619390575787005668489530961699250623035310824795981470292690591962459492224598846965481038332504167062105823806094464065788082677870968943347005048696446004704352097841341921334192591017415786820956632362501401224505210281006158121375005317969232091740045056126286145038888456052862136031344875098627382894296350020818535759819565946737760071699851965578237430102954816637567404955067820249388375560091589371577034343158960355320644955535499824783909675382521203223998264406334873258459776169285663089752196334335273219222604671192383592159686718638944865339333601401990031388053740663206669857011733334703711978866936179515791190571309758193628583137845306839995725133333442934692374274312964411232921394971976456249508773130344521764261671193536836405379250175902956040490565102913507753934300053846203581038169816605593084173549280013075093019569143822173665145383336027337825846659056187242413131790728025923215561347457997046306124078943033911843022067800591982229564240809453343145628146852868285564822154028300486461529876553880862701456069203434531668930336718423272325972219999780127702001412859043328197595197067315209874644547837490634149098869543084095138341879923957953839051513566245761321135825030683407846223991038186242331890479139488146968146059325874960175956623080794355979438381999136353503577077905305636810999911883947862311356840084871434390318971353393680668303711070247352923072121819726009901087312465734848787474570258645364510978295801101522844052122324056305206155301986164731789779768812021611083976220628351542635625809328526217994375081489037885007854841027531631207284812056646575614567071185716669131617028070653007839779867010700269937457473076528813315111113015281583903134450180534658217982531456734085382211623976197853552302303342383407744324365998064594693392208006648889752042363932190780730852075485573701265840476847663511380342109673460884730604740545615997662022340094738763919470486033140879080154308223241193226507131935932576745637456281323288371065109813515171259078978718613044287338459726243752960255856536946482764503847411159590101373703779158208766378402136354201681125368649725327811938034302143003899092771978215503580744591097259469020790414960955846993731205427546023327003101954829839814198380853442019830062627011972982369591885814310574118029512909080947901985516511314082993085414411711636495580295255139233423250986988246464634786121536461984756521391259598540550058385193163947510935816150588818634209093748964314455318280697051555886565373580175456950222977039268784880383309584169402353715670596188447461575453917886840203683678366247193494870634936464304724342319995189545842464947371983680746868598035783448609315885752761994832142483081874679009523423573267363727979577762467578254647291800531295910290656416468351690141302319390785265654040128545093720970570215594768819568803211742158529702173343913513561277398453340265295498761019863163347606032050276885097866387300576979036454416668263669864655971622966551236055503875859531942793784725263153899924911803646837661462289463555824444739871849137416997235600744570799115323339866156247519876523348138021193943359253202502817312181125137782818879716181109132347686033027749743352213794451545674965141223697571377161396727738449995514444218139535994307341457076149191893985490656521150120408297182002386046801335126149919998151355969719425177030413073139233049235961658822850575221184809372769638213482438346216722385840954774668319299931797572871155170666648328587072267178573487408886024013078818690099478513432919227819982263663507561342079368735977807634918469734246324695147915430443475820123151186608517909669849079255395131936951230448347207367467350508655185508423338869390171212000359636716008387234649356825293018779406613115923122312270064476356570996038764740073470985825208548696618730894455887072592455371895597491203186305754138197339617391401211959617799203753521628249339164162500763888893591260783172302098935381729089234851662905519868098908302948412170224137266196451666884253827304031884389570554523765215357205640961699045626498579936406335726686575476860529298405298963594704963762395677499039235849499568440697218900416567663651194133443677102954919697559664168111182522331977855078225249793813598457939117035094743773247357645384435446096824660568691124313369973851595721853778650082028528286904688709286746886970180297456652267642824347621436889188748155411864066556620712062428574261876348066495016910644595130127383123840380581892848898151250800110096679559203632373231974755752910218749333082088146337871328100463555933733415372971557772846572848056612354162236646721771993724394545916355099572178405613387078808886170411087724474511400984162082673949937294323499335406717643806812776733322348797614410397231192203458106035628413915520054841436966761854600601697325476022266839164712301241352524660124190630562578799775858704322390835202097702571734880604190233655805751112943155022992584377955918169386828514078748967205638878201779415106339113406303921289444269581297707472727001045072601155751996047878944636331718981171144505908545423363948585706523275245519320294975171402920835665209825291180352857293403574880462213578909949973635084464800165775590268715089637626849136653064646911688736200302939011802321394442798637744429949601135370812786646103289434154309244924796740346004954962769092392759769528736038519834981008385178768704804172048991823195382519368347604520728712626180898754631554245826800518723992441126464035558629730165316702604895534096693511105022868542458741466241546818482874406956569612271663030102994590411539173858066019969835790859446898367974204119633248641967649054444648679962992556467152770963950196591691914771164054735890812089310859952241548095786423202203747843902831699980189793507359405092890968359090181706466110517648531826931965279167764665315578598177904550477031381356056311030225658686812582112797050944130220256542699891302752578156331906556880314963194778288433859142446541956798767860143725373156663062261906971308493881616707763913058065044225948026088984198103740364279276619326843889502796375045603879897872576923295837718448065389836822103121970578653108919838182787816563656178076046740342617757763330382391877040861411852416824175896364825460855812496701022599087708346836560674780481847748413574576077340619887616715161066530442291901438871487692476553703197379842491779166950077663709300453286650705538802898494913000151224489282747531403073265753892760315362537215771627009182351834584458285954212568293298450962596276550964242156773660076667930510761856823120875445895974578650524563303405783417125239270447382659022615297732297848839838120237483813199641210266581938784508120895882248793150149811268057587063854074165975532699637148324217230944699276138019619012174632772438661046567901606955725662141670784943075512254304972769646230907690425504145912820200815525155699952828085924372306063513260580192556794649927452256082382239050723550954338647844996731358373216533514943753544735296233234008388093077906867633673894891866095721857943477861949274895137652954447613667645803907559260601577035539270418752961363254570722729432471627791375188483153544855518471737091091868011091726453532241477430304402454594016032876626905943379879090406854687621678860819714622432868089721157070708587408512931967789981270752375176340177693550630165681066706614394774603502151064337319089259744629951978507717196525115826408924591005770548776369198145362824752697979498977078124721344488190429850565649440184385471268663624831935602780195429505248087770896822905917354215180640889193424375096532687025374642217768553985219403953554849807499772321595431523668840515795636924278817705846912875580438701630343659009138077063955864904408719036173789228617466737533594625069137936181564055452935773817096002137675259185294265976403211245282353958439030492260043169256599389402209385816728059235375683735930718157556681328990697496265650753212825358415611037995687875494799115546474960227863171695071561949735384296185418236159187403322228611671863813046583737447626550242907481104562449326942564538186210276653436162738470071968733538178320994981261623994167144487183606760449987488452114019936926244159372820087723122613728542543034249590719802445742038048839266704320473628759308320976697201650606591296522557696044117434851597479244252389076873335452572552773072327953429204142022390850882783512689040350956508727515474446311751173562440894741007179315176956600514170163142039008346802498459152718504266415150646373597427115632296708828140861484318056360934091870493612176216758291429930086743052332211065560762920266096269013373019427893644204952733918061482289610716209062675306936561765913971268494009086442317310637197396590426605993858205970596867470628230331108957666604869694734781697521502898788862141073947636019916816441417514854042156620303184212874214155491326982044142241445244222907038429335439738551512648855469044640810314610727832649386791953469185541863601823743371769901690082993629976546787405419640968514304934773787083214563888958483867229105593393180617344093443195859873589396256126337367697086243360213255110359568781174879243253947244414214075012357760917087321502704909885147768560303742581964176291914011018740501140763382803385234204221327038262230328682153344522565116724564130649824528742082315289009871775478976598675907151700712263715647829815475928903894291661331296656091971962066996133759116983196518485383612827704304055465571749926115042260288515760990591290559827450342532327421715145776225451639650467145260914222305114007313194810732566565460575719721824022046514703079518824835928459872730391846734836687158850357867756655294443274967307500680546090464106582889154610315119717204106742650588804214036080405471985260050985724542000987953430805669526380428577406247545191708240761492950075221702637538918362017305942878501242576836216974044604658988722584773043255974688710170687971534030235871145519459588455296883404066092601503607950171761788163100474121642906030301071347068989628210193838126559328651158615039062113293445637929757858029960165506513840949616911486624373977588097176125809862677212678860080205197062920240288209257621248684896863676103632062610307039750663338211304567759078702179862132546841340812508708286804233277387120244615094836477492059949127798380898642734936105442445424393490691953704900832823527600374974225157204894883093800994672926105026596484476661368915843632780973460122407068504470748549217624051452632703434805949633530951223498505009829370974026679741496232932499089438377154016320478074417724543412442774927880821973254991419753706777729863449183401657496968540464639487265620714956121650749026306586587744662677629530615664832825755324436603003174196534234266352919228083950971502516750066826245186993813390703593220889695950998441077452120881506598676252438454306423042717688797145408086121358985277931249265219792471786706203532141722823319027880049108166016016657124479094980060601529999710631299335817312346524096692793973350688965235395657877639388856749183709208768189422159729492085536453837223716477462646890363999992703634880581962821823794132952071632110532584142227636416047751692778296608121367710181729420639249664727755423817491292243015006454375181834220174638557028545696039648529910529929836040986601185894891563576416820481746889031189721015853638628260752726147452804395826434339364688944610086020082514028891433109117119257755194708112091929647763549459290222226138806795782693175459159142882218830293102022587766517578652379549739779842523940440251201400489133395096709043815602436613970998118266534737309149171642197952849269185697265366561682259817304853096239965121348732032393162351356989883654343729527656178699185401520188119094154374291778181998998567783041230753724367842290312818201087841665137702078261479363749723631690707577096858954774193224492937340121039193311706976184571559286725844695117400608097719889336454452237111316127849241941818050095451028850439045641979543570300356391431132109140500127412240886623049849857912820423320359136750397273215665053350201241894979427307911008770103103423263001855917412962291112335299834519246146811184381907623403595364875384141180248927921099197682726721724142713158992053687617370986040018098024694445604711023973372201192497540251556688489978293473126080367221032936453545609659369523331271836004836067691477218878218414132291387072448035997104118466976234506456176905159574994990938698606946866006327091285741294316583239286401175141093846220882244998732396565740290430802797909509426377843562884023984601569190948757675916209344880661031096524513919217670239489358727505566049396116307569976480826341314266744434329555654839774684350408732630006185930858757322779462413673778465112378168440283205600426153491998734951343831502001870401273585308921008965059605654465057475423891964738220862829908034872288220895045824712075360588378367944354302237304083909440563937571154012590711995820317616989772464383684455141395493032849067795914279211296607695950139651504737950613159528357682542521419363542509797854439663269058807288961533578110159962375542820476743275560718424269456363987530669120032594849671094138922137481341744621551072561263569134829683786207555587677578498304532564114693602580790228859951601814465014052190252646372644441793753813846026298398483057211995083625830031981844090208885556495766940620139030377312837948248628780442922449011577413265324230754654268808605797238200102630621557554962012248066749633967022760489469525038236976586134839082918724368535074885710742515983763578916490446392157448726225446133008249939674105301277192699838664892539908137175241428706056058956041479532480241298150761766761065126603747632924713409085361231198199331258912396429110033333916957892993487863690224745722953309969052657096149313438667284381843116822367651942943713176327087934675822630748805956986782136570907686040877776785870539959144721526608797661405192490114863209270544495612059555550339702156198668246114337653127986739251190258869262653703905269625476174437276034777741882209166097718647154885747363447768365761822632148138663456901608004621478104052484363828572986215935329764571178315819068877312843652863586674084687287773766535079107338733602046993429630910602854257556509497422144876695688731186062371754060094200187793820090392426526047076041355679170187757048431813285731383778385522964487467000623114119658253095210639785748831948122253730606497301579551026042242772723230999140588155749434226155715031387093503624880619457461186273211139404965297553527822499840598264827507748108802253248565462779260413346242884072732608315524289471082692810790856316669455186573438689811411495666577337377649634598149165190049315302022958273591956988683221890738247800650912417615415810445836353115621471593742437874068036443430491562503302260837818292129383836014418971921360903645028910777636117566174761733032024918285234045097053314891955115578197165475328173947480604777805286702587403971142425031407900988113342567774990594517356404274960027449401246232239186407171415512551976344954040340873321221910357047869213773435149595506845224867334231170684491244399921788279959686529770947024065814156434681892100208517840526363051237931716552157645532533764410476860604972906032957324957054216978196531910003991082832691257613821365099558278060524374190179315942684632342788190222752653955203532672027956528600889867412610734913111312869294407117077236754337652580820486046191523851982349036699879704215029012967421896506841429372913584088837893550365320593355609130204785564023587060183582991285799145385515839279648639891601344564939864095316250124312313084342036341278569877732765773789146543387555623971074096632102159388419785905634946172883138606366997771160235057448017500929036827299638141684308851157511653931034940495349977901822498160629845295469350114727548759548373280762513587145835372766080036494966028498516382161559639027137546594611834341068228243022428355943302095423262581899635016263866651500887371164412516068826171900327986309705471899538636918327487483290001983826422827356245747162473204885295061439605228647892066825286086550111281334242353014594387336497818008130759587764438456145647486179335227366351747169295033660398164722954780346286782326830362305508844797306809452010156612091582398263380322238041373543851349791545819337456148866798837077080705702145114410723269202196649092543551935523601687278310831983111444383521058238341548155762791683769071220324940487325997547149131689288930021137050760673543327417037632258772321435710602359725083941835242203858108429714045612148025450485470958094460687768437984761064695540500453948912423872092327928906196193810499731660194787756353751661537450517572803753801685755537544912833747551224669952618727712342466079581937586808255919914408478105830062956494877360803223557515854541080927601697429625092406359061653814571805174741889103432252766692236875086416636175080180686216973530911233300645681183724556769585609261443655289478918517767642387174246782580543180506357811761986235975481519373837819185687175352374798867490854848935163178417931427633197123706974161055156441522109391145819617309032653640887928522406636107440625296259835527573463811662550722763996183979098595309124909599897708564985159231646978174363808829542903330278846651469080462911486963241588833063905285991737990160556756341685498972110477249465385737073460546907165187556280430166833746808194895621621798972927794794655213355895402397105230744262164777496316525520630920027835641751432868779325145176569489940416567528540656311942086919320438545049121045128555657417184282779876240029088610342791807891052791438805760919355875747997196105899937051359502704989822600481575456847400597973478551654038966811151782908124809575734061462784409064227739053955801439097269150619125316717614234471756265958816873947287223287682635421180372347667237533343583438410328132214445157428173911780832603020720311141015724834276676115022117046024720935500743262447336216592646488241815493675484658880611569671422516437907076200998437261522066470128613506020891524164815683659674037169132260292326057421707587399257853896504172454066912316259616012417251927701205946072948794811566359608761286471047150879008726580782069499718555772028703975047164401872554252776326850217488994792133101962538501198782497772881125352520596025098328352906473446439159293019408950442221607372700783919806711263601062826244319775049265573720752345350118461799369133272891727910511833181736347047692464170448078194476868791367821797659564686836040467190894005206420716741392155810448084012934085506823312781028277130924218186270530820635707759098053653158490751023376206198099832664544136722888828372312699350138427200466807788121100801790126703338431599582720589617208371112280808624098651338417277431896107687115613227853261460265085417593535875450952632427254312748239505369964449422404275222079740964681504329949866699607234602739775414080718204341277945210451358908304461746158489770284763203282242662018323600708326436312648851368489169161000219292442491398588126053926873083010852414688372225438593573864678497190521283281145014445233044906626535400189048038119456989230307886178549944108298692126994309538600638717518023641030273447350743302090777677789388431444147068641983916638540689406549651724636708200264421490942069388613665110004951753689175494887071174105340467848046287128170677692953053679671065117039059769723184267524594764331082959550189661187836826707488902186894753137035735899360105691373284752773055456261282007170527744558228728578673447583810608839781009880451972944204166222383944441777444996680705487844205833401005227437419545764671291575214630233349474060209026070900602444414871426180757314739051286017214888293663908852485026671886528758751967507461110914220120395381077498670604960106144119802973995199528708372981761134107865456587579917745116227058519491806043838784012283173049332902480965347858253668482802888406271590620556195276630429691912420080482211532113253619157396901873351201615499078028995864135215439284952731913526670603808951776792835933993042291496169384617212572742718294018860834785115367758336679114755563537396626772145055998918796493460754631828481125333224815992819141176567721799374083075661319807215818218511100863781098756401981897672109994623025539749886799587766121315990271607322353560477787242489131166436673500760704772545541076642618964253793837766829336109144858973810477622906702707292256338690871847091061259086837522648173851241839110383773820006775050759089691624191134700679967287880262406270437272323675890827844770538551930503561714128723622916566425389555300688535521652271186877483774796645825268874432196122089551154987539549763310738868237783816076173848636275159587432668717837416168036627767482922558623106424543585305330746765290793253594729649740966459271249692485739171898171799943470786461069062602684828310274360261689198146074402971613142057867590629671786645064180802930167022355069544258032959046030654928707510655816035068381742164997816982272759550323186327459000982007582907856868368797870186207426598528934171080907684726112267617397306703665377520714885444792015709380802811084314987927714632943036073938381341046094288246661251413434985411596207777332621674177749458625170876843164829531811941979944829911689610293259365769782239626894522814576637060383552357375315717948716534045576563488848257875831818552869193904956207916747545287616984748134416435597948412292116484082177602970293362893660590758281334148484674696779948784844252938273185928909974141359487831142408436246592032143260976267343428758530574124708533599260371970021950979257517939674149240767135793314782316230773806650243001660189845143178561171391343169626478692287730036674238928217921415037511658023405432316065499781768505073394291429385372196248573986917764457932839730570762417657266278073416848504188831961939064272716154410623075597671680326403006412569218838431478356116237729254901880135400755529500238011943966889505697104687945734053627220847403536674315033040788407940760207844695194551381061019265246030218107900837085323917190690538654599577679818131449320842426477582170374985173324007282158437727105267741306574359717580742365298976310592327432361879700165145323519695722304753819309740814897655916691538776463230944520408405434466252442711236146522466945467321140284664231970976313092381993921752964554487793194874222510073078992952905044800533925943681196652694214190105777510608710814461730168384214347242804901402662806202357829211122070919580195233131535049346180624470880823982732174809520868393966601980916133767665537797534162320543624040274613558707892057350989148493114077512002611490018479022924909807088867415696249670864783113881770320142523486163836345889971614176722020999105888944364205792663061044447040867720285153134305565939649632695821638506799298002039515974970773320538122085276442141720287764075357138324247122281071280347274726184423034245132331758044773813520396560870698820768494300667492381940115015864178848210969840403592144073768292887459065110623131505800664389040174478316141530357202996775828013624432079757369603189594075126036306709241848295127137896681818390709175402470095188126383525178548553209452577525839094855932561789530593824979338272873658706531830456748063330719232403739870484041009338459598245545013737840039119244211985632292038497552905795905738968119952653444083920925952238282779819558063183083416025769958566742629787005651887273254881773244228589695602474952301958166192736849485144894196698226386163480590133979466900058163065240268104183286659815168802160459988183358866877844524736687102582419003618703181944683203843426716594138297234010348187940290923675158422962633149485248162170935463926161563665889046256551282299808894227050778316346561635060733365290363141600996976057441019708921020450622077890793040218246696095799514955577045197363914875303101451701613821513489489256209907306416387099249665009320668918418296250484390158423665326401887916780429405931392502988710510383657535089979356511776567494191288544589143152675906845541895262456400695619315497060036568253944445092398359970865079556193321237025443924696938346815718350350194187998812030871802420681697493360975659593397597742394135263946033882325310372063691101437592596476666697185827603011892550058209438066208788318234957413225065650292446955741823628312075658585067557815450020436526279410283510286864003530616534835329808384843315940702810243216935788740089870564324732212851045279543451631202574698951441395369275924804653725315369756416950126756327751603092637405347314514431720468201899087107358357765310094123111824511518168477198553179360831758091412902976192489238581022129275329088743715619101165419496736119702088949163135986462834243043201029397157365877859208265189815859966859022350104528834721066060154134449674690116443894222109564659849706901865237270008298106698855803379940811665205306621978956362430560778950120557871994124632919409193472703671948630463829679655188699126927846927399065121883324767454981165694078340403606955845542453747452204137114102121295179156235608492209841309553139774735351194176403791106849394993966840446030004059246110442919264954127100282016555786953690342972193979947592432150173425749973848691889376467523852337200327880800363193139550887325232850727804063352747877204097360879096274045178057697649386846134137567688131646626149499762583043102097029018201958820811627238041739105453709030589989469400499950966454173859915353419655996325490697481937612331008010578171830617819910140874181487660255205619366388627004286710553547760310949392243862676373508578746400702838570588062774942975654024868686301737801677401949939466294107989600318878224861608597598529343821179456157972372635964340227670785949237812712548427503329640455366210933029881642094382392382680079871373374280515817175337901082080780858850284990868784446240033184449634008170346047103763125798999559670285587844601491724190578342952139011087637052937639966906059620769603811503949561847431080925554462251348555022565965255682161446572978716096501249870946598048178568784031474124424528084699779607524884710516662281589101781192172766005335018557430333814866027193477156133624023043155246463637577682190596663827986523945021414272549287711963186602052450179129241712543949173150815995815508615961324386451854531996580802538624452293629291891604583230215952859929040547889072457333125073636879448551380706381996232838813601571496794661408272490983099840035316072904724026925610766279460639678892954844215481315800092059915387424418882939376324670204426119260269799972536266561601820041835252240262350711422304762644632550243304484422559293027852927144680546078685463090080858130215684284252486205298746922588271881001412208156633647327674549879722943145590953812597281538050250556680669867855712428934210771864077870118989894786226791710318267415635122127083315328388330238056405762124287237939485219270810280109008335877382445122607767454988972111892848829468730417321847544558112137868725087168264144656970934960864494934343462503661075564340240067585250259440843611697031347002529261545783897781955572926282878516045930185054703962789322939497546051464093630602980438483859018124546648722443701215074506881724254862157687478508340662612999145645406081047771630707326562888041558052704561107612952319294330519846536821100150010970289935052856573605781418090347020000772552168671552711631434895377344981469564114351512117100737077973787688525912741009164452682215392027617812168336036332714352287358408360710292611959875717585365504916169484826867908473689401432594810171838812138712799106640498325101323037154591160007584496420532291349848983880503206678864267200318575777165536792749541847415078396890157074013001648479545694359120293507675944475443846502452466911853200778913618378805657433981830943094002393183996948813933429711018186942985394223782658752856709561069087194212335361830874333697470599215184031619101542414337165540680394891235314700508051592968269607398229846241119349303555803228358011135202589466486489886292579376278522492387785141113152567686049128389081378306907375957204982992290625343425989582148844390125948269389015193928053945713288526604460543360923196736129628545487825557941067327261973123279112769598326472885390829366023628838061365916901320922989209185679910235888388190497737943845904425844714712537423068801617433149781874161554982421420550022003138655061237918967544946150865940482887277844432635701365561470194897223472832861719018177083943775836973753895690138974445266337046238113773850183671144812599875232313652821655408028575435369969617952592791723856347982757360342943078775145086926299413844688932772937126151884179955440255469088470371964855059479382825031918312570471037796226069512517478507594009483230852291813669297681910865654616433863844156113994757222223260590927525003439180190048842357718167573293298127480583388852705004035775226285588629605588271497445871202235983162683629296846428217233451928925383112379053664945494789119440896545279554102670890767309962891549660040841510180229596668918907874083971077929783617320429697916381836117242009215494723602285411354018483805147882944460114548505504846983153026900562845335959478169620977431284497751645110333128049315792012916433822635663007758289047851126797118569236016329938058117321948843219052320907086676945705550706283264817648450451029271442859187952562540896344663743486895924409855900384118154784991973691954961185845280136287304941041622788835525800303540684417074798260595681976730589583969157505570661089021664638348240490331530499116038572122463248187650714628915960529429038697432715826053252301914141260483677670344289207467471596426686647558331307717404729518736054737931855976873469789530196095538046515657204130533419819127367039132905879597652659075373087268634747743216693211490618096635215489677532860520729166907810923935560936757245890346834070487695117096829760342757054544273476560658925398337199921883124604991343358308974010061885226674610817556204189788290588266350124257135408137007612404126135144063564300442966046561137031898498114736787752169664460125386999482405128494443041148240257511810111961656746702105691439170549787165588175084851266583509821838772204180870687976890098291964112046479533926876295534583138269170411494140140409754070795379626702280345127248141002720103639898054488300324010653668821826948456116155088890964466175599649644526967143695647761157316744084528317276450458032942036969807914667007170535568594593051534217868432909749615202622858417793200354072879505413752940173144008931368465088116019670274811915483263617783331407232656049889800816799461183642276607744495679137303521361927594695912003563229187043142438961620014955049954286346222290506711622973237041212905918476928034896599103323387687336760096600423680366852292439500962721303822866317237196357591519128705474500539267645351418019174819312250339215080617497126550076669489031799554555206060088507989022757237170193003882340863957360542931857350673360158897736110823030729141590888228592509970095208459027707952042087828332560776681359484336355408051983156676540087784436498530215844589968223957510652621658750075286577260992827656486573695359802140437694537636584028841449158528535174695987584525602682361998089002990583606828885501754472591909369816914291564087377238827349905434877468994825431786025358117712031762625747432997888740927753077887514352789655049560964704250413285645042725532174404139324121585469198170600736760322895495869308723921913791414902121290216745058013538532942897013494702492304328290709266594046119436478283977282354571954997263891793010479302959455440008266278317018389384304103593005904353948935685668228721916503747851797863509753782614896985371244596072232636544238909898413022231557635503030763936081188755489489333944020359261940173796594684970198979550688219515458439553580958696347321389244980761653100325895089110183562757877181309865524446544125214449426458245577925510435822786841830829427853944942268301037054154187043742618017470026185824323640861175974565933817709204148563427917147117998158004564588738696340148175890263571710785297093062238345329510557576137626610280264171957684898388479404397433470131357246963058989619187752796392362909981414697319624771103915625285533111659130809738015483801532029515073811404693587633007210197414181456350313811327323899108027672626259319671402252891827685794784996510994697401334943761319438518934955405538687829612757117795723598982885795840653145644071055462449291892280011748137571076971046446340177484899465106800782472339399026398331312620963587738422714545845560080568649617125650093497621649733215749340374606775340876648770889061659920429791489257429502434601364373197869704336995527600973865723065677448841939108083134283635065328148091377517524194379548427329227283148175737793002488505435128160923356813537711289349328092437945604202877673852523372248748673833038782762401647404748391202393492402402135277606033018750993739290201262842182812810183485504752946830335750252326960555372313820847796068693986802564799063726475230529649773565776245601453700724810402137211238452705039553966930515830743007398891512553140130117044682718102673432927357077207289353285110789717071210413392331403354775872488990493488500193782391512202353126745356631277748722703302343911133067269538643740666925610553079295610288663980845082366531346789254080708111871298836332931140407277621901673538033702262492875481080950703380667722940210250313446409022758649090769031108298415107638519514555489066092900832996602508581975883887641489681425239196194597081916658814483829654977449742806948120785857903007382224617179162746253112368210662395319167714631657366096565253883351387160770189381296469234460234980200391097905499969828458003214205627357500211741318437038822374778894412083260857091222462873111198856653515605763632750544469574152190778394032899706465067311777084424292976430991576843614368279111745899812787351300146264993955705719222100823713998896188543270988092421548439470620761743420281409136184664607559778309070827924112468639118103247986597271782215035309559227109553921168232093236981000314398069814310799907815038513544564895782769455841407490231672273779499480049506929632105056774476653518993921350588424560145063106255131080727777168908680060927123270068966617203308678328795488193176890638753309527929323956627960048874784679704547611333697771224695623040170041943634852685287702177387705066968758353869948815470094877910938633313124660283941355391972460771374377782622671122932033961398700265244147892376872650800150974569621226014992446963021338618628392368647456312780371751557252876410588832833991235216082701157783812533207918878933825426581579284923841765927098811584904179653801263402207605379588032014805244237931766476019993498037415722819051612348205555788430890649331261023256524289525192227328121216877119991127242290501017738142714610953287094151627010474778373034084874034058768804854664733913481830818591863072280465431090192068949965422287106990531601114752414186116027844929774697781863445861881620627379742574729005227992272744294697357820627837307171729738319752842172341086157930511139466093573364152424143748384225994352198307594286231471796932290942376825447048596769164836481653759432309733620855643483471968097035865609510625389629107944118712111166737359593890682631885873088601232736301916041025664974735110530690915485521054581985587392940105897148458726974041440639965900466760552233465755637589408305208508024824238263399639654723036319874001681045371698244944194534502318053410589386644991857194795031655725954766541199800775008507974979142659512109616655155188237324254116287775652786859472074898580217010069821273024015302300236336468908076583454128067111115018821762067576791726137632691982855631349031589421587763218677370171734029058270705980504869334452510336428534315159076477848138625260226455976829800236666012567606417417396246934554833338517597819337748701903510897891540230870596702747396761844027785147937417349101288656118480809577643450399253140160400988706873179790993905665108410069564308865076103654418221069081927527103822804797496085982803277861771899114601570818511003759711468688254759589009054687101874731721080242125027121326512178542629325012707980545749308316902257677513073999306578771022763459418351999560470867195875687421436932181107061806964662092851805963833555770387527961485524418243063511161951122713674218657242384418828475594567512339859119123727667922330472853896804598879093746053218924057879135798948827018391180420811242492092543384000628069642288788578075830841687735443958499160696251242940092105614340901328803457329634421040811218761625754849408422722589225007554782630945408818226697245201710157070665874530942658734353814828515624669177414991688793741761068236894680165862451542802327001437806967032229539363943305510968706848844140554902556290789393282222138941221757159306738328472635211582017569558293774162890555445392188803663425710776310669589677009960294746592586476229844963023563334994013668398183966188668258536541082247772325346398670748935125010349947741244063631997036134914002748792336431181160763714927339945741210537467718001340079274288390798591648907023197964516689174168925369822640992372929235711149852795866256583268097515889133708324741072788265396988727842014925035352809508864989570651414602273513297297122045428371316910103699038579136163609420027307167871598829341038708639922672959677229048423943456536047946233950484154519434831809468300627079568561108334018719616033248497110439043535500359251065439852272596124897260960175613720005323924746848769686885315336704586298487197845303932474901541309086301553495415161225991109053010162893057497679541478383666246494068322662487269609068296221629825098030444501935992544727573370417459845678027086136817664315403224172031799994436065288537378939233509958005130749262234459981263850586897510151963041695489438840682710870113614300841690297333396810089141134313486867748048940402080887685493756176629006538816094101024750142310519423808993650355065408899782721583116968749325785262885557551894575019385854847755434194295189059970260508770871743927213827873516857433538469940647290315029338859122289259493962014697536114180223417208159237372191210667212744013465267287684486872969945423283756591305054114913104994257836616061152783215289644044795759888916205284133991368528810211498205757459371038570580679869096797151529528230147867877759146079882710586643356122341992562974875444023475379327197280865456115579961374335095033553039028162251974762131184096273284280045881122364710377510771102927625770250979983803521754196833800041478600365034494321170345289404327323987668541923333117503940275285569721993337708434300617121261727190644591246440237626146501183010249190471946772379877517963058201245385081807191616134618205209066005617501684145610330103712978552907616460887994175410748180077823783966959113655508313112235135732510290885313513080332207791209502338436367590400252835499430242732221161932567997810320024794484053656191579406516306864196712549564086343751031311591806774757388498346750033656391791853136709384866498770753979627843308292957986078068879635107140842446884762156293283953234373404685513665400895057204824479147026878870081145287122942761900871606840588901610773169791189430992638716484689027792901327790979186687318099903714184410804593643889922350374150382668732987171257648322934660417237627556039272655361759071564452274911423105593063862808797423000856310963212781259225522147577659807175703880366159910031545169738200768736131448921691948405912849340193500413281560366038439374797550119509364678206626009371372775459839772290028615337924359739055437746606887812452893760449472864294329285686000024022742404978055116077968065167163637532545417253543305219958067251476694749017830098363876829928126252233799288066567013259951724462558037305553891339140155050294007044836503168942574038718416483247826931453620080616493408829583601440494331604929757289620907334720980603896476009664426545465986439115371731849003657612505616377829638603026537151086285485519568670344512912813084493243203225559088673665607702043138859270154974305323740607640455428312159830608179233501066941653357415665150554605236956721006272362416895460457202869858332001404422019360989971413682565164001797045343225071341243699355667780068506877554699607974671181640614657091608695172283498372070066546182554727384771270501522012394396842196448250945434061731484030749838670950821152443170791680364425419717672466474131752801584589368246943911986213820895254253509255438127854280319812325880753496060454829504955555645689508431080165303523766651485170884628831870895762413310596325427945648660622204650507351488388414510153581218728099026855922829285225562189403637658190836379238491586805847938248191341970047843266449829341170327816817628913589337830629954067342442182063978435981280871230322941658490675425061403703529345672479823017300244699337432418625088552928354883284529400886958803229512681401427223980423652972572606736486548064734778774621967465240982293104491792961073251862153432605533321452227631645624940569427071887023028266624901889176840809573892002817274086482326708110053386865394754607893260456650443868820746516445365693436860288957824599135836748369860488347723318553332849969727692389774283938050053605168212965164167610441378280033615084477245021431095027555535464849133479028507559726467234148701477049877819323848812102832232714398054905958518472351094076476086186312849086453789746910673901455337363351332176618878479955974377454483865843904891571372637962453949186876333161999634135985928620439262159959450602542196507205027214854837637424108054028421005910635096763110186479122002553250712575942417146356338724076262424858451541233274707284849447910896299389991170529443655948349176272738727935853739185931233703099973015699762958372651473350657816964896193697345164350186653254425086339817504827216037129917523930228420190437465401944354023236022349616691678122930555985536991518284242618127697972489046816682562248553456416255750749541938751675068726032752086105730671033775510695727165162410695899513575701868633943866234684527962730110662112690489709137425881307573935201496344249734040470882221358681914691599062100091940869954346597073449883099795917232133470017603523704241889365759889184408436607235097660593511382475957156153615492811008931806059721636950459226831994585090743311899440247450041807552102358131983680557128031920423590190732387548446693234516780409593095389327755353800004626980832406835318919980883026385539987687570062355319176461960865474544299960427088618218691903548731259757824216017616098950002991027167538996740964744960591834813779069929573060250940734468190695347101966372892511116374212402324044500353987908556369684611380413720378962553774140166831852670075693026030006421148703125618829032890148902793150344069067311150270074988543414652823602711517118797544450125181819408507174443449639260808462260494895742500620270680961417711794847924606052414167695541652807037701456990008338334839627762335284267056711798300619125552842699251073065933622283295013021020433813419846313724055242288777529786737597548703816171523142568041813773488360002618745786570533996245943237316783350841820982795638892283109131030955323941836189074918585358106037113189850583079065566670597253784344669814395473548725065497366072302338895353821371660650959599976665398553902838329577119633947687151974540474376485700823787624827280819968740203246177386814819609143655333396404382201346136717644720777658146586260848053032087636892551580743694445285079696333665178480381771778278413952877020743996107223277241731401507027610883253803923335480068571941163671837103114920546489229695581016231899868839419190062751021707595081072046797973370799666280574278125570102825048262374861222526089778830750275762940318992274353014187921223911236204410388192735088600426250016733097963864153887070308755912487101781075686371298086928536770981460005149195341043438984902698622815059523301733855101734080514412713831323884598606639075236763553728939002018455992192590823392570706878701824935099467028238196175600721275853916257985585567416737745620021214859283765388593102395988496935141072599526088234744316290634615038215229346157577117206679187402013915954899732444196905608467296652614809274009702751552437003928272462213570483842968189122266051653944459840381560867256832152723487564748231821805653036677264445391420389992675489308792986550680389850713782100232774611992820954032905803780564016755060287794340505787236458646042455179432663312480621484218431619585331287470134417162628910510880419172316927787589661040397039997545498715959105713774138886227880703689218548615551065391008449877151431542227004593383674579650499265226795125222629857874717762485020044034266668945181173613322844730085654982719226640524230773338467658315723118472848284690854274214646460644312083384988301832653375152559764991032188005847054021798388341546769965843499910551607465085159911660974853637351962418235098603722639477478249864708866307079334880089917540190469302446811738704016235952263577777195752070794445628575350519243004906338785152769296230697391611592292181242274176195772948827572035829456172518577190064077621969137022771641870088170805657505878232121927711197381039325425134675084281051860499767241132649348179234328306178222305192519539107467171534291368351110147072390985442561277393755202382260853029338520505673252683898544401920069190511095452518322961044780889465805289444551690998748470325252054719859650569788220509576134173555731281336803671976832338515757718608889303717912648015573412091964760679088355453925644051445633446829635629724326678051793635196655131487808700362975176376084735771999103844102557916061656930130173027784967387963634265613327497086730307189670202566322392321736556469207892417114543328999575812619319151555129543660083316303432185916438332630049710630355582348863729543982489595845106567224454409447030753350508719492317050033504770416050348171114017767827277645990958644516439113229697684651264095677902418047527999366361292592207081748591943051259405655374486401461767587378110746710756786428789757998198059899480603567666251273941353884789149990737643494631454031377308101798291138505310868445819049528202923094709226588428590262361931388374788589753859213551840874603620340475237360332976602297451221298655435681338649227088464819465031563394159850812517400464057414847414109863067253902020859260502986756357844788305720882887528989091933748389688896451837243567227300429971247071671865099929846372349839526450322925443622893603305322797078107113238008180952139440380826571664308247291485435697265315285074092657391171697855350041390681438871217199113186721743649454028505490129856289732697832641718486772901496239944869383942614397808116183125940355108208284325665465006525752703316037136383403028360012544720018400639944629483653255730549859076137304630512087296798139224934535342609929570224533321004717747812473343613663002878363673421869536320282770336896478479357507382490200062937780840199317345420423099913288365584288100081093203180249237513007882423982308109525748312533479725284197592577124095280493901101520492675537222161664833647043210735168789826405089583061640304412149079775385320217985147888557452785100407013963777637160518079841349817902916932722800336959750088230390539866235008191842393338398642588904268465039189729171297139815643716843346247099590739675779248388223454504544134491441414682214823560292129316000199557986661035521896713456863273860834046903297105474213439006750918389337960480965370196324415970581297893046927347265469536996529516059422214471252888797611665827272987733197808315437230582288120783868567452927015460070089719130348174411748300752303979775248150142666111182390231687783410785608729197993230164646752704866141152667807408115105156162941729098719581350019229380284510026266264438416204697139904588615234853182600550471467349370826425103349420961861010374732994924150127713254137223999528096938860469992234919490644350961829568673236138203458266783474364974477770083492081070408095305358865467410004218583597526580150263029301032532502513437643150168691056179786026349001586710176392069869535090157972121003483609662657546959752740456345982201949654255642630258309463441672604221705569865575127158416954033253803395288542156398118956060681854800736718322840984896925649990655971693580319253202522745796746369146263899505643448917763935783119437898195568273613928681324024161897584642977802280985261910529322439954069671248843426960269515572075800161005898675748279109240436875940530630834028767905681819817459567024493801499361445614626627350091171376456033952344342048916896550559235155084010168743390889083895240019976928733208181871000296921015967421741699832192906374672267408988560553442103676573744664612300764587584292387666870538907640263971498962458733622235727428210400941119886218590024243612815613793366592641074616612986301704229841463935183514538670160841290211097098263202949815521917320507244767092178173013598837683134172215551305972618837159244421439823744375002600270500616240114464461144347361082708863107575503094580630174015781845446041005542795876905280590098428892892673912051139442418015496614873276670036702766046483810085024503640398812375250476419149668360334067752658896962728485738981887567646491003152157120895154647023957198575266893349183733167635523912198291768499103630503660278126572255694318136993734442011645856731313442179368069116248150865301323661418996395407218056584398156093022623943707641612931893990850668954074578235218397421186735848328263555554690432039053124838092708684101591878134054392095560821522019158225497537716688424859586844857758716555785073044197815653982332102596566916466911807160615908445196097029729881539725385058126788328762536217487683920520411740878971769854034861021044928442386218945814015639685319258260626329734497823030995849176801966731169161324827102269412427885844799990611395336609947436048987835794359845888001499654624106308763626388499224980196975800376457418512867713586939925512089341197654700645622755376265210901024779826638627173219986440005050807126773632551634229402634297247845045331925018169260493173156290387454542166357724502284225309559508142731928931706021403818570232496044120329464742049744387949913483630087425937514279330263645559378473217141762290392141493822221584202382874608967692270045235338868447135769348436522595899430693267186748528256111739153831182242610282514980523700902527653145606260498397639331699523499333093613447901886288189513104278851920958783753085145823994720334407563111007522270381007019246684952647838106741456173996783525250156944593990435620346066187216513674987559529929094424854773935545539755354118702169090021481710148199145312210875703244488850089386474324030618988273081465283675152821364377362464215807831215481233563486667377933773346375964361520390235751457187436982210457353256549053091461162279891871311185708047795283450448579962052897276795508864379360700235531515197001347565318762731403975440022126600346831572704495635886246756785431872063050609334550358481039763075552677881871752636397870804786979314736074462650163614066771284039830693469749347600826904159738432505534844594557909287793470091084362724396214617662648393933433668620372303237515246549676723869264661406253397053987245196120412155794770992431398490756065613917329894537543960067593976414610563862426774172223430977054878064898495872248370278148696896616400867390737422621009645948133636655597722908017568388509687709372845529045329860001125951766859093782720778857400449096636311606528890104171042225714041858946842052037925307313589988629830152628598781727278443097730940184036465940849786345599003074892409675332557569255570273666896198432662977783868453958488552207175907366035226319963001195065730265020829801938276736621047986004493350690065703930931296800443465872275971289139813730909926477787467629880689263062531799987013453030108226479243823871153496427460356118427859022930336083241213710463155846314535797079178130883803823619071516670836853383994103923997736629362010793506158897573497598109612860829468948407454449134932502613074865072409267783355806628892938403642737664933058873780643335430894289263821158109621509297093417921819741509278563167710149140872388610919766482263617645588853299169443934955307045038764643517947701874393631708052098640796873156629703224029810830201062668271685860885841571915822472636955975549157563266173604924800754696333574871801215058883980913703378875346430580627705898151595202416300553032029438753370567373466777106378146418761263307770141629018882761158716204045424997340579716641220785555574299609587899463939661946401371922511638187638807483291340107924106008573506545045706081659196715624770194219614071045056943335790762527574482610221455297062322419612869113486012079670952708654180852149085546493829585562085962016221224683931078193274252018687695882538085691279269906175352774844862189355362857813608077892837287002398703585669819799871319230769854415933967144104395907777387718825746572675123503551006625412683834984022430850901846051987971164940427412739624971274324790993263878544635914630059268361484057726298006274274129019945960529883528064451568240348296405022770957653489991804217755787346324914827711035780696459458912362192526530661036996629607028100340649701821580891724291926191586152305242466355878715757915868341725468632352617881487710097086939478067291180708044193807146909905075748249902970164815353566824508512398069646883004431045716088271255979927171382917439234416759381787822783555891424915141069767875889928277748304906914455216699162571376060385402721269308772489918328956841462772120113356896534320958525872524002716843504106285981072441727639070463850715103514225454516361893745436630642691849370914892189937067765346577587846438397376451871382280875735586791948924217969975815000154912929062921299162022460440665367964177717349645443680257969435734573963191730709117151451683687890326769667587049615630055103781018432044927666315007363799462699513751446223964284049997093440771706022570538298200604990379916360224837854095405009039416672476834986473054443059486833317016094423896308500661024898873770432900169978123499219519025080620832917748348726608562510698366986081728798698421070188226075641521492645368901000310591976009579134143543690972530216807893344745812658324660791843486814903766819206414569927149333727506950779347679680568679635430233160591530942519625578469591306306503211326320352166982516186407328927735071356998523988416730615106325915596430182338825718441067457389504228407144453362024622726544843832183636779664394239973781550956581178066292693702238033011087869271126389748104846609650923070558824602092750447386192888905887101225502407613443626723290249116828683480924829996469563567062578203226099195684829796517435822059118149746897987376672101744239446030211659330423401943521084567052732757768214073447004225190714630788492578358566418256616132018599378033646452931924691307658672968874140532577121499597606565827373466616936216591152415370329975777556613833186360253508308775866470778793513229038323897514526045401882621471258361100279951163514268708730646285929755864170871415959306606325895509346435134152926611702571139018198605934841998912452498128547499161743573059706629642510618605584706614484708099823888178606567401909131177209798296626763605381010078981802381238699672164163494319503241459424714537966114534731676012799098043901852186971074409732780786280411740996905740803305514697830804271738029655101648573754558559767215793246611013444362244306865428210730780553310571677223942287709351379613465605720313545300161390086594492940387014192767080095447907150254562736141682825561902686962577067651840138719852853713212228255866013000552576597900274187054753888997216487714616028479415815076894505806928391778935933670789572069830094117097118335348854792576345400768874943141346434744194080415058009018691561606295237475234823024243987478283011347860699625307865168992013951018400942905241513673096460111686633209974833297001947666340281455065874820109947438113442273572476327178885642598428968439835529730207822903869351968116747997481081124561031421024314070017244250933587891890078681127883901378596511114700346523610022272154680706041695804871191755699518165722224848066144154854747127528393597490346522895626253726547409265463185284602210899839486242214182391130873083472276679507645725332348432456819472250512553819137411880484424556824575497177822284062317263301773315035068455080634821133680057332281537201352289376919395614538729583825540215324577229658527571740169774558380927201093412874440715521432180994128497850551244156434157239076439695373239713544103116091934387588939997345766162702438353352853596092203821509601864588561910430989659573238675971514547611791535881506741761014627092703940582571856692914332108285068050112313625196487446304326837860648817253328419820471561692382277387796452153164255855460651106526037074919837817535168794234273878700311110423607073169379199482631246309193380631320174621011150686635680362123346353570160058238340447374470481531486498137208027215366292551324810048040436954735510876622594185618754606550843463413115659618528957619246027349982040443790226173486667880591806794379434656457217692226127001128391892934114300714169579999713831442995655289537802813833924034337174334538613828849031346039847094309884159457020034926234941106463681946673064597111374303175587164023002788588043244135239641874900791921810402604739171325885115442470306678336712909973693812988359727046434234636680926042076583035859321228941729379646012234496362990156929890219004740349799879065298511424082796734202854314404804360216562495646728313460950593264063095076486404901280741480715803495252861716213940183946744977559631847056109497504146960647527330675625414564422975717522184640149347730675087378221020304178508311124830878543515739816022763572480763813813507608484384408324781378790564534924007991442935159764096409643153708658132429677087350187881200151872760343515640765522328942024435601638552307329011207107096379121746610008619398409852058342943025362825952928304977363516149219952385765821710334217026664632293135477785908182465592177922431370796897350266888815950401394302381561652317727998904506906660137277430113073599435482663941892969720642571436297102570498551565414353395552454565401548691948129803022387247792093931478057601253138483906266285338615924922908035497058296051167614120880628301287545583324030724483844453082407524819015172319441831297495405213220867631560668953633028277269411093444824934662100211781071165741075005453706425072095862891940485876151688681453456027274860340729338228775896062553299773505244693123497368649344707463035550093235518278830049135121065619237828652749921835202663156249768927081056557318059549495693337277354928624368821617061470987637105389614972467833006249131425959631638480691648727066478775839618721941382686215879759751563437924329029087106361137522200984346414989674999837678975240085845636526287582495876005868100736719894544024273356929023754409216750756068292571460041076470170852887230735872323094156497854127134863558503458074835377560381224853521352990555504449943534977571064136069931537070014981304512329235543774933116923490029006513299670834455531914766153709230206978314904417845244067426133573842042766256260231505107689538963096665478896887265305133305499792927026248335594244465088497713492404797657693744667845662661907788146730656663545826168744353016229984451116504049534984935777079796479458526395808857394426080815273447903815994730591917152633379975303348267234793493641534619463850932675377564365578276185974393638944574921414770071252835259578537333003145922337532124195588899976576041457941749790220866963772099635742582492776728486060102856684327230744748484235201581608439212525923651748199191170169049974558495408839968847301739453752542909237932765798079436162898362237640790695571927272779103594504097958900368731795897557852089637370217016102558979047428492592434440702506803950938773818838715684787100400506750894937708809668695903541482528199653050219788504227808106741255291136241379545522644498296370769154275133071730355093849163483168988556984405857754534401167575741364457526717472600780567169801774018406861467274879550320751293316131593841413010516856860548264877922191124368015849974788155692941854304367518189160600283741976729898169915852607384564293376377445201312209502271363119478234274032562258319120467212455048286271529793754321246077893272272758394552252926376986825892800101731037323965694418759875013618196903561459006065871442557010571844089150340125270345160362560579844759333680402949619027959881414554711002595574179964517490736514148691192924991466138156878040331340113301624352136279650505576309747135967826552977304252280327070326671976058384619303464607054753428164148818259639888064857455331638919977063969252461187269533060978869711176053355358722826010563355570108074338590341331525621702906404451680238463157911285350270661150940695868799505288918108047315260936664478721703113026014508337524610730808033957751033133599236363180606427346031364345008539523949259258550464334702871633923827752848358590517766332282345413068151402185912002888545172237148225295829058653395843442859294455384363470958605740979521749569615351357677518542140803886692944501907053333449177264527422231542956327211825486682002164310088009448285155528805878856471320965592122377866753288316606286733374146572361630522459699905853389797430507660868094858746681513135674194541224322383839071223925321354668189234344357914015021594183238162586732880537923101118762211432011977861517760466746211673103067372643102383048630007769258080001819111727705814646477565006987855504290249108396165202112773807350332791932760743990941484253831982471922290939670688581053151634626169929557130254485004326542665027992702509488959694964525058510568373277196349145212908012419657348627847245074774880193379772693340612262217766813095106127803822882664130311721952986787395197016576974101049278625836242912418493854639319781786122436530410088505426914851072937297440890030461818484892469649005932022678563242761190846060176740317632635017387968435466417455233146580700666049435263378242923681148185072975615231903169669341128629896941899447443761384107066786359019469208857191429809885621573533768849225375363485454260549432133622254494891202178325917226954276394537184506931247328526809689254388792075321076823607119563306246229531078042734042592919889934457667809959047603220706505427452130507983673356707384519890539163394174372933419040425523941481796022468421020979733316707750430742905950149828304116178464246918938019106188848035853052006977604988446582908547480065761906471168627187161870002492761181809737591593495068615155070406514390589808829080641184779826762977415575802271310816383672160423969727028002967227747590844931505380849693793464813781518297557367631303399014625870205967260054949705116002315059437658393836501282723682375802286587987867855179589096139472000377652139829236312686197412770661002005192828799735648914950895087567534510404785876044933433342457703530962238337893711869049496677866695761453687433846953316017866218227750421714888309974385357172210171538196060329852691769311786504732099712784801554149580159094996739531135983691923269217059178357696577683875734404434865190720455706685621168122770521429179839172996926107969720449396597828120992744427534572803866840290097497663597802855276775095561709735014143778687026385842721006919439018470694695867453648262784365000234908587753135702928100122859366805181833634317003591516231780122218826261426372980211586877473371798513441228914017702000944505631628814649390781979366457286907457428533707421734231190911211938834176413082698267453318827522111914069628088565388253582110136471986036104864732243539974466568299773943150518706578858094749144818260884002606167327450439946654143567135185499304306567831352822786258674583791451271483783047331728151516683016326338622804952421648941952552293154474947835525882072615129396118704887495695689795438777188780033567582520164692139836252736458502405475224815259426698136861508193007759966990223101116795428400339616636629946424200488649055554006668955002434769708612069746309065968118020660830895913547267659323249529435929592295722878720218305092092345506666934559113050513628003745706349905414115647575711460143262788126242235019785998962715491643794072149212563586868043574870138373785407765643893323220660777222028595682959545576169574542749173025048484973573270260150579157121458548940941458939124311304090715883578426098738171531173885366347060451501869393401903535650075296248768029676572815039881316597709860844816563029148470533137322913972136671146421988922800555935088032146016007810090417597163221953210790912656503643009776620806668094585606442386624261792040306463026552104444461777817563581711547487939861520370845745591445904951715876611977305005456109176987077552853660973693224324885376519846941586096503612114872424900961480495692636345528216082130717270684655378019633351374210306357657394268872136100944251305014995134358878098951632769142552915693342879450108049966505303419843737832294557498804424796924368028071170472335698455589480408495660178308978743576192787114207090750753199110363787639838410534712030204676028066410351885743417759744158515892009801940701718418502465931703854697126784536314436497600370955083375660562575229570028862235154230933605928060308556180325650188829129084869596169079815314132521300203137037880491731449037901618412308838516982459348920142261122948067698589371552167750770976505640377470776278211015241052014199743787511976020842496605555177276652822816600171432624827996564382982476405569065731791441831345180486360592986424939371204248386607282736890644888923584518993574216925124283312498407648402539005181100670443906441384204419417840424243681456655671250770269737512341644644295833863057212180987242511300640733713582805711807323023637751055453188613726367725464029282066585050747551599073686865077139385863411216779429138247311858314069429316313529037256767476531545349415292876882364200003086926542493360465185727423195672440001312777198163148099337239866173128351001159131508138529252934817430959243948151030084943655953415672514218307545738360911646366639608539604801926676221739717826905062469606652224060780093626220227253112718136020973464824279212632205043571884082123196265885133666262889074229110461599151902001335612032442524486529657679746715596937635640360412269067705124050396200389052241970316877481219219798510713679312563671890759564106338823879612142961546954332923141476911304136944094070266553030911791036689134306179494833256674594701273439752075712900348372757340809811207671579912695959016457084140482703648567902936659698047548173031240214734944047170104935698497788730578863793819185830862261809621252291321660229521688937526833864099645398178707610600739952560944247901505715582487310748283898485973151913353679649962959030437376493947771669122399298545234795374504770319467822461105329626844538528512201731831362922138833665715110765970890091553872325158101321348929870870128927430385380244378092780044987131695745972785999961430877047890233323555487579264983976452200512818730016761120691779430478448324125442491300018329738126544856810074824305830719261248903962711426650288917112731851815862824849606724359808758298531303940822366833767195917614260649568830568279056249288292510574216381075257238189869209127611210236083041815339679012581277064132661579418764459842909850761302781879933975737968870988446793774847427099956268297260290335144299873590357832851863880436889183317774756034035462766677704245918109233032876326470409676504082434163358659739495460365389012279546042857315501328470096378080223988727267918545440404380991330610406249666539386775084553034795419971540546637953001130028697253904037190934422957420131212844173797408126428521527122114807042693112840777259727342029457791974886223318645177531472894040156496339792070121407232567895935740633844109115090816452687215632678031378619550541701241212903981110334443564004023616174983167700337834982616548377796684159453763734957791957691749097620189304023857592006920738097248991739720252846790358694818458634086906892323752011114702884059720823255149819026949969485001340184530634668137392701151661680572002258585392148221601241929490160681414767177218351267111352267420839182463672817075662719498870740768698057024927688901124845541208971898125624330587610620414348417579727832072209499021675039820901294834003040555728618507699408944801132620278983695286539522115663898201327059344892569065339654484217690746658884104057916105897032697782751100137306632989310582831423295135081330758145784207415690511809678674714070360231080833411927815296818344489383824163997431349906674400725059525501764906321779726713244660093091655902948126578265901478093714141838739741033580719363427058403336483040280660284112541995325116172234343929220072064646671550146919971105511878591114537803701448490306615072298004989442524423272936775718356076962173910909166996484056844151131344544074284760063374551592513984819435769959261422159428749615208405551555769744018447135482390614553263914625362920486039823636668841943179951693488217732197076609793291172819267735591597612578543991203792460798514109466991406425550676722371223824707449894555213434202283930968639935374353002130699203404311210970372790977660602103157530721811208311813035823629599443475134374771064832906994421895454012695568646221631742940034813856363233218226298511685621713683255319756934392513135796887207789957393875207681607428119652560042262684480965218852237625485710049194600808296031323516628727189997270868630121442583221761588969915426380675883938379355016144563672065696822194803563974639923004768764931454507404029043155443133531796426303944131679211041300465322252550009037427474840712799115850270173889332196309414328543582849396992709794341429106775710354786729368331343085077435510269236615909820191574198733178119358505098321834079476916417678836068657836047348534121549689120805324423080227361449018762381845302056379182715728636577890946635030851642481995564539597043552011411694555044521808777300513890834535192024364100645118666377100481068554415268790781264801383203854919590152330322087073764981054844968844519905460293546860540438578958248975828652602178565155889588284207655643402576374677745333707380267341176109823444007229830241905617960721481549782045130117187107674832261825882604158782500732108931454142541176764527918680971722778486810228563331388077597869924674893793890760603462912688927957827497712622073521326916609359397077744789747687782201713115560891457858940826186359551045964608935878471023324811109152253868900409695815751056081782254769680787645816752737381520297045378441998552840707705663341743840430502197325182166660336836301999245571204838256949050109589720790560549727863381656738652385700419462000953703636098947458586984258152872391092428155884619151320767407452304435163113193539589598685434482453760991567929524030538204258535199790967278083795460582366618122087717682324326421377410831581727934673803065608399314340872528255394193523040303542315136073091647012158350713926395697244594548908244875601260463358224684910076070676541832818252047901033850456317329730240328415583518019904926501107165329535347979331382127913341032796522396494084914154877591650244743043384547849615708716154269149091383386014132097052266233906675681370199213508127455646888393737829012299888414439877361779709207180207891660737768319781572242522219968458403438728139155972039895298271739199005820583712086660378708613816833824227834017080979517539738853585050786897777351938391561982715861302115739185591279642821115471478962723598157616291347469020865074350779140476003045844638990956426562612907927485636400313589430057448821690068151185223876745398511582565391065987414245830765291405064530568796781588071208990614071957895510019741298626864592122802209346753817910005588745402408420880275054237718320770715944061348528100770268602310885293411526969593590610437898219311941655567388317110860171324506238074032713999191846771471648929038269598462314284701118881523495417493796315985212793674922140105456016073229941309526234793873743762009018351174855795338748803478054310123309132819924664881064998509492468195523580556006938349088965824253131176259157997329815199889942041139655955055379732862635195488830830418715827708870469254886384569450560406244181385456553206208346619188414904623967195863037493580371182250997986984792790776683740905866285477203866534373957542524558134925138218526892973223598118669062830202218607472187807906279905368637268045676091563393095304697679391959662887185017873662498490065210586353255750585986759958271187605355277838117822711326144355818320438966491785288056289538191406677420693879943192918477189613592249636256264027401828705458794940137975208226283868000497114229992319443543094159750681180326525961629923262113667900601749370663231931329451981221303242413034735618970191900858256567705575753972943849003908360663799348645088972284960692090657464464826588024995984440512068853807490029546336851557045750753458534407645413706410368689884081510103728232068936198676090459639881644876382740835618759501532776178698462869731507398253469093733047533786348413785980713216211107640186211511475940885867053880307319405172063308575166015019747750971093469204566248139904795298069457259055204334364551663861626788629424704971395065887759088975831693770273956014874133809510495237779647055601402178880129542501807281422127192849018215062268236539517907315737195141612535980341275764975503486973389624512448441280804854825372464755136653431282751515461365537248917987465279820618429874601872419857851310482959939900805327306968815519817441198530935125442855556169795122727884282174667311849423531749321489973981906524561438722761391835339501424087461595593492872076446005269641664927615326279095231259361810424905487367383357846294105659010004203031558792344438636576483558458981405083931295601629194488162393326426312805239103786429713174171624480682509816776005504742958037769207078629148896793201143999593462719457079581304979200729580175703776261020284765762420807203654848349902401210782785655458960649117342937924646893678001662680527832779181123804668124549760910010736123954500728636439493729915623214720550483071062416147857379113376340969622173071611937499228646909058132011890339975979474764144919185604848034024542207764583418083486717473174299878285933142007235567322729711609180089465067502116196315627450726419081084483325792224160571925569767371924120154690471497057037980332107939879578578415710572447182291538860057900650396574953689695093450816770347172374546805837183227809559595849374791028451824689248328320946024633673061110146609901816693900573227786752163685892810625520750512728530499947348317118539395242304723970306545711820335798119312737680414081275559814538248072282065882273298987381771530764193442003213033119948355798354275629625549090656952193681746454443331196387801798999056883251637590452439713795811836798741085274385651523997735681590110819234029719677631747800251470255228531871272329587858506194907911711064494646119701216349715009412234037987461137347602439856717533860135870624505592027115135418683708709887210566085795590057732961921830026011500801538246233424551783320473840976072063500648588756736033367088643085723456019255641149039561310162847975079436893787066491243624234739086020419429509498653660917820031083555709370717876014321020909422709825250658439298874568205005381035611648998526118210394811389060497379848011044198203152960644175612239499829381030975843888015047797003549147979243996188225940427015246494111494885749422074058360805977183940665283987646686627294480230705347519398724664091345857139992150395773213912354708058558454783298099795247370272966336996734978048574524974966903432829921331634865391471508986116556140423160279880582993153457807695060103945495060674347275575738806942310819426077216361053902442730734182290772259453498108349893938205073623429119855110878144080473393372136271322579434432617058684519138891725015797143004484421363077520773545034633868832997459356770769141129861488761959798678179934271271376639436865444290901638323182689518342406123313111168303487954231784853051252749830460154196727757590446109619029160816150555869413327651498960311362048302721056755715434412632821811918643653775450853069040370684034224636972935702802067778826717346214806837256533649739942052870364760605818088851563652650751134248499563447702253514193362034745159072643252806928326163296703382525870731779475273727883050888095074526246522677923127061432410935690344393441244017485424900051236016980498756372485637727092973526823901738215324044606005340115853356193437755068826211968417851467609297786111789240748415135435957147828323997629992672887025404723486230639699281030646898887186841657219082385730914899390851531899990418629781079764423647070658238596371644294161259039487578019540252674423243074841250239646709886540857323762800702995032953343029055913288241358817406281005908410125524388342976967902770308064967169280401686654008189393941473499925922062467070553621184337192871778802744018142307560830347525858216281642375380074675680369644670785100639528238084095273862407507303904873548130215993539445002582551065978373814306768824169054613824511189614447486256212386044458899269120270874149129640812693679731411709989471174700994738969444575804557216319172291870275800465875618385727947649329043824775658944617869904553655826323428934166611009501997460970428632348057195955609101377651555948892137298163215853110708363209371443044626875867307949527381358867289949611442950482205686270281524800582115564631493356361738379133975547921661307079838811971776476007004246509210056969485697378349746738247192780110179925970597052092298163059215926047442287153972600872925930833167935475770498517798715643447667394934156723488576443490624808612592874283474711218411315805771135728251091990664164468502080933130791668196952052837607602782593386524981472088979169592040161407891308087557435357202614324709049053001372871169175866485639204470508365701040825077801529463510081911623481626067684136324640358368591854518109781334037092024510859673270150909675226706675615111147778857454173374664809557440795138914804431848090802569245499441574318135936002077261257529295681522383512656153223433524754275414785099186324408118992413433785303169202470280320022360574072073108879570766368350731635804962568720289061269455309971118253567590971304915538005648269246047027192282672511474547859351558108830049634811849279207572915039137148571403540254208368281295257050422255500131376500442529318080983093929250207956335909207082606863335342081427096489738957493210968823878363706948959771898936523667603432061105758379803149330192339555608319570702656077464862847401081788987281647256283867598092164248712307746838157147420533796638110487861428651370290434162207850325537226390596901284661452560467078205560114952855531008667003795248580116636113218872786434693624589295917808116750921554841359482663909564520948915478620996745410338007330566946649244941650556227125734240262293316888636760794708000654237834953989363257024934676693436640206999184984421320463688019774064975579713572407904505910380054885709369253062166728212575879203253529029072746535653923500059554702671586790516241624851719731578395705434383424927994503101544322998072234827306874486058549660761411204063013803472554311889637029113051445872169305763040267942155984650629307284682204875385429322247292610907061092186781021926735251058761299366363435376349980241319856536866017796356387807060297422375132402699096573389497433881729056887137269639415485773939121944923316228777954411991787305581132813727604204746615775543672280642829620722959353275725642970954763059305311123598286311581344566664619727477114167094188715640112007978539784673437888628395837784657765739784936446210016745633412472328135123487521636674475789725655096671184840133391530390191451130462535109740890835889110231523636406857149610027588467015836217070936347841383380386494031161679013650252542212081686021386766680995771202704884960628657600708771024251112016901464614897068472158210239464696993262405439522428288969571059889561842892378212811214696715017536508433607006473158583124255360943519408442171852529332823758839455282083091042033189590993926725278297458804748026898742471449641079719719627749992864880495695765523450743523093175000283110353188463894191355546967205543095416937364015328877164562608500186613627727112299936542125248021186327992108549380577716955896039247622293659574757020669344658355746847601697244595229363549167032620323644223007880117718852251245682563218536043973437807509160868641735729511616552551436236237410031894794825138947314769185333470846848181947080491357963776903810836034335059041626188918298976378188658149259982302450277158572484730298656717400130210440014810698005991062811189335602512438149684136700505977207304804008516217007152317101390703248404452163058560135439095292362596682956615714337050738206001083870717245120226750008572716373732268955232144663444087417526474389384168332773385374311954870230185101804799836001371449681467129884062951005528757043166408371715027114058699987977223227492746071092948216138725339076971400142835005237278610262816241162122525096993371404799119847061349708891367788853455988053826473016251282335645871526593157275187999382239033574076480532213083041047545131820825420716878596969193403815771820048348666529378894533465060942633077546287549880939314899477593999793426694814000789320124964010642232137657780722108027036353119512401248764261890742452859660813511883044569773515542506090805263823917515730276857946153241039969837140154461497786272918246550357057643937278899689043223290661383779033557451022135632260854059563855190191947200206052773884652536052402968321383320959896959652214173178799603815210584609625793392647898860428436708486936442030711689931876840521289409623481295229815927397753754898114688617900549103771079024027991418940868667667251569746995281534492462686152840634293948458714336031381001166786785497762672602151793769748219708935176833639409567217536855656863875703274161535973492606906674680230007127829256520917985534012159548525407497762605580069896079509114826514091489428474183585858501400799770280447551463124012738327996474142159837400201610850122923461960776738897611152224277505733909605875207707644542977620661048447106880893717369499416619404801026757566550433806571833219894639009330452030145476896287059192774139201082634788933087082742948862852682495003296006525350292730481147410821751670195434807218975070503538242900053803535752519864153860466536061610276548122004051861803942989232554806408374519980505620202651823088332153973936645658857386195045249877383824104080492974722504540619809834071055848660068539111010106391905336227568902581410444657709636451339994316514516094164053215218446106705189392099618847462545947032239214452958186605023295313983517391719839480163720551818027947478666787901986477831945430869700592111702428538020270232972133270275417617393523980329712989534224536644142350988754410897433497390883040265444658461983187609901834197968913022971394587580469321978425682145547498615858138048080570081758312120132275450752506399060672158435767991597101900623777093567369011757797479808119411950451489656962562458856864850605883619926023345261528637972988050331696227531695376033977076732636733670445251259407867894478138341275452652183681194308718379455953754030351193410346672496644824916809779648823084681880496813944628615450140874014075516557893933204272539538742385225923531280030839824636924387150825172772804494732712194052456980211172681192476412797456419293862301986879190298287747141478834589302535962787886692441761882135565990104940285603788990797498796297235414883667252331590023829015362447415317656237916706910701466764770967133990408059017435919981714948638629787512952813786377769989316607428573123014783197793793029141366666653108295634254592736538940755520151783301102704729183894925122023193307981671155561666347149757473050405644439450949248310163609595993385458058288124316376105063621507767856919718446325397545040133298234842440285649537127177560268206195305484335875785736401230036412865017481721373040862069011681487352597371550270370932346799986270762807370226975510574386076587447066961370305331557259831583576516965414919767793298977022302731776356645068062470949342501311030535231308347710680874735114705550262563637368555577231141029702845871313982506337597470202706221383239724841440927626722970580945282723739415797184265887880667332143605097690394249174125315209112869500345040366606368251756888412202713086829101642156297677572797641037901359144955151254371468529048935416110569896363761438113029588172909955813200746922339426872947621323708267669357808715280450043895833751601375550711147475595852101674165247514194542928126838802559619142837922134214758034851803196274024377798214320476715703137833031019347288473112811030086858692267421130416684927408822223686986806599589825740458074161874005992671005288693372016981518332333161083779915493751921950067886245890545821090873134104372768402714559251265268588605228428144174348308239048998628300160099952012115227404650523362606501432205709656328878257368771429235594222098855715295097564731336755880929518151727940477805396914956063398789845651639952769019416415047978469461783692585582361377979543315331283355165544558161035628774740136724498638247746316328798001886794092815613327585090237568069674710533505754990648124946859862209006874723302781751381176063185121663009827211356608050533320601370747699989074484809873995113452838182887968957115053499230489059861554664492268936506138893545606203742956227874506730285941456665589037566687545970978739747483159069631261288756878392053816706130849005718475215964366630375804018837307075082093332458508002392421656379643176765590178205812474048786269585157071586339251771064037625369558055370781148279122076699585062408220728268168542054154977028696087074526303508642745685308299930559097118402531954232989096150285487715342745640808160959208594240740750333807820754101743488585081912625260400239814505572978687346236093513860782028094790549212320266719378810938156183667842089272421275483220302035842336167509821435515343143323036523316931107078037443890690787955770269072819720541882842310576157350067686816918168652658752540849374659796439330138899421045627895029916775622752286523566397730579439622138014743853625479701092474108974353501863613089752913312674774983861969671426652573812144289509691347532072492458138709451439881138500556367422048265187395650378060702184209843226906177396701170149621094800667986067833606055125325237107924467770986073543390500524462712016793951109246539929320791545226464310066483352538974521047261176466234057303611930165727872147997896121650723292233281951228325900467676518223981025667976000665836669159553801425830828054587497014016633871031932294438070702938722120197920450628395050443590211531515866781681817582886716957085179127757612651974407537689579779830164893758522598528747093318859521565563552191717151649502843825341080970276318869984925501353417417497886806481975689906165781723246801063949300450494227379096304232867619725150209854504141287270883057350230957438121266578444427208074719829032273556893689525701028368770872321941657344033039472922950263978033028714531483971930100982506448899006973647924336207567791370562424189059429123584594145420587687025725727671679493353060696590208791272642269876980641419760675948411487017264707373645256339559434265652452470782541073104779038403734916761957626968440638070844720381942683687305687885519608584332041478090128692258585846721968941108603584994124754438070852621561105106046300055079350002863971735694118481552414011069921431708048253171741363775666599718587626927467922743147489019350874786818164930938835255022185767541059290182987535333303214316100629930203422037083286282119970348338807402827383773324436578229430418497590888787351014682967691709026332425204439470618206912576113827183660552191250278543345139668942209826025235753125408879563250397950820370057397418875818127205143741511685996576600599403196819211472557763836058977181370724653622217988146970763051810634547943928612125039171369421709291704894408744353812294792448302269290313405769437812838179660777309657049316436013079334483225308340904202480865380249944488388145677780028277358057235144388732176080732628090734100142339974183834909670250596560651116098001844428919919995436549789838163308151887303522535346532705705910647563122800524036789455550290449261114211078961421024753161435834692703301151586568612843282862056335062058349062530125640541064709336838897343709099776655525305858411892531879841028781405863370681645595118779207585724852209497080850153854191002854409056310972650519818784856184082826402756640728941444229416330763670053376872077024051097952238876430942897629749891904622344256142320501058638845169008409291579952405923814949416165938402244901309789418372908296000972397522038959179893309314167202629346997479319280469973899571950276668895997973418346334849091321405215697684207374999259676506266611465348856671298219553153006831900405998621974618573206540955387027523370620314712692293950464698042440228840094678314133166018571934278550925911613046631658422170934028794037995241064296671308295482148790483026397013591969550157085563200090788758612475714001812461699011030130501608864188909676787862856922948453320111366075870351926626990128547952929941367726086878678045044709011378473889031534640913163303111757645355427490547586030961648894478766129974402124886334066513522592914646844317568694000332705901349786156879941789961158504314450786589089687135692153205411101532192395847195987780022839900570577245410771856993329556525010397099298170414487624914892974354952093137398278754463423391913706719375164354551230288593448044511570837380240081894618219785859188809224222689252956986017253843140824443629771497372066999971964567163318126272157180170955196970526707721868543769222350560135085051147678655252366836617411598936227559167348904687789955127670495636691094835613115631844991675715835729332559958008147767084775144760680412665312939108537264146636166757041531063030493427261230216301131124509665424435968337553597518974618566138825837258733145450423869790247946353472261942457044788806694056725647250349633576348514204807028219535234910650808362440177597863011563729421672178706009789819255959861701492427026545987781721273770857831206487589534748604450198397665196346090520101492679511431154558064055202576813182363037647282450864125181823257032977109601994711673182896818634404824825656437982695438158660112171600687968104375428608957730845270935662725445857227773496319987438102368904097680411608671742401758520056929109664634801627446376043309111053497926481861668639862988668289251008273295272161531484374345338721396404097838040929675607208104084630636134265972328863385606718470141156219773710079734979023553293534641943126618154789861710088338764625279156811576031550073261744506933332894860770133740620842776666136862442109987004767768453470816427171422312638224829301883298544339685828072421282914998739072128362170987623139859441581604818081259322987653642457065632315578986555235923452454870594639339930248379445956663633400005937799794745426370215622630573505105925344482354303837481236666268376751052119533640027839642787472721717789165346985353966009247674180892825763316770089158745838705279839728825510294463383119175921083407252850186765787619707547622450552132809912041772895490866544994346307811741890931582129836109878901197315196388658329220745922767643761688253509102938783917431434752055665690872270051016866075061419690695847771902158055760683195047933210052277981353631006854486224297039132138516721426937010091522018958951524869868074154832700728362010827528471033302836547003406804141557352389029287336124774549859175167187370993935390206188860341005434488271820169416018436707267282506888088262079002214122023985030363285425393112201012353167929106323333247362421026010212563056976109439312808949053825033449220338186757668495677896354882104185255877312848674051873702083432010614001496881510691180800940880361642030500389243163967227756308032375852392713808500710100211642656318051652957120202885618483955786435666748102930985531935242448799478282780799845912669281651356640307808161415740764398844638987665148136293466767748261348936784456665356412877188928410887725812487169748433319508609847064117368824092632027790904919032998569778358236183053023211071276955403969516612944533490262265858079598494370360805463762424790525210176521359415307622698577781380251408632270323690514037324033114632272525277705304298763596992747228196680247732923838908632351025353931580152453949773041237859525994969827128414830092952728025062576894172045063731212667752657243624417427269306337697103029547058149102110492869812415480257047400734047124906739716289219760601125103056079102349807193180923903664617257427008644090369805584701330207410982004752602774875088620025828617800239836461419048767134593032669218794591847058851802021262021243168737699666241107498035735473055438251597566229656676510548041601362619873027251134453210546549859884728484569949152408081101291404855940138988865846159581251096211636906668574202868550061571644483084798635768005412359796792192365543395858081429364722802985768531105073052365110500709013407535173846901940613895678928062634571350427603818941099151105320670864404068626772199052291533788732302851062976025555904500729409461136844286387882475669776494701102145033703359616906981462548183999198578792693034104404511348975813187753076854247723973171071125712142401785174609971313743015889336954983874951148213250067913079424344075233891009902253481268541526414782018892125495789244684242167335885323095786440789542482636806013644054425647098806521232876371753192507237500145673901870259615473197070167596596659838332946288400918219212334058597886678251211005074132921278625558896498894633485228133303380518994020656957902398845421440281491185758165896747685372686305460782406974661406389061951128821134412479714397304558184168732872806030862558791739978468643349501878095904143736845050321440647868926759554881384219606389741747407031541601421158434484449899421528685998721190176252677433006456954764617208861532087957838143229136037624836285688061702765410755294599261723995779397566541027250498158548942383734091438010567397473387392057153609078174790227246255581498834652199317439974971360192888902833507710700704883096208383578736552184919669886965278429283679349569181436055439402590759027618862345711157502124685090000258711880215678618745698623371385063918077790825579903338309712521846443047316999380346408249452597620427256959459075661478813858880575723079001675740272098113340808849472491916129701065198463663611991014814098512792473505412131620667128297840274195324024992646409212616766466977953842941506771739130078997351297243670932196254963854156495484192512159307462860756363470217577736159602040361603079706911487441312967094272382619041751200093045989388896489533528469076374450979869107587356111715143885809819609791422722674137475459080063063809098940308114993928831905261268718138573512497895337617888764940274142790087470723555921411268136445795177917646511803963268262867767055681696647189538781847348252699933733631376734014855587497169895418046306425937175595232154486891871356102552771689457214634160784901849539235100610755489659095650931872705978640214817937325008984593814594900716033184041714155734600874347463743411472477899818716631132267368623357739932993244344057834635421957668467995360537684586118240986254886715410434412389865205544814838678859771343040267043087582043992707603870380777498748860573758425796897851292870699502930392629323998223764157681214298495289970642000402736129832767439980780085521794289988099986526842551903574525375215039232977434697994228287067891059047199829574496633611555584032734836132059925100174945047431606030935009386054862442496611341307711403091740423111845122415414272748644335076995887141626969349579806609704965801597155522042508593739136236447010902821036247364082521898652530823586929813907079422803205298008680820060918981255498085447283941486195912516481903361452623245939467935616180267558775600148812703190677239491722791786100191072229318228089690731022234034136996381709498464174473398551425402598157822012961242719362456052670898553075724595201088783274068383374261861938029466094650302995544325098041720353642960044251837445221632573801402038245974766527670954914579149162452645340868720974800413944195610811588855073112955033839508042920563777220897623527153277907465492882898820046485189910243948490875681572646650827140140785963276520529988234571556239055296519403244750264761234486691106585884937032623299993438185495463204046890828967389998198800909251541152690486283138349697516749974694941572442331054823088930365790683642211280427869618258979095161173782348280483668479140974085248904348497065932388983025443612681566750869985102574949656359144640179425669930581281750057347675879663239514261446669240637781038218385925121685946172070890728565217330335819495827492196423771679555753045506940162584880217131249183067992774227075151061703470477656015739239946986802776506069609280804327981966435597052838488344729067696106975999233062894415945129114578149455819048465818335130139925966006763868978333785983641026230220893992816127867421257386098009884839559807917623068372907543691970637718611613993068188047789434986538607288171371527737891071097256917495914173842175062460768315951733449313951344021695337311826946379590476273321076522864112753171189653407388881405837319485420351448961437423770262608698721673710179911911461779136212857480693009791650575493728863501870586079344631208461700347243924377013295917325467010748510689200134733307067923416349857978437290225172281103092335857674452910442356172776917454436253354703325971031843400267640757820721654774659194925105171868076787445022844236785528797201170482879021270830345026934636544396165456480134697099748810894535519482065931861628635552723604374218593388165825767302490005092992405689409447848128408539058631508033918079722021906973697333272791204888949190736573447435809365744406776644711557308596342661895005764899674318871898963868416297711647540721846829190113432099384131831214669554976985483991230407334689875741768630914519202438997716049309284085132994005118803635419313878028998241983844628109282816224697194665271937920103520254558756192632022707662188146715343840374244374547737773659045471456584836400868149501425357811511367660239305835343931553107102850195543370125122599714302485894027790525113828357689772836622192765018811917857576008894620170532037036331708548451272832016678401147992179135481371319656860829694302719100753507177506576032995732357872949476065145733144077742046913739670115994138522091777526532341330906562856583953323657178107051545552640996613073690819614856891540454756992732085576638244470074077034773810712241185256016831381975809766077094647241193224033560480793846077011562845946492774098614132888290982789932206047734984932559915063884222281921138373233152799190296240149167708507117090043422864983649371390442194813558361189007023621752309646480995385788726513256881210414764106834540762591583338483863430159213534904483501507940183361722431810289712301863908517097852326351081045359514344367723454043480891710538382822965702206892096946706156097659702983788959918312080071126438662942853039795873482245533213636393697523089523147563137611155698010652794038471985325266404492129522901157304291194255580639090907129790688962918215638772441677209847530538919532151690199943964916837190665731476141160674315463476051311752068597197115453840447675273825880726150285802589106778859622132262099911194051510118588742321479293886796213356576332342310628249926063577549465219613792475100693466088795455593077553026767232160826411959098170227228115131848648431292784590797860927870412518276684490552486571297071250308560188782496240978478324891703618051055971735426678658491837559732476689698228275608133381362366164804362944372307955885109282754905632765263468123652767327484618304012813997119652003602552857176980830494492972242344287095393011880645594906883320074092477802800127485645688343134711137797931369529540284804322338144978186410229589385327630903875974587666252283355506315961730877742988306423453431378434607671039051719140309588057245178430179665636107913576183801553155596761444608335811199364788622482638464637470566053047995888357149962212725740771111086931027286925553766074203669572212820246895620661352442101566902842949097549131211612594101332098655124293681765906832735104605223176577311889384601183656369969186603924969089164747431067323284335301155774884254724226456299895194311575690768447063657068892575316096186118123299670893834364801659076852042284591896039557758352290510163188927809672928066953236957048061727941684430681589670872900901392921233177600003130829022368906881794100784919139498806198758663815364834615524254789502890087710094877823328041909302490644893609263151599314105860848635020688494327223053505120834337962983524192672124498587333979518673599321453511317011852322971387017067047255932857610589483337909773965094749664195056396772494559644438388143665171072016135895235421946182864204460588256210101743763944355936672360056729597509986603798157857763735636123297861824336580455450136071852625896281334263437690553698810688332864142827983263157493193290003674392067458629324128822698816104925780308028068170761054528912232750479214438702630181254875357250587400086020710996811529864852712921852249658985127075284179235727234077193699702801434558022761482394056758137241035743069403273276421456537325241897851627919349145762235484555118517069057442112686848496477038679196112220386675680858732860174248511036676726763945173036328202898580863566387957330254608550626111734706162069350632387164180860620554977108829814587308236380915760912327641368368896567697594970349761206125492110149943382637749891468436713588578026605655933447779830594678406316907323931504042324277374890653185531891513380304582574119050817893539725072935154403433657384376653264536167027774536007564688452253782817099098206150281008208572103730170785056602210300367154526816411494059751555477472260261740180278990149785755535717237471118844426691960245571060888579691167238495737165558674216061334391465107264210702168504332618868259866920794438812831820057869644194027845811283006847979285673399621602734772931028454198885980797867426091123455344976603372170592108260038038977107890702357792723141393999294727356806677086044389147638754491311375574081510427089261274851033544356903102800937139332183178355840607854441424976076552256095388418066445643703590473071145012412766168725516295464853291500706055449336201189411797254500052451485234045584456733855431477340468076873688307269795358060780649078055865301511630789324722846810690997161743733992192738499032327647552833895424890786159525250996042819780999286083391596377782903538382652884624096028749499127968253404848343662850011346156444717645115221705835429745268425210721424595926180898904910765000430525894246624223714397784264596879703264978470016720806337220930287356701144879260931292622622142678650823261384378505838751731760951555760142895168916664917863862036477142725089779485366483597577261572822587785599662313801749711743764614856821993518878594012485693065028248254783041907384846180879012406853239754317735946117754501056149875611979612324733560673335421526715446141650219248607814328707452820260951233560027637691266795705325803777568528204710599768554318607272845820782566334443779036667290728856454743974338111892159045391735839089553633873932508010174419185328395675354344943497628034827293971637444415873790705346781918809836806847192128072308308415849010646356475004211737507390494071225195389418565644214714974821585614038827152673340664429210413980970022015224710769091413768962369446248753606829418009807634830174600507557960164896527235737301837075367380800967110297821581570039879582093688279853446097992684905239071242012506247928629413044861817072107893022915440653800952054502982578284956335797399687664851624476633870383407570019376003571508825976619525784067002506522038133861829405895720321151683865619428088447245526628549621692397809289025593775937247085396168593494661608983690185090638358247765399715992666401078794685051661596526655670041999041927954392468882504708499519138082438341616022960665298923901862806960974472643475379964386657280259713985592432757959884662382941445954745368243618296165213721596631474749517101084354861158505592377496479107464991232340973477922450667108841720446694628393352382151401124453665918526581428337496356167721111703717615308448262709059217850818523017624460180710733862350686236445076218784691490354099933728101698340303240053565669850540552295391314930970813928471802011918332340244207752501503467647405800835068370390377162796181398273372734429198434416301715417454383468957471142157983103149168412164798504792436654159050678198592417054591720921348719955041438833349434985343537796591278631565055259665922338392534328709219995205891976513837781234328165668547546146117867724312235314637679123076544324924965276963504755998581900886192647445836294560996967124753600315712737599667272349260335129629761158931628073639796517721353626314984015640190002742458266660586207853229935234221628105038677963638255076014909113007968878268412219480976644918407029010000246997890705112848682702794297116012224976899297374743354502286364134448490118327445362978865975808293148503101442520936776220529598307046971387709288566049890276005192644980475015448864459437868628594727867486421728450974616847582542727943176158533806611788780560402282457761350259224567050762116521615891216781689753029030338865096117058959012682281566224945627829427358240932766655229762718714561930186415640355651715529175876476878486960922100405767354972983689777292938340446681576195277541898446424007299078388013729416370773751253061443087800877992058213202663535150194680992068412053652627709089382534630610997887924045942368706333343287094981598917609545551137878697862574865080822701243877049662146908075304132408212570184840748394065303678960319520084206665405338372412433457126680087838883485737561905374657513719597722576095122274737555195174582832696621188673315091370228532816724472735985099917975040699038123254128219902973726398285228960406803157509317073051699034396570774634670720064174764859670292270497422850469423993540293648064821387083943684746224322581398232286903588607683162913001107834757373102879678940416212169250344577668172778186705564644731208861401345927219070419203658024052402046524071993395953515712709533920223262571939592449374407198553315495781974802572295560965845779812271280559065143625567351816293300049276759747238187836126309105919494510011177730272315575394911029003344435027540599979381444533901180430349729573449041818323763770472359624294538524881986121836381404289039320222082993195353732505328468924530188539498275472959671463623566512394655015540046511429990268617080829257350925240390531109352910458464105448922926634702042781827669144092024992911734422271469130673736923621223555917310941009376130401804017790524452648790492230736472296130590549815926927525614139468609649895435941026953249176789355215131912337788633808193028984186966183891261139631642295643682901973316291021241486214059946856938130146044012431732249427202166040634614988033094405713408524752932366821913779261259644612159930465324448387894513372738318838173920502308924149712979029322102270911632140806854631004505763330929202513887228706827177833179004095085300465765623561873457658387179409641705375935264301802143912262317277387628649757058110663758956051054563815060877589859489670609238080881882358489143746294572849242762564928779857488775983578499037280246139560597690005047568718898761660932194656554523838093453305885323563515681141509775202689289102581553952081156810305882476241888363585252415506190756677036402738558554570295486319988361078883541483916770193323318568349333354937604451802511904981331112285115391719662504148968203800019988150603293517089408616420117282182150340262556014141690531842627339218387438124198759852430137399156025943317532580322510552222031908647194920899585740127269182102359934448645345629337737175758956048316254308051134362066961298202932179454233733470729689409706523528857236215536653888159760450200888728090631055408033814872474411568366531521755791880970095773028470779360395886219180841241835870300977944052760795219803231003527836225229771423848851149777115223387756535863161298882960623078156098972889815449318875444136061262515520419969847790958488599698473605702204597008812262162002172896866029302217922539923981006408349082331590168732005037299692038099704017886110411302425259619902877738112398335823136660036845287561590345776489925047840516807350277825594185224883976247222475056717548873962689768737389342520424800236642404895363856925024252605065975587326238616504786765095776444643782878038706353641844618545811591363290347373195699574636215676229718266139468075669583827990579341766164561676975646132755749527794102019726453372065250945206212406737363185740001937171739549585872476178163437070643003064335561403819726475826566247969491994335143645232742583852239320865255667722065002741511557575533835302107120052172596595055866207725383053957888156241121623244313015144497191972178004976087202080655905731655199574213637205322739874223945535863309082564286026254051337911010354066514005711069076524274729440509728607727460693678356071837802443522869898488349891537763006083513148829952613098245768130423413989536750072974621865801052243775972134410676021071491654845886934616274538823206492629204028523567978844994147131583585378144433564439005988405684406846541380303034909824850428727018239420728080064795256566142056043619279222614577790261571078486411047132143222251866492581290399273842484600172999710165093654248057508608775392898042541714482056428587865486236465207457060787118157098152298548866872405806093001989648469534261565821564609151969208606559286681840592431538695590564466318302022874430393506274562468858351254146920290085498603660005147792901608868256966719598207402177254857622862310635624543129151739817897945966778523993934774890840175100036724038574210818767216346765988504670259428114106874519647845500532678739004936564105635894874282676344893700573327185225948547408487721670951807939805217164222232534466642169210873776354298052301372598795960481361094514072595043450835845640555626140654858166327819969925022176180553927701733900431338549659834354766911288878941639620750989293144732643905329818025373841149770017526847916536545708113705924536365021830813192488288006242613979890182904976464666227921538971992118967880480927197557750410657571362652594395160506469018890185516421003821233931434955492037136694971373251275574503469151928832789279911015236474861499570536237428142472779458166506745833071937209313136621944653927391079866483019787091855127967243588500390250391853724235792859882162262003553948275362701050834229412027150682576245549949373867060359876669341101815126162578659093240343829686421349323152264220308974900683868338330437235476018354318117744833581567401144391312589999945405534432362441737265915493809292355515384332617604066194639241113510006896733167287923187678941645553938311474906951689343714213632906763868996642409252097793548582266146778104512474461669583661935189315968305313607987261178751045155695517628300600193643254572132742567620900097975968083728790115987758893706741738165345127264822929753216969021325316028998490776506834900594110812985404881663857638934486759084379105231253076115927650613056258744534877312174697909113275991909622316863184954734410409785019849153512744305071169150742947400913751226181722692246815183199520764752673616590389213757546462272472880993547001151982903966867465647791059046694950487288497788051690889069633353745987989730497922706540274741290725930115170360682557666449117225004961479972293162887761957715426124497199005710796884601238366624226509776663080005001658141756251337659601067863093990713220682803427269373110181880838895394481533305472727491778123617253755006106678396084947348184487626076053026845498152796741515843041232822133355850349309827594709356520655101926177149521197680644117476398303293434828827351318411509155827750345475026787666560262494822574503593867771657092991154878690336896869029715059252871266545290820836842742267268486692960738731447798189370367936159995176646166279035767214947497716489154453391749404982383633066534792317750465081984232550736364388739289144230873899553521992622403556936341108295993637113271530948260444049390525587216589033540507128976310798573891411717806631301505576391350295016627722336726608215483208001930884024561760339085045300168055981431142873204859414979812398905005913597346159363013421643024938130620238868685009233803209152615080193032903304886648454025919286329258790344271241662127024176979058851334534777433117913090140058934809909010457064495597048983950276471014003436364230902352849884464242515640277125161387479738183389705847695967262427144012042543017929640804985417439532900732074875546024973998261628204597575888109992129262083068387725884448854603961260337960476198701463456073439859360052175467176716307171781688999946123105726441240431986016839255523610934347319848294619693381748221177758755711460502350580182602608811801865676139000037340130589161726449959547240088024689596461705160828359836851252089954895239466124798678737394312194715679418964945828059024459002982863410808918464645470060639952768706901023647708323163493033124087508926359778074630957649506951338536146728972729916359206595529212019749365919881277674804781666221245676965700275201281332706233282805043753707746450457053518240361300457395244678113600145696513288602239154227471576199248180231795097504875252256818679991068856302955520898065625857170356461849943335084900279627260998712438625019330045483123234694164602829628015927217763842993049771294763059523481126035830476595631296612842046926786189441021011716372632669256577387695812875840029247572561944804978130326169865508557468756167482133357687938020497850228712627452477805770543657125132441110890583895468498840865898043358531617941280141016233777433894165456036784562836384025144421739323146369806008753469902639422539872014187825359463636743100351866755000440500967748621452484275814315912981480116313686330553135644216129031715637054671045083174323447002497772303539817746086103656407763521283102312819450221011535154901842261796777861986159888373289855884953669123078634318629677744066761432619679591207586172341017799483508748174001009516542798670847328891490774402384726435492447073902995206777131914827111903181547251406365967783594364437298712059420527256483664396854324146837013936850289174655491779381143133233089442428080469415559492823047695321517152133045009229110651313515795079261986650611274822351729789921590425616791359658030339372904960826141698810971109984468023205185047982334185582762059589745741342388340946184372388817441064759931456117613163635755351252393960241691391059806738043848800959513966349945016085061420508689954046190806456974039003059110256460619398973679075632284385913723900655391598857000548225604176943386157030637898136405922390051021632591251507010568681642023774023467581366328854035229675757139795356907318893791516285178517800261603349808541728871071783270654305409956901552018903945233122499794816824401568853816458968651246092496605528816493608341948294497910581851551498739550274730788057073615992569329469565565911538330916006245773139339113026044864141086489017166033217473076790696317447350491997734042096681182387349371741867983138424854350758457603690379906071110261077967416316354371905217882229457534915647848014195440815705076647351530414466006181810026594848925183336400637739750622073119594045276652924881153109410780452138333777466961467824869112491869411252917951644865152011033793884516027941342683978844768157240616724321332877374486077973540343484154209840224522214000580795643183061901977479367466300999697484321553534810182733650474019678571907216127684365969009434125374361835286048984561192982314398587687473567891858519938438964300848945199811237535749146741540761988041325153022058241939043283670558146404271514443245361249381893592571416137266089129895862570568257526441952458180782896023062832409912164422273779535054914792240830472342078932212352034152741694185470154674173982985730682819378779616956302832949263811488722570028767564511784965904171497055661567085895286140741087965758143178153642001879187598619320562648008247100691143793090743108926084038375799426791288675441251549975709243218320009753762343311946390869736344757312435033794592549775998058027920324706121003693883255355173997386961895656029483583225834824427283032686631239521978228899737030647373227108035675142083455454759581504421260107822445328344600818576691708199398856021393316408760513947711473638091265787884473433344267778932831899077913205743062420915284839793419901018672601375686322324440870702830708220362136014274451201094618925941351772791086441805947872562185381856263216322292422364623730164481419418692686918816436908888113691066560324281451229412317761484705940258133044279382532726931792443145139907134957809602762461089854536149897078165262397844452419804204409138729575852134383902220267695293411095401968993827097382774734845234743141179882341322812631872725172037767451100439159594920916684373364171443633639696860926106038154842344892622623457501381160663406401225671519321447958423434351571931520153549412869312620460880806511640017112684480943202689273272430295667906993021518144431427822538006532396815344463584040813838893672482894861893778080839554733874731454557066569864946683748042261601283289601448286315338419164191891057510140251587469613657430316873271860998520965764260123933242395969302445880521912021709860746273867612916654542398461435040277614202574551837704708357056042276468743218354664782709879245036809641246321950135360288947193021666619931144901268953825592396245087289310653510728061859616337232044037019380085643488653256989398519687963492550576908070737811038159689271944404393613175484818364693061266736685769501151818169495734383983404416705541216394951030592163090701094233147496796323709854042283533553546326155159421948203202229334527684502081826015784837093563804659176916401731614960766797890772681640775718017738595601126860189932681139841029572566030150872779632426342827236542310373525467594938484142364302048019076723970925430676058811745479530284274033885068772052557332989371589129205198043540381177630109050664135894139856528313637423965131034335703077111858160170943324909296276728431596601956719324149736830760518781832653277263783928832793089401362414383179933255150913263075867407824368424935167992698244625826679742709063514926434549706947069797734453966883553081059894616359951448524226998833948381271781422310509161677544595075877550806137509534469743899725619315141918224839152008970509193974838425314649266388822726545530068604696432885323809556656759632690227452875698891676449601126294969651552151284253533763889929293323038705761017846189350176314372965755098716508332016198539705028295973058684663491474698390023835567126922943872243836574424123012776156645064106315874513446938747514181622356621462209682799873627383820246395100928444215795352991573486828439086514249661280491352354485500454275925834984635268552502049112553925753689752554224641681554929293684893154885319156038706014836178680275026556766218686886924174325577513354810410066760285300265678154746656967649501164144329242455862742910460594449313497460581042975678953366270840649157909580152662298296498707786381390102316602729829603757532725296011954006649808134361528045111341016043807185298510439666053786658059207016839284242101325517894329748519397825429971855691741919211499928782690112327496005605778540339660810149664698029461653610345422805929929952218604112884752726701494917320795693404769252945013973198482292042474741440608626532786416640814829518354515188848402166142369695911442745698123578607641185366704084212491726929589898872945493031670589648353948728731496947107193578976332283581250022277966918421768307348715213604477944920819189892047318845491577431887543782269933589423132739112979086293017260497603843313693447412090434478353921604467250999314709888229377655745132665062916024414704351409489866482371592557557035942046667571478822245498624579482682495072455622690358547990136384429679359157665522442617876664942276897201061208644221254881965472971887489811205319527911924230419078792957706141202401945583837258591952371000109866818595265191790835856943740710439916294359136153854233207731765531186476689724864969846518478713035252382907441847204604268958835566667668075689834497297814785090344929329011469777996149777344925745576350436462593888469060981813948737772617596082894186074829557956225356599736179859414823076182270266880009599644019689945879487797964334534576600079093418966224666548785011144097012145895509756830255972950226091736815227089909329163541097388477412871221628007376054267049477761082480277095717536342671675349784247444347241025563772899325414231117038663670998812356080975151062465156051795751550707279412819159723512911210491896712591934872034566343705525704193616323252049965443037215278405039611446186081938135093827085300477069896399437919423245920390770847523742246907023191970688720159869195542144968534676226005781179877855766048112492064486173462271968118433678144616693460579506927846127221352993448732384163260456957895824521030889324091853572876945738354431652421443131032951981344354588781475931614218343127947075502276814602938322915767138532618565219499269957857931635446328666855708961994999440504686213836437799907100935621796071611583746638632209959095566910117789040012901597567804526145093607377647225920327627131075387663858612599130574875589645300701817161630531163118785385308062741858606102449078449005607087778062691641419324647844115386331668436112568507385411695503731591784371718750863228403903647971823955395459692408332557766264389050529768635622357876788674172601879969708579613934993520060048047515106218025612916060708952933166823185123275166336753992775562670162194462316115982037568964408852959036310235605001887390012416839691354592038212287027325463537807901530406458556811774765767139907707664146691757794305631221833382691727031865988825827413043374260156900384814695684096451735908787381378549331739151780247358615091081440177082275500389735474072254354964797886376196116694070593895602128390470447937589101817582486708477407210978635296190920255963545513154416455871007692985594206737277226815047909272386919899359254146993384107772478384258428252716774367601978930959134495749005157022261137931890552883602094719050462264493133413721876118808579933381435068070353875237676987285444473344115514426492659099308636915293797932446961920816507841287597941307632927312307591302025174650118733296899453873889141701035256661434380741998786603682380484222334792218155486618142611765918167705736264060393716055090485393878629735610296207098528635476603613721858366222018277748502817864366717587343489748652183557609537629097120375033220360324113246335177229355315458175290339303480065266919249136061087361747917975856968576008044231732725010126314964614051907786176438501188567921486380132285625350179474241250294759395120436774036506849853235511430952664375166494498564038400097766252497437674098627517125869865931958078483183415876979398778398959933118121102329614558582289870699587049851619027068818580919120891449297557287843718596000823644500069874810614034760436348728095340116061991352011455373790603834392413275822817669395349689084848076378925291266340030722640980723580475289025493284365758365899274567691076795717925688900045307575938715347314809405001231844238945205012450916910444738146687501362993179323846577592355849071687712838890550908767363925040858737851652160780169982733515695900521082646309615344816338539168175668359055816881287076589054776807623855460973964247232488171616220016276556364434186065800949360432533263313805124731719032752822176174272378885392746417018276266115439645279857638781555515211811660212701706542070078696486780883406927706031896140444836801788382076236970349389145076182425756112133764563440548960243972874082115643446375434907534665273111197318368516057751749141497958008785632630848747959280080173114132631307078144523553268485049232987942441035425757742188738615639319959505007260944771209407437138821402619833342358374054022807993897444589205946185778408088313209790283144156332328903952070006807336167042412129554174042945659708219492980331771629503200099973600391642436924198266204904322189587073291680553982053892091136505165698431095794762956043852576676887916782152709014579428564606844968865314725818058594461199207668076509989749443528962571143792265319308429955484760027831216783919030390231361007527703881522297246553155835580696668802768146269387199360161523784735500201759688730812871909680738500967714838245623691883404575450235498138265682233397060354019385181708610893437372115408098008609962150062246220795475260465424429849283349456240582216141379575565470813904666297354025523167185615225568389970412072773543418157410227884823070793600217435227313229595952050215103892892448002178226915708940969938380625885877725533451413431643806706722406696687417961470410549138751326077946670171471965279114791871013218208165946278753737466432937098477197426934967759197179299337413856375504177245395697988748850308370741239764104339364654656573166976167804291765274305664834474610793499702010139293924357400300372088764574073251473712342135877714525530223422918210828783358014598295183944258913437675915451651600282322251203140595679804147339653734462442033573911308646920569326424880058162485821763425265286661330287957108356775566511159908113447711042071934261049551581066908440440393768168997429148334516463245338261710839775145586816825187673415096583228954713992306509569014400764116587051437307348290146652274170478787265604901400556446047479971259759138002350929084991923831152360874519848989418821420677636925787590236397654505273405887186027963992856569117776847864896682017468847550077989193528730389723749220083365548138149345054421852199413703065538012132666331604899551100111054631435249459050333785281262404067516129391873386952191695791927153369917603745226378502212377550529835116273133668369077548296894221703288318243999321160003227349605045309005388383614286494173878056786537426701118746219476429530166286291500102756416727052966188751308656235160021524039462145863838251496455334089473811917896682051190232527526535373057361245193552311778865652528363302972584480145007346437981836379602149937570184125273287324817549981798157061079032748494809184583775134766155280970711497517104113252028250393628630717284791898757018493388165311669660356715098058484137014374310034739943883083834215340852428435416383871366707450367152128880716180274102887484195533750594755814014264943013130972234770825867290208330232075284464704730770433544399711111650983472676583336884318676851150323112572567401513272290095420758135321015455304275292357236809908217873934134724749908410254599349320707298331426433128899356322796177664445372252334289936883011741199923172772174466751281899148268501381836441839936774715174313389382717724850778833586645749608773740952956922845500573183970507173407597295995629564530788173320733836767072049897263595519660178130148582821080303456220160887307538301944620802077821089869738166950248453482580251847155296691513840827655405639017175032312798283944815781554616616412973130624330939710481607363878246839385273630520457312660137011169607240068784892715965617387991914617833655854941558767063214363761209499194731052144838314364555789998234272768309352458972926317063676526083795257296783822998116416003363485987872117091117429658885345330375576734171050435634266963308814272552171377660683025042744953584855201742611698141247478473258761356065578711885462182363525888285685998013634869224347840651094418641338346395294402438822820661414119657070562218727984435412528365260811671050237833794987426576221274449679786318377823276927977661504255088637633744747649319270650801919220108996967248916834155365556120475913644361781299093743433006128913056140330176768774682219793954107910688623431129699854515747471318805314960314414645452790800379419846479462255808926902890447108412354762663055463226007573012654667595707353007487344237239523159076888224811568604325338808604340341249652386330045383615403507866790389587337511033456669067009950469733251119674865081478549718294250227600204376665787294009810918921190761728273929994357889450940214161135534425246018801191210284844720355560853308050818461344838302838150116358684515674441170353212772871740369768268005638565719565900384052937773251258291574347535377431320986437259368300149979712846610620597487365807528801915098745968712593515141212579302545704143876136309894039198302452061354342605200177091678350949506236686436482750068383107645723157961386506181996429402399789429500076591629635857380453282032869338779269859095808715472665426175063394803804609404514099233484634855076842016432918217760641255900553944783814564392157099942714783914005445458878762501524626415855337924645228201989322400219499779866240528772814801630542985140426814153112585762130596582188701419516411640327765517038016974012418177838910750975109439011996170314154768040243387892157026441527563252979303396886261820740019207812884095296841474874804851255753617229595901272902632106180994415131779322176192453337464491914943294043409494482569192469079383105303232742485698332209577477293701925913785639907525635806075833603464001819068780200010138521078235213276480872345883012243134393823551498412883295705262715078872097016336076221085616429315031780523125508391091339902291221636376104830228186729906592244725639303028734095060886151982563275711517743766810985337863302076833661031215303710898692903288353410061459334139568740846637252770381070992391970534195008989070378865397289714499073588420580560215104775404385045378683993234160799965543514705239516469515960251918394242877751710436848869103705926238917570658099937280747754045079782829323984384972975255898649173705155724197840730428854362280689851751633784305783198357496544593532549445210445698542802761242358005213655349904362962009021427149359169379512854895591258495956077848003174905264316125574618169604543560907537772379521026268928644854112362282930705052116225149485693716555723484759290229692042926491469583024847740374681290151835241170391253206392301249930821591264851826860374002722790617793272157277747389515885870663208086163378071789263730890286559951696341298319626631799046771341658252491933797442410052587073949864865760716483439811064542126142204595110548084934720506478947829201689738622376741311316232123734340315170742463752060978771795167335269750312958119328681099378622395885874281461998025088005806390619501255421518698568288432450101451473080079921293760288543435658734031234177920752608317190528937813472455503560230771080235870504519027854324738696998141474107402453799068552732851261057012569030271128964668370460668468809965910494097027344309155215187986245971721068141419258209892891038376612802262975868284232880142931054303759008690319705274448935968057773528209685444493183821580087115091420359595259273047176244661947317540850496726281125674705652837684037237435267810543660902325975333713293120267268499218991025514490727351776241574082803475230718963153220136024776116163786443615509293338640208708138016786095127272705897492143895456383661820115622054117610071150909042192828123907071938526391946404852833846182713018101135997355699430327775966832790221332940435357142014808167548278736362899951031139145049845676265800173871407121708636683735523020329127034155042285321382430517959314161053252890337153574265809663042598465506284816377301389231106216258930779629119779497859136726805917068774154024215345446065107292471464485035994516557060760494788350197758709975470706218541287054575924799899974273505860771369043073693038473283531993014544189426043709931775324271626001289928125160863384400520919141278138159036353499411455800786260605674482478460049661289886492421089208761939358071790604908249641711208990592582649026150573205575788262984752099124065325788283120659524783578900467691950670160825001888510749931900150992299077727614884078644702326820206499423230224884643445214546576203493356458641650119652450747761957681584380229458196005719481974334142180976409116506965702849820580251630631571980858145840122761973804126409486281792436533993465533106278256049588473349248627806517226755755122378116052190355320112901186911490271094504898400567141021858452489535293843823632324678431908145914106359939835717233597446922435290390075240196808926670890003754621326447408095963306870895822969289836179455823173553936874203053943574830893764909245945410162390909316853270146588075045246437817324002264180479269815398465248148389498975909510822458341083043840919875751497943881831155137341346556937114397276314598772917551220424100002046280250719658587218716953136874552835936861239856235953408318925906445314697670252113596790334891553525348068100804796074448956321456020350859262239979295413943919973680092980404990357107556481478819396984187616981361050406004885894292956525791586258914813732455397602654684636839365194967222033338243672957430887444156291234501514945578750355263539807000436995694311594404444385800853184979988787728907030817870022915218427926648449752299440908270807878716838051820568535180528214769223595591795435009382964350355441884319965270996098756869995316134128472812838490397350710654064059454549675710431877144353022299372478080218929550457070799329848146630773953626291483596619321862076413563366069175667329034045870253784790164157914706907106059413975049959505915401622633115826201742533284878458332085297269217456962455622588504375845222159258207181451536561713838664166576211252299494802976615896100158580562066747728465295056157149783142490014500389988817931022797717592109172450784149674122590499457096524744323497090161401894118960693226761193360445718999651330913377893966276989110940366838529165910951354283341011762016997115695125897630225634950103871279641476330307931533220710226213249440970295343536385120263742491652219023516884782238640198672674077916856427075973970006213755544229730431532931925445793311802806627032019648682261148028014994174843894566718134594802012592645871851148743930956312134601938036239058455308099852013137665106227196485148308810900129553768218481909256699769595442694247108056408334333821304408870992939990849704857529730411057740207829492606118869896130458672753737940167777351073112365316210514918727937682305900811685465511507021977592348199121293455033980502049885199256346638942685359534588447801976540828857007704141504986387239705493124804939654414119784919940147690917833908766451820843120649486338980379048442060423668653830238573677599302331330129153856764418554359947342550702306202766830599916431893565161039070782875333059201794760721955991530982373050065280747264159814033142527763044807063098051854314154673935635914062054790850367993340748596749716596350192756604651783438981732173154953015871272970610773878025610694589485962842017167790834481358418851741633125501527655234686033567707387221858552449822523776810689180867370704668431518860236178410167703250993098459647393484000208625918848302161155593982204331445462275565023799226853596582546741046644393053926380177255449081092663284106847429673720583507753835700173920714099439469898997005771295361466633691209230985514948297046176870616152611622094289558335259079219613843041836965659193642008174429142663788407687357386940673089089402524869962059785454214490148275386973318551379857634068149864119280715953420376479220334217370452385819197501134438254225482632124650689964073746982593677348553823750616434936082194955544545767904018041906642435564443323788732912896025156718427673424062822050661418583178643887097774786877866539752695500953426468744400208856859724574144580242685938157731268311770344902623635950977209843430418865795594164617369021472168290846254299479215495149786760447264261292688354207245589560448506349133749505446828033936898270541624047334706902366951818709846908496977360457795356082107273875564227422579179600004158478539849709855483591434301960543943545256831328000581715396848498590967531668128372362176626799297002283850347586464906554013687813505833633624345781082224578986195088603484586945761898242571356485203341015980985725262907632333659537507248714992469441355997853508360050311742702924552592692605706993593406547955755333178047922284175232481658255072755873995886530699268048928256108879394306901331087495801012286181179446663499805060819515147771531782616675577287426395013856983912527940321536187003439917607666276114671102004482890853924463462648775683905191700168592271969907737351040381126015495952349924957464557938192394763170096558928058632982861516937793825879081369550679762973926190976721359526923730943908381170456735766351172693825808088228441157266404860506959266202177278104906737946352585040185209712819424865769304559876190521058992057547821100013686725873508330141127264652614596341599058165380583439181979587762216449659847659376615358594869667829466084756263718281093287388042253009542510567710209360627169183027687391564300012267384516714545856992693167772101666115044979727930731465155841625028013328950962723084305274011893324486546119225311615020037875000473144365870715236208427393666580005726876403399508832891638534253068519036553773129688828009359384840460410759892730786028902000623678940718075485732485372195430784509863927357874323123374272028824698511861026444034997615282124117953559053915756561657241449586090231822323530576027581432380153909304568256082804838185997062293654174523620867180184474796934025886107477089305983890291279985294955444881592515423506656732372945281607991584443877143653172495999252820207010867732817111648194870864586747929327162267974979996215115015108941377280440714869737511811030748762898890692696672153465597134854489364612465765728330320563206737775463889803452788829619320388562166581138961266100474975045937257168079359388353397298017392873162484563002920933615394165663018443400287439803784919068314222838154633771818961688475878313699043360964210029822715891952803729864070463081382005199709495494035449469966545577351814788469899407185026872848242951168507471592422682304895342081337035359620312574131417215860504091634412725191862623698098355852905373571545766505123785057703475032756779796151843620092984300902552834467915980229466135491273251507069865844581238518454781616996894269326893979325944596056531689415730199033159382939432895884550480844667777204330068532054148861049551036234167171261903507320353661378302736752345778917008844799351591996716753447410045588029101816569421495248048870489190178667529155917309613357925598269521711963291222259357175134278150019535350491884420466621461425780091326537061189652136983638118454885225497021117437941519244939569726666152711939553161165490307929907680800359210498643940246709367188384350903705144784422686746116591728271120730846526177521880342673438249481320750733049823817092322596705981092030788195040830492276282987519909791262409912617376421850468767535487709632243329602953361897514845969507700507634609517839328355855449365196213822283007338769050721335051069255872604323699926362831935173336947275181446849670062360434404826828238009341567743773735313297849030821289799235787170373521367322392398320508032301696219557839917966061480452736690637015621653496412231437297058125844105549291267961974393356472078790652108838565027106546478479239799190829587857030226948398157299810262011186325290079371050437253960044743064030799883594317958323409320215971100726898663459038850090919684435760212475686559152056047828901366714683712579229450293550111080240247163452645218715797621905650779313587230171097844499824427750202466776873323688147175828160927605611095816811841674814754262594459861036965382242750426358291637094519296150526163699138158544926493242520331574436013741942415064880941305269835944181424843109012979743498517955394790714573296028798111151714198206165450962175786878444348380259256425892150882276851449859896538289649829208021985794312798135645825761611575691175304471569579867340591285543537665673990552169550945385082011845207383628744464376022924117372955134497180275238992793919313043131009664524747325045241002827927806586689197816144733156693324593872592296384913431156808920561664714243060502007895528470456251044601696745448339334507272758292579432240408500629348841473594268977636415837627313361738601214151902730252587884402179721189071262830297349006428477177700735436533061055695227700619047457268788166583200487674907772674334560194320969566743149732572993172811453797990084668427568738473321719288948260006059197846858425222788459571682197237385642891803748070927357909153408223410734658777236184822809484712589432573021011180031502721645074417857482478227880306583953234653685179576505332655657152997665358393817014770296218208005643990533970680374214167943381885488016708168222933573463355315401456676254995940168702927845597235811302018844376198114327705941240190429506240080221952493322445639005283805032696207665133614125806366513310053525480701403349840354517372228818462742255414218241548872717392328379828505753633158013888247860135329091000413280534565557194026186677976549588705825284767535145143048891972217276850913972243515398498777726091880355345956722476024751626264734323149506416165779504143896945574974064301034458558942197399244737348801679127027355184257206005071770546550954642949458513232224650586132878874076718759038294725713244515810669581029482585048498091976766884973779717851276133145299752971274272655624384743495302965422744023004867863824911306767657537651528347649740907976412212940283178712391201737054760911984011264601012599142916478036281187597284196332361462085481659917829107189537610431099558050951952340714646878412336708477889407937046781410703326188944360814929353729025269931003596111332975097789205257207503001848735815314646198326355084997581567736042969753770104231038358199996685287205514353386996126090896205050921767241241040482157133647940864084659415633631173997828767362494554810067288228974619636943696761817382101517204470939380651497565193532288801481534941217339624063266241746550355048717806762736904941552429293809909648796613896938012569649402105025414466479060496525703849181135877598480238560112877413057893086960549826526219367617236768356736597876273685176138663382900141035586210052073499482312203183488895477044211470552796163303348997985739374759921933102412521952859234268178972443560421171150249799785251987902533528953489889803531680088348023752354318419939246213252318335828366225070523504489113417167043035587545592335678548472080084356888899848525048763804729039200783024866033134968624585328690673694837870011481012527569684928120946762600619742298477977305764625238244935505186535137205504217996876004862088975084489045343084466441858065236554290360292744576996603084616866382426453826459688717730836959143361272455119126429565895127743221344269109787771073853678665362994876473917726578834443459569863253651522437513847819193560958037115697652377075299916120043740946695874043634683397828618910895740893848058100235029287159046793145680695412092809838756530579029756650142070762069872901003549794839062786235610962753878325201346811950142979046282823101739419435139736102225309790878549584153291229543628085999070848645241627034088937988183571831956899530626650618934930834218046197998125114582637055686527648113842956067388363736030151463417186043037535408958365336924707335260899359345679839842604161537696961388522402363914773427819417770656354543758449771351650058329255505476137779142721624527707009784456907800933701985490233236751179172748188503286352484265478218658392647285348508958705863649606982358589582354995341966632025945899606422448182528539548932894507366868020294694614730922143701736652164589806043205985552704925225374969928805281135624232542382467715329108831002001621614968798342773289705289084254860332419456596358110386691072364183190061607661667979305867271653652231905595981141174656780306431976606799906198244671927226485060163004143474189428459081871510909851220805871380877291759316658983017786355864765752255502109431112063881318635037746096483718633485143298733855965932342528378814332419209165584182871580346624349460772862603416314092027154202206989067586072414437618087950764127051897693105184454205988922230134794879044956674585969117708332859456487336384771750778393452322025727682342890736660247051822956241635430897609167491736412695853943139870471672200864523335820566181051053856087818707908273248708746134727802471790970887955017796315231804894561618135409249309296733726158580250965889434407817302207211636032698918408481706001660978479295051537962232845217660513441903673094496243076781934167179863238898677930760266295653731074174001974196628713005936250333040691837231346041063022396042693097050009465564038944582658852009214426436354214376431090432276165380951319892478746666657289344060456747773316545873060072941644785682001869353974482604752220127943631735124688272436121388009350464127068142757446456131527199460418340288703243073744882886632806348555825040227333157031583166778076266942010569645759541891814926239555786955790299312561184935810288795001965505610806787094141675081935382402617118865561080616064653258716056180520419115371288547246756675576870740079961659092442118532579922455595529807472169120969047366870754765831520074662622036438134662951702775686255100931845661276385903229200749222279812110308649992900632677785015844872837502939559767666675116719556877632631279128106912888777834306142371112491902752627558907062639375268919994422446877200267292458414262609519988647396017286855335815055141957171070849045844998586647538277940706267366682452989935051611121764771290079925878379289244860300834638792453746352994960349477259019337912274892322884916220214675001482789879957618597698188047797433275134091923593922047635555819711379554315788451910108800437289381412280245579683306059260842499231412399694309953993374529852341591527818870727772274841452525944339560359953718573222881047222804440533454101336640134027944683023441248229985530966648464116453435811189097692089097473760277971808717424218911838403779221417329070284661995542504628324159453119388428228282650792152401257045776285264413492511792985366528557220792852992343163317797448486664943092197837846999258302617590158393179550502509876997865343982823309406665570159493652617503068834553085584374907493768861229832537247734820761184686644408919714941417914061277503851969504030977981929523452697541422928639951184190905236148310206391182890748819893694155088379096405987928794942221264264505285928674864567879444758533704575779078159667864650875655420324662523744188046437082058526108220632448617446868665444535191103343255612883441903742350875717278028707813914639561396068255791509940685675703021619200693059757430332525755007074721689737809146569970690234636536037890285681325269667784622136916789755500424868151260488899742663634601161269277651385262289701312273032270133423485168518889668184568875149305615806936110469908528316133528401949202445807830176783055597412923791262268894716205831951380711544202724521690562487965522558927126395582080764413008435233497622496143517984042735040040975445783514429944461609544729623104031049886324489488477303603547880598432921220858168545929222206002955699987416035232589554564272723782011498421175974890753241864215519120369842583069244534558610047324793811640559372801331136917990033495851623671026540581371105282895666671372652620705867491837434053806505305210119859246298987244053788975777335106640397029236578256913903672317013117832386186861837425663185999492822118682551164741652109069537001394660555364978426876452074342598947131181142464387131002092054183167290151025425733306694181124511031949126803275720301519144861243018721234539615241253383670785979566600311430483545484823346380776887014087580080400721501595100772592079898904278741288333562760370917726062268588963890579471399136583128358241966706649841096382629769303354164451830621563030245766971150812103666004068079394149388758085960523904428588513494352956814427843377824400481920880387897098654761148749549297490147919457711507817305292824911344534547382710012422135150015863409653296186291262417136924234249335268472913631214823422423504042255799491748910513034990277692066558314478088544260351118697280761848493688495908809989149521431231801415844382797391695806837648073674746781570782302619487877923466120077723674187927843585773729840652045558043730922908779212545693922724982421948075491279710495952172184693550147960019283885607592962814115907489084570397192007447492130459257599922928774595514278414567171755711941892194784411766132993503294819449669262502100136240953709529139024377193847653009924817733773434339748352628034793006622173064388834081640210850876865012492384710209122484513033292289117633296830914296796655628452048577418232936954433698641077909461402510681783271203450146487778819839254637267917009942755517556447581641021061117163324251545404923104341472200850954682649874223010662283359934841467978783952772516072321758992046701462586720066258812619432409828832209225113513978396238904610194891278005200630699539711463104797972538565995672126664510207158722633384528519581468718240105346552136842238881371339416206148636355197415588715317773675504371749510560293473944857476038552488901267295665543649282960538324084366901607826948511355393535466309399044358011040833798459559389842091075204799402737826768843194629935234568731026367219914644835764148950363867353789517426225481647699701336380210349621896338647042675567949089763947576541111772478876191381531377617755446534716652644297052135076847157675287980134269081795149101603959118143417573332195904037396579192500485441095321664439251489484547590801491303181311537647610438063086240851428440415753873503089082346730269706068234788610241955061007277717861733795504336488218196483539805267678736602859634219166536436703739433093921042675863161859902555149584227440692196992849944290833802526875710442745710594047154774274569160743618262481966674420752000398455307457896764223215388264571281412147803833056381323787583300457900515472701057922914315096790800236518918700030319299282286162194892314746724363132682318176109175740828486074436241579644124401574410731791276666944042643064150650782075684765030273103593585044374407329465754283798144728383986401425075025171963705807850494837759431218727359951813591501678236254491002739893691381818543706313418820825391436393032116462937390931238127775234556321000851966806087984896314548933056885922016642624913889155549496025642807158104453739304079156408980163793168378914662090369123628655671450663600343718459314840964812242367663718847321478127678461247990433450536364506772552986505430278784684338788525755062455611606117553570497696173752415163726433610589420342647899454063226366767431833017617743175525769734400905168398716842881527999354122137892990103183786048547361245707004780030791010812751797456452642479491709388131763089961897591875796165515198075755714382023788189659428648248863548851538050936638230671792663428137713385273559243015923676042483790321146695318594120363626899146969015877940522924217562895880179432945324126646291374989831726815900910009418471430519451769346249745004246601552839029564434726144375088698463226029723670479923245757261956475383312134434594619700586875388380062598803050787269415128067188661151273784039754082936633724524931415945774503974552410914095006046116927260578178386283445511837566463206081139301664092998512743400087218824098087534665831742936008557900809552983692415176917135652819683116119255746928139951620125859378775020162695685134982448604409380572340806588720161175268469127529771865316458299380095094649110432021301528803503228822181821728784208481784486826233849429827786434039955997797451664926526846967892457567759006291512086815234641199824436702450322199738111085681436930784513326666320581189532592940487520287904140139195659419453452829326146955876176145848588781807419241873952848108535739063107435070476151947563946190089422009919944786855645179722601171244185853709090820146995978483005910262641103167564983005433657276315961380688838020453583422467258863256011594692745849240389053778248676534778376278017973159952223291804072312691391854205120920733175387235712636993434625183751146925710800771749482196657974041978868928796875439709710758920402483915453411787066819597103585658610364204699927545195342902777874213324403521742317654938446630617512610425043997403184871716024174921553358564617679860255149910196267014860619443398461008565855818312465311212168450214449042486399587483077416246461464044884495588247446300463520699116159290741710026167445955378869646671950866217198080910807857007025910181443126745990271574858312530025036898797537476079486019674782721985093963540476852349025458957741398481482307483645051224577971490896275827659645182491391502013701887267531052543628051741720545821370461856690851500059231286587249151406253166529246766634965922508933121278043402728632342946455393798280695484986583009069250521145779491398099873952226483774529319216376031363386526791531862663641252030501435213197473613793221182085586793151077218414987685835280467938061327565693755634694934336805393893442029363915422997852023982036596094078980517228336065178880118460694085873855501023440616284682286785891488212124036751834595149341640983001803648329266372632129500439920045045026289062788850718811464670705777139681708230139003513021569657156936900256832169984122130825809712408744717572721158881674071504081223798971302721031687724667464083166906031881195615198743049040141277918957800457376868206166069311098964292321015536998015172111865274929429928870048130671232045363489410880348074968818544114172705362911149112567475119742411914333839788396048679345900339455256707060038008543205146688133321295307547678202600463304664498430398078086190696011527938600551521748042501253926277657658308547715313479805768703810405080825459190212591514649345704877589392097551248863497168397090154025466724218561960514994701073716274727807548680119382557557117758427922675082989801198627885201430635062010817041932706854900051166271528442440971091546565599135684693972160734252657351956729958142356491624576938525505555922830400927944954944919737329407360591133290270737358098895033659885373701837981239563134943009253138556227451962577652745766029936830131553642336985276798325995228638126942614958103822286476022802851560998647604142205566085567130722768775755355169084970987263258862391431951574540516774311745402979166788957264959225530424479166501143938849052559597087917682124019111281121936709048128497961987714157758165506507638321252910562170233849083532857341908704421454316370230211174773646134598357659335616989149109802641246818950349973323062583706287566191223723651478425682899950989980513771890809809550626854427128593433330017245314763069023592319398984340997254950973335721702776294848526589671253879934070828422235409154235516883408664171237310573612706199539389412953512281383150519646823670457839927536449844804525267596369743145741144621600717727307522793738914715066228748372777172772811160932642887611064804502547687286086170572084614028388467791877020656782591827164861794857041123022010580741459540893781431014261352089796064544038641867616169535771124441427362041883545940120685241011612987322997302544171187948729677211012659350219448832277523089001489875359602080361785488827025265172224806542906387104125998930431225056710919761478423966402793801721757780179161406669590185454814326327255625066512798819175308531396940620721517677375767761821569168801226817792772934371980427293734521039299953942484070613815426985671917457751771698225065983112758930172684486190923708399869321577454368170450881431304587527231104989821681036149425859120939712198103333767285005616325934600487200823538622695667276542054765786568578925261999348056876537267550526099071071308488202170111407426480951450076807398351150595559907205572613084765647912842695355100399619977381836931070349016975302747212824123304736878408660094251699197920699804518208906370994917841509866313775452250825130214878771147829490447759729193291021371326772142489008619725760655242660053114125260929816922769659292331020595785574942159224816437135667762272848742881206950560241566827932384622947087418534525212496099295682547373047775242709564067357404091564727285759799397502622996623658204810864598416688569314839887698421822575162830494102783627584435529454587359049261606894642268071665891469386332671956919036302553087374636791581774610487178763347967187325961971617221915152384881991312965266934177304609635097356277324579237673699273940023739614448702784809059133811637191501350110396154709916453336036546421990313225465602055509652566326369730964070640681818644641267503933392617103700979656759430914833368768172470368460439370567022796533440108189909817033818222304678178343963463265646842130372093246439050988212899394667778474635658039937280062293058787864847876705952619985059579360260287437085703872591210522811813358037711903998827099320763309110679694707814146720884936275201678367398437483203907582704998493209675785874973681907629006270279312465878269918522581366490686053381403459655204435651514010944481613459000722089377122826467774763571865587628933234334355940011061820889925427063551992251840344837978659706087905216790551695736980687400035158992727848033240505461227342338269980570380710674948875649751550131949414385506360233939917325432457791368597319152776817957341011095776094632680357329767514969753815989486969595965738906561922003509436069885173668090108660427373685725073418834497949956938347615400704214378340969747713113962362140844543686502886546024903911563127530981033131455065088811133880698495450524155872692307872885409497820452274017688879777758004070413419732979376418352553348331318049564497643362715063497174445652737060134895127593675695646069239239237091342584065842881408484083094803093551975650614131477279748677164868322586915522367546959070790568389614637397804420397789999639507501938903057171571219547573353088360161673420524092990199296760185199558585522894995942840044878982142538547206935303921467997201456379413507988672288634357623891458189670617773345119913705799930274996874049078827664252119165954967656471277056037123925132016015773243798831806749608828380289629800271864705367225316881918918488719150503287695688683647975881977916467175051027899959677193670052540214862277214219422838561372998333709754752190058594825633454899219922874989674373624474124231105717442774073505410900091857837471774352829619566643886090755230553028081797114363208104802853859656307221707503002290650372298980181775519459563391832810900337714288772636542836885390824402537705675398010043826836232043448087542248449146245417485537715810726057359544126000727188974439835590902373829514939275273526748693055124689608538210131168791512462198427363784232664338383132540136935910172999393964507673733238098987286276739119237750746164179718799407267580829383306976403632243502774559058416920642720313587066290726051694578992587191795939468465137436257647360234156699987698751959062487908386278730040599492276079003893955976607386336013367120137830839029943928127862308561129586792490416926066138661756124817483823790646481605648611855689305992118739715792190546245028240088829808261017686407443748189633829533115625170561651782313956310489052469222842947569856318101447792460004496374314095036748271706962527499661074967141763257124125736523961115964205414675530673752160081335699001445222517206172972142802433960068393616394093187147886581440551572156467299664364488673862555819016204863128139875088695111536096561992657882416215568629211546498957159166918297535525542389721835189880250750909149173394408878140620470545228290270125262383443416139815563246429288935655397904377518579779538402933668315889459379029821715226967821738613276089537488291028868582781600851326522131444001693437297039999640503850915228074015096825563898479265448705726625916536131764854256051698988726967677244461969599364593239454340456165714018599848096916266286523398279152792943579872754463452843413959205266771870469702750533880660415195664394238663650934902146600380622322001895495914355290898241646413906678115002124010402542263121698994606975163210412396152539975671090151145305922876437377943288000288322935986598308761304974022761658819850753834432731651244976303134450575176622687649135460822075852747373333402721775125440430370293750807180497848448652620164006139301095544321720651182449916310868076140687973878899142382784086932759183938161283744261260187375270646091315937993689477627130969181420234112998066677513755169852947648722351283769659729151958675495289949439079896877323092343423789845510052579384238789611660482182928965024686389427442801347789101127061217559713081911868927534633655801328855004911721147128579750096887643702855916251946472222908019571587166282752619944343909270116562396035035934445444502848090046603735168344914539514165460922107222932921769698781467683681407542866086161362304721199786167495683063796086602741605781444279105815727004507334921576466906227608279914059554009148076432668149197173593020000100915812801767958094488942087481605574694597910928915815727947231894696785652701362699152490488043772730402752049057488628040893380697355021049083604713229716704589171963739773575271698091413936800752309176901619819005126230188017200171206589235011374931308111293403174081166186930367848915549509032627883451135249160234362266149238428462315202462032588344637100846950987111607539621142758272275667987499875576126615720801509439679225202016089018419622932657291280919460054408328516513960447658322366333721197242745745177988140042685496332825459946593255391832666107493676664502310052432133594826686781275256047397304081165224153417193171927436084720213794915585378482086277976272324970502869392142734907973470422317814050971998702175824664845754704060215954692080614626408270565617435789826014679262376000828168066933427681485250652468669381387326806070168049553197185080872368534083100832608161969710630031580081837999422740296807568082886588210661514642224720020149140612321817423830260675449017726188209342887917507158322321956012983484890102031640870917245110888223277025211418001344975285619243575707293125519568839195321419607373893691685360793519679507888903223148741800973144676593131122329556554284502518044431317428642789115663992790499978732468557081862680588195151261620423428079355783471547397888358650665869906333585059553856777562460821438905336141709562498041023020932666742941184721006387388029242521965198108539713948584246530537259306322624395350674479838254756997422066490423475553409473914210814515572565525695449796537703985830325415950907013160572371561807167765093560958475789231256934418530000970836510269205749035575083527677049351467811251150630992908457931141574910679992057918054212547745340419638293061935241339286615403701087387363374509601054202830938657374017303144158909464555527600015964339256610932255753847258937277477980036379250657520822788481973393637651509728645690572039339070351323285335468463904139784194343458888623941527137112248968781615883504719173355161209404494060713260884223647596325900367550823348433825544006286671506591603404236882060759290330493344385163136055013806681521287627179462369752928623319763540585178886181547619367950566576408663248928821387177629380907162124562294559998465954954301783779436707691779916860317491671633836083331788845857414735332651538249641469317077357637361370392526010298867764034151660597077840014416956680854156467888107748014939297954250853668448664492745531450381985636458576638374501067939030046665134732981062048770989612084746008913942989571413315398812687529082852768751389731519032151958261088983650569482047124732638718352921584734445524338092755819165538410761977280605989502233948496722641293489016471342052049351368652962315387850960536273134308795886316073826105573045355729410987265922167526870198302529024301370152985781610715577225755446330953275365451584753198770969220437919295033796818093019574753472082978691816811805134012712661049033089057948502555528749924307706069832269330624360532620922596251640136097086980906099882364666944811403140770492935136759892995547532557101992581554750605966498092153282154832391722318983119946382133253659373828320875303491957111822650070541684596496476737765441824571827570435948892720111385666032590948458042931163071276897057477932308272858566287543341440712745468322250326966568216633051610083169739470544368899994435521539126601116376382435043660443177109131538944888333739958390562545708663586624777305533825260151585114712649696426358704404988685656935547763585350862511030550899489126092250416587168592019875036165544102867761046194187242513738277707775388536158918909330000754078313480144551079191775077293342490891962029225449762520455015847401050815200964819389673857715418422901665221339443771279764028122078339989560233706919735010498886676955286110676277197944572929451663577168937164413432617548292628120030478789861120904225167075037431363760826462242384648375278200721400472784420841495382467588761261978464410729794535218221590879425101340416945909187120305796148585878328817272921468221445114956015895459085922618331106325864351408554788375715139693109780376338651015666035190623330902765552737254764446364847891015138706218613139555021436562664356417674229594299317768995702469416452423498106388362952562373537088805520379214055847276239134055091444427815328478306421867758554016579195439431578512781360811532016558963093774427109197499961724486273502772882315511683951744246144539486393905544765024174413350997197139125832575588323107496686233624151278512334899027987744160453229309167644063890787261460516509181542617824126136656648036034294526762157609297927730883111696777606840297210403094367229613970426504052904126135107940936123434659757708327150795085020150171937612841992334265330573259614725136253150910869295744547323674004018215210023357900776198863371913670215453776160190247865947549230486392662102940114630730661380227803979998691361986889156820486782924208841917441735935829196063847979427055205462608788155280643703354544018484552115859961237511909435581477650399000159521852079291546790070023693650600852585357015921963855472782429223294699323010407621727941114709119272778236384742249621396921386433213613488009733042329154061961859775409646538665482911118847095484382840206552859308227177934509849684562002860552353721313415638169132707138460448378749397868615860151163969953325772442555053553288097597954073160637706769340583036790143445683004884288336916370493038403969417654238959504626781200495027515107653585499548621383708141256673456646757483445079410685837951649160549072799748991865769494648049631249670006878609344224399193207428279197473431668014618616569821848331101116936177943774964431512950280123069828664667130629835296292770288767029687177977663504678916412282499756443012741819844511556794526528246914654829920947198313085860079274211727185381730128893068440473969543979201269132999299549234135874030618121266085400858890739285660074951443229876173355532503063494017093143274933802874343620805657352484092493654004800492299053230034861078409898401420850129513414209762137843194647215894491236059508002880574249539816034191792647121956298838671171598820499925709857640818686808529328746054918602929451343479676148222050408343171649645530369500351953010782876921598506262775770456374522372738274762380626123405303057573626736470355602521455093090826902494404942892138369557795982970243327854336100019933152889700538923133658484655917069416684205731708817123212194179924376470641338235982989821975542582629342109711558319311109596214964087808591032360400727986555985240169659332307545718079813661002394827350538564849387438691089269215280130390496155426616509203177132380631041476826701798777679135977237348531618706248412695330527046338487740956543666943165577448395707712975417151990526838817578808570950967128434781634780336816696332467296650965557300201041943232205195027717767287395106557005201853387354288026687367454100076691211084687982928723366106495258791711209851189085315402517678560451031700166623862093229740467726318727623624061581898854188776167757338616584739896638799251180750570338781069098829749175213013456437886778584523222117460589616780184228602289930287024394095485170914962183587676197864891635805678580729726993709186925677204820291138403733046251516294105864608181971299623524895499197373341871912126318281212471200765020503326219532076589176906501408356040942336051547076787157432665337119076070506329319354254531546728118952159637156762701097142766354569029076304838362147571038680897693237170781307618325287977557874030001516977592289854672707158603460149888058936620717849524289176972665615899309559502970767424653216424225193755469638102350407663332946580636589371803418094479623794740351921084838271930135495388691522237395641350789958105743361751173649566541501816277113848316293102405532513943250652279763118785280128701105140681224191369403625978010989560406262590360445491465149229431378791876461454247357762859813310225703529081647657695063256407112116932876088887828018512510522219501656777339911830338040132136839904954873784799232902074544747705159212192851937175574660819820645763536059949296866729308198845224011030763929662460295780762933038168166944496988322683969290597214140223592060216443089757320528667974832642807201948194326971492324970715518964222567971777796371522541262563612145891922749618828048024247482134661049739595644150761031174340982500947093234079127308614131203907029410678697837022332277027811454151823596848284567209032846202934330567426684623541285878521991922367500030651808950197035667974790193008251087024380645755355901349604150742916855021878184290383950645133113701575148070344230638819375594507535099632616604249844144179566278503783633152708105219451542781644481218811906686450897276911852110957461333162792523801020743876932705178220895977914724965567386485301788422940596669187639745333578319864991916020983142141490444907216280869077515020978824400347046897792401994478064910906918306354093896185559537468499138094793158809452465145181397700840800090744445573316025310028129333177509867078210782513843420639305266319163335918561797327991502435507625240146452752973482865126164928037479212498169478448032553153819494409444121738257290777525992370443855659395223119102955910856570648589479507696188995279250761088964388366939225519344890254513135556867944235226241403359025856116299564081505809947513486515685253050123794160643482010814432751386986974402597394238182707654996163147064271164461266380077333368871680799924200584213155350170167833540737157694345269730520383851387912583072581838588446402141917511186612149684043416544916694739068524273516066690861628461073103453761173647596816521735763000776945863383464404357225481754772359059492616548119783205775561619384437431107658777412671850656562957872474859673859261831442877537036706559178185859463517481013711785944681606385532684940377567511021703932832683248638249656691251675379999613722945092725852492820588387626626122212806237489779043242153708052384006631799025873539721839924051195710120681905359470108904997218752845743824465216779464683387993285105287701734511774800385257184617954472628855985585937136572970468555722166001539871811745354172401793647620367270191715633676643261986584610414729214945945137280866906501631912274679560525433086755385806399727632611030745525995867844886960706006291466629366002180094850955267629772758980353332003968461232462415436528439901507001967892251196765574646271812449073921201787876540586347300177171298341525529950220560799568069960828833032593859242257792633308940024518163856260848599600557774529250630755398652941325131658162107969989969101845598973921316035960840244648674056421755409444508003604287397479970544796664609427952638878139267193671918075085740493466540114262927014814856197473796690021473556680742577928647711610193531330767039672747055846150125729145495502273027628678317596722374138551010388983329285709111191591282649614718347313781003428011800157364578814882575095788887118243783191283282576764506451653512691766206570099647841123266263936781665260122004925957340907276504318582322387521573303837899745068358592971882855853320416075494978199538779318923147974547774969685774466556735833327385848288517648000095213657503812990336727072356985287516257164836625129577428130245300858093716496974712088582639003599567593502580339042749519318181398552297476279080582941540527143188580079212645599117190491877694188163935282311097434170762969825828765820138176305550831881729462734856208412554049426722704602884410477038292553485053047386751798875557007162955612822859802203814609468001836294853906984111519134097724429217616616557076881673794230047352792694442226240252419433660659890258739202313782100186329214262408381726149297163353480030325311010000523879212911756015872403588705930757690095419219486641305493424379819302020554415796930284986295193964015597103911428797295775297492221696836048395923849271270575751722682361383359199973897057778177449375164884999651635696182509014210946271763026214677519917672287576524481283120016037423420391207142493861970194156592763138832802351924000046846729983356371241211762567210000332348155423348224583060690050512495211071891728348084858419129828657070926023934374640882238960924594021920818976877391275955373373414964128177350017144424562291618923851104005305643165935342131841757335223092053652297065378227895156526840195322968551186404753102562631004496005169346886493624113942627676108680294919032267991285578968202237851275936825937329729564866069111171384026756823428817034520030693890646580262044742186939380705943856200303316835503778193203624150543168316033069153231517143480306478113567196268902928872875928842026172306330091027400199021547211750549324379020971916690693614084819923597417098415808038555590099286108806172110548801480020315802498245981041643556807583603689034645624981818962820690789315308057360628519226132986912961557030637982631781082271071960926776578133655628461182851706197988113020354326468863966214322121312278169652115146132096831508980546254332430280524551709564885801157837562032532644384506745182698163633515715501964167518429440596975501012882923917576644686002758074785079143854993731003075712883362183783011572947887537536517509840473312834263849372882391879063285600740172024915475307522739831336270437588040092004646497413897467684580920199129578489848262381111768515567983175996686129279487287425854754372202539199271599338364509529481013881035729694371258229127159987246462069578542244005175390193292474014760298266979424761485208135310019730092093118165847641392109989939563198657153499813603934057743328062986368725805621437786460501897052439354789093090764693839379866463950126707447508730335503021494698861042542459140765005575310555308353238905192582513493329037751561811598156813845780512168870114567010630303546120977995654701950113957223138526643630947626663483843612761276354369488949575930790972881256578112223304499913591663422653637736599406180716222779509783667597986894265350612644607432017574938298805746039530743893449347004378082817097164958333641020664398900486218643417673349705348943679085679554318054135060637801272451768491316488054603533091145566870709524448030657024393710837988562072485132510649668620187679534323750769780646021049031687522359957626414461633153195551013746268319706556630095743621080388072780213765558765738445520586412236058732545187845810853952511525704922449871436050313697870663520884054073044632430702540005540326851084457516212703644977354317342677913340099580811955873902479051644472797863355587018760323046954133654889142427569202269571521747451664795345336458883393619501867955500269492409066161703978236872452608231154875555114059844543509824387176489344524633601704537483674824680460376370064564585876032743434056362820032230924204716507445341538409294892433067394921261842422163621464876136755144678875920529572304095579941354630579340428237633896016819807742897649057555526825959587222171767473780488487338722917606909249066510756009516447104990457794347602883318959078127949301489266956243796662660944314968472108178770803610738249997920486884550904114380635195557525729491450170696715545767787947816118795424406154605575561749525733616895184470585165011715287102637439512123678083232588146511766769603294183218968524098292153182002741284266809282870198576716485320370129677208344777367710683525701141670573659808131802167486044515414028304754276360964820389483962377201315083241503252073423111071343408691275027364445404193970203446088306578818479566695368716705801414971787538953412371131379796071388219719768355480048640739400786087231102299429280701648155598609701348438404912478842730642671935663549434619371976666183597598074758909583488169021827180330422244880976949484539388243146287148322896451836184834770250626395361056945556724197430308450671659792716309113825354099915186437707511588386369964012744471705027149533337256699615755138474568660892250347186196651982592727442819610644535733252226776981144739933521025058860290382733681644939596048897815732279425176459991705461587823588569469793998703763355285558297163816909997181930173994450901003834433954353191095343587385675637998983393562185127806991734328846476006823634047141268646200283434209224206920290407322450539983133546206521767292020185722265712864496478079451299841793756039955309052226149133345189105038645679995789188944876152159963045976433408301187153803376294826271426739960342864206640224526264053703941379285985433903523266946322120095940989703873859354962788048058606561095470899929749136294390170411419660182872543865177341708722184796095902747448018467309821556179653748199711915331562927563854419632385065360047856890038985628449276823602035933773427945386591822292355373244344835577670921319752618420412735805821951943738870827280961126014741894053298060617559416420990221733368191041308529431419435737193727564332472041528553649382631634345553466450711192326453426598054765063277476770092642687456255525710400276827439272158342062809199095070610268799784473027759923807306278281250946722370629235010074783730153747738670676392487705065903678228347674212369736491584202806880762399003176805479159023930427731027523207060653191488999518362230646244912069475662384873868434228925281395493298544095821269622184001918938934497094895758163433304557409589343857473369451601786645251692540372407314975206427092265964830178938564699389661958702126790648287947171304922301910135477425051675224351046178281587074575387601125825162961122656185985985199809058159761247032985352102396531644568409324961794805840811503948431082487160726598546466758961626470756264358320732895632375965659370090239421444401479632243725526910076616995577760314036715903004131300224494449029691113850757766365914173855757853328547298960911373657861655282593184169113716210836451540092732835724634414872233202085329380368111933282246772991294838287211601008740164499684651669645120660370407049777803775998829907440623619456952322249565769069958550052568385540924209956466771412450098266781478418528996093506746159538236523781261073212698313468751794865441898073002552965734674336160451291075720726132425848955382399363699352807450125920054746177767100486195432793021925740427142690330251116419234509151111954417490288596925320042069093839675968176533260620807656352683543271669392173936613202952964896113429701697243924937110186574727646030876792320526377462652814682139361995101267032656271087802843084025178273001960691023446872065091396679262754457515087382001338349495846255930537942881692749536448941186932490198502450196737920343577789868320564480545980175275261937439432561209006714356398498736552256194970932373340447798634643955846890421543540505987848185340615246592052420842222247273645550683147792538291711997100563682608241114540229761248663573484986109217105722120056381624793942120912668585093730158648715842212076453351054820068752455318991022787406111898821387090666324173092989885628481681981064251625802704690571061191135888340737187172059596740895834021721733694252205163686853336613710884473930453147269224758644750087933983299340931962260976501831324065580071641242562915676173005396181019373336508800481235245202284806072659869061978636874987351706219249601181188051373846340788266280508321665168006911704436217071046346197840982789844078037765381470370538890835201220508577722365596280301251711532376371759316915603160246544609707611647300688609892331905898782656247938845030559590490170202104768088998298392756232433240846396776977339415260166735167896491787187023930317248363281799416537871306246184256967351700006850864509046517269298720570939469861383595058012540807085895529068958114111713253381526455867393152283798276146775379223086787735929419100906271728751355701543242891422379719067468068341504798026686750097470604808752099336659317523437053505881218555532305359479936690531804597394708571590622750699882337143644440108042880079560939205417498687765771419135058292557827658306528099599953544317870122034655809754640643791597128387433659219519602798127960826458072144698312055076519716906494784952379733242278744836282115421450050261703640446813243467070129414403058813204341798022545892776095676109021269303080797871188686954857432046672653707912370292399731348145362848445057171106243464994916854795309392328199300548063594640545040344078229577248483730183455899001928503425513455914364978534779508610236716863911207076070973694244437321516533398103810200813038649997310846227750785198105126369631392495476242430219799599896060121928108915442365970572088601333655146934214323388241875411621837963274759626083192568122609109687892019185580079582617447474844669466357085554739659967220638304283265149767237250811973692807032008458353875360846710536098859916747685509955565699222761861343839001530956245075934589751219676397927128483022567224159938151884255003876224317163139865148694128785037749937504356087650096967488166068151045659949468837034453981510125862370290808441905929577135330611561254120544388160016890981586346890322429526961668761240135477961991347226958027419996782188440428694512632824324071052628803525176643263576623456237467798559530068267675669463780850887398631649542113282299285487527212971305181007320373651079269137631001185320376087806243653887003307400963961660866303761174047447379681935015500967924869999230545324533562298085718554263243679661415217816397819094424805118758737212274320945248211534276612937963881367849076564108014248388622053697957130066746171104441243163013414627126628674958540060084415477954719558797893669125172612828019321149286000410476351843357339658045771895742463856164450347244902935876346932152384556463283333845355841886633254699586313480898019988251306558113216869040678385940518522401896408686549010696667370737099067651770910139099837063811819499264826688291531097129298319903722529446546734615128868808524642798304888424290994041423029317447687424145888430802064488641340095082128492286911278072927951968633466209010671466560118439722696734427763751566379702335583235854770651533310775240806581629080218209671977122350143709962618099622843309857458320367548994444983518511390653754179426374696320681181451372012427412134852690167388385877652406174545995402695239033050990002954311941874584569424253732369329242400867137475019480684211572314296083656269011452789545278456651992461854261400060319536307581466509537354420850939689644533169464680581012345954547428163956453683772531568396916448527975906979365192286789345525242446652862719101966143645912718553455802539941967344494485314937133217135395275709852413498258414755137445971509413978703114139431474895423057484329211428721693313705851683640685089069684125717325458081132675482849078900479625670154527401767328306009918221479021782143741154454602969678784853560893361094996950711360811702099965621360625764013557711655096890430532546202087045646115777752999191871624942527426785495547865929231514019551552221767974675712040194375319259950977828494289984169742569098182709499183650476920966412698476479407340204369139258261169903056637208923391709683798036715710855478191292600291941479709582713563109406009534134743920519199120454177685184040114964524330116961400588987121422300325589444991258338098003571752188022669485928583011197815283040607753258556011025137991823605722678725936118981826671354939094175041515785200390318379782244596581962824080940498108947678678733430356703305371486577640072351501428964910008289290327219210785473841055600770603641696152461187741653746233489243242276354669866107584064536620526727898836125665312219322215964134848424970797176350003976348584553166940572590921486728715526435431711202216728320983387308911246389973962222756933433915135397505639407170399917764190447326982782503836507047642108455880927308325738911391075625001657031044470106444754369777217961513555412813392703602417573571689450724771230509940195015100600601827153844715419414212023959719781783454512339761941315852474780745633127385935705906530495169150916774017444076370363202058644947549886874396567908255641305820168240015299402472651151758540908308750976904259658488391276722092480666283556301129859898496035440515985729226177311117559069715508108945676366239793124579675457230698515516544574151657640693860376499347107516014710227752544711845607387157439630047744743491134268418147501834234699996338349799118125265233281629923821268821574467958696832443777798731873068908231145383199290577016962034065343565070047362591870799777525121377884052559540514141809022974715132705930033566626041667960977673062846894553362196109721774857024686200295490188481194269196987966980237960829179525290543609853265362351680960357088741169492357984399811865539043302375209039186846756804234175893872616645128589244059352543231970570517076968029415019270389526641962648797122258762374791867262031528124825494261171932310048399788509190994954682448383871418776531070130887247200965831428783183814670294947316291125972741244470656951393280901124399820850721521505819352775945349103590214908217351143604843936098401679234451426316656643226000631653304205556858979537039085838112433912150829166554642276378997239563591053963596295839554106188348688403338693296671598934575294537389328000572038669981155042664286327160726167770932635428429289341784812017885168293311460394115052499474405112457034227717152144754902683422553154919470991961739187229241028742109382350999049133822586153008116335119198263692256995929579688962366294064729867633130455064739785785010841233270077086760563016101163753886887364160481049509253488715571565737968418033100551927989984444286192456433644095108019975309013852518621559605282222294968891672074274192393522883353737789768852221061688912777113020058258153301780803576501696850874229556164563885276523553068123108985987785641569569971111558646712629783742737878611437481434041070780915655229441567927423413769983064034532221564294586379232508330376397340826652502805566746589442109306326153706439980077085279521210623180546132142633624042053863006444711207470981819415022550529650871632266855495197343192555249973108448817748238295511895060510137261212011328235728271754279429273125949950335513233495905328480898338369507455008651113500611134062273766533309404400755945951510258251766183265659658538137104274312689929234970031947994436521286044653819904003976083057254412614544640042975888936140569611837225855587303482351510038617273879350733075678843685183674428704002269789244256522168684905894399066664240031841593689724090216441648166124634581243763718440130083116058977216420182183895978310562933371307625831987008918702679386037816278432504595183464495838439047050496540833742797423447848331708833992459024760821939283538354768961197007930485686697809629228446142814631102186771218318066595349316442011531069534057649476779546887995825580739968313191839364367851100168230619390731382679110081866420150461495388297239277293178197067322402980831482487470548859031085621726407202328792503352969069574061139880304124437251684805692250364241317033681603616756826297110218557735293516634431355089301357378243977974877137804887552047647765897359624162684152686757711289902966359758869005900949742437153745035729715268820581209648069592834666216309381434899952601849156582046985868592968313252002499398058036099703924624702367610759260652573780292311459015620345957278989963819531528172225090166607226295383802982989952676905224270883929740018944270579264659439713065531164282391291931161038072149854602897125295040566925562480430905176084801612592506891486746442555297258052541046226829028143804987445762257938306537393584496450046853379976765495653613555306880812549924056791804270841271551185055300382537233811879832336778467860415814554772493096091676886188633969342756868454216269099414326790594165566338764833904415275132181809312235420904356723654353057979336940972461641992482506821925683764140346268763208500961065983454477388652524769138399821871168787224559985751248246558255888655149491420083877562148737332053432080828488406210272730009923534819097773717595998681619507193487703747160102493719467400040976278278644456726351017646570785486160872719784521823023720960709628505775041033825587863090734399132727621035116025355884752168868312392465500516037835830360709443266495309704048425773361768690821562862828122984437246747485514917897679060903830473399169531747173022486896118921747318537019043121027442574488119259881775389173766845295148863358377036559287965311095376804581083432972020886280232769715442120818378661307441294797957503052341515042360732246965298463905840606375532070155971565562731649575478874876279141267778487229973313027530748514829003111715667752462832116221822816321414906671438829792034532500054038042719902675977175505530135021902041753354413612524337363956801734037714521873460459878268700705166812435327751456756475129162938143270388049963243612862665392042641894429624911537762077203017758445097690805405094542093651174145256347299419672128914929906175278717620075306229496036806534126561940906264591495275429678410556445126337625638778094732364645937792252839397023309367758514869399036509354819828982336587561651646575222557929986174186866840905182084047754055745976480505700638411126107013168966034912313049997306394880833789884413240048221459017977760641537291726064647602555408678630284354676890061043186258010263870066023552326260454024481464686271343829238354844387807862327949886330294197687678164053497499716796932303117682362659500334013964697645219826309842272691291494099159180800364088825824681027238274608516164833126113530582649207603072268145822531441917427158472704025022359954889208095391013854111700302731878302576194105263518889600611545038970845520079578483492346481720931138398591187333778312917929340296428368212160365680264575705008815337868018435593244932112430842639976997975741571773722262251059528618402075945884492760584678744961975086935800597454423793626501072398353184422529062640906153066825684581205214182138225197107790738423169635699858227709412958828577948365390846402999706905598009579095933503053979071863245969064775517238719801524746651151670266995465051850934023247578352915948227173934330086525236691548858635935451947069491129187398747261591194249802139609718134012035888063247860056370950858975082813753763644550213740175400725355866699453847514711547828215859260224578946364174765484577889796212035117566651730141377949586200803262339064885653037434067675985887726800720465477640002269174558788477249910016323461563372669474112822377604745611557039199348477429819611926204318860785922517011912613826183585787622006358545681773985856698577418925176614864266753739208849922217028077647218178222051718270795522709621039778239695421995732317895505645424557926597844605392386170743851346359335790057678499609326810007785663058053339349718492226139567553558246690631743183868745383670895902072417713550215360165535568298452430157162962870639203028177670900672145530630034806443746624640992322181805113670525072222503263408446613993344542636535938835766244932049261358859603284827884655201217988742539661881694031710333377655660401203602582450736584932743283967001880377417370410684276255805041322877951307530427780115340092965791892726295488445969003817176869125234227370534838860448930560329955642626700902437729969443468289051669531867264274886257231249920289263618188985021269227822178366987159305641721386167283073901246449016193942348716826564160133430651630657241569834482894409358917557725632778164912002852356863928961617982671872232434428216282818441315693100388481165173907068881963608594590537706833941341577863355418956379010056232217059919526245075865519531492325730786853801970261624287137095131530132193991486414063179271573915880367009595426586017350219604717765284392411035774177310041770766746610032332275110458175990451645824952311082758390977478645819963267488508249625748247228919309508213064081742784575564513828112326112409944732034519957198755500480610804846412080403612583527322921543049940720227003993977919862792104204235163698887057350855515844784527602817477777176862693909938173084591048215694037658569538398602172835495500979228981504508000520878728922873290278150459882051041594195849377177752810850132593040513845213781108808172085589984224866832258961496582242237879584605996093126787337712724255805533013308610081583728006789488072972419375490247429501610451000852422227746609902272157315989145978489871927301751356764162342213729626357115662465021820584689349266211235850902119831831874659684020912575478059370073935741423721916127719642334179897218563848630124036995675732703610768721799365151123956557944333798457639891003634271227386704874693965334305354579493929291738017696139187239815161389777671372677207298783672932791077930357950909029371208615600297167689955246297619341031255457223291219665328456591446906160154687323422676513063285365000795840907037233567792728888133453788220125202517358872215395512247974710381557663465016510148752508897905385305053396236855745791311625249478307769385812018477201349428720946676389984097299550579709940093441201200116583822220914422890994525119273825103974128051296763496598948614249240663339710202927005016587333475121494932908967590771461164080489524787547483480888109552304586180023036243519839511157098645293201831790520387109093859635232842826718040324787398531909075306771009137195646967190889545392811979906490069947840690584884885674353628215104078122411574264330778553679434292948359001126779403374410713577165373123128429088011038446721280549050508472944604549746754825930075841017165184530186042946864584397411566803666856655424652695128748931527763466606656513950605155408721906904604654993746113622197487172710593961334957267494209993070116668046270016917563830892736678264800800579500522762065824174152328941352459089998088712887287137402778846842954818901558190470752674569013924506842545136952096925254822335117092083047735254565931292757516399848721781303291815660882638731055954864633320965407790276442828456695834793950875397466707410404950867325555634434504214593163741479333460880300842010482696715559805383294021338419462265324314998049918398375622526277733215693955434898189681367397624373052227599494313913118388071789975302132598962573894034270453436753038569328766272235432579234101867953952957292084027918185394909443315806010763315335444716791866997804836606617836498791052014216796994286868993341658191912646913608543858772781592549888526428182745718798836103254551046664912434020083196043494682739652016216316553979743091925386878635362885745929786886955214165664028453068414626286368939673960727461990004925981106505895878540179070723726682288881359142132134618027565836090181368795876588032819210903667493162867250830223502742794352051966463703181857297827463959812465550407223387108793071286616923704361209183672587241032664439031215720253397855201417045784080745547498650357587380134060681317952443268731326331515534816368295918099968984258510595888713506003488605605575442852903923691094558807643564113448651571587926840174970360390051361064381644439755610852063908101820692879214580307983735193114067644757839889489099402714812685092524378033040442965903852049675613363698786376021257214407080449837258420446850682738924678125171200356338953174618515362456298060199630565770951975676270443113627043451918166961215005621602012381945330638841426068904512079054909677452498698712221807876224238182114931504378421415183294063898638113196593889657560475100829091146866882745930067921444108731759348016262719085969043049101746565976202696458233922209991025469514040623986536280761841263589636483083308016933589833385902980407518331065637699606876819619740188306235637476811490293143336251022932050552533306400728027855561604755799292141767985410878588897044211696838335653649651115641027286172829185928009170765359759352701886157427145488630656975306560393770480280926437464356467824455988137068081471080171757490213779451651376946001359863383438240430246484081226697899143762211710314424905863433333116490839618664350712248737440342844870565745359213036072132974416490051298561377464533407119247619330896141007186205782225176407481618481023695750505511610850154571589140556205017368177084780225200442190510179121459634819603862788369202627259565935035019247225288821073008643637464370478938876179573184653447225778345881753567683042395136398050810249873654749167323170945593821866755981083094470127715839946317326493195340614410771101984228747684234934941014767073105862060108254296872877785843157879008891263110300944600934137611789961440683509442128049255832802252588656745050924752300058573600858430775373708000713846854982788998635166259114578835746162037021465192416591338808156557578110086439459069866999906506749578213018075663413314375211690896459590454493617977349840407017162649031727707884149599944375146521530901658862825252948400915397488928776432090249346848366461332879805285430367847284356027291583890647221353779191242109900768781397049935272436396641010017264191102870686883880336923738168867222428153454118765294260863280829894049167954856584085900932215341737317652021768718412837038688565718895039318054630572405508406939849625147574478780647588521083419417418738730653887769585731334082096534240651330689861298590452346421212857769750605169669457629619234092540960113371471944340218504341148204523992373388885278069839106837067225930394290954857685300736474131190242698009067310177262699128369290473022578207329592335627399280807709498589843114191491002075571697496680742941452548501791508103755879770671509397810855948972369729638686205484051646171854268895714964532899770210583722565786805367845324755330472757081689293597787419807375618098024147376153598317944551178153049721996850987288529832022880210522485932483444094722681656043432439129445671890292757256578147079901631536899066815170356608424058463708354437319693859435465403237985682905323846250864860120003647080139759600199884189769607515791657071363309855427050713128995458515884632723331007878366476557803042625350974836324750781174753952079557347306567016842391725026301857463440013754827658229982101290964244292406079578813284382914943469638889210799555888986621841500789139575150873952896357385950435687044675089275579791911868316445440872304342369211435259917024804234948622623776822345166224838048277389865187039788195432809190189454254449204568278565459868601585216117969825111885801419560715463593110892724030081414851939144959796850541969676404010701469935388081380205293579930551458251854476909125054039108819492074638184077961490745200945258852599633256083853439361121664848090986325576276867524777049161456791418279095906343861457244936130083540653829933202625222986066179760029497718550961985383674034578008542314901980610972630504965796852172965689428304179185999838721563733849794009601386567132729860462816518957614777399708967466011257219500771766060160539031843213681152219987341842064504105199093090003772538996495815239396870272926056449913008940905106999825736718963249894098411593563376791178418831483251213441376558448209250600023766417567613519750921183525204714260092574781602314010568352314811812411676336271695195537638891515665881163015494733155257347151819569625702615271557249702964948920373365182530292407269866195191272415554479861708557229663290214390799821335911425544551831080823615110917730300140795783783910690153095504680024133368203046853893834459712037224429991072931989835736243879616577904311885942584635058923941947600780847090069013777934755831075007045317858233033616773114977650500747870721642226330434701593360619323304638016717341037183519954800480599555313505085335072014363608248839204437610840270711396210405092384658941074511797360998313428566465920969387772443300975902325769860242033019693618367290143007239083869627509664026638944890767654034001309284867885807878823321666465386832667346218401868704871206130521373015685587796106878739677503450153893893638848639835629356937628970397934094526496838152261145633040183187326879790613793428969957719364579173285735607302472606077521854419239807630251319773445817826672095737502951619405883989091230583318643218668881481567262139948958393279560111170842149482241329819545317085652339881561676337256307883575068695441091977726212818306203910412774463421858945533652033004694316546741802795232191008025011267492410292058249487525018822034361233904099656979110731639456929777905494812588958622155235354134660809380649899925265759549391612264843246736880689992583143352558338167253363475993670405296578494571725794694443285132082002409608527631431591655399647848720162529745918006953820074436549879330983114335865821854943099805127968351322082136977415602834410998300036337075851396000774490503975551011745021061779572743996086068207012658361219374463945171923178504049833973407049520696617645123340542655494089045249452240290785182349644968264444138706291393284576563924375124886125068783887713476139702648734032875854987100239568414757910240404758651555606457011204679175118050215157744451819861864293447055999691455007772788012636865370138332990225555103259702409606651466038988384462767604398348969285515232728744583059067104140833929548360303792819907600855799565136523788566438146216047388848625581360102627543555271749652540952941237350202135090406417476753016168344425753165935538199368582993828792917595825898304600760554050365735103592786237286074199225446943333056097358840941553426393471813164996826174407853661985571270980419519215601755869785731482998489908119682354558081333826315593374031401563831601431204613897862284711152140203214271036183858164874495249464763882090740216087065480117502095401151740212581804193077354676466151319177378011413287312034522728083123905752703227980727916757177036643450565237936079104999494121081511221238142414102169180944117328022724880377031637162561048001814614233449392070544226133538905811220442770034197485904761889912961106862167025504112517041854046766174248373939793603130734613701030690288908094716972362594512292425830289940502850265487166460751133238335654449002988082393953408091536917702738972011001574010735166145700570814017442765356369326982494885669707363895592160917224211818429050275459691287936724398429053381002539443096927465659670015139665259285853645883692932759913756789983149910780822505276196673858211425565169091157496871842338903242132987035027970090430405794384826036407215214638137101811105798880767175285750533254557573244281043725017258366710244732892830866557521001607180308442073629878601461405299597728288592972918286421253886280200955521252492931459267109028580052536657267079818256812611155368401971710670873724357214599774168642406225241558266003097612074008134013932614115933958312883418646429741805788205350120339380733805219283144234196143427000331935408379761023363040862445281595536774602346402188113608320257099873789259433652629194272548185472074912393409858721126628149023302666612329999065879202875668479026875900644233239791027036285934155758889173217272717334331544439723071765115935000870423439435507104137222412647433353655999070381738568293536549798178668741435998749360979379434026278835237375047939451120674883495401733697413608150783314956425751130848079815761813840565358038129765562670402070376433362313204176410856846786044075880042627000599084667513037846771925253304932811114028982307399384426862923583672938844473103472013987137312650743844844732086430227357706676855978366582325029492173529898406525544120829201353307676185807505379909384013903164874167819881119166975765490151250363709580829235628577644400069385385039268511006342411903033650196217890818089742909487327063166169442924592448994026559709820545254857381527267992211027628531143726121587817937064668990635546773279293889957469482291889288915790374263046398588854188912672770836312087202324464866090025776715156948702569063690887574526714091051718244364219344989999329967647109703598387723778130317448350088146413967081225495513871049641026607835136826115518109138453987692397096623758172656211173587767676199884618669310991402373940739243139518479296655055888808435246952992042427574509641438505576886640334295367096193013283124455149433987749369694320480810603448723670307621292213981951207018634432229688416019603018445140030835609445496996905118987695248755744126432747097362985620544559991845066602273004187468656349846802428612571017116639327901660448743192245518443958859030342040491654196246391200133649153002804605940110335189603109410383530441027412689686762290002544305942634196474434009670274872763903334777381780322201327140265431484833717266865732733093357763897520621100992459858844014673602363516429738649741151585375939727336325208725150844345398215893925714561684771131977814939276823749855734847208336105466414908606859317541073907669326836271609953979744990830612658177612647200515981200450541890371994337929339004730509719283702600132220173967310986420813051811282655628633627299548402572578666134910391775448112886608668256632857672893490016230984366298804552306936982307799831017225343088321777943160342134804771638852896042496289455918262470264316856270811829278962818975623563682056669716976945223636409588672317391687613698771609774186823310412938590896396982117287984215494788126334691148663770051753669155230462085490448918168347782046102542717443679778251768473687864382883403138828169723307770358095652322958573009639882871015463732132379656012982150085720441830009987268953484408618928016883686701763953398333484544688466597085570307362010833163746940017197323631203683748042694944108030202448680831214263929131146410303311563815880221067949317415995475135218837966950928799169303303252968892093084028414639048234313106494794945281335548860000555911423753139734708998462674657796443368342651327979721910922879844863819991380325860194036065692607455781877479682538177432765087477740805198234755572006687407891940665039897585298260460565483996423486930289000109930740130103126174369719822172146723291202963402028341585296042998330837499791891899786470284821037382994278478169993216487075689151486010656979504181569659926302677022213219351299115617998771826301779366210712182061401426862717931945464531205000062797621368976125939012292353060021010924531148076585588669317723589673268880905771638932953257489748406018645297351280878786461356234284731619709800326077811327504151639621724492435641410362975919582068032735710016042350860141820913439876056654414985487944188616514392195701963043423995553188823969884704264822930184400638450132965348865423288568582349643106875780815056127252828681540688372903227740989917138050317274873795290464520262401681317375357789496930285616164549430560670121129789346639121367591925472423815463313079934121456145090308200503547990915617762583462318881238608283768028080529847556280413358822130282818735866141115542427888213751368537353531550712777489390645447166712261372620594455821489251809585578499374883062548343120664943390347100888985593782219960534541961486793638306992763611899258788155674685174139614390600456883379826692688525306686518596085293260694917453285811833774235333501025445833002904989587112405273568202846922417736356709623351467876821786235669079969212733350531519439524309649808450656316569768591118593945687996313826586443644387630470446136003522100941234226875401384799448048505803700045978527597327739697107292348607117066894542745645466401393529703853430718410905454522464323428720441492854600269105254161230470698326790334063705770692811231752264963534594873366424612740401973665583347244336117940981618855169834984990504007496433919262550139587162359119578799348026878480404804736883902412919412880278363248794463149415042639008947333685790199878032829811352445516209879378607206096961201391306998392520744279654925483777730233307166173857224457384604574057749335701658545725169438785523701739495835770048223266427540868989547402634643968851832170746315832421118616079073858111701364702654646260266747321387932685082971564513969391382379728590118026947911121491278529214898339165288397109983836395413971865387571218492130512227994203698545502952326308159748097816163001295806386473219136069649950070436440295425624421655952487050871371858821311179789653166024837066434475414016606120065989631052782754666096406700882883251546985556671960227042908658470962864529156479817346331722563504219180168118744918012607851821504260917422070690492707037241455689921781416044811432330216472353742169572949996216579877552834437018555578657780009376602640029114235259162222944460318987789004826941208326787714389948328836820638494863449169153407960409929470976521597480862313419466441042798240070868955047698938708243828050584330666192335271687467264621722541808566203366059209109411664682465704199714410969610596956349252433939918551946623689124901274017484835128564353634535347575356294902339314769975789015312200308377878440319145169962811932589408691874930836296607703257619906318715741287783923272617129378977613844303666269843712598186891539424908725593041777956908155532198751892733496091332424484792085618423690609258026243219879508157285045012087532578145848719302486403599209116005249159116228412755300572645625620965770006736908737921847223809522480397093481526585469611862956630270106244035347300677216985336478144520145838655836198444585778304773053369604202372043603160615970398332566825196090110979691577973793331445057982184109660353713333334316884484761789984817295645295976554308782464134078303925157127678218114242403756632476328085244287312581490386671872980687425214538885534773770663498425609029480331394906495992905531773827926671371808445235056301486858237524929311047399921675456791587282968389184850052008496201928628856214832307214701716118124311433804967959540250715073089404525082920842426078056639700841952745764734585153265263248171309093945518371002419288274914463820416345452247945359615134124791224406648948202617594311519213271837676449637752496826227808186298432582490512152336593015395243488003039251095076828051932004086329587596067461022614827178129897410062295744892085664542510882610882173295834530590558638740713152579545791848110141224617755654889271551213112135712224942999257459142610180782669854528976482058762857078968119303743710767807242996159358122619400460337598926756478824152486527724297089584489430749347043894994154932642446091832705922635389934525848297071490932702034684093234868947806476377911071843770834446271135820953745389817289924458524313909286305087893325872658620327288818801376548980158463480011889949967093354426542106970707177566810544888644250994072975729234339424182656253190741472425852088341031395792540279413159873948934481813346482404531833002002393328271829061066148121210266851703058123372121076665255102509589084705725028367598948690293307320940691621305399135892782821103489698445951723865020738098345868317666577451676985478408413322996390061629204912656852582382938636305257971245328157056149984476267406655431833702511696462182745917193549484010750281849022712126996169850648717879993180261391454536448162777317566420237377276823234975595125059220414208418983719458114396861630114136629787001759289234326725863776918141347886869686440927147490310323419793732547755872313995916493627645767138596604354822319245287029850221088405035063771578413323229302888225237418579412734183893497944470846246477888440460624951825336224042669931374676925087672198142494958918684355819075070385034870713563368757523941025296081160826494855106989287392857214187806090047167343412452440738475585209568512608596409161773070393032882642403484516958580792762586167676851547536530409885918931323186984383947931505805971575204904198289981416646703914462959557050458748098258987746510264755019766405449621905139044721788359948946120447661408811907671576931638929812206243983429924215876837526849768145717184133185209247496473598302802310502790347119730214582118110593691622453949702101583841670235823077623668503098303715286032689150533630128505569663132247144764220040688031448598804631716836121664204907518161105959754641698731404316931861571839914399154721607873014992741985226171483617768333685101020000516375861194056083413902583082780033723799268905632311773464454585898063033782902035363668776633980849310118810761607253758778252636929689690000962777269428425498829568510028920672236824233439828809540188049851960376566370261150102863175240065295362657755645853077540440797101025969632797015695594845826448340084821031691203094456199818914517038322224203248296670440074049048691023683695181163861721631792770269825313329113792411761120819502808154156457618803429247347763426578301863740774935364074861543846107759546840204475206588700735600925179446733316487148663319601225400182966133253059938341488472154784332529794951506718628083480401901770492944174101655507322175897225138288094083046033092636506550178706605311070152594922583581619932434038665613533109405972074024909327105628111660325105074013526137801922009712074923560938525562089048637403889996780087179905068267953415864119425704864786446990727083888509952716306413768782242626484605429210788292315699991719581821302688710528199528414240336220321376497056707359860046819074366600520685909348203127243415295855777585720970671817830834797822212214481903480780777175507981117769476364186804221595240581154821472002003129616471573528173406898429584748582117074732777173801120870454057789784876146734883561077866549730348209610573421541711950120083712361073127434012762929722155829439715298151938726130348333872729142198081711238261038388927998806651349715367168560265083836636199427408614355290898567811003302908384958458692088284529153844517431018976989491293254330796609854092912495977065771229833249124616130387429792947536548306127682413595432982836585863152503796500161106794639846890997526671814481842318991722606669631182080107889897104583600547203826767036871590738734212043218882746664171845383938120674132067852423178733243452099106335909204285173652634826614386362983441890098158209170373164247672608442762569462129783198891827320259589642586957420260020052594601691500655731622649862696995770282002641542657921902118201528154560552518849454642182466643911828428215434047174726848258085379588273457217645126461259593162745261071649287871735564878417244510236047512241540158343892481070178541545715435830722408593795009034887919627901658332354290907417692572190947048553559135116137633787239586890220124524351007816757363008934981923574008388005145984970114046336423254818676468164351577258013227047205940913578963558052774470300025633398418596336023356989284438865793714979548213024443702390581209497282728460258964342366228581741253376701219972541636498553899463820965037432040877417590387136424324045126511599967546717386762593435353600972703341456101660874663732763782599307954529421884721753590179708038911289479459915864295304818825778024725374388813483401293368134632662868571206268506305049821493297159850407040860998065969135107408542050182471956535774042097949803308916435898354910575337384107583291545531887377391392773102691426628098572223633091739308273998351000644865130803758733218062215332669751693345035721344250210322169334916645674480142112676647016865726980603368499635962376891002461187113170387403505317978826394495186367373643753918655533342326427484454811541877962506875930421116026517109209846181413857988565812489649972750332872750324642909423216540974287853239676680592639500615852327262822322933035826306366740237067660734092680010083234907867972056671890700645310892012309211404946820631135979997234447976443184896024737963045442278342673831113980013951492068835775479502629094256413339830092741498363613844770789773172879497297802049969946748066957978658046818744253020277102899761376807766832063879285445348018080284850765300767188583525626174114648809944154592178923240554734421959520367246482763393859157292249673074647061035299754345175916422504109214958792956561417445113542639244486393839572528061741902529125189946617707410943212291326454900342229731419918173730417122134200452225390786861718885536299384702989036118193764630860824712914242705138560515088502925764200321077931282275466654367044053280342497846017181679926694769477584244243816905432243352261038679541459989677242569889871051257255303198428931450976397661712829516458956947111619105930177942621362769895761144049627066059466850660801908616514358054209442421915729329131291879868467847000124323586140863546891750811453168686947783273418189846605118043656250956264172848942149838576407332275900449031919188988215575660906235898408717435843933935644124954860367499800925726581571306710158778965247381815885805607331945192988875118022647508691599716001302706099831536875765170260791058944868288649664118523052580999867425651300950308464431748998427784593803423818647988584756543620994844544887588741607771480290922769767899394039307029414191953081659494283405446637733765334941450753857184979659327185155916255782490977260182911651658582816209341461428604148314949385305049477564192289385941660838946159495150331160163024562304211697860575177239194162896781959304264760953110218415409506157169737672583151530460744886633233090837838549234084425851282319425558779230554822338556350880747387737611090287067835465161809520627734978226005490011975638839792682792120674747886082377636184835509445237746150135548293705719052163062650498847627390544325683402108414094117603076569049359282199210364202508585193090761900539360000181846302902482245983145317535538777074522302715916248472726825937513091053363929704936387714118674353257520807160778744327673689135070194956748156809795994603519837429110963529034093639686074739563649350934400269437578522500663796163538445273833537081358311949397919197249267662219685071789898736251824110257513725487259489199095008974057473534989686631557010488335238051655605066290910463473679347606406681379355665110421727822175703359162082880391786715072224184114511398427474734082644068238358843683348612044549896595371985674256938976389879096200194056728746339940610732597767844880974875741108644268048451786713705372341840520384219907275052136810733190761138633540438782063038526077618638725357156102343915644688693527993728878293829247773009386172982330633788334188850414249233935507311368249475501527817740215481441590989126543651679994675062667292243858990584188613975969453488373494029235637043541534621403518658509645059499937342563822838005380295664911843617669367370276577362363569116763451988975197396817186176759060185994330020043835412049575301319346805454348500032269436345587088160244054346793069957258889950678244126765868163559062195160031737343328366691321272631974759868488300843242425910398637162489265864820124766977371869776872746714391675809267892882388298283075863054486963046367045638073945131303972345926595333981320614845735048156442572528579014254580259592500434558758452121517406376995254288725548903814781732066682033269897512423850873078861947843834387054330042596624025862330560273588685306107249052371230142834591031221293021232809486843426560353848621126900229585272963634808045966598019886686745924421324166040325325854996573165757709998537209130357716151690039055819335320791346672564547548362026484201249361847023819110491179805927198610854988910592431769122792717926746081417760945323800354825351568067330677883680105440617925410772606613325175847823936387687423783647497791568084869491724475434643769378806597603777273457134088140280142808356305319554207811255246195725603133482334205683783539818695755907725288777303296972813739122655954301312558817773825212328186989519772823597632558294705099103528258473532166503798424762098576522034366108326298582282650003045469711689118821459812263785922693954176730547566078150772048317616724620125349338548230622638789221778614756935103561939854709914445925566332746570168836310274709177584456910655570060998536828222315432834712998779901691985039629172697868556016328528420051269953483134496436620733389897591255340239773661494713346175744124223454401067038680023145700871659225606407789257322768382189313266970388176357980750762374087768016729720055925291802652116558434225309938855580494758610438066901129594083765758975901407982799710533846988986976505799264696399845016774681354264180391752896195064584347716437200754734845389852809280803015462858387107509028880723120145659681656781671913915752188894610945113098316831096475866201027264793772210751306670158438161941299822345866220780643147498253232756705341310664811365202191421081337041239733778980375116693682166473092219378588153381292860171309423538937497494714633715573623377108844741546337356730165016688516807351413259055941685356931485042576362685690874469452485945431760194663555065902381852187109524417609855708447666612191078542526458931506745111683713720426319859870030685240282734595187213873814659780068259486206107397507645855207341841205863177834714437063420617098768052858069113946481777746915873701749731092220128502375589285369841645019493597500092073332578358819024084708566101013175039534876089390778090258505441520207299476911564599948385929660781741857827761132755417120208223698219622462445090185518577743293149943818220137053871689408999650561166284737133081724791611667689668967758565871175146263469026776936381487771065547926409290912274582920941970898392863857045548948045012219295944298356869722877863687839930241202666856926050379616552565692034871591765556536053453621735077625798348692650836601444819751795004061549243948157300611263703972025649504108195970312106937262601102291998809429049341625659466685098780991231017716546442442831247600104840990839029395760705564546913245712448716095377000433775015886941404485828458342321922498974798731057776597906374274436433023088629936022728600149814516149824888590592419428702399965671596130653465394462310882774897948941961161500131222588730217673137909500542312747285793168054944469093668834499636665913447695498987770946606840170968135830618393045610578565951447715692369773402327178226497088425871651912565947582054074339468452544467878174390346209260666895572681726576638197266046909059281235911814238395297488992247005363069551294515147362991314790695494608159673590074725769875057994166555775148035502191338664249014750961105704843508617955061208795299490624613939455062137076528396607710913883266508468208342209533761046535650834241192638982820633890316143308941772603508048650298628747566477845991408865723783268192272014333964380231141966580011817899003971385848783708602919438519797898028326451589351062583886309614157745020434726781985439165577683942999842692350806423269620184512293112767639232534766682962098055150270093031602548932310293307955822513467111883999114963457201168859609687262823371021527671254180375327307130313579211137082873655853664983764720765281506783743479968969526527815954958308839544177797574994838942935274870093801889212448096024094861998627854052346556057421010194125982242604656785114822793606615903075983405703265874004149289418235181096769963639755577324728928659929360215548418998410603685170694467156400077188909789525842924538614983959094058912868799468638866692368188279885735914031503046782593454241376511709368588317013415764407550750344649137623393829340073556335201183234350276654469273493543672331598798573874694519327154002953819027539728166255648001438498003035665144444854750126076118420440078305119984378438386041323971669840114522622957610473190447116162100528244081968288610363311973398043787028255773610352841745522744806774449379298388294265830824879390012713278734695559291134628478163103289331121049443335862980929647551389246307549874774199633617926266471523271701683660899250735658608516104953545524511716950517021424368524561867157493537462891292669243654687539143519515254069913178427924883572632444861455198769347162532608198363776169539336359837455820862332990192835351258634291088622176971816560553868463963638986299051290214197705631806165968765742779196310783119031623636912845698046849506648147681928361768916822541021176682824034763436077530676689228878594321564336605742106379712207818892221540830040697526540784172574111008451754969820245489008682762085106418371785584806884123514490882723454957777478443365980802230038141978112204806542079239568002739960132320649723534131932599979913998222931477335733107087221404132640726537725029620284853459618354030454481349683517788054925886895326360704376276885338899554113070379730950467700061035668112572517300166092791943207789520668804614855913286207817553391807290134202776926424039564158846491673901841614221027081940242397960748353350632540862088220452809106127049147899710915361597036914713695336292385821544344067247414064726744244992374648984405801055139875235813989857179592188338365676922037998823610065701873546120499063002922636940588701394216854890762704862157389533898387309165749710766724334663316754469098438528446623723104469956350848552785654231076605954543139656542896427702764232801864509786361869685342908584458593214184360320691841635624073784187486992776511862639369929995627334628234411771350811317973237007078497981167550871420349988215798148053443919359499643736967962848783176239724302622029383219702583384437872289586305475743310129271451234545174047690722901694282076299896662793379275306321313718337965699001571580368562013198404796459854144712280374209368281538992467317642681742935132340670087187902438835222444654643810756339333835401360486008053085897769899700841981366910495985430207974730765642278224295701011402791238036846405566658897956028534652664962256271012885800515584703700605086068168728247958033811427247193270689206821782266495615369588453986273173896453449984817833907659691415742049728982334628478991194737331498082285177297599828275341146180176723042329096167140344994449895083046883008065866154092329659613877130518015536285694526004558575945899734688634759120470656619140461391659579630379854032565946091564139274092841082161246521657353787839142996557890061303006038714057463719158289256786375724228221500050796837423614559948337846428313657739535620439173542189481782150520423482648959259290519632942651952403656561206058581862462667902532092043842833195050684525787271006796878437709120591134238955909670011042268629317452319591337391167583274691838315861028599784981988233183020727217844249782179909866403148722220316745916087703446751265217434678221619311780812104147942061289904172635349199897529110177365386759254916082993318891945087444577696025929470514244980732433881172350222577031108043712219782114890721962867764198053923519010287957132281737478405491216473023576554539857667321141429180977606796686777436861073253386071323543940766419950114445405744651045147491880782154759307266961976361711748503509589019947655917894192792680701860853113310617075980530687350702559180573227705671209669919581304871048200213430539588067376034785351730524275012894830582920249834906311173374605781251827644018354169181891381618417792601210503037154337266058461683847711212257140107930589152592132927727316537594847635306461754485287048496802245269554758759230597018201684058527686226973339249637063626993483955402161004220048195583592152848467162701928183974114454380156506759540169788643845258755040339427570223559809649841991050370097324634939130441022930115582595941670013408398804120629194078331928360201665424371801405968573604374675706499866712462062498221938708968739877913384753633755848465899994524539606497912315270682304941004228876533310479035555392314208754230324322416482581221378326978478194951372465685103320846030984647557944146231343640493758304222598762990835993331240222091858235546280116986114559359439922503956294239754369305422939583352425104877383688589378260016502661303855207340970290638679580194191410713270281616048922603174153779259332768659662178190874383672027709820533012426566306864640149683262750366527298783531929702218039260379145329332303705473109128338903142298429457392321376289367957572470102811221629207810040208835959134123769442423565931535011768391867020328477682872406601101260236038941793982378178887163639633004891288660077605768773241164041622522696397787931694829958331163156197961927140047334034189560755942471540684494860649728943553962323462484411406793754367496161226000736990319866632182555335186595275425847551131540823982196601279291845939450292492948383430901519722742884841325050131159059208954884551999225133858252026024726465855994708010293028961414967370476180284872636079822959277446276325909256521058419972860436802439187955098462537104979796857097303852599547720947432303802232105468287498879202436172266460413213388834915910584743229793138235981403773012414742723393974135704983402517241846399213775513200529032704170146992953089683408422328293602035688701934166237809324415376998320675737314478554642269397887039580647497421703470142764586782732091246280232952193433153737475017986048824603135384269521049919412205339019654489722562862676323013798935042795640720024810816647275272497794002676882564296768587948834476781672229409841267760988630023835961043092375677568952461078655144082528792144964241423907579472701154422545543259195242305608721694578060906602886805605201372143008309978449885476942485966004629347279630086669280419859296167178776546096844047544664061741584307099536737506792811574326442230082881327847523875038201027493036849097656745284513198112240704726895155656396923933791899779130618566603176238473074031826800027837649661311728516394647513012406279046245302254047569586464769951316128449085019108071552984416134267827959693060607182902178154617576242076921438938353743461456760523394873572028060941581041330281281930442319368797827885558875004507694637864406435823441378117015112279980582720620544087261422431586892507373088510260095442206431046091920883560271812258125148622188407664853398426907263062617234106583800889854139535928710772777349198180166300326149434038470118471817078095649496688918457447304212864029014776384156715765562160751556684010049945558366982761675137026421109403850751778117120073987239014662093112751976678867249849571741125427894625037004938518529590786036056618407969605482012958756585962405426423225562385143849392533545215531034064123107205821863615338387285427477771313826193951938534641489593432851846646005547223699026053412169124316675825167324720927112857299844766913109332652333723448000056626205758339047080739025086324750169628729635564483628003899746565278883368636115085315727101918412486560108797060001530934051259378435827039009791778458207299522610261060716021534907101015056846402598040004142267144096039502936953644179033887262232775168608886763983663565704139273974791030959939355917521253814152367011531730132188012917719330633488897005956448134709535450674544893336833059550922611721025242928771896744891140629982086650691847069388406682111698842371354552409522176650112509207682149405483113992445377687426916508905503735330285698122417021824645892065860132687239242781936620987645437558488383429751015896644480526595419940328932258824012745720713679206651990453137116436262645700608067905935071363443597564564316543807037258792377849520264478355066703197510023481591941799287056312473716222052757483818649293418638516692188522570387966665898835356816683500934360542331465321144750111345428194992592626856719237935158616781708146408550327529967905269170923496870326010122284911763526205825659340137679265464768742390469300678831096749713003642351330657654122340540527007221053696436222671918802187802471687707365064109604063403260331288964803619144239442773278923464976045238868201762345410514652065054772414014602475749752397550936341433899337064306404798004069836613416065114393310594310159675607245101479184948687052942311248115800983887493090894012973961246011560624336046861911598144966078975977198233840180245609392789965779244401554867065509673914851581815636792720590936621013578104386553060699855826511245938776169317850484503896858200897919640082050140619742774688030141284137049619467008293422788509137587569136830331279654956549240670705594201893876796281013972535350572249866461047098762813787321876777545038524932248201694107861200940529562921922167676690105561192408891629955603296368998964230956330168040783572648425699862514293616738990433429640515558439592102795499595879999466937077850117166738731116780164405448840051980984708095709310707324788402991857143196605463669457884899257774931096596424175925399003022413498573204635461237082785616978194560909910645225283530467791764698899286353057277570892610142055666580567052098988462596496663025229746536019891930291147177720529271650293213863108759096810600591042624923765132236204080588263569442611666376759931709369291558512287052494640104735271554533951530628469344969789186726277915100679074393869853358947524627037896239967278784295389889090623997623503097806397419988665017727303738591521639715498617091535874915354778364030217582591226516439289903280715939982886063631919852575965453536284583004181340747584379436758090577287705525230141716857243756314649762742693776535988118756184188657267806966360329061376674405742326362021812924961212099759684892030876898735713170813245690546986478722994701387027308575660911633724709456272453629643580322328060060446557810542058114534207919295255017905039285727222448866355997895324533796840362263637809795153913150173887707991959075008339841122518399256835181850193677940030424838055222775679193828766532738431152642325195756368311865940512867924199569115713281241898175995900726529224701269243944230722211739578568259633336951149435857700074346171019197693329901490357366525322340161848335943716611470127591382835862224129873916216908947574728364136184584621649918114545039589875146580569276574824239568046246763437564292924394298833501081792595407271376635342498695691086794633272260525053267033457503427680812822745883904746690804452784309602455963046133832879818358539765708791197114667061299970275902242992593043664399669621155149516958051025990090885032124713693541811164652790359619992785131229305249995783789482393721802538888996916870744108574522445145583074405256884593932550626686331213283964339445682458537479643060847617414856469130860785363938581749270411226743958058766644863163507757627492692694308307761010033433451535631227032069919361844306770531447955740712301232269984214212463250197148183686991272384533095588132184179077506843068211887694888368500925054381899121586267593740563710824261835046570318343912798390941635963774839750399197169158305497489630134340311179687985837885929495487675937166977255172589024694680868326878173889281826770947884617304764377476806593898702610269266884777636409854351694667954633502142157390497588942909742869380329484910530799616627471453833255214225319850166352730477244561415150226794291176981971348804260898488061368002269267983354111165758628128614456711118396716239830874316125360347195201170774275005421632814399258445825564361033560418739397085789581824535508393173818710444880151002711362746627325900643898660415835666699736308582793121534787061518201771761594996072715007401869788316012367987696157986713081120490110485833632102023824122163371508017424509993997609163340389219140937159980796037570568993016058567188640566835229410182850013805440175610838291136573971196355946267010611341974418393489758046684401014228351311425170008365836815747190300812756368643420151899433364209988887892571461794893577822877165445782620316822220144395560544877221198768454757626776536504833938408297600163203826371874358623380924292661651236022800798581680716293803235209786615637426030186454643540204314120396695445263131341934152048646635659463413839989396496391716397202971929713787288575137937271182699440736414349007453253839589526287357511805986919059999759880744220095884056817402179783507462019151845635153274036801820755944380730511328262070971915412101152881841419426915906102828120471385841658026481976672732623240151920661017053543523274782276554077319081065898722653080996049671860080634871068400034561612347033299147297382100528806370208926273432571875847597429442979713741256940398358974335002504712548549093704200208885238836522065601711252920240009252184479467241931145980917926316466624146973087319157789739095760949989823953595014039690610172250754393157271086742616927822226938296974506258500964461855596348573791343390650753370620168880496572686175092013802583437978386352340636235768320783459350112246951231325745497098123568518630702693112770665904616570933954041221920190759704299608722766702029503491138907166078248218827328398476047887703660406677761884001261059672931647892374437695472182142379582778902299161033931585821629190847637587373504668273843359193945790026347615327719033890139048753635904514294683125906442084813249423906269131883046725897155323429977323486584753031790892917883330899060465766971102652009089576564774427122399567498577861853096008482503381682128464290780204915397397601515990741753416696904913653618055084981882143093032245263413470681285322436693363248179897603885809578614450100093011553694416983750431935517806777395354654143876207805259179684001029850028155840845437764627823997362592032002195583725896320748031226611879058005511047104789675177676581435060418884732817087931363742544562767558014358739660266570165792476815207857675389417288541415237864133995340349012910976284891486663609715522113920654554659170702707115296768571153782494182393459374854643420814170951176823937729578641793276869303395649116179252218711581388650128620021236916216590377298134905706376800670322258834657137322873855954771360326999331395656660445437264584245595107416969488464389471136438195542584221772240522670269097267881436420910786078450888245340617988327335955925034379497459358673515397225506989398012576830468423189385750862145659147601056749675910579734517248382229531310275593638160047352899772465180398364087449706441595192919034057310373645680566561894975736076051026911370871968975435851128972265887540119010246308556250663812456294737421182021168394917831922090048247929754051023863176191666547576904557570286090092393049091512834600206014273792642348627741566063687965115758588627139905715036424453601462111968460454575949297559928696641196085887994987832267484876944646204105975271433870739189050892749713698353105633350970101468456864334448249845049777586118786957158883088190681294226546155472073130074559596159956015630288248368910989776186468319399415283199806530210519635411167077173317654712820153024910770305423181408583971644296248989831514745655167231969899222528448131158435625064286114164219020148125577800420532975063951136405490291424098167309287874602033274786394341991092823736546992486987312045880003308458200536370773369214954906798934532281612045396627808192041081444529742549713469545363112808625401428898740125394039616676780834230525030751781505413458740387976675992269715348756632515781840029648652795746906514324413770849905923773487838637567429919254591948351628325770090635335585240634053127488122223900552667379837622051008140495853341507281782115585798639520013841028971747433738087631008483932400783855580944065582145320314442176076637109957738991126171430793535991115592422505661118472559825038180258264561201726986448531683462331935052705965262804455003703447091940823932793161622508258361453249641346316991245375055407478227175747296796049933345825849301913202811871566074210060895596412261662885887154691936678657768761305651108028958138459051601118135166492801303255536821975249330500280288630278153617593421393999676615792013292318103546994192850568736164976792766160601096235552120838139183989751499863859690208072017457794860775655712198405907717377980146724880858312142159595231014701411062027943816539388613645524988804940868120800929041700146866271129591993439318317371713450510251121068717391050259412289990955871865223155865565945054918859113810012125899952172237714456372191952949081999322763503434946432132893561159500085890065717881783863544963322309758128998589720024606680658031473756499087302419658692453230172328781075582280615217873490308088554889148124814405128056437702541950938370638653052850908581359412093321125391240975606774415529206272208958955958242905804313021010371821381754131044618205712376006117101258287380830386994539389371776915310327330726580315446881841123215516605845766071227582720654632206830458566549261246612983343654601369664453583464438853760450033357726251215170859386712105461852529698165049842149342245203061467159156851643084071998292918991280976460738663326855172987608907070748532713643242347883543863158067761498697550371315666288806819341447677272213153719822897580544770167020554417102428485080801238001800075542528848448284411358928935123507687501881022522300117496037703624400789904994953102448605401224427974206209328101837360333764555082180103730403021872437794826367024141626377969526580982168611032938322593874961935489629771257528005492624151110111257406092741259566527420192426212539715733974688792436080522314522696384253824585296105881737616285577063862223830472929853518887340972044618731698377370288159032770732984278363335942951526858570329244603165314768611939305171191989297819902660539498399804890226579414278541502251435100985694781958853838272804005068229713100783597809945883344883491942012429159883771718570769281098430198603419605086712750758807252666534972389120768857541245359111907070248758241447754966053645004660258079693364064047213675912175403441226287702551645537910712315941381304771960106856059257225475919853118609317414933919769477276641748468589570521017266052533879223578473822316821323242527426451983679321707342143306611586835073356300026918050770095819386459088797409260756228423679996712552167937788560886438781982285364279126043710424791186776514937756623548452927947310338962419499971152637504786119629942356665113249150233614645133083746976013288897272535293310632647269399083718421400820673035771095049568384716805682861780291654301456063339598129035796452834425140313784981240897270838570521661589568882780217395916113860760344495918333042313045671902069819683320007930354314854402735717253703041399864716464629186772772175039483307150397938056397394850631526401025675019684978429335332933662688789302840062812422848493760519511506310439378595062960126665546221768372657344503496255474693782231170941263498389046624963188559471702822981777758784320293706145336005847304623559104098482749847802409228312329114015328216032974088905244979032023861816181490529224789642076346719875573825445513994468457214858338244288510019516286913405589177449192497902183327896923926814220738951389002115079555441943483031889935506171984057036554094643482263744432201813565259375710899155942030496624835105190468449474163697076054770733019643059935843352601704727255158027903668352823653751776267735132595785239665527842838509689726337781290775004994535860867149543678937247611217357406155633097149506771596323453505691980768270050977843476020734838547625369822058758748899394691225012225379655384576859938020552050783532992107042817858566122732503868751866920604302428944832667036825234587271272671098012761041440077165176552802382597393002929466407231839381770361999324616347308944351889447815428823517636343287935360466875547180203273848841899874187285798826156790108838008964076480326344333334706747378941448759907323914283176318963959792564970070774262868716837581614871941218502399812108478104774271198657968573880581698819285173231627874268240530803363773048356185856598324849218605833934522808982288855386312870008698754518690361574919867527320270402735935952509964672558998255709304970765793335412435331832020520099658816447042545108742386470235843810450422686015141468700764249543684904391478314748501040610092347493598741928177493758525880708538847163308708008557508134772562621336634663724616992206688119264454906808643899944406013474101587275996777803444998917759766428369996789189043390831800808726308921709849805476095560140257255303758497968028985575634905109443380408867331436213211688427342779359117771453943769147207942814966799867108699662502425942942867405347946627365534741206303941130451762554542481440951925145627940662568716001332817755346325320050812396863916795806115609677834838234771458423318410478061246113658211015685522474896236958189304308231246892321271701069241980435243206915193673444513625266541744943270021680758552066806475419099506567750995274082218391655976647356829106474965734895143423878083726458404895163048132277997429091724042193819867255110253647569641946289738847614617749245825779792294819510868294932980684708423255238120384019434199425675369803655311361646346807048930189274871075918035576812996517453797896245052929435402979832857987954204042662006542438841391364797018128514862999114120495107716814587756894863281873104165618880561120237427114216844509172982532606328975167219000093818776913460957967376860186242388922866026447907369294219006803521104730217137963283496233063114786292241665317659538454817269347809121777036781368709048933524792522658012581252797753412870707605542712589234969296089165710625548297680762798144313576229028999264583093154885692177031800848737470925524925600440138977685769539947574073637396909763906864324001332312989074308457792695017834845714193485379726292994680052093549955499749497349645853590547640051505832393962760041367537320722552344649524374119156727011696717431850084205398410337683276343180656891450778707005006674378115212106342751106768931130096436272946350421312428353845510704923626032785761086491803964977134765455790701320069752074313454490921914291913457675671019443150843142491316819912529584975091376402344065447057257277001385223206599022565171091808467220302583217597837841115199155153360262665366709725240168869776417703408341934852790006559191052880649356791455730121338101152527833422791786330390731812260065796188482955547267978004563048891210337569938198396037902058189090560361619739236683277662992218122240452847359894170265231694400980185452487641103598672633327409015757696003640098712619062463954680471024336996466754382753322847986681796628837087717708141190812369796327007544906850752443853673419118277266140839422157821045276326166550503179697478014122627523100334161523450317028155555899307141001646436750241532852003748680035950830995895294633207922702775974244870884769437200668688411903537553022843690974476772225191551608829119689955207218252341929111334712225776385528330240441161689476416490058276492758388285632819528044649888585129890131694164700746160794953240730799493639341276978833261753438534573681309049511942880869452261486519804364963376109058368843645658247631647335602607293550272530508876283885657393158634701170431073039099902014344720955873612911627764224329882136702568712773540010116442761818587590045912798463770923578106575417366807238104300331045710924294679510762640842196996210973557634996843394148011910303565593075178176421078567544811171890024950600227057636700181152907158265229779676392703000667662029187034624802063409474701239935127530624848025588537424244752314007157271477694015668597263178594633923985998287390244872883831941255992308446507616041046935661394989962865160264788586651835582624851780235936688385136795145710218315873127448137498307645247050260286508048667599676438204883752654586206351540635735506937861543421111407258447505303315395295361750538976792339144630712304130541228143975936479885644422853160787100152982238245340246204082299303171650202722599613696928789006140059806642187326245506931835827045234066380756999671887124861714847254125627335502253491926455464180421661111064813332167425946731176599641774113069972012344931367427888345825214720352655440574094129607969037167802096678638381619769004781144250594134645833542103135642034666612395586748771169625494950102336486806694948339125285009565160296599521481891921445772504343958344918635157308866117610546148582869567132134684114569365837429265228567620165819079935182848599140625236229597123130899018979948411751608400775251050120368024352849262607551767273824042584042762220793044545913771559643963265168831578291666475397747138957389419149894645911872227287265670350765353351166140831219603762802159006175343251196544872763203341447439177239318318478285110991746615247356840316776312335808144492982471939417485782964209394291636264547515570159927452684556922786121787062628418542338990685401317966331763519879936893536122421610380539220622274410470122155209733120696200332832656983446467852682672592853550987234861986106797916557016856566979914677482167436279002691853091404761863975380122647795032209237481844937345539880088731230208193525728897695504197057289414282262639871472774665771972347182495665323513572863272034239657307808183861780777778906308810292082408055411186956272023212461978653540216552192982369088761364958525247106638147378103961352804023703504375075506822564614067569782827107165873997364490777850980440092224239731375085508670345463798034992808725924131602573250565361487662976575248322430375358619179479838064280058549443951982015426189638136393973743424771744487555494205649071582049779621977888726380561809251391653002973888772036731974772813915549516224559128772802261042111375772444457259330974028172849006010442265105038871939606191264015434004597579774281212521416092342190718931117440257909195092964011154371683999141803373854198606441332266436870940330987095008213873960454797846867996843275387683186228144543188105437045706072119683322788121498795178647017783415532703490193227048404331598699192412245696544319971458271330800794048990984094566607950640695955632322546402695582303713179998328176435888313412392405950778296609927945747153859495973269867752253758920163349881010258743776012722063879926457149655786798681963733487393872502584236893940815080837443840544315860740246443311407763371560000028963197570629426894790389309268668702665731799619668675734805855888156555168776092500198737162558571813956434340113331727777754610048017792193309899096662262085340914403385141216975369249631973417584607739120254247484746421577184143067084567542382218858081315185011813640878536205785718161906106035838511739431847085647484200940121293200253075928137889387559678865641465347783270400905864280870103924657543029877593316949543086145223745786141993156710382803733279072294718268071338122331273139372511905371379417030181315734141589205145386510988630904840734968770866576516933109475385712752520891769700682017310892335079137477067732784847131186620351408733294499388407015498577827595405659388265207933529551701240859427565901493092629949553044307785065432577751230302382642533290770623253817569030454939629462192082626537463930390395909551138400921653233826637332188104405840986206263276235828017908351805769683841926741948452368580444275080064749359176816950012757861336928179237521501254891164654908844224209716288328866429624311842884796801502945592958666930869440775358700232666328585069878596313605391860865214620347408839365374566946960087955157076447672377439412251854757766138561373484743555632368610910879348700039184760287468358889112108147565833521707339682610967345948236704002548840642630052444376675589577641607882769913083256954486523893509031710398698863430497402907328677582622428533173387838042856230465915873484803629488531201736465222470482513798406282714400518611891276978330344575492854673121624298517868380441330941051615256961537439489765256852625635957260630392452281238019576548825688805154315450672528902968045748162592155957210993152591198525563512607142741392341863657294247268277584580413853787060593559806224527955546745015553483285952066425291935992553945233071964937705481685326882273559692310284987307591102843322401442154183438208872521921254366467160586469464757342411877015610886089198223442148580589858537973204182054088201256257637597129798913346369877569323059793808126234388526278004486016842959316253677069998288138908718236820188402091361235022097778676537494934619827524070484019079629544295560561270153992233768810377314764903247173156595984089256667762376463739335734939370850509956270089578013496213537573037264706334413062020278722399372750541819356179356262665832643609713291396347123053212671988952817545533161986099793821062936529117777618059843187667025984114527780098801010009760721043134775632732776159273323763348069274902846112131072463514723617368385621525401425109548730385427880641940974255785173305111883801298539683396864732131684792310836749627797631009215831634613355907957619787723184154042716430489677585625214638596456296873208725154762685303125647894532218041685061482797045785802728670485344992919892965346263226604665182661928879167431615784224954614005546530242005686380918953973685777863063877102428355830008331014353186660892366733122440552703204935031198032522926000081050416782260266183019656243307849786567524058386989563295811928596082407132701143182523197905711335321854576631107524920752999061108891624145061535407772891128881065873850590062683492483936916044518078488800065989071575267708903621480050691057961773125342672087534254719898793006175248969218488231397541029463538642643169787110627461715534997918108961570379165603482966505904090293387573550407446762994635919977445484444079191366282417220493834970390291487795074491456325821861711944624693235003478129540328824967979094087192304840142917746564010292575127532468972860348475854343119112114923800097301734295245348641497724736223813643157841664155579240037684756980891278817387015750094078406798312663361983099019731487361525673631641391931820537580481743099449208407051708931604261634080792237584125973771710730849103541649576312184754496934191320260252453542504053321801530260960387370715861023617436940858039383314172569548074332599643874949587097665957811890821492133499126849147458712692727272123991766033273352241915555308915139532096093508790066548225272868782364907992448699437438125280906463953522960042775027421745155057277499555598466137225969163231886723100153026443311683821216104880536319094335069513893620796333892066628236323088897992609461360745523490618923936215836702395171619106282743023297409503046540070449463550258566139353714339795174352624596507892930071985574222367837575844946321075052868518894041441715968110181499288572516993180387372897022880444609769619887385913068388973355165718394097634159686352257581238390699201334716117773681202515992060088913663531745174432720600072003423730482829095320103078159265965008032275646973971030630481764875492913937413331246668652176711466181606547588909373667328433077786368346375711175959823674367365488674461852427441367626901037896385308135133650812507787981895063933764004904633948433562359157334281407954678211129248220102731641035492777262873564272021576156859792052980100440453035482882459000699226649327968922703942546542865332639547721986329874273243718250036206184637422490783003361751695964867182928552839865800283049506108362894273089297243976464866443924809731873625647998336097930348327107541179074940949295548743147788914148339915531573227419350592432641593555119639249213021319053053761323849323871306547342392379949357086348870553181518264178511135507568707275868354226911039025019938028017056327052306659677339322017886092930668248879151820145902522325913330780704569106387321670619578867467146685287176757874018697801844277964782995893085130980006055594562030517024762713248875835610968579011561613630425727060165496149968997426581590688558971384949092305420035138837562951028363783046119974369406137743514612882829988379226142861653193892641945681460276860768954537498845428506881341909365768419831914674371058057286266255812076480957148016557681901056056633806414092570873655711612386917567069677792861214043224447958586037414328865655144838479741927943233416716863556822694899758459588156573819203922348753804310955236034116824588886833371692611965659336423363460030203550973105887282953731628275768724702537848741763937735646363478689443802706619460918357042393295314423630702735145681821229437042673530983117048106440345941210069948506554467465054091600720387437994457128635735311749994241526476986403577795479013558723616725116951925036458019423092116210396782495432799097210491692173643979313762045207692024368716627584013398653333333527838821932128039161739169960000891585739441591465866127877006830164039979332604292060960653237497893188852838039598055855414416559564760544834824380193423005510445078062242330681801422299828247150875163126558688471154690240895070231020246282834131303851201485358522227116774327595057459936714808109394151956012484725239140502204395347552816212907931127469833716088528175720563997071422337432417872755245397271161899055544978542937368166629764066611862706032311468544930294428606275991773274434213481583469271153239174986981403540829930068720561255498883527024508963923334445354758955483061038679393531421701298387724720798102338128784358184013287224212324212819290093600948250081082113897024540924863135911857933231266612415439881749823504936229021686406022614028597661065727936168485892122943107828062578526888254302204850950735124210486308687070430649146561589906266957524488299702480354730591428181499617485897337575560193496263706441273271030634875285661787298248294282725561370329002261527172772951180492295145152332190143052547705870122423943281200985421783565720175907570762768951673140323874352383536785886346648914804893969729992933775937710978803718089012569637473096748645469234169023666808313368830530150631069329156133311950812874866354190534849747607627048134538228647351827835024609433259644932243254266574770031495784474232757855126244106073413511223324412932833955372578693307175927842964015574249178587507314152220650358605606639119758452122752861901386400162051682536777538246206333045192329963711248860868081767421472838266167550404004128617509049562906434276839693428808568842584261555608952633457578820507276418457302902451912968485601995609736401571937091378505487506824461846075807898843577719816852550538346527409030903068119136664071024720676892704257370530945042357908791686841360816455673025490233532069548653368694585947812945994151901864440183707279374333183520531890598214433194526074578891264426835744839901454988636207587795202292203151786873111779806863592679567306034315737821608476471441718608653851099522017317252482154620330094181110097391078644238868087734292303874157072176939552631292720199986857071130251366299346052516889747653520796816895402015782245354024760609951579451488506265038453598641207915327003189711034139119434399058881870701360855850213814038416283985816267813417681681532078324901845617800183502578494293551126665994264202784130019168763927961452478815007373668352871535728640120783124164766660737184879112745781059106409270391717800525976920093729596025344664605061569650346826134546061361034548680361535105294527832061890373568942615097200855400756965708148694500199475316157372979862960710424431715171166569944098086133922867746006172176889976190582525017913221016262703954161477752171361071462121599109637514126774647416094581582831006978163513317222545106727806716486961659159077326822296478405543050722447258000702056101274143436329492620333322785752138516399963470838519027234306176970361639800776372610710385375501951251067591087409301775811514937452003906822378043834146272046236548972694850532621470073212487237326735838982848913724754525948598581446610847060128441989731221074099197087242265429392138651008223183148532604589111967692365653955946638616503097076144115894873027142537120698782822915847004156313855868371006313146083354081493168031228619369058862572405322449965228051402863817620348393888791262628789902703993165980095736402515159896633240588967705796052833681472904255071889401987676658898268326772362567167124248817718938778048431601443181620368676172147896361285094066943798566893332102225045702297548668732217617823533290670607956245023352047404357286671193424327679889787016392283251278478429093226061471375791269679055476691135795131892384564128228466188078934592967039904788532152480987190084442834190693039135813723042033517820407280987777927286434438602634897085669796467228454388858046825265862626379227868145267683322920743831843636227340093201424991786532431334017421223869678636848279242691222453089044735390517688982614342075583177143794986238464342653851275104761936650205135127793185039842616550341133284440714888647545934342266007080879705254124019375110456420640289797113264969840759645489039057677859609062558583637240095174957953056599090072235866616178708042269269235554305272020199699127559498492070990817002160349973672302412538866382138305617266824288652960477041488372471141155753035159905888411956767279552472031518771092710312479546677765870064231422048175231802999861343233571633252445350347838509759556851442131151984948671812567550428608856427460941315894835795802036274242705678451352681378641481555334976633938411757531976164764026712191643972677911954747506344196223492317969779177234398084422945885944840667473247438005803639395828347607340691084161447306241734194076420173877077679658924620240158701889992003753335764135121965310883593656790520743680742047935330009995495192951458743988965362378227646110033961512438613460766412157104813304993728482473964549432030138745588029973105469925963300978388187106668219494288279151801904734437099730191436428143143873439991631119074816190843296294850204658705587632053911433818155991517922270936712633856124925839958030084827038937600607250367331551355852370886475391029771094705270656279304639616941902801862860465201889848944543614046529148874071199847561532333068598627795596055090861273227075498071485715967510159601600128903927622207221279980257688911022821936215418663770535446282907969475445368685376338354639886147937426603075808038297956373606128486039988169657530406362027940965477270049062532889230091201521660958847606359947116627635260389816313209315411508873419484347336053070887006520141285070538389175674901171118578352010225985276361704189769233918572435182425070399857310599663910355421339078037056671610671743703706940269513375702405048011544733230314127979708468990303446309736176185932661169091299119303787571823209304044637516388976554721263365825265283998408342131396420275069503543122396821296971412582106851551279441268707071672549514389809371736666804486640282314723473919413127002703748390772280776935399507928398546951007742269034277590095440690196120878312284320157117663341247436394898915372605216191932797106265757052698357667085791545769868251842106529635581377939727664322426782765804522951257410833990028360444077425513887127074717855429063623466656708168758360648469990526112041752902107259487215964655797626805354128819272007884835488372788477706339441552013136307707222893087989999567533114191496934001998198748906807291916372707480529167462973211843207949938475051195555687690497392903271289436136424009526821541493486609826953500768908456938196195968529065064281280592521453100125541271508470244650936292631990782165250520682709424645461600267845753277024487026780594518306709105076911311729093691809900269859714959243061778743711246760761168859708648963105968497738459132445539620908116192263256789053429362399453650591490798901141608993905205724241099682317178537549786450641792387388217215628873885222802697723234872257815498023531940321510620732276594607496660558924250731307352412594979803680563373426028985141552138776260361538087649303835480834853204925944308907975275145674539539253191984776681375423758934125688544317012498621023851879392067385221792253890064047575224931089538810716273586454149837808179480032651337214480454459337002597142681240086080373203565426700461801099880393559223343355430189390997866250678832742370723259913232530516380359790149571969214138044985626209431452749039199274575494892268245185493667934776951921705742797780360754439175081079504332364197950528496148668980870965432501461143619501497267416813738754092756971657533251256825925290998532731410155678338494280316071364013307298997190512534804513053923888862177907526564722313119478695363730277613330711253368439283786668669159451993976397999330219426575839377733889716369252618004410265085627006579248043184022189461670993783063219401380524653920225379533862235623221637742764541204156629915307229667794357046665433444674517390267876512301938442789646398747627664621557269602875549086167918731805245514260192260458976329146581327428270538008044924427642653796493265528165860810997149707380851249961508585963279712659302348231413806653789075175795574374525813341871212780569684137861395299120028631615868289254387641511999773405981415236262196590529088574813494498539568352673264712152509311827022526956187760328784050184201451027381299022805106600911339433026861567919842750844445228995386951641165926117141002730288026528407166458266447118357382518729761859076416501047111467727321308505897101677400302895937462862981462462113672522439175699597303062204059671538752258601702205541128415280547276610384575925634434854824035798681192797905675866411516507126472209882408543473068801832652543182290395345319750062404107892233244663072295532494209284398602630865574530806291525082868863346804462191409300778032874379311264265686763148057655847639849579389567251591425976252948765868300999460180240198654498579083571595115242105686377773992674058578213850465225080622515732132473367379933366342721932857943977284812249580523812248383859987812526062105917608330242319348199484431385080567885793266051664253029987514045870470086839586181104322200718595450683972104323882227520092228822162032026332820174549182922175145226337671675946281681625946023218550114235442315020228917244110122856514784495901909692457355735514553727663435329036526829661309672274869812942619928204887526084994848492785115975031344626481104354713140574714865895853189485843526628387428033975448873769793937698462332921261127803772345779976018553425518206321264931114875465155380155698405260742941431564193216313138093617435089745564901179518854232248797833246241575148388019409018830271703074648677038535954516122146928532422332710328682514579906351133446927764882283001774399324582321096233225683973982749456436335025450749831178746175823799483884683639780815064435649552450234311521476282078687072643099658588090263331431113985548207526645235192384165058650358325694577984576177176252855074751471104288816439016236892147074237540369340217129344013966910104591943139142404297599039495230918941478434854855092220989171326840448023079768716590783506354487565519962509871336089852599088741531993652522495381095468539195212556733603137184096947579188538022153174689537790916316879233078238070265823397889280568676084223298439115798373796349131112977209582982417033897999643727187572437180476042658401896882821298670165938060702304301987512783125953553121936029186128194720182933124841214676960134014511062221421282110930634040737892942409589931419681595882122192307863902835980870247836366884698115337652383778641471364476334847551118128441344314707271744281805435220093058101815390884806824877367099857796822039547166938171506235210466743774361283710134106846873264499721138074345165779532197434241629343029242540499736197071781463885077181972977350907609546948153610867247223934679413518264622036484297207982702557555423415967378302108417993517419981711254666807648489388307278928997690744514023147736714982422604746375638182831542044666491111732636667010002852560456800509478512812076785161665948187473781776416846628347247676462738930661100570756786614059216247282315512305982385382783276586480958937740464089211862109986181947897284898002043244794643357702301742122589962542602168852402995879562301189073017137398507156966879558680239416534203164288827275148214579989450526631161931073869901088849431445537102464089548453142326350592059608543666256288475295902969346263314572505685833629516250428276778578278335327072858681619203268682857194244501491181786189333825026139677144422301626211394384877601379541301720673743383260923523056989142239912377572016653413402958941327934878091996529862473377335766070947000435130587342092005821092289911711171918513565543526154563884957022953129043578489574409152799096166883676193875036870617062712534176448592660266292103671304070365491843914691238158546927860166690729243821444238493114286270449611068968089183729674341102670460398224450679951013360813046026256321394287429582696873086256353714290320691694359396540133189330559259877034736305546880457305989084469288059204759800917978105612665071723240807559091615947720819345217860949770396096639629792516157688825984849869217486057719951913659328669007590501056978839100039119414876498855233398434732900790375803163998578521721739969513238812513403809630426135683548512692146082419453108448559404506101409261977922095207228441173711104072711071096633524956457088704874773101118249362400748106721894393374179822772955770732517364856503187764930385469109626461373785739443019637447818393623545779888067710227795043215341944502399319309965392061730241544614194095438571711834654188859763427088293203475254932481140747387744070533955140983292472946280401858224955680597698784285663303014885262424997166622576941730608610475162812772928058879634531324115990541712672063993098467803540888541011514704251150920293098911568569333408894042540405033926813718163351742528753968529000502522182361937196668591782615883546603285672172666875931318466237205929771744600225704171294890178460278666285876526131106514333444166950146009921678786986905158897388254078207913580417570664277596905782564238091470679164181897635922531461016251101278316754391752676683611317698874989711718483101533960290079103499656468614602127496605132065512799815244221354267324333115401812025774050589646586038690600733843733163598179241011793210567467205168551934517775990941336227463116045489142338867328551318756048560594028109677158325061578307274149743331834035357530428183412620920280669131508305803630350402456396066412888991614473234987214066971314214966764053336975008828590289597521895994129431508217664907602733158017446925216667882937986963619075707042361342725886813317833843769758742385496567449395201865838980397381824416188616537474138526893281609747335852265080610353095071571235363251435947379069407916360153752512618574543171908920035994373815892275249079131886240974608897020231581603811350317135434218313130206143750253292749139097323679332634961630471180315378495264551342529808014814798931177638354860581684448693920756227436099657247337540525567472631729307792270130130681395963533691325734020576486888832548758137886422010311111376992160710572599242483812829692078873815922029566948092269447569034544251235503520784111224864483856922390334492035108367308079739784011293035872539377398574137572218667187600159995779244623633438415160851999505051475717386491792589791650284747450941138371831980470668727403164294704845521026605591134067615931654826516183382753165957664113981414714017192685908614275950128686166408350804540523206429124285474183054847003021891934484952984645828700971808971964147506787693359617341461798042333570008510771212496634348280452069968496209150034882809509169771964608882621247096291944177602890414649026492855229831238813178047022984815385499977680756273086971101794609124211331124069531991316569469031083154884772137349449811965704831933090146708952226742655654138093629495042583834540176536740651531413279294281169915851721248820730305416420581837566881379599275757078886273939676284545034403351081070020017125694386792267183439564258866289495700938712640338576880395829646033836630499197678635205548280160363830300601648392636999378187797462730746910108063470576554432293581012284622246775248934726833669152052200768103856411401573580581976569738544309632171243052563960334921534695934392241295632065163616782362253854847624573765518147172337443690151319953550447192363250845227821572695049975407711490107988518998514880788426795661008548902247316240040986105490238257924908318306601517798655516820903716570351146133064152928327310480426461687250094362382912494123613980828780403514276742665548640757404614623093985542435863203625375435922474737304069087053805903226480259470419427817038162586307097180396010272730241371548756581431342228931332653105524537720123139024374218155042638485054220679341512221669202898487271063091843788786955182680119314342531039336177554386521689368800289965559270935507626790629001876923070794030438440155643012134381445782391553631692499923019787584035204235937463636083889157472186517967783309716643520467487776319373463979663784402240812656563175545987052136111004711527797839056552042240102410278139182718161476109441388261860480036707692299316112299910592219369797335035223417198201531087458259495872041874708022670860959302035309866984199309390969309245300565698251874565683097280778444301154214875625698552584193336499030795630829025960855938320699395969705981065464874475364612111546628265850941730793210454124855396516179523674086010428088572694967925816107217691507324206391381221806843499537931845424488188001298899911242512854487353112081662913471678992102067767779519026572967118151450164370575244712347380557150375186108826790507230870020818629987117708576291725197701852754598573655774123785836349725678283933315313930982123917884224379566175926152950748212876472943562655864817358519212689336036970916225387534742958600871673993251287879827215228703559530857952482722639938899196599930169800765222382583260260075266471857935959550756095082479141659298008139585536332371692214237155740599147133562410975575302690706625462247940490145020190700419030372731700772944352402845333090179671481420168679741020533715819206424124770701616092456472433105298885657063547509986969115701152952779093076509268852538768470198972079742472014375275444990986627419421369811206103152928931102317179477400436287157104930802289767313535831741289526298335729903497177898944787567135320653045142815792328035952431983440938143172931794161475083412293930139937988667484493434420290039125731395476302637236207102709192681762557980814157783882470952351367051606006126220908378876032147874479091921651277780122359843597010616945865252866654921713168428043867574029395050275480539573319064141005593811192844821593634177568490602341597301365001865542045818648386347996538967506141479906943830664336863616700726435870853280885786447579956131858876654288512569711065345992132692476237529090150107368463138635650671033231328081009935403919820887541537019845754153702353128476307030315694987663933537415746495195372001112955164602318216531617016848398359562623945005334589187868734454359537938837676162828098592789066489474490614300224908201741233084195484714677758277365866658510747685830747448462200618329178119505512705062359866301682311564505318495241512166167431249897792567193736055824927461005665811117097734193183380686410231584819629841337463841016020055914833648198013491311196136640330427453589006801427250049929298898561413219256587575789017463582588657423451175956942589888273058067423891561992450820452203988407472051121692252510882571088471713411213603542280808703240330488162964403038234891803739704482515768915631197259658822240747365890612265535895574953815576308740944598146485105160436939638784987634652756380065189946113558108440975418157860470461276910219553958779100924010581438858038868155460884413423345622284691042998429123081388280058474550961321429167546845828459056503333450416470074548604130731346888375603360599324410850567703062140507511929675479671523114954534944954392919398500632494653179765553405012289098338891009394182684030608532313862169107315128542567961778743247172459833631265619879431596032097413384415558579519057148300108546474967662961290170176292753757715497131328552694552572741972119668619581209776562587171943939872539953821168771337587365646888315621958489372342599022377980083219570272291663012576321011810632675359523382165882077186006390098799195379351509111895961334399794582710452114473546535998164353079409154590620944537767307206959714334518603853753449892286024438989570913993279632075779101043467875392486857469688998694341847861358590387225205108847974557284514970936628303630294368489508756398221776623925824493535850456616324171954351056863381249098869538991333006470460594835642614972362965586975525321331890739484442074773885592410397439501181831391015995975063395067623989419306762613315559641745890535176217148936677552521650284870959964087609647598191546054718417736094480385556381464643693576040172262882971854858165763521507435857119849704564060063139114582196241506183097916769752512653406315980431488434286100003276159657963979411211560864403303193460304044764804849090042745105756178540145119797556372061113839073122280727645137650281587139111687174393937073767754962555979839027843107549193588791608585726735552369639380443111263298205342871846005222557847777312346640812635388049955175852880012963799456263776560732948874390059590901446738535541243980906479925167415969640789868727641414709543326566338027121286836497015846767363612023835525639756411380116348089120852701416134067245450740126385069262187888911109531512888108244983799162643409552507781633620713805826992947929291819939956301171703985581472447761898346312056239514566600995051294039116718897281743741340682217396093694051690061961015009523084221818858253706442372625099532338882883574892061392847743792807596218852261795142653160568620187742937667041088947291001042613068568891169350627422544523792330209834356243161485305682305442426981733053738960671706013676885648314082184736390115791317476678331132887634086806282458098441072817842748907331121679263482860418408082998776455653350964336951582793280238068891006342976212532741316323958089741167874701412502758939430862114560735762591172528147013446997064723220898186134050974630312950708994261382618930090680795957787842653953269093586676935266393219827565817796435715182935805367235333170757715335961104411882882896211728908611661911615864900253862067084126378149762611336913445221719470628711918266978626145535289140081329447254367964143868661804646020332806936327324603064310036953650356987077750190478338046347681133794027725649114640397279681936667215177386343827884606450323004948629479820411050866061167852417091702310556393699484428735702216526443088457078969593517888188029299903856926476783944197178155959329688146938883518467158890976930989304205610674158764654543419613863390168130151358854387755154119452395330998749209381098926790405201630567630190940654710188034535969503026951649790992794103714727128004539239724429868294415497018608146491227041364577900733723887506941277690898058315432084333824546685439404376392854287448011213425039997364204204378839757502122447581079201745820702108964287507610159371314363273213980101242301112036011683519522578243084240690355140341552183026583546499227279289136358134156218857711510924094615348948087466882258387869027703760308894853663327830144229768006521542235206377775477561951130231685365354224944711534765498846012981935414108237173448945627774016370939240683484682175982183126478466903634827601202628246637562833376455963155206475960624400165380058226978668315143565452157259283988237458479556661307071064953003297378569293166850898806071966315759627095497284373429041349923541665902610663241299880133940639976791819938479228374455297556918252660040493772990152561373591723707380794591387088896528612314882437041163965433182233456599621857795310035545578197362014434975776255839566140890682512034872827428283033464628432770202473032038095258885234038224274150088387424004207638999573003426157038649908831898176750509478638280439038519991702120508433739549863974705815437578593975828734900218460909659340705180366617414361092319879511475595256273220059914970544471971246965978199152423162838558595233067526802954947432622055377848181317756434228305500035021036431884831245166883714111263984534793571618267510386158183433915844780142209512775462092009674468812752982135186847957426043389508866643869720090824656521372291123406090335441917517095770180804581342379186964457525551653269791719419003618251912077566957771414154896033077292121922851649059955855108221548278205905939136980827441271309493180640942496123512335321431172266932346850730296049206305352615920071300426612536158250174742802352581619022926878512717499943422382532054039965250879487734325266539218210920435045980918263364519055084106280374511933459942930467724183430630375500809569062387359133437035497906355182543212410682350916813468771430848479033974943612392061502909894981039603087305414322804937653051960656838181267393635080864662426668416941486508308059724018338635116471699663405337497713696554096117962067362079810389615367251386147751363879233814491157313964115938301987846072172724016158490488119545576722474781866514623641895627123580178452716264022469422192911906798601563283316000086654434562794991101373739993075590586337891082948326485435035326661542593107862223513798022089101296640572355717930931891912899813342805594973188257813892582006949339143168387634443283146055899352076616868929000821460621546284365883378680270032664477298334140159446639664402508451505442618028928419986059716455213191602727502183981657389820686249530059737633441580602288819110349656511959453764345042660300090516526685555660495929579736566351198994901750026436803269451510487312490593987959651534966453010226705757672431337996363537682433709829276817895596951102296819409570670917500244553354267881522315730225724763722933565364528224377926206104985983346615376528328227117226448861400310049283405052186176614515408227050581841958711779270527464873265608667327372543973444766486504687894124392624626455453986158215488058514865334191827091021208224893719820103278589025329608267172484570214611030978171189503848971726968269317181317487884268342229517543617295722684569008986111284952951851882774596223985293383883995561746146477839303879837764989637805980243877635786291575932136601157702544210235441896780436989997989124309186530370686134755774820334174878053622016555003806698213233071164269972366132946641354135425894541264646868213339464800606837355011292972613994781513829529895042342131712719251558821325010148574472184595914719636514667880396433689919144530299333019891306082911698952992390141394925576651171110814963805371771929913050074896871716117492786808646670515903521825986579078894513257486513918321516637494804197567144398471540189394621890684690104514681357752209415325216651741003807938030357172445018813419101013293532029526204763850712061401444851835401047288474307520548938851010638828706978625235833079543268992140132618510476142049976031472808628695395194944000521040555393196550490608158762247414296380820781334616916640545458718583430365214362471808904641508849653250204764869342574314427112513960919777669899296914119613544804077190684692987837964602185128421080269624572418936429662375589816087063950863409332780516775527668877415582537044722443203854866984539825691598137164234806786646752662924363608774596000769675415632964153290159298183904336699586638152160280885866924155548626845153650170020279216935583929598846935710821905369695132748751131322005161795452806906557076725289029901096046614174079833588176820074847408888157407582427620351937687209389551232086848504811891635680149489843691731825845848319751172934361328462544938357937578391288782004733729224902960445127879207864090903457041375951514728359785581165896756623633836179990634402997357634437799769586886294696795661558754462341691854112796786869784031284235318140877523207785965617587959959124739522606898314649189365465459009584869628816256532566937549061979171939164335243866595232685826316595226725881495976185462432314008352959857589083899137717392606489278030546580399361336058846723804242417900345210301021676219908779597234761876179511321702748450067627921719750958312551608975066716022332060538694580605825086630489360255944114721148519315224962722675062238852301213981142960580577783356185560434347978373951517899934258460846516418191513632950663013216832544328676516342192759017942470166101830165944828514939969417616893477952896895913583891051958687204636015165067461310013427138539154686381210990772533290423789514979186653933490896590941504158643609259263125997340525693746917375534819803630328399806043955679113479733245526040184987160901987643735413445795126201647417691832079657811896342763981019019298724693963290707059545732230814435348113568947396467098654993577733796013320459739589092810211475301797051845117394240737621508290476725655073054387409934777835287112374815705325486463407849368710552988851571819024141228039992176610277223054183883646048355364831350990825749860281400016729871223638300637147476603115330865427976743713688510075196439180203096983902756041954600231717921293494970046674171540173187423879853577482037432315274536446489181161718955338481378441838525485612817822432551906549537627877463989694175334124111382332302794673960529594069368971483262713518331916395299545700343425735156350786592319753493051286800535251256160616728317592602644840989658727641379727512435207170171655769932544345132730643113970350129303561683272706809082630218311584240859959143178929537466414815589469156754397109642596957434281803797016545860212163276765461358723408124040128658426818245466588363212755175099347830070157871990325166947164249644863885038745090731022099898009248824113323542172687264377202658357242047095874463755305790310941749122079057463449817420014396862501206849534086689957677657050428858450870124135268898590648196056275425274117766118211116024242661819122672070693964256955280824675407438852013136980963882128857942148508874138971713690916378860105753236755987463024631366154543723049483511553566785557734904169639850970700145037414254302776131980851013594648148221651201619557408577328428482115546430066050508216331301348650583612923612564760720930893646777731895242931120553920653735603256463658929304067572777268942733034945094276645409574056443104245153954458732685130809224967402962307842596219060752877159091380605296069158353267618197162890403036791351119712851037504894468857400263949530626146089274628023117057505168843137698576151998849635072163426792817255670911759777126965223237007795266336010002118891459558768264934921062870329842630843693232024529384516472598527610180308293209531896024985075033108989968639389228411884708251489650240319797136756603622512508384825180529067482325973233273897064600318001626890665817651449825011917934211893334334569756572554680915767658957955491251169039677327471062036351498041389385608902614666306493090692019874885559218109567858992216026146308015778696503912809888115782658794550492453443033087988199418197904236552081789277692964617451655492069803909524142414339914837257970461539583222185519730911917537960778821096258744533596064008067912266312587356263743228390186450486647634781734187660327460196130663269210968792028511783415353716557644885366174532635798742417896917659374426744800297920184475854124571388914813201636354380869907094971590490509798871563020013719232523826791509943382332691978958744602911438004558409092053964469161265562503642838716980452446200120099023986289796457329178896657776378036979034633874841805073277356684302156968941432329929242050156541063711201692052661951634925304938915913574866160097640776148207531154230029178186083144835863584818293324084644739473044830053198870907080595945515908951946520068762226705140115273129334121920669602440708227666242571617320475160946916261862767892827547829163994684721599768424834344063856635680553274329269854096509099192247460389744260863751663772168880305249258728182108354832989194528704742090437563251678775878980577945960448617063380809021787250233885888653304508643192821987110981933778990683636070677070450853313613236699794809394706508689415801109531968697492633953585679391490737735045101070479583096109367457428318652002485313813386102064068549027929047732806906656860522944430799295822571924013170984273025630242839616194014350851775071573479343414986159188827054782829889571068602573152892267575598961696987959876820297006508237224897092099735477379369101937275079244311809541551942852911287752429287638115446792143702386477129728579582629062942036648724604142859582236897196435762210058675902390464959688711754466879346446333264872719024217511248048531909759143665996971951929328565848488421737203835444638805158831826491900450733417352305621207333785131184212717733767099810146334965813844316619956537276696561138400932409317388496118192497296044193216974659224129532790933638064664710828897959964204454965584984168687897600909420922408181381062046130481496981383569699981770181147137499548353190431648083222256747986645021391258430624756777258845762696268834330988920707932551875544528439125598078824459952252486012092774512579570052317575316768979045777860732854561884689590002771440554823092390811491094356262937209206041157902579016914401756657281296114414650473896507469902173703803676625777745625333463640250932484669859758134942240225170854419414494125375354093752958533214144299733820417275108551951833051374429092600274547184553428387727669860101168131387982862013023695014980995740873572350867672368568211883460990470761427596654766653612781512646116197642375385910678069827866584182345795120050632692920212237256854053998032545269048625299913945011694634240893884090992094734393691462329003760867948094726714605707828148736518851967939049616609865672197309995127102796866744689554794525110355569823918993747736153614216373013752318601829776583182051788243931387527839262549831777289899298933450323533328641868684640907350422907961869544610115456591400299351432033942223245157135169407103631674882070913003072402972239368362071685059994803278723830881384563081348703258335353435615136097069145046910914093347743014138825763125654054965773916408101685992750138445163888342273552691159030357468582964067902834911292977044023598011948689970595592874283581623595712843495217351168871083522554413527013775869426417688760587531690118256324796936933870899269394093306742656887856053352755204323000039711674518104437843795198993761173679579647790197782183134924454790829316556177094493382121104816404839318616934171482855170938628593182550825264497290285455430151098922745228000495864583109203324471109254592487801990816842665922871487561504302796133393306185465039749362010297347075533207983241670498177996321053561596602945680376878419562866248033945736898177022586424488360651368423687220033101696384132945670447203490366795078053791035907811614125398470438552521493298186060090984399956099433968112600313958960663008106801058702858508726980395573904428216151481227555847403500183546262450968535521511627005474717228263312534958983231360043841410882078556238521934017411407662854099317162569925063545682717245081911708301041186352694145149260308286855684137311774664832883154854870056433563996707345740718426057674298491207363924495243097280122347961365545375865878197309349865695096165173187757624862742291176238059299358157266874453274287882811123888466087031178843980539024882217744109542349969177295121807947177194524005289000465060505447351133250258699625970668743356022819988714649737564426999562157288127785454984035395329083053942482713228452970846865260813921823305012007045629398456425432991266139584799965742044777626146569189909245982634222129372943038391846091680683345139890430192834884244070567287012623608720360249287897028696838149566704542538355755638783906607862842257883184151470783922187468975516611621198398146636622483680767757099617368196959287050971718321449696342341849927345584789689775731869856664381533012624843530921674726206419041781404204293660246315842302763763215545490893789528457752232224993707639887273826621637566191654269135476395265178910599444704837686051509518217029739761064753362567603935795250596173485957626825610241225850465258729089499521205289377624224237657470426753143180873771686917837297287581604708724663378060922740633946419460129601272366518719397103358696131084567464972743216145625398435755253943694621289202064343054836080278754372396170231030301756335635818524835086641538377570356236446100330207674527231042840947986656725952134548401485791432469341264297309846893973640088547375392849283560508388925127970730842326325404021948742200758390675250148910242230662982303153577592950769447452970361231703134447830654461634367299717049111549345092436198709236405645438729654419033630834965624074606556406518524071320113230376082301649434403010140638289900982633350561864090374519394988550132220987728791777976025407157206992625449396272638851946208735256682437870615621940746824080850513449212585515175978344132099194963846169338062169221453652446830467167762776645456228271805830273149059612204074684273090009178145608309778018137332612985602926945986924835558685595468630692680383180865686962927763885390523621152576561639290163904449477905541223963304515135984830950317714974653093492120233903522702896666106564502618697569467671950669599251399676662866376046493795029256099963484507193077326046582934883455917306302595071674193511300135126223910977149301524632939727766881006934568366680355513231601370856469631289143468423795117290999888120675061944648011163967820999480151892098003319490604459136390920439644981322003670196889733232053046476658307847301330029706498889797300842084763997696838450906111045850635588319198464949115302849378933897986772393837082766055236201400700581261004605134074752393718918840915069201505302708540382883817945347483557186539094805668294475506766137910826974551509051202986152999454559245193195674157250370346285666997684411018736726025469602933760923619520563398936416075404005641771692691911614236482714471854512558681605105211142318864916137032469220124771057432583240595832047723589679615312096748704468712175118624080644735916128444992787957776182646420369737209291905994797010924977985521555100921962166009988863673612807551379333164347656568779377317209566853704361033746841601403849355926712354099814983553108168273173163642551814405674053602562812927433961743513853249712256568039386443222464856647510434484103844211879331635466931242339060438898807938177985541009224820522593539365883661031734020942193338179036925830889342712656711070851952849470729886773338732706605093937905506649525499990125137195699444968549504346387833160285787808887419358415165467052234310166156813624556770719509098170574211138818372874514715674089576363167948803681508791483667028776463696416623834685226164801326558692390125608341012863688766618416856080156039416846193961571573095451887018882566595768760263810553236462662822291966059455491833346426877592253310222540171915862022114966555341418562020180725068557988468012388926111315775115155859752570645911085639279522818829274079012440727317208335479477456077611501381823322898217474591759617251582976943815911432623561127692387044132476212180159249156097715069212030284064662810511473115291268788781450960014089424005634734834305959940643038603420809595493358549099802389628658859273741092449649684976973541068603257349977472411472425811401534752770938529797554771748782525175255834838522444839614488718634302174504149549088162865031249105214949329551058575295493521449531389524619136115873942469919918955346969870739454998640332654366327378356956044671485143363159181253644377906202041810436719089449958794381275978023737075196527527117445471262079038421953796347023571270996086144862479461159753961466342758315586106176875134704571286394585035620373507950128208062766682583462335839009177196920252540923663067376540698167080366532727172259621537722130710286855482006879030299878934699738785040376470859503591026646442514247036848558457519920260723474799131485873439574458457960946875181400949116162656495689677062987376901409579846643425698710776869988955963160962508854766285218895065559297472819956001193188597241406295563025327197290570173406817666703755336912364373417049997926936395633971033804292397878616013708868442760570693071331345596394942139211895167016727826490141418477422669734761650652681980024028673436191010596095361457578435325866321858049878116139403898743585810800198931547046010521278350357492289726213889771516048736966915571268390379889464861825001923574287157762441126697516608505657640392117184563176706095768202978980199349987751309483734900349491239208396616401102429478276502087469173324862311352535900703759175567669041502304900846836832751061688110985389754083035155736344533848214762168226948871435985378054583036042405626843157592847178077649793074105661621742384917248723263415710020407002819515433350488478900722671952556420174135975547843862719867745633131330500073811086991537453161483499324152109726216122990516036984498591291523086132582735287255922030143157698744200775555680544576621412085313005632143910626843670941469208360079649864845007339469341047508567405879105317699440759791987371465299200555925787142277569786160565881258226228332099743089148430565012018548976653662840889624876214118369185467492346982637669870560900647288293118002627562558630866670442755701957700288782268509886032662989964172212671741419842646305865879601940791293389048020129236427985405268880001934170823260293309937512248502100091576564863181646746312146039343321430804631959207173019356440384007229601345369606595891257850939124667436019811959885000083583801898887594372009074986849354564884075005798430979057402406317156250359408058728779754830796342586101576936709707126237293869598591741134977332263124801873419554728874494031454005817846687614020039634645984282864050471806788556084186740297237172966523717714506486545920911243271669675709240673419551034918883011343263474157552706436794067228445469039336032078251134903435083286118064638251383913329359245904563197486336664518131738561937821660300033731460052977189915230882454357844994149587612618263131085687882211303890958044935640237085219999377730127601061921662759161981523323947795738087120852105895951349807494657998833751103558097383873791271238230409643066830920802816493507245569769050408260216998531350409324143750934471410046556315575506116362781023369153585283674827020741368739089237565342810528147376862529716356497779965110342625523484163726300179471786158089789330432987374755585543147355962326675067384279042409443298095360166099648098215087427841159828344057343353986563719019569341449785980122749566435191977992414310904310014543084826921039540059500239430833751379365724955073239018796002710423670044767481709131106071319810972300188424538092680723515482763235010658692043301771269691695386367567605677195182497923540798063977175356525748958822638598560978763252848950868018309866778073602867295420506439384926109953083854461073227680433657231827791934033129884588328536977867582129080658588624096072023626730070109880937182997916047263849089354024130809643129948226333752409540870906796531142031281964073948471554249953364468322453074942055715684640864300324460311743496506402709247595199415265687066584539408445807441547831515963055555273549057958985408161921846452241825305753546633964132194420325833382942029635822339749902282763386508099634674824925805050335018534356894517719924649405553198999221956709899364259334599992792882718496186319518281436346834797542160359747670724375586216626751924903170665488683865193745587707766595735152410252038713572264799984422047990455329572462891126712155601646533825587301108583742402406279410727878179471493375964744051800006371239727105844470900766716544002811901051003392363853534872224578193459045561015283407068950384326616400953521150029649486657084961732895243371934976204555644206060447695318027832583291712892076773765144755843320966042733349203963346190209837160025093839375135789942960317192567676311560437437126002735761950301658442579783597840212822213126900609756136450206011250755178717743036800211852072792690859528076212279234109860625909867889186806836388333543761422595528781617032472174802109963853728216879268725102959471676941456205820675340041918635883864344438587486740375090150293833356657305398313301423600787442500277360135946924435120026683902441650482172584261361710685640411196389943074083757188799163257202273606483280519281527801937901532848072132333647208204417848018247620040359589779393241972319404102470966025398929428096770387729913792495179584043837135613874836347822455443186985070961130730666177855192697404681047245246866053212338563774319015912674123381919988899782060942387058817813938727848403988567563576183709646147873524745414314159099212705443267988636110234797879972459704100956367248428787672855590204024382189645730236674063297036498821687352108275679017386246821445688454014142667935973066494620728846014219096348968546756594068127422948829025072911790453685352907552651358931301783639250265810173739572682005987745616042478476508758167381571806323144382035420556785938374725475878907318683239655411209283588175596485233887338444170192451837032096847433137355401727883920375165059760808687388683193227153022383856681462059709921567333415602040419039157655100309799331267926702384795059906960034130863475020366332140117164962013054465297701602835640845395771135349976839377844739196114942986830480683037349778156748273955322074287726852822443583920201708021109630109265895485931136744369279375043280851335520324844915785698685065904165586719445168157170829631810410294846612769433454736497956017443463778883945831873001214252971666444175015095263325730160181614292029326173988544674581584882884989853161154912069857484024804514363279068944383948869284828515114787397051448575979910327233720041095043394407026003510676521565105126141656188348082786819420764858133360652806774074691836968867471034515825789960984292582020424459917298523204211445096039250284407848655738766612731786494869492644972781385781591886549407720599902904153650413328843997422016261628872274645798725236354129827487503376977872723886587180144092787631454178583301582437841807843920661734892129072796234519231980338228776129427163195311414982148616336049024471249726683421942675105224397708753435327848946583783895080845946054854234341231315387645405711890319117245114939945007060513506463230411625392226198236296018400968321406539936566554739176275389428424847757318821221660054739079322852123751229441247125113159388869572184786553243733018098716629214118035841413482391164520070393646894287295434622609024526322018285372699894424437824396792740936136688623514392710595754441581042880348692295707935571026776407569093445332282964891762156381129217523266830064102957907809438292801167261610271009597124139128842059902313067615432280317306432013264138121031819488925139596572865752869203513831145895655867913942960050338435042454438523372906977467420552752882477674968773560109287991769766727807224409558453589038637943227160328102434391764232910606387033493613150917551591943539681912913862767516810137920995070792207160962701803033420111671213439357607401540532407994000618817380576888378818026533898238077271313265288885856196035457337002485250404945487629338960807785514243707570542710725303479140340586340609940507201451254593920962506896028310038447714517285452111864418109101635408037494387255288700667937290160444949620348343467325368799253008832790774660699601030621238782156229805467725177540143735172362247549386916001949400487538683739620094323110543779153454770681947742148502678452953873555494253387275434410014878836188396314550397750785133324188550952864380459656538510542462391535126762539087788306606134944773890744534631212066339316820037917096345129682073552462805103970559109657455655073747445263512318262721215707086296647138821692608896525441791690220156130484218747809839552690398893293477050305254053769756922052421978941531046209956229390206524616758370867063174470589476167979300325093741479967381577672495017447051420010510595134187923369942675095227682725928746149457471481056213625940911197307873656495059121265285453663511740431274235071948798310750062673892070348095382294929623216386378944033135742538247500415386219060934023747260068815839041369117259433511248318638157109043606325931989376210909849003820584884338853758235612219376164245692890113417181430925023568247231087467367100890635947682517625010321282571750658433965900612270225334769328818421684104322984993751927401833334490012633627090559862605556111914540492496154271924897513487316346992209864177202781406302706610326126801424775051932684875525856429694691060022131631135738793506490260366398062575457458544409094852054163069889844096111678071612958714865343289861057972873991302506006008307428127074229939297801114374179439147824531865712207961845782594794704778864865355847629328003710215666174228889286877057079899885251727878989807892563955327668726648171902970802370391829604802646331765914978305031601757089840890078154670650085761815997299418787615899292569199858979743532240091610384090157999374970397091274736805789137381029241019586540572123879981477927298028440132752180102902833944681846417771599272931201829976875745936194238343592724384588143902828812683902630286615075699950745471286632362552105659849751173377202775760537006050837072654845851606165404135307975412142782491002061894204784616542005041972128771587396628290421604722649741982429348393209671060483040937160849388461733760699991070240556709237448784463293084041293156806589696592003081170920265676758891040616709817344783973249425162363872008792097262059899297311063385597279144749373921751292061482093820924940952809763403266166657834044514291223431541929340150410081034004311169188600909769944804090410300745375407806529421731220335459827399364870301852141593314054882706869772177694335322045848736808617717982666926879886375118280648973712384246535748386087053193539715778225373536662350808422102932771213230743789230794490689673388882243487454319517076592213745523688759940836301865524406884552845490433039519634261352934925670547514555122756522887748555661491858901106525767324203485528806314253787919709556232420531765977724865747734406214265195359004020056995028463863472154840973057253683602528764531031681163913412117232183445415979447415091628080027784876923896257353588085014180850083799457697614606186728813050979462027893987387235699528473455720449746738112149454260448231897680217863744500552559632558547387294308109168123755535123614613156939030200427100600527224560196999478031932289275833400885775749760835896157944433788832164214295193583290661774470904485236608502569596041716202033491981674072125290014476808549479592080751280981103203534341060685311341091767794191108249218837987595678928180725332299018062338976528376788791742180021930728675922837248777108360737237440511688380856490786091549623366477227061700863698286977852278703153315792905065875124266258104647383178579622074322055257874889344301588848878018072844007585846934530992751703964643407102483347307668827603189629780517969429605517563705970478205204680576969915281786781958410848416987207377376702451000300228900881372591793686685584402803758573786209923010129371249101367042172751351877443585591281127549523521363231564495182176368101662818861543794166145022296722380488796123077858527574297790917458204162689153015083519912180815152412929231771983432034828763373205620933643792102372440061542034614198205291775275349055672031715834061727588579180552117419519922077257227146058504239614906027842792141900216697605250431163611029668954225224007342322710829142077080562383084116587850573480448913790013691771975461466375382796070992861332590430226822678901519373844864390471777394332890597520827395005592951659058057255047162136920424845665557018741269681303550950962028256293634215802215948958822356119109329253915084514263716692271271019253849943924426029430072160045070556369521457326813242860102185092412909828714454726047512903952649314066899972807876049964376894848656922837749500650482937746252704230231042515346537724625429981018484790058803089564466972092373528953217426906475972975332085773732713539714930122125804456768507000392128908822234765906763554818462008515351964349158265181935990663568651132199696752878011239846624676608288913740043432215719199855825398010696517746374620168526455197696499167941343048243061446644084904833247570141994529198278124907529961770164675966817658420811492576197029726611500058900466732476769662284961797150627300451158497310990198814163455712149908181956489693394584935548958721233861136007380413584440671718092679599910936358223108138337149421563006039336266749005113445292301270376762900432372649640359511649600283483998916447585433412785117600788599162368404773186430256801359463024842405806155789422127323510555457882299064650137146471711787394337075242271593206984902905966432313380388123058898938570554380908529305789750439991959438411639127674808403957885688366404090914457839569199286398913069599584817351717296742380917329747406429764570920052280493598360731099607092638928238093723593076556790229310253326249672430054278078392156744339837113615859157980980509708658929759575703558571755647894062271410063476049546322040903622356900452141624116973484179064672069628265692131880556573870082268336791995657900214820414828187213751543290100217023714973732605146098366072527232806560893419021199945545183778302441016491163381597333235377233312133029128758580588604302746433207928371112502881373030689843520384110161752285933026814684533624234243751139808363007022360827815870967982088785331519859407544172061290489575638167710511929887980252688117375875369173938464644725052247043840523292913644994836977339878331537001100414740795092210724536694808273405698442211859774048304780058385550070197223111833859152882928856970232875794045292328300865466765379570205571165311550005835775761624884648010425413438195272905575524013018407921981211780940926798084684308098570682925786636987293942967596497458673302258503932195319440626533351114550778567899591181082883731051311075922700076373928843552860036926728716857758413871910486997151970360628162479947634132276267468214813804692942270495932369727081515145090580545482102715922049920693270929016661936651248168761273980696739808229760639802676004230871289403034254088104735994365166031331751011638099224950957576119257318394445512547819186575548409969477885201151557142683964807989888183577126288691780168152740406043305775694845361566747618145139428501882352240098722559893007093106859197311311807828316790044320551571634408311333586162280471363510739198502551485083660378597697186829893773104153447155890353338948414648012485499364772681970849899899252095389495266447732161092460759135176800970312551804330145435172988448410998388649123213536330936300812515985214439141370146505962709103287749263282324726271448970189022662936059483056004169797387206310622747473841749296954950795141874585977221961413716287957097379814486567572913992652749502293093796121664489958083270047214169899778235686069672336436586684394640413768072152874144467462926223740099433308926394612263957026559208400609649772686728843198345763307437177603816732386316492201250803884033262379094287871625838033075064493596538578785593252724244640452628556471243333929642718328098423346189367049041936501326396260760778495754912434034987395351777807901054799623942456701054666327267380750781259559840181134940789519158251440692095058995412145831836058193036925551250566999355732918173426969528081959104303853643545971791562772191226915402605254091388827927978825677167938704950975459333531340370249753855702575032847082634231494857097899522786805754377585551500870356166557453409878988519731763862175728929830836823946150269527814224794669149564421962156912755960528702472274633558558725775770666245889280546944172494786616776761911125157652165317542220704874718940112811594392527274082801731129883608314200916586715329731374903729810421309549911139348483087937994918951197264656578123366545454051094027668813857547714925947721348161818116080382148625920396029459722127803308624879471572135306808033606334536567347692191303281554063270094343538795040363155274179800653547192008571348677488638357272478694841829252928516585958420110076344806674405973398939131138167866714248946950935769828094110464774355119743801528727546493596538614940682197154665447798811739798964176161945356546125808657320473298058464870289954129080861294877761355217896431221034195664151311235374792114335879249985444331049749823471179146302365840631670864919565621652852524451300035531766805963330407379439679981913089131981210298433384971919808740408280032921428346524124179090124071713986817279677793320812560163960873160762495020349090414657076620937441266151851384759774065757834193741371443113528140864740466367423911751706842977043225540853825847549139365275575764383614048867453046975246081607483529168350605525813700632206992780938560427932692112934427534302525161240633003458975539183203271122056377305354518043206549820835798094237661009006412172714187971311893186329415400879150812832320295484402638409545002089782385122056520174346844074234651635906551577475489092706288529325759996959344974720762577125376756179130699628391483979827020892527372485749763791025205660424460696632822446797808316602700028174157868817019277683518194021007755242778224570120863072129175139046654800532798034955036229716957924401242130829790126970593428282016914138143663212354234284796040241922121991657303842790020659829503744454845542593139566857921655204162255867994869518627074798084961988317500342565128454670454779238272400980469533003841982550182734114050637027546855345899733400535948932718114714299772201348460349673789713889026616995969040523157044834650414370490698359854541265853223163136802352181616801715446651930620159152576405016458892733820437160773382672734857284304067741621786687948038918376374996035646827229741835962225653917667186913992222255557601298676731362149258332263788286960067711292522370258774790213664782236457693809146260531225476214452423250246604250709824669009462277296797267615664486174325722601299816222269771928213877767915443709180391233150488779707681452588697833887362004279587360750748644547532373241883694126560169625160687522107815866114318951112219068948371980847974947527059722131754852888535741498906823123821391322565214931203396428886020996929002188840416801726141687113292461987586988586458448523269365112078365901639091637855581534668371475110746082538567953072320362229781481135784508019304668093570906749938906397766547931741607341785309161059076605518630058953447307555758938929128807820899375296132698199722506048957082919395051438880700765610023985248084126945150990011470985728321216928845090706410009052707235015398121525134137159265812368478052459387935483436351312427013944280769016568600777174209609286781597052371922660802819210986611338834709629132720151519520892760227245483474579232845770340685810697155329918435833198213695870116387139142028761411818999411072430303751074463020218227343665508062912452692843190678013630367479383982856056866956106656506758158775565351158343096037790653661706429564600188103108474174885549074771852027161073624063809852137975302929088585429354663349411769268193394716250410750772200101166799342572432604662702768049916229976091495677622562650620973030584339698551167620377153241969558651742909964422456186261730541675760654924854588134337599139780672966414617701986975036525295785463615307258370433020278872284142975650112377008217070803608733726104996749482701352022474612369078427678456206545888865871327622714039944260972361460715429242628547174257305430474267543407553434866890243656125031796323005320699762097420213068239316639344951471261927515168192443383745257790633360464095897114538377086419746605702569376211431872192776566844490400122901499152402846585847243265971863712858569191767606213378348291429390815909807732147682990632896391022325299114225018664233741028605855844107585352532713292498104106173572833120746387770913124056524284644155524684165496755124830161138110233101231105614668637898050954276642976846311977425836622728777404550149000181406509044971630359217711219515008025013862120017164922746796657205502425009305710859881124088212325716464345069223937680098946878122338772393237132234140927311596952771088851771744753826653556387505453334310733453018499157754900935762817678985019886568610821677205845929851725496985296156194210896017232793576411322491224069100024973271144325387133570172518763140171630660841478186664304216053183099023073550116376617585292346856511515091965356041024486386064343972367990059428179373410350807804182692577432160287273149415481011873694218211012847154853632572551532449894823425067749080144985766265469820981186958113235470758354667615780705189578761481529652054910003379508530157290298989763723648723761648333929354998583448879073557050436760762813954822785692370735034071071785263342800808138612133270069033733100719320349738792587477420740422060888862992916669353309778267348094474226037628550800353844607882494486885341663922110929111557257015788314596322603015419097775990180221461374173676542098261249677965128649538928608975350305254439121269232843373338470633938652408483787170879698865123597214638919983200341211411420390262975342253574202666553206181882002233489014046190063305707032350585747514561768256197896411434839516737386748233517075928490879326128875697814002712159278971530416888678154189953968162026795175663952629598635600730435819499668388103726640343710599780741566131659468884273974668764275764594721548701335133142065022994610934101371155470771740687652919287822158334136382766016903852704043337396091679381474047929138032507238392629552708422465875843013805876197701109293312904348391296794010830035771753195318853105904512159046274213714451269350821252241244522886403835166143856747220502104283968238059611485035594525651201398774457583037423672005760264524072021160309967997714177726185944936097941133605598835650342028487786154955361174781773450502176511835600668456977195767245722832747417219910930985808815366562979021762733615663763042222254248721928983695152687949917334413521696154171041700235215950517060265417274859442648121959289715522726104195308570504504645872527390054588744700192143675469886659397990027578790939055926477740793367053378761912516164386871796322893350557874119773270318410553126466981010738053867588752660163639536907838705834302701760151447422987792741014962626958697273893070519069304934128427512780674030586587850022550638269758564740685433055740635587268912603281654573676200328667231530015396804157564031049989887367122996122369554434844507446282388238404343811758414066413212722009193498024112163375094401646191674847113539472257657583288505534540306634155994410568029863679400440988145507566540546331581869280838817880517916179676047762200589024495298071994086487164576120372688906165885480746887702357300069274994753571826682026049523058587303550172785991709620676879322915143117536003930041149398743497951599448035559501458565395724631056239745093115934078677659738074303051202164744446284926960492093522823113963618481128899174633845114444129223502438029727101156649900582748631454063869662681110796045939710801359778123546815884140476012523084514879134450367761436547463241872252816991951960551024405283141301353882125743407045939933794239574359056186371876418784565378058538134318778276041010269043085299625776616002267412818691314412841782835491256742284308221727143784702046341066165830476885248835063151493902126783893343195098933161933641629646065876246500557128234366168248067219896864382916938806447616370878072972971841271702149448140986030139792988327893552284739417662908709146951284585747696346643356681371934337166141722281745503953978030409044620082273642186093936849773823814967982972827686481054562093725054030962491321422006488107996884362839261922484635696995794227166320024220845182609601451796790668427617322185859947276563239982402420563658663690513092539527864642759430250030692941822434268896037064660280762686078437636571252267069494971431079846835472992004167946770630750981211673393843543370390481058949101813889749251050972841384547391624100935806486931538372243720191066064352594865929823633132508555218732335525590066886838172177121221140416119674436882115160367981652536811091140966439035115098407699738849759820910111976048592570196186698590108410566289456924271056669401306581866561732357975003239857222368616251942957588250529650225781080545289378201332841190731248601025123697089585804100034947795860784259784010095714180933784742808924873483354261306619131206228258268833342991921813598758812984738216203582025934578136155091602378572534676167213608165106039967995908366479158796977248968076454989791684921360192291174322432328718421969733493458914261502116483122348670904489248460046776446607466262545332798237622279172071418926719833358472121581046431553484144631977757627980840443105469928636574228519192478605670637335498504322770092884058522674234031607318028967360448666931927948472954478407745715731728050386837475209010900489479519786880040537692585454207347642616186625469582838875355882080385255256125229155058775813493227817298924768968026736062887249142588320289823812502016733759770629655658816523496183475615415983844380924582739585063621578674317035400599098578017173045708460910746964573783689784791592408477932493366958857786382423502776461845552294007372300791915017726637827056110320252583121807104937593809796814034615506233088227223503074029542864983814886461844286496584615834214954277052884259135905752349928239759926461413775162366606654770006349843638680961026522623040987865877164757222282979683442074461107193962913569582304225981380173661284455736339006488715898668751780916543186926954037744818921032531377608743460583073246903890744815117899165630117582256237318773982341153972686938644857293455763605529197965747933991926393868238891235545566960699237403291049173458004632059903833280227636808834981034611191662563317850618072166267854896797327789392732675474083721370379214374546141498824546783561723670037164131885296905438055039711842479049116442095231260274057996250352478447799041671919552716958463382205243283264269593478931113109906369152967175227533531228490587430795141949702708486957222837553170118501589369233248224806969006081611677233111501727465632484373589619572338399747566445030884407086838675249697437562210167582162808735189698126337732592392652019572537656300668093921735067763680106125356035825418839572408087372796482658570558417316654876410040330185286326279661619927018794984288764151243491127217569570027515824676857897341421933639663097101287434710939252146965646064077586943611319409411694086852501166713898444152171518519022771348668199836506253798780921715454061107177918680444929247900854647149200374443206493291666451373171146685433098731572825887370814432547929659275281539415039846473767554993667795023906315500316721939501511468390994016201211566472937126768587546854540819226477645260511126970994954829498113314036835334188947926292283917201426944271744751391427374216448709380712871377191203553001991183072042404571013906491581952084493229589326418190459984320390862500262243029734238759999852759863276600399166719133354666818572690881302514541636934559533172832459235356509135623407328043737277647945584177418846606990874215655748456187888769070367067027065897532343491461465791083415810144101107163859230863169158698694130790782916045524748733443148758598317153676858191315114108099433719785291199706441373235956224893095047159277622118711375284798084444943256892079429016344234959876023302570297432600590443342899401656960115518883272320940889306936166294591755083600706594097722311020796748126057014906997343774715053028102676126320420135549261989320119645121039668833506790986257633493794625737447174552002457677351026324254785762335693479471223342842060163729281237158875523899595528926086203806489552340286874805724330317861032982162051489274770241732123089144653391436656052644575628759566672037299594303522704347874233386717825288231981819580271579765344295131003725103366289751162803364980742678769784587067576341781134805465121384534293409792528715521457933341401439846569494355637543687137728459604208529933621521559818758965226569950013094072896931697317590906342889133672537345438455072912252563263002657562969664955505702011395945349781469404839129898092451331454995484825058871290434252779510011323248548681532652453172858377002406807486231623073775069883063663801600926405814118826984870270099986140182213724418716309615277510298032693131701410485222253281779077639642886905361891868253716310461819118027806481989187610896784190469687190713940848938467870833389976769068015439065211195350658884371692954149045145164674107623070404252079014070354756350556206785286580328434574590509308669487555308748127756129891019430102251655506662013521735910361499457476032368786282346760317848839160877055951690931808808400149233006384889110859391740869782550655092675157472700011569189960109466504711897764638073249219737490018360783560305567136389479277641681635710030376731360641596723281174414025747108271842954000370189723785346804251287749244861998740034998301283011603700616156875643148525305130948407077619787702016024094656274709711077983848972958506667158304174846001946969647987745577017411240846733131065670713420771771788299064166983661894599957547360608971615556564447006634877327495441842347531914378598490912703800780825319900004186012088052734050367531268692935079489328009335844126883741294653821726112257583034584928404801499229343553050616003691994956211222203501867623486813598791574133723976976535592371776667310498354892662414565943664548210586472104914269111312256804520189663485145033523656642490251287183992729363757603092492637998380448872198025900047802974039114280051203987817258443822873044250292127211018873508831735898569985944043174765386145424257453397435406223987275253829735392698783079801343520321758043058604148689546564331395200650077015257806909040494813511029939726236661276394304445440613321527509866193414663621936223583025077973600723060811461376502420923569459414285362080318416286618083318939977795134201790971581039670597117137865981227006061837307400758564505525581454099231475911231653784633046906454250793553072865785721994196736335622661071573500137401509540014977980848745457273528465076450104351167438149490485801649613353674328318166390247716771900058929591746043995849488136456480598274935184926596779868659253202153806189942343424931349969201051791757965564289073084575305716403229719103755775417105335928361860837804632245954208659315986473571601058331117013993182963499776600888275877417081501512735680550168923072218323350766935750183807499156933326969511521236699000148323947070423294995471110070045486739346361906183329118802097562288157710022719059033131309430873584119702627041307110625092457527853720541240667388694877586766605077378537324050864623153458996595541617511129539650875695968413326712610506653685730504545934153605635147809500287926138212848296888951311359189879587652596667124238644705937760025076961461251719054151715373104079849412897598036312532530528991167032665404356294899176939371691812331508878324221829205765776736295080628810905515316129774830180375288501077318211945464661259034667064301609674695458179453636606011851064535742127687981838834543669508023947270942570137074870595565885545412610585068134500485103553227429297280412673713290909823426608570988275997912709022460358414733361311918839449730230270999052063631651659949180603923602851945218505988901968041124638594314292719018425466763967399518495610243246456496510388449252123604758499421481247628127325797895764642104114884493729975057388061721971144154963510500672548673253265307382888755638564040381403848111426785032883409517595250302368724126109547389020336746749287132975754075912571982935205449397551287744326413962811070857067795046907957045595465814818576228226811563935531409674790860537103381379513760251533535234351111767215500501377439978989679139687913026678449054394491443237166691368304681692784972947241006894238225869192170418885300238857371301939420343007205522159308976027601147875191845155932395655994426422403916055867774698798181658893379021500250623339245607474276496792700877700895807614925800125593346722036380327330042703092894547766849403090481039784868118711979413170130772396963817920510315225869429417826916519876575792716334338705048921804679306312419207367296107858945450173945899901367588255089147157242208959966430484354839145764254578886339411868384804755030028250243253816645067063591114551176758427811586837676123951387631948298773493218369624520628618490415835660560835418557675601489463124456810109535373834507075737829038137920329462204032411386644984530197498661368988077840999868797063105198841875914948608154361957592776266958739255048698353118391952524263603050200498899660101971494678028720753818368510146780643838533435315042816187785616567852335898651698243160552444932074648878964336075441818298457053051971457482230980285816513141452421275151479173644817363756355212600065193376407776993888705217934735214300287639863599784679103978417372202187528655726541836483452452722322780507086071445657540995732474826702055283265320154904027307524328372312751627562879280720242031973755167281812139112046699414238944909563554404953563926644146361124028484231357427658128688616385364176747056226896258345147346213081897406914884232749652585147404830560491999644305832600599184090971994145918003388338187484612741567254868806373066091053546396877405456628874247281850904087718939103185721969643543198414945191490086821272534370166749481700029847132429647161254410413053806256977897717263607758381279959391007143571933729119213161636578159087142011467962793400036975351372949928925050707126696996609808302799574761262956033517993257639145935708872380540994848018491852929039885805322226317391978172939183005535681599912791565399367818871338329170386741615956585299878449061745516997011799702906062466773291562231223294121746751647113137324385083101246317437164024512518479098597843494717383728080491215093735763690171451191054090202491874025423044184791248800538239070671147028070950574522733174943682701798280243851663040849965799382063307498586198843539419722715528228496229795535355186200102182911715341028274578180460928519172852055750920823193269317806681529180166395664009999692876824732905685674113836162492260193416426443071506346503282444489865732460822780280617494032737668562828736603873005269101813373161306199248735851734773785750773690000102961230607878492654028248009641239150113770057312414917949042512232917553681342377321800349561621306318273488415409194475995354241316468396465035480086190024157167678853741346604660410013941993966327021404322135163822109028970416527601327638452376172417886971814224922618562870748224302020691116082261986783419597407356110431661366070058491193646156204721354859133974953740693166219092581408109058749360580830224862975259482602218726168001344249347763545691427038765667631997178584179847983435817546499584665508204873847945860995332774035706800264095866642539555135571112485142766787436650165338211080001316167990776715236454208965316101464614237532021636491851491745263451797090012896042929017498366070711662818830018368755711921651925332429777413557780608980836532308725783419925877130573481998538309319399511582609054014043160024035112912465627203334446025590000236014198976678628723475786446742909669370835391310784575603237585928291203183849229854696067661807524440879568052819506094704563702797202074677768630851834903759306135942012202958562556169341003469296005506264974545612617691236864543602950236561626482727987841951294355773644084079823105814172408891406482744406272983907931736256829480401372579588534054088466483873320278412116854323942335500858684090403372320778679386601331692671087688052479411438500145628824104064055906301913382736809904982513657354229191366085225545500444745507962227234683397321082726723209043560193357040049646950909047224106261766074889707844880425569851787263471118028795663380791499491524363697621017329548845656587684975009888733412976820834387946691261337691194156016415537879041410247345533053521882207329864301162462685825148832882199734472034198350498136389310228583194139362215198921944672664872961972073318754328960003019552844642695276979778752626391484846936576126776180239884915319053960835562951511633261821921527303967922792795966120723964307468457187391020798129088707269473008543176676562093529084761843039409184104524988537818313355422529226905738786698002829008283710014091625205144591832214921048336650594754333228919540725593575979673475294748662497865345868642263090283486865125249867418661108494598085924640134825066217262250411318787882943386540196370502344229994913252563464422842387825336188410551830273453749721531481816296285894137630109379443996465964034946099403975073066112788796456937152214419345341596863258512423381618527126263756531955948839110530606852938521094990301123582286216000920812262241753881014225357340703503736003478201539783614398481219039328220340734183649980473439369328471164630495094539083475212311406188380474584493918821126507071583563791227334917059607518627425073089366010130902451609315330970517853012185172333142830922277373313780533163975644871962001893113966799066725705018983640841605444793626610458954342633712924857044263211265052473211465354436843256875354004372216583907422201309646543316778953049381829760631564167444706503938908300087958111915153611935040228484509983880336728725311162015332515917173156711949973848807042797625728323666907494090406078904292928878292560454688298500780976255089627507337851119591447662381883838094975792370150947644053711004605565533833893285499486467647037823609347130962893986675359912701267503668720319109736656775188977632257412612808255852362929434463059025579177083589013537746351934145240397543432639494509688102697468885964267721507736683686973728489645810094300702346085644073778272924559556891956067589028963564676018025150203408082601559307099980414819173856745672209097774737102754387923222485409413641760270964452290341112072352244416885693567610129854785575630041461299324917480307954630208880589411199082089237943115132183607156781731905204716760093094621302911966232127248469022002975282857640437234776736749478712038420396553386949294700147670852418026703362057300807212134562825128292344185217681272118332977689029642484522213872861260397214230913990936776651566946074196821662236522884145388936254904761381530559080602281414708461976533268734127627661695693918425588000634182934349151790821460479455800736067640354559679005579295189282750469195001006508615880914929744082801075963131236502507264765434021699805494855535098036598514946068362340717316011062664099805835012632335039629010994688704480582546333746301005455793656444661792838596986428005518672001701299815642849545404448191268967504333400136958153453160237734359911095867730191701387823375266577757656966115091145111271314461270644054670511014688367406378249424290827584365332988830508526777988675716294381637435099535676354593113792874569394049053756700782833242873620522398276140729116941203400274383582561940596407810808438740249254370230548587986279147007191923037214113698910646808908363104052415115426145782809601509078669244143305631037797701398300896945886939013686722240754253533075297697172540281977058457552821574753699371848750369345351034036154703764705173543847099284374211234407652988689263643491596492829081382582403435903316932547076119900753901999437403972297993472796434432082789461372661605010201151861096588585785977691467506188395009243488422528946626486955731046792401452744423960678197231263734264824300797391137299142236984706963356297261091635884173333072078660489915503728949758284174308837036293911180381752214965813913918168925476945777852076864299443594070892853429738816749078177807712538829371534283221598786179254651741007720149920685224727928740664013177139259061274748659891145989135146169189335982116775516125070328497032769407131609618533811517911662563871820792497102168356384031731487549490102598072756756021329466414856268443019142199031903443591650365638437211026852531099247790004527742838626623142108937913451351122766801845661954996629714523068116837941309125486484398704659679618546705523602872969874150295893773353745594643417680714110159899234533286602831850241513333094182084529916556154800706246081542868749239156885919516552325198381382384512791092480218669340511269732284177892011069357094312236855578855806503998248035071536092923695406359045931852080695267330561808390642777200271354048191585837981187853133597412421436076379124966979542773602707290725341816850670030480298066882643248944054909974825916547221037679299078172570311232619755709239448055249989437157451242807746318075203092332098907793107027714338361967637183087981529605802154955501418804962394210492130360042297000518177617990899749826558089608006808451684382006497389370210654212374771786451533669595733644480722307420576472400838835445745185580931964313188783661876714184571606567142170907881547262957825466701054756622889140687600146517153036724641069544168359217314126722546680583887555061003135836883255368265509460222490646790254736079047370585247929601837858654115577298184915151787620470905133312854103880893524929954132785983453763965830711972497340428708454905269609428069770425421912847110835543611091891090843395962839386878179179908311076355073967528361294907861085130219833157608003216520772744833638924939011045467513954179545726798650582792901429883446726054789856099234255862737826163468386421867637213666514550705558590508932983661042657778827010527411691031599531648332154221385406533192328439678688294653365112603577693350487193769487382162526663483854490317742179537372098040906279246024027006939952940080313304670703184685524985813666639531302198331030391296608938439211576170623463101549981850846606440131918844026659845131270092600491047265921792663600989277148927582750848994166687843374742396112651629243109576111964654243455243355051692691267888770351506865343287999893760603603368778215045427060225569915983947816187265236570306951594195062366713047973369937533233311581121609172699756028050677407691997946499736218433801242427771791379622311302687501721128807542173465246638139878452875476468577313150010698979655088968489290812346970447794360210635861641212569320833471731661589258011050102905017588859812446327776294534341261351511377687050082393590781861198682714368830332934788358205142538964269092262291153105611553873322035408368718923787617227343174116115996020236982407546680756184108054353098720552818677012433132603234489834706000515846018648136367669306650257565834800927378195830963552848443089527365916126714741230953038626993535285882111416581500469389004473812522359734321287351882759985203241312984587912773491646489219015682179472437099472672877491208694064283979896616415870226139509628772537381152789514275884255718369167374731908435400717468699290553698233075318078205576194599248001740466215641980243110602174505400439018809918542265565920821543541744631070464648354724238560424041319799087113616159914679206352742852834539096884510008158425960759190938923777879147011252969267267982175761550308745765181976820475657441877220089173977859246677781432882777930733347937746344993866740636116592781931495847896262117820726812986232861757481606672725357541903859514780352412646204844831057870217917988308594895862881370002434226122912416617068430913866336756747989656631064378927310548541852276146939313574238863189794934277526308891090452503011404317576714445846257620138090503479086228710536577481294705686256533868349054353081259311729648791197703002043924214723469074250338464222710997407078162483663567510306608264912632139465008566697013522158843221578211125393096416522354980463481090581555187539698697770190100370229176551752548090944292206121616775091168025076985756097065373448156153716390532550054949079186706064485411866675964744761014067808715091043624730539616289858506104774495233338491532536205845023216794659285872248797280384429936645354782881695845363055418286319650129703439916849083911051122645120062458887772134177744940950972235085083817370111641926519813576851445876840122398271470091965362841458468232275612821087930506981184259284799453417449421600940034198388826689035956050506139123139151219622895512244953999496758065262294869519687185192692523600456215417332216133956770420455303736016221011704463704514415370403095961243030969876643112839614771518391900566503446682206585626238894904722188121139357522529897355310182030559892009163668146604598072753967790202106558709822476532159395387165434474152106392478755851297765145180642133234566208790946849437508850778161078831551020195494718640270455774185315112721655705003092433178099183652187557948721223007445185949358848136534815941845630661731732277321300999111006962393024272816460873057938165976496576514027492833671347155656435836775901857846873327655117831163001581746661405907812633792453396578636183066202635632755338974658838968213983826883543086135416502902624997378098042519137833170778032002786699482339442075605438558261808100427559823928503414148319049031844619067157050064970690209357461374382192519427846943929560544886746791212745604767079226372434262020440429072023448451320112560137266992060806516423592487082021333553342841535499680645085423035913735513801923257079157958344862090586602120947218263816046408443902790120282763247496960637940149780817042142870448631368541909392780818331239539724933863347339818166907180292286001829262162093035811579203139448073014391377074552086650834320104963067524279796583376016959050299326942192900970266411590873066129294387948158580160792775618506933011906952224426846849406239068621645357248060577921041889863883174227110725673508205709997645573316423947191966010866311360556022170313304688968860261149973346634781337725077432388572729567093598484419560105605339887352011243187813272632898320485892763525698841223996955024622150048537066903766630185974717855526555273349039494237568307408524916326152892322236257039005615593105613520243770792697743315973287506100783431773769585703231736132168422676558411637211581499571512186880660861720045304908417547361217977439037198241491530910405972922155656039832435643484974651986871972731801235237590391894688097726829624912606529653937724016184832900037124571861712072850035662556495994884361607832534907896528010076127440374409077691130685818017219536854378484841940149145219814330312534975701342277220070255591325865905844378524841898917653601323777634193719780675493007305047262556395303267681447650682128020731369210989332701275732295929332965027396750603547808682697532426605243786244581696326915533814448175227903703847071935123091114267435920751759634231165777260429664524754868835435229402361658931398408098070756559743860769199254700148224792297686338112164492117370777886195407653773883728163920268901856231026162742987460313416475899207630147585331948755197457616206857181924695950899716305131001670967250479208073131875281411797258263771656725304842742828012567268540406529193005366473922546663081175921895861687069697460855433566657809162550438525974807288711049429928918678972235655303568386559854700049621257204118836916831297786950045493883734548541131156012251528716795289347070472549172274133108793739289104372091148892007643260626253579646548458024664513248570905931002467638161406261450167910069238059243376457680631233833206612993901234298004536435866171196715759290660223874732094787188968189645212349276547523255023299774947286596878659470934476305892426108773990907183983680749304971972847423307331773018752637531238637823289427732611309196872451125344371725064622199459229376532727397587143326953092034359151953785058042184581123600365766752901518819852385822021969667475069144274941042529252559155508098755378911432204013764754612413103335155137722812451003192648020951613633926312535933529345322373070569211232204195146365866214662560880241815809036105957032570790962260524505710445428981601203966766326857801953722107314066221902248860391564347253081007331479654319003108267074014279946253100153371192763610655549718685944612413876973046514366057440941856763744106019992272464771213071370159536920625576711513258067423130629848411442146840182078329373728300979059860089713672560086475643553383653147899409617458055487596068119858431640648769332747682396727179257195997508728160196142998293517092067675786590495514899099598564759942137186285458441649060265267184692260513288672339990180690603160522542266051986987172611281160913976391199476678239123241043501870218079027188250265041417799875301919465917010743810843390317215468707869333483102280554149657614386450442819296015818676555427609982487756986007504722639754100144034054914191536822708101302985919327542094792235420226553528777711151965288548713529860106373847402486893730112158510283740482609565743965288074873849831840902404690607794016373835703275874945249174763054852807379552493802479136862528508513395962730854825307990600095042540794626505911737084599471108921797120909858908631478234734352395283409909573800106828255119251376850256950261391018584139701252702101290127415535720220048572606876010937261869859193355724930671190027316229621005679443703694289790642135632664383016937499854505562267545525649579878922140437900719738767722783309274697690400073564864420120890884243617925935861463052368741341305506378440379063147354262322227361359800274119856500558123336569460971357028397098204285758527003032123957218933208902689882049492148723200788662049208605981688894785313365050263514139104799425222801797102279368565249046397588821574072446841615486410468667741650741194509997129893852558573818090614850365573111292836264638215756402868424970682008720379488914592868041966940573847018237393428052490115192727183663202733246562440223860360326289029843595671557420148438837001469137274884171620553217412196169508581322933890513241671997795807241183741227152925956406841294441492309965025488619581425924240919286261182213013971089422236783376605227216268379850835120102509034281413137429276759229276004804280562506731203062753108226307489730402073251752007312311214968273189709322641384661193891289920624300737424002807491878042675594632205144775209015141246354388751250213353568069978661992128249976549884525583761814821523724034148103171215488063944296224598455356597128510631187274651909429326708787462865873656628148569797147588129497844028058931127606077200318207109681412890164988156126267623390995189156459543939976400296259667090570211038706838775474726730898552903347859499456464666650624716294884342357949510773274390632060807546823226931292750516842597104756389436109011272086177879686201181462285529078911765322389123622681539036961704147666443079610300165155848853440024639331940610790470238736720545718353066394029978444004722147169309589204476576410410487630178913566680041848074909425472598634377095375130118257465941949484779392596633740417090041241906127550519986741711708480039756164983805671201887862164294069722684398832598876474202805431593881328335091861295621076097997795202596732477981003280252569834318210890331055974272603054794097464707612364905938084982896312389107802229531934446451069333692023238360271873906876869817138370242678610770742040861844967882036135806061751003194137448444205187046670621626004045982041393865817859373539856712667609536224066263154226988907556174835576097784159185161496435341927047146734999409740939768896815861795188471074285070742785845543131374705594662974693183172944169774129036526127863963318933425861309684960644801530331489547993024125510711196169507159916249746235078461453833783261354227602416479155445855986708366535660159558235232614691319209706372145377137735890042170752777570227717373215127801931069349681277270484388046756028442514502774654767559573214411220859932797388420794485421134978479170238309037588604523015969042655506715799935349984089417476392768705038039369012839763493350306534391030110976419044914820142130135873120856608697306716763425692454069581350287530449214597187655231633902090533537448838206613118253782019940576426592140855321564237508510616182241681673499795001153907499118983948740663994776887017085500877068985157011918837141954325299420778740337876967428563942281541624940710672197461410438066703484021076203849222637424899908828931588789756289398842457937776218209303823435694950314901991608685726889961480320558122663404882551311870710033282908614121221907390139297340522333600408609451343510522771444336221025897860830912121537481433705233225067254512899053115601767040173492679795237693577947895345280631587081609209385820508638921543167758638140038946440106744132724125420215363073789580170560599013681414300266093113862325053377071291515984943277099882694288794621327926951312057903851712617827353146867843617489874832105251485217235248993226363278058325172881357717041784041931416038553608175167905002532763366516955778869004623894679387794365348377613109013439384478922974895578984623664876080552682993638440850917213119151523578267755934094226505934183529213350821206175516162725660596387328425103069249550099505660466414675823379262053359846697430224955123160760145112386135775282933661167044120547251918378328606257398130137165155207414311954566478758023817043183808821300337361356857546289442042047198325308165155985279664557356563488636376022432260353993712411473398981840591149800609626065845539601322301783129967300042685699336270135159596701892449429684017780393199481512928722932199214604689850483931404846130056439438768093504439339358808984618563954726194589977860544274658341236120596023791362528167066160250478325109080734095514313291815432191346639832720372581886115789240975299950225337481131164462962462282684977275147137622685488747704791802480463584163808896409107710205025447014306413901599218370855188669705147995772362795649746091530256451448076802491235062026472300052554848112695530361274709204333272395970411902095608517930813686227283745142493156810722598041055997320614939521904347618833425161744352465116793987377195532054280720263993301322224213586578618502086274978969323808773529677236493518484432257115655808205995194168977354789250958762466836724991130109497479748475903772247829726754930963560216887875212711761819511958076574159424525803657308625470447717975272532021938123585029464681409249435740550585012535400637547387671304355913720922662387392284671727271096001853618051243986665793847434880029214938923509667241499270347735576596913479859331199627584628324138636993459924366519137226710192786375085221798462945888251721720443926375409072838199478001823662179227423892734125806013145687057239774011922358384025028507932183850853324235817905547310565851908561554985049058266094500629745917178440226962391386229869107187572871065004204185325133943936184995686830139605699658556067671086899666419970651683052020159949459681877882794974481552483132271650088442936133675510169729935087352913944560994338026930160228648509498640414820380545891876282717000672743548979078441414170888796412279482315572503639287156397121839327452565191717101008348749234002811035183552384437151716729618068901846467447523414863034244333045505008333408865397679241959403012084738504479271364713946944970866241707634615761803481886818371208484238592550204029366462065595965080269372541977720690666224729538797602384791596037289387147470466330481431511353738076874753875879504620972768388503219786848676512696568384040245344196289973164220796501064089245609308416836173846738628425034229182813194420197482479310227809284656114292103862041390004506565244780111220983108137327912307079004078172748023990451737115711410812221966957087754109171027323389837255839141049047579467889334270821616134838586915941247657635937502008388728509323571207278585405857162322561113243538584481669769438668549894411153060116816351497929052342143172084239636876042751237203300517975207362498230612890119627463372204031826047790465419912356421325915275123260444638308414417755944137347678670409830121052134040430730144488672023349283410528951154096190572946704916242101450275880531648557894027333597687559080297199596330478577503144553203239379931894723502297025397944427814663617070350519531234086681221820459591897219255258058947269914793962403364542060138673686494494886426838619192893858995610552052127768795016218341848388022696643671099890334239763010178509512038611509406957653875155412776319098564265520913422481617319029152634087661440271245454764294150983868381949969902823160703387352749404013524547710132599894454339792313004456791519489915646521249233595790528994321605678354203153791201376364557661626237453262816512997231336826532278139062993132062766973024449282963311614479408055869948676565229221255490707561761842198680864793686339115901354653500956102631875450540733232300029282518143807255003045865129571076735085446808980698297636493269757444718043131692752749683663295598249555506433261379531568873294932873855449860348245631490691910045931869545046326678035435106666960424698162483995905969681385713120143204035980266870666539368002819865735164810071274429044234578345476985853839612945716485312384912943630803108037561435458277391736273471058887926079511147451714209120304803547458451264305277727109612694353150454044547958099258759405355597643980312131118653655393230954634447950619183670554972526401968431845609984037254706699037453355116433939372394516619018252936498640268882244716755132778921210069343180264197258410568706431537615123893196703274780644562291744099002347447025858639170355051298614800930070959133483141098440873588705178845023102024134051521052764140861325654889830125154322950213063326740156296755730604140376617264406817157340134192470740128067325312336687680305086524679966689022325803836939390862938830306004145006212444987443127367075040730282835372707100876350432567258232025361876781185948188699298362465486606951025567381958487405547062844764160493384462970535622147244121285390174242059718347966929545369323861237241776033269457132397156808288776308293057208543574157288361332937292600271995835664122614887668272070907730974404956458803643224958141552306286143072777410111983935228648132457337767118491631617198627578450772100872452702437879869275322219135094463982190272692772333702816721776153469428172277843592430572203295765520403050976769789717182858500435523116228176865767735939635286941772602969026074021136613661393966524511089435243375721824023063863483422978297511444014190495429064669290734115949916543225114042205029215148488152912078246602770676095034019106120675298312514846334756507278636257147864840327556610001640148752589603949555445194492952626378338879663517078776513624007809296339365803216405352235570484981539078776509788100184528194826338687117179172705570011399434211244195066587245558277409339887191977168212150854459794845127779721111734917775862982594969650631107317521234229225333260784987611157078937823856456008767734759909818235736491058974510029499930859704543339110750155509038251174694323039754750274589976349027090187507587545638341340223256429177738453018903831184762137077688408168101595995289513333752789665412270557614741265518700692399199942007344499212491924024704232152760459985405903362975716443232996437144379534554102804027499015205952240557038705901841575189468220447274426855966986353978154822553097556303407261358442413344629861119626619765222489506389746184979901545218605041922035022950974330908428983278177400237425545607811079315888381444674917473119841544244863729169011339888747990835031115724815883855109708887770556204701210912900465269122755834964868182219314441881712579868937865447944491146449822779207233891053893041009266402083648893424373400961997857843715016423981973922398392032597203674251168562346701474712908160015962082661254354120006742646806380419077384867107203536533920988385555543226879867096905629692311071015187804310928839281864497327575896835073730079415542014628479464444059180573989871208256347747923400405828941477718961326661353586059776257754979816954218289281787882136458944535487006492368592808499949191839432778575306962327584963112137723149379014922005175303998073647544474523640312894424402367173828951463571802237077418417459856629175445020605356320849187275016111961678199381492856058612766106467986504464007726476614664465532137316712225493962518849463790406302632357185816426697198068906128046921655196563383502156996457067215848210851717404130796680437710069519804269022103467676506725465330688368199402138007654530780860467292688152738874825373441941329701249394758699886749853145189351841816470326684406626811388865302075738675682424624908369589025280477283516452086514105928860188692207771228202120229616968278783142303348730747447280931617183795654251845294458511756039482169097589141237146111208367246342665920424818490961207305986053559547156863447400374068874157438779550935165903787739178216538757035259272615989781044275762977743616409440949591642991705249228205854909059221197058204721948706878491992512700380266221351760988945255529375857864350417657072411492509922568549504189438322197658262343523280029406936841680284571719757053325268198989155844828185360938331627995357305884594329680644901822934133681917178941085041267815732857633610083397689930926698830021618446944001166884618722594465452322157478760782486901421638965727216204282392611252472323145742466681450155157347680722457035952058145820270372227277591088487070289150967601721034527577806694748262239684689593429127860625957979263167803835482985126739034776505264736063061272624041622998661928149243499715919699815006910465816342209073958145278769508811406703308404209898824950229045407255353320439686481100254028931068348051405854373965642541507987181559664358231517117095024165781291172079835518996790894616340667237200208698311005339902829750221872273327551602237784470177073735424220850703451021164695528704100146265920554704763303351682965770617182243470427539315654984807758531185547719300206860268964925842342969854403408668558577085840103803332700195860737638012914797060190260334340272461631902994375526312553915451909191370845664661336350463477620419077476672337898122977527435283302066243090391915985212836677170155184490628498937671001424669598143301339383423434998503189074709910513585543842174767485698531588082438335874082628019834656501844540577250122217852396423270345730571377982572677902698935125109279597635471081839152431472130588050552343521911801743580213219829850669641484266867877177398911201409700667390157324597230856056022661637225141411079369142594700309341699118863458748292001229805129355317734096470039786061623273986221597190570942815354480093760030614376099518712750759891284130798446316240550074524450357373268338600953209697646517995790570537731225097280929153748115983532349385378776305589524755329559020239512799351581056165280876930149102541479040190192135759419073914147294440671764181390819051875487864898750819332921891627921328782899789778602702925067122313930913712121639719097228142587632866005289323269295347455188370422250464028241753707863683485023708624862336623191704441971149025452817800804691021258626542415881381357229926302046800547853123995427115428583278680745145335461423275860794256150158890228098519272323819280747716318292992701145142902010030057321302251746199223193763001761522586797765124137993938925036659835520926376025957254434193866019390771312137363507597873138826911838170247365517512692488770230859839107521505025880005579164563059832005320681790957122967489052204309967781920568260436010367711623340784708447582528689488376869216951790859530440211781363209973843656829034576607300425781679461574425197899910622652411004091077021844749104665837428639305735750506491433007093814619294185603505441732943753648224837214918092802429934319640633974057771071145244812115161305065793569464627713725672853684645149807737204588543793735551610722941124976270146734716282533088488032565457841385806020092228216720211941289795071892333986576304212434069342788417477455937200528208347609661740872609462773912121640348454631370932100563855040856463106628683882788919472722801139198683780067586555650106413071759815851231888285367488598731543301291315461750100899150675252335618997294927336495656117963326060168130749909316346895387949346398589448519193097600928268702046378512117443151501521110629900674066786740827909029731005928256405960258256967831400911176676037873068252556372406656818424873635881230744279804935674155591234160127972572586361994677225638048733469079657862581626907902667302195290064035708951983987975075756860897581107925423675752214403959433014802511397109538408648407951831845833753740276240506183937448869721482725604196717693304025098375488240664334459106224313652236746364728567191131718258416543850748923787157406962306708326918041879915971332939014506888770828394868393629728824369565344996764123505672408002381981260736382664675924721618382216414793779533896172417457752368175848043104344230350900113609287649100710007999148422217998837082447044861554426523203661591574391427014091653399334438330503800377461839918017800083155042344303124799225610676706456696588296578987612254293742410185000445611859043740331769516933355214959006461211278214126839653336335407484066291810487389229536903911267910156483108015108527461922940219051690960140080705546787966776116959448909304648369817285497687263715906534902579521707975116544935879200274002211676755635766211353490506361306834841905973586590954291857601702834053390040539544547431273194079992952455312362751869774811695699035278818991546857528854269966739463012551899070267435083994642523473209271092205695367465119502217169373418490537110264895930748882465151574160872946467390197045463760872220896080707078886917610839078005426434232091212910764665287112537482215468268888356003216273573441521697620927070883072091787885882120961305515796337292895733833392909791578265275106794607061862329884766188394266091518117983690964749924964404375425292982138831492235333860838738533364937137343225594308884626415112026606176947050209298672850263313879190873336588289692182569928247132405541466585024587977804853064360257987407182627517960191704525798449504112787874931446000124246909999959800800363613835431778582141115920606090340139440450259964517048362868619919177881400788966604510709681777848298433728041670517396336901184159732176806965186941348522514392645965774918131551911616460399216513685001409164071050616625234493285333243708967987491984208739534514948520392490281342601281782500340642955646831389894957608850481940741133136212493382199632475557926285853363756295315266006030531955579286024432664198190392485202546053851771260352926264665488082318479998018647364224891755201142659391899032958485723977983692721662064252947748249269381813091177152821475478376281144342038858494338108640702574332682251932065445732715564024283598125556705702975711511744868596608885801269417003774883500423196643762972472848914803982376347252926594028834966060516972727130318200767918701754607944631791403455505370048977551515952649956451921576979992771607647633329776714444088906170132153931272715330686271086071845784588921944453136699583455530836893194755596459924241648030532554298402763387438772006372350966296482000200316973853150348805469448225030670598768460321078652983873515879101078621131531135054824110063598002200371768396031817972009624654715987213119486831341245055264726801778979133878141475961084890274961415526013125746842899048799190195596678544806094054132952285468086350731807295527171334067316835479657687590419548054862695191222155357861160518843460593996798036848772191043096438911068519033288662828543728626445315422137285627921967194380782290984576809215884319361247112373176067789842580677056001363801785258765068543761412652427026182423606575580261662505722390686420528648952095621175941518630613383655780975081668104332532104362216482946845412455690916768979438950285201992144768707386753406608826388657066301835257090718694987205274663711323816998892752325675249841968463105748937729133271331095681597223679073682005427452752667485626821397721905250776201232783149510058971967543071960297198274005278080222324098268624121933898348115843014844396642358609566471030705550330322795284099396166711654187236999659264359015696453127763231261214223157572913049513261694697603749424303654225252315431270956405351340369072299034018196376308682809415162559650256700114752123886686505720468068933693144835249563033758062247062574854675221885899360817804275751382834500041769572519125100937491980818639573845483318880800839053349313265655330098970306469997245471394443289596616512330811707662396778149913595715160587639976650362478577256548684982424378677872653406105519686745631414579827082621518088296333443266008349412242944068586548833105994859375448497110236118308724186250880579391277045161037374673877687197341216492680085435201279604584424398008297339059910296016884898330963624002505816097520639295537845099532423685002753306797608435896906559111985434300982879735471652472615528777060332252792578173729221625695776588097295804445414111922839827841540473316185294293252050287458701156473091938967126932571307764679033728438915679497774254009257404499183402920505368430017708197019054506385514583700610650676446267967042027268158575973451569538932627886513886040720419591964529576107164202951418394243459125021528486850912789688868802056067096050004528884211027905632750038049154262148462442889961886457413844983208387577591525031362844270752807903759253936081564386899695068212924271106431304416783522564579299097252612520298612025872744053997765851524654987570007930406843479703531503602918133488814190508898450271928132945889539383062403744634196479050201309368850863713930750244400388469425094365748686240316821729371088964314274047623913710731999118611807807866808891149921064648042483648295994270656942181483697622181366221150446311963760914598783779993392110113826119414507893345041372841627848093224274548640588543322838607155446992962690938882807216054203362977294872524457668458979737298072516891221080422158261122528938312933274020238252309525897584621061348754077272007781294913829236287209451629674684766387036778443125469154471254401930687184326079915785594398605182164514605677736591525419243340091410643637284053517020283652376584509715900195832664643631923437902053840712795808189264862138899286023121865563011110316551376731565234875731301208882215349358060510754699089542241786205144607531822198460854109018828360985128399466370442093855344085150801662857878325842925801805346818607340814767532864567553457982697517015407528560834728206110889047148323450773192240392524773390102450509827742268308647090685392077461234964400205162091481000317058895660519116180579863044513151221116615131224713212420414650627034814312010468491208368955001516480452309666286502701465737565759273680862760284648191537292792981100664498785317796373013456878498998367712465708011491003147710712620706421383657369468808258041671145747126603524884626379350997430061773663312025445535477855283705617418259792373261408968783913727236569427184470094682065912653522924566699596482628143161005214829527367322720021691093632042237876566558447391236982061093523906635520123100818580971033587948386427354513420504932702558891572716425750318410934501617258328090896338620888572113350309521762483976832609410706989135123612238834020075270528625844728838673079581911258903796181630021518093398886772095564836385877211853573339328068450117212357405345297866708829723123479941369076360984988080074328006131906110885945802191599550438204875307834112337004657775455331657677261437014145655699742849466628924178792676341971050936408076139728713634239436772762698524701068782336196706238361139395165003097053372465099960269233496233305088965723237910375807080194431342594903260604293314779728837899514325034327811396914352809876314838398504839553364996928778657503692197527379697107630831507336098197606930231564710830629785717068655675976600743508953183712146217571078033305069804595775880671379930848759410357531818733164109892314971063905787143435996023658060093241917054266670866723064834589898232901961047344937217812530524388795686407545791774227834108077209767034506674212611109991073783017602141873124307056443490648731030730563402031722238219606727928835889650808247642779933088783008646040444718266496069855803795146403293501214324028596445001815308695553281625810292063198808052145141567158826104892437409635057543110324466759294062133081932546866103189221467391941144414099492029281672199205148616049836994079146889717629893390281014205660460932635188687160226915929951334418752760183299822690335756639559357018462684959091965403267714611638904539048774188166612996574489134823399269286828788836884276854295287972225728921734491798903694243629363376349838354438443660674700881250764763259798316458510315582233778579359567740447863382829624211081684662930045066139708483470696875911734358809920717569187881789113053407199273647635304712203879287220053780334349155039042681966951658624534075908830772005192543895155277468338867476727156368212239890445765282666879057212694141241932125685287032407472226342918921999909985433861461122615502442785390717098746843840834329501930924595495027590333826667201641764243823040141676802976696389822727496619991367969248996435572932475169660369091608278573236228569673341136109057851615118419988123234434560016210554666727649632390412436520396767220466503847486158485324852127046181083847748293411282145718681572467482968275329357653015190092334049878084691952751875899393791522236845345136272966353592190880303994989497362167783058776125480565631080690514291028961651796729734475603069643374476111955546184102934258043200973320171960918960422120125349728862224327880039811080137669641860746540204391224511425182621761199905834895021961969478928978340309222355544215522793317750464757587027208736964146499670400995886440986796066854479185784893239046760808367489909454855369832037382044956129801774726732849446146712451147033193478742568121880285688148170733781668850835883907443910531291384056535722771020306048927815926449965489935283901279443686825918676032537229628747443314972344106291417511943642714747528092810818921042482377810008133177946072910702366655054873725475788902497477563412197261375926473406715606099602330251126160988699869940841224179179040041567787494170700372536731005261957041457088164223518994868183670712765283319585117735187999518722470178030226113012947474566267646063009441704325171994742901937782240796127799248685381757225262386047085300684615548980264942088716006111373851487552962932774359882903556272505127174911918526978757287057748142367161902011628102952125361970941282402799723443882551459503786891472030017088028982296036914575987425574962138028651591450353690680660274092496881562604924669231921561553269674490943881917022282511654445092866020231994130132206211305536284295309351954739905274282262451796592257667638687654334523831390372926885196433804654265658070151274975836051044857491890196015154986623713429340659732500598639572521280049175601835193583828902138618678905484801815871174607624651876437358111090901620430591796784590205192782021004850357998762444331411668292468240643049528202858821986198153388715545226782822794521965952340568774042756851092870347772237785131559764221137228849537315225919564629897705782775254299563265505876680998349173166760455474491723505137190419068458419566917984536666881338962834448931299569045289995145038877855763053905841804279353346776953738394447678257201831086784674457530230966124148306034536257579556543793864413462081361147602098285599276886996205990492267572968193798382531252891563267850886645423889252248451283711461905214999982118826352948034897441890337508551129796176610504417997541684372578587894662853447410433715164497060180289069511844736821902619405744239175907033323808973615548149176852566170355175499597639976816325539416132854566041925293070001784835402335932418516775654176696472948406719555384520930124498192503133641296950866826771229174313469263396252115975950032261541900364076045684014401676011762035758332836974551092355983355083978472000318280576180670180631312499929586403780066624046679632701585853642184586629205102129011690444824524966542596296208616198738386695023768723248542659087729883551692935393183503172886198412973089069981171845969417875015061932289135137053589642616850261241375148029417522365846443565395393878242553948414678510344316460970797777844466719109831007575890993043029266250723549069460332529420465135749507752897988297479932335130927199956242925975456661603813347135145585815274822117585936134159187609872888885518235425624123180377721452828651910023019083854582498495337845082449191347254905297504119723156568878527270632050717017890248455776301607832401603995060618168719356479650726339200276089175847802357005647539298572586081418294085490196422600294313943833370996456886790710366296148847514567620434752554390880518918908056991265143195919750655134963568677220663887174946095341690674579467640129550568270874168819447429177146564141294695213813797314162420555172677492202036971893919228171184757489001117938136506153948963168282919286472260498511223147747672225766378640078296953199867303456632195019542647035912548897341804812473639211984525292010880365604289504623903983613036881988008296155146047719035505048777449071500158523703247983173937932868579159529134833162433145702594470616834611343371749516698432823351658775789033097215806516353278078784205554609746375092926661781387837989432530557050151924112550556959813321930739295227901856917607788425102223728966641940259540852974321215476182212105435418388937100908689326749971009504663612841434903531903584465932297999815861447864525640252421043744169689360006796990322110697264620167317467486289516572857005137502800276551210595326086507220171946318469432045415930855116657417747251408139042212298368905872477157059910921937336259106895957796178099351679722566865568361813075727796429141227930025580819914303851179192197548340406995427857950096220355572759924646170139697866861820311428381137605094331146503410736188273072994420546050628364036055448757821479408760160862792912071901963053756116233428032735424022534875194411317053708479460005914559804568459903206924495889666891041646715200242178006974711220931423021724281962036675218918861495284447967590386540209967969526491133665457162221655775958631363116646991335483990406734739442900792884108384132958399394965647681968431226215843422970818306483665117921486790837641969173235048937271192575863986046753286877022086311850217967741421875954412499321589802499296591324536441077142026221253009062150456546744368923855011965690710692594596528599697054010955266592701227553555461973333949572223765771655700280920174067009756206681029270539349536930492307593957019191706215102825793379730451695814098831775156765350658746950454397173573374403248033470157245637065279059133411834418989557905128700734359143982901888644518786649908831445681465681439978646019022544118029289404145335407256954940086235230538361480250295651388669087150942434677925629788109264988227822348890418194022343899504873349050805892265499251765230116504635873853237489171171917952493087174786105440870441534104277352038341269562437999915218437781618500515177995134820559824938444901797915022986543164270584577952987884169281387529330640621898230524531389438598391999987178137744986624181534194054870279625172765077282731651625380105578541212749124427517013007866517103882183563983258902565033052259774805853974376448975198411101565701297099749792287702706313848754980157030874774690960405555565992251636607533869358682798784008885615314171219040732142719868309205346312515840594566776191303593979074151657194072528122313721254497517793053899673655234242866715593769585536222169744384091316251064106144196070369141936628037461668215684495792030866407298324985205996106537999657460351335272547872015538765846648876331655173199728204261504285753326516857391873988220390492616185781257069231433291043179677759723459466807700709552639075734892374853681710945010145967960991231686408930516587157207024782808793488733815160881684230225554412702127927375310245329880525994411791508511298531986523242124350251242047040460695635575963910618880895391265439077499070488675251054113616922439964218971933400947730222161682046227848215668097613476191722048949378767035506551115530979232563039063868380722304977816948063612395209138344656357333159624811269104325397801661126138045996254014628725370804627916321161369128583389670644268671786271397190528681247183421117360423192815770435909178177518305129051148287367315141703074365134468755028817943441963066146832670451849511124889951821980269993726347988734761616285046504610491637174923563812726836703180170094105264099514510292979929151426287319116116495019985933950049828177600187496811800005246184955433912009765397564140570591626403475781417704799701606258651426538009251431504038160447888663380394895742082026704609448894208846480067441646451593073837313113338347555396468286222274738560541785522635590620806790613762537892863825447627384153404074696124580442521074922394658234648792954212035150970771056648948445676934785920471272305906435826689830779115565974338222218801337213574624020130781016874160682116825349923598642115582144229966431887016545807033561080390513540988476817529180972229047238586584931171432139802073958852616318197022399203392781759352409002536472087068443694987280811624748424148927497731897772466715024082978380451865061838101755353309248053421068140963807567847641756718429753854621362122915269390562687449803843545452254573744180708493307836501230168694070204165033316515209232622454490129920447180025391561837831806256920195832773423058270418183749752265875505269002176607964797787431078218428726410735044321990047750180537797725054428350093692714685451488640137210070502861263741339366628881471064047957832297202475299665938731884362018328157822125539424247180912895166405259781743423330180148177101362657383111679915974428654218003033200935903320798722828807363721366448077038546393487335855372283031913586148114000195594186705005540047200860990360091608585637719789874754344115175453549558196044451730680386252397147246525909377902301603695370372365444145372595928749324341254740263824455070402077592895874460114298950461838779801408153336028197284452147759367567741024928944699508900650911742383263274901061382486514884455031619590144319428212426453817746250619559354617628852995946325272887059863141873395627967355276312070293012599085671322633227722315229463263613670069574449624807447127052364994097130132043122292236902155561142215060201494042603524398044460609102529588597243009776509328713526951221240213758323078523096265004842670318928402024490635965512992146990567864568498936189215683022664498327867001506603813485448251496313531306712330924962583491559845453628907453246236270134687827788634277564016326044105421199887185595820014328849773568596229350888002755295067407246791414551793453465756805718003470714820038963190366652321259613509519208881884121661879492244992504491790146616668487479968193156640688308875282660854204313233782092099871151882606819404490138739579223018061196615170714989469234008528192009732718992935901927406645304227107138288304253116940379214711528654069436450693807196793139034960565751537481413297805720234921392746719979550217579770882811922648703025448177187649893587187250951454133257157779618943471495596203741169623988573260009136180885542087824501643711069814255334479464182459863632930726324319985170255931951379308223790267070131462532418406260182932126006134013396369839240908596590503401688203297632457005633378427399238943669296149598285759876025149222747510326624555311371821958733471199764150522974822861070170744434834785605948030926047691135228956613264612211003625798570552349336885645816532883398987117055452369950894075436859977531571683103826190683103969844105702222461321428097922427719013551373012922702923100615000549715017882923828383491598365912715879061507506174197495464224177425699342334940277064476470050248853698252969002017419470783867615488723717796778170482482573248413788335495285302427397424746236711222825933056455130504483416878972083882959431880562231294573460358434139158559043256884091540387867623406470030700157839000970758407268308314525999716937793962431984450323453543794802997926726044035480413983961420220005136451561871230730105415250953350210322015604630072441750219108830298515891542837760318508617499208020316376182581761526747648462325092868316118488824840682692140890831420151031602702333724398051064575402149761909559652256044914238532267735482309269340930186617669002962996241755663594155978653132331858030193520683119456059541667103078793068208857695978237024868935379598647932311183417991658992536042760164622282926458771100375424101978869508708141607024991205946557913877979305405119660384499316516576830444642188044532306977425447598684472539359370444812940510515655045080146725395840131947616510611024398849638446129046462256375137822994916368582715315608426225239495007142402382756358714524217426602099964152335281870051398919632796327405882499616626032442233083657612302245141078306320514115902116347046021836411581667474795822148425268076218217030916761731991401840206533623601316329433050450098405053709401063740750947226166641164620604281699809310943471879269288840712713677731639620273643030091984756294987116142151449676908226359299141828790093943896069211521050442348123236217655367156531466870683149983646578192384065359321363444908550392375079490246219183225900636346060276722259941923978307382125878453510137269736275046433741122685151013274154954187018264045188893536031754630635801845417750081689870230127840191457369191094134613375767708254615308694485818705835136329573577298414666546323584209222723822844835784648271962280509207158668874801852767754129057596259278519455983906567834381435427015435895542622796715704183436684111103357283031543112460478570940859770489063765986759630065005088099073510378734211578644356956969755234428625462926122313154235383133897931484223301383875202408633772280199371079479352188043142534169570324792225427552828846660755015565534411546309831464695005377120707008224983461367580983763856849412514971611906382816144501402599398993129359144400895503742282712839846927885027939923926862887141570957160439586411975904606635396719373550103781158655724480790817629298803737020941605793889824440759122242570021448766313273917513920888813999464709561144370789056863710117591500832966589553925494089462298476825018800195410041108996445741617414348115593920840937601276733112130960612928083532310172600425645152852048483618074294820973976558014718244195281175150938664456795486536169450442752010285883823461978369468448929658222557273772529015098509069323927532219366819260593521599256547287232612664653624422787219497918921891747754499330725759552729376079637699092564825657683670841288379826301251453179161283042071594494201878438114948669780129386761903169661058294738306592633022410113672454252201984514777499660563370972061269159104469528854330542489613520608134707811808005304818358041827924973430139672604943674469835458633042118048023165701925672408521171613802232922490254037795958379844275118344256341956503885131731665056707239592387327060146341955291060551796621891024557326627792521827295097549222335891962377229172373591350116950025504166190243480731949405198685741446968137851145215824306742881904402414947241907463075038133554774982407809428505274703296182285530170726745599782353800206835241930541783320729201490046393821183610693471663703342729743781678241446223005163251656499862771123633085797655028221862639025045997550846822075360829231779079728418731202597818587532055989476102170893881536185498784282431019434531337126984527599728176907513740908911417041803036565369005502161548655976654289864019134011039293014815290695078027789630847770765257798211150318044396343522585881565950863787807299030041680258443672880381911752108682827457280318023592574946130965715914384729262571613989482939169328006341341221727698927150245007102591811970242574821695727622872407402024089632138958515657589186398887188053835325009512462176249973332286327918377286691729582337097057798525744926788028532572519831995335550861426210806228033798751399703687630610399204179503203572639584509526333468470188199582782511170176798881652961679490818640310014445129694711307141289340847922542517381215317123249211106457508751548102793303116698360543577702258484430054638441021542421903065162579535768996256900407901732046842196586720322419333203468262442375070949220132618548076328078550557154484354093267810100798739181841875455389140231605889882523267068901117453494251189673430854774035608494556883448122241986262968062898591978245216006697501097184552385237653709398075197167598007209539046234783217971638009006374051361899978398501275726545314084225662346317672434460023169622694227044149745881089119552447535989658830432416494068543079390093679217693034697187947777709015214370946763502600002591637133066781908165184208092314925193535430619998575936613587813681261683240199631488791543855192359829939471414034489195699893160764184148480417309522116082635571115444102613415738596474428010161169304465463913132998513615503321648418904127799145980471299570427948161189047916867358725489929789450937656100894343041136169904093257629419580997499325248529058136555989127982794409458348563088125913908068882580047207023307384382506832003405867991055532253340289340437076290915043052380708562921740688206918647293171570993224917717779875026502813789044263959156936207580651780494105040859487373027089504779668284191895475097931262932659925817930255521180836278448296797790063470014669525265844795543546459620176092978327536071770464033965207860831462568253116378784986521497378277988090513783297652913656024803440687678925480839684477868471505799955395218770201477807807254238664817356607049647518056315150111180662993619075602106598257984789136396460652105623766994596888644184137772834802097912831873208216217922455598709198222292362116750622053066733859694306338209263475431017771347320058982246835160676463943601006909055868583060039169680606112683638373667450063435046861096790901441522670926420683034801687770568279725518903147620903245590432905192242744442591449341951541443957097061883900776976235302363088926416863106506266576716030277437105601221696970699290866435765059009243208499793686751627539017778138780193120615579185624127347598502021402405767987287135878666597696184960154867705732998014607717775099903886076637991785145190961502425813509605607148518617674225095650456581715199162435766495102388009041202177165520999263098430845779763913772339610537423635214582067200663137177001096470463424113916834325702637886819206454162698715257345273378987092394713041091463273658792259887138881362680060633705813340765369397506266279723107509912453405651651541919158147477920223302611036424478267060196387013448693264361546794089409694456800847529506434422139982035966403442005109790453881726189686548731053437288237748579066784451352974649983040742383957727729720836365456021909720903473875795008154731287964110252332085409435626380467916408780803473748670841543732800206674620620695058245152813157994184739109714014743049648142537138729154233238293682082083072480125513760929273080330810890535650309558898025371991537416468370236498405219389596629376333453756647907778735656147247418227130287584987675847212117841762776133343012787159621414145936811101302230528795023010748998314146650264020694171757331491401569800290506201471277113560494967570089192241698127728761528486342967703651351037340015984925007291094784495432465208618088867464207670247871622738158007858817311961568036806267387143799150453194042921662038653350282889782073189274237881887205935301120385727462549335237509614195892672268055148849829160200140236368939784510261630889821221822638563087907996761498876139739399581488306581691416565162072608550045269821784495339624241895017754977318598082083238822129046074528771152229039817177851165549527378929620860316850760660657704265424016321625158526862919482016494973347980337184716838900195715583649419398399110464944149395732022646557070653422302920565486687554635300094035359536970804003634576872770718171868724781618305171288571555188870024685154926136994800353461282621119029066987564351341684719032236815010424143706964729319344902072274083603079092152172603269057539280776928150482308378345173550904282301608390048921740532528555819199849357504998308848114339905995393454020212178813159634743864518006903008295371191516704486958652234118418169903445343234607848312626693459684749653433962436634500095577645910555981238568438221932016089424816273257699007377585907986672422484064635120048819808321175609765780868119422665152783859775449482794476321140569883277440474265727648001155903594358791802324339569900632009778961157267162460713008528502490311752598930073061678277191682712122462757776829287078616930305830846990648296344661832196250826891911343961689348215589086568044534496113233856262537854818929511703365177416134361071454607531149478095211065760424555453711932321005569178631205156848325438286218786312250664109076410816007608551056704307880012670890255379332159415029858037846810990636019845334770469046112681209732970081076672625405084815803356290797307927889888387658207606838948532669598123598406286546279134922748014701415007429197605482893892871868750726429088691331396227248051227908680284742068830808883845249434118305314595907755823481942174658624227036697995016433880717708634153180963495025659654174991879944650395674944077185596853302025894612584492733094310927998777468946309394428440417546627768894282494427361818473131498533486290605765370485697496355690775218277758293566185085708081429369370853017671142930112047732903722243086467592896910882422164688868954671791553992746817427237155144487091539347956003449274563925155708825711651793675855852907897284646249018647873690878770191432406390273334360790771205596248661212543674383743605660749445030075811681890701342116283584476485405819996047048274842342915019648304878065283890999806715471004106135281571483963252024806772767474841770149040301258325454653326376705500407607975723375017907367693413549609066122503172834151632636369342592358334426208352393416454868960850757256057151966121200408034870266661383058775830187262030803193912227239388697564253390485025201916024817497108170016789644932002790925097613570151799654985102316894924291234366018993084571246662902759145260107380611446353434893131497400104058447331320617661280716262511983372471933743420299796241551122090953308312973913302024600360964173957930139456603836881808937333875591660148963889599961562354601152380222024520709978303867967055848548612895281860555960572140654553834844013677176396924675498186134688708101679294598585747537855057308516223281280932115937785507631086563549761168624958503435927010978265374448924762216534212724376522086790973860674743577570821259029021094588964386738931214706211501079680032480404046024103413529022468611229424362117962082456818015347803679781919760403034356234803218608466885057840077010736271267399107356986236242536506586152286671935678807984786108567902377039332104777660422316055137479341127352082233259998828832429719717380389729774033044910604061984092951416727748402689018573207968656507716409908564403595159544770064647055522907505929445696076782603485751076521290004671168966034096661915892278758183099057106876983340666282124705139700597657099738294683522500729795084609309363614556511501624423143781913752173741991237222961549085266719205819004101032183142281958079937067694410920168847854282365752887164425758698380981362075395707482421318826623974461358474598918559552078551181230081729892999256155500953575599788029418919499204375397415409066770334314284241422297817077089410203381349092295119232138370215954579058914519557949678197494334086072220148847871082329301053521364191602209834970491852389764763313154816563784046615142307195270889467867504916243071771498236778059874191259272777162871172851356260626439053316255960664868070195315518030084086730133073938627645577133879406807032324775489672894422120841065819927577977343769943898019081698104120361657238238430557383996144649735423486398046679277365558457158257214769250583412267714038537009597831929547203421400699607146599074524973140128113118598483371498868515774612918184441899433003809735689993601239318438676870751521531152849748453885594637696061608136599242089029459823757616375733801411517167850307274587968224549168171004812549937568057713682486681124601787946724236373445217261488856863299701548584000500516371628817528497058026716521920495419272110180249389355403489968703640339159830877451256469110487096359187837846929172962877762828792839377598623585041227226520339434989791057961604652917951467049706618122308767533199766660093301276411800273059328470298750728275031365207408588528489331970689063220405199495757244531885447302627500307113642599704100334092603564025989424857488063311485672269579830918938468631416945591359378932988670984317445235939769308071507332927145873220573914619795637406294860680800689312573339814174538060768717874055075562633156879367942815916387484735370535895425879938167615303647780765627794826847793262483679259987372625515684053271353962876420195035822628060242067170734074558928661047852587216721043142723510794041388373168106373258648537283651434977285158170041283517522085350926061052634060497732569378514701795116238997056520478123112561907110600257757448191985828838827048478905727264083372292813397767234497009354770045788594546645094356529605551961328767629034107799629066287142567361045629272179024014998633385222833659325517525521106778162011817162967859981092351929538115607663538206416840792960570505234673379305655232687701746865861042440643419040830583450745939559453271031736283450259894561770307581320340656507772590145784644375684886340130011284855316823781891783388604678463456802040145721860965336265543854223857465378004686911250562073216731985441276928189041518484870750275112795058165000531956267060541988807648714260441438846571576341590800888645456688858593821860302777982711323125260017242919861058047116745586451888350682759033016439922426700383803721173244500388343420893443340938790936774838015099226815817977545972715204933803579503070777375841128925831195496472711061000957464274665527282975437977086464773671105723497958893710161250214194809792576668142860816950162069223112190037739006922428212321072312071361118609788487228780475713345626081495388375746541711291449257766347359174433265130660549814628078442563861360968261541289189218376809238122809210840609050705491167729880239945354168487588485663490188723251576835140960882778415451738409270042597468657094317862233763265800740937528995903544986605126791461789417056024435942843397341755608696541640760748622126786335736915808544021276093876374887070400253902623941503256758651868188438829829383891669224733546458549072138214610386636752825633649178980380091639391909914718446474295532012737828872332864207579918169342535352961885431453111084532559465960741075727796588798108010600801769501574571784476141488663805236466694157139988890777799683467119308490137821605333519115766153130345677405328899376752813729464458504417272098113290038793338889119411271024324881603112615859366426651630340534166966545055052428010726741048147104703130058591019730944911311357761019669301220761702694635181509951925077966001686889743524002640856134279205471663876000500249033063183396481400707096323548848178758150447008457806825781199221537755720305070597033010699030518673722340082180814069404196791748003126579998798875058523214127435465563333777836048196995097625701238886590876722366599275365420861520822980323972982688744296858217594427724460091655064768871772302371625254352464547349813529137191990664901137876648727220850469653576928761586422886140680058015991833147302026757011337854921349715552233492924471301135863408282848616738097207239210495971811257544885639667307013517881624583849605038803555669831332415393435874933492255025336484381923519349926688410951152478066133689587751332975885927962510329643313567865501462217157262694072298066969010434696248652393861169966979158221133366720260682074429347564762441454006692162711529983473054147763337166076919217434826971743731759115020776278488429917338687511678153133438011404010904644752781939548965785329568956473227732335591544813515704809252944406694143225602471206122205425710985893628587104921065534954932488952239321309072020702826550741216174078172227484501838781878251913686757720805859894696440362106542553630871709912595090303858290311037288455021251717158234121961058294591457805869973880190326666375969311142139695424489362742569471832095579968265796750543264833882704068866804279386460369430327499679708888638014954374473771071783506242907910195282296617725590805294040720119153473917210233772575546442510624321651027557458680615231203289738034517419384582938140294049080877503137924792938741571569310709234577070445479539007055266772949022892767364058345572792535311202293436175087746892942425185449271677462214528044270230066804641673110642661428903157925644908503892097806569873365120439154251373872166717444122037115918879709415961595101877358405578896651263390576077972945203113383379317533275700083955108474635943396485468616392445283202597671667608814594878196501175164612168446317679074300015885407469378386350789897146296677109459094126860199789884548551589867057293441979945074204615993952250678683731599296147883120068069398805563784882954016068995889601750370089269097051315812842448339940353287687884702744183278340028120434778529400397547687150994555339038580373368117706533970530678861136153386319960381072033271182301622493685698773145830337845867169101689529049481130149712336698860978267673487335259178981015902155927981411678169136288166221739040729183982626497709134511853840141291062199465621891582165831171737057966192640634648747959222887407499172559994722855539341993567970867308096206295981445781657035202324548802268351591127376430298819215911273949501839507153014138410289405082697281359590421174420880208133736693191266444842293289956837125153100627648031338506279166590456658272986533511417579900251466930041090187797262206979035781137435334536943062960869084338931275618146779260218649509114492046419361221617151914283187330652945563616969246580320478572144922113018003255866667874307709754806317456151677607223130514590458130167371661594723954129731250765303533295914940731855807137311868142230941300097533401427436102638825114589978822263964034895757024375957826341795541837413017459892889333503267218265310906695154775572653273759608938514207822632806373484425780254772122449180506224607387102006408962849847122162676016169267035099476449437610693926543581026840783792697614838518481484968862096972573952250974014975121188218282340206254082517675261577181229443728570617282532754119130495639610841520232786750828027282244703588728874630259154979984604200853976972557870887486249666347837311865794506730803020510349430382173734997367641512061992814476603549581045996940013269804826546214587405578464902510717954516168924265198807850986689849378226384441639861872726810313792708313976938930506112764351467824360123757430687030326145025339263306139803616515951293134479062915109064490247068646601368839319781503590398412657766288041758951940616668243024208071079179866530086564078491485965504291797893956905691421849546577911968366073348091946614967455471927099241773418223539477220196978477503254187048133034172453763077350733973717204933485522102966692573709430461818628687612951707423959722936259921283492736467713665104793699599703088617139160874144806916556889696193940169454679319224323723621673765983882147747347373010670048589120614772350495488311550639664686149338682720240312187110063267026991816858677753582911326045310003108770512728859085005161060324081212173726500227642107507516470663810825316848108076201964920851268235928287889980109079223494522267251647893328232358667173165310874669821791952966629202489694074610269997136451089414567796066449498130183187184274843303041689135911512273485078856656974080662862692023642152726513958854908724788458050276757278308103976941458130926101778220567064633210288334459884069510094267188058649245653118601612052852173499942960211133928457060072392277888341459218396506530150615093015330495515735209899288379862615099341568429258172379358589986332551102847934820615069000798058849428278523686376995124460489668279216192393452451648622523069395187480788935926558139616147988055309181840657259973618753359240430763570930566723096810012496046799332480169443551490936230590407040531957942418318525648944873003326479051080403446050007152606556063211281953422407250216037384601210633238274527265981094987434473770235498663100285532698152788868922271844873536460173481530604433145479927464536294212553122093281112774283211569037974129325947773648403282991218298068547268670419262593226661533403948423020883095218670414898231181334724071479156661713506740722469677182810953350860629981572420214904107208914788819525700662454201396968837299963279278277120530026429005064925951754665057574348265128916230551754785394458647771661929853857909338421191677468171434672948772106529185810824689807163444655959854542718646313894353686303989371831059383137206549149951399735897742336391784363918663243709812696780660628968034352999263980147235710430147023734919899658505180264057972983662146368690998105438392150285278392946999462364088081188639815705468911970561419661125062387212269663677809651082412679025583056902261909964041626830997071042959793207096909483445117343277502930797293523727662962297245525549934494052234128413002059901218852223165130866435093324588604475784684682674196373554723094765937792535904190249258434664217205953587864306636541269831855194950251332277460074802358560264869398354060997515997838125465774283061698977236526689340828734588086238791635888430896650695440372728622680938717317892554969036599229240493815868736233155177430251987855670735842966264606259596547331155852973307385275353461700604349433897503134881063347943263858272095097082728321939015882402509269126215977496674158842522088830661305711575507470084479349925320519062896653985822117664911085241295790316965239556585373383905385287976801796795446121486169474918868420954966878164264559073546486594189883738102181485959469424421202140053806168174959338239673885702682340825987833879006377741375899831931986404105874765014069252066608739062147859359662310754770011978920045884323341925573023885670340369552190889175265676400864329355209615831273235862046394285311186807810641837939516891393321948926777982984155059485489529652958536321149727061165460083919398816393188445841571365081564777546505912774644955116070813821112377498797675701161607304973490371233108774197051425378652309783838623766475580855156079067793260391830596823303632379602768093203019344078855193990386578024986373191917858333300119447687571119877667343623432672892735490056184129107892828490597979196163210704520776204712994900218037358915302541851420863981103227204844577346130559591401113285433691848969791511699090059010133527220965526539465371622997381980206616330601937608339463302568383770921442211002288608600108178969716446214628331952184497895986760290823369004787031867131779284035528621220711204744335486175734947171673959532843829929886520384069308909240572742006013979235608460651659986402335875974634448669644428899134539333500606836964225916551872685704007847482295912976385628113952474302858392388820180101848300961913332392972119035930759070876408149793529324744290691708858574362026625240276811632377963978416589959334643878446539196095787677930203548107812601783461755838124539207630295840560189785187987695824420275794363702573424012777334886769157258412809157705515831944141304295613042671952783941714552641028210288244248664105736774425796583072741799115530655271057744996767907288225463042076218492882407452233888187917580125593210199486082899866310738851760895135936074292305045904226385521506741269479270076470534730918362113374770981618180093415008515287892516425014697545117351872329619223957997759489667964553687780459202668542525360520374025378100678214710432608416214674655388980661931594065733728340484575733570621644609492597939049713017816019871963221329642756856462808377539706117458958733779282541360576100901993599457273024655325245205088063633521791458770574934238969091942514450973730560631653085944276838681521836232253180119892912311055644109678617947639079119658446796676267826375564626329158132126795905633688259390225884632244431420995410830480687114635093114233338887441563701920743878967632205518138605027459548441079622035947072563120709190641407555116669185057059138347426480478767480471135693771147110419300134959363960802490391498427596939167666474585767946944738868206210762167927227315566334239993769037870024738060523284524625489273809226783236350376103055681958479328498974739621953511684186309689808349473441396002221707931307127334755563288621883088455409463977787156564130894666982680800251728169482562750453755003545145837244249559740910529059101553616495740740300020258843412059705456640791959851708464129767908100577805014729854223190492965416885087773246163951250801559608624498808735767153849607373341956046780479402545546296551141059385992944001229118781484900457093592282460201090776997472065869363347948252212840855361549462986373403645162198342032641820362488195903400750654113868798508890535688541246541583764016835685244431539489339030293099899248919797920394953642042191629765815180741361848993714418536483564315476371865945505959367499161394803563283719629689691336839987521925803454824921545337995032798351149804618079604423174732697806369245304001467937050227630928112113625956517839341384182339533150825642506493061239974662618953108096522881665410123258943219261596841648883730980070207345649933327879934996484286812575779980118882067712697318457873217734256510323072633681533188845289676788404437974239351766136468272781649072984662995134082857409440756206765717469405901499855422910018356849161595059963035577702806930542413305653450595588395054320300808616553765078937810485771682897815237624109790304562612910376795362257905900256021072542517847409052839000405026499832365342409222061531486315964783682981990013043048147945547140113054054498798946289071904917692804237032101606414760960503095475540267207728231385947454570969487641709234712413071295716691967368463499263292929475203575029061093850862611330893333892177047337979815788738764242020715744999075330214472360827671647340799096983463494455301788914191680094651895144993334989474548678133820931644058365800870685155424761600987364131151973836500089963742010914320320560291783626261806380085776174581654830982722244912105883003478665363664226355737145959468425520782099525192175135134924309748995385483418671055710449151597550815097144172291864829335643678075972366290444865218267299272141071545960201944937779843670696281221240159035679758618205691669900395594470883488279102539380321244034273986457042140535797466351598991502926883558392504071408921049484586142593152715049296341360512376649449689951927698382597064076450437654236147185557257489096223628331953581793521317302633358964053656687505851705108297623397188800383989603016540967107966733384106360558125104552212257939851857090797716772261457499752234424183159707559596920593318784727324731200805085194417129211312908229696971789777048573046210745395996351972023797029954089975466765403480630485368480613652531493412640294296997988786903705809025132710037956816752364784376144885197745918793149049497215841672629250021525642095108605898142118941260218879372214018202184133347847169139674270217837148439630036718715776495701214557646812688544575829500417186744975605557101164344100791259807797782924701585510509665001456642574069565808071127485980795983780269934326893695909319639499050171881138423668716951031378203907169884567826505183749220258601230968477164939885199142450997403745502779350708599778336917526870096912034592640744527182690503439652983154719673367379172191207055785319175300490519667759753479584353600719796131556706359150632247970306632894649618819844849130077001191288229098970250560024773463611728369646194476342717262271298825404784791593367678293703639497003910260112021927721691635154045697023127795777158368526954617957035312673472299830146964136216855779112409071801576352153549053216993526419566321948821272031690057644286434576876772311303806061901480448814040994678419700096333222371904843164749431344252018044676124332305573130886434897506482695832055168065490923030631632959231559503927877956276319285468695814613632848261014753623838564388370673346945543129607162970227688815428998839013019531992042867527181073678473738832725158194082545674804891135846896261263494115576237726037664477270304860319059701060148681872729586161919521980100540058067456879891217282705586720852481030662018271122277278634734222048957985835594725683826552044498453651348800046938802253420310364307885110635668865578378273429457285651334244835518949922044831810539000822490254875417987147422980576536140676984761704221572065068863748357165510668405457798513375246757999805795072403446811307367763458543311564327154130537199443147725373134714986414961471762928642757772635148605641282169699821716496322382474886669458620310057193162963177683118582231868239384169488842927124008442713922720004350857782505664155180169589945855426424816634094912829188201556698014605243362464739430885350184300000529398649151354004075168560681845539375862311224089031006956098081642832922297623831712541465360483877216215242262005316030291231577488987221595008633749922727332743940210381686216769714165479224637384519036391135026085837378756141994817686998083053748950671586120102784291871169355813396780847590170753284700278230965347881115586581642128096621938954793958738434189091738346450927226947979920381119195782361021167118203958997533635863840303591280834377732626087748929445331764481317376540799467367156363723075999712539047187105460940889043247993236741826302930977510567674384434852554880986269187135499129180526375238386634861502486396637056273259756772332703840531641949092652119025599849187695291541961568071187029361255420217562309713352015346771955775384879390347716653751860436382028100948111434285027136220467679626187572902845830555577935156043525915303440487970414358223985724321287266551769913826682975822949313772947343585676313447227114025952730243978893718871696088836688071429796525940369436816777255666915215538609811567828705016395872312651408742434029349893671644604091529125639702548672025995744181129913241438426935765780834469425920318561942708123102271310045472280009579652729155897380647181479238143554304874607815531941794018069514953762762122066615061748582168253436035926114404106875664509094797092290879065336770375137800415696190030459707758583360268957320217986183532175153370825657003364953215180062726986736892293287904660686369296519602728661222414055085999867067719085850073677467937365197747984994123290615146150887896555764814680652495707697336826306456661815514572709261717013064805845613060218251355068474658215704291199465374435025265380997081468503881453940080247799226931279473186844202889784737754776509244092614329833433811543912203841127928498143868369243588859201837798757150675027238872037582993939205283208606505882041472736904702054252061487783296478031419592648986561294320794888504361995027688897985148773355692457837547380988165275800560829730497023855578240262041570104411723349299397734235362288027994413755256138585309720825861527084116354418613973036183963012559969292257158763611693021025791090604872129080155004668926030797986244231496859079525646403850724894623353955510784784954982828407974037643571367830217121404421980356011429336811637576920627508905580827938817553525353407208514669197277204489214764387458174812592651787022083414488861735616316345752412226764895129412827839096785293686275780470064381158040465178138705663618416827770755378380381758111837074477659014186034948015504762254624599009383531333845887699013185401040321828013947582831164912235122106183413942104446963458600187795800321016529065061326024447342336024182613227091673718215584989603450507046745560168837806402545126531872327617748026043749662375567740622931696701018178262985388599653834498072736697427141535903124341497378422656418572732391120582997675375683152974003131568201720028820455661860670954277662466545756861018997571555495135759949825482277495211757022382072502981063541027932635985390571824116579835871119886937475194096952604813423015555191166697599338869392965062991252365502047521903274858235988495544160169395985722620658947352870539198723237508587838240916438302401495069298829271519218053422966602452753719447965727544104653458221512848222586702951854999689375592184373336005154255373146895066946042867655180205914100064575949963000467844255929764503292797945076070721414529806874343427166212727361219712579989214695966875355577858674760913419481934308494822659459007038648993129420045719969579314918180839728813038863367603595443939481876311593924296467388418650279334878368487637947963544392778415818445557680869997957245834500407234047321628189223326271230004523842591326037850014303094200835768175994147624756136889868271963877162686241365197692671208560635709346487318715365284493227600971261900813408011190790335369974091246701697596054699262188565607806024702998144776435349013090521822709769515572360593525162647208909967904602492520687266749375284047567235574546621660630210952286957588376266900178660748837500430038578226780991156675062272356172769020793967949085459762254951098533650872378629567038506277826349474146045610976599986976839361411353931760635526667593921438142678527343679360155217732349343604238164472487361799020395472465195468064364238723725178274891504223844031022492468196249154138169425493083068812059724278321057432442565051290852412646138789823767204737356610124740291299238128147177357853385911053692279878373510773475855301265232700593136112666740323036021993773087335116763448530315864383516331422549631660729767637809459692356284755302730085741481208620122452908269320584329818695049849245595051637378712804471898120449915959746221292478266080767353732106393424271813269034889357792274717651412457221806367952015061281564931865576027718718597849826100698387150068848915581493746568184289000632014188075636382751280724538187559687988386218237075946163115145476978436867764577198805223723139051406353127962642972097634643747658129345041685552094316790183094727107971193782019963031087369403559697632104220398050516532369937166567906060791245682236422010411803764820518126161889388478429872481749197650962461876559315825827642671376316081551097992333015383228274693220258455051828310999592745488942459325850655571947702087973098114571013802263101037243573300955499917794260663705608038734704233608914248643716346929841353506481611852099485565723153075363075572978705996781768025682224633690695592636915473909769612965819860466286132999682730388502697326813961547106692559152298896889415310748365492048125367838765863697642767600634524794021706753609636884909146708200809354940430202891392718380455811342874596198650930312117437604641666164886230874830653190844842723659716766356239756330050088630821237295437834405844971979266181522640246159996491461565872777521844269050953858136406000132178030803813721875772482116733670274003263707560155850799360248796393779344861659213285118514458702917243041927910571957242532108698694374666414391581508777022070331207758708348280942610644582439345011044767404492732571498244868462635354146602741641211412280445748035782629111087389580439021431768671606096157474591511390832383207278185341345442233059078991197054494883167594578814573434139317964814744069475814126156641145137999262502202347829201038568826698919651687229374310293494688348548488484455415942222916948348954256315893672629959169997862138868055594928660428903137433753790059029794973142057552224569533062345384746879436004419068154633044930921876595570043193388060605666704412227579985685893402825394260426326695425331425966899165173416288544336894636973161518737174303080662306064337713912210447462582469982097216674184434559059174512602500490087136997727949219458802894373316461674987646529417477760105749141158421064378524973243854940515369720567865528410346723401453454055422474505938720151086986167455072977654291427227135215323007033609361193260702405037394150963591145877945344472991961161268512044705886357971625344238533726626437242218574870872855113966588459706512010454451614525038027161164546143851167568028981785963427192936503288855464850357958043111717818975660484734614653246603309103205106498925945464912383127672322489830874756520466587208759266788598925973240341673434635104127698632271197236366377370148083443321938172306355939086628968081191770723476763810180880991805905705829251296361635480030607844659381454831582058365769667954524379548305606811122714855677421334146292308570955654970252724414716298856312774174632940877704707239961230310266895466630532088415176375447275489311493592955266241888728104685451546225493518246557832862683981770247845118847457910242748350820419324590795542456414356630944874723984589502385297509645539414366527946752232883142164825932250906146284049425571973488973668864110110791728402771884270075179071043241690226445219909252297521887048721720910929551181992590632664683044117758480207108824158642178975762667228684503678549929129193909726932349473099729270539716014427679567339375349202211111025060104029077115139561144379899782864147469061213237822531798392087828326081583749770210721751963829087805942582517959995372045414129203865384957994966101050555138917773444958536148221701541394194877160886635096702707620327230453575224887733183920700837305999752897226362555206243444662936190452051550876989803634694318386120983783634958638590277635549150365542195985006261220286718288198632847050561347073855819326037766712221422457446521936659350001193232128918334553286842320985688953016220222523749031600434211786841634628273261940299330826913134879408456609770163928056592017628198470786900776675976678308023155633324743419580423149993013328780148668778467533578145144871894429187325926608186458705676005033170388337599200148960638748449242778978912964244109341706823337872202925658173121401172803769473784694543306126508222918654628559855981322930063842063898530539383567210385733607624116417930890631784012662451856317174875152058221636548242167283209020822600035243667264278799234739686601520602223394517444259956046478893746578119114238047522814733205745925964053865317678908780542644129661923605862181879370907008120272861615905460857786479680884842205812036104337913352957915027630566612964117071336179769164443330488188540930699005826384957202271013688599673691355922451217080352297317138529884385797313090576474988200446305794855006945539353604025145020179117101530604080391600887092982265477624234305158096496763840439687649063293304052162653600159342275021009146316218140805866194515731027529408451053961563276775898743202208892447142746398546481394871675037045328806427650743859416471085414179819214428572313300745447504643464069423099964290479964794577446371136563228116241520511558690984134173229891151286262489152601244400906716273288721819524595452225025659808854475881260695060770872157266705721719802253173913621132889948160283142773197334160517465910970714818369015879062519710911409993777365537006747235465469545742073360862167067759609381620637729247257400990103631916413017328065770830430838031827443180948947260594539682723365888973396913729052254801724051353340787652443716684874302247082242191917964242888888331025658923890753278916931597216882645603661387131811004890784922891676472056438322636774018601787736972456995512198224008083871244593308854410983510050798107435960269218289577074172710413560793026591345117405623707745260259210540263817841478051057188860403991047976129922393277083195349447151085990400622996640668991416365246919484488693356811998483547197437537608145927864257904390820260428013226566702004560079706651552899033981191081383567019685188909558482345227078657708182533168162473477812649544877779913255565315786871827080584575073027545048225921981695654162435646128592711657937855740905203328109001168933973904783274871715350362293774823987830852102305371781316509018370639659186476950023309309650840317536157525896709460656683387011719167496676650169531375992489056329231801648220021132332716255100062007190599135314820749217642986669968622347492864009840799415431518355246673825161186664530664060439021250031930510482562815775697266926182993511893194232372684658193377200175769603983573204359509887692848002838266653082454761457826699954442539126380865318693677600187928228199497872490411821991177908740946440074508602383037758306994518286919058042927272501138789503717317154468477901359386767937410269647424507817909507176996861939049317509884541901924172535964231342944203362919361407138882699777003781695314491178389808232745670500185607574688925592530315810679379251764788639099080158422072567852281459990186950079611860396623743479398093502728936499256850110794730480638856844755069105299307745779954346493499298094853091718557754092999500992145454932416297391142012669678400160442165553505025553757344155778260258954150356947429150652021785557412969851693105919552412729661622906228567221186186173704778559804010682686751791652072970558347591334302310000233954782267430011904577340638291442388022035666384389163661001912726777941329582466861887721553123897560905129355059875387831675921155640221844379202823712906115231029152470152903601653077882814442829392467246012924866833998214953788712527772373403203753156389620169516056753344768678387240206972213609901224396471106652283589505257003479787212656654713286341701373812668447385881207668970679996675840085340100181635039498598110977894504848162298481319967030535478068679599466926735743467256261456318304050621686995445149456402482595870924749176732576043496700376696154750015632044742511974483227621439287594827479422414417926189238414167180591998939836529636835921344132161807268984590472394550740584972119858074153896233305589991629651152553699271601577682271170497795421552962526076434438489262614314999747593300594594614886348777034110376091391943763315777048736360996036001026034746903591138469504062265807426819740079100014885776126863080751064189794559927851471035221053135675991213401636547351864719508724435631945929541009386676909917568599967869147649959578528227019104342500309247150412853233551258873987545106208247450040714205471927758647805161397653493412275103908802516772372940169831371702484437743558530681156237392102297472059049786380421085707058751229422114307346017331577528713977738517603422051322934524424711053318401355006957607612760235910248963887808039409703995476926408583678928045013571695151629507276132086555162622316817496134004617942161663357846750828279777015224533516625089817596449533958025805313876675445605811620027546926988316456079545275794729810668024583545401341352283657336997781156554698283896411528799172106104548909824699166514734015417784777778985854832728915818401854941879853308595117912502854244966131756224519944259911514689241764765342470915999327518503410934663643575493688934109404700465098624059689418662633122703866217150646620811324458653938460365187025556565324896638351813793375570798409758382847754611524617742043421797346232082439593392427306121769885409037233905585957169361375081869120931368551808642269338676651805959764285889203967814227871386663513234407331801324876581399703656971414252548655598212092479298775253228464243522377477775633966471860261948655993189887312296106489362863598627667249742445934552952797091091990860093539639173478559185112735323017627902749306122026837743319758501105686562150617645935936662170944756203031186828442222701107578244689131228824613779656176804097930656432426031785663586321175383781162785617950110478959977158360562673795959675116540305493507552300100028179565012424474895001398578997193064658306725816187730037895540940957303332835413908356031277764815780006325400360397303900397029152117917089643351533215317387249674999597331108381193551986771239838445970032173229985158238810490942799690691690002714635398300361453767028023765363051387622641758116987378050359943511000300625054075565496650436615989825307531247239278193753227969188779623695523778951783812630144548678489245021958853606097399626476291233383432661044468855145713134051917144889174128205494067187789548190761752017373015740411344581322788317258644723832997510805267369146997361243655749302309716316300614046403141401818011376814362453510406990242055331630319428984447810303430910372209759875542976891325752855882274329126548284890367979272341581367613166088235831216434052341830928292316650617983802857648697171068786232396212474996670212059457071751733043141063780191609927284153163478412898239291206198237016374685299456202909281890552649308838438896623943294489543289207228716502412089996272234543642384333687615215749985318648224599822372391305070762378268284713782715822763594250271467848522614030578125772240829284736049700961075920114544537817778554199570412055884948059515133670829908145801392953030393971765101743179445230654105838683758047816185925737307278180740140348065032861530236697845987743645782633813618973896235137167631409528560234772537757933593675593467230460937567201780096642806233024051364731766673769112465042755602263187914626104103223334682068330632482071262863139349739434240790194036902929444273007426624808983062911228813682869274152464833709225871375600470025784576680044530766854465133544954431178568303723321913470982273483957553512711636292745232787085933267414576129715190881266778262905066681805920597686954139280184082617723052789545779105057669341472132722099989570805549617985577431390711335155557685743402582366301831749442511183892615418014531141469671590828874334424915086250876301079210973759676399593533667273914811161767294475392160707627273601311437196775998588191095931517231083678592994291545966273015857332492956652190891752478811217453754182835172198011029291381067190787762023871015487107202350668718935110796400630339684434607301907668889245585433885606649725713735783127916630678046788499229833082115706657466869650674702216570665784062527729386719370002530577986400594634040894139926443706875769850525950603042240825970184165426981871678848376994369013093313019189465563949715815494010186422180055496739264150389773793195044949408796129233455338669769078466109689377331037631331603255651979927307100524717330445689422322467246659439368326036402634162904614993977730883290266679186664712759892626140659115909102473436597752130473934576055398476298236780943105193251286119055756204917136415919222173094727902287696812541641295304379007670977553091193852679829492154355577767643502630466211147329601022716711344591969000954399381082242755184967517481820585187911954024298062328319154720276134069031918314586648645402875974702934522874659647693537597353658869301878516344948754339375993261679858711609942949523128384497078454526582951044559287087420627971675323339275691678358453663507932650834650781338430181278505230938279767160223080604529647666486385137059314568510709312716665157272926556347403087884130511330589016021511918036502204325378899889729787544612501961250664787159288129986386565267636832413080994984932867797962836833043972674733107682085467160462167364266619668204959115235546518478079973332491194792365446852466323242670593026229066548056527438857112309778536321124317391998473273056047502146621944192026347164655508797848792800194012245731921068078159226901618999918714866243232877121694506219492021935589886020915066386137124175515019939533923359563499351631332055012510531972237778961864326108916480893085548607336752383351651769107581270324697153595247006609759734072362371184904026063132268186880680252001663061599132039824858194662579888225810262713765167339137900079754087441061699353056158749780180157710752775443831257754424505204208412020420172418390976162199845509581033305759299519881120216633984798092346993711675248550764784329616127068511269013208587135667494722957169367811062756382683459818212814267658190911765506320929048036944807943231834407330039489506573593143264243647479765565484076838800201572115475304427447743549586482027740629199828971787426903034177095116018492726399149532109472264557315596038886144288297625439527992664762554569670234123939348678927476413877351734135659044073726923947738789898970425481129990297361532140786890565087593469059560267820946477262498417781242216362210573923817241659816282008406531831358724562284901200434317087484605129632117315156547184144520222961269192631883532465882972276031520222978031995599578627895309849666700576310827896183921618601835056107498039877797215742891033079203982177689720458504235736109995552827413039361922852616429959713929657846741435609313499520840832540137103104058436544788366119548548689040256774998889361384983155933202734770825911851367545510913368063868611510005190022515966996641148551039084979979097657802752830396534847765149406117641960121294517488538165254111103079984146028866148756441237079725800903019719263000664491843347454012175998577817271758362623531672125496885148051116559812395990391467186118742189813710107603173665141337464345550861520307449808571920247724993908091835293952085510910782074991875009862016453649296438361525682219664609525445623383687856979073332777711355712071608566228757645344475473373480522072330155885995346791085326790022046392497815416118662357370493869342192339380950140489455091449236002090038087587545615139885223215376108495673442454902817519677424357427709105029972239966389827707535057038915402504232364270676593348311901404851868654556333664709635999557828156038597335223774167764228520749754885548841367029562505790138893345535362378778671569385408371288497275862363036252120463725091747942645406539088037384428655266477411365784656142125503638565579871192965149901765246788787121010710951598041014975214838310435532172691485181062360989117058446277760681575938797517684649992136589103974685200373231813426845694565280823443240721434549299865537028228510114908626220032130081845570813659854542101081048039792796347789365292591531488800682907600821563715579227740388424482080412617919561131152151476783725300612621067497991736734245306023939538986697280331527275764420502624265833721270634445609087000055458117395511647080873668038790234298903356807628651606945694313839129757611615419684134608993247001539824286890600492181203426437386012796246306830339348560961731615773177040168971318519932678947207862772764223631995072998042143363542582947156836519574743109329198863239080773722239039496755862532040133643288409220226605821488301457125750268626875511516599880191588838639657488420849323589502941730594289581336189930280901444142207943717650278683603075601410305200672314641991897590707164928733521461494922963838112660718507703129591490820499285461390161527148005003294294531963944093010491680205877889888467967348601541312822344561415845550053492347285741044492258136722385448433347113830775036559960735353938478043075254871118986803380240412223337846793349440658300786072001597824647712041460808328067784712507121518682698200458808828773809674808332040763082384981341538719447090189282324721828662018673372348538327174301481684946936825911222045148216545284839535987230554947704603800650235199687030804730623782602974753707236491814372026200519214730467578755239724037967653347502654160747932772186157712859216013342599310685075767296848994707188413428492021540572134265473118512502627532405707663270729244029121659243991787233364343664529071084248498425139708887517218220933643862507964995914043767987830011530173881204183498437637557639664237130297324500275717433743078845795503009699605920107421763567013672485141992416840114996069367194452298810896051783459909710465132581381130803110974653387467836355017298457132846971566400592648395934077229244356221639850739969365736354526560198171605210665404169214578309855527494561037228780856394560971941374350304524114339617680264643024507751208151509963272394759943917987994403502743455928830859783592583446179486502831493075402671769856964067620634018696305789508823782716999089651405679100420802699618476691701811045705286302159565810881365067456984261481023373705123744627370550588195963644803272957629690068759946160013046508237066053979104526169603405447006692008520862860824130452051121063248700267843500031886938774472986626732656506675494249645381503787903991666684065123786070194333851576765905876923688832600292641686110440323098363010037042720134162532264728301873676581216277247043591763787218849916277160915559667983248746971943804444508201615817880152599292696779863842559623460958536841609984487331082446827496002783434936521957812315123171169935030536244066152375313011049354519442278030355193484676540579400635981103160702071169097087977497873630847531529194870310424601451224357558155298822090416482422986954869636345793811473638960551349119728977579490900116290754198865096676357320447540260847161476668111145426686927884135378247291819993498563465965781101980846754346933105673221211207011806883721426200287095739000133680407890523567947218759910263584239867431735830564654826102431062518472161990439715490857306870085602513677444262553868583490942188820033603788221833602389766755275154129884152824753955667298489068884785450644457436391049042134618449022999814261893471677102617934236605086218256440591634267619292867081361820325970705759300922219187940475682525449380454717957746030816897965099151399878049901721029129733068658237404331157399566767546307851800618768411730759977548991751740737015875379893935090650853882756791525805287512492042064695849792738312546765772481134622816968350897242928862080173653205957687013288808217463335120513003188329383591638276330757252803351063904083910381075963560086435025301915674278190681405022624737623579419282084310432188576267199328534990886061844449944061880455860022452414724989608420092488283043854228491244640986240985631291376263611127615462488516607419205996037025003169640385785333589896873663962205713163525001371068884776096622738423556384644018451984782537115814507597801540569666369315703944315966177649733096181573702678250132946086051062780556827625562965076523897522769712880944586720584978078868391239118238747147588483414213453319613752017894914050214376854464737513716251609193151484871007648161867777500951336649369716541625023727955287295066232239966004475935454821741792634463730571868720526249502630735455818846108738145236457875002504537614530822309703976270765510248565435537235089818764223292176033545515211580193247211274306344163061631293911847340464750863120375712406165749697614930219112822442377399316438576250667618841828880584594067851844558111624504636440860896262756966941075299124745588608994686977331332151498738769601276695456213476879234962992755124987226378400895355591508884351991015177074466513959046650739048263968083858884350425581451165562922053868489649534553913776776333887275597854743019180547874554600322997825606975143699667363527702361148376025650959053692226489167436472971104732592099276088591751124540443747641961978502972939737814805471562134964825580726602488083348465480472852238971930358263952959072129017952184023554788409383734283999378574327058365852709571045427100314558707933510334628303646299123448069023204087749897589663391506802502868230243007386816901712644035731605353423170353480139165499323787515938491788580697783316973252897477242075007981637594670639455933614473255090893552148538282182778638192711785036985339965436872359093358559544578443037458539887321774566369655928713495902978727446929227488802339475497764838307944472061612553566479802453973996688111186073868948887665935921798550999034893977306475242211385583025553805328277747955655287881114033723862782576875259582607106179304753886837452989564757032699813608910403574868324664998619612321744252409251470207139392452384346584436951011490876653142419966126327988677685826338274020343473508771583119226224486946084907832544294675315160181179340709213374253453280062154194746280262602429055919493975296635501574953651937865686646495806876954538887932218061564975300419167240159343881140674217665069179651996719998354362241508542279539028614510834828191822738268414357226971565184372858663016198766721433827059579810867203048166159918018119994747158382293298606056656882995085914846086941360909722706054108994569711701582471821104992732603622259693125198383058537106744792481668219483708144946741980726607254464615680496915405090502117674831865603605829776388221409011613531545627313299491408614388705018277314403249197653233510362217120218060654175924006827329546513245024412893137855984523200299297064849696069879677461034406353034543038124752764526971858107279346864081882159886888143696369490790548920636241205887235899378711238880925276627186821963580049999760463074746353912604461097607196592062110361723256370125709137493283130936031693341412554570642840386259205703885479004372607550107429170367984288843191017348904676136036048737985774575950841100519066846476011635330591453180666300899291122384764535413755458253454777609508980622975591253776209966663698054430841683866977351852145274603734686746427660941091834308291913700079581206865167750145014060927534758916347088533428886182208415157471302946120408079140370578800606589136576902004910119988837400765975954861719542018953196600438869834406529662661972695406652928143909786087497561260485192244578798221145109711839177536055850534795032420035011035618458054825888593580438680334193573115424364493026216977012747728422352638023986512871630728093517771977832148475457954901849967557478415854995738005246868916743806477655496107619679355012137997838557910584891387752577357258267012007637742666604416166278593889662112555724006245424604091236630412277616476960904528670005757845744328083393140367659150480343987287202866458688940107588437365816820842572967484092381434597246670964744022950243811045633583268554208717977352570459988188357502333714282289601543120105611877865056599880148524476126292187590936147220193272939922701963322325270041444634222710011918105668737650655762830501477491168591977921679392903658370107413807258260530969958416086107606473035398574642951633272479485041379284474711374788943012191401416157176897429094637049659590208620024752927162395159468632675670169084267234208098987906788691496739751826862336723221171295627602700649177957870454384663935061046171957523882258195077128462329090444858325942955418210057342066063057454211164853980966319403804830017917369209248542311741224533394319474285430882322295452404478755227128067987717463447375234607116850454559717591271947331368293462530504378306949471015031500482920392266796146189783631159710358312532323982928327607227980530705377093632100775768255657718728957536072127459776762352853265327433808745834614059232387063596673115556223197272918938764129125887572590978794546265256203296657478480751385017046878018469832115227873950139459398044087780811594130120093556226677273799491955462370311288805685972423857678476823816573965238577258767240689658655820508496669173110837831773217080832103842932516697617573038675531088167810842198330800583752626513124624895276978010719382111576702012250823342799320990856451314713687761943564354586595248113009596494132867664836891640348979916675320075068150388065780988832347116841921148034791254532964676162441887114147304801443035761353783955078377672220638269772520015024950399299474005637290962828957611604487060962794628227120658637594340630914534202693790577825915279154053651098099719290717250250452498130355059957118660090329819741387612926927925710180628998606585620341647383146601947102434951835892969794044049576876371580362806501376577187539323257777701242134994394005932724549720552826906321737090003139138141516003906220630404681994450242009254381846470723055835377912299238408421644864272780832101869684555718914700934937902239448372475514319210162431210336900653905031844110694861632302780278069984404203643798933903654787171266654213503364839014155232702881541094618336193846846700322818277592997342020268606279002397801939393227562447206946254829516549453506778975567331441392063938593408510193270778316294482891469381168046839437294858358086179710220961239282233861001759364846418097376706143422639728026718397585602579542998678446282814266416353440031836407727336680426515580641784307255592039816905681721048647987326476552355023934467064141577226009627431094030929665983096128437489682050545227260927067467149592375194157310656018517974211469765914836758267051383415524099215466401309978539277031708958755676596937657703491988843091656464263526810351936904403631277395173247521656041876027241169220107153715050889179783057962811265473293987139255084280064568658346373601155069715001242950591971001529913663001650652882869978113392026106863335275199801433980452412793120790605469396682450018272197529626774620122492813590343214333125658607279521193853438252098568625635953970941104964475448341460722363021809991782766802583140953123712575408758043819866128195367594267749805952489597706231903456598120726850337665462502174700896958224689564865821619829631922623712975043678606091650922687249759579964162900414223582982875339720538933113973840795221244834337424392638353768034551034220719534559456777655627647947170202231284602664245039000861029032389595148957895330614316340508996066231023504241873318091224687042111505144498611016073233942183077445240903761678442974117698584789211508298635165027006630159129251888801591790968439398719781677851397920457622505980964071873651427775625181462262786073101085421116099733665037393697778571112899503855548682813034521713268986923082702159843650527575433243644612920889717960272940258305795353598824618651321964197650550271117197691800257474707762123557783098378139399641693120484482208429631446249697792072252043484555918138622894620204918096349532262158496550517836073556472158518845578040135627005061516095300477368394676009068495126597593547624535266340057913362589313174375525468467792831052133917250986268745023357039315197452465436829110274288603118809188094033576340374403710017585041671043196356543483794431790335910660268088184240974911916254528546708064072679968157187337153570233777998329474781496586625798371739209725720653978825962445893403004663221747972990253693973707530589844627819356670663987842957515493380131862505251700202423992935869438513751734141150778134376914694302857221690792069916719809249457619281535476423404102653981728871400250223783826770948820486541581058574745645181123077335396622252209424720181098875237749984666980634438604954635851189534753180119172104928145698076144166611318357210218108296378081084801095124545983357125895082397023787690246387414959014660786914041286960482999814036901707909051771681501621683549991473508586125079510834985046276403777092268410060920861284244210039502865476919544121458022512147395596885324012814018163685316044376127295289695148848123149018417193087824572957092268383552929398269580119858819749422529659334738797942655678065429962707826988094632383334188028249418936622647788792330350678783954401820959502723981437854329215811218949030905546712147506015173762066931613509842256774381470837310675381411800209695780861797299241253224483872060469658623338353600346935220000449760288386070251728309281591855050247195787738441747803356728666252712082564326984380619963693457566243203425901101230823209247409660672889472088273366926310889874952897369981800544169115253184006345546274721607892043814931263913939759784465014868493562778375621042167414725755155141361348657535020514585814341716459073947266968533864386158234289976885933048875364105447795079977244822148716541417558008956562930487162728552834636157366092464414981944764206077074520273551512822687975078650507674360623339123635159818697341347773557850388051722191517262323439658624065800825410816659250598367279444918465371195376014055876333596098466501469932946687400191657592891618426852502360583224854557815931261197788361743791850466086973937158155106615992708852487830472975530589104287413458959456540132633670323787498256870700910494041160652302312238986796794249278021881226401728916099767026221665280924272138697056416815621142322523799242386992745995665870304113398439747348671788794462171694854568194013018077205049643540965721686986811937663341390637298036454600778676871958551213358403560569667394513654057160098101242119609635729624310584776991835835178645969809311540371178243442040383295072520780439708405055867457388359678515781714539252667484720864430215811732142520359376825926630055233676321509977452911785535618374818120025351328433344274759299317067450559597205111963754726439484081436243385384859505677917466613075259382843232937389418818701230643347118023317419028326106031557361727013183061312741446709938798714857583310357947760261020712819451203918110030128607215646526399710119992223320582289453520537549824258697557411633349663549646125295023377830403010984258941093258708193271226536840140403428236332647395954316896441246134167218127558677737089237139452812396269359228645197903978716559331769303291214199326825705461192275079252468746722276862413544979587440774290865793011627781321811456896974111275650915748187458921018298727749521481480097926336041466088505007517557265094907735819689510319003868974086455622150482809014353208122637259874277527806225265161912961541438569429870917831032395224700047918038704673603684064710386603403383137157125865653268308307560958188161469464951399113185524316729533168786898730000433605235629061540339123421146507021177455844026294189583891839768960409495729228274772137004726527297505069893968677920768220004459897652431450630513335468788802111679175152523789147415963068325289009841090413545271600846568507906541108107456677225467056717355016325126312721735012712053125942262152853441691057155688375654783266926700977860225283266056784573925425500992061888328516044420295602342115757674397161985315751378601347693205595255951969618376976053503099265872949928329164246304686911915742755020313132611092346025574257899061612429720236827894368418798016775912368601141149883191968403520825356066108828069559701257671106838973569453186523400537547061214436394693683492427472654850681070905714416578411110803904125021796898269134618017543066485308867178810670005289402089599172939683557806233445191563565548582905131342288480750078118589741494147563485542916917502549096696897312076721557009392156185131282611558418723286882879817767016496285191802492824073294904984058429145950551685085501956956873575732074551101667230272566826206292579307090463228530884857532967513837146446045554845379905587539846518689828060624683262906698916900099870397956612811526782217762090110872705736187624001151133061217057489381768975029897092702075750551581047371497755727841962088980484308946332481228075692971486205103995146542625698922208434359440330736252870474888091411056224621553275881426823740186688902723512938621966629821305101378671470918501346024987591024707582370662649734823979199231929352009846931533315626184589171436768872841440350835832857027591554484680571391809779616640119033065467667141639712284380540896690419265988169917798483572165390749526508847095951639596456101891823433696395052564404950532008498316743739062021321760171217100015573254732110251568763991746785912409218622705259634860146580714268383720557440679028819969449637197828501300791104889409444610350965241524427747321323256020234760091273710988384692858273446467699059116804496511628720669971400563722045727305154771373403867949843964362212260275381146173047452134490181874167895045303135969050860953502924120973365337084819703752685639411425188654453161726482919604294090124712041488412721939353557055076693892626422930727276333707444543760048444580867502700393088412963829496542887385712757209017791192873797250107256714930095757679717600070131508774616152733722753851335473422163594799040458529039388111067851823591199295429258309203380842655706134009292482293649714881717491967614885602478859789597726482877871105647140018458040385495889619582325747729296596992548293584575704876918147799852336502255162342374946691826260425371445752078160017183013086353686487723957882966590772338541666568696621855052733190259264527742554926116406206861369238690877131575696277733999839267458121525711265118731153327730354802159219573215615334887674966855468823615564264994645550087515190440588894942072228961104600966925348056421338812348855681109355367556909110418201042386413757773922677871775614582851776936189330031437069071708444788203535474699073836083913485019543691410422065445374319616955014721952363243755959763671645564864625767147601125823998836587035801521701923944671906201536061519345348063241134350635648011494144119530356161352361204419881795829889922836846379177389108822416264665227624220716825288878328114508232194512077787883569468549889906308162864190290641095108213971420993349632183098337414904911078823795814282022779429797623513111465558667597893482761663818854282592567857646094484297754487601505340921455305152122073325504273961622918483739148788153709088210448530638804830626665740206709223641691883552405708654887328740033886293726646545591475659700145754088296476667062019762530534776247436017082657649029793491913590503268642202118037319598909294940027206297037102567836726957565511280866147476708527033474598481008837629923293963723713731344745758866313204812753589426833005222580064528108016037166098006365225273036845480272601246552506129440021944304949534072023124282302542971543899595585097073604677302623222285821871254325636543808009193851716452308241152708038046297899160144686133861853796829399217009320472897580568061386767737934594978658039911997159531262447765043240974561509092422136921775600031673485801561176661768463655799160828045147952388162404680098820783842285076975011130926224481805237222905351099516886800907756817135755472385073510325687942369111827761696406674601488971430001254929484147902996376534633353788203657572877869096385263606373650566818036549965046612758949071112326203186211631302223796738933329200887008704001225385829096807836521779166324573121853842010820283431140397809589457447071547154437477262746542506303567926351253211776266125139464828254747101007946625735599357547712366003121264970890341281879849476371120953612595568561183972685668869259647090423706604153837011341999033716118232637075565162608169100285803911182937711546959438349136031322886094519593724565436892130531593794289966437464230272217175344405080836796212405262640674437710110853611531408442908596562013757820856631889309281448665398456926841589130935226904715375069319567182884004097517933576296844326088233409877797868358623768907462173346070822872901278361387998229132912577552956123141128961062829235837862814367666617378812448274016037145783493602596351460768580327976577508771193469096076832752495063337653653753413110380230811866915840804969377849749832858412020021954646243275720214764792562303519243899712295123445926491949862165777055111031958912955488451729490433987842240985556646727491801497426802225960024759480934296162711707160072594933928845523094791713946718446802552780469815162163158573945497325929501565169731105621922820867042435417925698113632238247384561418796796385563951361373306119243323600068040565966352392582968137737553010188652294222512061035300724042722082830802011883935476473458628543994509520739691942292229711908353414226076789312291839226632330091628581298854466403926616740870005999787643430946695257408383390065812518849384235467258368721235546189605972090810791946117031698163148135188757239114675975610021847767283905034205356996784356649501287290674418121504678833868848329190394060375502601207131641274580882469751576840904969063905789849077228329398049715197570667187531269387083088689844121189800095079530007105217912956032282393128178295156567687993646603387671132828303579929499277178964674785282841284175939026337735710082536615504969500788746889706815576876120761021735542461707236323245892600233270277921777134775393390632081228770743812621047447061734970489565749778080552425987883060458257821844582621570934545971888294103063863598040190986110996609105438473630658773261886920416091754420883542173767221247199654280894111314717824717138491488982521404974913091218020385885976149563561389498810838186634331377262682335063608641838970820457492725212961315580645845840387527875829918809890540098050844687689119979977700837831071859258167856873033378378682078137605390650536133389170777422785386847579503754882735161287371402644766089662440938676422444275200576733662351457475809641020188730581179889067526650455839519984956914174824792032205454545742376788096433424334006277873210525402536185904667473820436374611156587308508064248146647256876970096313547262498319827464086267779924870378289735179574579263386887461285631483120561499884485481824799695971358309652302789028422061898138693322858755310440199757593279217958765618645990069018389365216144799375355034504103869056564158256886751917023410689243479986885373628586058803948678010125373486307275549412861481308257976625410194557547460691941178315923941703779373435385065139841079179515920141424465440098756711612603606913491554183188420489927770449244736306952301773972044133749923149471729914039223467626367157034095584789623322795793998120539352272804410461364579479623141125561993448285565623177671892909992729793727367130458669142153325296801297726793911325130288670043486781625238240949694209237018666219424983610507876330702487585572407029687742248441410802223634465515911921598674900905403481271230007424734776082929288217563717539143280762779161220107361081994243242915495882844031032192387323453226946042673657775094040755114791352968252492151227827442096981464043012209256241916863856347542900557848567128695984128496780475012850597188745552432512786731910951981597741880417122481841619464059229862118683415377207141959521202889946138724012902016470557693453303835035961335787633943722534356827959512254333596101847228112991873168297935935926361704758640160195394458582621242533710897708817125629617239419965517535431223163214011704065442390272868893344164092789670401624869002243932603087744619995498413710731656803272407182466280568005041297951339559319161930838901627927760675400049735297256324109867387096959156022040192673848526700101940948828008475083997850719677018433871649688754378059808992548111731823977795056332083204326831856489445050619282618187062933865802090145118410984549462419660896218867769691330950411521199824299830478587551162590079412347255688384825416460535211692677420061523851656715498078257199740534695389822564558732294332638814510517159791514377142170337816925560290350295368408921517699959426612379850168719998150766798809195983405837588595557075225947329829128227197429391910531536756624135255548073293959813559925248559367113122218311120443137012317711003649893459736003092632147345218247149366877679494767390646000178313925700690189978485139466002566130572869732616796815091993485627783592088874816932584503845610116234620555930442118602552380442476002505218411731805597824131474830129549039304918338820218994030637031311047341682976754124687566430802498966087947444709985265862082479004591843160417503752735870854112954680676406301776944931942282359049429141870241231197031983516337731519380401800834670978520988757901397272359038103443723135161082153604692643659537651793958940016318371923019909244707315548814298934449952976236853729089542541809382233774090459955525209102931882009418214788164193302018263368889792458520191026764161377452170939899509734053681843182587795844508848504215589435714074533434640638963810527948190110491356129906350038403431034517055311812774607786974002810453177713452349298813341164626469026356266434630369928766229871439858395043047414735265947901855028585654592589469846167569475253045930143425273164673263952565193738095119450235986370813813583390130316484414165541272082492904712594223653709207760757797099173269178146947422837585773952885949595885336553339015714141900961180228789526810033997064170885241310014503062648147534930639278143122753886685157527447288820817430077451242065582516233500576122759134504884101860292474697022309714645338772777356226673303067209585386213730629874860130811980226093483115477613959751292583911740986134122658293410596278524468453400670867273201320122985854319884663906975480516036470910663577805686253368349782313649312572475310034799942496843383806822015734022003375485152241433928622029294582122851547698370575676684745332753606219780929193937752839506132599684972860334517496201234081794389938049419784029474762845246196955450037742812712846772918487502270685575028478353772076663959957434940784154658626550739282182046835464585244929772317212406565563075459317290670231144680770655302193828145047351538192093220408568627694637013336210618047681694392490409692608111848398997066219628313516870564604160973444049265660135507160664024244524302613689385016675625499867099374796527481580166688854666324098789286939102261699574628954398165888923851391488992163575628257579886600021834129199328477983689018019537315030282111522551728227944494745023497248742649421687207878469621715788834505095270032661856011230749725988585898029164831546993119417451642680010499257044818205276253206304394900172054962366119132000995002287218569147739466109016653173662012445564327365942979398396055792946371654059099608737410300068451007668252371222985954565606822089110399656738591948446933310339093669126462971230567310819884764652626367096743290677148402239526497445684402864392472060329341702893803802143678558569498194148380799456016458925754335466846483545675390759152155544651493265496190421552211122272757385438263429492705072244114110863642834698075801138557014836709449032411646781834794185612789636861407495688682663712477138068052688027496405586960065540188015334803791552414242757735496737600088158302833414231531372355593257444454174758876034103630229226099075955561127232358773490391838639636796669863031814492944622813261186341387225095301638510676372578652832300354702337474987341534115800115254432451176591245469043869134521330208984592055810380960534669384286547147991049506798049844298649969232529715150935281789414465555077953006717200804641147736608684682864502220074126020587981238126582720248935629453569474794631864928693934449392027198084316225561082418389066980349528087747655698087015296619779701780655688474181235502068066162272728758774507257273285666620737482632775031069460967443786937373527989950100205376824784586005270423528411360213177315479511061237628586059294671879637211151884593084369111503508294714402469834307986523027768707997977269017776043477413232342524355243806983240363828430209498515464611121323424333291940469561174855774999137985189127270411550973578170087762502160736968476929281619688322769887832577047108300891168062455862393636868856391470506213221542670857770033064293899812922550539628671728696587760539344992072195506971161721618807082563789810745993784780036899871289808114242984320412551559695747687777702591562694431990024826319768355800952217381726165317374422928103036386068544339253756508664149544330891865563381637507018445433005382839402839305113313757364945515793011135889069665890626498423070892077071049693275117304162467686957447992289806609022738690873245459894604078065701606546462562290691759473874654513247816138307145095714014522676781300924495244271411134359454161727214625501818325683015116353086670903811910797768372695025022879487752845024802191341023679860481673708394826638828748443818877708304506298423491907196203369608586785630334373242878293815407482905489896862741890494454732918755132404412909996663889094770926253055353782179178528941992868890229080739746080220270412442935213360775776274697589767780382324000581616079613554277612494138546359011677352436729404510422879608609277854572703123315459465384722777247827496131443025371933543845410781194751551439651027071804119371692220905020194512004645803047167752862216004582272462924480540024749819277065757867420881547330312321618249467070448689094231573262416988981663836024989263105078891034823240573422463128610324606205098848833521290159994526700343792204383617797614727369262759998879554287318010704126994992840914126255990312830632325860764165896368413751989122877659333750347308184195221199876027508766143394737812227209185240123818553858194699044500244268003046679631185095640440414137307800851147391524288487434906464092300342660200924695274950610668737428072847971425740588090644693748734080428963786841568630310616056124114197511507287739688426886584632973987760170712204011875746947833308165494251870642910125560187358041588282857407131110368684733181882822814891610064457712527732202347880590160093878602718596713262697304129014972653193989602117406457834938716967995801139105698016332746117477594220533665961999502626641805655966852876318120945165016701266849394342914749731624026213245919821147182627336298956804558555987326512045201247813097365924451493410290124967210237921553465995223714016835075209590249645773882427192665220283831237012662141995783271225859658669700910506212052933396138014409075499382252097240466187326550654841469119389174969495363892112879005714874867238595157741008447787033515014170685418814285500825528566906402495118413799780187055210738517127828891343171028512909621766368476779604451038746272606141486733456373021636400982773623943892639250531616377361745717795428487681788615934910404923093877487496649003537772501359340933016972644333516551332292697108851124356642625654303714275150272689851664641138378935076229136770520285605088595871811437322622817127165326090180573004598631982509288940660143762932921073585361790280071657132637880108486063771193409972428839424383051558914174277046098309623628166839656002228044020344894423832430003120133619406961396652241005730725341656932912151322196222923256853034932203220566304900077011869122678532039447439473217224825928914098582806602648446135386319000995773645759942695004154238504117777237335612201210000717317571899252027138342755123438135430823213380418771163554688949369221360576847048864004089172151688556240504975908993572783406071077998120725738600020800886788915186324598827232820390198880263244315049691497706850581578877607339380243419455576255618164825946126244865558319713025662780045813256723868312637345971568286645881147480482084519547828031391043251426509860896789187120298692648606196913293859103755375335285382887725320009214181646603130906400858682918775856346789967675080406111413113008741002111515618459911848038677546083306997108919421793512180547811744735780079032633042663414102354967883635833589615664870120963166845446460756488013191596707077957438638220964679926975244449617109720538281964905940041598028894851946859896253916377610829170345528459579802162761032956737534269517555750001667697951409796494500948706574329955081775334751264022259716201402888842228468351028672663551275695825138483377210348447355035570650673874231174377533301495418752887566255456121568754678480886790184493833567843604395692714282212018103122455450969443392521022745488012702219736449801769318756592076030640497228326187578390305794635693655187381747356540529787568681199238947271762971401385125661148729355856454760623341961097588872672900395183440434340597004753321358211176432711668704730320071409097910007331905883522632663450169801024972277799597171857769470136017934528831815568573968027621249770785468160095541659028897301711202836768126966175686383905782289966149492213205654277772665511110978939915698998802413520563070338929649985267541226437547534535333474132920008669382397238925879803072980554265224595205585494421294553485745788845087019484110136078032309836287173031638026155900062098099709972813860679299243092303898723874114171424966263077648814506120788237673018803497202563963381461280043627909205383927016528569524938446075818133664435550080247708493999482189856422341795392135703177225448451660163364866297344385913632300066440550976192391714047095146793174587935744910294437392824229573644767584781367120885023165080393273226697626725850905582555505345122854123947202970463999668900468163321655993850096131906960998210199986886337620554140046040673103237070587555115896565672174742498573454090912033834594966039148117677455604019259789622593554969743348584286518011955589026945394730710750335536829478237515798412016796117058033537190615067734813260455332845465437450326572172255542713483562359902789985009228850648657967081897651821765373714949559508265495531933906146706357493793975021229528687866994922622101786231148950847414075089914978446636971876628385220001237844798746314748792262139496278245915323523274866620972625630161750762915383382833857506982006755801274298419446398809090473985355304122893121619495592416523062555872636990674325357392185365035236925992377182546803844843345573999441462993036836376780531713640049269680675880795694379708936772564326649729234818791330392444204523044366929613047125214650432785247016367131126681699519192053879401520587345788311315843210007461176612982307743469138561196451874565338921694856850623094120780292354976978882677288127669741462499679120513045833923654843976350639228112315869675569072379875546535338423593946128832528126266069304872079093404232585074254493370069339344076169309836762530434505465858830063692306003080803530223705517331800716909015127821699247306753694702125659577821431848604953860318264049796592913685713715513310047496088389585915088415302416247275828040935978718792657968746390955808824746317700490436157089472514190489809728229893697274604775305865093589669400073516718073816054056297580133772505991369488095768737389673303686340485824291344597299938691661782593349384502158643343092172329635841231555547963378774587038011228798048025574658094810578041598969893936477546035946727505496600147454560091532791847474007048321259499460481003337267690716172952089640841437611571558062894097581018082703153893818027834373483785442558605825528495732048342110394320392889818038734312518796829129129000804752350584579178526471657029074606182853004866906664623530032029612483552907375576557380798400058792792582405009640368394007643741801066540859550719736202103674825718124760259914994474647073035690474329701449689652999737975129799139455020651123217743006731214687523007110331647616346793999735894948835381327707245119144073714445283846580087736140338656844261767175983220903350909871284224786636018957408484426916284149871075583971721558784871070509755924856657406067061817310608941823493769534505959664199755382716390656929649427470583517811442395308602298040220997664695317312073010107420271066003612363223024691687400966469522858554565507680191712656329743141217377541522242247258949400366686163771688355877402985763647533845182246431620875085611839163613331503453352705741661076223277690687559140438434791362229547337407442273053740849653277653595304650181970212935686355004290454256301887025063345949025108922971535380375727578193476958782185016479299924063911971518362863243628793862005762688268813741047307178863848923345509665472298154647405140558728244940526519128307404100636955054849662947188061686534857751181089320502422825003648979332699409977525161125924301520192473991528013085951345477643926015499884769658265087967886281729112585776358076721732820702379357510357633350922801877878289362781900536394379287013760995075792395544161032346358781747905210957831671121516102670534204526534178188588261526106614449966892736593087185577222689851577609359288850605768038352429411316779519602854128207054275884221890833342820591587234701193837438960819452983314557160989964871686958748321943780126961782721870061189114879866389092437577905402236823430048125422403918711479023188258950476116588391528928865630146800648831990078753016882246267984627432636247220750915309387898995690240602960218834140398936959302147033590847453136636772922076349215308921554986768068284223205551930037606181480546749719700322391308401852185941202667336458291420212238783490394286111497658050886632954328779493039493422184504469420077762662790047888119641007574876615439129344226542580108277967491154628119683022673403068307126278455631949302697524303976716371462702632188857775665625936864531902425769994207201725287631315773169756024197358257479170831479702464631849170769173818779647559450533308867843224250158281682549989437577147455688758497983561516517103597754336792959531725568424464068731201783517857056263865099366321366730134911559526186844699490614828472838926830741257259916488703112901775443505331068777520660573053970226851861099089069845817880309776041154875449657789363657282747206769700509402542212435431093312272222067572149740876345323689763532411413370288460987323131711656762555811242457315860894775208165208049820147179672767423588264725081124153871706728138627110789632842455534135916034682659842341572048463964196150495305518874062998292348104685180033761393105110350589410985629092154517111057253971821269558033841982394015986380734633750477330249234931333387862048175025842333873096107875168067122039908649148458679446896608349830434024117357431386019771180894475728601181062314626313602873929325490586600959180492929148265536518371270713482035615246021332850353271478927771423564229032997982240360555452588944912489787890645344792564084296035239301978249662835747012989738315911871657748816630105288761442200488459952854243618526171550255209569902852068694196302641353731717176703359748858482945730785425653435507840217744541150074804064714655174305174264468212078607567816173810156215217204943851585201474625918163639403622692000365946660812490119879661911657078365109732547061067525696652579026718941651602525185029594412740096655818959999313159291876268343233761435447071956434264236379105337816310823726703296585965507302801862266062348063259205321178052285717509655596203548940568816629830160744085682115638585655426629652416530376750523551999288788980062594642409288292559022491166925923139912548607030964628509935643800754995981741321757511306349147278090552365715326162682877698352583165812031360876938822165640278552388609570033780325118775207730990088501539736310150223757587293204762009468520079275736788424243645092293942619858793215241121763514922803974422603193510896989734943796811705877023858008182865045007178021164641148867430317651705439391789989288440635480587396666055665131700364940733758025345022845569226698812211533671770922410209704767784184806323632174633602654352397802942385507357152739322474857837028348540047497656848628119041654343953516231413743984412105596031854367224165411098214879751976190635866612807906585818369516982858427672850143194738709092365369087539239707441828737115984786621103007131187145532159137735171936654928993585046679436223723558185487591511572652968815190243204556775510151177133693070547202691658656785530550674992807036040911301932260152543183218568302559240981389676945012822916419141988494540668384589702930898859490392584471117012376399491325018921482255907755633124868631768471819531028324693162453131455030194216701791293027142787173264388838184233061754322087984833632172502860748694894248630163946927556643297554677657404062166930409403357201265545552495537826986758891192414256228455553279203219373032807764248273281529934877616827302752559416291525422978176028834423710949747002695979407433378589740580301676530223203637554349028039844738509113747732617341150430644491860836240128850534886223538003346595699526869733413079266650564884935586196182957961109713015244269195992443665473653450115628139930102523847105458264564585569563673738139937114781501579365385056619687202763052117414864687631432938864102369532993981530515944472037981435437163872107923443786476786404740589241663830177114579369087645673854460461315273790377258433842530637039225105184721055522261084648452823060732371685660265502287155161541197460298370916630459786131861043830931092051750215722114811710865481686187408640678623938005446632179081158768586971063797336285189532471136655360924900533220096646404107717721302865268620639126038723548230076781361044645887252278215789433300215495910730161065434580665800305338811998411912389247733822309600460079896493073810591467035187945028065886544372276299436889533816453451720157079731487891909759119471879927112166284553320373715293947294122418955263709614175359453974654382903217267905804540365972093348102563817603727356967525675219947168439218073840239212298328055871963771283122663290261079324227029900292721416052589761270819176416502485445451206837690500072498930320653271921268812577357103503037887210865429991739444848230800459273018944642666126227028691026106863663782054960630442299175810455965067763290615086678512364309361362142467613784543501298561863133611084330428984068516334764531972739680265641363414583061583706324262050525005342404218880728970780466820037177501607573911225198048395470472883795443517902966118390621356826632273725989101769191639337809553352073762461403422351887504736742321752664696079921685337554435056893139206446228691515025785790637972099976510571202185494375420463042454372412403853835399162924704460637188869844521731255360042260210304458766471646417590514309005840301643953464020044624955441619483311687063711599300311932289194697425323279616810127578895180469188813304085366946192032200111680716484473447947628567334028409568758280299981802329602765744564395402736728027445267189998394596979206218525897961923871364204853820156054829272821872980357270353897033029354639697972456465885183668084349308507205960960793186147263338306845872205448807167480226873333776383101444912310653860990407742920084408321888923257936812817523441262929503986365439663595794976068411122128871736816012078177888842865095114387179021528674072705644227050570508023805955965744196340650152718325923207987479127489933422964609440587979700359437173986723192920037499253539551410979234562484079284800872863330207558764449183901517851845326911539443104331078257420429485268456622913434886001094624586484104102470797420791727885469973445360753364827304568066407046388713950737263928442606074353114959164234397416670249439161491291644099743358143228304347335278878180969668736826606955228622030125198913424777244645659461905695269053937088893486305637625267890001033044064062305873217956040417794149097055536136926774779165246558298187317061732295215909299940726101384038158001695055301119346338585006213919812391065085103912345226921315547228266377723980084268580773834450359614972457812681551715776085423994924740090743109427559444352202527457431299795092310468157611652905309060026900446079913381492352531440848316467786629342939879797554018783921356290509370062973751338290491817391864828747176155226045729597804127416093210377395817288753245685397813611104314747240809542842983969912364672641296442747401340126943874152604654837621274641755162136109997734468938267914865480511914418614924198939504375663061455590068483152344399346828857756253713298244391609512894908223869388110926405517440163495953048826453222055628747410225231457039732283617844556310261493415209458895823874124556472405104334354299565289789424871845046960373445687570481790265674177861079566885229181705155937007520985110140678159531248008769748061438760345381964333319307360369103140610229597465413756279548443066208458405676770413094690833408399924799063722282101245744018230253760124909168795922486736219504680329927477761394726382522217914837070482742003632717083900098993038921961200559093039286810204550305777434361334689199236295616718681934148462013270820565519565040679378733863668733579337643260655302574344969955572261813624524869030892436159515232103397657221595932025817896932986031790658057843208561641973488533665507799591478975180871097675439994093887166022250576887842815818314384083736349693921282362432825453838895837676218156579842622080453931865247744854200670198751888392622198953588683412147989335046680272273012149906486218324038153269684529764176037923859371420097233899708115389062299609865744437191919572886003698780384040049471907366585952453328294965915928965862672311825779405147701659816441336954764181865508590683235301087467346787388309675815938745080761526169879077288959349714879405724198818773584365203577621385488351907666865586382621610973507911887416705326608983481635415428296561250405792115687872258603609718881939734928247062795167596018081144307540122044335576479044107313035990720670976728417856002864685599705448496629511016508989364644748623767709390062972973434164861799543036681407162501600872698201366676766338859825866521355124828319730051095082710240164427057799798355026982032549250196419716406284605608573081593201744492044238727193872314388167019371556271530390185714990241686862894014367500118315517702702394514417058639952180880317407839189764475214716510670807175041578413378341886302156091698090895909029516201249542260243221893076795469301502259613550593075952256687041020355476068079311628758974724382114926969780058409917230918109530576826567123343656798043253885904259748107878295210004271409197555281487174198812353218933364700205109666533255756647602844348768051660827824337730874433088469709684541274536303598168160083008847729083539204816609676399588095580548446515217831493487397962011517592380271364382839585211599754296974762443724244675756431392211039793609827341534900222321312809945092093688759628162117705270396961694715958881530917963775717275102723538581420754573437159019907215580214501186556989687922925148434804829786978988823479679694640255436106847311247377098990842309744190380529717196280987172261243866835252805474528595395809736056936283559148252015633506921324199996626834018475327988126452813412418848772524693842148687770323004116463675989306057731758811044981516325974221412374526932326918663645071815396710281031406968776141706441616847265176184737098537377292368147914381020096457860272529393710167458676167357413272164636824173149372588501442063132713975271736224229156656772708695163064742330737094921399877989440821431086679417395348704598622164405005056386073925677038853742100384085631298624742269101587667250683594464796041262117859726488483390295154003749575878265026013283661579404425523423151953822875897386690340673736633881540642106628188772761040344334869980667563526444311277190200652701169888114660427688642828952182240480619642149587800582092832740764084534717812277250701742697128258691915120982954194946737137281393986975674133447999015379522367521017506011879609774190073307783985837478132432718722926567722369391885681886090955840292559332347765584975665830305558454002619508016675296896971811327907806157900950971754251838953301565116394835163003916336544928521303127480427380481627240157770035731373077937209513263799234476755543611539778619582883022631489768980012805944153139946470560410980600002687915003232106137973917240305737519803109073129691792374522837075743109727145366855582647244941094588836808718002645576760195458659459025497027379118958186107635281311757856202620542385980931391918156437200410771491184133186969808469692154180375084735040334418883419008501202147203710143869464715324413115137215871210325588599088955027174535483800009744482185083627118271874482496674884796328804694714384367389141617611565023365001457519969025725502161527080305630195773289740077614644636740253693758889664295001677628407317436637196886298991134385361703192103782259517359240856933926353535826055142269214156160629904267841282912352146501200434183602287427464852964852073708214737625590884931687005761440834103873957955433138676122861889397126436206967991830985924848034361958099746320919211836686445327159044776456247969619866690384229176075375861603516021912210080172837193603649902745963279343504358224020767039135875802498610266045050444502517324651338392653106506259230161163678999206748698708322570045859232635913532459002287239512082239715720184731306668594128470829294756174838860006214398954310115304263372823148840079316671872216116078380859093896772618425491994645695112364510144419459266010793690720540834916690242033765069041079004130612817151469536220500660759991731496828836356011560863762930646843025120361791046837515581305128548036789331015814843054843126602624687095476620921461945407468440938752499984518112240448630747733359656838320759276876280725205754853368169723126200663060421854118580174039636155827308079899705994194517850160958916908787981451069494950953596938487354990342753211909456951754459911152580307421166154935896982707863779131156235563549334448390203127144896519632570707639518244640213754563864487920379520169175091416927381348111188345444267506692756680389548009825269366934299876362302431575377596471527571362916439937635496910894741951943554472461763938711816216900071036944012161715689876103162772697207362635443580664598727996059953271791845132517773877559843636881987574764189232626421674653851171203984132321245431731854960706396274179985445906207947006170451618183116973183404046170532537623913704047342857950922506468009285928828124142114985934442185109366337120836062151519471545845834117931317878857295179540433647968397644078958678561603487074826784227195416869907168761365790604112798405263040997401244548522563781263214344386708541203275757731071172197275772370926519533850358350589965673626437704782868318657038740833750924577330723544306273032306462855471329542288285369541097293725870789845441947379382185082320340434482990255820526228640098967921988887460282153419513114402218334014311935450807611764696253036307458839814396919510187083338037042674038655539004835542717922565848326542221364627441983702207028359482481945478224773486782726167985298570197107109064820508569798057375682376908358257147057674950023308993410909261376356572950501303184534690798126626116193163048654260015344323243968579664517220585798482413643181371465321877603688938232318247054757284798588675510488108792485053705063900991866462535026919976532003613485537415787878996104945436579517298429005797078363839835931768919882569760002039158308701393996085430403219403548912372852123049324830259305594980736081090901727750484975570541125575607057377175854614995602718491026378591326711490307655890054479404682765451122139516260583875367549436863383595694018260014500810957414071061371618461226028596917576578372242611001298066856397154083598552310135739573476801035642628977324393634595005725524202884302864414214948756885666524918159357775932862146250275954313459330125244664103345683939763464648612387070536095543673183499758224018932937912396643318676505896229318824294494907733711101118423358626924272918993698065931303527983139423979787104988502675046912077333098396011910110327888573283948349166565736389503873606417814120347098391061127351726275989003393604406722389653122399089467795313364307284649535201002421914474239288818222265991335011307343569625721054423878384417549857899677774874003123184856434251523030223674185547317715628601547468711613617749448311553159083052690509566253568198066602901002793802398899246556731097579442610984776058410312193726329534730001135884055389496737503296298015331371358687830706155455683566312183319925511564953182326979682515696684431600191771577083655277766799828481088451550948032458700887550902980701069686441585595435142022500351173037065917093777322086831537782446199159703047184085539304766795210792293499502387333788474384676412932012921432499322192978031647315416142592147620924827686343745308714417177215750776255651594992323479105649765125147325871569456840923156894320458269771510222325688337674705048594858073281246022082281341204808444014774260553413053395337692368084562201064427760907701612696317235773203011013237953484173972590247092401583470166111022905030910656969666828412019686870226224688860142242815770327502476470478582267308720912659683583453528284663501364145616715013560439589360307875368847439294173211235437002534770575089700834064638765953152890312705721652786842519076715972524282606392631876808350938442942636357425493850511203675496318988399437333811551581556927792245741143901227948979657202747176695141721512803777072619250061506156505365970663113357388980831029908547118669763366730562374449525866282384259307634382463670903868511111855449687598558551471652800096613982512485718373632662571619401380833069534337276890174980483425734365567457029525368302910526545513919188272489041043379343344397763154409338522513779909024495596518943217547183049248297803353379806988722868223702033926831764957055300973059774444109215463418950012256857055621773427711139857264197495204452197409695288635322550991350174349078391392164498208948967874403958471660125129118613436899532035563799631320653896681832617449852610246830287822116943259414108975637750661112517950448858923406021485488787751233031236956633414629295357762171853571873812287885519513163495995665708140161449214761118133949190917819476495781573024081290233249706523875094143780704365095679950295960883416162332562913840611328790275965108759926381587686501430876215777537796713574536228436440321336515118457068723347204960297809907837505128080940966515929600454450460604828891827252679685852178559043937392837406722798509975385637959413514822230048058677022824190433444652732356793459041881361715521791317332239022373913623997317980724397092323492484339478126963084027899159005239640392803744967455306866384145480163488660268999993907942959638048964465617019832568491313477467895749145774370556233489273315337822203394567741228775679136792958193296544938409396331170041512778087017726438022762672867624455405274386036632256439343526270370820676847572304575126260267590239523758253754581722214256363546612434377968539048333295184751435984019515842876797377319044159582587981604487585110636167049499963215621541913836505424446373247914996305276202205942414906271080993559277469258674622881112572015914899777860540886213512610202668062492728277266459391211444875006398820837064424413145618295821539751241575224053315838349838019833474413283247784742320374121175708877154836635968466905308509996893898809826888557378100578450172767965274941530325758497158623621051249317675151766274044932337029682391495183887496722374527349526141758332560138166739862813866767085571585097431126632828379551677465695596369696516158697647305989968179526343303254209956692731536049111041174025294740044556320734490419560378058686938933779944193583283577977732551913824654298308067706356159462518724998580108457621567855914546260748929917719747426461538063594076323388159579523251006174438477809362769266649480489924129064312980309327738591126959790626572240923677515136933278897759309000069955239390306869901126866934701365833774473414483663472914765985909868662382984320626283815020556632975897143172159329205002920305242443988606988195425638761393735303608623322620351400460054037422005960721792318305130239908459315555648532113479557142293656594252350589526862613911289368286763496641985071834275501976421107138949692661489478476120866196432591704294172050028590248950944218692053632437381323661995350950581789109556979655797233189130993852989460183719380140399783696893496476678000322320633790215885151361626584970619229543766060394042502226695003440824031023051233254400942717438545995289049928752835701225702519699092878740276302227622564168730872083504553945017752234523476087660765165842625926986943543077676184921149782069135825869571626963241735714307559639169109769511362042509143945365825625440735232079024083018594084216472542328577132856456319355443576364185863610829088452951152259686022655423812631780072126447295039365670838023578405944874498504800671663861559672732176021512352579026010854091741984078986523964156886479046437178940652709144133541042567380794322137759969734043972973165682916341888181472932288457995635767041642321235996562572839969436975635845498144146971552104455729650879221965085750326479947083192984482222978739670108967081158783601787642596936604742963150622692856123260158890005215815241391372969807089768520955489618332861374876405586084120949276840254086648720031769324900044904010612868082766078730889012609363715807249734346881445113510115725938331090412684507698008699563588766013714362396403745112340819142271017768225480729637859046189977815685592953825384687671697180864357706198995009375414442366066632660533879643659969665637588436645253631501757305089533903901069642135395067247313291892058147464178907761606276457792036624418487755552383702531172034219690263984928424998538221147675199773841011817584898193352030066055098438738013616098361119940744327415125227529997110385123913258428800537994187500683471706263746137116065092755092751050927454201396336276986884144791254829986478170715122117320829927453269016312227586420464116931644115703534959057116940167142758745438514469994429219486625560397702027820966219938759305640226202743225995193848489504401460749954198801164617383751946305962823762976855092736706613471445234228069685564705133589559445748503331540174365303317476471989327370422760320434794839003186246647459361415911714030597161586533473858326783482304459001560517486687141615436564867078692687426729595273992670142771632652976143601482736918734304573805214924055760011518702247485170726732678371633735949715833077748926177859476224847607791368124754867411158587198017615660480777190663540768032157359311013297291879490197926429876345013078333333152557781201690289131216687174395189777369950004932846591000910077780723974307494949065342085880513051307989005532819813813331774792320436348494688834045577693868335869617146426460664401994892010953825159120126318221931667366832342955414500248458787008316602462822727489883156371986230138143761871763003867468151650313341375973987808018353480930938098576649038870728378465393040064129139290560460489562265123238535898914197463280877170460401206745796399851764951803104156469765668611683388466975702161229423426170729576061764728684438021863484627823082297767067042683323283464698189928864831855354048980711214642623995608946521956431378098758001530082236603415536217617675274722851780489257055989795207539989896261348606439661998370911473949993230984068194879574742813847169921681523842978204725078967140863596266358359033868289875592223014219976109472311587726898319804503098230515344646418497477103613962878506661858015657749699951845626307292147821916605001198167147013316712007911280808169210171491661091797313955145794443237348720974158157309969488491438716032824874544292935652745410286079590729391370916979532456415455870005584171083397878145033458711477249752202512418798435160581894454275802812932542370208992736851724158658400443513171653844178125933788607544937551214312513180513310231628363352482435711027173157101302090930539375108706000412974692061459002948551566085887032275714080464202079171407180798104788057641444370328180975153540636896106023242452392275477333540587449984177912340461204774827088089819246704994371581702500401736121753817583735369206750512313847503704125832926727579954922881691008096825107553710250345943381912247772158369620168716706990971763340395884290232392044904864143417362451881809107391032329547551970177435417403971232085063827212992157145116159848403217699494821928822286312757481409180664444964794318013428111700121147856313534383445791863119287437823609653994776144155439310383808952591672100133793565470489983908694177004470364815343259145933863201885327435744667049267858376897289866619354181489560140649781621749208377008380627118628486965604431008594494179253905865147503851965969766278723273127089674941581735079393778308235917065570776668506110506155810770187926531913331458052473639588440000508492027092700989427539122092200280945758639341756582509968065862013924495753986482893413245353161143416240306368477161604139811330061164055943632369713634325498291411248393229224101575652715785165694638080287113325267588519868213274884677347369169873274149618424828610815908031234806305178299093597077795107724104111503270879191759684650679969509900259580983040851770937674044535624374638326652973666539223583199321353864430423238224123765689918699649733246316926109703137657473269503969086134271497915764030546552614485233749464284917499510107818070315974322717159253314882225537119932021710750612622536139336151700773554451584782113919638153944511263480785103721760080610840877105064303653007486326737220273160677494291252917922786016245661688714991259869623349983381376332773283084406860816803407092308437136955175338411158969918673917880458159125104727058923726105616453645623280866477064594202317710783495267103708515202614960280219928902610157274415221327597243173509144430921658641541125132210377525677344203611942883982728636562614863367294143788152038127689478680557049179001712391205412977062911403504211833073376386960910768187072256424087978330851131009964936980940230444389928579236665579828115005400084610152162387751669268177063357352578002634594614738422561812870724873312728667310909132957237249864323522959508812206241667205777028602948342471950112245876954612374614868735968959574673720987864758025270467806470355470810262939242843265466939356190202815201396618410263239669249336239918141965868926219292420770180283012262458123696563582615864530137869997445664117272018779308425925643673498023823926052911912717689285734011701476786856514349193361080325899787710335617549826309061809452577560711909545371148302345056587675795689310775380725217107081909127330040186282182257030798571587923239532888590828075969942222543855832235469100124617914419435396391613368106287992798182503737229993165588446418831070494747916773090966805116563996919481309172676162658424411247921618288238301853252691747654726484812115797140604485448177230808001754062949442550483673979121591519073252813875297988381355639512018250261535017787644019386530218391499088485607619383847455159636280867345756995999126425995637411549430440891967423898948277215331492279994372712871632120520779114209150800652956382952179635960957669966345120704575186410475108915837077591414298647093666080490930561451991594281333662278065094098326805305388693873156850805123643165597728346379865596729698042361263094381951454135488792646219434983026740713446315579204913528471329321631195348190015156899764969022086226321009129048693647536780130552041533004943099605249552281840133083751327629980587102218903453904711462448090930910481801228651262932841394571611626488210981509967623193282945568904238474740830311006790672823768609965246333523511866270286518744744144711765799173437681444618344772570669812533223134914890389489935795944591775281164320457325071251522003952621187199666651739398495978065675662393080029818687840724254218388342201810610393386144457231803228347357092540815189629656620745099467680669156256891702526010345394851126029698423807708160750384875769550299726283657598732888921587657725330302156469634147291647929974877437557009403324461324103297778229203984361768344577261872096114227532649155950947017981734641108780197566287868800586940977859509426889595160234234813638630237547056625406104204043263633339321897190285910766164746925147987905265818260984929299939083969375181243573084318760135013061960699357236598550389463387081939904412535592093783627814925691581075989549001602787071507482207721959924873568410785442904622103102569078186661051203737728365066395873665317760751053598077798632149624002265315533816483358138917305337473462547162271647282974002942014845553538060176658844212027862612842564854327730564184523237942907797067183460353640115566055281091995660789375105189532234324771359103458545502766187009469485930554294796289958849603334404852007290076284097788902695899207421070775884328251248898250043465966119339633939434848390379591119726166852851121695788828185194415322568707094281490961965553486425849993835514969689319368966590911081494150761168925011004395203611785819254758682753342438456708669236964995673872418535340109796284167160917639287570188897704026257672713844013150827654525886259854881351252118190947449216571297831326414573995190098538966249523044277287539330714801005608233030729518681625313394512093895144532299262650668111795414757706071283358012618270737120462489124642208246671075586014603821667239656775089015919717278358616125463245216036134454511590695023062452387197401506460802939851637827302505809542179418831680617733710269647172870188399982992031240520531423972684785612831743065043903708674539627194660877356842918789080645905186313858886165575023453598260103068109570794821632320440739001725369353220975569986280833940152267913350345001178644617176343893848299715210667591985601122635590492165761758727161211197374320829484034344734949974193568700665536501418738964425394681267873143899502858583727502971626560587859662468665311512450836515060343787088935750661055223352514282890074394467965248172057330403580684757842398500146445711911839077799713114606921584339703903223119896097201484549899972526731412431987076323224365958458146180000982017206782866850027540794420471103308578751037088183513528844561483144749976117374012525382533232408901214073386920559292993080524570728154472265499133384478263462228800786375071871948124208591154460434228543478693036017115727195934532222959949523835652891669680602544212346104098958638611464357431957735915666754134007527084324175011706704825138924544133044021318328660975379825431412450027603557578809596500221532108046646565768295356880042923361832377615478763291124343377825152107008671412768583950575958979670699960926278296290184536240123970559475207464008531753552880433707839925201200047755481141595859872148821436854633720496234974506855366054995130873285028742289228534092588015423133079464885424717464867888947884463939312566870824559685045811634097784931110907241383309783835897147911713409161014814980989288712208027810237466311058194300300115044552482883356736571816040451414704477182868878734168288606221617959140850532768018425808084472610913799197743001980836792951941222300042022303222944212420349802297737988787883661484305004721144316744873175473010450015059532608244133052584492891353482753137975571493753413390514077684560420490342012713396851964844509907474870562189653473726332957162400899354796169334830578142602811464432743297294828926888645236757440489167219281189716546956986505782200314675803598334903142945366258358243442812984909575162097822798229069960467793585756313726204751514483487754857653011271211899486715873251774490770547415626698418196264044708508352020015188896960062882648546319521639780826847209197636805082613527052496786737937864294068646105851882527980508125628459212014365857237018211015079023005637012192791113987874423454433271694001542484570235363641820427501224685543374544107638240080725469304310621161442576677478117971675225405121449719332855949141303361255303186843149450932104485619817738954893935314195207390072970788541579639144489021615005649424192618181883822061434976430745624197787941145479880397621385937849560785073433767208025067187064698703233914055652024858476278027581489582948513521950870629710702508071253555351199170781953837706414616302764860964156621049872756433499987007978108338403195347848983643938696693857949605804859407429992347285727506567957062788626840509405605448134599976490754389784151725685060108780435353182036113935694791574897212655383939222452164146110678070890183193052103998224234376357597029157558329574929712552175582788385906910679531647290338957222124896759062474237639284731793331284344228876182749790137499523428103041684409033796034460881426099746543447321064367957904030423665120773769647412834987553203228540203944592375237982740182294214747918683923682151816130107746071296511406356424318676858080049285368218894599979956320996748587553820244706486650414133814502368942232904179830782279580103914969997300572435026104797051826379253625109501824791523912032098341336902443772408836213890134094451690578317696849334939950998960421942770761356980962756007912994271544303256789496475998805830003553181531395709136621646647069170254802075699753129004742538016005383187060550415376657245739747451642171335968181314658839619388432433750510453411130194964547376105297492004762200194728069630987628615512360532124996491154486422852195966952963544883706702049079994982470820915360140633110430166854612846401675854524575975109223628041631217087038267982066518825148307223539470302104986519779950063296902526015236036828347536208999311047840049382367102645418392751841579963161182536116284846126179034320234760363730997605920749651030602913316102342657638566203277964727820045682165841307703188012347055046514380740254286908633945173646941807652228687691769530784449770546423652235451421714087330870852407715051844742150928139889330085184182412465988317777494272716560027792649099805113095476231524839105353725987915055766129215061555522266734462780778404879031660646827353117487154605062404973315986939832793754125972424505988874212945354993737199825959936580247183251920853143062729973450416511044431618502704947003172299568905408452747652904516997945762005844971348070472575559217082355251410450030671821694582867236284033703020464363083814591175739979604410632130088039352995532388670819563920303219446504976618426436199067135110410400796999930760753748704090971039007940322425937401488524723457446030766056851059564024790422527040111203754093770846039921862582405198592515407624016182699054353695941362594220528917665955308666341117324966615681927993933588821009174742287630222688971330084841407670779709700395865828547926570061007583770545613084089684251497389570017662044868251637166685031426690117310012659343680682681702785919129726755048051751117760068306218614507872614819321362179038573142025385778095210710018588385747647891084667453238298879494238856816644641308160895409142604011352822214394200557917157598655872348384731015338250018856509739853123675490625944145885651503690160740075100744683624472287292576936557540795689751098667773286436099277431147473178120747646868144195397384423388909838823552639207100294289969531650757947341290895408792960956132714112006643448292853537155451505689426471516546750014459367773649462682292557284063636965218445285361630579850956362563757165987355354412126710552037119856343155356100795544319132103441532815989466532035818316279986150941467718643655825675246030212466244136671028557101446536730986008413494426298909144330668747269048606080753002851125497863622116315089851896161451778166070793774731950302245689004676657462199326514263810942059359969842621676274449852970628883012785458909429836174100161981416608980500667181317328036686760433987265933674911686021637897175997298248619739129095607557229488598841068847647328564127250141094026477245265986195821341333010610340531684220369752451671619882313243931901133916037044439833698808668957587755250739699802563858329095765941471110564565039586701393490355107779178845707800301811165068963546219837359884565722114593584260803838683476093647738690239620372080025344273394214909965931843332496592094450934282961096174592805785391810809490339374157348877030944814008767806435150472865498358731337534395818940335799110835206437925310182746684746270470306588892487211202772224490264827903198104129624252786247932860768633220059294045129086472083749957316468350625331496235629279720591661078040919949780228869641676571490772234908299985791732894785786428306853502620989162460811221682981996762159755817039984282240759479364602819907712782941152662958019214084286524360544064618212806454040664381749129610833408301067997541574005911896048081698262588459580989798495981799672433744986956027516760784149015760448654802284958376462883525257641202483231525666385747902767884940546890875343204811187598704418040970737825073778774234433285133804368960140356963182515878346999325466945673402753814504680424529311808319969213145309534401778873512737668837852089933449797165458830147173814782205363337913946554473018649116498307454177524147764227589464232924135568564431744326182553356884943495200658468410641803480435959353711556488167243149085420342339576583254959511484844696286489712069660506514824214846114211763068594454983463269225372709614597129143494027876091661844441376736101302227289488988667165551611841458292038145504980931445180447847588241470192318972903930191783047132221159886008792738759706703771121029623423084178898567818033441749134079710780156094523277841586049691879766403219846246127273594485541216337026080066682743380079439627283919124538851086872497610954827440628852777056497838067289019369401368508353606630442604740484629870967782205976541588432695912265937177807077011811155718499143408350844147254106655920481405450005451244086567627691851181588445702160932977699950993341608112511008722377645595278768282682270581271676459798586201745126814961465010120870234257637139471588641891494776649998978765330699161812864602200553814896659623164099665123814601101361351552869054790757458599467008835702570449840384569010210070220764714358825793542054932242940163895193110879890337237839721479621340059818546162647854374399597240898565056091736057658274057486243584420057656771828596519993026251117984603243621160459471311892705568643421252100917371692501733093847516462872127973551083314451795319364431022693265050759178025867695037613556744349009801101821136423929933963715837481127187900707083397419261887058174859543148292224249991046214355069249504346001609765036288374665445682638837585627785201894294392096738498792618706207611247032248190739352357360338346604164875245063077377875219232104133762598370660043585615253974228270123535980621669918926513906083240525136841018931611834328352894884638786640029389606541767925379302475455195153168186011977098025491182862465893359795847608379645432112257177972168676091792000775363583631179893087573449867109842725028785276372176066617235109142676170819859495424674704883573074279685466879472997385406985794377577983553795431342835867955613925372545070659179294422278016022839459666650640833817927734989097705572908288645319921419537850414550535143464686097471452993047206209549597942008073383038559245787726829271299034559118295194013696143166609786194962910790133485165514127017368476983114493802020662558659041577126714037301943760763654189794738294112308725068138040201049298791125549263552005850673611839964752573589695776814476419954818768111733049984271203405177156572554166189629349622886456272029315232280004781092596280195668522912612997644231210618635501416878756371655692053960039851291568898740839901973234278514316058771752906280233220976415303228262314239527106431397314310747141937594175786653222080771627937911620247192276317561657154460276133579604242300778379842597302727669553701109585435177010738802115542712053296390317060910641440148404029222206479288730615506830582921766035170605722320965838555680372760648650078750914943820926494373188918380490911574474041956234802313295833401468957589917850163360401925674558842140930303864690975909330007777730403765159709175603351518971392014477425378481508435855624617048259495347092806955650084235986833856845782152263549213057557299875634829246892319423302709802938413328549876005039230137717563700638233843295819174257025595159047743486043038290647742963899670070861209206543220148676168867359198293480359509122134799782456333620164494255229610641763115477029159118074434545064059409663860743427033232956088122243744288712823960570866741653925449781652994240080368915952075400689040947222122292565265397661305515306973695298405749603218392965143378047930882313440996245017414675094507868931558485188934704938769806642594028075081240386548804886699969386004589536969178038673814344149395775302249130394156616869077324637226981086153117947543828781789565297956595824118636113659966782733298422624746276576155223593806252475756485301326953136055953208358059388412528523245213665007618764335650088600775789191137975018588600308112838926782936362533084080514625741626289904316190312049085486482482460442029539637643895698630635470888773480027505317675998839631955798699613493003040090043575014661444013356925160970938929619043856377367994860661521001631905847607211198338922065206559711923684906432279561558322435885072302401075242719349410985159059198680563721273791165697154994901569792941292912743377109218707767486582002907038365346490059936457722339769664230803114933062435374696316810977875619193981333454656590148582687165027475094857893842190913612094203505741912150078953003470693675821210119441395526905083055606045510927407636052308146317651046717377424808406840619101134680537639396535212443700122031074013727939154390781664339254796824217077870622689890268769124049986472945038454274841404877031675818791085730596851440424274260968122419536928316693305551375322946170506618796473631468698747675790989748881103689914849920124444511733494791651761667872656099402134711220692469964634093861687147869174861195727471319576482119869161036657227690654052210738095634826997961819903659742792297092240568061471355471810946712933428839235146635302825459432150139738036261839120158407454803004857954890203408617359112564705732293511615142386207728593299746144635326915612508888609702291022167552194864077496551234868743325746348030610768700416703407408976005565858417218237608871583044781604381853695281085102061887733188315857608503844436764193093268261499260990522030430366728260332389146289857270053455269614933838550200763467599447746648986299868777432212312521175733830367618696649281271096361706013140790791644919487956741446930973594779111826956836612477986873482907894414819645227945173796348826277152231687557057160160993339467100864790460004808675544887369376785189939335198392596401862979014839523194372730773311307129150983637986895811560374415484873659736755302975284184601802074691551854498852432432980008356744031149227006183008210713677282203680565906256644100334819280686278097680317601347031268749843994001428391340286419635992557935787130179097097727269631206342124848874086518714731467769077445907459037401946400930028252830238707347636884453932882979331657488386894153440622969428396370389659019516226210462354617136915417860533096252810399908378151955672652778259157625119801149584422550432460116065205344500746598573209769745221553693757029893860125135837597361142573539070419830361799832753628082999201025458857870788459901103985095940749509438701909907352487713141860368829821601759593037335717487160241445735543676383892452053805012800948372724842084938628857523135267292623798533217296539493188759884775119740362737726510584471400975215041406640803614401113624820223102925793165458219523364092875313643672267906940946290925171029412897855075362274487512944585137504401996680991814750022161924181800757655963892495691746007413553235748817162904749490442491901813670659664586371890153190959975081096198410364909847513292979480688184923465485578039567755778055104472879173296213129360348547089399763798246197119719433168722834630762581833043013390944203747794630003259611543498126557751460916290760502510679549744745302640246925290979952002068148968818184500456069736238143159172262559730274910908330402390911372826630617275190644829205233453695561993562158833821684727536514282547763221648539362290153611877636575017674960116324131430573032751874306930456929102239827430104212405210768236672199653687600397523236720034861911498462599898682681194408670273023395707547879292290336277756565276630501128025914727436189044352336524767609946761500063671889795263805591143446054019848003163694475204169291695056880536645223294830302717067261845456306623790743671287142952437300468292010438798167623181595682670096675072852765825863058653310352233870067502961695451012499303889637509743580369633750809033675417141772009342525937225168254986863963957030243652843388687348750570115754944106666500676558636229491869400910466253428594834816469361651975185672542649838215728267461740701708674321655933858215220115471191533544524784809448611102722196269018136198365568313627700361737716247627835588072520434780424992313130464011673734841132403305042475340352464468559049618772844666058014875423508064369370307223473926224017689113939676875212417561808479122274407594995244596916069986736704413604452499369361931934789798422465744018037656283952987931934861080386489946418562514056225902080542137677554242687499358391948356194922639013405488238763902738402441152333680549538450167960898875042507722694945411866359485326023340567912930172909092332243279675834683445494996684335649215935774885864240050594195116048365857322430687681236593427823200124345622536425668289113499673309819460592246922174330917382657220309341403097547811309712091003888299770149111060755806258762626562761120240234968046477399182369794132851712983093069586470680154774952200278742432625028566277497221753218314035149788362456785697045501663089417365327476302057187190670328281760399002824228578256285504443017709180351784509542675160415272871650728226065014712466235769903062434415724358536100430058325026528361314903257371760969254129594439898004677478271648889377219021989949648365119443196806930893233916758317947999889283474092714460014761642033348184122544516997537499295575207326893161769828815343535078196755293392490627863903724990170595815592916046200983423045493038887506770821505782141629170815301322914879578862731014180834067937817632608707111905485076323482400509490359547041317548180105517051179964949010136041072135387173761773065181011739802892980638178939048810002453799031867818987602102417780074612761141677330584809054879453703922353761028533884732249084364743842181595619309416337790707030358252121045971099342519109825307646709527358007200481641992232336632221902278372270539102642681754221039524799045480567302993665634530767067726808775031422437572649547807094449322031956931517791887573900703408139020363590590315838775682395318713257164600316850809798777568855192328937498288267696208414491833619535950087392483117035897188388224832395705392536230569271648506007541471769212863531560714959919980948978577018534909036145777903303269977089796803037658696809806493400127357670041414315904057620363350039723306550232037558525353402337084073580250529534608763849008860930911226766700465005434428241830216570116896183811641668757124226306462822857736095949998270548124779682879108837725916424916670520626765288679860478020506613052840915467912512084051426507169150720003996684040653129096982868015124704410693656738110468475837409043856520925744519928190983652516656007394963730703683274803329114201438087401117560622269273502356072340023158600237527287772755767808990400664030075906763592390265080726869593671125429261950142116312065272297076819959999281502795190913213654789943681044466704456333508951413856850654859745132204238786370899419490926924985488124861046895622972569399140432680531808731041194449000035214121900436958899823859947705647495979497580941252236713091351266417443339832280466632764176942096467126324288062622025755507312024410026712568683769563795227433836914206347162816093140299839002309318431443317472951466847979334382629360896600392366440307036489714997053322456038404189151171910921792871750832991148684125998206387753515471363083342316716272859162744971496955568630952430286104402574144258755741065855087861374086989620625365027396848550101225153145536189626588172572694148747620606721006940690304840391011361443597854998091998136729898912620714496387906606954489160143188217081436668229362594353075993387160133864510399003125796813076314054442630361150035263866287038418400732581218788863460681398558131648534993008179684114540688256960718906078196801169221798981946710583735910039659195101664278283860827861348912414820905187681883178659485082456647306329463451192704208567515885074998450693598056141673217105776238899687680533687157831852428382894677527813696220487841784621673913490232693505822131510123681179556952149656316036888144082774778807902380183478324986900697197918143997151702948541280818482684980980243204033613907785219620225216333671937082945698596956894285350324027776481983257664275118028319979047333977924038768990275936188401706234486007617709178169850972577061735973407983465177906041587612074113222281256217590935664288452887848740696533248145387384529312423165596119051279624928795194112198990345835350877285730230527623911128154597389580006848507602978421961789380370326602839778723078912010114125420606237365390052083833281647719645755267340236566626635713908899673291731748301589874034624420933934766067704070577799441633555076975300295493759030061090221994155121222825570262947058207240181790195472480888294139385916720439799140243294721887355400455713815444234215677844355018302532168750908924197080129800493283100351738865971926193002514978694645082149215789768835369578107830425210137952310876245318283570725943112985065877049688627779855355463343837354530282226887509455826754872957059004477602997512066234166164041369198691274720045238270638044917087189432854033300847684944363780750296086853867677448483764108537258854357333706490075410361268187912057599901119369771321994147513320578985746072287727304927174163511010149241234933285368626695665733249329408282035178869967563669626438330659696177024307608249119428703312388016320697236321256217826868122974023185802150045889189099304126514289464051233232310437900576203876244462070280715192848207624588166546114785435977492077863962466074938185125377172432427964762654473530776750046639061080623488006441658535660274657921399823116735303132145817934734182168181539385368838586735109928048458568299425236955780509472116001925725424822429274015789974156836316883070094397994733366955815461829739878832390497717261599129164536447708682632364604093943029944600935269611438199516742033840477961227503063428572676311250965413568134112477965001888503628438286087047065498409840063012418417528678658859296506319368985783881280297681419717347262530221063655804578883645150467712823664609331139607932005447853158806159307572850646685355046190377306317654694314437199272457957500405520083340036205750686502736372361205700677964951143949998929954549412741919404718087920416538823548052789155017286535285169643760443965460148806338111972884208335577985041612299588315375095485327024844494182351564148780259741720429645207528957789774189509073250065282509790099823959432634071296561529192140476243212214261785820552722835181228152958989264064106228320427433110807823882177220453575257072842615054733427951013149990628764637402951136890728464042697676317657426154380662167438529062727077647504738155564752712113540517242962931554172641948684955847942609427895299616465880937831465882810154597784055825059831527889400196058619669063820692029748837059970841183367911410024620908677698123293687073532970686861711748619692457542072293006095357659618741776576324820008430264203565818762790402327478437627134917894429655628623986548514366505901798355539097804177170033867854383344257925847699923592889301595452612349382026807856232297290486101109532588616312707972183616373899127325943358638188242797470284943819935631032965496876250583363314548077105801574912316330416038876366794843439373717467891977189853139448241699423733940043700722156176233277544932660269329272467305860630738018791023068268129640379758452558403950882507857814278794657110013181755651981822998831289767982483538116410761133779579491953420424350688505854229638090373676850513737023859660062679573295577838670668475944910654442618840747870899789749777393855883004276245432922103967821013472492592941144031455697906069337160930701846027948299433752449111536698530705810513030138937178936059370770039177257024031022444289396516007704926039543628242378542024430705792298599462342097184859838232521150228258939368057856479865655619674416523379547714370428206894525162340438868154106967074308829546183098625664508514873042498765771150410465033830493161088450354770129813087060726410457812794497501570592457606503826562904337107563883024134196229264346280256049434655674040223858044493293404127120536149194632650569664007788775153151093946436224387597305062208849845377417901989425691139178873054701172170360924133966916280990144205569426220271655452358434513982873312018947954821912142339010921847207695578894008264434437844955854292441436936332093742460300859093626823704181874861645006638971722636336979198523756353650664382120534056397917312961514995385576392059264147160716922838872985735470029334142013674474366346102605656102450814305518118342279615847629036725690151481498486295648264959706431051422620637650274595165211488511380768294887138875806946793494625671975235854585932516483658100704735764658752576979053233079438263501227871568030909180004775152777948283359325407858928081749229652842030922823905074707345473748237773420003928938644045859047639005163838065997797477934887842013092356923120884209509732900890074356451534324357809237494848444706500316791482009870051380977580552157976555603250254204744148634571490372347991680610383740628908502736499226188972495322408004540959951267625936449210484249019731185435631654832881312678525095348613370880756579609706522169905302479402842518233921607211139718207611519173346618073459769218455309608063299747980946358626655161966295750897019799727757351835194027997968671646093533404585009782189132616374092781222104984204045323909232821833430956539481534597608389016996616648443654168531900808461999240441203426208869736468989623746294243112695723119291223572688740133249283355062679130805160560391876991494314088960207897877791702701274310065627762558106503087258509691258935824571096530705909125584947824789637910013811794628849424396902869239466086320603635412003411962893498864487132298550936785824338779360230605593284498764479927508033866604297841516647784141457324321695336046230720085398333794723442099689191674664873856636608873995376975312250060086032749237010546583602535431786769060210339509489471348404152234644466221137525462543163987647880796735395248222720600412017107403995542139325510149403361961478256560818629914853213158756300441191957970624407895893084143749915160186219106282664677336664757637307484857081041084036002409733541518268539677911507748553191757674264019256602452213956808783990010131480023812608229127200124293993265256287841615434430790308457226465285424753814869113264399804277465723086811112213457312310252954921573321307195157783919378527840055850842086952428869357926973543705421195661953688090122108137650415766036405478997969465816384972824167736347254974647409434506599198077798592035897641304729146949283507270943250442364244265691337126522565467685852801592421442461736244973420825722284546055817345926983409178243005998298632656369717140096836879727077781206991509947872995634231653307214233596925424203314502769163694194423356053622314607279877420382946272422363113582972938643647010517740497105168737873858666471861833657028007569389775262288480833293957143155370561603912182813144815836273393032414919922462019658511589136237782580934454815649843493320077461635351178156094373810909339986804600171188505870683678344182921215560653704462649390142440838721955103851335883183503615714460265439230694759703579960878774370208451378675049711398253535683107586360074010020820257878226865203021603497351320083429133520553211898405779917871590852059034967129377453845525175963032470517757628164235069016218978349683293642570208217431282391466637856616764724384044225326946775454324448886700224217212385912889136274747766239939469521569050727239389113564464013866511746389821409036701667528235875701184695254113573762991151965883494700688158130881512906685565525773174361326439092028837383193303105419723252651724220274504250269328413540084416928845821063767704720457881394057613766421395947092617633687376289102722806231304980834743986442232867772329232952133905656401283455502871199638471658039167807081969386677423542157223458064275632562173457236503224485087723239827076728011625369266537620477782144495260109998003124113845152812352816363502508639370195782233141716730970145202211489545510667883927063579463830969771942333086025020152880133568822271916922239562488889026508857692912079841658361225416015139332282203018640879191645622013952484663479298212797213984628657904684150983457997040995323907006907826918905388505629250046889129377886590814181660770269185207221870098980344130851700623570861232477216366482540582377038231121264294183111652382040426959937369576830403287313723522604405180457697065097080830309967065409662668364916128149040538678772220896975732726071662695234554616888661118120741385768197618582933950016316502495351682379482734049265561413951572249654957996190309501208715523885572700893353374473565420654261985264232818289444755436633112940951091313206105116423024536293564333716454728451381350600005962656515630800509840810598672731665015748939877151240977805438880217786054520683663414774362284282435451900936188228649485029013864031682065709177489335505255250309021014220609341410082195398410055575635646878452701177243998168172589926498160811738919140159827826289218418804762274863126997581964615028470627468986494752302404435430940657599591715791145765602790290316869469255490871006333847734825959869536187500925373734793945532521273521382662051303601318120584795275426241086209094075894760631348616488188128415945440633548598530584878516415297456573013116922155064937794144036344038087591160194272291215610184683650655431250720434308439927986008018633505001607190325091948022050961066773943217639318307522789837980316783667108712776871104349800623851880163323312357270794101679303061946349620408673323698494027232432385206830954504832318896264318326440307691970357733795474134575731380205853927277210624470713066407893330368340404721789408530033984829038137663634867411407595748415659885874220053625906690527281344402583628097918351883109190308708890334829166182595969687967734085119217713650585605634639068617734594342877949982778237093851248821729647784013543742584819902467674940229253123205004014872936789494237027523133149155771420060740627979614773436774018835054656881482939482198838205401165952640954486896644687271296813085950996446020830839543482305630553362266206553936155893575625486037930415476253452386540241075616055250535045261817601040323944692958529104326501185682017731856394418394117492850061382919250656694217265075386356643539349002690177665653759938378163167971375184295170566880383149907945542066778654276077368849635214695530688137758840156252683593082427037695556704166149678588574371558016593644731220704274104489647819981948686046927166900405335911371288031314819847599545983425495491801595848966031867857443969281714244054875110283294563806782297753186211342128342842168016114196597102039092069749599845746623703070614411396891866617911365697546467434158085862344308120484610413135207131261966528250232598549771905770617156264321429204960038411303227739808303429768773177395955242474427919697154932522459825614474167002688938047624527959379835102192853787479144410315595051378086196905164263014741166972244006039830255811947746888551682597199903121933900312609626802663632120793395507374541646719554483130701550034648720070361928242276466597509740415075719649664335945687640203167948281919155653918667948408657572007031494587052255036070224425787057973779078347797581785196366125939865713094577668388315138070069165348949720964068788624225100660852917071472512538322931464309881657499339742323307050849414147169918426585217639916359268932799078361431413613031781830665684327447115042786995090886434507396133925896172137178482080188796589539505878921787395217646959716000870928971499296659492785385983489697814241201253367311941245115858032336956996430450537791633368198422967905068771646221214008577694705450447876809463917142558125917230894142220007554326146797380688091240071277918719148715711845755156323013632128621704995401743561212146449254596147518182859014394420056919307045829124081670665709796593861364712827543183889961993327242472314840944248551887394189229353880890676900889286173473445040162674728549098823232440972983216771323603037264543898059097732191357141769087278942905232476303153969488749696465044307346559468584074133519732773688256421446709440993634815400298744174770813434605398295678657316452252360186028935861822477558369556460114897617392036990407043329888586385715206980825920029131271885122141763023180725039080703162629783372583812126115310989542153324449737463786455201122637091092475295387969481211443954714937535087347919199312921110653826713549662507781726949055978730574841446277264378876530845366240941756979660262444491925813775725981640262765269639199674246989597460667614056232756867734031509612400836469067773840623776493518207194947770844147407689710226784154478537519406777886333774368097476493065051394809472622362129203618735374485699331815057324587072868152591568311755655922935823767998564712990140948131742843327490473399999098900072453251269934249414855168962350947940782702800303491197050309075425754359777411892117854734532513319080770101731959240514720328212708648277563639223349301717821233878790172319506169744768957801966612735550913668888188367910352880946200115693018060447051409874110952894230337413335107841755217929874610161794141907436185992760538047688007909348527069571414991782422449747616204659984370782738986971144319757450682746380822418621420042714894002276101517112883785123674061995456860163089944981487492177354355773859266703612370550129833131048326610822636708930771765697364086773801624463112577499829739120366596503760863406433032229882677862238140119000621971410071673205781110741168906455782162018193290016737561735351034940911325020736774190650455055124700213694844749110068958651984270613982776531681079534863109993556211756801554539083838070608571475092076081920094508791319407253678745354072676336437681551832179412586265380866375209907300076175771475270244391841524835625762114890738636975207311498028130661186301845586347890960724522585557992233464068825862962059345190842968744146349915452211593996141370012409748487134677275720913812650096415413055478094655827247103877549275385981222275697897453952780069652371163848693866304523239852277327957551232068004898808430023559701470228803113371613773376536384223859401870367472120500581510469705771610454646904142383993552958730264654770103811870259968080827881806813618768205255917867746789256198186471437554081910989210279932537688107128877655823626588590924014675312443021209753294988145933776129090979087894004057865265903262994027330468536460596119311900640673025598146611563887928254006975686484343102563760163047798840067176963928276048267468575750389523989241654703486405047082665996904624703433024195740257102223194703745013927123806777417009671233469182838196135889681868296212072287396307273842098539511813750343608890749543060992147052168304624276042910255246160461226312130906106148110375006916636780656946159565443085520152792441943067076376004246731370074831257549072998221968353014175755866087302213576008195068783369095224515920189089979230590569954288990907658818126057297835883265524349712790297534105316224927176035477066034068729816377937137867010896100326131359912779258380077480619024542213998309411207785832694789943776651977074209831085990364864053793998126492557870390554350718856157311913202804318768827500634847474161760357099147868462664421341472783362536814630803931342557266653247273063046896917870348815750778868901693209068365322656376831684454834980971368579369647385647849277806136268889132282055408041072348624545960089934144673771358795523876896708616864995334528768318065225641472534420398878860256548573275378225360956098835501340698810141574371066379653857399321752476358069948535372801102581110214888466011040412545099838358147323548594802003930500925690160678923074131415524704481985387303587167717764492811841975644699198100820404470568234110257930821275217969747162773125700017510667207485540994040819980295278336586476047426556347977914052784132038634720073599893856524147688879016926040748795844960904575453104811895936244566031986741550649505564244472811994161531113277277382726576717173561015261928299529819727234506604817753821160461796707093067070809809852003126003419966830664679409364122413257243162057912642408833729398454338406152807948026895029076310213550472591453483198126039892998696264033557511313606888773049879399706992431005229696233898444190580532039780354822882218714666826967815402382396959082406686751175959761675167273106276334162965694200170816436621513295943558878985885583243892833099562681920286499531319261961012349591709864405568804384187908954445992361748313895970649149084741580751589483740176411359253335212982248099749028950727938478114502059016058875458889576899012190648288649314754649537827658139668276609314184639983851673673291431064436000205994376138316200296899614412913296768615414764659922215422699521272340783302956370224175687484646812548038598862715181501428264906710873022116099688528559945328794378168640452702415244756118506042434748877434506172858561818783589926675254554883975560087158180918656911927009977286415242049557649666210315839630079732016774934633950811864374848223490253438585550923384848055140636660860308920031501550532554637768150852022765395034683263608668860254996674531090782482629164850823106290159818880293148199733299756190434256667828671628022289508715430000062471464314541516583732739079017153501584431376843853176904139506463000786270062333631125916918007997535293009447935023047367458544923115287635944584968588924560793707187149748762517896242915305839080258449126261530536195647613152855137322610636706681711090760715240168448226076651775024161870129576715650523794184197438153429517128933798050258333031993891044787750647201518888914295353882618807494890973727097108784109962662699074950831338034615479341826106490393178689736115516841295419271131498269802988441383040891330493950850572761217751475846095411934063040579876862739647941568149015689788932486873326034602175498872078739222660625310888875194448592493768562030660004556374032560634754297809107244622029167129858534047539539648861209336232567781131574723249231781808276380528805422128458665717055394633400336495354864655710634383004720799821872055488491278147971666565641126150927996763362913634849789627427102945465363403798160820385790982799767108418529173228945586132476635451998156731189945386266354087148004131214141466218645659613227451179164238623424881042636184748627360889453251282180792770451824763269752178010068539032910914525401564338052440758233669609626451516020323237482668266950751155310809433933709272135943558942469234360179117769711227103044662490084811233152959785973810867289970771284301674981305263606148667176727468133106202619659834386123190237113758366132030897451463171226785026761516731415407796694843565689161038263801091670554345479262054431252233424055157165530655917707061350978528336089167978703518055859339420010903572353778770682602020589990362681786237910088975578039510240582588584665327260434683360354055273093366779996504550928320345438487293323042807854556887250170915447943010328556373918111022147846423247842364741079065770885964973188181054036753183904632495324699116843403376082423800102195448376942375482023458342127693286970166432357598633307554051776751911287731652982905675868986220498321051667440810724904216020241055787787344388958175239931527002083682089705881629700106398537504317385880359510799131717773741235339043459719668856410781416110660954646202680540393592577788927771509269696893908046232907434151423200390998003862113406713146633238778677377542985271147085558438171254425596448555255326006188183734756545278970891741388809536011894753794225574789894117999831563181253321501986229607575220604508466879565260174555410829962410717791424340599246076282070394347277687980254639046165651419877498722777762153386910926219875764946671397405965594807111930410589922109859454851646636113482660798304657042449123170803397735662399923445133190165469570270799637986639697525335442799728334259223905313441050792366049918876338945713308187725396113412485532977349744554903425975522333118925288416430094895873562797101347638576696997903497549233921108064222230996163763976357585777694294043558751075562772628820427525123369584407641519776531868891540045488102789689035904850994956719033697598031357047061233768900023202714630369504631950000522807461451327034282167030982694442431402757424358850697420954947818852013684716423701170129585059534275341673850769460786971081676196724638838029552333262599930997409718375742987333848169347384370546656611704874734707044404919773660527767807269608919283637791303065827728771799353958469748972933904393334280686711134019515665325038755848243508403189331980771561433654813407213257598560910404664842816854439065394547942213888500291505574862666212859156169660742928225320704779607046855259885887146191251947916491843711091452404491749490512318322038809633568119924245236411049914199375629147670106105308525086261713104843983386103596520420541081928950377861255618642514165410446852172692664390603001693102328325127273294392514517816569984064761732884418633410093025721426902806597171401100523054061126835135632836787603037955267556204154197926369041017656277264656106866052504708622389710972724547755126833929814854277686970573556004995552596533433749718377100881692427279960773175336689149507258547420437294411075709620591641802316836795369840339119412909071735909953011828223226323947091172224479720244315332751143745938861785095814271884366007188034102043884052040774657489085094583106289285011730882651736636962683879868254257959887960842038394873248708177747150117442145201349673705775786125615354277889262973857634269845173773484894006957070251112579550831682248854732903086263390328528184652500683368232715343210999945877753601332557753085864682282052111124632613692454362065263005174709520670966984160184326532793571040183512450987428578273428862526978229331607056564222884592087415425255413230733977996266694934390221227619183196771280835085583728010076104820769968168991819533315299825735254144062752747856182873770439373568958442738577559365963013179254302823145851031320112253708559506844307547994690889293194080415054172539463060156763989421570804323782786537906688271528202248242877134530546177535147354451523605702810789646219411693607111267819408286279958424073982290075857674527884576967791655163021439436726941108436896172689809367801879139659450466121299520045210706733425364691378001377378060200404085935405940303951798807029715575255314810260781476099893793953205285973117510446980685681877788491462806513766852473903781388947718767050906538252643970244682435321954889767282944944161370323617722856105745075617776024949172238546783166491218641021260747259121368227731587734287871826817528867599730251712259134664526353179989265526663841001726002538073357969750588687829623981328491642548072952568830158937793254076386529337907645398317005101146142167865964125340127587696740548093459754736987104387463502846036127766563220014295750566464874377877562537997574221732464371782015010930379683636754595118913624246494288531049697026041592556066163674011739230477413101236616619441812321557905735821328941744347232114576969984801465594870909381164311397398344660658023585704954346590117262782939208800615027230765763912660859726239027056165763170716969803429805553946251456854932104273635107853933996554045436972493127111973665334685129346755652776828024654849502050473383133572402799316286842076554242136841980018366761998911964308739823537264007109290197369843208824106388771686082633190396498369919812004963586661446137789146865314700438442441826218768440882385967413173094040817219333526888718484701228088951440634580203729320629108726117233508713142789869068807813783619939729565782863244548223337124471590355012168413750892129804970818960332840952449952749616917870673025154297952729967910441022302289686730285602614937296489513074717830060967253702208175313780526235707460176537016768392847159083120896429755444967934475185347000184617669726831459098718788597316463175597434239051385021540718027650472968315763432105657930954518914219671219491278307302530854192071191200217842453084110951177063171346823675827302558169502759024496044608389536335945187206642521340954839942620673261448059740814476460880249440954498674768314264384269975445300723111704921827010904947545790875597475980794234924676963640607441082962970017539220823469559849496834148213981558927055796406866833077124473373826616926121650333167965717952430667078963097294185231261471287651575259883562420859499401746638929539582922727594194685839266130722839585848463110950994466581203045351767080811078907250497897967491099524855976750476768406470015236350999129671646570024366143315214373637843188816327930066593334024189527712985629933080401233023917886540068631678424688676936904017750309977395749353545981438417494705446665422930281861972938206344437338943556283985138759115627927246746715374416765674186556861489120792146105561239386435029189981418386994800165762206282988957878286579319791855351732864190321703481448937444366243614279046896169942861091791137444154986283494694873654147866463902950728112201438101904912064119147685939950750447085555507229725364295530596996227471935691723187874057519761584555958434487468774453174644950139928287236794930240270557327491785610462684769837948541013411713685693413475358798893639546747708620992564216815549344635820921749598678919326128693066733029683174134955590550418482740769330908166146165811745392779574102726215108609694018141597359803175085240837891665182853105747791707485681895977001502164324664669741026838153928481009320105481204587677472356767454113651015173914604963542029527717735682332733412362244864881157269209052067804680219775591376433811428235517276004612272969047936249898797597807957005917524429599563175939847262617663110568269002473907516795040254825116822992593174226872767584238407031458524534125102421827866169282672399081054216181744769059611522685127282007630262613264685357392074050092063955044046211140342422625507167641450239718395066131529795576601797537354815613573096746206223987450831561737887897371429653428246088239627603004018484619003200207610540813392552707474068168269445010355311005601243113412187022087624937523687943951034169453003670560744995326111700265143993582541259374329564942437992797615317717232789213837824931441545375729095826309525229101273541878575549103096051008491471815836452261137964734221756497211602118872021857034400897425252296328860840772524114071241128945570652562092605857060143355734784178722531235045528876893379066106791493479610062781579771742040443314524942980814185701584652220175868906472903023518631147522098721768472976303440634450156575134888952278055276225743588353219286339881237851687728501016282558285415581810072541736883771249059870950260531279682788662582313165886429976802914779225430977794608658633033925885162524682556877256688177091679401711610665505102473084742241756135680041378384106416894087281644976523982674262322867839971601013004542306427572039778936293870455260540522323310758249222715882123550137780513521860033556275783745253291029719679993170923785618685839460554794632911996090434263947796838396880166031278544634833381825016449251805082348721533943104691712389338813725187613164905481803691523737588355167118515324313166939222006125202666210988875529192957012091166647417863238692287993247526124181556600348797874887027052279305867422827176287580583238156625896016500889471330185036825502717674187564833359998075513980616514319669335669448784157173690651050960230854579230469794860777339107417376796560786867511764770455684061620947554251850554194615147849050347711404687885331189999975302389351111104845600002796945972896434211246100037276080618065367134908421934939281912891897684597653054213059310761067413167545454776988154228710115453894561168107443156190095025776863643218383869655076843194907127350983974428322904251151677922124855640330145848431216027713046949666526039699557675738731106228460766275098081741346211872476228842319353003259349911170048652764619453218703565522245699577026281887174883037305074773467227246101091403935745131796986438667308599649106287513282843966257265243879828218830039738205075002145433750917041307115658551573196928109104791945313707084532769841404975084778145983783099797531208775656452961268561770511307696264177135978658719164746033596803408145737018701425391536800975955392440014829078066872065516788756649575397563330182369844931786985839976422895963134595497438736246743048613285008344601446549845928129701740606892099511182624241251143164440491810412555465095751298904917223552646608302814253437700555401611694444018148470048066982548536544984936378363534231094688878247261232633820382972962311267955039254516465355068756143306732640710145667644939479365473183102095297410358811049240199283156355966363351628841145416222511299614702314916191609303778814823188904935961118917017469520475481550731184020035320784537129514304715154985535784076757556929929019578763065232246071985545324355109853017655527918574357373817985104704328780835468412852320282139024225054039209350871043165385720230393528958977396547512023065332426233661265663417028328107948895544147118497784562888290369542355485030086840421018136095923048227448175931188570837622118299391619267958744199406393708794472685293012919508789023411053174270804467426217538524891860475462688636974982899814600845441638939158447218812166269465667405003454576876611294847676019586208781042894249985087087473572741472353730457769932838269564009831732830276419065500930030926697496183373410017004490601173574279354380458978967653646643169599582855638657650126203189157426330235398366911410036939002935412393295292049199791220469245332438956209812066587743214566245589381081357207418999786246129185606269673195147837056817226057783546551577404332636711796840767738317107580482178005340143374874923544006247458935601248069311127010270228138148865610407508387302077450877174900964848874945455770633356315325717953930282551269505650335322692138883271719259368273349946201435680200625034218046829486864056567774711825222961488973927974471529948415750696376673058646208829465642874644518045832428369726280374269047332953881642967678056425107417774620209722091967978147455812289554380547278857067150567230416295712675964374906503509697067895941142570081408465516046008424175759765798941241410183383889358174525007262980856857463771341391013130790535323983059411068603782765780510009937616036294844818681513574946406267196712749205613725905708178423131607836167092428870627746382339759898983245408805295359012221608745895340094402912118387955473067179010650395696725308004905663720719297945037026454859744008840871301634873882487686706181767062509650921210585252646087972451257861400112893911926639281872516530174978446544997162013300647032912811418355659342357310247402886142618936016025670760875428421029451996962453525090506516954330112998460557057538478956789484622572638105027519146799419734826967263761406295964091138444468167033876025894444751329600493339071028595212947447892469770583703985527141068472103018716687379386524797936137953657143841120554334217192454855145764633388475642211333007961853912739868230848162625879827633651272554277829407928254460332326618867111490158236379395379931663674651290092906352943926806760904960579054520076334580082547193523220528215089488431414622263141273701795218975584970952918730523494425866195123450366226600211129991290789415225347382443247860461911050740069475940274914215131560727183354580442463028242014499854138352783163538082373027251661055484858024860045270889450528622108488782531243757530528804789161099645396226950253745587309279378372171242063254202405026143774200709029658371558498346641519735278695663427471950328138780406287788779762789081809711630762946004093424271646353924027674587804054436432704332717976848007466798260350504474018474212265186569253782567969288962419381345604727285791507595064407486110150774656076782682704593289567498578296029893815492696565981548440710812026184838890212726530203330186501461016647992925908954321452502324696703896060315372202201383107639808908679271766389228023212488434837613466033946458907455141341316561002686762773005573429106838779987624854651907688910443838909739683403937533100292861594927102531277115494212607422878372717754507616070772327899107808876041202289764151084124594927335793239931074083426598511613696241149278605099738629802272972501419940801736354562626157534401887454846659601098231515796363781278613625543882742510991069903001556358537305193727052980724377205317037746896705385983264636758850877356204039575078322287180678221385145689555291689789243811172002967330713881243045293443740803206648351448405822678290193161207004819687876323038397189215353291688558866076630561149257334969849317415144071012055334641462370132507768205459609433827829706981438530802583206162202142718997849058511723015178483911058395828938773321052895771656723606483948989121180867281185556987608433181305053382596903205938467633282757282408398891468592324966199376711365717076111425423379611768040472581822240572934650816001286788337863923456111848592469163838219847686076725708221369585303686989524063820664786705979709152361490264409422302044885439848378470617355159817995264228183477936183136172077582497765846677503898367450228177523282680379843317894949027008711899069334498961020449262478208282001680728808451166454175083971398762165077631172013272430149235104661269362064314541613689100360450752306321923542146249138545345842945126708962457666228032530526959743927499357479703539193439363690998265616282774006578188922601237485740253333632777933099921590584846085411896826432141821662698553369751947345892145024868910235182881172296169866970769409218996814061336336813525703585657883682251766998648142168367688749184278262841030733591168374499227640014760118132406353712481120824532729042765422992691394722504479976759713011779810492837188827903640701242635480919226318815604561855945344220987039887582550940399676927088784235275223362855861800290048503780911861579134455039348690873872804165431260308238415232959296495112458600550557603427389818083758848267733564449510545491842510564194576860906937640224909812376401309183090616024276502714261369316349070908795810689336118681226534369217450922883656385398410678333344147937168542933876086291304817135431889628743089027231345432374415575153887023284792448627385464885141920353955725133168906887434224037301899419657095684629932801121924903346456018481350577567453241588897892838338361170393262786008728168351234897788096704996948812089071312139209413111778268500839639906562683389191479911634414164691370968494576674728067595660135891349952857525709612631166201692944357261995259896178894892357578284218183621733248244442602613726836751485993534592050904706106931393489301268328642033258592974179827313253650878180773637174940720554045591920674807063656726031493435843033149115245811441636967875256477111893579209326397111460685462497682358618551195640386697436712963494849771986141687365652480204442008636961186815537860450258229856361035227390869985693546615118458578302912095271623140391588292544669340937086318696246479187588505641600810297566454174594292864553454565782738816865933748220306084254360946465614481909620645113000970776608198026779599390385024583946003683067854637846960816259465131324252656836673549999762373263848122106773423241831116614789136795640858944592751790384296048966524096304542466360103694065561963650869739878016529411369043016087913011258616886006987210166020982918304336151887722725639894643723254364332665125498118121015021052922684367213272568942445906474459118916377983102766870184414354902423371453274199997033126397046035716287295479298618010974010514016568650218912175142974831570735957255859226505557146560468049353415293233689106240437260811615438706511695987046548625788627174950140100111321678838317395116375348322497495372983904667283573418067394211371250834386221359812128459932781176960282348930884899515017029048224712771630705513734339771291556359819610315408214340005811835385049277793044767505720035210920849277948845862657852895850065611078148589362828446654086082798119923364250311569266107140790819090521994641498941385504512056764120244107241608542625540584721446503873190326902122802531395113667217125993855904911091308341025026024972812346503405512891772068406652655847719504008212909568374329826565719198273166421383705516518329139600295558459882037570026778181731927557576758399843327340874194955666604694614371635483304459865314146867732592592608461654453401472648760532301509622254357048607728452665543673309492754809316652917169279444531083233382558524851784002657553195493913070470519103539302919296198615457846955090548064301991089747656494159704920272761465834076064744502587242124921291934199017957552166651925088672922717217117696243545548379410669040078042000422300968730371065892638440305979417634884083577324204598202387432211812947315113950812136061122744975786944953161768895446407521868236233786391016637854719456955800255527612287783583091360751798007178338654109643425886506227885371471610330632009452393425109869052980868743109478312840933728179737812637183540830911134757811703564122467860212106622975460028244074157560486720487016584277716171033393888958843884562179570345817980758771880325194659504506981618583277616845684965517362842473870658473152558515522452825104648383178784748032923119163849335815293098914818941305890128703562551684606146060995567445149371198028299755815242350810489174250506976263547416111519960101326763645638026170197205169959953218488987663531061686472344718511357777357927156952716282090960102741070644322267585116124079323822334619468938722178352868731127514740706487723734679249308048745755881658222378621924701048505760529084465542466174303493973680592526479468779988323668579887075863716546042761847305869831514643920630877823107828540804250027363371314365507692161592415163678371368553840677170663284441199927549388623038097828361137374117779217711735938029694901542426356054663646217448560593968824617747262716241899723511083078171629664634577363750513336179577293074242243714935191825965759437241180202239341287306188727133606285454522239729578404879849126929124762414420699015868607122325623942746689518088883860594197467433809404010802815715578687333338005036630581009907179351378719497313740493508756250203763891466277086591879465331175335147473633038500357886990683177935397007477609024443296962832166247873888773896640930772943048899839695090758454656218877860852028196880397907160588699475666279133624050925783798319160797474274236045874681422729240121127298947428085853864004645817738453801448243786069291125082528500635539593084695082947058280931373877234145592567203166128744529073376982496855740503026403873793242105644092785141270958304688098289270404143488380673082133059891129792791454694860434756962080639023097165614714068162129171948203220962288952927149590246076270870809840377213211472885180323909276231717555939485893426037754395741385204851331562119400988814428119864092511315009600260195849338357933024496903018417827527071332155474511941781817181593848118584811683537145211614466730804430777850484748755300994403200090005889651150746747139342844222609512420163151232862553521445423144352481651464609991147878987451918257602682887679940548996386038154985459110999462429071549887405723358595293038307632963369185451006758199594911960674109674674384119965872236557909608043814433530230644160350544875304964714179655803396004027441284907381036697870038685089535831626573903780364182829166808851000191377447814206931940533916279728440987690591874726182118127800310226459846170877630016834075263503849756822391264846762683429351778401933354919176416443264540848411067452683235495069483153144221770934485776146826973988140727096497620895822925157145847919681801699186035162432796509533342005340360782487361103102886256398774825955279465761044213485812383586917190465528195105889376166575522830754113500150376645773106038082166524309518109942460820464128338549817534314473675580682664887098915306169910990380269908180124031721511144741657170716843493911425585493319283952667801590082645320724108954095579485808728110011453415002501423212954308443761082835596023804585899908907734306626107507017817487406419003567866159132060275669996086190556540646185574047890696427582396549802509382135676376637132353240927205260169667934727438486351299747799179245103220331109391309286228636032834503684067574349598136784281389500071945383686722011385745595067252935796467700409713072257044601558006745676082296493066080318628730164911031015835218147441707239106971861407047195938854648969414838005982218207770141239214889152824706166115551272307564266394616768721589586325258928435310924828423278900016063439414039934109609977604279816992576892491648328550903151212474505831970370438297284486518435384692004410141857562564852709845571717729684575043330390633168110067467990669407922935663424104923905266274229558417169413358052629517626782357173526587413220851456953297621732090143752814544201579696967182773369981434741861390556940362967376043726845759611430376207140929952351454396493679089488775699027222939418803205648616147950126474767736524785137754960825332199955985072547395024948008496638150818547899827351811136387991208919352113417507350502419897578692014893747660244562472399144479184078646806224491250555782948548615255552646234887823727918840200623873804354521557528695837260749061848485512369008078324554000680379250435484522538280885107702870173846038343584511027997656282739683992061783075135669867297876676946981486242271105828420315040231936702541880347371592906214128550654493186647307893540983382274658659150124718954004630408401702080226991827531071464218114320729473443355956087634827249417863295958543055766315132527919156433511744868196665690615946109496403480345516442107167458781723123124745242312628287560032731382850737042536598411801990651987062229107702490094496581711673111398182774681244601489280968244775247918124912831556424132495354257886330755390888504291370799455764542090969547260930350605557543469851299337400446882301103774811133108134080273632638540625597026140943806499886261907704042309902300476124587175455389378676685621382894793970038347118259042272784652129781314292745703872054118288661511709583972761112102001604636807426251061676364630349904982973248055608128244426231635446400402468786824213791662729480567725571703920955556275885800261755582082704804160020729153989519362974974072847738076181410537726785088739848605729732306900258033884415740083422715454496117841362800330759427158297123778636746991683163177807607990710468220280735361903681128626324434876876818785056558309378106656414250890414803270125552290796026116972364644527085096879557920112161089881998338572766521898999154231868750795263070139641594483578759434521202781159271670186089346575171030131542881279842675361742942184023870410399030705194090211712297556638366264230327232569558201608782748848440632265222980512414458060652860248797936491710644991434847425820946574143621408010068209915103569310155109778548807612314065879653953038248299395195713083034832593286255235546776902170569587607656818567864745063347076184188764449560638673954540614769400791753842120585744921408504689915383696835324885476528785457210545534582327552794062260216176420395989574740384725595511029130701261985308821114431108447304445825886884020458122020077496650681033023057474690079375359962732677816627984732426589554807550325020828555190432271633074872142096228116444771049404079221809165241932929579666195771885528891881752798640993676856855421297025818474641146008405279832745269795070133218211815914117620397026446994739783272896003037130745696611948870749890555044768610053342783467714813077686740018062034895202827746857962362755859672588661162003114324670587108146856650125785808579841036850322834880709330410923189190382611418253210233609070340942176224313225370861518645754553073463577855520927262165109908089734563976261071106146793014264994314098965195101787607656860862247915876628896292972597366362561952692990784461892516475564034881220846221789247907832326561805328520855102239484058978769389772458753963779859671264582342542428053648538702579768147322298669704846673966068886536012901659090828500332683027833121618600474131496387827295737648837251862915268541097011968598020428202586468651569488714952871572853655720932008795052279834787648916785352606615284343118772152332123578853502831862104223066996586487594419133530019013433390601906662760468503274046241058566490066884062925700222280400899155419731970887930109166962104923256341370870186801961172721419920673516343608883037606000000059408889106980100115560160104973365270328376198966727725843512680250730391215470132104826450641072480321894551203278039123573752114508498013323715788823080829209159675548232057355417824078023770484032228168562686115568702368997733035705652085427462624300531803478934600867213131902154272358484361426516499900549771236021718817491532150899852787732017618259885525765777837813141479178531357770188096494327798057830321373198058616207654543965623605880564472623462943121692399207197051304052072324342651744315095130596884923201118504605534604219100241482271300670482277907726654275971527883500876365320094813410226293701943591472336570616523205103464085526417786237731707023502553102321718697419046569487636661975483379305371578653568430158419092044641896541020705933397994402494238162002557694627226255626550754011662866452871766550585786398665688504557818104601506902890931881815148516980346099016140348304047643096931501755999665394869747520773791571488779386761319066868979310429338222605474267622438655525093809378703030675403977673280570155817515377770346043260428613022383485953617025729406634430834544187082921597015438007784943463497360930396228116660920516829192795009412021279940021365467841044503053545160488251224379912283442146134252280069780003184957260806297273286877290198082406631113405160255975454191251562020185962212591912627939486241647727193446859963543217451924501011288226032821725179788750752431279900443472832864263882338790962099631940814411564468917470432100341545541914559295825697291084940742275250565714251361521971899548802024034864410109556275660633284675653430492682371875311853901616353760870441320916008538869524780790706157356018927049012980544024223483320794261161678106299761526089498487735776485375577296198277335319675783077165570440179018517360966221024769333977361699626504791175084801680252413379715563443247589229876962965384755220269273589098510690050257162815487816769293897764229410875527953496779376604229045201757385467336153077969233801720893230994309479388316801960510709324039620860839276167843519518300019776497277629983627345003656010630899646576709980080139727199876038968751925967068593363824160907328492027541156693824478975351551494969949778379218076244007520285430546452251590571524922351380737914085091114305881617449189715852109577657070526792758713406307506255967199175132450279161399904686446205138875225398497320227583324227371285984175062811075636873333874691634491016749172927194999281056755042449724185121461171555700975543570361862025886739334041620664251218073720503949375547542521430060340147207294185316222956123705535656250523433943820551366985057994619315354830411027973005299096108137528378138005398378590533426714459469065690625893938700465667681610716058641895834544990041687281293849096619238710958818591597842391120509743034340119315993147885217402428801357439108275518917455097487427836271209064868033338604005703770109533873669125582939048260882164524349463858143464955570399015428332961017928174960970418785204720183021644550347209129271784115582609809373613133577163607966459413934485135409439696033813564740727541499899645184071880373850321827036201057307903461733071404507089376603262707670885155580276740757356593007645058190373843922779878237228518063534636127550999406532901475715157375260971701150915145677149135608125327148106352126032127066035609773686619250414432649514553730549532077977539347093249915154156294828103462945942265828662901675299909156551070674874566689879365621215942490370700209764955348879003340801294440989693633686605116984291404178563443324572411714300058318032815005253063247259367307808065840947258740541135528150734627088468353996615288665281167574702941892660847949744514227823379121328409884650967381176326618703458860539257621141429599110283934227236449619022527720611117750679810248590820524349591021889299743342751600930896251038513559939776647608166008758674609991952813381291335231765114667509545827004762257964959197454207330926069584054626779959540123754048077512345916347061555753856689382266273327369995054908113105182717054157017588556552419918244822373725479592257148314994899080943077580204221781606199364330090152658640654735902404869897444121628196660157165897369909800020531742904323227359046817498181239234812894907588906887914640008476600685780780428771276996673362090089289644468984225925298962423063082182091278277122990609247622613694255467630460618592082658629769118957162394852256794178688048584592761868377260968124095488555138820241546023236473349760646345404936118636764104384368140658899097229811660356251457936602800686037814261656029584281897570991623666840436147701435853516534558591972407118007503388420610253789333956967923917948417755834779576603050438264777913481893476929967751035350215110549950509906970509800809476316890923148446722872631375983003546808805862720248305403786596230273259486661495149750183132254555867123976092959603854883850823663774852662263318851193657321071791130886358069222985863996145874825065568849679303457166626397504329708186638416180440672971033565338091458640868074819359709789143395668699462793383617583522843140328381240068083573512460914374033376417672077010831356892515929066481109798359344051783680997683795258676588253239874739425909187307235417711625268185675717521052166801682099704758925697539491424439979779145217440496202131778115403128069015270754200131269145999877077087898386953053807077029064833787477981739230814698782776344764427430760703031041785724043386903669385685206496923599392953580076904399535686241878404350685021278898001101898262790418317664260697317120899393355383781979966153667920220601949506657062604830957560318253212264678272970404280030764883480314519226838405117151622557189754639440772200430550849952583178105898269582243230040431065422196944888981431940950404938262672480834262796604897518808801327116020285369661139982599974272534216283890232044826006746800401474163826687704721917528383271161521946747349937117655760404132983586477312183269129122832485221403249596346428077598145200435747470017166448260091452159951871277884601231117082180006379778053334808837948091321022949608988677305691695590533128745943491558580082778461861899226609176024037301128883587339478713498429112777572238085948526705021089421719002661095161067097278224016018620644334001712864104737721095120538603173528626512831087084065734689645860628844690308597962820091050444926143659743263112731781355911537347049012146645195722653051349835792362086174199874042772720344557841492297924736342612551352608161424868500159230930694360920209322733447388405177725702190363231640905981588787729443645590497960083981722510181192138450630444059328505180327096255951428368692726376940237785094930538115816550595153416942124487080924204073091437658522670694378605250063067553938069708214468454565334088270354889468347227840862370043534760997938103841745609026011562415941149041854736048046318411692913674185556189085648912234754648067351548967085047699943910886400571302094077144846631523945925749621960774346638604529997405816820870310468114155233965402150210251689064765407997601524167360321972447908969327099756502652421061636834677236922674073514608437758238163992417969823686568978274147813949957838227653860808772482501912483726538200838562437541119571499131584675069300198130399338529203062995539175300802089523913034301076784289818233354927382777979346286645427693377229510088123488573858174651536823446061415383354202862191854860684581099556173154327193406971917647590796176712287364943071822032425071945756615132171331886015905408184570656488994780538269550666595842274840125469983893750838805037920596795576385749460537495671847312762004973388834562261403486290248124409813821597136593369756105199629055383280982920060333221083421388586336482895775989658170178641789911760900184791024739402516276726356809436753879712663627174434208657819592382413410974824242543662263656409307409089683852136891359163592652231643034239448829585578454643703379396020565891259559467636911877170415682464105150772944412771281248291325867752469759433654758711249017090651966598986050989736428849727096403378844155137588093903340027698035234142482360828931033039865936482064333321356771687761263518543511302567619600122675649861633966062544038704104751544557006642517352011518073996500925143036034530925292212864953489055170005680117598770266926190610275618400868851866521422684933976232336607790639676178211218374241205981745556656060138171397758336781280851919500607734393215303934422332604530731891413249601334985100118659536291657823376868153798932565153842921002283712660531379682284799444320341682216719183934286099113707954179584807906278891852991187909135943032462296542215303112267025319446248744236054095572848333018394939358237839909291941933411281584043372336565173486368311909508501782578672551984520528601783412631384545617247544829157287797574437308593994742011103299882654617268469725637654963591654855126983008555764725270036079998654833966863428642545688565917451363216104438153849901278998516604657008296058192989191250293357897156036743258405970054104460254809359697638697917075604806115909736936751102022804341116249720070992776190213881745495785759699771553114508114743371597818298772097032997328035036080383490512133162835777391905108442667952528455173098690379342878115061862627347347584406697048373997582949642890390322626582440093733216330186824069862644296234587778822345587324302738506231820083755712714598098436394461457004300659120149940979527690465062728249597154350560357203729688120515468130738448364148036615444188345696761572090626611850136192975657657593081032876047777538118854067716610054113436546757839023191738954260551940909651102988835387746398297898555308095928222880324726905659645939695680618871491114583056635797266981792245845678244880668393943489582313500544727494328904194927193196390402104653323746537265458358590663112012382756772886764499881990614011619599949828664678209924815461611229138661274191961218100129470224946560229742578772244821816641631607858184648743517839864696123702158900058627588362555338804798054929078305464174109153365317354754240463801442174432057039396353586709362655325476475049099100271400234924087294661206487251399056340491505785919015396590064799171348911670077629810991155059341345677448268104193880780849917930264739809149064740358878297831611221640165543316197376633955331870002293662321693981167463103269556417106351889992332799451106505438690911712688746669518172376185740425876028707099142319398479413052501008901393279232399979378991075330295028365835733714042781277860275563691773892132359203228516451211019486547340362901974751294669411133507124940102809254691310716331791711491909261738238042558965203521978127417798272659814769002936865709007232451049124273041973508855624781601087729074787841924578514612378303974323049897838006636141571563858036929199254197081588482874085321114462674088918193281232349460050246515073403390031124165908700742173826163861314585200708123993294691951029994713011504117323551175728623070665103590658219463123219327722630919251048761956327603099715582814774994084574936847519052116427926788894793615389003351457297440834268966663939051449565924812510901763576024166129750864228628840526855902655707617730768473567745033492106744221667382534738403344409751401948766463522611340137332444755266793909492572110720209285387749224731478728687199796643500019768753959245179975210374870510017127487755586589467713282359282452532137186103013564524011644107803789703075921489253244040966905933149317148083082893720935073591891729054484155242824943778643232706728337050125395316025708397920618656388777326696000602739405534544747129045739959467091637236088657611557644438950269283256362375907071435432788934004926201729556349507767181636440366812237592936618320993646946407067330757007867013782521678239960193182348509715534373015939414472761996486216819058892633461543190131904713199887451934105238648151411108229351664096785010860729886057559581883587335454371860079489348760502396425846850910923708685867565554547765618104052935057770865812292466471495913988855218812146751165352438974684535378508768991951463039045547325507607925817150198866288298347103974870065982109343996253385474586510085434789978283589444804130856721557879956394536074640753876146614242238524956152278727750312551087380254766724153450274721435806193004547390981670505282743565664308056820397669099280005656357517770525853311942452032641128927110476236825902779457570921728989907522123598156378766080884814475450201592491526002900416310814105477770260460341541086877474671736378547842030762067660826341058443153522444567835937712624707608448309130273050433447141851420183481191332777493397783002394407161316295980743179942746457102685180358273574844566068777985546162711303481342232878978207652459732635461329152967814528886167774919393100530992103143203005174622527452149650222339775080023163778881183722179804580523470327524955894133101215022832588509866573604582748857703805678798523075852121731183237074761663257101756680633107956944258751494029802082061299158109772209130675546502786566683236331793218963590922788591928947529037419076495786438635516381389474629916482780417831128751989805134557514008446303497403757176424617131697966226946843611748824670322698099064340663129240506355734080770173583053257589183427700764289518468888096161531870618117568200204268440498391241688929621017534874299939502056141672819439164692905170089543797255683219783093591460628272255842037678561521506587970283455029719534006311916953283092600796861089556166727832150605803168559091308595397965039061707402234518451629949092975462744118506905525284372288418114916276984828741197684803320881179760678257196420991809181984845917709416726665308165384175505150520512020373926642547546812459358967484615974930898695219288411888598961699053783357950210136688876041471155577600296784152213111429200179573210265437720598086159791983994319174160228478828388013927644034563200207620595907329773661754329973420252072471710186505380453503117358571547232426506546622132252205073846380089011046317530178012773002410922784655936831815076203996653400986122859737044594040749985384405866006060483697545816808881379102434551071466151511163485144665807959400331960564435734445791113058966699331181613226460092566206242659338782556606774145027585081783407128939017642712966240453529221639252230458136839634318840603045810414916249788780651766695361468480528455014568622779255583380231182501038790058283031656753557073200536447792504893044878160643401655750633104829955822583075484557669313104050974859024198374639458472125642945759472681228054381136543036398472903253365684655846222622408160337935271949714851442985333832593267460409285205765000403474223532329981770080827427404319216074420105473274420364624351651207756264260246806348369184726463847437813853521596504257897438974310930459735473776375779009142486253815468846088122017019198111184467432504683310210550825332887682854028016975911535215873645299774865613170834184580480655920688744539901337289861229936745808657871704156217510595509800983328709486672259629660513781220743705063843117934915747230604501747211789177047156724882816693362942912187209848056777971106154636229316293860776082311448005244204448951643694546661738611792325097798415262319075582285465403855911709419144615926940331496754439148570232960711899057305288222576748130645834804591604938664179759574473306006179956168629332600420664689133622009281859090290372004571477780083474822357848749938170822521142767070328440477691625454295474330820630852810259157370875789013254231279893040951105347120717425249470002939855397068887043255325129309873464989988893790046030902193942634155240459050344921152195865825201508371942376162121018054753038175492784841429729857607279184302629656479010367533847804235455923739821230288739393229280385512103892382302800435486347487330585337453282666564639049539778202730952380115112136867740258887865099368193574055921606783743399034019982033918492054389097513548156459618357441376904008139838672268312575315565886262340379390880773704402001948792657446221214378090942357225615184628783123999068341035634356845547154523414070511329247571242540527204297970541778547018431154530983492482170236936454421737776012689315182925458127991486846381196548212830880744700022601388336311851059459577653096702535568908037867091992794028744114390369940565391063264517956544255634352726868175565008503870020569820608335876120761649293124343882153061552551102626120053570447891245382656942566598101331618058824487566339047705479711808108234550437718862594218283693561100245731401783341685861929935741384873424194149829456698828722830303973951161591308508606106533394085824305203508510040845025496142676612433229478548482144738916307051239265429333804241663000814002787380031159404257436955133267239353344481383789049661036338650846199842408086811752115833766369787620541705069047568296805380884019983610269365324180651933785894291830476015205782008304824759193949415464777548060456678750750948781022992011624905801333117014437618773351893556433335668434530948920679281949233304935620944315478989275527050397996217112492198650902795368645520388953639852209164103974965861181595930830193627122648775817736772250574325947704263862548559667209502239953050066576764447817821565052217168515654578738417028985100639638923228867341643501355031999094278162648422822088051205282782227248814314950035814094142680341595955554772160016145993244752572598905080880894746284441013143959915619819294100586952759907707242539567557016110130890939764937694898849495863086190520991183863610652173795865652844943355080723787318548110297462401923364352588355327659271712967315425865852367802393321163784321148836016841255554221356672211917709685949510316006134405429417303225008232200219141486187092368034775795185695019556582317249309432492616683603174654474236644912213043085904137141560128985098253903783638423819608973088837142186850920237314580116092790090428639206577658751034594512899649820325135407517914624095825719152010228236272228247829204411420237312367879062157741389786474347633147022301195029812349892460521276798195628437574052455755195211259986701347441566608709716893367965647125688397817088229413242303465005716720866283607745779162256002124361108984768153189786195322658493598243206587009987034121510349243530724919746035399552823961823243874176358110786079394291479560813440524706633784289728743516182198962620534726793363533578934762352800430262011297880443146509908739820984679041595061235728498823573926619734594446757588485491115288016736807508411085779272496581398027107176131050321027245966029154259702356709872140674685647919563191919430800496053476224761085267367949546300480015817905540896074929989265733965655512852449231905687770862318658238697342676397474513717592804846612995703890043583197754592276938836445191587057977726332727905814684831265348029301095524672618048897833893499384783371007134696703966310874722115833362970861191921698974464446039083856988987287026718716300175071322340048808333245067265416249728534130005645473660921494308790725380237452960371910771959843625915009261494763079374220057697255268470500669058484289026142431140584405881176933911808232770664845680932691257636110963967541272330430163788783397737283073449738276602900649742199600706941397928085156274544244985487162005106644115033946418130359795437470638670547348120172898809443923591938017797538571159653551837876879923493643225207600397366666114782056248388470730136934221393285070022528289272037928940099478939353123745284619616104489278161825795394496091536405161964128952364841908807049887998306669036669980219038354292783982254587404797605754561812606656750199535048574570356597854060391288461374488420327947210524263355064811832986755100636955790489203552069919457590563626263158496491348071686777049295692400426636309987756996867776941952501599856862213559119608186589925973182620659466601314199753868460917708965922808739643590688755907459588142774843795994810334488738979146380819092340254778583449081167815620885176294520072135072148383314209858244697048256859814905777976645624519742657898691193640119898672449647765275358750635696492614524650769966311768928857921646973924480363462600392504780194095471697419654679306340648705329884922886570526022106091842172623512040751389341228303578253454657860139105587587135734528729555155953787193401967692172348001661931327359866069859540397369650515957323019335080954813273614407867739758272498957792646304702099743074054100994577633931270470174146965110007229400992774116395190295644054928231150869140552249437583238526531942487502268235556967417594539046701464068657032834524543372370336461747626781580752750231466192931761519975463659435348452084560700946727037573006615244873472064231126277738238088966951295685081209283243257669898660811301583134055653612877009485298219913760534325941246300825923458050377137805451070932045285743851639029469536489657695022344330950825704046828153563999367849548779344244848338834784147355082518623855616615961714882428650033469546646954531762168417886083753012523854370098262716644655324598963638806572706992589164472556039318991347957412571654404948230177193615927450021494134851171394522631604390162598380305018034995630519117188982001216609346520799631189012828019087927220242651503504458088589600974444056420363018995886356758318127043059648638395746960027928741811900344212795302139510624223675192178398320909602460468576121022522173349376402196787863658435309681376436134173399854223349575676055982993686361134322816513499881273433133373755589803958296575277596157663335732336119166277201097385834023563074137632780168459575396710569737578113113593376559479306181082613498154379688071518714361401497688771847721671677102326710547568493612622975982270587677135467987899748069122083978869543818806709424275496187583026971169452819639443931643907356572454390611250230755477748361891083335510086676048771185377794624091448466149571159612398972553702990165116957526134229661798793840940004079651356801580600120755893771976158694241009929753929814993402209191610916317929543228397290878971073729435079700226662781906773440053386270645269442852061255514373055912495607078040648976227577919694832330590473416172549973963838955265681616779601026755878226315857955720853084338729719459458932018913268010516002551065376303548074613410913349767329191813928086931708518920001323910907045098029721241380493533912644777002540214356381683589042262591470115250742427254611113901746364004812219294583415066589314548388030030949665801610596255331613693014171112896044783345049800352141827869613005865453405067678237339437301123174536848624662895465506388000862614744805228393095694917756208341381366790847346660866083864434373038983783615910135146851839897685749201119537188458299640847115493957450291029424760043552812815160691269575546231341998483897658380960933819730574192789306589687620706301032036290121822870703327119654530847905651667889656165212059415982277255602641526306078383839884485493860365123914452947519147992496958336173908245199487108645188131653765272424113162587679124587158154479061704662016221193924809311775302103914700583776433977947064346725851229640461619317233766566947815381899930683735489502480029287237249109158086150455639416081518200752742681149357166418635441119024811612738399649326113006783463872119824974062808062024247417238813192868245812655773421969957802324049413972144928746280521840238932533491219599944492122930463243759959855546341404453946175714239164454608131550969546865575756695229404424629438736142368103807765603514952725095707883450047282216261385033691949947766139934045868816285186076962771360331035715429603409244767349369952818485635992875999266839933973068103105588222945412405296144784607642623596064386412624919786701252362697449892753231724446272367426879003783165119328274544238930900971100915350984990256192400462297863228383091335310203176050140358342123017845512695518068596335145961768445088647265695970340546310900530837341806166908854052182531683325918550169404621123316965285869081009531999686586362492300179795686092474530334602940761785239550788763151049989668444994083424656557804362690946781254726833568667190918732936501437833063123919941604538463887365190449183653239309185766081298986760207278507928002073869589321401059811399956047089439657006484934420353391422204997745086192401940487383276921524414390526112994104301758740134097255362846288885996208486588707782561855754443043262819339646977254937605190519760786144302662267307064509444752177953729571190710237456418274851464867136421893747471188060683144523327902744174397084347202908189311128174542453138341642662759109867850813628033822676456265968983031680620695076774469647720153235285662099359604090885884439712621518727046922963284607482659383675831780726326622118319955157960141145305008034127667879527326578282618744477261852312942045285111040885933748653663339049054240210718068216360657391361143147170842186070221332563446125770492704286537696946615452419663796836654533197861620721428335364332193371602650680205786505007935655760964461105950048147935963743092998859643357755026759754897764552356628416523371640017515915584878089237371438610038886538104757442455412914551096535761610048621072488563213000101343809207782925598563262704760867036368524434865737416311225060071665122962425984209711495507981195029588416177335941888934337063145531060744093428322312903025532172296374966415360971618532507187603086424756992440539262724376863728919613718146691725914514970883262839755772241321156698497932215414479094320447183134764422733708553636406415357463224747703097384164711223189355062475675421168046924481578874059465116882449239590893515415544018025805251510452145885856395703179179918734793738754017075401137475223741475628123956523472197986260025027958172157968344359694075918057179290904627272170916050498688536629697683420894949230488974792793922510055540207793111811357559522594979180671513471444598351572919517256075700651705826450987920003635530127012396998082037590492337918135975453017539358791521628533768699108788843970766025041597779344669566759354971707128018066399507205244856977275516758867992945206929166111949630346310975412530512477474673458085656665168303304297577809359034827323606002156821621487023281414788444368419018900714750318754318710105372736338679635705535079794310341660378459303488822018617899871128601904600603510089603064498116516978474359166408349905035280493780071314763782991803747560913267719975812601472425106272055170378399256115394526993398592727432401167461553990427062334065721059059537989600935562323059754169589737560820241567492583264610345728191919612203657371382249390668777343430142502208675049981805409420540137149562666929979559243653205287209438149866221682494785913587883023627873667304799261225633595770676395414827816657122073555967691363336911297039032315352798569477800811920408609525570318901817181226161586889232731849129486089469648048639071432734825826435118012469991075721327374094843943939792485542099494223744112654587846187794646628309677469108778338644497919679588530395834238782098571457396855340663843893458941728506206758223182816686025273774793880543320569466562434802813364546945871434932902142132537629292729318287868241767964601534779183099155311004666945265305480031915124207171161581432760848115781728904551221837194538840197205764826128397497988380090582758683968395496306860475513195020489869532295840880788537393717594535454709787954091643836977136525039117849249854400824857865844831431821736755029078227985699568995123000167802683753612028112839499583134169314668869518131014324088029473101221147824871195745745137842673924745023741830049969308998139122487271633945011426618258754631620809457404477808462311837505173000710902680267075002498423839882533321088552268865222111742771002645552660720995428045961655730609404603201830460332764326918582543248643554634584906494291207065876879906839314168906531428020381894701866769710126430955335660359523026696966521952133998138959951232084893796381241636971021168044704354184261112897043797392120130107367917489320277071655737024614189905761828651719659148411970242795861645374592829336071290888012380100958564324352171564622078156130661182746732281597942314013564336960530779293911267699451805708199404764206947239142062963984515301604288014897505672594936317024043497048230492120031914917214322049687647568212540204237283723031879977404909965256477356220899146566039565256725679759106961320675095009982516310846648085322647969610268619961081303861543693871702081810848922453144939215973880934448771684325123636923335883316002669211790777826767729170900632761383846201944501478795222330037757597536339423798345545989807958981121037066226359667869129274850026608260906125998048163734407022758224804897223593596880941903777135782758421314779149315034286510152091328826720733875338795681644987201364015318933200682693815128230483327151563122368702519996675215200393468193471476682623152493760828161457859166180730442644506165456505691910477559155985311220167631266551080493824623852534406222359368039505357725773270705228073106016929651349362201252603153049448957615072611079757591240789241280906561074702340387012909217747895508511248792848509183600145154102136561737118772048972582130225980636292215830341956590574787331847598320775755955600016119448742340429644162330473683907190658977497706872658807118187947879727845329735271777935677476960309923554721357475308881950416740415502078145690662228568342376192386627153257309160685338194524801907966408756426695624030291661646001862884074421707806625404878367148911069369301253471303724507166598594676248607411752891079828249292319474515241852515516500713862360761677046394960094925370356887685165618825892071493747903606960040107226826559207994601317472017904790536324017210523137729142193981101246773365556255439315374873781701409641682880731814196911259710786056767209025604522131392641205975990660885889922810960458013243319177103368650581601043786407187038182619992380541426935101668857992449920455093117519074243568759993585410101070240556832977384269723643708977825692304000267268880002350266458465033693795091597898379782825183180752936461877794229392413404548770209879855877483470014329213715871930013655741563059758149790651858052278171525137701128949727441412983088895692982771321744358373804800709948302341185599543903060256447527716337057186206825693804352239140925255208027196277722150123637767862084673841737455969735012562928906468687158273183311319241975586388636122212698779316977537390566394183778229946702822383214368597379493764445751009932516140239583738752882657579890846958606184130515521699454504643608009269981106755373557603081621617180440172681140527842135395441048379429980471120231633958986388837496926180731635104973964685725231808151440028047505533767865602538120695637668175753539439093030919592952087599995607784366048508235433215962943465625092704531353991264639567451786521874558632798797467255765701879841285680294929390351434287895996301583293607697880150063037999754978586456203105609392475873971497143250268636845201332529058266059340091319679455210911390971359629109561873320736216268517469989473467309362104775461260925263735192878088935884736052099068154911726764631368634279757301197511809192333137691098261972092194322487718894269697007012661690554429161913822106252528233659231654850464483314376731396326701340466083996694063045187290056088641390296932516982827830325745076144617791879622528263918670409037411539066298972776885644366635176677082577573733067856053756113037691139360156582197252504257982529885384293589554172469081402186096552091772340238579353361408921815353615795601362020426357456245715955212833100072493493187186045065350284555784125144576953275597421751279744703788423221681278973558590948670169006135801567799099212751170021623984082825905116855825795617109829145086760237446374219458431655241786038076846933230221395936888512229266318483352555448585312274582719218917031742315240628151419303305865034299195664397525182979253164078232464324170297653290784744446559278498540997904944822453554477782533758949258530335135153384191501819187317731325951097388381827468954936687817929742907213565687235402135831504635676101192512602427460473124119375355051023926581635508940173798883620439948858464834202286827717419624552000421507459558144885193193783669261996504781764265981204231916038834291371612901341643898061723272259321996979259029868284636780835151697154033346122733202428091786590862314556809881763207404947657030869588262505747403782734601923026487229639432242170643810860833828857569531525556802123498037437047383790583606606992075594592450825670023811695242889154847362669039011646113669916960360420216001085344795401610100634900708801901191880222594017959382305940107172489323753121953991532219304652283431664557309705119309287910261930559712488315351952101574045471382716376938050289760874492287233913941070194764474332531300909519730865120142101185287224657513008296515448704411688352834679117728010068952352805353082488731648621558621714633799059950783356802920703029831817186400680687398651119015249199875095275490198475040733527262267268954210756283090302822692300942708963807219887020491978584017856749973209548183409296328458075555300197019200677315115020309559915748351862069096176358342699131869586730219558041337596281886240351422084384523783132273012992006600519950789770277054847530499737026069355427154016659073802191467003767361689324071941458072517161085344794261781592316521794814282039351512757015274929774957228506164193331858150261358472035795687070261978271121899726676153783724834527711715363825381493121838729272434273500964271231512510491954735754344883559142258539968375851007934178997032555474833549772452129494140481134955322631545277236128403629117984891224722551356427567611407697106960627508297117262087673214416783322306337480674045247460977779807905144289082692469723659861298057055376136783465019269814331340077431744122732322650486717588108635188763382810583105294613628795388056476631110594491935808420498778444971009076784551198922161526622155054698144013700099847771785232923779250318478000691535612799053760015366184326507079066699316260336941229104005648741805594064449328519907793724183289178564808246715129790377431762053355816058073394222284023446372122346452659002997671781539786442403806665395497162959551183900568929807950981348315123760952810244135959749204661503228288283333359952348530970163636892280155936286810802463795653746909628801345725965456387720473611017535083645073690337130331250479754808201333027049351360296164985515685396595543806829347047775181197002508948748652606366659389818681065373252059334950370442565829179501050321270261196551402128874364936682410481799680408263437183193873833863382968277430681021058187328610792403916285775967474468730224460425015320216147130758680526432903869969632603864278312307221288893016137171398185047274149533837237145250720107640521650875652430838867753239721590124357570773947132955955050078639376244322125201890256956072661647094186629345809347361695184221291311967523758766979287432152871304597330624341834800496377219888461495925142409967479278353887387214187545722215435080106507493068819466275181604902131581002147369969833959848940936159588103680681472229380109996488939641839304164113927369941002797697852355742467822959325227543267992084077566839636230933756763033149047392439894178778255434410083382606882951710519646322763226882451331189457649721039118184269253099520172323195146410930840426392586554125739959466419747508065957407850395963008584886830250479228701467751604506418146115863359216141665717252170841433761843935375906141202358553116042781911121855948533171057691738026325088807855366503472881872421328879336524291148982245112164630404690465784503241321251032628088720574372826415097789794225119649732635905481098211092655523482466124756959375177548802342653204730536044081009336044392668477423169980678571895391209176244803455251978861713565085681380909541195880713864396827585658727532754863994606594454808708682118671041578553660396019001785024618337731537050340717620925522602805840636942674311949140870028440020282074777029697853102469824269646952271675337262030762305383866567558066394393531726800963118809385291523405943300561866601061217267876008200368952261081348571642528492961048442711883327644640376366378084848737680523397787075735766236574008722555398028695208735808220314402176176126965085853706100396954113931252557460217452783933389488956694179087126695694486573793905372901562856058941985603731505340348745015178707069970178230338464559961821151098357817623562060415139271589525979817045641493864716636833897903287664458120243419283564942958223135530402780268430339219632898450497834977917495470171708760393177045404758366712873099066094612305293692658690583465694955379724661260063251856880091505687926060949642010663854030799799532358333312647423480565324599378650331281037646416514175927691360264239153955931435143533981259156194176180434245782500690469179693285495702580343940531718763776893816264579949678571146654813490736359767205752487822468052159731562178142510437719884887686779655358644940482576536077645029956254285418952187592512525090144910295540496910274712444208096235631379298667441182071990352231701036012823872994677104462639406798101396486305233166198745170231903832559037874546288608877640202121122740755648943327567254659235175180365925613999917991965666970229595919469258837035775158536513479093449412172914251686414552353562314987365987240013567053679978444241885869539587617928732073572634490618956013078601556440021830942399761792252640859955631695750150680226731647519204510297112885627767606731400529589867209112205824899618447123474133975987585740800682723686404704189847983326279095256972308385727454240210249746318224987101741242804682672263103671463253191104952277744786795143313288748097536535390893142102537916200770761501794439358759625744855755322231691246352511631847532191782478825203349312026461943430091686281092242046580253145352753368342481330263088767909237290859524631668611583096531894699067792835589269253500790294135953155454838206740462840546215466165541027855614264518483367564742998317241156975844685278444763769997934437363632486713524328948611620602601781210652111601868110960633310383212835400795809949112197255566643171354026906056131503019177943750036121893367841789726515441385635681409025898334173334214413630337211041522219212121315357385912191741419186363703667908204228246789212904944606057959116520677423459085371189133971474520167951498480666265303931020442291777070988447276601504113962329241250007516955931844495893921140120946473081848280291593785254685452645690218204442595251407024370591353234256329680460937537391259555154602125824135706656047327066684627427758740652864275691801809079705343303736069180609251316475120573026935437084333853984507879974303891375634434168333315002096235265779746309219176038992757567376010817527670809629640057253220246505502761604312590151916842218014507105036172608360235671149860794200023342194896180621681017954364607454249008979365186377441006209895400047332066156774671199029526212907286527828829948492164192039667162406944590925574394286760398065121169854553391920185813683998595601455686571230848310812705446606420178868156100077361890053144463185321440634759260309635784810933005313472464428115351226884142477061722794948521513143469874363612961807208082418611992088829721051392601137042040768948212976590758186100279173953939902666258622179098344413086210994997107167497154754178539869574557947713677755472354974401430634609566796939537757141228264712450241504574500709113789239567375809255791416075353697727892998607988659361678312203391024373935150530182167946138017547631906514723587458327732268753803142642548398822186880516091203989062543816830371700792155476895439884383194644694875624727719954501857060146947687990939919693801012705817120087863616613108480978781721271091455248266327971424970740262484190507741280719834201115899064226170586089048918001100986632957865663917250691753517758160842323380960612951149405306089077249022481849359338558841991332166565894334500189298370303016435168152902992416583212530756639439314695963469845993677460660135341317574469396530525610946874577571811474119722653502560230224213355526253723402980188888224386856309440610599935552894655968038834804920561315772706389988446945018956099831030650742194828850582277387280114756070344677700516493107226150263258949324234872142811593539268373465785368989692330833848278274349816492962852808557313656383647047307091363292675890586855540579888613993680159905941047609609482006910432803616335367408547926759737537753895789936604747262269105220577398809155429424860651114822422633311209998308093113817971981080234987746776018381633515117241534079331897010906603069694448703375700055451262128677971971945440183627134795861364856497217023095240689679559202544077798667905450755368336033231214387297935921326603130881433242610948807144116407115179928781893710702671879040631401360525540682114097451208961569220065219917064469072397188583472891049693645132424920877758837954092825651207222533032741548368169882405482344413262059198941765806415413491344575904329285536000498595202366316671024762698307885433640633499815427621474543371502595891518519000729643532252335327966976687948371919930091503552968753038918449541411466273378919730149228837122930358434953040802318414851148924823441451361693600739328264665441400117402278532972621743861118911340125309222840552262560376887686989104359298225008877457771748453144987907038885687347247498971157113515780309719498513396943062772446859637927397875038831746512812707978231796013340743046931600130262918653333331415314092177788213843676611329681708218192728500230551653517329591030166776673819686723838362155895140982421159341559472318898532476747108577633087603328806854095660378567737672175146766188863385520832590673413860672511274562952681159788119798090587448566381354681427645260238212547233996202186089742160209033653149868947481008466696999437592483625846397463123208061805132688156614896216278531208601192833741995625286093983143354759968178796579111665091199232722398840398567347673115335169391327469604988139412680171548021561046746526345530206495776114570440307153581080786555618476479922596087426496417502198326592765106862150362133093416162469688115242785081142823999488613379528366158659521189320719044869072455471713943111550667021386114612653687120958160556375771495328488626340498845032792983512044361710827544109255621140985002619837270368774387459605663663310694060669870457082582273841318095776335548638236803048632965738712696025443190006615432461474243795382080296398834486260462675694968865459941197472606623901527219903080714296948036008775566537846796130008341304940724226372643258572728368770694629143211994865900238477285333454767307194245400508352074482317563553205438336772027404466795823095990152112394291297774693319649115774799757262226739075619603945295059619161354915349767752261809391280607095873261136309297488335705760188403571815749465931274750817628970771836356945077153319659041743532980789665484790162751643344448284554451727728415070130331300283957035527677409795944860786934233523656287815522712895658847293483864021113912446281979774754424002456462256419880417316833433183213630629882264698844261262066343214366682586588284192925521190285678492229587557025825882446337384741563150304403161622498413020872279568058840855773475721270365203557655283215309549003815339466074847775126185813920275017506115095827888598312034409995016583660053971971345287909380711355982265927186418519127945275674773780926000265843391982559164812716161974316428903089808348750798677973017487233885565539961159867828539582632731020520091561813626704284908308436926872818731238655500826066515662354831737048304495537047190623416095593573805459277726530672393337539053897542851744464194144859592995014038139687920843423230151103549718717484028803115281412692083723503308348054916116609958287572451636686391510161474304467748399073253591508643433857980618390191288930742688100671568204808136209093007259351284087181039390666419212564280366348238084411127682116578995025404330026088581787983195170563793609837899020214743220412054207607224865226354806218179830219549260814990392379651223944770784218194923877260894938381504872323642748656061152370369312611571534546964834444028471122245073291148761456095349569590762310307964286636758952057955334873734913980584569123884643027070552508670942957456680677354542798822034972062724966886734846060950405377341037975823527899387296590986029905798353349806908234210426393051825569991811586364269469574045852145945510574766174853339423998101841822578331589860362013494522646206464827671999868740323651183179870974009564279393387818797589156699363116712295003391049121334874118947085262715809341348708282569330933173933330799619672871529898647828645171630498976744007424954729529926732553359631393449052796227603072686024789633297149871705186337722790482819552056919029315768958644118687241613450922129139219389593190031639570207023282500691183882956861916657894013667783699320233369162700372450756191236483713076713925122807877890638187822662218154656237404668996001943995283580643336758604819104179248174107051761776592488095024497371677964374241302176973648665047367694809711641209230382894091131121151286187496006824228629254324005103678755256680692586496326264527536055057449203926987721385634518724786210879371501720361030348664704851213362732196724802688656192804505661269097999601470630382424045113557850460416781442154341898514564290978733153680368764293481752044071298625280869558918424967750881318056758354799572382066696103065126998768832258369803176003317711146419198751691194350646798539706596715177310969899247959421473006891080329596674978217003869738149831872221926226764728151180062831585849116335480698490377245596766237957800172500011645172114635873338761231979063754451309328541764107159140588792375139713546021488340404557141168926030270441134707053664684805626337802411133546365544208273964498948673925863752765690635012880477454783463992554733590916278168827649353876509453905636516580856654146517957931493476274497109069338708591955325348348421396926438524220285325738497519938644195821766366659573471920129908454037722457004946428258172591279161626170088396789407476233192033529032227221400403853214551327651939464636740836731808540715813329172416438104473638192940131211382396499348610053609044289666941214074221605040131124450001019765304413791886577240823793532250353778248424875905660724834532660447276146141847577540935367601322549129517953278886635502318916521356893178556318090177434349031621397866803758487451602458551316297589645568996054700768950570533407996885288345935110170847438179818971888362860464967292154976548084513118315191281730296023155563106198958921892991324873449251884066999371666918386846728400679200396931122705761958403651294753536830002719026956780478356403414178383121618035845892797738613709987092476874423974589021512402916742418275743663249321855707960837891724791258259089726056718282703585595404414462050812701477359693315463648961174657852308923890517925275204417945192636819147853946723707724734566514960607657516050588388572908211003344023703050479209529571060694830258939974512636460209106761869026996253705536251953165842473586105090025930256089666696701299482739766403359580295883594938616591328007967737602090890696357559524446484334091982074602536958636954014278533577469948094797905612794218284986874140536828424200256535325299995104618087375712282272169570684074482067825398299555659240904186024781095444848675376214896398524878242314306442058058296151256373143752685692070321338914964530775578267083420554471877855167073117911057714498766343983620660614291750543145748862413029133233085269464508190277729166897554131545946928404092256345407299792043272938380626529046923768935138726281726585230007295307824256355616781748433969226436599670147908610759051987686324377228490620698101576422527883872490585983835003594918659587148653626476291873805904981330241903391216453068870652419906369183917623486672327756301287865967070595893368248440840476862146458939335628188168647992495388354642109971279222762502259402110783371177248125410198059253109088649171903684807537603474645026170376447073576206605080999034560405424034044144966664323523896859000236574728460670981352673680647921841235284004028042624090627132090222531164561269492495452044829770139586660433356014820793888510437263279574362375704957135395112931400688688498087323885867307446934789339727108573096493152828833573524938168332423046929624758599074418992380354705357847994046152443427757418400562131203853437254819007120158705452425655389980260310370042030725053066147954291889962691782332166722003280180809929256516590640546439452405016811215157991429484358137628276676178201101897081498917259543163532890493543544943029407104777733222015506362123928715327829235416306440021272570712134474625688346766485533229403460018178199638440909440348493412303189350815525207763442329007329071358989639495012380847726715018245167013906181264203780014262043086617331235023579799820292630561659208223429766333227608259992741585285601092364006090150693864594301443807261947468111635871992660811380309850474209234892064725741747254310567182676837727631429019922584157354160722337724334258879548958239821693048289867622371486724646825606002544255121152281140237242025168665373389112793607211458800306396710934699736654770721313076276298105652382852281690529844799847092202272402764424114168868918943676450309136694696846615104923391112157151902334604727344639465730977580466681294462900002726903618312182100451632580668718405580005421532476080078456642310878428408276294299741311549764535714629934330412562523410358969024269297080828506032112267251624830884758667844904651292361981207369918492135433729883851017915976021271888391692158282430162290385881562098107126392616825224594900525146927886467661448331166455830434698119182564110164669029995104697333896175076427698793579699071634814965030318930858969257411616771720476164981558045303191271585854240593643943047557554457511320394767644579649330092327989351495568612623508870491058239615242729685552930327406950005525779126947488308781896353703319914422628883164841858223645392666575216767233450870114046491335105493981629595452866330760994652127026505176150609522857968296479035657315328087572069276203980658081410599517806286275171462188130020397432764359644609878864774739648797647421156340457617633310041392526419657933822607725814933235747211006821133883064480553104180705308600390795347830128866491926030037668955622437598650186921083706956632335886424475400075903908129497998136315970475805149844961716345270371063174321838137299947085524270667487300804500341393416803128928770276358491081635763718993821735618123050613212627395773252936637988958067817148288798022407256819343306333587104543174299267121440170283022995637610931785411490601233549232081888619331669516849906342884062058368117245417675194510994311685735094559164741404380325425683768730567776368954050067923646327945075637551161808545655855962045824790567876005334603888375845956455052170887252193783618810759105614518159049109687894379844579866626603118183270297129844578356822122540904688197876173005955391717203083725905239868323082979477318363100507413877358918844394331025407665869610806064395251020437124044198035020016088049782383249644102959567677103578872343379562240078247300336807453974178903382503021605146780901181645172393587271220650767665728017491807756691468751954075828166325959905563879330296316897144317796884224399806157131509332474873708671605576365474302306282748535854428806113838618931014382372977483496668007186490365816762207267389895060482911637155120398831758140074574136189426742641711808202732153253260136131088505106567550004475616267827025630266040512539547665421285983634772805057458666425645155546385878986165103014769187918170275507011214030200700316561896099344021167586670440808932516852330773959518904409494237005256328299557164318942973626422900780391662312100666388736191928575610427272937766481976648648520126596545814864974183809135472219472366790440731724036890927154067293592983222040541535841272195031180271776744071382057468267555784465329687882548360797650736968791394543699440738808501655316171753458762453144632345121634518515763794896100268880030674684119981809323077870638654375656949280137557910283151307157009206489737710578486947232691286175397741426088318328214850597004412842313077052959931046197294854343042783549006906697328102241251743426399073329669402842620652355593239699669006062495507148035126630489663581210045764233619920696327161879569408729016972481857086541810719406094567623704486874963658119113914105232132643748737771949349091724227650837638493265935783874075024437373977579966709129243884883669187045329593070091689647095243546636482117420561560844858321271037810337339307752608006776367771890461646940839719287084559718933493753831771112892161485959522753403060442942601123124446769975507417834849247352310301173069537004659126473588640680770496256610970544399396047846010597794739483432896952736833814990340261323130078862838969171091029242829984688324397854909706973057133145248910805762735269117375433488542675370208349417879478271075700168078272100114853279425918026947120285776692872947972452689376871320944400763668061379953027643230947448968724637985089838312471319547448057452331640639942875476859571952620429194602516105035979597186119769052925255914434535929425444356534609650504612542497890813605303136008218262153894758355161146173684823850370416762964283577414695625478585960508507959245463783407452175550598148134822854167734523363286778733915461340410780547936402439857868172644942506494903985424026133435892278077841912492891644732452895556042722859318236739592519065023383725742932768441257857290419538713711600272512125237055141568262778261974866766638953359222478524163259036770787220049200288577443171492526056858261870371576956274499576584869654181321460370254206042016911051381368275419515538706330547342044123706751108238581686533688560372970737470109260073387060430097399566868205567239243634072795514394011828062327907137020600442379546833088577779129826176376908046215067508573968436309357543629117099940661376570907309606234568552776704622476792953714777647099847967859407496173737501550529162750378090439040190169488242589255580937156378281169123480542781646920522348883903591828671361644187279534191828298120814476919400019114833054626371546896911329888187906811267582722277794250354889399766408816173858297117642977679568358665930180804666538716464603134500310243881293802009327022899916653085962940236233587548933437412926461720644174832377346711301848385390386130295799579630023479698258934798194036928566162575794034530919553750338088776953066024674835265408092034697096130628256508373621547992580923523041346213366089108411005787886303502248233278909529208577843598309825395113044506912230584574512401756358471227402927858993440733118809441319669633607030178132205110004902310546582182585176219588857095769507594590082096470531556487960399263118826251544330700959181140522936829470919054300414365342540845346602318658674923505281674495874694277985470785041702351127909629319007713286138547378086246965182111509133616790531405042788132389539859967340125433163894952752940909333998456397974008990686598695069804929673296275680221707660772663548555076728329148499719167653251561965902290783122593972525440540799152269854377509699366112650554084859432825412667404661670867119776697930182791078642687537593161745867601623644403328498581734057867902396369728831606848679034772067895966813631972200062568636447638252581406494237700408350389802284807512607251685966888547031303249609477139737653156327456956172637471921035105567888341707763964542954685343048751798479935210507125592139959307876475045704971402547761841712316515967928880658352022939064115065964722914567860200867217483053438755660909947975901713361201064694676614320064997737883735890172380762669153585423689638028423220890511516626145587114023388910475273834654710926308642137686347658371359502176096672935569231907966784571571427775099962945488228230027403971372823261699318206789283910254152981066571068833086936979164746778287178378300234363164279676512353961863277147931159344952214622296204030405683453821618473814247125650724983294933016459666533314234194395249658841782394285263311410806384629152665693839254702160752886393309656214213617755781934485510194188169531635145087959107650601612532883720749999884504626407125681753171275424631641158262036083282099781953531736485184388906110185778257523896177678304074541770894948373696959637539017184139920584323790340962338242646393016936546189500134880280700049198344047908802516662143833007234060407204068634264490462428045358154138577502239495974813408787763089533446726392903118684748487579309603468973715446756784506728925147228628287240409222162649968024986116278815447835476352403353267957983932817365980773597024907940345772362540027374009780992417845982022257470086626663108476293429062046048376702547618487532647934427617853389149314858934268931497916887631307768334973789462896066373924134365770172538403593064051839566661541888383342105609427632034910638665829712908485131066283033415042730803954001457726402996257602121634058525141737871455274599605532463850734166559103855470665646490775539338927757811683054100607841071547818632321868767933065611388419615806884591267574033942275895116721764955878926501296589221506863604473401786536553379464972751034312199279033389580299926350375741154166844020593477802626384915565819342502115860517233449779945335735901052037803226558860189572042841609094215816198601055131534194048777283955659923944291027940426420885416856875650700786842945140693086357948964034758624717234497158099154937920595291188168550753760061637632106558922945261594261618040753540679749597303808465767755880681886494192555991651077222410792161779192093054805468161033272654436376235022651221058929277212491069757299691829649556564238243982614490558839310214683553644844671134528819599121844061404558696573903340981371278299602475917048068956732730486418349286221667281879977103298424292726545216630527444978675978369218309359198231084266748793973878784403617698164824173410819074533818552500522885763182761410866155894048015725463107705420632221298204613390742396604710490108936254559905184559385830851029905829325937314192279029220896680453176238820503306957001216081479837347961279258103518186005164954015018499658090544461783270878185153992599910185008614564533819768446407533051539873178789262542935652925840898125820039771369748717116740523593908444621394055205800410789794914931481388464706345133975313500556206556497132456316958825190968476311047190639863459824199008375808499730421094842782102031592349147910451556179898152728963502292569065592967173428190214892506570009452324052810661134062903728361289999856288211700543061223571754891788634357695940697753623344718836846467343239973517408915348661293829244744327785196125575596685313043412521850382046961897671454313138829371706945324730715235803423723351082045884292977093524748995595403881549945724438465799705226982457620230103402936558977794830773424847190212926380076103651964825241929993547544767241818849721800027611072232357984609287924969838847359069341021178692046189487564186381313735210363171609302183917446721116542489952472741270378236678746918938918281698286386382814688919568039566747312101813407902057101695173730796645612342396339424398896466800468494069076859984710935469326603912054293389873415725149530512133288281563466359095249815789360282905560096531188667176782680218388913326509789614957693206086367797391484694249168132128389515564884888892723567593196892449990412960097894427553136787038348576243215011469812164641330630341532661581758931764621498295158109448565195801585540128241018923066631501564134493595215866752691774631580027109073235037414712232232387012896518926952268694289202488785256755497996415230586346119554796884855733006992516767846928413907048042631399686483944649173111953837552842467289170819263655768137795061985748492523234170894834592520657799329374466616776189883467548058736687382086199149495210679135217265582045257351435036051946760452003086278253896333766141710408852055086628915155698528819546206242078017406993732126677270443969318256861074814667912401287062238256675169022907083440953774338437100768965564521847541951888222192453929070860481508522890550125831251607850820240924037786974001242936116579606448863039855631992563343393001060451409546408674951087137957720221001798122400308222314722230864920605190907250122220227320738073966227218499904038161224624362439349044755028659401200219425952841660221992082442567058823612087808942256825796623508382992248409701436480760928802929344505669876642618062052676114712826092092129774728248362127405964342354271239298002240973469456337908346590485259438046114462954304764145702789592004602134336226572442378522657770155148552514034723221992540329954917432890873283605640732649981754265030549993679994076606448776766863745377035842797975719661558059923416830821404966407652988004176823322070665539880535187127378478065516301329433337130737828947342173514020186047618264094290881306629425829504584916920747954333258389068874802106395549931501320854791608942460982109171905444776109786227979552738133348132570970203157679914678325922051385414889621144349331653206436976210440611824294303901561999843024796997463908281577271212581647421113450142039785867247485920361416652866645904763928766265705018860980531459493394615220244476431832275915512090036304414414281169493403538268385586078493175121179565440428970043007484193997448566664730010898971179705474646653754880143931224484517235270701860803819787182221540188500023060908263680253070678318107666409447752632565881136644964356946339177996421449732320406366791936667482737714239945657478041055760996721634922870549922310526886331242988362729571735323171789529733612179443207325389352544904445424576893012942733470512616863816928395422438373234793579433964437737754021998033949178161339870290261180324983970498576040975910325389258258003967898460138164247079147338427518217155088473199405005864794594050470698771348792162466829273490321176961127367533168640191330929495214650750635074591376140890307359964901979269818513900745875280118241901748065922415541603329319707934670804435174439446768669871543573363908909436457279024790415524034655563111621607110790011794201166329549109750935539907899700810284364374668151032346322205490637209580978935742180903046632441928992250363163189878975788067104370636688109317388191975242246201533189933288875520221007545416876510306015223498132601116794059356680317083508904805261136638450583056029384296473000238448743558128198368929883092158178238815359719740431705075075133259774464857904081537802077532276640273249619736154463391575957989545747194637779943435978661972654226635094099078588206758240039837831278988968507637123948971995245423526896757511219970328149620125986111704415428723653991125005347835627603362393099071036809547271390332679336522300459681794261676283850818532814269442112095530093231279621135237517673075139334597991364928742399406222438902307800150678884468722894029627831805669180965747644798624155436618533547224514566850427622557501541372746893535885268024641946416457970744158583064343846543000442330274847685555681976848064442144572274312857289075168775762664348497321025332734807328403825116650004829716861368649053831645597259199654759032106687981925797382608420633520826121706910231951029987856553519197436296609440253447957065691667064811814461804719318062500148832754973280241571095943698742971157620791544163025876378968595969804610991283456483274893334842806493633780651242769458800245408232049135634737166083414825533370275561317332889505372778346620311515134923336317751422261348593100959399210015963200837167127960992770205895750932987560160162422272299152621113418727419807655232939084611699576330466179585505281063221421596516649832197987766962272531582204074161284446020403472643341526616037321620212312638223357693056755006705316869877594553831442445212637268970420736533673717843459544677175286107044288090781263718511153043046267946317029955380319496410930612691913557058082871097951786027643913329453770196091744305404264914235723180192076923679888366568074860724379686317335828921158937225688887165883436992337765915135008241707869572976494481978142836569960029972839030117945714815485372074239849376895152864760285383709024429329555699340712172559753332086370900074098639147738137400234772331187879635730021259948330163283761879523653818425448875559888043902855660686254435126964468975133901881249224699688689645515235026861851787450110775928397952196119340937761341423882107551432595657542596003870008517570387195099600394709301298732915291434910313608327321536633021639845649972437114539204264481029287837618553855842710388200252059454051522554994686402972448981976936066094174899439641312540419532065406882156563016713771734334470503564206350748359885212151765660348951367680808740868516160193498807050740856185017655521522881498289802789485336494089769439671968125303102463974631068783468544499783028774276946447535258204593890997570204723396983369505093344137157196883702239913035077778265503184596643389235510086777077214079208887327830255254056330273935152708136529816253270276820790160489630087913074482450272019973465781035792541692855960021342275785041410177377578635277020527149184965434020946978426704392918033951060712547755189763964782266280803177530045328105399225685627778534595262818746521708799811261671188535193205495810793831579601276414265020987755763618279286216686311561140476783896662605007645321377638038451501743731618257359596966572648275198361821930682649860419382983869891437925228314731918670783834923415669742478101631494147225759417860176962987624954771841114544892931750325511988122584747907356017356161128526051564734127483663506737798151988549557111473547600738415827573981705636193167058473785508397738082720196688383650117129460560126417955483233970265433194266643760288906649866197064234266644957714072162042103695676472193857990421910453283662136154746342543723971190582234586897536973670199664188590204154833300449160074228151369131633609417489768748122449295486303366504073054766715831413822734643174546207646160242309218856690215861186672499777292801225282123933322869015033460705455069314433629293219523986616358326711481334631754206190276455876616319230638817216712872360737292842995379928953719980873112344281263334515633447916559151298327452361588113902400431273989242663504802281857245192631986872149698725445576810635376486175737754060444312822114315676868629534861992303315284339320190262155234387499866343924429116124160789593655144201633963345132429118190593830507536882251673901834449535568180767697762382677053416762972202700667771552680018678823300358081669059765195521906472243158302714938639970579909670066916158657088299554345488671424079493147394819771939775093684689854723555338531625031448647339065778633974768481347043241427540899674015181254738062244390962002697040749719810267713067040385954176165129264012016987012782910340642613199559115127328844592572503269259349755377415543441925502722248165239809340940994462993410121517153446983372144461778592899458226835403964025537114504268968531229599021138414094653471998183848997054412701096220613811444741161870059549758389710367074946198024773374438508041413682466973836001279890763980154245751294755951363978093227860122193996017107548562234823430988530250613354515795785039867235307815525701782571160684333838049996544672560918124396828707355542637759595905785757115787742055739357087648188698145825088170297357313849428359618233248051455711388709926720193924473649635031578155056325690683526008941047932791373420885393980687315392500854822523258759786514047039012930027026184998758611537469889712660743214444336799932917528478339330828585451196163723800115954239899216692718651830476686875149984838363255388093408120529498606646339082942862253955194737750027280244544616940253425113296794768474880399506760786696786440523677078462599241846469868768902098659645261244177802823733039018060715549141878633551489905669231711091963919447223927371065862273487458649164468807897064311121835161930026005698505745083244827107509672771423075589604821706287900214296980365060744904022984748200993323352946663927117560295143278586503178093499611586962402877561509954934944127818844679135347954224700612891672520975634329104933429423928336023732694062133837361565630945097437148577331189261747337177612289063032539675685015212598170640157123680725747768361116005545476993879126703752452854552609202996187057846216255329847052782344402462807638328907004932969629762483710075370990206471137218253538751775637676478322575058776654627789780678721593993821090888056370952940497723969673003023657474067164884374818326441697641612498387718679231185181227459658815432046933870095308250684860969695177441193291128808939876517807106945947163964542191770284928273996653833789607250601597697182523143973138398137307216847879313754066754407687541636257310543792472869056700725290566166019650940929494400979435206470637617127909904730153198986132930754012348209440256038136420228642893859492870189776150151390717331640892687683721602426533084396887178912703142337616955221520159335987290910337422838613133951395654656758520520712904765146588856452773423673093981903848967530098218445965038957370221603016311577302502112585260018523927801772582149808786136896760100110037468246035754395952802261228447855538954697871573562273897113010167475165954986411237550270760408762826937604074150338450139463743833958940523478918431460841756023119538131549685889576508120260340746422687035345811316322593279656187372546322797124168746169717338860613388713320338117385018818577973771802278356209945227053306374951286942084203139171049178011070771408129547913640867119570923392129742746012574337336081672910092761092528688157085326918044651459063125898005216686403456340140908339359212328582137707426225791595758361082457291722931058465941888950421689118152777750287579975233269354084287737021856051547800475919088998544106241203185407005447635680659701256526628689376954847102258339444968738174551296348322500020607404760363609097612520467908732724282079990870550650820889197614768159462674069343324226964460334583986998871869558824646640204991776208326638767254155683438440408117188943213695344776949914154095801511533079958270531131164109414273588132313702392618935278493088910635508559379267867506439963122884726597661530827976467905241642940602848000179336582358291684807512677077675836601798169783757534513268366423912173819607797147700422018594705414580278085615518534587495642973374692314364312015916071716749158127891398346394898115957740952526690405313904363214708177381297616622969517877095307152174054347946487463005717671924757700897752660734622227020182467535324774442202297272503801918537691975815066435696201786174353471786351391828511552392272216193679500738776260938594240865878102587016522383190706349563461054265042493832251014408214809184881723273404551311308464216906121753639835414276058169377634922944661946698503344478011379299740062192966485776202093369953070813055658052762004010170932456893193157901511542243846962338895069650229140119559232905983346404976388120322296689446636010440158964032137207698445314542995194562406722151476048592497762106752104300974289825420672376236204340352434354595059638423978315018369900627667923713601138123288903028555830927598583034992701273251151821671178314754195919017994107967130400503851225100415541876602460608083575474693648024591238220988608291224207668247559019456802204718638501768061436542009483324977561086900506687709793976691972374526145079594891417038729853692008395461933705349348999913679721994499335527932485104655908603257649184645457648701473700133407341532495816929131133400737162457544181784632240385653613050566076509616716096569668999410462171037712863663689280702839258390115008623143572285674148947212374191109046687403763558113853751731769522242410566461824854135168774218412361532844536750249408024712118069467902382151981429066296089449866211447431515490089856042283195675120058445616779440917831941404624221787399144861440747449264592063131820262877439856489520110273960868053275443908396515245931715898630714056588448791568647023365538248223974641596333796874527932110140665644847991649463570475632628106098259113243305272063328350844795709461132015297160456223659374139678934069120242758124545035132055884606054836489132126879664841379158722876619672460959070772715530196715501779235631601157284202010090183299402716322363421117207096760741506006787381786593753534489578286235200651629704330138959222267814641989803857648786735141292283152319030929492602002146566438354197461498580884597626388963331362489454885482389857904394078260109922567723970576233813581895466489213960399299572221217835655511930100857854487222909310980105412960341205899994534846542172686649309883795063128159646710376525460649820859118508035442825306723289469874578716463973582739861020971937730703350915766315526890654984296911571703443773209784121136821778199184846501501621924503187648542830601111871580330802160160981476666682143069511672932718809447164713559310821505156295851982408321744203091183976060063471965539986363863554366121656476386192054553461349307303995151361602239002969400444372528460772459015392452392009269114561474942218154803494809033706572316267793910021147534237742474059851938225173330354508824788339789848576247332519129871579487592255044375972923458849577515531537680417697466831729442145065649624488868742533132448471113847160005112000057149193777077570238402452314361337883414949817622558600377233348125544018069647124674812600010661594394383077127808622998950583220441799844564525012040681581425434951225439802681648069045490502211536248621017156520080741765754896674120577600377409633684717829678057564325801350845689990412586689000080797147153496961854574218479301546838764128212384909073432997355867420072293045703456298062959067713533731894853814569193324590503270329811727496617442780144222121921916210228794740751179822653912736856781727464971464310457409642557134397370026534041612197120031588767032215842517043769982547895539450792533880137361598291834254625039308925909510662152512015570053418252965162111643012841697297342127591572643383534126655808373984264856050612396984973701150282676471737492956775113101237541332661680036244822180966739571878150978944509185253037282139354314804637928026068790252774858141211508430158222881842700306400559829520998418565291856334781463201904160413948865974026853350001824831346717810099430980116060047343070744073757117054235024997281456628987300899080859344047877136775248714629889540686841286474217286815797447215572827617898769606933072239011777793147857042490663467920603882243539459466784040537252991579015543482089310715856791061516723167126603170624378315126549746544790883706955884427313875227906378181640100258467169170790983040976747931039513223010572797294613571338323017863721244430779559049178580075778175479287327225360682924306430831763378347157553102537082466649812385139299400141689901591673169361508459049567223278158787742663309471057446232158573700629132769154935847092393798021250029562516220481054263928440987489357207252764795930706087835808024840828064636347978359894198597545002333425678182881435899509275891221643762533868459200876997583673852348553761226889137799540579727293399140273744700500761914150561891299371094431670681989196151541818334529855496729215183171506286947447553543332469045715733521123376605288505306812940016123468312828748919952640138089727975758176974890631867119416534888191082801929921711917946996407997042503824430649656064643768136652674029781831391009270184074080587274414534990846420444091565348968216207625847064764076805121373665549601504846654567079424149499828306801483382235676620147960452880803403342921901887616324441374819319045151683208367571884546937826977614529548505819238023362628124013136738002136281744151811850368901438036773804304598490438808771494379884119109285647646232704215142098120257758068981714244415411780758590107998125567499030270761367737230640003073060895896598979907910427061859744916197521140674566370231648965795341048784272529650247779019923847794552872002796598625605215953348686347895473076500767400111746830284329259306029451138765172075392492307784653819017963766730830665916769448337243001882798240591965971969073721051949013686428778120206316850249741044687524140253942489666795206783910118211438084760176557767497100267811686807875164395485635363019123590416013654435258382129464766515863848920332254208247695495727443551255547967926186091504283306184140404944663480061648156353187267238321784747554082424173851183408302018902976586831617691738166689125208682519662279045137062397530102759057809374592678584387979255820138667813784849460592463428341249171279383134846094957631459637340822703236889222773845825713221195953005393796914997759534332328985700686532201631598002943660334486354097032822376735568444471814532349407734414627656413548185027424712212334254149888184331703754766394851973668635384779171256129366307141102009531930130251144162447686086120861592236947378495754971905003679098932363839198351253029699282473115874550257015251249970902944835560786071741520225167721087060343095667807794184554540631962775377639519847009864261682970994998987897756158491399029015439544059294833214605815879335859529166524268001634947868906954690581474609893804930595278385669718361159357786654751401655856276930888301072432125957116098943242140106390775181503053217702740281087840154730123737102986357565630381426076277375524929783577999802325862463569160834919096692966852718495690121748256678033046100410134283486546536733327351812161275573232423825150773888838315218210945502690354279365312679797868638651776889161919111522601449486438746409368385365189931887034773279244946571471365170328696526922987899976291289073147224342259572426037327137513572961953667329645248429156754550085643729806909280493950483028689585035596786359288297470846910809667788796880551759053501432395723310488206850769550133949656895846180959511568519724856377961858892411033046220767151601163418913351347185558660139323206134841527608459562271006664000098585999407694322913166076240877489810471962592644137182402675169874329001275797044764861656771187621587597839867477234535150738738827462325235225144682353160739979712957630122340045814478759332195770398256386330146349061269286761657054738602986277618050574709328496920074545844423258569566419792205859566844791886235619347295098126713652754433208951343338090004161329483321036708494560791440869576548286745901448769554977256157288423238219722599760935763164491766587594278951938619257211809932250767913458033443399182847544431356581024851812059151698380135805049261018050088643906316871460625657696754729886565883071741143550593317609592706436243110830765226458790638198981150474514269454075374487827328279362963646090057597898933645445028073044401523422938564730736361255791509093722938650501506049991141558634076736554724279343711168119040872723156076620911597997759315931503449095638441761800500499615607298799800969748068150782958408160954845601561770932301026474750438493459922835863257694933087407893464867513372430005242656605517583575495141363886031953021478947790948887523303954797021117975970635981620218466640824863756957882451046254349459708567377628077111598012595437127530743726328400287013081230408410435314592110517952567009180961491130094553210863596057570247936442207061335596762476587635131138163805836341636905308025051462581619445500616990136724626318069819726454690341979160716194895126982574550032872275484766854151304883612383296930230801429740079169903666513675350060949761180477967096272531142387816135119764225091950924177642828963293538895068946060764669524425092576839636227735722861364507202119732088736993057140501100290908216177162964371887464595838776045415054347933427253822100780010270032125713205291752329978429271203921638820378139010841452965606912871434702135175703314152726673120716662920215075203208287451774933943519989675159169138228395943249033874011540063930509958133766389203807014904253204669810848554101993526305337011420622490911942090888798472070450254875624785555645631451120946834467609437765826021488679675092827069639871189929241696804761846549864692415702522027731980999792001167307512177372085375403456820267689177499648590754828941387490827389685636737494063712387533393668993960594236905584713475139222955115091605599117404913116715739044659061910800528141434411912139529702935946363743165478535670561746374417688144151244359823743239027140479017713789205674412080203014442884627435265358475922298140071079102668858850436075558543757381717319226417380242067205342235477472330306490874504802914045612819927887646867352206763610018629700542144269866881952515792355680689073398696870591272055087479363602758326306242346329702969305096195348556278111525042262900275468777254035669555191367536349285492908510448440968698016787991955523530220330562257665917897816601158656918632229254241627473071024036335039542282450003607158899961838947735013834588511128301873207527335889083261173422044566568711660390092380405764243027255336620568521949216749632184395258683216648658508268751692185455395257705026054420124391764227985263132942691734917006098179437938906094075348501537155288795228882483598414983246785479425445215953720998651791321496778298503901126164754970268845740087554172236624852200311948692901577993990822676639119738220544948326624488602044012380254732400990798425529540240981457735757373626737097202795174396957013477376456854226328773036088773925641174484581063182314733625771347532667366353323553713192510987296899658193231865035188536614136654706306481748620357292285369413217402444925374293702942879835305732202042530809048994037405123658395784975827494088782195338790096919961102513783556859887279675731736027652492359670685448915778706111122508871791229573046419102293219074498859143768966271412533862008719410622965010425385710119495550025670297667591901884555571892839892583276857313223575945689428088688964948417644168731987717334431633018528324723936240030246144898742002939652718605239220722488944401118898464494451657590543662638631035638946714487106823613560186528557210484029069902162392308804306999192508637075221699966025196950748763538999833341060661785572392484321183614044586091480915440906320716315625401718774046462260181330900523245060313007179683367750945818175487884588697273987371166962941559430080287088300010850843100043049481175454397443267079701312626671896686496244513902899417967875897947906635596912951624829512599350971917428728326318406377866129375868130507173637792021443412341919026488170806621528335634417943862793295554100434077126622358535635183127305733737833664469780323090571112665527352663782679912362834264892652271295901935233167507635780267412618467069303897845140956487878289067020737985194755887599344490936933094987562087401873045461635775330651719783264291516340770839572721253736368704632730727234931648693384531677973202737706784526960301510646661547968070255250458023925230968498363330854038624378842439700691561078702383580386541469550356108716740468366572915347564370635787853242341933610506820628869729040848431663964275753784435671007962730389122425004678741892450958233543438385957229364530062294477196461425285876948991750022047253622910884278732476701130828980679307594460432938496991112458074272646643690248157717230630366290627613781209872598353326300490680175035452312019893875600076216881283821767495863714545968318328368028018196399085357207527816740442773294559443047605425403169391289463508540333781200639640737360683092368088442583670655071870967602182159263716711150099739844382120823083561775460849817716043740065405277605379614462659330921761658406130125189805004325938134077874428050996735694660383495207823545641103435500567395324890393685597267246169591533831062411405475095549972461161562682839037312740395760979737489031202320290729603565686546836170787362947307615724941581129672090919329631596447959612453114265928509967439098903312654984340348726547546954295852132799267343711209370458212092004620144774277405446048452293818326856941149434338472622449615326361293297767950462933229999142209856561129707504942469113371400952922639622411750436662374348257636316320637629153465513271849052003990194646733013131171290616760796459679317796813172755996592629597063842681260781670172701496670597194570516265331269627485880289772460541206416234177711201076141582735712906943292337552957988768286011537699244051131309595362559327839250377158910158365020198056864170144907447795131997632516002361322897613850941826821643012761643270561295467241981865673594737671714273252580749578399428378006035006898555576047962343280692250731138989984656768185072179911483918066440301784265383260020689527898449911843058338498810322861255431207953406120109642659348167803190422184724811481073859928283928992428692691313669769614800040391177950953577155931979555254374156418862361903888476071627005234316659752126036364379257913110128923904327779315632439810467912523057932339290029989112179443605588024729670643263387206192355636310424137360973286899565630782779085034197463482039875660585978216877322142880601372308829406847537276645684560097026826377427454386209758496734727539429831539538620254978782089983813590120321015256429273420070476655347222491359172466401674807674961575364595416840978502456580381924072535055595196492050485899576489431841516556351917154163971634134908749836710625124990330294915902819995266189559125901144576939986529715434900667825214298227002927527684719017986497624244749410414306406584115838279370465049326901207719945484468692742584549120512908116753800156689831196413619095756633602768706376851381758703101328631965271290684368863701711352407209270656237224976884815814273660540864258675670627089304035019448770431476822495096079894811844803164548635605970498917559024929499565138387493481766073695015887327736396027470170231299458473027406927675977468313793719537877523307012788563892383189407644396607052924174255257860377201487811134632134670649262833067745850139199730408717988297242879342887205125466387891495612435214597333308523153903009744675084172970858982450874310245836067761813738618168262945107226600542661865664016811809908185414445045163233491662620607571163826470462338207465357202447496793104031417946011207085643242291354997827015670753942885632784779237629297428390619987034546650968734452627795513247092403655894445366412369641797446851093994251148729150706433296356638149563758362689585612886229449711535971934812399881922381183050974480311017237213880347825753876310181672614661114201392538871594609381520096555099510713687934284741247050444431194068898854752967785775003472835395543161026490265840661580702352952264998472167328937000374683309267058587698293628876553317748859003579273904348117602114170039675316038613611107986091220209919047490868936227670712952837831309225435361927680322243595565693929554526260260372004321210951056572054206766197053452966018780701820401925497270225065908010906589234881531340124987169411065954347486814272557812207967704286669245708259860116966926048840056823309877718806578645092830925585581087975444278760168780967502852592585003915886815711297074963365231427530473794025563876884611422647146196856330766080630363775244210249905599823274276535461678648092917593922001977118408982589150328646322476870460887783724535265267179484959094998469508672367891267193070357706133387413664713202063419782225046943781681307842654270392270212295411755186541921117363576762501619450420472354226668079196057738164173160407564828051333464741732203909405414995025289208991647572590423406713517419987887327834131865972967322053609011144032802833027199489899658661576949776316811291606947697164387917411159916924240418909563259942901590723142150579313464371021035646518994627240150981161924248038427662244746517765620635270941249439862713243580440271009498089176642831300881342136902925141882207718164268615512795476746699209829889065863338563040411129030977090536934240655249244104899047748347731149060504999888441383491324120122917462709935012575755524537847847437061676077805999729965040211052949042620204151179411243158801697601266462745870242095827243670364950462331301718975816791728847157659407981168128817148712503784036292240760918396794354833623527130955166878699006919028154953473297968460980697754685026827468460060794851246251961213968251738204998664341614949665382510832498863676341857315717258700018622758528009284735172631674422185371585292866274690657223839102437687105117482282024294681845742007085908658775805141212819388420714764294009503108879086507903583723498354919768111866286127019743467020382206718930054133632329913901437202382868552943540200505555243044069674226724069031602015435446161447596759285695380938760628888569799080568649425622733643473471152016207977127872866841861777893440694543662842952990473340416297668604621310436551437727162796839458622947387222845417974190715170392517800217814814448609322200294596064363936887347648329618193464217702698173052429437935929599711319143037644666314064425062336764052587889409189578282444380663489791328574219611775345951669977083069783289419192314837575699366438839130094735532544352590453323489213916037768669685184132091364326612592418231518206519095593778522464473491001225109289131570327151842613577023923781546799299794990627462484121448886589694125429660619700786045139600863378203626600070256065532585423371118770828587207830246344305107503453102458625745833294584948610381840656621803266407061013736797734372899302487225478098868449502305836670643031887987175202811243737265801169527972592547776524821680688016603657988221784663063847447166130158948309022746688846193394779206770021173910147276630844710269749438523803787726685915120602382715643859715002185903233383980743206761331394898393093886410286411576156200806360160641643699202127887600102954578385346238777138844838344510613782156787271603304878567501436293639877787629891281700383666987761208082492999922489725417409616901324404295072935900338864341283505016085623067823302699130433183413908165138327114222175337668781706253198854480717480575867716295515217691515312215027772415884146834643759071392617251027250323984167600288951185170950028724676588087799568658867930333452370328635818718681090708734613434598944362759246289875374115775442777072301045116937726986873985719003817516600786627616216337996547117672832295408437905173570625918576564933660704928091712542203814104837826370391749000977197856580078427511726690488055046509693639527345236796149628292814660222456415915842383068294324712010691886611650260264106413203058473689879076948576508126380528674987896225107228062659172356847310001613986949269732499354228567663941743405917606914265606556477359783718088036779471246593357050950686982373943629110133466378173382923511621961996110644889135339310039575081861076186896185265862500173761700186377325357963200590745191753553020155951902811468551602725283616216592598601980615992489771298898161424953207279100304368211634287951484254244021628202386266691105572782513719628562511392780733817037788253159218556993273064350596820098024234984160985085723931911075244728371399442746170376422745566421919652408541052509056761352489721860013506040753945805581215523632135395507147487751319391613481216301632046067493067902229459553120911708586308657394795535708537462927794169528316349152354035520581392393080566312145356196857558677089640001994614281806822827739604942540053742272428663986075040403208420366071021801286038975978892413259918628089424953430954581963719653890271236408002888796961311801574167531721658494826456044176309411933112408726305982110001357855240501306577946735987672027602518617031445472383482083787558199061440325588522010072316855098024340833717660321168137883105965871711037665448629975566184282659314880376458147835335574178279725879447820019382567243904510065716174495376310154206403200008363049889780166456927833998325042028286795863425513839492968460143851697463066978339724226121129460395576294977643650889637948422075498951350786084471794246219669162457787944994086812894224885526893016299750743116930078650652025538100910035351758430088215716098468204983519226484079477484074545355948348220510401422675046963706866143079614801639808388545180869622184446922684688249456041390023856153791015593620552808962758892282152093673464883304485637057639164105824906917839519360762745165364616487323035651769099037916852947812793162591791483227293304676376204407373653349964672169739831623290239622978428957903322176496018230075088381407039417102176497771255838903648161927979461571041814406439790569506211034902095891071502276744911420718609498785857508151432356157488036264359716641339675947514430070396378615924420445696974916904610124451409885755162436675096127006925945945036561065011095397136200474359405732586507685840261863262901827742602914202473460583558262519351294587413833627486775314496731145869859479477263578239007836694166122379790940588286018933783233475730282478825851211575041705688599267860430843034741787692944068457861495241504243004127812696296765500752042960198876473571553234875211873483130163202189651721342143494866031322225774820001733901943447988338581701337337576218131697691691614565913868264165386708527942593847040248255803195425917382851540199394843317793551167748119481481150423714359895340595325161580113553429189717598215531494150780334759833237378666818472201361981799305760461327626839816233001825181892003009167886360633849914144701435600050233171896820385563706770551523773551088883404228282533801321344219364257431983533982265645777474432169587929494174684556639023500600311846698381126414843779170606940646306166181665551616526993628043439016663219793746744404972224049235450565518799772021223912311649710640367294787120075723714106896988021342990575703323528390067813698617315235903593625825519581527641453402706473710229191467045279607894340312522798621456528953192024840402150459287314084007242980034625533970276463766733174845748442813418478493653454443650515944217099027256157926072242461778372719219361107905873298868041828172047013424190019928895460612263285807115979975541020419018205809961616960155097617682727935218054919841367830510278458401945200486244958529873745126320210407081207805433070434823313999896251203127145801572775092027448887860716468702427895492179094748136036283948307649813621156947790949047862113273665617631468350138102350984977110437056259600087626403532306220732420336315571955381518486290840982098225455019505187630301359806770059108934298520176348511778099085177191842799282893452085943802694586618126424894486447232390682831736084776820507037507783823810822212496597424254699801749490086441400377868029342613329853188189581024362275034629923508008064921728557156131835862672159592039702387369858665157697899214893101703236947967441481580651026686151294042087539538357358141673015356561030972710722500987117119361687803553052657409666300507716194667044916214027610790425176715478466403981960285194601940220522402281155613980733424661654504226860117791372918634911538185209378749794484959217171962367136378520406178651160294166131840286449200651059924451574048632095001323156701670693733049142472574089003687412344124684545941667525261698412367791841482126299482032426009687674387315397080857591696081411243463067007891290518670640217255412791238580059361365101524339321840003807575985473554611409937971377511187378339391866026171411871436658734256889237056557316333111140554296193878200468690727913801214544442986932980473074875346954481258206380012020061052855722828696900373638670276373274866184443636667666738066525294230614546301202545406940602979938299388625080885652034848963860968512274271864554671897211769517430209860396510321934913107715635131048875115834833758228770352092032403541778770425569549676946669570437304441066220499129852876443101500281731701578888613848844519586150236132470242143566198747533871694448940441878589676815535377219535983830715311431358762653705692623108149428087991441356890557880708350007906828443216256633140918668133849134848003295010750415580371441544600864579999277455175364897460897900090957985484069616090488998688575317284985292039247624247878734202051159754550893363551002209960264206534288680728969264317752199158525410764457925119718372316502432150597473948088833034026409096540912244962791391287331316241381765433345164243832300017019526398201205985569122909763913884817989564574328371113123971829540957312969552883594153678286011880696363424369370543841831854143130936780283491134326088533444455440166727948271703457693555123950387525293069553461972506993606244852758616069026196642459891558597163454195955500613336710711404451873560465636721239757517554434784079652990445617219835801203871915420753914285466177573425780790460084141701734066421645170470397289241920560405928658904644579470442318242401725129759363207966466098134401615789297796941656074528536541103168387008763199692703183628355702176379986669577211706302368537760172463253071770814161458337289105540904727711080953295730250175234850867455087562772063289382727662680555920693326546315377987069343554620750545456838479378539323144045714476819251294084100244477317039951693861745867079524203679764022394536635614313924332544451318297573933923443395066702737569066139519345424122374800278213330335261263158579071240805908677319731810920294027639705480509556589337038331419780369111878868142385218148409503176505559373374168037383572688872587194358798730652040579375138321680713024547323978005624648234220097549553760674490479411799570489787302773644674251351402171454000639421250964136127298501175319070339788885150447113107710207203464986621335397301257937116558540697264183787737299054028978317462534188187665868518588330744243173125369864398797727107649578854030707414256559686501759772501289367361859501910775676497439307367450969626873104358670815297658041171837560006076087790119133931175457106871813188750552246715790776066508857916181001065578563578710320778583943776220758455127374763796936298798131633053842880225383737214707862434637730448815660197803227414634639828623537927243231478737079761646930658144327363176153521372678397151811924666345262865327070937854740964368740883942345510744738652352514572566005978198425970190116720600739056515620821404687950221934537985625773808865254106163202555443271720906202416356112143797354241114274899976126714819117927569069246806042243855115052129405595292094219037398466338898936998539756665966068850740059173862732448979900425019011085477554527116636284699406428138806785415650842855131395415555353439840331680723950128609090952010948271623937821769013729595711394978809706607055982945135781571334224795936571762107439609659352030479351885141024358652992480226644092101253164016718494251580875943669998055401190241797316301686597995511048457258496575319903646454456547568557577751570091844165354539776081437910725652083660036414820453860347670828596257206679747795075747764426979106645798569007791702263265146415118254131037869724589073838348769622258326046756292965342158210768212746433278742526117196666835023200623477586969944066098069756988152208837234378622129596204482205913371208395263364315868575092306616060097758963023010916188439400926972015073828189828037660331458061627362609566640895689559683237634663089317621350243220089460871843667682955333615030945738957809146989120108459639540131876746201340659323595394196714494486858237549159240892841975043851025701578480704233465883663589440877438642396808793825253854061455541478249771535633991800634632778634862219182570577421835548332802209100297687217025356306852814420249684243095601508576249161599415979296066549001899679509835214875016278058875019376101610842205071520076724169392470324500552748448682803035635847556851361178811265824465224074552976131600791237602938440696088366304506099599132701941113979599948816066638299911575988464023491032827582105891141988561178388757440899744669384290619866410183024526515229805469399629283047032356668832671080057383387023414326207508803177809556776129604846522012387930129980287861196414322241661199979731918707697822478241716438372580831046068719558225885386902887484567614563163982438846081167429254787507145055553895145536085756295870346405807966342980338046013840959263892910249947099484087493865075736207023444430819946691375619855511288097398974081567127457481693535553000759764408104825808700735627111601128361954848789491888401399854206878093493856028043997106360296505515159393615115287202590822523501407034477243039790999885107233702780724098303478971300327522585195610646300479022520983556300570889342839136891483739650236101325200332693053577946252050336241343857402885532607027181343478331307028672804667857507347837955122660822596009011298096440864602255585398363924679137784849544365494511912210930603806880840169191642429832389173705988687050865759069925624668308027066416376154426410448991923812031656525261702440788249479766191739412698585561273473309757011764212809765357250807109273969282348243054886022323256245657882205601485993118344697066652067249552221052298816213596083807068979486999875670537327889892760341605544814920368603557017879321295148868817966226904292226348412552877825734315553891319416668970979157645450675992640643658170765885130917748696611146214369791654787928372926238494444082043594970951843103879350082062316180679630785909615218629177308843859889964399621095710527234786073580319977387164570569444417211503498612894709843904301649938710661177377220359379022300823128295476824694667212189967391646857254530573937730810670511722816572342960392762120209330573509419176326202884020488507099010300643176252399228915379983913808392468901035609896909967867140994834321115220974615509684837942072926745689314034000402762225430695632089788492439819139816842031329391867530696973353546397351184643051949670059884354616708254595295820063299605947611261580443509396270598955739987554239075537774405569053111374119553821560169588289432027688749118393879582137728031193232144876009712920389548972214255019698493632656568970284036230579185736536864441209133472958296514076238346426744158333986550708672064303862819613250738717839045254253533461397610752517629365636773441479098256799188792659663166723277016735708488121985154008495862051239320289768474123837426380213203015966097559099641435410443181702132549495850669799386111264926653489823157320336703869451918740858112591839301371901833697415219797874409320260657566490573005245799120401813904353138402594024785040569693153633426110552030139337077414742332540831091739308678599564185632848095314780152922808463192324822388315701391681028274961693749593431077783096028080358103415646732813734106952603935378373882399879312067147399608294563481611412915414964408780564800348099963175685882406491200222488603629946337005327595867368882333143955915417287189165704297566785109943609500658591010905266204664346945914618442008895747702822823278772742930596789948474858460530633178968870552360326586450475949896569678393097633244806236228566237084588231315756215938284113706720213614571301948715754956968756753963423959741168709966471281203666254930203607697628726823339673431111852419242176013206905713636640911958072287327715585854427623705945117550741413057732775662249809956941522493940875417500611334989608907653110922841655104691104194174480716859434664287690340343531590719999007305481796860344612648082201171813173932562343005163983293645039377093487710460714160860359647435627313308823574903628038299682778159613134953575188588116368143322096244713930043212747278353246954204647066324572191650600533223932864859747784661303226986718065195387591566073842991811669358252719616048544519344574331319064096274758404892821356210683251176709802254269671341804697704420949990591111567133660510783528400703492434858823976105686444207284972675783677465567760374305684740193327107538424836256489112098615127669947977453127764116502189739358891597664198614570623837061758134546900852888437540157180215796518383191829238804995018744600737453702973052906726495960172626957810997404799148989396213701825936630492008571962998208340979922581436444732924073187287095284156826181338319032351412964473374212877009436248756910593939788808928882282665634577585093047571799271668585630117486012740342686635947080917924905966359282554080043679533537240670009131181983976284406607393963579995380769502780052451467938919436578182727957841621115239376015885271068805126280059287749129550722343070567258128253598047169785474629102153549652841913532390578695524027861860148739855934417598458777806285401832694135198466723724529255789735378302296717990925694637623950358333980970689046134813209712814025987812553315751217198525804724549743648244142254901669093214537478182176842422006178719485786541452015859566096106932437074368234396779937494055819183759533454534493955812670458162042738133877731143394547866658439526501621619613739245769503895503238365692762579633534618007974428182073842802886377709676651795279848226137905057418136157630066229436011934189625042970850433459689294823765542456112172891694919064373019860883423449949928463445544051399925679342760756032184832120917520513153161663604771823753488651834118421740002208770361291975584935395212098962159241681507811216132613236613047428433140259971170583103464570906186493266221073313876244672363242605834044978590451491858206232675681742415098833740432164092485929246850445543193497924907360918977032598697594550881292032316887182807309564189253958180605313818098784003269184665972309901098977546446764163340887181658850165460952892344067878330790751030868518658994522438176981867841016345992684485374367719399806582435683699806977843100419348713259666435122063777712261587146174847879410043009685272842082387704246600550298335025097993586071786221401286877117774854672148704885686253028354712530069175471138534991744037417528769754957461464279153169107464776182958431215141560996545260172460510823286966928907264430947770564182641554936860192955890641991019849174785012729624108092190283117833368408502169521070477211220027837280749018098339964702327465723081614385582622415044277070837037405791355239156644014638080059694146864406486705792701767064108718518465668318177845379523685497004269332282836389823062519294567548393870254080673218570748237027427223872673019064383139936398461047993585248250085966144941625292546727520441814741626960105690382216788238266602964997628384556752603494618328207328785343399163131712963148210249767305885390887368571219069416117563614478698615445491160782890865766848873227755100328829707318605338277740902718908629891979403913511032471915813009550558636982308348464082788614460347932906021858496167854648537596371307944773220300192832906686738392063088846763603283467769639174990869556088673095267590088821786113524541680553438736868561858671041334093602005082818604662296939801750629333790886036380673537401724108958210128085808600933924329763762606341898877863778141484460440582945140766862286431779519932993292037042714086486854452415026894689239591005431209591652417021159991630439218663227448703955868097359446585217733078049307769987995012303682265206940270355510878847902558079483170236278137050391470876513054596472606414140447667327965428006327563743899385360977064167440140496220627608968963313351326995210791535811133421414920732374694215356049580385663337685627762684083397544143158081630343997649226697775210845373443088602529224517155311800011543108326873651375656614859343628391718254626332572007902977312161093403067353848767657287054654453874218911209176186290386401337673056994607709269150866342698691561780213602688936718452255077944631406852361297209502867448899280802637937975024912348798990575311902924270243859093039432440928365127541191846570131374205018952816627813598728694559529512843480958226744477014533374079855098345293217037270232714227147819411394500827069674987562135017496056562082009616238537542382450240183739573892885317738346339596328367747646689985332400620604069338331698184981252307319532255862372818591205170404443020316884698212578541829723521806525447043376931464262880171039802149544574683456228645569844581314450986548364697286256508832402601544473073636003231847557009752237691588443080708667938521826408227015578149625212218149228450000811250675952190341825972569649525519814276202957044739890981907352093705297425416722074660045465885418642696147857158863318843863854817042655960983582954769393834201429546615139731501377987360856183897054325194516554732509189583158473182963606141109905249514732702108994348340826451961841612619399413808273292869869364711804177078390555904497990243062326402180664035291292938777539986080071377236029172013898258298388192602747590734385001456721763365401023957085411984849666737527828907133374265295954255165291603831381269766607346176072698585981786367474318016034060621113806942258108611752475052058781891737204511940345070068761722251839827382068819563984029241846472112654682713528459701268416624674520931811234503513606882330785661446483374269738184901506151734746603163012433729020040960821993854049734823259529847602144344384120302391171500632439669024492967823109007487657043203409115041594876889730516363158842675556384991523287123818040810026795742606051134817039289026275962066017311881490525641160946381017199448178598445184560052806602914681956665197013243653827900952685729972119486841807912636568346598751180294177660271948750491368997986194203504882903207704497433153993903502567726073122520282450487842498896495345260067306148146951170649803181174929749106235894024576963525705884036198074395754434724808527498251545058362057330595779276571355756347453085269298668252231788573046763287554596515229492019844564636697227117356098972438585283372560131129371320739180782379582138718506972574493643578296257658422041667132273058058001619011426932151115756218591240932553542035504132822887548767078075069815684014446371617112349686532178149186013874589100498991186686455885241595995674518266071765627130101039481325808134911184208817398614122751544989615644384600929053894680463165449102210469573776303573023319203532373914658600039807487754130475676042255918199388603044381178302912771457446996363062094458774819715464634517667928344752868569872496106629684411875576511049902395999696786405766555218966393973967021479166210552915874125652094995612555405823851818064229271331046417720989070379382498365526843249840788571918786774868686255291573127470491240142622908241152315750763234127920266585066001512043508062604798977488324858233237818743559217773723005538931151810848725280003515870686649643769708062765221677594986547612339234155367787603278131217636016396309871490874039785192135105681269913830695824914877226644240845104404116526625588072355331351690423272702138620627741402636913618146559638273195495236707031655693070676993106399207659068189542507184052126445233419059507008820390766432174097896814127292070811845835295492340746492016877017679034313077798201034360853274192841024705421941884215935410448687519197895329728565770868352167307172038039953207335104974589895989411319575363324046269580914605404495980338739270662246594813462084304337119120538593318072186062820211905214187020976578047285839352980359861676930283086351605406429981147698858215317296930021254368071184919238085017394955478139561687327713982688883996274953963333641162892142376539026381089397411699907303586084305880424143641326482625550663570079217611652280145236153077650603859668129882902336748766833110383597272139305160618170492133663229501383994874069152631374274404381443267987299159883975280634251367968892850714897476944801448226789059266469008601740612459866378791994338728965877481697023182406347877383305038423476096652488138979381828882923909851712712834836044740088228427254123432343909235115377393807318776512186061018697970361285662068532372650843511006729815706512714310074209862698277509933824196566640896360997393466442819370935910002824364775986343568472882977585849399307994097900511044542823504045007163164523196766628427352755717890926190989588520396659807778703647573609251602538272664901411580407881774549030235135296543795692123603556791701554980645103958060228274836181325649873923358191910878396084140417194228839039078895185091137778304489033847092521653186515534077282672959062685827930966930041703107001688197613375660189964943663731278421414797948396814991819947576070113941093600478117111684088328910815685876002825290471753859080305786591592058904828076163318102708028507586419975377361232085535705984485699773602138231287732760356850933567950455991937665562694777970062476226896392585351173118054046318858182044002548149175752872944374512854219254578148474135849364697983991551284159308653038654066685561863684354383154899259543093422389035067640005341392088279073478265100479604670571592492939931475414618897489399417979418748150355554368746484422649028040633285239814568401528070754993632848272856837501140532687045758167065233206470041101863170858348809497684514136823937335102552846640991299686970116761638927995937769436615445470419207028719152107481983951229960573976489854049750036607505902102359619899237852716432244033428796340311175538461204579422763716323620448495516898306639182554063063657587075386840474140449752319898338377321661008170527394596036493693814565380003146675738883810826298827431328159547027960246955869100460950235504694148173889469510669098898670234987548030431948205795612205069906195143926184588282529977496131472223336588027968731697663816495291393093481852993793141986734426992595088741721537456327493901507126946740788588299197622004643173960784024176805165731641481580001947979501954190363336862283979255302446768346849868389329751661113196012856308061631920745463457861628282445833628367864442250350177910138698196786995633660137466250438249335750266078565009356238524341557476130262956755174786214614401659678315808771658698706259564698667960100878912562093209796636335389866230045791829255739541064613885152416449228163987446539632191327181344677643342017721515505477738526127053714181443565710929585288520243344370985964260205409588639450790852760471388547086624371856939322826502068460420989826528912318455476233968992697669027573303914246510743910161391543169565980098733444518225338882795488414796779278855341341273291856904710650529997724138520463095443147349378242400210942749948425853917567558721018003688080818567840545464829714372458294728838052442538145577338118191190282666635984081641498073403066167140667950970207596014230989995686342572226111635351591049922268002615900601845050441853244194917118215852708779984365266540454385419368040999795772793918240235181503819072515182255017048832600918647147571040000591858966034343358424795192711414930020946768719343713442356571864891186225736539185404138070811204920899503784683138405782919501764736620953772756732257225669793095590899048384056819529873117761415376673852445894816722583107468062291190011809607790396414842327061500223632565770414562622477835225845300636670249407468454171881615861143613114735318125315860547283498690263740774542038191967109487605996096313760645038223104803073848939520502899443847595347811383649149239196445729072849627210038107689763124235538003129313404126461749917448642116980656520709989976464911061027693985572280246633224315368307044715398195419123574466407162730667569454734937405021750864516905167541810702404182261652478122168212293417171324366080774118719167370961074409814177100887412104285757185620965658051732097526167696353554191321425839606648497973560234305396673264806119504473939762345955286473304056020968647924462668277632340129973273278284235605259434163918690929589158695735161413226058452350644886924159448059227745654297432312083093665724803923525137744813164016772483365638318571443230762200228754184770160214598390130237002595346418063414641795203754390506484371755242034779350446018991877098142791059876035913741592616339656204446384252903749160757430130215146011583772817676249610876052058471541775046056921793030833310534310113394149585365033767827270050499458051368726353176780372767442201072178209396598047968450125331058828670673320116711097246720420627964045883088746280074995827814269538263405126678382486534448808937711197498513650412471294038895838806027168653424752842080112691999792582990834661436560693098692462449693948884711538639464857570650649131267807465079746029069753755099241281041887461627878757759384423567705952598865901322910081793038203110137523583883985222052061482498868791783700703864158013132060054982367532233406725897354718905686403767150510000456686613945365440913852019560629126395933544955183165457176497835468169173384637686390936414976676246297219233324377154277852401161708443751489448821178834432232784431102300615394913769762191959424000410727484048724041570956264346016971623058293561418953912303675602424612786291963478551204282988542990651367200598193807718586276571645433582160001270674442297018765160471976576581664693072051196581107621662422421196103613047175124455931297543134396284960481129749982656536014334579491970518476453486837830223445153470416780246479552911311601706368021152596156278577058206139644893311944480491310203046181979672559009504958581287264503392976266648402122145950902150646768089468924502257699285358908611388887948980526608419897460154104652636266902607086505565169284411768132453442733308105722691786432745016961614443678362071533576501905772273963682260329270536033828337675656397186987922674246161333917299962694936087182420780033051082048990706858198089382359049378945332318902057242451938580685578422644187460109900325462228349888434548272630594505411389612977260703845471934463338935192084367128380949772422180373277447173748389734231764301936052450707143470814828031484590066251154937049715574044331069002164239835579929822890576300179676111739913227107671040214002712075229520223752800948015045584033661747411424805063075685470448900627422747580112769082959339260876953592559439281898802365809921798279516395266750513643985278383344539194208182292773677737378070586859381601540810113635295639893314327318350156195136949069996961707930739344524346458293470337320169051081391552092413717363129186907522452797381302236748019248469745691143385970947735280334176111222134865406942424969272674441741268020599454399339303793352120460212276318693248376752736826202048173103868841644161486179669308952675949146055935329972247811758626396832269912543319440071617430696367699664174234560027768120667846019575040775527935385053410118923461751479988955922849159203800424738351608279750917398230030390246861199214438073195547724839105775091427708736624194527650677843812927074702952192982331759143083491097469683866600283220462348801239498490516763412085069184838409276679146305342789702081453857947942519371226363126772252895701949879686177122870033136637320369990403603019492908104677236889521260220234802311096018098798544909769334181064503214090129314817603266460888529357603144482924193057709515329994292383420245974505050599847023132939205695863990999834578601754829269732145211860004717388384055025109199624020285408560006074926305390679301525861082176836546799819375047964398219752617140700196888885479256196981533073612334778902199791523994737621742358484751479594227416501377844542574754691257310001598360577651936691115301922897090803097032849173891207989939541314518975641453252797233965550581114828734030757782652706421597260135895931987786332962366612180983735897008928245438171487609138329594228513345041469604907415701866253372893687637120761579629327781988818856023953170192038677605326299223653567360462120081779781027264660260999628134593881901361351573136189360168650133383476472029923192911605945437553629978514409441248356813501236186968364178975183467521265929225328498397218438522894590700705472329729269371305653084031583755446311122853165553745608243207417674806766275492532167624169489477783661451035214027992767437434199996541836901743238488763404549481406411577664099129912498074087153396594535651510484696689497094917758346370802322614158250176710138453886877358699833126018220402376472328589960508872044363069305639151684306562439314338717294027141070879794540102392626830628921748004990216701240350599461433088752035121398040766974898445873615056976200777619453277665746197701656178083641066237017612219458150097177286289898296095205275673718998549158710946500151454581363490667947656387354644082764307064229240660752732864642964382848630217214230291081858475715805076170876865954940030099374446694334875514216876005278602679386109297067439639064218261457595498359574913754617434097699847348822180044935923528149748998509531536778245144330714412861104868356158668731623487364326724508578005486462220375734470717171421163301757853998065020379425223356633900372972521048261712097966885792753242556699790160591146568440695486112227982502943205876672543575803178151353330859218754078537295968600081921542240412821549397740624145521007014532213620878990087293170357897164678148271400451758443468172857133139626227421089391362645292232940690257918111305205707850887937855332725400412972770874665859645139409311896332715265093969815232708079567526503885972242704186039505516634366355742890833626032929362604033483070294318576837297191629059177596858385390048373879943239258690092363360541271475658745669830236034404584659948433636632431990435538476884669756181670591897598068166478055822831241799670964867812676333675192025862354504710227013057834058030716077807299152993960735987039217927882023723336050654174141105604654858419659352790463695924681871287798169742363717803620097663225060323321215749060556993206187878992138536524704353332893577596106331104197290546661520987992546212432798761847097258593215112072391689061560492190213871926386705581762091992213425023334497671496819348588419219208752526629567840195786150824823398062184107720027456998748832101943737222916083994553493767318175500030721130220896613571054196273553880445468628155213623512160162504672311426379677590284096719482897340597745435967246196271317080111494855270642775143211746964501646034346818668520393897151698502738300141096217713849332561954787931780536923779823265736615858616179527817504898579742950997297869047494545673563004880486028840652827523602936681604745622679708440490420172468570637596968421740591809162226981122318168262534780877634194054742886165724986416357716147916738694432084407725415693072545846051592452535187592352073902769363036204023542186597058095926777279328537761848766852975178643441637830497289420200556776776517243301664575859231302718176584679062462719197783808244018097282202966194901762655360966051486647785044116671953675323957481476948221053091097704152913844261188775409331535230027901734187392505929513814391152705626887136958128358069543670339787944836224918033377579776696543164803809994488417204898932500504396875372533484519637970830229969758108577524174123674764018720048315184954104330801629654938078612737598205236329358168358076855866960199391536545650387989245604139843569316826966402210896456306578428315791949294411242872698919119312519551970894291107414786584496451461574539733571109157414272057597469442479845005069213362516328605744837886745746364007474828498637440676373662460474221256525254270654435200526697199716434795923867879482657034203439774838579461142828799299119512560915404444029231033780030705995716131308288232850346304614905329870465272443625923089238123491169191985755967157269337929189960591612956633777049231528176144537757742990525957440450356052128253271136222746189605022060305369918917773002279351796172321374610378151395013907126189987606787079218055679730680300399836297738102535340615559523135338376871137663019031524685773644802386145872243741541861423044570249933310614455093442768019779221927905721054742118391579402476791748749344438652968772522029153925391212949991421498161909377349374495928097350959973081885367371358556450046551002520678607926674010673339691645142190601252579928750168470709476912825704019516675930140856469566076975538211073945748254566026183664809524171234763857959366971491721963734354194573345784414587840635676950112519826790480685643551660340003369261492292578558299695761286502464841699555571188606110981821342784530392862743852536216682202433849206810310609411397809641080156420254167330330928249509466670604980868351459182987667605103810718825255543985576303188708465710774882443480419572110664251184845616039123737141448514176415475172031239504653125680361858401038913637377790670097733396069216731932625876170445436790241067721659268153277127517191147653434714889223086442384035626357374433611475508648578362527489964968376778683174879529054812303933886872085652977074398527278921113702168304429842909862995665524167338322774144357706823138580685079368498514383355343804602785075071474822913745683347393521823486630943025496679661149463826139706874799444641664620063567320972848842036170021555945291485123907210140236726966412513671438022357538204677048945074993522114923698065430816322823586808401911869263036546985017692435020604172633475590218308224630540154293502079556727184040707848907545726853066980790485796256638016045206955928463145976831362229260723030369006438739241884207454247290022971556401416373645208213357685234664094883520506004980383036140672829912350175035002952660393018420007989309338581080977194443093174502721077808753254400181533042635328707245794848995445855231135227731897109770043288831892925129739918401975136731215338856112828597319960344502618264937516863125195976180549237306070588190253662187354200250108432622047296665849731315589195525982326522743605907045062945304778256268355535442980894656374855686944884054725616587354478913516665002310095226158010326823388551898571115548718127182301023330893645481593751157775283452776302029341055113158021679411315754977282163175687329234672743629290315913232953755528468358902181085619580742652424980821559564937361318283726701645352859350223464509923395915888837529815466257804413187192828497943791277361929527208564193411855772078297771349845120733804051512976109413120266028128440935114687672762349785892334349438157601052928309533280731624964619450477633302086969444758402723538661095251866054605212368335359805790156363945033032368312163870375297379507666266935486077036616431568005356006819163377411973846322790855068978889218951826319531659179663585788872782303752493026000995813474395591391349379069355162511946890484254157004764256936536073635947534068249366989533227842913328876494930532091110833691569917661340392312154878435866745381431980597137785826550862516662940176937700778747794386832210295238317508797006213354574052236878528991739709099167246644802799102237329651956945683363445103357603577658712424239059792749353955169513157022106986947742156016918424784165289194330088642051698313770252539664277085536115508950093834988137589759163243012858087949619148893020033632671000299185367894243593740015534585724230439565832606810470711168508966455925611728920149363912354316674848858435970255757722800667458047240339428429763185796018288252395547606540833718956791814786852489106140269485050577739825885218882610619248158939154265594530701894259470046549200490017713994720788195293063541576186802414446205193648806195870979551850572820048027517085959710300154213540163584304225977756127187262559355745515529437054444572722545379663532148430332171306329785377566588931886691532433516894744889126771752300686692918454791489715745397910107915528827689408603116326173926527394653578882730323364927907435819867318665716933494787955538414247359781371258693717137876434483471171462433406654661036813546067525268964594052430471584666153065506277634738165241027929816888632294447254887969535006668367297944465635019829696783134514577757573160679968563798252582890812518388137874141948866636710244724015336766481882460046196684077346086623350388275255377425104076725041421819860518812635451487986362331680746873286103004763464655601029991402941386838567036681672975217655397327991942453654995713457068528960416963095688115350931972771670415436417436468320527635065756443970106637085991127153092566306645591559358663229634699625700381832722590874727377330626842092751789156389741754702848885182421302912228418539001238863961820345527616309351638494651533464328985115868604460289281716676293555521450264949269002661569575279218627347752517210291169965575551566038653775997056278464317981020103506967552034094420650353050407303734485240186740398789240516188810145771698550039001583184188051734161353056838707418123711213449916899885671539360101665605777980196522498803485036017121714345208032701955346341174326128404360764375706886902615365587080916155518470994311222004556654328235095795416661836419433249064079613308375445202583874661989465805466709378992257278752877992486676878483296864069034646373079449436233316226642796074800682066246373527494683452942531924683935683973698356449066507944723164297137754740080579199372389965433774790957438314259514831730551568602092958353458592097666289571655235828607094649990305258826961167905790578962436881107819370006455955766096782998737966878262049232176223008209477720707252012341087788403112017059528476843169543787775726366963621075524271652107723362818514325163619632354411466592362240126300654794776079276149615521077360156651187967375102004916208151753718980149358227361435308535137594326645149456551107574785903840806863963725253329605701404966744396387142635251206683155393145684631798759464837207133229654477030596892010843585943807027587869426925259488516495108290037065938984554156606307244538298431601238249997006908033142066728946622250356256627884453531218030961525964184852218290863766660029006809907133618861051782627781343126999575502647466294174512910020665109087337383378759104389065119815400503054974323386306674106132010999178736242874898995458151554579758937809249899252129254350147973814794065397587937866809548131051739911302064985357813787075674662037965741420278052017007501218083985052931557276708910205237090835618042558935199757593890905939846865738053961289807986159506742554265114722147800738421207293362305946226149001997691904678164504135869139329842827035327260089551375670560033557719984842008591384596406450340815559598552360961969060000775304998323930495193545678156451987575813196698817190321741136121323037043686505728230425345748206400418633508797925585974292152856713234238517375544498915088646317884422896521332610965654943954195558647666730467142633510373264109530241074921749479450464245929700698243599386953395517752031386547905463597521929548203663650626430695261687496986470758528445316612925970213867560820027344589104699322975328238036044827893137515597973413966302691259453297666335781899776230166585396459988999526536158454217616123556582080386841705544541952510813634103629005294360188707033176747065503225992411296706326697961671520693584887567758505901733422492066221011789201342695703069539790898532749120873121626478259503560852388478910704170845624995274918102360989867163919476218229440553641577370972647946360649045472102047009462644163424545580995597274765460250191626661452467820335718121419036150634578468307831010702118803887265537538028636410437321950866399891849250950079748106142490041803393240005655993106383412840953644832783896495456925973623071062797586874069750822938523889775184854945523549977836134779525554804190191223641354894831782849261283442111400761299907076108601326787127185881479220785634421640675005482102847797334117865284893734845366225527908227140096027248384843147266594441042496117019860167985753581616009217434988035143085727904059915011244570070667665727140900976630287321047442693015136010076107597503694391593870040795351577552839226556736820102085147865789315406057485420798333447728059249776841068997433414966768942140686051648889144054068240771665951575519429791933089247322146316872902727378193652135424985502221078392590120184038400666747777426604661267117582551246050445599613734177709855297611677528005949936170969630986194716482622407162933912716446591422926758356171724462772877984545115407347210146289977266821107279228179594442214967453372321538541887990210626681147574098123478124576349536597443900949637315466919370902251971852666923018544871381911363757360553174931395775243399341845669548935230299276700749104427275432327667482326213026929146204629101736455701679640053201652575278531974758117689827137518162818933442822250578365828657631726211529234455245072169729812150774869545383451141040535460621570269307433364675573522485405257614730309535699754713405196597962261596662875107153497692436987508793816417750281085887414249967628947437947920756775146208043451069333727630146708300213696863312713907226051976132688826634774278449182668456149232616456483329059653110208519947855587725266711025268682731636876109243721307039947650855524183877621431159620667744648825659351628025952731208066401825556464590638568926327657044835332887203094376172721522529420164270854550765860567594009893597443921176242533124624642709480828308210897259430810689861853141726522317732819289116512675048256923915127256799054733972018215248570622541974170726691912661448269407589175922965420309430243453128872269263411302296206502718318274016217357762734742732833902259642604877074568407536888489335453483259627976443296672323456606058481966390409234816711229593834099288809909557835754590518866879575467302578330557928209042294744705021720757823959704583487906136071360773441752201281568998558158238538651350700063364612826689339825496016627244148181361629090604247451400660543002249169764082936982982626880124791479866677065641005065521797242876496054365448344786966805992968181133941980660257324889960732200551978182423400960253268587251757073645078519930578191693101143774493211340661142646268990428872975399466705975215048662470395670011751444416769035596294283838397661612241042002336954942606238178823815545606840215905646665386109739212613875188327312229079972426226190363292807000429903464567521292638483699029649589354683066978396140478097809926668055348857665051759685515215572621544027824588145167494293840586887824831265931963003725560028496616438790274181973118122093169120666572435446765758126281152179434309738197916351675704212156474462603318624311910161443492800786088799772063667234173257678681004183256779522891289250049961540901790871228075293595740117680517227540723344151280842570656014300938186112395478205346016639901305497758290819671796133385844006801625947799933223865292408498730723787187524435445587823470995740601604259040017646320535682944185968648979842677632600670000469929378492043842323433322524034799945224899220698364966168513314696185789984702485541055654835943654006411064772065628911169352351167778885752366115024080289461741885734685672503164400390956122444689336304662600391848135137081758324587180926030757806212636480631903780429758958312429744842660550359718296352136333085019238073153778575622170337931355594974993849933098751000567958505799535225795427357894433948624690801858434998196040887192705729107984632484619637428159672297667639247880813257941422130933830798316464174696457822808797456292459853558557914077136785884811067525134754099036348501095604289961295228735991299466310994764104582005639951057034024863907418573470516391087166496560570327791851666859602142319123622535765581260310407007371371495331796978496699808982577658978697773048651367665798897736595111124688309306290421577253618850226241994142739149483548578065941996326118744698739953145240533171739640644221155627355665433473606717199236574316267128895170258929844671849977910238107051768718135206088405828051159987327266066458481481769001423144961584330729165003708700725883148912368978732797994677507824613581024537937001270862254243341999467733014808026500430237751110510211118863926248191120375000818215534199143272815492932773274804688856598225691619403367428439922354274057947696363690168727831997766449532710236347746286930273905825539338050956172989332256680294338950588505685698405725166277497210565381921630202246554290198252478922960591051692889679912533959048078727877714222833173216533621986428331736187029033812205058541573918786313557594471308327235845314008642975837202409396412622729662471328497336331671477567580558477304146780929711881842534792940803724346817644123160534418541967548050653317514683760299680626716484149480959013989411650085570531273427532010431998716626722829531110247738264246450065045299209714598920709620084062360961574127388990535156624291953599147115686420354518885263975319619266228192572646888995894764527958001046102943447651834440098381536862759857366171360001374686309073280217394453560778919166868707961511895468257971062258863096523795038123668897167104061382980616263936956907685411569189619066016547532349879060685036590410231140230834222986454293118986292207488803678233604751922517111887079789650123596330094412797564828699506946246487902687168789647618319949726417706105789597507622698225942054380236315685797549745800148917234619825782530348659360887498191575058863134694833754432864050759781334448397206814504187032763425889170095285976522850714554192921214039996996063501875655491344027090179847568102631248805969854412531440312577520651804080989990318937555290672438673943547929988175605353094122400890306700508828821161914370165358088594260524100456906093945366659770334830199823713822917389059335960586417765001574911286352358189352030850215387144222342372302311828260246135863873441594723547874315895527623178625071749792381042658337931956687286281578252350784673560058047440705490550565339200147599444694652981777142630832299080687549093904000600912460060299907895264650451281973072523070253551860417050152545727906909229156974251081102910553484083330736218240503832501094790534037122786051879031102404069271511117943158658868570970453005332616658358978563152566080506887427809030205808951030094393072870934478859271582290494455735864835102102145086074528739928349258935830466705685545254528544697916188478130775481108057363520588892435543606722413827466205042180052962856212583120228681174197150522939837664847442541100444544819077328073406472050930000779763873016894764231656792079928949340328297692927155511277114856299089451906674118162383825880448741942331335973585569982906221987715207495572920803901775895282412449583496200195802328094575995840378585957604314871518875625593812601749449624993134101058541236356997943879032173430064927063048169016194241400967630366610955059475587885609253587295163416363162829118840064739334206151463579950515196569208435259504838271459390409974113104609443954484062855300774738650607241608565996789403898264313585076224193550201576290680453796903587905052289433192810714894440877344195673624647432102559303096558372364997494578177292254511782420174067311558185959891084058760740635171388038553865131460050724109655656966721585621167914380827317834817136249911815385688293205425141083746678861333093048290825762135488557635922060106391600967425603069156895420875287504612612522549505646441792073180803361971654507263484227066604357846547758774118627274554268200475886573389438532894859301109035015489029848531993276254629415749184327687394682316019229521540229831707253482211632715163714527147772131618405839938902599927139889098094281629043297343629181109828716285625364229009618168614403781166106653383832672554192933582129061446201846376043351023413650818723722730401752932707636468031713123867874763561012862658094145588750123135689713011354079347920676862951235699784203632425403778393473131953407770937967056516923638799234624889909282162768522785624216521992803089568660126065995927147413956333112801966413852259130166498319304814545399415788191862450866946367273873163615397408587053969602793876871215231075047354019906857223624593510815142747106849955955401033832041396792333680353177839354005311896793209224475460298255625096186927339754819714944217286190723018376428288364459996872374751493767984947648508505565076699342602999393842197181812081293977625545906462503342426140026606350899559778488709532748728854042965561611166269604013878573805823270767503248932529068675248446609909046930562243431221106326719358453974044834920202527060293313696685255999373172687713157933915374378171080014422036676782823273988206274426706985482227123869020089039777641659442030928108177261428530742851301031316635107682427313114655747098473028655110477268231986565480265278879160226362361831871868411836711910741774740601071976146010524912929656861671692775622248331284451295309620837867616785494566374002022762345799427064748084512336763115961811122004469905792703695613611327837224288702062897293087594316822908759959144366134756662294112569940421205049422851292738273048819051225523703998680257303537326268143659463076364212508835319657584532803872457390042629952380141774719030315850433648490942979100190997521707450378607960330056443832595506999040872286054051289627656252450721384551805143170540661739722449165276247150171312747812884270712375667780348289542822336553453890833309017862019481047611542137807262225387602517103221070491127497787250328847298311468605495066429837526496622186201404739965494674506710530705273672537480473037862598312037794217127545488100759141724170095718168208031317800622443371170862525910655838810334183972742730024160140984681889185685618489069713106194459250266661776037911727010312627115042241955946553850362209102174582610942054459523967218286161863638129633660627150448541272983777050239108808642769753510366499860053461764107004194637103638715680803259657353554533614185040659026415766915884472089988967022018790945357680824670246004922176545248494667428953084421464223037880988185287327588385760626845197356767788688279386416395568659181445248443809669419774363553230438115483144853502237337785624415496814257642147814037526932351024806368510868990760114626202187135331250202414220850497418808700717300185048125529923576989406845535620452463150871856508311339211454636773958715515896784643446485251133933104240538591536754580471911961577831484222806200683128048794690761263106262259729870006855632821328817343059620172455181431570194863595486101388051728019651104943844131276261649559576939921314600464628418619753490515919823533393030246185178022409346005922071638535063179298053718364068920277580922237829227982275038737461034102792621355188799358984015504112911346027712919703831741960570201749035160646745606703782657853239737869645178857511630751163341827233326824080708844979926679235817079642624994252392578903042177489142211224221678929066099335116193576720131614665808159453517870364287844206677850565781603568104138789431047481853141867772133215205883100060125480788587597925201309921589545808377557408336067874543534615838219371603764942742645256068830329144542307736184382891290144181278432666946068642597557126122061390368224112391215282569985618851784406324130381607279234759015263605904221575476591741295440573066759658410708523621145673761175188488153844441018140227960333913698687399960935725520619656279669437561789860078908773254893320173984542384502150521991831013371856670112042192692475732490060722706888679175831994359883084553829480067721235023282944010417692653925640278332667331650730066178559803305858912356866749376703263451649987496413218785996192527782483031108790640454959609806167026751019506870835578534100372529679624066140663759725683210127832657781743167659097698465096226145328230352487237897779289428234695296514893614820062659057758406383809852118147732332824739844886809288805956984979130394454142724376916796750556933288208382016104746201992354242220128802415716636810666361701206837418715484875699474042632992196813981016240039764225718324855326511718439874864098652256136395703725429381084946881094454767243617247135117482900594693037565961923052842572237054480235489661372434586103917637490864940513342302369953754519429189673606553945797269067832487754561372163180708297842212345836380382399918544095897782656075982756838025657112276412331219677570998164373564630519736790570685602710099112597062813418326334594675632767097880389718888337923111666113571970866113962606511388077277704988397375447266151659668703328672423237875830410999799196060776837176663476358334102327004618443263411370843608862352083529147203011680337931192511391025302618264373986310523011915112485782977370427777790258162684253494345898977639011734210810926645668956355843095484548870676073205642855010842976569039562013296015096206854169728456217840105861359063304594660859714831177886644090963559604731505534995772535966351509899757198473341884137449391263034646159153311202339722574179569103732595074380709977564546664286592170864688430980023017060349262388989984242454619907639493347651203211293076942886773488271499123321295284391774565186166036610297511217053312435551973421977837127140200524041444422749121717126949667269842552702233367567821781074487099328432963069012047231763109078545415990751776545814102703248939598887992591655542036364107310072504296542898318303180773920648305428146559700503296304078221094705658938452438615136252283260922633764236539362586254730112966635578207293614482954259165112949918486784805086195438681963882553454021484233643923760844355227352189153138046375505313155549875465455383039348967527555142643822847127096792558136832691875497178117840104502892621656089165631641198698348112721046008912217608844519750251290543666330907134073725981613773490294565434024907907180767427932261987935360590649761254146392844906842556666763687329315125549767742071567118385904857245013736289264745201895169732060798295717420711306677722920109846165009265165382881092069817854532206044806005266342616676048931587119878615716064520058401345845865255926802087909244936907605642962488004420871886968413238801895484718750300761777972475014428128245290999451436451883952356729906513483625808582314029078017696298939594650648159037759865039729568592932194290475856196252025946808195549475881450480092044554943302724405844583026800999703314767005022163296787600599902021065001008152834281473543022849859152011571821742627001410710328350288844420657645102545609235294124838027643547945960119070472178582128460966904151139386039643511179246555241995234080735774614432266319291372161208674446773498966937144512258259189706643650679474781358294918753674182524661121643489824672382276960985244408559892766847592769427809361958286430607534640946170634898754876139491315466483149418678091931644643710873835455083029193276120853899406204970563378710161317819593821322509383485621646246217629833724098437976439894564361098815469854395889587651767745371852932708350158012845076081878146786224107615235441640152490372244503673556055252637061317500826245429273244588668030164081057197281323956794127993849817559367330371255581966829258984555857335214301002117061556882654623579855235394786920000339625397975034392467939521478514583449537391679420508295145385009065122273624583883136798859922457366510338502965802190274499423301402499151911000950433177345569262605579576572053935770782796170877557415677663192784657434642014887172834730566653483963198606714362772483659906624449614559333429926787768471848132622159078489011431181920240527770491282512323537589265900425309677202786586588404896029540691289720174172500180962171725671476964763986695661888368010518031569587666014632598102059352228384684307220027070211909081824177646273145569057619992561093602506482191966016445016196317784636606458759817897693226516068167029897248703890823566440958351123553475044367827256980786854912093263021437476806480832271875153693754696657809992537652687068345403944315671992882202519890108722879300104135043176110387518636813292215665774748382927308079448217988287561138858716698448939661015876892649948487952747091309959386696411752355737472799907504504628314143593778367947110377069781418878148313781348960570215386310421871813643489360859371736489517854746807337301473964299783882566335243277596539615566087864547944094427718593002505055061789113066328271447056026657693123899239849125712318044441072586339838570655525295336888420552885044212197614627956749628191903270423285236165730915723203397970773670530007490819114364607552863355665135016672378318401862376873264219828512177118107259493866442618495001248110294828631350204116779704472751544225403495531158048806898170383935417845025273720747901988502687111092031590640236438631157343505557717214166659430549599111198971245823387008237709881269200602378984048808259142015522046063129149534594633728528804273740089092773734649076851896956797960967653043715923981609102863021617756366922227599334973262683776556512458662529762366789243161740224779931641856801378995739702714489231775330166263834861496648180505421592297212187306519185681234667702649466824932315989509913599101537824094213014584803072616536830414991799725638216376268062094819109109194016478593918080042163184637579441855674777955993891576234484016760857411587022779707170409344185419580189345807469794139670474600212316648204642290415968857667696338617075115338485523376436061175306427636623564195205029681025165237355604300305655145910190438896736138555490548252535009573129268373782429256422776823473959853942059591556940784812695372497878938433218997474110158063514965709624753564218814224615101267031149092259320655307510379580503496751521393572989653772644155887390227208447027509098868091967044334976887549499952025339680697626487972846868203329756486732926068764951667832227475098270679847777911704919077192016569259402869495928849564105891111611469782232335768802236487515603083506948149394917676798701841544706392560127447827375217037577179209073967402431799924016163146492823791774227420564051217151167926137859117644562481063546528356161548175946639242227357273545789392902804570487560489016885342989605698054978938779309907321727942447594371239907046706609011274377171421984648382723705461958540510704929155837860900933308437376659027042018255798070842527164041401642307969972062081024624944343801889472956687093960574054139820746351186668372178949422024027114890260798382794019501650064255039453238312511417547476085187040332851264829908935451575748123490525353190481488643635643046690433613207907436289367334727919223084036608239929899228396068778404942612599386614664295981546405674459376481596549227462512654019998546606131863788162280410610950057514519278424517162393180197313636079134627005028937637786985722171215786514007741528482260142907662126683956536330263094127971195071790548754868493423420356865191549093666650719681207096908720971374689151971010434120582415214069703515768404957758339391147604443724495083284938161196414996869350116351444410469387493776332549416263353041729529956337659541481611925952390894133727475522469550293983527102237479749939091891392034563538357744678951538148941347631848367259027774447229831474124389787762269026378463936701165663214031599836358287475791317481712494276361505022358952836994532258967477303603440742011382157594783487859578117446028890580461214276764703945022492906057944037084036145394348317769552683754532417051806828912333610599197404403695383909686642216713087558004189084036118442133810201343391621339544814903203727158132774059289442385774309276005753320146268816691067389430555126422929425546769600996855955062671231632704123848300034745180799382643568796985003210724600844919771960345169713893262029742825176995844183060019674183445145367495850337024125749986204323877876751694933863957709185240557740071851725098399948209150576505248761347134083072767275942671073622809488388584999849425488149603381484459628738028935286635159562289248732167251390982475024107684849695044661486025038862790048445665573794915537923044454719398545751678715305671602045599551235834224697462689712639502709486909753329907461675043829933980768713957476752506269975828925535723403273010907370464119778869502440614295042366696952331902937494638594666276181539233292368904894304819320741720219090002210221909319353237895811091837065672722634284650382693578512969373785787673040052639192959380349132366987719483026644780029794268979706618898907163450373081589520647503460579523165343012348572010467300887161591640807382983776193172835317150970595936091812415942744139902078255177040920638132830525484156889325251593168982814551410447127629996367231932207877142634643452644626313423814349625160451479335209141352719531080492035189617770291672688643914385576859501395377900322204818087286620020273736801771464059270182266639280375210855030474618752174961563817111530597037021954801208723019609834641049642835743161843535058117900704931941754590847160665955071372243185605912209673839193721318357401069642999257124907452818492803742652041529562395610524271686461184928075595512720615292517129660312418263312370754792568155933307688855985643984040504026730942539989844292512201490021764940822617200828236564833816524537276215457235783389273412004833999649596310877003728004048082699245922358197530074458885052532480303720628797071771005487876236105968197328631447304689143338508474323745683308547484448805834654803992927435604876556811872836908458073441792130118410721718181824014935287509489967817190540229460446037454152247699703060523739230079823000108379123705084283999563534703959822058503072780740602893873104274263825103993311094417289934676213276839723348171025772898260779679779303309670036060115140999588242813860277202967114269758360032209187176285288244101846395346859636133118221629581741837470962743308695241387262622188180196101031823194094840754609514258209276859821819006927031088546974101167896251441907303683401356277294727983401830128981159487574588652973311676710737588087032131524616630646878501913224300194094760796412203860167761830714474010976426472686017276589479128644541491453428543520243695357799632425450782172686450698872907065291303387280384484989606513234606030708953018885312103218638732423601822761940004236145175388363491707193256649834275054274657479002460327431588236093511683196089483515938823566599056806204774164919213012239833884137833005049068116398460302788461612509122809794335654731271000676402904882841735711022527525738151272472503691144733037973876660727451098978735285810547049197261663367140869538773826778181435871189608247815543269325064805070180855412397904866156700211284436536478538025259366718742614059629140812555993628303092773597176460549273226341914009510431960509793796422889571751555572699089669088211788099884037548047149057127155498161818078545170180509182690167932092485466164649147292041129129383596177246372984528423708488196429223426301749742368263875036934462559400879439196403749480359089276292253390910745502265909554165164462476195507448272940192849468467816182018185590041198291563750323733922154086214715299089463061649323752940785835470216527072698040143798419313079004277763660923438088420589059057406752400075630087312789931386833085678627698943883526540153865791220882080938080685210014517885195070897284421819290466860795272629538813717103776776508533574119309345400498468251085562580526413357352607708355983052493997170435538218542876905513802518815993952379303943477256622206846166569479617663776348784596670345575422974502590039049230873473940582979851217161518765874664429430635566376451687446661152722012002160811692054561762503350521836658662547215503110366117651908261145433860188152077245230601919981397398810751486605855956417540434357599809393033807143136669241581447456647040946036020228163944359093783403009981782687565413585362369643272279365974007292565448341493058453482729808260319071553293112607977519216192599843551824918123162036864211465579414447497932680480376432933621676525732542192106722096716551448008511944108133395102158276784732754247159472091162113199941894033199734146636023806443047686388130467458717991503090201222772009250628853806288746072829400908125561080940120364929482106938511744649817564561442632505256019281550547248563370636204789404692635706243405752700618454465668140953150461036362267855410103903583865917921695394882190185687346046257372041349298895882022642974201848345142956206506514567469845188875219649035246433383130116537526583019109076729522980088317842825689461271165136504091742575455544182015250317093682979373331162854531291476375785866006703254631251752281652118312327877994585654704674436442855482065663300788325925230732060336240504016654371935694875354874646122214947731939375205262894795817671794028468317597376115492380758726473367188099521603464695417102599174439269558210484334857405086693356870595928408621802416359993150807359298266951235236069649309822915490565744825991871890725983162131328845699503627205210271581816443003935962704065037751416338071682175971269754763443187352338191443796236432700699187154553109554092114401543891992497249377182178465608744691456666565470138994672814172469420128423861802120156016123740417991547615092410453466925789279786241742223347448776072560906406961474081137102233845278682797999381175745948277321969210034439058278041282017716454897670171489832911978622443680603393643440509068404652928025662748094954570638748817017400247636016607496391939136361672284637932537956884347754714557253766947617884401863177119465414268340115524608796473208746905027721916369261851627147277570858053223313007442252965283801758481201142001243765599393730387922086634890714941783910785491780128238240782135004935577756608902929104777158351013501964354230166577173760363252884050632380442271993236605033610606250920969761887598243478495622623148796691625595800624328381076607430358122574929700198121889345084141816022244790152932747906438231327008960510486763450765333423127429424586494671467481147446725795505432809385308004236341261898654771364318018899302598435279075121340198044538450046763004611052265685425062326505881799558320406635723550433063408790237816004686122081661020484212181034385611882497811762719112580588226968461985952495705085055250024219463323780698742676380840338921983076060557170141266094005978054080399766062288155696952632428889587893211413692746010176477110652541339961715446021934515268580938778267436419790473124591835033080976769709120292698262196025748596035459041744342691887400422055258398419766138395331421031332664469047445913707135232331602495235347497898533320641993703988579731691547176240770574586824817116855633293901704560050366772403067587523403155648612763466854115082757600011928970330521191095407552728132406926202034408618831425615743332049435341580231484959439671888354051270032352327587832411686626553527793916263615536049846478856956623845138998691459736579779693528875196064351661930139034060851552367138834498017728101673301913109261150230548709540534124212171725265414006095481723775090843076826477331842904201468148140382063843986959198343266003328497293796410159528860512575889078499465698066493562565602797288543044559381389994929559995607995051191656220671991259001686478966517437916318217716242715418917056011558194733954190936566798669929768034335276515640098697346270466086193434889438707588309229838897335745267720133361056882740752367086819932252990121987425914708219413228201010907864915842554010008665203941179995916940205484798256553871965214829580131969984273833919962463322594748634006966661783066067357082998322823669627496450050063338999814630584231188274094249293882585458490554639407206953273505615501850051137178206793568269205400141912036935843681707498184487213019837235003403639594570294683944550675149238795220441473816122385672522974935337053089501616411610527509101519985839816809117658660244735198252095076829858864019336389079104673062106273279381471535803260890140994929000388894952172120304827986796789521480936524163683586033551475074985638952816251274495040146219879934483471331256548259477886587256759624550586879532567527727766352980365750848437070333343904993517927436004137296231914987018394662801343926251724184454681142556673464164313050002738467037150560627556181264150635180685126360491637076318775497262567246948869593458073564259840340032247472688710722611586995224795814832833655212259728991833257521101036525392870336938637333506465775835300035308694085624240807210586264400789562234503276777492087109437181367271061773052975834848645420736106616945949101919618291543304773223019132794549575984416978241549161766945166606674719920434529051698375150789320246959834766334863613150336278281452536636831689995416069317964389645453754204849641335199464049256760279714800791420971985590644235514096850089743747451693362819210509699878632817925633858019750759672735227938316350589751952268891261358737893354495470223363300190372285207011283998120749143940962054738383566537533344577083122806326869400618122213809323305291204257649893027931216913287244063010031956801646298036931683928484689799812448043627788282804224065181618945795747305103905746438190851758079486702954039397445304650389924245667430355578762305914802232065933861846548646950672589185254326365961359952260836799316380710982579018945930373705241149160192499515941412335221783601294632512639442836607915045294269029899863353228464814507975535896151408081763885664844390107972273984262482848772812493923992929152816314972480754300284905249484404201076155972779791120119171463317962760180795344377953590839944185685257935758071264077875754247078481010961212704379218666593021298001702592869307198196094212912180661971656551979138492921014423823988115961450802108558910527200970963176728107779177928782479202516436485038771299312613481641224103130348135271783294070750912631066501678729151464571586044976941071207788551883774375213959232379863031884778193550423202591625717595433448734801983008530368170219679374680685796768511363567958908371032914321918489762704242014804472456488811277844328603604073654452231186110275797339240144433590196332825964137040470655311505219499554282635722395598382812311931363800495555951864882796202360548872664643861009302752947655219433110468336347597245398747859260373658115148535179722953439356857819658034466374421261567875266504514908315626643951859493585285073106440749536223545846217997612666807537934048966167506141063395693570912208579750885917522574558835317984722654411210891767663105560537894542771035850782874766976717620927852770077881003525350583084679834417582876126917767197172225113653337673472193029718985467781712975522864261048637969295985503966156737938015471169439548773888174472292743522548772185421281103907868466131605849779799574035105211071853335412244474503696169342023243613676144297357430804181876289951115030547649057967098015362047103954289954213511094031795916190518456089398347257785810475111410539621333188967981609771726604395895256071248170487798268670834965860195304681403843226824454315377528384035507620383469669228793579206169463777527630026353431853584166391894068704037335064593918704377452862225265235067437733539752297735569610423416185232915573928093919466115440518469357014574417747699913695916740424864777305926145216446217056913592808053136365684101646497942412880777135096582951059437365636777139000171136316411087810697482198389504752077982301771651174173849778351555968443249910662296054489672033711972338189386838741901539795383850555455419595766533119111982574813562813818903147033731642346487849854573706526789174570558344430244230859771036645679204994850893890051095018436232109882530766944841197645322717928900851653888850129566574381975165653821168081470116443144209769293435627147234001210806509467451401006073973487871700414015846263673863620487684025351365133395331169762861481945673430106886776237576439330280488058250390330089720809689466069174484383030875004435934165583330459030617763743829724924104674780790822763429377975653768732228429811217770159594200581744028250898203850071453941323237719785691177799724048489931741243568757972245109718905170347126789784682947623265371608170109204166706759347880544811925740747846432099006979023607297969541881952721071444974366868451545387646783069098641845827786579127367070553121630476428621736729124813695956818493162857896049841848923257653569520772392086493668795624684787768943364768297856678777528036815400791425171235993886799602483974648691121945281215533286844813732065616627039273347278046994524389194033496741220848834647049635061307760972274145484017232822265507009221712041970065342826955479756217642758299951918015244884681099702033818297768146056614066656699941338589494362869132364659418335788701965778078941894864080198206108543674930945129756650899221653078451619322978089668252249504701947526002745957885334186109529871375068340779435735418047331184664665129962410680755197012669870712167010637673618741192810481332765807790209351330725125560058728662211912734645267431307550631286177711403032620075255867300501004271913096099454677553560378407388087932263997714640115443767189063005410648266349773477751605067436584240375546172375641373678482222482428408146058418355873405862082279595950130101972235710229858513566257458940068712421705176064655835216240316486867580399186048174897537232457495109681180180863608573724040081839163414962657151409521116915418853737244805207734220111748755260951916504110739616298710091699116167361782604729778344529801595460344578372300776770669408627908559823056818463355250758884300564931224815791742337524849274458065608242934864628512569396618595449934592806530624862981722609490547092483940453786433949495285409093809600655164628881614627947891790076909797394999608435653838996517851340715224824190509529660173230428609584255830453581212891261245834321929856978190750684553102961516472599975580165259828097797474541030987429923663093323674614969194820751482322765483072016704625314265206889830784512456382572903019562889186227400833405050417950834332512714138125069949490335166264627667585109963503148080746143397881602844564865506605931441733683676981224567639747025297946554127980103387911529762904419961860868296255774196641004924865342685493393326085625285613164398755406637365858236292008457719818285083592586388233059591682360127531921387443732961489122771051220948758784255132405303734593989961576261838035834503914672257430292057666386921736782212522808930819370250612567069050428044442976181637081763442620789790556828223895176142583431037963544642407775504034595191215295029665459662267476995164831864317937673303396729692650950958629964694812950498114531629131260768262903496780410116677608748381379403370391827868884762531182230531566447885530328142783714151703543865551821679533037903774928952901283337927630363964171434353089789634252154502995523103003395482600460874571571252172677165997582436345908492496912563756543329263766597464641250159683448568927403049697446162917614921214694767510564259498261984661823438165490863314306970629985690070614015138797460061986987834526258367446678819514437555367100824885580822679935504663241006763943349032128834202179539730903555109619974559442579997819136477896432947529334924454448680252980142583960622844658771731408917351774753039263026641573391895527600268785113424261146743194284030933686810944567255406965489657770822513348626091512229801780023397164921276183726586183970823068976093085499568589483996678268115569031195072765782553503212715191788389418827340597476988334362514682869770447996053780893291435251711330789494688105874006626576259835644620969305202921971537178381757577398285091917037271068891219483546202737944108512864550977795441693126782526025124864698601079312305798222975677522664011647391791056486204573880844215459626898155310824953224652970119178865479439159088356942118056577031466869431379233630443665496048408219434734669968175205394167696478737858344255073496132100635340031087472309966283750241347064142917431055353435985070772643971848287948721453331806570046842488181057971019343095351370859870389097262254711675967791356679870890653910059276526164471758379301739704610984446294211174912733767552057083985149063598813346745576942068330334142988560294270029893503090975405858951202282257414755944982672069613033896290558329828088071791531803783216036807787494213580564480028220611067184816238101172353779718384492651713578821306958219369202299415369527481883514445708438921912505590561446400530558806780354302469934280104369872648101079043464659353988692945367903229873879042012405586723729041523090369155084067748492798202456811057623654834584706754097261141310387987122929337251912988272583418462699096590516441100867801550185093634946595434732817115642916736099273429113333382752004714729497491008569976834320200025847367712145391037607717027376814515504560611990190561249099189404538133391414809820562132120167258396146469973396391793606533903778331084468225410896559036303018649958402935491688312743864348647826301329920411808291864625874440055450642823073838593831725027239761247139574310021972737079461458963283769034261842940341306147923671469284936881697035279962800629332651930783125676382930509483132640366756087120970524315600321984584106421125647206192787151495755609730463953939133562471892128114734012170950453276562633646064934557553766116459475907803042470538842908666205856560987686160276590366639574583549861790657290669338863308172148305011410566051909114271050419899321776346982600563515424655599361965621749357615684268942411104773586346490632747557005452099292682694974195563192136859427873460561292977795480688969313160146505833465229934333197113777747906698017386034071491665475683900201898166084133367304646505688590489287636066620070081480349693826989966106887568299784835327441995952689450226352220516105559559821347938886509199626377512759580472714199288152661870983447626781599693902441837200753829976392017668906375612744713342283665337693021106422290030922092125790724517424060389299054708886596343321295739019118589612624900843367269730046181560904152773476132541010631462248418978816810039218607073641535605537732308873284924293728978539875378897445405420399902909542719583378575731123129516642380729601286589913965190726234556604898413605435909604477119770553303388960412336176977140421849804884681811563521330445913979375267250562739430946880970563026449121500774249984197955912638931516890572353300007300987872431911833001389719104725131400889912349451243068648171614575904311038207603967120906324963629111877768687287264348815191369506016081724240097605769554916486158608827664611375398087768782224931555680725298566861855655613114471168321491411108861666636782574036179063250535324066599490600996885509880396702033264990019273723621638559860225943258672287035444461902995023267711853462854675403466750977201579790963345292602849228732579175092230307603522860182218452780127333294746902540865753488414253675022654366413871489620110634911850198775506993377208124748934786569606164046835903094871235370965860869987501472916958864364967506860432624515080282489020222092568414130436394986715350195943726220207889151366848691425584394363503873871941369991526509940896715966032865319883251068235082562297773374544237401279940296232119387665385779063420362490480541346134885735258988447170131841485966160162785155180929713836023741676473973873430833554270431546250799479340210677194930005774905404130131878867606984641363201234131366694771322104437786530939771873541174947131597515054869852059660164469060263267613340362433154150172143295359185815999037874263524358688729645330608773656108809312630023359142779442989977512621393176219207688595792493967385348448176451282405035809331863277631174959996736337216242606711208621938499683188872182803733180498153217114668800719421966869302351276459946084837698656046929021022177965379389667321262211717952334896926637655405869016073590695259123117533323729056188576316536414715107198026864073179494808941797920252417498024612802471638995456332514496793841311992096666455638981441749535570077378966189916930120094930871928158458442587989911553614334524349308252309391461609257022615747738195917265108458154743668708833991380712733521127246464463089681515423395030869239443601517746097188946543669807886280106017339788844632353503232025056081227481692729765042046048025749343989152405277525993136238849956377009737699666318973797869692585648168958469967618306185595464299789154171023463879033145269747646088725723027581314920715019638056973247826683434701849012318381366799760476011112754948632593231096163435294192189065028800491825842019370771197192431798612925331880134442936901381263540972906970647446710606238559668576933309172147188872980890973914042734190196259123932740903655631235024403042665242672428089756566292049051250564953003511000934219518520217366514091664317311772797263360682398925801698018927489357894041086192539008265155553494728136008432751700771843023516466443869811253402145288478683357402588385504094978196014541730356127354181059935277008765661612740920688381200658099268904769353643465348245142385811444203088599206842653825473352963624996519642849045082755529679073139007687546357741433250335426504260344291860672080574766834153607313481607104038963450103429814363128494155667651103828659460229860412939161820492174302534467596704191079834966280031668103253923698412634193707445151876853897518808818764061236376699687893475352033669243298858991499348077434345713220064417078821922672380123394686484987609509452916108064618003472195657689365019166000548874181881154012561300799512074059295972421214095340669363211423291771937407291415893519566832478372287586456059418520838032671541481562980518889355811152970253858430783301504931259107435757211522184835660699939417934442004691572661545891098939965604682190103081600414860111919438486192330611913043921882365279452175058604482265834224877900482855263704584039258504072496550780180531647145930273433235710329568147622636326727022730590206517116052916824463733642279904322736824155196799738437633954774464212949820782183244241084372613074630892672521665637713202350246058864171331748490972283025503488328841842448687248859503045331522952924280426823529558995706329970481908910679180755532759714003967108693708600073957035787329898243654944731219764221158364917443253848801928097464849756438745537684093376583596607408907238346989610949154832516852277334488828875858743714285142724180315612791085768943542422574917345277653363397563490535622278701471321351842657775939249589920301050177817015210339341299636190836870500993856305392211169942975235069200595563217755197670405657758982518220133387518746408940249380810235755410661361072757133184702197061615733693386902830859182189919465508226204871816764144002374826049002685127187489195305759409887038595882498642139345755981618397480670898498342400420554147071045926184695403002203422650090695361016733160003904330214934060583517814754107111144033337976044777549516195999900469118752464988194223841702360569089554570659015517866168728620619074008585543579600417925306191359611863319777988144232990664479557999122181129094300884007516940061937905368713370838330000530100691155417150419386474870796137662839932581175056230164944047261357707795248368758854822318894459663380967600132885359365222557788207770967609400523168257143413854637872232200425400783500913145087957130170785486257909387056854206226254875751051433871762119934368925287079862450691292640915863969626854560164628662532824066440979308865661222080847827625747646414766674243669987248747826740328877361386681168062199112076577409665819122563651130044631498978594272757208661096534156693545518306745009664382818670541078438634559394110278260027207534297885075412894250321961613292065702296136513916570434096196221006985689359985834815065234374314563618029804220176723190524261871976217587649596825617535290541172825476010982399312094015603371139673637844078353948943382892604699463610264942003008136117234604558869622697855377412069971145949409673266985406236162350083517068464149853291748105467989817846140067189274761210989764254488063229024746198290553318573980420938789453845436086081517997653702188580998615795926060903642125417258044643271287449444399138036549000510253619312514368351893089332150748019554980268399783513379095483146712413032522578652110089244759549820869971383491030679183192649460096286117976736085967634813266377109438603676194659988371437404972529367629618540147887103037112363069215679081435124864615142423080517996795897878930888028776736682473979463443533884546218964824489362410683714523281288886183209064070330284853045252205365114970142549081023695182627991201982092431887818118551330541186587841443210444038238107067705170897322173609624758896515274589882431990727416322941920451328583180115399020092539350942919312060070207380752500465715715150974566818052634598950986858739217962186595673159606468378899761912476989827106442469004641989086045813642866094334277281772144779304769930619465654681718337972181499385146242664914221279408773587878598797336129619912553626254061427523804324990092944991125594061330530581009979822376111687006912527059211242944466072341197018925145568263883566919436981287623477638365583156274583457447088430592116863491105517520576054501065850413043926160159676230086462811207452445407057085095025527754368994005844256809731881717043589739149513490820127287163244427929315836078987054101157644583894161982761034498830175966241748779496312701000087246821302936776665314479563714625654334736210657677699328964376408978926267926166625585705279311324531582348432117025244904528170777478068078775104164313427902896813734641551586804541719866861694591309835244377523394408433181058912542635950459517659700636736260133381542672603423451587891472854032870176369188654387531512590084887030648205459712212758415132605843225725057797057849904849769221141131027382291308445103219694690114401971846181579275801448073749147455097328477861588872332277528588285340541740770658082931706917563999217033721478352973319326802895691567342802868328800291681238122917792070602048601992828379063423287632242033446453672791170027079594224072036234941580740543777198535470961535578579907651706497528350831131675475711783186734639215418831835328362001460427154527167756251284291335726237448393070643713306483591490850856465780077365076629105591008243115166687230555829988926502238727381405981196572520756222081807661440491604701661174138902769686179822190111315879218814228840351951356245403740503738884937705598385711485164802827022187818685349806116202072664383366524820818527857445459767530758747097774767524041663131876874502655281957805379980462895772595773689912740274797789746727631471816246299898327869151796525467103834922609678278227550007354564297968082769507371719554077233230479089466591577669769764516780390583377308817036898505739281465482117894649332037922089929278239319307786646510640088602351447340958338762001101499122354634280366857834781555253917280737703075592042708824386753747719543194542762036210075517053678282200569722535022687135455970578742406932809138055859590023927291246351568350466514338062022009003563741133333525556313703409355704136371370216019636543556771248076553721725426195775528930779256188872855703138352562960883496451040704181897594179908109975485672118645470008871237338037770296017046191570069357907771633225701956426475523436310358442821307070777697987407729143100567302681295664512477757307502113989304024049333970210818079197185450989194190999695403094526358088055807683348150900382117944512053984914906758748162209874935235766086842093795480391754605694231219402878092397134257923056557961274627740036421402382606871654427069268645603822288786541454505896689919146835090910604005679536679541379007584208071882702393843698411566871217136818361529277558025353240875720978363958477066886458160925884232955338267874757117696448353770996565886150525588684484197784382506294173446482309893781395258609436783884694187075656681225692487194318074518957840741562818739638167999727814964875606290475946282489479029577175029971247204534375048412056456426783170755944696756345992863650717620475264401257084214211739609161600548184473338516702539019438580489033101721649658908699864756736210810441466857383085768623887763239296985502111678331682624002393936602685919369182789060364869531025166452203195689430711392514035977380175277014812021165884306923009306902760107569874636181804724233504565682685461436072767826914956646657646424763815935104281163155415157215072343285332515376589607141432735496090124977547314488822544573161340133017599838349910481333887361173003413273853767959006536585112320205897511976150114600675961946004406744143623884177346486838232499592250245009160264938330594338796034635219334630585133336249893847814877267025285307159080000392831199012541433953735562367234638472366761509175042401066983715354083240977199527852001926003916441566355858305347130627432242820412445851387014326687906553451870650550102757282935407723621952804379394378911046348228225246464277342282520478845535584643453863111545659804362885458510935314387845559619339908516671425927168682331384977616587720769002751714343923879114966562466689471681958614652974124231488167100919563876125405898506116376876995909609394611061385840821516787897455958282698233110601934964096789234945125690064435548807964959668453502367495466868854008960073721785519688988870481895501919512694450472222940484530933606613515915022885877823790733293460480886964116641445239195879570433123804975987834537752104852764635604424605021600236355143470020780015541701875974676161784983294812868695145363661841042276489880562646186719968802974297223061140103661426897888256234789523843099006366850383637689980904221561015738594924041434850449732240415315746251996751226373459829702680229506768144114545372903577089507788228622847327849748493452879702807138205135659388109294058452196906833989221387286799058294122961801815727351844241421403972186677498852928205800216233145476014971542546215622505638264300250564638149711655603964707017341037525043080385390109037341160755419109378756554682784643485808293029064841793781721222717352505976841119713087921022196232158730025877207450630596468707299614567805181739845487709460892612904994467812233244400409382911574362987898934683931600862090971159153810939972213137958483604596648097589584559504087695267757446390224317457585911176340861254558865347017546588916591607481854611761910886316109840011608413990637041076108500425797272687280343968609074902277084374408847404754739351432048431738753223886245058945983897501400437225668593077227821691966098928353816908362222615760698471652915759763571529540788736085691776309374630183094786404341218784535203488853244073075526597693903027562538564806020877470677185219348610188233804078675000302637344162997067379807493882735574566990510428273641873185762695041398345746568064579999747360794159550742634585140439365385566863537658647501925329023286997927971655769282908660984038045137451594055877951190439724814753412475170820600518803716426627032971364784167271334843613237316461362223715831320966832920489945014046746180361374956915457064794017572932978020229564808578218417600452085033401896794497574643011721125073385859358908716456226268166991780874234655592366790524342046076780220626747757440081505276910457699870045211382660478621075001637547854066058880426250714512901589533524715292181038163810314311164635450656462504733926955694358499560304885372867983214424699324317917410330306123397584483882733537879908246985317832115071043024056168243749420814664662527027680359800774062493444138584873470886765565536495484744394934897432965375593036688973903069704854076780672532692415715588846433393907333057543793160046863886634582312821051949207014631302746053433026438695855849481674862808036061980986893556715372896032799542620614462954377626791167290626306842424950710463117287554782295301534714509185806670049496322096037706471283494118636215284096410191840543306172434578779059914967755521609554904705313411668783870211565619789996108534370147415152766250832260847799269841302606445218640641682652607892589364279223309502234728296326898138149018788551898674600184276070902680420444630655660960159305463259597527287222882883210465990423046778348558941271269954343456338099662132695862698740314082446224426285482280364588570305582927132323451310273695602857105631846503651871285438831691501434887620468232140824182616050132840890508581575788170003004490198253704561853795723836834660247737414345660779565899621538147140710848054022231453764875387234500026341173871565671145666165051208797883442671602479530446619251254524961566536755865774445090627140210008742286879116834408690272004118955961094984121902395855030916740817602511588781773200905967890739411672088666769349896437464259478383306735090850922975047263358865479046164880459420617143907544858641760056613556827217536927328273775758020464701796345904076859783317744975766481789181284864370470072701051320976841604883671860396886694857705248555466824277673299267256012241209540188682065014986682464741067196832735423427098245434716331222883421896876180452879523352626908626004303197060102342218111752487727684994484030849102061892813621850331891196742228707391895099266741816570215753772836644141017124193716049853048341216363311364306834392871405453827549249526107527395666711214556140664083147785303343983506415568451828044259867856450626494250452633788361334023229442551447194661788058564834235022244638037003592058701704540989376695493756272995734434676340941698710761174522147614431378818115720556806712029058328294619445157867911194799410240536430102011294505156410812953128715339501536307466940329203745954399887570045010269668484988730010784009933157449529939594680662074992265554818701137068849009241340511928765499617013829076756186677205263591575772469664337839545383903323401852091219898224327202565213748008750236317309774019156945239034073859609206955230273391609337053973142984201332449803638509316194516168804186149123025931806450004891239762158567627109012369504847472584818904773083544879434025634868379636014698410867362341457094659780318965198125392895667131891380846802658600904707021749615803627503824544319013847369916744010984069634100551046807274909933383268032571562391721372393044421078831844982858356693041751785360046560978060507976360843829570298870031481190277349125554928481950627795170984411874462289961096899831165923558116470694912534097164652559706750276758556678386849324813694412221439797993017745108987885111715018729119819929272003715859676268608670577994314359468314637442434706602643067160234771471330702352158849539656250295265640540457914341895128200572327021963316609504067149801100120018424567921207246529080811582012822555830848785658729927828655576095767874637023395985963577254854578218286007685409831860689934775904843507743502516128589105749880702912164708809209209207637037070088815970269213665000173672803103931168032550662029751804649989421206431858871033684468438678348653564346757817910725459491674047250574876429215070128685528648480555242194563504365913810108984916871865768325876350252043172645513468629319553627946473307078883167802301831603062203715377780926625880449878377636553161143078331992244879299404808508237446520709847888235713453447618739685238341053613769924943743707953885936215089751571305344912315924792006591518276505330572874268831322551160450877765720880303410514716033411941205535903131481474371976947118730621304173966921401775704903460838691761040895873844732190922363805418112871776648370937035400029359491826179387510841079508338724598686174821035776929276330512205679723971653352762933077648789276237792337869431401163417424109001739621209053005671545765238070212117967337169919570156162663537093845714530390264439089905473089011279962907350345657380879152873064576898734973111329743748328167075928652763332811063978512815668710773818557303822516608075286076234632030494590491651883607204391949675903070740059105864609419706181890703119478549166150171034670264618895968537368420916757698112242363351825929474050670864536343742918399746390511047086997123582324935021631008606902658975886782361299148487933997684058213494040211337482317870651273865978035625443141566653959174793609554782638508910135915984308040118324197231358012071990983689235103668754277581974437273504279404986086490359114774609373009272582800576784895824369688597729408288296903542359083557426335249294132085450998668447779093530840631491469840611123693594238443859458644794625692643923362550541978185527843000377719856870253304061108708091534712897835526630238860191410996567171156550898700923044008369949149977395253309202920287909922992764029400176704803580967904439671330960032501089695232123362416050270600629115279796638157447747317226616524094986420123302451040766046144775662332118901237964774025351468238185184358454243593675251298933368392794131416131048750158898424910553414341732313290929726010386041573912131796763344743075937123799968299623469619076197024222368658479984126918276092877574782860563114521836209729790976271987702241333909714165439151109019864761407118984643729470344401723866329787486439271438331682361992997534530745838983584711584917546767323894068676845968680980720067607598954920052903804429672094406476193081574801852236556943719684622252183277683868137531558070470548810635820039855094540830624945281170951362791465512414542167109903216962498359226727734528812592885566041043205055278409830987491692905951988736072341471148548287681766161939567345395770155503056319664350187211195029805813354412972839794155224355802225998496915682001780364177493845780181057218443861374928446823883943884630763050792884388214432580566434439986666745603224612496137384595541910500236439247268289773282682560653927701884972978574434158697988741498471535717122950825221081963711446966121327281273825563670052327650226660247750823976837392253999177572734402569723522307255250987297677124544902315113131323844360584940288912866817674236104007293912911843569411904221814928198667955470725781184507175327332030886309723229114417728681246900735527685063205440227504632218645573221706917807328832361679306689027974667051615239363256539037012988981482151402459514875283304627678595413587996289802299515419080938723407637402375442245484218450473030071286324694899259819349808886462439902043968057992962673012835428027562764312587058470678582237123922023061882886249834172067746962772972544992863179254187848722310407647844506785356849842546253732023392688042774241454013674258273780530970246307350526613921519063649579530838868207614445394373938630908323340918792784091637273551450871987389143523812030574951537022691702152603948167592997060839983373284101438904882208736144132145623879728362990488549596978837051225670719781397513358437318572946193396396546666437405126830331478212743271377824461923895335387049607378407771641733872827172698902485294388823914634147669636445403795799615875509166831326440765958225602068015261417617236429151604929836663035711037983534984391694813097492472336571598624961224434298798017719956940342579090993632067978023563580914470518087039830690180802353940314302687838306278608211616589138833703077188580218596521049144727074075969032696347872666488313144042399137845818659370658838500763446544707269146975041017733108812781910192849094540338729916311037011693888897734750039373926544864243989411664369622001946049124737066946018686099142682659759103076278085315648378256984713666584124874905268518895587743684739225569681099764665292610266797287487631604697742223814107565723761504141374957430826471376023650753782960409451440324265463776747269439228888185570708415937283272701337967548360392943266102353643169895070141400306598875042674705906428988131729479386320212872773857846656055627697904050335267522369884600163501088204580068389312292203309427439409531017300963750395756167376155573423615771718293881336100397506134946828922308209275892778405179272151956488992448131395782582120985173730857671282129204376994242583386007445118133234184405986467442697013656661112484810896698721725243028544134971571053662911246942351847448405780901210438072536275063550752417016588490115665256664117275311942946237868379169007870750421525687446244014231967521552747808231246859828662996849785985853395400286939084151744333226287073467735321279417137138391511634262456369225936302156973779587140609818195188026391275927152439331831938377420545022087404707670788130613835767669048056567406636084570700877448902930824004176139218507270581675525260077481331322052600913322652350902885418146509497687930790310612672829267230871910580636680041155580807709802360856652927235104898225050464859375087323998601796032371787603573916042483090582494386492354543967502153888546912808666890664295082441353842606727280341270457600756104192164081909856126982630894909038574388128605334703174329431545421276547872986476711658095323324178789995637705346428350205864779789415779709989266453554661926187177783462848864793410796004464456846217494631112630185862656241849815408400579749111405500875236976641263695291618456007977785333736997232871388447863589974975389137853877439755730425270561626934403884128707454895714001256101686404440405873991682486170034963351285203890773730564211107404994476620906593209886147381353783863641557571002639122929394027132116151511097390094823167286167594775963798566658457094700429614460134268219833266129932163794501966017364025712048336034676417367319721041539758802592078668673223365589292732321443127410328798713385024304897357294887625969358761325111802738013973786804921133037845382574369916858667439166301352391262486091334626047927833467593556786332771847970142492965400311310314756041097943937807708613767871693634375302698306357938561358535839274346804357936072260700927620942707228627806962197019063597395012858705684719450504292659732754434180404177569139333296480123822355798724951350913770024948758060644434270522204160743563176013412073292850316678267360706312035627500180031653934132563690100457787755989263904477301450275990970799947484131966261722250179233875942322567125226481852168470191088866156144042513380763687896089571462173993340609053156182993721448807665144010763156312522970322293901661003508268790207096307412249566139503736584723581150386904113028191358385103447140265976843521024073088880451276068775774485227712958561445625536500487444907313334389405592326764681543248449850883732445313632621452033808579792373790456476431366553395610739817325529747577478865173122253285451187672004831242081095663143016559867903301586492287017782604710973498652105885127354588750719533414569740219039655882169817598510942387452594910480326990870817732016188502519453943898941107682507285932113766393306836192311792715921060949734601338894681898107100296427523557870950017102337608292307195007850331130494990546813916894669572505923884903314199101826946121174317014939439089230273116400972243691053517605897858445204519708964434252067038355106951047123391323091060591912985412604578383792843613140447380220486309497037191148176591416528689315577946182788835879034473236911459084530046911709205443539818857821120335681926941411105175838549274780752218369834218753724856414814460680382125765833105356905339055763595323197953734363018301141636987950212859361280170191746883608136771371522546888507483979649557478178092070106968674604857838558479093315385690328223814789011405264001982177128701336012624419926329119171878688480788936520484211315436610810598116427688740380179944658311396272885413913784580659982771848587097758136890465297064616142687112376561229521263032849148137159874837338396003624538179064954749677577455396653500167366577514959416029832251283445753896375478279738646256431307511583668090734597185989204436400478870582097973574848199076621455139079825841731398272005378261993871364383981910364853423858916156318296876505218526564786995178336079547260495151012572557671545986803664040725043146074111722119379679745677591216758426224475578328762047656662517853527226719780893152101494526131827882439382634183577934617125245576206695271712094514020860273364905261711322756239065825834278223597137330283674679304811873992965007951749982802114340316745594189311931795361388548476799846725488291648324353220278308352763167845199629258575468923415233415452961507874206976670256691519134933537119421614267611488664028213302633971519351763674472712176421326674754260845575174470301479963818716038948021466010385505083139179743197038504726595864948432934867223420395334210130702551893946977598078935219377891925181067993762409276093258649754818956588527835167025461493411228735021521441314315758850563889902664859541233431779963013924636310613006090241799647112509966045355598285386260257779975395904815563232380123507903653047887976000146021539012487238905602006642967986340367976171622031196096069329380105873002351802656204602829193565911455264739563342571967566300391834279780396398394922994386509662519218104904948976254909760802431713119996599351781731574724233905604101610598309740574859361406756590690536701821542030469067409027242376196486339819619090596895296187694030630393754653593879843482583493685424482435315623176088097018104648020614347310951369894167405007539381025943065998217517237266626682734833978056495936845558717416493874494214463250149003127364258899831270944054157483170305912263860002540245505476532801812658115290909062077303057924800930867125527916567848305294178842478523596962421360671725925762330618247497291605016814888264732946169623689899902219682215303070241196386944137983156499417242676886446882511135125885990518309110410754577165949638652525412218053293071355123484262895860876322620378121183362737023865869403889218054209443100115511974854481573203221559178216512856093894831594503894777098869010421697311693462385858746782473873670928008364625189281251875303187027125031121322838885067320939342964147095905190925071895888852209532811691101455053706928590943333257504610226356173848009198092081716454696815528586590412925554445812495839768715971441657261034930812977828282356544402501948939519273984610917762416444145746969724068973375619875839403255800562249225051157867979511436097664268205733938653404511999598452359604920559276848303995243959849800465046333522239087461611312979646474278734388548388691344594513217948972704741609569701034554777577507890322448930885873744417213702587659741959444487315099304041391957562863549422781710888834416328777509019092817191117550650763173722569867590656828430325874206641151275595347582602892677951234365633934433535376548991420304029322318331785199554527000337196763116263451153283799483785718380125611556122764519114723098980035359893305684283616692836741754420515109831853255894275279652351383565687533702665061335330764168093700903922158501554451384809652802619366188956362797945482791747899343181701368807332764247985860311660692959957428371652237866064817325306164999589639158834151426691202883646995073976000601320627721988339500423782574793298346734643156053743913939862085227632645581494213734328169776349463446437781336742892731549122533357594640399695862156122570292426845971648218338497220239609513233337117951349493143514195201065648954092461234187453125707102338146113736721010908480489225376977331899681593243749475358340034214104535909740147300752331594054576519008139711635545636931164472922384515649620819752544362782803594789140837526971588000731952341380343752917491023404859382281370266772769005690243113268456825608288000538413410782412063557448721611163406157546475188865132333435207388839094966280557604867614742642150729615134152405970747107715524388207777938198178863399541098927525772273143012483861803352639044131799677816211205248399957767349201614011220825281437488582135898135380215663292656580095686238103080137526492726193037947917999708746846343270841910505262963149628466963422239136875423216456664166975425125360018723774105713962615319477092702169888780762413739451698077072091576151310182309035795587159755626057716794795247311331759034072167440790728602673686112660556436919114224160222484803308911241820341687196586550222058396730630425437446586060879052168325169511962483881864715510321080616534957055683116456832293060434835420294370233442699467293478500795395619308120430837313510237143131333838976491398153327092998752074692786931166061179848289341928479879817037385749072488645895514829726243748765911469291775120238651120074797970975780775118212562520246723320871918733857067422678582964184105761525978126770067428908483930608038634769141904895336081980365418872752648819376774564208547579413308699946853903074865746397672105032888021657577823929470253602846280427708227960456314373218427067110795298983077354798041808712984978255518934027909242816990466453678439886998815552611141348286029574788465281070193121229535444328397421119358545654571757210195821151051322499243047405042046996972425466720276195750562358527955633311859609875949992783427025523130073227140989027216395138738202771877694711565838895472649613354109569921311408474327354429311432071770295867882002772523281167290153282368266480901246261525838770659121552275672280330079974026256326948776986263139701957673094479070356033759159896869890063292492601960984005656892922866270954945472070771709715118804638456930077842552249559386548196957336069750057379265366797882682516758938663369629050903811567883019269659137603640180860468073164892399432804701183373847374228853110443814018153325212923326341012574500328228253119823804434456541292091279285978387182929728010080932253480908151751254409453619095989117100827164235909148656159793190751145882682014573931897050957485179967998852803133428268206054556602358386206216688515273383190783772889773657548187334792593952792513322547688647794918370373185153365895014792165149827716986365901479870187390207830172991794128287061264597865833758318849459403376132703624619369013300535913882921116608472583779721719508697053046210304933739494199761459295337807700438057998617197962635310253480585755437246143914656254172174663178887202713043569227701940140510747830925185679216646078504796745906738834700304212712173950378840832052038121572404530437265988724117112339243600343093091951457100949218016807633101999064424209238881943809242367699036137449825469962038468621382540541544644321713344318512999541146189000526906057519731984496033981378583285482836454857735059569740814242148137020281135499742859026141718674973552191290899736372586749088757363879985455595932649283598373910635956163961442771352227045067714586427727875157972241894930156040786406663350499938459525173057880157295533041469547900388944210225752934161460008424690533350344179453176270284072760281089680100485209762543239067102668115479633024388748563184937716462190499760638458584571423769573489631087238832555243358405718966935605270095257230868228333383279423799345061221834063466165036607915258047087430068919967445293402244259368547878120634843067082656937228002932699706874457674603207824691229482825917459923247214490527661990179667317483345467210077268208790293327807244386054827620159938717021677092341370267316629254079076658394574956445874874421047744292717036321758506377566822622275684359789469475108436515321083654598327133459883760390115042234813290726255919734812896085320390544639258948870698689071795189352398149940690435601570668863639464382797193637466965157081330756050002924717322319276941671897821022778423728642833116069668313517877703022317371788299360672031136849157590942780219381764827054656237036526445488128497023427983530730400634498520791703458911374122365455276533309053187936694216973896478429460114782804130297652627674505778966760832235484949803012495225111476865394146234965032010767322594564999907529436081616077319850165681634788471490739113572551492176016588614806124659826426808375998795645408057327288167636231699023555621200855146244705825186279143999048305556912252277413557251197599660874932863264154848917903911677983528447246770869881695181255209770980077777751076695206031915803245313131740692954596996617097056767243470671742619878973572947605914075420277146577770796044134801902497053765149917174989352599341550642313699712068247987804880271245158474662411403191882106558047876388147951043907010442663298745349980771156305581225660880870009756074204060192488174199307668619897118331271551985876253043317074822421053414146727812566392785123178738819965069025126264140968400475658690864311072581804474356103253375699970880772898750663857858708431078739408898652485818327560795475988817786645956401728492114390877189372974429915328760298510034253476400668945998571784134338442178945373611721220077889426645147817516722988392501382551320868817739522441540282613894658693331764197430672524783928938295621405223207370250486592666737703011654389137550065925497934979592236411022247097352444694962530399545158635997738636998364373171429900268334063398313403276973642608363235812077157469592927255137661647254343147885998315841474887963256091226433457687215648933595082765013277770005551736284425421121066645279764194998389470767739823300405784787240634107464401849871912881144901563648666850122715700464346794395203054466466624729045657641215832510755453420994203893606280205092261181082270321364339266850052373035854874393611572019692214304394064279359211198125568059831850358257706135085541110362367280595595970974274313687942932181193971169058748413604338759390526393293701052498733757127761212711521792437708784115516989820573855259977470608300021240238692231011868645499930992979560769685104464614417793558900324222901225656838303794366749653707339804165391291019472441923718748396079686934435745000806595917307608163892102063282211840281879562986292947900716567557939792962819254099224218445649288658041317590093456546332263021937367802954951688016332259190596097204761680012271430268700901259570434272711015830459955996875644590496065746169629722784169297542063384346214205738676834204240029758024259958058267873605476777881568657329949812883768494760544831516552265886702542118172644106423316636689555404063937485901485592132910020464698362823040444805080185887203840199438017681591836530674317224759799922714920630502480399610220428683309595205557636125978170101001606388123604585134494743732983535868581168919655122757320291619244393205695818738479609349731111410171110680440434464454934454175399152939043242749033070706238079753182479560125496585569573632460895734830009251840727675437704348826567724372150690360508480375222083913894939358824902313015231922603670867118232952632371830523868484498211057674807876292894697820383075770956717535983954606378863038915152016194504783958129439430803105126573939674274683892410470371721617823794615417619840683630945749264009167902257105920531050146079330857181682347074109404946975250559766130068945944398921847073965262459635589799516911262869942261139773672058895231809472124091718238489745895834710691275350370084689231376342029567064303980719961910448512598190110562252982494811933647870972994503828856381332086536462352961258423737862888414215988722232211927634597322857987393723423546042709468288020546078284996770251271253866897788734882339727098850813570230834416270975850054753403194232547397692873999284810252911354127127119028354231814594350291358107268976331350574004149525116173748132898748522625457361293327933855025740440339029131462696304729634988645512991949403645529940624433945564433995398007434333485516396195710278733129478182169421148838983449591202598094139535700633265540042084678708694851478671690210063057439310398970950736410883564939072464153425222681928246759272087627104883111525315456610778069637200684036648502672999491943192580086761084564776924055992527307139684317969240531222367223089535536098737613961654469858633463498424578730968374975218767700930975599284485046551202868913900048147790852790889070076614834999152956090885241733024438401135425310426655386337369564288705685316554689412122003847167615961702044390336443781916211549151857523919374707667654926116501479624283286103885506778570760134449379178223562289596745655619080715029779630409015501872528506283827251084919133904554186766942470031285969094810822910954925040371926824348545279893880370112412543308269731583582273807822841348634416358883640404364500060502273821966228046959220308978213770497835916489455219606067580910082603183564343552973089698883592530469900733139579638926148405422265343273395747763348972627153757362920095638647929086929113967297068016022341583522499330895828583004397538625306928109790723062389253762321487033665004836238716047527180546497983395936561820315740483930659380613572164578480128782546221832378769357663623302764536840846340113019485184999945536477675960713514489999479112558250961581771197267362690328432534186194877568410171165224240707107180402484054540717599675682303570250149097935035774770120079054321341102306299102043049448667982049872330282034353612680403650686789973165899594811453650551257053453623654704202285875674471321331261677105549868060858279815710510573355556446409784909356165649993099830725472427366238319501094903920637394573540442899919926204590032327438054963925094575422039606478456718540786986169222005356780833971579861942624573191356654492770535591414121643277193273479338977235596230424658954358500320844519556488762118901873462579167677074686026757201118854416251319114841732087131200725984116002107749320220213255571854805845125566595361674238438558338932310761499206450159521879159737825926468920864506272222040169723507228731828294415926062052873377557269364818111927224800357316035157490949626719872858196798491233788555418140365581014309151305931285267850415345846276389738559285432240507060502903224952082214361167855952283445373573132126973862199746403280104730746530455454648112358911092292497406779317701259607539569130112019773887817033296955745042821426278224429076950909576021428545204856593126896970606551393883633424089248940135649016212927131856706189866304543731811419004465917279795929524295576183447043937034408448219938679080494070374593640967479312896981503885243375890944766903652045927963264211532719118478386460982793228226643713738551918915303419154529469767061869611811006367933204810584843337885196007492949961221668390961045971008704173894677617117586087506760750681589065878886599145729682283995404120092285088604635476420620939285490308591342173285270088857443459939775982330323808504096411169260029187877469052406045222108402992471682271715789691539470572138867410880037934315009542999392325194894202840233112664157385356653949965363124026448388594771457543303392559054782532869928281460703554128362689559348436991436891091406231453457738507895249954216672838412613730056732892479420032437902261177174901179182442776685515688249757331726833013194168133847090676663857087881288519468326940575168796429880806561094087338307625574477813705580028221461595665435030969430369416777999728593122995305552898428053150720612434955759909910914292236866880053430087273457940703821472131725737295078738938144460199000782973609884460399876807100813749964977571997411393733765132944103809747146905089854090942743316004990318015337667612217638442987626035985141214961009882829976649917170407855048641211507315771575416817639792551180325378755786352736484998654099158217753559217129993756710358696172483591262264539202981908950432985073180630241123177267989526380562604660362929090034401333732384780732832438148771772632231206113832023114731578749277102869178737449275252741362425727869015651193231424425321877494567268792607332319772086182196205475114723298014526037894770917656335664893847875138545284988112772742238626542686270791977959301084295726670863107106507996074711491197959252540888863816870019999360245449522668529034956886253953902088434045493756753975870615559720507014310213341750318602742400293748548158417054781946020885884213219654074806971587850503179856321429757440989644081498974066693660349552912000759695028047198922436913135229784996084200632236824675380815709375016968478105438043737549135098558921317110153617316619963158415444532830548467899403284721975861973137206467154987084244327542233019943089274165020967161907644057464929616763619506346341117533197487832978080519531419859671705149736847572690283667094354735007857016788201859643018748319244646984633053759928129607792993533766843813986753848856731724707069668128563775629824951870976372876198701279991622441874933635472396509240667692374851405275141891674151071102375627897767663148749223977514860377215884341809090934491255104657022388112089250723638786098557284122509373975648433055399958050377736670267255004487734350152451372384181175338100873888356694949336255411309994939331669354214011719459073436837781045953019896625489349226294512606365271868498891329815147911909549829473556757534842668195049361956914952210935835730416287424819235588266288495629638278075209894587797154656770093519150320850808718025913358381659827487568234096351973869955553970442047076627033641826011411169605144014663859847323725317284255191280010386865907984459086666644058717320105672227070488490125323020774420009693974344145886488826789584585046151150277915646919122211254478152332080191627980098895403881201254966245459534749804364220345820517906876922480430555020527056478511526931231285333335785630504137858002527895982796340146794760695520576154634575346333603269785410745587724449373014874464495788011986546492795296223102179476434121478237375853007724405476032382501594550430708350760250303236572768958271945864317624488112160778945766752935395509472168465181295367875040059945803456768112985417949325381108665692413124278758106672659592565255722521256246586462903492441584696748767700670569791243085865281614891740482991577668910385302124766650539241861403217895070761009472474311194971146051746941144197339277969921523745002789065067436995462042644607903998410180697510579189042211986674183446464754362561962981349407091918446562090852631828480969913368467197890330439114634408453660044243963203071434446219533195046835372545411331663052083296779542031835043083091578146556863013933493870899756975593537459474264032169707535961954509488480240248484383842523054713752950637935929967016171475042700377716205453960823206164545988573059122058325784576960517158350568684811806413188680700007994475983281497359213354076139396306503636613732259254759266598539423482981067876887029841572193894752069971689285378680672908087398533704218628089100773381968818180972733276590612087122369094117994546753152805907580535229727080288707563173521872561764196634443238128120510131917479549213872902866788836975148876654853826983896176558672581833014816990188950487840284364438149129805379652795991074977466138960220683540612950351628200437275144041889067839385696253468701361178821961983605909219061845309014370982153894495911893460527835081239209346989973790686876626884113767857100274429176501588614803317499406578924485461286911806168526539588888249322029079113264486599634845697782442900101189238134896772818188443059063796777480785729214404468620148081759869129332649044964904744181838063493311258129208246346171171474243968974678060888661774607476811346248687302281620565363196221825552556477237270971380989117190636202527525402379708011096449443762257742031355949975126783699553869874052990017142360422182460302682569499056147303319574466011813626437034408367127847773714158363855238371290890822411788228694534114917123274717784756228453922387614924215398904584241564477452284967581804824356480309410112014220565684639828875400143377839378885075152834328238563437316758706764760540862811158270826724517537999270737217893532110299707947200450205405166738636857237218484216165498219048874612579643227074989596967399766844623801072351339079612112239608695692072980885051941890452290613472119800634393983869381216434484353964581796641670509750756092922398246786853026231534853134570374924968942944130752733732159825147018493165719309793864209924580027195186275997770637933062460869870672703557038965258722547884958979312318761322150846119229999415453719426809096387034704520825478659480086577775735045781203119434736012131133152520471945739611660666024241958711183187137500838646928825610987159265445427037284536382972071036842960752041118764651393692937697141844175438133819186670068123544489163821924841055398389648082726853183326670108274992656780459899004109346976814105607820275067661133742408790899741748171221826893136155024376989585585468796992320142701992188238314040433104837190387529330923226306749507888652990383124551442293420636513967617221377406665384082149536518906693737828997813970578713861722049036777121888514086029000124119687967896515314140051954536525863683061893377748775621790376407685431817985140259709565125386964509639344048431912717230190615708770969367414308855959340135942925524107023792870463480392515901157874127813170678172007961637886748582530055292305226081434450073048506324781994111968669807936546158625826080524406331151793504152287414775445335927046425721336798785410577179835274305291892386346991914605858651020085927359580183330308736066361392685870889774675898955669044197599251718952118047200367807975234135586205159278413189714714956322264390844221318742641990391576060035248433999859519293890327260066354705244468315706902817047209645744198983895376423979123129552412369298296562685630697261799436855151274262267243159493827741083759564679880673522178936940376429916068356639060774660358571693924275996573272898190311852272289734633680579642777621960740680472711011072884831006601403649034894180682292032263454151852823261010667939188800507835168230598569603021540917456229292333894868162584328110375535529290028671044186527761115957193166793909529231416408307222411839161959865431103841913666719247493926005876367267955942544543746943968634524865911955116635221216404803777435717508032381081731899059498897580522626237164102940838857692398488224356046889886076359781624319560771259143491063718650395400934323565721528888860019998122894966007825255939452270412459093507357403483646078890624386125100500193209550303225548583654330686496648471434242328700535948176622532276408463623283503541137377948178677924396533994603957702795241487373512458957491342579665483109425370871506514381680425602966801982521796566309353730581519343585261096523100791143158188346804753929543146254877689224646505564305796813941926559481358441261473619338618356210504774147686104385151812630663533502769519927545424174668890341440127750409122381304257357138923226877189056597081383348152811892844770607016007460422100850885560911986799915429778891834643126134862049171356087627037180363871071954181802715169189621768892392796190387921617761152942439613719923689951025642559885448064278948486501525809289544783644138505557821356890428987590033323223101730829789874193651077185743276018641157032442716643414184186807475675720751049345876232869567472842739882022016702443717305117626653303894484131557319211171181293116525592962184487907366540667822627205022907905946370086779605837835339938676369689923425287255265839810165370226820445031665017770654094214844445418774403894626529835397559863318078663696302106856541494797773814415951131104864567349215424821920231246534707900511741126801810576798627522389460809422871322950478680700029785013663035621959861739417709779733268623776200007424789561101138372021549370044305526426919012152371288655615632294544339945892587260864611786845451636312587605004258619754256979467722269934358851301142408907790889996706652157719724996976071041779347843287930071196408594759549031768645493560780264563378367317673337818038387195482844479470296171305888890239625159001465472991359614196731056791324854697190049372583687632291283400687726931563540311269652881447164794370744551311689764639952700578959282627446393155902275763529015663365241531448977971304166975541170758073293197868315467866152466998737061554235611439152597268778406787576016824882003577775379444219069024496717041367608475586537195481081194005806219426982484155079576948737887431777006429691215243751925321660604845058909631079129644388143419344593257511198418329868358789940328346910602095532253855161112716073178155925147072267742822685025164743116406872755197775577309207966658173379422929585578113688551964415567049536120373079742720966249014527369044931443812849376749368554928502500892159614718682135503743033234551391975372915476263742150462347723186609276262014838141996185493706358949488562178542802461599349343040349364679459090323104138444868758586077312712884495660307430605918216719862628966270155824324018113318994099929964102559637098818954489438349827166810791533129057024646386194281150407008339913667632402175334430629351873805185092244074701546151266626873363974586364598176941056126513932742724495084704058957053550225703891572853283486160968165267404118410499231986960438715687711872520376219256622649807563122199568191596736242323973797991976678367423287530658144920415538955778560715212813059974827406397168758099000163462113107013415272980059531805319323375758879440391693961367857444240210408801987583291171288241296306639195439496875643634453572689456171934431601320064980922772467510358595179978481767194907834685604100900379414461357002249063879495285368441578560138239558176627645364127943741781218213778857427683759244378279311198924641898817312770451826133492317056133382336052521822420502636316697468211929882271204465517073341428529520987577052688531739347226903948115595616509186265992917805171207524823883343824307739595442320885545260779650319461200404183451361715173680294704731472840563175704114800713002184160894974169233648518602248032463659269353616559472696902172732267528641613138079603551037001903449337252763540837521180866136019915237402199923457546280011901861801184410845905415182717328403268553534904262575851263988078403340089186628245386957011907047360499333755343086213627435372596434331784163384119732005716558974301706187451402508009841324694853405823508893752327715549340371617670089930597191627637464835621489605408882925920279615666441294965553331922827213136567481224854023566318620006576125502326447362746039230026597392072638524851342572159403210806893336656465776529855874064484571241258204117154889567179633693047432006099198374076965823513813369499216292979206241618051040287221507491196556220441293595094315778804140233652131336623696126210053800568816089981020503307100656983605158089639776607867241517750618895795160646840034338265326527235598738955763590346035958371685906803427057344662345234902610453050259053464699806284909791126589468036917837741031562503406246526040094178891082470393933237177372972502303649333969105923989449361358697416366242789451259135129900341232108172085231528375748338318716149291051585957358244870029388131321486275980531076013155719927175333085473240151811502149428317560536362931473220676347378717498023383981373918511045754694027915227710875487073397368509006507124011591959751309165523638406956469078972188814323375286529644595779388723803752460158259291490215136658374352458617187678571733690337019464063070425986320615505639465328353397782283106476102498305436011379813278948442155161026148712462655043117731057156852150143958509523942266745502483586718203867744707410839228805921540359692384293437619136726548419120828708919708372612518978743127011454057739498922919063244975636561871469974898493532305806998629217448167667036981264446670442234503430003922406589829205696333453019648889235270812810684421746793368218217345784672902556389132175049699155116260850644723148402953690248582074937053671469625909195270029981109570192128047729211555234218345599223115459301630479282573080368575001366946863755880341386350477266000744660051406044491044025185733675045833969515118266436971155046632886823747559550272096190610957939800937552525494765984811284845701897617576863043355970941745276532510846101787487383341413307616540141491313520810807125736605091442773368245583769481364138900976689927024278561342186702485410728839387115058036983680112601760929952583421440862629721515502876115178955958823668703890230119431063939426460868953366117557843061310111655091656144035685089656418849677916822438052929668238709118069126055845768510470421763037522087431948216506566591468304851604887780633669308002943507112695810102609696264095154637794986099931557830682068087952762474090578359889233438431185850688946366756489735456535438525996683285650902556557769504876481176854893678637793869252673666687503861560644384552147802298981300077092542619006368958499188749558511337402174073182113806237306904986101248718636497000085160727495236882593157115944124381720652620870056825272976675313592442218576170671333078219061836474881110674855121962531336780077826651950556665205918353766343709637263223046856770328978500383090115399503031797335386977042610061101580398295955096380601608721361325315472496496340550543713252759604634251474854048439396692016203384573216670266756286905604021606703901722569717680051260736271594812018308510364927448776268185501542431702118170760226760495358667497041565448148987889547925313700002907703945367969743101898133413339860344999886783660999105316510110091203385247802237318431964374791427973278256214614300037350756880570694413477793491906152475052409420179792155669317312160244977064772243712934771964645017971349396725487390367050136889780950100913922939635567392949802198724650331420384081187898372141936802421476607580520648960377694839471008389437562267058862854759096832748637393904816235279065714610516406449838006578834276697916315087415131278347295491395822683659354017478204759196542786343559869124291574382050296997134893173964797118153792118683786896092752377619791370783136783190718105446849872781739992248566895127780067025147196172232426923045487765289283959406266416922613659643054784323797811954230427159260841261815471147508059317250892274918142179656943112127789082334715620253614657566980756873472269037914693997660896623192757917735003403675858109322246349670863679309652791266446288076063230588849844461016596074351371072012494968999067345446336755626917343594120006085440270029339219268656489372403697474157121495144112389302563759023179884821597066543119456301916912994581071379555409685037976344774551298255071310129622699694457781414312813403587981994320691870714574516187032883645065493804612635836543263096594521390803125134685703688959302883307015095422262043240337613941773972192845205459442644252225018481270117862945119604651437552362992966257776084891255674267694542678978356321555742704533063270822910919159266225751312909209634882279474905468419449196137661681399806757858770620974022726716278646638701758447285572680756950723464460675773575904648521827234021308510324099668115891245850925146118569590536077786753529120171314422452887693839132309312765152357579765198307069737596331925263432738505809783697971690043815237221860348435188749805658850749814330959126493923092698219094051028765216138682907050683406616454549962020245990049417531769781699849385419218967307579411510738351545159904796959649182695083555134483592474646002667523242105845718249926352869665686014152096932484493631062562062115643112593816946710349427541338948272245152504992010379267163265981586697277953544606574659892643010570048986733533777273988248723128253549911656566504491646465230739874638814284990605845367526334592558968203036617746086539893552219815752857976190656456168263694874056201965853388991757867002253388724408068961460701927810514729220328682503570201136048982217811763303992884725142734764618756764865292585688898339369822834444440030092717811545745899899467543372555890388978514410960204051647166380805783531011327650572763534616786670191549232273688725991144174480052278919038075380757462352317965377508719652961517858931036809053056265288660329505716437342592332909010365062875461902534659064469358334909830952094590904950589160854076864871771404574978629590278358236744518839512882691862697892861159417977732390774265494853805527504837630672858864227939528107745324339999308443262367859497202584153584793412133252268296875823822378259240907833374032352904199331322009029310775657163473209683579594062498865721826281973519514431641884271058807401881110779613493803710374062085921007040848777828526774553592397236634257857505009699948295877902780841994133775001749795269428215279923295821567515116401043364161897852917195629107029641309145971612879691217890610783133901211992331806555826490195226142769754180232746025205786965559242691524934281249772818196353261420028014100461776330904341454036496821226516994119636272904917964043728170004285045596994558305532309881819518209384410758233602222676303995799574234052049837611363243754713346804997090773500761629133775986106281287861095183859286272861604672928314564756570783398269249081438810204150140161552641103071158139734966087921054792296880032622830007351774963356709882978346410987737081222911101189178604821892171397433218823856408170721414706287395723544298733482041022309500828786031156661028935604672707384766232442467490749216726050396831665413203083496498355743905716079103611392324354126604730504630694181004446106423946478995601336048451830886355756779116043472723869996824107749752259857613322605722884126221424405560526841659513083429027501358278799766924334759358642497086614179442633342915455593798769251218401010003735557188649632610416768760885059871384419516154363064577192893793321457181339843008691073210092761122942542337985232328502927021474938193939318192064955787567656766508482215185907497013485249967278668688338452531500793616172201403953352390652995226155872905076971778434033591718598061862612331181851510438807877310973087905238400753960991326563878274797278569700592940084493794543001822136717949888893609100635705662518042636077956609918427402064572200115031343230539575195069014739453374279956670607571465907967161273778058721901690639206827256491349973699327922962287445603935242423138632982369206687201910457318963558674934958498657375162708806735356495377100376102877902576766344316112701434703367910527317008545969306579186130957041570123615102528014085763245324087859028875069169551606709975919865982694149242324390106005998003561339772396046840605088651002782778640270077887008860830944670523229595098631290175332879036124591130781050453303769180894514765818626360276176318827954959056174464955041459909990852929468585387218254955512152961298576125061304586942047840911451286268218844537876005180755757558407173461189808005056953948855996005586583136168715279822106440377117220139133340410451158452303010954816752745100012719793019927391959678806580835691097928001436767963642128441206381156669105054489544446520944475730397715973698529981522724807482590893512206513690504109217126982637215938765226942789063755896694724421736007098344673653492302456517991623389722138589344971149873143214494978331117581300106502600577387666345052496326242304985191133183886676863716678727953478652097211491682237481002019327423984291837446769782252807507190562883491487986873086385005208967361929858579176446523122522842662764481189232176491715876598944516516244836105827106135942857205693691019458792083809318751833355474162377753096899253562887168735676415913279561946616907608085737120902179420926566601534825084205970326906977904129133402156588087646150510703035818670568835305145819980606428544617506937674338316909161870659642496128004793159271174256769739378100336517674399195209364293389249377958874019286917274663783194575023449007065357282421573180316546804941326364698512513692356058510792090640943083915219422067069457718277075301792018711771012805318786082102967151041796554096598278750804968471325308291794786804392599317417057616788527484113343392018501804993060853940650678341503364816089823577979999467640978505887245791584774421097555783602376534646450803584949993851680804617608272006179627266985240374737408726554948728016380486940874485973854552547720168791864231796481315857906872457949641077104309702263964139681268129705517560586879275510997068118198335202047760853535298105395761657986937550346989924108781421705208664085516263008922656400778695472693578269007157728598669044279145946648656586418868877584340815503829658877260624809123399736887167405881516879555460941619257421786597380497715052011294073028563758042223420267654333706121031947992766554733827474016531972452678978747352076154379666440824684084300913841333774046978554624873739162741579816677970875825972347599226507738027856624899078600779807830130711533792868643356429832175764094045699565231750990916579415344901568462347443470616552102703932427768237472581766432074703545256900078275618237102875764440119313565174978147495852920855561698079389308055161379963033099305176184981444577397885876731664243623169627260940902009330862642763801340117531422158865961483846173374151849747831432646412072204015079806798762322442007357188364305625617882400120842990757253894168801625417247182532878276809798562643235457420156987037257635856308751237605605468234412901332582979711164493796286287601995025733419589696600644618684505550642717563846940812973390533125694686798405483977127224128438761604492536781934651637777858184877119740689909840031531784990381750850767486868720864768013084197791401860572827872166630383756821756434431946513139782775638526574664114283371298455075672375618755403310291047269515203909434124633037694574075887895084619751076497974058698109153394161900228482443304270825937175716424678230648496095241709119423005216702969065369023836652428313833413429184558421921649813671063207101205666087868420407768553743457199891502799719946176035097445380018797593883359050936051908278250313165700440336009124040958994833480792054710719191696545127892374300867566082376502918276477476016683163947916858308276960510670743317803903994154327479459897168481735952038932203769048961374867303300197889922088324931966945400256143384076512576624870798425009899922997847309929794695569750191859508048640347820510081956706091255507277799357401214739222021585572939860138838140714348753113056188193461590818784971297608747576026846482630050430321148262422179861731449095099091134529485957565013184838661396663431142564666260563253112295584544653139914881946167179392253923666346346707955305553278066090680426065036956549249279726299178108976151095570228350335937526993175644453623449296666322647826928802735760278668299462580481591014162342870508529110568114114073649600803146651820587278427291654583996006476544766753410426751921611977131077389550199643010397358416998587219455304163273762523222236382131786779058885862344554607563367402198322550630422731464245251295375959492555715660567968868362784717723951235850465816255409912676693891629634279403488500614437178985095342569360998642411950428407691077636553779510013362534771670204167265869919716761946282346703061950432761029573870142853783871329594039131650937747146882695141360630121373604575106251129254427834762903884100178079293853433613636663285604540448460868771646358452524124576558727657454620487408119632289028255607934089395857544387382647843588507045484651764442518835977279708226875323690567702938514808439275057070296252472434680650317145477193443885831671713790085724586091903804753136953186077714948032743817718917496174496783124478750032872914187139109986662487695531280405246267693596117951439524944563040925427495268201114318048906123040603938926105989483313183394238374675631481605137054783522199452276743477841039729945012931874839821624095890787545898319170735178668938900297491012247849270571679996030961219776511231988779234755630217509412076737105655865251619375833966985577991852949093418621253164602327086187483413936863520152111306464668913107504344359163359815315573753279320490085819138088661914411462650810173790300688146991225713061212445517748765498878583267410643229722655856523885960931560951131970008967571972733178383016884675471018446996035228055395848227190154634967671146435519188816237000046346181831676936509974822688948151255357137487933517518619484186692716707350787652635521203735192286679400903664368104975402627036867269725343646698777533506995586422427188823174549813523650811822427481522167225656608390316380321090832475092239134749547892873843262916885517758413534450364672325510440557520672179882128676926698797040714323168732224656393235680459602047968982880598495319842834899045660788303650266812736978381419402446361297032379069939936288668174995050306748285934296073904165545853178778731548014951443276068984462800943199343060605172943532815586332510010671373598215867365482743354761470016186372049264769421865681713483099890038417156019459479877765386105336992218343254227919956574144793110191635036319920418713636858342582836371268600896719002689540526504464703097410913700867835721050457301485192063050526573672505307603719063432246923360604915826346015523861027703699870736434523782760533393877699052714288905090222984975252575640756648433285031462722805000726198874783605409421960530524659424808431200933576457172260077153057258513941787696973191372686315813941912241751635395938905548940064536561086508820172235362840336188439075973102982276504814137248662235092962557341155329697357199096176786813759389960981354104990384616162848398136158014470365556873752170110025467776214571246368112103817901034566444532661098468473759320709625484157669745041185346099094477949070723429506667217324999654798829853704485724041864105089446142048424716880825121279989145300795014500801328072815306175482004824733627425562562290295467030362662186332882050654764774973301549712011492623854310953069591479383732086380796614647201789661777843910575889314009864956181935931699153535568873281747006535846161775131800124077187620544097296524148322441355142503904161373176819083698498342334857113164937098773090381149338732486298113590792142749500976373466697448889693431468687735781538711069013005196451720282836692885906126729866126321855108879092258282291174338349547674691774466289419579278603417040592764725062948876488594709350288529576351155352578488984488212752420809893179355613145131739623404967868433365615486579658930121518707726362619503340291489455916521694471228384270301642602901805146488748522587124557513465063125484650137469852887531678118256576401722923512142315499136685832782395740515771641485736259576158644424381435954507752096039986809344953513604625023572955761894173661233304387386572533955784163855825931109546013657673362086832937216968868825750848435335010941476835714983830622389810138769238438609375360610361126147161307636404424853534323996122649933958156961987065686301814634751746551968366861185854980138046535791818470412270685482487716060275660653553132079308279714967299234229493485365218557111349570281844014401311049777242445714077247904287146350792729455264564156161030338455106001120314361427740210337893496547891471425271866098289248798179574932600728625601467546699082505985205727227291140916594270447107085904602273869143941595933951106621115191427827318268612725676488928546272287478048021206768904697257990414375353901575463781436420313424679761734050626001149080819353556404225653313525336307923205422652696306886581016994753885642305969799325527241331966961137221949451114470748152551648235689599542602934842360474342860923189223825483305695393820352829452861882936821697478615533223811374753096424078105586313750420098886626287801991233270583484496759373934382741035609098569327020744960506908186803837426874260297161483729990000249741717320368639086345320568688404756220047746019607372496287784847085595003023733311786822825594636020238424969714260680490777931587352001012904014587944382253073098264903852650594140075428308976879509801900247691591052137153195293007866068585459908816787045888905028979792383895031784922300882937499580520906941010977899369489919271936261839161716947548866125700185071148820598144114585719812524355680334856819045304943489872860528681309418784056712410954599268107477922441923305973163937855550604037166661720598282667386714077706310525822475733604656279209897986969080924837775279872791481670452279913689426976518158019860724273646585470709574847301136832935945234011058092039762048870821050667719907377950169745000216042825159829868174773270711156657919337804433973986760220581741816382056808887672923983661713409456712586951430563112388208285297793982381776139010343915626284338826171282890020465661030337186684070546853254058389890673530241683831829623466846332215119541978797815952908247501357753090104911276723917628495406113422463774250150731726725195363635704670241377523952228510926182652462874344454274965232270677719434628896127976899422252908400223954870127401479038337697687001210394144578413560991179458270973676025072385613835166156693328642195915156808945729890909332389700287872597031015748958140727027084551058167608220010369838806716252508914659088942505946987328598096399855661049542944233202955122307987395967369459843963819888214884726064386381213234547011040910083006167847055834583857755482414057265162212258106465007468490333587056202947763273949893143555361219293216404512055806396423418529729030450059468908538877764823111456533376350166564513982890046205391143530908628069353180561776309714734473949365027963081882229465683136671475296612524213538105454307887223749853846422895745984848117522031301774715967950007744510039723249592173492019402738099966699122397350373006367990415611411816370204717198421354410238697110090163302091947492523508340663153090610087608208366414835269590844760140565832115165020695096132219420112084382995801582461425380142250320394911978466228909991534683771610650031597357472578015304690441595180476969040806178146996821169954856794221523979745625931307553038344524709114543783566601111394466593191933088135135687713194273677230896399224708555073412232183359887588657244500340963787358325378302828345978831329612797390180011522607194994675544704670490999961095109938927399431882335336374928679872588081197909098709358844042785974761380557437697277334963506340483728181423147148060439846920850364627199900000095640299824237816849215773355646531971485252901372834776790980535938396512737054402043543126454392291946160344411086466903030287308926352432606956328351094384762941885954365583384533524146226759548661892710968160489980517108074989903374735725626480334347822332745956962167149375861191912738809979172816582791797883215883483839060723171438572014515990311509022309804324550173874139957940156726452948100338957431976309957929736388950769592075251415289320881090326993495162787132476448412096331124756115292411457304074644907269484686806423514571729262991895773070780366437909193928015936169028609049703294086630851952067749874305995922373591337952149970198093107338378450613116047979627997788283768257068977962912159261649461912320732591773377691411693315170624566189321953610837949014098905066588667941514537843317749165273656807551989404775393204599197900519384248495736848066846260944120051338699455275570184834105471784034038076480089682349919882847867377635081063022653776364081163005401099345919866479569039517708866464165799897832115730731009725661746918398117153491554783145674913305934228265074544470417641087247159089338794742895925514287100604713377400216572763659070187107312885541722761311572423867195512488469882627331277523637105769377620172107666130558008620852596351956664846979395684790850858177427582074874092199745620234211726574566971738376009249039541157248983145235632833587310575844487003239721362432332189068631165787896336211761604844502240561947523774193974703407798546726912320664860584819350448164008414789989565612136057994400369620586884385603168993923868950174015520978281159555297318862614797591745290062150713031593650881816772025860019174227091681217699288579114707310596018121365221757494284606421689111717144651036532227285145411349656866351267152850309303319271112946772409437838752847697077792705653158676080212253454622934519566336889252381917425354596830341412199380998966884376491503193702957478273354436019909826003421521845960394022778083357241715070889754554675250155945340107986859859614373275096728161700584124018317148711639828245639850780114066689922512102309799229915930302450125180326540642021184149229383573765440391070760071844677000807118629376503773531806588967768482627855479458376961819766645837939064617968005165922768941874973830243147071220500380225826464347487731426408037015304121760494075162264055437271232656924792266215572747280337780693247646714054583598044011385267347359525636962314400637026289020374855729253654458514230652206564499290717124800886630547293294243099253002176100308433248609986110780778748628572039894870409446127850557317090901635529318934099303702618818840533848862066129527284355944215259863433515855418484165976641112982581441747280387806826556408405633174449483161878433604248646304627061926638430929471432457218647761831117240597790069189475956951412744402701868786001116125927558975315229067433832041839760650580227739996631474696871248123386586386519975842394557594918163430908492355310477567655586898966468144488672636342264024760407998399171029876638511559956257789597331269524856445093225284451770439372199302161079957547279317766120783466077900319728482344735328473270114806475132598287385390291031097121248225063165427900105252195577035902247638924880324559638473765147930338437833966598801430414758848812473616916229115136039697062952989741054777220147793553206994406166966325044720119652551316042767509263516010516919958247748185820204127548435590164494032375721012122163098678396953041012449438199226720728824456452114699477145082332075271851015677371321175379349288316996586405592795541374164526318120451078102300428412447368134241506446666720494695437658360957981063540000861506394391299932834779692224651707150047495824616648889894839979992782530555974471994569491782580053751587914415771021138653874560328987770538080889351464101384057410036082393084318602764931077661034445680820634915924113993193623588534750617474990752390743166693879173750252850855396875997239797443156500761168101617971194947357649142629023469341605514918549317078933012983063041899958781050649815598334473790456124883497281857837923814877229371546057036156111259989061950211902733499400758491716067165837387499619372330084291371022944516323098295845302725367279310499290247365523065662268511735932641997228267405005145902475353346004719586671658645715292992727142757607151315591018024430284218095129156113664012186313774571962216928172319886463773136733434052966101689779064509417597696262975977963557213030243471524747698074148874025434937963949215531074550829721790898377269049245169760212276778202689687986431087591059291645942365778510199538007916982593155041927523392547331566561507429671234622474827621658283940813633912367272374997693978834084389828072494431877913601147915615918840220430000988758534503658350943449943929826081989353958324931105832448879236166671204780084750311199583255001531583501670341663615235704343730634738594703121204331280745017816514706942640655503409723915783332832231656098592622691505331447674291334667154387420758424797882730832202445640809365300230150496540769178462588644732231154605536995712783770138029946323240779096076736351465322509480674877142693476606684386959860665498994444443775301546340929169888221216317221246368244801767299561343180803717189594522993030908105645852646163991774976159951428584950669211891661719442175453926485735158592576977183005070293577400157103141277816568212616371171179635136052466218055223003821217984921093422821379183321602948348088921310608754264797500429718234375481746720550813056174325051047040111619892048575357428955903273842763293209581313307437527690976189098244233478169757597275057718045566720317682854042702447144760899898192384066239792201459833877281167374508819486320549194490278950819591851822332266897801122937360924350583722261945585836077613294333986256193400732354925716475656210050755345585516078922769078910539056392777109028862269484935989826129771408131559012403947704246161352506459742643457009384276884216621778480225878587518159152935848500651669221496959327316779530082058408041897392587086816296845331700717766532021516290922554617564265309907885520887516699859421838183651674617207003469063986113932748026858695269739295888747981555184674942184405368171668374173502875666545351556532402182573330927024741319069652414420390429363818290242061048925608129302023038465820519446924154176174493437759500564527494434277219008386311815764925337231869423288579677503848709043177224383319338890971333197950807456595439231322515394392828098160769178960322291805361363941263938052128623208165189291409843796627527531526474608254594924639416253928164642176852380661846014825749215543564960435516663697469073019317206353328735057637954947616626714181824033079216686660447722356731556600941161045526220100553838853258299324365004677804647174004155205394448398757657996493530652092826338433569581767535541204926104534685230125114070798218034888459690266843688373604332117856517203541978999011037184896273695357066365963346632264981476581771046216775387619496188495659300046363430337545276293458100264800391927838745470002764227496441467500430075818488157120914226660356157371275440204279414106348944878606943160789228016323410601795595102530482577498599418165235458448421715329334430823101777751725569217628831067860007222449168633225063656348200521508496359411118655770269371790981319092904308676144358120689604218052863147894173653213204318935087998539260312539241055955222683969229823592263252648900617008301527099338282446587728596969778138749658913185213329067710144006745426629837267855254036911955986423465772367368186455164835677400457712017446397848492995472080904846491983489975401284316425002210041886675545826429266953557079683577416517697589115273613939637302806477145157864280447647038526655776129540714880246357656333159043018242383218623821379123731055411831600101753981215707136344625968212651121067312513018413853088279287619331580613501971625645462406131812901102209610146151845418793646492051324759561145137435873871747797135919267229636581315617224404892251584586600138935964595741867674598582127309657307922216140960367480130977840501603867400928104181512732257302090421083384662030053769728088704025990692489991953927261947676281384190237584856525325691747957491717170302575689472150722976161021864705968699202546315279394880213632280619130108192662308812263961769051702802488721310665624012709656485794589943343533834301377588734158089830674359690818556620889937791496628539248386734744759311111605974778751532298321146525482796979766081386818483978150136773247815220411000001997622693599584176845037460795893012330481349271753832176530327403556412541093503032232746591974167674737428315258020748668102505714946460827525447215628256016903552174133099605419591943879229930856773143364960025187444000706951250206192210376048179727727111600617227022961664953625399622500573319373380822791582761494796457131582125160523463960627141213662794728427798068515066584936996392399705782177191229162368526032420281423246852144856557252779167630108250407079205586508880435506489719421325860419149545833507282924544112514486476677379140241405846611021708574840138751539865000948748977596011047640526217911032623638469492399686909807507434145483281165298655254796649371773984860004814718682926728516621335553654951246122323776047589899109693663306225360019209498926950623897634092859446731700778755168656683162604149913094322218716905567340311021525645680656375527807481594193948505669723109680851684412781484524679308218463699718488192833146306691649483373588844575854133582577441179852899143170169514039000885588657820577741125157042189369574965024753284746367023191869570718284625599483925267103978122352515348850047314438098434810986761132335808570506454690757248304130399531610158649243401088585451883563118796409035903880717829667508444767865522162648285903480406558892870712029478126705489637259008227029633426790000282719787270106492021459796361493906841505804642719339859429333428275248657253558251909330367107959631750107562965727605452188936682926906839464610833695780273203315502399610209439817578310997591565060820550154411047042382297088715813692402727309979545916686941302842266019899603345234295049671659606046232439834770364849501270030507390917536821400003834810072980163202831576025701384966280402675182576030522848029897849067821517420257449765480242139339712154224279275842483625881046729947735647636749769363225548111883289961504833776406778809676366759154857510093997773592095888749734688245000854674068758223692008131140806476671716774408107896111713066131488025760360649345408314715532279386176384834030015989737494773162246373400382523681229064640033134309241069424875218212791903846506442710797017244559828949150270020710994511812977457409779665224076175108939458046102295752550374835423507215005426001990352870969645310138851086204546083612003178259433743190309255268507635680683403831594380412863466263683264027743538858088722311808193938396536299050428322814401452649852231053310902264066998927564207426189707237746067999123621798844644205524952980842912712752307074427837310753572666323824284081051363913983887998969692068396428953853475378791443128104523847533864667182249967549887621729472455259826301988398968960939610773277125124939133473508605953639905360087244334397974233717949939114255970727324757407602411158222058452082739316677921036209035510224492899663349278894669806087524854180593459872850349383391609975088776970691230083872561225641120256349329407473679821912087291688768982274749529698327267082529527696208453276259472271197546048441470357611800393185562953133134334180742970731388834605986250329779554836905553481858785659593037391823141065528923873981717579062897907324296974292317469784860961169843456651354039453855507918403477077912365450631306834652518989642180626291017221063919304755196488146349308532267178509618450606685536112653614845687321445885233186612375911685464120422122477486253178622233721771640099157231484155853976958764983595153548085326981087803309990687824981620485493618213898918117202699659394871631229642882275473703123671819713477628641525923124633567172537765160791036388690283381842124075805717567922568749135722043969647110401512024456959468112748354254256606695504345944251967952043504256964587232471676697122088092740755987422628761092974810089576270410610888835374382853362749732488676796067123151848790600501572529869494310813982513743090508946089384291177378566036287738131357107714614471330817118523598633513771361444165746998969057046565377120752146815205362885627527238282581374664437012196414299902471732396574398798581998983160754273642932914002492650064140625100749286905963366554950732084934149719361744514083321572290403209186189650759908902973738634360205695813863950833132794167987872330907873825613667924066098159880940802890279437334364126373057403832866375208824406311292863358622324671376383665481757590203459672116215669972777760065174812230874455408585900961635036433514300455772475141467564570924739312882659747054259262367315775458489041457610158354295395464213659540435132855427301321365411512641985997022243206034004489257540357675351383723614540290611242326749135065494892076272828839729618063056469186698719251942805326819781950878928081684713822889637681950581762531459465763257894754978145542274160263059292479880520877218442456032729537160552505800853301695187507196639917871765801992029890547233951145804021539015105628727369592476290379788484830405644261540357446862574665968220755861127473512145846514301261477956764482521061171826895404013079141223874163628233527261504819205594295088048879988655956730226753760162111571752654630009623788224262277919487693756162106039693404385189746408881360945524734607719278543488640576649931098726728461216082295685763629319891436126827749520815210500855664423156651501827952238465040247534119870716863633881574545524230594247329829690283974037214552540681543533879114521427603351513075056698195641947140426511737283102712799424230884143505579390135432009942025489686097249356656006410541737454993367285361261650849079014353051503601818778414122325321763935727346300784820362693908307976793610992730246940484258945288874485912120579362299161743976822800796517375965860145716932491169832844024465734150620399177559169162532346905988952669275142731308734744504353273596635042812372106822271496359893353166110397469865093818271641192539508449388981261604675048399815743535199717822028785327655515235540941782589870953535034300991425752081669437358743592640306861849856540827738975161191839866648332152235203471669735592452400694225988308255359415457554812267343170824113699892798428524071343127549626245265469100716009905065805971975778212421816357146826671186687777326142812292588192867489711631197463784505793285364899316382216361694143311134989874525504544649702852701099014554755861061059752316203054937123943487038387823465893730191325628248733631716580183134203765340742833311575467388318782323618780380267580717547616618993026306860858448648617019198837868607058618946476574115376905270708115259673803633378623349977337195698802841985995828136979940778389204078192093912122367497386375515973190829502083176466633465326916744866491556232061608492096379299991500241650940105881725610171580667002972272509005908757857279323063931627400787189855615087379902391615358436813359811273415476391667106207920150101857685740286249235763466791096778130210214909956508754424892518589714432720490829376805630537256157633884485981122300850230171336691282819648025195662175373912213433894841318813377260496845299957749763175021190854720441686552078921657739959463101500039666190250010855837035802061418497861780477687479547637463999445222084922530538660399082221269359012620180837087625348595737625648152270172997390240069428439402639142108162669008422215980421523678366991692164888748812852608817386650454089796689039617558408452699486147168561236232216593037891766358361978557182699998575381807354051928637086722145326117687441395306727595795681322867415011999560609777600817865419749195716863051292780811287390853578221138163642569470155679878146364354667696301851662435561289997356488793319110617529528212495542926112565149761688943802368727298155086993981272834791113396133305622139193450948032829390570360542509723629665028463811775270064498517221742322185663325672552520624802926516808900323444515193454073122602679279393771385843919016229116129785084785946171018577933868757001242076642724812546633059194327575531556376545556523483658628321620983383587318667727823378529310063820096459051025184712017584375543989799435570233480971965246231752562680668773616527317225391787662510822634807795624052397781442781708864387567034154316578606567943830584556218332442909157144385917174235407632808683276416111758403008711546490511399037935886235146952619300682805635710405808055451267844873515194253617269321555494074397650215558765241840344119263668693150819631684796111527327719209039249780362236752782603169779196935393056204421290626548891329480515409175959902331102889847328719774135670807499284665588795597055198199156884091984355673427380848256114436625937314848716697610861763496913780463257173393374329684940965454245504478534123447960125644841017839441240101356907815384473684441779136559236310356539018940964365646014386990172814273590528683053833667326395860437061103608628450620662631680495753362398555883248111888420775092313629992545807574156258949160998531316972409616816003080039900708110688019456874034038416161599932803841439300629823926160914387759293577479901367027494470032991707802723190396204203329297280470504160713470697568716185715973683298778287293117398841519930630808517365848192302157228157432785766927054542002659768901413829486877655545426453464276335453632774290181064691117335691057149586675022692698171673797786549373104563878883653063085887798866001083811838395757637429373687413291972999632583399455954411338320601515545476989772099101821229019697971179389000479079294674688642148415548405191574211378428256892724521675646955267700309428658816322273265646945136274269942748875112222141563566154736137850580711387670265434726737362869367137176522257623963205910302460384422861125061992894878408883242168738295418340041224524448507983896587947844660410670284645433831417956921641086285048345671155395920201054010242049196669675476087302893145493893978610662743382729510829714730062418769209340802938718263526486832605430025266035449036078016419703424350400744726044721519387679662859255486467897858104959394616115979443234409914477693491165596252500980761076087025070488958693635882167717026811633967230654703804587792374287231755073021366086511239687999133731703581512786980009684044179128345326735135872183201866248548033920703546599332626066012507611311056134149832121690345619619553766358797366128415344093189287446128120451199261551455346074333761118235808536964036872865514568618823177374400164569866223508266929885044900439094848839079000307260044664713091707070381885943859990445418374081978300778002598482694635291394076352430353164887822426343609033723388986255880456937236422976501936437567016807014269489848004133653461225908726974919967898554713759522821890372568317438080678380473857857922428642547468082215172975734988586420181895223126764841193423684322667846166242491088995246915865051713539370883208760140578998853625843708532775348806969306522890463650816808260180595935609770367474519095264845418276823426948838794989474801141151899131776758236630982929351278342735302740798784134250675231515836236043204092085321108976780992921443926348252738195963230804641313572643649008428582830976843830431203013076263050837350833450691907317440037622907165824843071003218378054779469194884385611950340719893080328211501848375907462154089643990261814634501317859433213090720012604669046672830893405623502932391455225382749137907662393295655849680806101154364597943598682208328444673301692169781145368032921736155410818448339208085747077279058041049462265574680400862409002782537122035369389119383815276992566995398942055263720935124852530856501799912522918644055192105967808413069575716525187142810369110658124364805021144375724643863602187199317423377540792994642881832788895620902499912953128105726907266598049340884428376019674126588509921845665824181028058020123615570725570918975588402081217683089006385901223816873776426084170371133550740264466288031021052922109391996574885040503164447263559383492109273387295860218731818110500406479027746176741123070066847687026457878651292920728403431242692067970176614745845372966619185672742315151829181319133573142270229918629326119419202898454631709478037110893274685545166642103300532558136141913885105871508529596923545846837598819603295817669878157491832486761124176105589600237714442986381791331260834096083405767577057063208883583969937411156661405175406920481007947115219668383253801226642324603118311386274005915238733207528966031021738607887745852744115484625666895692562943994743762519864247264347992002666306801501879995349417156271917239577741981191149096668302198431769005305313798907918670969261250363997427919960424751052170213654250180655862294172367367107531665627460027408431652964803522602733469502568334781921179287337035315890412254692285310906727726386009957884105200486110951224703971988794142587558917092868139964002989694935282197581172491329782685271654041067800930301215293004451617405074523123899935320109356602244733659966615397928361314864374649608034076471610078062248817126596024135599818516857400089572857653250952906306451841118937983048011041860124622927329802796738441176975494254182534176957283617183592671002869175949675925459601555669234129957218054893459322362307674100665049500201204739617498632371054422582970630584080690172361684688559071756280417517408945435549825264302755121975398042076071475240149029313743538223688947917487896416759889881162020104977364242042656840371749237955300827614050895647745874428235692368416041093205064417600630817959790069835210899481348677735784214508804478428139349628315423727108482014795963684890713124112713400077553051573514198205811117766644713415376922644459758263737430712441414177860397093244073155389791029546160963087863734730363651524493216089062023867065886556824448788029718146930927381805088939301371879272664530670783291704502173202280842031904633533810198064141957664213391606811376059778446666539011551903900266213425278265097254377221679828288295255822940800567450462269233204100609850713403236093989224142827857743043700311588962529227666980249558199853670528021542039962052402960653136529723793899546090738619295780350018366657039580827655701294482650965788437452189034445459407777245954655954044101616384726654145167320566903997183227761565147670549085273943800723724895846587798361158680526838616426330525314998354088032113731761297185994651849569641624229122267067628537923714716011189703066908595285505315697813804128822153391984286090195398208209456908011273733254399553253527351584980926096894560794911599343606062509424831656167079345019879805447669978869590491713410254014969504902045429262043516402302926012082062583214337169082469792877144064920951151256894702389396471782200590509333699154907159490893338613241923331333206161168595659116363686817434303177475943677272747044846411280707734051633331223625010789618863997521791714280524806720951081791760105035311833315101143135556139343553737798313786744049504365575285237596407673822657800266086479242299183061185735924403876706965757061262741222178212754072576637977395820251733507571112382107549594442820369571943531125326614322506511271870267642662521821519399811889046333819591509791105061332739429238303173660087744080305699934267108521893164884328744054971121619009297569938612533128913398812414785972210595487598614376127075149869601408434313599224441479623615012316339188864150801932472719361741720389912320300968373451642833997037029677393216998480417713272294489477503263608384385103017404391069201181892900247969276427804339247732973431736434743696931824960306459985524323739257453751664957438323137894297616050817008795512890362482133581282747873523090604280745593424176899185453969396069410882936689755269045029881751548014494568650897403465496101732503205937472284510953023873982251214115275584122054039600049138471546098146414101028173887611775343614281266179489190016554603670685512276755999285744407146474465351397055620595248697139989328152735643958617622403084965400512957027185603821204327523069567900230675615890088563899259573414635900864380498867669139178948814070883919979376607598446277416989289058914967075045991434164971231853746209844765719467525719805341473136711453953820136874701932092967279658849584939708025209656489950451452751372752107303844238633880745528912835377475498895568848665524197983015206563351624414047714049981033066853170716327922332484485002090463832958771985577967036510498508255367192707643568256113070418989424412738172800952291356268247038301975708835361579543826039098575435105096494174771367929846437257017921591924299523083516101444150345264338448590089289952929618613862315686870807183317465650360170623549860606028303067549601966888386223209621794409700375856653810903516704954672789001931941181780199727993742900776749973014223364627534724588270112216374579311333259799421816084360953114522924739815491295334376268470626594439679497274674421490125310646844234189178972784191903524806707238820149157981661222615702843713850737710700482038249208274835428345384527241140717987092231228284473952196247403330580133391494205168277694083220291665988707315551184859626325572208370004865841914179974875045373200436276045148521004430142288702614019785393802404018275959944643515190315612243338397703950317851043061356748474393949998601246287473748036408414982043772235371433670911258182848054594388580867194112762773000835976612689144267098499624616625107607860057643736156483952081405626172940918250640064189850328517057062378962180370750521043338959864489045476199242311236035748004741277507950466670847126168102672930146771902368181583258734835330273519565615893064227688309665843598700903789700509647065377033686825623082090526739925798367537181492774865014641792020182620085169036141711825777134762185938119789850860456630698253679439730375799012916461499009009908621271903952221028633708619612847562681280795125197577338759776742898702082091219301605107359776525784569054023648459420555654570649090590567231587154668067574436585726602854085835204520736871459768142526250517069923650697685994705946447369125442358286176914106937442749702850376324586191735613016470583697366615364224434328192540699442059095792593977738073014007924023514964713543739106428112282529312958088955117810369223846153978886235629403833292005694249217066896328460827620247275382651417063991757632481960088504815017255259665892109312274075905373727009680457783665245071769228329181716405342274305466199587090182650151968456962984093151289486338794349411048390702063299913796218643842793198148798041438685534917328821546596289831828463190277833454341609331716478786601558307794279463570494172078021758727088426826377665202215110484559216754702338584566439967093633933111603914702035354058776454561887246783359134930003899534219088636757475144093354043341712320532192661346619575187393759287753564049439689972867443430374012580311670023482986804287534780379444547922460158082705490407330349795959094436172072772912024295365750985288852633891808523857553340094021095898181156908819932661660750219977995179296539342853817223967225748769287004434119978847762723845041533591167592093961068024598201117909038601172036196946793471062397115031835346531120218472146239621287173962282116033472787572300572461110412034839405155532728022949974342342289335332318612054918365927486182981685844641995998098308089214223263791804062132155368154970873985040816178445762211405528801405362211542222136616081087754999383360771981133392114124144344455865843705589042571422199700299581152758036113595295975785259592357398386723249928829517540206739747473536795478845149515267613805318266077708819071944590726007234599590441955168139452279061555635726934608405101015525136612255338725677571091814910993068675658544112297364334752477150784607975914455366501610590551682912625568658186795367366272876791983803068801868915190231121378940045149739431958075747160535282280476254220640703634867058071197545358685540210488276385976726276624592189102980009207702325658197136274595368480565009780206208120031252746574194851166757117652762303983798145652864007358065952090521611732729354546017713681698361960374427342705562874704002010333241523519558451197620511867404368679646340269905089686600092204037705964871480079576477398908675379483335951352689443511052870281552911105546647944252365116327392703904788417820593441439699754783380168396809727123821468775857492938544788002032912830400721168038961638874626283822944533516662885514487391010795747379465043255792418352930451269962601938878086660351962966676644864341606850062508828319112276319726316984870523061133386383437105235100716482263939761089440499298081603885829008374452043573485754910026286250243416137662335301383277464451815348394572908791687714199224532626978700534776936288334302302263982026021137278730520028774461981932824539373035115482485697760965539615854117301233100476332990595971513582346662368139683260267814270887368057668392919715869620521107429673434608849210534931302697014252768351798221692047993015077229202020969907385867935228385987635910417481775079315629918448893510660255208582868712471351985601675447404548154050926646605352605166150239534581004629779072651977296116704603863930284157080639694251093821564524612628474750437618482195249244093142311262298141735577152562382618479029638756403746121562641990953450202434524022265745460208669645945645203657857244565738590891833807026707166557988731786421959200489042018082943328092485437777654011773100848797071162578943968130733130966202453781912381082843656566050881219812114318945605416393299587311147467348424143657810163713862279442508120443509681681494261172910296207133834023058348564853938647656364844646628980992839996175607715519987559285979677361933661536097093591181982744313362755899040250103113651172385356397095295409829287487088898460852405883244868820465886368228075486484733148152410926287887605034116495625594916423768975829557054291007370457146326299402556568674533821120821886463361998751235801084706070123595449909230440562594903524448749638432915169506019189341559289618814563152074413484228893961826943054513596281719488890411756838833479722326938675692187049091720035424221339362335756059621735713299439121165019046938326274216714176704158344631201336658677725063174868845956120929741301514826029244216071844956621742981959179139816901139131404092662020770626831821388757423810088447385331825002392724781232881918836667544092019780019188254067848521806787061646959497456626580690944261812575701191527647333757333045243448750930223383192322400409596425359438556902506433089614943003547190530309318401333356904088425760977923071693120903460092596299452512063251186943131579827865204610677301134189500017716663012885119350941373137063345628690283277285086717457761841023653528023735661594539235234016481662522639301591568668612723158840363644561977350328191357212942854729314731667934702740773772442841809974482193142925551003067883467783731505811889109808655371805384924457032514380449277668677027926012582006768135219340125656993707845150382349502130129582909255087129567945001605491503862242895847253754327113682254152751687977156971183045257388135505716659830471277993400485517239347030245444269810799705328270815616311814342815761831308655197610047680836933931380508578624671215673147002127078715068660254752162572028352223014916782531390202508597776357799433948649069353644608867760017920394619117368313704002363805954707145441960514243170528389220556887483082099532913706916002510407514006125227041455739748801135706922353039345791209981330724388121438034220509563910542694550889376901350117100442963610828426731935341341483142562612281087198646114556901829541851605094658982068338458034386394057702133761926140447975481374623515493618251775948041948538760594334404299070507943119040199303293363578213669463952249460453977075197167542800164924972644146138877214305180431565707179588128326271219074912863546939220950763193474660401777166734164400863846768198393121638305797268183219210624159250567049621302537024016087498675681586892784812208531542967073202114006329056650313756126495279067587502071862644100448734853904611718010933267807166784307644654710558088804735752452607149944419126534281493063685400619619774516063634166024210214078194731629142122879217553319556944801024110855656234118640957500252246969185537295279569826177631853945689022739474069232868233230271657653825173297088133610588859291041118628368537936691725933539528584288448391959526046569200526098482813335163281687512375369738972042832380667395601809697917145960418249337165263920096445780697351218656356487795171612422039552673759083450823137083042837396267141592556964323756331119165012577743884148534095488509896574479163391680562063471606743635302062725926523143718482878796298913554896546557219928730143905656094299627500948608345466667943951731797990112686810049338097015071920786493750957569460145310581387474638395855493711542669986778268385075507081308079260145639620668409957127774801905892422588863409336872426348763989759664345134636167846093156625675998608808930458262644188567566516793514904058556366089852588491379889385433558679186536433798449800214201858834919843079350243366485167861279232497655175640500676589104939173851720645760608774397229689367441262346993786734434478247468823413437603847101746025302708737033852046521021600304220549961803256430311346875167123287423594936919401726336272619229510584235693159644762811142177139993705417687135490239396075113458299553763185901612013459780653529801659780503063212785863190122540191346559915347110366743263797849527340477967593595132345314627746945736413725630229266666875075164383219246228518014774329489587239988358218573266700963358209569121665344732247962239266223880549332920409623363631478695523448941681508756239464810958618159919131283853968855809935543375172380401421870997446303085276081719711643644395820920098971623871814462174167447228854420605212800471039598223886904684981252656805853699277061704029369852695929891585442621595275082834154670763204406144407190282597315756331642185440007622312079693670531940206843938169397349945284185396648057006918841522983135866740885869785047066341338064933144333986334913232089240395282151512467458584168437687211449792939232849314617639560270725116461596031029359313413106631810894492864097490811219514045572240884540989976797853439382339973171322383294215620276261254499567520317040229507315365745382824646429155630125671187622293151418107632177695340691557973916988058121913407481231911923058222049383313303684989642871384388272783164323179495742687428975522553917258828737096295931696480151915121687602370845820087963558926707616367417121853380126412400103364926393229605231577131540155512199347962355611944355383437376767118111307732549761765522565879352082371197430271109667683790954188866758483956809334420875616394837356263560627175721171861180670816416648527426328775201243481234344606345329764226922103781002346477333748372108567469541413674489122993869179973526446226126457131238685909263008961539646760263996078011774222683522076082284453698234017337266514786352010206147035306513304173934593199071124152064904469369117182503234112393852322841902365788263294889369404073350573603145249282905875962432722936951839655366424898677794653438415940126352136013955548537937350396640196189235835703588189583284475158817807575367858215593025834189083178995383367002703257438556222916980421123896043796437311846394516627254830035001886113994638467652058556052521601015769665907873908966646657646046215400244952074908355239888787680164579467042854686520360779814315606112469486685067539399419352018202295047866637582915007184079720402952320698087670930965233166879542293312199332633725761293680803974718728124522148029613387950016904072387890041233033842919778610508147983193414609873377266867588515949521924822342608110847025720416435795166455634625648778061566976937997641512783103168808295208692289175871755344196566499173836950674391051842978037900063100595349746967025961505731515734521132361167676773953386574344989513474948846164243785726563174870946803010311990747840680946966347465166809714143867749554675772327889325893492422421353184497098605973994126902079471053308002515890040341968805757931366089512434062476739792121280780325432252492984594084069529892272228703308518137902251806480896839946111508280218140802146502328937898038267263736216371100913451193152586376679451642806379718400769624317196007592669448426240325105535732636238541666834768529308807176103122684476443458065735375618564234960256698372557777298379264262391096531083594515236168739483940827116317058601971664699854751097159214209899791395549125853481486537767563193677104760622930105447832775224227237113071039419018620021624943391103652767667441062639234098672657979008726582761057374942261872421670209079201637420167383859194742317770817696765374875602194395949199729959904135310592333753904893390395972661799273832197687000085470038290985635694764472308867404778196949647864856811530597723359012043953120035756608519395795700255239355790956224356046957013645014934564346446441213346865248837014339515841276618698345679113774398318958931402533587545182518073837926766118232945853829594194569651192822598050908970359578596707231624087790671737434402102009870207891173401532533895774822828771216281436693295792356052301003409923265109190630657272299165346686932337924159387401110877523680374635531707035939168277183368669165197828561223398968343618990811582867896005885592153099752283393064028473580188555124440188535996864959992378516304792241466334852010981824167428697599354194402247544737413938922814352722322627844955726607809259847517027971643581042450794491012306473446512317199597932796880597167344128153952430510129156730890398472382264463622833409957862266327868895472484414236852298285678734592199726369825205148754846045636957820237795243483715691281459907400909025573090396976617455511434274127516803188884002608340508444507781488404662927559632959930241886877146085517611403349703481231875195573018819916454338784741955382436975380442946175801987069273307600492954151579313722163842207889876719237682291536599739805984999971483096095173612538529640435532249177196848913719444932297861990463310456811200375103736597705024158135205211964809716640820398940564217552058239356047505597158752682453346220997565750547033285732571448491395837903695183354891202265916048423182751425287778552770185199094463374083527110061072265044867883251953358582333352984658810953277937898571918857560648631432410486481202351185768143643179446866264434172993108564626428030275513222799877697963359032606404802051824347226747213904355812464694046245336206903062323013540682223184803095505650805017784916922102545840274137990302355848267928857906876051170329876256378783297808984722877678643525497051062988273951086265049015624089350366767010492023137945276841209871123142622634517302563915314058509252429800711825520076567307698718383503941742273234167101539250631721380614359798777651784337183874640787231582439206672299883081892261603156422942547920934364534421199084105511410033618316026405428307762823455043675150881835584696971076387771129811692688579478610347840519460865901699971329782945855390324645031637506622576018965208137197646487292202689840484869084947390875479518090318973220252606192215991648921083150741433839805633584398734371602390188816294836897547700990749715364049837851939850477955211500470525708413575814377627465954673711859327053149253859076499676906824596799675503449898901318347027762623483123768099482286982032998824798591630703332119859315634344732163890711447833188673805327989539655925358589591657870701507996656812528843827168454340096098299771809112764412899311778134920066437670395358710495522955131053742464090107813355287934412299326143189792648482899808590699258688821134111504934588465475712659308702588294948244386342250734399641843015402070059472432120422788228804165896712095133866489348276775331878081487089834909074243251075329121937430588570611945601608618132944184426175303210073493066960576689022708306959051139632068024117774105828839946826508567306222627893210184676262274368289491843031570136165615272779163791211907759373419100061442895224274171981749692218987933209900112323519210496722244126904625568688724129943228771096170177464321348641849032416666876833350131452769165845081826528176225041410514251675887261948490585472184341503188689008573242226240487423327464864494210319889236705256808008541811285426871309271350771220754326443454296896392395689699361787808004378465866344047668796122218670956918546514159851268383271364643735732767788114425427974406980189596988624359648353164348513475714118407325513927125844578972830613036669187977982236830987615893845517023116917970167746874624929036614456532156964424714853472135548302291781987388352995015733803094796669786851050692817763833489321533534907985030780806817787042384412139890840866134455841936015526146469282770304688853581102493462546392907778290284403436102631772069909927113311405468754418914520051802431766558230312955570906032166089937878514628014659316559952326931026795612795898780336262096864687271526808156280387550881308502639863585238665517393578216356726129054898637405841351972122549209492476645489031901525879420694344099804028626049088139161197731809008969350797597021255309773187885820072732279690478740976009773808175173300452189648592838819010592431087123996772784406347210442887210392681583812107358447933543343608536044106917322992211286538315149225441422818001124308182481063045518835392414483399517877953161527531578492265352659746044395531434287698160402744578055385846954733459208089651895250404019197744248300640619316295113572249500556710034108842149931190827197998340882841287051444160266153609174308551868265981984758124091182421839564485266365882371657553713562411679559268994844313253541210838523853054209982497832359875641297895980108536290988694889857412785490768483762646802679122162532958945301646187755695240576267781028244370892774635145420869407168583713854148287946843489106180209783913310611859471862661432948786743220103202187272501746603867172434060649407656468319000850828434517241082197116206278589922843934854896460701833112925244802927154380092750759007204815167881867729556789063568056165565397618227817608401772167171802581617985526439060288868134211130408609479566894666476896486220753133102799562467889909576066804221583525732013439127965370629340542271673222218742733381411424646661506497421442906886363977826498165639060955287082117928185330212253726569601991405592494132155042070433935337719797281759938454269565321107205547741005240363761526691728523015483679701807745187364388555024272771811843790771860330315736936215224769719514755346274542095292568649930962871717287952392622906595589249942132800868885952154358333880700111873444137226528279498920010255409192945751976393766065602575087550499811658366354944326268841232040927838250094191200101599470915564500072796782291073056913690622003446562168397882327971067111110856849466116389453022392677718711732700563243369065583803949109320155220410498912590325183802768096785889340361554381598009040502656265300991693430185571157273683881482947975960718509740549517225691760872484942553184605157548016030669113991479307509899721153444843469151512379714435495589720407441541683439865510396691237046855450107588658902501373008145138229418610573028742657968207310577975977190230628734279991899759587809710560112393390568905621998735963420359413227883031549041518392780417631070743320519508828037085219459978517398024945747344762661972883119467316013075064374041892463554655128508228280211726641511032472158252591124090930525413604901559595143567587804179678595666156993888871230692047700378797784496189757192856574593889009855873470399567750978894010601776343307990044482131643589512706053414971409225118563986491361304303309217463623449945185168352065047714550482105996133017925514047831993961235585178715625847570277929499560808164388888025630511684260414054836868484040700280230886374848481488112546166353506271454539609268409504490054531061702717338520731123998700677697219959131325803051330570010044615123864868515076371928246059349595452642510261613763338127645858703158127093108938728557862014322634601380835553200421204773933756752270517924852811135126099179105531474680470198537611988860595072260769222204794074773153484786225471314410443628033551412104778975467815366630633541265586848504915706562247240161201139115944310014431829649004421465039029520212912659304589508694187723519958548012556855709004767393011465442115681229238410093342380454202974598838243926528087360764392186952242913123171487222319614871522568618569474691561583451403345956080924887665069025970576603921963639836684630828799808425565397621291509486841523459966377692509120804690322938558972947790868680995173000363187606329785487500223164403429501021836645636905100380450616043164786278437881164421496188746345569678831699980302523147531054995373353339745604071825009789477092183237974982159055000021964265935412026124841309209289190916195478998497021994751301147134500497692753052887962876974705857049654697800811810500718229839239944277887700661215878517729173787220954879057973635516081713143174143678959274799333862255462339091878963001384693317581428855417970894946077909289218863596702632014777595725533539390423542163540554763350182081489421646402092325084952556989858805188956066404565465202498853440148188262621974603687168480756393469774096807359033029011040846206804204224113357600521260489766784392014822679043505389688853258207453514269387129965483614920223406357810012225346692653281838821509461449073275966398452091594564219609923476398979768910034286864818670604505519012009440465867263498526902512499700958231285816382641436575819782508382763030128821145050743755072029404398442230635973826466720365278429581804142532712769775753236071451211338944129756148629018113506519456574537221658398867368571888387586861409102148472548131935401868559804507322976118707756176692897974260059993596037700955796484627373056038276993396384991727468691706668862014948822814675497498010638282426355411188309596394520647911240429998776114526408585864028798599295690298486801682736562280371769244937327687866445793105229552629527982572728500955607266055423703070140396834848950147182888692808504157988241847620804119060521557458674586062335814731410125978518268243715984846647100871145864424051197280950773170304336787281659928354761801967493203969663026589599232448480218959452393973947258671272578063107869978883995079380790931651562906272373295824655049192951806469282950206010213068722417416908782411423840963318592829730849186897318916469538420440569108699614525133185208322085133354969956747032804534314806520333855146905109398492290279507104122611749905502601262175597917637004851212789007041213488682065856787152091752390523687887697019032320171445104732976120238822816724761501907130127036157706586526258726492323134017865576650092367932132883575263424782211106543138579111997052699486341550862666613422761989271613628624325319988337206112235971325029033237157763291693407289968186804098549289068547501492385336995395432210236374091905870767970719804353787987302263736437079309502746014010519787305077239979051737670914125936647317086193542923215377036877920179661137971419962626674136713742632355790808885571523117035837454853932567566905105713659854158340964648596840883758316665148771636972056347954699782206277976598365656815564069121016962014609762972805491653891127456276307945154461351015782584573332384001756204935141730628959376901406664986883205940350498853559118293201867015546199629990681267096757613967612681722118363786691421147603465062320799545413154178104215740874362924134905305252841815621637290099231263176450109295310402593692322404416815229435060570376232699830706414952140893140172198680609716590034009340295285320942060868123147510374077776662346837997843658667858845786598720274078101811586207767404184923010381069447555214574987154878999498126287483354606736091399365588877341227625933971932650014385099613956670012902355369158294211823360805442178295122940719042191493763472636583347011965309209637267493299999255603256658937984125364025342610857620889854287987185168138798254209737123409793392318921513634799324581035134651317351644529068594994186071992678977322484797623144957090839623993107974465290350632453048202545638918792802531671599691231061492175159182247244148617112268286115652524266936921842212380987159029115872132631527607443026538747020110567528685899913983081562556521473328858941040842228256709950063326987242784772418283157415481713046372237251669976913520201419581812599345173764124812990337465866470325806751826751515763202554637081261537401702287325703602975241955632701677816924452396354106834832224114992624450539068579535894394331944682905128030329663194550100347765710483327273147969203760536209514803156974593584543609704907422022314168458806466256583271199107856273384961189786080342154861135299909406291559503262433654977939234126342372366622773870079833633519678033845925818391386762902358190978557332718964667518114390586090752124685639524782839739072630743954507561114054210882736433190014956190534746903530185659923655469928426492174426177760461876325193728454947230513212215927748700852237852740598238554309071958073379188335637459123195261969609297042037770095804175001512156103260204238369683057038918266222554957439122038381743964387931709307693676439330284054011044755484710418320837593469816714878451955363584683719655365371202412015166154598120303800540933612701949345498641543424206284525594033345554918350234396668836550281094315910485277763002703993788027073647558666278395725681890366823316091487131535492665468652241160532506395217980883181363222880748055148820894785582660112807785155209079771011038806182703931546810826105028013435518312051884340907130585691555516146214205493570465377714780215711738127291688598194667088195695830260319617105920493496712500770852129885863103690200534327295969710752698213512663806983940178309318595986112716050579303893279016550596827646646159238439289414650568030125405308569093146500015434146037919863156606561147001927594314880719387187506050851220595459288473537563516196789442678753627131246694302086248296583327910662340063737202308368898870787246339360446125454424348129748812367247451425658843177238009824966071728730246921387173942758725570868764582409612454296801883630448415784624840947783417661502647833446760738572621605782431540064176842916409785743307769836340917510091799122609215023272813021125776740352018664798221567485129586565220330339789999889233349819773952231366146957095879002884441273377231987462386643983437941088641379811482677648032588989882886980853748276452127986914783879859898779319600676325818722332907042310853615168382990521449118954791770828879367751021950545512872494690843885231355564059202552794805873724036396028378668281426640216772025699351491687816403133053379426999701401382946768109965531913618090947820441740354775220714250074881906367632470910932306341935751242011928912214589245702213931043001967182470012806309484488316952629424402334714596282248543319826097355768782297782182262035211098524610054064483275209352354494181173553854755876373916005593164610567878086325317191252530955549171255985044004855371356977808636174045367831510579833208292973639649781362343126189911325544507581168711300264072713326273446854943751087541339721894162490961539335925618495145377964689557152522833847868860006067531174643962010220264450244071456488292690464040771493713053026782046052070743702125818019320654847852575738958228801994768869258744267499441828259204691064526678547176316629216580690046009690738133416652927166316029090584958868630175370776747583137309016012365811833185809998637097929133137324707642961180565192624452905289152429703346179592108535264665601847045312402907077200907382330045559414146334440386600579629252324874805405579879133520759187897210836050978571160518507876093625500589054718491065513083373783861821074028869840926308797329782902987092620352616257575369917008166825327837849330633504008732420902711963431733945490418298606287937934714349365423180084401960012165927075604142881735129424718358908210798733886439420193011310136714705991628367807762232486342144211215539758931121795010998298485639890311146413002282185022316710779411522867021684291825805286820105205069201762372020052024198576941303951775366855043186343965344704318314845960746102442747093244276131914158093598132483857701026044405562310567691638068936005061414032114016528240124536661177561322019876164622459207020668419462094828050854545860734130619145727670712900020764030077058793136681222081851815297414238697421139872811026555482599648593266085778860260435872776631230399119472410051779474010260253914477234999593172165423688852848189417909804864920681404409804548311855284316953220974182508897134599978093782045966593886157458885032240512633058835854055220558645017087038863008052101730504534855164536381208326094341284961409342370484244006480471723230495345953555973064274646995489051125497894246570221313320057595415865384618188733832001380035604189867250928550533368977512625937484457764324259306249558301049966493612010058428057282652608293764696112963559570944109328783922036396237655151214694693961566023652954894445635612778949299983301518465820541432978184567714024619110803595971417150396649596020539312580124712192251615333397406694303194671602893183611716135259732284474976422317921258988908861645218493422699673833905333993431633468287109587858043821173616070752051678028522007074937169073172042341521880000418599453930755933657245122187553799272324979427851492977075681853309649165817740211219931296564865140616728738743330950756794152290308370941234896071397955289855166168482622170250069125205480900649378376645991546939195239732326528213847922900961991874933204704553146972447085685816094370346129239324847132011990868049113001279665118089787018976683066883446581240479285226230309713952491576326145714096335897135055970661943283638987689927821515370936557865058635940010113582648588169375977882733083788029180260013105285601633559805514352073287730279358317479622193258656355335706499284712433140230165754246022610433737607715239709202768353624763203699464885626641411623947864763019735096122166398734792728808078306658614864259485446066190317537766450860564269366798295111200502796070010312918384092660266306028956151581114510500433090673098854915549492542835135016012843049278288941238670919288927954032137295383025707491939971628955047218951676432180532934250598360849261766375187395926451254413889216509938029983240259982289403485332679621211546887302339574612422943743195860620245615849229171150418777333331181622852731358089938358820640226395579568039473098351014699293499417496341447035639864295910088317956289045963163572793498270207071078168868838653516179255485196505333176589978067058900923126795562583628449812774166875059591102089998748608223364611599061729307777290096572573624077248997309190175082657242176763941713664774654436734161146172719421977860268848133286397973737152192219793065057253941502329672052679032969236568492538147254649694957519947876024163736288329228690887931301312970550145583899638044573815281819158994574294866593556499289610153209444096037812499040061688200378124858877332000238913075607720386464143284145566131554879375969191889704240099364555095023908993808840167719459086376386432850824521527173363896361071228208975171156101360792198135214547040838415886771411291668715544385164977368592942272990207875210708361538683855846304491148745894864345174811864667942301856788393918006513271112331520822452168462533883649874071477691101562517467490649642784122846054018718560271163548656872798907478314320912921835583807864427842037970327488721287481175935370473137249584854941407270688801508803622112441363270767561284121773986323460421920511468075894886415331846299579817892972821629721452503591349756940534087014581985515869050622836382704435790204954530943490561602976399223647826651848989356163669013943784166997871095651814133042598827858603802050796208198452532216198402806173020668370066097792938250983842072916272251298575062442416077759193952372605556897036769949763512055479474096893690457103561637041625395083862509066536782033182263695131064038975431816992578580251240584310510776466269759518181592261496128100857563688643043612643762168860010449538560431276731848776782814229966367234880514346145486276198614245139622648886142612617967370583462218521926849470367308006541163655416763047229017244694884921097763040236129920775491599567415482250763120686146141921268067731646533577045859420866033027230438863897428480949209471592578015056019576105599243162361572569252095457393711642615727055328924038764111935070435595548061600049113306462996042575752168313508135334346499053237202661924863315220027383949950593816580244669588728839371211170998648828697410386984142504446696942262261946080920209555592803180305712997085970652906963625094182810171850147911865011085775867869260164240598940251474737275498958814737252836076944334145666664147705534108469327768923499682771443177303754303597125819114678263923497277463628266392787421890453597298327625055724577910424747845541070728648222466047057346889273488375183981695550860420560402412014739039858166170926746712099244389612532416368947394757113626592024138830343413870047669615519007584095720924504775727472371815213956561532000369561856043739821293466477092834816149873957331839766369246325581829257201889347479774979168893901439896426984592493067037441347815086421649028507158556970804025693834364720970358177435407473682770658601564137937598369261603031612808025597580608243901496885480366542896220768621164319082369894186841924502580432171215724314595070951552025509558662165029766546148980240594128116941526345811418300577627218239420461008636141075079892454086361073001602744160384186530327672634886847410887947706978641215991982328347376089180072774536284182110452797435683986945632490064912735812822241615649250458691546102557034091454463982993819744885280096490806938126576895017516805562319535616190489438014515544215093279874949616906555828004337752394391432330364650498241202901403296953447620672930760421648244483977753279341557210250984602637549986526979578907355195474875034073853601570263883605810057117283035621652396154312316379837861927691028009217916480474851390409603935733880103865802219022848828629663604128388840671312065211477874226678508905266395065121501440161131003099756354407416217777910030413354265211388924439759317018833017997764251301209527831973259610951766698369212422732455286649026049188876510121784151218641628141280781127804771015423172276584540126573323035111663938070175069490217724772238150215425189747167351890415693318185285295237083093757958014887688442506189225147868040329128245957769439588690681569547829553265019630485764663763797012093011726005768506980993668213065018126982740707767662862452513334061689644357314395207765050091036785196204589335507486743229343253878533053110823275384595960105147670587532508753291972992840539006743836749346637111168102165245552224981633838578829933004003060128933891644246394668345410137533991565334008164091833130087188400152028402207978192156013285062353513123736430123090258953273420671744048784183699613959949874153169004377817997350238337297167331039196505669841417361349825063266680583580439764779382420427806947240557350409600683246310393033491633704225756561518457803754789484793343591338747221190733851561528316478487079274920255065011450503162534174404625060978839926252312893578183188913084132100107161466529171745773862277827658857306823924969409081978387998955627851195326006903602963861305897756924698899959149575454336891761114071723684419767008903293321002264469410366579882544852792582896336083319593897727194690880584485091037825373933031814824696706060905859429393736103456156053417001999115640864233553463935707890429201341811031382098406691863885242290408492621134977790895174394586036084913495630677191323782761632626487041012921752064714753933289571990600670886149954792412528689792643150126819950174438048580406419472953855524505513842368133165165364297524725884820902700609097676856135274689415928073530431430864603699351793936104775509263475858275606822075568154768700866315317498535939265564485772614844008740406852631249418220667102389493967447780550468724342689739677298520837550307388190770390240242107580357153521051776653672166301341053788615042039114085959514542051472739621834458037802866161038698072645913932233821036523334742480319247040253644206166604320558216492555244337368784324481207744324573868130007371560619766846929427552737286446676709048738931830845308053490592830104267207035286746815528074782187492944503923132328998699378637169977957591655191644173784623226293112932608219345004484987210925356207891960983754995801449113668136277398258645845298397678900277641145923501182364731033782186532724996048546600596315558637124650327510885512837129914820534507061429061951438018766582926849292329822893317580840220189070963291980397844065663907381464052724982059691660954158548869192521227118397560570228006328868472708497270270347989024997818521268233409213809543961480440124701365192255165541744790828668297712832306844998183973460897152354568247123623632677177654711250418269441807600649459795759373057017828901713083407445940202178853379809738422867206542274198282012496442962134746732024556441377147677381217146761125446113371177774851592829328383242183520590636425624746965890147052122097878589176720929338959499337394179850099306168778889703228062408889201320966171099138419558339745575973910448271198807231544266485419977005125654707500375541536968844893538064692708028879000783404109130477750885339013899053324783073231123542482768317984586213708253769534595048101009995246309308648621851213857104787582107479442359667241273921902098840108439162113758296660527962491064253798057628573906617046335324320548268491145449694742315855670916105753449468651484676792853545676041286465935558178218924599296507344705835236356474372312354567078728260652520800374628416923343692891467329829540911907970331281339564239238860833993223922596465265386102774772027060851467128038320782451790098545060151545538889800773379305817345124969129726989974322293038051410414594288622570957157068685751314964815896382128485201600299849902821304786973581388934324866633988902716262920233084432926453914243767377943525420836802726895126057825843159335990532367331265004262908952322515054884183143274070764594306206791991175599034186328154511762510893784146781493643291366250762296214595056249252224001762744926520563120185238276990319601399621740762370579365369138774204861498472233612465910514828029784609721308551784635838102068879053719464638896418897918944850322528726379549510154920108897297594339541776071849706265899518462543788145240661871467643182997887740355544076738176559892084129343238732251256931447230013127582534472879970623734297155854986230839781281316804179220900323093513430658598899200819458439842090077665196602275327867661650531924200475012514831053716401622620215358576331443360529806384266348358298005725224499141976811815147182059025629703707710727323557062593363362058902086408026530113368489516887223613210570563751902984449855203782389267294306862047215996889281160296776500901399475242071715230335921498364293589492548660560902350263841215302514078775626297052361611788329166687769433728275600981335050952901655130793150892561999762004106183807632631944100298465535419656844344218671758406498476774729292473480986383661738776497326437630283835331962405382127823120472928584045889835447870049250191838815591129041966204533019076932700799274637860501256530314077997867879429276641483823800023896579245750258650084076897096456277829581998027314077544726209081646126025089670283085645065314687190305504167492860939061676265778516848302256660766973829873271992420549672217928017621818858078111239239223966473739006050707708676037976795320997990010265512362640291930762675513613019408269451884301200233758259828618542440000406288187877933695814812057149864262205325061701732553352194237686984612825694179289659313851987675233822865692808035516461065651271304662830386087744107872240762130005825195180171822847043146502229121414658708487147571970724601263790279551711269522941617748586197467040478594415019067750371618380502485664624674889333568201527513387103544928212618977452621146481574034214293851006294648694553805666219748640157600510992991352626657473958606091219800851893181404752104036969861416705433587907763979850027846561385729800560769727643539037972826750184702286323844108771568864345651724623118532334403682943947181049916083965342208607769159077474739280698227894341749551186312492881935428220841517292134032448553145567892456371098085489502368501372243944371651049363122366965614258849084101728353058923255908342483078368980588948224607990509605843634633460656421731081499253654795568574056601724542708358442947549359644099252208746378491504670471735288869151256031218761019389602888337572653565629764838090578721594868451333348062352326122736062220348997445793655187879969146599793237816239311460246975503940954045481434614118952562940964362109342659364330579792467621759372005609665128318298644563935040610424962015585955175673366111366622726424322292050095379503307966154647575180489361897450705409391351756874318623735222589640543369541644601950981436650047664790912214191529884953736400333566177208130322463684667461897186610536393844152571635359787368210027627558931538417320577015762950864053569037280829128035498905707163987222647432673444150319505333043900148583185607357771408792502690691698339756108531576183848483155751692325634364853715370484986111611598072347416266494993329613882748008277324755781150609424726887432472389665907195481437716255485212060894923067848970172094955325933827467573931431922791350820824097226304331636859549549181994935044284039553282931325431332777932016602179279788473899160564303680511975177273898574725168144049429585924141608616273084676809540955224281188932376850839598757207175091890759620194678580243277645668272108036964026239958050640165729357261465547572167389712836811157149441561351659129209105971062653605375001518671543367781878837537201957203796810024403412307356792652934165085698923188580644432920368575156527818987045478490204678657723441078177644066819822653435036862252914643188244098247594787190877063587376360138884967212515717813043046085896868584724035317811456480144268501491939527511097992840128654301547086203453075877681764558343426756380854025283484968734889373699826990692464432033198092336864797238463483206966873890147868326683701753890242345498188486331505312038475932559171089688489622215905054203805655849795825122074443886961118238101620004047146519203303038118253767641894130799029380133811259182993216275262990541878311416738137125342316684808403009437271735074010934570383128295134915938508207769764340195228003461183440293433367798495314907559809442877314260016169354763441814739244252435172843079053309897217382169105609122790957458012799325972738891853686793098433556327480604939524153201148741882335873253936302745330409608356612974126725267063656658414439033676865860748596307539835703370676147206398046436372797768054630580675326090333523003267080382306077152924584117025423771239299259372523184471878886464312898820369306621501896878113815006327165099281526933755433597008024037055712509029762359027382644084179364755342595085122576402966466021688750148333789414212035390953015813857579311074996947328635335383194731559697755257643087856517586542622066583566710268909127119347496885624230836324561932887022401745230247343250393118579041655225150571673808646537836924667394071806759542236467507289002197564920885217497008284843171286488109117902800567808501190502771377541055296888593010034968708329388045681758801203820413185138629851818589242634545130301645952526527119856940230739222677044959564828145513421580911169246306890636088577331330293487454475845271449989440171425623691195205096504944228463980423364355821075348547608129423589647957568134862520460955270190175591799457126152165599074478598075186385123924342980525640956890464236178408999081804055737765854840825422857343301026628996863340280849662482830647289580793468833932217244036279581669841715178718372936576898262371067477821044764932066311016607047164898681508298459952276397206357142059777143874347698454152814952873089168025687138951387633056907744891504991662122927523166208695250331509049628342036438798565127832630927893818031361468294001810574752873379302810330700621119813103832133965999610057553850692917019863756237881398658596953267909094062360185917908415019311196331874434464496550054376960465894286250497678392980443393154800653496004351932395274032874811278253104211968956674983667600738159977577271066714893844411161645495366336016583757957531618983338212794669008613933005683998456443302248047791871821444611330260015991718987975559278473051360213880218246373263572557373164046134816815131814493513328415045570419342662366244332193324343395230429729334255477814471989696574233008890356482508141663694895627015291184519346357626396934536896306940370969499108721648904408832440447861762333533092080354456287425293923264870999767891834872550720182867899497236171151092977536451316877670116432088543690470916917585960936289767204229366285458193377499221523915092101022456812872009244164500740416731403712495428275505821236240880373968772610026784156604397364543111207662112446148283767398710194378382739743054543454687731310727936237144526045025135332857592103829777145962561441384993717139729769413456817032859087972448640259499185939649654993635527819931014410570714076596230409774124973333352594846223195006662744390493089423403795570953814773580494103766173798907129624708531838853931154179272012006454422556720711565631667655861697248820069537733091128169058126199981970890201219303403734415467421638217590860147787023024804981713945092961270610082846918518131493645504306556043065640203774051960260287676145305900033297990862707458477625448802957379677123489907744320502030719053942598837855222088494431548687091835624772026653117147040376309617558582418308487284153289339906349755938408273652014335691232613149199042276434913902389017869468531317470031034554943223888110236860893217230733612362259751817043446709425815784109298521455322959444189447892880464694204430671008656052290047508988121239879694983058177053079383780464164646365126711221126603913498717315537555519149560141961857478639778491888948531054132532410790034878642962048755704283370339494156153424466408700266318424350344207586894213731970956383421893126629982880130739835947391840198078525656126782190825226852074054353421997159135240726308472426783330803169206323584469437669378829194710019689918147027243782479439538222452461246093715601494153277461597432842048298100645003517695759158212359657561749055074394563988407309824417465878530025112560202263412179323278324102350803559820859701642579422464371236449014364449778966949735475723794935869753519953746874603982703870198261991920327764756077684308077464285011556116579147537123203259217176984846952366984154198740618507055447161084677902788233212581530449534601151313022412612055277483813851096630858076336806384687066929966022715479845572597075672199022660866430918892795074805238650136580571890210617062718848509458198725600027657702789243653388338750515670528422733767283912632544559013294775131822753470534821791720080323484041379683753333744276400656801254940982764871475168539922494443143805179512138842796274088470309829481142574698057183944954918373861174045585626234099274227415643649628876803127451482005493871870404570856599309567595493489292934270315054351491617069561452609015338712614176763412050751897527350683783008805955744730589002580515825790846548311024578840163618601057378654073488323602112346732816438553089937826736958975835726830723014443539189729253692928810880004317759444685494047880225505780824637750567659485944258077681905381344623709446354106610650000737335996559287583283778350881256786711500834387005673522210332158035413055988848319403561933474210566426677574005121627687546091127033235639125463609861228322255574668346247326844427442170902806749580236308256708678475775606346710891187541875412604114399041063856196574043742000986498504446395923275338720581462978941794023814065590847187565957006151339945413693084637077648839508588159199215364244578906465030544134188875809655464161305795614240860122528486152672654889881400198907492552846087004356174474861617375699604069366610171230247324929487051181935581832674475086364015931770308251505978719733089540765245648119157211149289376882242833329466483933882775504664615588781887036045272961918843185866286960087938255975826068514992066532382527764400881651692412449224151380938925932836389027402209647650385313758863898118002631030824421806648640654785173036945685962264926530005276966290055286321396802198770759435210716162329724740641312508603679720673058770673354074858770256998101429152382669961265088878602682557407971504315328018672532366195693302006537381128406737268189011137012380157758587678223722319851511765130861930262838838962058713650746762718277322169129096793413827272416413672245982490142132329489660061869527289300582213647476136442910024714898815400837903793512927553633170489684162935196404068203089433672563831773306195729998103403021117009715991821799443847279711872968927459375395810232222706837307085520362327985849590078670362387817971647796604405324733100386306754243181683473088698845001666534051157706358249933438437522001342065890709891647100224433594202341490326769585614737539911326866997126368355361409036243858066874637421527514570183622600935189626715638260379218282786720167358455697538852661297416589486735348433156131112248302113720613625222373277509813919203685223128013272630128378402461245230784199439407058837763471841462866077047484242565994006171746655967501868960593725479352607025725751284548083075225416782976689959789115202130122815729609581799302185969576601988858766588031649938359982179034031289531105134163853549384326122324723996212969861177863242536347730683048212710420092664945043363656609363386908221780696320085217424720561547957972024547390292114995255352189519599737593712298828237253757436112382362574056680163958628667836375990281764774784131558670592134077234784946410352990869298391259340492233526852471203543588547572603215056240721774771196139228784634643443507035008304262367401162721745310700602416955022552633695741794879402299075889030638973349542280233387596318753699875218417746004553343119350403111127815538722952235137381392380807707631688084389043460334248239834232575368678844476728070430385235193618970287246498342242665719793211977209021418319820027878152069429299002058219436177618538941002171096224949329759135078350601781627692669739035680451510460345764016852536676696325630090837579034211517971832824453531345125488153327530715189920293729986313707271168599050664737521093404481220508844231845978036439275728415891631775921216276125374174130021250737736219928511032885893922200232908557303780497232194858033317600524716369391777693846538285184846386597522365984691539167053912623673039741936464109812195022700361524334826829443754433697480970223725596730908077670367693283963850072782259655939610090598278974776486019606557000275607094913124744125005071185167571551882438996860384530357492925086339532337598777753143981661622486431707548641580590505060395589786660265680606662090340028675637368672325054672320279726851204400049145103629234447274145022865700430007272915086425690918842071118060550710071462955806202891651813487767909382008391333671666715670467167901464822410900293893404876739193672459077161273652007007362210526541100343407639303180128393539195795943403148131951118236343680036499007206827063790991633965203646265125360045034162887889550177430022066346785589411119224931162380747973987794899325670402936766656431888010210793021220431654860761818925875660984069941048658284780665341178709401333939565118075927782510722821970647695448494726913785330879000400495743065823639954969443436040985126803324511053517107904543694549527155293401043286435071453449663329902387860252632159280985595308516861236106536928898177220114997693652795525592187507276729634721439781422065147760450251543407416199867607020561500522989273356537207342363154172966689724050471592863261612891457560927944114646262045721765491485303561100309690030169304320493586846111609157596586001804128500330698793378285155834106585197995127710528053516588933029227167639641988105523429267804587480393701454758000188862636361077600296544277571927086977342145604426994173438840689117556178681377263118708041296696569808074957519384139473100340435123613078327988873091292745790312834205379123973661713844013676356515670378871839060635832945894955446198701436724882986245604965461391280711969916792910004805766381630142702440967185694459737631674321720359934442102730218991350616124597045899307694078474613786360620794056935494497945810539547683137559567251780567158660995070928830585649994518597552750229897468749628813898558053113797816069366963949648075954836728554441140550100895313876400820903561910796513708685087170527462782382589691340348361812359206737932909012309647408647222728564482010054758869814864241428289204587745307231623427146562954958475393146142195921571098485256662988533422665293900939545372050872091020849970142551178354224240462656324989685394439976968246188840570775647207734174383776359649698845602570430019846980830633338254435709627062315251255859814178965318350978474779079548354067968144957970560881539302250634457003607722703542775850940826980862503801206860258152231385926003026200247288201372276252415421763584146605752400858480250676543436093697315764235104250409500715542676721909994073998873319804188084971378393664909701035727784950402913325742187873708084710958106661903333959496769984246077611006531886947154971772031428887930475247614822920505104504752519420548775118798519046681590944086969964021985064457930454268064938856662497431302164623148039677067690343419789285833873640185773882144145336177820495129559908293320729955939010545600281497821440305258788539331414795305817324867064726575814881483095389660759438606986006692989137358616773786665334796360287057761143203451225027832817845602217700801844402984011994544500235713559884569293620609818626408362502658045796904523252758496406164801142263096607814713169469674998377978672783498181838138699163030878900753746467345124863825620767411774961232217205948653951912400449789342255786113272368625825501406399401254137329019127207937288081598835489860978552523279385988707805927270142699901093338798097554841059606206677842444628113594367793403820528562335849030735873953249875345580086535255943476154646540784136539260025241768287825034977469033344591072834014227675415451037357654054640196325718803064040673054599986783652474650242010650282605689195565063369445706992107565643144029771230274676176284567160175352083569866181855594032054920280139756821354035243197782298950887476800773662683584748617872105531083824299496598629222735288270859625232640952433435987501617663713152645352727246266974739687023350835657578617903522860918233477492819268176018621637979608028261836894243902992887151374645987276511890142242863116556704296722452746299555383268364320638193524076764786258797208666894922427988397620841036826221124699726325470858192967376943062598777098292859805888980829777387582137243006655329195367520289680380771232532284237771017700160194994537995004973394834771361728700981078804703509459636558530932242676790071189646477776189868268454746098787187917811649875129686456454611318225095167858067925450214706504681820471360011734546677318938403013349340562650910811980122918885913157015483714802759296261129023155118927912092479521971680771248033593083438449016269095820094388303576493227174127358840993584890276999429173569704389316664480594986311544557540656282881371136811249844339948865808955321149659724982082981741971951384082762375799088820567280989533789880615079547613376253735277251146441952078116757361330716139912022152663355843069611904114248380055657772939751803687939553894651522849501337009935777114572855132971333462842528643893430759593169820904111059067842482700124683314709021647765416916662312447413904576314940358584419599125459567734429047606944419987142718577251008175028546507365680565483225614052853903530194828096869603561236350428926271718184091725666715113329340695358458253082386112406624891111181626460390925643562190646155335248497250950293758307689832048170000094133938522126507204369064772090849916719609284900622267946605459337497579240155591869350650498842137144179372014618202716272723520238887558503409796248968726068117570879429421288362224636687458021091690982773925373870840005372813772437447121028954009190688523545447867335495486374693883472481844823911954069740482379923232948272171034154301472828713353958402765019171613051632888620426262834764324732733148802796524149889817285958787663329966767366899195708749000309798633702469945743205195815741447460871694332532934223307155622594698689327901871574734994517586299612487248308922959517672840285588791859680672202416955948465089127135527095413590171639882547708790416181625357027885689368666565978810597549826607763465258490803299145046836097709101328141547273127129472094600818007065021588175292368704988227181764661561206668835874414417801019747583502762726298004524476024086832024384150232812342195842398305813416908389127090699287207571418136407069018837846466086073852720191821028190132031337848676062668543510985098216985787016697504674876137141068166440739859297665240283098090896196658387621141161102664719619208631965153197975529892376661248779435566952410025141707975182720250201082745972437010555799756049476409736207876275223842086898189193210454021752588706849724103161808244346678985641492566133933822095881970262743082187724837287980295168017637666056779340672968306354559824034061376195522306083579824522452607799944794145850693096703626098705281624339958186976727176453971082188336246918656165159895506609598564610172951858295630176990604735189989242013600514733994404753433197243280252104003430592575570862697942490949876995986949143858146589483865532289494221925302274909741065929319833132955658576917904372329878811055694588916791087611068069835413732474336476743609389737426622079832830813091127914580573179615332681713290480087919612999617925185241627414816781606669343537969585616456312805557146161991017445915805264349904244076526033112403398249617575830484285547362193442874702828229963937897415585186816621099407125842643739587572198096310159896355756750389010170559716011143629922699013309563592079274594426839298295710321384105997614277593656148449257948214206154836128035339619856875311313071129413630244368038774801199605169893443859813390652410214354549222165659319699907359469721851290186377429565684192523607883910368938860802241216811765345820517822581959737342527770107745260104841939902625031958604662757277634171957945622458437187675816816339687101884057453256765194089736990854363836321407737344397123277881256706716366157282290035062738249199927200406724975603400657873386778225230723360810559044908645814238636192824541323048020196095344279794856932952216451566582983244804539974871599377727112689021522734553842087585290842512503441946460585006576327393119177920614349042931879555429891501444859792623865122201797025137400463993313161913733781879269717668838566860775873083873580176202372579061165130640407825476683780932646783588548876733514140507041589286746506673205099725801121346148266547767061511657046909135932277107861844913936714893242194880146342780360347107054718206480157237997342426973328094597440379917752962760570234642893017159654252326409957799122522520465584028496150649747611690830699818857236458738983899518594782678527779432283547282461365586803768083966993417490489866219200272336948107188152290248981533807010286282959873099315415039413593386277925635119019943543249691340003306994215727260453026347203192665681091460049129329968334841745026375202186882580563736772258022391031634275751468512372446226630241976009855826724691597055569959176744712865895152022425048347692906873551803349848888598068576762019692591878287165981932466097476723359411841493982278372984285499516371089943620850650314783176843915015058250238723830954233339454403979615026931998986084392872785599673607089959956378862533598895572759224766588857239328028334205326817320749055919061515882860850974242650214593030965309376041720105638941235095728128263970114364093578490728538262083412490519751151327868901746581070452982918246944760972586222376842204880288603044665840139588355917410081789533107993599445436825109272480244332743960657697175463612046990515569033224218610050055393901658872370377750059159407720493381849649521933553223587381125411074093724884282007450672793735913685192388337516246899488228836299938325755333154522190493570321691976896313055173950947474636727826865147134582253541041452682456963974363635662780557702540661801410425736214595669168213053757901530301690165026836646784173734991979061130969621405581441133405595300562926249205400564549781590631066013308989228984081980097048202957174826058904748343593316533325432679659250018377185149857377978719933186740717750597610763641567945990537542079093425634420750471513672673294765421860919001563957357003383972472756021008103864560810465518548262152753695585138321808934159633377963805434353297394891926084744131351342338724366383312818771686013759106820776824466972148041650853072422607497809756708159749366351456912682660639553406755053862796859932996178001176873440695609565680359520245199194749197912660889591010310930684971504575336654434707732883467418221195749994414139489759939479944781356993827052993277126607456025807846132256614020091409189101779912270201823546095580438362516698941004123531997973740812517092327165748440613458691217976802205038139382614021777544244247379694191095154248185704546008184582887302544788686012353036358751960435761440446783353456238358886791219072889193806636813077348424464809039273654546148196214519508024223663320878033241954656993285938182918486762814223327030150988321085789537985585291403232545041918045960167534749138117433358062875914732368196288954594564071054293037478063129668308891632104978684515392374535285352161424282045665231530441157752710301821012303558429987348955236899884499135425093388991792694948244760866564702952430005244209308943157563303799024190265205655273489373499523678405107677913377749995852163337292695119316597676307163442977892570437382427387511315675403185284693804787985021724773061256904134999216877162715429441401333329715780031777083843378055391639294647987038361083815217487751862407920673081747163626618999304880076077050515730584292283006050414867800384025990041740524332155312995259339314613183225652673801780772580076044975566760081849688695807977858426700051137604156699571220256163402430988138961783250491420945678307774545619619261908338889914503610200520427658756725596842304639082735946236383457793737002947287877501377821721277156853462513769039931300235444109219791016765852851187428501428503420882995374768208972214027749203496763936717969010116019084816118412358305228645717653015198177587901156982047288622107607403614534237124917032736022472852721655524708447649764884180859382046658436324957449361126152752940220199397433314200318019963043189580698255033842064985443724259568408018764527041999022704063520047402295332524315809375103958306086893636659514837898112612922354233065308975495923717362414497687223277878335994155745644339470005972973130859026268194786945541753860595481262596213491067843746875146764243452055398476773675025797128003905728675956470047057276228277055891270284009115051018836338549269791983522390803984459661806022467400238980179309760901430759558016921508570982891855709741545212357568841733459551973198480784302369133132571961672333349293906957334286123620899395330113904795410369585414349166594866622130098691627332222826073985279772684249961252542513530846535066531813108719765815249391280308861836963028393272669383039299535767204881133806572116910012750464725303031466420825379847549158155887958749759888413376003621336894071831371633726574015250760713402200000777408257747971799959498546075725756523009358076532352027155203196111035316064375415368193379052557292894573133049524966329408805009939716850143664919877235508856386418597821981840079590250222674209658035827865431791380946007254866543319520308000890759820135955267359146832366965089248382935549145096290695665408174158534154017692980634267247567170806676020090514894955253929492814004027188833112479093082324093894285452139058095843316165122887447599428857361446732373123240184403346991189211858129101000785032277503138720894572315770775400713557844795819625717845729490835555527444867520177939060295263730649982704854031014125644062668302434947662201619426696220390369954729913487401326617864663674153832928026616047375203959889270476210973868416548785034970539165442463880105253309638043068319902756456060623960672842341061743959783011376059422388084137421094509156680574200111820801087059084009378993832453292574641996525027248902263625946253918977104939229977561324244363053285562969570801614120969396050085212419380337755386656762587240038729716041103242283169974345825450986375082118128175245447921999466875371712472955251908996628802479281211603286281179199595703759675666853977192688663836691224292174052406199303073129966982272762620073793598017048758526618210546190459425407264676297760360112046177508743426487354875899339921725315924300072848803844247757661831509551904086914131954588320107795739072126007607914640310124987733782547921417652601716064228192605865443509862750123891170307144146105110976244554094358562938825999853047449157349439206516171450586266267652296977109936540615745321217099427653614756101972319996177657578345534116564091080026459595595997127700634183037687488992740479735560502723563498528538122379872527945155529148240552325281757823675653219887489947108735227316589700502148482651599446035961339239486467775486481456845287975451294628025985415687436120383411083601053842474647835903184175037182340981602781183003773275775837774981380440755995054783499489326544897563232711257342544524997565933183033856124160325978940909443775288297719963523189525561826430639685871540217731404993370342009877044881632101702430170032790971226496466301768547260450439691643005381008953155270036380593910417069410730228078270725864073553340247940826292754763169355280939583114924935885116898887151557814112012316617861316510067249021946051485307154469551916137688241428264307913491407053994634696475967809209444820585214269694348002707119471823740686925064171563791227726690690917895224299590899238379984098244066932785503438839864929073051494958977307850035788553824393074732115825169111878645648798059747492433215540994105255589250047204048123537639349914757099391375266323196980802570638146283706408018522247177306042040863355709910710754935645461331728494622124750873460773408199850907616668989283858823790286694164485079066986409014147628579410006602935942028172065702807445412032946231012999761822456619113430876733096364791489014268358039507939119168443780654655416306929975332820564433522215421586010025142170752195000344351495343559235111255514534529405773958575543640954172917195578807190025886724781779334457708490636481108862204717655387096646206213017829734234641090971201207423616774405044932950782882632344486037957269694658575817183253281331029604393238102894223507822107959472571183805376655994388176296269499261354655666789745202979172243369503849969807145407310727610325197434899097298655519437713893206942443532041262336120195727915088564161652725951902417769344021070894928620839514122801160490423734001693987319928739282225972195851603288930646476451174395514075895631110653380123851295351046890229856098954204439165953661479333343698853861051804020235896152521993261908390097147155466381542644661717962408139469311790454544579215726524845769398022742716435888383731940466839790237336477145427897317439997277480469576489252689564464919893454431508978301192791442308055437610442862737146799951115033458480460301083046709498706782481876246616966917576488603325183380749611172793477656602027369178514430075165876852398834437252974956899711500541875858631733905214036166267907447429949214191127058782036309587004644686398485570144685037767005339592728719386343440777558154215419578135568864611524987206069070653950419297620303144400333193318813237380141818672850737466839878071654175618545250697445018208188293572441237975559879622828109512616945214926863177229363377678601150775051947274623563661168979412937745138662289412772946461870484213933462341910875423399406899727587464423249612144109833379585943384471200043666672327186735015626793154551220153768275908055728965164089093955553156835990619652881777192509551009554234169279024884927104644702146784288396841238825139493703556697956296706222644991551315505179452859365143808542879546926868294692230626666562088455405411022203553673013497903632514192888635652033951710268274237172263726671182524840641847609607248872363887693877366925701072949824993616568484579673582967549896939270914818306915238736278175499776093346700940685802368007300088210627086515113553279243983804660881430201896458557034897779275501592521816308924020449847180339963575156158461265760175686826757754219038218168511640797237307470250824975234917854666706646487048784191220152908143360772912809932573122249223228007517528827836504712074612462570184029819654417020440738737233089767170396890031822304998178558848776521861272096753675410708830517067222387831564045564365719480624744166780411037979215085173677966302061086118809680500512162897145799658222012146149126027903158456832374617484433658231521106867418151580053571899438909598888030188806161302036213444467613548076561001476400381021086242704589706644540192153750293569561520602801901237585209611615644984541990798509011875014991507134423833457781347869729676456665652136710347121205452383888224224097821446216286376909713201486273947219632386708921886489497883939186557863714549960565109478651539647700556343617406761916049906198867164425687523416270736732660162337588339586920067968416726314487486126230221365642249252363893191595988872879547443643350433306852441758247070642394628810619249584574915298243576232903237985466680840050319618974079300810973228512122120364839668585722071651815647504735009287247871499812794457295743951458838463003176030104274212299702802609002608130601643287361177757496850837573988878662190357982678927309248656190678303957806094013866943799398862914668258214034962669025696824232688234993976425270793680820771211554286817993002048074927395909549814144894860629029635353898751276100526098108520509590539348657385654879797727062933365728385821587443019120513823505435523286464747392992249773009615521881682069280957178906245405546320233806286054830911827548077346474548641844396658946480845121196073401906466548017252923190791743251215775773066459646337850565483778754340927169704874200307037914550370565173689127453718897690737956772459708720185244024853573291396287315699997021810582539071060487233956132301251365380396044960484720582265493122098413535560916735095660951131214550534128447216700629683800302559602607221485063820631433839420932719248369084295542554174017983473762629863058521255022824319663858086297021364394159842580205056757718967342181136594546797832310319763292689307442316050834435768788267485778358476015428890130523032426198875593737406758430958344071858664508154436234639527255748693063659958255153117810266646308708427996372414939805055631058255434938513452385182023632961590407144224924365054054768747995754454559532475001796786179289109383916246808062109980144821541330346562424239704021147607225791017380102367692605529320522566353990645292227990906243381469420732186363342359735960849899731762531464647582236312161377707463319400587267428465562758335382204929241838098224688648187360707960632762887222631796110844598462863168303786361707097299723832956518311395197600946239692965212889675357399139027410882197979491572535521212150725456874168306095921173195563429097414199915936754144904372679580467871083042574046367951523815920125608684288152765031940978654319939469819946064510702407684961973001174372361404904204488263217555789980021954202634161968620385585386264226187885652852894869548949827244562501665254092785349076752450585593858157593641459087398896097868631454073576360070939378318516558188010019976616382422088517860473668123108499213474112906754432088201784375798497333443245492125660375618922407065462122048808455259310326034896226056279966814988151946225994801417634412007096386516271049550090533263190855337324818885846084879581119720414941818745015582079269620755885436151926922025164889936996436369516436240900669324066538438166696593675704313576697088595280811008980406742639028587192477688826100788409559164369004701090967772042560045377880955811207773328656758160821204364353599668841757890555969373235691601739196537630844176573676347517176710242603356550709814678707184276982291544180449769260844040778501307831460650076497242500656572368599989997532994419155352560784930084664080661876398051515145326786552324669172334551306146680386086319785648343222184714797835120586464231048932819961408996618186717523994985136779032553854567048642424468799496396667627971264714220822472733603261045461358084188581688420670072562513996810942097037631338231279668991327611371761388161722093096377676090546969428905239158792814691280882818933973709273773224041448081456052996977455006314174235341857508387195974915943689346633423452742654379131147652743789747990016793707407155585054295114113689376105181222665999593898602079442443228700155257085592449642221951450895025942009127998303927499908591246164292091558807315146060450151486787966888137303311724035805327357771972097517869856768929156123417738577768523391116184703319286253430446580761709287276647237449690769550995046822743560444152530735128262016273000664134983976632855122927402145783160840269928544661156551498697869435888598538412382378873367332624277934410321028997926337256282515465493707574035024552304803915873628276338328549169404197065292786707881975018530232211572823657280646968760190517960279920087769895756752954236140653850148952920542925293750057205702151713948668211365680336701307397972781073612651255440501451776897072173833238532410330297563791204646802202120307709242634885419128811379442538268516017868413435560173061522232039738935952208947820902744516315708022615726271729607642161174325536907083555203438250114841761714076817985082823431617181626214545888417109576475947290953456609812024280999702006284006203355631764468349616023326208161580704635984717923221794579387835282239896823525455939839349629118827849947368004693331785738218761788512015593845659763291809271698265810272012378941716413857741178393324358444062910264982689808814411943017196882931410949287659604461797370845421876137335106327621939311101456893977432583865625321481845094529496357150688498561877690649460112479223424274896269176873413747843396408564522559845629910771952286109820075258021761419869513449240327169323834090568526412286546591109638530998249168352734360228836864531494610186811950133695554787849146203361350524921208551664568774566930105114894269929612043929611295807809261286492241856951702383492152835802711523125753487439053087982789712918848476850101250923751279448288744920558984718867640353109953814225608945826700908595697513132915250645088059125068723442166236579658647519293743591821637029859413429049992387920661047779742596809307013755887077347004093904171857579232598192554604956681751648325311692713384754782230217408052438470176635312433960923340407219755546319874560694123179234649167349305848268363604342630449936763166534124081302904163613375098491476693141731498927660945339120030380688038581632700757573329097829514344081251020829261092486718773215577923146019585445729956789309631971824404175804117188842046640294904631190430173141957850028078508301685317564031519414234721140470628738863719827911746089507571456160588910819108381750628028845341040151691967230270711008487478072130296169229284676877401073882369641466550581867023509115238769916135152720503722219857461307232455450373842265082962380607485975085598078274428902324424712092321315573343747684087402899077492949376283468705553620867867254121517129969020223896291895584928652219200262409695982208007030136970066019748225851657492281541504722714234975489017842411308674056156164856550251868043434472816614602679993899990108448790351030084030043587360752002576545872208502857060952766098273890814192451337763644600379552820223216021736014661250588940149415447333864404383385760275102582840173248162256849315552302474778426303547825718152133562868227559036935332307969639073864280669891806092065306264926719690899947962472619488205312775810320014669528280791337267964566720007351394521719247062145504105176686925336462155601168690262596102166870565769671301022174923441561320243875252096549519122416228223567049469905636756399078052678032780074243953444498888972402543682430429509323383710989773256878788490994217474269037711802661606383226437770858972202563447088866070161804077858494683874206855915402903065120594040145653294946181966162311775947158435567141499174468550206591104705094181290687686213847241484075933746088956685612108223983744572527774241541756819085500630082625152806841025260604120091480931950716500529134621244028953692122866957612844425487996362174032901210001991890633400535994840380647510008719460732013705455162085306707892639495491573530984321215580633207484638758023021035095226518317992865839595396445314963112901196877708428798789399391517321832840420327567082002965705076756195284452712005761649293877585421794783133955312957579499525882369902114369651663668780983146710053604931578393169805596603441709888168658256695537642968453288710354586085722963507374264439418662375553867553520994200332563997572161963088826020789164055607551328149325849005005782175235990182812276285944589643453943447192036812724907795133337495325178294282783159662444244924072382014808580124065875420144752595615750139583418035208521582434437347622759285066855187318102558465640098342610402363706663858230543301115642637539412516417834498114148626275570841466348919026376730538616569690418340629690650656408271132224718184718671045744006992296460808532966347617708307207567056712169534907152735513584244486809714632034802371382933379701367957097669762245795447305687502955637828027394260226446403980133159468902603443981237711050380613849729036906270566153955719375654037598127055987976839621729954137107549861302187600804909064301784311755911963593771105070371336118436632672019319233947335553781174268534389673886090817550734011890605541352561866502585525450837121611521826596487928115404776044733273234143848602538146452484369057052031875562336493609306749189631874471493361361343847007665879409135749162092967604226245753707609520881694534509612448849125256799941531758012486806824401337169494008595669533150586181845767259319768711419629935700275489492144350443138083947439273656117014993320746721796722904482887950894383980511454387769494701354944686092848559505778091662014600000868782112359851173872166271932145935903096410675720253929809751422132787524530513629798497533918292733073113550002763621581434262354049463781468168290244710534525657759333766839060638539421839967519190460980757302806198822354704948357052033325395597628092796018457023587120387931443022571702840244275713627462160735694345881543203685845225729706997997779616371055233358009058813649752004537464131160918213958479693955885801549821651541771760471896116482254504913337956248782023876146962639473973078170654164138243299569074237849120580459787570637589802562576704966249421235913475467404021367131995460419166724715342306460838973359548984253353727487708612711307355598001328997743808539683330752069332937113633645494799125621603928882444693372299153888813595584630328645827780386500561829016201214311082225009746631289418997184459394158508671197256250259180023712549089194690375457485869476664528514728751484019148970505085398344260192969204625757810638894547053237675453647036290507596575315195880153561199410262077463679106221962463761323941020604064651549191357511089406128786298396967860321657429323739779576276473823633864504278963272096042769295238650563979293924309710107325779055798726916851819882081909196425053419606213645962002651972135377079830198167557649678641192767954050528270328524759586151860727570267587042150307991574773276159424513373401610222560572242689416731728670849070763270293966960448775161588105842530397950482550380359565296732304736071208943960801797059195914890329560273091415997822900198785055401904015244218807510182434939115417435749117899185878678992670655875588854664616647060029756083097126534956667067984095414904157935704225604294526192252682072857961898394092044119324985827116513108427542339245429701144432364906816968902809195766935989702090824022110709226647877544392152272653407278737015092406536286137861211078219234488637067801871258475065463518660228386665901806847006593292521272687972969528535292922923814363800996601518184019217367182411729279931223011146399160814402850965495145241980663889067424755277410611289107941869249809351086872989911924339286926846221750437094609947341640205364261547802695524157752387752428855030247373041955660178059513872554668081080825096594487006760433342755549245994748530686170605122486544973177193181281579328594297346325843093757154709288098573830363310903386241225638206302805634999890704499251615578574263339565184205200010470020834840133980558852501219760184097262057804516465342697849397752660975606181478517942632442422197097734172870433313232621630173355227086005563217145399795898378066124919899656426001497538462017920670120488920056598098458804193468504763526249840017615306429764333970835106322739651703983531529324156224938543611990199695224655019494382961588019671409210627911178735038035842870549338228251712416510933893491387505076686722189130840996790827439154372918958888065910496042166695950070300926649674815773848963584089817031013108297808646844131928205608071520053056126903916283174631983416290892066503556592240183401721385784340760794422940956454978874440684938128632017040231904377516221685834676961823022227361829929350037219213489624408796600579971495058116067691392811475124223756893782889237417861361136576363538661458149582805775751259403970005822364257683648509395281614119296824079184397902512662829103935063028295791377825088582903630298287097535749569588920514127841775229876455484164942555925831619617044454275464559224656880906800265946972631657693520193275086777586236171500287429472190679155437358391290160819257856774968576629196771020527308990579223675656527678332581953816288723052551417977455601919699346744656157647417033360829172420183021819237076920549731139887465212689859733837484447528559518831157270451641995762234641441595460470859986636516212375369767183010438575518480323720451568723906687940213465594114727714532641687153807763384119359484396867990887393354708416407824630224289145086076022939999311773990820341188494484576583444707915364573981578804034126311325411680051184987756477283828163097660641487149902488245144067096807864236764611929202911241753488420385853072577221403831467328095652610076329914103865819206907829179682436738264854311245616992405096720666608431128161961170932100168730180753363011466252400367349647657202677691345559510024227274049466804959129009893763826550439995662977378834945165659310583900876891474308479426695897808428520768331331752279778798741530505086326181151394765207989114943450487347105104329025850512732004990659396095119792905567081131391896012357924402327918288014430431330189877955462688733184210801414476454543831909597499563251358121366198410830574963273099913111819278743554453316349550078242000104871960605412914773108366480012362273324657703526322277498262998345301543049122535432925873861941599581984038891788490350465954196155150230505007758062470669058408008994233169098593663429359624322710675992203365642524397170476073590678227988954816764613202414932230643167828935368052549743344760780762437060700049957965936633838963837049170625096023510262103538944117899876889934193010425431202008318148727352090698854578675229353050909728411331398742641975651488692513516700168719678605286020210558236278472918236331334568084936268727046705808290656963080577595853208999614825247372144924547150463642300184564119031395862913559199955809488671219277951401074485943850368400562963629029163147426418087279813040763664632180714843733031959416349913312310651417171569316752784903619602546903835515301256388493957211652696711468222257419362165037019837455426847656575608018013067468242242736321667320570689016742988471046003813533310517175370123509500633069400638553669980505962695609082318860177859814343917969180405467223328748519291309267333994388583318888832773673293908100433754313823163694100141831899717427070888278254791632245370934382447932192296587158101924978155833886725658397691755225889749674451105625086293801153826704607371432603112896837819428302485249762541805827255013757791651624038998393745775378942296136819867193603891264642301885388444762485782485113819860707533957626427031011359332885296760084834564859466189252062128751258598764553268876455707092963480999956027986611702093414395084255723758780313641036151861623580278605317949214301916306711214818951780024693253413905809070880736450713839814064354587599306394182097472669359451652461984059889362663045719649975243453374516062290960948226261935249539658915491304672113479288834547186541142533163345355617242848204118702429390767035264106638568039808539572705163650504282252773939531725378043015949150314635154053410022768088296433326289855697554591134919240956063954920729173555515391518342596129637310171403911688666480683955491087511695582447590879681106135789005541584236397241683470856894587391979704368475411514443478734398846774755762444821235411895502430506557846710600412258399859262383315061133472399705865681554281185213893436228419617217356576734723897701229356547684201191266811580501438434870038706202023544555276507983848116538343403123818095510051166373883264791573757481065098464784506675047167730771635759180136641027010838239302964464887586158281686726520161299930642806022241951675234031204751583898676890936561345216879986301866773339919541024766357761419813703975126907405328391517065021617074181666369769815295447600339045089370411960749660265408725037088849597562468150974400257807536121752168192138532245668516959154565945313691414524280118245983455373407100995866467427271773542007292714906988644226465845754285723055703310494994630320420578605192203503047636209722907688971250280954139184077512012882899123721032741118154008738109302089695462942199849952145339084372794022549300163996421830973337109757482760833224201058436032254023239677812917843987604806709100777269701905807725659820900334031777214604244672824470044257065606407458558315972988350952770605289822542413585542157495669630957137677656496178946981772475931957599519408354687892135510555807510598245024871032863303983266456553598723234964387421545830646972549145655915901186994908536256636045588198525838003286473951797976531296743438920616533354956277574143159912660037087652791821775187865271161994280020353257031012222996880756555312825673608301290722929379775034484042257942829035102687403887475595977112928599387663383338443882821990142189941818911379407223208408352054937811130486880093001951097075842677017332400244534814724449226251825592144034023042606925362001772749610506547187792981849889988091168631037850135175694368502228894857323054918524683764527249299328801188781841416738925909482018181942385464262380150039398383325400371366174734581483089399494436089156845183785465127651815617649153736189121617145512488755179733519190367815016401940531358760633756734524042271923652674112960234757163911664997012885890641158836127819814282036650209151469021064434194643992412991122162642294169289925945424983019438061544370786441401101921843143342417656116852442641960751680525106788915521438549659229423290621181345584557051078015954671371564141869049541061436266384269560716842704970558413360793477523145218053161538879211540590413727070935523038819384451177386014243264078003419047641768003231342964545585590569990298015302708831910011109318776662522871626453418836754757687604124402474598278867565359551576550797517967249105320351688858885797747689795829423457384828799950267147124812945836562484638359882609221283119662923467532075702316276414633313808519170723107838057759437736154190594140992328122856137318891016725433883926293846011366577361505694286783396952773579731829541100104602274944920871111004036433686814261300810208321246315848808501846094137552627696016915897501788948552418661006870082849576701127208170994766002578440325023107999790089587508603065173540179238798814320399498769905898642008505142720166463568868177171481402482350922591781604005244933959495857747910843548821022175393682642010801150838203988171100698858744416685455462116972352554743952524882107274532646328342788728858173857272321340056702201581325348795459884922204452847639200151186239744644809185917069433721884065738236015558756206574993317123584648903285190900629085144956874158073978095065894609064688333016417079678562448503888280681349263288905322510228924939576605571518492326659742107312534474653425627460067845986693620486214701587654536827536490284941889346396996930940438701728073642160130626960503377273690603306600747863989091362389900262462683067044584531835730406149469064617273288424529867435747945895387970637029224485363791146612409391004473673059261527087709932775521200204870570182558415277614331538252462967325096416379651388308262617943106998456474502024841899054860799119479231784449896943022649248634397841473146633011402095390158126214090688564190080035363664115065468575941104528812862822918821588402151845122032535602543513061699358657120459595598980371355748004426684303489891650630730237411235151626648737535069988133187036351065684259209119316879164279601798378417735723431152285500222592051456168697365629743810932133622734395826016335915364507164004339147891008250787223793015554215705465437098958383072735078779112549151817368059652766027388780978814967250116201445234965182326282461458374949579132293318736261590765326086138294692809302340043794148312959838849872424354797583755782519868795764339822963596253866705800526651265153663622097982851425366796946978452467151289044307563539542419882367078955174934538404169398766302876820766749938935739810064048756519202434332133253473028265531961104122477821037902237048128321929716971086426426406209849696045721108649459995244919829899076411580233692123032827412670239065928632671413002045055371855732928656131302373265887240225313754880941528498866235569769877738863943096636042770069678878899666123194915495838892061638088301123018519061769499001249744742286826057089248032196748462121875535490704056589105946906469403374026858953550797082635105626664221233785675143175918770939208166563382761586873301221199124738871658022342440239322870860914381172636685989912016876200633713177142391966145196875064280014823670072162781375313837945054995282033573656885739721346849555289668022540165545305231223996195596392423271008585352026624723187199004551033088631107273351045812101494354649668332479721765590956380011972979801198980607041730101280332118537606852086200857340435150642317809930918257417781549724466848423267973421710551419756189249673325757961061145056567492306551946202537995732237067817319684982908408952352403539794913992969211389051374075966635436494250170778502813659003877091511087569884696954778662637490250295497334382647111048037614265512065366156387122713820705445822850706007510578233743219266156718596331211206667794752277802649500392083434004182150987843969596534708118786656936874852816391931535235115324418263473935999396778531578053795216464548884207344462139287168719644543622570551302127783278972795773408353044803267899162949200515524525221332159653826371060193197003815568111602710140959377469228680974267064667518239622585716647312113525848105912244239090940949355288130589704434732277842782079327141435664791741601361855230739619525249087624634428100591616470119371251984409375552717606748053123819674554863555309105318986074178748856214001860858749576568601466332021563005340501704366433015424152130349878474489765712244181586636150413676182810734528756024728028176838818714626303144066043146565750632100349520425585001035424163634412142291703967475396176926593638352117421989986164393050213813652006846460739090343385177441800461401719182441016360442425541116148034192153281026133887889077702937849566971457556953126838944568313280127008693429988049898567155616730921227873932897848331045782371768850183825538728219123269049654089688406032888158783771489914662260185403793822902175521985483768072448243856509601276927337612058394485922645583461724211714423416810591011742031417399938936349342308824961787652591782782252590502650517743642679062970615963872945692388207295110326746463062331016664240321835719438012782496146716257719820011134474150079847406861908451222093174523814326374902823943547971479219876475694051013989738818234509167993275585264620066424406201859508898122563416600673004944221323210659871797227605285473924738165144717337543050947558999845855976820943681629744326623167863907767858300553392159098320225011975248561345276629920650214842690376189077779636035250024186841880557647809354312196751452186614306696324600436254842816649857854072847072184613461570747640308300576201695922876425860389094293061849834262849981833551182560700176267250135421974176935388230647593701446623972488222062544842070214676396476858765721990704602426706463990762347113085613917325201723789721463137760082266408756095267325181889852091036598955171155414238976851222573010814077142872208999592745333556510648417889974530405114655042358581968305984395259520195387682262799324976702539629964883079259511192436312131842796059437808780201521754138949522654641007212786581192484228990070687028848464063259007567564572747719835456495826237480228481810414936887205733628368461731266392184460451139518254696449862703270248594687201334891300831432183185010971278371799151795800090304819648997110190132550522487368305785119191845974691261922998486023847116677079950042446592959099148456469851932675011646306302155832041227123241675101024042046027395062388453437043190316464623265429765627873308914698229187315518816111789142479747552155355635574403418387468105406100813692862997926994181426329733546638477040262777787470834848271381236271345010638318340448760700725461401842263470432585138372807235834404195370367251296287510683867274172141125354345558155761811506042071902408261921204303796703390571739615028834615926473436504196135902053452315436368114911725631616746200670386190521863997921713738836227085552973269978991118814456185546722092754737294483790573584168077348901715771958189314285096881550410453149791909700529598540432027055411194577914517345336945381705019883309477526618637309898074041285504723748998127636170371178495258168458207926391007885918583146641137712535931142392603327149204369273820730132185059541999471192633956836816634632106337046695390875957680179296245278449173262634692332736891181612499517299874583030099888999765633042872703135244647810367860424700162348630973234314297648917879229642406750853209728798362930275371292009958353529692535108843554910414210127847815685124238710813584845250007889191677649365284594219027744642752589465665282020705290427571467765161883327923918014422289282901685489493522395412468344923234856355389228354440989806297636841841231345649770309102397895664754005629737315377275727197987697976722955444140632645319292933023796646879735424936933511731499173612784182707278947262861754990055374605485088941184716504854142029175230609168833215244295809299554743795295692982537632389196003776405343982034754974900481550380352742322485839189901196220918755234355787315822412724474077194847441354552343917044969422770070747862705099175244116906206563254438594386635747426398032428688225296189172293250745425970436911624409043371755085058467148510121211509871156911214771115743416927797359766463388704172498176091256174337482546207983377623468295094651275463366764615464953788940442524370885384318933192659370722621870373451926291796520790723201864262410047113272254231827913178120083148321581195653743353221673013674029891222602468461610091411505582555385584925893576646300291553218916518951355904817479128645006204250052647091159497673504487927001470096054748535204249316649380991625138110447675850572884072357245814394824688632984973408108665520536340388274432200031194292591680807839964076641091236742373651088623364727491199531819118108630638856003789103075611839254117615974112370159947856064447118123121153609534604414429164235117691900750189100357019040654404899776770874120003618354371109595647924736081150417610275588363281409017010796112261137216585527950606756693883966533526883612456437629922672694803448647651722010693071063398899658033070738677918267979398014539488932957308083830831424721666085170374386945200854671306381041262638517430751465385506421596583783209898781427027927711489095917010869519386487009038641258711037354176229798065756988410675268304562773665754287586362495279341960261913425084267910050823131778304875052975455307326120285379406276723812634150118655929615971201252613941898251761776994693408833325781952907349668744336357529782265485909445818756885168709439239360221704022763380689988253365214091277647772714907369341888603993139339827828083400530314104029206686878249496760634303489218222124294323311213693200040293944414163285641712772506425160862169256065575337154064266655534444890401279434564389485357057010178251050907195506018391607779881408649543552840631602317113197176510732441693216386305489248622082726544547873335970415628666741620496248689880360436556044141683455185788958707197038102139110649331704590934321799349162421166004618141246038987447133434326232800087331222401721703704507969161880994014105476143820661919107933640255859501366534465060516865757799863188763329948650225957211560367990343835403798759328545447653132106346374797125838850818249935919923428740261751031015116871774763004487087923576254867105077632005448464044963054473193292767719638661009826390416135492791165043959459736064082345021936235512984596723852292665696211946976083796181564912570526444213012423543489512893305858543348962791690382073882747253565050237022220254720141517546691082379381142047075220759346179850510578996937030938703005046831281159681587455135142814411248108936195920734086987008667076003479586373339046118542623215398818996881552525821985604314518799088909930457309935904958219417706057360322662926627943023886926070003190817756120763046136747258157964253716131194670339915349020119520919218534465774534055218959463879195735524966824817671482740382774018795281824342352073785723116234189719690687468723038729968116680594661823575192402352824668282739981371123374498733962213133840388947374009029381917831039586008351993909507582618946259400071936100150047098463199940308347583099137153713950752416311865173801699880777684410245627503309110080408593710043016565556222497070667036542216882482753022606123207172273562173325436597221832962219747484016202113435456726913329903124275151408292272854318216554246997250127609912048311981294331185991470985209229966571884502729815592156190679969590384125159349221499583123392684965880033076282391845918742643835458493353681246811694613330102829870796431904990583207071094936572984535812298775375253491911223138954362270421536463334776194695424806648458192119521776893271508034263724569453496332403410981385961378473923171575111177383262457622511305499472752365632896363763697658958456606209483702484551384370638166799746963986218598610471945302821194787015781393456227727282907698649034698520869989852630197518471816668413920004836380234110983773081963951579504021288324776485104840561906667941734613998937404906055710849606047029947431998385688874956581151110832587164599274928987059426596808397148762787667246662348691413053776820891765939177642027231692196037477232110588961105024488967545894762100739718519067725857165526904312788218658520725601995718150883100931731992714146813431748423973000122245052925012007853156586369167391755314166900776482271917297201341190390107747249349302530763972053448244291969367045742144118754579420055118948171458779312953645007657968763018690728138331724295038773047558608217298834227866172904177782991914289387677370699550305741530283080581846035210474974525208647318157039262513866375529162185192022547813327376696159549543260924600580916237611103466181351048477332280936362601773789711262808405141598735187387433586451084080724705351112476149807769836092455029693711922745585974853363910378916607867221686478672932886567664081742540901772912983230285123241923589947256891533299668038839532496882870290030462714015221595343275460365192757015156457944708593009277270145376257124484766740562515709404362975462929946094105462557680388719405308105159859773744287459514694973664137791913245729364648297649715741467515325197211673205339239314227380343918615877206367209869467873726739231750515864730475780247118947016340252506253956890181780246781354877837901684712123253129284363579861236070077759388478103376410769976709340062710471786498287748696007492854653416038498173891498107268126577700325567665798084255583360385074917515989031691732275982632967521521629427100719188639896972329855454715581460700709153923903874970968002989102840824458725727351217755876601495236193233058015748199575372334737008996658818168894947730942127251597702915377003038248671077186994423600475914655328695586783967711285171830274206895920938587089654641924442184535814826638228743156422861937828846106071202807187839350622663193669488456324604568405779473792928838288900063095676710973507073947103709509731715913310498210701925775180871536604473549651307637465921586898874150943370351655384551326344959007802976380287066399338657209093145393122527543161136701721400259966810710121698405777281000439622540806449873859985535705479811426718696338802515783517091865540986881486547673211454833424577020207599701156247645244224624989718436581284538720511053707155235824287506706879011875296166174041308214765296096611096265402663603919246976832069097198351282242042592508466981776193568009719794496904720402632364842359274441753482691791019470737453453915238416898087740179901614396507176429673081098031571598758591175123536057754109792193848986150115834720819239411345741629721668823562414763654332571326766102445708387695085013194409168258727824483026009127193586982030329948219129415650367193095963392797341100509877937577343150575268888719130357471764118526980462906722861674465581114302624968564994275961955415354476491678276309667902648270730650378738844121268804274712409605341646075209478924703805874250420235851153699304830271397865780506749670279226684928239018501369799460974965421738716731314605770357711449063752793109452111241755087853931404928890047491520222111807483447475923266747527871217661582835230595319385883489105180212838560270833454496900532982322283664071501224498769083760190353945931646736511908106161020117751931547289106779422611701918992967569410860554308242484254091752912640828992991992291428479758696603520271644042896595603578623817863883919693715530616682485297661272188801803672962595825287328647303498832691274431559608081247735510392411918544725893188351232447558489032048849491898338690197597978257384239292595994201331160457237928899206901608453904189170597204174637613077230188071459644473487062667812717716546431930094419168206048973376387974256148543917102942807385763099317440640223920071788254908643184038240666625317768872557390662093349229339808809365618029549024324455481252310440342667547193853992049248067844981670174413285000434673202987154256116288007238244646167581740938581896433256721075030909948282492549034606650078181263877193677219420740367252384348232695328907141488348197309437177214457763423887013774762310599593782107658641095553063153348852684102350987983025150931374198827918457042923527678869650202663654804288727060243142968041786115461075717107420954012471121849954256906229546976335227519979593511945140394783108227878905713673805764243242817973214701681737707393520915908939638194218167296535917582972746785866498242713115212598866387520785541461322122246812301382435372021448084778746996088482766134996992735631843325955643822784392796876431440252808276292738184052550303617660001174431534476956885593214433927743678567281049664117217819059534436695410516648367453560122911969260562127322040759763867172968201653810651443922138498163041166416794123918768986089187235952713316351146665774967083798137163030814278119310154249020477231815071393537747729835250219169155243985170941550440362129149178307354963304992322621933476507770541181757369232211521193596833548822584346624877078020133602292849764680923957606017226537719922891625019958845134246125294047803556568658168765924828847198744213123530539738859667385698705416839901604379209488243253113170504948279962056145428209717469854031452162086387498291472088300311016708598899819392965839984427627899774897083087898705816869926621899978274328880354535670492462513725582097913535044550903997365753381933455791089484156835086658117023107065214975050853123175997088523547554796229658992352181967725631025795620724125347506546994921939151819903825636874593670819444173983999413844480429874253668151434312364462992770585751954466367770063879255340013525745198318929567741652180367024981050612467511505849603611888489782569047892544322359693683473161262365558725267840023069557585582948374774894054589620835332625658973116124651755135838094423152946370584706947165888602188329082165892356504855473877894088180280957393775148616302405250401063655762792337350981530298167634789215100138407319275686514607535137115922829972339906492225680566051855744214682032015353505685103783836302498617293010921116079608397526281480393968767949511085048977620417399608735153711535421396217680272863323032268535034020670544850376765223528666462612144177414026588505445758068674302730442023371518520876965924904935581116542992534690934938334307195510000072412293640962515622841485303796946788327756156604781266004613200058032146151855574759085653940886507316647850940842297323709465351842294910304478361117050048767274388547638238402075978551443083515230514489994370808262540096577730075964170773798425536617814699391490033270194019423429879717328277634205451535997116908985384979505774730599178097472819964018618948627259704957409598247594758456318167806064092256956976658562745464849005479140166004753736099864509852753795375598413637710209301956931571285491867175780846273199913394827801448620434258189297959908087300121705407897964348914120843322524974416972247936160786031884327186741298011022371999607920704801133171884950288107890895818579700667161400514957808350439004843591506173995123061315072971820154278464012156157785947660488801387929217116859464589813743984870036177028137358861425432953197345719191591096353889341746040517163795407031990582398293877385511939786969767813157574899588335760978892121511778986754355397229827762862967309994656950964958560711721439657051852145781731915613075584877522189835308009497237924557884756476396495890124803937333505859262639446086905817321662369178582951418826760412349135965825018536935049872059076829353818869607583876497528055874651501265745750290099757965275095224017591445567564161736137366020456189843904808524869220493709658571312633354365177600865267298349164888254936314268028004455746253761603879155383316077143865472505491322115981536944141687616261054460792513259802381286831630461180968309575077888257792481604889995595203001170387359830298945205364486051642423378746336353632804472458476446268961673877591479764304689745338010267544038602173713341610553470529310337361115529809918910435540312800722764008782970210371221873484447710222043646362569714126438507613349337404828910556787531322828567465776172763677205363438828755069751637388107965659038634933897896232516751828093853717640518714822615605869771071199745193422627537375225132229169653970888086434884950728595903800074336370881215735935194841933574393764248029007991476194807321523087245351258757517655758274637838797022685016602388364267273685834484089447484183393396702674887634998278064785822666291628141779094403862730673577255106821333179075721709136175696953485953609424941049665545720147349841096887943399421397004043399820888121882196881905650226760804758800291256879973747427274621277238066555659038332678640241599645942051906362231273890775938407897469249584235259744558151146258251893705892702410579777690998192835906574087582194973045272039798961070026743131585193334543949861470666898314514970271836350785699467306290527105935371512825009978055359552222118559036917383032238825571981956092217489966674760330028829336672395889033719021339912790896421627109368665183740263165842680353448910196163998045623525381984110509150031561333988634190778513794244884363935078381720414717031921776393627991581594089323845807182383424516932919233866132118472141034122061220660555161659732934880359898387012988294934607154472779174351307273709907015065986629559825988555782086358049870969098586859002225175067247640104154050921323400834419621030327063303009334828946123205101184677504129067192137733144799589289551691487918325548378172908554988919971376920558330654939162462819780641403040158044386475707661159169683425072633669416684552198889189867292937984740731671380917329452692610555448415506837450082910338857101352521777941446265955463964881961128339163086257457860682993095038312210133846973624984690478781932966808929843157891638116386476752239679416646454720887306188149790062784375990539708592630310783810231878178304552223183342763636401815405834640025267888165044811153334717125504787875710111218444297507797647412801021367193810055165674137011600620516209238501036040821683184762934985367053181626921782098356296947839622343516345264462349802494680662605718121716345713545782702289963203023148712056329901225550962066212928176201163781873077548324156279179196788393811645434139816542192413149030477984692358407393122464440252231184749854482391949353941187083821610332789746621198283762464713400714691274140889666027305866601441806564979516254485991857746781211158603254981499813112884149679164576880866193333080964939415704823848886369186662623343708676584851543858811315711535372225459299831707693085437119547285863828974681172492051734300647221032060313489695748312192827115336609127722187513125454110756091906833441853313032897840780845862688269147088040861900273407089265374496496354620338453975800811353159096222021739351608766145877367202531497891857084051916745274455863190027970696240771624281334669452798856511681319124459375636165013698862298801106045511459117153247084034935175198204557217432781950879072255269169845607415929799753359348880772337404581325135400009586325429792079517159792180967331232453414108764957242994419590038680985195874196242462315955116847785123703240872036878134278402724633776773546639718328292407414503993697940256386193564815988154038161228571695678188397697985994046553703186868018492027477285234668140076062340498303309607072179201439983292860616841615872519755463989035261430550882673647466564671752683098546170237378945519243901169631772243912999664483142496969281907997580098122049689692260200572411037373099094374814357684982732534076851412313242025189131475073078058176211880497780045379099858281894979665876079505460430915428477759498259539300374669409469922030417493223771413556672154440705737217882114902876571292823767119732711215605589000649300965491001292858609027610847450693332861108508834153851125402601842121780928006985581923298495415712133912389051754138929830459990398349439203678917633470575086083492562414791258411785074897376702156000589017217228583628672052261274516281440642388775111679002150155723806149602202496948425591724281993116762578247798428702733966766084952715693295345939584654040497030347694043478770292560022068062377777764131051203003668271044854529995720064963761803100914707401873683311315945712895187578314152002514138143151315511250144502275448146012822235169061657655165271814505028529124334446780229925609309930105051380394820385856710212683008916963534026603478178517525952127268732726883239368500479332766560808617228953323108527103142152574969037862771756592105461429915539860349199752872395810515367329997097574338991931123805800272443622147760528527172104840041030015195590364676699565901038489928894169068175321718777377594152426853845837449072936424056630625185419415794426301707283208112154547942295171190015505938436191586242480372306726243964777766658900465723862467930457904656162439310872163032771067551243878572657453939130177122834068223437196247725659774534028618317571249094549180736987438997189943471307607874226233459030857046230672677738772803584139169119532342755843481314347944018116774392476501183067699221243872282882704357303855760728340980338248894026390590605683219817526905007753369336000065939085000460096033540590257331685363577747587061788977357045412066973588930008419757706439253872443316776714784417855954445791756922284765776259849701111077625455743968072473261097641626150277695215544513189795182879018549151385718930844943819080576849957434335895436838167918356766115483964957547712929974819127728414764714736635833530022275234486997196542142532815533387423126014870445583188561297294343508708760711765030582549691963337749505694982428626982213866982887583174193409336929447077629832600748025494782837624911144679913544172797355920177656048956141789309233791912356866490760136661854218320741902284087627512022034867177326043758613177470568858759043332838248969750595324098479510446906496666409343686573122677574830766359251380897830438626648341891404605817560062529165256223157806787192252353556515583420482384997642088075901268675369126989246123448702042175643912593003107423892071665037268299146696873000372895249056023671360640023505218822304366261455371874705337241055224301333263005799978791103930696000781167758872232833221761557820855357945247425463016372588347677000301939187207592805828940869753714754931898528548620614649757605069618722920591332968645703585367965966375002622896078686677645828561682429436390333779538050777590073387370977435178600810398316879253840768564542907461052797561852398424303959240536923887912707530302332587089870127704653702569384046282710663490940559102692776503228436670843471324178595282267671078141476138323349599518445002963895470260160007274922766389941695796734644220845481778646644613853330236927254748865247631112173751114003644800849340529372085953497725708652172790469263801203346451556483486416353234055947685269936945499681053798486115603703781446807719942984354989022410598372610877926748383459088102914303939642344682557264591857272247170449345326051071255260430885766150459006833028227472144797323893450751355419683076065230689824949154241843740912987754846716115722962729505310365409468732591326793084909464352652838404930896511741258797586496645513547130277393782550941449257805160958093796968246910158546939272659398320528207319375174497400757755515915508811934653447412033754109544386447043543105607080222248923350535890116867118157897796610991030067857580927708867650645060099362868650872674011263695861530047009701872339713248289206422880372378395132796237306970524173786475600177989314128252429075563950016694263708145629503298011974697627772092687517542336971967589576145768632332978635602802802008016069700943742162536676055399964420968262531990831553554597443171923761288011343547546495641212783098400742665620317155675418244028001147915474503989857772016630981519021479327042555156038666502438421153221019984376521246162172985462037719196584216563478058202944786907459050550117954662508562078205650232755197081558325065425826899690091052972092018855512637803751296426392127660732498306058185632025788000618598165135958291887809933205482906850026365754215248583111409445077819841782335359759410427635536191975348968915375858062066570036421175722403555067267083290414694552725339793767322954346962740102496588942635745984267290753025626932619975517575458291855351207118731426117602854304107191319071008748812999186812699363170330939234753917156060274832970478588148685884075165434917904725699776730410448813784919863526771339798911398467329421814635890153301603105055968844186125948139369607002493852952664665626500522220994231943932914813423095318913492541966301702498493759897635429899711227968864784047512847459944275703022568884704953191177970575695864529146218645939033735140316673312159054510825978996618351562328478268197988630673925653420831227509910930170453563140888742912226406448724330674237545926343119867112925449803795381821332613353524699216496419014261060197307236646073764280569531845986430358173893548360878462272131827522276683916447218096462168596822465713320781516107855701827359173264619961186224271776787928474517110189689372541680733825056883985253737100255547519337974104519321267033479539223034787112383012914051530108948477482736642007370186064034903084558620971580720038796327133565413084599766148357924298314772496728762714489367078785642461353821116803436960861601299845149924134385516596523417116322601624726762396667726869205292396846821715947655283123814248707545362748615624526773824342789011799331343473917007319169920825517692832372850780760647129970834234524003486771630351425721765418339847337690256530303724145150690284808021037405513919174873962185517258940104261715748556551974434334714457642042741211223353829354410820138494773513211883225350381230153472592686430988067269076932901116931534789000938312387980408404636994968082455866316959654408019194563370668661097279256840681614385065790328735527068567147141844781557667376346329387872305064086908782020841277550677749196458176977002140210388902160704822498321968105137492791706294517383860623516370242568190587719002301161456202960777769258818815138563819236683561369750589181359006906888735595028593694760661149949742425381289758870959022731430689707394931482351448724239624644010596305968534630300226903573720239641980849185835637406744165096742141595426117616489508517440985639355334830960038399735185483935325960484650003724826541031742517820734787641612234712300590618800770159269108892375498498216892647528907326765229502380525416912732890751428609663387367336091503976870148711165619273512352884192626253358465612145886154753718755629317907183379618756375167916321501768392915102751745377085959620049619600821785832232397831979903792988895127394545634669248064073358385978510275376278696495812430120419205666315277996373753950283426010779526939558788504729493489618875905660877266958790466385165409723111970825922351234194329329944940096138776754476500560788289352534507899677220241492033215041751818525344255228756666198765403864708518801783879355606222662723691101605831810094569329886301140800478631895758572358837074771245878825536018365086125668323071317902973303682888989209141964980305382794353031420284434046784490502231270628098816153537385423399289396143290014029155040008836000443010671518960499096092548586524591824182787920935925227144466412458634925553067854289566224290423709779077915362495755052604570550938091954331958809532519651267033476816007402073583881003387655966431205850138206268051122340173578440390172692713539729747310428228953406893405240233855667581879014707433674935569410004499263732650118825004087555872278591105052394911466560974207749152736600967020378498020734515522251043146990025501200236614455054900610534445097442779583949826581227858978324391766336462194881648248486383380100413787730192119348493599888723015397991683252398940234192469675052304884344330288838166919305086316646765181380591620462362206706142558189133048079842555171402357983351057214603801550138395203456303873633703430456826939662056715176313925304491573451904800573224833267455943225581040260993641574864675138126304313209954705262950983342116272464629564847843079860329755126562429335963512710896738116610360140886472433180452048442383864695322862522961790203890071548034956920059612691586747731451572252451759099129439077242807647707923363678204415390266939116289024234447467265188367843781534530250573417588543861967223988047601616937243438290852317619144649550223207755347233899137342404524325851003398302973015289999424117533497023049083590695818871963912381204655542755014937578703309896551506208147970936020976124267672833362409136470279377377363944358321486097936268331167964433596364794041222918863534161597215337816526852795051966947707164575038732783336914772075422337282246955572282341518900208245778141689450422557195899202675562280948273604858886029153478500521997401513449125586712653091860975557081330306242925173078336042673922499350370392035770312186406593133929900881262620483725908967843430633856555969749149708075441095336725937576347247348467810850004799765146351426790049451697820669487469632088839039680187789015456529225220805014749976542309556022743062855460414266934469388958293157458505823258945361094490218533532782752101093407803429537947030757083401310168042048366523922546490802086718451927996203118068706677237154068098588813461430423746265601189942092240369496435910393993118244258014723490220314041277646686179850042059754021819336435644598895022655058763703502846053022878491839959345454092250481915423692757438898885384102307396154830673987289454744052121097155051400200640506769566508125258238090329459530656059495179781329465161806582855791312236794784175638038839867272278309397819907705357891341583563373465361365957512148202677289646023392452542495597956692214171888084646369577484765464650270154870898065085963289760790132517620385149083827330749224466645775245480211939785658698738798033484097195603332837709215668534155705007587269232843051006264967090154865183400936050937211743623342299730337921199478795170633929779233948686554796834865464177194697335965168379091954649576199684382160923797091498500430694152699417854490180272102822523580411381408127574625493016378351803882423073499335880831480818684763913125146142828189371919477757767220168297159703731813868239348319365528148394801817831354497026700299358262507617298638043506421067062856681625499778824652122981626958600685235974571863197908239182206615517882438717464374162775125615343287832082365394011416627117110253179637591883290659780106439103566373435565009826724368185456437381659321060277972618385062063799528923943067334686008087264459064110050155235395870722979352219021218468766700076039136869797070356161494945884237640104234355260514624156307956366175717446707898447487559793262229399320587913535106777228701328360275862933866466775827262447635852223311853455256336373754339246425261710328134210300648549943354886552724721173087043226505868047409469769117717637199598098405574094249658227072041895719387283331657561067999679791764459412558069757004682238579484815229536200987620110141362093788876360151640279980992153885476335984795978834812909090668565561175685348390279162220458052437097373394863348499252247217495968915249089430037276438312342118500482381078067720993772479788808282639915893594636085925854601888563077189329948040315902219009109706257492440175517186217473292813525508152146851027806566878438998058936562329753168658229850800192932061910200791228646305470427796028887945950647655017998817551295973125377768483027284796135466669252911429243713508375594178113924838864840779479951650075149230306654747786380632041617962884267665111958799669486113561460886917173765082556844223591929325282135889925765845798305439426880576868022936118876818985481703860217110539921512831402057187139535895720949000652417909299128197817739360094195828493320873321575396152591584934011896184057232596808811936992312144541950177498045807106275519476293657402516051998503963147051887620068032050673686992963880087055267896947117429640155311446373009038789425019624241969487290891433984842047797401495551738945149947336960021112576699295913102628729336272459356761057171141054891273458221744419915075044819624301278116797491628418949760410883482613033047931120627916089811444854296202999974139483380047256497367602862227656997474451146329930862527128105966744782740204712628854896677479443712254001391626994416385336739966923877409431627823289569682748641102715466421239078727293403689979057255751163354232157463881644167706863282664374316188963180522531897308366549518019318475343555097434919580339294204456043453852170404320989741322026098454715097810796367818605773199646715575754495701718924042548401598529412952263934394380823491505331364381254184387155599449430850636948273464248683532434613352644278228524767823919574133788787143300545890403287395584949722140163745894200929145233134216125223628014459499196434240613510897143464234321362998817353151976814441272313437938085090478249372356914359473700700926013894134440269481627501223344289370767916835680429108284466510281158151251320602180015485885066814132373492804516229522936194335636486610552535366954421231315406832336014414512578706567182260189200985755895823183750244797295008680082952516073446527362865268352260554407581749143998438706155450470235737275309066019422505216688361333600826589002287373054807460691112033733292573063198872634408838912425606712991660066304524056560285521766684989483871355639079547078790672687396914097629775168385715732871565748649670078291073026837251853787836804201705629788798539324184249352466234246936719055570590061393845051658718908033873720084504801948741134610869063440235611130276916719968615399669981093072124265219378765249590721047990196079308350946540046020621960827084103407758312122338729914843791522754450529365973866255920159183857298492330527170878261124696521933255165461289395617592708864381681025314322813119317251848765543231709403803291481043355768321425490182196186154535989118100427421923195292398860333552665584894191167757198453170681835692746768717332249041599586775243114937855471815910924251441208973208644272648467699576989279393617111653406009651806511983082516370033581361100875727394808385237891686346687794704134480323233707823173315790186764176876990915215440366773641836610636200303215628523357754590755336447485748999338372448523671718563511797557297622232195565307162823229039957754479960942341451761700740629899649913119690432751419758172182412591735687086662291643386657662075942156716435036215781978135589018865251482704584950659455485085526628568542326554078728764299835760374900319454212893411595102606837165258542196530773455977315353332980601652112811746316838186711900363066067365511571022791440179778840885125233617112917954957677431518106605287644659632294673313987246022179359476431983525883925633258002710005730983896479306625447789453653445180666244105121644246535037783331300022277035439153700273123102580931931145460209300288288755358376299322506035751576008860831441922311776349787628918080627206242435601539228126450729539827309565119777287875002602775092234744438670991574035176028663551937108153857106678653228256116016110509496741799321845361480278563276953479790051685768689867930340296879531450172864792047727876336327156700814486057426298836347410026705637378953087443780910052700993978432729803839971377263132476252782048785657940903665510466860448395427274448751693276203316546625370266026174382231206337399525616693484134562830758489146094847639158491508699356780977228894861502253446177528413578596493263208584517796300398554637498683716863113574178129565612104171622027493031893918747373538644208863403848236151229318604130413950096356024167426587684617157007469220856329660935661323772858175069766562934268589476042619327650066356137493235557749899900551063877293021152253350862042287913720021455276620454572819303802142250559003003616892544208413852289902927867171924202542072541800723804473942882455920216570436491936479096248459374734752440576881663879950022181100296251392158888420940339719544461097299637957715943762419690756868640855760966492334934235097573463564332469776415051600719364620389620321278114281716466965739974368202497266708501988341502732260519443401952745899319507751882750833524696035648803760081583425834120169671219681013203962291819361299756350323497943163298278347585915369005673391489293906209007015453180221114747081165003258205284789876723510866026522688954817470846523622850784303509776767931570668871852688382199784831428113472732281545296940405914017809137419663611371081751040523408715652252527421574296730698245866983926695086665914269548304810101880532502266326339314800926347626939451472989940689056002501970986404210915510298610927633864847362971674664953340251655041786297440497520603240578923984305681829723555001380392210897388370456180152352207368846448759146993043184892697161694282039524118348191069525336885426967204164430098637554948151325791420365693066128493350337027194675556390427859295061031953374639495002093192682488256085446000457824889708137014514240553763314452237011600620400373081692662606661615130447727869606176145569428757139226254886101134736449117618133872817133021951383359552032043432000379061632191734094814272855488214486522131468632906549162271324426961608372556903723368931839568372074850852486920754531752163912974003428070330647822163907603045859770140016555174185254117768330261354756650476470096786509040843845502420736430927797072645998530473966046039434783012100880677528517201306536363163391575169507254025231050873138818472057980279086852062473527337425516908259604816945358781913839779532977959662477135102032328959099915151098755461309261722293471241167861102655969180002581435115662450838039239450332856723445156783943922797179357462987572595124937023965556264627809853581810979329434657581559160755910620416606152063857137011138340983229495774486592944258661764949495271057082520197613688023544395703542017153703002491351082438394935080951143988416485277730579778168304554914895570504566344732360181415920655578541102590815512844470818593215427111556978805842667574265785018350178891476605708365133247603563789704143510960167227201607922785218003626595489528503558739871212548271725191512164899517393743457515488752380371130620600541596097544006042508457375435913875938401019812618597466040249561699344759766359661756791450923376689427104438278428944972163342883894544853792449921027135945639297683069038121929388899810888436791023140255598715242205604116865134474980624219319534965760604030273526527825754965205253735749540322338222612387611791722745474768714440884186513394128437727094786089361841433915179815425982398008607984650604928706264868845180734100877093619475773243715373589180872006033865959586644580524177947157546729701381516998763029480942773188911234590369500885385972424369417116077959524424854087423215568412702263013058235925969135430285557879826492721802552910350879922804413713842914879394354587606101329997668085842713440264886155530183546611663033059572219066889507492365803378766334400383223702324673652330133049176886733492547797409917606226922777938004566837969900503241267182228763756965233526533655476404655687903958978918226856926613302163084593390537678760505975138115385385797960918371508057460843954039274175729077968409271617086211678050623049998240679843835015215151509806850040477262947259420010008359424429929096379551945148302771574388728916610670483816476557259117987079734448690995003826831065620230963345808781439003324316873029966437609853322962032440822880698200943335549298505757644295202216973986991630491445125296030793647694291283990488382367660360196219567220554875965625938162822318548394732900215817195210939625545881998919217634225890376512219812022154261976357848317161994510497464340144792048205456142022033111260000076419798435400265094808162315056904863608412552857139341927361275620003380993679618455835422327486343299844654403894161815125371589079444937422192655977932176500946794680653823268508969730845268459884632684159390654674941931726266505231966250918933908559300081476071254603116222347557263229363760956049191962203639088569947310297034616802375968350973194787501879300726367720924049406961384022805819574141080508345957524065317209603681968269651355638967505944225872645689561373082786717575599259550116729378900905293195178086766891450561215550357766182811695612435339130942143074809382524646234252750344767318203088313089110842872923195659829280513448309196417533959111904056159170641357695664877697941135912556591564053643994665185996012233891011942553505938961433253969914846538131294221174955641158400764033811378246165338491568349846054348228407117458622921980005585645547574705067948605083759679497349571624783304814317771931756640354163798570136577084388686490295907115353795409484183527417613387459753108492426229835516195944269481813157918998799004118113108899478680928632753380805384548157889764662859466229413108740670865313771918061806319085216243599189903829920274679307133138950616404457832333172977399297572134297359112211049610177964543521173754522694609890552399019680535651551652827634871467346004912861187825269859299713708593012847063227997674973184071136846777357217966474173449037718437984280692016997324863139129484859468347445222271094104263085716191502532213387940607837446422868799461619921634910048450341981135598364942448763943405928893248779114029410705087536284271142281432882990573794919268860096745858210131292356527629461086377792824272687382487255163243748701130375659774855991614442555932069777543761010051114398914290731312718303110192369271182690438751587970178449123019302452455068945612165471679849071140009210621016455623421180713184969671464332118076573503202744293463087725450904915146824688904024086640824226132767752336160942315679799439773761581784110091673023756094060799384067426002577570629210166332827687941399968057488791622869138298388752327712789315101411402871276434741185496270469923250516136059049314994936265856863234140284080674596071793712150723639800456892014315496474280685129917437657704943836287280956291243269607009019839992134855258307894805314334075414853505709574822693452369135509639014925388428947576799462470020901718956232960508088058633693106441743692790083952050704022100945558558992352677595357988119593772507120574084139943506366474740575063229957238386844847217181990639927238060539582728428556085787236494393964486164683090851734326006691030436173310520294610611864922539977828962568718777194117690256444101174372876865011689878193269443753864255781117749267298992658326078585174234404778312477209855327907400273980422875336767684550404758395064122500423380799590038273079851921579526950500913488845079552677114693321000979730446952470135675039267388243573281230170235169951960713292538015137432007308871985578692272402361276483157069571372374199155617679019117597349013913565342177916076315426975513110764240833128287804910111902163962058318727320087285076393268737756517569641180216208755611411262933170481265684554138322472212710962723801438185639522709306009074417404628701859830286716551843087998635921676590405179155808954689170322324369308399322925154209159042084121697291262877316321121213812633675583350609245051923177852048605283456176187226466026344642861760746145029312114062941601232391676324661887019735638983488609814382949965949652674476581662597153447363555401100903852966612890731399744321173137980494941905316220974683403893047709991789035250334177375362819678771744191010285849027306964630236997184832979991594217186119691693726244527722199574786659906038299364625112830351257379259359086458051902403086087521669768978074057590699802144310168691493817407634711989016388532883647165150299114077311615556516887007577076355768349168516311960179535983774708755989940047208881466081472815436398187414041029245522107502329467339551049022681726224434849706992255409542894750879226687530194961961084669794235415978586484294480112459254065752861697820387872853759321775133768180161449750358887592301003532431510308558576667573641277647686308380270369186822570142149299468130118596703975824547739538425018062155741693557172888846011674752418068916839519898923312475045447049686650158120833947589227313480035368936121180257247559139079019876466903869248720113547879733043251001626525312446739712482878564914947730689294334742536927198779481938636150792932742608664029732954440945843559843944084483113556742897664650410195236563207750670871494600935326075030069150234784818993356356447306956721798089416467141059958152698080594873824302492128940066221056289636926731932142353255184619669580691443627726115896940010208835031251905956435191036465042776520736148520433789257998799948004817614274258321223646668143097290144112980537621250935174064804802438045926749355040386333716666171537820883077121032661825497533359443887884548504329565332403123189177462370092346345558198488502448105240561302710883095804224269836836322603250172625749917248303585749882886977012718605858236734702103230441343867935213902785389813688408980553579231777081150231108916516784187709243174648712601275031836265794973523843918819077050945167987186570014659369933928287273148346765876872708916184794200766841427940302330787596701985980224794652036347175142173839967792692384120622280888694941575829808634496932046548342731748671230952859112781577768883889502374919797170325141930077680085135355376629138347955323730202551338158810349969024842769316124016883054136932971158238855823828872736025388841107559301000366842548644994850848164398423878311726306775481715753436993779759798478441843044164152747985172735433247310461578049649145599859120390422484251839558294648875250114149020180573338491114782721950848759144363846532086142462190876553577163087910740812119086382384162219959763961861319834296896965603271467539180076093408539242797543093355934537303902981839054204873156347269399796830083224616991648849039801664949093454039765760633904193712046125184667229637325136839765177874983639859010901178613942332859760459425157871478358964418516668964258007080654107247166925031925614052500593925829719190092562432844704133015015820096569018345050707067082227968939038647405209885396781242309607795624625246030040579839970706210421990227774554188757855541467415157148337621198532782332215087046406985759406366308644568248522337510924090810904628966772433294507989440767981015800713695852392820970669900803263800705146977695977480722388706602773217918731490096801205806569365425788415929808578552188231706308385701039568633881952897553574324909381298052064962117392372780186324216896612259005926929502430420002970465161441242973986574099410005397816035243862399023055187540675768465668370725919112369408717713728587256647706172985912275078513625419745798038074770793031432187327620868097423547175102451194040257700869187974024862704972521235438020617676822773313779689683296191906416772831716232103883492151987925277740834383625324744981974472705915304231949001446410984969957811925530466629642995914532210448169286018309944818704286020443977014655917349341177293467608878110319930593279850424686722256234374584935479384337940399370325304649826074170345986758190284651927083072539195816896654512653728088778612038172848296634763130921187718118590817905948577972526458560264300536986238331049281983748516773650650657344032367841904863723645005222784136321978977361076778992064100941659779074059653906793798950579151740655195301234488063769359855003456342497260719850910664039841959532726367926678330649238707838688097679644131366278955859779338224061538218714483073966030823952973653307914051006170499089563274131102570851774637650587930792897453186201185107111278640325410757372036041474678353061757060146867089398240352386793505107762732993550391547778473278113465071849982204488837447389553939120341105673862083156969120678461948712673673858990427994389619856468713727148995114486035354879649332329527882169644278270390577965746240079217943834081642324829638711086767336392272055293388986524868049488187762617763909275191663199113972091692523165920437019032599771475761583299674872277662191720814992827425905319045050411548826121210546516190352812506220516890971676028805897408275283177741414181741779363569510164425025744645272105043658135244193014383568931363658265508449393457679607966744354022036068505302800668015676218556542965315840830626736466759105639279591384865090870559923442212995158335048470884700333663276818502540011223110127087906856366133594500561438808164054028745383766681567962694752329401687459090284714230617980760429045549120283995636786890097400989355030154670359409948484474293373619324955414775679370034692897816234127508298716519151647344785139570225225313026095004135237096953315736039354107738898300693598786965552049404280480560084263592181247559301525183632895414443069343704143457869512992802041045163312127341782357170344949509554570990669603193046348346941617929773206820228101369880879995495210666041662206189663940280288976521670987181405159194201489443910354773961156488690434270082973018385804928033010247115022863467268339063082688609195168173367362353511809898980774855142416510491812660344453930875610619595321594581389169121756599416944751675541244121517890471876393101881660390389634799062504933386583280054511739952537071452520633999706987339285485518128629354683891220960974082222912682300685756793677242681386075742925827118864141604531115779857384033641983796393186280997310413420565026079647499252724802125399388773315856460848157843210484034083776147102931437663514337096516200229209881130831060993990217458616433745393714452627046950673557515066901561533754988157833262136969142669589617414761037786913805556401817533029052116596082070349044107990979818550220369407297669598998236437079750584571468539425379252205548626562374781673194828954974515967825963214019735991883598159622795384467980844729757365737894727153511263481368981734826680883797341846517984713448006189082712000359250662481378655109930970736056579773711234335851026695822491771797399260132394489937609966426484190030372673982487071554451356298315068509761024029863960838480535003621729369643038076402882390847047676693282611153350002943929002905466963949974844667528233162468595407293476057132129608074669456101247810965966233081313222934777311485372282793140393293585083374267786995932785621128666933853651619737476297807816370756514837536665490790974126907889665438704543711672870730118408805122797126927313504158845451715308209336861587625671206586175001147731297878562794193953272370598236681003538392451995699205033178300134551745654872574337251469419642277569935881176445213130511901064324351255764696868231337104095912589550428041502551991236457892383715941456150178725771501825801726381269842067753239118261461443567399532274479909593039121187079905808416551063524542639168351983173072647372916354566815478271204730755488984998906085271507108773815416328547716691295743497512830291983675415046973121322586595075942554458933283370921049474742950936295129151262282874704303146871973173886484569711519436149206408527914183473701445602397242182497922747313898086775681998186324429551168551991182564676610951384992178143050286273536095275796987786372554325102315924763822967304795582201478837461228468807619164807193821926429294320280409425599101671575706789939919268387570313905665670363681328614898155768818500759914499818943428177349475339058191741142604339720054603170312913146310308790996228549417365162540921926457630425927462379471674507976290905568205256660029567932433447535378683042142857632526086049263700417240369639692180948550081056221237214892723778686013512528474876797794666284623098592820098539546928971317020982511102237302838776590224743744858914192805922023817852952793799030408072548215504737902778844342597630045469735982974800247229391678175652547432730816330514574148641967029890764179078804843370901865082887611357029285132935752690363014810500217726350411647967191119261392456501268086650027394131700736090302368260442588301594985499176927692636396598605841252072448077862267483912412459910749461510212665283309429428016541029206985796751303983269464741371645218784395396657511847175195433114576280112085556475044609428124426484872455303323884787055785197781303490924353849813793928897769550260880930472640312314142774396965847301765865255973482841292440998556805746530822882040532918193792996304499214145909291960323592209274893066238904808792166522736602148947998068570155039595848570647760365659389248908309481793495818861704422961569434228035076200956012630042451359923072709382063380724516796125952491151869636817162178629814835158976910556922314217904278754871364114216089431087222884601781073446110991194213287790023724762299985559651166583958886414737028936720447450992319467802267065443750283669520970271969420596246986415712522599018561876705904232770452622270611119589683380752923831986870269389960348061838875810432228911330000745522130695778469435142255465308000066589271273295420478579023270436591912665452834306840417712887632523331357030010811881600117371467046316903016446900449532989847016782858825679086940999497358733329239231957446359564236533712019915980880939581283879825774859113917968982630031003072832498933395828496120587644508737050132892785923665725279551329345861340451633949160683932542234384740412048934335603156177561721652581473824345566049551429690747142347590266990916568360675312286624294731675741904271343819734450792316064710707205046365562265839615424941590336767232115698492197500902434930477663351426053514703959320516915934251353952319929355610767920526534762072634518110604303371372063451659407308674602157939445797366491281242995590221656406623999777630575771894052222497526486196842715145262590120908779602670136688454554246380688887487387067635047031195601907991668682752177154589772846164314003320403658764577972145498525850599861013621632795208091063703048355139817523716142942363417274528773616869062668414168295199618598746676219458701608553833187243956210855078488321524496513770480943113016134727210421963216648548106741046848919708159127859285196069360791029623907712868498811747007069432021485400839060638881994350889999014611244318984080828778238701834352981205364187872177309378058332002449162215199020933418248102842081592760875109910757148026962429187280535308977980562795545687490052941049607234497252302410757164691069968571885605181238806719539159598621767548306130584022160809394760698671888419613380837055506280803414638279264447824146156272674521413386873705900231440873450927904269296738665890548133079370879784822218892658476707967652636752638782885041778268619936178531191993232591221052672138012820830953546553410213178549854161082398757843339716192704104451383273050289782157817010278592165940474234057422400177497024947561440651282161960475975841900652175026699733946879799406924473409705633339614460795347719288537154954050105514982839097577334641912952813295879038213324285997760072017212845325732874348133845973483701502756365481514849859880861821564964950176859076085755158375622098976931482277867845610211191236193218296283871032233224996826385784797389531459759266295626289527170312059765356901388167663159796937301613097361753503561636620081603422535222804297084245318991101314815776308700380909112807514909701765239851419578377377771122066003225124226777237978783622855157021922256601885455406008949458731858354211519479675566439126031252939307788991408831072001284599096585845669622040904844432719565261108336036641623687309316422010815534815386046431042203924715638324119216736850888625213848316358563009865865227486510791870657323503802148725369161744620298128754360253848425425468096248053128931028604753681030886861320507546922532331400496166699436611086882168075494077267623342223376658218957200441702002369746639642872686028121005727498859524670701308381454807092479449710433094570969206568826274045228857600478676845116710027645328693176271392866027082985880268620501206283235156927075070330042898168451278448535206673138404725590758647432300007178430928394766210831844541267383694480165942785926074024255089295619894573881309011906879186358443078135209559767151232373413970590304607754116163504333508153400535599532510902913597296916727701191458845983895240605019385756706521316744248973729958692921124249981673308262961812851445085527497012379535022466594047827766822136348107733959886623786739100116347973765918265915647199218727978388082002671334376376222508824473947683901821693108459165341932909475362939657905334216506977818571386886719146371953757630495407806131058884757403571220366586640413975011850983627242313617477952871314905406031412580462988892044962452137874358205033435343362269496508966324795387414893363591045725709535767069913368460053815171952015598346822914086560122717542326050035504802892823269615255736655337299254657946658675483214675229905045676308999436295775655405692557277246042126276101291753469196817267648108647477307186106306470989168049586412661693109199210982485220892321438592519129635532706332787988614348598021193559141255702270752953279649472897142564367735260845506594719616676424112851636797015402126816062371530909814919878807117095915181178828961958075492709130542196018959066016278371139458454278245623933179560709366848721628370147249568240507955191589231717701818595602108814682554658646914004585158202945444047882526348531282726064181766786685412932058242922573286903354806173910035397686239409050008746581949236544414687217211972270644550097810037798350351049759204357277681170189465228426174342905294106972605374209983172904227622593860832086502226706017733263325902433827250323516691935945352125491447952802092970443810888144989755103583949288012109608617624682264844913006812446568285493715584235173924200145078344196021177924388657570253511088453113904203945760780747735043158597869087027129989612352662870018693040343965193292760252015099407852060652091936242753478265870386812347478287574068246789070437211871706567736652715736338269504170081465504371816083006341581136510766717773349115446392533556832689478679448680314077352330471714296925404061619902957250821919758514760438662497721036335029248927620668311030030875751651218649847827236095767245700159633534130505389508529571431956129298769046266179572160502251208135250801119228994009012960236940735297735464922946806754572540124303205390358301987899188113952383863501752658611507141090965745898851370479906779341143138392533864957041706599345378551570727229714546571831957546622794948065381242738004552405582605994460578782813565607069118150998741436704310222794125002498289472031640462558553391298721916305573803420954769486971334990877771336792876828909094984284445151446501376028081715035224594676906538977275023317929197368816360685339964723085625301303467292082107506995937315759381908696921920159746550593836944901206576101000364808146553071028900030465072044286126019325936543009843332227436722956792757166910039711764013213121601654211460624606583962767077465039450535744183479033104062575458415588497862305974921620194515973533579791201278881171548346256155709039273314252978761476870022484145621851788669015833127414316377568561143304349867241359486894026253465122202402539461532011869002317717539822325417433799624922895792777351628345862572510938487342220578833019780709887489003884460546653455270821590979404919084946765958412346967641075246796046066017157276996731324083933892955078657003319627024002651277113776002896691265887307514841206053337197767865553766045806787290099991486294529292393365440534865232147183050997512668325985209788827522845233912915061964247294148500578533607248084623408369750492369619756220688085669418909581370601631201344289199380727243263690455199569093951728032353262950789437232860325885143049849997767483439407435584944031418111767699379553344433976485270874790855493184765651987871412723251263102664934208058031696625453083314482920706138250970375726374121220167057114143764466855012850046028920362731416969364111944191316910551529397046398303606755376712305711368336887688550236836790596257472544500683128692691772854713733924333131392991433087746697596064815912267663380445340352262315101096359674483436374220236161088237985470117324186378483158339486378363868067884072784670454229038435730290848981683162281222836195198462304360142835146659109506878966321799346353514816767236701687222600348344679936122097197530534242840988592836596081837136517242901902862618091081207166687808740879565855024920673191027248524284046357062181680815301737289381322281525216670040178487286296118812578223450592375247039009120336671984522607486389901160132087600394345915195080614578281929651905898230127340752477631383528631213864496952679964869941883850469275748508584072148306869986580694635229554470656731294686414699144143031136824124490671370977593168682352994200285102925666913966318318780590483080959120676578762790605681669674495161435886495671983597856729487359308197468046191455890977306341416043405667652434368489303714926829112660969776056283275644926003147403163243947531928685513721588319981877421204093712854408922352108429449621050031444987801060470415160963589337636714871476838003678442574887686518106116223733621408936107738064186628244335560596481519458712792271751946093645375666188555521747338762053175704248911383442672093551936307336770709814846050736017634663116097408116002001055750746819821736990342326244319261573554293118565056344191920679887474275908443362052838059214306551502347484853389768657211378872555042714759264080498500114005916305764675465501864927299204848540318056605975359804069443250430206299875935521126347195147287903077922750327671980796956467956086685277002853716193764110141114579003052540786702692513374890019007264775922521689080472730296121954894964809580647969173490364600477928182270500185819245483884940802322425172637127446457622146855261875192265496202193067868842255928134740089056337366278995291884420739679040665013178586543747458328901298153142435345101364292525512528587664204064678659495546187747186122333714563043767496200020543746072742628373092089895911215575198953490248340129909248125972926661102738302705600776976480020736545143333209727159588768629608068990532736846542698646313180883885492172140916547930836862955054605753035376816777760631414227584490286700307520709565632696141639129050053666571081481039845419254635713894877436697424589516614557852290725997755761537507666150388803479616474157272421791051561332012074017122611888118579948324700111650161146669704684538314122338217263261864304479382051553608440779346681407775480765406903857829323384300462639222391502892750478237506880264695245766433599016689446117549275326070761041397723926176127386933593589759676238222306589856875390343001250963929352050947752515509482807723878453721333436126176799096203378868615213568371470974991166214021000411942471662338967310446797121932388169421465032329520854225456725173867303015552892461769033574228153193989244654770336874939224323908790097362291260925358626064313494732987537745497741487280051872506330835503011197411396302860613459500750915295418206308077582314969329946365219484967888055327937954953684117643274668219713908494830405404934925725685875688997183361815302841984933995299501467047125116410327913155636598876378653029092476986929870606163475073259248993823116335543052468723112179148889509014260006515932163705025657981239056936575832073208324871486480295880328896780289045180194360591840266734692896149822856108440139106397606917969751829659343423559145228878697936223204946052284212330888042974635246339905759847068911851007694477943059000410329684507918434437537083164783400318266044881350820305371529977220875793647051781435817326173899397063065861572016706738852037411697101034857038437320660699329507882223645808016194919701536002902664255681251692445698930628468381713870835207396672750722308429182186902848141672045558687972766156806128514319596766775636642302193005279679030397909535536456866966240351338160610832828754256886884146862141332498074884831603414559246878754221953342462848011696805616813871405067943038727714214761688353525112355342525482360465710899088454332259162779253428594718406541573863166620061507118084398333094057650145440836038726116663729391372016752113179414745036133094566985578140788677381267364562214512967880270729684612396325218159321145513456869599308565400173768785406834593071317021042021216690005452751411397865437382483202067893584578058012876671765062151639789945297612171056389310445202645795395923078427037912497966141336550701418642817190092113001323649015238203904258156373475361977046501251692108041362287699927404306728088123328785156303246185138264700367443374870510388512663134137066133743852709295493043463904344648182871844394539411685775448543245126783502620172528475014307847609255839018925200745896649062278650454828565283883034181745292796002939755461321600047080553763055802969259074570454826748866892877429964274230440012114995957321233860703684515473753854945400976198722403224143076054110681148728159819425930120986810710398156798442341531425623450162050443465302802889616440112819086490980984486227860585560241610466783816167316050075014906937154035568411456544441810419536339161632003362095299029717255321700396111013216547028150932483394451515428593184623997834902880703399646693265280355188827157575861437506757751986503404210781055548747922994218447493295048781189906508075545285248533172888512231628550985351376578062840291006156304080124284557665193420040167469918681244585491633569524741658335180561221521193900670039211074012565357516543436086372752768394035494338592483170535863815611518613245759094832769434798016395557133173552235918189796691020349374781559633765680446139265981267111626213403409847015568746007205856227285907055159256938129358111515911876249763726860706478138282362883749865896653804133889212184968624164383359333053032900450426627641609255231346258108310116138815965176185220238039690823029957337489543204852233157915820736470500228330075825250533484444311891734389829205835506193554861140549769977577943539065474137373414767307108580733734947873378548455335006568759345609703382300582951119360127174418039613935931804433895569935837631851184804324772899978374073395339752497961403858667484981434679241124638311226890658037636598145596423680325801897169602426339671063617659692918649136493514995675181856764158612086513792638289476985622975477102985534937336729526206686210640655601655367962824485188173614882386251449668346351386058977814593693402502854876106669110412036639905764457662945483695699614345653841493317920101890252792045439517899394536278147175944209100239383989869084061713036238353162283817421909873652776340121131020855359367647424687011102962381854174888348576000250139863183036460592437429657772429621134147024501782010441755841077726045882746343278783138706199035149508109260298298340661171414615597722675558780513935086158393570462183672047537289924410952742687269173019241034815142388946444739618794140228025723034891821661470271208603408898033573542560361030870463240533271374571941473775994110485014364645654654991718461920783791826930092596609015118857286727648191186026305222213094765533848067126571698158686212892168973081897412315642070267521133021647312018973258486838240759337485540490143656830648071451412611928720034320641412516056683485628605505121099255774492963566808834326366802918418600945243942672316567113187063846446692266258226293044969505894425744353297867538498482029846252233319988079167431006221771893078917824839711777465535119532402274248502653879143483904306024964700769498889745207100972112821069259553407295393681409086371903483295096397944876933957932220671667074951441540326533356190635441925668849345407902240429065374552362456669384450361396768631224496274343716461363754683151073734756385751181144823905595717875624471877947672152815432887107927474385273324634516794344263094451303393671427374807753436125239485447746732060106954872806703942738821755129982727750551205329538258280971883939971715034142460318565937907960956627237599886792124919303381676569231271945394986027014487799507532079087787333631734696497632414010332205772826245952010686277284315475922648167679436757872059029542482065732421209866736934445919602438630297682045789416152123383283363822148915399834985514211639658994101798053465957367681869301155992962077593618945857568177731819777426214787749996371531563399160483620874118076030711305443887224484337792968232094215271410556757104227431875114534171157961755900284203374233558423923378926494884159399190561344816483238725436915882522081752044904624438078827573393391055991707475104241763210121320672570678535463085015031004058496492461871107000978885754115735925056251664633815206727482391678176858701750408340277589921988121075955383162999002499449681208659149143797264488748437378739523401852935008949765425972033533933592526513657187099855805755577082716022251272703611379703757311273122955901395089846426869590690161737656815456628210355051685580765178360237194262409011081890413748746490598434298035430817803804856280267746570422474899614984659389782443135358401709226110606376489318610839288560648519314353496106053125779962062220480070036700720270460351351343017937701125088412354689876941599137118472461938176125476214074284172524773182840071687918087843759872420168689876650590917383543086468818334076886178542888499633168108420796499521418981624876000731081258656597434017872325703245134076489241271548972548976230919915048905139685561573596133957085798905797784324275210843739699896093214100722781321905489463326419369074988823455849503904065155385719000799900667919075131023782083457574405059392353910678156959172007501950979212620951189456425939902705012780367371899416078684755834811808374700634755972138488158025057368740671396464040526971349183911260196888994565694192933561294207995226708982427320684170814137772806776267474642502477424107147611343930422670507629946279121365830367640314965649654157846665587637085539880718750995505946426078126925842676913550067758033931762331201818605218402060395671929260011855832249677840033102518123646345755126064520607834146414144737246066743948187222039541664709591166273789133855881934110953098932712876130343441249039611379220443300910675112634083945162221227432786810361096638538929672955210556051652668605616379868373657005236532452317646274158486910059357161153984619347124935300963194574784390395272716531906973457019489033504896620223668008153618637773399160960897569155833313320345693572255950317014741204556313918361861102254460139299355354387753727946241127515528779408332995978621825691235600227774222576107937341660669747630737157151398690150669549201220304959434109495864760657113392669897793139103234930215325723521148675197669660942339974805956936162457234545966578452238115629798413629168619688832065666759857256102461989435094887955914084517760062483436948793039652834779769483943878626559787964151837847309634401708777842844622325548308806360665870360520358360384643966957122952715799305453229207963400262870188792704502695559678185609969235538162383333711402810377675797187534892922096156684052881554667342198442147607084490473807660954156045259658855197859666467026387926109514616290283257092103522438789602690196738150474880787812241382179782262548262138371685069435671328831729163458979501452850314978943082100665520274300680283500912000258455615954954478976921923354747745621734798005799290472062017325554151689933810927038589349100152079778750577493429168242946334573502248756340661681806364088486105490196528308143841075249276530241871551726040950473286330253470492409855908031543983160349627745194848648356241792776515546262323644113853192354900200628808035477091244954778481836863510166648965582286148364904725363993665126704276423697244612419232916023624226889148004956893384340398436892641256345552389931063967783411291533412514336489499989543776538778272721824928186448237037582397704537198288103771846320824337050281317507617966885371542112858489288031248332114091971239026542872035594246273773171979302396140315325368634423151257502746095595738871678880172215645017721259437451266669362865414526352720917835070621918177357454697644685309740387663907980889798458339761659369285584563516356676499491168205600928804694499133066517920291436229209658225875792653690242152015505660174201640574067485617364522507085897877577664046250014952544154447758176004632204532792773649938874330012908745945619230411556869165700819161323434089838325828233787540160043076591340446403823421904664236283282643624543682000149521091966203786084622952831978973597603233548251326907102383948513925085093993564012498379901410742155532888487211728176643362193335464421426266495962543158967127958742958747952127679526770135947878798655666344758821931121271575322529304891643335386156828325326979975555360585035081893678099554251645710352112172029838022341589312186601100709782289731150049408498971118666496575377777144056772837126040121452471700912174796761594441135361939416809700366854405093127296874165332418855918117039990346414263150147181150643568516074558715127672776247534832432724296917183745587119379659502022374948004693359772591568418503596817651970114504198810525474096287293111539270393525848276873275828291907616649734761233594265091133219027716535340881469187067787158796932811461194567858292736231516025056325580573381404765242768056289369472696933338010752349057218890613040535481554323209757332899094782313282743419908836189969849378407570916433689583919379124656980615112254467130784720245819622606052909177618954967918693920709609763272368896250508949851655555384680696338651780316215420968468348700524319884199714444923562695657918158665920776879220890337854162940267787706357828455831026806038666981461207556082619561330598357814972289533670737764620543936226035265317286267815344556074325487011235869938759458714845876926468283292173321265776781416600110860032746011739106660807766836379481857167132639213755733735463679041850667045494939904658905924962118321642082919777779812106404186021768899577238012973131763774635516053339256931162263623537521150283717797261214652588458632998724509601708790331710282689982335232304898347837020291443219635895629929752801916465469636722448610700047739652937638495150115613959045387225946740811889119567804153737765190966529574287601823525934819550536252075181408466550852503662996809040758391345530506845343563653748612174436744200847260496008404766184855828122144171432006275246525802816511403844952537775134244825970697523348667454109536953669206568110709972113001416157023498095581183785383834023081161096301211210147380768264436891759321153259680333609126427023010540581634532857678490548238147545674165671648311955420093643753043992392974764718592578612009953810968518659375940452579578739613249859850045515502468741365059357190487371647381898325606031786511952657908430197587256861061309404337989054429346070609946448579657576645944212947640886455651121918013660385192321203646291596294852155207284865493351713679992125508574086662124854620958612283785062602588051160956121927916702465775214071285476827039800957209380630552078958510823215771109076932767199886903475384371750129542301440084558826965744963561083403060043369555231391001467446635004087612537527874505347445269548728664503319021089655578395007460649871099710828637388493998806773354460747674806314248987004581510360934546535255775751788677028271464390929959110548248899417452556266512975067011855876829927876738226701763916741135014731097346348364582752417003884833376836465500151280710115999259457993475642373668852994374012278614563633524939942226618389027483647678216031358299267954909331115218807314301064709220965353873731786981735701037161520914605487705913442868383710415751307718618698629170997956316747613259773898144421080254045702156638066225309184582173161500038559669034945407556041430194408101764321097948356937042773468337403612178337433359971995930274447118208259105867007708181993196946775671449658449497248883576166347149956521273019595013490451618572486898926940923245275765497943365960112051774995950548595498680703153752765731407355042481161069211353217784324084062521440887065134429231656275182950146662918634053329336176961145890189704626881102830488795218168897650951419446194678299349268021017247518622455961778673887498237594916374459356661601701723311364878151083845127375792589769372261768939101198302805291178787255861141644266962140864417679014958636332030892856683186970795837636921593663327842211150550693468604499082426559553386839882182077306480775246075277340939999907041241578844464051404456549860069500043375939253164887366489914305969641175979555309972128317393393573970902666630053901050447068334955384918333239891021589464078057600301717195102696556239260282930532243087769318906260660218986415847377637660364478512232476539522601491956860055213168682061357456178050320957659423354564069528744816823227654048963797766533565899177174245444861248919770522303622684741341532439275486670255845726625672440544205213275723396782557047165900515165478112555121948283492872412003771598136684509198989898556994996879020797989711404220228819515518850994673452617056156209983336306715754568435090510831540026997012457254147736476226227769331281862766519975573098404157725117211037005640493935022270503859790474704573474929535779586153388929355934197845370194162544606913812657592864083978789204153623228744795722965263741019738704472880004934595629956039563754569163925076496271382458775448183031313234251534014340184497664429444199272658402327616380985057959807841294585221612477937699153790679890992455506002982549809815823201141849536871465637053034604345128576938792932565944425170979671393462912072878360143641995587760407700397651941513468667993441574348880865401831616088514736699839910547168843874954900515294138732287996769236364223128687784929898313477301102420193671459998254300098212824595520830679502864089102062707094532295801225160748546186344976572006229307830260236069812308381835261180147551046034229736989990952331532669400928403432606457771343978025825964100419426653421121696957043266223299132840246105498507835152099402919917770727539506821979813865959485705606734953711571869980982195313721420638124613961096562555651546457147624053470374994633481642641763526037989986378688826398119854577397428628312641337006392146615854887384411276955824600923222599225260604010796252473411404546088895037301799671821291788305748303895258741933351725864160391888885578535592783461929519144468962612366258387864110072567111328190655754956861228040839085100298664390608761715534587606240326727604812441986500256122122296195166924712125788962850135656804279664719341839595718999521293776950109257571210552742951266209981589160906416405394234655590706093479730365365375539960038175558456615523241339190429171836420739679658168929847187270488301185063464395280612477322080205631581249784664809750938471655530944505587395071905875764817254378429558608620642403390295813578207902624302839164619721785847153717512586099838780588256925403390852421078110135963330890699673564067650541329748001367389051203048376046421232327202531056100808163182672912694142173528552150228786067513429569066803888150273268507211916029768840101526201354364405360029969419269247783212931543370499965212359818315453767537448838168078160767680278254654871961688413714774339404471021368686441288640742984020291988927260888959131167151330332723742093625348566024182362792183594668983681919368699318298795713936769322533832054363725457712062232969293925437971595646438656013947195918044695022521633152123313140954859930804706551272149626110062670644113649899751662752894129871015832611860951921654256522382983163959775421526113879166867098165426512575244260867321108674381844477175895800681217973443529733957447468434642041300347516403480060781373373116479587516506948210232218874838827285111127824316193304220596160176387465924422448599648890353850733676538993843606292130240049555913121228353616401654369428589550321622557474747219427868656281914331059573477475479067095066148464558871824787061780882222840284476375496858271553101128492933556166236372979621259599849933905372242021925743698728459065679362088348191394043840109185938997831867983394473616431550263037427500202370947295644138011668134136818332779974068742432893344510379106355230978113665009579051328859027550129442392217513381923334319671478069276939761471921499591677109214881867914754245503279921236916137417826037081535221983750664856393207144431077231932672825282321666210462557815312684819353541244221213323040425236590335404589670032401837359543361953064424246976585367057560185635309589212643382469227792441220264818613490451628421053464963595215061723475752395476329303575098382852537599018451291050842312184339052213998957841278301699056294657908881020804958239023543254367351620825497601735578585336521400929765662589274560180494663190296554728785526971805159648266605860106311193533521679244249935971455781237349691716145528065004200156422841620146205372104889489509480415527833353832055337630000498556547861607916215459123387898738604275996293880170148980314649570182197177008082287107301006406650684117464885660480480291515178732256140012920360552566483960775734020109137849187083739538517814166111131157584696597462081194910968321432217602373177480308288455417208675228658964887240431567421347457546594023470323868722699960643079144831454440230632128631830978134472189651278253656048034688836343698598633937083465574907265284148259636659108627735881321936097119058771165967383399066704939739354268570863523324408841915893341795034703056896165091752181976444652774223961974488277478513603698278454884980171686697127528681783542357700132180360397700925648552126945378695678914641851943120153719923739102967891360050377860619879458916181866081456247479315845349783900410977416480247409188017288905982528181843233880776174792067882472359948192455256416929704653516753266811335310723683880702470693476912656154807618802638274011739587884306480020644216848148198400410792537427470504689873730531689064822483417474480148549250987575195874928171240474952053751245869726040231758152276030231697476148067493013927031444853304530380746854015550501472600207314030458481621262805820940763651166406750655741745286536466965325097993440294920959323720688510522494546742356839885539068576450459201649132484000193274333696932324512789357919073389943922393724751163156977864618997427994327935323984280041241964966998737842668823969415900959743737952313617394725159215547239020179705200623492138673149399124414134218387155082106499451585490403583248969876475311733976952784075327379766340823452299551708316228138319709642084284343653398660983018851142207903821349846934233397016179264025925140738016877055294409098677614869413348238714227405835403393597785355913339015661617876207529401340116524152157411711502289603410976240148083989596320470295733833762470179937644525037779340349550908113607201494720271017575472599079096787692858740847313691617928840710942366111611553064409950055279554466057002386683514484376056410790758797873434278433184960636517160881174943964041555392403310486071096409733117349124014478873761910208657667091144020297020337932783916247862419714421367133210163193093026021803400287274950811135431282098515080288809263829105324015306706083740658789099056304756880637004842776385708314283493345036635237254274278626740726541863441348270049568882722266452716877672996590723110823960202987950358065423012533454163377763447600555896553334157094219934978904805213588898272789599251678185365334804797167727471040852975643554622430991030882441499325834489448372611257249522125691425855132727358119887841821289079260927090416660776573717597973852111480809513332993396994884806705574983581025593546064782604237129540743527357723955554390206619503232868680944903546804815582493126318586162477601265244049463952269989724007956769641702958313317737608898171785070408137326956222462264028008658186897007640740881790610884557167175069776677405449547808745376614126861496192539206413640557331417376649616910760035868039293934003643599974084764550897363316841832423687225540007848061767240877537930027466551871969531605157967112230806431634262480040478882203319764776096318540159222559562173363774325510806353704977906781041257771127825189351453125731772075052095149178429987020840955008909796995398699857085759049308012571758692969403507885559481826273619422921225998704428266932308229568186659060115395940355212595850214396560474001554070831443988285014245867487058856050812649155953917801145897264962347980366440864183377178008904387577511189227528914971953395838952326946419753839162277165917261534723462150416491149736538947922068580501398261272638719904120439861068586015501662036842306814703046802414367318350888937836600407157254086621885406871583505266151396615815265914214110803640242267202893534473893956977036167877956853948647965709313043613792112086868973190327133406432465202517005122262169192331754598783920211155655420382480921949476472341437900896137661919016089827833687853009502373998018456975614027367146361753137106744261589697735345935112437603706438731897218446123073385844665434241502416886006551709529114552519554612898759946918251271778764821607696992229563844378180643606329044328478174295299861914178548507719043673530577928686208821715885777952173852306853905161080720878234392959789757843437020891060709363682755391705520719455147237555027388761373274085844543001176985703305106301940558301202324740015709994235458822389194398900034015474953340201660326787137672168672888529995932321772913328276493470073761178967311266945831629561863511009230531594437221730217479079136826124447074875207389728542021551170292981960972897031548385032884575015711032947712802633598214822163455063680722334985983801742691351011372474079526026529700247307829196613895494501500667286468884021271572295314200908011880547188283275067944851248786859948884749131746971795933261645872931315162556969519055739101412570991450817951601681805923442461253264415480330726279849407741850339350935319927139663722845770984542037883288482613036640396627552953442832008511563750738432903346683301907824222316987636334986143037454782972863185218280255042197810124297097228782954809287340651509849370580862438555650302098654794609610249551747387652107789802966435504907442638653146142687985683230696748057520992176584211445789635080502495121110849950201846558867943700416894860345928593671547681459748496345412589569699183211747812533704925403469189616150958767805413802418414964724841092782923356730300939885513876285771509051099601913963338396343872992144045039572556834338951884300064847782634394158820412289354156607567586091888132229848506117467276663558069315720148941717947212078027248576444745149689883390974000451980252610619254490865227162387831043774990342409142464216075856073738059183567652762615446689149542852985796522640898289191116626494233854738628322942136276566533679718145046024442856970183767249639593312029069136804890543828018348172625473265501230565753809824639706948032707967507666973000366935128400363636217396162469436657939953520207503871679236432987753718275136247171029885931927672649338407564364495380603820888270127462763909599138279387367246188948964152738723177720889470227826608589058881487287860507854386447418175914842552088779541157193475569722230817501664619631749889625856719097701178633849215464231349585257144980157961330313864869770969792294108863603983737431331178060805303793218960324356101785024081664592654449110830092521910687564432101147905843660538559999679802209121359859113396116171909964325874674778407548330414235399139135135865617578524341407710530678442860301429024948164738535360621666841347443641454873928637403597147482251500286438099369444025967856884895674671177577148246815332800798708101088895616421954092450585039593379528238521737077458753839242168919700793009898281970923691857415165912125407752103820917282238194697657153271681327313947643961011208271540919625391157376378062915197997974658643358895384121112056957644231540136432674825888496726956829203104514757596026136408641038625617312204381573478759602731175783079860023938895298862027158078502518546771090421914262819503356632893641882159725175528817082677959922732282461116468565637879807858018605376276339041515805300009312820936706012034014140108635461225242790157334436839906665998069509994230772910938016791061112541006529223346002553257348930912160672522744513517109012176738015754069673577877800078152585666178738135304251060768957900220097587524503298687119174399150612956815520417245322923254726331886065272994110155269495252422887474732325232765528502447959069713892148697209652781321382463521916134768558590918556860026566304720069501289475535930380641072400720747464916014727544631786932713995503464366811510822715661246354821407942064219654242778847602173267509391463428399161523999231903876165918902419588270695007232100801585331806559280271949740863926457080235037030174289875289942873732082712251495048689152500972387697262731165302836204185388935049689916255038347738818203194759464499528056011454705042322624844952622000335476444854472981142662575268180570930079372977498275276925602492678744076329200170281366540623076844243996299713825334290626355426903824140433128707399306824033956737029847734563079679432613694781756341116957508116063117941902029537795945179396124385859689970141272857863525715534353878081278661142640953886887320767966505385165594399501007651424409724087065987231344871474074838022697577564243903320201253232192793078963886669889105497622737059460578933027776344820930954699240930387669305272596111081156831564206023870729706176014946559249267431577661858981289448122821314937909580865432305036153636385285273346463419255205086437806730679139349969969552668083057434874532279894796425966462302707858734239226509702739268702131090271015711878673484081072041653948392284685044984146624060057226743177987435358564156551686752052672868547501490953338729288960009834726306883379828069800692470588260009950036800637079260660187023388513746799569538546432027777543889597080913910550861476911235169695164556738484244095635607093744670177059468705756541826976714574022924274120131630277982013235515499229383101065050253052186814828144228793876281288057579509919210313687223467086597207966944377899146524126812519922630141508172950224649333624664862219188121342739573760825838551618312199815694148035376561129990597262064637899787842925086004451903746808662618105019337635480759245536309834766576944086715955106662451304864482955142286321902101608077421341866725610060016076868093893854420491937923894053970133114479212850449025164492064925977333419444717644902398518955399397198393211966520638251124256569192688373523781509163960567038229550439354206158985692808843037460686324248707181825532809275478337678026636374194033081658633967291551628944933189288851578474172331457107334522102902646577987409311905326866165174993887187154024825228703914400031294928917678779863978776573614305338387925533812142448622094057447671462372155388585896098393391267152886943987092698050050736065026411180237949035674364505220468077878512887257799117831433399330171593699587745521022993168782624573116160728036251254147349665215861008120764015009403919075042517998857536567412355930764088314913883133520493399165966634351109158092850012363513239454577349884998131965156877153767337517611561585978677572474437580421248812207389585215119954355532979985730981002075917821039795433907754762112737845952250677728151588789837455489649067408904443245076981043703421043944281373549351977964579270789171359908357168509603304969216247771456833364620496629922386409712025402703462718358268813464861516818381663068167440473839825589255329828688584419077163771197713098888529269766554981621722005476872591233362188680072186613240507106256029149239762351116156766146601776240014606475342590697690733237407894182207603095844746131028189500802437359556407373729676965537992324933283211216495128704088854961298018840765777946668679336630515346614792746719970913031139105969485179244453855916169290933818466125070266601430088673334128806405076616132623142558202377281679430871033459835724430631257581379760721515258867611949396327813614252166018231744332909077196698334133334169972163434438628092596976215566334347111969097870742936149577942203408986752122533566893548902977443411019330334977381344680749317802561798695169448875246214464360136915828663589922930232925311890818519280518631598241800282592474496417316020793173979730248839469256090066440020557529650756574455537990691234241173387565794232416433863991212377695050756280721268038926459216606780705391735276240051076549412074778778993044932515773605578223789381639258126350500846964500277187564778367070726693480802263015766216753849143707198783780253818831567164237090062478246488442248493515955590122032468509345417497280906958285221127630690299609961719515260704792725218661996083829476598752646546545368518992432201002407377598190158627905570185516903621818698701334105468429072442762443066680568196165745468426394340995289016939896411658127300807618834289100396914776694580130977055642562826993323042774753855552100706815889805407098527850789259453066101616484676157315934575258957576110097237047428903428656911591257216476574125525216815826598187446350002368838665127180244375728932013175467927198152147615547716619805794316573396310194398889639496065511452574821604450966555495459923751517714332703674344454139651873196338595002482212980177388813036746771476394592413614187807631147596945820408142779987787836808857622430655936315444016736084968310108012173720264910374503456156500704180258607299268276286677711484548122867459015210732685189484272895017576075047441438751385928069581863871425262852444855567563854445103571871199186591383233991380522632951292431013581107462700640766532574977072096777359899949872683018269320487023341125948202304389908305723193781404315768480001084057916054720717697172450770209536917418538679276642460504006413644972906497814274490126701598093508970117328381104608473368076087418372335459045508834715356489851059844301113280381176914233533597039405346712493847870246245668771891062318363349936437041995291613574760616108782789454381489186658368599245512848748828135763798855220381289580803000603601881850411974565813554431576152620757193264523441556534503720387899007532092315652252222044296201908397388292396380294962213886693491961499969322606091880044106750620644277838205497186522194734204797246094539592249638019808665702961908213735607268452169757826434518488349022130320984911076627438148534460916219654007153416853090861867323917775709875644137848111927956694140994180526558205205973479030225940036667079419779043351556145473634641135186939469515690337975518330009265938152397998765106327764303153404356834119685763773538451955948523052084397842093355652611304396328241534550146503454534317133059771839436433352063951114283253980389112301383408927578269682729361276915237235096972984292854749331922431151590882592847807428831111718377263860627904360177954640572236217978868351161972462370117650779931488710145107038157711704592631269153650218801276898625444566854007009467074907992390479638643471982434873008388309725121561759015385206974574665123871112083012968340829465202158143667360632118883431103695842835150110360083001662276449620282578057551651028963468942179661457896580324259944266807842547366716386554157916345472591585820361365071831596652565417117332452939054563734720459122357955313246295418050162873911581869564219181814640128184189995110908557018903947112232827248328450409806481856397765792370156306287353503925070854468415633688293560295243519640365977155381176608161480629381193756487658975030615790935198212808798600389478202767966762518727353968786927427795441236110625036810981041040545778891868307354251264872582264536473666292017024044559959083270808276009418819609520847038922576524640528237281492744445692055563293063783249018681481483359984084482331732771811764565473523069998287069644689065506155053961107117366316845762722390198281734366866787752095399764690058358398334418645955831116835908966950425848523148462607769376037383328590524431536494151935817535610717597214259180800500423133078692932813884761003932758093926854074144288173844685980462917278687765612653781799788102277632584450029291356371894222531209587665427169880650757332087613217665194244687591398047160498133144519885968786007855907402319129389357989507347967339918646381832999963652704396764128342904894436239013207940494005034173531440616347886521921180042388094527897917867824981118526936729373851196697032229597081746328328598744801154312492841993049096666277149778358632708260407447169212831035117162198486022890134592212168706145751615304740352540923207479433725656309638595217402750593632454651739185518681005451485797896718950085688849369303755520040310254867283182452184602933574585869952080833085411670093702190899366115834769483343494675144499876025674431421136836235132604036204922252757348059674676878200907540480991006138118606755126677786304489809596692501768042019410119506912834879147111066350972635134665443058781936374032569588315873393869424212292566343084142513932098862143576096252989571746726818144425187212446235559548563637001855119749219544290483070965029822625799828344738436172233114237455749439969854394284710708866293469576810928184068873524859893588228747743663707441891024619189575775790876621034736909236951605305275198083216029947095527286010738041854394195472045392141831795632040205367630938708264055768131119742938758461147554955221397086891733574615163971212651858190587029508754210408027970666190010602865930955267745226719538253509000750208352342149552233063817522741285420332417461537103944464938413261815285283187953544898702352503344797249786765704692402030866301721708760069340353167901669371265671274623339813371864560893348853590375103058204114619948887576154797696144291864255564206740401254087850285791018227856757340008919096858712323195550525391508485224253505528245614033427301198991261472071462178491191473534654278299081331438362255818536193356602053232897847864806186965340469489712408436142311525137013950229101929497262281709077868254698564055209361172867026733104303508371617118176805736611302079676760871403731134014115681829998899633459200276472856401754329362320931702093163522369924944368416331348614341044104506254056264778852129043161078076217013497368426614731428460688077594473436135335704653553353619958824776528450811972154398629385400263481665911052151098188214268597422634275895233480414485521430826308229628400413941755428159438347153125665081714543429401623062632508220753368797770625266875268496958817969544796740244331354835378323931383714484643324460196115659184855777255029972484806585995205043881115524348418808524768826355900085010053505848853632547347607002510262501323119502939110719330949792077434051550200952367593426116390868235654310875107006956371451281131242193129913279851863655541400491485360076046155702519968757469402727780589447216319927121502224219648347363364921126742058488025233401040170986724408202228628814023461514940306673846972640740634924506844604255748175965169998042794409069427112882853513701521823561217926757865014616363766477365438008691735396428219560902383959635661926080753953777121478119832759978685276017354160894368936105510462851277018110247046271305501075464201003797098355589887379945396170788670002791132364287789805070351185479980014549727234793141531188851914890533225795823320900620098617093249370498609902357368558930541592006003119361979307101889973571599251431555319334335275243298118912584091288346660150365350872397823823842980752935396753156625284261697686274454574833355534807322675230743915066703070786415252574007281187819137381658821211723907174545283072574645428324803560570537426678925412041016880000925829387298195117403049801477195571418868445285665714585056703297952687066396340380205662487701569547027040321204625636907245927384893887727785711886478464075328423912919072737890206070006612641708564796444284645982688431999490460965043107242211374784985673028289679404208005215483858800701686169251930890369646760094013259951125568407845648800222848198222586684689228711601088159809027986825349369372309570947510907954009911176763026785074309543528882875353937919932831843602739670737041515602722581055775867624740499697525940576645387679435036613725825844324987977548484409842120691335296363703926338630862575986525411962156044139145739117757130951231892402289777362904357406217057278027783726334787559120376783856519653014252567955308333792457503861004743292786243626155827848318234491411519703859909124252558798317760299570496637233348820006646398378304882725496606233103859764597666196262340238521392704266159881190717009973171065625706267178481417868254964660014883078580369673266868655887454808433068786516221578628743315539950931023918158358844580949884377730902273268123807012358450117807609633631032625387176018444740700784290202786959762774617085678453988972041170327854601228234419909176261293456170157809659072707650847025480152479829351334706054781219751553136991236396963189675726173074495707229358808251371521442963686829921829968118674738330187055021552805658961251388325416245853491279372313513683777383478466053561579450122725222115528465587798055347573791604855143589641952834614921056353057560157406557185074364601638536846234899228487430107616321174081227987647676215530587006242203912356946550911610695526950530605003713132485793002733110823184446728429275691150209659522157075892975404096290837702551074508269242666871149675894911467381949028183468853509786341890876905925434245827264345404073055701847045054260315984223878648854944387445292869546714385493679556287585132978334149250164341275363120959019193707701088589972863090854251042227262960762942269062550792183638122204625562650320870577735553407177970999853169857905298137487852109574325394580084422670516864868915454992959017107591191329590653322720484058714248698188224939720365157566159327134943694433688510635882037934625084837386810027944281714964318027053860598416357335445394796558904009220897253054636893548599815280835104566003849895075854746758716647510847329640330295650432465906005729212128261779819781632847216919626517551888420322774863553831653171199479508880964764927548527415043824701737744515564192178421730999424842026685702566606892017344925683136680782952872229940195748697149080070407407894648791982854385471610937810360703010089762709009349488864627896373618328063811755703014507073747703371877593055563136532339982281052241154145488453786491944653899500016189745569398157537457393643804632539399948211395596734302782479082992028875950145619543855213744688497640840667894567216847767130251576460839131071279380424425473890668792761662684268648259005783181405486622042587277026130750962492782344512932110289789627443406966895794290808705653124330598133498298420922664645283296114140808070676986749113942451503409761146574232568979104670355703027356024556643379656789291667285346673523273976141413186474264935206556303926164116960195883807969299886432049702998274625789093491994312072229063933187486223354341924807240649976002032910095023993230066173737067109403697800499139369339232323424337193257961864320494865074538769810492644415493588785648566460264402977525042072593714194687753533043483372904050318152007732137391923783711618511797104599602270174873378871516937847033904958372539896698208455249346379429700949853893722617370907827368665588464894980718501213508678770007008180495959940601240893446105821724845946411508277336001929958859895843800287900905216536454860721361395925506090859973550953386637210231705271805761603609794217965757010415934268875696974690274354842121583163800860663490210845316140859354088079718399604752548908372630091262985194839180799063053815966193275879263578682775401954310828530422644908058855960870118479463424447070526596513205720738787618865812913915212157211825538482104162995801201621177014826210248693041204538634985727274158035222715658969048798902487221045839298154334642995606419852994215643915877997160997650384746412674269369692159455215968332554513934295624957095013063753142980193789227578209193142185919383641285137710907281186169178577036860518649102774378107115932607871486782040721357239988956347374379998466635057027948057172614540651839160357280519407609325744779435330910369917323603657251921278672003490129967218463270489497171846885561727818695428506510407949916912101577263278757206149620858939676253482504651055952586998415957657127536543421768012390483429181444869215127365264954447217780820258216763354158863107188021883905020235027692157726300808907309673161501752836720329622221535572000598073271156882006978321218125468052651483004291694931524365545232787759233790675281876688470689445985211156424556901006871239270803198883877748484280863735486044490972821657349096333902807699096755888784933099440034809969862466324501172254176434969596390324688804054818280576702984341005369141604027263317498311385778545703029524279626898224926501672707579161464964541754541121812370804847653772425997945132003147497177406742334406243566753366902309815012561259477739187629247373492644442214919899174001004261968775372281072589385057185539030428129163251852699020692887860570437602362851608072249369448091672106817728139188155548623841126213987363246120337077979789835404906247240687345320368106550639495510324165122953927968253952048665902096386803432982187757448063413552124432027890350788027891602145192176708121097773816717769789982276852485271106025608366678750507188078742857896129633534338928327157907074976166086681663466402640319714404672474132135337077739574376447595236376954374549763892452468566237497482892505877694446222247996358640330221783933179259454683540047744439032589537865470403404479449828948523994670603888610632194311398368557643299840217082244880592027530387385717958250467923175248893038180035163887153955769584838432365458967511559387917525123857020301086154545234857844926784410549360783429416532886271070708213184121963848441947589873886931826394545423052118940012346697241729499209588321480032750507593232867564621439618695065282327828667625308214851507066937477158370025617538850408477846498250948961374090143651666903889464524482878311761605711303420998512416210850522515162553087640704971874681834963086463678335015135238406091390905006560435941508038024742769390453329535144542129578707456256049221638166576065313039305517158626910326459070604011237455497383523114356869631046508166738046942238107063157556795546204639451641218574916209226592669764665135906110059425785327192617626273910178231829928411038641318277231503980605579066393696181616928646782727220312921352773646661723897503421389279054201561663972650334329655873383459117557489104699808136473800774318996603172077518235221133554933646411920091387519260960933029769812433817994838632345947531021695425140915484987631181085591001652285388430423854698339847468652068911568056886324010564357358948279422356428864276783513940318619178160385129700409342747275640833292640017179383022001145094736640636971796828698072389405199292913175655999634509778797193260634520807857173031295890356912078813682099980087702946648307137119373146694250805963860185746522081233188164202799491494436507444376603768754095532410791997177980885229832992790647941559688130200868384151550834087200302972108366620941505519614895923576757063599087234530079163435788043945707242118899275976607358435598097425862308914220559884471229421169305946070836029637002702172951438683248683789783763312423330761071886043241742243569298685492770191228484168052693033126211317157188954066872550713026279554111545489890077518690007022202884981754518828233639264564834656806870298176215024853619899431077849743030840940356277479782573247442183818440272003937049840631053286831133046121943421587694233062230661132580114302380767252384772789378128900197058201513526724992785616473844577094606351451198963188778654223674495375731500909198252511309801777179618742776310420231468741547543995945493476444755404547489295158102043789353928528604387012150265806081520068792356640607555308182913703489267361542027140721986492627541213001593472574044239361838231483458605689754313473867104114155143517013366268341627287664908259104860708135893967691440984921008307934235076416067287778983826381594155937856011697614976337197986289081929282530853367750054113395074817966665364330399406638265723313645296103914375203937281087424916198518021483538824075578458178778246718753271266994943735699427969093427046169439270935284912664363036701182976640067405660291042387832646505969249731545136155978674954286311958577436555807634862752793598771602622796554692005673355739058100017374983585434778949199882306318816830375768053401935995853101147573633004775278550348392765423573377090714265008231259384400528255154406140808784352001907525103706394873995747811405234428580562567371616633670515143848707085497989829352132058147082242918036565623530869113860200990328235311435403563605653022364057210126901973346802205250167580600712464544634967227414595479995896205651151768279913764623846333807326313642263127819749038558454259200695359079758340498612596178033656971184907529981994210913974274352858740157842323719198163811551012122547896123858356512709514311231735105774751303975648179939220627294629310461768994633531839606478098987360034126633491396217741193169221019048594285292270575816499304824934917380576127745742022787465851680353667754421592682831425703941215688085550791500931263844509031824159410234124070670803767164102130677141287337561673849379439128038324311615390677974359335428246150876496053550142542584345469757173331006810528655063035321882423350227973845621392589043852922020839138489067890774952662846462610524759032757997978060973321651777981840690810841169958632641612182568434696998212600552498829843784862742907699289437382581568142812463236044258983203610221010355139923396659573144705182478185004339508763573987476954394103788590220600051141482048366616699936605519023567786261437644340959526538982271877628341342077714964391215796805133446744182125015392000173729354281896499696320589626140356250942306495338061611696561046410024080454280237125861037460214546080081870387308173819000274660517613781581191677555011258432083267760584414808525661994345712410189279882126152490579213698624143801482770541521686020612423725701616574479033925246680257889286778129757165469410668609854393914646962646806824268877471730146104764008743512512887447252680229830427736204769728620096279949095922755783254014259143668064529850534961520712819462263814988704231279264780176683116765651509873678380529750015978637065585287644628153348230884860605916733508531006867994200977458739838232331283234727108099267581441503079700109802991336349592676279769628043953212708678587267136689858516096885768165844066395376024989142165735542071470105441602352022096867327015880374492213584120813070337708774483140934030144210587889321345511773393044883289183144312491666221712856881475203871484449628089433080082113905265799140700968514146378774691418617985277263121646149524421989038338813266258472275075674850592319242750525565188045316838557063364769679247621494294994353217087108065542807882132046535971757203835206920222974430553677442385115129888857034095588383418638634712847055431762560564792416080644912173368600763641401427702543280482828901866699721067209029716479013405212039788298564053652319748932750268280117414350520297552748911254685715003277718407984049363598182080227160490491173298798215538725247463686324238075513495472704250830309528830236151505785883832123542863751319115593733982114683212801960512749598153528556033389932558253425425927764104595793118721765505417522211685516752465928405424995772465413922681800178658748042424501782668808120619575936455993046134498265921867672920321157701104945181804228185397820473712821808864014683805804578957982250267643018151215361767881621022777832344226627887658683756884338308144793798481960696686530799920614022794033676703606312649536968075907261520145942725416395119800622319985172683439560283308769687238177636930320425705828325697555341688708377489229040030539656353971438620722509527704062946278813504183899723790815254335708275434149953630943732222679237405043592429634309303065430026990574359385717781669566851584484707114810286590809565380403159189848220160591546401036350038751521671428921824090574036504112824213730371411673932330992218124378452085176668888270811082129252348214752514993930845917722738564152757350766710044228406732000666272079258847056154699443673599899414861547831684698714241614085805528211375711154038282778562112301314497696958436582689731300780277830600829441737236022437839146117423492936520740286037558870356680828291183687117860931793354685948402857047842850917424059997594169522284583003448120533082272479890235896642809845501269110531636006744139633729154217613081772471291583707375333397410017131636929924750269839286676284524269225121755028894849564737943683474776695888615569398970551092550407476888581592387001553582518969155667604647535784342328310642851438609070870182350176280644622421773988184308656601039008396404656903828482184158196091828450021592757539022869322890448091905111448640057779914134714674975188851121043926127923152424995377548951840106727891855540107553571663333204961436349710335815989837205139782907562700328581334517360822441391025259461700893333564196848698051706503992517743543736450798005081367096638781536328339418045150852061428580968233589346114988493127578783964486729992901107630600416910364615910285599311404397547764045748767595919658161297727302271113389914651097290235752730908188386722472371650583912725479284080450173073213612790199239794558228536853121716539476444476722983881046466726723748737226933400734846302233139888576467255723078254215646279819398101809174105700032230369173442265139300147262488922555625694502254414902403924081745695282765535730225242658696707744778511304882338709893550812550422387556722022028118586027927030248393518690734036045368197629331090623277637995624680496012272655465711548765732662870144378685355032100793917801666045060661781425426248550335751086032878568564506448721309085389214049001353684275189790232302397520720437329528716697204509453490754310240867604573341721610128865133790714144223617310563423306805065006536568733746273579560957726343316015272951933051692187766237826848477582167184022018162825898780827698156877304433938474882935822400957367447987926328643280705167382242989896687440802750081956399124486189831029005663691474802411183354001848535099669361951211295387464584083609685674323137235499635236760134328192422375370238723286249589012155102632676873214748321007491060599302138574061563930155474221130263133111354582325116922804004522846134828160825345134296298039397081242132519108238778524589917108845948455129770899302356335017679323603438642006465897363619978257930697396288232094755363534760464808141051397508590430971082966012678653042878424038323599605645349483611356078811364357809002887164046527463155786665138899191463360331165929551419654545747396869916336212927743510235904409301573254247733651885658703713990098292081917212218819807559867321610550547447213381592945467770396009496249553896747221943515819841575496557410530080211990023151994623010058609634224110718365276866585449666686204228296413023618020436611044172277265868184182111042277025958172717725994667855518055594685958417651219529610304680630743267237564824254558777782448464861755130360831451791977041912760631385427272849906628236307989563819476861643564669175471306085046488795201937003146799459541926778167226193662653449554398201255556180392382207859421013293480898293139891708366739744234815757085176080158569195779220643193257790940599525605789183281203390165047651574015601700281000521810269476485142515915158930590015442794944358192900981499842211686749020180986331858931271484192784622858757271784740366985612342194452695032438040601688471742912306898031701503706909357924776154067086581362750340240235483718126307794689084987727492346581999234236641434524833810478594673060108449991000752202822193416033090606030799664584206163455832545866523737392519730493744198662521332791437957933163122367763507687691614514058800942077783623393674159816933330341167604620320975948427950154944542771010115551018125364017461248967558749793691174409668799972820065570761936104170896973119046252768864950903466515098910954445489882122845592473840268193971448129214877386042538875106638845963408413458895346630769546113391844860039749170575751784016766648996607633543125117528460914013765884094058262159662234140050119960785137242078086771542608209696043265809354761136776837027225056132365693382272328456503056511050983656443363743972448646671847281021890470619962248578762989593170909775215895027567918213638059420284503782988787212605647891393651576588675375210695392575893223516436521888502824472388902761774301605994930001055318602477292305742435292878976959993327242324724006913992592316608256953954205393948299903437086237379045233347895434819320180761679897723873110248138612918545093913805724912412249696058493985809534761187341078356425519183001151057306106521683731536313665609545514831550339021913133473319635304179481264354494175933696923032791761315310402724925158963532998370320252586708914077417990268757319718183905684207872014035370791142953324801083005209511754366168750638044947458760829671650222044284661191574895609926029214944203255293930014743565229761920308502940326658413068312930251802619890281328156642852121511043789698951398379815061180742138445289174131795376083854717477672760624545127772984627973062805370907201872645053509374372757846935721625823277682771871301165574784656208075243026105944361548548390383868830171243995777024072366611587436047404812397461925071150272709871738383929164619954961179244635745899889905672675445179867290867173843482632693201926228230024489350181656721342078747461291727274535049308410269652583296093214888350264384737373472034340399918129165284522148809022295893021750265061342174877160356168620630424758009306873924187596232538210659700267280106353891030318951756065935647170785476906572784393980575994092929919052498017777430848107463419853274930515780870235579365136757116362234034484848154233222164040579268894130619843088942766588686238744054073500542185908469576057121858643436186277952767497507983617530504444777762072938678643366728957862078754365547491874118210440194384527943133414234173013985695524540122817417171843974752771706601165859360803000755617555419714334213038630597137604156543034381164922871056916842353250882292068602222928515073875109820259137971794801749806002059289248754868307781468708034008137398830487683699689716379597041112557338165212351221527955059489264226767254826743030831650367453549515264818840644847995560633265057708196116998568172793951272064517527923534178852069836728484321413026938130486505859068302505058216785917423049989132018302890104106730247284262219685701978133867667702882918747801147124053965212495823693024161673883732523729270431977789515045610840775147994031150527144019116197662390859802843460147553427879617907318027193788683235352134690192860961212634152230402363430736497148652289706501664236851508674577784133525496954217865229666083791683527953761401489322657330183413183894445502269790397386836681344659206262728614395894395625287153211182962729369125541525227497199696036564523538283037210225874220440038995117876326609499220055222397274900754664474008066526081331464859119628786863164634775968290973230958046391035555381493056891951423887675993596752762081354299421117128270718023041282970409268612712003632156536095857340385763917518355358369010822024512639393988779799839217120399929289726821274617525512159288589889743940439646398331741415937423900898186928779996258898647072884030262618898128038690673286185331488839723987485355491727248305799533877506229205483528919923767957710045922593646920135119139559032271350407257709420009744545534334626603636547146533604156232644252167827419537162644762043065414329610068775704244551773952183840257497454757973563187197657929172165023031768914590004507128853492254475233183115003193010988048365280468711414113641451005223315931811230109246565856447255664370105282790238156828217468982054186327003652354819887075925437873122436639396462944339163447262328418894131487201610212252187994601385851365813988447143982443007555522181528537059758018589615435945136827178985178082099297564612481583239263933029594409613216733120142505793204150856135622772997227388232951223070101234364498973556691361206949726220516937867579775048807117527017579406624026469260976335808223100285609106256835432341781718722980976755338805712488758362859559553618250359830829488872204775047571555321857836620237023939234669972012623295520105387666251039932333532296800823719289591552165782215442413325973952591481958406724438984624518346756559364363998817669982953448842775300471955064149639329944997550269013574528619538688673523383606689107816648162438555326745325193225013809569650528852935278830172005286634857151128713600744901163865421440089078625112922173729638381930231021416839350572045399677798895922089030280404364339373079395111411735948065182843018885769101617209048511780666512582546704802323147313561231539622455908583965355710116191459093083830938600750474333391061977010410783529312040274675942788491411577711456424503678823981606010222790575334839884083031472449353371965236509020664382544925634133241323616078193527110236793825976739213897438198818994005445719465594320087878557382719792745582095297596035474365689617632996557174234263729614243485267035017384948110734471303243419866233669296536434233861689334801717616224675605420679992342192396925284060342716255902492060411748256913825957014869820981337091661373782090141234022651516833316003246210651426851270975173378878364028742001339240491804352996341096868012797422456360444657670313224452091185345886052554540662071290207672315013672192080072157938679879351839496730034617543066362367111837105315707971019383590323507972319709736879664976696200824671770917947029763958906019081027668866765794987717235673256235797944681181772438782989825283064025344639518767386554767962853445965016710959935267434128989522179106082914329014927776922701260141950344275518549689752449255551076996172695961532812031530442810211708365368929849710238072284412762582625523151184035777647764420612820473954220959400912873332090621509237599470799147448762528978782734785603330761363048709656965991272606021242887918806134735126902906819767495233517975787390439495185182245737240713348937297714852116329334380524146432506659168406562196313922667792721427655940088440177184164352115217835707300999528087899927932506978008175140303911366875878246415919353862967549629060746754623322052172969016144576851761063647596731972518342432805465507917461706698511958193343122103689196484766708867689422529276096700876605895742306670959929731566166656221456848444950881329779235390632843146530538353932256099304317837965915859365506783670461234915718616525937872919388541742218114425095058480679991890177832839608689373869891059709233304460309130412473605084092000246395476348386235049901074598796862805095608297604891268890641108906524047359530773375543007305286922419667513049889676195303103655585258663559585933631793537245332992384219260772894925464200190467170546228635596058424786985356579182422899281570491758151805243880714324292057102271313194596587395276128202871795284578446905044046173211015865056924951383941213989779325577196432846480394863146296807104890476108633311044786894223530846642690674025177047376808616720816287300012390828370467305689714567201632789745586722818865775192191174073280904745357926407407319994919818057713318261087987981541955683453734701668182268491596136996861687872452561543223846040276287323534139935194599385160447854352436862679576076651450631113249454141612830759705893983301794074617696951421847230741905411287217960739722306729136639207136852362510056753157837015773252246780919350578575792902045528411498799107322736065485153960135991980519925760567849354626069506997088653678280202677458170797896822003654423109410477218635200752402430060835764377724824452816700956445116443346069982003251312827204701185378356480179343400659458331666087965760358280044056152412219177476835081273926772145469475835409240139105657513263306387343147761376749747999672633071812605845557349288857452882030363597498705269263840684704633340983769684231248426743213229329615827557339219171846229603381005915904370098270214343238619422050138177687563593356267305031469926898864337601009651213063135095383119546639187280947431309786019359182715096996869407806910984695788119632147233718954362633895519019474834777897137344181672587177696919962021614390148997325655103518475916346716476491228324085581761456708325209521334409312959514029613352794489200363024233973741077398582053827311381278236017542912790863556815927873517615863960724657763995552479763980401497865344728432794255965864073893281785656994852222905708672795197813003295672784560195978318402148938399619998447872137271404722060650478926796318134567349152222479582835155114447287695370538808200363851352449696465696751312376512648705181299069381579342943810251216845069100569201266988237952858303927278288661437795360685693321847457202104546685053450961080597397200988136335472982369162603420582084137655186452332074732190612507783817802054071160654196853357597025824295675118497908847104669144973143914849153561147212333295199529093961173173725611156004536642780026936571783672563639774509208200571483414549887137559167837958811695088444676455343024565339401369804144574283148397508279426030794998814971757501491541654869029989283284494386037721203165316032947004896662072834113993968557968945552878640418955000881043666961680364051742102586124935769081345871572147383314459348191445705003253983481662877720842755379553473351408654558541464785098667228898152414858508122403024668903750724248722306153149156058006709211321262989254063464798196715474453539867452812804838256739503024446314808277267247703695504153094949388139917867982008107359166826842498762057760747561393908048091493385248941553293837023016176477384645560885120379870986892382100464184929601077706979904396326673977166259454271692050347536791705610567041681634245898808872480055174768763946331665678774685492258454589117412006447913650922902996052030816629136667622862902970834981755445368353931421253997915237276577033168131963832274562645432889859513900423087793482140818688444855881137752803433427768404418752926971765896431650553916133311145490758430060560715696391659184944477611161438668205943529456798895384531302181472310000885937055296015202120326803599511926723720820715697184035881265865199618210639326843450529423195607996442618783624290292486705836191760046513133961088052732179008776376734303391540976536661976431753077887308834621492067913956353457731740743351885338480852379565040322767186262164056852771818731706732033326972457395930694669470892567512595247963454004723661567313448082682940109038366543668513058068797691309754512020639824265244122082967944779810871681044041165458859337577690161881233546667864224439742790090449330369257025182618017986141246764983183698075402530565559749489517028294669488731028157535443111474372862992680681146830321481166572480595760772477417798833796335668157657119617067113272113826027400927779789264900942561737665606750469738819969294162773325559178629419186190641216424391871182572096570072885731950126305488840419527241193996558766723672890149810141417124588115806724852679066220840286395311616367154288544075000015494315909680153859226039322063439844511206192426893117648256006363040807139913394997777275304856547451000549119992536396929617583680235911560115277922659511393954007000110652213879508217736035454984096950911408674550026827426566819677625536280211343713701598196485156626880574460253906051896951785538290704593715408077569896978870725579537825928428281292606250663575897640167065021655379385177331508220434500497914277141315921021069995274882940135701347906302329860216746751098547864701752734188633450480292651161805179576662753156159953813744544911081229928904819721524363833964604931181849507759638380602995689262845552796969069627558661244814710239897058494662003064063167641343148551628840719885697698799380505918358125281920139938116718200313616446432291392537493125926903901743779804854642289565457448491105015835335450505343522381882539139628977615461298839633253711626852425900672704907634197258127176013450595484416130436899786750624395654299449867003206762307106264975124804085422869914725066436447231575146258309964628501712680112708497264115893397773471846955943336581286247558184347770636898006506537267076185657321711089232213353983395830999020848566791451537904711840950027700915313545474485719194788138472554149131968633034238674306864980313595248503557908185031841218085054265606835818339737484754353378703704447759735005893605962593663552723840151607499426232059444114136996964046616315098243393313074672845288305901461011696669637451999677756441885420482994417528217424476968192453088824264366180161954993351720424441088174918968968901902230046929045241054559801441639084139367928239085991825163325929229778588686457203585070823045619626932107229630216644268196290300437872421249916534795276032281399093282796251671687445375539583050669106296557515849124684654646831608824562705585091427635194474670130053985683472892441623334434212154044602134774738507215851554105557288051299915275440174168542109602146072562834809211893342780047128712687301940513939244820965624629240655721348110465738255626677343987563967081497168166260385678477654538301751497378539502326463657033089650260475977388518511402490562065303489364972152957436458685562769591599526478488468682490176812468766609037755914886292012643046313182985959435683322319246611585526986850254814793391853516339180239101510828757699963300496225814574170703366351202411633912647150100464842782415864181399280885486517484620704591838375182103971672032330760086917334007943804614932500919438668751838939162145575213833424757159377368999019381540362626939917979177710306855697274711817247596313803659042299364208041372619846787181372530158358095743997964936144683949954400925719611571544614961600611720174948823588729302418834351363733726630966915138381894786830979992806671996299009527149665678689553444279222444218187798956058606172943423376559406482872987468191787974629037490815899314305962759937760526551353769187219625992120035964083681747638229447160908459258481570482309898452609795388938102677573909976515780465837407532241754923720477150382752903822980705277515360681055752800037757985265611131244447877311975905070736572831367993562895785449958559904494010651533704682562346297140581748931327232443311840110229757925492535798794603203833444628718134542809004214574479216425623982124967916738698130270003632053701405577545496306308592571324829167116786794836882830932187733696254806375561659983355281268694675622660936825005484656928218049720660485657827399436374228371195272069660998856260919658256812384949745759026933459296307628677493627773045143148548327086069317921684043576653464592421259675583212098951042779249673453462248899050378478777318149007137979652720971921102009742729989751058050994906137945726902535376590906469534097989405806052422593970411817997585986828817203842708757954104503472637642594588744323595309334473126560505589691053359190427917006747842607325505554739588402956770252258449022377087178881273852606324397520162756875169311268652824012356134107734510179785027926151929744263150780346974351946191040152726466819667972810706322501795842984155667134687146120992127122137198156932027279486066921663207844422017510171192658471496840578730921859423693260072649300171199033473262661956494239625039886522457383133648335885703683536940737241095854838346898006222729367181569643174571589598635593145620644275386341401196934701392089555506501017400937200822636732872500139878867334422227414430808918854941691977853412677305783367291314904010503514137711213898365087223530186581849571777179727148382112459476520898689239919588798411962513069892507919777156393144087411146942626294731785329057619056800093863783826955867100306608317314842929311297233638466944775211077988738934259563360701950250955531304227955889878843662156230289385207437273210986550440782160019968954860125242403554439385082067828598309151584911933039168864807926294570194933992845553306435353723185895630318851532049879704309955179318597150124086711106594681526537329224714206894338550555866043358223046023919718534754561106672290955145104224709132131743310701245882392963372582275785511451357583064460532903489549297151959587396831756571185987741400552417158646695146458409934063180931414382841912319215825234102833499433431789600631905305812207595483695984384205471208076561831723010855858941647563512575430775827983502988856209011249400992670017840619930554916760754388629207446431776123404260321471350993907864519764125829453854968657493985727569428089595681773642330404732910126412803034385869666482347247104720086949071952499934034179399588173082181934784709648499783622442104631802424321375856445795270368308743682325107801054222760070511747571023879712586676291297512163358707060033815646644041768636635152940622824788381412873332351173974185734914861708923549208386999680364255739326936061251674179442302845346814115465705083125393964789531328875247062998785649492636505261132910947716327255519512031870513225959669713825399694802028284917232427173523235779065222511427247649602413146367263691120149155505715180482260573631725884623531483859746010128880961007809584353699021770165738740148564375172063695076196851327745620039137802735987139296842007040013552760190097597698560723467431876475051397266896913787124670755252613261081452927307606275265714326765497195247799386039690354506699835311299957602602265280546305132414733981699654662234831127595388668219648727497151423005291565829180484926243586773117216969814068552175949721044384445357273640407297262246643469928816103438758859869960755268838264813729579224586108074141947106292059723211825131555530210535298377892969149133861237123091241209264840921449890446445146124812448424170540760396238544069108674671436343766588647903102842338719239933266777262944975617190139446176542751645841813667612774002620359223463932767702928920217449443629706978709160939787336725843964898045325201871235562341969272807800900932144723285494574472227964469860516098944766213832937010399682091072128682609633677291786733864488717605448041704647346987153379078856486475187298273153968916936934471535660676438180870148036280919298820150250464637336062372106362912439070527502010673337876005706270078825742389223028151158259517410258517701452158823643914878272950449365295527653868253307139998663732592095432529522959101151966583811160122512733610003737233818449420258677572578212103870754379630256730883112598202679096441252150779678964954765441010055732363558454899148008679488289247724590227591085234492724865514394485617803231317140330804260421573529813372059066433357820183736910201535638968585980815894318121892307507620311880494311822980232165030167618963615890796583348724404117658619587395298799549607107509531305376134280523369306007279376689313042448248233203540701191325358675530020979712128810108275167209259926991554910621864147683363315750139283463992328399369267399461464940537944740123476483913686953660442346510269684536580465688392236926989541463994773407347787741303943270509299148364725124394998463894236959997993703133592133281206884052793938512992018843498418907313762870108293728810981390173156690089330252403577333855023651171764258680135102914437337685500815324476038511902712557928211847852849103570726898599545893622505770655806248409300286298811089674965508411898920972774317878273470586545118370570140529635695529454440320378228587595982122931236800073945253026508570611881011728114084860927902265420163728241126714029310189053066107899232817684618451318673574634334028162059700500458108018811401897405341770611706283562558449297053801804476090977377375677765930432242264681675463518923875627424721837731859691667146314002833689528935774944139068708081980635234914147470116276174012710925370800185978336009150412272551107252465059863089725322083424907242208795930129532984239137790623589784217086409785113121385375126523787666528533189846390459443183016675636895506988625744110520890342635269463032428859430689694476453798388257564629450507746106709335221683133807279843132946562995317088970380889313940260098858544519912600367924226128812663477724179999654104248614967698770675898072537914203376425587144443521820144698288925732404181771167340269150211418035418547994562435724664466276470526972351256491092799264204129437625738103612130281884705663649554459655082939371413219011582129032536570164547814107453328458847604880766152306458908891014564848360742953544824478066114082936554112157420249018812238298801072948085966759120413231655667990637752040861752946146404454745916792202834716993197648986316373721134391662355646541455367069178607618298252684735669518276683391283707054861906285657110249128794821528432632273029763993987366329182994741124263953090714789254012729238091803805857098172669303901490334121309700150132083207392030139272080613850490082860392745464209620626335924223244530756033793568629694229793046806207210513662934218007500789928334694952972874880666630306920273440460044433591815274576063878372009037997473996125283349876320710131681453679404311139315150867800512952964482212888602311939817135034295309725830749898317794681435460793500676041828170266017756832664361275848466154030879000766861813490126199754106457316146675430275508282063612873237602466737135589209647990085610325675051942937334170097276700741552237046025148533714808839634258049433016678308686927784714710445955492544692125426312875031873329958003793216496173434335465764910161024759747645935123560813834328240899581444530307319479171987080804027350113327754784127167041012395823975395385915312211118576663081565696354673379285820753094127583836740448783556904282317742060428155183731107880387285273760874774652186294753365631961942544917969905449120903862794171553576465813146002773981132506026563892306316273303041433061929608482768177639747523802475901684979777342284038269405017355310275643820157418110031849850442966545743718689388318592757968063374146983878926319058135486698018771972263766619085479023739374647159932866648469983009798287982753408313289280297021843662022552361947040568183638033220357362050763580476540614282736241640027114821386572675238451683522648466026476231059039606301026158474370996470319922410108319177990096541482525401259145841334338052694030761709047948056164446549307293130994721919720675529240231944504334879350133663484299378187470583120620720158203481972128931888911095751967222145810985525678540371080767879392482232070803898001508603749638862004647519357135494499021831252756101396272960480841733662752207911866978844482456739631677522776437281574957347652835233297144142092331346891430236613447236972259082327029131416423753987521973557222409086491586090300011801738937508506844688141879232493824800037419306744470300096970320690576928876926659491976888416373240613385748804780935583678402769003110743582622587504591328924498673964154348727116081711843876099114708336866230176804620300641623545775436004102560605409290933859652851973367117568028096510562280971486350037980017987617659538952186471763506449074144292985234463668231256890100970343607713216262861109983565850534165437605214778481249083375926049015231557410151933542982712213831105904589404001520461488948909460140719001111493914736897381690874151850944074261313550780509723352413913555861517005895753871872936949972561538206959823951033733361844936685871157073781634586521956213398081420722004032971113961397487665986507675513277979129945709471187894068862592133823798629953682108223869642658971994689107732493181585783701357049711253687674524915181519320419779272063888674196611511050461651246681680782114801664175700918575886215530471334083206521745644591612347694235128839303371524781324599734608407865264127336338329245822947174023908822433772571344845737031125568201051623302549130248409867336346306442209055591029683173507517821710999705824874798131959008354349354180715239519282374285194738655053044430575399602354784089550809617499695516485199350736285466978963223520617762559897982846094324610513924568149906725206552603698137557948099940508589851258010012399264195724659588569284676293814191396623116508795821578068232201741699871877888117184265293944000300717984317822555691287569887320384236377689847289548414476901801362281062968001550344261048912715213137137211770004777627805135925931047721612669997105341328590825496781331622733740222489285968237460339201937068990032316443068763848124024174909560208002525010062875919775100145778303342804274102635919046004848092794347628844554349955861602285304014549960794543553766226256971445085033755096758077778960722334523520415839035160310213321740653639479164481163785288436894333026427399667550569829944268973026667365420099018272827811013091745821400075280695316739754922961198898786190143695011927837148192507167829249589468511171396751790198164468903784720320033453576806585401508762786941224608273819312436068731214127792626228958953772741046661599753107967279151172061892637216174300279547614487084795418847856080603457110861336092440426766002795582507478451795613972067645647792047957085732289622258801011987415179471365149374533235072681872210398610707640388912364415507406661537648837422811965737908146658108882738521104392711097428424183820862075896942150849247902573824004789555489466232170449888906490344216191427586137239823338199046843882252239171123649222846154517255019218376931286713059100409881383835868911511659918357792590659316595011826168375960360586405091684623251293544853395971444643977487207232621432812962026045749923446565206247144927747563897309951087939780542014327498065537402926906780968010442403188617091496921831224810138152381771264864955893329997792310124754122812089664006887729046403256836100947470864750191780447711660848945351729213819874202647619377499150028092413218272796658373599237844731993669231029576216567252737377509283382469429206949487561560712852745889399008703181006319943170428481274252469110855536218036822194470184006796582781513635827337599302109823398784107278965358706137623881119483679996557713052607808719277926877422788298524417315311822266835107087050136547638596604044512704064295688383559402310000215793781652330861736270554888838679976703641654894434477190662650051102385834253699962414561839249063743436967574388149046065204356935241608132217793854558324955660273582514007200994165695827989183378989081693603169164290615022646275578674777323454831354692549542820540647234069380126653397783373912781236550954526472983783022677624090016320679666977496786735497891121776219758516663287413758636816303063256494567651506437411748324558394565850237503232005471609992852445493547912713718196947503069309255389731968970047613805451537294242042151212494147676157561273991741270407734567557186565390830149159007169035214051418033957560338287600296583645511742842905039608274362161003860599170791886243248133441192869725982702886794202248073251008293714895119002324755705257232620395190135710023926796473370089546106612732939026993693979557179174291370363638505673857711825660018450070423814161076991793201374773967881689597103498805177996576337746498343959396304147869687880338694594940498609720908975897898640266168583141223696675653278022512678819293964679908223085580654184301085837660456539340110688964512810850398650780914786185179081385933109081193764811124387878719803860465071219237954216597720147172101778514684397246893994562489386386671469855216705839934587629358257607105812699015895724162090153149563242067390701585442959049412095791121882469659239029286961968912168184122683467720420551788682262482214990932741903032936248611302800987166758832518862975851994489853603546440973685822645013064473136983499068949713509917170146647893072450861952621436896134705678448890320725236272870682452863464176808301255688688373970851931831052589131072198904821961756789291561654680503472663513633882521144663659526820254411417366414634829020160894927819451337927405328152545065309862085608392752554208220300375326704841878417927523535545274300428198876588945961552152292280893779032075286905759093868198014105327813601673278348798514960620402595862069295067520672618530517865921021392350839816910276707929857548803063470895223619432626051080220384459004250830414232607000630118933087943992712336889921771598430189509819493327092167935248279497644582447140376409692738236895853083748475298826141675527754441269918395100246440836354360009786589098072574406941005032054907771353631932472182891722050011514067919170985195589330367175723049103705558148565687795973163672367742153580584353432787713756030156212369484775054498525215000356651157245028013223049911652726654848781921814448212297739677851485131975834681977656052853200097031358892477511393650564641848549999322753515260285609358448531155058569042266629662550243520898423687036055155375903861043813734762238686045164333523973109972690410894462920884483977439948762507049027065668161752213674524680635844290314150233134280418883333157485033267401517720616851168800472162883387604648391822190903345604881782852895070944938932885747560610333116855359446196876553189613564406229113940280209729006695133322541006368496993696713321491799736763882333500708503648866090867100195818615295237214772000567250666191128804501071470268319452802798951183904590308076437767473474606976458311826125375513017923658140466532991632798394011997083207496986428643197849255364320292415596148915592583953726347829921647486373544212054687617722390471080207228143032680432233948862261299455192383635072712687726536331182369987070090399317625398456050704456987334411227067375537383811031379299636660437844185751266709597294933825193059488989402997907258519215696358667739216405629730141975544784911935888055597470646367925722148099695117375092379735098246835415667774143149616984961548772208929684556580034793555285244338501267234608940648350108939509680575352807726018483537984059839873232035805072818325132867359948514758170827940171018237654683428072145735558981413563210061895414987785657267455762819824912967608456644004848036640981131069024019642821892000124925573524102438646234222825742556319439118907848576411854190255387896683897233388215583545407881272828688929842690175202686868196055166093402620521952497819376518057587129357948595972255450827482968739548688702272585746208846498085799659328615949997020252758073107918706494043071553419410512213769110440727806716413307974339132701616399698446317799883704759849364739034736306750291740181544297146913188647419722534800836232704963003905268952980662097493000201797734133117510196103668425887027672918893150137812471779477214299286301554888489322805686145534376593593053273383588000251290404427511879018613515292188307523455143335377306927668948875358794597415499521775915785714030424499287890263489313279340242198285746975913607847347724927070675432482816355252242034572982170004019585577245494659018990467042742447513838116597679824463014468023044756779667271298261366139733213518980317455129543348567108242217518740221148462648337165480236863066940006524078789108344775162813715848087003927793091241572835183519510521663834541291125410431214345232375055998521139347268416437130754093851221541058344685046479390320760326143624604372475533548158469397203042396003107925793247985786119175103731562619235380749761942864403550751393707928259496391364086817770926883290653393082186282391398281463003798702473804422622212861107936464176463777663071038161240244802447480049764533105301181837708329611810834168615109756905183821545301861222483616066144911679853738390141698782266291078557518440086143732329122066711794247761942576747324939226915606346139663288674024325941274680568014228000738076512120052631835876953835264003307603252965118661677594875655759393202195733100182143264533867884919546196017237155171669486348888320796425245452677815797595967244984365327853636702907607353498423262989935619283534533524076393489639290389452046825953819337730457001372188459960292900398687582363999681590652873515663336746234005663567208627963416604658217630404834230821119962951149609085923565098543050430642423862857206586566008602808041278619156747937597809507698654181660530043400968570759366905672633104829391187260733194126314254709667323921529366530616744517781501228417201004738402623898753999436666745176842992094905084880160150841775365648206245351735308252694146232763837990590092691531646420512052695889322814876548374968879891493501404976539118596276626506659849040645545477521954249368973842011886005127944918155736849763250582088610571136209015852645446206540943008817399776762070030341295609236072867392066525463106562890772261400493249846211810940871382780878286236763894467500411897434727648221540677957833635639280610438352702905873600142409030588714333178055534121785474199160239641278366569216049086960162005560406301281911005709378782946738947654716585083095998226303832109802202593986855090875909452642798385524266347029314750164997886699000171860337918557428011612287733318238464585918976985602860600561626439114211286288292305911087995320612747193301550468500786227900241336298735667296739337553566809564479504780813350637616428531686522571846182131126136330934591579209980978977762137904698012758479434150579025182936519369622110318196168482942395841462536529695004440656773083352175200277752108800701815565630829885914523725537010956611483126395246521220620293279368287674440204036038990910659116955477438656895538739263958740086800454248586465045834001617482011201526291860312498351702308699391755514838812083845831787918999139474871167779096034240241827577878280064494353549815311797043635832756969920841578481473020616949082026215157748432572013212461384137246906680848019648539722420428781661494666662107652104851245046321134804365564400473251496146066599624349973346054683835442949271112121047225317914582282283290899730670903036368642981787762929897970159262200680907942158468975857501730376949288352116273597599675997080696480339809176201729322527744075475194890382969640098658461721045155663606782512256409043134306626397293723978239223668794264003035603630340138075746855456266382258788078442476544279797602662727495600354569337550915336074915718875463883015673872220187825849153216236326323512117471775397367619686410007816660030997534809950405950895358950131109721430872958873559770190591187693943698459392135976721471373168823678023617976847325245372953824879824254892703750903599059732125290136384658757512283664454828082606137647687004802695390183775423207149125183182983337480866087173745433766807236054880353053580072840754291588509855316439459960284881380607109572633585729998048198528470749034433930824152975029280927920813446104965626888477855585761349370642956433638101141410287096809207444571621314607476448809577437554802817022386028909372617674684073797546946719476734073118895231947057563958481612554655102089921014677790029504299544682027074501778776806150703471716575090239907445639966176872636800419747663575564371142090133604968133664641541260977953125707177056821854682519059282379208609191336588392520918647595155915681968560472060703979707674025447218134548647255557532281211404157989963818524032599746849284347501883969015497242890773968036613025835922728132251022477366512944705103705234801349673948034013478296694808663947485936349239742186050195010278191473370486746351012821888433628470672276944322028034594677328419090138835729035234372275239681852822290325255697692800414206404984393773669345749676380232065538867583806711499447501410486041088999194276667330085701828635798503230477697415004531124330481944721030831730788912700838902242497303393003824460808092665130511815986350213201557778685615064655282866161647786118173846667534893837579884275172412316039175048613673202649292280476300202551276626045081862037653317398210053458175518363544192176015878762915274537442184988778212302207916117305198058740343250549260507644105893472684300194576560979590133578769042495185180116110752882543614305382441553653011479632335744871724283020284004572766500543558090749832986730348590206425179105494087864652854235918213070885479282504338340579486739784519211447571646773683235456282966606212968238727063707164417179626042030982759797803333356714028903190465493552266583459132820157952651274574448990915901853729372917906005608104817412737826125217393914131604024772486000853829033351154545960942893451037897500787311667629142093624891501555937095045100694696998460923824231388765352083161757576689926613569229513528810508066350936351671168558302746396263921158559724632959517918388995779561237411658662829150963639434295487103475213449365504062863219792004345039703696489223983516934809908172114748276802625650316337115742936415561227225412894277020236218338514801281262737186109789579241360429468989155502376630594055743834454610508056611704614475962680822913020003593552969955914697751357942979185299489021836577502972224363038548083402979123486311825313204416714535072993315879401679360580697836945351852710164691036578281787798495784528316920053125642776058705412097199036338149558061250035351754146626247992775390056581437635080883141397960603027604868259584290836527706473114170173404585999616468450504657695355250740192054545455445503669864968977566095959155150161169280135086949550158898911296540651211248019468979256134696037308272730387368555073439975840639887377428249106669143126901431894216120044750772834485261482683961956993426032239956371689290271330644630789791788454641708014350645379869080079186690566651581914759852902356659172179378365625270498797424590618542158583304725301340603057121771600868138214064625265741953928621169215941596375438970847546429482918531417727644392235423779936747863825187785694827451684829583153453525290105449395581515517418748596679384958711845132725173479426004229041487595706159683895692123541620159072424335486399248374706042010234637723847446386000596644654498869603868224376578028541852534324202732656701140438266345043729725450074084902770386168986947448731538362811045986742412144309120386469929635029117558008091462376502422576922291003950503790286930342443725821599842089251820727685040179685172449595349672838981244701148827997081491525711368784307397487123951314175886389468696940418051962580627443344072405526922832889316752302772167597793065448234926744492616098000445207472933204835947699194481810303592536455697025195596966842240583673969928430739220133243705228593467263106911548837496919944697436795593564585961362666274586566934537401556841887220080943786384489696557329717498195868859065654261041295846472444452515510993644665032375879311193407414459565635696848896822270960361730799022810986690509388597888491646606471685896455801568757718597638299291465210470580286335046639952793156893473966544419377432496283921686651857764116209259577778927126734189964685936883704860916447513800704305587728962019844154196457243894630501016424581293193879886224845025094719829339962198858974592395007462154861118950364406428795006148089151768471606437579820037295761385059436886259197266983672574544307820976404696913274914085132711791024369130718526565233378412879080891249668468861544117967685769859016807047095361386296744509950852220690200092195068306036680471283838406181987974028173797394094673967823535184776569457351995894063786210053806635878254669446913428961149152909053455983689502189728536616391574194753058459997511878782232397886646441322425196738522491856633289566485613236140706081568027845639286852610265183850864432437290926073804374671323881646875937953531614672500228709805901240693033608445428286375201211043104208225330704437899066260086849012312845749665917895171291588086857973054896968117291332028223793275646720721469007666424789285137125442218425308578745687559378497461906682327530568082790706946157277549379935452682746810447553381435632042324666335197353567864605607247803128668756976439201485901497585609282149238106675121825770959283022719635234075176304259827669306479359223743922922079545793485568906108763493518525710236502250496024906684948212298315407175553834103391781266978432143228042361211779611979101126625587529380970449516604942354550349451682507976004819741328335036821259555246275472045247615572034729577431154671360421689385200729436495697023225874689892866185142818595501119791093081570438277850437976784484726188401271375050063252539836080265643516953618488997410702049483723672814373820822994484064476272637147237647170915082274281828908199729933741079197853121531255778835649326839637785125613232762611610018406939447005050706634702418276960484054419572213987993078591879085055324400422661696088357082327799851438880232544721818777485489260612591495935365520127683677791530341206414014987237262267517115983544926086653622213008792052796246796515987514002444746705666186193849809334724740161675647598077266752428317619345795023460129683296240790793962885741658358286515666333789205021531094384422223855117716684896212017227256187982542473524359779484522944453488483679333490990754023379358966282543069708260551283289072576687681943287199876341099711167490437340312705792587364857518304696786043594173063874282527758613687256056283453471701517443316029679211688874022301270756303492662068443267239256159399706134610864635330121996775809653416886001092120889563204165631409187818135668664683973776428707221139149403396970565848628742168136885022685706001568298067738935043459528732438294057865266217560769502077615298045347533185629457879681548639452640037384370526283956906254173733800247201661784666793801349039039858736760931524097813951170632945205792385152183119124812738822698561009940639251759952576331729404091584417708266254408013655023297157367306885457231493229458660105318278627594255877949440712736014774149539500585499463003461489584082080659262526332428541057757201469104707139143470911568474048411152058321970568259166177985815265455006876837082197467846081245264412962705667235224747959407513331285027644406876445493749126053237236757677135752154950506167753245006980992994719346517859733745370649807238976561668180434663710083658550148334101417006948146155373205173745218210427415672285141815188241997947902777109683870132905546262145005488161612975582812632694329291216496984130232689152711792171546955696701698650444733736285611636840210743088235467536253489764384852448145970310514113981534780404632082055166187446201936983401993964084358176633177225176778390730733563832890277872523468574903028114050032943877170404624317921208422328699629087883231642038500094481831143330860948953276192008961621377947958242906444214851444675867345129711737655468986029760772298574695477691017235308217305772090936974002365203021127015828499369790043401908177177696935186773692453751008286385778152800016171891608226508112923791807424591791804338557577656072867043283425629473340476548518127670006855490717105087887346931048045705756753734523015010886094527667685781740518540737108900834617465244438132190178957212724953940585407727492493918731530480129654641614961882234277347859163701034440455993291690103750945956350012350382001428577998979554827683717150868356005886745384772186303581785306814888314191804941943643938854832737768498272205604332880768637313978755389966169878436941882982980118639622882635400501437778182807527073081000505910846071600410638677075470641660871726401352974224257376649346132876053530125938497653528447759871520149644086274086980014295464360643033192887653138226720467811851838111449415135167749498179326592655811027845464480961165616701246476249141765342427144008005637830418068615654877669384329328709218151048486426000144851547143461917197367711300222315025752672170220753866754008941923538034609189084682383878616699146376016663923456681362321179390896574583998278276392494836018729212222258972188143943488653174826697359629914400597252962541207963348870052012955383828124860205563902964837348077744761190093543425986210753614391326031742017128854801493486572474872307727540913314956012406247101726292788877740276924967508792812659903712523164893066844885539297588352146216054770099762681975619394057974212301337460187079369693903814781382393838932094246736004011945308073959751626469707395729052418587259000247930918301396610817822938323627490045786019871615534022583265735072417829488944001110171112351361395503558527874189707158335140911678090702822225959618724752151151416615026677378946206403035747028964526692005596263689797736567019084584028265053520755975903623331334123409945645864891799524504517273927242790815804450608782412791552144210704722319305542952118358873807618297727748513329685846689744948982705737490484179078416233106430813718120021143829393870848732870076913074843343737681483611103718732708685742247176222909493353879536683883684435568920897070364553978961188526573333497537674047585539939688430219213715785647685157504914557908162047688013949764847291794064541384253176073262265895238419623525304813489471839465554797195112028169774116116054863953647221979866749995058844507791327554941254858213721236284067826824951141227706615719197804581760934142431153135167663468944143263326818180577650109509019367576552823609015728083082331780764156768356421745130793022083181433084195818484670390575744601971510995997230137631672871064853372579556012084617219356566372946837815140145710860421672694521628411808175622647336649571992933683155663355333144296399878538516675504544347464779251140031672207071493279658754196241088932019168428427490884148623388149154102623784316829206178079970451487580315004655312033180545450281436580830971121769112636500857806335731155663412343089730199483400302107259754782116724258545725178325106291399596375309343044944349247530665953459488009886011986059705639525203440683555637096852406813530841789786617443172367762067855592586070559506915181018395977381356080889780965092140367374778532021119674791785812607817696334534283337261731554629365670463475749395983916686447217863347545862757195375039119635699485482810523974692999901377514770268551313725486754086267271539266119144866285345428075733482849321898832691681794841463847258721478096221903231136204137719928143439517268781711854771021790274763521673091603719109042990319569178013903951378398114894018471215177498356185490854885575725255071068429012762359652601558915677893010627964075538120760583366949341627125300920524604958932156448344954084631463276061640672450451057681969164649161011601615031593086211603012695955706859280643385554275662969162795374105737314535481527793014294180473493642764121725899554655347611888052074642289706649350846656622381927137169839903504625196927182269274374265089831049915706670038623721476380380041830521468121024240556543870840284383696788454917218619380449605349769058762953557866682767690249973750933448179323966273896707329508351351422600020677709126084556395606591873606529219841872503336377706198924642416362237286994562727503011500447823523452916334540106574437222263312873390580046335248718946610005264986580971772441000645097227204266816033669387655426250328156910683054240596012238324294548024907662175835245354427971610248421322991702540198589990534606632276835861332735109082836909043447005081604173611361103613391593847129329722866846614446970987843803417709179240416610459945221151806037677624923669122353072466235037101523689387010231077790128283777570416257195702718245323148686193954386662387936289160977649797688157482898969403844656878137854355521156506463537369987624865380650634240327391078823890516235128843187444910214011461968326756680644669577987000906853139456385045388868735408856572293495212624845858882693308530890999006675692895857978546970283149095001554735859156069117377407986800414989536296742732501817390366068374709624920492440051423734138823706318691618241811713201720797327616504004935093639130453728735150807505612632095199566424678607109511042396386604908592652380702434794515272630299653282341824775257392660806873208443659276102131692514102760640764410333196375351225539803497980021953605272110812750710792195025598649028041913569679360186273428049015191384800534301295976410330263194335298460309719151400163018659114276108662952653191707664612864480576569364781985143271961472166479051175830389139667540256373587251047258369427012578245700010406370852003323591992623915955470582029943211694626153574222933872852421204222802036795013115475691381997506269170630135682304006204275141913388813794180177773179773360262872649745603457149400002717780851460779606090199365298624352046623876095272294087452216440826884691816191572757506497997461127282721499483052977985805441040256668019926432264635748744206043791073119130128101795891724788810284275816883450481187200626174558998159324735359235838519996408161098166459758082250259250643742240262107287311380924460014550552365177981156009393981615743350098161584086008476752902991156848233261113134870544567610288445303518478867620108207445901347536184175548369440852900576044700907184072659049087189942876412053684258033978589841981852359279198029866647714218468522363579861372683001174156494127129209577545099465624389373947076733500292762404864897402072952825703795096584936522342125930566244706588694055223702554809619414526507501260841032969144185126965745764656284473229670206386267198765605341914704141605169493762531848465290758339441756536110129402836413602177429931951504170299727292182557899483946404866710728944830727998836058563760812080294134106018991888822849790591194247896944560122276446256995805423640680309364900918787325049251655435287045327803097538488086515125556438481588483071428492052527677784638019466867865450338381119133401284529638823153987924389666816257024830811369690503934895238738646657061222387700733115522474605134919762705524097380710550733696755309552882709442828679127855981863328376078767755625153250892730979923418014344999745072038798118846010660696313841119409600997401768743107692715122286255871105036449019371609427844150493370363510921133522781714168862300074831984117394683234926878237482128645914492744150537527113016867596674574220225931454163920346750309521003007513045137305414034485554443380074407109345050242547536260608199176438471039308462064410066184045553137327660159225076763211530068622907194859959275805423606721901729930326464252748455747015225467345543830477486320265157305531310908944268415314026831702866570189472728626325343391055701998276199523095508865567879875267491872260037633238599609169064399539428500020483459786197825445810714798892113225501084474263503269188765701023820863144768148495329662423195553397599885717017753320968800027847975962944178257259175733347593689543358833532771151522492700947591754331153080738952351873373415185060700223218930049398709738738480199828378444686356897760572000486427917730950923840569549194679084865124879040841127920308468862173487381353466260668959024932235568540850227636110392593799370538571012803974015122717484961588868997963229770630056825055057712547204059565214643016821210960595774046955683498456692739191317952432099482634732128249824249520409336585338204709517693773415980198985915462638210055343077102191310087351604891044465045693089648858428242417629759922047154211017638161150574410019076780348452247137319530942980073375120479512642977080917419832590300600848172891756142138473228190198606398354045287637795564942544046430446276132001870863503357169700881666126348974119169066094421576341591314763920923549499944287892902205924615126271317277187252772502630492309634753975101678397962391421309650497421359631675403552083544683835196024321786693364647322165734440279846362960354508374836197019440525586461636321589950764774706589025129005864119435628074180971801175846793311942080248131244400404209078731856848955117909545735201981163080330049080433981220235252387015169006668653309067338123557104016460712928342586220576718614987668098595724813352096548748990064716968910438609915865723595670302943438414976519895127995071996520270323382161807952957320865250978231029820188409679887646351716033169532849808889165080152728958120010567894498621903925788670111250983083578829202856959090880628066141060518523261430424263362226972067810359132791014491065819646436826590308616633750534282139531688844314202803644455997019416806164464144039417895878108230093287190821378152604134980141797869915281512721363598867921820301313102001441449446642347730771604029916787822956503989798923751543279586451468596155907731957399275075626274243590319901718042449761422743943294922633288332003372588791116345449134477308425043079749586079945095525503038023323122585652876843051728376328469556003902127850894145393928862964309532484472348825240976267560785103441743587466676881175876659459182772535028363407736956572356024833453039845327716377764938885270358749028320760005287800940706507415197185670799243802561676442097571884519764664411073160731252233079132396522238451160851462444961102066311851417567975314690980081656785551733555146039741560208889592347981084726270995561308611805981106783473179126698928524450249287330243599161300113196119862454317858341704694575621226956396586447246374005369803177547701650950064668812719471513403482709984763561164714309681923654006945402765971981272552957503050324804148664167695395480703597604630617676265495319639185693393299596569431449824035555180177295579167115556785590814438870622508214446497145527787300012737578768821496290752369631279523710399314788347254243632948495445267350064433492806606466549541459760185798621200900469720337356460013620139441599251800576805130093399876665679130735501820131010905977960874935430669915460404698555663495576681820960094653582922615657518522889075717491932606086230644720346533291485609075243868878905791964838652622579764673921013492597720563065376826865887164397449919952329484210876095387567958745793683568263829602812624692380941103257401276738390841089741078582496350089133695987326099122424017180425246381653570420885342297341302847458413380236876480597545075132104616200857097121990395870359992791237973748918355384541264964410846375793466052529258805971356082019365140027593881159807129758695770719522016150627195682758396008888491601524484302375131606320455103144969074784291907636218080117403976965506004221615604097416305016985852887742173934667502034317475643207265199611314159414547802487995576267091426321579359313276529231320156662150525114036089111337008974682021848656407177310574262696174793885034698022002888911263613887286801031870571237037513511688134069778551700527517961029684871792006398565432779291762267759166880546529318546064303458023533156896015624127297871448956404056951533032687304040501779394547562768828023023661064652602927848414274626565716848001191254931134494628359208901159930506416754935160251563821878872004530710885273465361777604904952985840492726176770934908283944169392785657942141263798540102976995052758196591930917148689890284929798360359739772903272265743554738845230205019386637825388812436933316881931804711229393223583560780694775296500627585330483165739183190360069969533664403105086017946594443660319774818277113646173624760865175828060120740496659191889809010700448891186544077422589645325729413540953240095891330675213803091228092242144499577004686687038871480201522831014880213050412005014723184703764193669179413991058792359580633692536397011669986609973215896173499138919689498150121684968639126494126807557830508655218142471906409704347981098855856661730222334911959604118006905094023609122398251806035675930666813931486689748187128177223102139551948023914690414281334981999540834639270278147382725023073813038379035385194614145187627762139458459542426575160913178774173937145137910347745285225046168441667169470924433162383583650401570954583806855690404500571850621283132303579870567697217801126862515117614736420416839462720131227622534918347885587475658844928250094956088256108071533063770144126486688239576038880640746267569946684216262607628049392716347581566200356898240140132777109295530588377911360584299290081503897278623066982231170231986931175972581984663758176636740366143150350989852112882333889213905925317018455837113577176843685590482627547398842586645682367790434261020818731601785872233448672453656017142692455603059809034512097426061739064999899957120643610402037160646018064401223246043818970006022283922365545638019654544525802535023959594125461395392687431550449344859296453164491598163054259681022917197765734701812959587805665432504208913762087618592302452572997323406017386274012416181548244124905141374524708039913290620591483478158165315104030398314458112310789524664103983738964483284171897794585957105586622783658069090020571636536874424408085642981760855480811371096469727125105273128534193592129351919183951077207215847806321975319588042209959123762898298076615970269912360398264603113899420949359611796945471552798768297711398125455060682436577292999226498225550535764120019680691302997711798731927772438733209388449039646397041578273424527925135184994033964448656946207273269782192951507738898599137389697978594498549235748328243998756543643578869516125387973506722902942694876331188383710721725157608251975537021327219624224192793779264130713335808836089991005775190566767613849044271711777663630161431531842959184618107583011313433587890847584910684466537902591904942561705766058567879109994872843915106790873307879327345462435225012798309579462014064389688627901553633002356786657600513943392578270658667585558127786450723207415629409478143666785812891087707581979665810622358587858275579683319729125550252039739972798637121153057945918679699598752377491647030344551966017300052440610621804423111880538411419927646156887853266208000130973712438315683980188579931389849834228576613935252307228411777468810623997147343505046153322372258070134686112854045677878817449283901038813564801882573086052930494792766302658907275974333466551939399287700308655702311242625088811075935296095389565637411771330497539280561283374457720107885621994483218725562898673160399054488487112438863438720728470626084645399184701659903718184828458131795478679457908339673975861820515897070490195380207635070533168949009726361561706547752185589971121935852747363507688602972598332452899202229738148623351431796163323456127551866707868955424266426669028119059114443916058149421264868246242424673094222890474953452375913892971465329516408151469407313175816534589553619087176008976261983575845589423483363382848182406807543070177020051253532743411685274442072794390345207196276241686747389187283774844673679818723146854249556896175035106249190509862889376794581367259735321675948979524541687397866877733301878560400919477159033826014490442253838889211197788865138100408331538306516205967569410566890531656185780093279462276270072002899186425920428645124357309804849659707118656686368171956948730422225581939621227157345023234233309593080770121447379056914266829709544816768637356445618169507888577897743201926715654998811693969124470316840447987278286679771517822463203376726650903847565831171197007168691254109407243813230986975084754831692181206791012788174505898212838312220110761377179398991001250272294514407342521330010548876075096846601960318022415482066225636486586266164903243206349321128731806529558784553188354403722115039286787257497265720810299974131953434740743980609569885942338195278536631979525302373176728948558906784531333607890350877515905285531086190218108602355514049700724347538861379965290385901828926536580859659112453251699218274527840071004097891712729139574656177735690161747130253985785727148715386267235734605784953198571463010238112059121250038565687156543961795475042637642057386756981849419502011228092705563121051097741417082983380670956314671451765392354278994643366152594205495623990553966621650462838683793010215719546805148897500544161258078534057559836176196297493357085667084366401949438784298026797548364528793967354192292828686619842652827889671812154435420729913387036406472706518803459730625507941231675738775705116777038479883769252366272682105214256275704337368600606566702052873083765428159524251887829049034037955497816829387265171930852303739436217817956990251785276294876312566213566234057843294269304024077657599367141785507847399726306142117639074387425742674933745880216633434576078743371696758118713714805919735286018550367533125752828080085758733016119995578894060548832402221163066528387204107784111689916770662237879277777093883207439426758081995831384014472899984062663394052849028336652010286466904178733102916157207066857640994964720754985388970272658705840212085585027229723106821074626278937698896131055285913708359423166309168617950637809309621087317253200239071428630103423627120924696814383915612621778132030622295495024614768140616529424645921530713534637048456127808663484998101451463404347698989382654516033697647630103305177317220423849084614404431167987273906708415592285649532443531072261217639090964425105519823647578006840917881977701155508239485257897486545830261981163305987416487861440530571474128933516509180913546487404548675025886656800116360999579359968742213196991448458773523454809588204326646727601771613289335948870234502472982756241650296043776821415740136593888104999120031708724126098615994098535126272593300956830036669202753202096401413734624965418518196375076119043738300442687558750008079594697913855254408109963658668539306564749325481269498820299112533383238699020301242802699680970519846638837026091589997561701750615158888416380089655066728153172993839319895991761534437291600416723680996578748947469912835423786317863898549255877547253439834402448937868004120917394332325041866061895145733117562270995763451873682407886459075494110958722258753516988238264274746123713276570944105374711960927585553506396130067302504790919762060130194248808512818637859404268201830220434877156653106738204043515635671527159111109000058428058014166312266737339211008548666870465719875094711551241014475889295662346003933696326641088292518232296881776742645852480746688692394324997341066080951428106947912997576944801805588086749122601030736060471234815794989415185390414441445493181207212636588267859850897010129844855256364760870900873918110963410523620145521542752778839710750912158102609119449788934510118774771540477850945014209352522660900470522955677250377584182264968271110790490474065176910786979292718000344404896083442995060749537831612758496807579691309425901698018019028792486442182699685302009292958319379012831313446615328918750775682826721805341909545544200899346105112845625671564421496970930623808626278483728943493170377982822852509465732215692673433551353400327315125885715313276565743967132844447526057918372912158876253114462405643713070477259411449065395147484812726383942868427719973104864800257830136357514867805834572787662380662862717283323395693709903141220566408524601057038549293408113354034332299896088686566917700958274284606143306687160561498520634213313064419278954277295767217495232360755587418421338573870552272708706929766436951158851437892097975027344550475055735895971618424519961657913492932573363403048027436766470882750760890497600682987851569412939052584771699291721420356924227451150106027545213880030964549327005008702221196426291925317336123974051340003588633428800161951896114898477348766915681917459288958542052013564270067462824215252352322022379169136803558914523707539390023463868812277929060455776013346822892239577224348599623245409451377722080296775729561339245081546680930429992856490473732363872874358069726185265061651358330541291747076454779045270721421594739860796987646847721581680847280993601982040490232542268759863084183864999700168371759498957318784584856682803560476005120877679822363240191454649725672298195994100474946710388709011458214472895063355086296257930132202801976945417679855460564293153124273404573483777356404004662482474701594613585796646315185638972956943315487377918004484013030770105781458296601147011739991582195061719304065982873130898901258927616221458332487629724403672781845068293873433973991211980182361495188205563321484306720029355066251346503132011598451758221561401835001713523248430085988847054374691758199362676226710484868122359039939898085458880713461425106804309655819012007781581688676345887649915055172418727864868306152931964586468861689265461946870219849029768712941178252020663175216943780289469957057810392766650275502866567667799859307568121773443378910056511073966721407672453129885062075554006545483005386585318008638416623599282600043461599682460967042419481829131692761265558597750026870555357879283271009757890671832854082133117922098322468681544774105617076186135385895661827190886181269217188445096579656566432945249675939966433126089670020270508980102407147548841535454325135541929367511287968311211843762142190658179742116330555241985122210252140611407060791523898047962074567180073050089796287642274520360216757533563702334168737101213814036188097498105173010781270593642086250970659427976561063466914953182213356873017635278738918617373199030125318351899822912044353843912194358262741001511709644893150360999707591522445780801375756937411497048353817162814812934430126142784554768441991153606147194608928986249767300662212548821538242038512060079496314191251962427904395027027576905322183902386934210143401442059491886365305664760858656105538536230079303072167386381404297113611698751700416872044589734859104286693083257017168881485850278468369417873696677886066424020333283956195032478011594041364173610456684500416366169712269509718613162930366666746914695508015842899779935879643637181356994926025717244934653258189707695509554773545277616448415699792475582558612751341709915161394889381175218524597860678519027210127640670995871682572826251057327087481000130733553365489485290310659185090530024351063807182182888853033935281940234745727565296925373102289199378493610292411507696606184686151248111761366945222776546004369106387332611626533813081600683704000386272363001081135872118546694766001699121921319286494616269727430876846808829949873394500712310568032027668019577222511386604269439703926463451578821904670131136343691724963841604264989417399925481072580467339136735305233228417473927026545662728589175564325940424230655184250289424343735780901832101113903736155036572440198645596816618102272843302875419169792636189486877453777247150535807578477693131155070213346775502339184521061129812901602303871956934896746141957664523515485868102395001581488689196690844110583190411782996644117265647394294385248704070069794245571408148527657553755688135377539400699213817771210898195905496648592771691256745191147479885484618805877628409790942034591011840634024948861380636629915265466337676648355599784598056693290555358961311421975951159608848904417820513571597362874850167444948002789072550218641242276902272768151281916770406502475858293216385031208805470595914145444956650781568916735457247939223066544994848747338836123875540650746126037196372715612261444179523805687686586533888413896739515808783292165121215158464967860309470195931417025150940952377282488331897382231889542218988184389371673575655428149262132024888054103875219740959470867596457316763119546865586663675859180062599622088996378624132428238533237429116570670745116054065018002967352399080154595362645372478829416653079314708332199320039411522993149107766305486306597759932280423919630320897124101401037164996513474775382334817109052741993791731976452789787609797851301989104211949355567659150194270649321167155812468835190405886360768892999127436471390309797575035308442889703068376781628243587697254831478814505606139816066695637446168243760206063613083376113011144021574183278785767041449961774547018258621873649422420575904910811172577379415221382205161450975657153769006630830785021525235120199731675998192078238442824269196905449420970061122790806921484690389432126339894349513312158274171439853946607902415790951586632518472462863532586151942985358564973805683506451918193763331932724887542153269499359260795309235991819309682594090244708362931597582137109259460919273009739640978962509929945319025189010829241678780184295839690144503407726121038493319966445208545597736434005863928346991212223962896305961007160522494667929205734762510757997006235593503926150197829268371928271123675657294430669429320536276870602097390827178896793977534906704578484875329544755759820116476944608390052943364448726234581952042957451509677852833592375261845988287061077542819425607967166823891016999915277022100449386525079612842071812712335392215391405554076177037119229436745443994549835160600935622459600720218280146660410741274629069555268876884172525864336203371221264642056744764468970354228216386862522417825576421083122309335963935651988497193737578724858428186503103978557375556009480703560119468150371700039414100537081224188389117457358365798611221772266081233223088921097500385009159332892304043682640810464914670509931077427346793344543599438392939480292266185764316297749149785337746513930713121590611428321250202365866063630359006730928525896257441508728168103480561902138183571249037276977965589570393041418767704345951399087253756676330272740767365905575742784499577423558774939483032749450743372559310217128109605850776178559594202949905219865487397167198672716625379489462559569928558144995445333986767809534684354889820677635062847809367038718086133978929122419236075689565004875763598519687523619539224128250208618642166030298160631211542943611817828783285111137028755203066288377801169620290402287996575893344507751132318949818306288723395691106829259931441085654663098943713376126513587610175362946567808686846309576513623576132119711741239328931480467139067533296690847909496869203426428572370620386966374755727791270680797541302550767004328113027043549787903526839124767928926937996789024572243571232717985451694185600802002523988119245723342006799832913401097057996351132302146525200023618445067788608584425810372702079037523312890070700232255283871537414647299426482243659328443462596644973861804709264199001563272795353447395877182297937208434445668880678105797695194434567039437278272094020472144218681301829300930912763400980225674902537888621406328159364246455709220115784605619726201217904990239802267919325038380276306305449782718451476384347480012501539047631001555484204694452113974689556110460288111840426376863386258788108927773414141028686584026928561288843888941835726643093920357029129063475592748286364459694766476580792390583639524239923902138269284703734240524152371915220968144120864120932775654775185454820393965642887436303135951911784494942861340073049291260297819941474885829357232232120585019793649678741937215276954797200573364032074584760794115409833591045612756330814206865998565836304597294049633192094228178888753353361508561991754591766861938617825716396899109810145015764760686138625695426176683212199648357104540887870537027647132284804111952417375920194852465221497490471592077081227963654301037507368899964714910959012824126023177162678924004390570506802378614670003550941508911418784333621944682602683121799675613348280480492183504564479609545031785112405452274735894578931674571029517344988980620419325046268147833262395118437872078203564379483098299822095632261849008200323694486092921214245304815297191075893392171897399874453993723398853439146605205656605411933718256371596073454285923262579523202395586083422836558748695485282549241220942291700126258216620745990612830198905851628057336314261179616429657950794242727614199963296715273607216779658368637820420793343853502779932399046551709027433840688928094471433081019710548413004712531316170135926070653233018764159148546647036353957312226061522166525189771342557349735322218937228625739275159065566586626479196016078459514374993774704313756497302954491649675883569549266058949323905751319011382489968998446139667568499429427926148183979206556854153326556718089188514707423270948810641491188156576774546793227122696408871489313280951300421281846100826315051905124102275123245269396439594606393700708544462332071073273842839974150000891103550174376991074456150356865471569630785616754788344415634516030597406255891918212450570237695726684905229575514433616256600163782654872580286335173784111296500604616969479221780043392051045238178689275439538700924669669344195867698782355733050832385995120152711319222372020399850118634249053233355953438105021704262693101073549474818542149873305026088838838771783193117368247736697895781224443219936394389177528380855987763022032174737973520778299269098647033476584782051684203659981552039785531683201170233557850747846595197591437339004634131619603351793391735880015538306506287480548754695316600717851561081949150272970258313309195732657780287644907298666123499639012934265139371896489696835959880702191674473924559071419342564768354080022813148672818111380505685154492994618893726871370756708263216246111916755890894258524759695329666420319329350492611581384144926129293898033222642734146664966569895837684301735891325953250815792088717224185908855362503893200030437270394203148322785881563577159522491416579613144338748366299891280576678860454115552348010537529703411703059339353855757289200581586003772338463850738269051521394609682966358373584223634729336183657502510221147941081234162737420342660447812499507543518506776147081604081716910228984996697200716179384587563616142989087845165185167649340753138891269027584448732291983670534794720604197665104697701652061939239144835088423380286113871041883353834293508091709761500183804518713022887794691097203044813887403770401703126871808827655041596687083506155818192896560167642631435941984927066688119715670474619075332988532370122664288757244106543524125803831990413482645154650955511053445056218519169945830821453998994795733679628717199386100168699330976474973040844917139946838771921124711206496563521816255385550197390843999087207071950578631047339353538702918863480510320225922119664237453113529389398734697275832405623370125981771566847981551171707877295144909013614597692020664893974564877046138044023957872088183104202778301622927138679250404270366825339251874382929250121180363092001436757924835851264748358900894344790006484604453776635960421587814681048429231713839486860680977198358791804913533745926879490630551019720537265909007860028197104300814627630259616264171206607515091752274601996364654420444262997152582653636087898371794333733761156555874313901247386749920579402348776217707662127600840311010178280287107692953057632717377976673879683594168691165446189159631077991178269337695759578191572782129692220012600172914937083685146877106770814932959641685072899806521152298238739684365044449132046288753056642662582317800625395664288702332808345753920133313643705271079031700572339864783810218162320381107457750143168498203011919722400148788581757277907358055385364208633384189078802268813168970551277658651502529569551842028556519583080615843220629286192223975252685581424328022742032432125733207003764310697192382784752763702142032302042880670697705392876862148657217391059061367479519291653793932976084200020268627289346478912020176400193354468173910916672746378833770099932658710246860539565623434205162930868499056583202416359512088114840323002720226959395374054935592367428042766346796655911958379935102311126455600865402782955256906172053496286995178886890992853755113488971222421044665881297934940173757949338804857918660250524298516612413907369314844810952553793591008918051132768383947345925770374129104392599142207775243112585535884271866100678342741879736229937475902875463280360994563893161407534710291077998107720915715666252562011279161283933605092823580360287523070764399509315824379816367905378442741909051733551947762570013850683405153803797327364179283730068538186263696911276462379087767509204952306221675135674934497306315320724560734480766361950700929461346594538709845345734420590910536474164694530244204069708901253257126648318834570265268183203865366810410632690581483056298454172641180396402744942876774816753519597828099943925960994018404930812099130946300013933268903367542693946557990989335277742402060656048623426772366460722486245695232714552939501095236351574460929794438954705829281780532893943921340361983628711380386131686689010556903810683930355861456495985328208885000744268455957186384881759883141716851610893504053093578303216044315830339824000889283745071093131956244237215617384523053214924279882297938459218376443651876303747673830437241674546398293983994431036761422721283251467794604494843859772183971791963032485313276764787457885429393879956825766807431451887107020254041778260408001542914645862326560639470919663709392940639170892195584566525964777810526974988221343246421412691511211104409508605870368208446170299129055980270523895519422583455104624702542978996254025170231365699763533866808168016400514844523161307297526194184694601556298519281794889164437562507686061426599067541669398407813755675809268679648048503857508835128087925674030104246729466371978817634584462334779189480327260385836183298915626372776475072421253195846243920203998859088303972293728628152662345301583800069017626358497865446025349461641331097786394584282874152230386279646665866194614501949783121069745367548567589717371469083759663377679862327784245136950728807535095242048262307680103170533101618559188219900452703782279512578017619050866151190374522033285723056087659378866377388736323105299568956233104249827813561080854069082971601308205805200080974123568338956918554278382817397122945557506698684216762315450779023642983582521915550063790445798573397403802003691570991539229836413246539735805684970595481999501751733290701602888178156502334836319934960736077861707824733149746855044106027286746856683998232468707294447094556688335180107458859181755447041401427287780575154075476676062674643217588013144362970431773898436762189619518551599261293007846454845457760046406802563802180566555378868788270608096841487511789957149736383098505942899602532046307048502960156820256380200554469494306597980409919798144174529138195733486416064562850706311550194002135572488712390694489407507205699010784641735699260855361563293316745607793394490278093673571298327301980672873502728358287566680948572266395062796458934542054399517826847688446239368110976510007851963383519945086863918459967849714246095334714557118917514859107257548655094885387707219396532006993440213967650173321427786181851067423140962132254707320257599995517682142966487543025753001212807217628478725243874077010520732249841429640853897233220832691274815317578615049877726133302748711345433628505453556769814459772666364296165487713785191181876029747597423808166075911282034701249345999869992419001630476908831573574065102444069300891652714582870707641575370106260363273766363948969294397515664343903664018984634392234959742392426753848464171259006516164684671286182034380739384547874485655007325780555827935139387402791915060467286694920919160699612730987975294595333282845102666394244094144919232834485928823178984601861630023868084780503596654582564520380325391287058280594306054471038119429305878936201150442125689586417171998462909822670780097877222047451454896778648842236312926141182253130852747139640455088146556047154318860972822664325080609239500910615360125187233341020051576628820009346822992499755721139063753924263225340251518658270703711789993244041682072724371730977896116389632149869329922843676303262263350966139505995289713866737475895895873215043077713191996911439266014433352651463092658702454340272088904552481584004183469343721089522363232262059258543752044518466663506467049232393285954084605315932025987613339292790699673090389510480077481074484191883293874514866138763004793384669498081767163128197860862335691713827154975402707929192022182556143586490972338882049107914223420182353168784215175976036071827217143537384982563621669547366381612850913357637841762290829359418753536663624809589634354961266313358350377347147089843484347087814147773025919665595492083294719328875230506399669701400056009224159879711367395731401795323971555254007637823436083823822022741283231809248684734789218448718232562140748191836226267967149682053574463371198031892856038944831411581156420431677534475298553263989664820006021433204950850249594647910583501723926722394301361616809808786137913238224056109302207460661066535580922472270109992272694001407252396415148384697989400168141001795460562906629880791897065735134072479879850630552221421637928434092704754598397306244813721265932434966213164235051212045473712504739967365835468957197188738936850975729878118409806660742598056010335886178020546089482168090992035314723417144563273706247254679720309097749781983092891176004538794288637779753116627819126821886776493704740413862001888174407647952961898601307614242742317437656640719387063548036890109332125274977060062795214151276617847148220535485388247124554573900513321567199880572232799453016608639784785241677440920723349483348857112800598863098368311171043391198217410099342990359400702332564254562882351051051725814460912264457442761261001600710591879750749031847847670460243528630896009671921983324688262539330201098188518349970049954433304894186560381797909877641430497044062914718767249973146786597344757318905561429373591675710501625276647185672217558100903670779320012585461687329010797861940321620255642951527849678818156020067941362806504871432641689713514173734460948210298756122541965098454990109596288989582381172078056398942434160395286555205606357092008044736917351865251465922208178407889504664957455429290262633193716469597225612589369483406548082459367912778979907048414731290033913059327155179564620618868378790838458843706450648337717171508280454455467993086746061842539068282519361965176217592340276387705014959334277285477567383363028240228257446710693748147578941823722973863047351603917215373376768664847733479276225614947856140025713471956862176283564084254996041665801156716691577884811437591091948896038612837164016566881725796388605122119769614002164786983058162776967237908160246813158550063285020107460136240872571399549100803647965223473547068858477307552302342082074777348901279132866552719030266724100623229730039203050545893530832587763632700037757159423198852158700199623186100045611545750136320140831479922199254282959719823212066248897047536480726444689051729140631893366184228134591425008620403851021642787444215981292834258231196488226074260576781713340402558821090343518567822203893594728039693674551446756902862433864914958832536768889755903762190868742512810337194856994641151650058579106103553634202630939980965094684764164662598600191376759504914171378695593833438663112371446171725576177396403800793429680293884332441969386630340507683829047064168641431103864458783335863626951609299331460185302969280995775675063952334334709960344379338294724186179989028003948716131601746230338779830611692959519898037504087686267028687108039015811294654402961367234850138607008849168315838547639233875708720711311792641238063874081740471608763911752869474795844908554977923262701218898153066563119824935551160510560754124310585959784230887352782720457623411798937757912197900924419357672864271498011513792723963663108147114564651601314348675117827971654546814396793384072662538006100578379697609122053874721871016872398539069750108114322252383320629321826869168558300225451345465787366410000378325796940123938890953243379059988312045564035527583174830507792712079194667597760471640247149469110089192927969974489189227777931603079124392915272931023913828237987893707008011446047910177625321511267168080939148309156804079509173917385233783832875787394289157683573163717730751338473069903921263219145414246580556308745895527118489430344034046953502611575776457173714522201813472797620897820344931744834407365832031874672219401829345788603908237468918598544979890367658767270323400947051736384532341008259518455396731211053219025056432448728780085553496060730168495347409054057880599996911845132274033519477229246699635525323816944992486063317984599431693360347160005754604075888549641534642176917622425662033559922786432589556329913339901803451724839966443395193830939192536930334866012804964059049972770196123922976412740905896913959488266242012713481106427214801666126572228368204118971201460173266263544122423685247577036879908701529848495217171640961061444242609925073303562007814686767811000881135175696318182131714315687556403885599523960069292255682418067119141587146540897923179031595292535114631662851678205852919800905611775633084542210162195940176914069908012416961024036393859120465285200392364695850618504984075239184608765092434954956410459764184786677433939574984520986532327962774689181193840491301221476765544749278568230722351612966263595424099132480353722289506373517120716489463582069297031372295517459361759933785220843120469362523900408164995232315949650874054252147036482492468591577105727496700811335292673429299028565577387142823612277088084683598816316268798861400930454369440800141284431446808041876218753325480876301355525951217610347678311592116931834367240313921053995445179021326166739013599119183504651277143061164508846452473666614700152652225505465991364125065348337899835380544271149082400077281083159443020304301905772786926586013781915854733600537137319486100528335648460174511208726896553176679540245803156075497096890523019145423756166479305452852782681216993676254724171092395176247649947590025807476693634307762119665663913616838632099627456192058155094738970051364297913696212220696488732529096584170838599601078112519354967350276527568724052423708444920293660844922264096547268495449153985016598074641753945819937779849011411680022550371487997277311828514622579562391567693786253949284240918133700256940609311156686457056250373077195966418118931835051646004951368161208464665210449052511122779393087745055331216917976247121745961794907439612739436270136681459186496657343582031068305116233254363729701865188537285854307836460716037579583498743307375332291812971480451290674290659688656230275918654698131542614293430433850905163107576022896412177791909004862726620484619871001070481599881138473209787019219571793995387484892389936904428796222437948077842309204254345178936594899620268853407853155407167836117690422071400306981470830728731173630212075377309629860071606782217341312752479202952784747780876918872642364856912111774783437049668859841509153592668824337302931793840898860994217384294366107409627660927582786338107801193552499550377601332114026101875579988313586019419807475725165751750085150288733749593735556790915829161789271314667655501677097238275951247983904843512878219851025478770365863135442551838787561255214472236855195355434783286040913008631271188823828461078817137167308786356519026032800472629309559196569936933577751786891480372493780615002446680319396879140194890954355875367919086569005922171069919571824540093115238960151848761472552609406012071880466131211948153213284244255174262517923789760468344182448800768253745838585867485424917161764495765503978656166478311539109037293915915307977608896603562273718505361225999519940481301392918174356483641064777124116861615111626054853148872955636465578752730735152614163072726702761362535721427412118661454904415529977341583828164474233320078416424310342111836350950002262829502780448922684243334066151270901441029863148484752257664549386533746329551746780273510556195769348625532711671761779869931353666695608822231349490704315087822189338396461312035846499791186169025576246812865084575889598977499562958099494383520488347699484293586057631125654477828183675274179680386374709784597009591537083139808405628527283943490239137152029783863947483225407505742864148495387836603833470407860608731959624061897339554739498352476443872401239104167512587911136572082719400003169798615264213806712037890606103793823475501950709179974965498391808583727786086541434410523242048734163760929138651870349472509568604320906362132122617456663511058589727544537333785970993051877629822577669531421161469463252474562849246462296522401465881648397351651822610984426002775599448453135798738439673613565269500713979468233115899850883851828367300100857634292573174867276953671385245738712838442304698748088749880980705019867006273900200247433503649851047149139833501912714400669837981615199693257643347145424425130272573017844327322997178611825650779987825423425798687991760726276399802880382663794538556507449113906049712453430086602571282484269182564056640943689623460676281779695261448630561002035410233731845710994264076998902604246844490228375176850240969589069690146128512748703627702227376700011350096813153387426061059193377897197502143566016171859389252997004077390115655559515696588312766308543501852279996839419859333873703246428268088225691823565562460721565364741130130620445790607037938815766076622004209921752715070358598286693399078820987786938268902804797542268731100286773670856060054006370577563022300028581999147150327154016062499229669155103155918242442961185825662344412493150426479086845972765277454476470486284267892790870898632007796137074993116734547717205252147132990430364887661219236286069035788438728245414337445500748139684149074501696368043224675847158345335630039076354606410591473181526580354144736955698164972397189053542528927469205677900521495031204811239118521141405063133679791786077839735108030903315835704526155618671830773801993337839152205990588767022070722877382954326999058588711615545831990287115046431122341498611246010019034848664988868053737861039272962990261102336185271277129453962614801856417194421147916717346120514174990495202985189439643929700297516656571952425652924359801117867177757217858139778249335724617512454647547702157197833358475581075524877738823988211849680222070810327807959299648655287697479483165409702088427168629249178853535330164942364665210041247751664635309039886828066466195695646956549296445190083367284494039727194140484167257016788687144644021728589607761052815362453479878241044953174694946630464390166181761970188577574391898510090553880598430562300755843090045346555504508101287673050538786031152874324853556405415828261790951939734739057499979751582851051247440699899958040879660597375124964761531985131156928262115814346517762670413591021569494236363649486716749068981689803887881049503755403161268979927659098491458057697406465077621685443120600626880294735598895150239673272008274720982454324780501555230191536591598350256152964493865932792878600759991406717033184609855547175897943491889861191887179990017687716433399775868331696635285100671597962780764874775144880846436758892032134199575757995686530269184681349901037512958952305587702727357479591064132899321179886354471755158191316247544627714389063029987278955341046686936374522543942241075488765233155420028314950368297177639627043231668122162598652117112022077596992297472805092203248399285773341226077403588906751705243804676703910761945672631471029454906722004791019579223696001712371904290101756647003835414512100948532303826900804056484791760586461166212557037468322029840945253978411779074801423364442891185599357179386917479481934232242402956237452164275337748327754056261406473062766133099219913119698757862768239483148081010552021966042465497266290819007259548817844185909199282530959798006693461600837711010692822136749302116432098850929343784044214616339400083777704003553323216631969203092435258314280093498173229038297933174533295503082219884876344151247666369793233213166251008613618854729388043597819978508475536659014812637992654970579516938632538401269752467046423935517500616722079284101256458266376418299003735808462072087950705683091319033474093611420003398583338899309958935209171287210126192756024327292048330954504010803809948856185033439916965075299527576984647382734470877215021873242410809542851613020461236469976694356208471500502155100407461005941462236460385700254333844267175271895896379656418203508736671118683222107175430329461629726338638841901960814627818896350699296428792086819133578917010241758948450475825142938709620107661947109618473485912069761924680291574337042849804811282175701812152745513561468309591701403199375277816164474066705895495669682687284694254805192615905673186724113289691819135383735938552759016223627447325670587020445630475706875151956058951298807682266088300305134067953606554935080213745672552053588705476619580618085694295419907402140103766667840802814792872883349168071965425264857403449471467856421144146295993739218726650292729150437908475422438782627551756556392287559658013833367833720922046707543365052527437295130982557496685057185854427958366473602944455959274482933889192849283942604119186092554742130263160218644126895573357800580393285579195700165174113005601106838932441810788771508794866751658728500269290423878940668940795514196471540229166249492063825954173584765309107969963522561289545586142851512099913739861219077512469490127410103000365762838641732745476347439733548058152693409145108749162309276397927470012409748997334131876145100710803205678842182267154910445013213057806465781772689500313783855732686010431905005110901301693714997475552381637601583702218195600810118400759912796978759470506674772871380177778511237451161588179924948781693615834225880098953061045998765272562831620889624125831832423650140462469099349469605052936833492915815145372542230968533755762718681472461858116381807953181949617937183227791714392748376903548893815475439819322095162210620518912824089253179297380465803790569443729414399942662783607198788110567497669310852622643169635739010921702639926898694028293054819849513575779982991976801218432269721608255072942086588921088685773845948239745565795097429431744119397427898211602713330184324985195353150002124288216371944226669139115242855349950730835974551673918438735031768741892702595763188260501023136601380185303627403452395465608221338104341292356503752223065713530479160070416892472751796644112919488323659573759541637174552786295589011824183169539033903713309941221267197551733033890359153489484595073295070694642841634916665703103611821696132109711163346174436309891663221101529792571254310843659016753297854773408930684351214512258203757035264619127693904675894373439023466057756834404995105754655976268024753988138215593068906563707802649259951356751546964245524404430604828784013946638667304910997338746075098644940534551683523495141694402482883678198003746819216269768621214609572404039794349861053939541419776721518320653274155859695203646526308482623801458434700475293309496662828935848720677128324874027649403598464326276418089251344972665498648021071099560233319219423330689438705364600322747084264041959324320460644403362145152477271379554034528423877069597051044879440042834596174586590095686509464524987534408565876394500050165271345673344670206318699921107134484241530322092302359223092655069383571387757694276229453531946435569646262020644101931772944924516196029983147201435089492361909141199332769345306309466001304745419673346468822074760236855297400030076139112435281730693931135838489776898013211605493828162407595011718480180892790065859506128114104138484892857976157000322484736755792173840395658331490426712450075301569579968424696775755515754537009232742565510832023381591263212882300976115364059104673527822444796135811867761055846792081129362259869560871466804390615844601132274520085351500601854591764611640813572702506352392499521453954827014768070945438966380919274543706976799705890863627549845025053331729866900645076446812976616857134717237785153653312540846154088276687695332311635425429329127973020261938286165636201441615644784155812169488029631220156483498283916105722775576964815577130990035528211153072407639272643646144298051760112526030128339951658333871748383988292989747740750759298633587765117306222405513223577596483354628833844193949649399886441671704308803368791332420608131850117058831794589081880984260439675092150428797069702685499291051657656480385437639382020859500300279764329532040348188705792891017267502456344810265418610260294118853278851977747336628093108847500685490886991628414063279302044985574056753193461964786651603046603226437302812117176672973834499332313614103662836992262117434980229718339124776999613082070841457908233131006885733745106559913620451799638262174934873814868722797013660403387167872903149266981454108045375791431877686699066131326043259255022229951682322818196021346069289870935361073027464193330177600497046938500193328696235823146636778462588077650120987977080678647641023206255777487539724420220707858500510235876996032079720690868305982864368829565493586438415899111950413322862193635188616400334929776665955255975874132746187892472687092339421923036402014414298756401913169885000838888833245414977824904079623428434376703231145510305920716772449037313066570618530757381396439967376019096051457500685212319374445994577187587587556923005963079772079763046561705339706148004739013577037069136696553910099100274216703093435465847094181718447172353240302162662321473029254669752757220472418686291221307429639412884357871688852673832736867236999489729750683360427756007500184406288229459513887028031170755892918611300130502558387549804071676926049623997597499345810737823876508990321340531249413507339651648274825069174862031604105442657605660221414886177038087903942675217459009835861865264990395646453280261643582236634358854424639019052617970959334674834990346730216703196555451421761962251795704632663012254736420275365574048328462264557595055189059587473872764050004702005353503795143877030885814539919741941560813932917273009027621433122718914151927294312413033244511165672704190024195914873222961286720577595382244009927224232469299163176453732644797936213785040691230923179512151908652365339752732108549634691767884084827051167751441558604415435888107311422588130237710863809111354974439697288402993926432135302211578944482311248117325057949836645220486377768664790979477626219412888670187124501345921319488672261698621201050115649531736844061333891707474585129385077128789926681308789468628172559694838951349427640456381185725669828853394345180341764761111259939682733499564943058456358432931689885037242968418266667964535964410197336807775123194120942692605575078074786136617959381618411547956187281700627004171912564751263858113927043463109987995280235817602393631729553516078895147199535939284437283787234719860809740020368588519270551816697129398819463387014752663367362163789256314210024945592286050258293712287733884176493969066426288300661608387655356202428738142772914462183212937717442702962271999540213254442343656410190788168038533443622019741213493511411321632491255748547082395593706578301893582574707817252136806714700084401327606020509650562341278614332715681426201473704694831956371012546369176270587911187950961767290898841817054569762997973217997579623421209285269216393120270072244188692429973568640226181577467809854477087717594876383844701102439490247016564117996995152500371840318125800553875181113549629114844316012408484241911533441059086201768837854884081045705447872694142597252997906766956522356762728812880640289946141195417240080005182308626890970058168187032070018202880949987605237185705572629203503137613861315818433754068122514864236203793654333773802862306913911130198456398715724823622759770668859186119126601398070266630714047409492039649073503125820375399822544232175906084313314555137404367188476456346001250911513376458402003681187738813542979284184059669577845620818348788359601572238877313683552890808805475856476247888379669761974609312625384095657449636582184211205930926147240668269399459144131770312279797722353504417637883518277366379239181487570837809953189664787752755392327598627303096092903122184227728498606295207834056641064036382374263162500728621311854490866453407377018375992795880216346934231725292905404889986713508229710144523417863356753336897255112080972059055045833639095179690741036041347701655491242841949522142343942239474976592450661765559402703620427122677650836347229007042099741129384271041591466378577315318254074143082551878072158833495817293723377137649929462426504314133526546243676965580887963043588299602206680322534818324559353693651526855975508033511046901695631165785307599066542660770788465632807489479659177220781430839332503978830376613794315624152023335201602207823493607543287942672320441166981283975147303745970620733924855910332347106991000474814678000321190200679123168639556980840521348340375866857009792605829279498071693949758729058576212072161741704780496883716223924061017394193998269360122374835190473285415728988387833712698484682554440619843181259805623578173952818202705985607472905135130960616891629827168680740843227960776993171841722618828364386219667811517136733035325044370019452392443206146808387639315729137629467576510253851703611157457140823308592027433712705862178628181160011929109288486536069073622670506555477508842282450865783330865679829014198947930364162182764326528729679822894264055863546190545214077900726644299259521010110803966397257013238301495243827421627716099052174088088938847691566043267399540215202603094134646024958622600396177289810102668964134999381672371954790167575994975925495918146855036041602212822622212069883682030310788816838837148778748608316185329507990656264207232789808016544413801318566828668551043584833251647962350870021550636966628461368238272750358014655643695912825620223315128169457744333970129787937984344111071701746412963013712321529966256679126240791882627154057842554703982717864880276773234640816011556301731289484660101698304109887111245319433410780192671247302197514106399729209963164164561523484949163856826807148524931686809810230655181537476531472556361722251820585230824975204609050918323962833191215951831043834138362995141030594760064754494943003046177497308460024841561572188113882662267338337191055783949019621822329273611232589332878644503719051815271274955646080044739568845540372475376107456726224826882451420862377804541268018448584526628761212613136635723577113680058553393258697678593730486653442934689351116336346570265111322697930669629715458043710227304857816325102516481358253061466347589860950909480449721909172996589629264740991852478053652381040985932903835444576589679807398434824977214127274455086034892054104435839139359698431433930136206577258873517805054094346414142773656375429647251875022521243281596875168000758720256907013746655570189792612756867139030532608665460564882553490079589532525329429661010416799047484655824669059025356337697684606466468095200847507707862114910015490412323513477888747535183830884618644587704768079512512931758954234895412389213873283637385224288255242774202931168769850379182102399064844084711245959284350435190342348551978567726405176538582698669014757747021797866635852075078454802703238141849888346806532569930571741717632660620519630827407797391430294913080635553514433235614207412592439962440741457679122473483028682425449774959321990851188787387755730222377716915307723960293816581795214390069640190943043394261256333042389155263220302428916557510737313734894909563019693424925835092340064587702259680893648172143337119505754823630107609377281776849542762371417432961651080962354786103821190164202333474679081587105812578691621553856419488294284907460782631218214950304255668861895133037470264033934334897159524505109179806485524773780261852792631105442139587222147631639082847577325104474916856454281297559073029977404923714274201577750747139251779082971450585508431180032125710826707713925307903880942373766614534664702262599550245419456695357939560786988966753403473238933332103187786922624433428780595614147256072384524595045087901124103368910040472331131938959860682709714577174777981009221044235418208902687393435172050607279033377714269544362310004723237454797165662072501147480867344104318528170618187575117535927909944722406933694422928126237918178211315154915430330825505980258188536125851625913122592822129185321825855284434045420594843994195750696113507251370903465370702238176137665224644336643452272753960055601830373324525670713215491259123019301380964207243136848702813846903235478888578536403617820036940918488343523323307155668037132185962159236571643702348214720989724707129078811162408459920086347738871642010663324842182108859436959749650511046659634109667065124251303702220058523197330246346299160584235715358297461774789210230632430816035468210387591948951176762680196128031203569521845955031220131926471647351391913091273784125644540870073574763716201503739229481441228849435469800542574379527745918364745915488112189403500623544714549890265021436028144689845403098795215626039132276315186107462952492966437647854108357349156682929380066475233076022833334867562772169414605245030278798913355908348187263078994658792102723566368490744205576819464926769887735749585274480996985715153882403258045000945565842855421170161713720359451424971607438139639371885671962902872856408334450150347949725906065272239910402514418831737744441232403671431745564369044264762142513905966757885835363148769601785449579115546329831936672987997010818068256188586332174049627820347361442108382560820610190268368686685022847697058884011102962586238535217133745888259520039254201237249476210220408498899532195005097117308197993238406597053675723078400877879203374668483166215787252652497698256648709342308853580246990433987781452597328749435272665498142195316929935051366091163329042815819245760485791439418128409654622734252158481914276131312341217931595456079166406228703373199798380129770219647835355436831920406674306872050332625019482054535725079770804763603483341560206252463296400039016520404453083509996922533622651476787384312660413749988517997689230210045776587774758099485390554873836451225498816879419119157910672017056385633425543134814983572941855803339940537823695212413259374027926078488857169001537847134684325974444648360648001644068979439710565562182645342317019641832083514001689183273561579814011472207831822117127921578472577739943791069799570439268222237199040695079788386707507819881567408149077306939590461254843540322579809579960322615299963793937781145048660667312422597313365589131117511729334082874626113781871711215421105280073710252911794171214424369897019578175124244904956447229787300286881001539546668830741376007716376577748882453071924128802147341788503024667890186813780147758941166000071192393878708182241333352227295636082636011312594101517912461853123852776468285136106465854687133426562355176276723171045592504307518658857221232014569631114892668544323610689285929486045720153399610220671301616632658650405353073004330873068351008924036306644879647853018608127190300474257912105744951493492403507255229437767921260196157582428386991110940378311879370504553585059477991599533948380080057816792905384121854298316591761145177389668647645655615661006607568284899213516143236171313474173183535734734084192042288008215430207379302074948754508495595680160126248766197427438387549891905170015339150137170087596476082330914651684976625699016010038585283095665724659380577618929770503372418201622034742720915393018006072893599381560727221448508024499171940067464830676067974679109824848897538438158662765287010973643810070096677379081145127452072588320027678058544757046874267479110058243649432950496802216897780878104067295876306758149925957382600172987402249656788931960592444836930483478622642824977139568222772050166387143742749982758876645551507846302539491490870923790239960880249237660597052042306205993407408181877283912379201985917059134204894622695605514599900866314938032810936681208873172630414994566171072247024814492380153246005028036840651377793076099284292936513704838895481057933932025506051887508655639329079730845059791937701776376911667875762661112652152409244249127108340564039002589961584908523407862384643618803434211767724179372760608030635493024139994605992392214000620972079856176042494198675670903504996713017447166830358927407500074995567433241478409045376336756892463541965944721970087233198774171995452976875728797180777141666557281921050102826252002952333419206002461973058630496022976191262949485907616065707232217536127520083995367794638289764558828513392815712295136538668634190218250651733790156305961373679643553138714997146938926782876158193356262770298956295606102691622561351125635911855273970315107012801999469199558249162704444467285890426471579341688195801580254689552368562101955466322975225940776302152533731609763224285536900529630310478459957158630291007030478056231439568891065460102042979790287868654355859567624632871721455344034808275251255872929147260885104257646766585555415293199316700604686561831034088882428934088290667526029569919542464154202595523752757948545066918885346016680485228786731547407042141939894585152470944022897050348495927545074809139071904547754789811993526841308623382266856719990800046464501209867617404982891394787962052888712703182466594357056827537389752419199514108304269648773883642232653001101875237348069850169953276831857832874892553383875586281404234833030652644669032168207675924381280625063845065705328845899461501082965115378361772325326530839995983860628501306483738343905661761117282268399995202670003518866570385423527041737546707714487056017951739711032078691778877265553653190620970207365545030507960277672694912683938644002489235411648513028115875900898697133457052412705371986314095777008290066289940079948444420703793168163153509874028960671275425866920437574851545729304799249149299162821542913912691835634785038336785765615125101496386177619640702577793935209082983918073931616135561014058178219018162363752219500514151028010096904598588554227767358032278163363073323563536140313956391425339281867927900782735642442305217694821909596604386156169123224402524223802296240256071410823738393982908169045436661521759213115125736825971907477780995981081802274109566899642863259154358773350899643019274773757746807582749257229817838447669901502973678303497437089326606446055471070272308366326651780668240210555428116371367117717758788177486530891724519992088021466541897831468117483534135290050792102660321850167208645443193061006806846196416827408156059463974757565552429175863295810854825647612459200728635818215730393262411490341533378686083317831089914171398172522535310248944526492891794454023402035886886552559096131987348925482379659603028142640240494877249121567852611335324888953860566478835295496472289520885212959302527235932903820331349670506592480758879761703585578500344096123259804949627337485991381597020280336910478304044094904043616657392627244076387372421451672823533523659665706798217828017476147819703882318638667259139821863599226235626122174278592528621903277294446932985706065734286015232410997546289281844375578686382644373542414872963546481987906288242907521247691988937395686382326644220142031687847498026058972328837100273277433095815299973852693882677195469320441883133234405550934068044337186260151379634819072183771694175572113822827564069815986272001730469087810426582604813049358836366169659363847919708836267075504286595674072901992898424326934572238365865473740630388036703456648250052848653649489440498921478169706438837142821503667674906725315448288205284802037025977350570602202198333398341639426824427919755855320047489989587238199077980856146109247733012061262037894218284435812600314542471109162323066127521296649715274550697435792836863687601862646418554361969198865465514844158943454200695236741702693611118610750919671393383633164102676586715061862859156720504253011233204187452527069869310787987402995491522228178876922435804670152150031769279305534540472927021712378677648549901793059711183105547590720197634124217591540318203601832811201620316537825182984078904392045859462088170901051642938558389468615770014015574849892601869623701672938451585204029369644985985093488216974088168185084477516180576309422692249433852189264593200191768218475786850630846889431021377225305139294754839322162566064834693502166536867428122679570755277556568183125377426808804688919702235582322198257136888466928557745209065026609096516139267544126470571860088482678311455388794178087379803159453528310903445702770099329590407497946020768097596645214102797153846317896114542926984142462281523127237144669042598081801994308706979689111838905087425889975969184471487993641143879554150657210611012957615834755821234936369033653922488821224886373585115978221590788113158924349298661835023770590732150174158977174853178052549803092245692286864549567595676583683398174427933459473665756994505769411885300987397617660057130369628415164423734441290406027966305464063390292497409675235704685795861744507328103051808639623890458305856760902705932107046962729800419707777987232127604374474541530919563979840542987729343008411814398870889420088103237117809598530246477130686759379610191075396440686788830103526887922669125097410448621290332336985380718978645191845409042166837216532213022880643610565054282897477382758068678743668240968570640554880047101789320417247906821370087745972670032942155889892666531833713595006714700411488146250996166716690513297024428202138276214344136358453727902993791905967858722187739242938253125688849379350064885933516038079138774392671358540558471465692729883363139964751423680765124074933258498417762670218870684656949605626950910079041593802851646780611732160068344374597015331973139742470543128056450321353661416864662775079378409318950163676262505906139673431673302921632133342547151864464004306489129702755924774280406519501895867254898165212417429831918864312383207455774652367105634911339467973452680557523300911644354143055090904936763690514056121465876516351675148345219298296620667925080950707266964629359113199645827784179025080439322872785250963062189641685172751710013423762959826744277508085025241347485870598834261821593645477290208803174196699623591246461069623182141050387663092846183890293987056695047999050514538589262127353503266993797697386803966615840615430717420462448479864552121496652041999447735695637934616722510140377221916564864824643915173192109476159407722669999721465183679457111358168579052980147085531963896595098010492590847517450892967831636947641314759552829070900364189649416300366466213153369235883259945582633106194366830497531389747518856590436642638498346597601478414554716344792008369110384784117348628361965762369358836466995653924652374354415758085261022707946668144864544265512498432024139091320370525816371452311219250084456420036035903251503224594607279326785829650591802363338158132693638505001215579388636614556466692486809685755506714604489898123696457530747594839003250151111661064817980950191048424097969464887701399401982454690660072333859294630596207165523001362965363857652259839572860544001757716129962600910392479589777647666582792317096659904914967933698537685575404319237120109486585446940800594211647681999410814105454704395274764578239434912277961080142365369093947289611605082169072898690684314557282805587117231222136035835416746457590179041428143884494721786497475385688097616728277262496231483810946145952920361490163309498467218459777357857679155272239481359416111306833830658958710880156403537780015830217589470547837820278942394854794870550017753102849562353011980828121930282541841828251284858731844081210875651026134815339455658229893042061505841448230479741766355965529759153238422904700874921292559566196908310858100103023935942425761051307027211108458163186407204581163386972493144098421013818226894293167202675268700646847558820658483008444872785828837277040619688294255133229695468988491588392929512869193670189637363843884199113533041688747926831319011646438361910763259154962607456458743863285429880497919167826014219763162336359697078811187383152165943281672951320889857227489553570255070653226309155207910970890327073891383621086972879154011105674942561603569663463968958920118068245891855055044295862492848226117462601739601097316399231787008683998888587132168904114817348836442818388204733387691580299498272201721745671306983334384710177819870708653595871955376545365499400866931249380588632361489782593716485992912769721791915051910396475693780816062256804907482701019696334502727437431160551241731576932396328212196348208855844961515576498874999278631455199207671386752322294780877867745358682441782926451797727370944128367411259295684210132179467776020257128374956843809521030530122123581167173137432489803116759124010441908193768945656708669295755713963488919967016346586026268399012189454130287945556799404246538264772354316421155380608799071438920160894042352290792679172866475241609639950456921032435842558238823998774161363950858444243242885169306727256137061550813582161639774009586407223937586477854566385365350002485174659575645240510129760719031640846324188011519667304458467066124004086122740753119021693400993067244411912875882794995322308284206192110753663443998414261113312155506066524727881944324666500806694376830490463197270539501081773903540525733967348947544648644476126808646817846152196246038905339232709246045220075000077983377892391936614674588473741480786717824481265169835543160385838461399176257828451103929530646372578853846955639645128914781839962889685636345174462501479009105065944347327984757774071090809160055560438536137876060056266109335101622977518309651275133889315296140149930205662629711137021650995601100803113430779325825520927804610651501631791543608148249295932106402099777073940922382743230381495197809833154527307086400779572658628339522565162998862668816761135068610909662429614239205220555519016569075524858324622672706010081385193025002908327514465832302765100366074938061549258547262007055521758930399045731993898221619555278653932981469133366346792092354881777239101405857446011077264366260712215545579448320853157222971707705854452288194616863135913164812956506155093198009087540774878754695972223766199577533328977936508797202282563840915017082627585847009434137419679993525420175382468170977840157431468422982682128903635152372360111053177684429471786685141435318975201271430095321680772269173965831087490336379834081607240762642363518966569809256353946489412276110641736330343240284531663831865111396959246676838744566645560282110249678488268053650579401022082707511311726781849089245546323792796237625525350102695184986795804270103827151419221248643834139567488095980913992888109332345360694484312317577817566691971220667243480592008181273989735068144981800745839266448577186145544933525175616610733125404543481498095076760825705371275342253409912380733559789263711358807622681054068087883085962835062501103571603141628926948713047017886032114281883746314822709043661118424544360692453847835832263632341175748056131137940103695511798460934114892908520007009108114013407097379317863389697349085427790615279621946684954355063820020746383564914408492301844242517327701163710228657455738010393795957029205357877463393866249007512527134227817159235504070794433332194567999803807793553676543722335025318104307011438033025517294948584744332525582039946348692512528504553897980392161950324410465554209939079092246188708943092029877611816997742361149825392102900878772334309421903719699790112723803352119467172168359328275142469342650738522240347855040902441604164689115687645595498779518819516316745611618949173103719164033411995403093067749060029686905671782958140255279204356098992696041431805594238353036516294173168821250955825910886467512910762423506699963240039605758814570115188648403732650078294132379527772695915576463234668315528473151450908610686871582881722285923808554800966757031255032265594715627686560075857352154775182532316421025396080619552524490501416329561418892117318144112980865637197821872068085549481352197005201018380250378495065674960086081494128672636740203700654660588481091152733041964243724167469249954158468311430682325415971955246427606523356099963741138817650915165961646838768107603187763882823194627243945886877968511256994316067614952765387203629637997400738852174692705775041640764246708212484151607797822827873284188352945319979853272438813591525668930766572624686242919588724775862402830839002006630151359752242354962420672253691534245252908595533127696087784994400003704770734516770472515130029859798392204885322747486691929859033774371294378880996057283171041272537343118808438321428085815483581971250606456300294055077515940322942651459923731016909972524323775163659876806636999494402633728993361471486454691497403598662037777480399833362293045514883001435541342015710036345927794059431514140551951511971485904854336455952397099887388874120604215997706717372986566746185631343366525349633984868826365198217417249477229091937708974544909056733308164421246604583125565818218569055805279894967685513814692930498764026878951367892979319870665659125509938704964845575779611439565174144599976658544835589848645415866490539217124085895156034914367935133100592378908909096732889398054822523795367414599649504189578103204499877950280276593893019608344947744177899404739714513561250402803157789432053162042139585212778049122173298549399897840524559152150303801225138131940793532430763921613853408050338707708677436878008021523799721947021735815522218451710312082446619670468978179401040775016348470319170073171474733560480313006241380186971139616089192970042523248945817159287386246504993918509841678431429673398498423593763508690819873512225716282803975424223522801116073926479174576412705867210412920180727747966192745952018260627743307498481589919529652708151604149222920769096067769141503093782144087121905040657751391756651391496033592205569583751852175899409880595092900325760240289439461263254970327836564043011854395110466493742540322069678009700323475368857946062251632837506540230515334710221036863914474755238164180692549952497993062151172552514882155859927464918314347940110850399552724855888247524856119295705535772649399770154145152987868856384387765948198581467525723340862129089464065742622529736647549330966023795662736476198388738306173513710628035139791666184639127880892234331655254662699633983984572683473214347842265985868088490401384869821902010895603378492677549101853486653650097812375456964344552497854762904492944084304914654977603237347132713646497030955585311142410092283103989371130397943641193735744104955651081079137077697178852529946519451191315712871710897736791113051738482944089975342018069137339505521452499199252947287230880820205579807924146468371391980283313765866179231475641450007338991824227227341493262659396211280271152994983210210432208232297793160477489764743132695559886455787005503932745731743502033472953871640469574563869076955240923394454122252689622066690910596196106414786435411707445323942873393014267234026323370833245620355304925550489573809267515575182294613013358265533106533362602508350502480682928219803173185188925606070275287114736645384368264941422010602917683102300644033366468456985551766618653664476982347197247756011460710038892475843154132229352486637464393647983875035917350380396827034075280577861968774584470826176719881655576257517118116690376642750659778086099306120843476953180536113441629963327805125442058873350448555281856149061667470630835513914872089641565642264870596456060233867721037646861009375339666031638727224294187133954552507799165043459075235643617954074173189047930493813596913529750507819790159033062042036951025665748316668079892411178625792279711721795837223122112332327544498760803765149404068143792302834523050361027612158013271809978859478817195328705555968936869340335176514148025378569839210676643606198625121271107555242382818343767043309725808801118432246543647117593569981766326158357530824937126800725768266670286022720460646336765065670273806048629640101183769905139860610981034350789444320185512564578590939252898405140961102761586145239697448006806271376669142276122792555041434657341035051499272211400674768909849439701564525110579235942612396822076297850067205434077260798166324566503447052185626289313794560016841902643447012268888943966225535080284064714733742531936731243107592797433900745047743390291149036275496069513615775938318865882277386493275972161876293650040379379408124632655814585275321493503620577921815795425358187935087129356465497884081218399162227697634360450362147758721946632294775539287086628381733950829765493215183566503384029599670195430328472025294213136249848811841141635944775207702846760364724735821107739069821548728508597917594379284256858975683850618128433964770762523849509132482230456299312351738244228273918899794487792545322630495550839819545357589001689429588298637380885918609362992227018793092939453501334866512701148593008352524246444475947318159597990761287600436427788892220101982259457737589085894846409950580379919527073398957537511624385559003355962144404610455011408962145448205332142616349589438303940829550335702869459120952637399502606189027028217617605273001076046520865619196213270428321671176193683970218638420946908308275094957308270493957278476327584728000988641328017658054921915803258028404032350867668325196624963574872115998292384662886437964077120583106564112174523738392623769391800560167558198671792953988870747480819370058102315213530569512685213242717910732478606840527847295975495965076793659164143925682816941295234657903472441309484477566665344362900797909427987633048658302272284299803697775049962080448918978954698086116121195910485189833158848541597470363634998282480242173791453028659524202389020233296583249194796325856331237333927391832052702196604771596162514091727877222757787407641797351366330389725456671384193071877783083334975708210099210779293828706575633279455232372761411017359971037799089627298191370213929687284701739476585475464099792384215335470209418695230195345614982825554258807870011042356034346731894107879529558455809723899956021736012983179606064562092043271093736442334548316138081891216681771602634228622323501366483204571720393757344362820233769645226131009459908818036481784031426420786187638223732251475981741151759270666363962163869758407940465793179916018395554083085918875072732072879572010341694325759780094709237415301421972629975663647905390307475523743990067469542129630856047537679708019913751678391496889840017999566123237394828927438455882817407803430317725419219459228013551872136327111430323990926473269113594507765721833678542551692842110033054034705223748619955027379171440181064435393520111423901659045650687390132981389775896368345032055821838719933009801695674988886916746989950685329111870123367481337163361090343383827879287361113175424635328722519342539931206621532138069854142902148482674412189965767100677419205252791582835184386849545134087456221906201988127048344163875291123678043696998254601170047566435882678874732417466948759724828277849399937713444402420209869737665858961181898569686688468606789129067604262170987338098610315817078166911286493420195367958454091719468137759912901568798660611841871481032497984024151016722149859535672131149830994959145185173849242111558064351458450783040217555807541208399229164485238401793532404861524256112712039019567566012492797731382148848763145781512471475614191536866843764548893300066820451165950728862522137527050022290605161546673586343550851401033251734659678843996259623281701750067684778238674383714797971986150344744619807750629166794977214057119809936050884998571279455854244954602903562628248804546631336778039084578345572140482018968800233858149411522444813917832664123202351619044231682335880429348399010259344166356016870945868083124376927593125320035155522977257231069095584825424306081030793076108458435268414083538986901411989427561710584963345697525599625986629823174720639735089628694113318629608675151129731094137583778208062661733317358014898325892364390825449857424300043949475404462102952818139868171856470460918520752885494060444099127533462571167204300505373149831728930582500568430941609029719211605402016531721518750638099713011867212066343233916614514728828055583139873745759662231307950598487662474449397723479550311150672607544034960868168159041326589386819272135791419023988888700733158320740324072352594992381213330285217350538259375638385505675728521751094617993985807679776128206902531759127303053092528024075190727146698511811499337193068523580497171823947603641065852794107414773647875911464156104381255561091866448948873871956273090033017225431566485402169542562996518586183207508807096993483319973359674763633773601849278744142357979683998447622076467043290998307088389158502599764270515934240994084237756963181689773466302104956755337955728526850861572535750227981723330575215843465055778576732571427587302302797348181890315552897381488472916940993216335751507416155508793226143202695082322098640723803447647394842393228271836865216183323434779690657856191980076611469396706046793924871265347096039018623287654318393205222596977327133997921122675875056459630729786136003133223952616355849546365323918460359416448074863054126299750163442949321846461036585425254077454155362108247170147188728585205480144073354114682113063601510514051371751703486895674834437290083968953652933535541224910269521024707398594249862539171322845151371374172169507621395149760680358111617945233629173636387545946361745307583861434173894454280609812340682541349997057615573743443389625238658519731702839442282936578441508728851041549900506097703685269689503541727351556802279353110390943764816348214380849274993744406738220793417305948680615141910739940275569228784056944568128945668956094905388606477901015336860168868147493985230954873455596317787990733475947766268150889553710267555107729386250968267778875369320318213295765772167820099398387743375825678537572168573879038518803877671755046402759390605876465874984663591352435345926854020770130838471688087575989812407245180211213432015139444787264268762471208699866918156813467334944398926940172226902833805095644647579487876000299960267153785428668702975701299554443654848357749555228983689998504322332769704403474681527132006058041350204824780008684368589581935758968254900384455180476490538366833530764167503174253384496403817997711290653875220220481045103310068674715346946180525461865604604846889278292108981610288401537938377573384657361572703686991496037192670809932557771118131591123674884051949989532511909353276726891424975747097205247246866544056436809512961154830475113206016397923918631292146807699455050222109520865829867970455267944073684229383246652486840908393954700517806804966544744678051941311327863577684903868690474325457489342956242411372775907509080421926964381261470621578716893894218533097458805588946391471993868337044843789194673878704563870952809182688760053164679607374041741614129581008159281725998491131047550436307636772802790817113071070897246392274614008822240436995367087050513394149279851222181829569929078467883454038839165355473491202041153114127131299806517139024365349382395383173743813314928561226415344608921839911699183029449291522129972940922831611207994292315845827931853069623160619145344615510673985430866974558570044061445811141294045898589502507175348880864331581605792758412762362129065896182177054521259302399519293545191735160296199762086521897099690762687423389912916404757322077043074178527436003373608706924258617628412612444837367469366283838583342518538930808060563946452466881326655750833202816826855911072146431776468948238708683096135194874561142600296943589596192832496329626452008839399850709399532609608416103081896513403429602139743032222198087988072680765239022697478261779897430724987279676004708960729600029550128764324036002093578132845638170256295670614703827210303571835895984521899892881861793185335195142334480605204861860250125215086695453730122503950387733224072707010543162606212183032577389880478242151774461329261060264642769826658935604992295936497666034812719588865516972270403402028390607240672462301646830490240482628278286419685350840219727240331215364717251099073569967349658920892976003670127949100406445463211051284896008117400287571134907374036711808928261918361283474302464702111547658447014559012966579286254479085975469279761133891024361760458721934573189807591433260021225690341143657334653994758456064356482927780800836976158298334655597293171195289107980396363110811283820295609366376871714977431974494333720843473575157302429699463807514518302798568943724787428007223082165624132329927284517001890227078658853792040701648002961517414455250436913960681154541644242182251920937896032404686589959717450802316086860778455054191838505757422361255667717967135208238133164916424741179047250057621202397649590475725786412899983489160015466518184206886604711655592292610209525330085340983565194184761326257564236289364740788481646804069462105454779769495009262332999355189606811961953901882310265595556685357038239002884211215726427336246029313859513517547988218941687721068067050645562622274755256589354649582725284720787598554285491724599936162329276275549117894869443059189395799639395628538037695732362883507685273122482445404053792390192729840803613005764641566152315690451307243038686526155493053489564473548003217213397349135091009529352913205708200234471712227934574956382696028126923316275687810375553648525206426878276228198985855160319577454079717173101096361894623546406852442107827940304859459480751621077814814390994831129621085734252295892049283039940135138226304338627941731874296405884486917874597614852637232032880548328167197501862432669062751829710894083728183289898785825432573010647982669992519933613280251440243592264776883726588007670844536434283282158831019426773300646802375261947755063103140881208227065939483633153303314362667694647040180246949385975842942310867279259957283162142287465855491410048155223673374990339431486122708793281435912125525619693156837126946653286453714654730482742057166483991768990572534571210369750077936947839434367313640232720377436303563479396482062238043305181151570098108177197844391471154428366499896496385035635327570188545128714964172959277760914152242178454529056384207137259837548917745552558619136353349711549737356347315427369442832637994250645012146964077926116859901624011721644126469557640877424445190141300643570716362317312585141445256066038788441119083348146036302860205107209784895250961254177010734283692953696821422396287817800024657911690275116016921114908590238739541411888121350438272427601067496935320192888952744548891142775478959623047178848271582195142598300825126661155128994332312654267981045708891219350303643226437252393153234666860242618050575084071533191212031020129828198751759211102539228056701658243799654954833551567955644498777258806015842954214649919211616567857255920498941177143538833170097629621696243052619312708713312290211983942337244490816682646404118422686449680172961994564204615450719039447511325812417166255630277434001213500855827177727079582276701591726473704328267251698562324678330938778586333568409031974263728634228886663958644918457499412581611572101313529083622385541544279002753355097351443961930861764201540307516452438355553901675909567604510680419152272499500343758887148803011903839689130107324731218840368094095009275673500409150682248260101960944959527195917477047912371706863028226183428114241172302345952684350037452460348703902647846827149849996275430142828788957106863371820003164141948708521225854105302690403665214156346647749180523645418747217398408166556942289079099152606188424267498056934942295357428347799847431667096941072559978645205380654158981516741483564667966404112916252266497318084535081559310506326777638196130888513027816709489501341704627131434235705940833301755671062177926211489576378475244067732104960546325537215443099575252457988675584636221093782749842721619742681198363018653858262586055819710073374604134469517511748014732645874041360684853382619482940797032037273313013188050817910254596993050863745737322968071040083364165922941006582185801110617619985914741715140363686234522385722381440194201791471575835728231938412240473067585191176707683230631386225447949434332471653132551467968683630732294523076921055707160475796077804554579899778605317752818930044253232236533971966825695892348292756022749225184087758558978980947837693336049010238555112981799881440741486952727747242187177228299120301731122336093036746630556957164138538274268213993633937088727904585419092190719122593041599459905799497575973489840779579633182369636373545185491883087990276853472181048246691651178717021863328917313226077800566078283971998366974685242939865849573500017397180561764229682984788684424680705806357906529220350825172998149459837312684122865437105547965195166810648262390189770401404018091351146250615082886614721399168880540601901397621340715092055993044290732003090486807876577723498661324625527069966160471315022753773587883843720040649005160457037775560260138977525034878212766695937893319833456183988276146562940039965421726286553468859750850920217370275749682686993289180396517616968535961894510789974723270094539590817415678568691662464624342546126402094289875251772168389713643528689627390138978133888613348833826456199021313066971065458643302303747871346222786436909714032884173544769319221763785693035253783589715165388426868052190099539600025317410735453194737009782261548679601116015519036469928653733121196819167681142620523949829427332694344794806969404235266030339291492650782043050770313469788244485397148313020561733096885029994899681471737986915686824212908625615802859186237103352984860624530509429582349212709911658230293150041690468329026426999051686246869123354702962196464625297083511649415316814203596887833779047607761060715202544181031389545488695871734072312236728701195264650834089076885509750066968637067210288633833622982978014110235792247592161765303656927404265886424451723191620736367188629576896414678266625383462270384284630661562501771184103370238052303501161806760539280167418522884816454673510968026744769291369582935183899170480425559566404360448093478723086067364805677870130272110816026855776040346284439714026273898648019663995354807804211678355534308203068104125595374373889294444790832600966532231721979256578639341073519480109596585956575819030925793263045483983274424787773021974530756566609616190197762584566808922132969649314800531736201743460737289977851550411010659047481852887766326834307047655869308725891682717712665874209005717552937477892301322494310317639289329751581131979091210538864950038798027428855851343932953350224547975403100929963851315242655887899731368379613721373851096680585455364896161850314372027246400001266260476054476128778768181135292722086501258424740693573314473570393504965497328923834367900792178077085918738488717278794446001801304940033653237118411072518731704198132128159775065157407851225161996897295866291449187465335352815537535218943732637790420181916843902253763069388804580700833210454657314322938153725665788014756774873675761658504297009277377594071709141841649189167710912635799606121238831894121243136861230892053733385196713323388773660300587592951269690334933296745433187336268042994950786077964210830243520834696807250200615706079124554860651569517538909111035982642874388465515313935697511370914013034775590069361590978759876938869449072589801596186033262225618147942465995999155287355538722097052964175941679766595203570394683359486299085476192790052456670284787994343316132259143756750665030737714167361241968661692222185197444518611121403070493011160154143286647393532564793264353744838554993482384173464576344582009352945186351924319562611144244147967446565888090025760427933867578879074974911219618069793946572308236959565988285021489896970219968933478918210911671264141771196106890426137527887933940016952745345613939736037836549319142168015124144416022256387105325002572451146276788332615912990263186107610342179768294753269278495593232386694254648184238396593374834327197719398981894783452992301388603649468931553092346808534418436678120611789635649126109930773354212233860322229350420835929053823020218583164201856235418389136988771776372073438725984806419095017505299018948934242680669712251426261855509493588009857757542512936350414254214457547877161545768801735108235620048218989668382306036685414184887485868041402282598331514764325224722495138535646131232900898932275235657531373803735059033221257315215758256920922021773982188677787812002742686847407039351117325206697457988265591567155553530103202770326135189490746856081258684842845705114970149575267309537774007368151944808506159680589821540753759171259687874052699795216699117415941678066755010266061590411030210497351650267864497955637656144363431007667770086742186499473043334000753574132561696793567570452122715205299433271606723928276854303068908916413053974232607174824786374028296772832272430819302256595463815895697432288224387068315341262232249079266929593189863300639561184265638167323013567629361624479528205367820680409790589770395559714403141044237377428890300104321601076032550529000422770053310475405309302890886446797838510863832541985976490905227631933366895925875896132757123870210802757692430076509725880938490068303368103103584457609734966759218045753978158877299551683882038285338564116219313159232791660297492873875353237695015797545297786259585447586181574301279363852603548893603862004407439913905971364603740314744796835749700715312375283060838293493351001191426247438041609310668321914289167854108667130298102512122195887789475789203972115178519681791552921999167216950188678141872046126973992235702629462721792198119187960590779795558630623783166359845413743816444379060414818323423004146200450376154120895816102364519184552195147152574919895450148299764462740616613545704679027798666137386723432862991029306103310490482459107338072608701186351345716572129280922853889323994936803821616216776053108452651990785402277039079905793528668136368790968514518759092008549492150945615858107095974019952659253131826755622867962957598002883717564124998100705567112558451676300302652353194853757434935547930184448499257682683118406461698824201298527300823427654205306656702145503248339475340051567067561849223974141442166980575765160645518082324379008333055346169394240448873349113581020984646240773565314075832647863009440939298196086524177584566650673252376938376611842421509237976789246270379473395971838822431657094677841511083860198697460533151539042937078859043745848989952469382704978698346766689741820941902404112102417055825876721311156338770121417323777015095786010556034696886948542279935085711038136295909499728176521799675847692575703626375645945878250110041667153012169261124892861463045835983663655632286007366917979642532444288864470608608858657581035036238154399815454933843663443419728798047080140793828052695157667464231276153137102199673338436330142344371797167068204025326799356317733882770911633364743652151461859099574811179636601444917429018937287596209606756367810368165443141397491920831626784245246918294896588665445778374711425828632645257231107281788531477158842690132268150194224075747280510518557314221100129802657943243474211872889840701445379684112566991087118392018983183701022493298072035565769288663924172978474899733470170364278416016581102592702972946619072453820447399473969846590183773072025814236632437607391615943032076397215827749869284935387659326321552546354709138979595275129879543932171050538267803636028724441866978851065337154961830019360353610896287877709640033280395315503502569033890498496347212560029998092772054851191927434573471938890946072705255721304903007976011312040422811724138402718188431196265053263794742477086907412518478918546332911490274718895205789382040956398164491298087693499127799396527135332285630916771035571175728822339641364050259507611772590794564245256761278092119329747146814288094998878854814352553777624334271777170676691978919818596110834080860845340901670532877916150328504764892339924585533870904323742773695291166526013189765623584052026859738079143952274525254542748060633174945019564392981533812849194356699523428338200003180421803273094076593196963808754494836860330511756639478856622206305315197451470327122880983167936723726979105033684648906343957482828375134129451033975450514190439163924432719867129354195221513180830554812581959843421552160117888593074460923013237526482388409220475324443059741389575791025329188579159901045259277539178880360092985616552574393874057344292366078885213236549680536153626460435929870231055929883718171235540621639219979697919304742768279828289295472993610946483477634026422307871175329432651039891263565229945908162698366004840976663054967647827241530537005172698088320481663985715147003035435243730434767586304339852157082969687270969163720894135739322431928198170024304962288358383851033995812451395675721471960105828921767050225764896303116054954070792971756735163103124307343011177895520794321005021748641488577842914946028719891297445319008652426911018286100994765025048023675011882462240026977431635029294554465235201107954331270842068696304860579518682796990291954956945519478294543114888088363529182852737195253530150047363559569275319671649231710427674269429131819038530196266020261839167688018953951093793786054145578795673540810151147078814237744847448934210682001497743986897793711819383800048323022925218414341022693712449268593714263540772765681545104555370302989269997957096235215762441257067763036805515371493247553057390618052643549988058878109643934727674142814128423930280638146814983570292751712345054860902301894493827228883781113520122769785736903707613629926218795075522523522051104324725876816187096443242718614795166586585851804409861051244486406720997529805306342304783215007469580737925009337879594472620024385359321928432665827295506012656255672205735514299338622017515889464551915483038861815995080349225072618669827260295223994547205638938545138294720997023132702257745764053855643897919768524609212346147789517002629865514527602047825110753560614486208321695696358735313606795652389176252807882256424250698437151893042488270179438657514287231111526399869050339705819513183223334859633769940320838606791126776377952074623434653766870723780343675540476944033711205360311354507877998374912829309908366177830717728207149645277287288560387396563031337601395477888532758686803297620917333031097598946715534624480507669057884850837589350334340166274570023526215110095338456798210414785548198020925661476106524563101976729222632878027424054953047909866154496556663821578278332574744316496834618168659136625434338808679219692178213535861949247652045211560382675559792587405552849375904154341128137860058587049609389152012028741323385936585617851199214756425500615227727696956942213844853212905669534725135329214170165325394215708762026830163534739945890695330021915062077437227620995426285268989456016197421578689055308101796606765195525795632747623607889435953459060284804545013749880762667096811566620929589767831576581273471571483639469911524731937877078747482732631124323327954504996011565944412001557467581676345266943033574892856325269914989914529799083941376602555301963037720299252284168567807611774666788331519618834442513998811503371987622439227046011467276245099367638076123969186223405062540593431280990305600228517403086312968697668132867412950019440816478441147478397567599857174522767041205972573237658877132705185127776560576902138828837312580185863451842549743233084320806904804220582443423673122909740564256563542670950971619739689007184058638088389756428073806691079353413772989711878271853381511873338898064601841939295073996943336810188002631662406526875576639517067089353979451982348021385895420423139692592804522679784785956139599616280802988380302463588170702909001576477001447162947081295493620439084060319958007178734604406359106173902732770309587692560161368567870936141428825408043731041246022346572119736549265294388929234707518073614473314933922671069569705645867549197493412895842508776069188949951668563034755070822918528544795352616598597637863374193884746276317005843584007899761862538785024810755432451508089424182130950376002522901782261608693484378850616152817814833873973041267026187841520361037378110508979097602522190530261056169015266506596153055286205836937508445105896388395261631418078078295248705922299409360873482596844824215219342915135724439413190429486510914017249303673192550386074152334984689774576830293511825197369360401039362020310773498288949882804757468431746813010720438530746955923529213305884537589189121553032489701049673149809645317602115921840448378030099343678431765058740219170151348004637113057734910276148530753679276152165871749601259788229347434530217349676735545531998982845809444544490138346838037424107723485543960674168834566799309914116250167900883616809224210303890223223746247275515520166261746210679482471100182769266480814325075402100048021067295956134196113437043636163403506994524481993510786537023008949564599325436175182800040068315844089094393840851651665010088649889536935140076621413670737140284186966719026395394895996329315023948991837874635712485722034564694771184754185187171391135088327246746274189439316607806944917040325278464394343281470416945442069356983569320238494530864305456586329297999092419935617855666229116459940867179563124324562082639238335079128273906046788162154055790805038151785075552158052285438884036928380893712035835648718514835986032433738633846366218609248131706333624822997002392447733145155383740894533975310315540112957911122701541214718798891523082027899650873104510176968302850816156480507948285426479544947528574947571835867492379084372804116821972543876832268888418205933409635208384616098717979634023408168900309789469677340075088631123994338023675426108364623294298577789751067687364073572382149812267564595987593876246300662572027530538086114365818761008806544834818877446571521017696047453590152038893120384350774848376695254895030087979306862427462381476665849348501395807550851515147357323128775854323660435789225239960764136593953166633462648482649655383511192560489676794401415410325626360684649795595179303899819437633488820157710464900743291064337880118675197280277222035559597077605672663729605689361374482373670264688479823374077853846180796267625633084935268019772109484472398104474579250681062893386334224056309094763257588352977542698490831141762963190209794324544088324181688084081429287034788485548666008421031271446342459486162412269345974757960624481900590100723143491486912439854550751925631199548134094253690477357649318368942288654725828433484463686256646714480049604071798660164317794644842114646118577225607882439945007767532293042916016100901352470941975412220429113790585504667857718546591515516039379706587434522191732248145615054452100167444434917349940157526859551824525012157325151583364813064240418252241883501571989242694861503818904190257618376766783797872112608251051959145841554074609715597266188988796940959678698949297032802021696228886137170717111986057131623111930466071650064718626131210412171606141381428056583189091020194084335680497322531015942973557760700761740863521651140615945761562787392944856686936489929068535064834795557282789986442601544415139856985856257993543245861994357379930719873850599754434323359297770232999035535616580747849347222669050075467739688215302559070141188257419608699853751932969306681794383696627424333374555214158893640854469118003653790201670627822382157988428582323899636150980544920519345779497522647503333147310327843134509138470506523918367191228061107939368403354583235144700371941569563959597954061980689942513316396149231090884913353739913050388700782762092470501069216280970430568875213203346572599139913089145047826050029160159909166627155920923577750339383178338911840941114625740884035223797632498895481957611707750671950116619010878322373176570855010709637395496380291049913908754624953786377521437907827154778181397337591381149776057376701804289882659836131118792060737815042130523041511216494666287132878596077648905324816147979560666569384471698107771006069859142087819158439264143806146350704545610099739672824509161873895716234957838323974641363474017870807639318319802647596921999568419228392524827662127992976059575661014994972074404430795643712757169962135674349423574233989923633830135644262051234594380713832169996375061571147259651337680579097422818485191163233353078980126385300933216337676030689343213219493196004591536297540110069883136807834866837436642089374474935085566358715522428938328362893605853568905137740907117176953748433507192276919101342446388417323866644245992126777724133172155688664142494883566903668795454393389458690302597648696614439878264698033279349246493736331221269166434302079839108756989770468603038233454035678301073682342246513305344144252736852159124014396480446908741696825055874071358964933878480348484858353957007099129304909390656947786491318956028224518854250148931750480533575835287857676356506949380803320791646260911893721144224776398293169349280091539935367069280577124158979996648834886074736990626807406665972836437835985947922064326440466326177306555964668205931614748777892405733478523462306633478229215152051978141239416909827219344062763894349265868476527925610036921604947127267324264513659614234884163082520006190790273562989833464607713732373411023281479880301030649400686748150066709790841700418764896773689688878292252420540160536103544635937872739939525406041785134027330414150610088026136221927348825099708744327045649245827778884270175404550148218864259988003642524512860861470969316731615742623692898574861871964869622188329747142867217856706912531641213554361536971538620181323293014080761278045445330930948953626271513828696034264240427412167480362297468116911798845609641465703418618623820730881335642470218255411136679345672439228305059167251721134031625594592708176711231253078838374988185295018986728387374523841864444020453585318629286762815485800080203898252857521875919785376613851055886836970089020002060425741654501198631199880154173608894253980024900039106443736635473976016341682708413659195515722243782609912567305848462918741012728942539131275131266840351917215067083147751116206633750631606376930949713530243054485827593365778465736017209256336950042927304269198124905528667677534981574623622702176967935809152970840650423274943610171552686179753492267364113926757873643809249256031107802667655194107214965889268015965328570361518301305909166012199712500195139713532533799212306263752525172385332838088340654170383995839963759997993284354567919938553483423351916307487003643398190093568688943479203250305288067515666891983971344878797308762707623233582595100500730707029335373708632092418515170444178941889417302404965064338831815016110640058620064797910609409884823004738408527281011139660223423762503257502848112658308882396381148575623786368774698895835238367485060226865480224175141407340492125561698621235845279189690157764619819079954342862266544574919336044647388417084899266110696300000864522870307375115118187041078565953372066178858496291210906780067297210320542299647832363815305749635984917951688750204984378843176758753443897446113869014927290513322645536528502386555361551763179069294936360858646421234537166567712417437522027566591146049146782785005063177888499252259798650721304722819056509070607549030472334491502700367256458316288771088635196651951907640792931459100727600339588505776627193239874513485834560469171549835520711747004299342981739744066949578907261304420126229396585907590191257718038247791377616955721033123170764751195741199529038922652214035910844127350796347556017135933691821122993030863714673730200270382594998533119587514681988606169959566884234755852824013608301208929181372390478891716900540127870686605597864008289507770392144634664786233568543862532163012798475941589828745189654189776243052162244145949196232459655251947111262815904793491122570004160117428949318175554156360819623328106796141802571405991877197459094546040633703714252771281208919700644590165933658000239421139522214947625260432453656522191770332215673557983598923010285255043423837501929348704804297256503436855900705548235277139630973772099618127208373182935642368973168715760037790584582332710947847810046014864533196514272088630876240389581881539532730278703057092236824025682190534424427215510857692066660607265848638774047083853743688355472045094097747568241081252130042396398066217595880989079464073347313164759359599312024420919737085989192583077414948965767472724723836966670860712516683244440537854876683547222640865910376764549360620007258771417219935551128023997982555792831322355652182379526491647919146377852332755078624640636700591961054589911533474740882290607180355621319710897209918458766559344969299810411401233837748015785311606254358772555926222714094983209618211257195176909009135824574889252617093618272812448968698059700244567156045796828237685101661911398409111265672289767312719398147628545769625780129080698491466546587383369534570466609817053122287651190618592613829132984979752534310578220916301008072574928639700726293272075523374069673820323122556786843558931457452347364373244031464496978782033813482094682924818456673158977951472589345694349155236209029039198022105709611243403211756034787134360590731501880332240729082023005154174905593389451536271744288295750857606691656081112798079221120635189186000931724690935982211810567439935630395068129616073352180556764632189230588129275015909455839086859152394469149242629016033948897893025723067416375776343906853871180561936568255950238321382559959424741109974790752732164160168382452979809753606165527349094291491269560813140649791079316066864415054486213853179835238599825232965721456753905790116494546450460090915534340563771054307500652232552186767102827247493155330488793413592499860688793065823684379565408807736926468410416548777942926274972883182628068528026373565005124851499928907549820996439371061292544273203115173919115243578442583494767889674734465949561758591412851296194189004966088727724866702993727754318770288783060552172768051209042799933135225956286108735116392750706738096136629995626414715798976673874591598423512722455826417143474161104969625878889421969232888169303311709463416226265184254645330682029744242683199026501321460945933705772039686559662198832117388512631841539874441315347561349811410018312068742367023247056299062756104460253279431832266370724478575665548672807527449118099924707769032425219610886069971358388507793108203945897498657634814361212435474737594248581244426457955113539787445044606033372192335887245392080772503947055021682098562079147171013998764514491709259776829595613082260367769870735324529508936058953540187887234087074895171931109164617476819558874832988712950630149201079199691588712984295863712780664899896377897159838240620115304990813035496680391028859451914975371683359410466995874989212723755375411053394507426845414679787967279394320433516003031077696662847491956626186588524854330307544267479276821760686985875061224752787384162170206071079186928336236688812215042285844264720894108081121013490445042959905630138497804989432177501747966648005357516667741791118014952594910586026942949926148834710203163336270461657516966791780464088258653706923845385971445220662211276654423580309190690299700829869579584039837447356427207085220996796790584134881954504440501045815915443811613306063606653536111831874799347204937358599220058562889769769120594294989917281220107265906383386323268676774149826067765076974918893244002357698408341314401861742941333919703260697932200791079802904241028717956021778315807514802527337260036745178140880540705612480642021623941588750452512033917569283011088734791604749843539879196735442527113791364620899075617022144210133310117639011873129368444616897466678530483633149628957085378025765433655564366788411112720727759383496738608613479709604553747730632829599382196965115979964182233958773266546106473685735092688133415854354019529212107440768391105683434630525258546695120971948239158957082356321014468860421293079727533225506707639081475063804765771864641358935914642145917359542513437320233095965814086463144304713964603722430408946661222879039519000230605469217714686063974573467025251529000515351040618593323803683973067552910246720219241283108089663452453574001682433810399579927511453203411329638433191752950534954152451306694419113081844575655587325209142157769788353677942932229641532160918805189251211478457194817911704421125988792894755772171132102439356492110715823554073280127651299030355117651338273158165740542551977501239914375159053171167372723371943732553641907949472945480497905552248329263882460278071456983880141436479487430943395623285085238782284594402805160194106016096180385646547872125255614619910755553917531398899629026953729256425594051737801969101761714965981270802033676943316102371880757603228395311925069881221049962297139593119911258823991355275788098770045275783565936142854258166920864900356421718510900997345085088535206206380580957539862135660131096145581897186839183360858047068454069476635805612562625391194190109164425700921602118980249001980476348582197559353841457509943583651209304306077561201520296516785142336937288899880720731431094509822001630332484451639140572284745288344745091805713935094528377096629407461663424390009553176539893040362313305490065778392418520475653157332388821945147349719717568313507771997992351167152424674537856657125480512715303845443480077977995627027803380000090911122405628860370151321358204933459035696627603834730101049050765617195538442005212794986878452343092267905945619603091471985334754312822372321436294251173885203834516751818942022654985917843500918077149356046931123136139970509512306821272185059760740077534336187106827943203795347023821969394533164259483226527148758886679465697887792718363596388197945638437789905231376719249549137921854159964503216665735013280257997022298056973095292960440596014778511264689695575415012194966572093777045734089209641131238270563580580428806706312876867766208749490318598974752993204543754760340096999596501145183326540139284617023316678553643619697444582872217127864004720173678652374746969425466965261946161655564982552254383193892104945688816276969077385597653798905453562051480324939476262652266243562329819245360682558344785005541598945208513577530393246991842769340571229574691635093698720833496080986923810456093451017226977282810949919002105867043505125806429216099865764741238947233052981720578219288019130579430477829469292806254426058849689767825183854158261845201820747797795764800030819310339170126204435186661553805419410889781441149714961093738685282358020569519477201478970919698638871485505566468042880814967125214441292028206892498171166173546798543618540636636310003670628841457786638824574142542549697882084619600524926384336438294823072988151842917527354268211448720765897598470764270639845405777596666364238776899507826937242392448685765149159871771435082934402289547489530157426228335985458584823233998503260584307897780257257590160754431323774521138908310430354233191184421949816054894625815949470130291134580875284193359835913671139571805796317586344643813411593974573191399190910287095733039369645990531748595003650456832293584325204320975833447439892392017967221298818551019895053921172410270676993293363185413678263409621846902548608267969316949500504377934214678637604420810446750236174854817499459034303383251646419556762859913167221863579158580811976179687002799395058783183259148453740087684176462988487327943608383833322739665346807660975174966852957107146936245052008873715373978317893504413316937441265018303558839976113232455656608592775006209216210181908314523329800743808252342129776834784165408425896197766596409494565352488886055124010955756249324045215915187604824077715677498187761990889815996802838647958577292067159783190785892847696489788831300228521801180122778668884869908459724679429632469624470429246309326522904262044397170171431974578899384845690372363421309710965722155663939281481363921231938613963299669046390844939253018140174171693121604358960118226761504954088764244074106007612456063281378710941068480040606392540757605174317808764862064185096886286518106885047731570387938595415490618601964299116415306449517986122286022454036778301060275336343845834167746194611153302734143583439392740859268800772968245064030242922986655064880524023081168216324755297803435857979298280394399868144692170059338525466454983505410956744113818016972667081077098730411509809786631561372410433070561146939935926480919949955651040226965881255884189489119699126841427975104364623677466203699842068880434182098435442105660280050243577718477938336966448106114334825417977939534515951356767295097415863990343731697736702026970084107066162446269037250799066182342166389590456576366640620671343751616994928997683539715042242356111498484343722145734603502206311725588831661882913333433323116194053242972943688224546306586733179925143389609262235885675357099764318424839796752910958920945226801399800913695435871576846619895723011229096046167695394959925219538030411235692674201958624284145965457730921005431892048061040685046933257275035244232933196912356494780271401499771123726300441927288388974199306304702256676239227017559022238733703680953388444960856257754584376709648479660906667052268111546701732593880181120087138979471940075549631966120497685365936080035607114731664213129473394460409871033333996801296896303387158149003486300163155716553497036277693521438793275483370916247056882926627888730508973865485584254350808992246229389617596738580164300281246611181593692921536945743307984139497805585283980062461235641257089649186517494309848245531442394086948150853968476185249478270153276314437743471105112477850219915217956388647482692843192483108915187997102481304131839382467475050491447805451410917466120751223905632005704327759784658166090281057149788621527674052236657221948693300930240600587901361112913603827542890587898889303554878785847657564571025259989261209133746354842340578420641029457941850274229227389460111321258825880300001367818827718672974469259494156620865451418506973213534193764173767643203873981616490846948015728580611911869504190125939298554075039027823662890311153762637391116971376064202756499961264576365903709634711901218498173789287456286521192703090024262093391524800996322941880342862557417770648516358221585372514859159641770794767028392221897048593298709908033293570835380940635876838156476099525249472885193435217623060889004472565590918868986857478718944975175272110557348245211998547456624788749040572454389087441155168117810288486831408755596960084326930193569424869123100833757104905152783846549725195038853582515485035392883432995171537481239526494445019083928402339576626838028377649004159483005460606607300770601591685207049992136932810210812875361500012073813095293377526644334317973801563165187012110980002960091726859915641330739474847794093668261301072813116357285056922973523814958098352471852300399636583440851769792946068648365505891728432304040608156197818842922343901251892529902880049223753512546880400105022648264895487328026127724436131337641438793855550173488411000603245840724342005083082305935831452760007865119296588202598775015605492350243388698849749440770530561599854297892201475394434765764792354896954601747345563673251783887474029722000698967859781121478643249711212746190919770512351578986539213487500698810140416040447362520411687294616960989216628131383827805266443944748897170217210147731989710620796310611392036182793486886677345633955747869199774220025761078853053634639078195962588297237308149788643036780586516959028611025247640340326753626040662913706443481519205103249416369795469313217714660843551687724729360140854134036875160504522912056591131733849612258369394457556588798446989869635212040383700075808180969722656182570133988266681613484280338532534739632105612501784854019673643476542684524323717969585102056193863835796581804762648840790419266085073958771384953800699771325526423536664306802885662820219350087821615139786521084374027351776521177752104369127262540039317167507482798758196138863345178551103064977226712738904249262158271298853043727504322436903546840480271291150579150056120307417113076920593028562128836614769451475405822205190929938924888824426104476483874911896376985868759118997795586004040635261592109209126549199015136225607674930620419089398159153957660743353973968476292973953277805443971687021514837340970714687187270467452581422486580683743307161993953707977290794059338146006197574745147143431674808702948635146647475975488687763771522727296965603838163681982086890583443676699213174682780834096266227850651667264298483932137745147350961704818077322159646856991803241554798037275742915350872414571082440592875635006113626882299415640340658804767953878883528104465983563739786856375251864146896084051624542579765590775836051834269386543445283956108686132336933534617278442393884608020499244021753984055589515530900337070956778852542454871715039384608342555040681461350701994266711780361172007079786198540199177595484457737830416496581513133789238677888680726504243036755983274184496391530943124845676939673759257223322690693971391740579924350467938552598754781448631618235463792325109104187334123196275149191234806981129773528150539297806673137662684312837056411315083422842159711350675262848318654770134345407181650142184592968623485942462189930779162797248782837771202251772475084473963533808675135300229819825254553348671040605231791962736767457047782089498146391593617940769824441720331735703842795148085648391160342582384851892795319524267947557198066773832449022252325820828130842798064768025777308427503566229611422366282928893854060424253952096291317959153271161444173067247414748728722223113753806802367383037975229315191994500784312967902231775272399539222206792848938169553435177509695556410666179336831059195791912771778303565785091957481965391123949324801817328836766878359275047044192697546177687961652018738290898293531783505939778649639517906460865197836632057472738187022498585205098126568331877206625458489918034235109491038765812788718313604703660920463982882156097867081639317266042729341525502907911518883265605527176583260576425700865706727728575285867161716016477989300088063435155289720061888240258045431017101230698684055077155218948806417783204464041968719678724522636556089137616443192792183970180114624286644936780402783036999536481840834320788155538691027136150481785830565943083053705763219998255147021933828397495265854900885593476120053421419610739070879046520097766818126990366783641548771525641530449854798931077666025084492116117852242903021103496233683484047697390213253552300396479314267765803173372978184453146615198610434930390782038621106222180514001325172437328131504350903340551835765942602240469665074104206943127253250360047495762772776844777573603226361381360384463197412577260348506865466644695152006257732367585500995511593539350757687452912745244198148037272372825349433681026401530366792258750708982723202877926582206563399759789840164401921737769359391848338248994082241814217842490629051065741749067947567189271241858615948344986318356413852933473214873857771977820155558457809092675715843722430385127888361905948397074630997901829278178540049124044226623767381202950398812746481932229743545894462259245090771189737607258915352351889650314544955764025921266580330498153467048278885987022748862577748484772209070024513261645848859044793411258224001310935692088465973016698315762496034558091045635152056190207086506452485076186690201862544562339780751436800772396469476577667302391111874489122968254714586395031363064718008139382190751791068423397426866803368461910493891552445698243792189541269141455777763299160181043092583021887432385659509225644328957739174819982907146720479321148406211170283565909718211042557869612648215111777004412120074317058142183874674414285954895773931418151278754850513222457921254008079747861390280648121010682808421914155666820183898808989919284768755287716360738047005283349165551780037291032480395304424398463370036892754148437211083771342359917559585194946444054551646680251108641336977729158227369019679167291445824090786790704339976236630489915541173239002814676083742624093882676760452166580657733900308565807217981946509305495860665030610766680272157522365287183632701855765835348913214333607246726083342145504938590929200524877375292779332757560502725587918007963121269671979950508039099832663395789583751951204546975765615752980888449782480527849081467521134263774866504792499235392125789484293902313129779747035197423622495484049101145911301954424754104535597146047625855401788481474762138926191151928234703143626080930849294347713735153844353246182709266174950754215525399573791380019639134864188256076401572769763469241164037905065953523726744831938070067382264785820735254170720755251060034949556285841231553887261361359166288216549029455388735436922233990768739896538314530791638274530493842565823759053399194169286674151556984700827604512297697615789853370327861988786236953895753211837088542328695283388782458906587468511937422930690660797110011540809828089557118061784672654656719649357696339677219592316364829992386366109757340683192755584685416676633211259791930430227140348428409178769107548937232321085073579928770181879315321899682462978055050372317566035504180979457881239534135508105407158078517209096677882938451755480766121386768755095360117873964610538977111265326320078730986619628566748144889251114877332686744516615885812673568370297138360097040667537684552173073843932493108574560341394999579109813976636832866492283871864816384838639399677759474710931896164148211148859701320190781440471988568144549373799002136720575884168255487888358679856966973775712376488810147960565507494611862482846806958631466623994634572225949107273671412704043600989395157740101106153876317167446858422128313768149848131896904909150656194800686066712924172768957472718365118870317243795664422643823931529815523990734231763217103022384845811755887518805574046090401954407148076942924299451490447325059923949856487213243199386290445019960611916631267246454940266054774004027653066424592041281922918261236834600054793584983755866347542844949544751631359194742757002940414184995096331329718348288180901175628511602052210617458142555230068900200726412248292302707700509901724651122431096608989666394355455000334140082286011741178662218018922794452607370528470929044771228004129488558775839734001809263843740417293941566402121730438932570701505316813181059382360575567489159094888907413183558199105068255364231477229590543315815419566732573810842939761284046169313111695057161504819677564016220486776085328445414435414518919407964152016443406975081977143638619559709184737763876540947060289137259178855521238300496341459553830538201305859715110565754787685543085362252165268264465076768300826198736203577628312423329536510326280241989659693665773722234838315189272635169541899917964566045216820482654032557565210426571456471383225275722276014503448858790419779822893950554941664707629074525789661365866021054813480156020548645809633912316714755025198312972663927719677300200089904301300468228873302639796866678818511022893162729453891600649574206232764677331499892538135713074816829874619026525852962662727220513234314372503804340803804249334659003487264957949113631355213961719062686520244785766044747391523488488012043835679374889896277548182789341769557344778296807263755583334295837409116937540333351760285190349662921654906729177466348803976317150764643665207701365981687926522247923213919005044441672246963879716256512690963766053962536317074722901952567304089357330904706678999410293740144913861663068605269889471844258387994633544998812369534453917857454495511990421914854924225921159085220475872417697619717570028025840896835486730041562859748774187355334462185107616136555801693337283159638354213367925313908232680934828400652859597943646000854114317907646022948138805969080872021688218798913791397804035953284317658667812382569808391657706539033351111762100683873074473136782291435310140586571750914558563541281515441833248857922567808898943974006077568595626889073481837012001977825920731567781416343338736330201827202716891769181604658920648020750890958868716019849373418306136075293882350622203891697364127740653471215721182226151719629906567592538672253684642368516642004869405910144989117547223838404943678241825238763649189618408388127850606786199787422728422843211310665410859068268412677882204465956795874696512268493094172867869748990648348170652169468710696084415716064116928973565623183410004738059337376824971987083345200436151928433306075497152892048818200091714696506725397782592820051478841954134539330545196425890895094347821621656085069788650620733056520948772668761755126874124199000024012476898041031900298626704050627007189604757196365338913726405571090056988303386033586420450660252784136922767605773802914248404456992091691860638654095607131312011515935929025522838119485246149479415284255462884948930983914884677200104296775526943955647729922978662285571013439942200594642529280920913071674091320432306755895965655582478168988734025782744063848645113253172874187389137385936406253049817658661216943356974904970387643171196132263742668473293781193888933191053265745755742846793707581906606897892556978636170759454975730583192613322516523220703390660689761586419546469011556971849544768793396040640174782853735258220516672941048959726270010096047399063445506324172548278187225641426436393318076895378969827205148862550546540782795592514882991696317173563850041481026121747736743962981696760943325583599299861592762945420633155897001949792978327414329436305057259839853120177811988060986145865480180911287887217375222708367265364187252249428574861592158004909084771096727766499859602420222905363167191074139520001452905357094382636167635969468438829320529250298925817218127559169798024127982524869181105487399763229291292918424664201102433961025947903338293494397213370290006271731890421560792332157247396078369537922178075206297100052258612267707961156618500627266536221768926790762919035762836679805550853357809253181843192396948672682018005218652431805379828942420690319796932450640410794743412963552545706458719160409658979167537029945228463448600216589589241530536791284465716846135756108933227119989212802260416632845345633247400976456222979322193395417156968962859620418776783067764312982022706451160804861723766445024764945043208487196283849015663323289887560391140727387613912069666712626721602140988408145851080632736541278439900891404971359355311986186255632392198892278618507600872539152216390030909791462031953526672622094293714550519680042110217146790497162806691607159878428262807931392394925152842167162891619189821176415370976187546600346727934571530675285136208900231528666562447980184494623012320760176683458062165222429561228096025142661628877577743089876196289351536981749079996727221112389403342631231011188164086308704237436877347870708215377744350743790068367247616476887300324611463607509750314464465611875880788277811702095841978829896943252924004668942836979380158407272669719296955964421955909580143117468472132549109449025801453890393118951633816632555018536466343233578803579382519680717400286458618573130185994379661757151667768764616193416342752434545580623166849614046434071897661395578113490715957243603453485601375983349547347971288303082610032842028450593477330225046679610485998543380578696161364003499425941671934777612476793782273139049297960976480101294493888852434549191580107416658123221703785763579101803692688023865892148173821545557046500995088497126387989556410914843543665000666514842866558733490116972852941382307181244916783287810999934392445775353007156112842893043066995348131908158147160636657273715964294144859198081099254055520244201359281008096246311567256476533415307482832721492530611166916508347184316069570212126368043624820652733096859135768195695642629534768237404001662152153688316683518231091711743285834158985666260376145950440913586400427243848021530305509926701441435312718699592601744181202137131329486960793067376220290032717592840818483133695838763558426913160398169800828767721611063379417957880176909462377850457118786536056781211173890534069562202827464186999154068844118824085365940640308160084587439458246550289368883023552495318782235650658608928039190365821335410144906081248060741232177364645069225525077814998958540686312040980320855652117643914414322047386333737564173229881655753709461024339232748067459195458841332347569560931084028999777887737047149273281867306156640993413574068448809586004994551045761604458499695970240679969518247504394113893999225077981303163001670376350680004795395037643307107908546214649333561097883843161075343581060411806907680951854798791308733807232360957373758715097579204093817220876117224398166148400264054917717127662134819027132317226390903871817349530290113053834839393219760139211041930672589410963846396779267222900260032667271163165375576302630248835311317305224935808165137599745673367395155323793768235922137242717226643273878741122595298204914952235339590601502292143114815882405744732885484011350939976724495830962667319821158099286401614805694939529876413708827064857435765633579555929252963609921470925547646173743157639868207006383417034710627553380074995762696204049604834285708287536526999194763021084136152860095203544197866187141477747793906179467325994851632217473342975198491167583175538859408456802570703283374965746501194073544811750608703374694011934329992314517749468270446664399635917928552453423871710802970788862655591531212860625701052561125307266804661241453065659292598087757917661842008422593912929756815532755745875516922364686872758331088211712055082432943533758336899757701135984809842555965948182043829589004743674236031184321461430726505894042583125393245671691428723239933251333861903106126157793978087965468861877581650868177232084856889693791025040488543992034305775912325206508396543944979531481347443991517410689045171189063757860832998369653425503332699571814570378866811872865667017429473433817150400296287868540489308499783275526652414324477706378133217238147875076399842132010713096633570270387536634801291622318777335337492825810794707094087896975882760204502861296986689617647525915601794881552681094564260796331894046370989664276156465920589126226666253424959089676958603613236078737341654560749894639545417196491062678601954004499557020598350787276793896665032446672333656936042003616761538418184079931130891821509969387675566557546345881474251937408351117025552422540729672124576085427793362800649989395705885535383873516866692014393960832007112085476652303949894228285166491519282163914070364593159756395588563033840641898645865235479418629128541441678475266203122971457404258730568260525217765618226043397350650126528922683873424535555980166537247691509476641007872401041951386509268930854393392539367484396214471772337370876462598133277993225289288129017828974605841978173021440182944566330830694840937829066102082591277745359022991577716297140193277100455047732142105661024980359506545593643637546841663572303178295680171688130164890060764620091013951832713530938010884938544445225410012308467148009396328380695408981828065722613573365644387083448183322344115484123087017689249471326428498772522091744182013326941622218351318786832461134520074376108285145395753858943418711133582848044621889207413398484332010461211311411473129399362701555319718991879002677351508327170774485599271671664597493265757310503159617156659999511749614636629711320867584781366157442554521549981871680895481788027664118898867603088942221973007021618782695574727518963150208469524809548193083019526366523178084341441793030447879389159880188887189681597723334170350807990267823875726978161852868118332456614983159649642412996069442999137179599656638560818089861170910608755904503025442399434793938795753738085710111172035956714610312161389447035444397889241317427646925745048156240603901425371543751840345917759701898464674879709563839138690216232726667670070001279446231738243740863535751882180276289849377370092167799194893984690155554096155567076848242169110415359738826413769210387678165555605711871089124704866702712083850831436158931634269677611794778676093573809951011199503612543119364058818935036503858912550618468538247945389515797607756025764758364263952580938257613243979328147608724423665690843344086556864941864213661864626580940682226092279109635744185369846077362953729781843217279806979299459783052265124426684894257096030222868910031183799199185653151445270328460199739904068923368766987435125689982130877969178425871841239364747554895126335039149712431567895255957017506550264694272061620788213712965787298935811692009969699819574224207661021059437002640710388346475452901837073428783836045972620486211925413709911431523294374790250542470839634202083126904477216646555603098067527921867632084685390972457168216395888504527687080243400989655006948780997954022405841100604427945105433662147939330430680135307143115285181470471227227308567570452893444744491762930554167756705791078652576429490272164855890302631376993913153149164748224349557249852545326624312138698822256290019854799982781824672466512697239687076997605684673911035524612382842900741888506157797266569868755391126626362482791271104872717089916240979981110059226173754854578272602043776529915233498458843535728300408675211500939335165077359547041978264154004199812416232725848026249984373231288004022366425393369834578332751635185682843463736564170988189054425901784810217510682737942866191124799329372250624708882158280169710356076393983274089691026421858095873586968265762400916835345719623894669458394702081548486325948181352995131721606609108516890497043027103062325226815506262225848879649504348425083571094350532551785449761697652784727420274163727423850960473671683611126427848710609745576846086626531888984885452625358987061485185848736600431354459024269611325407943879728224958133179791246143985253032347185014010270349535343594788365580844380114446422675000596796445796147401832045206451127444911433885245270709875305458797088839520038054113263477837522791395779529836443249921517093644762212917540928133295616396272985777269401687857097357863651068846787898570382566886765134363864049797246363040335378776299506396611407870412940016767512446081329219705638009599983966825149967669909305894205693195381236791273748531979113655197282544720981563573529039256232200724006965679035208412904205658310293209085888037931274318559915748107723326413551441674258509765117800245924931460036641994424756193651429180058953197138347986355053207353588448253761722538828067523192515975868545975536464807059344658087405243873561851158601397529991127951204032212316764482188767673311549109625147032538468431609314455743294202327968918075063589643632083356782624750202419616950163856046113435184488825308855927126936606199529190017313755111837526516219582637870701601187840786943624287640897902694488828992139696291832388663658203232147540370739242616553249431288960858689728068309682478363919231778723021098989854343566655225080941626544941253685402417354154860997637187528720357520531348631872637320852538163634243367517776886763064430430677333338739344560977455830958630653719899045709403441433034044673817977691604985770313552541513194768885749867180558959422613134886960583676791189764658949553727735498425197893488722941744751373724314453007085997613185512664616404246812192749734580813596186162510250438689426695532699986863657703279072494834507802401871770058020354109464625321988587770074777783959933931805709429666182639815186119911915343974239706772953279802179006297236994141290256717757730389720164802859760205070816022470844987891616620532694528778386245816787410547974556009065344431798047940011778645991164224960896258441666241423003781254145180606280147768822243531522734630558270096672722389061271046367148193454103310178761948315225951465909681847637357338731088963085656896521230797822665604346827570928392632170357505425312713755829292155395786856934852815093665332821829272523315908548515371835757496885786551747774312537176059682007166708485963149888420974950514793730000370563714970461090644161849903908611833302012846383931459721363337288761527411740648969099273414657201054769352300123633529473638418802992029384766199919214399889796527487383489513571053754763743878884505524812078089113721337453445584625465591295445040899423996670018572732805784545436263123877282086502940618797738742334626766916496722538322683607688822015669172542556351767771713946269706390271601919920624167336630992568326859633441982755075510059121885200616811217256902677266222369497000039077585948449833965013322055333348688305129672580769442931612065170592691262004394140446120785705284476699040463356092937161541629897194058980531432626197036878690912026481809319060096639295056818922345437165029248626021338964911266429893717902215145855938129470005028707471061378987607039007514048972463452245569768766684106718005762748574658934499932895141886580476055045003063947281867949624728259820792937505928204734549575851694791415004694110577645439273389123013810610870518099711850075458853993590859480545704909043707260702043739034483769034205555318962294493626115031585591868740102774077534934570339525956905160168634021268059022422510619652224481527604535044029779253552824802835209726900842068459402073855732343669322524674647216987605000502464709214238076807405436562825857620495559177690139232688847351587497629006833989480332782903778358868227969594146118010056164568896397635080830676010204661482500932542321092907946425757601277429653960025323897650864746085982305662558894608996400554305629904346476451327658571084834436573879508478913578073451898850881360141241972795872508791393151162930553394542788722842655987413460128500737534834124568587274339491060356572738505425703597575811622470332039718093856444420255370607831297053717047429515497707890186328620818026589343361296786048288220010349990726759993096606676965815380840721718044702156478524998975826373280992605513689135940783981901238446008412504233818338329398538754806473353092873903961688141631961522474600523874610230760612581876176762692972562057088203672926035346853562202042105050427042032249264676617151347129569509155188627174660087356855196886813279061018247683634030288735198859904555312415286912222997747952186742846108297688363256437128705621918893745226219506596397308164990146218511171407630328588050910820868679530319352855995786715346453202303993349361458286121598590701143744057265885369157661671758522143834160398354584316483390836631084629829318839424015484975655409531749843352792067084482331026985232787248096134799044458479115932915995228688630448321095781398563487244688795446243039505791272631228761159567900985358315088710482463801614238165904009793281832754940764967416103907330067068978229577206579334562028063747593595181730558531440371774642142197630498210675772251817625940822182561885574096141238964067714296112365468763309759889643643851734214657249675321701948069147727609422455389133065353199424930766841633282374236656845934769216384736891219483464413988761806235578112896836658399487318223413366113173335226767417878150113202107428592681531537067982996903596087564998738783664009073198444021550881506375488701365324314332804878455583482261316746227693377073538665837740100519942594886204101266997002640405314692073950855984975783015701031137365028658058274967420381213857269085019894125549169698658983833273329393431680777062624031094003582227976685593500772388711588492507656876509977856007165515575693687319074903749310093293882927143405493289708718618692320579014477301826304942604660309909697016189915658674026834187656740020142953234487297875459442890652235661166924554742670967013462552601101995436173886645853233292623846013222844629154141546495539078908743609269492971425472688111023185142159019060187515099055206253543998178023440955161830975273531978204865624092747998098080348573519977821181645616359966185454454172227093262878259901882405506517112648040321696394248210833612309101128250674827076593270267659712034539851684585914406811822070743090840058599515515435368086455023030516500385435378121581816562343709392501561537876043009238620221592008836809936028154189003155611808248463723357877811599246808470287029072654523102067231796023204527269238615441385838130252289768367724687667520734061533845972886515647330149840988441038152822325261427303731915041058268008621074216006440503271787349945056940921596290053042057574280673049860975882400287574187399460821826998502071417261767721372403029845131129430808722392460854756777128256801368296084376662456624195488329780679759946942541082774497016126898474947836455771330893411901311449985640528967903683809135943009525206897905833856200851599191763412080821103476322197328160770973987242150717681644767371446931005261966614682025682547897273103703007247619311336051180921554068890506797745459867844630530618020643114081276329992002662016866311538243871007600596921831079947277652698949448493884627264899146202893850714143037670680877238993841490161634598106766864827471946589570363398508541197234280611504119749582900247647458683903803398863857640335965157762401897694984098992878245339255199391867741758376093686257314257641639318117713413752627277763631411717201482209995643368371229276904956348794790074539269291862748321393057578487555672653855024080762501978296859805907975130948987574185558833569487276022329596685086217837110665322480144195339618784019503155852347286705288347542787268523192530877870262889464713534692947924873050696348988846235832346834787707475287723888711653368469113725615234969487875630411396288349091106440380452306896307160044707527179280086478626392666735997201114680119237255669512901723527338011710069455439522444281419639806828237992514000494056492939806985028822508703437531696372865327027037533814020104937108383650804513239402384238188284363411542172534386102749798180615904165546391973676185622629002703792737779837360562823279049237765415697219679908126760820651735013350382168703872907129038993353749994964404219996490474768474821539817703859143236814251995438049761605059745584724041373319654629190205172976265988976334798907595352694298792855192874001387481168237980016924448062858673350525101686284414354422764998393850917302055884059402146424854602516726644659648415898682062313937656611948447353176933970275059726374219350707050932050528757214414358023912091009275868901117589223183723234868142372751645655682760046068577653009850857109402810485616535188427908419572660240753400259960605437527265343587752838751144320495469779414650577572563892000991292846007988543725026112361775197788446797696492097809105768898599800211435220818069135480896641074040101300589593644662866548194988860299654879655633738628682125379607558614668240434532690016357531170717822239732166790273933645676304555961708475965430838411322701328286475490612704141454925911645939733623049347145658191438818872879604881035822989727027250594936168344220638819831583763906413426767181878537610280907650561934361791146784983833788952723080221164608757805058377768679207569694377194713037597549482526712006510630617383536195927978434099913189769617895545415747442066244914309601330855525352095658584246442868200738513592988880961847369650639619391858403145760729518739864072168048859913583870134860703167813796835654628432366202976033809966332707278942376122423379093569769548044523212081290195093021702142241123866343014347270936365133480907124620497186636009867116435017026732334005440721144922250675235618935573871688142246310511815650798511010937096521891599419855414051912671243204722532906918756435221231561914221618934553925580411995071068020700416387348592904545299786663710207344928373385276226732850705416277743475766444145541325179417262818545615392775178511610968277278171063227553039228718982422108642104606176619134754772123325076488866415965838132335175328106716236665045138609252819356243533885019896102730022396402553519636465680132011931038365217677564749083270420452834708467005004074639106513166205520197329151211301685415628704930495680718847550932691277589251773857866200577710486673506769571715889464675478355540509005323348906692961403185659744526956822157140494210665777836308929396105868624987773792079908482388270572215811517308067664610675408300359809567794428493521621509640813471653002307508501849026652401894016690539841782401059612651861672657076376132204230835644815855389250361309806300831911494666050256581785592071445088940318031677795812471443644026115792991893252726451900921368386366761388989119037827608464390536458034023147742723616900353703066479887311244072132450011592033238719130176215052804806519987124734876397461107065622821393942298663127168420458272310376778774367155362302298846752880433872120638743606962004712300100336262877705911926562254939773646206492128144108576668380569189789594438264368753849966083016113410368505259149435392551007045889584818480273394742807510897786016392827954299770900753896925144817299732425102587628679131915827506484048519504440772154357693766865322633980794690655036517606998326013866753890893735515715531858575079653051504374971644375662244628121540850505749598524294496635381606205649510539244115221023828778026577185329387973874071812497450049412907674829907388178932281629274963718826695326708072923807561742654935346009506533441098213927203427299405554108961279485411237428675088688876500892817506876351594680082705569698228206891211440252208356099817541633193442738538479196109256435891003876428366999526731134874763195264916184113739128198011576173778630768098754324370200882303617528081441753353939951903502966742062196567523301926123972327212163083380597963598694379154536818848120474089796893827997910892506497528694259307603059235389027332417924880340405397150522373434784974680782321224050718686885424998912740100900230961264164114799694280468789609968166053125856045267653002069278529171828894615813215484548039285527816472639146450089905722670451684930966381952261608346218035940441007796080539299239184656199055031633074494281672165487071695402044493498144390199177245326039678499218507010535520920052385544931591380611399857735458155803544367930193617836800435098574548123873719803233198600659587349047186572215776735177791830146990107418443977140284031691029088746215070305994879728921361691173717522239402597608173418780477557992136311619752866631742805825721361419276530925439137724537558879553776818057907950710718210626441487801716042008875850927395029077029361527394497099817915442808728365006577533615580471064693768750134597137135526447641532019107396292014037115155989536382312399620451730630494014788728322959429664586771686448656128061806256116239898142841412023523202905917781298269760219380309836217326929447709314823747583431713971674205319934499198247204044046905882794610400733372341879152692873684714785949393165640629636216574847329761354291027148318224176244627707517298511662392803541876559210919978718076260864373205775325854524497803397913904246863171922322735786709685447131459747363652834268621010711791201819243600564221830553694185296306708582106999937490059036971187645108683755383859678509391921649897823806605396374712915608031196050881934700656309565531093983216447890961687477301092578675024071751664394307965775949970461657098529552072764033328868015100619342190349489868958974242284258899657753803048128666126907475962018232629378469417738009019297795609449148253654829340021119569194326804281663971594671776525233353532941068160874852024192393362573223227732048680158654472594783364533687242152599682308268329960534654992797798424223233082514072469598899104949013184028413371159042287434868952550021188486688993167165495837657673440630779275247118156301803748159837039562961105429815549332792787008639277590931154557931618573269124853530446661774075834486195691412564818445434193724688490924417569098223746348833048527206929917891334473146483889008489091191403425360986858578180523063144923514036228746190373209064713752801049271332289591860890087458698161551373513838831578460246204528838259551267064083804067954428788501813688629799549533664053273418328722009664787762380603621310093174174714153513047610363519562440859364818774239417428902155427300259103788891643368998404327463190104666000958441439642581062712721428090417694511243830408228767222386612158883946163748525754811041136787348480531253354650497111688279423377000173097992421995567825037628373523696777222595802271696740170081942792763926866179224025545908515085102333158154646064686510209151675034018526975651535045396983022529862120752681893358722402802890357729759481683109302383113258164746903868919537362735673303376537788745062729879686959079940085778676030599213221911211938883888805470750309679954613916732426188959039687936172778828358449233341230210478919148416545403999538760163265983421655234447455950710188323934750538067230148804917385318572557561263943268089696120688377613903301133012352906751257157611431417900949186629561914938116941224633684646020616595842510512178808907533709907172334346512619917213086883449322447568536777843361775767377198098942874915648341730504685145167246797127767429454706855836168677417841201711076793079844013321804715402148729472613466156351993036335322234332906906267963775778682009160337802281924596371202619745756143923812976814356634384999555976884236210366136268835149472290053109876258485613268215654927204768150593403446668452221223210851369591508886274137980160175603373223550988295455753465894564187616866184692587696277906778166948260943278740873651524751932034981285484518458170109307923010738596590373591697871589771821791851029463288072021397251248417381606113892225620350959137719611458057451919961355657386641500687305239588977431613174689462707634243812451655463289607787610344423646766497303128354502935291287095951099475289114379935773077319405058132516662712273968830297845278473379951971282139814855539694295196320045589593476018209330837853005879332492149057026494882660737664238427081096433226984375425220880400828292210180312066386017517770746223089699930969764195782528316420300833705928554110045893845089490416014762181897920781025279798091244220419970341339626658857993136683680737333187221109946553149504184598527441534523853238425308242102889308676830091681186595639139806172467248387899077469422044410091737133239130492137830387027040328986770904202266527419109945849060923913399058886219021950307325379453266828410815252617914729248578050270933938174676639271230753601586400809999589576178629060188531725577691053619007730846705182497113338251149732428513563377944315476279921222520555281221168627707272875690527158165840589585744024578330773129043103376485203796420794349868748025755727069989030634143182239503157948497669695957011044279451190180789222747647110709873794396224325702059812232064087497867370425657459062945781133763981876919728331906717186409296449576292003514104636258648039482497426117722592291304917646463259762592821311770534558094622470876736546217677257371290449227789378338143220882088537231173304607730949940038489429929512503494521433440068388756406899513580534361811306685769110340186567122277153159281086790887264319059851501693244932469088635451828170319508199971850396058680010081936256744476886218562389795300230728530598892927116558265395247298891221207292875094698905705697960903831916451448516279830385104221818766079059109715658611646729902858864136109310934001305103410431792233285460789417052096066346637006426862660423928514963738756573010317713071982678819297317611622777025478653657198392717403626395214945413359717863443972243579045975964910468618448966139103384824238438361970636032726599784292555196585119191706012149576494853941181524808344735745942875208603968537379570151929185058020252911585984102469290336313439247018055906806268055395687316717755453652525758831882982212606137071619214643480471511653713949780925110418943174222798428313500649442647001936030801296309006486999163687154708035234805891367066390854872347583081138390451522723254495830642967533168893026411592185300157347027515590517480135066337277080225980414074468995822551618274088324467670348888930384657189485840905913420497354865840505113418330530000693583518566619860579741045413459390704499557057988594163726846499243005890486763264935827964846777639345583370917691149700766947694988390192721275410513306011484880221904800418011959703400622851527673757500169827615603145191375339721089489324461145797872473559025808083816778667298710911669516577564468818104980659252099596648132087094218409824471134602933057706910301438018581831786114707191650231974463391625280591276396617817953828389405046708893955626022134164190601710293261804570482172930446581989064957087086673779764515634404045550275410432130521933218172957205278930521109792013641943875191608977561511332760584779780011531309023488534894763694357473754204612318682556033850723828727422185066336052271164296116052783907420592058134665009208121689571665616289144118575946992238176936287278876078783075533812075821177747758935712639090213161179116495616044815784708542327036276196522430689051153210984754042294247212746108437223174170815633917822051088789949432756052170612876893720703247660001489326678442548790450114944164345759010879014941317662820408874073203925619332644855940944737479644266287835638666692859020282545131321337611541996659384875726860966871370946632198122273636771370671015250021305075919144699371205455367499366694404610404018077014859281701062893882450907684589412440533966358835856450415988229802399266774377175673753486891689140962809587127712318172470646099052288236109189928778364301532661895362092750793179971729234305418528887374793422067420524967277852581692450982253763425567249834666248475792118497125288086603721210509866771351038888996845946226905453163862238992934733371337239701737431300955893901161165925646551548297510845015802116899984998232005751912631206397891263684618735633451440586674334201500597886130293235955071966462139099976678466727722370875246455610486637447903324592911883940519968530658007422279766994367556866552743446926421914605045664901195805018311490217800260781416858321950506344341190824376099365719460107811398387512108784798126705426895339548911532349861172269888526868590203343788226331818900016653558239520977378470881126857943307497579700645584887475195994986482498091087392802373003369183602360105727874103684366927097119023170523630999609450466989553363759552080782352196138827495078102774360683445332965503067810795777147303821510243505558489727676252258304588976040653591667053670130327378930230178255936416857657710611867411505575914874995909605159768410838320609765395235110221281868429031706461512464672700107384964191107014138140631849765362759527627006131839571379223797022757251338364028672537981766495985473069153734182343779270261534257090925946311978065010373928059457705772506701273706824766148531581977049643232469152189933879466292059874545769448483093895243059539204520534143607797773679463037709521971904708087455992309064254926299140912837008216753755581976528197193938864880231071566575112824345327279964271230429111463352293895573900732657188907748464779705641252283061999458389475158076540317705494505876577873556810091893045972710142279944521183085845782098426749183481568575815594823680393972345382538763542513577258380997820249095489943672172037185835959509747072218007681325663861088731570098854098086767228854720969776826064687398452036174566492430812508551560147804783108269365822972125918304744291814746527288216005466575770104728550959433183068667103645744326219630196603692514232351197404859244384609698218391196555698880835267961303390839009146240712961324358096073004956177848892616481298716506872502355749992140501051845178355541026779719367152985731989131977245309683680665737628126686484639565138661830705454467425367243461772031972965974065241525900333565631090938042482828711700202018716164815198904796272807088677814593633393925378222636051669022795892356320399644969053588911448389956900382877000940748341906477093328179730922054332410085626266724156179079147325346839157395377433362965148814551805271632998150329115872942011016699642069248135554852463329300391521401538547462244534310608078185060404611974099983670916445984485028725012533841070480903075452816362850403198882421915145773515399606681079061033173279198990938225813756702629780917886082269544140275684616331809223491504064976030325747651995679491975422147934865260374799692329132314082907971886089235285564956589435246826840115804553857096512816036209952651091565248804791805291207082516532305781925339003203466483179680724324783770287039402164368644719560460748053115280726085995584795712741693130819380597468069398983146222359557014435465887321186887154801410005865590290325124673907707992655234061352770673697130103118313714704549417298040835945227038888691581253280290846051370403923386298686059195269376503973035639080846254212768751293345973158854088195569503158683736414117918593661610025508178213669784795417455231912267408745164367233834377561564273289340417886017093803955313020475423554368656895602660459823897738167877954301827169147218111030199486456410649831414200484360517360954743502695697396788509601053519328335775222278806997665935788034634585071739936351931429827566878142557886712233258242346345996156637118910547423435132487265133008912231121498402770103980979989424233321869859900627194980787106193173111796282088831898006388493706392624089720164865494436427957342475594150229631364189449832430862036125202730389066579215969639396004292971759802088579235377878272638160277740223389939575791042168012720926557702161105084307855094211173719026598883484742930636130593655816316261921226979781846857328410087748734584227414969300222005548481682508111452150808205353780468325053528506164490301762062265554838755523019324586450174428880526897737690198994977228208747837610918156199112622387695843546809060402305603730770040450033103650374192278229647879709846894332260987704733342435381561740280225611904483984251657421902815969668640148697849535371446923970275754208589683729567275189408580434825073742334059755724963849511010552548195748599807470639279986173209767557651249947144121657214687858398935321003151733322368771139422609053530351361876306219682484386372408073785505093184186538849313412935473529507326115300064434451383034989066023222791451126856043750659938778196309005993404740502774510057094881551660135945212330960826374705816618006745664251356342001104989696032084287782973387601304895638991761342012351627506054597136153768297359472858968877245474045410317173263850619308072529298242915849551166771652217585471967830788246080661728769745676527776387249098343703054206321383612006048194688674099961089210675744830775003317324739272103174250755747403995491336883468280387942837246792930080053811176894930688220366245059817876854149750647376677282813522724772193450920278127109630770938640966411083162071490533385885428877088983993223578458643931804629128001598458726602898229821913912555874210022615948919205317630041039777351513090597083308573622508520167374874640040227977528148989843953361430723984124975362729927775798476697482559013352949396843085635832567297128856732114806410757552771942150282526696226770727831033825532230793717442317040535529027610992775684034672833866357004693675178860842860509166937962498605746023432659249903954652244737340932557979759351757237193511080794360631480051467806698300880672474647026544598505304909154064695362324037211119936427670684476703449040723092616712726416273047425352148155683447174371829547155709833077855227110769454162686529700290439778205052377195570726738774610488260032812199130631712704497579323636587118798217831509612524109291060090799110611872422590137811975049208085548668528995646329530950227755228826927549375219292196655939556230380971660240471967830588292824245671621433934987054912994767163883208506285677559413007216852650028491498259250204782961879513302507563105279149586472953877372339454527630947371969644724949488391439595989065205446169867360015480625921339140945902195050909057109670199835705650481471233773109690730202756870121417192479721131799570542992460683392463785118956769116825110061942379660279229517010021682796175293135816874406918127211232454896791736694808674905633628998209106277311439679128781416049401769218353761907540661728677454880889928319374020834824915277102266624941605794693619835843038498265361885138991811235971557602706361849103128190392900176899984921937334248685803796196034125571947468986608762944658411166436875117506429413733675631425905429883422251332697679910099176745661834239517199108954370793719595826001821287252641479403154139264580395699547237638053664364510943817960707962813744006821089073466372859999142080276178633400412276320226308623320369698378511141942782578130986948086204739902435133389533890157302105718286496588041445572367869106260590979996587870539072087229051033700296983126572370154813061264040719981467342759626244632368094021585739858434240892379572961711180855088832609386217645753819283089114968097529458971654835571634102742868360994796106172827421757239524522065476299865615990348356035774496374665597362219981358421354320812895835835930652718344514485983364806299725361586282319816138818230367116563695758244988249652766214560734922586493864144460964812661219027380157927724419018109008186926620916033011134846798476917465233214941481543812789392445288054137305322028693416710004250624660575004100417095338553737793300464665027128645150523762769151470696746746327101758897428765770503501116174386703505080571889002014783782532005124154852719059682756649426654128309980686513578074368951995183525743363638138406262145097871246107943120440850695651296877638544578809952027496969386752776100511778769188738093469233132411487128308979966720286109073511662157213622327695127783378057173409317804112647537474876639761262985854337890265614813278440856386294694000572811724140994030464226040362535931354263442292681033902655007960224302723126220609724392450465242683033148296346130697221026633789926380513064410284003532552249636802487847718626958825020708203365256241405579128150592412654926349469260058216630714129616035558916628179991013303560658777393434442481847198386669468367274094807701243526397349773810003566569657422420786511129678634193666239237081197933367963127876680009677464012185335944779865646554692250137471659522866566726096606643435520618461531026331715384167644193591011185166270282533060976972635399707348712241496605363230309287171843379346464122572151601581484650428392888518778061442622641978797760767274677242963693190865000636109406892536512264051779557167116573537917742161009234237574601237121866029480514384202395658102712152612023336377228911688886720789308993626379476048013611454031293374877555495095629199449082073406684977856410869085754454011594909986339210359289229694093750176305783071507346039064961049215618344687205571016193700270879904984883766461150030164710464252910439968158906068326584158118262184266355789832435812854151008923051029091337096813130722467626386921794565474990474650857873517743695712045654838665542556264734944849650864665013811277541053240610818172190140918984325782179483866635818781832060451463136914372720183225332360752603483267321658894919788087481650284866709714974692211978971404164198854988894474374551527717907058696467374054822726346853203126093341495138917174512710889348749974960701389033069146293770156960602806740027643483354879534460575149624315676194792320210080090788631050281856443706403612574551927111667597881184105597814659600564239352452282922179920024858426330133295666575387638577318554373981075009261165997105855085139877192391243208446056792920615032156704108695580118199429884907052391738717699547190778262598062321381621937981315460907670719601940856093017848314188536485941688196422506225091422322977550866052483957020752272849164424441918339142518522213921968058216441160042335428052971831819525844662353388281100872597817738265461305358546855114865145130784443217810980418105256089808101479336477199089816076264460493849587852209879706788902950162400702476221473678799463246217237146171428785429138572136313539690612091547590268860075347932407991071531136948632936706342722728050303707078261128040893694120218773512340732829787014675503302650177462635908729601503250339024668844076570879507396472153553296986276188012654675332201255935590042182228276170414833480519225131411111939593329795348374256506251016434440281216053772167579670857058367926301595351930542032666254840767272267206691072867190744566046329861146531082892938108937511352210679690750778335191777235051228423083029786020207437744763040470564647151517695785061449083084150015664908349089076729670107895266961160716131786175975097768376191834030134838692243900040008824317599170164624498435022354006968799727308983934611825135752571446721802729918203345868934305709022095627241750143814785487887140677512893826669523336868567712547549369180011198174797500902973015004491799281716468440700306550529636989187922837598534271459416322831067664936479265551133002389371019470664847616303343807697796107785120231137288495482016050444140132541788003029343815286710175541081902735613316336170554222097698900909122987510765727439544322942936893916722588858360858351999765073680610467803199964390499798713093450802838352850193614006591467187929195907432747222435602398682097200939095546251605603418914467865020856194038114429816631281166782962149909635525236367566828948842113691713047468999763014899582348274160207491790530139462405658254732749247698278290915236166651403584667019505063858083599346276967854141481925936432013077304972858056371902788243143687510519090157287897662105317107384332420571480399858537640885216243053648386916871987720544091583976852188817927891878922527101025386914966488146561087270626377502838683652551800034435943602600450562853355191662962422472852200651452001779390462554959515498186816848179479613153465788191500960450906596591439248624205617550741305725408401975824743670324163302321502338482467421003887997547446704906667625766763389378907746565431417700548392048967295492525224860558627361089334891615978148453600502471760858401444110129366703431103983412975964549314581263260551710020215070540422815953934562368592864807031884622307111908114842776490262499369961125792061400610208309191928041284064445908822322479573539086384784208633699171601584070766675955519525429970050390846783828075009697031847296486668211923024389274843032227265497093891974038906167255009391639110724070170462582971176467571729500228438332255112868174488208682367935073420126296704285045469460243988842814621588283507323679723382414917740037925304681720833867037915996767375473602420329393428436895012599808037030579984614769305342681872437211833612767505290762624327933290218909215892115560095439445331396158897778100213347878873895813072722607355988458511015504979636472590596521475309602173427426963477566383840708084027273778466144950854648378412443632787664940959242634244157477572535005039669274296907239557498650799049362084542164736861905981120849184376252973104553404881003424721082391535762981751295108034539446758005407776039964799928476328155236023354701420949980213669602106904797407997496968807196538069366160653020036435074277643820671366693399718306149699233424927796190716309225046045740687576912327557646226038931337918980378939901809394743757927539460213617408641496615962899149258690926999806269610593740285523014702994812407957865952744310509169007142755140345484808389151374428924984596925390356348770217437064028944675839793102414500260023899303585104549969212307950426155573928668638534526334085566767706280385244213547474528073076690720547964267902598623501589728643130410275413162353570325517538415767779503744108337249885034667300897154869837935547180404149722965266179385035456460823348146342811281081147346598168652442169916134679051961406799346842183818129164307900108025365077860406408529556504826950116943657746708921542203587806725513826342845511428841084415740693386101270105775005960879922448204636458494648519063103267737057190611772430568064522614678019034907351504709933193252932249402085603858570301293885575263187914232585622776350681322940957790072594070258026623684443785166085351097148777873673774171579825970885130404670448519679513185933638868940696701380943010055044893192834577624488522873709042189602057635481895530649075332582954470997301931845980633785289499641728696325924687909591876507621496351653190360725003052927129044444067179338396356577553818107156660890637686826848504865942820136449204586867185858814732149359670123896537186611282113092105176509423505764377912098619078111132733434513558197030574536958686466820679288484939456782292777690359688055289115541499632679747242968612805816015368559369182928861310949031746771265794432353527323612821817317458785139828728206811085470711983449041378815318233937189835257605882259817417357612693464339056620784589082780008570969015567543034505228533070142277465099482082976114200275951192895484913235699662043575286664258526130631420040672044608919718463718442435969454463051189824484229999408335710144215908943133333846709143099759976084851899446770735701924063326718334770390336049277086392885533631741835333297000016282567306797778109292715328006729144327957529125390323242545571315294447251344944470815703736082407014459544664096265996969165992739087449819527630570877442296434772027886711053871808581525310452637719244951085963511699374536084298216361926804277168452594763224294585111769326141353273316036795736199208773023861675780570629800247468679895074560833469417510755676833655529023806937116182528887494808891479302146076111923902881510823462934180339941419565902273043456291954132136240055855756244658244717100888792468533444075449034638035444461507804431733525080980671096999002804512374459707927824980147921624023114061823253272750192719290534327898204476489775680057129005655704569994356257301646989709002538244245286236305619646260114278228004844388182243395624087849471734354474935919075074436505397644678845468936017147315018999647607065550197349118501613910130188468597892664451902149389708156191953056444111841139008067056820371533814644664912409926539095306353781588825783647690233115765793088567709046041719441680682855399557262568476843132377000810539948595626611777342262034608231606224318121796884584951379778239289694658043465777376422550178293355212989555817859204231519337287282424527449115645588273142092101904731581703649094170417161600043459458241232412769916944472475244633309760797276691042217265934647927734549170941218003746141345047581552602110071870272619428093396251818336509136890860570203920286217490828192150752051358550219841854116725073531874581618186595002082980067460567831517066686702902476303717576149533107648121232932338350713856387321361928483817491207098758531718022780132654526312779417232968121930823252141897784598214465164851823308970462421047203579076382561999367550190785766991968525296980322634647641564538545223406387222567955807611228677880201655466296115595736504825174997450195620519452049630494575918367748540094930077886401026232232800137568477513042504142014674474764040438209435325987568437080658887679531618624251037468245947685997634492813046894983793914036772900787668328502918444002227178902386185302267413578977083961987306541478497081187203655475340419287122794699001753742116487206052683319910420907100483543743903063317870621158169668420687443143487157817534685560714388108612265391028615438491125494710080241287235856835209042316345875689303542816202189125139363063332445839329347028899382835890438566782694539523090069318832557793037724370036157900081250050064486002607880422633999972446695013226785754695477615435210074924681360392727430964807369858151049311158430646635022292460363894555912182826065260472035529897864794157637721094639964944362110838939975319812879467202299183751528779296834080994532155718981428494121390382573405557909167549547852740979064162170672259055077425959827229725573395814242177770580205136178204008619479907537519806807514188964919817438330803395641116894013305685497767017472015875863800505760467188026991749429316265402063304672764468763106180496950182432296973439357468481431324333335152262972432193623671800625592045215704410698307596611787371040072716379249312915079293321476487698890369100362926525341652486646471606553452113723549137235994145572088640387540838410762004055466157070096358656357928333068736885690187354261759950043004625414502750890416165288312533603573338689200076791258349589472429245586424687661192695068093953946095853121495079422824523762882682152229186000228394780329316207099141001838400285870274064725220097968253002349504319535393901206765587998161506847238542243236605144299875963822737521741302463200769896635661139328477629855393962257790992054449071684501389465776301073854860584074012158146392628870535027910051380182695060945414961641260374186286913526283273820744955338716441186102382672513088620008257381096847007808827079216340611626114012872761307704793844129102072680358490818930344423676831084187526815728171530411544794263246638157850437922602514001121620246196052172631310767325128653563721000047797014969947928897097385616599910713420815395345296304893767020393257841834716720224596035368118676893388915759131643001477363429652557224750853977979093512433629659095417740449170124826472875171112331385784179051730239494757573841647538496822853066561968069146125346988697979098538330749697992351840960134298156521251875147762232045949068246354888850090620888013668061908193874921794215623107474748048599417879222376034058681737919269487954280278136127042426124911208978185150945710127697225096617894516389158903508881882049431701134934790960525308966296814101835042309057412875651241300832253905916372179502988291069059472216967287383602300929118646320780504665733784909076825810567918667712485083496216828834633901113500319343568525317468248525564164941930584608510722938851490431688026256770486856263757515183839262010394834574096308781383517146322115740748222003448676135486616440379502802942055368008520248068041772336074086662396174891497735640094990929442511113155568859380022446144221767815305240191293315019357789519615536575863817764182946250631553301795070821624564538471395591792367659653320093231360528745136994515358729465343540729198482656558507496458862099013473381189243299112943927147075383716736015785629995401607650620793972184997417865070927122414358131946019384055328806292636170286862988965669809708857079549557170270024667994365757086801561363955357763783496630046364774245685693653590571459134695375608999720575828429833656337267252134999490568447369081581401656141557172694214095944461132824412936609409364762043848294836869190356488272641671854449116905921540663500021692550312057178702676224093391389017433315789566162686553698643617700668662680571245091496984359940736344734615473089027272923142022293353510220390815710286615242467472862231916316622955968417407400277740125345609310783829964198957439858641646824740051585565780101730422256897875453061845430931759440534992250731146021954045515576617918525728752755343366630756450407945409293402279068803120439126074636096696768439598322500253937860320097115761232280230732004319478393849057005078039007957915733177713925194723413399728558128248100330887602655267139222850722494239664200297809414104636760731101515938129505607129969204438403700305481594620228639641697472316638923516523879127993324161375275542646373308061307319318315144557815074386315269799016950096377639285950686315828169138662161011782149995875537359340081701209749489478764027974560466866332122993567927688838638048213567031456886565286257201582636446700135958588550139743063150765180871405228696349516195609936658965296063116538831631928847923349235342817371575573610771283485358984011009438005573430963900008584969618994168245277249259307453755478817756211068531210887248210929780280033990677990124895740946826922587392732682560091310725334436937306658563269764444018823912272514212029909291681289291607000226858451286018799299353623591165104830729300849248760435258029215234807826699583311039825017297337008073892496083483005087782101672643742576901952216637248284103825418951604465654844594154173189176303788396284891797151746712284915584865318277666439398043038443036352167452158468834819671814737226686072037346279651785102697192819789347454011120477289717055787155263228665590775231180617592902573367122564374211270726323625644138913968540044340695258220213859193416241462652253551325312248496521414995594829452870200500294087226872442077029635632810845027717077264355809200050982192290154726132767864110030957026282161118638933353668207066365660611101807711494421953426934860937421043094639438772708748845325619502503339986275387789496207753895787388801663293376210784100395381541646472523900378643163865884437005369145523616668062644228214539190834440299788397809367108614108241838446406456380805679559074470839842342121997839991438982376881607141020968185674321266220537860471411919657637941508234104176184183307775806582105624809245555589084039325980050278883343402944294804311012744057597783739148015657709617240394091930736704278667482799538830509273787997518814187623816596532207849166410650279614127274616103100095344374992862587871666391818994883679989365715551649096773618668629693863880721133860782803695509696676692054321384547260930587604766204346296953620895188787831159476142053855984627584922877257777360010760526100180130655638543408127068553851719795996921548971022021637606731241608685810941551015813947681594965924164199680050001995828570077186347286725014462091252500351775496931238779463329718615499271714835713431258294444840659913227446955128059904564026487176367822739759442580136569507201280965648506633998115638245712030204457096260195923268722396766486317622974812391689315813736639401320623482213405111415298199945871014897501113429611945374397937860574173335188473225584183893902953291510423722780305569653130422554105790397287532007004496853847229259658744927900989794824729675128811479973732041139526638407622529075107024410993835563531905158688557924212355141693456540054000091283954945154058675541561835678939514727307824595531326653787187959438479071866004152391287140190656344893643182045373432574553845711831750168832289320589705799687709200031942967976706186768099015248937808718173635919434526082416351601338837021615890415722930571279833379584678024264209319532941630068430018686631917023604755732216755786539542352539559911204158423300117629063835710376995145587510508070729659913373513586580155167596274600436834958814190605440819054444178200301887221822183640476643213746812611975534999884893797733817204848576653843805624295772870048268792434335058067924967281299220488902737098826172529139697226162988861438566495115351715417583186146920733658423982173080026849762469738285950883303741084126365955239528468491165469344393253119362402525852471829328134603760114948150126132569317279734604164125747961473098641318324696006605379069324493702036236090532422896528406119032144765139884121489682865499968326230980872966377418430797599571204402873198323437687318535901920711943546396493935724321091027123907450045781689304353775920300123723080529757238855634708858603374303009723138448438551705403777570787569095815521495129623239838132242532447824358334085201219334509101045446597669395312500781918937300378730789206212196278239201976866677120980013246539946582737650132983728265284481450125314536165775418046456547295156007610868642072234703059533749037960273984711006787444574112850571586311218987349222313902421761372858798550112948009843719969896094090987152520009239610815324955147923043065886946445405973053099629721315675403901248947776696025812989513558604447723094641788067555164600095641584215093874201077473930833004548781218014487162402164981019964765410542532095244003590235156585014596260005150029334132779504871411039567356668107813737938647510314961341886578508526892447246880990217650385896624955663809608806866690498313525103457883180692504116744035795687245746815581987766227766138602110894972903919368177311158852245731994911588733438880724656664962389589395690489321030297651240842514655437058464345255484885030311121427580960381065302001370396747487390437921419288841424103461135070894061374143207824861919063235430866760883695175906469207590456858684627071743419434388220274571031611276160062883061640870439635944817621390299199996791453853477127701195970635980402058307576233510998864650185574441303276274074297121597305878783630544439012178738375830042827085761601343369122115816867788130089923637308799992671105945096322352265834565649590727297091111233941970095154484124793663696904906478172993956190872433916828053587911215834371479651274999497981296427282338286241528692298992837223620053736712278279238994808518947937328333604301402411280766341480277465667285661050124749237658267394655254445857863157313864273773330771735271858286874250238963826980151610346769015406287982529741918579620150441363761567971410340742389931141633787786777922115557601983813780242402594364248866304958337375587974891672779767416289733531394194651411254872238185734885494239094068076570270855575685459504242372228174611169373971118580027931678702427335069031200198264233170783495193112751564009035176434899252148891560111420974673248382499587630902858241554829594489279548151302984379547735023828944460695235324519899152654272055935071032241218295639118852747818879864266351488760086787815171781255542851242927343650065961399443502741206468666817230372107782991282593753825860890264657599615383999327722181104725747687799654327277462204114262814285080701647496765925934615473413611919254398186492290497814140591116157264160025480593271674674647756066444791073559452583486731617766877038713013330946466328299881441953077506449134858360192046474692487738644356998548756958125251884378605384519246924846148063872176580160771144900474671655797362992926999776707086793363230573106649366835024983006356300852468361620098322974684067340028528347069986374644758048463963627441686541717301497135675361528281030303321965085023481316940993011340278162617624288177324457260836846693784772798096775640969144278800414634211593278430312344371780974581184169996539548744266186463206979833000683059844389897528506965471846829710106020984478651087381829166391749965571900955172617195344041063063805617017372533439637443455567273517759442699283768360942737859402071678193721671380257853549990861018422625055036020620922050565585538323720444930483374730067345786732521758953247198465618938694981087216037239567553556231478563770774825611205333630966187742294043886098587816051842921687541104961245190812156644780168317219043584205151954849041658819112102435654082352562182831543731046303659049217290574849591631602027608563490813377726491341214237580361465595496896508712019186847461835024848360054691005482547932561578530981772866952389056391278095666093843505434957153153763874930019086167768121267374670499959094301101021051699943589934576615487892425715646414779251427829984914269156112541883232008985341548647300073190629623616485758817470407635653529837022732603175349299137503977581433160156337384012326408901754885189482266547145513757365162473583445383717178649238290137039319071888895835336439356133632204374604613897540104630427929656996300482778056936236281174028175662722324734614933147288630570037464152011446191135852715305189126303705150233081185102112586274186805071011396287953033906874191991285968528803744797673598342840074586962792262158274039041079320426468964752726371528294457388072876932033860550931315194581183374672689732812336138720752285988116278302497989031118267366338545683298549947960296543030816207509025709257295754915863793673684258675902115660490323677790138814907896062483706361692338733126483434077002646335805302512869119477696331896086219122583929545788212481416086294289888795167925758073001083802971477001043980092001261296606823580730806291308930939103583582364688031119531168549025939648504520917177063216467942425627072609730147077276441331684577643077041159458854835820525450079410418512996972875680680748728010335191898791673503813559098737445557469388999562599675603566877165800522195186623086910642803718020575934638075103969969682515167450513063671139134351572058440499674426789974226465910519710490411591141991423218144531588546044584417367059069215296676435569483327876903736363163535792819215659763808478401157210840926176588200289365857172540864131498746812686297828485337589316529261109223088704917295212292664934123998319166603964360887144609207023886906834045146212026356886302659892577703329824324763091713040039863121387437434282102481098096656229820604331227748776554688295398397942776584193293498232362912586573931376565714007296126039544738823666694981903278898731320897976188946597922791627227454319092892426482328170489636795548683438143482282143123194434468879082071569143676461006438893777812106208735686958387191561567417576326940189500475520799750609372294198314920771485355330214445519048549824156216711324862544805453012688401563508311370332950428293652792972879339141654303638819437114648353805435248835091707434040225153337429362456427102691174200479920845729077440614471312046448735029047376375559682540961440402029597910239068010709646475394703548297061750346106929302377818763406760142210518525526059886307724231034450283230811813563907012452394462894644992737733363812466859810159339669093601909530487787681478397659479676312024980038788116019348103709383850272284540385025510936045205289524608651858229187236595451985808111505040540613274994757318926832025733792588738877942181409251192036787398467802160773265768935550108210709310014043082015942157511566781523101868452294902761751435093501775668688754726048226056017324868406238692293831641956152222869299427171603006111908543175651135511349936521169882365989239911520874238877646996484697086910596694256660505687779526466574368743497700019251858731367642821491557144036107498832681247847745712029485451410675437383325748579911344128441224585459628312824789733965242671613669776383559320582963218720799971875399409451829262692490022388815622922138190426020261030048110641444481263421975914325181016242568823913283455669690386094283278450936550174795330926945904747511451413084463100191438039923428453438681483400477858217627265935120022590389015727510652392193070939528152359465126462120737685110209817391438928209596900932885356045973692509788707005877657861084981295559972502382284256187259273866237797603189405719990104257146239051239021517871788960132317570229222769755493338138521517730413689995327660146506545658807962530607782819226645422891424815085871784013905796922219368114573301389954625170704964053648150189008107353251335909833349775281639730535763136190834484450161876506734114748076645711923301071724087104654540892815443320033286852821288871596657557168099603620155364378611016953148235043600462183113161447930331047100219161427903944286874789506729455535990423768473917711324653594028148483755860067630216167117095691259314579483705027028256673491848779221789664213219840014982780771528490600461357835590582909395924349000332987846901751840830367835661451956951183939740324663049346539992641574208573633748704524368355070452195853156241362128356297693648919514541409809153437561000949426416931367944244525195834552867012858303970736690462242716521004682435518705742601391201454755860529195691492316356160846497276737583571965846280077076641434765920329348068268155091803441087169122474957406169016948139718327956260315444208944618650820540977400337368633673997108387679055946834779376501615896661288470107312971428192892807039158250690081614489001339199234518447189937259043650933408948797614945536714800952442333447354592480053666320851228667250013177849411299321381549630646361674299975715683591609555485271688740308371267033567901468717349757099376141801573954060312869670229572762724559814362231315027691409017014631028916466458781309697610674981923413503966776092108076510439486850573071178564966791413002193174643127930405309990486298273741151159897545685131907286095653584393490524271387399210660950347890753941787559405734126145166980285704901741521812614097515240726503553138235093669810098492759638694891532521620488560112258095218001147009598013628390012371444604524547721222456276829446007071451681087736699422625986500858222961609305043777420872868094913719636235687456239681414000368270076637736204562727353500669036010681289271551805902426443208450067375144874455185675516713293582612954232687096495569764311282857761555185823003475753956870061447862082852837525383614152407691057883447529178544198850300968156132393334162361185482546644857734380103859057928141821918006138646996388084981527077661466545111898946085861775251300584953644543977696110843526359543507773996030004274481593032016901831763300171782228669624383897217652464907965719642739191758601628764297316489247445071205412793889281643900769894281540118057913263403151748332772235520390560577707570276509687135558295271181970598101874387437702515320997708110720855728074213822421515278866672574682906688782845170568008229118491668977368149268267783645332638706704109982265285371379406809407329667157868900783775463453491994444583286194560812397752529407337968248536387854423340649815036929995122375143783221785518851939733607361055406051695990897040852840791687206231685261849300855301624318821046822083566350627942482887985972603381740875756401168780868900255328475024939209428526147734815954674980643297397841886898340316887427652523380963136424707315535553131790273288945523340788321897900833987740649758323092012686012935838395506381183310105370747419135378540498994252709228542605618674598128881107587060469522832115082320750019960158832854095709816089665060120183436719399924376474051456351584400582743379875701308278773835929073459714467879257802029698018593094128261701668661552781881045889715879117239231234959755082381112726057086942702740033858416238988995495970176521727145787232075712574414785755368555371849388533329945712393209447289226677364143503466930443261246902021107678038826399604335177839118791898528162185840033006583432939538243774350559156431877604935097269392366218685094747960846041770985281461580284632226588174289513329016329480151490885143133866356479603293750267763400449771194718366816539213979694491300317384357533048377445298251582432899354327949621387470228191955141260129478147900788459315599583568856120020060162968097260022638856728541075880497879645819799046067383239025362779859374555786799438532600344645596702148036190156834628468142765188481869808405894598490789082712034615511217629651005398247691143466071459828786511733160674146167165189100871040623591710694816193042713356485813245517035432169764651683666689328759854588293590207257388008639864621612705065915289773862754076476470955511971716793008942943190058795829758628811365793550589111333548753852658060622542533094402574211504368999857177826108433289860033978028534029214428404348878512345090464333475080878588015196644699817753108124551500938995907319050050219070894910597405736585153400380822898987122281906323835111939346356573738958661448126480890927670480166340174926437078689853956748032146753540251768420147932768918015664462523267603768569340818893263768898320177946765209887126937018751254520470131183769709981495169307070420088323927013526077012102468197032666556570048815155587582722972720821294544239262583736574919770229744838004623374000421576438537379729084121818561695850088734057867480764658675500651103366553841333154356754026854494754196245608704376617367640233473642277565121382280751069323915269870917527972580678212098871958615236381004219592636368560233471724017441259094960658809316708033615161138048981957091753649193876810636300914945629800466708755163589192879462024242754729006417103121195587469086020802162602599901282423643847158760084332434048404518953182844013607380500334795746644343746556087117924154862627227778494712339986143125042023463507135044893580646059459887008104473945408655902436446592469038622232522656553468497037171012898623250489278576098893022436482170262579578421454787119772517765276422325593492496558570111338591009331410381097772529622225863875240209119967728253344403220268036861169162966141569656423496641129422266275350591883606535602290311307018121752209542253275738366028516995679681270780257399927036151914389755403735283440909890386425493949619318432496172097855047683992926634840473218350854716608230010933934203326542056644132329829400125040397227370350281718588776509393301641796066264981986443235604629264893628497750777181208286377671027287798587612377340363270088830178602480291029706475169334530874267976047621065561436531004765816112124959953433917053088500799112050629636293251259326431989539942728383234527165577233873700421742845168395615013681488871732731539487647516672602564976263155145349175529669339257540159492247559479645925042328479948225758969442325023812242371471158342007478513475674191242892034327386774376319540264403892124833985614645073972105236250106240130038407987846592459975377541549916510752098073348912057781365454571709450633517714033708545615739143553489317691772287333811993359713771865546309628875646999434594801815654090915955780353575875573776680385260701729005252041857672798232842432001824916980729842387460345794383971384332814757826310408531897305146200326829918839418362307473022852930505155589716443197185405070439727449379749621465574333619899526179272521627418158433015074244678839655169666508359688362242703722042436579050352114898154418140153876141303857818172314923114246206474996535603891481088648285048478790677484672196960914114631674825776157008612083561752951834125530076858006752881956869526915100802353795797207054778510321712094108485848978554308809460380747265291312828667933114062325016709943980698535435888544201481821753390890091481842799584528665216252746445809640146795005625818240071461310459298536747051604272783468160828014165812080026849360087845722468330340047254892825107070463433267891508533832879010024120393163578286481518720888578522507413279072100892117046100940086800828323927215719782342445408418287074697187345757794892342992929047247044566722986710274204347930349584602578306777880328311977945728155678922846122000100860115713239042354812102668511191532052949694318524697940974936743173409760844552253061116318838252359374160253588497008058182422433240188366582773073760886377859419244992494587175917883305162717202459946996693019812102560710515569595396224497046995186693618393198627434867695520530978335943952048547130227235948714767782168682384042113113207356366290038006596143630197122600662165712648218338527354521221332983902788533097137877067643891523459751671135857899478354930806236303619244058581589473089901800352612927786905037491849568715563267628707226596166254860832399101270157936605898532433963090160668773774572156671017278615674786952107470622605711432990141730643231226760076362505751796908837961167510694294486188355341239496678156038016476304946679775681423807868047619433624421078114521662708582731453808632852271395759897097560504237695677295219590549079099370910501170854833521548941130152345248536482541035795446223815333459779303464510899818030899154023248614319019662106648396537253173469896725590484959198914659750805980804654183143875594176650587887044427785542481877142405583008557017713921235337476275248793225165028015226678409853055776730024288757547098714519281060577365132783398089930999341810028182367493979439759133653207344778528512432700207476729240940824661152303468938440085057885704019954231309583056194734474558251218527907790450793934723089943319078545377818250744466287802798501962038605940110620933947670911401991155770705810284051723701268435905725611590414370090365556992593581228585817381093213104890180106043159769652349179485044790353241036746007829934909793527325600172862719210105989704740897263502239708741269884840677356389165779707620332116999636771346454803039923937258090527835409252970387216313892175823138949394749417832025889093234324178607751432266670281376131226208169183230972324256353538802277446304883858047573577614788393327966471009926932141572403063782732178685895138480833421559920396937076332060963500600048444799653781190311067781021413247020872068086100219749119203157520866201068884210442294188869674840906145176009525221400332562289577893123991888533076594245878919110697626834464813049927483923591965824960608257299243087618220135534509769708412833088236615091876992767440917598050037179429685248954878971382914096636599203100345037417275326323578227527524925577619726761689360645373413591185693346166734949402823379558201486860843945650921056151835697396893005118540823547862534681450870610674814421167383601808323137882394333236011594177658483992762936522691337891316791333809500198183480213938130913715778802322855175350831210242842523852032438962339499450349501118263679664851398722028745698555196161769384300713471455935187114406063385376726474929947925671050504544084425630646917993826892434345454081625937199003090465596489145945965563517172712481441568292559721857314773786019291948537946809330983794499228130490039941383592105856883220988390378096953790623102547979943165817943560778661348330317401021298173049356138401487796914437402484594886130070615079711777393915772400750515838060254639703134558634619041068527218246312846005590060490605779106049897674284385589073428211478224668932672281140142203824138111655348083914270730704523568444963683528077363112383602504202856086575914180651398560147399993547182023516050929052429756507459472042666911339014114007349399409847113361453636472744636537175738881187018445649641680029643768156434244716072035357848349250205828573887046036241726218500955238425478684660396975095878871463826997357675099254364900920364424518680373721463216063638266064309703542107091638967279466386790575518080988858346554898710422365608781462820135095832334588357405901152874971308872573273719946302842998981716652253143341101453546350575844025631990695038420257538348439379705696036871598844706883940348123462525658377427418099546281196113944448854675343872825655320295612121829999527629381101567075282644769357438108609264511046133319146802169639375471474600195645088965391952298669454096465456628049189779184582592887321365730043595409958398944114115706976399325067127614252994479950999145165937216910203861030791541219895293984557641774493421474253411395675436949438317792740924714897417922774634952754349369623714422473657728515686204769607443923585702414804063322980307245842074905162385371927160322280177192328251702598839393705618310612493407775502765903715034766924130835502352687990910850771935732852752750203133759406337775144187351415037809693065872681592042222036890514337026990922019930119046143977220815464010466859421945877681280216800520876813069781910786991336401564679060247661475305294570825324896849446803433746650040538933460332443116803102293590772664929881741849608956332568254455753071065464155218497168940850917563133761376031850589628815392472234080775598481803287229658246611761655616448499661981143685626329245431370479828146866958225119611046159038824285239612323866828803578756354240483114547646127861662732347497038354547901658276514906434529189477414816506957530332646831146032879136344447227260431690683721344812335988679147832557098296688616262577475258773991741571259556899065441270659810000820592229469444656959581807935796976039535208429613385803327513396619189741984334579158101124747003345660030866225489316707100231634520694365771843770395756465278028677429621090179578998521695421736336208965820209511036094094559039364590947195948650411982794643725107251059839203086172757812304563454831071420231338944912213127598564457699034784461644277595979771154359342643835242716289608690314724255398715139080984281970970645992875760120207766563192840668643460228731857664774815350061490611545581985576182375195393701833303519584778791686607526020698322487686995562805320821934002176039027695369186090202818385390081137339380833582066077950879707153141279786655335917054607089664804057278359721389848063594032091311532346878136431972964480897355311024124277911994740191406975911292972607422377889556989830265064561242516633460034211657004549444200622119270003520912632076884632747800903368434707034454188441856244651454171373263691337650899162210228153736521096450327546996669781157303905921310234209911569841746125183359160732892854184420240009517733743464960002981754732958172057861529621411220888426052569091424247814002873862413824914553862446406984102464948631851868248057157436793762591090302116088648800734483557269074199728539219753843922441845843408370749281487248430045395617398704170700201697049589676328810424146449586690584370511291308303298469580845891423231565579991619161536821483514345431483004885344447968518979334938031555886608536098799705450552658035158836576971773579981951035775577975904612879934949938686693490062843755342461097794598413818855639176300540289996393372112278457789940489191874996643812245661788128415893044181111245245386918858262580293546964111653679435074922029860903223873082761346420533170732820659852832951893252700966452148686408811407130096815230081676609519656041789527884040426663654867578078488715122699750205115655121937481888347025339335829322759336128360653495116811193806384653703651644481953449217473859498265922493984418941514718354385460843982403865420094916189739023406999823715140882740966673177275581823969172523132747378697072353522365740381020050533972930482703050356649499390267107590705497362191338732719683043214874310100159836701514166214602959494428637012396919172490427953429262590339793024622775508046816106428994864391281645699586037607169699544525694908100458336834977532663620716858511084294794572136777274096418408354658500433314794028743522397061751436610988025700152872289510482609921748850982047959551441339115315635007408992634765220029953718934459716003452402929669468133464878790740158255726347819409228482102442848919242822952015112360415297708547494206959031991821391411679388151897402632690230556353300410948660460074360588543430079564853871848823200786537763204847166631705094824614843764637793173114628122077511942345399577393654071160986364256275447370177382684974711777557379627460891753530469358806086223609948950585434490589572212644820551095101739689215707334972745056432216034942062931239726130763135292154070507011073295031276915832004485969756976963677657706536401150992286584797335201063124911525426173558328302740830932498179413487377683239158538752760278723886920652243545582504275799610683803369489634546155509834853206138390243699586126762621002874772198803872334085306996034905531067168155649452262374902792939853430617122244718564287985306503330780806113319731296651834663501146940706442915363439982826865598153111795045533837952178681928716808722435649642809174342711042640166151612608841375194278354790762100802828887807822475406952411012328678419741793211340969724584909905748366753639724606672439964121444554149519185313894107413868980076085194337066057307995171024468544233942305065703096470805334210074153721782356980155480385780790789110828448495349332971955111346533300702671248675892396649093096316239146685258043413422181167489810710313317066120968875498440068075689483333470144275826911886231664797776241212975111499795320011939775278616562153860088756601540107293430723625760753931988703703049134108046428077795742286893095682637527374014953884134718076460778771387912950840280101787116418438790411851334924698501066752772199972122419458844885155048287235159934212159024569984471734993933414695363938165387828167654863375371742844190302473217091107402576680152461623930655988904675443208894716862540203488808901217759968188296178404165729008357255862099065661534266634476490225560028044787231839374058184884692182744176310535664475745852303503915838297151292697757687983282916333359758188384462421297596724598777200978589185294199952069406080438291206784081754528988231835587841778855899725379979209175224189395267261603857823624431226820812978223686360999803635306812287621667112838867592992550154194536886845761047031701189944340994991372614291540331848689276339494929248978109221630447284943094196361828245111390177623948559790189740928021063987466366574802844678089496499417909227083601318586003941637324364472345980317988920694017891290163308623431311865639341667708139418282026759642275956469912796060513146848740745100185583335360401474247139623351111767514407875485888036640412322100749171427282973001992633577064193802947771629452060263128000719563438734666262685460140915551012770048314678124132759941046838448194008542606376697177897499351330861380985088732661743081523387914754172525157998991448665290351256007327074216141422604916312457881947526657027814716194192722239267439572094661326312702080960357100380112811466574780997467143204656868263431603690169181710910554595053246813580806255828678206825814844778064666165842393846259286235435437340877911725939035370846185623480941516858364780078539303328961689435197637144213810417020451019545441498082683704320457870230634016312948210819921075120467790165089590696824112376411945139854003882032683674195658014611400699085057402568138867515633972209871693773914774035216726474562712567121209489342273189240835174535340519696832717659392632757910350802758961745407201071591012396944755945561892383205204339159038914007473469258674535427972644861444698116773541671503272798500906985200034385194714165540879392716527474109083240857961349684460925912110814041425487699364290002657599440604371882285937252812962341817896289617831378382665726616591867660312667317923627198105864037463381337710335514288862512509480788635486234832353561950038764504316998926617211377696579360293398745208270121034989365989323861202292103080662336202324168144557188822915272313029791675596200908920170652759910083645822741618432745797442238290696035756467634844496946298857051326802502406769532859180831912714168818753041001018043086883677312917346234639247513718546951812257514961967230564971862192272302786520568240568993260712260791443010999341768253270068533845696098382280733037219977572718320953360641638338292357624285302579315084099477704600165600070204394535496852758218674137614287079469318008269890111623137088994980352696588130904537328293714596349515414398653602521435050508197886493306981129737130321798027941080828596252368578097578146511153414820687922591371884876017355089857026298843248626947489338994538430524842054719560060394128432188617173471372429438971051420999588780361988722089894195153324310368981633725602650797058808681174503899396406295409359522212774202800180560635485438897301840262023076330906845773704681887806138536991199413948713388167078559485186528370261110076731387791839946475211975283328557809115226994059044621516498726353680766216324920426808169861740038528094206674031792125476976294449120935158014448723189936093792691796714215872979831266562647840575473080241181859779798807257659942026568316274731340279879616960002997831349261096526612547458596560492284214342770213756467142878321776261250173278339176886164028890723144148789784488223142627412951153445210802249639902114383034265631525796624805216314503072870569242367578722785481830566851437540286193058933580334562564583608047223705809809759761661722280751163391486913768089058008381917978519323567475668841345165700824628383548916234093013380824772151959956712810629638043821341146082038695322679827528444877984964007725092770035896493128641993025974121817375703494380691433524689675599711026663698742431867300095621236672097633435295751428467018781379830539992475219900920456078320059358934596548141165613075368794933547820406648687626723841322902077339936345410992326200877250728371217878452769849620446998676112622060562843869974065440395347534244472442384368955048363038496064168292480651574887425166770393244811696778094480797668130171088899409350893312139595574451098088705943583206571231014716894619878441415426697978998759473176502448870035224079977912707766211362787052901686018272490694120123496476800471583070370828722911622471844449360604888610875034097135703693660636262971229783276119747022358270599007944162316913720148267332239688948218372858786022583048027751224896334968215892330554028949336957132249968822573971401764553729174881248849367810134134581865700109178429815065191404723502890175914728083569058753978919142474666523241791237784404046450714553748132231167198898678561410371903397293511436939136842051563312224133840754308369336725282642830550509431333023121851560374876868447245093028133546405546091282361155656401883854271665995286668568247817953109414114028928175963573310019296385028030272029229640106855487305777878721102237553252897465446171607428218334185362746626086754539153732141408271782451920055011023909510185984878969642882286227380600355162192542444825714458980292191809949102278759646727066760619524090332868397913766347343470163303154077735512434137381048783063796429174124605264762979642925623563448432742176481150292537085498394353440392079121296393793946074822379755349781608219280419447639299835298973040589266523701888310332026384692502510291110324355898773049422398467052596124190620386557285111825818019208560000101735506078970660510085450426838392010021910165730112821971013903932523863235583908942369988750921674708524023789714420897627196866410082409888792003992104588474354984404715353489208961248330311219338123317913194409651826085158607568968521333194870154913779472913793750492775449708072621101305902257138263003764367447162268689467916032375863543490411402786941903468007721097189314053534194789582925605680033250336962297114814748092415398898853019534119891762387557555780142293586463710010545067891368807839822908410376589519012481278169274574624393131653757052753474198735157046468206786294392922924324432228954638494588447256192194956701312040811564294513481771585265821103436988239012403333441872667665945400366033186381892089885101356538169045334523114248918761107260636889616103675549229272327636971939705048510335201489521717300015737736640079952836780269906202782513909460464475330113430256773997205346963172478267977304631774848302008325083759808953361410388164253959604579792066742428568046613927091511144444687597489147476614677625024638358522904314416013132941024901135263953861301044218812439346240808306189047939556836640883259318587540341040014331960781913218277565301361049820563829889586264970116728288890112634977914879624835779025005761658993884257272348646641307208941222159578105578846339374935902992590629346242717603767055293116238454621439808008492458597657354330473561683890094092789003808093266246658985586306764174946494771049194855707079622239694794939717979957355384328861881404608314860987224368076970950539738069684995622571646818045981993794256293549113628753639333139350193527947362598983823935838368147811379773597176000191315134281080111316595439704441930412389634065508004295014773430371478144240401951042071004520211556705701459268661447566600243798777034649251544994195154728001097904408813127314320352278110907453786096262848673262700333782836750298516793271277180227047470122435232320991602364319963460005259625663776069322666126431775925193182889707010528805112177152512894726197761090946049465644675877359872994458278832258435188935510860822873810981566107700099548259865779123119692114700226798290263051703396088184515896669042533852804212374039717642247686992185011962825037176567139862451300986160068829234479797351265569211700396498839596051365012666806977408627130821047534957530021204120037917722321968003263872535510040529473930938301943061726480093819299853039966886779261551254375367552573775308920250097255451583411159478292073638763981936806362237060851089483895400801576430419981752966123010367625704158227893232019491658472650386400552895064286482472739704774972242140741757447069861706457622966418812725085141116617875632919477545099174514806610466946155332307319741583310512247339278479408455777288547918217787180241291543478601118683089031338659625152798845927081170582555190617822640418854245265785895776047057276048696308070971690042623164766129831266310562859901919163143911527543405024129667197093348580672704923786648717142999916914015184227093370054383389746853242205898554618546912460430069992047961436006435989072396971790306302598501281016117003765255732856615421875508719448759083424655761075760249940348041232383042156401401187456666394518853001108011235320959848898138051958331373928948460608805020217369749341749120242270180293447769392039604421556448691806741375492007326164109991342618234444573039543336755320797405853487293421282765305644386628323483725300929034017253117201274922600619651808583506696958477209993645093658856943871577158449408495101815226330041309982816046633264409388567316052382456990638995608740324155124958733201313066134583576072862173567927264209837925799562997507415009905207432389981113865116873920645504331049922516900379462811926920972980830415874454935148283135758176107080535906301206703123048207340310658892829270696105951289046669587938341164395404864588511336715442449770646808558092113795214363563460464758445918584014772256742208408096254654426804639194558742776819323822984158551683885559100134058013353895658346074605296221631849598505068245576603523911995095865880834363010279493467118538212367008828613946969478996112892789367613954926569471328974698245392148329590714765741924765899861967821981484094558950720762611464038985661814464637539953885947892922684674411893484343872594625522868579030101817702080983724456277732559500527852210083781645082450347078602223282637617559885000673397920974175329656291193023813477734203886534528767726246820383809333120475240780140570106061702183594124009964290230897234924941933091459030897377035238793874350372335856399892435901761306971705277852760567990911617793058713424723041251986915530780407913748820878217474676616475656445288671484829440535014252678627656383611468103930766107192005778461040420661503401212954847451058219006150667252962192043862858411252957174238703992003962601904207448885344254743454041150082341027259585373388666607613836346131723307190055972036696379185364429598529998438550373030482245985744069882302531113194125410823032389624500579153715842348615918401028355745631302285741731211438646523206025849205137489035041920021210172287215171549260454169680445947442334540522676897686715836568926261835086336467955738764539152798035015781504528457201584031571941913393452597635943283405205670484038049396062228229566121817784299800509245639627661104411673944073377962654540226737943792260541141614577864024607402125139746199958829012063929118835416412627142328517254206690405841356495080860826232637828789991769825185671642581431016601367439176036189911862555966352073332089634728099986886808332436940448453591745354986423579890729542844571463795858285240679750878431558222783541865474696197012485842493362671559065218289670949953355086881399745232573615405055253326524108388066734355608682872915964375482325624985776769385560891581822126544791619759366281003504891204936044657699232032488620043630953573110971160379969972632984760993271409102517474649892804537530513150591542466674480711957397740106228478511314581684823677661282055336208659122871913277519352033646211188395067556898644774758668705605144931209594902906782309102518324911660509955506984766041586361463881810530454713865008476708022719241946471540419964818405371569317482903780945855089370632686712792933341385157484297490785328231727721027240503016698402521809149036840666900764538195001408646939433234613336399112544488407581674400487395507036480430853392007730657404940938985555539189587762320741635518877458894490550014393165027343239307969356069630918161207331235390283692249839673009019507543252915316598406023626484820765765818500497272402294396874288570355531113953210872196523925740702168252995911555455503671005037919797858691595596701793758979899673954847404260120751044332507696490077874810922182528608654654945641313963185477263660556987526019130118031869920669374912619983045443551173410956902728448110244358655993997683008676574426949213611601087953525961467326112247181271443244287066853678967598205174718931139231281687203561038594200483065925834239929648115845379831883416705526191644772000594323753878406122086654975342738765710713945747568116275333727300382228913153483092078147154230190275179905360012508340107126740492304319058261870938953323681866720666613962751767279447879265118330710944238147610883561065402018952882459346671167913269140752628916327822207408586757412383499646622512181954279113270463580215850411681147837321245699270289143896852800198724837640432655985247226444867381805734831191754873401505655247986911933057617544247053593485693459033097264835993842897802868197125194811927915874590537984408930362291372982654489926349413886060103162271661152861337707195538258238809247676778755972685018083218313460576935765842976631640217321307670165285024999873008099616853426445546491771517656153938848625177584434050820892839168792345154315485767255010246463089025246980413455124224617048775576628262398319185933841171847046577783813245725542062391356932734061443749631964683542947981868306238025100062012627985880931355581925691849487935057217183455622827789793819281569943934564531510056875446815503633157727336200090789777868881004064752619786738122291822199469797025982402692590905424958830206058888327548356312696741299778925779303864768318634624717622729488662935560515053804856057968876315977179926332000324178366892894811992464069240851871551106256991101666454687446598892418418861971142149388584958085322246535179783295116358032035823337005062252728721573288361289109082570747864958068285165404414639783219412909974701138284305181970613484084233367910581258744295437893358168420223170687255687076938434888733985464410797738529614602440412896244160012882608537879573284407840101611178476347116337793434344700446756698014337023352332187769139092822524262608194676475761915228650677886223404831189026652362650151487477299319239961593386771165688907191262679354566948866553472065871639262945644964286599491931369142385950913033825651363304916402147167059849895830014376603729157303689201079921518354133241355283674032302798705855626750586630508652644945198190000991368547663138054019030853317900383352615920752510464229490254544970472071623663305372814963861309878625935774785282533638038699083895005288294128990987118205042107619434682353262999949131864243155417530589552561495480711299354627930870097611283422585719940214820350770023966803557550358143418612452690983059982514665107617787709532795833850159168059328568169538649282219968113633149744736759896016868474309241285365657239057219086025603748403862440521410346295797267633109750357894137587434291464264752164800620218435718554895372236728885946265426954224187515785485115827609913725214666525131184662110670082758098444985662167647447179349053919784961008335199463313850906784794606232021316006937020620373002048195266942838763171296978769015931438891800199611420007059930626406213622176770468178625470805704023353886964816270615869095459608605865303249882801438864422640856893747494048886659177682095490943756215047070499364574108321502073171169178934258709812673538363223768035474860085734065772251637622439252093815127500555238464761055579013297531721061925377859536088976985392017180184043955081746306430516087712470622323336788100908706483533532385897973210358274338152652329577696050866659783818987994755461851353294740372128790445846352900658880460011412252234399564255427875378560888860857778068441355285116553630384194022936938824694454787540380660388989130107905082236322673790402074105310658862289250161635625180375988951274709815809137414947360481165142911222135266195827778818983320997245095023320605856267629830339830942351501979713222673259317487755550198785973561084167518301091502352069302513447318301883309752428558893479046673437189993185514215566547224987499168202942134173586258076867761846732544803039323776812345054389255629823989499664042532404603087758084061729670123063050687872885063666103256136300657322618584982852227162912142696825940662650689366313514565175644155909836676743025067094628422310300871343557773644396809052758344800132955566816334565638121947342188366111861963683236704714630680318327684637815829221718932580522319578382981081507010968531481249182308541985557539815842408190921030357466427931227519082727299787988785647222378004482238555390293878005170132725859205505195692615654526704878724486682985746566494620574035568142809953571155193147373635465502875944828242297911086005918019553422567397053049318445477526021770081637488565552323442201498927083734326402533766925248286679594677930868038566837678913240446502339678637620416500312235795659824592119583403152922406886988269078574427565658567274857837589405346806121898805864410925923641880584762966454292882176079833299105698152460754287093741547579312452320569039845408283719255786143346946047261252707722098421027646067078065429160050349020076503868871199602410480711138070205757916896257059038421751477874216603053585158309468996045238053183744834602877292063429550430967490354779610149415080363720290111344513591194776459046702880760099888295645063538018495108743789450232939238462784681988705097969082798811790581126340551871289889345344392970176297978152377487694276293342086899264200782057352081033553815806017937221700730620937407478390458429392037977779986515458217625393846858613812633781571847808145414629252576450679361299852308171822577142478140899774386377685006925743701667178060705592968249872704030953609464725984426724695981752173868229498808546768506735226725562053960186522898603170390908407945805110343746625863816618278825646955018120047798326540056287516422507473619561998321861081632077187061543452570153796810150076740053496934188199972663530902570281286118913154713006568040687203756834611428145423243990749460209399390986529014685985770056834835041856156036114219872255347280288280575768095885353815097345901688977163835468607680139399294324086966288209908991420659608236136185092244170507295580419492996465099525364612558992929592210630580399339457194207188373120504649964494723237050177109978685137227627082639283828472402584149679071675698748384067095779762827475275013987348662068989445167802477474198014687748591093629420319568893434104135434021214560034961044079448455288360248248705956651444834045082674262217929236636870707632060733688878426724953685936980650442831348878436340882560358706953545543966604369678589436332705263518618849448288027274272996065905952750341366294897592534249592235606486225721012045546753746010044592228882647350048778832866723109898278114030020723975781778138853972137913696004852591772741206047400273973391279233912801035767779252585614424309512219411328076459915719162820049358447854934228100652927254454576543654603984072380498981330851983500334955706484177550326287722020180247928446611641769064949330634815947138946577482646600143730076203865233721472503348339325943733195643481460780336773261372182761992196901151596343658009957092931127948642255091548394437168828290247673930673019206119055229362816565249209443620517481589564705838716008277962289966688347246307880441408075847714374976239077018223885790670686939574507966430406843019213583416223789625039614305905958915219510901674474796743713551756628244641090637548022159558669855727176605233048216905027062954259938676655494160092274187173352479491031749320888801323318640228850378467075383629500963842748047085492226852835556943517481194333810414264563989026153932080347709011567515830120688217633265491887740242126073212593695152392265319026125500405142278674966286703008811256253618110491654654783880187626018491920867691944773956714257176854129072085235671440754182429560028772017456933046279941562068019785123973352089130223106009020796436780056833450654384024095887585558673224238157075531298068310842631008494492858737794337327159865890694907324265989971761197751253811237872202499436678981221974617714895284693760489985928012068694072987241686576740390834946318753268804716177257234273770823267996237321360087616505687698749055671741808626091733897438381035105084735119369955704204271510517294753016160777571599050366675811693619116830277649720847534252266842092770718518894541168570626767685112292155188284609517323667729590208819270126358413028959235030655320654315168949325666800210129908981820834652284517083841502237609382163504779407033325877713527653434697012305067306522644568731911300631803270707783590441817959092549176430879003315607527043452773849621178136580028349636999495600256462108691311950138800795874281354163743492353064918042528732458466886931561422515399516231872374475344159387119997184578692566643218255893980532051724487491290853645711901502130495031143752570355702794242746632104184714962059224784104341794682777189548422208908143984994204207127365963166247435625675131136461544638323095927980618687520310932571850675737345514683309838487902321483921798391756091183713401606337923819958999210387115005617748306765273555968505836767056172875647633421131400457968178596406823525792126023615848727979441846132000319622366988481625569229494062059576191767562717990933536335633521905272103790766163843660617210699565240372871231493182215053719426589882969143581788883334644455202488277685589043324540010779121902477331936659733550368763958343098988092160950088454267277110170429652848968449166173917451110551233687249763762152952645731279723643821925657592167607874811152591874460355131091993606365980465838580739634085179775557880074988135364817151890031086373854407292305620215745122777135878894132123907413614249922477168414926018516436278310569751372563107345621316637895276799592154453426890501185223781049694116875289538834892180672485025630200128162728399785559088979970118478643489244914511617377132125327219716656796397204046316588312888356653760437078757628326457555215876374323446880674325052450789163016516681939341206673945045735637669831999255693600601801910474365301010911738503438717553668401788616895324154247857032719659824783098507190489303931575110685232365066595358471228228838547757200189171552896008568158476925637511919551816133171374268055584912692484673265686626599067995195583773812848735298730684498818717469997974689911497894034791514170750001065304075985291013402399393413302095523082225621343136343954307073036918360112838804793708720027634670732274252548198033641030102118719987609742968470071651326722250730069851819344666810947024766673558554752927733476192623375806405150048446828261846468661610365348358022848727802028868181470715439472261258195474695703664439426320972658841413870723149642048530711504372266216180351261601269109904663637111918394395126427202434415409784314352277841966713708270059524917128770077499115432437120478824921349762081582256421235908235515224778445397897172495780604752934171878608496736013056110644315404797839671349398953153012141434272951126663709755526456684194643805129051220431821877961209722846571702282050745562924217551771587120768823275659163806996831671899189710999251562455404666649878122217248170812597905409502191118172340726746841073389355394675116964501978345539776373418836508242565756877331907840986366167084264737129204345228058846845891379704855182699899172917056276076525114239092398041617237170158158409321029557174838728192424270786002485911356060812977394925872042173297863143932920227701897538802963170990289009897843963178397383032114232275467525350672978854382650503351322790892486473459585264981019530584914475058342026678754618941304330666301821230649489870876854844642382273418845552431638195672284306427170871200117364523541535221678633945823083658496969887997551017723438319174529937199612708447773530965217760683048295201357885102677564037709983592245115647183813771230579170863903620924298025033370284555035008727012406310067632160536099719396996278343913211827289300241842632723377673979450693707382276666666442701500124140652687301763622808555866454380612025397645017442911717921201021509429215915473718288296443389016911263733699672502952100506257159876296467227302410489816553377111388198181608619080442316315678949534505010115320224352235194494061368789861179254499693315603821283251270659164647829391082140581505932075797472220338948487697373899915378557544454799376932977479917499677014361799953809819052439052004176441516666187786819733362406931649267807438101700897489639489473018625387968924765083053753173969597199331383564408241516138008694227800924860306298698890053599994370405394973802147764455461876795179314593224720015001891385871295897029501140224791306136246119081413296993016518030455694206417190276035160481828803314942326279139058261098380067825226714549661449629295293708852017414279681931016168133410827794284643638577825142175682261644903604670416341210587658090940761075606365436208538575267407454166343518630941289075829527955394802870022231959450602827803937918350273822882859392538053854114144139315789273599976379553036797464018022334601793404648483735260188666165204882206504494756066348265742615343788905473012489135017736775986073812074826798010578871952431059263938289552698603141682568939906042305540398082953902357024489773481439851229400105111710361594498324878443792526615799581640183833565262384883901257496426187641335777426483285928057635717917219239480535206080257309877310598534168313006040820345873331988064012757004289378488264120318126019569541252243193030569417819966519549336102031965032026457848612610944278397019015800045781603892660810868658346299307452778375840967203036463819108581416585396915430545761488506225719517426132342621874584194962556110572112826497341261481667760240813949066530175159930572672314510526732255702475797890558505146096080148700097386036467297353554027381983895834133584323916251212914835476012321288555799255908709663087429393373299612909173040362888331686562565675654327616136420192799701604572709805234212180202370823060637616546292618228640464376608939644199216813494960838164107095155464130799672266313600978924386926715707716016724895637807004039909423399289611105971358754297903913027856993352919417195703224183834691141311568936124363506134770166864383049089814097158903172301980092538169900017313836480812894353528777393640641360576994226108246097177254327250239236904680049801544840256443536294842855486536582894282044468127096242539600785437007698892727408502838028150883749536448793321171081841682729129833186913846613211559051344446027569457560300311546903676281850823225682937714363111938602470598642938971741334787763672170355378754497702707344612176487847097915463563844433595533314216418614018421086943877761567997667387873558437961452554448789041200645138976099938456563356272323357551523806532256366803613690319921429137152647326923580957348612214390152061825320247330332070527929240141228939466467550973433556044506993440851607706483976374373588402549803524966764797198010837547781749758063481366239577833923058987415500664987411055322682583045643451278632402113194425280709324555761309704886245348507677815880311312568877227479732755527664450871289853094105054994544355324943144652501325684148265933200669621660906186362664758287706695265181464993292390504210504540977740403794966794124446951644897186468581409158368961684762198658151291858188817186281537445408419157078928394092534975143012874119060025124760512867460820806721488918421018784673237031786567199443728490905600451553763051811190267469926205013795667258101783246444873012974477970048113279526199931518646897217006348023974803073134307856413733525150217308522368506606041988815216120709524583639728954474889875172069296631114545602557770554661462081928924767907485693814514017523939919631538336251868887024099132176621566897940566519743846945884147622312492233337362352104791357634718078581162553927126905371178879983574740021518364815207592298337800626671823390871224035577216870755418280565840122571162699858353278241730673113625398777749463754217596645444674752445089926403241502380889912049664656923156110585701445748153644751249522802235624235914182983816971472680351170804086728023750315641214684670513155561989282729049246232965938515446256908555533508595457764470378729591805116867900212359946606474721933845347606861570027824411544165939180069030409358152719879013227266753955134269369769068521887405038864834400997557587923833259854434224180920699614274967406253670903321729955036647220010058857706861963651298780114378703398881213952183421262362731941543038489476876567266448851205073250518257224324631118119746796306979230429836153394757614086446185714815748295783385302608725408639568495975587867766828864481783734620894449312534376666136492962092984030363710752458639880402779272365707362784311439674582793671952377934068826430304999235054168979639686997973128884085801159897219969782047768014624581739682600089014549930309590823231168664432278188137432501513514514110468609473039403339213491810948691533537435687615731907175200594604058813860232454534736142433263372521331795305886037462981131457108799075878087236242547180130508631050028372143531301008584688394786636774971124411852450448717125906334206210501719164886461332023328177627830893922295364672938076852453107556497775658786228288939045998586397559010596965222627801532389343632167095726073349135561312686715720368797297147905944546272923609514426138969005365849912854331158011488511281191620867566655729803247297478515107368314501385760385088378016349354821134526578405662397742248810005559823586541447658933024895748347134265300951507800460144201658174246891870447875849201412001774116660602159739516337564319140282980735560883639363815685153725829704931110883803117147637847641971305013596736031179872158805867461987846395226773446572929474276170780196512104714698917916399432026181712800473143537158785593123564612031562688588986300359017029357313128602083813599940432157198962563098397007734610244162757505587217847730455035933510647697759206145762760526674576144878014205481318294844589994131148411609568227208218884693885929360235566854383795194382228136401633838714608321816956183231106618792645743958072308085641333620682295034870605775761644285649479286979558810190334700076321791227447104515083902956506925252147763898567859919264762041077007454989213688349899482991358636833221162155550874741392883810702586736946249664297638909003397450249332488129200567658772109083931218727331368285316188599549145725831184047638463548034674329811278471779323161809158124099583092244123288705170183491399754383780117861189859196524729872935403088649006858406266574327498995336006830095436041113823059853459858737428941951757014130400414753313520081706503164477710706507657424968619091222103995486750806070088289500220393040663817618223657787121961366792204744360820106437076766609065762173288567862066724995678072886777633921240476831514109747552085599778396524573487837629628695519454593945601448715453061020198010696376957211188252149125312258506957904554404007279972586403595755292682664671888265876628404182794607945662964919390811179845684675996149953629117724186142660120797505561536101384997646342018334338424784907522060706361353266588243554229266847116635229599223802390051201079613745083502979775787137333639566366632654036245781477364312871815732793370001812451003070925780576098574019435008095017518127155624292666021895099773856600002961337972881587002247367243369356753289869855131951618787599987834725380440721880302828865964019642619374255493981613844030412369317317852707463385672740083315741902923116289639947254998053481036311393530704811188950475659937054289632249268425871533737945978992343181781762895703170129603313990188778057348861489359870518417913632799030469586973415072247107007399891681467190660465598100030609665481828954368332757321784836089723769451253548586507307513455582920854146376342706537869295000643842227339790618287852540641276812416500961066736114959776561602510451877701808455503710285254880499047803183492398909274294848017789746491438870713258202238924653745634058192793467055975193193009537052519932545345681623229478890172683927570099559314119343771780927500133049985861563996268429153155039523186491293893386254193798525971815660088345916251852202355981955649882373737284574649575009071183072081213820296531682996947462913878582402505561547261881475364911901463692184406216870255860733888989103504243238616330812862962486215117274602112186949862408172029745091009908838481207663771590394590687391260213387467082849546296176813768871883874118684677411170575277907303189399819636296784536633693407210666694144631741363884729131967982305903275337408555336887858788052748401641217619679612998089132721289011017871228195670896568503337646003406716028223617130251755111617933426162770275257425135127588024347414835616270200950030953887572631401391069189691935934568180157185853214393357474686819968236951423906634674948516165578421072952369589564829636451063501120798240432149399500934379003942478846040299967137466078576528244793004322205144976493645638702205090737572462291326752357967720346076753657323039260581269061916422727685059551638444332783418894036513982431738666472603539734333304554718165778192369376174061828436825084720531898274118029186273219248432920646598496141021657505792386789039427538138122876223134316054307067102991229743763301593924803016682654357281546479889509114615389531216370549195220931166071618135955553594441351714194145601897437260018823509563470221229183430195684175972426010564004946940763708708692985297942017607744005205461472418291838628128222639569679364853202007994845622982229036658397442520335387254796522479828587010476440417798461075878778496956388252274301293370840770325069570395247562064330460765742488536114369829700236199915291405492586073165036805741858050829826028258028876439945118071609299737253031988225371325600495376242176261545169338132354487109968953678783372963594852623114655981781688801759680118299709182763304847400186412304044697993246450377486241851644489623480945619446949050408845798599736152308137835984317481319935653809513009473605037485880251243560005034647643714414945071011715759244564743261590285727360460251375345298409843586983180342554918409808146245384296406254211162522038124431541995986600062176019834881880041477993370021427948170259115221587254202428388797001594042493370023217477008171742013585074340391960691076872971210231325865050337229210668519982793493160999085393829123708609849499710441544277954534820356959746022567622793534415136324510486548789951446202724846923372642272638001863357602587430082247403144230741430351699222357158783903628762730562979968926726196999755888793679189023732702421022504971816581249300555305960563888831557775171060660056307032104700578424058697466254621387687542498730438127174171739827726447335432549688341290615978615463863593954930846087982276227567855751010997021492114039996706986385607928932633343224496476729846732932558913139963395848947357043465018269305302951529441062878824864460378885201634751852537133407015774818035519797728377792901198505247751620926552420009523026382776974121946318354905939249888716397948933891616280308478631940740173308948653199874092366540184419763701625078294940173058145274664955877174714603862906245615338962302524270678076486932724835639626713142023603936260948232697525806703263429443080973195524443573854031982274419738101822936435847179627581985370464194721923460747110440122565423480263883299607262342709335046373249432814056792635938884793549023482730638373333122073580002678670326587552603786278301944783196851820769991761629211136459270759380093972844791912424133224864096496565916911978539171626133224552690250464886270129887376342354717692969940446353165740904625944921116051387662898234426458576797897760255939516548046120773465059378889712610851185664311841275352144440890654313425192526419417335406982491411208648142107738686056905141217044771694861252836532782967781216818704322903915840039026956260842429411087590656213422869105889854123163936474477021435643304274664385145529771878309122465940603071777062301741582618025660418423500571077899077049825805574560211819605590204723407901864989267977101467210706030437478505288132292918645292209880227274796618089873197188257159301983430672112931138666351349496394507344227188238192125010732810145212640401095631026483762464833960107226406718756630115253833599451558988910503399452628102786484066798248259857365293313838607713915403896938500974029908261852318266140551190943444347126912080346321684356126112737876154544340354346310059063478948971218230076839875351170243476621233172397569550864537876866650728613717685502351475766679321956960459667366881894580331967441341206003010877035198561192484026783772847766927894913425222955373069474560318464658662788412930282372755109970059680405083809312191822013291716381417258812931755688458084482079362390983173050895715465520889772033484872496032127118459937074482054551632497062517302286815771768186275053754544419401559196605225237353678030088774805661586437263516424281491081821631797379677424921891220000163667642303496613930954292271612518499801510874713714984983425337985696848944391413527216713165676995893933526721237149080841111031193142655887046669531281736137761734812008792652177122542303458831942762915962927854227049600365144874664527495653688874640239029124480618086545488320335291567388071107951424426314159142844923747264926358784424625266845732232187771704927958543223028661117466617701074760200047321571180132598654148035287302260307796151351920928314770202093771636063699542783901330468415032795683890854941828402796819227198234439194950558963319093462983413093095524266559615096579332901624166357628332508167066319739764178959817474041814772100878895215121832916611957143516571491702790803485408465463077786344991146890933761710474192479836911813834175819930619869619427051011163202290062705479960731189635832430973401943524002451504175320979163306416405086924577885303717486235532380035051902027197007372801532082308415129326006236154019514742741135010037484076203065482538824277641017794947618317894525926895379288104575518940427217522185051787411359241030000151755665614782869741300926332108024695203394823733774430509215014741166948498106468998443830160757438767166678626650885541755684853358297272313055246001422759269408251680717384158996663013818750179850164453887069050161466573537988297528537981985787126071351283283364038625600255318209400800147476405142099919732803965744045818882769047978648179039642156551879869652914234986821617880398822639193361764766530988766091022782614306031466997966683804429504497965028758570531576469978240333066996605777574792288376179026571752615613806205048454515426542762824511153254138738657733517867510858429396175722087697964749795443307127719109169810271306296406430214304458016167273770219972662912978281142826547012647084452753840116787357044705089431214991201796355182170771294560792807693724880993712279583300944338116292758720690442418783009865279997896293408430031093012705999635785760338953914854482733910036590887193218281432138130760474456503279585061128122404300350674800712412687330259559519024160471569173778958256292329793902405317889919720782747585909587681410074624290126699693769051946139252203378940889753883652950318539253668858194086847409812581886986945681136305224043012977548821498983342489501693455704754947573155751967936108375569987903092844671901722232458666639348642214696998136302762311082851223270560544348935653624845321966510677527435323614733460401036806447509173473451294582350629904801546954800833706858603616252913521093177577051039915239060619908393866957057411248624918515567087214045030407148825442954362779104447128083635176807139012845199901616543413277721761608036320689949291881353398785961817641927152166321325486837665621379516882264682461082063941242229957743675999947567096914987090765618573005826337744330410077059520261475427314765143639164297170038556464420022743625291705419796004617002027017098077204966935667668203036895439297150047972825232711034184529225742692144860196679627313841844713647501730408134487512006916241000598353033340519838951930679967314026104771300682316299209906566624693453740293051285240616800047199583576592854734420543152394508775233525632809497384879398314348350757269922725046552912686480329227916527042523792572141631096499438648599956436344851379134568943085399973607698765649013651954169550729893855877531267453875760354174731132575195879681197751227478178320064212054053334530661177364939662920833379176425647141975116248318576612373537509009143852229367352881877599701119727290669634265986001346076636608950336797552849186980966637492324403488197158766078815624105195459024614566845048020301082895196660855536196198148579657781625759289161405602847976347185186334056736142969616058563052188071431047808290515399765624336506741952710067394011007967707312900313021564300990354290741594301881332363659881592990726051215800511476855360697623275287550005912547924831576159744996259306279828665974269807693136656114971152512070850204576746734045853458302360002779909157002896441374846226712552465149900257131585515500604070268748804355153741231985884181580097277448109953699724285366540985030163163399560882328944708452298440542629421971804006337584078300320999497270500459262028910887671001903193125241280901004932606264587505017695821141154126727698183844463908368200313019774168427717706787584359168580062099135477828550907676502624765431891669636474659077569644217599820229669715036002376420331665974730376684552218726441711056179760264619770110362086089681458694702236144196675661898029372716294525390098714256258277102113334984235012690406941240190453529951038554288190578273397031166597480012222347237008962963302885032362433844668477425693490418269784571044109244746852119683720331413063288121203132702023239435408103523969269106957750326913734609848811106638986119330402159922098034608686147668134311162237225854402453914592622739385475253126930856535044545149531605184228148582972193982789446417265587156008010751983423020965230188217385420355795862487069880155848209061620670601227257549133154930366815069546957099953413206038663630143980830767601585918204377579632968390253360182079407296257392690983680848611784592910904921534054206374855215179276467954796937264573309897519218646187384662850657422868694087427227834894253776021698120046936303735189443278532055061992947186519240973568188047012316218979893992948773893760375059729412812859469310853546702513985335188828148058095160543968501973128094743978628733918590422134459834946904763502503470432305503611906426592174010255370320621035233064219071464261611082797837327958431627119454183858437732481722414681268266203339512543473528171415580796720631345395550271101318381001013781988864480766218075591163495384951473448329501554987446536493088460885252094515726222548646110644245658931919806832272010604055121999227087221425035448074754868635870778917983072569908859716703732184028799744924693480158569096971523549777333006476904748370575694622085488454104608329327316945507427498258863913104808131990742185935396992139565388745470767449041420502454029025343565931202176636064506391101586179503190503002037760964946396267753363873208107113985651242537806854068908525137811770670827401838893472230472448771600620577706990664715570159313315469338887744729445008364616479477457298461819287575252953843489388578065643649534049080948815009032013660957188106674105073093633782939533979353029616932615210352653863999661411054027182007761282987483628309307941866825211968122018234930837320320057878820335747702333946028049675336878057028833438880144185442344817031346439542643195183507986611511159391736817581840644563082563132383104172504949034623259532970245996038893937546811102743176008566675006464672229406871961174863409777921760180818774256281737629856313426073405646093487476691981412083576386439760865663480270127314815093978298904668369441156139308960689486908624244513430731095284755598085313812579427969052937207719438609035329185030189564866491667409617812942164772903597512885324643932342483637520328610079156615446848719998470070661413480161560996126859115930520539776552782042376864348764173628521193913296906305091085573394760201519478624990637372478140937622215202509417551331470763862468077678482924490007366507874337298136923160458838963664479214739699942546906719183850577098981503114746428999224659287082763819179017046272533545930229417414933395465460028936960975108457583637391219014030192930965540950239641769462293926782775245499757459266425007032471461961670176101220380919391295456557164795730997017129431995478878656302499559064899086834453826250499310562201767920145855555812241844658978100243446598705021902274247411758002794878183282910449365373241192200693074297391836258094113218270369975046486825684662049709811927164292671417083522017490570311235289361333096450512020088180804737641234821053422295774862012304142826089347056129504715266490206331027286630329621352532311919845982410873434774826772910824516159556441066139840873042278921145018189445340986537299881588444723724154419989828830687498696687979648572761198963120867808577475230332782311724872898863429211958505633885432650208861283412687488180976121502240849622669607429518589474530446465840767911466757314748101026062060961987037044885294133159427770706500180109595137162599932933629399544262549529152239491544466265768014436154245341175907459751641281196625178929106225019264347068830088445475992652650627575138038560940587431745886939201173671088441247366600051133225497791154336969266254317067007223078200835607597448533332589245921234063613185311951532133445690284156354294766632677037261857396863240706986426185309643046134164357585796053302714453020731737694310916674049228288249356638496779336666816697935100316391783674523685138331492602385884925275705399809132877021983624545133492256150240034381455457496719604206533405524801272669525625154660946863460962375238070957713765626711082854787054902703191701195730384727490550972203633187269665335626583251038819309132243912947114645587699633197877231970085907865227406411627073041894381406837467903581944138255188917286096970272160544829672768741210105096528652679137422910120605887974835181007677382703648365092000595513406525268678222262269438072649145164452732648396757952873905215776103150378055467736261666219640609113951276769676669901887526623302744224573507466935363267073329455308475624512552510666804419637294677193221852921971277736765485049572974080355736914499261973359920623520328448342446080918649123441170078017424455474348698417952917167057406633628327077897839682704389104504603221620477194733485147515197379674514773327987520125957231709743859444218104786076253583590331025646032298638383912616468194546825034386619613070340258906094271775311765076765542037540955637117817280235847635637934411885637052213778008562495744587033527469023879053926474235783247515461893193398785738307644141842693643376123177749329000472135413312885910648382133117629230756585648955393855097690105021386999236186911792211424087404287610241650634958554257056115014512383199225919224490790183900830670322694299295123829763231965519377818202992444364374473769227149464255961119068454171864396985540184171004415111375626469698951287466057841084685343686888233427337832985980369640062367911559488580710780736511347408114929240145178318339693454581113848991813601586389593892178635568749688254194390851029631895569172249213269373813635047675643481800776247619702651681461796622464838916974858898315394010643049946139994530298431417336254597814458667414485365778895443201505232060520172803002935015357426955824146257311871330976329008109226431369244365749440840052653037888764043659937732131942468748706872049440308821673120457737926603173500391800149861230570942154943734572247330005330538992053080143840022753865356080832857974539452340851075082239227048794721269897109231211968265468761173959439460663625957153832089650073693314525500121497087264816202131309453333641865565229992460836751046917412004437223219943479673290231165813590905115633681019318243046956731979087108937850998865860021009333511352122959630138258306263872193487413855027590261287024139855562876042576966864339437992315413002210179018072784374051405993163042243834712401323375560980878292313714453803002719739110736968732203399823618742552032200306636695504401823186250404452352528752895119689370916290818470403924020387653160460036037319336921271324510856721051733489746075759681501119581577815072737551313975008569566487424512871406526273164716343557060061292541502658810675761937477937641189666898821590360899680069252794136886363304952136980431867992038584488126187418224671721423987970147355720705518813661135808000307406397701846141740734320315977029525272124688393495312299546770624419363944228457367220397669861098121036518717461753178495780124685953072976657411363344183435917097493432630228401324241913884892396916627023540989334121724455516765144280010049238210742813231900915420266670334265036992867694074801224524970266759133196464083028092468140563466551453401463818446177560276194885547443013885941317785719904469586660678377174139435135066680657879634086347904840312721596965525347968328749703473480324398872837397834591247483903022250594739942252096331812542928601204002988103820513035690763748676089374735276791397672000558324136089484893436117706184101339487957198037376945957248235938004356585168689099789590055323554468105753146703005250915253117236611205753339333157303255905162026112576903788377623237698220196469078133425443607034220334064374030567357031451573706255903007469634156596808473705912987698600139902348900360580826959157600860208967425871400118794941972099894360335304673075924106700026423654091244902207278296456783446297725638818543841958316140543082032410708772218821167678868763086409090560726584699233658139340545005236061845367052022245121806829567286917206253167155403806611417565281027395425721459761106816492585313540562175757979566495685666994009745321023897395433668661578784041334321252564611380901390662973312671289109006905529379070026054354651682092382357294461699207420998200709241080087792813097393929476553749170657036296716613812001685288338874940521675545390755064986890131044052063439420624626712410946763951935668266077641112488791263625189011450715374580159789566653170365728765289541365293641616527164141791572138842727852383031762496418102996064436542076723064100587794987198756833418639130507619209868734677186905758877938458553247231873588733294220006345013802427615334779875497357747189970844903100359878801398904728178537083403700836418726115846476753880266860059483425287941482955059339552776628421987021495195734924939293573414525180907194899370917231178255214541667834024238689039393908649922095584987346926545003113185817254236846592515102776169068749630693479220174908903157007672139330363474468207045187885722588542824964359267369742394463225490515395862716951521281697601273048008040639641362178795770255950119998190475459468458830143598504979152470776396486879163083921418221786189089972470132876964657929658959992531462965774368148810842293247987894482543374980268727005548559113612941318009196530359138321556602138398908120760462281047802539442004240724347382395799942402704507902552353244195864479160105556203812002098968126990859389364068707829516460777042121987361947822332228484525519077191647123948882010426711091919175670851678663558131766692760722213376774256936472030903246014606354604218293154787115969816777185589535503494222145627310489923988357158891849883773150718727475632674252975602524761914062806319335894359307122868533791623723742188310272122144216808445762255043467775304134293232717141863348164672181037138284545585371212759707410601586396322236601359303324483367744954521653202434031371928619402192112279131943803842490389058997769186617525275862551810976331541611805913573573344677418788153814599121878089287755076181698418451190298181329859727630518778050837240970327257615092630937524355355178114175547652171311497062321690044196862577625472126685380363617910788735175320882325618720357006862032732616931694533842670342706680888324366746321891374600902514636682998739526932170528323478481042871735876902971247299551899357410764484529749889185146069122441166383262756492938023588606459259333606489278893304242536634937605844274262089170802450750722304259584136190412130835010509117543160154789088329568791962513687591316579614562196111548264620194233595152268441695103520397354014978125859750729453051178371494783816623067354035369364237979481264078533534108095458888054345192716526530335190415730086874534082192457397804209963618731268803788627570391106325164402375188414373989286144670172888267981436134417403870391557471609410903190224488900333309469069391298184532727444662046404813606508031822320645009147560718808559210256945797764476177414452761889285392645887781572616756664833265187360194606583231467573121255590688818306745887334678864373416706740470554011129881093622622265719860193044253722206551339133413489764891022094079993969876549635158785168866834051504987490845111515980874773855138451263610170866506897783673730339362002717123108855262901416078403835718910326121179572328599029422991552432061166578120852651534624024612932502561506018370257604712902866325771556541862532137966187647726571425213454442648656159673827845387822408078690145188081322907903557665139211197084326124365692644140896316316564298152018829956026245872613245597125888112000397528471281621518386681559792559628964734909419700213313852017711561999656111873264858649250638999981082988013587702185070599719027256594992989165445549233116670927711615177760904144823691304590669081119122884275301599589127411115410625854512697527342699292991537628294057837842113779772936692888098831312647324317264725453768052404820198332143249593403757967846298530352818795815009728595929205560168054973029567861630450717131754474669018487005182572515716827719577665915394385876653183640374522604162506421074217565352237105864854596291474401523713322291713432406505764571633915743673900764683389558341048069925937804877806389024708903589741007846630860960131854044142876020780586028749243390172563872345034081334951331988708593336650276797291558129971648161124902996549746045440957014607504416280713286303948984453611601644849050030074449377002886870133067399117878005203703238899233082140304171681305843836012489779296090727218579635072447933106457187350252894423299015795600089750960119178488070692848313938695884317229218853783529612240472484537529828020172948013252116458207202043571861289865287224031233347080018502497247924163325043791889410865543494281187409551416014371328005447332325958406230055096901562121175155362178383003621741602250084310605537112669729933380682744963808190972611532625196649520534411667680393382299957347019444147496792737349907721430304582511710255291631078800453064118122479713284812989896098787464850482875053555895842053147927319313696098480192365859132899193055222125442964547446589600226760002065190904678079870280733547909497211268348569705086665520325430099570398299078119105429746350459289651409453320680714540348326241487096595999450326501356454962059482670901155592242826565723630963447686725823269835806028263443778391346214839590576173790765362318997483400462955852881317648512862639781892847757018068631640814098430634326737731346028787601436741925027381928891690285456066388697306881622692490048061606100462728735962919725945565876067857040014323460374237071205145986322960206050436868747479331748264176560457497370097811151401076556871357110012329706931824091301645022569525778533435324489676852803843545036871992961973929438435548969417871538084340840904685351539943387048031068771360393066033500622210034942862383404912528691537463396210762789661014372565394942410719408273045957670599543239635023893662660838891452411906499450568622062218952089559991288371691683066670914619993189614298899569730892956069781532038888152844182933916732561644316209267398482093553656501835760773343896801727144636328396539549644977959263517032890408089339888525184324724634997224940495865608284761294454883232649249300034427332729179337391234800011918788776637983630411949526037556653632516514977193066007662591803987359932551964034639725064696664548340643982679625374770847253290486706481865800764746776767663344815804886333099718491795643157710536018394816074084444565504024932512689317112794508807577919088906140332783536508733449209348103451066504965144963456990256833310214800184009041139501851909998720461404959126681987709780110946183131668140867601986790308545384230444537754216522152104131965989425678540621421543196632346487556552802643738620665449785822057008562964181115075654617376078487037142090415862806324862242045567986279896216992966182047841318052276951525538829789995955600649867264855208602430865013211234511898460310879771435607510553356330471025041296558584012275141380910901376931154738588178731018346376178207607178191982605319383822607742319811750391500900084730594118373267071386153881996996821546991268195882224829837738300377542306628209257814379103917147926985924074331258047601944222203935557562892050712703385022586693581148187208880538085285640845475670232932396343849155956905059066054175434655791180120497284722425741226772577557902718736593350957624966272588408738673302433062449006435552368468220040669529067350345623630311441363760144743757584304010787498790589638555480246092942669931427902051255880526936456514621794706130814260732335213309226697047757532672823118033706941093185964831437817322332283574687195335522483400268043676970262310779798795487912992073653506933481310848511420763148365834767651669196536497619558106626323928936206877671246999669178901162332734522778236687178887107950976205021645984901769747043118058812064849012711769446226264147748921687408556288528826364766400012494846671162303162383348085517756883124279560786734197022474276763604135198115496648881892624336120124246351856896019587225133310427787930070819505082063109801159675685579844971054250323295256804840790868109033182520090436443936744983800247604151016907641681034850867765611144956725619362100664808808022119496599786596753563055175942783310434329526521706814810816938249663859338796352854583538855679530633736129585094393020698566270677242684309820320948736485776184300365728296815209242437386283905223727874102431626913078334679681057045682223196398754284927286250067770699619495183581464879876501078966519799814302332511901531148012888837526599492417690405629317310761485015516781932004289363052043637798691753781290960610293834240430051992926617871740054875057735114422603279187993315194352390449452100752824557867896915353118856081155647601485643761490716086073037694684673510468631054295313826148301235126495812702402872358401486886140084137975713421804905802224226042921908263829583854534014162993353362399487013923365142974736542037462012192243435231407935793790437191134128301665343277305459990909648097036152858974206800843671143011598078018412774017787022225270533743595017810350993097853513518912826170118721868161128682904623514755374649485094537752804129659458455679048741122224531280166591546484843581256190029530183453895401215995111892740785113322970786793670635416291739592501588579503498413474357819986745882711305875784879897556370507708467970072917870644350021898420275356391740842203749940600107905938968666748440092074456996113087837497820073226570514153340206663729994370133457104185933217102347815159515483852402705923277933183622799454587614577188203167692078623065727798125156249023649856059513228746933643908071700747043862667769370482144107185321706091301416754321283299346033120909776274688729377275950841439159575342578282838759453473163131824770921644703275542400470897247578810964787667905492036507525273505412873835432329929380781473682316619549303729311510156142717616629269824344039003544197648315579655627506542475646423638382083923329208692435129043644600568961889753370926825751660579007690711799548200920766384523929897272255710938934061046750301817401548382313082651831551942185112360987571283582413629178209999075893553621390723242740930715827120424985282974366782784004423568134303865207900562988936544112741432086272991597173629035974794722580880408412475007449721037552543122921042382113827396621709340867955284258901805791140959302366787541303426531483573805311397446211604828061542832758642546623069651624045020508103922506924626939157898044729002795846365622378839879525897598364284049355997551819510038393857902533544344426238494144145306442478019992906419570785044682012427856245224092233213835603654994026283431650703247183427089547938919591316799091217624810190702732594212003219377833528247082709950274857551913564963587202583240778014549541356871931290382356222098638901725718651329559850820511573019158395622055434282465078689926126921642510550605576479788392057582775903784785517932036619217634183342704233643339418547225946839605489898549750123910142042433403526747172383943817899333307633038592709068934205384177516539402769052573532653883543410057868840147904496970644315657842119883724051543072780760401469487554606888158466744545558292220037338382308339092379730537617375744369972748170652320698162092076668545608880956914782697097623461316143156790644518102629073569424227854032928893122527473526150925032743543995206077923322346912325830847581551943469315559532946995246333473276343763544115225841246636661685157980105042922277408356944235301109994845515479253135318239010232927626161836152734555315634288973380176673844097892691055674195988736399242898368909540259074259761936963107692839710735926522570668467757527110116147919503964064510918195294539813269818517157814883751536716626658437959148086163363135680655989979457574758798511628217848050402113333842683994562970188705049887217277473548257892408706386552576339839858807880062865821558719691554247492379398724595357598453539192483358755822138939950974692317782741588164592078708149288291546560277056464410432350088704591798512631266135449051052358845545444452386406502252117483623184154152287780716726330070144144439052260474367726900296808464650012700044695895582963713777460614362019138120117203323453347442968072418064067842085756333773964426263003865194038344621002444976187935221301350352998167025761253800026759385864010074967778740730912513814613886838642887289573387487702411436271133110495625127854223210036776863288810379244985657366326489261041102719231461950197626130652918750984284592019721623573442220235084250416065352570109606199627885935741040321517293001685488032512514222739694160100508153446651000564377885594357385989221036000029488672455675879228287018932836829499013070318080533662470422854364075243105969165858315419512211651006253131267552574275327074060609888615655886851955602014294937228176732573680624149114512507242328342701739473081953675669869144357972091296603885445292174052185560291153680001172639186234645245938028618821680581897978759076870053124289111986359462464465053090776956320624701637037993498562088723360084195112476262933451394814233717073068698690088104479221665807653199580910808088149725557746744683653136415236740099599820742668790745525379895166665229364447001575112989486531647898347418727847419400813439875482062365870538948246885228760404329864902776470942270718005756649149913208722387883881256101334486833272702707533707705467991878797657692811869940581508743802914117944947548448190299984578056347831308019254221266630945850883358175243234093091641957125811295207039527281217916210624603258074835905117947271631799851453139448494008967477385871886367114941459740967013552920986730665444298337508458333090044582796390352684157042426213208114679184947976792968268055871849302250776695002759113943366187074065788035632680926101876887761414947560840757799464077949563421173666252866935456700854373892500706003033974521523141727959545838464314419477608007035389610189240299403793543566947759103869886606093364968611890513668988158523197864492155156753328005061883158096476261017480655650741904064145183174312261326274038144403261027998520174821393217640293312232181883003116412914166663461432106667301766656921898837781804287196895307724474561686479707440680195186007844327109447290881666861967127006668221722079415226286400715707073768427830228281040873468906580263749230440661248977333716279933584947039556585216852547507037410820456880567290385629798219515352036472546703223698155143909173286671842865904536737173953617047081231419535091535511419114408200344572867693315982428246875889316814385764490247014444165924721586475114303349584191002652657929968287303545338903219316960952374699254857766638294117303879607180320531049037053317689814182468333316578399564002271191518667362211159661412254990524690408051115168180199648917451383463906531001480075331932751864562272281428762669751622249111186578186173184662558595758762906665811879512526964636105253656750910543873528022902345946510023484530411279816181327504875540852493338773711434879102103691402707781262682317042263020202212562660629983615917095858243254674972440620027096256044077611520577270560872657628059941937256432578427968059544605811912567032918359836506589456924339258123561480145879854683595331073439514131072438354861578596117049549853359974709572655599060181381193304847313823282394662874893607876287596624599452273657206251259959160040073351374624085825587510051782230659587391870009785991675644813622160797333647905497307197350242582312551974536644331153728583672831606154677484948152838243020280959073218380353687681987717246812375332133663370628373864007119530446853110070770250847928948814162892862569591735772549257665365161028937194752331299865361407808519269997061248586537601804577261731957872190072477144325102160526052781572604745761245108272674230898828139553330775427635709115323397452247512056355611656044236514794519145901927597531872362153628734570315602344300550155110892390681420591272137677800654719901365915357802585904766455274178149825921108380725280524399731303078916443448171673955496482919904092631673958541678627390324729027575921425063444782756352311129125197485480892739875507532260361444047011930369874982358590498032600724287785818109960761603926164556149490195040203728292963506213066985508191192149283799344024312630605658976919982515379312451400951815243077026255767239043289541750588868338598842818321690484807567584314844832357833271222018655953966826326227353325907912250836342926631435084582276231439869227920876677149717599775947274568405113274971132819846422246695399420608137334593767433446347661052203389276145677578363299226367487102535182191175448114508561395208715976683675320053215509244316261447366750738935476719872261063994844800435528390852300652647885647042768263450341694969460556772041407747059705997026664518763745297343243340408184471008423645127345500453736945171015892633781356298746453446413524988331371868354295689884868004449156531015344025508477645872326355531294593757624784958782996732498468195348814252330866045028098664082862971985583264475151061894460725374142849324895004056353899403932848437267152511678200921273042404695775751366732010442148542007629059582690237362704276882438914503208978490583914641917806895685440279213809428949511172908205364178529776906509894351093300715666865978533186768292577543951775603822854297449703812219959242724679088103367483114924957590524632082434796858321455813987348479693482303818659197422367143218867420071800285632333136300103003433634066311984516506520951636200038814882365161095794535244975545161477358570627900785908137744945161534617577269921668323951890109311928138208394960170376271368382148131099250953865207519379655931815489926128257485671208095764159167845395460479230347543454961897808753213958459249701698222594007381513722574601332144477653617706557006343000371343483641805437838046339492531561769708939251020022862259354503438424715128773860199674291871427475396479399936765182244305245686603010411997535019182444045577988419271974953820139514622920691715728779792263198096032731146135372922125427074822270407558128017861522029836980439469150925050312381672289622073321885497264479181673412370401886180289008163947692651810566242625890381597505789388408091084564894595005477727996510304672153085854319120310624555118653965709384277925421955587359773582107808432044687670179117031415852581040284756971569095282157670668267264986050703312847669525005242797804802361740079487627473890674264222574054240565931188742974522483764474385453292537226358423148474539511656914001874353229095647904650656825518622468607541240687282419570261292173853285489838907479280815506099678772916470800164872844299721146749632724148958916862471053125908737173477516116221886555964537478955530983973994667652775119783317726528008795965283268520072856630779555171986819355507856784234834296039897421910466336642997815477163001399840634643719461544898769405995250446013552233268277338429469535664912428074747187478145927487872980821978651692250642251512250374981204925775497296507474432773855185517148146852010718929869550657886028508899427149819124734950917089285817474401907162809021997631201002265638023871375872888756678764354314844275454156915841413192627383082923209596980629764670825457499833712871720401283289082439759599599468925106547185895767862623483324044978712592364239582225947980593219467386371717897290184939733372244092042221853842041748817286169855471473013952596590830799076653410860239486417737113509949243780327977734008868416087490662789276176753673482490815669748543129321424723907742311682361896944374494569531399289488144714050575479082490810175039449826064433952851498153434911758873609513140097148120257536012011867786352693379787021616514277129027472182560737909604151361906883814935422948959210881072721578961701980598198256627318152026600403892142960531180785083560820574258669178229257627858764694557383613991565195661195501664770334383703681792681109199949459079110734387947534138619823747374408151785332687091237299306009801312154531175994225008139972451379661932861324462004779241272827926650946133333117026406301114491744147626015003765728900677892973214185345049409313577748599433829897993275217720224520011898518667407993934631232166577899356098051283183611807841161978719541309351792814660575542898825906958865900412608061066310898234129131610502498563924734677205402433918525192234375781928540892673044026497534194960813805844276428499802173956101455571398961158145786993707733261063736348807230476045043593681776399624734516459547849432090720702841849916000894210590656822638051348911180253396090435766247575860321914633434629813763810773923506851404837047441418945963304370070964901215923389008834053383730744254033524140944599358622553417099446981041556514475783502394154912675616786422091838999784974185147767613480326281348616977005143567068395340826505614392433614853846609849018557664755486942013095845424152381136342010935281103053930441406949328180702367773717311780715438469917622876603413158607048421747110572867740686870188213074439617659291723471643129982147394639729043657009268202662569079729632441743274945458028638945217420686017635958083239394056653201767198782582456784436619205525894208909480003140705100486827187508274486492333030586899278894115666251619280946867198989472713156578556581903735747546046236252865450770339949833244088092452704645292112187819240006076474045204673824803301054033534464598152380740922753058087860767207510235399571232362344652800260802966227785104091210201651506175687633592283935785412297633825034762407806041306567889393574931960230122932071716009908072875479619745133918206700988391243752070053492564384266929536811734967106264872465180677026330042764255514897499673397426034300347022632171138323534702564329486631195162104439861186368129709830224889357795016136106877144407030481754015775571965556022068138829980625765259139158276684170520766005789930486770774927319356854543951488024541750961625258062995641593713992284569737588415485672726670771233016651313486415433084779966825688599783030824767412073826001947091101616129563929688269577069434222083641280767552963420700121552218013759435271888366447856340597539586742879630615262310136339599866320411246616856579974746210900487059733042172240014414105365316362397005816858803635737240909869010650786903956698711169311928546357074660279902483372137619718553722622753543662455203034793998988303357963989829746056539827421467508764986139041838954545527696766944588307454837886438830557216850912485023241748268456819496832128867355356242968146501085291705118731504380659497830333983340699511766904165051770912367543601876843050205440275114336735805165547666311401014356833270912796656778587940415215303195541711145375661286454438981018841342556634935101844877185180812171442185836511629672340023934597211933594446563271961887773522560225911914525561206379696124449583931710888158046538932014612823645667180065794178584945205843050283965326652403030326906307119610487988800218349117787352895060971901106854502606090543212428749376364963982639111440893109459917537173523114073685379423819081626633461559674714943167119872949704172968848810480794920686143904857349316633707392008404415228018462959933660145856042772096741319718590157540411363508313895847033679018162516855219667756629668323603315580676897202788944186574341121892199776716229167401631635597014680758284559931794167423738500294668253778575094208674161704765684045049843391643808469335164820911163416285636150775966581164509718887284300512955930710361330417998171891844567134628746541904822355722713658215951877026236925846728566948756625005993964358568632773960737942574376625373927403299588109225066681033930196926208322073417194186225437197938561335516819244901747634297285337134213638489563703649186659876530921530171387620418543803334588434186694542092022816358122397362610522239137648576850705351047703783638912179347927230174450186943905350709293390391860910413986262474220651345550974783596726761026014629395308587424344465003074973920393495840559235090039317693503253969483902116833604957382585303033859974165904245632029479675903096428078964365627756170532097888945925653316255080476501097102111225371523862895642876679713548748274158596211799854423751802732348265104047349411461044446490824723373971615577978945632241620284284161846715153603072484421052324915107993522668980806324054515557599475941792055644309641140414374411709228678352235687668515698514078146253858003673384664664215051224194348610458429422586306530590063228123969586887929771957575185971837140154071079792161173386885288631527061550571932562478387002213348352436185181564171679389072335299698805818381252117462451100519500975472510009756179668121424377625629610445553443514374018402871999429010365894877142124317034381344206402176358234236002686803360582744328209756605614013442887798492771101418530130153622151776503361882615672358997809348478379200819848464420011582462126905347491777666110791834203923386967738429919614368331055779230752175927616440770975936491226477724274256812447145304969701007158394296658365060930820391512622688145637060913653509500709970669087282651117512412867462289280491899158315255219447591988073269116746625489518691695858406893054313147956409294439268991686260692546692353190425268330904339428103244533312944027792536256449730032486416090845311952385129023796539105358157627767251473812430298001097140532989634377693797240151997605112270571837513866265518326583382233048658467568949858679951063038928726356302837682192284656515024563289159198731166416038828265395641534782044861168911522852587795469615624520884254732304470701341911302942036401076994829784343174661914427403126067594392975193611680211668900169771005330193949562208774929191548062190949375721876316442735037862880763856735748451100963199155316405634767295329886124076138158060155377893331672241521465859056984775894943326108426392821091915165853628679244747457398397583620712281361242572276262784881308976815824141480012837423579002826906965481685467480782289792054433395249713228997075157656371917799853362565050634829485291494611075566440389217541093687196921800093006385865019657933246943127404293649689350981080369448747152678008055729885568605143100490003962579442394618504661415910011723217510900341288931019171599353755137056332222730826236955890621072444310683929957176928456750526230073123944778112059249851933314216152439255824070004419247803504040265254407324058998689498891820565944397774232105827193890368358316815409256620764181957987390868358810829609622944679796778129410146797289232641330976700178228736425069222497511224953156666075936410246858917165583851989855777307232133583969679750862617449028151891642708706641441524158050635356478152485919905674242917651235011369840125275866437043075163801067720417403432702907535966877572550921465796772361751140059266516591136437939484254188826831586139371393770624540983356898539461962178760644709451546349793280232631002864355118401516355457461823483233822010273548814076510797489662953186150189378772804317352150278263744137202594702567290777369399017981155272454036862024572966777650478550663075013326187862391037364962032466411930268567961083442388506575423538079748980530126054423059037256418074683719924294884347376694305983551269782700671108456386462170680847940620421036045750205083464476000755888998528540754408001736982398354144206892034848409161436773484395678764991195141869784048425233799767644345164350379150772834735133416066487544670582757998051365189268651374324521080617954021381978636069574970877741729929153796342868267724365333439102425284891509439537671578401295002419023026991344035709111686118551742882128039726730621681410123431944291976168695146166269538960997311130482999614956234677655317513672869178300236502796892613370852945414554054750723644305205570406714309222860015080129300220675408321647755703598316076405431583179897219341573243101615015024704255788309865972810994409861399193055247529457167657225666859546070855334244390753928438990718749629831982093094339745754674368452824850166436526943184385481854199261369732874082700083593566386745167839034784310515536136320871501299779600195339744509389706026453004660804264784482360196919174586983676739048019723334264997419081323717815050199205881333662341348390656709910487355234164323694832182816992910498180853132396386795336791346501168828617918006691647370740816514783968761663964114306788041560613598413375488326963127781321845026111543804341082115941598873425110681646980175957105566021783799240334658359803758151400426903225991302329828345456955411661955968323124429731470962214289497310774468051344877787941090103036127710196669921907831745913954064229292396695616329386456838531252992676297627731928159811918626394529891886507195299422613903108436295587861180013392929240955425897852548834614905191897771416504601182894015747949681199212885478709903439896156082963419193749997567453636155995884231729864442492619005851632430565550750567627429471965438171451624375927034951167256632233455439597677442075931914721451385101720633802381834136286580707396996779302655158312122044505107382549679496083457393753751999524044896727644419743836000887707756148217479943363207682141206761305372904206752406201500472853821036711174686174860545190645365602621270287479953676032547175447719530215916494747614720911393917432231642727805197844379370925867216102619948422725194239629060115815987172236301189278039069607825140035228020275964381461234316987765149902190838292964602913934167995445090912636626466519855369737283177484558702365481726483684737908022842134318271938547000413428230303776961261485681350438387401299248048404407165657892397877232360708554628662508790651626436012590521608379952186208368587074822691060254959465229463604300472119134397049509451073110621084011104071168865003908086326805185489451696807372692853551312493395169356649166964451877792579835112972442111123077804152834657643560527888680719800723236722814949290815701099358188664300691407304549851869484645215353589711406006801753085384079738875987920823977946029774520984422070983183794099515430696946222486274470616513286357739983842723242013836487545513717200092207633440131536745194942306731810459417005868208239981846826646145435663754014902876211229732621500949815675786906092648091688841117431207626459612682544074523419958048152097745506610872444944700019249399230308938216931277794713581431339551634675685087409962943435250512926830299565634849284844691657604763094042531473040549488628830097266124466425821507328792107313202273147136601157510756994074231415814061834391088703948706336326026093484107992292297012180870528687107666352915421646466008698480564229040927808415103954885186360320777721751368728225680830577256040647012293443401423056456101093333371167033267882007398069115219604476007458844328324326205379893028422424857783863741375866297402908472321565766306364250653922773810757158188753961749737580048262822499736870222233658689367987819326771496248447620148137498495345653827561065170569994023991631148453845702753973951912206608001516935108566661228775228373658885211527532152215113334271075371500993321309488318987737094607828171448931441983452514285085228224276801112858091445302632982038961386572792575737698602066923373338623903338202885337208012413863455975623250446849949544538995534716347164007857494868557886197266360867521799311275532712764014720507043076006735990189762399870536898538662204375939882101742421574884211075286719620434170937462499216932997492278927712418436111724976989461400405351887471488934875014570809711757454076947472077720186904603530506285275128128398226328296481186644061155390944050016915092508200983008900044007600347093066551764512918820511653624240231571438250356945941920312022379869563226070799645374530770836763439416119030542338789082174638481971992989241892694971169978685795693807406951722338727950104158028995964589028556408682911735309817362243040323062436524963317961775033792272124153770976433184953922211281555724970683223808165266730826718030361802657952362791318185207431525935817796076234001866961025251502227082790185020715625461809894173975002510507698012997105281694107383661988728568735513883689249853966093955732005493046232897777846749657471489180308376751541155205521003659605013924711986458414043481217772299590436030878352679297230161902580534345883727393925908721308242410175041920792851795196604053856229287056709775102018399471027402809463040013699974819522887056851836369142933972625378915518107083884082045608624064535528675871876154396131870092167973878236629203634949593684481095342151517866857752860011358558405962901001824028012494694921415300524910043500616331598450656433233287552217207371208301909586635913860297340866117643001742761208822762827770773564737076710092212665250780629982142656727403970415680235957829198476771308133331424639349106948029221186484842841433082866878805030867802616950186665895021603153070768244292163439087450898147741999857339593779866554680266939008397269586698836405232482661163874154336240995355817993163611802641841674571839364166903780830802715375371967000643924212126070428705354754995928946512282283084998310212152041421106180286864274637607266365284803945754908295826841583430734814242640805186637001249836508063850706900480768413053001883539168063574344609231674110009795702347375734961689435687510047428389993399088040232509294413887868796155666966539783515470758245477379138093322721711249545832592805457501085078241752841597798640656639750838690486273524249385919677274934572729546670114675886702028745013809092676062918984984410534855261083596685854647518812055055662008875480436049221810495437953095026799535793627968438999881916897251022367313742367175794458611510567692773026593447448289132686501907876182037749069131072018818223844960779580670276032851076632896869026221381825718619407193977504013998220819329582741757104583921501935006729113853897705425452887301549270908639212835348953121304602885767829696517847560715019298901268032573133999536457631041034988086786267258306895218500676471894521070577325433456974210414494222034355971842333765949964654702256365909996159000520973286327380393729276673315655962436783219685892179261855141920062720025755228195913644581320056299809673867663511693268445871962974254772296062859865249638471081948669059354704523342244201927128385709441898485316041489792948856032986358474147324254724081442279276759906745028179316089748509806758206586980704089254687567515465292298893964658802445807564352291118195489554340600384309662752035870390617743488823887410761036133027955099045906380543235284758484390666505212373290792303401683783656120359911639167061870067618242022558333103589502073260528732412580951403883649494892911693764070293971314015419133375866518695943201101510401451798281625839973504916470136140342348805973014881723485794030602474671022066892210425029758366183213296762377821226069720251645616235017987114141214534385472776999386795377345666619098195661822018175027367117553739651326112986768641344415776713647559436046477487499398470514404770693519157632985516493748682541251546849202168237208050473493007021951195026232333508970371925686598763780590752551175594813551190074135769439023813888033453901735742601546223799207932266321135481938613237297396565320167073698671361496820290590924384554831508140852663880443409666983666584384686318647319595430907301494252812386467704216360184497837316392531176429469652969014627524130613821362078019417146349831568462507610399329157681723740806817623127635028888782686122520039093890627427365462079569694494385824192669784570290467918240434443559478605870164571364172701783262999170716562146404858899950089227932039757765388101811728765340350326243572485803250138549876552078720191529447602737376083429546064464867769196294017993690578191804163500341466389543659160556082407789953657091675399694664401270503893691049601853792244994515814478046261315312350769452745823594092839768779236702458352255085834453049197769356091359795124116520463426621963474571739386191614136334000004563491869699177476219844861275545651776440846223648774370082419503579264552494274125424449785467397858090587407161722503347941236644576677936670039272683449323933980960220727100528211549734953171909913333054113158302741352137722185976757535459440104703652157951399970204761431714689254126283994407841518710666048361462157664544842300931299998315968332271126292804414722924128965050543657474129586172645962788046589220527035365643689420097197025653236253864452697598432173167164352578087778731392102458843293823652039636396758394726737221916539717795976689361588995711858368755890602334385200427120476009165778669505415443383170100948748043255308546918015266953197179615065001182216652335091593095234897752044836686320251813749730743979344134534536949585612972583261638703682851520398692927270102406915751645213103648271581252240691499500193171820857858262579972990357491346869281851697011302618155908087392464147838989717053700508381384121761554283878432733397408477206468573643454440333878300839929927348394086453914163596326448741981814870742037996858263666690323169484693739721070733385746229114944611900734247460210224263456804190245428431485388152474168093642804314250761520863390091646279203788241891901624788681966490408500282090162047414597432032301526801845070825291300236248133324784610355163851944288353928454679965041251402650158354735005504842244751196201803201681588759846441696900064342050439485025538519402947077246635032243913145540692090725237161828397712846439603245506178740872487435486348701187682540867743752344867044075569243668965092907207859597242140668929888134924516473596133579408622184104611437069962278107107750338748082202935317626556884015269535969222882136955644416351894860704006621444073614359449311826592795460789489156390495367694500058795264027984462525751429128421231042152975435640353496194013280392332571490835925755593993635896841252420110498467482371364914395395002418647047507900547516875863192444476881476120553503234463687257382089242284726204584849825755567622330014013115290035544213304414150163613099456249561660926870915143393242580109209721051780800616981645150448148746262994864408437656223866756630249161431235345624943174661667743863440634262026981845592003220400157294850436212372905085657386418599400550555177800296121639604606883917237234359787923064652633304753427211742487088260814079943076343161940608833355705567913344490923993635403570976062157858639680290606434659699855102929175422989698184994711203463590838766959541536364246665480921452241220082429022825978250646822343815813253088358767197575887508032534395611734923175426099318098459200990285300586324389448123495782621560014039043686566093129874008993653300528572608449531360991357843067071516052851298573274928393739536597837016177682224064213939032797955438429137833986236547064523749787199691540972507776252700605877455078584693783570800706441001621110828975222726945582197117491516958386771365442796223476195536806865476503433693773131003491788329519108572676154170098282193973841504822384644442094064989086674069533975383341095166684495454257407451142756579971567935391497703136709679366210305531991311040134917137571110743934499424527337198778398906488143571009470415608343335525009988982937329110936808196611455172215525353864581151853093377292108231130224096479016264827334411690287934435686278746705351208476482671801249132104177068594468419059766536587614643120171109936318850636935966447877992139039658956695110055075904995515170115190662134315919758587367330144561416892590598104398052595471234193168004913785245974766291529383141314939806995109954676720183619754776709357577452246517983548708565116012746343842657606227475517946018550931582639978618714842122861975440862099565576363310851374484630478920608226496961713541560481233298370800742938239728731628798305969047689772844862240345671750515475259765534732464136474045543458244852952847899849840434692557158155168015491944138732503536904971388853611726871680482110988729072437123082681036918500879522064262509310906349840453765483089115758047095521054416621920360773488661643504121032017282320340014038840122965589814885164237691736732952648445780804606880702652872733281393236905520053297612946919280781833889765301872641641261116272672572788387981061880294180975694907790541877211491502200667773274132240240874039162190775712642954271500604877902210916574689450857790011139168627205304071086868266304089055921069726550568475955993651259782907543356287238462101456962698390467287577135068661558519019317444646109573628130033506436909196250692784664600905977102057098277889747495495858745072061728724243833576294852930631379904830718477856329942624424848189739401808290966441499178608779991645209210353241621723810159040757442556444229729656145774397799186388895804221324985716038002966475484974151161938988819174164763711379494659017613989259864340312186784944130791926382902642144951664794473306489239559955900589709001399982011338599735074815972114038387231716243894495988209914752580462237944134796749581637767246372492969455675784585669211750869792487795751664072879836647501865668107533402954154038094032856276894792292858963725890483560209922147288637891228563475766581301479382998462657266352199205134146553955104419818709585803073290890523158636194987292145706411685523552302048100930896125839437722730529662051768863056589806765725674775499640191509001920239329555912539937759990050313659349129730822465971782701279204882664739016574879894241812368972216103066925825370943793957272187692955121084590045078888454951853737811073363794417881612873806233833976704541326526283633207570121723530850105320638821027378000113506221500919705980560923064074023507715488437026476516526991894108460691513550948880207555311727033261040767419634787906025174688123817927046580052407890541900221245365236612945208184737147285686786003587313756256036497948630723413366617924658335611546108235998553019307645850704285845661116956725219314662983426609129839414445131937610244094464021705004622103802673318676791132267390438851348382505029121195094639866923985514884454624844014051600180321820049986556465066697497600902410924971225690617230300339352015028918047398304744866421895393745121677955391954597661173821017576786470670271969640092657565786827108192098471029579216845244305856407247090303356916460209982911802434074834903873058533487109582013102691218004117597491486976858916077408596355451940204481639556876978718171102005354384955060371997351322651062170594748039125047227724479208701481255068952370975016685104057611851135708905297953579755985401123355892639239003746440064779382761917507208312450031382604101771518091708212431203536695714804489904703997136009765647583275124774568873409893694556174162537840347009558487496597571461957392271455344680212875045070743486061645282117791872525208942518640484887340981079045527135951474414718387618612285934970342262520845384022579030712962578689737427628490065007167804919471080552096308919628063116548778601437659716204109668568122444206618747532524844533935725167590566884592398197558033392683553298816623732101544151607102606692207784416857686115131931081078592669471049704366334529130054427067994711358068485514679249678796363110838651365803702946939270125618482001011427081270124091939227776916800760620482038561595406220667574760518289105174963759059560103035475554463872895653743007626000735859243425485088020776077711241724770520595819338022031523736412572864207421362820867806020323274249203513606636774759477185726980098783961273075374716087360311341664908995862532747361751382348991576325866282418673543800652797986680960962681227427761741673956296448177943321272586983521802851509746328401710525009671257336355671864321112180818953998801610401839511574139396969259197815957344944699196164270548542315165811980622703598780676502256698109181196157685287320724761054555079797218260077670227705008064396733341503796708946006424548771046789927211892188712855549018581254313147282545272617527391349158791764161361459332842592682365672940964437474356445579216513431444151914356937734472555479927375067441918710477879530029824777715715154788856221547147297586570733921215692556608488128118758894063016951934943187314603554227664901760280550309470518504701646235937476051469716655928351103839411916214594713439195641117649200923379079614113785844816438837169372033836533113087825156039460166440237714708487143571493073682064328613401967038430154342614381547450391327541120349186632476799842334285204584562083577597653602517856899341977012145472566229095655840404401902588908256155605185102597756439589956479470940629259534977798551521377162687417162962044723475504374799656335383481175657739655510519563915986107374551423103240591885284843039248984142211529451518495468469615760363680260376973671808845892968426386456725540539692764323617819339920233962922943958790325460045331494280394698747209817617687526705631110331865920691348719325591700824267068752997649911418992906927745836981479938892153137353916436576041587080160199232110106443788538856959028893211446716781806683485276265714343635247865482778055150850710910551149773245606514318544867448087153745407489966721446836461451988848008690965927644469141945854430252849859617339608321319933408192725806773554842311110942051945399097127802605570265007159880341306269814713446487801612814369737216985052765384458000313572877704087906449619658827319541702522102041181223038633986518297765354568128008697372815287770762476457318426250301935807877469458769151559462397012285525632763034531217148020036867221738066252351333204686800746805636494045876492214183851536208781773059359337325739748097639616270329873523911432131773108360765997995362550457488416081714636418555488689072715160130660620993973119566062779325476645300617772475853410140416135344159389803531960170746525046088744033502114320782250332635792916750736153503723386523438996013291383657852711756741082418390449883621318978538311346167194968163463792049209569430798609155504103794073279922337319927925435342431234688874548332807943288785288266258375536122838328714240507586450127805500490926999415762936443696827430082808808597802905607120358614978911549844568879855145723091973092558575285069593856660376847342259675952373215464809507676108394621728150584693629517312896007246644805758808839621899105838196547681096082192630188205388964688416408929310404305236515782304189267819200340697009966696945689924507043373923178949685967933156444908053958525375800291786123227924404018932294418539846931546284945239611092440678907689046475867026261995764856702662169221816809633616957469394518177449184201807016352609804771934603352674012670295740454314082024095805346577757674351159067206624359521169434272650661859531885210264978167378375075543474263150683370873261135560506353331611496748824768185996535960654098099101192588382812230372440204801656129728777662909239512724124232764755618179900510116160114166197991826523997069848739735989264242780928053927979626359153818120186866136726198631552490554135763448937031261006344455082652320635004882766741031492682974041839980680332116361497736540904638526699797594769028698357622565001484173597818901562225855579609490075111176025162763678794393891333290006041922912126712489503040623802907087015687519982093870523889020425489032073653180259926906320000586031544615841223590675145545045525105323900951775553106332817751737260253489127220425346950421473664914975247673007331689260481003739994425526926004587900648311005535479231992120968244069134943256495238062979840239874542252277733596194490384001664694204144734818449651261133003357384744625847899226649283066230542139265179342589902497550172305994524874411711043523616066274028215271120928053515729782309291533500840457590468876896232397806903157360576519595474140551213935272864887799004357296688553664981765265703150302466058000038467671408183228382681096879579852665531381133378404395312038050129429324844484062465708108071983617194593407611558759491950999409503232489526175769043914867193186082997519696491272743599869753834387952558367918195838230883609061689092656686899381849224183715843070997061201367946197477719048426564869488595131790757275539503885680169979242290561231089960171247858705154379923446858417699350038094805597931947887314839697865439446077097309935421667624110606533362923035893013933887939783764831783952353067619834460755488062595177091064104250660349683603000486518634254099080231630560941710699209287452550613884510307758374874026294601172568491502369503808381947953222862987877139890900924133954792006814992310936227973670518733094956005231693435092492021042746433620685831144633559282048676705644238431710460072495546570696334327789737251781637058610930163105490772194838492652988781097706948517697241481349093660682887281419739589520590208678502496823097614694605810345049773895584790153125850306664688320111198643750345843108802624020698428503397409580800428746555074071992703913021084397918772316213945001018448935938779425572170852805160988568978665114244132579133446072761408508405494993313589556762485230842078584437553163401493338505685063892573199791549610697393118004424688459374603727764008928341809262146190911858016619696624686690739347733379245139873723172972607992791243050408378949219163820217029984800080343042127399075644585493377466420052735019085661967786395575502618665712888367003271779227564918439246228446389447580738668897232133413018962005165621388274434078485052913256805262143100818230250618342216468493642221988290140246596173374782642419404370808869665241237068013940267273237383092067008803236355055280333421342066795820255676003587856795275062902938594831886488203343439405070409885869726503839341285541900049954584381934267432359932241601712972176050185365633385920454704534901774548896679315840044907194291330010452016257460028820994766913003404400986662116621213014444831155274170206166409747503856378892057049398638031136561197350856626397651483922627535419427419929094473810396672088859916902511505499983359628866311564038371568238318798626185104259271762111252244370407026251206177956647884456928278741034764403528507219987922753570574795746385736280330814759964830169552822207015171015911505434243218152374584609046715318199474965328116003286574240411935194997302374091323745019983172452925632758686386525027497611902271715497781565508635013623600033375550999357750000391774942106935878419946719455943500091262805726302687172102709063450234272018565415044981858131845079096791503957665428234293133562385871191375881668570873392563474646004798617633189412269869717611806416055043369104888466242391237214477260185859542333304616742155458731096025951781363628998125287402905952394624576168919894934960500637175965393008413175185553735430961024690261922947399890679532801117077761536462521393206488212664403797299065455150548632351317233605999177743385000897329442943759241772767382044537552711053117012461414079038278352013673457733263729797696554555505979587201742797559188168095549027611237619822478206729324215447129881517444461721268432530927742636802532149515399707233973645791237259073976659420743892190645819744178867068863625525342897959377693561847544433670709627309324640240084580900785537449736589976283704710481245610271669878633169517426640653508840739368616807596164591283846621491406672081938863930541350407287363706200233442015043690193967764074920666107494361398272247807516454518776222495541307670422249173661811021460824953573488636096184301869220806704229277654914641734066608719915241222949336600964581437540684392524150721856654929054876122667014630333102899309468173595840949716697550574375316773280040809626109889107589917411152813333511151216137405535750590476277623419867879680798969741198897029483210418299744680147047721873204079878158759820801156223145204613538892247468950614939890783497485065989230738240365037813580220923461857316493199661056782425818839488084720135357155965172651412876380222871083969004539938170469132696809197150830323217408920426513731976915879153043524693446639943819132429878422132121850405521055700311105363195609428150662399650650565767243355750617437381147488342805484597509864573520343505086622960285602211581447162499343785611517893665355580976375456878339820443684576240713194118997562883173811231631589870193238094450355516048191891077578744695758979724186045839854860427697196658438228234431640863512069009078770939720193607256775355759074608064686228277909565540954935830175887276000485303733323488420780918542646536753349853001535473851976885169474195000449213624824062933541774188390215164043078143360165217435857712670307777902999476091317109246965102617622279527638530514242878611940201506001600312276946153317538883560354061748675786283377960044923658290596497477418976715681781970827516759632395661930476816860792374421767837772560119263552323437197134718042825493037879561714185025448122808975055501051494810415309103620917823452383864452642197792122949765953233119434768583463591157375587013073893839342546417758666311265156608129482235771197182209288228159513070624515317546901385383700719693789327148950191896085480427101491954215837385853875354195042346664407915237392034662263645554159580744785686254750481426573854480944081748839714053427104002428797963741522088360611327569494117417861267980892762879369343527772050047943203291937283120566300751838252970081469271747417808911704121291431764067121271113498187659391781498271360404887352151013978357968805712912470283937819868428461430061934309110875105879078318838148880198426427903579069452755492175686568472695559422003529013405595843134673500192377269357866500244303009848270365080944391474811743406768774249025668849680663921379741351826379539393783800627167577320849768886620781373890797456767178178253615829101567627121496799716498268994278931761289860810372485543566412019146714002046593923479039738991040322946579582358949137654101966950412651570166853199641756625432652735522755505972364722459192684753422540560506071729229760584488952573309821584598088284598422626800606331988463822894120126896078641317331081286753037481077742160246660438137313174381522320887354388693187047711690710551744998696208890113363773362995885354451617186077506419865630032255641961443807390930104486039032073555692374291720665444412051089036247591912954900421254850411661366037877880510554481113575205063631320325860524317856347359021349022499570254882876983027889640814432062388787521800067172854072420490980473422593089562184152278849177667425569972825908086392294874440871125959158625130597572357296693520102301212369746239695330143613920693731084437735609014429513465589657854147850953131014921602484084131082486131930733320007697186604875971978146257878424913232397047216173459201260872974349122862068493948941265777039506987074501426441601584327029342415401573992135179783514557483716132137436301456973156411255332000938247379685662964591592776479401896067340413584189251748617377286258408820016803673574644203603363121615145660989424152161958643354146430865481316339647226809429449275720952530015206534864790637006071381919068127305485276308214835553774818748391262864962447242908234373853798566519874061703322836976613104098626589420002409851979473603035993247222781721010849339423019633380609553392839725705026124731011770946995236911328289672097763266935373461931882851727660508345591970884220351511614210848134348462977706236404762719532223307401608570862805010039543176131479550042242882906658144040541820737534486340617076458887321818970550051844338592449649435967809385235795694172829181017103942368956032979560025619104403092365214807124941444173129319098674355878209981230512800489903914966969354053821240662746650385547773533557250669359243826225507475206454264199126420502788834157275491628345821030503698918042189308607100121110711802862423984437623696262518077334428076274410151331910272943054984004496661668553872123741748219005942912746947300407669688513189441055176707484121420604753094172861334496385729071741335916116149093765757206392861494145360552636914813069815127366533846143780784477688914079424743607870377287572583758148838913705017393534002141331889789766763676869486349448826908246883292716642235778127249969601609996897309445524950679890255076353422921442862201866415171604985834674858945976997392622101195789869432973220650440287997670535426383853835994222969984330305089286982497933516786593135536021279586532569449735985132927106079897895965469257904706927564179296591786806393456659401876452307225800868165719975553877115858979287239680362955362386436030525781656023198471696464875848881583825179925266260850083026907311936777794916143848299150155726383108235077894444499064975092261168528739911880018754066959348565101465816771247303723946995137013311056082208737417664768893859831920454502589315472202242906347714881764928616679693784394062907092956746782189279286710535955773132990969900338724229546558777124525546196572627698925623507780850378102576211055205337198285070279903709726260220808080823032150511766391300041884342810128354511840731444404117295677391891103356084199068266452335528742159051393961039979560071849978790391922531707619276834617423212436490308159830389093210093086283131219678121093811565243375679116747330169677144535692614437530893063769210819368528492801571200638287280724559535710116963123584609084579387609948206805332039754303710079659731527568263488012436982975798879872892401776644582845532725791758387687065032370504648126503029928071497388833525279455670719580082480514975757014112202510796849533904876347539496288061847337273312896263227039790792392681317165627075238064529365662685981443868250391307700230935968644478985667737032375431139846353196869616704642520910175940948202533872251953224697146103865731373562114542664600587946774154405999843558449710806203020044354227743602588423214430025123368369587898779832695612618471272962742481067775025568554309065388444013954012261234601218080298176701761235457336110096473870993414687072882387182735505020351744942353733678227397086664299680689723682762759163978944208565647625638802413892973110011511531241494648250631597150677486842155288528910101125732221822173986434063027802876797022995098466045288385838011847429170428753648444892988139835538012194648157971896161230851574299868569680893924570787340492011856823341370121492430993696196709472814910353600918905780057950334785619785422268662095510135001627711884500872307107041637938841491935534781949128111697694964815909057495368993331490652800370200973652061357560402486495465552998736737856957631922875758330327703673167842721396620219575373012709508342329741863435007412126313158146863081533618064149363661003574875094025123716277303692944888030856795418565069160835924358458364655300575391157008652844370819913442263343863900847538013992936198415942178007935455960387925834509867748040535085278202352142751439684701189423467305557417000579268519824242416072373143216739389116588186232192621278263022542449581556172470537535082930245041838467384416917970850356674153278775366893091575514511728158362530635883394630767444018757086861387060928186708756284254180231910192856939214632081417819476212049820001992340608143292349415974457985509892722536344497455453370986392830386058867798914201533126544464792149619965051675612910763357960032811986129829475341441278830097126545135982357379148490218321929568397378935563367057067394179041696116899197839727433230044850701702800775935632356518791085407903065205719190012649442952972356202991207858510490263724539864766209970993305445333447424341946166790394939986408868447219062560466486013601288352957755693441558513975897226191229536468860434814255612926416141993108353655108893020996287620668654001977257816534119655336693351566866257397607734777563810101301078459857027367375159402839301052594216360680245566041918919348409363967570893536230819360816771076370473172923683228193391520480769837258718674204789609851805317068217557129700912288496822286250575107260412070094106159279594397132713356447159073050458787035171045490041809953784940543005255034261683963414656254012639833288843640185123161713873341911483568182302238556362763302590128244763702710663753547788288920952024363117638773555740710147862645137247955619676129677842790769278491940568280579565356177978255234655057400618925779503728844838652118888526089379305472806339533534475986876145862604868132639641680613435623210038941828558744675447098311328803670173298644174906039842613613534850535952826084706611585051183911585239827468895020801619605643684557480246666113000475879647680446677576029784286212180795066399229912223356739429574053182221208536177821963843747280533266344205014020956285775430453093234457206219712564405365352978937161539415289083417230965449627081947322194959590119452010600593548473980608475952584689174759944275496018611864467785758560648902215667637153034792576863422452006959319692249968682595903141041753338679426084010888902906992252122734389637073766752693670448033115035980919186630924137075170490065431876412740671955329287003551197339180476246172113168513706518687134236975437995335830203953466893574418295646073167946608559866002658912728394255686465693356572088883593455559898046713269109833797990808697372086811539094480151613721595730831416478383743592309663681636214021843411396070355911816573019791328175238054898547141295604429894712116826203257063620250447666373439448395841229142773822751623242106206570848469201642394963847011757345052579702795201067778997974113942488287920485198171926098314470271736074714040893018218990098848765140475992186394807833954502192869878391926384663287421495635624817409511180164316573823598739973628984084175660232381707610151362560066575015607307973047592943083475833616686215035345942906870666750055510238015022690413509365555401017467744744693204060762615186704415018851223152100842744243064813095706725942603464767197963179505871348523162157768556546200396313456990315235580748470483699396911181737288718476868984661961754433239730836529078017817650215021066415553366048293538514123825429832371507915140570106471087532393138003975048670582075708781071095159441787244287459975431620262313422417364566780079404082243846715270005248610776423965598472613460651668103883572918532851545987182224150772220128747308696057501448481389122369302952096594660794427926687844851546005495165459409700955185938352454872354310445137531404165303434053929472556683123621540302523997045154432513357071000997848348361606110728054058368271195727492967573795028775333180302731819099765332537404949333722575858754799525940761730582186405030838181528722830474297276803974974494428388718577557534030399186989725905213277606407991585419020609041815626985739590423225671839907053496456508395451461111781261203114455237912285236915594935870076805670314864336440946328728457847632710209970989111471194226989582747528820478837538438232562441952959382455636382027446440130647832518238026552711150768229648196270715115078979780751767977014620646038196533437795413986457638638493412035875935774072790036923785356556518272698729969784658536166566913100108704766691310986433697949751654101923528240629121477976398069529513539895809143029657412211411010527919283037560316601007300277421638882924006250360847052303562927399201607452358094401486262395256229999322019596475456391309441737073683368120750794524403495730506842948410635769255752217285888550848980253254284464739549314383713002624154728493271069848678264765852342338113478879138448553337093086880111793729340899987226429436318692738683257819844911672417934906377173948525495091735420657506065320968292956398509884232769566518000344144444462383064043144335206656275046175760714748014508582266816629794679148632148938455287286227843654983457777050495409435485925174611677289170642779956257595137549943466880677471417770090422450832398149799538639933351416394083676615157982946251898506622537176798221005581353490597574016970290893177958945427541880036518805100183627213865967485203013531097901104963891672587795158897843165541378163603496098546779229243933932991949042187770881676730597616719902668924779837682543307835969525394633067879016114929694769476649994940086641258923226365861083219161397697340783249799270201115976701464103314188492418610270969618589421308639141064313166736513831434894091120076852289156737463647650046460316758898638276980950333093489172848339083907248832094569483838557863009668415000041563241972410877936384701972889833341358017777430929174876575549328590337509676613738544812322719329127630208921310660217739405063071685187208157294796233207082278359371734696541596285077109601945180361766475606189102989098284533001935161899858007202925627782880932155922685065130213255391347931417711243472839285658140856733913426289871242991449952858419876733171775752146328004229566966092227295294684070286779133997823563943973435975029030625928266292449612941845286089968601135682873174873030611386637573343157758383182744546499032054733886498813549878015616654977821294722089174772512088091235393261974622685469660748613741460440487526386935095148518816083102990289226421189456839979051595987551729189996993404551549918844533854829034498392801101499635549517164271497378454490230124162729648577958827869636142712773969576207164431114148568963992336768219355699334798030284332710173001144486575722116922289928879892219732764188792913271405799578697351999437124454777993258131703834562778244074926864651338212692142554980604128361476280049725061081357996684908285489001427517553795854835866646786203043978481133767325345380147349251257067103442955767413240116280123069262750082655165876906464196087398479270971746753458711753908063642017675757957941912733001405811849349853120414342209814158637440179734908634619118944097650226335230494068143128477991428478970627866361894025037959637810260421703995173971767798669245279567994373261896341798459764688916192164747868514907975951254269596758313053444918257457704637099764266012036848381355615780773663020435920008490778730839082423053347414579261060472080355755864374316453603419809626876993828220583748200917138174764659549580684828465473043864804158428425671618087737492827855420362588951520709748443526093935428664581489171172450182986703368754735464593788182367377274400383332237205951598173679202188027278718611424593916688810232459481350449552810237159158919554416783246329442488720222986964975697851996630048813759766869469267369184371936844059725401945738584916626583374257423800756152438660252158855456422158938568610335733531037092005049269257182416514280496047248163798300126250723800094308035298708963999637822853293247878281501576297377463306886438278476276836347480748089329434031267176740234337429711854090553900430805268921042849278190047179399917645427987637316736167813425912717437151043650829422919786234726053004816925554847769044581755566299225060743350140152489872158941334367000470098654623559510967389262521600695821706767604166777355267360398122771436948064493344420976443628369708014157250469770550068453161715293419379917477383266205524762328958805692904742820809856890268512195127423130398212841744982652403875617133082115645319868909321942411042227204795475815443288353229153138215981092729697389232640080735584852278477652517802010402638185116024744139737623584636382373666327168012787696209693149135283420372131077375892662256628012329425904871865785576222893656605768520916830512094944925833298630912468247980957020752582880310503851536182861646629438119662088197721171470807219577909196630715108255117615729517027487298672443250294902087994727030252344834102759822779835273992154009172421077291784646352800540809635860461055662998357482795236726187649603837191371723128350943586598248178074030309443796817165929880880406448640087082913815018625980624042887480336485392458699907584957387951944728486853076616747350123700749528809854229958398055916741629096865187523188287966614269146371207296721918778720814647715215780156271262148583527992159274433571243128239922274494119856435462714313201582440840417682929818823694095175864741967587139006706389115425881051333839376447138207232051575772435320125125355165314855523142013548517851478934205221714553864593524277680332544257506941652481878548380712685395332918811226748671702505640546645052019582298747962554141088512262272896674211060438566768652089594261188857711480356859802084973172396927936066318918872250096523901289937270049116283160394939602004691671303673470721823501798258978248069741666929980189975361130897163311528135310987328384344998551944672492149396121142849542813510915228102809831275503084812409229602864612728149335063490487750845370630070645593912598761806706787042861403917724904203779579010834055163841346337738552036050618743920577954997459097856201247176090267638914733488108086576224191494547388226809594290387173080619939561949983125741805807146430618815170413932471115764031099493869275461341158545932027747973849309325182507318538550644230956883760962831384651655856798114908721019505015706620067439530872874864657457480363366670491110582831312672570060940257545251404949764562185951417115809666847388848934279748674286723028790550122019084232540879768015424434749607765601634632709018801299783815397438998776470639175749784975334386802653699591971943391467753789866222552087257178660701605203686557141663863947451761339931013720337929611248725283207498232573726380775632032421085580463105963102284556812996479784908834973491451601288973652166736561773297957560045759497470621846784174531204677827747790077969594321733349784329717960347427454222118737433221078113160783763111248092785529944768932118464712649683590543362824859763289115567213965996176586348213544568799040789476079859201212208173120985367400332195506927860571414145913760486012825154097057711516114993984417717774604775601082557637431852081905876220670410748287760055633584883467550388886295194277645051159750210167258621995828118320683258774478786398063549114805899262681244756600951307594176582110702874001649826814178316152677744669131818612067936264973598004505024441285014593973952639445702471239414490726399316005244829730459983496959558337117181977300982786732944512398570423035902704709613425294419753577160925086005855239415845876702736244958497087426392740406043115189099609067843896496217899481806454884112975968942444457360403667917287788327092668533925972525972309697955586684252111495065517907336481129344203404598177985365762882526469835839218378028531243170318702324293068922524061643020706643885811057513728668247628948323706269891724280241751636322519326716680541212585936736443468335271030725109010990461194215555828190329618981987930576539350719631888271169150548023670444534491582371575180519131343351152961063799066157421149943506617461805664735378043274211358099473918428617041097468353471716907701501041334313184721367543294281527816303383781397720849285038111988132217763408492927806407243129605870551342800789361345698219835124132175372743963364743358283152029302700441439430643499247533908790392840613962459006188816334092087208260607904271041093675453961510291985989037441174025321566130520621548107996875336222425843971674708923230413291659332543137029059341326920419537438992270840006880405490219969207196439013726827279343491889968165862169435696336959829679067221437273179279469093470124300281681102683637045798372313004794594768100994755057953795050139579459341688487418615241491752938109335010023760538125659680764426973017756042753499561523767427099797712318557709887186705614804805622639599275842989991454182699465059340578974121673457662493695574130594292666731043228312541036814634782173543740218404047070716406235694963335556701845683886060916889314205670497934091349632520815136124423912856947215073159558889725935491607872534707889330833287500989642581843733761538147307735867130409532641504787591443526413798480721168077162211764039740131976410251511364995166927769368256312182971828864697193067004220885953097721593105372535517935489997461952392748180022841168844241960141513890989158565747130359597470820437134238488554489268725682480206399211619738468918863444076485071233293144734128437580415148934066980310619224712604931377131405436962521219001507505176719388573845020239747478188333928884458936928412149536707722797913835971115285445425139585594206864065561101487580211060112410010057019990569528829716712951021695564759833941462097548075036567577360915158127165003997284716872119969150808257619969696425428122154960211629293276318659637459681096453249491263795583864731040941030795096404317973673408577702649058294945351478434874680968965996255469549676328666690253071602256808331055703660834274166733381103544321813517012221777144078867397486885095511256353119246850359546766023198548257133543511655477791969792070564110665630663056054943737307331668671547062219904752857150678589969412624919959105583991280823711084704503286650832045518515165075345503963036005960577170538552986702381245194980021526070132565170319954279812255837930011869821333555603222564866720110227928645527968541625202050692399587272368672350523566933019782081194970383826051127517987115553579549106330860203572689014985169679702236629594428311389057219450604216501040084556763457255685436347422429977442808424384483365825244453563069157555258718449499850198287364431477197727127099015060787452952393240426233349758598683740696425467074610604698962669592549373679909438824757974366791434644648581853165611150339043483318043837754139708377566355459164749568696451613760404348129301117247407730548983016315072890690953876855412335435714866994451491770462810035344259529453910062101203698538858170472130442327000029723375672669575728928621851343854197542805649517450531581019979427938040519761388075109256053558341527362605898444399623719777854451656255504700153482671013607102249683516811097906541744688327447882713391877607411052582389781347192635679493147275627029302498687644468730647059626710354652004076332020564480367254275108691348243877522003738751400201037995410735272722462044547880901064994448921903605556469978489642147887091266077014633087282213173339625836788001124720672354410074683048154267268398905180058522096018628365467602846653750021467995500088076857182307381042834522729851066239914291715471911051076358332867012228991429971940725111642539173589877005839434453170110328455730616531602065203816401325034022215724898916099145721592015026356038905964715968067713331291213361967513072601171719341857892037564785350001092017710338914332605882759947537775026002826147642530511844156040308192599605296788978521791919862789397983836147072561155375224124261832849748366823708096838235897665074308967707911924916981352963911236113787573154193139858264544987054698494577742729065737604871217739012474441313319023378187066840351662535547545966396693585781782673724216967373761514086168832128662360292201671734681894590262455963292121451429614501687458084349086578755949152359213711520064957407259103506372425799013206493871764999720658848758047630182505729302468346469606452017626068805484407040703370201907262496143538375677153946349284684330080216358551773991042732012080321644717121712534263427531718662240880131742591567152325206027215473631626306139608255376689708035027909760441219589789324456869494522974951440086708295095331336879797686629123246371746238602027772437216198735904648956546696239156085214756970873887628018818432761436032433223271707393100803141723902196794949532486479440839746982884349229050942853155104341880695072302340102222777892073979201872046462908375061406640395449873699565340258068226100815166327753899515429855747637940772591321217545337440602316918624905785567830481620749932492406995766619722814082782242864169105550760457573648923320915181823688456058157568063823768707857561063301173754846198715249275624635697503456310217821231191677478719723016820296532548658484271531618022791125264436104210880101867396973067125451937760544386324038697590682343750114393147504592357168481854520569241067831403460912415718393894165857870460204401337042809214406288298396151309820867525696306004711207565709927740943084247240611041732143738514462185640266169046810491532305263033578070626721175533959788031728457975404608767782184318266133123307591159360156995017955535862582876222613739631479097671220790394413677670890583215384634953278323190485688065531493316385346162593685052389706589449144969669602370633526477311467685630624908271300664922044763367890151835446186229982662144646381663429109094783753476030542061553174388706699916532628113782932798368893763766191623630567073562546785806494880113929341549628348673817082096570855334690069384460450966692443406193233763334767370432796994227911010901052374123656558334212035072541198930943268376514869753168015543496032017683750245427946648424921671794739023959704391668631952623457421798153206068156239483009661196444911838315115067961915997245406291871417314638256797697253478350968927474300367417749322485109582129643252802490194755213139370776687083451126399178024678880540126955467404154771564474348953491915308304078175649552751489116750691749215768404776954005760907874601449994516324572533629524096439420748976627003651169523595239322898280641676465971511575627942178220142874734484223945344863641604817467397413164208291894253807138563437514398360929625289374930199852779969842633057081358295831065868813038066398096496246410984678008658515461828311663000702883091484195433389733799227555223849102473428408450538643835012782630956930001815320220050649760027771707527930408830707087579208495951450570515181853432328857397621480280114103026201140506458257586072816447079467834773016362752898422221511680001783251149065655066974256224419222367140594805456332318503616190926121799569049833333254773621828666066393874330320674355825569962737989959090090498188096158808592790706271704259568928013435960666383363681713061996421433288235781841953871056749439269927263160611938016179481599995209325269908794148340902737872495557602000211435316345015020135536724680707447005832218262686169294995781758109296156971875566906967886547390360528815635886490525710322378115411053937369482149909667291316821758724253885485451590884570184727341890911724439017289073047657530315504474268610523863219443254447279077518810417480747005624803615264921478156713970574423800977296418822592452567212257415160105383455644133038100703234021132121846445148561248403281582817064332265721988343221665224457259053765379632545445043912341913985959750924651065014803146402258397979656395100895030265610472594113938612602871269764105355265732370001362011245087556278239473282702449978635351746726087281278537737314569342393446023665787578398355630554342989410393092226543259777980056880221486411396738585929422369083777166392385185277390350574838009432063944685004037013932837222029622662898941158494515950719607232972994830779738287313339785326466802202071619627935878594887447261648148466376143213669416429270967988635982136203580202054450406084121174916054800751539249533190305967617177232551449432462983443855543031048461107524824537052946483415185953939591577113813778892044667302660075396742453754539616657657473704068042215557685698566689735796534717012501324929955392388648750021631006642721125830213678659515124382838590997987266498902343607928109028955964456596186071289862151342970817329100221263515070342962433456779639244336254370780742624080750381876525382662673711525395009530532823465123542647956521199142555464403721889302105427701936165040299419506834064001243746343765742503915095505973296422262001034613085485790098198807726063240532809921349781524217895588031893907473090204160220574061857259159316613286693320042157679370586387754891520012288254583360847246879772652710731170266180080181942972381123162920882523916928623633330217571053848465187887914320713901598551467876006760853719114478373630189964962551179929361599968842116309935252244842719308361165491008756086105507920734860690584008968484795606206205479311470188814931806462544126840582023760973720891080323308851299313108073598798517357834999455386437809611931859157524284787800479938779790893297681185651026356984764527806288326868216579839658752994867338791993252847232083963854313013396006621295259940517916111533882292388109846568228391058758826946147320469359240460774707449485911599958554469324677057531365544782031899986144963706035999492412821402740341787508633686913980416166826033913139826741022763496203317468086292961943822080244878096119169359333761296572123440989904336241873361257013343020880660272331848364626831895740317108432270128733098936594520269663895993421205735202682038822217187214472508041099860581850052350332670401133385368139169113661735909549855690515746016660302854573783301475157423371341720593915475825147105355941746202880021502872584089381106561289909469347346743618665701373356825209408642139649334637228223286046468334311134594066904674259629265503949041642474293248205195340387839547225218650861081445738308784198297507014070022125852712590743479679326201224167564268251126902916394460101593847015136937592342605391140820806300083328976955141078026398928854406861920079144024316440276766622337415106385327808877964334451131402573183437185564052570368119134007970689513330231329405336557954446066618572683160080696469929385195604257991128125025421170050402789633071873719150640061494586962144035904131812260637401791718665938662717446883957476471588699244648323785922166821915893567653380977716459029218872649679768784699223703215289517203080697616424529505551809425214172125520947380984635965878053520696842147700991573239286467954106854224373085107631687413393044029832583903601515655673902638737694962875998312225781353986586896495468613834359079908877914589394630851238874493649198999463571241147120626928015546600216837404960261626875014685481602436664019107062413850899658006252184950644379633718838378829015669937148365077002227248146416889935072462360932037981651925030258571967665421106023289487768774166122057486565973320575371863560237732581973474410076744720484691458382731488111178780729621757279560298064229276160933385022920509997263765021731418439980896660604225570854666211971466019743699645551524257461447970888174990145463302778785842276741066350517502536797230977594106031325186040172931723132988792658221636131362879431121214207943333945574589251797231586514541844042359800085019285248227737994851880727181871133519527177963931593697087537808673148989649927154981031442442685493401171325399851908901159296228256776245408710489319119657399030818787347344872698317702695749688920632044357825390898991870819872080326709565804052379884678522048036392489068007146852081335693609099531438441780467462714236603249817798544324619913675084763889761052595255435555576430500762369857772688256794737194202256951962871025765372998450310941151299913885934010141839717702576358920998638709990199109222578034346588580689507089179026297940261370231847846221288311184334908500605696088169572606632042944275266884323702447015954270872267668617604411739017975103288575822537274875995390634237632507658377196575716201928993495819430706476833200334679857357417479567479978749424006461571912589019370118095157421690281912376322446456892256562425557258315205371068428861221057314525212355068751658395389329051733520745033930505679830910217452418255845425417420133651127536246117100386536808701241261017415587602801854859576574582914436588290582501561584929067665177775848327763953067427951796844341161407344826120054258779727465757774218507410783802294987883109232765169728393857389510038606791323970419713132481048172112473615031860830581054504955577195341893773856037429217456554585074154238450015579711491073292629704589055429860789130081838801496169349619422592131520663688797301086225037966301183407620343833736366535079885950987203532169530364136355896052808542097010227998646422067786637150069854139931719075879530513354402217589337048289158313147436902508171361875183176374629757675990668621021435452453722459650132632514532292265873901927345841426816258867460095282232369042303973179232329189038699842449610535221473608211276437017287375842056985888219647667019599928637981184740126354451400668160604841375317523252610495224183007654930270705756091433994016919900217663253026828254656702765554501822886178640243034879973173400772613512605035712102580281298419977530111536513623890721195593844775521143530836351487423251374385509899435659627646909577166881244427952928861059610248353143401579276056286530954223106041543708490405067403015930520487881702718965385545376228064412369976224039610727665397567556121137540484505600371808879924529468472838706462197339625327861763186401351185366929926202775275535372279463742270484153125604671652765123856643964096881987532181360031552742620946822183816794115804695917459042195172381365591441560778379916264673471692074730028897600004006989317814889154237752657906087494435580704312759281414776805198068724383990259553795396277098777752954617017421607092903929276174321685904180777489077152894758163520401373779967358693482806988633644847010771651573752318133502410068030836129625457781334409036180819044938150567372782233748714229543766997142364198987579496146223322165684596211215870064807502137738881683274527009792926920052080196034385943898285789489507115061857850925362453019349829058716755949086771097173978586688722932052001754774291596376379183682608124796820650658637367592648434354625710080482091071288572911947365722484565162763001958347106917402172604946437796730486302220921873465739764726017533281226231307916983660299689435922355847959477173258201459668286637839721766680696237005220438144865859639556003351419269157350259952875657748431038182665688115691696703228912609832116496612407076864019962251284673997635981278352886077060452100728266324352404465481178314742857508596752350624608569122198821575693606679264770414203800271238805390847559234311609767349296705257046892608396078688197057069585166340396360194145618195640704596712782398099264260326687823107919632691360143441954501491089086750130741198617636472551806307164896951347109024701747432396672333508730941389409978505140099367526343909180175775858889340771271337841665743871842575317099160523833354389878283417048538843587301690439408243560154513832565849742899739948875203382366619891484526124241311665340791050046124702556046933303484092406196222535274892460169840728103777856393071672245398255593471598108986951189542209483958054574834843907904270146082867041405071432726618168287193966074152162122687541803750754482685735357495381774324988671432871104225344696795976328134227838026946486152049073405963820505020082719265177064548298154757865802120067975604807170693862247424946986147073757558119419213722928233263932004869792227410770585675532070625223073663394780525033653863463163695087604674981840380413079345799100207529314827292711047136518896377757263739764120340456131817011816153202083318642529611771918383060904406959699547906903185569801766091838390828521397366351216747367632903200378657729904239991560975575316992831572668946233794825355503099934903511659711122632152478501072781230977952480743163130367519143250055252621942917075910548295209497020361720744654221045275018490933971453423051924910010856705526469671066892122154282951206550784867035707742283888166419377793730886995161547736912644201472719628511514601676503396758184424004979802237785845078505625245432497851690103574138511065246250179488509659514299719511065205500012428749685242671109299043639158575912150885077417555793996794475056201417566373291639563907804776908816719887942980022155923007897314696219912335898240690883247222714317168571048566141272911446854038190125314209802091060525628903876816191779774925367731770130884318658279551367554003773056593095623976698319029414500600833856328709568811738284710195166123730451894543941852825214555525098192318682316171367241259860798376157045112011477531067918770357113088700760435539268100358088074318157129924180753470519094679303542238474376682978859444871262273281796984382038793572318535508830039640281383124824505255923482029941108945549559821074558118270381499315951389204552306793948810008185475927746959773571957107646655416809655934414001860942350343162073868308424099519220785199157721512619801454362172678038171549705709082727427543185211117241595964774121968093639239668231367932006175607182880452714592270569969247291425868384222677397552256141137215736584382973409032859898608661603557553369954701450997741277025171724709413935855036581620838218011907405776162189784694828573987920676841912304097400798415678283505140371412911124202954047677034596684385698010318866201564733839286806958398287832480717408420601459744937215907844557726427057879708068870392599477623369460514468366092794047967226580022949564503570212678427466254473919244999437971496211155407380573722555073271860898179445835170927704783253878033493417857769397365853825983468563458656948612186137363191199010346753668835481857210163582933222149731075022274318680455011411987048367270129100711855708277771143644246894032835327604893814223619187375422727412129025409205864800754291593215496577591174571939821131482389585287730263180449002354644992705805633279021358615711678132963978754268775044441060245916182695411829095411231594835586428572128214008737412247500714359826680592102599825555579166310323925998087598729906860801717254347869320247617210898254477905737619036590359243885481416447763949883495515221455750626478973565212789557422490706250356986215212178540544028626700513935825989385179724325962271713678765208174302732440214558713602127215865258035293230478708139077289701126926403478273985350706578106854958590358997036220174290512948885941321484845977691164613008953187833778119232289923351527681736033184641139701847349531419113888594523191722946236392355538606333835758292227238224105483870923298679017409946179649618676634315502821543827115845336385342307418508874098794161532281701134742052433484832548548577842062610054257646319012057051964142747022377932788501836773208375772181010323972349973243278839791242091502863618903624335019839664344639909346232747253112883360717996512422517327109236251240649755390669967887980483646222777351958717801370459956040904654593923790571546083386676116840937962096095923493911879995913743155881735177735241507800430997212484335875956020368834332164123574101171669791564512133612998945386193603735280122091992718835408640118753279278373977842718281657971587442559051574565987787153527642613705613606270062642188398838622206604850070138374696713508515757608006992184740352936139571374371247280081642707219623710882520662091211763754295276813707319407625644633901132069414564848793297930014466349592758270667655470892128068442193195068231050593093326453287403205613053350094691608136258396512164167687890703078396114869565164695627648721593711105566128395177558742516210297361563468531313591635795122336489770077767866731838556063329371907495425840966124705014097671498908239354558946637393961550106571038088351688289039649791011699131385780317113157460223156236625978419334923479430134731909183641600935470401674204901362430834427282284782154030352039853022369961544491169291041207727635137390511168861961121531993532280310066239983032945601857862743521191707179381882503803477109092725063183328488098423564313381712416947455183846501686349488586556581476263089764066554035055743578726045716140816946036427639947667608204261363295680050800096703349451625434658369458543147250158608453564591534650571392099411996415877898130064276236515478064834721448903788098738545781026164223073689341835717402331761686468793634533114866168938360708947450830211037707158727018428569583910010343670658308627963962948843849195781768652537352142484290726430673519176744306204163011778190586747809045227585837100338444691802992998527931708007198966423501373303994574442926973981086244963738390290970394158562896514040457045699336598778033074695902843846706130679318520600794561047667559642015789222582479016935118385488828747028178262125026797035949737750948010179101376823796835507178921592166772090868013128444675942333571257598946103667445444908420916499689184982497492702398104521327449539314173716624083617452480511483946079507916419010044185828100434429240907310999770227565350681801190443263809483103647967952469249610237948902145803564672161342174656595675901209744978996991874236542662046437828531265750238967501306813603881715009741166055550625686310939067886044929837081078094589951092982281083689788045489599841197361789697067940849877375717112205632659849929128194314142800415424567419677841950870739985245757210701306409672777427821885594667189045731060917747123353699234959652960983114769086467102035946860285480884314293747465950363274647867073546862825107475912699853918975944813104224208442278472155091930592628526698970937042179525990657297581185600656744968673207842848783747687432267975803427504461628055906468409217614042212461388485502245687941507190095290330590577627415069604488936648786567433222583268556916470035749170323826277304372945493706138649753626590171966675030258779550324396588123464195221052655433280502156111091085726385016837853717193467891642605290658820433525346106327391107677696241530903600316804715372565826220798396340293148955426627232370398451788438933271068820196597804493222893654858775997186973876814141182583676008844554652568268268682833564037561557814116168814058905910570846807739048542489156263247191629963476771619283306997298092763372126821765872382701209770263465127538591823691710344489675366737997822875658301173102036414051291226399447320820347344225541088948232296098698622195118446208477921722213224094163630077989279010078272221380116859512749054831075895626464635398710799899740174170809047222780130844669282794920708009519302162327197340001464298124115098259749359094909254797881997531939740284954970359275906651289512460109741793625734634476764239275656167498454659404493008119082162555724819504320407240260162025154718721859665722943623885017348661839727950384324317628341690980939078713497655769335347308621298797999937580052033694081936503989417873664976461519018329148776865821275417897243652202217507444850793763673645406428328508991978235666550040526193829865408214031091714714886679635079921704752100164077437520649945362539186546304618362700199609871824433798228582199216551355838326982312645047948031787680595483018063876298866892605878998313415728146450664191315984617371875112164092330177140424724081326927356972965873232845312408284535234088524266104316997467551112882158693997720125938005385548438335248387247047011358243389605713926198107988547796944734933495503930720860130710153370772182526566408207883970253413489264319027225786581594370432471381551674938057371247141240418594247986448417625381148623833891353187825697341183384112900615028100400787024499076567508831439499505342106294953514115784326182879744228278139538147171814554197838619636750178895583185714304744536912413299029288710427302689269062046472404036243599413724149039400669848742526032876478528471259639191341439583358201875510201349792935563895369453770825212619099457680501237383194785140541915728127800541545281082360315394506583553388666493104738014657042508650166721262463115287663707557866924906396772093793172509319115026431406170218211993464585960516316763525434627350844721159134023834799133016037197284994764239162940016569708229177385922685642244784950153172474605744080584370617090098228157540183167464540005718149291944655689105453866831983251776471614016483745900676190778960393109103227514619991825225856437626819802005073734303148579651254527071277134543383514883368600274180496693901565374043843957877153219402353746931249190315883416479019025806614436579894330337073541831007356611894236153606185221510011670457249274046401011090294791497552805171985310334484611455921767049494987775037667848277284104577667976161998525775825095088937502436084967553390159203830109342872928018689666317802913276249459455081986713608787436490798079815047771492647673840713297065244871702192046006219290179651408362846445817082659461189706949237015114335351464857147993242169309131446495965441269521462021970294150652653562734937723074148317771386677043293357173517498459556313896584173669555324399868795060009852268018453272914376388848723065284555773228957626814160060222767824450735025200895978428390443455906650910007816334940389873383171652760748948499265024305274055914348705334731874321183417366077769315945011794513762502503156620272387832030524814020786433466566640201250179561076655026919530485148704005296274416037272414198229806389803854384444864436346870985979596025063003346346794848053031805711046173791232876934992647815325427984218207226997821674327441835747785249776208295254773382394090642237092037243067309215824153738885210919376828486325244189180269459300355984411262847903408012951882370962854710318297468051127359154605623653169353357423448591246945846750590295586342537263026682172528516386679078340036625251465976490644555088683729438640484842032259622898328185599406766914305898867863953031013387830664045050795290492935688918066711063162770799144373401213741967111345351979678206902953684630437894075048050016609326782398279290918513472161989007554912052907287238510136173721442051922570916260603877347419702735037590427477159236038327651443047108902879524450662755014795519148757778822482522504767017220168496149436227040536621965833016950934178518141161123473166669990559306874900818227034396836447581449542959094629032644387321345788692837018860975523902116840355796283564735648257819216708603694586624497454592031099523698441179187572812395173188742869685363105033616333764950065338936530453178706103168052519361668575984362572547264671182429545714194102653903869603141526751702005658489141501946179311527294669445343835167062753995357758101797121981578968441917358279599815057170807415473236937837952018060910326809917809393871939571213541494596322466944293952354678380180684861501480861524025467727568393829023251723087170395813207909552846116439022718090577418558086742024553653244159638463327250608222455702074756354841660731733264681860204290345487190657729044716827397979653285921491661261995018367418345966834303353342009731250294429733131428497914926717875228382699204467371984980942722511155948426592758529249703170690788216317843973424443157701882110443127263454893465518814480496721410480820269746899413013577822007014047414006863083459006382905359930149248932071057410432056322509470859889640956216954416261123130022471699017015250063874902882392610902631829954930838064632253590436225098093690466689542886106002695029275451379401936714880517978582598773658915639869843980417010906128216444249180519594291954302835219164213217481087979601425299308717113559578031451332204953870192329512881814978048500930017460581879272747865230473521315964649077298388385987775946187584397678973627715022363525669122328046069083566253437167783461334722321135348210581649982577979722563054607124686289777483897075973903126012303552932500487745220441387441413306408966996480159682980779067537222148104813276901865567800955748064647229187633035582500185802235524749793788928309516552497067259605088081356966273331636865760205647678162840610025838471570694306382306626839032598646070585279194573237539561818903273518179827647586343320235842257501436084480419659773892983967371969937724576082349696198257272323602952455589845240073599451102433554376465570748385088167576464908578844844006915469450157108524504813271307248071502411862338018533617696757605203666431548243773903862117385372502209880970994868883083312532634733817424503149825353004408000360243172805244701909291927954174270484257484550872069412056260180829909162349520492245737834463193636781801624581526707536581547855549350053389139275504297648345455743972788476481195760608233330227680528685964132712634577253268143815735921714222459296214288149864887039539402782629067724590462048845333283901220196079361474061464182074898848305489605379483386365295897469229729673317550320517077517383015973043996976471163702495852249532522163361711382647235190827102852604387772308519283749220698056161399143111048042956387481814554216541510630446142064604328575829144515139739984178894384106037344028497754126543288569422708520962021839418448998775051282040836214115085236542600041561387824266725608631666621772458462222524292903100365970237412890135802631320287622787377124528996750606918551360168718327959972274241417845485820208452431332698888129413567072938643277384982278023422742636479092217910253299120787505947060555244582587428027732834422342393563660803244935768342380539938788740205927573870827747488705682989704963163004768619898177850070547506779025527529658070428995030940119009423852933730477474684859348379226341034222677702417648714814550522593972211841657390353888196440012211326225146454046623977557446580968294785573382709873496645245765576831849604032417525252894838001155261859594582458564950203445904001797575766368384279745625765848542793270120342479724212728388344053568487349042448641109406337561107237361094834742940429250750841923522089003477712170292585969099339980362760511615246172400934413928213438656602455667666824198171693236595887161637403229064849078689952418480129736239819291953730053761800367093032213545755371311139874302474120331862047422622506473819506061874955655492634123185535448893175579526694649871742197022933173534036236223743400200215772159900237912026315382265956334064998862558780080115213256240178052284027925050691180072344011230377604902892362208902454260430992270409587256828388486160535214260349390261346580565616702623674320775398200128703444071980873091497756399043164618651497172991174220422143777214765716093750059758787023887562172802809627878198694924340152522605758943065702532075251228014166456007062848652979153609148661420756142649173795910869877775413746433510173839387135163280434366918392042683151492011730367647058116100078086738716145224741176186942434813674522034604561592905387707356298475645211303517031430318620884522376474244028598782816499193137945273949372440578390840713095858665459261416204473471074723251892678038250994240301360959385301965884970999581571667865618880641226272956116258236849686412873224670388157657564688993021729410247001659952181130355039276445217326960326421906992254477052030917032973881777910656759369558809873519143994806578895836887396838370624036508402673257420112006014393653808280239992196991662133729494657762299192095926528762129491960458696187643267366595856260487346625548977995416409019337302143451321437750176274504865515743588208955405974334451024311671948290265670170787779318800972747355056620334240470653984157438674574226863253737145288184589088277233108409597294551596496319596939344781295840261608910619093724765213376522367719014837823612746543132489096869882126789694008225607837962785216879653538825258376735043423074476983450620772167697779395670935764178871523993518107199548406380440443669265791187352020355091517333485215402455583362254281473069947586261788987821225697863995295443768339181657765211760593737298972409756502203045695521300312571717988407971898987153816703137553878490277894831427935289553259932185786795768246481045366420254551438752391397519751656184894356695095044058411931706866022565381090742693724883060294693101840065301396507198918721762593083131999104789768104802372431293735565631845678284307200353911647446453402790299354859826745871085562416652763854452352105868524922341455361697895997148901579413750383599883454913718078652481544752514516001789021271695896495023743519123772507145329172361769450525674157265792650562515582764982107371244247910182513398238246966697955930155516499504501620474483891358891241803105385389707243168671792929083439844580420640797910869238854828738330968702082794424492538549984137002145351380006977553102308420400298327540957031336564040988719540035964100152747136748183710690744515306223673476052080984878055684449551113334089488973549913662988925688143508398170145824661633973473187382352464752385937430090551124676553283492729008641777615007963678561745262023394642468168057622674758575571108618574798231278971393120687545379983074440932036529676393629539799816110572769156472865279540689074418079465701995349959268732328739803198769625070785573623895935808878124355125601569715810422023150680762815105579582804357707319768340191919433233665798601356764805306020749658602461881048990365570101648386671436764171756578668985020535788547481312295198115356978973743224019156828610007690816844306559944692579589342957936101493312728437616079381495486881581538405611677696437920043886870014545714283830557544832326231642364882228542760601832030483925196189740501169356960984725784387187074201145547152385959384815252661489024987505087718910743157649574549417679353094624878714931668518559999639244995577859255348159325913192324094315705656921928319721497971808537136578757196902095694579321932286795587992153721865975893292869564311511411914821253595825506162322311697662381168330527512102965961634669227288591214849663257047730211347931152222795524012959926487906907733451216347802164792328488517575291784615174991254496448886124848608870172447657331247839755316365637028984923902343555202836233053717199575143601326930839272403768529539794967767147953686926138657398101700293783038977447469517255391164020070093012111280583695298252429164134259668862790863247413899118135225297794202896477988902466213488705895790185028385574947333861393035870937135801088340128173360262360341305918382183573854433141335282337611489029729817371798817794323131072752989335229882841268811979665094505799710927620241043463969492346014555662020300683761869711430711009779865638225100892612592222499976262370545285643918985268953344087212145557093878899531867809597155818424771202833822771182537335436390539064476048408734996798019513376969554139461795883056511735341462625953766523958038849498829233008028948231280604905364259659552019279198156692323111461651641384531640801962053934154149655565799773346772831211259801912876646330371920850334730391311534297017347969727302172831304028194653373308838223121370069919535820031980479206637187442880191555325927411507876495493315327523670347392182540856390061442616949661848659807852859913553410914021330017909177328642691433860206059405794115955714508165667452155391767446920959414476248140911357422319900738466976413175084806763484883918906446180710508281071035218089602619465723717271612188683746173432793481808232178736172402819606828009317848711784294504081412828576593524842488141097001554631831334074863171802705749746975056562238274857706165838780126990134624688463416581998889194348885758454644052954879250404934503009004618549645072846215531952339378694957341718308885707182995426491118412402119151879527150893810014288223005625073991266104898221509619857404642064347733994565922394952585782306065846258189938388678680177033303997094512652636728090116394564755862237240121682868386690043511124484400069903703893299923896363088745330499256926492667898081598269888078327364978725184046186764171632761558250088873393281404297367179240524970220266739681069404036757151178122488966601888853694653689974414869547617581236463819261126541617942859384915230006088265846041030367342552548410278712635637848704297214072993704234049824830182908656192033872804331544610228915639844442481404401083334705665355009086733250742417256007302753641592658738954907288006065218530929317521224454872042276660614874091252788999045951487462189281831756513401727680657875065278222693098536539451899110930953641729041102382765744318374183317678842706052675096372176702821224432444852863098254460277946652675876358960947314603524838705878369799748570811625289447902966489433519630749133122937175390661776864515427062551447323165534618391697604373417885239891416724166071419104174081273209576940718550801827691686723055639865894786200768638443784872480362960090378878639721000020483610337728984690334454343892374933507124338177866194676375609774906582191823519224433434401344637774675251904837675490731700344088473841351940395449109936866586998652611429705049481258527815067167761171293032153291036628561837875960862167954698679877166327240665639187888465076617594420106359908086849703621726348640855741888511775596741309121188099164319048872297905563721984160455921511846218645815441700590284052662804569817302277748371387873787801879226732170606889634943073303885015745182790695539748981126148339118444898963083912612528148142693353643979744899373156189153764917935682051198313639828854733503750979735568844223542078683587756753353840482909770867421459565473177156704905882576799137811044331193762593177097062650916237756975268997787797626708288237371843207221464574980199257395349349754009867592174282431387798679685436080693351533371398291354142446506584250314236169628569153602315253002077183147084377835201497307465801098670050396437797618197984252107515544019327587302100514780816268816993899393113501368093228092040987689075846696597656898020276229545478187155779873108550703658281437132187522914555732337552553459928707700628092741226973644204919409069193036675663626161321803566094309279276122849118041206248561956921216989816029242364919718623205542967921229803723018352876978751690321477541541681996026983916837470847757398366537084478728477973638823857407866730027195014428976478552147613892974657888100361224857955028729482767534288933631777610760686321924261930850731207701547040828616777783927610572978341819762257387586758616831954684032089960861943927456202283154921751691974887878748213056134436363774592272230401675249616738156080883303855512288869253661151230465740393721412501894588699763391224962806415555986334334439706954870281319917808503582705276626809454236582417661767184671106303560484442473047447669110792877002110140709240593929082479832152905537594249425485397423225195937805603659677104116395430715133102041220334851178143897300468053676473493473231115247997903513416149393785336701240797820960929425084198060452881003783805651085655571094632313674669595178489493147983415908421965333024608521170863892508717470127736547894091081412433167705359342687660014090431817705276085317885345426187307824287859474881592702022115830477160008097417507344918576708627029110551053978481628285185739024224187478153564511437620836049195233139373964650505170948382504872778728337824017079513570959319202690305886410024156296581764172684812000536362182594493278358517271953911564943277792440085222684879557463077903048662877793570914225026852146583851129035161643471382093760800126314892288641864604532723928262948586510482108622745098390092561483043991601756351947523526308463910170129130519740399381301457983392564096307325109184401043140692549710322876783367448353670570854263362362822165002703833767293552107899176672789615494581710465930979121729928882320481973328460632253660564567135547984261200113463530123902215243136543661254412795182136381492360483099874956586738715970631547658596374989920344427684276700551341436140493165229715819356325429211790532384800610320652976066541494420516243262325359126245686865349632301138608845303424661261829180086053825564361867131988107224126731368720436131130699832460037182131093641247252053423586475532881578376848248984294680416958489592541692671918917359133935611997256346970792156695618579626675596690991929901059289236132694967568468121541096711590510696677322050597730225127320937714355341176555976378134515184758201041931660094437200975252321133263228607324312902535856923049796388962341168567147455516828367365621216665010136304296765545771236386315648543575819046637562642750551178374307489374450573429247018430792068014538283404774714120451185791378022689126986599508918438223259662054808229288181469485529435552163326288664752663366688561911789233156393499148655517882138601522213784951699232546869239219752571195465213625540616916821879183897731128294155071616493824760443175262753915287380204527841604961374159571410903425844950440956540805818919802169496165103986185635799395506720077376895206372906201327058390529686357817475962005014414679672937733570689566013642083886738247605998393157279308753981811469695277199507855430848471311286826694693705816465174528412872970092368618573567154430212323156892831183628747747865087465324715504459636428127018570337850311092912090073003458699497776947625778220979047049150369245469034046086516428202950687556809535641699288691799090366476310629377089135895950619667522550306658637654454011875699599034044238529744446159421559567635194394884839048055180723736219767437527673108736342625054406946570529805985712542633641311333303226533919198832811167369787701981331660910861985949967137014646065457021978229399715409106687579779541391744231848831626541062329862520691183077249788390679065484463361366520237776261450766568564034310483330416200627001558862954110499429945190445439717800673255282150676103402213317088598998453093083708214804652994990691732615200562065338695981158951615862585214445575446720656881566906228796726628227558483051742927848189334103156320675335567752614236372692728685578270948270311916477391146137054876060031299989132073831090062804989639356483277414622133357408865669909413617336976452844451116606309741704287237928040905248100876308067972943360916045339902869975362837134261897769081292570910319731678651163318302304773708353902020238139549283056043117831237896042260823949977089596910900107164890617440538228807387482962626363717412595910669268678464256565721195880550410555364943064607344897988275490756914523957318943346507458006957070407475779911521874813425605523411701206778544349223237203550910195432893582692483394190236122937132089386298428416486627130096667617253714882723629368144959438654244580607176175767663027264572798502776128512651414777977408112592995000890691530361061138187406186265240972168407413027510418362019587642626856514539619749478582380843424012671909151514501671716276402602063443774074982964253352955948390670375875032369525254140454083500134499714282709924736751914798797625010620084444752492406532753746301781614363029255172420051760356995959370620983714834739251082066830803669629703403649570322712565612071501721834681727590286396235927603435788912500836067139818451194165729478675934533211562165761675845928614305277857751275486347446605747442798547197240899326881483617188224512947385725575851616632670588839374412311857818399678484653488705784087385374942440086182772651015802243539656227264859825985569159217106051520088839330197673522835415315827474852938662386518011025905841574719004185195185023375941447931960868766961577879020207354172505949925178982361728197686479339815019757741692104451665175947161197903967043828337013766708526603278897257161419617375990684330898553923060173043260632314755084414311707767443872923384351235687673401820063275295313506084820894596992666630398329139409565187598427150255109012626721581663220317320343737107731147400219531224463508635847237677678530318613825654046168182753961205077969671833228691650906469774295203215968215773959170448802884229489184571220528322335970412656576603189933466151210704934869714324077666151552532515138609732259337765804268566052526711567728370663141738967441896019075980856114029127682869369209593375096856055954357620573980061565696655542347422821666149829828275696508923497565601556635808351324896596898007522505395104383421903611024543054173196008781089796118228858757017150763776401291345734173789314535213657347738503647967906225227179953661798198396692654133520688799829780330367916221528404147156956150528217057971389577041559744541120330505497455768139567438428345827087604674179259900909439001648203298038245142381320218307229979794006468209090907884783735859059580082726730041622843975142028704405701480952574124545701764875673723313508540057045904614635615518192382102462505768650743925297074935214822249934494455263170880944167161365941727900638804827817443205500319757345966627471251641009373518197066803212792976231287489683843206649199514230925268404094103003695564924438972824194062432643086255840617119561928342690275796676855819827990519201433408938649247224629652774252739900832746371848956059941294573956075767710776088804107194966930630133337895526146695812179322422308775885750746975110332556716361218266567939857149687834742169034051248737638052211984048312038231520226207281320608279750480888144704842380825814678427685926464804301865771783204697250371790908000098059745161849828313579907979935659235543130670960233951564906512675300273121411944825026781534120450577408416493148913954120411055321696988623646683777906462910686419574096289470562006437354514315179560266755390542396042463318973654771388763240198281908356939787890179904615090960646399427065362740808995363097729383375954968587060511408848500664269458824792234444806234926934718965128854935937982858017489992044009893311278339315036070958816240665715545580210285690780544307956396806588884180890512295032897906965876499910511210178826139366152095153924076924266401736726493317494793086044847822761792363765359062690347103447017310722342886877026571620630083728118032470437020198549761746105584726152077791052866070174402033465252726547577978663636988409295314727682176448002535875091963722958572602183583094633999886785780789322900359661493646880030432965130381619204550963314728831875075956697493642152791305556170370220719320458430284431097133405310066791021065074450366029999574911203663648804350437448570901257760489326773153986873665152058950225062051361781560932117848365337456940058774579086363777979255345789883117435375636453392288297981384369286990526170266436065119316994082471682268521686779359859440908376674136313230553076004327637493463860529588516265049788624605554793969147075603794311314646039908046865281978646322875778289167034628616449153063437944392659246890828841747819902249318328460088705836439568273271887762794049841227830703006387994951696232405595464646924142066323621359868294636561142037558174546009593719828821893396493494221877874135488649957509784967252403673568449394754149602415579691323527512337194597646016838312379504853149599922218021151883761731673751301931034844045070280402149398992302682738929839755126171960649611684865742063301066143012451356675122845308818373544022251257063458453064957384591676629312192736409901567086109656763902178733211790076550679482222482001105259991127558027541502536311656683003648792081689251860120873612171526203570717383924085363505932407892520765553109895567497209571588784163659211782784887646279222555633071848370616499214162661612920013990906772408358767568149375645338988699940535925802693573571285259692817225510614693646874095475049705934208534864532512887602254950354570777625327484669106731570221885212932751399699449327534258695438261044244271056069931721508146561979055150226765422135183566299991891522727229992110396946116009297764624907584199472415468008744767641496719923684098954005236288915388811173939177028098874273916206040202987636699308505500075531986824793909101304102082751862917355785078010496468714314119447074126654436376541494715302267757935444403496249140276995586621841767565935650221526843420807651087205947557583173484313391395372135045428409071586354645160823350780842581357379293599243517579130273931780848136365975349716220145421922683119219059811405672862153293741623714792228530788919828347890849452744888805978451119685262974529965096850746747907097226010072294905001295516077332248165340686613281663472594090373656347097354868798836642664750585524820554739667596667628338919637790629410224909231414347745863840699752720917011413688527251260575934343961602571623954497431052110462228000870504582249660025004607764621352433499722399982108416725235920960526728646753632834947378885868856205497523629978199056720352858072919792061548892937250214337707008375715455411875717659548115692127270348193002437258676803445513457590209178896115396706270088829419602474806751096874758988129861895260731158139410688386160447573949862245383492047449723166762714974600657240191822597536555698072043005465828194285565427065831460956914719816573935057943975593614185384403022593478537129826211905741106080062348922656179367813073971061996066257559295800338249892100867015933305937932433623871293254884843016832418630811081989284498044836726969069797536468206535663613341314314529025039202971663502630113815256823027469735182574215517999690706970535480156671042403131155188322505558911423455859638189981357405634773126355512801913692298580649505836740605027902172678801708712658169760376177839841322850334856245733746531075834819728209938138318251501691960488348558948109742377116900833040587012253046320972447023208549589121109837791837087376154759713719886193155901104040800692404585819044047419864810812596660122681515708697592777886833651053940562444512647515557980099666409277923931248121371047303531983788802857749596729745345364857128780858984547863749133553436724716570888448759847270789662626912092226771025876788796346516338382718670218218226424107537576570910996192507198084392743762216595365336502433501251874787311377165333300715044049042048338304422068436408949862074265957254234375299170597775531116773386601712886759286431397227234474928270342908212945046220615151742825682804183453334928492413775283594296900939455565945940717777151698021359912886260707688502593680201877676441122665763583886360703712442953618649905198048050998561897766163617962139080419394892401396729253221430063947733852168881525938466154613248096351808690729996028791353385965965126957689252700810949637459943812516956526623097582360232101384553722129113816293277928386302898471935620868864181415603599717466212861487286654959679331984349116834621514099282656609090319662898632440023293413356778746180122893397344619576151809193324244477449264073621043233452843779382994389071126894387949478840525689087510241544733348805709469791752353761459695162649125780315382497099913735853701150503796376959608923701029750165134149691753159132666295124937713814736380237004727660130569170495800708781063376703833843092780490500125295783818534945278493270085783354882083862243735446714457317169767367517447621291785914477067808776481432833293186763441750779789808420242279151420238412830989442392144640528773956766709782323198355631261561775213505431948632882691287210246831854857765057415127629800586924387331543293466923321026161242567430805199324181689141227018406470385651219273372781500068775948257246480187750666552456964063868826016344924867679662090068873239969385624263590677437269292513623231576750272517173729768836135228363458091173127098692306215469916466242317527174079937527816524067895349628473275528366089906574692621945357138784534674369391706227083979264601792688833541849630191812148214021896821412816035196064201828454715819648438088674478646443315299341324733512357000084011572391665878027207506827364722395977920944452969483590663781842574498803879348709706127538571407426978437977476261006287509968818547377232872550078195031842929175965397382048699733440539506465260406084108079934702699829957750125933885637698118598099704426266509880635289194289280398635098679122773097352512273317288471004303908755085579199285229248979536321572583637403706366174828753827960182362576245894554355670699014905118505946332733688161735421122815817669127652932195023937767003876333121220857541142451816209140978469389526819500678317379271388909004932539069883107878608720700082327554218723654297584582017148710854442322322256676539221772112918120565382774092479480266614971246760947206465892499249291046348120758550028643991910063612006364406723876099047023737110827883352113789243330123780366294208337500893688662789533846298774288007838943375521867971759660299113293554974878198232844076110301109677444310735443698009475267739801107826396172358010483227523479224347699838756537973949488737558847276717674442143256244453473274951739556896596398527195002411056189322524565800300399035161418675587950697032024355191726756360578815533193670265021397664238292860856714097399893150991721243067531969715515496504967795614478396988259667086203806982183747181454603550844966864225410876425873053071835074093253633201832004280170992941639611536540408353642878618897354810557725807605952434771650131098026086679178408164476772880003099658595744388171029791715831628061520502129075790241908593053410420163852694538483067018747345168004596335886296731216106322763168888579425425142287224547809592084233491387442406629584938482792359765883184423698512369594447004941893664960265851274341899984732190612701915489362179129213251151933149078958004176624472693627549516217034544831644029388824431939006799897204575011147899357763628604597070814159942734235895238505429355256362870209240271964814977427015046819165484462356660995953719056406742409630578154501186729416549670917974306170281108960474119083521390857068015958293183146728019401185074738556740952094084169396811202214007250353538329646972044478365383084875818102426120492600666440246472937821474635240514299901987297459858679573539274322355873691414082139453869243058607540109684986689332087329996121438855005842094499914269429803992926703797388078539584339816816694914675685298934274567813371754602454757566149758003455786643821963383185949286158087749296177845026283081016721227558282418823152041166152394888217015711664278784068466555430433561786250798975971775973530955408376232304149366886095582072794352750127500226882642058031218066231095278039306618524270884365217828351141369931590326783529733195816879350343929656059897532428919399632239512248385594088723485555967278205630468558511274590607315676980026998653073643449743961211198103028694455986800642912962312635600630914353548895024266477668173619201340942170196698265008024742880636095032369695198808317416951529144492579691904689223195656659007224424061919212774302453325716163179892252446789718876413616883346821183636457243109332296932075380111145975257528573095887132027545457779449944455249847162677804367624166754877650095237788611552040640372969443068061164472135352593029093140353143447763041179033659750522486390972986049560347236028949631664901855723744861510187365309546006725652465271459474040105468191907776348934291492302677185156664390339901564699092918717493178716311262396454066280895961166793953365182791818433197424896015410520695204386711310779528074636082974127854555504224246618690653551199350002806267842250839425801046038625100710864335551539404746831755451523765689822461340250930393059552884411196739639179368501703510702139618043549980092049882086472003503563190922747724956177842989277473979810940100904755493470659051353713945470541232326583886206907667895698048700040309083421526886686423887457556705632797063005977310220424948086653007652584415133570008268867670737902024517973334393637104062991128648755069362939279499515549954730240836445594182232072212981651279846598517611163155356867152262185037230589641066799711901365408005090490105122677612289599507544338281973859758854774422908210584567180828392622232262145556678559988561323829826894817334540029329760927264326445471573308980995712213506507382383096162839331082352110520454968173802320070000001588672188139081495720102553276317783786591600159368170226305803963153296069818073475147099544297202188803331135568038918100107686912206061627890580743745150045959178791945449464733868961836891496349939345868995379186806800919987184110162035183433696843339276027218352613617490553131891138275209633433008506749583540173101501270689058162991441961129196892358269781272650443886484247071939612522541627855683193166028574868181913474749654778828025159779846434797646869845894411667938607811979248009386454664406868439205612359817334466329795111580974169017026292314257514221756372089184186275937756660750894396810238004921435392319318435883362685632527359421894720208882162458905626791876228147409496360898002707398038447586159976770166197108546813566917935326667154789192129906654418658464701657677890001827800260550133872249871256462985153294246160918371002631556617450717314800700736654861695966317990126770230497226435869594719513245124341948366919417019921760142159382294740047062175303987769981584204312520642769208399583976949015646020338013293641662452202131419265055233041389263544322483597723632244641181702478228960663334443418624805264072233570759248680668529281186814729223676540259371465018926932931772593199350448226372587143356993766425921849868303763932073345348236502762317294503813565145763268793800007250752034009769504737324853616933220583165297746298919304537181892783746437138791090495075543482183757932974886975483441473742735131806373973445516778940857035418542797613378228643458210683527803924170601691076443154587170200666554809091766564813796174262811073697766991459400395164985050280088066741368351491790135728811209507610448915678689263721497361890837109940835196859527242772443277751980321731240256005900691481139873174501316136761124399282993251284428380853345738793445624114000682892709558049556297741062338439048218152919745416949825361000563087672895129020197771894531430020799951171325787013017846597640747566880804285271180723029174349994693490211799568269193560311599100441280121231159871320201860492480294809778355229255458077868633671948196417372473228146005941078905352325147451312787214706321379491110047156404203705864195143690590869028883681486688842662480149177496594677867360780034777703151591231151249483816261228161848164036806029918030183068069230897737535580057802831876386697023121286140210524928515875192983015741991214761561447511772138310237039252098737693448724607611679059198365918740674598121231753936293303293606928118339704293812698279712225956498437677755622759006401264700326843794866842735705844143684843378405503576566072057380181477020117472458740299139637217934848277073571314794778406726491086276472874052392080400151375084193929539099721503596448784431125583825465400812543366819440172424119559581876682843388764442880619842750244052068854680003871694490817914564078925325445320214423795571693663624898660706987461210856796638306620057379129262916802422271054054045123271907849515139993940780873497183548239519078829812374182125801093533094331169866355996750238846869961365937807633407903842131738811343764497031028506373691070069804808373728774155825324837896466468988824959023848485434223124936573029691432481412708422053661357649376229754601927382573531351266041490997488967695704146212384132685778412995909990567450022277150647871943879335928200927013671709071662204520731593717772670250335915843296232418003761981737633062121430132340734154006060663763685971037637101967519340067111730697222818359686333793636078320764796209109976239149268377031746077301311916924865153787449316996244857437710017244496832350884972690477872217268058823295867154508537276281727693096309950743737983399930087430773729257998880907543428292698257519800462042370450566097712637302884984675606170731138523055766073418481037793351926555902060213107440523194119579675166581506462738955912990580761775675619618897570235849751467410287856419038490581227107279476112240218105991528126912302108341295424466519801406049326914180367662416428631508791934176564651131962218135556567266119316697364297819708222434459652883681694515117157704719912394657253971194093891308954241842894602731129196036441356980097412395316681059573997711021543183997172246693947572070491445323533446593987640996602051722695935274133825751356416212566269666406555250630699688024257606081486110043444207053811219260902366543470950865354826608364655839547786781496209752863359766431322085589972867387780926900597408028295982558358830537057204318626668272626298624637833289894075918347932687789885690867141509568758178454489030537673133486405485733226705529239714017459228041121330824562150840045016578168387278556535036206318797124125746933444333566728463379813200464288571175836633319007981278275966977306680421835739417257352678366939962360149877531320203002532278880006698717727277262841289534840296661163931609616080760044430459913732460171582206932239656327773576246618132025609394618217602112140465424853593809620135698487515423414498451399839912200401176406358584787997786349235303522810509513280076269100015434072087040617138220919310967504906822420708687065188815683988957349806021847285153457685315309275124870934378841883655780940733768874249578388327779584312431494891272004169655356950972012276398742203187608709331705809942811800102751345719605598352860754219567231975823341720174743952722406508589387626902825520490210792787798269853476736377189963036037869446884225896466358036329479130131597269620560479336136468540417107620508712537020167737987911096337308883288763874285548661318624608573087495956182510632022220117386082829992453932655930453703765432508141686496747977136235794968311852522699100229322959629422653959157947458536912760334447186092673999380178349541672110172264743646894396133570060851092454605964635809806429526789255403627047096740653155851115582663762478903045534928352457540012117846011796045513637258905212496666829476376162888620533482279040055868876832515500434342975123283733684156773853376416616366396230119311428878038593821629986883049723353907671104559692917826597005144910486949944111585225675350293506335391098935666848318455529642291513927654629756853198640262226545238531472605197515409005774706099728971536584812383482725437451070849170761808048639002586921255096611268489397876474368432401768016254214160800519931880883364742147364402024983448591046260126876427804506837776919574664159194959324809333623597445394160452305114501439006173941948857082173582784837483288969823729609999492000243651474134629894369396807806597309206477552793673160713278144055097866828090959035050434039167139046747343778274844150113356502433834776311724181166517107192970083701327690597876030075689038030279405693291419498338833555300651714637664055466452977366370390933940484626238828901988693639055632559051925497694045320553604309787964745189039629245136214481524466607122526057514062113907733397187312099103049493614571565591451192717310945105065619699872888463118709166733678970670717992676167569687213687249597108976810439226176183613754410803869624052236286834203514649882964351584673833710801092546949359648777485337041653932968234877131556109276352869712829662388248852994828107730840953275583741624010681067201101443830772116948761611583245399301481928376721705788421406742136719450536731107836031411709371152324946983747217017266916265699095295437240941604572329707188808505394752287928513690119848518146208522121215639343024487003141942686419277215873653294206197255849882654823452118931164207289586267303089903177730575973608879841752769857556239883931761682828153572627252689261695570438839182086256967246790962914427798303955063355403140724521673010410792821114380876515555810365307466056502687632587115079265635390474668523636621169609503654228755055429557808255010670995445387018421897635642128038423814530086744847628682805740871188984486272378006495659677032809360140527337427689640607873610807159224348133350652959943480934022383686774520852301215165555520119006084407651242003133920131487138809767659147184099854425162544973659428724965911280859292462281297331839569336017512867581911673524586850186328257308591488075152375668897146967245736619921521937702004246677161250841143973262238214068630949013625874650087372318727126748139887039682210918443861336279409805064930308416970079077815189053641034993092565987573573851921870046896502626863757901822829677602339943207217865924130827089233157274774429446527575014810382882515841066178283667385702020708533827004154423905489894141784112597604290350417830278208852941443248138334396466787874398448158494323127538878924600843579843647975060385035760106954403335219059974857674757092545233791979091868834912141893373203296359345638813264321428607588935059098462254198497884978064639699094534438559031428211458987537760903785702844372835270148135673847840430375130733079840933139230829471357181935431226048273996215576475056401989252210187919925482872034181324627853222315059077978397087255030329121193322616068932158254049954447028648340894577368620725141129717935328230945036060220764000430053383077133310826765925899238190062582437562393258840120176345039916933782965775561913741600444871457148926342392064811362801601507049573987257579131606218552354003547529435960254740736362686742162724463590606730961470865175444872051701614810151772399101071522638631863567822463113942914537526137921797018693322915740007113099446441456997661780492273490413090663925132467704884799287793623120502035175129648589843581060681054836072163829727869525390118640972690054094173981205542033499455977753557804956301785210711142823327897716189365173679891173685438230809256325572290380436788608306934035711081512177941083258691480210558515801761150725065896338706477660389074542846143473566379174340438302685871358836093735516528199704927293707313374142070763489574490405390918958974200179081338945152284211601469418822653763254918601883771581137486412058488302792724851095341757441353933161233095432001135912901042519011255701051117222346954862323075493375392664714966597793440298558371235576999785983183895559790491914772431840859065971046605679974516276407792604047953064301655726994600446570636850831478968807374070643746988050482353658923888134133254334197107555449505905557170871488867456452195139030201036376391653983138448264793669062307904464946549440129018165613549209684749637130663489340946996872180257177800217471632108754401428609350671132926900497302281905803694340271402301265096417119697800903052973073177599364346715118758872575403757379249943439554737329298958246417499535591428013291073005207943295230398683899457425346034683846692022767860689546625910229495443751045067865238434949409921925483317692226909447638068258616639519306754514929173109802634032602707342899155913058664209707089473047887933253829271670099310923559673033408637696743383256038853343743337509593793767378744030524710502820696455669527013295841286597715848197853910082353660972257495797785998972176749881786334019253939041533487911373940940833163302124669389361517614007451543122349728393118553873476542858567884573849094690073417743791413846350852263267593201648512839830653975672274466564777696475904031385571788144041129339224507057598115509319976222156366649940023762570093136168690633103077435182924222123516125347638096176630672019505794226475018607728120884783693442017456591778485118348760010336695874026809753590627653413543242464632285710379605051117381253903951239100098110180588889141281922115791738469384735351806413884689490564077308225619191400481291461955627139484310477141636731273472651662817397376639349806894471241770556167861678475774569476921290672018839050069872246158671051296152418021701377468948688741333847540707903877075511836652818790175034937426053754645499380314475667704358057943199049035113855505707573089674507983845979910134788990844922552614358733830305865588684539726688448801723829561480097172491298547080376003850998857926550689793541340143317295767091285103733139673973840170246417404428121337961828904913616907419371765487127489088033715479051809542322456584350021839599172242325430728342665881073822418284453728146537579996555426830749917053093898250565875900927461929834487519816084040768881242110405186376811874209745853595805503615058491494365687554837207860691218855031890648162279138158612580396302974044413957551943112174159176874671674508247033420339254257618933608861101849551777277674302598858919191148907531440870695386976935329914482819783529013739429236433742233562977648344199218217768469151850478904856078087655489726336859966502571536901736226897015430947712168966430459280386248059607800974460095713813316015076439758598856943020316415710289287819603889180338644347184380979889040200471036478229112350088295708102411383221085913011830388592970958769035964702186842351887943863723663818680316565221418407759075862709258238631757288641629907414234864156376476492926875363898308770375236904061842761730630876392478455447598122671937366740498280115800886079304009787299815225386960312870719694068739042051272066912466299211302909470545764512788085238057893564485681076064710254986564350916549158572398591735053329532179472145135384310430697180820143471269685686127165996924770838342777571897531979727386403051943637099582358970223136128422085305764720104866930356229432462395858614424416645364683658083663366004119249465136045031695243963557189987902058724676804804662963492351917484128894233460284774305666587259127111929999503133086449420019766275920621463654037344724428953248286141012520937263132685712719128865552261622599049628030100386810225831226737535817269247483505534670031956824934638500553885363674251769811360030298142839830425342645494528897777175933538483577480846685862370814497865797376177128976356491351637910360757078853257660691136582741115016751327570226548070081648896546973288958339586926985170857223449444235367773831535935019039486987124041772085118558517636390712612665632326404751546037164085450220957409444543927512177536889575302416672632946175215526097829333265105252946536957379538524766898755129594635939247334310525828706883936297238526589509892124722859223995606244484626466472837764321161802056267697788974167442636844953109002865979290456339139281854942920102212150303806790450039407041255235705483892243516672688474709585379389096457045459303694561208371201410536020615851415221393278184996943228177661075467443236632727124806502735611652430109804773354981919643699276978155607782496720924934240857756654412023341767470516750331092063544405505478501274843435210397936310819857328517344287596503486344462745466863004335171456909374276538075308377158773701233237106718120190505103386137155645193254500713477378720032873261435054635716958838082808586170163809604234673274198828147342342367348873292700586954690091848724163358474775927652062518022680135662035548862755453802708644808422327211126640263531853796435608175988418853217606023504701424082142467220829064851728184294337455553897612794125187900705781314879121002244904782965645163038497650096271700623295300948027325660325470906725070870339856480707151356997167258750161952412977001705026676336521105346491871715441406565257130415367365437591591799604489676445928141522223570516085088303744980871933358108780133873318390582502668813577005573187540058682289908716331690216798305615896713516359172500601343598278372177695252922457449670953963399952817725857700538753331477320822239263455585446659507051332709084575116291736986115496493559385131525275084380422624088415866233543542421552285282387711473436586808450317719951434971472175618152151917477952394098551376354291773776287530311071278983483070768451266890078363971724745066432592384307204924113124348070539534124342079153644306862791562270309587277911235943963219712477688661831557389237364348435078003258673134890811491174340217264060849943896382730985082184748799423848086088177792193161401835796535521389674570642089661781650684735756427445067474857883580859868635474006201595353946811464962797428809038836587692758644914505841884322317857436076840089354074979689797015776033716876151946007823689870474022212501482518123889447659759862152741529172069646870556068413570635082916623333206692968702297395676057265586797263554997590431762960499668991127395752276634979176521473844815319464192392645299388761781039775718724233030223816529428763924253538065609505790399827159249604193360121494453228145032896845401829846562586835031599345982658695954126401738229598585985137559195119713596309007021520870035559311747064841812327390607701948707292315872849681447428275272240414879389273121916242688373660703267062730182963144358020635344381665439203116221162250514276068238474300170164226993006744593215267919256451960758628355657345484154393728278459060418575903477916538731884855009081285924087620466259185491142748371781541541364771258010270332699379890587713089340322167455385303248463661850096814075743207660715682905689151548681120726356477746095641252373942779125891350934595160789046795300779942970344627790922622753292668422171047926006167332562293341089680758554444886155888770269143545637727842069866094674283682545932869072829161839753494723042549235565779807837921331855756572912130631427550750393683454483964593446600680600479584329098684767087916314397983065755987346225225054955442311658989332351402889606426656481593318990169187763110084836404137351081822551737324854447694099713821999144220802693123259070912007029334076739524925777633314593512504139982333739680247584556054619165450562300024352548975343922440412801173681507663560018414872695913937217900540774457847409392738996244322033817957108309012025621788208858405777357981478933492123288650195419322396448074072971253233408305655048614985193708485748392147074382219668040405930794044503850570921945378398377888484298146604707936795082645198431239473200481691597576838988530590593849561332578555706625427648172941264463084006357749424492483536531015097242680345999031854630448811771419148909333850606519060121435435854840382802463776310889512609808263372608533668626837254943872120011567920601310667894750737960242268527813960725053384858608858244697031080480769417480959576485438177201238285641714881512048899282878868870560638749405829985031802467445842516029302755310468694576525483339085249014034865533642083140878913922416629936645785723933225566611151583673455295234687055368367581948150563609539531101904261266084371966940769883485209621472714676427463675530923974136343855712701718295676916513212465701414831902404088279300879385309508766733484034159713044313596950751520340107353315583142576894712453673729933262988449883079320311052951059836774865285411371957972751767585395191840217115966410912705452843437043902449812699561986564316055005261638181922804008126945903929661751326914674168923363903405623946428205725932624361006374020719886719733650348549302267554978150536534071991492722079399387772356271088320014930808970556672519584017308417555103476823025264333922731733354618745339705113317077651808902184755260996096069305111958432704279212928004567353523310735999681166584437607335511926415260839389879461228119900995881918631345690474212067115943824508698582453098277381886763686576202764946348680697767115043065576724280176178298114985893262646588604987922012591217575421246043307094706117810853431283217486999184973456084543688802450859709734459852052251955578653393782142868014803040999264281403134600942297336129504793299839829779556779066139385841360462086173289572188600222726333479050885289892289097516318967282425845213236834599655877932379799679102511844153811261566096749382024560415117633007629701085253419103926747621886026947499329802516008681158264438255524730414655935238809769040869721038163729022118244697776693189350850278451193112046013381283263505518209414409770040900783006076355560115460105224161330860777354863767436680596250006232523441529125076158647393511577372015760224571259545432306636892187919871444227362669168205940751986386712360687078526386219822818361788465726052717164602996355296442117838154452201111652854918842527312856828476520006386050432091661091369909958431235828213585052994252985616008709695622924973087518377891404514538613409386903537973664817490135039453568808995541033909437148686178819635504931010146836226710582377208565699916531627837916187351848827087698108723528725311050148737118265442372438284381039568486263905118444833332332848157370751927068215489219774517047638001645795559496445706170437924236977354778919376503474335428593825634635338795854850380726495910630420918400075368623346802923796983188659004124808987817415364510220985816869102677984645428829032177589778312152565157516572376308166507816001873005684039661121464210957936649445386088044670180718402576175734028945494937131763182595172037297067596911702557831482243878095005269073192037719029136165786948669703093513527288431608285972416820537558620680123804981590019579566087807902211794868916507061803694399441041738388755037540257383053594941893825052318286912115242622226101832780123519642894315924047381976469541753252668845480562277414420521579337194657086673334410343537605506890030719801682434236239827370678544759277825881427455953845901519238061839885641119317012032157847404293902337279376028555206159684450763862886434783806374476638617824400319226661294638309126903889735487636951811757573132892654239331274607217794609263126123105564430779799443602588873084898129428417558365194295904806664125366020164386311817410480987483068337819838677477902338542018743451490304965854646580743954173663243300781133448478930300949807226310136839983191350517092798797805346068846060149769097651897676097577377151940308785948941630630605613520611714846553596400699285757374300528170789835275808926638812017195682407107140137063738087671208820073215573377738258900238225139895936364135895848346654559387033179152755280141040095775189479100632656491319516053771502557413436727521528467484303235080913115221403190883744368274359148217676850575339597509024290956633127927735272246537092525470822204696004962226036409255274993893081923758485734135122072765578763161434297045757981632160301436632894778589492291632365673607188545155105487848458498215124248110742430515894385828825313263903858212479641619514617336346273062221967835021363557439565978284523829566044709831221282621715995077697591870138189430825223334105666065980726710318828569754873740994698404403847660916737980444832264735203939582318474743727632210937229448922221074114073723780099426663500347048443006113148399497487016483363454502862436292123975424265922140341227155232384974985150727136950168042446647710850476215925326057933262562367579419560289584112617178795067399277453736952669825188061367248491647541702841183988461132816956602702368567750906432766569876091110594048247361309783807427572938392713280340689937928123702182429778353384155285301741618711129242956495950218137775360798950033825471390493632017924418720115397538850396754429648382772122615749392079070112686835805715227963034140427005972941514428719186398397914968420510569944518739004039493166726521893442807144883083808475678423458863762991578395734981041225676306371467769788540893181627683482380066932234698596813253340167457657241091304153680084756130445941832859283030085356803013799400741677311687653579418096021827663487062566017497360327130051867680499735318628579502580753827409085312042944479390808828132659428356431720795836806227487651645338808762518960992298285310579657315726399066602799633481639360367133675139790302351282503627708148538569865796789790975435096068421724974579176029386398644337499062873670825488617345302264990518077380493395502573303817111489245113853705031326173156175742378808522631406065328634623986685878867772495880166339899316383159569603199256683517567503439121139676670289847533767780897813790352398031361824673222432369173772506906769637586189796922040277254335955611441724946911027890831868831117226747854893521405474159471816665368086224603773196075594879133592780985883544046334193247336085787818177961423454154251211849082897582378388503259200648841077149805062206388381271726652723742513969722199869033877441276492035934034230901463304351503770861785119705464294821758938042446543606956851668664046235491560430599811076893284845750512468816314647997587741972835098280648586993459331761658258347456559583020045060140557115300240852092399286996244326416654448623338064830866187413447201651659184270113174275267092664499289714608577400342661965990599285375693029748276067107151420556132760026238981589640290129898088532193949481425339581631737681412202445015707211414038749313904355603840931889477075796604481548143432608100711204333056804058715006057585871129222574674762411035560913405283056495328772022474590897235550083308987977077831770868711030697880481312679624198949794409678288509654912818369457612940374224419273180053206027807128437182986188272560023594261983515845177190452056598640169789102203743699845742353604994851244135285996398326456372128455189609025972781197874463687547735077019984599371712007621700729192766712226091644588534034066655637113470084053146814315550465580537913095657016866520611459753319301524519107465150485174788661741498743363115521831853667928538737843258766814055384568904278929250490930418597605405594302714021523362355232780633875305672077102039142904044619072036387673459869041637460794258192157117912095072792729363479268713007086580180605932177478525210199320972085579059650718937432502007153332997472319843920340576988537620735470272840370696487499037671853269416250892485522894918263394024498581579407105201940474000417634367475809400171269558369514889274424857349330503596339335788057261246055355734144644610122729532798578889074822974326534342354468772093099509085330685236166233577006502401531016271905974262004944165554817488477957958270124033421106590089838191532615910700348505081583299372953844861511330351191494982994932941261511715058804775562562223777063833628943375161970554598085509395266242244820153956803385442603663686897659517939140964767374287131439267203885376679602205644610185232594454344444055074082265534283338302375455165660038397171057882686983994298438965670918800036896491336881409452999102132042893491693105170238779760354483669266650230477268718171869142649533442886423188972458101119528400134332654767127275538981618594061397056639722305570634254831062637082361164537985032986926835091280150470131479045156664639271238525021560470888606154982686900109454670339492027959693429595349258457594847969621516286472611134500900414852836352668773741852484733861039713171074079404561133209980398303724821971543746874733584421296666529400102790222414150206668051853240015912087414830649279634513429736188206173835510447350234352369937270736417606424712677945392118213341248710751356033231952790314090179998542905983668621176484736081022383379116804979330301486271843652342893779875322948132423474853005448105628040280889912807343918548675117817734982815363252785270476838005839229606632025896162627098588724764152661930583845187986449860711968482908506188946206015602228439175400719298790791829595955304971849372657233106242946410571292866965995950171451960661360486621515010297423938362183465692974627242658086166614973494886671911093871910229064651863962802507774169484959710804568955529621959057027561490942484907561788217025904184248548091777642563716691263208260018731973188179338607842586233592104923675450740995081507293885365801056488162539314297989657519535588255243373187385529372913829747062614092956406477497204677891837871013762619921310738829266546198155142854623995054833143324855151381206133231779307108864144670956308678859488070741016883971876244094756824800846904627939386250268877818101152412421421987863909652280909160848005327260230280658411422553363635708541380414142096817277487507476466309628218848568266996866641629943586048317451231496159892975800736202554958175412462702486440956378815533724200975455829869598929517839891739912491796519837528514537983032500404819700154248826116925837047044068831740685977483518559068976063431950607294734608075820663202694467009921765771343973402613445106982184576936246218617891104200569099541573983734195158914090421216124313499835476439136893203321037737044154097569709015250058196225573286936987892005767692150898847231717206853374089136434909808742278045288917609322871475587662939219760104980858949687610892014836546847405537593984718543386114656505883629822837549418685791040297566177377243589840110480386744832738078614845865991235096624273186006751913438981246754950636954826050203460667567408939228394311448632547774270438561339712770937207380388948045512919762898665842109843769647150086873174666666413410613827687902707735031829207858589714156953027923163023108153175442622266344146036371156363321742146957239197556708558020457539660350629125549661369626595325332935814968798772221105546725390046413705794645246442157589440010599578857917419468703047519595917435552880893363005999475467805877011005825521497865177466631161259184576187562812569336494472343123438435584625341643596684585402067909066893087224890263843511050344502549075005072595548289815621756652595354339096596103607018849871524296991243133351586620469262887977540862374344972723901018964938005779753202841191136098266509604760846487510140738902703253593168465370206132533220917566493395891525494089436076638661418744096544929176804188099559661672326439577309710055513147451273001333035457456785155813368176928669532330650671160210685575445229648079393719014187373002508263578007858410357487413479197708220494974128597520978611989028654988451202031643911033276037740822013728095110790009415378099180321748267796728268892762004832565562034525394254581631013727028963359284169636839925053272965034079463239037622390528242543249307637722273717102927216839161727574831349305713683239530094482737921624533675398664600605875075334322446635315247509429343789090046635195480862809963996137512059025171006688482472279880554383784720103903346944957585518619166658175160824827817351710640130425841949687203674974805333725730168535274822781246726080710542557063724446235924120477918188189549141710855796153956382213952854968921936015009076595761516861685627133711790598778210373833044510019158949217223944530338366821485318588312888768088016990383669075037914046734508594029364437081542675554833299544978879185434718210278067736177465913146093904683827260941889425706997235534754048791785441485504696153793625721601300909506250153377631277099066962868385081619795796448469929444103778677264208042245141829431635973931461586637702585930126165896646448622702208443466323930211111037296183710539221279750644504060932433070606100186970037287787928101656335369695966054093088319975082726407412864682846675665027916784396956396937558617888489058080031578507058110229725960584412397332964294586630762355290206641149033838762930092782191849365255880369982027270586817684472278051923561750249966350890303299068105697939525112442641663424839268640177075162700458332987652379528512378497601073564867791584631200901632215164664258764505320435537076079312298214828456931181078496359433365339989342288113832190159695784243276285899021744600825926235458309336227319883121637723252928868625048955579443618727974710238936897595610455222670688010311339378201253692044504502328224203581772648643061098759296808041343418811783256599525229650762634590169904908927975803669869579470419477337445496428888318245893336766648786512467203344751760285578473296195921785029274785506320237514487188387879140430820319050091531035432088507163999074854888761602008536460016067631329090024967771811468295906999936098974767543567194739053299181816733301546954144226721302484883727350422528336807687245637809974356678745626236355782265961502463542453847996594692144708922055778172666580982165298360797461929800974358999659373030509800583377042725490161416198734491703287462803331581046836773600220668989177208760572741199909449420130732307268236576148567133142035175131673661156487821630179302819873095043909866602329970670264694630537198814636558866115238009725225656166783569188500264599482114832555170440175072218505400961500204557186174212205294739231218835457049294533482631502473639310657487144121397047630085454077265915602208341161937044702166707786155222762799349118535689346233104260006459607038729953886674935887581089879373879435448719096783509601726495450052773022669152298254720711839330657726206792943184710744100848543622053996670687513027950461273772050850483957831867278647147752888799722569866095359013767825232439606664867199100652779357250995019894513476130429381045109335958440234070195355112450718821719490111760146127289772351549617014763933715553660604629695091145569196207223425276641883896062308907294952023150967825875086242363171257470813187296616372812267891349219820846304802185412083428082916680162531422267182290137162968623600554396343598346887620895040890937173146652019976067309226798418750832422059553986583480660178919621188182668878419081290010049226283664121868994479837656170656902333209443006625937175957962118558504010817585882594140696895657975567471211493908895552903795931890880447602208461371036875368357162688958651189700958326922701995421434738663847285552374998930135480957250957685619085419552745027184217268154387297510304819667432395786749925766955298099524504214743486773716387299925740268398242233882091324117705014170830614182709770848164070734929722550338922244536422578739425054482584694588543111921532895647167345343506482345951527340653088020410260004518660052600060218440213798748975900237988494709200597748605994394394822798803770611619112713566405051196894138658525952901666108386984668074153501629420683865719559918251317770136417805318047224064087577189635149077368898416869184116899005809428597095170592263714185566867106247123976027701992255684844987125317866829501834183738659780382450741896774743039853487344496572974136678210759820205157008593324442009630261447043306937365221937623252312736779423281133509364581192533114165038267422037575157367484503650959890966761752530997091777876598341465158647714404979363560864886154353697914415441661262304984432262788237080233526745489662262758760834287689000023456045044384640789163834791834936274287886377236105670087537954497178772379216093006521068983184430883081651577907510478397866202322505697151363107410722636093101017636399514356946794420789338179858323779277505254866261387056680863298977072264085711613143960502242387999879795989004878327805422406091014604179801266369272470335219715602894244085066948606079373037012940057707618041927875977188351405212658722534922770144152723548854461070732309911133857983267551283079756633079215819334960141695958600858686062512473269728460276543852167746260467465124733380961806863222476780984972663549384249181410665822481912554763389965395765174569301202866287954167239779301061971584222172071330973050864992145341031562019528570678612231067840949623187393930189962167906501641132804536616039301852347860918093999049429367313042209830252922237885833030464467341889069760216458740323997288307860877420703564417977335005102296339557477827658473284765586737336503613355322959756088984677852722499313875778635438592259966771056663585740347826373381149978255033327091612048493073559016075639261760075428388155925898391132271214514571678590579521923544983293163498512673859967182693287786152712514238427401744040730144938028838204393602945756306835947975839511477744795032798887890926342176470339037221683122052903633045911302242528106400904853297310186960112051142673255027320364876729084715762997020325169434888773819946619350323040691696865927757147998121125737274982150036720670446371685776255156534872806092536025443045643066993729918682523543430940749816661081625313509870441584696364842818347149304721227709378278025315719441450354046784499086601253616791305995140373655618540111003163255196116722096684273136752595309149656442958874565037151664794592911452729686522369857480552074023989468168514756183996556648111789275752341608926380317929950769115116643652829899193177920687985154856781569042391722546199274985037283906446723163281196837537434985884981625821081123454514986558072049336482793544618836337303391270347928502816306524600568650373725663621014905282213297873644154759092760229433912379027516475413025373562365606003309890534165356071545973289309273412524634688965605325259259511276569405973620490837085640140983643009619570348569716519097064989839083143245392803438290113246888674682837386049678899212307497680244521629181270571979364350308212612587850309268413218086797954772137305199087327482308741782811891520857155906603002161606830993044704071908356497156093186252087805001192931913736101179012881212505552516717892210140604816539495591066498210708929525456302497248038673657935156467834963539020016733797286473251980227953746794027909825119683034235376413744941158243086056091202938414998353114642025591826979241210352592711399282342806963414111139479599878904959990521429399479443310442822154186838770094347943195308411582127074566966906628960400695786410415887453863420439332933573348589577217517035759978762220997735443581309031992207957527857661619913727791428639070430023433849707988577167645336824658179335013010109390345962337600331975721899495730130845313049741618044104906698289064322438375654599891142736781347178717224552976132417784862458151586594954967223710428181750746831630944913398239037727848983970213037079034918622299284194386052314675938768460779915039898349087628888125984938315542201331534620665269844690737574122141240264070608845575509922080957922585311738450868702210214098972115987300326737132854369024603081943984837840649390793770935051061315390081419941216441557293180573542836190043511699298177119457693804573976054527169064569467591961896447911651475580565757224863619497250413575810732498520991413177898029590950607836524251826154403179997862215342985211319717724265568737662336664757072725208590829841244277216564193069775486159895820461812209897077177264305659054127649543906628890626790517532038281233114137396063562157425942177792622706743109754041044782654515780543166128347247714829123757571010233998192335077554035594978547756640373328975207928863517342838056836513949724132209847633231237173694515646369842870990714098776232482240748764556946107479626634725520426588264563909083437983976644250508499030259566312633079823151840708633522455897881340277415941795830726215520421231030177322832501495617988229629726837846695097101108185760742233502200275262403115891189136180598230481285639545214491445873445920469795272335142862412199756747420508843893158709124569242259905019833500377848427750701418643194635304585484350348090855001910294597759345653667982807080167391285269324086752263494236965429302606404424321810526366726923138105801758978230703686345984962250812576663310871988221943810840306402831276962825704986450518166162162871292733536396122043102517973171829818362817517726728932533327721692952624355102607300398378341390354704346862700595676382208541090187127830734755449636791046243698110555429441633306757642037708432809851534977963306310010637493134119914257766008770011158850115105853939255695462440969246616935327126129306535744396550154102426147065097092329018731773272286812175486924822623565437093144469796592341798267111274414749018974509583447127130575437656266239058555681549821160835461996478360150376037830121111710511889037306374665062206038906544715860748013788304899940669945280925274987368390667462077919851937247375082341195902506770728629457610943164883007675099468562326281721720074468778254163864186915971010254649013235385081580667809683497985958174503028495953383801784115831320190691975160890731510878961957743407838920540962452618595942124100981369192177193069974201486293591075722178143468279198072133574215275323404290390938131264218938029418567981241059403789537842640948352405415745651784779528764743744060382777717251341853574448422714956179570262849576429673099372649070886955749282442030011851675362811191117919320561176809519582074269346865992972270899752386898637151089216834451885980551309148242138539470834945607621713188627289193350613296475216100759122122226834656302638988262158526110693462537930135893806006548970000579882240150831566054070813249763019931610415104571750535979460621810450762959732792606290101059809607178251099690951349900036897819723474144221106572592994206802608844474686928412287989285258545840124003030356694875418114207582143620128736545759940542778635206758880865883476352277979653322292003220056915686039234791108429636706856320142897802735092570616426653314830251159591588380529341412374644931296279900562688646577160204682359623972617690233709508144039868587669016978681706276906606345384025959073999222440232749046861412860773743837115845149243672818946523787095830502124493863597979078987775502973432782253360112362327140726374643121322392033437972915154864383020746853187749288035664745896346099144084832036018141868791910970459145301405097053684547211539537264889791417863944542505758171552204048178049589993986671708215320278578212537630682536781135225349157915569354256238699380760059388107318090845164484126922531519338770085704764755373514464018000258210749239001926375065173731516437114140843956989385370997739074766605354916887083931937587050043216245502094927346358561089415567980755691295332626842679258895747888978040181603794787953057237860544859392873516950785290672085202364637347892296025338638739274829727842807793318589216888458320659790790753303682057400770577020314300142269455313662727272250168399255675192815402164710405821172068132734425333411318802376963384940308258462695855706440747280623042950307449627581537659781554318124547190265404194901812567982176472024069322921094002837885877905602348445000935271675907176443488894012028961987461108686075566944060868792231259703318256951561159851619155431744107862037417151300316446186457612485063053391665994794212579094729880209557904833436174093413934777580882347643281792995791094617092215349762112222328639484013395214466767939918574057982520676076149374885667464358073353130953034091829691545084241174267326591225538482406906752177450907370537616890150330216101031229198690323961490228847019285438106129224460711097197784490435749766708814898532546425202254359529646513515710967803134145190655886714497539778240871984519519591965805495255728694358888420912777656895559344612793352790784306893050740441511512158811749789264389240795384235823630462922784660915733576025753332704493791612652059489318712457758404225416666023682245673630604969270392475776734206345201092412466717551996631182268365910965793391252094757781065420200585138149826977460099743662092588688529853439379806698560279626906816320225526256804182627417902590351911516319378023438264521995518635969632660316979826379846514324836366870318198974520710377655774787145157339444566891925053221425057901906644127241972296264437823238505497795206355064995457028491960831283790156877969803614451895149428540485310996866822297813666083549535485233628860391442568608462861345051234356324789514098438859934402687534469549382030951836453550675475110241365516366653348098409403367887266438661934860961495645094963571043313331380224412094279261494675118010885084388146663265481297616935442761211624717828132929213660057967162832452037276102623187092134858763234969238512677446033207979297244075661775819930076964524647724633213024857552451793466033664870232170069934776678038335949264675777152599550449601221575962143210071769592313852116685081061964540220962550205809343918939859428542510946080678134426436213508381579135615626336713915252349341249731489534413215100768205398610328479857386937691290157453335144824114593437200542226111606782911843175818669618357646998221295771903367729898913559008228050845342475034731057575762640705668316212279891582935626678265949960533816891986807140013407737699285726734127143211143672349326757479016526508693132765441011757978358935147521567837531969920564457897095376217206775557467331767882546276775193342777552013966574225884803846649613847100732427269460355875104142176763790225859347691614273616537404889739257726831931349626493914528527574597627695507176835036854402812986989858636898582041489014510443213241584899804512787320191552247045950972025183771126938036463112185380615734428514200124407952518336111418514667994907703691999605072124419769027817228762892795444350690582957540451720568588387102164823238958776815227761875279651823504086017813037830195126055978129272400276573937738891006266223135271954411781057171372801239427823000447954380285559379372451237179427203453943842233983737956742312790882475997560190086614271409568051876464898931024973449365661039216591107813229752530287118065883940266582283342794969991038319822152357770016617405237853833707368515615132436181353036819210384901545673429954735715448400465329135777432780383182912098221379123399558068867738119331665064092055440626367349149276746801156506964243633479092098417336360062561651256212709710460387563467932310002271987533875958704801557652185371969617192495300896400958417612802141826347047681278915967872552773971364510120744750086263819714734003111212879909041579030150395528078545025809171298455838787441498535710824293178976860327476695650194897221485179216895417889572471930735554014244772210036066387751751098332601885918001794525025012596197654711003653179696740226496129947368675071082458561435158380815479901644200503784140821540540848472942736260009926016129929372223317979190753632914539048297048388669612956465966246646467323857639888758833056660693576822306880237108674965010834494519325697974141680170776767016980258740375311469281328602986515669037663624461452807302013843478897598337790637739032306068979828720947189367574451693644367229875273840069000337683175739565616244621456601086126986534411318366646300642269709471859738087406726077579622496310486140991619089033099117105725789328367189367771898137647457735996595313903782192671617354081714343138953025409175518365539449639703265108216603422724824426833785338973805446755264273457055129712328599961141399815427439006490768856940502885502465466418034331739174381564708429737895278206134600216819054175019950060512080577270572371217177593093524535898052694416272523873166871070473805814181894736570286111071487614427326416243374227000832168562687515035082550583473743492018953917439245777446811595022580635205865676473791799696111677442373107683529562337088220007739507345269094600573010593942273144125028869028818934696362210672777973616009374998262646584386967453297367222189499444559865077507201748028028270750760747539235280874013421579758283743297146195073363405752966816348719659011916667492843524324136178672959489863199633220693447707023731072649755951608463021642819904275375007486078513345489259247649627589855665574617801771721373709723796969447712152503399378818381018668554578659460061167919929214130605416565973466099434194788726772708233337549432415984024438301202058944071916895009127340274950570765533157205546859535274940462701200989806806122140849487729066917146709596054387878571562145148322356945903150556853584491436488648910751747332583930678120492164999533998383619853749047527834377302610755817511130400595778882935499986022497977364994019929198276678234382150503288683634626120882322689026644708240698345669060044832257778206233601916247192549128791905432392085573298071909786569360659089910797440332614523730740119955448332101757763428570758337093797489692097957473477413234049665219750559458453086226337717244792373950795193317959801207394723991786911899741925730370459772055481502889890977869717805870750123379281723785842800273772044872807855550460457350280969799780344892183417097941358280610445082929877490508612337429089035931693139673591891924137236133492199176291430562457422464731355227918404552460285990688499781834992628588957993721966408209420648940450613836285325484991565854548552897683272706574547487444202815323817480472529987235645214003600959787209375627233233966745016970104499672114486919225762884586551038754203294259938834616006064028500054972343614101297906948232795036945594491230118692935759481709432133883221361454746188344091097752839973748080943397174133598323457103842913785287294145365767654754527354455054554801259843977422477545929179606052171860490109513886944103150566117128012043585953831789296453658850208992710478668084371318672608995964821449024625095839425566307555042563699775411528081761161172921903122148141161349281843598512487995260826647168704899808696791019315973692431834389763715747783535300672180627570811234774462232136152716164094053679153173255917302708383925090682790289232000702374539446971559348964674024965090939922278282555582703036970327601616298396290861433052322750822991520976132669375226751026651912828617501845899351556248655908881182273236580291024414545412681510387584603799688229370459994563113066438284091838232471992378838475796676889179343361003035254519788624533926055126305251766151321024059568666242477287280138030413782806418377522829499013085726507875273576825808097373186907728129028400482308262465790765155238809845302507858886768294332904662832283499524343793391403363277169816231902373990381140890251051524502134399236149947230643199047672053090576320777717375715345209772798820450237748225678161814532332302134829898271880172040950002918465064384234086029451587360807488943564882986620404201399791055739261213463158585254319301071763085126713887948080989186115977019297668226701284732410065851174602849230538671824531264112500073378763193015769041250534707703655850139283834041935123617142008504711606528801347333190010738102947156086006318239079751134700026637093239000450525807920920054661972807765868207719293170301369074408960770785446508189838105768222809988332270573086983659299434277587158476810076721974377603813427530513492584007124668456282757211290374416182611223631605170713215761428927840362070184094631309183311413128428032638617034828287892187969634301880034648689836333460907638374988028109917017660338462032258158112062981571994560630968342816786535405502057570945426408103386309237296225393325053979544331704356456980345518425494961877545828917308348161347200421702043093531749473257347651606492091179567043614702527368794957808302267430164659165616651407368564358284896493003840900529024035413941997869551829317082486453805898904856466720498826944649169639172382682001923725478314323378961035197333425818948896126897790538933291364371722755158617884630562757118211711003899594895117735004062241007642759082174355080359803917288539391887308361709230649862966784355678618127862784462579783701016562536871788352937229767110215177082868798418581389330064077728724077113446200940829282287956785228735148148020651421832061637482383855554441386926393098625812413766999260318216103315433277331266887170983561071061154708821109852719906542525951043170245013552019570023276922267923940937842527258369937795634614539361427956340942198705626188304757687965549828372985822990621299992054021853966125723715016838666026455760860276240196444134595559348871493383394157657692336183434936230748318896066931098796033469357835774270361989473050880142891122273270197951111977079996691777092115803711851722076991096645934691467396067066960001852625797152898849541666588896648902666553869387335414466568960180722076086401307815489555563158058833066373034039145078988360068202406676951073893613964523795149121445915929621484368842255381100827447235544339140018410504072477191196127460094127038173351149157606880977592044035013571533616682730842857533637243864170303414115221562761807180695082446931494301845625398870500018703987649458762821342334609549058857740230827798432536684532332782809999170080770920592736476936165867418998554069173515371089759558998329257981493248933601775745157690438107306974464665831376697623280576970060459617240378044744469354260083636211167429347538610255046394221604697304280381786757561269033975232022896562334694118561433799333917032446904804508063087307153405013019785563151433842710713743428543470677453982147647277505060263618899540789584129160237808040398912134858507046441337980470993711506598604206778623722025059782067197669454714017954417301867198082581890138887927729410409643560760055205388241764229194991059643500019834645080983435352130697890600550361001369414078678432309058056532913205192164148720315725586047790255247949382027839694405146499984912914288551189519151107880508923002373077698036096901470461242223079578819380479105006613144015176261557616054565757187039885592696322195745785950389632320171854936349083906263219773502961563565149687748848374640681166408382608965848033991087713973224602186832714811553197798646817981083967604562261117649595457044205623792497283894266080617664328552637646033510063603788182934158009187783551015047168699343415371055851392257349858485895920566206992967686391718307681525775584976481273085344214096104806888156451182905219813119271199143230325173129322023972476591269363497493969270718161404450458749169479956803952141197020956272502845369355111557607986001919621430125222951988343578665371393744439463324298304453030829263324751317512517386702368220849977381670359676207231767154812575332727902743279933164904729784997655498823667241360879536131117645596454611742086549605675591986670980335435264212973717097308142046034994779813108934032108798096567918605992737859782611501254301493416152682682503284177902381680424532709569584044279710376129652948016502936203659705837897064324097633205290669095330879954175283186420549679857291382794780547465251746882427518534893470357779217000391382719841207275554702596085901222277179426429531276675887971673704304367209985833159290272195106474068597958199462055660528427143105098609548610570580145477799302180532648553910846450498652814962794036738747858197650914125293619967043048566928283967223785892424560022352633621076688452240544290469335181908042746736347701373462003246365629133205094281572650637359023348449461867553369929714481586525121493785253422915187159258461930525923774202584390822609782107055629123480674208496777234714222083871722104877304908293545621089070893886962271223175376644090738088600287366897048452506118819153376980628883944689675098997158301262845089686326612435567216492344114316276327240872304052524498654904775163480568949675525394210522720125373661957766086355901453539221778411078456279690637702610305756244261148089039462509521543208525128901404746059736014419581257875142599264994934488970824159835224434409397423149011637327936890286445184616369154209394158907591851104515249277348805648028344959270564295976492214177674977620867892580930939054676275603263497638457305033090989807345588707717042949279487573157349407442250205054166702289101246323751870516511158003698532630726261529429991850243840431534875579676882837314379778230886946069252267643711114072479116904720747910008300633371604621295459219422528968470072674207676717046352272482043502621040822761607691881515712302676569388676442648765564254833789085855198323319141214879022287677630126511640810563593637742039252138563762068013132874102757374999194184070343929670438154371224341774736127929531148472979319280065033572959040531433570653373151146970874832332278132758529619599152916847806966954202886217208675489638973481664224979993212091352457067045888986977569599286296381469986330239339604866312799957573327153984423527632487309140607575536573294844709661461562907644875416114704818915843149921910254390452593443021094096661993710770436314798651164736696499396379592197443101964600377509372874618651958311835238154149920918960997582942181670134289590107649126118004664634572710851909165750820288630270177905748130358732894774054207195964878791932762887399339609120252934223996126935840979005083992728633570435960241758650221126494761181712782405775339946489391244029758528659263465163876268098357495802299551955810722218478592502818780075707130138133560753050391057693064582788510693652995087799802517606781483383355558108287623577825430456966892880698839579817985196961733306733753098844802955218099606153905556861906051756009058413248922515970575719344465232292056560926139228237913853545954581225724494486834971738401774210287558191055440145179424513586790386336435051062669047675521691371163292174163634245502902065383692317388555721110554281997074461598690368250452860210167756803460015623584480167524133930839317319836729138822165053426095031669609972317811131720189990377790356039453599583593312877978492616137393045498540352136265114706532893648492130205961361174634406177403818920751846642974334592228899054247408660099492629992278937278661916406448484182472611231523929918845754065001464622057713262019220096846256667388193365592042878578161516990234280526271376963904411682956814944496408377977236992780369950685566513287261024422596881014937495226557066721096106933919041165914719571250639332274674122681082568143220582186132852470002982701062645882249252229943795037986774172493015499318401451800254311580403438704414918070511960061602446443531258485141265805161371075871454192523996902932908224305135439986318491098638153205134178249341018876851682776486215256564111787095674035563051954034829799743564981420484587121566289401883078865360449819291749578892390421845603092313464215522936410916476017076798797555346850735340383222792892417042284157981269091783711787313878563753709398856099000306940935313575055271624082751791791822320307733472434589843057367831355123522133725458144316505201564044521947399368909502345999361394280158754539828101061921730060285852398631258054213390951201305896619463580787386190215978118294537445126792737079987097333221297779337469197243629744058678302529030134139682484945165260898688169699469969157276880592860715178698282087855433116615775843852788970707863026155447346498815327396345398358236141785563119363437288671761555185747664981894027092834379972949707165276118574008894525749827091376296359911776617480975711951767599176079611538972057761753796270853084896178920229784379188001145612138681694530205157582279485122119557983779358009040226507053883716604051608544585440824288836412518713026369691511387418668786861989483353675747856137279220502390383254538783977362736885068621128954115153768376206184387636862624098487385287490345050235942534547083062721460312700014532864358444334724085592635147729215972602889446073333937672884774723765003290578790760106186647790845909049461780631548126002602596190275366957318265124171131894924838924909146792790588258176936738203428955850283568213942843999297690166122226972594758197129699263904623421455820995658798257093430323240417203735892544246329099005127268270558017525298823383161477005100140522849708798620151086753008452726907390443361051128029715721737889400695916909814836467307949190566517811556417021847670462651301842477625460603129719934773175489931328067385593550793390305306175350297414782133843666652764586516138233873796935406031619684336496171940108578986279432148059988333301007968588192747673614196869933131488644488700032289544781467776932015416535985611829094057811494827391236852893082279328386699369789452713874330391112364346212245811484760210327257633731327576808539788875470112499740992176644987096507975221669665699118598430043950182500420258798123983727401534555633499188209669802570832279273398414040330029066126008693239454880759095683049778384345636193758477760977248977125339467427708704935726105415049805456462407073373519414125332593133391879604753061191833246160871567814544236710601534586159022227839868717575352090785193993961008949496299671212513703436825578278012983016794413591286118043411587220050341418181122097330551173816380066059333529402433211328602414534248860976667863081301624514909389196094484636327656454629381098920526071338096051148570325774193444365364070274814634101817275403661081864765486413343904044368947236445473510230715845671349436214127004437152679404454917903648707876127559483462248547628850776944096326437806199356601053019939040773988868892931469477210861940509703073496596799185419825984470067662507515291554409577378810997704837998669594305451569117522703740113453306037767732529749341980171898457092353345426051482907197062889785885112314143564667104200890663492715957411467433531591642255513901648293587922566030998155993658168009123783874471331104646190556450833569874273354252336880401113642404306887306387641366656652537334977030403194106051946542615179468724454316659650127103176280944181490958673257238321429020260301193782441596882464540411644969191722173531325067710258647391517006297313112915532633519228031781438679585392566277937850369540712921784474411704697209965563898602013410832567272632503069635461945040197599751476335180272163569207650254515333757017753613535344205002307439054274060381751981523040199873697104384993241763099150788463169094282834144712469087840273083861421536304145533304545114285430043068179077142253263517289381747446863455855417943454078595696726645837783225438191791053075957984291778793704254578993360206302406325567487001663822948221585518434261369717527480707752027125642938738397661494093389997096637520273414207816799455896284310500979681652391998839018651985181096284670068122027907365930914065226748365485737105986278495074976159552841803265399533158683564706825562027672635741157107245312678068464549794766058333647962123475129561250218661618295608237621159662373161812390094968737449220017081162837496343816001065359292347114913528001742855783422187099593212965058816662890857793287036807197471508272437920182321956431395536905145697172032500479649301193603654621128747747999189491952272023249878516163730333615899439777316874622616754358182016952298482214438507917008390640106028426008882614866251644009201908170713827588053135014037029425217086565305233345821234420129649592016868309429464343210706402809052523409098347712875264392823260919216493285192896644662705229243294857390901888592191021487022941971881943119466732820695789999100165577971333442780303331066182136879234217491533587005856753608841202637790484415332867413542546602216933586226747500556371560975361538397572622316164680086513560687768075341906517588657973780529161570927145966567385668174742928569099193367211414635052422128048477429420942949122299702980556141639693957954070662959962128642828970910381542206060294194845181496168006629133662782603485419630532736510156960973905221839923017322350486863482057256512925239962222932205311241204543884535436669727264753975527742001955292780230319695421054012361986762724069729452116393838930494157997327081586111006954776441181279288622472219417227400804382644686037899593179632634320207907477959125621446529395178245203817430281847049572618889022041282200666081566031606088757236601678008055647048228696035467006452036094916125239768418241338805586140453941202029245208826693899071512643423454540838686839503696681679216649671170948577437194027813260889308866526723949642926313735993730436836653850947010539170218342780236081759904503569550780851942600128252315794075111899778710238010575235484020745060237702933320229705312701856069328590101196851300290786313755276335037037016495698675471847129159190423853145446149322061041148958980063813105707256497336387348430916477850147154256996831429534418019149274405924467164981303738175936468903209502345595001224177158172971938913838281906000342967844476760990545312034248509449708311906363275427822132563608213839744237073574642212492830917835163699872905588659956574453728329172022690636727816025928036582049534580081901866104627385923570323984030758364495634929358691149373450165067325958743921541062626485774041260494951043133584235396416304720697118903240824247665528975780693374546210776272308117880646238877464833978607018179244878815675266424734251941807239424591044378428404292188703471543237448455263250328464849762243250003594209951690502123029061943064522590125945445959792859488443337898311091110346376147515557552507502672653937128287178691556286576601839715280572651721682042912758011224539216805827550405732401009797757970336969135587025642653300941701762692176753831062627387457083644588266952106221190931288040816501296926827181242058788152661357907952818360520695376079867286220214079524088197069431215130044613848462156604354316705663562924086692194851599339845416957934976264731053111133006272791088885148274969662556780565404028701310942737719291765651584361141646085128768049445023461296372801774089884209166952021916278140892221533225920364583426834142022096966492369899872497274745412957123275837376522473669595613087749044829279174065231279787316509337704830782213248230644279290826499843074006393539716718127182523925337395616194966911748177385511187788977526675017834182981530381340329685795199239877975169618504606094227841484261603213295032250497222097469615286898648342871469008814053354458667358691605067779505517013570258020419787012841300607137855385683701105450049172976639110756493133597521280152204359533716624843201914999440834890135545548915026398269393070005695902296490595032545755147782841645637388599908476879924818357262959572438778651964661787357127257475557361176230036754082429801445407446389351821419780348509688431576167845954995644483682835295888321418555693841144612851418218360660932059561509606976417633912864999605554921485175276315160951925038615471950775053810231694089683257081000316117868286331431433846215391569201427709173791887400068722696935746918342149152358904390008818227925295755621394362133419014455214673137505559990650664932080499416583076185405866095128011238213336374493921390071314587661256496863956663800926951284154363694622468702530474326352066904573071674837886035533282132546364977856015891854842797992252920412351928780333276980051937175685383205522188836957228245327189546591035409981796885423093672402781635013952339354964398797231259917878452777864652061436014104111479487275715534233645443877839158323979186510305998131994118045725419954179313799252236440050762969988743875508262784217324676143702361598028339717343998447536107560981505860117828398778366050512573777752235970935277072190322462918268606250138804015714241773958341869184183631635929404682144802075519032498968925362631418469985842055984898333657438048754639256822989109067321483718543557771930014312610585529189414795811767977796697072995141280207201291833813275873268845770890421950517878327512103038252812020846812079410893324217595522297932838950206786712106829419976092598539429594908790827356135017042416368832499303398266245502368052817027140055924584621800167470197819122434448972491042537536008941083770691258306834628414677379713204797430889884618598427154913304923886082929612597423068199115580859410117179718806764648270307818635839843789655320351542373174007919609014464609168627895853149845903437335935834854225757763156235935918802843106495077809717470474519805285657289762543157612530602416575720733418469162292995254944834186954230540750667241916868858558102168486857610696293760908833536647866479526718520970188907243077329690902039424383113409729945384118936451024693046291088355269689238075402822307746201830843724693331064811129645345956777327467957404365695901754435677148348857513372253006622340057645812701066683138318658695593581512191771732688029759901559567620291482509048954162265887932839216056014824698612187058072166150712165718996846886131570130411985187597764228812024047567742328957139992305980687530673110124811787410682931606126338733739381633684522502411202530089956992804137016903112696669408718939700541106658983375576465880251153939932718394525811522497896866973489149239600671338570942048872364113949850798467118166095245519258346945905417871053834868829334868930459740632051667016477100184872621533813337126223997412776608659656753981945526630315809629438783823592069871040968332240214701416336035037183766313758533846447748118802936788444622814815483885091579536439388369483937047496753433283689285518527887936738445764218272060532801790937587293276549798697552296112958940632538258461766525822599251676823184212538291997037799015777262472923335062263457722486791931648727108461699599104401934680988239764840960515370251940769271052729653430563799611005966680878199456248792487845032048139463555377146710303447498172875001744192500002472164767032522464280010997994018550385381092826085008289660016605614513658852103302055651437278326207544012464759405657353608017126511158899181350540087958015774089555444172284070765719318511431656872771806326757848513452200273793560094488156749821874062447643539356966149422341196373473529660788671202954389307688680072600400855159503946070119272706482164910182699840299932673167821412988018168692873874698518861244416773486185045828175427861376502910352983873746472421680930056076452107711785543111814032784061676905557219724420390843377819899864128128883425930604572017649382138545308196226329517322730814446009774496563627297018182030003075660978447131746887022846808679812568270619045380766725684250287754878242073326794249077349592900054783411289710436880922545402035178290864410686294943666511342241747832913741689655146203158386276913152093579054001938439879609996331127189827027536029975608035074243861156114145429596114439684955996238250684875659811350578482109096554745898046746831717735770122847528596140410088422428593977603773871413705918920245611450152093242722020194595115599367891756040434705969096754991393868746359848005758382419343773097607927959022466178857516690370019471296370881421012634845805964199774795408458420613607716561930575072650035560352234954777788471784195461267421461350092057835866752330590430519519859338043650774814391345299223223946892451179443396086032457657140319944791196112684802227397058805492722128387708113474530525481428237792609830861184946072032082639636823377067013995064922483557588940157187894308377166309787558374902214630981865261848862785787988424126338969021615122942749632291115285401928557381995991667296447346060216222785468033543120334458836896814057233807249153759502923182862536262763991611030878229467924964158058951545109743405606372512205756398598621654740671934567690267901498173633453957664585822813645589903459203392664642884215761503031168313529664402316687294582472146332801910874393727584060082325378019868241513323298682699945499460670852689721517139022554691096158122448580863872705729466875309138455944015638025383564632572059078207291812726654439262629578857002961253703105027445170200790586153236324930671048295563109938491686952404706640039386830037703318299788986665803676915635861544811527419984417262772306034043827254380861206234080514888392158435970497639360118024797608315983011779918631254968295923889520896301399477944336083916967926827640929181654139563302893674394461267380682537283793216903888019016813963511218235941042067353301493822374245558624549632142255938517791945352655975179007965924223970948902166205762434704297558739857673429801574554389941736602170932722994060375388238537310409895235566073674014942691860735733542740943951036970441286516214175407439984770275149938471521418041947408217055502882808594050998629533846279600106825570853795263220559017199729764669603810694081641381729214453108016687803930688845197791291339503501121968787543819611836035873345229572806214225331666027508261191948382147635351547073595547224552889478191288658110358022820760980293856930235455242328323276525698541697190409275418559597779244308552539780040622893382178376325124497922028112209712391949673483890484785828759878937313767882940345347626556079340813129071114948824476995758127211631768209062966030530125591013392714352896379301532492924951957215943860751508842894205517478146879749444688813678224072739257125210943089044190551371872644843374147689738790364349802165321662642002840808567978282433732079893651813434704761529095038223591079114659188479583216474109193948599395238337094798355787959454036307744441956121430621962450181166570336258068323671531019472359351383118168173445376989724746513976159927985753624850514347269258511787184563394330870033166634078713671477616600529014179520947802798834985711319146988327564505847038531043774493292723241277663853597699908166894832984308122617912298124989789235833514707311794145555946798268560174117763765316534571479535897788031509920891108495556977173082767266990685774075270116977239122889599698609319734170511739755316293895144065639601687536755212637815176986360224194227573752465544953224684740991411037464912363102778929777433827938363377311930240109229633545057534654235288118267683786862477267700050724106521559902381105660713780867515790866391844074183221057550816236287710652767415015375853371360217158578756138671524717810753248154385926715178394800268686194206320575786135325090697603680316425442344681869829573984907632263740956288887879755784292749002261336648126993551233671853603672432234883564079916321564106288037840894404204306795981026566089989230649914635735697378296480593037697675645298061827398252430425835527878295318305755821209195977435475913764455982559207178609496643782327535822883598884392395767234531215343077206624023362042799393398921967549054674133593357100197275895245332859247644513809466241173765164475299819565945609199769683157030780958574686656740590235036333049656867434228995908926486755251251833094031925478558712678456143217583654281634955830145666346072483513950130497662537622312860151663134776358389921025228184011670675103565191218464871450231376520100360467673663189786821915935943577194894950721157978208146784803918434444437034860330383042561416975593478968756673683382148186604816143917655886537146271243825122783875580527285433384999130033758291940154267388620100812141623417102820900864958999792665612701930060808167796397574597984963709896548763019575885120492604217174435932577405999664947889238059105197845177184182083734877784900973568321313073616190426486378623096009257236419877193724252679216925525791808435340869368742932035561960052760813144530656484127623173183191753648209001570401212301107695304678929872463344045992985303061055015832360635671641412110827400260709640637415908416780606885447589764093189261928447761029579458808345146149093368821166782141322108510662947629951711728806860699403804114612648434074807638854677529838989167127312281385465694652902923682699250588777650718606896812416655671942433075215230415482656715886047796325691133339681791731969120822313993313142785165176958548984425702111668702302775289658615745855539626279717759598600110996430912132920577117634343947891397364088037683629912599152543323384214715592731991856837941300121138017457573061960572861893948956193267278472757096427057835455427536274814643233961252953390333632588960268213038021163194667888953538042499512150597059956280852353177265926309673833795286603425387411239883761177313333294955647684913176380974656038875121819903781840752492239006650871417852297612933053831316157155689403519618452749912428394687995825372297829358923487226580686138517268802853233579922911068766672826047356035867469847319735171430561374719964643092472006633235211908267224284297132853047898593198152553920350748417163344342359109709833961218665486743526437812807135920010894355666129394342235839775833861926447591436414503060046914653205616359331337540083970944324547227801594834244700377495251851288986004971223697822290024025432979921086224243092404208821315132637764242052958718443577307964831624628876744622116135462647251061463485874677149813671151617841432668508280527224953943310430635659660947629185895973975105864041369002518234594820791554561010575349170003999755402483432531294209326204968579850121204820574217121528765150737285913219471660581188841570184949982438432890792895911914218740614063627698463750515027538596855639877972866563232459892193467207523299133128199351360562474948926484262680378395181139448703266406699286895999196888096313785645561412984582123143873219355700036697253750431779654054534098823582698555005410702644395919128447587245506081777586159228366407708600144709239249497394163331915532635543205196481837707255550447919642780802354803273893131336838036072103439665248109593491917516334618929893380195492858350860364105934313664089174352348173477632287927068823324777248190635885915384753652999068873348125957050904590556989225302476302442516943425537680241511366548604456553908627350344709765516514008206516720048637877131471274143559133856000161585396305667437963427833207644247570360190225764221667847091273999149910221147294234304220364877414428415457834165863665361653770938466428163837499405514349113880940223857057863928096656878341386318004322904218017950403062341541403564498876247411062251002868869355822454366651672091661546991046150612873870688520459683317113452084173091638376925084841521511600014004382515100834969766748898156874199221753952519527547875846245215624993096719943233338276923053388892047835107290091701618442545448265480349094828120658606807154141688507294378672169827794268030781334855554197359559342616885505629643385480893365281209935328710769280978231665739408760726094262107791809798487606188306460294512256904387472280466070449223489389539069432925361102904768069832280397614763118416090988510323303789850266630555564813578893055329530771825664890489041534524952634852786911656209872466905388910383998299632739253745714227546804887748886700777516994810228986245621352999594541420421893023038382832059005175954144885810718083829739231688874218349061440429468471072929935806842024851222493840041191673409753213380055167321930062728431975212481598033182281609889652477111026333953255689082031007272409494241895077828311662445671147900073168395567009622593093025959202132776119632570127657842599588854563278498393907557579460523110509522965657017950134505460618759262553291100522938945418247781976284324154220665028230120097783686488731224996084352202258790063351109612114177169209679694179425797844188552155188552492280724394705452954404861694661837435243039846061345978994111255821809644914896380301726563765869318046536560401143561944241440526464497351399946967326915696517386685346273589313059954509599885615962769590105838133671549025290188157356006860171837413705563564397597915589716914472432612585834477013274515315573986802439119000820719427503383039137422461875876169421103463802700079893556266278042197419760972623434314928667481782401298107239311279706372199521463261247214218240206764878025603334988320960384633420911774432473420436829216162549117162863667670858776607992900159193055762355527110113013970135138362230305134637637631715500231166233465453238712735010722046109448712387132589083669272283678948853631257441662279629126957904107763256432037289884689828192447562299612656349075466074394809040039525961831033890540313377240437499820099713012954436848147723746738072308162192283514956929785989017426064771334748965230185454706040368250738523670399911584817082652431432317231128167569560140624154974492407626860297249155709487425846648082346699234428180071067339837204932609870068784104298273015698241366197220362090414007711938638363658980560264928483043108204941572562064173230560422495678078133838119760469320648532460973397368949072528043685313246464130120907136357396775017734454975098142758120282126494389451695302494857736947019180982036032196963788353083656950425162808488666948781438309245663569180083440264519022505353093903068425589277126510027842540514693301581620766991122990534157808236201594658082673372573142229653404363169606239776782523597614217460734817125272900947348463363721017942704397816250206316305765542057242568114455113449135448456035508383589547540347487951345091391166250058769021379831593824626213717038801335255526243592203475169597126159121889861787068654508919601622163573105492291610174259050780657112876062223018855228884679404571618765792506999073405007669444274320959030039344139764227052009649501465326100382235740144743971322067202210260744463274319656233186246951297759098963407729804463106793740500031592865742798384488040827421998434921798073369080200413502603170803408425119830563486148235274914778296103352656093162192324483560509125044009836575243099661112384436519803059325974328916151425237082112358742973692761900547035758541833281249922764499605407309650790314242020953029210923415016554316746867595070678169341297723112864927351653859591742933280474898952287775278986498727715284581467052646397817209963399443228969224601936006211395651388599718363444904915656291843723729347259271624928204086538932854100942837984052186179796107416162715888383840619074630100448252745837703952479609190378665993810737023358159021452797226944306884562472520595481044176204171816661982792084002202202063345572525359350254235745741277919682104090534625884686353668847313025454064963858357735244904315648304801880798939450973936337108580135151957904623581811513714486447226208073076832387519840219451584935347814249624330822975517885725799384478187325882289288534026108610878956632957964397205601446695936992751342441354100141414199049772146348468431698865617009730101030917778874277705698406829816836686625313176934634561041545690068346709606295655504470082724521850692448948659092832277452252973262145444969078453173252888256753248169459008490157348820634822601927800956180988827198160522832491700746384301793858664378064920845063756070909329267314184530541799409438150120128900081823724477941482207645443163867207262236892119983684780523938936295104393481120163782707349510020698872492618783149501600645767641498625974748582653180203332640719982361966055783794482550842599496961651677523899502361968986306939711524808000574174907026412490092863152659336188499544512918217896850060351216236825014624800631912843415930836678673033447231026229988417212856854308693901201809168978664980692040127590148642144314655216519726801823441129009293283751904049172067198410697711548092971907778359004214558466151514516384288653108547704003353650764792332731400562932956717630541636192790889089179690482912703163370906630860932091785809611369236225832969395665986433708197018770319593010458886594493743990446714180739500418217368687098800407618828724873726841228199609504590111785546208469294761024781589765864956677877036554866239816270975047422702384325182272815224520313328136905257583818645917361233120337762783433537296005967699720557172165866132403155288958794422582183868532932988780417067073765521379262922701688945054116583555795150183166434729344864278298838095380022444354024777669086859725409459325460360371291559738561623264045896331972621736326674666248769774307727909938845953519409982204786133273876642322868826027445048615539119916323882807934965673690552820507802486257777483977138073190549282388078558174815991950875793168551064657234646180938644879128640078671148326936311587211986708692445953827886541045242979536515565600050668210218342807191016523630977253437806717653816606022368883233528729324344160911516467506856614361228498704201069720369019441379863986549315167674342313968609976503545316221924025072759599363605233593521143588496712226281177002618890939059230301538231557836592262559210037294935600678524111371505149645643558566355024515500526783166339770542442565519105166567899643418749894776537363649331564201781734092199130041186494040640107112627839351804380207145912464290115597130346527044845139686897602476033655782540062750637117653395417900684994411049895544989987016820053367499562828619311148602295432620817858331017645289292451694128212485156611859658623276791075937990925548187298499042725744381128858820644954074404264374814045963330143139871113994077373569032424983788291522820766476354916766541674920612378227441913920474289871283716527593893811482075469760353736408645297538251662963436829365802547574905420377053196025232946879581548683508130095783474957440948799066272801474692640400227853606422559451183922476189222289350446322835746173756134991400187082017304968245328651321907415648569214529556061960918063638549549365303484904577137079739057536961669552106909825444424530689733271111708640683054839120661468828226857305932310133731041488212344396559718822769950660499211798839718989636259564528184498743832029438230284174210097812223222550378015482883991161879524016123704016332811468812796610596387564215349676407574661227113856327604718109774916279421211063261396176672342217623418453439161045296915328807251217058267885541689103106743213663691632315776932093686029853400986351985265646281124638132545936901313834207340472259893023119159066932409858277829986622951282578839558160526698982852278237775777528364945611407701932412727671973777657151847437256339787749452213880396038169849786109869269309986507775385728346474655436453800536618991762762935670472860168830105548891048566008127096772345247243810251795222753807909869453904733947320537955184576648525344513831254559260963558972506397971024639201416978872006994763152987912191055161184522880161041044453648456042524606359544692679527559074608723693955660309369377543097051941778678388011824857193300320059461571234504968926374613953311661782191422586084628896054574336934680571598083293805450264950401327756076811358594388730773938130275872230887829689712634510021259364259434629361340107545238160004920507119813708562977449207937448770477357281886910624622400450938312300593422538897748865584639726633657855001037031147458635459517420785731628363261452415787631690597562523902087176614486589467375096201241477453085516086626098501049134085385923364463767352484469141030910601984551760979131350009282684726394069546920911189291823795787122707606672506263689893840820820637955290442010746393887719702337582984336284583431621495030809729674915862359793433497769763635300784623037599460330157002950865767573445615782524750124591323198531340783842993561939474792734898351765266463601260203725859501967822821337615352126226162925437589829221580863111988526816665499723663050244208313505253939846661303200987390863969075427146456296007364288374020988835172281697819999534439897411197296054812992390803052369110718508632532701165780386427557116804613345182785233315725775021492752333522955565913085495515804277248253261535755714613796404346602275033269940842916569971671407127553159430706144779932468890817996611928032172933255746385459973426517224043302233975833222617974114863862661812095349460477110695738775688136478019250902249651259461975747184475889775984560080528823180929988518705121395112464958585780454845777345531502001384799147761641122127018370442709491695783694247966212003609562309364495616143150654033801949248268375705428344462865409285713207610481479076555775639764888028862281373866520581878773534762167432495057489663949390477449601552465605503382206786265775151800956741781890420618852587870124074600464258552747500309769191129785470093541709965876147586489474041424647564680801175272563370579938573539501749191982768427783263940028997988960136768202261393720094866979219020561325728009391077625335785525011126841611958572056338344150458940089819966066425879694308905574914291760146784926723481475724553338465173959930918441856932142509013190343507991814989294965687505365521669871396631413913586684120924728187969993357651520050230749615293989858363651100219908126740737864244349386762174410280028836847232572043383778872257086484855326504856475711879063768489013219970143590619610715132312408927186604454061262469526839489958986274997310179148618581552016439251886373901598134447975758080828885644044472562755176505860130902780475014412459224808153809777801165952050185211006742215378287640433843386772042687419883297625252649898950116868375242097021676075704400280981797656500445122640015711094161225880035615132691746761849546861150633671516126348902869640412696437880924531016572661901609321763284889556742577027731297391111360986275849984054779048868663394064563388748163502125172779718275452596702071064718473277558889451129941277624023454277384326775125240570238780897886365393987457175474533283572710506768271349767849411845995970235164356856898384649103314527226506329858457293729615826644327017780299399822805022077309670039538759456865615291268073223472032440032243095636641921211897002930063277539074287815665390321766584540968065838070544137914815929838686429952395530003297352217524745547272033087810080162973546636219556468635657048834380806912972405984499191132323724882802142604012041548781543173826921772382694915790584722532376013454726877216340082538840338459068968964575473827462325437486666464669075274304893721649435739699156486914511993476380495202156719817951290067014796346907002887019035041049834441910177005346445510772370966125822640426993831413921979492792294151688383716260596924467998739544830417314756959608944354098572857930683770759838609611704687232444591645355019832317409056094968888725073172756666878362553121532313517470674151437371974106318970685050295362639085468785195001543507106524153587859847037361038796466359931297546024020639376905217699017825269995084963479975549293208467242043950304739995170027920125751907537995879677441596381032813991244389689279016929082794603927353237344920192849896543679491305271878399488423533436466519239265671086062887436179194965045197969543830528180030847257650979871974028288181814807796346904196412606784447091807325844342338849611791982543433698929233272836932453577168435449879474957529546707983728213369066861346830786673405423340513861028169958487281782277685935635818493618084656806029607495712511026723365762069281128439313821174913339431270611918700093663864042608551837741308677160377653674621417332306216804536608866677378716049095212820105658958800333928085762279558967728100006536672819334611690193691351206922018460459907157474616387842305782425363221839019392758672750112875924434228075697975432034989691792103336828185704853029964872857886308251439297004010634625961728325742994000229833408534044174338128103707566275474342415381384690928757811881630261201614052647502930341506820433266803901812825379356086666482614802909320085843110221452495051067244260462934740735704231051814418447341033871418742206355442352792268019264553507511447759526083389273157074206508146266859424834802226715665539874148984424625808437001271995882485832595144213554187925551432845537016011837814642705374315833031173488591291597994794731891934505531684123455951824708798426339025825772425245331508282290668659435909870914147350007253701953486868327945366861779135562540275284942304073936536774398028652909792714514494937283315500100758755405975920514403104750844826434310280535887365752003883043977800589562046974991988424271959547739889100009325634837743515806390128991987053753878382854550565773101135526557156419262529598589467504816182414174068784191251652067353215950181934568132916585700747764088501703421254968756164510229308984163339386497873359039320012682226077289568980938260949594692176101026808200111385955185176902007276281233763945199227213886884206615209243035627736235841114601706961664096042550959692202708395772222951045211221757239678656933326401740661647602878048622778430737712865966195602371864777078780393696094554558003480014153331686938584588953267448069564934356108994215956408952483709670965551176788202854623220659522669802930537576239676235173906691859089363879869760831460422768116966358803068532000481163284689882280783893589595264851048255558089063767216646148950555508684848898051764721719982589193564211001326192678466450336655744179733621903515402643617949104682685793651452644732341656800660891709952204684063174835734046830295258159593119652318218351654047597036854144627600721869272679205556587132201423136385257175933039166416656370392966856107354050746303058339861576256078542860038591252819871054901797944078565416912263213876030389610363976158218149481955798288401923285530610710830180788404775035215413451925315783921247101063739142892712216108265785427738951632251664807551962372594809799201801766074785305262919537548842681746951216122445221707246316722595568689860226214093073789011700436242240353723362897428398102301690940993082265899806442978905144701870831295119269353387028690370705440115230770590360810168255530146730420938736189780734933891124017881249808180582220611333102460276196373825777108125038378795128195752052923476554224422911645506605764338949917800452774837689986925343110563879553917430443097606452142935193006666094091987269937929209842174387206628768070098139483645192928608625962858331430072006024234270478979429590336787398190063133798207928650270771472886979358255020415717688846233929513698414224366286941132462770932674017463533898677771660101708840882875039852994457314272678523961397406026614314721219006679768548050066986335621202288920080765485085385716324357625231019898480056940390176774863205534119206497445014836546469853053825367280101499886303252727687266064549820898180356422053456265015165033047037794064094803781308685898733282657738409710549431441647991153627009400217878040861529669992544064757439600128950504517989475366879682275178314186817264863008800939363304340532153392722160481431632231304573765072815948169981367320282091162553294835702223108358232114708208209638599505487683639068753168190512142755964852705357934215616114354679204909463777715625300078315785363890445291448797084875151706463169326857493972721221129643366063869520613919193120662380976077521642400955684088531412656751893164713318588258487882420881262849355988168776059293387258882478948573378830731896713106253502785590626943457855959515745674956753725744323127480534590574784705762039388883339359676630165008216586968790736448031765960729458343490714898149698118741647595354646357184645328428736448479822600439814663844649700755621872838064085834823965550898153232671248716117117765434856393569560343871604454921393447495572772660073709580609627135665379099669037619823952113924387363446355083959418668217325660419687095905902388027169955442573870367151695256220397081333260257905430551659503311499971339922127932564016031453788982117934246938848431865196490101792511258152247085391232006242224414122931385009635986674333946269356558947618292875969613744713739031453920008566072914739735538326793812989332809757497974447426209468470277985170858920363104425980728640516955845148208280004714670203006286800689302446512459377466760093312737146083874270787177425326486449902240143637239209851291229236376496881775037286123868094060954901012531718896257519109888529763999284135577598547509355319925261111952529012489653091545711601434411478276404443774252410326079355045911585697048304713086936230682302299711384864147093226540535914334087805874897176712489027740817193425855341460123427794164095370644627085900043247624210737355355149519801702878653734215274096182944491752812573533299367620379433519186859557390635373942006673757853496614162299865070468007888615841728075455148908336443544571021437109669920609401046772831096156890820808755364067909445175326180508755507192202436797354253105102716731477382796329632612280926840158048491104157715715623209381188572296105315146120476553802378141022913380838014931642422670532450594331218137767531172977607933562030173829642220962006044415127661710827652935421766072472879212646194829625839982442702806603170475685354946828786476127054999976638656461501777417407722544728037881778511611619533183209643499592549030481306230096806538843095495044513495086687959070186653604780713587299224221780060329345072446046991804460507496291169197840272342892581039624090043078370696992297416954568743930041347614746230758614476810385511606174457811921438851905028397038615517048880986803358697803351326262185226265311964554236723216987170588708282315691631484062746909075277442657327512020849453981239069172794497425226862619485281149810206714986940197996509432751568899161415719044294145506643700988940116674583882009901541219915919778072751612772980925719263545538412032632533339347678210761420458409056123552867505995898615044630991677321449093917134914902163601140020793434996267336054189981121038823267308136958163958693573295150149155195422938479002329774831349702196057850348195700632902855824477492290685374499457193388106935305081754404304993732269904377597310999093716457168721206465536529254496769665520547640247800846135427722897186836179259045435101666976442104803564883397955928299935606810714686153509616855868841327411359977997130587404046412112581247742514887394719203985577703909486249519627240738210286260488870642702195692457601150611829891822521688133330437452872867488817063359259567280827938981047000523421187916522904189215750830236947084307169010061850448642725168767808912668236818048998101115726183904732047277553073655518249061875955813272460860033132031990746875357295891247267431983750374677500024115377375294887152454405946769652373588105199380649826515409959870232999440330115013247999525408298484904410502509217799319223881614136563999228743251596929497846580572531239936196591784023508399509254374098928498306500782421588154537751424890363127664061132806487207735946352798336275402742434033819650193703916536605680913978547885792605189118657075003703570981063286496667249855955531315008920830280407330963354384998295789945224003990594544986154178389630482445931538312585817359804470248277197248444283791962261212536427150749778250055942443977995790690038026244467176497962253506697121172073263900624294640363477996789370901252635946835975231400582379890119146071648314664593522012011000433452019060795873040216839615717056818958342908659674255576636958345289671910990036607468400594339461611306733897730088299489472211243486378673589865163605548278258406306741479100086789264780403770722792119120444681575293040904216777022245650429728774781204354094032701506867757558044698425760796851597794286723299835447193014542532735035537417712123201020448405266939583233804020890321309034137405543893109176806882401900893562566467031639872271844037288142993653242603212406582188666791168024903121864290882113509039757473409889228510300543063554343559257980176348978404829375980551961724896293059020507965344450821535697274451573965350517073067560959787195723035700174645955109504970629527405612121908436945324015479920696111811101512488100494609931336311524013380064966890281681679968073044762444393156104075094689208655772557679791067881387280810439579175896635285310404231383678305790403162437955026964210955082692939442820474339924958999917640095660132863094507784728165584811265343327095446174728970055866963019085299683109720185031683860787363516538768179127616058662489543534202704799857526006013411965450176295621463628587301976114133989458934184495833723353655830319816894922677741835736147858465037307377577359316625663055597409246473795959038698416358063285250307010486926928884769797865188539819026707916370738111450387497699794133634058510254319949758502961779988084377234130051396795569944688880030556331248661424944343324910181620276099241762772011304364218098839574085217435444622019514771894894646856383419380727078460593840869277510985584333790115826705732067807954614037159065060850338814013593083682020139824716362556412396557676856346256123256488969830424802398734241158308407546032461794672891035348793440803707092004231115012105161677825477435605428379342341760340008090650787956362042649603472984170876880195470335025737598549690305166289323444685405317858908401069063482314569602925395045907093523568702126751513644624458455945988816130936253356199325642484844343239629024073886704310951734440499433097339154745120797258602193394501516270177432055492711182577908497971255713376364252856617795050717571539264228013402430452064355984857659797023362330557617223399684995220798259300963415505263847360298335283285787808465502793725298422620376964244127985244730363395268577479455506244811721636438609531036850846939031015353026384300393307151671313688038217950241199259839400706589903988158786464058338294990763034527505326607675254655223789426575545535041159877660316687730959737018228889458223453493526175965187569276599451215895972627901392126135049639639731915204334167011724062925392945020210466458165729381636433539116380393467859741957661507882993702100273682007169149650575452470654199465271417837966953411040135908092483630700579989665041988229008397368095928948633929580238047369777897365086259062813467719551399577717489926154095434878754297936694264557410729518369209213414728269607986480858321815373339703755930641749256772456716206591286367113614919465008148391606130069489099500372779279256343035174637966755063529389830121640787589373932244959594027456440792617362212152815050936946824495971332116792923357788530294197906599122652683398568519000741801597932772534072428153026796362221852504110583134467013134617554062787691364607636065298341171709640818025042101985471404561743584571801860811208188328740690449455869844909518641537393266447250953685904080037458476711043070796148787820031160875269448516585808205958527571344724375827802811609796858470474139614835066951028009815950080020266533118558323751944776373800030182554023267601542818838266543905736312869552810813734510748987384951081297679887159464956198107157838476493389666826893351492613258175837996584401382763080467449768782624212724480894462407507040023982537635882801491943274590503885025435393225967448235700246829154569452592504302629073348527797223591221439583680657144922209955213664768227282974506339900539061408717469412869765513977089373128539874555122304628485423945167130667766256370276146587507901539238687832158911308619559853775008584733956995763702846994250399559004476951835799163709814124899847235621035199543676268167061702303935517363133919494810648909439016527144970277860570424754368634177156022103350637889396354631508944080176280476766808044350973577514361226189351212429379148626916477796301096858527051547205536674939477388078384381531914517483264073990287169149119368637917322170509550578944449268430271206101288757897585331091892995019219361811093909799979870161182896651566066488857139629209361563036413095821792201164249410133427613983601612140991474414636153907258921239971622698515831129397040425717046678921213484080270783774673208190846101664855643586130483209879020697343287983703094322861987004939466250477151583270356624715553570828053773978393716360885799307241688085886070970390662173395069782437321031437763784860592894784011837063954054104081395188099507062335812586679159995549038218198231367385210186995296930585167091051270478479728403833431368541845952735695092704570813882849022564439887166106181732244474129965044902203239432022139405325614388849513311944103309359105104881921944860378344080966748181465483822800510133759776668606571843577186765015008036513000919990036990316401506036987974707889505801838991268568418690279012624386671434936695185364773594002426275961915866445370753163509266047480860942647368804371637544668436060181503169363547650596453890564132252137964554298338284282152532919522081121979370844286481689665633902156265923275318543412411432182324773893570631143997634503947322377613135458064385638989643069937395861094908632095901732023958184201419716294489468990474178176824517172073447191207785994716467848605971058224164449553404216292318127158586727241292556344251503960827218319633750363903933741100161627822143181550448567821419240740004907923415235976127344189135613358241147926645074562338683373266187044000079229469414955039607365021276441298813761773205402832407566461991013283251907829352100971815146635702519442080617401102149217454025882110814373130071968420760237749832789874797180134111669270953173669882732279712345632528390548481692829257512163034043194167323529400471566972673343522598399002358411346833209473005093086236902041183793000723620161468387431974072749959303840680907770217581364464446405062294013027266276198810205790200453472306831655655855117965609788643818547721762117473350886248921231618243908697119035880611819378977297047132399647080220077629526754201908140010150829446843843287827365998972687693058052627053686446358362093494785515209767542377041762477981237261728573493266753589371762232329927814929810373389150092707946083935010143808740091186976342792441298031807717688276322322688698844090577487985039353018600354683151756187048317054135449078618388839462926925804867917334798546479051528828370707833259999814579333377234812495159770144387205164379685843573516364951889969042020057235107745051627871308289454311913931933197149793238558753528118692661067820051800434032795980419038280921507900575295351296274327858701520600396581052526142537539108651315463925517939878547987923964057101454935086983515202343665708709951655027091662809859466060754381883389485257615335630420052933276532375537551053564234964319145082911907888885301836332472924413757672655328044034273907922338863944075598561500989096994543588673621034981981596892686773071283019372633813134124697112012643018214172814752978753182238646516386585514361561055801790508591654498726826135969576526326400502224436859260794213668424673368980319068911889981874886633876387853953765740037354708537869281699760286564074480233602067283720860576645028980766198381482607157651167076980080727006347222386398514369140933362923835040745537422124699221630561573771022822120201963664385166373060703849767537799921531556735878221554351156620959417746969129168985911440130884565303198973048834035867413915202913082617737559609387807250438465466193192902717758225709896103466222913009744925822174936824300912144696621045106647377140710520589439622512097512287084444575958605222145997889705948159765720408185411476884197941828544628944540266900231415048793073923102169341832538641020252349911251011096273450438490891613806029356921248779146015599852031570913639708654971645872595180073237508589536337915711846400556026498967098216072458669493756583388198491108229468919970856718571962651994269030479725203957301602895676544183730821461122457881109265213453958539075317930645654928187710668294004831984715811136392068497942315959928493336844350639180798552423646147684962733826933991933738664795493197322230639887576860225692884900779793558591131193355415221334621094563862997661616923389210870694600082343493937933789532959354264073056523313158350938131607539675774055095049746040230435344932476562540020695009799166514203225200040640328096980284916335797910414149350988562319010954800508921964894739043531453971135437690957893094383088892426565399117829571539720666710774733801217666314259283283014320008571061542777044329108448055051882838625197888069997172260697654826833888133887820475893315682831384457368458277414265097763335029319799238974253824232173660397329427795516048340161050001406584572894022095423781646261416477707031348843247701113562900010729325974314945387740520800364661555886337454206928407900764270123853589685401809017493197004211250618914998585413477441524023795547382375500856493012725090280841655864042789810678632417594878427283115942120514776065433681951788223473816077679663600899733578092595501308661540434682117407296621706839612850735439519198753634144420637230784281063506068488859337442203380610098054429184105211405478166480189213811966802642681818394169815186074960978669738268767511741654239538057680432556466332963717159923675593323336302980373885965685878338443108721169255505238090827991171205668427586029649127556961525568398815179307954270151543801974378555843860891093745213353815550655093803024006462452908436298885024631449340692968200976608738959449834819300669026200697466745059624570932413122601955093104933655126450865000134052387367685062458429474204904308391649471169893214456153872463922445099218057697856026303963061006219493277425829787823472317627667913178630109238254055259106664998845242691142766800054712447271598097188131998558524060627021300655945149417437475679941029984162420311093979703965560868963691576032974420138389339446900096672208210612103848083634483641473844392967198552996337663573877494476535156214911489233796881968750932087594764408642945400544750756988558189017743188394519239678545396755887111927403969257836489391750617963895561936587563098346406003359160900437034413729429035237351438177532311866740104922781200336853159732342575225989887262450846735338517684414776332422375828653263858825460371700826234045559255400271993578210988293696140972620084371950799071396114570930132459409680115973443771687216823764453411173941369423517210169551922766621428998835856324068822144310215139285271339407179900434692127778183150704690092209293887420266445276629156883997738790186218191936003237110979806946245441825485829091405146199728449032323502376818266822478755271778120877879954021267889552935120069983065548379600660829475729279116563105661206987249985046056523607854486826295112725727097299483524771188803835027163124846980676523845521088169265364041869571990846209727374549073231530769452292205382726041290068863494142482034013989870475624477028282426760860279550729571492570362587996047378347448340686024151409081560960324709467198839493709332444976074656804683291935091687843994845329345697488338708844378335292533667113734170095489979701580021980018615949162021203669861256329555769580091488810301474722086842340914599778284489663888427852002980172504985489493626897408125297381114775057100088489152092174236038311038550534112710224701713731302578430987716498230698619423755381965667210492342423896592815291371878341410064801767864076554323629633621931995285759418401343938581953257513616784038261815536673015384476664446988619524220786644433305978368323613250872394255958030161006758162845284838060106820726259745583564125512701525179120306009318023443184415172731621929204510658680169439407758296140282446583303559244121142741193786400337157951185673224014021601597460632380628443375221261050143990985372126411385514423098473180250836156061691569467650141934296623662442207732803483329233584061398067182060186507384580280778863369530026543154161756756644900508022290408315106546952093918761626444415601024538335018254018123950090692384502102061013639512457795453326180092681487522091311156137957920711360167704863516101585259845645926532720709201432995710953623403458913873450309986872505865043834634457120587953409170018698611124682926759200723748314888888036108063033904313570052942875942104528956203463286855493412220164793566044004261478681711268325052482976026243364274933285972877918770733032716451786365196798716900522360906240553944180683519536829599487318945517750961227045921744152348365674703785523577310754913201915995587993045910440543704730203657254712693071048959239492592705079588717380095019368190821666265667809233388708156248208607089432809953443667423686416999549093701382996464132054834821211571870001739873132898342390488439202631980386145742682045608253607570625108661661371307947850361516241978861161979953155465127080284892114555834121194225513770154976642726641517336725549937141371237780519200643730174013012747181858354344469234677071343232343685208338651508452613319648625080126594870196391369353253141439856077154193794680387422156189396359924740725521403591563923837754955129768759704254400230760687346362870792680300544859056193690583568560549212258492339399019466570924002318779493602613508397037397498220303816484235630572787716348619974246852004427188632979831409399841771026315392861068744591305629486522188216241591445779025969520932700173566699294570692659408877793459368110255045213232681786009763863789843960647562762729595403830137618958339341816276250013167857413941952781875751609360316020100779907025599163594986788520231947514600260314122315059104367564252314969812318536589541082849309820128560319122455967843062493983308557504703706599297089256397746728915982073951752205060391835922547238810025212066201913432740977757399492725217739074040847219423261208563869187750793037876019516396720428024294946914286716267883063158905202339819117633328500498473172886345320901951869658824585241236141076682998603242730708116821984671836383125876266197964372374708771829945269467061972990856511382408170624745536267433573244074670630368642795348934405724692046583452458233994059403449588814043289703033331001999061193532970473528873897243632915498725701239134962635576938918554558943435536019314608082753883147925968561809769053432083542398539495628308572377619165888182767866156352139727001136048540244713213677718281215256610996875033270221713546705209045528697677768701087788678133188480752103694156970210797535023662133557716902157951262217286996253814059135186892648560695521185164870383783979687857915564883780185336527856583749237166838855846811290341337580449754460518744146277426088121114616819289411885967928022730668204334884421828164734108148220304127188938176684512844747885479034091257118913559036833977799178889724252598019336639199314978778725554265795011124336786864772623699271901063955568201539249209711586454712033508073316701719401516603807721710932329365308721509494544099633582552510888744115315933506442822476418706609333857116572745136247216460558501041483746538137405740713203533988115517944850574024829354089456492485989459073892156424578145931893971337379929354111669408841296674618814402840695884119369110737347158162862791079858117363900274688864470997888610906885788195610605716228985837634850645453517004847375376508837815030006873824563574743109135879224767142953614517062339570132194445530361936576534829540793059766004564158093403979380580108320302329085900725520653398051705591094099095300438400248644574745649917986511592510427536680209926911447119990003750146976699692114328267881549307295800781320577219463387579547263545176511127601255455104118386200435301489694697175888159873537156600096471433298316979869260072084046090563843879610460772738608705492810836366263899024667026631839473935207712672238981482300866750709872618361893973532195975859785246429454418207331788961410517403672408664609694240521495208686654077362899250512117414470077457218581172041650326095494009563335131297052220457573849249690396937800518742351618477293967592041246295652969934722887450001121178820669978128186947165667984510255185256874526220977771282930305536533204252885606290389823069561246238266039725722628117315231620486450743949256831388506130335241062443079997731683153155567476875887674334289672275055393997931787439524381865444188219730360254858851922716108888360317655751641894289208498941634244647644632111059930512381706586864908703074102660219596299284699870816322085347522408938608091751463453355121902906618020445680215877952873752541834808567899588733526120958162171016566746371690015465525551903024832787237503679147889684471926032227395188987938330447239840623615856557872969481065592464709177500513381965151446746073727854771467372007205185916668246266505030260166828374020757756242258332062357720080449179851872553368304543344711631447224451832265487805637014439209164909714112034975740608134661042902583711597410861813181951491053840300230454318921606966954409585432635648976893536476238704706889120800855391679591132069628073659377167261343459559867881564061232122850535500104278281636797865757234409552488828114468901849386646115729702617981876420926298155961464524647133228863631619555965047100062050685939149515062161772595396366656916451592663852213168493149833687742237874966807427544886992056681393527307388059663982077586380655494029650606996863649909413322031708983335944253510501069325393212063032708443761813547917499467061732268632837936070198146729486897974237088943170291406847944919382072687559498966419905078123728860320573369598347632483943288068351797748704817292568708853906621854152203874794961610460231949876491331787413950419164136270855416616502979577393709677111107937431184221927933757494551499922298400532480982524957997363101987657846329423360789685738440802884008178738171456257517194120267895779344703259569030756670732962638361779130331937648264372566301903354213239440427614688476345708084113163133804121227712691062187145413766063288328331528174570991133383915834998725295418798872857684008877608192761211771126814127390499012519904943120157695684534756156713191806699466384739253162363354971615601998015607744978196437551821826901178143029267549528423772541553119706389465509787209625363097393157173560678720707285212000795838041321565099049286820706671884686180973815027926759649763865218016841034271667383887160767136051915009233564824575560434917728240655108725805417988210094096730525478984179507439174967886910630371467059761394603562969359255993463702523663607755049320341794106804891796317959876870963054888316977077601297575582511271197533054276495482740935643854964812151438428971666544475600223842041241109796967492701382414300885869034344160450121196041873137657759275835174176758612424303550675843229819547543665247843882626822664782896813970233796625206022960049214190972747194855501323068506616971800909540325577490878931842000262247601370143445772050472081240111444892598409118122627928913491835188653365528455530125485561420484792539613426757323129747345208516814081313976296004204937483353923742107682872807956849283563308847239609692097146662111212745627881563875879740781992966820388513554663354532840258200640107447904880034584479871550129283145677482780385102815571014465329922968564137143618091074815375538493969443562313083929602736415346589235387185097676738409472158433021542049449657845461156898185351901881868781111589535874558293960341253650356261264204407242733427379451301640052946635957868962434179443569018467037650897157551188649569859397021180964534931352482694334480964447128513754097964121326119275555857779718499985411818567373386072799968855695442499480554991468738017181142724509688070725073283390268452184605773687244160738302538394731148432230458400907896372346554163957193014814650742941289686509041666507170895617193820711763660174825862704824138341796531334996506237808843820339608547944837381658158016850529246192321640927175906307419775512963379369442872694993838355963957093863071530237649673457134057626732998650309955054654363690007933598647910839911157572805414888678504766650627305455913509116360569437210334569776432101636582710659989132027087452632693335888463368979811848196278327389254002574300980635882383865541226890836490378822886946539234272284978297166827808149041457697637402299594151510054916275503306688236958233250258365861837802290903939863971648296770391007314881565803410205480648543415566943925014688289282914506552936542009017397556410717414455121914415581316913416485119527239743011040287812072529383449734808285844118361696185755447410141524136001663622718827526510712039433656313207043100905470521632814812816679533781715028225484657968126683723321093852836185868129513491271026908973282440408444369540074058951169404659894486785197392456660433473137518955018199858396749778354259425185284301281571217040213763179257413505554030862852103661214657486618128333200091302444547463432963764901736417560274802920330289855761426901718999552549009853539844716026144940083706714714574458239390191375866968728912362045087035519850260719586193258122220063919446711832193492651394394648062862441669346397925865305621189106843016969463084302428642810913280573970944216816597241401532711526138049306141223865760494535554686183209566374844371691727529583259470178162260412904873648488481789710635837646371209095410134889674695382292334057446850743250738323944379861955790548471390016607221075862234221708471144575852183128106977157990914172700964489716002096105070640675824462152180136159449346191637402570876112512858733974198881368884602070782339058100572100418970288060887300802790195288822367662777836698627164870565430553737738774738843977146117510472556502978841591106152813227907164631613981197477154876708405579095569205184337419410600190108972256675918917569240259590087108365844758741125170666730350080219589447778046718854761153322858609772266771344005564407388373883580607961951986178500906483444388049359534551737505956239446166362218495503546121987816897380756675107256702371326752116646702312819280597273282846301337701417700109447312619948711250423137549451346316657590719537498205086444796839453757594362904793249836461995484234681641455921782920452870214585017952381343769649113217134236341104023495882366191239587211097835287863574796508600983181217396572484637446636990957443438672088518327133625590813762909752261889683673643993486319994387667206632076519056251779157346532382694883047890066230950998683049574011429858425512192870950087235307500631582632541653635873804856191811851661337718406721846936345754256257894630311627459591866714398396083741146976282105000647504955218327800369389799163286117503687017883296455366438742972968688157462113777181686748748603659785425500935235355535785309520322714909004808290339433547744278992798365879808618980341730811620469425222661837114338444410597153542305602325930426097885698879038354146429250454238828519807530372129232249331438171765900789767226395149160258460709222652418696917094466332243548148516915022157592342704716919806605253553674525219466929783276843887216695773291604130396729370235547050535881735829642872097164833618935641691953424989284872141792865758013134463751873416349128603822275082989446712997332638419615827084689999105425567625534981015695483405718846928939228187302432181653523463265439295769245861160276950453343009009628950206405442271348399377238207814795615869406711970554060371085982669103331647518245373339011842993783687602379311769831037179867542180356618676051554420409967615935447509421082071889563236127313307025918373020496197080940731727914910559711063860185271083156541826046869414853625138792548018822779561726690575903002222693896087312739949344823432115585916900489737197691458927425598917968357700554156730472336003236872878617912813971045018765964730487402683619869847487743909158085385858404315210734573907916323906372310950508024324789620243981125686714246494175566866942728760890161508781411384531826803381399330521766023713625026706413493230874732583145325816958263973420675506874566667021512049291297480854555263165365816228697698320327788918395784568877838869848516016711984268044245077425876366994808785894823179980150796214345849732955908998445557273080487859053458985408720551285890053885770006324403787024970398120843795174636236622448405712532624122206408914479198506231906080618894295630957791304103808229205846472091384249978198464549668885322103699147347219412959980435400363602721349633140540920213260156377172093682905311203910643799538379699964019517439944109199681535719410836374316331290924723204331845633405642483097150776452750422805966725332080538542958307088002860387854215717994945162007425436390811779650363449145418852391743514559529535733424174150862547029238583414786912478285551859416679528021825070437238206329111997528216005401344145239603029743768212650994316440313846407320664189439486143895400669546909386766832709068466550144398683762242281726629270165204751560257285152483762171210258460099555665479180614828742167842878632528350854932940123590534110370384184167143441638796181415814079798876829693277242417502991305204053614070589353944583154485979321955344653962690702311225543201495058631368285921983324843170122537014633672275291426600704969485094268062422320404958116812310314628917308842718248125696526625334920529081440027569290920711277624249899447281251863073638802186776165248235146932298374228937350958331199451995644938215407512162119149719131448227405235495975164027442083996716515858366985004233724751158325413688524746670369249475566381327948933844492948676078781873792196124063625711212844257179052975034340163668396834224267730776918025957538754610934383498889771652459462842833234148214136451297413737638622236466181215044289379803754648511460591884981715463668948996730430451422399762575439205579088151786253224224475819040700689491666093804863626511849918055026721507628825068160261104129026350030504876111306590024225271455587921864357709131649780572315600320798248196707320924136919395417270690249791793719804177626448506425570218632001719620348972430401442670652706564607509638806284579018620766763636947606967616481531258924622107922278743921282619108700319242869980949488900748652030221509902995728820649049882580190252844667205043547722805941776825631670644219083098947235138341702600133435367192605586181224940014987684324882817267601491858881217069915789076324654240308276627094591824445362048849901562077994739508053513542919794020663858709875715921272414457469312103899343482801588597224742157275377528237208275190753441226024306654817828960552448712007870201012394207681448628436341517767748665159190293394743266970003602282742522077344118179530073436592983465159561891273625768587318548923239326848102598010551766984877370033629575738645129686759986025347069478578052873392215060378973324213721643889678973048340566858766878666120379316746488265324139153318603933694532469196874720371087725052825577827583435680522566910706797099985640706631428633110740029421349225285195118365862220481518911081705849219817929795913137108139666401487121215569403968873875069726347052548841666086883708587821294443950050401947235331338006007157875074575869755682579810957938731863174872552417344427669813831397455484083372033307962822069605904470077668815840234932525772569450804363214425223940886628914565629887104520464874127234796011626092971999208412438923993865516956792492309497827866047927159019561664912734747869996772372060379381945406765957467933041727104143576000159627434377910101341803888386987294314279933975268998803564378423566938266767144278123327599694666631847700967376841489105758192603791059001674153810348717978572092988204914391272904677354246828529790023107087320077690721951051855952161058054310096998341171619048535388091166724555378504110640596699201738934012888916819870326124975815409536345291388546118021995364024312910543072703998780935178515850274775649211886732376362699022808168324163468665159496214381449254229307526678530221882119550496046500462174365930937079724309344706734599102643120716935589026928675972454626817310921207552579338122036959970011826319253420378375423936884517557822644161954177242400811025791510607227735645792763074202162918436497672351031517081613458483601142309969856798749139557932440879893561352558429846214114468769153117798141073682666865881296006996462991479290076452241425322776296292429123503750495612183049695850305846598160990321102418846605832591766022670728465882617502739712742104211848282449323249729441604404733238930316370329365989399696753061814189989889104720259147239017135421405686517534706238602475085912658261614417149636286101895063810949460474816123070798043259493644737471172581341718650354355262090743794729260445336136425936762717721568415232984817757911442645757051631300522996101247697379363719976098492574392277292164680360380994921038022931489601599888464268533384520402038623577725810139240400836528910740666266178337619374924675383640023289554775814751797212423402223482978121851385794210707477511168179361088235308044694361229467063214100481202805777531938116775908398526018352872780048978024372986434982255820242356866288607176648118683979253849988571113813615007349496711621777968880020881114986033321475954032340040085478240175310640794882613781351617703299952256556039085693579455297441130724252321295452535223127144985797946353007727284237040655187536300331451088231762908863883352316170294872235489508940606005323316677235311221554027374588615896463102378052570447150563331922402870954948650314257585438979998481482325242821681190766024378117424462904962371742060704164010607469393734094861300082128006035724754894884377317639283646998066731372503111245003251251753447850356169012239083221762140358134535084795936883216884004329591923494470882942369095315551957620250832516678012969031919032930192223162627774647552362591207486039048409476199793177766050614612047963017894482516356412782002396471029377197871685502430243050333060022420422437041275626150779218909790785904208584568434468478112230805095298790513135906611789076013758739883994474559662471506683855353746611691173740468530529566101641959374356438444907775697488811876943127302850142206416164108645434826689408824345736436943276766104474862808762384787699459506292158060821826929602490489197532157167343709712452460702061038127761645474788750764414441771803972081632641896739363956658112525883419978290971053391354375157998051015572978722143141718981439437147853341018681733888304653634398259963060769112479171553188755508696360791001885015853699583830596610759730417724929233768210346751433755548783288160736177282805722841575388540478592838994704034926620751208230994215145953849516531786205228696401703454456734619163962922796771786204695788204622196193091878374442570254934375212758327508966149559961996420143587845901258945291643603481072883809248058534473220678108124977512541358864889776472664625504211790137937839502157316847102457678066426857904583655364590357633293337781673504971066385616593610526407204546834072279384859693362493345002675248433318273777729213503072220415603029326176001904365176680986502985395421862766896502276999208613154016976158151934870973909638383583916028755769555675822808266030415069176568761234704683357225949397817866660934458170567285081692968937025077427133653482306195826536049844622573629325736750038084539358613424665775379968912463200770253654317953781078933373497456994229301096537630756662051450314531628532139518935583661512534177732044162002776769336121605509125179487176120342763295418188855848500040032382354351317719428889450321106481413728438725349680404699114575394524352996581635343492331267082372138605616999873350663439320900767118984095349240868560856850441338585064404668209445236587607132845745771121075085359479456007909828965444507859533356538794439469193536401383947251088069577052257654857654659300120155722023334540395571462628677020232275604693456484568267986977192510281181692139380898848856874826132606101257547683620137187188411204276289829683783970535162590609013427132997992004723099695491049652227006869335022693570971359702814431514093918734467635101645634809316786360643002432482860213766257822208415271947214028289014131516664800599710014300841373310521458405377733842672141988105418834345096068568220499589213814754657363995767678632791310084540224182783648750154744331579091626946351841778892419995550866269452474586206384909905182712562298023800678565130466200823875451859403600521908711655662182698717215257661592458564009332842318156796131786392346993369232755514558236879927693569590024070206943491316853259200524084233615617256335977668866886781197398998655712218556978344112648760303625850010016188193289874891517476181968193761097203667124849566965605884732551941376339806019393401822492166680004960615206592177691150636588779110168375899511507041761633651564700583152297017926744106211349519426114123731391939380120644822492923799855618990317888464504496438556133824517577043390408470586780052652452399784257948349280219075119669406940760745166648138522658756210562789605765749184824815449885988710508507924110283587184282077256867245178858493061199430925367437429481804560519026586791602895883287370980250277300233851495989124330288782775214670486534396387178598147511042326055786962916520540583832658914937815922190343302510668547694294438268368236796921071880057033928681090275074455310211494500004690405739532005416628623837248413774044467420040690690322051911544463593387702476290951543684612520966149608743685578262325716731484015413000177643548642366365466213098028404229394101174104373284292401644969561807002984801000656396967575719984620610238899289270786699330790702270699216859918382186108944227644014096646867110158644767316800796555823265881543782277051487575880162852608919019218943562870708552178830301929407687295948886714063516315416625682325715821884385267023513466430878744288708192964151761190147155851921798389517637970823757965156320538982416817428636969359284474789320369050694233610701475948266159945272806049680827661065534256497420082451203001228842409944760475663875516453039215312105627160117690289136493015103301369660051659902186849889375309581879343056736943358225034203349482596868448344816944363352809964164536911437801984995374294586727194521419172243754990461232146383833489824838246157211109704957630348618796049503486553890599100826893183233354724083046604255154242603958291529664532839595799522130964148757490146581507135957435378260377554590534938111638471780680579589986843989973482768609339006097569165518410975300060798730745979808201958151958487779480647051033594280869831796314485556925383155865413484135224889490025255124042100662886281129377229314514251406200784467041421678790212058806269265441735134867129454177695202160791880669863909528654085452450148828929082635172276899919520720300494257961241064051832322182963585744393654326554189250237518434833796341262085104236708460947947127809270534622025135101412531520201394443384304560086129840746824497768967331497639878012432932361191336101733799516967056181561262220859937971809620542524682218060926824348085418096318943212590241987866503545346613725083909145408343181859142651905377214360211182283155558131367544734937842091358007610718940434315057396969172907003571257288699652940275787992305393373991877059104466798095208513659757036275446226279259858629026970379686649507824362064788737253112680652868253096954290307066607804994201666156728196717778014978714168981646326800686099870220964236262991262237667356285323870415197739468017717413106097486765191079286535937132922327686964063365231901858827036900895415957507571436049963738108367464596909884715091770503427564872831226307443335889995627230782534217621841731873882104230583643333455358045021355223063246714124274139133226425628777417563460914680806308850148008141337284126491871942797587250187678996395424921347632457660235021529242198594619942656954121268608615758496993816946751732153699120579714779415121498827707731567645046101271892852017918744256745920905495874328020257830362523035201198814494100134714035374712251705173208367734112278799934238137816796920101823763485938589480806615767831640442197829825172760204693813920057034797743323562294097798726226935480299268227444877385048160716228828808905123318012579700232271474048777294717284287207123296278325961526427547811110298655836780321463268505796632328831982121641929885138628893864661117482064289501641157939429513801472510418015054475502441332703004142590115352695393779127480539920231352683939133086842765981386789366138994121937850484735809464287381192631416391802996486527573526223082641393460268415846369249893077460949049954104254560373859126837665859367265124786707999441270896050233740281699599207700977928989157919403936354759643226311530291527320522958552399082754592990712400149053607711854431882736075428278176237133336043212756511763425538368774877899227198513937718693530135409108068270094149585249556422588981093553650443732013966097121817176182285869666940602082277726865834126263958910179100115847960215411363107327155813085859218922755629681039721327909761677192814755251541033329399864327135231837832771887433705705590476295603315245541527396014098276495106510692952657440223350329552490192235367666735921717307565142534128748341455639375897564332488339488573394334743552533855808621725106450062082251761039038919908221567266372478863533632024846769823877977334011235732368698648944361208813232838828539024807606042933618423604356180083413624174993200914970569145403004639458040288039180096164561092866493725650551709612101324143466959989947544349996492663230840236997833840147153229891298327326818087241092269283584718791256948234673473097149702716854187587072451211905447153299362696017426839214882600189019393587784444750028045567046164626043013406000003624793003854815613752868219684823081414286926307381539475025041602860537562155993611911708054648141081057808147857529660831558887801979594303771942668977666521581407532355513345653554713040686150093566124368785205013948542495590113092449712489228078794289591550304104793461889323714378752354874185526922455764586034550279767784700465122143920598162369542015683861096326280805287294068577152724594255015129113411230448659064550313263427664891055191525457621290526295146238999022761773418408089502158276425487118099700024252599021939641117225150994901977728611496033985518017237745635888144062014820056443957394989351679721967341464292281717836033948489420501030886059608017919870478944596784241726987463654952966328416204998569539980077462692570342293204516432767409209486255300514797134370100446070019659487415121127593380589209817523211861462881186685362163587042917318818638053908805954036173092981041221664396419129012435871001361069992246356721783716920151013955489464504989466536459572067563710067972879111528537429480080908606025218118725978548895428090047275472657335604435546157323929922398043975378906682327357801601841613910016964480626634353483850597118411250224322569963802103451570035316268674707206024151030800873799945766980825558947633803388324720497217783826632403999910186175985419430796715832794082578328489027203648810430903089461390716318887003172787178006615930141426239665783546756890755796962154001456549167945333305112554592267937264810855207789604614602170514345806782289644622430362721583688591629296041706730446595614293294978723081011645976094729187502382153836896211450221042526266859041800445319850784463101118713230351818140759567776680878452438201343765320402810005304872925615063208027268260554758607925405629090793581461755571274082155248270483594305313006813676635127266566669129600192941104325908617791789756186297057739057428877720274607283064786440121036123466833457880701218652493529630352086013934349919858478331731278867646439907947431635588555510095285186562568645084586909486200615507359246394791126526382329119428320703569418523624599694648548447351345142894162802453541789438995728395009488681027559934533394120272358256157854496343064044166399726950565356863991825131336577304816412033594599555665732200314739459368259393610614920609822554126879644513964650822683004832475539997953654332207205125455564425268595563277964076226047675082480817495617492815886665791872562534258067671032710122994936110184356600591412163916510005344111270746254008356890828857516994350751533088293967311443778239545424377169448866446967980195376714391287814422898424431921766447653145168522099393373544940406267765063862672816324021099840807075685101230254409351125876074629660397750646415872818557973616187931521319230928180422304034499784543437509980077979956210483107490598703955548456701398542760067102618935289218548781664666811526429140193550179807810628306795924035316149979103851038031479366493816811831857795806136643436877422771212858660480068203984809256511927466974931313137246996811697084417858441995713639030867165294020441863179660749555888018179247841724079852397020021983543046749525424283796403637982090332182452357223641905214099338214636095288496990113703621718151208544717320436876984087319585961576966142567726797656536833096802552600591664266196925562443359590041459953887376187172477222664189586845092692822822149000396714304845659898687576401197156618901857897877043621336428670201090183022179740224468469348842605320520762535932848217681959158569319910512152053460501943946457098783955290126148138035469863992955393025935585121799093228597720854235605794434548434758699404842567015008592958680308411561074243810587551739938089013028052386571041430221906490737734061737691403146156192962076761586896794488860126505834806121285457437667187299525366796693683084210050919278025358557851891718174911423922362456371758286335144488363729392368300545128369547926206902510156026189283031085637819628940618830175307685790459888898287485209860717844079802112751058357023600836919406905383693411108141175182189215983367021668969480996143373621106174395285920845507224985184021999527510332720304496066347171599167439062205955255417623281030693488113040838281208766858672859648684899203582093108617694905136957505058748549260316846543929472943017619092335070133751598248941041835198447181972427336305997222660780285914341041234014377109218822624031552373961321028498252292426786907871665817293537829418880196017620126953418448602880256447746288269462344718241911461849712785328266186144824569282468375026333795873363075045791679212932244330327835303916437992878911514608654175030938303248758297956711782619340285141127437194366297860675165193126653224337751635980318322869182510778910698457772927506304424886971833185046989706440922665125072627602830579931198850080613714191411262180070421192631491222435971675526900811261467093722016234167186775459496354216688720517015622264151469848081447310814082960427273834764235506832745580419721229791060547284553963829187258484728814662191644572750135888706858226634587002971658280599913492916825308160328704950502596641648211901218471151913159868292146298914738527366466093895581497853602881279630959195439075092062631244029398527907792001640049200681710763341977646842957329889740220142630284460125399075432563170148854821129863411025320862531083424305832422743369615937613007438656162455782937267830889054638012584800825294215288400112620234179194761404797851751951598056345464940450381390565544474297517085026275584204133927682678628078718226726957960535118646266689506112412867356293558083123933566504042446048643637676903990489772660793066023552949771895132255184839018158852209556115301883897974171359416839846753196856961516491692687662563915923145287793338380142662713602118936682549298676739961915825109198886096748433558971978007659463833928978992758987573200385555852407701352993769809053313695891427644985691887293750643092221144243284597831717208162277132152434182978086823219875762763398337434459784868724292261820016429885564512261940362567459340789153716747380068338587657619159184832941511376068267282704683117628213286198421478590907224769680454545718948464551808152592645380396726194887274395311707020741727077090717085795987786919421915370660344895233879531029058017034090354124533578865437669704042628723976864115115935557357155930920849774125615865596388509503991327624674922067870580902328157405730617950715622986844092544702680576761065553232856272227557350573443557704950005168215229666553427844436744779071918528618236028085405350863083833928820747797821448399934646791288238356001618503215175194950767681295824774631812390875095891946078981444912384152107881384826631595116143040505996842043156969186130770980531603519177943483103321232310975203133543382447799026198734345227437325406150157593288853622923486915739215025037514097907020055512274867323018005636750355876695038829740279258800954820461279043275186945377632371376331772135051236359361853641114423876087807752424549594116444272725488772003460546747586752595275893593982852663128355923750995902694822210174174127090541659654237925308439971057310631328091987533320335151499615386193360217146818135333074933921748589920631373088942836889827169025432804659830013464388838246662017449648292639238833273610920685731365706964724643379418928396129134607395198370215847844623972005869103789182865572125693617708698225975428813982726214984763917574014497442704044168421750211961414635925891368000288343506472187268054182247786190115791057227885997915236485453060178001890327267381579506749915211837450965547892556099351948614762349836662672246031758095257845699338666256142195951643360741054050896287505073941167320909449893172593547118204677325653627074574446224041561604491795007384987702372855974767964464780493352694940699581815647900948744149217600454781356377346971435313752981378953906094304897366047581071933263618375417929017234045161760409797171016690038913437583716255251469023140286114914641939167177609947854502516040253009644220530358476246473191783875266223472483106868446569553666601521972528359629844141949742377294161106775702535874317263881428472074879929236148610196818195257179391033819652771907007020177057533753109921679574330659856597933673112272334136124473711422695700984999466601483186231849921501198156570457988388590105698502408997053080940351343682524120962012930563640642147526337941446234131049361333005926675116116085992636181792216541155714883684807976080077520222420578208308256243698170957208125633077568271712867815227053815096988149151274737748125024551962174720103104018830407083399473807203193205266594000840526546440574368231108601216885008610812769976820822395989049473288839848526068412245817968942301905272741050365837717784558214225997915828202696863065471565342459201013907219200979094993069595890241669845972128122540485103474983516331076278018794559227583727376131642598162582849346493234336084638285549356451647892614816100672355048602179403163948090277992514703177680582727554353638411161298830701465860751100342660776837566730426584258277714635789139407606671637131638498200841058276098407034326741138542983797105719229351505371567249613238252998345852964469574198603059285058245125268022482969108142630751413330374754755942069742986651276348844885061327295007235623864911718379692800006096820754592316096774781649736764102609312865951540944296281823765870816736084032570244685350144800232034583674365741662898349771267721768840732757136476855144386103812001823681979122939929464263613938004842311009541902970555160177954712387145599721122411615205092946305105315877155063441409061277790317290770857690203403744799285022333725990586669082103035114201726139128757510658694960593047234451910007146645801373763914246337646980765122219780213784631262814930006410064656571893161947697403511196952746583389505553383544381846219651954073139417097952239726917795890865832428911952427360693437964735396602920593829341520041299010319852955153910050639913958023588414903611131891569940276301125664786454975168187537409861064104183908867005687509835432179812393234558133466348255099857205057159636468568652635936921294521613258496886286762268699922549676650203514075997640951487410007070008135616476469987933940569896333782598377947144153792153098523468592638964663141666986521002468702740198755747538778544171303845801995794308253819231247899308024032273338619712908214427189733367675677260314852086406889601323303412057439542598666531776506720976108178236285724514444142061537249266648302354759020772121338340769315590093078768135500830665973060933500271910736389607149373402442389669790114629115356400217947935623990294478433501882812377961792485751751982375132555178661121239813525060533342590182159742498123583640522147182509328402725176763313012142741718726808746693059391486906978514107567593904743465196471365699642995250203385957444461454168201337757318278084662352776348288092876958162877229977773667203381707490235507103405973880654447926897105028580275421963505835235919016305502743101632393580373474799102070253560494081260056128392054596904225512904445051393384412655865586518071231094043433756508931809853137773079159897894924449894533352729151081708089147618633676682287642870844188286582786570475664419202846082611376879980640407498439081810033780288842236298827499903575283847188287148168546342147492576341697228223257862910713303118474681368578425574884189755528798701818278939575779876384118978940528296917239931947794228246218004758913754458110211514438174019165810970295307210303871491462691669239727091624444079509303205773359390376102022246523817421697212753866507540760747190988181262034306213533669540179792733902730028356872879429530619590540518334389082045782945226463144624990102561027981635901590868981245835367917144956674871136788863022526486617713992660188199560242384670605901561853670444090091787940292915941811440689961000021973937581210974778653081194745665720456280301806184348085037165613880833984250997195605485978322054455383776438277951667905458035842157141116013853819167896808628340770562638061146239174309767118453728417881725759308822275051560534635486169407994502046016919008997566987297199902391944039910560788550207512913017009044923680698475674222195526720229067389822603525556138480984641723227200594329075993192505336643501196015806710037083737250168176193011109621199191937116095579222947658331238821624528935372182869009807725606370450735492413077646861801944933083667482632380499169141859932534010053603355678116180020224465868055463376500308033145923201547457294887838024799070219743676250439990742865200177277519064640895647262427569591019901279253308313002492853463299856904859230565665884823909190862353938274010566427179842620571613205589371381132017938652792527621584973890032814760802498092148774544529166761073739789125202528180343628982262805881390732772194436258176430832248939804038953179224342311440958015351479982766556332479889284412971142319232150914457087729118417236016673236971168230304859194091245689113167717254240337686272794138235900937943582675020293847689458539580888884634521000489706844855230632923213995353919410583757514020729144598037391831776252397484511745180040987662372113609219836996193251546652406098598059033017471319885128860999863986994046159719540041869011596185943485370905953416661921921652651325588627393574217614576479863594718309793290194354713592546119363301503662317165461017381734081767627028023967170439354430822047069229076905418061260105477933810371614180118974902848019648845758869146134040110929871795589266093165033330615450743069664967910895067615472341219272445305202382726822314847694145782536988325479978137215304838842889400643183147190351314148249306785003742012089087829616097141665551353592357635630623742658386714104249356049437890289928763767054322752553166141429291029187166946466993729020086374354343957193811920121257438145547166918307233889417804007699905062002187322270882279821000745622770706499541665223637185351152143243446327198174569822611419404094591927585307102862597219907363306137037810159027676234383182637783041302291350248128460209989060864951225155707533584124042508292845923280834388497476091758545465133631341664124198100123333835150888971633676768821541009301785569561134289186547253648876689315938162072157653876687448733637980113028901205206008074655630208068375930153606415554833107792314162506086844455239523194494027273536410752789833440276673618392046586208256371299288818128017067477396858951186758315031976561518963428600487452689568519419044771372434649933041330634211498180823415009774190615653446702191667175937398574800068414699682113047404937024000310732830374164595832572035228587644100954965228156693745605659154315823096688220084562860667619822957728471952658624221958579338202050510351069843615524260488424784496914207942903579263447511440403053646060212091626015673719748875276773221321196909774082394506131470187605240948898713213790705026939007910540380659473957994096030952450374419285248035767320880994251680988973134309163335530534876112012810064369521668152559418952995567005848057742912950199352062600890218778267754834673564732877579408949175223413573449757098524117393774344497507034027017058399701439025237852348515315974363521392558239733858168334930409602171891438578564078087824849501787438769997918112288942529377233212329326860596024266736715485925771690208488826868562034499993794145100093252294703813121722545943464911946231117690771252058526747090223451904593138446056604779917372053504294744138725500192858852666678664086307250912903823180246203307755597743152132814934951521132416006698076725409072698420136474922189558442867783929493258358993505816156612332897464808543276087876641341861258196306453461966696596035660558885634418001107866180608301533460037071852478179776100442134873277291700129488566448602302258249606469771957934530411371084811160268266195304357512521296207133445274970897593581776066383765480204464770480331726655379448185611921185673449416234016777268648487173324967060050576949025461482777548184592790248519380219385010901067602362026558931004628641991044974812548062668747262387038630849245113429228807670108406033671016716155483337058197017286646039782692806819427125101230465140065589247503197700719624408111539355586369578109722118388339418293982419827389534724095606564597340931284015206989670315740065567807196791804011549034423912936513345472048242599711676417354482114417672072562835445184541834197712603826993678234494487181082447102684432628481806972928344961174928861421376011352095021888166780478664687000013952171758666141506762433821671819630938407051000432132330631330933903677254833405190710586339467084603780482345270918819561099183500135917182237756883279104973598931017252561329685901495017216224102000243372867193526049645046476173424402437456688619593846805014381137454715722352694221592984092038234925329419216410861605428974970833045136552439659949691040393831543786960033729334820015552410715467109287506488654858691299097729106899535872290553826387800240299959901852363618805665364604267119356993542523471842943356191569952330867197313460301271476430119158311326547582313059413082242094989558881930153631221489995433094759200752989670247975634758664661315313326752183567383900690103851144874362846509524738687665879849599989201053563544359146396637933486006932785203900026334700800765615957053881789538853034284913303624658631855861909359231979319961898348089335892803691612890077549551990881555147761811862309295731353954373143241904806915930526922688429860435449317441410909250425273471985120568016402751844504225348581964548410549705699826595729351801388114614433703464822785402099319720768990336347904481099306598899864515160547824141570538298916465988916623064782256729720004015793714892688975449490317263260069685557471939051522998664024972184636957460406037711222966350024304007889073390091343348242205975585332115217238444168163652174136598363674132202960543272016548178327690388283251643951003836803823022331665403896941906564074706328984125635926201873262814770272945340907114603589757515598244501307844729453315261257762238516884532544351924045332830476447890475530080865897775301215706705251845093220422269544583528307090821706990946945841697314648512386225089207626602158567337883422440704752090418252315648701035257248641756191063446102093769456641704764891852016845674590366225560468280699023479577745815589473644210998267625687740040122190300042798375665031722101471125307269226338603734422413489700907398042288488290709466403881729594795094919985290530138125530840905575970247788377076276020232518822848711993823554594280869450976229313231691582289346007470047350272931129138015659125024420382460379802467767669248156693109925176421690254451800002006925911841552387216563945615414454589844686498492031109103144866437118710811966418069444206088948570175511699646138204513175980929386329721049744221635442152504326453623884272309291246539872842798921366376238728248737380912451336011342758113805749831731943604591860119097010638884196499636617040604705872123734723834094136431958504301316555572156610240972611781250068651536059583011305347648448566784069614644703744127613532300285643953801539171465167905930999910930256202179127576879947078938361573118410925576333024858051207643022990219870040325595115527471826951847323319767643583715368909796217725192203909681024178585393388835322527424814620366500777872033875700954370066118319407842807581004585767154090099663113223265409874481298026405793865186727423372726183874657241823564123588222360144937727777423305911883111674295455510154387824996562014741300907748956800891880729467903266486855725351871599135723294350398881446378147691953487186226308381225375320873578711696381555911570252772676928884474756839927850079108865007607888545598445886345381326478332369938310228262274357715729525787252282262292121369769855629988024873537891907384123369774386882612723415676691296466567214194434642128054891485714094953461627177081392435887122017835843619823599386381149391020103175786065673979251990692552384601911922534091064666300449855214598587543079726508674773931691797764113207282430402005510396267228164811738094270865480875236676557763626822869979765639261711056406057822291756482009103334733939987002007595595110400032726831682688424579205099847545011426228508166076201225941350777125855959593659063422013391474100449128668951890971824685633191015946690566087904769178855657299591203059085645446154314604606914540599017500858304610872781987150076991740376254422842537310197330731327305293508870483151320273117906981074251841387915894966592305561527604803970927212588600410512593205007526985903538682169851900155770262201115179635276777052388486967641766377862028911775522469035074316598317186523903928639561034673928362076675029964686603972810397584578872966039858732723474986516022591267946491251960350719069075785586780890696908150856203459019166239781844108300505825029630675388889572825927167409506546170824321687155102660418595899208638226587285923288187254330996199772204656803905767656648631433265742136962327342296836045251377219228109230411867303235361824245943673849125894408691620075885708779433519932269372114651141108647594761642754824079357880110793000700058213222441173144970925818938147007857873767760665835558794740193977493288827737804594423678054548921596275890050691743921290556235976581493551594356005645228974510419031966599274344463554245770759400414903103971758146926389637826510145796771745717463152207904365701361466380845954129827142445252257311882296764572862500756432661697653446179419932954314277613785249468183757630115806704741493511178950608501640494793353749547440952591215519599706423765674191638265201279480266709061660568384862773307906750606818826593701346173501737697183281049449384671768208957164412126203773813638103036197600217165651131004755202821702809728127930806498810325966839196628010220402815461162087320675182401906156871438343780612025003023359954754429537390782419148960370863237112742078736367342109129480173077497902844636731649603701318549347409115997223093911610642319312981073852519700785060903455585509565306083293541405088564545603149929250637615704221290710422979706618315197760047241058121933614871767604941816518092618918304538803498719352816531153071326496771738408946840921422651405352503125557063871079020072107803912766343182734772621136038233629867675198934948861354470646524430048307203909371838359355351436710806149362296491683769395181668503551883505832073458725009515458984236980719194641544707447436917455034587295342251606730347144437479541836314286673062674378391212321096131180873401033987964926438068277226857802652252827676881102795215461977618658992221675018452512165980458479398498230556213977857425062077387038071990443368053477924304460431348820147068301333052883147228956476831877493492476222567321053222934905205547806346729232214163619199475061185759751373617125355215183699005051328362886706882322833134700660619253721688577120380325871893048622166517829256886666218985942516630121166556292367488734425437104690175834701607327996177965957331450419983289960617596739139693589633905375478897494659359068487739280913271347745756333486449393912599402044562701520163706212052847460295388326364203370989187452046558774375745016027897443908748581665302494424837752594405119870068407968524452414367889551222199207046532019129976067813018029648737502312682432723346796158470577115804878108682855002016106352648324626133845475951133652502271359742072780342324918000630984208570996417561857715547453090441882457298152318120778397655230303852444257596481445797965540104477347725441033616706907363429027712080100692084153117606736621223939969753005314970773907359522181335710255371052334636847745164510329028949776188926401404393131333397593406075959605264454717333901412588870689022015790411203824037414567657976177503674822812915833815932420336068571905119886100850726294075223013547005771266543508134022845935729132562000448058564955033318670425968982505548110827208317591921639177773169042332767302740675767483324693281538909111262587052953118075366040330225649285666261865614692917068939591477747592049709734027791620599484929550828754549356244594167797203113748388025970954565163241719574919163262969284119078164046767571465975268357252331624179081704590842454090868518657932510813156715459017845987673998053911337107841926223910192464465001039202274120512505943988758759530189059726004635320250364635116240479781409389824901996746737725264499612149218616547085893374595459536765257392911095978946676849028588920885734379236365047946942293287936313377119508360899214398086914741996155872304392669249990573616197637956723569786846952070648492306621182750086195956429775155417903737138982319185338788111510870327999186551808154429945382859108527638324152915805955892522895545059216294828585523401100304374760370291635876930180111020696179805469225534446751744327921052861436537585144160825954768876583878148660364072491202112528972946773228191562302206155167397688788013945228589995678822014705096385037328569041325442145216638444762836635050142253092488749317636183605502992495841918574108303288786759556138329086967454179499354800955272592194049312801303948421252406741161488243690397277271985034514518772865253017927939537963674433366110213947375735581713003043466875490929875720236711066892045145361128126788067679846981812277060258240252664794915122242582433812559610305424967742326692497126944541542524395047734561892105698609378038926596378487337721621095673512890546226248475542112305100633460686924673598444911078679298518449246108297646851558708664549803208187329112974814944435253230226641282983165733493544731853583587573638697172231795003065932106097526055337989806436047048697320018127239378203807435413244896479011476762381143843483297954472007605989332961402123174301301258852804741976565392046417612014712784192680267092970079724652970171313263693665562065187242709349123232527129253136487748607664998998736006882193048347052189096474872704768142156928485382585211288923428386613795938135952392076795123303800053632414346760249570035037393099953255367107201393234802531820018411820813475350770284672374430933969026297831718709706139704887021061221489364717658282725224543573875972689805204411633214310324960405780595354754998049190621913305871708953856546889204075729302669636023694864324612257378645083077075459471634977873251673444230789596622352748526237295584955825462406237343928554232665852693921143906591708428575100341193088461443981752874514151508315882690170850604983216555443222480060650334064467626184479222374013300490843903366935717590596084838058432637739511041490811852520437674658476177350160503300316428378840479052658244549830380749616095111374753626424516136961378520499180418787731268270160200702408150948376858153121590595187180351232454698024219104598362794160854391874787697781856188006965419941151171749393803449872330202338196071041507563356270406390951217697636437966463943184905446246516328556728454461851844416666314540767911678517254895515776317439447720720749809464218401327309667543853369867686156641672807071461691964482179614688429272781203056485627938466703360856736532340099787956338070052536823812472298190845918357072223688957528151705531414352557754033247718682447689806485709298554821456411292723716699811638271762866301898940707811558011144052493049699664106044579218759387760492165430166248551629353102856085698394073473272519343217278530925924734448814895989308332996433750907933579578001934109600970668605666046157886297625197938285935960175172735169766363870116356812351639006343636585490933202524714512775844435070221362296889092891035474413084183946124480500671928180461506108763254966214573095033940416023856889921063207542906653289233976094123648873733803562987266019563832226594196139984394842225131705261708508695295206015038278578957564431424230819810349839259749435799336297682401748138960882188827480937312233944674488911441983406936708820152127384137856497100987590485427002073384608757366841110915850795121530060397501712543946238795889049746912396426036598522507645546874508543277122262323391509986141033663238094592949767596396133402915175542292758281611492031527168394656852730420649288519815561840138301178032213320042491127827731304981965258449468741863390103519810571765358543834363220722965060014219298077025128082411082182389529845004549962612625788841372628771973579808954774142996270464226330510781777569907305951589322759201814476931715399825621164657655561326228884939150903643000013429071108243206596776262502654992991922145905144710229214443830180172465050675694626144883104926312380869712632294484403037594728742927423349778793989132514109327401896315016605048000048334475588225803704730179672788207340648365730371269580591137031057333177492818207494867751473463174816755268699664716894405800280889629693323439046379629277735493409161163779275431498577689007819183686491272474332012381783710132171261546421034446779617687515663720632125335684644967739352374120989133315106802964697112521992738554356905149102972001505046962706120774795905648046985147867357773335725706166337632589427650158782618534424365817284786800063288893930721625349488142709620287961380044057853604612014739237638455075215993811479734495913006583800819727521470614950000128011272874636384549731443261052787413237502715392785581736788356596069504180876409205018932858663116309150686424252134674522790976904650167285718439015675350506958087078388440714720096352276815778488792133234220374927781836805534424163119420774983931509970483825854116684443819833089186803565800765880940313910731336245046479389706582817621564267885625849370246438556523737809730488537260839714089277604433385270991325296077552620913857235166193807283022047799114414416089446842272251206593419004295631915788666409291160616917351642330268635437300337550500874339052416092234996902722844481418463106638668742242577049936408106506807440549816289458006762723854986256336326504250545748645542455887313338326050299979160626845594084212203177552339868993951121817871727265051203958547077189751548610970792113807574551672362138781592544852083014261680525978067377163292840112208148638309441139143584110054438246492911845216878292108540689991081618426770655921221658790947773078877735669820271567795967310253958579733989752822380795594771969356808641293910367337074979400629065081889583132713995506727393637821109440246796365088074102259679894435077156285216986416449844622503444841919371143287200924415261544172334397380728042057423605958937128980351006719261426011910713412902871071801558745646351679765815003773924844900348847739533217626012146797457862346881290946324529459452544439355930444602619761785243008377337287480210668841946812994896455005646027943740471725742113583223079439654341533742198259248267017492438924439435583032929474901457893478892437179949202781242101914188051023301945745250549517484724264127811884115574072185797010789402121425572898202795522552230483466404251273643118267212162327509129346393356543759633301016285124147205158225180093129321550482187700769413768910963922219372974257909069118395282103003603156804633027955875463342318642672277143937466322938891178071276506681753475400521342290392578453551480026613531826407280045009049263622700575474346225157879217888523349307368646030130772072049572905560385727553142904304564860618340869382031263957005274363842165277521664691664946317948666434762875653823849837241292854204097266558194925092380671505455004619620434595081325081992559139576162439800511831191141392420805529011273326045268699616065913123241745964125380880082655244738973314822681641072907129152951845198004025583240231649095700350795705960455068155933560888495408802447981356086936795349470834978671639628630996070717900815808904694702087349715575168093441177845204193324713536638073386749649610344184707009185871810118081116837592439282751468577878065609742204253615302769186738684170159330187353917755509656966639311919490479096567758390677658907584826945286851115676390970671276697261940219247964573941550509949672596232291991703232934305230143576030449559098989020914101396488367691835812888954168057199255276193442582512038447543161067379598446306316860657406967699946754590265121968776193332339090842883121723306937611305708102280039224816572560348806456700236829163778948384499864352179121843692464131073956800710624475531429245489106152300263301032052459934871095527817811560034514247563674504155771227788250704371765847568612509389718235180973946903138797239022797317491618940690955471255489975567982108237378708781828932981911057596580145015906831510578158690039188147351412229291334542572825595965196166407576976406768369186121227846705523114703930940425381401444966977599081748498992367715423232870831417616321947104814359272628622526261082766848867734133329148088009159895223584102781397670912146046355886544569533685873766954683160256894922218159293859719607109215064029945285188146071652548051343583902819991926062042109794748158282956328552123132499035777651750507326931916040362439430067278694154468286426675525923354404955000714285639806826428733686164541830730995902820294223062613473116137954895696148165033943472889998411673091204112637474636633452758707445135238638925614280802619715599518757297894544623043678095944665531454365691689848377013552415918177738900593390341571505483953055830877172181772032828090430105895760439687832358871673593208458901462027880476328530182442987630009199498708085913421984833810057029323409091229572525933675329624426136772153987820914255586443417362261974004091729788793211522978815105451120692137444851378259417647928325130464742173672029374695854049415974002499064794045820776963005495094006431714819478954965168403235609706902888217804056576135289969598482482944558635658913012481643409404934049148805552652730641295863892854669682106440410884994210899099178448721329138793335186452130884471003679312509185817730178613378202324056130521827960621480617217459596417864259195609756033325009659045967317633111945600515950236613169550597178051317906122433852576540354929629417838624552405183186226548627350659366169580127640715323041877593355797669034120855838515533336582534292511661690536636447619377920472178972908897892769759842396144560436477903361489205240047100219334069656048643617151570417942950332932333901017313371903256121033676566659298315180838453296841688311524449103896096097579515336381566241782537875367104495909915405748374784324240301157659892809542578415519060174990050828335097766681620905964573377122596095699059554798591698022956505042136806109937289699366508134257937956238170114042709511526728357740267347133947303342416783255113591014069213808837997764636781752441859554134903260879735445006518483525538039404515732659117027179764188978069278193231060799775853468447519610429815379549583781737661163087678284228683047966285290814268350900200636751291406239920512819032262229654556546064708919646244189181342357471850437157685958027548281933331366161862754850609323011322312418004079897337373058202898416126278963337177471360063503536284929339783443410420402290565361140265027164753404984910549180266390338639180450860034764430902792575848571124949306737047963394736980663377546630047038788893987387285899785373150842560448049799640382930002405887840096349520715109146810853113421644957006134873318993769440473404826783267053034185240371398231689629701732342769993211399986607061691970364836245693309292058021899909978596813120871552967565673317552353162025026938328739565263009807076882884147029126622182087188791793946938911098753059232274014373974300545641556776919825685262406006425908730237486354434097911870196816997737274259104387688530061118282413649485019929190200672836339201137929648292006578151684824275236733723135270211975014934064212858895342460858210907220328941021289019956024050907090377121579138891040027669186746025971043829467546402075824715524486947005936502850501869432953707705945127335109219348050535821874349743482265630077308549335250939204984201891565606464219556864357064109654461396864821976105816779570881988333046365090520086310588462764872951324378328922445381779608881656424692918766972490503797240820425168168768074750732806072714543565046626717789191493084128666488183535899955653881528340421218779180419869938415576075644461097525452298696016011159819456648118290410360716723016757296458612279372816023221950484317598057005608910724769505157810129603174018852775841948672111373959161016532793871820510113698746201079028887014716469598982268267120100514454307488946713038601321425405214177866733713137085234974020490339663091513758192677659116993552598878340261449473992597110892392652408507923590761878928134843383498499475024526484607791917383759814611203433215799004825700048266407523421395762341020769536131003325508382356710313846990215900586090303472519750033652351948755375143131637865043561480610541472681920819964725228965734999317119225086991867900945750865922879723587659101969638066764788736841374389299804421629085227471021546789118309887068247170433235485589482170208239286825087214617474789509425744162367416650767797115018249812282680428487338105614056428892298149430440827960276055650560933369100901757772727490237745886023368246869923627420331726768962957445016972984709535597082388970387883456219320537447456875673086516469436821081797458595620522350713406427746887089650893302333624323300577146237294237214611360766311828697547623643927741599127655134444154068146733597899355940372692470088942448001215931641232585201770378821092068297508475873997189530521346209188887725323848584865948619349111408964971999245759575930887505792133791335446142087722272464296947890830719613254517957574061227256138092259474282843321087733065891862032343954350934561204059944966770682437315747373863819242281584770458485001025319157157754793754702470874086570699730888945945984541964672849501940504512198360559137189912792768128297975918627001524505763071134486464256936762096003957587103160926231380786628342427528138582850819951635009810229437854333634037118809024574539788981559882951838038421071462112763965363106598662422151813435669541547023808092708803135088477297058128990480886705186519388137662105507459566069411306103419252782733168835691398605613345531694561252547458631058527494439986851956267772744649093888737552290346505557933031705164717278903983034193880672737616717270317348409880218742338491406442620156872072661658781693543348135827769391419638894724456677141537336108295380666806486235448410047514947408533582658724513876528923506468765324432120396480853923057937059664553602128048721111649142175794926961823125822563886116741507157592227203732649744628722667885519683212979741078895085431545686381764696925163286737417592694051752635673639697322970834430850639846939585423205108340726653388073821432726979660403840152131680179192473226230125727304941983713776577060709750695021410403800874890962520711431644225677172469153149257283864208807979003148421273758571627468242757752312038507879721682973157179399114973370208656388990533298149201046281132327748007360061479162380123744018662253822987496357006858271232709487899668775680571468165321098679170559386677564285767874909402849947388790575828402280741621353216950157215124717084057758056782019611452613232610185067288967732978836416689249669906570251159670061483486037623319326839566921249829249206733807706567267901764812472141916728108276271479000080730636050686019788895929025082259022706329762613564713339829407711532509483262795907674215151301712964854903780799575988416547158257585290653532681291383419000434860557409361293616457071870724590278563004195884940387418546666212197393423459616524917975379960861167869264288572239431036841056077182359955493683817871567082569329367330729594680084466743950329869942334577949433975681619627722862221157726557833167680993885931278656571272710807925301749599256755428628305943845299054150182902921690064566814066991818411169874997980721861126864849048072896295311401696836566887371614917348617254720740661392822147493497466209682717573833657920758241682095146433387390090118950870451838013939104573570423937910689039233527291176995561611847819686629493694577107993186481637290434214317045831151779876108220931574283716887072147186241722196253182738790750236503114280747787977123703446717164107269234669374248250902165303601583825636486702725128124730811496596887566858645862494150221530668905448674642914021367181264963924569493412598996304886134896592750333538626978294537517490308400317971927241610909790466888600307981184104808485824552502555437563657906023590363275875766649175031846043613669908104798936866367013773844620662520291435264087496548806881773432200091001845595889135380144630637679192539794165592449035271105354818942185264527662607567952317562602536138855638915765116555666063727067564051939912306006188750036465993725141914643236780646221276975018779020070252108331563194130424081250490923539349777113302782504075654919335369346610787240959207439870918618444247218950865647016758172111415863435371519593663021435144181573100322627560557347648082704870854887628571785347234423338486951755924187595095196510191269757838310339362772839780906732752745634031270558499674520218511631752097344953081609052630141653799196180759212623354221599310434543338018243052679658594312519392211756715503664727682527073751636223955763958641541086492489013457926027200020792634118609719664078913255756903308979704795817812279575784705156539825178485359162461957738305220000019292674244762363190673397295814893354957848862085272693958231274746499524567697947060672421223806012812810866835430166209576391870591632609975944889101537856856547952232538748535542647161258510787160025506132373855067324242346042465087399356652016755859392844930863841382172928159949675514591035571057492376145419305547379217253479141149389072002456743939333460668467756460734436503005841957585422150538695580010640853613298181098641876424739449294901742869427945526973342722395468354391375089864695673245768523762048116811772345013051729930674139755066044212621023362629261636638061519207416985821983023587685028711721165636425087915540120132741629382923881537809144944942357557939073067524802543971993928839117818484867705967525137580619989717361714464470391899489797458509025170843971711972220158639248863704264939951788986533468040538572019542053901738356823674427384108039144943272742301635954773112519600329644094644517071919821498038384867131446110323531486197586008859511600007709820872546190881260803189912274778366547571048486584327585360132003541187297759690853080767337382441121880430323911972257460672550658618894267521182490645868947522623950218840002448995009987654007081992963100528216809101869682780079562189675795855096368976449551704925638508262891455466641772547269479924070447637571490751055048065112476574331597720346897426081190923863929953258141152130828013293514648695231022528761474849136332430478855543430393016102806370783890998354462142080621328260540067530478466950871947888076753756890552237408710385007219188643942303312234933013659177340884670073528491671281808092866585935149145520869588482624723543647706381688343263204533701967438842482585818298852908740013665838136869097226498475462599760963883767090728696908384825416600969676735679691413774393587738159430247407894427651951944595774993608745132889321082527648835118085981318907213192812522858596596244726511979511885447054587272796612563739874714385907359725812240346719629088017179143447862119323096972993382668830534157378732153056926578586819178441494564011020566748848801482645005916573819598636035354058225355728514184043053170138616301520145053550382901009752530161025530930204450008903865837525404096438449681320080880780679298206932127199787535130151197049496238133064264069885938164164211017265671202566088815181963261698819330777029472258037557502939566980717039128070658034683004930735471920305252945171844342979783769291897395301632093281685363018174449109697828984772269575605343200823275985630553089697859029442333483758421392800536070156157559311470040106118867556405844260429342221709933328397663558645451750293376008506994083124917896022236451905805028073818133680123932241699413228937500980718726884886223163548229262709302606559099833984138064017676607155068623725445366730549624845898959498969484045780551010682881417747832064620152115628274229959468545163916255836662074576015156548770793788303948341794882672994770464389843212577240064982188647409958578571696521572811625509696892198144371398436376872774926137859146344827330292944987100420182453924970868645997580399876692432344711785576312639271415075510351482755637717620090517850474296707399523531159007070297439467286371306802675401190474457770899213217858432494708692409899515787419358774970220351714020255605126373783504134342085377805051571567799082325881248397110408919429089736674693094386848808961614932529003355367571705721632001615908430872157751329122002552047398806870485223351042678740422641383344960915979470179268143562946710068015346343942502892417834237888926681092678947905375610171851617867764812578515349648716805822397992082491274096760192626272519221616195711706434302718675894865920158032471567585247148197340711654657975304244562890720083502372436985477089108085137463870853810822764625661314694008205517964953913270470322455913463181580377012687522770770965681092563272160207972149583997825564587822125888254218340778911064222708814181546711329656499669283821645025959583225123003146699831571988256335027570536934358752356700121212612102243892556172426592932928296970162029241466585076351545019666385084119376743782737388813871890291142347345854674795941569185583754859305353930154342902886317802379263948763226820498799610923433156471318233889934922560313385133665713047628065387379777543782568670669580011917584447064798428281969222278825545659202866760393237759649694624050706444294532873723495596007581614891768370833300269180934633127146947042554656021311373772054880766839281113615859893884817883405007406744658059439451492678075394402790210322862465050546728235019039044074347600414798401835202417661173622655960071532474745425766714309902296151598515333750545744991918844281255666521167112662746240452345889059194753468009686394819485329802147148464832931881714337817393114783152532584143788693152552711686507368410858594174508011310624889349329517881070239586447201608506926079530726666956903695412439234833257768429992460979423306583045666198033424929222159958680819812140083641529623351931015884146455868058579789076090256090830894663590467887787869841916142666284515633738298048546518519414159678216246736120094692023780349944519150653476377404572034959645776723576764578282140393089927389336897280195156718182381657298070635881667542183219078926400396514491383554428603741805175089244655285679403504513008780019283642297624607103936942300773269446145859089649388272272228135391396826901279723570872539280175800336485494217831352828880819661400656910461057303194762264003705054053555254904695959760080618026219867339804073671151158542043442830604663013875899030261885070705298555477626916463728789408309302234561789211974064547373467246846993439137508526784530946126589027611050772423930629329487140469977734266990584384236412209097930928651724571284286861526575537253808722254346341352447522898694167615825609081179983312268465137572993983495050836522100887230411256880820957434268299729066233181116819277901781147629792209587710601918659569481164142683045718087864235784005460963475448004008830473381057223596468823727059374846834154461654644327619996706314398962712646347451008817167676588549661793583837282096786987697355073804589084212248511395122698175634481471375210246611137101262082582901071905565740972469447951171865961092031850270813008705241943204764701008480548765229785366976341890961920081567845439776549538933496406038754939240589793241863277984815834200860669505807972859399205566385323251614450260105422880699882529559227384117733980637013010705020170661532822996019703773898223763501488833590455571365601781246964851329243684090317021801453317760471043403713867635131205587547771885863600535604370503977436630051677835719100189911757493342968314523396378125006634015816386516498947970763878841871627258069537580415410036126962449017073119495971757188180924869516025156959600119455692143593627387497002492173329109298851753716526803847368487409964124320961460806575616011878431166634769808129996177034459866020995638219397560570795712089217201952777050478121412710682297231945114677840777143114428182026158660736209361392739395652925207425314081865821102409938938089531950167045790838076911326499088833557726642258378500403298661411886221475243047303203470142617848271882535757552467753173847987637765426263087686078588670715590513146412718580885166270829439651176360389759576352677715770399802391136955670660406127928102672103922943369826998634717264823457810919012998798804224539875215051428506074370179968726985748464298893047362482458923097094960824679043266019387861541526487657059514424204211457067165066737782680854890348476534725240968734082206322626769301331410659430965691460634119499105490486450855913676143292674264773084228398348451423894515944227845291127488814562198178849483326633587202390795837051823830113956653193620696073147725702585235390145148329075254567641676467060486850139495265405618757914571530685822990759036445550386760584954309627932986776697570361160902249174499797750441520728801899396249167130457254593861760912480643567313527284842316583280386752980708776235971401360061462549259651114803126593333327974004761832154027158611595845750159027801104145429413445222366827697052812296780116056018702644978004094367490291962350759873796423527045704409284470912052517343054823332297949414329418725858043972426178202976597310069090431128186861454771470816489258523458912767243741904239351956281582221978936137257322993606297969748850199208165061615725086912733164147697233852912623984200385094135177663709670526839675924362092468038397878126497122081323393975045737518087401187998809029626981613259227429010580460700038971280127105036826077289388481499788338972627314238986142767754229452812294814374445648681080960694066702625936046899929592102043537412895381394999725019995294759919260787724011662165161182026807823552688124884631836192153173509281750007308061368624267597944119617568815887347425420341985828210364599716846507598251677512092598291738599034949732347096170944992624538639134775917843748776011257737585914281062319318896316395943371345698292262989757963882516490664151073121799176052582566097608589740416863099086388218231902321704628487183696288817195482611772731335997403567729023584538896762792505241306391481301580021257227000057213455786513945547620615051949255748297041224140028294756321768481394216059387124529053934099227762150062333136890274691449851836354326842614031600063877885849225369631934650942699992531806296863204426737312413216836255666454355023663975225594595137806477531539800452106281280329958632757777669193412938497724527782633798373996671506502370412513045578316252304071645028034299257583948725647629013796378075593838626853714893078531993801526216385513454532567756007688293171057927174622792387041227920019660202861392466995998277935255327005031193059902365862599028599831390863292958700057696330690168200299645285419234317472243582322249192248320428987535630268178597362464377279492005699822238345382184798415107111752544170909284190351363508675505488657854167656222401819731146353641050403899426974858241624290190018624400312779741559592789113778721980416281064844683380996737460857998743776712860240200127036384394984488183681171418456946837168829327100995909667476703616594909502425902150901040197857195347471838711661690913190804256367868644971907036496913516134612560134434910598720468131575365848588715182617403101444988693498763865671937897515005484514027450011289193686470022265537731326145891205059702172445602289529261881716887155360889220447702661091214029601629936775072165779259450747986115330759569138920139173842254199168688174771813975836334724292308713550518608450877284475746006098971634661499395350436475004674123674132963978567451449800732537707622067356687564960135746124675688124122364055521071905005621879344209941901601675580290415928789765381051442864408356344046186278150063176919616176924353165563764531144126349465884199403725539296877480861347271865223188842608794982630939325601617679001045574717144527974175798544112282988170838613498582626001857214206655239155902461368627935297010734472630942454994801598292646222533151122297494519003238538761727012217696361178141324181169098874085471633849768905778547431010673005668888980677506707942178232735917267415206561744531817906790115613942712389951260802233397496605555555827824068070895752258594531688406330386028765712823635448882367922870314579740967689732662366656551497847908442269628477668309330460510528857990641503564470009170623968613925281604592369343878085214203614369764417553641759416596561573738279514258717610006758143282280312438180418746008726829442162381891991061449636909258917987975192058086918158625484724207746165198090001629240348000353907572398808146748319260461427602320802248550942995254754772418287245754558629072266854846107593128981294386722836830920516166162274220456647008714259390867749175379003769153490137554296713867029183235333992690641468616032077013708971518918996769756017641176890491888878378167720422922306072270058290603512983723768527385011366670142901664361008770241806750682562496567845133010710801804666802047017617329039593589307177655689116714408736589519326562127770803176934369983745787330364724651574906282599954169729106061001298427320828271850401327560215776059115710333685242824147082496259284206459378866263498584006073380983614131734705787146712293455766684255787489532236948229658317439069383134851659552579137952461697749795755593611299622315381941322387484872312984161145918638670946825285538220489181781692283939744343019850216019783775956539059563107635585898400281026902918591942614874324574356563122730921021716084116820936258662676185742250991663514749059424847670445472879711429805231369388437311620077375270503264490986430118936615899281508102866173184524382516640921517307378904533194859248114367778595619608767200964565017627775885553244032869795118429105550329141331703907276363022787303913622038288963561004474071684996982499828202577951866909095680378357056334877974221219304604245349890782757387677814001188652112455592003845472684491397610824559787027497178369561919717219214923368616933143264134348905066482296998767978484656942264396764217165234964399182456842103702286187364345308193568526320911283230277505140443242487435822391344045292170486341351696520522140868771120081812098296350290489211006668916606927410721365660730188071285947370621045984960078048940678131563107035272790831433626092917018839980717065801009702647173912937413107640812697976346300685885716358230170035859217892054633356690972914677050468450633374920562643984797177458588786190358729558319445710286560183621248253218623137605226585675396032587320397066654326277849562065116207944404157083545818067169055596366409301544037034619438518122816158260649649560822052907564194822179945843533613344092650559116140901601944389675563912468715330885754179905104822862901737344425868600788452223393920651528369062781455606483280890142725242643462439885764184621322175139592903464637990930757154376312499208494166746840644673927860904494237522034857127409082334260920624128310603574218281006400429871691717472153524671457658319449242391942551410773774801724960007583148626637194405592697958341935250272244830409928873759306148062429998858556742246686626292136455749348882846946273928936896979448156089070247806058819293527565658069342396178087189752323264911637344819769045902413028873550543553541944619567299713011117094698598548249754208833496926289882414295049031586428204925433361268472011909260666355593786778824556202429712180537405810210348646867214364899622889190496877079715903866031876389529145192520593660666629138710494790265598736795618388431494932810540461560732382248648639080303106651155306901811010576069353686776124774834976679346460530539964159569157043875650740131552588259010960039740578293137965818604285613530155741907677574033060682097504883385072176464337169686515635039883829222870923261265301300606359419977134478438046539940669315320945782484549577444850832064731494443887943989443131926442921699004625158681630572469186849126669183625360958596760243751876648932705980442761835571632668782325371505952476419646138829467535927040277633274737205897729064705893989170224383250361849688701750621090707295956599131679787097421041467279719322333804831110060287855466219200188858757986750292692930004527715231930535305552814862468503649805853689842391045143562466537248174536669552612701493354072604714239060417433507757173736764372473329746812870737556632408071277523184243863846632235175472410387202011644107066203633249927269192433154841281822492727018119746512850126064427851901607519708228808782476199302816099874883523262499029262761602877311993127031202090051771547001876003190942390568556388315207490447817037910383796307274473124667488370242305407663441830397174062965447797773832616061329223043968682382914216806877500638793178758577009202550557870006667646906410610026426460921325093652186121705508537479814300453541906604166415150115807568670585918680176157641440000482458233863074712513372055125029025701960787048827557950674080794326499185717631535251840785307461318556139263305692966145315916242848294048851196718446177707066702661080220042951691882322488908152023708452536430618063916735367491105572725321442806361930227518066718312682109876591624204670989782914778829059690152637499075065539747261301473848468814677111217217109282370159044303253767800891780988184723541106240831187201761584486861252973623687240717780429946454226596985861873769726423438724751791802751513491689197723610553854578750848336308983700963897769502585886830570072245393607366376079954569656230399554953242035476906732220907841156613370451723156980653029805194592697624461779784647940534184542018419437202435181469498020265313057814654943354026838524351883492331309671790774459862738369679125972580396490464213674725537072234738351961607902464252003584373356626028309999665481086715741235515958514776616532551971659172058315494188551719333279115718168596455107937286068402273152382320572300420817749886058945319813531113639023935189040980896003589206338838247570333580461864362141540181349384411157546708110790575057696477848351318254195127563613214775326325396901233591826152538462121129222939523689836716281613155595886485213421607001212339746614112510010235606959686840237553267429850954687513807260547274362942150152461398992658559409111908413427543299633142678532050990151278403632410893572829969562180951861962035820608472133766236324614539483703348248724440407404729111630033529713980348118902664247531450489408169201888906571754296587384290083641710928343513965122015712766882718963456589109897595871201392423712449001712053374482791063482528156179135975928797229003239221596465396520263133424755809112415738073880986744521751102718022044711771307461506204287526037625810648645181934955837484403883726086495158684880909232981672030410258318106615925882638376416138927240745313950013979433003799356100281706935929898199445508131335362529623244005881061420082357601517128633939746942128479674597895810292313119550495787606011362942692599469643332895366974686811853124182712457367470905921060124008114962483700647416868120815618558527426466754615344752529000441032926197630125830013385299850528835793208771397268128361177277570003177699098790839675756706672869018317183057621498617097824835217934280381763549089582744603092150153771018316375364142516494271203290711726345426214777799998076108787018785892364574428974091654010068786292496558787747597510130199377491230187469048363639308604715134681820973608984260763322763789583181810418470892955616037393729441038843876578806329706925422994712310362200288701731294255045529123273156616990724852161740104171328229072646427387289157115554502042555743859511761635490744918256264632247284353504191961763208682801880558084389201265849814580969034079501846209696196237687489709420741107332512040433963833076607542718478734033285429977467055202569252708134034499704297185941221057921128711564871023498164151034397591095718832124173783662506356097446853498472353812358188006272323371703545875344077742782964160673311859514301047318324567110163467328261069361345685761504271067451928554795084315507536591101795978756502156797372138550884887843852732913444965798605228162599232874387403551128212476540890275857516106161400512623157597559476281804416443826846570983948567449624854710462851090430048816945167235549167100793120275478212937349255836307821548919643745203162758791617776919548022912742094215847954882511313467205035164623763207038309698786149313203871708064918483259987899605528453957673895703045605586318337620388788202487172614089234470147266807007249725609182394814080006578117799946358668862733618459352839454731990897378834193264528400673454992126095277457230624390198713031649184557017116305402263792949492725568426018045614457692785179796489871353751134248382975124957550324027305848326131850429485660501113715761991583123577976108914516098026109096515002562361236827783576876964391161027095042071433348160882947940608510039087293563499719626931075170621070863022499222464787450244353392612944370938854680740290047207584153425714624917404731434262192153274829926065080761273290747776379303540729676181525680732457335812069126600746176728665384105517144124854178642942342125190260584436844465481835114876665916576793366204418829219915150404706775711236454865090970696128696626901510565398361838209226549419919110901746902715944465293732353469023161228422154476149187118977256101930752795461244997729225219297089677428174615317269677249110607793521043444359144066314312780452765092978818162841757184037095588778176792225916532953240945048957639714424678456176297513482012683364724702788039406430980146269539675481176619808123269506714702805738167121116693849511670562697604326606556056797192227507400329270874813254563485106532093992146462591626508220488521369837142100235874163626648692905753598564897311224545934993178809214637450731488965964067651109094452132991210313952936848841106696108979336443855310858987993330873550244613988302693794321869115179758696395864226701509487399179975070802224802830194422858344450170976623699367438693831620837937928097897445463721340626026725053307816173563939452892456129094340162623164898334212212923901158146779082622144017023009707856470332990000946274458701338795693516481861605077602706553951408914132688680539543204480893393240216002130230844679208716241351242034004732179128812664530251405166056783718596414049079853387252341147353890527619739465594231917491793619514513980133705946544731158432480656131475092428170756447552817265942870626822169029383322093540921320305969895157919853317962377769804329306548266266894092149826181485328065937390185520474341363620666528412538979608854168685451694863615289241764848586761233235910267219417836260313149440661398336556793110741121314790643387451044547022038705283795291660134519759121534783763072498503859505628304989841118779351860345792436544888303225128370413608633537694240728887551280954427970464174329527964671012939219899724134825309307376143748151853273477265048114100650854759603077938381140708377277159052445548616533713568689252061847212940607770632566362851371049940732732250533465857075265527913293447394562680043806076415788675852133185647068041971502796882102152105283636581798862794918681533261735817690571059781904563012103933004540733380467140722134238209813935534072884732453186728312415668280224807325188199570691616521484091446004402204280300948711785435362362396442925696014994885404369603038430744347752227976485798358507193477012144852539927641783235406253630306632824061207625250003671374790872549053835362646850151476285632902310063079192391641772389066891226733641868004159589314543098346560680030225264170557342506875828698479251773275571738568107081424482496071829819022904057442481329603897148273787618832547726960978806185550393843263581073018812300343288792450119496457513415618041588658207325429708019276350064112764130616166351431815989071914042185271355107169168351709374961089767067214551333927264446921995410243580308890606986064482344565645539703740026868679089178216914694496009106005577768984688002210961183462672011673632108856937063501867449451618468132230583989039561746368381134335439405176017904062093814454162491265252476075505084525051701262904566482891763207476132771845626198349496317541614686379738650561832575756194899383661610171627672822647681300971085137079375674201149624222941378109748950439102990734999357414322944043242892032527926206615998004883795059288091805692633022190764743775762936556141029578705627641127028253980580232668927539793993485434061926882811704736937356398265890343183006711128320853353144428347752817459720764929717933099817707502209488935508043197694434143760829633387857656522616386148064659178561586749409799180069529723544452583389528133282725109635279591220132304354171619067315526789237641926321324446878008858276401313745011709813615218083297541279728037559361547880955294375587224668189779357678571995473853844138896368646446877208199587642140908984010317434169610456695037319090437486625683726367689885175147404416129938959696796349553636490421020245030694363729823766466364832746499645366387202458388709186229489269896996253570259970572767588703007895591801867868748457737685568866778344110078881125025418896232922152430801550347220336846514812328694280239120474503713450697939159781148760849389536245804116601462676603649864413521431085703707180147047863812855622606430785911833596281588928234303805817422743200174016811840143247231363245114254660954303692640673627611297303671999717567767396460443927099899617075145809293609799529952976487729925883287598250475461632584907847591546929441356146551134524296835745793352581369549502638034969478384987424646075487611073011161131509600116442577194713788816839291889854403388898095070585525844037163625332227375664932984120402461132769253497652674352580019402213700365318470479679407423695843569502102772202357736786593251720800843265659421694541160949273921284209253801013244557221196983859397807226735460386729974077003517121898188464199613059239923472253725430575709061004973001136153825689548963791009415241447688113521993935193963992029313263837527581591642238031598659271599849733970223318942817393030072277531448156298690013153228516569724658259923284928795651051059649594180275097886142911259241840270141143814640830568703031857880242637742506099209150098742175416280615508838948484769665993508351542043586423689926512889374867888138758686653443565699879357927991892691793626025565776949243909003669944902945334524158317660670345579941094642170507456710078931931685714082505806370709462327603887780657776931867861046590165487909719509961826049023017870922155780499498954485753348732792466134263129157741050588363832327755053818965395478545170465885998493880660178287252215576791791377455778667486303742193801310119792946702785417379695064173524381382872942376633990674595325860763923946047726061597702853675493017396091814648845070387926973345562661004552593061040705336959291875477713999395511318214609737291898600469564555910647142868321230216015503741206769048478295204390802493672462278629558384203562747703941127763813778382677608563006948054285945051621405690725237829319847839785122269337806937544268276274968270775346987258315274469512302224436100742771598867361517399781542460257963264246105930997708484370365892159222809913945549453251523615177398007535353750363724174421385578413594258326274182624299809306871079057186957405860485635601791715926031085835430965218165126646088492341309182004691371702223541296544914701976335930839701452742270703159522606931833134664556440931201786961891546832926186755038770744026837821321602435674642645645436871494859781202801641329890528815304992115309063757645539842815088977185180623441281990934891943435998366174485506617578819083671313405756274902606725405207055777206045812256452832730372505058155992214170655144531325596624906376396923897954554155305800199383471727020576975384904666937407826960429138180378365923698960403925598989332539413536210728883509663652219285238737493462376350088018742085587806236899351317356279470139714365290953060766383539350127112760902590156419558275151178884163338339242546781316696609299904706303570893522568947092591620539914571327402359546885327888677802370608653818193330439827518321083515504543582159849901655713637287708439340539545055746658308913063498339730013411797563050573315987034106118400403322428589184626449520973182876898940831306408407228108391876085230637389187220372976203540924273829551686245311013653203640320164540095306186755228213941706288489080562499490767776973840336054532327428397278281009130472398960349430053809979456206397371354537167697269188906629051621110832881031351211133366335747645103922554788024625176413374448285525604940079782234685638242949211454646581632156270052313836906717286564698504381851403005028703908419937147712564240203421582359554802415935208428458875856726290000962278757604660973871499778839490381404977230900207947495306884870299181650092538927469930068649233703397688509955425414196896742213129595463705866787599390104249058560755730787713162682858342032873197903142313085783332042571828823188537469912883131982981650300989593653160907345839510707083546534154557646666093630821974332279745082978683453580521716923950804508467101722109750109617106032186055769831932599535708010200767099844998766238779407043852394738081560495729484981944877209810550710856534310060495056448161728778823513891439560423944586687092875927862988417747155078597913325705941269751835235099170199109280109309745500510442985873515341014087949674780152603247111742393961356601216158154168786718586168136636517183668793292212303483554894063212320491399247195370396218284667737936309538109741919204401782028578267069509368115814780019502738647050855131888884521369950778701119894212069266297889719298480051344397411485851437118616938271537387786677648144221746874016125610160959767182089665225481947331349578195790153212676576083416775317419517549390388141519371693225154962127789822047448387886092621233466653544979826958986754649822753262034457680758225347976510295297993154369607195611177051089733829897836274238165836449181399402850677344461023340717404341800582220791935029617820109522353020949619712496758877932248410666835341187160551934463401391293224302572712973165422488365339212101872626526648413531908404900170336928488174575591648690343624878384807287660221805555745389091549875030502962900566897360977220463486359057588809267366535648409981699746746338921449335920571898872285071372634365341016292529076386621087399969155049285168109250652195691752745447861373752968540717073157238771788389270704628591562994336331024521907523139799107396113357578531094296676150671792872481302524621515629393579566885191304367340575722218373083258754743824995953723334012897367284466877102931284642850494900837510520396806333376149270214639546766001573394127287592854659719850947730789518740987700512703437729204803304114205448288580813719678702778824948165640375916959814331684894307838007003563813051957508177829801649452758206191808105067888402415885153896375315871483511718619298640532954627141745071656606466572855762225237454703218942758273080854390722591322894126819194899852734149114593116613645933846209691170512393612962295696233188171217050541899909776707559484288894729980350464952911613402357163507661815069821994356775739430136637488705765552674406744486142980432565025369083521385815822937951733466435153190764911552762581042613234364091943616241660153277492529633953765045734814293435939156666189923331868595697905402538620824818658035381224522084232246019809683245057799139097265155643590028054931198876255529597928819347916164736204904903659569503189300019398602190776102630742013044821504777058740549630658145833220562256976161858145816733083538036311540434955666527516037647306190305014091360465233142861656817074469172893523618599238663060447142083980108524262669908585285113916759843054690555006481592887665785090444398765021584574453328036152535447072342949102997121619758887553250684635303784491616624737455649423526654793369876965783962962616842569046887539787005140737756360017779611921853449565713170243656696182074742382738857782673187037759142496238171654633698422051881021581970826608233422731641241939588702915484012719207460754988926935110930232955772280158833567701872846227013057019516938417358532683792019234969911131008426112652287307566100139699141241091933438338175618793785935261900175362186758537064806988550374925898581990872582091190966836063806328891834235806238858569533662803172185274175680711358347466323928637115543812171293760146704901304127387270742697496159954989252065772819183934530490570494333624702669520475499008548361995608899644772367493144541795914538587126254687131287821005239947361866701837167642231285723597642744148546785082117729782603275132060053796617974194710707217504502565324739197463343970664457621375432832622196684881038850478780653489947301415832978021682913357778287885713445369658071894841561829813446822971969000606728682368632559851821108755499136384927119137338105998785842611973030590700514982446601983149136433410219582630535128578502223883410171059255431845961339557340636192363506406527018786494117566396796457468835941947752911078915797861594465038215739019400896908966510299093743165851013905585403405399259403100638811356546950530925432133561773390599542702704743230923413787547319510674190649394844444232169552845320196423382181948633326888820298999912330499180499146384568257248838421047332417623132891752725359731129800341942571983429578022712953715774587071833148820397001536205403368414330126676271630870209153664789468199719373086499417610517490384251285195903547508391323346999001352875293397764187801796440120235659145164638192454984126646587425065104544053803836256798210325131969544372920768606304108904605694021511530028621966890694351857809957093939337323310776554131055541738484443143394917268650750519834830459436779841188578460188002273517732451652292460390952197402660735275946680199122573428032906378625932619827244852186906758436394259342339767864322431222308788563240310340547254658165327861234694737087462299086751593006363194072805723743849367246213080459842534006088704194260794407481226804791869154194261925503797101820185166423431403950597150201577847178112908734346372217279783758125411884628268262316836202863652851571661066832457490378651654561288708234012744263031866280524031607822092332116271952167097845988757688376769839684258768996589852969226182401397686079616745994070310884405416362750170079585722414219497503484783586108400069853022101017422773635901825773848632023426422204213818736423362973691535250481232808289115155862549476385335591876994846984964728297065931604281355704405782792453646437256000528413713635858931341834974253361292408937253977782281864507379404145223011571715201466186192824195675956980861451189511267673808055163015243137193550630468346667616817178473620436279292675471990315079248961423873008429814538062818202250024726235893037861851412802977977152946674709848210551403397575460287118355209417593852008652647986988033606625294746770552658695364270066635099975921735143115080507504347266095194887197893204373576853748100792500292510052790222881514076933020793794334080452147641208976083230254214361798547633567248541474142522350394064216258955690280124759736913728551888700544015820559890879245833078361869755342842664114235784558930539220218798609589040456945768128726185848938511346863985209251782630143196828744715353922838071060765843689833130708217640376591056690006056645819241549739546758947455310618394440900184551216542912564608790659197745958702491460835434669786545899713848394100180294517244788600275619768868425022811192954714807862662867352276777138994365396624853839180298017288143378555059734523245339318497830922788923319475156150677835766095469788811765699718034186814130407305846860973040690390398319195910693270551580431101279571768714426579610721691615682258161983726957342911458570366071927038949065069714471436436951956541360185553037177892903125456836717747409806124474138451777424391640049922851603743361502687450741010811310483022515833440766196060240089824998969521403243944055053812626978596438338778882534122667274466972463709995479422348649373115655067208763060249348878444076009850861632478331852183927899300004596661762288075695660329986999565110043421141481155345192410385431961735168885343929156613117828597598591618041818283614843512093281915733969674387299219845727966087232313779679615921416621160848819554588661606416206045374743729160751499726406901461534680878004929185629841773175811241519124410015017336847896298620518542874622453546402692958684677140999111742628940936524157036460795298920563680669172072738259550489561547275238525722889069937906569928311078688471259435921387986072602895168928088207294759480368408637487913702752555453029379479430633108632144991980883343838671672585963503116250233806108521332421325942292954972211775993793760626447883795203471257837785900054204942434583941569367126300073326176181236374454803381211136716920424409903444960023411310110362131594269117038048142461710595973935724477416515522589540068147191537814762782398682636133714856962138525132910415789534424689292648058608239396080613341861856813627179532475139204447367095777672260401698970676315581897310174913377557322569142329595849333046372997871872602795813386494901282708598697980102073062904790105988937709505984907668696453303267915901145619679794037230672915868763752686516844459059795515314940538994160585074889268172992197106701180748530042777784236855037440845913686627612920305786463908963981917662128184523562424944178038812726969398612962921044565869170407396815027711665609438985507429393748919107350516324590148097127074511609145250831457876491067515653550680141171793505112722498477664801157281372834300982618900698234365583595445522238703470507402649060207570838526332175513618237216444794422892967377575044040123002066209166457525010396083427110366668493584558647367181790891521241136906186991499143209821240285064157742314488034408554658549272771493349230205061636005714196268215568343371991829464855661188991605184851591274279159874003559442457924281098327692857980998003733855379871606138563709389685992079313410257420055782915469090337655397689195737018932605507509269682148213107748104437406413439534895209601833319639964013912315178170724050310038886266335670708060076517462380332918502441754663906153429833016333431456877411575341919917982506717937357018510924064078353422444341877242077468315651091599865219293205420358464041735285636262989934767164269820032786137831376549529508277158742120606249098261180360676029223363095214074897076012797526647745387489071357658119628454814103156546544090287013736804729515008658938572702890107609799138101371351664045858140705446685577419130155003310028071778762966099222997965465524689603882569513153869165716422045627056011376061763539237966777615919166814078984157654908993529771286786906740163124882744204049509052223661071447714872599212414427720350812472692113803044604856625175247716565348424808761972751706850875821677346493616613197000568340986923058483712966680806521533701322157867794881919925602462145488394272902927880573446588861043321896519423857822485276281235370443232829503209705913027988101597348926749357059066753595848113847226103090680007757089134509192212022631300368925624556900800966128868984946718781982225063594401863729756951583673053068675161398352191413318664755304228298934881951804844903051505965638081638642193689598411080624572357594035227221616855899676642676770813890479324271441537046111224436220025530678224691095609218000480054793322333909301746896040221523375802463087114762278688938218927291966802521735913785420785037641460939076996734063458924547530715025220056507196526838072140576440354258890678531384161984437039924382792770958152057620960804766023085185312761188925977602570520699986866844947287884073859334270051893476205071633559360329720219185013357650939438113451749464798524528673245637981054326873151473700734134613516026865974557687568473666046360818268359042404990694227202930123270280910447006240636024596081282162701066153999589746789346443904035500941980657637258198163105289654361738855146015137857562971762724412084072573917575406783965313777725074845213644675123719171912474411514625638471325419924760153889879725033769430419597087926204123542519480768858382223235027724976711935075818196669009813756393285534485505534421967564826492529547124827073702367646995222890798015715088558479305256988795229490755126250171859280840487243626618869628545338540485926974928280807494934835412872867578454421348797905022898963161218522858680077611017049749128876087104215859794792604993170890234285848909152989807198751543692448824985397166012647217522872413345817436688327913628574127798466113446228615017749456604551643713363496573250155876265786499228187618050665416531429143574282622047348882370294328169461699306651925650893813757905246662445808553142136779493818941671969138264308596893516616360726728247492718979274708171641619885097834932024512916332942247808790371960693364043985349113030746555864603141614014064330895422440149318174440534555815150465212910600376393252757204591694132548234737381089685229323369083157690294135764596733363820313511151144018898419070895074016698263394764765059732303196286675143491259226675838027228312696814142368330396464737037475774086832959557965757488372577825341070823181133152566463433247649727645122200139350867134232264482979171110432675125088624185749479490085392905554298397888716825725145019692595723857692953505440794871949587761611264362885624291382198816508779879499889365314123529603138199861259367442162307117071992619398402564632890375410888201849475858451789793848851693666670205157009137939623808877839484575144085299231362514251544769902931910300487189153413537171333695766085149280809011396543945824067775630962752010843409854872751410941999722228538504185877686676441866137149856998975661612538214781713349660192473296078177361089164344339989434881839324523276800558414301900473635329143465688296562915597413436529635667456263727484045407658534847757629151925482988487942515479667923340277857166875710791346410491202405646434877543929126804735491496775267319846658042089237362577724895015608286503168443296607500667210368476392947695324753626993814299505752009839734604360926774497320231407502059837791873327425825074407353661836585645380260022380959405473002441970470372252137701868637784700265698303653380741988270709663355065454532382439957360890571828269401939528001382398493610457969551060603862325165981447566468898379089110770334258253157785193411456931733179981088645467315375643490291345920332652578858226436874681801014906776621770635617825636362372325079211612350314156687814500839308504704994614064393389395857695849513493182219856015044790783972458828185511977056609720868689071602262520098126949618738632596176524103541500820321375162492465768662904368682553735575373291446593101618507147503041694533740137377062732325376191073189712719339783535657253050827280159115481261103750419747583750334520499081940211219853232538806188144752317803164266896074358955727449845615609553755065856568157528072924779342975035841895258362656740921049367104206450317380986971606116433584725927716783615073276177088000857103940358530268897649221511861196774892821188569256785755865796100958960762589021667318992548935862483268789241034803330494973667649724438658058013228604860451957746035227056994588299909311934272261296307456171129446745355675752431615939944185579273409506581526717935149117323379812883218719293353424277193422371997772996688584619044029360758069822893912370369926206311507010008353303441234184531220584045323938719141283327378381456103303502483603913153020366436088419466983835501088653460267044431607343755078971506509379679526282910226773901434407437646484196902258475442822438494484440146623736654974734587002588061054480178941686180873844307992263177245874063729614393585970327326551423472699568201558145667073640778475592355572721964560342375584853506232515921551854730775129748802452433136204796491854438813083842208505728667817815957633971590699588957058742457323642842826260660852762473014666951971324962545713406600855077480797288966859339176444157932235749790933472016704705533510490996107388438437221424852543054541138113536586111498958720483599997432349790039090480496156169718128880131880490091519511071889274801767758522405990140085457625360421479375703420917599319568911613903977016832051421682743612754085316563367427694033627288742653255656052991062258191825990239891772735311116416979112569703510362312782551852837310632065213477265884250648569295393580771592922222362887738081225736820185133042944292530932021855868788360555568431500541240321080349293326779663955486957677527662270295368827457389853901316559115152619916292322841010979552910368929968693930855314315401933234212771235299585358916334658840899239192378868855743054150900864476457193425599978487354766754565464967426868400627311180089185893307713934515545005590761464027640048358084040900450791132548570593566155962942672639739944814854272466722647039573511763958396619560027595465653460990454976076136712225680537269702607751167527329369930058590598332282851302850711146667426589622917264633832587189134756807384479520478191693156501776199464830900123710108056740165774948209882265745654155024312635543312323744655321457005463810486831850094026506814187331995040628452278417965163598017049214176680558327791301783270847324220151414331449337231905825720865026020465310154423608421096788170009290976542001416269503585050537229369645980531998931826134146450267798870873098489056561450137828255504819286345164545315535913470623806621999880197137103562139052182013039289110770995434237462569156277961170943484618261403554410192050870814177441769357166091755011446124747407114929874713036820571170442164121179330972715627308979228701841898953785915618436442218831461374378323020593418056531676397775856752170226976150893961320984183861329192646339478830558292704421675212619235878990567593697502023805640058754471375480242016120773741018008872033459479940140121258597746353780351182993251010057228416054634767741742731669083447137308057959544760545823697205430616152724165818333593960677284012019047743614816030690062387284107942060516382308870891227662425596699106868808036694313967160923682736505030323842400518734271679426968013093067948949097262180450903089855283550711307339785334586093225229050016982991619076479829107763317590655211078722202130004352812225287212939036446625528148693172108592280557907666795809098654490058271836089663584792229252369501425604807731255407252764183235562637506400670428621745178948599411371850639188761432976094572289080242153152630645293446371419408763009819211988964134496320547970408026165744672178361153467093083358075243127850117980379693863438131976824575718382764910684493982077459098913134914616037307475884123384632909936494072188503478455282927347343113811151501971037059519889789206463224252733889548679197152137638140241937734865793486730536823314294229359641334463701564231539377445333137652392933038847349782209501261000180420049951274833851284843308410526475261098570258528601344446550127528077172793990654030304347072454920844505412577284338433589636565970715667181128986844521792175089861205215287698691972607460682135861929399464482853202865970210337785842698897645869258557126922749632823806322502083486091404606542833185176879704383755617395923969343596639240200719210331720259520400732320671716851221856987913447225754504280802060628702996837022990931510363300434698517170935698760313288419355356121076463485882050353216651708352831889092747789376813217014044875497844836525571281404992683265958129308873014378285029817163736317408362994000203975107716915510866194943181802191752448604595011342182863635652556788585874874836227891997711345621529994317281029117543468112277377560015247986072415019420871636636435926517174334795796280656092882372465148609935458403991616931058007635387686042081057675916843698313590817248326482638307705246751259016382655451500966251910140192456905494468063146485124276690224465182051068845786291456110902971272978040809634710559373958389217963715482170462017312660776044306546763945738004714033648832273181455250379920724270846585245906885242689259554798355283145633073328037220658837564640910622346591245720407209148993502238811396800767106743946098488749683823908950248771117973323148552805539232788925266529061799503394629157754278982196560677530223736532618284807569949907383095775531986266626024982438145864755579224971440564968437798561898569450083543966865790386626452336098761050081877518123460322734764004875261000863888263226190235735527644876936607890263318344172282699370799352588007996947710315358242956287790170528939623362515457553018433013873051284523478605104661578079978050915994104969697233577249997986331105824240468350491751451589426272374479068062596531280450122127620024993758280941499978174544023677851540628639009542635109616107686205988435776443138051802634695789199983147513029833310872247382967608798540275217839378515327495440604483103467172110393348144930679111227201467632006346414126979100596722949409117298448601174865857395155657439362597813122181882042830711219790299547951889808327665603238972596939933068742114162150953198481004302321233451207369990361261034030102344575768063683287233378187223240083968240602832320763216960950398103129614162529882762146868711864841104239385747088418438044606929753020504794393786902386027161810211608073038489421312575030429968394013084749951726709983704580669450599057869947892973698095191379100640261056050037418792530074932025331175827626855834450346412681080988195851944863624510996726167543645159659066799399203819158930147379761715960607653811447617883462013036487842711813624870784548083998792364727159627938394702135621929778466655990288351496978848727955498450485338452699321719245558055255188212212905901616431921362736677873531194046273301024527893075054171208305561951171885021913068510889814717687405383902174928567282355090169259961154797011548287590853875167913198295469595593080126560586986412912994156131887153138854524112949070024017381095637247464407101007516775846996683484353655769278003957774777368748550598382452698225596804465400375072448118785907196634684996006443516928091540311807972186082984184154903404347401404798805972827103313804938687331761746131939699271993310778815377971184641387177278578648785939924656560252283428805633023651294484931864966394168681050909508765216893431468963927147257879673879322063107033380089314300849140905163265988404837966587662028070008768451552344813858925893688454921756561417179432794348510437740473015037718342222043968803136327443952850261931035277333861699743425526163316547471162534012012257246639500809098731943210029473168470229910670857999644011847875554210259388653675458741673333376071830319284686686870269388233306805509048240238751215732642909469854751274847447029328133415933682117996486603553015158040554122464787824988841775501115692929297959607626885045915171085405072742742904544664429929689548057864191788040107173003118192003764957099907703748943346673985396887178227123918154264423912448056364139761167858762487297123329562471147188824949848790360627341800545445181120837440163986789449008033532000811154235839305227826165756309184084222973966884338037912822353161028140119859775960339181903642782479320149637903409117270962498876764789156574210260617444792061896818525444941728123121932858495452189317213854914948602582043563462087057245324084525895178099048157409207845516262277539272959072828083623033209429172677076955751939164517684849651429991207381854912920265998861426247877683914204712331153226299960015913601491673133829235338796347551340186289322843340073969327476621408790732971628288594605404536871759664161735479907448607306057010981626816905566773132397288624823576142609739683027768826954721911348710314969694691809556737303596489489973815162607659168088929895364823166394927067498465466307480267449277252068655229080120171343548415536005477524619418060257729322056147269861602898284097479562289533989414201868475003763846940989288695190379322405042660862358678390865204921148922610771814129519636325202024349531216955075770868746120222064261846203658055228150521945139939359652798607294548656040809262921697136032291599188167259950309927880172112194205243230520530597306479575291688277611070852613979531196344269256178513211647285666361221205329835827451393387735890719500094335931324719232441098875069787539998718616759930275099729785671954303533344757488474174106001883328215297697837574957807284460727708530416771043821211986603886387890502435672223178188204624674860312314484672173542856313279185296802091542477890998448893189133129365891469046505973742503354095828335361906356474083155976073187920743234701619661645974505843050769145682163391956776127482749770864032577176356684920754848334963903242992069263663956256278249019349507044573076426120785376754968562863171622377111866438239585107329844302139504966187744882721477517366662305733017342389414412776144695669277452641269430328013507272408712486004705954930288002105597868006718047611790594282793332027107793408778546744634093001427236066816842804317641915555018793609338242219753619737963570347427534479662342586012449182154268279688477421311214790602770100362799578880524302605627039243008769545101848721280527991109480865396251787055378023498073955732946982156459077306053125038313212545541768338259582841851821252759314814969088883682981836239786396140512187568225458754788728225216678105574416361165675086465341807496447310185624801459409853804170687426080110217170427021431338064364480340262305294608755464624032965511644883013288297562525384889280614417831659207502469922945210804660061614111460461902169108333200315987911852135218861166677493595214813144950967787714858407441503461005728330926614421082594291668072835618425711873295311703177130520227471554061273722817717106210721208607175661085327210183313890684318802737700417939112540989375236543313201173150535002830468128305716066551367455110256364841582925121440730821419371125187416174797727393446790679294591037981576399098786647009244571682150004491534341497715231331842090617400192004321729922928277476920200732006006503855007318562519038951376997087589079808938333582443575016919083286627062223650193819664870696396636007413323604735422838842990094715466266007730326060916637048290539506706913544019139989642272673212895170127287116259688511608925358464344699541358326226546317597873456990377900618628681580282255928590140278871870788492274244479445760360764862860213412156039544793924935572366247388743361597752831713081378331841934300025563338385562112655996742527072980135984999434332277962437119073693106951382150905535204841456498427221340331078554711406470529663845035801459960513638592494894737866835711352397557750922592387079116951824321642483846399349600534975757180508780858867184807586476740937342898224007866806535713550369238756881386085335604442949977173954349372382644721348264065700993089342852996885138307052403594735887096865882153695914477123340988239165829563100140398400597488979275249157411847594890290909035341190203930506469352294626713122156753656864402585386797481309634393034940700432011606341201578386702236844488958699787432257236774400710698694295158597166337907352867470991219226661039993055763383188590215564498905925692119908404967105058533666117925581871966961583483377633045966560541007703349854747889134461750538958321730062928222110039964031742316486039784290211469481207980990260107970027752091950887118057158622046508167237924506577071430263178220756824317510828918887339388419807453387310922526663973065161236264515858338883527374835047893505350222735169388754865169770200363819797864281088357556702756782507659161681870000797028091208449574883414756814915527648341938024334166225346808532489918390948448725902578522537309778780129819044755685429602860519545550611547532444336645459574563127835005878378613514144716039432941315374630402526065801506672154528137472125912336735673432364333210795051912235203724214246130362583981301975778642822905684278958502354017221056369726022420319535542406289815575874807523194559583644066335469750118139416177528835330238204254503049862901255131581803878161281681320110177334286433315070912643730019394858295577609596351534642360497517603067790875519567515167529704347805465447385296878252637722331020446361155046749195816812170314953332607059150427298722905924622986010856090648563062326341927257700278656705195171437876787421948076610880260926844393657679919873930521919288348992697791561769332241473066881827743957351172231928258136088977563062292204490303826411852311467862081928473109767813065408765874898208504921554308934672804349164407061295225295135648938479413674453969547012654474974074201930327394581592935864494382464103903396411534513335779655852675440984442173153876177228033027153803110760133397510500052001966117093619464004830976675629038950857961264595251142042390817282255571054477759506971993354287691375120694808075448735025395366234023877549186072607656022648747522690489625118269397945843460768494850815297049822289401997036436527677119839101963395444515795931808365070132652669428281292988750690064289972912594907887087514355245092850037141148632864432631368359255568532881277655649214304745039590405861948847491091531167187403427304151074475363968744002229018640437993256925358404539981191012072196790696601505515915205806218932768772459361460780778922275252621013817979437479648245229341516278820024442898648360492444399640655861499528901191038459205676627664085620997042474160250579236542185059798219329921585933808453138664221324681371127344852786245072439395951387000511695656859565517970316095366380316267046784746161166870579016201210488168050421229949886641148627483441425020215183601522178974929690662146990118434574661326341477020702202627524460777607239163063401651910218899659353761473406182183478708429542684346032856764673299543264209885062919577048209201145481805539564985172597491213360247797497829920088116566222385105067764818602367082480393601548925673092628834720041407726451571348688303662618790260504987199191793258244852384343524125429840784311195108363178691090503757459252997989606407615371388768642114098380021313048751595653924277564621561922245010103097611760291746530789619722970974894813842630444729051626176048605803076612676694711456094152882006117048511525958278827690819716436473838868485006262874918737972652676338785929630846480217686968183213085805970446459970975946906046797774580514419837535048188512437017432001407308195627946276435261483130994178049968323547178130921283178012001430978335888984763266012784633886670048080774811249252023273701000762116444948108212669483988543485080523172087101700227614283983248772612484392397158965959994846505160020121705185713235013765001060641895168724006653278189505862602132665562797443930863353667434976587657559503941376474958918893672649967894255572335403448209303830568900785009114005252611785950232110321715843070654674016249797143550304006503453203028385182786710620930417932768092742657915100359844710414682689687241570290696743998466486015568781340296254461073523731867637424935659353535314000856825963355006475185546471940941027569090124156807094972683296816011639692871730009973225526206844551421219212637749434376934930089276312532492694826565127987648124767005384731354495941687692132007725586344527781348983616922917248499311951049596294182467523117715093721276926992700602578008775059530807740038340470190603757992679289168173317543147778312189782778340099920497543912858745974253697154476336583387571760641703820288426237953672965912932320836025045157592230221244137763310821445373802844741146176743050384365309902904810100562506679096027204051238601412380237300790186148370530822187565823323770536220118658636847692116458443221533575553866717894957411567207288399636469985274124456407723050651995713329237974051962836994039388198315041548268626249612285589236732279308052356980700355258808206344748962119518443109858866897736484174449105829432872093401736374364204018986391244949945631553733684594622745974153609229832856660625884351704294995485381991246795759979486059685658022248888996017919957599002083806666325389064361310767960121774832891807954305007834994204749087498681014610423651471441159041937415864262157981007984849882857062841540614650632016192256952840711881068675441779282047152903729594100944023127288175620008451803193705950631757501025915083282311511678498698487941091041540683697025738769034207211600405281608832615458050411820691522529503669008855995859116258393549126605261863985464466488908119842559781142330378161675552293924575454180057444012527986322956040138476426951147755567711645259778657147735244280221582404547536148198737931998078774377235068968066327961720014302061917685513323861201863428163772545245073745108149657289776484333109987132292890673178376098821866050327285063453010575360651918923115540742957634456818881613900670923143859403143349594364132273279438668833938309040399792687396004944405335345959754172644011655028220462631835689975451461626283796612118250346136927001832669229006180802565739293207471576930095970878347203591308740331681693995927323892940880390154759967092980957011048756347004617346824369720952359651481467496750681118117180828948040974927037862707689692503742930182092533336454937659905472265139309834228442749312678761136794083140087542808207272208876016827302538320739471267788103137251255574490343093876454663660726524846909179602676931303384999632033334748716031112650869584789667520852662655015094964040118624712189998776115641593180999425248506898205432536366866814820237814746104773387037322734696196742655231097894496211832002148397565192962264805477005437183628235576218001222076132094385887064215725939744820976694144897604280623602666338839301113703918492063239587892608634885775888396023967335061411257201113485330457051134212132744900501499164345400253548378373157088813975563391216415801508325311240377271497983243526909867588780656615088928378846910930051026177132675609975462976295626191990601519334916818889890164375662501521367721240968024803136834133688664743332775105242992255435450945148170946178082177862908836756052998287839155757960185824884921538883228099445098597019666301170844215338636750619471294135396668808024201982206779131038512524460338904198496596943815713268900933620249192395072518276168425529182211148698998725082726202606264682222737802171682557701846419450155556429611020084656075224365029652095056860284910186702178692829535115674899415553141991624944813043657837769410922940812365021186171274006241981038490089479781203970398789434349955499380252828008876980449127583295098327231517304522698105600605547871662660886835118024883552517948543426451012244752673595136709383709676726617638706148039583057127611826617796118300678189770280940369614944945772616042214925539774823828741034519955024298397942934498589049994301370106401694741981733718695054200865710490430538611471525024497654394390087551781859558900687174905884874057642022456379137921438520854357983852372257090967720033053556162945751086812847815741306352053101322784749923264328136687671271032624533639300867608117659308166911192549587804393192511576201765867713810517628062830313650546328149747471756458473335131976202302549211087719611710794599445068179283794199673988747392479229954778246157678273450681174207348136396620957224794229146770185324842252809639997083575314312960391092653931880992666302928585256983636590749520635772587180867483394904023822623770032823904299513558531022972467120414882672114515498374884284787349216632192014269006228030620604743195968911616334345374069783913222297395075302312513243597976344441807062451685767205390967975910198624494009934329339652475410745672858497200630974665609958073787795238048034613830957404341107621879112866191892185537894680992490325247160812307089732002367729405728737797476763229395350687608305010224649183218641112939039328911432635113423732832052558182670670027726674186153028305395847358513763951048856519060802314929687302886846877125143083329344947480159900834806616791938793770203957919153987183778039331329808909010584513607950273808982212598309705322756040191170785872867813457715882124068883986203447321464711622167716104362999253870843208082816670956108494710263114067153369422352982080579091535387954262758751524001574087047421852212217789817910069686220816765938954830908838550844824231062839425569491345422326216817269809964828553816056455893764435560733054808064505345655846353733254123232804515699837562767433929371344144025705110154090926347103701353612767257304778974679103583944308618252159115139325802408402034941013221737077130895814756040988183378247101672743711281053566844219117583246006275733865386465543165964780374533637874891706347895776425029282330894203485454123905359290101094059186243545274940050795735180724069760059137686938492084542255699927329201105673688989824724726291394443848579142141450877331575843545498815340016392217713201376771841219970255018269954962721404430911219900964231563331259640297012781967465722193174714540266642529480758528959907103932125477050382698875938564292411478815191465207849259027214896159689009186163320737143911911784954943259973038643253574446952378166022482678367884232032254524259518236596109033884032069748663838667594588040718281686815879618283524970365800616126182394141922925519244536165443462317604735282792803899164632690465216425540486999741836148662418709090887709573693607593724664231046793466984615109698243635169678213118153474347505963853374884519725650514599571834702929494070318467205311176655642540676552177370233543781506882902610530572250140219955988656738694906975134713786827498575006709632855164423747651268148000505545975861589163315037078296379471867909895377983435224821656976581482550119282501015504463807544353916959710686174506412059132437806599876424336882116294947199671557367947588058242067506156570276422792000185150449943640141591154129952274237039607914424968503657351361741725001847756711701415379950159611563322236122383938755312322814960430843982988167177787174509249839680862233604838299786213520840188953741807168188489788304213871628877759678057189517419125051020500556596064248756810402970232221486368187498430416303083393659720235219678247377650969626484460052709898946690640994553106256654047737131952485876278719947859190537782382037787696583081099425174333840949431651210566659066255705696248675490530471715152353534169872556348302252804818629435032175775535737844509676298211020156367637828912687094632816561307704309732061376544128696745850290446628143143949736155914214477415500842067988424079353266968498826373769514838570311506679884332171144264696862002199457570101378065521621244893714301378811655888260954172085252289609116210514887003042244246348745647564046371432534047606828781978568870146753007366544008178715855733149012084541194852359759920203949968007973061506715000668874869326625787535331386711929911907790186745783204203219069838899185891132672377080220089145044999955441892940718784630004227674390041014801922813346457296518686172466050586080102502740851393487204602850117821306982391614616314047620325390883878680699250597494001933434359755520002887663114567109519244433080561518309808950138952522889258637785147193362601763008865188171005386158201828156408626072185326013017022042635272123209778753100509651780247039309966687234917688070664655388905926117439272674825243059193385741171624697894121588332105053385168466179001678782545497650667533067363646473464669328455223832565615916735521455857972278305787211326181986023866312900894220997980219511707712600107609278236589256521301956378892806961739062415019711754650358689490498871426615622821228799764991379439384800964716670321820361536524977351823164570310079416378708602966479214897519113911645292160828755522485216602971027747750306730055274191920879109015406220641470121220939797178497696832008899561841688708865177646675721097539623640814479253082441069874688897652356118645596112824307792436426218199498423771117011189351483823428961820251821059894468480028100954016346101205239011212695023834218960701358414354565128315298854031050418366257299267638834238756360027673436605984303644254607300299954660092443773233024618213793602582022348220560824949818829326707782288053124637199386972249991971213083038132969223036734023293211442949992186967937616875433244556322605180944514791222574091577896542908390366495277000378394414195563070001099722288769816492211463189007790480057772223803949771071999100716235403397244399661416054246768992847865597507611166468201541966652990664226428916603505577928416665674780972223433126720489484383125516913605888674002333820977691515370999620473404314924320915670591772587604611317372381555899645205699509005122970353271388769183226704183096767191161757331028470883954830722084636965515177896217521077439612379718312017885644186548995264987899370668327147928330935290737134643120484536855109578069021955981058025078323687820590209731483173610080237122081905765195481068375486086848659514527528450921957234799447195661973434134253973163694626345320857596379488488373611171640210481668921123130135300611206566567071306984687735600627898546045109025794635298065617100564769835238115016453140501678163042733726185920605803261224943120482508812887000772337773932614342013277289421529015599123295928659290394851378217988779028927599668937756737737397982929044809218887132839640306116492261923334879546298809877336411760081632877174048338927765755336478372188986990507983734475896428905241230810986537050290295060718701250061238496585369544728778560707140959760419253601504162022649618677776285921717279342139795416836343494510033560242534334376401364911289685283548016036800713097378154233532734024075371535815180896453595878202206590519917682238674139358461656721761481477727649655508695187937012742055158319378103428502888210707268139966632654856402013505585767542807236057855939486473798987774134300356365453608377396273153329131254702470225318759662891183048808969765701994960335311753632566678982651637614439102248602978232411615299127873290258663468749651030768867787628708503148935087122219008918053749604175881537996157241014584813751388204727624851427994158074322394081891953766943654793598676595016999258218421570579879794629092187435513710363960590583717813117259517943437154493827374268096347737016265185544909617197182205534562729009495810621717063740260943326789951621763524989617527192578625076237401935580886620932028953821999454015540313690428813233984988978171752930387775196545312484898594665290202796807187532306035553824663813715341074920289969281295750514724811119770378689241965231560018452597268003430122495183025021211601687895646807987517386300767023043360522016487702815961651730113799574944202725137834268921587543850274723192114287303233912506893088220632185211137201922331047330755307386752744304919164120553378479541834356832741344679863804467348966182132473229453936396024957039977424974046834810085162583739168151367225444728683220663007930480770437312585812167941670777715882382112611408410417461002789865833953704366047994704273036831585094880746258003226660830302529124146662457236243209734369350756360862237424723390066526324449040953579392749284669294428123330019126525480996695240965204963799815062510528331224285153408791115592501823448266108647402139789308625769644673511485559755278502207313188823216825420594038081948166570086529188069949838628773963320796743723565242895813795456134864846237827018541925457922828384430543149236356557327818997968102408535905439582447324427844598643292891377355979409276984784948155185809991638387035196174140740418777490290023702622110489695335512595155834066097499517817352539371080452008514910940897832147655262165429975288603827282699744047033855066581554160612091352411551231972350788310010020370200714708498449718400876753790611368359051516920904107709648343660692335489960272828919750838764757320908447395519523783229773233567782554137379205882276250854946944888184158693560512462633510413353705260736274339564195608751782572607060694027005941491720466263594926236797949562590910283157941110895981342323397514928609860215471010761973462163010873289741858344071722531547625529693884031580883804610130630289059329565399079328586082259406504277372495805905431038761118719191749062712281687647151361014731704413817084379865269971907947815888072177882237590571884802552108018392591016472293652741285993242882341059859435032305969460881259731182438456783195418582425240127750981924474041717014414891936190013221759983144078029866016079347561243453993742816955245986053740078215836163012576123802911493689888388616599356945881751850884336478373741778263501297028653070181831464019144515042917645202077548380286339521867937619707692338919936071196412804071965452042128893582459709342670622549129859558416153296694882187704540706760463349111265995328183058828522611392071299774549569703591895774756026283699823467406757184037390810281534538898944591670849522653227648155866459781650262015648316511867944626902391502261516399408353477511798401053976831620490758792096801133337491179033550334104951007140857251913688494666595748712085314168589489421633910301701697038222976044055324109442772224960196853008066789528139301366052887610697269843120887840219962092197643806921386613663410738448275186989223198678983217191245812314682259748999762914849908626179390972493975350862419023520073299458958097959359970117811684953081084256098926431583038812257757768356287963585089347815401577854294672245351732847225695743829400415649011450844936260365527625812007064783487109448849604713479470278194477580397428304212455601742861293202340653708390663902096401318759090723966751101381670943356948066848059281009516919254727167914537930481775286443634474645322968575387549898155964379997998788127589680493957475027509069483681019304875167391609375654741344320007624556885049117698681557026153417269661926284675604580643462516102298280658961665722073958682921907349152718619021863900078593145856668258865713803467468099859219631864680524719097115136605979695150714719542779013541485424253482254720365430664591359414341119757142151433576566558457671461542218071413628532775165851192077824773792640073618167433969948385461508617196529918651505991529865220688847148431179889078608724095977807113373496587665310321518517051861742912265212187386802660037442204801412993105669964282149229723671543799670495677572729016800924478505469925400180132939353924037960794941619611059524558202621500260625594444968634253645402697043203655591976508800169844558328512259202133432344303813655029116950880570948540015682295842217858695899062551727487386242724290177351020980336085909897577383442557425283136624453811717991670069341612055147982253022709328731520957865682271857236356688248526765740218805530413724842919816492778746932536841309436706189361163723857549959922709434144531592483067097501804014400918689665024261773287691659812770198204357419125143491413985311862880319928286565895331425265930265949022105294443389394535960738057362530403973348575501256417927601220441475701625927353174432038188443078294166785398639761897589169062039741837091704788019173998508821396844694754536921838040688618609399107286906647960362256436727513976407272941067964849732870454211593023901050560359807734714554674942945016936575973043521408029015131948765303734348870317838572838921748088330473551464001322892454925529329670703248187600705177019914033549022084666388314636121661334527589579740155339293577878311408640351082730423406317714766061713072191109973003215154662196470183671976477950447139788268874388229138421182009490157037017421291885280965429554857067334042596373158753343489642286303866296735059225906199399404716148864839851956932310691163275211963247769680754658900121359928648097379488701535994327910137483449190170483530368830280074845693815761160219592518335383636405690269880492117349525847725873577234111570903336136085240499146608263078782626568037853057198496337757164090520875491389548697326203311250647843953577263007233910630491275980489602116410746295602722639404473870155257489740700881491285022921688205813652697319913499120198318871228761877708188470843576943287097715329548435386407041042246687195201251247209283221050019423333339770098768445263397822285590810280287107859932003522690238856739350358876819344679316950406176913187260818010393873687137333082914639621221045566867157396004764964060630550159646505529864165529150178993622634315798191023836528918205397150309005273452637982130484599466803417770889972099802559683688892912911353551651825260638198457183521553012212804952704071441103050361751952468439934766494489013423621145144319971621791981447342902391228744608445596793503350236163676068381386929907120801724186645866699549777611943409334501672502523330995662196788636228431015744456241256494113647876600935761816682152556930335689390670614154295664057362740440728094459234517612141952235676032905477806672792077924701639782388829549138143841781683373494643470130611472866090256612346160054012143042063156659946119317355901758322423678439475879714793063046243394389507376036208135842605403567182883036794770565763845710675999756438964919217188753292939975592617524047104854366712104743154949296820504058953402727259794259381428629608761482886176182211986061355128582149799568807788852863433417565767777483637693603430449712510031725820410581771917166062560980873932064150588787554399327948486563135477924136187430654552579493488860923339058439429639093269159316477284541370701820975133189535342589293705135509808804220615679002408957046617458044309351235645116188041892714019178317594360468363731060851055364959125950234829796998984854023829988489026089304920174261552027072853880882865910565486489859270841433505042323973337551043099567788113691227655208733261336901442022139971780429345000479080387316161821360133576053281420496758939042756794667482619259867720667683423749445038798051855057433798335022605498296394422369426780721230363837462304806908731379952346759235132935719110600831916833663256620108595346335558279645476027805685857924969866499414481127116216732545722814284976619175827217814227872725114785787646431513958051007484480762837016354604372099157077596063213894400782897796952849332791402900415581758717621156670414694117878971609279983553438186768680242542967344474980949553538220604009276364106356200147490954142112780771572339333810588778983952529904719350601211630638565864121082428701740352512160225160032437347163061506535157463615316911170955459750069856464107029292722025190711608328967404167127029208032376292598720977329480360700083982442887341081203047207173939300091393248966643079795176354311142688028558259428117147905416230040683755798653210326781525071030758871209903404434517030544892198968536509939408306318495122882455012217266913094197468397852476110774819951830196759912851071596762379382883200034953274959650627357165500887738446320996000223560445888397982644818505715226073415033239432098293115302771193037593566209755740510750347993083459866819301684722398259226991933559355870485763076788911606288575297448621687989268323004442578537482427627486441330947488366781587998370083571576151810543583608190772440820011373421858044963864134312165681446733040410489007944726134025659476066126642001604466063879342082938325247606406636367103889289023520988059282520972620014818837300996168463897416125876407503250428995970807691669337308887853391365711462542299341051669129893101714332588342357947808694410201824491095653801886643414081555317089871302632334041742086670968050797146105582741016814765728804116853368066428127718864181240216694224082979798407328684404917592199781559464621426585391234851318700220152346155942694661667365075717057775865189511269655583175384895169526069505078627237152727366793538017581982596757811545651613558675073890645271438240353815240605124082168086419900734771966896446726110707096061143204948579299294194803659948790096438176385824032335140875557360392562522505335198450321270160956281334868752002788266410085647084876353014151407996030437867112608458858656215423085615980389029995955030179707334496780792584907508158760302680619369813110591395185545997127689180905416274452248986317396241458100649732772713358055752419730764498685336416788455903698409236587484874980806527924442295217135607440662359397694821511398509080005898084913510466002432671632659588220992343566429507657180154473208009075806550009833380044102150778208846533439669559436916325351519411480099741885995031927630253382978441181542775151665523062030998872677789828347380807413833654119485717314250622481750522022165829191151761309494204954447762163768607948837180896766137543651040702532923126061188032775500416525303081237052357711290465401171585189002266902151806260631693717705851837587104904622461115713379036656277748533303373979142728012340715790632904672251734002224920309059165171085968586830504104814963632786765372344949054898206659077621531660339722673761475661424040110284720740145391869680107713333340083269641151847266632979986070787386137188245393819818101925204466023992718648387252506742725625279361438000409623954819780608677902507082851510079441529501289662170571905163928531840251512954429192554906949330501750054844806816744395083906907088417071836983857121202283412571438881695047510753011052966794168807177708449691753677861539292712930000522037504614510781230986833312002255105955114145555724123484867080540525113796759239419008210932648318600589009685100594757719631274518789025012614201517136076612796892691104346873070644487635735554348544126361427144403175355137854426781484923999304191950843260367631895055482245980925391377703522008671116775626975616271895435363234712910865985367531178938599964989146628004202043113736163059860330365305050695671448658990034168250495017354698869755107628109445070559867514533662665827120157822366437311211975947670388724069720693742280203262486171010704947527793739056813759456258084108126310533062135638109506130224502428903767274557407655224404717177869523776114343394726957344508465680931730844591931555825385371313079581836297051563201429264639335166351118786023047122788505454670226645271197981233895963122705336279034073683329825857650822623091328745316081436421687500580700036078764353127086955824008382791007005642743173126966381841379682914228744848168122609513263522637168601729562628986837787133817784079869306374805359672674167650686254534127131223292640795485779821840171407756881699898774375230450521628456736755545829061922997436014748417949995521984919039132831399207916125139193295036057439851755095510996377179591055328684462495820752552616208591080867618863803922079316852273277796224972137236994220654653285360069582538169774519564765808764734549319618060234762609827931692149796530704269045025164307500575181587095795931352891112209462884866889209872512408227217425887649872563831159369661149886394112554443072322844285193420327299760299330395191537714491651683674566517942058185308351546260254825281079975594691544848226889895780687461934354868721138257626173710504055681963235713388688274462706124950821382268662704005713277980791508562840760650980379106069131915894115018581299397662249995694437033029465155488324567176880734487540927215711138971730455741844729210047583124965405179783662400213757168698690959975717049801593175676478031247781423439703489486225957896067395723056647211126102284930440267489869064217278354817884681793490456014377407569916675701536144153098163187945314900389960973894831843235214177838329529053280282949548755533457148463747018694839274666139897039479612022439405586436666705031589777385259700117375480387121742067244791791725927169080186961133882199783506491205229765766155118844485067707365388052135752508319290139775552189718867344499746532744308897532923009678759115828731925506740469769247196418497618393777451820480562838525613313644012925663535507664943099546963572073216524195131239151956707414470114930969294972790159137283649947065526802018980999041584456205329310322535978049559488005382997183747294010288560353261896969663016637968053909648317902354453972508748225871048616531584391204236424116395162659319352930677138878957751777245412511992161182249525518328602050842847674556990633357794977661284777742633016550052593749750550136225446618770964245687269645077089935729373656441779693839001701340575978872536972323332672932961030825211957202567630669928963974434022224168940288290159581175945327731040003533927957568568221992568635134730292586107356584913320372782737624400684381405466227036781547728989652022274095972377976203015357971853413486954477600700048227622818959609790806411301060855104146922048402801950519808017527493929158402819939156767868357748173643587493993731358726524420631298327013009063134482782940903440712488447323124169923482341615233474521865223972000470537217963909683957830388935354300263801358912368487241386518917222181484992493995557581887175719179313010224686760121268342011129952407043571641195655449680757662543016685400982574731776582612028591490256615990380253097702141741813189577410487900550146529832496254070691905799569831987305548661265526087019031637458235096372002058610762746668657777129707084517292767983333787396642806909341973843579109192617374921477506763484279882509273533755554760412415452288088501286411672663017617313054880666432665443395572289522394455879425975836034878217288991807112571109199447526918707568839549099155935389327152253784940006665764390809076422004585552282359485389981606599111997823417627584612072561648537795133578693850256531064609265930966751685888516218388062422547758452926479296040405214136189810958326975075370786755979818112087276641549514031367870875758568042155516154642815362498384922334968953285599512832037710314210962932388534323356385665480101670189276219008200555824212144551564771438378627986101365565382997194842277795112585989956836375418968997100998357520621878636791616705724941711687205148729707203814503603089867183159976888368544480566797801731890472654813936674500622836106480284419011937640824507901499878222335312760636635227870327459273596233068735979963521400107732668774232139957494681164374093235042236626460505138574499336689803131831866214730478608680208426559194479424781985228512572299472614065900615091147810590451097792069669836651862142474943997602701490773639161693054303628845247692741546831205793649678799547720027740928813795685627452659665923451358307082323073794743579418850858774206170230855970098564592367093581896888670964851818406854668253346915366019528177429522822257847903797395285743767942962875307895812856310603831119713793920951639138553454282293216985862754326838858912662066646907991353856027376209822575803999761062565320096339428107004063745965261862639287124744198503781869714260254468428159277896958471572985471863314375334267239026572502178690885212866290034091877450917284771287351825408750918904165301375893683631554659260826530251911418245193772348062351696296444370387925353317837360563176108528681839658564499214218987714545295324638181666231827003458907157192928705249872370778485403717137787324897855205908053335028891794748710602964122455367795690505711735765631060674394118208612281461653084414372203744480878707435522582331996121836181086505598232474005072667191122569486359450801340573862692802864351737747135138361075624558975941237310579142150486494635615901940955718806201539816464290500734927492890624761093813359091167779815295344150244694316895287375713183472878867387013063992462391286619880329261039214964763705251427960972132932371387500877734859649981366515335636897922590406702975606179775527104405781444541438119618184819746387487994703634652226440623931781461978765145729228629162249756248807173704009483199202474025165193535042657645131890383416644093676497040881495616119291020021304872710945280197937077767956253740547520847562855148196711252281116718389225839030281908760817087519347054937514161824190369120543817539335597537134719509610682015691205597550539279833757954677039084710416421415945021434261526775452403384438578843809400756985446130035695531816984611232893724457280502431784768579314153513496791478312245223071426831581432964979244423745624318508777386767110383611989735159203778554046189566949851576461718128345207357253928155622055792338217661673643826270501322257153285066880814742992940500949939399199767332892495558131976484361311488363799477036789970973983260884839455830357786820204596379048806645800113438977277476276587455028585767007325081912606277539149885975302479251090989686961644654241897230516751775141959335293424214228687208526254362311408053580648472947408225238557980867504010233566586461329194310793908841021162401954450015769298808185840654971052645521848104159139026598773861212092366659942765860596292613592763635226963380596226854585710156860051790780995590864183644926817411075783054589997355429054140005552442463301379216163472893221159321595515958643584833636795329467240526273684924206571699489194894089700637564860663256077336227894911658743046729486481403630715939562228380088333710551120588892441955753780605790223261616891476567639065088214466991936498055401165658746065898199357195042496596338474629235445287784436746674546370219856858781948709523625989853085126312730014912830005456468504634725691618783380515427008027147110747719989305909587526965584511725458885452126963979319292653160152103275817916955830690756251767464450506473122899465982663208952046636071876002201858196710450316603850351646859026186040253993791209205065187526425409081034046072959951776071747466209208857338967396676044553121154169061357592575914554732520987169385617853142711421725384105993570463659153735129316214903717882885073864764674244350772862086367311011629027141829498440290337008318281239053143392105095678071053296543354251785900151868448902426642753224183418592316467946483002049746374184886679818718802960199600547923794631419684467323496634605000594994864370102690163623331685139813737012756908285045549125716887433667768870247540199733742114705321288157004842784682421283575722326534796902395835811265897805989703680276707296323875109015510405522250816315394688263125818084816869724352616677197282261338681761815206154712577903418431144847529907194879708210552012940355105794471543467665410902188614552087526467725667021397121537199696422538225124158807646318185613321663329346534816749518986613896563213993933291009177296883803860358995785502062946748082520542141591439686510150043345692995646228750503810972634806378329146238138455753977500654018488692654584014701744437707402074346915209712652385503546622690327386203498654479607427504990203170461176209035250544346499847984199535259561345269192332515462270228804454567196712837231407125230559146956848336244055369751906443411684100741714035706814944765889272094088489643890085989716310213206756440525756473978404760986835897456705172146909618991791199050902994168337404198178621218006957916219564465470939196914392571025150782797255927002487653150878817503012091721753800891693976335005093602388009245522728000864405838060626140639794404545370623991638713155629305855659887950005278607959930941025263798931893470070687112535643139194051770954466161594591760202096154489826170350925107940906636606786681020313659888579261453095957773668025289182201327219467760260695647624107698936982687378751362436322117175636373561666261847558032033470845817124495444938638044115757192616275735008223626381676376840133492266171365525526542951359436527333634161521317829410809850926944282990651710636784509927701073728717377380643541950553589461098916060704575451643223712632125734611730282353450178361158076640468057096383604143861091059318912150938922091552544193751368016453660659698302491019746811224339373086729591897699094766329434406420878543936460677675850856348963122186319762357241862107027529135578082375628015974273120037146625052158137713030779755765102521223984626091766387792671607367163594217052910870046657057418231534496365074006314363499095391714360771146357610362960054978595163022449470518402795302492345417368672364329419598294985236674260375896091191686061412701816681550477919327940830218081051495407025532710576681816929664638062980331093113740370488466923817373701439789413852892400588071438319211676185826568380889354684321824604825448802146697515403695714830125100829480900715159627427841188718492516808591403791838048214700368337104532332314055383338590270729276112762386393698132313482014722574884980278089594695541493004738860131216842359909995578448827845264739093924642557474542159872781047941516587137642827109161913133724878802699489807816214053374131127305154525320443492945795266353093802184315890235664416705202611806358664984157366783311722093803272245291941857917184741719509687079668992270239323688334789279687748953344385518650007748143164664957365453314064269759462049578260113114273515817848639658671780529902133083374103720831564336954341938484500990077147016054163737626369050484114460328038087735100672720826952646023178969278623733996043238695961208863677879708443241153976604543747631452450081615092805497756282681558484090097373568216571569704940085231747815438337730399323118575916701140368197204162694683891317712978189613928634962396794969464532327143097969676673617834952217004510989567490161072584604580589931348739733144151896856370957252030487071710001967892105985356474903344222968220910941550270460860320124757471390719884235635554493291382942504534008200043064235815269366054413970784680683013890566019798348174548235061111153896197265857122171814380210690773824512763873013174738343138647766046862307686775477468246973555743255139979987245976437586886813798419563842341227579035555444049422662443110173489841636806184743928054890174835374692491956797413477347204230267877742794847581287551780798994684274651542676428721232230054569087748367546495900761525246300590957207496980420269146628483537060808570704777805189507145366948593742068670289056099693714793557031475467038476910540431262119819059737150911988814865702907425792903164013417639237851049437310545610090700281494204654437897942063020241215337591590022913463641423348473875349164502699251743076248377467689203460990438692133446648997500686799863908328416717569602867487118621616190725448427444673863034280698280663935096907115693967203781917109875113846176428748869066569399253918631701178679361295340226696707293828028089611645473783536820102289128119455977075784031801885983644261664341924442904158584069224106526840368801903376175351397833233328780110350740388948491043199793481204777919390846282392452369202715080748376520600135458785123094310349619199465121008463934212991395283383952464879976474425049227984300404162193802137083826401625961974292503439208725425723001994302215161380003139035319390210938452234265338485126918134530939860663297967352169754312405769720231344860484565182056914003620130655630442670974226068561637653647737181340649400975973479582583653962599770386470672262440795502526740007497941004419195247731749975398900183665201772810680609746177056861333830901312413384798836504635654866490735605309075755123928063829523262012216799411014965557841094148529645025454631879653863163437398049511997370790977970454040663882770391205988130809642098890033871751551131088234914071391792966346634201323273366237539663793563967573208067086454333062018795229697762910104742676049299269405149950315106707245986239490901805155780062677348145859072602622378405899711018170978057890050255082452066938740298781407693079924835960987416600743690447519024374672564589961082916387085075966024621708823646392978296977104161140373802122669554340113084369912191711721460903690433580997367762670358553722732098388445816011956748464446677479139614118464867172773048552258936447838497344645227368596952590213545670108181277805024415597509198821303812908461445153873226257673501439448709970435831234033181161714687317105297732274493329395050401013077113186893605343640198129056343912859299333541122014542117727018686814276055794282117595021917436824138566992209987009368207316214264040286695501286628777751585377917996039720362563847356639120236020290647039050313687043313603426987913828913986148878385908471693044005404381545455953654256886563024795688104735268151531009613621161809435318589556816462751194340829463410884706729615368339436160469806302885310972361019630298608653911858613543395271431781637102058125853223379340660005833184273569650812552647487289738302132573313314167753008078688045219932103420161524274699530709709468992467572899155623362369781072489870335984516797331731898796484359295923869654180613173088943542182427646143699316891092577956755592436593624417208028814852595045792577640295610248887296286455847323987216817865445164164992065002468649850083437297844910252909596887288675083536629494225966667899864106517215444630785629958991835382991315882845868760306568781490546048193917185169505973484541634884308303889609534363466736409170786878930198546455489091765045241665967406512028516484408242932575430285211084648622154867149826758300073655878218562193427847318987266968711642322670628846450722069764340653242903912262406743603678307275667528646487886393764357520987864064445012877818473946372895951776388966376014975559392320422942692187880801446691582294372717350535077736030372530938804742446786912939665216601299773500016168370030537883297179718780785170188186488754866765759761079280179675971820067528993458725046418622492673422593077622462002757870553100199380138289198784860588224671515822821340925148335533407838391318302902116356097255855088084679208026007579056168467121906772607142995243389986978304081438022701669296156474653055270912690635124235906317451266268755589441566588670448848730280889483089577169372281520335851658093122298251370630824784859740215365923707201319678716108964812676609543411137829728471754335063484534853825227217674320063475475263192529736656842735152521134216565715459423810864468293745684845556833469934451839843092490630201184411949918695003300213587240106031726239671398204510431827640338330199384485652182773535890847694708842022861260281129136986597665995137704003731472168080034948677839809385718632393936412164889055139781043510653745693993304488475027950367791224192971508016518331444900217966633543373046693755295400542379880505298991069081332215762425145877756678522981290873932872389472823145880735444799942504953726310879600491783105380823744617245778878872292435834972585069121488484532626360570594267145667663556212098578326799251103751780434067774150536596471449869664519954491891470030060701704924578458529285522657804832982922753965585722049463339747333309760724929290451552155378004607190476294605138774040253415276074720259456593187949387713572547010686816781610113689824914816326479508452024614035281170416763274674387343542984043981771427281871173256909191285166820388401371732786116358769327689805668450715703268345473267960976459830183242807774244739378179242749384132652896800584617531662190105150265793272806492703731939297829621413468193085083465703573006516462006325340934632777718835314427672416406634832613266865139889990996689665407941687145791762082770387997322771842351061666629183270361910666980686472018193867293130835075340298868685579614044818927285107678243847654037615323241284714477793705360565946848749175362798017020517583037471681793381775923995016124274058337508460209253428768235862869444927645217501190678558761851579926451052524667670797899242893335905920443562896411549766954229417922423198268964143531898084745149096697568527821179666841897225951429251034976834711293911981333875412021189356642132433305005993328107880693198933846463905201603777061663153486898773611865959852464705465694985147615961247679657238070378337232620040301181397287842387333633588840195436898438031241108872234868366361490674029535579582191089824106377622285521954949553190147123605319784795136393941081653241008987555222435507700753514036075526465076599993969218149211299114895281604061387419731592816942458188853445283686843108107224056146088061970495998422397918371945872685081155844140779198731087123583555001692870565145553953632526978634054460173179217792995728710972065253826731953695637552195312459602369795835283936851116520563584099944717954770329094938806483811155465147447861441824272090453557048263891757329201459482393797871284668307043361698408880952619285861406559390198729118311826548394461121345927520149007063648523600190390134564804765667481334611355560176603420732137366643628791644970266751536359853613628224197528456254581293634467859522155591085796022400984928798674665587057650851839298072301839095479146928717966248455526445254369808601326034555249954556024241769561089380144384564143584244297867526235607819655898895855187210018028254121735552818085475700673867583790528672698385525308522664779762327167645310416964096205155163545030396949013655143827251794129800370092640204496118396801899507100686469694752991082476257170096398717743233022227877365214586148069159249465137840779771591602743442313954042816377892145129434011927060301868404263170100172219123302377280887893787359783826666713181729240438627184228906637466361180611137014212066349710059721298140427094008756306731530577635806014125500050265481952264220401585229820831702503448744438854756923934111969954169879735711966038167561651438424235526512393504389584701574106109019398937688630301428221230232319044239291283353060145747288598100057927166350947052295337541018521499856147255737140738220026329302038513176789598161684200308006086184098809144016880174297457181199847839802116533090113116948407412086303803620523194072721140609390423271544098389988492339605937457137980623013024347102870732233593706455220602209218336526620387407410994915340854834224175604290210842255887143958081900697761493487227156361432742466242423074742967100579955394415885900931215803457138567220227859724902593181685065134219756638819389338306740288398729115701743799948815715938365483039948684496837013980184052101170316951498307675475651825863821625369162381619851776335680274550607668422298275132683954768631926843448302995935028581523887217854161872729454216554720393209339912035586700032722781117687990354797962524582874699038044842465052690740742691189956813751250760360754956701109904650694083292375689588964038504408719454190823373641415325888795109021344448528046747809638333732188317376892742594099102165683667866320297865760311639126728901065112817611535356621454541799192365102112639714599788707903415896151107150340073599300386119979134349007332301876352366960661094574347024814774646106965723341980316324317556207600358646541124793551740075288607753328188613016983180550892351219843985096580938538479246865949978340990773843984790205872978726016257206556814084895602589644621399458881974362470481074594969557774425273102335902174549160209474168454097209299124409716020527131815892143758681188775462141731092191209127475343547762980079504260495683762423741594760683413400803713710040347655757076067446384551115870647970597332151679473370061266947772387287897876861477520538885706408541184055188650948410830719349126547214762477332704028696949329236785332760363423720231628312636217784288107796999878573465175456259812510978526973688426958090196798408663602086624418704805436442259456718029860095812554480193725725633906450941883763822008226204696270140111230524881694888903649222589620236935556574459944404591868095363025571275068805652563028044721089791640041561180500523949643833935066132143351927488217596981541063881238859252846880042434417459248173824708806793844372512044331215180479968058129678858228586393601042844835461319645571747251077391190418980931034756840324133349480137030172102780501813706970900817161110747436964822697937438671885130442127593443555797458002961272555752330201654784681383589667548631966860976998212520568179391514174105458084182572757556030622150148901325112585108650911301296866246114951597978584185447744827702562618441544444494591917988765433903145745498382444015897574528007476204120475736085465333421763945389092654217354215970589193538484542407835855387990062925396302210143265683075766087187173511098042390778138778994782613108657572715880206372253689236690129874565595245491469579068381088372069133795943685303146528043943453504231446158660950861937003771454464774821486021574495762110623206650743586448529980194638071026133413560568774301569589047860009929095907457036592337247027163846512700305367081758434582356062823754562255603130441085179090531104044591941267205925330346254301372505180711808552335779748696507444450212590463569474154177840605072965862314381836548043746660528469060260556741140701011361292928719710061528512102779411176722152961732226258868666696703403756133487203664763674467528938409125667958084762249076167341105757998066408460478615552573569698948459634539555531227066485766590713538527985806308161436708112578817988849766581540197996389989945741952544101065816088669990119802319959789288272862941173666231453579150591693275002895152398116529559639913417981502805671087052967741098780867411748987914304838521013361469998495956077547861222707264691824568541355139387026566701252636623154378087102092219809908847904829825666277065664349012754762870478066932837896700491518014576314451903045530067293521985293272104196974063478902276539135156849179903048486477881419344111212235433325168633652941918782472788499220377397855859637789580475305169814002618025297807726475281864680724441151314712499399099165518314392202920461546744136885271165526048909304928351329812907877497055679847935707067976937345963946291671066193014815084780197330634033409859212492545360400872142904525063282626035347676191981301325783831448276258382283787428414871374243332949594550401392469235567154385113836924139167670430756966490695592352400652592127906253463801791066121435515197737983741021073273976651990968976394699322481295008151666606609973830095967594694549649241021291148819403944870111260474166352194394037221102309857298704746794135071932095306705168267463943182887411692275634133725629458534255648195754687364707287926860345355053329749964536997013369744943693670036256010874379489603669693719580523674377061275557169621533881220566662517383918441998002225704891248628972269659656441134357899325134841392021763462155022289726846737231856257951590203042059824510725134160358503937031917535819372684547285896458693787706433661628781229547206924362719901643885710125113655783946592820554709212531483866848570471611809678894073422911558405811882568427052561018038935325631743027903285122673017250831716758706783862094911465074209341191613438553858522696868993080193788209181831142199083397098514085424733266702669877115544759365481691630352219445017547313962150895697904891615080298076274038053451467432966713615410916029590763310147088997856958299581200453680206253753276260193328183136273174897444543746273971329652325794326990226779136573948094787544932335280412518774678347101823810878867559124046463601984577060148657042944103792139282832063866726242433786772370271556508819525867421695833029566300650547043934374419004410810956388166272877821593516383664840574557534089803077108221941321671392860701871217997824264250536506505959260962576418355199112936671714274157290303618436821569532739844123800224703942225263645305139839488139601064184435680985278488639582320293981088489412952966400274826189246599962860689507057244423469700350170535160586775006180067471940541635090589425368584030175703772246594231536589543220536302978147619665973094733376681813933571081511517967001082103938877842162691782397681344569435722568349855362765394897680059460790578817120558317999508711422069119505000096845431299040221911147164315677067682627725311742939931628308393395053627435089592890134459352159083770333608972665784620580856444937840503595049732579936951228984605195926221103443502321632025184352862366041034377496252060967393806545217808689962402109993620895184772403016309319644329517514874542689866706148159331999537419584496486064650377145811867411049116136215869027842565090517497955245048418892505525015332425563353734346981514580996189424231434326298634597421746798974102440826235865809176525141985494446370018019930339533741556942569700714845428112612459117422435882270330667334313353976522268777190021964441625265175688417699332929900528050684158273221901251258385366906054588790326427144335095649002923424637469255789075524158674527057871412767345652567253183513530550284662902338388990181690872559849798738058677843409662956543069840111816486539075329535909283401840399096763980060345687121785637525728682239810899340560680477515987930933547102488161849809768235545828022722457339183572628566572412291779706816587287128123483831158525135622109377853503922429771940272237427915147599624807487737759964826349135858003018886118319557416350474618237881228619969481074238869866737253153352183460975565231650190476732964170446740707522420353686514388076019788674528824501509208535480099632601996060184513005850532870206665288142974250044697087592784958745336970096139477460307195158335317074446908866353299666721699232244830839222159161223785681232617374978743082355551058284471231074812219150276503759671181804898500866473842143565360461258471534783957899795357023181819886332567984243264691912222677143189789608351361336225143322624525271988984304481909921074046417796453809201296157222635139750755397912567936677945120716499608881878310756440748208155499987015015142657145274596398858056431405080859627475224276445067041069194483464004029721709538678307177083438753248186270092016898585829856173303648143126325386387991595768121840122008641695584623085632776295155735939492032336851059101029618433465778386102111713742461892109397009127203498058374390256596383207421342893586967979990186606407268545283825974943382427729957013443837734280541393697813984042760905612206438760873560596119589204456219780852253308999359179031800345608936430980889380767136247595645066101970636712348762393246266579261866004120582025759103354766040649118245094619811295081380717040360234339221511299701691082624899228215206310688422945797738159011921821603574123513399094594116855284481019182365934542810816862652637406362986636605945261399606986619216608435559221630025384346151896233530261952278676075077389734699690380568283056292645571807266536175634215800842465840321308151588477201667832498506282111443618894218918569761762043216647745894290164156402371453508466828333629024589608188261102167069258909577457980421567373190651087901733796360481596331748475581019698457013372872551919201913596435428410735969728972627445151132546197415629897269306154128775185401873658763605560147010715790696841809936659035261932361003213850286482905491619107266376114524742670624562339938597186414021879157260612857143401745119934871930951267583798030660480507782974190526432894593620479737627291647417358183106423752175006776438470836681040702779065921943676497489690183006802320120035948197372422107574844506220937453522040191801473499776995205598134584153910934225535059142910375873881604286932593878144473560744441880708723031103960381630484075623121370829165613185843395080722878327849560968712184421953928419765352699188728321445015151849265644563822985695033186584525897509615725450378032857180172850358061868752877015863853549392337059680808803917396984184685493853281409012278119656980641249354559726087433460992346260703671098456185684289619735482842702495156338157068880265313738356971235773113196104895118510107662670833517844046621389198090029679425537346738319190046483240744388827597979674752871211950871816255412065624467564994801116063413259929852015640891157520869439589903604723458745700642034656152373220110431287814847284788807516563733529655377479800933330489463685223101470784976410768284315545383259660977004824319423930059670287501761094070948341522476989336698637895018137183698482245644224985407510587563528174950557975968996083563597478454463709115530043300175797218586006803304181402750807448748734001731269163113757970872372760622558814012844611579259989790651282390378459532622356004821891784626173100103316840156729657725705895980005642392049578189088998695941822554512412338361845861114863970145126642265759315912306315616599624089179189204496706877025162853976336427500799856614682725784490218508315935345786466143181876393997723605918913778898363969250527941822965489027914099770442036503246187303039260579372146951970316156606128155441709855294805044625503114316995146287081072537622155245004802595057540625434094626296000117938491142023109093564635958013514129627699818362759101977389299016728480117741008708904725641412318826344778419896013761924630753715406573980143630044149631755030504960621269805624387678034965220882245821907237584417015883897316695800688899844001113016828377888570809754122292959112844113512727726563878108278791722378298396466905334903880726378435985162651187223322528587247844105131757697650843824773037794622236015163538044886158810705565552358846545056889354335315317674866812311535958114775403958765040158814617057774791300621588649703246982283421791825646696821218969765194089938938237726763370129255196702100142158646130898363925864116635193304267125152115405973672891887203440968947086262197779408276501936623393540425725815305490389312400253620883163879004347626432781367706414013431463025982390271272803505675096905052656774654781828319910394672522470046046636089228711668661116263566642229892012292498315637126486189834413997420416838674129310365553823888794037513973767181820017371580818772290995248513832157187086630765821967564605514664170493536999553299634485841739212228063325418451424608994494136696898818599020217869221502758963581275495139835396885732990241611590830503123994125824631868037300658327660182355461147493551608750329160847005004019207754283815819343639425585051022308878448132108258702612868322759585341835588432506931330809796388620677598630679742362299654342250542518030622023611560912725400778245281341534518792944373581147570204917905908459297964168773686393212072380734670063863374437859246181236572465508357698353373519804506938128390094902488208725091400732385565592117014207418528916460852646324144762655155788598779423792194150284986012722873781100827027015216515848296566401963649158673605280300004099434324853429914241039395109494068551053570696681271591023747722925653672487108772653939521222736739114607562591705165173799971435326951627290582593041125576925009510889256468462522245333477733482691134390860277033359320225882671542099174019128145378379564181042725640716324398738185134672996874474325354922646715742227934605285063867776616078645539689596224851018229236234551208815614163497963740177926347236367005201607543238836771079932228069057391216380754106027922203582286305513223517481383284645558108950634686410591219959748863185166215636123897463995055415735158356512292360716144573274159166892124691760262514721369357233953689279766398139882746248701351826143163233564721754034296279386499891099387427771935262456967833877194561115706185851919328075255575120681808888872071446025067798671485790598935772111647734659062861294666601259206178316868192659508932320489976205142498486274919881776816205266547020292070534955626278427229128049303449997609332533789916623389958911643067955430762301403991258275928148929609747077238030544545864343783927203546221706667042561168801687587037574237215963501596047130973987760328206194573173432779272084484013999781418609966497044364904297106882914736528205200754406664915761361554722896310869893167308603218450595841344574903786274968831508801814210209896345822043429594683613620637093524314227369234260678100416023189654801115978424342141319739107303310361479010817625642686207675319315962835066235623244034367293591828446165355152594969920381345826049935020506422432264115945648422968834595852425650266544188668326869966060120839361249726215730509881715446833408185854411646104699538785034343163774524259453474031123067679017722850147455930893491872450970718837337016016432456415221935382750618553603736461836892892341195711528539001694526968829504587126593893108507707796221808063353166570444004783493377592735614793290468647110119512585628107815625677878780746547162309501138764288261233327250941884382394870436227169310974489408343804087456957008914839689595830802131157367219748147427001973378681212196942168380322845491354064881511485608713962219656363139562991291163622035979700934631056780892783345590379473773694153794819794388043604331790088392639852404253901638774962036136464384396203724917232650831940515341902742766476420880639416462620989264854516447515764958327721592251067382355439984647573880144057015214043422375711096281828163089353912861852401636502726915359761365842256944298407447834816649393113714861209635252231502534156266683258029740682443706209678518306592887283670747219128917583348161061149270866953080908172920349496899629278439104401798495821255839569710219366824490500938863889302560518436664990605768924022885018385201769255208508555888559129776517078856034514217376497070658156566833857017755607327778427700482218143531447726047493759483496944225050499813460903413436168356340765390598559707716830149665586151323942068596584966631618220374557014988061164010595343571083120631706084515089758556337998054765564590831945142017230918062063114065677217168474117183987630371888443961042466281867481084249871093006817987827870707730378649113785761241107702908520926037883065602835232011900619081880055036255041519506179247395022642022516796320128034140488088939418199605789914625870590886447467099605993745261112323193043901517199709219429704580496950946040014830759673002109320493679051647969805425142035410610058780322049999876807087988069708374885625040044143256682974994366053730961305534293919184684815785312221513851281191801778591256516574924282435322692070639538485693055808917462030633979476942967192830188987384716972004705507151418391569524524484460538087359199612785064266732983221355762313378515118579605675669220982231231876302592706542732212947955719436047113607577914933401779013334460682466659373462230019378444154988931434938725006077063732861118474322087991875923497927815525911401106636464073978396952731456294648323642094873907700038740114979946277204493628168046231827039372828358606572088296612698116875370571945132328672066988460886735862579416866896801734619615695881916331080617786423971261334927736645835117514765052960344596614862750111400043318000133026058282782551084334554139429009429801693637286305253280272578499552382984882600262477569038892438296748531943638328635145543188133939741304482132136935308166830865502572849289878608471219789393905498013228053986205189251759266934201787892955864507789148934898734449756635187001339170749846590410326924060210552349016228213621854882440293386620003259446680551220398148360248507865579119344482791813967993899793276849505648343278585035563286630505787263036531983039741889556349765144974353850490238937936919658473514156580617034564115938516408013463466464441140334083013187287200143113451728559908617141813476567264264720973629084486021501302596587872524097159774103245810691302906592279811518183550121546955723889025643234293742065895934547375167225107734059301376929825973201421057676644307607668997259744518735530964964104290027882421464385615463445657148666201356514579056158564759183347216669451339412657431733157002272274136453607119016744832551832244469805677180553767731378314255915628619577161564765117549378937628477591125466707834610715756240847590250921159108850631896516444791156350093371262585723664423010508481394120936626943286447481780114909678434708518895814023801119269271868900686028677096462227479672437709133961240702060166054458150128028954978638180551384381039218153356438909877710885914186358923666650821378827848275874725054780402504095090899780369139130869907408239592172222986354863025350267895844392587439710300712600510272451465838076972513153024855783057578753412008058906107559570423014983307546212444028666371838714424827604753864972715596894324352223559678162252978051329139145257039464208561446513570532474658992466404951018375005391874103444332904018673751109999161646260147813492043875666703923673793917713518566265585078073052680544114910366255280180515190819120257298735740624791085213348294871567762962572428857087084996600588501722585186600653106682056029866771022174445550649319113027965396264381986090889027232351699447178814614569828918120452736226578072313846570924741336568715942643920613607790558709569336082749933382529521706550131650036536663362240389334743280712482101707638037739111997779035621838224164774658920852054641223746534118313441420203206161869672640624944259778482585324566727291657535981265755227571538796776079874176578657568912434660246505082808544732135904514832650692897511933242963346916275130183162361989101120615137750897630711893642778786319189072783798595298059437650320268682807266633831013001409887192946117688414588047944718039449620581270320236234160789064922570617459246706729616637141505616194715195180583606478446087054702459217652159873053514150815547531021725218572426951907829559388503690552909357864652932272060881451275116189817405441528302563077677032678204959791836467721055936525364367262525248229427269343125880296298862617215138658399144927551161393159285803846611439895176837947822111878272614646699520032335974737533494691872913323804738232142318625297299005420917967016287868730561499232631497906338347999027620104206735948780193221654421294192563706550924449589737484670219327645423755824806388795442314972488803461203947393503484283537554219372113858750154722701059346319740249061083498186701257323072191640812198106640323243788502583235007974280564734881073764786064398742934639847502864839302209048389338727759886237595063993290148750436628496809419335046468397972873120189284484713873504337499037039638489130697448154625874250112449293878190170186699154487742733450017818523527876337002335294528894919309532839662328949198860676168695978256379343190648665875054317481520155252054943169324526255327968979627484697217980975573325569269504259572522983133101566758318916285245653864573902915008038977659774177300307418856766528734163323000701475895700761607433360156408947876094278539214880841801063478724328992303762456168727255136899439371484351338553880388173540181251007851711405879273523908252518161875954749194129946969002380637575789443712330892435301696115536523743482404885673714551622054617590609025056869484280975621757463032190920303786860630218405659433923647516791183016855967227078931094116599864050336086522225062227159897462946511774038964897282013587601408776514776041870766590351816763270399904308550648303476927881550061266434405212345319903474402193833466662918382271313182146156537082156500827878389585214346918862437514282984660269869745245140159408535931929489648346319983775622848578069950731047738484015103859326232033438560470107515587128807560514568005161357449480874881812344546636727289212624549902800559461364698710786891524125062041355442856205760462211720524033125428647285066624487985207846056792358160326165308645140214990195564584911337094122723354468876415151828500713985085051101141268476241903278984814365888171120684911607525788716196702073312649244009434118537463461062897599756701356524883815609715471754540124501978552502782500264773714574121752201430729553750793599085363003841747283691327935840000683044626239191853043675026249806546472201920356722710444159107134919025184683507819035302611645995264895812811938336606411263043693209271514952459358489475175794026702108383453418628373386507595592775038578788208123381993617386353611055220310851750640253156844352713282627089357810342302700964388055006014992664546126549552827320986890096787156112203486703466631910722184367197525332414700431140497832032489515783086486969331208318699941663163427652686399781299572929516408434534758546836868591737309106833459965095468791629395395777941529490920085600145897513948263555068102594998900335910829486556082419544329945900969136640990277746062709599835422571430456950452689958527951907321180094566906326541912389049073761210213013674945050680372014028628548680014625120010724808856704309614601353778009604180283273822116321197493995569010014785043589313508140790833565909715603237099217921534612007881155934418488987307426890504802904767748579247752599465638166552329699702440197252065410965810425667326910489886163184288618474934768326706718888271814470602527896045656572686223947571368117125368685516014408613984949819206489480522775102693203377207209769215078457936441540343677409830857708637484821930528079208249747643608269477349107168204751744813776166355821333098426723310186296465640999834893007921585428696418201487368089797169698079380426220707756636602347930297319912032548803345879117681775864595137308395201628641091386815867827974025404594645843692261201501282333761343919490809837308329953181316071406767202441799674395621524307001081557049185386250770253324169654802714547720119180737968667735163046804591222964068876601463058573191367138377299575158251133957707366893558282672071288894856533588181534749210591289234025861247669622015876717984076075983737902936857528727880922831064509935363879472103825885353842746656105699925413654266631257176050928995625679269744996228173707755488424059472574586875144674220957864096339713695867709626638269690244876731668851691203572427406454819329580425769090252586083685170282152352401933366133812149241859213107308771986176103656987121234450418742048250172793347527229096943549207368802548102795262703529688923047499542759880480642332253166750801719788477143038260268277203929652052367585876062345143967330879145819599512511012354473704691800348913546196891131921689871119909233671055547567241237014912185126138339840293118419112215073941875197251032464124831756136102353947702055541799988301510036669156991295908005663466874137168910215332833377866517874618622128715658571625624442255770677524619768200885148414982552023151782516365082313399849140171744078113396161045524284654232683141376660592887876891021341009263906832902567599136238590698104576730816362325428417269447018125056755400426968907044229078866348917387025730243448750364104550833104052136681501161289576072330656263689927576555094635745297074227717622292135574807756733835045736766353483355920409305091903504305611815912719602248172250001592012954398425517703701167446668734515608388895520710944262233211065136151226992886505027020278711751947891383988553402611772544392926057117934273279986907221620354560394119558921271780786446562900255419130248444918235038548164316237903571364177691809161992100974846571271262249374536863266515674909747890220795621746938197890544362923864169002715695365234939210624236498059468188451692648495971956410583488156936379892820350781815710391150905013607613453998525342538510112389903628002230432352780003602041579290966104142896862714052784871260607232339683008681314352662237883099840979878632673829173965636678803771994177005779674119060700670996972398273197780821989319276622144543733269388252244775032803412029758683452500413261782470677984690333934496861333240642922774566102630961679642022817791125989224767953269119275841686281952159596699434406078964279119769915731169629409014911584832248494431337664228054284806381639853849415977514696460855816494049983749595918910855438234061825483871176773577100299627955616490962914981931707768721351873082825513258313189719266844844471116878110052263746283458560733695342419308952062938628232754158741918657781811975799543605975532267117345885563786552814934961139225968361438093796999114361778955675562972959940836743974500930737453336347626905415549723777254283654375599452662184816768583253140614732899744514039085331255615198522035825533287352001847973011713231519848472038206508962202429977144459674651806524207255917949594345855875675637656715611130693643187724851411070971331169819217742580498282669102729394717823623993492094527218413246967837068226186845606110927965038848365681066222869832714564659313844998022763768486636086324400942752978871229862575465813459199419113083754194953152784638234819633562828867093189077011049726527719414742198705327994918058602136526457875608172681846580043232483735308997006189563659075115314375019779888122029479999937935100113950055335753635743182527891308016987342733946966447886235257023425222125561715752810226445737686803080041480263242605196988110201682001318676406193910458791262095622658336795748946149696506899059804868295235776516335029322462648942252627928102984672789256223101295963169958853373126367069588899994465214966061561931181053800017004711884833794028938365176934964288080522931841078145431137733533093889319160305220720768152147212696130139957696000350841091566607246279307761312702654184106410343555269310238900494381044211265952627095992080350054229335655372002030088103892128429777804360446178774164347475448023370439317622336759092361821680639143081762922896610697097778400294671855346198595535861960281445593272919512070191896981400901345866063693307007249201974180606496887127324433778671143150206972055544084498811161214071332422480878460528882015153651205181858534267599596665773822266415761143667798020714305112259076441568282208592587559956246688195827381091487124008089343151844559540689457731330943799170711319156343177500262329576269680060686960015098900920445242134452133102086419655419110105800475720905806544230401043955975331682619898417922762668276832670062953557498123287574572565757526343243304356842555222712436158638965291960768148998155192981120363306572879087269514627163973252424992063219838726402993954808919650779200147124942934392748829379972704119215313702904455074880815958901595696774840931151802755225278881099826542846682119849217535323521591078728918864053343408952080185504908143209799172026678601197525145434374184477629838458051771470435346709261849447144558583832660528123390418369060832570628663023259096370641973621112039979146000631635725532638501930034914317436877435137329671459319086375483603599951958740673942123900184429994023633888527787394096332562562454183037402900944690417783333902683731641880476235585955045731455434156514585375515029482852325307945060313750905191619286129305391436711619368248420687946694187313484524451978317142330947265194903405822351045494877229962125351488736662156749290023232669691796846867364229443674065806976732885308044459013382132823556804010353458946893945194294748664228542774850156934669075806945661381999630116717418423041738632911355046586309952334948256143724624067001923692720336590449253820179800221022996627219252885368574550759317764563415052269197020575764194368589632933280879189164454702286331860788882509716007811316717554991789466295534192367848281018010340240180221764438517447976294426566994039042563929197563282605467156023189463971685795043742030059302400627994965893092683209222630575730704160611784168771274966733728322358490173942539878896203997293123509262015661537172276997425858778743089389528174544690346157683494395248260266440268147814647056856927760769663219568163151586756823091348388101620168394045338752692630592936096827948737411378977839161026892170542234946468936170653167904095590589239916870040738285982091566316272548528405993806072499455782443768515624553400112477209240110107376848197524102383293672842588247997860510316226307762997385048366367307820043717323285681302790987331095828969296385362865169139958643824027054591654293651176734308353938565419545450725170314814618530756122670520095763883586990336534147747036669581461682354618614373291556844536220028203385350315902291969826715132781745210020227903647161448077627360460769718186441720292383711515557541637947335446195411432580297938747303090061422179807355868390187563835337677133117635738386571316126176603461246066926487684157107742275289549435056085127121507359913536371740838778325156045868393164606951124301076734549564561640913963629223494222209621685874398263125178927157447578886252476664780254816200855667526948471056860488600182430050507884978282995165277831435372923174278675603780984011533991672264844337254970702708695357990853492577170740091448844058703401453212779953403949517145749684750475150828007314721166050046652551963619255303900489915766160438281776127400163326881090043284100298266915281038023440646821502081599534074567952112413127767627161612504108117286456049024151709377087364418930690503987068229476010199259794456272873029112589841477201100579106725833375235666113142744009028212675731123852659955132332184303673840315911002995420639472691467771637463582569557448875996751520260154905718123565474128626748425164549248233100969906452087101743053968414274782120711265188278569053857738505787092901216721942046625579786721061607928994501833349174879080449394131078502904589582930512261057997250240307688517518832362097551757601661028946582760986065886175126895001063353250553503213980041962116637353481240636786764794261429325533056654924230785650688331404298553048884683926293412400795506735085729025015711546194590253160086673849699297156664051542910963140894327576316912811785321474763588658284911296677911468740713226986219637600349084742690501405356734937689463090934505240217837553520989238966135369669852925170807363371641854647428802676534825949778729584751256835311661564931746657678175341930988388235740399787604345480986315486911457069154839426768085921146082962494931424818629197837917401853017201989412494828343254180880064503964725782473501569541730208460319612243218709500598552454620888573723997604781800412087280777188121935718488112220315892149658728585617023594122332617132606466828147817090559752390672771693767800858619218529978522760280684541496024926609823750630060468356898000640154896193880550221455323943171001502707286490944776377070848826080977947787600786763496094502044859455612067092083864081963578233003941329398975308399715215232295237945591931484363854948852786854617804576272292193623589413875387109888291900092197201160042497455232817519701933134531654531390698523143860818572307642446167111289334095043223514381710772084527378240186681799987151120810116198944198618420396410297258864458149496534257045444285967138718123668111000763143309409321653667624619623501779173836412742694511001522541959078543078604276093977977739286666782712720476586783399320792242924702693054606469193486607801039784728578874704625630712091316671944599163378228033714495185326039458327243092185566109977621639133891992674785119660443823303103130669442448958699775814777935695354427270583836875730233576776460568071197064222284136302986833662615745142428569105135264184226698660420807350463470268772344613315522494226359107054605607417970083135504413661616927188632586162918468909634699913354001960130521791035432861054138294121705694255508146793937635645570470860981977064477213691418897561006154152827257595236157466853022610963376279717201987761590943825576076218323697895687889470103087531417553549547007138193029247554477297634890858051705963550736573472517833828083740334133667586824273923006037212379661285085090719775923314392151617655205570013387993680444422878545025750129957195351516669449078828286631869548301875078495498576428048847213684061481120675930770464990357413480044553706339497124907581746365923356541978661402296136940352392756618895415459916280809242599609398027535402072740527607459519261511867691010766994633434585595336126644062624468004186971004104521044507399495859870224258844135648333192789513330425742055924823318014540810179296698976359793508194376794361710625915997100728264030757555980213559489580621889112989824910889764448168446723638124858073988303007344153798131166910429199792281725927749680294939161540407835255203046930918510031738361482957080688432440106178124212183512670950764476411131300115127085488815868818803427077246254937696300963563495958944936591385225323901594868954019441883990033420820586527234860980831232687643726917875871876453521619145909654705615123746376827046025512230032277143184525574681286050316315355861461652372847875618812255177234250954221809983969443511666722614955684539666215331740224864547476740841974150288428415635161019326434985069532749068986434536298543096372038143042877580870055648434508062877073288419662558316070408276791685869150829574527084437578553915784383634647724550421802550989515276814906374857350255875887877503723492555826718631920662424575740880698750047516439384366744117939282607291871707042287644456316881079210853342173854793564208279299929172416042786296022554547574968196192640314061509242095747366950588083172401940138424304926914116155730085007066136513555202359618582323281236534159250705681625551512934862001175347736689864952920508224870881150455100732261497045427214488450775550224943751530967502902043108683144066858956321671333177966551823759699332988306204208979033214272501225656721255059660927177674419252706866088663742262066684929007271713645822018543640993521408859798457923793042730841660840516534164899942542755786812652333139633534398454924798230931130570862811137959933879591032787792816673348769934225244271632842102235217583156140963534216967652115987398518860488592142633709631660842353202259086634792000820060767361431478249071688696464505662578966389776199213563568207230602797790442714313748631679135137732609557947735740225021377293708730913768163647585469401285724119861808347979709370205426548298728211041227510520672287654887834637547560636345999274201258247837802410092846772290913600511734296437942925402226278895746923897377140139854722815815156899637640944690081067775647988944326596576873523737509763307927563966052316316628598997111276329077368082390920138265124049068038191782649926671807566203539862275091628254921067859826827476719507919311254807163241537469900859525540238920511957921133113389457842481685494948761421902110959409532475277234101457367138924767632870116281523343575238167819851125011387408984072191892562234264260815034932353108195595170965440737935848551150130139577471512652162125427709955042640418904975980290490869342259242630397977884473835131864257742364217257046229914439943734505204565868298996353932771390242197938984705907662456938833839846947618875893716448441863796051009519112573395647773243748947621548187536304762148388898033921535352066767539201376050759928210499706380294517820192660731328128832370559724260011068922372396146753868174665058476349661164927951045617730790521978081137571971963865771582252202274683487735188760445231913521375526262092807847226957356697083694680227344278334968201182071280267320039024068039667906986514218946522129824935384087107004292420968766468264621611286667686982251255265172742730935731528164087124853337082980250319558992829254761085100156148196746929251233938390489686578848449727270963048754014422558066123166814485153966827729656256798828138194129337647249422147251158051853305603013547117112904751858206588760754695913585629999465082704071404920546084849979046667339534444720647284546781879987164646966626710047592872347717782911197396968251889434038807566085918541388680481561936653483276049259335503670339376573291180840140240904943591917592941294426222793212208114554637333638022280141150167142507614351470464872705171784938856189495425063895923857328857071263614282009883386860205958676921844828699769720356090283007387660381012186943027910124632003316977028738292107893955608509729454949885108517334994562499318410600632644771566837556703951293160291048265331959136383920372644558106283704291546228627804724617684086589741195593144912011532814307120239814394786799377124022907711407296307666979664924885552956220386455158390927526707071147790368453918860726575035019327097431612202189919577394345779016979546972112061140427879125511421696449046748233529458599709808528747289172991406878858306702616387128137469217640868651481490101717936966300658030849331763506211822894678124455604065011300223664711131285642467335130244575811206703357540622161592268683665415141059050480840409775047294265783227910471846461300167393915725173272235317232455391308695647978371391703375095928091408245621849591642942765127597607218932604787598619086854357549317897164042284568191653653264466183713724932753210681288054461885138404586977494350030574096401115651104799790309994516035083263973424517040681080569019161776543435077351893492280984937740018186951587881235334997320360388632225084643248568385150025381727008332699119186076014387374345397955983763610346859601301431495551994929804824130668741728056637850301755584843606947519005199981647133271554719304598286116629989991085919548925750432358081030454782031976283040317895515431024693373347057375931205086382387807993163629279847515620469145455930969059338074254008458578343212065358520918017142057691167833776014531014621832410864179902429416585545971905471475580889067794242210362366920516380476629593434480727317282662121575042226612930784598101322787522000747342956287112942126537789015366613866059731868524375389420925346745491560667222559718803406851631696843104195209716424991803151917875806717171402454749008327730248395481661384314363524082565179392707140241317353621151286061909026268254348260236779951175440938658531374972046065633488892452448215080470946029162768240266561830423707361913480758629845109464991464312498440570660652244789619872076401023872558863669252330557934097628295829027396195896252675858465934786248786809241713967841772577672043003784723660674866402191939259220262451308863691632589930756387827313467456500170169356015719922642976056281643529261519823176671735978646121447542978525876929691637084302350913239543107131765966331389445925449594445424374720383699459954795130666173084107260844542724507703645820670216890755386213647658640245664972502222376411584360752957462284058124458314907501599618323228170103317924532048789725352942301427755396210145287612191717989595236485763076952791091275390055699070810115246667164957755037021789282723112802985451968088880633899562593050181800990058448443222757394183903534678105328167272085158888429193398792368790981737656770689661488743518743810666520228958378532780305040375714247150112397340731169986923390854565706069664093290288787685742437118498563161333096051937527212797676647703108460270866373411485550321081852375981308825063032036938325939202536537335212734266502962066312727074454177462022667281483758693346628769184079871957361587660491444784264740417440312883005687072551365201927573063979829691269205059292561977623656150523629226007418107901918639961908413474314190849807822082686833821535994046672369785035999323022199187449511154060180766949163928082363085701056087834083670876209296655907464205208660984868765148674302217481414197610877114748568124270060354655817718079668529441120783046895373921850639130566410060932721935627546260558492607968582914222884236420327615575091659621704626693852305729075796763214990876554590941644446311247896432751009860610063033516241948940514785919410697586622060695211539848322754483491316793929675135157262114622028410323756835129907780786699317200373953276908359892443060878596061958137159114121659286025610814678100917021909221718338122992812546678279312658890509327847921634174091096559960552811313531590159373090919164198390634548035641332517714223935642531317843775337434042998267049509739198915299611061954890163862977106236052861863567780787967742181092159950564486888774482244724760309011803244164769446041372608352691413644231843816095187627003281596163358632975623961333630887908667811346941380772211055882236657403087585033023906774649704596223904252911170730838011131415851806140337179992376933313048878090698357900788364087662952769539872234596769652640166218414842871707423508632471501883072740165125008352955514392994952213277030144773113794905353908578727049643035009009157023417041063491343633968474507338686661134199588703899170827080600120735988695149669715363113966333997722186136820914053617556269325577131204674385237056755587977003223517498300311579504808882345568272602768051583332350235440149137563922814600451447641578114134793576125904016819895925202805440256159082151340787222702144046925910701370081896247471493872418389297481454111947115341486993154335524747362964506905557556835633757280131567293880137718841203779425028952800967052884332506183957173181607607166155742450869141229509087976199686926756635265699482254866632502864518098738263350265386099238380856012393568523682515730508949210593385271639379428310033989733283563407873823383593663944326023455010452113168576866051923939228078757449476141764010229814057003105456376695627978134749316719033138036996446603820354764165305006551529140499453517426783645924457193971872867035383577821869976767847364523749769660027729972148095746874260386761337809622366954715272375632454328527998973382404607942810605176852085381269525448083013709681084981878652298488378948748017810801453633972807221545761068613430731809421560945540019416252265629228029850386515042739715128593892195294527026439477231772117632981851834313391625208142426914878180612574838247166214509872576151527751356049366622441449440771478285063023967096535753138227310559881184323443039899219075737734133846943094249508172570056763586438418342343289963586762597126391329945864082109132689548305438406250489223745720288706549178810977386682111266786440156526398552912177338158391310050925993627452311759768604590576088969434239653236549102148087448035465847882464809722645558352776190902375624640295169797896846117077737553074247548450701944397476963632643889712063056002118866780676928334867477291534260143469551370325747692304367199700913600056875991280156339230148036136896323032414678937345914569271324399194980869582458100091920486440780903767188471588664773041512953418312055912201228690764349809167204683447810408765836946629825895326894043745286770378782236517301547327561611193823206588212703722342504931264416746122933941714165766795470514033007297805029950305871132669711688141886428354258966581675893139542363939253098881707891874815617686960232456204408129850224625130676407742547826525029094773138905917750733372481065643054658752170624209957039581863706049911701688625853286500529470785795881607322570065091259905133732754658551783573815410607814518554806049332511295246519032384441455850308191733407030226518528111477958658930539867150764752206009379737569399089260627278286538450830252641919827892190697401007845620735027673747458823114916581882138567579227703165018988245926654855249505794491291216802904772330198858832993099683690981728505625772040395293563117982853562016830809758336253532147661871751082394658134117430552570839553219130831089794332507479865438837186250069404348438521170753933650693725620016975433508828178765383192374795718496457773584949342207578024275710912388930245191222795548087567912396390941698699847450807027746453640860263810086628524965732622907151942057997410818579895502466232565856491508370396087756693327700695454572446464753245876366786276105183070805254728934462666957308102979964676857925527942647916554833314031144947015255859232577202777167730458862876361598958681325290685918181457354439108630903118470688498539893209206144567988357801590599612875139274636769226430118669089515481120688258435031691330302654294754677030776565322206896686982452833665840542044546993668309544923815272609712855169751797469401193558641837995689007727792564733245256389997992259064407704064732644928023410769613288387551786858050875209138626726694172934334692173833499983893559825349549249958172408686826807343097715694631921132218988807437074730085577036784226387561568518056896720604726763180663437281763769877975168557747801881022945808456804380417789207832869641577322258297530560281334307227618505797937310432256908907111723195881689950813783929757544939286923544205648513373673852497558296469460941820732390211191871428021712010528588185556294519578990294153538110676260868373740055012268286178432005567022925423004587122420760735418183337352617745179567109445786623239589864118990763753518491407157643123374423535671805753340465030408806704613980881313976133481173208623578509622161113546138876005358994910451405172535846109644472094634416766699664545244825158674937225793647478615303965249532178778384333408607830860347650166139861702688872734091073612015468443830614229375287304109361916788817701786866005450599357338856096744682941953393488641066150921612073723959925298437648097521825534805771729460095532479667416613365529266538489415278036996778617348143398686680871598117868984457535457641270495374067969258576913253908184132563872767710619192040959706321920641166310182388990006198507540134996050191405149361984180250880714477569381303781161104130485873904812546210040152230922273823202713598931433231577776995202451974037088516005008634149734497316099339713662798791958199237793701550513193723591658809632001247894407069953329052217565220049168037228227490639943379830123949859925516117727088545232839264793434631514411832534497506223015250164635600403485287554093244892403554220559999000812998442558412940317066745034534235850753568296726807324082390750924775582490324371479284801067287896385328390872031703754333499523149041001458952197872446547799187884602399002110917167055028625496700959469342934182416334519279919143628357030159499772491595197915042811446856500415982648457763076629807965473320423918337173882709581642049861184249874028492288847237506544577717446394821702936535244984210441708779415417406412773130673455069019049786679303383089724711639870033367239533643146339369269960790747217600149811325793803345541851408365456995558664107923622333276090982284036829016092126613343204835824825569775225196872187059518168251861979458840893762777034902824144547771570817624863674447845064021911549048020719927000029151353584202304753082338847537786243134758862582811634792248309627863834817733168912781640835533661710718178398819521105182161934930375423890482846245758283284143705696490961486265671642637986296792909461435153538630744954069040319412816138682586033390537996702492054578032646549993316480172033088825359443543660423856661193320038746944234606189076798693635164073025826197307713997665118794576076235896248827594325835715369355285979049239820235715487314775266722729788263643147643517093596950591810228679876427244423660095738849831413346376348096421045161744576624130764254140822933315685367993776770898931544803475598774420782497803540260488861165340128249925530160087128056587596779777601546651536403525034608577546375962923093530699299932111112276710572488676394130750248340184383024253658566964088561734111862455363809136705128814004249410236616973456650399818288139204938599460087961152959011037614588731579674709252219223495044452440130333930822159217446431495676703696778795642802179588782054131671595499113331163848382463579208927506646096963738573295582016355259107061801533549366707142976763935683097559989024279648009517526508727207472821709524188275796971839277484472306607175564857490313999343373792736205917852835915146136227364097640691465291218825734257150046093258831548191744551602128214666997271412533419205911974727700086630327892969585989676698860866061518232515166588010899780162166572032577389774534747210449724228120468734998631279083448206147345278171585309377905213178532579755377361939587075940233563899962204423479278596978022734582957209107649366300155432045283124047817206509243580073212726682618972722906923145837553590913875751947159513963365325754107602084147335696096337151274717272616977721670304944797334192039665956143323221627284035879600736742103559894418023146649500556217976238593411749511590512366997759855690987111396830918264219984150064111759685370017168227982623097108146119913111473925189894436379114974937305727322986251713114134696563231362428132071504550802383594493286316254945074032390258823693753340000512504619380447945201678930405059312930932890257192327202694874506181449362320624574827576892098921224842344954760091176877846340380266139862071951669168516362037626596436981156169072283636391353290113116910915533506238957084307263632445852236346676356027437406970306999951838548390394746128403715960945513179032050643512603269697049525353028526607708590498476951292294140223183916229330055751769918451220613568237391137858329568950054477719441350830209201043781098679113289968031684561434965676408328642648250022393368060849442424606268737500481469357916411428762716902975716924954872052936562202475019366283922773070620993426625270685744710252701235179309158117822409300022949904821710272505521267494403286644762378183345548710699365995617028599467866235858741848244258935087073139718757476179915567071988146123248821025934856127050941920753638420187538096466992016315309171388791112644147391826361760904451628758774976644406522099137636595309550314251991822433230824703361074375103838052857035606507131006320083670885397591895205806037996662233449109160963467371774748235119002112104967363530677216958041160252287228925208882535964493857650894170455914389640392939369485075202422111897989499122584856436505649133343101457620155461987491088507014340522396542579178829921894995723629237419678046100827194939698478035599345215741704120032233065938671396140927945691966315240611560152476671906111875009125049461856819138031177080493126894548004316504032978407976324113156892506877927825243782328827324511727172773435053744585494784057463089928426522494406704362302531584335441760963512722257104983063715660873034746826565867044326333150362456346861111874746524180672837990365935478858966084196501374439391165119225516600450577734275614279929862309928140287015963096150821056980744944305760218201294097844521002317258144193211459753660130426120536085569733404120632486213333895331286968628586850141026350661702181389267945398819813548837459911412673004539694058740914797486783559888413785323555365409933098361772280069928804750014313431399428513729888017020668781912371701100071004605888755432708143789339442209625314114344174406745562741262885243390898165973870063457537479713106099829282261390017447251091331269306094641634966240590683623776154014508665857079480619469514363352933162060668580029679111138734478974333961854537692924102158796324546363151723238529287573063302440937842539703029683750194330111818339119121882195345805274300151095213085765498308397861747831195353689209259585789694382742874405394254137847119252469383552763644493263936446166767207603776257340318513331708857383687179367238344803574106040744341043935626897286429300198028221967336310244660061397020246788228337116604950688195342161577286010240901173894827476310683629714877264977088220923332941348585495084334197136669420639944827981818958571749438844715076750352541792343292186189150665899087559320465452782344768807088482398537116216307182069638160304835484582423457725217431498017942186932634318796397008361900894346808700545903515919545727650400190998657140557024391785890104084657120190558412174431087426634900124143842318414548186472872583310599477562145992296870857019919066624930918724429714978257603161052482483825154901923855266377859470579449275622640682983156204985222547168994681339261767554382807540238775355903126758506949660119451062292581549786318002869685607396718782095948433964326669101101227304148080839778061939811803800119452886005854757784092205486555404724191916582434991289967008210363684189672086896839925847369158916425959734215970678633808433653036847166891443274214654714626381077551333930638827253991274566682094572336313446656005836057225423689551046340092948007803262485428338348241826985481558044868168079887089881647611373648410976755731655874671993148082008581960938114728234603096584313551120967770138098998127759360383898181798652323113924806948012660809120724171182708544785014619334464479002584669310225481348324945426188032716602226078106435011880341775309397141197841218477365269146768138250551972655647420712877294817474221626451708056453029438916547437421179342181778257227469846595900012638014818009106009943479905151991339890660204203454029443504255908206125780734534629772350427677886148617873127668621719980084495029451413194941811230650259146358109090496795129302578089575753436142991166823226631763640251537127197098993733715041927321508039440761908412389949773550627164735823654202253265543675299911044782144398406535915156458686835777810742306664903663204534535909440942045971737955102701243109027167085187189150962208236696484320662794805136414530197914619714861673994140118812904484518052303064205082163522240672837572431793603067063763242396056615675087513848272620568076111415806617519661598399344612251299672419239813066134056801856253657577200031028570403759517112751357534467495388781485093581007267365265870733805989193785908468964155014209034273659908820685969640805296751717923679749024524098240266413705715705367811552824725857052999023977539038005615724120969270934494538163103452872639878129601727383138727785496949021957297440984070900519878271578437742880352166285984170195840607015235242573614142501673857868336595638833743414094930007329711848807762714208301273775527080675559321801915801555099485557941472701472593542164601171536633553682591068922872019061915639317231754284765247305017098151251551597414452753433788965634193425305862130597601810443650950756766269589924156471010390663354016807388123850244920715675506233649246717468050708519125910523968302038523353521419334623845226653046054524108919603426471133697827483372292841027880368041667122767685084463278434006660676473553743238203633338356716309840857340695045739422358722253247119733007857950232949472350642507430139203122471616904619891156487243776608911855841415221054365006905058743984674851602309910700609153938158199462961323900918802713428677526579622050798146019562342038037672234690905118432734240358271270250933527146620314277788099126055437954512269892823808391031769547699611157158376946039530271287437307521116717094272422777489749236535731880467388518172330161890021561983441503379504161507955515828624558544496093633349212333311179489228461496169867121515159572344107105891892513844553326199900865928515550344360419540012469908444349709845990953562848072627309872587300777302640438104746602628960528461518407618040757141998860676422201619000820609542074868805010477813104448168574623010760621110804678437822129310131666845326438447776756265020179289488911118380849569370913121263609593486736476209206292997394496645764265138559927689392768093796749795163073756932095213277894228319595790895288837758557312646557838766275987470740565096165526593326435411819993030792616886974958257943988893067560068317563410935125369990392897622636918622976458029827115482536021785928825156406727067346555819608584152659522930432734484764230870425967452984843743001535842062413414063708778744011265282925844800148814132296737918916435240903483680470371204299665827409806756500654942512728306055931513654679719237178798847050520783495640126803133326206013709190700571944963604634542409864411211525501206133340470794466288663218290557741523043337504570510840406811557057806075334161083729550324146765167252927733113121723109965854456730075308354349423794760311640808005618400415715832686458018615215263218477543328557640863843431784247754314103836496949076875038329973939539929594400582160983476056168657715454434444597704514318351982210994944183096406266007356881084193458795747175072547638491276849411021908654613332077028095607643776266959053857079865890652565798672411686127976751684176976367947522867635605972041249920225425748434613119931228083443142760188586973020127973110289524171186002749233842303948310511781869975917052554075635716524424034542108687357584626997686276735042550829166441173573416882640587310254689471761525970521088284627093556223673570820481139345963818511445674212618305519015004997975818412266786106912628368220744345769476781421275091709489439741870172886765588724138240823567715720625955106514597678957494607067952063554923267528721934575444420172051177005236593538666554178133714980432489885519159529952401698788743469420828300148530622065509817660411791890199963046805934981581912588963234753158106871535727603245394523293255116527880766030921302612815127066960110075073107881778015238240983248627751365680708988571788989321681983229939451942091168525520616283966163904152335797781790067001880096258133099297772612797919657575201772649197138267992914539726222271268046567892522650093625109882761720257719381502608302249986206735554466646138599948173745491709171298539452597736355158350224395596947814264329554147574794003821612521886788030956453174146911028009209658228529924398937182112131336174562680474795647400074479004162987360154420659909849758406721712506943169653621568845175087979808942607487445650920990341867664202776199024832769630384039776741719721974650427281455515140717710576834831771034061118083266307260614795048855310825829193680559153596953229785548932998207576427875348795821747017550067173799479879284182908556271363829437664335060617014887907541867860392319592512456112241563135432690897327576100892430742814033799161575409120436547371807416222780577034733997188630846140324642567479552861580363682285198047091837494832091341943331107152413454891562526774844281532043421921997509985502420750136406997753478968148901435835065294973039825642673196443932523895864501876453653665305063176571367488042345513854823497219835610500887718713674014796704223515801796387349645550766695939914434972339644443777401101643064775540784669110477135278823956244039522892829159575235116678869293280076583981672484952847488939852317585250465664254308225624158528368491383354277042070523403661393434662716076204591686586648152523138838765713091479121199129418582632897433971996886653860186894763848800968553088683391349496575931478208149357543261233539193055034396844584240218428959815950911791627940325858452465430547195574418025494183086937262249453944483648922873640782805234497201862622102193023539834828435368384148317017034041931014124715723084968449389735698235246786880511436458332598109583514259518916598681034407393960388300279733038867273060223517469425871269554947519999875571921198419848922463292143868162927441598350355382226421257097679178787962329380321089188101939093318005285205466893177542834637725214349063719008713683719474027482864542011429073101409052265857470576083412394858331801153337268810547806329405276037044634240980704063809513655216112012918659071225006569086952617736791173735011986366050409386589115426339022326268663365825663945863621198090608357581180378742694476498298420416048134530355286439850496359559689292429957503937836996229977843621128640082196935649964452618290335763024150177561873185591264643626197155364454556322354968425721076492143708453212797985693791334334776370869563804582307550126290540849610222216409826991560384153396475810058909568965594007226579725675094900132262790651197468695890104040456462417344188097436324281825910186388740927563304638559161786383681499469943760199911040981482412333375243324439560527481930778849997482380029327929133302298982119926979657261754010128594529502847792481552766444213716619147931405921852756636519365730331518587573166835885691702734533973390470243869878856991483915215814266601273666646787543347147579909209822280670576002421440845461127787846059403952297258251240463824271035223298352207680202915473983723729931588437235524037832714645349232225998755681011200515807909686722164567286445272578046667249717393693954717301841149802288980107028464406359441336773926560599048674320761735429959535169336587567243880804447996033739368432301445432903971619062953572924263123136061630394323944295658175513735601349691049690484454901619866180494437595651976416565348425348825125072104032350108087570645693646282179775882649493807419974551649701106798026757579526176071803660771058262291833493916989046562944988945520106334151387650116170328543562031423765887809706299240020060323296447503665655961576558508915988333243284605910966163278137870273067216850315102636814019561956631648709071891279099125110952452601080664181677171607655637974957445553592795693131428098054924295071117015017942401141227693742780962231574471720090018102771763537196522085574285028875859649471609273194567873555514919314207808797075349440287406947662187458382629126361462284157495510197077737179911085499750964567494532668159793103420749635084153909270257054383156405941408435501757945462177363229576691424673738649698565983802575515494118005055697793581859827531322230149616421969264761696113125116521995882837279467801680589787570482388181519622369206048794408725191301526666460526773784120673802208376518053976397542776684549949731849125550481381582168341073274035373591207036663844482549895660785625020261826247144886497574924419252769399738686069044602413454114596820480770489167686782404459797375890168470784250796300246947706739797406299189929244051075449393796288673964383250951463211310835126299098547166460964106374622018334946450930305867731141543844820997833318864024933653426024735180701227401374819665663992601404089649458380882085550618697681760421930530636655375540696959523796604071769693905609852785412969351795410686599079681986301951962710634932197072341197165670961489178293222699299827540647844860443073701539619000903433841287095775362458583679172415070997705156959317967565967698344050368517730200825896860846245482121607599704412437558371953332708908650738017271178172026011994360705355154534835830886895104818517899416657078792099674691425363458821814278460324930619060992613633909381003217652246328652215499088980910446274902417933603876199665892407911614183649610551173831294257449422545988605153314658411575061799209926924106436233066365288418750396264429216861467359163325754613189051153339848918787874951684538362850778892106642272808322888154861143779163077656348430841811291136364738900601077822778959274384603870048714670461644143252671325821532996981478997119021184928178062203934650675220122284364859025845162241871942467165035283438856405012212214470467527488583548140931093744343790976849729810082454589662700639647766589941645277094035706152748616844226124474704542860771837586920714955245747067668935734779212905316381941432642605037121652711636563993653920450364989743593894115962684466596764707704136866960859933852825955763235665327409135978649819563190867407415465226610711898549793629676790817055691786994514540617242116265370541159996460531167096993734596592691848312437608037633689685738821676135726557692691584495746253004662838237692925803176353830989550991406016291211629414533520017278175370987617530721080639109001160346807986001593408928979184837029446978683393404081178142661940584367313534262966829948661624880239485354327733141749385387417804594407093682893504772619937139919730517057523589993550916322507942063181236695637953620989721876491589176430200503835765073627108322257985568417686868438697475230722608942809171521958219755971643980184391194312511561629718658604074020683320837565449113746091192185854081739509894695399951942473844472851093853576134450954239433056197070663021472975955507982647623204795763089318382593424628277562301949573285736626185664726276614702545441873820262854129747044774620411572705894876029853077995678363555632065590361242729671490657815855409857822866038505096183986470709052623791055824997994085237220610103837310556925554072021119240957898981835727803327404621572881555556678823230074663461735358650625521921133381280792538207567009734675818758537713088379877216616366287556395066870918056830807734031055261525244406869864236910027121505074118262377153638511059108888986971550423540647875496151523715493818793737380148195987209370917403096139253325304271408828548987857453179071849479900400683547279773636252853341304530150414482618668454467177391132968790083464198371839255727116088733253475932472051033968228814107911918995310528850221484588909572430308380876041008461568152630537303413429245676807899249230776660892147177103906128642117786261940309238764129417195757437412955378436339724598605632101977695953053788107233264151007751438324158376045465460778360289339868154696439660691011875788037247769187066595779356741252347273567254210788805659612323689570553387883212960226904327395010635252239424688413634118812239579828986442974845747443364003084591092038879348503254578715727949540160337922791992921019131215942172780465388456664145932593081132765052690948086917246370944605588141510439284538575954413466556959781324325238805129340029531802720501080872129322480614577320489421532421821400598221998605259942229179319692421342185498883045818332150131270539364927381146410166346373813665568892044011378155825935741088299756616632683491325987120046635550403770564245957737968939516913070483339264956808702516206804659900099974940598362314772750288455249571818750177363676949956234313013699011720256594957007387790974948894504065224134731733687317770581008757224194916626065174601759753353100613242397143052885305111424322391996600069519598018488669750572968585265196975383344398872858983995881321647246002355754988781782700130983617933316477478237226412434632953875896475725010198377005630978821510005448439471196631158410869858377453357195291202559093377485579937685996509195737809134992527246402356180381665035528052045222306580180961387412417606323721250801442272888532152329176226987875360070702549893915280384515127950414667675196153969563618138079540669211445198922888305386559292119159612960307717127011560679340279683516805326116798164177326591143407241829013614738585373672682847691462814275190573220842105962672328753376169371586207824692859303101631253198656851667133379433662103597911308854961534449447652789798697106133521183227738161951304724659808753146284975124473727147903045730055121858724678082346808499278266369592673600306379383997862987255167371907060134330680122779224161584573211558143160636781621462812235665365942307355270052317018927147358966749769605015719293034067380098961042443877861014991772187566735092789103844732762867517811533104239467316395084653304089939022598440568751311224766949094526973387352099990058173729270652212275263255979928473487453557359230699663114846923020238865532878750209293690315219620099661870338914484705055107918453096784226768224327198405783489563318815150710150638484851782370669594956430676555181256603979983994390253113705569476366210755960887768189451918715943334775389628454435123461454092429805504859470535825548617911579364436747840699948921167549832612653702781242869083952598253217026835124659134041963095322549403608250171447258409425041368741710069047605663133163899184526464811919815219133770020930016120555178275542042560062434946714492315917179807350351296895646684507126628024739529935855129258332102494985209554761929296045869015767356328875050404052406380212211694911337248377915803728139465117041354622122928888837267357269469683143890638808814546200739384421163641378575787717823641274729937298392666931120042824974649200747977218883394862718032519756880173028947612439656087930200828916950036773379684686429169586487900999609485213235446897795278836197927959569378352290426804011654739259447484175779835515131431258200159941709000924693708385429755570391318217687804833408430086545295590319340240195953891211630728168791937384148646307440439699657848888488926732579054203893625728192231356716943648923790489803799269835977821611560119676912053457332716804367954466666586718248145927689801856107965657108199839513164551785635342412797134243820110986384979622235693330921444708433525560499459347954020561807308160628970153041503711001265682221771206652449894163440295964402639889539423678253684379493613113607871655355792869808488667159953028526042530058823222964364980966379371591399873943962352734845798772120680537994470287718550543403136716193114769951368983724090579732796274322956288783337381456080964962291900724694434077410000512408647734070995708496659631724399648918457634974980143540484970648179678344270947680997173671277498819818251187698495713327510789278256666275386569474708590044831682058414811522665068927091619196965881456860546601270081272041778557598186757604668567604576869394992952349422001297288807947162092293888446383343484355137853717955191908872986081069245326243194184280829526208103367595545597608258760466295719796630376047796598477758722088378450794238246687222740007017219285194036514902709170644033003126827453140300193180891344418998761591115560530550921506077059105551003822632812533256782912713574855542323387862387890414512350412019964964836176075233300274866569384122014367537056630414682736184673537120116370481238906832954192037659313770919764547493296398045401388787982122732032536595464719065176723548353383285026582265463443483305339497226271576080351303649450225382245992350400309781694426432107655518379874378012493092974229664279793575172513850119426480907226980997538225924374552918213302442217678228102702173151066534920500486646008275436356325798660914449278268833968053570977367241926546074070355445904997037744410149547963296388535572169115873522339942004620237173200276813651486041634085347125687555554926565483538210373744750305757013356931681115219149368523981838188296774313088692526357728291232013029281065145491790010214284305224516767155619922380400707182795947316363028027752924391449437199461457581997224409599459364577942367159324324460203550835965369687042819284409388490703139946478487454777180605822622938800991887412262221768787048019961713597552803369482790061510716907302132357483399321097831006705924430286485761827981941218001345829423087545629957232223638124098600553175785374690293590022301167675477315556573719453881461016791893037528844085256195888748436854173030923225103131732484853653784970376950378970764230215976032487542247551866887475367422211228361509613158339023311111889178274537290860788902063915463141032530780673160557462078333804951244210618246012453478722633757495955998386753056974452938527198728665988735757783184110742728445235879047963657956287309276499151006404479324787359402813320509836859365555094263543085450272487307518203792434364036508261435572901310108246540291270110892326400827542698908240157796951327328245083622596502601236810059896416433106616526262176601466156319686442223304319627152541763589601382897334400371354314282658205788383840266293726402779060582157844250359584203221991746529220477338694319770182179897665562380484128637643247433782300910433641252222844160502308252704186253185547679164429090164263042145997691943669147146915914276414443316237125763245541826969771451207474305367564825674298802333089188372763880024414931812119178096050657417160612654181802766470583251048335401276435726229526075946397703461685411187428945493611169963997215071623991826265410968250810185134842779700608345262184279007692361485397356435121653241576520106546094386827618450851466143339624460910754595736106594635715644496069373582115886895331973412026874270079759303511910674435306297262902611977693930117884458136685358133939655695743582155078993798010272518990232333329245525834956743220340071516493341528508472830039497300389802255009691656573986791751693186806578005987392560136696519275207731982469863765293568883292542217592549888233456842763369405027709258635020665455485070884528763845086451933637155912691647186253058636960783489492222185822323149432039668858684295245865256522343803999961547681848682583719870395180910581144909131559256951461029159244469309163552979459784379209101723020120934515202844537763921354697609873151090024220831303765772564211689852792396141511129059141037862136342177617653253728834155207306225045342600338732473126393639135437924742918742572309583723476133612884653214217734042452672001781419551781442411244465010228151389049575396920046530448451190686330390293345849249481697179991156393522358255110500294017227584086422618573883236576085030701501116281134719336106127712949154376244986981829069090625384935969181062739217249893089758162271656563804458255879128057270578398364301150133734270211252477569662517700477109682667695080594664548497412221102740062795067561684929830212485207362273550540028081249266823159176006811149331574301406008679388865613116786620247051993770071580712720335849614053965329252682487793488103649223156807502395384274807957279111740677268706367653048394878173415527773373626334151727446337015995318013827008375270246314586372499924016788418043474627051324649875337910583844043316617703647292533221922876175456053902809479437538306057537230906956158589146110325823845367442535529952847227307281386235250330881185680787240125060944508326685383664467200125411462544728345115722977936454835415664861125747689558919505428134403340248597961230358208777649611693679219250200523178594226766345179595849571700942105416820205839113975843893563936424480208977288313734093574950376894848241699488010186515641094480814056816221267261361942618043135569120910199578679707296918381481475710700410461167244577955531073827017303826150488494645476408828867261442732603603666878455511410959217330337750018447059023628344155840582542776285071612285724017539345488861370194542072658806896312669881778161367349805597625298037726733443725786628888234427422850595631144167879593993269184079278182055182520515538934301798059364209944163316910634258021790678226184922952754704149548217885085703163794908683991254979348437938837708265972955464801193488485205998921356504259010700354460768073340173885636772956575848357236959410131522140849491654330399669776671188210121208300534165721385279350167150840192508375049309186364197482356378846560788984853456999757658883982499875046244992689180286120946393057024822843919881242213769422402293221749595111173493534640594130051309663221412189042862498109532122101547834375087114714168992361630171710741234324173323229682905410820450540550829539138490640155948378227046014427239010876863809227200844631276416760044918194589583916417434649294145876896947450983886552231025261361666087337061575261510429282930094577146507564904896871608835271564056618641088239720454154584160445299549373530299964522046937359488399908698326201655136608238372260417424677863910338962251697684600653121638121730424970121614061689666398565236393778146819230032222409957537464424540190946708901044156830186031543424613543312589709126196058225093449572729202454255418053274587654581404682502423277697849152256161343060783792504935856081449314412434835460017864171419523574497769410189512051033157939955777139488474033889251976760835617689406551937323170920880278204127437946309211104805020623512624220338265335053495013477506096283795016135042038554503200096464251088060771289267786710810580529496979606493243722513164150264761739759313383183439133965332028726626039859896243182479677436872466244069551804258326212656112478692842597747775940657568223800044855992670173496855428439194636697880462303229530915737844138057758887621318066123504020496877664685749946019473303396043334759597570783151287644496576179097919877668701608826104252656437616951180489815665463506697112535604282777985144142643010601415746561403722530000338883273433010048366777704932842009874053667074013574053125851675762268626899144803398202809279250587607686700366023035201816008484014590118652554700513786120844155727193962055455264098134932281723454844516706442840449089009280136505835543563305638502065583910646830820527117220174161487643164224042338304068028753753666160433180121287019609274733029930003306499477912470238366208765382789109694379865382413886818012776703152467981659969251535892139146166450757526693024305974546026378420544035602303975137245882848723332420568693229236403185305317687933584985021647673021713704155608214298009596115449446600091884966300521914321122474119717417551899246571249284249303416299749148880141420659276273269478404585987359842288840054872119986049127031827702105253008084663783263451834652267887521145782016966731997763426152292768728665415574727290814971931776282638034759488472094500125173144922991686208317761700628916044524693923836990389655261390110829769019193736087244126742550199187278266082330988368512625984582800461024939530951674368154324329227583734566234352335487820284428159177244589600108720679028436139833545599888887016360008948741840428746149023125250676104483834607123521479105733936371254633350576076216146485280772346792207699256166669962380821195197123699136719279143668855443681337127449628348512812770972469904813599808528040830348890496745008764497816307135298357104177897591745191194826521352736062003676315486083515611492475530121014372118945700148182875169956301103710813660917227800888236286946944409325001875699183386120693132069794140985968791784450591352675796528433040396629177189684137362599045460879668210490804923876286062327014862862291219924466506160123918030425162132473177827044905947345899821848418512004655452726808964087741335010398596956581162510213351467209977991911728425211859979231775931311191359517613068376309136250624497570822403375624610512602804342521154192109017797278554227988961698647174234190968385748868405974094330996292626836055543380210967619793987075954785109746039693086629695841993758911581238183476153347700245140095841739109930995837494924195833985041932851052183379814161201552559938056460532488372418598539867569690868654313714607779487397433157126659446346525453844104292493055141393608424479904408332219228412771316946732787870047387510652692692170023006354230611558178340928833118234417121926423275464352624507208048469653452398865901059627080115142674488503538195853894687031699778729636225379545474517783566191259351392283564661789069236495108466674974841517640922095843398752375224650214684420386766680303245379199038031725244830488642792076441075627790657448325589408405849512801635830636019798986164848927039403556718014796592925754945947358792911871214731010144769117657382194932908444667951563262574578987658689985657138550050268543982711653236678044333176124749203040439569836092305900943417223175354723967475403718301286770514143273387367400179980435151359111813347855443336909846336501172501615139179243997227725415774660777602943128601583352687313964773957345629892577967580794441287110460381840398241795315903356860381170539889987138565807339405306075682396328865448763464907973483254709291527739237203085559990286271837162174728124140387614749841577706308969860144972332010083766147874044103546150641679039442974356823000737266937821038061014390233796101794909156787116575863814644831170578229236320667239800023049257439220973633687046608413079065538436259638512096804210723248211759577987235601134620785782716696285070544519206371781096285429614553345247677018034221941374668778659234240177117229388130885279571138742530907883418176939162153449850917994133081470265297882982134775662227653407207810521160138763837254369291793369859463508616969907950271247387129874103291054378515064550978907619482098230172890711024439215384156403007783271646192902314835504424738519909291508196083030042711488855184698622413127985220462562375486406189479486291096276224766724125417356029989063915034978852664523370410828877582453498087513540886378023893480380205144596600858018669178064051845505733213834114458262073853430520543101049281131822708226927173617402076111550872758795056424349961529868519179018122866849723871946181490688273919149362457513099546031404659573268635945047421934955110139737517658166648300634425001482520865166082808685703381700753084199146037262438706547845292279656061723755971982468775176681185557487552705881555463005582748110481292521249682304507026218895725189136540361524259747744774408537026372190768082211360023265855772718978809295446770521798557382106240077718468107602575283731771460343616532775038826835059022176105874024105225303323573221384698797630825492526827061272144642223031955456390137484700045783741783808978397083895245009953725121930694881033395756354197399851970881854052819375823902188984677839788645251720423168507349282744798154802601994822787056848782606183703352634123624767656301652250450854261834892316378969269213580543468043434238343445451687868539624056820683596375265547010574353510421231503247395132029315458938397302870411211383380080985097109036098284947792344215915883606929069381501318924860683936465095708394896560865993291078642869192426679187002145299110851158916538438738936386899734300634051261607100901691257480184096477725057517122186408461839605082455856902741196464763368847505556100480133571333498808752111489135206629059865003264774720312343501497114146355174711392591678914313121969985896041058184929555360929555943646489430478027180034942420180924759901851465367386165974220816286762530574992922395020523803921584395293438303186808383230672993562001419787674206120562973022783138675650856824096041534205301026174549918711864378017173249425707292458064372234300381704277068356134813061121716034941360218158999854896115281925218183052609286589501428370361869995022654155128959779937910451822754207987629018908544021259339246510933863682005304489617698480768419359170524621445328065925687700793741952701136407751790949157874995229711726249186045073566772120984719521626833261565633385080111580202748490370621067963287090348734920980487128154810559494484829228213186821885461473838398589434100445204164073846219744290328712774387015252497148743767031851117266070362414498199151267361760772832105966845905803989285673176763427102952476461891032503008602187490632216486027606726070592930681051872682956597435293788291119618194250512649011740345836800070515439650547993349350401583785614625413991438154793765909292056174835098717323869768676894116096464648618472424890001165459170325880757667046764807033378807613266345438271702652883976836363609676624643106443006798455249842883603374813212347844288463775033784837297456144708839842457778499820421517213865238733386290062659644077984541444563389167101666185854386806609072736209957599600972651199324424713837928535990304225495257357805321414694828998898392534409504439042574194289177907555693181103639131005178449982158534861123075264975871439305069404419595190130988462081481514448371727480271514786362517538108819740183094830159266071012326161081591925515127018227507524930314112178777573897484981220729089481085527751457891935742679864976997063879895060819135086834364525668515847332914573345501814899700508742468693638739946129767756095994371292650920352834790946838781992356228162017983500894484193711909228085806632353027917112267266071290394764351609356834338194548230950006142670119574030761844555577217737840592299781757146812350515923573084331521113321585059608284021832799281378345319548575923736062783352128973395088730690753641213633388148139990339189343423312534634299359370838076083273254775001617277793416776525336823799487459214699661414750210360900241877442428111759961098059608472273445020782861868314533576197056151166781546148110539320776332731262443918082398444083494296479670821108584507302353347883030755997022487440977039011407233021769435973037835953344330827835081887956099986252419052185363460403442280508954865033050593234533795380828807896315219744892380737163345012948254454926099458052370720359119215304128883940847705473074827736645954749645613649418365238009981213394594414987648399595993397397093541603364949713312783246539022700245242396512664664198200119817342557719660818633246662216226137717631738044868626213885119295741425622996430252499924936121781853702664025223868298235726017916402977487444831491445809369285536404792945107713989147458386908972768217172271610976870688613697020075670695555102516728415386887086538295610367488015623599531865726708895460758671617895679719244072506382389458783385759513900775484305871257441988356356828064188514061091032988500167441838104366104553842921381101872172719036643008816280248100238052331621631556220503160827313328725382296872500383429336309208841693464375148423113841015912554149862401067175503842144859641713246083232181464666396413937021514019129985413688843979493900143685353151651765280186398842881571168483520472470627264989706247020122163757717835969992467481482287289193610437147338678528372500078119784086950843610891307558970836761618842524620589180505707333047589356307074222510396691293568053279711617570780426107761690126436041597504713978874581642525023916164552428125053179387321836380763976101429006494381462662224947979911215482287937795754780765825875970241636388766513454641295822641915329405680391484224738743167162976364911233619247753714651491084918554927263662928631800668315275152446010292432648441364437267250793254656899065190021130201424557132246131468191775181149952703255555364473999800705494538134193406345544857783988041571170009287559198961916322215694685417153713492614603294710163530146173351741511147784425074425647338003500364009660704876174789934095213797711695879814736757363177398408393242359662448814816520743905053113416396523451078023956576837851351273997631229352224068268923629245189911416914444697774731297838845136415570470663320511449285831170976208532462692608353825716316469534851606248509317832317666215092097231607349107421668442764797066840348022571797565536589256454047334219255521205927112407500461812484998461970660089336918785320159170821845068119126964030663344421162189099384589196416538922231262307192083027602230846244947306419112852697756805887199702806194883056588385498620993515143048904735181329262854201295909883433568587626525647063970117137274588724432386731689743677885465601839163500261812367560807116031765314384669140057178545348979486882846059994146321484807267929820894010291750567805230940769030123413061974701151954702314318209593707148653827252784758834438830202506559758085339204111337038844202305207681932363799411339754025706952481886931603150470065899845453141329098775115709062938264099286163378762886325746228239142476367039537742642965371592533447658654672505490464332094985640760392921870070242643719770229807101953249685864232353512816819003066773552423894684670235964481299030813189435515369777538178900227562846701638204013938763540589209849167862181624958087579138804050144331037856254939034615471846831184479813668390157813475455036151623319917191366804607689896003183050451655432540866260739573093830212859061165583156843415524282768693794910635384167222516333254956951529374470674485912422796325694515193880949739392058398668427152594004673920615862256158262026714981815631250458769181007509408101133418649713711473043701930956375238384927667745415744780136430980848746452973372975603496488511874340803888228711010136506332094976466949587930780679412191293212738628133401651912851030865891666540603296890582197748926305252462323216993553428447308496741466266764482111718143879734605324912461552536408197153618127662345106656575624571088521419991172336392046551496010958647132315040520569811440519935701111308619843265700249327006043448871698654161160478792197207165851188092546059221749347185511464587545012088486983125101712143803957412285470504560254488323188446124329591438318703437519420471187296154416488606792128768491287606002317990019593196335934711242881633126632972069124948624671757459053700522756875978474440246869471788497583348851597776902713991941807242641222778906156785376378315962287569317666968426327970874333523885193603826806186949733929813785078733878494904911198242271846062650713521905988749807380585925709912946827711946601913489342422568133927076383345829406356414656328959729552715118756144500113405103996525557452133452216501073908088615267339489858115441050065425874957633905431477386679615685616041172644807483893470948098240979623424181549075558287408452716762403005036082893696613000521971426183298584523595305184878741689329160200929691140912091142314112657089583662716414454392857736875648526814085536122616476550462375152171409935523583348178359497105153397104461114248322592948213576805995231492645169186160368627076662727517273316167846018541696888693209376604528151919115434617382966406542807039417993979436216217924110064491305083927365142086007226284082366882884039261916560784657213265665548408812483608996603130320073435821480372262782491875901726447780828347101686259260624865073514765309605651909219658103700441422036745762574706431368930748286350931232348589871068696365687326886799770516122704160776380833391149870196787929712430390768940101127470667227142748823882416091802155730358842656859909901096564092181138803390052294235636297987237369638787671075079545064045975674131101115600512088532061126411367112730462043569770678046557721350325025469068934043659867360991500303009613154867392120006332138585303666202065476873807289732577505393419450873889777813980262342821243554918196835844725561033205313667863142567260498407859711419393237814174222999238944645474656806782627491946215197286035933983488656427059142049221907015402161293521605119695607899414414578602921587159661112905264270213712497274192145202308162516201288856164882399496059584671852569096463113897274250028753502567996300339684900342136607798495109025548161290450529643450745848289495536711878039288394296798088768739792615399157177099990530528657898048515576688225066206627220854414996145719659041302193598100664310383894635330253269223186218697140140232190988396539664015392954163115144527556571933154963073706935585239399052434184787669916233940940525648290304765835965148105790954758734600122163988558246847933522938462781224118172908329286925289264399609697170492512164194548992350005385859050183644831455169436576941296214798485223532857861129449937522408655506757483078554626306373788843845995022323171916259900642341606852734938187676897922208271249439390984710565939657977207489180395390992854868089615245789729535863661188437704941333908871327768906127600221576817171774009655583147970077350623039924797158422553377516369065977436540180607451104433536436988931682207496615555439564508039248758938391607038109386392130107160904771943338593764376218679766239221507696598519216954628663843077872911595944616400542091191632122398338302943830245122206375432836638085889584684882804770320099356043801795774974800329341994524778338612350790664010379553771087997443187399928275200208400208437350485065727781159782252805867183369184023381202404854309927635939629612243195442128000100299735547688873817577366258289423341186078838008072965554995717061308365128924821574051768118053657883039035924881858018753706469176933365144598074648739969408608266351530773273305736536595082540201406593692870890443196071577295530309411592573318731906311923577241932613245712146773775300357605974866616870886436831088777573717908438276787137617550918842556993343690344713336408694381715679434329855580356587006908393703236067794825846845605645149506472430324374356987346490679529568108939781386001163915657966406318951492108103840496018046507134614683735945167373897995157493313841734970058647621522510251571747789641752590999648888165782720036467837056322301487147014081841312973508774810066893053207405094386853570008004773217581128787041017353074150118871500472063822660844870515342758394707519795021890239916524400763697545809911320713793962619128793597777175179678745096943979177914968067579689804560695983931145751461549537894042110933795510121061091123588487490275879454348279358394483591667513276144731365152517531444697044386182754527368063715695744421226043695450004154892799850172662135854491976165633055525575829170290753583872438168873829581724323661340538420953221581943019591904277072716944459940368072177986097139920057251649842338972701505242725052831720287225093479545652604677965150403768178735250183859879255217207071316621995216355254185428502151232988407935265887162995210010106976040012874685383830096288406503107038306997716110565485616454790594735070961145105577197680393152970605762769295251691650821244938926825785039125968126546607799268167049265579873661139690587967337706598271558439414532883567612056562827596347282925238326373585615735661365960260499087363505050193877046631624158874803021430947001905494004718255410186991682318627085739511306159321857539698440385435029432029790692435472357428419278473598428000378430797610638407215811800590574203703004445370303905698137410772476842057114981767312348570866065069179219087943846544289062798933529438191731138942977948048403668858493578358479046006994296355707002797570748769105717013252588831827595151570938439258504960498621516118814253836179615409710316994190846823171275733161325753347553938824566704093001421571172230779895612718159374888293548473966250367490569926034884800332052394805207062476342395280273631036742590416553939219299810810721904696483080971175510323669565939101304003079262575317009807558310013668580555780568066163150856849381421911618580733002870812470932818749428406379961648421979936732839763529661379459134707136474622357815251894714398458531096821417053484384563852735506443072557478133217446075328159219993265551811886181993286309005265658576669762806119201570007173169057240528355731086801591165788542563317545756121797768192826243946230945744193270918362221141790978303997295324606332069312348692883165569076822719509189516281373845845794734051497299741013105606659187024036096568116104388653702731196424025137269175270853014794538854748489696165967149240095099439192672997528756929139915541930938018797587581449405491485643279373855871388508039068763825895846072333742851689530256698555848104847387846565628769528104354116191287239562386776124620108958957295956349239312777369054331404510458885189860403301128805993244805778969340118994497101448596306071311988833486063208679243169023347974073898879784871890279647561159213925394226529969932445085551267416185083581830259061013269399641492328553658357947725583550940449412504406050780357979519435077776675411268043213374562746762600161632400703360364378718754273115481037139541265547663508035217174893806868400539272923937270438557711969438799896543313066393136163654793757591324857926079718269170573367875136491620253171232029481118015604997809386551982887189656662431639669057447786554684202862919016720041965265208745283886804531744854461243554253910677248243660039046893363657449018296895020089399372926784625653882537342091267539676516435699079381306503948415017189358814144815528914874984595861919641788275919472531490134655033738841567541527774472707548371848310115926925170810172863885240639273368023601926658858310974808851468727505513320872141755216966883515071053884447605786384405860052249332224827591573709822411367184325980242821497078417800303412705907380705828102920529172725336582757019250584955608284063601910098455686479406135007753419816551555924633063230042521169320656341124096450790351301515621976855718741692690834901344840503750485381950661678757342951697519033552714942994793801935835721324443937103115391743680052780012519717270258699691723970308778095638251041354456634402019110153921904039146109227123648977244114701512126600248152784574008620464981497815512870014937226969746646743370953286615381352693682734507066712881208496216642463178038465558293908867540069010311715892603633081841851837022547249833157676977017200209606818250491484233082085987595990664206246944806428882448689851938312260719826846901139343600649225776354294418936024085880338587693686647403898797468676599856740022575185591443481209555379149247083029878350585564906199529706007239761719653934114083115244548445623991154675884178245208503427966140390586800742341748411332792816996876620318448226041199406178282800292530287253783914631332553485734680391207475938875420530233050609515815717421385883431809896231237943560171282746935360700485011131764642745845596433388555721183053977235063061658677675303949544796828359119087731465680820481864969965957980673402399030969823134293794199376988502366422275067691022803389867756776989276527869525143032296933922395425553945180482787491014243875323308600481742075925210884010396566811941304567218240855297479884390542247638689536307760229216622692884408926461768040249184432008251422405703974777353200409353220534528487014354878622679790748841692080962812112522879330378716045688047939255939730467493480271909377307774405135588758278966328610331357871433741874453875791355787166077321978318383575196676409466582905396305006869155942914512340232672532583402076139775966656351688753606555127496156571020288302355255621330627673671430078629442284713530470483030241264264299653907033734827929948186289484904470150486407656722853100319374511897706768057093182976703720378668802939859003135225619250419288437318122158331209344511994324366113077715609045044011538282246932694367497604526893185566297826276560522563766856668817123068168144368110512890446822298424015850836900278596614451067576483031645767097353218380344908242212247172805229833842427658937247087539156986526076058674276739394196608796622724372233194563980295781917730765430497901567011805139497147001481335891824614764129842666413585942857214062338993517283416153174537426697562311680791513396941725659603990494741127240145800984263762182628212858197714979759667227129236196252617888423100114416468065499969008271498607724787254878493500958460272643728429132443557993967032917565234473095241655029810492396516415673360896279353259061903916744039529057066324072213171297882859546633954724523293126232725781638288896869054668491017053016794801765197175237210952835206901526554780362176304274587956837771515650282187245388917778572862141606617360497706670162995652531877046102494946793033217894414563196465365563659369632882486595968439737851583588620971099862011376272418069967246875119562436695243537878426323936167272425620900741749966595919490057563958623812535711225227965964720637851511046906343003873461192180497779239808127282556949783987762939252530623249281333667228376411247640796230012279128001865502248295963127350581419845679892569336283075588738786256716435228970851350882866885915917423323323838324616513189183161332532640208858413020928170882468313215636073152454243244462655180126699973910635409827947893181916387496250923676589173753689199598594920863690788894801014043234113575463590501459636409500194013041967884537486024540091917978298469371465235612585331675237130826976170706637424028342060858887142712572838430672208467668377815456455946790882792787985940692487035459157917439313596979534032331118043807812231660250095834794427452963427606664225434807402264014149265476618586557069501984050509511066132991428852727545041823370025338405351313962283967384056910972498589867446585576581740029384537740757226526922833677843751056329694973167523991031257441693675655860293868458840574302644647440883549930687680948594550812820950575505054132718882795312401630216619601097772871697494393030125111624111577684375294045327749803304351353377229284981472350552415725474318097869057567018175820964956495021380232985615592447500205575534823897341507638669901397012603366149371968556452972343062202145382064519746166890812019159519852306205241023348161351233082149190173344290747380190832318449943062145289085066883119144499952191156394630457559613618954927212304635770285475088914027376534333406445005348381673694711352727304473200085477508385064986079619554631406063555376590824031000085982054741327919836609449761144670873946076915997559256675627883037078610471151746215984668806815265490510133215736963938160921357150757461519434946139024453095668932986910763791324148127721656266136379065741823855764043742961118711324238964997507212908062608464845532708931039909070934494724913616393914670175532055631545195551481290058723983483756146972368082369327849125380565088914711033691165914863527035804199327814206130161241931060746291489472664701675208140198407668388915579714741845205967369332662177273926013986974268361082639711817255386706884898273253111795331897126108925613749101535586674245965755357851252319899716547298588832480153671175608917113859201469585706887706753301129529061295636091704138906135605742765809431456318298770944693475068180079569485956825788486330506952056543867720592668383818609748313217703704299975113749302623335821266335846892678553405063542051841403569057616143515622894188370221098526557549621150464813878137541901669363108882147411463094848073275201361844796333654003859243462863107106468250588832006253512220843943831622790139546327558038178422764306326330167381904732564228058665564960079054429296133711213953878292612304440602943678512346787495042668577940041080649742468195849060395378917268226793842064946890875325020287302167859076154689980610663279408161995715538753085140883369389392059722118777386658001852338375336556413260227050880371623745671662750898346517075119950985483022615543218142723234516306895577344019442211473279846168140645678561562044109995250924438913224351941756219143426498051556062000166272585416386969480762800559421461820656204185074766309146082508980060617682605835330528045778537981475726322013855973139139273100314149737587793509016919223001791679815072590570790986078615420282960734014460877794645169981322094227366996413450559690580842146310407789559979074772395202198227778252047950739370631172245258141022564109039757712184204327925539520358645292422373949035207409548504012322398134389512632203288126048794712378959083093666965967259183248888714763317422757763003861819833796641006934489014765364868575381563219031555424105902032291862399880026698298655777012131693868525982891784976740112378863204008544331882753284166429308004735678852710434348108432191060252944049753510146358603390365606698186191981389594929361009080000353895058129882716637391483859163721014127733287057367596975006253829229536995659383099449237743653572260704736144201091608583689262335652871067987184959415297597156887255753013539462690440392933431451432406546823281367106254370098451869926673385667961449646228332874683711338905239109952168797752919602257385479118458535805252893445314998574999740505506781354128997171863393263761078730789516354947848903716150089809427105781680043743583339652416389996551551170202481264192807083517848283708493508335595992708914537046460613423038725998537475121867655249259802674064633757148770240290891862310436995909781617507489467641214169167808182264470787518284360278348776900891266298730551239058370902451628876335122724024716340477388291562357501226542887597431208861290434539590237885848904949872568881527285167035769619975470326691383854710797821902907693085306212198029339537445615550025105284824875195750357674832802706070825820037846575919054285563781446170504337550066119280126262005334567299112358118993216159043876722527162045536769998266050876755278309978023627091050465436560908884110300759950659494769858251250802039986553075299382170914844100414370585394430595084301457210287033110861398953942262855335373143343593958469656122939348331466413571854024254315630950504745883950567834584690064033312897239803485520362807033131123920479526582637726179560769520941544677150712253297218498022407737786944588292508768619371997168757024856420680098020148782162898379110047737482987716729842189196667252643047223727140096373340644141151133818236143914423042219203148959860129047296804279983833126606792884469493611806366682382058277284616211984998711322142389428981322205163740497413914564657908666748097649736604657543579250272241310483868337136630222301348224478463999380269013679547952171257381324779568216779733360748243093061175550628912805315021513622553551970810267465971937664354205790822924663642405258381845231220652916443802010191590589165133010108322997605677430666523111384843786991246088321083233331969701443159814401834254743615148309630914944209229094332998782877807312610158366037513182059282722881081124111417955063749347010128807019653839164694888904947091006172398303973974904116084615918049085575693490935604479320431357763232174379576829695243957912894143997154699427203575617044179381404338134038200628580827694672649966601061348107183835768542867815412498226753617938784422482948669464902854250052885027314706742945420906177924386146238893062290263506267637448634594920235148592766606895276206795349366019631406441682881703069641015587486090423301744826224891418400875642957257269092585727208613094682793079430406939585363439039018747441931802886091355286604561918951899919528706479487176558534622153996678623944406045344523731688363767603246412621339147114348789401065654976876441406235838082753755977951641372480017410522009467397729223852510768304983617438112820659636580320823567696406014063876191771919493810315740176778860236229424013397978175068826014143180070126741872634024117905604998836195948270366490721340196253614553653944273164032519211301905687165409578643282993917977934440124085448583529951421492122354661031395355214996637830453937645494103672485072461525379394744729018162739363219671816206199727838878735992526210050891464142904879702595782944679496418627091533764631401770847146172943957693023176275728916913439793504213076587427847650596498460324964590388101188242970349294599657914917423265702840285952566950025136180897170911102244860762547516843002261924683347228716501562989330512870738922103124088669338945499381661576029650119765847940415181790921196303256352194861352643841267945896884236137685540306834599689234283565038365549428348945520936795231799186106452111948487144785603558442267690757443240652782356118510657393530547382459673343792163682393517364747804785465029073113685182721913058068627422297910645584228089156715631234738892464827336773105185281757363512372293693099887187726402261616595747413222958085729838900798792557708771859109074231634767968095103788685565609592316233800656733579056987688736526662549904096342198831156366925663565662590239828166527394011559478904674626326647702435218725693512649843631468982503096628610273171486630487420609194750400175086089068844932326136730707096304493136380234748626998108391836302914172570066528437144949715487876936047979927370831071236630118068125618102568859500462776070397814309517529741463624988322241113339907680192779377519958951520235443468160929346883324205281169121892261401721335326719150662243756110157241774358517638286509830338626709804453939129109928638774965683065012365475876493115509696624277740828339302216260410735257742543416529646243890227418569229566705696247017096055667263184892042169667284139480205068035742955070415975360158014370706866619571881591287880713265958474823492347708343011852948663635216070039805104322197145756629562317898848630735403898597935445115735261227794048601169512531323193231265570747142124868751392321921216486291113560499180699245316014186486680236828892245815130736335582026510589515738804080236309660999310291491899819218339389006643464789235013888216175098384260604215455165295695363149475102229313685144097258189912606305417160409803555397906349415769191584965997391666651869430458634080070317649774349024359123730060109448666089543442775348757091498630443721031194765588766883379640867932905388739569262901566752630865930324145294936337074806889590844065919661739866150598897847206836203457962869105528258456040696725850574990084573386665643941621051875840614067242318047722080931972287524665696176401422693454578116717010727605127898058211141627230943026554712743139393433876416938223480387253672649927258499230024244510755889655675453213010067088322193127570303050188872425197925467177716910731702449081263936359432518836681673122063590047893391565900301200055518343179898869778873569368859041562447883782438948451905644757191054637795547592072892666943351709342110447259822366259640269184780125386684203079031920634189552585139405854506110535279792849917970251629233678294340856559506335850256021492422671617162537835699964047854746966128434941301205783583545843991841942344197650065085201941941805913114148730917515297445481178424533712428118903685638378173952947909696612262363980863955558738829800862613481399720776524923839054980617656051800679575909903487180267679925637374584630615238590840021682226547479959107484713443352605562926243361788756238182277806611016930714116353394813308718421859794155217462556374493289275158624135766493904178354746415714602561447420414108293348748301317012346582725251560555449459386104076224433033142963426461191822451538171640626989140260286034509090788030248643580723207524956457917902793536302384057428727132218228119321174843703463438773313654944368109402492513470054370113879661944733773904665701889491165214638836398871862520593581073851889596270145957494322602025636576270112231284143934692944569640759529391437444748915714653765258959105288699921280161778972158754259064938009823780887764574787230778977017890907864584129279783104343209068556330317199690943545445831210755243206408681156314111485465458542276425478064774073831235631858961062346015428121668220346507262596183463135842629468459922949413559972022362481344331135865750188150628408588487674002812788547892610824360472335973494169490536433359218430151072585363743397850854328756277357465229783946987796917078415469147674777175613321222048577829096935811056056686582016711082071153282574794836892808726476428684527088647038706581048076498341315032175765673284141328152067861464328520077060914392389357692764372371469933088368198795536727268301784361456389380384479350335538031316617988346928606027281378459768896641386592530296453923288124147456888758813914398184592973691019914720053801056440192368979972371152789706813719810955619303660292604881917848577326381034456385721671311269090663697089233441252045158934841363078659263786183919402482754423479329955945628179261482609867339463777422633250830197948881731336809895485685387358277909891860278666191402542029592503238031503460829583008678492284004246341649563138951811197040706082946329164194928976248366536776627858347763706647766902911562455721740900423997718581640872170547872248263933808696740410937393680093682068328411493737560588092391597425329907586173962707509641562572869141125128881152374377578077974683974806088430524220299147776256787578351599021794367168584741643036017266807882436678540003980587123892132175405667384287412266511765420852187542048057457542023775919523796418869457545632877675018576158459445945784917719697545802007612352201714658257494901227043737366663248516951252024315746533801507227820392328106578425512126415018690620358306670922756510311493752509422130803354417453597878748434590024204778855971271835813865984926114656048554258542659629908507599128306483721919783609870595255742346831317733109287038008327240969020515054229966292113828553700360190850600750395806412825838183576657624553501538322165531796888193329368388418075086106355921257183476029824128180125104992192208577320191405337134367485990508224483180061901804503273523694208437325994110963349071394863020659515759548134087196297042369752974971914919608694082071928468706386350053346147485168183085315168957876873058142183464098531686929398433881914398759571260323353791121323597559713964822710877455347170397504708913864269050991687668822985093397248418499375441894573122731008576473852075855976616675953117009556102726429338442696180498845918528366521320648342230521671709959791809877231012372230872271350723679249591497492741027091371969036125890553309076514630953473651049882959199029216035786153118946309766391795329081071042636291318184684231491277816942659022413545617168567960821832326758688344289971589692205703905566709498593997804825516057541251875641485374568256491227443373901850752903282752362890264057057790425256338339644133998773474779233545665724985692636060022016813332574326836003049024795817991224380905367923433298587485871221282004451148522835667791494278646032214888044321210127045386334744957728340636493181468828884502893546147116894740127328248128161510752489534345545400843065291884006932568555528840613344485891445736154109701923483170628018428163888023773764459926340010139427707367930455537885349468110735863960750701172097574034804948045662148009238914889961755772638488691018845474652978410967188580725325345834474524950493855392354962265068197221432862777546852236556177445827258354408717213632778215008365590090756836678636618370998306244432767466223898193921577117379852098497611538589833598390936664896821759536114294465418832963607809547738694578923442872627950477228594158806720246064107076169425524224749538286198438018360142053375289276518622410019377938723074861792554314525303666707811973807201279287316277044933736657309099772492896492105578604093993670031481323839405530467209169316943384947772640169062578719170259670174031771071767365616172316640803596863413777026441044140741910045840726578974389899969767010376471071113366709327118897373941843759848410770544581089691189302231486998877872185307757305105251539569301429140186584021236841596375906227019325996793742358003770833274450873597254230030704091457764130923276525714934214202556928835115338151663810403298993221319976329829131813354972234788957262873869756164011394896447926627155952092284360690760712005102302143293666275614775535940184622392648841479202028447161042258504293893727513096469077014988119454184554983189461610503951800582205830989395720459169942415431845093767894014866917641501037772007359683360494734875992658548939675122053800484247965630787106220627482090509735169719410333016649516336884406646852831591196541387800299270053979875969353608861256981455102732114556853342206371976173231219364237446047054536306752968242075026242709560883663959587406000076317386425587927908322926550191620682420951459949246090977056134005816433960180718199575397924631248645060530635461392782548166680405882929441766714574352537178919602629263475538246952812968146911927778285221868390753754939230384236779935415581997579892874672950600833419865524195377032623312169091412991842101610152293293675745433438577295999551572515986498844261647023047733768065869833987737281991992145944429230381751047718017142159633907306892151620589821708024701348592735322904848178824234208979632725705371642177738815865857375579692039167589106407301235846676744039725475366600733389862070611383635027062067511131593892313349819778650296729232672626440747323485586103083636884300726531943176243695707548801423852535880386363573969423197877166921637712324164297280989520456037931842879121750885358797314516503325715476435055150833327452454234766854913637715842136522445858307475064870710224043564790623260904677429018263480163828753639932948763537636586725264849876928816785687781153548438434228145150763996233014269888357710839864372364942535546732272190654465806532597648194177178744062443287128117384335982433545409615081421592385458830562678492502001704889548062894665728578485423325257436030270182970268121391441813494554572083457548897779063529659833236317536170051246703080212068765887015298186361308303765349408724519885370602072018491053967301210033521439689977146697133625169859134285184980219863074442695617631215047106073876688713129079456242355795950949172342506333161896653133201930041808477541488084987250841617632582124024050205972987898884360577959150030733653307308815225077552223675659632208217134508502678495423294354292254723965127003889052562085810329335341840983334218267858731584364239971643093236184632004980779126804746833215263859850587119174850648533306029472176692394844882038533414077311972769690426697008860648461627722659841041222838763517519664172607174575215022475696228324169928165624200650909318012120434127040685322644169238947302122998137246363665922217465693181056810713162557229228123415291815598364491767484150066437826540580729749121196891737020587963405552989570540820516508949859536680098060310941364972873811395953948932875637006600662274894969169570224589078611145801585138913421127952820376841622171604946327467593680802532729221792342466235349428260297081909852002666356791012792002517117193395422531778629576760877098989856870313992468614499595967739697584635366256723003707152639928310333143273808776804660174976563062655162971312961974456348926408259041698949393554422249844832886535525668406156160062876472208757380409002764381836003232485449061815541323650951012799823311436087590914313318759998792108425803645782320752249131580384833693582868043909467413014733454414754269802859574424806778838086582317211548473194979723723891469040086571183457827002985859795219626128342813206973188119454795544157017191981065017947279962722221753501733570147607227457679240302107693586865069432679353751447971129039057446649434266310272131575836735762289914801163671063134728086182662217947547637675821071533277125456093771929231152126424892058052480119355986866640954574147255149523645893691278402459596838977170265225822494085377885230941746894905932438686991639410228145605607902759511473069726386606777388174506966167488858497455976024866884807254669644160657717683037263879760271708236859872707960307819822152491733064278453030062169540471602221731242341950347221325588489972757306979193954555090514048536954674598552676366314019000160202858965108601838980909556924784266028870318238240492896305361911964444492387011697574522941955316471225805816310376296222640888086733098876030859548957090287927495240173726971555832159791725232619491201777050214648212271531765090121295365899797480585867384606866369283545762611465695997564312009784406687178110710259407569058036010478804973050500706013511849447588242378226162482981107954792038762223617743425500877924530047471934756409716260254879723519847321034881520629574972091092892141357365981285049457927684180073388324547762812527530808190236273992100383825160883296397425691572793153443207115278822950220896515455886496769437696629883078715864848849489360697754421789867901597241672270268811677610460256998929816583525410396934549916455424390961395329751544392863677674317599237138815864831507617135756532622040709468681698781039223560934204855112663362068302348084999922782676370316683264622382913955447227308719896915315458301295073493926953946328770222508112428310386878180276896265156403996984170157177975851000520446736898709156961681909598983283290367915635457024992544747773784515630137810418294909784589389499850264764586222790895392705721110642895828028279414471728410196845726886775534981223015898606334150026984581308414431614732598851113044561504610005734227839778613953755534191876700028986985339932509308145568859739119810527819964621319451138411347003256414989357919561081856222435589983302962497717647943152873658541842231352977158085172730180374530643421321245137338709625600948451752765706583680340181548717275686464820594428419751052182146556141922913943234049733214336543579110460375174415269428975676238328903553150862364716465125915370659031124339604352013178370181199002867819268087092098436945857140703261096308406007993832772326331662934570173755655219239499076243039453757542471314680576613731397854772938343590215984198046239824726083271533368167265095103003791602190504728238538628613985276833956667322027065286197710091369938444542730130153706612265960096703630971430910987399386277883578119167251258105942594280117382807192125119229082299002615036490720455256287399109130448644607134276279594584647352699270171260308072778505156657671427985358842625146549424838741129536727228614372809737294459267288193647331484964572264472615976759781333205436413566664005789390666737305885630195573291999739795230198768550277363341353588807913026172117168501037050347375483660075973789127575918518858300545762362253374196086125022968149570187096213024201655783898539391322392699955084695446951609952889350247719036008886466623170501133291181662443854692859666980855951095989177207074367159929326743711753401609039869038359110886554253528448129907266079773138685625789318604582362121441037324922847577639923504070077458088778620714574951809116607267284978930380982757012274372634968325858740615299310892308197360252706612489300294281001718246184874377005621989789757549526281651524023433481052205896121577189006909546570361133300338599124206691650812165104155903564791506644904285105664082956299506719005390809024369772757870011597932480771918368393127945879344602707613317852117257285780026259708373788208342873341717309625038300303801471423136785782003416306263731277320061149595016966415410687792258666719819018727675052818888254997299078119692204514249599681611099204131647152411516804239178512852165264157949332286342044848521836426753010625038285583233680816603339035233122212102143196752949337112512613401998693297702387698939817237232332239975711789348096224240343940767006382211826680543396129146680003991811730499040479379380487373926021278838952342353364185898016240367391562055409598764209281693625313422276514465495485029158281841636546510769228904737707815706658865302995234555566430153437708213690648998427686343298806519854848492968998778831455667799191523711397375023573131430397791048530073589459140130569842591731283668906029080902005401146790519028435391658345607127940935500175990276691614184255520895229464344303132504923198487952382087132477711781545197382444843476813629550213176350265112854707829084284659319658795120995152246990905774996699481307954399821787926992790474725230030177805169848488205270808300363169783617920805725212422286573839447420366572810140795346322056971378903363270768394749024554479854229805652740800312807394027444326630202114953120072563912628735632896835275802606741227427784340951284860918252410150744528054081103962213397793586261077086016742917285632023221234678923401632610681663195109849706244267533981795224925550317177390576037893867415719736887504314180631246173017387489772240466382989122279505922524360031195316929940100118865396255975238493940107302374884455072680974650339697040078206645276256230482452619433954071396645565864716908119668510968193767885990191368449865295033681186531853725563376514183230236760001930900500882444908091451695511501515334368892255157532932704396869752334466697815290866641035673230017363829311689505086392840844110590969975502471302649768609437772497657147202714166062127254828430534795879599433010581774331914774413187439880943635523216416683425892938098855993286617430429403483889049879174593000489093635155736534281527892066833068434411288060170683045374131700661253058148444638581506332298193107684265967749138619796701759376086857800004710221791170900544913111421995423388374830845743216894187012249342735383262286049047870523682478859154019019823604139451748250126819843280172340704547172940864292105655875671555247834050038512994277132801036092353133242567269763142286189824461286241965128967676391510888071125295092635272696452991753187264028327476420734298677102734744279500070074406692714323075569088729637498788752577787024521691300308089546209840113876415797139047167163556501720969823589692489200991876484728098124944730490466828451853372017720365631376475497371494745417206134300328944040250700021973259489145243834113159958610346018190374440835438286897015754210532399407699341117059897135216116621837534718135792568620589808219967310738606274419715244100443131230760636946718692560853445873888152203197851335809089448780635726613586767411552907463157521796272771486282161092096933362225909166949959468947054934355984910329600064922941071724644542191589810465210347062238618853271882123565677239833022437610605682680033691181367499346972978152522473256965921778915801708641314418399014809852830180601603573783208946045029463428264926781071177926018317389694432719523088801322942378613818875753176196229895422892624008555392299515944182664065227203515826800499024874232653635590748121381448131161769220065785647810731508417635033355218858329719518702826768892694983246828144320294792199665560297073155945950761464330567367451616408241048603484671522861173366162885827383692522585815049796500785281414691471956530580606921183215219449358910812193626358392182201745400131223938014334807807759181278040223054146611015822092241020124853808344369753381987254203933080971559073345302531143317286674569665911054859220343092418535968225962529182833404486291852573006632739394728699593864798132442748764931903375555621291519440621093153192469353244632491790463081857914564297071400125240981805005129947539607109592716205958226545642661606196278256467957744391347129906368658885691804329905499402336646660875503253748365004030487226777535589972530675470350790200838126396842941553339389738488661440281122532117606352461355822742984682458823032108650358341374703810986033170165686883872749987276943651999604181568676402987077908496988225275234437432268537375291126099032368255899055037958013167873677813856587726313940095466349131070077673673160385774575489054716851553997873514853539420046323653683266956246096099852382456262890445253929193897214431430695050231666188231377962143558931144516342367043712541160220984424337167969610109421857185052122700806627468671730550224312917550623819333770266715728243645506350769671632790700486885940263883992466352134141765185048631771670006113141414439612154794440886883082352186344119199757505468506426884124686510920078972057923651792947240397988815106002424819440847063144622853399394018789758612332976333927600306068614639707088255609160171652244335518824725621395737481010378509437859463209154632601130316313682743636298589225199956354016892280237417876247862999863915088871525302815899890507483430288803090912152459724651793761756973822735369067059599728248841142662060880539500001824306004588134319527987785805767759948634246790172302312431405479034222029534131192883118079394924782122962707986490290913285559924411313984005291606457307251306519339375164345534882295308574552762037519912348779832267920443616805215458481865362689569739255805312076952296607772979206280637596685883980006574868931147619189192069561024046258620049144076363596988238260353729269444683129966136407865354473416578497828037591034951171125748189561152964772553566662191534537047278711370079078759003016682394760850089782388650374614621809082895747742810214358397055383374403157066471658815901221074184087001087560770517820989502804860592181642279062448775923224923958466639464205565434561603600357228136658900771936615343049018649953687163776385787032452692227991832513246946590629932401092352432544612485868462087468362932648941571649799978436876937109616463536935704111110196155630831991713956630769617250049960454340415537839854493864379575863629950439739829525173986051326337061494317927649054658161479791500089760139096069915668174491149534398990087334201375169834708129630953732891006588118624986005448775466218120590683940747032692364910817352946326057523833187831800949421514744230722796887387977818885319635587663549104030007076870011250890567740280685924244216323854142198979104012869202713962384154675407619898345079787867968940443311276669751674501777011450205278454249702559794364963449092757457258028535161726462105108015355668278766315010022616947220703479224545447268138962921368754872510288385614083126449880939109771748849993471036961930308419297251542942645824253311783346092501109118883533754880873090480610656558642391185386820697988464221223925074478007639596881719045084423807478111851566138431835303153686289115872261038637465680337748554875951293093134496127114471236812029210856580427214756040581293730096746490092741955757245478085333736373884759728746428076734140376739020856077839620335406024325537710194398441581895222135492011364890902863356677107907643677451201037170533219618359269319902400085787121427170088143495665218064430549589396053769898006064909140209189758256490937032239926654845552467019083120136398891696277861584255076675132943230362156849060341789464132810443826869267681655228966985644605599602103896147232705223209033428630697984918911048889254659401168911083914954793011129946866924679886761359948275311991800785107727886893425812652833065203708818749699826196874743588260047603453405489861441043094363658662963314722965830756974494810380919673572902956383380241824652320355642130114288076287671329013286277326096321056782141215276020743647938361085441392259982021841771927024288069784649813399507304840071164760087619251858135886880240267919752943790411431079938274664864668726363367259923975056856485234895628328189470540277512143278813986105163710879273681514043803314762442485578180579693531572909638728450378218257204320435683587889552801260511862768801408960722680073096705596371732735223823930278075505784944230315572624533396270649829069494826816973040049860603205541456098965378305815204285801403404843093129096549529557840881693463877721633203953643198700258387142904175864359671199937578058487628076616549071875437027257643661065007443964586061165447310991410680832850067894069308162621392203959704624800276736190022533870000537944854706299268682446035105981258286027149879183509098810357812753355979129752706070197260378966405629807682362872730594487440716539581574410916263357552327968263957424104472306378388579889600686149389670591053353979058095003820423839031557325613626932481895910223954683093527510518409321585842840160378327177531926571383137664718966314757753990028304468353714221360433681605370334923655209066128183806309595117230230761588273841205228365885797056557133257421814743688722951391637644097600229761334272779944854166403389807409397199763180593794029552593164025561754452149210514276943178163900949640887020805589621069146282624452803635540521583938180709318957375108559193934365361292078780018343722763188486298841307980678189604725499596725640483113770661755595293425723428330218001456039510492236664553982526980095024369622697881454526163266041669879095931841220220643827814833022851609676975959557889867066607585327384301131157157536005684858082717462288503524592144458431345880969725769866748059082030080778668526726427416205966641497441565119914872475491064645166250410799339725468875774336895873742089197907174131971844503558878832426274214856254184279679476099299493987327142485919136340178484832772658914867765001837284087006185460771945425739932612160898646949760789870463480642346826607949078372503859911019730149072468494852038266690030864987968293942517005891655808082757351518343884552272449969629986533673803630699701619002919231846781833472205094662830390384696327161306950262588343977319338897810979310639407305403623476780928054179880807558363211602113125420779448527677076148219466519292841282851777777309344745203583867092208447708231348717454950792262749379511549532934233438333765182751596899425090705934651085716460033572974711091701364969447720777190271385755283258566601773752036197143927092528066359701997537275621822920766444127271300257177863536015572191111860519412808024426761426651621046723064591167984542036182456655938112379435253230137810007958736912695242815896748498155209461304796441459432303357357489015223714273028601304880324217393012570736384183783446084321165582389675209657369339233234427910071925812040281163173273184355421999733273432355148239723772367062511834100788490669854549495268676830367290892077445333442524528574392382213689047080503571539681886854103061236122601844035313175997159934851963126190922938853263818666977367605921502288023664780452691200288738664759463440986687031459631229458802972390196643018897051665080123696439679215208187976633866235784100730052436886356125974961582040150433056679233982553139903474918404707634885089357560043819447730270180937518682702040514368663997812073521592167024198172704544521709794742332632957448539711106084266979751161316826094235763773511362512188160874787752042695346199935919224775765770410732121508916763177685777909010419751699941594070646483881893085644849304064739395071594757988138594851696103190415970655073640760403793686547522451541312347069327992659385803158359655501964601666726347571935751795163414315839583994258729987364415315841197503767526880022519645245353228885415207659862807812082514643685409810403998935360280352466908340909818227211084524453522425348977554014615445382948425551610391530352471366955172629368658879241216721506604163048019759643696571828765270713444169864239830098812479219926754626280455793324452190905436219452879289279134614817082377642028798773552527391362171329590847406877089500411203867420261886336155351444340270401756849067813297371220552761219176186322162457387301480357815545376614928412481732512930347526024353159633457224116775505664523953248563484812082821096975828434909872526972846704052396410424781239902315688528449727605884320901975742864043303917975359587296031697562966946397694236482636176383813745518562320950992863103053958983031283877715582753566288746016117133299114652210827826613382047919819257944306857032160890221428403235747675967391774067617892770435068389950188128049892342439898304254428782005902980567420611449193767654612675840245113363428086531194120396055042723314056218167350539544744839391821370314119752947877244649368581933313224736308587737111719702969675526450018974032090490974402746287076267938293934262247876378951624885106085571056285015557854891924863836495442514596153741312938352709140513800155565514736681515087681918730204332945041588427039830552075491271673758616676498593742426821336579904995255246385742484834584804510612219172204896398059732461674049256164605134928594678829952870627782256526887488084870184315506661553751260488707857975628511320616751645382909238228019751144213986230335140097299796540037730927030738191417846743770444413038716015032110671180087308686435355573177443874515896205137618563283398273911358316501644834796077562146026553183508958207944792670451167426050326971671010170493330183206183999382234852119237159921394592166008786835453618472274055524326421233555145039684278246320459819842754684965880859312920373983691643187288333929859417249536887013947564139570069025516854247286292515618554916929070251119495045955859798120690213785502640750970466868680800977975736625112652564700405975408104386910329565620875924035272508923812088247364223930137272468543853146010595529303969012168851787160656571082523960382040057435100797099176031416051762012899966484686189248105473922823165314495608646756579159590704784086350315519426466719786284634977969163813829059798430548602850252387504874434546931482481178401142150773694288312214990206391213729493392686127098270646541502076445702589339865676575352742761617734389532222513333737048717897007177484152254826109491413411815485288428129717359282856768640330076652094841297162286243317874951979764178683452358143793981069621062178067515177257589500462002231187937610638039549599550780188183457480018813772847497304475769459039389085972759040937973710771910648424225551170279863993339725723632479648314616387617439042285818979110316089006975245188547618962213218000178049223074663655650539089359997192699703800738014416006126443822944474610526400351479836593920446855925050385954144031984183710120712643781460724726139454086151571033396256135962740959466098369762375881547128717615613962928701040161964857331516717147900194190100250021828677727785517219439113992462018066650324070542010332280019488931300216268699263944758421691926054049541445752677141953565552235208540416919603894890050916091943875143655755743679633150771306966485071048951024617889927141121643358273886499787946042383679506088955260530897381260333787067353908020818517486884581599713255367944676890346565241770715911456590935463376168958474002573581845108217593175977206379523916416689820884690890976356718656704868237050213264697245692224881129162334190761518570030731189763509059595846485508315321310815473077781721632843680977499650492477875933136796213474093681166467390178612990463900028973222065658402836500593236012254272631352656429731621145533016887472243971184448246175776328098894713480918100317383840297182668852715803884591963785399610928526182844600288947311221617273312446320868932741637003018228954502552002443088824517491921242303994901392251228224904659397592687239888814348602322407600373036582791584733656675030159352104973907914657231386946351103459865481657317193916613609367265330996122467804055068868111490753571313886152789352635811666054806387368131912571798246503477271646231772900712789093684650732219032991178339942320319814641349873673020092433570086584101001797079615954448773289075772695993665154682971028827091880831668588878694628020013692942461436362634875320717677407706264190917265865717374679386035606569292247446601385342489729301923381982760010524367838251694286731219503308126386919862136580122358521350058370925139524078951492839532877647250977879804124971626396881977609367066985207682737069273780797256949067842445910989079313188318102379086030572561104658638954071620284104532084506984634912636885725291575077198753989448448844701025466425176103911797916523461575990511300157384025709298513190348423798747737680064686552430453715217469456846850573585569465374260873091223001006155105353856129422981010954869033067102379498472918461779117747801387299337487994806154754372718460813883115825154539739123448291850320762850059603899881868001114710080358402665278804505173942335446462909000761042566413964719678586208971132874150241655662024719137390826422712367507937284791579250748806914599946139557535064745278764122998045122301977474429238355177907268728030376851645118527633317725414670598241278469962890791025021186037653999651236174046259987600904526144546839261942748632233930205177975163966940424405932650221210442868919443313324698204986486249095506552592390535894714578278333066412290708070106780861643252262871827368125739159345829681336683759293599057987210520045345906538922472504137162431063046163836674161168098800784249612417997100125271055406725559827835583163798959210298032548192880489340134387774808272803783358424154411131765194811017396903483324881365543034505901926406369201452954466704257860274395718705042157957893478522635596072438889777714464653684571229063817027247039711545320138061211559306671110888425756842440242181626117059363859863598276564144872166337931706020594740300327074468982779756966707307832392945758173377889018410242862675630454337117415604967529084598532549623678103160137485367759794558797589775974048318322518514494272999306098105722711485140672168168349181096568186334751049571311926289914325436948257223208777394152637040232946542081587508905020963926004905500391159939747138888320218757256390677569071233824100801194745928008126987099736194624381110202444745499535490322698086726367146458236627506343652273965903808706641243194866276518454538839400069248586828226477191027832991707510054413656349480033124940800610726942685859942223942678573433918114218101931630722385696727901491549541553991547136303421443373485238442245953638912276400998871041020138187430254100648128202579110003629087959613060308194853828048750485301231595195198907118631346842808982086438263886821674088975931577142711833019538357487415872108669103480532784509516186032664419684890774721386952849486638349350994190581494081510008916408023488749827769006199295264759051091641042300225883426452134132782080231344312560286995590602842351375994242036860146233455793278653384930045750863316400457278877320063609836918346768433900491467809836686630562690350229053155785388793287534841627943928625609686568127025422106358740046787765921068454308075028389453722198645344020522566867002352711906499471156043004934610772281512848238005553447546115970182718655044865414688160469982052092226495497790823207211438499679796884763256063627717387241522120216201327269438741468601790578445485606837777445967458953102966985420318244969714050182185165941779863411392293847108946289177076199449896707927826180804007863414444214460591049818324393028787664180634000137811653889181485467020512250273982981054408958477819391084993944003655601083669813758099226919021665612139056047141054819463982343438400380724571210401074258030899612732765609126622330377711874878442390479828973396901126169775280564834138527983092501619342422787474553382032043713116874564930377138810253812051169414174785446288885967410357358984846935092373569819586518912012756911255140244189271407215758184989287847558872362609576286925650009126606413960905670036858945285105093849446606769126549839628831365140865674035450267887042872807862814709397604442698891477399156739208390477100527829252416168531878081387042598119346976122511724571004775731418977631052155815565440827969296777098810443435719988444251768059552825348712269102326312902033066335917478506792522714462282179653210670632533142345035570140779707483134280874001084902434438195662435856470801097082139083119378149214083538798163987069952324490863284344307140974252327667633810980309196538783158727637434201525316578461732484006890681897683404367635263909568430261379258313332163123414373468534343342312118027823048187411845118996074062246905240906025385552044339041242352579632446843200527448888467580653809716341315904491311530682022424065605225246609538560335116742399997321424711757438536394424828478551242025033372202325873123525731078676694082062337660297847326554410508839789166140095965176848417176782797501003297020333502475507769120095394173309682647995757760243659295798775210768686175911785445545085049631264780739222364900310291513262014326677587915022543494845982133238948061768994089026303744956274929590366001291235679593969835777899288517885940614045194983245395358578384893159888225070692671304524048183751608101437298386253323829545928359474232990568846150490674122309188270489665902705118995424129206480973386190631084597844858259012127550225907057380860385329219011748146424219639780071461568481879274611423294699128613198662507036207061393818419229094399515575521372361492198043556748310555309562928774516788360384292332366332610747373198798566632175094085320604604011638918088748734720785388945364851073545551001365077302549374828956114768427831057455186733712161557772491460981655751680520519633405511045013082361650992948731088796827362129706035278000561148907779712763864218968059976731808012832747738283926348559149052757475960073843040011861260814759616586045037420766226510939599816804495886883473154241280696512306902346731969161183708158863194135589866102738693069854204072337867390030574148351853538651236926010598162131480370699471875369329928725373173581272243270050955137163288760269575552903095646150092873904793730546185584572544585173308504320596941087939289030699423469511228604642741940340195691310627294962480282469149361591055162776308825110298969855118924596909166415040133552010363795812903961528611161468219213984972502384193075501306576812259337824249604393557977605779183863015416063989382322664273131443872804530577927679958010181885651320272720370402086175031205399431558039148575200796905906158374357786452536185662508681411561326176070051200761048821344111308169563499715173366986079186194777343519665975657538220326472280577511913074319025301698476962212130532766078525682416234623023143527619880707654352564313264254693693199605536023861686391265535734464006308303167554158992553735040766667227914782726534665211404270853709901535870498298785696523606124324327440372311508014717116216680091347936142074956858677190604190247545013063564030921220207715199573910062449020925107356867217708956003037421336746366747354344890383469288795019870880470221567722457116556440598185358949795027708611746065730020980829939032421935544301754646092881174117770696679305999721297544036506646567477433927166089719563236357218507647545481232765765799506674690789801918884671206768882698175319737014325543787236014660627040076139404601078745993034287552550350111282545699907362624897048306048391819780280135795940358847530720823957115067706706418918561952962273605558882088615103147069505067819897150514294674839803960110898170392570237445399954064473358508258492374457716807251848537447226490802709534515560176101792019480185445079793457182891161646193573560105001402069412351833224543773963138442535780242643157660484915502184583433243879700868724219806275924945668968427556172441434712824166502210087470293120267335269087351268086640485342142150270426256388623475473675913839664230632180643480789426252000736928463526582714436133048054262609777156762261444167303819480618939999897540199640931817102547725047547977162457775353526423387094259664243036214804608176925490402486289492021106478085362972241801895744644187611404630780121443389405311275443497263900275058886235654824847886505519479395484363259424678109407392055017513401023713270416094108326839594878972270581125935412650484260620190237642819220672478491140472706757388096725361190227737836339516722231223379720777262763909110989826686955845747183330619741127764223741955143577684923013912285990010433095875204369578504491060002285044339452987023649809317765111168278270724795199474738258533643684079937259716622747067115065475085317378241536983512284208742262236410019383562686543732173546240100735506577650271949730378975471791708301837463190199903176321115346651508615255552971760691227289010673310304302565761518662403939508146420674712543031399041364311750950120031895512146273678345876181771193696434827223445570090490169261842244720318874503123583039176452793907851455855272795844317034436682602646098799197487043697961783485726182136404295401735506454671420196113160661573064571084952956930740925714851397836956906824618737830992495151468002407971113204424396970172147210017235492985032688302414963172833906716539599608583261468362995598234565829665685905234627791595910135539558948268132568612871967002868001520833981992005356087148240242921108538791127969017487623407194500906075261996813809763229318189388793776323940755195403322280963806344247066619153818720679288873584249885193962903287437242753316824785572156776753333049678178616555541813927045336084163621284129636083858693344103694244767383643242028898788810430947338329250186906976281331619395717412355176267180828018825410778773299913403509992203498939818747704646457393823568629945714222824741323310846192223211274191112953408571831796557763511481005100888961918269497717056019193126504961012852356930128056472785407652740939070967850562893788434037708580740377569670387004133130995182770798211105982221432522789473501245806934361056587774250317200635189129736893042456396498065281064526083536580416969389864983561279240720695930125689807899451791809818389243204798485390380841217159983384869023204372576766177860183297563012808853072749075236819064866145058748616128756568827015340984068413407763543762668313554822940722324157738324874396976320028455518511022996912605277731512996414043507622821635857043807226507491253753315114902132466136087255837493734821105908916746824234076340148992715915031797450318771465976420419968738141118101634566758051520594623668472580956762231777785458970093934262842217582146233456723066740261482396728815965160111805694133453578163837649011525135055406012789867247081247995656209994444740421313233171980307699087855105527536413633384744718857364550335497417306403216893544662305134317523256752930559769747451745083235520016874297779638836769218007472164108152713272112467899515493146281803950238267301617114112254496511561687266696225390396411190055395163825549631426390873059897099177334032321407889133949865548608983425481519741773901389660408786633881281908972824626377670986091273791360044957599424828704391722780375364031846147186172027843343600919907214076569422226853003773258596971072795634051682866744076493453694192817661644434729107652938527870239375732781133715951261962593684390489788932268773117776369599301976885108320031505027024105370263674453980008049609617645160720607098369651853272453093217214406568250471480847166903658485615458294451087669627497686887268251577905973662864393319863819447398427075463366087224670854098647313731916950491335829378231897503722364703266133436401027668471724111581879606495669871517606304921164679496467104405782488691285313173409846126020889115078371301161741182542919594929541508381450450809830047529024527931886459872160307814269444352028724756615719696704350547093504503077101512799905439309231104664567611100974009589962892656620756856476724905527861834757083356310979735734322159596643808695180815642293074490069502205914072479266685542502592520714015063412036838148165813969779513516086146895137162222330607395778014761200291129256212745472898540752083152279366174041768182119519901235983853620898800059612828989627406834326806150297017204511543663596074722802403502423130938164522850155294099624903989820341078297518661441939041956398477403482055444417757126880608791560214153848808040606179742441749172859288299647224001389182325986469969091696938159269917909885728087055812219482514067263507379343243690830658933220162632507480445317053670540865501775638055307522092645795897490432341949365598176257291766197644911642683210836389453516349002976514620885946946132157123528219788768558579210383077417689917143683610028747073758152872788990762561864738609364918777374429462697887373786804277661921376991867234039753318469489727188734726134938658797671804989966621790418499109580817622896883754515081577238816627007454843488991742535574414727821533396648856087815376268955501673772720159083293859886403352625784128693434743303043574474446010778032800267440264050829607560779056580971755496612472985545211085483174669719996406769351919432508245803251720625632904771382416401202812077366478317479033597091199816766381161986883813593882442137421262943288840666552124417472696272239490499707957681769265126496266634138208663522633977718335826740563346206590782136555647439607904684274859533706863608642513049073933533426787154508507491350826180883525785654971918181211102253685502341332271880452484548897062296725699102655125530878577056092579716118440624244018408141685320480804215465601162332028909460253735615145418998444162209369708699399174759336756364689822368621357524541180872016137555269008565280767105208313004981089248922577646122911004228576895268119566090805306061034462982310633460212930343472074054380070238767563341096055670516561836708696128324929161232925781230270967753026908024883731938414134848699876013415705533315611543763398221778940172007971574132563233850168490480596511427466834045178355154332033180480247375683506271124941061972008033895945287584606027579906771139297062732460737989485343303856447843724833520347729386498634453539253302732289940052421852308282021976804278534730493673779354392532974698620677679571708656979510689902965223676465580268537547640663834591444640698081157751435316974900467728620226578847562325929408022043799384709625413648090447072166875158667857009246586226277561437800329402420082993342483651226182800729037047429638237655292205864817017080089512696420070560898018167022096302471638957103261812296651450973618486054227227167412907776251243535461021805927915648659552238107611212348346090035757142410133673929412682298919281041237505035427023020290825721207326769818806558367314441681762698408837510983040989541745020813921383923884881119048906685470814142147745609505739047740551043381845993889005059431131122376724389882402068323874559041077193757166995174017437719096216503537895135495332485284555833175237857643719985739283573657553114176905013076827124594627289706225500583346360876167545017769071570767287238473363172433817521728043884395848676492763813018708988728688035145417695038086256890331945256742217755623385305704437430201021240075533888663326597418162451027571940305641888741443427568461484346067021664013447925788181087808368520492755565767805652009757268941862400314508865594535440191900907610445281324477524701926114958974541073470551017235797363681407029062598671380927802915125904550369458971280589393689415526770848891952994539391707897925118000927515889234915317394904814108850279251951656585025432084773760199042407801115286216583501809829346768355485851611463180319019770781822826460907913940307006359770217855021324696556905940304245235198434935196259720591683863450058427299054248684496279234291570799835790635853199852108848624742561884442740040793257298463242447760932363131796544312282974222970261790833032667667069053110189213951626596708732539974203480957422890242041604911422702321968486147308186283709642839463441760090539680885316782635544618689739182244758712079184352787365961891351625602651289993223129656601670953464415776877165111834431887585398666929971022047018210637458237739671267893881096646562638144390785550118005706779515036067194718230880476539601541231980780005443890055982724398152846970094092025071628400107769279472999791612086502919972976653356619637463493278263189859510135779207167935414114190273799614311260526519837646762938539001367625459703777301788525369301874375746545997972120447333692614111945576769500638211115913357057518005072382293836226060453485196505652697111157444948688201231252131895806786126343912243216659217924239406910210015804921936354390426741010572638255167045582830672578686253270765293666499510789430107021851601739433835828652758399980707482692713454668590315050445732359371786591889141953338727931051458503921150807844191123734655350299301059102750489681977946532647871194750370636019520928728654782604504169867184435777492052602862459801485992994568690989580666694182120102104245203119617157070879453441773000800352485372864752793829398650317410556503893392170733664552300843503610169293058870382534333598630563573485158108680104390964721637255948609511636410089675266095884766248957767592006582905132842354542429154336070760049586319091938409575244207153393299665795864621556293510770304548933441052123889326486790327067844943031876480184124907841372067203572073435087546097765867614678266852646589973963066614323577320180710542575053705989686618240026465487815006653266914152942375780542897556109478534034239475175471934278865983190768993866782869220333951334355165998364557082682307450415775281192381240842647440095840811330247300252756725332851591562667614132812453853378536701894289352754236392595467014586706582454928095026482080123893898022313176198375259417331053126350363802958679275452112452649673566958591142138185861163862625579302886659476261751934364975074219796742544936375246619370707695069305841467307665060148867466244201499988264958607960094878854048842975794547801267794158249548149216858145287111110195506732478220770339378088903419808045357993032619886304742502934738167008676862536042817239316484575180115691122457734815732272140376612178917411351535842662808308086748087487796327601959772099604383299448434909554962577332225748832748550711882025371373911000860035654996907339486922971449702509334763310502465895833115068709698665844343374369390984996091889311532406052004556570919747089156786347110616984045098805772693891433350719659982707312597354743260348622495337587331609824269703171266814066283718974360887182127142981871039485201710211817209797534719220123319138791474616591965067034909621205610052936513309048502261405689338211782760487178011055548245299134433400963327387159384468423832814105287375138575297472913125883071924263888020627966605416542711771467865300387882957343164187163067965940033902743351228839271518708760169818939871319261391129882677689729280522020493422195036556299471349008391709320109993505922664140012610480797853292969659554094682596445847673285039522364681063295847679605640211761311502791945609134459165449264177537543993577407952462336646308940866899698198777497802964498172677990214030810399520767662639032469162313725675481333043127063134988117092169082798941835080287434627444698024270960116734617670309502178376916644196709787678375185937553556963501135049940235281792300526067892585635995031314699175637689977585766199403348010022796474891147147770258560586694741115923757806201371161042622913504830862829783701667601022947121705125800847154056388424524272425656920553014555448593204096714458963212469497984020534944355796438258188354674600038557622839425096205931676385950294939669479741100437617036974918682969978803910698750812884832110672272943236397102047025494009572033492652226847129010301417216935615113426280364682930423384433261188446299871413797658295898151133256895438032527842660081932575546726435922437872924078657214333077051400916154319432482150931377459768903037963705805761178700578359975336327435901595580569298920008167794911232892935766112314943069387886627711093939291834159564820396123541993872096102537218509124900438976054646455545542425452788499663829574234179183082731986471044419510092628227359759857267527837011118187178712254474213024463761887252666152268122639279269729654880022109000263901109569603139261461496434741355617322504479065086209845750538679375283278037537633569711667857934949320751449531929324963330614551547346355679654644517112616903116708962249151641055401259335624867485130415702087650300326644968463276604753864636889639936678165452416716921195167592633617703831327923876678253053712696730149733561387560669501591947501393741790951643863176381872841427249144279780120769994231103744930509773320257308417440547847504661686277383420452147045980496109456794805895302166427497291387687818104058238332367144468614514893582713434569530261779208185003507553078702248326810994683303453087725278803649133196887464833025401222623565608074896765167866190701317360864160060493123666465967238486436963986637791471094292615574123082224316161710860868228793817484943067536444238671772884143383617864990409304346080353260790989581623507754986799249549269574628253865906290567747468204710007121647968563618188492188604167100629534484938669534489417677883738397346448215730291488658239914280814961153594826584107152871940074070876208243953110942532332603655839739505322572629671788968183441069674488802105536336323309328032057034073458175391533656503702708610352111951108279132087365351778534794264873531496367277740562184879617468241474297287509351283013815474972400308959192578288967949784848376337891155975081892829905976107301146864264115940142820454339974188906175923765792502178551353937542233102890636611421366436534323241422647133271404922099096746340688978671656167279545978097941196183010747509104336508027104383740189011674958613725317453971407050667845525514293284862770380693957521262564428649995341213504679422909618213639434102487856192433178142404819647844586244750519606522390358822818184763605744220600563062194548237509165117955246667201819913771276667617440838288408513192000080885831461544128922804120945908876807256141250596596900068320863124139050236881165983012411266852335336750054032204916548079075923701469252548196782913184999342013888097903571653696114330682873870385649924330558227694144455645012608882950963901041768523181975504486968349556698192468553932809005241341450081153169490438504142501746218316824290746676205371784645131412903526822108475377644582825429420014564256825993845417195586513656391906876051956019349904736976432814833366379190058174210209454713197067932509990577202586770270808989737355537391989024249136992775535169372468266511289438198096122563920633551560562722089980603159222355582981935284141095645848950616375816255405287092776778355150679940712187194093714348284180800337408169686199185423466453633886811557466682452038526263210428707771308531911600407085629955118052041353886958371218161625190477194521182679143605380330932642328644513825807340903779851059339574711610305775243553506998514479227684097175173711328818990048247335504818121206173994431013528470124971065847114271060556558821382220471676090373618458687703158396911537081354215203712835966152946555548891029499646062613033713943834595818813889117693319662393772091327791951355817396117397847813116978045021371502153216766852025589007894549959962257663251588460452708928078665107867481725132239339109637884285974195433250436169556946030354302856475887818698671496657265320696096846605458036510518444256563829550249064072108715046756657356387812500864246543195326060631956726884164416561319926688055299279548321934318095953432670351478579194541328368554733965038155349746394009158795408171241679847259890838823746756556944820774974079136562557239376817514289442490079956354412011374785443997954490900484262539089604281506674358304572753690717216933571013153548342232182416887105921627306889825488894827809680179076038477512182965108458488653607295301408777707949559630287277581780060655628969161622727560965906167669041951091432453829213035097264718888904816373483511396572571454049480529436806505666416998669864653068876803869271962693688134272708653222471061980947497170999806808755486811913480614920474624485890389738535338750145488025422358940392867062605297413347128462969554729316473858011096034858031939534120675683881556754671062337822298892526596522857746567907315387254829784390474048499376347514184719701761571215437023193503439687997728359431678356228155291209075242658585460616816374785336841885001407005251403594042938643314599062862195338088200330183062902422080091883930742846999130283318336211072857843144862147149706134527863707838892284725125378615024204390594217029372010180865707149644724676490623685393751123770983160210740825075397643595404997300971072427631556273013918526994926500265487808799821994283836013831068532330735804427703039421160826785903803960183100697146709900814188894550435019524625625907208229119020287894390596019202082909658244230003506268535602015149781257576842116859409563428717806514895297073026412289073624342484063846222808822532129004253203990745672400602981636263536220296633212238083585476130787375788116136008897860501701517873185806906754596645822222818578043609848892826306077022189016026265385157962815548881962047774727872784100273539867940722443340903800743863641170497190044897155695842609913364602368158887155785496377623787149162682348580427649223646365646588550787110835773360214108681686169343635451854380033954608803634357813338772414312815675435814682697896907889103178231734516089679541631748252902937913527632986518137032590624537268209076706757887886912210090704875524657776798338093738945850308551866567246199019414531289875728843943198152455495467699520571260536503762558688926248925863311324536907318545356571056944643365774471860529854671800547287756177366725430519821667274249725545735694948192866401831730975098275173946232749367057565513182508816706013096801914707205250622833930852237002300817144660512546593802230102119723030037855417006427730924737102446280761286719868743792343576525091191320404975252572135511698902945116707426646435333453793656597385711727237937405156372403622905498890209598935284478234554705927873476499489338465464208256663336927715069570309984094107407910322291628634530112177913643958883320974231318098452208193949193045412759729949606351851919209518502565647197701331968339069814612526846756054585594428562864685385002176232812724919323064825440136325447511011817172137066660726578241358768241965430924742188613511991261519030155665466352703964759447640873891730078800622770283910044027837730027328074513644131768764344231490723575331121341409550591346231555439209545347119591265299595503052061011203446065403685164956814402374631880150644425606212180799606814764816081411106057566743084448665524225071772623274897809867921048409457026599730533552254718469402370078754830757141715600997257462967236556771197794275705405668837568743234649014955677102080627853470339898258969889671303077566931299682096490800615042212624992469418898574545527311736727314469482007544316269059960133578902078808450608162625443591802577353109364187033994416499753035968851420770521649792328322744464190377051279724594706317331571492018019283963650400651772212895460826588196810606072355930678877263625004403661587364936373360057016242959474333436746524631497552784564683231297621413730656982265249537225538679401557796875424294232462453712747848654398609499406386384159553056088184103840306444866267283471884869459141735376958904357228438711461129874665374201269726062796430055835283521303142556994799073678481068973876527274300283851121169662242702835741301833027591499503360136232094840692125313026089737676286099269793117400918512430789350301638712601381383475742963047146022363943421864965177584490031393209932232310774305703715873434332171509795645590597687524619160427271807865330674352328190553407226775321475407975409838206557758333444006712024024570485924756500520798070359492467236942861151370576201115627507843975315875226401743649516087420718063045902133340711669974125245517528978303197235870672645868899794112754437260196332862296482188057635681162937731993321575946258878876977773545953767709332915780067868588444652509403959050658537394384690122825566398771396101881873799243513485131081135984354564999100123524840503765767345785744637168583251315053425625354308991677771479433723290381613493169224681016463221622831082227781656677869332111318951301983163083653501823008982648232210381312437228397234052424037867197783129632210827897483278709679732205667387186233737138703301321987494139790407397296444439699050973126981549452993369056162820466255564470431545187375423418041473421090403467136760275455936648648137589561506122556604858245969427528629103310162522320311742806150631510344045756409652042947403984968487567420423921232158320793387448583656048035287397337518756937696438757993141971670506916055936634865725718236617317108556789572146978415666567452810892716760290549048413147470322869997824571523925679346774758317158832283532294659997762995041772568188733334024589753457500770901841899322347922252050585693356634386101986030347464632828596275789804367380040340894701918062212557154355627629931949957386491924434311115361961571157058720589857462450779360754075878363610529777934424666352543314989298056386226392216891600283852103867203969384184514877603217496503267701575102706077105241636080965867852720274626882035467695839189707262918754315134554944176993304388910568710628233622201622308150701008122532881831712395206664410846223330868024922135798346888696066413250594180411669848388628942634505826838010447931463554320564617162496953129214733498174469742971644884172636937532166646769967235574577460307144988562272487915382207778029693013258099826980775918137995127507726070558827047541639207834400396078668413136397646188700554464511301460414313680476561262457809264896218686329392541528547133703734317966962223684682682522816021140074042786484121699508691389679484903403903129698278275524999258236464681336464992986592283505806646107839405806606594778334370006388605590383252513427030377672699158819686898884597614522078987432353443338577894733598079414985368998073423228916126519720813499850682847051407510241224666164676442673924161457712976840277757578257543166160451208001877403955701988808782928132339153504369287042474774604074746596284833417763061562117115522010436813423535491996480636686964844852229565726690181302940065931441250741077944207013117243375292857168362211345074597432062774057578207276809296733476596410217298226507384935868539202310165162385100653270207930144431400660077623376160781602442698567357270248836264654561906138586835682678220773527965192862921757414094274456262258616999990298964536624227794023006171644607902099241361491746624089640842975763675735423425317081466629208451314525293478799564433630946142228791873698091196917195791426399006606287019400568832636097794098470156592593248084563996424959610229040982422997301988999303663322704804054895817400247306586719393335473305336752402285035625778202864889503658934916421151557118893055426464383812944171271957820316221442051623267224544362507830385599402845359655687410578965110095241417430732873399691179472157206691712044227700213276317896387244491089117933977117996710436391622421697758555300463477752729777907791640206072732249851650401944374507456787457712182239539358463649657847343112836102289244982255133658453528439488216944545202406605532521021843627213168023515783042702603442116261668906078780451116940732585255223784346165025601787060585256173854310499418558242952198844621954075291050442271073596263565819613552202772895098451322414253676127352868751722913615091724886647937449848923651611035753586192922595223742943338769564516369868731361202870507772956927397954342540142183280153235280856891734542179616874954052222350433196380300999053788517196709669550982391535837777379496159746623632593071222859295955246513269237463354689429444899538984177999698610983699251521839558326834699935999114670656395175635020633037878829479623971173938731913863540953961935450061681144377582119160191984284377260260039054539726701995848990129697429417248299809693037481642041246719796674179142207205347100419753327680246744049560700036067926355266366816471742620350457511109132300423242671925043224171879666944957669419161555882218223819372714472597696987732303911753958864349122058974778089659396550553530340870559132438596864664436050050523833513107254184525526801806488800737690939075265826976433594927685228087650566952175984142749199047192801526625782310168126769412973587895331363154930342895359104725937348708437506550822679584346651443078203536931392065310111944518171562157362022963503936180074119844153376793324621441901589040233208553430000243918331465267725832398573463235020495217090709022994472114872934862539467319476847845116704528601442209880374580914782874914679543831291257884463143771333067950520407451179025028648789178290387500304863731226573615263218771643292009733121708610773427950400152256995067152122619544572649719716692893333350145977868710834459680292241006286107117490242278896454346785585525385490782433304224147115329679519166427223695637789220687536814906447170904395760740972985989923266100488655013142376394136582596650141560465511186963372070822705494873138999214687806125352081345681973692709296564165575506695287244879058004639529514590854192806145599734782985101718455245911547382419215016677787349433170862321744867139682079148223453319469007589536949807204161699427790479765561855739710203070609033615815757304966251396748947101089117886720437212076984372313353490594072200780283911979156289053469821303993916759213029100082966183144798967339657089465974221777714597734962127579871309553938048696461565573742365618632006263993363842977789818610310006480518346202125279273885148124829290702890124727340741425717383687961938049510649325765769441847748044386687438694689592088113831904104941009354160730445678732540798601713288169349534575347027185499939454481235041314472224089635598879270616503176864056031069740184476088127117978677745394334531490067514641781732091049236165826547267466568298393448334549855617580114770434226552710008683595196086686981351060489882094485849160038068043286159229521935019579014695254791179891777598728020176039771450282068101291416429957059061491491526551998208542382814393109121805330137967542876316098214308111801567695388120249520832763435976723948065060593174520592491425879429391984381096045094783697705434073956792639052494136163631371980117764904345305768402978760493621088039096073818860721986544245170512955482608064585027225081365806806973351777002380942388024195844713192174391159339717255714442546656916804346887465241810870397328363929806550968878868736803848355118067300018152777147579974851444583017147596296527019007714079407263375717130010332582059435104685197708618366827024923959223141854933452741832443732778748918493285011115600178090841411173219674863026136946734975041000067106047817501054930058187267901375934108209043969843438371902146847869277344482626832608814514099071035427513931773177459454285728149699013968487002446777138216284647813576481814100956663527378213333815156305209147853945377963461733273439136394458378375037851051113853403666433034194731639141883736602757608562761619169975068792182112072121082555242409547128137453748040129233599910740101223714102804828454984960640372046886851487305608154435448383520764565147959788813270480468415750432384056148770914036632467563517206829099061057867611402741231312708173386407216017841976818361763805860649822217267182368070452536517827769687604074125921182948599316976148139298321162861013436558315845572425365744956585996787258155956029655256356358364796110840606031129098047483316526362208022064154259939651870562573155024379459883420182501453933145306107499351651361911475756861319339465677923486313051533241013319126593187210820679862024925441724015395345435547217639271806416428241336276269787395817249873739820600678873310283716685559236798256497657925721177963800005819993389659454593643139769535516099220970339132956198836491409180057318965722420946750833834083486231920884352474532802160713851367514285926287804717518884679913062492344415715986192295117072489418702132811661902574511882227587160928147658379761179195130452984277953331460677206008462215189201654107222366328398268870284897456494646928629180861533330662863109978507842704718018841520184198372651047133702392523188101677990712583614699642521246753433466889456520393837474617146515889612300944362663371592335410286693221483457602749078464136027026862313172354561234086197705339697521046321136591104837176507061119428963684947127380908927279173715227456065075408202141512649422576872428766180620951073876606485700404181675411967978810385625174884771149892951206567553511987512275572914245603233242638682625764439253572589246767023852485082804020095685039751765648731552275451289034667744692716407930162214775148104572573642045111805996642957977780844513610323286631651627748379776645184577890289679068275963849530168846141081063767980746049704848559948543376035340053897586113446490613884997420381055128569993481209536535438657506090635178659540302694577108421131128557456576687386754308037477753808477475172635377628840882831576029633549551955240951524838566069177260995306399533128141780559387620362525032279127047348642272638959444635471663205311282549110471878318209342859165895819312950369397044376844839613764220210134947356206982962639314947580903582664402208371774945050631518997682629511847465046092024325515499382765961971633270473746244827877439377381830983839709009096074515392558924493427850523731765628879010025029450339146829602657164763483747491183136039115871406550815377228917783341619698097753891505964910849617818528079088144176966973212551146316494407167736496906654648477774727597465322466727359693756985350416435044378006521076848029630087503307200562131104481968901022325179260725652359038599720264556960859859303807601936476598677669030376098469215741151569759081027559138738263886833328039394747301147474382288679016807479119511958324626847519623170442457429304561852020249834544550343745445449509507098169950978109842416161450182260146368776885058769356711978604139662892582571154338708847460679850250350967376232447013446096724199340067643858113152339569249876680962847289601773858640767065918651352436900507637551359693058266774521729245624005197963223709269584083248040415319165038934808802299556322042193580024219537375839989964678483221833508212228996355861831170640685397645979459310414707610780869749713939584080950134722115801680626491769183942260159932634473808010560201950780163145391133973990099890812702428453884336935940689473125580119532561349175571585000127969388718259370873057488090307094126656498686018820322714931946761991907123700984767299396344438639779162239458294976104248553673406756196901664112184757253199760035239591027280985141359630317085018142745581929208069906640390697129329605019723667070910903573152575832491904237303499683945500081724984718229234342411532270125480940470185956627190494647545022676742167305589618569486513829364336790325367485469081430539912657884025787649305866826955639968690369009041210986160363021814265873794843146272196651323372610813104249881898299996619628911620259489203173831128097775757568264359249649857145214094714336326235091645686651057691458877874261537956039586811334462172182037756660884091701268545952185970241291327048114853743609084935736481906211453652175490968281979799048249412318225353101728692486636375908475172666194856596768739420511231640025681912840042127106986481106062362033791736279858927902254229313445055649075199864769694356452936142801217744400351099521704317943726976958061482464161138253539595687442593734356312843808857425302633670834539758642820591279357175608170052550707110484272993666418487069315524880861142621724070207501278313927564115598305274417917749402766379407325253997087938193884260375531741255754226292974492374642266971026018137719987106975398070932518087904447399608257686146949395668798448495937706982886107792046634870707991372728371470963209512768448094871553845295543244521716009681299560643085402854000097442521639171998036368899697925074987434782706553330587212561534221808481752660414330529027320965497112014593149770340080062212950167540207870824753754840961454342958507813892978692056860026313697922695740462938077113704750428109663578915414352916732967989698337969928691208038207171548338558879832677886118750394494532049459727977449511974917700327737041088325727088659259099743922093543658321647099617512588495597829704027267293441183695168704143883160408666648485775051717763817445193295513325027841684716364943016551662642876248025893181710288900541239883174786123124030752529845689701357565650692067363158427409687717870009200860542188050246986270738984651787038601718927720951965749726193449922043378013813942465854212960530570395072647272488214894152939847651733955816686217876483465084119099045137755476952406027957616299169413822937063847096003381971299073095878938586372039788027449726758750602951065993139783504251443454963011276246504263812375828575090790430465287546727368145385394556778562385668170481080787655547055678827139073405911792691538918653485853027572302237018572273242131898925481126966533182226730451150352663472854572340125765135046180820596027073818340210523729219254232448193986287250089854023175452797363518641009084605684642432228940299656485003101572875776775076489469086771512689147520530433924837022175534449877360883621537228295178249135003884356017557413956065983475236471900557096655000269689671758765439301474199493184061483012912914953351852348349364261158855666016367747273248981534594165033890610115197361806659673049560814482727901243600245091282219127856413636562404509997282480409928827414244993970880561882965171893031618192918085370449494204478601973124048656717150747024418801956353896075971224957596134098697843659944637425471761574817801065101764776774141150322418989099827467303617982590897993913997035311886132054479652500028139398956597471680040892510686689601110267845913790450872802236143757272072715369404240587816336133421767955816337464632549426088694510304216489177122529220958769659092187203135441898497726414427690502045688715137491811642540413313623352648144173011444570711321220504053037460528509838604968451350285403491566862104825242862056701654717066303432548504063267252981639473285569667028726176612381964812622669967228743803962788353948431024592694331190720171215595793311245312309035884864817337956183599065517203402556571557024951294827432321606026145961870978270380274760896713230617947713498012131956702059813431777925280483210271784549294873388737647708806503919882578586900218207055722717023234506281375210944850378224214758106840296086881823541414375227758526302708404042695944339916101653596977194274391772428996988204864752535773244199805534468646377932282954303432842593538652145454765718796212348574663394207310273374743949584206551766692587444132367709371124133375060280522629565568299399965118271604168982243773904787298076194611062032298363289020010104514366530412132129146692642768961596008083664684431364596577724552215765299326880305814052614218034858739799029232079726050320887388412385406925078459562475450232720743556032541098921607032104189865629325928753724181919387871207634697775937877255268502891026016873826739246247529871843160859936785911995232735123013397955087912147959408376872785591950357077998774268615466079843758055880201608819183162873324954152836385299492800435046906920697449314292023843842162514555008995099501826514934538342054973083634762356009959524476434621385052456038314890857924661438321034191593653254165812626205471038612827512238380669121499614003946672371161311946446727474145141636580979799166292033718634603318949657173416313722419396872221540429173336663833353675051320517395053016468431884897225002137012544111168800092772677428686360411575926275815678779497115644510055350242835006309994041542507251254940244316365570245213578954172702578932537165379074862574195660181935904145368373006385606030036951165473133066133851331978456044307435692055303242274476164909374215730253547124225565748416244867984452907575368629706237228153949740178493271035447008271650762633283270053055939380994981679649429168379817883115905155114659643584586826364941693814247954285837011894566662668767481891559800893814649838836226940035272670618099211912436964747042949870484426444379746148444965282209590166253577270813241387995236194768604177442058634794402341129523233109511948354861298997524237951974697832943610259695887269822790839693885203507760566268269682913839133576503141388654993342351080581072020648130547979187471986051857408365802219310654579329404325631744992493251671278352204724236401208559098832517452748639088622690273432197397209889314822662331844751122777935947778628746869924956608429188114729244169126621159103186362790402708593042381841167279481319332752013214176788436754172352744828232160647177146114890378415674220954459348216497429507700188668609686707746168765780789369563446427715308169861793020167350441042612893206595342646659617368827890997680793289704304481704285556588038523386713768369092740204257342246487694578353972462383295744065303014049933508149209514510691799522036852843111078797662325603284883161842805345956693851653570128684635247690494227415538691241847188901349494893939898959029160598800046738103053587377074515866710237148584123036793024576138985936639236665633624047733886499251103510159693868345456352275617129671617338877371124678449348769134906174545735820784461549794352948112783540309322597262002183050434180544649313335517469279945065338000148557618404279285273209477750541882749144234829003359405890118890755361098175520315148008210728341392005437913772266328292198580831686832535624818520951895014302717521739107479617088774454916733121535272794149462738955351212277712648269753459970693693941054792796990770017020285739386170072144681148007843297768693306199894269254932846567625284256129054255432538214934346068877921415237373999681143397376978893649294937225505990500792024708359076457873217144573290972743200591202746610375545841686821346108037998979646379518254380709042541121445619001811341466413301044061146899343083249331055197655556169356034292937387011486395347332407520203805562063640956715791638452625711883956453491699792252538578117291345549694831970094132695824847701586750135798368286651675477840689365595506675322676114942777833064247064989988092933996300723670691749997996831185647718532009694928092521789542120135272589312543052479191134837495808969455900503706338418799211415071871090074342182734169089532210839791008006964792748323705839819560897059514969507121180206846011405371229307554634723490671983095826448504195011387453477289162190139599312518800880258244080399022968868546344715164112235613427814644566403401427456539508051449981829724271192459017468424818910910422189774118684390303479234689013068720525704620541228096473526290671575229693821243888347367344525828413294615745124439831549399679563400223859142352324212756048536045804386825686076849708498788770156198260595889483024194068968885460784873224800539673848167917263441815682332990232989970590563638087037785467264998486664647907347209217387465384200137815766497788832246770786489033917875002972534336990326076024196558262992748900087949091884314961695946592781981971569673642376405214024208032600589226986493365777254154908513834254092642543227329451778954532856791219599569390057914675508162785216180847004160476201260277543960072921768741332356580602145889222833465933994404061951235979593029783284664458835855778757735056291234911361034684766529067272011348914678951004335087878212324094998021892604964805993950253628402835733446096935702118996529942716540585864005429181723392251271337407842430421222613550799760972815416179512379030425351339227378365231591305631037754680659858665503544855157715340268268202398643422188445577621457241758567068501145944961331510919976009234199814824921604499401750951148930093410691995920592073791807034599815226073929028914932685710603162517986986469272171855852472788032306595713311184678976405222959534380504113052840372642169350207411025895590158897051746128151457980425886753088030709753313248891714148105942924121705382598160381032828843992878442903702455732066714427461620893220847404444048104473837878261274350529153073221511754806297825012336948767108339931903313575920692962688924254005641302991024777918278129830872436315356786270086834693589068312163016264655973956279567688845698910675982491411315186803203680025334007734190541246962899578061860191764700091627248483679476169023699165274525851983669704702998970289927009259252811185661721024432454900908245528878734105144071916721360566364327721378761109450994082713796609883861011316925836751295594480149455190022950510521584055348951539771307731907139199562176852086431709418010350014932279645977412650515257371424178341303461011971595878577232792648423118483125052243138353410476288882706513828454609172701079111576142237766373004142154210316669267916964960281802446091118679667735284592826665767086960465019217490637366467842888562589823134127521245824772302184610093451278456395587189735139128743871454704312696939409561956900907894541908260274517572319082228091264311586595929639058638833833566654123480169262792916102674706094512022941478600676002658118095047414612859052289961280737966806229886077907704663286732138259224995583339910743994681332746080463241405978060685561799362648810859639564171377131470224624270054624173707988080158239473118499838341698872167824147458266735463694885090646004723243988017112789751963316665046539209084729165773779168810133681526711279382755664830168469659621809855398874345716276564485582256624537534796886219099621005651132790562687450594264054038300627344334914477822588599797057681322682135927959157773770561846189671190402846832940890166948842340920101139582568363390518260534519712103991782694362401274099131969231667723335820689330502636960648472021350904847899654540580396834735459945514642404355432741924080396435067115919483520301700060042702027290370503906642372435414904911097333774309590105933901006841299700104215781646335407713250800703745993451011860653836248542488080636989231321233651898056100757423361596712642742583998227105289939482513799456528937470346965486898381339466409320123036743568834448756518495672844986686085785582187170752268024013934932255176162943854948992047048352431288119494594622290229672601036198978759394990793129146646950328959220253218927013827994445989727927843671091476239503772248861536838136319297530501732005423326347555072791953622539504290776824673773665909592411288131800138276179177400509512270025168029687766193530643311992242006696875049629330164427323553897874307517597120297661850317204660269615331765893696228647435456674110085607294208041800694564108623649124959632323000756616069682845924183154407851151724136590867823878961702619983106723205949068418657719825847958907372658309588460029866569145548274349969289539242334130502417356548438255310510320950893030453203598781551105096068495241727823827451369658857554822960832915998749009865405555011962763689035600019439778916162556484253417729874209898248439795095443894545890038124890903337476851723741613894366265566197943770528248612994264468828781892391442166654816869170319321052060362358363520152094272447227681936729675724139436822213924745912483347620443618273877404183418740045123179344791998900434276035987930933253596195821014550086505170235565195298365728738788964206635204663661111990029717078599051097711440072734847331906601527169782068100753982800831059640031051732805761887565768884701423530971701639386265076735189572160426897163772521194865958962726484413640250750533568988813352536076064608142056758213101397615402411321003893277593653756360068373050121816838014253342806832441135995963691918652830377333921739744209449005585006120777232938706032564865017882770880247085323125606325814560453775944641387557029697678390720788567738849417158302797029957578493526811498278414952997273595957429099952789375572097646815375535023842750491125166191518557914569821638288347551875508623122436995331828395525788845783827284827230517796754927338621966707950608942981410757380178492250020254197578942012290498802035886087699570794026538009955373545551202890909516823199450199995193712516001991773126789910029709807585893828291303205056409702353842480258949584403550471463493614868623298741679895325537130208358183956310416843056805155567139023049472148524848268133089917762742848021940365651806211623039693527044884740751221785612743566802291074887782457852697094649945514179029817683586773770178545104343707868293529324596464078568186162693518312401520255252038826161499625358166549169667136119169614198497563045691022616273115942724500540383146775148099166552212014081238172874752151184053492220178828445511250830917402083373588483088669936556002530711292870096377682854131237599368391654666579559152333192548865693379391488250868937305153413069400755750346782789385404157358735632007959135473708031904462655450275568943658594417227372866029765756052948198761679013707791968582234673759249758195450037849007260319143695282751237549974201671619445529004825832566395415836932475108155682039692456883714904480336609506247686402177923433192619052923578480041335972246448175735717884535508334952891122986057864834048409591974796781767651908768588210877102742051878923708490649380750309283306438335643642940629586324152013548788650542705324668828788100822767661258644874781747658034653024176455678525736158071361801652929169923594073238042557944945918479749295259207829958149822030171332374214021049629468495267157257373810011119697312952687936053814878261419838442370072771463107576565797774965381332428295359662991599131372192881723111788697429555480102866122990900925647583436598566311575919195823790081720805439866378622958383533706528369795300924409263305109745631132652427542786713512137136786775785059592954414457715529288839764210339871310052745466213172754316676671879814243038054158781979351850748751233721809893964143698456636732457669034028009712302112393597171516337711284669693495419859021438773253186571586468703992005129605641019196914148721389835442165447679685583462912095692888422923355323388673556009336212927180866740827531157567590334202504605182452276096276338861492663300039260129208013407679946866226494113421721512360664373020184961901511187070646566156162059003926258098864634485411550950219891485938966015458098797923119887639438719254072420464160799275365224432866459760796035017634428946731636204617555267471452866040902189222462389676363506891676666817555269059412951209437647205244545527232853083186108628762852970025581912646964616488653770008991117531073678945075291927287187121611894440929274393534137460159401621345775143170896817439838566236570198387200188724209384532322997450745762881241081123423276332831509864090042124598174689873967212849761642526978306367730623598967991898822116447145689765538101968461479041347161066226767689158578232496055260784407419294782674701114196661964599838115164670568015423721713162421570034479064964424473409070950259231868622382102373074171345272031084969574634442617706592104042839420971224414862509581339668121104487358366341618851890246679629063688380642772420448085475334325856432675017338468715157846709747923935150120582178642532400553305573900118918092896504091359558326680661007850144128071707356193780823084220608621704340420582483620357681834531478635654406365991680682532773725640042180806633883798787812090191436532540670406507299091470153817222472031231655458682145536660988051603914817910288293157377468956018644977988992612474348213898702509699432429500045063187279357544137134919634395474132244644277857974386601116676115852779262729213668356033137489127570205660689822320197240479411240212679780961930961315840146277998908326687679524716009219322211383033859322984974338772322902110996405524870042046087684298824623099908193404444023902724130016446657313569455107151840663633132877172690818238899056796241979639251484841197015548886762969420677927500728758717905297054453492324317879905964080205373233765001301544849374334547993330177182644010237683665452433844616608792619942467344366840792814686857584936802844208276670316749156798742844666698445477729262941388636239724195723743835027111425853976407311367425646096634258299498559626518227684695994297259381252963943584342385948343663996476463806517673238193251406027150521517919529050191475672010490097178266072744413140754501237145643555799787054759827345005837181425215978580134339492629121686783043092652863858063524306597493569022861297068645919757582624887342291391370745268955261909780405864491128897908272595046409851215463413453463796216536037199332697904773373864899424755040914994461884695848888107832370161121357555669879748624640499507786800843558171274544687487872667794556513422217989892398717564619288242985740756151390203838679877256900527829882758170949528817161928703183199947560985808340628006247279272094578416129834066707258411278854663129080007861550930517681883464370450944467662048091295419347422378054427982984263806655934317794819128422847248774620233457760665912913816617631751681049878669817898493108273974245361099732840286655109542254425177330707710852853197144182479870974105552905998130603411084232424398136250158056324701703466652754121230253812333334287237528563725647500242508380361081494755614210509527157002111861989618382909156117051425713660745411001384024022522913575445751576697280950206179391017667344033439711945196977729089602343033479147749498493555895400579592639959969082652567824689829568200103886944038774447133913889507366348943046179033079468454872104811790059621465979897776722542742726187944218010127691749683264616353075250268861025350591728368705595885131480820235508690996396399093336446670242947607993666003748506334825724002760962583704905123543604192702157305908786637460799041334081729973779202821021607615231906551950850795970739116699328516646600861384001454335044079349397564307422009292076967083941637222739862842624110311640691641456120650950897463750094853943467557960245890563877957597485479958908426191433119394312658212996767038259348924286463687183555539344935659614401141596034138725969749587390954900543349834463264924013106567579059269023410155605373283669052553924530321633759474964651151517443422009942956466850051539460153177614025513629629979533502776225946590210594841789167179012854606824900368194101099028549492626171090389765495902752731137498159003300942313491468059709614571686495022759122681606030744293949152319566418704851791653073385483591286508574158202730643257872196094081184342635049756550032451595855874422947259419173994032824722272731218092250893610242759599283446978567818768771444415966429466696415040632323375141783111010064537014593455973817794901984781092690059620541228326657194188390030203256631627410722221876818028532101787203222394279721664260184045545040855701619621532275923534887516082699360442087763270088492888184843628470565951098887771633823056492806632538047317711152872316020906871796066596127568308983596441105545943177956447150862065610170446798902628123380216094264201420926568301889391260497070167052318302863846270285953583965167041733001040222009336162351091163949654236140189042535732595892236638307720348603991751009643775110130496069545985796408844616829499782442138683995855304919659720006268042103708441595215229653251613131457953704632134727201965662119117015308193278735414171396739122238086904952391905444834447646170039601896199143458683392218812433295326157633416429769664962250181521264107644876227755701845528013282494651749668610976055774035561729939361328472331071008943032227533811376391809079540381043276927204674909360858458165187755251914386691339958359542697907366456634954778183648691922168475194194693839505143583962994432158867118344731490240471010313758549866973581124467290936364407555669679368469446931122999502256332166793982933831970985276225490801310603962391678772253466139046866870615894236564158463773025983208499361358260135970938469033827337391064300553350031903001483301061817176698706770481135121232676665008061832310505695914498104771525115892496347957570265107610004118799741611905808351817064597184303562068222071072131507483561103986744272967134957854145648128542812608514710871595627075407222751869011213045982165622925146445379712717612466988913864546031836163428742006453154390027803565344749316431575909095809477396103985372321037968787256248010857378732180999368959277360316115093559813751617334867907176419447720235504685841764977322652586617988572208068031221063375244826312589401111237680395649345494219440748275537752506761805281645324025728488082390610254365490213132301071822667226727044758542983126919782838990518059811467755883236864162369489567934386336691533403038585748550902864947274406452120009539399723952157425763866493572636281433212516747947516316556941131410751407215454255576054908106502298353876309715725732117634625593032461969642075099922803703242529040057276409605206152830125312151084240361473989062002140159392216213749665110037569191298041116849819330679210018408223785954978455230089089206469361650881907421120012541069264563953028697610103966029811331121827835620211666950404200595938849574048860567506641578312364058942640755943499220469563455366991635492286718764837567951866791722351158413203035129540518854509174880111694522281578307235190482289331575230455865287946826906891164112884793995995984008262093468174664235570107002064823762389245479453560827415443643909951284069501129757347081203496965168216998509704906994443140254116594391303813712864054385838591079559456251930046309795105595119736872356004343933361259362816863692398991737339363013042121499426075501677482518555595360181276689291209404396762982984819545774625948936626076462955012553871633561842468537950697326338217017912053458469892876152631194292297452122496766529704371397709576765547921230107397638305093808844188498225136595150481011074983394344710750698583166612790601894992294520542832804571950627107970626739648398574491579563416745390823842055970992816315892481021258198924896186585392290310107151037679526967186582088936498823182384924403686746280469577436654106111609296790617444811713589486076241896455035765307655265322425272227669295916320722332477217083534302711260508756082170065758540978216104653325620393081725036091837721726401100485170147752673498925529858346657004307105149969170440553030884777446388022490551204575034014027934009092867148211983311465618564472176557175165240810543375925523218698615965015840076465820941982105812761328247324737429550067682563338014256369941100050398865389323093877478520359377694890819168263224297528122075417660268791136184669955287428974029879251860897996315669755819321896699252289438861834954759729258090791392432497647905975899350321097863900205798324721746863346277728405103724102946405126024614668129484651193245959750731454178022072421854286589528031794476529060570142171961735855051979855305660915519354588708690933794932338006039598599827103762713257264387191318270306993924399224412107835598533228827598515909171492543301217597495933048510167129765623325139507984458926397581385831842617517824917773244520232969635065734738285211494117309857389741181139678722015763817421376168313843206495145274559666468168053851249283816805250944764912147306164360449609555976894150664446940926102883810071630471012991378754171328732926412984997185404098694759501994033904118661243261938251211229316959910377878207742521832864539889452430032257916290925662584448932726812984880104810130270055552742054109559942460429542197021288994109368246045747649834037556133497008661961872981666293303506598178570207653137919979695229039430182311683324077028554815469158824316610914233087019818521350955136559223627384894210589570359350880489801880918345066185947852829785836285975026414986414428306300192504564819104340014509457091015075484799318332030443471825062543887616841644181679087077007892134272324480295811125178186667720596382677784449562431028511246924059979245073981401487852414462102957407771602885282263619221415101078118015858000725757406512455459511734400148581933938822639570331033418160963626933732828067319066679373870910388350013015238979942009693742189883401139437782337701404218543402707813091732639505809276083373521992280956522766434923371997993837134431312119008136523562047017400094688353286294064509802512324472242617609875430536874998139111230377000217516744867915082728058447947672081084122504452208732447847146426134418852174739703044403592400270445457349588676370725519995114752964237968565627837247705070521988372352887579095835009172630853914706113998729013371285188849442456490652318657228401931315356502034431437111856609408755922863429641058234610725432918643838179976373072969395964016860804893316301518509721395844021325821916931454219768945416579911568303115668764484566662084440293167890190463887416839788154060450420305577502860356231899665725730718212787466714609405432015669312010975280269481608121553966908414213561146439688566261809924570334438859199762505317909398949280083795315368887123856207265928127318619361751010901614489389920813339282923781625199607463943334212491347490024743751014413452806222605850018971081298500605211251514068159460073395210155732578116996967897360166722261262280990823460158997794349751596500231867067642472016815865363608615153593636681305024855594068419215339122142118424450211945565995236820436777647298785897087741475173385827747547167007670005248576405855215799443403239731551636676063892379010918114845370405881088267543833345203688299592785548402720899774908392776375937336245952389659578626539971481923694620438460419368135506216072183370372942227307682521640963661016645208428170388910807807769294909798545608226700574966759003314209255596447144105238578239142539347200984966887034799793903505798906700819618667033947635907860606509842255916354074025460361542791213703264390029076183669485591742014550686029768197364013480800763382465537066815678797834941123127245758155696071045062359181415282043411229585097868931193122242604500701653460388357158833715487576850772773815777012696208338473123667138586706100902407783101896431729317090379038937124140483096749053529835328053638049184498596762997141444030719715228776160636436734321616502565482175247867588603936943824002866805042296464866699340330804643667729763993075274283465808798441125736570573812352916788839959934027888203312149250988302560136021843379395042658931901035183470870532175575353364008569834481082158062277204037891983875648738295187944932065275059952010971115756526145043319447469526604961251899005050219170741448601635744247346232591503954007375438210707993393380032515427212829083222053282933773897365714645156398147128768011506171494702421004181276684002917123391011612858456444725594893159915575922390099041592172337220799121111748183305608582942244523685482781071290934600124719697578153250350920171586795910532109153010191681071185794861325580029609075333802610965887221088638517734974609077612590539037341594815145130736327057507660490644126559080133052659822270229534524071021841487261024741090568454081159605852051340249584646942468035439199463131092223333937148285558327148961009545676186299866034617232852924953100101828746126264230187747892743603121115848711151276203190667090335798690971874460475589163943436942743494011252336888631103634590087421989145281720123851964974739767702818997974467942486607917803679117770665250938567050094906662019658643228774702394450097102056539012585421504693464096109866989642547989722784695576021140656765101875335138541113502682038414207657154119827992051327342505832570472692630343254402221556531576021990819065134290897770375148963782086930479804910797790528185200116849850386614991654240551788943223627572505200299502474487006543291830741074585331084972733937178548578314270776249565325728304218002258074246149757881214484336464832232288467438642367983615232906317462162072849560929924350375360755407829515468920270942560779490256375833311747342808504584727178174535185389024830619560355123199535776190826575881394849599742830238478271147213951384298963172244987949078341695268488002308369577245182309358916041977460582270254593238466704107694804878891408952464789770988288495054943379895798944722140981712060508118601844921469821154492493452629589041659721120061499455759434544596203118782735407302874981895426228084737272058284889443925364954022092851110884000167494480154275737194368974515848051944631820267448347500458726095640987239611699156461480488996177154863407016474288018179966790352457296205012481521259774437745419403252089822662327238632993498695621145574933987393880848212528934502099851381602600744328646210753509961243925337031347960236721265896155219675158716020359269997165618271243483149507951887438425144360785052003190635912236431292387706235272329154919604957874413440141473138782005970651998398452371701423052808574807364829203355700471601281296490003776076504314920850203430776959275049201180801112156476818258961539445226724493025063914517031974907289684194989911692959576016134108390645941411761449525336170814400329406909194477476047060359636778802558825539134516703784811989975276576589947973633511498950709054142000219925765464429233617968344103743620711198783864548824484376627799656412480406749057884721423646316772467101295125394151575155163214744047070937393186931134696835862690925864295236847614916469941278191169197186106658136013976070609044611388288499518519050550724992402404840702441330912730884404725710425932997084463457127502180953677073385421619097419845008814423508148243038275771728047044230352564339239646185760694561728307719039764817921839819976393566374767642154960395820088088723670005331363799879520650608055698377053234565973105841230704101267068281333035131305848342694092487116217987128130031423775362838552922725483183915696733743100405698748223808817535125253026266582942944559059202490924076018873511509020083760216080109811448820621238227341102928602561446117492595863003516228326226304716474743742444800969709525926094504747217958300797195181697571826546764391186921233632437081590229358680620146410365694109797034304674589009652555104560496529930949549104841601877002015125890617695992012897305167845219610294164965949599786183432180116101778310002050972385441341332367064963170786083961161262107267682359604796519451378403356700149747092375414836416115642972111467426139204729181236956889454926540912923793282484435877370164614338726111823266081337436619287415827588921212235066189023257133483560591230542409052420816437680373576409841986126890001416791148475182762617580002387389995167909419919504441069264386628128711691755593906983242836052474105687383971818566510111598528330408413220106414545350876160087978307004453697384153464672809919499688012473427240410272145206735496022961518761243254079946799474079847618492077075399599798920773417011224733783835548165378244413170987299427402775349540053783777437676548558248557382261422791704243243722808770580611168922768354597850406603025643890807037357442658922601245734080795187675161568452161090783158564104704168476482579176847477726637915065111637453866791324103937212858708077994822912122145467315833167405261357771264338672101202915972282854115555022605710289827064548222354019747317782322245155044185328489723312819575855933464666414030187125364008276491035209279276239469478359051190064140180432397522342284793886734108117460582916495438107339751140315759307162526110766550981611550308714355217585497032391838733085170014081282799298752432345776033552528439323418634139745940702305913714831081675186148207391202562419037722980479176487856077606044276531382118440873731250175253914673947826658538544027655759083213415849608412011805890009844191051643788451882936110290155539998729240377063460572290317265507450616971528609933402270420213780293082687769134208353242025195192755346855843221584874627704604633845926406954750005409116996429697067578554513359458420926227863264751732613473538093213554161604568272030080013379368801753879113074398061877982381523917629701459005520565135226332546491552350275012348269372527667586103498631906169617937678207894135071297018433534854623605588809922061137639769705254667011052653317146017706794321827617242801159033206733098963273584478284021727401059959930982454727675242438973595483433575194732026155404850527325924289874051187149698628611002339895653673017774253838309654091762072491668567270752577882289116021579056902509002751353865019231315618493780627269424987373764298141631178277115928555787718935774816350766093200335930584300321103791860315140414358815801563625434605226614926448523232470989435204655328928837940632448592422903698271111094681490380966418864490523627078241512710294904869446098242661629704704516253088041405455399477292790631266663022083406803345167233255807528534311078563769157112651860863841906523587076810815341271258981805126747671332132221535484323204464597646149895132928122634554506151244898699474477391581281378414419328272771435657447048360664326001447534805789452527705980640461602859176883622742563132846016421029651804483712855166525414695447760175645075470305078038759704639083885185446485442301438110059721424505531796202300751625763312187701277918750499687092369381991358529321183605385868797328231238317413546057469085546098277768980059928875432446964364344042665066933401831952980201935787727425529560975310403819224062804493202406215558823104752206373494725104737939998004434096836757975572206062994548041820952486104542588556101681016105190027864454409795852153449116585953589173716764764214627929246209213726738443131022952646854106950136471443470285950254103554542166101146389254001819788276325909728261505237744505724078941480238447213762509519697359092888578502704912776862267076231737604394600289223173744372833871595042672036050215825030520740469704705312620928890580775965159035159673101786517100086980183311981884894716763906840712802431894968159101709528960789419932649460908320751268962256078092830296457159229653904401099288483750361620638881979608208957850105207660242597355837219478647831699374343277236743816614815066694235216806204718142193562507905629760160220143730342025346971561154174471539440314899718181904857756782105129922750692167348061292573274438954147733775200445637208182348987319362624032563431239704194673920839945041630876991610670282327141226027408954420334464080385644320755860338435645671997744670544718341369060780361375524754883013527068229888246891772385317873146395503911741730151891447217354250261401097541901661499728237791622473344268847928284596629998119366078426571387469018233389281270783894043400678417407744363212670890522052057374088876292279274118143175786564783481719017556144188651262795542100258165092217926467060414492237612305652079871720257990915497057014477165371824602697285499835610095160488368445995433930018054369756903669493330500302586350946412215104520368279552592070494026563573477744348139412656000893382824514960156961259749552417330916560403493034282921958896392167697917774611539205584072064170028246157644921239405255415350693336119731117524168855635649261265085465656149884104452122779999591233842007485849031953678597301689968537105699019969646810800550126673787685609235529382507166966154355095626407196913485904403830842609910604651923577730539115130316626479649278468362233063964330827565380289707107834266441463967376201459308195795925524724931583255854423854886219039573511592846578373670634699240544839822739358328641701221018730841135031205345911355673404533520875546547918850397730396263199025409029350120426829012803075577772590541299814985042274367474510037953293940954688905665628076696493827202352742779019427654825436377552088319883551072754089411094482066387180338493932204351313647034152501320314166508932630078462329274557136830203568875333014789184500213602149867723954212580787696105741800356890748142017560564580259204638135407574828544507054697414020395793861232899684177840598708341898524925191208860780987113233355333920913929554106818345635872097441954767482320113029660760595968014827062214202066620254681206685080183308749053424467946044283191787743728682896446266183887236106129265057680334760173272389032620824048524718946392495235040849731444868444269642242847891131191834161770919615347544434634202996350781616102305315442043324511946190251199918110689208834310349516763013968321143586608643019110257747266712362472914356645767430578325835915352227816696729318863521733583452382669365904426211438055354854060122384878705088162499113288443556589598179928883813990334324855869536373439452589712911533501995153985124563222744117829721417884440557294621874806954084215794873635185289703031143811567617020288410298122861415023888497019201955333454061170777715526700167185331920093504202473651770975500462767049938992699831503106976463258749932526939673738443373103786816012153334729452909866462128484743505924601304957786723776840571770761300383147020239672901205030444822485528117381659471395512640788574296367202286639818905123207779988098446763507081126786098948115298850297815663085265247318141572182969907040453235407299729676114669791013323647306086963224493878960586242887557934751018487492246338610281573249617565404056090855947261721707490731527947128257382167831256043486440256350178504128226216370313723440332354745266217817674340283062391226582678189558067695150626115522823783758080244598713990742771412057548123232224246263356303365250233344896837084479561370038018109052013899991215458769834730411542324685205658161720993374279209072005051176736886802896013803459048240479572351369732401769115435076797305917939217778505514709160881715049375223930325870466706630697807220226030029966929342007508151700691594947739686994595444736547263752268513166832319795797762175817100804340398309874348140986394583524097650443545856604661385605644530113769782327089455510411892368566521477891583530229159131447849789867063602529608860986537010410941093298397502047246141889627204488161203434393068774669294112672066639087755326214052296582387243094458175772759120007241657093474497806045357670656929705933413895097364802990600382377223581379972412865349502903285914270434328679211594994526464034397337606441017387207661018702795023644147116017911385046774517282839749309783460559183750875308168719546853083585601569974941097180729139434265987415134396997697294468817421957798077950084317452944010907993069392411579421973925516836833769037112066919412595585806920650647846656888348401591833038979442541557418072140646767338818760054433666006901437182559863205054797922400129105891458801083487327021466257417441481634862444492518351811821716175150428916617273909537308661742517544510706266741974738011163003352246264904217929305456550971255013553620000911646323094260841218695576613136930563498124842761787751058994141003046005955937865393471461176977143783477241300144128848647800235578664077201605386361590867688860889404568039907546421557197799809028801559333023545188586258649666220158739851845893876067910982902571604691735675609059893061963262379921597624182073865364582114177701981334334272791792190964745907164101084416826824910542743239549839368496142927873548533644711420341270580009695189160007710607703821892817649733248198061345847466646397600731286656105007130912467534904709501030680183012923879367382819127888206104282734735556320518002067666810448627786987962116449702900341946088383161789578366836410921632198952709837115614837100805824647980054549450613197595503035817047257371282405123255920332487802697414685747430857203626227259911549931729806574542678590702558065877263312339907066504472058470977003371258351040301025658562507430647551831376356054328619800609037660369454070690970521346429761945305122745206872068196082309228128346429885703164753404141897649052746432387801677966412716364641582017226932641889525375914348357736723779082528538023644988851740459030425541861713234978221510800617035013515118142774009169689554505747473253959353799194687077286740960705762766443640590887360997464974365801805235984666811571900578509609574585754331734753781259286787068500162251838768192566539555969359081542979624080958925351411754073679787623646027975863569562149937264594949233070601706885461458877226935070283014736836150623460879707009333305769236889099460184679886338882032501931891480668157303266597152257344912751924579168332690204751785694871075005323442334997480819149107343411506823118369451383012646302068994734311330119488073372068657886592980256880527461553565739003164762402429742999635287158538298465849177405018972533935663246669565487017037388040810378750721198732814432160257141581587668077620234340203788379795196977893881054364249143354613307653689049130851953190370527758943549458176624176421502404324939890540694003853162649293325473635557018839225022985539326858426518155682230275654436157342707321802370754901261244234954648704311989811102738776492426429631705083759057704411472818412170566635920434868737971494072864183353570864064029287709773916476340795194939419937232608797347857935858744986048219998112699774418264898322407452807608613183732807804215617152029779448329005671505431136707109587032052452098896666888362234844191104439066516118558782452639613405137800324225435002894365351139475579496695167671887109370540544524926784319923985504910464348580194163389232099664801505623780805465871395552211064223811810628294899321972325776072870738650201352127952297093588073163854300312367767282646648093309192889292307257342511986349443209920530901378654473426084832043247154518877234485997225042358036175455286917829468459407099035137971812939928385862464939167636526359007380497599598220956956495277234725121215678869493113386747811419245588585766421180821089587765337266765755715840155089171993047937785409304254220998389543102948433681715340997657271782689992259861357447683136721362167314557382855433931880488473699632361996738499598209637849097174954492572433134208110805759198418977778776843690003548689790640336753184569392150244592003076549628991480423254473476764860284940254069508640159695928134115613192592915459750118800430002370192466355532069666107847848289541051919284340449995470121848969471119022808083661654383198141571307013973581501702532814587440726126239924783273827214757951153973409484436470154789028855979008015392606701291168043046456384657735210471918021012779126832951641916539137486035570087867917192136263664363329060062218006597371554485195201123247278881796363835747049843344548292519647532392297077457812330087952798775955609162061456337017888201509838024209359200624778021693831489206996681315595292910740377727068346494050319571687461777732603479386896918211528431511291627713002152652190408713645775037658487486654990685463046911518249307905689996928698706617016987709089620586829181050471720883862831051005306689728578856985223889584845069708748047564424017652326161686742215761446315881939060140594937435993150266054655439209304634006471247595652620155160126083442384105013760572686827631438638056612006594838106922488999829089845932577876972515104559418047688810168460235174230683084774395816471152184855479955645780001088292640243799741355455332861133542353423694775992286600134098019423027695969290371122383740842413764491932433629540303523122325042894106256141189211560369166051594190619822305333753886726393265422936704091793193522376946322140992869748923686115330816686681822953329856077140418983264022223162967696273127685553216611193896232177508297539324951960990618361313463154506660572371144263152104362815942301662651114277057789832812455489995254819519901809932766814487863838119178475825682088681094379940934201499562638223768581924742773934440790880418834863576354083803314633725225291004333412015199428250645475450194951178308781285737431229289280626428037717468110869131279770284805004131987488886885308268588588778147455123097408661077573081852514804444284921252593199120151733407556837456401394617046521414929430230131204953649634571574190400585494737823402479363416706610777968203984290124196906922539407330363359920611373608005379502253557346913090466907986659467380992357273821077926989212735516749696676242628022207708314669573354598058811951718830721521286602713275255879306261003580030846165230235616967729913142382161267752307048850478939523460946259592625139442307898044738388476773210798223409826225275277609928618091798738488771675322412345791267094701476764218795125513416322434503511095759398067696616465181056735094656213734117954696650157142208937757703808068948286340241534675556908788351074412168648047678579736690809343538245368687240679165910059853777884330585264797598078663974939326071914415539758944885638049998784314000420376791920710466815064973971320577684770301862412664371501571805889260388358476169393400743307139696393382243224495296274378943067636192991004062567700953267713089674121240585157638329421072051326880644368132719047613420712480951795468037102493722984445570646972711541448939833700019933791028831597678560388548724711118737561468334517109540352297639585023926692357513761795202341551630191175955065213136447065987194386300942082708742453036853943741805607748244235267975591761908190879513569858720086829562713829297489038631604828838213642479285175192764581335631590419855169761441419868194501188017804270442900625221949575804455281577858262234074996158333072557312415161381671930041298859263921866579602038195606102283616893840847317643674072950144791220703135836521880234825598935887022370693278208825943561870833294582141872952821308630708163010072772308671587076410795119744375983125555542946403495110525231680530094070440043804221733187197747494172426583696956594169045770784461648320480058865468746319818996372823244832888727404525564696680476316235416305780921418997252778623834423391338391121232413170994351517480796452234446417019869437107026990479687081805155673744887146356322449452938160611086847662700240902169027116964448170505909194007529320727403467138807372490533944882207144489228303385166199657003452804837995155767797772548995034186555704635717681216218967072052099173494350714416948454529098442085573441524802531840399222182746018515564171123567785853652900907433389477739050604303380577426466686500195137350477256794179843971367870996778460883465914574747015307563314017655989429601336257994406581395490279052294880845300511742595727503270056974530120127637335430418924975851233827581307944739745914220891963207326106017654242695634223189190483769337547548802420688399477524123692138088398318783301593893271048056664290721756970503449862388709203406009476529372596693946819025838043787759121095685789517494092512321436049717463365045604749499126713563215724675624828762027720330141697555766296207522074685118960078285421252333734885793222758018266875011478156510180008240440042397505024777148912611492223562258940363958623685072937858247398118150765927852695450341720008924024864620852994025025107851754154558364339991680391377926077119437005813005815028418618718818112792598389861118872887388773096649998896083578251368781128585206806974142109133531801256495568723452433228070754385189384230546170427243086851686443009535621342193867900878571875467943047346702746514822130598222754406578748714294751102273756369817780512793415591609335054535196327813504190031412779803399595355513682322039082509609562431796341545974245589440934296442165925814793870587424692179174786441365825691486921434382369278846185907444561955334333831575009482662675196132957031306722408764684462507336897686668797212380752196258150339035092877083835629398714206358672483272214703198873490942012576374582874946985474315815185586056812089935375502247151245685650032268462332717443279870646393164371145408843243791713106209818665863312486309821994623218564569495902576532259194936957878157327615673488143132528820652939859597249425297718403045116531550476256620496963472805602819550441652530618493264480669129033226886671863992558809307601304789040845883057444917719041236042448571586533780729681525757766698036057139761386690362688852211490712144669800998433480459692311360043020804819028540590649561996310841866915583053662844007305520577959998954485546764950159777196238368476170499291321988420380713393416572425574669631952268206359061454348544539677163078293942271027973619632061236038112076463306323207473956373737806143895264868690985157231469291586652734574393376568585346658616228300812895040752497390246793098803087912813650759106875914550488384802252638503714148801517038438863062786464085237784095475465116658397623451037706939739894096213550413836368616225778150905960259574142701013446738355229693352265076770836323064930349770244199312824357577041677047475090635653439258599394435017984526804812608369789434858951630436293498516888906400772571983361495759763541912937263707705397216619516922027060865322765595418793840611563956211473450879403942751095686877517118390745064459477996801614838842192356294866299047940314763437744496116431832019200046580861625185067617419090520867178951844468479954256263213863592564271202606599861041550246428472825917224936325239339901911698598494750658743613013563217084081201874653472097584060785181571143802632691376831466235428193449203037819971832458825312423509399795618848341764771549954216452694778318823078444449418582947456275543604479291444747257965286736514328431720795701324485545330193416971524757757163995291439113820273068466438268120657623901899259332616452870816141576421715488363952028193612460696906354726763477741817891497315614905134530099845171432345952582883122044424594088064442044232475743169522295310746885250173090974907572147939401885582315150757724014931551276598948138841622647356624791457875274483391492884225266800376906753641545273694142291189125320151645290510408353507398471225068284131952734926313302596474345193454843333801151151105259888794662784572314745037189321243447942916967283017744644245433016609615860439213134537067375942209499099903495858008097301004247439967613803878815220409758943676961809497356192866290522460476457573698836684398942392946654640120546541479202137560588735009159323186134487265278460574492382040698777116017949655696668750718406832748947849813117826457267171430126433090042426987494608254349571249440037982524649683210904485640593859407593991925774319174134589898360936432373116931141686700646246166972533315547065518449854989478261288307565513824377753223947489952762356381591308472111711423935277771665518316962626445597247159793138640007112097273379466365050053151763593290309375107850701100586929487990868659478776535482055663867621398364829542630783856378864365768094234659358249746860662876645866105525460473142802246817844840651332320482646088528556181770457348828306904774969508468903913647718953622309337925499913277097860960369864620324009377684599241079414118252104511551111921411562414869000618808212636512123537775119225357855297087143106499567275198655670186174408519613269848977602890169866728015837022659032562775739045914072752860743959914412604763354713541550976872640988918888880947737092473466877152231850424194544270529383985360746908103428656502676319911650364430208733360261441390449786773970127420101856329123741133833081192604223850872312728674466755481400534902959396507498459072506677522482887348866731905936437654580615750377943313230660015997836533743549568434677685060411628367505424055229820513842102684947494604834591548480369149974341878901712358291741505129656247281178398389625249174348247820972582564046674532405250471489244683663458979454634121503877709028609604810268750318019222161396002566552501997796006723857355245567860624129422383602536805281409037657304745213037148151867863134229018830205900492725349504265076920386222623242735173320439047136976005782356674651814203249182341383329313847589775472336217243924001713669114635989518099070682343975848041512725259275345730010375764253831591662601858151604155339523858353151276838385373687499678980527332996674461536830154446806733209493708320834765565847656597550691005679311304830702945504171062615147810006438621621951167423020541313668834925146040544170202970121997027536677461866664229336042778724884131666993294296894593699952030205127606818904060420745795079598683837974580141030679311803103842401541725562207295142741494919700430748598111085714391740474406158648174673896225070607055444894296881273140805785848650295122779695971317981067854690805862457608135309468146992006160954095352008206407620008437969812146706418075847265079211231293661861297478037917783865724702959947964125524505677219385212726863045278589051464298753594995858984228580096918162096519978573129180082631398190914232996349566077239528402491444364082970246778241045590236878189910822472030438590374928001413998870789557872832318466932232413628785138367870019256475771795664352692975177616595325383251752735516162333531484135029393062658473311003504962595431736854323516553930513032865162512358442062803205949017964046454765355217262799147703835687212457932721730626373016961457335654351514932773545396949976724359356216338108729091944860537322672894959507676931338916197881653391823544239559971992834775242338243812036622950126199386936998028750309379311152229011572873792531507727959526131997021591824579703316375019709929822313666709433060136354743306568804735858887381201658630516069378823437357330111725108915539533424135050427146092779012321162007153475498496329486447491112587456365621986388999882586416710912824795538838858960727241370935411930898989457910732254827335317557988045851516994215710683137448786237541926902316167489830959010819782209694581536564114867358188001826678582233252770027329046215125906389876127525422731990525866383697956410987221322184191794307408790075748063022747155744156816086563127845826544690204716727119826320871374887877593702029501869689701447399273368614084614580083275802506782879760916596267439906509018775559711663287491849936376378823933076029071782970572103361668950747710571409524560955020499805857517316914633722505533692580585072156532263230238526892828794758806790195573131283352397998328642548450690698481522797050416777131373217168910889811497815335662551592594451751962982280600954192335092426064319878887020667353704572830711577184352649249172969699415689389556369013014409204053435507845934447246371326859813064152601775919100926282634819844619292642538909948966655680110540148747834343497157751521470571171188673743307736343711689189180199821315216117408286472168177115421238304000233458694864863653173007161613631001160048078259953302276777637387972146948144423065246373058705509866396132983293788336878978911640538284064650568903716538401868667913830075630203021624708627219480226781798676133617184107150839770248612014475495181897057978964448280450804386736369334449401838929927588022643567269165971791170511945165720858476017459621495446215349339298615058252487162953173955994611026206085251520708077972969781102676454724887486899386245638805289069216033819944264601623142816723233749963170022324625918680296226920453880008009378117848399297218238755440794094473978496318184967919551997391747121503920044391094725748816748711589526823970298161043365060559233957902900912526332390592428421616742200620696369417817429353345807662483411117083997429594000580982486867488924834754042950762468264732261265942569922910529296550045613319642444569261111139364238168138299493498420536751915529485758200227334187199611064440351442646840040920863935608800295853763585634896609343713193973172253757010978864503788763195640903718780744060354121947897497605445828692226611976960947820163494529750211433522264577645297686045965079688977358290842726494658400059387993482334110102875203192502949752225722613112027505177249630328241714962820197613528355289693730116214995839321789648252755039407420489123112281642660202948555445699781502127272791266008248608522809218074566701806424619880262468222662551587033072489320189816209028262400518143902350661035895172883349427443058510714606568769230507821803976809689002941177856951162632738304765173721316485672935135775731640835646118918981310295551085959263261834395867802682250315222631090451990369812953901809501651275443402636561958888506467136910588892991049945542445069927387902059871734975281675762264635286002868488883576391612765874390478036949867150773306273981334060818285220841589575384891636372882896499939971957595848886357043209372254266570417102956534662434294630808297227560358904683633083928377633733207574677504505034084597688531085759456472522199340297659021820273971456020968838891329652148223695533512443200769579897176052987338519487765615230424113331704687464967725957645215243201586181584003075564780138848865448447348215362808256995165382481373726464308474909503791287753639588755302716393092218782771204435907336930344844458819991067231142537236815002033707572171475910910931258221207098574848088287637908633383302201807626515561179642876971528760979120852151974944064905661542501221969633814665522258011881156406951538606150826627327129870929119127922510852859916142862112178033284887172512659089901710348128246589664919677580790089553466049712130711031755116720160282692920283709253117447141540734908217713634117623683013350105194622687652571582428957758609832948182478132685257269051023666319507602454300603315343004977306960702674859922290557451094627059760081582938285836663908741871432130781882270511668856831676086593192116009094942457090032180908248052816550728444407160178407747394050009840955485484373844347981933828511864168942600058231489340010529802342849365409989630778030187730311845912508547993163994809992159708932686862429443002962465586155195328890748621471900334480807972027286688792784516018874461438969455090783660223258728080529397272324451979715908256148512128362468892620707346599672211307325816272151664326768073644340923720244336499309197386729786674910159874977077668707846070402524117021867444346435353096452924426408020028844438022440695199596639881843745418538192844254549500847735515411484251741022302995986919109784484613168891729723206781371338165366370466493998245635990166753312558728057774396980588617743058565620096825945970440974004072881179850473693305711435700310077285641419016798776016345219023291936532644462343635075807381321257547913409060427049319109189688731162573251259297429957142071119031906423533206574487967524786879965223445887325083132766136849111210507276707430838077613230576270967061334771309478741291445331972250192697932246400695313482158539748208200529510325481761768658136183079241946979050487007664801569569853191824445011296681620526801241969950171993398467693655308816769288097347199766845107309663410968685434541681297468748542129724754638499919016811527161507950402834528471952466738103390005220842723395824927060003166706572030886563242617831544664352211324333829789908399077590286460526369194743313462214447194103016476428753865266763706582401279422193530037279315440904794803135921759218664067938483109702558532807487788231810964762983524190374926548201984222486195711950648392533894349540891714787399755060967110161714822134997134974252863013635676226238150889194874583273499820258501069054532216177365832892975230299826497083404378862606574346372263626276881599814933576433962744414976706896873947018628702854556679124914481380283811106174705780628787872191618053586588404107179449200921618412860392846300410555639129844657360763776822424353450280117949958006442428376101175096774172720442594045251591423566274119794444886559603110367059752898064372453508683994578137237812864379646790337670882820055840858360234244118076639347137182354049992471994172280797347004325318159507189463906137631467482794054953693825294688672902473575245398422831805257658576744517559488145548665633859566992544018643765098617802866353231083819428024691568332677738738186549523716006598836208283281844016754032690811042472712428807464490638826975273414319385492201875102534979858057543141884859885395477461372655371175592217099272171964487230399959454606155091668579672773962724870566557162234017052279858580583081740956005322929434626219605780045125935688578857174495911045770586439558132501610618831580902373875707303812861090483284127860039296133705698507936241237574032771189079829155534862178651380706877197433255058719961162442284824847452604933205632719120561075723677325720224150638757081521043473137640125222099621743405546265875609154883281180622175508778811957493552552408485647453684810779276024028315769544975406919680264431314529674932508694499858365223276142732795965585033522094038795632248421777106519894051576715127874045747980244770392547894123166772575020966662971052135857379835040253230518870834237715730682099824127118362352508826698999271007601943555862490388459268370727426891956712340058473204529439919413295385058518571982245078919385918283929385373102610483126749639982805996609750783099984490020713185927032427759153402241660247509114351658847788283398744541476514524986468338353716741052925656472797784047647113229560268275499018318492393933755509302684723024228171693527081150775112406734754331266640188309034646629771612799497404218875402291877432044957487899797878559935880323118535279732096080833224502079529724496766305573232317063925029068261167354317802328836686576887338365080160084852895888806981261199721821489346733330274725685237661263452671468229159987614845207863793638183796493987788890762115716486855887807057287565424427829261312967655264960351622351371951564588992940201415798669056949424747526509858535465152860949740810247855359549366606401241731561914656714353526867363054993581360859842370930380976128021984758551694580568151797250090570506452935016339140262553048141100827552442971749940835366063781773561069511254655605139810546729405785660168982597044447345307349270363770556980996509767853442315788778645106718543461556011518987464616429176947770225884465536270042531758033386938761612055537153381855067935514900814028783327211831611217614751978870078014177295856789613298139747269296336786464920796699944572341954205336116545029606503890472606070800492472586925228919390896630463539986251870491755764957572353005964177287037286722761854698365874739258235460801440604841366640178541644882298660361189044135404891780853072952588977366950203590414397419446661140241243975782396303952087133539145746730797199703966569815851278796385944287016010685949025567113027401514337384249066068294673661810852811780394047663361744734156174136509434338284774031750392699724497937631424974109133955048930797808743743458898544116960248569057512473461300629076538271817981922502579193310920659147967170824489556943037927971745318793470642383433953439482083012180689084577519738093647559467887272472103172567343290986507996919985769045525697527645184699474124429154199187282665479814860722010323481083238797562179925999738991937842961628280072594010766301303885169117125928406597169187948488947430664778630594143157897144823547520546757350691513469212486579027449112765940298740759620801955190124837148106091442927898042101217326025721943554540044966223942300178358481209630418610390610609291399921032620384605467326946312166717557007370090726446455866864616608329687776823859315689163163586889196034348719725323775279239385075177136896900453491778688867281139306073484540930332253889256212793982783736910470322832226468681058182400062590768930236427177363553870145324048303081353783408722882233469602814915234924727806467104824110310693362589954380528404919097549014105616310224504721971085056704219206756428624734999090217425502730695402935442046374662321974157607457526398702630884275498432053121237245999638064107757339155585996784156913045679151594879320389448764094973382350736484752881790713064670380325122488696989090016321185252074666207666953644435538318507651344638863203356238987922699081675937632888366895064740040997657480872519536521191687089923736079794485032865170347191062810819543706231578014740269653344470039309740850911853481973907672888633329962960500745134402995388377503103601994996470607678065120249247580191728002096861990180775204654040507912795472464548156766672652602206985150659022340614822936051709624754407934347154717682633452024453712486320222023535550747249703082095517919454852804753549629317443326282425792683418627089996039751259266239822286520068986461591427594938192320426137967209029215855306922882907635956838362441027797944982032518107426686754751227348396468944932877054527282791898756297462675081230687947597993151326305946245320445626079523241490298446394748045888676048112258478132184502900514737785602208205672117959021895303996465987158965950208565726166238053681214214382826391600426021041100205045153639441205275449003554068989529909567549987279997409392460193911868434978681697122786307736495383817375667263589594618844181004476782670830614979684060807670655951331482363961417631335612037424045706664420705775009691640077371568039462697174858485519322015581248690819495065439742839572725409082815825667750339162524831991094327217123750655621647848457419419541903010854074103320980683103376829042056554592579810232946717493789733045275990476209676785634163791256974316313386586266638670056744578731175774868905313216542531035013486724861023279965685620553749675427696728960317267483474913774856237004739726960184866168765489328105476647652508134018005716044675020863555446325972650106710961808117464518489734130819440075322793588866302045332161967297105155182174252119289724036192323705178499084564677226012993386564438472888874959924023570657553179183003105103141902443242545495017535051874285339036818303237459608290015888011894297682652373137752543822743392456452235986616669199204432454291311937566497054488036604870813652581198271507781594276182360697561653307483325483151723974359440822415885941315834572577829397990081363274546393379610407987410112591525223272258635734885985091231846268862844203069459798197275835385935759659907740112588147442184949138792726601705147672520285354453800112017331056578491382463337495524565609930260919074376895188001618758879234316030824399307822595400056319958921404855721463035968587974701534492303311335370235452296547141384419199165197038708238124957227943722737373319249897037086430332585762786718680743714998547919707400155652861455006429045050247760638449571773773965045002957542079465483200279457122786046126764558274231204585252297107036441425031601494920482384403103212003799414311956929094375363734906204093644981649968839358779624232756937790157053596302391188015572073713647920063965179389911881114510156400343027848327050400981465822012286231723878442250805868716460712292991145001594555867675719834491689756673164190428078899634658733455675665295311726317947720785783332286690483663541952042294848760310672244632648347081536998456938848461500452359073633160989316056567410938146784890608372194447982113704408757424535682874803870772355969960882869323003886200571239125177740290023744496344501411199579034452648904097631222184163055026416825429701108862749345114012308132579569929277013813105324537367010058954688914843743567150157868476912329066498075522894544755016243481123903907850090408004396619502730429545462007477903617723267581016341460383787383543347319330698807502324547925315497256045292080308675497226498315019281720085621185103197747953676357967118376514543327710129556142157539264408825688210603889890401361235435927009303146911296625757582168684427847450447353896971913204061943999984411978211477228210693054509526478621091439363854574533543566065300134072467034069166954137858222370521138570267192776467326778655930489975567170044764883028905178315662481722401651471401952458619404722323410471379981330293736510591518747644457187263822584496828420786725675188871697627159747562095392509526028036051812567000543931869672111698373281961364505001402566367975974672031221055656131875970719992941702182449947680957001574537610228959548512847220907484817495285360192009295844197500325193061821498871321482441449114727349749211108923742524459074967165255692508194839235419632232996356664547919440172724603846160747235421470007511452172839809098585465716372370210963577330011429537433107752272530275248179790342758236163699090850428404974063875552565363818241566150378329807900951734630412731658886734953212177788915099463697169898289231388129624758540475379157066001088024724830383837159298529018872299348021203535698886385403262722116730966154830754095805979786932325156070399261495658544981265782819011397229437836499611839134778823777382715850542339254182757363422540735259013742984603043306492508919623856483380722236188661315689215041086526317099339089761596265762064362088643247968647595677454298961404087020708168113242054936567120726821318550309402014715011263281038625909310928117575731774582532175209703301241994695336615065095094943402414661316124720925722704299158833375766843589913239285593451257906111336322908403553697474396857105956918759281703945766607181897615926175844113604036986978965757278709614698734049587844707335944191358604723419082533721204873316110757912078774924849138619134998257977058753470267705549274013275684505768356953750781498132701634956717643458090877696978884179093646441948440747988435404942891090466104598939497866855881740119626934493219641671353778355991573663465871296191340096823591232097222198816413584426960605920997875940954236933344504512067044898389140105297380222734938963844708844100496125701411120214596318103985323935127531843242581897540975310137753839784547767198020760413632630826094519627336139686611169693967972754477462816890394527939551528801489287646962614059863834970847005098377670903244991266112382383976250179314670783853237429881216119430881669978959190461481965056883312652196720336965535606388412782418165303846646146354956090334911303197161924730099235344879499185591592973629344711446138869376083741253555023721810621781252919255992958562211894764079703233414838506419281845283063046119842419508690998322487851475193881097293181540257915760142565235021068168176332038787681941559618191499502195584829931614319571858157567258318479825715142277195600063697586224534888683055513123156911115168038449433683809028565539765104247572365315589240532557103802511002833341090809084371737571964155852039637298852730317159804014580849695845459655874922785109008642058477076463535247779115856192461962844231982840152296619788619058741328725513289292573814762826139643822154882020082521639598650767971323576158607553861371333858532126836435981794371477599351884695490950869988731763843861791721848920960853336823357638945076707764044577298772026513332641234324289370280352060674919916894158964681623705767934519377697836933273663770386384624189628246740551139668647649483973090877574277019238190700748776811607215454902055732635776010808858556482882486977473721594993540657060704387498012377978174368780864084479027610601071947416009403647179441239603756520505549279501870827926538578880598257876045938229586996682560572725405967611255052802509234599696609423719954089612686661204296434436154695912705227934640172831998887180953058115363351485449496507414403317139078220412149543674281279967363753463669170483609060669510309410885815040082337797937358893424409892261739150556556600016965851236698365437114840286256358796430024688287390233612191310928117570882039292789408417872992572717367908374616371355341061128354744698432392810724536202984063275222200280583489706839831018634380385310259530087964748688040774116779943248719184013264197968359992802722547402113609061409159078580297808853338659193218220028824022693904513666997991761042571048512942576201985700253140664187532468973585508721400487027844206268732213910978228691444337052252896232040146085317495547226659519001073957338119476312835417772595102492217741675978500613130335768392677880251615333714307288279497957029444152804320183652335790695887670312306506960551892938628688512517881818737993425127794894973887095534190430195357004629883489895960271695486343789938691668899367925071468567915941334890221495377729512803974987031205226541640222740393069408825562230490595197292453877786236509290768732284004452760164572022362953973637817214843280278793930607193441404263889748107247403495744205129002020018417439668336687267044369730622080196210756125469697566415386576213254299096970412230987405764447648272413938872502157959907880928789418630409230111043948323198908381252838036150623771007132425104159647319036355364683027495102016903960095247779798583312642191894831512410906187486438445360870723841431890168639840466100309562601251388893416760910280353727537362176618994359698394244580160535394426105172556198803057879599572668256880624048310486352593224856892037156724874481758504687396442267553594156405647640485000548249427074225358853031581051643723232832214490633055377388302309780225168980437099835592478659986576030950138814456857383992233689581446458760546237901035674163451444120488503669658182139692102529382777788541657792028487733771832728223789758246609743065812813080378027840805561612735609014541956616747007927700964326020741123062126174164151445647633655290027060240963934603307801464330023857865168182047149282103471255345596023697224946897744836991654102934277899407562458088350333130440181364385674822340753655130232333394229648421450472334745746753285585778014413345300203803697639616487210001717531819907134784703512097285097205011707831593790061422140042877961229084178654046119443148105393755877022415445606870763067920579113823934150235490058788936647121969827648820754318988727688434788900869700607001372378222880630514465372040692791346490078742695498570214310928875287802211267654426253077358793520108239598781908109053358505086232283650075284198071439325614305204825592437107255664528001363520346538135846831330624132340317574188666512155456616861752601746758937592680070138188526131951029529769533881300491301727550602978729583394638857728407824621497883332762579762878044891018644696841334346179745428884123084829865312947704754856603860672444240275521903471292589725854144593230457835556955925916348187635795345828102647975450813329442409719173615505277232788765668047185200997965270741487464366224921637162966734350275650706755916119660053087238892360772635763184945447715829006968782413450026556144844580156663140717206287760350705926841970840645597900684469940450910119152696023827851710989550681650394591554539855634023820914812817520094365876370337849333809334901427243486280566489273512957808315298846553950040932302555225452443294554414792680853190196386614573673585582178496473750699212529553704717705161265828578447530606588851168684825071399132993403471836190338834227371947362562498614674087646638627988644769034060881286964432525992670380297559390246847420073605106401416612973808225456407273132520225708043807655262602227868884572127073105070120656409314943881264544943144895245958713946700629087753648678808320609086829425025433798669571524340511130519039146565391965571232168676303353040353724791978125153575576148114207655856695705352484974133784850835297010325769978337000669665943109869347543949527951618554000276062442754397443279317527820929591438240996317187052641058354131698746746354566505933154816678385007940958639330642363089491903340628503543968808626690324228548177642628274465223532024839200211977925388775354547693448568317844719012345935845889413902772498302311210427309594638334521614642799184221671757226331129666583117722803886620372368800450683177113586779324260853842740540745933972907821830005073619426091192818382138634036809682839115073364962853621756492542329441525520869937714482519964394461588884553084622586029476617726832941613509750450057016642212621701895896381702288463204283718030639997357577614397065222395223774081997770576122815015929647861378614717531368853342284366700480580127572395634509613493308265276966538723021184847781212914363473325455851558274097633225527964877811656628714888547308055514752101448588762001488866511474060790238056102160627721950751156254306626266445145289819753931209890361308441937918963127185638749045240976793898535626755036753139844308531347390218999055046574926109254251759373294345318312288207282965147010003895242398990356073835413042501166242854977899112281545492952025805836733061976623599784641758076315071073662472021636836336661726484929258262150362938518735965638788335787375235709558344782126659357254646154214975326789109930230437097980296990062280070510065074107032405042592641836995738080367952864036555732634031914089795937936237320445410757843103842715598257764110129299501532014336333688310170875066246863683975188683919468217474650049854172585042555226290652179571897549973160104388439286713578872109075968644736533653994850662085700220698614630025986067586787564432680849429390801080967996425413949963951484664117510474659611917713352277509603718134682974989875892711298747839549823553151634091972693268526242460213827668693814178542369974052925484317720156635612256186005146907771559634805813522272873871201470251784305915077957515624042385882284261338584944958602855344880751775014540977745299271665202363642453612531330289839725995743044375034339953230085817728195826280030654727360349450516247761298276774890747638232701197211025123183567097476375647686542286865118730579609761735833481608738155716060634570624009219897957970311083079657437237882353384760939923331396803142112371850775974351938037333704235313309332981316089780630782577921892833882866298997928566604894601839104273812591623646162581420673050900730130113053041605326595381977256056630728298541546638615173427183653217478715249623632137683517829640237644362244406114823868628354792314610034382592297458753723019902269184888938588987882761075636834762030615397711831692667450473085675761422244592717030184758965646336456760269061538006409939238372959006356727408603893619685107439826719715079452606849366569210069562458439866877644625164276897117291647282098979929725460665399782026573546136594713293201451045072016961437899419708740166053875940036617389039797706090688346466945985038107812139752238281349981635800715806323807213919675949275151535468407453239215338099124974398485993081226940212590103465446971960545281391514722701420306440317870906904185598301127453923838030431583457772289679366104251162548706304660078363726744673565853009588251126373164324640134732139366881434109653893478002111277154902279763207622382642775015652926440948133166610550031947908015669516590620502623359624574524975357875749747296011486383362763395185868228449933509042534315488337609530590028570988286560942911164168198199107413591192865463249177755898721290360738711137682731347900703641074371206660527258825813374334839507041645293535982507032705558412355279468578353578037328878482221999223683924218448282929193531436477585204540816632808381879884443814272380724289900614501103224640501238705432178354884450008945355939484581559756081007925119749312620317348327033589796496528382496750050638948594160824827597967418156980531776058554191809885945435385767048881159734395282343829488068429739160242518688657455218298603473524945394530308336172744330526898307951496244753150892275305266423354670192266690121830015108621571450346914610459387446206190253053878457668709014125658614512351252726103273802580544998883549433220751134246257868058927076120529707963115011732103721247628276664710394491761026526284674217788338341129801318973489330944172162116360479111244999221572190401535678257352138237679615134522517747044515342971806213327619643369134893146856768615056119599185635055752138413648511734324097984429416616998013468851504138381277449451571182725207451839896255105541954636138179503852642102444181203203165874125824374207820875477564738327521425138981872715435647427665828442343229954755399254232568159815265208152915702554495543238019001138682083986226339021315565783131211849854911062207628403239863080969488266096434817549554890189758561014803609070172466394719911974497450540450701170865090905258103657561127392999452416910507218673583333407971084555506163054027640392848770699705158424457303434121187334164145068890810244765354893401542268705916557842914445106649343687459336988327689725509721735117666672717666860389389353176119625212860436868706325559249418243834460441510794953346436336168210229278934023893710426650507827090100527262211033458574510960949934141989875019854902435413592834727098334531085631660904818920452657179643241230228195215988101114994132316905484004877688053388132543807925928497933073561741829011721652570427780012886719578334002566797856211769972302821493893755140665973302065569894108474582431026953710933593322209243384523302422510828130769741528793082279333136717314369461585198612820576168113295115738684575674357777516744726416877764122470055171805658217177293883792986045112118648284652857147162893019652948362960963972587800440764054867905465269360659252294977450746365749053991176775505643194586653243607594838531375981096265835497490007129603242280477273602062121219936562825535643801649290514020861173582918604681932774584463222754309525583626163761233064622897013824749551295287305518042783004203851444929730324395575164441087640452574941113271342907971987432749010228896457479174230091436970124742405717563115057893674886173412663945068517536441257533369799568434027170522977784300883668379885002436100862634010854050478027956362396764032158589363852589366550465295605251930855460173664202329480194119566697445042735530638079025105566194733998262551517241012983533285010709242574739127947218808929861095179579393821698914379864675951430011513465215052293386610127099809601836185436308032844950567488573904788423145520447866760682063905639651140558717030385966125051963689601097260686402018881529917485853441344876972703833074481375184458390731370764356660864913915831742224498325800985534161979985439273821250663512783122637260882352164092728680749846695433255640628478514869036232627114717508844237047691154001088287199478611937434090938287165816066202111909028533797404851759110022614992395695456739277554485510975734250025135526209188237058593045551834389767147269012003415798556088354143643013886432104846705255576284907112192738248072871300559971730972077103614992978858872141339932665257971012248678316656743773639109516689524541131901850594960588936678793799840305054018543141323453972235862117992184044836209819800069410713653353420919493417289397130608156895273294397496766626241170209794986819772509729613119392183813976854851654431958048348894965240056618296664219680543957920585683238272558342078060537751487600533513890592363116279310203791963817653109682931298625276630503945023982858610732629793532209004478743281831196278608566942469461193875586353146481747280392263612051229654766365426107580160647892832200846199783666268510205933357005987008822116650511548401341402439240265557438019479945217538793734341240353265779634101347570700741888248419323411011945428467236418804924818521714056199845690494055605325656201614332673970719042376043331686208289690420058064819259783468711604809152563740870376233386153244219673299468487051000009165800706597346139029895327498635172424078979851824642256185937516192030187187966060304104977824404843468953487757680765487772701734949035312358035381643788292299363049054852197882700843480797627309490035699248245371649267852027827221673219742699798624475384147415224751675298040047208572090784164945381249361855982996414368864470657575828697092393903377054445440650760606501853190739087333762905214065883172066170326131355810895968588259441567179626121280768802712243960400428203379902851035909095693528048988116576314714967252089029370407521016326197310587429278347746233243292724061403198696773231050150468681142568957107924855396773177011695375474399018161581495603743901124896204987280084557184126777746712094219244928631006941143981693287380515023388761794866791928546737104753239780857947940333853098736541838498042793515474653445519386617761777323395200024970844927789695703719658690221255297903501757102162425058201035182155244157202184067107808016475859103159733957343146130540319731825283444924246664923477468711896582006765265862399614499668385763922671698383967545367625479564026596127257820393980243966156089280314044368530843127731451082017649888073738945831586384572147169594017724401013483233130057113007162684199101430326946024941618299684516506131925981475286700175884421600844153567943740993810030045396779824016644383761615138514078874598714238910888660509460551984550327126692051643034103125651916377156624159271155272059083954081601025034802391224653560817779617975663410603850898582805450067421402745048317696422064500767918903075016385957780856270737416157933225692456589999370964153108668137051987310153779295494671186027660385683908292727626119047497336624622314857620921311588612630484182023466620058839208506984962158600792370433262546505499526055660783529184517902915884769340630959398992014780615105097522699488176063560157856848817617958456344134496061306948336249284491056045466552409157856148316254452815458613779814604097632051844139576395818115999086316983177750112388495224171271145206264863927072012103808447901790720212085532142108205098900321549196143232700043311432636911678168149902055590901990427228172744421923212175946369116526338945641223152338567389315353523949187695605157070012400168921209341851626579923917383632084214218264094272667819629276001985572161219717557655418002970455831462719324623519379731463809930236666405488187787327622433966869494242799950411577084241255234280907559200241965720425032287437429875355797798534417966875092471988407602995356115612483597799570957194920376650463283659490162958972271617004070250850403483287793230016245200164797954832933930297442499327271249054116519625354925404863668343154731401769616810037854546862822346769675254885354629615758052211003048656814773065395706009981906524603643094749492975981714294905098603339530149051411655526765922303659551021828257696579903982525231191394714136305541393698582217096202302891355450966893288007258407607854016140305820088939143226188224342889229821582493027589810564148446251809978768598767972414726799150549068151823757724245952994844833808602366439163814143613623182724200529357064074179805304422066014188644925512175134993670962432468535033144936864970264095164602979714848252593933833589384447178648847806271850457457977493578007455963654705912886810311871384552111992311256406991846988898769672693531140486151119647921279587715758887745516572561450889133622575684329905735938923901304547472697625680466950742079847594244958724478679741093167248916168969853994723842682771903551474095884994954535005647640227019420480329646373832933438374216033966740327451080882994403792238131042722362512614816063153506382615225802042752477245850208412799720580619805930540142953281355699308058833460986215620814052534142303080501642608433603732103828492809854259644019426846194648693234994751839809787259715075065054164992960204290019078237577100134144441065196979995686850394345048005531083515882272849785358952011300247384975606086689629705446065819663825661758315208010148836293453021066960505331227551310491411200054261891007648995300058934086279268365708139120083717465031934499442459325899149104351887627119076365116237442202389393282912121880715081460139558957647095063571895144544215132244581670756975167372021443620331100281377915703655904888870941583401586264400569252508580549480937243343456104408118035962426382093623269588338637048604847904418048828715044832799734608695590942473154566684516603107924049250947535041348094459229702913701264749448934301441706575534032363373696699160598206851360824029267298552156909565503959173500912796039279999475296149916447558543028343658698356790518216148422714640330932888231153703551962952054524097472181822880343621693472180455482357153485194324766864333611897252445909033888217816285143512796969502133759915687404014602807386984318433197267898030355925493567954945148929368817892537505609904278802799474911592326259668628323860180442174044158469229364042922058819331366754291873642513098719003051490954453906210931630530615253039857418223140663081842839370018585246487433839182638129191141793990877996181259812767397238307247075010511295158293416926602898190691324790512489221234425882398621359990787348457003966840704208508317799872577404401762376811403889392313743783389688291701945213807322953780057603782797459727218074575329793244042143040810923788173378862105311679565600207840234713204066773808023164669651807609542786986413951686901333416498567321133039588123787018544877046276637243885443259009824294124652267786703962943042326127370503642906476343441346883911446300473353687647692317711778938964416080731065672489502921028909719051942825297347025506090606297907310354595533274611255951568655135814419046434923676023124297531740985072505484659119671406247687865191925466864223902577197565946959142215504074828467098529405345422234848954605448048082184062220651085910702172500976428509155725443811811914368679184745222121687897064784550214284715825085996630034333964414551093478024410806351569799582240845092504976494723144774652158015478325302413061689820093323810943104321042240819184991415106192105615080263473615372272340260464506711858608071761552620916633871858589501508236574909298026328417848008044200563466650542275189952461672876008173054642827919868840792885352738436860999128057748686634811579467658813007951366008666714540229378182704404878346214337726795722776603676565474204962756427320683294617115028144365722105514545415151568175306370580501841475827959775070937630841354233663339107275859084875228576043934353292771416022815741617731144660040061493860016186530741289964100390102402544162043079665397450047771751140271594335072292115061418959135785533449979207581999222595619970824131134416834397772209319431264643734769142084116947440065501389661463306031286365871398077403421226333845472602616221810033429207701546612275498099754008199230342047274046702522284196571779020792501532564020997367041898481735621317488321509677488538260458398546222797510401825918087305303033123434375021134917373991622998170416823018396209679393108090009700982836064148187959144455276140982737253599183338587717560419459558620954912222297541701719091921881836888805294043375134024631722947247300710363491865288601301549955495262521696269907749116582480462089412406684128575083383180463666437654533548947365796445431394570241423633286664800509184535931661662089386515707353879350876749643845153312169244746237521023906567470074199995001477894895967677322177383149911415815008548194594294812384213276737587959196298895818954239819765100725416655607979166488720140597203440646131371773425621195811385339161493124124822132335526845407259428543080181322933239903262510628807905538495455810852491433984723560628854871254654713212847171254432393157760252540220523066662860754621783719000873846566651622229114510704472091606285910025168449399291999399465273646515212460086659076770459643540795478575648291332092090532433079654686493538712337031984153868266129518250769617563053524540033124451234402510546351042689155900223251920235118309751283824979497667001815444623132497923728090828275718847069275152022312748521149931572686864686240059811921164798641351867153651335031441993126268634067782001857029879141554496822368078862948944580412743342215050439314426591360925617730005470803906360222109744678835427738635957223787769883039191785531532583160244777266377301664948972433784990392952020596842594180462365823505168702537050884087103670531773222983492348748160808292526277844516333828954752843667172691016372930204803964607656670203038383780399336810718926006410436122819425266076708229493136865697166804137490610183169598479851001103611413630012594585603140798064402575672936052150096499505845060691835836337253242864744672558366957259854510412179950917235725270307341252617298206288476516162364138984285136568742725442443600813703578580880214487427346367164873724333046677321752381218685897776113038948482316377061268911182057351834372340373821739539847289033012285209881310683861501751433761002877511580803179837084587680971455479852266327024844527092666244322834734509372669654868263400404929495141513555450369947333621686453484073526390376111479656944911859341181744700350711918921844318458200196487880520787291824182756371949661461511248044075947883034148200280679116422350387725616391381703838062371581347639331578796440512964040469203008311219421233524763836509544315932315890295939991510550005070270859901263728285547624308250090176029826404732977188745937421241707498530482079077091684448746296802830919335897752180309942212778794337322431945985769301549426596073998788642389132369526520535671791718074504567316134678421189308589194838010205473364382109774818360085277737392501490595424328538620164133742484111292832993317104893167338580380421685044725075406428572853246688992339303149874555856421852363028753736704393592507586091545832266966862469835254689231834217295763028549323124806911098741854951682133172060665174799601437487536195861657450402692868202145005341412767169124323290845244680576885876284700053542994583014038055112290678675663307117834207671087934706694946437887293058059245563573707619233650716260135500710236143869956910615521559733199326288904822341617098616105520788211463949543186261601261500469679759945985756540783116848653943828097360306577397139423299778060789037862766679685222101803289377435789123915275285383144225392974876734148055260936747948168399429272523771903989584824114348461444610383084500378320497418693688551994863651548039752153208208385044384701931194794891159418694718291227743722081529854992128567725475310248971147738173490973813577222431241066713400387902088067035824023445467636607320117549245420500085993409240580253919549109305706755650512956761551129403812921550778690940341980858060556459626816493331422970525867340036992900171208003978572637931050630571278777070701842875323623993626711795025408830241788359806455864283923114916792702972267606781104972587094597980951741377944082598946868034732053216533296961194456868330441794049599118279137857411374429305965194441660862588716943664973425516740415000285345640872149867972857969148827003087514635917350646378678055997524994595274123066393032802562512510117196889742139202438328151264872697328389866783281659126402089659408938075584027991596420585890176658667810700821127076274116906941758883363946586546703169239814663961478109296142761725117455211578125362987433496938905344624954932813304289385672464036277031632020926909594393648515612430619287875533977113653549846879291997994952865786887880881154018964663955438406578438412220062643555754558488168770083706497652871977285997592263090044892403160678561923749751700882104252907664572846408628897428871719087134172354712629404891833487605983721408193990312664845128370428991984320103896697997928639242890680812789288628783381232572138618441133030896244986534604643927424799854031726976772316352698381919503577758556400616999898285241132205280397137048670291009671197071301141674720267801171456898411310652231575823336262223365970374826546448001594921706492537116347305346096250821590327510713632551771603228487514575226427972606043015159218065079816730088314841275067092951995882077888350115323739545001567730025823748043162938314150911487458420396996693993166135901572559077492480936529972542891533493352070952365405395750555814984134030640142891842349922863156719148213803051332954495866927373912131494966831656576274460052389500955279142318610678186147412484936279390976584288590351259163539285516037783808555009816134760456883391696174128616720858471580365644709393368400267358395919603507702753273219908657656388030961877472687716682028456942710022441624045626109896603653925879188321431111490556731555776785116231533397388620885217744942665798527960664993114917655953892931350226044499367963922079424600975914845770278667444831920062002477212637594414772120317132578215772795806865795026715442844292963979242498822279413837756743285767758822923868106614291500819561606504488344728487868353431203863082009241666576215065641553239096358357916322054159462989378674049374919391118241454175543620673556029712138318160421884942414655451788860289733821590688746269185842456477341439009524507647732360818365291816229676645577160176401091725736377045841062623980918012328701341835697783493861297854798904284768579557088049623483816815149967941856272449761399708509163907604934005893933397229670405293742858144168616486871803284633203411054147183753340795386353755064896439566263842447293431998749145301693086399570876212418095871120239669187992236687064154393627312697554294635372699771804658805364068993584981966061129378794429560975283408576629697735200758732892722379508497192078803456496252175951993803675131619731560742239954576217411044703027185176839161814345735215631652195437743215354198471558474065056029381500465725414787607127560492637076626480515184735533255963987023603267622098084048259750137082759282551950229507200845213962038328936841664285390858941986265565952577790093925743719973854969123729189105156861205144559173046309456835282203422644623180584454631348621609717517465656354273522974824317652509912238034559431214695750278443358813478361169745042096876059669149950225990291932700945043602529669314278468578572316993335783920619987965916859973509499084312037674384916667604299398817643392482304649317931495263459642112995564384519157743317273275929294655463283143602289374081549488512244502175627709316117246580418709258194732616457296326846130317155431951665151500550253274991065547459216508560147472970003051040929119958132927102885066846837907678908407232863226083445067104776235541776905078806859714021986697908642106854150608447638317536170958666114918311264187599954951006189985090688781785060848384874893146162001616918754652010092363554126981704648447570868321966484984397170520897105646894037891662853079622719722365109178342595435564777403784274552023957324257489603050761881120046296651394868392876743694332625416139297321402881916590349808623738904910911668826718770885365791776584620171163335432578678220788405994793830928441998749736809966409752812826398013458304332117806882156924606866041739919298384992911232682749422003891238872794073217145631885463948581960083275951815527958115068411077383424331166370051631683295349652169128608928983342385474518443671578198428672371537830814629524193085696354622747200868854612777933126585812369375406860628104223592661345006449190680153712283382044551971195754989474396942677378055979989823810780883720679323537835113201731089707080205251808750983976641497353675702709613465046656975803571291030570670996689334351715894440828004594610921452635361211107977487455541503376609355291458713267773553043963561492244433561113820716712756950674546380644820825144470870312756285315528915478231360131441581065704733025625970209127577868058107221947143422873931969121207167009765139139397748923885891289170929926917093555500559802950134656471279929619123226690315055505969009671069907069403780364133479658357928381030266758443235341343359978608751102147409294192436742833402392847121256851283115682231375632629205511880836618538803547300874360550001111823960584214115944511799096946684907229307580915572422361494234911304723145517633239535959718944835589113858056725399269078092481067660345517205765706876979488534296858743704035574213040849869797079948646376599648320200985368424143887661373040097598993262186609262652294734597835414608811751707746878313612174038565450894029910509795904357404150919019850490961038114527132485758406354419697283243173274496005187149107906397173481338389565493161098280880910427318937420425904866031544421085634789275471643210303595794379200122729015034364437993459400988351006971505798244218185838300806007890275391427312455953244754554276867051356698652735766300212922092825737788859835846659675295977131579134274022889165417193109295869619028033300566307427809192844268886404014191536665663519887279996793811841157078378971302135816885190255240959034066275099341823254299660632700392336048236518050666303645967147879406355050771110526907347439929669313426358279466289606685098910169829357033248419123104318300507991427319156307888000324518220293256035021144175288780504454690421537697089005178002678430049026174591694342341512052896216927876572924358379071537744841430205971699284070867765345674907299726845214905940706604979806845955545737161018446539267104246967952423979196336217649137174362398652474579383513916052933399284274512998388134235616725181877695198653126510293151839231154363335743737699450000270103086445941759278996155347422393786925083846485349880054686071770666070632285383007633320278668021740053747178280175959828490405568376922274601090692715899639143276532929309797743334653375900186367939360405287017659828649846892353559394337310584759150279718088063081971890156234636597309271819259464839838579407398084630496673140995472830078560051058374598162181528937612141042824101157325159464949075281183986707210445401241912204597634021431528073560867290850107397415435426933219798781387305938243862688236615640896073730332274523929440318460617599471646651218163848435015684935846553196698740012188365656224540510353080558672533930513312615527568718639049457413127009011118338929095339077122044304054592459822433690104598399922745739454866771729521069643113335857009751474438203750467114508335968713364893997383393941626118746754308807816469042244291993503557992211752026148364730999059330602329777008669537425441102311090864140060946234650311406720298920686223588425303267264380870406130562526158475027298047491189839672301328769501785608295124994566269273202261644670642137812137998210385371001989467202505884290832261805462325875389746912117908272049797277357896942485019960018055541844866324904304827652543496935734470804751658578800146116324415999801748510102293088932669970250968470011553902732756810800227622259375316148651128342329697371376081825712185834799896727582300229380375154691261298816693993691878608809036701134871689255839053228750737986415617396981929742133189456824285704461244215990467258369060704903999204219397052553697244989457605022251399075571884937508246372475677591555782775156825400481390740179320811489260954614245427922037029163380107246357867274372920598862954108695634325202517424336208569376569281690100245158661192958589923286497055099655342894439974488866498492167795903612828968774528551159364639599853387376337804282394773727376560351693054781735692180796310722273263229829038970366019946453556432148843348358702943920891746802369489535073394878033307317533819294943046925131806196142971043106733221270119818286646393870162304727024828442424577279621432767911270030271799817851928053978748550396740317911037167147895678637460344549946807917611640537740871290465596735159113471384670646335256294406960164618324544661154170286465570638094414148128992566368184616704133719663774762290106459950110218132699715217936888219454432890846090428468147470388937293746974641941685155669259942344655247402746847298665054587190050320873954300688267754116281974767790636684139275554930704093184989563129631354628342819225204146954898049981002284569355763097827960791707907005543408195103226641799899770465910575656943720199948225550538848660383589711737596540102858689058390909984485812840078943389030769517875572756501641709441633044816062155877501569294497241987794870662152670231290542203279728649492352926898485723986301356051394194217022739409650624229851510962517780634883156220497545282684950020774674831441357961317591261987953204724924499186810087140062399234895220101938512833524347899285927264108985936616232276032936225987628952363976161060902948450966519894149312305991238597499662010891143148617367509451040959364423450162729892567431218537890338000717956098019808544593346197519505264563062811611137939533586176478977415576392198078122793086594188121749922931930870062392827279176191113097178240047498462556255322681139607973390400854123340540628711899282735235320135422418237401401549414669669947047309290027962344060879359230168306553212088111543420877861241955970167691675343102252354168031038481974960296484819194149752174243114207206386065427666940867985754449680179703493824377379468196241370312536714202171436107576782080013909243538265723429533050843425814077214424471181156727817295751898079873602410404878433897685773930067594763316073202812271589296582015408965786161632218042651183122477587329305872059757118441448821535087008852409385065219993330264206470098603215004529092270914834260117600155696854964502059979335115684058217073115241595182026398960363088788835344942891013667325741309249643623082328391189066878615115425877188849734976742189224441688335011779446455547709858195047577777140288118271183005132725245978269994680057073808158883052627184053407166080347671801834535702648608785558025787246034878662490729253618781943059025748261373953297909208375418012136510691157991273454644333548347948274835385584576581043266035896362043223533091246517366199844472035939946966867738013158954214006541665045128824763961756973869452392048630644521058745774739819042688821030851231144374012077574196760729549128370097169832906830901916934041459686191177403641683088086875026559087154831552267507937596605922784393636768296688141600730990619424398523629132644760372873479726782192700848730136075502964284421983178958088369995678270948777810008818604704060765671357559365320190426630796904800965376229898113969122843773944719842218530304317628358964835805478582281351390017860909085542023175747899203082417893193739856839731343509659776792128975111962579094465180786352828218406423597197938965664462628841583708541073545143878188705990664530667828069215229780835112852788301719928051114195541629791977552258429557521478800916703925920131037323013590532692142719623399312130986158324269449823656640118247861094479465604966440144002076223242657651078507646955462161215179166748261417697442690415697320580282828049841810575218070753417937823370576465799060371700514755576182355353668651497446112302487423062858989699107023005583642609542169035007139187108379918953456725199683023529823832377818866234754892541981150477143687555086005742434445382328741376986567092612692931597547710525727920160103969110548291607127937419687792991787664787042417196487134071247244555793611896048079446038910554299748995651955476535458746987256175885747373626929076564858088953775276667142350891568640107027676507414715764534427397264633429581414019297993227231660928667618225171603616059022683925899040426405608977317586491560879750435231926976072193650109959618127886182180348461860903553904234276006300636583807978947667012942374888659336920904142556365518944935341645709930131819637103067494521824154755670192829660668738380849794728153686237453499280274278643769693882094908894015920652061427045200579890463607218508899788974223234702567979730611135274727213312478286795062663084860609376028352442119438704467649268105177181745603444816552806538107160251796744649079694641587918960781727066292864123277635609419364841569975758209452557541675599771129162015370983977292116577317971319951640828540430935338532464339707619380178905815101500714054957862784266875205140334970091278031024071349485183684926967091276444820039369103463088729463729569022925320596185242286268674354465833976889997523204340182639187343275213817263876408949612840758718660117098122059303201703629428485864043638194919090739757597026674738446991240694211823245244442524304014766640441289482031961057232466094510262573110542878850123146761995207086029020460955792719433338526970102912304316534985694523939293065538920620745055831856474293914936190562880714344874340647049569530540401973585005252166747677846205198035430501259739268290903669308738035259221731550801552010806489417503049083013940856437050768099128383283930489568913636896982763154680311898532906237323205684909846660555360177060160557009359917582915696779009795924912806039657953888479333162678632349636550327355183351493859109109827855726781685159469181621718248703469128877406670797170398566016537981196205133050573865331237875775669258670694089534133581993576374688956760963911998096854921376230738018305039341894083006982087715673030653381330344047091658185924849967109892036993255856302961076379678824884813514602403111437510396428343525198295745839921109137743915037168224146233236876002577747189097721224325668572296373105609721303124906323526887927678046929073557551377635953166384203775736007880425376459743504469513513328227229465819812532505330015558945976163644009137488717810821569794329092522922730135555570772565499789540375576378591031212260059947082213847224462388961798328625498278582731189669088137186125627671968402267802785475712121351965344113977253014503688480670526552513090794911958217129149857677457056446789122562140036740232849027262305118608182661273964432540456134725421528484248320915476458933689934264386568492464359183434164625052666601062485536478437545912744580085984067352107814195844471258919812672120070064739152559965690643361850397588613715615880839477934688737572096977511907912525900073596767301148934765675134825695835931927882359933083385040624422459380841570453781594759882165150363773078490449404967475792156960028601739527233496354485347244531485506714819097531019404432919002016285594300800683676884228612176083282834419261476797180555891100808220278774372811691738041252705160021034729869497159067813015049757690019621262707944875556037759781799349197388537606280629757708266642895107043877554455364845846356302699937176357838850843061052438450365951941858604990886722589271066694118592847760299327451106552929339238694228283672274852884856688603474566550563236492895424354353430011144929798550242947102375257671657007585558061072744357041034022102294721244210012722007102481033330680880391628336602020686078140930880387101642626623500036083970419281472861598390736599854909683607392921458327007518606142368202350264593005310833391977686233991386369003514041770458939309101638295027280261751853793519773291653873568015752363410774175512967614643580997753951042778426615657473055296019603610315069844625785361467133673965401464093982288425759492647637339231242934292638697580878932443600570002630132489822019653090358922231666853972607783487490725993473208463119160774558975467963987944882673097448822281455874703635603746419611635676099370184457003496614128804189652173471347367553090195885037579684857393215385347374844974574399029676824353504978361156479366319914739098878113055871591121462255381463932944796229784677541039862204120689229532192410703079460716809648316282119087493010346657369576115487850280201259267562893174575867672799042114521871340173707502704267041540239570320303233351397766334454880918647754733335417769176927674320449330470705504633260831839090557995604636477694037406048750515712242716031664152502389173571002592086420706064160121080767659537511817126965247887055019610741996401598393448873300595743899145867097532457626211676576428263875394583425632981389604188485692987447414112632964942359441235257136208412288192570151779191720330409303313800812525509708391013355676008422558405518087181862858550324731439396994639475000420233448030790197052881285431319300550977346464470392984019956794885462192972169127202168920831528334567195952341204698774802200934488303457599243541802411321128363363518682323216028903048975254894797256292515320113383286331505661953858995599631752896361034385452437675866562363974345733922351549145859615075383028988795788893810639117005818042135702674074147102917193277382791229765561121966290310263903858586224404907190200251834724986359237460495250986400272179200641336026944566859494420983692406917213453377143620480197486656801499150482596791820599615015663508719849417132819030986430310066372609709599456760598185886922435017163882484922163293259953537964347519006656507435473491157956113878456780526443547871487877410824746488181803869311822360378040146336599114284397705261018160418976118577705068942128650653652230446780447879395647627789342278542456185686250095637009366507713725853202897354798100946440090095706953096443897356867422041889260539450360254363871155835633316788644734472572044016182079346568267966234414050465626456364701178298082381690800180263558532854318444656307822069550745438273172895884841197455415732753501085673899967957133243311182414610364315496989360978670240900822321191511252376808792784359806908547202595376515339001926679638246784563612608730606054062479951935630446529024528705105639455322477937278354577830279217862483046352690825938488328983227753472766759545780943202454987861713170384762180046981468485812954621880281462453307429138656995706748840619988724489235606338597117649465885935282605427593802939519707577725923417962394750827169471676702479644381777016476622711311821643501795377354980894978022881517807766713815771669318408313738662552236696670301595791905196568239084385691761497580549633801078467034233686486178517163203415056646130350791701108224722237675634371958001058221611233609607650843236186273620466646786206386856207579885142762577192830221010991507795350918602602347051380079310200016964344462622287029442636304114042442056669965472473941322615884812389849192053151960102139199430003288036284713361645835304445181672313120603780099045891826196352901247939215198079203999198560519312001841519153950762087092023130904004867581664884628682146867717695658928157286380251999352743122323370839657213438970447844242178187248516345254141583318777559308173279751014718155698260308469260151827502543412754640463292079837392123562606465333123425956476329582830342141664493320829340495059916569117305111088513598882966256335933225304154220622570339717397047759699333090229261731869179987976550656543527748576304454121940664841441665537668725435100516124513941430295846752202292142998839848857991886590244658915966321239719776427467415104283584292273694625390825332277610983376056682677750736256756016636931666974750180544769922198942667533697199349718214709691617894583093575973234318032240276172858534846752674961156793179135781931759218458633201773475917572807591712537845067155539131312973784309516695681260621888969364289213053694525200948700597110083648421239510701291511537069544281806581404869757805438180230366744579487457519042111248195971752632677889015090610601469687400515353311345146336376716038612054638229017993526859613338240600654320538596774204615627365829587305898894396160627073968476692118237984500169780247929893639620464346965391887697084380152700161458877016621535226053247712201364222466728829016057466956066071615833230221093183493745411397472344484480216049782439749798448044039658964882945716233141616610877752308455903806340871505692728789339918336745296793979520575558957352308384796508795722263659752933529766969521898740838522497898064504601799579103213399989722405080330474451525293995000029407601376567179299699748947066980173166660189453150358293567257663474762222191779287980455107790093365502035646889571864947433848197236889042075943666807724701803197691211833943245114331277536411636300045154305384884696855853365150595204450047924900768815606607121261875419196908922047758962505034632143303576224448977287421688005993162428935991651851729695033216310425264465736682128782802368868108528255713473644938428575928343309369813483373743205305705628293106675620420927684174938370069840470619859747955408161007187088342760226224986890630488460352636239198282632229010568506715163812191228355481877562807772450551361286330520790674589390093386739199912542451656486402924661750056263680043197154060313840565207577439929094778232816674937569645269972849329789817528317295156331769353716001058913637757921017122772832973571902549853422732800695933115832926817235096847705695998344408807146230391764931932591454589503145667544913872097350569729587822531399009662599894597731803305047767989899750827126792392279075680481504514718179158332568156836099260731518152705541806651111906093424804363925546001559268205490162425997052020614990515920393704207749447067998543511569329023179294417050502036594335330082045238982433755942355903967477929549767897356013309415657260090361993062572821181050707995479402152081050815378790574150451583608213438282611965322737292133176356790271900035359266138182022483401455559777002109884905763254381776365360790561614668255147252002242413110929604841199335140342748395714774660008020605542021328797076917153890888336541877976973125561170931236383314995827272751242746186191904705119092913562343332315745847781439653126047391554903911117136011537835231220615886062333095011665868187923440757144760990985468887340961235274921957924671993689139534641270976493395000269421255858549591899004571655341883222935923226102944285733081921323544301887462017235811101189382984789406743707261392259111078053616151588375159177773016706268802519479767407152178479516735850043549056947169869211585729550649985479655035719017110158000180120256644205783759949508582903756454537870472137827300257597531813518591964560169478280134131039976558074021151848001980160829476230025604241737375064195298274361349874142013978573901179636831805894087147720093032957704240614807709913059528079064839453848010554867105156622424688839636633044224888719060698364335742007005462958448070358349172014632485401518001343012294643213419830456780614154641984745485789869413366418723921443556931722286728784702290100726427639194838864455190499417543753734356400879451362286361278271064917273186807871400760941994130823019796392301418117049893128192710248759512129597847210420458521610160070160117658559845768475077128908695069572289421052899412399576816252921204813841245595322596924490351841619329576598136095863445702343181894970784232493726831679688475863019550865599283114416553431363175277264631702697369057990771389136742820860019219171340010355508498503777992966529524525337824701337839305217884873405098469828445821828692607823929505878737265837095822681381647904101007079864896254012651349854447901078300566996904608791275511167548183390968269049948782189707724931216198145745269788701476348039344594908126331763060598567228061439047750567218409495611025558805349216801595481422514020164231269107986789396089422204190300685716742261076956474307228370174901210094870877230089507019712177070648822118097491010320949453707551002597875510971826012698861741586908497063047394010886535332463885467278287383228859361849242177959581139910463853457178759407151679182808115360614189759612704168336051315463714999604852112039619244577573154195053085855404826356361940341611256161189434396664163379719871468829404695560542015289478816629328683896554846816816896301428839675471755224333447050501668307255248967901961488385488833953560498625758178977702783758229222431353082090699291499799124925083472171047795857777220599099655843665466465106126388758899905475465948763046142403133545986663973344058265492588638813482103821573673219608585649624084391092544229855543292631601916705548653649564038166208888339889865493429009420057611228260873642437113115602294878575060750258266015114674973301980721789092327959331887706169294589991070349091740142015220113897470307358519756432272318012531821475815451111233061097272595498170743928856391285238743218530864944383249014934595863015675655009806552700920071758663048889960271263554851780146597035608997425572216564388282868764125656058739720306764444016035295416971240655416973223333223364827439872388383646064971215393479757810843249248525924119971451232086618212690750915071364555697521335131702008641279081632577932375327138071283695362277615399745284264526252877632230245109478200637016570286779435704324132516055652019945969210560563488155599339022123450764583873632206887484290107048988594383213017598702036584585549946985904475243771755987571586457470370873288311440701025869377766403404805963190847269522387563721591186829293534740467208622579482758435775491939061988381467180231210151715671174992479838142621188368380742354662900774575384676697273735998842988879941853864191941608640814005350389013118819830226547927190468109223795890941361247321892348359782138286411914651471981539339568265241668833810906643629995218179158947030062681988991848430598600208171528838760668852614260940423086566549807306362502232804847782340604463421526670529700768983441944098107432889065478051772918258266653410535589580821488613452533107304117141650400459413299380332281265620786953781911164942774760815980814792241981492072913439475758435609179378831990852609441714427393294968489630350100955296736065631736623568289965308837126022152849104928713246857307282446540446270336272441336656875020119234237004135127978978103238287872653406713832798961405603920414139506796802024974422425664433739257891238039252171000859318253914214565840397832191623131435920605526388447276080161886191928470975725518303583409679781787766558272126162690600248029968941021227756813572024445988605139782533312408816021149294752573678594982120115646128506607205562056839998644823215478612940258564418536601445287056591808770574176892471627632762955145578315670238393319175262418077986833197690126745028004739257689137271439554964379544133398311063100792865789100399094031005853078321595050985264316287045889881169349136746023607089816567696013502604091229347265152220632101286154284791068034245951462390232863798949573609064418314104243635589338868296594432950886033915159874426988738271086724821616880364633629904225122267772510687147304737632901612733833636470237873189065585474248593533994715945902491320065823666690159708496396803571731683258815781345758174272349616220036799271828500571561191470618100143492559243747536326906055742881348328249382277143288087582456739018524200746121026964001346777045823201131114718182314491553628946249669251327621417691178564625083578238278214305300706422804082562392032833562815341831448531090195498257192692229489109330153868912558566446402697349452120747356835531210354790694151543306940821998512144691876143321141658417827145982464246463328149882958074948464688207757349102879611869186927076408617167944493593506099125332655980274251526707893184881958624477155649152658715742754291507001113359254089517308020560489496904806838405119247104849922336447952105122001707899428032817811364691097343297426415773253106725967872027000829478771121737243630044222187477736105980698955339339599510233147441887458381085267406365083353226687734005115565063300061231318515077272532978193028289395567803325806074215781160192795707296301775558157650133276331486413478382100275765709306550597236179933088407626237402411600732609264224907086235215748528743455378359286359603224673548703384747536032744359628004925203080013577860165773216500893718872983215693171596529510123072824305373889597495869213213352818486449651886299379524459004348344012224339014634515490534521841158529128609830450544251821827019293772500870577468751345258623395705900224615664254958074696763680273930687751065717847957899285134414095119504708675798961669623971298801242151866740506032451542921624526477334576446929138908851998462059471363222147661657216340197216056765231953612533284475047087450149787576760509539319991199616409732945585460858185075115621080932214560291893463430663244554442857096268643439379917422553142787396238168519883033048693427361023165952560850710770367393611570535864863094259662592055664184238257014283510035104391093545627641563321799493858234131838778823670029554655342777389591356396474111699929273715779754660454707856924267947136461966553917639567850661194998569795783156715275611744372175887443370666144203000406285283205801609703938619666372506557604176823476885336469209891889554264523263518587609366804995440036463543408595055983792942010664194973098433150593957071415175840774628154702919383243832435002500998797051865612650100992683483592626319763738053097813626316580837834214085359062411129597036753276507795613898096035470186840917558225789709053779872824369500775482469446721075643577819557176491771786014005271605773428367309463831877755520455584063383777286252175445533705822145275823102122234288535879079677365014097823017485809590314066725434702558630027164592931338582346562812204484301628066548344896430105986761175285012618877443422737922276341967741308634930792962009826529678050053082352883040093797792423124025136199903939266511782355230490503211830370728296883923654372973798832384333194130548843486494915439394924358306453973285440552515889308412670484449192169438355412727674272772417879958732689107309291130213828297501753968656502329304170342447580108497993675724852731047909839335331086373374727042237298085063600839431619419226320329349877206820322904583185745387226436181493031682329765117439806170371177266879794190302209411956433375848356390447136481255372099037359634656065186617500448401304260009612824497095887957539250661133725943668409226654922234420049053914233130788116910213224075199545000398400672166165617918657522788800798216181568619965263148887250141530122856396236077491352612409847402247333157849582445322395116470382971366304444570156395099282207782147938399002062077503343194492586489601632618774413413681658155622296425370954587979712914642144562075770649171284490028867065830963850495780726715085348795699458002053520973811090509842910082696832626859372504608101296882014864793359977464822244843992648573731606752763728172651237044368190983375831728501584680008995057569171320596651730405919916862177739062779818881226870927516978589373377438911294996409581121638849794480109108838419012254983491877293691303013864369815848838146158866830328047962800454673449443605379617758525125614123712755803172267161346709113677380010020323217300998539338222235717580282236755652779773541150563151919299912827852229201271637892758152128249647560430408231924411622415934257967832855474008769597722020723027319425989626068289379164131149263282874252358678204099668084210300346638234211957154161583058318414996892467334889621048119519324400748624513395167921112107104372649599277710181226742656279046776111462777984053407288419415193943519032606914650900887034788817704726015387382873156199845000527562662716676022828704460884619746441925174519927330249848543229721229673336351637846772291055222960361782157954706164378152864749922431214079779462767983648708281501256979031183137018844682525954299281639270877298358106346707721722294339341879944793218662066351204945584350581926439034523025274374938922297486448113792671345376639207709600302661745479718195583083328421648282050879002362355809256970383178677334714564264944731946196263640552622509076728316411407674947991748399176700438853681957450963672251767344149101741462378448617143667139697177187744833573503018596663127682783306579809626628006815825637560244748029495373561509091425962275339983800385391818427368540048039023302973919802812873259023365810253136870727804225604858112433959027487114108032965025017045893553639254605707473857089242961301237995875635737792094896438752099647100851843103562716749253685918028747496847511495553431539088874709279073533242076119121887053809407582496664452183535277522312240837894472966274967677379001717099646423111956802180117679269180078882619497176817584128226772604831454649329706825172659159282964937102805884496751543536974548998407038941896802074598791726121882467168828687414935100617836750440018930496509471531047576812656043092205871486928987673422240237406203285699479326457892382584171271447268891092521027875214774858638662491922552551915381529512299562796820142315882374626061993639998020644718355399572474613655554661855403915047423899792294680498796107626009838052135100323951874521132499122243124587944173280183621022729216964482641393919691138379363210781390605005585783200907942675373224272384721472799432464602136694081100568003400619117164987375869267027970309643601721844455454561499001310975443761386681688997705918544582999069832909406078147436973168646226488800690044638007941232929692610849124205124367374183246040871943931994700016473300149312204073539686569486527508678042567981379402690017257685659445965852691078047303508746034479555048923186068577771476322604514676675257176399096963194890759746999060978562592578185059612807314315674860458491120758704833353449273944963766895622376670726705061005936343055703770625358823053812140203693385135860594553608350609798023758349571165183214709535977714648163790513317205688636651458626620340420258274741097442880979580139760198551705885775777868779920595972589764889997379417289366057148434383616606715877600563232335624048839006825761155570076067944195760018491665041925436614383693544708053217797684338239661327881803387582625530236073330956242205904418172425336129003110846431114202061180451699460867975515512222972332813648680157791416616141160530698712143221130204109699016520888364308588284990886028325445011765649737755033157654351211496876699538237977498909660381320817348623220647971089558231382220247401841190069684438151009536832009507863385475850696939739297901385027728101024116098292755567024407335184559036027993051191462937062617255835578281592907870077535648941367098016031404955949872749900053349819507961263887309101836967530459638805472378016787789951603238681054848652490119576756004986102744391067735464275689551350402395574988589474913252116795090996596593328721419175529307741562210942096196805964844511422068896362552044602987713031940599534226701509875643999017946645068051610265706597035633333654088859842807238747019322931175552264385016231458917677573114612836229231830255386318380398200755188559801392200547223571675958913018436342710293928486725196582803760041148689066154264588103858449707908137743606852010835342977183950704569517486647495014343537754386929694304434269881366070741954763009478942132239490348196100764726459129574973384117382597409206775633623520216261863945974376553372131511681267800861307115491427183333733666734871213535722528218402356704262600207927228485325561198462134070706977875557759780158325666792151507138322885576857633107544528866588743323870044571451675165700886556722816818239930511175308560432355392964361830108516042933357300195851590630202349838703025660210035347801338890742316183947079444730353876361082666385209737147096585172348448428355479135020677437093942315972323786744961585980460306717649659755511247626195507098142880380035010678758176359739600155442322914338351444658841287508539630590473304673780863162016645817481955175070425039315832034304380052819745789205169443960537329406578423059753843065759902314610155195328539603233952062789736582559622293817476952627394474074042937797953133319328923575209949334183668534469860849863463191932031451256932420976047760288547573736586435929389108802672784068014475291292787183709014557595040230018705209422583856509252709754254845378685454379650784242135457564365266597235302147645470946560234397505857169071026092992641083128242141981578521445525509065486009960670746071071594859708881162633201169287333529779739859770868177122637511159087195995778925862215352417122898253183801737759572006739063151880836473885095934770347962830469714536992879147579661011748288409711592251988942842683257018619552681629602893407870014785453466833781743207714873886448841437363153991373402786866791835589795137904115028453246825349344100122560609215146014359947385403292925671318761708230179377868538442023255142082077550226642672810302010553529429338181572176086559217914525626623935172468704166900515879758196148569166162331856585641759388597042946039604429241715462960822094187631371209683259604413836328459304608066879194417783028103420465207360536534162712311216623331172659175701293713323113519778377090125102392544432630541987792730551093283397993659566091709036955966698562966572225012686044072433799404939695606228673502030252683776263191303180907016675519381404040602790476439260674999037436876828328113124013401993480561675008660589121735265262061737643691277163282947047889675234050028576288762774782417462624472596464571894307105428432706840165302461429393539801324219397236226571801638654965964821216141630316883325579840373350170993735532858982713893125779474869999131066904897092133596492216170107813979054646364622945599470945852648965340410773347062627017585264890657304597650652984107045676586296390037871384964648940663235586840054772424364560212941514742012630263420541325761687214813935892293542533570716190969901932591169982119205273525792071132185212296003676768192351785943824386748907361354842719061797198428679445198317459740748807135713171202113688713394135270030588997969872165569698560777685486930200359544742690053940727205774502246639911135219081575540121054272931177065187380457722464890457787774363554206443176089088687272407605877767102893362076850206276157127374579083697141113599899933348591552825770860026786470968788313741989413402829821240217785592692732310106447132409937687447333150128107036285329751061662828792583241701824129431565676420433631000210850814679757740048261037202192321289128967747349819363639376012483643317378324352200840733605898819422033513407881495410530971659128453116456256076254481890992492190432834072691029986436617233800048301749789150118538798946127177522338023842643023738212210314101213703904355551113973752468556630839374313937975823728543234164393303442057996128685423831995026580258738650784482316130835058622939685144654929961686260594034929905577208284684291854609066374740031032163756314385164472029729252671907949185018365123857935619144487228198471640790378848710683255536112818092960592402865255897777304305450311324127531098261765914885278430804178699041853245856039860598971824618723013787191828412686296636471590113840526418692390063779784416021426007755974674098086609674106866338426177909722418005071392166993209182283936489825533866147183079958481816329584125814229980179188363807564068968556678967864332385570213954298229086278239681477446118775270753956364216430070778932724542521635541284464260635167201262129715928195821469586702996231186759192966941162356308924826564556289074349992017240440340399467010729940744619631264361303400899832701736294208433357000182440069038916461801089057129802915489463216374671686167938427273499699883802649525412599146279847248806982752508200135659016372482880916756299815011903341823613627939350008321545707164304270583941676538430553390252582691814631483263700656848451638525331552124585415734230841986094601009378672656285264065170592655119049273342917792915863861698863707245723763493229801840311685904821063079452589031649532599752939304986630270003236772947618733992404538172183713940615783330549206152628791453651673685194955238582332350866682082998343082257130905289046794934259974802827731553601333305976193867995248199573182862457190558868595081660316133979180906849632468850144696771626526800486015956108003003808374768989104181634349130633984422347197772504979718076581621859017051729658332844163089512186189995596960881980192224413464508521856171285214279042696724510795226770940160475797288885959812176585403405748941879697348050274646752984383966478534525465332764878924305515252203651723782334902733197588125886851904339473503119547829300040010351727667098784375199157713042505994333944172949079507433110584048885948134503631517321785742337314441879121661590025319066148718861519806191821636079055466819843405858161556054970352176016564722664606583245963002298488653119533702248801555719926814258207513516761720699276576500882053791171144363711441191717512195274898016001662976192057306308080665396134355610342300542988506501291020065232101257286093515524042188722496853180203511978117414988089947538589997451728275971919085686865688958588916233637755287699158763050419540939691711622328868998134487607671756931712240185877953453991220436795863382039438917755642980023368970036044612393990901286818392281386680359394644610254653086470831815274974901788381499501559034952476120102581958242553907773941783957528495622172390602328769816347081956362569560143318941668168900297490752223850509320630918459429935189627755007658904694016780691129537287338358146192606964993752777717644873575213351033601751166897787698789064215993270682673972141102111854432172921537702942129688266542297585597798791687432510738173376774297264227391311237711836721010212546820009821574347733894226244410776484576834780862910709248641565914576499013066853585153861573589427947719721839606899638038088299465339624440260659329117324353559652756024392472211946950545223160870132682558740371992191106725739846629164785332808124794945174264262271082822633858167393993003685505949537693445827720502755718654186846432150864759823575697600359931197548483778914065426264162678831364061570605688589066586112096004287708900387257699525019406533230903629170933249740776571094352587527035972226416331049279922558927231576634130027153558260459281230780748710609686259418292986427342872526540222936225450985816143769021481600518659838879388754206200496523839416555915904369816446430884185293283520485700674773406030907552013906081336021682448454704653605773880102214083747616791378222987160649028269140210390848973723622296979393984356261185356448363656846339190316728833490893342993422260875877112315478183527038575266010346048203363386543296559610889103547696460329935161030129814596733269939798423281933603637478252331097773405879112009137591429357436976497910867639748118133996069072432721374476964629874015668829972003989238545731024969453069486147722404584271333640178205100193517286482585586774583934930170165287543410659883374471467684728560636836962572301373360645863309183639476321290445286017470789342737037863163538396799107542400929039477766259660566719768123576171383951356389100271548713145529955374690112677081430672345265487106860153838791410877616932880047859631542004387709399129801766050499094746758289272883062097240219787917983890862281592631387453637984142262078603249062867911544503776357189329695842287286601242243787488506200675881077335756268589993213922187401047927816062414604390513779496545094086801181134349187997286903155138822731446511782271867859103649631516275946951565450554784233720879665856411085960119192912251298801025493210153643752627465031188474570853833444726075120242526935950617318861648438099846636468306927418579155572374330515321816057495292047631040296172906861000418774452354322742088159837405715720246471011954797522311997053103136261690493263492011631742988852767493648684678754736531531354922202827986245339949735486352892378571591470086389853445690179497687381585345914356272712660747351762520763799919756451697911575931856404989279426244695006174546895589954372965216338301553167312311686565913296396978979170230016709048644443846542361940336139837885303827853369778038316164566769988516948707704808704771731301777019665186163752189567523427048551836711173019013849180262127254182381010576759873398105617367346453171672415947130925404423990106385032552118678897531752095252313272643943753668833196248729511857642487750374093624697771665852656724524052772150566877142881819176279223609552486288704959834577499595070522459262561545267492717238422207687848123741877397086988331142874191550144541179842757290987273960079172380985745511652105586268072646548060631129439550591127296862167555012261541695610207671317792041141923761891223413875337237184997463709252916626695983083550883009987228839025225559147752114790669885603786109946331968054079832418803177371494169196444554733823973877323099547628963134447536076823495658759397250260563283272903258969619971833476241072607793717059211387362241659128163336667050928459979293446153742771217035133712400720585184208097872321442012301568680339042293163339892471827895101259091753808148582954432996233104189903112975983707727915389558794381797240982800411747405701780614478196685950674196742555657678200418556286009046525704411619171567830167829220522487441598536594143981899081288901408608056557486823922222625115279039835780287380507476985144620080682443812869264711882153861373194244952919083524544065803329608079971436191213267372018228279274674462217513358235882906538934644246049540756429916936524444884627282592684458125580464207731556902552716102215703409445707747234749064798011059701099741860008761324179515123291929561567624903139232329270748414406171913997778489587776590406252502007536193688180906667869817199883919495023003311789841306131412743831644694880012549479655940870184654890202989910278962703278781328248214897187437408688294752875761872410493975922998987353736526497024079340356432541817744394044426562257431250460827798429510594676558372334533812693907181250321360834084116850908622693019568918627050441059135529100311660339250387293693158272639461661843996495084164688273000791799006095847783510785504771789097613370238156441857076236847458941270900772690290870586059730007087394799326583210416665735333749845862203262752727339235145108405658230240801750966939935953747956351692020704090297514341565271984615878502593366003466836760309198375557142992135065047088878553500281551601897650905653826739099850019600458918668517984007946430091848413234720406814615288684020222665275888590992091417262368180888339299314978517583697176440741186228627341915172311026947520804810856972302544886798534103664878674055622990737667386050241365247519449465237611896253148220221072868355769464794588704749038894859059738722146235126831570784199768636713640384648452016406453181542153764801734008958294891766467070259995549679709120263838422113173966062258257869923306018307317753424332115912914335708837049219198333952731758149109338299104679724900506579887956688258850220158343036820769643214568200281403772473816235494597011838797459415876730336071939360487607623041067803314263057962474439700217547493836709148091687150662913216061688136287677486407161169733292304921435767364041651849396670654798944296450454610266629062979404728581795495524979051772600979535669326763592477130661629824330540338810934935820707871046110828563256756565543186675501129515150867728805131948490910290394784249180464230283751407771934094272532708655765322288334197919023098321546381627636132164973746018548007023235548638999567770459341788269005477612615006063784811388947192228563651814669863437078892499775009023029780482952507885024431407428939478811199705071854304121908130498093882520644425353562097033721969967583154505784978669722812669167777230757778274289939249132188475129901597958810764571226359652495273103310235951582138165547084535737618854214817278920492363976646019708349748353004541486983359103353615405989921876673115632501505816843519959991091015739651940314920872549382435865102381078954181412847749423595708741114083012657314293920946461716340918543724132721131423340563832943987856603854137129408053285848023038043837890462481961403995693964571953357277398158818756286929507169905954307120585107364830219981939384331048790503167474162701116844875631637747456839171064645933203131806323784129975334216398557271121746593436979428000245224173157476601941238372819035178212610175521790247162623004212537308141057947958330922893549715655811858658655263044467986406693646109745498665160947818011888392902505917100240208953388233236239502398647087494446508095255100930100632545342913434879034973680900339814708910882077739653225056277607032023012195737238515562933556391180035612326884187175736212632175549799793198085297520247708137141316103483584443455016959325238380074334315301736296242927057278866368671788461228569716817360638512033671579150297099654190579026705322263083367889409108899212070174327935114032048762044538515486258311194575391215268724459261767670608425129713344856285145891047315786823555012640118993684612533121152331324893149358295025176275187818342125003772541666839511038252880547416006082518675624456465614156014830358465507322041209847495732980009688930436299853927541000516309821124620593505279727645236350960942546357851047838659238466959783156244511707563791112355918862927591805744384774444230529872115938503908975971749988783701126354014934239606450439649831402568055274121505683740025245344948107792550948751148973359572272538508723685158390482170459133319709922900296618117094072877673120932661245443092611700964460722227694916213255204690217098533113240322990785042843761195028634498798301538887103201225497164986912281426536860738960496912082925573864115811192896359380568255867381303173276063781727312780833321779255663805868613117765097001898528096529129444941209717854388983941016480147217910483434474877427106920389166655995943069680735394894574400390869121857411700945698970358266170709402292163545894362325998738163131003632347493252240804908393084197004230757949032986038820007048363675972404369222590519103036237131991725869615827417923335248857992819360708869525018696645324349609935771758645474786299945178919270886108578039484954055547746202387655258244438831582352816029584417204699928141259090229674050545492652115240027654162265050748192401970530302757542812574794480103514376050202338478831864151540479140911000665026278982639764139026275427650118297989960894510633549507107653602355525500895863240170354102682097295544691283387701649566035368214255693855946418149812042223430239896786194461390633074456222571513388424863845639930503660250042955460439342812445209848252458506267783019237462640736752793255783031989911273851982706198753154744077836052113490817333010628191274074095442525862080437803818910662636963472828624480181026197816703604167508549120911842648262116634937067275069638962938392111696536922668530152231253681981594275002081927799915186888938145750819045600646276105564917824970841307028667495433118412757957295560670791939098093721606438119461236264359268003615132600307884249829770171733971610253681544609404442937944810718461266845653291627144907201114263231108718539547361372232579658588085355076081946317017960373178813773610227087056118341591078460581902882174884704126466148726096841500477306947976021290176213084611989483501444529385013312391211976800358080229737315979872310378469583433137923362855235246104332795601088031178000920975515015598301346097337300865477498473322667110269091599751343530216710515113901424875759582613097889236455546003636330387963275707431762056869346922117792830373963911559735482116637204430177496472734740004901759677830891869644399266602281144317893469300098462821144518506106821927979618391942795624777906981021461496441678261716900160937433096017302834218940847166993885701570370166475187629522205520884581467423615213195021421370209968322560394377322230880452754777214241180608049725437990888721258616953338350338468957088081985056132124637692759187081742793938732287226831588660207252313532833703152253931599503019338036074004302786355389680761363060213148202756104725864743970130486413285788915700109587668257815085903792224070669840070286848586251516351382858787228625380864371376844391675577837091354644402125012661978710339712510284874870320478249617150206750805837622253803924152139487705949708129427048215488295059509220581798413583798772908583910631581940824185401092218346429132607157120447875546019129429798623537739388057214947016334822147173510944220968213201375988143453011515073869657371324289510796317183155174563788800886664645439766409260727237610716850482740908055656561809508026350272221812836685520418902989335886109015426898448551242904614524872160499909515548860044487970303365203040688584213684836413715526024869917546105931839869654167393859932894378113834487087526030378699272853961869971312992438432551594018916878652884882365024842596387737127652711233790125791727797454970862752278577634311321855262507542578940031123859335658609415689944131953048858409552253132796339443119644045365553112118597634551052093764542516310432185215353223361667508613646624331622852438977717690398040050327357875074523826038168758118271700482562001252010261216071829563520233256683599778185924763030989291807398350489137495241425713520554516235101186639463765234225519834635162631087202472811782674868141137651293595784881741233854001296012510575616987479640930131952818738665264964542015311574569608575160334244348088031318067884446625628233542727304333519894146771903930326977042579857214911999754258368724780524020749593991062643035888227605113020370812614817327171470309931849637124340415017201413484922721045741949155099681983351005191475793196060448021931418808952464873297368447817282602392653535653709197161033321732962709273530677033725997592022589340281441189330855923265659365657275170326927015937756167759746715628398012797944737404810833714301631144966308791405088954855535014758738077936165424458820100626612800412401761503195859665971496863863339693076871023007878023737659846353059723089588943309882869455493495076772848786085955363236848725065220879793174730779792725690120187016572964438955701821524183148946945931683321787318281328355682527182552890232202302513622947361646345930459858471381089434667690290938863724027549945997815369615942795641959676188342951311088958315188654991978008218893603904161598133385428919474926399126439806008849909354841683042309112386782033646175113832939826943814155123075714186157110058130590105968603797456501898514326174238351431683563594978680707042449149100169283564260608863855811463902128398086880728120173094478856856299892004091893556438970973403244162968347945967859706377691851818558261613463224033532210972233621879646218727395495735719036084785989465574002781085463598302712329083985867647197693996418893676332741075462898556517949729131085097979628128298004688774479217790882332265779399326682116628099998578063561384092425125954762104921684617512518734390555672133337566766238466850188052144744687671237240517218561237184971089206244278974398781996452829426915760135765639093239615399402471994767663424686770523908505163670010743169645608914042074630655669038581327329733438440409957055856330346468363264709015874929565242633432283712539433949047204635349693633037711871385942831565415176729030230872331730812829610099825683651003056816193132457486832995165778822324245237324682933206543534468762696257984559815873437816960339310487603986928502906458978717286303700108956325154304545656188327470011820264153467103116501047716096134310844160186890066891932351685311175443998236757984277580503524673961821003959578064207183735471282305191590332812566195776538943096940573241108211351129195713793866856958309155540666442914134504070028595216975981991536444270522149539300869042803100797103018912337261008862929777428873334727582555100673693948066937460282065249015329117773122162074747634214420654555752161868403017330166501689604045324880982851781728238822174415915827741089466181632293032765671300946220013886509889198152915583554064205305670811022261355285529535188544689150286514193519412939881806768316467176530082261419056237399719643521765062843691875699591559099984994614705707808950926323748545063944072517274795459517482122916955884717774458022302119864726168791430096355476045876452689034982727679721164872840164901661381939848589092810423436382312701495894677903480550212950339713411406355039031806452363027591921577628823291133219816763867490779504783545313963537736437556160292099488927444981990248051736116814566061807497755763790970622674877966647866517651896178156737710044146760775971263492958368662545439491874284070327242091106140312610601063353843105520577487094120812743022220246433632834453444664283766429069387897789347554749194306834822233768571360833397381982687965434349823333373350841748681987728166089072340007765937580615824161693768714366569966520575088530990737915662666052553589292507541900131328597590740446810127560203211148346865475472645061628102615853606737951329607613369543260634733535523268793888741283741124276542031746622677384067934356147415720185737893495792071048011584136873643363910418614575267587229053278072955042374941862610725505740190635282984542540052033121804071641365051493744510498950984121153776540885857291383645866691856177007630395976569092149194509415433867923945726377748513742092684836758791350134792208970530829218043149819493151723798753137373269164089680935013109462769622320400478676017799053573737346670266458733793884502891469941636082390018471215223935091353826442092132043010666810594214188642606164296100627594817443144137740892894830264973024699445767284312602376378618258935074140983431632806760335562603896944944704173992998605311280158081173098433306981437701110299035561345099382153545359781447389381552197548072577536431202378704360462994312044864659318814894333322466727653279241667939382913886557526020861223625521421898716912767839017367678734780238603826036168727701313098451656011687970524653994068519118794664975720160781205109147048447809716386325605212300717540498737898381790658593933487589005960219806279484021763858920455810180695982757030111001178847089545620100387270883327406450780674320259626872451273819627192775221606308295313455555422568057007824667051312258811943284526837640510671962775544490777905390634096193575697712652264152807258778170331674116895947212056832550125415154008246535558641725814685616872954136014413440229819491653029383374162142598201567962002863897083702592202020059522272011741191791833277463867229004042284585650443407849713578149394007848790645962876974536890455937238587737306606035340554503120475174138096370581066042066797663354468328438179935519251830084003204827989835919662845647299130476179137982471304144692122847920531041665796693156344824718386970672772186240072100802020291781491002653909199981354220673877719857120306424420663552701750834128829642790001364448289741142016237151890118334658296959686753489792586585728051642299232727339186837799850635961981654613593752255165495983656885092496935498946777419563990153903892050151663070664385434585136931435132536209251221764253110717042214168172044825040374552344481246471006078525927530306899703882510207308110284011661783716321876796826178836941480249458152697107934600984432250681054399081887123098278247358292873408896231204608839341702744600845100038089564490224687511351561214726147633083740167984054643852976519636029291062903836092054934834187331232669496146525450915392943538653356086406618584587194778645121302666920572007640254033083403691022569404758040149890150675363181056018098909438180136932485633643274436018013652820946838681960451713065416185701771571689193049747536324878467712862013557230269773103471579578580972376817754021833765191494203619866774479416400288620702985687564119160687513260277539412884497739909029861638564812323281986889990897039527125038558040928294851518641823509000630085696804897972612457874872282751636789804595297090218187649734750725882681291602046089631663707172100751396220140669528333159906476281948947131826046888569986212857562058856154453392695500432455101683732262368976946715432245683128914843182662061941992033358439241173599573462162685966702617474693983670528246955072526362088413383935177253676800078246345648833294680734533516853063246064058939835410026485740559418694067029924030357161879676770391970672622990644498070737144500492989373723969434240006086223072639652425211602194171666511198532560861693601109489001909810071868200385313286906988227305585266505954376916924317484343703626825856918180943030114233043940966057685210242339106217557180361885093308820079260882309958598866241822592195397951930379670974237021293777881855584952775046467803544773612615109410487888080527133793878880925846147288944961046895915401907405098824970101526735874516764496687332688246079163040666293758234375962253710815128547363868060254728198520173581359362540841766407246152087639798184232236804044751498923652138805455103812027392168070348202778965693251727162682262894456047735928270718348288135007857250243517205417543618112381441364145061451155726927342349662637602908201244195081434874801123664383158888998123056936662999379473047994988777351791932423085129366223474409120968083285377398756863473571197736932262637147315142315247759029448705948747176244450992759047958577875358460674066765364424130612693566332945941727588547889763971931705398971057079016666281292321511960802377397164069121532053758715056155503976916587401634624872166072145356900941995220689469645255346497413409357653192386425084297454334941463257305236356989261689370926293715972719539004082018949869810413650434325433912621062413075981949382507904939156970389156314113448508087431668703784665820442998458916569288410256931645856843912194093350050173421225368836346307551012837870203367709398438457656533217709157751358592171772497066532538632845050040318382846765592344023122380099416600179934753946851219560888231880276282529846485828423283316702567759485941229466629276592979977100644291173769949431421646277349772279636621158717473831364671042399126043385269444209680771033599056819830459696441100268439903787203701770192438828814749118727574791186818805139408943520730313647197707006947689984202070367787421278692707407339136907372606802880999059068922966696807941637526047125117473354913824907287937530775527015098778335270002851283231253089497642541694963173181400336451816076600552934847292068509817664605450436933429884603861931186378471231916720171228797040511372147731488242015804859272661390788539805600569956248931611395623547719801030159384753923139507870660937310138039797999200247399527246032561685189187094116342489632831536093049360987543047295433163054943862445889099868558103361415641437125498122337997729889469300419270114595410556453811878045441925389000683508245245714168777165602452030989014339385018856923254570867525776683951404588239622492118844629914248353091286139650798712470945514009294050922719151090962976437264440434779656152564065618487461179927031264329043907824826008088228780863369809398407439516025094006122551554429392026289403409617634246105792920672718241280193290733704050353934188954830522408371765844568353243603416070765347669791846520163629856020100462533194919990131738915104009489059377098696894893703700535647526098937755325758159086510809063802206665548707915621891889549690397066782084415012774228383811358107544922481004040776563023618359088155775326147517355651479286072234348092543696848509622689498250621058307456133305922377782804838309811804554835886706572388155244454060425243041004944471430351547122396450553559936294994355827182276150638575266548016857383588935991556425174116560745042532136103871656275677904554800028138612901999342222050952669902865182158407048760164776389343205908622079611133866877854914555697109785965503031022717424550793945599414376472127273473310323710847819446540972621399376129900112018206882422878161470655653849874622101105653815509700948650722373330964269181340911765990831102455860418050713711521599173548469257102730237626197398064350847722282275152039313403222267877339080369749859939658229609100951007177875591999575369740592302224739257705616903219685927572536829108124830611819960834183318947104167243171524439322200218196577245024089052657595841594367526056681626801296011183929497625441555317266703291517021459266717285877705309669470718513528956777810378406749365633733316425518203152820319416510708897538106735969807653761288058863314751025644627115836339800856113965980028401914166626756658057316001944466702621966729967712890808000558984297351807646063243310163542373925956264048865234449944607500565642393275837159794102318490764877977932490418795352558687820808054055998092389639784438324540776371504142537303750682206016090432773266703463271501945635108022268915183018604649183763892856175262512771159430664323559582158884550003627043370950153799675744910714022870136401882867458376037228347980380036539102888896350777994225083329112192073216761952125956998323934006349021803757517731805622231116856352373591570474926221488199920627851113759500117248053762381367527051320912079132419400261580000776321407740216404698749041716411640315114019310407221144823899862330550441825242964980666640680402492397012562911644104044066732391401958364249873656174270216558326117614902350436503104059859880199566627195730321408259863959433334564421768290729961908051710963034254307029333424435174006206689607420657127142061750522453107005438683751101032267097773045301564467349839209358891058484104957448788017986828028280212690115501305023274396755352723810678724700175811479850046583202465978487539393100804406688958215973073931147645505645978182474556794519872916737726055156490345832252152066609879511705502477505282663321410499324970195040660154571751414787245705402678328508913415397899955855477418606913142501483322011585336596004074594126582837046411861389146313482988642432212954966411078757032020056112528162444587755647389454376541127302647890956970780192554065583244426143783723565202105442991346000215579952318962343320787093875591776444773776917915819660928239132654568319925729505898299808739675908409106199866581547074611974289862517895438241972146293162898058383532484918959118935366725150306868375990055028072435092018801917697581309989009779600636322768087302225670179838512874487023247608330274513295157390888965677690691835822265338377749066361001578800383471394015901257062655614745153194369544436459439262317435012347040106949028478314243405221160760595242108783824479360645771900816542538225980594707228002327858077299865123832712794629784116441869915125332354631240901905123418269222751349038731985932446357260824074396843232442184109439786033840246216490561628654599505225362492597837281154471009823379438845306661720363331947791091372469249510613891482783508757593081655633694094279638031841821425413684911523765001831161519845949423305936973203664884165495555928003724679931859699737515872967252931071711424294135424807916407371834919947004043746951420910414516763220394969223117929198796290371615678834031618452475333749197715512743879474526438817818391950486694403807486130060913930071692957234644626870869975787202077430354258043653655688649384698625179344486083437994297483371782690979365293487764279966583400295090831950264257807379934697859735709175913572064832064732003188641235588990666224184882495223070471567482761954288653561009787382408941730680222500967891958025530556324492202121987184723739929901337805141549158380667868180776446325874134550898287177492093036542823522870162043270505494858153822486757438796056863743870968340370087461716633478553814537659320305066812397868213645239440699351605048046237111870630707947252604403795240268765105277233444692468165281887225628235768082786160339746172013405459175924129339493201374605773217203655266998542319442821253104291318700477494196155694258487729532721250861414198757573486186994653352030119447620531313125497395590155125563998700485827733919835948746279392309810578455157608290517088669048176325253479885498224063601206259021412610971482089581560611082317279539058417514111313179444825964422848568582578317035713953872364545178284409554973249532484468338003243275526495621672724378896055265190950803436850661380204873240141959212845367169758486118099448217793166274446072356804205811029416136234750988264606504250079111378721819494511758615390700192003400077120858652501615320562347050609033725054551534482972721785845540854116295808706739792213014420043715908007173163453024589964210950896805759478353690794034095038948739456370172799380021927903944755501756330540874526130079310051716938726294658747687573868801688372581359077232349502936361130408492314788745145245631841335131474160150473908353357452950857801931266229051567980262070678193506302625596959406549114830080252608180837624073244518691775145128299280146066541480835543988067775632379611599558413914793852245125135843479378092457650425301093808052113127038125196814329899099304686436593384956466130720917143162403310471372271506014898122923195857698192525764195358186580403990343101391621247578449515909601593944055844244957025082645102054237372195573364952181610770561118502643249015071165894289331224405422723270511919782902268271433406378526737015062272592682994251609637539358839516782979458728129568436611224590794852531826093454759975703065352204588879161926685736519342965462504261817947919259676643538262438968091427411152086406974942617150411305879961534587191548167414635013838211313657268128640211930188174266056403238727024491718007491434326753449090442770575314488458274872614271541827312842878584938926350143396646867621560063455102979274517538038379270195759505771554183791386320506251169378408968970289464548820637953830349735761035247671135458477638868592916602598612505994918518141686059338715632140815198647702672664135307127870223957007731056977658693500616512639194755792704779682214697851935377449970944978679998956802191516207543868121193315850943085737412307681608811900928055445313948493961696429862679797324408589824144472996860125805022080379053676665264576477057787991826888039103134132462382804207728981010826457432094727672268267370051882891758781931857544142956542567995331617815324419301237068699567892325852656870424543294230420796604444307179517277519062487103207759053302353369255974592133995584357089158342127781843333318447134441018235081492255334095998806609432690163271932945578653128408716455751861869724085842361967941031736649933432267600596529449561769531998251952660578553767050573758489822489327894691982031994392685252177279885521711571081765539584007996594618981280726183978177477723864157262609839466796074650192230497613061763329155670561411590919033968954785743001732204559784830552904278838344034011350423839406057924813491273888090165614256175057378988148118711957863291986801786371630939290555306835409402786580518977615442308319200693500808491910788090281272255935491773759282406018922134768666937563696335563893186407267255967278228198720353153289561171141499730944746571685912635824712686798673987442988154689515176356740444219624393496752717620117467777712779875449467751185838641684349518686641224092356666619698204695211281275457328608454610083725560663601187549578614480888622190480920342402253252162564378947755903335953873799628836373694802034274177842378805326470538570119276418051856543606093771808171221318562849832767662430600369686212852857611685474459164478313163032748541401812988205841575207593390458134254756990598858486936068223161994230962455720668487361100000286857826852254832642479011303747582185924670682112939138382052706192531346274853496228517501496126816545100856679525976287070959034316611797194697112925150115315343068295223330378861667098236915531162531711016354527468225600392346443609781707276002004239669618203495866411807080770624587664319810211997982402148228865018195799969597596782146047244786754643842907955981797039007489626604069765010803926645322855542404320593213776425319240333276504279776717510569548702899670694553332831833480183953538969378250091692801696210776541884327009953150348107270666615707349486223467531976993718089637838355650654755695781958964922179167960343188259041215720372305082232425018814111133200481537712492250238798300479963883730871952516480485803878068299515780691490591725632650994237517463352904972075734151206340940077411885259017870518077724413023000942462463971012763185693978743592328038442863369698314447864924674796258080373499381340672911265996933641290816377457823818376338911280118879007060454783119806690319029513222942652683505547422223840864711706172120338366232706619407172832931201311956016980273118751709651744965226518314788026330618728846398008909624330193448959179268192952016882563916509559338620817334337095316266001826214132091674524984568577617882158008295311260600196825788780478688909587331254204347567726432532870392907085167781730707979704894721385887830295299728506961365802364160972955904907385323911381233486576519391391794910558793547086278635877305474929038059338432391870756440006543215628175028800919901083346667297897358266309017042408657241789479828317466581789091987146554582510596434612124119232327267997209449547862971543037159019733586735357666058195264451173140651913087359231620520468725889921661267668674394902255564977829705845711360565467555155250864096683704019744432402553556664666445755760416324711121385406319489671096703292497277145723507778198491735902709942613588114956642800696571790635683832373592295203040214220921940244434363567005386461078956681236628235793162321464825630301649706691893689318057501272233270568341642157886428750534436694253694155576133903424434007540907352733658534328384420647739876717318032652949062171569310090489504333170866735705000310182209372568129732226205577511618013534188093868995189891979422277468203875978957676002414319261283616769590653064374833946160729095715402090690731779469981299199959987031503758867764044168407760829972574497404672769295594680210008200581254793717505070868394473660785488358415234164061651563156805193852178899340160743490648666821853193654862465507235764503837302532322095699444209477250554787823996849465053786475278800145532082231592063161329875740654387508963028414433210032756245941858436626597603664764518425237051924823913974615261034400011437312898680624315294032361714275704612062914421607526753494890868167345492057289635547744563491060986044720591242547417765347200024639988759310023654136721009121477821543236467482504522078780235941423221496712658903459661236728743036086814948186654386360160947142608514868636626289876791875035516589858850525587061006702101617372717521251893010894807900844251078016345929419709955790991897114756607729019682866272602503377509308332725032578907613934639982908515190853362597454334950998961503467075332851574203669232788808390780096527064291164583167130598197913819129835368621823750342798818744983437282605950331883233447303162151582659854331446379531188184726811238482534075584963053929336675392698430332080006970269919011910279053843678865583695294317029646800486047272820686253235334461673336910976167990448585124721374464553853942142882567033983844002567907866635134607881665321439567581315069311482612854995699276666520497888763000965199719713701676176938374405334087031090012117144768148611117806579609525060871790042218328619710408465422765229943701551003587366659814622065741400975151133422051071866231020399083738011244425297403251262591525403013356219933047527520304560964217425427587599448117110504631688217018681661172949489699912049117760144695407936234816135016043247382972511760350640544032536364239130307894197306709749813908810197839486221348930248814621928719310675484222580180935019783173834837950006142518181757293207336077838155207813960855722832219940473472605584481333857452915446220694911931107487857367947025191127990282853156476845428259119316048318820457816453993337505059159979574141379518039711986688381641399065645272074426896559847738273691330931676564539266647361852772785941784551796886268553619038387459320696754532731026156496792637032956643323410582837252815430271510962300223113940495717139523721403277813903575573866687395196109711170309237417027427255786905007434063378393570002028504606137053311391385469544996947598282418798763483088762092033518405199934120856015893944886300228336829494511168687697744305774954042015562347105351101492426461553641287973759040461886828193404015357659294901850460255735575744153263991059957752453090817442405667525805729282339251640367240492940532693021206932094259372071074759286420376251868409849313650649035068247962268091130058721833326902683190793077748622459749376649005236020725006370415868540822790366632753780679916755047146291827583819291819533621627036582176139001813408625673717272743968980427385395959192369639551933324421822705875316450135563464044771278015268740102181533935280635517361972021606952376389255037629545100326845189680270032082552588624703112975978608213160746290435464085742542570840024318862297337691053423641000059552352512316957943194288687851423391281889662642408002962491013294618627256995319715786584950051812308880578624056270252168884895218101261271871411651084452086803226867058021553973752212769779754450427501575008232334024673902106138234661217791258002002699740609062313729044510500212036380873731289141193594028202801466280810408862583473975215812887654972057958735887036447086658482019991329465072984012323818586583367641755024146046571751503301849274032139782618868610257224045550328477159529296845892118812598110750072757151038507418432537416750124129820612640520800865823521731050279266370911358969858713482638757590966591064728158609310799206667924633655710310167728698024671040081883062298625050022916765496394065801980071110668217620022401059813157598409157193029534790955067232979498745116023884704024183426251825357779779248649692055573103131166787137875460918469941745198569400258321441550410879299375096529890839420354234030920822131525964554384324809047237201145753880496958595396547465234723716321650372759221860648745760612494925274744440378083907470732316124888333922262419762303236472460706562777503541152766559404305853303385776309214980299101216036595482379557191221967811707702769672224560523026501988478005270029002930915104364446864606929426857368111526781466060911173193938753447900863945155316994211479656830982987588987209498860801265978148211389979260330721732828349082553719063600982808671821895387407841237198784384954389906703822534627317396072859032814134666817911281931697291969912081300692891036841196819296028059113501142004212290358563195205692031679324831058990330988363519814927050543628139466406655653555034329189091327775056095976363904960582402035009763858495360350811096755133666302597825806269739476427747697293497303318055707704995889738855753769479840817917776828265448270961707955364452436458373589147410542407339801089895520707503524479527837094063560132179336813872990020288993403806744238343408234630067995573569504701145464238883746969214311283624091522811333885990211370904514348251167785093122902455258273141236796767543038623167055832197518365742250494152545704024014569981010211757712832528960395171403568360932673593829857690952334598330269816660012183485169417413028978696335329040451679464895093206790891790482274720056776474310083081748865999297879280993438703582786806500411129439093765533792391466527057806849280981172280182055414544971193824038849961376815055574510863483359774238849905711223670969464109209482315292817303341737605406662208637400896347589658648975752530972950841964478045768662391319315485661869773737385813231188950794897808053819457688459713248016735205427926973416376957355717842580318494975440912826185802707930618195242088546712719458456976207925429123835520808218577051437156055163332893965602605696445971450513421010879967090114972472229558161693019307167045603625932754028455916442631214210802436573337023398666404719911094431948232243467531168736323459583396137481019378355628564184732668863024137587492235837243918254680997067007702103379781224040633256209317484602555506444246813034335767384414079539112307914986555136765997895641246731845671603285467665697424235524545597430213896389951223685597767099291583503915547152503812987498475220180180827242960572801323236450335133912544524504545328402401287607272324062175131985528852936251685397705289802857309407016817818183992884253522960293200518402912163561708718275858400692799298553114407068472885259117723095727751999382347513486322851532634574602114805530945290673557462092771239483345151974778039545086089653657754739227789154061108645207006718213777328459670120146961404209902055804859145028359823665057045340189219607976949328635699182781904671067704088734967386475888533881705588842679623537936593480045421809957552285075842794868611588381202823842926213119686207063891556873949816970996804109322180277124174168719288277982410739042197384956941295279703603601762233139074190651833674298442263010526988190583330787155539406090805763402872314523374760784249642182833712526026317671414725937103421464606901138875889476052236886240004253968811053754642297107649952113404124384220124373032587132658784224129667855219551199544615542282046590313327359050479693587055991397711724573465176015065900531923835741997280805920041257264988270728241064220587316543127218099258877597802813587933712189712513168657791999018348481381152289401932280523250643758277642499266709806308023687427370200280200839681594101614059321943840102464634123981095959215048535739760769281362720205605410027596470796880586161721353977101871937408459791822609752608714137484100607236731819400259166673396448269899858831971045574201007980456110081539675817347936632325805175199677594248613979095568610636003253652439909472905971857784627934651509166471457233224710479127275486615127210370338085694710379703718897232493352336358896242523456410479844751607208786181468294486596649660734045364189108444340691389121650825081250398944140195623751484566681774280004636183675459541918084596554685549142193504434500439631252731733518527077292585068202770692830014466336844919931054805164112585347091552197575540980324508596874308285648130283556434742492657779735665404201761697367144798073942336015920832228350621801524626187221930340587747482252510125758923166114370052652286932297619693757388016976471803570807176452597455891364660809918723245167655298983953025177198298759551826288715301678466966072538592623930360391777481584867208162423860330540772017358990887923381837544052575083477238668771428815828636823429515204719306934875049267220123612046175658528380799480465093193681594710859824114321536150469388719694712890366364794713234209183453985113852828722479598868693706513825749557990057993807973089747583858390118941390343782307766427115204317537876769103638050539576584903065580145649610299679716329175243120172267224034233172094596229227844901635956122147976050015667593959101497586315254686242728322808495485461772748207711645673473051842687015538558607331922286765416520999372359362761833286191824341213193973830316748518409586778048433882719209150973264784251828156638497186717555870960616094188459191859974338564623040559526662415277517323156105694412142515557636140623792656063239090229569136489014812673955998045150777104911740098760693505901238985783806436684218690039299757269217915675755815678150640021593668632710654287561812946883770424439918524100580022995925667769981929152495401615773385857507559497135043095566495435095835501963935455172467452446913338139565605132198381193764304567149679191504800012057113206590920290958531579899852823801098601335164256786963228783956411260545322924071481650072277205744388584990434121504812361219245012305074773950895788163589730599427867781670908533804069697481360887681610385005373904990069854343570867269137898991488263554589249117896828050176631150563051812712312451028412010405309524134042241206435527260147878780166891012800492048697387080555180833662121265165527912930503030575860343388956018688922546777391992455899567713913594410813983188604373630243735823667848585927233292262831590317143080431118350714170629899666298783453820502826258054348340845279353382659595067676707822944134278868887931792916598244779677552841996314616392087212142520531601568618269041287542492635470726192632181432640930750880752980724231023444554214049585380280642107192376467631615944190117185632723616023096529413897248413153288908378174411761312395202903295309545772690410053673661353088829875762737601780010805580987156583614260487104555081452412543804801813250867087329048046392899078027387621471340519804595507063880013733311449740335296333823135494514413188392653439341224909947944684152156795172029675177778831201859411234721779874715376103962792570810677888645022903965993122670876978776122343248642496006094914136010824750341671050190694104358243132514806888761046210298822495774757797526097656968551677665179141083620617532364388101234873784494877727203484857652679473398739394794295067831972862981604580421284909987029076419678644353300216021191415793248161459646896070540725379066630956168108308438587361966031086193492158658279801257307674065623602958511468828680289124787591345003342419922102482668977143859949457659697411484385890407505858405103872849211543833161335980152815227965291755865553734584776618316339531379821589710384815504426017348370776029839883842160646758763819869628635008065495558101497468300993891560732158886888830627320359936875473840782953212386710883407361960049237790340144191594182650199038275817731807547614281224824034916455852522715135992644168860957555149525023669689191142330265324713616902820205412693943914051124128047999929278319015174641688570137243887340069115795858452826289645180498922778976921261365595279960351553167913434245297684725803676941622430525939444716204231591094071727943884179848527918222688644549845233397897041866107355055939725556383392453762778903575987948762534039827554789113514643267308757192937478523551148156491376318065363330106603925507472206531913424322963895764149236760482411888463731598068388107015313539767083640545162069789738778037718608842656375361079738785520334964181761139274748429175334493669428496990048580705719058473939441702032149303479393152417615626173906357938658411353576780702206792633230246245072698784599416734761618840518997622394340632271901072632490732583117785813143903635188153048683589532750877220152409584427571217902317068415876286014590773914354468536223604785771785273317991439143110749022357382961577567356834011237939157909471727583493280300181865208935272092626391595435134846725828903434547884391569956157352772447623214290517762804049261634117465294454134264220357405312714405269224068081694859748948741816240478999061867404054457810309608002433395020232843667346338987521807745620120452651582860671580308443903500714864273391958264306062169740748146924737797064425030109179860371881016596140089163994382965174342245597043347411112327224175189424375002875790909158772936878442208520922234495284015176401774371007459420685805015918853177115235666861154375214629936438939308365947321334433278331822804797004616674096518329167241452904800890971060964601028475566670839059246240704510548375319325490767835740015254666913078674862638454644655559909641049707300954057387174764254469791416854748685204477807992501312315707359795426463715686597505887934773326712724091035562152114196308330895273887147563297942635755089756919378980163178297213444073648932557468465543833544359878468732696989105685221996512211058623453442877907403467385000407212975318685521114359911503172485420127772129780497836943472700842750125923376590623727223854265721615888519901401367884872271484482171071451816793483925879728843443569255271289903792280416270008867990700834754645210242632868415326122094137126338485166120552381894399810520961588568483459864594603773845218245525721897774580791137580215340993472397824270704334992533397390460845191243116156999478779697839382226690251485407709508893491066998153628535015119661112180745860830997306249864888062441367074621225173938805676765840623022753284241980726276706219040883686035842756095104233048983870532436682386919449632277119377213816283098478298783143137089559804104313931144998157042696297581884136532565897672197704037569290606826002493806484324640539444787244766444923727696625458240929737515048859441492359639198790587216161015792512906214442158621143890719506628915719161579456286664844105897240846315457491298523854949508130078977029897950710721694535483430724013242010412815677019575362428837618414302921130223620081080481243420486033020419402372797094729758719031953421677971748457917220816195558216352013841284534455124734436277807188959530072328166884613661535682517337314702513327206954854923210355813284617541279751661490832507174984443308227692899048684171274649234331913992066455432937792129768031637301546194011539349179591466061522609264360967490516151832018293337038540003525719886895681838119508604950432303857810380261645863355220571575482972415074784692959287026366178347327927583144922258661335561983229015154220548325138675555759749190794868963415244683087754888788290154010719177105878814642234823684725823859022674795431299391765038518869798690530348322168680903704091301419580623255504684185199415854136263215379509151268834008921179445453331407485054527029616351541256046914010999112148114892109776342102716405371650311377455302981351886041786158884082886628665630597745422394227550463272979921471091329732257795979136018055321296019090519073472618666573746269766352929141880759927944931861676827267315952332791232189434475406702277679828841975584414389748900902208498549393316380265688765984326515057093259527164558972023974089565242729901829375296323857167250125236978260648026783932866171400969045017100656368880811167009841391225376805148081003984434157568762395923600391074425244104492751817795946259557983072322195721573773555272649786414518382773501903146568124113762684806672264831984965088511958653761524262064444688358990310228993522706404632420347421934974857540469928211489038317237625036498778806125373117193795902428218119201323662779655731303950361188787611826598108394209418860319848969559449607538990633020666898616204167414696127709705165183540162214134054065026503381122561312966294081121485234695328322795147038456629270871859066081003297817684896636772265820484363414853711981972578261516262606369467845938510955090156963029967600601271721014423652278234819729615464841501315888159486760388770084721226666255960955605415544619724998507213032703894111622789575105451911269276252145786844633554860651304952981401084480280231764985703450255184919237942722076839207707954803034269944459059840693529910910530256732566531383336021397840188464097967837536151775539009281591503327876985892514778772804485414209938839090570026423322260368552676202866181113730582109316918925823610646499371895042106600454014938402794232129495762115124633233383738638799155987979295589694805852737274059709040679594788510972823257420471497568148892161812241363472972550124363545081601001786683874594387041691827657738515354156969963349740062793303730513721308654668350286755254000946883221358856912230132348623007248076650505764852728326012828638924422054988150087007470628139496010181419802507469052947915972781484728225757332355919456400970187546049441548666772465869360535705691572752474492854387511184575399179699056123444878142216272386884060377083096717913151358348907003837441933543108620656022834293640924509109200084441408755763859432079527847189729819884964898879897459165421122644183105430918465480243781312420274836252366332032893989652004209585272853190361297402301172383081355971857387167945649264033205640481740188142475861965351238988312277395051991978752050763311947851347822366397364881856494334489695422414563412051169411436805645324539889075713984499185229839100821018706076280542993429824407288399330619417225861163022519074740470408904811223403864946287930590359596902434607403302243275371120869532733531775244310242600797120995050245883753051335708742873481143842123392801680541238577103428743948389430652767460611021524860733970346446825009722571260105815735976952906088335280569684458645067042062192960338149090214244840844979963816246577031347604501909186533415008282432161904985908097105529535636134343374556409589125374917293419886972480752345509524298290320871438448692220022572009552919012669610935741067329346090723131726271710601076459437087060226496167387680693362988407273742115119422348429150061956408921168800822943759521768720884968303822615848552361188997086075715372838067790969884767887282528686837112664360439992789095560797554697865882533300051282865265292876713588893788297264675798041877574157475019613541648097634519541852804556374849783445432271549564193845889408075502748603305754403663729315725867802670345628426909058850202414993373110676814736363542422914031908968064465507057034589926371142275135141717483115144207349015656684610276354158726486967124281110673503666392521127494210546987559156443442952332612941901545538563175785132917812104828782762511251241153463735552243133271969273415027915569579221059250514577124038837333235141167202044590826135997758139162099488912713424608209527065568382257880095192722227125539554431624500747992274103076203795707416379762808464692324835068122281480626184321458599661148246816258107886664727778481711540829857687961531607882113703513288320443970596102006163246430177300752709203510132658430881878628904507726362315987211352600775560121879140666069414576066385115482162944636436117411314842603670686033080978816046782882120234188781897203152626907038115288190199585615009063171759429162721935040456867127552485929670645069272922209811811173996664047726923467367023633986238333412064005677043710261320484484533215200504438810955646620993764040918493234306741848717241565460122308778295888271871552039640261975656357450728096968242552457373514619000955369050862072805967099685697267811505663667709056681570992178374489846879743266174548902178953054318886603770962648191323305479296342633504659577479937303689856279312660515288546619122055646104194351478383741365186370370992942875582546732831028974608001092702657893576216214926153327495624282406052553962126392157224420793739529563153309069124086035757552528110244680372545837232437813384039400776598158565858285351165796354302523534047829053803381317356634068880967046138155673391998042981579802800277889232415354928125227224672060147908335165106191553526054067399518298653793655546608700235473683477778893728210498303263791129034898602013550483272952381813803107465289750418067937409204908432370056171436586780337057994712123197647691072069091321644393345469472349307188986425465564500308520783030899221748463482017381556952868339931868369646004623505377687733432818097531264030106589040778667302614951310089255013603404896410035486535695059805274855907084279151399335134253540229058131118376215476482650700672165310370607363539990202688321899142297561029217507064646742709945888802250725720328175152189044041287871314250928621790699685402407803171997241507805915770310296137523614935950386870640129697928315321424989401529996253909711895169084852985588490945783595127322953569498881342280961476011845707393376608494384042908334653622539411027569590929371252108490319289366489716359212817220498895425558576523821165641530601388904251229419070909140161509065312776599348196722891263472785478527626894793097455713496115897986137476192376334247303364874095910973416453775091008341103575572502043531905173807165822852112034345850727890244432153657838248442689271518615976223434267188090099058953771588554415545870834431086998162265486518332614987646859685102876695969748098180992768328154318663684111818690057911683892985231859448578631938239914067180890725950697789275762500677871446037489389837776758148133351063709355660030858899222556600697820076036786454980655659733993491597332917200109156928843550271176873054609365554525177048886884173833263663210926916868970714759234321961855329062981893644315568407495973002244872310601788026783502610324176601919989915999638402796312447728924933070685276896892247619659081896774768391008800035282191470854918635460434896965091751962639741001811787767430149376920151711267403982009828280624890816893585386781728263610686117617823570497412710526028126063614586776333436898484020355488758947654334885349255890501341677961028851112344749973688134247773749529141749145226800875049993010013282782012095362035729168227672818736865036815365744012254890377515312258474898954292118109191935480635156769191823300096062125864012386260701386273991965961615363153959742559797518068065819012276534027481824306788742801639092432340506439475194826039762720525118962841494630298311211812252543918221910194946038518455636619700261359549478357027405912544943831680947381508078618203957755363712293911023574137626854896276488462017840714524333164841598638631590545442339602728025121172722620223180628647199025095576815147538109349757642449195719234041440860543982329575825226710758966906204887015473329316939126355191951049230601633905411654158498537075263920523279929173558375156881999792245576208179652806039214294068907000263454772230996157156892529216440688767354024003354536591257260735040999271719970565650269371494419963226943190875980174286839885153059729959099596890308141137119900342796785454054164145893370712702062611008260025354048176224094806452810587340788998562383928352231509146187405669642226741257877974350783914406592599170112490245718143503023812759888157664105789463915658871472495285938131138444401055408290628817328935901525934204463866627880442673132438404828587874078944942027336528865095437861746736611511969002701050543192393529352255883472366319914948143182260486874750919017197956973020195397145717744300941984683958102393464854354201793841591070736460817123341669840255019443795284336362646523822451067654678085537219335676088373228257939295368345489280463862955630322234197279139614988800356417354318173248427807202992554044521878337563976119594123186265741596792683318470159432180587962990332250472640642158598773177725658760878029491629189944142259597069259038673243346297667243911357413028648267616327241306468711655431655313935233712541316269393721011370075529672186196698870993366574065513694862075205948830238547265252350887765176041618365671704725115483643384097033086088845682117545454902056114862800590673202701130965586940754471797197867518067439281748110685434186171716403520269669229726566645535680954326365396938791187644694784230707554002535595808510897029749094049374848776767041682598725290452503447838912638093660008050298320319270882294213641477539541093220995161515554941300572946194254609695848066677098798424357913037799984139416917633264772975616931887516173132700766373772315405477483900389407413502559834212583531286914552565589532357701883039209641162392774477372562437318841041024881389034955217282250165325129235702201121628641124227833588918522096565039622430277977757523358703074006311348998971352795851460339389377235331579767288904663223470039975756384449599023060736625533015539010398475223963922357342109669493098754999285287658665221467528671757770559503345941994508446757459620775940314202673094629249393137168645713661368924858160905482601213631915225499119901436704960138804100424799599026993259532252014327363328056661909537852887774771045540638807549738393858393693765219389460411946625778598084910524806654542646184474952572120218137486590110619862423233267554108983758523777418050080110031367920700993364288298325479257094499754379997065351886771588666539783051022273179674475844843035731877394875000661501920835918764624563180786270896873283977232133743553021616721431360693041716338871274575797707798452912204960113405136921058874719663337095460727200714421464216048665431027210849559073347355839418907772358002590779775961282643445507808291518669119952993985825149337822408740203354392405589029028296773224485524134913167822966599060558737563294462660781791904710272235431459924783529390760877198259692453728290129117276194345681852438444620200990488078916246012255736093321889749844049012074483149634043478576914450197024037996337456672559601929183433909237420669854407951093401894338401559175045363570207308957775034522308477911782226489283644359629586976012953486250843101032614776687328324166663425479566129260760070605901203053862185359109628523455918389707551043455253037042905897294303217732380806147389536997005599361580587881867651979944633780037373888012954391272939235286410931092693531370654224000138144873700976901561339020154852276456574388789244337028459982953007340794155153090912029631322194622193493774901445483734378571953772062847114295366098967015768846218000433239895167687827293433201301802500851587767705801058064306951597089749457414460844639094697821245803912612492917966104353905288999551729222926169494683474137102065321913139952442113460207536559859454917678619426629784378137270383917090259455641357684837059594412218371331202995898561692689940570995256907234593008760812207701477478718642723577638419404332482083130664524191633880922115377815490061212313645529401295331390718114719748601823458938309209483336741618656725786381893219839451954903788390803433250598278394696416642746606930586243763110793696622451296752737967320087019803276412103126708844457516346989838844062151329418261525233252163531695235863265810299308930875267925288933365072791549575409263364591906781571033999163474398021487102166629782483756018776957400258403903156408797293028242998170791561662333581461751346191694474136490158562847890288004331144084730793895961560039326435110983441421820338460380286252699188685121202121678437362965969987408787870448261418385708100878587407612663212877805325761971216257026242646139634617770279168011052498384216091323368765625392768522003220712490542781789109258320515139355083810686861724099577163391190701390697165501857775558110685473173710539781515217531082025873027261009666325470115237542131317667897041014420163567120748112691516903234137819847223317384630128821983034697741664802451588207474237918161481798651737818649912828337047234357572975354699933810746988668463614015715802224426081129074508638477166576451913731885719810222514266842376051430338999409071137182010387264765858918002833023781588983178081978118569026936479565308566096516008361791351338939217030801411071434095911995808148536181852402936376563936484187367946946606964501359133252083628478859138372403911209878806444627636621713876708905337251646451099958123041988189371417760170130720458054307732338244577275158640194386508085125360090699293001910946530050111069590058110015687397583440126886489764862470016219682687097444356660152451988878953774301616613271481672896357568349666851425832464873595792049185972825884873805722876063348285919046637979052327080679763393776687366928488159454742545683882041048975246076423351610251284014877277741089960577015760597138555411799023455643266385306569713542090166539958790331543395779007355501514586114963073812605318714355615432128890743423964784640102231030186480778443788922047930305713041318722386718653477742708885010379263798240142352159850357099629421515436704886602029872232735303379880445421776147543222073964397838513909901732989709100425098867869533192323073589711248439671984457538261426129819487093992606606238303217423539774371359278322167872568051962270514460379755442144935107697188361386498622178132158963363199217183804883886288990132269264691719484608744625099999598091776930005223983372566531492210639285012407468746105682147217386644505914065879149151670630181494416689667908444463020158684848053458741846025186097438512852339606198723639349776543512199690416194257209507680413561743421390509389193258455905974932636269497101871048689776253325919864607536900511318064755062677004025504741725602866075483225394862585365029288519791316511637330477551884233360682258373661178136788292893612406516285772225283666452925167462857575262368230066451792940888549016011110696002069370511723489423873127217933406116583782954604996236927193629590330069250298777367820647682869772940355046837171281577087167097856526723018094691467569466738223988369054168089929760490421760469381213701128735384473374178087532073325711230981392021649179224870567665040801438046578385273859305204568817748765370304638318888944342527573688460011237067919489501075782796508417331344623817084174801346241313226243521688024279923232877633389329002295101206726786994839486277870944087809646297156218763898491953314871974014955071881245028059918573638443633165218848191201380455554796937335463029305648677299647814703137643122404236875913080128343197359633354206035817796580728690539184526778781275896600141711739445356058579268996726677722787898444977285899510542047753625659232460925400520150831105374070645939455949856741028890393986606305048165381327761574439890344137168378277671466960753361633599605614858333829248039937523450956723977120267969309671271853819664215925395170127692728627835416763640359234999910252029204171230761878711755790469323889780105211107976070694169904275479168370929071842326356135579261686268560864241863835269074368894159029068163004849163997182277845781052514604367174665689673975603667401319905011073466523324633977826079476637037488747012464105035635514305948881184364982627315436442116057458024116947561978913027219597842707170714286557321571963349114245178135376250504822643583169339698316027355423120059582764847763311543632685012370956468468200907143383124106076794472444514426232453443578044067047136994210874181780472248262539224833224626572014567994698898999482784847701995035090598032677994470632471092870079579174947655242765791818835535882568788660120137339820430520166291655677840578773634214475342307068794272008110011026210623426197988704625734606255126064635918700738694217502747107765703389829592187052169370050775612764980534802647377877193957304187407992159474859732232727817660807032518049262934700430819849066631765535784836484071804716499438079030307475220988173529336780393406243745257864100541342526241942749218055906011152029277893866047827122514930090651855069058950939378078219520612743069202953917380012207883043211591146562454287931515269163489186812884731001436989725864692576906515007752380541454698381231890268193702950332226896769375103612864987569482437506626711980410195182322942536819441263886925857833121638621896928419475503736223593978305079553634292619229456926693069670085062413414059296685237843473862234217469813375093422516922607882617520456707725412982139125741246086429772602899452081734903679446926695873293361867062772122944104763795892189950682898983365849665060582673241528617386641924537839507980819491585373267329528206375306459687990059090553365783915415481736449016042821243772311765805105636697967100268329323514215123655410368097962154253898526244185489740031295094732237054423874756243787287116976757992646816010103383609295841820932245804857922656318656484315374157825622355497122000573156500479692199506599221310187148039675349614219189932456515159023773463566879921140488099220496076381671631619334133578160470391868321919533345212318575078613854782125717083524412120783016913297019447088845782683539376195817732648894642797862275399171803711340553737089627360328649680958438008452402946784870740373981223144940416379357893517130868141618818857901012441897507267541540312548816176955871642202613419831986569250391489515758573936242138843205713481072890310057607189730820535511351566347059828615449279863940927571575267150085157359267568798196986902824450625661007196123432008471751726471020911768845395994284571878097759309480760959968054570533488805488709827856092403577725835155133752678600207237176577145058109737828228258510282414252381219660837321358344413302830208012605765810783648499615609812787343100565728368615189330906346211823474590738503439551219667988879077293697415638722366456325732757039471806606269000323855509049143604886610229793277717270147254034456936745064757215754324677025345343484845645850559398300531878103787752274371635817207218837285066391206390461161842691308439582563991551493483466352883932849444075930823370953480424583503663617685044227280252885984407634085932031306791086983534979866158098677606381181662822763535776203806229112333899718901995466206648558885179845745935295568372817928887644203497401326843114087793836206334021022667244322105099894642119241206784692200199728248809138071724768353750893423292936463283520653073330160593402054405788782018949686882167956094327193630423259966666493353780542900908753604618354356822387008141317517470076954761230565899563368109412606946660967389782372704018322090944711546104958716589523514960935128244696790005991875460597266812954223832724688413844437467330429854468478948885091472450830704869123295185704609216100875161549689900155674625416530109758861374310311186946109886613701414778304084202759621457694513464819796621818339827845284615160871136928509316195401298489266814939572351317876884912440736966393166933741189221280125052268147000964711079443270620132490977134457215558799465284665365717896281069885748968483172064938434514755617363112948110609471713228398119869397666827957037998525235794795916159461144272212445534525516135886226884217029949660402068887599794273284301837399695216596457774724054775498562429073131174568861538125982300856439556419552951466758465087367923192817950470469669168832192268839715354433598180625251251796424455100162253161515571590908756757979457736951534981221105655505286292296583198212252745810232351708660439694172819445392776380988084943371475241008399865475987905349248432976954972801686227055104844764311825289521732390337867168714425249121664709451620601786130651866349062407402546297986271921454860384186817160279820624220420217416136118704001967979927838081983004096973132697774912792793933717092599302991768557846724109409754603932723025902467901932365066505754905715351766078892127091528194586819844643875342439728788681132501569621814694549722854290701966913951357504345891094506036260325057964217473261402343275335584931888319179058692950724506930860179616727950149580600519159024506065035477541172480895586920194276265238779191772982134095111529236520731839344655809245992547284625142140902191591221045830430628895328359430604881582114234374185890318695192354107894704332770322860248143772117179113009456128669028500461574693106987429339238789443562296208431622145808166951634585574758112741043614530975570051821953807766838231807375636077477155814049908412712142119344106231055456884961342466893177935839372132692952044303750299281591333664752309687581637539923414224422954082286691877893673322589159092600270291144936723943517135462438131784388699127081830338710767723885436062333810914803503804035529750053532809244714443867902431997560800129271155134447185677797790958712982354145707726147851360860546227606763671407421210481116031266897399662035456619641961304568901688472307416726627653029201875883520758518570607328789103280965899779677307450176041311028430582417877996006268761245008741110627553126614270489756870835912731968473139773679587209160077417821809872563385457691469331174598344728043725700502143145906531059404166456748642733541643543117605071978391248015151569133056215456350101315959289893365747936311532038795651784738687209804437927005392334130198507532329678020757883729292652453557263831374274332470199132669362812300330937243462928050282662018027780376868581504347264939521452138605514408889146321722258780679636293075207396914985312818503047547360543349559506310275825871224135866993502151567293884138972790210697412298615344214763687808093974098352863178614314469076935811843644360703768910097870366078421857368713511824798079895709209857508567399179273315416626757689079488753373672286656561351447638894612563866762389436459759892887422568647549171271009748843495052740717315003552972510861005971476937120000350539364812378245788559797086567095686876755122147729812594243171484911599061579922579656784003437873933355048244548410098980381928801466229454488694818048529566785566986414290619611262490042637501537735408069734867828472423086646109113541154881319421663945209863363193793170800319442353133670093936227975069689442637624659145586106597091986185290225508097092354657330130526791685936375736998679291924233187513459014656046136836538235657170696887944162910953501910284503561574845560054201226906745627615777685225183859859333484452916404185665250694081668722342894842765370996540612949301404049433008070472381034347914553212137791231599900969283377516542932084888855507918297234907251992976323771702841058914991333782863315779777249861627385216576211762038018024072141105471912060724839022330873002443704168471925197105498854322906541123214453077131204900403334661507945562661223934621481908843544498632996695049284591877171423392373291262198012096646086726744951723025117871059647544829464814789561420380957622621952435489799416985276117158146559035054598577584260274886769106849605434579675773203670285062065050845902678149586575311682820951695294637484740803857885240596908965915436929336021969917537190778009750317872047471838308388494734626688539153622116309679282261807540146598355103275867399746167983476876847390120613737441455274482182028532640430566660846944924206704080604269415125880583628287286690466269402936471834972681422125280629206768475775662866375208720900438959955851379839361168589502692698649903263989319711384351653941143546814179300652120138950381107705888804316621711180854760178846118900320958502812227661815527835779758023399900008732798834933933781208583403465992796192300585346852892672581502393374661836775185591330156638872490245858100148364461319837311055187700604537094857132690564979638646960923801143288763158499329674029290581150359569879321815648791771097260293148573189865610966065301763196973691132087544657923989622014769865261540366656118810271034988305633080475381960352482897125195976809348141314125770864983807220682239533784607156649373235905239939308261684928586110390253602196234747216558733310463975324482000791915004445054299891797339920707001258483359449617145850791889733173398640622780478823093897437451344004087414331409968309638605739771690476182495083953182985402947050664497874511413367117179596238291560451709592560398818426450616317498256659214542704984203441814539558675590108441069997228338427310271711343793993425005050909078269486534358447421750009766095726841787694021809131011428727205911297958382636656045042576788067572731217954398722230317124456185171970463917720308357716911199503913138235451322922347862920649453671742844323151658797742869498657530754262405683394133504435254824439908675443860950629777659413485622268234686652580859287043936039990114881924801932984226376968707398288290511871371406306464230909792214807363694199461002447716110346532940159540209031715474541264113723826658580645844549036561644689567594947167323009684203857344444597264529466367056256764831660609692140216583381475138800881907010965080683081608759428294938864278468855847941924887259262165521983262978119164907083143187278984624829125515841070690099291235015526690590408232387619670679928755052562622348293189740378577388921672430944216171599094280264264315741096330987718783739879677079328654728003805942818541503264129119768934521557221588940300512272342570374793826108321996369425599235124404752258662928963534605065468763456072867406510208497730276752327179746367732315600951758180519246395944939108066140730884221381695243628123029081558283598059942924379430251993548501796731204906722377809736559717087808920001539409896272502859228915391648704577134463166124507959643849032242512665673498820967993827893448709149732571051551423978486626128753343125530419167396902729844961691944707868215330482029930837416063946149874035512967813667961132347112652494317670470494402890701633715410273374810991390051089059783854267711675347755479613464419464292520825019964042692810156734828401122251893174919506704387428862824786570220866696402118386266970531170762176509291413867770886100500935003385153656369767407138047826722688595478748624354457434973456902103889122476606127859417756476655071926994316587508789865491499578119893936840357796004305874246593043989339707245879481923204962767208190549641599449009530488373890392871418978765415169008800259870288010023211275527260987532859995080393138869383960928019531977617765143737947061672970472690482530034375654390961864408262392172819710837967557342618492403183586799589283048308360050171364814929279285790560643768507774577117903931242010476290372913686743220036052746859086638461686970878001092637045725225713829446795093968934652269703927377857364544475442304144336459156130700782517551547703216813905825226757632260108511994393901258065541903613488157110258224841130182272125974846725862324070156067306705642627447049841874570845180063124983559767657609916919483511648608689480990085419278498682236737864127041946419095495967580726393342887268503794788902499186472803395249993763487858133660157741285013465621571202974517478562384072497729660692118620503449719725780828443925634907721869790783434886332042948324809453477287144257494557241899533191418269000372560587870663551142220217082151702198135937105284441884671722691415649413406660357519021272082945362258371855801756915131866225862842470258217239837294421811244619456284362955007990061490931428477778324156177057285402955682814937172511961520357127434584265355324919156225689985018617869626943412397842336843705674736890811523145347628430312393252208513044887398148642191772332576955755110635757955760403322115629009909491427910196274484877379329164607777555450836564374426807369911331790265218929926139348171902658681695353452066687235798184493287102707321190002323775542847571586427496290403241618943090628416235754498340909592515751121160059717032698333312907225497268017440436365707604742125775301633624854359295826208160599774549555437547743587344381077113355274898226395733145548637628188326136551165325399413483356501640708803261322482924882774730465409984514553755118459756520437956247820994646065734545640700137618825800506853549179053576671378215593955486653635713438755184466983245223268991011378987246110769766466351814057855882572002218541819760013277879612486031807228961007730439611459939340235317217477140025980039318047068984072903287631717466012874232913863305413207295422048891880475810885855132107478097149173781654880298147002637463083107082096472563606479195213231900099900738753754598704152288566964940727332109107957817212760771581964040814544132661330011560786847529316483266110358838795741350794548425141807050843800378967603868039183003106761731859894628224058988979497125140067619576851867738530700815346949685294945656195980880358592541181168846081683406020309421186762323322032455097844663238688415034998269331215762609540834044037283350292907805711433606842092654358741527367960162143557585639926061522725226197373108212668353245935465877348637559242757183242463623337306009628635055930237283053109629390282809271815456217000676901752255310258056223495525446889488444597759207390883311705160859396108747101191178508571031510527218715523142700159678581902571347302543287187231487322610945093465811817432802911528424857336780582318576239248556749935557858957862243157453339366687108573805683022027802812864885915228271606161344518050594953077517649597984779851420960014065867520849745521605734480849072935726265297707754548690526465068853597600237206712303201006373764276661241155125359823394214243050205583376556367397614509696879254394952969520105347000512989712113640852890112435352310199895785544940296455387863552263150753067004948648464757982188454840424549995550930079154812838119266157022913918420890099206060989703861482208026419522587658478300800722747188778447917852442518712378196822050965416608332540669986213497424006310445509786166047760814053967363879251980729288781679496058279669413677186657485188730861433236653293287492946183209551575945112183393741955919554435270257389245445541564206260129024847295407239636775403311233527620415619535496034697804832133374814804993038604280751643733221290301222113100195159728781498806794769706313551540510980695132150601392417564745900675120184428904989178272702101702069958049155082526915993503872876527603644238308791133918084090117873284022747444347681463716447309186520190894896474112420815694517931880810195794886617122494525670296513499196480295449144973465232239655929415356774292764550542822587465052519504399121857059406897406186908367800695907267797649346859118035050302060524396345064056040931140019615095671816742172538842751137320585004231704522195210593599950810926717448418146958068231014640616891075483627447446056487036856441950253509799527619623890329178431141813052688578317308912526767038085982277143755848528255831699304409243461752643138911007400969362983307568616628052658816120021022293307583974392181947274098554579768372903459679327097121578816723105621033967159158357285792901224352529658710739323943785766945382979025412141425645340117554189458762813427762506364929813649159891471123747122872008998968365555374901208597394191560948811988550007082774378934461292379561480644208638099898011742606991745555168659541240324877750516687034984924605442522912823760919530047191388547990695732002531343039900216668814073148483383534959287478060469123848405018884925190125573301525064178724492035188361819023221255441064748549028433491811714835377187384559665610226798202640193053842888379504818718594799418215673612136952626882383947912380462725039226473291769778164237003644172506595798268467522574866602507399164148564966809774905268242559030262570634757239330258985050584329414247159773053255254532982677409345456668604765979600705150054759351038109527064967619876139569579845604345067181897892208498015360262732195468516747572330086066306161756931935731565429193932797346821637638506658708713020799721075680547938529427528593990865594849862955682969048116465066935147209662599538308734428151231844999746691578082913163003172204224115905294064711584869855253868711636708106239857699567745760747810805467975254723859198553718143255078372576260431815986894505515308401771309024673732348240516464489147338625432237422391647001938673689214192058160725312345470670826732112542666797352421574234438418665435181808430321705011046300672535336950343353323862172131487823563194228001587178179866829473116185747886272514761521817419055516077519799133165095698931441159181140821303790017433679113104517456692623993704541809985687279284576305473044315576462325474354702492622244520570112995398937732104201851133448153686438368071615677152431063536369243239457098667362050811918523859350508616366405539273121327070210630872170582786828369977121063112885868054863064731394208592281149771068238590912159873584804556751975058824670050853467545561535247940559185058862700463308180456541226744963912494637844755596944890419962291487901445416056580134184819086939311805635044012744701596199586449330743695798577511708987216792137644584290041533315837524324556619980157156404420437625709136625139561372585770519414640263082767719726217101949191876271726933641016456682338497595887194203593434359145520400640094163241566284772484169516928047206928875731694662238007750736634883671838648041140572328369970752020938135661951152231731408496351946869058711686583725325483727843109419750703287784995898616728585251445893070846115837077777818793935062430842550371102331750273013654767431268668191930221380557006656935174765847999584488965067602683045692215001825385348255663259586304471610697778128563399291709118373761682526275104233330592845158167440422068834644612707180918491926174707386700994158406894808029569785049828502667627718934629662861906361067646850479421977086372210471178540233912562732562061151830626068803760900559491287648088831223548213884339882284145574065159898658130753977727156640953547707785791676385353347012441516457421047589782743476826114833603857145395572195678698411840559745220130890341593515207179507098580640703695931821402693235444876768793860471506470381492396032438697030404227208030175807666865330745048258064305749212640962394686879298775841881554925119703391729893018398065767182899412091502321573294451396042135623684644555617401919714887149531362837591442720053317634188384602590143278077219426188117992414265238134021645315012133820959927088982020770827228487569135228065623423900386236405979100443550670396045874551164931812943747404531452235931220048705187075029630486313617025189695191376138215941695903719244118169557308331640133701542041519766702432090972230221336677412713332434669373587567480387493757901931451625552819986260411378678598078060677425036370114346814298544887617568113027258545325567746566941004632302605448463569911673280240125933832844978028232611420540588899194031635432966813845427155436215879464211638528462517007691888852358144238536431519239686026581217539780662920164624161656142911325379698986372898337998068204122626236254586142648842963437460987687018913931793434465669661480761933206900971948789494060351777813120206860861580589722461681728167737620453230040559389453097448955593765103751491377599360328053526939175166069780648383173396434124260248853800899986925811743972409720291217189151723728256971504819259997584678522957214744682108842576527039386523681064150912206567372336270267472374336049764455030366253218788298048889503566076089651176045964222366129649859146108965845688200985922994129530792237731105040695227986207095861520550023347391938969996293661647792930615012769764894438061278940298155735570814145127570520183045061079968907767425009370610196465467779516526353375154201954976288029807171227964584841242617683902853243873600791645469013890884425690017550119361526521763887841834714883449074972450746407292754620616333479081010503111026871280795194693908746173535683708122562144329490576791455264182806553318900313445116957023038776514567699987247134831306993459070831520470466467066773473435114742634668669536770312303639284658254996262649595437504398164747042346719023698127694085475060330176690325956253617675519375817733742634826066710988665188213230002332165508869314368541980742849930094352645674808566868848258971251147971561162096594309171092413339637424447708475590411454603771556727524574933348495854245577782873704229523761015762481471555368101265010396440446697569522537094441785774602904836114763624572506867847508386142817915682293926734854433162824471914405995102557460961307715422094775617405539520328882460027720244932214831011747971813806223611862541467231859966681523556373988014511704480097977708648446116316584425728264456519063107436745530151417515190500046665959457182287408277261023163242464627358792494558062435596443528674043196547712793226995605283802323362246804560273017946665040993717080487559685921907775834271431607192761631086079112619433882885898873378709807911302928223546627629720309793393981509831013882397350598673925448091594269769205323233744119008188165612802280606402891009468242007266940383195813454598463111983243221200142820747786611005785659669991283816415857920852711543311521051349845196033760705330573888523674865142701699840862088562584960526833027719075563512067055370240196296257565128752137212538043728811364377641294242230761668168803050652951405702736053768708286062162317193745015421544909705699388895806900324617942688644702606171613289396706421690623625255018401405869662326947205078454624143273892312763362146563542011368406782744770790184130851050452731787422969178208458810875578429244202629876461977555391150178508877575706830455633012352480696499685312512877802300615452147895222427574322816792296914269742772993514560521438143952457823130055488225123330023122962869296810426569671790556445874905397002773684984691648076756889885745477284057310227781934186801654348187010894667976924616268666973052834695909699727048663534568979129938806001729007111839679756821755681304173643811168328161291986863361996120058692727417678217761292809036548504777549648095232225952882352040858344258613622981402747393867140028525764499376959465155799815205711196129300226526162566430519402425530794890581536414818587195402651045110765028941745337214818582997632423584252466451658975134020626454374738393827627017360718875671221237363301361946776318818362630075870381678566405587178450817211938840969121542108879290650593833674463651240384466642119224481583170501513574820345163946232629135902410415947340844158177404427998315769622551992183226996307954353841747846954574460618831808489066147070043008678143686257466770923947729341170424961608063801785167515250924901903968085868776433820600273021125582383683786212426522222720530788294881765803748159047863771193715829439167537409700246671759406090810385911450537349312549935436408864093640361038396459546733742090164921998163904995880467681594711517931533553951559999593954778483227193854733387418869856572695030029276387440558869259561348401504347942670208224177481716429619383725664357003420844935919018937356306065090012948455638760758334331983420764438441412756868453748571142324705873780729969894522173441086869687998090812963149429792220256111499280087017275152942198316812559298124742875863324102495021408266949943689936934784916869799655311609607315007795805905944790429383049783829659523874685363024237039477194627561362132352597546463097314976593220548623904611177487643224469390403762244309273161783643298241214609754783742541974159328468374850163619360965309574106995628349116645680282445939932268307598629765044987529752644787189551165561369999905582456084604179488522485193833732626766610843695172377925526363516596320241119035900294242057920439543315074944140308621792767805216780502795691276415642147063239682956486968270359568961085154658749317899346181096755511546932425136631127600011762665334121143388882251208202727611655247767199492933607886163210338300335740163375403457565157861598850555746657191862410004445277619153871118257801178705815103947660238001853620778795541779413848302975971528363045234656097739777638251072967526282345454894503167071798018383190847773569882062052669938221834632559628643209209729152490772501137328999228407949111640895663593957029680761792697919192407802332437390464237793007046985748168513753151314075168932048127284166329022893541196248615243158634104375570835925725340783716016189163649441789667219673220993872129152955713627762702391245644096871809434610804399181641206506843531675880618095651886699391427611420209638970776498141718840966436253871066256862017694965550291308411539428246592517222793442436615572671983822135629552434233726976401278177039944195396436486536793667773642100559313834750756149052040245682911879455104196286964979499773630513702440493144709387616998109589153281402962686305468791186521475615484375191244222598317937182712494859732486456034748407735314284974821951812403578269604021497891202375004352231988544171648559842243227740110758817621340252709895547790505677526431745830899434888565083948198994549419285140044766816163638609649929343083411683726265555046191048466363357466347408730282520982216626300823699924387121829578034994118581189178240614640161770766197885629211232071668252982426656709734808825465220961528571819574928009654724334353531582768306830779911514849079515829101677515501408925990988914885361895920660266638862739486030153649037143441218827295114738817683392606437584393618136507481068141222031091858894817681677663442046306938652289575256322579701688800110211077682562816096349621383466929651911144307250693211931305519850297634645037765491589974229468126135979249927783850724546854323348567705978279117379032493166550446161520674776062985325272549311314875394087295630493129373346116557946493341297181609377351023765281102833155015161860627904200949524668717792051621280027813903001801031860912208988883015662337447860636235834213560493349639344459905353276114464330117135116397790060946796967165489708474231119360328151263760161037002345734769434406323642109533787248905196831915864207630910102501677587498894999821400933587251272367785731301687934711941818890166253694582979846275588285762844732640922791459056614920833142271049615587073580118861119247563045677843295698622018306440013616121876489207065659548955563976844901011730546288380217226075097004687378907771348066545823917516111641599489217864641352330244210418242682006690062916118784532058057221140849701915819643097770191424899629982217042339981122194191053981261623692374060986538133465863855975354265648017548960217256994361467734167017519742194204476727094706545502275874751419662443371361477965499519917913427735207135198104472899635616489685261258205811362071040537514893675855968902070951230816373482180394467946009506510404579003235271005547485423755739689274088135254692403378481758457873411211980960862430012958279386046638405450086997299043058792617890165530674877332246752002680498570448828921102460615232718522486277068487377618053797116755908366007509981790514410743718835797106509401703971312628694636286251788443792878942998527285961101814573895294497406044284118824264755337793974968732898178260428155507996141379131704579255571522857258136436550270046910977800021999588966509101910897309638123981221169411082436678105733104729802180317781442349036418893490983768584016564618456033931052186460336591361008400211214346284353851568223243281707670437431877844547858461192943683613664190557067055532188410420900407656194043798058683604856325311142235776775013841515825261102069564707795509366058287914940181163218692105715583885123763407174212639475134045298425618495629155663232723993093371425202005335871605705684299475102558890977251741509611746731600049860256543673199096254371088303176100465765303103487007370339159583819076756908872690212402310139700911665451508153317459066807048961605360073754049169391234815691392899528672388904618209371468078492263691018812575064341362139589146913527823119924329628239822529266638140219345266121389036577295113859836324908500441964374510769229228766315782151462718016169838185817631389509780238690823233887188615806276461805427738014715244639975876097439562114061956467103712223441852429135284635132600300568532585677083246485635493342293003047513247176045054778183947603332681237332286940550479368097916261933714071124994641490475976764214645437703651633891380469484170685406235856942784596328462956155814974603090167066437041960873124296418134641305875901647330054185184730120873983969607818136934857953697754595982608090935658604933145952163409670149617741920010825019436521591440903571803494422020369230060083894648270637241728258421502735426732075607665406888423386798254980497451470374675240753915496936378490213933484934063802446396203026154976527768026997746583493952177806247275985151774035262110438767284745323073517054757086627496104295637345684827044123392143756116076900084176943430208315795086151048993117004906396834412771577079010624512793688136416164411596444102024429546222374408254892879852278571499249269885791684416193207416425957589184729361724577961289681467048189699275347962814748510865822776610243997559392989860452518200540948512763342736141702846927173168392427567282822405754568088744248504504215026737944145527362930301129361273722392309398046216146158427361625089480753178468832794641120482424983565781063440306199573450044819157255498372135541372297927952859231401737605556351884833971618858560274652986920678951614294733034201155298778087930874466246896247797951519318811017354333497441425244392297498191302080942829571726468387351936107459693940080107772000836357514986315520348583107906767353877254682259324906211585552424333973787682109549999919345850750295317132946879897445122345480014343767104790816308580039896786812866439585587868375014260718292803158586366199036407903086692899405811654107655145817290658685305697995177926830501251416325666309738893343594980426662966291678329858016108979988697660795981104084650282530508174652162414806252371103453897042730545791859681530269966731050211190049701242413924734585371995026210692951497270887700124161372810971897229971683128598290323831456048356501442657584758227134585416738384493763533696307595333088935179172867947973309301819423291912060300709602325119709563246012646102227200329770847493649953927539145038337942698231340003268975533171985901783069688685725838372098478331267579988928617859383108881223702180559754841179074410327633772039983691221057105676995178088558492612893778943436785083109143592164032486365949699947204085463314347140942291409410602216208217335116440392899136939340953178735271943235214171961256478037064858468203714973214137951370566389416058137793896583579738166916183992694131186436545275720022252279700659512484522501698840371486854312403136661560974831421219288857473444499573729624836151794255314309883533546442104034966505291453319581948154865964427441513031163057939022419070148233972728415782890573769751491335992202242461439520498296477824519089611584185564581701421587164809942540631231096156255425345445058389268460081073244901724213600158357861988760848074651797613908284977376986109315156439379733321598684122982750374089648728160960661547969821113156006253621368238709828413542855954160242880474920817687867462209654047733357305717709516161222599721800571118297059125961370026126748556164628708275871367844582713762331095683368851099493809608356736865937738196359585949573987522117616759457703107963224136286429129911947794372176502889193751677543426407398002774258970750731263046142985427698709887046822091085803548955809096634272283524034943756997061871402401529133447692699749215634932717845397731628542596390462997238970942592941842774209136889223438427384779085135208597202285142984445693682238181133069008319164521213009843196702402920659958785808167956167827618743780003316498911033726464447343967449614770966630629043323487323091746050763398948696250646233480542688895065022009576510849780438285331549756412535412651214253943607468543256347907980260002401104539829871418236108488693575020085742752532843862953539245633540726997698346252669840314887715167034389805527173513904132645647361309794592302953487055050563155696408992652297625687857613687420693331910136939737151006941678397095931893601732001942202903621023090121619031115558565018491162253880666636840895204296529086705333082605790885372714618888670020226977035899904319019193429415065950277909418560504792069826412895808315783781737335652157448541352470983234550222289267629871099864525803893775269108157764525155241388337166629314592132090031165993037121802977523661380631613037603580609084137726818867774973751409053172038622266662319532743553368928024327742158756564327647866508537774379129586341408742945903829195206356716557008512796090102936905301573160857756588184114672059192069850188413314032059776574445841409436606182075232923287739168802310557964810681044134693133527413997299491806828096949705445535469917011181750930862890663211001814959198960254403715769241223372960305557221032443707692994777656529593361445708421685691454008993874403417604588406804512458518432375787496990592469109668999276884789142861472551678637717205932007331298535701144634686051887825475311991316321460075858170874837850631325819394563153529544809849877561373361975797313950232689929964070128728401640992731521523816491488884586469640355385732725702190662097677085671751212537786818245335573512040071192689846175514563688603834747743403704462528532909595255010442591369484194923335984054540777383791712010976961236728854106291059815580150928505446500428810174350552804776547582868977164858693883944355416473017493911463520362902168533745900357418362717666925191471057254572339240627697924985283111863569911666208376727134032540244499649907224294925906903498266776429148814727165979777374922924610557708668344879366416174218840999977826279920020285762471359883105688810163869114642458266713142557051146344454696329099225949022478487286434404052276550707732008923672691674148186417556685857004555063286013161166371487689892324371585347777908800981048008015993689086051890852073694590372095516436818760812009261080954745029885380161968684394879318325045005771859705538078952848031299340586567761792967104061536981248381825932685220521030476345327052773501536890641383276052650918274657118001908657224853080837338854700989086672366287294536328647790920436353776182212553733134109843664160181859045280926975007802711498013795483341000049507244326912748402235187793418753992561805611495362501090631378854636417020327690960035021199675110242702430028098461974921613430642438893340731942024281481142576012286307363361946098736729306809176715264520857346251047729850216101677668400114095134460850018478032043010217034704247188478497447339707207189146919475156207841803903966065192789345637674495887002586109928977992149208466670095931235544056400660576663624758599432231833157640993602553975169262596695140293631929669989954127528312189166793307836928738550399631464846560457069719695764678363599754039484708411162286149508848052896232016146523191999816143417667691319176482263716321049385019679690046831143489991503325274192802661992991707915692370549154286258493210471907928429111418146132547364043527152392219868970299770513067650928031250155937955323872318381130802344814331462886853270065200988403651159283740132230089417166889148491543619569072970508346681792830075573116742002482724646390787557896572232756483144379341674388025256630281066242107622474105931830380815046817531258836799392618119809691589370269107044909313738287630856546586230451068923429430581444248018663882031517585932964552054397165024474655095194917955098407641588840152323077454607166354987959798114460612750463331428102992383855128243960400679546196777551129760927976194472414005729792808164839464748611256874399570028515612428351962802752251250461476012722944780058740355670826459526628143310715855979982480108392965669842555127254357224830212860425261702585100954301018721315143589334879698236818956723703278407473950110408861953629052264976156613416842063949840458973294860105341060551512813138986147699746780661508930809588145168730625496053974994475970490438932203472799370654674771076004946935323001890462655910763071148503722286954372425127988426551073778893028362530523516417743644596424119243157459130975362257134786293655880879046248018845174196979187252169757980085132026729540670677497030141157195707661918698969710975645828667328594357350536961429018239544445716001893086169776223388204792527733857153205548463904735891047169466319400881412811710227710880671536099626388320597363616345347275970900835469397313744138452977091873950134858760346648647353163397574832895138358741208912029582460519540228584634575721657113387225704931690626230864242424127623351074000528242874801973849013971308676683138267494117854357553260176746257885635579210642494599899485145880572209143479694721810052064073862785267937804856901269791458393183629999512464106301911764350202294443781857860305470911060734186760794214945444232101655160054690439263517374885911637021003603416436060465135836772856793923275113362050387345608232441359213359006789660100356172672145694065468143999744278808806426534946003560190405204584972936498783777795204569434263345368169392820896025473315548746161420823829653564870198046358203909758026686238874055486705810376448049155258363085208987054734105445706756021931413123038742002192357253997207598510875393263610131146999099126290579704801190295423734656066408452449654505606642250360738430842741798208601617609896071749546801235786223244783426083538052557835671633129443326483092485498891913373088502474455259373479839393862408899206315476437845826470011018232897200998720982095152481864801730035334393780091498785900355196631612641136936296736497310433355257017789247120927257402502106656949901970353599033329628816333190272747470796027531602505784521432838219619387689197097202078460245287157089008935490481000669245884693431566278700270567098749879317818178739349382867198852269118170122069654281510599011962175445098378957166773578104262570393256921797320941301324565238934512951890567192366637406553639150110059211622271340984292091079364993116656244617221067202878937125813672975109233935230258140208123812638374516298048016456982216542879844901861018283369996655819573029559844192503702467970311597277908075630154585030477987543146550497613703388623189826239750027279209600798958942057882650601098426136287050527478478256888131673949352020267628176404638838402258217188771010897019630315779870960044263486003253389448914288240438826835710231719594036347495868126368378092868912022128591376062350057642094294040899097732247680190305571028806515739293165309739507895623510627753286942135088422959721649047403555609342991154097654357205884122070878348850976815433888885346856746492127376565701395064075655383341049653214696516961117253567700672875413052098136569611278508796514969438437815221450181679148436448774661274439510904782461634236785317253092906271552456393695603110862524455694230194663207212153553295022098038750889082941206193615284663632779554026310915117103873536614991543533184273199370551667402561577085160364764119325406474336166520874426049847522501219603301894147502238674665282622779632243808958276497517214938759203371845480330150043418984438665963308179938139399363275173970832433467824140439799898851804643451658644245035767111526738972802202179012439502201438847103398680254167057911195543195876212984833505704198135839633065891836896318612332203811982002265503354849852930126871828109437849121331951621708039822678359282620603514019219152696859861710571744751177784477611359328221426448636305749074008217545361083628331451990406733892565262519727109080819329349049023960409036319927342034969386526867564733635063596446065547934973416192000313990989197177389554648560828189624193919667865198557193077680823022984670172252725932823195346108156009619814104868641036986908765686064006464533004206983683777678798369920186374377348220633839423532770382748782459721171900720952614784083401983697748521861331197674955264278577748546321896012026099082921134057963991287101438831076694505456138609794574072870506521177529397317124203066550557007075022841350112583382944095994156458979566555357398893350484828906794162482797677782378923276812465001258398719772227750249684197317238518365281053646440249480777542944217609342597347845806241814302152122932950081054912912169722719900443037894587865421763517746608526263768627364017431314672710533506369582716173802267491208841434527573215687995197947048226256349505077597137377597101103644652728473734922131113953524539787896029035383908968229462661696577106751127210058337458535758608744650914799135030052007023499886530589438527733043958960750615227308496284653220967851214876937272403435593377453746913670160788198990354010010972010611584781484165894905536855055055840992044723909114672893889746446428815582457510055145720545439962097410238193918424459283821783095401090399523203247919428152198881790432191818417096891400349213856825846489659697421123243424420348282901491182899443495628528699469276464828512163680309767014483831391836404245778066537115040562156524691758399841527817996726628915674224552053935628404039210939664435548347318806729164706532993826660907940976546296437604210274553675571988663046861728748486260028759471220008241251339902080699209959084174252993058552718300802603381753060031424089114989115321929562434313499123649154836011890201092245147205311452423941614133018848575350720175977915557312379073133779308064153114022599504227898993417756440274987350513363522038088812220246991879655999439844794711360053390646681089140122083392769605388307327514941844606518562471219040803403511060040062814863359605461159523832570297497210207910036638389487286646009719321013246204496128122660966998183299234388680005226896078424923648902647802444796581605470645159898804643949860886792901779769808123188801170752608617673102317790429554477990140793703810808244065682969531957838650080529646855193389063306936402598241713103313474329411651318699660057661879056386600587326279555306873320034135413200609128255263484485419876864692969501909918260910268312020760470596560791174948431480582627470081736146789201668435366049455670047485875120778577605800717397960086782879340999095575632858836297498656367418413757163543211708449116734572386088165260159679869427630125939622499444852312587494565176876667997627112256145344398391998861103959795518541383938301112773276406032577164488599394685020522056713101748819904807331731579589349846996010450048348850691940633739375556643036731628369255364226439983439693080615708342816962265364799474743763237292223013209638276771938397883917078475276742026546648437812868291734255740808996282258723920430562536057043323109161923704701453333284037683999215420837932034008033430537202170273131687551184817950714040432239771859249212370530605495985083994162011646022352232513223769882780785083731427717210291905753935720519733824020721154585677518301109387693161900694532912521164430506416129129999899414982852594260639285628702448793178600815690132854061432106908120145596695719021173041364601770018571693412989241194283222590420792026787621014855077883995247663656045254742253782274569345887990418300683597601915414387793562725115834783328217707480017482343896797360068313507225385595018651934487918943653906531341987591993677572405926289473976029192467942923585932934875452505437256048942722805485743003203171767532194894318256251427508837704435866263334120936416719760018773498871553024055167202530321063810968917119300634977395083905990368560734357101020411346093856216762942682920897329190423066511022503785131155408886598330887293602370351849773303148549994563873933388495226618830463523221819001631975017760213911077711890922723499014684165694527570285350197240409864373900092903466825991717423277392736224045936267451007776340120398093896015143779521883821402601037015526409673437749807209008451567276145547782574715518349397302238758516006865187984206765032360043953123253428758784888634857846780964199690664188999070669718394678472743722497437431923368091265278438259462703416313508758772769287977258081396532722650460962857803909145466082648409440968963187763122764078720051071190033240359694454720935206701830328362344260746760336917360945218858215936942956750990353480983859362754887264527949656427861573553290502848799647075161939862344281165701033586679359257131350912609313583830765188526378447851741893134496021177794581908881421711092361537379968338950223555818540693654336750297874931704849261317504466300217886691185333171528383392627133069938116934069447788361173726487568760761982141008195045360796329774236505363016431419783869479350950073616861773237768661904795563511353447182861419828455968706873284686342128004215735058966670352053881967086987070386551972830900602025400720299433502433356207964498156969883379662800116133752129343269062556526128757325069592899409678507833956255166011609383807013082685042264787811115850867483626064603455920344912374412093122374056018597271287838316511953260532685155587868532214563297862763145355467743239061024279727125105318308109088544798564108628086806418861891395904807867918681916757716563276947012200218574685067637184549691969254078090147365728827076895362533024340443682174352756294017722377284287491623148854573123488011775670007943708945327358039165174641189846939472439446105115475470483851967977687845890281260209667531035791755461187551023914285010937680054535687171474296712566129574998706025826034934945504976145423772349843141599322187372611385557167475745119689228900437019422366081959056785549089549251355776722090545235246184379422877244282673306850660311820571462059335584742419661496582608252250380735081475050294259027478994131676902753633317537284105173522535760752063383797107796368489253154548589750702824626707274535539133492978131769409569702918601299121333911704215374382537665120907239862044759559921594660193272098061041597816921888060758596923532186939537935650424036822835290378021267682147382381775352399989696593457057311935514962673379885824107397128283750288453861606082448555844648320779748021607537211064258567241656150476206949798492830853631720439670490319811118362722488268682677231527509056918720368979018828314251795221582194506270200298118229345175847178968882469434315724218567638898665893113945200227645144347617034348788655939526060714429558575106714331279360025647239953749282331626298012818004742307992088933871165350063378041185130387815610260661767787049505930040212563568721994778059861706010976423634015522311456560205027295582129092824554936448428358703006521452466228079142249174633095735019124335127331536982370720934301791291435949286864228526815572259126880678901051172971468874695707317892082074478540421816447108554916698449437411949592679216201803194999762346681439349971210002517913066358326156034775741334915246357137623682205964081897595322951593844609266796683470727041853511804364808587230074660791730057188782994310968172726374568745154274758990743532068243852643400654545577138497498943650740899599761447550460148912912801949951492623534670314412029638745101037925858966880828310470523411567569543982629449754792517362758570438812838058995336051054389664966371519605042274082837613016441665132232606757451408388329439280578720345180279236281219837104560062257178932443620493956179464632806646189291971265851810076246362768470041671623518599477073866246267957740035813962546550118846824043302729249406837347342964367995166112402378929899327443571335909265235015284667109517325338909324260272064696667297959438412406636000415327038774345103375482429430295392897943201227975707258836038284209699556232624684022172128049873388446695286187319997697622007498492540060264199399073142129506358209736500917778774878617036694045587908621306675348914215783118425736299591357118528330853904976283517880400855933155880431720601163294275549204796982662336920378581925564144330890600893673227037757955896568410521440156886271371469172006430667733641374436141630912411391220929060243941568440751662705030800982015418257831639104731100491607154732003209743971521017160503752269461585236951603829247501272770415982361067937551635697251826299412390496424185955181883996451672392654862577873271100060144969444833350189543766171244003276330027609934631770675607721172264621732481470498073380953790883922288799106761069401746157959924985456430535093382958598130276965987617267973252305282664612457494833791054085953428756593032815436565589869851935332165205205328983809055512783481984989697015444050844649556559050649509904680865919652643373034202885832698642323654756930064200515771975699088290767521167159053931342772815028052160926681078814812881665501253260302909889725078803068527335700863469409911332797641411007776314765644510036556695050900536257143017470239923945250998281662695528963709727975790379614191070592843984310851283038436788687008909868761215651157263232274940746378755888003695253646144968954899674479137681099483986881904830019910805362623200814654897931712504943622052600148619022465345172378023868422028538740873955696907691070871015009532903025834632841155758625113002143905175938411078227822195818044341564829940595273967808526451695960470681034863204132582289773786120642258240955879547972606490017535743077517412541344724368770257397438436743627206435685276361562395503801269170082672557098384304549080128630577616180318840034913253582180385935059603623903778125774961938273796132239109094197866330385641387027524865374206818573865286747975821546598084990132336021527234429094599093610324329994825913487356993854897479827172791435448719481767070891961023378344554416459189196833454682197426772658128963087858495529771760360005373519608520589671679910830088353964849281303021012428838183921402420421313096261646042337294528383168676495353041509863017523733171548111145767412971278606838521637065394518346110955755060310297120108474368532348426413084741075861592276344062211298734173111339994346495152018610634943263682016344802592946244389443636316929211021860276427805891831261212356090409588881582731752465388620017797640140187491512938544448275326041420291378267355921761855826065706695831768508824454150807591980643340444409908105045424829935301905448776320059748909054425180564266425651233925838655006613934644130786187977790265383450301585058997494314032578670733247407363788774502045265982323371408618771809420629436664037362839319131236015632752053537498827926215137160760669706920224086745247483615045086984517969022848083694584962039092376699827962651737966133323987791857732720488687770040492804538461863035543980929560821568169519302132369744739006243734874802357931116961061465087721891111127483956205463353351734528647196245008682109983118099096545333201627800238082365414601498020718407188135714006923434613069058995705960587611216624798899543316400743816631184991563298201183690583287714852880094766407127597651063614763610091842694429113251933175422549087462062663216241648041410557195834664384954279731392164993508640405709455480281981354191981895643628272312343776473934843260115556701969419020142609983704448734161797499135140620668860455925426130709415756783483305382678283896275144996408340711823999493051096180240497794405121220496844862968882124519959971558041702834197838927237189160692612969675693196724461759260586295919168509208863253862433232139586317701796340856604299000841714624296325662050252112049899387243921906403978054416614735035185146673589753207708740062632142937339462018421179731158205861182639663743125659883794758037165635867696073086054145521384177369475690372274248073085279195643592094155099026851217245452521609218952848353261882351372801777428565355795439972299401116994073256503364155557150689091781275428831434706030253102899983288244468963443165154715737246489466405706443259458797691888979170490910474180902561643476010368627268865078069195726186134453639605892040830266915677533805219228682053815200340157587036029188321542925564462707184118075370137363032949348649808285133394057999388840348039955224003989049935143424260305099296298609869021805476368559335365008183685780358967644264747944218602318672146267285450411524003326717659894295439071314426631433378344413234887776332542989643212598762343853694590937209276444951895158596998148621352332657013283624881670226491930907270384539084789887349201618192345386196042877808763394448745865061759103863124897706348776724244604908875585808156264515228461074385720946565475962041497286914611959275023885572498281943427703568560556519762139461918529705278674015206842050238239967227374385664356172191381145442360072517924950457532684666770656947983024162361132954701290622195354292495128935786102114951010221844274718523553057089754553869633820914188665507642319393589565063649374298716562435053091211821670605033182831384539603837234756780157921579621478293825069456751291749506934178042312781569949323447079239426532369584295516438208741386812963394874818184558659851772166422941600696349708415081366164208511217138149062684826028194035113467712935175171083150785179863189195817054522513584734929690019799097900936886562564050774589265230964489994882701744952971298015759356387914012229161647618966464893388791132915595785714248845405864939759158903055956484042140625297710410995350769229199540887546653072196631397108608115453167893729693613032600021049430159264192318378281735123834704841922366480890627194501486485083921362894291666195023888385900698552973731983808050462871575354961421466452290465319129176698924324688111674429797473261584431115958134530354802483381536423264994939789797292012807560424054720622861700377679086097008676180637568548635200793879519222013852401277681052804989299732093210112020953976175901602507164533365478430319151098759099864315461519274519886525925125286500328840785314375471728362778471774230110720738876963406994685785034200476773052707576978008297917764419472562782822993203226121517918474125756002952347749328424800268581992647311684907846670658203273060321676503568667162636437392905031017826031781560585045225996895149079903569129515626656576898112715410489063571394100957799420670601647158029757804025514143286900150601042928375482321531300932124154179491113376278312757214116475913424182551602236520707593467557140753574920473413521292015753756301117539733535683807931237963081027005703278910912281763007800099415242573002297636990635498576601747036196715116830920223299760749540724338290485435686625470918997937438212893251280988147100434697287537056247339219962645712198020763256832126700619248923036405972706318324830245630181639829898171182979467068582849165830177030547989647001023837550072698004007545295998532857304524210644833218496273418295881429163745212394804603539161292472074981629723044247582737973909107726623970025257685018940522258921108095704271920496310935475258060379102735008807594396196077823762056160508083654553920624129307894996749479100368393711385159307819490972948264838258097052689732971281543078078861233440507939548984716381908167717651356333114682888117104433175231088764227800896959221616226505307291208506184588923899055942301339938648988276179628187476981975956515531544109630800910545316735471427543375787490726388445485607505909786769372945525604883332340334990381153313126625842044396291391043012362507493982034942706624337226243548515638094080326545155283743728964107066715545502681537395080438771106220141937087465633336384156418373842767326067263454461265714734299270112319145653884685331191604616473649917748873326526927231422697502888817883980148241861262068273938213163569406545750257641501222644254544468402598562555084462165272586028998657794232567165268958820483142572627321152226628853828379166569581957145529542008635511700864235744920699135531682636118434004259349194543428605379306899450836056678232816895018414569628611710014383910150347506923761576694518835534265293090647973028157127955016841121524577294977047740562570728117544984051972920050897099272779842578113359965369325671024351044547359296419492143167186116773007344026450729259066915168980459938375628194475056843537840147492210995797559958106516458118282902747525899381112672596922779279936252529065597998380605228184731558172067003140688696763958122565275980475699166316755866774086415493870260393587647691734895828445579035822295596022275602789750271328071640594810955584163410975353001665623481005237501045769061653131171370994851874229437656594624716266140346427907520120664511176733877366619157250548947740698976692211985940218779925600331336570251872448617579925509789126802673650738644176568245354140977056479979272673068649762377035389204460145038804824965253959020127066474754786171271092103928060765444475886545283172808472699625305600946068147180727194494845722563855625128503951178104743319979989327993813664435652826007252811690982750486769915470904791477817173069101244512049858294981434215583410419652758307890506717145554975176934633371888504665286843685136406386466398888294516599120278686533545588848598824862657030726670883717853399734750950852761400036606197693792181502208551873896836135843908330641995190469531279720311537607913485937950852881308636391550927834983441417464587217109321585174336283646182277457851701672893109415088895943675481056525557696485561677825718504634696118972589508854331241788034328310855899171763924044219863243672884091709010552030336073254034315149658709561677825947915959724522294824182894810720663141435573970329929996667511410789892819189170867726037804715759645578607252098794232592470615432202283822771278663687174271609798391279621754208343593218507445198099517358165355669491609076000730182322375587830270694281274725392403452748632025080159336952994390721428565751173993760601651206607771092460425963758294230204867144231430658473527266171308062785542874347444647689546338128762473751655424130140861475879692662856656185552541627703671642533156677576020991092387272911807879983175483359268810650974326124891904662908519221240679203141730538539551961312591229540367599577851654044456595006772375778406613455400613921036878014926148624549580761338847493957745430081020031735743236924858562304922418007172475339119647352543151716779255850673812299159180079986813686155031125924445214933088866482443757234641227317176419563715952655315428829528136244675335832314862652864288204414365791234236485163074073280566053335540524029778810990988510439192207891706951148784268373170939718236067857819634687535874791699349317587286843931736840976753139054104800857183575028702971971665247848150135843188878411678914906060329120067042533833937577979214296889260226205268471187746011928939895222346939059051196564689943377711090042756935450782676057589450470058644994002259839478083204040203244058079800338151216297891981957229237553976310236942773442880709637927704609968486625433859455790936274699833016780848897509624631718847628565575587013101101778086333463005979578014179888087207133520068372244077894814148504583989847051117001300266940384205669859863052349872782496495363052015229425833299415544807927495476928923374542924917135800067417116828883192564546289886842726409509881835489859144431941308118275358710369241179722986685351812474167169715685532621296419123047228072385820927492984337875583226575273614883764564597777504188054508998425128209112711165708582105763682113580648766467045218409490282250658621268371296086585448559460756374170252980090925350722726690064959905758861275967742963055070315678381555592332698442038197956025714573522767084269528791029712400095468365249001837878755561138206460737485068134594811551685897325732384840153250418853498743694741270748078203195870682311303378583480661377700779436777607005804225140345078793087041864679116102384317390708930527108562385075125148559082252941097150508071385811297201042847691075392055121643968986494168529191406867233017586172005334199726366486174169390522257821121529721770579322030852540456370668743450811796453147290819589527028650292105168943803719061848314134842061167047031825056102036290127365296988113286152502230941311385439431079315169582793630904372222522116293036749169323100041608665950904420654619563019734726020521279038580614802068373270047354214284305481506045794414112961195781589758355696345539600168221513546989127466426200098249634351679568809217794098131047666345324056793849136373164547869605216096967976136438405069858823029446998194565960072805815311105231276657415027835150578064415957785046183822800304279874232905178554624444629159973546631934128957465718751203474704228075391565501497377458242867794209144020229297266677087917967563392162271876564781433890733812858766517758934626934753493911038128437142820146132654221056289243513774341893015421306073398116255151856938318558790509997966162822396934349513614965966822722266068774882062957129176404909013575306001794171700180473012835884280754957820404303402180376829746024884056836033513235799510581886256442496311387655170699970664619179660915778831084150162738689587822986200482835083918734540456420762790244846548775364014247961406590851627457199383825207429589337596402035107198286238498142994410155230404997867078202096240407111122485333302131538723442450306780728057721524696434737127573638336304947321097301940554000338470880328350005488916948592130354743421231131922005073716024400614554083537652728262289258753502812535516842968196596366739237712009791631790116223012384669118430815834689356030631722357134908787836750989513095080944751872290469596341373769837775855544918183337223919140166273110126976398526065481826502177619978103880874420143253984312515261800102132046697259497776507507255726379786248194009559419000632629156665188993323851059459537223683297482984206103898224502701119078250016572037108750877155766136584982180948376188060335880482566413710931524048560774081784601336326733458966293217851825910314650368458244402006759022545621692381992023112424885669238521794344600007492788609095633799374652810331420305980542119237903679024278451405341970811746726385875778022694727592743454616600695684207724186453834539730294732637936216824390529522281048059996300885778640159645793377386939673415109912281400861501292914599553626138013021031601592551621246703687386639422284177387291612810450393037569069433576225429329919362650885476738059420937464394507468499208010831615331196427641593886700206150163564447116395803144526257236381243298768416376498897227309291956078355826572289287878162877532811116423835560116215339618223229410657609550681965171690121848130740112735849011277429725197740939429596953825795183397198164490954530461645242293884091523881913039440547965617808329008723954539473173015948497235139239895813656824583201926799516027518248811835150769969497770097707623849589243917847118466992825581347562826648050405107187067474416000519099056802972216854285068482015672929949789328684822497304357540710732264524782406734099467020646967348131285758086383155808158379628426455472309411988467897864508518781307415961704008886449977607665879973554179145222980379155903328297175500380308858731881255589361762635679045909559133865319392938416483239516249652402905319158700698491434557532790010216670669514918900792824801041238514715572750277638034718650637665634994340566541362134642352587136879781930823248637332430779968740938549524040388579844045251106667041220398348843989250807757474380318778799723279640274189050867870802838934027725820922671968062294351051679695505133457031657460787846603317205367132519311960739548482869828638943698373018811732790277142547662138533564715031305293886835687881245685134633454196801252256664007961977275573053545749573753901590842395192083223324948188813081723836356965929270786574493105651027061984837263403533074466677822747993686570205246947450074442536270817384463725521007583634114957580666369778194660367826722846220234229887384953067418189967983923152698852733020900778904730538421502102341487911785987915342106221855110709562736832549207442201229405116435184780369868003148644851042661378025846686358681678173137725122570059403246632696574345815931782537426630439590316970828284487124366796307016965919315264390347951012722817754697460607453060773318241336771464812013363974781063652603072457545237781331205542037580814636212697728403523134138703374189683219659351771791462090437542652454103103115646491753878100739780686182443967305410032150890440181733010328877864755740644180927549923520021415816943907946180789847980943595154031762197497069039509525852183761402829559041136486549392309020792642476284484255491979168296093758505549409349355874534348834446035521825057262944745389189844007689868501660504834196589126571114235662956722859035571160262616400233049321600204666659485689621427998919624609403456132295081738799874861869461611529566204397493263046061279960979011801483279235307207923303457815334055658413421050940767027683359170270373863823150480283464352615787552457442345235437242060130242364922869012796548628633656042269004025490170167393314012070426354763765741699618466611361723171423190698186220084806057607588345697055029451452682612073789791546316813353798386850228031627265549224196716661855833770588966240021035072090696516379489776385154287071082451929424795157326240895031182742641501265387132825588056957236658676997379970400763900880280622178542009750635611171035765651379487299821780954324692988030263602526655320619184539579583122074468405280559068010555801245584389453031018727128825269855773451656119505717082081275243825836963747300273108162911672102494992381088849923613958558304418697425647491947670370749960735630779556034546227187365142333378485864133814123230993319827434114752418710083604153023471730481409777699730766945264380647092517079336787934033300069528235597717669297836374086286216804134747057158088966505703799166261811344529460267482260909728899188218750746272362271657174074049402893135396733253335809850353707453226397945207774281330833678872411926757852622812263887140482969931920990307127052321710817538596916811461581117232146721410500008531149747153596849595508172419711059087995456490755503249212469131254037829002390240838799488900930220967509792248374167307767830813419683132563186306496954464613411285815943589860395005093988859782771491901758221569443075503928080663694271026782671109294018510241286574219419602785539042307476869050172048269200204307044529527098941532656298136248788839025678617598707225685557927446975986205329733212472806003762182875287695957873134815253141718835064621610884085825316007236757937835131294757012612186094669853360054453942307745111989985304602076816713249314775801800781325323174597781472075075923804146964941479028872184748633509993211038894330025866444583476259290372674918109077999358145914624791787960901476614434796024907396852979469679562430924123708508611909509755225583054747887517009139791997576600024891820640807862710704428051059701893449677839288029288700931272301715295690018210817004020127829471663272579201244929944501940916379942888946332714710312371209539680690138457827505638437432760029141880950139684014067332108425157343649396491718243504189987705782029081943381113837708302056874420493531523459509837830956375982251362488413860167558587974830646621404212830243063209618881212084082760772324201490734617727969067164866356172016112392582592296284367003567854576288616602308214694752679131538279934339135735241022050013519456924633586779587138627539607886211987884745990821858335603977023644393987527744155999897627942189284725529344897769696751736684698124551302923713497603195361420848350496440970612326317579843442864883276397966432902431533375054839965560954589670446996435144192186811712302038213333502871002528212249998582630394365003614493146536925601841157649186614844420725804365247561012026999455690379035493868598910115611227285606165504908184752926621430992682225753579719038871135885009852059323695381303166898605410401937148385406760609601062328012162890043713613400061028995980086099902607258926231421053854817228049440252455543950350612242998225121394329553841472203385595008076666483286384076417748516149534570614151493866637958135051720165756664535226180946712576726785649953229350874641400228349050448881106048792219404275652430469484592255781555245141984596938584095924963564483974589707131767982470753422959284462185687196554610349949406894425752400847516299317615409974507867372879108737374104471305987188874191862039015278635546576626077575512418231472249755946077661342706459003366055886867660582587621036722875342550776660785385471294785773401900632678976032974833402055032975528587654046442891451442516343097156586912099952666869962488603640729961390896490866467095495952005122880692725328769175783221814377667345410888532151110545408824874501417043500978340523390135441603919553182589511841796504397656961319096343000514244778251800490112364524731182151825549994269342582580634734583213154609646729749941631926505240376369347722181964357940445411200380917198764606938574893019212189345743507105470274754186799505799151852021786182669109040539062404275486031570978424204149400899591945224626912144140699735532724714556673560763751574392788359933377198628844246792338579789687837901954967103290416130098894699236853427641056849890974797499722906944962813623773876768732823475376793511034543967198044003134969102068013913105815107018059215405726509016059912423837959441732417208058736193959098933637334468377148156567086610029122902333760453281971459037554615640797107321889710184546282326676125586692544429278924194946346352929314053186887038504299299172055644882244687591422892589725789911600416491961926454562645185360427546488410879979242336199486865652436028829111856743136316466431441300912743843021781139916841224729092791838558294908238095694206071071036193112337943860634940829543040435141717630885852104984414762154370653042525497819770569955309748294279137142738827917450622851538118242696579150015068300048631413850687662384095598348313700387713250204614947022123114535822107540922308119118790345375040768032737913347427401672309916744442933601603777663622039643681813488738684222449616560080430390214540441382208823913508250470670812342602944087697620784582854701063990862790681851354016096985798286280447780214734019336249314133820591544288626490971788289196034118541644718440736620923607708185694762693989908305881435526574951943137914328226505247654431419456509855566148303403603777253731373532306375651193178362817646415411351774335865856247931404566904016699789995716692958161722008271595005918680127067454837276787662703473803402646211932717612034344263290881185305672468136637236169499636501594063589846163899361581425531232742643513168137741162349290488298419913213939388628710134150026137827385895193789917107116223087541223259710665500534774913705283754078120615797359277660175795553354130169522320895202577509658503379018749412599758013755966187162192194733668067861158585173204886999481905318417339062867674870063715114800266333333033575038904138959131098708945613514591088355393050934023999679643183992625488399417116809440965001290364468557169031521835045012877579357881717280031405812838561383218695644005057643223012438906131047215266550821428422999934381608839874423824963494969723134771567947202396575282469927813980345677108276034784245611063164431392028134788019842997612098084837615286678171176724162873723231523429178326471195488301103751114283391687193969626140859515965037621183826318248878108369832869773882229082025134596261017416606062659693562823714077268058711452046565798527162191454271396973927049362596265412460588001726581610414525485324883598072352920137566816130694476247259651798506211556802728478614624361244068911321524840219831597500732576961785456993217426550341071475230551600558281569080875302129210186743377199189233516686904461072507242140209446150717691923537880688716484895200929084520650576343940023148648958203056845269856336103822264978635780067880828014703590672792043698081946083220161187530051347119289748780663683999118602450409132892041281017825042357341863019986452761452804480285338510014532168747467810523317626378966633536568357065380395746638422368585048480103363396140896744789799564726326036571844178124074223474521874332705695279758854502045187035255604870698308440303865278115003170723449733294666661232768030393602681128853363228314957568470203051911874849479214568782602608817214564209154070514890731651208404765899547545122291855205639683902904728973633785735889615043009802725542282129909359431665038601363831692393882429498198170397100498473965963545765186445205006503499396262635356540816015788026528386568663441376567699103270519535452071403404996543315352798315413035425033002125174193745281510952424818015750399942928372177855995464583383370500080062348713876683044423671545770451412116643325780778319426687249744751788421066916769210924468203748696442729654608918519060967349319368595122193008668818028860544375849859089642402650198593320704140765635026398174805012703768148657316824806519637166681652680451268404998855686968852939367845556159837688659764244056741255425169842938881393845319525334095298085141645543597776553068978378487342184972760261315168800640649722407973561804189466223391774273777385967587320273192025499908958343288085477641206317211263045455035393332851852345185800012514322453184793559891205974057770491026270195890583355942046343757754881479566264806639042072682059779329378459111484958403661472119768557208812877758712753161033239000167449365157520791450257073193304125810928297853745513157950273521180156462824883197723544751730547343535660965169375607246973050503582584393645264346270018325831268511135565747186968086050464291705766642212004946068515839591583096607348491259042071526953432461980666839173807853000332074876889427136481574887766928717737405861486102891623749011445383570419683471914517928663556639169377024916315962660412435223334362668941093701791280414856539279236455683565044296023579038690874834918555662824698150331464056066646461862253839888951238635512236268519557156602044705758879848585078564318548997648671316314955559732669397618496179847581103867109724377772270473292795024669250573366183444259732617682011551681408750154916075754216763051463795141961710850673892795528247712205010527737646197400000321110812650134264248624717275199328347452177816199986797125769636065906066820945341403341036112325326845106673952538583661892435192953440634195299765806471835633985151684058583392895926704686887326047013705495797455444544656362531324542236342949026207911621824665148363509201679392759768168319868176721997678041743229724001640780193798933328402811094941199965597795525916283597585049470219944010151004296389844410897003538417949873730533463315542201848082217229879885213320227334533644606848636758246631232782747104636183893678100230619300451975373032718247317271323181912487961545465486236285770854540904548426733118644960452059861749385881135348274404766194190591279789093844886387972443135966688307105625737176986096366152898894915167321528316984757200077910467203464400214645378162306555337447447081620626690139093839569008821052207068639164839833929083951647049024860623729053949306289682278943590863181161278049056947576271158978192660060395499510472447457187460705255719652986042036105747592974796765177936555304239305028932223094764034281879281726866532444156377748536045153473149553971287597923731493134660924536261419436577013678353802929802411797539560402055117494882750376401862899342532509303655156794077982807839074697753776613000927968383440153815323484153842976850589611823204469040066198715300136138424045685639566802349160346590943846943275760137883192301066973561489219576436356019683848295569307191183811286807329987026893628377228985043036491149285595348832153251061276722516333005017132170917795853033465354329925189270952514800219711964614950200856199478619391352421753755314571123960636432726693345786829695597346787026855711176329435772706573710928129884757162886666995906762297103474614188182550985587188637577979475030977191549019687492484639951981954792940081672802781034868039876243971277772863532544012673139490079906465566993042524467742311461363011454440837886330210702293234229530549267137541059105234857958789053206497295357760136292587825503140041532009849954280134656731467037161896167378772555019850341586936154637955225842193338499315104072437643780733761056323529024250950725556315105932358814146088665455700684133984355740417023170831997300874994830122665396214862517298746274692027695350847796141034837454498563747008655304063773300321216529754158543399918540383396687001924948483140861606204884810222926841989287551913407980195163037007272109432776932495232029753208869993528548481705104523401639957859631208976994354041177777550491999212163205950956904488513907433907765346210248877084608560381734896354078975617740056834996446242415856003361118503227422046263638331856042411983047925420785238016836754042153195658463455778940585576902270941466203268692782648522864526462412805665279490443833647018333008714518150711012046894101210554321307376934567018656711447665992756361975612936287209154540019018730460286102186407366111381536878317930567434106785505786897650962582409996058758028929744548518216717380935078510499309703870334032180590346899665052415464092676677029149750811378009820109605858228342359980523178078015097437828695194673618480233293947870030759250989936857494438408153204705896382761304354165747899415997205886520218295354774458466028109669473305480635036918868453363337747266388299865745136470059695373834075256259758982429833046367190561451213736348910738655867676518021601081219486503105385617723392653309247260766382725315359014155317836997503214586271081062176498076725506388668127860630265029262493089721858102021629846706442613507366014038136228063252989126259953887824050918675051560697228902535064564636543941325081080771672107796296198716678566681815880743398927049899838307766873295642104984211459318921470439452550020357110648075995434816888139224009733599633266273207561244507057176115184092370135165171983908865180236450804357494817498112433125932342169959672914445397785379964429175290533727314766528052511059959730636420405294024663466033068432186132237702356163389031371219445535301735552524119959394445847091842097958195495492187041359906030670505462980761652559224882935459856400151842896100756176890240219652648635564815116707252025929298734903521086486710459973152329032848164846711095057199095294822552603710943124139165466261822577517232915363473278368786447236301022284061884381896155641898845497556120954420865795070126103718796175048520872964525283875757025837625626972629049027359789555700405561339456767416839327156490390517023490236554199354213341452778931703409768846557776671434836062746443530040679777045310068082940534628297741633281583304832566488987857280529631466237831234891185378777778955543736281637888003026946873779910012874742348942619734754375111841646746774870030467777855166977630297082958407354283620548064462860121907984829437816654281379227341434266334573959466359015030134875135010344176840136423569371287618539239701988967308238216356271632080166301040167386482407211202855506029878640168741327434554243968710429924458506279465581656481402704529047494688156668848110585683001977039937309332184054871615211686260049552266536266379111577278397543218256784004833312016911300813352341659490280959130681217666634183503759184904103671635588201740918187541018606231942268358538112618327661854183464604873206248599940138098685476474792146218101307662555221933784403823654562008570509782031098468926130828754101453469942945548642255168621205154067212930214645479911501609847455053111330516685625187070104195914346288839222746513816276367914424708104113678845935961284866267079892466236000395251564838006739851330009727137443067870860837686172558597322715128635671550126350631655762305348206122028736813182747284250022537299855996716197014066472219292063513489364727371804209969965611248227262663127849881722548259690293285076740348733458741697920658906806507441336132395690941746449186917693831389369324310028525354180009737352592286026406386744989218496424797393555663065585997949824075012662566833040105634401431612334357087143047768812781305058969845084097275175092514853776425702814845477587077160277107775541572533326295695087157485277407856453768506049330438113782084102283738083051099380237040355136925181638206536696716335831010171297161778793568106133557217886377910603262284938551231554094369766757462758036803470519852017415657044527299408295540615003222262320803896342348043760535281399687570655392149807141113312913925787970949623589671504301528486760796268232100235412273966938598175306592207635310819645370412640165164999994077586832038723704848567716440086775094615786104691663673266120352812267355058065031544200845796251522606002445320135535037759627637016667906224753388589904918071514219173454893373457756632952437831527560198190182641210012325893367452811797327285266725096211826611775612956218502334917433142835060605773082346010603948888234873187703047692107308681382169477872706329993721558991472592552784397664806253198941558626602582542549733456368953474155481508274171542143624588028259173711699256911032401461043113527290153267907496034452558317109825128531823021180560120398308316207398555524120090137825806987904646790977474885335521664853436193143851577516486840661927285414342649340724079899332208848674175282626114653108787523313550923140184436585815760603011396967635274221303871834447947115970844186990400013394638534488810281780626692733416950352609146949282702088849513192718506052088311603432011564068722158766362276230506837160057112152220321342379696221947097710149146242235029758635687312502238758279908217597988010950369713027533374753024731448193577075785663174245162489687597138177497232671685644826725103807510245841205157357201729642037423307790389802252214651124982423768473329612209762551748054109693699715539870925945257123628462100483601884140466889671139083026953897184970873763098107745902271449091181195826092160198992610173682263188149857143574432015613426855819426731490774378665570260693976631608007683579099208265916763508277841390939503303927599632630426525824152194842311251998093768368993033797858371370948700902753893756378821189362582626923732146132571332310276273846498449056017258626426073738915139803324022540957254483965795223172183563203756726992578763804394472275105545602988490220674316457762727969480039978297883205599553063673039490224582262747334069338802126621146735446694682880035126777049529136395541084833190741628278587200431085232847217349734478666767061235236171575976809171748469915410468644065888283229042252318735739788199003796057309248732779168611291765987346492233147716289759431070432173045305323359149776692062913198173025414890877271741863122349079443867057298614869442825085702881457253070062109894381399467828905501840280803382546070456260903653636182311484184293771383299143855204829484015546318506027931730268005683379850137876335260503942692554224886343660674596497165495112126945441861510592096592372017581060719602684081704246486995697753763744509456766894341260509027905205892097490839699053336445788107835943603929410739965107104557472388002132194414300072210902198767731803860779671528388539011658606627156186066512611558547578509486552746270937783209023603614844305964228940197870272616152156972282522063570105492689618600696489158623688200759715912648446364325609465256972632722235711088600759787531713148500005677669838582485896909352239061074902428546146360625273761298144716371326149184147489018503222717822379355276004174711986267693366311905403963397994454728011261314407117342178669708317091536518212365200497095986079207388177393816731076027152621495505434635606940350950396224771901812654322129656184975025162646821658118055525685420181188560794042850793095905024848246841538272341957533179398201914345508933627283190608926012031116699818822729616203593634150032821662003088408961530632616721853275630579693427344792806681085198050634003415349505374992476227228483592016145729290605382012539254881138497353819329813549634446182472893850934741723480173295846829497024135695531215849285139529361060892258884360510681051665813701929567194412914004368808741104679158219924161206133115501697495885282515984693049262959946915849169110248273241918073478887375298121083155898271154418798650232073197651133222085689785413020342043405275012971569786505278937667105883391216238425253449872800492191860808454248696546903449593706317456156477689121810454159172911243382383343297428489970972019059078901083270612212350555219032552964483388323751263104782523799876607200173589901311689204344395501180823424274091069985720609826481872779343840149038626201363024187185245815013713540831523306022087032765275920041950828304911210014974169880398739903662396772517632901596345633603530897197276948569563580520759596799354865809025918496664007135096052203225323189197498738713612615416642690119166056231766973810679679362567036574874985436180435694443481206629417440248515480896915101102645556148023751815559956185731035305281302658986414284791206510596320951476832381824856112263047135029249515776043122217906194174446366886511115663303005271946621609357531189383508694333605003673830671992912532251589392000109345171080577338375620967362702728421174557764166413892336033692235312639565631403254166314233150667218321313324122682574617243859662262131624837151387847315718652227657534963228780336017905037547987884919303199345479907386608057577004027704093296786974861026755616188964088150776039769890289809631509534233104984544024181094151806758088356845899358436158971505131274137148925372668810312912902191457593813556679481638892142464200636964353489491480796018532654941129903651634786165270015426111140882888518788871902796218868577370436501461391242695398051244623275095494621172930500233097731602982633852474642249935011586717650598032793394845872637112794516692732773865384081062589677806857866976214736968643302948414620371369389827544279394164359689674637557490610265261726675172352287862540101695186803653922030602871741788174624578630284927204867413019285574158453161174207198978772086622800496295128667509851280347630192139481217935006789780882163929125010138460999463943255344615175286660346599059452467032641749702912645721421264478954514885154634640078908475863590814912117407167848807123326650842531428776307705541078280859381032936586768885070173048020154875457202806188235349023736073404876825917942311944211005518367617776470598667098172934112009876915348914064065924061346554423292161174612752742732298736706197997768534796897740469145453665569589142670321422545200077803893683428352282105971351423297540882643795975218734777066046316071155360602264342430265587834988997364136243558652599033334853416990135117224583529918285605716386336790456277047696642206906498438818020679148419092919424027966010210475739800729534032294726886047585648632517878656939519059178364444069937002974391356024494697423536388981281406971579688890546543732046648348378832454141629197161586605927017745510812121003027102185190567519569715870785775926403313324617668443663764689636182880634424515609842696662383677199964191452889929835658054385829344607168766267903620693384486584760140986296680217623938685217402424037601596297542953055691440837982065318558061805122247697408085297038559113061068296073403646322424066258600347310623792289256636303718384834535664010886650019007603894794820125745818155086789474666848193007204084378758588348655156878052100107841823342765514538806372476774137691289727046477420503288083782730191903392873198048517639374941245369434292507221875642493180012787248181431709990951027903852823012196088840355029961129421648438150943161542170341539868107100743006833241557206411810657385206853120287680749938243709435028621904907473627057575261695816929998397698180665445085052431986213062824934491530507064052308533036797632546987697237433007269009428362430582510979213805681197861167579918185641637847215362009352570086952099546702438519503683872698150003743067237517096451238076195606134835041856713599474336714319105848098361549583481830965368602177492161519232923529073445063130513104356575873504678429497425728209972588537022629465197660046225188711519629385257959786595700501413555023917782183553603294438240712605876884540103927515370115377755011892087699541279061199225883490121931452073773026468061618494596327009855036783590201455387619029625110614064424529583373406849283089056257287663909956247379052300447891780207370869544293559062998130838151610248754489875836684962938771300721181304220870342510052636079403993383293314900763016694110505765252141475118082163744724822877849753690243178584233186576860355969470809021375141222581104805251303595671210139186091069246372045759528850285783787271658467291839800051642820024492435333792685778563745440524781895669554991152208158888917840552999367718287571638339911782781601043867825690620346486117539740698380000928221978389247026093327632389937596396744382156134637604922559150189607328923837170515991214251708953739856415725252959903838930168097685942102162742932468982601135605777552833278022204158788638781189187268864330367022639700198035132465010899126768462695872496918913592888875077592661273124081649667608894547453630328561603140518454942782517485828872971159583797090756792949788043957068092534977981085221697476071489216743592341519705609390994052188967288404752036056273068106827273918705511537403852742567782950465460497874329370646390264215609396760790623749883127171484147506083092628656141568469851633490128150350042592160274716713258176517578573085275685776032293915555945067285225402278641457879999931394168499551637303837583497090649916122896373516031068356521855075667998358041947220834115228426759659212063877026082914927209056107205763788221063367689669146410353437467227995053625330561304542936351276675909602808948386210479822857547843869195134204233205319025129126683888093046015036206875290635133616695427868696901517950598902899024897732737867386645101791311656572560705757727226318437043910544008668703247257740917431071201022629098722024984224221242341910388055354074886351565859309718859323323189889616550310227644995763486322683338726885055820946683036968543696013629773876200508050547066833129784731870037722535319300931240304685325312585079291803080764653550808293041448037735620741946747499501203657124146358548211167402321962717202979941174017645564057155737618545744645581096457501160934454095196500895441639011713664133873802286083022750191050599548629247513231877518684485899025047236236664866307497483686959433469497411143101452201336499897889974199965707375142331834254165577229683893941712291043966428178194423210504140226791098647138524023784736619503617773573004695173216776012155151101622112575289377134043212783129647757021999113791758516408102272939846952033855735129546411396964499781101478611057460301234723762240334808876353377772969968482378160774969222361981504277237147554615699499132216733243304673034387678808078054304023420805399141764944808369591729067541550653443816644155953378889576114597664823713412514757074779028299697327014763153255701047132160089601320336548739255341391186722704288389598405816784981022317893019001912566107747426586741217157813011226729555474669757956605004897794253716604315474106334566672110857062602734651944804296214123657210096110677524456711599554010563410022311668080933823575140214535014266347843811374661059009500228371481661689470995153703444753199591193106646938094181799262712622532749300632164242312115637959083295549447237909413551837708768366100355455056797506811409813474434790240775102033835953806014804913810726851916955507795650129615894338457815445117254141146639976880148481994762745915587363608765311073776589625455617666027098905404561310723562067409930407188221237555214046351228644358321036774158904645361489093015713317437090673036107642738834090077720233957495722701908965855365749851815986228452766412773679004776584250963193838576644577711211839539406563444090921438402266358472059789357348013975441616607560101991379046628387879790582702104629652249073796431775380686523908484519674710091826672575575218630864958947550837545363468780737547924280580761103731704797173761214797520096585012684079251316387434820026706033394123374968485252423365700288923332713542060459350131253645411977719083388378124580125653164192902027280619836304032836144422218050745488995656299904487208145818152976903721462515272549308509158608701487750588662516597725544533047184297592568596409008301108636802167125568863352668280955229524100372044984907026105614733130936044588996298462498203432155142343746256631928013988162758969461645640621320829133354103610329557325269425907780779906689392797857370655150173125154041890162475338125363736043938896642719357378236545704652815617584827489479534313055695201466293555828809378716414423015039221350409718694933992012166841152055272363776141167956342699875015192788011648409116587172347835633564948015945364643456042545891396877398641367235806550528342861152023363816873768992592876865108524895842000115754108466245535099341373910203927763204444256094481522124854046848409903344505718803988845189463054913797795432617112082287939920380472321701203182965403490736956565668793519632466588087387233758869070792556396456668140954120174065476936298570659177605126177457040486677612910612824611958799236345528038170709107993895687489132310946463697389995851046178169315482715758210568399682989717070776311903873081115721740976676909168077620260694146895575181467674758211110798720277005387824071162448003999762476405564900682264110500865706421137309391005821241412637405055413660021874707945424540294166756928600128170006261665038607088449063180039876101529736216608151947390507944153865024776355165848012966948055974177626747054400797541853297488131900293465109121293699729253254921722106346232898921587314367870461162858146595927914293029798214197441689717912215849352284242574103637277871026915505474402295026282857806404767350329493443168966963103564792039137057461116154745681324165309966781556313498669919276855351805624933520511188443478182618254182493794279934354834059189399486012700647551201989156411630721288054682409188295289670414128092823833161660674319134149266863478507364073357949026388907637171320691814062009880580191346995493009732356661194379208486498046096507622783951284967877264984478898914936512451600558312163063334384953153404022919300501559462782016507633188253163058765903722554091010928966091066616565528637254702618100236962204226150880144638088099855096735723166033803461413990403961150402250218075471222815186382778828041802197924675719914314087615224324416233912664232678670109698410347491438799964565019849832364212998328201129438511145667163777036278840674348239484790254315920483942571336050507809976091926934296471485844433889575202027067144810348772023028601195149984699298087189819930808226851481863967541956973485566115107889972176533235753761425098646943473255448012913311018085021351064268763378940912406687008226859749771071692638236382984846821406511058157530102389260654917896074726278055476738787728770899636882786260899690636436173019461691501152606708685416870824911052156129744913613268620296594676486083478328028955453223108698129302917332071412487736396793560656844035561266210314561312133262951575628870871659190691131457339251730955666960311577703873226671023595118531641860995448199328486649068524912723121084378564898836654672120125976099415269468162956169547043253069784098574277354278651172758744561979658171326845036179890628546541782356178833226421073475169087211183443506893556995223273365085240048876473995275618611889302096208861328155628889264995703790233042118149127348962390830055740168767996054355309417048844641696063840360718548162677913923976949828880864481451991394882305154669954114013079156535447675093487375333231938044290655982137184468740459822488534748166924410761215151285555677738381605832779072055017338849752082514530910760015638495021729881960435570436218906799513849558627897650434142837920916117618388129616668313460757566582726085220458883347030337904507396964687205835742927357402724528387980124894170642473241536860100389614331648366544478050187923057793135942479745096696831230067256472611618195395280772958936897231368440322673401680273320938482889241243142895244349086074758981111335430144746412118102962718754465304526682453506747066193814023681627412927958600756610548245423099669514520226833554213750038346767493526845177124313834347830265516155504168696891279854496223780251909656876911564709201768852020590057503566825024477235739975460641195669573666589875133382484597103957262244241180768727281848513599457964729814865735203411458301085897605504571316878829618585652897566774789778509371701799612853635340240394869851974121571899172987695971922532062117794770928825304519435167331000936311911050258390541414680171467254705468586110459778542228034108443916042668493410482927443049459083986766013766024977933673388642958022106296787211985131138491307258571149956023851826718194485819599595072322051680785011013961975381425386339138412310390223928477723774156243136796343847236769672744448310624329877521332438440011256564971032130390363403665430468419800201434521393617179025433729080215544329264859902727362877468960623546789693096471135664526032842290972495876773740234908496423629817858983711925127801612593287603738904614478943428566537881565234911919254148258191972186907247961419888638711864360276173026054921603423554183586979149127304304423473674611054842126962261412874168442297454807951849036068662897339561901062306241496337942933408020473708121529500691348755947175283864239172650077101784000755569627852060317753159757053019334604489644043642258790556472846025131868681284760998420453478000358185110841429703407482079767683481637443464986897910043095546445958333838791954686967052914208422422552526568204604574900849499038588304857083392621085811149316980550535169152940084493898698646685989588687037975987648382688091138026103344545467476655169193291113294089460617106573906194264690664001612259869059232820723017013374449677450928259103445185552455719881756608682329566022553612428100601047734299491154482174794915357753727181376186464210005380807582849010989148353879306509393851210497538587413351446026538416520988674493323933482030990748789760950081833577192075920244090989125298977949559802933255914578454985302297308857251400232762639421832126307444579717470631719485241683698319644257781127143053275375443435823926647751628806210747144350826871743788438836182369348606873748924713243608426223597419265883798865064234654080315467969821916001782715815762567278451401540737962736930819341155110275831003868014193452841508656727049987037335376230204016512018213861611885910332816303547676345571138129296129350378287656320739826860068910287512912954242940025924797536107117090902695519751210453047819223886772296100484728110486778216876871464444387453164694468461538194107623629131073846021209905221397693150627503963637519978122790979711474982171689787835616970328895285215553643835434500310728247197374977690647088788068818071862001458011873766572626189817485929919646383522260302120870789220376638898004545744076697312312560248921144563410950839832798433522541350286673846741336220211393851477786336985235060603407196197984072124498062920715178148959772027675560256774654938045830621051970224410865012974519777986018870788888135852648815686317391478570870225603062487959919038857529932278600910851237105620344081827868962718413368721336523571146943156504971582812601856998770428950351489650641512092525625526348311552107519129226584217033808773067157444824876364026386355683781443646509544912277348266985555942352123408715972787692021055482300055098137755762134643537530561635205612643448542093839606821288416665754473527992930050428726362935378940784138868815443024665848599451306487921347700301199463447046393657102387215997193888925231152047320706829271531989199453395964416544368468617188266673916627616288747649973990698051304919872307989043613790146599467597616182972211452334746597417707881581330207458618649735462120903593824668510301256882963678544424443812379900626718764975695075591416470809624518109213667467242161701458752973085109498867870704421619204208855691839098785420779330038582891420499461803966786226616792745588021345604794530272851185710089682447963146207188643646873811458471681243410777234384836220385370982934927551820818015282397505283302612654547072822195649830490445342789355780415538070191359925687818411253108245351334636518740167640642378889470954210621623755180848881198298576682398973495790704661044942678559810355924214792325802339904125496409126633902042164400126113605275111643017417243855986752842481348792503714275268770275403381603316790680360930326572631042704786517688660634848796765388082632843562936284819300329958399295914859161461857711718035584337216398872489807947464926235983131628635825378209839167264806793219184976803596588260219038599321194501342622862389987730603030589399875950176677203547668443251036205523060880811127837672957552797542028077060265262525172049416182124751521595509611602132901451154297256834570426624117876818363366723355132532000012296977179453984830858387341696318408830766744657768838046846985660230704994217128465717532675033154184075582593388560025672158676144784837425613896140255689298708293026834501121357491154909578877401406578723160594731425513474869130633605656406467812223543729821240625111932956835533515683474944904370248534537787249076532174176364979205338544090645306528751843587807402825855808619719727625686112083376031286579247422474865739385816024140309024750760673282601453666068983016065564377846959581171630564478172136405581097580508038095298609806949929857158329148067189798402222670729100520665379035895759039161325476410775188663287218769117857658382962917736693947636771683758188499448742571195924163364263263121155768835602414482401483287379464851600838263314653463848007142057696252081293321400167657019929011343730050045547847900662136978115412409456016719787443537745350965359756396236711627395106461169789236886735741692035001831105234517679410009933100943441199532177996257661000920750721221459529740255767311682125195986722427837481192397253215711246795614269454558652358670784516821181842260599299792547304462226499559323497851222192693903981037261347720959479563616243900240323319534645897948769198766850841169633300875929090345057398199326765466399016207222386190307130080863757496205749839042554281931584093648590142840624375283188083923247884693869016783414977563381541678901259177531711898975924101493762395768933116935294747142502070239155543195527182482479869539408385580178521576429456687730154313042297521956033953496909451494238491663988933552427039632566774842370662475794464638718836388707067762905504086257212197162237423301982186902005276305820641827627312461094144424763130934410601665560347337303858147869855041868429977437024178854497517138504840853206093840966681044845613283667246860945457492893103755064244598970469114962484210116103724594617167197142709334462310807942150395136720112630264924357245832817135379449944911307806833691756926397846860626101136638256173441784523325664288371885351465491773419521501239708947255052259445089125570417180738050715780661603459293949994028218247371402171812885949150392699937537958172635562136228955171545260248242759941732949314498352905613654235479593668624749137756576157274426025415919353726045277483001008596038835994271782217898989793977029926529114579543521476775028147491416603775923933920970277112019664045891859659850633017852047361804950021918143980221645464593134319879435976990304354067198585963634821891826225143157060389354810608468006702086567655255385921808046121921122297182926578400681028404539933246462437006490543566347586925480069318828969647254584644705452142707123620744854748758537342991254040823817860595286389930235412030036572451814685951855732747563753657793290081277374349518905987293865050720943766762305216418500358362861516517325112994270521959804853497453770659142169466642709783767599408854798520610361547638349981598337816056886786724652631500028879531114625000859761182300102736613626144412217178801970024317305682515734703824589466369575760907406989264694569684678498235837272879503483289753900334640737175313558339445414852386344717191184498709096829963758509970217668591690172248984892033706248118826490226094512064036143417894154219177480178903209131573836949002468315156349008102170879583928905560675217032170008748522235583330976905122172958661044680651972607051102756708704118467420468850731579928661523271185149879492938776885813762735856154901327404145608338237921465316391860864989043565911600613681674122324191824890276729572416530079832604535657961673876744534734161287720442013019074451753720761931230595821495944032042535484121196847387808662879532276164060746729096117269483060704319363568950548908037616970173718823874980146912882607553918304433931754938001786629424261850451514018822134896037590624650956983431621373995583523662622287850099900684521548532554922728831475755038088550994915683495136624881659260828867144096074023185129016400654973330857721471496793069786238917468438110188519756082915725833463853910663065714500714685996952367187892993187849271713087390950851839274142362633068985838054463548336667377591264428411977944457485073538264715133698161578699779822010900632701263567101337993458566321214510204438146899961657781984167302155192934006644921484870101448241377880054009443510477349915127830586545497112834274592185347648743582371889308100777285366157239626631878951232811261699284483681203071169642423490449996346857411092911871211350547365403593480215746917779856489251050210884581159885884340767482986174172422325879387250861281892259878788346611855460861663986727833922525320416750147075668515568794927328834399079030561661721014986091689051601824207005475137909000544971463696715795118386665655869063911607266501171318693835496258661994620816594194081133816170507224792765225510467546505640112168786947733213534522685531022098175794863954188816286000504327891411323192488104560832367040778189306961133500830773533389500564163528952904975798219622784439153045462390534670620731700804193899205507558069200413109675185309303167870823005284679908912753912671148002262762407308855655496306229539463387623891298566604051972891909049057372508493129272990988684348157454522437670261558225530717649827919624595890888282549407177398575566084881523054929903700300721098228664769421577123506717860594414458395140623013390918799519664266847759223452303939447859850101095142458360714101618562765002613153606874152150228144182117441345356890867924767305885727405659125002263122541694974258613423983949304087529580938797191169244660836588010904483195323443485496227039188026275428862014338477078288681438623449088706864037169078724173998384837742138779002007497645482917953297052374877720788377165879648199253915100764681713786404775155969659176350481135675592355030506632542130826507937654201048736396226612290169447144215793248260367944804651189750892432161217728384916226171624434952678091490966723778025631752281187672596894679003151395217499674175072721581284868856882017814481388458301106666219808118179424839800811693784685735095700587333592027428118609589617100824241636969610354443747929072629595910498050164075618759164118170358614280322207431961170650645312306528966347706267214697715358253933152909441377011163710888340938336652753967928422382848929748295411322411603450166729411067450984823452609862230400108065855729586598893755979410881413230099354743622833238859092183992413257927276189312706951482932446611607686749538214432320298012392213547439782953759382622523524361131362779784697328443228265893990311991038331164486214325384346201863548698230041681984726087045003293854796298019782576305295100549460895293446864969206884074807544876528214952979997871070917481458152012853088116570471118089601047374124033972653253670148706408315746438643000032501464420338574159021945335699537260832891605703257169061010215720816357290210668948834330864188320394410765871065679964394833703382895135003999844913397957756761454825862301519527719114144015418563839788331840581692020123754622339263539707075341344275848625731016681082692645995606491913173582344391509377805312811296508235875755443012751899925321615976530448667383720399244345594055846181116493816880517939240176406028219599941049680392404075047393496008307085997901207161630873217953283075319492121458756680118903537869910340203889007607579193543771654961855850638724044152718141276982465758039349275844764581259057756621226155944125070340110449435680413841511929612330742228835672532003378018421874918943950030169491324339114955296707296938343376474397642539102205003257524140727146841473228961565089752188833347833061930751263143827726195730144835246318267043184084557071100329197706176641416064110809156440535789550884334292987169616463937855117043246272326377180104103754841368409149182966762276225052069577762250132979074593193301626605285456506623844375793767117991930958897098324124005084052916604389931260728595890133884016376058167183983594574061009167855840505210596319321708773413371176605927295909950609119457778057557800433444165681419708619949994799725763193465252929261685555481256585675834283688124988671896811459983544560375114225213390952087609731296507938166985121094361532571474141608926897667296159258197316167889887759455692773282114096265086756200875909700586748517497562045660706017349650379511091201466722403645151316907549934602165224094745169903306982579402782267070734928686987166123900329005203655280435023264420090597445499634823392229761877814722355840571586861047839384723705531026442025691634917824762378728636472030124824378960782964518841624727975537968451797158369285528070184913853993932118935023418530786161030466948874832739614880585525695854580528833833188600439755806953772940350104701546689781403024380766470799153831040279771008913598592145604947228719307751239964157998466885056563263831877037188240829278124025304784382741347663943176345370468700944148427433458319238496824842516358767151899728472842118288904859881714676807568196398851078962897652622325954520278727649727151300809827911396943989772444987762525454557223788162382522292750619836588695626867822117629985291620704115451625898744270092373322296448305533703049657040700664978991161097955789853535360890617655250611687424288708973401597350502483851137357851078441220924027602038555146787600257448782263248464147480224838206783203751166848523851873645004957203111695894124881101952317969024964136058630353282107298305323701522401094035874677653036852724034725829260554109191700316710653885910536470498817380992170104045973377679063757551281109187220679325860297279600412187952597596427741344999928708494018055472894708988188032341959656657277033479477812472371941458228150475391953553125414568485120424090804115481723768653243641203477433127494965600068554281713521443764034566629313135831392808470981931694475810272194862909896595492250795568825762276486636872526668374731649171059759071223701775047663481239079502900219198373521585966886366155176323776124895150525506161460126474241395936868445011723978182085528418662303779781771512937383695423005847682400079749332952198295458748887112903969658314392660282761279794341187470383894379749289150257085982297868187949055612908771794097311437431418729118655559550189762714794547443478674380857081875360846064340915411391741995789379736044762410920870800079050087694150619113545932631669352666302044872195823581686630007788015466983163438789527250579205601969749629790492639758722428610171513939168342710980792129320244303617201848164456060888973034868393225073752153730330238135029204658673230692834544339076274609224779510125136276493141713785814100666273316971423771680011123047042930982788912439690601680296537804749658936659871999763420671675784327365523903188674168881929165382699977957973903606272866937303668629237996789105627099524819737256085692610002456657431841954450243353466848052723882851633871425384376138954448589001499068509266263123051177489350779400001243068530712728615225421842512797261358831319776641684437618578960473734280374064982028229711701127755223745167833226233922990553309754648555175004131450742261068243250734193386835474579990817161542329538039431743872247716175546509398459033893574359666928750703975022291970349181773181630776146608931501622436829477472042286407363840413767554709626790160360171476187561598208743471811187684186149010437034661586273298873312379264098670752387337613174728384412236670079485752539598397368373289019947759645842375408813318056211276740154521013449234376685397455960695503463019969380563315917454981714202426766031377479086823283051702150204039476974122628525515566779431777975434852791730489575166986824323453618522999874635072370450769053597950259122747783403650061849588561717913535573217512514599428982064103302673403521618182466462137563412835298156582971394663936928381821585932154715870887082615977109042112758998928476589507312310319918517865226284883305308598959519895792680246325160582610244531512355202291453614851245344478720554715657526501780050076515401245669219167087571487680988913297304764104904677476908079717096248477739287922610020023250642290330132507865423296439454530474886812949636390751668715724067710431514109220621521471117120878133318712942633547967233519448136094984472561740817160970136315288870986305947038572853617460901783827535916422781305392419661355212283643248638516584882268690677962541917127054207831645819396630368928583944754737101853244633695808006308025846635753867237153996702616994820344948479647067284790430830327214997734133139869058158636795852890565077634809554958537443331464029412278877540914004685914343179454641262983036621796606995989789800052764249782432323684235868102073999856650084300772678449362998705146574274924924964883957305144283698675283127125221928978979613827024854721388840420825736923187014340913211380582668684501539766275879351932495778390754263543311246690925133636277413483314225869304702980200029917018553180074297852339648549382994910129136146704703902199748487066428289708985933151597432827654787768464183472329162487744658196675589064711444667189104391845420814329013403581311018492696917214000190729407485306549794983013532414221354681624863292983830861587419840322299517952699226396899953517852336535856359901860733651227536537973352054741438153689010844854443734463644509880177060407368522641399858840038386585651896221658209542214807462926871787130180291968334971476651366392933236112459606096934008839843332514766759608717486280818970522824892449604633926222999920795201305088920415006253321134195076736011840910202071548898224771446509852394958838565748469280874737487821642355760581727788682807093307587902010074958906258416415264644456987989250184900234428817717729224666142366807700077390018702564594493980880639111505133407787505018029786436785755730512002922448323142442375318143272814423687032352408449232928439955886565605919346319219194114201512464273577010338551604293498692790249967459945435830521342439390567393216581204787513844283154082689289438287316689173276174838492576808253330558537867591271101998710482243128821611857579976295499039149092906487702166772637655696167355219111613336787863804115132189329373356249054090013762784003387755135498196555306100315562215672170730352463320020732507901954118035005335942964650767714587910290860252123465120885758468326427770456507675733247573647981692823141914687401833563328339630764948727196600562541019992451685239531199388812668633625068221626277918067962284376369709243332775197400663588604265049385693043296089090806965481511819344640237312134982379665428775714860565669873150710072280088960653387287539272521018942560491246331411856657149175475223296607102449618307057662350325311503080802496419842093704752388539223356810684385688971622114487264314259900575322901084550837973467893724595289420839278402975864355106540539881498197382724057589169340151125570481478200037321256368443177122435426493992014093222233483004806791484868328696231244297006185288669923620957823853418095030404026352316707627624998541342332385871975984679113392190913570240793342237395310457809032106481300319655293978553523331146039405673568744227567639674813832584979948287909754717011943849197548096339248037449022216028855688374986663470956211456802513968667768937559106606372489647147565074545534603884974574983329858349289338387974882026531669437679704584715284393377489825371118286774537622834339260197087629092746960428416725607384147356326916232888228053410429750073105064897977549663597288083236268436762937561307160416030530851585029379645160729951810417326095006878999226419914023237084450132239301675534513522894148846937544183397331155983338424255680150314404275879762392208432536562687877104097780383937840496825778811718006961370380282944654803490405334071625270315469786327302851570814167223758210015138547190423033853180571731293939739362399816481798913050821853579236596207319660587785738045888011748169806540365332337165141610428078396250261797784658558973907692129695487965741549776272779261344542222710368551834240889353056891374688399822277435126559388682452451931257835836917901115575645297044217950655237584198798141172410638831901078705086047731689310290845348477829431099893796609177462154221615479553929830953211495289755879139768460624937064376759230076370230883381469099408403349103736448837058055718208255311796894792766188842917854485724792649973965932054768533370258951322334613328494400063706308354417327142284588579492035112159766432401788621171028084895112830746643892978239159317474866245544321346793546305710981602239696102605075696405102362726807256857645740806904273210177297423711076964706732159752559018223078946066444321261409387243742044174700544391800321858009316261362460668941956948341517651945314013308909472573879852265202375360999761764141217162832653959111599577150714245861333488979956653494565219565706801421760558634771068787468931035341329019497895699623705370708511812607240470481701757296467824090312392762563958466363035460130449564718540001141794150052884936411150491325312251859726758880436110197885581308107592487138339445733034129392861171206606061785170141168351004933531455909179339107336193923120053145319120386387385697230727078338104862391996182662247573315379663623124259837259156957187164242200717223527437009846722990485349936892450156758126611625693192886922359788708173749640389984763174261600745817381079528942529928271654710499003973670343184161844405029077019689198544954249863383175291568030457986068496535087335028863159313645000792792996117394156304579580720796253063802505422855883567559291138358550664395422685923107178340635792144813357627476526924323854140721175093384740804448493728124008444051172381997209191647036594864765754032254978378426549461833110074464547343935148260252462641066432126874262594511349813566395060047069342551247096336285388687642236650557943312982415663747059147363039962972138061647263670101255869823644525529237711396978748297879719453681027149102375143605546792737547897642314154826762702772125465543875161735835562406337843949489251972305540990614764044379953897772611693312473708494758421181051314253558058521096880872769824041127872224737325310615816445226521154536116554673578066936469075979427217135901137480295339574129863591200405866614188680982098181543117510675976806093352192507294169933869712063646254346139185823717743909522788667778065577064947507477140803616464208706361905195954295217607622125719743644202497571368484894743836170013578012023430274046085587846125189981618037521039280531099464228084510482348834362032815707996085948651609927083816744431812346555454519471420663248670196943056503424600618111519804759006927533319259897918674838110112420108603952906249479023270207013545761069836186856167253638422696941986395725056440214646152711453742393239267200658214674594945172829830919076379674301630018137413442962870851485265600975097500107159889840862624809875307058967552722663232962445769960736797035059546806443940575229296845098457448385073897285097715965160399059845555008716648260950657951483539636977874741183536027915372184678326084645738640623868815191611889746563612921569577218119378896639237085716311833357921000827957889578004361614769643883169022334296978126411312197756487015802277294726586031683573567319791162036399172363463978469728908599311025247035243965106785656924676711863843540892767489505111868322936142521092395170909358910444290946289954318785557921195022833878753256668634477912792065613588542374808452600172207337528823728080085147504169672407526480903251063395263827039721490900347073523009527083657894261248362413187526385309137830283383252479569563971043861724393920160664905035804830534545140910135869060154174404557023542154314225218627774303975438058358235066213673150983130344965311115294872502844920185803759240478636734206986891023375218013872653513496351480010449161562340492409865380186835968942050499545911366246000215929931197314493302904832658472813736881228286192827789800202815865865247305622736914156640273037687116475586384485369050667448136679828246247701400592239405617435799746269148851778165203834342554842692167215955242382707258501026250411181810730556010451916184597986668975748269271965478024973154917368256677351915151920827719427651463086165539902825196505724291284246686687072260784762665221981101260747902871465326789385555717281453718684290823361460771805448776111481501103102434524048537575757826024603682422538858516927852217499581096048042440756597156672323937484287453281434167532440466556382096236856052415378723743996708023649006582251694257379691734900698849180787424772385769240887546090401164232877661922130229821820015241166676083206489529045699418893006956097907517236873970074140377429695058822629231493766965879720308494930020627008856246872907581594396359648759345871593095916475624133995880842213776310453064157174199879145804172181472594183381379573080775662918294693746821001620724479221978249405262992162319428056156513053130181828980818729795888942542687944013607508724512180872203102952924947072619298691289188410880646858830373832895415744316301259841620908841841693275221607010669219450637071814891480013341760583268765751499346206573713721041101875326755394007554851243669542547479233518637726673077874944067589005192723732748463386024367320476598573013837483524447097384359430079734889820157272865598678501017813138321893273231792045275664437959424502759107858957976723490992033356090739804804371633970075098017774251128883729256134959762469384656862568747537177225740533359635806197942644639885845592243180893858063173468359409823129038098504712695376529740336438649783417265986320486695668172265299287742643814461025048258826910676559578645165682170692193088132612725702718435117671341003909111434416035882140059845186338283572167546100712495941343235850622310273185968993180058301063716028514926134959960781956700980557347086018460315836989608484356900175824313509063862731796050279542971400072528896514038122391452663646514864261537372379840410541326146794809999339165396612858750239304475458550243194090398673403594062274525426284566082118901444709608212287808175379289589731798293804998903845394359039830441987447041919791349069423333255620858611269131324096671706960019057596062194682359344827510285802517216669015110866815426108339205797029236234921802772126581311699037832867177202576995666788481413504745820331773587940818231351712202759118090690626660219898234966907272250882265204855724235156607006619423978277577935107758801770933971415510311991901386538508976977059942095602532175177488370792038764688197288993195568983235081982951988934389728118507667456462705572373370754384824516813501130728188613056820264984476822132143747800893232104220496145810153468107749224468478836025413650032748320752169805657415823848181965536757022863847765440551006909163728938568473843091496119494241159452177079850133630564672974544427708194296409665642073025472648813268595723878238400910076555548999525325103585391532849697840183556564231414171858028749612125588316581270365329713769673881157742400073900458728454028265234993171149230375513886010600402749520115256433777383548802781702164877346447660103057674421027474180397772827734580521646058868335007779710337792791346676224537406130965963873097548103479475750082849688833976480521279530797808215412739217106907032738928317506604087188992821879537648572989745049065190323663202244093616081272233314825019003716197349680101444628265480615610280711977801412102193890722409404424958938080054430698146331984201704636944937005969514265304714288692750453755498205842450346122708441752139168089331178946962451320342066311899067310386339562682858940175217874400717195111028885292830167218342238809073972382813629623471528829616135492867654045159993176998246108846840582421861418638932030138627416584436740022555618458423219807981151904596042255651209758947468634853465754286333351849602970854875273989129522452938548655984540979903283888149349875083965094067090243690623317847052062193466891093254999177222007382832517372008611292217672297673790502033128836874757782872828554215000093160080751812824254193234816851321360112553205610681315727419256456146079675175268187950570943476112060865513379049393306869156447499411602265829086554600746015592986011280443443781406212945911114732681736426290412203748641408426101606136298340216843269162206839397721784446698195861791134061522672871923690120565972682100976297032959255625658159264691528107058680044279626764317503031145536307243102840205442590132710838779673748125878806296459265131640641200843207691772868091744949793521138823291030190092129020921875853136445046810147287221767790624240917924012480983535793382898559519752408007163511346896412193330972394144910662951155855403422422641034876005695269317028134587745820005757915464494872905239390263889114864858984865001663349965986877479915181393378831234006617206717598000639270474192791488855877263396735942054323036100290665623999487660543547553652524973223151149429462894618611638465401553041647085783294054743204929125949439470920237083531342277587034940377738975265317155521673652810089733229933591252333560509037877812210379310501815783330537735693124027909003318821424281931247912739643252698369363931859212756477747850232847503479795775885537776664229370897395138733302237868347977495904331553162429372978426344138071712312749270579759921656361043104233165088373774556709492220714631221870002287365277520678153605720678130568337712703075977379160663917189592754166755869884459019812100848477430295527048916036192149519607952779162662519948686710269205756573842904416034026869212450042552248558263461358582237800912543659529042854095460817542272113594678037191102349054562744163552247828099131943969266394174277086158471887171372473413767583950522263625014781677024348711807836401590912638214164663176153449165085722513050608171183523819788462674519142986222300541042428410671782427967729244879256992928838852099936269420445608100137385571696157106699528152812507371398460603944274818227518895274730550893836621558471564525659653789051980298662997024017966391974053517140434615194740000122171415309410399022244528107081345295737129211447111421182911666244320913408925813923617125232754775405311826869670727543240248385146356521500946060784224719717749041860547095333206854860597197874649505308097114813374464434353707180836300650737738765149444288143678133224786331441712560271482692577532912938968065158911781759685923812197716574600432615879841590013094722908443178536378631564750184600297423794052889393925142286323504467313339520483567840393132719479000442454025075325777874729083686393470889267579384738850089698392974470562593283043961554815635129316102134017492328184454391595223831315296690619318264902023388344811886968450528721129698341750046191034968036363970798431988479437932942892585104290606991507413457289468767375125797831889836245465704822799646741710431176749542904583178711984806770593961808271957023503255007494316908347889532346595457276422450949409102411896924143580150704261797154612714120924126412279390468227828818212845119160022665342727777354372375449399986263589818349703104729618407432132835844585862039523033276876622853731352007312315051298874841760839974090927747364648813686160968595469624149006724212653585744884777559525959462689423415185004392924057100116318271240851600614549659276149541076889336023441451837920157033016917688924685776537307959243273236853042894720104684058727396679074893044319021182745110908921892040015351864546046145078313699561492790530976826346400435260715890980891046943742623091293878989354569756784843562717290271676870752837711551253162203396848508942542765897208737368273143891065709952103486687806607747763464713782956841819685935678862412525645094608038161808006034150000316311775957463873707035767736162130614101080890655137821916209630627616678115488234425492317534925673048889140542520530551670911294254250890123300664446492682742279853398587158778601288358834867202956412990245572796353880210686729129547047034884098440612536912316727099667324960024643654875264077825276789592755281372226152418707076123978639230776281942575259246998922788609923143705941428156401951158202405910995241505679930125889664429238148961773362421433620323207098734489927409608633243836100467445345218888337606332853793775601638839972865330927457194272026478502956698487191527197654593343717321575726902644783398053824856094309701619268252558559608914415582086861573334830493891566450219938329685246691878550692774747718097672176667707850088469577351693204643468070993604637242873050426220618088370015999550485843629479022667997726762301890006496931630769042194593105385777747263250344999851797414793671121400793160240814265822530016095591265682551302527631323672157478081552729062937784555887209953894408802736163139914289507960823201319510750106827830479908050746145773041549743842403578191478728225782643584831775081017818349057998064888291985350375664419837682441417665431145074725368376095892595837329455163650460781050666322843274639256158688956927555062248350348721934705919984435326917953742744672062042960199880339897155726376709801001131112687793051487527838647762051293461009482746428574270747022967495042615097542554088449302289974498337239250657073933798645236957618695779925056625311397755489098464242164944661140368744823027358641818656395880064464899247976943838197875863268316785689669187658696886109955550621475184749756894175000383659942109655180449697536752568351623023890357292347289001865577052631804941905243438383658305096751040288781716630749026247643324126949418162814134455721301909985441805373632854494188142278367103567786798678649570216035134166183453483732834699457148998799010132583393175100270708617085246326859548279600633242228025949337899254816795854444712692883498936967334981461169486391236890680788913685301256079126745582589728387299013458362340285468643123129095788466289910939355589664343424859077143331948251520359516712036482817708987194093506220689984479585209855197964179809767165788000151256953499457262520368402938653872238522222044551953977367301613349893783959634759870643706393512034432810602576516918451079859664243643438442015720879178135820507397423767456478763098707888727119765720583826699527486579053396979544648410976905310328011439463520239046700107691043143354664025212899567566207807113882514998922131248537437959500695055523222292457193519056206538769081157145386116129040390127707268713036584080965296099044507478728732444680748656795078955716758181247948983791344376547330187938605289334034174908567370303154498237933965748233995324400703944594450296853513636444022253674251441445789412923595236732830490811770514852993465494962451312792741131590119978010894671335815072733581141413799881416510045279673900612905194042968361678779840491197300848086737317702809747799872045247591075135950633725677222887685737393907334249892133529071819315160736985139907853020265756400035111840445198208637981163780492826888706166353443311474070854978120738085635905393709096667815797540788410704194399637620451801988746469409025457444786507350330642976496972433193849283515099028031037306598116197602168252429169567068589719939163073972192488231847239688290958824490915786298357533596636731653943813371682500818975149083554264042669265497960303830997249594589725790945351781095702126070861653843885462233942177064274896234525909271296549080260042506588124611358589808018153055727160788878778329024967770915909610353884573249967266986309958440383863296864351524719917116853681995450325632378844793013837220965792866988615314169895561704592237381736777201909636886671332512172658912277851099124028980282668170185297687606574887062468107218843487230362989228023767769104656749771139527882399459234968712477365955628169699587453189354397117665129806320401395555730802193880612245927595131030832418798348252661410060522282513660200435663541770692425698141766355805880227601242632468850180317967371598330045652708864103840085246344234886012083678693706608267683619926551667300814583054370307787697104569007892160566476011243387624946571804088928192422923186174467392261183144860491187967256242954022864942284538940997468323932967819050821037597786120735737822043564964940461812745429529052500820857208101726388805372888126053677294746631225132854036860052261552951245533549444427721595206563213206375201222507656061859495758167128623685422851248903415534107713382058406652679608645242581400941973634546011632614074977191550735676943608977479689496311850954722241131874377205109419628029753410383967222185504998248775691547850508039984828190036408908671006123731789857908565510742317963209836348254359929554955992958940850309610850662675188153589171538371595199701065121443869563292665799331138345721817163303186590214086988389737930608334256998318812081469724553135311726794998290732976880848036767621038016898006786955346964976058000872741728956502669263614201248540199174724496750807255555613099726103454161141998915235148181913417622069646947251261402308306359746432314624611042450221196420290553212285421990026593438840739591407466573042376432340081706705539807036246514564453562456451451335185217292148793267345318451076911167735126973972898282790968436558581789008985824547537263201922365390036146778571832997629052537550665339761023108899347403111930096878203476678561371460494026337098335587036449575444390212428578902187896800235502728816681838064963412612246990107751999827006297098468667956444662075907806861031164081123115625972667716010453475120909486322788890802479256871928875759420888851571958043999238444378347088015719784720681613391736398326129703125678941960813648449335060997335036091102453932269089516828773062352239881627344037640824500602220002676267997250901564412941231304839084208051405528577713342293293213675085690810690298681479673040535711478082574447249308252112130985424680082402716593363069459375624892735598490789593745667959262451768946798823066130698112788941428149998823265925655854975681258117587639325484947966919659292891344210314143025673319648967925385157220760023422643195840765954183162907814269946051064745069207979960416349826996679881474112827560754983052212470215708765666119747481428373651186542209441898199776897188505369714357338783685133489186919663371277521214722822504013238321742386131016616097264192563040228165818742995424932218746233451220515365511783971743614818984996861563319751523273465460260799349872438963302124734906140220282942274134435285416380031704918271386164786039474815850199280480564975717010752632524282939650827711536593447382291304590123307306687538144787023052138115020535382800114645927115726967755409151251348980698480111113781553857599132060702873003451216119500651890284526635000606799796416734943978690796163736670679606029613302496302979615170419938658486520388490587909149786660651055868688459577456988397701860395257957354947237965659874340234473410081697160443298301330039729896869042762621434714349564421121388602634543195529990452945572462585958863817903888537521501594538364579269348116364598300016353692593772849504404925468660211350651738077729691503288281358817654158962765960583736946268781282216498484032391218711549774644713016740283953689262153985392452664673435978309472499686845980205001822377307995317467051759967276482857693412812988404875379742521627087701040971813258192094688974495005183879665057752511347516373787474915759440990968571526630361367689193321243563407416352696245881977842202536733042673518304946939528909650484248419594429889986887727950683710217951151090990291132450132867562992114493407653452910201739687152319071646439437175324721717600184506566865701276542588914787093546209181694180741530774141300517534189246605792487670618321558215685930501539067808209729691968489800311200360680503783349123587059432633727472108726735360098498690979802654662969575133784352255853422547752267862858335196452125472223959973764862141662625773985601442065506026840788113797034217753172254795136128021000290045958515928301155488222968460933608730992054555774452268791895572428650501056346887500770021676331305358537174720675309422510734397050326998356291531129613431469990048592708518007928920786413514725141520466037957152491380719039622690418260019200248674476585818287925692915075774189420994657485189887316873207853843098715671106874284616078973820476004928408295052193073898022055039469517199793488345517625283946249909193729781071110685000621154750958072533376586791444557691817636386189923457782338584680687976006730532444734258333160584399869163298593023921792643801820455300111511077097092366591804330061621995919642147403111843043943817159454637341187891755063034654585008145431646639496600410866387127117722745432718377418809364830478677186713330812115091905295996995828062138700381528462055276060563118997803660848834641831711698918683397339985106442256582337250804079813176080059136092893632614064480572548634173990707896374400559336778191248465205326483300487769946888607940410783348483347090447249348993713227643818448599972084858874247909631698621034638466408036866060933273592099323820431971563175088749586870347606885414154035001430070972934908884155116743233451847986293496672247838689735112709960332368281702105055720777794520128650510950931116353696086149003390668776439504080826725638862068714210319847162077056397210852710797279534174291306631542503118796970895214283337579209858891657647972646895234270184946668140581214952432345086467324527546634817272016886070633332219412331178028319231946840571241832928487065921576624103979706917920373442084833350919372957340635312251857684506342695707371082281998976548792887164222873725293072931276057912778055753149551067354875751935562534872582844807543014805098715907090755333387829225740118665032042369009423634203118813900940599536633341335411039943397783027619853325658728031629426032970966165781967643013502084613526425620712629557837087425143070062403682596126373607819277348325467535217669194516399164898410687027820614052290057822357870671067357841051049241210611873517510085084313626785308547513579086642807153755288749270429622811569556265124658475745367264876833600831187094504353930484517047830871084400416902048184646570002998655518955878892268233141041790506786125938637987278840956194643112220417719651768976236277759225339474138393471609038287265177775689717569942245895964270590795886016070321876850596351931264751609008261454889361947961487345469946581906759279691310453863127145548764397178267968652909872974771787745925348427664791603264896341448127591441867230676976463028390071835220607216209832572468049883443314399929794421084603716594529031152587552858429295583906571286951963329437560094125445419629636752438393786089835874288231964171453065194953185729610015604062890058105845073181004739677835276827922410187274942576290302649074957578515376036176932400810737085039922383909441865000086159288728902626716213037974997813825403515327832446023732483085091550512846705479157285824165814889458288451287634666318112583664416612873389506325292219076647140890824160262579265833973366766288655777139452974357893402066775112765155917546870397404174693547567057410513789669146417815700984369310130982492959101349682582448786736795130319890486376942033480987842838600794295319964886438439781100957004692130462631563916526412006351445224769322383372033810305738228740167030592782081331675912543664415524851615351898985218536954484235112169968770013839334450419151441109913787591291353581691693849102075826587101899932919426664726878878611289764192620723393793510128936328554306872459748000114538627375680257671028883423625016732605303099186040657538192756239124090003286157991577537792988223847672728889479100851420080296288069577588257024577721212974209831550519610494632634991462522581558196440773337552983016255606334174930875735319673331711158245667595937629946267562146140830868784647336548530540525438739173627413438564194743517371960385338427481703423285254220965400208562809263041386846018078424748371646207542513425364000154138906647015708321107062768445502674181291765564845352845657663875965450801452479211763189875745976376618698224419066617505827941663693143566671327769913168233142855104456038504204735684192042673776637785953927420896594284528183477005665135116614997015785324205791942689439426734819548590902904225623356425708723923415736522930876392758832320500655108054707707812616873274108518264015371523232324073043438301276771842893300980613205554918178392317287421052750564437053655210089486100378139388221914661904434416687209561141011729696364841941988962747228410666805791214164414788639328963931065875864601525970043130325919283462302341216871220185502633308723895711675258361738467669980832370239097349413444421974929441488293542523190142755146110693870515036616441748906650775376216372784722423491919224779570029210754675679195952189641467084767310992859053150804064405302394803152202940686337470102764280786245159688431467716220668443895623799757158191256355892213064882834658084040474101697411768290434605022099316231118353584276217070190974762771993452998169307901244569372527427162177790526379419617314163650921068548753790116165336124582971500181154830293689636236712108899361835049229569065761623934294646803260195745616622590020281846356658302140233750629000672822087428995394505462243017837820240641311782826554565413182926218905952699985635839388997307535217331454316851535713622085120916368922800542311830012825576355360793404144311494071340555550538629976446451434395311755562835870374050980548135038859889722625971848764952666957300152372571019017011810302559419890248390318353667022399615888616478828792207242672446893653070300714788908125520749191073517440883751992711481019589568107172422700698464092048337717333190448832413254586807592863082237875845670928762911327566147862803036865578874653904157042678955760647126533585525377209944546713980371272290340234413335817561035765582142778433709283444273095302490403673431287598002081860147096115179221697800080342068691944660196407445962402113248928429894908573334681638788320781704307158974648153351768601059060836334010897277812816073020784785680297255909081836360868961418187756575795199984849816627261374388276779855508899938950056617269402736535440484136633574819648415665898874770829977055632399721585268297820405969891397378698647620136260075718758837651079719391835885788523133915795337893927957985953687242094301165413836495888169423715960426004492588359136739913173730853069537283356571945073583386621283036311377100006364418608477334814448675729535322793354547201734251323041656135475456769027793552226386702827717534043556892293639965122534233581329659456064144919023774259298543098128903667663289478639665242946545065390431224719629803748085469780678443501112728911631041535628167512323216498039162482109162083923784690957419379035668154261470424283814261357133084992157946318146750887860256079000290581109553801716235879846476592212373322382953507708324915369899593313257383521966826121251465524941715125523255807495796301623404504052501466938738906092599594919702970007433222723476206666477155942423409369717400254933307923005217088316659951017683319748370244401206183645340255286454594558849160934778193319601904140518886053532050496348946169597798310863337747944705694571741936831098980078018860203693837290922480769788858442789997868691677686328022431464960375365890071846028738364006235418599003348900240370402407889215376183598567873339694589628572101823563611128763206682500139959576363239767663429627482036016294291844657818414133070271528130068750038979457446543920842533873102040774888015022991528168723078967677332323420389978940651627645053636346891557885997132963722222118642608066090775551765065803153700754587661562367342321224724750377657881014228918038375166248759165596783526869840548216287532609364332966975559117807535623830822653243699089179986360714216674785874959546260843344136801348310459518359345770892610576270834974188291152334262776488368138322682205104331787923717682533190832819681743201977895298356352376199632755724063735623892923037717212582548395074009502258861078869336214960836271619813990099266057513690271608923940408658268164675208093380845264429647654618716907827368753832755901452905446273443515466334517563223162369157476433246531486225568615101087102603681903848930497684498240296315718133076789427345108154163289970498314006574589988965827850502899280431401037097590755566749536193026447181756319778278264890902964058403678522195227129002760120604131707892132180363141671463948719285381256610511774558106072991478477255232604398473333586339289100430903315850817514972570102909030082106359842854166464082409424807864009874979842670871195803841866647685699890777336036080623010643692109669280581425924756671491319784493564792813021487676129712597242043990051528859276639257002854364701655606898926934728697021407967614276057460856878625031085989594863181782051409878307438146480810219494582239097582939726359340801414930929242849982534962135419680636131289833553103203902735823293608161402374221279213105666691647769293388122087472826238267170814303449010439572978131293623223283469999294808643513768260497145709459170137529165956190170032083532135416696292090387782234500839611551959693288701945857947843485942711304505865174883216093102220295145218388893599452172962249464091751857950976715741541850141434321926528499248402354798208712769024740611314535351132581535442836956009134591478908081088922405829456445334069288641693597638132097604007890973324361733606030821674604415105263230808436400314138347367134437066154094261533829534583573833001380574474600937160688251994374657211391591409897070895077874971965149030594166067023832382084077196132512429114160615547777764039419428738976836520227950536520596163981240379539161064352542428767742001063168146575016855251100121352770636703253789216193439667479754280190863443270249279999752206096902589958553719060205475426333549969396702634188013860601648539864096057628084665379381694558490916149901642879443230262529558309138639148944469204404478728249798637070970542731455632084383048865585951899123350516848780026533742116738523082531224386562903559124456236948853299142597786426938963082518437113224810425763989432002386270604286471587966788015330813507371406515425981631168443558514543198794971778516168385085387008087046114438210995965243526262480655323895890298564845796033735780026774327951889181510574552532220205642320225456980706341260748686578617157246839505017686908426843419698846225770467776350176595667343130830447546153803489390118538977607875072196695643228001354223364240931605874083230400820849962041825392084289398310207743624899779464288744579643082049188278474583075882058753595258591893379006870982217563693551409915148838638175541466022399464928391345124218204475339163934092784768139922517138594458439895279019548217233450179015805275738208316585065207362555078160056877182465781384324910349833027069073167010856538051340793565778318060944608149633124649390581371714382499094661902787906636559156196532042999542700403787495064473943996455737103497015732766296779715620701502238188138031283060333374501026982959898697611043776899970231705446460640232132469505696007705113314134467040588875560812295875016597111792878276553105702851308475245316972586503006077812087218797515918781605922457322231741136904502791542172210034292989530607243335515834779455192279708140885034854028506462210677282894502324001017850851256847549081081717423230917911919889024537837363771177842438193390144198442889934813399928000310355111393891356090550117547862557384381555434871881484331276173810079291605696436844923191273289871971508112944150831108632239131893335973098854682828743453719296373424808228019727359592005576278928675227321162887936499417690681662325368792785716241020893651729871418185012784277000154475702158797490977098392206564127250666542233506906506721904910339274422049612045846699373716409763190442375621782785443518200321129430500347354750510648945554019237055653504407404034356552370188076983828767859430234203941351088637241032238813856347535229900406378000436921763285206523126866447211520326476821602642419431005072956300824226026657066998874015490701524584245663179880084441702252408939474329260510432680687793941764035085374582790242396793408378609685217921102805444133722448973736459100718111781041026279466116905267025747255155361437152407824026949864124284241843795629351807029892754425158399889481151976318606028810050298716782117722802563511594342671432099653789902957323581619029979765004461063146317348104928260025454823533588476121173450777862781557252710609742862614923933051257512655492343416405941304820937457580676190459370131194986235026364953251336882168556288529194162837110426097408191339879767891933486836371498069958373210426313143711570402339972055187556449514134315757274184114092980154923804960264482355161006671260392520186154705492534536350153133777522259707926344076872100331607389031460299903164469971746995031901790647901650768665984329106021596256315123136759504754251474975861072447622664869367683339685403102502544899930610003266745284688537187198883817048308215912149763812703068453922639689065735864556806475137960278902232099249335850454314563184430775765205958983874054311874954116121833981055405601718319706408512571279251844840765422358744445349311111028574273957413883297290410931678917056528301782514532736016949109689644985094052912212971831855874010295323718305063700052214215992489543103327036710172116323158994900826951901467550313194967523098853546859855099531440120428626586769002231433682073513626133241914080895084332190201475886836289167812940119922491421300976648643524106571353427152841481259765331310785028861273574263519477909586806634720846709784545640862111608321784436036284196878656809140296407162784614472140117350948033461053554154523094390810793487618512195482339029573134653245196323522413423693889959860913737551649695318363643640283061580119491427516653929032643974405379347951284258316438715697128754456532984137289491066108747778028817285889812806788367748944414318580437772849555679399456472450507695187513644886055963766788753867537883779697260737737850734571918958062988393284337508471924346118484071849463608903847072873324782771137433511285899160741375339131120930393203954488617877122420361748263052399445920339964212899639586599681783187775215315591152287007752684265604957921381289980803995060003608945510090788228050732507833771532469992599633882975585582273646546111179092946566341867727143907896802005221099357747131222539239519329753785963042632899210283709836227612665109423754532810489666648740417646786365991434739802266226141561851847620202686946222835977728374595684367557058426000723291754076365968608139193494873851790978681872237997538687280180502098575563963700183544141195905848294418723473135373725862381234389873629668437985239761178886951084187024553308113336401507583888342988601219041610628217236470583499872265995690750835894918387295484071245374990168670972178715124661047495419613722204277613414074493637743744641050374315640002970610201909644125376390390385410775761584063980328554593582836119346579667638142991673166275344706517543466208035875495426949794045352293676308493345246757717247737033013643743234861982813674968356457991331925033729179558411587224227113169590266803165777995599631255153868726315620396923320729462902416711971528254699703434594330894187382497747506602541606471785564726649478949285942221791766383138890651392824641092020663877040566356496130150752334389579819144631088538075482785582146741446145238789953331638557175175289824085283270396435545028203567020133466303405392743791056358963789871123678974924242660704027586063602793766472973329682311172137098943416522086934577219072772492857065790907444623110920969678015614682200029019658140688805802245761744917034477972818755188198254927623512533926219883747244006092010276331799816857832868842848063927415967778839767398582592277485667734489777949513999654376919311760912838103507236038412456570658586097548012962009804115438305516517382284377231034069572141106613116088201644476994960647786525340924500021401536268229340285682187677915929304989869041849028830605004906356288896230448044855623977764762860639615568195915490996547542218332721257090921940571808709740488773213551109651849109513432009526925117179361430633075246317701158000960616105231366133353963650082825201868288947178365569531137442779901581154684880109049566728412773321824724613169835739364681739299822160206354133938385275272675692463679305851416071716866473992881111846653393459837373653509702922473972861474757515809031695797787411378134148055051298264290093730443491119167406443470940190856535076493288689412671400171477455788335053012890950948867893223518662016934720392080874480480249440123628643769112458619226183195815672684958539803920971798581620063343051662183927539641374609001395303082488270565500059124475629148084470457762540363123329070161819185973719772183497218226517363378288484684695988232704912057174634357699945899551309271782519070578347526781134653870658877713570192904360598424715582845235341635422065641086982527724939621357866101145428919160186989877315563278177628490931615491753694848339680548878133952566220263003515292945403197595348062711274473922073507812851107864532232070844083660630884999618367206233071630021745158687765423534369232420531467860398749847477518233146739534941702114498611227536687243813738359605327257080896152281295409501480935947093539833097529991859817897042949358140496442500844620266774690437672517750252954299910017206133126207699999285656938104218088349034823052675332009604015142773470503173700722554504311169390064512705076042385953513840982774619250711165892460445699773019485294981441150679217058502525873223003773362085220889284979505964175088002573481294359483250036645300249625237646490504572561597148534825155831597706140252836534516908161344670022623785145755747860011738715788553490289945542214495278822916736324311697898932576336300122647793757020063870603205791243891871707652254847994088950342920059224111665858566560214746103988240707400595334639883432670124494280632345390810714551351784609956030085241299988577446467290971970056717317965540690855305508051430441440724687176915765553171007867781440280711659592208680675020450022106871027642962057194460822870890541655026820279737215802440360466786482938734758284395596919019733093889759057548514706758335926660645972428243311821741628612471915486929813252770002171461516121860393449722701699578552664248088585986982995490667028021775016070488636859583360173080904302850577352319388069366672554240960945566394425062295571035894262409713072224335229083037196481722867693864611435387275380734237905031822833330482700298437879935602159395180388792470912648220200028113906983178290106669136645481579518180742808256603214609720766704630983082388925441572511950881422243271047295613600120935297365153767575589992757295173958508013434351218679368058914402131959335452341627800115759947779073447334792590756795298535806846248031330714614037110116546123601688780842942819092199396117134488665333969549964874099439124314297792160599268711092731978517605922519021777875305260672211886932395468339517501300221348060358312710760434827914042570778854014612744797898370849531600800894740313894169488031637902761625967283293808446186746762394326399955553169445902415906932403082353955424463119851819473108363651052286332101097037533962511216875667728896268535680438291532006232732016869301869003588149133884119598442196288405965671302115619879385923616706557396879644870471675490283245828486336331148856750167910838488750182489116841148792925471336330046838636660442328516117680412120531565583995296183469868058695793097998610525092047245844048123109711167551303624100084384210032256071973180049080333638553761875546242843088785138145676912943678993942058367218987892439337536447042276788762570515841189369703354899916366159121615049503693730007218062326946738808882989055167954518070790201781818841300929382206867933423753410806144831436878880152272517737009768817486258789775954721055478435546930570654244965247176978729271323168618958191593129464236987962625100547507342260884135661330231233336594833947391256653737714046014160320869277512862191602449471827827825278684666412816378589513801490377567166571906878910046235251483783022975979534017320062513169997413817320340587173468711677038756499426584155783922688820476605613119189997762453428263793559658835701135948142088535268752244100349405886974537475745776437961596511165599275514787359915328087230476587045485583768456457759123154635999354489983204779989351111105370844460374595244618199253923262464773569874744399284500595810059637859456769751799398553111437444507077980590734435324071412470383202904423610237595882151843543470032979599402250084683914002481134139414881072828848499021181035302683529847016322389664305862332884064516005569356381951983855946520999732355683455517815514006072669465590706463230774657027329352044216077752415808068576229922735386282952037193878463980062366990479950691386829097756283342178367051380685145988879595271345365968856783066528994174941727284244274965495280446160081276900319150373571155803076634296540047699979659291021695544474858645552549607383337051669478662761671005567627464648199021437233612189200359821445135201732701000025902768855105472645411633179353800785553092004269597666882516371177959910647618671002196382284127878300201343474147155823640306274556324296107945252609061752194100922199921491634135457740704464852402411373616394549586900251148274308726148761431707041281756775653794255551439509406303641582746502356612233283906342558628409124734023034070689939398331210372995718392655037477917786986747152162088954531849717051548217471959301503961270671173645517050240750470075635860232004835359171564465354747890787113244309507393335162154096011439659913177501627443731514583963933692560065836103519696746311789903347128428312097299092040922817170488335611960778265659259963576739418900380217626348847867619899760385092680002015091899079749955587708757683605804317503681941587353333447992291537554315163544112578167814941758794773825879899638833817028280785386979449660622949544349888803374834853912290126028401411390173112496926289592521610976577330510519430943228669723789101911740646460992675422918212707131718241105326078721952296164211295088122780738455522338439076953694272044135249992813652488338249967587665745536171961411197171277494800412967887465614825085012884798592239555276694414002310185018649122041857275155126643797247953196754130690734737807462634952482476204195316940776525151410816363824144487136201299839236109656613756132394425924971553751817668582375751165906735124511647907671103075012114247893189707072355058367913317999122687418521757059459339302145104741273161177942514837901929621396477427104112027542529388239579493014044755241182512541126912467156412523059088224783257441531354595441433943942228913358375943777418138336042957997217914533684027352637476720880213495780298327157262976533926704000961265307626163857322366788542466876228537592405378449455268387384017904211523516159469847861148228392368111689637644477489248175237893169776560798134753370596310923701670034705306283916861362745168703649476361843931838903353238445914637248560102590444958049866301118018124473522851966256141090777744264746088371894501816889173497766680160470742127584625285509069437181289756542277196159128630351593160401333910976905506695149937540020429032066624281793101046652191923256778433963765650559497476983141022883002748840691277307930470885255863013814373610467640970457782909647360848114218652258269227644952651842346103289602903726710580606576253170023764601997861684880565718690361855158381146134218586754360548204797830049708800613986059198166944748857978839238779847926972434893856379696864253095307741485990349846711060913671437695286318653522231781281434491077077930887562842052235674845254974918174871653443233116881442292332667338577917658172307196798710549874738188753233452646293479084838873375917674377580594654738895405853836477370835733179512481491566130748324421152562897170440084828035939642252881152198348677971071023563291853967839241928481138717578511954189255718496865490957208789558826227293950656888137275582361059659766278788348477081643277751673145752726097962764695075947495137980793277928720365909144188556691551861956662367546561704202066972574333873564561493036362655220890873798544549613115247504894549830356438009565882633649975295371668092185071754560973983608140221505491913173954760156192462767499346027062753318614913594882450639920336879260812197490926466120243779508695644258061805119165437254318528917001947470906556885255089362687658323582659502276960638939783932566837350832362696897474562964482824130204299205991339391797926312417265709085697640709641356118512603471945019938085566675130264248818371336007202174879172060716047298606095777627627902183590787758096784822298989292319919648997984264332396310920556535530634262208153549496950344084020154364420061864433443262757235998129440617883895617195844606554172515396486214882172335207279288315257461608689850145322239243590543376050712538392968175063894458342998457120538316118602255701031196835824451228854375444530724276661853652076453732137072631509791331569806957023418588347918176666219943601747036547397852842362283870110770945266861685537587166199199024047844442783339601281278771817641850707322759501297661948476402030871625093565908736317302295677460883042344182490857373614410170098666975511486668171155471583330534309177494592082974766260905979991412471617475620473005088559780388228219737248211482483543849613454150981078595389818499212773358951069803589817619307513344734974323898251533127171907933114922716058902980077573377612446045723847778375567897124207830207838106265437394963445517458887844157497395306305860661599114999382224328263349604938405279945544499731111255465372790729278813070639095341742245388064428758421375611965764897777604748010051060074078186719324111032293446931963167217336455072631071101613581130806210734725886966638814830753287422496337536005256482910212042357176223576469301182694735618173863436757117139296995467844429364789936684144685385121827901169475752456244154962027081582966204389567243652375558784575320821962864171575473315588116300591839090028500788025307249529918827244336447836465802708889063148843580527036284189197631469292328060503658920145703185929737813888421871349389466921803987253062250487241069586237878622137105099934246152681308975297041117366060112938766283700267190605391923166601877435293414992784366468726685115062359330366351803825016238323695199872614253446231089918905617823125276690065615531005317971127629029905146304633139642472864120548233815749385336013009073092720551426041295863900960101765059849367906705788148826045587478233912503699776940612553463919174976845332088136809337110621759604924835701823866826745277116615210792751054099929184637943418549608889731183523647041569788326303049165997059288733708263988519092101999663535951540034702101254458349891978992354231744082173489833528022648309318812260195467724039630017997200158044626618778854102458130040957333741611063282068620322132829127114042502092568819329820017013835201197721826688858725947181450302578252126079598991956141090397339136286768766543416312162638385477558699649933117786877104373194131281468286442841634810070478535620148194032200883513351246608620248891781345735396317410552308000904422947557932134132793976256471699828639783648169385691882322657813867685700675555601042350658664726422972537576365457114740610527924090211369649905465076348017609186305076085765283480666649941774608186727138407662779747761316192452387144110597045184041987744080264170904156379228491898148546770563059284286264959965337165825928438316413778985168576921569459980862616398721546299687070708757943109508332426826094376557999082452128873031977638579181161720859633447240299812596867740740900733195029432422598159283251198059954047588157895210031912237622437342077670851833816450282687468955734075147369305919295583715290028982850012008372560498494794380705454091858896304383890514662197418857987807112325769383197811727888636735550774358782935004794682944015795493423395667866562974416002526567913522694865481569688846128388068125264013114867283357332867567493210217146729297981376919165830976992136636666705398252884565628717065597903575035402474908395293597653438690986617735117081162077840577715849698219141595075459396241857805374236410211256017644446925213370092175912082311898725947261639796767275893829857592409676958324339327384128559914221792088443956632185760731806683782721808319931181172038578016463794713054316251913197334255499147487393600987288055282114250540032237039094803167264488703475396001711911190298782099082086412731795820230200390069890740960580724562985296925945123626514985987710141456755080495544450938960529921847551849066971517003036032648771736505461208530378783005217366158593791000068982290025983160588998272768183083478097823177663815853568549341424904205367514667861893450706491564282552852255564075985526744638476071013645799830217678674230397111570153378626517535801341034549232449826167063606201942995831082465715615436045201148698016874981749034450955029713116634221197020633486854057962150148738086337482399698232431137521558157362822437285997128187568654113071262080919613326464304660447923583780497154244453828618362495965792405812738955027446719122317901111960707957500634872056724422981276056654884088022819457411558090673621821873933729696217861268747173312702581329132118132950175936497555790674352053748339135574465981114551716984351776166265475374289875285205820291903449597624075582745864744054106414534230577367284845622884831901062420796032416554796366949804366584434667821597272199125081527374597205470558458893791948014023005052190124465616066297873629205819863014696450905652310658882656987991177129664308147857190711278751064686046852166210091047088855009992977892825762433619130569898635241624104047544483269167306621919071925750339679679804534371626470746937477352825896816284229456944799989322966963701061400226116917757650806242274160000797120658109896089000200845695960279673550177203815333166632989038440902463026097263670332382144233845404175370827751433112456037274411071151170826610669169117407197811405146391426230974375413713427425169834681375965284789990070255707638207829661122356444996865606625948557466237385067391808816188404415996343471130515534777480636498741132186735691397482026909358987427954855202662789072782442147616769221213593507386046292085385098826135867393868894849353083310581178823595038379846696039284163474316985764328280916958000972219504816156420620024125322866828465458363934717634076285263797764426955222533469688894858641376773178769255217003904768866188865523071481720673943344270508870897356349914082383370044563076064157920761666906020105477803012380954960519123994088557250772512041161499056451847612582539751243985322420787354547796116066950901952722718317354611007682091747526937346758823364397944995705941906062200815401201240665522389646821715420511052045035386225559221161997597723961175131851745564699679159507094194449037987884548018855079437544601058549927122440668524403776146919259099976914886887567276212707675675042369181074384153268063038690383987447461832451277392938970279696727777295914156149648460637249522848250161286873817700318618058740721013392897603907435350292909832904043434391968041042144123466444989095415411693489790838186946303592841612077838656242379489396618983643803939982642682788489982148700606870141285328204484153468622348349924377512174347050749013100679095341465832453263117542769671396380473013997762884047931334419121559264089652988332301095769697110086256529787728943571881866278810914940229887738464615250411099497191562422859626685811650452065574437140511116805205886590489327001008507796660331301031862756258151711365315702228709683827611590610007970726357168804043763338787026199523588464917369542233921820534788597923862162995717479421144894932958587324138578778828196433783034965983899029585598048913968684446586756723772794610417813716652282782844044279125836884269908541059658397249895759952357866262420607214162241766294005585856964259674970245019062156221342841204691595867132569194989679705553353171837385645621591541042081506617539719798472401436046878318188212050626567324490554952286152524034549764360277824784354871172394146546580782937181827516494936262232110998585044137254612811800650280363013146156137116635026778510989734916895362592859177943849808804587250749633884580399712878266904896031419203869802469380258141811013612795306326856279292053413365728549824786204677294842398268428653991293967137307185087920991843155865981013924419149891359863798779439097006862681401068373653725358988543701485634034061631013147897274398850053449321398588566866396775142790201132907636890421800066935445335788437078020082623767368326415819734378957664011507124890845853147499651871894039487540173243385226649603288665896823474250314009149805165676119011249920490675293598120877007530153479669081655423648209195482272613053305124870740618951926525631216413902537896877882562164065108113508141843021829739543725185739524038888584522168061738346606324196847528793197574218711433940493628570328046452613241031659767735784848757627936884733903963640370484485301673052870350803333961748412913959904118699106033228676876343708933272856917954677297902497092545819085141896010393355764525452005753506816229608083141763502109694837148745199186436222995141613452450701495031658701318596318775417155254238211132726894120238284446488897834820748863949831201099189734318448675233290638917297751147850084641559845645597349427755511401774516876188493903325239142621470558980064822542676755279517752255990030079880144797298559560211250068150051540762280204584273177026012572169112406812670328310702087605143666396669626492336318366422418093602824367893202069443133555939226966109774321495757897854777333820206599014803163405908110268248249932509164000554048933039871922833596201707258438427580119814384486689138215044287057480568918189437129018709233545982120087644437645594605661769598604919596027285532348454523004106212862170620175257379641698543680772648876399010189056588837803524938050753354741545615085252915967346890338754308610706099453354976649630456046874738768058753777071886186456887391611940363077786084300406243668169203023654229113259606060439112502181463245715705080098680078103695455276464963720602572232451911885627712069929722481747979077396109683991202446742741400390992324524823330174737619461777271562170775166694186464096201894355360031551124295079483151905333770867548299031569434300155724040035811723754111790306998908417128178257168480143739724679034100342256580257127640994338618159746864872021278499622209588174824818542641569205553911986758155980935366986556653290140311729351142143541203271224342971639217051158500601702139596195788373134314451378433890088857117066458520513366674475188944924427163491777191860322010926203140944973126326744780884372814511628762785921329034438603684628134676542672341926066610999703952343555313217685334998817407218092736802562160131025268403072223683455027892490655437264847208961460402460542819697172602736304566185819378875621231256344443533499208848956074526071068690496342521749712983490889976679595012236227863455700795062234242972545376663585310161845172013084848901511680035001068857862153611796900705468441899872573934168661735030465836251647205366311661702792888968916305164236029317861061747015214200824728164894267765012421623639849996830657405997735346430385628769552679539161598360104242100924737849961344996805992016048227179571714458150638852946343002970873157451744834042767537798711729909516696176352221081462578657865792909199030754800368332575494599606138436846029176121414041879586801287294819587721286908794953028980320340141340857097659708978059064677751455669409037289377502419086509858769885125549635246442190769893113173530639704187240716228991979369604469842512625086590605586490849256857153816075379609820746509014474784331265396082706453176079918101620868181560906030883148443625466212985335644366916161064027154721870007091962362900505795395471081815538907629846560494915871525301634507654937778401554756672270120123965148992571288762340374964591767906511208116889108035373590800161817986461102684811136836374517875410201551956686249963264643673181924568091157576825827140395557279585858108511707677592390912050468865025916587214650588644944679186084973674906598777228185558213006529505644832453740502226933159952448702333981853245341557592170745186685497468432990687803172435627946216970798167445861909275707539834294740338971695908243393816424114762754527797960004675866572721499529651827768172762260477544528334915356488268816212792541642408028018332632629898876013410950181086768196616289889970510684858542161769761350686947048622183316156303283819634844641917606301895287368194067922737702536346980462819527119629337601357432194310414468113866397714763898521196727021061906375102253475628651786067273780798297636719199147888535511837884882069253545357544399752944833839925260152961114517939400411946009181704518778936594953666985076902555961771733483668650527362775606204522357804327723287837777073293814673537612206509539847557921799228630236394777902061141026703011062151014756545456586708562341550018544296758166383623156483118902961662509060956290902997950272464387887123757714662668168115436386235173149295398438741452482801540124864826669530430671758172866714567795157722594462004593783443673695701814834655233274203583281632654727488758197746683328547526373538382877888733711102125643505156989524728732255032009055582690993480329820943088501329590853637079327171688706090569797286525103886216180488571008548427606808753717594129628757756571803972076505586429299341306137085713489718126153239053096382414991876384699616252471256880050326445115088420969183305926581397287074817492571479383693967625457968293146553838970201007616447913452661318698137383316836464340979126357147235242933160820346740518869045126548137266051797165275214783411057325161343735161463634492647001661199207583023259962696821055522499659650484504559048753953960459066071755144942690486106895816228746109730550064289072151075425476843219070351104864782220883648980751931491100800480762335598044882312954553001390252624510581327200783405964794456981156488409094960466116838616080540137696801424650929247145454285623368866885731086368974292420093832320349807516521567037429249991710776273343501988446179341059683102344416341877550308487474573703993249628718043670257793370556084833330892598665202338862045246926831935435503698729442466834989810450821446079769251225169358735064526521541052659743787178702970981415554978200316363284483842600421691166736240369963615984552593665417437071979002934409740748308448214886283001537653983012931559115984431650205815721804861164941901342406718539449597087263088907691944080718919218148086423433994296272172875790481904900624348451948830159138862326360775685928459728915927353037796693307054438731847624080398514935484352885467404708062763747236445109910252885677519173646752735518905261833411006095603711657014393975682218534264175623648763812488499824801765735125184664392429868764264492652666944056535321635970939232420752553089181192669157656787866079911180407319212041765562204532959766710963491311519369144822946660119869826209430898761044857491147345529754247015574943988720238556781304792483994578166839597847452192237006832035893228636455497134050173181682878931578027846803321641100836856718128786140639117894399154121192354833365707663574413252213883902327032670523141949958492227577642969809710939348998924980898751624171343549990256182860089421286767029235617547724419883694155441272503985068460415708137259432448554016311808825981152411394012507909061563028685108425028380891869760484311144579635664752659011264818902494404496816666928859145148590128508992666415078788535672188360743323180812849476301887057475732078596832047070882009707764728318468162112520872727359015197740339516091909682415398214682283776535030580956989922235615307102597169166069871205971397474393969214191860902087554530952847311041719171094909116985418852161656165689121930138230224462981826465443937926340360764613673533692483606428185721210823213937246853268703897189199388663817267742225713433602355615944137346725510947438724864372350863269973582778287528073009478400523526731168308288841825869955292961634429012065783461520478892783796381242589332817970198594059141430768882090694236859007550850994957931470257336836275245919176150565545750051348149639966647116147572116854947233575331644997256642396773857087120240241327205911541331767042525126405785541769797473720477030378445075797620190024062386054654376359233821246715065092250927992571015182436485563349495928796816743536452000558007717214503232215539944644782852916231833614062803786426735577767616725569994927265125195959533817180502303974240898298403848306747339410577142198441833601413858519799192189181678558102006068414503772365806374258026417009874982245160769620391148452591896987351894557931742589802089178426989404150434045440563141661014015256782548268444997075100803093257284488798906081483377729436748665570699178855037131795346858232261068501312983662101910843679306480115252370395608153617480539088420948582350294110015965462193686506494775728672784829548363373380109739295836949830981465579936605886116242643339492811486898313234476066747394537116229561558480204678567114269656217538464163094325488574542065038115158963004818489458833408149599045998180809478753657238906558129390513085435840762748473845063469233652350348074937057192734144087828796751243808932051019044207966535940922866471715976970193448737744444356270112875055251341724687054808818813379654208445999243183052255847438513002499445371259801637682008731902346413494118234228732208229200861561092477512797884574819784252436038262219985016180251777828334460270534983617540415822760264824625347744648229793921460784477051154520720355188170927376676466944478290849134386188846046656868653387761742327216132689004830600472147764370152752832957959102162457278224617472785137508064344493569376374427987676190592760635500576710577534228417029194273415288666121803362759947376485218774593599919092704451446421623304878483665119909268173070187898181963990493254205895557819296469581681091481995655085036907425584028480642269423875273728470112373257872507347256155085234588584172406776219517411468673052382637603135261509939988136215035867471150790396108576894827242489522273047339397790299573116522821887276929366941838033645499932564678108009852457496664541972213384249549242573668784713328248001659243268055956308556876730879345195906596650067414739482424961701058864050745095208091077706517928658635166335146836552606661366136088770101551501689163966456230990369287798792907938385789909130987988305484517688277433699619210751956914085869262276088426814406659814483906911132962272783782990554710503167702282837696780340935545824734320381231270191278353971592499160591821611885319003707766869367147818024516084641932275379670871589234901516861990293904636600863971977514881870455663186994466053597191757319685725226600447380988096261405827621136012014599609892338377036206636030306275314307845220429841100524837895398814749329740422295653233866933760531623926902221383879697676901407602344981906865841966441220661645603891844663739654892175445132646362754314641141440464939778378892066631791450568725987082165316095991883149738756130880685421423047109245222010217459583353305671514915937801660377026297667576502473418996913406105508790226910150912101928058925816953526986757268349311381200818775546906985528213541748985600040154197724399051427496925110042754612636386277826125551090685147274486571890948205354068661133560452009299824342367126129462157650712111797513087644323006198969390222521485930221696577114418302657257377930189021842483264914452128919800190505108992050029483526576240143826151463750382084279401371541398452138350221722161622241094796935868763922684842599838043531775168873732837225291038260213681310430972241512881199191020885703845058995489654545777758822450618121920574886466791257885545697017944979272051788906899196971160820129450265712644641705132319627796496842079657195880675545376530038233153850697229602065086716171033688281587930299559645241448319827514133588314232925343404246931510704290210057981069287838280476872722671585670249266102231699197269262070713820143873246243498482674179899587997509486996714905683358049583793252700266361832787749782446218109511780958100561005301870599221748376224835796192667096368785759596037194765643851597346359228069101037405070857049861594159983934451765611869436336872801977744845763573524184859782680315333021091577067313081764440570490268476639328924914431265781375737275154953033312393680955313981996516617608254792652078238873027875087739697894096393751562292974428936340805222365205411104914085250183428566737929023508004203100333848265179178933826320435168038440570066834907465647366364021646640357836565361369770241150956100950987484714146298025756159026433448452846524955478394292748174146286735165399603008723022860411919606629802609280062139701903935284958935391911100295198587777132848161878596987032114924586529278955959765391931846888326643724489992176376735234331665846169962524039935513273052366721304465723267866907707003083696666299939060857712777799137476297845312117096736859210513538811932483111095683493639142434938786387587996056179624122551786628192295313809475393144418110382622313253215412580310128289720306312479518257148290385802496212859186970495191955080182121903956411341026183954387082049694117634037280765501850285452416211213343853900536918088934743227818263565764893707930119766200033774491652356052300003217178359110555349733779181220365632201417901935911616625194532752270765024795982962402070199418930333946417999284356682408987956355772155410719718867795337362321108121277247090774932652882070318834783840894358217033294931682563824133354931934563440735813080678393785074821604044629377241655157563171214397835375690764396685675203398765031187888703879831667214553509275141927029867168158882387415673634108882441273331323691523197587166272895732495583586456772728237003993680673295442378591438710159117752940077957886018672327462379953348115670375898853352294455489706342875293676801543428769385208624942509858026085338091786812320859501446087928366261439142683382170126942714700879664245854884684088657162575459435845547645527165736121642299347892492320581039356299993718357674835614271326643592750692150461803215925022908378456143894031643111697628482127164712296208654363830121176327947727771321033398157457396544715498839270039477305815372960504470619788074632399952521993661855076157994109131607569902000425246354862901675787984803914905989279375452992520238719925447701107032294291686652927259505422337360222586682931096336539040108014992526854857563654959449505636776717889121348480998546549070279946504581184495186830969647638294448483805356353820364744870996025556773514533969099919872393952925301103149814573003225838827472762293978892257162823197454652795798448475843891858540547257175615025939231527362412514966379294238916268087559575880372473049185919928966032665222445201942143432744883083130230641623439606420883737577086093840862635861475448095229218011058519842458234052191924536386672197603825346178347127292286882723078787837035277162843785985069989036854754587745915086176231616253697779198191744629897827386590231156084331112854238447184575473566650970792672838261809847837140495785048880883479923083468579950072484204092059481929425149193672981615187798597020389713629879322864886066718772359813205204205890715297795926190689166999270346003019219454950557941495310651390191268360164098898718713580653508797681900627241311269838821788573644842957435859647272816339041493590732219511862887991321255462302792907287122753532746152031476168564855058944305206497415266201453823956646558175162157769799434538651801278656009280116781673895037713113565753909780583705800120890097628714837906564867403101531928531409479914163028673012793108312493134951376093172567858973269863806072474097754780702577651238654223929406966238861162765507807556380333209873609820734953527660343367243127250509767488839659307710618087110474096544512868364377014479907431611753589366364779685431293000346497506777103512087725458475511788758340362332510701680731388332589274777656298960488355498093412625001410656400633045319735843694179951321107915718800512169836684834203505926928820267132806877045008591476991976975429320064639580533907922888623573207453383962621741087365646064422787772018169086867216318993731375711036120502012146177990450016588792442349202569081318131319949127364571609857947999857034738942525014022021226845099602895927692829436422047925849210574894493387789244125436020686834460406341711464047239244209509046206706303448038766042355529653952980202190386366237743079887114180703916665117066929649730414627132064593652404824334330479590249861456818374418951774569598866513670544447916472786432112344147466076431199652669183202189497699956039421587809602017608473501695516326613450791903328260524325091110593325077919819549868179854839460321434288138658413879340861662708279244725279505567727643379226629846588004285550528912479689018923515871778744708062024916137678469677843010918255243228035647305590396674151120309365534899157944223268892583715934528771352575351902858718024820581356710709854295946480990437877320747725214560260709481975914514521215163714814590582041421020022686944772215175647344519252964775418658894202022227508285186428772751620759279396381775878986877126881009032035867559306821617631226931994095943668939155091936270903449453524719462402785287590953011571408542274367623626875170671884765658686873938324502990536417575022001966713767953978207306528126391705657454107456007742062930887912494032026475950151918950981288450962646450521390370578914140112857126691208750224917551125492529667493581652071126018638550513865516903994900229539208061800194870670722998220886839915450553157094607538076415997536058301106115341872867931186700162620914478527468568757788813180168531161575362818509074753336865715881318543810246090764167518660614501024741151518306485091739146543358970790440457632015870477208020322722404876653463827391380861088810079262658863185120849220872367537241861074328705703190853005224658704350148435319847334617063749655221066654245885846063522591716713485926985371100076525656031057275253259648254391884183487661245768273556927004433106794551962281439703197683996314537220566798144654940723111714724185840522797520660599707156155427874892287076146591624485525696740554249584247378176431022156514106895061321991330488290813191744713758652652645837927458312306126012775357750783966328724329572080772393862938535453269253484481469770171576462988054514424190243032055481394009253207059900402510147229783082620285643350497055918790177884988704430538253697258446525873629556177947990842403898314935641316076068940600225389705242129007871941969404988976536021371233448417104617630411449510676244950634069357086951865294792066248494025082415796746684495936433626218860132880259684413972162873606014099482930743658799753283879104534044361875454391511213574704467408910757329666590211891294644508891212119317560012975828941560294977165206267372453702686800949634402971082223475413840206569314244678165129922844784594794257046600618057626869885134021986513491238171183195181055207752041341668429130138928719211090467301071762425423548351089019593735876325348908716836967390957143813560802557899142347296389255286135887845425780643856727650393638326684630184744375666146376966807376898856143118051177021166659411939362734544046957109943019990600781607642714019497620150809370275491299917426485626347634303722821940303994880182501219444884739012417152974452089299204887470812065798219834716695776307424069393993447946288987316187844152284032684203863501948552657365100725687091299151344514890781307860726793402544142073545422102792962647475530252252543739163520863779077678905028948898675679772886256921840339599563568538790802357638646837282647705200970630636414608611332050855273501450026971179619993889471898426755006833806542457759034525061947922459391657883125587772401877803727469730683937139235401037808444389518649455205404703548645891470171272170342799635144150256393507519996014580466809112694628326283748104336144173535426960099890344201569008547827046788772721939266536928242918796617770449608664395095311291104865521031265121592339231816651860793879386508837537937566393480127040505048507253387338761646536185443879459779910961246375964146709392840047925540789632962254109577037014687526166751434409767517566314295921226818981827781113578828099744559881464419468176772095357304603509238749452116279117788703158787105693796297176889058133791740375777342763292634473312548529612066700732441743481973098397285491292997451535049619139722281030066501005321815477806707858906514939657899101309224670072812954344421447234229624656736398005980699452169558615149283855747479481071237117843005851640649930653562761072441553615373468851983631863530645275703625701533967843737508486462067600942749451560683992594561355228200123676537573196471295761572036500545101446822562465419926145135471802097810509660106219466248208215662776487167405977597165926842091347188248828711836419437099763246542299009100686468248418015181081970881918149655503901207910658077781530526140368907425130032150976046419226690658403560385141533214697990903851379053188995976675580302402976235102384942088570193718941413322175885340847196881208885107879797711550039722068054704579160123087110887608563227478862848338345713748939317849178085468093590962947439133298646567818163780829983964409468139278776178514531409922033774389702816935113266823199878825710368258147797939537058179676569970338779822054195960415271101778367732923822974485731791776476706779384678982811152673361278651751101748533092601908438021033751329442765161146839038016632639371731086078324206494021566333073651484330770422916469309685820401423980405993848556880334394945926135793866865296193684062512156556477726538539924750757635693532028395021927111834399021974253896075795299827429423897199845205937346715160298097701133547408869964209949195831278509518831238114895404462783587090843294203165553651968727333730332352383979852594280192593190747211909183019559451550831131882300942056377311970353839091712997444110227729683737292648649704970071177403291698594013564871542315810261136368692489636071968214632436298393792512816299901314651701338551412540366068786979619178408358748369619654670172203479822457549045645145745032463049237532610340940823713432519980536604157236185494514332040325199547065819235847664982167960121554862189697118524386351497057647570886896379364999854649325155857498976150062722796648324995815930158210450359301253022768564054091433587620462630744342614884398511672067321456337617179322120025159362442377671887350312677358573844158624066403287678754132301762111414700406703342902003982414696460127096246695068758885058689226531333117544471933649605794568576317370638253393645856273392925907132669043506074093609803959071089319332483840805577747204561461062326587623253373559396349275701917201180843316683463969214204128882565804747268559863652441331429841801600858941178789919085027628335261394119325363132214266060814163602327955190072624357342960397345257757610523363988364006311208884918714248833967261431656551698104585604737639644853169961260446519839669262839009509431595219031283722188194384687606634717565148642184767026235108163523861082535554912598449875839584231381013624737953856700397981594962405991433499013671277789627056550590821960610750656424966816063938920543495196091174336115956119361042958600366413694540396605927139041490885623805100746422494039141417048963880202518104048120636534683019371745022912662265141342283149735024636231219922884379826773591218786923250280520830404114660725095580340453503712042599873260394664027555128164968187790021830695619692715932393092958419739446367658907185683823116860563838550738905661571149287431818856416309675687949835623655320319972563906919307794857058314603124521253717895334806230109014158679324248393538134512989201778934544067817856316582686203605806134912962836435781995042640227693031037158360440406753495150403507804543425873478526653363989491633290508346255252056787583442827383451645860152578396048497228970957768219504243617535716932316612428428492117153484848155763358157789843349918652992732367925632293074297652638508232028035177111782552393445016950898499957196248534556316371853377793420019864498757659295330704766649394054134332284083676606192012875122295690968194666142700233646437536511906236302850633347011156067851354659689609832168835403469328742999970985382058675243575822832339362220748008122287295488641068004487516026589743757901740213967768031645849512820170512211851907176020234343245898282134134397988144315645753344621746833633263854564529141108581373229342461166575479258429690083366366401941152903738964719884916822001401989542881008017726307710828999767201123913166285973202485099160554306220599266857919062061774793847198896541294708680497235057773850571592545425170327167169094108513642014386001776977304741986563586762386372228878206313540021109092988001582079063490554574230506553389016416458411228341590904843399057168151054197935029386778598038191917004747804732732038228378136594216669810268370704844797593289367547211818223352161517043861706025401014764538045305146301967871946543409041167084328840558641218012640611873892834073775065779103602639032001283021712308622685422716075622230349171302285067467332199687767829329676792582913938907480026794549774398713761176875548213951194307922095850183481380362704593012854122072747472619793311926125100719915177404465756815415408313610991204582113124956830945971232915938551100483360750690659175168742783775189950632965672852086919462238240093537782879770763813156973622323281304266830137635218825353057234373247304770151497517875161660705507626613444374299767247147613478826434131506771319817679635114904661922079145069397771100893120240745604083316329312011814875122732418091626715601142045489789665623621070272273965994810132063995271433660959987071782280738666936082693959259840265436975182175103262576711413456353280879494157018122208819700369530706211310636121525578951209188609182367541914939033769650148649760020455164213046892807474288771160511485849154240304714163319202959485775162760657254052690769223129083914823749804807797449145992062786436539706929193891121757919460283279024107529515825693855085651444748485418514020768818476240003674590701443028457393271147322793676621417814334457158228046676626856960121352208779657294278682559922330493877428699307124426075685126804141013003024510526408587711786872397214860345677536288503259089152801647413729241020183989823481208595357187492106631392535196067281797864467637513386274753252082887377887407543087570109745404344592024747850925084056638940641392475801760961573915805869071819495074419050747434001190174924963699768000736251653148824777729672359552383554598422638843875673874955930491869657578786055189054381140499113582867004743026577400881531725086769945802349317556904395848346155095569172109922406093150591206863624264069211512316664789727353123904159384781680726513261086773182377696288750852162223368134166287247997283237327802731158823185417882780805201726830304208723122907760226216243357556764222151642985047931662375800439174003993919416859133924734373227201316124411267263305152042281683433762810492776846100412388174178106176286571542697519245829403115683338153655630872949667327654208473604433480380569496434610467067655477314889633290947109644985873785748504331975818761413249344345352649597383245162875148182898885862591234241161866337338319245422985354099729088645748322962811641611634705417556507016229156398625420238133719625228654994080976397916979774537868504169460780242136705409929808605222989816548117799061753438233505812189261962811317558033337760055436261981614074054388613854144830164048129496702460313199035475904300361091962021435131244722086094760368901519162481814181840038201441051058233903961007121107725497754800092838587021587166261273382276546859423857030307145075729947261254883241382778917073641841802113798483799810874925098005408929133923105000670023822075770554162420100169438481903001142882927966224440627037547667729991963726111345572245414613140675918055575153641838023487519187097566455531938657306358939765612883501615440033787323867510494554449368626096445136609305633282588134626702102487730196669246944415284324378459971822863259746293231084828266848895974080878951394466950674224546885775842062220758918984139864867163152550479951371985121276638438850438713520278541817480873092120163245982484319010680171788638493061652370303312906914868102372717417156398576847839733572693009108224153074161514777070095559562391256838697679684081882160682948069558522158696419249702335788405871000613203047283813676524205965038501990311405770545755553573245706955178441685084727030332900826170589247426813804145515808427752289603982072745093890720854120756511135225475844293572133879659471621222621456369144161150154077357067896786119816371072189265607452567927668870362493689971291774695023486055778251918096583394233989751472532869243591575176699934756867223535264461430221756309961103475616599152069536454963432590651235031774462363060474806439982962281900626941167036670335495997649213538691871948486143448937619678886575360525578382317519842949449614953148513825054322464415695979613783308310835355692208480109016593040480481274376164517689856417668541451519223432258237493252711160823991363522372615646161095291068904713488535688734807272010001605680602842825897636482802369616206513935755946327894214878948560481069080326506584123847297124332305846860218795443068321083477760109955524845334966336457196758698232101752713188713555573617512875241004759605858991483298215453124858746043281541796839619756666822569029057334959988619603578512248894279428210678341560254322140787034413668035509792549996243436180622686808204637309558516734933058500204259056612412124963877168464458818210243189523647147312196091529852860240803323555540841518375244695656121835198540127983002732299633477269130140362044011022394108587124324461334711916024330441139992320496556479036767373125506952161362886704004111174736023107302681981586191398329938659714114243242568378703453257109680284228361985822202005861581576357524269134961645580507869116600381178522162961443528158842952964227109077773669032222440094495397937416632508387848670801087361944403833768992074731753150238277021937247395059386957804502868652903829385207531966996208799377524959022604284805749937630728272724701346738227247515602637414271397100965875367274585040175521103417664431159589869954505701177813370870449198464813535620119454058114503271191164165669900684299156584113147951635525113767934986559889705630964835246058688474216987792202895709098915196448752548014167211083423205772940944637517157702467195408988290040622954622516201113363295364781338976450296537800122026691353784507476042225431071078681289603271251300272128015943551020403974858019498645366696208490334414983421627927464469569413723395031074134138704806543636591127397187034607759141710002414373285054102280854162679357086191141630215268025738654320670465167791083310870993849606162212407034338209716564249565597614609701270129601870158336743528495962909556070767554385232142699026718358361268895472019762032673750189934445311778104908316245147104738517974570844217414163501444725457057700180386922727433592095591597420662563787606216038900010275660400660138814754658629422681154271013282270362987293749713618774795291232262624541310875318281008532901466851243212078745275994171268436900977738199776522391556496399300228561784463298116353872395221387204881339548897974888049115946421253442625705118939618479973212417415932104526395777741790767919473404947484571388106210952300861571000195274821767697889100397760071818386728347651404833884379748956764862992435931513172026123561806764772088812108440091875702007685189609737385155840598935846637436774325722170455055110935432666514099831149084582458452832895051586897866783961303975996846053779879615143492315149905634767907745306710484540104921487200426805241041952516484744027601315506737757185736300897438088080619242442569421906295719462435539217697210490491609274431728714232243551302268373615192407735144081023244622892463307779697574190778446407203983399993542467101898566098473139783327300357131233677679326539248153335501363563049329617058781384753976507354929008326174311102320866644171086106304760918354521138308609241869578645320956399628563882343017404970726456470141531673872374456896926022710022256988016765307202178170758006283177381455383511799573020389770162763284286902151536151117419302078119587107477066643048115406810772232170805772785794097387775115332120386521352768380308082206663023965105385679101870148898517109415350962309961819196835545191529153073305332361763339828765102911037918154439585464884825943584948100014845367783394070905499907108564138912160054785454391680362213670259012693921421122011375741130337674182087397596304310723513224132443425417930293669651088263065635101581188818769439086811390198809861499143985250985760902594171166413026336611048466657585423756210676955825393481500919603910283348578022747063936949090664160983845934205140004199002828310523402834955539924368441738700118108091101314512422271054133618675359262023207207731811632588830733049001560454717826604671361881337441298254006741096139856697783913568890852336972718191500792032357368288300563625392110412546789339510922762536065219222104349421329889601790395665024344737071942353094414556504725879281553144884401761334593577936784532586030925034816775933963985016368922403459651661848423619772130689664998945891994792722052797638407740702426601334422413319513166890074938152421469166898618122808727515107317548235178919049813237318230322541184529353931825071703797937160095904716346305670668275679979149091238031175382800222969445663862837832627883981219356377360441288977852881486926465027833815521855548314852590229057738199928235717633520704478265626029355154999199937112991981509067882053552471770873309923744965013720071754058995836561078704023530262925474687571336478297557200873641954526981924951269199167309293047573356112049504124826908046138574357016341721439123303866019681569802782919508012394448089183951320661561977974230040190909890827355731546233221741600296768063777816952180064173844687289848351967779548773732283855359970575144099390719819930964174768860016665301545558778143378007706255291629312209650696327983327716437089081970350186982617375659179503605147684256477882287123892797359505800247481302718277605599538184492332480637002810561799158627362659592634482720047153686911811690223406063078439692761233640481295890930022122317903669182262927290482465373146409510866952042633732645312613570245103554610008384324427792097864301007642850190789766548707211971550219035727117215638205605862002583519569209385437607413792295753410073023080419264639463513997418275872016096332600767832472137026642530066650212463345591948490690811519332737847464090529617037404157496662175075201891456556340384502057484477955914403663974722963451337387980133745425348073044747996555029905936382677466132038701018441689007288253978851946520121954580779568861729134490965853293778186304324259765104775841573363825853894882344229089414586106638786390944614284042562125245805933447104115461584299541721606870013381490456658021028217820980075865379051303026260130254261164120643986029404681908506394011615515261945028391360643131743170061956633037337763016316946913768102919026261205864326852446168404320789512005896165690276893702835236923371900579860437470210517772645405674965141618473588935086701461640775082520462739883777799178469213107571537466708323414254362706707720203781629873402880577112140436714961313265472178244730066041009173181425082330454963521929237034877804782596443763262192599089630022046408461533996382345357579915337367493750541552317400145588949422731208827231248025129077192081280866349709703070489675068150161420382236129971998027233891316612104961091086550300534090399884281026541364845076477531617123118497621625542174553406331483377709737441600163983709614459972632692443958278695784505925558718486214071896357151852520895653242265541248694033978821657229104867766935370880486694436116902319159537520330273700846972585411406739659796795446454748947021675930442630375010592975375307210544891946456464626035651219938727162835942163117134564735004668470062004987945162700937325306508433764916898678762804562843192348991423601879693099193886095213578869397320833737162227966910165494357302110937769204634041785590285451871484771468630373360849484018818927052982376586934739035527898782503511600017842459322072690248396421641222592022796550290288561829118040502390217199839065428767258111228668062351876807853993387754564087035332247612296717083206782301090676967919996941213033539747347175169027939208275342311136505576458037255956647149043266491301834344146490681781271908065563946117038740304078446488118801387166410013903151460107691397656112285548346741352769498219079189347660581708933343280277654550602650039447839093111439937845880062431418815741536292931326781139690066480825308691017458888734002896699769437182710905534106428595733984552223340900628644320544831487445603692072022484799848350999101430803911720907423662060486256670113277563697828414675676038282440277624648381589717988872794259141101591196815520005841836819646630983638107272983354714462992690136926012341106843027869237627491143026793435129845504124609635729294585850635680376449684034873157970476721855288552458629809260440237069943920858278752366177945317703158346487369070048954144716695834014826494255640870096731308128974899408630325785500093134813899392141805931727134091945569530739237900673967888338717337095390352778645152743548494103344656786241163822462930251485698644444383002703913529543838769150703160044447604958794907306324484344108622867771358273169325366797118431601031847418348885903894975930540850985848014878523029080826209349728180354017342229080079500238437767709913040716650475448685459587352717643382292382345535038574016317534049647257594963908115235186715739975006078486311874769707928047185214482160347300891886660561782801533978770326602124305284959626602687403255543158992058407205652358730208139860339269040022956639730427174381989558287328142449028399138171844900417745766699618540606717230405551020164378687615044309698217375378254767598994894359003654743965839838466628045451001545989057508537771252284121779939809032255826648688750098960785343309465055394977930677617473260058653764331513659131143712982017632672538199622693748079533780550170594974517395446372932298619357134922570399731959889560759328441727995638967971673027285482029951693828052641051210844204565826754383667425755884192257947988225979365026233479655989674178524617815474423674534520616018475113037230134676527173632127769253049691920452250672270834865117433163892773732779529658222100167876095137195899196283253188883159195815679571566279680366050870671405927248850416331326196653130083702742027276187638231995641758017086912445066263480464950367036919121154345811137577435404678324200803470804927460955371367595933334978791253180674039396873705937515449013282646188693737940325428832371094039644137510144144489381690516370131058804155043438691848564309163150557009639182799114581623868863666640651565204482557218514110391800599756423244175192291167507179748810538157478184483388734585554207862311528188032444872219695349350788891150006288103474290727037145320764188205567324598392738452075295690230334162133042953641491440099688934213375833656670489217643149980980837466031041203415224869702039225118002434098950021951917700462460519577811283554922726782022704931332084344348517390328637701132462126175830905920397713325806300537060209577780534934586884519647277564003473202231385728423810689745063275590519600226563840044093483674560575713409301307681005066522317214809575902922646240989518948199746272590466452937157509667450595601085359463071603470380283685893468430760027430757470141851626139417975979704181755484432118326343433145911431002303653362580249752336167174696906105332957598269433802609230058435809058583446673345686055126886170431015001315468613137667126927760474546304696912767525391820752835667500745056075219346394832938030194431672405878467766132352973982810983120284099525181653891614439797344760601985228107274194743948231550458738579872717845219785370251752637799226816463609300983573718654357182120675872877892524346692774853995835443472393653137752354799094016325442854759799017546084278786124740190888667106316883999265258165129900752133249622071876076052346001573509816079770846875444052254764332863703016293236507896294935483259626537110324110690242804725640681180457526668884290189550034309365591124348299083423251160500470236340233500248974100218265621797521421632166100261850650452443695070773453886792601442281652264698341625986092687277121975496072522687360723890075742625205177997689912681557193734300149290817692287760308322196227240464349575578212573614588915204359455188687845882626762917019560635033926697020189822287924764150141863499465424718517370737666860260574283536225952085992265293460617762064947043981501914443527865465405896724944106570860204850776909232830159197023704360173620201567159600721938019227620937806648054750806099203293645242879858058708391878407289540377514738879819072079369786580731476216235881273880712817426584823631171094971992877079299731573567339987426181587513699063646721178179811873461095441485547945098508075200228421306636621594503647250568471736880578227871853403572271368329796380857387528892414440484800988220886424117971403436656632367089079465966930301168709966910389378159735874188788005490835410080595999428571455065720642230379062710994154327615331224364709573120802140359793412115986539157818562337137528674966573115873885695517959995797236349027180801416008765850205127248344425666871484988841806780006849235176990958227805936854757020166618978387025915820520430041356533393617389039772156439783674824817614361460680076160268631244787158196816095426051458722359164192937504525404286614531812013312523886354919923682751975138539783016531830695144372932352235020492244924066656971081995503415076888492498514224852786469653469185496875360840535439355516400492763196319966602037897145269585307750639356076610232718764413431013782773556492069741459310350528766075466397434467287380374077249979147512429604063018901864756170778606475562193163176357506443935748494054193910985029844567652133826176507832687368990985868719011884625274134606200368990152581939869429484873792562026032422083427020330214495071904537965615129641687084678321857032912293730423027658692970481407485484152197279600222440132799239413621303252790719312446096483806435916603590745015216927503134431184773072925797680287459687063455327870333809324244316492413668339841281824809038453806219790370217240195469232828986986983484213645867313941012860009265999245959635158944040848280900787169369420500304715330890313788292479349821436242446546713001581151493043181116084126383171061370400338051481321030373405033093357280903856197853922252993970131936085252937808387439659211577899211777890640772059835554534686402513446024771575374725510214221956519602631426449406992091445567528850477453939658718830218583049315891740065758394240744869913084949641180117439022223388526499573541511307010893372191579618430772931081339372726822545515928056388575577373416800922673354138705567327052209877367438634077226575206539771669361738977266924042692615388624471888683358426353902171241971855536443518215007631908461306917987937183173274542809363694993495062173116965385471700285327530231005171128177021152758723847152731014258965546404827639177739600576698096128430231119852099312970910337767297011315601190292362801101235819297805637611027901113044554804926336883874313013336920852108985113970888634561338080095016502050957355684718345618578121826777402820064272385172083429760206591203669426890374811506732459838647205651427571394465271744322635909961123761084907353811818238502343001636515058033797433918513664727098862911299520930676561033931436245927832017972237476095094252036309839591707512776860183744476674948259973022480491046482655532677361807324359678238888978117127064420304490492502614110085105540073511956028799379460807631747460805337508266628374609437504724392984084465689006933977234139905685789789002459407075874719194180952734795454221377882036820226799186170256459239224275063811696382527997891407514085142038890368370196866138354167486847087244108586449774645736160440195309874144084317544970434757150283559792412209844298812888384615446995187369573192516207429208361907189469371317163790610233126415907714934318382852242669364262472228360629919127351935826150509925966083655397942913507109684642373562515452850740464800641036711134281840272980200836359546894915958749003464613944329385366866045596632789627960387444818892683522736795073556608969678343234751853695507095492983944148602937712054374559440555159004032298712906217442243219876438564460479578311146012091703069726578085044268080708999838776812224839599301708655257916316122112557995527689789622558798168125783045229618635030360092958611717958572584579385712911551292046439987974570007230504507322838908462512815120137875505393932007039224175646483188076192144459019153304527390382259994028283179943886251981551021000142605613679104819790262946665963934743758004012127557936398210091042274968141585762971140544026509907002782621877396006065529956231459862045322101042296629593302480752336836613886116421241548414714634787060728097029213638136780897276300873710698393287386845543250634227665670176716127749111105011028243333994430437734317858922370501693748127814536074562435007820255353854459900271676578641786309689654530719098253112858334900055308696542010620082997936153003926930089393833580443597889208471249881703328961445471321210194754553869847960166404375176255945248597745139354181127278549401952154324460430841285099848746692698368803369185855759816105433877845201048698974557409919333769089010910692120170666123135998704769100430376753259197217772776165145053025447174832967867964737963569091066342030134776929005062166326437179339813754781128939343205351316404304782150715019925931679056262500127889982386361305292039073676690554126135103502463302977024261043536395121869832796323232734450184324825163616240282177141639832672784847311008094323056485754221914602113464257940111695550685800218291015934951912196884553528559987704391946775524730337469553142018105685631602926298338001529636540008264236065628192967104149248081978044774165131032081536145749569832744615502490217165659169235227844787258830972288549731588665436872372759173447822626034579919089409132251575913262513243340535644919670131839504354423419531038375709440072119250668866009490640963885989288536989009611668434269475186293748732951354348317210979086188332087102240005383967551877191943513750219326713988342131075023189428191369946236310053000233168093945594731971977970060859014949169546327703024577681070164179116982190308560916848438681739168523946418173524965850203803752234907418529799013483091963645988936747902732393337171628236914947494615120252524045894004946208674070761332668667522198140841752599879215493187238986252390457746415484672168812563689460912089860295771235063029892068651380804690435388173197080797580479414297700441452399719205280527727417339367818201272772105931915527331720828294189082222061133394933475178849810407756141661366764177553632342566644057871712355599727098861040048801333366599309775186360932999864547773843090608769432783924795373886885682177359221816581693104910150909344684118366142422380516128368992615349403657025896930429163335885962774086383915977616939740518753413470311650207509357199013030407196186561334385300296420886196285941670410436757642396427545000851670487847223664326852357978976927725842425420163738433761234884766588907345190224428599596374322697657921361476839598971662357449983014689869628648781827194022217073477376484216669935151976324427739132985387662536981928846119033827367794731557678350576296623609036986199403708969605411346119489039057921037649703489606017537431141099676720101752915152593540218215687060558471303527407806285556706446871374037663352046015958148197539311412757109971203893081039626969717261389067240858931905327654909292387831588018738530578427138694904037808527605871698063410784811923108573043220910550647534427943607353746823664308714782958626752375831291136719439901147458538281383671825281769428774153470455272396479349483835673832068164239238845984449297248420081845387943185655310708317622458727762784062387303589269299534589947076160934052662868166589172119179200131378973326484630788282180917750534100193484799864670344931656527001230044239794623379511012790867702904752454079393812232969190775060881852748357904921275822319716276085628528567353280058856380760296035956040769678036602069094959636809499740642706505641506041426723114941002109702038573519264337515457370893684293678118169774004514215571412978057169217131259614654645178244363764197310585746978961835234979596005530319311807531559378729199960062776881981128794733399474520108204022640376759811862081500243643784260064130581376860411626934927349861528759801222047498643969142937598384726093501594822374726754919937656712416771519892704097369267002668737640650042978162435855782575772102302217260737820184136186105015875978410437909005376368782017185655293888797840659561801976798853525978199205580321455912344210528065298565227661684905505179192529228732928885566316334608433233739292051783463262173163676792311620093486538794439565245998893363354098873436358558942486973220251667013080170886975379902815286817466952651768892926757948036171629884945764605376972193389490953874508905323044744679885876852757412686937342565176469373070719896558724584137364642257709570346298111406119709614207924626720559616650506571703386100362206215250887141747770055194482722011987727537875893490550255956048768822685576221810809376386194688771852118794670742227719977343005542659263365136884406750000369964093258103722908361203495030256744482766304402023114992858105825307565619133782901409940427473218640894360542510793465854272083664786287592470860399811720657201875997606765192865216280540647704942936958270798812736902807011866325491479793268999987568930941403239448185407244362466759044727779626178604648145336305347435057120507351254920207495916116007131436211435410670754767635565014902407034859630343744236657691066850251633986715848211324901886722655357525013495397070322050315739114731895593046972341186429170030097787317743386017873114540494873443072859161515893376981383612214284619939068074788244953359487119722813658473422313958127181285475000896819073702828648342693094821857873412179769523049545222633899223847520817818036372771730502406229621694138905547708397512205908819506966874983405242430165739557052784486341913410691470343894636073782502555403651124179356546599249766323066617760542668392805613080945929476360235155008956530273169649098450018118377766519812461436272964371477659048131964621035450120997715047976629525382508904727918373781883224322697050217924775684735257328577306495738340894546837488849312699473886879293665208632879053496551763327938654208060017055643970529267858682665301397511927128091666985879511073234135367588627457008504178056145013791926371294625452378161057041305796794777114243114018914759236297150417145521253899036294882005958988283540016404525673599359179301981062283872852691701371633177907920341039958831922020668586076859032582776232967741085533325897264384495037123165431624338941450089001274870850826527795427005293426781493296970790206655695820970167071374206545151904537258731740615629574313631536206726473705522156860728419712611568242035016589816320629556807120323139464856856956209726414259536487810144194641894997899064930059079204506274574341002936810385849242360656427067141723177294722279892183440814855359292857665793290006677730323725532262194024316976660950547763971553339214334128061115549466509726409759416242428029894210195964660325705262894851556437865262628936890686613972348116002588824849398285782312260862658453469039635754378363813574526464422779276878264176896645015302223710622808449522152892554615941423662779875936669390859507511227702437040011814132323583151579604688682818920212989949216436294075497456825271144560274101814614023258539680250948063171305027381585304598882412333477493802798301516144833851844713633342736680891432835001093894577146676133470974459845921569709740388327591746933677950212355560026899037555250089290220674964472159073700664176047390581399965714562846656877945649334227763153450954932498904287428357418131911504981540022011630397719541833245424279531963730033246022129282195035745332667843054559283626829725798308034797559525824989085964498068399725605636424447914464371599742952773346075226335904456974391454746511436953477080389748331833156765003640350183826215015951437357268777159970752981711507161575309247452331683137838319414192339936435765481778822075213503773900284347087892276839860001769124760948845648926420279883035334290558434105714120827358591597553805171471195523692166526182158107330837505836662095246548231626211149572771315267641998059792275504903610340506747396425604642591290764468545872508312459329928187407947133335360308322648158939016142434320589796877134496648281085793203952726666192541213039891428282285074590519997514209971437341506518316059957299263545626584153311122663261582511035245593239670830532218092320109714269308299248568919851899490076644119789304680749541069614766024015874908766468021883313560876553864655361145405371128966362494233205707143241798658305872202377074120304332450178251856966757403449025655508420810311232129365610212992417201539444874015627942141447573535723496902594143844772738411838609251486280007889605126870403345486009000174886780117123570995596026300527009951725538636191309176413638134198847625572898645480227101674271974382429002879225534362051958714729934665479962103782019506926531102149955334838607308107231289888856586901350454850222127387368420101570472761662564938959398620365661922937104944328348400137703768757050825044291034114514857946154926254266202874382277423319002347688627807030680978798682140493567755651698712879863029450339574007970588324646321953680459857154002376264320962164590798879904543975869160868770660469831898164431290750979651890497727077410270243824520540382313211094507600604233190968541853014196244497056922050871519394247632397290457205401540196615255373194134083449269240413709498016130388667753756639661266916707350735501941332309080453737122415973397737134216307290500939441417736052663793576985255515996716151431874852861226415631396589620667484485645831521703162605826048375500139844653789818424716100094319979756621319407068846931833276227797760039133356000363845085194142198173674725249534151595599970926679586612107604265946977674609445852235134431525553533971446550045004095216299119121479756065549949659188129443836040905400023257456836046230710073603335366652600932320374920950794855703103569153599570865013010921211864037265605285210112568121700984019179890577988557065641384913363738286813738994937322890683875897160474685733900738494786598193036056553785648967900665267017781391292135437181541125931748469282060604818910386847210018743054136607350917752924927137539429279757028740238789965390871219829910675785894145000349226656776798125037325652475332080160258400263219599817066395059403688227666610780202955315830445224136933785808455968078433152497812807113411431045269749701943593371350535979011859481236689465069394540670393511059079563616738093116924169195298302227358518713605206565945402355232833138723251430449206781127586845999692279957276120199141257695284019819698276529903092141600313310964852895032383143996194428218618154389030696499583087061251248718179085623598065297671046814429311876617427510285333241225002862009576519028243097069617034875733338468456257839141400905093748098533409462534202908713763935005399610792714294008313096102873596786935748953239549422990929286134276597544702384550344831173461429749348100608472033393725285676985551480360812944598747662863256985215296602861308566112432951515563542412754470515826340625268497333024349182722095131046969238943179436702401468361371354834710622357922417751637721923733933861276066700106480003545970156319158685173958733247469837346564351289121263278257030752072629984753698465543080375654117816395053541761533219346505978512033892168417081804467540305797204058258088495169002126006291144910339107957589100145309320844080134063879668406292477572912942035458065134084650001321569910101840705862870822464721118348152897642869875866174549069776723630317169516120757285762934624495845258011120538839025414561137010411294831711771812817181299766282647088251984767862978146264658780654506627527273969051273607662883553892817598777256825285768976640847507272124437476872469446334482922334761330065642949649059348066680081238806267596701208802517444924974033383534187405900305744339383007611595350806787770743874163744830340786255072272867880017121691973133114176771366249281032663567773949036722766875091009517298155347090927221531379760513627090362460871742427651552817163561162124933053499278183085229419920922149512016894901317336046705238229695077696241296525543841041599372917342280822902596044129546702749064034121540375871282233454437287416560736347622263768779230671924552712196614618284734175748601662939387189839149406349640692702293194998795146243397874183243727565354746787901274732606034981315863166056440388653468310523333108921067164045387315296822317257214086620868782245259300767161164508540081186355657051647225936954334863222428821350954791776619965461321803510119766228808765733884748118835510583919599670843605262231913873729500958015083769287383785625695518700562416374996017798193509765803812999183261334592557681792941763047006492568807798203682827365966972985624542501891139842329428207921375691582662737694240541647772097074077337600636842389768505016841278000986667973276671199573949203576474561021477674211949780072773037114853698721751052678783667260589805162568808673262144823897235685626986210825250237341709955215089925107028766154787685893683906241489483035049704400504158747303153139371861061586561771164385067094062815152699219294470328377665521866788792282358031185784048106614785066466515315194598258946575269043028694806270920560473220128983615035185034843751874022399108395327455446873162471337289997512274533201124510290793247159806497935428103457268873536193109058478972134662429005952680619190499562092052592704079911350848227502323760143172533959894421953661950926977664320155142226919353835383923618984680865524675467299620246594233585015896928491726205179037416904135438392187739830014866022897252353501098734156158472269524410398471965499485114979352859707229746169020513695000360960082688293860232547906293708857625559047656953982053608849129866965187578728909169052903100464528190933378090369884482288371621999547740012268704471421925976900506728088384161531435726771739593232301968517452557457583805273902788056267192753530870511863290147349354514536733586178039044641310135472297501515709566648372709601797604502385556533029971649229731850842432524305104154785943249585947388412123115845223209720050825386426663838600202459263519691201697827366689759651788634694788654296550836444090315736086852229510592368072372525455392768619503286408641759488092116011231784238366963838746787396588030640718264998316554620495221826232917376533627109131564015396369135488739398830973825491941151335040415188074604598037024294256653512768482119348596637223512241031110816448862847464393603836807044031019544086712515233615951524275201560226843167767879380548827560856962017470456655393090964519483563495635954670327563792357605393791453927346082568250979654216971820563519727489151991018919817548148345535859634474922903270827120576137506440045154005212828525453376958041642967015274640380226816010896771565771542298498120905020180296840849283043719318942662598264531687001318597470802337344026938840534492843125686439130591601306116126972552064052187678635957012631004672913757819414995583527473200958179370663571584144948452621239734779928986464988628965012158354425972986087463558087770424879465589823607052868913146552119378488447316510260524218460733274911966724716709933737243407465301410940864794394248994211752992149213331548041412054701664558217671191068296069407675320803896502828184384612826903019922054522218101987761441428490083717756830448980588230538457488228095885158673568442546028243924515544218629521472877593021394421847793393986994981230639020610137742750895035441038897251954383653460971940597355778716926119340684077186403869230906512787534249141116793779778285999947748485278791096291232170031493125404758755762021885712351901598785504593513360809560310831443811317670416736096259476365190010715104446879492388730791778586541260914412869025266222492996406921074454368218653928446197230427092614875642441130949393862063406007282092641075622378485195749239680586164732112985826943146807879545495924225679355785328982459064588473058740701840497110020381138917817106973237646849763723179612701350435608826881511149905193142564440572308982649247927864299481730711398875697460630254053883059857397819180858310841377950145684204956665597958772520443771148909332167959325713289463155947254536036944419260713169090839307731654787583408027711330340056851993784640478329271917526359618801810400268413062724807531815122830373609152479898675829437258313385907086857498769400958082207966400261713741794580757051522097187176424723400789392859694396163013157726236675369776140875282725285204119300069162929567301551277032737949206225046960869569697465942247535472757301736969108839310033733745394264750421345490830483280390747976680393847418875445831953054416225837446002227753567654091481572307259460992373600126111791988174679865467536683638782793476875531581891413900151022458660592580901152557899978773597241463055361333874417005889280780215879184184013054703570372378066172482166277323552228999032636993650853801377604967584094145639155476371663922069920771309522406835787749839197580128654018340928012142144854417986531796910606621573444753878675244113016468069324206740774782822491519896866151952971708065687261981958818641652019942933061932266232897627644338791476888356371099558162217008614176498771530186703189321438273393596368642171376518927952755831762239156708159878332513242287767693409871774536870313486863897955817083614318898727501295301161092295240972993023100608544502824095735906996352483894073565805609801369426992230621497075221203461681067068796972741550896346595902290797149028948915649028386308462238384838532423709560605827967756098325032252740313744462372719897563209958384852549925564200530042825283618784767788743572165067144443166152359516037075400828533634902415541177818357534329401305025069500158142860561950404858785216784386411956446889855078674727562518016551697206981014789245482302375889484774903927468726143953469283182236149978668706389625771318073077843413874094741118652057034732295736007704677406820744560884065054865158057107270538613855373555342344715066929130987218410960361055568702052205041890587190841850296648388637580110799070983742952517423104550104668903513660268718658795741218069640703787829574655733866955107823655985393974629090475871158055508163681011187443189238299508331581961332112084606511125681327998428459050366382370162633196239769569818548284178502293270484362155658106568647095089367954523183217617369442179496112913841378669732994905764319624488030866455461183593808956761357889854213574492249344773541677467551642420426008149473284490133143408454622622470114867551770007702557743461029317597731492103929595381338630466254481658859440436418522171100441176163972387683690508240694945573454978953011583144922018930394997214939863730920769619089388161538630970557755414865016805248695430722911997924346176754675089473926238722818029153050549655839931428598489858645727191601395631479208177079149700310440843065603582678217069274142621073055925688023923160391253351380079361527297087501068523861057557118048172179881533472830270133291760478925974865309007626819679249540506337900029965460582975333070640371699640740178906934359647342737954600807618676239277455163052480448887150635966923930808518921546769153036508331852187533402099747700305735492436794863183410364994129344116973595018456363560745068754274767539397245042955631592089623396988015791711726214744529401901419343952942213542205395964002545775653574068765360839136022451100156710168010381365905738755662129211986570846710706558581161362433552756794075648233622669156667269746973430819396702842989002377929837952122400863190057066733691468118486906692482434897155728399932447240669215051683357755644544375815603395849266693473307585009012542067735515843741902350561801725686314679552815925118931929990390766880706256707329459885035823885624924540686406988901687256204564950633000870453122951028807972589323362616702664456874322908768612507616406586953827289114753059156600422003511732124754994038647039166395334393914854135191222222808520712460604508521923959040595166816745000542170319583165792361944296990749635129834394391787302881722052740093306051700827737028090513111798593706712735539407416992922255244399037360245995407189001090239815280910033509799570392078249098784829151745439558400055619421889793416775311088516658116992443645782435659496697575444057265425737964657239731839239918272992850178361763191720894107228537813581190517485392192642407800276329124334586569661209947515415555336614461251549754349560505075614959489640480345737685526558072666860462072446415425140229321648817789738038916351584507957042925987693128993891823943487164346328324677375091587089263421068527602748308607842155240895222385919194320996665937608729101190448282468651565035725096579977147313256874742460229354580827097077453446425510960283255017767263691826129441524631888468943770426819992938240341814217097116778027173004804531773981057686564648894299087634066271966167144046029169169735023923678614384991260716880531769161731407552484768734773151523277191497476880498104771491044578627999774564325209904129061658556832678278396047745414774756470108416044393440224787894543701920059764120557906857189546928485107637453635809947549746879261997500275471425658561950673041736669725730797215976583425092131716186320684772459115872438194187750252123864485962099635378160502719930208724070696869588766494298867014052590552423009739611433371597723764273234676139012462393729350182554850460915016801161310450164140190677583556782980197727079729166708279074955826898774003512670303532977596294507458622339125976596143658715449725826625832009163996502333928463663340761347691362641326826864434272316472156379733436168179858268400938360744998869478859144213365354248299209456741171351329906363086061660937150232252004170101607414756916337642991671016653587062409135344210232496964748776433365989805809144162186667925011221133379605851921423186247603248073113970575724072160957114036786296711879378752644828303762137934571539523154808131442555828268044387416817730341233458393940021058498724415407195795925833884807106123175292675510292239859241898298933702599742933081608030329905374102727667898268537200043069825591604718608136588692892807877638088330147190511498646767741097546937046658575815060147912389668467466541623302427755843679616220533919075888160619431513678931804996931635929457545786917583475989556882044189538938799556277411515881768700317801293069119969873743082906839762851509078722531265812008954674102630134438125788054661138792161840207876072955130167142758557923018795072191072155595030631811029401261894590607783512907746885402025792882640575335167357293596614547676348014857707699353893416928247117177322518617976783204463151683825843777960113844992131374773880150311836155835607564314043031237394463600991164293656226145851688500662082494750965095022467573528407020836400627546122847075746744568463380465704947251465562296650408393159453418317177025487122297356610075604416233644958458473545958305373886331411778827641240695876276235654709051435822690725124498714664816256800329902222479275850005912111913229219282739904508273758948888237363451026145315580324772950582007502696600988001766066079134494714451237873531478941551359025583018200104312799733010258967524145874926903090797470320458273378103553997739430155127572519525458269194696826081681739697335328744967940854778728987419850800429607682429124131355465394684468221625990329622691567171229117639280308768290270476775211527598154261132276622727239680304117003798857040814553369677016991118380544625918585390590704693967769475886424507504825305599628043603299365290401992466744294320652082066095152585769522511668387662631822106471421770117130630494967489750959240550227689182787218272458599356886979847575276042805052166529762854641368848732479626160045462063704585317274019981112790827752000762610102386653416239504551105649502801348890540744507249776693607330880608586367813185398056742281764774014445422413906700937923313277249868765977250830667632516967187147433487018829686241667003413529779934103354052793838379818748590102194370878707752916548059540755982077559707277030318483500476219821663707633791023554812953898569817446728857573390202563166077826817620078669176031869409455519623123054337598482136048881881198070491186009091780169551814548847731642881985543633222120459067352181033082457660224535983284798710096883436254941112044465395230997501699576918393983095141810434896518968407299231130676852445850450266203797736589361823089855413946402425813331595832131916885617369286324177855616003881834422611487743922277164173644260248570628587009988471393867731081697819043526318896526098814627167258729204312846152556723291186031682103831539098693097794845982114699606786569421042158966481820174751505667774244035986819080976338524897487344228178179917498790610766333671338354583637677261703520426911748059053169114258326067541322830501564294980664516603775071262371577392485829847121987102838476517136827243165868761886305118046972861874570301320764583154620774015594738059625408152215707939368388003258503074778016863049394448210007145248718220274816003767339626508767959912724686849607880196374036428305188281167433258395322419252178916311663966057894890748860400112617095885562678749750030229648693935207496735188185541765153514162066169736361262697737131715073113611998042753439068438202583649954880113103187439098037197568300615769949287957271083618019916706184520115264909623536191304484323049512759118290221555333068699441638189840773203250044087324622533833586438302564994968659271463530962878510516783498119733130254416219300831743451053574771815109648690589695905008232990355201488889412381305680771367115556595564289076311126325869998738065455454582998051143387526252468562125399660953818217742035602301486000577879598813271801415468906315683805955292671212271463747631235632403327249878716746289524994975449087693956506118685075646785254022651585338999493934741360262126002911916714199047382406463051899588870554384892702014507763125200023229214736283247212825390239691811499059006191069850314765530221866412548396129528736980519137820544470824727386423866067604708941048918435637629036735419788050684594528072409506576684143249025741762125766622442442275785930062167269662897414316256252150506764382643397071508000879649829785433412848982620242180640494614254191853627428434008887452374935465854734054075662231883096740328370366418063920602642898308941828557589333762279511253692251714041988431719413949907419256263408557293194975843897331423719850216490038556521611387822448844952083213773256206485672916978144473885123315317065395320919690283355245766653611909073549990504089295392865217108783862082100436546246314558786620922033705250311410412151402276279394820568942553931600160854587291891345313049355447539605257766924024238054089193867441834979715567257170820424754701569076605553467115233998740352534628113796004518277115705512421957464504202663359628570010583862296305819536914670054654810017433978558336330958575828712300171170438229702654579445786225834244364505257577077733759206180140809123443071400617007016065031964942864112689998213522371476234580322611973142035246315818679298236248088187033080169869458533320554841651609114655260900113631972961062768133483911781972730714964080152492770303031350136185018439249333802035572729340252386672222784965208152921642643586041656370490615375508488799207510361477858280242505898054699936968021657516216352878821585115542958892447063155479807488258925249502034766133382834765281584340206892322992087739346428204323524587198779645116137474126543603531432628976039096326930993997105935895700983755620143999533686823370690218588619741673889427396104427896446578272099331470313181668623441028900970098859059452966566574110002368535400807136370426565289960312624095585354364189432141080013665149854545565637807625079107601721146656366445089958240551240710581439461440884742637181304361589337148638884198594481577873660842589287145097150531365074230246701994519245087801039081470771062575473079056882304776874307801281641232400774940317561743523336252927682728255942379753692446028351623538999001811261351965178070893035882019095842916065904216066877641997211975828591931624931848161036893709308196568910898667654152120527623818974746687737074044243625792501107351639665572269675600253700698057365488039762904969407504452883779881527800551098293360400131625217426672359104893551107113128387715462283414157251673221143718691504703491467911100370528548034560942542415845131998587567913287425815261435070180557349121372682528659692760621032135639794338479351030947713781071165926901803805677663535555080291808486818415482318875284651040086315547120658363129374925098455686141859909991595816846683027768070253844610985270148810122058194118502191930134585295802940140795301302370373483890835520465138945219095727355517566273838510051157677405047269241852425633007297009563397934351951032569583963194120760420470346460776092279278465039567277974092216673706084284087628543029628962568158182832640263324179445115340288370880320671251410408634702347890867806314398728471567377654587743401394911972639179511040915167090937779211861236043498321991234234696769739512133202831530658197223926131367890936940081226271291050257493680029960759612238378408187260298327939238563245160456141868228481166122078315866564260138900559927542671668782979143681795251563491706623042493800246439764486162504806894568371921938019338763368398788659061632327927983266479895334860828378881304231890428556285042278763947190008993095203084737341676747204920056187343249183916371847068706401501898712658941224411867851212291297878210213286016698479792348240513321917124158362520298423970100107897227348872028046033325624675364282605311895944238827276492459219314555187861805877320143285842981173194913404472412867926624326132909788259634319665078234815537338138526627611745468396571340294353324835132702405591707988507782714532655755695286945250384890609911803007670327531595532259645781815113346787220467372424275189720361711633275814924822185408944082954647870581356502901309980555024603872223874383698581185747651970031038822289507322707280209216452266494328556714253579964732879658802614341310423917132438926479392094018044122513907076540474109786384719669630911559059330175591817041494678637226107201279596720279185970890691853616967574392992399029254541850580881340651798297198667534414064951663054086230872405518414636378044892552755136972459559094102442214419674003773329129856408665209629591626402279343097571211274739104288336783406253560601789366626943736949620908772946427378484853473987349537299201805237635100980443118440661910594821834502197582981000837812904230487280949708239784547257059892980059209184129905040023068450111623563252559585352039353239600286625603266474673837800283953776910883923689740827629827697780786945904132343381715414153169907499293574023480085271533011503689400259987586900723273109328252898322701797717198652391181691397899358709212116045279487098835552650792292385888265269347403061367346190066020342213207592159356855644648456668570210565671286897124239887803555520493450925303049754568116477961334774770719698148800198607339553305952890558973510425298836628782576213109601425845027309041278674133804118427551977930256110899749096190547424002248617711307383554167538327929263655418229152698968245050146094448301836099697689341425862174891475780134503219885785141016840743723948255605954872968108964590599557050671945714245610270085066630595157575538868393009384055135451923065022580973948823824354506358218939075712583751148228589300349278447669184787592350279440840283297113844319903487877452815775408785874470959169145110925895263844073328362865321288068469467435920433803934350917544033949461720766130708841152153839164737078883720172433244298376936781167216467754749989281736276771262507201873795766181863233102841074812365884723252490626236667462812654887619426522028284405106256267336490330914092593952601298717848271870697015793695652825005007194097085775029984532236653729682226098897130979507739941824663130023100319856215472270462104567088339380502271390121907794231822431113246691615563933610787233265474668113217279295667298586418321550296327078482573195153561259665228238279359189532437069255085771694821137651653727250450529161833893084811250567124881180372365098766776440275181876414116735203030749123912761473397536491141160046433819232245616442200657136159329080540449874650430390180930667155740057159488040251190163352924199875441131789233832910705408292016256387888880165008990349184805825970791559560859168679047269553531243829820805760109217219759689615440191322079170946818132597130546958749991046751278143914301050751733936122882884408737889373560608475148171951955861906623453456008888743737256608562294284018818096828678122349090219865037877294731436309059384997177610896891019801545055411065922809514050997612350038759686475298915090665128672164757441774859577113768047909323412313791652426557549983138043169743256009497919519280831121673766633204472656108171833537568073670235596641508784274892334960421367307393472368764517635071330996487152898959088305447165473340725115200721249383953713973439572647565150747037833355170731377228598595451328551163655540288454953689628757037723534991361518290872295079575164036469379016528963980141772835095426908223641968135544154445555356869050554818352667157271408148256992321180393888346160775954833454749037589509702317312737004717528700377588048176305355511441381582487081769625099462364733257584879977680733736073888566986826052647307331985872608300972246879692546825424247698989784456194555075262159840194490546571940577881146825143498303392104754356379943381358266876547226045094634334835648246928618519548145305435383777234433313018890500425343387208182691942816966172800500967983606029207359460279412176447133210555415111037570677977834911511697619102413621379523491219841185458724468603835589727003352357884406221954347710351653793083044266279333600353427227900350455723787682729539664692745970344073141960060373815804296441269293804756889693738708247335589335294604607470950327820932441916313361620760638653376636673566482755565543884983237902697013270354492748207548557397691765218846265075467979542129250222686193740299643788462191530081801467822574892147635047082656088523588263662280181341766564556731069068724831510619147864909245109064757336867412788020788302426741779766239972245436367348396919241863282336204755420487571401228652281707220925699587443402421916717939331506288277948802650857702483264160920132155451120176690584223425224521175086634310895454787323896885018940577002494819415457081908332526902605587971667961823298752568394960355757951985568674806508833621146587778375521904713149448942293583109144714287662897449714253973614185535262639607880176867938854753837840723716589903486257220673756895986534791247960462738590252945777382714376240702361666676749443512731743441323328668869463601756863451241759166991775394077675844890855805233231314529696100717802128388553196144691724498415550706255065142223237541862641511345817093433073920960824190641985740672423335160436360484460542810326951065672008364394132415095725346890589415195726836116996319419653915566007826043272263235751442745318480240566269580533905144939369100283314840107872571738536267304685617901267257038686390585489451197968733926192128541368747768443661714639631179714786596533971848777232494130945767743713113963503914200147927419280308281464741512741720129908370554768907029813386948125863786159164791131190579584304785675172531531989119694477487029408329919802370194023214253782795062868276468008596278985151713934046367120220927307300386640422335366175067500338384132254092157094524381206443641697634953176989794694265010912114109692137376334488952677971051962522805528048726089949827202933009927474563312921758525397654301842057138781113827830266679957519650035195498555508950270005746965824391216953239541135048655797379100144626717772056156066251556423886492204111019126563610797786906042665567295522920060577011857757001135955976899155902098774161659248836477829553547286356558695808324816808780667003085266291619013624738889907391719228360829405518116823342024541247594328850228746753992506782996690934578275625694417127009011530061046780025873210721002988024586949591633377492574346609353256131420167411203161106545563896626722647186844145634243597065662859864432929577055947545917432107598948090243392547882567938927092915761554884464476113676473019289730301821811953281023209987265316735925815557891772472774028545940741237731002520038941110252402203172502083924761250151114722838201863505037332793235507876321394611977789994054236231095409572069527680655678650141578414482200827625498946202287286967154183911327087629913493542327696412837232788897596929953191259098336583789540410508057701554635081530404671832705478863160534590925944491262296282357070824874970128250260031517410844985804668009675939137941563106296574250821109459980444725531752431110308921120854423530668113439053476796542214198133003315554129239802783467464396531489282705390056837351658597410720164205917542727799682413703521434096050192971579291709290997638527963105985105590506830492185502125823866078298579167395715028317727090600988851632266284783658288219634785838734538780171209078513648393876933733983683261778425197105884301510736231686125509060896478104534153254748490689050173845100528158822234044656613776973014778593049045646905304763423780524988033720616299748665902567265814882507415926433657073207164493959001459027872761913088075805293323870622504697764356678353518281010272824752941571973847988477117458299108925357332986675445498764527723287653269103696846673251417148896898393349105675039583945388430681749484191092343940651561872724891329907421223684170878819359707012341737229952760641047400727960553057078541724269914928637800244751990576808410893093919264104874960927887949731882886489070921834278287046273164011090317892054868157512578885488658252249227567203203484898182116190840805570252020950724388378342853353094353898561534506488979007363228412932086980876320278787779098931359861847197520422981142032080526229225465983888082696208740267015589869189643345382219422862150404473930737693800016627686424288413183317144327757662808080880298213510338741750832216614564589075399094957363131441203491952281586973446658882635882095379456326974487073548584418881395576092662631956487152680529159314919156739922791846272871010203821999879824867387207922049040948181437565966071827581096715100934761373997787520257013857772661028321685449734726922270990700037745631794141580344594403948228733795461899228100322772277186867581890279431011633492556199765005404024356417878136884064303710909978501715227825874689131247131046497642021345373539478711054361903804900928483532056014707131590465585528187319196019910551987474224218371378491845076540377354041388127925971889436620520065071354092361478041801055038443046554457879157270499249800502486719251049384958262036096002450204287239888974701996306422664382212876500528726100264268119310225523292853229009666502500834454687636859109425302230539811046592038144299766645076964813026931002567729610107114004461922296229524744052605496491660428876913853444939011381555253548110541654381070008471918739726647946544516749619525868086832286210909231408804668410470882812791033426606535286568344809625301195527541096449249882421767704779976416975214942639831777926983948645535049371066161526019582634877496543223783654678449591443603947334992087834092900044174508336977627098163948436855956061806910916319438866480900543534710065186438006359758341031675718384584505515799157708376186005090210172198462422107802884489016292381178631192830381493926282606939939214180957501446508345291126240054483978027566903328427925784174169403116415235114850752776566840890444394709151741866421730332139415274943323171651756906152846574985294581012700379951617100473485960841966086713003471993113773265593713196482397105276470753107587267139867240653645453048090866778543522037488575382923457614661530269137514946292458704599292114585088389513138866650977737367534947028329222447550503697202760704048221280104934605058304948067481655004296474244231196404780814324665480233965292252247244923263792900694075983426285181221193269622139791257809074304979330605288916918222856956010972100731260796758310524676790716097821752592747016359879888897605866101482595046864604546340965988659127260190194112741999322308418698393851420984122053006362513136031221102420142998724454367981269118704330351749682674215330236160133543425779708724087028075903816885677329581174718120579479388277399808449983904119210430841672661618071870456066402484292466990395690878501156972709887096915167773376691247107674361150277548561272199807432427054612800055351100914098384724766750780126506952032289442120880587762189534749827444524375221791902548662769677048273493450042377822985558678780779192624083797445734115816307912988907121932669339393396235867643650643275502809039925169140193399860499122080290517101028713854422495894464482792329117058252959840070272395122822213412683485701789739346065235835409648612093172589620002070816336538725108026446314290342382496898550783453014968287244271487598801819021207443397026769829256748147685777356588013422343581772445758234459647851739536737714080473023335693057858023252525773904170767337002476287831983022334835826589237715748599956966967205080436991190627189796530562046378908669923846690425841223087536655137644914530703066679896953348228501064914356809284440181029218952002538778133074509171580932708119851407335355569096715622557547038090938196041319272850854358832565680315221240059960257294151405939668024493522213581937987459681089151493651241214709467139529214362342220950970678815495089396103722404753438346283921524355669860239189581258261915246523729490435919277955102126084287120393891747047675245393441436398320998395178428925753141525523654170422549277280891871461867617742793678521799073225848295775342914010975163999925045789075739025403606735680219663728460456337232520546598937038376525760994678810075920894442734435434915423320923278446872936623268092943967507710655770656920307987260950456692902400705920242357425210104151621275598471181714816721344211581893811703261012737171213812118761724153963225018426754735280543996417305411810486200833274430325179468148099467943676033569708186639867879392575894541634588499645638261900803452791214912369369491224965435316924306102136692793742677808998962911475432607350870204968293534709561026173698738942975031385079170804393333125118947112953184415672897761333952731428414523531557666513122552097478689191248996672644582096615225345389043941881128411847690383248716994943286646723839716427464133319063766889779620077952708590055201621905268225913950579184654669366190341150395129873888543575366487984369250154629891569133558498010933621395017293727675890225643285507533660439858954148299239120218341948450130333384772453058968162559996553543103972159590497261434763665157985773553315625143343379874514146058759489406515684259142596522236949456498545143843054241160127314931583947252207046995702427696772086998256313433166894119993859174338607628284487712120012487636644568270918991677094346539571851663501106045010495398095615890194874506503584404195881137363946203483706429310096119188163147089859149184673333951551260249598755970454698435605680019980938594160546463076318579585139668404043600178566666398268882153132393910962139270541945342671031905792023541349546485732991709689946546087534101052960483083263797214188641271192092262434070404572368678159824148804810988531348266438712393090763395928737440523000114423229085820134976707198037022099184490470452481465968219758071755770248208764997643909487477704300174939237329198966224657480781254875792407014190360700339857278767666376069284635007417619570649441512348842975433337934647914989183556537202024377887750532611916040984440435043223769999508592942646479789543314951934818513977980501976301860261178528938528188966929721968257127791824474217500351667308780683523777254201883858528124658308018931879763992519329868510965821292515403669279417684879680577650273636612475845203824330281587402484912396345199691717090105117520261648503100792201935975649258101825605594835863940300746526570681369684363239705348928834212699492327845074876827049576257966346149753135275319469357477313745772195336148053434164296108274863010857051980368231663417546670713137615465825539703268309472123504289226330210938134887297822074082368425165865453144441898669970218560182735607210333668232525575013564934654357304960620509934013513489599190123369507868792818513526088528506278499882055677171859876165149052876722389320723387627216000291945284024370203804963914451583540773815437219904124988624907671257571981213312169039284442104655332861844740675503415328615106177669430984823950111523347525012217807238041282530145020309726815513436727956900744365190526324856501361437627261031021418033297337321660552239250620523908928301463539299224825955312100650495634498109907771848233878101768412642113551052878023118267708856049743193610770812269544879531448250045276443816160827593329926308572556712577121206070425515985222241534191461961402261668760735418212891527187713813978811690696082567612078643724000210900237655571020064144389658737368737015418004825124979723782806547255997333317099748451972530215882530546735587127404397123387650023699173183286185044660593657001366295278203954603674059312854215767227733550844353113406262393224282010438224517758941200974200917613457549333319382863733537259362545331472668367735236678342233697269614478520195009330691750263437029069370144760887243161150812006679455881156311806771472654008253297123418803879712374843635895870666620087133798039639768193161967206800251183903705009325580579322500568244258003959667345194463723153446856199003244062732759113148685209900084310820058931668156679952925629445787481834877705298431078958982041422339260898571517225036906499151732562724941220909535965853931583040334813579232036493691201357640480115166689361111321247655439527609700728364818453521114207476378822138864146024542865426374815299698835740449765320559797389844049970390262416174651968973512081787699911827656792342077663689434034447259490528300675802297350383105692263897836157652447480410628902282575778425338494610749706503823643475807954921383058787722034861618515700482052161740320634591855765913234891484627541898174268547465943030686091081369904012474017753223566957770952852569576356486979557259900424481949770020637921422159384709840218616756886289942173629090240572899522445292220849667622512754766178366034150879424702160007033082279072396318865226818005255200475148640380818359009814434805960595429876859169085983167869355790341258476703649884134029921963007537374378642283230910369601392650149677702345416617436000204504390318317284981109555140863996776002842492891760346607363568599446653626853373979661570764766283753478402217589451202603697311511799279132076283623951034758864571237120368666731284363943356306848030698734390294073792606261765116015898430160845492322494306976631644806061883556403227801255585491386088258259582529667616891960283636627441640942741960800673238996117536578573833620690219278719646567845318148023599722479424141322707353993547405287667212400349301390801939548686616353565444881540161240490720661796194888759749077206143595306441201177680490931732567416332476403304796300963984187021508661652034804279376765634652504299469590962155408414484779255847278563897459320391024000059138323449553519297420404568718641861945289756053538362102024957190835663397251733359807050052873161666903782950214859768776136984938031994540278464715200689275760344383436291038101505357766312250829158863214461281089340230739474673799682323777084532041262728513812700213563908588531774206281170725536206147924913238563092738790295497832026930154513676685634265993555650914428958663747382008769666885905256993156101521959323072230542801597178044077982872324829093345656197077829503950271675037955813895734972348416106081797835265420298900619233837579335750627865258874682923275263123898825254633763548305238749787718739920358101096254718879645919072000170175828004120598143427262644482630018575388083790258021291467643270340936658298084359337269383972141207328039814750031109899439345137684101572968394246360517633496964501402700886363912366679194561535175780597507296549030422237827828653679681511286416397346029264282223307822088498561871580486801954767520167537888405912712059832221650211548449303126721510533725540724206045754708128268472812639882329161452941181211119538252176816728875891741362750843300149979252481011664533562741438608832537039104705590624497225417581705912028998739115499151030522736307440053564225966903840059464381954020422315003927451997654771440861927636780148653257842410333243541894261864665962500549890708013721201513785930409237765510012519714547809167820743625196436310120482678544582196183474841567490094827491307804620859776799600159763310156346504717626151848620794413564472759739729777683766940325891473618672642058730641934364101657858245666050898784137728968031164019186965231866209869227585956813614363099009578390413380510647715023280467064256334904205250275111073746948248241910870658007458554991635733408611370716101798523770868673759598946229788966937891800549600772310469023762669605011664856502608035626661024313722538172544898712866762807401279628800292378481068970575480346152141518548277006345018447321189945037785600965880313357687917213587453948106721388698822508479698836227231255333214654091649478177596985392061313220543598479834455856434165403440684680911385255809911545461407078835348795503604116716152694362172509201818286604543451936709906878981880412671430308059403167438296957281683332375942641267331882758873334341505807798194893313746421722427417572776995276631401612805447367521694620867167996097940540266203050928949847905628822765545512571700425591881697516060360702359310852064274898448171868778315059056102728222977480675745980026515378309028608469345735196513401517876391899036170658617201565404856808282882021118435491095141931350649929109507608842585125463923670950937694269196003523736583575263457977854166731597437112735406161497538885437321821813651591648012013864870239814270983476909857733879210045011557258765790005595977506521111726806691187398971269875725705217411355376897459648217636655924439220224093645642160269482184794644506212053919637673269776175438850619464641641317826130853031642648924791885514566652794985486889842844295063717407136980213040644445327456812853810341050564245429869427728701295644165169976921512912912674545663171063386484181272339330129293561201223140979556738729169382098032461662997614341395477114885547606499078538891976211713024267985470409227317118556229074468522986925984138641699402392414747215768810532642668587615717484005730066227367776802548571174472118900133164438490331255273465561660028829985609777946962185199755469707309292275032591714106992147181042473358663117042884420462557070541940601949816677965889570942110085158107457062546793803234457449025189996596117793280072209549897242725505657291986567811829380324075164761051303292233138253484390480880422101691959428315493824539656664092897529922864656481700695403076534293335836667625508471115520130361283517250623785457547529766656176560163894303565694865628738896800837677422447830045425415912081715858427453877605554628626297885121904426657912085788038560721906628552268206827219235814769523470178795103654431687320684531416675296796834280405220505905546101231523572824256122112809951368268708103682705165257654168708629123776997692113871792943196186773248162144139182145514097711204513859814249955866218532044072019702489981825033189446809885315387842656798786790482976402687677514524381591493384385229561534192007119879176956060492084573018915383712685245512596364140608615298435749317248752119829206419852567777882235473892548298263766399464822993366173537662742222952352969914197390101189661494021425017271598437197196330866176604082537959570647551954835425303321948888860591165647085693056943813187049767685625493776207291394075892110836524630605436091190238857872935173356547243010375701629114291065670795811761878379202148603673009207591888523675678874605583065277071714226776415038016810869818720894284128530035753603446238648955007409123992788685056173763883346171664193810638862935124009197579005614698430511930018221566300357331006370042121512673090310527594514302166084822542702323841973933674250005048765031669658117172181533365562214712349611571101270230086213205883285096253714594347658924308844542303536066204736761860425034324380799622664629143962362067357194139691375819864818064176886550283202212088847836193231660542271288219919202769789747167952437277965244570765555516613687998904755336685456740609900879594425508126011899746670489162752894243442238131475096826488235435017188600449063291853421361774081997705550555623791842142862420997644533130259556975875685976551586583736812821210532529141603401544132424634370574534446954868106621273678031453204363360888233873931466825807746784585615609266126377415400953341617913683845324393249780187641715046755671064059810557452812361231991826117931957572471326615511432845099696070035258009442379001630290900766171750079992403187929196006469332408840130773404436000341467559058267760789037086352918336059655560323878475489160320092642962515213285665013214964930831834820391206367515794081665625170764296031592774623185347020460753820409892026673238800352354744728213751598349191691870715385469364159728663433910583594931492342361897018921644788597522484136572273039798338932043395633932793258773359139941611499246092206390341284710276624623266390825170150669038785292555830436602366205183541702640233327814558071854594797850552429755666767404036536937010649314562766262385092725573661820195475805442802988540129986878455165871921629154011669950256621386291595603664501946518014590904645681484015823561842653509487226986546405754744465813858834374916633208578855886103139458552179587841057666552141781017339252786660337642415550143505907771623266262535426913964447771470942923341508962488529763005373983467311477300266085493803554400511683944805463720395021254365579741048373333475282671996285430212319652967994153233987367665071604350003187964675204644455864391841445191004804244279176952798913755673597802441461673272203066398355370360201048800959393771685636692494843758490383304003746410726537996342984182620685565455536791695552148679107564047270509423683737081204675343979426720040917599070657015406412611954189084284446875974028926735856254486722355024038359715000710796631292208805378560543639694922048835305098403784199638575409852991792262635273229958094808443700154257156278479083990414538882610641449558775950561761587323594430996688677547304447181757360624233470121910466983017460524805510025742219364224955175302971238306673981201960928449368566600107071465239563036397192964453030352046660307500113672854842408041734372229673058655566994124851417851329517521712229493510891376531021067681721193459800103891596990527617577181340783823942511524491598350796850200846942206954669308284362546539741710882890999502603222149750030744644191578010355759875080605021337476321916948245100492700731939099179890745897869604552859517006581071958848690869523649995896227722606082022384255312348537748725909753365188603800094565551938040345934753604156168594382368824532776383055034185053275131975605583778421273543007235166972964338959172600354261451363892501210387229283776270691205987819219405404678492352411139453165030557290321286663205189233784641487420441942653837134869749136045316394296495769947779525288310120622548411250938800620070704439947303814229541788165224138384351970135572322145149335599764714462731869651766859462259708748759884888558477537457088485192933311933150966575510944868379893924299646327474500918115352927459431736192632529161568288704584554149959505240322749969519453150598424343101409553428961573487672592670654900592557451362585673089378281392026987761704033846343746637450785235491090123475085640313257651191040547717817678263993955913620903623898466832915790140864109062781070447299007558184459294367758212647822503050044881261246581775189549961008200845911597518211133517235815887844641411217812091517212345746601166458562172080943625855191689868897395145514795212230786322541428884264521852906477172015261080415790820839735695191415574591410834377475538222775127123767358244829439080657424741601790562969584367770012988441236926418567759522083884480516192298461195312201786186138328084856933342154628300468412083073140737062364516461528883300926382506706299890301759810109225777919651221090593162685010205367170897518014159622633207447123296565405480021911093330149795626839364498327415765756361406522049788679576436853514291484195396797516346863897008034009244188833241537227684117063081412735080635919869382169893309934544713774688232268504465344995816539507239459634265141336493277568933106260242297758311546869624148181578933715617211305239612407638473973723065880024952890651187355094763353135973820779782472535930267308337030328666917922578997577829750079714483063784405448403851696310080169565180583541134590423721269231690829084799377670212627618562164479833625452685839881784403041832115041419422614621505279848220474469506812237377378242222178594939473663515621257279079660752790703955428012603067752482206783264784329323763366897842734014813851211496358789026953097757130434011034442157649286997322562686467024626842229026643352112242581657691040531808400627976272038385088937399182648802505927637547171036537806790623453091618077586659687890400907053220088353549438421359902235452850960717876835844250196409281824233789883784581021217225731482356494352047707494083808330610173598152856516945979826679861326722318009944059591464529140971319741056349959069818593807934734823252135130853560170059465974465134431098007487529629842997881333368857427269039663853954757380490091931923295050450402131649885910491433965477705201583478272573879241241349968631773762790716050925730127785527941577476174674747004989638593709027666607322520284401695968093623974427050547822528154446406592772150449541813747241978331489141714003999799931927059283259433974987809355627281931779998919191360508350403063864247527847067074892225301302143615697773436613054838373392483842162438443504076083625080380264613370821336551437474247432317283713225410766852718641702463705798663493262196214011124141767040506009631082831140448209938145692704568523589707658007925530915873354536344205784696552779915412267816307810986986883600866587003832620932285480091193091018669984911432510048084597317802423429725642677516398670248739848515370817924538088419676292050288547561792064673705730961595881743771744290486798303787839306766163903738715648100113280200244506819875874306951297597783501862792014911334413203987867804196001429016922292229831270063986313305476417763091436536913634284912313557007968613352869790638734941360108197017009275659016811503319681960260096578406098989168914316629216545664660076244761131613517863434216865582512835414386000260679524468749735216444288884514997430474723515067676491104351048799673511805065972864101640516602873809579638703946427570998504295744853736650032342411939117251420015888763169269199130811203135452268372625429981835548558675538299849392217175646162605289864587865423138402473667613598399369888103412603168602361018859187083496579130037888984487132622480912907155499552652477285276262579732871053422874824987023106372708700730893795812019968950722534860634688613878396240009838113793911334487509089242055401365007120639194724235737705687791733605774214281430037278140585408574647080787358614420753123603836679304133240859943469592434735330287381066177793251984792189518121599835802108707044879019114778802735367923277080206093387342778070825164260384091249061043072411881953729316320513303577000267927829241517835024230807400264497575994895520543491897983110688169286513356735459313071848861136248935001862906521524385922333952448532216241961170888554912056148738775958944242412458939348434230513983033742554002512203250286554999295017995147649293052087524222892583099416897161274311520677220563603220897834128206527380332114754096901629997287324486239755713910408497490607760850968974921692417833053065351954934450846592809174976286878774667953002432488126310968123141332390422368315417510994108582896189906829774869625681191209346119133241796776382806362146425484565216476021837764207403547647378886549986541896616457017236807357080850649097385560442526896940493065138358015742142585201085613239245662723961994973001679450260612466289573847574781375025468981812290304944719869383010987966853487319850708871391880084344979911329508757432526194395997652632728922063744881107528959824541458806046415231844574756857463776436645966071236547013882452096550046999528972209496742623410361888508841269450176647194793213232421092050898747539259958290471937917169681669051912756919980151868429762724819212581996279258072131024042596810207433529419601590207025251684042943157087414780275486008003051186338127086567342915929801723388506990222717682455515013746769522715804685197016901359039687384523363399787736136016484588473491472365706603383152478505450926943360880827064904408434541067002024250296764128574761136916491614722526003126511709644010822672052419655460054897531527133782249017371809465721485769950218342988483281931326040198693004259746205655292893136719468617889748887554444207901179711750289884830837842172992847986607635024415468211212838855472938606896907386165189125670713295861176909693395313367995353427484456182554262866382712870881613942394379964430933859179160650882794059894730105189862616548711395451118194571594283831046666257957940999169483738140492094886148369047935024237325907489130541833485540522282492448096487414834880341613200345921868139442172958619607104110294178498539329526401626842983981518399883133076088481990622596709237408061262900396953485404148797130454584184977771507639280774404660517175290460287300259715873991397337141391320885428863359344419684809634152276384136101477810480637392822895266387662071634702374731646922576731068245657521874193279735497132725087157377277233910892842103243490661240166052176143188047812619799445980546114796198991423993838619244201527439715499716697515350947463698801879669610496789985509508960879951313603660921196147416173018226302423536337855077682915633534376376091518855626951553506891588625652477789709668458125244739341274182784760600622000858817564405274795893375505366825386565144562345903903908529201795658551658994049061354582689277720936733780986442548731597508910378689460796062219725120591296675989082051389090112744416050248300595641406723561548825808381430367609285694347176214863734405030013293044489514777950871374131418528648421217439287196825935336956545960456908400969299155003529850541118128210332447750980749908932086973824863372389664068813284350587695573870987628808349520610320570561880218580624975576316532327500748426836792411411432041184497689261215186559883687096415571805792493850641761597062930865873596490035626875697108404373047566140490344437970488748587729145308202606109090701992359078825563855118204632684374369734873810657683648011652426128030842905857226669406827418721522088797902880004445363465587013929422382814543054582593041762644529216245632600605909011529888074546505455825952510624069651145152040678150552724576439504440125549466908196294774784443994567927777550635919338611292066685406536571230995474079971922793280551704512000715869701138481907087585390288411641620810411958307090025259708096007052954173953390792943961882372009704510461144455851245876151414958151529107571309678580323210870499108803706249775733568258052166695708541018523863615255180028591164273434548876186989608824158209770780948081181337931894812146893339460444450391389315025541900664901624460733962832178265792229632157269934423594598989569118444777264026283960908178918249169174312533817461466776287191658870311430874323000472028168119271402787521379899290912629929772435561690057459347498690551321966145935276138776362423582099399668827309178722733397035466535775643732485448154936827095663040886982574636913606638352321027281213686859427105000275003240151503601852774971391293870902284683916934846505574727034034253366002993480078922125431094690876744118480802306604784602543786304583960548949781600563043723598540027699677984639024461043234579368129223080147492538789025617422886360688408699842377893558562506481765063873201716011683130634223361253386240128187536953061214710382337347144968261090393074032266552389795195641056323160678281601707259123557870469145393742936581629750540051475240841454636784184803309684852598196113447278145651917243008857903305447884953268278795032706668968125540439039331086053891176789996253271165322188339258067136223967648192896491906692814526738915054789340214166961364472547743426535098192044282463432727676502009445081242736979670845007258325683811828710166218122129707264693207066147727560584014182418252453062774939938403272481015682987896197292337913884726806428812268556498295574652769029807501040333317648780064992877357810160217887389935359320840518757488079999405292673401443405849854574450900971315407934691906008286524465727424728754995414981357474681369743305505271142178693652967114443212801506923460432907768919775136316304391979731287359173526500192108022827495621710517229242733768479561842367303494121122827607497019160023798921422017699170872619302305902932241520826547696086486646667863813954485197975861934037330721543928353364976604343397677059337430443820747385060926552814871372621463422405158154011039282402504460052233994850888070393718520863501188685951049030595922497342930428948607582910926677144568814675893465330532116853376510137937222856627124033462798533911353993803560261269859296101992520840094708814715377831081462675936691617992174616784633602529413210311466383402555876554109465806159036209610077455045636856882729737273543715397463654380143880892866988561329975990526674165785567233776024668766176073335552322236463237131888018352028253412603383843347560144801835438392610833571243678836250287251344902062751609253781189150517919415480383993344395758157407765093061863617810156369477356295267521488792521638421150289543109369320087176959304943975917147104580856312506191246703054414951318158536429846056820744519061212903585547964858257066943645645511327254428583446137027807618954842750480828121024434685930505707397129472450426814177657718632785003695922366216543256056205594824084639573646008690869278773635810632121528970085345315422915196397441646471779840142247867491978009476284865105349986362560524537717373438591597237571966495213500390791462235860181893516781214771658292746416702315537163174474922881680225530068799769981995002636033126332591371308733116338916985613416103113582801973741535369427510193981468236267587808901633747683656001522957214419122693873049515777416018504102693083955724068319142911237871570703456739379331818139584086726645442996181457395585976612806896002939510388669709140514923362712588229625946561881659674929293546890569964797310613522738439009149183329072672937404957281630347465442895552174770532664551023072645595498041140172027113413509550995660823994586682334141788777300870866491575062640414792413684989621020738328026556284309574014918599600109178869576537553236718223954342668464788598915592968929472297976609123339171607773972284471059382376109714569643072389348795039054418084239865795934067449390930434765355750687398779403036890024099582249373116841154166157730752929454190309835531421891010846406749612240746509373365034597985056326961685115561961330814271985509947393288308044364496555859092821612867073751627486296874779862134852876164045709595727624144745418956596747580653758796148663553100731915129004347536284722180712691295427849027078240628363908852657568748349123944640891360002874927308771639931844482420075221391064483227694026112964316111446620847767799205409836749829458332509930318080019733419466162953413246664185463792250090372939188546176390437496310818304772542127508871008181180039702177849851124371030459523462994239514717590072165803434166009764163982471021735224509567064742906425625708579782575506180976251770150307352540026783944599161115115290713080488212582785612117385927897619191259496613166917890277026118752466418351874071946897144910044048906978695268812036053975693053226564322474102494215031832177912866369655507221221621925500812861294125697593337192221468183237693847184033456725415082753319580830517756387814822107267887560977583728428540228853180760551726502974975219979779964133892210414425831789186854954289624209868310771972788068573299815778707479152656444472684312021292153780085678790418764782298616282101001203697495490163944278481987104829809035362022072875800112235372062501702294139284889972987658521557952037214817814638438386568819196590218967863656851770898648081289874109959599246142286275941944883608983948132461209957181228636430834503182966890155390981745209432887891555680567328061660689578854698044336743695058823756333724475790092672602707141165537905334815687739004235447571018924254093820230830592158324666223117117898216060592811554340297866740831295435762238906304353422998720652569889778447295947916848225567767960989120512130180450159611138196209737446555500531464585346754551206429509962594754453914031969373782645961029996568529265240360305014278655506823992862947413931093681471656315907643016389321289364803329136595122164009563959509126589103782835358078966401033025509224363266199202971339652910583577968118191616464122047868510015589569827547838647585956756190299068784623440639671108321556895789201933168042366795981124657515530991706790742015415444402217273457706650385561891790612542099391695319253323943654623576911586021555852156799604460638184696415006666675832688471873506115288348826583874204699136494817331544800895452874071393863780706555900407514581577005815390938491314584556021035382594416947615912264284821457674693336934478338462193731943446492764378457915971754066642873180090791814370639495556149003716727379713571499087772759603243376013396727229151928953068075309335029504054780760431969926784932954660497702329745068457041592072355538617283188703774115425257786901371474799346144303069580276271864021267413057162119345701851222387227119504186158870785162272151446615813335985290497213786362393052489438671744401663501027266159263915219491395781712107280233247588007393460256599055963349588272695540676256848395552468553490386665793191194722760313570855311488449723055826238878800349157041082407616803804124662030952042102752015379563494397764146097792451317494974298366147379545549225665002240280818791574690370161744931958967283409596141532114308045394969081774341108504064866214646485374662899157824508046885714420325317432325905215467854677468825350466761533237395663486924622941700828071909343888919990630306444568015585018947341903778962501062280307113978793854192653456472524748753859982992679591067010195382650144687118978012340533319739856440481662387797847606192487389254022586817340365687619529100006536614815776779107953624732988702731511389141832048289220578187927759151411085532945504875649327435154349574924673687765524032721018377982518666510897793090091060621935786941032847077206894908364819157708544227944008062268835169941319116259889779403908813590378459286156492779892515744696307551973586440540778752737301442558073391707476618462968937164001456334037443521157128814493019262530172917538237028763394249715136090381004023201090156747030958885681777442646882934510484741222407752174824579846097728302677396951122783832893948399811100139867545019170292541562149994910303522024141316612783742835893384824854016262698973913546305377260533488198352038226703472163691279279252357532846359102016973611199747185729904130223409047991037791131308918830337476538130984671962206108877215508318861558919701043395987495502807446773201836312753083724811454028003256362721325982289909191645616930091012913994382151522669545910723863519500830979762847227489547321139528447656373655987117179884182060781014833245197098047347352502811101151151522345426754724850303141196048171778212391294570002685979926544101975770604745906964924636034641086941065275814580971619927423129614571593323850755670345755806216722690433231256550862124233855728122773408365321243177420005947700542194756638184054215106044298140514023517418722942164621444040006846383188079220308440470501575069521656335826279398710272997311241632979631244282215034344943086435416339718893512747709632119753355729425317047940471561433803100622590553799323878017771564708137510698234154625929461735177223883432714094249527555819316077510061648012876102320729249019102817758399127324981067811128387510343032817881242121961127691296254486841698135261261692033546027291918793667395843696344641523889165526675129568117681106518540205803413900643525230792637472961387389280929199055570549066521455377755915679733238923363167947001610313564349778217442615414379502485967173419084174263843844518207893412366171383092880161192046640301006618888762628179512161328677329289482683982833914229771210007623625212753477913470789288900807326952440132058375530340521612588133092675252963777897690141565333174416574933992219968001399537462298477907267484693561144814305748265737366159502561438244672551065545553265319197863146305938267468221886770924424270726490539050851915641468369387863948220371832859271714040130797485393845588541735799996632324036822009135062020966583167903055907435802506951285429508173237949834538369793864952233118859499632978628692180135470873268249373791343777527389107559883408146364643714116694848742172156028277704795423383581718303508656571641590099455802699716493974240040306372877974238986216722073899142962668044712228555525218780315493990528078717551279561162709010904710328487088690247573362279587491322848980519708998051070586026273070411326184409776724047375837811892747748296202860449909529566491496171587615830887488262986462187332363467780419727433132415255132190486886896378465406650804607575866624188871026444512132593306018622825157995213503743810916933521259079965404096114801064364205911553441646439654011305280742465382585721320583121916427926497034558494898090418092471238544547006290592013597209663844527159716576226578393851829094068334184299670038165901572734899903143162634809029315279297456419235922589922475259503234292762217358625665575912303385083883988812163114304861801157098743543050895874080056315795285888235173128984373106031679533370350747705967224086523102326171502446251288550565255761188343340508928115507820476969290200678968005274420438835722942455407982897102838702728883810032303578710622972879075081732541413409837501358414364681467209170630254884745103716468363551941052757202614019070102990725931875922110086499864131817836799001446967643460355126364690544545842298469946567031642782567733438258723050527569952672288521834834515240509163783009950949216489107097981437485989076916728345772593163259665201007655581215700722570261216822285963550359348623654037287029666010287488461229759021111737787089606480116545065861286588350960706915352350660107760453584154032859358790688481250727714550177657457113214521517956206513477566046982989289652920705724786240916124680355479151564726345453522735248580335678046736921436100719629805336345427714435602086210730667232725987448924720582006551321868133938743119081247521957859769862267449410899863628001405759509389832621373602460498316258738829908281272550120332643608809961665054434652571301127947776640252298174301199345087369959389068726809310250027172800895429025893311035795344181391581801989775756325803397763544149062286740409408181584108384237006598202505156245585344787779752452694893589199598891134683658152333693740598135083384389832618529107272477194437134782708016243896701411812929571872626983801053711419242775992515527477811310973205597388787105301565049175747000066578306470560936333880773960272059338939475014633777938355087923128140404345897522758776251394232973958578425613437901898041293907380875044995616955887259798896599540895011164014552231831842054748976688272722959629362776995990257418023876258608690031580701717294784462863471214395416588022973083107888985844825552119558999939804653114625961382255816271186145839421525437290876636399655637982998511172890983445205443753466434417497776927017683431439820665833937598154296103593748093444899974235812876466864972716048672996176592699211213511309940126856638661058583337414694119623801429034988974955852561041767292789731879024497596938437799742876953427879179750961180344378027681167357176163032313058112974953488623674338628722612601268438859723803241412902372244333829620405048431382562701522561411477717217196923404463538923552390666000753559002960694714309479032422600251167515843744916460318925025636136139514861507044411533828773386837603256733616731622223200018014070574455721026407293907244802654197530692077719586826472857678144302493693947673764495753038134326745939369993235253907359656160019546242636579301814411872958657168035490880503019166491987643561528320121134246701244559655176290915232914878054313453997587342440988620708923045629621064486281513186678132632663513983896684814203923574120623888989684034057360384934879487954711948698174419962573519106649799363100372682589451314139675124104267267319244106940557000450314554411644546477102267416802523138114505337546385767118314855621823451904176589543887489599418930716520090258963471244125079819058429618192081941848899348090431474286312487457278260772137025239775683336807535714348266933503976457248168961717406222763614068813588874015784802845288005989749517905087538489779287556439324139440118729050980970322306237345608051871414596847414909783811237885349116595460009830965308898416919626039440639823507948684553557442599817579689526566549430290884002055336155781930498219720738382784458730459127865228382915611681025914809019175603778776629061083612762460714157739873661203534149911238836796372185452040077227983564582785294326097074465093124582669124226431652540624590362540533579257497170604070892595611268393360987805516110932416876082596246039461177786448656550707038586182511552141733491348714489729553609861371826270875320410839085368664068974516312328550168526605998125390237959538988041884580728348262682331339667145887032319756408998474934759843167606667014441732548875675361620017094251081381998208441325347101318514278232795059709101884368539035224872630132997618133884835509085950301572639845688013324797174328494252096779078020075266708166903549729419419362702668047754160705482574629211973277096435956061576286573574018126723123692684243626454776066553986056300465535371638731227202407099693976780888379780619884348448408344584176784883436541862559292924482965511216384003682016243976712878283226774446200598404553898068273438674439848545974444044242680631444815343686252579826739081967999453216714769254413866188461807064684633328772319153219943269331278137041278262243554685312977916819892462615329879815812953368726240532781424447099791932436327619787352397094104529172819618326548405100182738348674169482341885072610081798068601694969374666829447200103949863455064701040173573319001601268518480885968746742262183448091364900117811220802820712062244621421404834347033477708675463036158669970690334123517271011143942692060927297065434849318835308960955947706808506147001972906753952715701266557225265850989752408894049226277164033041877269295731897355233912225171170932526800459576554706205930267290688528910684229271602613289054765127494668823330720861102243682121239812068749371860441983181378372695141435757034942544074790596970831331158526458828602550149737204280268575628588736777897070619077498959699426014517765718637714605517238949309888277883255970711212992774076253699924354777964495914638974589341573914106199526637185849999617222465028723120074322277110102857395745319219223556144244873282543116468358865178511681065711843679437480426184115033219082429417575741810583946475655380426288825107695011437046797380916801130279325031696638984577953632394855598641520749873374850112707365189455880254469945135351327266803531466063567404590817708196440436933192997798382219716197759520327586378395833449052374211495036360448142666012533308753906062694252825563620395825673875237466511355993385043627758184030259385960391354769109906723194368436679452439282798593185002260370794272639446764064874352322626830630999975091912781250248868062380056720400371429770983142848182764453551191480565266103832518398849171837611429443614363100408087059987328069307371622198465251787547962492484834107953362627997460035255531710293620582945170111562093353195946007129425163839130580039340333417455631741846022122721658339673249258138033280044024463195014091710820588987753450442738132839625499244280143399749701899227246540091957443733790116212232452620086960957167329808118367197619766758071770354760970876309630911904774927720287217623985028025421365616542722484892719720838284753706301463201731587687332484723727555205733823283488909759468490151971661414540158561135006935372990150190493108268593857194841034579760350799298176982412657750868262513812079358576962403560952886027718307504203728626119693138767329076147058560415883377579268142073241513070545684463071503970555166044889599530475879676434274713743432604628390658629023252897037853804319898748926380902731821833700455129665229723196519463584712531599554607734002137467717225581756957272747328246041999346651036347873579043103563734265067135184316609726828258005066304825452261418096587687122452775035335778748279356843571424207296250989325650840707422013431893800684052407388844137688179725898275626374148427431159915580080137928348377875661153938854728138682600507691568356627673115181395158525877265192594896186771481868213440870663664337935253923139465931457095991175845361141060572774368859733853746710301339444386988428585162936688015437801935089723498982759366299546082852783184360966567664166325866128111495391549429586641935525370384559530756248576829453314031448588973571621561342341612021838148175196286414098496827794325426413823080829489702683260296747320533478477837014691098895653157922688279186423839899096151693882889990311202176508396817843282613527609064822001549519875068820391049618036981608589127046016483231716520781160825892200267409936032075358653516326277279970915134490299159912642406904238129281908616272543188365344674637793266930964485966342866768423100041745242618441430940155633576883766770347293397049679655581198614365281836001608017818159849863866267357229323205521969358167859136060196258641225905154588235446738457871795464820817403329804528878171846860026763823191265227856885845212513739432281236908128575064392653373198651249245550674869694030941522359806531360638971171863582710759162183175931474252861506138079790850562963970777573821415313468907218085781461227128890915751276984811330378563141372146396357416878260358837027756317313992751157607834515075590601329632472647999457998370403950125087460547333440543972606230160187391598062758197513052083181250399586270449080209342997709467835518323291559241099203136261184259024278986414383402778247288545306934118522410521134228607342059724357681879908675655720321690057809543645032037522268185001338597573305156819617461045544467940579484095910405050373801719341810516092976971736062822428988944425336925782032871170927773235817674468203758759658565572925536892140705367959575175957053343692659725102965921160476973405041198269158954248663701128747780351147835075630590302665039590295508383323554019672409280248152897660055329205799858971942586735209819597756472682570291840547833236524450622425770061461072886874700240575402109782394870230774159458187251389839224931633387894648627734831139607588813647521416088346885701074330401930886878979370109651568524719212199853852251215689294385645478530014129167355881878140105683183232829945401321855581026814626945388207245332552818683456718856095844995970110208301060053952095639819226609364608942824178870301435769811608923350509498534582839665409409753470406410200196961733556746777831099958913803292237503132171313541620035509401163615737867162461076190434638054020928997503697025670703548871920986997397108334289493346385741064337457160273266645292667130367438278755566332153794985457567407701362207053870744591193735871671732448339794512576675850143362830657083056197117913278022424290434033944702364004834813047732666440032147303454498706439601968300292957727137657572054651390349885700709655706622286372453335037600035884580009213613702526809246622838501054064190567473188855515431745393886094815422996455390231522192984553619808430794403561828777172968883790532970855099170887055572735679532953316654112925248637570301316570481027131947203048854924904144111888901741134989899107130918921181772396781514987478672441516739535569539598557473041300175974048379288651762582376461335346157701821046357355869673918992451514211396475298630411524563006137431553842344560202144341616173441122208596214126782343209791739680705432155992880762313395425733952790713716453719075529734280022563083724850551163719289171705643901785769041213931350386287241476281653487539991786091200802114317813851257784935769782561765248924858185594870129752254509438954561925451569117737389645418894752110304130145620109409059390313117503207960449281818827786766244964401273628538592350511763306126627005586570844342659352818003025195340506092089987000044318687399049769815357859632822803639875373048432879167550547008694250112838071006799351110468356181465423246781126031279149483473605721571610845369284442975119785179378780880347961273919639454328889610088897774148056964971838807225231293278751768250752944263723901732877908730786046773027215755295072520629609161920857952186139621072690486769206287535459581054135294391258061623742654190506113056367500609727074332010143728281256311165611218215916970450078774883291487246676550801710473312794554883249721357996332925507038904649982828206640159598823369847095808058444407540719595188260425031867183269402435828441736413394776729643522599837076551457941934897410139444335581185565295633107128254775386056519468441231490196254761518659497092306977251241031793015016366982304588796272150720559579290384102154357534251700005755785261136263323465672929388499163008551903817186980968251475435763923333820826649606779247917152762041528976814741493143646346315464589695622648339377963109615019998989950372964246246544672187856020223957932796528753862165513907432579254695469537340165701697643631026026266284163763939479308783294207869280753497912503948874269358334710964993164497090428757288095086746278772803401485817567283573175995412565093397765613939286408713234059813187985865224679749394306309298974094713844120576817825612810527442596019161020365656304118710014107772832497462724029544129557092846404189069595036122144087376444834372588711089229002819944697961526898984412661887950238646080157865204544307247855895722018171344705618369436903474470941741247355568475353325053343454792678258672556493632570111496229704238608334544827543035584130218482202533044607226378418521483451525584529625636878410982361885644231873523262632763868781836550068292311878720306908632629193025178727148769076279286108069707676918348131167551640749043786778994737022765502024931225257406975371260005640752484526646528960473475157532989521270578050198217248206576831713566506496884393489952231601043773068461831405575670047689058538015020326120410963277017690245533726558241019430439736469985204876799017819769962970336685046652848957724833072335245716052891546063469751306467142354955490048911603509192479528228349367941824341336096026145268617165228575678526400884654401213482784941585436970029557001857891495563649929660758118892301816923637962281942707238613962829805175247662964001924394033814460428163528508078140221466456530002479488532705004492341148371881370664043534341112970676165710121970372377587154189394488626478085163346567298056037704787056047610517710920892157520823470004872687428606925560635520770186031933803122204272255028525837797586563545468607180597648366545783006818234983719450664423485249021532446119142601371313756041476628712373646122213531947478269064467639601729590733737636959068235891808837640348826466781657170411015199175659462829229204614156507959225136765802764160938682106839526393771918668124863207202080163924918997683192126069890657591412747604318848997449461060995494852596386560486872526064448313076612861516453274034522546467285240154234882041390590229296462797923275334288154531083029043398967454338361442453936975911805103799564064850691637447471357369291160766376776876690433050378616714379070843033944051198635366982005131071849396521349544649139043165056054792654979685766327667009846671579929609802901126543562951028274826203768830995437821205820572073602632448420923102554012257914061718717591525916606732799681026103379601064959093977069643663127965725380106180723536827400032340793164786721617664289001579143041201481533804201413259108589306853040004456580282009836994020298437230928809992204630026800566335563999098547282181372058648013153716427636098361611696454179058048161704817653917175146276043378386414291295466122947579553777901334811445835513464826035363520378790849538563265831609997834848990164743984745393392540660003176027439411023106848894754961028937192839342962668141429882106480752548494438364814152134713355055536497594100313597753444158438844122075342535051447028760026020912124827553627514919965231653618559986622761078352697981986028215855495243630300609466125558073627529719357220623069103766982390084697300193128801536453052290356704742343776028791344948388030277729483350426532406312747795568546957226502018283070731369102987603871775215096606643277961354181626477936874448219069763128913822961067660133264520189279578824438386101785640923373546416542962828516944898640974166706002163005084391814301950552544496837282137254680680576535417964500050447295021700797442627817863445559903271415687319664847589631476625249553162246159661485106516148065763149706421380147253089434174926790349597000628723826754412071642867638925417003947574287476703953563884654292802277044771411371213815878739412749949935430642644155423719595464991827393883885189705852972429662315978214587929939762219601360352423389315788230110845475084116446952702966749935388669362299084360947852078645398259426719716668778658629696038032932867676684383322293878578081245785033224206246200167874532109628874316551343652271918856829582575002076252525643371205681853522259833418802212766941546156906645893027560003697378911788041889977498813997826897309183257094249010146430602838198748734293498752857010574047945207038038815206087142181172995340080939578411696218673838148163225613362602719462335101559506588537793703862027736130248671108288137613941325523792406096471038285136086195512038110740410872881573279158382513953488818469695678039934387559377999711389616065161594801588768082604025802467652180302969486999249971334425802750238889900202611815100676931891417321362066398730252596572816362151025874903043146883351555365420455886516953191463442870834823348308083786183756592526720394621196356899841805668915667503661508852611856460555378775018563352896266745667160122053071736453190768632235028454342977017098764108161682670395090541517343071152719257261525470134424889717712081069741229358764140468473893810056565990108977322999211866427105724069975479829156609978663638463599515886069627481767948052085901343621100581476122880850028476164715896772321301112793725655383785462604418690081723058603368352693742950709308013678817639292371188667842155787578514907924600385667399499535793935257134327297768431374950060042544105486134103802960681164576253449111388188594578378446281452650597058798929826200329461734423802728953943055291451261857287244057262836889062662039241937122729592424627142763263120591463979756191678139827829831253412895280201519995189837055552304661089118285127995608185820225049480977222480370149449975418497645222114252051228756441702134811431166110556048516425219377982635900766752220849310050750080918690713991247761641625297138152343674978544526331452393500805088121462824907124333825789186100397153890925359638503576801244528732370622075295356093223062213260610262102128800460066582905596680060222627863742569417236355249196876323632105132629527724984637083742746841822584264766562703584615157866864286782172167674485789253682980521050845004398889870114299927631722604918139340675036332143722354277351949639590196374751826928955312554899399576238348120094305909545551967388305622621812252658121405552054769895637249265106475708492668763398396687783232415704416193961708867170177216139714135445707698443241391748700929697305380638319516858440970479092823775263281514204462704371640567997221858414466266478577452577232295577595723098777963958827757749107614170844156788145235539563704861860670351152162324157826169845627164763808797086767839184864889722111677158473371342813935771570444684932533849545070914768342615598546229743658689702602489551990648185544413653137718681736540905846110044343159623137375700501659384497237784062977696781286715138968063026032888453669902680629270873793429503441025215861340856979335467754025093729869614693018092776168129849968740445634899469781639251941752389994107798706199438002407119113847083794838216948236106121515961070573219336363342776849823029902883220728459833892811243440462986443297116556429727783638021879964976094436628480103645211960215767056785610031769201862377361210525705435135283135249523079508843496704286150659246097784844645514199191727614919224092509708846868070246900279883537452378847893539657433746328712665006165459145083136748242262609071686049338443329727065587075709552887238632309874470384683252523246813758412291546922494223978932304799097439073325357871080109961356330680430186298920449758524625083355733526899428755000469657083835086623218876668191311526447139635740393168461964355672555544404837113869829178782297779602700633472501026216856324747942324218674740679345595325325457969086426453296261061936200362992745932096840259309837693899179940856481507576020844843634176313573754934393126631763769431756054459660636378147591800403082897710140196106787345540801076452120302043901072696409734127374573757729519151621463427403447450922586868975010175656883806381705795581008005944498659068826914843311926408342768448643584998314870453755854658138278600181132929771501253401008323903872959687903216332617574614243508199016858037315357302155061828050172195194064826708383626621533650846740386111820556805703229756434212530609770466254194401087518635092514996538580274101505925757564106579795791582148638320844191020687807809554138049674243014916522056464890689633050081685923051408740139262262940825583678052949755568354194974045970021951763745087196309488325315000683192339984612693935917850683116646105547522494909560299680255177267447668809567459569122700716135479774436474701185551748667956485176555119648547022578588798197946553684808234449410051716592099176317514105557761485558110481691435588396302951600168114576004115918212860419878387727080621481912490021966292140097853496370773297123677716098343308762192964113769107322456205744095815026470205562390129673519243295183622766116994018192694157837509828170141958245736163200321692970614829528124648006649324736055316282750771863638078075932360806839176276080214297525564850565530932299552285468249147405898473707788548493732292147968445933225237162763494059167269461299144931887666224272473750978243699027687562288974622520109465352166193901002488091256498018102849604994196817107784236694486998757241283379418263028415605881442866847873027434220777977519076005584516921918145206760409801419323824067985984074432860049718103046692553369998196827567799158134968774602983802524144992546218730144036528298724236860352995604776596197075700617636791112713542731507123508848987503724238785679871704538569364341070581698228920684187018153856210561236353197640234903235752541069937610048197241954943885284987547671649926859836930943687382219049073563849492599842060105427879206488764393892442798947179540905819458961740188289037346081097151869199153953136830302457240614346378270696664348776078535722764835307711947951658529676848295089088552100764135098354927355359856294597239158665837525681479816713310974733635039947850411413310250266825557256854018222994072198787476628855280705556761411783971359781693048003828279226022892734904997433970304561497462352351535486114441972129289469212647746798757560382099854982829930159641356963705287493738811595311716232528568062468975805458721863172516861433883167122139248030426247637250043957799616346729034402203190867418659712730911168143394685006066118175995675526507352257593189614656432608124126770679294889000019997278290435601485793749244017377955980975742075938160897451228262967903885515111008229672750774772858792938312793065733550937577231139509711708197906760212871233635500992543427949981446570971354865954668135607576969566861504532708814021010561073936895332964663892542501628271746794228111568302808401491629403599135253250872794981749925201535522605158761532111494932745066330801879808021339947504372167294991817271424706665607210383619690564274951952773510485659775991794359160677315033401664806920202549630771360612119692921655090561771804635943281758016330629247967051404180872470600389225040794856748851364160298230485853442818142603512719444345564976288515787622678221696259403139915033267126026935693361931407797893534927698869472479370770955292453619692624339426367371164217979900414571527798286524935231698609945267673614449325008583094766219786244626351829028357659158180317512341256141991138948095925527571071612450717087688085998320292842635189095165110701615751221497804834428889196836748317114920802013891249635442720935316170731626015398199302520956309797770167837519004974468780846084593634011149132473939731166436152152078862853612842892805678992266012601574392082937712097301959350619044724084819872070017003106032556658086184952986750007322329838127238890927659255289593013020761847535044229219632130898764320970782025091153540391498980049902193417616147351747567402441435064922811196877135341862587744967565267377462236803940387239412549373359566213231671459351471054395884377777367940345634676026855411687092270354664194571044347175839125619324884939734528704863903455163696814918138472196758913454277562093044171011158807110486849196159988268062975864174269766326623655921160913099354334752493848719181830109282854638828039366985768996006713322999566431121388350232039442028985730377885494729537186220382316689716662585795604011491541902323156084946059409740644668118318631014910489314244661586344402150183944459772507079108272961313597156699029341252985861147673518867037848777540314013888632682034505647508101790052047625926168180461676990755179726170918565816409263978045926146483283373977741880370049581070682700061825233259707034632526674433729312663540905219030728474315084374474070142380331103192920047897636152522888558099790987533731129679747784305129787135607581539904235700208752362889647616307437280031103483622746175541032631465731617872310091412191109020468780928650906158060947885670348141903631009508867811158114560621591495320721675656969032833781212479422357490831206567325316695334155517345585165371366617733653843317517678434387326156665682458830469662407730875894888143211629838536246837730074589658730390791609311627722234735347088525908940933493982626017728357150064866479049106409042490250265951417252845691404480679754592288025864494283005854792646212128006842590312712253367831795392877927042821788673281562679253818003166830981534996663532069942792382284918197760410419539315970683462838788973337973085372823169353498729560167344948603968580441747554432130089667112122535461868439527026863034448743117766115117974880476271682093329763860403021804500545411166000453312304121198806122920406509848619977131523590276378649824867383962856491583791841528147339387278005234449576813689171372545876207423556528719266282455851614482048447940721974710014874232436518062894236475445362295288314197728445558936432323931619969311621671038055666565443602426458163826064413240657597479359664085500977116526561179508568825402501027662472191221787380762926750719991865240319434410088424525376679679428053572861616446839129145002878006497838072586360332266485709578998359402548969169776968698588613703190590384901096716164977594043762281195690636169103786022760558158835201094246494407479761816730314325500463981645991060593240205790197384972217344192838354721791354539937515157921434766006982133511246918908740509997108846526746166199843926265797393745790119979887349091940825867892324384072190923850424878201334365395972785318963962897247838788200653001204293489763652610169536460903293544906649560332691356501318363172767676906011468777073555880323802541858488441338043132040949928967750215107887149234986560548225593413546472828978395283292000656149423755155101750648399044808265628855329612190314334534080892992248987106221406853727966326609532407614289918822433652505316164569033357811665411514920534752200104665311996307047714592517003801336745256225306347701404341485188935073780376512949846337425602566135240860730764461189277169089073399023141505279254910821264988080505942257482960690632333419867882838775669238935590744097509433768268544144217774200446155865848931390600125066597674454590113704621624949786748941933914034068025336015835890879488164887013395983785664580741178576716509137327226621132911552786208547845471617935055522485923192819298083280242220579703701222762811575774208918744251547452751929884107595274204809430673252059561608196887199408670572083670742232269782463531050713658977073305060301602891768156983869093140260938148770539046237294612261954378464650642498997976662197173515520429430646231052559432931659895480553341716753062609992760297244205287454724875503495378599232212289117379106773916983134430354721991666098319715890621184388829735409095689441362830810644892596182131642677250275246819192901986485954279637473742804813661255488906879901258235795645438528294894840225758951563547619321596603636066967549630339755039911720645424265314990208806583153277256264612817124627649065207862403049708866119163191722365800673007554632289012297688944578835560536190591343846554734092639715220261054407572446876265415103339745756176099699628378961177087135510361075378400708130644676567481873130894475176643232984882260162318817548818320240616135752841271362700621909055478091636418147374952243072977884487414878194168380072758093159478964361370065394816988404527549591362862228298050970634612947680990403245765726851397077219527161358444747214212495916950052071911710972422397963967037410579374527802457525490028325217617595917493808704329892255757980819062468106320149047009088651150662017682307455346123114077551263135333348024344706391860721377065551790097928223905061857030134436977825212590017920954617376091565230144505275136813449014582487787570550254874557338421027667979288617879989239605248343335086670706754074475470584679386119898111260849711671408574051164734919543597216607323709814281465009815091673669590114881643009060366915834276206788326510498241807267183530969665372263116801567264123452640894123036252728612158921108761200159863549993409714002068984807653744053575154898461337114011902764783097124297325724580306937908765006923771574115781900964964784399596802680506332810733167002255048365203466840004465859006385983763731794665451035973912447241534319357951079665529851799196682216184488419287955830783995894472535083670993616640582493882316534825341095003611438916123445197297280980384222253795546748679934121215337658452383939304547497064612941156188417000202535241071013035877197602054658901709892556415349184218295576122236130008082130919266180693924620018340583190233193887411558207151820652798963442431545514357527508835138015069898594307941670203360670908436607971110337776642549537664987992585865027377939759633727453209559708504903993041970938333230203817802588638641919902913625727615308687441636377336859563431455914014914697904448552779578781631801290362679641120280618847893798955121909312911693172402682973336383530772379517879750173677078132126416733102439091207097681575656707211305786033047299057589016902782064630846168269518860811044731650695976516092224279394979061727286044860406349444231817223364641600657239993601475062573958898368935776147398259994603121572703232584330903242846995189449128418595076852370105056963367857730222412661019401410522687514986535527210302417632110473291010649252303219969447685738344057144726897484507554071208775336632689895233110544486195733012065657859823906879683215335943001071060780049964731334094640468078343204491255531272633788648079800928299968568072325854166301153693635809211264625064242116797894494240723290343195771541068261593628171136048578893411696912401883208598720934488462290431074410530358231278346909977463956183471877237798200095010501791302245476683063379973620127084498012048713811808800573998599054438938340464656911464818390941355963421876260887181247591673881498012828541769478465784920002572997707540999277983877749708331595737061472752140936089472015892408940925970389725374120502253296948442537253351994020850450824844627429715399169797221819102084907422468614967825549539255815490997491332496171755429803871641768479975831100003410347636038727908075597557861822176006588131698860161606354706661931331781783104116207465520100177604971235326016732847125932550521750149872137851594670185316322011037334634640026106165126276544245551714893052730420268992408407079680846173847129187577703031532639026105887926254435175318651943318910023105611706152211622693346958005383551051899610085400635729912886681938264282067533599196584908622457900697097996448584851244044152351525127695402840320671372573945874806850842768786142677008376341555417363698740414008746667284319761850943704308601183906603077969581674072774043308680132281569757609989965452690569040344705324913566297652712005044801427006456931653266085586292841626683363542955128507294726155662119663931399096468555001600523160953505642237898932401092581822189758342040401841016772997156639922773193773518426913865906697597402991307695387765363953348942167269052562632501769126081686146416303435184182967768553572077151363922915029017017551176116161811940898284225449566829134518733166338122939229921681763183360153296650502790626365259949888099424816111601701539367884714886671376004489636143029791008564471772615350447227541402321906540340155914553143818375251424368820117750957934483064579929572217899196667535139809446399029571091271374947065515450524544482890348383948730733936875180294171993387403177645528466071085420318138151434302501407327504597369117620474300187517456983573880661985564083482597083349837931934887657750883378919994353550532366158624030211063619672331770548932808211732916004330441513466054014488628109870287390313564367029668893591098139772959539225386272413565018444292212189719910681456883307151760790678869346363143495361380125462457881903020797614787917940402150761060171611045201115264734398236247050608627372662567394359671054004101756777592716001726183942221996706138186677842249572012066450571229367701795388536470974455445375133889473367740023375294285811678571017898515399923289329909748505126821260626719284036057854854264867496492811996197095002255006903109559105156859904191019232444176634965693218568683457560614175507331015579464656998172711778932930248691920252235343908069586201810006222426498712153141262861850252316741859494445581999342579453147630708342198262330523270629020128210123749489116218984925445793385855166538366430524711963656832905147203859902122711656278851145806992557801475470056783275915373356455087015248075047282245078394885817743434923941089104874160170031201372483249941499909053083209481237916516668747994400085567663408400891161918988008982396298179652305135853984794323579261779104521712558468852948838721899943948893148760812788974011540572637580591864485371305107091629792252146084885258161858578642536279765649708191676537582354888843021485280848341237938402366659304539087482256913651234789123848657390371766092020421789812661235923615084570497149461755601455948272514061557956249641171618885325055389057501481540798651206279933924991298874474470405507690058674140898357026906574627957197815543796056371776831665647841849653825159081583119459954482803817264017399066264663680433163658930626303982951162637724434845297394051238828507989748282554784885748207316170151302399941198509051641583023980348864260187062471836517703331287982580896861577372072916513622873055577061271431132128233959803520103746207203271913660918014270824610577806424665062108110253128032093592650328507052525046898923184359839951988412584934471555202010417442831653584131332575892799259975494806523556535606212476408701285497542281267447035815676958339020588581731490028597191964203154243513824632273981695845535487983536896853229170411440238367745502324742047072059942881709601345019653382809262344178569598042699825705003680938417389678308331929577001567007395950657859331778660047042709681674708742644921766962213662559218825238000484558285415005046553229956540829270131717200553920921930721874318218400621195739937084986519774055482076683199842308361558457695211483064887320494539498911629150851593150716421873283847394685355938555276973482042653331980040386047546174947712295262231844720001238228401158255901456650001164244720409319152158697667419988791696686960135095685816761623249867714434509954419066616096157274491508522895992574994070816313451357813056466390166925107386402380765754668476736174411409442406616545269214719812973705520831579380134962523815328459277981749855512140584152014555290224832892167827097712813414362293672280452814371252182399347876567793709306090049669638729771882804083429187441287019017426109443030805626477805753597423227793910306204180545769912263139869197342503504334718520594260279216134169757113918193679543744668118860598748926610802781270050215758365996202605358087287762574547471272313741829910726402004940974977228761193463755184888876046062902605483323539759531760804830650897965708977022264335696810590455206080052300897554290169733162512217513562757468644480547827526107592884177338669869411185075492374962800059780090887508660527472211815270797928541262280867080612267798761333247987313336487660784670516533716110671524226938602220348294860840981244555368476437104564247648095397495276895593609519920157900703282269120844597251341501283212591977450997823581074900892135603619426342166427537848200698063946358076607694969763396219463551956683485757830440509008733631004516475476597527741545535781786333946376105491400129955847534715946845281999261813307371006892081907160157391201428596775653316156098361793306524996599139486364108979831943497432748785983982976105287886879516582687910262504762696815689296376839192297198854566535126987472767220658206510078892347537138427875237954728620045344367970991557924498854375901082157429259739984022958566480927917195129250536568188043494848286132846718111597475711429904178153994903043158669372358217155814269221714379215363021480428033341404130144821984294441660615437737970857514926704171466806846327819234118984756337629734941766435250919344217982478057469100737787258991284562627772013200603389918681524191466441078670624744949741768386665731348757671315785764904526777014618319811598385819365948212377211685643624827764256002731721539117626622611267645902305519627333440359206628650268609378623738471482985816621878338869405531822132391938657540942501339952861807212655837895152727386350048625024656101593701001049997386309509498552385832188222092343442190433759693338037501495002841760820830041847121515319705742212169794204185560009539618132596008854321505215834964953373164559325030983259709069986928107916948901686881249640989032249345240775956970401789068389184749988435953809557909372826881172841919210522348231353204681597756465593246384613801466770235044685292389927420486146458029425359181452440039386158005747974246467818907742379671720260315485763782506128615654981181596502445915180186876240553645308691910232011618621265825193170959572532700400038503326414508711837612747031040473244324605811680281092555389245395788709242037405302930081232220703070768268394160635730691776992489314116046138874561578568858907350457486291853372891056319440971047323814098832465738392073211033254155675772186526028334904622010310428131171488197015557082902627652221676257611809299207287003613690476955127305785615549014052599883743243743420950519839470346434618553033009111827765878720549738820210330324757116353904215032611122636570149543075046910102003390419934877743550474951041257403986360094479622605381155333872033806996729095365403743587316697621322390652013134452793806410390761653915785826361228596060424411870214693663266401368774509605027026581076560376268037498791780661922248680223314239972082499019033757673389934904161884857857136281754530709683344891193128208515701689767892886430497126099157898831645811927820832670461262293778221263048965221340713284737319603880946256735887882770313080171615301523848686455538643970938557458972007414557907972310005157247068524198175910421421094651478069869521076335703946474968168914682175175073091459573355271636224696456853702801757267067963579627909455802750850409898855957612574944792335315258958914200745928377293407217562064649041714486360446202157022627780279161284218070483901213593986162578880841896249193459780503982962089481333769600486275195356788114854978386066540244153280408144917008253634052761826560887729930471858671232053109459687057086019554342473112512874102359159074685959834851071278484927176651458450949234059216360457968539487267815844465563304270552242861400339440243607824183144825408102044475272478822564888052875633418347008346621298275687649549030334879592600787531764621033660960242846959094167956170213309049294255864383666328742863828781768889442363999089286121845458187783524209092702450372075002423157511216639991162760706804922645169878234162133636896199764016550023134176022047920398147344895079138455068422341998988498407639124764156431031704422299055646300626208725127815159897245164098781127534493534450358396522336748873952440804122422875897431906389856280735939650385946857119825801899909681673162641227528489452006102351320054341061017478650486342191571668828123086387239616345688996689780315509764869876496984193490714293395691082780122571493679836071449490566020028716324903268906607566315310753959101886601720531867645609481214759844642005816409586492673345023895669891431721566353608800174731759418058057187405807256540126026316020841017581500855762667190549859183668406604767169937929006558432073099548444979795069296780178335833496463126392565186654199206511121722525480497404390988994314398592535288980831265881727270921411828620796347344657072020005751288326894918189760671447993449719162915199372833745784458236755552111539081167743104725859946906188321440333689055904863184964683222301473124154916556332442791208209846701004274235033933381733545164235792112963406056413773550463708605200428297929364335803272608231512250157865965288412024798666938057236272756755794003923860449390907033962291094937434046850405775423587715860052190669230012615773732816467257585875684772561548975833984528799229916626383533446194552039213349634334791818904651602898953694892828589151926819558874560989008857035030530554692145523447860718549471239006950796016948149178359119909256398817544316848786645586697010846195797154043593068571537625851570898598974491595357808139480632312338799267488535038993301713069295958946805582789354885180817971939716679188618978463963206553297641279432301994058221237195731829235080783858637154264901748503158611493264984282110483048710233654679610007604967519726975125405873614843977437631886210537052858015431125599389126777204125879257369241316320026968618812762537472365942627731334797796765202780278175986989558566990815917875547075615711931791863636278750072765778826667070979485809503665790450338967424179063997008953244147312040878488548992500902241511912763163918262858061511839717375304804978410738038657850462847136404783965106793692688141556555395979545093514679225531385272272098548987525292806495973867252139355903834874677211036181191974484397360191594621852933716398021964422563929279811182821013252644523632326409887512634095070653999911461158960260174660120485800040139415745845316593114070887113881006754980591906877878000348862129334194287088391759640247499297881735491034809942348197454246470265987438277041923466665010214657383931340974659777818639089743101921056446455307359285830263818453860522416718124850528772529584977271899013924504264582689116583572983861451600739875979945754961915988336586995114669409857886149939848726301474978261595741538637271364819816704230803851670184098282307197599445303808437563998180125865313553004978335926146024911253823720728730160881598232170627105171917803743768347569487242653828806879543473217932485169771298913125814060285193111041077645111574161777571326538967902369420717773989268900056250662054358331611481929189337694644434252108272624379427697742904196114820861675597690379255570962685596710009256082072174201337852348025828718607514455012842768943217980246830488706716822152045089887546452397951663394803351040240549525839562484705131471076256826709234944117490711658978713448877959432457360504881597246200710588439413720887475899837620002807270153558600681420067242320152735506923067148932488452841523426347485258301735846465643574468375316531371861110118813209961398264917599650800060618321285268292516528017070792616521704882829803287480566630366275495594274420839293960431987887212403894032140420202446317267355515155099411607540473412524670525510849153262482921903535338985942056794907566964077202543690549635593945239406932812150566120704842945467637750605965318465468842962451369120718942143859343426704616358221208905830012458962653145350991054371798090964084196943014849333133619352255961596091372381373209863697975023131147053634375718986743904828502643657662674476121105068121340893034096112366664431855668365564810710914008132436092909608222064689482990126291754404697230813902810490029729610965652899462873709252482894267780536975004696305074681860138640300060250157788997917785721413682229393716178557126877465904513828224384586721750283079441912267832736702991882854842926231262809136356169787669079856002486743724256514478428509605285194579042446110145277527705878360193404922860347899550195511975609479269420076442379905422619719616855906567723930859057589283673756435440910107382232973153322316120349653132780446749683952352701793222268856843184527707816447545373351523033591872342012204998025015876840027685123254112306871652021250761542031093428132983933762830164609637216099018199165688899127720363974160774665202836709887919626365996960060098093585034667900778763509792844815603824679503429905443422421397507823242637684131694815918241116653034502294061957579654460173932015464922262301357816802962569439418820248824415196784942649279825696568499291834555762670953891707215253162572796371549901234463430614553868092823931022988554782608375640524686762583263064086645630414960083826317303077718506011582288496322672621481522360775068608707295736609280284578430185804524322412005042623422379414350979525150517150464985931188935628871895997834411219284848554140818596016749794947188967818910006355061811614292950731660113697201066301268755811579224308236143225164476689938163362616138099885278113649252991999031499603848461336940597046927932869276782556092334240474671385481901780091583162204739216260968181175360223574672790502287859852800979162504241296563328890880747215342875234691116744522030801579101318880468796135371584171512966862208552631122856176849374530091023753582221640025849164630326282213157134610312522232499576647817305827156151984513334842894885846741843726964467925567105055818303285733396375999124632757884975843681838099417339061182364863031007551985917682829487976922844546900054333047564946686219053361579518191547749106439588178764336518644933719987808421848751095483602058768026749762068653146865586039399190283082961785907001204056096997207520264483917640634388297984063025361898674623371631782061039011193896543434648198793950216789016492263700603219902222133272805953178352190948122049135274912585822113314660133298871428560809609377157479501137406534431144574664020608794668959461617097582288941048631017506169489227606445599994387655912790349019628775044486178190812204165610611061878748513585406257554902826329787089806190597665146542513281104953889503700050768762314651893326787252186867175662138426407947413195983449943915541776860775464331162430199762045548839014530537585853150151957518146256778221020256637260423107482854881095243284088004811344576825914959643440176198152891566675923750540109761197094825016764640410593982513762956828113074854256305972636695602224608699882095857907771329200952635800350878746736960588341769334326764746418671061372831538964210407779016130245669101833100666378700159501784130084036329005592504388206819972652858483253577119023611400464244231577915887811976299345900024578086925902926967612415882093644118502500302294414368879080927444489043711775241645445704948963181115688529646319357484872969313806478720883282938434602571113242571341968995107436931031475685750733541362041044548440180341806000325799722936590191165611537180029594748680250939684279217222607388940514093511403102335284943818956695712377194087060798891685660481302915141067039387911675134750956112747479218734426934149645719368508647383118391363886991260136660429838887450798646569528366925608255432638805771070392074301745491053362181732498537514470483950299577311934416184187595421562159127428947292851946689228913579300462787718850433026676004184659683582752726474496633140296744795692313969286198426006840174331605449692057707195008285842643898483643508107138098625808988494540544834471123769679641873866469089134477821825245396033320205862826382777173283667854011310533063769009644881574101865938963401056124849785355874732647947415724530595221850809572071318264834635539644575303414770350188162720691222148351887897934367854230620853186771629936308673711183992692705710308900390581480442342500014545325629289098442793548085276901024901202680167371961761801398507073835690333852295553138382064139689584899463565991711323342345058956802535757520987001281049256865432707587157895295260245668565165341026291556810965373593008632246144025511952826575308102145527787761885921768550338761940218251115855742234420740162907064667020996427605532560886077585286095686834934548120086237705993667962556899419986291646302213414369553318580480252822818056566617180347351466379562328865231618104552483259403413983909403458163049852729025874744513952199923942258378755212631202039515051775636708562218012089540959267668081465109509171344243455006853052575414753752481102511479599508056171253071623911641630474862350615275954273257143823720278087569807481749823125467322015510687257326617206804097273951436501211548372339643270211407945790034977539915945561911961814114255155740133359276240979210145708846575964491227429414657478061296656941696725847719268441492783055133398263660166770263885566115451026410094382744621536578472101718165667011260144691993821929584528938769878912759952270160699426786982998952668670123953712467962588738586657336404012390555474971430952471404393563850921113109217735839868117259564306587254208879103962066483322631511103106125664257819496075627393685673174827888571087996872078370720691274177760879477387312191769414086220723760529534680046618496123863384755265653345107036093469118981361561589738344485118733533646675360176917611963133052593962443261757761086085828410529423652820116194238521685948228155441449780648166524729836434420653132693900135274317999995685052953430252376525041878805698483253161278221535361335940878568744624784519265023875955603051929852008548073587902525412709516022269860951896402603143363204678517949683024950943832811570724164221823644449036831224862450412639184949394033928980041578289487980436501233311574213326673694329472163921439711303158099730034879823958638159996268341905755031532139089973946729767218482830617176107002058657703828884310317589195861321215360655043554282767886842081543875315691936120025514202489986806672880220037127555498220967770708467449706032349926058958030883760915104476681737245330674290163028694921172500264398180280651425511118889292698506430679909587451681706151178565318953072333542392608168534894811903716998659176590495226282405019166745546965078793260740616066026079900381851407084690090692293771265008612962441586593345040829919741913834331562629033678971789764863065593435766646758726430521116702124789385381039481350461725976142171377355884017686264261945795996183685429980125739463201220977057493062318376248293283013728126428147188265330085288296705257420445974601604489608796222282349734674861917079937156869043841998827287162534500834258449248984679901035901098015576540371694191584402218944748059058439795952152179911122283888821722068502448460826281946441936830864154572697268023059992266503067466650965992493289783187491604420001086927300647557791798084001699632032630574522857765987429064330208504802136658190565762724933604697279935237091094846166973829767343535439773403208106650960765002962948236678161988942439558552181644320949103312848772762051202784607916997986333267464243912354718059669041704520391652986827224662986876113353575329479019872370909099338316970214193854859418289188777050859654736590160103890908169992636522798997580134150286512825648811124190669810034168665640847847876831706838358405284223611267430702837747525285761464573868403866517366534523920399319519729611301578000425711600015426502649217289870896221557144935428391279927151243984085151687339180120775335721526965666103988175613022497965326288688464079792612989242732505981972196415607371522772852821694708599047493425197060409948451904154340434062170179791783147635291028408513736494783658421964756446601186468992544079273130043465753502227492217334111259911432538190483442364623988545588270363555854409973814917474672211239473918912927287815158757665626219442325288569397877340112029900409779047445522043011974408730868906345930227032346292145720039859620692384440296614163387864551012443803091151313214277365783655880040564705133490731081971639064136439398813452950608504728425231190606711616886039978177820150227199352002270768436823473728111442942731421772223608259708314429411587264444544605855817387803111665159172622521821783909965948951202872909662759440093559594040335695473633751334945852052850069643219722092534239232936871587421757090146916684852550565038505953251217502173303874579351026339322316266544101410077130548082164378150539389213911621939716073536658763491247420355857315684693348137232814601534052422777557717561094848448140272218936000770941853129611252116882171292296326636363270195972799230963128804256414823135698289864746477318412093933667907942577953426963913037279967059119742416935217981126510897081178949229143729667620921155094992430407857731516560224099913187835147576139701153794333047297172234550386308898527130312391321682669268100286810762321931557715881006653721371776176896156173320572489256132423240622892629408745563405190171569047234457522216297653191262555023140745969838394851466765329003229283021502943130534464497139218271710248239878963613787893025604411817606803272679339145468925988851332423145996105841084357340101507410827575991654241549929126583157860386205246768579244358964509774969875501563882687963306158957297183971050045548704868919356634031973998390991371167714115584714852801565728926198411372822038251179114838695694611931190197584310858803785574027534594034720493245639971679407450757105430827733986961545068417807128697891002538340872503871385483051046550573615104324114714169757539528036918015175365511153926333502846937910354221802895350985727950302094855039964622919758123069902281472904159316171531845266311851558226638332935404486636517967010370191306765566003315964911706721944258600110681206407289361045059297332455715516635589801855923392266784561774401935750954001333031678981346207647062142278507600285676567478411093810717568657547125954495177791003168714279053267254883095412009005726697252646359001011026792800938044816071303239256062787881284771458571372339659500396028766660576419861328078474035097854564193075156961352242454113129188340822127766877139895810623503070143098340254293345044203325888217719358080730218678582054323680537094699529280073773204032391004167952285145333989504724049839992491876997954981137842663249818295242212871392924714372894592872198632978776185747152182096587483888545686472967252096583910163442513175040726733312745484956753102788660071665824152446710010050485978625702771303079834701323715914522756720492810058023510650850082255763261006351241070508449101353176725305492090262712849773643046363126402378905583386688594239729606358259946217816322825095634729803060844260630248305091837370869931720560489298861676838493245933046547185735268989950365330406409555397186528056301481598021407457653000911474377142755697703188213959738588310031266729283352001238540464051278859583039621897283234449410330130412362538007654533190939694496731881209513737967159179983134374102930020277806906985025637182551406114032493739027979104643904520283006846315230902759312823382082447998342286763500373103287915074102245470586432535157798009482584677561704890747916393310390442945700477420712883022601424219581830136420772270288035919008391418500552055120149852719593676389320870660373076412873639582845987720543721633481226051546639352649305643142739110526240875200848440066694309882598607675615948116389259084326522438196528428595367013387747417234686530073236277093308259317619264526033336973938036755459535882358674477264056144626500022402500707249018881232608937514531069611893129448150732086843450434544601931553976359728155157098487953060603642530370158525178109913869946527931301392815574291020754569559747039975012480874952850537103025753662763252353233254688508109064999325642616268850736217578746688713069170412529355032254983731967895701810759313518743444607365772753241530553680120328623008919130187987363350972222865024950919466943188443697560683298363435570663264858877840413123313720273309853292970062404495237496992507114175421015882649680177556609685586311314389741824690542324274738683167838655944771232494897784601440204821034623267000480270505929779100216980203343798206263190654797523323109451253721462336668288081037732718950958542318308109697406413115547233039094849509277413006048403721302508847869494213577357675292233140577817629912582035247188159865510079512356548878655751531874643071095476396935346380980250019660070605420277006449958655723190669654254999303266090277837555559204399889407005576673097512261943393528811851932070667437494353355841405821333341972383289372031316349913145607409909177370083222400942710018193776134272149216328608623781474171157386192914466420651627482362042592726380482232804611593445055899230269692684672905604890402560061118050065780592676886061312484188200820033823073718302773809298255195254344949705211813191420448521158121253313698158968996648327435134743778049516831895363385625751516431162545310537704662196919207996383359091199645751961745414040116236681454545075280900602340858321132638705980065178399584876001985863262188482108150724353939503589553261831869670043482082626305727591060441387268938103635195751095501002294625486517741051455216472965279630867381195993615674738321858441213208323433195776380122413081869884400281651238487657626870390011649975939840907855792397649823643054060614473685414000003527069998488420239313085192939764331959644065417728276115559266186694520389675189846144131742695441777372219090959070700933815346042162095642287854850908483818821913244695657530172423786490246550504322688747473439032323094978005576451807136757712053763614305155871031199190420295501659105190608086346549365247798067631178590654894990301910934603452502197379699324320499322350836792439568664171511337451765509399066831054311465285714119757258623907690845963977266886459555098360485897278639423512038320263389371534679758075658864452001116636413108590428272240829479058401581479186482314337491769325123560043566719163329623208338643713398803503643038602487972885942954422759669017727151393848082865888601394043421626839981736222718709888903358096100313275056676968868197378332218529770683898326254831013545291391577578301027206221711377021796441851642112784347028789607766548500835123267035335893300031198682999449719234347993576405889057244367252136786592722442659630000422111484528959900054866693910597130363831976012368188011973557249019019875128880606011452794883960610307294019801710711467125180448652033531229776218349603744556188856696230641579289343473230428072988163315996300241317094166896573659397864182913276684930264010162227281452579057647509055393115485658848811707059773247556602219430807747667568404625762950522953450573348241113630095441125852400128013313284766917296421762564997773991729796780885435380080197682387108612730325644960438939859957476759006011165652447102540981415665854473354957696069139781771237471154319283612565240173216723979553993319229450583054254244208137935556120795661326164478530847757699154245266458379964879067554415971461708793148198216236229082682376344752436759345946057346634878301575679960336510866814186998537813703254559865045676004165040614836289907464747639304699542970329849953210048022363111477909564792454505273059143883644263650561750677999842887194617573569104735849667451852901501826891501962312916483368506675530393122818092104258353709897337052093813648892229482107831350361443800363535197538750530458546800934006495481936342001187118705406661287860223677136776210450986806078709858369672854136372442639406390194414525730842127588114251428111529839225362628890065974618611884657742776714477385588805823099582374864990005781566658155627914544981208555222011711711833640110154491297721079166802264668046198646378809339986242416127844527512268028629721226182062971386444129471687392946477792961485325468790232601574687175770861645343262898955099501241212527198152591667331627176750499713336890529761373263933954649616789271161289874293369064251920206581373108086453019556701936409742137623263387114919243649974218203655371389544209978562898973701622812108230042290266463242104193944910314098493289418230191135241084197263367123399332791308210237937115183273705811461142237315205912310831624931004789529272935837057276334611701076750554181414495718431856328069516483917606583057123240409722067682882512638323066227484685791820067184559562180665456633572390806578318139186844223491223185153502161865116510071666839074443268599631953156627295197846225604986838356246237802424415521027025850248982755013954819180635973253295404505467183885451238390957456730384684387172666224111082675679554820391122978278387103639150067208632816123246554202002013187085149223756348147524735192687508117639015976698919112473232414856572645846443530352229971645147972575823202898551189486476736066891467613248568191585259138906055688283679793224858681804206209289690826465979762233109794414368203630973698265465666981496185040203676270540916320335746786988157199075620370809960951320964545783105893809337616047482903978485801439594753857895060718533299942977101366356398953780428542290633285308916206555602405594164393561083015192266035625104379598301483944145289543847650338692088530666785825946050116041815899894263609712609625258629653594776167664051085223194261911977302170051244953684875499828294096614642996504045433517957914398386342158087016349815150556460054820220029855833646414560094805356599535647930066613598851050312978309526524306365728005934511516614523247950219207286034312261224133025455078725570408018243932114146386395185645185313994428522631811854559928649888157066760599672758286606168505995262824914452661943125020691588230836532451087883114881411881597573463205572740118400891044536639926848340619835112473505453469446237452729323612501773866544738849330003492601756599902250823103504121836429691407161164228041642766534993708383477644334964252023140100267268067946538501662086746971819609004949326707942731089740845148880316713224812046273249133966279930865384491564430334962617261349424495060225177373608429950992579631669226599282357118075065468811968857149036297905206076960072603685837160947419345310363199223053016638674967910389085966161846892065658881235383397968955208510039515252587540299845396800905131388804297880579869910443236410292064321624964588623069767856668930217268541050772832845906690522474073818815851102550810986406819030854287585093781604198601532089948090821696651380053155417152134504111160985838511993088382999703561957171485566981715534145602146496219941271001344335302086812948294233689227377702128289632753661477661018760870448827638032330311082476951098073581316829888080794476994884504218732195119385087519041481700673401054814873492953881388599775426152415894807533964217391339183048010955235025984161689146485337602329868403141156094961463738208405365009777305971948417789895431888570180760327214920977496107825673955924603970859770238404674322715378203178311004382742269691366625110058045672138869205224038758881166472458011224319451620784757374225815018028105563590265620355275442632380340993872387575560329739369027774960337734483457488389009806987131464881042324198624585414438379065095693336994680139372525676735783074086774615121362140735117774619818739430288602203626835430502285229192955868133818533459374561196659107022959351298682029868440419011318647069136259242792170798167179307312384206876826170523233682574379668710378648091724232277006154120266450608008634573515270142971384452640273688440498460899893986799359327704817496584932588818815629761447596545772977394868234266065049656747013098579218964760443027765231970143560342191317176802297555322525789600558550830802055019085079941903581411146589519411406426897365194669314708739839207819520492856724928784320206537856808065309229343269641311617845495632501733795408737143697863861928681482898223559450285163415986040304019010533301082413253821452167451857881689963249848453177457727738164935299455968103424656423973567614812093204985071488567489921249634590968946714092324556672423822560345622721473565258807812483097664667676517294360631722275715535074318183508437366535031743433546206104528688966628103862127728983612862515914258284681074786387329371266208215092404885658213637432530791198537290901788502829867651912627881932070957619869683413612305188504516938369494918139459095140682269797863684824281383121560039072038802958362610779104864919503787367715770086289770188230095787496183182565348764187947062123666582237926621716366085071325468913360218265533518482039593968734958876580924778155611741986822928274648651726464163086735540573764923440754405866519790076878448821837325154217312005846339782999016889299388014316101373381042536126668268727595592871642325270065329793037994747249384020870322900332603256894090206602443645743508996278867840485304647735455069756751499952496773908259544456874096227882554303262321637173469707101677349482351453729770175087220398207892589916611714413925458442954447681272822061283271159767632862463570719518551829189178388710607684523938772005203520914427530892280180868369211164665921722077735783045721323752351787142066098797571121398686398769943514568692769447455540133010786474444557851827213844541074490615977686410371310982118489190759342211019236445923743594487417774732225918940604911376682539020775301489014493452755521222652526003497750892165471093720888216482888323832891156760940785621907919510507297601625352639621291389581747265240102907370930967576965693948842333934158867333092367698018825310119546447024274530700203918033658336338435475934593306241055092703215284080951832098763316155758855385166261341406316942292940676277245803478116044265944081489189209160448060336320578771962435641769439195656970946327293757450970613526881573548499068931878116852584221640317469260871393651399871502537085550670799153930129564228969004827488590843449460264992526610822210278513246684037851888310816468629835324163903578803168587547540758132293883154658993206148357916833821744432556336029797684984510290365458379706557978625025820480083250759537846309652479974818480799320709106985101860340873897143949202108181819358780973200613798083076686985167750080132170513493632552699617841126331713703063134016300223773388743825517075324640276560460414919730562449356884949296438407835542388439611660144835963363023509444318563997694476351265865355281533898343858923708984482206851135535634228113578491102426981555685981099325121520817617649716244776978581856939789028487392326202846843713878813407261997908220439031713879070379932650020695070560443214703392866396022104111170030118079841030185424566134981706388563858110025082194024576687830763348994098198630872356174280967663917372526230404243133456063304164189252693181386336889386644920234814182942689955349128219147354390772920788559844048705356110628017422989215905159086568385134573928182246246321506026935796186248882068763735199376478291737313133127444199115918333541158292279943573915372422010821795195968369077337044292164184496286748158256615182545524819702478242450258990757663286950794846680901273665586703889339509046862974875843008990137108894766396736360112443806020452444034291871668739519227277171876119403305343582159708732960741755561304020413205004369049842697435992278630777526029331356474532525169418524119964183884358665335530056196952790575079222455715169257466211521880388958142696506433573957849600677029843226136330989057275367879365713247599662301936955454204246752309590697228757971903278062760097338218438029201508803420009330930766510505593163840400817374224324000431271927916924260296795131032324563107370801440734489644757580463865914934815873352144921987347485839597342196109599886291972858441423348668895515826296989972424956904561455990088764004685154006649772060840129006716644803493152552273542329852223791073693459651072078516647972772723703932344029826260979303904526911770170829697374418811589630092390524916060310141082982367884608310318543900264402526263405730041377582960547236834705035092388110034132413832835323165200520348837676105971284569880163542080377712737397253758641760464248604554140718149634439864579459475634735626499572074296730412869081556808999216474691594963466965378599090404508062701786547162915532917979721892501623757766284755544821723709949622181735312145028012525395313504828426553694360886489160486773770425870401997606742810312077642992482421164722549067624220082960116249396066468763371103527037294543870669758753379817933518390994589909034319013269770355085203102013471224604501300417405409484379075600972402898325772892039958654387018006658620176257685203598391266421069309949493862944207616864031374060151721453816134094133081524900516850041915095719205957383138181592434752028779795451521773418056648513164178237091000137163810184489408875717297886225234461202593723676828955637557728658303436938223354784518820974940468917144507553996064522130045066755230546433110000563580027127923879369115592971741642824783117191925221016214824428962031173966286277724752362503655241159068565891166768668141257071875480704136684389508152054718465786530112033657096018989486163213232650592670984856912903738146805515865362759346208178403931923070038698871254325572350060620766400329303446925894780849614897874575095397857312609437466808719242443832800419078317005938899585567146799637493759720123983703980120780025380175770503072092662561095506158379947388817837168457004325233948353099417823641381734621589188442382276671409809229282001264032171748759731517017616361761576372187924370960796679567573282094409565568299738899159099556344924281173438587416663604032877506973471184408052602268321511838366912295555941890983695928016804812366617429036064451502188977312835013500152857215974101018989827091235827608669773576399774381685757200136752197137445477425138317647243107449900333459616059320747140381864957715082774001779561639764339252033171717826210827337068090213496454926946727371030579524950495547098557498748648896579279306669779139339224525865641028678325960655033362621157217398360041474373736430003321376183593214759314029403120911054357193580441947223916067963162221125460192453816742973997724014537541263101228990413393371019247914307948688518503090945297748473506271468484162848965997320198907689776229470480601294980353441982831260982408254170544455130599677843383532513479226884984865976840713002854240053122366179376044958679528088901212826494960147776517240749327633566558331652922523669615897478661725956416355130402097277781924839224368506134284089081234462114392626861634295184765507435530827177233483392229601337175127564034946242453474890297928100258815698012093299964030340344523285278644417756082913005039140379780361254062331590229341336165642397787750053469433668821068909517075906640629267963675807570341400106412269548549341196274679020775060535250286640296281382215758896128802790831549868353802688725999085698102123720238368641245508932542679390461747180307594440476166029489207698995009372034068622167948329836507187905883104892500295534332771429406434208717944005871946092578702429181774063100177649608788590719051735195425046528630519519010520939574920586458947556373344725117099107050573354934477248563262665429936898126538381847945248723090547976041573814332034029854563513912600190674043216713659280623672547228493005004104747046470377504050223596719256388436316352293968057939322598088716474810990918165839728414062832481866267844767939921337469911549289990017893668852886648328312097862675776903136622373891517030570899971699120292468018658171582536594599822357352513175363846767362592964208304329869632443539654386688004209323626762998479406667202973117758376255832881857074703454014987849048112644602779256590563830667114436917006310038257061359902422158773699406352543694540462884471456870971474065254773420494244972863932429982575222159653147185105869739320013251003633756659042289174771296569717667045111633999195714255900872172966636679085473244716922670086832794372300584617903495098154065860666661418400323719019669002217901781237157735112122930877973992373249944378094520840582463790438151831247262903727492563354107890448690375168041128067900004508390979108083600506024584680144482230516426447868194904982537509153655099604709223516066082372443921659488439558677962315228703670019260632196517794474673286862640143382566549606366748751491897245123914074834016308126096507762994571220364637361421880213829019212344463668984660870563027671660446663347338872242336392531018730569640102405883564353657484168872303371912535749467371226570939662822672052110497188051359918622478228709811653577612408134562620176767111521555238507721346526731457434209141348336607909450970801080852819011337846026189169721441339990660220049730896417527365512424074681671600974796586610461013139863697423646036524904480508803640284352086855290983057531015699078831294652443634013366142330033930052393439673575661184310594064076556473444883207311287315648633268944524895233619843830391828307333159747288346559372345388549562480749062222608745048321220070408425620838179235095127688860363114254070947799369544652100989343164098472032079942075549534123143381778217550499932257777804849967224432977866964874025016017225404307534258968124938255294928282978207508165797176782105687083791388687360176805284254429563085464841133898885413729345144846452766740555500736823584115260217799751437140491425406834384024935295047399737034334942278764110262180300353045889453406676597274716510190602117687722199522234280510986684231288167931751300377944859747379666268284295719514018038525006482627853978912506872212373490642150317496466623074392245543877690258048606314142593228093597703641928814533045969322655689940398901599300683443958983905790514417248309108382093279935722286679868267919218513086356497369632897457503965954481354848732438061762555089507891563779854158772876516745880777497656019077320700014541148096791052239468104373613563185161323839305874828641521453598146363655553675766363146458473004378201105122180579850641414380337452856081822571723051697100907934201555127573548440506100384302977246007524081203625486975387535359443739676804421959668674257039929749365799341861648510625822037167366629476012266844080818169955964305142437994754913657724176320888535829245366082631885393585501050327123852023226562458320796222695662681542857563919804432972800660026731298262332609360464646377878725683668035089352797337829662153631643888036301947772427909326559186923669152816364010382957349383437861915683101164733656011184558912497077018250412165317316956522580554488121241949689994246210433796951351492620848215021738195737893972615568220345068416682501519142917281512762975933494379149789041259213100932848295305018917825230777499949830772993031187746102934308202169779048586823393894596896409751221438416369640681190038530157935956625276573222859830006440800545103469622541577230647609849373215458974129295602496404513666210520887201253486938156454292667637601639861231880145953617684017071210698045400888018309322019756566188821470606146668381849451449494746092330301164405820193591422971157896343231168266369980659344341347692136846637795139120114850637355602143759002274893751270050749967809077934645868474216105850917834763660990103671098146220667340261193792100847200285333151610965046884441184671826316855097840101676067180001209225770083059400562018350628829363824942402568760727115151431524557265133034219560509696622147911622236138812617072828753120819384316713012161805238586560984492298011756557505835351529899836891093220039596076677242955871034821151259992962535155682534724681753525121355163236387292429185189593705082546734937712666835452057968391235823763733358974227627621970614420068973216555387416145801741685992428266756950332723383827829519506994570642275613922570343340741886925843771996949515689468665436675569780448119562036100520037338708371732097023511453988498085416288805894027356852869413371632319583111290977082099960131250396541529769632265087858194966583035825604515554421662620771725389686849542146270901771466826728417869120234936786427453590539926291066145295852285361515311442959458586994795180019738805330375954959236127831833555543642936140948562709901027798636524077524157208052847338128798178873802998119485207196069186395807148265837101576132301024306822265724692399854211461515320942658893510798718653750301209640659974338839313620707920135427322882689569881166242707467962970119464706707537239018049471386011769468190278805840817024005948842250084338956220257216452765689636345986159157958141602121709605389352717220780414306147590933544420996344219323499453436770112146062361417457994681442004620460718346917630409507197293659206235203537662611485928169628990878486766703903385019164029394961707148974477839841029332879633237687200213342704558881507065965502138556626124169830680292504486335713581871178650075566307279640742742412332796961219356251085510441348302558465426037169431998230977642807149161166082660571172939215357905640499819198175717500940161763013111037320425165607726675754867827196940202549521187141376518291234120633642864864425765957548497214185858839629661850035356601370617889790091779100229300346968467203368443152162536764099576203591905580292459086604399807203303259077950905716404710760362069462244483727561605588571262773860881247323196617553825336494422942995834487681224860554916837285346505625704410159187437831142141184513063673526038989254926018448322610442165357169166629720385647980501966508127049671069988835030222569547690685103991171022774820897500674935913544927247758031569971053739109246908284818809436406178360399635189896672544980259981705197770149413490190320952472037206584316500075389584235478785029086356963842558058643054620128264601975457110164985022697689454725168019198643495066689026513604306573245181462608507811842304620675864975920353584171833914991290992220298414858869301640057016584527646425589163505582023016855947833561384562468243009064854584900765845717676509222889173965894788133854924589055632357331643535403080474243341976992974809016182636107542221810618840262606827741449727406514631200039142137118678324598510999722399277885138956636875575583604602816710013196640483955671349727072673581762687301548347642701300947819488269021538647293828779491539780844356155596603759681890704431282571950126973633750483244668678515072031534407473749348948296803520292154433967339861640571470124199369362681447775796428755908624043302154371463219804838302110509073399128506689022374177454220415261928406041447081797632090139978620220264093305558297094933294056906804179497790479403595036858189777443830270036925980404442782563939881697906911094323306776288870326544831883827540980254777953439465911046073213215841636028299731651192030694350395658990638629749454729895325096146143661560883162423833514594976990378257238288026532464896961493634582150476038737813014150596438323700979209075981190508046056311772071330889678848342274880183982937827212112346141122705422671406251649460389164739262186358901962710565132264730760527330341600618689095390875813651862398610142791130520419751165131424647161119341517570460878987902525227542480539477982762399819794794960204109478896372594417315924868166658107785224300575416520977358769592328471235431386092274613017949387817297143507744674152376687758897871055245101077261590027344482081494203128067643251653944013159738295105560030015073666762437276085480486541601139359233852730873342549201204392694500945195279838946492614679695801304324903913392017766830058919256088401569434111488488201378494018300578981995539601980691116362356591122627838173913430572465266790923157468985604224860333066542049752257810228109659122807747798066012819683183420264577548551059756095964207741773364654596736640849989103091243342410982273867425950927156787322379855026110106336571869262406591341676696653981722737926049148599565675633680317818884532514718036216122660244258199140547974942592973798680416011457381169720644577876890092154031892193958123008438240022125996305946099921478982848074074683360262898379048814013528973160536169732337282763118540623613179675088398417287349493698682543443712584267958129647457908753612181508120148745438871281463158101016848959745936659365374786751438116333240347582496373022146385230803576400402659668242284320537658396506970689064771111292553311337872249320435015662919536750241304467665424260439149824648081212598207162785281696995050655696038366643454832389217757804597458726981791582945496830119608804170408673809434711257910259018333364477307571127031805676622534326611729405131206650373803871829495188594165798722251840351957721651420492135085248198399240526260756581719187940206180245161978744149278408707629276635865265675064924570912371248751101679149468061140980984026705146148859791855043928318412784106419451008146165169805153729108337204615824476265167581777105307976285611284196438699838602340070189801533683944552836433418971371071053663133534575785973078780259327604767541531212648615988879701708744865328179726338971321369231318743008944430017013774206854925605038779893985918746779931766042525132089183391778515670288631085825481107472890232404582122761670414951752411637014531585173570185781715815285253396302444882494583091178554099828201242973403614089635351626629040072047346453771517084882347038241900635485657805489080533860437298544699286811984926564422612368246264590987909507862952474371215275220576477120304810955458564656455997421301493700930881793540119786404653028574714978461500700297511788166862141411072991660637744853913829237765654470608372517365084965551570770345726105889820845187118412464725828679904249102189291957581726454842688380856772530387302052607763748543204654961084436605582199260505800032862423337306368800283277801996866140342699316234996903255219673301053458555337144877112422826392324575978959042253988956321132540828567665791801606166090274994853965201956527079016745210664633792831448822652199959273462746557425982122355927106617826236479709818789768699411628156483035232656878779384093090566679178527101889868525580378249176985359348466319037794997655854123881811905390750160735581025783164332279827300527553342305547780809242635804371683158294326731886585439664807890968265298016643855029198020777989133725362150227962037618600057754909111949137742669366891796433590898234821113818095180204409465532930175967598930012004258535199065649324528973207339317487682397299687028058277529969089876217767527389459938136079787203456465857608345874923945799919880068812144117021312035783115657949115330276925386925252219018989172792335755553033126804422756227014728285143620137935742860454262149917178086077773226396471851478567461712284106285668614557852950558450490300905711193295137178714160661844920910287752710340396452074212658809928638843935581320749290268662529134391812576253638375840745323892816778054663744994833628262189900129083432077617288794150587985626442624108327983569640980353391514896939177037675944430024615029295633757820139420901040199274752305722234462396063274282165737540309471092464828766919652239999105589884134442199439629955689954111584565057892597507617570314404670794001178910723095089608001649227448329122218101018925388402504837594830753669430093288358822561801322109376579102350587431660806614189033426692814610693469801278511673483924923708458778690973188370502003679139531882229502189305113272340210412501301267115802004677984168012932341942265161437233636167696713084506383992801748721245399950580724981827192538033455906503505861698219195662843870795088887638390518967116096743881122573378461924319969754190031446322715040404331398391722257596566060975177888982763918633347974572318944310573418743827696552708669140434365696446237679331082436704127432208128052651165765935659408690776907227697074308304302744406173999014206135506349267066751911947823507503930716581189327234217550389504964003731612508845970432497163311821480778070972297175713135093885848485041430516556563261493542875944911117330310655620235396726807375745416699141252616419682740124477591224652267335173866524590019259673628299837447485330540772777148096609817704021996819649647142809765404335117785690871316421406377619680960247206556117290455387787357307429799823239024376109558298913964365646701098014655078526267184746833620394241498440990941482320084492020012080010636913022769987614326839575774539846355668993545764011537939934377592399936791793493538420697468432851035566816333421544536846173233933621437918362084939476215809650797674491286985213645750077067349060057858856097211785590326546961745535235155960267774972251744016151624405622714147967851301480707712132402133559221010193155541432808948479242653670022786524102064082690844139399295609650177632869281878279143475285211771295068259717168570409644503219910288702513321965298257998400415534746141640433274776675436528374453014459216228213125488146295400949906200962920543167534920940938541702561177215794035117095699490469910590357777941031750083265290501921903380827385194346243550040335118212289139643128244245018809145678775421167914942189793721986250500303585298466325776616145772225183448282183429981344385140475212793725451957624938430819672198260980441009912123667303408894281251148042577534601362381886886575450753662647220569276557707785173994478278785743088967886278326458588613641232016984068988096319908941864524276766272196793066805225907720003198352401501626468326505327036689193492665594980979703800897950608544555517930931528653287116346236498138640316902536070910036950475802615005386877493404829628545512960580571351392810180373527670779467008248251319586335342698764322163892794132443004397845012855446062820460126040861684807123476649250374069854832629703053497189806673840185055868400546731499424917223270889488395437383586756707117867111344437977453624578970843112169426794090895559637365113308050409361561902555714452450499958147571415545594339648486384858201652375136948306791668539466800827593826279823793467754069327655094174293336083765248384061698338557400136379313466023695928317433408556043828409189930484957925418702665727811225180711002483476606459365131482715312426824982920251930722288321411149581320994655783963498232267819286521963886076661470592717061995036222948389989914638334072656545539081033058247728153706593725096154873743901730400052055034935990622389448642048651324127778460838063108157241581764331298444682071535867882316204020440512920671294979493203731374683725746323843770248868865344522442964179323261132728210182839342795919548869026866586387150272501518021954928696787074041141779413689088361798008263334525492639566922563579195641006330838716756433126890041401712920852920780171281541067795670686621466842631403945858679174802943668133641516189130183762223518464525254952416964553328058675969834698213397405034499122634401906509594504551717492537547517639069341384794189982124842666431591873425545615590565526900214610662765003080270300059783307407191652344289070380785564436262476683321785439255289964101664088864255567290661086833184550860537810071700170672194920980411863039783131073334501553564672687231902004055385191910629637300952057615858108104664472057262840254191099474272415689119618108217853500923288098164940088299510792607230496739559768733646022461810807252355487649050137515043727283592302203489903087134780036098174607273334128095529008991598571196380738951285950199465202540525940711428245205114659250938781476996486312529049177499548912292279973756959032073984515063911492229994909569596041884656746627643202532592956598315787455397553729060658195566746718642909952604220151835835326754125158613283095016261434237671268637601198462208229314520271757230424288841483648367740712362120397879312224423617304075751231555986235809691305316935584224903837946833890104560267834606138491351179756408500110379801382578951838146330929124203750759425283360936872004089099060362870755147406720046690565385820267676510499005358682080596025934907777249593590826185719214733368279607146442331561573774766397266372362567812014816784119549304050583571735496489626910755865145919955030987375941476099553941387144321306041588019910704365835348599392233479418909627892321881743465694848923695005030547642782524896069437900404902140982496551634200447410026755130756285036526333485090789666228290480500143791356812180350956252090581151100424920124387999051354463145122583403876945767684177890743792380839599696970408910066823751521079999106946487487412919146300094995193060548259116995386384587742567213688206511272722644757851391959906702095911383863864456856036107280569629247628720803534946082944028223542222213679168404368710440017004010608583723960622414176677802679938007193077226874971941207349705810754533991100932322438224294721245229139457148221955336236630680023273959171128574013420580883181189557387976473923690695895712963894488161374312788853433951097484102977993628481550242802851150951954651091505413717077580821376908278651766880033718962036790161341875821064976905161175575135660658268996259766231972549993508813830727759860445271834207338389177949504543992067969309222911759890118016723266474660895442191947639261423244448961521303546908103531407906505400708555661478117653798813069673964969069986917406754727327412017615786794032563146835473419870241347097167350735011865937449216184972055608987105848425343534931278506101051113144576945667180771024372346179547498399135626405122332148278086588465843341720895753682194278176033996421847684427133914929716670082366709695105361294487275233537065967726970957682102635212060760607772987963210759380438674543215905190060161614131802579719137520924434110384926812045875925565231364344984195441440149062014076344883065446696343131848513957472016699672538624102724672691215378959543813373149251098612797790327720119289546961918664813608232623207616207597266260082113080613183858304464697111731803340717123035986507883844914925548589452603273680045404353036082645142031879484383220176849155884448183353504621241666751140313711814203483370392109679077421570222351434590532029903399420076607540347878217718612250634332372897523991309296009603250142610266090489359935916148003732332711884037672432652559363169875993265594230816917256691657644167621296930243780935208619884008736683139136120119224747626876186022410289339521824900852129619321186209953000647500532374919382829755263229750542424340474276175871297054859398856891621865945754556302332945034142236856708402320511776839509003204088102075581634075666008548886376713545927787836248066614985941167930811493765027290428022915944987740338614482528718288376422715620708815033113877575038909332269437071747510194137544898748606345483968251854864972103149163224959035885084388055892539354731904378397885285125628962262478660133318063482969996269212980363406574965709798701465154051914640054465205510653169737079946976444894704251571633117825756864150968130600636893750191272495741517423050109977927880099284937686569211876949139166662031375015913371313508108288944934867904630409479805879755529306910882975794945258958440335143481728530447447535325177111249382399051391858067685112443576041345295741340618743144548557534234844028701342770079192166572280661734928945931075600285238688866002591168125614334235148295702816349565749342703534646812038398309442671795354757659739295013802102214705278779947464788655647233318983612557299344513129879105288130470606667278562863450063253761352358257595304919098505522889347548227334543482423873598155428616603199234533938059289541718924070761836164864534953607728685524211934963090357104884935536453089402794627532505169079746239578230909520690613113113986118590754146663435405367489284227367843157030843056709612458496204056973256791285897338757179576881896501827828092429428316117824630981369567633683462961557096107308409435213353142166511111415662694077462265318293360854817212731518446745941793265364339372340778683322893909773419986759342052928430423332557192238551202731251918257715795507063937835495584919260270982097664871009260378694488358732557991884881858163063139749405218299029800002922413128277815191106505308980171588816314119358897588689537644712083051299582598595838421789187278843419297056545049392031698513458553291605182186206332631316018556023225348095318025155928054068899018959102450281861350678141503367587144223586549616596431282748460771310025777863985129324011679126503576114580546029587495600117882633069372549599347342637205534705715634497326126269400825590791276236024913495212340400451236805403033093784289742163704045370246988028971505092575764417906952979956578156960912639992654400753202047936827149852127266009214978008972838181973566577645553493506455150728629007468061910301915542592271074529195870252675775090758011796417694910169836411178243665720914632739636105380224718507455310617148767796695251568640420101786819287792135762803500333873834407502834918172298171361368017640149854813187869862767206138953459671686535018349641165550294104692668336825660887792357620859734029420819491359862215971300564038957680555290721789766258066255737461100357066439201163646739758550565823810424907419389057581765950162955623796096955818549869937265512127755190409557826816559932665426132307659692317633382899015852909865606157032412243172803269903139233821749330717665420904681537172276631469605902482708766169392775691579425327868725047780961472606834701835696158368176132244731969387318166591471233582493637140258876965018941961502919434329203804522298372944697212323608823460338611095683345385332351735445643114647202581029694202938842708233124735699796034057290065526149225200267474517870725400854042229096679770639271474984501259937442578645360023694758262670615406139234415548228779467950263734727787974474648999038983081502960591978650139932049246989621023741777168851352415179281580061204784633824022033341953109946444847488770020738599088689467908870962015815101337299733434443654719355105898423383843084738638612006597670151994858257934372936606845843263852568846387224980315704433694220480701234149267833748231813367862646075978825241228414444488794403573553084723199698563909064392083600173529657908087998789667013517564874350994483260194830916831731644761222253591332047172732806665419340583664348177685845836016748333571142022227896027200284458373278130506312491727515799882192227584462894574887056168987495064358945370324345105198443387903885217323126116200030124903857406136453946593097182725153657174323148436153694729750702191572782350726524012674996135156623875277876289207417319380243112887236118368078526381102142327642818611876418711760552087974745019095926832321633566836755153049734806014757336555863562884947482111731461004840320884700894509595702254320315444230067430695871785032552271358169767924332578701631673479530654057900775445710487607873044751891179279650535270775881898124924383110480542429304754403004349837558793359313649068988567567743836202114189046883613316931087260231480001332886376682416250845562758611457241370153029652324258990186973519980805586293550385665262689351387790528212834400178193482728266579163043753725963406603520167545084836596674536327603568140761591813717030954496209046949438084889801026166807108790667626680045242565099479525383107535855867221718746947503261036283216273519050301904690176763268128867900952686738049882718538818621587216858225828916747744859457579100597750752815327220084614505977577162160176948723474037809428090144187711745598645132881282023782042947057890537382151613926168741828202890367804421144625333392820993618093215553764542769694265126045310189560047050999424621238659768067727073816798781292486734305040337279283194633583466841678387105552680292497098015847044127540703171230289485610097427775880765862988144422633687106292733288345184031504092327421231866046845864434455759915001501901768279418510031984555849348896884315129259652068463059861939689972094119082501734538066923677694185145590269409078477583890096977429407892974380621671721547308968282719050383759493325442031242409237990820644011083546773077825036334388195820396674064267959179533724286734890254335353453354582561070862527089157703502575662704003236375674891453338139803657350313585596528482355546033788885140025186918686559160965257559562238659148245567140008427283439358345776506125533360050191189047719069811872259105252091935221408161666226769800288705244816195066841042782658740598795262019524844023476981933819712277076753054051515536067255978281812417856802316551893586958458584154342769954154919023733644550858776927084548996144307422945507233691652265462989248549590834084461764351818464373404967140435997899304829940331339590743571496009909360614526812414516456016156981362697635143716860367045508632079745012509653939262698198904565835742676329637606498190850563214031283796657510074333409371527190791207237259418628602422966445619638971878777982898083415703545079463975325881956600162980964299170776829411586127673284934969013266352944174592053660304485227316033132226709326714842479028743268413999500418420899841218198856523176390714113035384751858837817182930720840679301964700026327322372905566064385507036297587622056350930109678127021341142943555323261327902319235514039236537309050304831921044517928914085789322119089286426848103852663067746976699277910102943103502078950701789618940933703696796227236189157973679344976258393526010320897517002852855548714373614864683216400387111171120733831130242256719496044576513462007081033306559734233720620710132280516118926340617241228312474180733818760511650780421877736504778474328041487759215124413022056137846152943938077679915567342650239459019734792070007048302060105271181066622461045461428343035106103187872295705301180926051134062036788387738060597677861239029803288657031521577880489023370571596353777853999531693494233318696246889328686170898613582263203483643507483868037487796132007439333663386895678969162191350830118164002286670274986468149802018488778585591257473210933178337328974133815114873720815012737022910781606494203681800067357556735486377992335940954392566900604358004181717826237778800450981162852676882120385027615377097010576667424570060637702785968591056624129954929340984999557800304248497673148893495306155003754326414003664271302454253668048502381887717276151713904369737464429267420213497432428831289332875470692652575382230038624706380140510614778110361940433840912639864383900895325715263354716765941962806088376731924920494346697677287663069210845170191340008593667401578548872639844763665391136524499055862991781274702037067900413444858747480364716795812554082722078028171707833135747486456324270364736027445576781106671178755967314815692351749151377009141314110566293250749781901015240042190334893450035645181131907400187111343624236912025297345564774084872055733693503506320371216597654473087962890150731785868651483560484525116864750772710839703864506282308762313078152247174624526908052085917496276463610703749853967386362323687323050002463778229164322222155023655093882077789909738526795978241907608782765128700576823410634890224906355771858325541486505327169459368882639411531199658577305938105925649082775337869153370065656763317879964567878020425491430095189624171235270451753328204550307573593653482334816993140044730842447466370958221858648243706177547150415898556409629948670574887617176341893010186903977938200979940834634072187476650928818806790375282186510747361831103386554658300608366625333703858021968955887028963715383882876209122527441562654823235988811950806634983962278271804731756569322640979051544325555794951473427286197761266086289643019801142265426952820353329846954603407870447590628512162558217476401235490023698772456049583397039965217888154403724737768325980591034697275001466906015562052710631960165006894853841715248290172744490498080642139045529008097700050787137029913240164127299627102594476082477521345964369284337489493827262894485149440299453314091355960590355301240648079276351717640363889354921461187148019785630069376043442917395212738267114853588769201839070378027852895513980068719972109778317075728790489399252897631353393228047639858263713280116956145863053896474650890956089119814405297100268085120861315118892547314372932456409753966289625619875796382444482146721911052154949917072870658121670445936046953390517337255523615038760389503533194199200871805901612310408237465978455524166363032335376233338078020031364286015055220707523069208412510285184793662923256329889437492622247570761249467691527517101827873030436324370318647621563306875380307799959760386226189519951676660201853100995136182186637300291150042856204516645672139036545137267906220173573498082026775688134776085357144075216687325984028226625326584097524424847763967331724827977429037367810242461465673314503595628191309364007022226277946572287154093808245770645228823643440712481140902632861261262727662105278119585078586756391622428245467936625898620707153620265417008157915298873688971160316079277525173474040672851335454174276108603184515958156569229210461669209806199381043536604254918410142755756026388370754701358410946245459689051027597960497935653666275296532946947300791324949705016859408657851511315071082697302299647009143688532010686424014431336427411756191031444312189855965867397727058569854210143383644019896181608888428224694902233077011718085654763461284502189298503442083714011898492707950739118103488735932650312910934532264427828888025849544847564746486320371089446132149972997591132761545334650957156043412512947242931486340016252076251443300950150890851364366929894591274110809533592274842552195577374420635939545706224832718809566622830049071961157344888833341628120202230558060647901208686166195777379653403295707986518635280976763486181672889306651084570319155062722950254907929467114292902228178427558573555336928970182477685893141413646777854783480217661433958887864396533761821725015130067909232753802289234711138784305076792212897400837958973947248947081000788807914680880431902363230467003733257525805031084551086947637909795065379160856014737701320086995998961081242677416620250712269399395315295919611963831638025528119092371470493984482280848448738761599784142661336177546846235927365883140715267742426394583290456500027516676728008010075512028699628643516986354928738205000443496937327098549961867138082614975795850650988890914336338300093136748315432159319437173892956998614590889661586579614637074704088263759089399775243729893494757774980982545885580213906628572611708945249796097237049757497095497968849792426553026874524486688173472873683110816887660878914667834490176687707407953755565273412714836938741653637283871550225120103875403906836441428027405779228536355643977889692594858232707494391384779709272130738657335611287492409868564488504644191275107055338375206235900756598364715517354278233768456000169340125277248425406079646041099125315599499007041337856465032200068737122925527741672529261696301401545592574814222873343244008622318496864618504422967500283029034072965511605337014720232685426993350499119380670487356436063645052999572790361662697425987188260888869111302903747271086449204648997089357052052862074899874252114618363527056647699102476358359205291646098117270550720333250849990605874078525156130081237801121629118607510772418592820176748192255451115634718313938613788322523648337709704922017414566167250492259468129975634647156378315971305915690118360625472849363186998939441990734926159700406151018053989367254674387692507041700248912241451742500559912465318966931072067432791214076729445060175117554321195039623469836394035861220597133513460241706363801845875480696541119896128017116617894737267245474756757778031910803794959457315538622740907386025282289669201135921091398734151464104436179439605796409106199202676615033347582897476505628862780897547251192458650934487631998903277559696731897408963741822935499321897043859053227555073573554887899401167302325047353896428518924745026143180927734181588905713922594731411364030826167759463732335178330741611975719635285977099275488096933537370054243488759969330862628806491007683362150307441315876076876306160925713062529109561654197711765291380407024752748038456937987859311805589159868254494328141242985099367148537080976377931160194827567018489692363521018709602735318924716408333194175642307446342698396208956735828193895497930495423013230875225117310867651487764425724793545979088366791192969047431361725850262689610700752971130844629212911826083896581484074909358244512351076780819329206854242862752250771962228023665123019921509759673324796655088662844374321376718156901351813775723607540337210221915583999027856056854796285938558547964800207603737359596311632367626639645586019869244414550679377990265540473215447224464281665654613070953138159668578333192978065121641946354476438225497434370944266174319945877801877613334294490579700622035200765749343186419798350153925278571199729701308380218078421207759918366982742019200126892344984875717020211389319554575787730829052950013104776994589880144225931565884211875331202988200054660545496430367969836665485242181770825540222523642124416991806322324749906159455959132111377093280188409131524795923559606650629968971288549735677961330394825209805861787034078384372076452680382941395862617409476835882260598921416866789942347218427086591409152710899348885567486356840202435015473418863912420622355694187321257651183191419272190588137969078600941809563746226458651378277281401135824477425918503095376000857500598792460790546731379037810466184379888510325145331003891596810796046681500553259678837138881569343822225373044599199555803627959881047785925206158546593964450085925240574917342911598872428664466522073079536743867988454122537068869348153811552216881822497306356197288594959798146158388212588506560990985842545986538411370135851296777676445100937884450128389112215434295631442180805164964495117985431570241057087208327286377633538743831478486152966263149863813291757130050513106855463139791894290191572609393861340284299136883325350261139922236509803528196548205146939592920580961245267282744968606704246456671381829598661715386527929894152153282629170935356030318114288195577239396083167906382056720593178031350367999737640515546055018473226074180552218174356157638088216700270028799407613741371085208780286033514285423322851581362234898737137699107547805915197314392543579906605832558722202340721742742547578111531021327375021519723931761591547320530681890775917030091980333975569040213799372678717447961796227885087257804959144444368499497367337681202767691382403102713922919967857930819180858582378964543093865059936268728964788057106187902244698116598927931769855967048889579652758422690836025709823915575333067248359389489987900372951771852268682330296597240437909685362050117696127400515185094899465139191359076837207190414243725417441572638403673311890912760572726682368740283959259198681795635517636722603753505161581905090370047305267770531523722324599307206795855514880066289603560650908022081037163624806737923085482648750475524503763034567586290655652967059691619836847723133152905002215761648008562415080430271283774240503369866856514023714591207343566040767068132059899461099829936613001453870847575930536160063640564030730536752816889188641195621988857493184234062962962381871119888899211668356145124443250165689902332015343903274477096360632354429223445183621001664935532613258020124103835098919566956506789886763781856695280187238841178094083495881090464992544288257529446052304057177900419126240839107321106262647078686786872443895188547701833621786148454456221847004023981187208447629392856462124427337997367441314801699050394970389616759747572443254679612556417504687209375819883620879773789242376097963524424439183210656530710352142699364809620728969741936082692848339478246808442594232740402573041687606885645540318674549268978376717469123808771975826259299473194385977910788837815797927604845708760682477226836658530184449701042610982852595656742212225197762688974724910346759545574666857458818459236606870970675764966064575510119480084198383359745263292977847598633995966849037751886677437934468098135171749776372954843767604676681232594199725583309661344367224937912272066015602876723695971541876152009862542602099166730518834323150121759515410915653887771925756574962240953292978117352350115109437931618871118158527532716238596951384450729227364733843300715460974498692160799739290388613453394695456771161757110071784580318422172955650900292458497022580138333889909113363614305621856295929556661387994810061411303566436726427798230331035576435401184898730566192839446004324869900123721251537793645482017996810780190005297209482009858767019379767668287008776894185412225461589496855428805418498139313947608676702146791393461697057740551066151338960133966184342012746773009910814469486187895155166939136425217687149319845904045895780948887837694472543014908733216081498627349814951306702869392772373213181503040401635511609233955818054597160002055508301491225955096837230211755591733199389933263845641558179981247267101040294891670415542822617643844411731640208956036316856664036019582835524854314405211641658371405359366310383736514601224202092246393320293612489716268445365686026194591682719368471515588289828179479083915303267378460918100074797087158908321416719860116492317282840297267047921159712265877111679518746103657749255709500992387473707400987235401195828951026157435862983217027140791463529372397952192115876718716051358010560125228977532414066344155509190973127606785849842679231527323613897651052947060526677266797405493413810009886792881243206242250807575557768277952563104540806373947652633697560395082074707379918725252952406307432429147010565057903209696649203059611672345671388445668144161907838703682801043403580067437747053605856689777054164923394546856528533261815545675326642432039025665846011423387848057803590106271153140144007962985116357559113762196174586411037684344032694960858341146787061117715020734930923618820408205934045858407091190292965406018570628895643497324970567458239104618190341191068275204711829294007413435977519300372079582813560354356913634045481340417508467290157633584556770223369052950889858434723579050470447398166879858997792104441341868563194568850538655460182200902170180217769150898196208585425715687586077067317626339667287570933824471864530970683972498330022891829836026395488335088024906697766513299804098117476196316605412442784577137809990569077789321528916368352732662173913109462952815780284854002440167134782990709835645479954312762704260254757642295234722962632789210956439093343934788088384421157842985889937123871118585499147949916241063963861941798182913126499356140505813126572180116680235981811291611620297074028727778626320883440835496184440748242822240312704293767216262237708721786524433928492833327063915171376176898627558956761476963094223044011640985588137122478693222759966972423547898912484613951232774184040260316291065586153065823362858268293609474775588599539368958794278850880466887625768150773101946714396935135187998836329964924937916075628926629375339272279103567028380244450245482393893628181438185633818367976835614663132788949657439645683936355319552822922397110973763683684350472790320946999736618793599214963148894655900876091386972467065286966809215607924391110489892200123829239302611228232550257271496568919515034476979136573509980065173500081112035019111692360130943772061934234809627981762207026955871889291082951793226942086270781729217562424227316724519923695636135647687139377174743345452616763820858033086330142676948243296777708119005661282125331493580230913411868892172251426772349897569472142635457855146946827052971303564268248730330377828719384361135644026472936278415361385624450944637051863720393238484228282623196671586325115468100256486213484851055599606166583057009567329587688629786705624692355434857167046593300230689156800772382976498611673178320705845868852613682509501690250368459519370947767472418064943387668932071435673354465245399446005583123565637854555568745263676508113040041705291594501954976624430730189193882100957394014728782568522552080789718039478599518585603552328602890273939605772190163054736286529349330255304095509031793399486098141940621945958042030219692446711573730453358934100809973732524730287869399954928363805480141827116570209840932846478546427739294977271501627554104122532759749064355237248758765415203846765543911699032346875330024625862053422334901198322235651308449647610974120679799194278910156020188626635140587621358503713648531026121637961717330198320874486701228429874872776443802550895538531035399740240206876576985217203062805170104130973506139905381684312745653761631160145043637040068279419138802793721432951090658836319045346042461225070431811686316383147365945037143282218126160470300671531987193546871091056843303301832027057169759880820042608242608316980262078136240159368703966573898963621472108914367619468409933166414566886180968994816031952971455203124781821738836179032551107377835426488034663561297987834131412102459265463196167477667668415311230117040690394645420805507403213946098129129153611423190848461618851207679773680011387441758128888134665128842274362910461201219487633374672206054624389184145605910606550434449152411770331202403286402463393577592883046718756248430641650863874476582682217290545833070966682463859205849513682556408817797307638561536873075817648146138954674544299717839477849559647176737639131292722259857103408228235594790221559416214123987781491397240929059954602825053607937715047118584077475259665521453451331938490682349560299398131009612979623619536037904158230544154690007939066741790612874870405682399117706994098104084470392203816507471283022489495564731853603605404000934384050991297292817898395062813449087789057000623358448176235326821518751469608907027823842281075858082385927990568534576602815872505440866295259293460421621651884110786465681758629606664746057857856368605055269028597855596890188346162934402726502377652457601898328976669035950127108657601696947067752358232354792965268366793743630726840604209720510077723159369306612793773349828773070154242372723256728500491498701679258579707545457108842018343934924235009158792820530144369397922320237122600994159934019931645785572250951973493446777553057013931815038339882160093471742831189496354102174137514396938156706175251484909464747735837177201189097729936148977909624537148786278241521593344826614036816686642581701015675088609854702059687738600700612728497050183313590064031051638789493537753619490654333456407115529625913924228527176397615966387306224271723264807599920019348505635659923888837947081955157066500665951437831337709438168660089376435296205411593980674292732661589183093474016275410109438043055304077645954473684258387425459033379520518429493399515348748437817553006329028878588581171725511810774021230845578935656634511743643052760059234133868180230850909319178541443632521692304055965224950637955088137731248429602257798726257403842721683884790098227352317790015562025699100964260706987603986401571300109434431285570077555152734490433099334674459832431690864344832822235236129758737046915280365525872661076511742868193624612764529160713575452995176835904555347914024555338245678908606718035100585880521859441844509445300524478609004229575485076724651308342805957777281740518886936360788295971337952285583376940245723028225258666418002866690080415447352819923972661494061934173284071115435856137047338743119251669803877896423433221262247211365602824237385223336886393830720239516650468734350645652126887940581828671999278331770736581019980125238225227345227674603265497293876067894469395870988265991542145168620661621573992386470626044879655148545786736185301207971448040766084718949459963898012316589333139965644209308556812275909625406251034091193892569714859901723013299013478429883036148984209744937596813072726417181926719339191805584492311786250524157013927959394817592953134007384012417541530212347960032161422733767580929040658541859115318623500355228224242365353717268008697252228068410266324148203756319887382279206949879517412160031951644357466884808203554350362080516979417942643510352342190673035051405005453157079021920551738308152756550281006317911559754835019797690696770707455776263170294542959072822125233876386242331228694719148040573938521219325732836201928504088230995122854209122506282080180204194242311590720757646676701500160702987401554635980476376152312924458588283698813034728518346250782597133003775385577450960548819465761639927971683554917138599374296940075285605006588106504280123856939372395398688533564970577617179443897226558967558742890320535816612745018821994922604077040618142868827645470856165377802105826567513191514056613105780998250210671968986329631081118067364812830137198442205910094645474499094166707405087459841942966097422835189288034373871420315664831975902199847693121931054609065720354414968526788955708524907639369332869393736992429717942982568966122418696450173867041744572387113511483563997490176808951924922055196644872742751086797003886119130451922444128979759049347320338874671974679162946417710560120172002094099403017418912465917081453684144971152574930478603342994383920217936975622663328254884851625220119580084681373577953543216634379496756704224248916064456308571695919696383968406822947479349725798387294298437536881593351913483171517831950958051633726619500582742784518879241660792527939899166148750667487071425621533582954208860423097219963369320969913017911055850803528992021508467167248407787692825659071396098434049231375857689815494112748102848009535297476413874502719127603117916450960177592406062530818533669612905617774576908847061866188282424870047394622836500986016297428459058248522647413102429899561009993354309545042422060460556142833956133449101458227555656966270176178892287702702839271166543714117524411472812746772503510234891360778609716751519774423291524198545385713928211687768398108152022972248921152849464307207699974785555769284456758435825446810858390634070181361404718672424910415168360625580705145625713016114420791114879070932194608923802946249248889743538369696850391994298473091047390930227603877492900766830680097060346999508700145405886321393679945000415670293510284735698272104204150046949153779960862001796867648038352411513199618206942325272302173482227158303663107116906072481902257727827817292014850224910786361129460174506720964098250610506227608952428428458388597523478743227366800770596641801516632135472173125493562113971095742952439887061473580279247570576100447093827664979142387946493268451535440846202080121631358451717989357795329713206160137961755277242067372126623999412251281003513194162722192974479359189081387210496437550000691566705151420154083195655802205416283089560203402430125352984952742542237793553855136921967849511388816609928603351101747349058014731126171502276376400347310783401832804703230975141468052663837772619333077835715697542255673746994054310581595452479128658463543500868098054117682703688158155307495838518881551563520847237399966794440780837896095781949994765010637991424960727989365633637752026853428683320395584513312152671153112262382614235339177859333354904090480964816544178948162915681794877681000573452400949887499878989160796834390902845375430666502259143732092939892055333319375456327524369243083816732923570483280878752932694667532052457842276342775706601881391895780567088594829998200172264947817878756877063239772157880977364883883226518122629466417096195160937150995775140498134886899702875483411023902825120485001640337768095492490574867047510762242996047364178269400215512962250437757533148980212757270319917212763668453872126720655229325324923828762260235512378741677717035931590143759956442383382470799890321475203555443366192043667009421342185211733496297791148791903485808804329589806472984919411541894799893348102581780939016785785708584329189324379290160829000409220674468449241711675190196657813987873801416504673824685322728779044768829884247074041571415593567855087243642180327334020165282947350628490965494472664769627274280443100307649856151184454926110069815659840598003882804809050735974678263357839256634080184454448150537418317335617458866934518660852880089436188004806648486462188183802596244877313297960744511509798405718600242280502174036341152730047676394112482911717660577112891194767116748407122233807175123659866353641437116533780649843340668744708102990090193722273557022759140618998322571927511065435500561312092811296121078514758758256791766174755602954555576315837391393503911765634092018074626819201641008451349736764693857274231683926227086088924175297435655569772647993058098534412644222483185657598063918240610942630417478472125755656050869133686961660106474566455761034477443783549874026220801684821943963088100870261572305396148369422886375891882882616459281900680378529741008066639445654913210608246081334165066806885241500099760389855355455561199073342535506585169104276356930710518947844006844573718670915951839890886714048736898056950932740548512701221142077139433350731827238336920966459916551422514159873817272577118668447713956653977657433946690173834042609358823006529155251235492631136262202864068456644003387477583161964727090353765415739789088994281090404724877480494580739741478172406783807081535425637468993102532106219138034014232930990083089228312995815008553138087659831659114996429445294206432119496081174998066019611955332810189249675536943943129969014807581998819384659308939371252498519682309822566965658414248605060121239651783384319991552752713805435292329734609729172970456841708179820860460354873887656382338653502237238895864772467958064793724607189005201600861571847725263407042010418960886004956795716484898614795581652072840345574225033132749846647306736645756585144076003529627802105023687968246979736899995267055045257700088737470448381811699823805971406452119648524538696385514648985243996990304211276185286088416802553296443070729987886741345872036510842461216515607856466949747347683703584285515605390656043851133795494100535087831504929247643592888799928515667679761260899945790458987425335190991796546247126020581636661244423433832846661126417360006235530921717585058546376928023204935703659259912858905050175906758804020443231073256558034351715475485100535284318846247932947787614097847151685506762947879039455171680653350061559934172555620648099047568927157219180967367415400859668306011051755076215028477980526477184242197037363144178646838122089025820776887070534522859833032870019092897582765593917251313345491770130271337162690361324447558461974531186704305276346425083557279232954926609550980741754238867599765860746677995707553481855600611829388914968024517187837427503324606869985224614089768462977241737210032588496547262829681413564143749037736392317989563831390952436593006790809447086313780248634628777688491304583181894030789319332388414159208080134267324251016058433835680553899761636548845500888932699802536324449837600010589164038023587668940522966606405702631532416351309362213762487706471386598418139475729545782506386110272600009103445828212990800689949398045587370926304680784660441613045891319568312241705810212960274282812028265059365467078399738150780841893678415739582637137749288901991555572263737571797259464265781263352449701803029184282737890267819649110101923693046789911301064737985832076204532391522557521274868746072444443466701628778892953199239517427039237511685210327334831867535286499071579744555497863593639493166856911497063178771557058790803128734994667163455474413312689033393861285656572769351620638571243889293688111686613098628605888072477559120839764307640920956030333371824485496524557248550598532804197995784140965623793525461744525666945975317702410870642911205636756473453653305263654060684562429524222906825015789982784927180431628153303664953856961700759711384000940081027156836638115762122158100304915928850302125453027414215122988827279632269771348527379557511137156903576083249055479766904963367829580350050368025699398111152951436796616225512385984680304447737875385880093454327098564856787086266843752944591654686382546078946837928135974447361734962142117510850227694330146085871129013637546740492885856679975101418702679129623196459798497284921127566517633879361205019525795989567155651026241697121167293288078177190744130654178580078290838172126994549027988775625174476949976341475867495473150044783005150267726155498403107706568679314773164188761548233744239680467483328201606387336654376682695459548664368621252025448349988129670796299431827140059799442109337544290058327300997920036655985334104356924101913524438274357905357908377579119682009087032015669081772912914250723061896820457862208770984463526266358501975911725568128772011241787078156872359503516483510148239350292441646196572633289565798588166081513903189542359140271098667327284318621853815933717738706294811131404705388318157188370639299248394872575365983062172639500571741207281821549413845341872221722273566206179308240087199476095138763000574103670529201318032057109596134352290326699550911876873772327498256831798797549385108447314368101132997410819957295562568763914484481276935630452413153946266877816545371379662114153055441493444172642511817314336100543669430481662798286885047537637253869200888798671566710270007724875632467440575038364867356302495176865309094926758364703595905018901722944389325370884701285978685954125969210930159490914147712268345191676347774139407971951836236264205746011463931616890354816055145511777602020805159151007030077026709527308493761444220228677943673023462969646912495899699773258181565073340863283729324023019225343820318739071359786753276836601985715779944303938138672946211082442455447322620688393535372142361141278801133696031727354040721598487221652416218097162994491597565828886266592396093756292373497314208664607674086641314168721732459187526554253673766351098113345479494104606844970533752048973503000276391626032853069187440803569569734067257955240914547601069426977938497997332729562508182079614397841955553622442948024937596843995759929588576080220537172134561539934317800073044102611753010755887944139447133370915539332578267778728231184090377068837877896983382347858839342321520376646329582053826045885064046115817482915428978188741910903212023415109525373141521732680123646021568473749193284433526351455235476334473703319249373570739881402282742779892786107957735156233503202257125007759110367960712956932612895012541035209837313084248536553013132383920266121185280119009837091973078155177001107096882226756275772281942759797585170620346466625325018746075197759924263878181769644130883598076649640375572559995238939490213892293786597867479984315200876936490226948521765874421360232414849662195629934565895004249492239000572163734792161073141102162821095581007355739610097678548884851082408747233981019749053003254131765062066026447610007270727036204011529968454096946500826177477314080709394177732828385527401940984296659364053430593492755826843599603800035378543576287404877937488137254237478702247467245581017203533876806521179155885658917143757903083742288748565633907003590161519912248372890224183012682643350821602241015843809357874108728651136121373795895460493346734944699381011290973681371110323470518442284394290652739071884140286135216093457921583821611453865694854092004791495157829458697580838296148825561654816833165995762455621333232956046816015608291424969363365024283714367795015602714986470515262426711088219921794850866077041641385731130401449885884218077556070277660480575372525903349145962477347352996702119787122444457980790954722725626043270349908876957327206035951971459407116619601383352203102210572466141988158162110172753415581425464635875299790867726854037172984331371458479981818163418390262302137602289625233977876569468922288502468459910076850209612305051999234131657128182447155326466408231582098108776743364369448377248948661826789561380210759975041512361048714734574513258309333472758053000601615212205873543832166490660882740405053469110965145321218345830928216712522097499751992532527398568537179344041406963392452699306893215569625569636873522206207496129346831465716397169799441115340692961437267734838858198012210796002982404420288405819409805837622846256890708410747295129460700494690255761100017114868481784193862535087479743823777530880096981015787522133281279622599504306264970430092453230489378490291382848027224053558777955801665209229252665063846645715208536655571451458189678129075469033691576832875571277002782340031594725895441184535047272071042842132627996699045018058062615797033137557248898208973724000323744474934415773257657882245227265948868145972979519892118902519849782347921804511984236183109768338971472752987895273910727094969601075722653961278190001646784013218403183057949274196726649937182008596253013831558385567303544094570253011888549508072424066708431067520879212823629911150409251998782150925071858861511349318842125075954713139761280047265565484124625721920583921124383353851145870226498235530897889511128027494822006493348255302626332657887499448653025221298042159305838440722340988321001779276592760537241614196192153536008990864859116819384515749793073266618603910604805838875978862836245843572225405014390508120273257100666059575633599289901783722137182380420237701533333784364954244386532341273132563137809325013103819746633671575731254035899668225277379159940612765863118892345085621238081259799518754860513708041865336721350833231414327937064204907830054365361635250212474804557064408525094664792387913558005804280917171645246953364796635219072714591582789093402285895790882985858151630572863959591710911853434374829792338517275624313537467922486703981695955199299987107012266377129233906185304840275599795848193290463028910947032021891138611254142461621849822738504536332912140103896577116306182448790987068242252637202333867193967086425808340229597685335253700437445628707961559118201404500588911281982027701978404862152474944652446507930474611334624130325850513737104566145850145945044544324631972478093693371650757328660322999878602959887083112005372377010855041566452813935527066911655191148048739669610778701127123343983938526026237610868451685780941062107982357733334384148518825340511136349020769331851064104571402583556614200045803705682948647539430893289283485472025198305439659874866662618697098549695226103849462103059199987092671579285121603981273938146995664116738319085585782168481078097266265985222768737196626426900623635426799569357690217928056289583299384807932690098854717226002903346791930748150040301214398792026724688635993871025980299426972743593033341328467605168593693297172972238832764995713675307769401759133094582726850343336135547497771764309745864015600381802660593359873300898171887497442161648469663553105688415219357012366642118503229391171826628872946069882226840980477793287979658545484203746915135850334643769803721778081286111792616862154326291192331013504814401633638908359115228333060178864585795429621863469914754433188582721518643660337359311305176981945240522446448842449130513843200911964158817800846057050725338456400235233562208120359562935645181084833638937529810437266473491980125830433249614545988869151706591514914783089632496879309155264956593627688661752604799527252985088016618090596960398244461752601453108261271712000784864970983426357339843193356629477964002917715544312002295534693640926237288050937207983972783849391480327077297136415381254605235585407276922987754276058127388009439514329740017879232804384003839636630745417652983282957485666686233896804090232810668412569333652836768673399217879596609521220817280869312500912027486659265601735121733281378013663012326823780301690486877601901677970110487312362537984782222389665434475584211269476358607169468620280346330414205386971426421963639603460362620566001263581062579897569019447874431452629701107055797213314939589953518888466089075163855465069576086370178354252387132135039801844555804049137436281441471763719167586148392829094231442927795980361825911773424684491266066568978701339926531707902452268288902711007420861279380239055426133900610560987243381609723549952814228915568118625439928631614794085361480313568154674389759130950321779006597263176477854968094744673717726663032217030356355093352633886867422989084252258430855417167745990833841399607013192164122987928171691809004937862375994612538511114261463454848114654448106412295869033265243083178295723292456114840018712499727068132076561094252895508457047011393617176857165255906561754636884434851993253167311968773601614161118364963824586734122236420139917186061376444970372892822871413855937900593005712563788062191738559232096748989162184820519106021955270713763499553548606513275978784717147925086661411680845993063639689608626143056253767190550366991221370809241025563619742874127871163288135104446221287289539538831898334356967442251480725129768261123410797106561145536542678785596119063465829567888646897812794163986359782831323489934515295899359328019216102262938829109042085850260640059146184168054773609698805817452127158333844010863615516921187145588797830283648143685880395954152634291345883220575450474703407993625949921872415086116690020289696081534330379448812650116189961267518817651761100940155499150741296089853074196102465077171538896639794301380732070601876987651849892307433576192550672832465544750849267141826147912017579584781927393933938931693253963158988731023483084954086804529419190725572374944991336463006048029531024043570583251521818932511989558490980218641045045459391397879448591594390367776895363871250259159615309541421876616772662728794695396276327436863161775521383886434955850099396482695311029303518142516890157869808779921501195247798115478025226413064650997010379728970513792361288749722093608099674950478560729587064390865176522267857954413289038995147396772069187851943447946021981485031898320953297085203028586923973293857165012151594389180311835313430458884133066658071239516196541414223038557347479954011708537260431517729954749170563989728334631064331551656890313144148903325893502554240310081389396845359262534083219527707127134412557955806970323832583409289414973505547427394009778372861016639938017043729538538727023898918932782181510847285033550192049740019487514225023319788762933857816853002540959205747404573701130012633008521070666899975986674409788391788898713311930728546989189378469804455651835401959404376579862445399396151551168495416781598351766641665459293874261499133527040295310491581762732089184845772752857982951882329487184488932223967772345234178864596500799624506388252245179465607704917653324682362498429999608508015325786832738503662969720857626238101103049743303143663999789041492577909777272405712654624845505505200592463158428028495651038546940138615702171847651483342254398125413449294252314025925198776988796320640843107104327741007973405593362765180075150741043840419290115203164877825399921605830590040593607650794875671168778596192600748915234585686973177479536731401239997326208365932992236917530731693764057761162362084704024296915051637631636738353419773552717202038726609816703934721497157581106537075431658750591351224682232366353280440460170432417349030727867874599470377651998114782201609657102420099430189989935239935777283619319690290086904449864757421090218987249945616968502832004381273861197923274293768651700371741701097696678645727995251916236604068494316685097422887589089073162254188363542467415296142691996126005050147756989506104989584995165105965697409967488568291829507333068898482566455900961857212075391216989086919577400274216855037662130536816570348752959771209048354632533118682867968013890293332893637199284917420874706886662224008383524038562302168878689053639907443887783836045088431299439337926199654364109610436954462161603717196407448778811906374151452371604553344030428271481808973511982004829758853244941902089794972925915860271399613105580024967701963754405151384575684889993999667227114281582965265021867902512148871505301679018093768749437835052839884841850074869831834105517589123070142155940650677231955773018505741295468590131517958387808662912741858181697068837901768258568461891277186392155848871253348926946122531362486604836889396251301887117546611048087547153811249651850010096414298801255441167788669108764908685916177893061912687518987456279534446065552181424783755359666361664654108781143621283006196297809258297482191732971657076318642096962174297868660310286001857327699485370774029076319669923863916176068563545828768430377927265961701763072134788948848144234222982251914824722600913323537841647775366687518105933030628365921199354518611013564360980286948157416229654217369431943406972704489059115842085879142707618222800482052298010530838202119825210199924552337138082178638552655221134525163170898516870643650166745316761630456966135228730456334244641056977171963355330846255403579311212945123955053199705927590447891658237128237535137033072038525204540629440036300363984207975081183108006082192526109804989695615889704841998094000882886777677969232500814992366509350303607153234504398763948957822200135500647297134462051197012199278410085360263333878383539431617272166701766558194836989725322505646022976779454656192733729388451810286750114173000322476924871425696396155089513363394341308172298598063897916085412753279616641796308023207269404162467922402823784429649719843121494743687117028756291942783176074086853784419932346441597862764307293344832476922727087889550933049789997937373156710389449737227158448426370463088775369458288459818175732459106215429700124082222179888876648221530205198353488080038255773451970365837212038118306398313800167186341200211413306390524778596090745185975281245671949429028570267439464163951230138129328272267881247671383445005294702054317125297678622491913643416220783344846571329849873269374987033812492559830997606215236817362629607314618745081992601189791919334658231764174854747122659612812431191089071310085844850414025903007024542800178093976931380464793923324392738723125320118330483072262630482930680326445072335446270731698802275700806957425190836087434832303820581050714396134906746782535093825112766829487994394994354497184579892750597536037890206808144635459478112948815626604521516725079273387995543416225509724657206788263342306810410401918220148124304437776497504021015340394538922395647404126275114905810307765103968251476644014179055985989272618563401310471210830939047701362843264330401374396878030582308861366239525545993590491957631347781185576366721209541559841806334789741507300047779830313475759736123162909083287161603216971641011777910861091481391124107974108081234315898538017828748674276036118970332623444180493930946126735150437809402781919743695357004116025761629098543676326730476567270538435738952435084898314595695779938391252104342645726600105424589469448615987255952122663054125443355827348588323719699079981495955583056457976260417192029553597658683573481702807057035310377872811292253426661166865606684784536454366585955334379155563342352103645044491030930845662753691136008095635257465690358218570068135113235346460344889982992380558211937855379612568712098733667551783294409719533217443998688929420057578818561019427046085839167065367712845459333822724437147858466571992815846397720229001677713615564740850097406041895528800404430774742226955943153128882495477460198264207850474105122773355984330199366200927119397182771293715209104769055632774549994148520944584005964013482318720162383729885479533104300432020995928337538308721220525840895297769758304954956554073076171548171242851100989573786866035508554969374064544176975182275899981723644657719370606482325730834795036792674455259177278980972249735948308837466164230117263919000695522855101219665365009315160720197311769675567612913359407700110327305396128600535133117830495537128139558026521969523076145352349333224065091223540465053844091785178325895610497812639860763193217739704233821808045491963748827967719453627341227778816293030694178679024987179810796729764046496581018861241206590198195523856484159959947000702623310924630964283749947272095234917465517573457522523180739258406444443811778997848474834542126354606236567052564678572114139077816943100823131578640538279194038604335578253193598738667219981585522882382853509181221916062602478697026948745408197169326038635574351586654881689926407082398469430611254708236752493031561150806007371689718441893460446180799910123073271405641524507825260425287721903013032268810521908691150426133475614895792986499484556675905086728742525257277539545563170819100802399917880061743374811357536771621035326055760721963732334566366635362604924744610178932275317093127307332381288415928074675175973864291716869336063723470300767758732094250182391300768809584850959642998246179571003574617985481242473811660449024209349957905803800011146579529638283121175906498414794415803031988470067650342748368256212484827998034475669691706168072565315425997044692282259991442130722794606367634659424127874558362060575181302234736008540831181425738198487479258170711479622729159213278099822447790735303787283054372878875291988116636703076634327385771670079735999260210456100309224811337365395009895039482854336091127378877854214066064106031461765958196928002162552127525665296011841902309121275630028535134515454134224389414295102642103740019867366139345644708985896786121686705692257538662662475730715766505607857957465139788711009070782951934425930345820081796947628802436237825352290775136643052682251028032507495197197688052775660698805780573342897833032389830352288191517580613191567953349519242448101076720826530019389362705380536206326665297597943356091606547678299866740706307211969876045940071695948970877338762955199235313166901761559123559666032810762232925854818049495972036788123587712448195865868909465571599341154185010899712177446528627660586859749403637734020416179641968661440052218917405176301244370190352865876531312578708133301336879986626040728416814897724342431328412485602228567281819680873699017030141636820248524999092347908944627265563963467741803634162282180206765050922343110484847898248950469253282166550033383381714474161066277794141765629405123972466902915910343646643655972523205793285613778680174581399806740586966994093343556865905806695733896801556279313074835540876950853323708477365891998656614205875428009413255408627960577599758448586426928103731742060820598465381770325767432086253907802042042149375406566957815090044989032666278549974789214707416856764519689578479521282970401601501904851222464295143276618625145472759889141011922216114168424246242226239913220908770249913999474004385309870234985246148719290263278979481598899725610528115627322785450437703101289807118330333915972074970662244144370363926996203547364723682996594081658863610364505955369159973920665551474538697996761874411278888688289734832300972629738166260581194426171799375001990675395427770098976604949216533848727341123004571114884529246639601362704883831915046384582802490469927914895375354994109329901004079974755927012063524365034420972690239855851187468162672783027718151843422025258914392161683021415420943049987573968717684873837343762628135044534028045681452382985576747263884026398432094095040920839711296390584373103112400721958117380106351225397788212428834615135535519442177970044989095956597646047464678211086903574739738352311225838067744851989437026024479813521566933428925963467342043418373294032840827134561784970648790071288741764761203213116289497446328764800798348883026511138572125700279568005081753811402730045196586188068073560024822153099770727675088533792451353908885200159517474795430480525571955189038839892740131822964491401044616048980541160181017971400041481743679418266902810577976677181126018588625642794816182895228658459718839266923579131019450052394948634287366007925972391487146842356349604508181223694847364539991853303714114963540663511644207459259200628740000927076139557169098081875140207591927772614028257096732366112860525745915894981531001698673757535163032846649468826692112235379793350426893830246398860595833517132348762820213661415695586595485724383372404056902662419798279596102045025681905756757062577439875620378356309493196510046070350939481224783546987361538905555704396817477604330240597021592447964136786049316826688649842451905517371562509301254195248415728940610968028160271105372277432335844224004524596227549338856739971159899860097578139048130137694669358791198187589935501644078566275283878344804065696068457461370390791153999474640190414135989137662170840477044437190230092441587891400210098410184698922472590234112163030924173017364700175840555672518440844944380780279334526821344844281278647367739499805829406389392662627505781415156877153456556720017597682683101632914093701425607080752193888522505458048924243537278757096737401737831271737764807420357126533038482818203688583706849468155769025893751449490583358589152681789746165891789927865392567942203319183413495084611280058458543296499244640071259332655418066385973513330714244157348836713307895499889176672232109370082671947923815856175611028888372452024047252807357046240198248042390548086724436628633209018057662775089500871815500615405329635366352578231624893888111824794642660673689702210182878903526873561811235360307213479051000754523816419621597934271080947050665806161003996143667876874453422193701650713594531963356777886593266935088422488035460944968792463432479369891797820948511552878038782531785290767794999481341040945879067574313045470228173020446654189154213438774275147096939474598921646619651139434648419748680787730469518086081257581288929137122223648579482765907654600581526757886939036202414629271079080853290720618020640311021823828951172829310295407523184560187815895452637904740151475902783888763375783641040932098943869295820030979592240843302165993108210216524906215927046304606939913339596978433847204260574696429495992127373676213280855686828567800821643810778804063026187155952512932213120596204011813187199387019071925159909786564885536426433215119161907370538426035318787988155487139263593853425173713569135952115630426192382020191885628568168246026486973458064312355639173028295291835316559001059963441444124392543494247610600381963725795418088487807560013438621187472243670082239781885792611404252097337814869526707941976852798926955292726806903112950991848511844146419077474826423034687157150893968344037376732480845822752977465136176472434780737023095677856121606688131181959150954868827410350553460035439682034604481980606524819698833351875793711920730618217614781734215248124437822195658928582236751310436764928043812094702022773193132044518854051697565934451008338042775242426088102892923038213234131636905463432524771475971263267394058088877599421921805071482332414770598791733176730999270680243206343828070483070597846741761688053306172944006923101310393892308986340765469267613306296285273132164361255702472860446746862615919943666878453200238567216471893105164579187421160112514694434744704108599226757955105873999155388045278074009186395548430590119022579368312605138451581683504358274039792981722321414860258907817657202078792059637969954868642742434928473412693236831735729274405968243330300348423000498194616367846275426843233487463795549764923953584545655943917034621689903869060675083463762349668632247675637110769041569044475054071297153927413546073228468781051675091917523333549037146337260158120254839943478570998113212108801385487863339865738811789108423412326520577162257405189656060659490550756858169510317414864420894301677827734893582421149581783470586701371766934491660497850500973456981160143206625075951473137514486975570207517452632716623686618280985903483959792615703394248789242054873848043714166504052372315543975389012985228691990756864521143315034568789436692602060495845229296794783899489930419982218460718878449937162613015435669426881530664760992697244075320135368825992643024248869561235481843221895723476961600493373934873454370314541547945418611379097449579157662046503289836725183409377902845316872811240534030623598695449609326033346778559994442183165231227559172822984642633274634131255061491004190839865620487059871924813050681789402699955949579925740251800384858501527431085057663971411976912371517742734768430362737948135148970104246884757881224959954307153763476923032467156832976788905015346321864123634411080737013859665149362877863706594308705833525906107816711024031666856633913397053319688181649265265971584400936855287673761168647190547127640775051835316216372114147966231519893033955525157867634285522539183696749317897946193461549509870766651795802828536725700730978530641733470998447357022458370717616114975783034402622888115099945413444842883525817591969784847130840330541060054286231357673266072996607271898310212400525834118445656947522881421558129939295662973495244400979235875068868303619526544669857151204457519305674093462073531145716229343734653619892331696018245927671785992532620265278819492244365671666767531668409761242953085807829288202194857444864178193761677087753018497306805486690333504653089697838506312860841344559166198582721763818268696254579507062197920201446512392751425258157259028790699826847562388621332700021384893053475712601453099774301445601766735348088600859215872812979763890172722551688730436942732621932122626697878510656364338759655995234876788399890082545352746955173562356377286893993805232518610025061562775929415413270868943726741991704061488874013234870142965764488437204000993727730590429647763593536346327777498657739381074220628560921652070420390878394743934827016281840293359548551276823629234515898068620819198939767880045224416185068621532539363161595527659122757029580888582209675535662881109366842944485821624256849385959643388326976776571355606974682065356806900091164102717584769170404648172458997767375933365055418722053699380297800704189439849930438129119733762607320757231349302396299421078881693085062286104988051072456384162033185986634725022691943208700093857515047371954979888015622424262860240373983701557247297246365909524953348398722533627618353769310338224322266965568895935513016605271856830285655350044722967164006039449439224204935522008064705440929488974071339864120856515129858271496824111113458076053736289284475128244784588564847418220738480222433172937487233318261626392289638875408371118082956024843720957086764378886976276580064326203815617334926395657767751849309178951840972915159985252439162756383099889419118168624097528642120087160126840803075408934029232000015044535203518617255252502323944044820828949052616784570023720800592158527950949886316513140093411224079172882758078500812590294282816155518714480773605289845801837289572574243517789452945354886856295429146920188080253797307328107544584959990707053076357214448083611717061122399726714448549748055691687629391410200251797337565521875924638703416804701574235793937902349219209242577900253264189583786036854086905247353249172392413370269836554598667592939657148050213011093753989087648034763670914623164398489484891875204541238208750153608131424563334560423913715897403890895047707148549300256026549975439383379520157581459178644759916752182547390089503868560235668159229818958801644599249870132107952213549548369402155974041109994804250725724615173379187709277278026944313730944100480710168199195380063778228341608418890117414696080099772675807786760972365919770406263407400789730182079087766836468706567268637369888987765562061785781075795719264095901752139394396107197320467410264471588073361489962792635637478154669857930755825687628932872320490090692903404078949414342965444084326368151357848625910630811582272744650491964668171672272754443333179028220497520436799745389139116654028706604438831997485387146948917475700025610587337739546561726012578723108311567590979001897984635652438010187094255018089559107151490304677109680506608402641885848850520293031468616588263832268485042649555995497220156733674814922154222053922972866042866742265894945163665620280606108848226627293529356910206068245646029494593982083095960062495830046607462702674779346104228041713301462191933852491351873168492089903970405386720991471944279013364655231164110536642123905405278092412454079368657380948693919444596522891855118403923440518395094121928726902964922430915754956791478541128013277458945056843843860873013278028185206844866610430350181881287551613431322344760954380564583716172548042735574944038958292185234261849020445129853514419468771019677259158800844675699381180158708228510677655104817754684054895358157814441953343140218999983501514439830767166059507418656846346882232018740382989429949623924809905714787426492350569027180497725633515680879887699133984484355736252129060000620401228225371257072004176585466614547669553018692417161814772239894906560974968852424685361301800373991757703284190554636432178378409176513959235324477127363492411342867156689850318691232315810074341207100764460048487783200049054068663079992983106064063401294929705411659449735334382123883036777905085369713622359374729433780806532340387163300911617992676412882129786422663645157249225108661673437098376158909647963830312423162308804763485493749075328857575756557383941625620219428834529558076908126300394971373123897712826239012142662121667483458599191569193245587651627171470928619623005350217672051242631019899616033264954253217901410398341349744591957702268106141297170386111061776037335631860060944598795730134067238433174374124529388260352064359977370422193659478312823874743204973865738586335143844782771852693752794944419569120784202804607395867205994109429889227120263616626820311710471764434919304703139917038941047896482423297476510120245782033960673945328338334638714251933547598582613975205161477003929806229078885800388238894204073614938392288043946920383580242355582750914283272093466838785124096333101217351994820111641219839563613994072404926895823121580490098556476041493356225096706680581732993970827520460979348188888073484162671906180636583579378065919754387974139818412718860880801221456457259656496386991570275240039780106274077330996206299067319504684043177238799034318038020784447336966324662548263866020230606785485795127036322490057477950182128240177787198254390030131346167741736305898049723240100058661178437697708102302180876505478204501276102324684006068679456643176904690242275992234463694174907745433183677228811764649351097218894584287159342034500835637182449687043705181003912855040055467734890637262491176117205813020775228275149590163779502155378293277927541142888366750705228566615712484479672536205651832146536838705242366084064628339452715352906273893664938593609513141108499274713957615803203086330594501707355329447514499643075876086619764541745808848117406446724917541267724965733987645275836263590928347622632661213839980783004452021351945387109332099591812359739367610749504827610708249744473808337803478839279357834902220352559601474790259573466341005670646801012608163376606093481251515419894455559568706892974120442276800240333629952369733026369916961173640055647781803736338545599203737083159633809896249570232337327720235195689774696905376709727040203126568601255257155258525191456863370608216606183815256487470697383233935119183674120516328690812243647531111991401571027467910137311985945840880598070832646401404970304239102653675403554920524925838853810348189202675402123779355849926639085289320413072062072116075425283499850849915789629940485045985155804960182267102038398368469156099286132908485021839773011737001981106287271322967847838894039975569508706611915977845011003040514596869816803952116292878647119908460337914827325045250227927427770557497165995563738711684347668869850288466511741760921138320745881475904408367175931403861207966805108699932366862408562421010156619981476554273375845784712960895929109962244790971962443179691237671102718304768477728179922499569859048120281538320528474016588764885610131489620169699888508263835142662748044928136267057490563512488097309356142876367646849776533135774026742456693164742591504219330273326380297215509324143724308593277741294019930135311335622287836811991040141806295928417924505987313570272043225616889067054689080957397618722383148981294612960813388879303067971491030449903695002396091413780693228347616514106721179942545222396283296026128228867575077211214475768153304376599043317375397165447236506935091475905328415675646991823681729119346110824490533394557950536157269695795938665344027816401264963420835040183699410891197233076360145069122465469408926051215782168548520618676518407410925724781397469612166348071674625380820697948780384095586439541519262942355770750090958787746560232661840890829639278874870347132395201113257758429839739159943155008487482378271860763917477904351822273692264544323132384545116364585482135850377661857463075638579122768590811378444909257674904082028505354997936521950032321405919743714328651190958307278578555175371887622160569024073142729989934099772389927897006343226495103470646869867997198028526448737762913142462290817455743072694673791495750072309224605935229208656445289873279146078875639913364377867302096481160127948543131373150156203778264680345135353758621372067421199230690665655606551043636408374397232316508300802406633842058652558990871742397763234415842130331530450379673870255520713163050684581011549341761653445398148299099455045719908047068291853991907515585161650690284874351878565391649966715226216601942167584330491286096768901059109868602204504251194235660907247631102273098341239740764297035004580991663836396541244242748845117738740997163316392860558334804497810536456540731416161102141209121721152665835780724156722888801260556574343262380988244538256152847621267964557313615984860957188994656208802568174905364973702835322829408500370241346462442265545962350040520876201588457449961081338590310085538918258498923645472482760346394648106795039780397739533105478460944487607155577056502528105237670805295734591998354706688689314909318903841456290216929375372473157491096068259367822444956748680021681697757774840185402584438521604982908424887693613976801626051554929628018939356347081674602528186623781603821535889891009995130727230609046923057846328428938826294988383398971867118842807843456132676853034549322845970491819200081099683312685438673620378992171578814747413052509951125207664687432862443810174183738457513673428533818498982933264354113771650421185486909899489785725648002502258978308229128734892658452050271304286685216076691428147206715506688731981656263630710489390459094088537747900916532424437871320273530327361435140521971575458451033964398261922756134078230749449038552717809279136490209445389567489976060292020501007778194149997919721197881739141304155824117654805456216665686763097893602180456244657060202819092223589913781975881406331814141371302045038920527462986954785059195936089878159961370430853964317039484782106795507889860746535728694259608762120949909531004194433422878146018169146261157741118214687129727521573247777661868118462267343030880951028308426674266700999707539596795194252902293725719767458649237730578772054349276633958821339484521529928375967867095264620915042188321570225529795902929586476382472806366837957051563971594182177874479549733009762873029554678899047579693953576731940251047471768468453814291927599108945547340138579507934996500998070595840525105323322951594365002066299439359626145349768000207174141102950724583267702772388863841040511053522320066638531090433435338770441497787931447959641783063914055938350671142902355044518593198027696994594371623942562395595791591244966162655174675283671591905106543118567601518622249541427700260512577205165035738655765696829782254273867892934104884982613605697027820700141916736902425028677478565718320804969045325852155700171150836673450917891200508226354840315816749519192458616642496196815540063318659639803421320688604309762984020734348460865912834709577459231620829926108908229019585969722456307617273273907192188981332694934522911870830676541424504748355373879685403616939853791488490828186372473387956060999457177098374075519334618187819462056853854285181382956154398282207528335014192067308529638593321114017627587824028860887690580186331070576150830365521007477170599827870778529286291102415241746281272566912875092766702826737386898761873567927239643360334229065699202218949905068022530006832891371944638536143042864954130889069789632776292683610759562086261514925846099524752124737049903149167458128471951604906317413856407512804601790905366051890714304243599958143041180162838830668915891073158706465756945419641454862458506838318010647624213580939378462986546903506775563815585394167506788444451594068890067238574496219725436532110166677644558215799552290578692288336107426333852918362847132913730192498358853636221119488286903100450181191031394331701559863914984348879844505761625986858942899199303143956659266547556871493054533665776143373688827906157791965938360124507247543708054452439932259505829449769253271901976286646373797315181616140519289773960840736594088940238843002411680366884212539676042984311676887697161873589241798466167430197780534119423577937700816619680030416542154635638748371469053053038975905224858020370555543919830609193748315248280305531324418346391865449944335930919005491788667253082031381983952228064596899866216652346703948560388257901764973051011692212281589118602206829095801390441449797981793055101134994317997033912790548849481746531878062363441558472766423447942823146612606662020571625760697073833483199538932267376843916818794562516537991145056876075352288389932350931013355051147804891175713948217206492715907075559528660708620792211980494626125256179820120187070979811318712218883274017205568218190553293068240424122287403830747894138094924352108868487673023284945064048593915942234407407627694948391612429588568774730718782324966163700861316864615126435821448562520102784107975879724002729640626753783742947901454529562772919568469087450900880144721936757696552826215739102836390882976325011564693085494975904209092442243058195523898127013186322432400468269708108960243728182720653093461187525612789550357746462536221670858698071153917047615203488556934655199945057906592120526165730446091518407642971120429443383591028026845110463361528339894585031703652175738091476219866816333322898639162473414688907844799654282476614630483290626724972061942904685986933465648984526435447398749057682189915170429430789373422960827406084791335163244282134907242029282905050789883723848594311552200332402037684753732124320917872986836873417692976448780750125737054137193743688624934090977835637086162358208027349393713175799755282359300167748565580626098538263742412196877692925238871667866281288346914894627195603622141896873166358959740109530099092279536883552084535093645114685127496946461951433240541438453958377430038191418653157162173465205998997486170693018497087417350490292192047450942328433675982427946113859452083513374076328830197657482281094368976832170215312480095402070511386478269890259549360425856563805672565560146100584148121443104962611726803543185216983596229342716133121770187537034217193405123010823430487859246694252355204639663920354527010001489250503271222126635302607110445178723037270683216914946555296990147154820866688316684035942353597781764021299983692080358432955219134147807256790456227967238981842087650944578333352549677512663692985779984303536285695098584086736492421245072895332644706253614258602197205786130219650310605368319597122714448016001502213635654313233543010217134196444795569917173161901607124655246884444971532140508147816540175888102430672344400075680155213010431574898959758501104921013994999134433984608733760892723546038004641080083052234380759007411313730333527301695942771294135618501429010074334590093958601142951597062523415139375964621439271457250407068605042404742947323122763348359084944892857688652934799001050407044127474509400794749872397629027712496477429153259700894358000899394441937997535564838542284649239351666390018462741689316385322467910857598548214197431251289651564854085355553717802891513187217203773403459099806948292707314753286562430828338283941154967829406007855201696285955650720689244188800330558426191806884019011142732410680749974601783697216060085790533169601589624323240588843671532067007720685974472603552897688302330768239864481414039489535578093253052039878141487250421282631699980266772702131229212327305037025120934040603067402795550907546581061536206281586218176662198564028946889818995370332780716508413833120022021471056757991459065074333191792540858862684690893742076217225169283969577415998717637488120075717825980150000622197305791264795926662733204730534880213992112172400769420344745012780066856333281878229983747231861787727042230503120950712482080168336616013706629094307870400058387031712142546890053526804954458219647422514618976967558491605570220389130667047083401731799121616261615297895416035719932259148979012875341839279226396755206229597944882000047306753428558536687691001854469775213170752964177526660943459709943161904421994619441978265512320592273460295345805874594386070031431090498476919991288162476291763205257437601060430830833909762453720521891263878976538813292460530558743350920384365530673780435015772784631255984086243287386286094192322472741983307351401007976337450801674224130379819965931468861252882767815397019882497277496164005322875382435569837632787505961935823371726067637336054766710315976679094777177459084850365921807917025777773668007762376450979641813373336417549864555953039292751352808342091149078560442338142938636102425802161364372228092352775048297001198513882579228250851690589712667222750189930005659990159344099522615409383499031691456025024854830769200543302702616215405511577898937744367168728838753071565091764537688294861512621572056420670838362753660019992055441857439975789033377037415293859010435942821141899679051173684596958110908422369812706788530826290679833106376965840726163738618033926765833627710376836531037596803566515947610889304871092037951146121654306495076957873477673535189306791987906497442232007443887278578064713200599485552686822453540258002999376488832677195026886783465814858825454487833602312527225204811176126627245944511420334759496716347251905558247594567116878862632956198432562556763034835759639775379564947896694943317462480454234741159143464703646335266290316379933990319183375747196828443853623623725958244636928342761802761488166062118585466161109776531124197147409386034948582264285237260279683556224098687794503769006998969823955943987784523794701519171966673856597298895833190022581790549802057278122752010003042027881211638499463774333988084289820494832109241157233859038938271860973874343979779988474733052332933964201742368040021638927311677602336246700597557588942399762348198208356414989731471801755394256554840485033636687346095348520221408528991734079805902134762834625651276694635705107846144597122998574501545823133758062149114672909010618488529236312427994899544350836700801353464689088811930048667844070045303898448159399546765001976250078305889348034474100366858678414341735706760458859321263362301244126335976898965838654439710355455749754917979817219946461273305678066272313918078431700987080582472579217262945786357939505434283671250835826669638311837190008530744470441116038253609593282116829733503902591979998003340666944918945738913360033911880314125740012357925140301215288890347247620249878364719341985348704136243277512818821735235893921332806385322520197491203467709020595715720886125148093440926639083601110126639622229136514161345705125230575381680583360740984542351717454718061540961142688500258597875678792204442409811969115135235461834811877181361341437393686839939662886231612806850235421320704396308518511136456885075114299751608304659153605724141656077035285584794669600444223741153359886835436413015172246943792021708252248304904697545182787421586379829372332934561514333470763936918763288505866505728807804206675512431929917198709672425840020803266621416124508870317521435528721280064723687689109915182145669434662203519194916912162367813180003639183669404108570538849668590035410747166053939985295054099495652684367519788262880108908014371281700039769681979238824225143282906492040954668387933020584593332635593057823335869116235818203818241786313373658064663111496796555941674887084667936566893567413833954638347708154568806005765993167114469840397182760567701431922618146716797279708784657849518453785748211609943795571689470631719258792655030295742427882652002752033984816326119682959252769216932065941967313352291093224532071488968032866847184811089301909755442939656391137665205905740500417596024555423669908886020094062591873441116453226405611584542312990239593582577839238333809024769700714166974291985294311709199839502637284476149887295415313037989674152544216253596445538036514643028056111992818705674110642146782557549210958594179952497708548804090956385649468689167507239345140802521632614520596365683871118753617212560521277822895371183019846940718703818396323372957269533589072661039985281826290305351996552261983043664042016344438768220564557859876678520466721793410226254321442590167174210292234962966136769201184606512655941702886809444023717154649046502486929561729977991551273700915126790191236976185720386721443881342451321557686925221368608774273483801513339953300045396870786148481303257491144469807965023254735701996951810295237737978148096318304662454646976693983544936682168222083135139154486708603443613772637943072687333747834923174690358635817032478315053060425379948858257043927911060633868230156455215221728820719837000766894902037925746416768584909515700338276817253443352530537596729747576155234659187974004736365111316957100018455781700677678307531356802351348347741452084924609426307404653327638646806652157819361616487322485479462182254583475896713037656211108485402354163241885168097074327361159130803418451563088220008654383873564343916804426943993346345891572793553306019121606556390230462374001521270254812068276360112181818553619525046162674754029489504158181683647204631667793347576370686240337998920855593936621360385218853641113144464180998710450823800507748993043226761127558336009065415538370650288650578255483465491882038618068530077761145864278544812344708010612448795309561566667553261317700716058901602484449880144224783022488608746260187178527990406127038268272763946116029119985904306232118853121956463264504020327751851768620036407205409034385042218526883287800940793522656093818094884582773241658661602739441561648766928453738265739043623977432665844454748051939521023941590104338894061118860257428438491436317512683133498603356761559700884794408576714242517554404673813819214364920025822388443611666178301619786916539575729374811340726157475372644038355252933798037752029490251075193374476955852868256747872202154629850144875230361595133859018585988007040739887927260286918562363826728640000211329986850516111723371540906758536968114903957860950085469508779736306109939765915368353540033334850002442126606697227134365862189946073232644121189732484977111691457217828456281451618487327830094817894032877746550513568889451483836799933017384852174237163193206088449624785444232388752303115372794133082632016327080536104790601495984641833905702761116259963413201313993291403202554189896879074687308522161648432487692848809844802095621552757166610752513589438732917979350454238244987552920690407975423995519733038012066930141235395156639738200295911608329996336330995249335150599485383847942646409115402403415210148995089578219375554111995815401302784501383413675445735214252610613480640464091482037956529339691819957285720030797216884362908018302271183740471598677183044772592826490895383657802317577798354714531581259828123673779611714401150797161073392310229731183839841012866808605584644034743239437812588941829979754907475888523393972169483314358651897753137351096730425971499361054535016685803872687539627539706584546257257154296832375462963686660475366226449421912804895936337752176944417815290662359901321010316642438709944878329816177574124820062753940606426087789283825189530424545572333091111244817008151800823955140220806059269895116354938311429625290212165537162399467716821411517843257254174542893392123106740422774494522926820704782408082623254714762805335425270183278956239363775548224967645507465377856057670716722532160323413285765015071433833362918245508322897362876356525521589535373299569295247633207498863125085758578915968456426084071420001157213940963992744642998193388840621883405518063670002568578945781803453596351127123402834396313752570987768392646193547390022498218044200679680602413770747340527760067486063362232443449956191444085873378656075946481573065953709326997308182062428465608032810679322430435754408287888526578356837847581461231650313285175467402107477820054463391172660735026639646932280060030271827487431907061802532507147709447578359352036567080760804726954631018151972449697403384501657772288887657582100995477020159184988125567418488177905961627804778801029053292554803958868416495138010162060985158075066612430085101276327564309628797138276163630495018973734597465977241928678012746595449932794742688138972487579753088041810763286478706972190733492439849746849016562679122212903128710368806513354464368218447496611169265561376383176084407871036883240613137290727583201078777667300940203588714565741217836286350212781380601484618138058368533766878600290074703560210064573155674414418462809976999223556924813420742809865366190123049720850327183540673101797472363211282011641402858266919536355378841672809902333008307398554183339274695935904224245790097999143515626015120954418786962298666720837592188691349957479355126757551538396608532638347918561677263984271563442412106621622869673571483748365839445403589876004266862947568897074338999053539805181857798314280558958373495549206278903278210421614560464290276065392187758454168074910556008926941781399020040722340755038229348401217115753647948939325410420460995062225068590342602350828583650340099626480668295988967516421875464867212615882461221147321756602220279131866994585914005957173346573596706238926451095806906037843183932585043113239696831213117393480911892496665275856569063874119053673285716008729786778966767431307990683122752501970826511161544321019229579428920990963826527099739776358895931280217517435959627105155555413531742137645044714776000422379795647683334079239468101828058995617923789339559189846993487785975447722061273635261394280969435391087400252444124188866064567179366340567902470182859230212252764290952753927561691260830027888586899536119846441764702692222135132194641856035245014628565574042553594321074096263489707813355621670641147052447118114955906226658476806810193227288274936986055894491221686536406108104917879809787444905298153307325949949107004872811339083485192276987579408940323987152667875726427577567947453906315601764361926535692035420455090164867012495738255228278126327438387245076419715545823298446145338718254234136538807348582622620294431803157389243796166333249801886281266710464987430645136364462124278495289220118754954632909921419044453410942388948792081134913496159048839746935528473153879738857023219750442511620388138029664359379188018352595735716682171783923311908289205201051432669078933917034863305419488155277588246691036363035242924139340167971335735554517083294489493534266727282205085287752997665299917500122868639389234443827903389865325881653835193357822666068815254987104003384803504132196165618673829160376044380750329374161432311255769040461537012127334056938568902086874126802617790096105396758845898349178281014048418235637106593354351392723589704782767458829825168511840088269481999190552599367660439638921325471913492243973450920617697296729408486777309660890275727138793666139186948508381118805379764406345166198627888131557625784146285933016817461753008524328702505057653123906447170509828933478257176780819347167470997091825190629036757318462292334045893930544181359374189815554149582432600477243729336631214632267280910148829159771963686723548253600046122535728998772007211805876924832013455556768166686313730213854930878026550826363898648002998589533536945013494299892206327643009104304889451534075549532579676393682608090965528704820928439275255504757692157471516808577254505178464230924481896956900139025976452091041660652920042863784439811463298971918701709350809632593590343524651281229562562150361257249426144964957464053354616440360253210638145841176831822846524160186035755771423609099668745482508917284538884285185117063198432331608015102224545925082029307350284499987350984901264542395872687550096640719997095972893388044055035138123654211491857349234275671728126415696777312635178458946690874454243390283776548682462792100686292648152400851413148456247343414756874540102246639418192159872717467395623288962997987284537994637993680972064640963548365211558778014964804098148581625897613774934256758452545957168967346629500959967685811265272246124597196118520895388952010549083231028296050577015250664169512494374330449194580719269881688459358218678407966637519790642773955021157267403126287219668564521212836230355316060840331631201822957034293579180802006099829419361904462159316945057437117739078382779601312657423049028785275108444235698935431196437109324529859792961149124576294416285298343019617877981798976279125294441932935215061347594276932970597722786858623240645299524321898659650346072126446680668824954374033445682113186304450134925893112295683642833152528038163685710651427548301121041098295237888357279993389561959081517662627218792802314433373862988196137970627992553678613521084543323774083915414244116480406828139533487521822711010111142281818283392892626109292191658998659421614764777840650428870210351146199117162317688649730192993953607373705875302160300383337358324735846930613400028542575742312323457065369886180198341381222994691072259661933007297351534480287576654703292245936854221113670895023745603048068971081452393816104743836662706446396286295183265251972503209514530221941934678261996749432953724839314769406479339520536368732539085459278123153978766101927910762443398187140952750990815247061025599384850175841802985341020494233361247359782591072638201106830817711204902100830393664636030797793690014391706991049555112849544460518063634873577989461686563060800984741799680538763353227897320425505452925250675794785542405872334699503240077532683989237783036714619668451266534838448582500653273884110549727858165459946709648820736489742432686707332550002608753029808530204796518878642252691199408772203024337704980224390640363819784760583383291996805068523102708172434715441594350286021152852422444183079997190154128222743299795646486731100285787276030853754796666897059416994311417006245956426401876377235926465435341059919819990949431961629510844914931171812251231529062209215989355233368585701731178539588983861795087059906221456823496397217312426584712318230880964622510250656595242947778837673196699202938679684349460881613014334142291980641946971227156040058888774008114580762501828469051788377978375007242187164369050671190683567880444246789843630310336513457215894009999403997468508243661361387073548526506794564772055373868268937153782219933406318005378558395676627145863045773171118217851915276846592610441679055748498934464464701796465700043352774716398531484480050060524698701008136890877257502172059110004302087932092849001114204266200500027153339074262479395303858698767886097195833072735876666412245169917446545248259609651757364351107110636608523617401853788268630595197678429020300551390193384586082173899563349474269258871249866406624917688986411913048850332624420184434022876000641749384899392440966676509032686501381508148614291491644056795594041523694413306256373922276670269937593133770070156062716839592217115208859017270204199749503593656523370452354562131252675446424321570055719362816199982855979935881292895280635081437642012325349433881968286425006477773073467326061530989837791892489783038073325360965893402354901298141488708333664822195686026860782243278015967239541756708124758312279575384355847722835536077076839628881272136889450696539570965955568598982532542723910477484495330026229605901175639229011335576721502518263083060651996172855905359131546058304411081616223360382634816416793006040679394677315843579372553175900350603801530949879869550306092149552583799517816359476493008890761317714235008441939267702788096881681253571525015418660493950379319429101572013707271716596369258431668145507632242357403892712211255225342963314711410521268432321439384201751570280335798795241141419392807840341997474141609906865578810020084487608035181359674381024508868845975605181004606308411246042755113370615983907264034993386318027856360002626044639877054728856610215019716172603468753528708678006027396344547512543767117938005243322763320476841824506994099266592984607022719007894454380332032623659135038567909160360143772435521327655213345511563964685928365785194120508637064436891213325489236572186583637402364952242087659000719235815382385197030595628538050937920684684139272261929987064970612419237775068140760253144557420316468467430535202235113333110836137796590505900917718192198688359492810430815481359708460162060898581545552405940485350321214377284393735707753542750601347557287196699525633021551434748094828992126952997041924428631373591279241463943629349558597838187890676752029289974290803890185867214796113406011247176691503800482724145665557538124593625526324749210774334326153453586530932112921408031673075920613356093012240785195184705285546591339136934490170682394980084635949284253040110426395773583519323259097051563242926781750210277148526044644626165406874521897220483591810718970030707741461333638198676234376882337763152235646794219042573017847205200532098138860290977849185464284010730611322395881368819487190046700515237289281085724328277041876409894997676497733265198418107099356543164689473136692401342745057684899257600800045383359851827047521701921598408297889476140587887263836901702252970117306637874443936591298328579810239523726122516861851552034511829713111714419345734447883859409434466090365309430981613455407585078420862518056636192899516709804138205192510394978086503686284953990250697976212210762875807756683442494189463226799825639817846077922410686232200954800399605579460204145017533853631173288775806413712302124063211025144578168065621769760024820740450363066012688327672262053635042820399738121440334042583775680044402393318833950948056931145244335476006055918022952708287867839243959048289211543899128290353944968070354730061149736437611306501521258614162188351315282096556023313718336605584165296280598955553614115824628793703943378135993149897276596863345465704550998807867738426307314150399515435707416745274902062267058318380099219096265795751261264042040542456830435887809647033857383369828275546242818227862120559270678007877856071647165372780828201471050872366084028744496449749856382340133107540166890314338790368228003504089951917398807810990531812413051157076901807435884773588665017203792444890674342404740245144502516065079480696352075508182879973054745726963820978026670058480779725999773414779035880902367881641198028432951857620074897068648415859507191366975766591136621451549447476537820379595833945285586089494863836806153873504318939974701450047010489181004890037173278512660237234450447313184815074145451562664475819534363986306099762636643001764902430573383466877239300117333488666470446022991074492872223291324593745098703685574119370130635011433739588418638617546291072859767555701474969187129964221826718251185845696554942947663905722224549550892949173484710233776466719521368967556056119780330611130394031403953131822794308981621972106605004671970620717592027456024461418015558602606940281994238059480435235894247158311784514584011180666835412350626882114529395008299487476787896958616100780785883568518912025723767778847138466610710050904239975940468964153374940918481693478965094239190051514707772084506748146446060302925176936249178986340141199166640322999224575805866445270982763298640531834746897596070272268670106623681263066413728733683751840607011634997611357977479446846756575248557211619470941150734121146530078596074636682604919229525458792441568557491862289293810486818349408150971711826229331955775053388641699632230232126701621936543306398867285853591963148710984665588451850622062814466378648225144885382080886951731330864936363134029181698861480256579271805133411913508342904579926357359747848629330373256167838089250477705017636413998016719155058362107509443157928042649049988724347400786882172486595420009112130292516026751317524073964782572420514394265986424155958049904971902885731604610819627784629092747351794439476053017837616312138341111565563207901412841055647333891378236521030209031123485855118166494740737299106670531869860794848439452773729065640984848343501566530540913983060381389031162480704738048369560595040942013165325077371837454360579534799547227274917378328199057963896182213016055561701746805153575402828207732753997821817334108349119565311261645919799380902143162138080978713788387571215977783436114256676741370714875924363210025024656337681528605213242165095552200926050354299033269206399700073320628710071732563046942255761391483325645702206889445273049310085338401332046348253212271806262376228674275405474767177684577146299334213370854681197134207445504041138121519826529001729349571819388325457224623587489251468099525720595846787331304529200899687650014336035836268675208195962648521104411537622510730832337248173318816353748021474903775957850356599180336970224488847368032510386649690300891513730409722642740100944783359917925326735561931840529231041026866195031024366160073665920264185597512662844138209369912905850513822589963473802341345706667044796197177305172474556071669747137892716870283547422014652572272206270369568923586830137118418415668924934304408001871215824844253992902511290754056006058364585073675588004771324587389157693631871848865994413089010514762417878612167838983003001134126559014949400480271025221082075981928345839651410522188111213388029377483473842432025678570989604224106282360313282382096647977742104799124430036796435126760883182597718383107645887634398477956395005296442042315649634877739966002966930547839930131678959653783766323601923288880040227966812770647929363152715722148696355567812388018504151462689121132053429380506583520293686736423069013151782566291174234773518756220001350300922803335440699251086969601179879135145932720465914703348733882441617117320839020093591941389709176006521320598768808518354156251577280045289655306319973045794138580445319539550375501283959005660928579838383418491529160135541631093457416161278642295894998089001646532491380259842291320983802984493731156770831942134619533622592590404802238545651465365102551096115843708674523977519237657712298120503504707685411805931828546832812555859679854750185894533712507324879355695231283216570932220021161352230948849189829097715498883779272889189584697839819148215513978542360949613739487212919704534270844674282971203170944880388283616938888968250987412557100280010317020637123179660419866749303909930735051657895408052897555773386040347494154389292287330867754026724049393765820452899801945021997989195452654851944743425041887455046180268623965205141806999855691652040224180928152071691538270626717360197761076000302392930776976387516118447358953351220763650287335759337470933961793826123023338434643824163669320197913190341105186715845058881516536934528729147618872990693733432069064116834793223607322228740316044676778749979543994095900172297887740152967379562611468049609269147752713940658521194001591294278053708813463351349975939299660600631077488589525177253321111752582481127840510923318744466083128714893634126613901764833479506970683396732158149143274943279959028442518538006858546715990794814850760001519781063573209211297971666135752834175794929567737279060320937146310541634901225803344460992462375246719572340828523257331189312716033999075830961223976887421951021508009064004728770678227346761564062061836019762297551891695398981686543812479086875829268089326432266936676059746300836802505315757868781625889649541940600672919746825055353546489810898831916824863362293609786034817736773640503272059484524096567150265957311108859049438023617052470670700482456271403444023310916700653199315687839210366521237103772185601516360330057220826934370939535139722001052165208087643343213281450197200538516733792483824901046711175425327447274972945183168163705478675010070098750209546672183642889462472110464041825597968533532912409525506010419594710153349695917069384367867182637045391879257875326837717412828567754065488595432208367219110591706263360004885313769719714554109468601706741586456132858125525497254213420486328676525875811712075066293832449562176952277642536126703191006159189900323538079393479607088194551745041050557648199603361761087682433731987771340872099465797386121506654324412655889707318759205999059722995437013292483201059312248746454777133905504401418375462465843856328298795793434688239122808583279371083143734978211251658174374205271303079074676262071590432596736707597196964296175541779210505013865034051040521708449070576651304702461283060148970655139035442099763926445202742402181979434305758085471405284327251040608854516727514766747050330759275060993208662359113260824361690671909333002318822603705050086474388496223470783001036750879485875159269038364760652190353729740676762916964806814066953958236883160567265856556998106797699034056292456365435115862366845289850117297908894811238947082901984163834726240590759293772744969508936060675751120814459182092837333264138788059005471015521691820052578033205283146943747611874246307647759158013446927078121381503513726451980921060683907813775421033550121282919670623155527971184187394096837318656585395071789112424710106742423951973479942355703528769447196029508438178905165023566122832216470853842084379651788874310739507395404848258163503887835940197729512564035408132744145595413492930946928229838869606666134395708731271704479476288752000259640644015288630827954729041457162903169717797137512167515451599619775950591275571492259639987199445843405209036727373356000057730805854944978222627801914399045879811110899590429076594451313273394705173402321068885771468953266123133591441964173077671151126997371095189399885806358763854463126806530663037524208000169368925474251070439521530756116715555749103843930918247086454081592467466577730793032456570003309513188190075137701571004853845152758092526361799657645286161238958551885826631313218534875166907972434660589849576091271921228973147613890408465320775768583055328675252981871460052505180202220725805096176661464097861988349953322125169924795138499844450582476794096442331174036018516390984633249590290100961318627843405600472090144614778125559264877071850724436432876198607130462342605134523778953111870182364858935008124904830437022924598130739884745625013458466677346718433551176045376319559341076156799054765504475129754688256448844343864140883699851162561439931234879093489431469066201727991437907241966033341748058077122691984277565607225658724911824208629748517054287090693818326917354725491166777101080534681786166362622757231094908235368108163121731255274482543023061447584304127909317830394428805332714747541365812298081307674495103680302158567360558451502877664578716000146028611675250571341216831985383494895748291470806165158625400207025987796635363314406757172566978204471211256453054754348333165913018056948161766148084821644717927851694156034097449675155262197180408601394473707456992518240048076060355820231820276253373227449194075134919913109310424781050830881001760146939454931103433490497370881522919232410984043581251112788414937121350151472512584742839812576628329714227741693468764140927550744177130147128224674307295949396543583308898042996524595879106930681873988194912166248720944578858764465423343769699182957046512644747778873674647200091071015724863097450352299206413162798222874377520346658031595680695842489062262396013531074690154559997357473203015475906959214570408081712679716031024034677702763328665288086858425918174587755918008379255088040932906500500932040911851686260597512626618198432851588376577559143940652162314280809042127884619481513157124571194052007345253831486902424217010980100875269656599055000588875316570364728850770030697512964340382612259960080629355357654847186970748379737645673209304475604795241020855622213072418840261257179204158272835296781335476616393630665561625369480658988767075014487328102859293572039706449063316188348976862742490056541984966808265288670546956260999884282692457246854307813824364125882838759824771659771683002297570525179347368183007112425683472357570608601183018246825792025175707637068247290167748520050918568586272044175665672534157693482343419557552885057728834629747746878831182193736044511629167392377809214807782053121115224792382500416408757013814425292419673553869545785496300982136864379902314119117767950617213737695959533303769207612936454269876867211936395601477638966281850713103074215237269731381079078325927717504917088271787287008926257672139408100590517980866650237461930989854239332967769160355218939680784779411422291105952675677983172080459351242044454477601422234965184073821765722280987255535245632955369703166967205950821220479026009516069163426428922679983368031262845378554489543008757089713631384327009645771282815493865380830311218683611835923828520075283218009094031714334571861313617130036645065937654026526680892758889265581712447814345669461907696901969975462943583450303255117838197717806199783582663190636339014941384777738209512109368827196054878862652176849857413506622827627415128444602623177515979075401124576978157463768398818968034466918731007121847977274467930829349410667979876465984599118989639465350490017322459426796918406130416404290835576407631477635015161804625889923559471322923346671601641027778047499203746168233548467513048114914638318469451452046023781007668557838287378921495641681174578958396516750262988298252635892551857564129294744814630405299975616242315570140348637580342824166657803850444858382637965068795045987037199266274943311402708648583276535617888007254040809306347995948624304265981420955369019786387227109455943923723651627410276811605780800124900447329839865727204185396389329045948702733089579882599825002708157484681298189109700186582075941920160557911561792208329010355134173012796586325039625025482398776306001090703050677272442737539524445193511851194572395372478303412924198455797300384044572168566840401506534550568676399404225408959489410735462824658011546039398823631788197357827047573972665453298173602280315869260834090077349050728010146727764089423685046541259498091109738370815549543134143117161231284166483341612173483019419383863067548016021636862625430263263370971868063494590871833569842956297033451713432709051041792670640060833137016076327217610593814316480877279035000480951829103027267049109119020225157472030006723675785487287404161850054285023756235355273649336174426691964115104770771692519009058191725657646731121579636458151672952380116164627869156961888763443524141924221834586070920479353646524986048629078098366468725955868703410788257756094874317126786239783186552800574365690982025214614128568763801578994214303391091108922358397238225411185001923574225899874294850900100779203924432817588268767643143673506101773826154156114997088408780386447564014340502268810655380788590370234319720315060193590833933385825546127047622715605481146657116037559682134347188779468184863787516674034400470729664339305045584999495815873511205234859256415912713303937081700250610464519251744278021135766594436331358586660042884984566908375041504102870429201833081968387038011215505886592127275743024325808831984779916728092897857756707274084048452041013363377225735175940247798056795748761571758199003892914608832222118769698820920237055663670416285018288097298154292569361868857164293439884837388188273062938992984698225190646395127146396857948973979733218627266183782063353409483750898636494235930755718432700562361589537032810829404710543188418019783197542369949508702104859440826441909860206489250465282455999533761090932886046514840601514930770845702966543878842050673445257216249268620257709076554974492652376784650977762419095070341436606308020093554789111145148952057033990404043485879262150432208420598882752592303162646286079164785860863991739216238837225796792205222278998226345109871938577462548693145222389553932055566223606861445562513285477256779411831987864051292720407874698687559341828012285088825960755974425054500151733305575894518115384839070472175475108999424624427354957093817927553665776189334174195413038151980674178207527475188376096922780120121246119176167894158623128224626970263978207414763361818613746414703763692293828464946403298762548761853591162972557822337319973801794203644570234120436566551888485826114359240177639846362645790489776400801163888434332150086521982238532533227916524600942366275820613160925802983606301056694049880534825341308126578081954774016866949006763576241479166397230152248932111000609723363154709982956552642555587369059611878293800639802120821437940027283474645542618892881554902986693835121278066488123167188934426890948237479776304848030625471320957891080789902673676556013959803022351433610028843880572567612467392523917984564922901062790853190890263300486940810649269093238108064776633611795620773244763380449474692286757931582774390366329064363329155501712803045436919785108583946772667855318421006346276112377688456199396934286584906007796571541439149099566226155356681921406697061115985076246836460821552895473924529495280104404533801537258939222196475079272992709805864481659985290894508885539663667670268751816981966532155376340113928760790082466815075360329347777637214862916590801208519604430466411645127288368064951150668501607321818403787503453507535973576005914651169816104565448512794972412667798497189306431880419585818959198241000132480473125413007008552199708077265951964752415805932038291318859215319639887005401127341357171233800506548988138632598609066338971109256378178379555865884407711481192763986476240177428656360537361316478935132974204871259555238533274647041967456089097441720038445965280551456931292165437469151671585008165027722699770756163762096993103504126622639282724931041445350561125213460069437562610794093158403280235309658969200019656854444074726772480090622864934552086110660558475808690971401238089810696756233958081566873755191894938171275274487370659786790875426169584916695954647817757871483251220193304650783757287503983892100349499257334779048657952534486697630633074777502457726255164552770506026720620726880670995233511468413841570454124923623665178197150670336006518641216882450040543050503308828832089159970910562373536698413112502276692336765772898871482882178117550655115242716147168212326513087980852279697464733180069762895744779132621601424694213690933556541215309391530869157446535856338289645240113449942905076508917090877837748615835987716438801368380198695275690770520999991757003546492490724567755515195172552610933793386733162649936655872381388770954929299379256911226987102005639371642686147513204291701105396468008999367425587303509920288554039140981055561487271522312161796969899931570267152187953269567821430256731118805518658694721999777065902125350297008819901458788364814925795250352698243048012595934236812094547112097092463199595765452092024708450987543975034716282804709513199254278460596734836729980792479421564149422486574968362755084428932097605538003478662328926722525500877266282224399292582537610022888500439359631203675064573559767631336009379799295177997087839467988066753825235304500367307181538151872463960368983389590089676731639152212163255302002126635446596134813901320235259149214921069674918602747244854737731972945786625132338632380389086356525289559205452972967955824984714064621289111091680716872811786797816249917933729395469419801535154988956485423483562670167552400330893846623079749733847279479789971971337826094831069451696699216268496843544966592316447064070036770285835476642813651390222308148858619984934992496700947460093525242149083035362333387237974669521220841337095999797370006969052107227541368128814826303878653741606623263723700348216963612406175163475092359806873675904319869832129428731185027003373388229884503425555134946873294081734300877081309183534330321882809679301947022169461606726705990690023916122354199246225258686395739369023545834170391042218846616656188908306577428883143024505668402656023955604204449495228605946218899124098124150312450137482069014985155332122184964175794416880847490776983979793224056042654152215236266931144791280668850234820034278007050186153629833599231019611018913297674192862518219211782251570407406377698357771723939424161446848932311328119710081369767187026351919200587477602926331366277762655603483639568454215063869626525927185430350955675063559222863140125821080044376305935769116260323863944824537095243047582106457950832612720200089121130906956236727154649509574007341013431652742572662419626709452121562230005902353584910955203839517980756682408237513558879088437446231041550833410796609961380844153418236036689181513269076575177752704631633809984641996649811759588535620008656150560100221787315935350692668525319858908018625021912022144132918340360606318749850922786117944329432978337651541819392407219326423914654393850006607870662421902766476218191872643775227832905426222657255218744646082632471724979951411767669704195480194001934229708574198732405522029877250121453085366514820383271821575812776146761564554502923525696155164767752414863762565707448372846501800837039208386846247361067654719332817806604634423821591115035145491878054357062263691669064984467033165347312740322039763138891920630400440069162666628560312164657767518743544884972732339241581192410570049754066820571234205660016567269505062413201443090886779389681307978093450524176650348198145475080979755079759596213046898870601750715740909044374791376450160360098101149154048711455551014402863838866822245381213076690102240187741749918293423142374619386578759131469354532484737426313848119525142975680184085457996111688224599019009414657534650023469888024169556992511918964459804213014126183142183801694374944090822433093452309917731308780343028114838074584306805337354750303383189648870673824370654099630380551275644962636320609493585121598471066259933113770763099793945339077706012784430337107119482052053236337396240422895497722348773339270204084723920527455636896269073188563613446278130523167385982322728433440991058024033932639493314553053113288378328058964592166225903298205647931031533050782588680031407289668226294781781328772203698540970487834305462825682035346466994401969178035293456246524749269420632709620016036080778143488309026109744241484335109771614183962231610864482712040084340277613164833887334587325689029930747630877334569522977048344200356575820460784120852073911515568812466547753380920861823589477882931871691979565757207204914338098877971747650278395520913586399675011981493258591852878989851222580404138147791919544364766277589002630867973194430361636344122450158919440897054329588099606784797975578490567518887135393961601863587362332739680297078900366927209132237437801535432906027945977544205240852246957874750774084646290855635640368377334569268254314740599476816264560204842122200956500688696222745598160332362582118389362748134085424442455700160976581614861742520010596551579887211077880652652779140118453694267465095476495923718816416247659469092255203787411819694422694533454147904684015389814430071930781763632113100409673804913715162049285030757146629839999457468916393263285273394947944636374190968410123728238460416745180037796853806435793961741476461579279064939547388718334802095023669023095236820402273086842312844393219490347937388768469573281265306872560901607250734636090857724485740775751136509626052985379963454098603511225487541075010717203349614588101807938712294730439493704728364057014698924096489200214130075039982768964421783368347943193760105429999327788595729905865766684120601319181122516786469203906601191817145165155993569366066814472925193971097292093284037614135478949855063447450027307561063588677090548490652904515001284628689328511470199870115138311719523988749254629798444349975187680711015075906096743555351922446032696927121600077468834419355514592852737145036252299416738167910880009910746587807939757589258431863872617801645395005705472262224691500096235590931013650725083961529792059907265157151029702320051852367276251852787984226535561114534794022469578883734567909356452846510902979870774350895092415103179438108277209568704150182775048136895937949407440607664531573387973049038859275755011132518483350975715716721014639095921418607790979406828261825095947261040764668323430685421729124921881449680477972793150299017128488886525462540471994488418598700349536565739409092431524703257907097580078826339290367732810300044510860601867478800723791975080281115649497886154462547130196650776240514564048781866050814864485179758115126457840711022626272595908634638394676636685423215815634937455684175910910792394182433869528841356249648340373826417679001675813016548056174670194307304503055162471536488556597754855111761492330050591984800597886275480333445945772390509040460357606761122218958614659253886064391915961133471268927670810017022857227098720374183976577968440948294237064552544179555792870451385495637173773397165404033949937126743410819481142416201881821412745001027565547528901781786505081899504026091004796292309954538394756360192971216951826537479949130800223302085845846526466604222404805707788332737986605172313287850621005177822879983708151712499874369209458895561915752231505574585107846780040115282783582631677929458293551729484655146478953939464801846561644507844553244088505701372981827595149442373961052804477749413802144911136850951618269190903688934722305932588442026370822375599306164966389925871213283651086073406561005952876622945371078288977520311444093893916863325057269688633433519298995477900022797918836873043922780100354646857927758606205425155254198843864446316067974723971587760685318667516485116370953844997751953983395462135061775771638474109008619137831614647366419161839788252881613211648994433628498613643955087584406816639096724288355064398871180100860689973804424982323057473909541776623542663343187220759365267444486325354156700933386829150883567447467069217835170680289571047424991878416771874589403943737928510703534102028389962380803527963389038547829115178450473405248487105710717297358344443693729417346595892992574553866198809581460533628374016170415051791336899658974704188409649723525742642058120937320628556968527375765123558993984500524669758701882816710585613079583125709354342777601113161137768433140284922983435215770706736139804149533118596659001134529801051836980651079320550143495581641366463127434885633973841279414472825376163338013155826757730837685056226373005906067405870786091013135896955528806571223101625046876034002053802685224398732680573672419707092397417381408030029433499728739627357103148432584740478047796688430865998347838957028816323951263900584379997273204864028134513652385349077866771584552294345692286824710819631995905110681307535192222155975714707883856244613136643539279103491820975810281958149177703287558715261465438134044321830235585703840804914205059422528676190215623546754691576440830472705447130484978457312285611176532983063957525955972385991105763149948848930554833241117618350152342999174466579025811763750571409167320578550706350268641652096718364000792485063555598180373165409412765857860723186027958020437166917884986020018993521892820699423286748112465208000916567484309445538036590835073407055444209086271749959340366519474816993736591613400680493501016241547186185831170570786175096785932518102128602999486508916010446951468108661338497976079063636050249574997724451514002558217054214446716071169964397524578145185006261933064259787181198949677308690177019262938738275527108656549588109712451243129691394815580473465759345142152376303014074366780337764659066231493097642732841189059467664259847618050155456593700754160048961284855258804071620759568242545130859539260761746618656110002872392659957844328659188881828307065098869017576047455969329158472823729921546380514207103782584779090738072500725539587958843979375723572139382782863370249071455684129702544313578767248704502118672619712157703852184554088809887883434545218602979119267497646085654318216046309120024399982315687532494207748180093389114951352928493659896375264834559821476925188679876800321174299239096007287589386168336813636189435100476886239409075843497936376937277946782739217742664300957919174294918852796951390517900894582583583707788153103050851369984972620657577063192335878189731950857880450153218880639192388542042029217487011615884464595485147324419225093253732394619737770819897114698680275422673360626407653335079687978496979315394932910092889356418820532864772460557458331389274552004247815538073143043641307438569255462600137165018201294274317537451382909561872913548076447495240634959446337599423849607393823045089534144535633604609977966041230578749634748554022290806776298919906476860951321864025497945324247304179073882576927934026721980424151120509033847930466332149530031643029713112021527898688016118232725782891128600415966958845687108297954025743109481490581167631128163821339582313374044483920555835075427663377479565578895063826981225731746292887132120251798480748880013293397481265512173182312409381219095172703806598214175048419293305735486506894972484089948010858872148046760369012705431808412073299805603810793843084453526148070495362273139194328350638157908740840317300972511220216271993963395739473465559427063880922695079219101922992255886159671947104797152703274751596084920712864585539235674959140052282361695892862438146023850040435390752242278358085528633560648615863693535916511171242222138122223140782905220434356291345058487806050856424836399553304383068059950736960214425642376337770600625143614533409958348431242973833819687162224218799143928984822331994929864801252241609923530804366590043860268672218931358062055412451649741313223783939783490967877834827244623472113660612583978707939402924470741774154921842643324631788595044896045525870714682157296355827662146501031306885213226058712807874887813251913482627778855393632878084622809163242719106783203539491823865602760172256727183433870419986064555709174749240109178479150036946327020133568879349800534892127826150816862194489917111603582634601006219059796478754685407978157629857296078848129444080975857216100274574629374494283537184509457575508265033112063737298463544041074448918165808855766536722010035358412460021743291157888811794092212275443795800147966854820870613522627635540350400259569706670311666839249712146181603861107306040344835009611811331437817706335250535839671707480085018072100786542431032138441333452026965074571155032208389854507951543622833488857320987001718392854338705264822316670197167111924434542619609313591840926843125570822802279385930374734332110957770940391472256416659319091297698928696436164643938014573798724864595514584399358535055489889542124157866628727813608435777051065135749540683132149705692476057744917775844216919381373884326045360438379924126734956389717916858469009598962073927099283437213175552751320692584205561293593722688548927309011692671977083013908502814767005944753564576698959937077813044636341049519190569754549936725032296671264174167958821565460254141862630030165928620110437771912613152362688514935209776330086955696917441586687840017822094539334939407897485875829982141080107870555940121948315829814707985520705163804197751393020902688304753750781046603034360312358757088604361218473473737920559658560554402910990986626404865125500596213944897065704210112672676066793506021135379822701932786599036606706827807370273367530987051571913794711023214877342213639035042432982597397692842704066044210134326940397854472487044368506046822283276862906616778018598070042267790171846019417264141614201019702696332335938280952992146372108089904408458560545557444075172081997369665292924149456117633569671846476960120640753952311580628043548147828673008713586925377977583445824935320651845471672094520501277563974069346434055574372643301209869663382751653103560643005900149893501258638281208632313747300263119805405133710730421588763450653611258914044657940357772978421646266175996135670434798869022609711584375441473639151075726819581205390840457007846048723089376178052167689623104397163421375782448632035257273325840958280246757748262039687878327618198098783791562366493177327804266546519566290683272891752225495496729612280995886714488774150218747310579112471886459302352189482528075611894562828539811649831669866502909533255187695071592368531501236020678633459597967849250850186759044689677985325970850004887429222199650233888637807672050290299569820412772405328683266481618863465581806956743980033204110024898868097373888240186174801554265108335725316050170406834292504037871326706578285118434123364678857254905740817699941480991969925373320474428305528393838773193567121684174318105937423201423019980613263158325523518818249308126984075482800541122542239740923993950164650627544504072522443101524784695516910979849710996176945841735577077714576698678019551760861964910611426987955874627930020337249530471996310727788770849670171993596163282320319196006374341625670551776127667482533774732188072722238315780629387539739833191336994420074746486584149510916707965594109992615954027244835438517705469404858650839439486782749071936717549948643717492032700557086377356746102376424615116763644297484963524191007572473366974263491020947023416451629310838722304969563390155110353797121000284345261581591369063961661986779242318403401511633905170169178168302579178005796868376477127074993592225466802082497400305665512599032344944335863905437515268799559254483367723584639892843488454626900183472781685437978830247967908110550251317302951660509843108475496772970142750045992382347908375011670617021354901928314665473613780168222849010537441432153292981500667415087260228623067215099376649427573396376782748907994401572889261098671488159489123307225847089860228033230419831735592582501100418878637290125093973253939093440505001779669077849405165731758910901679213843443052264969126546497427849748759149609457593175511631469880205255447314218215583205425261715343027400784920991396820739391156183074272163872496390497246464876905734717603645208363258016378651208712703633823077206117494521696741463262061830132708444333481800866232383499160426830202266837779319926020551025066664847550858568855671790977154402483307976231038746806427738206033372483099440368528120348184672118070868640934522834268851396542636046947806939495308603097249439926536904544768563558304733014821319579343316787365286152362581038649867082372144137034985825249955458248283461410025988523006092929141733799462053913503503302991800861964609227202615529777502867090133950037916573228098507845675769190303905715352455196848567995704324567979312300380137860906358431822835399526881667750734649588411431601877838082648875385665930018151419438196618933927001980462463722498670025700712932721422419512072848755572524151326845940509176178433238704907287548811415206586005581023455105808482605493728317287294953359115060144639609315500983457599765195505915791499731001529571177673682069896909733874432025264855597132690907019898683244435229489406492829730990288506612565205276230124993327955653438359808644954643148366914130514619169871951888275475353763743713810560018816432821507498445140647622891107927673293940519634108994484617389420394524307009830310132134057489344476268670586896687389154224227951879277910313827681601513613931728570458328770071758948904075334581466640274204536313199877215869572855044641097788764821147155048619779952458558902920076081366457329261135298391607241536472225424505829308044158808520112090228735115383089346552782183682583944537793309723125301045325876866315222434407556879320195826644759326416721258792111623592560566206190324575940483351250674171760188323298375531847388478057682497843564386474330195539120963741391965982290303692944351095028026404137202410097709368920452250659108954720551452072143466332390964074305095335638970620344679630784449840963470772024991797864038447574419937875992988487637026361232848925700536975083047064495656092867290713839118104980786595429487763740844924247090203050669284953532328701229784983489308291703892070993710019380636933085455831555797114565856081851654677700596499205146508534951299175306773703193671697781269921059506185689461927406796355001008149337721592798669317671417689388121686482018031936726937939998238778821998028487113128929696338048291365716999023123585461346297311750166392635829050209729022150994489887562608673948384663611479863535137630399489626382625702787170856863648492786972164371524517164285056912079567140540318014226306043940307855118476495949102319519102980818249481103053238365076480059980660853810353295664941925319806695782583475857303587961993399608495782399856996088472749043213283449950724462743879704456649976062938257835050196245255313420010047348406440724833630051647261387056829639707259856834871823032409784850352786187372709828743995673239739884347960608257791051512223420746544372968873988296840637139666188028182670956101808040863201868139145182370216479061076518865844722615515441444643907752839494800961525042933533697624160595842716825479008850608202216658360613215235663409278955198008807195450578807430356897850765841656415848706387445796297635268603503346908667709323754437861030210212891623098435495031288914863918691917024314842120191456198787265162050131908926855582441806736011724805588554596137827867811095321581843123040467399334902249177212627583415499110491221678277095685727752461414791737005326199440448953070988758931213492168156569954426633730528237678133364425751759723605744837565696298701774114158151382873658219911192275677936739201107827262403978455810246794576859552872421941515379094303140451200543110602828546974526773605775347536197343054277419915108456888236840675753019565221113528138479763978187426171352366394285859959217366164011023587813743645664147837022310514242994378571523423691593956192990080627516090461575238069955025269310089115320242048007145913921522598355306743669005959377676030443162435830672619415598669685816482646541431546271493679937641141483130844971764019677499945785180114150477776979558356655000768439131086925836767541217610473906782223639579256733080519168010959225883592176654910967808213462634302002071789446781929360217323787651282747396235787095187781284157434279399548147176017501087110351792660017679969517110209648451585304562314654670119470805641226974567844786554257335513115457630940063052092800655570388275723776998916888242516581774487645542416070133556193888241555315338112975134489101297240531350921674346266683799526801675668582926460318039368050842649308654775208385797224042352938058007180402233849307576540153503934821789793550226680757241616845520094835347450774755314970232645024101626127549505701623244760519876355169746501934056460645846657525369915880671419676294654493756545661446093356868385694740279927930819612269940092080988086479335752775576397689843008183390329980333813991120078779257840554886506746686477031035888914381874186841336357043504869432666103048797526793353995020412435900077470373924282119379199822935579032979616219236021925408513144134092685597355234228008555659191110030407235339983095372848399825632137085099705503423891747274809950020755943754044466085464861185668939832443253017983075800200617977317509032203749730280361616116341860204105143537754111926812360414186326635604675001632966693607131669106652559668754764298509871512466757525485516548233148117477715461793094087905163502965148816287950703954929611963968128912237282147907024794506555558315597958856277617185633435174214668384339320719793432072791949270151709004422385195907352412142700211360287564748458003951309555320290841655488036580977272772750492449856633777264088515210499553890641675374009371411133855080056838517793360492970275058734110040252334801901378339673847656327776295307847113379857659110831098882184437529066907542909321288979585952909534757106077111716392960064949352137991969664905031907249446653076435639577167560015227824635981795429965248702238085155058476843499089520960325629421211484773381601022752193326261610223936768607325954530814972237377148186789053726749747407015908362019391799386254236378592235004627550484969423191741605197434382966037708101752407937780064942358832228193034569237282865781525716558680349324888308419396896030319421663646035243770357000803865208797697439480633515243877743271064749594582937153792840532724682757849240897659897915374558288330797689110536097719192151909055884865136025774814260898542348763672805201205547815456836322389841690797531990433060382182239725318666273717924076931037065133231509008337171692417709830066041688506555799479077003485452038906589250542242723353772119999751286512372669348105159388462848368562300682017454875501914426816310950601469124760278064565673430323561779670500456486701036024665053069668271155110522489514563404162578906756890275748739167185373244068322323935004875892514338914300820228755832118983638983983263482574509401415693282024635249010020695443130949566170824332895798733596544807518330252170385084447008876927433195639392148559258917617125070602546154767294977980852548342074939975815359670563225095083601041606450210483033004576548975289262970013930854854437895006087544048741951080014047347743146428368099006409866584306543689397845796879717643201072855407756845773568351907075892611087191680391117086040336977337805605980620672033441170236119309797660778036268551331148758697293981426649884700098113438183899941230919511783796397494766040834687966191158316839294601737705655241069310329259350251219741993545387452259801001923497302093387328593423597157238180767384674647015411316471658729694916726027199643893705456188914738731709105813943873422856893526356850089736678587369251480085406334530492120329675092607025408954863600478487969227323520009397059236941834462733614905373378933587466739493828831904333287155985185439652456798022329748577101191128399762519969998049399795974219389016328962441014921556778065991934910559726659500299993144577764117737888382710518240997666179340567334958481241780505128958221043935731121526238811944186583710392377917465188847433752630848015208734100739988452226437111636659209571289336521830557375247674479578341129930302074090287955490340704123309784154447365232959571897149899951604661386722648246958328096913849683770294483696427356177834745452356093648159943206887917303044675395042192562973786545782302074182848233586257913879554023166881253977857378157502852187830814610215672324000037248860853416081676587152133927889140242614199187809782904472878889929851904673878154216258722713375317044460151056985703569359856117424134364025618927915850713802406000016364609683153828088722048321658077859194957530557900351549111104468907341802241819675515442180160186048677579677862674885059963782793804122784445579808419783896011322268646173777606774089744641636813580370998123696659708376877076380760010577116669171248725360735480648919980765825345936384200362298683647846623149993868662213756271369771841666774733858143433788193447723578019107905542353884982584795770072509822112763556406758754003874670775438925947756449299380507309708946819544715696985904855353684603883851695165145550913084653185368017013393422776304572219513644056497748106839093955690037390420003252758135494829089826991289111600446555472692138669446050892247637672760099285370922720296584724670691031664338450224114620190715679098629887505353260740492658974413826710238043948750355345876950307345949612971568535018889740031420087625332845743024693703291447345986677314846654062208990909921279159643912857385133340554362090910549725793399196332155463469832015810728481430751503352089059643179783309433977969414412381702460459498912123583077456241974304601878362123678437315249817468642887829766276461454021733215246416358143042533575450300513907696015566576386806832853101041953429410862435504521335121096900755802578823281348360826863381461137361735531226442228463564170189169867139375868833782331733332565506270304155546851995173654947405650604362006192352977013999745382640194121337358298880555689940755422647904344418287114368642895221378304827551834667403979416758341140748374048945593617014761281376495480371932126411865856816009857605147534675979421806667931829786852851928246925738654840670477928276407843595004301382610445708902531191453580289310435521248479231827359176890832426465004664979664219752951241119038833225451401057553641506348134500008332807205242799987036442156640117650323468351218399632675427322833823549688186386602636585145837283183288689022684329807859492989659070102789648382912700500200206982765811865757998104067323546404911961918501435001222862983633205144884922080254529635433602283964068224205941318884836905644934736164183499195869216350703250662526579667589144980867938519494162687873106956228838260281490128622194704073568619869558383275003789297727041807241927715638391267394220388257777191885026053010075192826846260294877603971479084814679118433169573669031882595506087576227919402355672474964119974982130118559702603806211807059677266610448642254256170384376360969544246123334801224825757753397040539762898690595149989870725003185785858563131953001030100031914041973122404951481663772308927919216293774660978483285928095774305080907635100622404529196568545883106245200794918484168796388968077383119610534916809146676148832934810527455249732568768650746420069454138324476358172689544389772857572519904561273719118899347059840601559618702844264479158220799799016858209014224997828401008967104733494048126694042215683321679926547520300497367568830335056445141149607808787206473791376722526208438055105290052707511055769603007971938372973997227187478449447881726015666250052399734908000180287109365667479008305517258179501279604630180664821655819366414377740992306740582104007717505857585386067796083326957136468795469050635464216379341671900110565011488982435103124159778441760288960448870599368717066345201311334945732002282816898744888735718167104467060559559129586521803230143429562155789067724781850598247166911116281132261531345059539678195392400419882983922218428153383860494055921545906105753495909706926305742847153298249776686469884614742638492732077942595444887947550550635927553492724311245459105569363634546152320696219367972362483479198520352633407114934447605540220612746786871054437877181503090332045937153079737020667808321156941612126356129858623539491964886120669724559800436401210183418590612330558008408328900562590078615892538569254645120169109358817873618187852853660293143177942037756858646081382830648757142746562051005938275324506201460873249153205990307077926613468769751696261797087206277265457185939100356531871973655741259497877561086373637036099304903590934260553012405457184443511678125582674847805826675856782226819143453048484448588067583518230154794477503168672026968483918496039541096067258918857521842520062159477248980688156684738004121249233725844377920497858890358100560141248212742482348262695704544648066724891247843389692856491697825227217603856479383868781310305706608581265047846182166336542693128634896555317861958550687844606602261840117927990217947937275058150347709591731595611766307924955879402900350122349287755843409000565643237301751911484064907607307214468276144755835485710523089411782005898833172653985562725671924026694223533483529082339461724323653682209895409732299873056919568690628122074337851349063730279726816231387702323001221624135523246324778405945616592537232254601665479303101446180273597403708239772878802200129979787046690508375964824607930121612198084188647523235234116295854771607929480470549725666430380261351966564285192412868644349430600505459654344636402915997399985731131349448495586882559541930722645842596045786861300841163925569879882437056477203236169903870728115178018515128890934500754603324439636322690603913836957165305343002734859071405754996845352833697484595018212876685400743750859276673390892155262037501898355633430773892445992356996603362719851020238286344293042948833435274357334413767411345965451608064914645137834784903324807638688557304778072153351863648632546134566098826485756220012545045907629828095125386971688150601028407019291858771081961434634683207590469895902355101476224484174088706434608145662360680087308071642446362823799386280417183702920331549396198797732876649964313754411392408836820976878389671384421043012688550227967711621196922484176114462232102400329020057987410072545470164617119947051096449474680354492000906743782736026759874221357893594248047323554217021034665174806858110236633287115574423030405964310646105983212368284167243661476890962987758906136346350496628824599167877355130692322092345033539691510185793422977015154964904468639050766308780389894499244853462862004255830513564627310475007668407117586403250170123628141473978842938504131631251213628950002887650516314197693970675447877109447416510898210347797143175872900563205927436407222729406824438237686892171347716470216561619769007961163362213422169254965685578455955108007754629450315812065682875215396052734462820178825363053342507468140625916575675250310226683220885544384975314987568779379904327993570940932746806695856739874003574958598221081283874333422004251955055449819300572339785235284085141804711433919815507983038309261419425222096813905479657794771067910796533816318170623998342726314762221178320433976493101949011495203175082094769781296505938193792763195904050997189958428613776396183521306033112699874869832664519580369072015703841412930092021693093277565617276228375172258061418247082183449680517715837005356731529410834681706727193021039296271632789375339250657044496103556675539508745009561747562395462898241482024932596719190897596943904345724175617074913456435448437689445908632685836598766571057224345068329094176997158324990832425313241359006937505582141573411256644555727096654928823998991187224572650570644858540793536424880764752380142193715308690712447857544144782802813587566343282060653481369461115308658721625168756213783652253894749179599184676823310560957098518397486286740644032929326842798494817009275993869005057654372892491495194337828892377151269565250196338039129310186827476140353122511493090273997068376494202969893724970376462621464971732967708938404291641967608140140724558066720030298656819332029403895964365341083120772368108476589693179497215980554175764344481181117248415750433424714154584310640280997245671843686834839555100749319611536022253461773541079022669814974836056610642140898754309427316659226058663038056321011132513027159012978715248923382698919068443402891551532024020842371568142225328066340208884176099570344024482402275684553182032530681758457277432622269712208853010090908724190351168783056734338159737408663317719469470052946323006199237991285419277453220171552017217034632866185947996500543683421680218681354068227790438417960403488934903045052307395016669491150643204964935984352813547908433070252288627543494682204286397944630884340800197913321016321547613574398820478031495684378069206033315323620788125734117791474441750099430346890400739999236638628372274669637861853894099783276684076346311114881373045964818102523510997624634541718638138524024604540624897781062468278471689037783549548584702549768962696563888836229768758919985038802578751153872981265782622543116084462576166140210255953533019480114279370347193887662786256576293935082639117241443915926144356267490790661569531885310224564727581298670422729228362519570178153770293936691172818761227135284889351441069743109123108582587764332121592058793569400947684870124498149671539906344288739634331633273513667060263480801662517330218833435657398206771812808838453458146644383164216875342397934110929043923576120834301729008025584940604579156513426388862116312677402011825040482481283302115865602260132242197356129713908358992862756471944442088265405001072908604050540679305624362270336217581718349986192569233220541921436883961792165292831103848196283697315545455316235190144583184509376722694594958069705396005603922908917200528235856516958164814812528458240610678646360792177100362596389150595521152030593912894325844300283483092381651541748153359569050506125532708845106297649421416766283888558472105966300381157525224566042583881106123461549197463021571223598703688296240405853748250472124132440875247376902686642790769923458745457084212138110090160957324538102675561313800353712116346337036282644476344267188713349491254285248929830902429607758174517207826117709839962407939912958115922910911787140110634270013289171410736218049818121829678116652371955002665339709342129936126151816503087041840645982380772681482005412925493647753384561142489340487234711948439423838925427686884158269820669899906449364183194404551062854733634054836573497988948883540837956527418131076618301057838994216908520914369680317934151537837504359721526001313726929420444526599456853681288391715424052018623790765845860541978723173479037409585256136631496068628442307949988920100605991311557920275473965653124788290239560487718285167191611330757477913836940389955214037236031786922140090581090992158419849246441724363553400713459323261985383443329616354555967363156362414208659602461883954424741708539612240337091897089407427315538381733557266755820226785981115752862303552489166016312390369205739599261510368518944424553262016429961123697421333377974382678537596177097309838553672319348334675248008738024395886905025293446831790815350502326707071132459630747212980423816010476933688052761263475444434137636642351337023118819348533558618416739350432405978954115907160997846151257874762696574183372601953895138283215101723156608741471669854011356383248347567295060033720057776408257534002490938323318304869106878129288729212893626968842204332878162535204402396865975198362558710368458240941238330974015300671668176438770693800828578414768013421264495803979057580305773362749794820974798460981457965051178714069544875413586026951914283011291845011880524016526060151521443970118495256716950455070235961815731346848928845198914517713734642676914919085437315130713343590015373540713715542024569808201304711043183993727012753060881337243389724200203467440338547563776467849359084203209311234167735507550277978299218065205113347184759834479790333467840125802080463895779959845965990865390997795956444868129476756430997642247951402772476111487905974017200208789029907288554826093183657139821245936057104433045750789098504939179489200489438480951351379463756183033623442090729373563299118284024107176855284622058019431562121003726166030594487223557232432079676467568494956364803942172263198937950501713553471516263460715448604990186068832379596623522564271786946411697735676421880603891389318305803062513708894556447875007672824956999741464995953995048983087191894743563716752847473310897517775711773481286845647480876660477414187501521606072851447967231625070455032289249149514025635244147720502937153443724551360966218225787640599189104313719067795041464894967140794849767125929689441542582618059480864085730334006314197327079556170307579502097977446433146021044089371326568730859550437831815898347343979105805456150181831838489033428332079668572856447682987942810426314695115643300839035496083751542128319094785030740853902816447181687320216615113272638599366119051738331681502575581708250554502595949209101700154185193018180836477806352811897739319078163117886086498114894196200806485261052242076494356082221692105481681398452373261825243894915926012658596563327615194211422652233050574842855111694010120078708930355793539000211912325593987614574609750935438190209474775106467444936600484676701628244409568263565660797173212201695241920856833273759063204072110076534208990696511741033237566136653225270698928540654353498189296472946720853768983776695512841337843970828588609994936337413535215925857889270374100884597240459041981358219540282092618965244326625933471664062996921782700209015960993538935445037183850133043434349944168141767816620074654668286465397292127334498746883960666846305304024862518612927567250945818668772090872352954630448800386176815338181059365437089387073154512161362070981052901766537640304161996970593922071666475544607221215369128475973258439928469318420060218671840607089879723901337655512993244710408264768839281266700374932271417584045367969148395128122246420601357581509727418126371175831848919334518938954585206036191165180868576964730437798310043079897329035100899057766458687637556783789897550100867562699132293852583165458995972711305061222737913760534231754043438817879670015397871137495180237437525157407731080067895400545337508764127114119159222576800684957023433004759819124285885623597402671898342098675406608293732352284042306577960534254351612172920240108166619674048662560972261685531856008234451092611440134620320319653472058564792477361691394286903730937315381061758409608820037081489781705027060610845313348892134178616492645996339712142810568093189241309329680538087877790190253304463880211929751343819007539551217945022435731878957910282602942392469263201611828454819609644237357882115865388025647618650520030827625544479711393486333355019204702676898710043885445877491592922458968131092307796617045614266205365554130869376393081951139646199881230268255015912236211013985482439119428676203755005577540702727926858714692783251681760378812688097741074827940786145873996554319413544793655282680191368579370840376150859574643737455762751438141141309989855178199092279431486567332352543857416257624521896173874616326803796080452708193837434889829035281106058383724818864076085177227813539443076924018471990496833241193061400064226936741796509821828380862109031486347911170269530515784569865253449421157823896520161531738539218722908031356657228902923447951884544680965179832421343528558014471290593148548983594362618024321811921806532031259781244741948680332633286130537889123706679896147895527128157690319630082582293397656475727703865361306718862812760578654060934187870664298555832392118877214754843849771630899925961476035206486729964433526864845737291850879594338204960921412291677802432108324182789854651967315417953579725805943762753541453877045976826861587330254681284631955215849206297248609926556850416752168564893801127371642039215645231829804229852733554432530445515740446079227360777859429681539678189267693337345710457394950674409349615085247486347290276475236895027527650224457216456786973098686307676198838222389394690757009539456381954836247168319552785211771470873507969168508207000298737447024131048972802019218493294507965923497113603591038725327767131816511617231143826614929009746834407927553006644001708123422788070286617380744162566442246751888560735485150875692586802374753484552980655433153695112640982822123198780675989736034149127953579294900873950883622751897085267495119033359470280918666946161011004958944999378345288799577910432550336327856767003444388190306711167391348138254148464664964647064145119443866115460557258844143213806683856565259123255281554749489647679753025201961886531953622327899106880313766688876384388547972664485160247189957188080460467602933513394144322750598189048445621190062571995646726550793697249002193582996031722098244025595884451994665591496757371686633764365581976371205868699336473005699247757329830787485662902560105451216470893230477383719338495089093625899223334177745685533379340693917858360743051056673834039123034137794743185565883018004259940257213871859318892523275429025766857031823866914286801661870163242394502753561333816848517697656288849050209800197159040878094268432323595142532284926876253694102358913669277410748141464952109038625154822940398327624044479880792654221756735810439265746093482909233901945154248331585731797411221619717708190162012285607195283480611284547269720354406531225314256148621323254046228088261401237203217281329470123787381827387184316543477208602603960262161405319351421456459798523478790263133486438815668541669350945408248586411714371234450653589461902038106773656440785504913298355809598163381850544302742686099296639732367359519276937844444536626214219521572178802810931157177890202571590895416624327984228782686799766470612391213269581818347911541981005013515459926981540149695767782212257283688307777697697824259626502510597798687673620413139395327292981641377484193780662946243872906525580884166570893149635846161712639996747094740101056749089275050098246880231702479246518900542633612423889616319970839006749726952944065939759301483781051271194743208002900585243853377829623881170489078458207969680341834242683615558531268256323261651214368322296907630416713324361799788133833883652577844819723944647542276536422540955318720652073187491493879968560148496734961201558817809121716156382608291462181601672573936292364374191925328549764633219165338669471001463312489193490901478047022270122560265791503158699980356682151416729755751814383834862058987314857724219945028096967227671647730623141526864543552102678127674030536460239557966361837766732318772787157279078098834918644716292075085202486459879007678461827000245609352280865243662992921871966611667493272156891754413723439071873276759758631741911079499357477487976246578807367395548684114159602723410159605122998683527220454445557248622698095126629814951459180663503645954860053391279023638753238137653005389520339155239593418085153379629673154496395414782608685791305550198433373374746385090311435185415832475860473134581357129115617226355748795998045595245791298107894838414397216609564774528099588301617958991802772545901738537951799731189811718810874944473897038598420397138106961127688539933526376429812342519475496333617741995666263949042318888937217552618793149860991593751610907583015825552590511275924292987769465399371393814348645513713737245436026876091149390343570750764873171974299055170908533096163170068758413712165078506661434987297715001302593738845780221366283173971604740989163132058453858054184716099845684259232845193461118005802280923409674176530440740560213080081810084916477840153005606610556054980112220396155763180196653022382684548249991821309410676725527992117874626581753905079924651333909935886099711851043860695024055633943299002725004920862105007219553085364340928090338574857853791410806457376955168362033554331360303634353896022399008641229462522218634328712627378061152641540431008665042290552999163029820968771470306576027833909697235776843823910385991000177586961615385578634400503133392647820165296101639765343396984364224555457974887223895547879726870517875691129570311004932444441354472405654816482348224505405106732297213589694601831720294205187871233551943839741677852616320890188870745495655829580819905268493142838753899483928409731918511645758098063080463932870967446179544918192760665778306801613197888105395735025572376819489670196934177429792587658748463822418635770376791989165095218756555101681522608436836282707325851902752777189823698218003453043752322333045415763854452001005902788530645051953899915666240562476759259455342256664155306657627119539424485523896536243993714150758963096874336300068311803230796854849945822185124585270861898167758109786079445746233381150650648449709809544053340578268788337083245361990232605484420872807773994596894372804778296219455072862417799433244419978349300487417808084668441289878841239977616293541297833669076192174339284642194141675106696563294915025462160990392323781402987239191379814414396676015537041542916303146239558407647416704855434730128866967732160811148652599420981950249496055663438900228992632906218525640119241411743691866247926198435131723919576541656233151626412925908132278177215456067004177023741999962597475608526929787794046250451513030201843733507717357713749291150692478881481148705143032983557972041134411001330292797740504955244487091255317529791052874224480486304759260133150348814027979779244632639292594796362953400591753376872477469888576977594268047424615555847927449861702305278570376831783960281685389607019532049033177523714717294792463896330330125463706238542779512086341813099516444694035215980822662936711935865985693966292500702508325196130170377565409410502725091474907889089818476270461016401128873575657111255642358664352741302448134542433685228494361681613093592586234050532625600922620252147315993078905979217868682336821554032969471858278715470106055735117456550980420024955657121176977588097862598404333338679775672101427951684374597647572069340575458090266430298572547925452888369298220451595953118855213134233151516477063809624218819135519022546235119568809167569283252678246493895261558713061022373110653934790046428920836181389464409219561242828993854414167044392402826857771491801171252999908267684312955926720116678202284474283091318056863696674691028859394473371238343092941082673891296831919066859412400013201111114277084041713084943984360119754181385072282370305217789482805222539827103392610663522428041304205480095661940094345231669672152524461108306825799396801505729355316533338483390263636475125119572122687514847836627509338232514626618983358506610744640557182487725849006025688932478311714632755521051839593765327436630294127075900879060828188503406799815826805398828021930192623541504956963241675206689427621417982274205943327640865475122097205947386153384475641605381728801491541818486315470815703512888892794180121143462060699178537016945497532157330945157911422304287588657406686783436697563953923649729659781216217023122841424928754960838587355888365960017886044759861947305783455257450377406715336358075718763984276952385593923781670188960614350523157814849227125931597630969677853486065267605287436642659740204175441114670536610904586591747241870160777094847818613075289853929309555055303238453321844173435888081719740241209449960330788903270331755456266577875942052396131804477055813571397485214453891424536555236549257117767694670686930178227294226901324315494840316366301834078224549898502685818641205948219357480911426640074821756984238634066752717901954190162033561279247074227040238712535572482696017213827742926985893537199104437258565328524684856935082070741363053903520117306826681279347773692323310276742000242770932392579347333138499521972282422667577850317354033072243549485947027822420998690662402516091668687928191029073986892780277594397958243928350144778166563739431984768143194819078279465747317024120398048659288649250389440162246260179544137493717273042716133486241556319251191765394059880121924752128261839837612854223476435032269682004390312050667642128933795594039432573674651731691017147676443015395943601690779726227787087822029012790414094685457216101396265438051818599214811576133779968609296408726961360449251379917406623878447245914396611533771427499623897431932362370643825478547680010245499841752434469100386544374431311663172657406155289858035506204439602970025116254854718232681213087621150875463241104840039638222867052037951753289601253014129593017623336973075736968909142784687140896607937657420216373147854817843804673069535827132391732158661800791396294400774130272564113348122184963363112214518081831516410720042569056034706331836319799006538218966500035139613157771114872138312065165791587875283558049480540008288841770765601705036154266650444562623581500478163965748856607203372785002235466193722540691512706077207766084179221668067557264153609366848142073000067727140780213055764870285857506940794262708876816461679276655822741992544661477324716353707746526811774124626366825117893366392025171825340212441538572007276950925293521175925161860329958601132382574487156363055430870949288691110033576802259193138461076294156064134555810673530255628971249642787753442081870791973913952119235982464073282228174628525363268268183796300594097268438571223827553416824066980642475712899165619820774142631143870787325540725284673942904155608857901072028554728315409218976474658325382214454389513136600038334581734124987607380132658364808666566648626118704276708541759322983524867545737806989426071933526191267261864743240259072523291435550703782420469690686593413669253704421237455785700051622482124615596909746605286436038972945927037668102804654810138480862805416031763848687629272191043643453858802331358485077655813341022749986849420157889054231053198569192316049966708895735175814068463490713056568813379254360459063298180424907234580937708420607896867240913524020945180344963481748419452745591902425588507811834476884914617353058786769660912313723162221199855299328658905119376045946129988845815308872928438388680991857608657075098751574545640012366536305060407607004143606619914483775127187238554725847718677639035252042532234102347640366222133936169955341975829576709324846719602524836291759681933911971361280216860147958766640346115436383774473256190961072737757920022158730831186082158857619489816439678536608317010609724886426014950748604534735133660711948354709229638183457523131183848154442233665177971751663151768484685574858632382859452151579044045046928902561105102733739869316536175224334918016557248555218625011294261890286670944474568527314772256601068354073958426354239778021364042033909211041349089309607494588380570188480933866467622605517534401767765342709618154036104006085243422014480788441383438442375009381288308915687102646070084159416221445041166301550076995071044262213261703206974102865242235135597547422726683098190098118296835826095755778141177508429754279730920692975957165843794195664371597283205494499837563595696934780349754156386841035892476558380595083068238097693483558922190752395642271171907026062066127380922424294197734364191070583664401064064661112802700063564263693750684758796579801469230566687551644817816910572176651694449441382188291885904542602898907314336313098418365678811581181616672336618741850756327338452741552830870987234697899438017288254905585077095801167492526897293939851996162241673063824244797257975738564966657627913370187741568274512514473208883825162240235757706651303909919831658781437306521985203900121883122912569229223137189142674422878433497897371896965680753055074341228655108300861896375428968322733001877541723143419808365683475456291532364341214497987958127145317731887658895587418859524332833832368245616609069556565774305777273087542175545820336939547697383350431502879682783170206563207448474786197938277777292497478169215165403644712902441534149622539370162449311253727190030972595464296436053238473541303412217622968029406602766897728463184169386219089750563277503569934009442170125894172443168865462448290072681743398485542563710358818993621273528782101693792634183269447252831763280460591906266030210139420314447631291449385556549497982206084354553343471552309885396564166773385339197576631493087106228668871169483179039933099165134426714888931122945776270807470938105180752241818640026250697436434235156459837265444233042181022772748183249652573676999031873019000002789731629138114883122341016979610020601829730962157303731632811051227077348588279393347780764035194727458573525013575652946582445583862382287047691655137355646306571109689622482241981829349387172546593155828695153691207734211838666870206474741479830034438889266241741250304495975056967488816665618720233426259488866075859039866932429776602062547513850118376673848444084703851285336593296315407563529533316545642993595388439998175855073241390311972286659508030420764970091113686764817641311498254906125728854747022791376741480324543486550171819816874358125296214678413013945272367041745281533422562171518697007269018412944266969267658418140536581485144503898447501787415549793795191431938176802919460642816984589392849909589614454252979623518835100167495771774100392580657913031419338093049878031790988202712579366137483123186244332639760236237596283038608295158506928245563056371311406543587496749151021182709295933561992523397752924731444457932017252785367047238245435368385877774346860204762653670640456075312344219617794282765378720053232584064255890831740815612598930746136779904138659917871492860451740956740112959309419901528844073764923953617973760829708081428527857754256342227325657388357272135876512268145926787365240691156942939931501600572308418009953318610055943354584819417980910862952472783367323816958993514289010986300322226984867649315546028430101866156938004553799700847325423564277457091668479138715317287369055409278719871257498520526617583780149788873977974543659264776012482917965698000626874949007596728713064656434965737979027785557150030311060795304189051053269514553434843362097351653989367201341432229278043599640600709776479111475206196341745194417387015648481267906653806916265943764282415486681567020252494384470508314368712518327917456461365213898146418957113759650283482510133931625306925200548120106880382134084956716552417660914210411731820929622917564253644754646915885020032483194341055033685452667416250476128909978012944173661125668133590922629822575171411306178902210874938834573871523418305935251264210337952706488500104729805786840075886488678191318986178857006439228271993117699772211775357311084358186991212430149436749700821585997466379247851423771915193111367309031207458822257319708561513832792829120381773452466265329736883828264528196428306720694652890167907576042123135219936082331627573514000838300558714649461589716596430214699513989778956627745854224207393088889253784097015782266562983162411593442482291396178185208058793904999407815163429823613884847130605469301046818328321592869599602011718077324345905475949075151106234753951968721443345139188799179590101083286266571028637657196816771849272338451706118893395520356732303987541867071658528283817572945699747815419905587875748183746147737237569676071097215297542756457876866590646723126093928092703652985032862369863526546256606081599221615827707516715783611341448464315526339564982416388499561334639839797441082448985320032022046077051513483296365612181577068949071015664813091966134947444434721400148488593173178123865476312971692096798052608573987166809379193928982936981152033521230611978564829751587351930140675049562919146505442305561748519751997114419433744503790907919706273142845020250248475997001780607603749937749813346269012681740319440920318884936999604226897960148209305828707397309767002306697864718911986084948862212537795394548331481883056117499196665090897419824711086458391528301874981251238061790453761166970219079449610634056423635914613116190357114194479983348474202819763480590068339830056888084764227790669484954065802996079025802785520604231727535082154683043492893293736940520381904137709510903741295071350908296746170505932122972710190559882613020950039124823722628666461688550525443118973061319602849608300999518554130758472026392035974289517817548977847484066372642502055664971357933457603589638224870397271117769210171790468382540901378653991765230711434476739214588288659533050222806862982228805670503472347416661670620292501399885935062297940071785069286139741038487056123507034364327620386538879727831218932589889297437510346723316191444886655101458899028074127308574046836446448412810107397510055667828331412257233541056506965551389067177920764024471369388057161181277073341201549080608956646514522372767730378679794254401703191507503194245397528052705208765617614555377118441201963978107191922651957570516467379897744857986997547447870269764222534926553968464581482040792683213503517789513153066486029213825670910058838258799813607038003969105852517783500985901177662179967734310212434502120253616473658303629877565258417449345857196479642876091902802588395578241464194571196369791864734062224124447993133574955645697619853039694359376247336173571029097539762925831537032376545194734464696610651405276199741496474013523372793244893930345807458980340820865559555356152248879945838259263738771630522166774790399673436785541406089449440665757006927683326319593654989940610627908186044475832381975395774218314438004038974923133048907696000431193030873873058496451753054669379890080492582368564587371322554931053943034023521623796876497119052592960625149322709242886540191141300149239305671593401957416483847170050927081114495969045712369998087159494159631274791940700301427280344544572154916527809071538932374299830060499896371187886014072214399222947157223273542245768181732401550245912668909441195217645394784953831342148734520851637548552991649009865884453916002221867183044572900339680619805589151695447970280454307771057763553883471284196190390499436391338630041602987035262519478636756775480491714570648305148247884036492944899661118073983035242130459201243225933838897613832788336557263369053340632673986149365716701605272484822316255882984849530134632128056187509066823965484152253055637123281279731968690421537211788692228371851116204352391294657655609186564603853189287675269821068612904283344563797427643199723679932041585326102631137304561212751144902528012166147053456124166038217990706913504355036988344564445068846753239634043808780383840339669794053026418881935501168223945053785462279422284168898602894881184543409611351651149119012122856328699300116443066699228145374489258166494647223771179448584554360171595515200869841139449288388156140049998907056473786142739701966757621377416468817170336657320721741837831087113599434164565066601013867441659753797213471044267447351739572877321430295003885278690666743408043041995060367285984186820451343366448673995038677339674356528568583210272134175539942582182145348330622697946413825511059465837966312724680217485183953884472710781973794004596727552462288799166241367834425206371675575079053717196787621826731656621480418644298109810490115549324092307574947831114181317663166584358751275926858092249686959005376657403291524508427828147290620912339281472186677256586713650226871276424363849976443305540877883207135116836207058404025594733348400922993592693347423037678901911642736957332333663293951742931634905644149894041765543601872923128938764740683603125837781458500645410702327255592606148705567796794819626709470172301902378303013607904901623325031831966522283492560632074235065905697248441132875282974891786033416200823671789748227461539690273951889837299243151664101240073679904309461015324353237987468124370080962220294027574633221219736799389957596325904393834596440947321687572412823066662454056088374354971032713126707424989246190048018779328953428229835247119245821162266008736127473839046380253265440204273181037405160694559770469627775579825624812782827718984557229418414656094340343297682415404857227737670982703495651743958226687055179946710384643994855685157767252748953595958811359690844244869197178427682605701453951007732398712953102348043787648133196345498705620473555104606950478614093630543039658710249072263247495540071047467704673333303049641142909109951578443979486294005788652188051696194839648306832168974422653742030950067486043805756827113453535079360709251019293612936369196460665840641443443905772228077677090439594890115158753173436246480085472842214738211997723115616152420951125013310030415944476989081760098131214194334342744517858434755038930272915371541433940913293430766158651063827282666961196088930710499758584364638811215958436285006673853847184116419796568062508997569171229399803795181149717010731904174729453058296748178804248688554743183088419923544201690344526897407152883981224459671542455586590740230503827314056873714531820203461224572047829777887526513281242015849241939642026474177760292040067088331947437781921855668745635506418746747236957069903391148359912354109814594076175725996515608713536061796628387492913529659595776590710854856738386656889264709515387479388174065867195619440159009845549678998409456376757236642310398132992404128960066775147543843457841845661704870414244688469815873707994777789889422743848035413264664118360838910418797454611535768060315133218989195988720415684619358751886440882956469146415092907883571294193427613178619669924025256241584147081822559017935509262616674778857265882076641836449034284733143457496111222186977136345400074935429015329073593419281675246516909887713241357275178497071971968018746468992231092857143971061846121644935981016022325898174377930353665162164779785898772911558098032355473221121985380796090766629498638518475939665441321940818454023276821148169779440657078126914902478946037782650206074079961849414194680065105528828752090840448115901492715564786626105298449273699965618477503379373268523179980769710268870778737611201721532054313468695317277589364771601275254418237720065062161218359260603042034397512237620859275338069996499294746810588892490707656748342925456801150775759824702474465221609833963405069458440501386206637474342559176958009893752993782219750428476934858811073246227288773761593333494895182940581404378806349939806004696954061201802702540689023268231523380804795671382183741124760914765793114908417767545284820031353541430997417446403833057572512471389029613420630398606090077962679267489812075181223097661409827472299892671170785484079824195780436841660641556546647860244853709263622316882835231031730643138067585365215464538436987182032863784091252948738710239232031047089772110511379707245111262122019699603623538717228778298459534532079362557777798045364242368147848333744965716876296532294652563908735042015551531339611545917193182032322901405298244658491486095677433341810839384812185058019460537139952232077952232286368777502276878136775248604715703736077915185461330742144782067533700545412671803411587395006181537247891171752180284626189307735326972435781659202801737393307459004438041443464887891322555919698279514312076678688204728275373575611402718984420406885599531050078802754245396942324629180924113601212828592699434340352236353441063822103412161020830762211982819067059174068817880556813006380251793885071115778211168460510112531188200804478772654423829366227582668950333629199043294559219723763295584719300307399445059936910050383498617875806196469130192740980749240070459492001584344276999034365797682336731065793464186070108360685535249570314432769335097008040388905626003147037290621732143628231096299815449953759295753780189415204534722717174979236219794578817776136882697775562129289297635043282640149925562053908496058024664901508530309452973146341546112643374865503608211885621387987166907559130123537356412422391430781767612994652409126474858663168280536782584525573252519188186285081290596899391999023138740650848187936710384632521735970353305827321964202488519148036864197625519218372323594479332755293978527390692639064806142036364598311762475578888519187695233072544155617499062420859479643344629057377808201426561640236872847707778112636991275561111190222606756257105638751699606419180551233872004267045722310626115371785981447532236679686485479054556883261708945828621642514189139994324494641328633030813579671013506073624735263181820090038371536350659250992773690898561411985401069906570681741503365539307870558614124588197228075350201136740719727344828293602202008250162308038910148932751222954546534752406074680539902456059756049511480384150764015306322898125799327601817345701180327757129690144902842214334978151284397390521269756631819817374189854981011482343661635230882000121905638905694414955402684689358158471623216912490990888780421076430350951977924735272497715403998530843297057550923029056711572844613544161537575278467242083363364933687934972548218395461392720962180599749122516634683549758602209224721711638122210805931226457611752920390429236427261894930629318252122079329287925900266514772343196595396624665509962440918981371144645572215872700616568240853165709218198282567235610212335046146125630699727120385360292016303724507033599759076543901931503815791938965560957848618875322596517886203586037983714612960877556391353391205997720341418755035753286947665381877946444034843846466298230225035494504351716558936953848196448273907692814261263146304206736833564910616281431707101622901024888726340633793956639248306731587880738809379598631837801796958421468789861019760016310773451402306141361380206735632429657082413995847291108510688786547509626789553181595013014667557420192055152862638815166233653136840083207350910590739549010936610103365610789697132370774517219956732781211522941973219320084600368366344534787750112406249936008507308595442900486517440169115587494918800090729857525781424845700642016218494784202635596124857495617631169738215711205091562378486366103776095774459023840539297546341843502120265993914882223057596857771624736543396957993027784050581350615677053017304589420261882805254401015073544616032931452548599663207404097369298166038487001150008765994367264785823582735817723494862124127572801615577779373592415698477612236704338606567130981570606598209312047461949018064615163543516958710615801213638228755172313159623540200052118579194934539291285174280538051745378256006985842020880023719051384517231180034563688640334705563556230194648796118431946256250527783702631546794291952562648302185484920167149841755311161243055284315037992051774291342916195916452117464059808473317510337549215087697382126345509258690427363410886069901651802536131865090096910776247516191750054869700746614133636696044747577094712622866163595440891921776879208074370024982926061360781782609237438706512559506326979698419795290570267526937339691269925900885771423050320447112518026352422487049536575367744161732161963401901994964536369363608515948677665858471804156481103511201863818531056796406839957557115569980992151575193481649371024311865563548805987928891432066443835035173364933938964595326804572822750124777414948908441585214041578071108496605337270677764081666741497331128038185389543871908748268072678788458487106658344081472650210216180955778075990163551628088407966904615058245386444896576329352732952490420615588004562893516154100556850415278856741395738788494463102619522943583980343258979014150815660128404883569416481001367264525866469885297086241904000103069459862870148808319055541586192957081570539989068593864896867646950707380108984271092265671692806069587658288573400319320102726561395684334858809959328902092561782335012729102775132499288125420950911898338524611134512552091719154799813212860629023487208887782199588398633757302809880347317593574395502877142102619906772253796877015114320216805865232390112832533395117271281410797562157060946136917737328521601473114505697601767410058269291546407411833958125258051781795813450667896453997544156359871280276455091158637929580888149110821827866764843682885878898340685961270451302606704497865660346697996033309325244291888401727119698537042892438508836092311777852424945102427468129969000669565969209611315380608474220075865885852889970337495064410500017341885652479483280591873962683529114931691026990874130969391907096275980101304697379348276359740448290562743285642219291926125664992058065936461267560963219072810354556674031008598470634191346536102451967778049730174100409629218264191021016056670705947022825418069496847588100985344071380338524370992029556297413332047211606220622381071385107593832305442156561173469297273344502735537540037062738029540432051894535101293712566977425671176883746120227791675807460504048449814703152329579974673604655409893339053798202814348649343198610352467806878034032462597808600426835629100805059614672100945417614722555404896875861948220498516786761419701389612930609587352245861842050103382060917799555493359272901836704492111838510351477924464310644921260695759656241199520285574415060332692007489267149019602768028564213340419919985240351510616449148259828484610484123962994969830154963318567645210426504385300268643306959917577050282116853702219112658380857838622391130580032233115318422152659712607257508855679902361768515296257931265514127071701032837447933887926804706281231004598258473455282218007832539082637742660571187250667804255445242620127912945464852189417330471457969132160524858296717782797361235618670460671893829610683622005414697549845449537386369654194299541740081700561094684400211698656704455978019206123990051346541679407792627646174702950170831351986739087901664782163569343296093309192062344150308331075677376737873850610192824556916436901482308624379436031019899102502746680928695565848373407572001690498063116257152278180854179165749711508384031905223501949831774574057475581485360355518667751031259404420013387962190407306966595620589854692309997115116839437418028442081226258479400798920813158117225169985431665138612546960978943547230885578796770206949283289653938127174114330316502103625492240324874481937640302443301322027868414943601807424488966693448894508443816338823857703545231648118218181558221446861328204592642382332618117913780233492414907973013811060407687911695905305675605421358784361638810629341216455559521568688588948474695908110869980482341501752369738003299371268784834890572966666138624060085415283989960019762432745584372883000867051170323368403145203517090871350656771711318204253127208904295489755331661866874518264640378984973596541792726299409378761809517390281762022900328691700030367198175318815872676961826422460736524557895001998173132913757244525499949944155894173999170495458620532900406844196115567321070257984075582177591092222494502871770537626654730209229974688518771216574820223945496856819857479177273362689238773441988769391097527673309279390091099703192339426395714023986183438388434285428620952924195601536620038241579910979766458080901940461007585616266341947864063387401075916769308984638807515254809379810791314900901011006707321943075909960415784104896360666155112226484031943033552676964315144810506035482431598725660700426908847996506158841941555699198408359970914872458737418462957726861126720668365725195682244487706730061734385235047100459329560386469297339587498019061408577959742826226324578631114756495061652122408915359321730836285332948157282012577078351880131746966185907457884399919681202071389940315879355285186020868308015798964723589917374219565500051347859889282885701783795416582403847323266550747748688702951910605241341178870055934588236193982486473701258235023107426222425904153779869625895576336284235318989868066058663536669594589175352976459819021433635194554215996426865544256163569259873395819811449891207630922909355488983223746849174025998715928493603144202601347823337044293229937636688164325542648374684925476123807925147555050396651968617384612567072003609431620134925229117131822913212122074196496500001389479227421693510799244552716444535402820113433490239414414139216602992270769175622143866678209151393852201447005971831463997835979093987205877062880614474855518095325647873332906757627593512068004424696040175316681963946121159561691415512061117096128930133737531719744092186942525150498846530457764016634373668524296080999189662507262278843066611678772268413774914407793302246614503158238067899355552053260608836936803288395257373211774781750270848736564345422845223602456235034496935151621896754981768848150802030525073356972619329112793945443765222410790686387095857052183255499029841119673011338361617580777806090027887981608409395003878073463692988409021546934869474185839452810646603241647379979515161607967212762683490197928664506635178906614838154045079135139048751298630716292630841899001074116845111379158826460185689812639716416530247261322861936462732358899633582172850435051814605871783093292212964778981289096345582500072329254610330664518788949310213998834967526384711619981162138106204951081480289464727033854953450401906346447244747677665247337931659733412101003147489737263331179360296248913809315869676436733153579932550315731985825746741469520791814259831712761969779958350034795829566001891360483512811849820623196959309553105911098642157862950511718514235668965306813324852405751888126685231498192929882337102703399538777836842510586754365984551824970617041284171902168562925222910781896008395355760058385119528512650017920931115775542802087384398867028440336856496607914064854662003160004069229022799637629934109240582376151659337044130294629393019429663338514390382435843173810273881982373487054095831339488283592858536711645635973719923411958922988602332737406656131270095674528440210861474985332056935585727820794906102347307109586831044268286854340825189550286156023710448419363069454290781598846794861598880474068655459887471599932964568460824711580869707427169512094889101082357227412470065685787970989703741448429840460240407143929091055184672565067482647637695503236818476318935248647287406325266611432123745076753787488848545129542354226625398189611931590258907781655381573929088146871391395702631433731956896826026529209002892706567505366703752245285603377339779048335647324057153657346029748870501936037841868393730230841952091045669896762528032299328423517139678804009948410889821474552417271081298936389154261634363103190112355382494974451762257147878581698341816718575700630766501912686304695953944481607676496164861642969419123412844680357633150991193649158786132154983991455374994497109182380721890653698382132746523745410536222691023062318102940639052736504443907368343842384629475719661167258201631100556823821543249786050281987796170654238842153943711543841787218436011694012904135834219610744884687314374980487590178484944525966383196076672079266279886616438811325076712216555265793170445876156962473707461142749293628782337695548945475693250535500033096495643652117236470070759205512449144376762790639799731543178324525555661288948875731820645816630485386236050423658693006029345902846539169293842370519284058048627147362762548099056412132908143044285984759965710770051256436404308091089039846952066600522642477878552350998011057019396058112423174113230348042717790658109272965018914067326125208895724679561126144484572634092377411688645499830741401283790499930304447904638059885010610164175112599958370359964350119653454467518933605402475097417090045724108812094802608395306092343070918054440571061017893970758559135366672087586963991465094177938345001697907116807105629671413147171740938614653461019068214397331068899046332290863633508604141931881783131016508786681080030745077233159692375450857930773928003912737130574678243316020425819578681019018946128706666092137462100126612777284488002692369698949935814901144791485039449883941261921463403024318639167518661375380872041961224541219272994116301879073447473804469881321626953409326476368648795669039784221362258148991102656874381662228880558842322473861810195708573030681028152597499865210430364418113887826782296678639601884911295016087636216705325589213568923775992372714950339540058963203796323432268383802772712290876969057727018716720931641021987977985676074023272779175902543451872786349081159404056668625791964342056815861755564225398710300050597685806933694030616264693376764188040127210898776727912904286187240418417740459978507618089057224249886999542361460935372021136793010460899389192112020772895803292906492100643708629890368717129022022601081581233918109561627022416682382655287769150494104387083935728923835027932817454582005209557194566689282404499411966790395212671243145144978501442702546354209878169429519339021250622636616173731306795538730529460484546268516860521787935027762635264926968952713425472909836049531322465886401154175938133561980488236792263202104476862659279331286394342094526294771697100961307190890746509770219600166702787931885263897436763806370555782231261036515970465705049406554291968487043894965060483056987953477794957080517516353314257797180971614958694799988196684552125744305477528115070843104318757198028541977274304941037694989427005062364707096526049488181907669804863077903920931091350559764527040937061099733599884218680404124791746333742413134456986763055060798618314497242507677580296075091798370811745671160320494802135790153458097955584260763245596512807827648240231202925873489233196974030881030897536949691587557700751020453478492394721817474741059302799148831526560258692272297948046084052880472386252663222881029263203806786488340713588792707906960431219170971102796125019730867853922277608400875902835794478462959725189522900130396068382288233910549870620632980952249103795068792364629059941829584995415871631734418891047997541921627312365507160324294522205596584361689836553016732515533847278693269188964727937822815482208469029681027129064062437871733060705162148293375958583406702755043497979475245242523666779117098220262141289441518762587129651303937383416840610096837893516721144867382766531482464087561015045006805208476350894386701717778714478610609862096231845262686192587223248816745885523237223852917917853971375279600020265024694190226407132744758927461809325672537326794489399350672655445598040970165737700212524114222315850307019994110205583669346117817526190419674609438738802522372809671258712621277990905085628559104159611608740251097475371611184468814701672272304817727093083449364141715719287702093832192249622376804083124206934819495938637593002871474033823737663345490524451618735711088138274693109577708982129244610144309719130451966379047274413963180726843531671713194420013767590033242602783903505225016811526485794033048595674258049944757328471374697669277166060068583218645596825639078988783520271319225653713853207959373720391329901660302215946349966157055283463252718463535262963817023320950209534632787658680215149610737157872354814537268362419473938631375166342568890307700800196521765541458305992026802667972184747967053322494944477629060637171172230950828772315151013730209111274591873905475924663783287487527636184405664451872851394725050407608530444112058833895958752965152194915459831510547435413613517664418579994597970719661625244733042079586354140288555542568839086522573319427151172311772196129430568791879295523409299411239213356511213686090423931731317876587752675243914533803555658854093113634710287067439156671700568835904377638443020822012406911602071405564214691397610612772551408026024336077791874650303404088734352727521149877275879135983600000622170701654181892479443505848481043873815978445042714102063923253006519926162869739453030715505140789846193577409723282058052795374158186190908445241183176116019940872249794144531435779774421854718110756689179352932723038235377566364032486194018114042181909340983799274718021655683564015195026838276896573841307040597739208346298935349032065172334673633272661454633516930696731130912807354885327799602461520248826250527194317573476918229571972856172561799679454980615937867439097544337033094281874257366211762579266249610537659570244171304450425701261058942974209570482178510490163213952387699223473575072567701781415536273162028191298106533799038996750066830138580223796123669025627386525350590931553800022775539568106902743935869176206981594200653247774332615142593373461128514243442707673139262190300597335848574980781219615765244564679905399753177104228419844380594757653860332657026731764106695161185604505160337753734992935122351265932147743097741400616362049607129466996198742854518391506028553349623164555175282840350174140278856889029270011494177007013350238880699461359593176985600079581468261788394465442190935430767831218792839472200308945543423518709543890897130717497106543329326595169927404089547211095512600261689770221334910645517128065725552097158263620100491290541954484339622336158941894277440420244673101521268840889052694428704777833250328517966712111134116495724755082323390223878328637381182810719956194915422309610033257687957734246005455395238189795338134101123161939412383158490939038891390186780966613826965908619119329784015542916849908454420554827756648127970407107433474402577917759404068647424461338711145158880807038894396447089463124754439601461470721561669577902042585610860853869403573011772724072076184222583755717716150257050468772197330419834814383494693893836796253813026908963087274755002291326307895062020781222391762884400460779034948392367886903511198465793454941571726415992289340731974704531589274861875872040471722653242351793109788479378830836416920041981585695182813875613019705334315854661608606350651099127271171916439173713269056117833142563137378554674845805427376127932671150111445292521160329307072031947284149512161054567021152942756263382287444009900518107688119162771327949467439743339922353135104949439233947849476914988094224821549224991622258222796222645686863551674103548868230141601700519336362765621894697936828634253448123734642522676185066049309557772261059698368930205314172655047197826267713147013655206896553236608440439600721110667234803368469154175664562976197158823145658708948049543464522967694425217237879811656749834914288017302856030342354322154016491658727142822685900793585556531134535747299480457380513838980784863550446056429036795147874009580203670612951185124336524578743053919900320967075930242231713801471649431552894650945948146444557935024479561564974197834254124969334807389785187870739286386267690832460931911277264605945325863625181349304936455825944172894010816524163943015492091425255274595827018805583690430937683067143746972868981766908741290214667538555765435939637972628203424587795080674585640875496034102747816356960231560687478679086526657529327970223227465756953744303767833239238073608169743289780439443519468722209879443025106231865473908983297427683566244270656877473425476511840171753949068280318791245009265126249087164198924761019863093882349640209639575043862663715548943322856416994243692698458584883432783224387327446244771997195649692921160016942442808007118657478702037870026667428618634115581157427603788076758414383250036384032671470642292974545709005101368443874750590180569645201261846544921000706953510015642280116593458850509379778814036336388088667829915681215348689207951491102940285810844236389894401164682780414060358058565661473850573946856607915186114029375744539624762578488540220873344341506394708952025774218821217316923371981945733439419336645797248522939674720667919760329440489896379783651803384014223306709095637353061323747374331108500110052496454225881915934335863400467886308670290356576625947245439880801336116083089250571281270984464158041614319211094292102440501938592710810132757493935741268927275936979407552604893665774619822546529801754508420107129884146240324692010930058872462610870106400074837329550946542027738165874271960989436493043492690571339907622189669760868205901189534028638106213026450771509710431798666137156325066414274197375214101569370879306756701177490346264753824335640884142997246878938589358263302294874446205813755772851752276947898916069998663711148384146771073352611454478160343557351684225215056105472249655947978044334593117887574848580577525228592019567014820515979033179679108687645674253603034170801571794760001040980817485845636337050755026189889695124389742697748896416361678951867452337521955768972789083433478136621145709065025930992781268763890535106399142561528835827567381911653321458393377558817000748533346191965501394124680803395862509758248792777739221466294391023163146625081944796524152931269845421406969383729879776279100721493967075181265335630060485746736061794181589320646060549268685302493047708976548251291707220023203219757780468890973156792529019311361104066091331777561627244472538971578164640806427618670116472019106532108843191446033813582630431310472663255150384276829270206279213692184221087008613339057141561750039343083326326952175171047505302894738332765893753162291459343201415208056130447126943230499541844738727718217080638186210889049735691096674746314794487633452702525977732739479942489911492730130588050455831991132633700324696511969122424037626584419434945821851178957386667504012264215393037365908304639005013278095605394198956998230905802444594526455735517478958592037431915650869392456511656006186129956923953977054413036933148902429160879307281244837595969227961273750905859609496747979809669574769005370362258696718003887706523215087830676216415481630467287655724482446462828389726435239368716557093842815200685063196908203613548650136651433558212635269597487573849224473197687091360761183833284494412144737612114022977439620881316234187221382699447259064135578946266358515199180418525710074807363917749035581510197797864275233111626986348748988061684905845939633147580717108144500196731633829950467113513955272909763016268522610948463920353011806700534717669150396916578362224036049119907525181555118811013552772904604003474745674360461922800908162049772457291861072726521253758306019624725955869601769950401305679557167089246421049126174547289213079129548441196114158606192525311156466337594650699845088411504998307054953822008774248457710578664611839921489911423960705480237377783297413990382307441871371587315997050727376700571861013082930564983674398544062089676727931945274903721621753291613949032760120154967717975333347870137497443209568707983353035312973798048772592589943957510679956565078554179125904817520579571070919294298024789899483782577995617506525435461187682796383041591033272155264907378639322242900577387008492359937547464279103308064573413419787996046182994990864379882641142379154302836367309721293779936188949801834871408215814599253765429573128557771007624417658954858952165415623864200038461222055671318223753659245954509339269186861550718576004241759807418440622530889322337384131262968988310814922022908077687452719742224529174791831688519109771256076109938467779362209400043773095806789504696215276674718495927075106384889997997111209713986069990874973569703242240909707482681561467332128895718175344655399359195060754046160582975585119193869494702063782594137752909087793810756601652459229980583085361775890229435854759499587606157956487121500377469037420410043941695510752584695435415675347919203536839038627285196701760641094929827386828862648886824668644879376112868140224830208224668164392206675472447862005404847138494933124155783753946965400802145727850653712492952224358008415101352993387625983905551042631815489616636746175726652525444871536182540859586018961221912992532382876162960504825450795524129801766151470011871146331235237276392816861085669245610903315460672538546725695118537606142777448300442149561519482809994410410286335905733541844236904480317617026075820529069016991935634068663284784087359070607631336732512535362234195644338809396361378755212637956559255497041757499763202613892101788926239289537840758532711675102443733461815352719858861034196672121742781178848566866315866207837857114912394470163920318194621281788097442426785662513839634440288185283440324220181799734214872862145492024896668017860817262368318240523709943494276644321003012424941798906559991586553106260670344898444708694308982471965939532142398109421939964790308134701477464181104428164485607433586818019665055982908696993367635067826592794668039803751561480396268690447348857574645235756436053795654868733152942586743055622618717186143569174705600516687467357921411418079033893113112257400937009357770091008747895517972916279766115393869665618786394787367357502003792958394541550711618938237426284259110464864345494430008407604124686572797057242528672540667543390631063199418622822661970214733698632941816303314512446195546909304461017957438335102354752474088451298963087119193069626602276300321190585168864099372875681577271918866667421645407984402564093743699522942995425424920872613963501991813591850823775126086915454414604843155281529469524250155456985800691484953529273095687985131443647233223344038687838660646629855705668855579576969673433336963690050499753154737227989191774967440616727696239570128055105074866459335349100030489946591599538147306073017990813377914067163257818771091263266585556053311398903027924864723750778713601071118812322237019923138234603053144287098857237014729300633583286265090508518510100082963055525476530097503755698398863783943477747008179792779910358091052331601747318192129955012406601207204252206967692876116527930242504274230477406474024965903412163857898423175062768489345598800257499976086626225806557153001118185811387672849691419702865768791867536914525924490851469452968757076367694495498444750493753383253122910701094595309334935483849903783025595739887373995600312403348228840751560300339662215461232305611064331528126890402860852818347470350734813903023580203042890023199874914122021534782206634717896296831145086912446378833093955567617608738431322489862224838536251556437698943001718848789439314281874910795373709880424415420524242646979733293138902065288006367905556332618151315023346546230014643496471276709898016122622413325417347140047023137134571439163626632035076542433900099853942270305993649109023741601091178731525092369485325337305678019903693980385842892449798877123317427548579406534570530027292099427965894389330340562051758545058477783351003486832992489636697730671092084452014065296494402069150092480173363572791512548109165766514059945308346284098097195998865115991526429133771760539424918401141684771193391932257527228922749914807502016993726885886761615441172612071867631868624058570053697447029567570406097241786075217631005467187029150109227118782094164727183377206491687302894944390195453405240047618778563519264085097912478908490795129440865828907489378286594521170370214933325908185120620149007358629722408976236732793901817916622123530367178871596837735053216906285767945498778042993415952006850966003936065334770139388861260176598385934422406531239019576424406418195922073481510465025405548650157495946844150141594417024872513263464553343816001181567272757154330586925680148043447554596369393764920335181132132855037927543883233823313693635090762056523304847077248639142181178014040141307890829532031224488509869946657522366964687088066916402368461887184896558714821392047162238377497306865646292492844048255695027375544560676057305536233582922982749167320653349430521032280026532133261828757953055982453965814662904232923434152246202562785404473052265964287375357755612578754460898538203834340878573662530464010779071357572685142384955387443280351052186017017076619244631681493719335679017351237572332538154155609533576319002341940939902858464331129157353159916289552877864602163731520809159245729552031362424780058917629190948753330784156611716735499284096191250366234571875433790613420615661225534058434917861672875890194439637455207130571335950261147697233613432266677024904906577455667132272465088395389669072086785182710463722716704250279578217123857098761897119150980117611234050214856795347389907084383753114847739815331863695751947514743298962422814367708272575825969106440069643039952913822082976863237247390519773177861636351884151853170843766172910419075817427645447980835562374994309766978355789081606637947550222333644273299082973938797422085386010651115055896047603676165059271284327337574198691068352644067090730127062225877209833787515912751979421829784315828953856899747182233379703098833817569159059329322841676320805771033901198733741438852972272863812184731538769185403064807683434797304853468263660178300556869702867973746478498743687829833326205318736367420385530715868905825192556207513507679332522607871421275739712990935044705332778372044424191192277189022994269765061975246916571960884892446852687031868338059085040711543762151374436374397346498719065434517928717770750817583031092645498396292684452954441320663434416735080438904990414615087153118929957921730929754075130928138360074635428668885107430072051361947839544326988565855392887485023873931773460446948106044603307632707740791109676379460605130642115894261987114677965915711570566202238969757897698326821360048322480475425791437462248428181775517605364453309536060917965023510657824481891137372805243133109144596976758557729567584318024247623666505353947833623029590626615770900138795060227291640472691829419432586252588973080377387765108861964410954968246403172235440402273688378944918513631637907940883812855345931877676158156746011367778205615305052293848989698190533153475256997870711864062226065295579977023978972222276645822358673016599879104701391385851097527410730727082773952146459409348347717576714887036378008653450435278677472230199270279273308905827235868683069549417333455646583148146766818854280304808986757111479459091365242753850721636858146958249622265014138389202173649916532972159194123927239531397490797341881577581608100676109904578473424761674745985085932602480383243196031096166093472279536116619041854248395581231133625226075312165292650237860694505608215190679286382617376368980069478144832232411024976956393893133780370606436824955900900432289110300297969743386145898366053221103712193518377637076683678345364435597566993461919994050343687239847367876628637958180882519414024501134245791320859557573498451977421863199912716964559801026437387605168690051483301239063317840676232437911780601446402357496495803972927334927750906361028959047328914701832607873996909472895328362633556287406150561622249356251882516073003871278021334403796958838857848596298443561468871730517955062364929034097477244473986310637528224092271126988830900093879914650295860838368118124651104136065919328988086041210689080551487138691048726938806652207114211203300169839983373926955385492598098937541635606596047987437650362786440895546698960370233515716454157906065729340525570346100831574522986624834910909093175004553961895026734619157887408592980545608639248541342469625603448367213008381913773368200396190887541034015499447591048007510019669852340615999076725369360347519893841653262773100302437905452830493597502204776458523220349337126786058268368807529627446662428036009487558680610216444157543123686492573554471910870595232568625109735438452447715857913500524284227204567815392332987694331914276370345169314982834353815726231759970802497838987766555258828165500817883214122426006796665288483330481438635870077864820167599358523518238046533264369993667875480295643003565860020381135740030238580454295162685055771183849241852838704483998514418312949864351280735148296102556130777453966752034720582095596129054393581580892564486726642463904486802942752190501368017683186513941973938962458649919957394381567013436396186183750715578076673019472865393981958494310860018656784032958033575059936020482068480587296103197341381182619383749978938130586662318223707662402143378994693589964733288223653616275599162896461410129582624464564256542496435638210930901521242076478498124972420077903711868939002914918462462361958698415646472321327687569985940973912654867407853148140605493525935132254753666106711642733416131481617053355496813417733981163714560618162352523459343962736388678869033883764926243082734730077034014808673511953948883686338393586986544517939642139551769381070538600244605799206758150763905945597420191974725872563298909293454016760531738421805003143912936635548988267761463721359907972822845924006849178571970221666912534602284474224022810628537863710220482960320614096212152115432178967181732210026902484654704254794870123336348129477675879952427987473435558235629842642419169989776862529834768776567912348692125347598127978589920010725868980756594754266842848415076650917742566547794180395084039788402140815816064935735215809530019891784092778061182677291094017641037465928837255531216065214595111984012124591598750981456817440092002583338366851170611046055327224663662002711892771812496569378083313545846009606172906236735407541459048180591315335180990006453075277432731623148297952262545573400058655786165257071855572489767005271771555101465307515838250030602144494338139761191640760603021982226366432730885901361090377150118674423734435644481081408202632121735851583028327040721211119046896061168575763868684281055065296879425789388105351117620218441954327893623493088695322642333211248252191424173927042262034192163859399577925088919096385165812910599052237404134360059420728831202894576470816405572295922390735475427631716806728415242218739869943098192332843533959875015105784349679812491889797163467659688905889121734413183378291507052160930303710849209629166051943593056904623549231490550573599279675561567022280476243960561334851394158871285512537212851277327328062047889853627819784490947029813712068018411390944158027056331516753374019920897296323548680854678755084761814621696867266380323415552052885114377563813644617380725456073166421887941202776713722328368358093931190863407882475105388516848691467466671633973129255679047986090131939432017103543525797732418255020367390374930689794005359967789149469233465270600778373605773237388655077262539564915053701459999213630921393878965838818645327054501016096369545146436482371270805942817101135386541471473197431153200975067130209875021619964657555281043913335569315713041591123511514653860990532911449259054343662347467655047812291019987502882040643980961052503328434000123308640068221370405391238508562509104472842772580033200790028976720953616918960630827294720887151260301080713155377188759694358817664424427945326961310456552918186209700256982539689868315802481003874088553114976751698855183194173817393130412019834936771713011454772515945785799714871759435226630088112405934705325975350529538148396730537264042649051335514029106217748253455484794967069849383996100537808629553123340557383642491398804218515952378212908797880990115783019978763909400179863946835864258948763114655738730826469812476817817683959528016452445650341268835080350521339007984636422874607274408663745950018464212678194399948935281894843402468117301289925578846760450462148724490036294576823420987476426351425163896889860531149893311805642268797055347781218092173139098982875444953727461135511181214662337300569830863277781497310736213806563174329265499124026552264678628039952303370750787192820783698811616011565285483765956568263944390054847921758704420120887588339542854360960349415715813009301110611208172643838007612505168173797468300641721741908861199877758634625224649727723682334855960498702139408185540010696226249664480697048368584755968724650906786540812062626556186393815005015152849037750983858590656834023984428987346167626502315226931399942250006532325162975637313428761230311837384575022576531428083154834156019062463201298461137664132805057420499242174407053841350416392023120762845570918661044457836408764284511576167535799362789359094407897760476204648050012311782185271302929933228481759560985450619870721792214092136229558487070800045902020825953053907251939354209136236868062175904603799368213341802844519225981326713448440839977697763186478043401495003073534262623500007673830843815275727436024506970579753875542013464154232229426506740301458025666417408139132272614957214715694291660376263203173911602039303974927472493862183555150585401700965049777151849337353713479653926335926193216098849467166695880332618136800149205517959210013895206298342031472348747474006240695697346101301476623143692239273744090826530989342298035369885126046963337172051101819791674093782658113511872872618878363256100992875241318035300162918311829066693054357223521711215355532244219283440624615024475861976545838026543623864870312035034178352936482995174200556946355962813252486713784962323888660901864574776938010167925240345619901259671489543244515242641143675115804990020587364496002953861135737452043300176761340480956339224403223278154112970771302372924244525715576044794815767865380822352153620369745546288366710601911499679213678304809852322063513589600129952936408146678320135810431756697326802386427133510527358382157429604251336242558222196729208670689423152419698297193794052270464145216256319954056203991526960674987687631624065204571035382700433350074633530362834258206566640870800769501379118127247134929178163125257656949356396674279769309443687064862503797616609287563596648122244200299879315977683071619591606844575686584994268802860008297105338378287277601548845300145357042201331075499875790668745414951738831464847083836136490999192961837208729873075250482117187641298373070859115246535157969416571172657040262292437794638522937122933036561665833676273592769262473576239188856232746838108973480856858397270852800649168162780050571939126337869003740408499707507304403371199613813420451629785077123130873843638026853704040083553973896493157315539092507317797989518761815310487421327159608137401049375049748963579160433896672013690110403535072266509572756398152991008301057373343902552823432091984317647149998348051855346780427483222320090050579048660883299318994276520032014610751402756536052534176049821986741478521191789924144337090030371091654259417228793081936912167752665099333606454725405274476647430793728399872663184874171381570763123262801451530063371013205871879765336205115629884506542425683908922646449558559883761770541954477103501236154230042392030015869884947175869375884303568974486998802750017262744782778811432570381924184069079357361130101797127962893970926324434981225741597257273587509351114511820608851088259619878004181057033927966647402587038324156499534317552544568462868545516942530371570352335886997798561890747562219053316585243559975337561950099868885142097487408927947255124795560091881086825151709568919687483062355121714880590213404634306544281269028131875694746220080679063340463016533321392054932557311523423683623370149373794070160316836867678016698281948877951593264021552249277255975859299796189422988328018113405272340791378449719846847091927953230869798549604668741141742947427454620572571423108622634100972804182607274614608971563397695453574876373399250254821516464985674921115117175366575759412959178719091239525641621651313576815992875033543556832027532072142786313889893345698667936445977591640825970786065655508306298531827611634684683704700213814517469662749009827361820910306109101266856864446905481315611568115500568952642555796571016467355521985441207492297109472664603037247388046421647704372756377750353702949306069598985074008440625855258459484695130465030763865590452653344170644524919242784222227847699396796513588220998341525062106296125278064427009801153840023708945061318078762130110076489415088712609020113674525745609225178451564465367415049883270721350772715708684163179469965322770949576566645699253769223006824163457197135397009303286148961116947227943516212785209155026056446882656999369184519365039625463701095236672943335623031146046646556719555278442336114567178150964916210521558837362055923339368860801190587047832776165005085296239968631711329453914345922371204964594742608105303602379222642097361224249628914967069697860804976299802044433401362839287612281067806651022760596474776968891030353939101458094313736111721875583093142942712125307141258338541886920542535097636567253106834426853010846797618017448439371690207468545311738470495997395378470758644453618441495584644422967857814358882851802001788749374118618875963255956186580432126015881537020790416434390048536726886500773944161720139152398537171492432881292793843209653571512345836655379625838174597474328020932367394569785146383460310330961420412966050160524411763791694060829052607804890246236670418167881245779310874110655914632628683515208120850843738075101137253997686905220514089857092200667881128384812475970332490332127523316818465087908977992232748489619578949010099564149684977799409236521880324183433027768559013514100924165912385095304468871887360764762295824105159661989177137562267825028499735391898525445103192551813859749731728238061775094878973246528624841166969672498727060488303345558307012554906542263389647553534453004974439297699038281860539089394061069646324152140976994687399293381303726967775115158332541761117396218125875809661663361391165912518324997082891139603387112362622560702591754441329008107848630183336432650845836836961083459030873851645846394946251270842640599057052930857935276813096146996933318022793330404887970094056633859927598416583156134694237885529837107665361277099982217132540462020604687469217886320233620934673723245771373249490487140296516689900812807504440257898907737307214105551657646699626620347428777988431487219695583116654960613359617104896101679496098665353739377316573403694717586991661853899991473815161097834263841270794922737344073703233206394167824786572750432684858929934617886051366645774206268435564712456909291061450056812477719373569976230172960960182932672515820580690380942191913630186706919855198953886673845747034849178756274610302821835518410605877281117593792424768422095003596046429033338987546714250200759247542449128465564521487033581923275309919995476914520890186287955193826826010534692006066821829114466096311582978873303304578901394029730247068635728556098110099386148167622366295857895268069234576694254110196252916776651325855358325279092786545380539304789619421391521765663166892226341170947785434097323810039180440218941413093301864329773356011086681810245159204557591224020708560678138693939601076006155704061826349299871242046846792741446604237934118633414722211415717048025887422808337040636253309201192449155443756679755197631472304551393791717731682764928728406367402421818157145344379075444040347455760659042785007184578213982896367357580732872169353191835196395583999449720474203485832616271386313705920266452962191204321154125407533419569714633232755549718780212871663499420599277247701274740514883935097840945936685060951238440013800350005387309720918171877670269016811294435722214248736621212376002077848067971047234179779984205216407260911850867465468132439793478667497716323106438386398901185480850903331064426089867982149362626620324856947642217032700752083534365775059882337552675400618853394534535961711497097003948617699210729518972250461720305006201285519673166771443143242966341502613683264630011852041121988326049836479368055372492111608218533710656238422423545454486669808738985656115031231396973639181787819357555923853204661135583012580290482371714685523703882752951233741218537506078867794214502419586670891060478354774291978273854728142406949401853344078325428656800957168440756535057638777194745563767933366946084297403297370438331025134585363980055990570172131744710128081252454915370000573219982693742866103531545877163480225181711194741670726331318673628861018512783210152535260544299983828528161052803407329818035030150948297187759566035719991174171971369464494573583920824536183517468991297296579254829101946080687064370718431361556829304050301416676410019934063312885290102639532070446622244650367625838698050911806487173163464789693845308683823049694762815689309813133918413009946669220152345804219559443655771064419319777590240749261520230624806467378668891383242870597615845875973143475192036381705819670555775706045901701314146360747812589854741727233295361622174401910333956773258229566783533924865249360937473811592855804243857310586334067993535120123029593840714228669379171212507501679407874872000377702763503781749585434176670625399074611644140778966612731550519119663315567726803070067263244419946562179460469428341027441710738553243551024939168892654867330596315673915109832779631289587329337321826416460991671951846460134535625617518812149731175373758408375980848648434079652153023671243378393115493027728859216744589706622483836165703693377888759583649601059495556847784955455582909476550112533096054059325575315986515746373963956356856709524113215048140751893515487333073130042478535305205933989215512323552534022307936963310176047108268031751223534449089487754418033202950772401060977622614648704492601743052111746223534086590376191901601613091912421387987253981852072367399358990781163283943961997805269428786007513687253447736085966479084666406039357131716763523945165082283559596664416468314440174666739892632592270984563803035081779247441358073715033077693556594541038601555627732519803277873484692186508000809629654179017729142734672516148477451236019650732066505566810188447682559964579226249752382477655998490977243493032648173828280193300857420697551220458642727002685785121026415230158682988523391675724768792590738485873820203523725649107979587805721922642987356046717186240804781631284774662150963885315348537026261480632009616837763042365332259935424568054036619267949060186780054795673046958611639850407844741848156680362283290453668243340160934422276657827990666651658248873113052708347943737929476080620360142643590423319022054406713439738474612925620185676781892829058744761015182810666117054627637343903225275149888945048674934147249203633503975443354684989123933534090120647839972320870625250250766024127247490544802691675986750992814974845012397630704615220472563374237292465067646336478551856216853292599060387232253858615575976414630744483340148484797740857025596190856894883317227745000958214658720451952205591565492972813589513237880710005839792104520976326657334920708641777352080947795966725811923510273861097546978077296167322138028348319132269673855561038204550670613804506850326084971470112890099213592171463083049869551162084980802972621538682189973866391572993392973277891538014682562866774224395956791008184169775370773973958711832110665657855105076517929699826497227863984152559526008264844378601228014918972440031035607899856079347420135315438689525641718741172192671614013003054837156811601624832998288033398655221604598732958643465842799847074605201315400440345442193192582263201258719161126748535312509322034014204458426386642824723423827849227176675406115644213171404748947016215203688525923094917792506209061415543511241885665892255394934507812459387526410885457355126183134550805713276311068250514634790506935362128556775650487326211842055252708960801906838632455774347153315635730096787677637940655180927169056969387577631164132050422758087166180639610109896897527606847453675330636557801207698420391497148784603097841994198442561871058927381178123434354294216758876785690798645127461854463250496712774688495015176261909244629547980447932796106842262847976821587730537946674323623935120506290335461118289962396664783799643061374278268419862884503695646018687810749759183654358259986697914000147995164827226699766380684729446937941028699289325587112209789429636313254163866354280364529251476306784154887076594379706342795563744769557072555012018186729432417715125267522641220284049974206633690557553500271660933802765070183378158445214761212659072055878623005898234269444219832094206361733689368807058772193706774223587359871113411875972811423782712861760707609376077911477470453979254702642476858046016594277835187115759041747318295749841740338600310497587651960312518770380223837832534966374941735033443126055963243996376072061408927727160532717984289342650023224885335608497016322509245605098322861091447152823349023920362506278453914897275094265715337446335352091232636829573655842747925956816272856072522893254283704418087035306476036092652075096218363266479206475392259741891454880458736965755897080662674260789550686906447134165250740606889338658216730265801642556106672446970284837156733029304277104374846805052819454325813723952915413403826167277029539029595546545343447161879601518838771211331780044190446864248607312746209683439592973318969087842124409619471877047099912914595105852171254023516209676011088056701809710155915676876139639486629735003570990702508451638235528433385118326362264672915920785533534939136807159737117123598975406812450786764170914242823816604970398800450789788215046948609820955540534018061872554704625854046373621596953047642440458815401824904364149218001813671162775031688366748446984204681285477922052838395854923701573714742506597559594737329688255654785357798942051441891576866410356159324305116848867512423196812151907774542732597190422284203144012079087229636584616889671210562998172141253916214169994260925090322146928344943542389324796124866593762544811335429094578312709980419391914112784539572478506882352885134865434054933934198022521293701861776512571513274442938229056978555593155010158055196010203433735681083621476601652298097632788307913417266173210126451767977046049101393879518095183878589716884229311131447167944768070185834685400533047240996654325155662169522270902166886864202470138577931426520381689596904297120189886927651222005985542656473585994172511169143334742834454689182455510374132689072349719118551387299213378264633855584354573147680481533538848790650707066588371899822740518203111913558847237519060447557190140529387408818777230233891586526349811845158061926811412988753799755463746714941227841056027385545861779853396966510810803691582914756570131093909370555973619247257674972085025620377589880503169766259536234291294519095851773033856658632987871330549444186869884432865736281697824917680763346525369615209388996720033664580612411088201578683058869487287102733722241290999601183464411074590371530798193896548159837528047525948028528624834543401344835155502078658339050861666691836157737477322556990853270345415771738544098408895696116254025349299672935130802185659746831412072414634550724383467184599977658851920921577621377594125133438801043401611669805419627237927433326832040507565012212374754021145512373025782770293438096558057926108086266316176462206965235495213885286053512561716436478320738215421798231965947045078986567646047855752375172783447181796217698740408484786212501239064353462034796928812079602142722494306004328081263254514946857279184349947780938448022887023572613323157666262560133933768453838569698126997991819819844251688413998680733939263138088535768552728412383909264649343874711538786394973431885595954278281916434280611820572038607480978941942536204645054368108501757844088911223505604778842843954916170019781507773834028070872585827333106875181857878213635611487852553370706881339119166533279177076229751661301484779000320774239537604131619124568174295436174853532830802453566232710605780799356633588842470426851492836872599273321468658212726987571034016782197083807048619735488834230508148892250685080844698648746166169502429712452304110762849131467923623755144596898396269592745608371890555596169614718780640742538846836964177514773390014315466062596513488114314974904628799081049674081782085336282054959409440042951260815682047676483446108526948063350671996395712933334883344705133239039152496864774455379874343467148128689651827918838885847312332242252000687295072940083226664954211818143626417435586432853493277527331973235884299979721956701320390870376586155873617973696250529613573085454585575786887467658362367215859462114785249623847188272999290736621606479781256899925698711649491737268756704375568908405216788988465257894564544303265371126651801780084202466826835511232123170429404153031402143234020522733420655404399322483991723004918983530498479412402824105647996908201357489462029294353118488972004929243570756110798742143773798062153297428510920760281748135069036746405262131783385912687512592900371237936735726558096836420146375028127214466934980092832632962376841623628267947169279468469184317232775396499521118376581526135105280314295151864295982216914019700705851505482249275652289472768424539983032563635550451798994656352965847493807488305538174542555955348419905934159062364448472883546798182501864332276206896627499395009423628414169599018054791433621314786731834063738054624619543424983718891197849663382604564062510953120478637225388164613542962530433149778881602198419189346325346332593254081351940014377724846377471231829916812223700950210051958120152798705060644650752748770515925702613558257412275701881079886396569234086918282473545167147119826799713031529268117434244735242305386619942481525125209240078434948582435923273756434123941026304641664011845034789745697539476254400950988162008436545330869157712317406188323238870118794398366731492094337836408959368196340478224807634057702670191957045782837001364161797011723864476403449260095140728745376920950473501227600345057005421873372965792447318067096667195045164727807781706785877679931680769660486254027184912890363751448482027383381659501364677037821106840719290844039779105883548419588781718735199116534348302997841165506093913049851456053919534887491663404333778245599015456483450803796358796827804886023461143860816740726097793231590019915089907422116273947842087536500347342673515304076434656676325297764100942130276222387821577814362075995667547081596393877734719554450114530347621271573318210138469010479678965289018250494756350296813010995078873209382993009738915633193203031725948807632778131769968058871714646089412705746812495943992974982524881697769077498434388663416007534496481240358507621789274292506275877231139329361142809338282518775427987168158799302208012722494092610254107331073325284314321542413623792019501310377219195899540131204186491164820496253686198143779110975786626112275048520301215858346151978056052060059109822542814068927931032474638320110044612397437346854503254099797470921169725752598921972221521381579271005521510825548299716578227237724685372501048381041657338503374395224492246625205502737132530628963546678812124271582182307337399657913113730499296472004181315490498749462713873672649157632402790751788918596775363451327350522932385114321440629729510637995993566142324412917786491608064853016617492558926273629252557724135390069679886184458921640689479984518767900896825729289291668274246962112648185250604930666741019522906570554418762350157026420558461335368409733320572786547823886889550973055316209524720778581008354095069526256371992069546822400973008173083559258687181651997797674616966968714460807310028954789723179713875966791748826276695486546077733777012623240469365519896822261999605463040204433058398784015168169266776136569297702191196023249848711673403795419318482902987215987701722562698576342325403612598107454407167639657492594928030986075369040771451947784580260005411787794995477689136132334982513857002072542193340192823863583414023398156811530393478334584995545834956397393784349063085878461209662285971530490127275855980084253767738395769612375918090383594456995402583249154396879115197841661224223900943680819701753840134447434729466087756893014413977437322326153009595653882580969261071484945650314836318312128403809301276104011597872263855830260779212227624712878568119959912621704935952118881871084817117101755404184396090897849366203990441155337934925731548327349105079775075399783463952050708571913960934016468322512572919523144780328956024837702238072311452625661259071710811122101033475264641898186611763383099091274694786281234767999827569522325485979032682850305318815545078754662773569369730489457625949765945086990167566943575951472885404398252201622559083443067621014878493261714754014906579828718511157148254808557852489100443395038669859453305126979495846866447138755364787651100092765856143957168048201362315829556332494137725993567323250596222192029659780570224925991682032000227302209646177631233553913910591852846965762993925081757120086323354989238647685352882430912840010454056016718162043230799320760169413400455284422412093911355227326694995773639080444428194133097314686208014763646106594663248615549161687991316728658084401696512336083213190119502765918344556516508976004013806634864845800927156951230544953253466371977479974748597303124053680071203281314660751768691625963463910975549332192164388340304933814714705680955301640597060901661615878402293764559447599841339034785197805331187227854628600633611657864475251063880756009503634455814061870995040047875609781735194284544194783794085176077499340695673097553235309268509524566759455643272774629026080254220010131520395155658377272859243070738512176045649315043841874100284817850024922099447161865845387382738496130268042680100144740504217676584677422913849979379359845215896487400173762821069121610602762482734339371300627338137931016568148177922876788737679352360039727098145585045636746540789742340204878149154311254981967672007386832482689568000601955641867968923013896539392331459634806062804502520086563425931486271639286332678700537685089758075132056167844225410337485591854865186221319195018512028118962482904111589071049459221600684851340954401443917133305411204191810503125576492204166816628739116411890593913582248682026732835219306012028883079179704557906754546702767372672328821372259467690606231413525249724994198106582529572126206306448681435730474659952488580034396878054424629884115091475788143302909019771803852296418124749993582755964543107121693049170050386668502305737999055334836455660083298846135712366148915720644567023991440763348783921697478125328814741369587884635601237640260137491865715539672261960746909171036138624147930265794171246013881413441404708911479461486953394607688098647398792124712328177415146819530662842019649519645615441971331063039178015052831060070137269971226548722487983198044937283265172767628131089233951411072834462982579189434590275588928338583827832674181407533083859549528996366142393190071623039061514569263979486324449352501895112288498555226131590636570932493784881611179674210378608491116852616910061511761136450043976690709425013526323866316446641632220940160526543746592373273265778918871952505424518912805227468436094400756842090993796861626601040280000730856461012017046492104596094418645053489542656378669487584265130874909226396852254315256634483988255847791995491620058148374560299806513861405220191130763761599786683302746909257817203088451827426708755111851263321229683115204879712623655465193289082512598981512540793770225032792212278854894352215517212374372134552031916319057218246201912740391541426001472093605126934253498332342384629929566152172230216761804684391734702918930294204088066958732103374507111819359942072293654012557312221032429335864259730242848265227992730980529253721359695058656623772556663996543459818759128217474083441020817872298976231377119181396829853855733015372777708056541598967259796726477809220343967287477620863650188256441346631335485404451528828968186904614934982102890877290502489728410512145311446647088335771781867575462962759802717002057194355241219435797003559989568328869423402460465059139578988488895969410054252723823279081685450068138434755948963665644582504660122708212710992150594980050090832808843802421392153239872686222252000976806184838730606897763573946411795105096051798698418713242867712338102572844723755541223238555429772056286899246566183661776692633469951308261867520082213769478007933628661511252574625465671265528916146831397677889708703575928369840744816272605481596206384184977758178980006345263382538733005319302763470941342935437256152435936235065216663797219312497350823342235977065015129699377658898231885851328082558938750412897437614622550519545914213940519762109541311021456327287248958495859391138012491620999005462293794304978288309804537019086815595103400668450081529133581649588526435393275211070171757951590251317875574420373020269449970030935417250650527868245944683877251827356503279218414734080720459515517414264608533684215064321891215647661041347668166002855029493503461245267118463366824800356589876409093450247341369193962301562252297716456220775745585237768802523716542697067877914857658653220816597680074624119601136327870313691820040981377872476131179072835677925465734561091735061502787321794745957812722810909622526658688491201834267037161380903081010303515059307640211489758814710934325191995200323214818811333090342274032760387531517963387009424432369724602145339796257822142574951918621631527240724284809363877329471129084993420299132889807272956980722183150031354587088259848105050468768201664943809785858503209264066620758248908602636107163974704492393747297619615133998723420183958983395086865423650604709866311555295479323151929683795022962048278990661960416576883011589077421254687077099408498880150305639946690897598882575830634726703955753901767303476986314183133180392249971131346068315226877477521540750963561307785820819408437268919659214855071557097781451159187439832665919170554530036800304026922143168681356357386545563231344769859155619738114492326548573167383324402167482460546005764280826456979059468922030211198495096797934701247530080154253269905333439772281122509810506622263208960416271455004721606480249887706549035745823579956901851181174467900241726948354441467699800546167447380923490867547596282160672512006922716976778510653626015840247923361755123280275388157321443486323317037193959917847048265490528717173550329704470705172210015685442994065236701185421482426084941037058357711877757564339143191075611312235849066461790511254143657474431356972615376486609732383245219027432286824336379228156500915029928204663226375665542124711623954782890797097135090377891397443761264714051915502587419554970594006447271051793329848404466762859361308772585146479586184493404231176571624439185416781656705335119140916059301163795657443556644669058086337941789046258270706914394902388691782924820231425649363912817059646717989265580552928613696340287947278449746460454401009558024453470240959764430194841540440540168514448354051341970939899069177143430748213827320060441353979040907468142392226896687514517518461027560771077934605559906935813562720215313976776592528174725506806110626663790011195143789761546936057977296956077681226012098854020941098645814001067600364266501988478200161797807153569608130048301180395558758469900219554003666212144328958935689951151797090086655553581184377013918882166292837974898387238724147268503983351641413266182776702352528190111156823756037413764684408411449057897295288629154381933386805725062563743815317324146209670654568531685037309682806031190747161462495023995791021037502024213839474202225423598497744524490962148394383913862970568178053022195999278284617978117575544346075722100894018076497988130117925072605443083800927016416276933461914527763557189932769104585364440883997574001869917111785429304705528962349293805717160810835413649521022313340003973986315993251511408340891729683749512621584705965404272272113956395767119374142001404735021595073715944890107555522769758347612619833762072881276242431124808828559930924727351958991394462958306905600139064733372078909115053500148240620357774123552870788760098891496283964000447311684411035894813669664785352796417140078515784294404415517652561646594426164474090147653071064815805139695791403511975799744627585796063685454618190454221411416765526576647628496510216408126225445740566699507106112819297709231880280653334544911179470540868770216002651096704368224868123288815064388715512313639789566782347545173611467975246938669171190514995360359364970339634368288176967326437798399885784255330687347235697701196187504391557767813478321108930978219261901021143348946370849902029179629531591701753516479387393541197234609266758444901819576391452910213782025303368038859052532558557363875877868206930725353164465689618305429747109587514082543712687524888441683210833706467565588953690285000531648124334255888125283252112465363406335881669914702598574860218270352536512676681036280512352236942318784213726874865005121861529160829608875151092793871133009167233053212145580345393361003741512241583257729042716645976353720841168751236285903099383486677839170671609769000539143579581403427345822540811312264109551090911785597932104931614298848672172227309358560163076305430356956145137107282540777755662153113667374689452111200131527864320763648165648194179788885339062683235284101799248742413268827331769830683242901352623501814055644497267305333264538218010753046373567406876797233725200531973033202697120887913638774144300385567653349874046878855540196395091200976424036021748365746424066151293699527571214994601150646162005993848229388901643195710906875565662176227126946697710950796743575523010921908481693711302254910250097496993393996746616964653751211506365316303847650160286762154487182243651815923926173147862075745271870156382857135402279906257438083810653702913624414329002925344593242183562196555080079286492216681070331951535346910810014273919302348276024589056830387372882186945778689889507626022382310842645454633783275672007385994565052280304239778156794282181606107903369482901544920046577817601327410921977188046055501809624046478003709952529703781161660467406693685816116348219332449920422152081367832430256947615536566357192530433468753874776092897508341013078966296267427651624919536568690987192478517413404996634111895403585630407234075795551648121122971532825835670749347516501447733242828922489451563221424163364161762063403326095169970804397165163772851869714883904740500795357499916057521783531474413029328015650289722900815167045566930530543261840896539356065280109503291738995368475369722889012317183104594301096288804372814943253584947143966192828624712321511651244686814523746962074140078437649217402057633002948915330254105246043532697651885028880270909742731352490397946583159518185450713783115291676584445880535462929163766218277720996093983525036255609198157272134258749255702397417772398141551110572370272010046784072965769853658480844120223340571182960913513360810329398351812541255649155696577070149724550038660105839083134370215819154790908245183880110718246913979265308351292280277545931766568793825005691567364614563792994561664009400322842136373089127357380207879502027139108147256617469433117647535288517028521601313444731120296287616624242226481624661966291443473231954695649095897138509805423654855463562827472743002948716721458668957181074713663104564725671886142255068956247600022931459031128791779175168780328880193001792463662473196404721467045839948725492175812791642187567092155504885823816244473987575479677635301234035320423405885738546528817130637669000212725232785022313448556707828708905120715369967383715822676620801590398066998271268967644328732904835876447163949602555988469325453994129953463629515834518196231883570306390441905155484246966728278932452738772587511400882624880653277476949079356756828651027519642753699559148698271695583989387394577202671820131450173925308899785555525181227398624350851879057040508126349781726918649632089100181592660814910231762124356029806064569965123343442539378789018724383745350279046548463455833584005248507709009693302061867983513591440992048098328155651968594781151631257339523981740338119537118159762953017951947735535322555291946870496905789047992868003962756548338879518947242178456124160536920436399845222710823224484450306334345662647036094187173627470731058079596034555424681264533416840024080876376517910870687635931399568439004356087231749904251463861275402894993606978354535679282250159491196055400973890882000508234716326351140328817290885584126580396196672347380568825309744352106795303336708544277473750907997396926264154464283407173642389922245839283623489352844224881617841615013137802805861453070717559198294727561837326666179613826451264943467398913049207368132645123158954556528945365312438210539794961471293191354109272248152376016268154866218596848132217021291415972349377685222659351898924274519203467881536093646397758399148144805826244355089458218537971157822297830654489776252069751420844037360991186402596778520897669437558930974490133428268488995055365975872303052738867295353069645030140809307200704137947804977746937928956910814854005270928489814413855160800633959219699019325896887417857193611481449801094824765923501884451754326354390582414034373093411043659130305484547498340915660096478128103709706609048384193362785072644036396453396274131095487080013600704003565134165252607476879677221661896359969091868656709884444671763824331057670990531781454460783564385947080087994463167424459691077086556652145124060927326052667267888775619922982951593519705976383085903681578507956947390581790293894423191935066550863706718887581848047201913449796774346041345600666771186148953744623208801291089886825683873599639270690480359896476587673449255306227489934128798751262531167103209541707803383022725557587261594344309740610465124887924337363265619761484382173729649335610061591036854662283672012843363215654408560110769761020098791274356778988981091199341576488555062788319980195731636575420914350655796135222136808551489446732103587608883800507339799414971768810717697103183121041715221031601263575282455958537338330174922793040001699360607337348165234212573770020115340950094342991219428048822444812840040555322282648576954056146685586916953450844450566738521538997621222166598739019879937063359441724568551909528879236507339307556360418671372703613278074060305002035132498630146844842539224645831981170746162122481805817162989245045595849216892693788476539243463341609777619010930766070221785152094976874256922894337541495078684746382655405384190527341229861720621088025864726376804538146936814636268659825333753273504182760293753160169294850036432352081215629575694829337035559173476861863192728690006020924056465381354196535298961643245471802187198238273008448039347229244468553803697989259738696388505676990548833548836995534665621407845410965476173380219390375368139141190032733993456909333620903142804097109541185944860946030193587938733014622214685151802088754737898201482956680043157855556832848606638576042112401888299912629587858061251486297181771377608754444402620213416966938994169948177140475233616985518312686883959053200927076996857220455624557969200444631454215229094075939475067797199455526828756133407093748198598746275227199009790935559653945470797265471392217507872451832223755284539806970984835231186254224332813710116338803357991620930129212655903404364440006021450247035642540123037141869432345587011457557938684891374982277892425537720660847068538312525521836381992358392889338281815992770402946218333689577111427809472795391615067402924211196417583261809794916497268823722343474777375174240218892990893281880779726428190950081826571525508305350973558390709035914832118398774039568353709879167394181705651239180796605111897368914929399563305473357529775152384356311229945569188293175704969336205958898622092040110839596142541501938681275668664505932338950811465940822965821903233689861028639935001856085517947800325148825411605729044414881419765787239953438531352623882855168084906569861714100953265621794416031469453291655779929209622381361133186747607055184933046808462782873459693343300971377072410471886730784026129921731380180115922990609310816713765690352064589682377336326526801117252159666509476940824755221115935831235314982946184246221592387197656011479967749510438250934712986920889236997588640849227745286442666844190423937236726279069153605078784450122019298884749524575859078060593038558995865006291765167014771822037005851862296172899173709228020603708651163214588349886801337574353146166621966579148320200722991108721902344713253439346982335860837382382213513395621842519989165200518959757198837780503786515536702474428202162494430254562929009135079101427527409753784914682096407026564413502344123031723611310763005851601290754576336199620264792530096969537354596337528692372829590882322621958437628025704980852393510938815361435970125442958852054263419584205528151788152828136623984836616905216732444928753678924223654932304964044506512609394798658776411909165691680440444326646812184442812824702539946068652433928565949344152363396493576365658697110877646885337537068278672480925502954349453442889492608259789226464791743968902487410434672978646367839722780933765336815091336035316863760564224740853715407968447424884628958215275036013387629259606991685035460521945975389984520676772698435686684178459719731341025571410969371485413850231262233686612028871555765917551270862351846285422430702835907610411074578428451405825601003700246934453795292258497689712411762375469516749520289570927239741286217570007156707705434928252772478388143729970190980602639636680643781862783468899884660188090220293461640785932276522002325302293741013766141409687076589285723730226777679875204511747598177636768799116292935090968663137130827646101995408743830260257401001012012559395210197990694247020215329061877533745616919071038213148478742021276400192041691252655238242871774690383972556322124895289620613644525836172276708064021768399059769263867548681897365303350857613863210078505336297587090517239351467093186008562749712575258444995847710125514443513818215436536241461846540174523216628495320983551922719832886606643296461103409426547456815292418818947433026107588424403307787791188285312921386763117624493768839217867430054872373565011806704689627756769508831974675481805882768624083760025216875534631098786682806154349559380335118984081610036437065020974703829236977519877801937921343341317089913950361058834681844992077858601214138636689369311666109839506348593051305505102343331916110045810338087599102019911837292034434388858757907280736750200662320933609509126635105742776862593602070519665363690991978694504450652527510812532761112679460494712791623438425991293005810946413482070987172075600921957394319556145143247109931991241291449529399781317970245746140098571606255326229756979162391440476371330255835474464093623800713831612958889888869676093117677254515704287723989643794789221731744054899479730392754716909245747878461011517685351744564259242914741128046640300457449493559894200057394168348746654041845072321480072635834307969958847334098924864845428562152540846599491638754392020653247479925856125241182563952385396441180104986279621910709477160538746618378008320577341065497776405365264867832657763765250297468015134882226700462436749277079860965159761945445337107703801556958729256035728640778433390835225578878629787804261966550701912949889489155760811912519880654345767927912520002360562751046132089039736430205904740790504493157222611070501662970061959105232970644401179054213142383967940558313006339102057567168882711804200143671263182035877335518767737315084535739457913475692482086106922084104265035303119781892101363675820059712181468412582040080720636556445973901359582002552710083241727517001634553381692064092908335772618827710138998901046771819619190808824916416634004176417729713543215126845744513357677200930093842022513846547560058065669895782711879324771670611560649695868988817560070584239925758855038879284000165856151937261485771364802827143848824531188907174879258306662923453347587460030376008743001034453174824613969798621690787211296774401129043194962398411685199053248801345093905034310561467406051692668431631340161168381351958425213542621440744741452865272851529421106933124595355021802421179895094384090286702276737614577218958730701148305857823002429268651497469785305048612539496289538468797105511308628359578514975007575078901985791171341980498477287110707250597809897107020539225079311517875735654684505192022417707053347084753745188508260953759497938811023602375479100385360054476596022418887359730061197058744937080197766405902655354824095330212613467750791677147091982162129453223197104386645865999984983236022048437721629923379690975245527029931074632430242872907715088443408731432798931229159068303336987187585405867392746318971095054737153868678933622913189957603261725883028812692500404794305937167280380478091072166763027834097750051739626585413454062420108599127698815062079618564486357102868915602307276363012827011966893682429429743592635218642653593037324498808795562245548972439885085770995389261431936653840341659465114440613032890523470469368873858550105942317511025173021518300585932460676673589944927660260529960231923378417983919609627233872370216779775732008293113990594708468417033798652377268748371117166810543656088156510359599590179279295526734147782494669467086881770893155500850529806110495768778681873225815292266857756860490272136449118763412353268144162348745736589194544340796741575658831466521315274810907535434863885859176124765123188705703106160080281441057315843866006372135761220783403618174708116145273775327375242853626569738042696669052804499807527906139671307410174785794850645078388160156453314780284842069058173558678203036607077681623105691673132350094788953325673885115339310948072281812346507663764648722330035922950597534739898145787798674959717451434250077797749084429794314240377603646701623560047014942246094217636885274113359091908556065183350289960479817265498534981383807049779242101134834725556909547833435727528795175231053301885693395810679704487459927616093827562971419787720130391012320945888760664532248157626515157641236438802473968689634988520569644979098033878635297873773823228766214085924913563006040182453480919406655627948271180322807820901868179035985906688748562172153725054120895160296113220608592595113028898035592750149851399687774860254505167690365062237358680984801718303345711480580905023818032854482830440005417819509596218435672190679011682906118252080580955337736722138800685116228642284130311339709225380452415532956690205807433605509408060139195723610130811183740226502469789709045188656000091979278906510030043766238205017458991981389006224767813874707690478499887567062704919360018294000331834989490532071094155524577871620029267735657269169434758561536394879009016652049867637624681001580499523826422467827260500115043766120337589122921620115941996854474788986291713799255090114793572544316240988528080601464549372781593096646798079216566988439055786551544174169184412742979405217078299647963802438248557479517099202784871601207187862763108765875119840459390025635953809482134787323382766714147200962081572655637658019094279058859006615843512527615970567455161664987001078630155044166706254935012418928233162813642076637825753972176273209739173718706744699907438101740749209583201310804712364192768354004817149654905099712695150209358902309615666020476813330809921084929287676578119641538053518819291638052462067604603699380791098091934174443099979716550846459708278556815845894606187949663425305781730190860397575985896991728095457997228620382216163162011737147875052187168172903757367093507271877252362621885099120853376498231619796524487217481593310953377001411937809699613993282785601997784285198194151789881120098842115794453179097320188166443532447921272824458530393431529679599242879477680497251316672300536840132296281662613843909745004823289433626063229323958385250549214137418794512442126736744736026851460602357707716662850819967938244730068618951912148496340435612082661456454437467440556426976956099111174390669814153509321331400351946520205973158983179264575472649894643730372686731551038950094093721730278450871246974518022297059600753652754815158154784471166604578473663306989309633576987255103255069287411918246526278247164419117486271204572072425202668178839141625674199535049457786575654940234276313905398473481724713594267869951223776408027152822956203154916483962245745059338924091699395753275603755358270008319974368775197851378520034601549109803593804994531810773614007536486374736183828958473637434659646274578754319569169002369279054939023730566468805391253655465896108538615257012518395323835797122875258176175374067683705346564628035598459701800164699673311284727998891619575983221443982434622572070298931543838198389730186914143727056614504176952468113277065829981850020387659183132748079831952182940895850448602448403881155389878049060135061827713526324477237346634098747747158305716811849283273159619408569949012432052622260549428221553594060645600642655869702848099579035516864342423000522236090678543836836143296747523552367608232900578563424201238659804684924073978499306116198738753320725628474116259782378350379380566973126603024270600638580255062943443228170277056473641649216787966954597645963948300389482911138252900462266470552715485566379694131649968935425301765850298729733908946121488942067670399509852889107291793548691250225733070030346383258833488675541350743819382469108386579837804437948659978457726536677338271428325072819186623633290479323437085511639477896739548695981123481243869318587881813558284010502108414868973510468345098695293443622219076470857522462803407881788723445224170428580027390260910981979425397909680538686883486445531718576693559321710165515391309493170771839614954309504459050332022165761607482853082183974469682717318874274895219715124547677190494148802504395961175121196422182173835301153193596596250768343305918450629076425090148665211768368479408484936588875580795689508341511009580296379872289706808240210822215747366726699664363505642963947161529727685358074853313230903091547724262758044001668440193451823284912179801474377553113169857662119925090675465374650608378962005321919901351553823708800553386003765327675381156148005520891329455266426129636357425048245286481930153063351873415932250794232180934295884194323737897645764017443915141096844984175366432874137426302429214053562985185168713093922793169679572366753959221203641910972215360144739658043449668602113383487700855330435660899952549878142148759296467349192179620663766588436405916112793027512358800641411611490205229978677055862633662577548378837330786172742508841978881817226858388263987685007303211860828048176016279096048865716542888372224542603501246682498008646341254761238878560246411463932764913660536157776856108160274625472416404854361739449390116434406997686131863612923567062686776351852115429805715162658934637025746674939914917196970944841160951666363430860944126436498200434570489733314098802564695249611801167612153652287245003195982376688876195672262843274888896318846190628567599086584457289173487362167329486690088271297652837442692242344712650573757661372675259651715367019190013444575926427375352815491996190871541835534350512418641537016122185542985868786895452763503759317578093192469130219230965650625837339372182369434693266390792632938599945705779562546380297839141400347300603663348279864827441193480223919418224425573739355934700410998331827254585057860642097358382063218609185272164175981358869398065645775377622413131587259852981171786518830945707110216781640677261071813302935537172544969807034587090281270097009007507384360089809224297478557519279795428372764619927014983554308426859049164192025156322694030665791785363110039916420673953678376178246219073557034631052578480551129042962705010022023226624926707356044487153367910655866871735407043725943967099042900148477150638551552787605334105388485937537708443069814388081198377253412071430492653308692151732427911999877207646240760424996095681269773317854186249501638024363035169711163720486118446574034928181534049848919791206920087205034284562801457216797997307821365126156668281826622980800699217467396998047337904748101789220231788183406702217747857846680045795509376794085184246047816106713862014509234429132688393897052711762958847843998937485035766593143925137051946246458188545401302613886747312849341401126879177616132013922878871722319450506602101348736773597630024244763607609156599447694631195525265965972111795132764137707520768183682505814095006417290202885374760754145529415922329959298265288475865607017692426462786255694458187659270663004526099725003885897195615898064749847402823441576314893991374310326136752735771815936464489290332044907323597227822202800045540948038454176865295350402825584392989087776794879173441468064861962435623680223804017121322385909283078649394491098764044465761265172503847669745711830192571929384849220631287979178281597555222088550561326702683607256681734252029847464882876388348844785499343492587229809961033597944019142000578549702561340352118351547450085110911390739820505857075896253259192432260939781195066941179405275700226811739742726955920439225207252410385826192856269994984538511155692063889677095514386806739689106130635500696438458324680926139284210937540136254584632139555000355128938678911101914350977515655641389231106985477750539465559920807375870883336700099779084237557525086236831471698835741930674352167982991782392000922845549774906961088362208159579093507148836863977178023462691051091305072825975219678874801076360690240327280003210066348469331402917709929526403185318734573125508476376647307499723367559427221734406361282019741762074045844542540563170684045211787955259875220658831738518331942204497268560833658151515414930026897166481178832245775551630821017819388476772667844702595366873433661960904691517939421714030935274808832644323767750872252638897961689001547698418876913937281030971457316211162679366624746436717003074004072387068913151364645648348828540870142319764608764857210053645702303116995638456359417514131518486666049300015325619550503952438739701099385829747571271406796879298866609868981685260628540917619273692484715426594888273481076771456695564788432832630363599545658261339927533986099046496499454263266480728994384860944625746456693988266471783328095658610002408173240189875529101610185289186385058489141485886431635043932173424760860925560874731573627498943540119862158131816448285300708384322302098043054069915767708571215993604889022694176271573896950777748125911781482640650532170172012345309350170258206347464709364175470392562630143347921157566626860073746507387738487475548699970373210550287638425397111526051100027085962863389666446372025748510926458777388302597235958366942035212665416377724694805417217324826555029622428511514080089418378731685386319993314955285520373900954858035438316912011389810159006420127736172320380177330150913658062523092415030389470108362726412516419840127401634146014524891539652419536418841971670668540955668787558775496551739724928840356555663613504247255291269978202399346493088821301106059633571891127347828022325036450126202867488404337695296047452158530702279327581155587012900599297909846877082760271457378324628274954996882120233581986121027214601512578723884659598533769530538921458846567956713567613762723845510719084010966773023889583682008009775900137698314630544050947676959890952744681612043288947368331190759912786194967453675589596159961140943850205058372697447398696693039257894508661462176690750805070726538737379606359150230478429970058122470489427615580747864586269344096427678709848413930931166897861872779482510121566364604829196430079539262244352302849264928874569769328706345593845577976400367113220828547584034872904023833201406918556678926316298663685715607829063828426670304813038797634162955976801296664995174879275860185385727872248337269654262328190055849735921862143407659362288891290977755692192210568086226746749531580050561293659481298892223043976194243625947095633557121096889404415753775934119464399761301520045639510066358461702486020125247482997424802620734662360176611884295488917970551150207113107446566037604584149120269478908950596555650748065206364723370103522344618248637535405537254951261894324121225888985931674495773243090051685460162608033541283269748219794269301772431480060021233912744139161840022736612739406182319414046737031870918222343799773301143800006492785831043236599946336261738954656614243988063050773241174535071018493585835613230740362504238268624459604479471746546307446922948830549081689315299493058357638856216359362493842312220372768714202514343216675912337068238268617495985813587755967270572250914544556577170606410602984437700524201797839979391676655181615252407990819398837488607346879986984317242026329798358416677904202747139385485837336027387596523014385903883326272985540195003256431015540338577353234626439092601096672207011305646640281224685766690260618239178538656801416528636819869135484756336293563375275665822554845416932715930318292451421948683533693449566621762442040702929446111322102223814271419791897678720744084074189003873689019881751953246536297228044288651379996201877871686453370820044190926382476102903144052718764249153530647576410445259258388605737696631041436720332582782151398387011405039478374948587426995756936099605789355831571658469424764879710044597031662652027788613835671603989959244929074198789017598640336959133438915961598038133287546334742908383046566997222445199201486559327858445639363156750849377623234281966434167647892022371243573549200092017543439548923416345789850119627386976931266061630630622331202568936689957335021096163928337616244851016208906450646211180694516514196832499651271666900256992173443950852953118874309545031717531052821699469651081469293602988297543373538825107991104510516706979282697286410721014654951785968245507411944569466022046356849855953200457926901912691136635866708235836705921893740015675337296397640899670367838622475106771821188722399744726679601140488959353953615697949164826042967654391898528933498519682090307050895786126705361509216765576852064713865435134238142077493035650223948384617587450065759158618030462529523712693333555660907489294253623972381182077961324222882934298792080295611216547558542685302154079907494786061510481360721165396528599962895222312463469847235330922703690141179758965650369223669292661769275286337587896799298986998810641105097366397222226482640715299824083318955016022562475028999025670821697793992044427635169234132639837168710042501649364751777311666520303403725461963263544225749369753682286689859855349524954849853020773950212243827327655880237715503659251016630977144614053331122303320402204187607412216835815070744479890930659115437616605346773936711196258575409562475542236013217250480720942365345316782135880658072113118407303968554144869336422639929703322026740432990353767292991540945362293654336092517311940952808148131837838260876383103892595311231519904957865761341665859904025779648878795969104768821890119221771278720993800593090484450484667895323463940239664537564905524030578841130133058773200699428978633748342887559732178475323849040553249235054162085523573069659196577614440035019780996705223466733933862948704573383743953620471181740869489451749855812060084988312499638214251394896909549312267505335793888849629431045565338707533974641756688966212124495981180476495634281304711388209798785680517201159742980957649085496647151871448358441381781393270709684662408637700146325377830731846837690315497413273819950432472662201575970269484311681807993420068868816792589552783371030793122363678904982780264541881326190126199353274343996074427180580010844312093384756904660549102495284538755680826476731716139662322369824381639037816085040088948877491695261814931297789695538725928740117644471280896425890979287165955916429436338910050615097360035996668444128980136769981100709141878520944350826852824157811499523579564013242871753666408736077339302221552752664965105198531022252176810049955316147645827856146320548222209440439986736365138225449933012759818325359317252696055113187955956204897226439289321985953494836346857144383558313744727458814772217923373636508482508821775924605478313929852425382745203874409660766730676921249942755453484396641568859089386479847905971388285122141934762024718926389301948099582477396418017656088328355100684143936048735965597570270168296457754971140790462140818847689062324889868488805516090022105616100931524042861315835397082858916109446063582767112957620986237095848148994042006986372356978941812075746046503367592755236302593298257259950805967658626663608970868521121176580319601725516506278605508693849770019158741831022055253214079236974595907748622787788863053223495612498022623211091008530489250402221694041669430789197331980915308691074500007213301913502544264999960876352599602543184871861313666923598019135158106714149736013814460322395113732972521464243816455436839135172448089690988878275710248217428178745048164910456379836948928497712484764717024803123209561423064756510335187700017982138601368307281965464645640693308116553818489703769089756559240078335010120527179776628722257705113378029277239600050530730514639242659693497586408477466728751851079204513426126696766916366548810201868882052024223710145570298975512747097679360307962858526518221800163119085868254093550839667483811569411573772111893848407547766523450700953699046288647164576531101250016863322983869692923790959102708249724405671547018019145984826312283898014992148576530243075552066942564751218813807401418873321725569067404425993593872436275898081643609375684304661732736641388277729695995078595058634098343200394568615016907778950386924524004754346565452492452508424122556986864007128085163886335906502929604568993331015645290906487681109132402203520846560575287765546519682718657807596962692284973470049190494739452764474867305184276842449838812965310149484688808948053374235079973685437024095530136946439070399043086296047827751832445090036950619052862779500723792791205146686332178839996285301089008067731244354482604809328638769554606399581006490229200260692798347108156254388278103579269921347482031107827064499419879548958051336769358420644425689608174131947666409558363276464540664084488076140328674667725549703390361785472476564606404319330691672764233517085683891803874466308939048105893185014709229778447347800115387727365598254083746640773736219725924959256689181850328156417858085175065491912402584605213438559109454918277075287399507477682003276048113040228843152136868739863558835641228780820492711137551440227810997582132783212808297119849622798879673469998820926702324306045183002202553918400005476227727090779844047274817448869380591965115738914974019902876241609543236917843284920104204649595956929888043101064215507547067466091683649223352170830158469442986712615883752016286895507815226033409471390749005637537305309454515784298790399481219650173208029911736208376852947808997258774790345475643826537753041613569006098259472326824434573671242318658361653931917280807339637381284576122648690678457211453719946837760882213991571952191177849632774811140466905083610836786926950251632269174627302165542791464505303985344629081841282848648644395484994095811526378554054593662763766589801267577782491831051731071421331381518603781895016103544303278408757341229408902669095616515533680800546597347788790672068690698462185534988582436247440858740311999602909884645552277779611781557096717706005979562218504306799579637730397833792766887497452940949582699111905758882666082827958025861656838610100802396251941247978730278724611243083718550136082152880982907258490620750047269843801620897356481997319224628489197884009410053075737606932843257744291996420280179953792505046361067494893171277682537118837869042950993529865687280267252055113625973152797956073354478656757756131881174111408081253902825813264122758744124360225062867920382423596349772731237479014137687999334229857731620033577236008928275982790740543729540742036048331493222611076721330359243440077578206253554129540801045537707071645780515742958347300194786262293383889593208704937448542984111360755031682603438488193220776565383605190945839404136683490456298616589030309933428058521608076454749527044932547789470602819450994190725479509395340791040101595605507213658849759982976932256753219677867973295477295571391712615220796335328541105285404081925040068772957652450096145155300427539227381175044324361570003027333535028873639820469956420192610813207770707503227641193190679213007874741743520905565641191102641445780015621972534087883734659121476726215339967900198069294409253597262266883052843302470291207757574014273869973972777215384647677395987528904507145317665597542655306072120289449609811398929898497661797617399578503674600255750818505412286406879850643311204739578771409508066981208002099767029611376735077159805544317364773161176418925025252248642965293516262885669300568343708242183688137594742873677617002464738399673224124638888762237022309709228501326537721167289787224858364336634354364529569302890661731680221361766078952135950668680906007961993422236609588698406161960364770831896629372547450140519104339371587002907231759972032728179931780640600458675698979688780182022146802063668436549666706110141386565528374904613887063080058928351827007365560980260413206096384817433261992116739468803865059261554298317544711039015446301628122095252049967836412208224977527125789290850114794807314815436825530846642599650113318147895562316622354281873495085751722021516023113112884508088045711693670350843166836878610790590411088507759243160915178416642864769199542723134616049292151511548469806372598282976972327082353124857430868537369365524540339193351998843303928915537751786362017232882176986800219700949212294926836627094064137671916468211986910626865732195865759019997106828014023300772872446527009255381692844371674252343068125430333527186891865468754435860320969839437354870284075746276385074247995507058839316354570218174520013891466458632984960292666119046215004065092735424496387670582518819485705315179716866075658691703302561389465707159208774710588027726095667550822405902794544081012797821782674632777337284898226566325263510111464864331670267404405205680892981403451171365308647827276101961773303811890605266036524325820516554513566200612340650336463645926346719840421579768995970988723223058767538087804237173117228206505269202786910308168749273103426321806697297982257709656977893391248407991192255188610390607955966699588902497221861058513547357014214422122449282610292940939961296404857594800218267011710626398859502045866169919947108184508742376834707854914251874264899589258130576949567368785220712587244100582743168926893759955877532655840628550627732531206690493380433653881368692931869591985841617714427044335791223339465702945925955743487394923460757988424408061220191606448115179600820562401173001979672547794317075364982552639319840135943843380048656577839591232781283518126348355948612486568591390984580084098959477633682265707797340623959008924481101339719118748998086109460671928394233725300869385900816824955965789897345997308939311510254120632860426801167644820969823108846019362996845210786872805757629486507373404361603188932470994319353094947347828790704575871637969608532739189282613779696688758888906762478608094314894969096032248507792860736910979335513516415447395110320706639158659825260084768671053975568026834582761288085883259318569892676580769500844446604479957649417456655897225280845702908770054324019801658422352995678686032800167816884792125120396024687025408326561523625981562164158846108368255097416077630723921718874736819479603712980222519460431644893502410995536872089067470467438824296103972072226267677808700641116353589171756957752304101084063476486212315929473800563755615159561386439814673432210175954990232589950944008606346807947492142046172864329595776900625223816341744864607005637327645200046508728108396002641503702901602214248519431838408623564024511240286321869266989704199261005354665227099184866199533984738142796186403885346203408212717445548516099940316798306337829285883244891107077072117618154155584336764914641620073786419928292013712318201283239538430379475880143735578337122497055384179535384837216388674269792210501706856609634011165011475163373659210550517654960397540058210922827753106741479254482599890587793150720424979714073434945988589500771242226780067431899096546971244828802386412190596485490900491186733060142645420942778854165410146366851234949400336107306991368203477806669832755769584245461488371956741643048408199262879029296811446917684496740695362319867298753269850443640758367471381505615689935407339851293380790618459033226741479274365566662222808137563211757311524718313626585192107102982075991673802913742834277857260566632836169590244474721317131504093982486013450443022586091300258246526671870943184533536441518193427711232748781114301212540255208767223638404679188548861360967189508631170326454001680203722571841510972998301312803573809041206432008759400039736435181408246850061612802390395151703710058515237272952881679941186662692837698612375466221542568115810252141444474671224035249810860209892125526642410755401902851101017312039909195320430115427164200486164271423107165965773524568400258696359885798723446734105884160732610497843830549460394271565019146755027614683520060646698491418184934800676410129280213519266552215342008787643417473235138203732303375323883349930658583275662346663578373512602983591154603333166118533524589518082333999740781743469950895764728370458859585601418022256293719096600657144059902709726461033628455712270522687515730967344779388971288162174674056535746948787628728822779195572474138610697908204693338678859300764416410018856820507829068147757936584350878691851048173580525770017042225572307878194178331706311824371478887078416147069243181136626053708571123382329507473792123849723226546591726095423384825802269168962587799697874648814920579749768554425785739789746895966270065048883911636105174528733349052659476687662675555098592581098251840040756539722515328064593541582229351300169689199940046642560672722227395985844635013263906039126538700771107646907623587555993370394650254400970125283081024834083193461712749304596784396261274497159247378367556895290242214073274788516932888806456825526075626175177051419583777880548569423011067069464826084971184609336426312794321715077486423348978084520932495352003839061481755072243390185989348774520593388586532815141819029896409833869752996503460239775735712642847551615009641118554143567121675851184521879356642752499051540573326548608793573440348390158051185671372270381040851660362767344461717916735463366763032921802041641244002583222507196763485232407816350186414461093063381596939632047166650413486669499548498510179000665829249685066358671869990992553994360959221487352834030234398546879667902727871492479211064936638556264076252412537518529586480533667231129041591879078695092825749251366740278756123771144807558140607496783041206254291832939169855151932300270454799161718645679871831699273818134890809481412388156755874945751159023865945928948381229551444754662205825021688260073054714861544847984925741969373945491454879316631116852117082679984895061037975804346961049990951890366892735597625676067077799083201144793957002247570101028304767878783875951970884173653262019619802240481578372320868823557169881377128305333070972397426877125133943518599934671053546071914862216271090875018620555126892000959003130199247933184381551315213802186825898680069995656450465236693521960351208061858671066169153800706199072082270231582273611495254167857460881549997037611649673062099216307025981083194856781512162681780459697571282596692661764092111845138954237596514376507504644060502320253902207986061610399275449955570967875777969153184055689897445987537480011266413773668333329931194020725993761726693463648658873672816594728814470314761027166964352323152609790816453700656173002012624980265481250670897874420268436462008941609285595560791576408913080111629602945858928888588847267307294687030456926192130044683196993682261847743487591878265205117746624156391443370236806064801535981316959871067430524215930580833125924865829884987257599658681265637587214591316343135584952810081976189683482285549831455510027049340512693045886226868344984337563216538933312280627283460766242806343500445036320458236819164370507898361337559672012868573384269569127334421195694707266985011350396004624194535769237764589573950165301611535346579196100902739633108182370501805474073419454803585726148309953632218806646764130152171496708513445820705213155940093978897676292949107497350079645872460615433554487233937662823775113426136572244152477219889910431919017187378915295449401575335111142369906042947883784931355959229956719290798932056032883124088082318090573671781168179218995998342993556118138922079250364887749952881527869972318130953742290026563104517417878600604307637891858337606896428124517535926412357952738457973286234983276473015480868385357418822770521276300777163383209874721392445776625223443313689133490182507680897100146394709759464510889224366800221605478087511648170466109189883544039119798440455359063705984624023913053194817604689566782870375282337762277294329979722890437048216863912539496530976615236202518445779116165109382632508939520242340396512056246022714148842643109151621950495182301191725610855027613519191064722514579071984384951979703361176049476215436999829736406551329523746169554816994672872634262822765303834287659281929360975333421218359505149020416197066573293891270777699076187339207783247912257835576755359445973612415485581488612947406706832405913699901621837101305460584068416244833809048911696753272893892761630513578829698961883719472623475618216412309481653015588822108713204455175454851348519223370207135271337798893557376499161490679885410348281832721207772009294969416775439971596073365175241170557581462069214311740675254821332312549542370332014384675481340998762676327673377946655574627049283836532872396718982550583067192463121462351518149907192370959392435238951482482604203023785096140106673175834570802342912058832606880162902017809038783572860729554330585332078153515893791947723533475788575753766479871281556397712380732473839736157040471414912496577373271686897773368150639342549570836556379553629649714605275389689600538474768603026639252074056639911592192068585933196596084933002008945485134043203171691751341923558600339202740986943550411618354962508696533529414763858419931388036202514594151948118748301183784151467586808984198385023368071303081951422703258447248482162747731019427628352216706810108217827552547887712608512992090684253730491766232592912879423462240144360463018949414895754839655718841819577953318152030867384284502342282100848432113707752523509505983674854950370251927082029415130855174299615183048404151291816705994389694369341453848329820064353108513324356843844178622901534539108336324565112490516605029356176362366663609154182384216927926645452724764097923650965001503332840578127855291845212940222445225528119103819743779046783380804088924490447523208674623019505279379695728760933487329286571782303206606612677865288674412726342497773495003962651648821460901901001468755942510583992782327837221316024272271071164105140136630299956764438797037201876236430137643091795770819742039653727576706432363421164421427850478873592796354198394226152093835436896303842900435248289820491730987560944705532361757725559857529549551752290646754862483809665452401588382827285868488795623900792360272016124479844972136584319167249849463394212013716543230345404329939044234727012130031575810030399178340088694693355780295338681585216400854557277833410310160042035418148868897436795562260606630830412095046650945150112864404259004916962527815693373858444099319620100375551667790505494864279282474762679562370789786673487057286911008049253674587612328792727913871786516442828779631186359531844870545023811691389391321473424666043101600884439265351122995878981534491799254141926990372623937732359067312036066836141150434628558731880749508011587676576680595281236747170049157357166973009049498431634569532106404548942506694384992723771086142765835379264558056893324376730884742854739784804254180196354053529517329363751766751724096519805104971731879269477937795648826903251885751973910822164861237985905429042817607527627646435526623134148599903126743076556742218385860658869007493204925745544116977868564159123533121627825935123771859214131134487402846089920327461133129772533842812009084520945757785269625520456175506713277213646997752113768105803344824607872128150294772838186142212418779853041368648069663195667575677436539807899711870776068510683338073023449721589666364284529639866563754349281865120755964926562455920546374477926008347302610493023113616806652473702608561215848165807598417049093157756945701163707183607247237162402626441938075989276181815446519548185855856624912476270461180737813585111478956062121820958221078788033443994507474591052437538197796786795910333372921414111638692424664128169282005703026131473236522476960245979491601900615863620005983895912017843163847323211568141690039819617174655637472412130748914668531013935304690409916343672065958239534388398299190607069367872321697292658646878579770465892379317701317444539112714076138837725124581402135535106636532996662144167722536021668618287057787570934083200110122673396796133232117967312774674351716765718132585349432631478347715554884260252417264569151230450905171895045678590481261284170942732613326717804642147898989578607268726555264704284193758514393796497428848113561111931965568320772324919915351022381020519556153698478792690434110126646193545282799691326290234478088023844332159877056345434464113314467682444794011575804484371010357460584462469622403706401777024614622219686131828998192298489063441895819540109539674100632236025869883931877409301527094995413240863259474136056523503267391949825099894322285004448913434392540160205249318382383111080614530077221813719833003381454209095196239420281028088500334874998743303572454085488446780142808207216098037888318273201278209715710824140302605760255144765468205630251297873460334611995459491439164437084928528662679042757836479080883769780410766756939753507685046095877408837556351024986374646621707931893538003780886878689117002918956741602717556339294989392745881000470360225676459665442054988989977809540873514521791854682995466893231082508381714878741724076157147746302143851904555340747722173260243500864274423346053281684363327933191458604527461541752123222770470354703911397694317601048706912942216069102276731399342538191724677478988152077935980248538707494651188204591264176775992181333829473773408289663507548414869325439962291411683202414241867657289108384324806002162674165058364275069101721506442544450332833657833998691069376771369104711875800392340781855826347354554299151781951891624042350979047344716039071359380977355767887713635757929862445381991965372342921984378963724228657731327916865327044174703630093422289596962786603725180380034311788173956712228539400360464466082699735904687261815979716607026894603733980753601168438799393957744343786225557493633050750583831195079527084347621641074760141826093493664395206944058027958830467125897493280862375695128998969710446181464269473808068485539710246627727869403211285829061126000882538132948830126500659850358667248661603010498688529984237822956988952515386201111297743845557730059453668202592954333402081479092577997640539256312783217527776234738477208455363681853366766974892487428719950700129234191613957790192049636282616491974923022731485413407380733719659429233492866103695022928306288201735229554898784903243224373096162443624927016560744106863193487566193392544491138124803147583234720797660544593144221779438684895571811228944196789791222891749151664680854127737702008365419760925709788057418791621818072784697647063098336851348016908855287262923727239579027080322495155986620268899056844505886100591702911813986504691783831114883339087554207900180715554169017735561221234130341869684918824324138046912418691878137901247916000070797867664431973760015326476178400383243658846725615377335331164028104693502368588241763444915130089731718329137409134397017296902562602726038880792065767558744020250399745797706372864511614116290648865944029934977077655703506323609636590486462459359469113877794367673606492445303310842810935623852581049008570045644070376525577414137335278521510124338084883884239245045380569192840828191839807698825814111816694905543693830619113934814833069517901942545728241164883472411463971353671466882581623437060262903956788090900655527926147129376939623029686748078733627853008435360047199371704355481562672668260849209048582814097231228758489947379854629795715171899680634267421784619237409167772460135981294300074765268971076455907814977008808533036363395508145636883231672243900804022582125907170596011135473075801127778980959054120307410212779773071921619213666880067119375970076110166134009702557870561415963590418770482929606822188040555258674394221504647266326262845652466916082187059407248278813301054297934977472080285127935187132291724812186889060833166544903672353011735540898983994222298720986241393548924996969203967406823507301086370450440761672146192093515044247213614040486724413823734950381613321274014068847630713067552737524258626555313623150937860301496904150252474757371434807352936982010960582526875350916836866905198021949922588108163022237781286303430327059477808744837336075689489772159490722152743143119768503931475543769754927582795555873648313073082120757738168634257948798976816792684767782346074916514957597376177766064809819242811575533083278135538571707408782405034802998613115452038816373011077170223827996624482558451555639464069891145667035371144504911010129505653396197849849660838474742913684404183431764809144414789045993755129706767943504115548526540813419638764055610912276167866678014048942613436745203786749217376934717563862561604742108729651456288019893569146240034318939528105883895177703337998002298669895284387055427515847971303941079184024569240944639740839953481975974271715373433329500518992435260124261037395975195495430361262403061389860884714259025828911326053321204746748848659011013048543673686128637584473019939082298091053445823122221873994560690952182007496540905025745300568111588908415626423961682168964058656159953198207025144102159442396329709754484868872429746665135488578104000754737928023620458224547510108317179243778994123325316700121724514156104853822933445686300599138590554867090724908064352823613396930236403220734064066592720009031671939911608730646432722508322935448064697716811078240158612187283855986269776222252646750191800034798394729033616582842461738108211151705162905653400876497135196889579936197205731663336289626325758578016257836965544365152707334858184351165120269871790277797963879100254123271084425369179232484224287783161302599779306973262703574618762183735656066360174111879537463450350223985811879971043270943246518650772585374533920705137668147646347508588931730223956087426024697762948056745022838085517823770846599541548883604959492310671515920219743861489082469827245050674250145076574141595634299820795646418425674725476760348169654260982932784576606639933003530350802152291672801640751920955005783902493001809449280112507606270388712982839853311706756622618883064057403458072121482239757993489328617952485923700446868113203557149188693938130132693586654756197380894388494079000472143124276718331635366251367295092856688639015551900222196543652075039164451623742069058605936464241874573462549805121393197673391077430077943417179786708164867135269434326857699077618826947117998189383379067759970860430852724947101765639825289186733798571739990938547731496148213469773933327759059981641630986316458818055464935545533283921104549193554890779004841905758264493565266598503714997827389363292680505004227281969266834985161578534989913080768303993981059246059882389985295685583111106398221045032933730475259026191347097416645215013771167004148471772830437995171768163849592490792208798323043433190733408967741097951972016285576173698965895691541002467175455223266054885638721533887648651182535367762371623899210349341133599832840380387031106181900710797559084753987537659197936037657238686539445896025685852060038955288118714410711700870016029292744752151631654674374680076643241282447149172045420181336443393676403182512796441931772694628994387405233599822860252599887351219340430169744385836903132959758596738556501288852352565816435695730270390849255549406456411504953832559255306315121073098015810628275866726981358623463888698599256763162745443058435873837753096034248955940953108562587415243923117114944275247045522102055332635493983146688990600384575337948577763360480838410928650991369137545728217759339318256326611341772467861195584379307951276021949868470264020295484866911520906921003169794329863735656171088065019732587267428824662591757896870996080345629285624990715407969648620098644468945263065548049100152148675994589700943525026916215392314200749251144321331592013054565881048984978248539549534555656491969704444154688800551596292570007666898043700747130368368559472356231663094908885920537493950089747336969510948427313075705280476345192445462338948271269172608576629441943205326001700159364284958848517772568059062421608611237410000910546275482171411477893353032662468110321428831599044080381569695974856145693093052936466073901519875310611744675091234261120575684873370210061568727639796731500348176251632463884605352799768676680347936526852030811683939334789256090108637621495432381709994684147925835765034087597642366204816000385681070554497662456879305431447550746854410028809680631820360935993191371784323710167148819504063368327410163234560735208387904514762073373961214496093924195477982127629528380694443470064800898234914069798658301580946634525451656953527288043615406097507686862391595242604428574762101871665173974821592059415163587930986703539547330706166320796282776227251058907454712555980817482180434388480578466246482379273072302632523682377837319845875154277746959885029398461352488578454005918152952842078322460181100263545586802890045764639481297717599982782072294178799536547153147382137776188211924691254196223138126075903560065298674767751847607060947688788369830506994698517331552215965272838294859262409461986334812024795529046435236227098260967565372060185590415254952009383874042814076419287481966035365594867272967899348123009877480100391204887119435869946789289533705188903985056225508700025643738384687974809441843278053591970630789088051179188364540152059184770368896768725015275402761898907634894593930326987119401123802999411014381480955797493516107505720636488006412191796423465398386542306839867020052655808927174183495239511994931040450991051092470917866594441049956818330416591164247164666070248714724042182412140382287824302135413466764705714628819332105938550299971388929360796657422173802014362972134676118814125920199008377643514546847127378242306727985592690341446640151621990842436834933688945062209050233376804164348634602060916571569023000375807814542854745928050808301331425890432465458352379947988798924278240355771522623076252817363536939416462768874064666711565764164423797075221202395777453527864171688640192949712961938839648867619394187087499008961346414223427163082656239790155440790954782954499260689559865172550999117841324630290653760651656209735571968235608223554193124485944062459282855617353134116583364159644751901007194725068498388244937662107274200308646460410032854559142333228308569287390608421237889284799514724234359431857739240230437810221118959953340318189048951315781475118598003768692209995518047766977309065297206342612194827573460205048984040371051395944638837348995767002416376516286368260823605472663410085318234355229999853597866302902749651317929548361224379955311268690457909827836559515875563219394241418353664743592784676049981253883594986500300582013112366371261646914149786774067497356080742296908984927230783551530120364808697643496059495129936181424506345914747938087494966658089525686607476942304969487878139984522895704437983342626844842383170946136833582684895138863189735394486194586006268346348547887453057593600337222214561766096921582895721364369648647669069879961830238247493694431197373477041544029385199449139962346491244576115892979928475010450353621871298748263009519791770545750683361570498895802975357561243300868623048050181935241605088815326478835480744278273969223348428438318505013334993582999478606307427226175502004890955403522393946874311811681034343510403733499287118685582053875987999443203135653295863803241151969203048157897855651318482432063442477703471772522022959638730775273044935830405578272207563134330586165559302109655112863541529193596536818377289257072321713461714643406835274462745552848815457557398309909130361062856521030319116754621992317623409476758248646060844532000720438632443795119700635115354089614415554580820054897836120805180320677696993807721874164769030904291937687178307583340767103017681300360469868460728269858298574657671156628576444169469655085771781476690340612835070273818044924974296022398660731832933355376973690317692144355625560976144413325831800883180768911121720869058981826237532206685796355266896613831625527932116339109491326090550196765439622993115759600755902702280632908193158973445191793072512457358953969747920897555341249836049756400819325917200356393547232669086165446280515356994712505089708783922547014831506453487898804778365569338983338019092483977326567473510950272427585083558716490684081799760998745183066663650655484535239785623043399142855824616726852938724692401529692791366860545098231720283373674198277523310811778414187551181014703232620294022501650942534275717423811049608746882270519160102393858765852986869410900384537777370128705679821230726378185483631743422860668635891955613674644830172712267734860479652234728272829359660010925359413278022874157712932281522575618087032896950476173691695988241245374160793663278726035199060776049212399808319246056440732770723583614623282027822323804560474998426433086118175539558078749169206915926313384394826172883355691801270850328719941277180940907291291097514716214935020543677762900522603022211758858769209331802516550765969123376770627858348482878470276480499137707214596669175224879467913950348786318807027194581911194243325847435389555060738530876290135663156185075095126732577744585970175861655748644234004601914331790161295817758476434156923865208277461872178512618786674619880305926111496728325668855074626562905755771160170551004608399513230489865887847340244155690477916642093107616203443614767530817253268104581444633401714693662084564734399822739280340479714246454660679624439780937151372072750926340355692957734968133323056719197856376774992795049211479407602602449310942431156040591109025554784238518988296749868541617919876596702655786178455350976118838370729784253468971734987843715231660714554886079414896895139615651757547267231191432610652719216414846633529490222306972480011033145117269623424590953779667868342274004544818478240969998064781805535473593233313823389085361020478145295467341773552345598437466656497694489115237012907037271348429157683002354267886635844374470591046087653958135107725517427277016561363950520090597028459920288731352036555381888162403908609452268968239373268824977474864960348817625449154969558229174714150875426056016462114894493825588135187964644822068120622584983466455913569096205013167958691450607955526696406085467499771641225967063035236345855475865791139394120073449088746947567626916850420056787793204814917070151102168638627748807803407094019488494857562944256362345096349585460788287061541683602916194830215114167585420717583532438406717507864614076561211155660093371999669025949136377151200140832155760819917061516124114194142402685764227474658869760468681958309845131757698535686727404803617640504115128199271022452513108558063698175549191594684714558837966131797610442390336683866161749398297066597559378428353124632972374168980620564317664764855056075530988377777488743159049332427959715094981802916848397532475771990002782516439855958272013142925510074786434218680905697958386127918530685638106405765923833129099913088827860184644135457869135714136761463716260827206964763579264254336666180475596138926080734551042968621914781978966718323928437475596338468498170636125500768195633863684119328460398425579664321674084950746620758142440944875170095839232142127577726218642048590594128162048998083597508492975835120176860837572784728326128027228223939861631272919299212764446762429780134142520492503106047343459974719816595820166653515657773097377650021951303257470763289661978732994498011330750217041691780008380979348035265106764508203447714468717587836820392527255638239022612208150106846385562047583566538465169495545269275544864908950214799194677596850246852925790779834074023648236686253572552598943833354285227097089895270270234945395726350350040211404553237148723280664703666773617281106958995761542737607257991012559261506070235706442178123794763348859263578807260866242410565823769992958661756006262544566012408161469155800680771789299432856799928912018032609701922862179932636196131308550923734640957389924162457636084084974683348892037654812642482253756127200346503314488845059407055556288277266676335474927354786359376566605637321324928283134733408420495138408133845633634970169877718568590467980896501071095524384682633408023828174231667274782207035275501783276899653549449154740661937343401443191125257599315360994661370772044496700705012652629002738643864961496166670609119398087848706682589956884675831983914116262310147211592908248399655425794537846456338626632538724658077582505491703502056177581398942747384333934385377273027131190827116993097868839559756410537489693046039244929823668081781888917251614845732903073136262721919983429509997821736636524612596909088690311040331832029483295086307613565513889661507507570640282771288194589067927805233737257827113764672844753351161358753023456978562278844485944902682227627570432908733558601425412282856052357180244120350380909209689026144710418410498967196958531685819654158185756261338346641371351596180875877019058648417129213239478586288019890110451442958246377855412228933583488467979564224344871487375587321650815350552266188060015083254786499588613518054327124466215452566738299319255248715616290822557486367869235140502595766445851130821075187267033019919951168500261303553742944256137530088989302915776213440947940207848684804839174331979532102492241221063394527200348208671194942382117345192108494708566960468110567196992244489527752040225160646065700832404822732041447339004915440383793568012281212358009719631959912144965671781818535139432787396986892186291588167855720485108947877544623962317846839486694287114299823233652017512598072458162657554128705438294198151601065745536500641560513478541866417843258357184301444712103889641885781036088375439349153630537429175754538929599735188393953236126523205755087676713344046022485364751527043621800197825498536725193536673411456263391063545798365920976978831280873103334146438355064447956989079828048443977656704032054613511481539230073703400254935137949141972059995394170746642369293187661763234631660663202984607788358657483014569832825270518249799288479857526068553997313484396608075365840187631568588308201170642878335593196930442601878394829470484258986088625836790227812795711734539080727347004666628761763967557965360865748793503042484951960875018829465538390808718260959381883840870510249811035988171094574462289799071871881070119240030161106646964415043897238353351827210321336080148753313581073763259882297870580918160257171394448436724909069164450475960168385665604175902994816109207679067066795979183370002749082480412271930069210734446717280248155614159991091898088482720305759056744977595189098507143954432178775040678124902162660294094546612777254239174413149554382208257611801292739475148508597734164669054060703968533748922655051769734564485864987319922586963475864847934628995320461247404577448265383345818100639577668422382098591281995825159123571723058837478412923525673905869817865820773392294837417832001581320248776003352300159054640493807545651987390442143573852937317314188900724315938026058273276954106719525676209025854128814377346479243689428837396821657239363763420764707602548950842548839902308815126099440638629887541034854909553194984176287241584773660158537994181242293246851803752462457511626460824494564311030568357195795082341093209422950269517116942299766981892387421979188389908663673576421216532305466777818290369803987159095445602191415108941815595378739135839045728885310502042641514856763599170977052369158155303951099063037355152074086377523182166756496039906276238940485157661318224422602077607879305939064194825278348448479488331362991302904791264478512508696752119127959465438692797238552854790576388117106153825802050492963228787988770262053664693429342832327202792593839151202938917557533742463521912987648699222586971009331320276081578586904397539380603070432321444333069009884533703811051805095003048349644195818262320208316904677541444917531122425914346486295383362192256402071395194613183159458992888538745060127228605866400539339986984869064974961874745188030451472644171562998993369862315580581622294628876310076323026705509499544311620822246977464946143454039351917148547831999839957347288986487252839735126490881922431535153521543123684315915352078595602423261880032947204605936776579303091474279729484494446535486101029053403147148497919825017407226884026839847452637498871544488206780119867389576708592389950639188649381308305041021943528145249015199541551882216583315588314014387818165310854645104953661802320066455075414335846037126505582843946673578183446229488404354401303432213397217601702239219300571448025023655949059410838113485982619159172949545887488454055936664268319846593144483248619382835674097710990697295167640873003937264544626758696203275063443872987268041847541383950636054048096606282844201793299885187466618272279584750954324095164156488243684296992051441266372791134831927483247220351075069627372784102647431106421472862297622700300859625177011737929694528153818948180140097606178514174832398943033428053553019165105007530865637358016421391204323901469766427648569379100502562434872167533598779607394645275298895427375046274119868913259169274404768471338064201454978840320653937581811594178456414684954151588514111233210761591776905641116533720975075254478537558311806376527845841557221913609798793710352480726979828723775831736088381075048259083410449394578186889376060730765164922872424797413790496365704581880861559391219607539371721145757715677233205669329662719516823789797935252408195207372323901635502788810275817184650815519956033906059232444043894356624107544400028633120290241708711516913131078928997558619064612463671515989116875124323542885474149604898653943828006929768335604807235083960369621056732918475515425237287440781242914831966896222723132836151091907663910698184024411349997147524851084305022773592791396677426670822249695260112215071905052550105454853439687098795865380793969007164328676237076454975227649483113539666827827646677899548700151888174000346249285026336435994694136243109775208808005572690766758341848385121779316509178155110241561015800828326522388542679567724672077099974009472476778895907967784354265669299950613663132377651617892446985146943069372677297740841568265199612162841887056682262376625106977253196384821065515192648349097590218538178766759902545435969736045152700115178570206931487351557848825313697836698839670072867337216964081396696836402019440107185019571351199889322043765387312437326453043085064042667828022173080494445929138109119696325843859210248199555062212928880995434997987614137724469853249522878415163064151624563387796507832688619391716530075353722663316176043832434752933621225389519596158722019416071016965680892652956418963473135773036688882952620522029127721754027714305843347538317116344102118701636116919832533496795169326704982451265205448090920212833284618922150923673715259134745429854637136019036685569457275861516743247234511406826918013523976070862784719477655880640115632563452068938746941478386997617071794893976485494088646962881574996345158280252305322303375993811358222031958921186799846249947586897679366889254944860956149935710373850120640968625429454040353369104024864168008200908286403355475988955666088757437094842134861238472757737450285461169100711115045079127596642080457441457731260918211300648328029291974593252022216581958665328457942103220106371224700553056616220326560735780756834121334505264504053463296269389808066382824860016116955299938700787498335929426325458569358456599198292981511688641987038838151883892519489660829163393073887588050393777047511849374607515088158481847550191148558937348862471926000972579220736122084777491674135788712861713863624806345774078266417462396625724975835682847701372619295467482448962708688911564370183147619156210898877952870414940729214869837139168050453790072513723094757551774616161936267752830870155326888997197335547312934857235086670571111368171211498412248925343912098527248285572437224228880122335603433376509974048954561574518753100629312210903913105287292968368441620353223715389244581794298680611551316936240017818600379239064853876090370398319420702568927518370943727687637444870013786819196907937643295566383849488783774926860988028399423570531769664296976987050163586735599674531820120831578229511646507097072361439004449934090250019357735815668031540551632496100739297794080700121608067319818852023502730913827144070437586565114296792119113892037771023449234450111297583337490583096433960166261479868077686367003133761687807706072185328790253651246302875803861847147051987846722138227253156482060540367789963383887713714437550391495553500348009034237031563362611112298582075439318399125627564103707555742496481995928560708289890827732059171341975704643298576870673711544935928350848277425563739106298708207561627444565286953419318722774055529569535733530395721362077832491871014956455717995772684668351409519566661986665805846850082135903879899545355489011125205998883777806686381971516585697043872377144027016624036796766565866728159794538514807618516921903044072911931402431150808369061262560737246641823886488519831626837143441838611257307978999236847112593601189433147698517002352139226307842906356109467525078082991870194671511581713975335620605188250728450530648635778004085853888221030925451021569123646096013918120774996321232923003776630074034039452505929040200024511099368807141896175325329623339884196217552215265397181716735639901936792634270590810341089397199105963006140757420357429760818719114866413640850126334175868079496247321550633471835107612340228551987252222294318265467346098373990029931019262211100705295322820396079048880892835403642100936906900799267803809554602406549144900753022164722194437308377604389990129896440079283818211846491888862083375716344496794922384631529737333146286742586447334704325780406332561820882760753403910041618488749765759342108183208194436268062725748915848310011645849064386756290580988206792118527714545147712569346526555781537581358549672906248057585519512789200479165687015476952218568075337036686032259396956694811731802374892607400989023501683930001569344757567912608975208920394757183504128261847651530740814893579115533740143543153026645787676593277217186026908783945887019299932433781442513090215021459960608970964213928845875019922485287115715280068794864257015821453588520608531829976788085823244666395888698392065717241024922515873009836962222584827146722685941601955323540711584799498713529140496540503919032246890904269106666744561107914523543760748310702675869637993707529956461658957603258019572113628564146064763458778583029425249187356506754459143096650805734197641409531284800639020141105966854502323848855999027000186558800045223048767350704158960073952899373558844290376483911985717537965795562455028005096427114421591077948026813002744167815693321479149956942519793966922793787864500848310729724150297698134359819974050873274093570868816762323715525771303853240948996563460184812029914764005347997493073748664479547199420688181185728878041322428103854541463585101951486917494790814396276859373425832404177581655026953888328153283662544855957625357032294013250221782826781801596353716712165978915365103483846351426264678089491884077582975472653165511673935062532522159490677268018810301806836489117724859162119623208875675807001260964613133962000508894043521427108442784254621734579175734786448379119571616407293134857879474278173989419044314770133106495683493555502003270801057376514154762616746837770109581383264861699499390399997563968958104800987535582664149058733853587188513412126112094051471039773402882711259433638432490137790457380349618250493332980187840416461515972014068130296606878619839602430239641903085793217741624639235043603464678328142728989605655254687380605111889805089633094681521651345369683507740357068801699422814287559223274519076562330979484902148476454986040545454783704087308394038350506043835911973859934564299990542234316693277137245165373731912318451967676187521113949302201911662708456578197904800462597572253945262437564583542517908127402561489659235439707375613919827229521784951426296857357209173654927705290288329664497424210446137907631446938707354256469066251749087107081858683023102080033771258004057146965995909642298174609482641332267541086524433505093604938515051167998838877658347451182550716316516623812845024915182665979862749248084595825535090859118102345913329436204244632652217108157518001145828982404838119446854623203084714565016098932025988100215241398970857391628795234965251932981865239183304624554298514551972845907690898219193079089982974021802876418298008879874742549846855046780877266727786930373079144891881195366976400764799621134992492440165523625581700023982740662518582292919692474620166526400577006530078911547787824847791024208572781020518977830603505708457504984384511614568881847283668865830233675718609958309867778609471474870901793017094787807376993705613865681830099584672549417675664570852003928043969855926160360339918053403750573954640646049776865649735834431394058152037028520642021893639835362149933677991359109465706999493336374382504349435574637141779620381763712739516896821748978897823742536174997331593150936317308512350551425703118017619205067181661126836633291639373527088236543443964716896841101249405963142771316132894660369211414243178651491509371572199860011378537179054939563064996947716073435050679562347670555895131975818913661258126672636417931225797494697508569055510192026717946941076866283697811111389708217068997961509210412990119540635033748372551007861656462499260201928846508928616904276078372833148344796761805984384723106773237294537202856908805384068402649400414862098715829564393950528193308636673610578622673515654396461025877854340601067635984204324805307463554517990293087133078748955218960162179836497392204888133373365708869934950348650413381669812837123582273203494086263154150106570284013342394787930212389996331477400313643129048017773987567423407077546636201120293952917028215183952989941122028340857427517611039602138501902688196153982985604127651844652833826243818412758671608371665445908215031431330331014930057906714608911989597380153817281213339296376547710227153107004334450977503465638462288538742265909931046388691057530356035634264122621254700370601002723471446786503881310949798080656632048768833801068746452228811450849705566344419360759989407767112986598458816946374737448760377102072799956879476778856789109432582067704479833255137777156935591552026379722569859683571853360336263185042528848979087018215779374502188597585474432631654744441282494159163057457444767586453505868187981397234645028100939001495665022863498174110862483468179186618500162409589376647567918910124963346459623092816117117387569477243675548284396444032005952971102317276408651160748450721768630340567287990123303668461750071589134679791177325928460700265406820140663608877150990211577083434149747155049669776151278350710502064975555242903073466682834018801525553191524037251445840960603128992944113575226546816333186548522586827828244111798046095580552144383933601422134488067616505752395375908318941924323087303377859800596132004349935012169217300612930444344520636848420745561106947353286749287205245071657286503801066990580472823349846437330676897410486806614257723156162926620260601486303806141339374926617564097009416161975602085734141668776771799947354822660707811811176285726334933584851995059688075290918765975834682114042108062838672392553910189951991027374475860212647666335487668075180264256262436755121941176703666864461895106898352248368886795025367220661349647177534962630972213941755222068954806635139152881192922288008428109536218764325045280585393359402641185451105991943853145460321517524104826504827374146680423884902687652464057043787645593088546068334814889168008844342626966645720366945338188648692298201461863013591247555218364591212965739863202657362380950320614113478823976947442263292638690681392682257018303400537671588409412650709871449497870569187535804176858392313106681648819626699725246390176521576938475431619078314903976783941587297539524405410197372084899854063149044600700923036893593601167636251255323186472482865560434212380462864420800551388116431732212139501391774787330742886844993483386437442959946634596869432196680652031207429160094043323060766235550196907920013002251597469391545511332197671968931646549733019383076666532500693376457551435288266168622946984539273346225559281903193347317998806746946200862263901673578646233266367728866134417616200238568360922533645201712283457680812765022334801444195160824353110688793115022144277334617133605024471369281577234990134374476083162980644683544073558178177899973307556504447290482089222290278730348904444411780113769759567095613849847511678489135846356742361839236103479017948399020124687377831807375954832696989811828133446541108221937443492589680637107551502174794329021205187051089672169538125208988045211967430488181665371970577687767017551570089690594926095815393996065177649761469836821149362785313166907506618833767683258086947270378116038402677844343966593529944087690591525783500090673225972089217219600178651638768915253694297699310325971059507287504531864620997206424899568251348179242092471657972396270117699928922912999253950177025586609086398760496454525320148163137104589679564827970678395039321384570055323243333456212346689618696483501050892011512533112533630549357013427669814987835362017689187553315784582178863149135341001280076811861753048574328262033325482636715393951948628751341268120873766114787978169091986609003225155476740747665055011915906983705802179739176990460523724166056297894579795533081595052269421476900948165201427516597300095373430671704760196132699739815487366054988012953007357756033646298266854776636184485154614372624023319220442084978693098749833236259043579846091914180528395373906226875492263735392356442183533259142585234578827611826983911780772900474141723131702249038993866909376280026955334241764939746380638800371764331535000476984788900428294159408479622564640033026701459436124094540333324212071592432175913495894997909213257576798648702528105301255718152221791761962799975461584238188586793556172454948512180793954921760448136327249049870477802557347894753103320868502337177178086715485677021003909373439689692169146152868795383415566341215475728311942604815107466087244957437242245951803944948942365581667501560172103361167755754066002912465320917022041060969028760192643263332849777397916493999362017648823445315750771038661480985935135292011188806819784757051234535297776208232915800245408768522594916944094672018081072881486534725256751924409782899519134374775302216763001666397449180159026176680674360641795233505572078321206357125559616581524127336573122043581091015619780476963513599177817364532036767964744817956196436902372063482442248280948481776641837169291041089001662181259730150098726180775947329763558695218059099488545620606110628483946471313146706633236669796007128308782154172451488753320724228788355356301703540026295367084958405212501348217566799185616315075002384265462174510591416384581922227558577716071808471925878844474811704339000918465508857367787380955934427921921633301676248295420863711893965336362186965131164759009768095994276389986904184668738185443557227951771899345277646195002328833456738512147632694103893423079028640039952788094636030030270660360023723355432381427139383340749271834085552133444770691402557637527911869874037001777351549864825837087759713133533405423699364175853070180389687155752352656412689386377187802884553519519039051477922432819046549453302283246336359047996359442938655330691005625283218739764656934413780423614619295336755336391288289921053252204516272665883916655542094596953968841273325501499152599090475884088426504465624214060584675200933550486125841634615420076512473724835990647223558758598614046984761918226014843349473509576439888634672268125316221363885804311213046972764540096204323066767869243553630293023909878040676008810816650257760913676676213751300140548526173120777701079925747073902408617643030602945309873045087510003381655897840429210448483689026068655261094081552265024294152328920883043786092346720276685395121939639355383128717958903754684700847872530436171976181570881726703888930338148322599402741653098643043023750414586946704417491277197889378908539518402962195656127647746815642142277359379419317509828823003169730430348104027239299822044183550685341951861654895635153854819020218832778011226569199874589627242787904348553658437770160098504165436306100928320015661863275586429849776631370430439602649010991297901296784496783280716616459403847178351167080986945653261502993308129275938328578164422921143254526862474837241374281058273590910338290809707062755011046265912147747648988695611719677865491425037133988466130833575618320500282667541105254536645738328392727562682913521759576983271849826415332408047724236331774407533027671462925346285391150130131634774795599429580295116821924336201808692439729373953671775111725649115540828327497305844638999400418766145191078484812618006909625428139948692744189217289143789200230334853762521144560659954682347651379164226150860112604196696341196942338505604159945695526255064293184830544888439064360026557837875678069541928717567256694448389451687978628437505748796995524117937731312671267800882549273187403183982879230870137509424755436148955335613245075948830429173913047924942900566281342027873648019072855401452881636184922416454017823403106943897479295275646118952463399770041976139357624659944348032217662174401986517106278463430475911736785115307660055042929514161411159391921304623568463780948369309961895835195695833865548622402812808922949878549304228824337410217965597377590908820302332383710147838633525308756664197165598513154557165320376147640778420496212234921412735991427663073252750457052247544718536798723220304553261040586201937483441993433985739823959000007602761951724400112008788986451635870287117005144049193665066388857983613555474909550709278086925417114501015850320493160445495973574728335397029481895056880784173942274893650221994540357847868532366042777549318708092128995112012607385807004446327306933059390326274877818251730116589742762754425012963834606781579841478809392757955949602132514517649956920848585490030817130262173503487140942748945554201635464495757738596891465037409479222009099460737167109440698933747040790439095411147279913402587023188783193064974563775477679393319218451933511990735972190748478487126489453083345790956510305164245526991487298833435428542976859957732176950796968946551882197886752135823770439064923867382330668097207696980558630408600422482974035827335844499810576524138084209425285728201952083675048203122080422257807366304426530247099450752769687329466499778230158576437945086273341871304092927554721178001434561918567189017331802269034223912006214786408235336915952480443735601234768058710194798333479097677325032812548549238559816299728665078242711860314132345454351244693859871742286948998561514404208649003691099924414250596651976694948724524769556197709980624566195498000317140424569498315346516082421045847563860978666973280227406051900955815889038198194711956336388666571633768886542237444324663225124119633781063842276984788198048852178065434594745088723636256817220401102083537688986077354307287676210834415473867545758221794723062414782075522986815769658452268407680412772306496880713153613117372457754868372211721100039402251762626996877191382141819077921720923053419287323132125872000612702728289634477632031146042931851269947191632974189767256435696210596396581112123493470278831471029228311816380858601718884044371359478950332290335671362954094915277689474411863905476653209957327408868735573965632191793882639694692793225715279194522174697974158672562474999407595802288121111506916374227652557946890228333551295701384041852949014101080531774697816669132151063409204196070029578298389789915976399099425332328555921849643966608894640849929294781295228763636237010918674408586607586278458846179732275510793874931510255095006414663375756619799283482608143052200183693107193905078440752135803967109971030838182884327506724814087052928089324442336435123179190107976623517643364726054544259496784116719292119555106191086146599271935305481234048807308183315781849268309947478826941306864041264159373209677515263961674345368587718008995305446265160383116954542240791120793857960034001425961857827731977791671389436438646081038836487194903070876281740199929809346150675374482629333012575677571717615354216654875017104801794998686515301115332707390893364701191449270476632892558566248380478399436468573105048425034327927872181024700575641793589245664595703140869884741722923407545191382262866294776097181600821768900901135305771644335658552896037137032268405615824368947432552352735690150236892920196022963049103227533231928980936772465384858011268222088389037336281816797033782894503487311613732985227823119608086170284529200873016804890087025229035708982948586525692338520914353405616505883708192194764645630870838000447774726357993550716393677973387107392234268806155420441911615453493837356246463929419073469122851692215220708060439046966726854934493520077947764422337466822578139331269203732482414645871643562963529851598243843292913298192912228378174243424719574734783905845471398859202145668427744053076380093059668235660860950026800519699275495609866514363133188842793906886848451783745729907776970893207371173246103604807809066932333443819705436832394076926578666006251436211941968923198445660137868264385122641734156221940653155194947601190753372159689682610995116630516293921745061198816686830683754076461058530929129057450501985342524821838370463598757851282426757348305586184773749397619456267754245620087266011495945663889742288613231852744403939780230682114468626218154032376565236417990828048997862588318903776861166528775594890475747746759287189767651107967503518011595875239810387980358215253200135345070215242559614463289993676704005938829257790064115208064924449980579490900953604997884450617114650900886872421702136455455229528345430105930165217162154060470842519855806300127929894159933637083095789588908073138012160052066929188307826414436387307871555208845795466478755574038140625140168144238700923527702806468648387477240870579215608048093139449604281163134411765477476270630834282986507575782104291098154213663845107010091455431892315463027739685504582981785020125374642066096721270158416028543194358352676111049043834520278471210950090633280271668259241414432224454556585682289231926888913886123678874346294497204805683978617601899911469042170450573201877181586652063314695989694084913994097765084060027491197728015155149048086793620092156815627755549946060136519166005849616663009612800889271249661229759324274742230201340399926808509487624256217135671000255036859793408114185491872391959740921680404755430123238368874431204855804497607718928020505171655126568158600961646955925561583968578582287582946809321703999420333318757140987262415669209855368835859252358804449674382312720538395284255582803001734492126472806266391103103817906022172752687779849434688663118939903815621762377931097599974260770877483744313447997124541300835468222240335485885009616589036964537173608283809799170939925251813066144087629700943751182357311690816216250946757589203726278302223703921763188401013720876746190025377872296610344688860767012040412439682392648811360871137842293448257584087380189348349552923970014741303726795321674320943979065414699069067109088168566996449045273489279540422130049850864509055320325336559502726860455775732837700486846956523188852905812686796001689881437328717881545963530263249808432464614131813756954302816779705441402948249443447064538924507455318608126365396708275045593832095693934822434976893108856909580899531722494736105414796298022041752598571105828671303027766165084395608479426794251998289215707322243320660339492993347269551230798296758651544026161042935803244039489147516601697443047708693345847456601572679989978955018946736599629510017138053916007744708458026860526503281822140531264112004403728984226324875961156210974448481484239995703625635599595934866876524759857005671883290775789619183873215317947758880556521983318865547923006197869982637294558174874298140027038743767109760037856233379964034481945043664808719250352383803710182984941905379099367532394537478764096750893953083947872602881197865933497947809423827282230893882051621993382418032868342756704067516992946857271464421434020451681523337048617886303144003457615202612098979160581343378393035429501410310811121193033070299565552184978315025226995357401891671201640096705962026254079256587475765898807765209657082116335645023699713460976781620463341135975970808348600298186917874975972217194796899804825445350233610628253546877051433122834051174741342652923098788599621699356877580816015195848637302772611923145759800684058160192720804796335855872699666203396955057699433409200806250678853839006120568697335031178406724606447770040925346090408352848759553708128340524440527306801273144476321020852963024865545928586732454535626541156639292608039589658552301258628959021770644043787545700821365098077120694762323678994745531823666395360982709114225568310267065806634960325117180064663717365135863081665579897569557104077945250977519669397373966568107230091889152237829672997664671252785681898745337249038845533555200700483673055837676568479896613044947956834173982247818631991583557863859942857809096121074815560137238595941699392090356308069064647585185052843463010050239332646063559581232914019584734269166210367983439067995424882706278360585915346788655728931051592765712515146951417890316287784338074058973806510122484483197912483541006650010368374820372031701525026256955752610109164581087187075257505799379321663205988110708509517436208568746367396569060588228034820304420645608457147820283401650784091284447486262588460328565445707673059240247291074833215698126577318201578848758662693781796716355610451319783457456774753401475710483359570128480660450862130148187869287354135926488451789799291364203139818646037966774436106476514674232974962081392551685832468780819941818871457131652884923742346533116270452740803284696751266871093808000326462227536992100734435372153404795484761807044648124434266699074075449642070581713692899567444216962051884075502138399401099602664931662419561294239734457822655185128831327766461113881460459122364028619854419326134627259165676460641342078619160120142675813916411946751338597832032909954728331091482872179531883593681577972564250754967864811863926946758009893720387409212129878979424097837000707244788365166827716986924159681725794585861893851315897174687926457883998516889085622284362938566548512898671818932705922278209053420519915345558591251450345340055686835320107521100601072382473960641623033941904115867481072879121521877368225333704265070168107468891529483808970480281332995667286778496580989098154018013055560799981454135613637343479221361002455619201378539669917635495006196158357914583465545733111232758630223746548684159752398006200641927929315172886843273338006538026527631169164398104949544680787853284917938454243637020709330845416896505471192895721759684144198851732419275099300941623922647280535823224585960457129312459251913976249004577893846543408868509318733867333285193410673252726349209777079390432024338485293615070191272303110314980644838908612862581201106921317293126023013482269884863758807805883199564340020061589936520279968692158228266941056237342146422167613055091861854728797880927838639174869163068811329053712464624772447761255357902921604795097379294383156636412282264478590385315979485294046443551421222096575647363500275742418101582239307190568142668704452441628292081036655346225299068956067704732619794706366863236973470895109727300286724198855055615015470988442657406202727274264589897743885953484127668976990762625772875522791144310997170966782144158532872554498675537332365273107203343364205577758419528658157286815584754646652212537646324396611837044289921605968576894916885704107693843410885342364739490353077279038389388663735866254128389942892043708474561442847952313819542624824092127961161667357708010173908819761326354133299638041293998288729761498011872376465618593605173914216422366456634018445589467972485287003561309059610181053029287871863753271450948877798552387121831922311461248393524398899626302454000418889270246528185070557925346936076637286198288785442781945406477724729627589846119619033169581434709168320796961880501242059486912073619958613293354165923887056550926029435605767995626861418028326630475204537101765498912075435697954348448147316061281150032172901460135550931485647021133006746537565662813819837067307043982313525114680622558699783995677238876710342272974185174693462605567767217622764763259388063000964221640665556373606258429764949739582748401575938497044482258691924199652372227870334129783151850156061172862485385690688552111860638899849645407662650272624929245318082480070325711482482254928479090909415190563939241222796639087201602900090220020153976010452037279625537042824694975015544611577562621919155638878151859015713670512229230107940265864637830270275392909634361653477864069892047377755729674341256254495557735683344980322683484124344656368452842714232945585598597748557073641910799444872872728623138141784068039567685140981649177209049306992955031301145639080453413030080432992423241414080175316709754830184179680444928844447577629832239529056562189112996120779055835112918842332004647414689569489828015177827314699891258282898510989412053404355683501546864186666537763598603849855774390886516692991796198935243424173629329550294808284828142292164074978125473112858832384286691001843417894028851180607343147811615755332042341653397751090860999127987103199559030104859186295231038635759909313104882564924985227568137087487347245424522870347383912928468847648958606551302829849527919366602931391881832948238604839484291972799556025467482508821063622279582438158166348401585989193980415015265545119286570567338603956030714949663508683241019943997102913585695887805892302298499370229763467250838314580569724553049710483367691458147651811354383084076730034434317767879810482035928100316304881641790301245128732500910157376945477011458412059777158645736124356629949740282433488504991142331889893006504473173588727121641001888008684528990242803463953021366006175055569584891938953706569841111560480781626846985181006374235059836696733751234456799329802271682498155967644218953952708945789792880430972337015928201878387722231454781489895103492342615769983160038388509509752221063213248284272710122072587525781620836836973962073667777093832199264012742154722592739519129026400119937309638455396875010412991680684738541488654008210741185147196544056005232935204216562996061056196708053477968173683352278895846365337659998505837301024391721640834636540984873395944735353375567487226185082921437289721160608136020507434923352197261931169553205395010577694051005922847200433231823916127578399471095239992811759494934519150850344425277165893815270027774852967557458456527903584118992038247260628276336385700846930537389735731229743678006888818834566464091982798586308872230111335455840490376639690321182559852852511322300557669374951499326189277540412634318941335542510000429693215820627458515416221964697214401818243908740574903749821111455342727399741145872857405537834195853225137423705874148561138183248236716095640832817461519762635683049495356782864982660726833074975003790762791507501004144454263246373148341281433819810908485878682640431372687797196019614413504036441883099199562771599561387401016142194912171079558648781294418514126106678854934574490301136044254113422832117759203448267280802954968487979208654580024933792356334080539914171201516914846207252150409933311620340319933123022980508663437899214174163942451038325855248933492545962364428291892922718567158948829944737425030595845146575979203557904656900377309455858689682087475432289361963983044316427829515903003392892042692913248122547190273749994715173250891042856676563760500315394395782363910845185595943451386206097208945678777343518612206199258271955419475583879297278920294985288069195745914846143790376369865437820071004028573967949533090901484237306255238140157831674267296036775173111391353977216940462080861282496486848700182926106266619506191592304669274986470873021576285416040116367403122742835353079737861088039391638490000357479507801414071432703701312171252873675788636340284281859888866516418687831989454005380379682399867051208271599346701418400013398635276413390861764338672104033774965021983439998127024155022719709682343828219724254720606317954789461987884814200275230639607883731539903381289523953467558527470115555923517346761010943482095362228752719405501688525203343061021028297699976448081655936640875767620382464031189236069182231872568088456446148699194713780114283941375719922030611458466421583524931049892216428015672806098033649293985875620252482653151631178613277856814388935037909048851634346432830902568946254618064189414295891017397197665442221666972841697434154933753544174296810846749968676651463022949448968231394499332752703702862393403419271322227383494967256970771476451291817324772328073706251182122376463833621900519005398911514598074539469607830756720089521373569765458540712633030025710614534711008255501883801934043056445936790998239016948614038044451823814224175110495631057430983593515532267570048468710124339318705681320474244656692169138160441794695331885423699195410415310849615867672932910275940598090135475566958052082623980767778947020207941392172052578578785718162242967372770092572904514672490114284190568177682664656377473455019605545503780462377113255434867150862505488075752449896666479285484962907487887580936031854070212578633673694916964988624518339397241927778800622549891568697254634875928731448016235692016968592857076807710689360503683771469220688295241970142607575213789195839968827870652092822556068002974332530543173346185353294555230045249453165911310437975616713831048352910581385081959150395409801196090791777513116641895084754291757237372190976151942231448738626667024399276191114679837330305918572483473184941653852838112005714342221886228663506324237764667735020447295989300199387301015777828234595573837749963020082570482416524518760463693051779811907689312440231056364185864359853360659133323945192392193414981890100013187135459065520343803703349190289061077841264989375225980527722505805047398820075020780437378825754383531612994403188879159706226635952202084850016883705379712487693041859339245235760466979283478360599651083279361649202542149803452811150490733806302609662305916785826947249507745468066000101784379446133748843086624315581716044920066731905431130960860912299343253260402731706532557681784272635780882669488416964280482149145659320571085535122805256289921139311237249776152754861687563067634348199573011171118132426703852754838997901286319224086508227981734136489331184391857244160245777569816185437622230319752652027239877631141139043701675130276518031730583563966466314612636362727513041708772354651913387386328038381877620838207935754356822851693667470142627874764055296179844788969942516088511517393232310343856544928391782735345435970074121313500699813117334757209351878613318743305235251307555069980699611442521444603015323674360054300530855917280270553403746046833288019759103425553956896032425543833790513924734501645752492221982741606131438481183687695728823766927764270069456703181926781916864401823282320743343949238302858666598437176609927684546367341208644112243899878901226414179436001912073690702099514829833212411308650602450813818101069918790688763234872374990802643816875197478289914674560595823097355168726697809459913716763062741456649348306546302679207415474244408688607192624535840917845958621213499534903994917972542748295070976510297997979839162046808432835553478207998035194909277275351757499108263826767577113229127329651534935603463702007389370558467689416478143501818294218060101228152611115243538790063823070838626550682893606746704198886331702269451304950754452629170944802768099621923383789150843349853506922409055694625239410811858673137592062429711197139243907101434563345959615048828709595717849217953601021482584751100193640386817413761097535344635257506076904940174454661487765430263850489409397940852114936670578277359725061328512551229869267079173350267317389266843655463541484488586942626692096571579974785341153145334531459449938954384226469144817595558322946346378397876111549867957625191214647016203286930044116621313379943614024081534739720414934010529909214453477777856134178875098282301347136221598013744559571373806445303116705530202737899203451332365556647703966426476902501267852174514991719246626550309244559249183915915095956510226642143301902915425518308248836259507917332085277538966637819853614722614585983085163003679127119844001655459898912804791904238128571053430805659393012101586403878831505326970040482335755803696267104006828232226801215366447814452110428673532975208182150009965672262315543959333476335400372266840049296397353338370577159473366978435802018727180748914923678341125708714615549278459056292361728097829367934840162409074861122777703471223896170901627307356663612601458604195167880744498722436567688315973716665675684828737722324734380167009317009011969401798385508778243252904303510971706946460927530312240241653234185680699160616349677555115516609399171935190120198492399377503331026020949016996390851949700308681680662623018613637514072485729308020150650735429061796271023916116669467911094744311355702974918831335781755372134153988203888582742327717070915038708291811988414230566022086938913289696862451295516180263821395497424665717391488606651124123292999589591814814941453922868341911854876619852605986344241462778113794367861759166565466503046411918693416845701413461158301034107261939027027937511318809958961693375413284597425914051787845221198496284937906115084527040342414887941452460063804515785976899081496269546587295333459316399218914199554397749392181533832083046163813699435730441002322970994780778430302385701721824777520054962091983672170868383305018847910509875135607429215963889317834107605290812575371672964553515971487647297484705308317284641406792882688621316929676186131130745117717754285670044836793713100822733345208722173769073331827173392403089495990368918298822601132822318158871448852615572052703698544367642564163541197821393613579195265161260200045849757112439154574822838945505489285335230482681444205284566342556605074350629239995325986439926570071331418955351364349132412232457977618072001600356754798679486460391478597914478575413009507947577022262041170605658248606271456136517578899816613011487316903851629048923934965294302773574930017887485375213696541817315642318545199414786265737444395249240493254045922663836232014574851003653728871039961999595526189326204588589057443984396055698231700799202116460237041342712277201306586219656940340144857914612121833182815513040573495824172095369479055082265610410407027555927794153797611282848060030043293177344462024670344100224343557290007684509291812825455990796585754747074897708246535535138899983591756409536677459771706938959595628846354112098147023351748796209046012328053786766796221837070573571470132110724596079193689905926270123391195838217815576440684897570888596891734280445906600233261156063552485592720971980057868321538093489832637759749424451934233844787200898747012500636054488868624541469275618027047455099573203608510930374248879813501226489224274240461125435317182053264405938253867527780992591683398529604557537037157000566049635156948780197730176368525897548308260986888402008788824045286944043260988552218044381632036058308831440332194709988494772718404814015040194887268738653486578645867467949140308422584471440845122746719108078651000998389764910918049312598202258755057335462095375991822591370378215536890236824717881495702738351537559268799147746590714586300543471963920856121161108138083293216254137057653275658799665035089084279631660382141841518450304686616971640979336189260827779795652603227477133502310725805976511242631068914592007129983727489108148650833875481871286415663690054856596460311394604909210941612025801764115236448307676617602154935120618532809479290726968413893399026915829488879235726909189007740331033637627210894722776185125124481183450624212763850673036471703890445440514968956473727813061055706372081431602226820537495500470070525939244236843902488999032174346035800434485116806495478974711770906790528358246365537703640010435199172995597444315907581269264889320430583883580999018702821438265548887842024248653615598981161444495839830882176855757901479925596782375552280480374647003712186527177199866683731861034820573037408672602119547188120778468711104404250174640335800851223751362757165766975958842144127188069513255650978126052353599365061347705414169227166463092586424826025315349177757100885670814180645330579568120485570128516223848959293452563470457138837344513616591834224743321851988025883615415147289732731097248978938253911069519049941360233106006176909914233028399470054600600270600559870038329204823222553171200550263312998988210984512657026420856868471818916463299029277897543147166149820747452816999650240518591847964272149149878140536950246421510368523020186093520913500165947811572373142596733453467303613956243897841599382403309778866399143240227834041298558784827988577235636389711613550453284512322678796614746942194272350218366810550313170006142834420325614825072315438551314452655689514682571780411144676647275063461924220036537240874575465505334632442694522197345449701247594550189315798469766060490534608276748934439662490020630706007659720431585348941337328870965416614176064638990078884977780105417995045373293752690908224788227113041579905246214992230649889056816521614362418788246283465311529924707441274688922912807054405664903556730730265557235616117411793302767810428238347020012402796882561305234239698797465258090127823106854887022950270535080238874161610995313304997231358852642339706306052385029975893447018432770034802455759237665035622697070887874590964298183542388687371884052153791266686394306411673821085230175576685417385728319691836639550141891420749042886637328171552330404383525406309192553673878347534100515076805475113976168309973202865234506541764966280664565430966245324124101121224575468666232441045962921855901590860811105851720244094186934269197370462680193119230081206878507059245571745825059997349966646628178350466812127172845887113238808833884404010651739206814727353534196080967023836875665386244535290831977585755962476621967511831076827361871711898388189498224531528641413811423530000414356330061673008258399413624030164919288313137892376300749526610307183011900212511730928183610199485692317603845628645327134866915092788772811404767079403760480430958115417044901483388085654465925356030852753060485368843832790289582555864659503151123383426426070438010405024277488238780279397454361880484687935760796122921154945627086539488717846732093963535385807686155926694327065749086846247887987371325955831530119232656269961879364463303862645869307810802206503067781964847510303311933199025084038795749347665447104288067140876984266239210848879393752508681174326175763405473183975493815323381053732921453560157071866200998842940050657732677589698655272644933748495182696304618948175126455539469913219930974183643573187836969561121079957184410403577301481006693371172354336131050922540963362035919204322606617219921858017221724186061043328288611402423892876996400105956514945117233811602377211968225453434334665999500843921922009956192806569067247346522071612637981582997408359103468445126984584441245753885146879362573134610504030577138326254276963123584453394955417992260615797112063474447666750192734753031635844425037766528935063275987938864567439636921424494497723307820840865084971154860722613078722664940428551819630154947541414363428965779322841023231237541054181287791644241119867483695945133756585908178663903451133396103062754185629422438038857702477572611443693043804507602395385597035302668768155309019225024074814521785743689047177560259155947966224734997277237147316103388997127583674858630579146273309441772992221371182872219353342300849035805153290368362080753525300090246499684705558626977645971494935182338409196652550420352595269714780802775500903682466845933711368152785596442998379347937430192222885537147699802533755055886438313192335655273533004673585789550795407641866050112204271345235724846109345735785479206518628903361700748870255728864772627707623956150286204606661337779113399551441190446811955202292502224916806144907004325084666931121163421301186978408123695302112363176769460429450004080001553412013122872666167340870275310772680479503736437467668091484470077169071744915440416127399525246141796900611555820748889401265553619998280167263448148161689286043119566615312244647595980407476328326134112887727064551311284714763830603504418208713395685433420085472236858687570234868184083373208946914879578668917948059460468021587566816585954969176366524752906262035312630378110023714095096563168706007816575756595879949121941243135232032568325173607045827639309386928098386809524519608946626950799438959873626431855599851237560372828788273933739814462936982001823126323426439141117741376029199145832284052127301853236818482833981046539619401891401093054209597281352552134143535415037330433708269181539305416643845999913967025159114881882929249972451524693114044162475599266536314982443336117093072811399803300021746991396913205443568413200333586703986282653241217535236919178272583045764325910320732503225539889476293555346005634049704615198294087958807226710105309198432204476443587015080618464460815502512426057697509210845651899115488738375071801289141910597719291728484358812831351028183872570292664798633659688671740991997350480253536770566098130358242668250893842469703082182958676628558916878394777957350727588530631462348464987060192488490402487828114370131875800642306110281657258821346916649224596405978408413685760091181409705807727484232627436639423075588177523375515438070072622238026024470012812587503854064217903902759722114409138037086332664547999305233770019818394501449780856040580242511001992844996899319675470022964316660448637273069500290745974204182244659627887024757413696614021160910471291961470593347385704364819482229240015430056954647233085689588879967879621733093000504108534031650463090772962097256582735667553635880455639283437136517418766147795178530397455977204669019398583666190091881549833540895236762134977293415774426454509236841557964684789096434506497587941076088014820653565932587576729217430847177758850309583049459691227583195277241229993307238638188172967902803041673726702958668389716527269710672860955432732450416609330175701605902706604783036735278809362814986456237060238520271283492789441504736085796369377306500180481822983114803531028269613086471068509242205077707454119054189790456892147723494159226215944607036627279410837117993666376374096792847467981422062935900494206628396592713480160358054512063117708195563516616736524895898387917353852411711248416070361102860631046462087236903479485644103647780363910168624057556611411549342029073915876910602479700082149822227960746662383068572810619148987711541738521918342423367136762237620516197732990778609774351995398881537223618683951676318804737338712778225263777832807565244157369815124097120007438317971655226462194528376322588728579413764073704324860019815347609516114753761008851061049090811212683695389450582313142357436009663284567388852831663432578807396728793099525423350188377260807147687916470835500492392712441409440439414640047802738118737935125274825045116678878763319201578787695636964472301259602900544545421230106970409242352853061736928050647133687422010150542587951085923393004733386864071615323699731770686485473026843379799819166253208390353376134377860286847714490035954533679770864810544661855761314866465205761041883487658175406102112319214801223303417831197499274714145985988861882851413779639661435140514908378513791069466578363767065868186426045070743085178890733706104097436457785906630813232581820031127479594803975810440812885396518074341234926715454498924185342230952014629274277016555436928422891799034666967607717457410931933627810709116266867038715428247719517925333094849689960806836237962026087486926108434519903517547676796084920467981613411615601059017211682281750688333001463352980689412709367423214455260962373386073724814745146131409277518880878223854202231556098811211696656688623121111476076395298147860437952222944457521168666750904176383099462995169878746244987971292472456761555613758023008310502726762003218780663154426537297054232347318369205997233367397814039522046943274124925020847368615101273685280063114442896395988016351941400388891004941797001623893037643161693622119199651701832258384345285938164884142756804456672775183683130255441266326905255605855259853929697376080449089623859396505429446877348043711135803927602047818025876771463149512397778518143158555117179899801460189555955531933497906119075375454824951772530560652295470278127230638117187301147573162231840311120390005020272802954095134043965725513581226762972471363344745557962438599570905089599101390839635142912577003821395816083903451443035344177448337584850984949665286848323685328826638700051831818518180502519635506216427704212466177448221278120052662301540895493677215047599022114866256736453909088605660987993005616471307200881112694905666299519410753593265477466244138442662957611161519353341996603122428060404366635497957011489847702465832889722760435183090549917743624092100843599175921960438815155766925565931573601924537217943834986057594138915773594985223447116189219137833463378087499892657331390836943801941438373502939588724905622008000119655659593228641397574810187499721269016216647214663083530210129244967106367934962692859387817405821159621163888557442003159182523496099399514132406908223909173842528321677269863225401743743390642910342102681092720428576563283709907537613930885769232196483460049925863959425030300770070016769926451214465316011781840342129774746256186632049810210985252734977973232808040574349100035688748206428219270139283277598601153981575017303406160571418015884710610248995585948612444081939542873570617734498409754494413621403022693144431311217930284782259079623609131147365108340200862576114159124991483068402524912395151460137766166416821492231158977978661270897251927527542292124800040803258186891678785576910035941999086330263231634573888064869404835138155073652469912249646397143882177043716148359783602699589296495651971014034327876342955266885441696309691970975051075897235268043954012774770646791864308754070464884750602088975314522531958387004744780106914978430241341733478081250001257894694341434261065330167953750026921141775610739652986265483375089128010318404263032386850427446879795266283113198374806718764414819544399808144717290647242115879981040488384697480407784930982452373530880987484350951417444750981544828341045199515124792287077378652417000721588816140152373254394046893320548321456356739707293684130841567624538818456884719492620048136884028160862576787942182230145535410268045864159455231161923219537989648145353779050034503120458748777971571994218873376763069137156835422151395376886967544212906429600888335396840941333488106260671014537570830721846766663344287428118430793523647396327548618320977820749886370184338159504689711727728752508742017724410203036260239097894371601220854710288423685047234996063558836717941318584294228838925881413129026873510212367361568891388599100075861420618568803131259343597323574760452595921219862014561989816273274716215461244870583154513985947577360105945428248619974207303014753925738660857945188650001957009722705550168843817643455929254723553487484430052042513761372631788581438124376313738349767566203242867884024781478360440270249535601864619896076908868480480429481519843402277513026142558156117186826451588244564923332030039533630186058737792800531745252171287537054321145187977856340463465303729707592037287005590671489711381837037893876972581477790612310132737107986561119977017335650803660855573587400382195801604304579200187008511349571112399531253318538183133058804829924748929248261596240009325574509627059994711621056183519438500958476005757387466520676980372909078460475577335476242574800610633812068802317812828208407517475004946854778787244210506011632561517907735791119678174980458427030956053109820475770221427831046180785699976718254436886154078422715627699388492467812483538123195254030499579760906504640879583340309593852628596508910693821123405868167646252152834431835619950120932354406793595621168073056673552749237672274761426357920688169082534239231590268789795799202048930434776227605939901446311079169307684776096524617415926868383147863797262193925133109522384006867359233070758190342945656337962717552825640442334201655174402119062853099388626731927185238643399516833840176535321176731255018756523766588676581577341035470146789290012000415926205464274726172572699641581133641746181349746801226181795854016967956411185743395944917689930603035115528403068995765262325172361305536429399434391214881001023489245768152522990859980893097415778992126425072401026183814063810125606348851930207799089369864428005799023087759051846683816991774540683405418235887121223827644594678234371347602360728306369371905920357105733940342733706656108433745987018180098719238389041807969130436180766105492645509738627964427510980586004806741492429118016576217488719106433603797332844150456091648393900752033764418251476638802047466785458933676431699934529103564342513395769331279352096710687723403787767314974594454951871877880690031917270457686173493723688324282985267221038388195415421693855205904368735710675337619049741634418282537928614207738420444254344595429881154845562121856752305510875104312006395481889545737230720065158238031151574064554750873383901384590979926840870432656626766985970826967977705254574913301036781530749167541143609615715246268119162311274512169878404460352924456688907780746679895793213941937701870537897230368426282622476997785088840679620954678125904293947338870196309552219898759724406718033318826061388511792588274746018487740957770620194615674647712852131105950409164000902518390222248847598675478290223206447670456737333106853668105056793156751891326983649927961545755579095141950992589989297951503057071465529476427754483646509679800495008649795560011496218209771725248916709751716202924172761100087521941936250038510882346572316251175637788131150005317679985538770880499494273609127048588266762688461974452958580093460488625409512543672479180729809389613130662021419251623880403255837734912464176298750596634719630537577198536110961136925647890692237695981003300012352506381278146625020042509963722666056029343919970564266677113926298279422843168437679606457687235893924902710370156598687872083205823225602298059438484138733020781024984380022350602845685941760390045976211405514599436506609966047920877628281882270671792963583702511898466336236508543455717451760401709146225991789299947773614912371660531830164282100338501679234803202917610343148932155675106444534759047900655014737600247970840208373341956390675339254880638966358190086270728986149192872032688140398939149824312358206498045092977989268036832081768691012423589947943372947112487458511675003318940409792170741432655751907302704440333832893239147088449954366526196795815691967124851540463657861971421081653956306726496371069322779792868544373614533643833087788161535001076828353008173534002689688778142806452845457315175170097447419566691693312783725157114558216935293036630864117145745682165749890703683117566478153743378203466974565678586323171057964579374946258362687938471509486675596859590727234135389884702436174248601032639435888036666730981141249628460985054080107398424327430244278187189900400075073896384352356484310461408626092102852573514689343243286452494449548564767801687404188656093238647111003732128844871350327046738153320798847192200052542422736051171373067307581677586376639365188836622789885978739471646110757754470578546643173238169660171205434030781137881102047221691300453259862285579919589372797577272419330324641802494995971404783862248490514245778191703344202140424331429738079026085961510988588655740762024659477027318360788728486757771866801115665403804388218250390584214587123130114064414553954886359091878098584956452567773782089601384290633435416714314941480264923828485543763208468818456527050236264243066415444937236016079436863015980763395777817667394504457759586915495927367497668761872556930152946469813313792883734509299909140633901448866239355418673676426502391038064233748356311865478360873929483053673716901833897904186523183996096789962261068946945166579958595835243489555771337182637871104426006708608165340601301085699245470889431452816357518575721081432653396984927260596148595036132384724497422555973145067603170076824771959132609400978648868683129267833505849427559918878641708842421411734951821192004228551511244627427657918203060437684113018087348212158469597007727626465103540046796384759486997267176650650595562684880873388145509788198678902835520386884656577840321802349355759134330371190233745655784206362714968560718328189069037714020110612502400433800226229997194645416683257766102242075934161291916663712592157568881581384553603595917705647337074469804833942422631259232427797031990916203443892623267548217679979260413492856615800991047127270409396587861499926891359499260155682508670466363032459894454128532002330316146824955497801200140640429734761462378818411565582124316563371997713701769025384331919267207905068709434241917529395670934915665202116230092368394397485401172551270133973245714507702926370743171785355845875241840034288531919253366324368744532386830087006388425355262366561778487680794476912694743773320291692273783570909418724686374977919681551742903113924349674830863860806750983883208354363378800622269701971121967331736782431110105319246141098180283033543452778967151393661705470545300247995356716026537131982282759501047169658155958318539746750592316890898194263833110285745422205890611378876103492887015218878697619648054152816527613705857297536872186988837340398521605216031111996737076814741789868780768213686673342678639924474516942826895624502589138543981666491944299118139173893514611588718415684416192939682013407349233076116289870136703333241564565515067774953300943793821940730713402972281842981171851520467723013003899162445312296051216461984512928179456069036363349090506958906100197055807026614971166053909542782023030947595168820916850470572375736651050361086197578808928158342113294470981889451127512608091410718202425310669329142493126402347376151924204415311871677918815027092771555448085717692458988752232376653083198664430742245650703721107792694776581847503693405476270145945092647377106769734906721233765063837532706587377947332798093093894888000057182830658280410708986838365682660161618247178867834448697539587155748556641706549782603361912944511984767610374929923597652676526765059739865779339705303153004172980171279622672808655751205089609399260392792446727541159526706462163216793194443263178913161810161478163568137565014878318464915143509222558486226471419556293069497525658285772038398668020834144897516205736659345904737820115635152165207165622334070181860141326482390538265905988830606139531856983342128846236346789914548093175956916009925322370780682005219204918498829248516864024232202931641715522547420279541616468168009772057165608198934442951385042577574662692744603358794754555063154273557713808542484826427142274512031515381058825526017820981437590233600457592531918743137151077318294920443393003706793502355565579404930474275221783573107946770347402394769537317814103097554484433590179320277580813936490492616145874503196253964169125152607634921106769292790828291897187918422567647896551374543279500751594622432732756922015953517675400896601684513063363500735163070852833687633740243476539646077155910792988922057604655916403699321911004277406291415780135417085256385075475333723832840117326251550642767864399631843549927390505441438592277883297944523036812887729506163000430306717326440683936378461325012193970689086191991220462053288948915353307642939998119282193998463581099051263579230433609404132082876926958049758638573510037605779493709756884018168683020834466634145504195506155087859104896991442169455362848894438747637909883679206667976512368072667277410958476247861332920290244639006535009965095993604655369329753805221191303016539938223772303796383727312146912556924496124788781783843929276204464242855029877549335172707191803890890563503942936532549092533135319293717367379017268512793189724693168237718489348249565649850830083586339269214468236338379972496120098300911549991549538702000176303871012002666995878505047835493564219654884692501756527317446454675659425704956829235387158743267202894860044029968151538299896307525528993849877115006188767830565415386015748407300380011685668414848253398667086826163226843282968975128375651941943922168241045512278108499041894033959867479514566986410513780024328199588249411330151814451587829860625120422527350184890238077980854358208661048476296798110550396667182266049381039558154276924041145309365714750430980551647275746179517861333950435810130613106904269912117544407908771773291088226770002268961852976467181311948338206338574723872167231564314101658622742370636368852209186613632959630410977011555602620444069345751505518496200589939366939673962007082469890905108596055801654480550263333249763206854827391404970404613269628795082577029975005908159724881003723158862758378690014622588836674494337660164787836357072674822562461127305761904710294413295099039362280414753684294545555535863592699752029581202886507788737184352179740156668248843377392008782482406111718489076721070431823757940200298347740889887272696226569603690577603808438150308191102327727211029413144634848963751746138407865695180645980390192680240922274378447391938508290817434650212421020414494778204279772609112167854751489171655802132159153061270059430477003308881179542392427482159583680928567422088684460166818256710153578788685693713024441381620772963594961727743821252240706828045334079563083285583329406261208374016872666343386211055486763399422903314352869897139009842177083731407754684740568920078302687737714780103096793208614493596796016870769977483382593568396232318575063390634972221037011414420011998488112501305131462711062836280292086295512846942510697150644658207955377989547678349792462372909381530005237353301667292821001919600132047136843217443936910968298126160440892002714771986751989997263720254992810670518329636152646836402739423926818759807788821146350170286465802082250985383767476943678674958595257891239564110360847417273995701653557570886604695100098732908579167404301297395121695241428449029541224231721698682815243501335609601339608628300471012295167944694144955571325443191938872010738432031828341018023832502176013854566156626179422859552143025222949642511709741945305202718227584232811383058536258337892059501482854283612007955211968074993906969949052146249812677006213653697638356099431144070428623941936731883299369933167527603441379339480648584077678872095657581000124590402460812183646230300831711278981079305713690894467219183850465618513925692318049387639102121340350855134470530250273365808544739831392547307888695206538338100952121579913127684736664917555483936186210154204038873616013558682853230355066240133884899122411129603219729134986338984959750943306593059050839730572454704630298182332330185420975059639963165557769792436017274084647231314958709673339659116661707305882806449443744075756210533903411146769838616285315681345140709880284827884442412476430357663211958026214760073865360952479972018464814965469467015939072159279074680420858267190725973848910430593210287533769762909439696668774842592195121052299969239162738585240439311621396956881193735720174490059649892303580671111739081647327144169558125535840744953734627548349595418554411500003218350237176310668224243907236246717357278967006157270918088327813270505638740782064461040663962613942923188645745218765608145712104218949299447931866792859064870055019485005314185671937564395710498154847832571717428066461793104063540912080280212410159504127007082512599445306034517621878101184954263416476089865204344170295759476277331457862692916441433937205199082147075032268084796539428004381816600246622960590445050861987025411607520870219610377017065632328380377987034822161671084686714808823518262710160418900687356237133713423238577990516601127135478298438788378892300168593496681928517421292895241113810708374026007721330385119082189596838963225700568992485555108058092786989438817388812335899362388184301995173220126022598378182922956128932464169044123983794899773524478760170413659600786640904163885375818475145170404545547904056635081361416503162432837445029490501083151288801748127115683917993496613074568567307696068138902283330656376783320460998397298634163982892275512771030757979634626450520399707103436961638651891608488368045872577224564221244370982563460201024633430442833205382864693859751298680737323872292654387582741068504215552491160081714678518672383016628391186679948014974186119346425603021778812899210976050278349069656191247356584113221369378455165801771133379600596246719838820050483214543218895080384454890867050327831386451187176542297339755997564018879722616775766731532036080092962742123619985036109711860136186922108919394389431324555986168007024365614225090388804758480344898186644437173886696039123575521314850455511413377259454506816606265131048797551593770364983688398804687162954687508189096567376477734964160548230879380988311893687145426910069214020231277285835241480586193145019337927456101680106873360858353610452834589971960687384334155817769381891162080960055286413172061587520248880417377893052077074020312182438364884576811088707531506206844298489413253380811252747003914832741038036046118519352814846718007281990588428695165881067159151012460085786484969854064911805089855615857987697053384111229615120909904551018477905173451114508961194667727899235018751233432244281090328040856358676276075974280676403364208054181344689318958175536607264038863931400283635107559179292881366301712010483094873546728794289038807053406425709932633393784255166965555012404344601142175432166136411673026854600112367246184948906823491627898014901861439721408553667031291924351189027055943991632211385853489949383807170863034866450758247002128250601965517579414370229472187029081142072465916508806643682358582606765004694792582410133911611941032598983267257451812333245058898300319678308799361043355481218381857428719499428803456987733906179619160476163404966309431320723200834532101927303456115554988540104149762609094312157481057849485763344992498139908828436656515925896290645058558579259871244732562655072601520043655704984430074279776852390778878878791353862955708832685290111798827123783804695488954448452109894939343685638651736227235700348818303914251470004737979420541622537882704962492115527665715377434328723546379526408833538773342436386622927936668782319875279871698010551609153888689474505021308942928177223099796439771647518016693680821514529732744459890087540290300492042205324899080166836893122058663703900401091432571720274783851680466074635954625258688341083144434915795602214497317590670973059308249774712617575203168283036804182803566024098393663928517752519483434709520298594011988983224784146425168487782031795052023192388208615447091793966140233455286538249302688748875336264266444557138013056905480757670803604583401656470938077370512720236329916579042822565227297456806328074383375627024602491012628416896917892662441443167463499222897092566317957151430866212675213516497671678896283897270684370732269076523704213007748322686717777266841924805403567352678853143623627191717727696254453470549706336399612491311307310984748421529466120983505276603733803304018817137630897333981038364221883872119851432319069614680204741984814427037390677623727619543868898528673860747412029887164448683989987584809640644118940768159750046694037385192729859855305969873890245221740183009764829355522259337732262040713164449126672451644910695315492509905930406639129131056040994074675818868537441853937672176552642274175511128719475813173692169901044959384999339025150146942399910702297649074796780463500595842598018081696623642368271248284216041939687026616785868451926195617831127562458684819985022397374851841078944247761805645417443315496993568062708106413809033511581324744283239179337325440806687118907342227492283676653838029223902359829406351078921692835416549170758994844096019252854322962290928901417148562053086387752518962780509826164701351736104343948012739326384197698317730248186581926663454490800915269508670500885540298774676640905212652099827189830407651828175746924639715716098889366907469660420942680403859656032876332321604502711952274643459990390782532962346540093355132204865908605779610835319240279693626936183808138364725839857363917792738320634778594003437137782567350020609104816892321608099472643562033672537549302729880835628821617988526864319609829953664449283811407529871097288483390863487598585755530209889194261161605725946592028899893453621252811746812274684357774873241286127328338282951927940960434419550183720561177966984116931649898955556730922580391108884556162193093121175192631149348459511101886349576622180670134647778188931516495219462793742470878738793130468959984586648790578623400649186292727788044130183640920622891258495094699253340917908245752831664988935274379950254382642990518568188528455295524915199327230472677107979724940578908631318532273699750076519357024071622446876713683922276037056254096823230501533145182167899316535315109163836957149472519778773188464005389652744703870490884013532947543901475713867468026895958031149499355463895098985290992921435279023151327038764060715666538319453159545258057349833125441988506400136233260549521958430893819171028538898281290705499586759041886623683886099909046876600080138889009684505507860572587814174573557612131223819068627994140630182408419325750856870436623722419901948111588201301519318958977893618256909874737173227673131339886131371333535907299820735094783780275229588909945732895948374226357938455696185154483463594491896207141390814034905720989794244770469092189241020844937963505767844982148752353672623122448571058568401126368373940891060603228294166697533591564287097924493280024251021284792710077814614857423449356046311138673048441441643928122934591579540373567243256773356216594462108088476380378183365017902254174069853178394547004254667543114399591814273740218278566149380500508658242805537826784363702819897200350856645540547285708165128364568209786240483216028469573110619354836291577099002928290408715188773517138615770128633836716409139995642752706916725145059853370326251336461633148073555932781564439406600167792456407090507049945005700130017532166166163122126157279317849405520175259708168223643807601480571836052356019785002109612317805100513704896450673943439979330830145796881040770887577858458390702345377918251258258516255516322365825802681354402319169364173398713364063739098660937676029102387627139901386085231668420412616224527905328383418582342398696394851708835208938298829538412804979982871744326052339063062699981623573034986954194603379134701722416692794755886787805246059850852101504125098255171800578258326671654677921605530076285309406338326389579603219959515691532411219135089772167403071058494823282445562083090867051200577172120986080280743627292859869386147926928026780926202680067322217483124429890174704555869600046531679125247361541995194568138436211579894625479847882001436401047643791716688338689332536691420155825064940071289336544204884707060871607283157723303695657878234195155266143729629077665256018851725239507976919618428957207797269886214913722339725124476809711529301555886386103723813931616093444561280188831038032950263825057199304488462181334347305989115746817121814978995235149757985908112940399718828125910090299279522137463442394432854530587199320025625558914203417341624576149519193792317030423696341792308069033728351432970242507383970093573999201109167620713958293832406515037691415045789435880685312624241419246284914983246942967091069023648167228358097540156762240926359930510275859840159386994852184242371136301803690656968733061389514648700149636692796668107406955521564522355710720156053450995887057109489658503097820108765365478542311243560085329057787554251524417054648606042428219762378375046887975061929218096714799150958648286061313154327629002037043029371093418746481340952430210175221974619408804508614159189545897431623647418655066398455414073538128043959996521073865886104646597609379270578494976337049752742986042554571544023531446339741670200878986891296916229390539005456059627253701560742717910472343143594795543819981668115340544986549330440270052628815267052633606570770235265983142157315650204324310584197951974676204921814519795544174574975244815313936551698183872137839279251568437940449771553322313340725047393512095706832379630062781164340611203955190352343247768910397377158624734157321900982233803744221158352709754041414750419024889017958598857519963583900122100349929548344048665330275605944322625999484496462174572018566010841305523507831713496257938620019715391624500646607816872322444688876333849155517222323906575562028323519625926428411766392223288557398444626235719010142692426262139212115191333329578751326082149202901560866800147991526941403087341837117905181252526971909696664186459081032689656654284212679521809513008750411175409072087773428287347707270989994595900347653735079431892629953593568685347665035757238905367558724320261839611219867137600453403769177884574056929153304523104358969621950660519614295519171984620487031948314901813257708797361249858888025929927990805524622657783093801495378802146785544444972417573430217482695874179543222027357687985309685097089302372064208014790940278798455610677946478699155279450401855374129848216366892412071354350773038386967422980171155653563867309516345604114190619499254599719031531889293740793137582513264563343604822409305544027153749466480682140067009913161639897149417708928720952925773095761802567839729395187743667757576297107890156883922766809354008016096955468864692478462377411638476500293933728151251530545716956148711241143888467765264668662135826296349795494918466125055733948651637536513427484069400738811506333825382630153560857848663897304228081808467962840859046574106130807561914775920547284207685646883050242168102279108593645694882863102065985870120815930664317650511886519498139108463367904397560041813594500250121041742975811087530472894869991859007238196937165497715535453515005809582117358035181718697355731157502501245580873475938873820899886433632723606896215104442786894344092232507862505698064721604395006398218811594561839844672611195627627754499151727704250374048108802617987310352589678672184986091021676817870543344838784310720146320764186115495593625409542096795843190129254957645084979725642419383714568754021255648592796833191395891998381610877596815684066022458946792373873128013281396781085341150965751813698198199700885174754187210342496835624064348775612133096530084334980030478543932548079983906736036496237487097418554469393640837601576591169245459950298789504975830890424568286405103521696167180720107860622750629415230757579009515233205468353323960896998620907682885169666418997970667580001063986700407946073506591270508469320903785183488741338036096093702813708796700892825947635385962442773232487299333794725086802289453098654588403784576507890251567433741270882612556462236852233617927819194595033039306509465720647653504324559165177914020202411027582955563116342192371880546642433320992144382280322781872500035320098763906684069248665280970734500443084079527229459718012899001514646636846667393778498676113198954496514416374004806984110870594014863522189764476613397972886916983170557576872200322956298862593873947458968114527493158039438704093254787575598890015337836528235542982767580060127757712173962052381136869367268172911071609778567487190457883898076930874533708130368245086076027791127147386764669129023806380703372314251175422183262475365344896172168231440621120071033303718044193237693396116272300635506232315198864000713326941846631610983530607784637219459301164992071580594431414004482259451264085299307224538326966403028665390180422642710519539862428400377873885676798144954430807316630844743831954949892523691070994353437056509880961981896802176865276895583379295549854661046397926405109284194807388013900951574031009133089387900420406679473706126883844872327938893559420944518388078354758844420038236861356015102682443346311972903381560430132775939417920265754288608981877037690590048527724279030083113597340294538270239617199310114216999292220487114119163337494751426294476162600875096118848136926968578632963283963831572476264301551791226838223889866740445581555539880988426877054865554206276592121852631608066982773143870457979847236613725038269214007268810465354980890645142993080975207659837264164955707065206563218657682842111342594096612446044673576653323816239517989266799200768715658050477775660921390391646634647603748450741040566455850145401162213531223252845383177424156812800427347594692426331297768139296062399801094527333369907500956567142839438256182559445597896546966835696775949075424234774720357475177110885704868745199829369294403028450832709132564368108911312405352831608787617274997967861205713741231913259765706729070070411854718134392101257372034659606292648191717097364816343621918613711711993118488223945802920919779946053489368925162110817459029265757190497746695440755961313877659846659723320090967450755547992168904075564340925898567276790819557081640483972934851508471588116649427981427415139886724543625911773835507168168153428132963554921074650087118293650845412696094593027997215522941865175422856794066431220127269497731079480784797226607104535934276888333120409604700450966483723769534159895432389335477977745046753730264995751906252264689930350031311739925272377263132565599397730552645553626526183787823478285813539831710021349122629605174230575215755715907393060293241706828598241643176532224623584954589613009887704407663592190280859094188190294690616345591379871393375370023985568998040266962646038917501272476040458345770425246740872181092041525311940763954054013552098691494305818696076163219046921513755394159732213384882594031943420485181360254708722771232919996315361212189268865460764370374792342084526851853319585360318277927098455155132563099791825475370191958873013197056475655305364390573536587266627147458505499291225436388080506235549995534929573123942693692413852543712776155313008928392004370304936528430453028697217005385760406452412401671307613369124530065168479629826726502692897092830082805013162993678265021803159671422515599604382461283383825736602721050040167788167414535000925388796824387601554119167293556324715628017223381843311362742566806854801624515888149440737512417996692080594045508542798445133674079250700537971441861834466025996911418812357271005675670225324251928204290516715610082022682650868263935298144154394758676998236911832604977864980107308697294109657034420644469078094773193954874530288588735204349768476071422382021204924691725728475793028579665936828509242238230348937111462894376837177443117504385029334863907937183583644319029002507667144584019600343549251005506049612459167066430370186930716727067197147494027235123758486679900413851964626181771001580720228657939167192716972169096325081311158246796343742785526536025791509973457173484715079484132610270901559632293964674866260917160860634575430117912667234922356717022898713031433355402863374077479010386841818180061679358167564052807036333734485560616192489291011821193815785714254626275619718248356323404056913056843365271582589762332832371725343305855684457210321719913494456479814950050636933280757883154256956975213244497895233778945105151393134959144675009630650962145711522200822837134673187171229580314142584283806181667971240623277149839198761063370430097187990336561365731473196091663141320711966094520148491254195003358653235024387599544856644688133054861682237743772276658837778251488279806386299582871948845903979957138204487175801738437552288755941124965336323145164266444615670953729920165083298739178128062691729627211683851690219618959839935193342435341242200718048147360806099257864878602614122705265150421667087584722842234642823412498593380706559559668071848283006872029433135705445631100657289099306572755256620772037642396901500828991575607934319312190825092192262099334882097337669358214219208066208926372332424137952854641701857698508356202290736893640625203775598575721466898615758406864879392127778934466541621385525955645295330834783878314313975289814148582834757008977790150089441900957375516720423172676376869595147102017773260279456640207592240208959068608733632395625966370443951062599437731764002333436262344099884580917340772840430458286925226588982685294300209207393882725747893141459886216843921176370516645502577441963461152754811854661076346002806326168533652952105058859230292540578590042362949790861103340550632069478595548925745955918234868521432673642358720038839056027819967153243024953852940955724665672620130810767885362132265414072239972795214509570445596373262556412776855308141620525194746905396073600182221321475395524388678688392404302677663637003857495052715584696801654455452154505305470858106352729033579542894298458003140191132508691073460816031941097837774268732987286835285511643521898180881719046416983173988384371843358309920651410941268375357309650246885715242078033438840640737490287749738411039390549959900449728639393724993288327827511731648650513479063492248425873221326472595112096926325162262771215746675174355876908941528193364179852208443529204042825881172167245400891304749911716678020076371493673362375157335080812820179981164869676657673163950630885732710373536266976252284717868404169815855147677746190314038858602487548858923460307495432194615031330155004695996950215793050875041939297316208946646694609577162336354381226937297842539316527768850318117956059944583688277948876317771263768296750305872826076426264228048367404483074983414466953919700522156605936367697093000638108865290198576877607068292686174134059604340027773360398623557542677897876254825116435842059651267426411618298592827969385055882813298676535230651632784831802929007405662518578431633002904602945702028391998426995693955292116432945660357003873243583821510778479476614024152942802845889803492510965036399595364419802685905144864279649239602832274756594906395924785247513323554147314124477725965107933912909613933399595510861752962090332038801712776726848290749508922929716824422694373637735026478373857810071999481925628868097500013669043195902634966846859697717238466251345849259837386695625742121538424741984375819464092535084533756812951008828093300612581307556276783708046795976321675553041894272350416779891876651612788953337422959587682425575025657637504971080522473702822935751816814545475709170197175680538794959900692972184318292601668999472529578801420469439230941360501982964093581434341026029676023147032621807614405216081043812531281016069842131543575482459589605302647360577794477132338574367062907379504712027995939311350364794808832757060427952082009545097729426788300391283756535870839178442715043502369249486965201859946675730568443075676631486533380134283109986859661588192875423133340187879106910503887615303381878674277819973909288199367778381546690402777255188375202458124881134140720925594244042141478159969042017766001762800363601162068487640791464657574993944309493944667118601158028238733149463166754716891955533685725744051743748401664142397836373427185842630115515138635021881956848381320276896285061131060290706697051440187149457615116478941578535262643952655707345495017447807934474371433902932138300444782787713174310380078291709853516401041592156240321605420166902394836447321408546668702827144068131643482344572254449251744570246883039954620098592454093217789525607371170409893734632367573298266624583305740379143468114513311429627583445515598175636100189239786793016943983343066205827629651661680345035497491085674971591439492847121920503267972040985471238695797564248689709127426321415668829649736736170869608603206724094512825290511092906095378066198143067230236317276140214657300944162775590726234063721622590137952523380130982331198100443388624852248209585400194241315990194532406245431194316373470957986431159348783240587171820336230628459480229689275485446035551259145645399301622296034145850722066496597118176194938171185227869912938494795097540365123244661454322486316936039856038729533139921621698142355869051465948251427914202720020469743336902888228560118581577277648293222928104629160046649198657323970713773137632786669626804174371081293017065039780527604287510218843511358809786318649879951911397683796662629263598746725357853425451530324250302508866070911938867962962869900364981968639647783793599585199818466809148941116772244492449592046439570730019790932959418515897617764060716172625232470669077283812584356226667744819527123312013620142181282346429924493303753490009721267443440606031194314123743826908433948468023553477787658150260516977209833094094713954053227100428634542182018189062500886195604948890130662598692580659504430742877124220556140395416320956676343040279644310057876989761322282144859289747587174781146812114927983494613215785653364798814378268845126068835684732764225099355299925321501863162065529142877936444056150164212855354836492980939714069746596628493073073345939022875375276419369652994658648763590091934557449900170808519036085403782297103794733697569413493262794956786180559555232630384118644828299727839975044870459389823315780853840264052801789003260317228287633952043549189792545952054012958793636483545260219975868586543277204610693647700552382454416231023534939038132012633440554007021066168654474830427475300700526935140364339195357375312543364783979386604412093096724438217850848166966322206323263170182883882800962333597694875267558763372565250126675301111492312951559307922972203143408120894735924003232997151660259571909034565328970520181996184066630486067771342202493765711694679469241447853133824521760693597711003177474850831366452837837931464207986524716944354890724031282307035393553181718660926813905315728367688175437339070201022456635417920065554933567664991602112935781959581742243138936582159038853405888803743393158077079140627978310101642710541497690374167955604897314679708821573210232579909002097357812449194616749214212167410573265264633419061258427255375878361910319114750361059155992616686535569284850459170184435363348531846911000903992117575433125682435760347937078843846751597394564545741244669636090995206615084396818747837171953113684665892032020659244533813520456980208281773404157707706407833121369893913660258125333252605758693320528601320418383889606911651540766075229985264510023588873833803302395342471955731220070586216188191644001974138538211242527570627547535462412354770811280629086193300036238278927280752374146113229759078124613944530669825086716677840834617347760723404078216977577383394463189576496488404998774462625744629330727076203944630141700654447991207854837051877600590979567642199520855694846298045090493339576684700359764004547757158231280236095329507334826452035574419358328086450972961056648868937343700185687303150688360534186688347922380222307822726249978081003732338569732281535531304704149298540419600095455898344306270732634582450569313106486471002057559473145249676902836807149019606209183260269330603082254178689103229611945159250255700907426106946499566082669899358694047433650996678783493207332389574733562550053675070075425424650466366494441966627320258499388294588133716851082092324322600419351470135953139179696434644974002719108073955593592593202561010400202304253831895586854620315734676620631138971408873500802879088767109044095547111314068675211098999489613208607094349879470474778023374130738227915482696375880222795197879346676804518720432727291905906130165857944356293378281288923972057314779435359148661491070888503753572790085401241243924933551530268609914161649653539753467578069222410287517510797537541228921399101458311413149271262858756394273816238357742072230685454197862659111560697169980999548338467162172406536952350239369342873983973219985003823937068480964149646555655397624585608543103966755589193288376672081498399326445571828180986365339518901719035907761007159097850613785802247014178469097793308638154695311582089124812098071318203658300069574646749106669221018132063913629073123129301224165231290786096822427968452504998742353428493443332671893742319725180980548334479788478310125219784651820014297333817847698074395849760204029244220504167863739274126612123722665498891721449373892010044759167481812072586056317921230484410911173971048029570669790516086211884596369806141866959001089644772047160766949857297976532634396158172038952935889433067545070583469834328500441153329476793028978049600793273121839665448479550193035112524949382199565912931707759506348021494716474378297875608178456924828386497202193897791867921540079053473466867940782153816412585187398756132796846638224047135873755398114521184573650386694509067393323818833090311047179069528569833172288727909184942652161893747326273728002654190708594296558660135086819598642197226333091807257720237012872030829217637330796325994931504451201432822192648207471191347059649918027762950070359204226049909049215171074700346240624023553682274610808121009111899614986734942141967325002810596901896766405876256176974113682516744048295722002733313453060155816802358011119707356609663710737405336852465959682830088745250572968722783158218949767157946033681927249445502608988831627547060760590493856878365814955636428258370207806402300281424720809384834203744823005010065994507817729794189232142149195118795937803889738682460569372443775978520548694591946471119280489136732872773334622587041862660217302123393919788236033850841245035373044974299032015401811030458663149674621701965558231068465134832937412010888023412135668854858928377715260129655510631422766186558954199162317858803894040236109531983734213163925297668587511019679657224980942458267182188877080773388606780792065529602209380885507448395205569009520201986833538415047244788036671334248236588642425994177280142484216086297853827358554594502753415323076344372854523073336357214122891381685417882081614506411651110329107665297924718505184289038263645135942114517184869972585525665243652596126887683231326282999297228359360684201865906728722383341466944229319279268805632177316540862886894388690131370589311872506932781027951196498005794516856604964995182027737737567593703481594261447173129292898914561635410518948466540143435672019600507197375416780944673416089947346256510035101281737259283764050602137588535743841014169655220580287946620362174228982702415202020770870851760626944921281098653115645315334995912737004093164862784292279976763736159853744251274850283960188506731299933250064509296637652098832867304602712240664916851789085776019767778464750636393121320465234926602852200125852552233878048442609955133934220568807423172326898184035211576760962072814981772807848118453576960369961233727148693390930444603209301457091582065556067891989764795437987788053541132019224154154865738043715512090351926289444830087214572926159242942915866110196417054732432900759115211287363105326754117740398699900257275640314553547637137861966522628760103635985411811966138269505568560528015730606927758117681676901859293728256204325392414137860575223200175637511498994897009312571212388716972521881340426789572802199376362010192003303303055915910672664495367359387624477174256643488428635457653902077257098283301881822327663179872340988152727399019144038391944237078973857886467647473396010648973603387639285274515828654124292028314712460682521281108129700751443576171767542729954354789138349844803922581759934567490337472755992973519197368430189992031267917330388845117547057430580930107827702047811430326468045166995200673819845745889932981745327342272160722024009951575897551813768288940791639098458794734455837377891288469712554277155247487817759439256298459259472857393802609496920997221603266589236511325868159437636577842653138935053315909482485306188924326768049231433932061566351227840914252904273725867863400541847614634929588834330069635192203182750092986745073720638316487154176064600413411808562213960177597401616492877657618575257590592568452360792622436802227022501561566514159173683988196696900330612887022340343927462668205748243118689609851069782263846441793327737603020035583155812935191757934360071256041989147879123084435981756932912357413098302781607765461413482296963167567672823079157746043145513001239600468603269932631233840592010018182133187499507033697040750072532188913196259982932711447383577754167950343058625799351728211036158381007538657142928563738578328127924942586582220954865957048601672422492979969880733609043925704929996931166984147625520517454106018343585924408625613306160895557018970428891532529115412580447607836800085454639119457686822548688620786111195042811720106889449174165779350680969014726810655049452687494569385916465648275346369983679907231969814520583368400739683106348411568305751051933887299107373526518937973438894221089348873356548103569613151106731410430505743672834652964675432901327966678701651006836574033851556922053114559918068167359154674154601833939218817614164490496345260270854989593411702750664038656361074321672255072453513503929680931265757587028999274361244525151955979405042801844086255988767441055270342276958989795952531921950500870553483795030239278452307137025244083787172874553354645047416227370723350035088811978997688903198110290378351055622642098510607508654100620945958013966534960141689093837265119435061308826782290160829789895013647267358372865909059708138445533174313806249996588474217372735372833284737090360519611296846849757752463103652632517941556066780920149024526841591309830479798608875625907224020848186497997046822378378834443582696670714358362775401426168987940702506558191651147808908343467810723274903355989977583137515654365915291034696057211464881556773045556693136586345965178523678861318948202208865483615168480072055867678219300173239224127140115348442864343163084358695280571443791113719525014296081258900707290984390870319528703921501898299719540705419054758856338104342838860816338155743489330041995181869469215909485122167227257533575840900054529884120531304887765978381427768330505555744491746923333126793648422258152784022147412436182671731703387892895598161363178971566915928103563855595724483988376928358730988476848376698164042510218235683020717908742450955921398162931608252831453036350031873731957865341215402110086992593232379740466953856193260231746017992743997523035383999779525670103987110685071127350260960603451654531556881321708644642421546462817467245271480822760082685396758675471549540581920922932801283630271039193565622413395332116240947457253438462952430502506776532919735377414247507468640245672562786209111664702325291194590188782664747750813988105079642347845786994898296113781752609656328745161901686186095102717393043805185272757672301652302537552280863760652161005492261164108045606788151180661811946819154491383981548223505278989415617535368613591476437113000042661084193785435297400294011089747337404618633948396240161177634487455203493256515168970963037299624608905809967237407282248822021457089030309260162697442005076147462199733788902819579850264969685206009421023439058727219627464470724345366144454414010540898342995644628522451117408122060466568023882277639601581010279961275621660675139372491590299113530513938913410823162351566407629079284756419186109082277968342367020621992626634119019557933382086257921971000078177158490081900378922978505525109610879238489406778089448936923126135197459888737211208911721228191544798303589271509505884416950959630298462193495159124086412151829694456352951725475674028247059097383641128269049439861024817167277561329908785907773022864658729020039347178268200402555887862149131248632359673087368871972151804123390383585417790223257726195065959663111776362198586634805043373456461090251791340065975461457376786965744951424728329762093246813802816413931489434244608643053885091748510570756045834357236034990636133055364486296521553210668981339436690516933529524485305834262931185255486371357971409987498560823151073497255426033830076483684223917679349109483405267430406000473558004651519551758871043296893303935438152691661465018563389165093063899927437527854254066701400843725916325410645476067464759116950511640831915309220250938471465810893654093915213827762350531829274187872709480949127139214992103907028261780000709789140445929409551956322890704571309917172506021785595755808398881590099408467169922952161022563102114373716395625400981347729021085095886548048899681808981908816912820553502881023109148671263658505589798026468019396862989936022258348779436539164002612230345153278959471212817830046814728636868925261222838569733504138618779082010415217977117302257030869720443853305060717901236623198049042832311154616414415742183986122064086126992404203668314342806750375779446469741606444177645896674021215238234684122205910386269890928277889029783971247281302001363005044284202985016300655872980328422455860924584421463145652364749109017751729095274015183486515331443593616439918133367616400725914141827824838514869180263819333419446244266029421653037078579184496042487649760798184244838761773341457753548617422291526480664355507115728499622547907151082788815935500093761729121833969468641210010465785500585602404133985992799138223612056387542869933804337475125926740441460084777178836489206412212973441445890930115747419797344604429845965476885700506590364970167218282330318377576757259739179299027757536051470270723223154664336020845230527425739331943077859632724420205470968316707634856360046372069762687639326757260956857664400584082269400972299229525435514203503895902431100232009102784571094345721598278265107752913431177165818194167400190391257420812410149196534388912923434798373817804270048669490971802453038813862629668261660427362714108608050710132802257494099968189151098918914724370742250597547610287077165376667948008102481883378991612140953369174497393699461321874952347365116671129060190221224803093820192360396865052158718177877331793431137181796428909776242891272190289736479418270357219744170698546007979127101798207434577779619691131845388165005917390721289460611230676016378541242342642454254836756006607550660976876001921117986914236833206132684218007599922317575281711105299114441994424276648758431735255715746883844724301006123611395027029534557766368327007566482860677725472854986123546685219543184967227239272931759226015498879648743409201419091618836421874920014308400379411276298167188866461315079305993757662807605040277314607555806992571853528910981676904369665666840053287242921245590257669285223284118156985614776234616216050726128334997360888850460525433092186242977312779884615677301830959817859208158158542387523407067759487903163449647978750064072556953081380056447839061546228445743112490854989085092345493866777567612593488675132098832378702942826829272157452001266939875357983748533244881275324346337237567450486138971696404466413547763469052258109312732183525578572593549155040127468471459753405400281633836161889983974407460366914152347814189374265096143819198241829011545938172765038903911258091842673483704240853374841446618296355662877523666385335006850811504145234816442462048436778087213269422628192455007247440825997114004855469976558198511681390638186200100362168457767698837052995342667528573665918934374498943186196614214898199938559434415451937961716383890942738108561668434237663579027739229145565185878150627454580409822258656884991078194073451512344471109259980538606929824696048681423519271012977463895452764627851478819869124661193131722084858980396028695894265432417830480850908642539055171747794393681070778987803919759111714656814123120589328460172926435093768067430208277339915616691704278298174003099855991450216758331607163302019758137207386733424365523764960993983473228215078001125069384209861094685473147007031101581173277961459097139629813076202905921529821468941016729467489374581064595531776701276790370686079891775285451412030080936025915235592208432098232547371073332063300442376139246139875171101792961856765132630830581320083540367218914702681938897403733328457529843016787197319109791073119029907761020194193651200907741601875818289811274923211547548415429421408643273622155454291299349880486604851244597555519666093399813416798465975810118892774169999251623642890632289626046901981103781796279527663747952783232104421124990940519411359250798392666732464894838122140942145208373413391995952285610459254723572894397018640602021274443546478185953095270158073808317305353581346495016965358078238056022208211808568627228985383953901174445484848340561265674784503221117016031612684412227095568805519285843538204360015313912766358326056973864663760350075477395359565999648434835838591560398094240174353830900791687799379901366433931975642365844708322520395537739943735618439868825935516255583732888502781272647774227054642391876432366882734501733268371336680501044334239651687389707954001575191996334907254436426101946612081339198208795004890412371201821487448815130324003276307221893161546046501775155561862172391925413032685684395363583502656444296957979365280763197189628972693005731932316891140870633558588376247142354151139251789644408048940505729830940711853030301149517991499907535833070370490400809309593639217225868168947585452005872236611112919001189698159991129445750193293226620262130904947115935728389854841849368893787866833666743813193951197061405176410753974439380076278381549501922161024144524081896120976787979801124126907479343373765048405885519840538605217263916974609728943016970550628608798308246482383154008376927080211441218673410877924129988890408560801768625590993805531672382923718195814634635723614113872553458540614576684970750080815707720953232184768369670316167491069227839537741288975271413015957222756854598388095695483760152670044659019519439902815389648763250756482881659433384342653796744149151838237242613443643719023552397973304130153682191783222081783339961012568361626218039443803806503467734119932045581979811022075738448837837570580475459828264487161754618048321037385939068175526125438041342367522331692989836825800055652990588137578860200499703320689050400287643636429200918101767852875195527037968492749765812338224400153168305584370777188478327833319084550535374997297723937633493027296303959848868572078685792768674628438455281489464306824041231005797938716493402560717696727615103832425815533858295808731515169633730205853619053677482371323412163237485456303285060772891226542361513128760905768286355361991643843577463468997480398099214550184610234725696398319741902275962041819178746784401942110281608194868963293681016660322934716146895267871699332567992369757131417857962701091942561958625865725591666822526837934934542298321589088065089383512017352371165624936594414105895427772721584634563647940651017520639530891120889366916262822030742406893298266566669846929460877390164274449323453585613330899208611973190103582406856139351358360207037915505968503757170727849856629838721380899399044082364895308078974205647308965499749752340292496675555604570120100594793374101168154567239556454736317933024699549575516952181921311688358877696275228308494736076437665293233593021553597573279633545338829794839207121490953985837341824587046535063654683779156331843533442658687883880789578198832381560071998694803032210609654308028507924574684169894174801204653290574918264449085501202071778383041944454818861737002000004062827450612690802368776587711089150242448746321188249067909846689950206885868971722950223561302561709936802499889361472431625998479519713309696112644206551369957006059007876248392391285966572978869027827248034110476908553071277340932089241609937379353183048290271970487388861611265132709481634504777681725634933446901848759019063697614926290567903279301579081561603495315004096144863616741931075912293706885902357178972723117320114027180589796893468086814053240507281396900178266997230769354914065410450480548133824886362691121013466498517621907334763073702204221963994343498985085466624587759236154120603126194262289128746956603902946108904094227425326913138188585959706796846183722729658959516889420499821644670356483124201592468354968608138496654873603894924293923000370440127183468939292782527633997637148272828132228147022521380007607350374635300788597443708591322821283032512624829972926991926775786122429996202223415134787645306062033741558470451107940521525546373123324362074502062409147094380010787402761559917020077764379761271640441130747099132170330109454673853992105227426438341804970429110185375591335973546211255932788846351043009533067107499597729107497823181198263652045829141656636769101688228524732740343900973414585812840926778852139940179544093916528485573179624287224349150877763495610003199133137315691292769333163812132824930810640164654739627085262071829662799179046581094289194481865231188527395910424188424610502479836897591844097643188989486785189964088033967510383301206792476298094608611672515208773435238220935173938869919187941651136234358043782831092161132784909778155652395531181934362823823033017495275349559178575652515150486697621671062128691189546455626480627700966732283854806554013529843127883807154762361134359440571551129179230953281774043097618276846056299279601204130320412715983303153623203497251631795886496303526571314802380327668991870768419329218398889490760288925726118421716969186450484401741058940917504792599950232539945225724658920654240037951873848078634003838308693636728766709395346402672634545489043771252620183696449393714418823535963229749003049121194981053069773378439266904928595838110205502937515467962676115063416812029304816836264770062220283841387659104803135136347834386253745819070000549984146310732625013149464853064793426074334864100499990505992992653602819265681353976292668993199948369960172267509343845028841675183793134823170011660464678771495410534068299616092401274431572773533951056053480775770339377903409610151290569282977681492684551254542445218772485818298177418350003702425281265455204931397223854210342720757740504830481144369838932961669480026867593266401674022529290883513045659249842472789230908817665557392739334015742370391026947335903464175800894895576147973835765005039720872650771023130467654010185931331802797761185039033624142229638608058351063035870970370742316246126642810504487962556224169102153323085885691398337591839143185820131145829727473633921951565885734766311557207985346755452966431251158658833844627167400864538189582107506613468744732077928583412085529748827270831808698223845523876692419803028447198427754295094080274630197179033048432384519119199596689285254316933799889933405458736074825702331684533480886446759723143309843907088851584447681412979037368955598754483571869388962275370439331716291940647296995933189487896305178993681120036592689427118068629658020042095217310305034116340523395101377959797980826472505754826920416795452963066011651406131602024500164316112814031786697834644796336296598642914961057040370158570459331979550196229734074880946925484404687861782952517667060886430549197274451702487031440236573708770897458518940815985496945955424625680346216348522789539049589460286004120871737088132894432891471655995907519520193377891593565799646750818358872933263446442470865095942107104265931194088507645411714960189556267809572738722909347160836765107637128028228660134754632107897843782392298922270487159845380846268553688310119634673402842482017268335482083557325327693637956132593539831833458931182055709157937021415722143593848508617153856635435773447001657795844159173579275568770691498854359450808677612624022121911725812243837426468969322853071694330971444663745551706892053590790543120265879557274039454787361056217762846212235941127589837415324677464136443274220321353672051244331486014421663412855599055352007714284081161429419668473458224458143266019920025016215035266721885414280435014612024228947787738614709064135410344897209345397143441895860704013173946083579837326611360726526416334693513698925943915064363640022109014176260115644142524615186692340261601553861337508673472674702923736528075272676849962064175936937592182631619918488153322211888319555374137421625209002110166812868014821975195210104206589743959478209897319232012880039552617206470014374006776831942768858832567660587552285016716336717576842248556870289426246675476640600281911244026645075115354943662490719216039797839770708402376836830845589800040518674841690088920789106828399537748354330572087355746057911860623397670517656154456679179673850104799927449007479530285695694652664516429179795537842605696347762474782850636112452228843216068621351497325443249105977697868020970651669883968279374247987540630027637974107184317124006091703526015327389339352790492750367945943697349993829558454913908317619656611764209519490296063521133170097342670843140094516172895767829768470631533412324918714812602479277781145507519625136885981397587639698053870266613753764956474661973613723081710369943733283494831928342626919572428762028705622740494898599147290490172321860661414266910733174651810307450044910237900813973495889756692459149147998418631465350417623478659572377915703520956678817161898960789866372889066435056457473115954133580839295793703489820634683365215989734977888184269831098856695438478066105014811202635406682424425194496129490973618174292478948253209164797673010117472532800470008688553903223472043049751240641686913804616411892433707499287491184961970486126912137662921097847855149679402418689862318060615448553727388460650459578136424152627312114557828880522882444034114166785894472966387442248842583387528221936871702243386767639273062572946816290467908067391311646317937781741802974312077388586827602266169247003547861754044027924243594712663192378444791893671041575618260454708060660770097677889472239143797774280027536867535708205869957651448495528140555861776009826508139077272907100157153066294660531342954719631640516903433371234053528568798583932587769209213039050463491644629266269575058113838246172862152991363027863267497266827860000176914056102813902511495385774170794380211934821820013695621299783220086076449811362591861232880096791474728791908945155003558050622126742222826248829871909629427887202295966578140609177117100034365066456086918625025966614296196144133984980665777561306504065493088649794349807900948554455444111995238900948182275655717208357326086836598366432458947814242130316164105406783923178011090586709668434067555104989673418178750340982907239386722794128080957977808350240823905424566137434721624058051802068583123606635820639631632661592240457370143351929576054134974094258417578582252363115041541576210073700431917633368839839654534912164966199016372725207869182776370241980375142784716864201725710020958926878482592606695003366079512581090635664587711788582025975869049248207264219324896156304508443554180827877889302255711285260554581762556289554286216777843256157948545682164175594127691245336683405948423813924737571319364758861451447270006002327384991165508583093769738865304298795451203095418453532667175227404084452008231709703116683479859992472163089284114217349681866300043289278418483236917814081975308935008873049741258627332538252612196801620772725387786401402995707025506600154373567453272288577166662858209672090032134793401664274786258550767125803720319067737401497614721161242080563374745632612696737250090766612651268205630324870233897353748520143980749196339827123331943516358411820465092777618943922203548575372146957187428030813006276892729489531766609920871031850387036816230937298688467246598055153305444387948895851034287985638612843309821134756693689329025745830251091179842036040103005020504203852663073346000897236114104924696018958504607432274125398275018836186133745993236142559800387398552833507538964034301690972716639758643765150969311751103683502905358075157094317737445807641374020992188730730005458582589801557459111836621757803855878410270964233711742841544138825285450403864783004571581375332927288258052604560065774591376541750529514068964754220501885776322776085183968009069773550541210110664605471574279648981560530082960363155466949295986245302331846266205035088644968128279846931646087652395735348269318219962026018143563370812337330305553070849448463547575256509214483603606110206042968229562311946162488677336191906491539636437188345937791648761010237520475022371971555770955280557646855017807793041537375190677740640750010861186184637346863557011015001513691928281885494015561290587451114755515315992804614058616718008399833380857510972384066527500872756898484192299203833221547322913705065250203182636799029957678276472883874433273192522183586714164638061028165414648299814587287546259338184839129941641215400556286942432220756717949461476646221402720879341677027691030388885997490746799818875923676868248028364117271988953519973163619321936130490940388738953450675300017829092366579617422858464358550887645468764103549872933522886398294500506274148867871369046084298527941550627770123108657148403740036871764500433648322932138417201329524522254838559927427391837572824418453554112751990275908708395667977770579684887937830591551051827045965188358231077934856327613905808827459577954497440301150175768960297964382343439899282876909397121300025981996006135152063344457855349958269428847557747509639303052338502967874236007128187939033651858108481834406829524717949320277403663712063366561804964359365035341026332975573476513188784259330795761206669064820421150331075271777788412882412828097666534580566554408230209719104472658219176837401753274851376523318042422045770259466316591190005184507624662528049662185142295507053835429817099399871326392487410616235347226229047339644195286065043865123815521533046555718681928500769716049153318127004928802049530237147566764742086720819181683721174581957762111286713053965779351897639358658649481494581861999962149986773157158783843525122879271887608889851430147248467324846883519729575478803704604703943689075863242981105195016140436385460364742403019731645567661769736924597507748460101386813347397310155325226251636557723229101612794788523623602992724083433664462396691489191643085241078667613417795457232156314370883681286862696160461844420037432168701162302603187896068176534047300173800675491151148774671658205122072057421958298618989649419612350143983459934402132381811745229720691358126259734911690815236485615549966838160342558931948525863736931447515104167014843884107756096300572929067173657683989125949164998833451823576996619217256023918106645240743666288829526243542890815855488429212902918712958306863694969613448334103248081197836162225809582862382540569328279392152385908702803609586825954088122122830828148639375225589093724820271163169307440688879772972654258613892068419909377416818705247371132121198930435395708130132811944725827845693388916451033851825352382059615647992134793322045548564627692447989927793857436366893724502114903494865578545986232475528435309838620718900560475537316417431325431769566001375291123458887655617303407548235076814113804827330641714972365533734931750311729934234681890530158972834033560988984898831641328229813866128375386005348170466920334758068340094883693117655384297730695358731345801126991796289466321355801545069699205623465671877178144587400144194835632526773890883802125701446270562769850386954004222261074352190315927694939985398937735271232526946911025869517154406658276444781599767639638576055713529841300331516236008152480386460031003865631715305467131387785880797598663198704724839481308723173678886957328479436357017110077162834757646313375060191356272173241754863042765280712247167241851857120260090141507487400541438986189510212958511199656589868607641167873986244825184264846591419465311817716858690077802322346336838725958201546803545336187723650587469895575654774134977986825306307817488155634826248999035875952747277139412227395282571581112548766809773106005951760869860833483568201555507202301583923302635652575986237205228533960322065161255346578900993616611117446408595656073284703492517200812262907203133353799797237490209946990498746940809632028659411943495017345857391468033259746647867046979312680843048375777879105281179639770095391863747919913275269374834452386882433294797851089825946264640467895976073382649909093932525797979030137840865471848057463866155915625663715478035587713813239057878856560354369865095101055118139380224983390405423280360020909490444845419614826620056393116296692654418149814292077086515747801081059810551457033436775440565370766660456732697384961359056388255063244397560578498619399297945368156454032624003898676675981886093681403631054973005533727018830855401633501294464663260204851978687276761821819639043159216900602100059667978771003723202831424917506027570410787349581437458861500620292665604659508027704489162325606237115656551002365981144892471863952172896560264663047387833877009254661099611505980760491441043651838793297791321613128852670173489471871505416258171855326487423300703039399231317651821174333015461088230213621932927489523939704633140058264266175352568677931226774008130206734277609347203419169532849707646541979553898415117109463169600084231626918284680116249873345607378261684218445276353669897231674681510039569654192707654856957810047089363960821681331031565194262340890386007031135640637290378796798863144944572452256151679481048624889534933805846163322564682852954676918629624178955280955235290540298011005369842419697519570199203020008148945354391747133928164777206805656854791745728111983078671802902919647397501121900811154428125078235981775239320669543004324684775784024799106326333669967028097774774565929476969807668699167444755738027516332349717070481762793107576888650307369111961030731615034621765006379296981174350846477532507231522104155933251111801571753110561193576927335745078694412754676701256371262171709671258153369044445976685060247846851671397049874439996118177816231953834350420157798383458820193668097808408078065726127068941355141797268119204283598650625015189171301270147171621882615767925413563627990941697667033116814071930641389903637169527258210014976192242993145900828590992973044150700839518861637518068566147395614220757725223823490501378258409590752864081823171061114338098111143662079906965832958655186853381656889784031297870359220723665014794493486736025129521274331984354831091813850818178768882649209366785267874011294943627161870102992243414981786586827103590324595136488211579406032815551883887168183546437014241535957630259693756921120685349511270051134304182674143046471359177763628563186531377017932923183958646761499120754166750668659891540564557466509338825178388631485807268029704129702760196755090700548737133271727955047054982034950705891791800983719185896045962786523518962072058974249866998088869397694376115853149532624602547937020096312902862084069582481346159573967175565407440650290379969600074648982479547121685838445420690539012544754173809647171397942200490517342088766248952241692308091962828456673673000870897627844937765443030467322013449670743770556971279288754890620155663362813819124940854992190747850762557475196303087282262554246572247587353094328430421445582297011844905259820042472892247962268938345964503834142881322774886357312299857423080298896829076767925516550387223325422822734259016400380032118159883029672962117665789601037510547485162248517396541700774400009377004451509695560914693220348247226364265432359967748383747309821359277298949610193801834391892945197793073357126022172628167679295541179477920625914194305235581555644113719280972107285071307027915429921032902620303887037598606051634602227709881184902503877089191998594584103795347571472739817867763548460975128758277339532587812244345168668636714620853483670374936812697919735193769447104923510001434506522297877631478286556516200052628921734204326433019572243114514812186804087501173107972812305397079243655867326870113417963938536933427228544928032205031780820639770896639331671393621124805421673403924610326764120307692201854812949916669877627908729141532643221202840942950710377485816547230900322125578462321337025262731240454502374948845617367398124925619503129541539079261773547433885476096488379427304739507316322759023226228250474234883176841745447497551589960720641868590733238906872984681526675204958311214159622705836623425169990361165448185596761481615828306374959772200482226768859142493398728634294873144514595328450465231980990483438948001734435434840885925629785305627433215655830648574658335771384764259622303664675343836146778486761539332699844512708719642648002918332473648054601148600799421180092761195262512050680430228231185986816862476519164256292395662211359049491288828756508618251219030608812931357727152477380767438684683139657602225660788167546083114725919842390979492919432395453474734052654839045866302096446822635892211391391403172140971932848902058342586523749741429394853723327860851531385923799242941876155143908369148725930935908976433548658298410159016472339842248355826760552874850436521814590416745755656683689882394663312479060056617394053540253172313293179799559425892449821478886155309775779037371064501236047689474857404259146825699270771773255065024345896890604126781126589594238841273200324756108180280928707022846755639504525539246701218701330028682617297774922019089842827613938592351272604954864325374885283067090170690633530060926233444540011509202393713113026095382530472237826984060301099213079884909130518292367198891943576584885342821650329749633331783191668275522676098485311221495779954228953604978212390068051957555209531485108813286597017042306900045060139388836891686923482280335015132912931675782978654482620354643359783249018601057758135585725013336458056695718769631791683337493010541873684923480925281166627372307160365868298442217418371674693135927319222865082750874486569646086024657247708913779479561325217410055707096345085172301393795005393172343602995465945006005499100052012079659463893909516117674325964601432395116327998970283371543978913759418459071516238714835836312790545752711770996675347804383494094387966516828513340023216397926841452130548082423669072342255938401020865558941002877667427794387428219883532089428864513095090452789346463278295712071130634596942091484949501656465935636943875839086378355980688060027244921291463244432337352172485877769873741772896606571544120344433667825692765329736224161842190210856745482158254803316964960872938097252984621694706577635448470496307658827503112536645767150636586643615676544895256991523071304491373635245112369254799348864272132750116276081252618226620000715391487531618435528682157042783303726616514682748661298387013711419232879479343120983538980130512431273734099615425079706252106280041412015828159880238460807804147057546759616481215430746151194483725342015889875222625527632895380089427466534017288352562247564947322899291178940095478095437611476523418771916860351744435367453263088902493987100137622148120713261487817667445363729174013316390635864974007116389758566599139546740260377656850728872912078746821338550244221368392927932598674650362760357644332889709694270924063078439409659211484844323699417691768289386738236256361586435518279772705340284084300585750153038183702871741390555648170449865399940059113955256351953403030907781772893412765419490225654225806562355557267970203468908604914610238688163809641111587156017193986889900642170166765540656495560511184042231664324963291846951039487195543302336887333117903471310211889030234081196439463186188160671231582947737420729616655263885354913392676540098340487685456106420807370333512890412221431426148065896650334183977918406533363350035774347546746661210027350869892677822557601835134697377283320285370095716771685625886127667444964924653582271429132204701147814309124630625864073755630967418047304315761021319826775426610557420288914928513259486136238127633919323383072178697707608951658369287195494216726598672824684327861439216358630298087025762916480048703195600975513498154042658946339991980655873762404866311092262258904329959799565864341957628750409603849824086602833763195438702021952002052478452994131930494374237498242845778543280865630741328165583613425904959380789576067006402016890823589828953875420585518496759825126609374464199922233417007376985902830102111419870032548835630080201874118512689574304124879190555714404309609367462864656251439048856900968302826326051940146309384458049437434127239285624524689856003530635475572929829492568154228749588847273993667687508114589384580747257640841967642720429675981506221449682179734125906812215307342594309895994090136812856028516411795550061370746429687495413505023855350643780779832368068131825907087011002712986973876304070334183497134725110227151527502207496852040857744833812793846139788243284139123235541368245397427111688512210378297079352137683558609388354508294806719432402109454862088612448232398052930567359868020591469318049756113473785493270779026059919978663780525347730217050477377512048745374600548520636533724895247052153410526283467801004952826031309515913842159289686933680753320214816225479252782112414768734787304545097076689864324609440717119545046351397527692612623008680329886331600997307520516390154001143329098556866168777459481748793159384250001670734042340762952813769708475369739936562595640373809889734378133488992011185526535994234261242665520577917368107860841142591335889282087669089603972817698824438003529926941219500503529195385611968696548408048010171129049193067146596049747863453081054729077667957282589001040874994917794752276741060071805021447775730494449717619333212587059319517690797344935611791947804840581598455411678183960288282833189889007151091705707506589293366771016681048489586205788274266481772235588916313814649271231125191237227718411206013292443418745492785172574825932846234814327367308597237677305683593364797342596209713446664485301686913701935089995274693928989576670534420570643947850300181464972891671567554089560973298305507320949949355182806820387836262164976135478100101835021252645172440875989532566245598588234919744578516794084763215500667345404651104176848805833853391930034665954712283999046940668043360050180563910009859572948343592738559803011692319924002183309590423311315473285186997329757766826542133176107039798289498147096920761831502554861263658300989392955601977542424990970508027350189697420812315472802199651884224838663786522354249700691034531286301448339020226251525382801699696484795511782438376608661745008182356676802701893989803579870529881688945216714943459475658885452683671944335707164449161174778444065092949496994711413418678079989822979658624033044970493788289965821918662530194383721872821447566604330065194492419592980187254411071950002153525583768879139444578771854067571615525712202378313522763902560845834547714566674277616639187331476392546660355100537745903343057474030921721394140269808966822989740612143221504985694114075021589174545047776939934674369232850156745161223408009573169429120439439155754610219154147273216521381620194145874537397872515479926673192197057540473853154373535042694069637985660270736389305127063121884887752861459276518642326935396957785019216116443417391866034411617139051492878189714789930257376529595741043927160505553573592657819719072623685557375738437841363200984056839826594149121631734707120863350029454161679203528232981722324853628097689750374662682315909440955725083501127137259015321239895980963814557279026938678313914374676441767936346193375490569359409972916544800056747621379223287786285457943612907538013640236152639504310275424192461499470896443944341353530845483878502094670952823491350514329217264877168953784030505254961515062796803661325679852153704406364397050566254890664205928372463148475173850095393561499629592393549260805095390399284653805089447071684124274589125658371369782808758285582074097770159401725939285821179808123555245443449083856794285827208808236647160188312741769040985211654667797573950640537056902825831890464230421778528084266818333628584977031450194256244998136277321473444960405720553977972983052743631145236288075310452488039993055295648286481939951907713036909163015795376437249175057927043558008497541453661019058539173563849352524158575884552815635671172004591046897457062504038940296988226820073916633514452547012390770738308076605339658976144382074676647899368322632628549370488704702647029150674795463596606319969377855441566718285421580032348416620756895767805748195198512784945612843758829551394673403249620527777585852664040968747726925271544510823621899144694836148722386102264432808014341867515326754431502130720948051137364057896072892872050470813259908838950296401468696389092893154028481648169042817295859047012533782706773334308459528857913585445374665117443285161765574343549312108916772660385680877993571152130603210039826562564428706490925879151761903057281139909212979910285923398203541794978769079330470202805520300618784001449970766443816323815858882729201315901335894186490530291606798470277891060303228824687057534174602934160811108158201649326313692493877524244616209508078254517789165745201733794248481465685088408533861410579914676312076929219942652952899455489781746266853961772279158838946704556791041646582243418075392505613728381211622712219425773750250049848263366913742550384525221111302836219614977844213627186374319764775851175085912784550258220740937150424397756905931083802182675099897410418837082640355270854594740424838380594479328924092941132617366218437882312273653859456415900105807480280276214211675399210376566335711805267866588173936165992477192558356330529710394080008136598394113790225334932006511533620119468175718006232608978144268716866115714799193067270265798746241405285264071161180619605627443724362802737481685222296929978628326250574860943002940428021584933662347224605020655910321080394177323990309494881895885127394318695859611145107717102111795320351873433825021533188402300155899665369121984965695399148358299025155776085624255232912804812795350127210542646819762817783640332677630137478181239689590244384078404265822249715217848220643685963669625049389494015584027307729578206343211287417951679701092977076606003661119291586783405061387493249669531585989671114691721243991883125277069601233790013924573970694867103226099027809571656351383236896058593343096001457954572229661592502646245877172738927774305432750249585592267637482095492101894513286406978678231217695658308689596610523161921741721706835765993589235525092097774731032380898295616195542980839565884888392450804165916472591437505562424056999337805524205932086937792420135811338074708146905483415729377782052207694259527229353307376567262455991392815816956768438936337542924834128817818394003484613527601488533497538781947547855387421479004061631016813860356417665595156043955910303163419383332582977559459662130781668166042605173744687596630218529350172601615891322347086797650193235178302571486066865123883227989648309902723321499177659182097895790990065470936576294681839299078217201469493533049161295404998736568708390204273196986751825503452675506783480085401765368451734564264617595631026431691717743228427692368687175495046925659219248967627134796341770515230208234010185717170950912291456587128115379120752154318035380985665782339531508350290801265228363650159978065157506024561179201702526155417978218415861538497744126114934586572228139783118534688271235400588380888254794453636595475313646872398186557251124834045491025605435768298486695572499884060366329383723105201426464433338995990140381628907093988391858647281844709779741517306094947454947776160076178407772285834535061024599170786161566802970077699310168000912234400167779637320642136202663602542635018443348113854225407437539360029642177598625192861568029039698459852712622182655081449254064969442059323375865587765092430748782373555623316426562542502887078410408897292625779915480712436517556396163116705166643637247516220322365015550574630279898504206729594625422063706524761137818572172600206723199308264153243943445044185614365845387443576107623960223260893203737030415757576882691414157002856124213374232563870943658370761265713038616372850195866066461796812623180136780162981791178908230970610311497935769110260968751513120147661710017576430991721654060350865606276228996068374779629641133655677418520904765756208026504395967503610790267434852372729203004199871623360589642016931909103386503955911012316870311727940052697478247364201780704052167549327166757938978617569689266706492132487490647119558344026738159199262119645838881097370715562164691746443546642166650598937154680429352551482685482208054383164380787234140529774853602533618766008267551518013937900012845553706287571379455164689539224587517044265313619766298032185371639472091993769758633704021638687364257238959163286362899869072781654861833300650402197043796415416452926056721551186679962128292894781234673761507311563129939239327043578585507901141294307543142007439382032085209380858606168846962333521282580022544083235812715729148257041075824794652340894216908648202015118801018954641030208311033522027104415545543779189870893805521954761538052512510131940382796555472896501007775874254657432333103867506510611045764547963442692505744176353194882984736743491699311790150186910945115059989994872423672881474120509222187290984648834501000011409473656288945885239247884764034784611307411085540574280991053750388412137461951727580181237350462003241408160726139962913506435836516959134985879323506798243899353432768765327180612930600525400744479151439057718803356011353144803613111105071713187843401349219395507479434386634858352541595424722622962088211502206297955130881226545354831763532144169744267531826147094628445320541744486799444430608359456533065690375854218343053522146843757227763756670033167715819489978494142006983964968193887212651564082917036849516251677391098601309176078960419716398461332865113385537349424562860906389783875277950486520321067515337350278199624084590884938966946729758553857768393496207884745101740492913964418927518750890863016238755453482407089341514053039904385008919748300472753099302216779150837075404989565029987671870903051456227730405039067188015290105242882866296430997435333307176524660238814431445291706808968005556226796319767615135906221523109269791006184016311273492834258159397906102401809270156450654266418446165346168533157840191204627375819537928375362837286188259901349904151848540415589496794760307161892697970514628187650658570246250816626170156177544104784333678056477756915204701346311365354001796635253062448114246300711539909072253261924417529661243333730459029487360889784141266200321368573499642469186955318113507574553596921542283496157281154559952721504374567580407922799912902871160619255149223890933071667984035278964424509600787484475488488915484264708236627104900522105529793474215706961093865401369801126577730211790698809735862855377962302275546307799754248243680772025744830986735038584410784960311107504231320334035230305991681347292150342941022738890597618711409602244786992774051756948729042560944603960149391328029685482662796949655943087720398613325918129699915057286398097901636356201559258261426141236996933915761839231829262166377157048129039861905366029967562318959720022438019824699474075070264905888607872422713730704388405748332869870165230900832783838054735404545030755020310326250137834664873217340725697175922017256466249109030607061873566252249401456786183800534796389632464696075639814290053466029880452727939034797127367024197612659522359001669932871786576972691663654158037376704891987009353093703363441691164258402197742650507374005067466124982015893664259447761502542790684461725071448923431572131671654351238632178056885599854710098427957801919269296322503059532824182860515032862224202842238713463535003460087370661952109533934219989232913355842170752881918525144334521162013317244794135184331150051635246733251889669158099924229140610107487474540699850347471490092695760907042614271795553293203830368293386832254077342197812499747284820966764110728898444841902584147509711583028797439261276396476036335571452394610797102056134913268527738382744885598659691923647665603163986166534616917416983810120869626373083175930373276618966331288581553010747563113686180450029138849056752262251411831044096989378202264971326930984245330301462513321173236794627596138750325197661060323945698916475374217053206441173400927706421964185474137800641936712072394907265548034209251953979066531585948058095042120308453591596457433850152297178984233722141685396685973894205965185744982058261972058762930395340626833639465276553649239574235743769008969658640602782004167279824126156407638580081449253715605360170427122407616499329387394630971796961382633036045829954691460856845554171741578206650087147087095178637275382897063481189546865341914116306967678781154617875703870044220117673288990468337663822581046633035695472282550329659424653091643511934991548206057506374318510994537747184639554524195744235136160360578364692396093568867072456769421134016521743654976945034576767007151292010370490222272045099251115433191934684041642419807782472214957292087121708378751680611146067660730286225590774114064925482815396962251883618419206055777499233138783207899317967220987343324454873457858596777338064810090346802730750882538584272822035885139000901389669526495896201251615670778022463125707166878195562640126282618951784469712305361057941880858840720973339376084909663529134136696015069055775931914611529547588233959958747086187133445788991825308859211463804434703699549975556010864786620631162079185216773678472963256055771445086397965271887309699652965581218570854119449177035242493955028299380730104965773323072233130350033971529691017430240003087849670261250001707127350055287199673792193796054568075606548696449326073475183633270646932840044999015608150734944628629452147360567771547116949664653966308968923998134358465159995896835821976332015483054337837428666361779028260513616144770251336937091671770442968058491604754045091073759809538586107288127767654157935509637307446172175856350464611901188582255966775915786492705015822379647767068783273515138368939918538128131249939398635182305707071727497392748126517348484413985467791652942271391376063501710091473007239270003191992681940412588203050483611621090095787675282138277401388007533095320696007325603911475326560151919985485332006213033795347346617821436325143072078961233122886550634992282458117306746914715194229192309930362691426905302463684864606744445747338557980827981704499433824901758059693773426254450549097393114200354891839421732999016463676117418296086872518555103516371795146542096264907676100703958334325112332116433147487379708890986350448639551429835743157646728958216130248736499684179868990399111132882980877437463099735761057349740026083762988284461694564456604581098603106778110526854293466012754972252556123656675774642695459764173110426801710010844057759465038264074884984815669593472511242429668158726776834113557573538933594646448716579007386511269432449181664064225258771309259907198480924150245259817619774525562515779305494809155468716686928032881363750060663317818356394019390842274639733435060097973697923878081793704500180794673412873992102459390514751702945960974499663325686926797263300077973137859195033726101504548515553838341741286592582318999870842872337510076877522887463730930929202433389038519581265932465715704944291249527602385112728433720341211395394198104358131914764878735100122262325933809543301753069523089701479849758388037099724865070790262106874362205900903377388069225278195549240505848443140929986476172749495455141640835520726727729634662744679144220466472675491851821907725950953895022416370298354005610848648872812248891912734845936806243450080825311646120175030472677511382848203666912771418359615781739295925170622406401538502980066560469311894973800943406254088442678779887674469277109431421814596351560596029729913514628597693675208559451530611004711286727577480058118738210078918823761085890626795989559811926149925884039521589659615787849810445049415018341513600749879182609162381909279951978378115593703957045587703440615152124068016647823438526166293401302705462322290596399868375702285664593480015257411002230002343031231064985532647440874161506806903053912771031423025834563444951222471294795708808804171838072781571269489540132617932040048387728932067957713306404207897666209325035053195435837529351432394553730253719324501518653778948994366859710120867399320860899952833788705325521761370792667225979874621973351449846581747364990990069395851326864384000531104078571383110071076366897993887862070221488319813957079545852458930531498421536572063077379825706067268046887846257023312533434267393994807639790583434190461878977690308240483914512765685611707359744693803150776733605729344978338963227317206500858714385952627253448381655800468431764685661728410832627469786895525868777063825409361724762852197664466703106261524064675217105080958584813660101789873375765716768642611144331840513919130063973586658791508943549876841101382699127837199998094828517610565173483828060259377557853876855328243336956829805488028384166269427545534145296600270746235022569251864728858566161641100260275437167603203432535890700882838422446120413056624943089265122183376061748611219293041026204832389326416269633495363361878507936695001151894330041262221049920642089484508785458489121371161896708283069924242479610579424816241553798992575573541167872786313868202344859587756942954875689153817910555642597536834560846942438867077361063089115124228609019043367326638973499665182363210732607669029870868891473548105418820529253347811737866583586188271822588798802516483045227229409975408712027437495489976596057829098591257529722690560269093508159302170429913545122002334353796769235137343023394152525153324743468100894681880966628441092138493690348390264568717278054873819724471197291704428377930600968436950812577358703728504518759879774187741434546069346282221969624099050108286745389955570340679246599622583557613297716839190176013215439730469852644165216373062924934753771806936710544430295448006692242778562760043047409183229295039954974938106697086849578638478345584773340653499963955825444595076334779315398822263312367742652344410435053223297790334346327383703327415815086337477555091107319239228012431488603126015592535173857607518356461584488354566043453592302250067433781062379519913051552390861858919699352641801492365055602020854935297075012294109370833001724952766272804404323035256089552238598128876229074483538126221123585439284045247514346600775939048653820852049927905876561768779592922167982261531244987689916810354807430530494563415697668973396772136521430783345227039951742282909742224582802730786948326289052209259234540043073648636551945882823136158770251734258908621509808054922550573886834503669742681634847896828489040489755954754603739122880973752622646280432459283688233164247797032310100799918326200126392651060459925655231114434079683517157834068633117990063957242421555358395783633860427468799613178641678125630684242091708017983579110432393337050062708422042367347652775360337495108434452163776479401705488545162433947691536732759828118571140702460398794372574785272591862310068039228514014761567167769811005267513910235418743886162095169277927563687013599103801513309188032812380765411302359446073093128383063656843002210567598385493178224957525365361524781369745418719223137725924809623868291797973224591422440171189411363596015209530644481113731376779613725890417878845159948343525122408547745604808428417046043001663708683208256171430485888671734332358775162003606133519955967083765939710087160278131062048726994651520631002396558227962506174871672153035726755571980727070688686065738462647878619452441194316071855550744956939307664734979200917449010988744061688343875272740007348138289236591767665249361617493325987409486849759446840569847855909592453485807627765809215268895187584780765753011290342287914307267047173722542522341670940690089685569601468020637371131242848286935775568277145671450734849387527440971361018839000966053587389698417104848219768523858157593249654469773302490677691581772442778592010123389769301699291372712130338660996044462673947346162564328952639247934030123860722769744884682279400762684934621785040673597076441610544701449276740254544552977150229403547023020105507232913259495099170640535046923255658175642819320807121122619076157252874674627817040817881257148104335220527678095661609114565846801450369535480331133827623473334094070393862099314847645188892617174932939945671391185602181620458641954856554938712095193176451369868416858898285493431176393332938966126209211234205008842870958083914983427465886345321668109897000087157780298590660353063149716178377049434108911890794919258954038021720285137316610503956741451914640133308922852670778586149590719889982238845146372071640919312969551769348420920339704643898643325416721920399766972406481215000474064064859565548967996907281738545109133273371522440083399201042580239865809544432889759801833249364016306193709387355680611583704495513662492436315940545063957864572341786133227978747820023695052211658993234415881444345043699029213251519235097763446645122978616133004378839653869758392074284791309299811579161013377920949549054607419784476054030761897913966134520348292546403978216797308919346412571679863654708836573436085402365845333983751926158372240125516529071108803809686784100225957710519558546731750778815987865837647138018845817766037064244096389469248526442054942427695201508582424180372777719447674368370445901696394565899413306546707725045492831061014224912749369866830166825715680862961057793896316389483766315134095151513542378303379196704005420659180363729148314313679294488577755365345810990419433589295858803894585948854171090808499686410622054074332827295810367160947333032882535608581696020425592061725469254737744964261755654770772446950530540282979704669565901318757153531905733926073897071314035901326976345680824779978872718182527589597770834593145515379088036008276054746953430262878755688411509288898536416877245382970689451046238677347037104006713866814710308293538908179791317659464109160475581458712227839928250936671905151510616271205783725154238644132890755077550216949520394205501254629077854981661371978637771987574179833264357057301814371799344536610043772742660320206308594373793073939130152473479314737344804416850443359138070837807880511393214376152149135617037635469091710832480805825349790160681105587637587438888519134664864691505693507029965577604871596729722867703054093828073635282146596825760389608992369812552048820925334500131903220012752246787822038308864255226060783158331283031352214669555445449301814840405424550311767488881398873128948953938016515388245248824414605217296791474718353372531398705241039348047861002573510874490010693747672744272242431632456515425748968573813161597224821830319429172864018632225515494244981559323667694558136114537569607945175398575172164209463371267387552115249362621684671194714830303407077291962014930552761881924452259603280307398635422317935379915926644544856282766360160860791517715739737512738843896210673870762718858102757685688879101692683478805464327956865848118445220886688325794248639637261240756685735440482316586274657888733464329770288857239889557677559210476022352627074672819939947011813706029432672062506452308933738369801227336709491601272356046917518464269218205419498867688818308344386329617084357561047334093362236800706245107497941299815060651492204354159487860634102615576390339547857728274639264169223206772151943098236899957068429686048125595202940502516061935430355312514011398022486577693908358737925784990578094396598310174027259866231372289140374415432454149661116642706961773958846240858243845573854762601568683650496986222970625137827657452851462615296363051378670492324947158998186916097281293948412272109052064838438398217325360837135556583601353115396186103738743965195603899242933915688220576454308495957227051491820475858675761266491483906514856608942010783844076469545516349463517630450514029485852256392284881670630784508618270793321846014659125853026431033921995774207646858815747249255603138870184337353865854939928505324379284433462492309976925471814167096250152078238329760208968749543129973285273940274183981840472152850958890114555353226394971058138370871046717544346991948145153068441774308518912526503679103066745224422404493665776142607831431610947042058434385174111386558130088097918537052271307598533676070534909474593191221513616923832392056359075163074491438529442080004489535288038809310186644644460469487887752822870097647256228295545275834209175265785559548149790132434662786887349733472217595181683543177231528568163401302970451878190440985696660031004817572923395917957358213534972859709202790242171772156421968464157467691893018000062575240674477680389836378885219358105730193879368442055831574218559052103582315594207798265090598303961758097753639352424756012895574430681102316522180773510915659974241725167441734806136135632703432576199516896733409373133389055060179062711398970281844197651832552869369064433759488399459159425239863003600304072541762572529891682183794733388862086382164796942474019865981757188634468351479173145280897476443232833224726443463484166244212268831391212483279311464014651361386408490399802363198016653081396757085006383211733195106644263466425258548829341813248522079050718008408902588566383319034905789306373000266784910368798701327673961213116284871870635447015774570398291202630492870906024190108469368139483184987939901982459327802293649306357297898408790615470810758452958657243095563200727619394784175118192860770952433305531890519185515448967656784953817322931136194764185057955350492340460322081544436606396169997383970373747531830113649925216222941177403956089573871053899273795421203100974377918279409126896651799801974994464011267913834556891154128018941743674285186563701694107084858483852999031356407813831228915240205536949342040496351290674300273238647436486969362215764689565897395450458475381356920399980310254674994700107823711392196763438866925006280576104234183791178874115053959638510030413055397989993528054793922470674740142860397000683332283564108310434296446158056454693190950698401415970530807368398949101489520292463009167831234298849754834845424706909819024323401610036477242199281156457075328096751982784994170872862893373708893294767267627149498748592670927517810847454423635145162018238976729155821809858133764794181114221670701591852901015270246626106033134150403132654498653554143248355204219731125890177328723172766084064722375997266286451332493151654548253459025325707039137177869781046576485412548571844035557421274311070107287064889470092872012480207076934066268539218606554658856973090763250645312439069353541986929526377376416190401484969293172664302307884542920767999982006671158827718078780980377564069338363302183505894485404429599901790576881447763879899108682643230546208932019923190274341549271745871763135157900225905456474105851694631714582491246997621981195708850245297664741360782504887950163577396877614267648578476327422139380165457302009795304757407489582569045633223286400950375828957553081491364133036471102342651611529403840594685728729251634038632848930142353938938641360362796601129289323083209362933817811844904567859571669766632440285830405300359724797579070338568295320351536224148430897937502782697723800971515146850429504993547447704196482569369401020441261266936203171809378909338847011543638998799336731781664711648530939450987972102007533560412908020023692066948664737855830779744386478423311525816965530868296531996260788124916251002157830869884566189896585809237323434794504922316504092766916182736557863931693986173487580464156449863770234477441861640130482871467144819087134054661534709407511014813074333190594948379700326358715498808002519381668630629303018547164180737652040233184168287897147080799643827661205731734899742066726154247852205757821265316197673179229095551411054564273758767595682032212291831121581191457933902199399732053142836911027712970351799655392642001192159226108275109044331235960838011601770979247039535213535363790269804790687763498797522454620108467910655222439307910344297185247540727800747956306038770281049615643933877387243623366750239301660863634297192317133836715930797577095147976705245429999223739841085781659718562063846747768376544479295597570833318019843916842966798473136672347369130804985043068459175004272027040622274390966322518515603795492892596967677545799713343259090779513378626147320180122385540938819009341273397845147197372694335719630934606698054808678893490682167450589676315045210210145022960443423862923292116242161604688345929122658250103276063394772481467446849131592281793439117979686929922552566854847193333090591066859092770994957489474036085994913109449077904650719473656548472080444894942120870154196771733572173704580704083645210931366686485329489814012320742274940327084471630489086473964860305884563369800328184424577917773624811966002300620533558500366143211041023652547569454936729528955185007213613092633905383055439768863803680301270737187379242606665555859971787978842205891669403072302072243055619316729208550964816938386086354530343172737091023087230462834574057877478650880707426646138733146890716916320884632049374179689647196443124167594676854351691883420610433815115430460071627782215296229929602111858627626013862438443450428492852035101081233965823679637396541183797897270080711144774890489775556749355234723694661193998478833807602921642825496222520049928815202200479313920076226616589156766987697708564441694398657660297984218447760924671573432104992869915500821775065083859458140545337385787243784392952951186057495865317558375547152647149361176920117702601285649512030685020245862972438211435643124009891488768813012880777715300512578105426070722583452952793666403461999872951580459404113637722906140142366623212624254395524364469660685354908418006470853517015492673805517415170398351716027394345349920969347638245105215671853693587386546239673681868748902088266745436252043690903694261389401787858397496197768371905024520224505058258635525317206435964705609881823812839599098371668138964645401167504837725576986522334703597029277861022423852279773871588770829672490315947934716267574053581868599259677625915379662538649498875812338789036945651678946498139962209570788277477250241832362811198788344215696305621516401741531202135301279445185839226446225048267408248266613361618804912480001586760360745220200786554618419283245442382189971296716326877091944083725672418677861271093776642969647310994375780784151189434879966694179395780314472028853817975076331296039381310451447156072018793362948308888260473493275618929971831662155672393063530981984583626398941118405159754732813727281257287656839823677928187134455595080446083289729760095369109146052732325870237178395264116950476162477189284948803097211017192093080300982711502468204467138421634792072474782888919041908308487429828951092831985663325331736918191407682685656921333101440419742883379606998769989898775489699514453907566165756327748839005103819297788924830546318567767655116739329449221534022755425425966702627655055224973206918309759692689289284543922147910316450193630897666889770673027333955609718632530287058888492491109768136715666663595524073345910391507157330712829885213083942277028922923872491566226110132719582797325602935782791808054870871813946590674672021766591013137803591881382975578058569953499636053232840199187820189410848955703355092768601215326922031498083114459193797494719445861619166714173641999776545488605142121865953865920602608761005775335352997941805981038802718492599595826995657744190894415352512829897241274176560085402288932224308095820256629375480163155279356683978337133490258821892562813685940282289811020735877508279589561049237331801795541890033090446826837454940516001708500442100548300777223597065896141221316545083044599070506198176883360221705164248335898780073003152849395137322241989663509352013050095340629473711411372769848012379856206360870370494488318047771941009002561663563999416616286523074668326079733574276153553237044255610055259199559394343137993863003810855348774133534796983822058833411143562295159674642936158061285882376285100188624968803358640832334821450930168021441364345496039517785379592913154022133793241148424657948820887452941493989466395800494959984944660060480073568423057173962813697456903668708783326812671166294772144287853988987208342378344367666386559637190419626179314211091634701219838952081067484131145914734662012144405914817735801619728196507558644014038577538991552906194933045353856629847816966623712119986177045514885892321268903316188841713878109313868112369214608884390347463880930184234346708605385458280720549053557095410524519149105428461850759881964483011054203184271325969538041513779836667901009412724654744970305866615934650689171869085666588190785471255039053934898283989772261266885823210583413533174666381899030743573358038776416506084474401241177533037435840103139312284988464387532961330637683174186576143693584062271315197834896655611872407434939622294648209695854982956849294326241694849911316823157761413406280054777132542027282311019474759424675451921746840002207520301319746206074877571406935091295807555214967909996613265755728554126107712694014633050096782608986669772958019757768175522699476688790833327551033671624306927216163176170263617947439265481256385584361535724083631769535293557782281681178827767138331470959151906291026501598256383030750361902040908456588404267457605436763905997820421659214469538719039050803530680041722802044908179581146561737070486618147956384309955886643259832842052554776471936191968565869247755046612520334136855888250894007882973199615176026455873122419734419536233410497038274465062616883685504217260538263076007995871183331721976679958317348988563065909518194702092365340858023164883068733857139170300828100305078147963007614082878442471815135460867451256979534034824001091638251718440844247702381809907043172727334562196122181513788375619789433068507526738194231514637405554291477197069942568208913975947468144476575719491999967727968985456397035205049351397085073156192320707466548085397466481051458534386107341070405592162790211278528832461458039401271890134939148267464817639113652834943200600904216803657158710410314800293404544383713011331885228727743770229327378027650941077154774568582756058919473339837222330925637666184882410428454263012403778018081842449866251309558737892877444832136182631063273594295172984688521195306589979815413759429127103155898722680900813864463230777217209166169705413605416670465376786822467265161102374103743824921052650518654304117873830430574647967879744322328612972020186469914841102104421378280650693430464279090680790716483046308838499727414763111359545801021164444983368173619346131220597470891341502180456496019454193363475786245961041384165734648771955219834457039220707080993365152430511327846799699083328415633005981465450814053081275675579213991571412871247580058338321026277790266966659301855995436734477288524688421784828663937430705701228033074731080946405951543601989634879227433266127910090623969492834963294792785453643821098574138023391797235340272734938530535172868845548945697225819402020693198557668381240125354599393843881280245360490983182730866538830312984115247610436494231455587387122923975020166947736814220323860269016987663438134763833303672861087701996759738450016142364092558170703227333041109178482005758083647396142346364324855409976278573021807244678780620817674571778063693356902389133019723756474788184183747722704577508115314409035903822127871973805070959344436332484346559160080849564111775465804235319133570983786302310735795452598351667182495368007166565646259008650160815302738229845012443396689132386820861398473771194400265661346558787111268729321511950234709575893803718651961926301149979300714931745353094099990694161066880299047743887510289252195045754621443569828330016711941242036785253645535583593400738173686901418126902110059553610304718742096296107741698376055499329297410992387761761278918252570942296307600222220422992054194785722383662595061640052013036779610400510089704130219644754881511515984806287397171929912857153364241106855878766092631381998870131965279512681974211817153296659574146025083652342543571064833265701401457476517050141483334459509388563692031041961976234673035439227154213523851735760354696338775579849634248219108827312217730756450252947833559321071405278794892471877657312017104954756546336524146758899073870569661369253391159261284391533856892967041715988034131980836363439531501910492916266600764749005919096885817553389176323894967663445945913607234043656752580356389608997377481722433596375810542464689569013751968974941923266985465200163912313400106688511198112960966045177563714173186939698079302247708935963443003831482813090593691330407514339553118370714433238090039407421553714541769699228627397560047534710198292960704438596892161371976857437458544567191425885673428616347693491216945592915460445227253121207849477798914020687576034371536177211452925341856078060554980262078035213028864418304148146065024418240728249300813903571454686350685855680481192125812655250317429711258763423513334565078840582743488383508786546176959210216011797190369749147684455613675048308016762439079308283059522529826557968131197000996711981516910232904445408853502607852509971145662094415189750888450548134340352673787534401079378912256686456915851888418505320519081545258393003050349257740745047393990154231814572072427892734404508853823783222395998494330205886516846488053793144367507979387954715649412270221430411403128642171829073867002067416933801292875923424522325888626429192291025902955706636889001118361416796085849241663272520946211470944257061665453550953381511180226568210928826350773156325320618656766101153547521806451339125936753671494142282224312918587235443019105404338137988701483345480433032854212339713879474447343230640555398046818869970218618271096828545756158511021035496201706669406097687196381623205867226140460262382932687275183563238786695804970912613335069613556582907008322023365566335104642340494319272964777347688126756367665557351007105385963537060110682117761638295242296854980818813010650261033056929531111390943376575410922876996259344006736378575204662911633296474227571253214660202399492442678448145385928144898895472198906446405248169000570470120424825405576168065352333251820930384653638219220325595641620589489724859863027981536024882517823371626339248024084815562730621795281665593845905335991534525844628283648438701488896740668588366761941348129060635877913778879734028350271843987004934094685540963002147566721417953384132153616282210568965247398523211846865712796828833661459714511597130941484472618974245736632743158382999682333904750726807764507209060423447863296264481798313824448725350922893291908815978333766628408458850014079313557681793597779604149588227175253638706026431010659026446983860766368076263691688773460727924340867978152736886373682193854562511829253460141356777266802205642301383736048590266786510536722955493223380863564292943466556249642874447108131814247956332241706396597550086239306086046984942210260133426866276355276168126949673923464811031494407803034859656704136113670731450592558031209628898014956030065571138527597127128297157063206495102292983766116804668315078137431250289729084749747978470236738351481239455750906876317802713383138699366015508940630085876985045981157572053093498859647365826868150766536833933109108082347953866118764935158729861989216030988642571108079202558253189774867867364705745661455056299871171249239231998877003285274729302777123124859012893458600929259340063062023630624935503107289242767700499094151985734202112901353495371071951484244199239281804782333432639434580623137711255969777337827069811037292217412494080093003602583721920220499337920673506954615677378708830588811308403764143384372475015772425512867255212017191516003637384500381643873994939066372664858958239772987844768812945711447310289002360693057779717755762098796752276625892266667630169872468833676482965011623400284613204801739216492410736587413682947106177448651353406585894913040313123570461770356188888214034647522742178206995371072037126914043660275372187915358214980735720742750024731819388194979065978628064359845173202964696035834068315532774359800962582862987670343991692513370829139277255939611064365127163348702933840899148189496681719489323800049668408792118236350099601325506921219535410980749793611938983233380497940964285691110946991669188778526354106423035194218817921107212482946609765357126685872380977820859706624637515294757671985957736424202161528442065017827741394476022679054358340222669244465802172457467896830655124909480210459627580071157078051665455176332627445809369024569289264468987203668011219202774353966174624794100511774048608531558354877487850678037420527464769282082907244446528206439766347085934070605241518619778039479778595807921966350125090781725289089002449942662225113986854419727679446684781378961035703389937610424256006662342468310516597231610670056182815465021542872642148944967624872672178625740688928021962639016328486239479468373053782749433334572784696731499411849820083911778617976577424192595934730591433891687408642179599601229207674690547581619162731765943216784549888845816015335532184743287429478206191775826955505172333608555768673727546907841278348249775919282019601274287369392527782806008805393386411833114142663356302709244685917241609539340946315684090394472547079143776798138688021025575078258688949936937205331502939300986275658159441698674237958604409867471654399286861447055813558772239801047116090586551920511714216415546660178023717299015342147377403885463540444110563832049484976874301809610964458810572821851484577775628788466403938960210448069679879599333349507844199877339776888536395580864305240976359494397251721877833142331840762796980083285564782927021521486133584646749255013778516611183817672181168725727804440642308985981644265357910684108678327225740794657447106204240925634430149417914500382985655792663219156261323888902880771804121530614369145200106695034019114900134573352671891094356909097021021972599355849484623992476588710912747301855284593207375810991653449899192754024917421421004875691543191211116129019075133271196743074985584926027149962949352629512438282993837242834753951343481483899115361584438333957500621446100787807655827940282863301114267599986852910412982485811837642995027428120018104912208672435015857698882227346523001581203846557176603286438693076739418284340408922639129133239699509230021127759500573791994045449952642595928415529977114602605428242700215184173284076796954958834174242624619528218388738656082043049576913787797465351507384276039127174402225610193277286250664358676899599060390239603943918390261204366093013806913324202457572322731303353726065460744479718744712235499419570669212376009481502302956412466808438440558612832057668197853334996441114865576606997857648474129651595369394907099930861943343650181842625939747032307596931230383206017366487202837206908041493103180253921419896753959894920189817078918971888188855767452874364872366122541622813071294570557150355721299980490017313229132356627936525554853589397318690296546691948397972626934924468474114729376623962775912732389262322009554313788605398450277057406081632213093774113563255874266636528101661495849871209497982742680749776272550469767215710151169961232133864905547184826268007115870204994717950774909288657923749746638812265709300521408340499209958110223151654035008533074420325229253962398706036051450147253445504512488478261170986722117297016720326793472640348859506027336101722303977505399707837466227070060427031331793659304126988325806158433450886627120406762065136598073805723959933331128282289314498641331944803068856665900313541136268761740426964219187378341860725001343927571591737157857748239342395717990650765630118692348581692147018050731435136446348172788947784873161785461436571915541599344836227096598933276589097706663291869310468266566979468196865778403603078713089282176195035911916696415057441293291314927099238336057587284133623472123041836957220115370407771063560300197403562517325333858140454002117052320291993320712246406174349485867603355899982243678929874559737594307561845272569794478370457099342677597170581121711756642765841357989322204869091889479835125992286065057735369305865018807063535203515725410644865554678554927102125415256624051707915274109358881031821810400706720667340556250395165053176410684517871295563828474732780025615706745643640025956147507278273580631633400575257012532108283430981956221709102781807031154663693651654528976249342106753632352885311477300094946595841045830446362489201173250928609013630432841715236371370926250595132905859534004874063177591542864477425063435427789686156164955703752699244637885113167513110525976935947797253064113907977765157295201782564597826131509047212288780840424458333290987584909838746842242301281794535975299229417243413497792545136274407203476852958588102970879822601600500322278766742433472285874302213179913187670978295830334942518956974972141218793633738879241394270415971282664520904105339137323607361674147647089281932900684563971318510539248997299250294061933376702231088693923787175055912662257990498417192383610040251959614674006079421610208302760371769843673653682624461706501177701291449227900483805574423552101547361596663273945499274890247283205275470123634968577337273220425392384158324639881584426289920487512649155407278408885512945541075566178021663085195554306930662008911652529969988801151666859454719891654725317560857899074472380635825648140032016021505075225360225322759845338410962655660532565538549244796680702270443983396858801102265595776109572444347679307997861946091432358358749567120022814238748585233428751004106752168316049660952796305528880275706552064727009951630988891585335521791036613234130308248231288873185588025525901304311076554198973708012369616320607724866514289355688644736698769881153595395695869126215035439066197848963049282904013830007895948365607151912420291921965184414961086877693826568948776625621893526062571957357251592328983159880957672596534581120963750352866092349007689005790606021209186328569343183458895210517191938796420996369091149749816589642755708884039294788220865314402541069753034199444763455160755859191165043032659053603159728861006963879387819651851564941214376637119682320105447421307585237920685604468918791420801538124478810759896487204862401826420883063104409138641805199013422583318062237238036843029297179499788422660551701905858677651230243583846897492831826286000043411838011146011023803834104113614007094061798820482419549352097673669648171584136692575837991669430577204484002017953535061573001789477457417600056848895472526564476121868168807830545606063722797385916688817804706338987177679800539620048511413932510415252279420084662664207488594180637190202055180835689864044171454505409470163524229752179394733934358085457837107494381699212190759554818835763444545876856469531825319120823011531864314614611580769193510098103994946483450481809198356921959797329214390907383503969387017204560052492724901873758681864699589578582323503525564974807754046723709097267488381361627228149046187597964313666312461623909617677278952026164964786075482709723415566962722155057624181429327444169958423292637983072931344993943390669197434961783629225297841605451260793670046173719586423487873074425707142929871184188258461779932806962590413634815595422822386136951336347466417233098906599018923574111860435477022592856166130568752875265990819908377963923390638002562884991238199848696758097576571655563169659128521370943190175323859583661980051378614388098112619293590544306962904737522532114294721038619831193164949760529749299778826602526852188591553478538447824813222910362314442210838932384954504017708334668507221951624386394970530553340920598437509047679515322460727321180643006396657447219483017439831041102590625650734240609447409068828210982151711234568987053478678517713120031868115342887097438272893990828607596261246490032319994825923378696371104498975214485602675683381157729326560846616900561822297212200698316223125079925022878601535999851365774445713480180214093877598246937483350753626525955482843563505394223057090555209929965479085301965828486032675622590752115528161888937555395457785915685799696559513969952761365651785746700641627254193867351237772125806182551197292896663894307787333297048080736429625821559741984939775275160607748683066058487855569201758275367211163988520666242531765739276329493596610805886691475808520212385132620574200157813544886048935196688868956839972496749160981251901721565786422037647402108552873589825997270376532881488569455387888461484918268508028157478341905849303266882469822004340741460985757040768654424438682753112605938261034526939796921372727676201986804168521395854872106112101767714466127361661685866040818090310627291895603069020194607696592374620357823776593217575730488056324461588553233199172330974373944271797920432572474942461836882797471758335634221385102963324825625551554188039070260262384726453050414840134506074080911498045712425228567269945319879535249806453094873625798464881325039046672707432147751394965670599317677390971482462629706165106235978039892388080779298983211462601582081038214281043159130087425979506465260987454452964251472025035082493679085762027585948058557750263688251500097422948303435840851878681677192521709188531084806615823348174599522022543447804606559816123184488467800196994219956594820418049969340336710897239859510873357391290594963394714827122155870803894965395070371274453407035851837474105132328118511580960356159293611717476990388655801518458185139467652548824984294096944927743007562148912755344350724492830563703531636035072906810771336271677429999557250507463565357357885686467324882169944182573190672341395336237479577054316807007376633287738044054181552027364563317834706421931118010675668571483747027502583760897821993170393327107850902828676918119804369679329013119668424391761004340813591940826224559449912312700994636463308993323646654051339446858587086026262522732693421316840066280719620527831702989497419807621532732917752545371300895327901503895958073927732994770532605272086127671792396470110398788556195450339409636631674193545403987549917160733557216228323384071528537428063203224410585070103612228184271086868478022657380694618984499552318222753777043238186197632757617389743629030255087818754108335821337715390110748157967545048622264273795982711906945342374947246738768809931882939862552622923239150204003989790675689766527809229478822602385496242074327308864114067118258763176582944077113966833463108135706625555655682869940968573547070393573493693089337283511495946280855924486246594552098371395981263523774666102255178804093635541808576580631186392410130686325985128102663403655826745386792374720172670504527032240086615869837787611307417979626916981769162910795846326711118425089707667105663904100666909474092058355967225733584134476712396463095621868564396990271157583334176128193537533445709611884661236039877729127261520222235687169563455296910807355534109891425369014345908369300583788090534064851505516187440601025966764029414996252487900558688367702582915437709999430326541011707770910016192671782306765296619223402450834348926544671210519114466200787419222685510280837845123536726921849379737196850255686102981453027477475014961502635271141275097464868963394946549452747209951319802842152638190570899708684891348388158639631138342097444945772138130862966249762165710151581934433500396648904306355871249162445813983305656338947362909452313067443157909236086230409180454240478248290698852946395083860904121075451973282117163694727065973744852169014610152330814053168376647655957353477131629899568609446119002166853397301652374029020684496331982082654794636129155119118420453582928061518884171555009265459501753854198619667928728394523537025929328681589586483292051278631465648623887769943536315094575395702024454667398756597308256157362318534910850526823850433589202176836229808443380256214023033839130493921637388996979051367690362155130937520823881674579734474463769079669959390927287903009084642842261163047930204675867480162769423496901412531692099165712802337425174828837549859553649015383874676605522346933345220711098975268834370490434461087434916762404007268254411346537924443359293420280234703210174237660004981806152349709660983777298047141324329964458197006244900744149350118726596982531336830897632420843887700905566175070547749225585353932362924507785943251823891863293426637802793282235679009220525995312837143860923628059800885508752349810259233543294117919288928973987671499434492098368143925714487636334604975275182772029197695530986044901055602178356742333466270944609704282809805101720034197936895275803358941819525080111840851622821644346480805935204960626469748281343778524793997752521590955417061299655757884495577949591390536430668011704799122262304631457104647610403585185585401370413503951970075085086900240416751092507330369521633753000452350016381451472392987921588397889010732173383220630394383491735164847066933549615029420004017133548024450621019977003559751992159364433280322831970148595812184862422454450703118730945966172220087259687722660778547691248051717577095515888654996537618626730032360759344192286442222976019444444271581022720229486412260068641093177569865523102470420268610663908807439894397327943181573765163461349916317505790004221210783245745325156742904105279271252115871632023827863955464284252631213016160494169637349715256107061942067509945042981842571122138910693137462181798345149580057269781735128341163915395619776994859755894779447994631865216026155711866947857542975394610324870649017286242573200031903523953335642082285237285110599053271394692585559785125366612069943585975410432871687979726350349416875519753556872868342731246492642968348426788458832499924144572554730244112210135104432786066232989894043289824334991460073850197516176482190311107596564305095821133059558151552036061192353469721869207902013146419144614687743733049977605422179235041370199914805617338553194871121056780609050204946320796208234722596002968892182885225664427742809058428004782094476529821408700611543758191814787953535164507710109646476699246916401943501212395065588702452658881803937088315606126080410495819936779597133449404019107796222932796275286762779279325866491150284937216211000718941284313867536043526340936829159198345907533947169036608359877379773977903528807075455798033197877012435897163382432615098058769708662043789120798065244903261348976040779881372095921531808088972111488945793418373815176285924062382305382335344125380899601489047832572357625702153928124849899047765492376517766911805923055738807255896705046919893554160861494674822347445500920601400479169672184249874785594782476455924431234911051066145508796587317064603153969033332870608346653286146355399533596281559651235171636921091770873809177503570901895603782508988396038354519907206137031477267750814175767990861116421795613454986785280866976150623997955680277984712721289991382654896557269925659257130617064308463568264613341780697212494713758910409444841592621113771897138519853847922724427033673069152102607459920846051723095524271855018876674813833270471720210715314948819630433568590933627857194788278365622890201647858733580672366957397755513880593954434484021907351550453602364120306418667422366849014734474464967498910588953023421772731346985471123750198737291235361469029295610208170517871653374255122571601761234482707928795742552961429015207701177857749877958605229828781171265352671423864123100422075294063387168060744488831251169316222239477783192630047106297509161239492079673836597269020665633628533001880071733184012404910652191252049472024183799931923381198148640658278942774238030809291659891218835494982736306587306211341178599147980211221112561320013362988221743588796372811130063421297411266979447607022320508289888222505501195990223416878580436207865680473894894509090396707318329156009051752665441383181456294852657891041131175122717852694912344295665339274888315996147365797218550103349043621474747040029122480824096250507077632263228947181719486625711975105387243936553041582474472048184702082199115827746488672423362880030170361511912923897785077145708844111356159662776833167023519501721723327500057223369581221004636253903608854555814799598642215774513364261088056230154975603306223954322265645679521421456703445764674311136433583397072126207039029249179155055980244060458948066389603815453152685939602762017359510067275419218584034918102546559689808101299691365488810053014659914051366177201504786874777411782034832067349697158438225150130262100375854118688649239105397642427447303689290282378045886982574974988289780513919941751932238883229597279279786071735795555302843407436778376937920134408601615279339529643457310505737656027022741957851533992418892829759470224784699934349763361996030800437438767830924327272218675662870172236675211648303203604747317211348002519090440185031044216026681061503375776701826285338658574984805307568506844323548406141914579152999631499283064539678504531330585021155368576242525008669228389235649893705831975456092915907168884567496962347135069563766136932214330855599549475671753031663884629253789654635978313668457333564299630505929020852327603409009503054699456155167378662595690757345038371583025758774018012624472417033497004666429369561577893635976890268833152419887217928997807314169193713221734994361378316723299970735330346802294816515581565977039228150765962187554944665669242149947238618509122918537022990218132352111657242253826396980403458503108952963474062750376964579327157085112755967342025951544670943353889610827451785168547540956118785652358326882051380879481785187700854035093806782721684056570252404510733124407853834081251769854031101917279464897491396039578645393215587678727579322879843702368760841715828346411770751324851624227151608075609782004360263589332163965975018717242328989278464474252618449102479241233213326218221132406665097787956828382389846824345424922542765789303910897539416677362419938514090849963618150123846359412688323990467108906041230980730027043874385557575279049293966284184875382710176403357095135366912810552033317360758204694477680571612368473335586542807307646108366231909300724898685199184394302811703815889030426798222992311512893135044227593930825628592981489662921304209451580013734986669587322038843059583529919093722667012350320892600278937817194377246203990245682313149119799200961447381702020737090562621844370673167985752638754289329484624016358109630717906982205295865969198298416314419360427924932601477785160291845572743041898456107706355409034970804165534945460946648243917684763398993400853227117698936043655948290976294860992774420023117656481381602549813539202716280400006552150510732794701886534721333751151182352436406639882205244191737069312057680666928521049513246494235034399263207756114773413012494590588102450980985706002319942074149976686573973802095441824565712757298128059992637582359145440900991673130089337274679054415991614590131763555152556027907295008757343064758085501373926053815623462294910225931668320457926514109141858428615976880776417592270475356039014130105464834760653360677726589690533062761103540290153774705156475671377597277037437935650350288614602055600754445356902398392369376459116504984634049585572814583981762702937963568202692312435330956030002703771581225291405504294619045290159904967760010506775176263691407402829749733955753630923407852156873512932578500082254700549459235413992127622103531839879916160870138441163159741760455605055838154367041623079958782630138736932364872377139709435716280538928686633694581894923541282552613872817692816597198605961222102793644838198235012975871979660338350748721160743218960987769506839397668182492579940845183245201001317075208896547957108911084725296341641663271477979096461338498937061001783177117495380826546991418858853292418464650299864288343144698528010716072171995838918066399571795680070527048937061827456736736766958671517857531274167149119945138413946087965818575604997655445359227774536073625010553530289858602996871163292299209501318531886275764172775521565896281767478846076079618013022337373580011390968202515472919427194654103214551020720926283425948305026472380993640114200716324919201752278595930328204525133278756959973975948041383110967836344535743154676294592713219843129816117657727142247144075629849706438229560496745584046601891810646427017471837903871177257230924646666845355722627552440335775428281421085988235584367533789703092542637417172139850378628197556953392553705224410090025091081302753794412355579862607610032567134717466461079010106169375985882879937494246003674568281037474593179319992810669966262305405528403511615942997186723881570311037117673572732965937022889716571635779460823212633344711496312501734256992877684417663255085431731492865304135775851285925292364697037568806420369339121234704317593438914719250357503472592627733869989078566097220588044846947993426030164639467237959533116864697721224154813759795911662175039114263993159611821753447664457190187647096714029507659615788509183133832293640831013882130918905098114587051138030750362160140125747216682510149316515653831421035399237915606108549642884381732241573070495115170065586320451849473340443143521678801062775806449588020848492863687833466632285417263969197268983395949557094674173083947356741824655742598121325268358723245854108016644597378602402547911652545185234424538663225670257469466392140056973199697833256446957781006815114560599421711487023824146093325107511112499552231841975284722512336491798174605064551472982273035428767251842291503202016787373103513450240030087927072592211794133653959608656900907749167643130915066199908322005329399897320981825083924154390842088837006947422337846100941308276985005379070152547951856427239904844324588639500777904851951124980659508384531780894622943462240356141600428411538040839446820163147334243740907378633213781423138045026412868928479437954479230206464928844452822923563359695987621667506808605268883613780357520896772527048627822848620032971279107493363780784882288724257199477511523025323385200839902452716783579140541811553053184966021506371989573466420039236797983711588395177325218493187855321157562102775668774443347211289054324694888765048667882018870728354564446083707033596389988192641097195734369089649941454321884938718638810986372190407854128496523877159874007961957506884973907570624311417584412976618305008095379341669687895897403609481227723812926078411108748573566341902782531538917836671624401320113328969232145674746966958795660051169729460294658206706408402902118829854637573600274849810531662279592628690839761405798041884434363241367198673482253241091839116331360451540650310214877353616671976647648976283256332365978185443441997769771263647544760081944589641611619315902728671216419813914578449180407240001755802211281017048596379524622458245564468623403148536624816083048007088866181687392979493455205754663017311719076790618935768604194814811646465812121628478026846369161162478730975381718363568136456422214494246601695665858035914936066582258044579221194763620224954116536257403163281692776565599500390536797575376630223029879953092341507422937103689389579197800947767611376156151151527382773096047827269645906036158661897587861478669084366350702884400002888044962880850832723952664534440727762406050770499191769485398805574593280807292844617924448734765567112981429771653298551131805322029092833803652136770343272644599585963204193385965398867136563873468127851776430103910482964373616722209099748262706006382596386809011287219189509219780064962960825427395274957400723901750958015741187212530392234910932733968781742192841629001446373746721376197401097134626555318438070410938133328389982250560884673774090106182669439960144755129885344917634570074641170602565918070762968681188775627608245907673525379910535398261655856683871549904335746338394877578370533809048459598222256812117935297969877267773886524976357667220214790086322999943635162917997593038708881399164676209060315287676178241722646167692815929757533725560959855450830971318305967250734725587580197777286259912145881174249022643228760089424759003590095667711801293419823398434505253715919199170361052109958615339527285708539574094528466185756124978356582833933081382590087582450280370561511251610474217821262137878608737248915016312743312185138194980956915551386513932798716825883848782176725144107198220918000928532779588179003581989466860608015859293550341298981774057486666190515915928871653471009941378953597473712652552191350165741702754420021557102977028827967980899888454367967050402472816445314354977221020817549232998892408224991387019907060481044274903701285566180640681104411703936629417521317284275839746110681233551820499368078404089179447485806070070045813443272679518557263057898062667812720678151038360590996292815056720074903410481008798688798111420032683258351689887668024235512374809952207508768288026957298889198221722792860389844339615071657687205068543298129884365535461069606666497738416724038674483713711510854822342291951340010930122610234989706031437678703363035189339923399390681065102268625920114940628545803778134140157338913897828980201910804953961743258203638947226072155279280767791441746122611969756469410824686954380378951004923070123631827279669948445312249290308681702962732716212395221280625811965975654174585760025895253716703391204299262567382048886744668327203198022402475214045078803751478671389726420428389323847171941270428588625800710437182054447759359577682648877289615025422069017001218212349709082358055392873159064060442201418087275580323507028188901608506719245802177260531917263854611459953933528454900080438714570533752491698786420145223781383304576344237984230439399424398411843809483837659594274248883782053264061053599970136890175747760907906333615994908311149337736795961646391839172951502249677401377526901219326309841949580750065082054752118206682617744854211392594570448338517978623492580421449128995078765083693222330569104186584157504948380328459747612172766049263957131967691511056165425793839332666755260644946382535333680524195842426877099424456217284778133491911781471399934848765918670873871283158022396152346131779150140324310229371632047118914181870177058849922686616717342378195208381677528444323400520059903351691520820058395573649256811851406633996983645825456163881971487445245930623226216599827183480099894187217437332766494633678476479369814342834249549197698809235083360645596158936657049539843326870941987522324989394254801901881647395443018852364203036880195747951330680446711224281894377427125309285586911949166157845871668996707569744327950007575022933255515977326988435807815793254002239016331701755495938860773496590703496039212686424691781732162226456483749648672916008978068587887285411007772859703250510579372368047372415913463647318151778154818853132976559523147414320046004361927512334315101554642736117921701483440203363731860129574795477424347181980082750208128033736610175026264775954933155106975811964561332944601501996941873332087445916221342914154747482002381298584225282179321994137031915518318964019921707413203421635725215808125598267296449755708019332418037459604960919776698545637301829806151370688135068115662071480452359450492365120861543216849734020638595498056701892744594672388054891334297700678488571498587256857588312116520651972810228349760330503431583426969495046515395686448557817226324872961956594590625138090761208415321037044708022201829309860879343187063248884827884684243521140008352382858772655694637040245028817451895507468955131613063354975319337673364289501029719814021797183234140612638294253315531267797799443587413187060332058073628156885996200278322707770460320650751389379681139011501509526824232459816739487058638654852199121311594426463287258471781105640953120246555516721407754623081756746009981336593776116217042404726336033384921571761675545072793761806261821360829498633030747980609140380199181274751950365183803778453187343409172423261466391912306136923048720159092549482149345573264622554164506624301809459496914173960980205770037357359789387894848582639322904694171523533381224609515754904286808105187248135757446032276863892229522527639748018981811700424759003117385161477554273621541002869820835258992663151503352128933456760498842569723357931755905443570541199894899047609213148889012539413990550250117984224200293947019857443304214331536256423959359046117016756390876969929366298391138702873293706974933727180083783396334684191103281118955868491408201487116876825434464196778973724055105801585528563362109925943631313770041969128486306167377645852820767059725585348994190730952218229855681717217558797518955114807584378646340162345751756858717068973418844049820507282379944450400267869681919387890133055239073727237453443648042656612765135914611027600637464882367107489079158025887319858234752277972355644821291777964796270069416390791018517425032107079984503655819658147443644580852001815720434497054226034410258881271664341671974604011622307667877783926921232678306851487628302873136494605883277553143887260749860405453052744183250316916199253396832955957853331944586844796316158757902957564988954593407544422214276148145119275440072569034383064138881509944049596344452847283661831101045290492129409223350782213751268541980523243933816632392368369224867998889437153128063363878127373700984800299430927963675669888035030811460027946353382490883020113622829470212889672780443346695416237155156035333260030768417102491743833762119905320888532475373824409034629269835145397731886375092199019754551196715379300362040680555697472831148417992251824338707205518655577345385575951558913692600140339981441797966071250974290505247774421577578245951188790017277466244621169827276525854291731111960048822404138749599148161883127290100436554291124604866899586377745504787058729328666568022376446191614623247967594954700146675309150238124485853327806037134548585901383042093817945768609184750910255012549631861690635065784536025440005597755814712959017511402552105140737258196806511874012558300777731396916137081993221098985080922532115229298238762747097850629710652851921327273381794384002277512701302087393618699833134238566313189391281910329389226618935717441205486625455290516262348022862132335864822255623087500765692320838534607902859552637340458886818567016028557657862252055531990140350127736608945406128712687378654683460867107568058459108921644574101647406416757588608539180916635360266761458196198235205197953490346101399872455701237423061978007704767413018265692617010857560522478716835941677784950460450471667029341273160265118989782477995851438667077065644750780195531757272328584519741762140978880554661813975290275333270100655555502437598364262106546055400983530261088886640876317915386228979084369442881701018713241124670665198372784999450142429005091526095502595062081798363151505276437156340835632188445336566686586035588050936014013475095801886712849169027988341804485129224100429256258444435544105162577108157039629016349142078020177379042475796961760670407303306829767540759848714178294813734771351388535061312246373117207365020903209657153428005199291149754325359264487740501244669689581882161207581572389298542085684277006952146372944371194844219700858815840699809541781732876637827562072099771726687867326478930633145176578308943525973830566758288992277991354778359828943116465896417895960770524696306317633086320886764276077632974188332733887855887159264450603176009573740512193066325274592766520912370204404057421908803105315960911246933002002889273216530086789682916361757658397388348327618376547977723156479473215272481998674173765376843690690443320196314762668331984880598976159239168230735697640685379884938889407968272542259437339811406465452452700363422752239861476761720520263563717815541223034318092655982566383525387737749719650432769523036880217687972053978542432065734024640912686654777128846967227595365410646202335562485342980481876808854030071730050048777997116276339991532599801162011118541683334602978225468260477676509937350681139905402733012165360374648760210687230060034317810597808652958575630158885190462949176838238285450284518799933169571583087825680099572767303543533190225456846998635376306656695363294845916908908002859328810372189686322050882526654348454765525651577941138634025804744890761596423445169019127611700323670868022732026339037693958663783347893920229063290972951049946151529964271623624162818591852701611988301795247680725542940344169467424262076587435382624719173345475332835224941209400408145583876326853199257368751771739282129382634715361947601505456830751497060150265903394608475284216750689424388540076196830738329490074923856492574262229487414431879237179190705325883953151234145696212028460873902241477433738828019311297848102037376171825989519927024585265975239101257126782733757226921224890033339385006202607602731427147745234503510391741464585623688179089514441137274274584554661878080587748002009009555587519201642438869230899123636325966103122954418982121986785050154818951123522721823143388379550837848332862721733019236651353578304804710956183449846421395089479812887241027078581300298465111881635094422809004450168882316346680392679079684875155156343448819266490270096306415864510211685631304803793802945580747723144865347131480822772973153330113971457379650668732927537756198798480748126235066025294812148547037972870170801571327998842387711685497257479516207672278074167417418682990489517228837781352156404043268159530900064906251381548193777769363048959249193974799071254406550930153102728761515026625391519130364639565532029754431116428984321644960452393483643234966687865818413733036106937501177829409733757589588096223810711757204832699388369984097415024082319961628475179680036075617867389730764523706558597782946733365071415552880792464078299832449607994442763586241652044929474152852457901493475588054801911674432371128859178164014133590424359770855457767045865347481910502208318839204277464629798233659869420208194194892378080216679621168527608885114141200760762510462912082606168272424858863245539952911451186408481115197922989963419788125404624635657629037352528260688517599996310517942505526458887073243515423403690813404956034311193249095723401974253134816656581692764736296682075959226803129545306993049249758819254080482649466008741306963263483850731611956998706133220275182822621640637963288170708593399523350674732035433193449211827677757680019664646756894792514768761245606919265760233617013973257127318908100981151526414159513046297106019180825809286285299198341578966091057162141515004242584762441252853944874274138124907438873211569736258388536906191912206306958322907360195455391623410931840989156036707344116339953958930587932289325330780448394434872653226005845929826129773673534336366489738401295024710261812965057717182151904903359000748532331817245745736386018421276682741965976428832174311602795096424277429823202728420854423867571686146554812555623704465308252635074268723944436792878283470125372010768137675482268484562724129233470327464590585702910096882241576493705075450708643678634696416766938497496442664617551543797043654643262927334368948947918669168835080396332291502876066483145213377042766896056277968191234110296321997480896475986832122213077488088113587934013098528416332431397864538333115501236765161936100500546921047470457674175300277969282674622081612778187551636381373977706112075052259487494349489276235621372911031768851615637873159820650142163355546194274411631887076018948127628971938999269502805749563895880484663341137994718661565739294326481314627615792399683109430143112462763171274848467885911739322192080770894261934024565044049378768210872987206491301794145741975639347663619326975211882343083221858909912255454930970460613278073692895819665360548996347078296341371554060165718497755011869507647452795878716866666353991910423867636688015131826015204610285886098473957370960766015175961575545101760866554575631231224183700559096906533301475453516244852536242162270677963568081204456639301561552491556353214965791097953055560649910900977050459764125631226866333684265352739968674103042689873452869686424814286450545408293832910039291582722783335415304557266841243851538859407436993824422581645984875236620388650590137164316902966853661772138830774025616824133167317450860787274133756952486999216604476226412925642082321783375905314413925182079528147121963185194980917763518094022923288967451649391026088501604873688360830598200368236078094091895599263186739722582452156100244135906977331538842623383123087864152171614929617758084886265463725777401230965697234101428775962486088855001534130350611483105918324230022728564800437985155009110297401184117065742567844926883722327344588281581488769353011772308384814944766929176072597211540828978610302729526559167140375200266091509808256816231017356994587701244933029745934677872904662232996298326266812078915345924123935669219148613118464243024052007206647049818284165663407771678932698310483015410393135188709461639299905253256823156274893239994819964872435795113129138781536668352136045506351633737675249495824504608893619834384647548313568508690943330882347547444580390619512501545166762469764548207705306324613639064811997694270309117823249458103146697837867017330153352418473600296721715465006505252716937318136263330228822624453422940710345583293626206938093905537569186657045172407106478801833291882770087257742760074258474535816393166747253789892918068681179328428163615847097576024521957052683851464763298231685077586951265562408874038775747949947046533072109149921208591968141155239669055525625394057737571794630707584848888661693152757731924446317894711067957865913376500421717219271363470943262905674158779205624313729562571792920875867937492910396471561806964717054181770878497545347158337411613842543042030894470077395192911955130584897299754407579204864944515366521972466509926247244461779381187216695263676789246433213975149453620782980080757600610621191183127160976465710161752879778700195732640706176563621456428055040618402233530569713301392915921965577622387647911797608328412477805227233479252443587162146383981595738112947777189431885732552483001369919440433164470569818880015326540212299401308181774316084466217124078893674420209041733027179423764325917498497840685320740195813197397410795252378354207161774884214143399421903613324175757965310181074759272810716229303102774389290241024678065247441828563289426856660331359966068932554705109574271843011071912400016688539686298662475419937241754638872535443206918664581671169460463249456533828999768622439857243772325212394016190458985552384417232670508321966705520272767778078301582445999341132376830498585440846469362675186951120571864832568445594388346290951833211846584659256825690466817716569371534432502868328559342232352723624881088738063942162712622702444572821179457281767459589887222218126860299865797746767276713414340580418088324739223196110181209484452122731982419565838716135155906129318297895377678042213591360131634000848829606451659633593408768011832830812343285269394590368962567821146526330186558139706333791719241360017463460093711442409346052220392117797018646922501185615521155993659179588631982126691603751107815459113213401372959785059686317034979115289647550553654810198736150991403658523900506753044599929427748021712243861523347634560240120754471616958894535841736140646808489740725054647415685104358391426782194186848806904269288950754679636146404346205896908339101366643283753680472661290578153164791816977882115889095970532872056743478696766990217501744703212621407694737512510250156613805967890277199210892114645155027599103598061454736271780150152772592134099421344805392357727164415732020597001027065060243986391276118083818667070605700896706235958401986340907173458248795892641564847873981374021517768104535537582900283569005447690504919582047364388354055167280674802218863970282849950987669071621112357164639163938478843927338356738302906021818534449690600299246595971452530804783534164734951798938746958783792202684250793831163413418567255324202831386589409204997874731603076413816374786989232365363297621435387227207453016772846841477419457399895239141179562725534445407369054003555507944020213107796315181607708052169556678301634437325643761165584952370140774660279031715679355579128864437620689674346100414982485870297044592006045368236033496638094928251895260204327169190250423526331289221429478554337104226705055041693885593438124910714855557761609180349835091941891620806982129906074598868758272679747173788136583064673961029876924065429776254655126085778884958494648356606461808402773841781390785682833153625601362243135793977551332430177318416611065148246444205316655969922572908127195997052680650408685471822623894741236532889344250794667190335820558866735700493474068841844404080983295640401843953144455175090258549473961888978071098571024830997120961441754960811853207419155022669650286993444895017338156749019253772444480346073390464249638380645739898548283960176141095376385816827704383281824928709663518408455031101513516571462716424875285926892590795627349807543355417557249896660888634742935290098418935616866212918877947421393508644827299317356469465469977592185359598170324027816413267008289285189190791801556116405768260639474993386078701440070587518030469868015768937852263905671065606954587478008804840212617519347493397526035501064138120498625809341807747539686551289231049700229482212717607999240310505936359775541582869286200046139307034361005749016635491143040561696084790652046102196386597019706853103349717294369041090714761267533687985323134254576989317891011280809907860096559387600910170177120911405071289926566944139094281860693026588467051372752545642099690116835164656806997569134988960756711962015337911864915761819367853807133554672152522749852504604123274644129391685809639471695864677489535655975021504999217168953754645724378528795899996313301864776459998744471602052922804274545516145206411110677780799760151424064928919688461989790701055284583901714296863257107042202751903165501201800718433660559238101795353850252016916011919213369351197761260669410188494737559526433951679806507485692397877245796132401730064088803621786323950185602094417685975551994893664015922012143560046121446794401770782566933380940744947042722342155650403296818752944693868150973390075347050929576564247450740265154979727810440268991104130992042751063871750692696668863670822285554325700816698209045738872598073092847240342458634485461056080577968086011747687310114968290139627582131409289431374409522927896260854391467498313701904723874565730638972965885572378889174597123114435681257392988942936836384698099297278300835786219567072748317173090900726217852709848977547631611401406466120419832899216946982000225076690743279859686092252575373558899074626836179025589536332726542910790262173224409639681454353089555671465037368315293028258659523089493644646754028847656820762970665641818027267470079506817252861285783256638755467593028299671974942352169556051082283922274828857795610966563196981445272275591300689846296225468453366637977823066758466914964295487752443438073614369151085474600920745475473084436749457225553070625494678871362197357553603640728762621609873287839450260081918165079411344266551818516740631678096074444689478187302425060480543247212205841707572210378982240386009393366799514913405150697824579908578569350203515127385846193894257981387628351110236604262106991182281264988634281050845213585270743052838765517367360145625084262266054321152449364471573294789598381677438117708968372932137533303695198956905706900171140005915464601001350913242791540937748249787639938879423100818750599085424554502270710963765905598130462798914370841858290091184393196014311975207082576680008415425637187744964884857318456391859270082107452178029685617210321412404818885440783983428951721645033854539634994511824471160503953676381622515765952256068468623899818409670943878617077675354884882515363154618797859889016188975538399979383775744848618003002571084250259207471014778402376953277371714040352321051980702595035972913505115504481479263347609223151128655534862467757046204458733993029874432209459778366396808201119699136687178291914735547911089554875965093965877975590696150628188547893179724353178276278802892850162592643369264043500308838958942999513895236996238135871347890117097582859649997171882999522016846975452611805776262177687515854069756530853154674389121496187094712227919465205857338491243283488108811503295519629779054054978197321619711311091519577265770604899713809387904058559981853499367755676915440491137105990400385364946738746838541509031375614838743827739134942655679560087480946350097343268262776060788809173792210037490024354129884871018227400246200830249135226972586542325223006481672854777266133005811580004398363463343217857257042922364454179025542380055982262626697996056002381484809892455778905793385251691003565466695348325386294273968844022695591990262164165772807772015980600922014615149343290479509528456531477916321033975618940083224511353025141851513415275949141619077595567950828062279694580692256576062831510312327527219212842296037585894275131934478198010501409742955548813462741929512370182590479728711641896788011610798049940665566101645447017562623385450440849961938411664679313380413664020274637711344800369209136275831784761401221057289649557239015133170905961742302909732660969251412576567276968899677253404354981653948476585100035647157652851676294316841921653710867142034794210621013448055389846049367906606240252967185212200970456967269099868037982894273624605085523046824726232839873762294565963734531558301653134775741802720111429339674850743222429601060954552575949483399798092964767343389741007626887899954043491305480931541242674641543829896360092379768142583874097244968574012438135658688795454299598048474286283791615491778727771970269005250872404769713948332586216245754567288424101406673884143483583182429194510066290264572786995804916551042576685923838943872482828370297071411441557494516411500141769113582120331094334610963965513054115248337241526872263196061044939421537427265184452366094933453232883905749470867786765905919058995788998755541982371102042872961640664205130284893298608221016655244282222661266401499192987934501270702591046522446897484191182599559712874051638442309265544365348430336668423432032556735582343785932942592089797422492427178607884761955663807445814975897100786265529408764300151577081042965203930876799152421088727416062739903317207223080286644968775439261412190861105765193008690035466236686454733386235341557422718418632587698761861306898060892242121640150432132334293761936539300317658624534420031642786267428390393828870242669197552571789838678217419257944103661885835546242791051559468482889075710378163438563193522112855540119750822380407705054202018731270725001705465790875872607266652666311189728007336984913431360219782720597120473223920681215121329349658010126150920633413142200914562772726319033276292498145133891921172674352492385719583194030127670641267163258575600782157886527396650646077918066562080361748898391487217545739288727232945470048084911956453624975136935091587698890209688299279834075914727102462258668161528602610726158615096590215793008771127649822254839807439623347066314679621016411328984842401799177956948449370975237102101797022868186600214284493930862999041819440056126053089068364263018554785838384231623912305136948166158849266509673245575593454424399698934930261289734326854092806279858431656454464966519433799366279122752209775981250360870611524037038720714629796328771604220490416847094533959787460358546668137646408050704589889340144260366916834862928948803335261673210863755806660635394600247087035030657322622309431682851032049352060269373386795697748999832171715610380345909867725454648557172779175577722278625367957204592169555716041126750256351464462943617345827328895382584883318268694475514072476458084990653981655662236549679828989333501648491875652735837305052381107247377847146650417104265647775943288600782370987878588842437391597283753511752031282723072110037615964234404750712072237215704338103422391475110204973827891307493004639047995429008116799531759845763917690786066454451559463101135835683876497107241024575705469199579450650060352836700630601883334665371332832772146073017043435705720551187146556655633788172648016195048089038558648511061822524331654433767823344545211600103654878745111358330667977523928713452170295813364842766506181129066311061758537506838125810394714866865152237358916371566116095487667677766909834733214224762301578951152994815495272180999147820465581044395701085637125647500391033423567932702488827536013174767444986073445164282518394091797840812181924259543508925080166976235679064258836384417085895979654941793677533315374599572638749170542333838393267012705531465058909600254081480950304440309343656669312178773284045522688225370880513714518576730349149578948035861763760054155928056216327016235261071517311829006642472671392299434675001935182013065597869063971878364823313333099071293040451350346361641758982389820751094800292055102025336258171935266736705422234299900457745051896900510799862550834412192428332579647449245371888326415331969210520640777964968242897445081155824519550133498999915529930895625863036619496908192836444443170930634166836163747515702004582993988765876016048966940347474320459354404851519085002191929063536835012135959492684092582219150108252900367712787765326942785051036044868816986396169579729793391696987055719888073909269377268956366109373269478155771993009731522687985749983733937205097216066230022414216653246987316992674794973807453250920561407020690743783165285663729840914834764413271475693088187118872150722286159017453769138192902002428992006132297275549903355634529865084169007969189792078857472744281917527922569838367039069874976704993786680434096027937357817842811024598773871386846874226767208143645035328474476145269074106603399877971892985457561309401452505533397538022250410504133329460615131366781962061895348990846951749281350267522446776084820254203716760184361266409027666741384405273063660464180583281878352732015171705497924446680791451472204252971926800301607742708195574889716005190278990159652271480352458810641797973631046553881987857405995534255323188037162545819372191760447842872600982859301253696877951078715043157969839949930932226845564137857062500157954793730903979788211831323704926804250525010806353921014009668081710336509654298575928393808413095517952316477769778437873384499121259890047332224008975724179767674848992839736418785194290203539636875288154298249459918473975837631936430177725752367463121473735173534370317394581748155933627833162309449827773797364806455360558833965577774360037296679731322558162350292034877642095797134634472288486967004099475041765827385809155459531408786140478829110583487905182849097314649288729749672806810116335374809065717152900930433473384484737626876895809643074576148695093242700901421116588164504812259342705895853864180194504331486178795674245339529651557052013326109345652286863964519976692888656717145385096019776798125968574526756302967161215828752042933196125460812670552580877998795668821689213651092162221197723420763606835484018495681057379348094789882594000978870171308656145864526957913709699631508781505311582872024697880510389503753162049515570046782397590638209810859499599204676213170286711176352102400111628157742560335103384953313725258915063524583071311649445907266600927609599673715085127807592055864032968990162889915179255022671536553787406968078687682033823855714171143588042299396550310665886994217254020581921383324854930938697142845714309774123393952251780099202250482467810617500809685520886304688821238376905203332384841042178306261158569900114942196511346145312628084168194459147883959539810243464270974994277452807095225511508183950663296168664471245568337565055690359016541958532230979517729891270535790535042892564746957968757066192564886268662570219763807453583985417936658765361574058636646149878747023470110243113099319088879230600071067292354886217883946069577375132852491172017456161660097153977930766629585712551044754904149312805067442484453014407399422411455586207272161795751528715518823154860786907731787191350107504161910302473802748003098440200353355741801188696601549079300257052113543259788842236037814637727551121552288540506403813468318289796732276092740238649390092559387097068497372196156081652124906789428515574141286710238617055002271503204601193237390112545764515326672863131005544614005720995086771806818200378720338261558452803616544754887541584541129232750779513031973852381250179112339527142659449987435507608920309816581366979613140318205026133703870132990261234498817414738516255080759854190138701022004926793293860043664027697287269623451379598104427325927735858103402737271059148276545926362991949978798351335820482951960540524254378170584035318408322056397622612353302664051713191012634227512972429933678289868107456181944624874512305733951444164298185617752175794124447216007060537136156923076624682248897819697586677967972612829807043577269179377365801062556908620280258673642336616453185268094385193196973238429544957890113599472911991006018862169849221361939822381832906743210540077514842140028793828314084033373266231200034481919913684170835876023257858461613819725324114959273916407047567091724870117174813259102794736768765823803305785866694841241576963340429657725777108983168194054486979194141425826346867104357534179926007127679793403234233047574016493434005662101109642721821365829425564966141891214020746965859466664899585052539516082389820085861698871955271397940497942368298394493325735725118225436948629030430170245162736001781231371266109855848947326067069316124305210871559263850980421171071243043432355888413085142314196559251666595476845929077278616152014733588242142548956494839735484042211750975009544793754116945308820740358012881120318612969854324678890049291973196026002175620576898151164318885990270063000587503918667440070134409414790901181386198940715411549131943456112088027388755605358992512592004962248651857504360531003611261728950476520591430193492530003709978602378354096951663202273852234365174343430785855663586177340353111754478063158088359737936689155406494153661380426886361835477015237305091160873861191701334112759809625836155795731936905641699558633595570021627688783335906872233861653897516709723740326613820516341225422583056880782787135461802708510253932117345189289799992689908385146667635660151678217805083970160801319095878755811508746145413021034946806042417677607010080788371564166033709647306451138231366568293661328984986243447224434959180246997454982652844198933650328834324447568056123151077034952628027503298611918580314468412692697920262517524465741747865374624286035253528174419540015516203885273121819755718734056800224544511316556247712868072596878027460996978303615622574866097630780752555222742556968724331143950442162386914905317809928291062932730047283451158312932222443437884802344371487750018924504524130171256969533499010741631934582585035252247898692732256650598126796027172685504067246839386805400526591524587838557626575759410856529234880735319156808959363247146344605157641527689434514701142668187636052845902114690258440187677466053936930818432833315284282717629779131576920783832797838928493654448254136719589281551673303523861765987739563821539716991058647015307666844641680213144043071539667846704985302936546828648523915055738654638484308428018672603875370258691832530163303003318126484913042649285952021563018874173832950320438631921732253348744202777955475006778118458805023281610557596427666004778845482180714399114832993769025878349194697287920637873132470122230960261018520701242447680983315748530548810356560319309561980869082733433592365284236845316673878767872072523244972071053704992285326286563188881475073023188871207683390004363247493489957447106185645420533389500088067226756797304049641029121552676507874764495460733054109328820957700905623934400105098237456978849100496109936325095088182495668861673030543405079738211301862669851523060180453363501106926761732126768808594073759460632871744487649874022886631367973613975149466553854097025403782049560891432314703483098407567535678439028042783834214987562669080906780046399108961339812670236249325882153856579027985855113407063347301815854011972399501360267830924575045103726496232941263870673146593362492962869910357737576947918767007221924023065154785906000619023535838480273479727991386419064648458284057282275173188937626549312556478708266255531413281894526724521120496789932831870852703533792625441526762127855660944073457077339728149137602877154691580422560028514140943153496037907764850917462557448448270136380894490555221653036033975219806518670601403088271485428631553090440156776908331575077296131689245522178080559152420473325821259191804745533515310802422161553527755444063554291478272384195465995102280695752021333498738498682413017993672185116868999067276322270891268247782436721538118101839270936245853447378597946297580567186612378997688438665045795037131223342269549262945749706417802754765684074766954861310226184568651397405843746535927720397525850481134800287742155986935771956523792877288173921071167166525988329531079977966188261641583687925768509654189376426590768128207325915246145692056092661360882690101979668262463925627072449594694387585657597121159978330649675450553002530337165818023422800832712967731499838867502558704827969750681500940103276361983188795461558430445538500725719977488988386164182287692912957505472906022394082190160108242913614162660898709413647204010489708539433028505475543939972824140499230954936817639251026973116945103052666896396382666371749125182375093429639474266416004698188512182872403298212493481316350389075960663553262607012113387050889233752408854603113533138183427110854499761539011199630036079686282667577257098192125582333924144596034556739858949221778741955579984127708680453273266934833770640587528725309937278633242315231615948540407421920799261976058550226739974103111558004206916852299295863433503583155225133592472814784446665988692060210341997115051868860072905861544805816058884137133683931185698076578296252388860509935956099470925953629198176469139744638757588192110211590313364740129475894474670285845931498986405205600608424884054374944935349198352822113013268021085691189700503663157628124341864819932651299375213717378263787595909623171971497787661024627927008052375292037056669651748534278078460541906177828937624938655331077674041711458405128007088966539759259859046348641793178529139523852856586493709879447573456517450440259651402547758711724097141874983006180751682940626233468391957701145197995515624664621388254518531132621618088186697552057058015038365200640986695798286561854776468860604793298556027404587253710367860222470318926890189215214225557693755096786342467993737635696639258865654892035538636697962661482306112292499187077336065702718754979413275564051555442479222574661364771451102843542320494968767639557823772984917489062601982187279890088821244868974976793406516083710427830866996871215433192967245272674835955576196917792568284260624636132631179956483537883783581637425023494158581642814681753991851995887905355805582174250725245918507117979891556752981505078877469169708811681176248215641626909514820726774957412515389627748929346483208872484412130543017456177322837745703079319048300393822241897352268993968375650095255432122549471524865183209488254387690001371603698690926598391471900188301146989729083357996898265492646413532714142365336889256614281869567579381094273526431940789724491009066131007656263479144737497219152886957555360397324801589553438561997913715381913380078661887789048654013362206298994120244076071302440754300139965933348418027773541232491916462615123498060441888319970675041233151944796716980947268574070611761319927826883088989155960462910579031004893034875017016479768237158154621108094308130023608120548122404118042304635481378931486892632033968140253660359237854856866076035311388579459165297046511554267859262812906703123294557168231886842057363844045275163941730028133199999145402673463666185634019382608517430526656572741573253730973981402681076499444433952820919786983089767446890726709468379702753372118786635730710992855322449360096344237989218230586467424790761814272843907406057677023074255452968694828165222796337088125272340167355107497564997507491404562313199788921793613153869035044583827143518959830723089559342295848006835678389016628349840913084273248055049673988177374835033959052353372286755612651041805262290859140500507357480301574137907371803930843814785516841995273108085181067198364112056218947724473585911236843948733023529285856149284678732903772693538443501042677645193297380579287013250798308528814265758089105817919389469814003274378792972717253050470668155673103953499262348327241905046588037343174259669360569249554465592768133151996933465785313568650187417207475348778511206013894660847047193354056822912593148449522935253102673928694505109122997008607241883835688112471193719104644490566670427984510183148880725031901234221618448621368157108120256328503537664734446904943190142239365558397085616274132372189924792392759112516684372366241750050100805116522150530280408251340393230202224283840049518861240753503816752814195787361759239142567760368094462580671675053921321308543348480905941129058793831650268765636451956824698823910178746541422149355368171770634793008306770946216725363190289729060070395280097016299843019119000727333323671925678065170869765247092407759795539979269222314608146074145830039624079522490941705036977892497662119664430644902875065237102469714000012400071264169790490121566414545593681443331048637411960749006495199008880735703889553802054460690531921170514289283679160319130411336370771979505409927513365878861006282279287512998818851596887681318824389118546335991605607278468741699455541278135211379550100838582075574051413145287744298716047480175134849264120266468259559200337381807818182237829235094470689203087733785199312867522434219907797463178759261942165971833631445812546133576910622444532019537262402465358546207031799853597878400164323954824742077735529029277304929221030990197618163122042687396963425249732826068109329430316914679823657665174055133858567516734425633595935119914364568916930957706119894006816900149707884211201354854692981033188608922182355194481811512327336941791512232709037521241628958617697149954453729889017303052431655959039683972332668059310538111263172747297605233539734313496074521121073454434002182944912773840590349812882769786111694996461703686883679150990560949792718054826934181654025406099033305647977487589083420636336595474377137070251343914939149330070865112981366813458204597100940418282860570696863454585676818716160547842479782455392396825994169958225555389800460222033035671084319619353240722499996608035500650249287777331780966108538621889608108706731752276332553988603736406966179053945644128647660443961352536375011847791641834263056171180490859400631583268741278330244397938408549826817447117029393887231165088144099688377065414992846482522288005391624585525882666754257885757443002918478529786809587741537188042722732646084253853379545259992200646024445884581312352855145931879320102948693239992900047638181043284056058622142827680701147133153476109676248585561441277193429832558257323384343117463932999818471916676561169694269773221349867423116132124527931298092243859443019006234161576915270300452900640684890105741211090855122028727595470841669669219140959184514950480487376041552765204950656557741099495541878574529975520523509000397663376764844861036448622463482052833392639466769759315098073341066995089772927901276638600776122691873683657271262616770637407027568905242733886461028565827449512075546879041670455915589037710865553533519502890975066168617755001248017268790534733098223832118581467227125379485884082422767458624119591089518636781838355937419099707863214172800075094304572329844347023911147276062866183456917643825878082993902117160747736748463303370663567489144129398725109684445753724727017284999332261068800901504622175521298422401024910280828157492934650187088690141405538167230511656291898399544599950810245485769680277045583410859439988986449837086773876599288237417693473393984259895044527323188092559536553120773866753547857356609919332310775720681233429543422550591146346065139485272574458276410918252068933745957299773993345987504593377620538707547664491683889882818074850048822171735248688848093722327841585564566003781700610969491223636697748309624335783650124823701293213916443094051641562413568716970819441984593643192352464233050795838072649154628434307226581704770295667424623393842511631130225505162648424606144528221330361542258673904474882155970808970025398726128959524642838732474661790143596542578833673848112927636607636283451672990953181992872991970204869030443380714337766026080269902265154172082276913645163214679746809305924392761729115848873779914320735104889125851774459898275565883745416037820704878705744228659840978281023177396335815233109455166141550646275178848561515059193285800004823143387813082769243598839417910825683866499896411083426679096768640181504566740548733031611397904443599213576252341341154141748193530545882575967845754915307671307381542311645851155936152653567197313196555585607096832246928524686166975714472320919451031512410539133242230714291230744285162617026091125021758268533390128055526834482349180644172652449050227878289808876395209585065351947083110910710447607594743487127142295585937502496525916345213609869775154805870734923749627058471447408921449919252880300418671427065546087743423665532411351863391176906342286747146975787414434580655083353669012961424088865486207714226991054450241799054527474071284413753914598356201896408859689743645341637424659386235788785972847742513689803153929761845779428096555560430930124564734764850099891242821021506406244389111929392588712321843990343792419538430878527518800832544267292109426808045253507916817346402866331127790267811349602095962325661735659488666877976697552802265658200539502463482903168085809653802208900466056330792203610219132759841763082986431915056082614848540295822002176806138538294769189585606706967105987269253659115499071565239542981795314933804012584675395832023978209516520782777777278215478132595168238076999281418312180482271985544168970096638773186733421205840443392633997580610809790734658364061083424349759244791529705950686158107735172498170268923396379654076534587448323876848014996655291222200883017179227853518467723384747135191378438655938672144148797129633009333627748480319314202391758725980474612744222184454770424761040623694039297490526000171399654772727508007556187320683401307715912548778894868292581063139911032784347646939929072601191674963657638831456894339656240001861229764128414847573227200292994531507874764393114334120332167518655899639987019682574167915852534662500910454737977978298503754565282505198965119001057375693845298977620637917405505428317167080172284233424205324590050103908468119956477597574915283537485251962406021605702206885599277162808962828704781644066674345333018861346638923212753765810529156196625696714064696529195318349214149466830065434680490217351572992827262046852355482202661818734163203921803696879354986280192930152816242710375578919192139249767028133421299600370725507578685384075455226423385712584174707785195140740040533732645814057674229751355623635462362305168748568461108323174909950514374142134625643756867698042359752644810830236062452281222443822171376104722415964670641802630834969998958148695101614402606106884767218620531671440448660261525051575394931819933706427134490995442255470470249117655777665404572666357297233885650757217226565639064262458674526074932164048010645881744797607111438327531536500134157907528072198413582878490404571922270040883649985296673668243899771568553635690375037747509613297277508727998806875954033713047868510333383247766569842312666391970293734407010369313480416290924070724666236729505131978900937488851584575306166287391738540940388898634368756579450381518800707933439235074409430840283304937904550157580484909700656391458709506686307969241268072901568884956822944031191440049980747324616826657961425229836537542536756734637977256057243910453823630895471791986519967252432547519381875452973655787952054154631542106089677625561968390176041172445044604646878055908445414834420222718217512988356589705060560277411260006335886367494754586818599934769459766488671579799716786153785582334574192522016401192569650579796785194685275683314323447447751476409034144456763736034488483358498963005581050124224083929598685748374834101289874032117391659734512430565484338223068598966338928007173877802001260004006943500076276228699861979484389996026654868165718452866447684689474363337510977447578112505617578556419565586193890991643984709217165234089401289366349632000700902537921504427475519786277347297722675853288685210830471160351395005665184530998014143312123145182124034629800364938903172966633184547114043341380967052214201438990115042847895490236525158427417126334978817106554995761573864132241361631142204167975951831027032637265653244098365444471256372849251774038976521864926761392608816955674555279880274669654179544057197825145555931903663570529196636938235161328008005857451057758321699380217266557405792756078724725931985459527373665024806851255498232062962580670326544106889517802809134249564294868598238294865518921240807182608764948780818619396897485383652744612984085025040717259147799270436836064216456146741324995842170807812084528310772763733087131190269722343768851301542888032459583047634927009994862701865053176523183857477733265348546448238746124897222719516301976688336545552125118562733586463121365861444275670700089164281947666516546821672299256622041476730187118409742097840082414875707449205092172335086601137323726204752386516259077523319701609552823184715683504821465064088948844262021891218306130338053489268250636093127692333724127113774573497317417514698490241596058384983039511690738829240690999819555766455899777238755046798096807689485154400058406361449691208142998659706953924460875764554500408433930070912746155577394316527825938866336610398915961055836838345809864556850690186109912370099042887167971809019739587366865956097452232266820438195334726076266859148072631241109657278665231247764066574050422020041238142034488588337636617784874651400686359054444634017667645873603029374011885860062253393204621439660319718269254602684742757686496676585053287844441788057825516605480364764165016077616082296142727579141681635612610659920332880948743898621314820957229527756018837806651873663089646686579819802166796292254328512832281152463094549509233215165825855580702540261707878126953739666862227257197021003232491548352119071506239886712186778832408778705598974163611449226670263094625042143857675266527940673921185543303164623633445407987043379129583632818447655955634625519793500913422223335525906711866345103985379174308304404259994403688111119184028506790368784278881970335426128550518798757837134203808019989897725990140102278758202132691587272186028467162357659909171455162677406150509239721495608116750258000925540456218199067442445065603712524941309494736612235168203168070801997887278825544900288775412099048737012828449235509646742579419865795438398119319712165783609358817164278245905417873073805208248569582786092706770326250811605789261988605307235619701849865776955833366831065358392807595240496558788896650470445072928915307241120514056990978844354788984077349307841919928485144854794394908384210214131447504480688589558182363122815182220172558354816456273058271922785688444300951830869620900458948440555095993955535821882753053913202427280061820344572426652745011810517834206851847158358570972885017671227817238921253898122242926177554191847207117953170761201401474302955009279216194868820888926042897036429032630887334670044080558831807561169536663215868578814355255691942464151164654399144031565822524307286420913640247827018503583999812116907436032177111387547803389969439533310382631293992151250149932531460898851972331372411931399638865681819897767152187964476052370094351478703389967660285341121142425394979750248200243662326640031381199337201435064984897682183137013474276163351500762712591546377943369236380071446650123030130751126553641132455591987973779484356836836083372831551448251804039664393720593644759346269458693161735926603802942840419577410395830558950418499229208472012899316241147072475171182109176029552697970322494152020198223972239446088837736033395840424219387238964952227369706323773709190928152131043755102839446324960467845737164438548547981301560328467453861982424579380838312630302434410009144348545374670590982978575352228664441791358504433174489730154167230677585609777591367950838812617899294693435219876587330643249069198417468992461635917869648320311315524732816080805999188132856788922669767941696829542610600210170253262449803263346790221370498864446457422314943927973713020856502564170455097384994418399025355564527384227194134028306244385864644117898775073193858292949687264861644375495952586184081275889392290978078477462431032284063387191058720551909356002267508014263999936889621270440032062106954446257665887933512081763283441734667635179975169237189428394836533261798926260995315603991361322634983851280169529703143890150267147120914768890950128081687509301385887232046952282495338789384703215203173691233270907987067633711376561212750006929863359038456607583258813838244769639647829758681446021877278423958375352648196881498193222843863100747451351235594200764088272619253113493163883477246242414765826551669196214708830049378111837583656798124196782974426110119727694779708071952849394437900051453560982961914205735434460084800781668736063892721448611810755244951989846363106270642244209972585113298595502791752335591535007678870844053110468245829265047462230084283197486592026827574365958290984715457990118959213690950266385898417795223516161787208045324833584339939197648311488377909672555553923558569207601767598336679870343011040107152592678981144236066974761477230524061529681504097456172015685166673557086928116707992332775582107874839636615098504202424264821070484142090266614613458485577861222957044878164601101558059582727168896927148450165738775300689737210751041852086502998937323864312444374331732833072396432885784189422986707657772503248259501998424967946657554502845068760525400127239387651036492102200364331807657967892763485619844206372954810726253706771236330422341381927266330157206109718187575864841535027116558261264862872967662828340158781979234682653801585555380582933117697456587208057583205825771071597889019034262653206537036456146100290501189345892545645891889379917779535262214103323799493048013618321675836221219028683499031837920050843376235104063246215317639895079999074343647913309199710811815600246513352002551343623273626044321430507009200656065125055335103278290126081186865334831944957648503279492272477044156807828181156686400556985172172998924196835533425945271389276856714185720370556277109855459809692899645018235337776122273439784002000483464330149126933644616553097198878556108589536434315261093148771800672945251010005787922924207423060505849845769873692397984753889930189142758759039984192937502499646606822038911873681525806547267070119127342327815769648394526560973618665019772944487704370818259301477737789437443931854354123116760814837131170445941293605070788852628420315063376275827409269624953850654324133786105376558416614153420165684656543610770465866009560362600018470759160041084347985214396969568255895428364319818399736362528043443389489272489415810098515322842822865829220603371513013079048882365370882247650683056206015225646523055442975673372667838506123976728032651095426825026219249839430248678225515364235972653501158171877490370557884065386032911346247434364849130154271629125006858594053079782745116693839229248911560025662628197477114013493800327747293161495776587007738567304910087129122197696255720152823372569726636278540845459658077719142961167615721888294312168393219223526541363771595639362256713128245920142408055862808558527352983890695381060863378969417332534846495850866995578698588570234547783323443832141215806560412026648690649924377467967639387744295065690831438440804087113716814322159971457804262068846441021675782932896273724961056179271869478990202679227780911414051603224764621299034442925583977681017399938318819276211936844839956121020219067561734326532164614317709002181876977088404620469304027081951666950409488087524020899685637840560156195268032643384102097812682860692379112225709866065860002667089053841892808349201649700704831487185218001882837892034032070845540869341651299116490307979203969942254298331519919881979713509349771760506065631085686022659159334100980430592881118577647834981008488360623288641816385048087391653257779502282979658626704091254896813357965687821673217856631163699654295561736044883171337827412501578312520407620837599944581957416963864647617770490901053939796187108601994308968173447366093860940585416881111988176327921715491205795044339093241206487844823811138821661020117439927412993565651501281325084737531110042776222443175420887623125729976423613251117203363251699687278652376457823020944664485107983332055581811853056920565032085730463764832628943548140081397090418290371111767779114741197978173587236520335610316764837758929312429115897182746200509892434074999625894313855109797968345288637030484603206627158586563543022196200355597509590304080920673339650307845047522873107274828639022419638992910322514994981029593360421952571593460727480669411791784429875865854923068581805770303500662466454744374834463412482233480928068195175263526907649681057074620270299473935511407237537900581400224023909209478508120714460450682161257569057439472076152399923206238872253738232653878869093706565161410653006067945887534501321962123643477068906455629292946866017851207272349829711681941643170020376889066446642546631570633967318287428019742977416609568000917083751999274398095277313887996094179549585827343127809688936824841023498167187307311505810893963176220766751688695509609259400469819035045666013654374445430176789825426993114053683275276109459143136462686298737245256255904251957586528194315519335744820836186562738778803140909286372977117783814400503610345736293793380333586914578203383859671962236917689264634171960096423253956982241415212977403546872352434932706670851673855560504116412538131594259311864148721963860302911264784225677798391785046856050656354133619565865948891506970710118586959884726003076926408200834217993893851104554693817185634612824910447476663617630948733447695029241199543453092432647165231703723115289350788532576470438593627658236284740596099825013581347627442617663730150115877024124579215396107850946796228578306531333243898696409532092686672827294608124699683588335595456388576259253774939196438900880771864896148406232607539099777849437357351153689622705377329544600012343490029025313021860946052383206645753623566886149423389763592415753599089834941290590240672695418435432749104630939379567173076413706350280712926464379674821471668341382717049563451527879382735316214202969179007363246015483410598867751702586622880601311795231477467569866993581546155170117183306642332120838597562864151590776436719082734197422738959272104923039989024251057085142021578977559700522515245544239855454241781855050992797103322314385471266592817425092152473137063743718947647711179325992888224733315058506960457139511547228940233410859254675477836881274624568009485565436350603497889331767377348556180131679747127160416833478149525716264651061590333802577242469807390340700971437430504731445532348897677981766168271250412547933701820256366248818904204196699327348488905994267588282722332748927633131820746928834920724869345565582632527746282753123640649524643438184537302631623710772790824172251370866362206343679612822697512039508867787670261397585435545880799096557742239978901579760619400120349879528349893571405843739524489298289222493474714848418438234881592202226883022993589136602773479860682452198642966145088278016470323026204177512636316608593698481677783151570752729711532952360300748608990016728414997386375369372266152413237593638784733454057553565533181006939676003650630308235450115548661002058865351553857772734442472139623053751151445644253531263009573557631471005726314431246074349212060735085622103705894428621807816613800627821237419863891018811824669076018957848950507777549946687107980401637260613294060165003007382044100213562599493903815997859425651621090946996016335947069119327384838618460677083618659196066790288236588414340669385981870262154860573744735025649452891732184738733562337795575968814020201452079036435153832112691448595008478418792480855061037165393201264369337351874690537641118688102702267305128589925525564985171876035990652230503017603440278294623709850091839353918281633598358233178803025719060615362416526762810174278142272889932267782742392843067938875178692906962040867285055637061605789934147458083729902891671059775305969643205331755103054258029794011484156592221431023941207303886505303806322521172412244245574503964752192261450915213235798935031621423371373437085467630880934363079530902525242274914078538256810290938948414613018383364340027583215001855072421061075672883071954398759737136864883650781539865417783702130047941284348114592068806661418755719150170474136390859340774562216277910137918949369560468830022024665329418741898163966489782524024512336085427747841780703249931907816347205165490551242872413383386357684968327431670881221429611521966027058918116662849100161476578554664369282161171258418293342748532679900520935048409279851495931912376620674554933987852220072348749586975577002238990828432128390480035575512622399074535572302043802748436411560802942128298155398766465631140051349557995769641864438301730067090871618917374846407419693066625253020570958761225468229138811016930675959307060751583620814656619963881649638598067496762031700211321182636915182042434667071905033512363875049421169461397473400722736503646548534961331651616277632983874863839181187262909374831134903599450753607083503672637420553023398940196745300301516635897405482353528498658250438830228671868934254547625308705085894463771912274162439311410429303202688228270756043014756695914755865438445100308370070784700546139297373419177500419586132609967302835253150278047830342021712711686253953802546514532590674661237392214900631653427256643118989154752509921971924929709767958615158861440120949843377347819011195985908067288316393647743158982755802585279925895346555213876511072692212716631730703752372625457293502766522652304341632865267063070436859149398054497390172542384941160263952682226919407059609381428629666260867325407806978143749036387598198276603448432770917522451775343299107452151102204219854280995490323270328216821374109455655154554317833091573075948259872318283238896329048417145562255894244275783980676770840879209358048009604137339236984467453724411896669384419303613435143064089708007720601124012004004914541614074443712024778427254851074927905995288989781559481614204830519499906262004877244156810450658754515387498150629015334352876585598788334078527851399603969180633934530169431641012830547961863084906610573276808207832029106333067032346636669146806815079931004788725067688899797618152118501535925481245009948560144927716040325232428092679893329453002669335627243744301528693447723284270005935677417828428515934842278405074228257219009953623835001230722976817035790410192203739697898505982799786985158989502101650078248665612798734127188887927610256077969418886710435222348453319512720136687825697344287370679358583446254724756867781902011313565150685508227871829130361346655756459471173399250715797787808043998656820003195954301894012542026285576127861797587642374320786800608881610530530032656732935284519687112746172725692723015309740963334047076528379744585004219950298552151059150521390991162108410118733203268573187351029979564036881339819082747048408995761246329048923971605738300567195818927105735087219656347997177183708206325227460794055480819166474397400709502387047104073537972082744571815363167443652512396992504183956976091092389115544782278973409965757673619600836428857396510924364351267386704976749016123273424195801640691080190417521798152888410738532302831630896532179940741362959130221653564277787000730376883648290544334854502149594420105677233786447951338109148125514034924796854673118240669037744079225075545024076301341936525611619589581492410861979211189082714385389208417889378867721761559756845670186395703912541983242672773717610632587563236767331379307327612238673845173536264906460961479211944478107630252538318522481612368696154188575356247288272917775913087791762760605834073847534814458068304266458765786738165881127167774883878182982084255551638805801470341720721772120962005799830515062498473841304659213872763777289102016070974085400474040027042345749185134984971704668105989219571172948795595533263256227256210119697635010022398008741900233018192677348133450915119040717636244300020022021592475288235036275908420940483688326426080782322360940622928775232672265842252009443650677725011409579558336847023061854303549634472438745692330795096880951638301683121059313994617924436529004756428246353252350604448232539655380944752701996134669484275466059147894906879171159916695462221390346995278851675066960058750466268185309747750188267132029664433240414562532549162610624208819481143603233694960517617482237284534387014073426895295437693932989054615082519784589999664524307874247735511725562479998049008095029239791527713940465104787274353715078212469112429945935935892280046806935508698621047764067219584210719150891740594473519352524884744238757597893265888057990222924114757170843616129128479415934414897260906601512734416535300440943982147096252138531593091711710163330058008217593837201960509294603920087717678525590719689147129751931629727247722943269376367989923230564312441732374963844070813194429516509781752690763851321599652110871789340394427561470297223142293973222942931164567485049455387660383857307889689801305511897393115880776651358393921651158183140584493714926033056667678723166573394462505496581122353895315521805045661042159255860710486466547927035688896406463449113609418900896425515076315800523151187077770027242640424694354496534986218386550604607798064868584059204328563459178342220633508161828959608668332928365574117358452484224705495153469256064683858657368536617101441946394930268226016465070265139484256061713440593348577885040008976039024236539183765609538513873879196953691861826147547875880192006689649465489162729392779030497536663903516692148420597015870023992969212727724349736112046155384656673512799889991497313524371798998684544353701509167985123020118895372949246241427252170638371069737316055678105912108414036880667345958087614570478165559377771777464209956089310562140005059546537534326047862010626701489642338997387819444679425420986373232034197499340412338069787856757281737026412060638115331435979268842638202971170706225252661089973252266549117178189559441436375622259962205128967434440790950226788591237248651976022779612206056944089453105173951314777979240934501946215745077897577163969243699595755990118979243587877821314138930366311552358911946510072816619219629327712777804524098184473907543416205864283622325313358686454264348296276809573334080074530593779008074886515075099324452098168650913821861932313601491424878807331443682190773607477614622731360285786284920603202466546861997982067503418841390143536024416386504678684758547754320931632078926116980824945436638275747172219232420014458132305970360925171709986162123357839020731400361375941210584514664967038027720539668877893720726424619882832795032309937199826846672505454279486320629346213018029320645088918066980716423946003782110953782500100007490032308091272244983595670067009929032360357157422119645876103304419776001385285771623573523646625334370423643527855704264061787423326505100431038627329726079991809897229276346061551386076978956792628591183451641932465922159672566185405093543637766330670351124304179333223537281164054559118766465688626772230425103583862170619210079825587416233258198381728420530274184059696115795342808939426667089379509764071518454193696407616592562320117149840985965020939429682018600676285463047262680676754373206947710345320147859229688459366663534164187841192960788166702787980687365604003486526389618282469485404566480699302874737527418908471806829000175485860562545963264941536244698737324357591243870916603265466511101622256067768016394530606767449172362958887276765152184696028942214780039674736097229498805502572780203711840984855759416818508757939573902862443194924398884558173234950601730742218354830869494779178011638162641941491927453873090753758281465965292064890790973020005793962787332346536056316206410398455362124095233749483088722871315242885693630504986286395996644696572034355291610261037868838604269728834635461374687942670841465440700750045728016620441932617582318105397859697819111383052237302429400512303624656672572186694464415644921472490531440242955335539511085202178414403759441197262208011572464048293711888034479057876685154242951959010358834870937377765882906718410838628236887077593829571860939292012694120270316254480109135949090604905718533329059225193389406151870249937380043472532032565614035216796910723270811847066831330997158608195070102716301792630229808946057954188312210096702408686238432239899081924399264566645798428778464291271191271351147207051526929366407691407306194026712619846974528923969707167673969767585824169051429993374256206091359578183055002934977154890402948666743866523581334969289226412573023858118564018836983925105770716038544437056089631612343723422828831870716243547701909080561526578572715526227003559135042546809793108066292994421709277831297376615180619639919600975289001255841723236268560595217846391154678580039169632185825835369816750486490589275373180145041770443910607402007010408826421326398708509224814763552362184151473734585714503145158242635572690230129052127669408594585916674755700949192841793904717077943928078193417585490675143411929343307200961183163486329822481139238510461717242190049794948811008411395296101915653410147562349712462755937275469432442303364610162432129536838251488192005413474000601450540521801496959170734254171789378701076718264747079402497385230770427780907080182921543852427885962535857614200808344499765730898786747418705639662709586925263819702851656088573273447147628495833877533473909900924013919525664474466911334614462934647138395999763145497943876203549392326436997253266556434301392220332042089865267281425072306941332761518840839274969687816486488247927317114283386623856855735466917352745176664782440924168004738375497152908049128082196776191951291192783652736633425555902243356463715633177440121610557842209691896628769308794666268827393818136824046683245054628246016428480670218759126753954197272314582144046069146161412843854122428351436016517691820597708899296983699134279026586502794122200076861726278458552588586074579688434190063297544138264769291805522771568899239148189616867469737825547635983681742934896815044221731372359279641671836373856890530012369642820229523432185169742947252594901503607583606869104280096336826993058017011416226047067031717133470264975432960353501559542895345727477551906524575166445573531064392154971177521321517341797646473015064252152986360242526434019558332495068608156423663668291361134870809344879016642498056927358103416874400172616905558881687559402635356773351954005984817903035928340486985658954393030816605537524273336981135812246410109629419347762429360624040786326266796136153272258377368713619224432677576564257613419484806922254420361766237880070971500176930198305137137811256796498539209347163119864139256180488734065012335699920301411754174794050221880299326171538275143797245375332378826670221788573666885528797160939948582688886990104403975930234309064032528306214191382409168884481210870364199638894272121656723369492894314506999481713978624309792666919490764086956385438564409354273393483444980424114889125965690138307639650346314724585934846851494612341130337530408946236092506325939077492423454525840164217642948540795926218846481946253380728208724538810130122056527177029250038425399880888065312684654650225447910332679927159477600828666224940128228734356222816501006849320465748885267936894621299786865598344120443309851680990343850500013337961452888284087300700171833726055514048786180941534818178777191582337956186242691981143154010242196935575882453641034353183698259465747334856034698737271698724734599365004003453090451208712992855200732427277538153030353054077570339271996800672451146552998247174290912745399617888010036362957315818954981898411025501254511282813986789668427844356771241010258162501675700665280714793384733848686907070373008831076282245635853150653439178925249146252533465411642553881896489164968251071814948933028371440002540560623225934655297591255513193400831410517293570602834367611819099153045037588641264770561942159518550704032317400131437928775301534966227140075119511942761624510311130858859907610167229782677199049376634586403124887414857332374782541420194439450702108338898304154730990191047145285966349472917256622465207949855768618790610996780209166682388630784992960307781768757058983147813283687091091110333442259202978924752293295940600337576160447039925103519271607797115450818917300624557740877996419385916284887789336076126961381786886578608149645324951240601439379478895632690050302458194289744773202930751210264644429760633284053482144549386370055095960119767063931845020969924385732617083788824922227791866929471752676559862453015545913043166155880417453450576234127032734917455189558924350024432857716231925246386891912691777454275798799681289774731270193531275965376673121275827692107604806286579607525546418968900867781806898240719816774453666152052782554361043159021448863619989052981552039435422763758757969686087522049783568433328492128995130313055556016295413727666228251901757060319910753172184184024087707193374769534785752728748136341859074534730713560092646807360944316350765103629616954788197105322541986048162731931417587118759813340775979796000445389783019087131328953467959086294768019499935881349341337760243861525779898851156160282349489403418564051275277911955529589635544166903371672925641905257495273280009514321440019300503387299180895288696426163359458821952422878503696992874297930758233072285450631270011838705855447132050502749107864203188530375360515325564384224183088850661889194492049262531259092894257178927445318040690680920045740893257413412554556609061210936493172517911129322503361185405457465101902633748504717607814323031849300542215258394973747088838144923107819061856698997260808941795900323819176671542932049099022063528662775857104593562874294557950915828746418281863855402646286494918453646877062231316835384385331929652191628284336310612836766148881460941188299117922989165530989635635097946757394313035564865493668092014492616727544458663376937035228550399000276146476433354689548523502767342995897516070391968291540377868026008909133901053525481443022180249964173288044437180873714270601433387488326748466908222178052991866029880511275711504545563673307892302551442324658502082731736380835716133403628166828894909141199238918220060268054253441675132704926040622058758166363222041059230389849602942052824433753592113561901942829520496909667359373414322110279867877668164806728047365976969707916096935657051123873038376593216900845836321251687488330080622213777456322564183992387273326417284065957834631319629486755968575388603770539343612555983317555777677459736122804366081289000924121890439546461142883536038791418667961377310033346067273552497213668384912511306152416594781992813434017872263981749243562188635696397515157701501668912053057838331238451512933025901080782826021333251819105646868972870561399562289673375080598660925537450083953856369238231817307037813002893477922967458070138937399213995458468303541818259436179266441462397588538839839818376689639032760422039183329543554293483093192597807188370021809749683270348441574472676850896368044895376716823369826938619002275871993944407816918877958402054007154612696843666266854121210541402274396786124186602884890081204499167026583744325863504297477503853344623458735833481019143096661974137977600033424360711123109638096229835186839394378398551310180860743639886071174923433861834955674921507775983164508769964439291418224399511293221051714299675207400301132228587649657859436089742395691760121661022829995065123803664556948628535499871140296182176274826778428202010641342954030452150839094179107537635828730991960577306917307078836108615801177505400447927146342165675246619078126360400148239333166348858244163757116226416200482311539857495684685160676017181820574317369431417191800546763513798964230742841073153859375930421938550465227015392548853076140500286894083201472868327992243890242779772410055427459922500199306260384486124507714406158795938315911043314975152653905014130117199649332549577309396290491616172083068726924692698617543748822783698739764150070673332705963180832949010487803167571345502633895295379392681821950316372087499205618615281770435518190300190647010281590163557438375976571427957757613582084147837645677515637425337182910636655357189298215150873788078720716703080459391161750940793958816104314161564966768689299252796588713819494661230214892805720257980371653907519320571684978350904540537180356271758732843916894913358027766222146222423603195844555819344845834005042182188703306594358122560279973485063927026279631787881020597617628642246282016817868808752163668855430312000020962096494835446678338117240633255442310139444121940483343407583684820321566124726442767241187741795040342842738808314692779364930957736155790172630232187427957761548734941698197925683492914259488247674270676613695234327550099089066740846525792406353908054135518953294548055229371239282213567331243387307526806009500647503600757784953903934680376239917372749074633196958313734644148033160322159927947527114545620611979952978870862154796551442138956695959988726496902252089740645916887549916122728283350068950601196137220063621904895111315613319126948792481725590052543602879832876498071186922481872024744135734547017742298862649563904598904250643064366160565650466015682662245624721471637391841255285072218748768591756248426020710679658638240033847082287363922964469341023635929421273279500350326133038186886600494653713994062029935450564112524127651512696199624897109907421966987361116103148280900878497198981688223652946249156763114309713733743538855453002062528932791965029418598574144788968037282802612707331626876900597405736730128527208637460999205748808272890915657037836442213651874037403104966109628000156632672040203386075706985924860947037072366576196756369135472863011025373584227113040192557871204658660328199661862469391432161119677156949160741405419506593070124583170094578701278266321300325746485863171207183666095698735717068809919022959824964108233716165336931118769695432126689155089509240886899667234081714653166509238994686020425786987310795674742423318580111202592286056694801400536867497838780691986153700168876642856543514632176037165608196766451100651108872441770571564249995601109866637509992414101935487039021721194493727961451291136956962649445644178502798930702910977005237687126020807652867766679279903819738715495561609305163371492038309692801255507358297777527405837585692904094176333428128729210758069460805264491198644309088151028673937330805525957562855963453811139516830323653264576058871646323392345188781673886214627862425069667375263305171126326574461257915267348684815270381773977678958546175415304606557580440761418039532090782395545057029696838267806548699023719115131641457433962084349163187650865689858107329412921302189809972310280273364050225708222003077361762013597625441329926407662692927864477140333772722611124825457729270778230726203603176750429718819020052151482090281847974927894229550401189847170423642425813152089334101293264759006676229235721532452749956911821297746568854352021706799257299709025963814833045969072559823424676897062846377311071977747425333190902996021465283329174644734964855487326306851874351049252656493749275498341981151812517044528372599186140845712070488771659569379797676738486746980610347200403785192199590252932828114306042303410424049482213704412834782383330064019391089805333850160021735810991246759473058042920247950139101383150320278853188047791998081284347631276273932058309561511186734538981437447278714141440791815852752406693638978852532080153648167553671521930411513495233327776432621880421787508797449397157762167453276499102113103198414970324630754306824057252922153060295058451536830056144940470109218848832277284097214884313522188510287835982095036612054194228888352353727924793333433157213119158024160387628226849387966901139374689577954365875437324263895848233235925237077680623808189300076464310629755004222476902165354144810481532407220063075081187094207400873952219607722926870055817923296004077541231420209299027010009997723386999550444832259351889009541289719195544208020468984892690289437744773831889133127604204681672729561160298610429589896262018554840783765425356661314304516409307310766418270115981651355549466672071044863443839554939010228705614248372382858795323077236851205262748853418575367446689991689542513566185214972256781453806515538194624942225213865869079009578019936808135406893005877910232669647860391532284638238505024859400180682656140453216847410906156831214813552561206266182800132279688385635168803731100907365846860862179537587973337709972524744069603192349289536750584681474349804652654445553678278870185203282145219672653303548800437316987647533219233417767170481697769611680627695942165010791616473091699634819825388789061419676950993458145286362774602010532841481434147182295734515256482410104025789511520152225935354568086189340252507006659853253188070918007509867814744445930389259928613557503429118292180878913960978055000337811517578351518978961172716798988314072955827577246161135403406808099150969451309228569149352614719248905049635732630731030021248666014314063725167023016787068595513656953025117623095943027426131048315021169127079205140918423048894107289847816481104842240017341958885495645251358147003374824893886356081020170676700953571204552641307748579786876044292629810523304405530515412827001384430098393300119193292771575519956663497724991540854432544958768230838578246055676070848899579872473268841269348682918098808074196780707804718536346152856966538722881512243683964985759113099952754190783842839605423968855731149813006811091207522345669121554574235689651164844174893502312817810253067110430041630962982752414934858155377641992355745306626254770598576919260089229396478779019914889283476061723969584530205511280529096653369607534626358673925882614126663544539966701816489787154600990118387470734811712944211362567005504707894746418996538020472113377807953829825548370671782431026135584287191761016417627755229856978269160046152209168726211999903109566030839327094269134168702387583533408244965366373825925404080695289082385749674053408332997812547759492040115817690823545180567405088302997011455861378817212942242796485202128642887339059468200727735435504198253029857992030469843835698002073615644660217818517786422662973917371654177062051809909267743602190237155431910368953254738168138909324245457886269108055629229297019344115772698213353920776910701666732650827030967634007998961155712117771017931568500596717102489544942472263128624334809706114601140865750094953220382369290960960787468679396844129138177115344082720583166679752319451059972497564507606403724981173486517675379746565653330871937232678159724503612102526806275205367369984666965604179099836556647632634397358010921072527108435798217271153306858331422977655671784896072383536071024416373297179480251370236536591781788674443544015787799468559826922129175125090067770932070130848606052407511710712196094118282532687491840149784760990026323411659986113059424569406540128171433954837840280893974543850173960482624991690795109887578837220187984284635684767645156548014434221707457910757059673959707389112647950453339703039067444140681809016433446898915175157685173054503930269669578181406182592909359651628723598988078998157952921014926849664601396630808642953658433651456545496424871258690490015355323551677113908273244336716291390762350817515168369949902030574362862243079521350341366646938676383007030407628679860765541263071337623509929710889872976292846909652176496709388490716496259448470138254105326735150812319477585243903888984656311000287988694174478294166908007897598192800731870981154403089451519678836791717867010160584622701442018939637254753913806429513260156980026857421850053618216912197405986321118694753404613477080474832718793410557215744246465718180617357337154737625099835453122952254570978130137727848647021702657072455563013721168705888151175330555453567891274163174618597888148612450021320951532115159041453881271174124446258753220585775471031358997259969397636546148784842652738073350770817126942318285925476536645857132881515610940238862071923855966666387584856786486539290501656908050399389149429088858804424525220322016791443835883694513880261616754175317479848681371186941548148562611974248931742936886144080920217122732674734749923298628076980901932999965784923664817225273398182588386051944859699713056569628595551711453255618708181142292345352341839158897184915018618115189293310619125463539768946808635896360918622867851100936591985644935262513431712448790955575545381498264115988859885118810018361659087416160381428834386612096897692586820002526811617913713107371726523069168386276468490003806783822289159308409846548866711906213791029149029476139902198745988036666452034597916550206306062666189610731986451553048587008267943216310445309064068203933295421257992650243282200314429605670310488690925631008690996512843857211113296040473165098473131763256984890808435187247640867422630010319822121899414523568448866611130414907775948307736510903224535274844029555946753151105378396682854890687369441176642454750259659745671181379336020334168512271158586821314839875800455563744662614021704755536221116572441231148079871654050459267776415271564774640552514009248215874517841159956141315671342199745448449800687112498937828671324529655382249337695141373464916739730345447642914608037092611637893920056926959569939121524223848430821062914704538211959525109992932307831149768924231111277787913850020302893875706071473832542713682209358699490951193585484269981050283131072825933753341711847211498893036394038457328671548518550116529086061400070995807507415167037402771240026777453305821610584891663993747493255446885065899195568995449490407314395189746206970411514561919488083598010978508267846124364108002987671841554072140994936550796632927507995976599528119771001034198898488832692489977838563613178113553864337880933411423124740130795946254423812727278476410772635441250549935016190020716470572043105181406145800010541677430918566387690348334393900435580200185338847306420808335944242479723412515148558480292086573106251996427164826738474789453871566678161620675791832161318077295887712586954116975025756279401021795203520733229052124652299802423946115397317490380048510038525030203652762599964087033637053755288655627649767789366429930702770305581437231980960235828626913946663524818143631500105786218228789323650341042216297760972260863721577306258570583406781593116994704934348697560555831799425595964552255805409273272094990272261093784509748455527097287660448061326396953511053931683728670517400975424296955099630582452783492796681355289968973014246224360917318698430284186351961064278145031633572301841330556741141099278676192630085441519265631114882674170739597738401944684154410126457365327443463462100238752423076239292304343421992752158993993980052478877686410313366851764335687742919639593867456714041509962842290597567519954039544865766595491062371414816297957934950778705797014485647568950538945679394972515767233712260620679291676200150212040386981147050575054704692704831463344050324916870632219787783270583224815449676764086911461595231547284994820814369312773325791428281819171506123336595269097180150685924442525865296974033765538973630446303042529460949835339749464233040177481634588822395397343289730382111706789592215093245783520276121759804454295631844149652049248781954826107141318204077531213861335599664248818323153299310979665286314324988294603011348691819505095829177635373620628732296745016543970368232468941325898460301829411442569069633413343586619144198331618674330212769795219331843667974751807725500159559983570551560785216734934669151905711211260187033921993968994955746326271608935508546479718241685699405488269134244487675220082737770971997429412851946677515227452699514789144484906375987041061422765931217727974466709681088225168134046933105482371728526605796534543642859195756498859997819530205890535055550588194644413025961163625700105731757021077721342538956478853581261863501432027855974882323693227633084917677986408653062975238120124960448546439634810157119682681125765376456785205602223768204217747528160988485357583137063554343802951651993067330286143424313174518455289646829361392368226014909614453771675328910763687415750508076854085011074224564650232630970613702839290184937231443870309844793637149464140109890620805502303332938930723596082472597347012653876143081689941067912582289750508478636965697572645592941049143689544413984697462143336251681787133936031267385286941656073415427031021436789256008427358725638815637657932333047576233251497071432664147932008915228258298787009064701579485277543165521458155674136650084190367173731192060662198386360992422462589754543473058597326815482809942447568183199547803356840537703071574212563753890311917374686561910874101572597057917138872798526960916069633214467482834678519973700718983586765711402887467402424139742314539466902440385431120902460104989810715100404233356814783991289139091929292310101962591906977148556482774398842739405193418843167195829972594030692531322531961570472566238147683700304962235331845382295793405931447019128734606010186657834412657417643142186077009502556797575678778909022349778877113987906824575279618817993747156649588125933279720304323842647876381569985356061399549846562033792407985112882440846732706161301943984313019204540793124893799877232057346984765222736242727119250167150223753836813008860599157315957465649036645061060887977859649777517648089428337043891813123968226053397124854567087548959616595668160782787631760898865329821066664669941796301520482088297711869898232540330941880191350369847282326885284153996400209528327600236870493528533504330047273378977032027425773630319137707259228194646551456329521377060679598519336144456059505783922777158791970576860861996514670520107299426923228989455870410505199683041619871315308840143392550945404268340252537872024461417508858289872400753022970597027937138322554662704382206417394951015760539097132548158683026963196769888589347657241050074554938659255450349746199411159341327488349995895948963270354345244148223013384761606507844544045383354492456380711558896180317384646358699432724169268733750841421873114286758224101604179189798866039418037386576317411786179972427562927927609325127252203947272734726894795635520758783411632076543022258205766690322031282474419378444096600423672187646979452354546499110648115699106928616914267049419266193621722208494605143704901502467195347501735608917597037291406644569528416375647197285278279445915454761999608861236226696711066338201672177502028546699932444635907966378015226655736942274752690800463759152402180863604296585401316294199497326731325834600025347943001163093515010039455638371723052708063449508202228723851501882916220009572628128978448044069541077010501948482045466561463577343818714691801685785250415402775958763199857880688003135410939749337940990580672289828220873523608780198265155377808496130159702955953409004065876858336038281878889917355988200241697073698808184676706164223448459898223543197345374979056302701897958872338258896520918292202377883812397521134879515338193969775959518646662518835667523685070758425830800387454141234235681380410501521183489323904331976266969553885360430834938029444675362602832548694118816295168355497865880642751699268413121787784444804896765464610832590710741839466785661161611283301626229002305681854454820798437873152846261008084401112156903388352069585902897673410938437868752310653764566286995235119673390015848506730697641897803666652068722377147735650382144324159820299126003617738772190197932725553483352241244949278201582021842996339556422488712573999735794708642131724740414954960380205709353297955715606863522719327860621897721344174178229738693892502948745686560157638220441664218484177147557356669783942160425275413017640929056900928830985142429149855027659002950744104659456097219406483553232069797012656117615228718832574947020596284531983877817307469019233405841648844335721218208149704509800007228346467521196516180770111913639825535071688575885742357700176734888964128431286286482302851259976403485054531926196782976083057611109639813523681782460887921182902968697331444497250878136639585726463747935895726056833876105122559042010511031481755193143663171365859010430353309994392428879204343779229016803371597430454471419187292066556333707907401629541274054915058543648403907975197906914737357955475011392998662736496052852870397825763952620072497899540710856664562951877545181885295429926314737291573561247431410726566626938286363598528181543170047766223496404135097527236029544300550087978316632220357170487332890615198313872083246010121254482631728944441516818906925299722917898336110657835394739980246050832669117413908058522853048774561452613300582451833770338706308635492994767173315444621367661812162037337735719264242964116858734595042301233653296212800351105132593588546548631137140123272633315395051522055024180374632909991649034657131589462870917298826976324917101254077104053931431809569546978681993754999834742488089180470546710656324919310078804498829481057669557636914481131067042568222571424634441510506350821393585100224116906410257508858713249122588480371194579855410280397283765160494362823179895855935849705452646250320113315919257895749037268757694704819259899531786779618918729077188025971008651179138719082284023578078200071041306064689379361605837303449547102606799468481227254107861537119132210776841926394794897260357755726527910780512203230023627870577792402801542901640016202935051146485852000272088951854763329369760478706072891156373340553160165140592243311215947817708885804830129610770057920745525698379391165910599239351841766719385266943082971427715048563211164856450676322382816246638535152179457831389572662125005584807432930006033114030053336887190967188494907418245411234367364464405480712522095772967407305066625159779386242274743217796205381936312906457555731882529628605808021726798141761688177056355868141591101705672040569908891184026515777716716901694406258846789198754855276374948957573599240134774275947658685029277346935095011399914905449824646919027588735726492009682221255700143705641706127599779621503967704666459727119678424538179587977865735151043285804484418494339164270386877800684454422306105342273875343792668322690780507077446283835605503625778145815109408407803092531831457320578712934847230136439103964827955692928511597740520844362462923454766424746513027092258485788191382265721153814194034333991539902950538194074336402961689319665083723460395890112644166913655600236528988801934311717751332042422292473523739633642715550652532100177735003942032076076306632778832290252438379292610527846284038750990227528899495120147258112278505614871304767395033737869491342495867564571987183229406918953460395752286671484798297677355412215233295155232792707131275923272781189346175325583870849833836946431956633067351258889745499592206641570154254108872654360309736345363060908140870554642518046737058811866627008229861844370224870203492101167040594247266462853769110658999661297481178777899675689979103863742651657200983405927612563516140316630319045023980224459326538436663621317030146956151051164736222817642159210716923595240938225035063344578777352152732308373217426601119897579339529848850322043110694171414666151276310564100884353392656189304385561204696227036893762728964390068689710692103174386340892115347753948840277609373845963059470748464592833748734211296275571772541553495665798403167027881291228539015844577792628656951825169214975648547494325786435691573377398930593580223698927291480724620146267468864641259106271395559359221387959166796664680928125088720632433454195004490217046854481129926065610212153178491253337722724310102865532734126342443965048968226637690119564702407986849054922378305262259008618488793999014430298234708595304118664505492790838737086698822790701619377432433538103135598463298775267369726097407432139680412105592750105630310684593118169070637439726914178565303927042928006422521745245168892953283831445887434039442440760371287742956522765442420374071240925060386538190107482847796521049507824568786232640623755156868604092657979013684579768245000173626518452403912341966425704363494625923199694927607379985146910367628903742975772304590492950430715271153023573049678233025016232448137020175182548601963083319611225768565389272416979589220058096434835313883442968389341822155575446604473799268628904419337735011493499702612474304781921935029266798671007159980910284154338749266040213988234911277267727066989422098936549667000001010506340567632960564722615137597528979074895641654661668143036352144548382047382998131269730986591653184989976900091264908163453732745600255999849895578922636454528687565421694023662112910767177842798856846048697954826519582818595160390234779414113805836889557074776513442445286098410956935131404906291985125851610423456768573032579838422237639413681644395377218323994121450959486812557233141794619843214232835049485960361897257386626239470488124853417941296380881960081186510596787597917406854526053955686174002072503620201056573636463480020961976858542230351171162801767358072938033799732156330421421346475933674321109400752397785702823669315206349702026952847579300047766546816067296718182338661167010768199514841369164252603395662689121868527431695221191447317506742902888451231407155650843194305933469731304081879703182199560686936472549542514076539432643864821380485224143892990245495726263906191125252736020644183181823894533428934131383826928240667668270476140650893533404549121113954886503651935499478026756674205094116585676622331118558961298676153513108424654675870161289145647464154907034900914079352266090532519198706790506418227161775314756630310566804620604225444158416445740390056686111956266386375630012873171685709863389510085037739333208940137611203806221939594281532372921835643274908773489451185759133312445690822431304438050984312977845655610511229288768826746787414228556065343144739017271080852176061587998071267662627228685450693970710718171467161047736638105092991172621771259916192924745280375567591595388364472959798309491469173868027695244199241771534142652798777580098338259840319975394817250151146344734563276212266630757111198316030252617633901261309389207677216224584789036961981223509789466699776466077793890278697907481914853429519183071621550513698909383348652088029538314262090835419886642645477797291937946374016107642094740842046845293043274753227034387771329326325270195642030319859077934841175605647074218725938284088848233948223933984504871784167534140288470773836898192046380518904280904801105056115657270876104518897277547744129910634884442562318650508834611059952387526642895632034125975821273688681310468905058307072214995957654284037804524861423319376603718663463724614202873338281778554553766208307206537574407280209827910847005849719494670524567719960442504652279489639105207740867763735042200267348434439355738275376083319853503939741409373051890247270676066348814298050723713490220996308402253637072271775269589296113673365579433687874596844039621081298775346661233952632435095558163113383489041278940417572253063258758796047095737694851624447697851674441023843755496995134074729176024513921542841879500247743816115331792336204498413455929887951772987948370494134665436043892633319940849941104827910331523943752060805297167090709817811692822633167280335995714636593906274139979746625847779840598334800523668874809292041270241704999077733351860429704131143408623634683222576289601498878762504308657450674036785547818864433693730589227740693637330155096776859788796075031795733157468647783749540703822790484355419363694825739937911922069217682140059475702000194679123742011718670983599420740381492211604398380645525414474913274904422088965879916996697748727044215365110587657365553619550768147210011534666831325873539406942626185586286394701026132938555399183513697460354378974955503591555092619736018905871867060830622188854698069017555988630632129797509078154547361569684516456358065082595840620096856680638510110215270827764553545061011971355701436417666317273447349118309264668760441912811838069653536242094865372297917164685908742356199911202494457011727948860902666672589601940211357299115211400342522280075554323024997802882204904227298799536532576111648632665523685862964137649134312982660816258168015696645496011872672614364634897374048683142335631603790513668248009573625735398786266176134577939290481331525489131781109207821632835232880861635878585817184837733127823138485698187371606978017261225381609821442324322350571365588135448839642479194945967960199053031807851495894207004605553368748880735303380279175590201479048681524967352400859003358258175468967258370242089705263523788274987927281846940596580017741777278289656588302617440248289630155824742531823861495758282730109419301299608857688688697329364454893397850595709005296025469553203469496110975926719799757374708348381875005852364116672157786366960166318140584924386616679841744374331461063100683802539100468488341983842584875132000161968865255689285531051000291596876607400337124943148664548005830217838048256776641990556152300863618404147366820272036154863527319769303382268228352532707371749117991047104928166870596657689066450350820888129540559830867926498612984275325414413599736039424981677927447389209490268257276474304346870631351175532073564042474990227862776685269605737194217262025849574869156786467313377025471174502644163865094047234035678946401098920849024732324338813118655869525482888066253285924778164282989518677499019001685421889640144825743634649488574707267075350028000545655809785809828965246699141826747427298307477323251598473982307250103173066755104433693421798331297819297558588223054799430776410846103175443658724426415346330925524917803808116221196562135211942093292039857143647571661542314761768650866481677911587095915954337889254474050931178601324959559583418027718792370829989626697740302891341851298218234459157367271192880579657980295461901717710443461371098753139305556467810847396764073873456945193815495027291335776484841792401167872127552680918807946284380682077282730730794548525991170584288635718984896669595795720082124994676726698900621998083694705292118565993523897730301177712717452200608438229515935448436738559625901529482834573215935031813236156555656687284552162119590637363081603105969569699274360936721796056992414230180546155934668888190683765115646370616975929125721524655872437099241212993895878924482893922022566406111805569375830309299042797519809199857669735243923851118459228316841776527773087671526874524946111111839671250504833285780423441011394701051175368307802762769041849358820605049909577080868246901767613244504936054358472777791827993547456236629431540788108225204155986650411390905119437021409300514093155764070214237862043727242854544459877566330487596048739736366323663024287178696474137819477151673153809914144731329606415130366488268705055011076893675841352790586525728878465084085014725608889506048831907362283593949165892460343754288560904138771743915997918766544137362143864615457644751595717917018580188771181977987365142970311034178074489399082007494359698084410518543046272268628975883038161417199949167240726673961826850312005442142044346890522687264418083309831078024570252744421112942989587619688869651901232765750899443104135840907020321709761682561521978139089236226856739691869417089694665833359160240426977880732265682079526311560802205766917215566200715354125502043873964053107142410663713786397404162637602662698087592668118797089269382365023444346898204022055336299463795966455253037994283992046687476058583650885798183517389967356710567190139066680920325473730146553230876911410924191628527451056382871691385422300733975151505199795664389389376495196653184644331042771535793117753148572934527837573920215398816991528760264767604470848628221727861808259705821052785928736159155250404725014558685069793430162918835559548572726147642753039848800778668444263700017372331727415423187170471679652757386522471620357875847259864733458681439201095275456991768592740981325651556106797043857565625282958451082456575291824861105638504093772625631422455817780241566827758576030949504949776583406767324842370550973130833078851016991854869923120022980435996038133208582896276043309426693754930031257347045516091612355053188394128763211225425107490884669402470154319274055786109757126197483928259231595968934890306377014759170590612872929363093880949288748179792681173232809764809113528437931242734832523854642254544274666907573393381901576301155916685779376830620073900071957481011396512698435685118771887900516701633780751126557484873487026931181025585346396703100155617983099500852081591542182880120304414764845394005275964494241544679005011754825233728799033359378716909109150182014663908204561393472936891432034339485933083610412722318621191321767220971944237487262889907487527187290372420580211220582171523236978045405067856387794156041998695196003158032441986694476283149706606772283871302021505057240786329852676064719061104540291641580926010708179113566060210875410068191854831698931126335030515937988854250226416679595486472154653693838727028362344771411926419584232190328160105988216364585181050751166011929152517494527645876914484950727572091752754286335752704938902699915867346440320175416897170731249381388810932712399847999169729815441249203267482593618940577769831005211601825513731271151079615462123808797644409523715034232309227172082103513514693586627772401145653627343210224327007317250441529657022722148419166233916490595719701682581519748588777128325533315050672110576539693190729037887626732008966568611038546336433247991726204243699456721108186073123933721266263457463092100537665625235743300101513984057000589756351963255004305355729479791283299720785159110773408291363447584506474698841717822485873065392423077389911315363910276920582963162958252281723559102275466733374092943277191618505158631778211350959300538095680051614767558739531270131636391445243635441962261640557340189144922621907522274528028005850685209732953116008863585878125871890009146820652976428871508220155966295956909909991523063523837542322332203196952360109759732565914431833280950756005845404168082018967225695597507276065733172448094680151268561464539959773621666582144716016730045710351406251079557469646360765888137428875987985268556577349835307292156463198386669209897157835642901213735795732019583194726109376416103279882135346389246588171912065542839358904229612587580953126677609517404679702948536294178816539250324637889327957556263589489766545829659795774194449322741675645939948780223404138283958284419222813346544516765419223914583983054628337468544277298905125553398767704530494581583173383292324387066234206561457456870987962978433460775442373163879834434615844058515742718740544763204623143920254824871784276425747525966897696983219028776859106976524503417204603645044649088097193339492152725159411727252215242018456833779035524740811554641736527061095772470073637217254796070327642134997765768087139852308035705829969838628033309962844638769764208141546055115072602831079118557783990625779528417915465436148330302557455161072584896064772204470502547223095509089714970124339121952218024271319106137969413054154103314361144017010905149264404367446949336444801061502354206401531208780259972585521832547465675010778493699389652825004574128952795076980759151358011435665798875070619714710754912905917510827056988159270603482310403110525360011680312214542509555135722717626418345610050425480185051687281265637970119197510636821213771033881188102976602994991026066368153832199099959079026598075467008502693636171602117234928615682865159151439753393537512872459197727262900529422531110088144949706021157026246831616578185448873438706955322128918246176784726008742913769179372214045343899944177104022794961976350490701367251658482549275036862090671895868834393821242737678939954616046398302244857025514711471793373549363741976004284580553441992799605548804992020959927721019540641319316341121425801367032354940226112830531779125670465586849179503240181531203351538921889507522663480208188662430004072326188150263739048653255866494703357119822362602534299566455577824993216194902277986256945658425377327061818555243414223324730524511362867570681604158802403029903499178630602472246284164497748004087085172400845722303480303585396933532848672257318175899899316655782075043795506900960849002051159327598846079315800347309329792421672402603986830754058902092295406322782700881002112660003957347600902927829196568769329740022115863798217467156846198212660418509976419925632252046897915459564937359249362526140509798690704642822357954963137607576854466835709961386188933082071625553861192054637292285924148076701538880635601675684211148819071827256710622896684659052428536626030311595891404342781430145167269094630955262239609918694247983186271052181503280510544354049153263378995305017623512986787423561357815503188371097466836131447867914214084685349888828762785971858509698088284766483270696771337055707414145363558689817975215596842078939747321874326649074175682465068610120799462073391029014066932711578832065579531164240534698141913304593501590871808869316390277334502235729336758041194412631190553251496722377321673843567247455851103122458243752900057866485839204580373629055555363863485996625422024595889631812644564688919077186760336023085750268466963830019711578596976412854811784853874444012105782490340305148441267840009797366370133951457984863695386888138991466145844564927123890586417256512132127917563161715742420752499229769596307000685975666185419740430142745570300261292146625431679199396002544107911967418003089255447942250745007112963640572166696059898576324307789816004691336398861386548476699210545078072476581211283241449369094245456347875467658288493082146512115863793226675441496773903197459025326496391686067028409721345381072880569991716358716380216669513784957735608463873156260526297845452383450507290107551479964397386437523182489903979358982345479047709770302197652124439124355276360484801851318459251307462075689877760976529598948868887093426276543394621172514166053280823324834544318780022764835408856676229416780923404251384302454152565159331264648198083199393432717012264031238670765735906088546788704975833123961791358491509318744609625551850177164964660049940283126346379972494384119887685260308734831296347205881759032801335242445302912891953310734769969063171720550796156520042645349402553919043648905584537602920668053234098984990910717740921940609609722086270606290180746399250650376103055287889351911895652434412189365000045978962399034039140502684664896551084363621273173251322987703827761249959156698884576456481117150089224779739688804829787590614906032936969588185001389421989399338873787719325224480824361286586750168178451902906584866915195790273297013650195474891223665120300262894374457388133167267544707550619274615892758348487744964756029187020409368982960095185953232056762350413821587434843354448182571284756006125827051463577254145273121326507972713703700514402603891590815221326205845101650813740870546474400565709058401314550676786188547528324635914292439273995457827685050475919619926679915622531268151763208148452288952855867839821123728907510740279232750403429613943678764215384927438287939458244475035498002376608363902524851401806770439504768301043225242417156779558328643105102635007343459296405582747789287288783256475341154732494811994349850086438609385470258220964289866863315236788362484855758757967006959778477800511782328882799504166746844234351016509284781959206695519473908458223057982213342294000573003608339028095628205174692458455876778209789664577202817717957549822528155569828543668804320569018875633927159163062233688267561960912688646792368107631104059083053092112996614016795233327795615297152418776770103543965598512781037631356311092597103910565885377803817592504506724597252633445936093401645622287981863721399342746669935322086108655087826910600153347176048391736125033671585441931786015944732280764094995448713477239151952683675381758025035955768280057014616315200326501876167952403468834868697368118223077069860337726317184005043586994263383561136561495468254777746628256567207675026595954248461374910271985860773039641509331309522738868201385759916191644234450878526481074343470842260741649629835026654040747436811801440453211333725735154293486473434521582371819571529399159197032063088528774770971086678315399844698047726853463859769752458656891341601293315078509453024610139447163625284675008693093172498314951604179990072709107196807775857367936624427473176266490617850825996736579067501802863941301795725102236484636505082518289533215741912684438226388855311583384836778714054949350048853360341595137257919862412694733003607790312068347449551909764458113591511679616870291709762465865647965107012716144902852345955386050286556923385897560484311208323121278880579985009894832489610918993844430959660851974578221765648878598659039470848978016446882074706678445915102988608391261185332088149123055265768351151051079794468522453663074534215714492116635117709338608610039926164795817859281763201860541463546841453638986158356927802067114686528335092780018846066984943364963456311421303096797490476975787664712290671708561952747498001733447395456010294254087336926737401828047909454170414431436927556037562211199097179681691580468528246536944427914061860284845318553589282705899845933800312978330355662489840377275540104299560681410525922522309588965171978469106738933485637978673726244933683048382127990991990166795055307792131969567752448209520370019980144151663672561565178439565980030410081089442102522727667497346317424277972199494299925229216404581232372642311222693675262971214238832156968871541989119720864363326506487798609300767273066469517436588340920112255380599174857984559538293536900973283084418310057376575398829599212474111357105763338809232488069589386763568938635041720363329403611991050299857837327870988343452268187914175036582932404229554874399228027982874401850790290274048159515295635485060841223025273789607883103302765323621047190920697691014158525575294899337265228057403562471174318466166200771369645795356575103588812500669600687008131940894144777642223982768376443893532668506150209062371995152653600527873140745889226716767881991893566540656300427226980282487721422383602127330918142453784868709654362586274618776484007325357625009892616517271207855303692399751182914610968310311633503638957271516507517591151436083073568441613142522073896535898768529183214670448394237181274795566343513046724776651244572149541080538244431935966245254075565738532210387965697437960692069228031650026787260625917977205270501343720790821157713359018810287810598949645824885169541272336569773733265700162733070527308687906163790715294863189468258813750370650061441849413228588510181746236457090224687418830688173187001628240687974653059446302768507040891273755627341578322027328034353614556537552557205314960116313273887490334744416263008971132507094413547003631609756719188938183611039940505369088571849881211930666144760095393923266930018949219478820170051583424841336660314465522183773453611551751278120007986541748171470321991715527694463973738985658643819591404194696177501746764141771824404352381994226503304881923292513102416622951333282192966779409571356395564701088220231240735678094411386676142499281969967762966439441284133727873627526432986422652795668524443563358561238459878463078644858998103971838062222354260212005414997072283686698879550101539527948021685131317810732237567701174699031130730350728022484607159279000285319662527939189845630898577839887852825857618456482849799484921741834641447395468615893228248780544324164168430635857957611931301587273812140044064827814488868870974644878876443560210364544296171835024993992538350464102737135458559491768377987503395385541317059335964404620461004417227319234253040113659321187319533231248167343245295785217245430616485365313499821756989627718652149602879559319516338218684663714123827705343609556230676430301711743306311620769953127477768606652077195811809201208961300902384551276633248571999952371035474658375445578961995721278926275825875452993544206780296214888992790525953197930038139612786329170320603593847679440230447063674882649892159458001203729255319956276200470405435860580077446592889640464019894416218197737804731083471352196724895152495980913828404848335175825332470317239103554462614805827500872751593242812922725918875872977602440268234097828124096508595415549656894672889706840588080609532324887524251034981379012395848590798910775726560620478782736533509299563952945680568430343436608200476817928643162026795002835126265734874158453427954294219607597265246296232381573185378696276913916141412245889706875046670562740984904563494387803808246642127306252036614827721494072499597324481988335153591958107195816448043333957734922272652160935029292681169068471780299393389460116305508488116832583594169592690081729753723748212421890449454443836112368958655009425489375238787236789382974757342466274880427472757829421025622499206614742601588103415786274605217544377514021032872602632712414524646675886662056719915750557111186326439391561655834170244666706940129958427457123631832368709073910585083422175391671571186419507697191193202832276440081288691774329577656741828985049715101532314900728044269814272443526280315502049285518080836876335515338599379982839829238584474883574411671423436553278838877829071666565383435596879151984771997529611504274749232912431628074962875958105321474155528274343443742978819966528819284384003532362526737420443137042358075241783652948538271032346103985371052628801603037275514231294066820105793552122891903381247799660580942091319339661166054188110783104870693276338332181052467415528251560506231781441834592964274575964502104805570889425025057464599404692104866227809909656440256328816063342482914234806367665961457818449283116430178390749499608474888835982264972320218572810695407785021281893756837368953838805471987537919207865172605741169442293206148535546692431423255295664441354688461640203061347116033379709846721566598414716033192108197466279461466853939207278316067767781680902088138116690536537968045314480080628640413204659824619812322981196729392850914847816535162637562405413792134688613294093664540678197478647308116118471866578897269618963838986130394452406600945106181771355565128371137364116244054741773840827494680188632913532325371771790044002957381454722507246248413276167325442150013565393585333593633467224621835687036714829697837776757810254845839398364379813129852828597466846625238763896733787407811548287572084669515406641448621399870103076434677829617526422227671233719351046145352413094252596042879518058511944826635348328142098916278535688735128591931249581614227989313321595654719930231245416687367805939927390277451107017051390228771454350920751878376588588834342038738128916374894948702556587508368306236422694220703550749319986589804901648148495378032458343489408734827301340945026904103010551405413599450369117804197697567732241819151379977714831294009395152189125193685643922788236007305333487728479054799627646030429499358950058773020130670441843770404360777050395627142451046377644917625436679807723461163841606864235793238493957231057849078437181401386646407593815859534214063372463673129570397712397679444126024526252247007659925754676063703258145865552128746232533477657951604854844124626027340226053082588693691909269346839642703255202779873494961818850199989476799201583604010744465925528829077828584994870930663828963880179845837409439823372961591322452477493894699763264743874372627116564645117937189264668037401578357520392243515648744871707170152479590979866767445364133879482517307347048806842426487000937916032087557758973466896203237127459191426685549300034407808208190662878655168044750569291455437676045802178419642906014271835164131138656829642671302705845268444467081383833354591563967538304876382882988380904330367416355183875744830713976937145533951074823609193585343546412583017459631703038669151744597363119849473929361909488517869993113264065615905540775721000691180643189709848377834154539109286168222409242003707104032590473520569268722999735052327226699818614900459640789551669816251079995041982977467509211164359223860424950862065827763111698653322787360527134589467048248201137153486160884616257408391456394914061413149332850860806244810390826289751767378759831326139376005667793602387638511170927152190133177461924374421032912458147598727699068782417431054156182853457694339802812260071577484505387297207081938047726035014738881979673750464347669348165730402464752258554615074388433633050560194428416703794316406720505756241346081658228478709610024510692992533158212080103049853509644126872989894263340209432095926397430239671086293656020765984931885070781501647630511669612769496950199666273367285255359236734566848227118117248261537453697698599395043469484566916927025614944186260323607325583231149479331137044931326106269427787907671852805557509802959163787638147166711306197263831633824613649042117608891334874591552979092010215829007102028286354246205749924974068734493700716869116252034707959782604470209574561277114501563335374618677121299704285458428560030246631359231057394864088401442916799708931483436597259142727201881302172439954399401410100655722527008895781392861795384491477898625623339140983111493223802062859729318017614488482769554897367710805385920191772482093715697406740422609824955416299016296483448684092930826277642668559365285545481761820205568762469353888558298580864100648709575290045239171249697424709219357038287327098228689110432598437497322558256670278728360849118702504420298944641362205490837225523158111145623557550433902659707623659026546753351424685030589812769636204787423324220335787733143596136211314111079527641706709718931298878038919635999920292949072863367407303356848292628526810693246276628087080092907658847265887128284935167360444947349169329862754105342681016007618169656275197833459713887670370672190600995464458765451585697239049105221824148877933325581982683488914680225667810469912452703148307850440177310796500927181018226228389476563877990930168258907313950931391536528237065860924258482601723321084981122805493440122146859408955050548292400474302296453101840023070612671326260172873574813599431108284558784235875121861867826220836090534481662048647283444131866512955672158498524010562960923074349293609375099060949942207734857607185428754065349924377370895795092747345928478884924042686071508070499975498034742141325530085314687533323009668590194231589591723408667927173049873847175492837627285972382036434709466455307805424217630369261049594197525458923328386557642019182325920139996672389196741546105689789872408851707399208878227862780329174863876303821035493676461931087404019630212471422547696924124740604030059673785360228253144903698070579841262356742925855237783379142790589148880792389559909278176465339464829224694417359652348614991015725963092822198953254497004092623673646293667392428674800132513790783378845427518081411201947929657413991615254343906300181181367230570041506092638771420799053150593139293431832091629718373349653610093972931020900063639000332459025616298280761377857395076218684953518930304632193407627853380475514491795429511566283842192346182422104822060360349048813686657778495702297721021597107549962686338294334011056075584271079006847439098200241010177910350298483179897846342213930746876499916686114407658428847112497268352103775734417152541686315571555781139850262700065250533212412361019989289635841603377588719087355194192225336016101216290218501986413358253943798477273180938942429597878807217932727614692396140627586006805353856131861464427091063359065029238287662193154470766460302710671646432587716908383034417100173246234326926562999653082940022394754851079348279338240065086144817405286552901457896504582566607006826011146376907315086826955677103934387225758317548252809912917522550577943928344628639659119454969533910003528664042533122815637965406861445204602110164342548939366085873795677913963802487749139972931540098131229944233339542279022478016044756261971902622348524201892316429356602969777801512407054436229113150739122605450488993801314484270474881358735251347833035384101836249030308722687594166879154060865807915771028508018739555970465784898200118720538158118816447440317077667262237166449523442514372964516787888447868269006490704048782380912241981807162544255825496882556117479653473713478080624551010000079642265027697181642440341509468588568199791294186244603226059826115149413846412886499750950646791052978965502415780747770290287528252189166310847884368540130655960311918454210257291068544800134370633500139971613553369214089984990085400853155534087848053217584486210910103059272228963879749864841968329351437429328377244120643943220306100128435718565188502350065736784785967578315298024570470477638378639465217649264767401349321479301171044830483613067891974568706216746205289877687988895501036321999324380451741301042556482475284266500925787710770943252246966014664874509395088924882477267546737642417418496028228299516683788778110031901827832961252704393337293733315157029803220865830867476823151644644606641401244210671180291572926234283493047004136485425174210415972885409899557059442553755404040316275545814706013071990812645171808106340239866235547299498636890199073629710457980662212001453311201456792423195004717479935437394390907315348616781042736602544741019073353535125165406417196255346068413411400843208790704356839346243990260370286566812758953381914729714620235744597053164944596049303524634855094814383917052946041920180005759304001689136371229925090729763572711828946328669565792579049762696315284329423845140137912116752838309554599646241300749582275016849711539633205901559598131639322586589260858068200791511605056802322150801440757853627204096049986055124865864402547685969375199295745487598930515220948349142070135084395598606794567594561320511116804404042045053501475551642251362749794427242790587078552060340085241430433789714676154573768086031580974316544240976078837957528411541949294010788632561066930478011374012822315449967278626408500980032244179006411924396031019330002540136494636987461000827071636467007392310398561894596254300330700648740929074293990256693731993967897433807415279015448858544854612551274234400536587860198941057297933040088959752186045221664663309355246433910346472846077228717159309688807259907569479823562281194043296376709681686884982591334542730552726152466097198092218949004464180803800746086343842901848304797996051380307150733056906049399721858389018846137127745628093867228531514689707152797931653242875833439648439737439518759368365442160388271663323639119742800765189349358804656042343381618120768164463784701655572560285811171292148121369086502568527600859047329731922338383372948908216210318090613710292901412938333083471053741840869596100602898765639860899151234813582399929738315544543195178901034484708367332955435006161504982248116797604296458437975772938855001387763244653316104197191955268715725886452383727684914017831595460092013772975235376688592132362178088695230204875020814112565463353590520875401365388369663188081695277470989289915403296660799812338113442588633126659940954543735488817934556329995997221651524183700840713306837859107624918856866939318002790225872401103403849771381303196574065469383869277213623859064266812046256969511438586477733414013193262253347977193022959565949044229355743958471378286992029778837046690575347394305347833141376826292664113311466157831097024664648672002259881767144322392340085318873613331448834919163687470585921318620776787430831874535223762157335575769676058934669996730580414475390610541861498443260522827479448378338567430616184769171325437158660533383901745355435333855942764648373894869234372168429151284697414672075324072746189315599018249861777497603943109885122563899105081494096775678844138282569312745867771303503553221057564383182737758237942954584292661899315966975455216032499649766141698322931520833849067905438819354897582371756417459385745981523920541760559104772929744860820975224454072919077046023769479576546664064426133245892674840912768734228818797071369622030051788876042592956721593693816938607229806413486296664659216113236296943862351414706490563402546357146042664158281824764967407146464509114907968223704658854097156979016556188337846685466334605296183001635271517554728384079456149973771970303347498058344761731684841570452319110524363239286075184967424810981311734577961216237504411180529039063660630938427898558959541895193326495946633692638055125191755245361344148646198742122597952384323564035420360879102947835852677298990349139089955830189442624866803425911013409167980118347842905531969305908439562542539966307828782919837777503209282429412796464803524687775956206402361007301284055247368878140134126862611065836677314596905503360979909769044153937547150748467245017950757352928413550082955349364022500140633539190119441220835702970259558958753464207633506860414463287055291708823483658217471645282422404039626958251571029781962274484716727393526078221757634348244069815476798267153123653834419755513440381709757965448060579741809418122919159102300466245013411016252076651297536113491995369713765306999230505848190687948117021238243299551092493502258747091909757955427556114515509238859581695939102706777787435642591641723671910352170912289198199745977937944668011849642600473901935267580765754075204768888330005312096206225941962464169309329984285568800690354836680891168673815730491807460365422276608819863246919767903941964743503608191917087540715700817639405908293365297531916825044500700634242788599727199847949324072978724052585253292252739975217111069632255409134024752420867093879358567498760763335926532126258270191445828588002249955693719558504302556764495647850852117559856446429731278452309033266738995501585630474628651658887592722244961955613970963145569171487640183521093162502454659197964234542930415569340021373970975361564853283164181681324909596132865238198570145570146406715030880754969997553359294688893329464827729344623258021721343904701857773723525739701188386421176041453609276077828044691142021280042210884406360832972841304529890114333821215302649863315596899422495899293082410473526626027241638301091289689111860982584176785748324491813574909535850327604496385248625957450383931702688078439047144184282793057776821549360474550739735154658876049497066515696162312486788488078479997508844473997962580561870668778139581144353530372016240498597345581573626229312808927706594787503474710411576141653172036628772027794793215033795218534022040345108836544340840554127148949696343567380069341271353001007151923274376876769837622143845546529304386991900122632988966456834534941912367285991894826752615176121133819234019906525679032707234696849749621663858155934848551823896224042745917059106434374322937921642107348082222649702755664933829723932581789706004448250605454125795167276290893624998164569114312714763340656212860788493113729191988969024763144042631924395205081214153844376515591923026072901278375489790090915615095172043897217914522534847358849175530712420233580321439336675588014772103356932228529109236308257094621692657277101872652781002432365515694082496243202941320586614679595007890799137866955059451397007297766086591696558401187052110966230256812983032633781515826124333736000794301692619448221859715248219379988883122106906822955001090936584643390294284420955852305254674401473179990978524206301388110038179030157983157547138351690664418505785792945218998827048677153612902507073859641200804693650416565614814330050051006335612184139048539153616711245033082098745521295745435603429681091145123339675494830300970244752637160592429899922158660604819855760557172990297541117704668972277065167732288280431376003852004258891993072188996109515049063890235630408670062826412378466823732429983767039526515445966753982398667822508789327933984822172066361232649047249238987885088097484901880439770718890167183710337314456529967189218724788110164237341443874339478605811855942380605373533102560585927246570623973567376123873252759550300631145996240425332591163586667003332188961164673509397694119623537494594718410823366486647307830405863861732415742191823099447651431522752125849488954046639762718715237611507263798189934520186863554841939684611156223933445503107697092463725777197303106735210524247505778619268034105615769773919535437335993999715190504839266026610739854591962374267952620150238196797293178318242825560410259160156001666783673779103623880815287122419875463129309120368966173431323797797955600625082665616896522953433724590040548640074536024644174730453675211940551378577894744606386538134480677506313915138717014289399478830153637309356067316126172928294831652595081853456580798418351314721994750830742584962466048050699680116616103210020023755679174931239531798522815524174698861829773301915131879857737312476741934966124829535546365948997150413910902059376307727177367395062587308550842301478276195041927483502398537652548302330867259783878220438770059266010351428888559142526236120552371041159781108260865417814354556135635354918018243961261430992092589689311053379357510935039544530809490688716335169901296399402089755998487082528196355044476170507274339988288474568549106778091763704252093748826489236250605003271241006589565732218416461078205412058973120138817823269886074080483625458885585584304030505664060041431723759184288939800214225273765694099095011505530870193477777269670369157155193940540633208100831096808919211933192788246986824136858870572768489414095789409645256380842509483026700130576651128398076235587800119847577384956093623004763465967591792279723845104761466558449534112366146879255556237807715617409205431768544843997537793662063345730697258353444923264098706417941103628105478136876220001971020997512761884419648841315996158344389170039979323031329758445433808149012883896483788694297165331224346627584733811085126371054224741575904416729343956896372264568025980103606417573823570899273165164512493395554581707122544983203053092469682240167663924176837975918106730074929374072976185063131473780730724076579410683290716610833777797484743701417097921949957321610752810968585973243932141816069656104935444546765492585088201864233326879348572229930665091412311776193373736385458842418287317093041161834225428531885040019326842156318763765179963196969022352362442884960601238275940459494342446930737510532239274407555052305079285289329128751514558348502849324798974425480653656825925995465515713729278873989079803778343685501004438840994457794053963150905822657519560467188768705162641378481387725765970095890176858792846399218961653261330682078477728349083820096325821618536954492099719993783855005969873427417827367347604230966309155953911004187116997921267097072632512113155488953711147084243837386645717565191405746516269014171652544125882535396772284923762165777917666037951606178890189177348420215596919171147694734090263275620912979879458683032254213598017245315591351721926384454822368489020494503221770563225714029837154227065708070831110971794002933768674477313424239899788374614416356809109703358307141719289139855964828619314912120939572228204678478462936469204781264127604653497086915553240373330879797098855553821837532800717174262730716318640561451571519172901221008630661578628621242290294621075375563999119051760826363140892141866192913804962800373596528330265963708775901424238254753932733980962273954388141226925747598904157892018130405496791735982443619554736548725069982021654138576795249069466290727743244175044632818294285404204840891836753348934518274650092946414249112097912188193122508459204018931169382542985103256942972711236993554644504360445361442320572835696201501667889134980148268217504993679381405134232136625478120276537832829351383034558324405076919334722325788990753835255923089397469314999286180443973781503302300107998424240860291183619232185358010317205469490145350963060739101477010621467113999992647187500462939008542540967012446610181903662184144277301463169277214387161445825072338437452229512825396531642377449671312118919799405513711850293093243230343733496861197064584607506714443591985181494457937239889945394397875563457059908485652149670048507601502681560660256753861652156559555067095032316450667765140114037848806575957258068789617697808878736169349343749760655428909197291878149011100288550942084653011013554133833652084756396341827244058967450577334902067698853149684107028701512971401582800716492982132434214215995150909843011492076556411172647852765111026297898800389398426089861129526648697493549586018732393528973590388183004906615112588022676130248078039571344249099458120316160774358434363327541594104979958329790919442021739491078744072312770016237744689850276755339822316716635833401103805234419790567127120557772424684388655231582371000798112716011713876965026049427533078079216773832965678136014259226397446842324461675202968115794195596370005801339037257533450051617777236002536085575846722654185734886225499652306307406568666443055583384023009759315188944096008770002082712249318591100935378292824769575970384697321032591546029219304121146540488559689185111239240249920264119678450860934978668877264922461276008599653548049481868693793873004599786242804907572839631548056911424322337255165852583201023971994878457875711836743338326211746142181106876361659394685062746116414334035536744252693163048744044944215638553904299825744026571319432908474196939878330899107683735026585358794804138917191310663127705869793723564619725380916516151860553224358290146607428698460759276263383530493183116153842872592600659513448799136086187637013029869809721176636290172743405556979591037165784376442995005552393004805943059252202472687481049662215769766843893208771194128208533806988183796599545222007785963769514941101866573111435580377215504670353144028747738160214658367797627445480839225796534366991271969955419503403554326768092115190501182789937815841723613724232225842536332189989472003843320965743893408690385894075283794531101116941930364917440060458109724244297533489977725558301497957671032336862553576168202885476112316834556722988844459553301161106342779903544795385423029317999196489377824638288710451061466386011521612954917520240710730554589135923142834387389667959801856787727505683812257167631152194711369138421217627870192218021780332125063329457581300789218617305357987561355918612701819376430068316722079837823045644805074391798039936619669341285989871048752371971505330856759765946146392510434162456722247620441588740933047280998413831584487903702572444478063062094764572351392320048244489682898177461147734243781205335438002670815249445122960054540034914074813175411194997744367248336272021447614943592965107350416939238573924501826852558665405620263367889961460463477045345517154215061882949977874369259419458265071630356315294251898178803136410254455170559428558091464172470783552521783106772031511293912876360021782293284500065162521772543377074851470063667787305887465138786136483933074708481304341732880980408215014522063160107572058091449195797333470768720328293713682832814011796822696405757583244274318828753300403837534012641238548550082005661838293954858207286559182177773813029634775539925390663639412459064113114774737600725007725602822085662404309974215412679111424095444030592752740654498594557385866309052047071051728365268425215142554633891268541782193780016339316978368539655292177631812439581817560898105025982500804652051658329148591640047425487355390818141551529973680054087855965841607834367399761253956533743126083741691224138085126343307647363748522460483646238219794674677644326191278820802186510958569499070609989779344362490654799638552718149754581851873407673527191574295192751137463756453715629233872873751546137930934934375657912897349672325811129635776985123234767494934535554047578298812693432886528023053829685678457015218262426753013898182221861100475709525082855130139414031512284158723227768734373517311215497032991996122361556469896591953496577234453209991595757900101854538715934421648251292060491136552027083248853946150262795287572276320977676755596400187142918434970245697426779500246762368990409454187569249960086907219291751055466125618670992647168373441777295971855502924205660580861818137094939821292172726340565686820973556076195911519604145966413966560156332843098600209780183265570459277275408499056057689825396764228678669773771726399077858715050697190215357995920035888904056198606186294803471549629003476185578500244485799957030536045927514555957363940896624891037963391311857593694026760522984243394452661890043168707299187165645142329334719629903834364413151896374897996014079257078951386528170216460752338406607926318864476980818125120968009097387686725311178015037028221121239142925266640572756974676354537484705044496892724744449180049517260556754941948199695263951762707233865942437588762229468019196834356087969502556606227165558900584004724554132871053369204986387684493217281151291531587052524268079568587089983244292148829882273672004334182172518905662039754875459734030821808322674299059741890803651966476122674288208133829230054379283943656952236115130258506106199836977840813717256652618035435303260967904956803998913087042815246063621639960005878110400469219057284188486442066001712265927567218433359967908578928595497985922459632759956236911171155441114032415432609221611653770771566675114843971222238210821991037865637627197701358139226860259274133912257594579184206424510947473142738742555000185959731244848484820262945459864065467757063920606384473170308331698787500261784029837467560651706083056938089125637580127983785029899501381528781528720279291466258428517486020856320446529434493179961350823723318976896418185594928186367593079398212170056314115302410355066174372572422454123880783869045591793218141788129262762790615064051278391546416862833712378100382870341715241195883764764178529366932079667870646419018916320824086354593761226929616089114826304521375865696592873382495268382170314442180135525622466900585245432027780539496294633137926305765985261455704586583163384562354894912776381767019291265120104824941454056905542605313312588736559882116706085851493553541908479934759179930740430705530267894957036553529395445546586386786879826270761844025656556895289357181104234318141424703851403239516583200962126356019556841266370190923986035251923894642394826726450796449177459042646654649998370126743461259934201259741491308191026349902165274741828546466016599362067092891379009872549960825283295503606572683117885083111794460282807662190330375228620874413139820338874576175848304855317740146912176659144745025032852294139689570634623541002494230016702031845666649999307472551106066646812263209732208706391169146320931077010772623868098239224264008486146641511229130383804829865950008624105320886793728626978568383938256815410285568592780787217495392026857446532343719222921099684070683353100844920714352846202450975932745634498421703549579984096313768802462172001941567079637402333206904584054622462536396462257698242308865716149643360369052927355849488336786350307011182501158345956554044175368129578564729093950639130096745794023368254938537368732417005997575400739305639275779966399950144278403865302391788984884431066877216866470609916122941148423675168476680534983970466488612416519219153053172056895524654975536769905159556897447659167698040668686850259514613515606817124599563511928284670126055018109473770430868047353723259917171542429363062013741552494727152184664180158723049355916510079680771296890977494013999071148974406776718375555217555386271134659304451219694562907035160369361238366892574005330220828496761911036840819138914652247902688326770408848162267095823656513842782000293121421984291979335646422516921285023809647955140738650644340606100775450380933167856804997415509717347383054518360395357637541287312782035084089546101836212066810419438378900016532161954306617001933772755203134088189317552541786712046180634494189942292402836663540121214037574939754913685283581584396971326568149247684916906911687123544525097514435995847549374703867630772709509027326694409185299481130347829399412432207267111837284801059321946500929006152834809807868184709736473064042808918867492752653756751548018240427805888659261093312131895198273091477980219754531486295842609847791633096805465356065449382953483825376604996247621230174216954910354271149227785619067966589271995673315951512562941612999152647299162244408025011722588292539460303018068929678807188132892532710047308505719082415742339372036900519644248362344532882335321716950589234874721668167584501714595724472075417827612329271642062776094607329081646968935602625145316662646246450473160968494267296619402049084144879338537464690950099983031296103602401745936646067206044790929400670861305125556124945293209254521916511761405739612101316247675895149077423962061818848330562100102227674701870764393768106830647231456047985291470862035772828949640781863828377397891192321317904829591402796268117319491058974210917734045874544261892138247411216854816584661740217958091311483840533257375643753772974002954025970755319881707953388787921003363091727026632717747587883206285661446461722609552605650056438920236553314322862276996312691012148193083631783283348005998858318243964473976133450567540022676382260134616238350677567940210070455787949379970314225695774543862785411661556187747421384806412805774217263475034827476332218430453035076497657700158869304506336136633381378480921607802205121835245591476029577083614246414438333055968088976018693673427952536594803177331856900361436800942939979925266717674930392100975243056067618165725351370803399546982523353525422075985288583582568887933911629172656706956945067027732667339474435621066001538271345080960542175879256353632167599690669750249489014534250292331563524441548481929009828270275141862367844896572103121409217108690058292911144950194089135841138706288113927821007221922603292508482182644999538708898022174226416678548554294330953441186291358071682430001604035193393495885812257331094277870196653504486164701071906786599372690888536992190917884590632341126166484220127596490807532600496979452557596329779358200043933587718202822457268277682985008021662929024039581478130750442352738976647960863037557109115694309940464769490872927315359656279893348257405474468783031998399848831876248951239209180908117821723899332316645631654266708687359319950637544346921065414543827551240644938656678397736134475198147981533557719854182214128580501074295931780061240662690168031569382715164490869548122613988513850173221031688329800660348098866230161499486459094333131185702388257244704874188641476301836088951678320651275742251691646736567559961060810693690787167527921971762147368779940092098222401852572269500371944016422037520830139258168894562529212945202922057142976628463711029785559898873411499382609017167402020153861331708238272338330787074561566456036205983609889612402971063954157406643448356702966114422145379310558555135494470271507825453323464463578661885857838883240343449503602007473060610690714619230304786145200213821782101467548042055837362404946321947798837627372657395919852515826363050257891815212681249338436679459483887479420255828518733655132012641831901378117116155712508858967814011695879676011365348432778756999157367522921127001837889065500348040289106653821095374349229054907444473935331340985203526559736896525840975883677729972176447768361409815450578510777103819216901293794595702531498975755960589571903344419464470511492786500063382372377801459808587381217499817986845594596818113142578003308762205658375717781731424054323263493218844661779512246423438539725284040804516699343230960022320771417739427622351745342015525603366047421653645508701931879881095204205008947474582322072537810682014355771486218405556494184857701102112353428833571522840869458510992543696385780553708449640291632348372106501865541177686702714093380106100960087323364978597385645789274593649619551106062536944652867301079554517862254411779897750007488484392365754031461638881303950023924137056659718106323951742817429074647653064063450165314102491929267000197128576898175426426483715340832780627173881502131457614726642379031627586038983536124392746368097776805535305905463710225390081807549857917963602897233247924695872308094457213301154539588259662965149874153694737538570898424217923287788607682924292057849264728533538720513305056633488417946095070962030709371663963392802538264314650709554161714121213923349189879729479469657749624001445557470523060278755838533895060323041875236427326233164757653581774676928155831667441461087651259277799071518269555060797517191394668585217430441903826344880702355327071662315005903721969920889456947682313895559573249978772885858456303985636128264148453494893779008881509544955774514513816604230895048147465604034546740610124872673960685810729265514119438728072639657615191380438672410606809953272356231307334218227528069924643742595054486307972764865525709642856289394086606415215329233880168287883779893807822238234070868258067580434136230106634605384025353301737903191920863413367432533276014272064530356320672135295937265396517293070612544103275418574892788570464825106467022809328858380886861777845923914169835794112451504496367140796006724202800223461066333262676766910908685195790415445946224552184411440932479845010113321329794379847672394428130984065105550884197722039324333556279165502479866015139353553578708226867301770428368286398912506278213644374178822074845123979582677843482807314164021946467642466898168681117381670025876536251773848252034482684693160100809332490694658881971488107787058316845789788264864360294133329896298269979559056175505999097688642760045154597165705424779919755019952610973235180882696484142796518662791285473039128647154086413322055699782224552912114939180221011827423801216769693704004073825837986026263043797432478955046943557637524513554859627910313288686301839691412450440140302725753056899649912643555426128870022954213090145715620390199699741046702384562849093617500565587537014538078716618980374350909906716793144894801267909595092569560902686527598975027920527042926466866287483521071326289474619668286598818379964828628913151637362884260430128049619410172310741370519100089085791776201791657972428791858964720501008981999739343589516448356388631167464249784308169566134934870464249999454954507230175970492818510946338475738637135129548254323685897255596007681258875655498396253496280302374795694767219346293025184862110681517813861488592515388529361877285028303623280537573613294036905709477118912496429194454989991994757072728841410719068315581486481805839444110253991272939152057802652823786213441401991479351402130496625788049282758777149314958361515047751458366622991545026338638776049388003640888865663350598206254252461728171768691971521835243824218671732774820338119707364757535387144387146245809334053549496617720048453153675551429331986900499250584987526421807508592439206775174200721886948124471023434448853726314139651659010965403151552837737961518542131176392449644544722739191032668388122839121488841581913256326536146985566421281396207482545999593214784415355563018085868805877074012135864660927782199181620871234538984839585850379203922550731276990136726174069018018599128815892722702912302031663164274380436572936276428175695872475166435529742387276848079848845935358352757026844167072587379864808142441205807702826669560283604774097420080451593452171098687847510362959143539424398204155075214748844326268654374220314089597624661449506767546439430248172470253833833804268198245532921631520110611757314710905722451927266269901575848363572329933501287736750354926722482564991772360734206924872763714759196614196352172141746605162301386323359132623877134699965619403097788271723892808765745058899598935802424530316591175427178835298787677655529369144455293491795289677956329848825051565376704846949796572461311990874599036714544778631721601712012306708429748981062206992877462388622799334489492960459063294084924969928059669310950057336251802239206729999127717654685125147037353983768201466055968855167573907278427737123972468620549433716685519096205387097661057084426467282162957656618853619740354638448668003355560708729783110327319114097477049393196561538685220925538770078480137669208818496848578545944773476646524740119538624468674938480874494578805855995126675937435617952864477002761702561136891976099723666611893107574918266138913281100557195361722468935522127210962301676245849254253728076971662260406979538224990444420501924737595124223624164797971627419314131313812513066390307789631730913762849213108767431675860220283207806410831023438209676612192142072438940453469056699126877451738642854155734252006137282442168299807341155290340104660186136080124284229277239943986578812043538594486267106297900754195146401341621798660200014196389464171691097909146984136050553015312896717907718508082653565752059535101618295276416577101963278751670723901651667927417243851730091163070140945382580464351097248778119244516648698829150780672295801131615679997995593411485305965407509611128473535680666051130569210399416343812912543723866893741307598033491615844793871336906372741520425953457218978943727566698265265982499074196480451232603220811495154138406920469292463849184225000246177240195460921595364360036388353299534894116735888439226191357258268146978669115201089782834638842148102580213570628384618738420943927345545116046430811327018683632414508849508794720593285236427939518389936640493371681426237167941335970618371781353069372032771852282691245293229509432627364625724311737072687819531935891038282779587762167941937347172102722787423088311504681047336445256860240432502519764977726832974506432280165515811032753926134285132005460781018464235430002616660217380513261110948945181240037760089401073672560334644239468289131748567911425190650631473386074432878515247514187053681579427342657254462715841003983375803543304789265281152883697147909943750165706187033201090818529251145140569598720569836603501846849884034219556902636338307470684016598530982529642218227450353294974874535638307698883767711909957103430063727894596207838043632905608904222167644848836800375663672016809564570700539230414517403247295784707883037218773212401884450461596231578492912651450591557002685027717827073886419484591447564088401831134573620656465551917599075383711803751161857790987083029721512501725654978525043543163061592779056974187864485808673106282648288866616167382257464968712448576415737078653257162171637809204145223826798136239843719955108993579542613488152548078600954665586650821877900208684636803679976518001066134454977050168509241381861137776559041881311744985842364362573528947891679389624157906045853445588281767803764340521550537975897447382026467185625388322754277109025797969417944771233478446127710765891769042765539137223753792960093251083077444215425546107897944524747656685617294056197265302742458833752637138153994303890880012256102516908897948572936826801500793236405613929008982762842433306734707298617494397210890819332961871655651854525448486202285576855103288313413598528834760485180813040953342285670339669221517097857126973992882034492502338067350039219917273483838280096856403643421855670239320300839196558015696632745961774579237004981687055655372904779021791695482933335033388205181332640144262329758306960463740948615807977559625626932525358387010222090143175154746183375530490284025702979609635857498826760275577430555879437413655484210025770163861583751531931308714459911434960224116201921462646133425214331677414777445043531586772590502182955117280579413456953327442664525487834717903005427050620871896226180839628276707173390455142457296092816007498993327755288810022300069596912059919803524221965161681848418203205927697130482163913257468016552704095657759966539452625453952065749428858151300251324070545640760819863110833550189658824647471016514847664561073483252425753861095293188320088970010731558974294113671702930218026041588910035055676130681780118901636574986418476061180091364189969630093633426437386371718802294037306021519188332840032115920678755458128220662808746549827138778233695494301876450085125642727257242237427872030609973239852545306245536061647255187160318675546711652285259054749839363743892807955905025409198010546067646563559454902376686360057889331398410270719297842396500325289762374408031342055886399734390274982180871959562595573189123799771959566506082125816469625441026120564125363150828260132984106548470466694418091106461727123648817079368470262756997256517036007652728984494360449605555827477397302923928995107454247394247097890531073789036021953629528535431589401445785025173065594428191458298523494737947899592809374494218173809707264245834699648101455027097354849884502373036795664164335122109896378173313338646793087237559898895130218538969844763843047027847215946369610291230347873110792391203624964324686352975365794100931426196624561692631107112347965763562869837569185542059209126946139620304345507442004364428168723294841496287786296092669648592089297481621723661459013834718709237179289597214159369022035650992518969649338863286052323710509776689389001809232006314371855082586783869629138320279818134150574085805926251547833849669024771539201806442948358011234144982219664796936902802817999984435441101242944752231392744219349553200354248064769115046545113685993973778746186182101196673432393790021012969718662830789564837094988111422769706987315496455697906937064422277720664191879963336234206292732235948872156773647528206872614759004332050990870637453429819880512841712635064898039750965107547432706879645794213557193803505732404328362477458250098878822726431167716020238458346737493457540091409359607894907608145667581296819117533288003205827161049085622111722458287810382390087858357172937812667562415044789315578881875528419277261530239717589683915057085201936541417615057899187175445093521096307905381396859271647637758706127886794476452295699334541027702424953917006261529066964667373720464023627877596026410906851883176455985236904763675775910768618212334292792727901258058781084762543330262885831122787726281616169613012722960993532174127018752252874495326649139254755298258402312243325426754770663496490380877924956627823319383529682350752351393749094498786133725135096077693489140001911769754384828154220854276682980879501181726020013990783091930845065823503363537215333790118304755086955181645111160974056903375651165754066657469166983699845985256613006361227444748518877640023185238717957294316899272686559786413287948258959939031568289306837954171673535611256807054590656516248195586715532341031940782018167979072394902941434159913820131940824475153035225540361876191078289467395442014443841946030481613888462686669994586139379787190452421201375762692334335464970197637648068475449451119514729235365785879190543532342847494826878716053077667448436098593805086688081982908282318366358192215710832264620709248997580580922103597962779124138064376790611400441663780640603509485008950884840507783834393801157996395695857747866427188584417159731812548237493198952004505184483223105924740193298530484661986042751842319013465033722822580408663943759377795099467813786126723173051179701009632586439553634064829822476113896348056051498366048356048096888347547609999689438478062624892769318670975325131213773912114720649836455983828348198171046169124405890173598579220514201493905705444722375353439122666606183536892468631009831023708606942511375097881861293433234276028146934469129991396129013257587991595572637745750615000050946289692006446449461757917597933849944710572120919396530684959945000920646203448757533527460070854734726906232727810683844530710087141868655841513424344816736264733936656546965503823421475519856106821594133834050881082877622827529534795515516901450757342309649254620410244548838594019187795662175524670887797958402097831286123543944369300086277002939889524811165866845235363167100497317793754037690187651731652150761623580085919715629755408152815627299819527067389323182280228172280257824121775129984667226541129906519780775689960410664434336062536559545933115104312927327353190509082287726976829463509040595658415805221928738866146468411988270754660857396359549444163640297787229681319398625451826138404061682468359406023525702698221565803286907489560805728890164344025823542014430319201141334761595782189864615661244015433561502208218049509644330580276805998341323751501995844380485484734459954010269732108568204859521377352307762914111969438059838089737803192906608987893380671379791678339702343136141104827394560735451855315698961510819254362371728667561458609587032505474045899921436819905731698411300408216365480790600842797103011221219194971310499406497418076572408227493858933413081793203512362296250731330067335226416624025376545755505964579851159661585720932478599903679525516583799416830207085836600164121746483418253106195831393327411311983012920047138906528158774893758907500473784129087898321129844535213778160961942579970988257434401217427822860674711714639392024459389525235027423503559160574186463736035070568567334348407610340208019463294320365329202939475429113928029595666912151883324777008869814980736519749301770791666676319287999777847517999536553409995236227222790322113349286005340627024631760036428421712935173318050271606153937067025394269878192884264677895320767594763266186750890916726227825121399149128499048323977101414883450325077047369923552040350721573345453519964366646532153907717806070558650318069067682014554411759109400538165371136417188788008849096634839221108190254549873863548878990587098949067754470218339279106529237086538366520254252283915149784901288188427038689846834543626996148886630422051877847439930448034074282512587384184757835058680383550656384985824839971321249050166084705061297222323081759547802197135598702223405473576804400929699440417040316543409302291128868566728031501770146529488480816591564608898806198350232987200952899306617459558313336489953152688552306393478691510802908355622885497794055008842720665611515946361067362517734543263129934530372666121498474738209663534092106828972228923786630928158186259211340696709769588481869594314519107526791087960787202015024464824272363428819429235236400265131608101641915301508612849377063716468765430127396392538504578251450179180961253938089899250356428983088279535082648397833953999210074803091501398245774699298708725547120937925993792974366880605700195380857905556072457857362517659601670040524221605505216376709683686102719379578160695377007831855948980282913506371682797559738574498329818635607166890975006448875422791410267738533609482267067338536966042743285691647690364418883451492675201280642206481289240751111954324756143030022725819838566424205045920910682879433832924996165542250593777499161291237536544581981491785117800810737944512273832343376582515435256049005040666772489830452220604107066580789647912794652224659664492138460372051292318228882043963852660261279313858860633744569853824018202597182624246716905356109699677265238769067403078843629630408871401538603506136361419915726291395772214956904459256432970962186675564314050902124539283974335460087000528536707374276790407931256080012384759419651145632139343134044317797698964149332881886189412555854069344630561390208863351905445796427942763565525229835677222517355201444067280248143223935365371450363126206328047097512321971182001437228565417092504732559828978440677675404040771048381875149112654065977605009400268043290883261979707345583917241459337996539638343889398463417706322926440587061059608235201172874714634945872190833997420406163007948328805039357023244222722937660390369237492938402915017475747154877851341747617220210087084177688365594080044691056649968438482859340013980856366779651464481903135669527257504136186421204004016477073024874179060743101410952385065573843182681289033783150689500012638155129589273153353319922199012762331811161261463722784377633842640642894270477194134351104628669017178426794686138229398038415375949700692533485014439721511796134360558478109499513652688270807889781241585367093385943984170217760572123451977366631531341503718078088722915763633916964497177933494795013111650332583650125305421152252208884283081723768471608026468350431371195376399496299536803774483560522188196670129016967396300117516426445737000975679099574278720473743280752647485590823496715880133490383879930135254717257300737805462158281507434836874844206758775516797105108336123762350665005826140994652734297022944787412338395394717466155074828029945764989100591976302167311801690264170250003055250229900856530834829843687210930922725456177388701451159756575641923188131103973164818377019039899132068445531060798128257616645531753411173511750574904881660738539830463405558542507771789763534393311856788892730052018997547086401230271472491805225732136573399466234543055212519860657558682538980956094689858810020508750655106016133462664037976837358724009733856067734361082135867394474174093060628603636623872437985046912870078146682891670313928569882242296454540176532950889335573724296432258957131964769571605658532822179354342022277607758443952635638611903708288091935092379498522863595420829594317716904845164497982670793840846872933185870856244528420607357859450188888746909476850343282835119971774768428134158676558608010318453961220388428330545212547332025850866506226765790429956176363420327397846030600682987288848934587517557784927460470338183123098197949105161198116636623796637609945169401533248253426150885929112742342119345333256976655652070899985841871934185682284408050265184846762963376426540779837369653431546165015616109602239755010255501304101016406522348223066153470350352251096936589739451634786382469292329276587066286653449258569932327830039828915703433901656901873881762182176553206962555992005531264514292574952074882895419963959234999542618081087157823747774092706901188612587610150140683931771006073193729081260782445528061725462125262663519099887451175800788142179867858008049561816857107687983137561698447114077493412812076798950258256381201466503599817766748684319594056599373916863065069470633223203537168945140102248878561159278724339211388551909027416880942792935959312524627069868517484395675437105315268656716394579125714822751105817107576844527061348946207287012499598621152303753253374739653223449364163485538865522996913301830604020481384528699509787804938891252921101448255594278251262807358946351085731083009169263517224809351210689256326056009513743910010115520843934061005855985756131090715451547762440373706350976127855287889837367821158623421319559965769150534394559152076718656942221251857178978501642324272340116756294206093943188479887176072769770374371611025195847413915091256845532198066931193611739967035167070923121779919765487318871201135173609106876802304657327512719646453833019088663744800686169311005397181925697076091861078068402444441134776968740205258789635630467630900695475672611058021818235801753497379665115330097494279432769122581424848232696036985247006151323976952956171670553391856539973921284298181337652588152806569700162307981740752997820810248077247897318119349435447796363700712881494086699079704483227931190842074193050404553445532392338882881294128502198912923695237511707537615367872550452245724687452147736500032937532819684038974333970487405180463060974628024394223757950289430746911620464899727972383426770343879807183029977634356954895226944777005936981568251391356308348363132519269765837805333958973475864694599414578516844831558357537499814698645295995936129494341740296293852418305469452258656996749877684001586341515735215015047495509576539533029861189571087439202050780135566842536864589037544008449314442939502785210798494728191144707275393050526099015227295821637954744457119491891320985464796509035212045495692339521397763756977097776958538939983815747745178056367845481003534924814951088458749203914592503698839264109999201198520562078199213508759696972437594225499229005995601688991309063013449355067881491783865923221567229180353814664665345967346211936547879679037203338807934669196484162661531156813883896196555059016499532368284194189351640001359739732211904873673340772260486582732055961355949093871421868660796048134034065853229129573089261383092333319623924155121565773500243087270816265612727335013222130679080370692851617481892978352963818201747867696572251972378299374714398393436102871701138018930556448510334600813919128533266962611347707731270831967454572056635222714128682177257278975422780968786561611757696883573392524969697094647462691745499470565206964146232179228402921069644005084943719094612699582607007707802017185731661933866317784925335759011218872482525171756334676298601213719408887100117566188069320336099275775752064856848161188858052382067690112869374353157327274730219155995023586310098266991613841412275234982999775436864417411249377809339925111069867968200960326630947517600199645616035298763292408218962642388365817517478933357750341657055602472123643217375969261067814593143337025931650089848884684577827449701199457855381584185316312430770922075165931187902216664733391078227724664137411241255155529578165746310433738722197660465048550271734690839856897326981406646493619252795407271085714319849064726079844833559568429314316405799260578919801294230118105304879426878849793192277109257098311964932551705406510456514148780610575016711661230221839163698258001396001868909629484426673361061255024658147525504939054724143912057820941288285576009385904908121039880481985954079615342095924961213524083132081307358002843757410877012161915003234057782084185723984646094101323081522082993419457036017159398201183719658989163288184027163641752072517201395264342586380289702643629374088405296157259181574633443649528717906422224927967705658127666447750768378028867643728924765111843973344293088576402121766375889432715628153864823896502837685745505598825179016747415759163494198951668617417305923016359533115737863489851398910107670400780989690265571961184253322869314445565168814989568605733795184365384432330896670464873838125596849541379573214653128504342893571210804379720149305210289968157653444142634631910773192412896268403441063140817173527645144047983328448514998267422374449917491549498046905616990317225828400131199030099572928536425730540048656033730668295758264235031467683765744423208088578574632296294293955358467132832650943131979436060482424425847305559528941749233468847506253590479956981368702483269941923434608981432770549998349101526197373098862730260735553695722436331469351563684492486881303742825809924333694565708980826031470075789192102014049613452978373145860700364653794730479960039519757771258940871799453601196869304495617414941753835316310649746647883563984712215436570236896633886557690139724483702077975114667638135139811964384831408981330631430670094608316067791015851007643927070861863856262921325156109212304512733627965789210334764983174608841437519748064856569079229187583301531786943916613443660898111203147035404625092897590758201580206693798691846794248147661191912323331555240913902818896981723614907622626633347336086025297393680844080627622948849276075114591876576119310085809710711127090107523952440769094719660725914098399188222041360548368101589363166830440296148991544909265136143072560279955785128554181215593224214371173215774431830414259807170097532782320233134537907074161930092480173506781389157540026402061566594505284439125337847067951443862048495982912412279629009287637138255912678451449154523843157826828827995430655318413409286808254977556029496936853476055036322121428250905331335330023102360599863589015584063290533245279450694589562431314773191070133727596987759704123545417247399879585940077490822707299376690624873080143658849420512100454369986284151862227159077937185563522552155238055730667699396845003366959979007223813246093487469971482960592798195833248079841534313345153228139296749821811554598186005020278180236884705065740728539290809201061509995496257028910797821005814710528031042222236350180646294623003174643647119431015372635543288721208907144593534900973844744985311300425528560242591423054852847038941670300091019443890282868866567404706264964680942473440265445320050824441326582894420069140001698927397026887205684625520976953702930866288325347036357945823538322758854056137338931995775821445681796162596938686575783047105261893822074026860495373781943297568200218831629948134092977269846019980403738002551724628620845929691645111389913415756140891821244262170637571119583219849909215970395192326196115815356224321622234900061936701678207274968042061128464485816306233334290663742043230048550043211147861772328063186893501887305208479993015677634881706930756209797982867490458871986279818301119654628210778590579405340194239547424147152697616254347236915772383971130749726639567679218613994259995894243678682156992345869707227903717404553487851342087237569605806473600979118205283860105310496134483730824944709257642410688841291835729835297694488368156160162433954429558289884546493401056871904297505641022147872129620281359345570204017261091600857558223204764527713509756000383824380401812903176930291288588497283124311175315533641279656008638917708058516555507071485626818087322793191463136814168415439581536680722490228782833682264410766001458921166932820020920299260935243562846252639913378183230560331099763295256858036859032277667018067586109977416359910196212031312991932054930948526660232971129128259500895341711108932990436082044695743747163058077112412802328470186426453147965733497536788084343123177204623153071402897644090622628141696125935034654430111363420161658555534088776803068801448651025445317572627774923750557208820824097587556860848818018336083457081508381428998723493762198095466379411771168063265303143033652960112656664230925313004034278516503703451963289735600611273711428617618373284621733987776352271098149564593900102341988957611624158127202644627564126945186174832616602776359466042470421498542078777706129327853687088112877886594731517315321912333235712135535433466732093288571037350036436212426981326204699048997933758122257962255833806482561679760709441490332213405698109678261954737066513965651720349645292556772048703533252753299654021469825264515980779082087872511261130714634695471372315992549887118405177206144088747233040209983263417991824060083518554074085708947818000782574748169397267856673934228811857702156393764692114096188470313977225914002643399700264991667703509731305586278354192819763159965507233547100854553854906352572257231019436923135804214438479743488241823414298313484178290263904940419990361399297880972654497961301155303339042978459644242791664251618386793778288310962288846615522417335958506618410568078683173892396801921708572164856519464979380593987091182996028948312916809385664695299922275110076554323954328371249414953518508169219626852968866220984775098426125413579073342268565088726181390195390897871876600865861834620072335902398311783718337499378405832986260073992026325092843462012522624363688884715594988303716647320261945365990697928776389455891754333950033150603305948681239912463144547095295051986756678832044900472002161496556824813147386662413327610179770220860128042030853100655893294504809221942587806263807160077024468847065615795238821906123890905430718870876582683901126706062385393810253975068239278702712790718923165144958610636401802594225520629012095063049586546090016922626410273274665702813567385442499203489854100559936613096530705894990892233509279771038280442991098813048355172822065980057692796879920243470059235044910974067919488502862179840182161846942586006974427998539967854025865749038558319370764316026942858679807591478204376443812578916706056560448682107643465405465287510219860635554138715050901950302676052986843937437077085502500841993899727381229698656422646164108800659326881488333169588565529104865752262480868699304960348026998206964376138073826389266921419836030498239770206107175903488017534718667462294659924991252507355847533281019452536929991857152293721672015320971845620019719826900869837700778967912039781809675729912578290233101090705045830879699388699079390433519989127886162161280326439310648189950749963022117888198848275533512497615545939476811525720530609842523537229025668308250021622734766865854389047640987334539410570168909451732671082938573374948485157375081440839551130517703009230034276832093809103398296566106050989491275659455487624174042348878867381547515551708954394965846946819256257990517772730686109650604821610343155055978684377109362787610120546858126162154518406809750216739459727648664377968007538206681726624008894395446214170741669212590015878910774947003765063474010601476963808121585752809796960883680699471573214034970638512663448511946839929983372063908662390531703924666680474823208868885447089536597500482552319653319638422513471015530573175256186823675607892220561591320843115747167991368684860387143899305821912303466276816366935162229286687127183217330130092550958479814371318460113713118685969606873175596220281917558241705855301265426932461112489336769215863074373635157164308272529779559670983461872416650716408027894914156621073217599932327591633452260503793596923229978359822834712436381070310985907465909162151664278489670444862540990547498765720181763215008099744616523745716730827465308574827753560178090689256480462227552939097818529356185198430427535966584646090737467510565405145437681532535006243789977833865223186943741857881166232071091191668421378163395160752156728914436873116644320091057395228142264741222393058224699996785398214182423596570763099108334492291928145708433313823748124492018311759767806817162178242924733972717103865972936682286266199845324308197861447082602078716318387942103042277732347185403902889364561414634676693569913662136766684336390717835777657682809497934719750944241394594102884418613918467867428023822684594947668035647914991083936449055008316454678184522765117130549243992108389159634616303940400957496943930484005729640985947350797636627118248819192576407932962313137458549861486549392168806596584694934604666255726216471891689750179209928873984534687205029140034751702159058304002285712940731710210561091150351226139151108933643439528060095594065919396310285572754245858508015018958922138922631545125586927536803643583090962895796701582941131467386147835143812819485905157094684462686052623110402391662363690901696650924007199037313602165878935687108126657993857055773291081605306523398504110561776097692027656946938899686439072278490099702589057975678984591582372114533554643543405248671446126817932845874120581944384053466049301678502762938368419485196932547869083674080530629360704081400226167181128050748013671437516984434066796566797112604282107249785266827488235413061692440860945250534381645828538266824380452454516195982922552067355522215008343643225903337497324060575661486736836429023294668042281190597177598455377695074540159745806552693412490475144774668652469132490590742027732061237775432982654070649794312176274903660921991922792185952762927447011731149877012039262965017000765962406235119645408990041254694263052790653937468982598661659203682285271985128276149503787879445842654965196248619538175791861964524042528196500395619522126571305613855442420011370678192304347835266314881941060010561390565800028311981072237920219735101947383186519700318003832908918589126146192844371851457526838511632521930243714763706401149879585607403208894184010765641256413117148845122941899555692743177588478203766908140008070625165338869388783932273938199966842023028499937582852149258612308531296833696461064728449778796536244856375390120538951438360873902008929744580839110204736828249392803094815918767002129963587487090023514035781838313797531849695033911863077431799924770279642900335295485091564827917051218853247747238645172458582088662733491010586048481689767772554709640404676947526472001555279625123857604135287111018124918126594306682308012956236429982089496586034045151712386106445685499560167538148220968932926556391861084486295676431573227620713737168004329200182646707347232527871836501602773023514577578614924398480286372726547096520142887466287843328132843190829530977526297392309916038335661881274185333376113953412480771924435539337645048725117281001241850006793331920542625222105451773381282964665747411292229692195625048688313791699703431822989801089207259085222789634771970444183166211822290368833063805970736767407696794848674220567465867587980697833204935802479723188401108279140164468647235244302193519219502035375582738980118252901811412276611568369932415970403193805953205375679436121451847400014309871907340147878834368222280738107604285048388414801385601781704615570631308037146614654167596251798260301189585962026794789958619773499566530065426368244987566268480782144613303953826832496207949333063445164574160878174920256359017352041467967046761039900080273434026271352620594745773039585518940666687109202118964132710084437618069951905848526548010427979354468699719365999713043038441330806408048147846188829464509511011260750247156589015045834978011447946337921885146084426194194531290639853582533423397043969148405124444895275318924311570128820437066232824855239475035780958321388214672993326651186123716388844611192245651507227535572355901422486954476734645555466439522865879381486674860100970578772742427524388330869551227296314410071736488596197445610736546138101923152250961438266561486718009686901357137686297811663463857560756459585181244620152911248839937712395179944017257129249518985925083248553813873065171672105225850585971535157768070845310216634488299081905437451941165204423562439820824343485767290078682330485239900441407408200001955764432128778784498702649138342818351976218603277826001623708782865333324609236530479134431483159388765306246876745966377780988306185155710318179501318391117158932927423385370583398588456998332756871409846024217094174727215084977247014038123707977028528066723698373339302309959321783000040326804473331378460807454554708255421962332247242980389715869308539539333773334331284533818924136132331937205999334011741742337860160426348649949541752489539748556689737754637953971524987905357391377929738537392440445453342709658238166323437298238458023875950695980694066000591777752235561691355797652124306363147186909795477427659155570656580934870915983427149814663734804073997947002723858780375085355027930826466784864353900153283634798367065211970120016429825353390150721341263308119127972258375880816963404009226785252021630316941863516022381982129947321710330104938736384414454148417390530326365903857029041920990275887302972323908672303439990732134283621593671698388401985069570699631267838019612069860616568223428096569697085511315686174944754645893121086948924665952344251730836591323503066947820501300928309899101485000987266885447735453431809669325815163650389322439437640505534009777145061150584673865893985003999227434880206099235616753395516032327204101534358691548623950177603983458372214345221861914848007804034676796998839568118670500329686998064717100840914945981451293238623354527334423078688729433963916361967079357808822701933278188455791556421875378765278176835211278018696497235463531673927887806328436031178593731117003059592296711999846576392157775674816713844241991269698716983304026960368213750023528044560302457942139273623176067236951417019517943555894292370339989872871767685368679028973457272597949344305684741731592876265258213041198119782454427581274754264415623148260629149531820697908869826512081789242049300507531722969290094904409909910839891800557159381675570726100807144642319233197816471202645005699753035394586016365336929016273341446494029211570016592800445145408422108118898947972914131662322015407563664845094100179084263398341305620987542257215014853905130550461707036733703529976359990957750601120605103819570590360309050030311512725202339817942323078346586564588973206805604700133998509305021085478879980728679719439039562688692596523304120587175254464453861537097707126720771671542155860562446729374536576395374450624222446200489169212209617455142887411566063839746765978370980981795349389982776018036897652283330647820141232222971204195889845809522964572809985436786238260999968460137035816834587532026576859660614620151268196024796953831895645199399129405568273355480251517546240335489118035733052248430708124425661868881345119936403536251559417524830234088091664687113853555171611199197458287778291546016661011756487439932617097795520683669974822336469501851980391005969108374697439532789378013985805910947477274802806301329754942140386392754514766772754040109320307465844744507841277185772826963253359325425344703792839548362713448610716801938977712837523648638640947432221828798774104822321086466604187687044485592907440044900755522594480855256720695866588399406169414187933195481405537709026554037084580470522284665438309055518041097921979567015611652212285561506546658000816076160533503418926726314273016845905408473519721894190681212905596948124417984732214910822337183383188079262486671942798209124538541982936445331282054302474460394049304460724540049138776949701381292587762300647611957873851253497411169707106375791082181926952819799757459238508771106482718783582318133059179558772457467916356408743161896407559984431968237600517308115691200559601131175578354900766613299592287654440671982783159732030732958197552155993313211831316009134922030758964619972861590331333303445568796918325541988095823687348493090089957258468993966511456823918313501376926202071200488866204278468474011574780112432820860659948195401583190924797353251528310968293136364692815052568311284753152092566461752205386665257733551491561256079149033005750631448287967006880352439123083767833613028164836643940733459659965271324118860578334650674588921159815236315535524292669125525930390975964418789789166062062949141765594758318370855529213129446631167094656231026833179147004869277122489179056072678273733295734719764388845690403014302895569131804655987629800698662433731339963015183475406017783525274398208563622268289986223651640456410426356983686998060313187833561145249765643312782654447445022962650781254440750048996549902359180092338793580907619570593899865065361844902573388943063861641352413112510172605939343629942876291367401045397935191719830410434779579133785138760468104392889413741764231460564295945233183619565877085491285673732194105004368113723659040612965788790294649959983217356385641316581021842551951431069043962297978173704805475124444821237828542734885200878639111807152688074504776791868828900113990678978883734559133570443501634329193958992891000853112147555572332313470467602175777099377829625569990758350700944364740830951609637379723295315277351474474892968671644955051503344450130916507367771755355793838431246986591559473792659031946815782378544373908647995052058897291373077288640235905505034523757702643210459434387624623595808451924653060374318777195614180628613197070352266078803875404873799119826447349682993591327466427489660978196476766619865561762566711934408151511183539441624684216930867387514786095234022281719711626186505444199531589621525575595476865532164553427415004194342761565578531824337549945688638285228088679508387790648176204730303378565977350501748399158677961167245542839697332519492437918812971283621110445286001552919017970923558976190002475315977016851446525593369974600276946897803585700039578980697870855101614490009656253220081024785316408847375743296460917727340461335626531463678210137220395235504806882055240143881408946553463440510540025479312638598482348426711767295845758977181522197719870175466383263705704726917796757858917411275188822650471574472315487230676731483925244955389872551878728313676937474704776533021300952552096150120145213254445803518927517028159533126272945516496902684945970013059574410974390294513688902403011637505110778613286383621788709908042776377012878586616197001272613022539927005597431887959357099516332197574256046738613241305568850392161143628934877230052858750557228029083818184116718003984688385848238778982264759981169989036704368069859152606974164339601490651917566779806201108658528428466026948132400840358051033973974034533199064234216024277988646699350248440690680154635982386311544444963444546476386783487896668226357689183126477236191056978047429489924758869018003600387765026006502103705909425036084591930270823003092544811084511076512854592017886863544506762730649335797794977547798026285346597779476945911967842837878755192388074206891256989786189743913212486415844040909169018729562677508796748585553214910529261836944034072518767103168742656127634423963954491037766018826941124952035547939603206039001798176937512866162819111140844865436013963844417063697342713453576151665879287388120780941029027871654853211497489428772972988077276837031797736504798293692866514922430383933497800640964403055484931100839147246966371907457845555839008801930036589799382257117108603314328031276184208856609978926531282025056538929925191216445427290773440614659027545106392301282265760442224792805055925288900456605912127295583147058931695932457580412767799088983678915905666783309549715444557609841493648100924622649476896206166262639927148744146292129194272964238429802580582788894105229586167448410059905738121300530333620897879805826865842126486735082702917774365093313842228653971552089655971894141647595688356328786990537492316423261478140869865649484365932070157561421538395455722110417406215729447356481195533586274747928761885415843690782579018255411590996435601681367269623592043890781702544201741770338237896830374616152604723020707990954417505460838667291370813167325413400848761982140107852555553258463495953823794880480619921495643664035462992328640833018876153999525195017013874582750127252435637035161875068743461366425286350108825924103726665808084805748561897882237153709858130962383965785407880576912407341982440733775359334395822992881470146263135147229909734183405755574482821528618437366842899638333230102338488021920847493619921051687865530813676683056028589978220537730745820533865669328392015236665246036260676849447575211304453129341621229828073879102204258270790624377403401210148215797935287978933921828752940502605305040916884096745597447958739290816362040930107979595803624563790387644985491461667264094496355576891556864749986508010300083996070475864428343540261272534053303554396645612411167016503099561950408653778496920673531645730761081600483667797727946591004276148158996928676035079921275684537879752169705434209196789394800338679072825643972640167796270208873927397413859287244106353856059785069291654657498004113584830353931774776783379238583184191771094206827173662231984911291498459451210401610062398478646423749059287818836416257852107468772296553511097966203337402277399089982855080395875003628643959874856119246807446964377109133943683250259881899377345297724711763575788528098396126014790393186614085617902140824223629234910601219576601940063890567550939114498216553778822657119473546690307425961453359188623794086562279563583095766122445401511013054592238624988633071032136936331285424351454606950976173199636391823912146168912883784125072859565454555787137959184016427901013143478035602490282298904379726982604969872109573216621608389085618398582169663978052210877293265373066640359219461274068714066557070779787611526863352630443176730604427371276480538087078872521807896624215422217521400088569610720957899788264164141302298971952763155245692304141486530616117156535137587738642931499069450043328500083202500235476526679719097620701865762246453319308988130108805181713558759661647177169617868891252273286263874882836100261460905433652194799470212267344573676627630519057643058549008784703731271091082347280297646160661972856269154430611907461952265201276943244491570287017861907870368590896166011395714488778108188326658614097414622669611232265871583864821048669877838859242231466427076894947068303512418696178055905762092913978573744395869917642899489333271753123412949222398309492732744122276548777181912043823196172829154992262756633345315078916229911119115000179219838813693910947725723009954449549859745691612722493436856428771155403009170165892109149022844588349291375902249825933293194290964884007605319443085616207421878241358657193916847603549853340760780673625027753095941502247294331950424411432176463392364897220994274691359714698369715661886556191775065153708412634393163668611994655831770653522480030491782811874019693354328015507466776943188819009529617761232247851069747030055416311666074876105031801420510679175239068865748299996828758983049335379734731456378782723280318858153926455446098518101247987425978351841877813528352373096636710906578070164982314992731647778875608876888725955135839587719872548897771559924182995539834188589956224212420338926538314941458969706536345415565134614254549319749105840279697370664028261311056764522199064860633949542126362536100649191736871099017301784698122440616664831814322699200065085425821839188536920483455281215607520550317496150822600798018615188059965371452636439454106417839258042402115352390223173378004716179927247257222825135554819382928661400849960025696197526402719407894260450518130562405034430318849565948936776124933214153789326392249084702812386735400826039405859806632010888700995973430081683542948465490408674180345035608060310501080655015810450772206057647932033677060749459512175857302375866555608120704230100107047810757484303666000475329990932319743763841761945719017051676634553034279887347789034073595159829715552917057082517594620663735079995689983791902759818943962888019349187581262178948906606370688192838472300261022065885728665086938342220439918450328140623538069122009607113711839374323009115694426444135798948566823369335479700267133572010109530212384122735017417092606951389172547808360288106554057531524529935709655445827164974083112108118569882507231805116142143348386752456149412867425634351629267651662776713292005999864767522846364137551400872226764969565867322646085106966213245186444035139870106540002048326588326390631059790516305532908621304286630754795409087816397511467155714577492133820413175776515602821469127661802730546531794252372026110723206950882339459309783957584693323041746383937128461912404537751166051039585744244597324939140549695817164641428334897787985223981598441878086012866041927302215432470484288439493351073607350159983630740636511475829881756479551145883821786156027732039042977424604289864361070317713693472180303040604315632867711212514338616907391232298048953877734011324269898974285139596270263045548755124588433941576249826218795931305817116497252697476753033045758419663492769570730303389024374082721892601041223114674482718850120348360550438803608882981710374197949019487202733201829046953778228349212558522361980357245022281164114087321620190704606764941989435721613210139368036153182697338719210446755985670012592877665585131341454599891198864338922151882810092439579425574291516675266510886515749092020753098926375317302633527978389999760796710468588697740613744700156189741146111686857642489243850924409076528783724842409849115473851802101061985611530846283035228661982774515867118358860483239981402643334711865258810244827141175919133089909804105268878948625417920186837328022376728852649814655701190832674559028145975895475510594187274560499582784273496042481545207302020287906974817554068582847361284816364703737079692695653216672489020159632174367075297033388394598459909149003551903639940265269001078668959115084735683871249805173897813964003476628445874585475492871943601372344651565070698064295020952897182990954027316303355607031446930870971731006973257418750126305780579764607905657354625507976628331669083621162329776147096540460734663669440147875548248784513071909878590511144088194505955366462620010105696731771021730782139575772275072563228607687956819065018586745183539829449907476328527231267035543019316658942372692913352605900143379748165440125013956516746164472759826659119847078495175270762605078988565991113284403100341032859271025158197244281716375426381234157353972051222707381107328573438171512443931231557730839606327501873371098283782039097652630316079049552367872390800919697584644797149992361045019799327034655229705262223765160345477668878431204174059399601852539468177778075108565844561874435344383657547710244419498639055127554682757920152783887422967860829345146066351368399878596913817458739177751670984741653882671409510283532963076406232577593262394243033928784326819641311640164365564506477104395946089362667790089016754434408053667227769147765709963198480440361389961632089861228530960517592528098215049462103004112540256644825877839862711344136689466660120123824603108750208908958627566815680624066769222268371200474352314099990042542769719921966420689862604396720627301315476615436223157575929268099790621340720984036768088366093871573231907639248093563252710768902125758000019308954286213581641126177005858966253819164349136907098897916264860092716423912581950745001546294376142951562101696170305285208975039657915185603918333153236395516529120139637827450581802316797477398135585542067617540634670713127018016370984204491670882429365316698702672515541674007689364161236070876971470306554121922650846510525297269815238420783799031215123534585298782913784505691985460176045517120919556738281079997596387620309988094333787490326993383510711187547784234959042423742395417354251640886058363253786342692218543325710210387095528660774073303649420036537641124251285998850979064302022264556105493904997347138110280638677902519556470984709682416746869468854639459194439590242693792522686538069786064878271990244403749488400636743751527872974924665950278296365405199793368939857340277994330089220395552300775777340766193826507564920952384890909352869259064314256650400403687877580757546508643919745892494843857859499524375128306150958622700792421579215997317903395325870608875334410008216197937509640054433183934174079541097076539038698133989405550089284829581428142199237942696918080344835039122752421811238196264653284799619815843533058389311918049864307657827806988823143682860517455096161965309597833157654059740469206063023365371146301821876830991538277455448661305219611696718200098885107986160395408641060410309704283229731310537711441960147618083064392543697422333114033307466204618305244290922202280191549195794718470210716653905176005182685632137643615335532731778878893914279018044087566631007120937699124858737319217663740663592961864217689782342849188971550875568888954994150141475359996699812890119903495729002258523885468177068606898661725830561643888190946172513761801780598708091429529875294913610797974198780139636205380702575369335541850156164864029733689636581406589933199823316098949973067996969414814425391292770107201295846396221673427888468647075598321070019113318715701801888191883442281173576388302124940366909608192208425842250035871731127418005932774097565598644878748428493081793547392649604020933298993936114757644038534012799384169868393731866542740514778017138235846807558741695422799271694028834299642081102026561516273595308303985792315323615952144678469489267709016669470322896491168958709999125498758978246425882352173511772306432892661557883527122888767712749824587441949075965555267213437006317363458177269961647412742397670352374992222820740635088619017016360750075731072834815108212147712539486066918660828484258545066701638592212589811634897093108663539146629391606281318893215951018825410811082326190866770271378246693679360296969681848983852707085580056326045443311500879821438803095966401593071057008256077135448013226876814917166667807726315997306071469972161321744730669561337036312386576363116073966670039238363965006502612220419312483368018160621176546520922080114669572298510339048141917463112111812620109712648144561809574307233161981342274146983999975302340683178064569297291969332034803023352164528445724399474403530955607302566220884546560981505490197442550614170346830591092965093394328894815012031562985665734579626794641115263360161736865106298937993520222178828579711465541522306857875700455380894222894091392810086596167176674321030471554985825813073963985784379423503998529186632284022680784254202174219499499010700823698913922622075573898889150523380013683980689222128949665140178464414956386837776865718690341838271342192582312184526465123636679118406113635486473990957477379199991889232100239453162745587375462714242724784410037929260921131612465868720156368977228562503579430520866406722967178820364624467271873817424315255454460116375109202518068063048694705879352756628052867323643670617348415137611112387863245163393198144936253069731926832898797258006455433160911332216133004115816229745993205661407466658533955472168041498326645701363891465334387499679780383773561423207976799548699184536187975721383259300222917823797632773029987533912818802082786533196055257903198237190396432581686992550967617659702804192812308113729056333824353159296022182461830306237669808792288596817405354136097542006637545168275155800224888444520344609435488756780823143156672980541766518690048418514856498077926800527698642147592895798007470443944839775483872873035190965324471824024688619320160136994361834220812804940778344475323891590868492640585635407775521804820022350212028168719978622930026556395146799851688138968181785203692716204333367588286822372483926038555582766677394015123907872965441013974747078123455947119149955290133207376328435327501671116667439732909570345210230109641246765617898475597993340506229980842212241653531397976103911534589686408012658288623777611749758616672841665691895384632946882288361813135946193376913216937931858686460281644206170567034380132282003694296630995433687519493138969362393576792147562670875543105273384393458333604050788967360466893861333878780695117435326398429513269429972298845987815729693447727561280310718857075667084064259889945933987717914458235846469086862667772554900794128424399475898860784260234053777130518527268365177268353406038846410277452849873501276511277452274242865152340106739312169723394396798519814262400000158642094369995446377201000337124809761047365805636774720327037811442844800055991479355123685442225868940614299648202855735927440184576687591805909522984309782656069197242668986147234357057524445075039324615475211443057461641358462728695952668113114187964133788299887904519834111441099696168606331917299263928422069579372071956598193850023973694480702800296874343797187153868468700049906712143727624032362358067783560175756969290147482105229589376293505096828865742284955083944995035822110260660880668783764810400224577347000501066195422269360913311330154369873367073442424980423468212728913650274732190117293371257923196563698681020005410927035185129173250288559007274991842826133414491422475112702445008329810886073810103577878265916238394445601931910696136746005691819867776227069284370767232599933175560692044738780211370174851587061584003437583541008076421900586173271774745348531765089456932355805856736139017787790337226502473684712077444286640741277756585888712080427475061827329558086684435192753103283648886307235974154338431280543089039920260300234051780156441135269648583361534426526495995229252209296399748044907379939346367781986853740668304472812185939528449612784732556429596926563352648961483217108275403333982157656895910337093530279321271684225212745842784904746390679702587363923852296758479296914639095413602639487279207998118258630424059825131702276162749525999404291821127269860500935034091385054093503464503474736961862497163139933729170766650663990653366660056008707088248677055254054984972671857655566498190479800369459259066429024141747126457470034848267289309432134216022649547830481701923584087756636549419808999738640046108069460852754467976666087003343780119722968699180948114937852556477053162664857452141858234883541581367663205929795428913925263790942043500821587320335258454234027797066028804016213752064572775392298991502732389653813252797115159957697786147406130320076345864506865402769810097058722309506593175640582169189094843425012647833658117977469261447377321003140247124567838073935092473297743241991445408771851666052897644082046908463122525054132240170307825492798760385736402698994390502573315248042608527132603829032714409989631796539676070088367079424819179836965575161775558345132108635047588036869712524136412414598030086874954170892732897381490679719910768211300874601454615898913006359104049949501354541450526982705610854948119536948428445009861946489980700636534111109063941031528941084028698914959311590240018078143757297644867935773382709923962083906235347065805988095651353023711269176004011611075503503037992644480187536512662006365794870158954545945767523232114200703613591604830077170958573427614072838635564090742378859357117013783084485699966007587333013511812609947763892761145799937102432320411692199749594956459141095417873715882981519084938654414992029037439023425217659659228677854799358858471279199551674702795207772692245769284708116667383882419956400192613264359705876422598957425095694656860763255389153330894352907157786932195364329730558607955511541273655770041683595249933496461654687993425350335177715486947038883372148925403134646683490453315240672976648391589371645615054734044904132507957748806075816787324627850325348382800225363150506297343583894374338012705143344737448707175533165191109273896600435396148774938599036900949962605312763787059958694570226938052026795558377477601361850700885817577600684736950616855416390921904328059256920503620299566401989504410666757689127400718187999621364605197407826987446852591567097581213888697453989045234312102535354122360598557587555628141195456788962613005942350614881842476093597835567189124087637889928130079077778417100725218148407019260019034436782720056691620171534656486871680678933769214375640119420711121254671510263413218856058472145133002493185232382260340749342718173216355899421373887904417450753852708763249113614500130965356570932699162972627078606974298869210079756844310794219493574214639863216472481280938991678415075147034139610403830765846238499764601288674252648068077296478176302148576894857144581259056724494086036375895917811016393621656400707096932598933141099722085990718394699733979806561588343188418330777864876955024171455030353616616254027080550616091821938027069255046844677025177337006537150211006794561464913051285339451122496374733025177406678273041023894854626281491571215498556544028088491719966749058079989480542859847849107470965317576643959954023717271030627373890141982948683228791005173465230252782398422281119547377715572489439938847280791306362603910834494207745220274252341578830928573140992042226876534988618223808893141522305750348708662705128256571780789176683507055136419309209038447099419973839690719467720916939526005277434938413457601064268691145455784080736953629719563975418936655763206049625009466299726932409357991180757365164252144984015654703605034105499275667116241082550481625898997249803344622854116970906489288756932296760867961328529852636344694441916513635135411482184874796617279170899848665791985479541648811077232068700885286753249737671397422513792197136089364226631606617779358530615398107179937776117471149777560468450802361739772168240954981011851585347740103973610274168643164283655169560033101681037100988704294819049466249576564343330483870583300504684598958027682131273411243481145067727671431754687333315252020629286511344345998033832456430826846222736645959872333590576729303472040672463440545787066760893604062320545240720636021622611250249015946842295605659227497979982885972956566730621114141372157039356881847795297719564359374597507117477903085071900847213553475164903955873127362662658812932885545816789063582364965606500603531752110512082349733166035490994512578434861482843166835898088434781961482700878888194701088273965866503366619228370291369498005174508946514610450259985031416964119913169132128133317853726226799571365602864559010526397602342016698915838142886635721449062240712658005248948329548299538097136753978725975030365830619325057559084147204332885128375562804945084043647370651181824494691603851211764386303981726620624993664847304021180558582278466163463473244975379638130751045505570366783958409034729762673929818592297252341152214150205992725567319752513440678921338107420522822314558107895526954180632499841129376587347893184338100854526556178822633093634658080767228451992176895888115245185164513021382796139969227614237016426848363021726985009429603672257224625499167229602643113834906179397047471420443518897573790968194753572220616107692897659024554631580059319400533362735651556123093372756613662655785050361427560747188771124330645303617699803404357161532153732757642360656683097369933143094469274465696388733871854198245592139190001090064708717652826406757357371563452003747897545984150033597216791639870467278802306017321800275898650173635296166791749352793621981470954070084987610904237561929962065183081490655208003555964001283698699169146029990431869578512937739341598728795695139017927648460271651118357184222615604269660600537933718723491807687042770825735231418590831004545223144233032514200411480292996764995770883380852609860338981634984147596978152638637549265601113095413408515525381866616652682308647728348664817458095591479024985744933766268650385706074039337586116252360768095676526462356293212242266759500695846769613295832056533283092813969165213460176819161012816093688964536395458099663754791707782522897329980357284417694371390082124698746465994198376503985793734161551744061712379310534044664683088237226170660237991376593339873230549858817813352450612197173675386721209236184556765265059757078030481952972283029845240642820205474943244708023829805339344050835041821461065138866191757542448800183059633837750331296318620055205726220529618742655996378567506220515587931899314577893775322123714971972847003433252554745134965280221209172285584497943867800642657255918424711875699242990567787775245069538619977776741424582097529489234815310955095052989595860866070002534563243356503523568481504416753983789477468777759905694543197011064286708486089159661768714545030662863699678432497470751583105033441166468465653410886311968640673688637452714839798023299812394486058457186111927019431162706861394716559381064167668548151723918188619153506134524615668768822691586312639551374693771327421690576946747792818208518467623270673812819982413819309161112955591540385650763078558047841812344322749737693030278282660719704557503120630513875695995364040233655962389488043174082128422381813148788626648073916973387384874065062114060965502442611480345322620465828565606775801442256826443447216045096206297748581825936307757669227190615049899120739731287785594841767737693963745576046637055977380483833383634189164237793893631032408270916759301336501455290425819434554304030723284810683647710322870467610073790835178403520215083863184670808646240731132445520795378750564559580770751197455460314702520484003826701403668960511206084788049467557643992457420509689856972550308446119172296809669165548272977664821183893902896240185433714299024579895920682659652965287606476633283034051635668210875233797537951687808804540431888372264263714321743484506211473552902410309157993314862344503806102924772086352671329953797976180720681092139890969187887912084313915215191391690111540880054852681649110363314979319644874346004902420976899207282788227078544638187958967672307623507575396760565063415783586372331571356148443775838681793288768324508536884481816518370377530318696684348639191751748600075571842272672631012280420784677386368328133535168857078632105234936712070424365794688181099109124516412478518994131114970845132725611150927662635471750275497454507484787532595964759285679052483355855406202268514462399203515378751054497702742864103497501165279462326386628054471069451449283829977143052261815013208503767919171159384035037039396958010678473478274049393991591123977043625090988806047012420026151759056279258611428703975154780551524395217144508805068794925533777589728613365641288062931993225158990877443068270660141838421198205650505598199894062187399846561411271284737406818850424046640421811520240894175006283162119202219901666467910013008033258338337314954298875833783704881757734129107243771415139385007273761478675525036255133555028191335469833116759190905464411876904630319972932425668652894332956032435336744832508384002845542136689978862113302889450279897893586728313075748529885649429985017770123973953901513633285461209601751459885255616103841377664326294439043063543519811437845400570045596201698965868226538685936761829154805005677258302321664046336764624937592128409315362891320282252909714798662442642591197401666119488687473992172584581387632699865626654980644979965971705714339834438541789214925375704953518360314436812612699957025398134396128603691682339565823875654357191507690901833295289597589336834526997947073211895448803827661622026379336695098140147872052055318049892660167112093823510049234244457116888978289140251792411126931293594700093349151145485829425664415506153745681377039164501513421749072200356949536024919288925662071312397706064074854035063006637320457656129789131790227067391316507624505805251821523453843813676175307354780258149539801420676810542478484258145432557709185810492295384909768319778953947059839206019734846563214818036170331139833695168073845101541887047071463525613329898971900785991401233694836368908342541859848768548277405835923554073787893743075587599650840432408114610295775442133092892841472076918578164612724085484561109843227768904246610330922090028834957308497587056462146935753725790354841174681204983459801603963020033957097318544950029260573490362731171847920119336399589239846521073922322013780056841221171097595652270762640319687821931079684433803383267979484961263901502205377629787266678153640567499148952956676623827724672982401866816527985733293337385524246415415494896837965455725679422517494117471616880480172661802739429931565477562801803437028756010115803794905401330954341035896355233625732674542573371254197649452822527419961846305579562655425801697143136524911197356691569615162497350640567409769216484544784999398223447551934931161581693244041716038449569072462256706902256358553182906890294859256199136248152350722941308977691096455693235031336500289839850652501380766385775345886180436869455946430593162766131475674935899051690678647242529352658603363089699306833263215931983123343302002726813039529421597085843082561039866092421702451488993875538177557141823453864169801809318847452706589830387640119277469770696985545183184762339722118927623522142442211030699431434337139995421059688213079086136819858995810980625302575246402263852898008107791878896769438313182783637105045519637314428552304716745698527155136634806110486526522204630389173777948006617558938800821265749342281197487827164586912343970903331024526997705747827775836152259948794892489969430118044018631525705232206572168006997043320866660629071404485768119745334626163444327407225276425457561578346714789472994609333452767540548760369847340126919284061240412066874561206722626954946390164776416165904953680061681107142560618666315191353727193979551459048409581959815366056891861212526133195981099356024479668310146646320809131145634183378353418298014449852275807416560379872786963363601011115143538444904576225578828671099395815552413606818141381050701895585552018076431838797531993156399949302768380478504367156345899946180073865955120152687610399788597457714151901592356657697260961426399070185279639630153423902805337590736703965607988902401034936210256035892203827251831219133335096362116395021647213922819026200415564032029353105605797324212244527336106943814832004138657107830050347590271713495636079674466490289749154683244781182424499763825117704762721913561972932366733919469181681055838364960393767450781901036114792055055483309415885194106971294832918627032423292618766323175717182887673687202391174280023056030678213785839749882786885608026085589651397642436489032570322169664854271457555036510827119823713800327770789771825775726987757618466269074531256131883124424055642734698782006483946313339627445649235156048530607033585889846775150822742005300426908504848729512848075572900866691149784757610684004376672202647453754745195588052266876385094630761318224354527237170279635747475139146876801564365448756940645517146454747217003021501262248516326618677727591911329036002367716982572709167759334470415469174755097530593090866311036114002447305799378182986392789012301044121981950320188997657854590458074828503191266659990545275939607383868603413904392494243355596100494824584931417319173176691331303512618415518423564245954465691077576905470555546281958520617772667796638357057238151838984050908877823826123650988974574637447817510908993132968737675862899342831320317392201646748718399497902759611218299468542913026087715074483645234645502878222586164716172508979120139949216691077419100739207168005083099812323573787519563629504383563850429948666264976504420719054133519403932927457918463973896384366468919032652585143657830691520581944936831220576049465719238873337160696770959874090365392808033146813745267472292147484693104409047528143149219235345389134787293430661038328976546007380293597963264007413157985520094713249791643680255349908820828715804376841503599291136578543288041456728432422804415095558256948260119484952020309900216741000622234594353637430810322367390860195844886463713008474235864593316755445712096796448980590014317646429788660595670623691886640912658293458546120473961794951916982804720453349026324399474416765963679082250923977907207462919356051110864863462502002971143706245551802788770627943240085926439938901932655258629714854804878686089193162986812143639562632113359216408139420449553309094227532436993412289653982468059258943263060461414206398702438388628707927763011175285406176730123106378187673663567649295148583802790038584652022016132889812074558820301937793230485643880442953760099448672657996395484499680966266713623341932865500745798462999122261288195350242340210039334372216883894069746681927867563505741382831532137008360024362809010463764536889501106139286501347583887987635723071261430475052170117217378134264595864828527324232938140983520927423256969757192261171766095567040371373288446574001626345783334173085773940441962338763044677160469291186529438131182537283068021740261223866008961403948424631532131260660816664913739789683952444565959287307269383637654546414741845170321196900117854751198410679104096639011096175592982348021953170433679917328965020011354111017153215783702537092912545107680120580172529232842935640415976986401477529564657850626532393265918705439179737141787217044334172019453658087640656182329723463127345606215578145402219858045324184890430225589524848637033443896450763777482494810867028972784717947583501709866280580252567077992703150529235341051977632115459641063043962009836241007096438096421020255638473331247945003017666124902280020178818821480319109169464856065073848644962388051981992739646283839644463414730199543149676810168503025573184631453986725993556866803280075744913153131188617560580222694451647337777067505114190901065396299799473668425812468677068134438246423769264556196026161797992361169205387592976819705714971828359185598119554685469354119857339081920706554789601699372477796200996862235881788884017642230590672541662649717285147826955156510718650363836786027787268308508719312276588914798705932603894916389652116438276232503960044312119247332093879756476877815805431217285714171980622927718087717555909126056902615226185718774440289008729622813760418247622831379859722229090895532370190822034898408437359501872367302036192589921615314478897170235128551932995799225363802582285899857275988378797237287991388094522208120698168823809941108206171387739354128621109671144578275115070616334654248975966889382785910814786210813173208206366328175589094669512231776184511118545285659782366484772784075148634107299128584694308445725952867158494422811288028119994153218209758890994119447100942586394737341264113728658483716078352369377136805355263219209227747306334807761533923740920842628458638681246715966913048427739208684117872280876695055318042212424371734919494390979142316878877108103524722198344457087109095024067966700672336710256550762321909781351684141492394280457155051735429921385946656482121326509022395190097067298054583283492554044450570557088809741173576817879134583982257188465884738622075442210175748423522119377270390262129842750105467896012376132673486828152854281791864544208852075298959910242190894276240719372949904375643655227548245601588976337927644538965499904223992911950001408891776817064231792468140574825597727773967980845927334821762359986182987279910080837799514024717625878606258794085801751486947082091431096426435744722190014483286812558741355077982348494234661233269021813308912798113114207028044721303411645612687687118762899415343966768505616288060357803599589777305714894452063913626504133449313319863661791739502386890561346351637969053392019684862904149061918199701695731730830125599560141023094844087232487520300362190599432494779372351226972265266036851575802625141098703247884271166594677250183809359385848431720657674030580771858787254877174651352202415639713335005449683843385188414663567675144815609821088203727773050914323176304975292332807027340265572226096513004741323869446846664731198607531211318608691427956233006558140455459006765661665115517489994552400111308729327384350506554478411266156005607257747155161116975378115776801351127589778058420435078654035205142119461569578843087447204690926577447543988551856869766108717281880061873124397353174234655930218569814238421744176627097290023644129328500284763553681861796873383275117878257176637493044672477343440637604596871121193453743932920706069708693019070407046605477544251688114437997165898786375886855026024575971137916230591190185923796943093394209811767460505047838453564039711135464531989798174644866840917634016521574046394334029488559113599842196947190226698598568121710963570010049232394795049965292861085560226630485487969487823166840913254642599558745103940937313050851495819123165882073814823251417357246093837720161158131880650286353450774937918475693835351810471056496918081178610408906146171273429539786936920022424567796570513841406421317802124896868212215444366599371854882094541472363857646172706588434045651939011864379109978265941715197958014740384217635759721829373981379153008855956194316365297977413237146062184078213820926145483954123242759465778500728972351570076854900873344689192082889376662091600610846132943443876542305707614633817320452096769000545034385026943548624632438466451055362292798482559862512601603618512179639454643815590027130261395781610725496287883350582023486093568835345156210310164270399202088660492420519395392469635178565228172216745359656362501119161333552730785497321029264227948027723573200780721970124941234866470074049070425774754274675222525950671973769256174666177939530458418886566811374343531753858464435435341279959702299382579436171474570593887401204806491647560809690440620031333701916567330968675529623776422669452445206263690472400130784227635233679031794289907688973555110021017038428916626535975636377377189412899106598278395823907653886305568269922454563062294999621429756592511663154867195140015510387908944676547067769014633931409156300941405896330310054402067555478339567487430365237964208896978122749445431178568215073111279868817286613770712551484309011771175885227530418628261951016818483664668210173461022271052893815242514231483957452852488986993366181574302726472788082607218881213255704848253942365165498490120789064175308202427410002118307026505973805598023859301128031261415709484801569433296106888902026412603682542238323504825602893983524998879702573614272643019379150171169298898059874357601490998591396882013091566210424334051956596290299244425480220362334538417082238030190927051223953362113204964745438108425346104617245135129784803881294869224950607310717256762152825369542214248422405676588653611194949848970984073412506735432669221204221907605254895717440053688184599692899434256722681137088088470248460537434883666290075051852876819503353224154153995391482418625756330702824570267976280832224858317021833613471076483511240478314210680000204655394672059796503761373917785357445211336783042282319085441121432037896467149165322815141659918494138268964525494900037915715730765635790008833685278910509502206789387544787962037318870864265470111132167971592665922131239396079955902628684057639823001145974909512135449334481366160363149179582307714726707274703482209779073840412418739757575238170193754752954342038377139992883858613649049197570546428227037853079797139981884338917127821386187761140030743267777959099369569809482470512916402409484159198291778718762478845642089860938847786992644733674400858978348756809966536700979587256655559753658048684992562982693740707245275881020698629838280859622641070359299872833298184550377969130075495331446526228553900053714104515076552455078617151772528299314970153075470836606319254716305608870774883679360725272401169672800609841336689557123997426282202940832897008553221638928087209238763419233844831363938339729639807710165627117355921610862137911916970742453206875092615194954839849711075924717353114028181412793883668651962270428337480292158523982844636324857163419448092387935476182967554018814837989158535004679187174883092410245077719317494430596550041968679264866221635975781230573155184376645504203686519260736887204737290934494196144601119063155226645740420939926124084201881233320025354436812370619650564422565526884957419343088647162120938504254951931680303255366905389594422622480572523647525552496526582465144211298054990696008187928434235982729337205850575580914518057482821312008795203746268861017085869424375869850505386257379675529973703362853663541277420696766241327402576095134498136552799800010630910340596224421759050382860955641875768526206023211554272562187863312497895473871576414727502077555778382649319197819276041507934477202208864890173298004333602855118683846392512396724074838676633446005711183009655910593157377162687319588037313376685268644983763285576215490307236312249228947897166824332479583526239741062293818124282432955235656048761040615904170301239511234328530056427193671515956479367627552847459058263747836765412678314269405786936734010809858444420643849695698449197350488064731653632667927761070235940628259541956088296121774662248879598882185466265829748648645316271907132006448247204862945726369108483160072812029684705607671189039921152145299697634400248062866122126752896267890864689853771360200098583642411200951449026097625350907526589935711813259964701384109463555096054917194566563494869707331717431116394205205936316222848548380351819875573137050050072515814124461961955065947509422477878413773154376121478072160620307227831546676637208541823485273529080012588797311047738303577649745306395495394772303590905141260598048479399453578191190366298974433858549559092009426379474133494728448971835511055109600809138883932036866754637261046564370643302782533671473632774481106703545288313063995711430268216696649020717109474369485775030180085526514139214898008188422779145756651289348409950827641818346615936520173725532760744681334254908724668879891845437783023266964765526937475333922448506360356617215018654030844498543653465013916056952346407855511070411061528676586724515891506879329250412910590206380523058559636172142183974310227032907923625882142408026505564339662628584717503644145806840459324925250591280925553572912201533071017885157240827381320402900034235608992157385288035206824893845603559744206912214119618288230695593802178653559088676183847451999832153374862897118104840793411195159721730156568941844966917930595113132961024285719243450485069688425379746306329600453906115256868089798865601705865976217637763450881451474198158316112400171991076850681594935161624989318372275953520188960135610619652330121154186108343485301281169019087457804595924592184940877581924298648307499510147432040114750558966876257983308302055246750498333682348641089636699977363534239281584981853771381789280440704176789848627844227159576770441757967293712100881304222106573202764150007420757001531551009031441102655426482922611091596150212742846574766257054344696024069684028914080817441002469302655504150539924339573984801266712307364530225682971051875095772153935538709543588481426100799255047608090920409987759950407717745984000339321096351427663113846524612141992068404218175020502451650702557785535778844721269437131408739690220001821672776434127130154960235661349273591604936170575249533042747161428609163927779062204024084025220317075864778253124411171476153169046979818541345209134960694094706866541792779214714204042208393831757609269254127767697944863142275081259032187501208980548747979263094229065853365854035391550749642110840437724713080901208479489660364748744883072270779858146126864713700285394410212905447629988121028051466256543892764638221670312316425764778768816836680039722025763354870900070694533189423226479498984394078004190475736679188992302632394144605053639492214053361680152538355967747593398367028525205688176262288423925728275759118563006738183922667066879266854970414807512521213928402982518970178434216312710656523547798551029385437916966193842145839711336606644453348254510528115526212111723218270682859378475038964891964079036905908575780932503302886485404949339851496094020110410387313684622527315438709121097407771863389580876675844342610400379663148796733434051139200903902781270455560868503991142897069114320295591604086824064905839878360819552828584953456003647549609327105714165586189770673758371462953403547435867413098820232062362459448074957716767098766324350889246847924108397060512951855579108765306710897960100580263698550730270865637133309875661058486514623644450340359492867963055526800930806567246331642303534937738107563680255433249390906680979708665505617953062076704822700714477817328799823416863693530126857510130311092032194261710390790198082918582924938677753005696494730605220266644936632213236391864284349374954306226879991295170796196241353411346042604290824035177220934483751930501362655531724913600791077188837780576949459947629807429423659961775988193255233704639699565275460885610187271048480166555588852390117156830145902757686856381955936962339707074441426876840517553615432047518821171049093647594009522487897183505067006472220346930451482397197317136501016322237041371084107723410876078990971686110351918669302001833783638546668475279915843552284716021361582199602646448001732943419109049364579669638744014720673569154948780338822834586575609382398504390910470819998517568166844302447262043352145566168430478680691957957593577028555072084509196615008238398468698934372407498702412135047245994124509780744240956050640179452575633596073614469825519758171143341279458841046353263497711275642465116269404541592115778895396879095314713629454724143325721075977380130016404937426362709234327268747225447291983742427334048793846349720667761053104443977453859350833958197237120468453867426615129621154676782770309547741254763177015474010714984835278473636036753093250467551479773985574647164234295510675174147196203240828146178432114546204110259034317423576477384322513921410964698517074892226096350944703922115422650933380061517909277297683130125870416673669244975767256094215893521868237044037087340156409773842021836411620271465284574449634558500800643630573271961132991848837630752608272928677250713528262261348148303722982035557920134227221502713841040021008248799702138583327791399278874152463447986622031997769343947496551302059731613395479898226100898684799210864397898970883702577535700103428907972562220882622339594493023800965690077930901511502157408296440446671264455237183764437826597814999650997810990549053645102119174730262138026419152304040533436908800147218151600872636143365111511133714247162332476576661790242739993520199213264047692544888102169684410397970660639888937007028625089413635767597196610945162429557287167190104416415218755472060677091833476602772128363327707097488112546362887647301151438286211431027659134018291405799880925951880183050230649936360944734794285941934806570213065858212703641520204897590906435140676963056683676326156170779686877533863338672110921183758806875361200087730013371187332720348291840874247872946559037657085999269860066143958997672854629580918205599315302263007486608576276121321859465677384078738484001686824178012219300809097313127810491663331103874927600529359430741784197563489800896469709380187524754191435563804960917654555293841119654136546072958199590753595415230592205731428530813683396285340347637435781411164472564418442955031402824397858822215356483758910728327274645011058054827825045919019891738785514782030024618607046959380735782423297986218375842663915293142585130823917637114839178024350170616171973063857942986116522347303403116944813808237872218642816508677737462504758829817844531618969282783169493101202034863330731862918270752455958622508933504735185401607186885267136735973513489465598339586358147513320694157167939298372452879019113263093111137025709948369860320554218341788417599312819504688676195517591320079655902816814608632095030155276713191335700649514068503132411166684269490722510611275837986015348359140087269732616226228215329369846571153760717219874809156265519367701594401717845152975207773859714577948144753714037423625441284516545853541311283127181209049284740629711672871401762446239296828340029585225222875080520860931136221662068278330821162684908992060690253246577781306978475919684557721973313529428703659747246371293934085537593601375388284274086758974638327336078159861454155984150430161121476835424015215365253431140535972726438452581167027117713111696563325479494513618844803755772405347563869947279941103868701567688199221246737129934903999697337448111966052030649502322409937419384117595322070131802555424491380882910991826405855485430700441257444286267965076161198449764211828734047361101908192911809011763437542689413941061605941202336977932252548303221277342411549810844250188335162691685029725958924567092818999993735364848076706498407867530200797843884462869478630676639437201966731462353438653912391944142855999613672633679893051084560328167037110859988792365512469419999546113381097828417311722223025285139466871631724770302487279429740355356390507419892625975520911371584809381898710963406366617373743675012185051834208974770686476713133362574112057024654252062788014426523584629218937320186258240834213288679250907648880271463147573387176481791482278795798352108548954709687220446867914273834086559526686199320074245585962857676893031077440511168930940137913712107695762371607037379047098652433429463654409923448974116713265638384374348360038157882108323170164207445519540166401934047295009668091486145761775692559512263151331400609398373868398843836357265464645914394478709703716424261588464414533820051322243737400375763096590969841921658973673438709649503638100847417801319334128421864853445158550056775914791708442023114694814545765952535003029480800786366593611463653044606296674671529053237473443316948034643639927214131007319190867005270681506396763744869606056343938185986495732290015900712353860620562278868602750521042285120783731012113933763989919957715405334650267613294014221948864234855799822064211834032254732213641151643668690807224776975276284722177774620926781976406981126184127869953900968189427031783799005983697515506207030621766177721367214424505673600507912734150896075280288354313598325679158225584865510742049844255188668547968780010947355589853198413485515308530444309797463131628533253735609431936728835857684159869056692602176723564579988542961831637170659124566123194097927935138216522389644092588379062002511338261717412827165003379995324424465310233030623119587904742962452199337653484244392355241303709527302569891080142847169861903999200662803306710145156220726341905107545464826995278721260640544138058478730852914639073540229311305583101822052631902999007591363102801009760532233458212150064293353304300139488090322950734382037446031178140474591616934938670888383568732561948364785959447548878894411434944161265578042334650404788121762347355320669819493405751079832511306321759577836076622678883329808891204875500610503634616840946302211622822286144628694587770226416732326190477828346003779025396463488414833678030069417354655668819312063873002199042333933157639591505203055032850197796222053560442251515812841088347297816412811806189392703281030551894881381947479215231062388590406640778186905506815290575527948002407322876964882530038183508607291782007115878039339049993839562208040372870086832330358074495397944914680033146989735780774280033283502687215494743243202538021328039311920898395117155801295901070798641447502147318594853812945007337710289968143162903481624783725062304634058373852097820669937519092864252922699565173820289761423947604576142381276140350960020028102082110875023534558751067514721161318556222913399373100375113560773766404628262377623012655969681275313120684046131176629815428462369196801112745971528324608895929718490691039919351252477698032110580632346166101464553548680491604707528371988832977811825989042862075564094369635715967731140329764548172262707024773367527233081839664115039062508380633707236653952798610782456743788095477438953185534314607677989031178752363555016313565729510761756203527041079381825534273936910248164184060457039132144448700285937112112555074856708323068559567864219552734885427808154805776134220839478668199152373013800918130212535646905412603353379600581273870497649482168884352009323528535701770829497470277062350224130915285771658704274145530612099839522549705268144097673925353223330118258496862012768701667553587735940487668711537244967605897401871881641291419627728265488683800930812217969337290786029973585278444897384284349912973893548728699318644780400342114898353737676482887546662733088587618145116968570960790052684687657019561800562299361822659214153801012595886476392073932116863709913757483464411334031363654323775366953780174409335660305366556507523616115168058580551891970381170077116355272945279484810639034848793450572007649738970446945299156467216691857053856695286641501115842988859539793193861464300802243816676433487675994199318714558046233668210155784209814350866346585025247338650766308779839971283470137520775970484992070836913272910958888751996633155991985109984860951467640493147102593348157110985096139483924304974570802969191325845918770387736593916261410561891772858936974615666934778499062974974850096468585202850965268894254889937177320722613425858005504689885829998989702259109983724349729131084043458534889775380055013334277106434347185975710696506837832187382462536553274718568785910108166381899277406600979178106301880056223373098985342907451718790992231910871449590666660634062672067407691554198733291912679324848956715514984361513195637900243850957523295241162019539355755957271773909782715434338939408800073324088429968464621699589034499836362522187027832772124694236379840576623207880508116741366146279832767015004991297342013071022344540010122834852167111434226614093155553245044021759881224617691147702370290984523482284817136429346121155982916531278410683811141960213341151830777925771629093085840426234609306623513119230211529743722955904746819906603346683114743923262487137307078706092733719428468723846057431446456475221344595232998075134543719120019565345447630268222428376228590525972132948196053584074392522709184768355468149085711045267223849069537567522595500693425535238305359364407301676337910646007600951459702587549133199409340980069547161053647056957045386816741270758911009995570163158592656641351842194758801953182215684316775125954957337652624833530672814121641216796274126524109006231003579310925259962754588554901993055316776617845444705310218929784860709438408739741649650888397089792585751577644797637023030308632720644067602609907473055155813328234808850305413471491189765811992066539206400174606169753916193338177084465470639149796948892351046428230090585414827354520500264725767876652537928550644031382448781682016908035703169751302665360816711606364914829262054391373356633574832369585107656937068744279297483408573542139917132440771711015589127833887538041734830561305663329827971827045505784889754818462227924397147315029847463648919039586886586557860037151019677929298731441225677946988161085071332375865066058976198511177460418214124062467734592354317709344152059826432336584680541892099836784328248426430164409954513216563359511428766276111180428480704877889517767268303640541398412029942572917830582135393005603429642646944959305158607014392550081872097559403286834079637162342178124294007499850693763034078061546872090036228922518064905584056213422048235238953216940120247792747691094537769048115288836667342111914703316591812351835422986985516738945841787748082798986869844389246779310838627196413125449623583795129809450520893927850512707639843198575688868961539735642404348724661860878809155114070905445209221278313192601992242448060976821089148504868309007001343931413234483961982903796898041047738860476152382452831002353932481828899602269305929803772340052244465635203409041261000929764763230122783937626965411551983777304760399637718301835085957299960094490729385927613200251093239437072341077728307890481254816524136560015171664914453786069555793493881553551038710584022492800183434797080208219925159398552394471085559470407033071809884046995873101228341084509366800917712373378687781747361361673354462397969863265129898000534773287378397068599596246406373737412847223673563816981343233216677342133217787410792455523583905641240308733338800719456070085952822110705874543864045544676385840814599346069485846221236965678037560568600867718869341788539696913637410025628299760896575496738978035424641344177307745603716788334927442920185414564067161260811019059498677687373298719206293814955240880412558587067655877312762780285243654194218343155892071700446451095260187773550640346049858053575536915980439859660431967326287387669450018136492622044497776399444021566058575317894267247765461771155218978602674080092064704583177835665337392392613677397429138306788815801152133062342782607630667804950034713666125754286375970925115088951117369757485149206234272565171620730843532437968552818373220850065796215784167563970832105991794196094434568683695708665150099393994417392146994831707780786297983590841539771773722676908929079653628539210348376736363313096501166899318249665975119106745741455594361860920330978247506305075125455993313762091806203336923390556060633145525274174898186295581597422580013944600954369689171870605618881452394842638982509722805468834962213396563731870959125890475188475668441368639327157851946777326788692205548919217834140224014659110860693682306404116484360438367361932589799700231720564201864175826620865768961407007205118079550377706825529369987161459125778645864504027095515826735642094118460986781414498367006376128557651666836074131319176736781792107465029501163321383720462625606366692253385339077551246813442753531988265970120495281149517804414794062249028944169463098899100192468109230463405734052692000341345855740435258373728213627315748046025756433014102001922334610968714006559920391442640346538021287120710623382847686824041294536982977008594761557342875400293932612447814188306118598220806979045302621415554922574050695346829104522493717669987364890607621482694511973708354858396666991671060615775508125258994318813691526940338452625513055860648603219236820439678081117197676842000813793392621259247287323655002245235634185059276727287807825765018161253612576201565567113967098961337947789330230393497159833658077898204989818695621527260531736591035173667263232105780162325907118378350473765018416219231689091089131817202982547774351284173125175436124711483852337305015450253741987240244811840903980653675579242324882909279811173858920647569155932436623299810012389781813220632683382102714203208291899842366418780881952180923399185377422565718796209745113470732180321164743325253719031950178740008149816927788812944033669891576586307388596196376343366432476549167741773135367331450775701252692294975185111828574726352982140199551064734720273998648720402908753223570600225868186274972862910181416320513233846604703559284326242974337746243872989497579126341909441582857297442432662186852231537606675712479921735825953349215729074882318679686356183393697416274864853962130926842492499398507755280358834573678976409723531261929105080188977181319596634756437554207838508832346044973842363842578189357760647312801160237887795211678158681911513795012241424188709169621369635838817476373144138722009201879742439011679347033156878195545390648097574511644970350210631233181783672743962641595587387666940762938416171646314097692461293168869725383167632299794153030629818801479900285545196841856323024955428341938195247178647236775186763049089799226867224371446612866894003759361508791394263482569275046069011773702251697524332590394957686976567636617367536651691427557331068784532257169777857338671981831995089625017012749969215533268517725674351199760789893689501851661775250802285288479220295621281355068070857319660404829895296893435069882387731987818827539322158186658014493084367490251111538620549486211346869295064084399591643736455034685620716980738615322122477501333498104776472973653484934734889246714301769457617550587518193045599141266310050765645896400189944861583637834901638259331462261824293152209968782309758101075695996803565390846979332982373517837677027952023847572548280197280799152963468266122169447906296672931205896519810947422668999453895629352211119516318236197184101570358511339950166016630553261332589590177740644556420699874436791068818389680767541496461191388668325510925506019266827017695842586222045077246699712031778072647022597440034937302032854277481143996236839771120307510550809497537890054847702300814318445662299268361148813386371135406555241682723096076144172096636962027897554842062570948371535909516238519969033531705397447703010624188989919094678060371829131933108099545464652433787774965310119944681554297146576766775885666308674071773328903308837399898612754319446710730817598940442787794088083466605554476271547086990801955531245413836922466037634650034853762849530191430175062471744694417960952186326189216876962273184248797311467761484157709166959403730100338658269398718287899368213365014921612020172716798758006854197157079740360604716932648665650510523588176207728367039002117516654651737330934284445898312682340248182868075814660655927715593328028689312573543332084967553626998234346207629073790999133544171858266580690262149301991817297963839954550924928809394036470971212866032418739247882399269454126075570738488028057043834771540183781338931351704201474456279980632829254600614939168277901967406756006294268536888442034481955849147816761089723199191363735044257862698507648726563910931446046107684083214656553883606216703137878324762602688701777357405055653641416671913046875289184999470059343601703915439220585173305717100512181199821994474328189403150349508954758423322739305565156564763317064743509010905612423580511632650255382290425681124224373639068730133778277945424502748144358405745136389918416755762971855732901618125769649770125414468734977702336889733666738432390602653714624341379009656018275678564774946056015413356136154763983451287094396985404088941911058664036424202833039118775037996602693397351725873676752905359775350611675734940592540470892704104733917382202676501771538081550421444264842069728797825143121232932447902100284347215740535461533137919215952269613114287840034778957648733679460968307040972164349926701496655769999870454311642813979019653636188846970434607314263168021144157010380865004070189019963037367267460617301156026278823327321294439138184624381180034836589561418192803486856179541633040146791052449281671995181043662848357139350295180553229442087426245163608066560651936129364083634664145652780950668249804609993893234754534896886855718601089083262708495748966975310966569125164837395054788814597194796271267852593761336020032406890615795811118766271438206956542718730401450667953173334372220140387766209655629223848902669552869006997144860637990060650719523387557349701269047863644198934499661735319260196331660109167809635080247367694579165496817800603029489885787432087588339774133295448660812020773228569572207981048362825854120314121134232282868057110954513929671001573502266590014103859499532736414108507740810102502770363880258944133358340891599169334250489069957227434946458184943716787499086211229856232666757635507627681436622022802151819798314139188832638624374471794813687206439937710080704717863208207042431672543469118252427201824199240412967205304701456766178180611767560050630067406596944277527589994949665722912416676713644635970865267991527246017333155890399378555408380994439310493073068697201516915621035076466830869505720549425143754192604884727869648939142482501314447474125996157460664227592063390601682602601847769291113658073286301233679891245175733134398181991227710796476988204935932350882938754381689973247215530705249792855864005508611834122988324688706580341433244292435318979076095687862656694913915086740314995098108006637765027703668225334533801634617372775306207371336168339315195457176068016484763662849353733939366775434779536631697636727706491201462271589068387754408182622040798702491359044756918726099380034245458228841826016064229701956610216476066599167828156101529146701724731399761466552279508756733799809422327750891611473884923422082584889045260508070661894948972278970857121372645412468907094960138273919059842243427295103961118979107167739019339344346081916084129350467996954273943855513016105504545266079435050707885786403041514845025607315124928707764068738726174553624891805436596582345077033337899762980630967543621734100671120373082484848052638520303849775388662798972157440685567125139119126589237604548934199154033079484926819964805356804354880867071827373260594057889240161727706567190917149631742800166003496213077313972475632222722847980970633333357828113879644793662047358696253895869403534087392288958885899210272912736542971377878606891213284475384559703671910732400697699239818469354016006768643783058575390192783083853100673071043348284155306052013260072538284075879599221656007220606724365484164004322218990100508481166175947400994606389439581245307328385939614788912885669073880542582943143997583935162111944888546073445920714562046266178407637860597603024240326629364629170342807974030605288651530628578507511487811831366191393376523774987512575863147914503630957660937989210116714651732822286763942404230859959577957431816670726297471793824925466956067504103836390496925832854404489978885454883330985924287263296460795503723407558786288265991087934528509227082773070242359740882503869923500343679285403696312293062815040844507911439019348495797061884441777686351580080947206316208180882521935229771348295290265951966754351313563450674183983368784745549715110267702652605036052755213566962902940180843131276410717670826364646511779115088739772694729440303901593272656986972718696719802841269241370811525451511621719085664620929029866654314731014401321007955853980836864539596040978657125209129291492030297409372406457944989414204240759783631209580163413205437355819358725739534483177426964176941592084062502729747283718005467328723714912164166387463838486581722490094734764565542518670720689380425318926249018025940809428770559055038511253351430605997367866786670242774842302789093096588740388213091101805035081962763006638513043397267465015109823930001285974707497439010838167804428506083321036400566571237862294360361990298799202086152810012928286126433849827057795638980927040044697353398781410913919946734757940620381205238993187144861767325507268241335563767189401201557015902202834555789746391924912040592771344358643158995629820447553722009613768756653850776058641892594554549155805272065411385036743549636881993905073495114068742612538947831256317464383959663368230450932899735969457144452446719716630838403070007881531992254470919062531267385690771096651330118990293808451644545180565436452928666709916884955978277713091490509628911683687471415003612919697115809603415803194538246867032321537955155166225653398181520567463585777492312578657367110199477718791488310643826966928919676105912043186215499943451929489853077454237771202361975764110857466649264814969479345608561342514822405046853335643165468301207357262944070094738149409933030280819834501993565931056452136208211953396393367298240850285265903711084667007008179384408656283038209258758200135383898285108202375541352372618389404471197303206536607392416653830630778763937903655309331161019510583472980357374039882000471818111774056337351826136340313578087024270338607670346344446348737278319758817686577325706652134117319262774282861373762872670293660751972128904192128714826387879292829311417881599146676466859546229146179841792012185191714688475792786550051822051824775207017709505923315712515567414367073431742335688797563113693315498406096564583328214415034070677622925592673893617048334247911043476840598408010811209887699917265723976612809157713558719124612896873962922184086823993084566267900530356116307260573809894585352649370132934993508908767397219460997486603062168279451912246745630633525393298320298921620709372276868934700079570918667243432214301026152883451124976726943402497638924329875070110102044697984108489621452286254268171242247452023262859334523123655788195394165002082108820076518452455110417309578985209474602705513525110218609827694070508214704379564032310754325601840921365432800756801893051834272001165438608899434615030407089301321133012166382603353308102563174123054469199500053855121690252065055766056938533734775250175686157488132287082687551708981304909677415571865601071110784071207254341982935020060724104575673843067122702909127530904957008047264535015558859314206056154877407867826944483021794317522529648182918325877459934707640753010046935939184892551713640017094474555726797690176313157664299093778831084969868883954728187835019378249008336498174883326785532547397765353736240458589278070812744341677027724577202625467454025082466035101666510444819334987712205149689414471679426692764777774566424407039849544166072970573362185017051146871251234650867645110172965339473271539178000286167344560657482624245166870130229115455691196160889910813199048435968724326061089714368100747687680830855695574282688769209759565421030471846459052201730490819229961097094309167940833074208958332356579046916133663064592657666105801131340704907942770477676749987005659160524387359455825539453476142212342157630582121981789907093824625649516883398186495002305622803313942616654935348266689885799963558793669407283432657556087831746603210189111562173610505886044490461499190252285189270073745409758883502480740446120342818289116619115085287349755449320067456694008907475723384613591350824552181759093247968233003479212069991068562582772321845537291797771168076991148423068820217368857929939325594307951670697727427514728308134949013535977046350401804816404584488484197692708252064085525256631127901278536373059647928505330771624749360358771949214168241150401780844238539168631833212950296690715046344893595439176704463231744482831621243698609649136229374469900758782335722312384203254626900081595915150205722512438307731496927621244731956759550568903921158189512529661719501876429334568200604771159024061269970885184800033209696278805946027414531869716019956099025163862476895521142091032240057140141762435646521374567032344507553842946253221037131818630647646913180156217860577377330558064007224798768460874243508508432122235725632142073618185085218634248069435356173487435592685379780028509949369544648818937302760214528981177293912290212325237935386480651778017645389067551700113765294457012363009265540021102242461856060480329688004457825890656587757102661353841835375251486174907412907218031026549245909849072196168154087283467839212541004000831884839021909950199183272943010008810823876093788795817109392778802651404654927684437783509136455546684721898715230148862210667899321013533372108727245008088931404017865206490503822862273703579955493978520066739765037841537887660180203158062022337311664658444900938245767223340867988213543001130841790029206878822787902462928870815504557921968326744769567640396600127376870429302865990206710628447012175252484327906953037125507746879453479648133523760760286712464824636815619447684024650770426126523729866452633770851172796489262438231729467572435549181106662687931856312332591518015983105987883853758331597406128837286128129075643480688663841484393545090863357921796742726250191305683998339340667692616658527445178669925385777057510529741416114963236602084569078606365137703077899061457722045537813235265831569908854208820272348208516618779740890497665749778819422330730869287068795999508008382552049267308106735501950687359841806550602432153307045823459718432366391805024988072772062171856613767426422445591413568785120824119431910238080640605342067844669730491433629388118327533332289673184946913067201255106734470309348107118924745990200304422366876986146832809144389191062437975369321018948413315954228766023221009919068670042191295674697533320543531414329068663219688473036602002423970584603358182581200150213178886029702852879836498157698317072851220862332425457023082196257894887585119281918577552101494137301799548936457496554092062275385657860039992407115288041221037822755589059147920035640138834660017135521514256921612546698537589309801482267400040598190312261602095826514667103620695243755738999049111252968752158632425925382244901197430542885895704537333334215593654559694496060327051459122984842954040357664745610724474129084018026688149592196486226975927859504182264405507484624736522736023437179418346026729872063582398410887298605140008100953844978278456323929413645262253653319666712295497113562872688034340743398132359109974215421152228673439433936521365320610636457030180467433991111196611727856335273233573544872676525996031241603052730430431598383286664404980137644773111998388889939554497327218140517702247675798860005025712648246514094105573251475527982946196932586299316773680071578148563156711804826116096321199942150333236528163465736434441263869635847193879296532076801662634792202318841899878937603242350763671578310558905545697917232388734943830307626641819908084561491552077270827099508528031658520917990349315629907643673544208751682250637276006635557990714845465132371901353952001961547891606952093833155855936810703074416594486355968639624062030481157942368787651819877779821326814969283629034233143184224912205783615590030481685094772509429109652190560461198165109017817744245795173450858301597203088259864808103547997118562074021546725700497251825186308638436976643533090439581259524395783666016618519488086524820546977829602996247301738133927449103279809282345268641948188544920393278196009063234775630100669830477502133763879238877723508052169020598971835780886340572961015536628934359981428939393982078964129352242851433626087336128644246691663232449364718249658752697497506970630471184798604544518928824193501372888228989928745550691520941846971456642550579161590203221464067205782427087374572297638346747854240633308055443523020152685839576141651629210110981859835238199893210574305221174930069888528485888751936073411244907258759230164615227996239323150678387860669006908463574528518972493459193936363057101145565083161708801168797223771711491021400124380969564043397211718156281844138321440399612552143526370768693341599015475139702438815876349708815754233978000636854586431077796375744273926809279052559542241783858708252400238541096659730530746283742572651864523360236783129610080672187525165594240988762503943368964358831184281692971742210803603944571839811864460545533247804739351877738822922446487067765707459071573681641837893990744926531236883835001920004194104944967158411445894619067698002959555212491378657887823433105949339945459370716298128965972290027312970814085177179806343987157270004638230579038361701173342056130884586678264895853274009477113628259063347510220327535953177492924630999519707342226877737391120133732402785256168359747438943140243444440139686952129876023544835929220477862866531709248753782542183564381053724045542560768337836064394249264959993139216531599631095270107042930694431112474631915204735845886421077696756030395973577443153237226907553676747961735562491137143818603188092581717889578744053522567535937978537372042605090717549442656302883703600764979357589779062995296431139857041464628054259122050924701302207783490692734737771124284205906072533906293798276902339929249005343057429761462658231019176924029419446839714779049315050393273099931992665865872522319286080587382423210591669584522638617217009250282070145470381095812467764107558746625251354021893489791844145283711143973299764180537431349752725363146045344097444154863323103685049465964839766351999208305049574926772981692410412083089284981263244851705842833136308042026347083301810409443352233740832042463545461803583993740572098623665500441075240656922507798167332449359336039349207661174964800183044220676586757275300842573400868856318177439567382252812673503840280330546059163858552459085533334290018414594892276851225700759025070645592031973509351621436655724914005472520370857473880929055433221951416766095039734458374492218092238382599362376036952378829311077172898654584766013135714709395215479006691823564242622070457375288645206544542033647211318687996370660441154260112547871201194530785356736940653810141243457210639307189579806260958552452368111782647200197706393769206472118047279173019580083584731477138045689368518415478025579149997066261127312068562961580292986391367306675300890765669773323443416724843237686809339528336803949440441102314335242010557743950256956551073412266402599486576248252654385620040721439788588626170346816361033325523539542064429513412199884623957625183036071277997746785142633177301397448586826498029776019573693897249914493467007385793243558960629138962911135507041313544786075691613362218906490829100310534639091307804821238874209729636656993024792681032990727699341152461108462032690772081586941971295214477275678591392119576137861530636713544666583733790759637555899968565215216639313651752301101356972421283103507274267310012118130955546920031982086973910573116895885143037168145992134946191525545235034391262126971137089906412903111341972371717675834077780928755877531153431153816505541596673199363979904554103752673698902406412439952009812349255859144664935977985925198238242162827723817290356432265078593945309499574174484802088937446609981861227471715157255807534535282392937668383800524017257781146416959296297771897245906551411031736184002078470355705555852035601003305324832884107710708652269376019464915587359403646437332698136061745408589326978615577095147393313024907450035365700025930037474008607506910777879203171197749413001905127110437215501024528709974112270133744020795851146433152540435774176783087532217946851485892240015608510634057000162791278550375211256627714103165107446328779809279688426280273635559180586205739069333157895012670487072213043422204467228559964870527815105649218179147873584641831334269261630224031735516942780707720325973223677466834740936720717539003393423616426911567531163258637780564193914851924692424583093773667711878657300306244928580777915643568460987803956973039260450040904904776762765411574817843803790098095177344692245410278026958308461870144247502517193510794377810247108249193101396926104652803881720340074840212360875554961393467265050536459801855939271239514794346089655224364312210023262589322266075638923616040304540633934910999769936390884722069402704451544902824467403290560986838181763684032835175609455720330990555581629373215092886557854639760860013356504008264915280670895030339563425164045335592652174853327844134370353776284142322881851880156860093538474580784941371582777346083468930697091591186474048269118717344322499789378820629798418632255940028427485685007015722733975924064123469630838697212968356487415463653759933166586375536983503926513175039569650683854590411964538186867909981078449598357015553436396615035306525806692039876794854232371292512167311021146219155489903228796112163675084320048437064548523621520767834715114075743247414220572093274264980059015260516974349188498966025598180467875871752285667758022697988268778781492459075408559567076452432975266817082575582202740757619243023372463297980982854230950411144743555267953431853673804427338025606619247232748406784969016528945869060619188403355545711056353286893469275584240895524885696849742103924114357855832547258237255144574973306021571459595749207548684663126472231718845802343173581679638987577555783048291986726051174932374688118831417856138642515074385112150819533988783773536249302575895984955096783824988027655641012585240395598692602869701190856199962400682078620417182217058377185115787069495568870292246270108239214916570456411078917360381691677747351845347463434104325690459588173140727445510194714123117318443357553121996495852559811556150131394335999263281400488659477936033518700658126519284119448420974041024753032049454159286842037499392128693237552746783065152132940948790730524915010360090279830285971066040186227820901324623840191137147147901119623660033927038449562685187228831280240417778718803271359341182246262967687365062678530649755344087611100295830388320434992033447408361515579166807230994508728309556454181744638805482633837006131894049259408716600453737204230455571923978607965917434187001154083758282692939846536571217145762828983200534062175292417466082963778012213715270844334981919234814575832812882943184244517756157087507380211179568772698150357261051539328357358580598598335912846797988913187149750519789155611082411293237216056522781772064469357027502349077780101911006438961348901000329391702749703732604310354538854525604496345304034912982552444865348736174818196947764188917072195655711693606621940141847614112776141611561598191506945629204395932449959909519104079187253896430499888348478224478657690753698967629036916166498231881728701549482175964578154446217408837385048113392638939935200402884016904399771165263424052771935626317582464776838488976156522154055517388505482415699287220293134290040271117094836146001716699154041486287630826913212171054585087495674666785110262774518014769258764102480156223683202192515831291648890161000094341754987976088069321700754534554955332723202845112929106125973151609988530581477098659166430284228184676564324803859219847227581816650894005868272512634874348933665626018433645988800450220847462323884463529189192288313673835319691449590250290831223209671457038189210214828493503520259315648086112151717157604331003530840608720797089050894516853894769580095432786783227090256991502173042211995325969184474057270184511315161526974153028407501583930049469113416658232024535642402394118762818535163822493417121837533443454771784406667149811272443857065990313466693684172406036556658003669921980408170294095212394304041710765301124473426467783630250581618843867741044618227932327070519960219533923613250022473395818325244794549644506555428416732621100295565887121832402004590751265907279329547912261709602462592616048514839646451337522033936028740245100111762708494398259533146935842356573808140957060048093422042531332317682034845670581954147696410315989929848882209471888218993299667608707060229465610036152294530805338068557594514847691802007309517870105078256420246580589642090548368394329424594504091344551142126551056809911164869183669135136568963281888033625132331678631679840021788276097893103011239618152123135186640155168093421531155629244031702836346477207023783639396485099943982712493367027808479670348875385498990491052979210257066619561535290788402443496739870164617847158102824781507675718761024913330879917929865170336032593722560588743585213767733130753371277068709124517124246380295486858132526859419567594162121228086008317190478297604668135914099025148983555490439044761528323361259660808793860409392079499972407328428539284692643620148190449170743225919243089202484968535900179106322736721507520100163399884126226342018995460234824999972488705965146062177332162012395539359618660099345179251146153999700376302446578753217807808499775988556414175589378139916238970700261215506846102828778649116105362012043317559331563854027741861846244052749604974185610165851856862494989808537404160858649483938696709557233630417051275085935593898178354420793152688897628841090268379653044055872558104091814642304752381497280613843615889746953353889909498771704168553662418816904542712716601568391821508230811969534820282548588261960594500566700867452070622779981052286418234888123372378249108774808791949287677634562311061654074770315155201466150822764260323041151113228614741006919954497401270993282356310410356691956939378888630750676776404050020093130697448970902868155928924262293681198021171335175884655499931886284483319664861777176596526158926009409198435678656999466425836442177151371586252965080593152183243401897677800975135501229384708605221141862574339368347237615417199941433219237064506614502257860622138364107835595737867000153355956886650324407824820263230191319223828799395681642776570815063995573472248457769549624650752511192959692458685859620334410901770541507091850368132770039768682682006086253201002116866810175685859706165927357783543194340324534197432800588022326890458432357272721013324847365517043637144397097197575077748133004608366366961045281047573060079305482467996019417560839937037477067472583690053856618110546996258634967379404407061771697971637037470783042809968238763954968053386896663250118712693893308926936818193554651395971784002503198658117611425367056646994443744013695193537002681500209461696678796660680558825841993534162787634151167624947671288423522228300213109376043110907312543937946904127758515675200033499187921417296404629815905988112977279684512828072457473026395705497605123222360704076785959487925794702679637562301095989209454580966148243559741194310594664369175864359660460444616710675117367644315789337201906691073275781553414718718246632253548434198700764284056736348027105155335069941735992309080988811193808462771378682751468754417374521651676001286914434033508464820363643774068916811885575428513770769105461717101595461627896000759684168541618632688909966557043894522716088665182987080465916327411018221081759520594692718576962889252830971463537539901269448960077878635989392851401325194090678028028772245663990395134618862832596759566746099411716213681825306852305407973556570314864855894860132456392151838066310347979234402222546111548061785069039498167417813031103477064050137505668672720798883148670482519829930231279009903398447285437652988643126077267383567925221238890328328436963474835258941765237052482804655473414757781811847055416822379506314250197454816547617893649152575235763060939778224777220724607767640562042283870071699172424999155813896567430061498682630656361625714976409376672163597102500717040496419816137195765015530156330085169703270288401958321039343382146626101691898540610266572904965012342341800792033038959143296740427862396799186697666052797225277379301263021755977866803739256326834106239965799582411710849537983492367376951639951423254039717015186400450878417167213444084138993732343187796315280138236649194339513451033474379665196103717078506040178074998352168487490751142068757485388494928576583242697352242452392131847856630823706096557698023882568897251574166099097383211784559820703791723011078798667007317785913613912048468295955495151942135415127388902086373170676825358147152809349244686699659290995970023565675651235078709814691773649171066945150367462437103371397058215442020589195857256474537505170960229107608864569291523935885458958416600815683470839080217555587839219262968492984376003846139649106034181683351633354989535533202202700536442461898525681553542021608374850361048130039144852088154759364720426770374957168123624511671515846326188282562651430690020448723523539151347422128098429056960776242945010747112845708409695305841967172324583995015847248898577931918243765432040861141758714952552456713017411341507515492673173212638652507413522120982562055051544521693474241787727032909240219305603136418847486545056740861530040551934981338754010628919306690381730196237628142776015106825194984347249250358600775014055392465330962645763265180330294949368047015045541507848474083941677396061966375983881193841376666066367068954943420932817348013944904390973822093720961636473838854645600727815313651569656719200042936996107869110771805653155101034224269517225000188293533885567407863647606930697670730278131169003823867025750731556306637615135268062861840236145087105124317146541775838278995411618814420702119011316297940858083680873635448584243715881864539401555446358704216064403745192590749650956812477076261314034250531839061102504782854165822972450729279111785528202686738497251687726813860991534981477115162246989825916812812602114715962337250474668324795412174762278315924387231605551708825758921820752488085864578530074175125151825464414891227677882854482892281152561330970640557157597375397429874656350406603756621808975952402048353700496169593242633953024463325629955476866679706658165512580800208239215468223953539838067244444210278661755432533178150933465254081846364025053190325075035396314878741516071592119991541532110756394713468928306210724204438671826186500820457662279824855929721010426788102080938123664494106273841032924814893251589140993310791975076763198730506342695542868990899283684396082225634975710541664228810244661319926981994064197202677863012393346228155045000588587644674943178817623785484213730068875901307516938052518017151620653934953013525650841528338189378387540058952395083248064022361961903455363853293903319767782203693602250553748949110782637229459380946206041404993140816043349681194204346889212565387122971072193165819537859577460077686480048530414011015264824398858599516473412210405351527771228414596357232909398572461600671411218119186655123683445345923844232290997175187417493320875597721934833188467818701959046401398330502635827108506975834995003001032011296869340337588463973227238883514804161232209539001555827991701704474044460041309869674880938215258286277523445856428127741729580164763409633913404055074133177495946507141623983789407706915866745546122547157640361302029511990687250769578159412957256110478929786584631183123298039274933276724937208184343425321164933955091951393603567808084445372044250220688556795259268112250695950424689474865763774955111781829869556221872955202854330399835538961977665954998725338600941179273124602288601167928624703467347380641628844234044058614244272918397476300860068823963246718550883768061314188396349560525887938136133754391024768708903722122992911837367112384385866346233053105284856292814539809228717190874626472267456287271614975535670370838081794397476488097891215565937020908553447243758822574938787996985217730039668491448073617759960194131392353749308568198661465021729729411562357484460037449137629833394553174514131722828729492593551261792145391927271659924076619602458909090171472870578365311747854274806152778561538968519000092172820570832395930444381666047825146235023413844537821963046698791350154657901195744429166403061895573827643455664464134476055701662030584985976634825696938902852051239672638968087669048614248695673032989859516143902077714727435307033092860960271744686299259395100171433943493542167942785102554655500729372266922949990250708160881309937373480253856436551745519920469329724415410604728921711869264952641751736854270504782052994477423718967587058552872503451450821026610054225564565646893548406487394036892793234548206335329915992296612830808828593070853715807734846805424856547139108271068688294706080997695475423428790626739846098258238031872812965769743000030151874013485912139857478402872879536701456623492050499227745172897369142265879280354672248869308094961866513753026759540494927367814729799807000546806787524301290592599506544933156886293725457878938184154958947941393126881021225172151704149095453969344356919709858429288412794289319278710307814656619067331384951210219438770715852887389814247787888872093406513772265354273603156990719178028054269714666232817352245261649380321964451675760816867562129916009787452168973350340199558420072624425938499266110912134809635187414919522527346586683910326152767617507233055585518174167561033165507222034600247093814303559381145629674305573282378593943986498324507261233366629230982792811299033619067618250157755080792493019342201798992009079470364809872446345709820164723205741786606992751494975716520834416748531966585643495458513759742917591936783542775878856318202838189091493869503163696730849813704935621667183499600737453895943837336353819909145839534645807634237690356238289012792176726680897608301340776560983840869078986628062155918798922062140325803126483694542969175282779118156290812033522876775258313260293347880045399558707868068816545652029588752700067933411717173868166242145463538100741243139096880577693623522064441197450531733616343347723021177023629802057099143338822207337110045111491658004406992550879816731903538414649850618740399520924258452953712263783653063591119397451383024447738301938686570890681654499770375127137618194159440866439616413132979514215572444766049386750863771940283275784301777609002161943964059858549719406392358828389018228487426137570508612933277248323053745922473703655379265083239609339617911592148190986637409042461938858868255585061587616695482340541818892972368501568084787979972563670044625309628908164860950082277520905526248235814795812295171647430817476619271325591713172243247415082137796298162146152776261342090129044431875616617818103927932200358392715154646297543680261382270522938349838476174490526174010094813807642143425162692241917267389184485530692413409530437930270933771341520480602774565728398049390155499048204995600755445855772264608523444009028495146210653064621781076123358079260042974161568904217918645952619769032842214719787820031296548251050339444439901623313269928823155736372562220509219533027679995250544952763167940538618211540506658825154739594805041648195222324915034230895854466153190457612316926460713841871072415773936326911495952738260343427852788268809725139059126035116747786942569663476352137125235729262201425972220288632399495878344817876656470606592720242449936203878321127128425802520404487198607065889096132875435161877392055062342302583381689432619581290958093475813459062489627273055951751395072678695514234048356450533010463391813758827022074632659993432980206919326348749455085640214342691452631753234580225211739133895024232290875233017533071898575714230568323442660867742087269206231057455042785559148460858605608552837844253490389660075713096828943787900991154536058912825371404651986289247085100927414515983640808880883455372297047858759530781846398890654811703251842666976822868092504270597095349214835501191802712054694261423068794696701963277635676961788067439455849080629195224232108351673707798924042850141652270753345172947566725443365366830068992019992951076381204126734605436127351363760575712300859782326525279071044261286531414160655364863327027010830078636843589663437901305428986531463997268544385811923265886112503240156884275368212606054398180637585809268110115227579029829838713739613449236432612501154720434238573522513710047187051305821044392674686800445836097499925593761564073132394312850800786842643090194901779604126504733083178870887358920706317929826544592279475164249270903416293488107904722003512460003730240456848738819896553279993368400433495926945772873149937675961305583224517146945872100602580735907983421382357272449840569592127203782857765035996718229331752090187908622302949375170889684008222637633816087697830106070709272762543813031923446472810498889881656883391231689337928336625811390545162144215501473873702593934029638641830977999123262794314391864433223344346000190504090367847140054557365107751392006105652292092858978173553300097949409846804941838636935670619613157043643819928516752102425944879105660556964404735429922842844049485456859590888283104922741839038559789017049830381608933467455478379459523791348881316210744727605862920568101332793956361991906528273812359803138790672801421506953569790433245533670589600037591866505220579495471704071008904888842797153207944473186294779512817655775040664456021974243929802671441272811000475080634674761172036981979514781027196392251088535039153430117314985058513329561590733037720234163498849374544967223364254117008528480195921575416410408296311224836141438405338690291599857124681809398760930293078694239646241974651957043975382430941879069529497095160147447765954474237074040065925353897074149559302559497184277156510109483124661488459550158647389040432308465177217729247649072009054211985235580073939110906800029044468898561424879922219624723998532403680432004675895017782895708766081801682731472303686832538054948877875533867671692146033786845076608028620479871410909404582307579098858245858377914952217961270450922009894438469311064679244992011416993036038687574094852258499771692307438800725179202793236022565814992538100594558735189133203784576146166247576163550140026338007813249050593912789792470705083143439958432673425416038969963490521327007404822060142804946478216237766760925117316527229789769506171569900862103711685420210859286241047986307107513952266517592057652652527714266548954106520857092957386698518378294186547559005100568826585179079369749970644096101892749369443640668533748087754261334731944293312068827500216644637445754764736044485719129322006883119198138414515622541031453856703193270094349515218226658598568759435373926731373539840585429638903720940073678739200800841804768100717124482727351015084569776011998181645550625692409132506023677205107284320930095663717911408740428702510800967679240145957911348490876686854047045623198350235779139619869489177995687858171952578785141708593448771598978392034555912050879467872164430021686690883401785670281589354191569218563189427362011873633666095850721977032824895038313366351209082530382164431352929362776281960138997271205154916439105511774090933206905128827877629713361666242685204340498046407860990021595526099050951550778737505595823265640337012807104282758828427387859210325134789184063072171711953073581756711816258074696224289516626739168944199303067897835146398543044486826425020604464909447730553301029870482138891102847648504022467018739123227687993563462786024989666328961953527486774328030875626194815733735574676862729691252359852871727383248168853690435517378869097331576998645902856214471233325744399086460669019304336862406784284193571931037257237812437211171713575457257566917465347059297526309674091788422421546101856991279324374105112079024487341770334050574139920704125999378089704092952781782599836480020559319429260560228320860938298529342412834680659708459986106153645642952871584287649112679813756058314883151099741347234138832045922673321125008163151861371507585070158569253872390982772222962734255955627259265041357651531576638451949045198606828061963334399684207279161573589082660826747717897017097900158521493231319378255381219959657880549694916604133206017203069170350397788142702162549907548569549317561811286449324542695108706135177794843164892723312803647761833044886882642173136541291583975759151679884664233111809562408910526962087902480572382441968047153251068957371434746546167659065760754656323286124005116796938524103406478824294892308764549924224473230703958052017959064677324632475738780451490111703135888708735651893436029207815186920636605730368124329774136781126171725268299403493161290031604795096123349566408935565868156933858886297028750572369150432471429304932913606790964113957858665026366405633458969684052031836848621101845034661247180086974542092252542821273173185834940058350604287018984911739712426914822235193800619322552160570497451080450093355784415189444519595533288873760793686821208254863977637312397381281396988245520377404709220726574608178059667328445457408325899009262336407187922981641402437002947506484793804758904795298947009534545830374829711068901311059886012041196829725720849602047841469104702102259780178552777766196478711552295019743679582935219333926866904280126465151243363769754991038248053291484348880079109088493833098836155628098652484086039777634479080835561483284197847861982184555695841338274198596030948943822130757693513619511443916203182317648861654751397880395368103532191009130408649688069942310404593736588208389729951312588898945889588215558269289828109276811456513807820959352987099027194815814719615074413292034058507941220084735633031024457803831748874096783337936698112076145132726780086651860171920923218714396990615924456188080969553902142825364819494855953705354512829008678421379923538525735157390885613105966538618760528888345506839051291419793360420819672807841762687441984374120868244037734944029203022929838265974437455368723155368461006959709269410729114467634507545470285890422904935051122806907063678418665670586716690758495027845759604997244344069967817711324854469287935320134413028981467376431385448772025271592605595163218743460351542995983510218288137489431916314992530557307513884276598923817659840686731457916003757173893190602266907120048204630643594317563919504302800621707500087288827103932970162221061881228595271993010182368808214528153902866571156374965278522093220432509382854804001805446602961408054154224373232283709807989531138954852115304031394570925516171784461189467670460788064773594003477506806776640785299536571719306633094227990575840308381318288141614002769865259544297046813077734855309051488313623773282778886130497476029446627558351403348167367218260215093318324122761748186761956084022837339655265725820981747027882080453363919107479906175721556002464061876018822202742099682635816925346000178438615506458675643156872006703370991472994750453433035805720591538127989408038947736557654988011301283859910382674493694069989471539335090598629542529188697316846958920917125165968746053515381824674806250027086868637528174206149355568109574476503005764920847052011006757999258108962825868645577179863538087629181385983733745847297527225511909012520755291918423892106630802866918520677717933562741257570683345700951779718610942758562579944937235350009198682605678637087645203315562894855004397710721511589604521060676292734054642120832795546007786132354381853192673765947865611738445185538471965084134905871632732539171410063719572197049984292994547798146047741410300161440347902427852915423824467718552725540641338102007883350569001089846813832410799040180912970342693747424637944357026044796249511160144112494286384643710255383611901780889434595467991300539218684505887260201738041658505281193520713267791546932015092476860362710404968281641902092392638714854204706399777386459354966444858833447169678625443310172684774238236303629891419612029314881446486100466998049326074511186991206445842651413747867633263860267852403673552362329799597792355916376476579283292183837192375442054151821605283225992679527492372589735297737270616958121361286276001842175489162368225309749097504031120583955133457060295265722716645165200075220918631286105830800324304115914377071429140996787634217296275273865506545317226880688456739458972673744155859816244566503382849489342148655706442932614439501493963003083818540193722713785232291854245456952858191764254668510333127670915556081614277659928174673714168861237333706397580142838843527304489648963976857304292076523541354743498592341729695524980893593966993970053187487974525646641624480377968231770377399220487893713504999288623967085521120444207537878541862767854895850395225604174510007972958894282371223877802946751032125653903223409048923381191240660222920894703547398711868322390149896800574579697360835977914891562195064215666060236938782995183564151676847055552141996595059157098056748025072742785714852375609788739084513140037390550868813141838109608464091896615628572017705545040630738880136241689692522731841394776358283072554946630894956128890153370180758824379481630725570218671144576098203950359937389458175171452760469240706158411414580972570604642103000333138573695666429887585008037964962800331008878484929002992266332385045321837102801774841823354790921415168646786057698133158560984912119091478621587302881967411720378298785457725949005395348477112831880619260929112396504388141024156902849447682472591059276982000253158865789214952134267219742734410542059512367072003737844314784208171445071302164839825117711538427224092166204157812049897858175937013767889176519661084498790303241968329493002316309744378695912740981549365121734355751999225759935872279343852983065714965124775234369931839013982263486381293738677273845649562061138688033639663804420722446551625796111088257626526889796939700301540114645165820228158935855903860983131807787021322474687507435675589240136221847219512740194536884264975847507705877812902252905767695055314779170844909820328963529062793039832098060441855144966986058165381409630592039382145739398774854438593495506906128715515536928720029033170153632663085328837280993550652763824515904717732894075567314168335465588474267879654589150530013977573113885574546954807767524037787856987029699786837595648091118957844372932994081561922233812093059402357583058558228692185929224548244601926424066060713723107917252781836029835494717334459559038731144335931667871349372414518952498152255451092862528945210771327813839880028872132588689398253464081916408229879189312451694008403542886681966360348026668069047315002282883568302094093836423683347614132852992696075523596352976120470266154241220171465556867409199233394121712102279403676556986558593491744817775036745157129395421719371999309725229445488386666021452238128738103728537856433105373369337607425188588205894845282557386717419912728226262192539010014444408638156150122383860135930612678719544538550764476156821726247841256241475759818595165311513478707231316297635340709119013441087672634589113060236089417315796236884635243854397811862602017932460061161912202272690860417584050605114496795832361791007945038819911998145872857699732652201080498003214492720009324840519862031566769743824463697544463660448220932569930343980598685718585318128854316592104015033061354274949550984858576833475749855409167837244835252830248996868973052150303212903541329027250969746734721042860791318320490827625041225649912948564910158020505544768726425728381905858027667834499730035119495007731622019388598644828261889693313589663216169746830176339986310855246375637435556152914027057463424211044794626927568701000072650551228197624449049227320129571749834530946562279398365890009822518112617653078605891091608635380046189429817508979270117282171469667202021923018429043888102089783359907451131668333448301233620193160387004355205908018574214901468818630163337758003071383383011307552572317658818635412167235132044929719476959639517289893693072911716305828072250899207736297250419532815736872410049632730888125823177265256225440966558225621147783454686588032441518127596137790399201239393337101683423887930436342713642639608674944056077536285060264075080768294168582290761788170997308909996330977134181523628099780381370443367698772873967617612413339158357173423001713181929816525660784273208694738238581742636040790606382193878567372456973615972088384197997664535563315418900129898353423501056128734303631149449215626776131446555259940121694312296396207712203889036268619847081704716379144389560992519799366146741358087978441644858880831465950813025615496351210804106263861632007457558102840523102905361886625520452075492090470694620034523092819820492188745719538654208014095420391021253976251500524993186614337371737799949151085476112045769922819047675328088744136788140384461968367425732412351592361751627937503850513294161410107714364841808968431680458756302081306640059694800613365251557439558579207070785313658849575679898056420756128883414309317883622097276261452727243936894891397885332384175959276244955357059002747016228391391806976407513017337559961441672142743068840571982384823508985907722568711914733406599341143017553845984432108433352777102020043583223799747929811839146669211719465697612034872000743244104552170494843638694498035326544911409269639524521031967825031912532104402354755295500846846162239386438482023191416702037072320774273021490777521024030499574644583215968171299455466839201468106827557287051938271889982924652149243862576546175472133899281607662396835256869023918013767597202920365708920507864272348983827593695286287097787548351706976063865558860975724282079914052177321283309018346723524930713297083216628623298292728892641684880560256221380627131318781602990051934954865477235460493478800528660851136872810774092250078104785732727702304604673170831032206726031104632652100615390876790874610051830503335484560218598272076574862331041290797062910540076441130770419230572144195425150059794711110138690942160399751201325959199692220837901337554303118323336225452692776667072367081871772027954063977310533652156420187821239576542604317751476833626366776477237100841100907224323085964800165427650564741771235489695477684616002037537829506590108140894634550625253564392755551760231421858163437139061561949373158898016027791602249254743152495524117210854603730431722668589340887998180903801007810707457414377388172862397567172567314964501096148859352859729451583515107061410685631845239542827873512808694296044405732510778457600722845909142406538734215785384660469864068595690015904564377385943307109826492559270270847264344497704167708750222164606612887053418924521954910514455247044454148156015897003172960824461253390886008637093642657414093186783204974194112598774212336955983021836991060561454148449858834915794694443825850493624896329524327561244024405335004624892980692975781764654846040491383991311627161735841087866445640750163036555605801360788351887337565620017307411905437788593057423421794055339679779908329336196499302492219701537825287356398474990615032318296764869647184462637821432809718152508384601424415997079777808270532129518710578075504763676489481597954272638502377135246604251242023021740776629162859092609129103363353142971518755391074353534204593619129830773852318780575519876061492100773982581201806707398076451111788471408082714743736721340497471052297111262630584457861609662086300467157117965636282447678876615454325389800901556076337487975965556860197160266333529717010834517970510866468374203057301164191266759738091417588629170155382566055281186220850228897953821723491920149543457979699800767350296085250455459702059231845893626359876867044658027003147499340455669000210856500413741903943501593318940503052027560021664395481435407522385857122626149730485179596155043472152701878493618462525784986031426637991145152648825368631868545532452062565188301476645219512652192873188052219501395479938937862681147252964941366144589333984179585755115601109981682953162536298891017313768346476379920755858221492091716664892931382218031480094439547981014528249392932736377258491705951707447236998854881571854979146370827822087536028707189112681218562905812641907022163407146041681438859361060584050167840297144238533901109821078207405627100410817528582159812614497427641634950862698645319587898542818481301078652636554995419966271838066834958163822476412369708534569306485659277354668850613663053576431752881639473182298898871929145269897379584253765020536918506593024101392850744258486239656529425923721344143074730726711575537841472522762944786779096111882013460284901594325304811465927396339749752714992416979050057780581001140807739516874864980017419629434713059052624100882737793109837191461743985932824880373991565086633172111142098229630748705615305862073663824395676192888793179774559075816673952448263763147449810437063879818892547587940924426866726890173485174396688992868581992100473921616284907510874393936920928608707110447786395497603681683916527685229269014369755246111244759067897498034483752220353390767057996969546319936028569680685791480031752887333279788313794174249212508060422099994690618650173681494965168432459252937899162327808196158161605469487655286523219322913602489484318867050565161290509590948326178421749116661665129091561073534829943050097008613431007141066931987456730834793849460825119880629322697572356977162140068695346629125632330973607330708480090268788906358309539136722222098543507117856334980192072395192400717195991242581741145860716895736994697671447168078631090464247769187325630735961146182429976995549369082963042218042775493615888685356765479561003963212473758158716764712771764909679205330588331066603198417233092861351101430579886975385994169336564484482969287785280793245590352134455161300337949628601594470072639547831345350558224887181463157853175663429270572170469551300272248192238405848002880263589728159992315590176775573557034758766041831354322484946726093657949026797467848817295534314761995397303137635557089617079847104481748159216130707297158421038804337965442354941827499618199519867347427203521954085797725488361377181183300966051489133393348518539966226010053524538039122764561261294983387668883929179518270393240376438242716243412073612109261051507643990143451753217315140579441893506399120868870664030693296237388783891024497973796902138351427304811915497495963015286595201328262777690470686166902041850278338291422058042828700997443907319171836020066284757230054106151548835580271509257448923233943673086897014899257735694622321237330747908761318494128703207408351441292501907894828387950685535174609413948042257199241169722958456690327033661124468848505891079737147760419985906505463829852345366645919226930503611311707827953993512884331691138000357864168460833211591150090497346402479729879204803024155039487808686596824606224168925668329924102704544778375451034083606465397752224901349629459746083246626629826739425716874191997423533924765497122946937741251238587882826387638117831124479356024215033992469121287050502294897251805463121219147992467187396106486540929778950358783161420724199799943174686160135938038614666095013803869527503284943340898966953756177435426973846429255681529443558078882596678919825780225167671746761951375002868679305600155851293551620853494979587210615737877917049421326771720865797134039237534233550766075752254924104915385793650429026682067682482759402621766284463109143202436177131978584572347201648048560144217784299754762455359855942470761199220605587044328367323497249097505808147712452388247410280827118075519576505913876847004233688514061592255025067539796688786712361401293721827141448674480878341011959110804835164473957115762883081974178439651014419329916665803345266724329517012580168924901714718120836027646853856030114665982487668564015019044244460374740300287959022922674438712019612926498536097025016399617685040028888645734084414941782138096816711558045384193033430050450113193566779001716608693256221777552985771837443965011041704937024857549520901788327035478164497090278665353842463586003789247532107849701587320597758729715003257324889832741606435948533233895437499547369714155055304606248375103601829131828780479019579583873231401563720477085784882174471738745614756711754582792029071326425005706673744107344396293404621891441553838461724751150363217201111189666211112160836823515356491037842610499390919032139105173769749680659622983326818354096054873106549245870170346849940971353180880973800008417852854275756912560835485912902624210968222407705844799765535003960171515486631032896095760325168126060139749905629886706436683179279834789074216824985960585620890531851909360006454651069585006597139694058064764639040429745984335448812215141239855876177644545730415771443825718866123523077492556870244089836454447537206993678043607186995485706905009181929688459968556155403723355692267620481201029042981382851799160775725927480921921677679831791525388052912161180897918029933472851146723397142995963430783355954577799738508560377535340238798542401646159538442648327079782864971060486475084368592560459623804973362155286851277153551718665433138510545610828388680897407084837232043546917113654973025407016622002846566766969684557758854456514287912123228498979342896249068547887941184579811673092424280256328428290309066851529311550019435369956425802929177846616075028037199706512678844599448487941715254174772042523180787364381384318205990652788467173230177252616476184021294092374959708924528201060468378556444016182841673994950300608841180301569831148153719792520840709592007956072906321741797721282093400426151690631048069587714175788804509422594887872079016159443553205940436511441340064325765564740657334146119412101097875749039303883759467403131974740990920106356142040827584690928028155552315872299778611385605245325224251332726522913139422622119488608343863434268762257382371913923578152861041681419702286281969812090857581017371302478977768023596728454111588533600523034416257558022505334766422413632062011867541496173256587131393326700357797878500506062901127315708309558977091906104959743461414916962257922581664044644503799516325058701646956564435109346246740534220801603413966157803473965097330198447680393707611292245915142719808520359528917348558345392896475905483408556713621749358582606196480915433923966469628360311889804664135888018725776169066337912920652223449488372689218021160429613373104886420667281224852161120853621954470367593209345246763048848948630278753957799131703163873503344983624952352716438632704395780753620797922638070078043785475307963414235309279081510526992079290620462983788020446784001488324053515581640790396931697758860720436707553975612923383426937237799064483644181121551791148667755652419314890082362311732515750373414805101074224747764899953270888482950246675853247468361962613378650789193751941386214384168827087768184559904058801618808426511029070161035498698511383006400681787746525045112699993719513127923333366993197889057316282857908253000436993643273947131361113192635389736261113062184894067316246453016161054111834308184744706445638254420984160922198911802932013425537422300321496423989677692814982740708774961973082630723473119428180638223820978471303269750155605484238000730060913548008296516999772008881624957680143980733888503859867943449490508275774691623939304321754825545682962977301762486159504512897288616081062906673136850152983452432510745196658891871161409108042565768045786746940777284013192689220229327753236023058714764962055209458997266154885315868629294076270560679978038058245874215280459494556478615090901109994127722119459576187497499839239427126222457468045988620213585717663966287743883722058801809161040866734060448889898610822735202349622015374746820235176532890413739831794332260260355733822001271260829672367963435449262698798533710849890533850027303765608538466463073077898841667940332044719086783998298025656262365032674258179302162791377610376463768415271700969339672100766141051466755549252835439552047763563141961288394391600511393342609702110768775884853556172347299830621539447993654810611865937097577306029110985430865475641710076226599457545014459448625369123803975244887961098465583419734700310347246462420718934533698601699830196879029229988172146000931170596163810848531984493281094534718588617979499745999234441084530152711111265088949677553875369774376362952824950417563190104987950474682953170274887463661418672935073105581357677052084615391213999161187839558239442128865858832568134177801456505242539748970767258128459896506622344435979334092580690976100632752536456669696447556588081034414809395624542545152722588407660934052572893760359087097849423927062417018356799193121420719568484923382606242432595906894683139216138973738556132406657870871035234364259660212143459080528801178610412410631113789647702165164727265625179036988555011288517867177185119745425192439079584986676743415314321998779100946088978259025206985621659640486022436300839928586442474904504300190361220097101934595163524662827778236957775602781217892421288448775311276843574087050813297053627977703692452088989127063871809543614599712662904865660829015148655446512162241217743890082257602367847599339281016801154326338374961669272209984912763591421385993729277699859621451892166045673237139949827254387940085545745935360816333199643215546921810664857604537375315415615503112976070633842571413150227721357262783972690128476025270392593159138142753365963090829172081207353008740255620564388235372271748862495077685558076607752398899954621494973581465151112661631755346378306307700250639874866895637390534827626192032373090340476506384155692810463105757202831841706713867624963819943438784181529210381766129278841498168333405469104307423693754764972533481963353170150237663157663474636702921186794464901897054770280229079527231251764046070135249255905882185446002498634218662927353030237754960923611168812438475499548419455850986918365318570075095302046588311086417717317146162336913186548270859943407847302724609488117034366846900981795712492136189706309684268827444241058375436624864769594558673482788407189573923988601949124787176463046126206837198196111036039926423553129158748177184565357382975071397534877627149779564887965765527199887353120167101352973395089789424934365288743869354855571236254577025921977422098229637035337993221935466429567657781467460372916052599943382927134602864071467837360643860829341550075152805114162533986278554133399674588315029454267808186359048341660770089627022445072094177755930594735084567294285921933302703015768803871125016445392541772083694442060027300788414758901686393023479935740055074697863289182235764885192364369743706713138471809789360649022775721020466969252057018388365613148923287607723074201596441549403172311823107484708646327810992248244284369221738879796192797652284207689299302147560245859475584089957425676355346182314091938431650545782518425395124448638785400186762757038258931895668466682859079860212262914836469964547524296829656655885275497496877817292498186824098306558058518369948187351374137611539306927878699867064953754386718004159154744639896960718150195360761846183115073691598648932222896815746566984698408348385979560995497960642376267497187960582695012729708057974748918882733469117519423496359315837061787695073960961596921273916540854873880600801730445341146767085148324841815933266318200151531528253820996329374819744544419017441710948138408298328018874477268130796412499231001025011097520801244044326040522474472698063450906832931273437200370293110401762875277247149465894995287863426610507828345387377736697559836363552384454052999951044459003832500391404901151267888748528195684646985387818990706447930805883178561238633950890820225539604278717189008940529825384583882138091531558688798943746090727585861524548082098905633265532047803799263457236641232487062767796416215263807945901362512118875283036012494038936122954354432543450292191949354302134707536927581013308352985096069157021876869971787764166781734456349562153827033256874238638964182508626726975828932102194594154607023028203507128868987589538389776355103386977678490450629290175273201786005441164459981041827957053500530955457240702239816316376119828201218259603221480912843281776280045353981442402556761064727366498007364985732763603479097232191797905739071150990352548239646623868848705584053901084395887141687084312941297535358624657403711335663020600776307131230589411777642600784655865150645944639765430663866963001661410563040154938686859699093559132119191136796598737882221149003573634972638397634168331795577306045669439099429494234294232171081788666380182817131157141525125473018667152606712991463898433946542288666545550275655193722906456396013873036652951759880330874615890383552790178845650768063750568928675937358965896322482326046255649314616584095730230315283072749812155304856942107211187837149534776053965726312849497009454508021129759610356552788312357726267310348967552653340116610092116034187455665787700094441904596791058017497120450778702600445914015358584691710919444105928468367225935206179089647417088485730351378219797225015005132828285072340344229512770504672984218503703993526324478399757867435267536856808584137834296407951627190245282521561560038787207065675214610933847065120802530116448880142700726804898081059586630957875589027268765763316461652673428568876237516401879723690397854880673599368588247390101832485665670569490712882329683884823585811908096769533966708131081894122772203268645290052226182861843903286597531752177423588855682789952140148892020985310882137031534737188463817001737484706699633410735392818769835577222636196190774739723822476411366251900678071848292116210954047879217220596032837933235610180540590514366764583487253282770209408038756452484077471094114166081626625663958989623553362124873055799353967103870693052670621875462552696089405671717256884730965248550778039193981748388952530198731289787376608800279179181303714770233789538345180217634293883424637786185887102095485768197240107461574128666620310980941923065266536697204140666666512651584876766493635116683560838263907895186181439393074494279145457412543056380388804591104486790439176115623320663270077910371603135174954972154919485456804459049802512531588688427263459894826194628423542283594990788592525633144858778603422022301296527857373710354317956781726849876981727590269625551895072641857096442921508353331048051149320990756805583327909836172850121227338058660672466875325514573168475715674446067684129282999053365787437509491793806468674504747787849302710875036694637158812359211754702457270767733030586753465024016265446612560429529342469661705848843422428288008866879929038871575315969117257886828933939071692080872813307805385717801535241132890032509703360105659786159715559453277215749710528888332682463127872095967186325521858716785633629618161667796214264783519154648720191058519329485421359022411703919342014313479530592391675635583050866375240809936010708502723257318788348865112641421721415538709535980576213435444838841406438814877919006721598383725342248740407608468121542056748393924349122430755257459955205424579708943416083081643443580816466938946157301215560312830641931779142029683901259922875162992195936572044267665374962790452665112642144298593789485312338352443405744508514480321048385686471966925994486001821203805131388434985243503721601222070337728589369705633329315563273313318276970383459972755616537555550463752779032437101072316560789976160820701537984217859095114405710052823328819252937245887440050214988523588873465731223349007139086435527413931668240965954465628374167405905859366157613504453835862256608137229631442239003745691830756747882339879306008716902039949819752245505257921639033074187425450708010851551975606395227802321712409948342606675334330759800995609501001377506369391734075308945838106571623413315812564607977579573280130788532065765353514044861187485079582203074829920372272682596879642761860087458212978567785834667937084120770369704593578261987200133821407771050470697762576405637887759438051831902590483477542802034453464303005172421746678729166537250199256537325114007217227745821153265382528262140029887124317362099913583395194506195992535850473148565896819147314633782798763074556878193211395471514660729708048842418115820582060076403002586488154360484789534707084757255182827300070594475941089893686180720868387496152420205898859023304612588772473593422817015929210904783634852598187553702656219607154180702025151794170925141058666929356669542846203458510570354050421901660270084076327081659661082046324248276698099467005705759855680931491249715169349272058998415624413753826157338843242246552766576508819700506366779425482325048184315489319079911237058356047549441012765975878093411693855286936160100069075675611132898354991518583155248820362260915894414462078229176484945756912466366125069654383364394026277200980232378813919122741436759184278963608237308640379866453502404080501557672714731201859909717985246669332444150329909528965017943792018342495134430323520137949336806244734282567277563723842095203476880147698053431712751672834334393026119818532476138030587935671245885031120679813181594145374216146714970664316709304443261450846791568605714350921099612445533464094233459338653129928581772800977531489224921064987845362368189864167459878987778994255476471568782306308139709010570519577079560359229202132310924983191889007444792492542381393414814310283209883417656178957705082916159742622267693267734842744095874745296846211997524785903450215330888130591844744216356750481268893579736202455429337913207407251126266427645509862509523611834542499917451060427551590419838577120548302389632892633029535205260599829408007813723389611354312760492906620839428130222740773335096266185013961517553347494568643847828659999639233759911329715256289594181324946798952118413363294155326765995112440021559299932286510869975066520829488654439785176474632702023537000565336325311148453181455186018754742096510282514678383568763317124708770226265688294953665745703226336122686835415773276606920600721595337385893933740033271851088338963557698130953707768431140686556761303861760622046740773137709077243597716595024241210966687473798082304607769066550827671434485509630699148805313503159073112528341655951825327354074869807709202830075148900630259749098936072223191614308244557842584242777954886989829026365875864821758668813087255447203995974427391295491990577474649086919503937955203825084963644938905330822945949660505794211058210159217070081136184098863496611877759788401086684925795363676596768433448457024194471390110874353640671079684430443693867005748582702536332973652720578461924574179125859093001511507492604253167240818590906518786950758447556878101742359802327227859337807618465391650031568265948011404367633143394264155080706502149073500408337667304387643901135494122918865360518455980644385756839918423802600657636152204152368473063964536829119745139285669137333465885840796376992247448859806138011872661939114903725550980453810727789397687350891346562226516777138859613361409746236450587616076003909564039164815473569890627240567405416491930771001153676134474347957061692230851092538679632985983486416669968832750956149359570713310677863041866024115750276339011987074974600486081630504330591911277599282697338209272272113439995822744706530118206434387170550664236418155765897274202492324992125188233739659495068789019137218554764323019892574001065413389708779907302927212699737102273970576451307583715192551971341704860963500716974422688480739991294400175097951038636715222002018401642322978793142283034091610998194742041395029855809546103907548065847726291170021260856903298209788024018027330521598625390935383000146753707630130499669259824725948898710411505558984184570838537494716723431095137002558491206425027545709222144658565710367210161312338477104505929417423708409992508189981362311730617804339867278774927965835826568181976808693633352613067640812294845649137872387584720077391702136413902317574918917382541063067910086549549355055302567723992330510546960867445927803295821017713803311833738432921585217102002261252004465546721693721978492856771064213579612619197981154148852284498807499134991715356270999227887914363171487863264299156484361008544039031045708816890458097019601417664078731743411294649938381664883356295344264799635266695693442467488033432446616750696810561816130355637390559205036546192552265184489478610294612477964639298717388672236556704195982982991550924328629550399837418603475353311972934822342856054127200452165930869153828431188262536543004575068962406718346356933624689437816762691478943177794782228802043407289769449624356553094063625505169425835945250698929565351960790604747306621737382319709578861585695954038272099708163996600242506664055382231064900047757141604107904388373942775001935184348392355354384030588090690463698625868532842387039586351161894599456494308748470335310081278395193352164690124675583991367232220357926848837456107996010127948679934969408694824726342815542679547753182806190622889845899386694816278395062742866004701542155883300212410810472545518019845035438724121536063363339693148125286031615426298338981273362587997242706402746629546332718027030193003156372540656642865047023950526926533928402535003681182127011240200917114883758922731927792789891057793410159894252227803959755495056332909334098849423491365857625216469454354231416330451143227935637745870416435536492934662283959510635831879973486521863740029207796179112465927327984559776453047132344471534674634857261131295256317233304444553848809188188369933439002003993555424045528326908477683597358464248924930580006110119544240043872016238174159340895534728590525033657904836063026999281946288485773777390043341538702398616857224998915842380291510296492913003939232292457650542750225452790434095972470793180200513322609533791037056146912231737002509999539558762294702420312836989941143243333935554483040802899120393110343614627515613885256518232806694480856234167847188656398230888216510145775099583593755801453800213785648195318689297641973636583211642468858420281797492102149960279595711195512417159035861363023719763284382778946867507018296102751675430970432155060100644244047460386165606205493158664814041562089093431827900657013913158597859971924637926472640141240238557706151206177494412026264811332905385100507519518080777232694878960694266419596165159978805147535512153414622440640420453294651981040340340853915960444475629573221574757133932198036732679934408243678347721817013416739417398615251639235826465640713305303170528781469366088492290958712056405303835228089252979009366683116257765380214171001558215729420796395475205301776457060716264720575495842232167000053213927809714141102694278871990035966505510018964639206501663789463458590562074118157972170315467850279403888267918888814089823400294980156819890510282181068763135733869803302382824641747467465751127238008241441932742307022240167779403331456563048833509680650935936631577450634281802462877310049501800368042709301928651427700053693814870509272645881863827543052180005473864285243847285384589347145029890556747121191299198118011704323180592265546803377207499251175941298748028054503532580925405357637058704680784802864906308636170261021017994693351029448759807708135396139727766891698397632546229746173320502676033701915101213600895255400204996913787890370395655262711850028052005591769036978670724879498442862233765024494216336309930239179773663250610554589530843828433028269481736248222625245808133274089814329595903418512600327344394346343929824815433822306492782423735815233391897791855345999878832392883752128591187070870203250699188940072095176788590335895183791791695474465266297240621908993075690168596997044974409569620731982582540315361022264879168448888739061886094269606568893740558806267571470907355054020846970575846287010257988466913206661826332413404907547398186090359527813764647024929534680700313238082735729102827172165628541400398335053891261178711122179857081321312015126684783139038253452372093895657931291387763021112923037771188315600602477839623134700700923424466815934250575159018826266215500466023932587176473425352506100489559891164309773367204335397971302485436249305507702227225679754754534798654848894574333322447556061649888206240494570666457183086081258008018560318292855999272584605980308325088802706405417811560557682272253928810771909240926361297316386147182813289206415400329945732511740123713383034437047195136338377548007882839910586948004004206709123641562958399874719515665036996389017553225648966015968611681822742384805536283164469261375491047737456891029299708099648429230263167884842251529664197307536908011057653818318503152453831663691038653088222562264253256830725674541238073478382758343930846929004150445654858084573002969857093134933800248660549595325118723700436305254234824730851756017004306579738619966368457472539585797473717565780777766719241135968679117478034873534012820677289891163570673873777355819326756526289898877598084733994965062910221831307399069005836183067760501799072116233335245463912904841381985248531096864792257007040049511090357469099581854285597718044554501935469096065226894441443002767310853597668111631010570560176600473459923270519354008633246197038978816342330588233425296497974377903332835165699441411747690466486955973734266956297634869759622134587033370244260768027919693303438861973450807651432536379612781197256295438151567411378807437706417075822738933803070008311400591933148750825358027560153120166540931023745637329167785031311374386346970421490178512667834755380728296558843461236450270703419172252121219237459632651114158722467755192289145161857053207193478840072194033730861672598517088933406576837140382166877506528118115103847888037707635665976779213784071631074952849561501299962787739359511507772106559029008816308727171499842123691237072352244724351276967734493372282662034301462571184103339014453743266903609058393144755587701066731039136614115159965520602141841540450907581001987612182642827420094063165821975511885255782464369583233763950967010995292667791684141725444039208955363836948504887801259108661406114325560078212429766694039801902625769757771703747228698826057004651285325467551810601889443285674869282577052013830278954355296305209013762778706738830082480512486174611032919517292609410923598602909349720050846688006347095295222862266058094220772802854695038457231844564768589629697578343707621922017078241627970225367121262351083444329931394219392194367090939680742032402636747280311426972520907522755029743383317322979504764361680914113589447084436885788068262105551125334056153760108540790428148266264382051152552998335684735681650525195240755034976867120128858312693893567210812857672938555532133018411828485576679731688179063948021567368269158714466705516308164597451564763064659814708215156938764304848356854817838995110539083921931424772470787240675056393606793137488997768318304347200221014181574807499548492521413679282240892101430631078082419955727123666128076988191259163705281292166039845735734618155313900121288294362391282573281323882343579812249207619799238398012022351796442467115843230790476792223056822710219361133366795129252548613189272199228059291984616365685229188337808253296131831318364601277051580065025830792932935862548497478135696733767514643448651066080304580057476108517513141433829009677123240474377101931941005308573817602197356349015470753046770373513995660670671458495960800453359473517540930545395680093603847683434457099558268698070438192470764573581543512706363157700840649419506848847292826568598622062367007893053229155167869509153207096922030138208794574887395691455869328467358867179564475710861792488121680492133611355651207521351121426170179186314517744538758446332691993670233925910318668532918768428833947459433965446769227785067824038109970299740978837456566107139644872750672611343981747553831810062409772810495601467988473808443437035825351120261762927332661046600540554635598128608609249996516954933744336284023459730809473667280893122926753629172444642052220286459491158316991034649574501789438460318975218377960888429644440522975385000359186918444800051870388014133884381592211228366437358319762472729755155297423267840473939572784614908916707665591958839247250787287673819098156599314508912504807394564685923136205339222069988811593760693567060837914996492501618450373492054069400387661329405753824445037496693652514147165677076673881319986568983730355733389359307291352248501970538161823271882080891370943045204847530731236895546860192804483390188629370642951896249726393936508152407585547948129659931373899698576566191042723601321957309420432064154225060135424654965146510567318919779389438833957662360005798618752983301148165578091800561040657363186861351935921406372733543746729458855573205950418102171052594299223401446218990586426488086521412230717800431829688993822528560826089259303985634175798676712995810699995930116824867437523893855565523438158583790575630150944314753599798730988143332802139372794638879895336156886305254723681163219842450355557665200200378518916313527411504173625358199826857406116043102705673009039062650363659150271518766998314806910210075284025007199052110419629526169560310594142027354479626183198345516217125095408472298628784395840554953246763149585685207878157120326000484156820705963592611082423475122865472339588288380663522537692033599820413309552773747003640026868560867175390152129683622086547394293773752733499660909738384627839893454984465885165235001966585608366258350213475706398402850814912719790066887953043863900100794282974923612727358769567583015749576690390376463654930459758651861860857318631402155872805289256377415751891250283698680760221111432352600451632816961020069943183000800248275581759015442300034118516302158454651854101403763908407016103791742156242671162820298260986546428522889228872521005517605108893612970358320094748050771762102333670855430775671188917017780097740399685256232427999087348508821910439859711576496704517598590110787919042007698176517178150645414952219321567443871033284229165383377088712474513285070816815272934583305550113384542289828587604814620431232102363156594497968934219472466104714914596391857313248614662647597419980101054968906411314318639260170038124337023921681010845665812662266395366928561371032116223964051285927032698372259394739975644344669375700499242276758740504582463146153964539612586514599907289583126257627777166546585118513971739779344564137954206943438749497398887952902489238793648590599001347048661602331602414949626835331617046465206773674002490946007710500382978759721825652227515007770707453727128445201450965398305315868694190434970364863239534781314893994963593593158906665179153811539712306642507806460376851509530912777441284646732178139145525297663886891580960175022221741651515422091209441493591103412787508483394311766672085617484200297005397381296897128683510342171283468252697314836380669446024895566138812339680304075927324830830122261326101761031772485328419786675768374678127627609257828965907502502000907919890564727104849064196069140116205314406743066868973205596945027245471760385727163513660386234255595218093638125554685577868434795201054081419340592782493940355834422816523618194428581673494328543534749172548086193460823055121904763718110998576537095538889874003061395474866141739513489930157733647370172516741249670256926513209935190772041428169881090128036524315437203285558077291869839116894012625389574156885345211956116556475153313620648189822262158027483110201496846269964434069198610259155478990212090579187054527204713401370662130275469184282861296715517699918340558816370873503533181278167053122656133925592718989184791264572897143514374035070148330710969108196835509923030136064571119710626940229924247012615654174240287547316685529722161254063301997443696628258009166192229032706046394134163792682745659623863554224922524196204585933957670784505246582476297634759934677671354548266018902558617965915673020741628279476544147357020341627344147675559284502335823406904559683194438328701564316694065955171026778215962951920570929688719619261384481134361526191517267340490754225923685128343617252360065403610139671243529849168518433454669179073993166392180836223614036540891258350559351054865239982500313248540037600206975965388210780215066062273650832524422624664610440239621330569345737515636090249801360187439770584741709519653938715680966434081810946687259593834428346938991740597306649706143903122306876691142026011663603360548651962144639810642087654908285293144978154921312518932536004286122512292200581477409792950229703838880413569304423018648309237204840173139351999193273164526637504410640867435236363777171466197072002608456185392260981100058900532084134110036752773139805062660247912208650128672071802730040753484074286054671265223013271761438408141349080648673566838428294808961417011208890845532325860677316769952220263880412695894644705048611915012043216701627827126792146760413815408759526270949755387276770194218590535815333549914183293974193466110341575878401983928574362914289484232785281869049812886368428507455771708855746169152002980809891797108691729487521251962218300544193700952321658669613486530956277671219964381227734120135361960089430442274721688091141568705292952799488248517514406753680496948408162214993644276423865858466532843363657386624694248524326660933310133481102260246107642621858763293400667818890941668880158798381265104559115333264234304696564955254796284267664548935412709959259423902609984345081921660664058445870274106824769301951381861102768486838983697640578164090419508066141757924397845910444730269159611761854489639028754098218006742194835845462145091927054620444235994839824868530033700993009094130783902545032392732305172357421017545150659298085340136085369572050667620448720557982697784907203083597778740803387869298341180181863714354662273152339132206424238680672644317861902983592620546789592536880966560544578724904208231030908454348930838601150205909006648861892254595525576622822911021997888457037135245573266896909536546508082471598668048063114082901644005836429165826800347988249188887455273592502713975429282848733928131007458304584422343573239776516725578078313159105182135830717891493980337848444976951380555442223037602695740307937643221933321415153961539059533064771299437294235280770680217638231221721919239347307313087289881990195274035852677432230288929367807811134137761448260335593679676132031628142410684928616096030155091283745923947662285800716355158465421757008592817178423196164275461946619755959854763566965536029776482547828799845193863201876380298554959537354875552480492245258120172109773653459749440669981595903450857045039992740680766365069814062874633148257502330983647352083155153695070564949748084642982768341384569814027124879221407001445921987990120776808574964211464957602520075013012804906404849427871745374745494279911419282207954577113855973451045960446347599376491590955682198213690421589132957522338235687259944302491984430488263204978821239813798033856341291610719012954728932793360002870154277503107730616150602546643721308208031523810962417744370532489219841781169546741448991138815909960412012697296971454055599063861778494743929241354690131059430654475663866702775437508006486547503024505054458738485251873359484925840477216608473505002281643122170455122586464138307439596620273753190389354184252173370100989448699334982823737802350966277092247653207856932734706287417766391726855609319848705924519116296004422614849697802723431755908375078017988842379427744853353883010392908864177599789500387522855434187536471234732999893925372531150705911933498395102203440051267380469235872121383577594471414263711309512003924755909219548706734790613503132865775933820270764508840671087338584332044860067230485156973888224538085815189636150729173687092840539263677843288973228867915331418495420069560054014236488525800303778665558027731568758340672858962498742213879071426419812068708815333435118653317681625623133633219673776554649019578700847964304903537732339385797809723214732885687961930470507158003642549508513035314136475913095531204288548279435797997347345744683049531151715120562824671565873693191368580270548112502902003016186307055964985536473097977123108402050448004005094454331114001264761739091020364016842555587158718900770377700210803335084057126011618541021892394610925789107099145750679425745107755560294565928429652810581576766578158086500236204419821929821572054244202708839607808711735602069190402566628331144153718691424572990512916633015583565391079357797895627736774596904952690018705711513223855897279959563597300628099213298757860751250817506833614847985160564866863095530692180773851544854047513673694463440627856731861282407077295606653923562261132076085185158647987069539317226966838890578183796695189027589760376663472333554280787697902929172171362923527305856595792171054247607304144301292819481932685402340374096870550045008504647147360153789193708656773379828329615076997080730833984974604578932841247416414217796575813801851575528367539806573391940860425976989767694752603818965771244958549394393806724078203537046635184335625446072316635806329301778051084576281181539408725550449125103425427058081596487362642966556374777993878417427324536061548149926339699792254275744690383035487774156084171373969291689324441876213371966959807176335809165819566081758830098454930192832261320895863342178959187628310420843053034729531427168399211199352455213268454070191598080553344419753681406150161934803205715561500742285299879416022665893132568312644163707112186074561255735362390164239390642054156883339893193029162824177101238434408522749531891305197954772944220065056483030619550170000912136569807667561314170204540403824750697590669010099932274528593059836570470602315718887258175242690387032392375180379845737553799580933880886924948065575429962324572170204614158787637012759204169238257755674623483349017613691802842020293521631283945881141062610329296779292636468189011791057019882440928242767566898625906296701432534278158911087685332156471854208934878156282115796251066417436664318301524721503881013223131963555725307286466010456377825068670766872697750156072389355684160578621518646427174953895305144756883544323443557801590963390901976835777641238297309099174152268703901222957709060317128997747182552968576204325290555297011825726817594260800823093029998966567627740752634635516894568169853296094092601676423279771057604165116963052904483104222982907151751708605702773046624717628459295590126003304893693428933058937991107373512889716068697478659525135410499240015440854153023027024677399394283204554382786597741478123387219009767787641504577428369157035664731828846800865402512029226804151323295841268550649595213079965585388632816972350048991418488050189858687318470781364535144455638177386136911851729570297441230353785932856354202421054513215192543562334445369931180822095061956576413064647257437535000333765221858694524777314167299479670161117630291058496719628304844991864271211780382030219591722146533655730687061979448885923864486895270727074793280369172390579665384473110638880016951210520428168205243783852176331432653534801330547266107859800540242009571768438276340412117539013339286653489550974388640424164177666490030672330738548637901103663136746316771740963353743462648198802516109819529960478256918772853290329575045909761321164761367307872773284261160152807295581228099553006950786750423343850724435440136850316635392800056027957997320590418793197286200931816884089204441130154703617055916412895938842458137522249323286005900843958403297503941255169750451382342858451428437124101402816021706243854091361408184624266616069655155668279007793310366036594472150453907875519298847496492614378692877330657465849794415283415540965543170795477396048256808694540639538736992367821756603974940364296984717457593534426758941632273968818917936057609953840589646828033246305605046835611232139365440308187655577887814462407676693122940091483143034366758317976992553969486570906082941558801718882675118524877577727843287172862053178349296632033096274279559181923074017036614538478271000314557312799712921905373377486204937409191292778237970549962852148966547371863119911642658719761311568719297826841617872189463756508289316829220864305411316364715620533533255554885731318941426945512651142477222291107219270745152839285763712569547620670345495136299688000562612306544239048490829348073873753338952214284430890503231337902360118755823323386932200446569103164015338878317363075207602246937342715796490147080548474669947941724390256981129062005574909696938616403237704355870029554966381333031232708324514083979790124182554592722830876526976640082434213392106967890076449926714500242735103675504200767699786681003852313225224257180158729892476260362387601371105321703492824786782529830624906539567840168804989031951329532718006069688965582847496580215622001980387502783403100489940522696607835041163742804166576406627880638559551298133034821155255503830951482922478613474648926606420006746893097042197372898106009970196634252911900883645385194861765010359908928062299130886883861114924770728866623795758586500109729822170292261155912490234970470438345383011650650084553073722895492212930886001120298235421081985930565912942515566277540363229577131319005914677612526859668197010717424142892470767859817540064785245953209946167834719548508804201162390318170309336104791516145767807320817724352985240500986645681185602013698383838834851151508099872053070371736410248419500794353082328522917453068303464648947423378082546531147057560904309685445824641344092121781749646274408171265047741904878572895365570493558453788027211103597850573154077561342210644843168480397574161007537771058530862645479404003868741942858997795972260395299674357659396616100129829144471366564124529592912517015920817032119400414416749008866490906391174641372462608013251221287474032328862481386131840104293266095794128639313094803581102644960071815475943733233679711332614991899685335089010815849251642546653734868337547880950591478974132561509765139575226133359893962568065398996118674969420280296962448504845725879969941856709720251980537960969739547126757714450700496289745684949288356766980380132691414438025265440024309300688274559389914917608235669538128612863210268151285487716992208482719480752937032682796089715657742402947648230172689673312673844924548514041381197495041791837752597291848324159113854804559721342000843937301092434850692354955538385685324376773111362677833274430327015811122088408819689660030519798316506880581647891014775352959327773151067187005738320293304769964547262524209335081290803795636881007110026212213955813736944529077350659936075800521778949559469198695050599004975056448032528908398328517835324351135585145185868418385059825830851589489605333728826846874936162986020222636779436736704976528851644806673990309623937354488006742220479216554682259168714332227630507362564764027566802053753758209025449319177589389908984235186536288462474737435052859429626251096793053065268288763706903646660788550571798627473402671474103953109791452762835515349199198487600604102182179767524270696587900412156150344835926331930476662638464730736339670496488743179927609116671282766780937278388652506568375979130807392775123421039493479360631196861317978320114481992710842080809270334181157620692043834677555041742115642258944081920175849543338985218901530384752198436588516501848420459798906942698605567478825003313334408892311474289592906920735328552523217165061447708953066169634293598242079934954246537198348418624955071762831603934517021630089266672534712060850275676027215059653188872314126863522157471814424183792311042103583367032321897241042241672408673467767710186052039098910797339804397683201441811448797103843930597130538193029225767094470360128060500801984905842898259282791259273817831862523163297276087918591056399001349981556463222147059371845755575551782530142983370581904120993787922415231446876765237867081220427978224295835288553882518429299310967511777782241918580864508939194224924845828837444742276657205772377310130593819590571523748624292632765208971387214313429968698027084481950150091101551823295626137085669554672656997198471501912902809801049060455536128633583654117359978688313628888550650787281150205953491529819204371372755256592211244327067014249927465978042932325862885988183158421323306336686826134308564867779366054758606898584489140485878811107670280125180391101979586006154441579458538260879792729168687602308520556734907802489211445915628940475105263044419964359673119745772686801344813836726979277518884172089515673965751070978787049710865647080546760643735120188731548754303831128653875872491522216257523949617532831890849829282615009654512140940525435717275436174345261271229592673918330553831434073985863251586047113513822421880360440614659390889408308453130376136676613399636616069268718563450302933237570707925829215053596494697623903062853698905052560509876260526488339854206974817674704213456286156816665929032740197627785743051431897123547622497132613376372447417448013270493810786665318699472955242881392510003089019405257214075484160185979639580994004314439446871093921553527943089110689299466563834788697081925951226861143430553005248464954300507013665076915369225217008203002196219675883803949030351551782543012110840115497225507295079568516671802838088796750402179752988864608573709923040632290620413814141433777349482187319525849195185893978756072607881798424810070798302301703606864241895596172453441976385045158900395428764266806671073639427415746893670433908246585574492178897246522921544142499140226681050117721028385229662961070288614920604370690973582886319474786248715801382804654541661454050817663557800189282520881172783292302591786802582745167945784300575072765979979579959264290839507923205517544209024921401430910293098601694915526781124945279445993689861319334619144097368590879915389608001794212939059907950064021677745693993896368740745763936243944954258826031601258342227446630485431397261357786591493469573610458858473433798502570697142641809671301182197077299117044392680301181819201151121331000711137133737819653981236510439651450015887797581781128118364534603050336338503216413103555255937968274893034625021858303922377718131704981930575764321645946624683326724440873654932959600036634720217246061738003700909920074894272468309548838180826884720648959608190291193094574074270500388346547534056861041980849255388882684803482182098623119535095757907944867230580434260888235001392378034163725069204321784131690651177860268524868334134572726805000520473540628006334181298336521251285631309744397125148373022518797018518815564665970278394267097034790358801175272115972722852644185409708651289347140447339988589908165756750071276560258585204826646951065217467197358629373334010855408920017893962998571099505199554679938807824965305977888062845689282386356421284710278838074645695362032964964171897013228030438648118691495225056616121040023631278186860597455185459598596728270279826705785599514779518178501366079650608621339012091976441205959046856011152864479714658111778641052156240835518656376793979220650326531691338476829456030070147032619166041534805245392278980974102735036008190320936606650279016688801642424402788119265895203699286395653596415575935929224989031740551398835769079918692309315758168270198254625723633728809072168180577825413885893355009476370766104464419670286355067406501015329302730084794023331670830017941695271821690743949582197552894815167858235425529539659047027000752830840662106074574885725802308329085850654745800374129936520212655660781972721512452255449544761505221101602815627566777191458209244399290282606392435922287388675314712415753467713819778784042052052428352657215140514981693655304166518051276353583924362378907201688878348531409928252172101317241984195293690063538728708576329617127512981028601361051864068296975851251720726309560366328616557832841123696068077605492710664840990013692209451216370151590835408016717244592359371548941223554494290189582449712898113488319650785123073044370326366731965058573936658107239754370961618866386856053753405775385106986430815015763719799304433113380879194817501005624005099703837154807685902138072564011392223630915870941575472052073536482695367616985617633244235945293342624470309556560580593559038921954091402681857713129650745108120575081179685422358183333342394328548432799008717262063219393831106806334091383034802622070384041373647714428758662930450690537647225512866587624071510526340587694154181237711639373905718453378037796414885332449327536381886059398548473913544031175487555031181953173143230396321839396224818773983870949134060818846478226209189015686532312728842161926834957924743198901279566674410776048770507192752855858097263133832173120225739036660069059471178805095787044751087627357296915139566666212611632306463591684375523593529512890002622567249087494851158988329416490824247726655717212172607924440477527697798932935120345628874962927160713320600164760675573953841647340905463733416559466487180661515688969114463459731205883011647513259685943110764316628895296562032243616137639566415329366610280383341988465919752290573393618500274191189003993351105237121551910656456164943974446916774489887907960475159266695047985349189425512338406319105859804100969258764474331464489148199116840635190961712374156787808789230244528182191398106593995875894894640161912744240833971031065827157013962511651219897063034396617773576161691749071658667146947087115241037919668715447563973655864065269007832034434168307208682529737168287905485564857265140784353355764775878921681914938222992847051653452194931703626059796846021190622824326205952686032040287723595017103576032656696050028522836089758674376199438076611088398055796144200962256414548531492554527022707357369345981192397168404175313281034429077544756624664413517837907811400597504181595441229794854938581853120086374579758790503876484264787662240192167989478386097030878352391610422853968679499876042197977254872959397833076078496036458886798252088627459473195354120856523808409948091313399905381761094568586407802183183392653430465828334185362043608874804867024093407825837751477444794334528634323202981753979311077157621846181897735457487305098964320201685290466637639010393412560648454852249350304736567360797526467061570263050119727160002597900725422254093861461904426568336554563690857595792233692105529875137172803374499993601056782624199688769668542723315116824415943402558131329371862213319500644227137815948499652334314288131607707784532615730646895380883566746501672991901766470578287986469006496790426459234122475813912791853152074767362045647775268915566249188401668712879339095166110532142221819185485015279600048779327283418428160825183429121515040391186125933685067953169801294132417283883300325947823818875241359059696144962072763355418270192339171900785604232760439100703716478974790227367924999583689747529873326842588081299871946928340319587557985592980427269522368781542117795066840468799470516281594345749287678102029885728375419727962985468317408459740770633115606391538489637186820794250417073845103046897410326786567018154727700243759582207696589882849943186851513444081061879286999299772418755198344606979953981854679167459529601550101170608645795191801737012981758379330731581295181782598323875376804628796549129036251439868598400012763059576114372693877772952390169020909284342698478148401458214412934800555205644769566287507416804411691573045198834264525495020381588344712257992999792672432152141167741684254693691948886076996469122344889221977517694655851243142501379923978038102327230776626512245121153025663551985444579627926000222974550991340508281943507720538415748597350480106939046567643237342504482678297557079930474047580601051712691739459680503462728425169123585625455747741414757948979602622992885578025403603630940951516697269974414949202817873902558399460137459059827488846869395438593081142266047243260118070788179283638463782254843693566200015292927223129919497862358073369923384203280083856581185867298613920656132397921012834150788037686473947567398905697801500134688124912734331793782078683168295003384052785067535726601216620744845010430825072426753832228933239797529509949998597089052992681116493413131318621884909294935951042795001849098661025181033764170325735702230381942889318340234765559030485541748497674288751799068004581293882843034971152556280128807029187157015222514288665599621206069626388065028731668818212350388553840573617516178539211418818463071763024295333419325318117026349613643584368476853760251115837628253672941298488404564573565563465417130769854959202649812701454877232353661057243773814225500395604674116736737356756068227142930471886980712437443406259273287858323797046962254717729215857954358262550666106911219672437038019121704035697374682506694801444999825771205562970945575990549119023791169411665771784394737539816316170629720797568286995575011303379700661260674076298367731229991782577700873698300680249611863866787964761039733734975402989384841620841354792569749114111500420538942047179750102453583042371371207161531571910822528724258736259603975204430812245346681227644003526149642109955841726568114060245812210270747534351396036528440580454061926587909392239917454282829077260939008941578723317930679137349252272456960343621356379124290531003397548758142535536384460217134668988658511694292075632694761438937147406029716400593320724786766723813326329710519905520732538123055447952547382549343786652065485385453109571780365371667048633987892032072436058390360044522164006082436415394322149776005597116143208454219093724062872687199900440357990255295858515299907706219780084535777567814782037179877919187031762930517376406245103145348039289069833621051228763425584289857234892649767863764278201566276248262340898016281000071408909016652716022247653756599642254704216372465721868637311218610685656055628550503086704773013111557849721525253694854374325237615930060980783182682386823994544629797588616108169306171319103722500726198867166732286542271605477512340170113779198206634033235855506255324050355149463120451452544979554231465714700889998622688635073562562800516912963034265117594027304562558401568321953296545882790780994986447337927148933860204253167236294408937664853876403799422654997109478979741865943969455134601460170253389428114114364199854756672741160602714613442803543804542242229022552437769487853761298889974312474331646942008121503051868695016897591546932307564098460268256741286041187125444867084405781050156649155824649165453163288473919223254690484377872174636300771575203162485010889157592158492728328024930231205261488832367892543427611317045879693502595888778839710775123465636598330026165722688062995979673373588852633116267038662162546550874835368734754684127746286127202835402155352078260430990661544566458573130516414518792198108124911580636990484622892237858211742359846442467585115487250998609896188141635811944148141484442694351103168895999541919557895545910310946683860698456851231588135844801006078486365938482303970177550248472309376472937451596515943222156876209997934473370453313931256360373285636052669084188239524781491151664942130513225181214316927870503046075307008544252569010711964324923133310510177456988316109622658204792260755772981183262777989122097570787096153156284470527231697222771608266758697931562586861503181542222535800168499729545267810536689211140238350128217114295586637870327024843049559602075739978722648909401887552961903222014280881726642797788121981494629748765681611554490355650692549107193065310974886115097452928584776554620460236376273909864869742671803161354439726307632817419338637942338406251251421752179019204403441670525348278871999360587859830598348573819530211503568301366630139822629987250907457620330534210709497410094656949475403605842266566006390418594843827535216521847768633463574164453272397508057232354651907058206482997158622855005737331468383442603679455758851543744053781857663630797958290441261773375673418475662685003397211117306695283740510411357617612495191185453427358092169541331396457570750742495536253337806958884939171846367267637248952725424981232312532408021833091045450107071732702473233854012006571511154659908466537910667297221166844889404240355135171610595771120573035133853583065229864492509253112112982885126797363026889560035382292286100243472951850499036244592671480101014681799822255150550899308077714532539703041000044766765922566031620678829985930828741048867158328296347874424259944104798691646482226860625843316587647603165126326254541734831944807593752376548598463786864279933711879106151002748653857352930261613169034471626699351459928034398097502635838218705761805807292332372755434787596466100618232359352519793696723306786486393451308054651500741452194351071697473402259147972118166976072173027640631217549324852965495538186024875251293098649979975491281455099909691487091698404773039873760576734719597806340469379338984149079506748929202185712815007555710767987499966413412399621152571277541256961655331053238179279106404879783904639000472526636324252647280957575091838270750988975300767920870989946972889072634597900002663334814214085905139787420624758318837045408373804566684194605287526145644849920720812509641809907954132857368993111245593899600677287030244663423169151857746759092721439931470716375411454432835766107210660716034993314831092072132628840421328801982561308760321123239094235222959787559802257548374973023276260074024471421001514446300137079876827420600863284607681693926690683738068825811303580640088688387896823246240454825810411830555235734260640065154257796942287446586627563266837878167298245854387586450988176657531172846455604709210463647268543459597988247381221636281168660655932223714934946033636783835647194918288708082459029659592005849075023904159912937993772011273606750911592922135089472700205805831006854906801799919112635655559933397367147326861468420680153154844555904566545296616177820589069418042156314752664251029157331354146927765584907686335112548395223560512809537842775025159169886342128717866144553627942511812809866902162810480916718525736940600367892871427848768216462753008022139171672297678959468489429178086869028673857454504706285720013665638822995522612272105062646745309243505253556958197060525829884946660147844292048005738348321880513881256598898438314048521852753595135651719314399981432373131842500239028489292961124869109002878675488090074069709032609293127034920199492578090780873484444873765972727064779547370703534468920123311121219720483933776454009651582691662143167713509496587153599802352379387943403598871184084418773470515723059011640164126691230196891543377973056904174802499815896878429491188489412398684194619736610023141460184897964013453703674607777957693861940338494999977042562934471665218267755652310574630392623226883940457118097155143702797287656256153033657785589302595561864668665570652664444687835932274445339662619305883791096506643612434755108956892901501530595456615983295113146472070479301405425037812513100236176081683033277154781846391294566914068831017742644666701994129387831491844512838925071563894891496523476587220770099147427805512171521311684086898409016196648844655555492535881317627879303515502946953642425458492592976590773536979836722986205509744292552140478768795803919978393062228429727029053209180018904517482153335688600346164470697725951738266864887883699813087488703277980001644967367199427736392276714226450567698887048405916468575558427582975933621547933479020813885764780273716941396904275138232417206197062065903625648239527009981325600775361629178865281232698176853570949387929986033389909940894263535985455158061235502602044333687305627654405755060919686768104011863744296224021943633750088735932787605498003758557769779907410648564836204449555067830641487925471636951637298350003392767317641645586382900500520667694567628043162423097851849953769234823644002434686691930301298768029849451556472092148800569578907299603698373754812989811012610910347576152517406073939539858965626523570486527470170563952257483700234663140509193630524636525863087651010878432583612975399046190577172023863352325606223929024483411203468772155322066152100953217351311249071330450310978329952233645852644390935893886313047543096321409522676520698494316766323243124863798873946342217092640364123985747946708183491610063766748274581824877636502939980217835790384825452964288939289773992515336942120175659762901244030445309760283527239799413883361007707907093946986509698717368826462980334408551208088958508719239106541149578345323132275772899266354332093097269015958401589969928260198543082723469231200869401250298590033334361810391825756287177012533025707701479030744151752751441018752661452116043447216937918244626183431073334555273092894235872205008753870365416292313467284561343703397607320884308987582539985338815412287064901606125379041399391931368056971476097733376247893414274114646238186116766373486622538642890311412263090453161540607074574529824107740427535500862959482474351641279263288452321548932259791519672694683503741932177363175278139947441205563743830743509307442024822908451839968156802315826706830252890877730878848457115309742420678093948584478334796747806165671146270024337043605588415722418446587606987796643706906389794661087776179773977293834816132601562295118773184951072990960144233375253709939008545882646570175146872663585738479542568396977738999836306792689499658870195529375569145892262661581651872068135196864452911554713528681436499303083830862032906896190822013426083004607251432124717920360598587047507857835680228824562559490116794321316303146515949842819074242196897912786743256029366242030024912837484589652832330627014354458514500971784622403667356016663430959564098065921273838034781567861486406033374739190931705085624122455771844231282965733844906756691032293220525441548821485354949792185760891402544609109565637531924561069821304389375418301671237268331708586367447640228219303536785543742643627738125329977798616922303742017448010942173602534173100405515370120502647447556992728698844797025732456835494101784559086438622679855199670282603393548993999916276837324523962567932546582581674272819770871050136837343512498844957364647142216491854646108125264190133816792782459283379260746669517980947843014883794699598776484174491111037999286121258617514949293672961952316735272124453396945753311862620110412174748922331162702115787278107901491968469082676619963337488649280572645091498596410980016363099724888892707184826485872540369440429643011385427198257072838910979057954947949274784760665298819644151020351892317683499177962330672656650520807810673745802433022043541489537803923725977101249112346296323185628236145468886074857343257420507956688320435665325520023626101404196157941443357285301503466634864455642249970655378785203418502711005380964617644964339424667513534167017999629651815299851414569231126178265875690892755115935849902622296950122567846000338136843898870249497699266936332064103470755635805488993649629729224560533422647841193648730354770245551229868655014931063898023867963152226457280181032235713687859850606515222443216751523377483292460060881030395247418661156671532340662952616299774847717457997102840483453452336359840291843297763717835656420428369410781975429280756983849029160398899824088552325730225171286540900650039142898870992371797040830739669693402528942626516111403450879283408178093717541085280202845235449744936938583866300694243344991406061655682035192495493603779321727663054088261846510265796285189385221463703685601060165497531555595242765781287029186336106546390859117463022753084520202673013068430088738243860397637723650368922287867416385384677668789471239475904755256466964324894833483335095742572996661204044057273891128486703021279140957419051599309278561580893257840781779632261126951784160709389400356885034799966239008611767806854952282050314474226072922305905754557505914528525746400367257565007170511164673717674444973869320842595055683376134435241308021506053221661423775858582368013937093029564753344704495103087848063420853633770874021733955973849441543091501388833563639814137169652561150083340737056588006798587731870511999688388809031486718602960452189112422841858559247664778894552258580441814950580204130920532733163725172705983366837500961786483640442046273183136944651490554930270636354947352586142482396080612409007445327405181926319113254289562465082924264088632814155927582889377279858500900111578724161902425827932160817624053049661621924867015170638525301802185064773386190292275152897844127321303406554467623563248744291994457643915694522922228192518686606148639475727606488378522244195728601703978278453540743178458206874756286456429559478854284997260880559147548030197827741934085277894004488336205062723131836688909972799046758198033082595707241461523091835397081542205221170903949041708723530882689049986734562564420869944443327036752043507025065292874813336200267937357588426226700857462567112681799139079931177295109286410335385561027399751759416477586925841698704260823653819575884404141125306287732885022666347694006200004649259645747687564130253133055306825413196572642233130144401628940358702418586051130922972113011986560717095468909091985236414671242833712232430169000664586395493983161264406133842430391304441319357289672896412639803861124825181699536495046022754468324387930049530354612741685400553563291039128873565938257413251657051635315407363657781637700728853732041477143337099830866077880349317213281105193557906131925528477223706059089300792586519475244437320402032482030517822430395329432816214344277569640054900091006512299327068868653158030832441830329049095918892978058525406337698876408709895462759885830896362785967665418371898691416157820922426155662094325935464199832187030311377499102080427413202948670926149989979262649943281565317229535289674370128111708947894799557117702583847020804562984381760811357407399190230322046849353911607261991746033838458225198774223971284180779942930353042246530898705157779306824256101999521555662552803872579027415550107024164091839198965837196352352354518775048691428279122329149478312519808012350199301945741657600649630507084296720628611186591431329091769516279511678637875730837938098722146805120928370843390886908772915689807656389279509834376959795987263194281558569383001295410660148131221525512035979698951917276675136173521210227529715546422212479950893390813440664067702914535886040189407447501083595016785478804073782241194389735680199384438681309039717466738318272478801226519372618700416932655087388820173834235726105020775377770470334380867318752322933699093639647781066099044893184417428400996020383089640240519615396163056509327707913736165963039475090224133397647659633227992371647148220242927874834835642880935796166929156335835672603386128904992869254743147004388799978367085079596490513786427823979442966423623969349679771582517612825225194249223130153969244740129477496173560204271404295570457110403057736586640174872130174606834221878303700015195353756556925097711207696420190588634029075318123516359195222963709008268255730681996932190303493782717541229766224782609398502732332812669044781995615115889783494662803125489405253612115534317106809756767759097911555773697545444201139221174693321935241352121806502107273882537353769636973690610255973844952858037159169229043586952208298885778400124210419830614377107962637077432690287636512300063141055646354799977416225407153301931818177547953098023574612053341117162201540957565318660768103928041785876406464632695645747736084472281379546091621902720350920401291262667590342919361156681220988119877698068270034591625372414441026412604032091788222229162991444637838698823969417050166788300964340427897563661548849686682378455532182554097490147956771854877116864518531024241926022824997654625222214405395723250915775568584103680918520222341942641599273899906907500896192762821856758031019011397130358278440479129891797906591239829036216764012030301151633296061511039592149462270565913356909611195343649923452373958748806706343310206041101574013337163696716694597852799087077837300424953580517475186993748656863430087969947184313846770622623421846547745645200398334334233780442860187940855197075938519335911055117953563588338164170253513147987338866853983370512474743243779468904365303383791010332852460565053820986191919350893827779235643720269777284149789262257418942054538998802978213752209546739417056757486525576232509901835174089406416164463835605859473331501496785219156879182786761264919505337883057873118623058614800513120780072834472631794624896040979985856924346766928790042748504895505298519699401146025971920753864320154119002327323272922506849202579115167399180011808407620819618270619072717884055501756626597240472245822476402903609948279882615300488526471723830203656265369168334074558537355980911993176757187001165682390095379440888642906916953480145134721195332333204242027979682091403850685260325578862892719320578960599569311900219940458194848792299862066161591591034339679486735018395719311972116258102692248186899334441647794619034512560341281322835859388264757180104577938459720829318252049089009939033404102286304104750813929391909867709527190231295926023129205283917218266864420104227542144028571325446993899115494693562662019456225966179137561507020499146432347218276466711720498619969527263403123117168434537249723051109591332179393434997031517025273423724987610296961788220243503873461071909928468103404424337853312656346451822655032305271361311718120489533099808203933060233624845110349783819588264746664598312489968363993821306899129786637901318779013515670545110372963682100970667003252888817410289127372229640998460607684092891510093508511248698565768935295374687456267275040918675683366420160930423453336655816533042642014598789148238075698751709752810850172242716005605176910295668506732416144538296515132121896207609609859619278143082266718173230058868824871467507303479461075694540142054714749503331982851179266348367039469342151346158460847431068749744108520709995163193991100977181988943694613807009293172767163728571744441558422649493443162467773316798922380719963618060627206961338900836972636762540691474779780900723806212243723795750267075202124546368755463161560434838187541053920490575887365187506654795562476204249878629882480257198465113376589038156755986149280549622418789550082509049039125184009448111967293551931672082732970930688562081674503112375372954869033014280021749818900652877839187338394825961147082956760562480585924613194325585432170511488491606663840887674533678473075152346750778028677017967545111677625681702183420813149708464674077603802020533285817573254793176924569456298994852144916904516493627221719537646705056741362063654158626492503465083139130453398550077466771849526476843505560019588626952219881972479910081894342059530709427569674967047907082811333934336364705408314058773110218650646185641033561108944511426228555825527853826183387111922096628609336553895161799629271640333883982406321372408638760831268444751466784648241493100889557732386322642634504998966908176555328890444042255281413863716035301329397744797556774099800737643543538719542667804117406825744437646122461709382302260335886481099074373600845583326834251137034182155233665323203621280233233655176625249571587481000294899080089474457714906550139775505668177044589813861897385226459969195630031815397254007650845056159235656465973272452244798886007085737013889845543198115761805644536237797133933937191175022212923162327300678640145356082094188806443952825495950050819033994994378949595092669669403461987928896905862335236762139715681844511387677512568191219941697947832187364250911524191821780112243546714713688592309906537179753381307152567200394540421874504669031941586158358724656098668336834795313148936071365738980591653587454838446205295877044662110239881696414961587414535126980993632795677957667976625783776939126427873031699624034964940338337678918504581317500480983491082574846754550884227123227083063889428727437522049437583808220204889547173779232367857085146173097393082352369408363530533918382297824748168660460072627518489778369229143844718118283143383037932682914703226749845082832531555996931450019996221701713449179664412553970806701547344331640669843381488650520849735101873937021649434373384937738904938275060061299079322970227567838509103094976338783202816463886070254834152036177660598199651731921596532667950057192058414309160296112883375177449493400723155657683221586974207949316078103298788715130052638172879885489546565442805053347721481192553271554834786799115398280045703188936837796516257626516197065554591410321642365019279151844340475819383917678397026909937488120496209181540148356990453723425006012449417678762037040846084030241440616900910436800796406027760806987075660711195793218132964899708477942605059368694167166932918034134609664267295932644686256566838472399671521450742409442218348037604732448965836014496714398633725407304573663730359229267253592024344481408253293231836899335821085933882283855374356368259236270844891538929938964003363468404333660573606497807893291429814023620293909996010969185437712912799261433144311087489977226189436024273357619653516681574004861673289644830542392126759257265253586125721543086565372466594260546316335312664560912716304766848020413411149407379333689525925111413353781422779244185178935628990064105511804594634251558094899574421589280485359481836452803299753207591486452647888166153263620289606365650899455675335591264718850252901789291931707423385358378478783269812424818062463477017861509772374315085801168579783065704057198165738651544427301135711544179305420569821588698225249516457826549099370869892335011997332393742356761414713640572499677462974629806380800147865824684352125365031630934723560966873349234006637119187141049422135219407127396360856706835304099566596583983551560764829890481101533504012283782300136489140991929189118947250092806497683550847868205509560041349862729464846555629510504723124774223261241691667306245575510759079068257454529883197807904357636054939644642417296810608082939284836890701672000874678635689841456328263019287219348714309365848720863545862868804752082399057056632841758164127111767446465537184867469115580327259269175737183621547676156531859074127557881424297331543351682135381574861185548042581347686844563915754231769937256553445098395200199126061130408524458049563617227974890054987389849484993314830737686381884637054752338033676440814418769385711596407629358561081108219421921105211294096593176525700575440501886245106427185446856733713657222513807680015242712091466119114139484864652788588888810341601432874503896145353776509046542813676428918477287575711916894524216451776907685808104561066562861805155639827504581097264061543274140618917525352921062490884995558042809882268876985690052767023368215298684936976255304962072590185968244618782092902375892564336142621464537548271616985320793695701022278407698056264950558266555408377775594493104292557573684774698995824217667540075339967517066386599477814743118357491817430539278002286817602159531724225945361916423349371867261209754101595729486604484779144627795952295239470298300120166550890994832734169376950288085881627661026773492642686813031036857547337819799654258461360103379075479053704018969504093741916680747762437681832677845865235824457110603162701093254749786839096343505126979879340645871015752779059233955358290830637621679927173041554285140779663208543303197588977830375153923994124792487678380349134357825463297521767017571083888841309477861947029864867021404713313802717674854753664580336859360079158676083228233302210788283990312209777906226111344108555391325090938240829371557377224489747981376451464093903973905241543658382889752950547232280992824194369063985674844836373186653735376120854102867805789950661678190373527037134065485112595225554480583003754274907398768145391998131443383030998679861836653127921914340329623703767040544764736251126200042628404895386789364959564871890795271869795896228707129427617751073617734138137598867405162337175548929386570856330083224206293881110579160655579658164349302143514906007933394749218216874801866120426844039351444318145131751765146876104001731865754616297581672490330752080932972162669569426019720908349259330534393909942217288190233364123026861768860163673875955136531375643521627733889193348277995637939602147435639322187522758716657456336148651885160203600498217794621505552386517291876504767138291050026603590320931244975521438325644466971380181496132832671644356575676906177944473893927634275874811430240813044208069110600040852772910107198642308306156313056155012469396547861884346998375447404473573966165994664345452413714818266964379269777145312550660179863718927373510072328012279597173124180398176390854620178181526046893064296188161461786629363141103819369675270506049684972481794117657671418519363550509719480059588274801786534364545356244236101123644555417883808556766916613256131769735789356808029261186860323499889313725778713004270884033912796648479105044781209335735846062504174619419666449963758010147965158391475373290151326175355694046473106572337234797636348645866711685730317814546594071251020002569570294575656241134368985901439538706056083682679709896021194696901705787827993444695642186099548535985883759292704496170860324221169314385256465891381469966536719896909196847667066377949216152645492435658648027762104327849736206000713986404363065242868460869200261200730735578979361089372727523509777342382864505325500349570438948572737109092907098488323523046180498875667091009410413344112254733296261232924543246441174928179099656540871058009449293924915663813630988663855013285877618931668386511217391186559351767652705272399470919620373438326282176083887741728541852638535544504889367513054971490217415968111882081091532812898836899990799718817760896632914650955434939435872118717694223872423840761165474200007403391224940971156636145766254417568035778799437586065198609783799092222957092101967799961099331089642030138561219248175714167669674868978338823435087763033226381460774270282714269941642896193847847277185253964019887361608950490237559669589240272031426266429147292559953471994972180013048219196180169868112510534848362954978492533271976334354143498539391695329067276082578741216571615184967369366001315516976088791493133676834735173793374653294870735052280976550912043062015420635041987555979908814793024109146731526224580853503524868349167101102197626880481155816934231524680082859227098911809392634558091728833369715839298342685370850671281584257823680642676638140435510237550911201210895983648663773351124866814106027491711446918682231983874241753511765919354929730416645476526140729060776140006895088315987441363813948045155601316388021746983694927510134597146614142412654134921301775928932596173478662716613957359800886229449886902915886878260120518729583237387551645842159618337552371280579140992880818498566955851871612622057052984932955477412935964501142570649450562449758554575839465283002817828400783882463872429969330540006032231154860748296224549442173778777841217600584789466894490330473169063793759607822167768209657069630259855004334612662616628966557058063116099767853052825869123169508345500492842536597062493417052647317074612977211896481531018509380415931593269555549976178452096432748231493787686601494165559757922217175136516014388222098195045267574810679074582539057080502453610951678136478867143565312769516638680258859319100962625600759526084043322324214594395754771771337312763165803710714509221487539710229859555862983293844108440185457851632057807264445289286790581755001977357194750367484647955652956386762805825359621991346143106112382388257089451264248895352952162071110440983433687491854228677937418382403997136511673035304139056573011855329404714606114951933072214023231044934262426799699683879460947475602505706043790752079264609669997493907610139493411660186558209661431175968052560939336134425749001241155433028472893790100041868832528531634966653877090008989191258576087589490542014768644496476948371909425409674666602282557704833849541762559907500657011709372000011535687656600057068190052545019414916796486216665829183555934022877753161981487520061903211426308881072348977948956096575499383917644674624410033037555504646417392123806088799683238402246901879391667252732429154069325191597695972877314665128954857740987543875285544359698763536408319764609114370312629643264617945498375135286797465890878751100164036421625155615903611834942691669125687314508170848458235582833162348921919073423194139341450477088681215987532226271206758679239194400594584187171563362723303323830589743732902304243265471414736690371724991652889632104559205481634981759989716264829722775802982434049596650527005287550956709648698695194225049566477009752780192305788890692153052367494006780972302446275847018943614717057916388117183816467080542797874432337539159230662355268381857151802945280160499159220009469221631142705979674883416248951749302733603470074008627786055118076458915873991751782336403802644300474055263342365999782018587697707684755674820301872377500551259700021864970323251386948846246601470528076266742086581535723631904579735041141234812824145306155162292959136293959437093127603179054055572070197545189409245796832393070955904091871688637599153117195291131100687860263682791264764090285207958083732090084896019409002101085201001043820194792853488729978907823152387981381972658340577293687304505724141872428805197735561561588964208610107019205293868155007628965416105018882667498015179380270624033095727394358269780437398046769540914919097614874580978785959668374600680861852876123434388280708476603623457508553417980181039423401990719423556393151520484819265552975227410421362057876786407324937990437071429477203469386160346102561639689860708480125892461867779394859005849347247514974106421147999007914495205191725215638799069682212255748798909207016412653343611157836109139646902761765525233889440982984406162348923604726403181934483963609338440084836757188441333720860941854699970982016668658710893074981960477319129370780299629171003155106735807814665176456402952233453558675488756454750997068155648813815136588804284485494909885056855638406337168813543609545689791861417520401748548331708295027960694845332568498334081618204454401951098950869221571235160910387470607341681294063994168406861585092675918653590356083520847155674839985463596328648202517596199946531802138995583108843585697335521920253236923253299907494768410639576683327745088493138036441089070134527290352624613227705577324231782468185865339286353632054906428629988896502530297896868032565243361721441958032347734497097014200350476197044536447915359259667357014693836002339256045302277894737884375668567818401679967672549381922196111636680318092967377812380138416276120655137757309482440699934760381275258881875519932623468037070484105481421239702552760364242815770562053339234930514429576609260525174538628144806265946792918740841535528081606039492917232423839438481111832013568492782741565039806034069480268332314370267259723948498570942995613353579049686632977822274062183790877916250809847899523243011012847977742586080767677480215224329415810179243030325748434036022305735059159721583911405402958549079383831842458773423485799544048782782039433351075142433823249578743647035722088189380945128853107289912646202213149828925528698183398014773857307425959476031843507435956670099480370344292769303405085126355838697093600379840781532867499042849163280976819833522326170308391320290957007043586668530749507961600644048635565472047653615191228701231024785046971853316349707354190655346787223585468860158479172676565105962383135254988752040380112045285093903005911695770004449730782536048113835843387398191291329548058997430885305570547433521542386735803959668543443938338168502673338411731716152112524714972915513425050239636525274060491394713028629325458537239760353295575417628923489310325176784545793611090719383583162736965246840972545721252131416877188996532426904558263402861741931908709205256275385687831488549440346597848387431282152775448500618188898640112370919853252236599122862014360938150784867915461279168987196653892607838070759447996260098458599388140212718770854443715343840629464017221792297341141741313870448358459349461435739915610393061909847826615598111435123406723332147461608141283194425072085377389046082662633088732423421775327103145641333966668481488073685565626283468016360495605039550664718086312509840642070154419373389537256002683089270736734503906507606052780731168054604364675467667148048639987246864078338582189579799283021094761654682177182109777889411736925523497514956048344113953387147106233295312659679708763710846522911640111535775461208740877898212439827549259245009249088402453208272109982290772011761058866906233660879226063911234905913853482607973344409497842825791753244294820357432105794306057213043428701391938572717242930838866324390362479467444625404086021968717018367950548635110731716187752696909228881219253355216148752344750851433198205488816359082987603902127679545931008675575114151659399092799162998139650731418459374060854560504613499941345767021613877444955766719227227809548590220475971224008543693473351817253507609090929384488881398085191520160493016447988689542871217937571263849587660923028711867119202931839395695370981706203409980255776036356190989468816130356973345253272286066727235192679918411748936917578004022269032407645401926355749052326773868278964032078539261318652868887635860562405710179875292360728354015082868437105561374513488178548590280991098800641914844918709743721544398703178781373914802984971834340708334852209678804662458860173210283165098552001491850000338449713434171857782676512713606067382767366496817092606136585111681590300849417351793660176127997487971824834555577427342175366517403984365078466786638116177486526512201850395759109387825978768469723320431998498438466475966170410673400540133713260133888095223839080300427534415149391085722895584651980897934163645826810710301749212275533474424853024219023033076979456365577238706439154058158915585301191599404044765363698188936985618462449373510480318042788413405384500047040285698966177605702955993970451419302558285859837295463205153135237398505011903106818984049139566573027569089340607250724399873662105045328387699557581683668706645719106442610505002473546445237100221383051415370641300623868076627801169349898869802171346308617257914087416403414963930618696516352050538315829053084695611791547891626769099711003947425457585929332428067764998929820352206391543538424508719110697800656897848006236635273416183873680113039657581950877463014776719828225510152187299779394214130337450358087065114627101884606238380746519284617298215385030442468872989011367668869436089138264050094258114445180070732341850937520006989199567107848397125400875942751711117454015210165711229633675834540815003604957134911669175225249771243372475327436346799269819719088082192131472545246160710440793855432951570569534558916838878089251916587656057799544978082510531947668935012720762690815060718763869996256490176502487065404291186684628332411580804619264491765646501660412100226580159469663463243391724621524573067524196719728798692963484795134303579708427852346578072987295542435939215041344439000415701192350652194258652853019128911585357259616260236018473909185590950089856093624217261948446830430394737206762343999173603623363472316053056567616877998695851922234159141891947137579266360238720314356786269177876748468237362731296970366958277347032929054062992858084342000419216687769190041892234087281879347831115197361804784370520790775901087053373037450119878452099423655551929294265480264776142468163334948494846243816476046701450697845968552468902800779974106697507757178600949249611195044058461403968078754290741358593742434887577492819807696490734127772648132566811987581542201046681286251898137000468050960664117028679720178285770706345691838773451725506511576438785126969846237325463649778573996757731534110809565457510415149506110050498496400383438257357907825905597196868384861112303202193931335863033431195956758075286121757149426863612832207121090597815252331677498426514735335112329524596357467351560163381353652326548704485961509419415401555536680980619141734554170413032608518007020502150438400423421606928193238987877646946633145090723399831306301165077916261030259030405401896695963090061474496966545097394899751804142612622460462420097450463600368812542420400579021312243284356688544526274280439232790717638435437879132505802252715773298646703518988277564191875765062750389760815281068447020401687262292771533991359310588002233573994338466315601123610764041274976730229634850514123112509414893945203513081462541715464483127362371999792142062706537714330010443277410599843022364067076776849668140493788913325587250692267192470218640071152423922593699719640861408982754018655408492318464230456721498299458496148009562221077804867602124233153660558774728966784429569741609172093456489813305313055733358264214418880700036702564585750424428728601644492375603483352409569983663070885010895850089488495479700184052800146151196570275043661730820522550646355803186868419011097368763255191586818714783901627331979705306223301871243697928975565817996666858236579399924990917172156544655480992686441324539299250466342863519777804922207337963311886121208373939289524421757591960533510752897842905682285060242720595452078178837459102730514050804540168132698925798506205621622438673682521291648776165122663157619457918763677644043993182202666428899817697838981929738548504769498327998174920596638941945223891287246025750132661438500204959124362967002665946049180475806671672098961986727340232706000983269610746030418851267177744676183708488700511051128476708790102266114020822126421324950403875215218885335379998701035933090809048909389832718701284945284345800079193288143711398567381330444427989723858671564704513939726962541015497528767798059981857476743583260481923117806361260028838415788799306503787808121438700412988035691211755425799096153789833373767492797479083582617808388587147142967751218321089690548027145843774876376424642563890531277835279959046715165925386362468060083952859554417439289479206399556015849347520263945643220924801682190101163300341996848700712113045107833169659959104772339510672245276229469995172559402027162490616683199377269545855283007488879525174167902603746406056711037663323553909995091241106802040289215787768870984781856346219152018985367334494481059515522778262928844461916599936313459744627642610785295982008665776706049560584582667033970725046026989812112689117562733489958917342545472746902544917726507227158150241643667319937411241901896849870868881536011946753502047884729619196143448604813945194650279334409905170930801256642395807711891901301983372908839309752554087237432774206625472083614444337475900705549081917516368018033916776559815564240056823927859076314644986022695618853882570439722920585130201032408702075322781976312327492633109630548986762777524609498099503233775821153827654219367624095195367065977637713217810330608919988974404542658539062317806247117666705696663711743828629621128251331343090703438222718367513905894620908628278048839937047145369309101142522395924452691248824388893711355538471592707329320339235629152391200163702794177298326759458237049820135861649312558345507838638318692170429761921526102867687605888079677162664610405005826997625419167736281210339932048859864838626694937319487118918436124883371420815711765264685631519743122501526124274267760350323658506704659561737975482503305042480470336495633138475308741331266659563520356773059137523560888891468426590037030882193114281611534585633755285720127332020260556688304517196703416915307892274316944615534059625082525858755798516140174960141455384498279420004035144282911479714304880744323723163332455252535776358331825299530879760284235725417265003727059709166105400246593181087803325155960108225203963761892117035819548392696854150843448860912046442110763965597003163130817173805189616147708120007555323554204717774588505176757999345008476241222810539973872633781537349555230318774008351848366062528560322681497052338916618025002172348781249494285655013033988223815262641693444151517256305324331745093440880917217267352132668090534411413946207682827810676164869831058958663460002754221522719842731035171704846365594333063395685505591575832104242476640886456379960481940646045246161661105639693601182383006510671840125537449151672730261132860762001110293916316458241820620504445128601167371724399254472793915345183609197798986603200299578031568165821338723316620694475834123332975064217571958617785686281071924788894621035107976399667353562993664500450505960481051732464762233539202152840149367201390133716916532204556828214693488059926242696392880429745888052477693567764120438375104240724393528922239241877814201115635014970918386814150694077666077693047210737324840352035244035471312857980070988824490198468760202646159058428663528044170020611283860614644076360007667832264499386484909892402263834441465812003963549388872106155252594296316190410278232890621309631947886083864083763681699627962222472732743938448261193290658530474445026011913446278270283625523535481726725862552158295035091514710511965838569083915985840026652334302614857613874554371998204483218672831405290041935217861069507866345658699140088389832075266344410844441608259212102809135176264963877077004568121415667603378711909001350253708293869648234851007803495790421240046245348574555759904085856241076706834879524668762884877910378923795181646554925262006222742220996146247212701164216962572733692379663089841955760206052694870786681555684400722721442609575430536994555287581116608391346466303801962103103893082127961490123851955210048851318014689896356303226393413250576141588033650892994397755761998184028144977422838803792893600077283885334386118344026270238189707640948755799763181699143111362516421361785485570230464840547716977158631092025255949491471976547014909358611724900029743230205591124250811994867951262118375251626144725893585672042277638914771566864498600920937277213677277972418552850071536629836260119956168878930602665601792856634231118815045801781738417564475464128524758905545883717947911834947353934245591787652086622456379068335406893991281056387343490083894201595123038921581394548634640448482247562364544929218965279728675468015481086639755020342605270534420038604723111455021031142618334566675826911520830443503128450837436211102188692089671601501239415528102248509473893572111099552117236432513549524135621008461678882823881188571502631255291164054492879179185168786105725117733984056677800752557939309244535594321546635636412066149759924242122445178973254513689354614610057696443474036034074787611883181771847901576236455658532637865869667300151515343718490390685513948394702946069283908103547652522743658138978479547380272572927584807931630453440271391155296053704554112402105934302902643168400867474817005215281532729947656685997427754441812886049894220312804504618846229065324987435803259143241190818014822515959421170803209690786275483175848089493692191663442842820864405547423283873717946410520492709365456464100330756318579081695070523577749344484644766286479666401883844131426919901152748075593111594127424544935902121617783211515569599133402638007296577566331325040004932749350177029546232164138454994548841802193013719533672386126227018583627099693728100769048216291457840951355497660670131658319207519696162731382228326064983081289826797391772993436156005681179640264173657104621238667072561020950039802223405076703643220517052071743483823898522393430437813227215193943808290927832119525937531414007684795344866319334263069042268805897531570315145170534146152331389303699821432437012858089808852936580258940906848984210755028637180034097339309608311590044761902044826782226574660069570991181267735904875731148574733026310726311132801997532017796318626763786838132142313355520285550646992592001336646101216903288610140437617980370475055989551325255356423069409701015686776417815304593949232536809287814011712556069634102770764255989616622881352858717998090686068099977631731394858896234427671541679626829489331157410470035287931123060451995628059044675504128607667548256869023705842142851658373754614961755285811075262383919147068581846052666444170910628518989443176589005685075614309154795355310792053095197490544572299590597640895679075251236145411437530236193312525441466497707846961445307010130394560561350169555331288343199632251550807209489835659736455703203048105634138127563763280103194311581072363802459438897444537193702016763116445617290303480545183633740782722714416574514417635269819261546086649548958717832465779164540401072574703444435473586496919023494496065483155619555409423834667482637260513818704065611191125570108516474472465994081523481822681677736948380567192037166774473927426994017135518391676108038684494183832343600981589333111603031165742231765797025579361202022700460333880222999096912228536524933063444101634617451133329551513321096204587855222647464066429646429829660872812297398093458396130998535222396944844073854271162003809503899764476183014004506747503712195747171224022089621391094142533960163244626195346753611336986871177349191002319382999556051998977864032741150484387272250140860543024163854818893426660359579910056628576113729502194888905880375155326146635586090641037268162102695997158016270316614682656969415854752965384532888839561755558109789862002156438694208112391145379686092530117833852743223342869703852976678873208318832085964608036872515825869496776921120170678858418575088360755872163594983658074523518629330338902016194869354699812856295488681100144417921336246195510454964525486769343337122395959519487126042215277687780908285552371005894374776442109868943948933280028084076670689099484829765784112281326481754369210225338644869745092566185226366556830116160325833700167685777150612854769765116917671709265593661940399678388154006928827271392135909870029193958144635729760233765989832758373168745681273097999291571498856167608940197735227200534529237897361033653248152683307610661606134717711074506690209857664501639110369774108395136718388683967668228872995236204068029006672593517742233082641382997541408674414188118708608641077904999648447533305309838462625842153528453906491122307589915424466282507163838792584627180600552471265036339083550618357964351572452831466845136474075243070143659838463829641859698064181774306717963043856150898684694603365780962705108292537798653102114414398813627236319760252432197761489722614868925197026984795506334989616611220661812599753178234271095716175865093247099892938716027968318709504809108014767703912283826529271481042371068345890735974393165704493115758243617832354057437241970253399875040898869505752765119285476459898324402380355344501360534658746152185919673103349307075648390208749457760747631011303249004261703579393585412687666567009508404829956212288020185931237854204143268067021075831418095598005183980245963333116771290578320429037592307268488095250154699866516427781778434836354415237536011758785995570827440397916163635339655372151183363637441724519327238774270401648447166480146499969497078532045123734712874663233298381867910684098269529217486157181335554193506658647501129797034988986085887280415523626502946349587145067657220784895772100127084248457683744508055681340054870981859583199257495826333531791671352173491613239310663445743931475082303609699909802797191887950925116370208329932437796670038582447214176653684815790386184559960810713459961342859885751688632624717136682347485465098298880135446560571088489126165261046768454836012783521406248139226532549285167702009522607032133088591018720196670165085238683786294828554153297684536938533832526972067862918358944455747473608090204263589440729383449151880015790649400603298158694360487268693067092955771246846909545690960272473704132418848422256904091572757654203733390221802482506890686807218724424607985838841665474589699749084494021773264564934495832314728227794662278958941026073125789906912896079840183083848024282776522485535496750841808356750679093459128667733281137618462602539407732563412088552811484601873781471545581476937813672537545349309953570768974747978432632259790907696561790463064965928963510729228595658889032332693045646724730556658838153339313574666975478409352838223666717110652937052341630997321619601491406077513946828750055950104809189952371865958948835497503837732646563799817239350999656428223644636120158347680975734075011832086316894816005252405057440554643982587861180350416709813590066294953886375169323203110018223346069577352639532585834725850436875680561627242878229393540815389554392962524491686625192664168684295250830550081160473807564855031614569264219820647638505086121731977244726340813507306892934346579952772436954124904212842667963929775038778181816085177841400683882766557599618957496063148251028306690184291449856887207534475144549535147652850192215324797226671685426816741090289926854901881511394899574427378936801655223278907134450391439450012370604069442172280554176234513331996460735739927780130388868614702200925707032730927613145037173361731641551329796516477724336670662347806681857968113998464816847834067018601677024036248075682839292914086690196388514907270179075039670741443683624308618212016130433077866379444634133851075140079203471965516105476365150852323223408594552417730112428704111231485045367325719688708281374945188555853048828876475679709138233265030372783166892288136040902773105261751966741760845715176891078724214367205392592584339590988782294036064755307558774794532968433146268748917337974487653500471618615876730884138260612847096451501083847319836013484847603549420013583447564320924831712993448690651067601529402288029541084234389060806817566749122707349708095755757147309101760806952819868820891438402535512426094163188852507888011243280433054091109010679390105119378379244231530112419779350412004061030242302573826908790626308262893125456168704241112875815912718857058168545772809512354772318628374640231773083465356025934721181611401161500575769563210279865716307724193328090131627249899581547875151487449617143165001042592338431138131020474875952612087751553220014556118061752833739050318481781414184738441394308762475645293720970105713517872221157851376541418853244655881234349407881113340619710284990135805265668512546438541618392894545881616434747677679237003880856605046674575175032327157731631296080454847876085053070119518476938179740672517985656038104215137823359966764712306723365311667930484496897753355436706580663915175930090301102991065960854385412630003594010871976909061622088957400026991419441960800163000497082645017924981422431411591771843802080980974071282458142935284587521183409343172762807873241766133863150524821870266139913734606609869109959189748854581260385440256367769484548117805376424351885551109220720048387331039972287628357874646620176642380045008130509917660697205016125042111747997610783310407636331378875741740922623751492315628570776769415735265504430662027908137847862522900002451636031099551242166816605684855808066273060376208099926797769962087867396492423342214471469301324224116161351864910185596347417257100968583083355182808585242666730719505223246541284365468040781040419695559402349950063988981594017596079880583819744429677703298435962416514004219981818238887252521594861386239602629617578875005946850076985804132358967195727999119099412756178795120499682032131803282668610065993544127097681342981112724144793071122338426345216110556810401947592664095010996936906346844618246595349368763546936100395273567936069156921396089168872290477494939907879738999257717464040534374693760106224375025565473984579195375487795372835716721472579791931080436388176485217455673619935093281062411109121160168703687320521458607848162286418741041677515975357409099162994558502752268253179505876827377514487828549049517841156046918903189817104121117792667027818518268035498046911058667645544457603720046487986540338354153057860527548352722569397406055486829629238584754409582281389036718815966838622294038966974139326230819000730387488551914809116121404296451771770019596829731353596277887156248053748559089770580394318241120468564020016546060609865586356801486793755688589869001165238574102577471329599686009649190845226236503241355284841890270070566909714380687302307111490620814140085472252785738841450712883318908114269192560262000745411243671438671031388633885980990173622056250183485426743188986922990455065977728946071635290557015937636017708014109770974973949342318220518642175322245342744831727143360113499203684673137122484284751258389691837112865982455282165887478648778948867918953474791313499859564306832803363036195662566049817865833496366814780723027121607218784600224809913227854347873929274303926264795802538822693450069487198641350669127173302230956423521551205048959216299882295511618588950601809217366306823906195839488579724964909503121666676130952452084763531862038104680371109473773029798999022073998672127393593390084151794249442324169793865855928513070840560153366717231909517821414163237221748948653226082935177123730676456914292499297821822929787149936158303433921118295562988342412933364718601005945093806087181788466486284459141652710713011089879811297174116739709238242028164137643654264008998420737745656527834198237011348204149907390889946341778932488634004818252788407127963000220346985825532737423285371255675998728504817657555675545038255372670612253795154448150245937584366403625756313124593022096558808131627365376093811421327378128296926904257813205923197784384359166660118282962720920111043280490169185947687044615465034613955554377831711041987688140390085138844259193664019720957123498761794683248029422757493542663841201408597788502708445188569588433665064473464108782075189172927989172898213040541623822000013510456879317087825388183630165413159811549283642311575330760239435380848431819072662077767374513558484278206677399649433347145914459239874268065955228128709678038791238392932041330000536646883951485360061674158273550329085864169642728505984855334312745903855791509052253466365367357646453476739562018347808487086894681364341070528047712190567850992339301985747615435235748537237016741970280567392789424486180012734884052798953407902847670144325400689450779375338155734398126846567798363917465753855610874153866823492608391369726228817614634851845308740542956312875158362832288623658755855600141294214247406118467802386622254328789189383815574211603826968579037843320025694759887337224894958047097416178153777537625442605265026888456653409670014850048884704903175540121714142214819685715678531100437958736260668696579144612837570659092544628296026826332851281645781219323901555516960263850470949080226255968460890908593679797834898585993019397468718607133981927203942798446228843257173452310342701554734186360822424707112662622762024751549302479987012011613480562286011778841117955160491936317090413103756373499457243702557978044328439646954296948922862655394125500100304073308366349300818026501760240454694723039710835643393029239785675371914532846103095290258717243411871467336952133856374794841751918816958819266384769977501149134570529384870634666496291798929526410825132604649157914155871780253239782824146826777639123808942229239449162612665645224241085401918127555131966460233577886884391390161080169214727674353307074481452549587639081229663266689252614914460906522640385017019579580973633969709785347269746417048219668698902722133284010783093371710062573381290881097055526563598109322717107386211441663777901636367822651988274035051108185335226824985639088542881077489239907304501747289505641319174992065664208552832584171786922403529832582383616841014276336747843916573008459832681990152815202477229012693879319530052820491113019972706289943939032670018576836023208667037129549527293667821872350551638141484881728970906915999442425989125438074084255331290591059131868751554715452591457899055977456629827519337771116000058467868254042694407004851100090719745889366876338007290011935858790868086769195258903781201694420544730643801418615324898503408673085180489328154167372031457204126839694501668425510359714734686791426298663928542400010720654620396210936613567644790370931826430935078774624837324996549071992448425026075248016461332857652770413495743692241332741838203549068550021609756558144440345216141546900832378967751465424435755455795672596638988230019828729738961214900992699654493932714421548424857612869183493882442620536565457434365108896515052433455390791867197985405145391961154592044487838119065554804470800797856290856228552596166045217107254693684408815292500952885064250507457270142906784133182548173311567747611627325262971038997393900086874222114112080974029780800268504426721045088840913537558211290502940138504361021201193912408213583958528145510361543227028135296952765725477943471207011504088043332356654391257222489482614085054073823551849453924649799430610319527171532586787972376879457009158126875022225994487808727136194475248507195500604942524039620784493864699511153674459362708556181086252284179921554690659030948712823880044265500007028991387905854295829536672753122696325850259847481194479467657484209345344303279397821560165733874581131098749586264915755290234406199703934912817878039302456651363125650862580842824046087050979384817843046301031055926349706453723897853983570894214031941695497794427106465791028020644966928162602573261976706297261001381234726275372833268996340783063700808807600363220962755844578783369188502818740678551107313482994476632168253773641816437914838718328354492331362641878300847024868318976629695039098538331239836745938103903017964092294701580257070734513059877817595668047572631526434257093957583466997414204984119396165442248093216824240399076874323461192483036012239982896930076606190539390075881356831509429330574837519186296880432526636513420993263634367769618271547202006471401673989955897807311368873785230498850295571811853498456669643103006395952358562221216093770769932783240800177631799721427099901227770488416216555168530627356139960220375170605558613758053806222106206898464096175042427881539523936962439457482512507937014862852143681627192997187703364586384421291309605595807022565403175969855548342784564676101386364054933409509159646159202013544323082077459357831462523839404725907233641407520992176255666051719405594908801912182667468829056878922578188379342122135866225110105425403327919701697430843863606112787506923877122927883974942118656710302103688723634122638611077373128934325035475833442865028772979306641255881035664936955784968133219853287885639035199657646616708929635304536435899734433879700451424933790827072783213332924556800489027694992522437261905428461938208476641102869675779941921434520430804338740341877973498625947280366702346193842911496009868461725278110409619356061935230657109358611587446255972094704504578031824303604465420629550265769857905310665169703191295510754054076711240464098680504113637830828442967481365405764766953281658839249251412154970548736629382094118813427007088085222696205419226707565270126171628054691464155789649735148797273697569964216853340327657839284410379463278408092052031153471239504533082863903331550785386126056063517439454078978078019149751061859924030596472790089826822449191273190240281502426336105703268187840169201552866218398888451665429074855742055196839990077577282210894602311352278561201432187517622420858511768416473294199089878138383193543788010293980700572591965174202281259796200667784169458112718757291594840136190302665961528799480773900663239890799567478394203723390743767828103552246503187840417662480143711409867953813842899142665636927471052602500782584426784366911062596741710978394257860387669958431241069818433487767694857561855441985234834471265291521466195282158576316670419247638586080162956056148857262568733636283027590014928636774375377922579843920129404400754405060482783562518215685862995096390584157464409532337207133363144647760572028970231172132402669499856292767516219471759150284357819485783483680110132830787025338615229785658074815550920192417654642049638288242356254358811828525959617182016400729008832545545934669411111642970353527102059024707636493118999835373902252183448265877107597836641194367133874886234216872648030394034440114962439102093096449774746412553881266866030424812330157258996033731964272924812331454829794628646197542412151385099382180201429815933211748361430894776408271164358725331610466222581882516989935396250995265052417982946182116057354273326831705878660303367367042311306006359223692779120297772560385668489501246681600846116885519993946372860662184371342713551364388285189820096224132603449273308802729865504327454841517449395173793141947354441131445264436867210649947790648002383447728124225500598592797197709067457965745242504902126917941967370852791614580148755173272688527433203211008017626669505993330913063243193448969689597687189713066064962453214272969331824177309501872899549213403862207535437622499540231434020004406507016099116972671059580702268143375592754011212403552531711558711225736754487214068499248754598859321610704878151750021592210679776408429706017739825322152793735385128325964037737226262253702230970527624924591161356267498948870116177786458819293529052806299181977869136482195856197885621553962855220577448722945273088315115488121998508900681743667415441772861742671374684990430024228065137307239505195419360046333985157733374249511922622305526998985318146025852991406809601112294037654575077026985013889133045821299126594399452260780453190582448746414402084668579034077696195268057266497081751884279545926315227664381171738029055604396282497947916191682601752492301946501776051207281642225773646816649563702265377061714216051053940879599813926316269456807285947975620724619884770510012426556269898908739965439758955730207340085692781301679282348585983407632903122907392807844747984974848746767700270115407776503711134393773709693814121579579862839072191098033595592347384305010220427689533627203868390521217308175718933246686662884062830423741984990433160258830581023272047192297054805572692240219747534314723084344953288561671374824055592702113785198172134475465444030519234522354175541817315443515468275285808595506648848518065723176978893735424576382759586774357001349862955097525638312207313631365685409859725091406750918008771609175853510600055982578955550481961938886305718529164543606098057857427370572043421024063924424637161875343313367836890954584381835191960030816082676620606460166521337844924701079595590327729446567991042905302129533291088873696907728784901773561971808950988261761161552248115702971945237202350017787369985937516125407819049851425994970669884702948642690676642486874252372123342856587208634802098740330589314250624481652049624990143055554530053185667065082749193476863479257651692800477110191507547396605800584809928103222749751661702480713749572048906992405885887472770939085579051516337811058563165780369118736622811721258842478165066269322922442944625952070387073836506931064689706501614530654783570058079716199858731195273784434352553754197883990212465518514881532421002031399115750645413230281132130258871067459470861797055763488169073165453016383635148964408710759392932921220347996000681738232804866980180137294943992739139072417329691114278873612664959623380651435566734787364558922430875479528496710423670131871023880702369122818213446206381233182699871992287063724946701404715002946524145939973565736465747986135612742544458395484131793522149765732504439343648558399348586865708213013681160888167344645154232196072240254555202106125308633392124962018417141654703291504696239002543857126034966949373269347609362619599387299230712107276084762697714115011679667539660381204458835606904543425137799574395387943622177388907712952578739980196893139971753532876748604693577830689405545534497201841221910285315784003623509326924176538173666935956185865126923627452170374783228419972129649136234544038255872900123574704940035466129415834721174236160663009786258724866747741417760533608366122953131404066296841971529251160373594682580043522430077455510999686118140305872343818543339651288993054465696859472763122477654139110915783605843252033035054991222281418786256491821094513259714846859699455769961640148413437879521841534364735581621249445869600255705236551800403921781126675915442445588853868949758365100458228034842953802306285260108122640139593406223379810796835436839000676727240570680001905341239233518470707627337175223888256053312973421327681636855443242423521209826028648967149029642228707167344807849925042475880603039647188470375327059969832404658269949994054473852349785594302887726053813905030112858902503430457916670249373627809508380318849706037242080150248661330039785916108488698390308101679973949847417650257590840899567666782073658692171636078080009510075134077810896897232257716718196530910736733426979296403895498554629614941694589596227992115932832994245539927454652178738467446256978795182770978661087722819285493195248017201321489652899736381664166146483025803230871319727538035269197689180468207437760077496109649414493780279845763364196865022166327467403194836560398609992456809687551090447265285953995088970550577490719188828375068620200689991796851497196548795911062154638539918259138835907934805303286269706081742309197551622994497332430284540829548746254613243742800242235960263978610789405819632384864220888711098598208990133107179774502676226036963975760593634523732602900951833636126313893410857099658066033124302136695008288491117663023276396946232881020523779233726068650049230335493849587833219318464023434446426608997078915702740292889163581819432047253694762501746221543617932539480958547223684004587061557833130432743064207942378381910183343721944161598629514301627984982987143274820198640663342562236025238147728407998531228979540245805801841926885989506528520000246996295014939525533208869767990452868143751923186085873289437293706635376090730281071585971394630071158756611156761546692584339321709735466219554955603883047045141200497194029990253551553248681049050154610807616242708846735569194000690856013329560935811115016057705436958609079063162038742990698461284451512604566780838159488667346572322750111677060211078870550558823999216891238402718195245385426869572740723668013913137174386121453195132967894842034580245746691128724834169628924152108018692319125989925313972482594341591204402274268041218391757142726534995245518671164936905405786390308621367301646594668896715677816865238627330095976189876340038844045715827588069599195808379991941046064692902125567899710561311175651398831259733913513686855480995165110424005855152203682370104919180493533909535977061117590904540854519756721063470055203824462656768811863078844192401411087093173006580201985971614963933747571242852811800547533325721690904474848606725539245944707945495624752966169989314872678042127563817221607193456613015038878795879867645220212483440778666170445859259941558701642136280059128924501698942507436280511400190257669739028897525836783787369029816625163375154636791305500147664876565250547834355246376475785920526544018615381788927613362990686503913306297837627042997740637732732343474192365764059709003937201237525613019233788104846980613829966235224225409345871137606851290593199391204322585353355607051935700502987950881129031677067080696736720765708204920108614133272176614099364775495023034699446389241397964650482833461452829079384619349563241058915593670066426898396426908679738875212551689511496527585589204256569798712597909525712496332247064370913438761932829936110568147189408030636080290126089359316498905401855440140363101138272063570587523231304132260149562107014905943356885097688225191961521555970475642327414881392560854142550345664151407519256278567538594951560286625111512558354410754267781097841194892422117366022138498944217593692899468671530528084278270397575577848431339787988553761697277793146900989013311959244171053110230029629211990075490793167582617392459561224529890961726820360024097167754271408487451295282249642946442969666771838759459116172775935114214584517443331090292829716606367993523692727254210513535358925204101151530191877531077685285308977094013993472079593588488101980911841510462815931089469543813415647450041045039015654044861749089941672839474992337726890082786634275786031157045082135542650252675199333260712733713338931604402008871468219656872920997915670478158093589816476866481426620855498903421977020377433288402709240893770774239098649294443247978470503434996505041380334004388721750704572640444084959737212692850383250670781817002032052741714460469445047807970845494562641207661636991236613070583654690023297237965072032527121811141525070016727335184329904915115840421744150186334125267430378311337095604980910997734026778257075931212934921576136795190878260997047974668787693506713648709646102906581682350075733895874275022697275208013600727590564410095232903826762227588609387006251914824149526984629618989332173836187392206261876620213677311329523135622293601059018398089010774540484091051571953297152424140425734704253050224881137562052558424292501479929436134641965326756264087944354712185422686448405276023526210009669870733705224398765778325291066285590473641714608422284989188889445383337657388367530987798479221837104548244545492445262614150275126461415348278781061435437989698506740441891784758737236750405793447468029311683034353776725347618144236081168660306610236659675681426518762602875458387128777833088368411179596587400021047847825190369870647492313681639102599014485123625631687432810838167652938087707486122629252167849514812468009955012598474955680425192846192829753298181389244994850211832366384158643606516960332307365836991756300567767241455561888903983257322405971453651337081652856838517284766909188408604970690385096668220635084146183387454151071670381472681205184386935762455306757670012876556173459011651366681114574324528449704930056744748350001995460101796361770423267649381152302848586193938404194261158278425929973457530192161184305823204485987174599886074360336246667086296858371848511326400702630143875504343203793292734431808657516961120466051559767802813346381477001647727877856646862138392562488952749692849834475966361806346466483448121411783565941479319290241802046056789009536060536305554804231141977587198822221972357030061593157728396086223527818331546742545223910776265560477194142747782736801197501660983571643224683057987931394223182804197661284742369991876873389407055425902314171513471082132657312571553265188670574873120211166102190058691605283589943928848575193108305321720601118194842742300534219964574344544735763502037924115293012310463498894646938669435478550179268725329770105331380780764496608987890275185437833941845320008168845837785365506736762459564140720430974082356276744445010874646808361185111562054454282974380803396124162101613404183119580716145080907505883624653231886854970695034492695261384565325865457911476371250331044469341883624206349821544706686741881602296233467497336667896204137765161422328611012963889676061208019792334006299334843570687434533167240683119427579192245711319552519198893414749969070945208407703466922997645054760744124723400721329782651093150440249042676842478785973014674476771508746484445323824819100995139899570230616367841080024063766601954578907700075923318984420812049529424563260111090481878029303399754803147229989049842008161715808886021454515025088044135829549743941819816620851907819995345194712727783251081372564494413264126927543524190681312179276463829934054271418623681525923693468516331632671232700786998599416954351511718111710638456059568904823727839592089756782689124256128304024905734917715812485357261943578082704227126092552287363030119710647277542881674479827916789900215470868795754409894092802548744726650552426771532947445527162374626078255467692834471930225665521016714876633107777217885859950097606091092891318117287354928460200423347020521551779183426768399069901828386768916892477016325484328876943747227106238974603729766418480179806061931349246554700248938664553910850900446255995584772581874075292967698424861940337199902419441543193132058571949437641945367403241456980852721257658451704509540179720840781468633830595608565473009629051735786431779684552450671781834344326450770473635613991346069675643723574999650860342618721268343188573241056595643117702163977345980131697920041054369176421146391412539003627967914011025638383826544065277536781928131649468473469027861156956526737391016191908147691432269338883945002887514129994500191083269588251776827397339879765634489786528420975632732940645748140820897359243931461226287347853164975293325568906629068234769155053773997832219641632643446560249782846476377376710056071943004661698315982928996636923769952043811809044519077628186265720168269388598828253798099755421426505530865380680819360921109179310175045427124916495051308293867708961037760288719144412204898844157776865982639149097807321073460514124976943838913831945666682581500511867917028664191189330593933103485031102943979649474881842087825771970103428368733517660285323620591936269099202618109543457118037096217074886120156788861630621153420124163640955242989109359431036361249739768006346332790459740652455060668375439273277326258376569071239618454788364356547466057219419933534471039818860269904201984510645585267219898649907461597074045539310250471914386545121825159339071620592447021410976910772571544139290866953310154243267049483842148619467268897850251924866266945285542727836021441585356299662959085041284998596052177793560942532388375453777153838604695433952076531864522489773999345412171731847177771269663070259687362426833480814594538777337746234865883589758201455723372521884680397814309439703635926873685498827531035601649366836276773883633444187468890021033338631929901078930390360419732116212628428152713035439235668728488989238700397205790740027446537159812129320947752909128821631287919106226791790115207380480672294396013773951043045306110468184215972489234355104904566194137999979747382811449500982459080686323579523414452551038305956098887632324346996951505950949817254748745972214593917602790907634458598040034514538250814709208840454580237341117833690942414820302293339919154545491629304795739984161647256103800968579667265408611416879251518527923731541020610029419090244035674371655099587678045507505682658569388152821636068293253844320990573503203173313414975648843503434894126859041052433442821211543985861015625432593721615906703289560567634707093013904189396095340048048002555963560922948417664471152121602760099350048491286972942114283210179280560940607006692680230828303139771880456910767231732857139846710518011428631106179277290247629611528242653828498614702545723820649091871290887118914697083413997713695919653569853938747278710106109953432740364494576816820738378358694906807739936740474415553280183221138424938751467812013378875249513185172537331784400394100594523705330894818322230558502156428679729968466870118800951244337966163993605570254986897180694310427308207158462075559037465696412978807001427398129502031140932110571179751874885065070891867080725287914164607094247025648352649625988859703058914165982719972271390962787848113721470791237037359722923860292953672445057926766047303173596330764573210002894049877473840609525339007986824279015677385244666859651382262875734817813434109137462814603183060495722821062139253723313871312223795186085631839977017026811601869762398863403740588760444309776519741301707709775618112916686738853622607984552235922664961557307640725433666633998541637990381296690427277056044098679771644245495075837427481827470325911785312475091058859262353705248145057540965094465092671116260336910909578060774549567126020078189345085774165114803108220690676585223386934623398762602450519022034444220349833614949104033411615640373742490394729438551313689456029818099852384051504816209254057926401977979632124681856466058660521871299654392247147602013739102205649072996405259204234518111253952443963201809538544841822755514923031849072496022953928285106752420276980228833650239168570809776078296431283207999467914842931674437273286832672797025767506046252261055712066578897486684771181971134047191053543530368335383482077624004279221529695599146765127044818144968291565097752596625253139095798046133063408295077443838753088792171680786854893208335423291821433167636848735515708017454254292721658830731575548285915791993326295893686301174044637062511482112936765217902677554372529007511522754131379130639209719999691757432988715591137004702795147275013554150164724479646322079254046314689367442374962560912207452830647389510256710029017093391617402647081297959271246977641411177197960345415478904178162660094914951119835238585882599029043673695403800251478019695621845959467578618529439424036412695874852691751599735662384613259212129221140763767023174035626728304522009746171934079056972873952227564753367936663223232671979124689542917559882973026496446136372902500850335695823716552636923418174534466541698068092468547155331683693911347466110447155900618731485768998662735134381085958036401495279576900349712738392477480850063647031129863782851440223702974498209736034394727514148607973718570356423322438349255877736114032635784460569046701716182933326554704379833126982778080033346686095694611150686351839955002704361723546378513192173929908377304644418731253712553186891848629908546945309963670547398417667176847208269713368969177301318405708346345750120307025701743574458631805679905689937658771071411664761222881854581152329130727816804805167757752220111313609751559092599795675904038973308821093350238881060720477173550373226545083788244176618423649486985035149886105448886845308842621281747520105648164871006625401736830384629594576077448456387471516863468944254833810856088142980707029928603632353087452204746272441270413054580423075819291343425338786240858924220491715473836543698478465090811450905783599237674708888231283057870402101577989703165164533372757411126372549263822177634511677600451775690877457916971624931107794820839375826471457049856711043836327341162262846458022691448297842291043816437885666473829072250297991334391541357523395291403819337966229477582345869945625748779854639914506186490920629586753909490464533127172257206146360345281955991018475228091543839383776958353219879817795870231086641800664980136030707991998600674368770801310003763153741610119721195866748054230588783789165043716966039269362277547883254247417676394337812971633618608143664384028900826672581521434798430233839196879953838252195045488272235632837934227918575980428774161011573800372931332297564244482041391396727252914919334554678970400322971454322157120700051183019756252202292841100314740327265596849727845667539129588766451221727196406191392133453034265738354107011278875997132016521610425021326594256827574476449496582190294937876719348740258102560409015549723171729072600625272809823537460041937767287440577065955743734325507185829311729968458796962472946314824333538537872016016365442611034019023364591932472139908005852856774134686931283886552936743542565306940445658390372250618871915203332104651075173032476828994772821872944926947662066210312057880311089713136137690433279044332557260094063279144163421722758651614654832897560142175637970312433831058108755712061818379360932232222142055044013769161191908406250580591334641736082380895464422223352023107036719491926487825696306210745302956422305709545763401319924583969038257179494049629468037152666509689973874585968525393526368496524775339718275873490861134330889177773427019375552799091902918030472231185138973112867945256092282000267816679580904449370578849219050402043183878175463506919222235286854453299824916902659244551619425032306171675524793097387319862872757652369195380437555086819533014234978826252129728474228507727081676844879099133760880542035203695254956380872896957502780953975049472033924002304049715799255438654737087855654320381372115327015290997158169650985673225744222000162858979868979084923646131370584975770830377176819984137681332015685390264580917792746679516976119224039134298306533365530582666816182039598456055512361811123447446904435055186387882565045428017544362348215768503562602075545557383094283355425474007749218498839478912764726984413680735965405955794062007570376813434617451878825569626436740829381058999704643690277870833790555331456868435393519539671587008116002599410279315226287200457859128805255180159216722091382507475307578981870273097988536214745323164330288668712356626353441140151437375607665260234440907242574613073527664366479401234718105040208563998173367040618146908217061320616822881893115111425607013814785130466738063746763301382459002693434282763344896165258930647045842766190948954698500007163805038720866905331104411548009631474607672751295693023992055305467050959126409882469103404902336951485236929216447310675718076083698221190429623095078041870627720067898234964237775034178905467040110937374401523296058826074459671094221703742612444197443653030857516277901551781094187380139821327697004306090231586765076586564432649157480757273480226988725985589435231935202511125296075006431447375067836206079257265458779360441421121116677540493693644456099298426602028185945707515304632010485914909837353488134054675565446428408409084870480227851414598967577055417862177591551937568084534004621501163236137703843468889903198078986698891007336585036381293727180060470745727009763672123240799496967874879778375467927938984742310359538261057666052565564299699989404409519112822892537791979001515612778777012479872354262982422050171659888245284100911888219373716402027515816265301990608091781006039090311206218996453584769477061039731751944752265382162321461360720861790569219534766318918194120215905573942950691780122583318777854844146468581420036346057058464042804312937911842191046992003173142578981224976799877136669823934725973297830477417962281624620878705311928970272078734360670744107241671169900631611160937468607395311013441666791347170866044312289037453131534975778292779169633916716777329060598671670822831343388582626165409313967418421226575688912795243515312978819893494354000353806653369263339383581049479757975714313271510886492523845644475767208853641424328733672247955192591540019831384840592716745815730512595447976530405207833801838646449037757292613777073090136905066657100116128474593133877670030716068143202970588541387795341690113477809318698609450313604306703171545765495782923877066625943079783195614252477894686306677451175788388261125755799880976683679491728448825385075631543603388619414820213873485204593441432025341526420616665656327064360819470617885566961623006646190253387921182619098631108295427717443541920564130145325752692638289323065102441946034074825426037542320989795239148790075582712953656135031486953144962340430448749382858071866282121974692782612500570576920743897909303295146385814106623255334412990813722459177293664949113126981943789639758436331243671365406823815573337050409629143051034835622058678137906077092345177845824663061616005000836882403840931995278130468771181539074354880885051848365428910183503488320238823372803366273231810710272180683033641116101805379416608451820687638221830143835981100786043830794915165354423317223441900377075931946747189292121804344098122598410470524964910158621151895222426816739206478275762435138694448770073067797289584229239542829770119940599955558627609292491685322680383466570316197804091658949045020898430913413725586126375683409201776271498950328229407017443420548553269124872425913134426193463447581016827183483305555118113678559834707301097110958492544351247544752398063166555459501636944036597690293426495166848848869136302819175371917909391806100283563667894838734095925482775977443486674199506749148844656770835477078772147616640166910162961058416316734643554277786707427416399690930935752288845953660206767044557590438900336572596575281044893769392150457743774236201186009734978790392116818194418039852871182035164505384358927268056722056840170333531246536224077950601555308764250378923410755251074284230890363852062039757128413543799232259282817904608336400168689981758332136805119201926429691077485081675065336613788215319278242285330538456693678593670517458825060866207821493166128584714993124362984796580716278321238057281007980438745625689965699600963732726884422019381704189067359024182188243779662413902587566278915730003663525924525064855898230890785609364478862493563578769219911245790006350750956486449870489938716629815328105700971718677233263428596774523435285350250400642222141997198709182397091111592660640763725811552865154287656599397749240399572206464245716367773020359564799043329355590161010199833068932669801733261006403908925120099016772171273490639357289054523132561688236973860079335961566452449140091291868067873362978205061835027343886928790457984143506193792672927891829712295897097461599053349584661373998400866567357337604385215996304465462235331667078681605555042897132997408876700460892251471569976964926517305913526373876319092824943062346625332475521202046450261506921432187048449482878765787249367418606896751835770936504450985179653607811703020673740698505655353379192907688205434670946189973822624032507513921795261853805818915206850415933685350412267004459265554050899403971964637594276718365197860482652529888421628780226560083777270060845070035153671350830104941911187195084341678241764798412937293663736109865561949001604598952339123414402955489843820540004799619180170434768066288915452777146941301325116409703594220356621072861034729629536606747444832675545520614856480656444893896472222145479905678409987137014226495521692228745251162298650096711552255749874083780677724200728904154729590831423855174774754971527375924952561431147061066327119771674106805351739656192768254963373709414360303542265390186907134279757549754899001009546168337655977653982254083719621373171527790940943057512430602175369666525765606525847690411494535827177594608388720013392100470005769548721275077248252427601632688145773937827692076271001580029370845960919214452756943532085180027275037403533780032541914709989906472420119172797413921861281433224715133642482467148560680591528627669257251338557814838396344155647935436377635950623243732556241573375607968189766327180773474433435018760718715278158522664138332713557861016713456338775769516461784336057062068851716937695652063450657088904843352121998656244338705961101511855287043887346796458767185211720090476270604142077133956215980515363567587703285463599348786915990763685421047047939093835552270436456134322443285983910674057182024687539181231897612863387725748858380181892760553108549402242341199596200319034621892503399552517095222624176087875428938771056657914436127161905726956313055110884848484259797860211245985530025012653001290864034465346000215087862662868190235177128198377752297280810904743988625348683162147542572437045627759656194106604873389991588886534090615737078886894854030493882172249966156957195277293753265302173873365173017567737433454029060787559372120684918084156279779318412965092188379270362346653503596927295125135567141043616812168717965114831606803609747346947505813345063331334013605998650261768259057858263929116399393892183862558627458111798016880171247949503976838359677060945391672938004509840620246744680317640120132777108722903960515186811519038452213296088452458668289339555562222543816301449862213599479756044950620473391669005516074416089595612762164605273033011730132442960307021474270439730832479419862018333505358779728154833221809692330591030890391722836122333319880617716052524420190353002678336046221383750575421366314552275704789066546089187535071675560585095802639129451344821542042409069352708394325173301767128138598732677302019998227105741296071967353460468586412432518844800995360912805254892347769777594497694527921531680343919226279628726425451396090652485617144646676243205110669261392955079547967575931437531451683211799396353757229544543303052632889184025554144296250490436581566169853191654965244307605025806067565598182096316106250084029277448370078176483860187582684144922604905798275877685111306605917264888099370932802996784533238892524216949025910400155605268097910482786907810421680830907584758850683848145640209227842230470729378468039836232747306862522397853026301033185451267282423898347150140993568405693982497706626400307984261109820481705723483117411660110523171791427650232164041788055913862023176683508889503885490230174940586478244915535235400379879325983204682914512132742853031891787509587004182096094246837162060575293319770315659037879715292901579490471843667295003397372551137080592505219037000531913673249665547593984959309650825144132736756221586296352653019762960912429980913029700168931758381378678675126501336566956980575487364932324696176950791774722543187585626866778934863281353539101170331550312046729990039996260521027527648223328974422170279505530177905136203716085005035841860070239382737868169795517408116631510630272743264336764399676212103923366045348241054692223694606286390631780006693010851534732931449745448977997113644450305833621819078226939004891541420852081596188554027049373759336614030209134314908899267678845205359205489292996194207034429678035496714066578636141242771556146429642274878310184410804395528427213602020747884993259468108904569930373798769353107760790895875048871606550990182502643330757050755617646029855853993159999647687287947644663392428481981973738625714428644221304103942042075513683884337041096362098972239739878656790856082067754703870628560669694057761174785982425231008133556855394079759071621647373840543060070522355900858774257751715321160346270227942829646093478039718842376490740419979810656958633827720834774369099730721207771535275114801662235198412204856809977616741431084861055494005081450718238769655196962204948518465520453099265444070034079827826111460267355594620533115660986132140905926615101801784338629410180827600351401466445064346717791368649224025055033141394121740969356367690171332580343210530065295859654186064721465812662902318636827696034828646309130075552910087224003308965108325396357042072928025815748821643221477084593710636499910488418906033169530638542350710031953380825024729743046174884095816721994851510381961326621620530089754424195141613635397757576032524955107744282490641606314679041537589927188370022352562347974254405489048180305469950365907598080725156878058406519309886423093236295904957213552909569111568630062596890459426153592035298184764948777591388448879649111436228743514581756316698208985410560624237720737629656142057722381070829647591753263439389851278213483834050935653670180337951851205584325276432525277133497429633262337597954766537473508828965395668055040979104065142312907299405884075633992091933823990705745509982798192319707816225741537234403678725200397707174870755611290222378310345166755031729584606518833891303876345308039191223299230369817075385295799585440519506317364549447435454116622065810440752858369978324186435681852322960052697200202189803462419284460957505641779162119778380536786338603980800388643826555040509685933292711068333866695291991415982650338278253664906535078158855760210923065338150473369008501859626543692098218394547414243622000156325078564678285079964781798255954317783451341825308797972657782121867869474494236805601721214934965886539108310921876924003236540928509448047068924375329727953685423818509180995306408059864894062959662639179806352228407948606582862068943940038908399247327686847723991827030918281247744499906292330838691299720185530909820100799405494557558686496613951003282925050235815151193669663514024947917878298480164926887374024646041366235649769090654795432575081025937304699309706269832213948314892074312618233036674269952289226335692180496994865289108330769701948093311795808245037363077554846022771465348299975875123256880403876602602418488468828382465709189843517214886843838624056292561792223866580904941648256150604950093642068091117757058387516149521482571896301069867612276672815435549146682538778030066282969219046008366872190688573119606640040862714417132919881051167847447620030765754544879256333081311423274632092821398665398730454581046116438931093138994285246243900116872186679589868743114682244137679856239694582469958516443656422633264459336224087352027619488776846829497290131675135814781987272466081759008145339984598015947849811122634361352335084492047969352111234448070527129399567939728972378054786647301289770556472020417270837217075344370314062696269410682481498759834667749409654558052954551882689265067282370940759202331277406019946532747527104726082494790887937185126250863603454513642439255875561255188813026057334099733875252611741969069140180469931843332239564753439372495830665315438341489614034073510731544314532268447601789668030779773836528959698976908769036987200428577620405235958003131734695864325982797088509641513501736872723891898436426539002608915876007654687322123216576326191355241381084324477452541007496718645068507559240301623827324671586627404773968030528613975636718736310638805005738595082495041936497923390597084408053441586260320647565860128847980498210265142267309308231966511992297874975399209306722357621519664999540164750564689593410687273989579413729591331641847493441491436088811982743318387486218509689638743961630646376447771362416829116411829778076926239892936306850187210530294346791806189310826760483602861253531081282304197301476772075748586371903469407643837636988305441727473671825066322147368447266156336296068859867765072868780518524308280097163009986074866563611262420147499962368663025433949944780263371645105496104876662194853375101001700009260981346908097131266420056561290249259760459414886437858408656485416416763519666720376654983804918266287977279253233220181658041896742417541861582890880446217218287800419619851032630135893272590572502188970032633261491448206949265951259168858420714076016373071590822149164894661400159381375808295457043256492711576195185486108090199075412883331242419197011809405275854121054517635580987993988016719532213311158424748274335065384279629122053924194075541500337460605206803635231297386645678986954687690206429983247543188256441357867077473130492224299582943217738913873168022412096530017616972370084619574383025906160382628280667600792824127779884881121385178335266914958792802628961341897003912830520176372321803575810807001668641642030457293823862469863148811629784517984764484032318433997893151232574966083473251410026970956272954184314822013057000915392294314528149403943559334156942312987987583178098246195688278818709978562121492050867511870563013026049513921139705332264533551677816027354851244852278529766952208637484115996175504553553148152429575088387063317203898973176494662202681622640325971345887445086779795157534646249290683901366725102106892663620594892905556227935816393909830221312703205465183451569411530093363757227507384841410963560492601435756373640752851857621264080212944150354147381946439409081157224991600261457266684432025399835924009424567556813689752249517302462102546484000730700790448024097459308191516988357049495222964757261634919372636554935360295356616271199110241190378528718408477476045957145508454192073647194771807889864332411732171306120845039825146477445528406708719331115028120343118450100542262175188168839010087771971117600086176292540098278306279244961966794530341281305503901104489458720398278635154460804631117744495984849552855115176906288064903697631283172289553416410815615489360080739090806662088766780142003960707017196365496106037340905302551818272324388214489424722216922787904255093714014187816227757550172874994386970463647372060045044279087343311988557277621051647232229911927017939594474614403689754414366224819707632549470149473565518761304631645059009906250671090429281195223559706250570076789054901935948395078818396749354406160662761401740965997929352879933797162790425988923557588424366763344831227207114849770719444809472710779901763042905455037164540768418720520967694886887424904130313380567676389176999605251652385480155704419684483487536182306621472306225383421456519859494883411530911592861243294610543030303001084771624872474532434954631480610961974973356095231956567888878733735870298209910642373194437290127294919896659847003678338792903342323640827175723832111912915343143659591874987496577464071343613119124000455997464054594811585210906429426402077708396735495747258162730862176451394748565223358896701831216837339089251339964075373530977531550105304263477813535322804761299452926224644793469525126968980810972150446906272955809175130435407178788232408000776601898149293453387226479701860590231874469792803416843919881873577583429515968803754589049702527931594818237090419480993467378538898057550916876764156413023996574840299228447228494716114317156460173581802576259078540663096903430048184141647044541225170812443545508827166195158151557709369695828771741861798879155125440405687405804347689331702488976637407771184114702676921659942852715973117311162956613079348736712842590383166112747650506886376709534283927808195179533637916366418983771412998649814064725015040257636438918423351433666056335524779630308621440353040732827801243400150689432282116271440943811983395443937317355961498668979609955325109093098123853028702510102220534928667245986708233619368726060242425111912483928398912666796065635120502750718926855537286782305899129408950874714920540944727237741454315118099296834741140303320635121870311894052217882263865231750148765045170648349473309078677164315928273528968125225653074429021104244846834271605517850682640020286670905286476697647399313448756046578263390906377804831635780380353609657488476409244482795505669574010165717928331162337085220033717856257954873631284064891266963459924488097634180628193996810122868654209871279122705995209811797473084013147079965815995607216956622703353316128914857596321237882257134535212857664237282469272871865534952974042232780420585942602314240958079223612100566274119722172306729882213866623635597917692909900036547701353446574277406510918713151781149566996513782808807299663146238917766289724498760978645467591704347125593909316237741138339511337120467459437784032973113121076371498439867363920249812472314156625707137987738248070017519762636536509964867891213037883898846781067995849848279618122714725375148242585433265676110268677322486497028924207538308540688280608633886550169512916463114844530535717554832107018183214430009316431832569873453179853455045869844484365019931749799003878147589304472862971032189575740350769239818632826859289015353053612019581759269484007979156578270747382628032407304729176009173342378190264968216782456663219846609861208774718607651617427064093473125787334968341874456314130009113200302211389031679727975268456569611322763369058227594702264585465257896643114320318830183186639792091818636583352283581369970844081741867575755571699610109685455052542063437807208924734564942401437447482158462051284397350125548732599301128917317311837441591139162793173299985164738719817734638623052868371034713264016131307791566882789376439037606880416263719060857151898894089873041547314298601095177428169042134256973302186012812047586830282634830870965887885712707932352587356227628225054035428217113601572158108096987454141614079103855154024382881713000401603032844195753349275154841188028744404546722493629456705662584286944204404542098188713077766800943916047589341781585035780963616768400877624106851820127111759150208897239019204541025993426827619834158907071076980552262515001655212788158568167142434635788945384859645840317523796557536275896310612900802673990620865668062575572615455536570737286010008558445476792829606033032798559594131192174475353700238509175387636108656138181956193490997732006439734064162479363527799844797732635335511434607615544884830136728927036433766338904267178355621498620420400616066349111034227220306630639812753930922150051686559502488315045428122545844727275051430710953991530291116600603132131230848733140096275254053671001463214683783166899113540026226849089995856714202968794523416003930964453391798680209060502498034205375898292966140453639348443603387355222158178314628950834723998873637743324435040918444818811662328298999227292889535979761845103855173764643723266510556761870808552831070279435882014684896196668233928387180661630940017237740389851212716895075565875572126295555475945778550711959266342425671017248466673889476237255582278676215300773538539877280871621612904265682101188949480539677506193091745566880363165454076877372915905025913016974296735270705697211006513322382434074508474420583135110166939419455905156682780364645892831835350884510064463633659113261682323594630026490108887636392888139189508568996722240394677266404657679892956885303043131723504606988100926919548090353423723014786824011693514898752810517282778772937199910044709754559541441270365808915134523429387587483867894628956629497746533235750293433120452886693399375458961085083207162048468930289047072611798021764318465047808597411059518252281405067934864289670744936642087752820538674244947098909609311510724639511291642760135622019274889180994631597205728927471282893666987865969765543766730463353709581540585577644613842837580278375962270057765379359908292241936964945142695510296550324226952388659606214832804741849277143825866950728527447711966660403701520259636160484034618877870094631850695810689197272858539282725921782300044233586330536350932509700402302222987423799443893588642144099613367571123953951287529451052418311195552650411385796304744614175072426394252941600138548579940896223061979528430199881511553524932172505470805623707113435250453935570452861406294044641048074315767229452913656371403246436749369202218741955757567314406072635162257508762206385355907768479944469362174135172142773854518589697764324534698075180185533800330277159462656250342920617481558708580673529771376347445026280495425923530255298797941003293979798450994825578609032017477206446681307025628821674638151338593513559953486055196101586832046532695733433228730839227358197285888302798345339562162458106460612753585793070664647214258539431532980133331619789926102261873475326829515792017970993039158623833389261996623223859407311901745914199800864884598417491453134052614462907620495838133489744105558143871389902192908856096067023888572219749741757671944611149818287699530480619441059644449698405961701701346014353198535471656761167668054041960921974037030395987216125352252241923262300579180214340938688096016486847977142976452619399240302944755043075982921850232849877778100844615263449347471880922111832331762438281293392177021329141526308860019291643281418604097114024490126421795211088019888530568134862565503329199252255807777626118610085717606817992088846373260996452167612274880234867320480716196823770719971223903438936595744579236476004499567031750182938318998109224176106370170188966351980213666148863791415303091790200355493934845734637930092519750542178991064883953095619336011206259916709896040335577458731975145392522594537156568859696135894345316293767323232148855111033947001653503148847620367752732600373084769603196426337229908175131030822393020753792300474972404685525320812485340607307789864862614731650935315010309252522861569324919254954322301098421820838756472277279345704346299596387188367641160669576994145854536746169786581216960088054024999012840335460214740995139643101149505715765863778967839811362355432186837396694652336574708708155732817148550361410763352144779244554546001838997435555608755333266628931262823252896349330930888645446093755513182411958576596063313678052052402540135267132329256303683721402941291641395742175941195116549166946157333864578091398756381422629737669073063985270891757686940720549808071235933495112225029000814228474560688495873142511109967909032546595252139619992773099348052952836462473024918929101587378457467333658991294757622302088086961542890167379984413911170368891020967001651439276445323509401090432957947645465949241112494229009185756214607826171933573425439342705921136661818213388057550908329209933172656836371262350908426046194824536891980404037960727678654088590992858397457712909969017237066981934279337670056657121648464061111069067967642327550139615287876876925704216281591696655000758441796831072256794997029913733650976165004521121709005025551489602268075965036636841595575769370409331899241751539429685326849408288205554567870969114620053597503660348996011153875567395371957279118978341873422080355880431223087777119383018842450575647452188782682142319039086582189612756172554781170902457229899602203366671720975552786401601221095282211010802827886590690328721011998260832601275979879572996203999767641939725598932714809910795679912859767098787233832091442083079477539733960722473437124932790485769000275940925873508314503130257362522612187863918043004022307502473781840446287143349121605976102298123913086737941406376693902013389411964117439099388262805510374347863651119969270508005796933850360140249490319347077364171497265176343695428523052223846499427796182601867777909049988377519376619617396897864689645438151840411231093399922560276220281845694185528129628095485403863109285027562881398148568002957409324693327934869788334176730191343167568352710139129448621423224279938066736106551829293202105953453736658397842141181309712820734551616514057008607912080187638171485353565325456543211873459154722035601926519247551230385380713285995869199743903899944134602814445071501548759097873124428211058916582702759743425064661849398112003105414591611617598600157262988008709811866597077847774342481360244093483109794379215687704584055275332203495393784075240008994396374889277181483730322131588256970925531195602415602544986450756560668253655947153441932845645777900765466843986762812609321743972793633654945886226764992803352987385318495802257812856860193734150846723702213541356145337566587762053512081318012508275085149879979053048730304061920843485582638013244707211371506112373727507235374563666235687921357702010805221110751959979941405432249178151124251265033436629577417523071056248054194161410184825990726018078339619478161372847163462395497922425429358097207249193387288346660382213995767978852784437647703004407841817045217360701290862111168924280316078573992987417420828190482899536999369557357162401478574769126337888358980590553081336904155253511654572887275417964454994710111313749093584343571268233604851417986184189586629471267213054909543772099458890919475883509871147662040423840957932759571175222238991034415166936659054961827755452745944268254037498145200939046493229882988401964879101852800392252208879957814410788086773120235482755488165553854044504787694782833916391336938642736973522832982507726814645606552697544941418538851352799876688785674268252230578101686751411109679550826292807289629608589998962481877174865713771782339952645551687694800932166466153932580995080874115339567068350775607611811644424099936588911563024740326145217826943863406922590253217597572935239224276692406093148925447875322837542952713634081211043264504690856064032938989853024656817716845554569764861110194926386550513984868551765152376145273041280610537245408635114584932184350357804665123517836241058893689756343649018786668611904991272704455450204490614108848351760651438600027516484829843509678483142405065682233459674791839845546695581322059450322634487904066682915378415965747039362642009546981171796429664950801629774806974563626493231787437174550419196699194223299871606070833629596768834712168002696337283655511782937083887544953200543765165971522419260538541904755205602443608773471667035836074733602102953371658463167657367586500942398059099116309718654735365712866116426966813025607074950314900974975592063172497476568614453586663817695708017581630906652101536327459989796934256498729174014178630623599439042177836490063349987720229499215198364355639553999117325769062258735656477894802436458855960929793742652496925826470832229625033344843720897530198989692559843983621608388807272091195850984735047870238776468449331032441233110005946232178942379071214962137711727971405311741031914861261447355849826101368296054231026210706952217753359686543629317278495533453585540901057275725725885186957203729791682397850065728696492361311612074890423749443914322362666019912059472025859090767379715684967159782834684547375922991655225857288830425722061260855584115682628972987106390869635438399113542486073984016790058739805023917996326927571286263092164027734438462022800154346182793901676196572703242039105740893365222723650491509147361501790104401365534600325653729620049375627103764388735459366582893726534518949798257986006550144089731879181806336788329491970716311212959650882213153283921335555357504450375303064554145844815900155000161592952141185162586594975521801656609864988633547894664642018017352022883391661971846222548645622022183723345564577644037832822739742587886176407194136417194253862677131036583953130267367488546746800808237229045621468458561238022166468155684905124287426771475454185459042020756611400220727902940509862119656449249233003231491416196041026742757469576049768871164202608046376093616091079046585769626220791232678447944360346565514608192672647788281028992153433085428566131758226540963673955195466081292212243481450022180562822966180804048030021726595131939814638386079672952050516472334224055227561095952834977763318860531397901440254974991232476846909293958931696676885281727717240151542680938143128120985262691440614856562134806524704188793542594313562673976756605801498850456682959479925650835266045012300838622311893233919305838623726524215832152703548706390385905743220747368479026745493047531119148478133291887764392711809682245857039324011925528652090084574635940460449521424927519365842737658051166287401720066884865553505506556957168278489602089071649218935570925920257354319791108466364460871528279545540076745791869760552463874416373339653293348955464258742277883849452354234307653282779848550594923806153105847183964622957393307623818139937652377581622952704868710595211868778987854927694240810469919973885754984461341864539882177644040960328039636117490620989869312096747673680124191624477042021177772738328710877420000860389822395380279730928687635043740665047128510593655772507261636009297344271252165295799551173448715627863779055260451230154615604700495305098390601234308513308594632591975339367726188720522704973048773292807422002593050976162714861789951000889853258393006097589853828058014101963416971730320635139605059045581417956773375074810347913393623243359900960710701385658805245852921803993758130119786186226525069533254393951578738605222952980291184998711262753587593917810032200221667370309603998963864104500546692337923697297915537611582851010396374143764733897684518321005774706739992016766442512556623185485329565983721494851442976963180045440883795646033959385566229738520786289315169812284587593564853170512969528159775668166330571035613390334967503948390550009835782979515823190266012780930856136532118611888279427275224979316427235112489045590365860872216091109388991442071527955514128932853476674286500026550816461735174337363101386457196798895990575428943063701050836049719480244793304020621395241590369696609547726191572600383493888458216427855298041752259627565867953385471940826286371830816760771719899056660049685420985424035784066790416785324217133464643296082586283176428929870355056821195186946908197230792457514448317171919541497717658841736667903365834936380930155825156188879592598104230642863212202319908871988053676624061072961751006565251491214725470737017922806505069227281127645556324087176376411638349093853056730749664899035799650666820799884422953026644455094518701453410050124824961322944801874665529617551965131394538388520301721406975098892123982131535759444912893165798100695607392999174573972283310149768993882479860365755753609312217029229897836658506231578935530215896645968059700938528823785866530641793110668965526139606710892433753534204657274265096681537013661242321409576779511722063550598803742874545269592628289001689623164641284131675247882815774409717849572405112345494097407629321355567386739845082091142100938360264230936050259920470896214293209941226188690868689484618157220042497574352255036762728601337893625378037828619421677869095612601780893723391346638930235842288990370525639859483255504708612016295577166121779676192216798965712151109467450470435090026762655718933745405131582123912339535010869277842748003088534155050616960083731347494644713301869356362529595135637704083097158482831151258070936680996798264682644755013253609772524974634205196361725521770864511094253889662175557546386467502726925237232921797205658413967647157270445925924463912576401777264622362938884594748953143422294445752313241379888681257884114262506984837262770405629041966267481154087631343989726054624350493148624820853007703820191223385249565372696909533447834579599695753652100230676435536581051344334255589642595776675345996850663314704529114448595009146605713651905362907051387663940184809170094210254341254783162311941719010619977246556884553957744257649381752195529605110591598181175253711760691042039699701666544747875056284600018786127189365445362134521735787829181728430155419799372993068080675962754137604517239549016420535594278794426599046380601888393890512187776503200836779526229882367287634608761534633237618597663306882879042487400403314820007517651670195028317937880261864652157252840212410021389010547337846763902249754508487052556100245206949825299818339624332997987822462606928385762149876685919178908789745669904147241545798870805796635926943553361914631138318835835136708148991932706101334904615422717693271130706398985242609204750236579338148183140503706050097546133095325298954274764882736801902238057633784221178132629711317229506638031190397294557763036857106432322671351434755142382031090535385867547385931573386418579341559611374982113129624221229062692422291634114126304220914326504442914442936626847788782077716969599954878836620148639946742045605534666721914455301442619824706908913341492818163334537333244050615402719125491866120370550519492387377496141576754830998859467946511349335057899802291016548988915877905895071307236342385232766339848181670143263776750331918737461624816680648842534606806456344943436337691281212933152190844534913821194513399616358494446236253402300836510273312295927366413020320866097827895998670875259279448996540000807055225171939897132376643550149112544564114635563589739676677069808587311556561870742653087540540804240884832742393164626472176575045402536941515471820499349263641017183797159592195595721519100785753867831193254751907212925196502450404662178855838273969748391059762718482212750396794855424286898594512387249376299423347176824220709002711228410409883793307181243323922626475789454351266827252437743609463155141462557080675304954399701758519468516157423600870917244720890590429328737232066260246976538086261576846532203925107772140188298365147367335472590838348920716253484157195739708149191185846985393665075699995812155893245151513611252283222733457079989410277464054333828141410057587622005024654350379907218227073311088327469867403268634934217282313397492036297680697170680195058176327915995707103893298037054834973151570103024900848911013378814858750305906810422548503537230496769065205610385648037611266079641979184748073739087412013597142993651441967507107416788432621756864130292756063522719244868956265227284888350301651627948189326387158343535517140564712847819146164322807050548328774931382925960820626001878539721510211582352969344186623769885972679889446653272326986072614424351399649146694706848476376950466932275212835858781646759644728910356322917142379164849832602732582774259924668184656022611239254964425562690584215335342888011256347358231025680625252740515977941406133061552032095576241446040048279058556260813695373651055297284461356724832318280812707086062535808153899710789452864930996884132709890143420615182364630546117533294049897536778216688983268233722912320280626342961408751099242779402037062339832223997268247986060923747451875034252906593258243635863609974539210672197559163232441332977183424646368077361672415567484621384403284997540620024441619312789997289132588050075065812761441183926125959517831223657723820779977911379882856987711396337659356491623989517276520313279470278482207209715780319472446159499717728052988366818472989296032177357934051951088714997983148874173302352942825770111880209185405668094448353059604799893864002089516478241854352748098406515851717352272898172115071785433252909022984191737823417615789094046363826614377304176556597848505003536375286789607484887097457624347365512517356952528071151472605745996045288962238318520266373948618423383444266380127702922557929002605449837843133623543716830505186646026501447196101834129551420508781886481591968000697434540152621743108743557276802315245633993340647307530190916700106983689517227451073732414808777267576634546948903264927857400630610257078530187566154832864339448701183784664816809429450620150302192681716756137982855800918487422976830735689940793024536960700664643642416957547916299173949111432383062753631526478940617810998197975350185696021962406318682487550144544750084792084813278560016979034781351919733551345904245247270695068209091619760807221984103079745901492952566875024738502895138748962170992593575445752822619041445094762505373743689322345622580969278093409553386806949879979778419437653278907413783444321512906663418989492380707834157240923250452281540538192628976230378721632213297382018540015181435852712654229195772225479607229452104036983732233685266597166216914013142022249389753319273362714846937942168295858092827824967164119508337740463207297993008593998106335479840896654263510254409896692864381691532117502682766740498646068635469359124731396358894388830698128329872869977413822316496567695318883756637296790229520040359815207579459843058257197934042277783491364574881023276543526188997950012709876541016362196047305489423112788175210448490665117256907570994289220869220574945178484190881598007976571264682069393319892499121553513653366800996162023780649833106733433277987953415266950161729148221517857089985600129788126761710420344281213703514190332764705980031071634706751986278477589527745808749745205947050896197432048023739301661524945310861440622721167498224821114039018840809539700593940097604263296174174899166731792336498798578336094423191571831623465761349749495737649481289110884769314627633575175438244805590389690175809955793922781754414697435732607419915221870503633212532041545698399591880434746691678126608510340070510551962281001526392684880200692715443832159776441372829678356297544044921392586330018793003495920508440672006128145702940187290092753170903328759136416624605876249943124235040323109829801014386030640582078980690082824885945425408486319354342589208037570023706645957135654677996366824930818982784627633092260472856130892119480226724804384249421173499695364623213378563127980825551844916262625782497391581049537767794055293833034412661227738046152704686689214590930238013678671004050692723337500330639242135399475442729433506316294756946847744087798314619000709822788204233757664290984049470145779438317979094485577410873725630284428340796038964814434278352257101990478823462231326782378022882464795445453791310186764100405666623024586580349617018813225830133193396713998529452418640088822594652892126351117251110050920112477967270806711349535686527120462464976124083301826116043398197538015300318225828849507234918672419460863551960618311854404097766232880767958959501735825518289545336070313363518432053834746194588543763035509656084388400261312474213083349640399610302030700459056787571631078622064069484006407965417419459892115551903673382662179474397722962122804709155265903454450755052750849312869857741775978956038659724556120067722954532307874370416203650445585296605752436220764277697457814537425137100695754463499124212062763221572865118282062896372436042956033348728121244723332600353979511170091628108840145087166684805290339759035618920245119502168204938971726993282001335168344230093659565261920571975025654511749954410381266470952924461580672799800484519391785423058701645076841783370820664628752524675317187017699659678652045757023652391698677767001322770445415834499931780340493447024803482064853155900863924193950066386167138300584851059819059518385569487742963275852939824095024493088346934522882157289976231243571307544546895724997426456308982053160730191170013770662442318194597836058421747433045919548870689212573033753383804190263302338789031295817450150230383725748173404919713226536866936729799488133878178760265843817036516927021785128378170926384992881686444109211632893082820218010019837992548447404374058968426301748703352194635969348374645523490302681562934446251397987824506261833996888034651781972953502042794122705059616951578844767542700180059164521499413125540618335318930709582750868312937610534585087123288222863477091316088899962858483773562126255068825094987753436275884103490395662525157015967412813419708107358918145111659181476032357026246680340415000966604161477575040804095248018629837889451701800513384490039185385708306862439844363202041285996929269855102467559985636849046086886315782489525558624790268698491457475702611570757611577974482280858841719843670668248077063489501082717870453007072548050014185836267849709488765489410106620725326535850130106346501595951261927587668104707747944320207675845598332774952806540653329327964753831659077738811220119007103053556557933093769248469839070984106120781024468743389839315179032653396779518767231079014235420032722658066898220118889640554255677037738811651277288106881167339597942325834262685177954144424491620996568992936651296310018986090338481450734865138089405419727699599734761625495398139443310273213400479319998232579606140832374806453364416087257063109110883972135249346642995952399133898374561832765469977328111784772293171685679024958416600460650344187196485046897127076902868428381543473858486469561085021263095242913326618563057689251923868185664030094929548808029588304883343084114735614228813930051451981325484851248995611817818568587493481685639401620891258708895472609531135597554078268624588091286976816302324428027754953556051078513595610718776794478491803504481958396412848525058593405433172296655861543337797297381241659597257358419198140324730306988917029990355428790909693234305682530103075316268726655263873510412581254823146912243503160495242237959928235682875912766483326020741435603760540043809783079116328354308260064006108076336041799001736896414734559862772590735711404896213522559856393720896047544405897216955536013885212316176389747595884237584789181181857791078134690477761433297605271965352509124628562959964864440676129617544219619746457102949854012919916617725512130999092698234395494605541471798850799938032185943948386392525177972556867902023259644981198899612037799827018300181087326484548644920896687376057848473264864262027602667335664292404577105374485803864011256954971562815663197889224682981823325060747960932436086061570566356960044927783500527473544209377280564377608147934390433862186866961615396818669840885542216689610898912128987494985144561158404653691045488930808838000958023863440995676968814610615310466669678556273298239131392275347007007615588586971009665273310424811573387345210052683065549962333823016994595659328748512703798711804321035583304091037035310953808446423751459080290317754668124880869019345812570826688366757209541718362287414461784738007553616748304319136823904980081508174194780209333340487133251151396636057561046045408620381630945100542336980801659048146320374074775457528792073108953024071806039374594323406650376872260101024453784314044600074301785218832764052221492765758575854192966097203232163770953007269635293092115761221297998919261206694945828462751349058106598465106506957371436465182307305194828271280545823018239841463768767114329266941035417604094160856691199436780855916208392959932933683810395357283185832083547221568506258858975352048806680928936923324699717328402153995662830126030696342608293125977461809840415622128787533715997604002261136179338331830460610523643054946276354284489427053588024013007678424223170680661983167504789913536319933520327571978354903629985159646233331952631021593773649153257531947999627799465153983250718889760516277983035211962788591886426308548441443082540533811323633029648044413436530361545047124468365451661801395030662999730229429302482761608829517753967807455451422772423848344488700543926131111372268452553049093020342340480333594780867749521995142703557627822441569230615083478225880770339926175225993503358340644772749376346840514786672197089876218733979895995222176757764881188382279020388819032455487038786628317026235247592631295254138218977283536918821795231659217509644044403085391475384774651782895265100122162587177999057709590869054122564596887700847158660315429404147708644605262575003792711291529069333855640648808190737560426733311050572206415366804189301416326381810544639901360492226831382240859358552855076298654960341163901278690351426788023271233391944927366323113627116353473139495783170373532531370522711654437701508683476649397895597457451644089827321014284677389268333658647790863378332220461820113380980747461385812968568285481850361920188410011375403749843071230946957499285887689177111179005226717937296748331205411140840239950073609583286483966921299902930796110637625138220488198071833097940643955132009004918181110119040439417387391018313682984880595076202665211935549397456194566687888445898708503608198345899979744761801886592168886473049650994618483412127107895645715783103119425381566023544875074314834676391109184310283348678073819330963959341210953042335963906506882592105001847687035106679000519027350503719219170729104939260325729431121788288113810030238416718600213509502418001940058382255049894383816265690370349431786367454747104855262871098624402307530252540693293002206728470337517735014341457903139630925660866126739360812415275418515940020976403471545446423466365606141637584766741300878775380527852857178406489522296448390075539216936045366465056177652160945662266152167123497417121057318179017901277989976817627875436893592851560642969456365080918017421943845845479124363896471929819710115860083208612955491533380408345931562934396822289042884389052242907529207628340444276102690056302440840946645935981735579896477195133667606289476234733075773924000170310273407566593238748505262668700306947386459050991044832997059063988409950740193878617663511701912931166241360629885953574161407088376366408131113018976534047776081704220096543263795172124567704302462884985046892282128175445319757294225770659233618806466247318669524930595876731788840254855753753553818588435356935991246176126096956284777470827086405588275958849570970464955595539301328232027222802587544942914526776640973667375761079288704995717807543248618865302192608748046901660434324955791134537296360742583866515657512028641794881826284284290658616405881829797043807610003815495071723499931083613413393263569411820811881680459218577754653046721416014345012994615711462899951386863978783706158099731636731478713079646446542849333543083066051593729647416886797188544989785615091322808444525990182984583374011488465435292464731351422074999146419793849832069686983056620049273493816528352423487200432723425750911305550406555549110228845183893761239474489320878497832067666173190171094076134279079598500850732384722172629592106673312258666806184212487583854497600173880549551417125844598620469475723084784611348123326393702015733946191790561690196706741282765300261089497297413505727933274583805803953411814836193688459997007472963021269336845961798833113592439813976140479009261263700750252763142588874050082916130536316700301213632131797128247323403625999764361809942516804416944137254532950959518341201901783557647992800763285127600499323135010958642830191892930257054041185848026519112054727408668918185003570370371914457765667573093282907755223819647598428882857962041433946996735709561884426409854199422258812558414752212320236263388837955129276846159423045488502501065730089211082695146363015985699328158352870821921132692922936400430564450138573308116216696838506403185285522879523338508073912544948227444812421358972851308477773707825788882840499731703690833982363318553876360935891574370377294871400308339815398613246144333420496057755916227132377159571066146665663272791986614223110855703095159143865620271361860961651330279177681782061862710844145482255983332945882597411115655649083856689696806942825344671582023258272311857767785954599673240709776026654606273811776093207365690447657116465051693354536861662110438447440451870403941130768425719282962958187257797662855809417539077572009683427829040845608544171222962090407728045733798616969376095150017429953849045888041800159843651787359924410271087417637372251103963707899670341359114216792231663215568126875640799782787296087384278690722208371243436776002803579440266705959662921505715812313982683123477648418878759122192179035131192514449664485602069031977290184257568715913110080631839663867023692435684123049781897591480297406085630340101025361851643657113139555760883118251974185923592492861234316721166830476009174496884309728668198544130785727623632587856594856742955853292677553117069317778734596639778016599418070656956419824100286796519577990612474908213837935418877349609932670588845882686036581264253706947779021034575489351879572151188358986155520887839399175588762214749422011109300143204893017905383350772843975327265912025827373523984642563589634343497930708595074932867454105494148666556379804322094529016074310039253405640087635227961913774129858372536117240903866358050764575481395006338901052578046331066977005988529615218176042538770668895819787641331465052701752207646943172608437562784474333527782639761060941381400270668842423816544218878540681108279033993738872487793149529359597171435904174667953440104435508264722605075396725290510473910261363513007385959462104124924651205775515452870756861692924994831818373247628235077816561701604306890354858289459484885648428492753399115163532095947942402111472399072515378139286240941093271011659031110766638682138383699927832166764395478821524631388107831514829390476900658786419389987365648868706115026935031219648759229310604133136545986854394607272738178199152786807372638435433733538206372646720405446451604713758285540309279256046509678229466104997133036036691940327945687724373075191301454477344550471945491650566282423570040386213253837616425539930673931110747289562840535500768122223343474765146733102189798209443468509395640082915849387347267835160481892951228492299679610136638311935810550260872527408568060337580130223566035136407197182641152117412139053591987024984356828875663813058911297457983154668034000206362437252605010676435212884606837729415917596241017873039336701974324145671018351819030598359838955397296662132601863934098070233080972358962516603448912550826180924376927226254884197641049861695058520875099967578509065858674705709881496293756424062531020394612300771942124559202981636434485423590753471878964099273958355338703234255081087001646451076939695610702707179199856212070722717392948169293673310921474377664480073212146219218335827567502533826959380593855833133593902020782631396362924306193695878639273015373576361904420492673634502039906129182121326525007816208610607217345200183263180469808772708728917984736617615947551917223546295715574367051461064764526422001535086768999605622867689663505588627685320123697714106841423482722900270997693572584997264700896302515964123597342763883253771621502705540458034564465435550874851581847837830140707903006883190735873981947859798890697004380504424942532645204804354378754282262850410186003802763793665284630268989156122476126362761769210420218005560840260013651190693300851550511787410125125084515205181840455030259350897054868386689490369619185355215712547307752925943558579931387233820417942566616561910761325148875425139214233212687225650943844224315799076884485590988509724431468444573971084813999135448901690133245591933964058236268890611360194052311275628298004149396304008228371748068103773859269035659170285964960423840238681776149723241747239932033394542325628701504374942683118585604820265954646379807104682618989929346082250162189319090890986373953624648496123789110771830538177822328565826030319536748017126371349986625535522447136800039658958612574355060447983108501109576763309333966808770556704504269696503529749927812301820233619858726533615250859403142973187585199456296697548906627685628940724529063611419675409247351021870819666998075165892618027695265696442981646379813239743301454580738298203924998573812351453639908761909691758284228812525428244465221899076748805808825996703200674068498473044871144529654844646725629924352729833569719819125846361885717224653273381202505869876285971324095450996693811894061052815171515257449484806099908459351768227326682040041138357625112083239228762432215389155453833902941259758357202390952774489917692857082153344322527681800477749754161402741765068983463674040502129874516117339502424319652595249587623192836067197893129285285016636706163000355956755679771202573911883420590063515513534900117571457665369980996973803333634511954194187870054326943116546511464053635994359291028322248713701311793351852316644084623224422870400545796880103204405838747441806729750135813967694140528929203453113374038441754871553043064214752752162430040450063807922598796817513574331562117473624797544966561976609671985720096946200141580548865168402175009398249565511952548171791637420220255924163773312640709692805037014162997950902665416190515868989022460017975550377313690947524302141874203921500551719951736816433092123133248829340904279771777734414875955733725066588863961254028018660385152304673808858168695940019081859800906482913334055126328005389984744405420599149781212343015735235821355604044796834762541487727231196809488944631317023583876098996398724639591645157371937690046775732790962976208092740014555607681546753067547650355617289425717604753755616935708433275983895238352426575465947436592212698138985194542585446680265439127380440383664436523305673557644326282275959787993024991975793474924816061977325501232982907660695354498200371553116894772576044747436341158712052391860594939645100215516066649970392872776560771058777786298838855227189219000154930268583616132099190394006570156451054201161628661493011301066807783505837561079613464791289707811275013466390745868760338482818223782037928931763812089260384187439952923589107773270751113523954977312750204212444032545271064604612253480528698748574051100166247925625033451929297297335143869551996531338799999591754859221815556052753094944665111793113669320686765610903934593394435844428878395749126173461657884242637882275612826016649391210745170605494403696404970808929401595960553099082028799874963328051678378590243873706315021249974578523171615516230178871989785831292257740135410518114390529441436474559353171064042468887811579137476363677468765405772810649529288750274825863286528138085872384284210143197674059636472961477968208659685805364116861502176898345317370060588838797597920005136109529157089419658251862989701764199911265478771218678442539449241920371923579711171967123895413183099871259290801860554000002380371591517249178289378203633360770415488339938920329478093299190278153774086350687314116866922375876082306693992686007970674955647720287715888550327054761957009060148789027606045417153306963539369885983065754725650059143172593043181135981187554929684092582532537090144411261441310849295688873141711414143166516917871165499100612247622947813480681723837262036838187003158204210215197788869092640932478975622534133459018503690041000872499562169651792462819433382306225447596381516429291959371236170345487237297584450761894420399152859590297392219280500318489732418536160024563409102762296832082400713120696280581435728720888152049691422457718528995748216761971996272336634858666122680390051549413499756593623353845484166379508921912959160463238593484050187010560158872786668364623890169232456171579316075265956422944755169478651582319558062189243437125318923986449649880249000922509481064581203948912495545708992373610942754313708235840141877561764815374185453780336283238639483919807386335431432012081087742459681711612652492861749579561789820239993280666736880112603062538526155947639005112926899046215657610383378464798065464907228401825501576260649975767408174797035245411104094744367854313373899408071935642187249467282215579658830758268293676919618032280616997182467651107888422425507098845221941869767696410232289074725536745760512495055802411312387614200316885545230059886816402877144994004480093599389916365940057788473277095103670224955762403481399568133094877160474303812063329586988668178216466625109615029905361243671875799128067406717026500790202456345231369310736639566869596052774115973342386480478964738296527901318362143242296923494344664903963272989451676597244513208546904668113739674524916317403597846156922123606065092109234386953476951367440339254543663082476161015843992482411558559975511768850914773778087157560248286590061130780655565238325518109145197650861965772177299609864138358086904462912481535618436292291226697981203229854299825338197620621384728245480434092968895721243125666335091421969066343962935005277047235716257990842000303546105252254266539203306122224362898657360341706617826409798720773448651524725943059212584025176959033872256477771044658379021376033435816293124374578942724603020378293756618137235298464652817139533982696804107457697328900673803237381183164555470392541966948124706273524201640731359551789682183236747302217223010503362273439504674056197874719486637860833388408820304058308894653704343261743800502866538330468371515122473334151944500752349121395946431663468357195388164517616416617314188656530099925094005993798579268660381162096488330108788010443035760903622440105670474628798456921126328266505745359982473557699361734685517881276794441758077815120494867060931613094463119553174426566853348313713073007446545023209435228403343075724325856649527384852371057763714250655640166187659930916021479541889365562451216814136191494104569726167314446551456414790963371447669738495731855083638676780603562737810268652249585922529452574076917886220858245500089355296960049163890209091439511905911606912199545622299067041203544275965582497254157796746836082900243381117833318553676435418457520964459813383028806758408910831983641652060717767650757302063362567121979236419675276682844523037722739652871229918907546540749902926659985909071679885030858520750650815911027269520480962842967513563952572585302820312418432263725898433952305027783246128270057902359980342401318120303744862930479711162850758819531917869889189762066658241229108326744932943053820107530858569109586705249564448290977670292167130828980016060196423626230220713019930403967198671478583392249930985234377825823548929380924100959425281889257860190930796559468253640210117384366892050710969520596975370489938859401850566252352892403682882483257390173850623949176193769939557579975853353307470720016304871278159884879084594278561423188165190033941666141098776646191335343295410648329788957920417125616900797162670773373811364112631591309078773585844128605415899998914136132158336629031575115216253487541223721731459381711638636348498849758371299032871129877449261064730077758870188126404897131677881475713869919898916731816942402197866009185894519823309943326607910299729927451074338700942279635598660703021205700039000951297244407895979752105277788946480900877098170064352421579131038918627873677612638681140803823875245965247694069543719479176571172082270635328021827051197399265187993103318256425633902556610853989395669463953785326238267860225657652623407272133292491560713566915285805736750275355871170328010319851401964402130129836295135626212890032292734767585951363007524869782202902003429209891480020743479926433751462381199899129707895099504320195134106192242310322890828598055185965003019633150264940438064754915469232714874830813183519543375120206722866624570511944388374062754318078845925271231104988853430271399617174890687632736384028522374354432105589018746367663635858939812427833043348723719598298656019926494302083910180096435880121993202910198030092978916289388324034723004523093119182157804909801474132564215033791244323103358528203806683128902347210598690253211810763738707483278211460549865611967579870148839466286132757984174578339420659616230441128043898280513566477537655880757360695173476393307191005244537880837027744641010508827148730635262230626967249302081545618920415715727464763544010646511022988554453194891291493578999323098318783000121893930516556382920860675487098632828079126253352307882725864244906018563971767351695459263456372568461024200115778957089716721755925372499499258317583658915221627904297546461374542534279564257050338692724971728386468274154028806179836147729626126070674229692733380898718377304903023649373616687557635385698367531299333063563133771779111560673355081520771020346152247003774880463080709972289760806420838744064304650862293177515277031209342199363755483217972357375811507706218560564752469757611750051718743725928660852577753201561775431756585817049330503182362476630591987347853599787724016656135719806402144576770162536374100894754065547931707361700945936254518980256819171405170724962644088705207974985673335140756449583769272451188106728221118340837187536892899017388868463328301125257659660148883977192396476699749582947588364635329190300917439921138184113437420289389843114991467809158181117801514115199275238034384777580590788858999911121269210707170922380295171438604259207625442697256701183537421488877201212885969643687732557447881191776357250130833037050394534513931333689508472110798003648276365785157165046876258271836857701523391488840928545009568181435346146480774771451295076918619281371483629199142517696070066765080181549768669407605713937936464499771044417045545840746276361826784492611069758506570910767189480709050314150670911041440893278748650012449734890454717909786691549970597575307430470724040181440495212522630628903386388479673944928619472430061880891779045605776241053921578200169768076191648302471057870759827161488106489288165873359612496280633340915888579617730264871279277145282703574570298060564881125295558425013753707874983549854925477321240942289642497555801370423739000174861460459890686747779792594144751300182333108765200046211206997363700522252334573934849319372706465239359448364004329333453494358034952935961482438155360730810472287345965118284089639234856665376834573066489172327764148562309610622484823275892622537046833166282576527671733595517189654149416094647924668113930224210359245388654266930418259185828250690248428878037637073667651740496859765739645581129151756111345171163103696095425768146896186174922806288216248227545619867424654623595053130322152160557028667756031510824757850584677932285240848966344559736708849651579929230891701988904876794953028971775151679722364113828466720550302519079523869501835527051558637524991271605990466842059710155282888758041400254434948889873391898487262424746701418852797295594653983197985021371916273154159655224926765230942969902858309071639200991693948529462393754444120592874473032573978619749238859242590240173245419061621748037585322285334199554204804849618942123872467057530605048032346726440207843414837143239587830363174656439764280259954105386100728643751425286988514234945004263223134896501296379139151973204250134410929283865736650268356938291492322322689183967118093651887384323095685578431411715973133136867351826409485524628644803439740932889200877770451855212480953266283167961057081736416425160606571903171726368476495194250924353647499661438392867669788242489750607886095917869354903961464849437798612448672016066110501465647508944609639255687048491955383257194989622713878759597568119284555795921042054025953307791994210131088175788001819045591784462816699639550604866152124933592581818985614558428267123375477749170186846659874685108240433171191366867997251148219521496934373406498339445856254143492709873127210787938265330817271022902859639387500235059880618241905237055182495320287228222146211822564500118057341351481785347746510205904371005497988514319229566658765523273494832960924682039172096505865050084742467320685411762443905387866029596208373434879134439857541518473432638365286780555163438805410053421988166697449129261303631777584332067559414158939040738749332230490829527373165918160094307766588918168681833309444007424298428887840469727109238153114108878711730509136546535073955042713215380352104154616891614885370907003192882733686559459811278046357954156275383591143736672948086408624176379080956781291528773095084112956214821342940191246569195963416926527185220640668477847128031969883123360363167993535417325255657683344670465632604170710627250424727793378848698888472842577493840296646104792786251870688404951375023408066124835438145800118823063368476513608943939674193399024953439573098560402811134915285929553656360231885386890663725145385019826955973941808250341957952848056917462581917619792891589568544840472996790605545175582769298514510755144318977654163331433540480141333743191572088648335777439791727500597846589259853223383022811049546479073199100085679488742439350754504592116419588320736594147780157063284410886449184490963598589102015927021180873580737712426448702299421567104090152024105912588207285803118710889962210210396955906518685005238858140777244901499498492083376629519498361042776866003425077300430531784351103272823201792434817486325734270385542118194384704841725881338731464841367018432347537329940921706263288712684914506456069184048466254887683076527706873351809303055190685270713725235497978300837326039403866052913738302256233038125724833571425310599146014437432730525674808065973147493748498832502841061684496325855004048772754100768847570697760734591279069701900079472243885397408260730065800860457476734154387528250719720318839722469220845150082537803129921395343189785891047139981754176931718011942239125922557646899050465764114308238342618011619690589986197678144215496079276145633695501699539663060348589226878200856712219192425796316374645100909893712573172388923221202562713956490595672096543231164317852366588309777072985230454841958898480706573630127789303327901847559168113077389783390794110402862204673328657412459002797191106848952835446062073336625206484763073184111819546773421254762900874108907929509132138688094844798817287400184511137154293554034722028512061840659564190109236201705342235989879680561071421088647952463381690904220704128624580043481185066934413975387591805257782881561250229167438379581401500950340575638072865424572426449479979852697449387616858666586254467054708433824361208136114124460463688319057462832027031591627577145647342981544588672522881436847005388933324560454209938886337413578882217725349992592701872734958941109031114494542488520927810289188051626992300413033772160899800508658911657268132928848214341943714528782732174449619800160390615811005099645594227260926147033979181463160317928580401870429762862126100772354313718787295031556300143816305584377033663090259369347320689900842884417364655366803002555526776297329547385729444134371229569371883625002226301187267541781937593982516800891933883089680701005972546556139975417651277327363368674793099753029445079697163712202056176589653520791086390548501682407899775852242946728024867031096228909849544035296284651422335685730187993899315421819662320567551450839399518607286570730863678222683038807504680057154585391494324855731158700819930646070859866393599361887121172268718394514299635630438703780975402397612527496055120812301965657210450929625504451617832167335779146829118974734874014263171928654085391239138548630386197490093600102030595692071747836050774731186831678404310861319992831648259715450468894385391007506785937264650054700656437505471905321396909695108679549883332009967203209157292918915981202600411711505488862401210724591326367509732531527179811632371887189509734853249966346829280006002013767117854093113455153487034168779725920856565989427940363219652072845599285943166210712711930174795354181306257885670049574795261966800308516301660201598390510995877329512195628629734528980838905169677124238365317388676106350552509894062278778443663846936240246269601610603981897233537712910868219782431940460654847574405193983252136034354498504367919836154008578460860909693323452673782721412908719377028759349853469467189434098396278795278759821553591861647266667292366003012348522460072975144350336723006754656175147313138683679555864617611743822001106513866736328805063588187467691799159157245524111189416704639171932421657911262506389415364906157502779484802093196749953255728230730981074491653440583268333585034072704590272458718895535686488953302792647283900617206329434178507077753301612234169649904861817915959622474867480055951559809034434105910105133956677585295633890646756139565241055647788790825417124812024290059661206878939884774923384266445494398723302456187582930107850276769071166125684132447025811169440361511778838845296927529494277335230660877284689403369281906332537573536476545530218330746465250109472135876024989698576376892723106140377084830683921324031896273971798567093262694092945340163803398018521374410237598019630630233783203555791165307309704203102355123654131089762961797270142523493065591381973278937398284928477439744170099199972109040934262980810594545454812487403120522771244552426465297381673370503301037934365339026832859352518949256240905770872883917101026726739397138169901486984819188005182512422893916337085669528227905754624306791035360124661196794151736093243754779435118670748252310924716701687027044063734566946101695697639439905755947208288890240144103553492247157716283095988628644853813599239015337706043109276844471049551357529890681680766189855194411238814067678809321429837994754549063630586797685622272653093466597455910176207815600827514938601204200097658859517845943082480162981941135656442081469038306103614417817101658279810630457580794791089370307935370892252811646337479717445771291418106770553222642133863217498321881050523884013265483898099540242725388248006228906399761415850460980509253667887616166939337952140181829329653369264078452457002510601426429505951470691655928915539460696887681468917385413253745844544199122505623098443850673295870763890705860151336939455797847740797029232780183244507162499815672169326788508679256925751282340227217686159132281221725980469717293264792710044417551922847862022150017247473217608753064438517061613140393125336895063614489299845882838482877920722884147500868091857195952160184141101473372070290539236510224318712468183567664491369897647085594430919270417105069256100724682870822499550511668359202456633116672212430672442310520546436499117790625456482845846557399729584434437822983863873508510927326495810807424485384038876931720836853980703411941238913735343624771154389650635124319874118301641715623706539111798466012678164988647118820932035636606077379499780379993513076203028795112597152290666242170962649736224414109367277893029984844454111339148127469602342141049016701942961049516022870586222596600924243097178650690788219948099434591224314763763346713343585202506482179286157403809859596125411463290880759723663222658875844861986661699008898075079502678062644406350548441721105178413952489521671576525417119603187373093452400507446257588915661141069311385856561699496182565465311777799754780595329606002300618840789219178956718816209781458096019971118288445363406967909896569961321940010761897402168333588328838412520612305884501385325132972956431566838987048307812452344459587128708365499360217992627913746298152013458560814670119013622974828138385322366893234161498313029935788261219407897848748908634870380435299759705787592603521236288979497758123434252151331978301173735721430772495624533562842442375868505419516512859278849940591952047385886210067098702971015948764339771714884234676271465386670907148258999704567408739607992786537484370022166245696942508155217091601487360735165752137653575358023424825196729885770914327956368937068233974196066682615992964758474471827832517886387337286735985020068104369689072733841353089309963286144887369899309284651872309389845894311759721021703519648857536338933881362541908065404214406689445377633727075213726095876963990224659496837411869356120753789798099522838066236718790383735805613127301660875321490922993183783120556804229269063422914886451347830317783782057037138729730008496379298728859919285517375110450335212302537952948642537903134771458377977574272495620034238422609844327172282613210527196464913684173514035821593761705786189567463917903820907608345443611803139960647395501993395229056229041584522011608401896115168066924027223598435419261557261889316499474661677700146549887754495387557722758441761539130984692937640781258429744904567166167496961980917534973409907126075381391068895401860556575828367707128154580137087872936621130889377455650394811426808689684878441851227226761365243461782211785307438602968328735084406158608215328227055096841640078399848007806452725148778992356406207775377050064846080505357764523418479169621110259044435307404180701131003508055780750931207540151469524630214093513303977109613768898038310597734246366774962811419398204775839178865279406979989331567673849311005575591796985690797687983031469866129754226039909706261422541062721109734732308290529795068678067019368125892979243896196006932686772844677421847550613552414182361354098181265064263435339617396557145392742153871054270324224222747486350372365599039601757982778810348815417039458272234606396606041102669541608056503228047678752954178730922415229249872800110537187883506156811787019332086825667989975773449593994962458337654110367870659450985026255911782005856609589029407056561244775077290538826430813735580959320292130913017224623266326506964149034359266240410187319603374137218590507669800348165000100122162976789172467480869965561797811455615879205472518835698631500261963376407815206000695602175979991220742943953489203828993213796287005170498709648759806724155745065592729673949902544093173960413932863129186916132634475043579454019778567836305633922089577583204358242052263352596793944520362175557071622413873046393787146324472354881766238036239151113238961490802713218251057016380846720160661130120743826087694853562701106408948950350593675254848191434646048474133530998564458808006361157326853983134929366265427211909711389001725298302373828834235244375776635382177821789144687125226870471238194460539808575985464289838420813219187907726168329218630297132264456630329747589262750768332433619539369932074689451177025405153634665401154256341775922307158733615003292402324452781726980151925707807406232302111724924145627039821094847232874007936088171976049203337931964553516240143350398372816390237661214816253107161491616707362994767273072206027929504319717284259096023955533712066917302640289567205674467008851789098623497846879932095645051541543917956198824995277969648503648472822175077621273356049410538667987799940026442009099383295852707152381861598933586508952397779521531912714530181613550867625674184448422865177490040616177914407305588190931133633713232337304461963610793470930537438837933004226803861486312775332342326110191159106125469067022261477387920479320945851098360754863565463084083011812865565622027663616279574584802719735735797622222090197421317504690528031442525425079279243756119668738832853156729526093232337473811761596707688440113470509126840358399954351934192738175923974054123058706545727133408618696113262731544003992179650143839964670816166771639097304785457012141849748090938017548708018716868887723776763004059906701035555549453344640051059609899174385904825007704032119443902263720355143427457180058947022960290589797734085574655670054268719252605191846001803490150960342302327716163242080539248463793331628089552707348882310174569457106786950162571426543366194909321378595535673562721675929985839784380872713085115382934516206508911760417307160013237256621050072107864002641568888461441445683124318053470533738863769159146362107606156205676247077250446365647791475101522900361276791246776817465137294783426689786518064850331181666126011309397362147459213251392599340638837203132510703357980884983326367866416683075906216378601646803534739196852709607641579311260061753685209990674372974681835576896142504154403989522754176364191443171849612151281177151334861640063804410586625693568099331424628925588839232117307970443601570123203837581284805331007629146661030635479015554318367558063727269909376355697305937271631344329818801657128668584688992310854413316274299798108907068983284057017097152391667920549770463940876013688276694039580427860239762997329971606467160516973799460826679176748297262958768893090696785744236819543724179206626225251730452940239257642914244025855806575716625997344083616002132570383954200651203525003813720901307530942885627336655000290085871969053028247790798855823500164553085095368814351090808017174246086690391726552174264067271763650933043053140097480444889696530498968562301078262134543094357009360231360394085573452691513152591201387861392646459658576504026799538088731045419972860818501330692041913119445058070064648999844058690440038086784060865086083953699127290389029615287319750751709190564516822874290730487025111514099086376966493428538195110483811013800233518066125107776399987718342671286992430239505568368282933378972136804131796493697788408046901613736311312462538651699538341706171784398655673740993158015485960085738645235060611726429121657210867213601881007636854237269730399086558543203037440247390730053117738597352780755989857959845116044169630293179021437400653333579062727968824871446447624073741239454178019302168668228363025621344860334701507114511739191507144926508090232238728905677761042053059609416530354610477649296918664572030831413819287640909394675543531677305169797602736567655291003590186665943094771991621732331050328835615118063114656614564156916033301420317900274071376985008727457296782182887568234821154993386739923911847508008373673202082398769146930008816085677038693054893027896899114131674389768942702030870879815726566278497048969230334111321554672296320417664743346701350326986348748381233878600360165726136232494022756551215933575460191802984712602192097848640058315718834108901268315332632808908919260318332885036322482161125935452666143751263338918044586732351412029102721589006483052660685803756401200659608895693146428622376735857212903948601864449204432103255667387188564707161805565286257999020447389396822946118994692629040868091267411837470666257149267114418101783488791778205651987680721384122958777525039198356416326313475966976205148470976853839799540100265670596831863188207164705077311596954963503891206598659873405188252583798214375684844790716527924413483263887886277301407364138273722586749959811767884547987916863544778385608061031712549757818175179750935256361553423344017849298597937060456890670039945721391436326480307333781036047657922263379335091663333436202643030295893392979111868889432520374810622153153371658613010211315005961139213008757690187320379923067557945168864917640238069085422017404514496250287959592020499867067331236786487433099684833801431880320410990615360588123313253150505831191233545655969241453157781889617160448355364689618537257125961366773220097292137494122816726303322175956554092615252735414795584066976790117914241258203420937696707824249120753942441342428698867296125197076577095789310272110166879542911724718763673865978519065071826367585391325160713349709319357839478798330885094366649843565526106979277070712613223457682870129488630021098733424622161850535729030609953058221011378594728593222232209208079495815746393017894995073770197547725403617721720582953953329145412353884737981936552485980187359354532167274423876189509657176486738692586351686126881524659243785716366727392303126517928591149243108187973485614355761977583937206475472679847275717641343734373283899822694468000647782653400236201898704388625116359372738969782448582022373351006967690525155862375872726149239575802485948619660475151127302862287573378487345979513035897957137662056502865050922736997141872019581049668549998905124386894030370691462597194630709795549030627992486711390320083079563440095041137883874093112670965485815080714015607190422735233936994070871423325755474744034139861249619079210908644424481037680285720351406389792939135495419811132551291719578409764941903763248137234729919507772023243313934967185846185043283148329779014301428334984282830633236222853578343045303187474827992973699055154430131004711578534181087616687448431273336384456894573190766274204884020858109928495253852684610612798479918882912271034982121378647374094831465735267803200867262793333664158588415264737772949494990860046040599015293791518154513758794932800320485041343580788602752280473565715881354410030606614329827268993813142401150471285352518753042964049057093137359032286953539044897476222301764050668821703087925747068239530962906871761845965908393370060273908311764079636188031116301261687532603799979681556749328459736739989097968858735173822992779522068846464251153214480452666353824646609533692095836423719241928109677150957719331100092675429067748667326616228918963956208157810782717225480462925696528719700739272775058099115413920092326867971237622776991029761135945208528408667313467397410439511455214495143204940391039859570814383167257686409168154301019238362027724236015160568941046186573518778353527598782786717029262551365106100879706405745462790946051919202445641978409086044197621554583248976565977016333194319766656761592877346023243069449213487824285341870412999699936148500766173199909214144274209897653178124643951253488228845271384530446422403855873989670595811425200310751808675493551176242171918400820104370713805101968086495682934086032094746370925554771783342448521898543352162720366837679306161180554837295397606207237693367558440611858476972848651491517602080263456735617788264271150803063237327460617833377959029968429162130383292967252556808667078266940343204753274756955260203515293541453761548609014940400336733803045233830412294458039364758254181511934503463764787059047318726809414005929842286906168760388909205698893964568452963039579427735353196554637628812168306410114746370247133476824461190646146508691621506683666436383923512199534444583640400630252309228780849623692391646176427606970749402491013720157722039450332781300742391980013636664004611690832311604954123329654041851655122750810167395529347505392583939801275631174827320957413457966482387113588702784407366977383479189836277585892153286063288523652472828427249620794189599565544625759678666839458194820415164209887375518684701953077791924300385966695612819011917481415041040793157483927207132115560637171325055554182498058393085468247053634631231098729437937691343621174452517612045560405184929555537138282188694020061604431940763046050992907669225961489671138078217436220389363385446117129910315375915855756410450058505515684496626893289711757657092546185212245014217238681076795303997663521974874128074066459095135816118410147198946801865366507283214513439558130296436686851886287017045933537723219978531745932457774799642841760163834061756321603766186823420725408967166160470603524495930743073244133660906874965888777453887121910692696630703603233566946904351059659024205191438653791008477828556849299521301285140396321709994773940077365395016485418046835744075933815966639735727491646432753628861342055621544562519395085965219107135588527810309810486276458748617614200105644391681983952888113095123948823758328472541524859545032177438905893935907123683659767002896528652411369211833990558855874524007600516057024818330086747098648326691003267437320108460484532480178914348744133170467308608731669254006535742335308634986737315890416267592663680536121937803489731918867540727052987464970403273846333151204426916295051528036234634555694253461774806357492928663918119618363375347900289829831380278379600539990030252414815050440978946412570884872057580249176196580559602221522515494585786688247804913265000666013152084491994209108082250364608695753353237998659090782175539065932664743619778039460087652358646508728980928092955601386642521366815739182636869841989889713856819072274732652430197818266823441760901100512874630916731219846211050736451043274870268482518957782696930997183747213494807464326635387634308005484719935250246781391747250755912794207566748956801925491257727586330409426463381175058724437220838220671308091418330340764883884641341228976552991627838247238115148325030568182429148303552163759238205903906247004395001010458269885299290144491438712585657115406384516045743327594754607204730575490452564079417800604894941783167004447931784273256824097391713815891120444568621569708002702852908696631908545314174564973095202241897458759830043743619022143876605438877008138968851138585006764320572737992601901447260048443137095637940008623453228500482226830310769411321064051652538976858690297871574030765801200456980231313559163540989519091763820721645951521866664967518097011347117954349315265816450922259684205216556061036534990952453295612149263172055305660468538067420367266641096024958115719291312933480358462911150215874828019912917188736157442238834345767259141758240653754843694163442019834592369712614347064537278928372083262762320494105796469062842544742240425525098920429332644298318000686831574492759170964512296028354065309679408335680570705227218816477760986898282875276579428225220876335229540173668823078603864650924048785254588836987779379004392125905395058871898632143641587243936371841401338065078752519400691069774743544246558307939062305448375967810259386392958142907873012054332554583588212619248178899702969484662164911397606719611121544276505964949839711644920814824492858522891387752961655902461760292792680123459110972393171143584195379061283775397548553278908593835214825909016688651744480465315677477428828381269132646067640982844072065151841748813672408513701808426435992606848712154486787998945396977822516031605965360544306174180152983161051755259115844176702844390069228126731560168957392889930685421832265144058184952351514583716026643978262055691082735459701272780178667059816774259863336136922855632282674188333169990255869931941917098131709475856816228884768620940018562635204982025526329314536179589495459316256564672495669996615766541816697514054159762807542107904064046396475502958076488877209395555708692014870330190096494403169656579093078106594443612206627145290513400249220558716820135312957689185561310741249409014737833313872534277534136846415438769147433014915746434525422293909416883820087687503168692208631834375548603992287669337232984456253964809325051868769588662589954528516121514831995376803849558552328151093052975032883394201138257421770344785333890480471409464470735264340958770421945891941803722978341245482382318358772605492589615649887376609535905327135484740425739554125256129164227122518911651696202354007642391126506878220146214317338662849071599293224582896151002714555826851944168286741220695030579338311236092656862281196802696722391074579068332212540261808289841992733290044642004484594732461809324338511764561770454853767655407645519165944264167936375620614870542573496569145334754391833836860597804349506436668062025590861256073832263181433374251953420595959283281564401919549326397210313940096545000371496939848423116913755075078580833891271969056785622823697876865675971246467367669124161502474097552080732043761262663623978486788820728310936192171233260980235574018784537667158779157012933039763766780121311018575641072020632691100620828248582533547014392127604720003512404335128446964985119957911384624547696246762618636118485048773900317405195235983908602343126110251423809755057989618807931187491669890415524450897506595541776588938894266320377361743632196652545172499219780981993975626045319006185915810438503771564155828281003879729726437673397409616525122194338782857095337311020715776200627507553547067789300162446568896232707010306158327463234232830896564663786144989752283975529917370355525638718776643726000263238668835415575127374448596419525923961933930502449856657195602792597518171590267943099180198627678654874957221309908620782521499926140963444414272725057446358041537697216131142576729844004569867495496233446126512663594336809387634978704971181118428342791271725666976698290314537665397324864872743857151792037868597075247749271607013712764798928122941878452523599941712522136234223150223361693730890072102065832034165625802517930278278849096935930057564333548279474383494426154141812367797630736998252777803089165202012958415272032585207144643860138807882570025402795436395470726040960541057245856559720956595157177387998583409669816709801078190030228565597309039024440226719442008031273447185636196350615200181942813956971028741419411664657168271997821655954053088057307453388419166696364035958122696851470314497535604791087807833113512427042920242427908988915437673365584338141874471948827475535403457034790218026322295274353949499594832768408459275133385663890672929528456751571845836259681851543163939622757231375279149074255427736647746740752517790157535784364192333260657110904865532669080088904285405695262853882018676613449000584620821053427512741701886860930225446499299396438285960496925079879729603009106877031880940979750297283481017444418543982925132635609189571459408452452010281256930176398658345094683242166943620660461929017779641383005198854356454875267939924813903202619312925863556523753363042463282638401534160741035173567140891835465731016333597784473877930958520131875827365017015749234724480489182316504839236403252376823190097531398310142325474821279115311493611531659938152578764716492624916573264136997723103668396700024214151466867506243589755872379527523582747899180257544425937014101518358497795498028130443169317973538558150525889771218023424591774123583463236787059098354197893692055249855573299435294581902557033391875686235214410287563155214837852634957800362678660259258690110333203470688448142165129605516860548776527171747032240234760924880398800565280476731901820035502828724416406425507792595752522341939741197011476374462161696116919499137111427662980970564111027994047657983845929174970548565724013475993802997631393236379651469486681071622359669829481071582460619901105314244706181924393527774234317465512835918329957436134382913485374224213180867383344169498316358989438008036031775785051391774468392441346358579884916709031469768748980375487462039734798066223462892524793154635291715495854662378593707418709796391220459335382830330327564070342523872110049821264866177403686615450963888667001243834749424978745150409566989041237855071162356133632979831134491263296075718317389397719128897892108988346402397729208266710154081361928013920729364573797431298686220605753298642514567274969023194431043937712177368159469434519517485348346165143606900203433656338205104734012962156438730719600416395542435153674785118966938262172053592945875291627888787068412286469842145033650128251658825324279464983677577475121530390072907412336576124493795953834314917313313601211567201944259083808897568220350291667777378060339515495919899324929130119971410519448373967476619944490933507684955436493031314163546389189850968323771190160439743516375773539084432444858940484701879092376144846638280262852138990970336355681017028423675533359939777215110744952614908994758939606153891550996788430293357650198078100001677186904713862977158729454883091351648165630314562944579054485504808813982072324828681370021248874323785139532249090873565326365976902042607036081913613764309447944608862546000364120906695577938183633160343194655800937772928141397922234184944324309818370161913749256267485211542918056195072478620126783490565395213630056608094780170240356704147731361209900851087311986178073993600349307474603012030092527625242450961900490938285445972344331723987138600004613182607870441357539994944335313528501958442912210760489939697338782552183411965025669447034539173682845226955638021754394487922974292235773152766663711639053159715770792600907856351039290037517598822098719211614964618311252802099502962088495867908359963310316401131581494112486625494482980782892816706866249981393863207934584855486520420308032374546177881934882092168464735228344495953522295385032465554323284750918709806158670541327683260390235947870823489545225954435847282264909369337430473618659794135662345417051139259619340845074018542832026061167104218953513543227979305477535862919757823254831560070182337079279055240855759349776663719304621430023816080751481367264117316764470402195783842881159533064541871623147360173693162493109690063470884271118761754698244379558846623906287623313081279011698406943878562384891487976520178063090832488894045716360012763740105307943736565542950731023893517597751253808475650376448477249619517886333086201199963876360778677960597419611980692615270255902493215098427014002906170427283525723058844251500518999094971030024601023444243155772931883356842809492798900858080821695958925632943431970919961516331340298190156062285996047677889589554805658455237594700676024727146943996958032686399589855122952706609711279800853853813960189556764673140793210091147280590160167725109779613540361826098716514068169450372087681917594777395282285397461051816891045990792421231921135824254068153471011027614581171261807129277734433651452463134810064350457192976344107554094581271588580029718097450365287897986472794498806726301887876967994983059481143996889099119684589846267172194462100287883807664518009954154620658989719398479887811671196932906473812419041762533913830582771348622014830797948463147619885736771818105457968841358125256703007051959069592500924604939515306921195763048123203749344319978798533501924757507158250469222127356317757191619727134455073422326974028057001542090073160500203221348724509413053506798138520626810555549180630017049195511301708670458376409748067258330091302916053461942882806405798581184917375549150565627677851406359558936249562435505886205921101691549894798018667203367852452097404353488643291993340595771166880470009387390272037003811013776277187764483345711962329581559439364658898299832581432183682980161953397424846391940568002110998832907254181766236269067310176064696659858404955428763240644690969012355970739880241759915603170616672233809625128768248061936889429277877047953462933337310348504770072168247098146197751546041948167783731588451432962035857306019094761266452229258441626504460105369798301862130869809738076051213469746305742081057855164834476996904507975937819381236537342098318561206031203066251342557235643167785415592089064330560414618386356028856227863901602053280475878895864677390670361069235293987014125119501902407997163912263345495360537461046021737067796727816761749625908962114950699984492427232787177072519390109152142297726176119132154099986106524852154490895012667464937928874126459395853559518407057134562520330378393643559373289286481755143265093904350017509828905252787479583384795154064591391643895386694774862631715475110221533703352810564745792870995372513290397631838490795084487176378872201806039843657178069780899220875949785132546991899685591878198833823378206752332192713411966212606287265090116751797667086452672405307495904300161046028463191989390615100874132448880422103948413073906302903882837968101128085885648849300612510956205004688262094946220730622309201933699350088119568458139340153774242907255356516754903517730854370217896163212395206174308338076259165193608087985480460237056506119717154410026281207309948673420026623257415473237239939878146725759397365405975834161370364524863841856307297224142652139906339628232357428268443058774097187616253083217191476054958127943383875966615274380974744368202256994294819542573691684606016613161137331467472571927234730879055293292010374510902654946645431629105705472647054830479295979729386236386912052510844424162763354385385732098768075261909699181402890418488787831071427865211097316089969713195758251937007715816687059227043801785755757355525213084107233897413362964890118387060267205859654803415018620289228312057240600070922440431338293574840603754889557377158789580962324842811105469339121860071197773654578108055421236311125565272093879250457273420940521452568204111725591901026998643378627792146213025928388000120495854318898237373726513548499888495195239402663831644988429430475890237990523342344923640791753206450389136250172343912572559829343912177143718383953399886851194621761543043403295556878743289670943553826141950439314798359694895365176951168342197351303622151537089962590043587148772413357160086223626306382559407301673006425614371050248431545035982802733216604700481458480712606274478133425095784278699056456418113575174267959527968334954098303732729653963451194017536332918549868398159768812045029356693637971919766229686381821863560569531658326918206919022458874741385115538243366079591312560104386545278598107586939824773045217543154156463230706025173533730780458366058777234687847011719417189772530032064396581299885614118058765074329050415390104338626674922160369082214451548589029104733050966959403294453897981687318686281100906577158047613700976788476057470887279312834027576687775303755473573114606779938796312611141048361228727913096526778440286080014641020232674098537874486252462011588672606224430146040698792949780986343772275943162513990272267297244028932956131033457379118000200926609218778197065094867838618500797860350031400531811326492776633497689150127722148174450574237858478381777686564172773153070093251003197006208957639610686746942603698172223263425452023253573860660667599835717778734775022906087223078440499690282798945032529801110915533264785846579354827089772902506756640130801641883563383733765458929794923230787471003740677901809043265953638271137934831215149767693374396118093823054067855485334415918681845472357516351872932830427611106642503118150290842014133542170267816260133416099940761927092498376519624746565733285430971529299066362345252849319199559591679470134716314218469207894854092391535277997829258049951065749596459181553511007690313145566878671734873142660653098884520903414406426762404910268343558811561770959781747532686066144822475572687775421842769700493508380105402458607146971334156804384096397549159637882180187161536083329856424296157158138978224880853123714896592849386889116451825181619073263823323041610353211420566194522310421331084386931121045547841994215605446278395196043492627129263706182904393844253131160468357853410658175068649556911195968875515230799479900222010955078435222221541263693850778688206899372244111735259542663826339790346577852538341059940738522705287799638542905556928916242612484046810128895976369685952372290763510551413338018615960366261437753216396015592873590236792276113893537652124206201736313396111685874929855557292516342274867125921276112160827972586681735371317484887668705706165088651196274886510103138731886916994492950440164769810475579565720319959757951316716489925961503804619072899160318131285374255082312756037203337507667223754747581398489617508091991725740968755011322874519683270053212944093984297625252308802137370538591391696732472215202683288002942729099281537713430458247918430767557425410622980360403450289361004558995655208788028070309194521108757389379666219442604426827258674741540356961704029361416133781025588955221852541929630454409750076539623239155729572048687914526970813511122823009423814736501524937478671891470568505368344255880660959200950778447378440145756503573085588168107311763800641679496035646794574527230458791498178490151359479321939628859848195993499625691202582647978420451655919913874843509877888031809008682535010644604804888703964685275931928609892869998289710898356541421100802163547071442113628344054022474531112014553081373356382634999223891544701324798311826473549452621914636117188919746068151391690228190240952276600483503670990196611826263788586231225134535514233236579533743203718027333937445072118699570411313938953123278533858325294623256974698451910947109147214211734643998599014903192750178709934995095641055640859789776036060907840626506630346221178806294517157435078284310089228490022263845040872886336878168746916818975513328963990870623215570447577431685139068876103957814884966036549353267008396549684327614517555192776424181259442590348555717583570136464878630846873805129102370290665852299061270720863502625547969168525958985927514598459533432063916924003802580306271099180542555283312066211974451086163800350644450455566974857564119094300337339635326089179484664189479592353339700897479289440387752956255671546750056909686658857661944027791930623589829345223742163928844035576204932424548819682105705210656266618329448820857030979269113839193015086824595954352908010926388927920501577566851460461535713570793440458389612922967336046179247383682857304015476699362636917328466559715402498290421286677701285414814109841602592971424575492682211959865237666307958442840927396724234651139117539482521817413815839265789043561278280111078381914027872125374869190740811842270842784748092776018634132536572238987141893679519613446696791268543053738669868485833062037446055076815240294372455227925830858070447786949625227714659041970138599355335908730189092148859272121568051818856764167474570848581496237194265951360227588042082187069840504425973329015230929029807896452033982771967825412993841205421047084243453365509616267231842372508764638276456508310188024362927435848788830318366583939839659676972877121957789935457712877887450971673234042223084109717547438853883358237801868031359138919948723037019922372104581321058115930996932365402693685583172766442569288514907542313398852656398101975140314170548499394700385262903482919390946906228411552048406102716128830164317793413169728607886689391044165208319102869564901342043428286119403102028596547260167529245256052627512965225776588570627632592025554177084259828655493870372921005896432200753422578002562657075651436856111353688088262617409761938840945350883953417419089604598165369621697873989660863832644555120390195698866330862906389989592889802034382601589276189498238988334436724003154677434735845037201827267795015487583319463576148241131108848182219504153475497750447881098722070037475958218224838368608926556319869956602813511625607934782006830790913360707842114310052418217902694551197090604848412831414577904026637421205625329026123970811521925030081267559727906934597983458900583237555722633826210720119537410436455095481673958003281646767122060874382164093473051169609826137077408559381548012896825256169614236551807923658187794788387480010127078955862350441273868726462360854288686613313131224513422543046358735736512835248892993909900519096546328973239176608598851986716631886262097231160652162569655970531039976600779117056324833160079122381735287078382763220568898277012437356651813309463199826390762188472728980815759707251347632655634011996793367622070085973014074828609773265574246685165278767567270902047060981224118961329202192157598266790339297034517011103919553969418303648315954586603946361774158110573291068180015629423042557664129365607786157051538351328927496202451285743297711821233293268719229671173945900590993569745971435375793972703882929269877109103104402580968410209546982155841151132014776485858925710510926022408421016202594635832041685875072918486369346383424639328166844865082274343596890344168554802701109819909114061018843183010619162380739528163917009580053748009147713795005314384882436656277990108101671678955703923226396826371597508530133186384580329764047607780395333278824425865357049126734445988951504033909147065510429472594113967191015797048899817406574222313944693510672989948324099440555437115718695182418944512300166068673897896452184855313469818619939433686154422972565811135151324128770251078072058783084039514489363649035769250135567240924710398729863411109795020105480924028054628712670807239019052746374632880167429071013737262075394790606108626212570061598625147936900712488129253390991138218788756087856768612223065752180328395532363444875182448934774988605624488703007386524900934396506246583953248491038246599086036358794076220017885730175613487516120919024390241021186622482559702621081675111795314154988999284509774197251151799431392764906252333204134045977196097828901977345279402562215895655304928211322930211345471984735724402625646917067267006871637416100289417897544978197020198386706255911965916756604913389796307383222472057084984197675187590114386214410302769803824251918953219378341416253550267396171036494176635673917531721930641746562011522388413355577780563373839226677576949962844500716962952599489180176956278674214935229208000046885200039393502084625733505068372621310437239867656977677732749852820778376080533324886306748013662529738371686457781059707274748661662678914119709485739165240111975641828836022242816057527866877345827931042414435721537896672313095562966825285688777672319059601984358590400498704891358778658427183720881916603396573990409826751212615104498984016273884669354129842218270213033916951423250996420995334482513562501860591840182384199741319201927748525962645467587765268661379349113437166984297374450359907503616931345699336861856525673351935920060870338088592683762259638718062814202680608193612648120456408378996181795362855333049921519211974210273471113722097389097361513343013045420770639147299523612482687683108622882100527418104132914410933244233383534317853994954786210905292347969896372039835390830634440059963902064089658933168156485327042546633747673893581355978536637831439436597445377467887879942849760918426650899601948022415305004206106252920682914761808888460970726811413742646344442829690110415344174425545633372288229949744465665485254150449435527516775258689422421747359100277448556493730569160227896668742393736887618851096059869998857233237180427812770947868429395901284317019127860558104988576696231690994215171603503401560081501069485576514186316541043897830193106561699853859818924256605752299937608435118727567387117431987231460525362799096932046418594284681075756842128300576108927799147138205987537589436137828630810689500466966344248586815180191717778525433381843814818579770456223213609937566286467713708800309701917013337368640907324273056571025866057895825612540643939394827094419988249644294063846893309399209091951092119499281310282422023350548510798538099178779072117263154628246264735611004344657456841426835912250713052170141968593327860248279295865988156645721780996379796842841152028835395417291178509887679873703139275956209392411345838899535531666423785729325324489542999726237565056022219793341175206766518733351646154280365980626311009681064264719757889478828457923767634422932862359226765187308687719246376802502751136656035390527117331297090326631891790318122021209973012763006056027620026807532720356999043800052342694991324898437007258211278354275104864106340288318088333235787869640491399627543278877603961333251564644344053729481395836214937695692904443104094475804271337304110743695188321780807868073751524035691473684527434358346700794331706631850745139656503839597589576732620934332801461923027136798472136950520371393740291570806321295485184077708520742360839043772663361345576022622358290886682213327176803887349279142155329320422457680382179372234891287824807653429841043480435387505431013950951910192640308338958509633957257323880220028022488180058731928094840864440307933210730065891147862969870417100401906823360383376557796771840421222174895803714179842381755230670510798800846548611467011572227738400701799962653453682461615886213195498662551259952001839455789119246859841985121768223032559307813539731766387141389645456191165430538307079151252553389435415623949215805613322246700000369746946308435645929439392975007554126186446651262650438704166024617710126180031686044905904240105914120163032602439374367618203465664629741452460818453038606641907619020068525948933821977013606669791268354532088318958193718067387528716918849480282674764518650605327232720431224932676493685779956075385743251923132152165321264260011973692828477015046544534596843290372257503314965176862429658255164962233909156124644586656660831317162848622297540170228854522507632938503100069531669041425546168989718721003938400343566034430564361626943348277669585337768245838275585322467924666670707817988017862529729942516302134495686551532575651916439233146173589194180633247883966737733289573351178244672607351502267704398520217341753596495035127911862988541144307600219045212954278377647303975373453091234440079617387153595385672372332132764990217150041762299245367699539544535017632886589520112096299714386690787777141924813308696089052451944815601238017998028052145823525781207742350875607673894239937764457563921084833831768974256849122372701655838321431764101240558956413445771499003575145936752454393385853217807605722153781205032277032841520191971186351722097105992116982163545827804846729201472738701430872000435495323061796746260031079588219578731957386490052465109680478194835175723964287210007095255366710935474224032387019348978489642929403175005282564655744404656984436431225012214325246744269787872366674491164231569700653035570861925978857053036070779343983494303317442266440479912834317012058924558210140028584119574798921835451791999128305270251348856623558303838209350556346810351278373165417814584802175619939200739639386299639595350486191843841070438020675978990811749402210826455730130075311221736890090915417730459959347225661251289406801243812120287782598066486920724716714150783060487770733768654067100673915540579666336341339201879057555083906685280799250081157735313588516560690651639454235228544430252473680628723616721203480758183603572159074756920099542179874910834404479199157712593421091295526526954816815462082378647846503418598867018598251390928500199247303986899984253512884184320319602784255939204903122752977543998928240771429685554910949601640404431839593460564068165031475088545193675224680370473452626526308332507422086501616266350892193340109128947390754532068895081088289993705899947914386940686572942646208023623051163841035855275480494554736763416036953495653011065212238413191294426451784264439628882975201036504673477186573871042615878070779276355287079285293216160153618887317062340987084966765109465648577322426658590742333932359140421440441631075403407609458565398878984154597251167220887959525005550729665839241800103954387772682378908218411474951379502080101895417645335834912417638309513010198112458271454556645692523604377984301083507759065207285857630485062195920981568328636146550457243901591424594945367165059011763765425772258868097121704141113474296587574416147457510246074223009961213295111995628933433497799234857180914564909395234575473287894654559847964404246270367599509072715788637055888238957095055818129975285254275667883528705332535358252441038077869501104123780908099506473161419807315206050269971864493113663984616078471852713021601983911942754051972906349078572477971503426642485179823589666494717451554182025363931073193047742130651371704015234036016300343464514938498875280160652168186672260318336966611589307385881259973432116599649665050515454495172898809803625712455242260364070625768904000690803852638904998667019591211767092687701450573235748228482062005270639105417304218238480205061347165484342020565159088163761074672423376801979695939487359924982896531790636691565376388543352470749435527374222205665028838414322038173002857973438873993989083393298603618605173261132282482549007339325552670756018811182010580678265615260735568302504703165239639301328611169067136239655778861063239359281019441031456235809392660248977169847137704313719330109638062546423514464041697387043325407927778256625787709303981113863616449212992836959710882750846672041939266652124562220246985855704185439961776234336717988499151235982648789883550577850551918029000929260354862679598377818095754076668410511259329036565232711341851718376604440170551502359266486764756366829829795027977792293861997923613238042113196986068320362527110681245394556529750129100059689242052266018512845553928527785764912936288751163457211318686637211054811129390130547870548194137404474197691974845824223925679641436650137940265134458640326309833339451327726702896199130214494564530024980603018757529272573547129182113737266836970745851511939978912522859323343573862717181515622520992958910443219797278019219275703020823284760579919429550877381631692966430266763810537040221176018128918819245021313881554148501565175138182443668961679005175193535554494970810105887237692525376656793042354555849694227829843447556821646520545697306922077711728933132540124617948517810452389134449323337543013526944396177562427854151596374822404566187651138116592532338757133639970268197238146475711291631961057516747101206213454663022142807192398731611700405236824352566293241725727064572359370939765349045663601642786175588413721450427439624734612906039210793469794132939929173627743292039065644153720814990683994274316268867416575521555143229411729769131743722521548322462216159779625510800778945830191905245687823143351629697060650255672008235344440907437247827482536394513859244455703658572378118189044156968872112566240907160662061220761134491435159083701682402374830580064677195218659273762350047117221068253386488144745312198948797004786003054417813267440684656017854140307903381350900819564665848356678556209913801147657631336164505081202383731488417280810425601217172054310451630472635364174081088708401250320648224135527371798079910396490968404760218796650818527702958502578491775626373755072441095215720693311419435344163298016569675335284347949991593824726993086289633142110061264472507651691869392956477043292855889500734132172554693421553193023274342024359017970856726797789559159673864073191308887824771050961704067683224334252300414343311816520494621861236070330480739653585900636959287687302162574860834690255721288427894165461542303145166665073810865780925805142591636770001901336482650439600124062530710937215143380199648790640617862967860831913871074203404403757311082167091717476878258442916529582689540120292364982392839912443172929688889571188571599769013302708766508527366708905968329588617667069514407549496388141246472445368057117383909601751658691965850305357245572122144997400190296602102073920694488035967942170231448476341022213252458291199024750750393956086555632872533978341375432907715662083239966380412389257917449396150297617464912380531245399070978225583383370049815684339681168208105938618818043316245220608909112790160485399127109199211333876583864002012289411853384876037833637905576779051331912519144349845969217216405221390076107787597442998903486936509898901619028911792048543896188526946465433788382673449823421365736778712521555420903024643807597449128498655770099885963814164531879185434596192924562737941665522637578857058802783128184849467677653463895884845067061200860042930960816499079772823716887233394127841906402195759149406091850535876701032296392201984972100247912599294024273466828484671443298315211987890027913841288734106778479123746875440857816438754744956196948321883257204611368227089320775723558995860071436527830593654732047697150204846377585956285269320594748682526751134229470073908502100607864569997078770168445662820215010503662360776176797926897965926253171690590370829236170735392586247152926232572620581337900963651897340635489410887434616685627695198917243257469049515409278444085342410319235661049715597986270374268130519734822133359228394021982710240886952329617814604030490372555518942059502487573166956370734552067129923852454615670006754028715434443990303040255453924615586200753135190360886414688157584441538758140057547714567110904275976367584416176583259319804787350128949032305606117990253426610968639895958144956317074724068260149263327631260198483664707294564554922962016942959450331519144699210660037357264962375836090590643723193087738946517014306116131471498719512139465256420232606457418644112937168627139332202823115679329597337364750452875620067720319210149226761933940143600939681018564802731312838160945785678171172526094689734642180715250682548848115310070151254758044373340739399039788748131730113692332511112236064561225734633160246407126032753001440061586477374351753310905614700800331358532865989789423772294489809168386366449110651194971810875259270824687533123077034228418933498356225477868578687809164532628056959319743976493511459286907451332420949520738804381654757141105455494296674595734934586565524678717517604514732323285510280090262981256504542388237252469641133317938416459063774683986255267718342489348872303241066412423025327121970587495225056551657018945914503225905435480877609185292825447473672974827798278966812067229231585635075901264364058330977181346717658311983164518567138683128322429607714445378387970532180354870398508434318516041672879454150595054605145529860146777337830892162267486190934647216846975211412371003832280229733657669768059846183383632892763553111491873882467066035451125657914903532955569963979785255777515427446219782072628094756750976866272281782195672986188167943954181377822033371693592799276918067916731284356143071572045431797872163551081288550200180825556804012732908338818780379786347499068814978059355669434756667180500673431662614642296931622048666890738671583920541846978907886063532906174381753967401056999481311428223059811030066923445465665750782678777419428883810666128803887532447678407055567331845334002765961690116289512391868372400018901757280316237818386051100482158418085971062305795519368945634055553322743974234086429346773185037524203545486008297924552891384157486772720116391022374907183961552013711622776390742713919812925635286824787133787027745946160239981406660063875089780995258098487127999551116957164332599043443473694860183246181704055784701648896868197194940680356020593682379083943304355878596643764092420884458991245044058665825127150176538382632803096829031258629197889733237129121652508654543092594559950447025269431382455384783919498034040093273115547132062640766056732351659557455631577558112883926288413879223859301441811683880580999111537298907440015712755432360641765600016044660515358294301981210999641829920218179507510361416005717120119843798484977608021505260853510594903812651056102803673189056897321152872016133889059942241121832830969301198669714747115329358986192176037008938576417293445825939622074242700558242757201264818623067344387423702965437460860683723710057511598641396302611403874197091195652298442416077321426523649369721332039679488048899490293627058588242229850924761503978559667192661847344934193589831907532850828124846555762592826465484636310857651988119240787939373376124562192331162985559029429624592257749544394790487331922229155998315554767265193137075251254547460844330686182062174340265297763278094105141808052273225500865312012719273203101206758063705549331013330586487284480913340317703086987460199630598344009578424772758943853560185860820507320599477738567815799654479667565964282021998819427800210902713476606078640174942630463013745281243457568802093438581399691390324617773290634394854539469956487015682014182704238922522731606572330624577883185935197242045718960229475906948200254529239770874125883347595343686568799278514999045064759657482665313909480279750788035023817748084472809968114327875285039670228722622883857950203035779595372325201329321049708971383970119763807790676665974868941575532600431758316323451544280348177744454853197839534715910677493993963579502987912255261479478715670978660916865159758505072965185985780529048433386028110096381080299024213146885416680947265326670796291445804645756267396885089221174697429765722811604513902096584649170814916888040284152562646292430246828885680404550209068924247756177763399264759220307738302102269235345406127731299584022953601996800852882248866953009912711148800484834942593799495320007213364389244311896326732355551800160673139993200523299871004786913112765167254560239688190720843293224303181092219372236856766820254177366575940114133417715128853166006588999524117732418849006580058592236597049569510249984238011950387650016281973115140387578041800042240912631550983289094361901141485346937785691566378078086252331522912303484548915293603344976422519167448431292047395593786718190057007221580756148294704209083203297804155011357669305747459603196266826205469207387091980298786804033225943430229107368101996190557651654972876613992179207194428275555823002597307622725940963428058135820214007616682334045492868047104452470530373065887531605210287256219715226665001077964668304922838763859883255765189189280858264733696867889148768810103736092667299634647409972769771776861299818792314857021043761211089538405183637538463628859783840841137139684436259340957077954183758959717271536118435360551046006975637921439760361946967533119146960670856695775391590669820835996218038837176801551626012627125366490872347767934707390012978203055659153462165401527546846350210347297023843202426657454964002025063080593061281190973146069889185316791609727635649432109651183779257550255075040200089931587314409892575909086931267510398596543619477283572931744227685549624841828855588037606318405850957958390449634703262911174678561815463261593640608007828477161489031477837252031762671820018849903281382182530715688182490881962835524819041632697220091794463861803641494295020173476337244648001023128962876907733205351701273502508143761298050802434382290751198705179165375898452439670872281841574123575439428176992108408621056460310888871599640842826611964805151733358787566929535289381834205801864588185643922814707053466336420136424451048002982715950369602912822537213603699497389134131637335134572362973767625641026108381006389446222027067020022353626863653607584814817119180424844727300938208207881783573290903297260574889454052060301885205863364957912319920252430876556074194667009897557057211291015809363059290582340284388985594906963996282587028444243223882906667945686594767731765277998685337436526391088088614085849482371320361718297765652023281147911230157526655146964447945028261615853430730407092265063776299297185706217626443747896975066207271068061920066147556890655794036057792367900805942724798968638582748359163094789832770575299524359120698804807092188895734746796853861775953091894407747375675963017576008464819449981047577588144409088542000255654746800082532335137655920672297969523181553815535024218632793621729140662391716926045010234088855440655106707354921457262436458115615614808571456757789475111997533740819456956412867098154666652597995816826169711294487391537755837954558176782103889462641694686123441012394999398527298305412609979740559432515729616875656888334802455197540685831745453438563756392845565654428607614323952271296469353026116774476375269892761007995724838542831507014843912816824141447433979866469725761738045440403243478835511733555801840880228755929508908258361398083407255696551689629588344688344772227184801717746550673506009933736707440411558602609175740441448611525465034936649710561511158693445243152387518216378518246399575181092701761794875382141201261966745411969247469204882338051006666446491496957048460229868100353749989423034255565661276366402088509960555150258818319800081256810881442761270835456132688953427604947131028457275169833039493224521266698503445108242734581646092014749897027949559409897400401056402128484506481864822102532485112354365473444549494260754981886167956483991108325696842071296148528266838589321871375222257097860857081742248812026707692985702823801460076023747157066870272266473281909039850442258051924661831069030010409956296005690627559814799658737019371290486755015639683791375115572359628311771716753371566371288652914063645858190316510303806788932561722076065605444214482620842834516164900158704266144385739882713509993208751768316070332314994275271496059872312197564535799496245920936127545552663444732886175298305021494995254608926675848631283484561404619671295150473089884552679348794911135937527969387502052400014492354707661305418706101142526113408525413128248071700189318521044708504835223081275897887648369408663452746895486279833212930605641678304076936482382978166401288370346876136939169070319803911267906206391395564671957046149310470080025560557096343227281409463800960178317417588412814901711433027078607525563440101340651606684842258839499513646578328151741100771952961437772687505734588768413179029005292442400500499542208779705262439150272273813393916307832308355396687064737064882423840762384726903312610255231730966177296848236384603024948609452195281539246900251309125148343546789252359887089299047987524821185596818694314734943615355427413262389098698502056167501198095969845023401183947963275093337273429429100875276988786847989021786341449896380684012600099996310852039913610359590817220332619955189374926208132125963157526395586468921071117277639704376638295136093549957749751740789799907637820801249259544109159542060693043042450739378043671804569982967137801386440079817473629135170211261284197605661307503409340614984618550041227461560629975339501513675609025231499425729994553762272607734761826034921977588915333162608014848240073865395494466254870388842750152653743539347018269729025135225466526728341721469915371707475319865463521846049389013740515680909687099995159061472795265889839631152055399673034860795589329864817766522765504008650519849322357492188114859355921963428316276591546189556892288904184299494659245992212536353084662811262442020058661478726657514009276678043173780239475326125389279506904327689758459868031170444956569683186017380288680078910880310748195227953488957291648965315303092206823645565787917160377871603141164604029202263453584167982426392796275725452115838869294667423810649746774267317643319340922573665998100617268980866558975106958588469723367729420617266982668703679272855480876362201248395181551160123243183285969130446415799321232084435954052402751641335171201921804630372034877493789063929667640755790819002242043143951669474819427085650521309133130184365751436566973215869235238240347571082871323950973998134750414417539759746190753555333826372106139128764252366569307762565900384001796679836852979238910211181424203534998972579402206805917104890513245188300483285786673954870433398770652562942204235979317325226372340574475927886191750478810730620975888284033138153169025359308780066326171747148310686405829704689306757752124483566612428029754489566139339441296436970115263690612724502897582689565206999915230659314070061614623216772705422835750830965324101988496214678258780517328476178338539951280787144562176029689349208138310021063480596813935042996556128663119431877247296146327561279009575551052665529625802212825741763756808956646833134196108645260340305753817604047064441910715363303701475980871330619700724119683941310493666733354894751428845183292133635301806512272303259188331661984526961381675053112639383047537869028721727893980070387885595045853395628755592748341605423195425552382076035219279843526315004515037346668804419021472539350772010698551010311781208805889107653597647498660062097547803906478065258503072454837375011693546210468348357329720584650432753046030270375698649963907721460364605712048331814919488136846839522289477961896309090503211738612051414667007043599255540086098127027292736757221793397177725505396677414235928827629611131283995112794748879903022724216053975049460361450307457586067467997969662238789458415487539593697807264113994894459318972588845732583801561594760081306914332323708286167813923938526092498028435887742877804524478801783817606865084483800508940646464461953808647599914798520719376564869486016070498139587989988492546748669234102611787404842440490414408664994842394985785407384468689509469084449838481574692622914885081826519314815867833464154371578584779222294642049840179775618765495657353874370406275922244120328877402953175515160388524896355188377415891474065854016068499735874907409891911671171099107213849280241826944425613415558214782470538107931725149025191070339265458872103951839131101549052419244031531473190641736054545417452237700750931027362714313660724992025691123422875245906645337875405203457508182426770997155669573200431237565129474080526969403609883304627730775423543730640069524083778552310375456038870432002653597603252503020856665152105158454858718927364061099952579188360662208594798745236670046261072623389092282136702248011283127893605235694657020856201985830987855436639906664568802194640828940314217716506082337575866297152007721489475125979053239834657837971785600613506000367960626350992742624373454794177254897421211118435776143159244920926633058389614365716011215366912218133196540919817978204206385863465527195228904771600370070698865066276739707072818519910061605424447244743479469660547250839263505016932152377642320819832860213589036283001064511641118323200195594961549362189892812582100547425096040964190666985036294496872097134974411290713858972655243302900024336880547282683468742803440523606561051383485057055742696084575284265408014059951966032073329913312423160957047434717273680583537263476156185352572276970430326974367342350658331046730680279062726968802784007917910771476908203417188050546958556120447468703185457208862050881615882568680506561309552107669371061864608002966336926394953032555022468718174837112035578836067962913232370344449676665873271446446171578930342470857333145719255031821856937622409967944715825727737082628111585541969619749496157495389040176465644445426226847855180410357815013477481810362711507861012423271287972587086930804307951744129761164754892954281645596712727883651490157680509538748812092873775274251648637251726917218415250798264827481726523930264714629742958942667711308677599083557789063423988624546119341390215894863022016295267540875843399268826849752580333865631719528263478002896912200919253912108101876843380869503049650952109691671710448669586006613636137491486598828217510939374894808313451653340005207235445647529713226073645499910730805866378130510833462495350945174381438445586072713320358902853148517533500977110861458583541232732439268854165570398435676657660132444225043764802869449496767910069917604449156854382169712407210502617281411292633623073297583537200747907608646968404065281802365803059142913208121010406522790581295720553081363658276398627391286094656686699667890627908387861664165594314114082414435725524369147302155228508381895073050959403087574613069034909356408193180173141810116883176984514766234976191876568985822501412546459789511480890562378215118109587296203498844527668247320623243430496982651163931914862084022414707261775870731239412430663745043487600350467949997521631492995829662715783163565065307230465565793539806956035942239403654102843462254504363498967906499182640033052711029966851107714585900710446781215881316488331720817129791361812407416626985517236914335644848593367519068699332323421191157622922926672854097257507733502847758932171923272730780980134004250856889693619355694431695048259469235523476517425932297680306547638042889809988957365362240361612056663343515587226598178656613232146824074236094359536078954586141432006326643208141746130158353774158737707409520818973785678261047282079579088227318989999191347280428271725417098901045074725943084201691252223625710233328322144849079581437378422264782674642283881048886969037077511557991779260883990151380702445174276388502546475096724827969494454307626558236121329250316330051884072123493746888133823726575513650661843348595261552442218252752214925009411140875726412856883401693838568654508072340533657463159614186694356397959623341910571681540865669142978639880782818827265883492069286018320349884974009817534174946600767486446101508953114098580004355901886750964616697343226732977030751683336786236247031353097437976593707281952186868614712031053973012487563180932176983804263533376084783939699273562644917860422145440619087419104069227669745244704457409303102036546036698249774037162264958778422137638760755307389899689303673874909526434222480413982480476921359806697535642369366839552372035440749741494253816837075262630750064227407512397354665957175890198854171415512275071892767519355217303847144193349642029618345573953693078240806724983744767181617260824742693439986130306028986296360858347881380371147450932297419555297227701553147004750192037454208791169087420811988521017025427306736169629154812017840531917583103205317798488288692133280546257146474123403514299836166801079300724998007626086371560887996945377270053492043521338472516934486983890800204190576780362920895405491144806745694222184641337313626076470244318767911969752217962659737649530577004379579955072505005917266714049617712846764249919146334193334274508863792246863902012648652946086647553377265397186414367150848060200096722959848170473326743161666650962203861999465804993228567978139825632670678644671440782322695433086423588232798100057467549167597115577694495167256767063043505087140365962152388311638859976116301752088534818479005022561715956513910046970955500172830627558272582621695334755020958566581596238916645391880155054477517533409583846369557006975567388448612353631193584648714194401068122362891079308990674243972198332414125936144835345005205460688278092639659485946683761301519644109334455563356413761660380275881866368976479251933439340474529031655283194972099113037740126518530521644944313563298753918472217474934460550397368620033755393173532405467009388098510838572068544338539866163767996288741707987702562575752205534720576149030443377100632644903555119568484536178795674480851102861843747845813763273955666066355937936087895443184166462160907806878643359882203091961480933838712829328620684013619406833149758248362182730013192857444298347164295756726975178553739359950823870756825058202088822162348492161189936036647204815430065611427035769372821081187004224389415927891290775102094379209551731790718961212586483896307663346339406064260216543613044144225699627070235707174527876011805492311797089544539719566499982412823158200323082883366756727098389168960091113178578597963124313812188062203637286879594149315499730709353980138569129223781529344490188079158562061166816330048343593251315930628642294961315578575392844906547151482091048209413294405256401927611153091667965987205032765006468129638084463056246717651824654719335508880444963128014778745565077657362856588086496490728310027338402921754483435637980236772723291655361241608430271333944674214872095024944407500219632818324043615842883547308456172512762424933016035786971493862826241270101165944359028009142020908006726064768352300138719763073647774777024336923776971261703055332793133304214663135290857335581008482255417842577132937633509345580455335445593110323163253753998600795516659244472009704244630668792445751593830814854867177839543741336036953088179006168740982233099569961713119888424904604696865351141844428638955805115231610363507358720502154634242067333321202275575426930622791771719908748069242503147016466497635984291561440051425736130978721560806871276763306308227631569525280110820999105437946198670348127628880755478452861289693549347880520670074567991816195074100446445069707917299738239054123394306410077630973040843864860517516776751091335905908705646937943789532550882618242660340062086999726658534903038669107323055323188726928135439083090301515756485452140045110955289685684591039995575527825259897885482947730052533122060594914409767925411157085262575902205290852477609062071403008730020550224709444543638543458517026230483769111313580102575975832413554169388338587283976659603757185616994482322945244509341460777642798388505552332655410040814074566169462431112176845415597954636840619903876705056775673421475205989163692718046721672321082540299187967458742644731171570469197063562671509029064627907331611361883743307316124781007970245171423071378310839497046519075225249573925281976529296108963373664279721569194462431207475678140993918439621172306015003937190721435219919010595113079956189677838799010813704550224393758123537305402860860885838538659681512962004766723054637607743821910763988212837508224276637386650709432508911276669051132840009248680181094077291604999660106064270179605991011152717657047790497379964197566334154094286542759789631885530431029691699072705653959945496533925502208866057451213846112009040921915789678513668151975639442520809533384632724444366208134950099653936903367042048982445448413662448082137205408358838144391971727466642495600470225835001838423258223469471281823313910350236467125436284031130517452942981148779509152677037232105713423661181851745772937500581495821381229305057489351044903613025054824432834660676187814540981464127920411682691797228541327930353006818581225471311791925699418960037836691951547674748152570118764483654027929407820840050928075707414573426151611866731801028496728402298066545664374333384686319546028541249218110859463695755933962074214684961928287088148988573146120926883816498745928981844132732934221745676451032872827734273987117472131901636545149068305282301881465553150559415373870204039923204368983189143846586299423712499420710108670540870739711687758839837760599960739440888209308597017664234202509350297026473884112275553472780042612467968426855744835326246688140177114366534808832526762897995280847337406274635707708225431457374494237933409307411896388000564383014101178748374046247488715983982618339962592550552110128898912066786582219905320018692060461982172701878426127660608828716666353287224683703721727445313755856669210145010613936119946817109167335543098532378161200785281867650060712024826589169586878100352475493656928098923928243407876306310937700952899493174579557169423492720597299928895719823316369849822803622379650422494002639328954619913004769040409950750897684817071047536361483352285822545021061753152142094338289781514996457771020347287238186391234064728334912829029964286648460595331592563339987942776753539288440296905232982336353436393379684829772404789360773184162494401167914883529493972844194159186439328120512596687492310506739713721486646097933758433617209434606171999803805404947811802570174605368119919278229666639076426534156283813859861270005066433210533673157705140167698735252422015187172648859945108997425964562363204755461971318626989082033350482043486409435060469371835232455701997761162262549732347608851336666605550647417578001404947087143936529488993025050452686591612502776210584011312934137776379453444999816605366729823043054647450228538105603524967082279017189540958017183074386791161518816307310371448362887586952738716480970751939940701242029968682448978727733529261439102186726433910913910874822640782246563201682884750059283902414182755511787877044671524464693508971168145009863759427099239464385224767817954572710087379149530644029712142741604990175323399961505392659410071421966325084805717440918147950690675114728379328052235171559639023714869426678028434794356167653580946838229141778594545573184239398908632590531262258301561325711851822864726513574781516781012786554292242019343785453745668258598309618847925295690944190527813902071060698100887205320961405240742571096063377309135239846210838115355954275163713728878701842845436370827414332901240042123977588444565516532747214507761250639306420898813887934264834823601334244726913035629804349717196877724345168961612698766484798369736206398593672768052164545213040676315561573186760080350741607112490439515936375447065543723041925247625874126329676094765725049775209878247419999123991748140775032485123460315188255081879427946324577783093757121165666529461924032584482861578363718193736585748870159640375517249641321027044734815627502549705224530119509720502446261276946041777271612676696535969104969569302725722037210041505664628674601824676099327014891637843201570017785684222829460424120319103311066049192021440616072457772916943382880679395903468047643435451966317978230436369367769518139022193254678619729368431545484836067100479765161061863179588492213511341760586729149257280827689967552300193788150763925585909987295755449839262863192920416750408997313054174029479237138175002176791714256293364876458665962413503800950017432546321400635548789023355041262318438151715552153186314938205852559884230314452031853157297487745724199379782452011763430113862670886837784997042400611318352714326852462227372422877976553697019912502703263494739369199552713988629909968753372795921985852569423921457895866649516672360238457788582255237937326061784400489015491560094296183676457972842511990349279862053761496721806864900214302915730602132264769064755966829375610231343588605080436950299938680197026820521200608594382815260662776586739675910082915289924483018737417963640954694137034472214652906497877653709350226009464592915869465677247263447851389208039405461152892773817843633418389929606868248436084178866247859352125409247267213329272774501684144670349699258747740297872846553319443305642559085243948744933894230724286196103011864275819550706088839817897593339760610967280158512914762225637599301672302605893300922645054803223659718166971461964946449476024862307214546006801457660629378762154995784304304123485884271319713454570563632953756439043498025066418795057932340198539341492442590961562946862980043663822689777887712305645896144796837476371846076105643765993114495328585567191167990704317327961518984211695693139871081859915722852721495373915897974218218330928525935787773075939239048249334509553997298896717663850457078523439603041126296402068786096095112236467389960362011639667938269975897046676758358569026802771457564357715905826372208565512007395206238273277843181752029480429934042803539202084421821946816921699901607735720141830595448471023787647295802164747593923005987694364501352717615472239406976603984758786449029355147735795047173953661603419608636838583704391765984280224572633875314225299923960252606616569359212994434021383109796612651691029093527353161143395459273139627927750920187055066686648876508613949221881542934109571173772105044844720489947062586549501454198026383306855087235583210707841544296638068649985675731256475785150125147694105146301767459216715335489357460989117258403806516272553722788344179635056893406176381202254947214495113803701932266009692703572347933204244892922495354679872068386946940449473322952943870686368465168426421603514366709309504746083793398871917517110211899077079697799660299955105535722677925068114688445724648654144886744867961272711926029273305684992521402418000494975462240023714985230144043328384952535782616277646075855669842851211024263325590991488949806727811374090701260270362282864226269730128645652083469654328875485993797386706255530661797736816836306292777668304234629650156823981635599294237524051522109588280983873187540427938366599417917480036872156338854228098545739041012307195101554011788196047839276412280441712115165057759713381612700673215697311811725910721037723327433596048421198764261433843910533481326212130328458950017643402414969637264192430208046077647350102355883857753823558651627129595143840492706307471548478775980251931808257561467797025325716006032399723854967715661459002198776750683442114041666463222227956655516933007819181143796178987996432053166636705310968498564670874215423006667914977920120215213349960440495815137042711108495443793077490072308368039537972729986077675844878819736722732696947668639279852628205597783854625553122546279889953317561027398753722682771894091190801592327525729467020271402634625207970801968354287613168206467945558285590726243632910663888846429047565731670094337243774655566266721148175305908651588256065596623559232737798597062188675639281033931332930126163869635327406473874326569407112195241187976516292897417954549698254360396191650190995838337453651040916555768867897052006167889321027788076977366850751832810105905917440287167680071555893850163682483856663143938872273622544723177508389266303874803522319799750385613174408987442955542416435944932914578131003507074322359863026939411487922321749340075244006388361468128598771910568738110124584913687781539978640459087329805505515269540835617720734087874406778031308270250971346349049354863998630714899815523228252557705660550468145535004321621614594544116846324934089595437109832190432815703831421283644376276419864159742998503045319079081658778937956138185341220226846561956017017632488299130902438299308188606878440538677730339291710685617524905340899016279514456231348773484458044965460808432962833696013343087421885685827846955467737538780891933293659549947313425733272327319670894177623535838064478712418381350076949014940793924243472306107583417854885640885687224488230116365317365386567640430671679084271154510790601537772585621133467768098676973981016463966837674283709882373348336138971343235275378634489680722762944082622280097372692148531177070948042814205864610967151206846535497247335308320253912164268825202551168015069095928255516414818232776679109779042045211401178788160830156131322858727407565559193601367356820332981148458429364632382765589279276785895178523335256624752441449150520962582919115470739086817492633613130020347243145083636842209491573559674281599877423503755218355639079951108837794544694890761591783302021914982449045677058781490054720686501365315832597247022210333333774126875189219382372624779947280235977940964648574417352498791458446104606170383157716558535800511669104322104344412038040477573105907926902690359168296463498633924383792706653273956773505432615721690001403233845714584751399705975348097186211895297088980043471144983314093268973926449794783404852254298332815084197550397852962417147042508766488821794236492126205680358085193453825298070098954742165556464989356888513978165062342264935241064645729816534077396811171369680312576579450018090408686378639731591008895103453598536247912271298994070404173982282811164806986520260316451870496185632816310498383215372040501270353622756625525791393382741362467469665368166784624473789329014716210401125366365363561523844105401594944246577386171275606190406814392387977600469347566221556374365667663042395780463586712267651425905139180074994200948229619558930011436828184195092639004364625955862520085825890674812811105787019193074421466335492792447181186782631901067147256445948401258370034333045220004758251630026380506451688134251675807246388806269260013804667050800284519703962686185355912470896394220327671146892204460836390390348874305380640195291621611561350521993808426741316871250150416501010499234324130744184158797261865589124163945948489661173080977243640446828803974192745341615429998333028629039162613470389588768359950255279739598453422305820548243480888958595908913603869161707070168338079592955327711408407299234919573105418697195237310902814066614123870974795265582434096428394181349312793540707733741977495092296512740691876589035493606892486593846694050712926317696114455656249164199537026091552101252401561066573063733815656426521559068396454176306742637614800731376311986104781833103983551446199516331943529617311102160265296534086259801476531485190713747360022417496494832553605701868692674574313748932668532533763491325542680810073618732746598513826870959042095557352396882026204965621778610232887544470941450562527144338183580664540113540428750054239848819102015046213257553878553641333819039395549116264534407203233272451153628444961563476422168851742676000243713886673560697671903513301581777352550821279989384939568895483324539768447146741944307774577337034250362473181555767990920529052099024139275861614416813146298536360742705506450534119584937484026093005016789639235014131993150300038112701350994665676994909128649895830083721996031130772622142493793267049578154169963647404240089609374960584411810191631166751421861201921098665208534981190316950645779148129778537978312852200724494490213169093832026027954522989448410869348933025238974555088542735470575979654071398389056171484929118388714480135918630067951607070027147989398140415459288084102244949638654331282892364359188038796896439360910360946549040979428509156376460009141651027370320970995996665370978594860600300159691654957569497785320941841889060457188961333164166074850803658487837207959655030167746901071820345198005607524636661104837198286259637967592971488861529709968526014925886718473667283549510368993944980377377824495699542461132072647024464736487944016294213855267338244163302385769504103353902778878065116321966781909367787469301367219642286377842887815593373542119772415533228791477951785594475136395949188220014903699712756295283538446451183268965300529846208310381603840975483242212422607714719074100300937807718827635221402130388707148299428144297648398099197785116616576069999212054938411714547335925422201525104279431746566227840405420027941517893995947909749975583076341896672668450062266557626587578875341099324284635257129458635083868222970719128981283987028497273234326873325336184797940245837086085170602003244755673854185343079513657308585325806113714086585738094583522264805339150498788509347209986322921333556145219084120570459100941777257182988778060687353927705415249919751912790626702295683702972064261073240977906749662182809620369505480915811773337954386478653668829917113131391292871050736019220897091277918390334353712200246846238791827370701389899893109946491860881053489081518546952592222346486466964354302892610820173707677266478419526634173369966066353897739582661019003087791255541098171793365104685187618809254758711959693918247809972723990862243074709017011774250584730517754254458891061926958821722739058607795799576809193023868233313450224854453745960245021070163864346225114545228053114728509954672792373263171008551602399461137702133731706429205426085786062779421283401797713031451753439099833259572328348823516507930426932792182647591554881184223261271718036423897903087932884645164907877919627434841701180435678678272946281160333386502356202897823462993559057979981176925176079149228952874393206796179994391875980830978811525036488408542594575002981575924727594283460691970459554199269824009773052956579684042749453213065791531114321614894123028031661462834984177251537330261113976274198847276968483219280647335161021887481767458899961563221482128761327660193010105065914559439489573958028119718227686485513672193335010946974557791962074868312168901247613766557454690941285708671181553128280832350696402243633922438954493495631134001958611735382220841317675444778543381331714970639578766398655723410744866250900986745298398184937736736251579440038621576388962723779459411970908144367417717284236929220376736276702769496655931587534562446203949915347720646046934972160267994892504874655693104290586944469439951026795613181534664305653568962404310594555729052620258823176109131576868771623425769443005389827230310863542824999058461962090687292815013638319897709133486424814136032332834376914409940145405243824552402070283683197628205090868527719376666087985410756094950870324669653234821478542637441581975420182574432752061073490148454757679754107084182932234137466532535844611469067715188728638396939580851559704070705366102259057282909091443406345935560182112941783172691344456088235380512638395749124486171718565134242039342658009117479405029308170069244360799437408485458957872027144551757137050534745809696613347714672102493682952018474157507289751219072237344692519736754842069575308329665182828925047388453202382637893510432497970169237141291391293457985134925433589038656361113441346756224996020813878858084947147864269513136380663436387341808492879905293262430213742924344111413215438600523273211428033216581932049861118605074989524493176185497689306364937523501599991558138028704421218091239466783338971864424963348092924107817065595868578878932814335311260490655282963951966500198210224610008380857240043834639261901459473941155565929695915550069665984717134251955566161529365860784588565446568903992075862707687551542699392136842069104420326245644278600769087484838526320998462895896025949537283511459043057821839912221683004275511432037237543008166148536925993924477028879529855359566565068274626516861692067803961598121175074319151789358024845677843925518906536897492670849766412527261925826071159182517636183176243451868058731084027975388426638804941725832855644419106974407079357188604030564042235679541994008405645817976287606682030651349645334078505029671867901576372063209785997735989641932947332960201222569606084655022136871993135865535936295753862724424532144664637729440090451995488600327424917417350465761698609720923886778600139437522173887600441631359525158743652871775399604717540608477395361527869782970325199533959874610434644624040511288104598767289999814134996650549340714799765583282657045905836244939357599139950929279129115518779692326315784303897255387406130187447085467104468271431499248287888942908803868538296140900058513181954479867517954474627536001274085262303979030691208239838980344185513444551867255691918952027001139127009780404233413486291603983765653367603285732537469383293206346746434783649699817920093677964495446987234664883958025626520089266529823437711379221359754231237131626725997958618918226860719723414916633806655809390328457960292942835563207317128938992023549976970496884014292808476502281534186154554091777836555293556519313971537658351964076458978366472872264243173445147713031461534727924307683428196075432554839656969725293991304226902282694295150357701670601470967568929154834500020853130021769970474972843613184847478352548709084173960626940136971842249402342928886898159342960592863045226565118577949490705116146853124741843784716509068696313139052991132214614852196128227111861718610920647375212315939145403197388287955941725318032442519675725971460217627995098271708606476836025849675010144701073386906628973503533299045346367637918641646295422483221537951990393073737849652151610052839556632800278245738615936163634685462981797569905940625499434237298747197189964385521213357858099942845152879108448816604146427949390117342638258664118357226006908036778364428697162795084091619970095272310812363382382750310168893921447610041831352252147969070544937538115381868099011664783880592680136680910691803586321437119675560484276509286178561969426835736373104245560193025643095039774322049917569499287868602360897751686859179467695847025722689310597228208830025398786119778121293364081544905292283039315030412323129126861001864036073850946466372288122025777301907191010010395981339661729188743459166361838913738578667802917106250893145333773538180913791583287053932884221532347593954370671106579630204103588057862558904448117423092089658693466595856767061985565419295998280362568578913615439641656040665714964157310749616773045244144366527721417366729979656460767243193124303038504207293228464147479390382963228243151887862675200028572959199619076436707164988189507293152028822627710102768670328916428735254663254211372121028741840181229376605561525467931293752901758809089429901954777138585374233350849244399544812133110110743684471130208821652557366258387490360666601597492889501730464943868994377497845843216137092548246327764173266198007398466480213083555631030601299844504610239784150645891284298283170506206434948098338600621568100682543154874718647722663618230465967314322596799380198883466515457097371089934837085043476106525000820470756380236392329382503875037228216850093358454544239577626229772455190907944437657781669050196323921793836906012800524990608323800220532703575099130387367886262469507757272778859427211540242351907756432026332891213673482766726768002494803547343743874083756787176563551905854551020220084816134138841116303446330956825603257549811024976575222371449330563601478144680514489667937894940287005513679129723275727175940986881436248050355802386256093537826397680120816414648003479624791104659696234319678552082037231958670317229526782405323384240177783023946658495013410781617892700348745935245299254200998844595510634943728740558758957095049636225833154048059740872449417654388954935811528671391994768810961549114031322464586056900037432860020839952767595025799449981046698973133162112945071995379254377673395656570291312438063664642030339373240611764126404827009972152080420725054648234941135025154458064255189245236853696288031933775754606344672270985236193376480800066065544069541850524833189001571445000762233491659006623381833608454800402114727858574789472058150468352016586800759641587321245208057060372630899738210139499715956825118652676827752608143505307288285374770088300036585683697942774863461596792995735052755529754097358919924505488554578138377888998248112232262413975795568137719174387022055069264125210789742285538853750300806687728834884745813114367481908868968629124983366716122787829103582411011238042927537529861129379965307327947974406901910031743911707324095180344924891722600517955113845530460094291091829559702687123283450747364268583231958048925393117543886229195652477365701134808224819247584192468904583745034991100801535987689750627092435340379578768483802983282550763480700270311854882364069325857926684063582810148065144298549656171727669273817156520458809954523054087115028033484033831737822769198051300171901249157900167946931214378372999906969827382620966449707528922769949233386899942383053903399818095977695617424652625536685309222833572498453747312212448075183641631397935051115484571007419069586972670327907508640124572308309816294279068442948561952090217911406529645293986311669818868197520087719313619686245468783300666740308082951426796030370487075234031639921339283777508548957590104309398449185787851746082500024297459894004617796479333206264493593760030222724873450440513897054063187920730913767944590476192142343459753900962682854844690100983858356615363259204140959333506890855545655062695314031997887705829693755171970553118484415482278841452442033280957840378969330264211632102736592834072723163312031275116364561832104005805319400887012669837088663103573496166993889496478382867498363918695803561576806839521530657688164012233277034809046844235273653617576794052266033994381379656189244311672729732173046132919304538415760504216143234662330955507835282983503385624613599624843430326580088809734265807204775316960665310149720847751023662409100060226446392864867103157265055550256854481161979297489097506335754800677813225234325520629978092394133918243187623446337001926870167670878905247681090820262482716436822540259859447056257240300256409737298892771717934238768508788502884812793668407678459771063949696485198709892404804369248883363517218646597137517984741523958678740269231846935988909660041779538831529775529515014502328992738727395671154168738649485443099811585626586232702290825970268376361578638378303978665463632128208010650181785448603579253557641226658354469582544981720330047122308824891381749394270905825778854622821396657620621639884690018218171428899226517749849575468067352554448186552274410268716979317292751094968993524870864857245237143964990138485292108983961908976570313035960075842067345336437166002608596346712919792853909302259976693300900489600167563698132822755658969511129386578694647137556099736903427451176373550628399758481299809692113893763848382398981871446488673962160375646448169127312517774747375590297139169358738584307592383662906577584236643765414612010386992033211629958403355824611383522003229792228886437275524702483922859629729666405363929679172417903195400880918224425062274749744296156798657446923173859602283490982978474370958491081982377502500011586060375749459312318740189391528906501066902223506652390313036127412059181921815609946091201689135570312307546962856789704368910257184000572132174226878932329802584748781210629107929264636933656125602229757292001842087406736313236977278105707581550221440595662055117406466762028033291487611810651336956633175262276112103338514230378804688611066685259792604417169619117207175387580876870601787835545823812238076761546552480318443845293054461133609518789748987037471416955816375634724016773619176502484044420011698112658767475987027587996214035639539701570381811269962078413633204367328499931546273649605357496368774015887135334876387834155861822326416775302426235569934991955200244018136265462804155473692060305535601814508809870833738336613570891380877376961785488068920343458767263534849085297839690458680913318895980224522992490938376295372338744300166509720542507104836953640047985605468883082456594486678724004107428739040211247578429167996216957378035878747013981074806238460280858069195238779363259850211125946593755262910866368731671085502942082081668953374305565530939866809609405125741257661579760697080236198926897919584159999239150432410360298868393515260967887267481232096760438528691068912705269065059241430219223947611065755890281994293073117280354416051100539551331436110388236444867025227773887126913254959346134109755080267087434514755945480910022267021713187619737144730240877356743719838329624307026691324536455322672182561688903993134215236650843704591908412306884768974642633441505327897513270140256404772272971667155446598229968489473471870980239785460474678290863940900749271058529094083200924033671459296635835137502740573945687690734933522103860991321870463736222904301624865954878708263824837273850081824546021865407200060281194634544798418853874882630449833170151064761141601915602738284460304956388672616980643805249595992345566224683651527623125923508392229444455009474754319841754024798260710093366679005277529907776585030810594933315250115554056315825492675491372374763209156025735009479668305751811361138478205290692446457165049739683378249184360065939332923100726020076026667608449047331071986094834416066576036843595992824855749172209320363451527591777111378323919879203608158567755318917612124342825608609251634403727363065136030612493051690665695777607292783836140692305647093525189034549613392961808477350551509668422150863535732341569301533212731301940101872575925372085297434344323663694076167312741105816507680120062436671759287535991173564245030642040608841189282564246697154282943486377108488867020798378940889108738474685843839684339888502692471947458744902568773015924991863595358801062871433122664982013745670021516189754980929664309027406976345511865700744152744528722580612846129306911693909351770016286309863429359282657527495101118213881748224235916981417717252056513740722832673248896109607109277673888744583916544480744194402122235644552724102417118393290264239582804999845288883459020956819107850221565425627672084129033773655251161373281610857125174049505607839545126987470517781880881600846244449751696009579840782656153084672570301405941243902268314689407690877193264176671722449974309334922629543685537914825441743443367344062267664553039477318254318211219812037909053013119149113661915650338195705829486444290052100510279764674211314507048271040248373378773484825232662744076830310021968756272256431070652924830276481058916060849881561758875856218440660845025091815774532713240140344487368669142023313415626646239488509320758855994348531976280403061219780522357426846932144098710387163002908072507172314178482209055140737268516971825889446588101282418161717481653171151313130566876543770343828868504931331142954749623959725323343929059625743391472738504378523352743429085595904339664791389152155265239080827255462707881519280052681952244039912438940935820229731113345329870401007827427241424158526095996189237351556880658502577962521522407353844483630887118986848043287201499945365274530145880120279886255765733222652295057592542788811617601749241189055413950244571416973590525646845887571294549841000121837076938271872358560943009523000873620799192421066209377166916573679809724494089915980021328687333547496827208209528540838449042475866623898781619031465408875045421869693655902469525023512802888582146319156513380094943970987721488581450032664859206112495752077277935193174896099165975034505785225954199160698631324658318107236104633336233108945380772653911054037255064004067517459295874476736391958871129073391699353269577081551249731557451952334229105228659263926851737141821897469733829709214503750294055523487251161442895268802001158976234245961182757765016056741457927403655535846446338920038622651509217945855534929893685475708158513903182910919078636441082855632380253393632866813620595598895210095831329699451293497944038661663514120508133126332628198941734766135060291742073927655482305756221816878939543254912847273318089273257112582523124954874710395695129501559141778120490632948265490517804050006305303012766971706214194264994737251759642442708318313837183890429928398934181175309742949098327654122384547037665355323557298874348400027704757390367257377624579341070798137536798308279837664702031154025565327439107530824853733008951405925777158213090478341708422297997326930638196342256685784754429357853764957039589076587964846019464379548727984952239504147712869388661157533797771619394632468403859118670867888689681068292159898934920158406645327149470687692454226327360804995715451750434514476980260276519896938243175743000725042510340803415603752185340486894545955821208412123682181884459748256794681846741642245511670512068145761809922606611967566071937197931950748794209600100079366233090563311725994858388914167726082776315884179449550885249168805719653204437456236821781562239695533544107181589248608492991479935905824731106924868232684780192237235964538780921909109028873456624227609953409965996401410538651177481477380893128699492423518979179289986387050782018606817228340740425111496982146667927688213248863687477420120531724520326373459829313304885979097601145455582652626342518999035673115724605228969482547694047494663228912228962141558680119630408649907260878270833200364533886220962823549659842247532135661171158090085436325342379537090266589461843254039167333899555843645932227825196931582135929436228972607389844755990988083143894082879409723189231050493534604462133670082327007778321526012822904704670633875562839015761177085147764949061999948119197182744903007019061175525634479152913730092530446686964896507164478565350051232150570991249085004349165629490140537756585199390137056309633268921372798182737762502964337814622289701387845925005250741788973893748565773827569329209453143229692565928640676055599042631422041723695969085506079067673106229638414962495033649897179889166052402861132515930509717935069477022469553625933828106820812853797254297528864655400624317736709531612298490993194687930156294372362717115365372246918869365696590266512986945540509264973609438058727625080197004830916284103391266209494481286325337609008878276987578183797899584635015580752110430371660524352711811461311377454049759630198641415517450463276959456170445609854400405090454715266719246974473874277419353497955406920160988047218203253062964684715882987194410752954569673704957946424405248371176418004476303234956692708113282667144122570655564169541071445643724298582262181578729444043238022835005193233214385048066029242322314045634792154172774363610795885367896058030318139380264877789478300141808519559472336659250746995061345166764408230034755105822181077733642922341345471943714101253284235393461057705045633933949671838282828739778691297426979346707304120984277224765645841719909754649223859912192214414385629061601481878845735408662672260457432062147924910110451390922289202918318242176058273240280676306695536783161296032043366008731906100998346934144986253046258667743917591033792089983533994353543399443483786994236917314196769450994664121128847226807975493003877831771576899176830906360976925356190069381017023439342926347882260575160744718911809003884550920846217693285888155325876163274398275649641990046931119594050406732156445707595791205066530126024929642137763037929058706262003737803591919063407493018445675292716902046945471095032634930856300333265503076663577513033615308810027230664380388784442690527981793113146675464408388301623731456077379235728199637978782081508676260657249138193057739781265375271757288595792702658915775168792219132714040526469554574763263856089790468486918029443697660328596702533290838324656473308761973197871427968890734020812772947667070384918549472951848837955684399138322121003226898827915506990719697172602632172256529941638803498304948016441784653595603146002459358563185076296425081262919450503617116380948366898964732863227894278133660051350381942485116991363479164607519829481093365682223601289480731739086663007645373208575859118308234395759718139808729836502473193125999341237952900345411088930234861564163488263288544211134528855495546929506634469824278036222539969957133713044054923211798028334593296934646234816362545856627370000920759771693038969097885773342808708932952423230213093578551724310436642041851181672974552829985409691173685781910224870045800546118296617363429976323600743301758370826699763832010050134203715953041070972227991678613234878552116129066802472668982077455686980095674591229724611746671948439117759631394965900338944738983981909006723345096172729468748142413322308827814695316286773643491490288752736058865990528226831602193864155256445755767843291011618897764152846447297741050669097380576320543473485069601765829763127725673282468494047034842599085845034665265601050016034416998117064176712544981203864117280006916821516914721475629305129670206817859072396596508313920137093346348314318755609745621835970394480470501217585513839165268099409073887945269651410858492458937666364723276250649467116577398907950806516796779583993392678605081966534027054588415302670334505183906504930284238493985301867874283754666820992269053880738029023146446462658545492294658941998603084476387780365269320014794779911824909566880446390395350307500456673754621993695995128894554094092031666913481305831330963050684706944070789022007758090294775652200423300492902397169811494932014940241532991522784566868011898266601745470744436251631443777124065927493820150171477289017676426881890068544432193853204048614655301908930275370078998529509985756083920518214615568846305019059712039326431031323222157874729834055596460221946109484612861709798186477055312497397646203796413529030399792215246452820293620208487219809890354669746703896517278911734127331053789919674578794790084157370228256316108905388270406067835162117637127136838649503111890408627000125404886392087423298418572837198400769683904778144736332244093920034478128373375803766154307451150219212291566396925509739281413605525113102597363475632252813351729111374864157752129199529565486550519577549223540770730254000385548741362976833173031549607341857471217980077965826629260990295555430778205130497638230835535716090831405619194177105175990576227321604227422922032105814386217292683683584640509435819675894758773636358535582053751753146517520938193297882393578233289923721927575355129596495457557370477559861648750699839960735566709512491656622098144557704349684910433389808416163422004140988072978445439870651653797381287374318788966182088598011064513337858343462262507856994665543886697669431866758970110303766527576801318099253311312178343829863118369885070040828845610603306214101747951735493815868369908256298707419658381263664655716626680435502893246355217411482594436514966596865900220889853210436282301372769817305045752320036913986052652434528991620586274068634339968518833809906510050166067122984963797994229135666226426762558507784396461046426283319339133679789718706063012460552914962746391394159020520374356214520956126299447233459315860324137252617533426381978142593479787875061601836142067293592425836742579455129848466838904604593617234510979461888888981174641165463753271019916250158030972955094012376397674396004370283391456089121830743483389866868179835274250372530792577405571096195467016483016966862612932858722362547073651639543441003374459921932106167682253963231808313974701439809394631791604689873413446740408437158950140871475440421593537762019247454206424366555661276571984987450880660588662884291038896385221728528202940843412734274044029606926899751600596075772628136900114418726548804686942083243481938223845537809211716785203793111700552107106866530190290136689235238623356188031076958947140656639682955873162705241600211202810584136453732235949774477886282690179558864238732874745640697286661229795360519528671367482856462315196721901411151203795989747722106221626429828593028441815976300598910906195182015118395700556968869310578242020712324337932828522442921237963295495714101994559005057585429916029897226269342774554175539556791879914324940470357798873472296322932749972634187986452848654400336547948619325044104084032005303512827399023284421072944440723198872102809514132772812323306071674591313006504174027029524257450782301153946332796434078570231950127676385486282528832675290888873739451584190863642245082787016144898467835642697811748999889637542197529971009017146715746985696926700589424048896867451108664792011968734913086986888378206571586686003506880437451830001742579907412170927163707384187376598036113446337798730842782158956060461236059566401117036853319286364741393015784265560395773975547183832450401725365505536995963922333248500949373004098698298954509045585549600464899834869999494835060873912032463343362091833939143164528700784184893387918776671486132503379578190979008367422509985707534470474129635953566084263481250261821701584376173195161714011649904262806434260776710267873361870889806019084111167461150011346524726287084051351354228800807337713168013378433020151400682793884424806428605582865438049817670100134414798466793356541312408094787719622002368104485244500003390253780734291994203387660129334693666532605090661437504850051136327612519222001381896694030944963711133587198179094333254800332905202366814123914103305857053649405757133935766271874528335819314191749082332494091556869590148409996120059849722926193510635167609100669330061231445371527598306797454515176327568328169054886144343747865454927894653402972173780740878641489442400373266570700557813751582769608078857016839939958738739471491539762790747489242861206705720335038288105332537079373100908213725285069951266288045471988860644222179782236266271969822657596749022292388090084575271062188775811507527522728694325211136583328949154380032242802903030451040163165096509685446557267876709092060231436430774384179093052447967762105512060346701097812494567418773688381242017974363885933447911533754501471770858430539530207759871388283655851809697117530933983270160454836844905654780233125007767148943449128243439987221084018425074379481115280623280900524383111108957566177545289998938971815359714780005483539532717819572867800934094509141636744068973531353746102224094897004341887886022872781936352867637682254583783288355447736820219807041174716602772603998520292221433135829140811684247169369687708371726002266298825096459208482738294589301235901294434332023164170548448007291785609599526457658070550752957596959885078657545297426141596502780724378868368133698191906472274723682498282652019870153284770013132646674355051121987519742365142099595141811623341829858575504555728764622460748819168802088271555751051741563262645124489990077318821172972346273345051091454530726774895041024731568918682734800240062840486764086734489717680486373233491112961393567449519321520022734040348838803375658830417788613731452263986315346882782421418497496684676480540183401990852665294485485873106874179052943458151525462194739683026600894310610978669342333478663356074241181848253411460628321343372839355096709938584327969198992801285099245218206613685847489048138978519643445702440411180110519343313662287390714896452694628919349061560696086972702582228991663284093682156476311283195143289900080612863901850512708626136312442958671563659043997846859729239350029712006161703931889942007170124643855790324869238382862781147834543448496880413614996350093769228672872256768280871668687375075106481423155081122516298969489812371169125158091374798943966416806818767718545592372590381473340242858483894351496130632153739996952195222244562201665217640040805433119435777164792356805737537733156685231184370395473407973637354720046237023890516403690677247016424994084714016376708260014847663391433614241205674980941837575872738240803507630574799319592097638304569932321160881020096291796485947465472609254109849784116818037135664910410307187857373176048314159422199116628882411383277116933949873879726203383580163230080134364586261531182670023500684600941453010363961501747702844893903881508292500189491134279043229142022659973625680567584161061665072128204703852281580307085640760577214342379784308072891596582818924767902523405338180789283964291288122004982188628907547199139637698394944010509928853862603166784670166175643420497350505748913330492216742875067989554927076407806779562870856514710186711757557776162837444936609802719998927494112235808064811684087138410197706101593404065235055577598547834965706440578737737681243477246491263323432948759126548147831249155424348946971732846285577792455686586266169706462798765556356045704153108952253778432185210903183880996814852502883508033469867962921696872862963432546248224486823857470600015534259752860182815350667599230825597629131163460242554250274286209498585922858189998127467539725034929598295313710918019236106017412152670554416425373045940730475546781281628125136944268560956084804820284488608973729101945289563686424774064512084445038860261272895329799263084883273132503159828448879635590506695578163685324930643401022968171500170884622447336437054652898092971638193423001060727924513913569057172607108767892524255692879795804715488053365685558166822720551813926198558225737243926052308161181032937803017656998426626743248690796792494421797319592841646794718193164517069018258276729214400039639820834898996559761228685965474437973863534608124937047266618150380784242956660802729243111515664583883798233957678873338540070864383918452146865738073321178566346127276312994092359533112295385449028705723489012338206696574691945899008435185703525077606901792864913939510386247243186595853086453050665132574834353080493277316694857107737900390143869464519885792947946330801749201010832800076219575383018801878491888228594761921885907911904551912134015257447125195230300845027184468948407421385079940863886772801002342879107562088198606231106313962885740950043026887248408061501151734290549084639901111536998885398240652409157792469457790329568560399378036461559415547835296949430617910744485438824245560202418245220338269202488357105387290330992222225610578731228425776927864880214871356058339806126035825896155338182457396719798434291374030611430142291297282785100869847781513778098980534077351524376778067533178359897522436343481954621554519768838905466454166697988300702036338951021252483172607275281745016210143358736291504051820432317951118641865646896740651499193320578357707469810762591976594975872756696028564478144378031785525917597559849707809077897533083901100695377893372056298863767405864888913793752828307455583350732381461054900238131327776795423691128791056886506829520582919875025211352901561106163741233526801248704718222855284567065597836228641542581857966930849249512000652584249671642175969699995294533935708803832419305271552482456557530789003769710277259313439562410011389281708524116721095505192333018766940172795278878260330183303629917913503568609007341722241229213650788062408090078841504526390091669306355846220307861529001560001139343223401741315093702493732934040103041663537053827476510143697572180090215647207529328243609916883240814327467746444467368660492112591003548242411629644811829803698756458124979187243512367353850651931376639967513421414993751271945788376286588528817360991310003178379896145263899603344586233591387417183863960389966284373146890221708914929045446128241011922448267139588955013021181194759069054377531853897956531484929358470368663939694500213123177753227610203445641396758262113271735722150743214744767404549839951555574258871551037515295628307624500515334351824620228960009203444354368141990523647922233076692407028191847827100622235463345271886192380881536356431711891676286588318930451325225476620350396016101043489919219850436498540047659525847100789135113749213654708069612480204014419269146714054672624688160289201376934983409726782713415381526452447845408027621826084663375647733850346393740759660461889784456378922436990377741676826694503629951855575042389813404134405785264965243431667571525755171525423837333510201859856334143613481556081019718528904049918067815226515413079744863569729931781572211854189545710603861064824443251009559711727790067329565963902211913023861465163289667993952033585105697329682565578031728264349885494228853647782487587701794350071452516311623900643103770903988106713799500018903306341435230435737520598162597829754294628858747669192492298109333744096888706482487477276044293039651147652257830741394874309765377278598020219791527677913675126744471912058310078858356321164334708451109587495658767357454964470484496307127534343946491803703310411766482677406168400729485803337088222519037980570022775865110195712944452119113365194088542481646298171064562566889031205550859611899418023669406248938669604050982692426457300017705027685764101064688737470726822283472807079468204311670176702880771194558040083764715164514819298226605671700884605985533655894542053337102370023152423944694344461625962376101795955702888884015308298655587975719509339691834233452706731299129860388184358716271461405383064295855866445903430789277480149533338759901672464157253211552836841675827253442059385717697352059097645928092948844646904218085232339920689067601427625919119793609911497118960085243938281372446699411804421404771644835422958579572337978241501544526903265878714643771652146676173159859474077811360683764133537401743431405351116537457039490298959409515630873138114046887879258527130828619766138352138188798110580166616347905152084056433055421964896488665615907677786597624837961411617079303698777086844008964849392557601476463851296470445489684301862572009792916827953289324854700195188050533355847849394596608900654695694120805881597456613745726951145428508766193351382874378225265300645975515824059619098627186576026122292355160066109363633581102236753773827212680476203736389148403727146543906615096201297120077990480602325524919735382447941132717073152893646988286272405077527511261017619860814430079490655811157139426722390783568095250196194886737191252217614028288814308781619157357639545890231575190210853653626976979083295280873841472647757044658102045180959045720374722802471732900982456773405221505051704406566825249251553597605610624072585735498358041104203479057611097154621949159515640445127513500006936312413221960294595280056328420371789493002555089090612826492383249074913775518923889267521961075218776090017229500422719534520801864854502845132196328671137416828411703036189472979477974070990013369619676626497821568093313644202680814362141089442483077438155201891603115786491410032173891263514761215936328148141333285348578318710030390721350109777086165909572032995449104050025603344439675832677229590151764706855369655791496552495309990983571721420573867750638425650740130345711370520544721133100018780142191106700356306672785617537038799125369350303630898444097416477385627975068232062798694370463706382028425169009327394146121228497887629128736713641747498063005416020904245095053891850936502650140885802205699001459647626779950632450825008912231471317340657245806832630760902077582264329391496703895726130106981889593504164873392283195159099923207633146784277045069019906581536393221130344582769001936481288945131162920322081029416421626581654354418892681644688447043530887981540130481718345337040655854187283321524454293783760764609421221679855171703387885802478515181994641181594278482878956866735830898225591462487802979479158593089869154847250568383683330292379960334325249349778552702086072676744677885624062983444163780800634058487305413025083781980757414425302227280124113283703421110408475800149623685670726738742694538128174201208124235902470131489726481585255265474957961663978945002547145763737044537946072791003863046690984605730050342420202184788390781207029713916182210350906064925588616638577704583873492957775638678913064149285840677834884140547155118587081367568991582152829648892744973672652815703446351691852475239075137071507022260827865011548793018643824177828241627589765325874247460937724515658321064570959782843553341763299702005629484481035829728898234420708932233027005062365036233829339337683989188815642214857213351057246736033870483137149165545574138552400753156695447937395840328015350907654958385405001479882097636741327177655624278260922273663297217306396622713410789990054237068387607430355752157741206284965459335048457293934361478810167491501318462016843075915359001166961693177118477608494172193295526221401803829610518829532964299968935611796104324836223053237451337566964456876647754150977271237171629044749833637814720086406914138192528101134396361752581290120022520975404422753841366014672316961994807852815325473340329123584152801196613836386977893167432409602491642877433418069416510942997739341833663785348062426989717691737005396221839083778818225427353805218675070700990666841915146792098129334786638107826160310699254862649380236232577857789322253108775027982957038632455608376228279869174389670014383637166452544945216750121247453714761000132787165551811481615051987440974940377044490617716201416561358461832822512570698171120917898566103210663445180185812723311829415818521187676999367225280858000821076570400951680978202524412328946915624604324910653580075612684216514793614747258209836103354428590854746127826492622705739418708760310360465259836395054214268367401894429114826544668725840904254188524200334725141301594643367105564314747462560571791472276277506569602655083086209962549946502886282519942361001557371536252355607366950769666117088633886848325549775306751651298432103404269742768581481731972192459486182521155319913331517450744005488568284713051136947113856312995974128874979135256956701053406770944284357079399171460132126495325707679658171573014841350097841742231936709834726524349676516215263828706602068933915241166042455341414536368929804862434696891377759471687862215396201382799543037943766996549757916496578543783180113545450964722885646697084272215349312314594055145973815390919978753025281994335360585435399774663704019778046843369320577506291183135755718882074878835280417562683185665728556718126532555655181318858139393990856641653142679438939693444384864464782688365023740969692598403838973308956845131277714955740984362908568074061623265919262828621357085082150860135282534005508206789104836884714093521685877362776715367685047998809341806778729295309181863430634559434026364915689337686851449596664112084221573619709581569200056789045249065872198404057082406711326579901729709427537552431553041345061816105456815594644213137160842536723331150077129375951151955228990286733525230319623705488706446068311483146464613727570158449841287284569572727447126646273497235824662009246606331222595673764896898763648372647518807992906202560452457099520584015219849862532424146331532349386786785872385169391824085881482584627336206495846489349041848171062942141118733653634856975454578040792080061240638907725515480905132959703367171738136772912953793307476880704695664730936803406350774125845787738368626622662229924622398987342817208521946409297548063176468367323534764315107767238396324615050891817206424640509807494325399488082102596569107063884688828797024257390487410287597501724643654748795469801483684251149084613031014210259906629473618221630767405365186615129456560233309154013225005813820674756154690065720124462904172930085158756452659042484059185767897818930623111333840781548561679531121896737496588796430790561174631977295266813610527211970760086211699447263990778845541476040119175613409631872487446307819794380288472542891646757397439714395009265248104992156177363654948059114758438652019756002861669874578424199048027603883368165353953615230138445917362866758499428044654289630405981387135728484745733873453576641197497522272577211273668431565704287461180698689347465830833717326022915844805550432127646456978713355833228452374457841493548652638587819784166609884445921202617686571052327175924412325424991465380421147286899587659857398712931838235959578875854327007199648647824817724707054940830578290350437533385406578310364366535353509563406408086881204907189340102164039020368260168583802074665649265807642543741220272426761536165440600988069125792674201172689533610209341320458366072059294985055578034636342557528535563444957965806099010629554991151684506786622942735082224147561272786339542962107508507555928033090066981097750561386207823358004861417623625761390716574845860027583201563310717525007790889196933397604721039783945621028326452552045505836359085072743259302135606993458182427052555898762117262328418314782980706532651748064457751006751969941624769688762032178640522484082790725932503627493783891130630186452128375397325019958357721922107060405277216750123732773943718746323805000857086734056510337577714643128805473984172714117236719892833018732141055618410263892301499301937032917766175579351597394773544715515638996349666929180106278338284389241706539649372739054619135659154307331568079546185171280328118598744810869817547751689601872221257411861233384478194975806836286614141387793139129706915751145545189023845547792872205272981589105135534358990397023771234029889287604841444493971500043523862785920958486874277900023362026118364933536339872202671469113879682030219472372137441629233508842624329147178093751781694750555223536951282381622070462615857003618178571029024890696069866648885906537025794323309221899959591453128115549668447773460349705152933529623622253522576864182670687740917880783359757452297770915096453221459454112450745535952861194671878551481489646494946504108481476772244713790236430902174531088798731269599673105623973791076449143704117959525950870428933704612818947093362722110543528147166924622349515174469524044166580811903696518890028068904453764813695271830924847528761070777741002918093792778403983830301167730661683346522832199059548539606751429518495568967026852776380027281554743148676629222167669143741819120752372081728733802070658623201449728594932586016560677061399978640300206047626362541277519472774981259905422086580723692254263877543045717374284731363710393360006614837413627411177451073585346517646537776086359622200263820369067306476730487749081356887569303695712444639046475824237549567339372905069433315039901407925752273138269050189516523840809508346958089623007052262700793282363006033915121116477597200198093667738853607795869543927112031494435158667993376736290361821899972114028499511504389146352645811629749614242060264352355617746312112936034605749689669380084366899306553073288716312473665521177169847178019115062015170127831030249427770773166534561500683265305888955230826380816251489818720449357376746756727686099911564133142345646874118001470022820874800036135572578671808552242173700951235468992165660815903751141463103762332699190830364714582508734102812104508687930221827349318337655299879723380819714603018721147834535048185298990230254095638916051343282696035493416373957121165502566195873089707995830396292148417288594808746591319308418350798882481146052285056531165471390632489310009696752457279777410356495692746102533855211568538681882006600910775452381203148129454312229218347224579321319718779894140330857752027515792584465570174406401429155731242085601375411679809477921592874845076042588369512334617399700761561734960176422991155179054479190445978599536332132526637664562240832314984196639853310281096627431324514970818100268582091113698542309088334929438728135074934730179534235038784757438086267764989139151233492377947504244489568565851242540853880032178890102855809781397194814074228134164699884317997071179938468620156491587261823495706389024023997131666554515634774151321722654201064106117754361906019334708153749329214826279448175395520858034270682947105502909817903988840745150039906066626006204607494473565625039297814637994517203450529137763958214698911998095447205866138993817688080834648176837205929802318656704726354819077234727197524025776977095013808314449773269152531564076905870873902131969363622578000795305792874035528749878215930416984880138989675316423247368730676986589417528141208371331653112633841936024954410071341144705492733582371748162728995701586304031218873040788274686534694064930480518851683702045220427222246220305124734863268693072169613753429154184391115795720056561390634739521915068296367372097438061648125242715892551808685309006543996113344107650800745300486584501287489884488478419248581529843652202328524821112234666574035010159493185661551410970820147632851383493626171407456580972122778301616894914327788229769399279334810146932869638504791211220772935000367014905246501740109888881818329739220853153162036618841529471223989506602188558411436181796990422101847697865542957875768554032591850770334243512276192153207155408979171816035774962857432355085440652269199621136826722839080234483002120664368249980342764854361870756744013199927935651885061133324619706280974460219429541655693734391782783440375793420749088201508661694147014824616932951825862123094157162092099514448390498594224273377248593054580924503251910084109043855402902858253572929234969732850415765561341406965966627343539179254579654512842582484772360214410161235777725421797603903827140383360855902604211009354804182172719330553717936363925224207624613841907834354428254263622248581272360524524579083503779061896812506536145721567293390933587264175545191208789917384347747995636167975177688996850757215916377664262647293128635902642731861725660811033255981453907005339462167561318019380772336327799286082475728757556914235096598217735274745833582481235862644154026064515236588524555335777116535162097838145257593661400937000315830108869374108531995996886059851929049563877970877533124675575008468873815408941233531724785171260415947509069935469067486336811840743420374768121828225003601082318061205846470203027690081353994594657059083667628175544026728725011350462364588098991699219136331174925924056752733453270734669153776342948047376524387730812411979447697348036586704188344200873670117777207172099564154861458450235818653000940701688078679693006365088139107269378569424449030467603136395908416501325067072377068929840045629179210942096447320871866678579396166142983871604025401670763382101028534255231568294931269908142154019613577530264249099982981430533905384847690280853557506572570593526178284614937371122763816273026641802437103683030181554113470196279550094983130873024582456972393159584412282448011756203551629041327061397729226913810255823686591379838025348613374518073927881134104532391456014245491142613635927644936731091428433299951842453176383087693843128340994752613816329007960012148431320430676547909028523125689191978363733198295737497304352091202281034196066363392351041428571995391736102961205263531537736170846474067723623762791966768493405222296796789508975903580285341850750397425236257343527806070783300575399354859106410273524844067864429432936970301138008272167599379608694935253715935836247812877897279795172769928207187400381158654935258748561193264477801200981145480343184850249817104166727183784913972281086468158451840346757424819211532301189369017481850870976171203621744770414067664695370552571782251668268770685225728860287843234526450943780789752361615383637978299341275621495608351256567985370619128166203460211721857492212808229415828234388776319468472853353111707798045638936106761559340940418902636489337557389285633044088697792528562468658820702473623630466897969155464375417566128107367129194140611283172880032664369789638366111046665938531286978189287055364595011560204543524820657855275082767567532468602071445796531802023971390129217983549060148387648600587592723051389024270100204226141798110571860542814996287186374384743690861452592804710165834789266986507249886852366117842813194457506016387385018626555433915198213409084539064926295686072990253429507241549552561699611807630052108750121786720541094441542011730556704328130723794518215839395031046776705933741665510075877413924807704802961768331846673086426331850561318666670010903835454126300981342199281842459959335408297393641068758265103167757072454801832571447059854672405961109573361490892600642881589855896849561738286764345769372159298180740090330260721657947320313508846793407685011360904813410340145883558665459775173020370974560912699202640089114986946470561292058013182554521869309032107583253861829599045269663907098757912991425523518703960351034387774720427743796289748067570393911769286044957751706851607560551929175481816508558455066471684304977418411817366304506050317934335985615791274562057364964176718197550567544919070169182084981136645178791941050804788759324640987153228687638993977854154206733748698663514861718104406522969079094620143670740240771564490042378543536270627583043479528982631274898738975836167191802799464752808205241787076487702746998295257516113675383003076088807098929571905614944607522867459547584910422802194882227641717913026591346445260553843635355555312914954736977565418690166433719605984539897745761893386662323379910206934241369455079384379238209616110299646475723483633174772880298796707369287298816406066667411062522055598290542223754398606126888195143283474628319697801255631510768447415826515710284035588771015921892906551783353386824432172476643791484853907161178428632654850445940894695420136844399243586946846513686581463086310713925152872150448138966668692946535511450309194723561910690561707950528747100455019865363410822506038559150153865761371812291381446335314949680647878488614234260632405530692282816207659077316073173803140562799480160481918100970543746920222739509244717002528711303341093967539427887182465278613002194692095319635056617315580104689639651027601687208134967403728141083643211650084474284990632966869196060790668566617124667413385510939476059294273500581601663477415519524809372718709450518252400129123969028778343329815448721949369347627593403813854270460373229918305504777571737186370649034959113688305294905938057798097124705188166417922420772477173590803727011011783817015735890040224960935844725736876191464305397516316060607103968659639125521141915790201772604127314488091706951376557477202127286938770729404198791862026892709632204143470718391002470353280776426780293340505258424676242212542094750099715451647958841311069782324228731711042512534444451947445413570412897176393080496401861080642777875411349961279862186131825587599122963336624370759868981920956947933994576114562789994277720929906580178115122762101575103269898428512953864085748026826969865860492012679136004936099528548548625364922245880889384629887149959873739061372345031653699447180687022875504776981554512010427464415570003167669136892013259348513749607430515130641027931600400419834470662113019949326038250644737238375746523954311635840772945187172556630487133972949147435523079563053802042323023666380142708215351695837726894832068356777732201968767413240658466258843971035296497023104083051983051212696078111626562804750193201268950265909499745639891055694447815942406892509362118762026559828340803928748053572667552620233358736978560158213438346372224874445815680919376593518954689919619172789703687150387371118151416277299761576358833639897867033382776777054516475894321221250330218070883567125197190880871320953173154659543097682984643277193229605367564858025378031420177218721957863832544628654028109726804734416259776205207161261980139104732970226712840602621606099253366070163103737481627327004308182991951261726934015523092771642245524837593371922609345492635944210589144191093486300560028097355143463321844881824602349662714849974841085056534126569350828435377886617201257131200762698704127487614790987398686130062595697032957658525790582442212074488346549184773431039713520222912727399418338069253930983324817016237390648550922345174119882802832995358702294308355435330592788681283065497460493751093107403271360656169444711264990969524924269195548903702169456735335636405534089414306072001995812763738642677296496111903925263444320552476820297897741913691489149189636693329356767330277784884823293262301358957647513580499197176545989594564816907542602463242954072661399541509876612534336087701111555862307584708185083376531189759109916960212230426677095638378237013522818037597353594047966667572448261941984331806412059649199863961564975348037314089390062825437400863656814302219872498425548848441645287566489522652569557658067642692291923046690983425063497978118480483149245375279438867856736122483687881119956467202008900639304786518363235568321053488842597456849954677674243216537732635260446269194645551443489246969357037642531369211696118227145860551040691381466329579439263917854931975442004652535821208673368482801049013752234065130490434061181697484332125524024832718007730185280304642639241334120741719803373870482647562407619508286358028558415958678918322977830910626229081698826796342927379487778596882463278252385860474347761917211899315200734689894102516775974773842263270074021039574510219816550682674543206844780936589076028065420649200594246578430910980962413304563880986190838655669389562907871448152547016654206827319926411488470541355404031213522149331087669848554433419290036904626768682926149839092425197160738402205878809444595421903943312773873468363094822187909960728295746286690573889062301971613602227510537388044010048327311113226961049211393992753970835838135138564541099881975145395421004204352819710233345636832520439436062067019343137754099718359238859870074147593191632408603445620287157050031553168849280649781070860297264289735732534136644999478513419128059777712858731335807300394280841043273420611384953004908896946567823452187758593630594684827109672735849831541104679154557266491142856609141312660980294123047435898264017453232128583458565936257711460592029290838625494473442160447910165704845825966081832195520012676353837272117186845880890819702445399265866259965415105132198128601040857291962754566900822378563630429764552730694677021637504927224995553269103512337056437979826276765465040998320319061649529925102093487168645282696832991730527567784413897006706079645096371437404942270097299523886879268667323287355496686897238793748185551702497670806549272565466086029864238017358380363788645683450802081418617460294913365925595242137637022983917933910156472597169801315687547198852979053385793181017903062815190213331282963729507350144822644246677686655733225821718133890933263658121468086247856014855246971058609921553087146703480946723699066052040561253514734416353351912819875370786877727983931700060467794061440434161995591920362012839295236483653371842623598099865626494655513823966517303360143776903619310453381630223382493663456169069370716523376631373578303732288396498091532952745713691025216490024012611026486125602996802021671794529284774794227918032616173647517142571157303227996849694750124893022833987144821122382721900827068276080095476238951913064346172967078261366175256963194614506717276963351811786344985142127077843217497801999019697602902116638618827010512637482303954601623284088237860906987939687064087432450073210274802708800715110127411400940704505796171257810296801144339262061678736745674239908480273616499322947293724297129128352409191381874894467217965957511110190410524409235122220096555956972091151575891556692866239812285473860498858694975282216516630461059908235056867306296972033037690812132342729973610856421073773915807896040345998747080516040851254369783629217716402003146664494440955941511746630398154304696896778739653255566151260407105206527835423423444280972426223861362378775296310486610530306820702237115359418280511543978986941491718688783841969037453904834077446784696354054166996752252590042782923570448054790454129438150556152509330776315960870854374013101701569398690562636815758422786430264054181457636441942837725074840087028369235599473887584954791608921344698688537222903868796202299120379333623079714284583756852601409952773174823525875347399012245914575968907399033377352837883507585662546330109434199782529608553644220364327414725158460500675841423447058725054755641898649319466255216472789384683340265736634378354018014060073147335846783418864986115158325930694857504242745831941275123159386140632480210092955362477438051299511798753303946610119654845504240484696381107670358352988907518867678942566073531855682334397040282366825239122623525771394075796533016531553227719233413780670447789998765630831587484950921388472657185484280232206530875861347804115577406290321968035769102948760963869400168948657878580555545146959579432173682364243423816480008953103768877694101268565308480371915353924996434699807326231752957790726439819946452593871112198519098382105301394081582172014672356581762019918614991130401112015813477552489013911673275794620558755047674345278957817699938484598020647789231313591144118792366042839907925855512585466608189476495910540840489678820596306497484268451060401684178287274008131069510943786768850911259774315045414164429795952853565553875037248024230705690082414077536750485466950635165407750376084267296025436047879995542256833715904362365709778656958342173592559951934680860661224977161782319960557088839599096603091384453015182776508067979937213113762020349530308002990061747228965315035659034472725945432386307854714755408694661453111413158525326840988065055394402194607405489534384464526484896860112554858142130933733284873622677249826813075075796098580320755214448184721290471675202124792098506656297152197277192879401110474048822424890784893879382056029637664970479476509629228701803229893647021186959568637004754559778584319456216701859135802569107325428768311348554318387557983301468380934738076409186537306293729046974521389828639439837945345359113550720491735343476000254646026131573415575225720433947844340567850693863464045797905822006563499799888061918976716866706829762111485158914476451760524518361956057337321203866171454034873515270724966333936554468889409046734100685143274589564665831095712498380120184371801858112214326338987100854983898603141143310409908218380333287978394738271300279212592506970963738391589087785550271348867732285728071116503019851151162798664104163985793946586637327799134122817079045444164199085072733956658993973875899737894837725248649597701200045589263402860056407342682115962044611388642653767784828910813042065960865612822850157440864033914868844461960816612749344786512042589623192623576732191201554056732312446487792622594152135371206727691884610305676316779902879802721513430902247960356923023875066676824614012771480642839938455895640031353821757758071827128696438604736973823751187256705157494629561587656842717194332540761065019502359704950058504791044936249748215225799762792029847709568853646002839769052666145136475592333438096224459413177615280186217261011460150174490713149679237802176601108145524406284031322816893775236575172985760724604482893682887862152859565624971573873519059563526708779444594131976619593949044142233286795151168394850879948670270900203678822552773440924468370918613366728434632415164526386416546823875108876173863682417809151385172025938885132348633711007171346065669330688712949577793421932400157921413330716990854710681469355955119034901754755942551551854877089077579223750614243545429759355602547237309337980050388676070453171664511488046054542452285947224902793365362772920169688704342385692478840293740204094132288652267728821451507535889684696897312460842629467390555080705105326508916135102296504393817016359722740761612005981922871830683300797170535701740282423735522407336616531909355027732483125198256866667554717782294840904744481206631525241362076441869276908997772702552231797827747265292328842710932451645051751742471684949384771939781179510744470173113103973902847285987443053409660783184492934446934735708233816348845061353516029572773093568892482142823187774815367627106135792583514953011198533522622609084764873756921163294008840294327833921362531094513198892716227267397182290678985285962894566177787538847984409841173593283542042604656234406373895972229659508347242704956118639567031873620202662110474426427730278411994921157782891239110520322064225704519770155498317011462812490478725841092514545965177556421887436640174091764782623259750928215105298546153362146575087682555425035658605169359142132323633893971999823729208730212816145073670317851780954583763542190717670749607436827840827826870355103198803124960909587528520754103772886829568661417672664146504306646499183962809771753539979178297696723755207171946064690183379040610280001366603980533774431970127271656819767184054380164711378184817778159523985176508652122933374423810379996834656984722403170178635262979609221054470787524187595313834486553751736546615574431442442999498925332957478147029861138377306151715627488512208460735903059818246473768743673180529039738375935115759297549571043774219976843150523700744967554502127520606786108359046997900618417649948016137053062732066993090022048929729729089730185452638924606043820639890752293969696893096229746974756046282441467196922710638763663398046538144433015255035328879510701689886773025092317808697831314590800259870769863754786448911339810553547324529881108082196719750233319547857635766708472277945287940591433020606113445644960896441833934027569080136857228801492080772222156277172705150145350831546977126991158323638387996581459217482744632952760744295987985024917815863435892932408468516481576507973959000550088288255591839129533240027539108133228241670113403056992691890352473945639231952064133688362815009036331198705036335214166804219093206173804021787083581232353805932651347733660543566811157745203262250485105329055981458576769611469200138686738637087646896645438169216229566547126298331554656731298098063119943157195502898977561802766566834640366127978128211054733956678092991335747430937280757485001846807097600189496359549987228810135621156709424839476851220735006853595628134626065116832024392942763329307385181365127417681842473984649342711663418088650203997144241881734436852111376925817653292335568225050864831114962021196968859309422944279974837857280383959433058284435924466654755231868363204698489459075321964346109600968749043514875774759155282367467316362427928196882975825309230234978251356530116894652297498786300122658641553936688791397955719808247102823759813526218446906270818950297758292488349365383389321425253342967447353448328122683921134889819327080374883054221820382481254161428694608872162647849718274085018717514508350783104880201230510731419607060906249690268564328748932124292943935830869395360809943063702590843316554405782146114207741520709710594948455136773670600683492992621987364063998496876584248749399383807479350664087866725842107879076066581729872437438745882378705746429728327352909109577501276512899397657550219810921618547385053959946039730977493283083643671843823692702917299265631202762646901288619008432973808755881642167943845756267565029271955438205208627987281017202675609413104443419481475822382933057289993413489704219180080596110622715496509714387305953907297651488036725062788692450036362022923557450091159268674772810206166388644895164289349632533737539401922563622271225122213580202703138849546583766797424344300990315836658297438659064037725759898762043204131306758312211272145554498579901204186256480818965040737972710550587235827000240204033071095598136738218382496833194968818605444037502735347148618870294271832164065069062988515270544286682242623377123791809761558246187497556347324553137797815836925760039936733714592755546836945115301614526640364403584004756133113796603313924366347818798661307598145661691721120648460853195392802307941895400341473052097251189991145440429776771226314733107911103560291952892584928392657879994387677313838882769327262854744344561291872472923493068545693535477485997205253881445679285891412452850671527166186042965043368839961018977949400158858154013324461191884680816774884708419072858949149515671417276493705425557824806999359841840311216623493633893460655192770069554334428880153134529040062161466527364361951611073271110289314224677163267017844289187644566234914125208880243464465618682391257401957002662837779831460015814279777789300337484150086317959258826279352343325212838919371870486921306434086387984109136727099375314717771033258648985963972060560061322458547230309689035061361736853787831592759037644948334130184514452922728450162893037079501572912297035127304801146295233907300763426782342578029297548979603296086932111350090215417020707342390828881804776988375733951728676861239586495711484459318220620027575548644914183820976716229919758179568208731362792806499905854227190069164624584230418096285508942562197420692291701985099709274777445039110578846295351223926215675953358333969909005080251870714346049381787189880290805533906496687840199696865882068591933745067764653026349136079653452949770352100784976298283403615836480303498232871989996231450007248349831791851774947333914894337258763598709514273861878539239098254957328158574173784134015518180753397625404006443647987437607065466448897639005779654183536533948729605060869045319457733568831083382967974797103097218347811935567538293884530550461789573575765353563643625401484408351487631532466080858498054764699116629086804161463316880189861395039305314443174634994070504949950525473941388213905536362130929263802911352253131204383070462939104952119078483990102690218417943310403224183629139086370519836951353644793661898520260833239035571271265874519536696957285360927339177950369730524682964717403284743183382729980290660123370919802353718602443853787643322603295773556008449231806536747954590527114378602481822617139313221772463812589451519871656862454973313692345032355041073377728857508787026045610474219978940937774237327977952389196749823813280698410433905152443522547813188409489376672398721480132687392884417105275321446408355881540345416809278472624685271450442124246663763039378932086534123009386242123955623212987013810268504653910293826555761197965849550840353568744760185776208428725131411831168866605808712894452893450053778766749966355651179823208175136011706034286829375482223492717040077117476752998015325117482216485860364623038385923791053974137470913809657634248969083495402999290335351078853375598636490423541978057461728776280207606452193771965583701429838112892429727778678808751422053031383481392542526917586763752483758843096261852808824618387952109044511149118757110894228907560814023825013835996380088661552536336706072259678954215758846301401315300447856961342372451572093006881741761075364323891039607815451631562537547965764933693080323303092617133427361006520568815975370830411325320227516686348291294893711195984728549962096811218359749291875418051662848685456294176434999717642235584561739963806034144106487006012583007762296596093614515769397480375414024693662986825709019980433108426021222406345334092314809954804750140606928941472906057852307916990572601073021651361187491492764026555371106083118623617216230916832843046257465679558477494238394271852175256971328489474438956091907678805955271746040181264680908022346648785257295196341262665547758218926478206660755266985699607937290363598916343340078046542088821628287068916762290982387891497634536436219594526943951272737044018159701579662854772507267154815727756144421835341021116275419974560721566394718544292113682849970874469805491568900255945307468907223309860529683767293678855791414104912203237229391160549477707396943459710828501252289404700121728808691378862205255983270121565539058951049642982338885004982076331690496718586646712528585677873198575173216813659140912978773582237763077871492989302924431197827923390137146703527837852357395863621208384558893547389143198269768579012087458547170324222515828612172152239643108132466772425273711497302039485434900045018006459620358309704733173002375672126339545396529057444451403740566962732686802076209785990992853147044817767427704288439900186064244399914551092267862848679917999776671285178373216377109989324377393077929172227262960905988531182592628074492434534739199139488372500002777184365603284108456149269746112270347395893982902707688779756197925240852918807144913864207140971257855894388949142416923406756721616838270877418592208452884052922806849986862472605883187147916800023682846011743103174136462401965456491689965216768609653161490176888329043496053734284668928552338736626542539761114189576544659594964542377135488959727934423740123578231801056456126609602872783759326310477061681106118886486183106962548107750489076972830987591101099433289461098343942038015548804338843390937604989540912573465721002431743979281777816980312468262094975005191198522221171317912015321209914145539665431697925642469642672574638189492211664620006937230831978133480172513297323074603222755125154585842930266428237211164946687983012167018687368061783775442781760373944042786228959232229129468221531737075954457484027844282127346590303100322023882814018162694839830163535060033998874106005611976758225928166655410606984471786726075396709794751269620771461842613579705949463498231690184503817339454268703770830677671496275668244503637034580346529636896798653044012768851024355964269387601639445268007847248472051353632496028457337994665246406228254877861800220595141525402309265562683480734897293299081061403239946742263826379785714445139627012408231081870197597245856445161549783315828007356387573882016669275150183857567223846795158168552073095013505491212910040513256488322679450283600144866046868445430100161524773573315030730086003972634265839166878585719172917839718339019317773791381429064566018851044118527603383524531643800536524789015598420318238709658156067260994277768480188628576746582913436658531358313330781237460866271459630202122873946059575063501959447346392003340165753412108419130928029029158656074102210332774259463822449903698676680752363459557063035921736142767827395623036689003860009080589253391038001691537194384047637048443025730301661722748946694072354948657082664536044990053742430577411455201155237451648624638104009499830160861655145508585355333154182259031297853589095771305159851740964960155487091336186079970962290907648882045773036465273569076727691539735357987299838958875021952747971381977360875970890628940558721848647795782109374050832476618643329648412387369323470235433873240308391320900863346373732477171915952159406187180345761020641624569954207391642392015110469169462004537786424378545435692366961154502826234123515348808006787540393576443373794942111175045900911427138852295043770707331990487358305670960450401156811784741307937268974369531761062971348586549018928901875298301165360999954138272014998558122862991550940591706058884574730730286398675686773806720664092813815478767728207174234820107394932650996223632280821085131567145830222771439753257613089517130774492395809489844580832734319593100308666378067356243725434080799921098266989460152240889056424968861670326257438199425935999731527085363355836425020479891145547512432251595764421936681918248510497234592878757697345875235152257225900347193150669938618453964463152932297891655887757249677507936460149842504773158079915440998123607453090325468319222164284215459253480750243854848592228904586612604378645717320207716712993631944359287855785708709994184017105811333404040063560138733263856901873460329701496394910011864112944294543759196536113647392772791645753652625137351431735438779341768858550178098456454556616305684099270858921762252545697806461430789803541333440580962031317903499200316957223265559831559769764793265618919662589759328183810003729580732912207863745097647758732101080945991953350088238445105535694474957749183908528762515613058711842783124683174603980318039854523452789194624349319883749603568880642759094967571596835595714203962487451496138309949626689449047937260246241030722528761596377546495432471611879348735921188846449261370857546055167017419629394167068486010611648222616309770712971809508589532045550526909267504016186130774174980005237581528426044294285995108993609119365916095124532169175771431186796880651245029634659015994483597409977627003558750080024796685909968512954352993971665759340978461521338212287552169505428933333914913645100326029277622759374899205193817282646062142653166435891935323555408258743905176874081109418878397891115235287713085275868631507574797951524883353325575735808275544349986203120920812897760861565266004624829884754872356574387961955151527428973348686426264642116293843097922891815205640301419925322811653903861363492335758027563754924595828099087853749824875908094130074622615600810971895212104668496281472598565955234777077612057018143323316633623301942874023920930992382835335380357907634558364742489482029134069192701809764674646268929597365431413769864201916674675693439313236643418093460918131778282965721243260973725761710335627061835429342775838491146926852200590662339861366902301602845259119709670942692735199348027695717073412589968563150551544949891708294259194223501663848520421488368047679585668592801250027779285497885860716402647644260413012621071652794726163840746658232538041958831581629975776020918710534406571340405577747908131675985916554765692087731584331707876860691782425799916083186609425493038901122129583486951423698367160994787404704601235342110963229758150679688683897795153965992990673977000369610064668556997992938844825836179952500187492744077231473299505729143449993942832768169656471559560250664862413363976659646744426689916751948137321193977400606172043926723365012858872332056339660352726036200737663340787469158344145949933080188433158352146774874086681362054724115804122837675250749390326758712936625669431373090927239487375174493464253506152674120649580392194755929063439877106944005039840738524293824230302604625895143289311593055671832363454257707883228088998823762534235660357663327166654135647803563974881857231959272704737270731766332915705978822951932541208816067634260261729783688534448186000581105332744670444809613229845990883053383601776646198801932029331837269930890420974056775668203825228614632108302825501666016197563498814882984106204707849965810371505226535144621223228965300670164877840589362465346423571215918396559187830652510521533495497802117451097266856917874804367435925994927634043408492181471151523115871489480321529499227936272316700533169817779358976353707149323717370008751579634059827940879322492815708949384579129596970015525973402024125169649060872703983364650222819464386714676764492564846372273513838338213449294923639384304957225292319885622381932663922516833154611908972957422345390154010830414459379788644203153343033042037234640506562616609023671526838874301029598238007538824915954498418246668833040309204999928955191550991703387320247511576075006623602310616995594296911914215978486990004945320004063706152436531161151323778132710715417768588674830574818551628244721021157750995602308659047474360845451793359962808413928138832994430824941839907546588302087589590972035012816919149002187690340085372609045046734766079347305221700207299933891181840545544822288476719916339312175261237913882510711957421664605142595625676436994040170321937628640594407213587345613577790025891048772917228099540263758704331207154063331904800229856143850322031439733952893127975980968830865322916167536682640723952585097945264832940754836524935574466150987581193908798348875690715249724607677195509260038585949838365187829915069235479269035947144784409424641159231645049526387067446110226723441967084917830276311143524892208718129018573081857899310115541907871223486318847412935115999446881722279016353071359123828270982705914303746137601308465224617860350573540532054185203089186990549663867858502686629599432487642210873970966783526010020381193909318942408412929477806412709376476793264971221771501194425115960800689355793816556980391894815250195590637958805140892374582851715799911583047751445692405708678003843943714322451724125292992821545158337100801198768956458475498065510224538703948470665290841306979799230019548219179521754965170304820479897445209622425176005537790749916890942818411300466618204358921662258780350187758250356870969561267892226467517034604225511890087762245094164288749663960457485918422985361304140092985940754242819728927589254388867897317662839433778718761775796170604632128176810486531789312943385857926901896187041328964821765667333594042501772008655941568824659498596237669936796456551116800031485954118513158641881982048907730409243567250049284783787772293689481923710924633013625648743849223168585645954324214330959313438444595201630315324504620027303449476691967377101799653386154115646137534362546494137820389556707322826462480760174007951604473998514814662584438763768782387629648081889049804137793529116533869421362662454307440343758835224106510240807272425789342972435027152649000233079045388070250362674043477016635580186123589813098509343804565998238870328030386586601891368513873162730592784906956523234584578405851009903319744227561478225839193309257277618989692211894338273083445046990993891975005501042800351719171403112556350171352292427561864447170046850952963548407384515224583966080466856559246888914431557963797126858631900238171225387509377595123021817691772683911478982392944553480943167985211483530945959924687646598258970271508681652062405920295163508791378380861738172398557032816047896819273067115666623815046520852358262305022691617800242477604787898845751262291798440162934441408146408358953558244272864141142980392927748051692626376442358241157734626149430817905246981275854095723405191324008066801258295877385544023699373896837093433671054774105286506825348004954263949522417261063480469369195517912358360120883260806059375712674354740221215917795799819003446789910162120574413924183734451764566278607604353457023598251788003873308160561906626313951409657399702136342717843518644095892076993318753530330609338370736512020438186275997919151419992347265422382634074882424566089752567396789384201218810586546873980988290169607028483064739031470223122382081497316973207668028454232852856630169295838937026639755078318341076483807498069404371177183564408094394181990124833737553316963593395056976451835331066958426132161382774287471213749105597093512312183750031376974912273908921604570256951001064310890368370058922390472544064139845808367880627924256409486229712508281781924121613187005769017281803538393224540844614196995681105016826750033776826058849214928014161672349265192752302698479901588741414287662058938375592069186915553696124250481716884454917252923639702128140298480526585911672157555526211192334908354733954285216682803057521297623222382110930192761233353196589711330654204700906148408449133003934571151911782387077188207661074413052045805563828309200774586423604869601071489190109904549183387834733743844792204890071260083417717486622889733409185117114520261575955214646393320520906204374836293279928387646375925421470269310951865541404563809955072317052565208651721236213665784762908199125261945121621543819643302450657642364397889400516361817160895111460736560786027986544548141341001361135989049005033260272623958481368893742343702999612421180120034459941395955554670518983712538318044041330457984585650742957014770323031569384841111645441827151074294594219880771698079717301629989523438744666247713663074425032786642440393970322549906054454380135400859463268750603540601518018391443209506559336332438241836200562979222310000614414327299604748522032795572302273232644832639344172981906786981254621527428713655759085970025753385935321438087426402665600474658599023972620839398763993995388729462197245226828676743120415072525446225543674876760865237546387312184406178295307344399511937713375825887960799641405451202252408987358931707614512018437005687677621352544160534670731611675060987642671169941367900114704866283815864996854270438377768514711969103406718396185505171700733995219308615660708061692323191788772323514190600823449502277539305044931167390183443129487784814680687594570011344658427592703997682381857854021091766661289855513155428355054536462306339890774749119883278317248534152002741351680722550250930781263054641176860479391587396021438666131128068852421904846473456830696039469947706501238882893290885594750740896003091073909177625937378491812701866267644416069520835400288385305573227968694765553532091855174896856360023616809234284344853287663824879539804198951073578971172061631672643201712846665547475923815684948438351512806672723079598538395018178471789208542262022767743550871210943262141425126896034383009569962853367083757338797871104679716134958951612132991719759295204252390488293267783591490229201913673282196619214472523877564664528845515743352674339620822531836655103833142437121173344670424108012864017938594545371449201112982655120582173844770623536451347347792166827731714635375663711806588015787564401612993166566060412311776556906973740384906851391660488351868233180268508401446046993575182264934474319308476841077298720031378353444315614240764734433566361056665165863561131904994398800974917552505008127146117364573898982204321543093966296462807021775590304395781551254587792504101084664801369174605470694025715780422919330423751646301261092538779213937107626670357942709305559409663104695143491337444824712365342794779152910944551093599937755449396303039328692530375114472698662709700330040025058866675189067826803910111071585028576090187164547736805876441571987020163485127411919678535639421384734963402369967740401511849145270068335150897697770992042658647190407239576879118756364764279855521467508900667044258262362359801809587236871303066528785015570514782861110569875607814821477567650178464388331424446104979881473018336584073439323228811221910404828230800685481467138533183274184373467647576454492578025051741993160515938732165857109524727234864629706408025250366276330094899175279399860999794063543107067111984614000117744955064210427213061402349930227842450375684827880649409855554295229371063616313574674374670690175343785902537244389849466732207424440880102949511442064138078067307340226425223065614287597442024878251759472625607872277579501547618678354289658537572693518180071038833669990199556734114565487628561698997489405225555170920405413854080263169802195862636927292520931363554376979289933187738523020985838545815246740207463532906284876234960438816565623240957608471655422221497532828120109107413193258953629452329475797247928541797396872187684027198236018105072284474557230231877313444514524716550248542357145030198177722326950373005805186734059394874517316137473408307285017894973622696191316913557818134872478854828070345678053557365383008449356122012178669235798035215551732476472411646103373434879851302607867213173194308753719874162491271118002460201696715117756322268834404406934137505685709185571925219528084149730148427336090381204497529075242082352046179576383793155124885837300522656868793599996570259891323927027857634223662703541970680444965951648161300267213921476702487402451617538141739785588512439817656185777453029494389006944202684439947561921876742097949497942812000271979565199268954106674020708532951233367664749641399028539147812186321288999771201539276024396321797915496985496543962202741897659671371943027034614221552262360435555002094584441663242228492014615259790475983960958415337464428423880147723481694893981908171150907736389477861386936782933120793631673717954394369159641323720903029177590577998016577094461148784036012491546073446494536353235598262817914968171693857084974334664886028497355680709965644446117383424383620794047170863744784554284105110570551852405476615652103277182276577011620277530838082880226796688155075905454829494361813016665506030982825648421373588826450319021763628012089433138734528245243048626638391741421431194961176313985769358864507778848940863471514130838612782974832717247062303471728692907135320133792276093257540047239392318491584668860868096914785134332769140494717098593886369688708546233444103738085714119815760856759931477556632957323074861506489146356172224823166727445482508834187214019226660406956101329882423656075300814334289133707016429287141363747243058350801053847247684848342906452912374545693416110596488793684756702684350109568842330228600304505779634470801740137924640579402617953745518408359895774917081180783810946144727294201680368010612526903360166924982564239807165671771153208995327827777708980311251324110499676744912297471714320956954923518777717069982789540270506680833422325414726999452679642785216410570496944963239770351794728500814808238088659441945990683314622032939182828420045851954746554164834230326183753148628244018442846382244475541949798254778994027716855217316699463243739857936649386462690673655161336909967666594533900475572173903123983787733240081766171925847768985674515827749470753933762874147384983547437540080359548353491837913933498531484539926157427545397987121751547918014196924461422780061211703334840166903644771914572236023431027601564918924925554629112683514577582132686470026758441645461103386560819570571730775691002578935689623068193575301105125374754381613854365798009818007466285380438125388389097120771701513768685627206803078980776607812323816055669571240758633092121886689916825596111441694466268888976101752439583287905033849005033924743278109241791032518238512388384579003559986406860953035047267694279265522668858671257059317302692546742296273240957526989035861579645754368202479626396080815662613854993350137013286595394106280740451845162824277160000849446194073790134876447884223237057723813013430900872307473584878583553949534874267703211693537349771373823471351278252018918647113677627319978766044941809329234954027377717352241362505631195653396723779233778271811836345829869153093701159802346159774376709704775510844985180305604501205453255972646055489448659800034018013896389672074828973035168985343568601985092946739759369524566331437938228813237146957819454372692432784524307601878588957241610862378490014129927845633462230942502519824136444494482639497419318484718054492026160972276001876354003432455369388912200115647660286768647897683069083582837265289210697094244720145791037416520935573224510685222850291748765002366267212329103765529381810327960185660665565637134657491057282691631048110454341793922486517592559301029620730951723262678108897332659004740113193033292690512258960651556523146619715815705398543835843744868851404222892088267787482440179982876709375529822240218928981415211447963048767414361554729653839344480731420685905581842695894291483465115473579276346621537833622734121064456880834880417693043395509160702170456848255042408516685316947825400888931887393224408727391367876375288177597845093320252595891434379384319456686615987209336301769306948721736006401968216147385400363775499554246425663764209430638073290215344437093832384652445719221861337495417635427274619863320309026260237330971556584344870850765300031623420681714372618449699565203747830378174738181555055337572035698707802348413385016992108255638454157476674572853747960724413072111412434233410466395906936371487646820382534955032049184679503097992286859385155597988978971206080335041547589333922116975068637621636754671088050659867732167127482869829077193173905483937303035149756829275169423228765272522053938388360908062921144715058594472220019567011493025084857060145183979156105054088857786765989097942219977599663911830619131778444606885184046034114954059216429254586503238525505323284697413054815202424766969748358437994492936623032047014809039454117159860174927253554333246849939372787587881774410768310756744748502032142109338834867165003371321604443995859660046668367836037167451478929208601265073125049696039969114960921646510708133683712153859667535304322826374488246903436658095874063210881017948833738228651474449947876636757550507288829714844406297319719052210036223698815305352398791457827267846112352231145341022124039119528108351931609809157440780435048160995855918409976388728596658868681583189867793975145547083919797034564915917847786454271448070750882967825407181253762914839169215493605878269176637640816042352793956652875812599044603629123801374241195392181043293564263848065904389421150412943912989762209419096975973210574501306066708155975725569050138858611324139974853745795591647820322188023890448359866920732406265261008216570487207904868394274326028571045588025502354312763122876578360928776684587331802669883795830841576066921829974035846003740555275097553619389545818380484718224892891697708701092670068130750524962182962125888283369851715021261335388623932554920111610512497800318065871159869168537686860714854847481080143813723043580887108238519660986364319261871801870038840391305028329963956509782970256902907752231333973026871208158165260912428246558101587283872417984359661259625686628532429148166361851792875566636843793011717654745090194145914048436872816444107056757057605503221279901575909237738090043890775782832694475569427934473978423143638176976338531690496221176051417876501099220302638110651435383431864069239055384395210469133152582801311492082189323696704915203521380972815641515839867594291655566678956654690843362286640265825864899760381231245260118953853078328515610347129876409793829589133515715622815824810031172985411723152363950872026856689594558991271529895298985237995729912994063285038109237944729919763844054898193069214998556199519678893271974430575288256128573089268715379124265643243947338652522345828351626664672408967455649328631789754469415180118674055422221563474825978991504730124639736245410818712779595028195929785340394550713551678935300714449075890148462464010780112157340256854896065982284104865908835108211179073273757559792285314590273268039928796053655165511812416698958738571717434739358241501792229927894282709152167956535198051235808414318762338360584096416744981482530109948462949540944722398022238760749278717089600144898680102774738811676238441238631656208260231845432272972856635090414288121519098420163505347028236613303534709472776100337391081231598360358211517115231964411838509607674921186281770189545715403680695551711294291848175056966515937716361768625662327409744123807916098015983609645655864621972145799140176069949065129867778665867327055651397759402584685580295611946469213346271952506838831683252841551968496824184142873420062823950299911844066232725397460705114046553900632309807118720065160128610880750703874686129594706220775378923947866967970608845972184820729507658421797058888453903597130438165404931916839383734017242395884661319966960725635622140256766553508252411990831086999965988394214954659621271491503638897683421518582571462187263962783979155859452563128288575896655245036388637372542342541798029375982032557732314514711959674055000818203190122695341939569880331563254897896851009461475670329232287786750330803479339349524582934906932991705803263618633791159075782772826583066027610955000651063161173153823772071951337088822994644646346915446691683769156380292194169909035105944038807841920296706606675570408136106981136928595510105159627149555961575166190474103071818456173771119435076248928165779531798283604969191735857686252389494123260969792221951034321699177500524513795848904395242976923765200733766639656589792934650669407217200456754985486094104038614713458512325636070968115918187626777718077197492507249556189873998041484321679765327180109481607743807817847979017940765318823291016801398594109736943085173537911204890522803685424947328539829255996792900733796794566718011959459182054374022011705836643422219406297586017680277193470238745429667638239498639026991168974377066414628336907326315907115292815799998130522941586628232450590398065514491481181653365678613202670060662806153213401472221910005194962872711675719557099169308796152630434398664454901552297879692609025060718048419335567570275440609970973367778441567301036777764641739731070415921662577607651187625152711117995776556194369338565741788644802451347720598895833172163894079541645837021810319597163271914052346254125450787478423702850951317349336529998855731068401462322755946513075292140882097181540614521281014102504262367267103270093875653433426223045125653613267235611707816147597807641095097386894903204149795941616743792421461057272474824260626602181602169596185173017857727875741539790413232923704460598308741177100234243350140390521823273362058995841855776296256973651944912919723612681842188255306378098873325276259519852559833496857928793483726168378826688511898750936611630712765729353504216588210972535606778772686324459850311418558223584218124206123030093731258153465657930021050389588594771815187523804443467068060055773777588913667586918840353702433949758936291382743549221811306331405197110366765862558654860171265979875028273662689843140439919441661758848507407764943944753681653498414022286757713432439703040411777663597760155395833575437027173686651698942728012596377966601200159428727582765148105791984607402141132098698257200281660822587815270492759435765920821832212790488108897099609111273016488938794418588484650720518805633147789102300488952223639716954696420771818623781691462445226201489875020718905858883880169617418519714632399822923566290211585422002302392226269025573111256474849135190781414727734716282865867410765893355108078031605663066285022910679218125987971069884126898790312200281277531711923181682324637647026339111981151346222753972892488984821387715460503780645091376221808185440788429942657077107104619355181734270450207021013900450325600640125882635653261554210302308821166015479564825687565564659114183118794808364139531235599150457792891075580606862967335181129853840559171575649639701022108607840088114026141093382954401761328446608337687178740685044677137409312128155979836625175142748300611655925231798229728847731013731877169032605969870237609328432366795812015489897239779889489408709017945223792645137643615967254985234324384596451935166838603399784419839862048953505284202399204681754117673920555133086773767616167451872801713020128316219617087480869377185260943300025620276854112008130496274959506464056284156529133097639803582645240474774339195950279733364460972689688835432572507339106163198229391238965742857132346867653258588129770635788196737819173960844051613519701672948070137772910690828727002287392930417340116313290007476454731586669386285632334384320613683866483940582338906409052553143053415397539561031493027909244271626722362320670358299556088287728432719249750845589041833087762150189307113895849066032155324369010779129141001365178678411707545310226442846905420516389839417838264111718944362362027100393971282919934042896354886809197625523534099087612348143916960487003689418812776451647495214915706582834104645870409349836786254584762458090157136206146426836830385707730809255312708313144443075368403151724546932580836937567256224724116222172258131657765728990399963551794846748377950556981116568531001821531785027395540184503029137286620803606357975178757565942824922691792047981260319706898070230884173655516586999480500060334600495684168819195822201461316382550079484557784393016618651719402068928647496933617701510388089380104265051362424147838001789302706605034697281530079393253717954748252873308185292966391929047091308912170380315019549166616344772523379106334866531658629332102841319248549399738585251310196982375367722578154277760462932619566257249827464257881300300605195217198082882244221064109033777992982024795351536589732014149963710611015116235572023985663491628977946179515158030430414581364529745386429228308368301682496854487494811284925741302227570390279030424282622784815513342041694155199913725661107569866789599642879437898160468120631726562932311325488271961960805655161390889250350874847034728849712472641732022340964547024601383525512175378992884230579623875863579097697123440682267446199433753187466745846463607015218539286293545609413959102654457189237711546704556813307011479628370712945538434584896875541544840169584328929462859780397239392920272241498175345333771652059674837996516950025959853379511820733474123122775604774417786398758383994250762846647931013484069069546278692551204288942068264307955183766224056336519848924621128274745197933741012675597599753495468340424139267178890889004324040909946825838648452829937104397628775557190408788020984986392134360710988508607354986154273160143683646270209300420727832586021799850423639874975669345495809691723100969957980036039156597993218635339647572760341490928155688230111377720575137193180211889176980346808971248667428714104663738904872235779824931235269362267070458146083439198986356015038769547770959058804081782893423482582120935610311138001965834264230401490759317536596620224022246892087456268523902358111018325768119073572220379324466605740265761532029891428378826872334939455734024973592999786395915008693654098115853203916082248911372887891099276001283770887891720448668499767329840289685208943416481327924284301298427324025748717863565183061531983135171592875265909562520769123796823303032754659227452400521172054104764146413209854008568004224816173309887880056188899879356727318327784581116368577588771737013234365812503783750374945724691471780685877061837981460778852386593980748986863247442106266936395180976539782711884936758482550886468111684930979211022530272035814895332103626534575734984009714330744478485947423206289665451392430222010609053472162985975372231631451491323523433246529679173886820695815011080323659844369519531568508867190708070662145002685549048281968538949389274104977685531291888910910098259343492516314360380587818657409703344676939750242514918355324225152406262515362946336605809717631705912201810839615003963177663819665567975048203078262284819717839193891577613796505084151427454355397985858457191992737106447438423779676373164212827842396927955923264446354304595094575674756370934837392698390580244976243467978195597779118771973384103410701248269773166906189544019188885115324231018020946376141269117426117884165276026923507384076873155548850032332004712102716791168363418317570512468771500533945857935289673478218681474122673125709850602804062622307616318119068299340276482853883503113328369176240296667419640348665254816802120250478836487997198904499626299906417925415487633641577437505320147830788430125931217157326118654428270673037631822275066734541342913000775054027603106131266106090996722495095502073500583580470298764943514306181066715751354224987670154923088989890768178297089405020566592523599592165109698113550259860767021570523238057100251176341697899138905922314176549577297284874946241264172251024520726676356910983497557782388538742230629007548816291909818640149971339550513860604231766084263225815635638584575298939229646999359763359343529028105148968502918600132286909187074753940074298631919355568028603619000373818257671472877625060917631647693844758439760484844628538468949734682762957821568812624047528258244148050203100219259884598957765009686016849628708084406068448539152258959371669841198118073890842683846215687317075585334672316264661174569430017562552045038228294032022603088440713066058060952714600179160818681140542357724798588456253078332777733606835750367914942718722384739772236992676948325514874788581875727466540852265876078383826294963528744904315772965358843143381914781754134437695948376213156034089523847577079485936787175293389218331224290859831691825260188022234137211300934933860537911721130266712925026816506028850151119407688018258497329103236498177526254731531261732103347271786977667983798287081120516672625177152317571688286152027980367046409273532443092538056860163314523819065033922120686138535546247006871979535699290707527144299945564033293614448828814659808503759613108006574386907651089503068665733369401893982528677138972652159083472140724944198223457447111779724567209349056279484172004504794734816014277761732301245418795898997883991701865654349306573696295756277889460142005980214650854826205886473757464003633968147438291542913433596670238464674494678018062931050092684235949086766705284243916313668162787343972371881939484262984833362738717837263803889754200953409325734533598395956832913168183700876963888492262808662742736798405989930504398767632132666622457481474430333446623723585243645236409381337768381450014886652482713891398440259547269966764585372609390377249411257528857029898658072443193539444157472947273618975094679292474266565473104723983927901533745560952410835866639236838904691480268159551369651483914643539950808829846233881348541792543422520974356743932441789948105997229019047447363453243106719568602463237931983634077697274034500175619782202826808467214878817947052609462153888416522196302592566669138580883345339479868585731535916271926603909643450952740370428579440707110292123644532971465925930642069152424040342334842137802348213052993078906073503955788174591182555463131059423180333181289140943040960390643026945515861548478114844219750583343942166720145563574936656879953515960753763709558522618961319196771476061297875159366007006313573736221679198843707750783136836884111814756045287777173925475347407566020288191640545796219623410693886237749665965903017034224301040003606638199169067714555281471802520921859593594978016415293082548459863754696289536795441471112024848769140594223002535736112453430025998292242150865335733472730101415023123387794582437730489380499909077697637346053297520171312914517369665696149296082468906279450544491414296248229187026583648037371224208580410530371180353709453706962759520358672725125435101428933131202998941593356877282214234354150066668901688084986725800836157709123327079634819705224525927335631925242230091291879445165243581709019872820581762954201843546985846422757780896151121368577283013589114527865952712646261127730138915084555048967843294787835986176051468728097049119048112181954894319586664865688218142939887683050130527740591838828651378655797031818389813872142019614428532784022442975018196436314341265035341247729328996189149065464064225806124944947241829478862470064863452587348857859611887625857806852782433046311030062102404931470290720534066383597792774650105985259194371272020059720352553632663331667823762477346349798070881928202922071669894631442814863277428162013421006308860940735308012180308807818093691274198566035227916964365055267606883359908576782350747814553968498099460830279374238241845899832414429408504854549927504825323007553977435627200769586904636332147255973428656787445834598730223771075922974953588571857611049445778646005332927291136710635930243198717335716908006667831033117989299817939239721284597180470701477230867802934343106394490902249761767973509358922344396684010288321433010128662316306804844711518959546576005574882074348155788935126474758158204000335807950093322638717661359924716264484040702218909845121596167705583909275258480187687532275524609611933863311606022209612987271628491405888164985777473041689470953032217062591240883034483045149462958810549678980954393063788677784714199614711990750137864498265181949736631923921439900667830850046106058745872381168642294467850664121449634647956655115846876972834023015076450679667954918123659804196364873786392171038559872280336553655394905211332503092629125242046645753416573032635130185110930458295777369740172616622739265181650338413553106570199164946502590048321307590461444235957015144796481412936659368805310071247072228892459329090184002815095661898096747336009192950160421768539141251944618369405878400634731348052762538310679575359474450409132165500731233579728563581072991425906770611032824480847047089677857516445520239524276402069660609897875482186495784206743669041289276723872318356451370408687246416789157332834036615080720724434155234071229344635671012206696209751039974306816934286711507882768805349479333132479671423021762013410546595353083650851259433433997727619349487682342594825816512473642678450255202833750057686798697010273660616254486101410845028911265616482292752544747955977726652377845499625687247393234808026037233153537000171808281728427447125570958795062507659617615112349454440619074246341975814360957210102541497793283770826230002050678610798343709166230980875957831424290022006375791365411774440547851795064552110995720278958875622532891189467297526389237797365754577144700806268563342542550773207258832580453896463244553280555295465111901360222015420044462117413582511340859739590360613696415083739783214621611123772797515650495929037242489090679486750785709583129860074616846865087402735600030043569347281348706043327712297004856053744938393091246150427962902218738455055853270016214455316337089032958572167390491535421226228598419004949753715644435096812471584396687347288822487893446025103184350934923140142567822710196161581712587596424873517734526418935076837872084028226457456764146483130419665244771700313502362589000521365827112252602313782736280800310616368936603705715551877187374324587260830854108307096303210725746053237993132487429278289487409157309508522810044034305395663146373930273378037205121187378606209701046080294636805881978484484022767850263469987343101540448965683614457226297179477664885612661499342664787132460982258078514723925033786385949100119017478360583663518710595476198717251117257578659492544268726775745664024151990348304704506370833813487224164722901188635893437650035569323060118003852181647318390286625803847773821358691918812239238944876224169483426583556669332238894913770993225444250329409334722282585088285386000046749484693989246362001683862547677017218940266613503792077583464198124345765772715973810996053357048319920073429025843170756063562328794737996434613123784268593345990242967664652677866856568128895040521232672079328408038294129559311873831991774736434457516466406311959675595426565907303981127871253676545264777179540130952406666676789788414866771249283049604216929693512839290836334344629303536912494867667051478007315940013172169192401524441966940648071599452924953283419481669058329173153738120085092316790384398973284464695248705211948574279002758279263870941248866158503856258610411145247340048401998030177126236141200181951300461596677637460440677224617715899322525599676074054423152382860266644801850458799425835276393386334610630066936292438361990153422192667269333881834779576038422003573982258000635791766177559319517861304916241464783100750895624971750812433399500767521514434610165623011093651586402468414765279108935399813085874174864879422298334039982871465101250626574522526116993689929793143907749103505689336877974621147869131525571879073342021517300087316762308456455927239363527404883889742123618484777226144403078231243079173454727417289912503039941785523544026103524633258409997868186660469855275322902622041258544281467350446028747650466147081769214830684011338642179808832591231196418407063934047319461422818958347472372198542324355180748377146310925762616368509650844587235877007591971452675620784498349065456183077399447304627320984721035909752498732618759153610997238222511661057922335909592079700499883651146524925747393019990500961439601450445653083927392084915132844572358589174786632890674726138997561182909324188437235775855031906598030072074793858915852383191669346861162446709890079415089999262874477186421645725404054055762337619178151554214621090728992647949038282853075778707245186980365853704873073697135502685029241567349801998529847392829589494829821079865391083935204324427792341896081361555900055226850161417330215442331892494421744663421288136224096764687010686954015439451554510216415766408586250780104033675904107238566207880213247545916206245854437570008284387008549818273769346820194405566656695426952821440697199608580079946130776898780348650691272498054103699173783245314627707622078892890991566008623796271346144063020696861396262268084612850630365700799187652070672767289250821804329454941074378301942753258572548164846200164834713665346497000179682209460729669212036279655097106526748126660808806069387988578679550790278853456973617042074827569365082961404807596267332487916756128575853897592391036447121876318282622169269625873343245033435189969287342567225889918169942399422663947994120522126093953596637517090037616645365723169886862286563971742886543575043722269563474228617162043924704252981043443452411116528600160989566421728999274766830556067834824835646098381584589702519659393022848356290238277517342307352213934985877755860608429590484745224937487583658903620907200266551350791357975710806126016157976838273244048948600186963621855318736011073359143330759957250856518509330208026291827775446900442155398188925736776072320317304225742650959235724238695964040084056950638175819753600018782019536705621790138228450449976690236656942691081604306691038902906123547302950173694699337149070769559116413521975008866355381145607956892492942583983622262135203606911925125664758478519269258172130018299774144507177347759272536301642646609733992403530437128429016129056565222296371241326533014625171194069338964539752867872874195198355339477416645246589334776302998016870086908574437024265792043483950899852874082146313010370760198801491901925673076191305122155888946067500651239647815278349534608330016581708497620462021494850141271004061698474907421170952263066766829176884455123891466073568233926404325249705324890662266383562634565207046368493421617844560449560564762299415284121466543496916084462147715381950475497256837769138883780650491609970428432886661613327552753584627325140010967666244799963348006595687507313716239212495577859986610497552215829003221215001832126395582873051331842063087722121595439239011539275567975618597767924715828917824169628113017536855245729008246730107072421221010358863878149109477838972665828865648473358622425564593078268441109930406934999237461421272667853847076025681274605456075141041001698157473428172398656078063804326602941490748713652421548092851894683146559599389785231374127587370337361765049970189739649747327415085136631378172133026780096581409408499122534714445301296241022405553128535870210632854403682430328473991816345076577190743651139973697749918139568165966114419580353870261243238946142238263524463260660072942883194076089732864368425577849492309515651791699958594792464873324113939157725943882078273115609997753450654293503711368895889964500996813077297231725708637560188995789421187658369787478962742741381137525014303708151639459768274716473448952971185424134989419424595306803302202833563369456591914929276212912617567863932216322009759469923670726219928309783941054708105387698909844560818920437676839089383488976029925003295698143263289649170919161335778132570247982059863336760489458707099008355399267979448868059194004627629743378717322322907843852932544966546176021239496050262647225747815801810324839169987443162255004845243472365099218969482372204902942484135714932333500949552846712910248328082503503210806726056683241147441909225631548834280599585950569568809903130663668638781683377386320057884373857162816519943176055530920297324266106243329060284232050138708683144453459624922024154534709177005924307261281524843436371246083854722416067585017093336278121444989631039974486531517324308038748572483992580944509989779628118377287489918446457897839978280257829908478612998797925887452849919439164919453061327691147847981359323959423892345731857975576908464118710873445146261292841187348293951961762056742899070035644901553650868283435036432011759301003369720446242984266949161686262494764298144619583323054629576382758903680228475989873978470754766927122901527613246288659700029005458341438530235528650274642680745055680078195615247619652379974428476446005035622833163857126819801885300431864707533185108243489909617657818693007482723399166065895108147055789133631183723532408821171731149354416558423458915266317914475395437368056496651136607032155316163640169806651800854078168315555393464523992476813824146867405107820874707075704914048266383630957684961296063023132903548981580911143326112297550118734641847123287048057813709164813476340573377598865205065690372327498138115010384144563894504699569000807972096268966542931347641989552219549705332879942691727332518501308033612297606422349294401511553266287688262195644845114398342958597794176737371814550973698210992681882314052340001019430556229733900466172630738528503280545352316172227605889249501930579826069492876562260315557821192951018657294650718854471092807100960546260886197454197683452830328452711176631106903682276061814999536236515312018768847972373496712258880483957863617494464624276353652735878354942422865304577130061120197279046300041793013930650293591697566874317083383527517989026341388441385531923417201712915185412696784151850973933062472798925877440088767574089664760094323427628035176661362388934206670129551859919058374828739377851051479715880572083878028718832113658608552236402629871370957949385092916071969871540613822963823120251911694211118431357429626856508473091823315724919844518699319538175205734498447765488015945355349379877947281110102304894299667524529255468984378699740179201791600794072557295455289802720237131703881912873473118410454131095663255099585421127393835331031857443964229384351962708459367318476744654315111417448988486106555308997564340822744233525397005778973068636609378254205916944154864828610975148739236067995133248452272810985261636708168264974203145730270405481815149550833465354692094040538811477359277005191246053970135130518358487606797427072230295993128415926890918041097708442573386962069833949084409468770704211938765825129790574624636206504692128103282365236252108731992075454295617150728097787824117391430644721386144851001809569771252211502830391657286701576624265128859111219585298344853689096679950050942998697731015510356366417540744941571319871106150056362634657078024481860773770285672278293335196590507807357814531554129210616307877393894995709771402564366004615305726299805622116720429083649962235978236315762906185480370857769429897429562107482745896539842939842312384870745690203879584914772937689896447902109460407989648973780091568356703229608529143400651723240420761467518357070899448744659012225896490308824960431593928169917678242713928110373019393853659971411666207242123818788872986025798601627372418142488179847541245443815482802624737110467739170755141672642243438661564413227890266423872196836943235839036281511712821703252684947702904075886166815976234955369318983072325394373957283953041308219084139861209084482489957055934867519230032967441791259636784522467682998442580651949920327669441174247815668842554095902724278717547507292533934491206524128623009171659309798126122577923960286962890279497069413054351261748234778982955212809787395591603773643781020465791395259037148353055505408097217086357050086171659802220232017884791917315386586430185572920405293285266403358248349471398618198095419492404820511176743282546249232445776862388206640221710908179568473232300933582629302845819029078103325699935607195437572723955086247045795155782115464624602270640862621545491953877154504788464774664039837587155737775017465679313456228799371227245151827241559884214348474927892252664638132525940751893579380423223889167931408730932948641088714219762580869511495446014491059111908413795739913917570494813736112182045884226455265142751842831923613632509952171509155413648550401695241689254805446836759999734134244023663621373788176920733393215307783295625366989754113286330150840142846593762446409730237906887397262834834252707407556080863898048794459366168515591513822126242790934306414320726323432028338163254378932813790315417270972345798014071585472060628479167020656491092435947981484144748759299500919076110820601585881894594726542767623093961307815282818852398000444231592693992911233495318076938410897748624198540398762749577921007890871064224446187219664293124010916988510448039488533140530965152052155428795226513139632574442508671036433071227868825404516674195296412003102541752790268381117308182531058628863607437673056207547575470590117149347924892221764170525721356702849294701548946050676531130718640436365216921917975410924651422573551538319050914512915258828815697046501360850123815714428199954308568569849513786057965597615472538974799731524866363625167365190357081104872424710684425202668525449823680384255835399244759308078273485953714014315677961934904082090027956837351644750295414280159737249079266353493261015941542982074875124288573545536567540216666645404802713401289660967904069740297526650120659728066730373561560668987546547412795503925611758904654040538847375496584054717523534927700985949806775948991021841398180061022243122094468131284052305372622188743252486586849883292247515152325300736060591310721244422411519686646271082708885143549954887953023973150988726290006095935606807484837187983728810447984214323119536701342803222217834001132644394272123305545871716625698978521957482996367023987888238945993289977427312014641646713342285022426937981390105722150091959681474664596637893291881816882755949680435645928624687124197197001926599500828707859769311967923462839225420678783905194090475314677568439680340940376405692075891618644514817136871595886710465940158119653303273239233095874533651309688947342136680673361051808339759958062680957923474451348677974104570552163112465594409804578439454984470845444137251719615673530318008155732043547868064718875729478947640966205322346377726182301485601306906261466835558896675324830570252444098185285747522911361490890160824634718174252413001464943247506255547328641802033553545153961912018734529586770868302406263993349978813467878079885369187932753803440415958165620141270741261188562968811621584831636728846524443737735043917062978888763821230315069128465044371523242056295410658068401925236838778030518779339948072149059271919427074530883530108769201102267755960009966915618906721676484673195389585874971983155281390858839330529081260415431914437276911498294135788357638178023669375564038569594656968223569223881102519310067756120987535855223836687124256149605978623129532604317687831814378891904109039272525360069395494354011443007746455712265566827387489676160869269723726863126840550335721298804572241365710484052991504541081906056016002303542125690528099142852068912562578718289218804935623685905993458690720744355745902781230313986298312699363895985447827130352336037552877899543453858903970605173173184706849376604259224334563453509722573372956379614399669419536261328300287853384643418198532737816767723109993019987310981564168687703656025615242975500781094831502921643572066915960558852013092137209966004443351563196963735856430686674166930680215133151280371954843644785622400818852975425255141532419736087415361055393342467553846361976975346555416556961694189809398224859391706852341328436606321898606157044279475125046946389107305160002755205853059216414999286197310595698224948465255027872700809010400964493215079079828606144753445351532096729714976825265571272043869719819598631309119200627527632358654595994657348362805365788148535191498622671582719864906635795183905196406268120421100176675947590616646663975038532281310322845810091539100851484462063418144435395791742758782468631512697495661686579425540562838638644968039330761509412103198949835167934050811310344910506944954589445231384583693770854499077469117010005461219186760855432236718266436516817126192095423150775134220282853959488117033501720032482584083508423393329627181580793649883227403656340498612201445633231068730455491352947314077020595827880597906427245283704482065867036017456526104795281096232427554912138660513281088661507106093918583558659093467173666762610713406575507264168064821489455649620042597034797839157140604158097040171463759832689204208521076474644872174245175061281556870176232213216746382234734396793005752143167978569916649292560688926630335027084206838285865684887218922395658263580847451249071724508316239717967602150550508623564604502221937513869734600805177864199531720311673625812744013545556064738251543056784872658787266167824464466308037411049038760931086730596899676398638873783286663089459115343625229619046469374557906080879512209119107160087834933150263371776050343555734009299084236318119290773325152477752074496974951907579701358489528982891842222176311262048938533379568325385779336569933100888418525812168040901278434102317256959052052067697775107383648520327695368372686247831935504625858626564993201260647080575400015010665176591557566069489806506531499829385007495615569516807595248723338750840525579023479192385298894418467547749832508827303024049415613985858196824000494852382164023536690439233691701794883176180169854195715171721005077032112169951638997875008355248608813102420753308370941162242808391866029997266119775200156771521318539205723924610544783661267555395039896488419926884343915654852454763260000736973762155219729713832120437956626359023017815712595247510688186963924003610204358951561967028740488531464187485633117256110202946918250762585932503953911623562942624503800818102073712973184576861733390887438192150584097892414641150338393707813433370577541804429517509151481967085415752032892212626301713517286356962328294137990086234998011652865634244434065914681949545793796618234703046905024887902247435560268096421721947191644709297855111677869683228337883524158321951414934466997233860134608213615257401825406879214425176447616240464880220109462828635836553746844050239684435138261443953817044556660606183733331876127683652291724880625724409523359531258974434744549423666639188009730625151079391195778986488334076704204490578893859126805845674032523207979949844981459829562638241139967634846722306163769869197403627496469404777249602460791162627676737767906158217231348640740913563440191604285912723419327484751589287188125930682810310707403957643443579093440906976309622905841465212180901992945565705309709383320898063000912206228122358802943256754438988825929969877500256063241649767903078700181741172888060601937582051622646413465164965696993446426941107650811856687602276308421735241680501771220726433005005744462594379518309470898297074329856945893218942699249160406149988201517112184453918882799633872421645346943611880141574747408910728356467831179255009966775291649854833424994663538089449545390588436969219070012507102007552361128263483744889271986737997424437993477418992218655000966558757859663645016835153455178094546834362969776468358208840703921530222259183406446739104418388798385729980509082548513866644978809715441912135201804939929459698216921025831349845470016389537723501887672550394931409324673367539427757744697662461814310511694603153621281069923326286615038471666890414946561128220947749856008463605014262825372231337111803037182270337647286716659842128562745991257618067312184353195339259561982186737372474717142974591999331675213033572423600027741715807092193086388465312430315355913590361162028719101616725985613661635520216679952207265499414879226867203170638867960948771889254447111741907502116941712021136514354370292119315538059114880639087820980258282547935884301009230191644697317403578846394853640266532539228347647707773251589255618294868954377497467119758655982554055123281166350262201634021190672705412327281082779341653964006622227995592518694324797131359692665130426057328567741844295585992488692345404020071803529792006984297619386946594966607591238233574719374609923507068084697649885122734538528668177332245832504835593786645939659478771557910571344898501124872794916489789904473483566118237710948742227899418415569788765685478282558314331206302773851853732755679403027676259913551059899560441072428764874164080179131313168852947683515858293765414049623106923275408509963773300285340386962701735830051641268224669194016946077534994012598947295763098084739375855334495647377363861605679252427432673805201400940412031099502292933443941331786255954721767266569830947022051466091603121599502205026369299562098234575375766984041801489210384315228934011639863104720846920020930847498177050646766876295491136619442927158244759862919145291142357359677192398093601643678558922918332438028177327632878219656695329452904887311277693086955724277379615963414493003049936698425497688271241130527197013781232506275531485419498203759582936220135471263235635990468177305962325454578961601702538456580009017092763460968141068067038105436397826862999882040245915305130122692040494732405282588911564380778551276290064305345372576020736173373766559170144011462488544171328874031987747621889807327176057070191091075263128343042266604770942385756845141789011907327148733036410221411336594004772635929391456054283234119327759607651189918897028077536140018576188413517246715472425255983590427039655968289270068568116511239006998175328989144746834179401841048871013679498204109817466761922791718256582829588468759255340055142071599538405750439139614158556114919846330876463947678007004708765222893820946971049539966957309707359026084962650962928004128577327692187324737665873288354953200802338008048129562069311440459587657995699792925154306752031099057445331879775519529386638381476326640247025046027360243983463557043817285160856646908951121884639688363257220732435645356483381492764681456513882590061617083912422072899487272891700608354486917710002942924399058769260520086937304283783106331189258298445424596245522387883723275835475086072557620045133734134000172092968465469996770328018810806674473400321656896224419822200921168918493488675649362379637939477636588446289876778087192339562400380462717251601324848185229424942331165121585587419273956793276646159923639233087589084290309844281263772064120296462219710636079398331310587572777998290091645109949111717424538753044862057057805740052977542196432336598403174748895467889363290560342907100113046382663465296422823335980410747115308798420579488639415879520956697616088263639111137830386755236032551607883864426634486440776574971089871436420818882907193237523319990612935334679732660487454769014765030347191865696288352093586908964029528879163847349270699576079599545684187218679880494295452469431574856781182374596487535168300144569828182422631867273093571909703199353801887071323084334349502103204902837969216130313020931470064068657942505405829970097579291751498279559045766571474634294610066258673144904515636484037459053515537519845087255286555918768774803894694078402129729721278032388252217378239693111178761389998309076533950239393755721685112446870909801000760143995836365830333672852838403094055126966914489451994780007297638405689515554526329600138283454512275333547039651650198086220114543824039509646605463671683049103525961666676311478226058481550674610992772012497148883497097135981938258514653423139572932281519349237816216093008928310829017188948943024912860414148137462808095742006600580097235313600421538809726794771074611226178380868431951963200638521910287823909776767744703903946280075315135748174205041841142404963078335852177779332260485311852753293597148507936956356389716043169578676866683296631595626178633385400872012400843383766065588833132425523369521887921967170863455368262301793080734270058556463265287445662840479517726651776221794748131958634993748231045820768382476767113170259197970200319780369633126885050663018599722902999552373658357190545348483062964625080942398483805781267608142061308305102815721653602293321867500648029815759648694166820833512460463150580446365499007872313129014801154880336707385711053666569327822218190840319533731499932819287941597947707189271183848634030657437480637218139185435792168876921738449144728712682891440347942834846753770243533457226534822901804706254260147782384445935794892431190462471980761954677675302976687546664251494986033361536490141122731488699253238543917711694002311768930353058598591457821571422177585876645707674916976631426561059287522656464861092567147635673625034357625906386368640324069757181458190818897448031528369251058797464093220930314657563810396012555695027365868138490049414826539179553904444900298931842069464071867399704331535147365634018697445521446933043816789558537246110095872022653720633589451726513158993142985493378380637178462849047728810241795915935717651327615609905836282163668674552500584782469892301655086653208766749180292401343097038458976350554888563728149796922351625864134355600153672671631747163010287987112305187131899221224359987652900456590415057563456438252230588876604183321499307044417420820724847559672349115344821567851066527536256913275611789400324229600791179755838657349554361460734801541466378918029411925871557130643118236518525803624732839795604024640089274855968900880507288944822512153245979834200389855573112911100223742458328950874369968531243676012049696839458057195097453772962531658867713413216928598341012299745360403280681922714442165925494160964235483808667714812724241393647084889681228510802734996658926178828719337631782503484836095949199604430044598611359397635941750800557731335102993232614731869012313086562241737288695672340306141280580691039805607971091791705873154209686203103064319962879857415141719761587438026785264201678292695580002749865849484496501840303205481197660299395124070780369557115178130904415468586867746864297853050543052419699587471712242360247612075297297311634186216679814820160582864272484257808666498178601310049242529763381890813582924438392283865401773788991460402890373554469787252830496440224803106955022303976472449448632647243890099540238958049558676243776711150817417136901658673319374718162996957339300492650462403799754409981197640838062441813931222055078494498732816534247562460117541956145560839643172614825155069180763852214792545563787870930223844297480618917222050363211697431868636636661636125050028409487785446457764322342092752208644206054075745577037895623973670162805700368170003363829922057270374967046353529248317515085676735473160122194776113454039423669623739366590770120166359316262840617579302352698809568956855170483982181418009296990746775962940355536603155729335155583093527399413026465892943744007015962227256665290674143046328387268910050101424310315741150601928402184764441388329067381650252753579954888004555558341716407856716332139883110688271772972109429972217417001387197310006046069063905780202742378055920849927189254003649545691189532503184559821775394075844418578613891138784037356475269132874450456393117496503523740532966316862919249859066845617029047617952627779404037382027740850347549216362830818987433875714165095955851663844072742235453125213838789128253320850866859465751698773577267697207277054083067642224266316263388201421857595389923847785092016153403416422755791147380839372578141239362148814990581560486246126191504581660609474557396063085690207567440955305059972307097654424928796737522947750757494337123094767747838335830498175285578449953424066924765847999083665832225526308747049489478978893107854591289765757037045488301032439947871402807357126988637384144787464827416154507237275539528463434247332805039436849828921549559800616425107298766475484930687809691223153853410584786382455803774042460586426792925838984433436908609133946240432736704132503509215360457748595347821813163464025978973190699983997282133160539811198359171330605815126389077803320076744500700760590621261820978963836276113340862705849280713748044207733695743511137012098352157525420605604704084289704795864582338273537674246822308040278754371074791415793389776224601320591480503796240962162576003420551090866920727253186626509778439544119304496952752838858360434878670612676099606807200410276420740848852208843447930153463435224821810887479718490492813149402036212231113054204605681140778700741043913623727137453198204306868647672599171967654324666641614182723007937449328345545299406325809801021319412515394685549752466225144573039443588080193778920826641842498135976594744881687368794394700859773964691800407825699253897017163982835595053784751101477024855768734308995770861798382133064919488291783598321384327030301332003122762027714122659414634926907460936262648654610528812212603742206790937366355951676823493595332642095880457922468182700179827750987136069822886120683246168801381644487623300869312739730839412802208523579731576821955607019827467415007751159493553306922366408949541774723011179308031806755625094166763298230092146718741752355818213572462268900283948989948393306775061240468191688593535211030872234877475300435199582208687407598047914528692292299896583514772793922190354808300465385188884357002175264037382855166512743062135620557041577425318602995763059042156072201084015832253611660348235890931704287312438461378463095819645146088140321561603911708078996612630906791225181042258722591011879625099890430189368813419427864682899374584463403216855051742545500465561465232377810749524030603163149969712186462064598033712427096508069948362934213440819445043803681618973882346623430486524278425310020972275633903177709847211139680067302335552054201577357987567951843913217168291076646639557230196034179193915380124521712791288576207542241715395970931536751280370589517668129304639795035432260657368313392634560634561819055038198088269992065650136374214024786773633341331126240950335280934396684946700128257178518124926623415861034342040505346347832502948942567322487685877106675031772033876262235994524913006810614496613188478203759957384717706615620406068197551944523802248613233207750576219527682189093901127806509038607614134655833104624288350158844055901912118471562563187257143199458153473633322093492412107785319050270347920227838729937427924369875884912523175676537350213641118609651173379709128908922906763623853594281699176732989225994528355833085938352115758356849492435035032480714136056056922659508219122987564604790971664503366332870092799551589631346739523362579333675702340635218903679315579134962752813807430852117933037902857089650049702799909024367220594159700557838734224092420248636798435742444561175089373612314729157870298351541793857753502114523710254126750351533663767613119405986263283683819822612082219119892582772102871520014200561019712924882768908946031804676823249911049651470981182950421335382814168789092022262581702638081278925880050704064167563302526561296594147736479723046304084710258914707310430472191482796125143951275235406612888074785785336996886857644351558521396945582322483843381547193913618216853037295870665721865119510807253471600031608728159981955346402988730499331000531893295252750712764160905112527935639544195905348427363789461248785138332015931059864460587839651921367204982379753677257998507062918942766209066845438402051012937064927732004588061186724970003559642633611152620031817560966434188659657172313848752493923803452213862931238328276552426051886726859174798747472157069640777612357009510392069646776120363342982048832105561258631189312820434396959550172143634127907618218700106121581579470205514573680109179061987736941717889222290976022825882988352537116733642314011729512107695719206523148424672004490281818918556342444880447815371592711955835776554642220962404775896934736427736173466868128760462760952632427426419037441557874695143365613233411716052163680888143848737149958181431443823582826525107567604373361151630545555561903058182189430690443976206846031950604321972583036365658924191265869984198923231670875952401256225860779866465540276199368285213395974054260349568319693084918392785199460137590125123876111854689996278651861821465547398037941199040633063482450267862294398523918074773929798936618552585162349617634852093509456189489788636194034175111312191743714717206390211508002749170991225849284623261400942832104416527137701544060816785490226624367585553131233992113925837523234056835819895880989448244106146347081543878757714003854102337522615512930945861044420298243867818185140668032782246903513384653509001481298452979739290707780676151741969917991999075937382299429194448034389019378413758043824582580066997623198972755706006442819054161170172396240858503734454826061915912395221562236897155110458139429633386859333322922043186988731858775447267340889702513515191612404195021754610098711589178367169352286265006586443148214234491662338978828367709318635390817122109366731341797054794022824949827477882630728649121194270820654255511654056745080944953145394215548173390425215980550769665272630516625117633837360721728857205517473101677925192350418659001974501833522083189562320584258003797445886341251089478881844612779770512458154205683419030850317703912233364961081867989410329077969495690070412349162770910145020017619287900507962960301566578293203759246612791013770941976603579976795510021933437028863826011919951170287147961437793064075357000418404243778757258770303461460238616867031355008799210099769444475070963269527330698735331642466504874683616659984867341062490832657562047223789997416979370586204641904831441234243949549680557872541406971156433153154250214848145462064444820441529117685086286840427591084235163101872187789476781584375318699604156508267257867292503939038050399731180977393794172195043970475685878250309716798526514228326211220420776379567283305180987364619099764105694346389909778327585505252807243680376556729870611203825849760561321185932284818053828716795970168367159801065809961866228728811404729604744518074454728303246034602329784558760932016564296661790510799938119424979037831314461819540159915880636520356680266028309053955822054651141539421296928433197721958925406477194835712337102331213758765929196645880160261358455739316144125584372110546345874741948979407426370884650971441073087540684334931810266725482912792293326120758335587097535202926554169265768688223578160919635823666283838648822111648260962795567146063904230615684995961287408179019951285708054057278167166095893242650787501054131125642016820265930963928448617036062031073067170045510256110915958272098914131794570581855318472280356298006110328749000287164338924982754002572215385816482074571101638094547455054588255608130303789922802771404646931598723986516501558561772967188299552837163130130649334182024216842150278107572430467515727595834869110812735776110603891940973524308765721261957252398015285955715324887829056587967432541721273858035541373645032051384386860118554232558381680771731602704661813908750700604785682698543496362015715077572070913912582462876934630184220724735565187935308004764598480901995799449446348256325989786802574545602207474574641993737774626642001743898764618604526600866704509114547692284472828236901808186674720532922565452675333266766813976615148317404009981423499896082071771095767129533275571475989069588116559598320881415809300781711112889031424928918141595119719623097516882235031513026400866337324567765900235383848837118625679879026307960717048625797093698292485487205820860048150735218516646609246366649629556427356445655945402677060374011753204988774942309108129497911145662280320684368488612251960911701572824487481305330935555379080115792213914141888389120914849957361267518616526362427155168059397479809584147194818644878555809185950855062596304513038044144536799710750363428198184480772311904459503241995795219352015535787372810980481194280990977015066358588973830708360462584665273495419969268223278645277949984176927451170325622214711832196539904474441675087196436589014941716450813514635924610400759355796692890232475231422234828270882118384144342756355712690552432774300073399978737570260599707885146737371483438773499881822722429348137202427183285490517893076280339306276929337851734310525140406046779523936897334119305879850950502372935357310686596185940231295068614461690821222715505161868364466335626283638886489169975624061689986633100993969061646426405557275041159558570295155502390714668618598125223510836019540374640860612138245310075582405321761734652696644495201480272646954591569997362981746912222949147773932197708825556006912428734645904320486710609458586373275761855423149420443003940968479178924797263780015824448578255828568401902303345711195382109646852526439090809145682424402699671840884254613011803460190430066812671340703803910724052574656058092494694119858124957973809267209868288987492956145230977520475808875413591353298365160524242940783616847220294761123701063089389303623927842372297710860335409670680649889288005686554007823866270924343389176642947993395131040023667847309589403083083833710605398262442291197427896376083187770886732659733457148453160821901138215940616419997221639838954156275480511924721943027877683797111663215500854996176075986103841650241338112475351726144019303631705581973117021330463544470281996407478663386461049937895475301986728483585495133510917811304553734067655005546621528396857001943090092553736417066937083019467691471467775236664317425776552177669494015247375931071019129467002854890619381095583202362745211933272914635957799258596423380887482420020176608138707210648719468237067807979564568676898954981124713975379552860368901326043389837672371144530286241403768449894231254471883740361465109037399537344696824525493507105698941224609154584744217719917793995146018797929624200744563720123526812589928359302661126554061172229575892620439205046739767156107087555972318767911422011791037691960392043604809014524880983740817665182358233155838995359279169443955055824136045692261780123906993576700375389095942423885119628121078243752675742335990612422752038220945505954715284533304018081784819628893577252633689813111689531128172401877243934448467624935065550255027822399766430361019520361625383919128690877096383228589356189595873748305053169120423049899030681561590660724712715469450932338435447610943224561820912465174506787170191538696212619312040711450962819130204303209873339001766053330009267131819839571802446534472743006714277966948787747642873023486475931255430023904678985332399019978529670046345396282183399958463876642194767483724071471009695316899760786958428131729451547415484001135563049310143037671227613566470191810326545937741094693073656059459253794524031192569999209369451572446267651415766484922359847992595890606983558119351567745494078421963570777898156374351151356455697725099442300243765706637278087490958511917534873567135050243255868001098107992906538790750171190318419336204270240375028777283328014224470716551605802796361060729193225033848119281233254803342586788413480683980313842361343103211743441028339619004671411483484758058674533254724717004388077280973689940829741745081239046890826574001539432766257837391761330983375493919094987290342773042448584338783404583938425778415449695438903870274168110859572455763173882690418984822706859354195348490528132348673206209349200106786701459380315975462112792374860563384582353375543411215079083819367808718365867856070386760829565342482168498399374094266277427835970408631660304219234091629391514032277785839124960941818113161723737516195644516776610191963881784811916666075655822920059925251986679808800315717433885286762811733140587467142574826130661824412339698630610057876217902312672725100511600593237727159625678741920189259039292926183538403849677194760797244930429332012442911910672533772086150573980764209234133398575581228098705226249364519776627179938481692686385744725501720155828368694204129727329734424722493498538170920019245639401542719678113810447322638062805147699806737271567589505778305174125940167903121947196790209113589825356277528120047502384708956358293305458706424051230860100447438724135374547892073175607197541360332291250311827011340056963113682972241820671300149402252875542182710807615568727279072711094128568893467488887736549673363546771391153319984244346735692176897244265507538973027830764078562203561136117848064892379979511588138192614462162610614532621270497627683265615520463073296253005275902255154509300347879615444819015242315008674285061999088901750139092280470623781667894841873071291965598531971792009805879491547650149643882429621822589639959907278212682777305458565529661083053478338494663514077965813009651570128232769546070025593699722673466783628072649749672816113916645556513202504181832688976083418373165804101693308640782312285160404257601641316622735472248953596543101571640574779976789916121354946283745032362348362098175588442281645242163547836235477654087588607633068369717632011288967499762387771274947012424647899839030560820909098763214033059252480731839238072912909308880226634717339871555705369124469858790160202718717885289677852812302148800500579508274502869030804598441231706631052596703116281974498012758784469348401143058822807585943949364020705946329933898893415006165568140467216390824415416475361738767299230177204248018415473178049714899621776171044528215496575819662605955090980340928325364744670602797706398260796597291494332687444158254151960187573496382293807279187177937615227383885902916156182559981203271750845045792478038572873386388398292542389750760860217044643923188769446626097665627825382552280073179506784581778937336996955383009328468950634990049096540987161814228260936439608547410102903872396393575907286412670276281311858554728283912166134578007202027524919782121394667493801574735564093719606628423725783798375718754979346898394304347464406648966638961516537938933299345036747430093652308147816902873503289240181304904532933840831425155708634124743450048764543173630299672001278632497495195414622203690681740584904469250399117700550772394170379021534120465521674362039868790758399339427012500270787956355640413592353190662326988330315613837184452719984560708884550669825779059740652975807898838041123698242859443734595598471521802117066339205958603839083606603210172547415170259755184253326569577543257399137034030054989405721799948285467316591415396827916432801614986401477507413756251190869004715688756973971817603571281668485350862461207196322260955214509504025171430499902077367294483541732112215473260576222119184323628082403427715334796245980206739308031499658605131914918532093390287885513557750599627175358755813924705777779225965725642738367018240370992873863447328985040742902576211908822095534688628238861980077816051324583751642998593374436461537215031606373997492042208607409121272634732221005244451792996784274598034144807186386613022815710943976390461114280153136667387067584649571909214556567086921184121692455598985102718240330905892621587017758703628671286580389965632181801951968132093175215861013844954297633746396785232533590080603672929112176829311418964628812458987578416763463005085681271813095922408681805852817553931853819517838513846195789589983785201091336954584372156172436430540547587059928058111512082441605061635356595310139577152177895162182265808750597749335997439828691562465950811839837456831783829901230170410563180719822738422822768144552720057553624131781712644510193030298245357323982255357657711728338194578058048797656889781855505846004894048579441925872351472126638262903611361832283166951329763388051623223637853125768658595583815708030034903674889281014056570291592319534933854854892130624506337846660880880180768182327018548874853652410357603726028861710807908899269295698203557111696204953954982772646396206065282394753497120286879754827931270560668425092929405690415062176256329985322522696230216104993614561941182494969478462225665521916093787670004898578108924988160951497513327372288009644314709316110507154659000765538651300342088448271857028559933338787586455125129740541008268209652118897288788142676337655651833204285208954298975862129112487612250002008739910879155434644258304958132230030404023482600503454443804606338015090668807417426653120064837538862974009094123142061486591815808897005709719435941294346982682836034214523819528311863690813635048428926213140922068833010906360311645988674809705062859925104572217439931746573243762599326953449688313596666844923692673433889632726490882690435343889106778332037328596748186389235379603286492593337504105670822123281759687722993264455686050901789277828105396521826208068788259363540837113975504788184216888943975935544830280516783759409076187291390646934988903310014959347180794280019583077911266505844063184917703530056619833568107964654492863623354408359000851311175474386746002439769129314325869564009620954786769714756757282530801587869566537456983689169670221745351366140542831868037087189445532018481328998872118777510619418701364080294750879677103621828485207810575904865668748715113127442896404012763520750448040962472875092642248372015412917621860139098230918146108571600388991506255597452829865655521683228579140861801844906332285683206093420888995416406647133730158526498774456645555454074760642381316593697465508329485734142697679709643548841852594027049599628623476331859676519435800743975065304048154088871379188320434939263582963480139302422507455448014787657445516984144822704636850217582168990847791215702392638406887362732711422529705043989769479483959018575562857051147691052776996566233300989672653549837140224847146546878745310770132074852663638927890518213035112594851380898710392259137880453226962432142452262705688374272736426945542538926664834654618173598755523830094788662650738188557640502991386270193808840562920164891307674955768143853311418006539014356878690791138358510103066119679907236527947628606952383281096891776525124646420622048505163681338377065391250505135785562691888257478087994946077764509085503174331830980962545713285267179586093273978357340846909120469295560836851662680050022407469348413057974489099744192970257317308846331346930588297786439058261420185013665344970098236414544300307309108430798821273832496837239762853079281279672840670777931838972099356032514663497305133713350596255141517139812795806462328592083029808819163437101746058803272925410516468921564756986598695573052538603072827585170909968451831666438857651875186909266957408470196098569698759850883700385955665802413697975397774171566506296284731082835725593669772094904512920993742361430095097011835272883281414630255817499045808374608623466410305786763029043497278773345596765385688702499286356784331732061961559407698572435675548730614381610073479095255763956871225337108387482162475072480728414348939181262037853012343396839541992856236266563235170051555680299776990819077056681043453686688744612671572929518193520504643710381377037399397427358963465120536121901046278840540368599488750632416692642786262368509759492608612828076643967201972128387357215424778236965895706890757489393697006124956650413671499159568233543015363979638033260903338343741704716764632158808525433699488016680766083305311663428493993987156941291278645569821009664457337494139418043604007792302976088733864879658381497679710622229634738518481003035678675401728997101283723532970011938114590153802966253031118298658014365202871204560344792160805296014051900528385476013131566395743693906155429306644164727794149002443919738672017672719753122281898175010656443828766308335120050823859047888912211320876431840913441681930382189737541359515544281121164547515730568227761343131783573492836654392005717757384843866671389476898743475673259854024091340374165331517667353087443840688373708373210044755461882371412174301118273754341348324806373555801212772571204660836716427873043106747796742059575510340187041861603994845464498585179225194857473627728562962231836213843416819004085679084726924538278205146246506598335762636686699480364780768144665591076058840537757082694512801789357195559642421431386072854875214238508788214978844793711675017947130357024828051938087156749438847748753545336576306950548727908192423539002559831808104145833404376309902040504264953132637472776639005204947187142049232503177470837325896326260406032599520285094957760744290161032522012842376584311882219755233967227008748847611657542583924904643681479131707017149534748098154125713160111276172775751425617724279294661358736144129655032374052651254052927174449016580413626329644190015289205187411917487184549889844340681057830812872463262787557150732616963807138527258718914735917956180700017194997193248070029452974724480671544478869944262090285368961595633663813729692342547982518741632387092610182817024901349034570092756359903101431834470238982884508926179801466052390009625009659099293805071113981553482653675212831138670840929801162076834030613964603853517968040335884551734902723075080341997007592358980521866864774473651709354002220894202398989595828415266592926651024177488358040773569978182556982754480808663002720112025199079135137725166920863374180366813824429442878902905212643296884107295704085777732583958110575442885031244070811324435527062607964290785975708827441786740914330442991951308162787990060740079889878899189070650796180235993800616815314208211793807274394896816944845061502686089277971846391747673891874537684810387897215307255553673758627332911399220557598364252499939766328647934064995760620197838451675467539941831162739383772081015066434781090762843288598231852552147723807659418540972106994842956108839373766516913395766553529041800004866483409881649583192460373933479554152115797416811999067260337182235913291458987482857858893806381262209648932829773370936606852697696408185148396952979854294876946975661013956028719829429719239628753112867549563302739446230422418130207136185830078696188003807369537582911153071716296330890889885218412455204826343641560446185877685521056517589564161204976908225455092703028567786990559365702411347817746824399049667482346096666822050400381853641869186059712712122297737965229538318223278266726116240526429003382068144075204922697703184908191063536766900031120097684452736086581502394765934321859106922443687033480482435063010046798935067401891167892015646149810398679182823131232994286407641351252982607415493462941752275088542591224781531467333208304522579052399599012951131445359382376509924317983239650517593738731772654433898066859443739758633067737420290843759804812592849404246964277489425554841649390258195003295983323312358305473402747737504560445640205732432034520040201837854215050849222402177080187552308763428216085164405772184897176417821642316354514763396568209011689919670266869675821860566008752876842934731569345626917354847280913335861856905730649359123042209954157856983580888058425421431139333073545722989899942131116537081931690253478732703654461841249005715800336855656358295052416184836467353728771940641095399988003986101558673103384622535149041572154502863219247970957081166689158274941893492385671792838722648125364587124036818392855906960257995712018583007901093661610698073909578904230566118811776226485020947873051926839916674032120870151698089083521123820280758171864825584739366917972549028757453075979159765974925507853411063624924265941218015550286835364013532995490416430250822862012866850994501058765180101965284196545405528946891178229125009491028050297006561940219778538881685988212274178030050251069712906697289106424316093493124723372161452941809442478811116970254680035969654476664480083440642750957280625089551666432566105492462396372850114816721179122593654677206189974513754143039010880380822746870213793954120684199685087464685201267707046308151138026474460931999505309481863170998050041448215626039808958247797485564384668471551562143676280351866031960960981694745901081650174883809877588579994799712164253583217734379698978757477180879975307909776916761126630934350150252207653635790838705453374975091701999946575941141630176951777482029843745941625601919574426452924108285342011731869731206991224791283832045473392464409102865707512479845868961274031146803104420211017040482886453649104116025086410302546729077483945667944970313490349440636168365392603555397660564042146024587636078807457427539822199067879685554482584680937303970004055146028855553167014931451983103734239779814100884538984499996088233977527691245743713364911578610992886377921597205423202224903965164757972409526298004248945914326188987152070490388684534387777965804126684029785528063891661510039501835912180503624720604483405806733650287659856450125858715572517046853789600694352872791219746835203720621637735470813815947570376088338134304199651141585214902243812054941014545134948686939673776376193600060030784903858954758752979657332326534377862770765395548942340740529902666407449682484337760286702532266906237285464777817665845283302484218349128601322485425266579531385659804501091199775897215848130796505252663050622311256099892263376960237571347096065005747617685402233969957437694750635635819089320455918528328608639892186502072035341837368533133957162431203763740716891678385965026185044881230827291074358053805349165982865614669077185535567872072952415634350716448270313961471781705278726499662905237782761135385837004925281586866153554266034769926592235795366445974172169797364715570423791986587211491056992221638157178007417849386606218346792828463045823514151189800570748612440669970671579371244145253180339445725049973921909194796232807250191726687264361844615275320790316836275671727469618141488675753208838136315446501588535889529069731503668475531974706787019381052979117345947379368801637576399540439393735365631067401087006451291757922348197214580810941084124412720552584785642462030838936290362776199675720344534657869082049304493175512546603333347277355369543185446359279488169674094129237023513983272308743537852811849451234511493435542885563674639293965237309620346142891401797075736672342397964214505593256864539247895181032032654332320367531705731775052072082366036622941367957134520304412676442851626011111914793994665845387837293095197909732250730832758729097909187034268298217013300369433621591518836627937123875483600102515584650364244937989372173363739736692693887854285644570769600648879252173288732921131769132842813270214763788729343046389729713964384270082011285370989519115388815398781721561153822778242981962526940982129286372367921811933913115575036859907294030883715308274524075066656815112173078472211974110478272984183001868658569946173332059844857367150125722458895420246940209440836593055459877088952687601142274290852842144839236059353004756593918089277933510950412246283991135619724999632718757997772348550365616368999287910904479477053486909301489919689301713133244172433378542093238424409941409466299388321810934333539529013842644139540410229509743736954432451172404582565503425864375797028171369893028387422677835767794485153815228646848148814845283866272846610271275994193336795256886063337362244215870392057429444648620369341656064211075386735693091102560936126551532546881665224034882407820698051015142457649372429798276684088907941432767822039613421886882126153055431668233406642106654506595365015404622635930047916061934626484468707069600188759916793447348911759141499215422396727877406557849834481221972611050361212940382900635959300124921378648765152719765584300712363198227937148271116208834663630240526830733802132486163722105890082955520108032786444295596139572651424774536228708686419840433933278469350505209527275266573388168578153761826550784887333134866025573825404866250903348361260574725973724442061972570923152316074519744179913346131349419057809444790656322075035442573996590257313636675137791925357931465890502586360775858027512076258716013584458196515148318969952890047914803078245850586166651605011236794650945906553638287876064910378040767332248633185716395258241214759068236624451591675825070211808646020183804217470173514502734256450612964954341414793219660960510168836776624998996142284388816409480342053045021284159439016759820300188940065410584554594791293010481404405791712381318155021368106393483281842393944876248074443337616790541891988558783169679285853298256486320897883093814310756555597328973171293338673863195461456586599054393981157087669860348693696459300402457011024295778919709472976576744517128175572043951474868781572468416396261778726812702809361094988804272755436803713427133759362297089939086245710327473847743797505891634419481321428143535124296356575805347851084413026590331643148757721942296260599795519371054949441240768702645739400608964337187692265401028229136393546779440147006853464832929686218495098936207329419038363887370966131959585922204661183200566261971466837531424113416493935938613534755433551922214618214601197936856420000991630732688748079716459214359816761385177406025262112696529866340262538255334312889418186502675202868387474387733352197501252486764665538511549011566547234098666284740402852722161325241296690024378968940266224608105974511523099348546805570320003519597183929016588357290625655919403019651837444673382869501440265662825577437590451558366103319117655355928951449287273199144018949866040533463803232980036877919519396880586372155653627456495053882028216577442495299740021413875576797724009561017679356160510462756301898427490699653407565164385687256732863163681163195604318819505401983571790015382424177831028957320550181082175185100161602720191118859685403754084345290934814832764886804898422937836056194544288211535800932831626589406283780634295355173272714863017135807722973121164514794109209289429676302487774554642286121970141708610177166448600327544281642715147702140091931236230073130376138465010567545515415234875479247761197713055429995822628165457672484577010392238058035170403623050236110090320687192801008045424996542714838402629677089316884030665746452594984996045669011539899998739301241135090715474431078216342229977593616146205546210938788243567103983299727024484337836179385885389487007420374655811439153214638864512493646438979409959136397464029916719154164569870473624035157903905062829750757775610938910626159052867014921584281831300414052060817705499282670633987927082743567064743029204037133579253813505352525710230979351451022723586719009709418779568766215667718055748002729105326434671551730220300324942215406999315666169984633073935484841723625111264373955932640008432973617092059022809113708114220756769278903870077418742384207341777273290590940352793053893173402893222489298236173590381950840828366666003368478150327163061387542082886097006021105750778452950106368189890612342202415634453712358659302639380942960301754276151595591677979375430311287422862481384882017469678220915968582131545879188286327690985349386978185663715190634515934390870406704956000269082347071371951211992823511463830898810193720875638003152162776738536591517682261254980729882361783964776498541164711382362331144630101454598106353404903470038159148560144326455583105230991747172312652037897947598315579520680623539948683719855813517248163326121895756230268117405911900225259710240768557561957386086463247827416883242682185638255811178950075390896937328533355708652008352442908322542031020887749847772283137808996075739061167113035203919495044690969941076412294589231578981182306379894743205666484420920083419157674058609011249039832867491776946739370301770888093067757211360597492106555845551197316459343183892001298588333884844675617046979875575647390866451337500603959760147421365532254533411709422645898704193692006358371948929260684333867285642772912534417677148220675364056439309984149168063603352756789691930870754824109234259572296065222951485628097321832905959982446680434288495422610483614386723232671239115121035766677909894312864792825646635507039112338534905300636572880489903124781252462627385133435366530089864850265221634719753592199669027946557455011172895484717393663285349517810640675272236773811811733737156664980635845447517754681360020280818076987771326617576402919643612659259965727700614123844950146291608897560611005851062091996532162964509054537707325457387162992236200468995777104401305075830726735122916983221921223607016033709141195085170273532386431228775682830297248287176468682173138939798266717069174977239369757370373046206368420187528214631160509454460745619434627496207551558993510783393512580040994374382528345847873845427765606707242609010563878001328197829191839731446027367196829357297094906092745580600882750349606233618139093457173439646738337529121433719928300521271984543663572469644317672051332004496754393332596421708404790651620568997747129836545916877861921757191054699032295910342374909410504254023432668994290925923487966848106556269997375034383162111982225583093311725720167099122879241636445425586993357891465217496709413253920345988446056549024582709010186951907131435019426711867271279676625380463953350801727501777033162768947271542107693853916379784023370200781453231445971092281504889785101316985466914345881825944221225360626929595499253544456515677772482077248704101018292296833385150415270905996525411150341730953234642860213173444885902779473057751466015807481277342168720754338871701220213433395391755347737996961545357364681965433272293693121670717241848733606123081826212117762764157603846356909741706678114005342165982764087856206721713381882328109202960859702820969529108782850851377561524393991485305204894801766953818288872421710839163206870204379352592193013714289507356662714660478974741088957127271292410739345114721017024056944947186570935128345345778531789044829231920634290065582082607253478171612470714927224047340213570599364958900129982806241252957798113499457960474425692781321124585544404871644825491194538762974982855137755593439373611423241971361800239281107708369222098248280015104641122148563327077254377934280599516188751743881293038405757080988122534277809388188740775948236087739227380820084286135138002454731327580908969514786307375548690343021693375869222572568567797075001514459980360070989321003268317580836981612275929423655394200421843690562573724977154081356919575907996556352914812714713515313280258943268381397517986552213348751037604297192296573122645776137650157683472652860266585263495008108285123945098481194410108120815337860507831883329733302683954552551951492953749272351446126351609575674357891913142798989028770721475822270519934110744388218303493494746035344483521231565578314761950328418697451402975032012682876683191508907524449354868097539169295410185812902765332160332663739798753703143038132850177268034471058064258529998782768772243532579634061878205567554632350040707434060062885476793484941952392162117559274837730170806114181867864453744344111661900800768732313683590436395364294145470349307071223181532427342961622655665102169387099787064811313320861956603881658400687175360543793336213323068545336024957912309275276925631065996299591574298758705047277827119993506829663391440998038600049255765577310578485360698379991314357069890018037082158691937834849960716267593601425125355993226032939317544919182285912823450512574121362293507471645456416763243880700488221559353905696714981231204438456853576470055080151083354233680193585354495729311709745148018032953968672643690653068611670318750696663081678932235173731196082438561744636789992025056799264622102311477030091889855516131704429992472048581909796541532036985359564954650061109455405240062158561003416886458371282308286212590843074093776842077113526872064179205668431003919636232152666802068713886469326938088526649768813146496104561402413119533685531714949196754700869719270893498745831963522572602730247042186725458423901699361260654866760996494238063373035795982024908587937112618400156168862000254774199645967371600477207513795979769566092709604451409400264462549163593639389114093206312296655510222407532192886026640435833618316949004573723697461545541751300444161014961441480433642050298502293923057062869746694592003859456432353870270730793063610604926937088097821557978048352372988878652055604741104633397562992842545261314072670813266832511522792585282678346164785899948952782031157587650464785637964091078486370816126264072594806859364691173796033481747256488352413407744917720268973302556968092742831346080812437451269213318030717894812823824499927084738480414405500591112865204105369965102025300853961091296830209215403279227278067784090778794722412702526236117359121306241519091055604428855230138424682269091264071090774884308968182495535712129441171779794159628561305362396410260879306670417402413677202996962925262852255419265917723974487090925849878350801849224489536567105006998958780351493753073932700625613472665756965560258781081983305735422364383568321533547245318808330253544285615270770999833805576765801974178444720913640379744006485635501066594164463503329995586365223125820510725386598925574756973106310710382403852144195281680148580628185446892386479547570789636918164391727345848235286744986603426897007199359004140365523373645696357104022774273488977234404231007755238361827917166999926459940290694531476540313798237870401775588744339259680420761254220589160900778133491339800545410992926561152741282984008664146432537332040705336160299991009741434802293955072387099367757382923522168587619060491017799123418306541838482218466050972280594975849069536463807524591604852551287769866680939840072728378882191526771525089405654507182659668977303117902924098991001970027649958698167798083539185600139530554917327768538861250288189511467875274906873935755358612773345339985904851413329408651172396172206173310414706052648225128570650234271972087613183467167045953370664802249230927299297880759392985517644863792390655482670657479518326976162004975626617142172597831185484271703548091966958788723121598591986662914444007201123073092901736663782470583930809598680889956636040025122458926506836566191768650617204142543312667070417004978134038688037075327350760710276955388719761090061867994599436719778522825147851546125936393051741429817305517599332192562702657438710477334665078387537792001637255759171037232283459826532636114551004640571625498014629908946694186246084269148190567444644383167782577616261800234203283663422997362860322600916897205422806748298958675904616660571870652309499412893798511950780374808099359591812609224977425106443977879798664455621546542028742037559974887049658362217333339716009742355462397231113100812881051431891011663143108754757316234390664577557998675022867099117424612932117636541770035901928461397332503804757991691095399689113969030174930043976586505483161001265789572204970134752996719051924513742893723640994488177244078980258643493760233985829166849840600066037784077386323369789814266675525669766119407125884323889989423029790291828508554062190769717638159046315762872244010065890278561493629811539188029086080966241403889169003794473819433245163951069757318662646669397878186309896283769922029157566400962318623654690872995529595439655211902112822611794006983306530726902269917490954032954462298890592106446247776763861665595982521696893191229312309768070805656471224842944643803376627101571347443236213480571506989073477686176549282260078357781975122235377827822681701278625392476602926280824606759785684536328379647802621418746652677185102904553375040069322547682953382941738498111975538732312292638655419295096557304705279311707896927627155950328306249894319052508739329605937689773647165522775167759099042706623240864625369819682790868125203684067620859118550002990579063307676370765222277311165354299655511392604440190065211984824463695940507980186358534838766157467387655246958504799788720006313447794029141110588451655062913927294726318764387929732177408729875351741229961395625631177702379741947720556193494801317081838286959175776605951192636789992753993079681739764430287026660070265654691296706186266044545595177957790598682728566238179529888126253453677636369818692685437025724774275600249981125509501452232499961832387585208253064708439244084743440805068431109982611137789278274554982947875904082353046135855105754786472677933792928183355006814291794662340564339829823941948489913421373033135921645314925033433043886993197159306485273978866441388804659540836243729263837776215583533121771825603747848660563571235268722841245504410789204699228047453528569608959950642159934380495591670723874712642165758646828691308071850667732710206892151003480258156095969263657036164257744112644382549628550522891931664590389718150669957643439360318676857252457290612500745486525397105860014505131569864308308549782422240518350088756076218802325091178477510887768780922508799543587970671383596955434371850851452301295660964540043729354712056998906602274383725685271174228291869015232443502715895398972392549056133192286016378781505567661940353089183215097199892448048135286282406613784440379375967820752918827029528774057044240023374025825725506620462121842380741269557988546827412076750881769348871711717718447861122913096057833312785402986390605843973847877793696801678674522377834378236838414399144191873724601891055299806117206570111186779759804221544841747227560130373544627591079654064509535083324991109369213692628995501305947381992296361333112493395870744202266305625841307960789030787228519485983246446807532735617846931743643837441917948656659459966542092168005105816586169609055897214364768430955887664363781061870498873718780661765107245097504649645020680279019989540521370985000050521248275617375021805352763654112789889219348512796642067995952312010895383173797602311639754793762892029267737919799414702389508078095693060667073810936446257061088540318493452645730375321770525382703236499154715154481550515960950512225171424320930763947282490199707568473308412643719460563712620955718990755194464358196722388956940501742862326023020617394464519705865191710520601036516912965273804585464627340716979560826889781543421198267223385495551014117657455449519062142695538109276009045855876116012868177663302547202217923212406797773909300768483979949034313374206497472687184756566000283360221864458881102889620412413402708514951368956228825006583541729983446487483860561368608901932279748075208252967461117669803704790514821753990331998747902571550816323928008423860744683263122359682353393194395279883907414633733276209302037216783213948967181688006551570767828790105869822089704152901226383040649292415000047430807267940506530902174327721907251535866653533308287718097247043670439987398564706148000209186207026328156709439349456241128946868057595386151700171836887305005621052291549174466718269545595621571553159625944548026899312997384381674093115960255595158018609075931581955355586878320259962885212953671176124384892545149509173455909461578516461008380588111755775493606573972575016876592417328066871926585478830247243291157001995465610135325079731777357567335181466982772558907610357728464412081425080213560062435860010138445523287096057802459670454454942788482529262328621337412918849960534578366490535832883193420258664731134248488134178566163891286913289685416980186830789887616779408216294853163367766638979307837321623931409992277394856727066932055862986375097766537544300418377905340827103454835594965439229411121935800793751153561257481070325728170110687888561674081065098381980890527599436805244487884978877973499351274865682241804311589286433603802569414758097297001927496711432659813572939236401285660198746603118574257921455771674084876148775996292224696002015333449305111818841697045076003668029728192120426418113809678419081317080095914288546953661740757094946092450353403622966545599752047542882905551605052210347634950148094085782816179673294912569525068753357993851024657953041963991248852668361515839668784989424628682367556979845155871126266362180071206927473253661471164927217223063012172735727834463962810333299404246568002308494896321497886768296746444815782248890630962441515625587554545309838137460449586957276259672498031699032925262364903216472938312108907752412827410294130041122469980454564795824450247385260281460649186901424187143845700551275834277173762713330169662042044724701857990443831306491640314958145805746401727085974813811339382979681677234195261305811416663979816349949416934719274701482678322545833486629822634203253683024072382090463184909154386907393698611753569708052138393889439444442327639407403783474437362869241517062857920913087356965732716530629090843754920897637816834432670342996479293928244936931188344917025976084619579695645922661001425675284704875799095685424881869811055941264368225466111730423359688778912173670318874403998568836063531820804969324741306587178024601176632271483103003067962140863050544300200666266409451302617210967636157150022120382558250074581400864977166559935084165720722069118991925418005380843691099774802993437213030278440556506688025013843433710100253442702905894989312631838574131912486739297278582223913169822066647051271157509043441263207250876962396909616190374369784047856304109767303638184222093509399138930001532405723726528063827519511331258305019154501938600922956991696101390590210805020392073621630392170023313517403155949952081441832113507675569732125571851865911478475921702236679167204577102390482639159306417740233833406107855133712437040124143338866838117235030351780113925415441184823937370061691214002331094556826220290884962048052006702834081755802336652609603260881029397912698995294924127020412259870914572024710273903446069720661994600720735081830837952126930127920391165748913030552747340756257047253977918663590871064623792659615025179944260446074184091474530166389209368720101186010012994465271310094631270299484023201632857498724006808370176594337609983716648939641604127702471560295393399471745055554216206254195000835018473829554390012731595991578445095547167301990948277268586141969811207648149933233054612485218986961542167286741162471054040322145686405611982051935274302313957048464411538323143783806177275736614447136026670970954687897503792308255615713923613295404142963017077055123380515761688621956737106970471363752914941238118763087284529440475843966589594838424323388298438278538513277281606428759175535912259795044678075611892331023955237122178519990659793563271599231850347689009271299301079177669675205067341679085303957836013348817086157380496704558024082065943449343364785851194623720160791638297363745654510410886526777723630719033225265553802276451316850895717980623045639993213541640022588010577541389495812966547455422099409090304400131107536100414085319625560142660593743802149346826823208995612791623861535696854596654599725005915055825225969719211672900694606930402712605458462360752972945873194750731196929867904338656253590665478911436418381354494262193484553568636603129470931313642901773928051090283954450507562114236687307920207200920812957720941521892266004407766064612232251029689390271270299340783341379943544036722059179675810152785530709371825027423165445092349896112193421295938502530164444623475983442772786680024039816801649995951303615954393040049140914256115500876359731467884909705436102759350468115663919245255347976965500133596913638460197319619652844733085028619215637704216895386343298794242445169792585175243514596718913347906349133233084611594772777679882810021160676788293547159828658666421793982906943803656198235367497160825821295700670790827042729210849620839583565921349741358990885070769333238403806905132959091458587364232148443356203100993609401491723747631572201520434866605335491036540150831690335312339102157953010720848845353517474106896261539627785741592946099544425915624224237468645586077761624728657178233182659122836203824208205380577047188752196107678730982981928704718530395904524155987985116708239087406388097970035377862155903748142913979952865964368569620959499957234677092413773880535598371623858984479590421002665077587956169548323571399897513172009755804193122759655242095845234426028894601643020129537071602240795960704690608551480607555758748317445022375881427766964082945035512432873075562369037813527414684162102235504626171662681863163907598480405233185887303022060645503261606964234233992420338664807804399126887453940165415042830989973459329877446595029542888569212285654694416471688489033897104412214422455560384349215370834191754005946370140711121956955015568797354383042809807209834603657107142534887578604420049490261452621866763284285854064942496596720377160256062821703329867875143781092850315488750145532942405647328502694391573979078442070910291312988456449047844049888773479530709025410104823466409034124202565043477433020056162019960960910909245119662277077338864420307404699946834082758891964643870953568959228233016782150553112161433697946275093909892484495591035150936099885108858706857630461792955500620132145230411961574832266859462922951925217448969843213692855933933018677451591576749982427733336557977114042623598729529402574187518374483646152755732371112243532108776925179157051425690171902293481176292115651394645964955040161788571533377591431246069528025540368280368037214571822520537351403259325418260619498402274873923677226285792839196020590716385881581275258058302106093180971447121758466317553698695374779865735752568387155982546206930302914168800102767709153574368161874578776325130396357135231239503465661370706054376359609234855209268141386464409642004281432805801718132465888571688085013799742340009584364498792025200261316205164335169822128085063322691899127816901051446991249919268094143842018746881306832658759715020796561718058316011228759185434527563437953671612709625542877668694459634387488056020266293255031734157795708712580985746659942495008057914392585770306664018813333869519305392435723467775286282336772843172288930522198857652179620653665915768963782192078571251193606451587367837307441283108097927381444864926789982816022561233335247569957905884761312871917130781876829949483301492088702813854339934502031528485996142859637490572481863577309792673038828927283791948140220817143625124594964080314372343181889150805767463318777609599049381693361045486087661662576237696860223432501295190574935451001555855016332237379062497581294183107722582596363730619040697302619587396376918196208715990089923070410907580436803459890449803278609462532442830343519217999632033282104844678875729702149712196658983994992001027539469435296730648419269831807478422742406208082288171618623293065664237298799888585038002565804826512783718057452820878569101634449646127960096693542124052699695699943521966518514264177059297239955233638311712984688879195903310804990100493633683177858759325724243018204268859963936030895769405230416993674652366174490471015520814660894088756918906710943560075734243564800318534582143788286194469049189546402177854509363059657132612378960377032679268571119478720645250705145530821536698507890255542739911637339018356829562764761569080994262374071587101344150692350963599971018269922429632122029995234799921076427103310840574355339293713805501315906869155467361493364756806250460332805148750485756966422782321408073712313973175194559589993542090005296475579078353987029956532486220164200910215159517554447789554485760165095355243502629773794324993582208326324511338573736791593132435812091718511665150041463372934094578062647528904420341158186274166993117723817724792552452448725443667841551588855297246725024019551429738932289827073387440538908207657946485231693831059396643818391908829940516721033112798433037491153496710194263286192086988050736731348683227867694180715685146892125845801160122197836751218182797460224172953201880285903666709398690368512834696299003169814809685649343972916056321159042622918285267464338344108884892618211830029151271064387909710041298291401005454682554116618374897753305028009512782915975103327449575661735849987857915901702542417727855051628556512113847916326542630011882206951782850428199368052849009496056906883237906375833015681840755944662406736601926323588855107973972651978602401069640569376386812259142213556427007859685378516999070083947384443737053027198659031574251308199477428736422759121255846913538788133358803621002179012938275414634236084709615388118241647436986472364463943170561866677724294897834006128955865613861993297294330741993961109651688859010961206586835377611241306368543743191557679223335338896597887518232575403414944780337870067089118295354443882495027678682553498471698757973470919279963730452541770655919614298202038864445304756911206431771922014482966808372338500890453900229955937497996341122021762510723094221753586658954425154336399067758323037326099601476132842995789703811294665932951275750629527425222586791019771132995657727159743039528370641323880939058151999817294256002280931096685224114447874798861623676310682657653156168658808234827060412201936171512793970208734914751760031620738418474508561962472494666804220895759916175091253424329456860598587092925313497682593766322141450114258093265064404415800347478631983439215318898681412577897861378643961498058434933650682941241655642167783155305210884288127257931719359955056595191965093586464167209277355036002252351646671321303652088536233047167069690805702389140120837062542798015686693467134970492374962469747581902304601307224323328132337063506022050410355204405209090077447583387009204139141504467918837593877167584160956367662986952049676339300570220247116369566059978843988074825487795998481733844422689602170660222268331843171056050560486459029920647968574996244321293711700824480084695452439293082800410942623292598644037303575006062155174676121266017207019570875262890609085695747506609259782343182324852442993135244441789643278737060313120774145099884411247627215532649257262243295089154371524788768666937710350023399688931052879386575735544282259302436522077829700849573041707473884407460190434631912936265453241378255023392251096279328684839445850023444625936711489603371941034162185684497042649365909946936011040764703839461695635852996242693512778956762382858891086653330976423404997064631701491305561341123835631791065154211221541623718582371895302756842498150112814449341353013622241723227785462433059951124450548303343904726530834361701652475611719471611092568255153584123273152253125397192867178705798047677160332703133819879474621787425309346078452502846973917327276728412441081944107467282300106781931621927128637270283228330469762212823019623016237053200719133989325523765666167840761822360753061913270659320047342018096105541590820981644799339038980876600660198766571995481434821883749259815431482897789902836169364951318425830657616095992289531786299548564813510708910943010373007543019399981788466402287736963673660531338150139576524637627448738283307045059073612993858345403067590661437238808186514053539805640669619369313135393680854092583822221388890816122863564103604192684557716647818472949372815651638448045936012752314577662354353970982532887853063281480565631290652297415540508039727424650045510179088851547650283663628082565597571565299542002388954429912507023328480634272159745016282333285576633771737348330495828239288607890223515854540903850173020540979744931474026495029700420358312280154069684660477965273912235891386292457260955638456377671839032527718948558571883947472604379844706770450202183255022461554053636190405363797333408104202296717823612133304763313745096288696123963169406100975200691422333764973921254475671581543259638230777787544543391822871782497964741577820094487633687332032104037814821712763408611172909605779395272621682799513626847324866068682588185056651329178264191863870723614553665244673626039764160837541917998610027581606894166169664689284776984938738349271027943962055199609001083071090804215333970772156308478198907377222883453785358850133220240087651288212502395471631093670693130005543578050771707665299781047955631846885241142370642839093344038646091617568319008000385066559105285415389681811199693724935471795910962164559327073587649212682226927221022259494639881319055124105695345370885858808888375705077206700113142171809870334346199747122876130327565736835253228774215405427044246653604381408653372609303133443301716932863004425246274129721420837064467943713165785802303701240425474340372227408474020677638738300813960957140023954884658036183423726895578176469567711014853457497768520214496812937819519510912508864295118036408912750488347812640563456242956003907926155005882738210664008984237634815192513415771073247561365765492932238302520821583076131218815923899569694325204386900266337104188001539354918574381456971274294176118161636990604931684402028187123713550388560854494009088394751675578692325342577738100856365623194667261973233162656347376793239843233616225121771972984370926587526995495460104324496808701153355276202324121079194249719798653136777338346335843629586395068806893274246591747038473624079367841990573228156780895019961862022265368318663648056257042280463285134804525621016486868130617660096921045407682298904017467622664457625448478573253602768746864754593116735884413101131075927407686190098398391388254846407628441984128985322119732421415309062933764106317531486271414158710455216309021327948231089294157792310253603638045877876000512782850557835067480290714874123551749592094800314626524108959221537030546200910079627672982271319095872884474361069010112113301169077480155102710871687385308550816260956343871519712868240390232606108585308532106763944224943915076653647847088731899860906037964224460582771394651398313242683954229928294209835660203231131670807849633615096117378493767665008923319506144832773931565082777640416914042535302798343090119608638775222779844570418286454096615577388671239391745016581540573697628673051320371065712527685999221438741889445957048604651734927509166231691755961319196310096349663585031110325584420390745445944813233178232156758533305021394225130221956959878944586601384309335761448482932583415845608063730730527091755947494720240252482496480459221436493511612458247442809126339081550952394993060830872107236772601683568438479937238368047818373909116957112590833012242665761892827178269353164684573068156996189470352614407089351490467604640587332044789769423643900297003502664085410144300454477546607082570521006582084668909581909674953808003995271703157011835761539463535961324986767238225815159101027507364987045391911746772447353251061679807465713208988988723956090032096989377933347489868327720084159560943977051232934419860932243800142625275055834660402857437822899086294031991186406093610120174043181765750985171986872464695050216266714734161371171296344510124987776267834275431627222131719784598532813226125182240418081354474670690392048191334795414725002484453853022612308887298637926300429790594310588621681428354591694385035953022334579922617163242332042502391755248484509244892423306873019668752762830432952246645448211897490108558074163559404463026218531392985896486716716670029087377804051741954143500765385388255607894470906103604885485835355451177478087829369559259399136745515885861905048230290797864094489960716498673042618537373363948601116034321105662391064760993210520124639236784512114825787115716745630266006549600680746558176745758232592494170597681361600446208367916329925544451858784199779036513099389929074083683500759787622350100778727667500690179655861677825545801377893962215450770407457651292843227161817332125930534721328560876918156796700793227000139057994929802055618177883543687095791247109679846396646929544807538417560534290061556004493910046892580330177057330334556287975495271335662208231959558352320323043589827640268325542754846776438330980098605830935268282601756240501577429637791775622990778681626466855265126386647401760112419531757368017738786965650201477385426174761237076180613989429707724057209901917391568548200841055174468620910804507144000301021960939875307495544342656446679076066687673103964504947876432326338109445611322295414349748760465639129762200662877624485768967533093768860064441744150515304724531469401291040871391763228513266451190941863262901841769960168122473977784355649021327516575443791185691701496284864681801580598073045569782494094489484016437676178193577747159775334785025026304573732288278661727451766630393201735152976265207889173003428359592260416535030031721429604744805456071296214487731211486651504195783875565461768418370044191016460444359817389926792979257827037268245918970484123752189518454331591253359983279059468538667457013797840340759840041006392311876760743901761279748261865722849886388979506558420683083977356570585386752697395261467001955659115571701120437589834401978161590677743753905697290401771870945675136669861516387562763058916616361389285969167177126037594025845634149315849339499372771250739094403412967548813910169443174420152338083258540615083599590363981053631536215926071167755552309268001271472895683541507878597855457408484554692569519998634840525384904093602936054441685316362866708681193183098087164593312509155479990275708496661582411775750462791796362572419786357833427136116716842512849765952991879230254287174769324499636870803684631950904529712740783474129808800485818729910208526360563881657384820665054123627062192262977426436075877654707301213032133971671384328628406742512132052158014055594790359075989486759646635447016818323474013600174748109401182694243689525615543476196484307974611978734604201344491503657155923963921069033905021926354187561444516765551174148199504481523102628816556051009854598068223295527755246970557048255859676715189418124745820171924043786669236037008058146998846124909249356906313880257422597993721355088090098462237358329032718505217107770919855452669129819484779105847419288062102132746678135121566706460158249019517030602298873554162931495154264204967084740676136127489405886714037876779951083368554334295375779698384953832302992094079176374768365636002202991111066384179217354691819010000983789986836000483703245031663139106288689558013382103451934738676661106594739354918594763368114202728785456817884838683767268217667730606970278474913031861102756162336269392453780777468852236816431532149210291179062056780899123237992018328144022182988926381375556059861708621482073886708436567869268357929201114731175511704843519295812323748578678262555720709324109755831928492012758217468097078965363235203313852115318616026007420848222075056251724961968255616080362421252634361638449518898822169632999305029830625024429989326949272762695821398134835102112604816356239482988488944738202371253024483996124330464946027627558814247651245511077057479770104037101927439126278446291949513934625488853533523133979331671144736351705470740794148959180597522146199065829015554205191518317797190302497313402362310527089866329066332369792405896925144275980931482735924744308328027497118910762104110132017453956284426442450816529085459477797053526231434091313612157972401984909358935762916473459466294872728005619943158714123702673534109129614544473593690041971786017611464673131108146444945069716725414545688930539500880955759652986794947665945960253482885352032948289313970605601377309328544584498932561876586116995139836887236342816057576991486168758611873075417287065307731606293116297340924127515959066923655738596076554843788451958321837383486381279720892004237079417966279531429836003272029480631628465650954569783735988308893270986514825955166837025068317357781353987792654902613328005719903082536159276948115662091934642163871769925319285643335858673397177094208053801837772247968994282613790316822270703979669087516380301967162344424076606741635418344906355190609831294703942569927551396882064987918665996805918332276493416558946196825670260256672408033228107251959099825177615935342373550181034989648373426383654469759568984164170553150927040131406474452239536193640929684488715175591736522289718253538550834285426680170191235011371576813637366111566577586591313724658800284004531344138685407962004704628983043997693765895512270210465048394949337198243210196798169517712551031252395006961702353288058041435978886818798236499446448910049149103514633904272991432806819160014332175652722167299817423242138795028950673152351819937595967399136285391330731380567784983585958532952045141034591046228334087208577179415776489187215182569099423528808461550063437790787403613296916995022258168279969829307037804142246075273859302522186247886023618514893169233059750919040984011846189538080931147727398091679562356848260749685362202109177120823386892254087679185170779250208610028360415733613639586085197486143297532928886319575110859616044421796860212912188397329048073939172737287707592530764895189846467702569165401906766841679440848691449941703881218737071824624569400896280530596770616571196723763965090868963380066944877058826622064372949382444730134582489077447097749292451250506532832564892032201461426842011284544906098180989228175575337753108306044721497006478406910992385825154399442604753943619534487622557263631722145028565517870659019716145240334236920113164270804844869461787037745194136213276986487882136885097462099511038669801228869715211460740244011037677947490192097013834890640308805764245540227358876496054150589458803259469539842563490638846964959838315905893626039670153007030290766877974643215982003282711175543373109605220330214165013346609624567725396301847739190080251468805183775421565443346186705796469098095711249809114976008101655479550970776721628472707733360866715299650728286613916417978891559893344185217450018760837036144311341387225483380031447428322997705403027558299534006571835247763848305297429469715299266811329442656871560887578065030915613852987495349820652964746811001387685961865341805249168038141223678639298695896508481255647415859233765614061848960388967405462027849657967493387477702207563682706056899276703205726758795543483133440397480709249779397014215315239348439844793112659633958228567998360903082971348510147896648165727188888469623214103213515086152836593523206534181614301807578212473087279207321751870255429041538413443080593524917613949059922653869538196187421434021181640086787929909597332766560978371896062202430456654956655484533560024322590378304612579568426674784899801280271739301340459472933660249817213901827976211313735497026845371011427512595079758407762028664853117691711585335799700027329443583071588075771647763321547982044605327540699823820795207642960194745492456580701808640780041389571961265009886252803416983315706610500419445309300296449729362933289520110791707623528808994433077611931461967225032926336010345833667513007970406553247804452373106152608842141904880372947797952520013744693209788067419346035267004843527487551222110373955473315995863423701264172170484008776025902546814172104897965619713279329320525908066080932134908637509138903704312375271402177622805512884033324233054416050302731822678518448534573068913206736676372826366137526677458115615773212600695163291431323100185907333515845929690679575583570243534759901307399095474203442477164160555965547064798611326279251006205490669373434179732208234801684686022316374555344226012769299944758071773905763837798312119360177278659857422413924028319686303704304651703080415977377884069986813489554052304328597636564412999964563205919680767670415120679057878131826789230405867585657213666717567709480029896850234421690100920881201817576352328809986826067259080941884820958585691171091206484890810083592006220041930742097242133983365017145420847851029956689051609106093046727341854112794800581119421044254756588794564555135160035458424429656288732810505479572020172047944669572163488653690513353369107021636298291318485652713607532023279954968093502622487885318304305627971849271755048514259780580802868283233444588837451130257902456315244960205642177296297963531995093710089498543036770849210016360603560980174927071987395165195262188508229981891062149244444120026283752326708446744757901763551048412926400362388030703052813512247052302766808785941271921770121058582670540217302204025835142841679245928987982027768054017187987354587088682819944288803055585009342901517384339931939486947132543541045518486956340931126443395544389203719260939504064964837155508101968008763501378262783341298643889234480949116418866814975309854786350039372937512483914059145590039874326924280053173793889914416967373357535262440200714747203730558547575962773096910960824494493007844588695884390563813771137638821150033098240197282415420268908037102388805625234088914302285382932154541537870090439188286205304198952964575839221874038795400129839179539664816998366386529637208658854312654174072237306332955365298947086503253940835456996658363471973472252865775778360718295816747682255915137028406808284985258990247088888220234473732631948695315733964976008650435157114872408784038920113984709430286295249208360794689141632581970514040315359388059315919164512980341721396796518030283957525889971675081517132739809114470405361884180350487120309710362457430829817022740554073914707128904187335055449407852965805121612806951683927878047630446251526496029301454554708097741412159140961948676333368983884699459688278569261655984046643863567954069724253838842772685773747396814464282686420348328219247915273071015454227023720427544396800249715206963619933605848055423665239966284512008410705611580584497259799229522799892373997000618862923594810332259022927703061243045486936654305990247236240586057524123870809425620724015336302173164361204852240796391959747260202312779797758400017334812755030425645914425272817260234626427732887044232509615569595394940827191193497090055099658744219189135177043433683811104578336420259913522757254594267621249280773506457407861938963798042299533788571304370293724701395981920448941030984181533601264355600810716408045489264093852601486387242242874840523961156303893427832778703443178780166541702043283460062462408081081898778648730625869677721537292490897334327917843686118751326968855132346953830126378720604899832497346971377137296181558764892318580055178138427061739589443177244789079999587326360972834892358608283534023228029321844890740839247863895626159563372433095853869796792586421771395300787052105122955592345264928915990348165417515679298310778019558432403838231497178578458229220054545401473272674854692871412556796327935346302902739875522278016075124434886112439149660356230324671179055800923333329350633171155984279212658059072520644115974110417537776473037660565631316478608828055563483406317982517522836772147303843936109526612032090062648140734022707836779460536181937038567118070428062052459506634639069052293579655678762534740612207679232297170123917462380074073720847125601546000798526914036923766665157387909757832844978783223696390920195305492726744731395867360232295201262281503698166182997734432105053932424829774979828635269564746190300856600373733652318725966700956331788261524089728424624438276496924095823017443684253938690993022675912041840985810673248237438074147620046133718627689825098125924873417064863613592683215860130861819256886750019366161938408662426547485516580697873443073876688596570847037378049261540160151315279175066676070191266998201870886364531708350843618782811952530931540385954824447261619366671659481597239006701961228982547638306912981344556326004052095716612852544305064916939982240912198167978133702864998160302405871029089772176343678779063275462584473515813840417790251439659045854820155977245189861113894445187980555969287292607053902470378447153338966755502958175136778844708650464714812807927928187174182063843596576963688291206973743684372816903047483738972857753694290475792447183408970199336329867575486933087679680620830969888676240971115052271580370212370562629114836178508194252256079164050325667518016107998443257646408087902150966744809922220220202869853747127390118701361920648906427177244638903104417744973601081568799405028783977155788754524451515987421700071131359741992863711577473567776313589874448400550825225979869424144409032270863448021851727310666453602663936308415974329099104354332179272311704727217519014043659569507951728087786382112219018112957360446087354229345017650693227145464432482672745598376238659517228614288936953596403582178456100842313454458336639373205729375059803368017712292857531055601752894655209708921456689154379356399594278624760759639436156744125524189531066550156677526999206807087555302947026998084938376719234565740547927145198553388146264065527507746717077924331688229110324295083643634244390909644429104398997167885958615326015258824679240466324364912506533247870734389798306416196618828687899473378118829127430396870507487124208129757130689132894840398859169172073194750023364537445785088789068972260606656999585940655193303046422792493301704630942280158842151979686416811125072831620053526278031719587346718006205873820781764491268523376252066470541455712353520542261682002535899949295040208262534458139076334292191514359236288628713967160605060983955543263307530471041087053861216548120551085437037378237278388888467256610105326358223672298474187757650678398459374945814123832174591933991422008543878522894270101119038442053705362899969797958574472267188291229137179638423522923224723848446379279268532084657010711261267786549991098484430046914669801704857196095883577991420527207446563068166914109447122361471285720181074312264450355882497241457116346554443783119029928799415486312776177264690508276573573558138892463712952602397078189556086370470768834886963128926154148829348675892660008480166029944877328973035690481556538932080621714059845165410738686509757474549537633977333536582857907213571649140101540333881970074139468890101562167367557861888779825372655794992908323983784385771447165212246146365368461286570709133293047633443673357328778976969932349511539720868177034271986687967271179300647487341413146822494814595084093595419739915057886750489686396228599789085416259206310227010196755165349029396048560993222930436161677592164530766406059341792152709382676566854362722820037536105929485400116080509568112539250587439401315793994904595072175159785909056496542905653966961870237392164879825215351751744861804152348390812601890531382063317759929712368809381187558365409573044959565580476559412020567773690522422348562768268354829323228059843563996977820562032654279379506998249355997587687952557929508001322358898021659565421341379583377650651209253383159562901157558469235435111854862924629436070718553899633159032187378154947668235331393380351399521975710901858305324436577415967810767107024789486965658183288596280185667152080102793676454245815103909332143129639644808156918398591074097415020356116816532439629853758115133896542373057397362216637843529935223198676059781647083252531433376147901710062484829947927800848483345541610579916155025961510355138918466562243566608951371330250949863820860191147476665009878923248662445777234275516773615272976981512446207836653855076428421998168573144396249425227691926804841155420455830083587736389916392816425233767954405269961232501697489444720063960046664542004878419845996166357449958875449114220509454887573751640012350371718017893830606744461238697324448264047047111325248690598747966335755764738096983502580989949413989763811609472624755805820667945933987535451895915181319507859038435570048204522964794761141774505674141851190254619661374412125420275306461200846049948732010888804731054887635265868539411171448309139490972315517544791092397022939826850349530975117465390188507410983467105280608680040537849725247918635477880420284838723152785108980926921345494126213107825486433483403939360502799697246629224843451204517986813364431733300117720170114598425725962792834923955741866905441225663456744210811085666947508033111115659273023917663156094481935649468716179761778456608938360336477627469478864642736531157923464308269575406861445983253466665081395834789991833589307072212259611600888380233683167747840008917771230160845813264152460113843550180790889208105037697586925269272199417982075162332388270905033508580951055759332011521425070399022104546684198784074595999361277612223146492993860083734132120146454533400523472297939294601340395573085501503547023972237459890123273185132169658798749386162035413357273964768085932548827360566435711015130523333195059040383816127518760444077844461716808089281935969376806374551111518164645411994801322218519463886789518404939771987363417027115585867738775073436651976486622584129935157203472256088843560912986506945210277596698048996042990430984538735368807182430464627005296233646817380575782931902954155958777885256447298142756978887682052958166373323392548953351585641302486264389946003698984716796542079178577237910417355560610736416735141242222993370717288402356038259913217327552781878786323944020150430728229822512913514768324617176775712464932863252383050315602783713679366368804009498173065990703179629643964759039025499866817422962399830137047594480335633580335405322869365764655937975499481861017879778781829587092759093973777663618853250179919357805789124352352287630267089431815259030941848024564509836776891001633375184171646977324360820262594311521255910327666146394251457729058450859528290711975684151013602017041474427121739158971507297667479812711107621741739626125022564449181417384297396921818184155372468898954638882553017580445522437886488888323603224574390993194561503413455892004694183646051028386505001403402633778513480808688035159020002282534507411926408164455134667107852806514764811824142075900889994525726010700366408294007648197470377312206946964163761524796046519437206809666890531017410082176028427748812677524491257713304889995726303436534923758452208891780134343276283353198706112760141266435183012754782618398451953262538631681655164421492353876577412594317816155627815388327298768297460542667486157919479933224047855693942844447176002395970830613442843104996897591313526166511068956586120042540760819266286477053054855393548133917769690294293680975085527978065786155330272475978469701872433578136374955564780364639446423806673662721152995722985969091999530527320286693192470684029986294976205781212295744504727181808454149455975699106256256913613751934489690944606436163452617689950202065637865250379057739860248182354705357405730097339679544228040218428142052772173624854086435685732069616041360102222460326263413902738753465243251832813241960763854862354888935928819934374082963611643113550118750334713615190426096966883879616207935463996885473814037976065495473839064588034756587737354013292736723303811463745474927493068841908177686542404566205144404237780377826884284598087307570315586341354660191497938560401441757977505003880936475507147138647215054915739790084842568609783366110437501855028609388281071672348453286236183532906799580759206925353254330992461290739587202128183259346112854116094551480077266602419619532129394772083915187414154414830347319620875780674885314390130754556736798270624516639609684030524251669059243806625557947753114335566504935241868559931840366258360122893015271194737475484635981543917520298793059365386620282318036831165203891763321013362170868520029216348526519231884377085392402666120408372527739893370206284536305049434226527896515460837003728314217102090604762823462987282239974864556727067931441002151382032851559170619638167078551728615986712572328643961621522922055764793336940441778096490616613531274390232131115510223528080987753364089450462205983563594985165816112825725496252502637767295713273989199352808645472479797170963160530988963813115941673450760433077338483194323644473231819142223581335772050072208581760055926180837661206415327800069535135425219751842295575933428863838765168115532779940301831707534868848311210784407797550421601647289498098910387009540462879750698361557835739443383856544953594547861161424026869902622526119000052146344117191284884119319962640798564279100594726265784727098482319861635845575690993336563674386133227757641781252381073462942515825529359797528715621211581157414397406022860123210191482873293095905301634868895264311558387995788941811516883142336817726131819901432521971590408309736958582578764722230115841795936274896818880506717791302741336819916256223584832457212594493265141432336940923143095202036774486247315459759822133251033163694796567083212861351458761241618442769476013181387715628232452120552934890796383028739574947298385928519660531700631841473393348163519873757038309602713780303381235535596545614831379145685550906132788362009589534627609953444046699189643156655961399495404447247293590238899895581776076037116348409528788464761462311950219942312723983977147575180869276340810458625611053769987315651543079305725638778046853712484907960087181421826250298708566067127520039204286704523126244386134245031646101566048771628989249741286981820067828555161735140585484158346840956132208452743556266098120684009469139102441333741509609500392565295628805773005933150835156157417821885221738081039985620715511332087765725114958722238262385369653436538233782725370580329501529604053054207071018414901806729407340165140805357978440442474423845148553155814441752536402992185756511714323445097046116815881047570366126822585386787137162996467283197038631699947192176213139327015799967675856388984109182224685058345095750776253779443333502691911485011266638209794676202651486341256540978201816639944111913735037308624717002021088027083630719081034972444621480934119359075485886724543111334494615350016564957500707145408730113354693242978259494965024785694114139673195997578423218720230847415711803768273631552315961497302332448471098848024056814082807019460453023657808126374184564889518517313453211604447703269510849246024697685082832537239804168014544076171554952825149883621941485744654253231612429209356492804639750699517121920845241728896632912385947846391519397628765756229521667670404770326429461568753776011356958340254945948881438685687008346130903950743616186754772366974290370036762280470973196819760657863982642905049106355226251251977543332104597630848610359379268764560341150505599456579835938790041507198588724663692582865129491433051235028664224873599508651488418677024339062400591846104711066594415111377725781172212812311657188286372674484990265853977473116694350309483173391401185379455506497269046133579918447290735391391402181687628564892733649303021231295990974711058372600547511322671649421443967023922666162285884508401032019313924573760384587698762613203503616075490209777049229395565552456610705367345207653098827739280798074787264805223915350149517820193338488065659670001898994158654025868165226068734385800920946956680521693005600269351677809522058499255401102702802930827063452214844931143072516473775163372469538035728498729139356154934383344452487112227782317157631660663705237986836456854427357013203658325878485228534090528089926706361371946569734613944205027662619554997376879174303447254813407137134979092678335734161531429477145037061673405807880411340240221484337740839444431638123649705709587568606955681231448533614758147167179102675105361487499841197412341116412865811831415722360194872294089606433194360956202713635702850022245680639626131161560512674659283901392621186925685708188985507403247413360649205112577103130576745681035757728456545358566068235758358964254147357921102296029096317373817978166653654922273268650860963439551093264057966908662921246837053058344373303690254395215621759840361106023606715193317112001813370356881792059828018852905719909388811130988810415689895450012703676599615477749813766555712990751740821354260415090788925233362872565289128688182430679886716369254714771342966771186476938702391005633253844629827068569602720091350138693225792475653680781716707128483427063908437022909737523493296829150512855486624029660910261378670448954709545956612743950262727444227607030289886034724024271763720959503295295032743125370426040164288680036096949844563532277566078857199009469213605522482632602043138878408086294660855086198029891957178628512352330654749463503472472493127931218803687648419621359726428876408794371496689758248409363377110872861303327334908035356195928994143703472640019672018336930193126586366316239765210768132784082840262704257411683940089170613286929477596527149721061784733619417800426533386833416837638415563829294518987907658442193824117675274508567661007943305073947863420494318740584716517524514525936416247745571713167626630988213230147681615582482598819954870549978289267604655287823562803591884792007135839481223614263955301287505594084315936959599954775276626798501353059728664807496354257389701947962222905839241619962410014650661225401409034678659858457425708658519672030737581029709893545136752977048827390554507387534397664992269004352096491542592784226786476140775283697653389863518825483066925186292988869818455312044322338293265394244078664535051965335467095322064597076529231340935835579336275008297265894207709558238780024739937028810241026254380883264318589565245852700348227661548514134910003420982235096953824582823868250212022867488736495166729993690653156172920339702955111833072058536834793781978247421016217650327216314767589215051283970085284931142340232681601677684015168677328118421937957271449458520263281459665595969816358256402407640353050910979806663985164206861974298804899506746503260962914318426832523866916215290524625654897410486691949864481301764202134888949644792090391055652744842272630856583639854534040765934465441431749613074841162152054016685764696162088878668956433679757751309531207844304555917622377643042455217945163285561529318872062988548183550683285772939459931996492855805305214193239939729175617622272560296626949059856693261785880692208675194113312804870250026472728865924544807136277896601748823086354430576565932096693824917635048732364719381584860506764467069363066984047695734763014891367177013691193354153433376071758017417764071951317786679009070325319904900791563946033465899793009391467822418861429049354341912088336517374321875904853008173557638928870417401632369677105760694138550552613544880169948408567468411315809029847161443262629667041911692858007470659266952717515758442727937061409436854856774097369727045017474684912754854246826166675695546456157183636841882731599362006856039941748260652627152368956540947589968740279574702175574459676897964466359153485648697270444371717880654150971611952434106707365535403545591327629317373019779407186452722237861680055298123031006612133326957240468054491166103458149241215501237921303028563479519849221112942998064223100086825707804669356123608325428227544441594193225868477316758033141284915375603681945431809889563262318030453870834248384361006499168610735679173143599449849721893444866765346228580183129820525338142119237730803428594794176707531170975667889382390627519429672796489978327365718013376890694712113918650304224293681838301498567397048693996755055060107789997432787534773439924846576473440816908781797817035696683491218899355986088507387584043031350921166698620592986555826627735713570667646325118264531541786197499441434715568900336204919761224787580933157648662757854333110217001866298767328493900535182838829293721482952931531774961825286528508806624029622971580930763981911393169799567863374663391445281789171728473079112810547728716486473913849750648759462273998177752746193473352816694226408801184323890746206743473722903598660987050108458791098052744179768020133537834878468126792365169937415035329907912646056676809974819952290183359205412754759000329304922116004614321836924651627122974053962848876336449746556189351716311174079468334704776891430796443522682769443019152099175540303633304924887543246737267544990096943525666015047151869441219469812372791069542616665936506503079142521062066720587338642039937553420426265573766852281268219582631563802781532969901807908722297016815385745609224700781497566795935221850815896150937029077254496179505501622848676886487323660664048151603757845956873657387666370008129139262452003174009454703792849393178077728420058640873635422513757607436828414182608336420888225347969419994822646118888071998606576459661072791119923961035526847397752748711731141713238055070605756711597696415619155341707256357390358253118856199696337751437452089828802231558907040337206333415233306086649894086437274386103013468939365314508400596468739482597098076273456512471592388579917125073747980407424186363672394121029347597170775625583818868923320909669322741446023321249317934394031176354012531443635910889510763684466943495243922759356810905700568443930553215340317609730100030367196507650077471240144483517330344680163479995511154360068442317803144305645255172974791718424808441279072701479584579657557334927900940123190258432275749433325006327869760733583571502392339266920240308611742894506285788722147331709715299204969441573073938654872200133026582187762759212336669555636463921736438490722661088801788695700805371359728154778177387724340641248163067794600415806590992682253752937832524737077552551013913168324258557220781916988153911528987067123549455418368660373815155227745962315850452919040966760962716196136598331405450241015746838783919917789315296124185881519213819518817440090398447077064636014976794795395618611033590752292380791326972454756167275566192291423839150656571118522537048152867925772618539918441871116820637872968211806230031589229928203140039554354283450435855477294409746022184459323004980402652747663281895343102419159978378431920667518351502312295066306484578405609054034687331085921930029071378899717148084743752001283598770978312993678294941284933529452016640679051483610025009323188310956419179000561132613053621797694473988034575027248556408143042388884747452022107450229959495538247691585946121451053828656329681133055391779083773177724819432434316323508022292523569753885867417341442806170541112222906916869400728430093154077867511988098516851141384242511312698552954050926537749038284858865828971571529500049956146671330090952475200364893450503981577659668544945885958566641873831273182300900649013923609374354201316033093481292207020002075769615273898659493461278045188155458262013482987937642501467446195691652693276865829713723823139235179115706208431766054625386508003079822163222370382648928206361449220253851702707877500657749997013258329892068611577298722753653400125326704971795111164928989962221215343226428675254985653128999757122200782356508563572717166569790731043171721239964505323008593062143123531683281087333841878253048451543267107062290821951947889498386106783765120310812753848807602650673384853244566917345524888732145093431361685523089453394393928061114825807945730684150364185788088276227372950692942741848475494690121692460865778343805001497553796717275459211986139248667685248430756471883118792606010154664589713219026076071733377897351593038789622764641777872481701436015157973022022540315434780841980973762889185002580226569024943435749063284641696330836419450029655491918564211151394543273299622274534387026927615300366761417508516323789611826540348641993671867185469699011195504523103414810445696150211011802573191306096296854250457265672509799264989648713494057283322235140962236178502900078281810054471154190651743985143123239848255389274272490797285487402564959920801776718138148352582640399457921081848183666184269121596457528646783017061278576358478066664113301035086082127926515385651260248661818060603199023536931465368194684219159387876498645177301858955405757912528260583014503156850170742775201322721291728972103139961628138720769741685073087489225819643997360399532074468145052838760149524849133798759702559995306985238970422527580714882250678561771378046626639509835134323954197004216280835549511226979627060379771629463547477819844423897932172834125590554397785058461313139990679983105655504942148023259836114884901478748603966832873714894097861166739570887613316837059365874813591279039800702614985845210843874158664956704934059164514084852282939464949889562721153899167095457154725940603215549621271453955473426555466272135979545546734049656056924289078512657840417779399330053466885605039256673995156696175512211958651195077628771677473115407558946876403854027977630220510980443221233847797413932757449539245420462931897310068955125621415086242304602478768794968425971750664295349180011766628272337978459618354956057537600536786844504262543214312170312653165786150022082024228350856725184850754239692152267948426732117604318133559309838410568089700765771625633215325481883423939597455311306091401526009040616729834904396824601915433446823589832454402534941163733798368341464698566847142348445932426222824282351257833603281315374051251185176243915573383675441074375957473751417900228553227410005020375828985264180949142955121845466561176799150413490243168486364547659372280163087870017065701035022345748823244000368498399001123104106672616057533147374015859727734150034016257766853005580752692031461640635966358553307692192967969004853739135367808285432197057077811782757582336906097624492704294126242517206586276807185557138654403973311538886882868489683670548092632005024775969396728155269791215760305026298273802616306671910365696691773657410225224436014242229198413110834972111590549802177550149414672882073480487623254368692788285558205557090211055714612507375010286668400405707108186185730609019792661379411522663194913534260939488373146343249649953323038976393804129734042664155645715193010481799337580235977519624108071240010236313836663171004574908126591114243861080563573769737352758545774492167985057741056228106542723952844830615837315527314138024071845676751560640279383563996220126112047127827718044182271332934970222930671453011327454075822533255573374094704701664792767992889860608749183440983619878622700118158190228961412101345324832854063354341508513645166089542643128447804924480649889559765319702384739441503475396866603138507943394746639162027941271188495797529437516636951223804919948988583264641483410781606176851872405420246620321800150019269746300676418597287114732177937217616041268587892002599799006695354701352168370068052123653839664220694772730907512296994849999030457988615970966650149838856102352168765300681539164643433700812087506597051953313702885951986325742015087008975722654566578064259013055851491746308954259611830413144584742977350280347950573126800473146107659153230844084230819219864081040467426612175221967854472938932551824838155923193140313024383961214875508219801076052999170717403314999939416664879017978969447834526488865114248182221596124417909441352282639272279202475727307289207414464594007126670211315794901311610093012984274391480079799753626155622122561036444910371823501111974688665986934363295399930171124504415044276810224535462414915228105782766315610179628422072626245449448294413103472446025447340588331245233803997737007225800393509702142975838551287800573639344716866234845715206319140060544340317978232856445545481445047731507963991950716517725485148390807745866649334955451899732527469732826075513221447020998295774386933739648799147675074215286642210883619433732297831110283929766486154170368794525736083592412194895153106273254000531208249538326957464995966516294396128465878362148856543197337127899447449892562234897450612149730265710729877875416968065578360840035363009994388727348171663065525431766478351814122791925726262682503049350877292625725170982345539688658597345275664287200633733350590356877927452198043509553002843821927317231582587224270998846421921693070705511751356668388457278776405527652368248601761646736443031704326052656593088150410849079794507470611303855733060579304126534550669177456441333926346209047916350740237958676134079408780782491380527215361691147555660243422830480931330964788717034330958519925586582277688512114008796070423202924855591513720864160671017871492434131300948990903047348212330075557001563071266403190467130098828179843434915713736729905285617520404437415658897012863945956089748793404620947748032376625067344106391058781084090038679935613866619022536979159477356104220999419546565952791953394569043240176419399930736456187454666179548945074622898871951210671779933842686383513300713529767390779260258619809178388516103974314184435114226033934940709649420642411251422000577867069139867675977905172233325536543659847168061783116067318143058829762962522763253702790443152850003365656788310923397119561871374369590865069234744485613813546927747071071386629310058117950699021529265472830782283572326814313075089369661225031947621217456248273320109340721420001058679010423224234260992928547457324164635364134307865563834111666079318832727920749852690752031093042081845787370133623087981302409451444943004996995018220870003817236151244565081360336359956468227655479525982520111898685510472666319762392144355404516104073617723553102262737197736557750186777497300892092810768706917858986939317022386841769316541547038647178323653857069147070401721349646889498083109215572045510770787629175402048453973468364568874978327472635692266919950317443294610604077411696232289090619816690610101581158052094294773516427719171890727117891797356242537652251352516591236501638007970534472551716561011096303088837517108864384483308312214031114204032466858448700998974002595860245990485855345110659367608208109589477328471447575323924374937175549296749113545806909157039484280853260966873513106357052331040689667486465697464368478750551529371134661044811666575240309867239562415529526481252600035069480994817139732286857327664807308659303427802987069671472462925107927812905141408200022111599262266322109634056163760500968234780631250681424972199730933506735110988472073533946398120892253578542378891352895535122869037825689136563304760558940952901240291702226000330716520741417348942099563691566335534336340781606747810299221549121716723250678515888021002621819218035992443145014597433126636625679024069319552077202790920529663159640282158758900995369561994720799072959444124342096409361483653097751090189455764037027021052875439679999168016023332594703233646708534419204383105824917121549005967459267786456657740073525750591859862682285733448022345168849165663274828619716539199438945078755164891649947500709523570890776294016441593844193305295904269280906776697343374245614093251094092276704668952873708779915399890737250988067746425830597804315180590990199093926657235064888610265050219598117601282089818903277168054664901729288920434651583256173890137394903357175874784086330004308177134837777915234536736045683402970404614715313521049299461720621243503160669520129554378428513829702254627169888817219252937721632892270397555720736955471322562953189562310787418344986676746605041277738507166886601231100299433870099549568526644497139882824296766917731540951299898577228826368466230959261681481074391460024842410214896113886066439806791155953629366223313546704016076326301525057912570781924763129109892271230569387204761947955889493669484594409378715395470357443819004256096376092272916579370301774144633479705669172610242112970177725774234252240622697020505292162148534829763180202002616797922194304443443159001650299234329393797955790541159094178120216442834071656677448079154534211821285393801104871466966410647285610527001762117969306350083483335212287709134965233144258532906550573314202386980375476255620734008453215065190913253316622452340605918877218833745323827446355671529518952133799894663486338691042092294798279575856672455451188397685590746499279829263406151186423961044104725851225307821422449811690172682838308939038510426260820853778906012931774785014833997449926425776812587244652199409651408838724106756586383465996330093633485017269613291694891610393391925883572492903218901248804318967025636033026472387933386318397654797299659203733030205594768204172700407890499872161971888335395067030457714533999686084112604147334385769888391502882423763197969149473792282335183239918181002143235120854756334498513395811186060237399116915566845648940968434132481888031128347486700158688132016839769904437452116325101140565485450657798685499110457260055493139171780064202745615976252094774529896350656996467079217670034319552497914145660314726912517871175002455918646703325165688886317015625159452493096924786720552748422162944025424209670489361274574103495685039828384556055454561739323035912027148875668457911202126175935322805665502905996203914822056633488703164668997857914029093191313943857977674615573026760509735050613482294702461960121018619431474452669615974100352673954031486404953566817592551065271931442401567007956184233888547086153691332843849502651843013442928054650737826739205088777878711955038698837967741254204440345785687228121893937423221523936065063459068339649628081604169481760213975098484755719537263039191238125112522691065092988206868721734285620907602592413986954149884086301477599370341109594284664424967874501102032496981401111276086681203081981974156875971382352565500258088967849095562246286596553720624408180895781909359387795476795887745671000643335511292358030695071334471931753944223059079662242884084245927703614618078476037700959931558077203136310579006693049564045611166842472925391842388011999691114792638642207684778298435499874811253544484489679363129801251611802864950102083665346657433086771286139181128910980182291216944803141912816649584849841386468246439535085922133034114765974306117150333074607557628697768135341075964841749917627647140327011085045588858685282458110915570542249254582336329305939524677039282076159182512918616878728160035649565473677749756232031789273963550889677158983936811576133992172654421964364796758026581226787868788768817158969936647952971798842162706482593391183831713413106699982184575202687840327442857215354036783709248779253573438752947249951616272472512759919925640315557604911893305673354581173832815360725639551504646760304749327723160741021196351274003115758395898093356637426657398448694157672345939589095131360302690173413741689637835159298093910935239760654854614738670857700607102561966259860243439221912932883718399409497104252557286058841803234642735837154919885227620000013218853390798528032344197441275802553310844173729813885321318285132301722898065473725395610043938962353858807382356500878866417539566440199371086949292748849001878871790233350369065692876047838921039032394449064597428864006134760979072785315432682541653971634021722472212742889120897709555160144754734551706037458826267834078614619103087772959623441199892404232981345787692220009774793796951580392399055294796930414875482332990183134597865982875097524150342684435046078036031238160686296287502960417100011187588633921477932630419011925018169749838471472722179341361451639370185071228231075215507984172796751908238886463488428096991014901226440178179160187352657065017030529959990528039804310577251952393218693201694147534354514296926774273054743846204144665782449595935701982737249301933029528184631901670070788712405516128577402851575830413836009082576983583975758910504020506241543539778126275388325584244928556420442548698546278351336425153308061739867310248876366749987822974056302940788568188296675034145770209770033283887115168004313158997937695032002268324806023430227351689821052382163009945100611795952235817824963458025153703200015012704946588119107527332213917492389223198158022419001043303799029694924505701613245181524658334350242576219253687800788423734569635964637504322672266223780458986495304037362801602069081944065999554339939783929541977752611995592793680304321219649732615000747677864177017998843752741413704623431322983326489399776524122862154651971369529068794954152353254441324846612102819204008862776600238724539124005163497064904795367113629906978870911875021911817054387978241914906753045593060553417979349132472294383445359225613707413958312955012497737938884002025177363014161930860169214431099202462535574692102254876455886764941284820462427285266504359272582121528968213541676508764853252068422014069941459396297231127701072176024718941503177703529725762902622475390786364686463591281515056900364819980331917469418748453331036372008512455711411738819904283191401249266766689297405425874549006104590072756915461361762750826200861014249325023713744804464024508702503290417761005179232509752141268277485160093440044631105883144675530355830600997548228311110206650960402801906697338462635368999282656685674442136145717513470775702227820493514115375591608527830296408927457653689314412435437890254113822284771214122618066597887973308646116470007609089081473966221069043940505451836359989203724210373548731510731127078035682525854347424077050869303415627145457871029581940480401585073026795181331976070525687744359835832190525946940838889808091626906267088347766037283494836729104803853471201014223064920376006100929134268193353609093166421585827648950860244896503888103629067691967388630218595324394413054818141212062088095827887163373211963742427065710825868324039007480239294654067850668676829231061033558482596211431261550733260541517141406097645578702912147653436806812169829143084667138215037788132119752801713378681307767857492460105042676324836214719174273265875113771523224230102709033259037376417126965235278844698517475603656199299140329496406329415825628055257560749925718924126518329744604502121686411826911157490926852141490808282069126649756977790482415350021917264964331543721453070429615334472854414735864210343164034123742519860364076754475229381701015389333963394222376384095373080523603277663668906775987336536776872860814509450047274183373910102566956781546035877195195817431715346505455222538950254949999483864815451638043387989695390131794224416141652864237773165594704350423858954642271317019757186564374167788757637480484881105588961870492289256982541328686574061572788605875818364626380820311895725114216824489828251670397171991243195127400406126627101409275188673669322216973962710051483909723665744719047224101806359422723379259126252723134967910202272242735730480333048782403180253928608615246679513585687849279542408803198098977066168518361833991139418490425132145886974800202193238499993961100168824770498479050327981025621796440228267466598622170858283085444574962323427295188258929403821388492264563484765352932681479241355072008859832435012466442351048390641880539491248562054686615224713750086576233382572145085435058753472414865084274823899319653633046796020360680495025269433430684949048749020921492439054307735409509625652874144833956159122245730328769544030181345486522439392261784813373722864013640116777146994642603124249649098628285137762277055338713674640143954323446951466460278709351034099665968261483108558368137498990014029879340988424993932982470378249610114097124389024049460434574528167437865323450307706971795669961756988938544292494431221872955185609547480643604207767336244416467962168715898313560197733365618376102459509982137056173527664703403273238989255144508002732525221483590068556107806872504333627607937656641644511857578135550811918108629329133641383108499697432804004918833342698584711743925247628910574609236981945191733578286885599582730544260150833722853238664632661324451668306106168251021107367354135277868103372415467585383282535589088777782651926138219255355679068588343593583069772120904921089733166337979700433488328935129457640204397410449321602880237286979387327181072621901219640857223058337332583722863775962076946126798898038618988756881777678137572265541122626574321981088463989579590180675483936993753324446367071632035662167289869160533262510529930016757954102337871510073512041772672671583766753231012364982480719379679491437942815239697192240130099657841206670957825148843281579884427861175205394130688558016159355837389532317168819742819704395407749887144599871550709891153314186353630245989150558217192812792046543072075335090276905256540987920004846927494669359152230534449086401928600344096731195064981643003541780802664147531724647711929416487254287642464584911587370193223522589712568976687668046091427016892945333316378440755548584037817936333275919129654268581167378529747288879432872762259634509794397701936266179231300168216016131151966631835960654876728603147794396226429361660180680562978093476978433466925201973428985135562063333128981244813724880335334957923463187385764266388254407480838877961875945485020163572024890369480966456279266051409430411266610305943736260844658810848378975870832096737586125125199396935507221228521775015377119881054403527374130011040810349804373727400635961488644510278461154005111116089127771908809221941987465404410537284483720679490252610916290035341381534367082279974318270899562380112920015022772859023937376667844610245747566446258156314791198621529909061443393632182176978719475552144502314210028485846540758655844840043484383968483545129542401106429413956723208447419220077511879322239714097844669942968657457593647482166917401632184266135326434081512827549491550305734731134449155396957241446021496077404887256297305367942046901757478909269832094421084234249674909346737078561530999801346092285968526920840251605985837223069976340740958357687476150982625208836197408155581279454317064583703410361628781438941099258511560293158022874747484433265504269733157116272490159545926533404911687353240505368532128302200825699725497779419172128469737474163204173528067552005517261678926599599930094464684041696614038576475128849232561732395874531304383111718566642824849649175333151052543595440371936476386207745967203301310868315639491943244457629180649786617652649077381526904052213305098922566081599811007458289973079941041822217446540623448459207066782902417238910033082085965514069126260765493687725100747583894890292609098684304997221502809475292985571333362066025658383094314077693751001769663045761550806522770136821199180927670234125605814259413047853527884472710811788330213440058967804638766132181534500610287064565684912318442385340374768672974430409493180556062216965522288503886190574668535543431309336644468890450385753898871780649947992312599422526620298323458921104261585746696944938903506865384190818174228762120407236906568462523404036172718931066913539184976704293359336432636374600817661945172897373459781834400928959626170690418984834540043368805945591477964501012879467312379947985282245080019508343474038559320287293928640337022159464951761585144462025317706402700918688117253616485316297964965767005509735486474072069142752664685360509769453363145413039201889277744296973143824223535092720530750232027376830188977600414750475517648330845956685210116985143533013916006423214109777764310227762815548844649220195806537761963534785612100584128675237836422786975852369475731786506880448035582678594066977760686690545357618811668056386482519049092793432051715449737177151519003504755550963911729131999438927137297437095906389997856834860904464738343363352436456315607992175014154043286843322001015074341547145169275981128685433166246232243589397775920059255372188496269273675207457600135853040592705702464734113695674396364992888635365019738902477883390494440060979992857225236887753752909332454466545078382628926841602874259582510676324426309467813549547967983472908654119697106590731289782774428703371164794515576126103216825985123460564258600307957691248859616677592098591551583270961451474525336948741007165479837218972261938342210448724132227596902947268706974284255330346971887656715242399071593930410528753247559424101780073474946382752911809145832342460288895397391710551852545501823280220431686351731894280062503532154409637427550171149782744103175144698934256446147448156134624897013058327659796236599426769765710835088954752705287729246461312915331213105591938465449746091161634316708585684890489783249059561951830032404806873316549340247719203624545856486474633822567387844853242339850849035252984806899250552193912885073509106053004562840113848734360455933254181922152320319485126341450092644603492471250024737492490813145550696992989612259895987978290512223270532764491846215475623140493980737099922912349858448300375058900579325135364696330995090361484161279232673646678278697095445606693984673236003790586223359420271744751237433870370838676644685672807188475682179487018412555525771979316017729766336850579267395192409285834235456459514921502551061811836343274687106661709000455004923682011395057889185875684612872216774209491138852131573903606020045669270973344426197467434171140907571747420611467618039061553263643354362659243934088292540118220124396665591661407767364512717307491837306394043168604966351258562076973169142108893818043827720786197542466013517880369205586452125975644704456131600908146917834997258187974593021492117914353544632454989296346206585422753303515700144233949435292408244764386397192528483713065415277891881039292886625705482149828896143839458366476184085867419398179933051374990424832735449243358852490188026727268910285915050497987949008647573152061474059962336213433601639511723549693712798178361768783096986809902820549050721651764689989705780299446426136559571849831829526579527058422544343432278899391117614817060447129352260626115290885057848516823907092174121818767412071682123112714033700522915108605095365632255964228330819093127068982536037420980277589339698433696703974904508590081374445270549831090406386207761000466405298524845563031079643465655262934048014590861682308204512424394729483555761114168765746810042748162415606516805249237603990042766008744010652871581504829986250131374633121733891215830069086968074043191313930550071114026073649856962630126599953101841444555712469437327481271431385434917649166565041084155601076849894712735141210542797616088159918770321944792418928745407783727046206511575125323934982730163380576122238180936714757853523768983212836649114225915488931851366861197299465303428898555521295585862848105236989854508630131055363174390235935410767771610187022822989480767807334727269505257800684602100936300194033726491996082179088682486637809673549577376922949194552199622724760672232646998087992198617148981022747661947575468702682779554530864317341075280216898231801177703984099984998111083368234426521944142077855338708397007940255803276817367246900543634210180789431236461971780910026431044161227881204477245884073685875378305243715902193926139669875740376398883617994996695249163331548485388899731671834132374148070646088825528731195874550398805280885597211057039643327950413815173042371840963143464251050514348022703573962834500002777964970625117268517615919472756861240412786654858044586777131764108736533897606417309217235639424511872714935063795214153489144951399778632193266812549810120044215935718612397911819694739473794649000667437745488773244083112255551818752249198105008079722329314005952258658260288751100085581831186221916799242648970585044107659523863868139777418280906819893254678363401215560544140039219309570260095540598716866294857542860888518310312897187736035642304400246591163650113352122571814745672837717039701149281210399818833178199862197157416031301813799525177903970592635126324725978619686007978371685770514792641721455344012407414769782933223579381124343091448294206436482358739803312427998974226548846875161364960771455756142881768966448037105592326426337935781946708726961543794754616228790471340743446328856824746871927832536195900534496800543498415005866671745654943158031787739399029232776651555173903256486689626931720183884685463589810978591199949714525864570642134612550760269358722959995961643545001029169344119789697407543642262927252412100555322807061856807647620171705133105699054245917158808092450215324689984590017913845177286268428963979169773321353053609217057661628738797225521812455251315564618690243593014032612327780897922809166946984672279522223638487947861796116740693154029555275312857920365753171133562539476347803734602353340078423566388579182316078228384597045034277969969498806112314514590212850196814579579245207639724807877203655508394565520021888433917110803517275610805480115559691023036440362792845427601165272640543053859050484713598832062085810709956840025322770238095067860993216241193251597231712023954929308388301435094834172775025376862180104991808163011903083654407185466187342247483365933232589700214466921226044860251354441650614231422354243459554528189125806905650548449400456814667411332506062235015692746571960327225402651928126432583816914966387027408209206561154759028256139657867929047440689195358115860177246745108876107795761708614643357301944639547556115267801236178649856918499926509681336318873184491618376951047787175243622270312671295426891843936128595725342637813448903554530155126142673163169902068195373086586158014750885042722691473033786486917463827443042033989279809416333062098198575804482990079691499504579792842992160514367116143165555406980729776454416525582893115599974513412648736322760042409028012354182015559460115668431817428530380675486450911387636778954517797915419426846383511506735214652819067869970185748730329752313460987063829413391913946560364202498496209727324947920522057457828207347956514112208579960418804458227745910304415449808631627838480161107490396958919309633501152064077844196025094178773779113058273778219293347405648692582543209539602152604965065263574663536826054967160925757070243159821110174302306598256193947903692088528596362931153848008206856556067373586090702719960343706190324742004289126780793997101006634549562630576775676264774752611635732454982971656724251976474727350434568131530194296599745258343827312997993475452451206298168828182296732485927632565673118744813750637823409547869731406743452912074379867443631547023368972023715292024708506374842183633998506295018178233367723589365876616880289426068258051926949139837578885446839354673454178196020831726513505471015839314473362071960151856856934583809994201461055139399727620498645819523846176150237462663774345603738611517322892660157666239457687339759421577330547517539351621592282276371257123560381147590786078335369911925356619012291525331336516819245837923872588326189498265996157819012922700742382672956059694795604384897525046801148879255917320896252714934294934685416573205199488106663124302695126233309592485049661911537888118949098080563514162671130555318621538416008910549003374590993363852800368433007345097977003342323258432838813199519734682400676689493170687802944393862265383220992943721337966587815306824283893308848906831339782197913752350862971457726942123006764586998339769913704210457562598151488541145423646939703319714411897868118277519009713713576323754439575585100760970980593492834613698503584657071627839168634432189616624976161145919404494766423855830836365208472883177711557364674085398395096627815968657406004322320181970904467941730264268606992109926133575365549260357615647264592885533993325175897689744919770334126970613263096577378507889431983714619117514893397491242391843021462372436703258956594647495147075563069125357824209321551523581421561390700701237277628399785231670739596707305696937403028613631418718324615829954311485300207209355861429763452877825789144155486811982614070920963723085149457700552392029840930678822290475851656048546267237727634553093920654110260775344778501604891026674575202388902537942070096052415553693694012061744153064949447045349413657034633433902986315756936524080459677966221766788596379303849936534622326105178672386000954392523715149394104101127284660434967979856476240146023862127297960928008715424752421010410921970659562299351932554571400806110074150003299967688818741390907276132116432229130834565798444981741656371575335723944355925499850705343486761029464102670106654859623941252081159252760095342303920214840444481821024125947128715366240705814802189136439421040856778235213773617666007152744541656442510634122299302204179336523955759054133337835468709741954245590018050775100683799369260568215654603805503979731462788266198388143960761456805665774910495968409793559702799277209062239167711691271251525997891551037272649919249199172087800967302041316384046302545460848388917574233600517106614359682015877141426896702822576483508740700716524242227438771759496043211360665255085197876364404575237339991609538185929743385937799977772032172920399308498300022331688909898085150067038703412331169346066788855976955594785461293233485305902815369099085333506232335471882731295600473402148115099394358148315678992400379485550233848268272723607488005704239596174534574711509122335692489480720654989021168367682029664939031939910855991671709923376688241777520677709154809039613164730545839071753492107213093403826015453536633995826828460423586870518124473410181071682595562192321269291495952344830476138225636096071437624393448672941762032668131758292024431034475489123859556772306220159909096798508710820687396280334007479587827460745850186393731443021883867970494986177512980452720189329841045687268474595872949878513748869971116147734045755616541708678383724231660830879985881339083151113838923170180869785795683248831149646197994702472585291906553341047489270150584911851520161894195837328535572207995951811214802487057648017446169094285662927435361213900574773153762034329923044704539355311898828479815874354790773075327529039547036048940209349712713467155756669354063985118208070125734714939829227154190989667887589848956307870242974040975149985711260177421441483395112027024042557057400293383274308913383864215410057233713769275728886028771732445911321855700607080694696468475692129156718442229483800294084448541751631344506588920217876338144395235508549980545838386659408841138990338763492458436378332732839714317623978134482490386565765172256734370291116561501657497275500968010364405961153958750233505356084205160500889179411220293653581614659191422622304833342544438902722167768853385103540630846254157466780264136920282147991917414670817106652528717964053433035107746030814092738469369553029060492191836252294332294394107701763533005005465852152452999750548033477311389604176376894108769237816188137531189098955907669333151259225242586256130053874260832135904930526720940663211146665736868696041265273246769225414955638312875899424273137852573389333559735426397450452518629576951924311739558743020382282134920621585774447762814876989166210841731328318379478169962310272718883194536427150469381507264105851932109441500181696714749315606976843159769078984681546969649562294540429977593145492345137962798328077098364822858821810590171242892768847155483388596263702621405138762282681601146968560646732434857151884409865479099410974877842603705355353347481495365617892483160475957722714254597644729252919765904345142795761297948408553481514109214131273600325174304326603804069222430795476367436450557503552996500500184187098011248179713894798550336084326742127536302606851085615338002191339319203976509522214252707066339159798919354133828949803659712827102391879312264910796211682076389890031514041137336099483283071136558111347637947401323386176842906202074775444446028575040461829972841155915998288169473338492173610293122104317459393811375397088681677729312048120287732089208424062353669063228451929958436418423559519597244934763127834127642209696093427013873396530075683796119577709304678191134411265546121647401022178060484341067767917122004260547238319054256642105774761787596561646101917567501991330419250105930850931869899019648072140527306694198213705726431270735382323668256503225958139945171712184724729129792774039970019173065131801001752279677631605067535752147270397021402900453625210116396298745176501520701246122310003566023816350567403403323355910980177053077194142106609442932705338709074639025738416488786822360678370230067769042479821638017821886993119164336487088645928143312464947472149594920060477152996739426191700527326028745875916316667356487514341423102113206234666777749151861751660189276650024166373554161098469122163431362506274513264044790759972096246602684643928807561996052598487199703503241592497597105705196782464133196564987000465742374224779810174187406481245574930946149504835557660126144740394432936641097487278087202337644147359112505366249257008241307351995338434193980329781694139535604619218718026103118256095165736875554083822684880705808292978299294786963779745430570243333877664649207745524149904135141737940911285047228313617107118263457831791721822153192619296267388898866356458697753276176926371834110446842661560007568781894014429680954700082094788556470289803691455568903789235706697578580017320876837138100996825897698914909031129828954645410940293879348517971782510776338571231970776572329716793259634669504159247165790133719533401551270665954556131129424385372277583758917683327774776785236296349975014268582794323974726596021782548622719597205158386331521724142358120760173644219472572096008324996216084527441346404661000308053761698871984454240275083154807124104648901303052676603883811835732271764428207523791277649649139377501883797097642093400014664726553865449245178969150728123480649685433529701716717991076686116699282372609760575492900033464984050443595238733951441559114760388366995811322205036224576433947634583637112955528305270832099297824189871457590594882447191949120069296430857661288808997069491648097691365646981512118552080032092430676617173013301960562686978905350047698414265368682472275378153360799363786475109179465429263512545134377484998171590138575267370395588128792488448784990494311374592540518597252557099924590892542807229521286854343524084064210022931949475477215901065728323778314871916538298473789612921466462308735148468155216657035885041755979617973406166426899544856873348030040080106815568000374865234182226716445515265672164566034671530916528314253513364006174068412592104805852370784049418921235846639812369483044482247203325386170075704386098100864331141603655901536748704381702047165867686462355626772044235963276948431270166240896635396803213759861843793075236895605284824947853490202167687401394186587608973293858435528014297272937184626838733673431146286081089432934617382318846186808660186888640482652781136190842898152748101667480321416509122062618347476132559812915234039291467031426024064610492443869968136445878288257771399206824989220202208086379358876365566780440318063450496194822608734609827233096002833735222124964071967307686307456530289523683714737957531631055857809714368903599145305183037497103201035693116066081924114512656448907830225932960378440739658430587388228772892810684224909702826608010905014609388869397079634035797698625536132548153982454885620730023097076513392679483379459706496712655884793808765136867921019829658649730182954297264712075687695733342954624025713124598831515338346226582888906694015116050743931154514950064043441529252567894592790602294337579268129297979647441983018650713272006633353778831137167177531464988647358395999049495440877228103924439320211834899570564677913486680796372009738768223105765523785461492419397228084850276345527386492869498608636364269735726504015671223711739258983836661432416746797668354106288086727389213418523535910307263732642963844073052758326269532884809677938587897059835169403249198938360405899932860082140277948561432870460794930960863210203386213120033741479102781430623943158366094899523684081618967860156071231631476887649813232493467070011563926293193689848700345482004056442594240185756396298867493000651000482728134379827760847800368159413271032176304933592718062710263868446880513223236560372040165081917762614540837067743814978002651765117694990086152706167574476082656481748114833154646188395460871849088556471587852022781750364778238676257579662031727773184268300447817414890083313950380414099486600608185336641879603262086217520132284454542013394883990008514224804163970820936823648683044151731717911263120155862247209255325956172678584952461536324835203742040641393372853029724713755851602844746789448201174849557313292320480461936361064196459752415349728513712600882619158646142240089519115586403931462508123214658418448084189102237425602806372892169280441072273495305863767061375039936072851003044141394008891575186207098733068759795872392822659536497451287118931837170675280210347935949339229205855274615760573066900836191802283801129130330882030004244771807870379781518588652517818265506424957104017969349776373397449189591254306118085065697196286933138191254071808632806204522818642020772668374206911060943221893119043710637984465276200405892333566103313828784493570672744430375963573929707661513721535869017831466586172838892293775466514037894535721183586343701947514990142613685947321101294739310985734469003947846924173442981941912577683284129013952904751080511084737134516450391975895712881518057829315359627302140883646887353855549398588940459280388633824569123458707051758292592895766163114861959475764295737842781891436177292398370291990729009200883784821333992606125334898138553243495864346385054809469882412336973204908652136984614873635793204875174701657297706204665951916088038828588372092623907795227312659509061437242115693625292741629212851840288726156264205716986483434811988694866398291450660809676813900303427414663466490322714673569255396064955587699755322468082324710029136768274937327625258514585881473361937041681677839399651531669098274148300423260296722600248958181011821040158556637845623420943015696776322668917310836935373238783490068392863174504016409241241615697045964580630025258317007745721481131173316589064841701497030012726254123937471183764266214791763907210309833685268354172218649960171628103334091325918531677059384046280335725806405866010959242918854362716993537548069475494276422891533992556818702050856353319378905116881148889738839270688337615795556461044595662610355868538246596893618012842003778795676917469890720016798762146853976409760885027455596621963020423401935218969389037827063935441597607767427498228481413808186910669715523860311413924121819180656634268450766115571804887788708318776958399077672700879308098602811099718910320256946297925676826391616826262342277233913572495007599372542826325328792144905698113283288920498673767240562353109425517241810881145607276854825155880708681124755392845935018787182937785915672072007153769601422343266098890324559002801646760325962159345783269753229504079965637532322217432360118112625107841788244515440359545619994624874568855430169172089742027715628367894328715911742355501749823998972614982267211438808705831054398929699911987051672158117409164688837458369635913503496097390265063905561578469683639730302175703231336488037375128059913664937162214207248195129334620284633542684323317308916340255123797745066415164276722432049682650591198098379524892002099440126355702860879442738591515437931778041183780452117901115333655261720663973155581394737491397230718289842059671881481110463700326274106919763651373071071127421945340030952257610543643187374269494158199500797558485585869847506758715901521834360292355427489146967603378752912678322483477244807785430959524304673124435594460461038384568873323055345561372391334405500719711142517228503454867172455145433751976705148379470256523093600173712382447106935939892856148577530092543531407571966563330522198255858167659115793041037497945057701069585658925923835617983752648160290479847267001532789416612256656270544912794992688740272011327138259225402350072522620286714226595993623226855876302229328855828555708128619394829417835952180472339918905292117753399969166615884403691509642259182806674531130811838354199162999958215730211736423597106063765041806090735821932747789618836678099375411411530365539413416328550720827153330778198307364555081162638153361855739635044784076363538206796450321003849372045687206065839253480367250678318844571403373954419807851928357279222733124769486306841852145640238247466167397951297295097245181014554428546519359222651615130884117130454633413739336560276680378370214546040541647442839327803503579877348749461889352814108159054151583918759234436353859792974059222336239088535375990687936652697676054252878048058009803356908161374168895677141978373775510380674039210034683946148340396464763011049151711512882857446487383221117288474594582511794137473542107864858719402473850074483699280525123183338238193912291778467211323792088365533808426933186534081907936206369032242404677099112513850173478872840236226745905109512732740956777757017277121303129842627950813885164979228121637694355536500776720932305088758685775028302891174880410087207200760412759247501598526360605817719780452904960744892216117921424639253169006837911528334052337066083250665461829633820024748540383880104089838675016664513339301072281942457579016309713388649672859412292314397277685282019743529771129016157810075445037484960844314182075183286335419478090828891944082385523169514506421352194950855156853436339778289185923524031585867811257306701381709568553821122331537870232727144581479534775807095351803147996380299939368140000591828158581965250036970823699392155421336564009578213547567999237641616701521980391331806250798701824864521848868857445376473098397951192150081842842697878907323350878099875234707724675076269174577179914649711865589273119874570314211398157949551861870251203339808704323328457896985434183579301921908145971391312201136465626616722189076546373404878015503389484976591754990113731691686287620241233392872540941794498966310059405778519892780943931984607637496368842852675448203237784004270632361682760563674683395375394247411832060813704106668547970860898587562338103487859239364556812683220743424380855269321840689658153027161744245850701993318448629226935787727322412047359021251157259836584529949392162821242531529947164663401996482515622098924945538976449763774654064261981257314082934477051983802029439917888485863472030253948630573850859878034391060639656456724983501440792609416058863991066552955768795489528186114985339315479320282533124500297835254404007488213767023788708293916391968462928344956395601849663275596817622840236050480458360648061855449495467279452872183775152187530176570727472941487136948038232899463439636553632825423818034168779242664724441674247697606192272022656537434112293664053448983710726431233198064081736929578038603500901148008735351992878167223356914433588677687649042085573900154661645719331462506132649795326635420926028406860956898003081962909828347770987740539363172942178399132333306214215402644691362665831987396415350903531746120293948253110687543178180461956576561245282186668720251248363063025905527284417607882673843299474677452524990042692903455303979994994698359097247559245557589149529225546240845674462692972199899681393886213294518382535991533947929397298292414470712843082317195825907079022519419487527194126929614954077674066754821064069155329768435076202787910961263220931966713263446603132611697172006659990375872878395492644447960763838709475514673527300006057231042527325783111263208535114756078472403097199711543393128930690562323702842716591869827526906469864199504468343818773176414331568662354997684002376392426663287156975515304896218605285467842877530842842689069734096694244273946601324222558378106883136779415031118403875332321579482325223019772890975911919844368479007296538798920796629229211607388258658909847715926539619444235997658941560959752490860924731245619404244870312853427635220605166214212639919774102323303491964641493283361061421325089155573797630319481240935661716827194360842731105046991788006095784688547668682847440417205739844315758298851396840963605988142214207177514400708992664744184153273322117648082181710307168454333389237614665285774375820165915142858572652318980816766401160102555915942427808946665485173474973479510869319970873043434306725401253959862710262793136138921454105741549672476192222052694188694302366994142451831201298788698655147919226680715418446212707088595153529981738239562740413001504738552109595137334080414803368379884498867961054051476896793852459828767685106828860776379352986944534483595241559103575303730771815545864067250884292748069392702362916280195501649127192077462177891637725090441009201504882120535176974348385028878309175525079397375421637863179499868040583015164583895552978917172208627338412996452797806417135291497203760899938208295941439877327402204540204242430350554614085522240673587723681884345781214124854873865413327623964269296790793883698095240893475118396974986444254310369201181284151974548977021962950766343154720482260087436472530910941128324733017715405145092740856544714929363495152142090395362011228574560721895395016020249989755645497209699520103341189635528216902069495191722734700626176252011730452406172572162884511659096265702406033235260725515925977985999802637652136005506511503805019025885848656434000974788124936869724200550444489610192531954880993529912311610660300213354668038971959523633277742093418405679165023994231369094902053554258208557421194829124610655568498372349843204807808971574752136589451215818727192052502540187231442849582715525667314746692848892586191418692955005764883948545034964058528975028499591431301746366061332892625998894375498758384870669958596255320182191570998670913012052698711172767667025552848775572220168513115563480379184246772546850266350653230969361126103315327622430427690978584590565951272728662788265249917483593804934784041557353228587009611916771124394769458191603328324594673043992358722360799858909260488140071912609271995650594239982411195811500869903375634005344951332317704332929497147201158740055388050141628469627769630309406193344545771882711676261087829192609940690196273050012082418353889862977215796364318961891033123928323220387122789517376577140212984053320997170883093590285161950793043502640981390875438775738999245473085418888019841778653891288559848318379989074676211152159090678712251993206441529910282714192092071339875578526280423112247645158830475744137033936379841109611995725612227723068717883201339228139717282967709175898352138723034057361563715489857358440388500105258191374418389926305829885384408652580874096582057925964916295178645987775117049498400106695874591965368007506237611135369039383187549161622231197179443084338272593311271023169167473524911858328760608996330912159964932925091401689516914561796601557837965280263789793313615086636457105323143585729302932419283916353399891172552921074861410989429269745942241538961288821827419226018148187060718985236136649869172995110258643912170434299748458475080223466836086803743524207678595058135573422788670329419239712751567874888958947679095950374645303786905481501019414097967718836075103011050940266596078039820416603474849538684655599758002103276856744796083763920643279886761602370573105363271857677418339705578913078605914512025329573130575712602263918576595804104792496100554470566487169927616828655029812564250557425583107132689840880849356891034161119984081986443861315939126448790035537004109204618145731479466330967559722215226393184711277783056249917745738525637895379094982284268864305568367564951474824698582970833058493947310352404494881941962633922414479383300246334813983799819655536949368457692811479367433377970043809497067876527921393630800869830838674953223846373471253644607817712295687406044680150593211200713882834082689371819407507536178464238352852471530093834657731103510203367223257921007137493716061318987023502813912834890398602541594047711820410908466816388820959822980575026053041637558445842485407483125863494467670186847648713970036142443424103404949052002435036910526247247433255169012915389724276471860223466914372155721044362833967926372409196178537089132611973784192553315628702253696773831848346881378363802788751856428864716769751586786395614871834711670891363605759823717191001038367703415155837941407813169740138747122349796475801260762407824877019859758844200601254661671577005900364826449988106066855561178932430121694888582584493245735454628048664396039674334136090386549861566493224573082924920311718947319493839507123762185532089829014269466080203242127108868965084325119817641207537974801823290621139698310700206668889948079918448255735951687273820193935014066472436350074851378324673053966779662852081665063967466856699603127001359165308433016873820836208880864280724715624254330859068942048406706185086337224018776427214652232774801060056044271692115406615442406204355496269188641326198027936770220670986771871902854350152783931665285202703211883342684339457831231192684651043755417442606272382852732324058576927100894108170689732039559971492598693959919831600079090523047993307831330758177539084204650252997677554247543022621475750305019141507734690943250092956362742851684542337139227392043134967135206218710996744039531321837629507922590082331091091913750211887578913873265869981272535071845903874131470285770621401216638014992446869941097168070232537316167389331530963466535769964132764073428300437666590597170260739302483083110668664987837266030880332106022630092431932695851588034045452834670862754027388701625420991579403673526314525318353227005751312878733600298501148460456833677448136337878080645942338929154133148381902739783638773192003543211316337148924079876465537633872679965121863394709727989246063167952794115321075424667816949245405349999681856964901983337542678958555755749266453740165897809231953055496748007017449595491327237955979569749884879073254781460079180301597453987809519805603160187140332293906619285872146672070957825965949660536356120342034312369520869793795001694066049671418742530076000024621406823721091604721428031496055531406317278936183520340308540725805852852669831382471678808465187148019833825892725027881223299298697224666668395718767691479273815066715642042526288226759985059774009450042617258655425717947508021631355706377568276673674455295975565194397497752365552683151974795991321920889843213171332603272181547371634156567882124850209008348932544837582683878842651246090520966329352457672888189289423230380275210814395537933577275404542160194664131686989326766941479772045874268321220678280779686351082500748736697198131698160468381776889125513251785256619057550978873526148367387826388418878061398727468633975364335024608360972599949751961816556054461548728889680025685980457897449004481572794725360129353478511339580331142016529311742710733797724615562895995557144812232836387366723226206382774986495946527936242455974783023766009251960265637590288034443922541798676683269129497982886887560166356731003416377542526229139875344105122718595148250541491964253049167274120789142920473966820024431004679643061098053700793254674630732900095207426470618589165418636187839787878610589697719755161963875936345353509751794196567567961146126914471413298916412121146479257870225444772780692569859881369543599035000234038730368418306043081035905851856352608684819692172871003015987344261212466546102134718419593912691641066023771918552332644605910947169246160640075212283870855307948257762922276627920692598200590231377643338370505278152022047029318726674071177274330697415367522346563201026808694563591690006354167981293563076419497003636626923648043642301639223466158709666352263464858432147242832512000205506729903473654773563244993439556926404790656106468756341967083358600331946688153353884305101718198016586353696258718374735142283557124869438782693736884326336574322768779168234347023643821036098711517105526761893346125167327713096463142696996268036128278793707176940869387262372148224735245702827394000273826388183480013170021357148940066681839424242801940777692176069379302048543212683409434203830869100052126969733080620168872088579138933242978743933824612648091643699709368030150369496690808528386564081949880197532159363815558418809637775456284135113995672963102200181931510770922618326887862059370414917910569751729576843941953259331841937413679042102450182622603431728288486971924516444759433729861769894705600297230691575297823170827880625225867824952707370775398742313980320128940591505765444039292499396770418655729886092962081649827436538281370186277700590568272241390666401901094176465001703002992625579559295121869764174698995237538346165713361926723953005597230287172254032133956460478071452456266404416237047812842948160247401420011109171630208923310494808839818954958488785004682049988075328846088938528472376536960517527900749916244374688751787466962914085004139368054650978007727760839274265097446079278660368423654823092123103827396106065434656928911900568657888195522182143115308467673927735253638684159876329815690564537889250104413159623395949285519317553481159073872121548803847009046501403128301585703020678800103373075042732286345336708617558456194743915706603261346206919415629028355085002880433655453492427756959201035125823495278642908060751101977689336172973063325874482097698014431697752373132270770117049058859030943282014801400789338822516821229646134125339579087193855215118201112830066304105024474553457184140187490939030220253152624409522377865905105390062134007505943754556560040729206557401567629401643673038360988326980482699972529918410026201724020561010384304984952078912366546689338043081423991550775464498643343804283513020217656705050341839838348576685913913114327355305238483280642063634136405801403120666091662296548650676309383961614721141179598815243678741531258794114965505553562395985628135620351282756212670483316111546783409496461496155621092583429417133117068619112872050623387521575278170665920701075774953602814659382306034888264717989704915410694821875693341010627098533727841021726858121865682830123462939310286073472467548355217034909846753925871580154641039861604126147075092967171962773354980274384513464917890090741540957851199708231525999054003528648549881416369695232968283500082190377460020414305438045980288031688900053820237390625539454714944027476286808738583061349954132068041231166591957505764708814229562423315971352175462010380420003306638113689605216026688703903624253143348979386103744144288478843760879748449235347567936248001911433015171066876907632785980665111948992855046794182101035671622498763914907941537505740899014550098368023603909575487745945754115229193492350549363482457625240725134851804269926575156334155014862562156841065740774420557391425579260358812501826344390709379497293960563832658826137672090982699615451872756358558518644010087470212197199181383208446955460798421173769984331493079563179561139718799735216872624476324119236569192877504467022581127585483697739745126783240442695467806852125803279114452118775127441165698480202149625440904904346572556796319190249142937961465399679692897528689029028587369236288195356814037426003301126864367656106606338866619190029365036823725883189262386107016944222829439646670720418647031909566430456942387324773354306292764923433595556837362925082319974731353147505317260410274622420613624132666585218188140573282674023616092830616822814843289960530925149662628755301149462624920210381885420804004329182686569588593767602232183271515079682393446353847495372091829519216115503086172563856332063332333496604460768052422432212867141424176988097217256739530528165649994152583072857433955155204441613593727285152232510838613489935649855897270192700886343992449793915483804316243176841842642544013564376430926218864177673498983150685053207669480217438376311850252881591205944229306320066587512866080622046352233803633153280138281177905939028105530881428847127650847159079256884170991105947537037654985700633557431196466934869395656855839423534449794676936864221919841260450090963816955288204725642832973410154062887467148317587348481540103056223468425490708745779258399097312179004384988611728299554635323751932778898726338284521678833298472543121640825098634556200928621063471808491062745289815463086087972458694706837508209415936235775691856647231506016490093669797732232835028307115657785960483728517521967785474960080787475072686561322389766532791109519718737819687077605563846508054737944555115557737110584618018758867310320142128234046807548739982527294749362156141047082032537978131749948505302106222369796291580019771657681210235309282392313737620022348412656799448190551746794258527114908972583687976530320709882763968214181401926097158969429101698673785254856029564879788811740001540694171653980627993264368551114360770779671297433311494481177413046988854618140278622035710840043488469035485820605250737913791791513424222269963427852704674696411643985253431131360550597536957039940110508775507200152802054318588815032653651045119761241622412459794458994152098119804362956712972153443681895591766332820609001266233196938924145520412014583711704301864715937996595515793490366829450138853433218289123218216060096125243089206876790317546394028436664564224594003606326327225432999472736881460535236478520490612187568611412365160560554261104999404857759277096470945923351472994532997757022486785445087600317171263251925164972953424120746380548832859421533780696269141971993970196394781137286166934878838684754042247384435550552066337988883990594287080034701665247837829523902534789132294226273482474266881327290506575636065390097864559614601212777921111824857278392157168358403145357564988639553514560266143571174618333000342624748114490964016365498089001471764487990870423470094710226371868381607562510551924260119636680923967600034413116706209958734071461320388418950056659672764534968850413706946919517823810427190804911513406138947539821366137568798211520873444651300651831007487252638258091220728638325995488018123635635475482073411406001107395718099935704282438118967429707671356717761744606372479937810020098873272736381340526019034025026563581881022472195738106779351115199770239412893607556494159298814456523337280456948829113807208419015632182019578974930443914975103790944097561101953843234251403631212237652525862198005334386088155686436881512193382611067021333362209717430338374598923187217462322668104518215288588628845040956771448100535825202849050853487069737073651456794499687425155463240181771635033228811057161709899228259354541680872219531274039926251168481005816451120203690796853789122930037515928500292130403355094626358487636374883269597520554660759445894141353306094439366681487409877429350928603525511667443553038041696490445272628599519625431281974751643983236997631642818970802864645443971326073780669640848125368488076029982425807666419007980202169963412328420861266734838375276324286444746053740810638536166392077125060627079568088399144256894514185262150100723905694013630543841459500056587706270680668983970190571161142510369711392649987814733477656194400197147602579235142304253683310522545614588471247225084032652518885298483715483411245715956448722764360500094246313163596045874691905826869202256032671505506957129338282349676247299561376444328307400785173060856719173946414715905900053533425458657132247854566567349848204420352822527312433671751402238892621061416713876870050979869316400762457998673880112898657230708561386806696932615110103400071764765235609399932934141055506067777065331875476777345217282114216580509000589444320024121197007977314570649279749002798115062727981631782733840262522926729356482154239700780224867192979050678820611676503213736134401356779330677712373537770191956444997760320016612269163147086576701484417489293147045980973978992306621325722407563087125601242533878467279143475919131945189008821242519110921248750496720096418495287239858480731542263659715026466631538198271316945231649681385942188591335147984231246167730611809119750682961727910167237867192957633408941015407595690662442596483400699765011499033349041307866480124106240585575870994364857316682189997317169915198064003046476912245143330396755020987706366453908981737579413490878161313430045430666238788650130483050202237676054182576895989444971836656230974768112735673220204370798467737209343747584172434966638591448018110341951281997354514359874320856318064125476311597728224138527993220759775948593561454913676421342156577922988575013519414106122940316105162395494375871792163892041832756572853306438141388937010275433470180274322841213947798287707623205155914508190437007592680686844830299567806076720682494908335800685270566892863805481949936646587631596959007292343387661306644653526288331709616070187988792123579698515282801958748062490466750671774742284815540219260400557963754109902550976379418203965063699882332412793236038304945870240449885885019974210255204034813280992611622662464963860531442522361518355160006175769341236207122071276966557171539541270566028497513084919922961115763436459733238948054040653555260726260362073720476296042079801127346003808646468334342330074589528777077230284823491256580767802068197587945264551299935580640705285245976633471525546517784962923384058211043377615152648760770250274604790824185841184374092291513194611253832347117604430696436594003610395197856772408122237388427968715098746060451344204515807712500773277028754980329058996819661484285812596537787351703201906555818341884733457331533321370238720136275499087381218345755853305758868786364881726425712827238355793500863451026747911155710833502822754931988026151755131213228650868266093953955451300174839825341316443578197463418607037651464264393884372210898519231019846244578394620802617158101043295706922589952967812352188532138771650567928731601828797049447329168057356513837860174610618795891661400011370335815519292973394074630781377460751428844302586175217108448640881163312620830002901039942871536776153117331245206998567518834071221817241059781988883997958305244662478478270788191678093719345959960004000770712369282114963580501771259230676485807896870112861922080201141390024277592025798846135841252082434798618077638191878470905423158752306719825454932747845002056523276593860622562194198860299668915435130494192784387477601804149102380648659908097049146613871710462389846337835114687450261465275035658743531571559758167320574415787261772113304720225865862692532084129719513774943892205290614844493779089493438606680130220969643760068554549296696582433161604255164093404602222153687565664439208393340538806880234156734332936758617725034835776900922442296497718144524950126486695027869666352455629270055878693393511365825789258842947767920243307970013130708933569108528326979597721877805064527544668185478247199148246363512820243240590078746735680662110729474792056344709654969813455676180539678258459504485512283383417122662883315225833274331869578317838125946092676839885110720750801002528524436423593652212468982000076956247374966122280107752647440277729324474478959610436880955183149287378271892322761353238500536437377343138295027071800893982980648805010113716445826012940606988470455523633795317935477125217372732400351321004413642238131742002490859993415719690113358224677415019093680497049504988630063267902528407977719052625586589305482274009095434709940356828553617040819864404164151041358010774123328239982753101881825084288233451939331145357638067193798661510659970375598213092082772015485888691841207263451916788857360697965179698006522904021312143717347790927645206431195153727297434482539231860961153141940619407139815033521284797457329807833729119781204746412569821318008597772136620443903234870114094794068330835479734039552031550405726071186885312997034747142240337850427248924043201499502988672983391925903547901070036074722294508029378919668516040217141210290333921358914737613569305399669492133238138208749318560844976729888761848533260893734627209643791295645088978824025449670590132989731724177449775110810926984779544229424655980308092315823617453070426821158312982287909184861504230525846592776975567176854347947216193778778900242715133322861413293339265080662783191852255561573674521463671183197241822352403678086151683946699628097982648756652429761132636000589451042926342248740089246967446683184022397504860305110561442436796718618315995389034332855202221531427062334877575178707699880824281150473600478445668368207256540464059312925260978698709264865360951726138441000625520029120772389223190545134487528050597369348681543662190956483881017421900523106064802609014256199954568280054789172562136744219644483073460736422815239312314882730760771911675923999792047248200111537429634733967335369614974022801167629852401349727708374527075113920313495073089222859153224241187616802808188858268670753200104563867724251401826874913502359900520550081314293372888732302730135700891402155010958920308868867009412641257255418785777725599653088820344930847403946004240731009630345176667070440306668498835374858560601671054242177168251510637222469294675558372660314285652112496662249832982523197509130105091884160522888997738239432120078012745937043338857853366170073273569136832961257195407934621947121714573294554364124496376621691665450878825979260963410777086143037567850277092159325909306308066749696350738667899301448191168693703507989770850877094164205014323833585989217199475224931128530810498259219776015078356120529358884966136640341951726678886902764992065714233765607545851977862187473754393621309672886883732667068838445301021383272268331204379230546764067099861079267711114664069719788915672444369907550379760217138230741600119435423009581575244937471603537276500299995208497070817079925220375897019230097974643040510887335055836374209344259810578883828187924906589460819834512636283740392722291760712848123728858507048927228215017155626037654767957342661534387001783684650762739960395266701857480638906174234803993675728756471497366050146227879077738543403833955644147202782187964870936201142249144399976667535227279055949741783630083655225558672971044404587233210899487410347559299114375409784078066212895639717512052194224616093262192242172242434474172251964684176340150944874566975413585780534585854566811298959320222402474329961550193841615243263946679336134943647748249298157944270223266861422939936980570972824692497979715749721516465538619264626146450150829812477918782424018578177551456491292997594175092839766267760685134364457966633512327106570475992394306603932415575073468752523387634592436407126840784461964850632512622660098603134775333775996959651178250480893163710911954232849999460241858161649458834860190410360979659303658472302228938195309597511839817988308354904270240701831316021069694855707818917231612201230735295565779409970053533322845191362008964574682006501864181145171913388575264350242944655525288609619682340529051423253517501851557119309750691427570373742347846404204449163233510969325367567550852366338927667057287500622213996883064413423447602349345172742061917220855530789368776274709718835677203437260494542399244276397222251112168994596859216790853059521213336944413266363505150968450724327040621778447105130369369360575742302879534721107640052541491415223446487624020378708594867189768656271814049996804058202820379710797274296352699166320795351045786870994063313712798557825785474575566906791423169676499588975003889195692031354072034091183124368250409720109391648434661067787384997877563729262715067305132503175656136508217181504595686118205547765917923763686771101582110594449804202382376901138355404052975273649399024540759466522903810259516252041290059769220156096470397059291153267523151745287440978681965729479104322756888154704028814424459011280176356101935429027457627870661378656457550127786193025161079039548140593370818390991371113172065442842545983804787630138162748337246210201593618571487371982282570475267479025799709260803463402088041444270441081664722911266509835497816165803563617555548233551232351138525288046906242061609347454831766398867083722381057403170351717154144495124829665758763521395405110263168435425688696297484333207064756643131972456483178588087896472583330115805937040825863516390495256824656627016305193190460147778243984223434052668896722794089111487220118532540234700394686620441232455568205750581790557605568681946287773418746576092951309494408025755053496692153592270308497813354485742529681974774061040276128871211356391824290416316285593871262082882410242543803794834307360420092066209931427272017198068462351384475429944077277417868737692794829804216951751921624388961063184724200301394362778104199302008469817105022353132613931959113118604655910235852848161895232711561546198843048977089733681870893757243620209069414511018614980890458414439006460034343275567001500697372094271344480525660093944216424342689027391521439095363930365581571667813590554025949064129907596474458594696412800041846913392430377780125560837054224903102670099003648325137079217982911925726358700065869783159679753514405213678548633617152438843795160185167356417526046994158607749287705429520277017415896483437529020981707958609996360101054242808663985130731453426753175679486033951254369264932052037758926750133964528789277151822762494378931630098456652177405748969743484666058696267880582035085931542518593831135027703964945693111833599079568721169324706265330579299797971481360169494891128296706634176644995821699055716129136231092568741919560574152900997236935634825863472049745353183176542273675256758942864432382635258180951011716435987935260783546518585028030295977605957297056734861851295525840369061113264385000365958507853707338846009919261601466791007752183813195702571998882243873398860485419373552286173627830574639585018514029485074809600428344969450682568069786789553149904112123860886084913244239892277964682414702855896533247983972653638908424652471518339682089420397392872440500003525674838813387355759459052216493558874284105035323733011664387751271974766450558218803996475174350960356326977716781080968355594460495360004734173047785819601180143183176185745405802203874699719958391904809253235079598254038493401086744625168156625029150957186418045651191962341675918051825887083076098309032875552588868411937538769231836001575107894132918875806813570939644920271187475993248411691965293410853493753776841587784725364638344897477623486897130960066966073973631652010774004157017332770427054826510634238166539293277921968395383467571820338008597886251798733788898884098115018690459617698535489597063955405324642138647251841365939716598176709899692025426903355021353631771487131511163594026967305684280924503957648497029446367472335208838042359990869789845961278081042100220341458585775578648909330660434854000762595130276262735012408396093135343786658914393373717144973889810358377434745256559778329724510838142396947648858111335405425792338926526884206615501990959279244706162599047363695793898908378969921873838922807025767334644007957037174081092266692794289915367046661378868377205754324939722656794921177814809783262230718987840982372394958821633428551491670056705897727907825157960009805510406808955850042090710791879928200010320085437165764788909927276788207835142954014485330382986070476012861192337491344564653886017581649365981051764232385189314883607237551105485739916239071797931775115654234160723851311776474913751616081570942519770384366602083597983823539149883716993326950268094661680391486186592050267905121347732523236534004850781391132054346717689644580379270838672388234380594592546278267651403733492482665598542363281630375094232442457879094297187460147563596961672372019191339609921966228883561343997488272568277020238937143876774069947200140795905122421288922056008339573392318094535551765866124140826182963523269098053751249498353324126719778661397648948045906824581034227562745040495900172499213225620988387992105575605026792766664248247142376543470347713651931481545400375041308170940657660316354013375197838717610502158963317270434398220016491237916403724458017425374890487568911854223813925658773546837830695628011019054479706682295377030948324956244373184533360247160312033396415790108383394743882873321251867297361888330184816207295216797551900526123691384133329617675591829919189404578319030404475912446568169471976898173418601980275690804502877930662362560814114219588034682515871813157523393758731390741090850645733783489429684501656372507021210254091550913830998870464509307544838645382728844210678654699753906338204683172983855183583523648826585064895711419263926530453523748785139120001311401362149891555898197975031858717950377291894964459399406461963384772436764274179190620685391558514946478410562781850903769965017364409655575979279195448261121679007541706708004857040875976473647444443371485846885503756165744172995836418037794094198414138991877186598601195551559950171179089067932712960899180279972554280881769750326040476954401367107936698935802814044700228628788128969418441121334433608967403310504731576996022828668840095139395491433534987236660177866456329758856947342286822854580517097623020137319970512780175844150097157300923918925260162607340382923258547139989346487613423267579454486829463209428020176387524805483840486205201977350696571877877531187158209112488625489673354820419410730203171344317985151591593404847999308310216253690606630096950335539135357828361806137196806439583926867131206960221939998763992141257671390086684137087122812198391513144030170969926024523143975997437514314616687325905659718809862477040531699565690986763528601823559635235361199712948186800022537771936060773152932222833556472857862491451127760442269211947651793202518448871435844745920027302033992580072780621462292498279988603456690771585553073159407838288081776463635385754142436532226684480582184639435993467591651442281357101609569473064986484487416470070528976415612889385765542259270537140790685763835024693959916004521476626122507832294840880733179036228051551527924697374877402151444155390934419390994900326478668472134952102391065656101229776472938278690613931640594394748940080201644547977006139460572585616363030405332067074792408870553111211846110233986134771250509977034973131185389838107984486848195439319613418644243698970920110089451479727622815354182729705324926363010114908524505051707795505539709678912511763673826320505071524657176545614827915445162932829218991385324144490673182488601511184266067503664539894413991458579649230467655201741852219064046834554826752465616273087909961542201678518128700787883266458202268572866776013315437195612860028451029143219334894748181313702025318999151591795364232920077009999500029592083973053524720928435559197374248809699514039568733817801384569386080598339276933862543136685358283567186375177868030025054513681989702329037843980861480396909619073760554633985202987818011102247272327527237270429261471325908698726661999702278253158672516689806815578449220947796980939140700775555548744495846111074876491828922093063389804424132373272651799438596509575524290594217155184276673712952204919861457192248645003671906390713499730437833481264882342097244006390075234554239170911452667194450274582534174249540562420065994949345162327930055883598373370536251335367883383056874092916934281186486366991169846013481722577741075360636022398381672202735367176220263267490435278680070940042584492502450632653615117818748631797608836101345302996845483423720249713926346521723275085223474248030629288506999646788106058785165808026201913665062923794686749807003236452645108875370144622046182474432001406741139383822459456269063767212851627860286001465308467118696151945621403745726502788570142703009664372366789039889092031029875211500781266114127157122651171103466087488649285742908199990849055304429659598782604951116841753852539780333144202778288272831120133494280760281437382842349386546617773225501139626390417852299995248930150655498502607582548275849017776876864248802750144591506374309732347595681451224746540103857380757664118612768608017480978309122759906154230239593019059223473690944022568351263469553494856091299215488907322737656638627081124352981753340851286782797070356912348042716148539517457675632629532857362929440756045966276953303176365908642820097727210999229334271878406590097677999409221378776003514788356048074254752499940943674253285082770398223122198382455813521037870676022509289608308105707700862548481268421078191719523529702318313457118384570526455391483813665119474225206777624026284852646447652889919247379637326576934641877702132506591221227595620560106916172689194161605976602948105532104798886825150181399054935887431559533727984814520360676224611934671754502105032346452365416232242983172472268709117013996754538218863087993946905374596068635035660819908816099604241345681356112581792264845916677925497525327124067856502060089556641115955202886193142129829715679788731101602345583254473575830152716085572240290460040381527437100602385343376572660524255241574384776859586008064689032886492209411648394280191386132149630696260077475153972536352632482602090887864266759235317641371338498605129096397461793059271059710904387062624304813340021487292734084616268600080281617816215918915310382856625729067598998062394318650443286570561925254708023096212204656220428676109825199026760553424393660843596267964941241788222124657075009837498525347491845031795858182164560834938079365315831324085153625490856302516660513669802887201392626896958367642465457091646135745780618160560334924556353546262861063649132246907078304581872345291972642470405624017102291239615304738745665229823748681384810261747869138482169497351579787231902304989833074789721734546484114914503658433696176437293229130105872715523768984842937907345675357018203317793784710681554697492095883490468675710502053474986053941852871353197708843445802183772071640203564504022296888157666226602564716211385173217316287096965770887466613651568298677290951321338620953304975057495096026355498023406690629175782386109617769230877834868046506373700140497789447896894078814395648788143756428203591513650666283411790574494220688318286748755791541199226835052244909299475776526367325362177531147521863627230822400725228125827468897379086026762693929214160471576350600822065509609993171594050387105803212314907301024797446192486594753586930976339678950751987994379766311172795230211140312651275849508496368015904364541027464977447558922347211785552186765558879993478676130609739151043531574652711738870951615916648207446181249144581402374981419147343455068577435137952116207244072862724815220006342570142116647336450050006601575487792128079265153921663641490891305005524345956998622006577788969509057334504600799298735988453641104501616819428652649111249195403888640706392149098802731493298072433417136869345633848941275490520731515540831261874161604896240036305717219853031487749653153426513164170414401869412790688668941869525677496634131494692428739497549230860761569342045789490284976524971618862164961154286172270248247610336733845148314331371918884932021352177666603649821104285771174120237716570857389409736526443338214542109590828900223641438428696418267166303802537381063685029925313617627549277544505086873744515593810486453827548368670328066406463992052373635646095138491261317765309263474693275967784280222420215405879427391217988241978055580769269087926678924232589617028388156941505028865163943517838805598687295823727747914462556670906337367272189223317952288826880262914973000303951722088497192194378376980359289325511144381946947733832249659492003378878160499299334293473275935991272558910557334289829806107920879790273261090118621081617485780805841027945345562448824608432978909055160652049262946606792621755032451067560315447643587091996295081399998622293869566036033970899844950504650920603782953444440979679439289423125463504860378745824842216866908416021337481933702339367350995209167144361292422874325136438733651957610790482081719227968257753718590758143571679357334723173585658479457155001242892443920003176661779024534028233318864062565703497497913859311092407745863189460057240151965256755265483769761363547789052649831216836375676462222372103565605598668377936262591492435293221602877557593168355015882940763532020558681984828564871202678450848577059505126296367439387900600675279812790038143163661186996853058586008174193679523702696394555708225781526019630236341497315504422401670746531107873993460658204616527690639234022637460401353576222781901831291467981661198638545480028942059747392525442250052788436571391319049744867888048355690195332659128006278617194798077018240487683642503009761593396876291019199115764338716328752925536691389936317446594885798971663475401388133775523028748172513962390403181895079031409643815114101386320496502196488525800937273039704575140644900017403692752927502117967964835061980590808444974949935299320337950817123918013435924236829868943011487944499026118823435168751757191246303289697628926139290739361255489036776280833405654257020142505281093318463697964818577059362627117926240769582404630462023598856759302492927657405230513750434535521446775324657959126130583188112164241905925960047303789024659224473376320467518108373489603777632668706898104766150601929430343678529109737924028085977717291304538454683171079221452915547076693841968092907183943076459711555171687720862674748974501675324053331912923053937462297216023033100812795458362207067131005633191233023110286504235801746979690499267899687229166699003569479363224434015910089180262420677872183849278032840711804175871200376355035791580472595084386863914390205761312788243876973499149819406125949617910553542489942135128005657126301452258406535632903539967874180601575274880931895777015525168074096016631589873726696946979784076403601200116336125083329494120356055514390948837396100709948703733674412593766450129493495023648468415145862380650147757172161137515742298506666234611920220348329310712821034922797223674286874293204662273732257234274304659033118989016882716508673350277946088713545726083419348096971070708642444393552792111881763313487260481419723142867863183552741667181458427485788583997521332972624137984032074722768536456179791646146330983720789749282710168019030184076088546581046974415706594938239628064378843500830633292765884138707755277058536574288348163985621140393369219669849025402394890064553131862646398433099422753362258087190896117123463637663685558294559407990807277960156405486602036454280270018002528632637872780190035299029139310678789550108262112564183469817181150040759401866451439591952028228341664010099799127954301890790317179945501098173267067260379283333764322787057070399867895424605129187942667961903314174153611576068363554316031652911561060486346422020091320071063691953584204532734946055038254551530281786887355899039435086307398504412868750434946047457091209388215646710317515237356820585845695128174844104414891559301143971861623463241200637107685648329230195527979018606047514370484735286598670417867419484328974671931582124589656268850228620393472339454650767516803135202713562649602281998962030536734375497125420868180155284710841844483575232884508741424477757158828342019513498232754107829806429329925922455957309968166340629013163202070435007786394231453056493687441666877420699331405720745295366885983953973132979220802705629643890998422528787923335354078457916100907081848264234066059019869223853842530457741676320689419778442063567549913828889907449123656873979529081537035793834416307924520688817262436927122003002483805533738701610144440301161680240173752215218509778302263382967001349524737026689787744937064824796387424498575932739193743726950761348001170964115098748875719034888879769772663571618617304748632320528212441297323323558781411208917220385497197753021957603112537434425599697922020108378087549262127644908793677756198325627044180745029624873013730320369034142102874627392463532547877134348888119130442853618292445886862261342753348163830892859792089019250977273815729079922573058725772045046856553435598181495883700864764795649212015132207276367083894776030297823362685214213088427735704989368204287229785062939296231261286966981609771714760171938984253933074246694596376435664566696975888467318210992982884386995455329946077670451333678830452917794623925489511109502823633160146518905594181711310922882721536469380806271188064808268773941289009500303313672690062859771069067844224853667982525325864718728023998575596211053184498389814892572832665167868379711442063092862735176288251746908810602032622600304857343448027738434841148980427598150493039513676077762535463441006051507379080716141333432284434709277303260862496880423786868822321978632961906300258930618053019285723873280790833476329795486678651739522705686683429940192272770506796835248888970121530734220986974084056511100481882314895029099447329220355283718348858027596695880850618974948672079873065629804672879607440396425807818396093744567969402812457468542552012253512403954934425225899590868602227479514206448969829773592386266140771104082397987648633835944184813007529054954939687150121957603318466375777083468071561309835374510707208679421565859375679212150783039648753977743074630472880922910519340711354672457628134173407382680830437272771399869581589573896661897716343403845585610502790911241231740682493768375747096934440100684419876588271557746099332318302139454295011141731244712106442318487659986817867349776069883110795284101894797492230713061881022102099859661932205533849324474280195563349983248983560983164838392427317110603626303744305071804408031351970816016987556689867217983863033146480711735227873967755912221475287328042370765309617313960222896003677427543486522665987782096998837928299491042598434052674292560914713324501502692780710601961788423831159702584693977747740598402366836886650696190778142541545097960468021918717842216486191964512244709366910179321993775051560896103256009452489157378918019571477833368831199145520617264307189172403260513057378341640562165857753970446079737327600199592320124421277410442575872297287536716043765986713746843916469026913948745325849606143677215989813144272085469913578636926704545202352747182807583754816045145407086797156554332913796596235267844545821102713534671745100080346830448818471558040185929812749369982364480907339554000266202199062060939512823122489970540835894474738867544180834654026086379306960132031547177530426067253961603366397692046009312286747281504988382955190124913943305247113121255391326228731106202667493892195503049855562501953962017721387178548708409950428900231998775763321375656951471197313347191523746580955658436447667712935665962403906343059929245294189598003949869320286934815512730836758184465258564959801995337236655718344638651269042608692109430875045182258519292933248727479548145576135749525874339384889535039724240545215844778615684803401928358648099280022635165014891130798981114876636168054266964056911919910682242956953939707644889587450354299972811053696377090548946491421370187204874311464241808820967274535945510330345422308692768102630975664348750901393101564125648557449943720086835409994786099776754387726379620284425676207710048437772936184262776596183000992038253687779948228493122252878189303589618396929899205978472424531848702360073233845320905623606443014931010586729571479291026792841092186715204331466726793046917159560654539453300037453472272979640318986572174885195926122505338302173502018614336284284440076901490473527276613968827288758453093002744679156549718587906171889678751312497090648782896448842437791738946099451003809062628320217331090208592201848104449410957448123418525998680060862689213085747135788259781903402468875100519549508313324549740790070831131103878151282048827040205492184024926527439803403318195908487783209731081688981055971996468485174838424693534843100805841026096716457216456929460208245070918291734108786166624223392710485229256048363505795053335644309337066187305253802609353736217181962581643958700941500952612250825233184757815031000915553735145669741827684489591499807045204974529972515106111710370410646095182911154708849487496991666727121223185798344568442283127119639877798782174002968203544622342092963972473671449078438723306493424358361744630955876142931835583447306746685925017622323716619166544883706724402841633670422464433326755961433648437666141061506547639928647256095296474009003579448190452941762635157321424199333341759301163103605087369695769141335594226822599591699807504440745036342743760563111053432621431034178454037579060547628748030815041280373928591408099777722527707136401456090344126130313756507702162008707718427114993762821409482609835321405686110991107778733540613929348228792923129535174523627450204697655233330866652126690784132627025622364549690711091724629714531115628196262272461242738857236918301132129526832775511438743712246142954850434092227877591554557773965504232831568951921082881536949395647745960070328051186451567038183571018144165129914182374746115616105418444628217418328204281335601304556771717867608435633270906156141774725098896519998437021176212830212813489662506884350299619979318618024474346821686256849411791019887921077526764481576921096234977881651062926580868754266330128789985898794985860993801400752775508857323530367989934919117466033538562030811956661189119180624979047746486809991302902196549118223311949904307392984378911234508570336975727356376440748009094645883943823166396623773430816637927488319138551212866835523065929851061163861484968737792602369966626770033227655471108438578187261374040598710251835945643205959310878823731172849803874181252256150704824700023876600911494973525751894865770489245105636473513916383883445782644701475548331212939552980499108290248366054588515645713643363644695992040303390617584379587205975320810099210091671380756419037960159513868854015792686554791944217239931676618529402742359515017702667859344192346804966828469034104656995016466560614381214413455576391701244026204087910848333268154236942659745714201688291801917079981926812761055451189319360648047600829448935520781240759435917379107552854492586990091819057956787406751246581398850985120947385362694455824212724812679758513746429473682133221908960387253103186935228806815682942135433404437293627587342028795190033949719188097353771609480816996552302787517895221168000965353947372649187928103713889480993039252431143441671663402435742304989868730766049695618199642241430409366058259295752717981867873060061969722992228122850705679743076435396989451228062750691622529109219458236178284165132613326175608821236731818530584773783312870691910666692599150802744424027476539325562512685457761367743402474472670935899003230036540599907060805454360756645312553283257104228798962406187046902549326836928244174810563025893168297409626879686165157594563106278008874525771032023903904291485758899082477717157074865759974789193508045351021949983594167397736477638276398401120383543719761249470136056263970774024864015032272423394389671739166875020963527606656082497120862650011730612786180585051339870704954610576690045994553426622183522329318638670432254997664468184365884733225240253586833235107495816424584727819522447642093252674992195850560143441685078490291904708941125152161323567293026248342143738277819795927651698896736665748148663246557218764421361694066144464346342152934885385445057654573053295675934469794580469988519758919786703696518161951456341919879670010297182002094989378053679066287117046221006359217340366437679365811007352242311094514596321568981906244567537941417915670883566072159896287969291977098263417175587499894754766449034311874184120001789017934581881543012593744932968242623350219857328509983864100765507803836934914109995774288031560475864177667755666657725186836662873610315267812010031954371552483948247478114820311774602209926134865040310254045319471466394169130044694316467061298368121206346537725338674023421029651449694010123121702451962196389540007674354086209056305011474896772882790449418514360690204186956570458253890588130066437912244704034012266630194238885471556133344124110829452607345541215546760081162921528374031406883645092526270875502478896559663593232167005334201802550652392587830513344139355057636314819662648345431941440865678013264713564282061641322648089490632378083719465596480851757954776272441806533535081181810862921703050143427371545329947489997588085781363797370791600104388096997132761644946343071026199602990734869761802943424693650940373944858293943831415144464941024423378658387861689276943143933622897615507046325108131765769094088528257434546626061799420798968674107897744440383895953464733770691027896914885824401953323221601570129281480149793820928409684838995281322736998812257504696415496340508594167700684991078047430417789445492196366318102535877545297887558453195391984396364442409388834735018235244534648653962680654311700475203436944169653903616235235588570759080771447491867392099372112711439982111512914709961189248158902807142445227108629551823390888598602955056137254485469296865272916858034828250770556102213952451879846945089797821348383984458350136154033536964330920625863834241241287417950219624869837296570964226591088432356254769412280128187500716390954234985243160850751800823756907344968805503322791906478776840084282766660170956099440341210467478775902346154868202632277231926527154933395283794380755992527546025683146609680579963501066239686924675143706340038639648813826027622381448803926020196343783293097911788726488397782164424821346139523308096034880932389628734269240218036353530903936293973295913165142193364883301812681690910705808839611451570032677525513208194660370012441212405600066722030509965876938190312688437838730427446809842095227113355287559384089489532577826902491409078812259253323520420482673857412280064063904473014969968431100993197634725680053860544222818540305387200615821525170811303387550881839140780001603581225292789659405181974103323127691643392968869387193644057207129594859852303259706080115621348597576136772146455989393914253764785241147424121180200549101763283476266275877798999351138323836462291851811909018548186307928648206664103274903609156792106073407214044758676491907098119614269494756185354204121893938003620356295922825079688056008110776127672735120331706151363694955319132759921260482665298648336400439536392564519446791070505938119389349998160168251198126106888493752737445767797163381645618207238863430284201975203518933341400541133888334332305196530250503005991355623857966283888777835886462553663975917445163861483137635617574814114680828128245892308461014196437971843323286511150756963857482307871109696866587097437094767806164884109303712818485898218051377423945388927306555574807056295453476538988657439317716153519867558911357317580210323469240855731188597423097074343082648118011509888883276418862381260503188953271240402997414957062980621355064477020019657111675372867157532467039594938076444785735279243022365601552367486826057418326223530914441148345035721524092740073445380009897139241828493720928805686720209505862127759606685295332149111354771016917026439254051235487665754792002876569565770002095492542768670473617568740034262453342499548895722261384281129731799709489355059755022453348940103289067013778028209315620050666231596109347786633124874773437584043599696308030394030106468955443613190984579063462046505540320459455055818090935363292957190787926090955520052456029555793962942371983618906982189134188026288913545062787032004853998098703478308308093208146917295826890964628552026436798869472636901044592109406964913549486847101848881701384875647432699268222975699216306843244043300700940125292045340595810743495046534687433929471525023827057839993363725356427163642459913352719648044193559609183181627022401481730682756048479403920667232082241405646323539353117056309646740985519570977021542606679971443282666628279444725717671532991668329417900759137272833847166048949763498431340042594249215839710898338295792715994767212530468029894470459434244865576724541886224636337266147951207838937524821287461292818755105328169264168494771793530763676988841647709431086316351307000326484231700230850874837976314574604329606034287889030567270470635641657579791958804389094548040342613427763195792307750076768296415316237214218137855883997514579947092492748150729578764506830765585492997880693256382010513000603691503777250907280086552058230536568965226585002768766957194817912693243511137807740513870578857662057406430923398074551218922535289216562073114065126632761627906717719571960556184297813481313556987283395060441428194959603887245322040686332969615689463510565811112847787484596944103266760392369993408043375048191966150146533527718787913369102289851205756173410366644399448455349404062899400794708008306863416424283386874454115300151550478775510787583340902996341078534891708326920539323081414677117318156112378700014625963034189252941812330277829545827729979567360966885722513553031605518832077940832724971892154526999758129461438511067988138235018593532876476693679800566488673028430728875394811362833286279886805450273701536457907944511770346521835910830537831877543548130973616646319030159295739683566682156168119046261291414704604126539683110845134627157893605741483153207021097836612701547373308493984035156995977230155442933832080744657549973014632630659205242897537707081761834263225575623559072996590804743001182112819223365078205916952365887834529005592173806978784674297477028308941935898163262159796410212754916191116928809250685395589027043921389163343700240075093017495028712294823550181614897761373147609404461523863315428073485827184451256731864420713181166516138144670080504602800098907441658498914839147534180881069917120296307530094895276181309558194227938257797934060264306970356839823262024969176993642121646721051169911116415407889167597211165910427206324403402582018364173723426347941602714177676058837560394404906642467165677383116796747527831640308228908649971228811656355170735748105924402638801368494007077479318866387924349123142878183290793058674414081364972102860561330367960373988472799581247043200950553812213866105457418840572515821258208511915606587491152564560102349779346213777317946360310381323471780813483777078516817802937933167125069731701359073057642402228680514380900524669021499992679577283124809935700371888031213297106904554189420840617725542184083825297014299436404781604184375601272172112971759574276802484834903268809279209171440324297637682827219707715827071780685045602940384814287234136749495620480646218964456919641886650427124997259396650505214773263276293975092594369054240635243719389327812080759498954126208826380994550476106814495322152724509353235617518265655592288461006901430350272758090435529378368220174854373448954497736736785508072856737077214272279401716144266552936781737154384465719782847030636812496305185926831828936240782435380766324510178412084994938316706363505091309156736038417445601827058260324711208428521820737671446110536159456641389159989425143612323317360356078119864210504376587345759919778594632929947601233790899002537226647103879390657099265607271248726585753399786023908549143237299606842765868095486539925801961623448038325179219929551400699029083687599386934085523508242768468647766055301651787498455332573958829948477586061363528668849916000243034305291172450827414710409551021353008651764479840704786415842508053475347332591751339807942965860997966861361772736830006538759767954715322637125896125610628010543987281857307837233772070521619294882599189850190953503392035911723411135185702975890472022624789611875044581723665590059432237890218864830428939587379105357738694233660211582831707699560969244271083025234488505722446478960456216315987217565776312393085147776603242798795503700700496919359558509475794676392891839819280539703102206741387752105984565606016410427748094585552226959915797501997030094496410773005997380424978719085937396421449323207380119732301474663630556436339760135121835922966843821162376212103682358405688326904449844722944362713583855556702254001584834308409008449233881229654737282081537664550885187524040538628454298492501100841455329347211080701161317499116440109950059060339015426361859180756341305017824475016097942911040336219990359797055849833097469763910200101244640595949866743081515000300174084834007256808759144991110749100043516531457301146757442230145551478029163261395585623056754723237565766698181621048067406053917267427900116256039336445616180793517766811767381564783588823148307490770297256786529535365372357263497270257847849668772872793269100300063647456179167116877500859428725543976976111149512532746887839253828911471027251425913213573586924622265538574794095730183722411036138598166714966649086283783700732002117142884420497378023872343893321088217520067725230586402862216724408165877814111131429698072003130468736015681927187148934638960898068297959659142227239809161492673207978175798385213680505124928502110089431991773338820500630283712089433765418561392527706135030833361415368834083767613921747093579399469071575729162621401766619406527379211930843260227260836047015779326866447441391229052113514182920430378687824448662147650325949137163881212570456956196005354322636816177882487361854439386059655448023753445362173451588003193252088546397181207054547932447647269829292443194228223884587049685658129733197908131324410812559683694328625251909266229136465003623441955502031039929904487649025412409080806518468257892159600201637609213592096468046452997368686972227498935534437370257739670336023016021457677825375949009964965226009618681726876286079581883124817520150556905956224835008042342618108485153380476633760340893967925988846890616882444666124054059344182753726015314340815011532137463857053265778364594559608974055772461033981137957646009011737442424761740763132455874252823538195499373252860907619828381423971224546268356702470517478783698952631473739864330310180090152709987468475559098129145537702657851379476635312134864315134153518367581918907411100483725732961933649952401335643976767724718363715075838609074611535017410880492383266079948601112039045810646084178320213540511405226854514582756910407351548724059336457375397511475010730853910210755123242828775939230094708735878609117615771091331317821011979662327238346311854079335352513012875064998492170207152046666234947157552335182630225424557783916141157268214798534523557459038017094133765378395647336212381571117744629687862629617164692072567294807533940090129948051343552954774927329568251463051105878799433596574825592293065660260738839147638177676171656334211588348547444329522958107744666146714817639628934421293153543330614391191554820283872160226006268126154096753981762878433690288015635430052773635544597792688819792185842320200448051246092022313209650498256546985380140187287365347110002164305561239728152570652199342467902896973453152833507051512572821335543217350975483551435580327951484079481189788496102880872124474631164312934355722820470569677533671483946648987188477623705267608668906059845439802635564743870380977563801332996790658091761281285649985477149292088593445656860892451748352485227537746888799620185538502733425800643824325500728688552504830805309590898247596730304323529154940847200083357900263970221820874773072330704906358672269755351568244427795354248947333550398730289349565069567204009067362507172605560296182061780811129185112177436385254524150628995946516027799876308027240674458336116403022400031360187832237810537136413421056578607198685260298465018717491595846878175627381866029045124167116002784569649454297103708183929327731754668720657144087022476005164615955422765480423838251945391170569086735208683673132149366050946500086132266035378063171987365880222527675626452003643262376592505846502880604505365773636756576202550556741343652903290637952065787238793462776490452430770548530449555500338413820744859637625422140081706634175858594867546189292850750049392211885169225846952931928619920957023529860835201658736354169323241288478845624829666237806311132749762819489079889721793640470791414349518937409365814568439596442384721768282632689132999361736456412602073586209142240185425129272480190585896363273255511099508561389385911427488478831151101381356034461010468675574106063196126704115967798663120690875020963942090751672780903719458525268115912121181053921077882103618569452581977463657753468587889168269499494767592437366531618150912412814429299052407463053908456781529948713156611102780582435775732978334980377805718352447047566647806458980779301755537243760961354200633184613729827008494742777227784879169190107106245717855753543411342903140201578391997315881412808980644529843074911936660648059417309668245859572182994791187208668831306303135811847361736577315137422328278363406258313101803767244434889315793310048990639498167653143124152518994789623296649910343036964331164517451207663550150297744990740680730264065236928068901346653775495930986265512400423756301725654499336242976225749087381533842034033774916815006267476422325908636993322994203393139717547399969362972204908614726797820403430015664405716993427783518265947685209406064102472764097784803527753357505578631018551297254356198509269000579192675505506682981635559700912599174861887187142532651200428713620815218687956870839821910486183322215270101152675032123899100095420117794644687841079005244666095744005076979231103429963496932843840028237051782977687886272589910085490378962728117226434186755132201670025587316688284273847554866310740274224070997173333830157948814891818870037485023664208712294161101660660075498984983036578060237584310899710627193651173470599814150334520708897013928501145404075834660741943679589908931510154224046198213273695073665461598363852031053041769165131991022986442572488452408855676997209511616328263066705781930456748261155933391168699444832402408112586069034600345725598567622667838236402389509299858117250172311245107955215217201030009546525459538465780630385493635650032006102369345864937341058466494213101091513108139358674959312214298285450709712315479905890641500214759011960129259952480809310754549661454564620273885216247628945768340982283808268560877359008407257709243451951666286446080347871787127778595737650089022880201714322649774656502821241451537129144760307234713917933463854626281111005431960206192681519042259766479432877332734895220724512280685331158498718906674399632985659511492611289241816174829140499359465491594221514083339455662332477830190113257183231297983505066971656332798122022428117668224834610720276437489779942477593986158231940013157047800923693988866862504729830285945885427001471878561043215465827006461716547180881153547619388024367234240680675396830492839898337158182647928734126134764379404856422837510619085280372778031644552313020582759325884248110180684783879565516189944121487584714763236205812174418200703524870963619759007657178666355451660599862393299675729443469489423268881749177694549592567028188788992408029353805993111580667238811962535675163388949815959282804069370503972325639032155378422478489482887552864410258209491486188012767283293659302921639806506537425400691373402797051546647298872574557367651493158579663056007951164650356654870609800394861368381966132780432826056687806517888193565517479727194159887132719092309863112868979800054082563571301553497673188696101095843586140047325929271996581859247379743884195562979282057515639197580344539908748429661333317687727865371508658103343322127878482613360239970502266119613888534617103332633653443678285705990021850683509335103098960307218384113682472670586779856757330513186690653252977400643402972918202866618955152015920562419935118502912541566232055197606615015805107721870991342388902553746796306853671987895695068997957859580110759853367450584201597728233917518188924483516792282525696570998082792160256435833116280833122083747258745593038983969733444535393180989302900508855329625321107816922106944344995645911671600812615062980774020552113772117209433766466770338408576288964160948621597481738744079758235648278511219645529050794632582886823223514228227755508285369308231761631922879070660398467715056787821970392814612982305351110453515905301241884980663612636850647444398170408530807193753030816560363247448357610541135429080149393760581258872158956270566428266229231895461331889722891163304248193835579537905801316318690815034736835083729892223996752368729015214589916090090462886368827394359051156016988462380710962969501380940504002342714232290357986324202499731130185206085185356799795165852767691902624195567450816849012979500130163732801607120847453306851443137867480306626918005104950924355959241268983780721203259630592266143444454846788044962975453888636057083927241445993738830360735063527858192993636190201101612241796718003770812440003524243206971540672299230055990250255142260694554205479871526207200798321536705658164383100267825990563700897064384603867546597977628351517552941234250175846201866026896542257927539190675704099795060051227171008160944039907717686563840720142258816125561918863135549987632071145407887848994520502173916592545907350801755599720670229950260581576905159476369862831329448266702109142015440447412766245141552964658163300302726208352055135609235608240699406675026067493077586796204919808957958384105765854890780123091423238814525700944614642596602216849443540427570075127595468742828543100927899201999695670080720495945277100525769092816225561494153975043845898005220098998089687158193674574383039930599465781573487287674870459560755479129267731409277343057662384887480142892493964607810770866018822576659040742335696225069483858293592888121156285496594795694025159887298119174177834666256781113697980247648814973320563794818135914696546088411073851529772085806253752670132002812683429709341755659607517773619751980399096525410759092071340826582389647407894638151843129305643081847058594239885753439253485145100444490726270650362900994276908956605542064946404597026202408774463240551643039013713669296394233469703141125718189090903853766085182057607908836167208252632483445094370089741330291255436624176596477567555879398129036447569761839789140226990048162372947222986981945537304109790769687559278319908685788459997709557122612316324452883815172870828832728757580193710589952491825956975122608600897526133537727072700660584334792532419830831585528398960055022336308017724730137196553228706251193836824938167287290426860256910072809160145032248986636093770473121322786890914545529620785055859568220675828004010367447235654753048575280123601697655160890613492330323409764476443821386470115964651420506726740510529801574470223560809254687696125086354169987366732190428104705570641214377584581979618972699912704409823589020873503708550428343848813343304964628699030280128612209095591742164650215688247230751488489248936996947181925775125007109866048357967650696680854756163709280671440389337589897664900356004473478799300378450250768526052966835467562675320512806340569487445680835301373705870493881463873936891857718865877871098040159115587502847292692053040021008160755612989264154245078066320082577470129089941715696718758139593964761261136660934215894886775905324408221994790599066636718403136827276117224134551498215447317115537910809801781880395284277749009545225597944976615940418997427556520254535727198015839012391795474883792592305918183138185144468708082209835808034664802935021736525398019330560605523034951517208861987516186950544219094533094090696507723308754355442454409388356128431393120147470562519900997447873806648358408349041432839802897231317750453341312114717240186681776483743782898583357920247903897665577402858370688897780153993367921434275680821997193794047400078856036374493101791081504401983583062696636915641180671513812653761628391879132478923510276620975845299545776925183784960144947076188344162474896099401104750038084485138630937671426996221051062165632660663078737631901338436192545317264789904305086636925705949836041444767101724207935370297638446576242578944186566467004236843810193224833073662566095270634808456434014055888594229575296634288507771649238021569011875148457751458430015126718723133290401517912331643752912031232041071282352123598962948399011645995012737574726077935723550174671371669859444418351809523441125700265674054858609916663136860709543423255293709191046494659996501878196882830257507665414326645793200398778211265701937364292001214429876613789916035556752454244882015683417538785835319770292384065910432904879441932883874504244833593811371214577651262912934460424180167977441828008668848392277288545992325374942372242308694769511308122353316524692798102034255932437548505808800387501247149557644817669495040248338607739644736539171306326566061393505886822535837236162829544669527598398937859423572147327007487151141156124157807051446753011801434749064954362672674443605197701571679820996005496355367823868436026248258304217042321069840272603967252205336553410608960326577715305290853020282583120216840421692517491278874353140236281945512931592962071755440432666923940770195056871291032865427584731314610543884425107441088158144966739493076250080025646935566831527313056869955246868271157901088980064944472429786170270395532024535747708402549079825516446259618203339337137419967085586502993930407696218295780121080142641470567974301086464897758601777168681529461995709040519411134412059682982577445211222471321403501893561201909320080240692493115792419127147956257561694135768284397509415385646476654999431608860725218041367472579188783380010975641931228311611665339563699134032046868451471647716342353612822146017957425688606029806807012722435915510556933074052468877966147720394150552429513272407927628515678538594138647901160133218988603240891203115496595684900536465659632004105705139068740659123306960219398380993886941405488027890036743607046045518273353433759299879801550033297948229924009507713828030372046609019240532964312664779650671307334045226077513033226884500474564467643823883321724103478760058985074424428108076237425467610093543068847878001389146083395959370778958582216056961897579784109462206662794396136435435985918766253088262605080964424245683139524610107639276567845367657444544025183787380947336015191076464414373598612478109172062813131691652538509778376255116330382995298069833693658854801318954956119091290720795044151725585926054217396110076919590001046976441868835696672670823878836483478540271221566678323472651903108922516879821492534889939525381335606128658518812291022473705114106888792461630200220584779123631185511614322015598082875395785473659652557936541803372677010599796265494182822475529092889639912827378249516785280601595962143743348647285659090053423329194496717869502421635803560891820861008843331238304087066539298384926228526494786839807491475917165396091388356295064443560609600156960810690983466377213834454031807889306868185315086522471360041005844365851979202478574176903334326426764110971885202193449240616724264279522558392365571365449289981027115785460545759805283706258297383622236003795040143116729191193212811412120720063000031061669190072321124419999023087523703727201963882983788176028423241297409795367304563277920002161778018314731303707969468597019857207562502551848492561118530090949875629534371929725615054809314014338703689589076997910450390861081061085506585869821562677257616179368519989225086766406547978829671779243805128772859931617057177818663196420005798040620223301921664655176687890731904307581417510792956981256297836819605632976802414872826619816139769177954282464950317330033913706381141177859686281247110472342971123994020536575648447939774635881688845525120828553813490568340902488627657736149689284710719994732894776683018374934526921663925466251845530784298163779184835323368058919323467753837733624600053089582264857672531191724758031604500018369720808267248494291610530113532589229764714129450543457436172341528849739267521735818040933576786520488815040964454509903808888101213950032561071857401693271158187480170087813334299703093651241861682574391551687198799717618374860501978784705451349667585010876490165403000103434865780990625245953502661880163959954174037430348394618975093780075013080769686876094279414608463080448883313327838100605577651828330625906578253860165273840908287340911647524665308600690623541895341847753737919707704286952949582210148353164203927938450787388203951891226791560656319038282424722222655690844095014852444997458471466303131905652726197390755695143259321347832700154359828689250573880106020108423806727869688628107986674150316745597550288218491808011957442187387021541233644117273095517947532647979383260047111318508712640558265498089144593044169125633801363414479191363491316539954867499753367952020215549507857330389284916289921493818168352047404477470757007139321091320594319638593849534511098867303670239604059277393233127486571766354293985708718011104434366480865242030872333255196279906153303005599727386518069175774376288874362006258866345574047095461997014874552780773740228719623793271124507915645810793816009480365121402311710902675770549400345170651805552236790579626717279645782662894092793097075100163858822100640569767216019675313546844584741646059318481018245034976892451900945859132852674000759807066588793096641867868840644241861346123090410532231848893873248924865647970731521064549748259085444219717079653703961034262486187416476227171941306316835768870489453017727186344113574099903166749090355098275976011638203801572100851403614578898212324451260709000021887499490789312752031561617976178257391084935682638369046946244089540204734293052993711532825151844571621312337820047988816103703614609405883616652867410433610141602832866932540975156709717777164706538118602234496899375680308678106423773212054700352439972312818430018040589454622412291360330570021813907139532962595775511989735997037233486844911228493384496692885977979248007885920749280096273449988890681129392444676050830396716457357311560444316942829643198441388184601819713834880255358546860414240797441175482904481735556440913667106992407143716912567464321756654887024204181013806192554873916077660381165966834180628577598025289321725890950360960973176931187166329676995156970671168632371851463096374325008690919758172823925729632286244728607349260551834820701730007737006347474073386527746424365552100383495560350475015219846536195497028634884272526158855006533281741957128667180575019973723991612103308749261373108608078397610965262389028409758146150793032221082495698337479430899231035218546807863886010644690940587013605013440769488511300896793376174701481271376134298595483694213741113829465266790050558653859474611643934896858460255130394907515216499806190858255054815361056066541371648083005918111730874493530331788270861616980206362244301141883279053543640275091576439262704367876773086592635727906898202237308353961259190495709993890990443112326479233304921568770514482277346658064692767397238446722954382770033561335665197227430028196557341390895158777299094437416788949101009923579238158265175597637309918333278007459581612331613147349499409992373936018727325723496139608650377360578307116594192034337594194482928630689877462618298882843252770643044705115958653285461415591714410327241945816208725005816055705715262081783786847942745565817946149864974359192213047039084327204522776505438283703647699994513130201571672933173893492956084486337568192720391850536056794625807748953787962906685092757458238936615801597080302065446166496585406305001898694965061523256434500499923801125490033851404354784431925911283854656064995727931189833425054023919993321427454022390163599375039703909229372208595839069742501821816500763295883477458061680954544140460834795219128069799696639772983250804789801405036940557707304819634479580286726940321540259666270477071538806851362008504222598721517451104152874621043433577841985400044758341131580796497980177808775983570351981047209554887296570639949523847320008687128615101942389902880351755141587606581917432474473004625292119085014322974751816346456084288683424866331809519243081176822451410706284706542344468315249227798382654324773104987969697361354789074374821018099830954194777957919427580540750605886100846335183852639621465844233806495296655183825373552254180623317279705725016381468866936908476725440238299748670298015155997613660230968932771735871687466423761504176374970643009628259641404499993307197961347955932206813711967882726513058660805179077692761229026954318669363656789955162483654937596672786172274072060930311993505888229949128678220039891927694379036818961927847254810781270632307645942772672312063070022316653509637060946412031143359902629036940436795966079681403295904849055920189675408547777537441401105197736795980014652557825108739757415948516591010139699133126143804271173680525006118964550581408563842418624688943701711235766193811915632528261657819223813195174674044491974333682048804289406843233676201191105655484868354394257348693762393891364964922093992528507585353358319540327376863913197654464211339215191190022000241463600221444645252546201289161087523413414857727168518993274916129667309213324504122143213605845562224099185903228267682275894161773885774265074488565533958888707546841861833361126244023881922459956908411382714665507431350510997544928413466894911186890572527155497780048740029214930392197723964174076617664545559069006558477959470204636706236830295405346096819857468381566401898533350012870574015963406477033130789153364968924729004066029857396697080923579396006964239809309890146365539318088601302715168196629602463346549547462727450658605223657547796993296659730760614938773520233858934299934709040262394428227410965254948564421390107553067373679916125327613404524783173318625173767091823615014187546383901956923093402364469468356800750257804799788176710428790181375526273211985027501886829277434092957690740928661955957398857150482430534243254831280756524108745504470351061565931135613416849409155395906761432423352023725962537846392824900035705360819335844927936252988255427459295954223194297332229033920970002736980861410984558876883547459055308622766672465104752272840299335979564648341451920932219073185208078867093851484475375463116609950334171436492965939222869522260532740883998095525722967070397705028302963350812618373751768250474098457838725393293582096445077510791743136972103573765907379441293089302111447097610309778287346032399409715587449351527763355276429857249772884035503539848076484431706949490597158219720277385317127490697777471527304940630415054368998076654096261905289273225363604743229892161591087462046932456412702001503014868933707338691010780018335034586940242430804727711248810946413409621453001546295780135619293331917032254988257534929252439665084539747625400639169951726955163134837774868922561471500789815225358232262032873568299378296365011911133118572812361885299004664510460217698199080508280173383269855846043949742228996041509103293415339339367580252221300806102728307323177200634927727239187659317123677455495326669997835437242064703259518827775541009384075844732492991611805814412830189343783184896648715221849178533999570190651958524863540193532872297119672360586920190246795426906128000755872362347659496726915703267410852675942223001276112815419014207143624605975818766618286153703001496554645465327943728113325580746490751997833359145936909356389834893910578159189994319845696538989946454263559977518799610686140608395203784259905928168713441324201839588021569953448176852169339866974751550315530242958647949963452965288663049877920856445355309483238451984768571863673192456580983659220972489531769721412809286285770526496552133585315486541467779291078320191284870776577349076977995851595033156417443788017396683371555650722238494458998634937402636975848545156402557088562847420405052149947251875686369440923353676843477759007402902969635822249659422691710569503152198801464614444496104843936718935751188174847196550011577032131010721249632437082414447948928151140434193228290219860762242196677181686849981964863037150118963022169937768677509645892816552940360572619310010609981991511789313001297636997585056577517738162851303505558703378860972804126647646681955797685927464152287496723150672165087119400440540892039135201237760940901466644434509515630673702201697709137943762288057276078990058534564859951755191331741645436191335310379598500285269066770284453609338842387397918451208937456243729218120335658710742842911423755133815322648257858208981883316555586004288116836820612292647598391651090077432459537623074342297240201460299817579600422430778414429434104597165871353338313432892535176137529780386780474726550931389388067886048088390575605034121388396425663751983999207582543448708900455814819300398313909927697311218631569641764816203005609610951838904304888050898104250047001423489725778987455872498195865076895169475889240301628973527840570244887144446470376547031396729853372392299034570520758101119408369493778565209038450577880611211229529092253228850404060291055153761245878166878392048532009116796432591973797138431355629926216314040311253774133034546520536746339504902052836792804702764022346594324105092722487381238602947807650013114230754583857864925368126456521985913520009326240919711649540499957828527157603065018505828651206637600911055016486379525793897622830552728674102145555028733936568896687795798337526002979155155703447236670078418903049021006107041075528539201137841438671346602583537691792626964570594749080541999050451177711470444812158384964084370490863834801537039018396212335962430523392687298907784494198992110025984199932784723126135296887206527142548814838412925790744774727901995143398973549513914165020413114543980167691770633188967162915180467937900142376632715289322363379035537529730152326174967323861538747477107002982578765478789274378635759378236278756510953564633882874232554289263680391410989993659944247907832992893783622351161971901040936961453742133536327167803940666240054167879331475942115642110176372595305180981792937469745876821317556047992133505749902593309021967936571871531999530255071038894629617397023463394535592610692123761187438146527505377715134248713120149539466205771651378008004595447612323257098603834436820006831594946318692912863167421253022587944354061005131844203710078193355044959827413744501165391058048517427912319100234177281178957917812280439026614296582226749137043095023273174719625798865192008339057641541973829310638140569242686536894300283326998843931387035553444426603979928172426948375606657960435523842507041839404394908074623268794300772669758259111195030201957094289061518925870024969582695177174195750636279050797885221666175611239218706971839260457052350063451669088893519096639333459047134967325641447956295429835742656278553717373434304533681570982169149246832971914561559648954088737241281282122049622461634022820475096616972942163181343394641174632158558971921821508223972946808634180552067760878240217596849678783130604443158276544234606584244597705277355442919663760189927898355715422675223966058548344053924377649852282015363438613288485855958896808850640156761391718254874401487635351810158186214013489112889089207154598208278348672920001534777187378844335936685943682825331958609774629117098230777499048407779716707365922666593059324919361935985886016630266415177367035890448397758334510296566181985300998964638859266287636808810568181903400083575882861187776431176548459073076390126148408367728696997955238311023089162959063972480662831645480681838754005075698703193977952372467647721270481941713650868658176408281122619373433000161032455448321393764906552269884423536446875517697194549915308217358111544363551308303004640221262985262376469341553986463553172237739816253692466242954802817832844665810200193521382962773489225836370030411562739969979817312867027592345721406420277209138560510730464156830753449692525945082413813486528978779603984221268165094620592981039634989025675206258118262669271770697778001421326496710027367765225525606421112246822212319383180780918318551716076566454550522547866862959249476215155257269954975716062923270763516030538897021616647360924009345641828645675160535974391686119929748800763261869167901370937449608935494528785738647251950271467012209842393288851535575571616204623982959085807551030771342263219447583647886370510838259084971210661927286972305248529219740214456153653977965475673676183908710930050149517656641167600548249551495775649813071711598767452374217029501936468552230331134219266504446862290433826587143661443833685867287457902734108075245188313482269143587947666297575411698579820566271255140877837909367913895277553506303800347274122134445628118924810562333642145563331797392093751880321023553492665459796568549997080104972914266890843390362794475775156867245659762439009525683942406606356263546297779671675971918256747312930676571548088889954326282028265216744039716707257562225795993284290730290516057357304622038763198361814253433824071355982797492544106328354281531481797469961177031672079611929412167260819233395331295501333094898645700115175423133475645849312378807288436526433198404261078268868587264657558837943455589855204025346847362700930442628955141577211442660447527034433751226507541388183949943098293643521305544017686953770584197034224452813307700869756620262687286673122792711166868041748365761620319353805143075217883989136373171162175509853778612592034638399430712393233638272192061954304788137088745471736535615099057877024279702842418201606454716804252908654745499531534422777977751832578776787644220558969507092791527492160209314060239119231876524183427004958310154336904203608583143561240426360048166737411949994506546219017850199009443754460968451436989377306718997429043440187293809641271569721275526293331361622203831885424326001402425972267763020445010050179076871305466815797076181538589190267426721624867856751129388594360783616456748174998189013849014972104186145747129997763589615257331583465059079562325733479391984915990958809080409309091737385664035846126549440140803144220515640223175634698761832161803887370871993557258393890036766193818205359962284980195093579754337958388115991785074050453032930528305350490913034878443985265334836872142065953702875741531112378777630949532301728154965165566329498904419171538376944710703432724607886563401567214752042139490829929364374357531825639118736459100994431631111706965555077971724061766141339487679753471504637044674677464671095828794740065986551963907677899732048645511623149445986780944089778106477544307623243803428411372520150286707225814124749831868098141432861298817538737616584693397168745929787366216787678388583587299335438170675092884827166238939373496563858039796470968697481670784556732733456795192185822516557116882814457123436908394001183741089007664227841730590381388289423175814212933798488360222977286749016251954078436259957667697627194632987065418802167147753354385570584333263593137539261966243227972254532244488593136053418540333314648391197555850966920289927445598153836174411669402096483895546949868867712046717604508697130441247167966305569314443285477536506895628700226997836242596207984949849649006277158698538228053163648581821537611557246431274637821201227289574918291239160525532796966182081222270633596573163713554960808679347080849457733332294462069353184481617037478892580213874159927643422684478495073697995446414491377911803536808536184778832557983321995671142508270211571055103011958052300426891578903502170068539971407572810750224462626834944860785513984023765703316788086285370884916496651957266979305893488381491682753883460377850951630390500476964189971520277627511126385760339875416526437855496342342033566046115439380703216730742479993834282579280825294459063420477404417681553343067655866266882811961151215025629453159453207295431667927702764082465864739178845884261271661545732072139033851036391822338024014926523873669690499349015768635234037877335183071317823287554994316218864697161472270630152581906449219604180497817455039646491615231631854092946616440404409881072376865202543282632570029094088385469879431758429455511729061499885631365453735172977679485564495208163339248217443270677893297511666936630958979360102413263131345391089597324275531686683625562692163990697263649372016273889041937289651199134845904307010836240968659429816640143470181621081943002858949943495825664672042803602330544390138879042612602429751703939685536305474099670274867119266734474083899956631340937367965985360597759630477372000643723063370722943378762569419000123356768183223754263434181568999332960304496651901280863284431179483868652287238773434524845366210743239528640478632260291596617237309304475412192928566454264847409384959850783083311051230044238452344837096428970895481427207890360187704461623798526099972027679940983374710297208227508033578483086206530611819539146746312747880613161442760929001859500932635720910095624088319087181774254340302809284384365244170842702777434975379286075631442928921087673211424395102301044872722977993314852453229352442904592556827251957780089469676731129253366640034721756314437246896027222689459489017653391568097044235266834268601737093574317023621226565509080557245023564886645352582130255092872437413178150967631494020051234027990466959647695036664829476281445541289355848530230259040796967865052463374658585015736161926991503814321016239556348536024574627231323861884401942661669325507688199770981361152262788164663264077842305577853536329730824694038471825106663414728662945998977910563440225182826241391548574072548696421211108570427755123631688902204548021060785269739426964102229625517868269918195861844434822860804291817604348010993962215964021430756399056356526617322836659431790624708456481541057130573524956686632749471892657220140738650029522400203525380503466138185925037717703831687763991588061819367716079766348575197449446792384203759307708241221566705639888476557820801338003299653100718931700045319156051716100828941532840505619848962880766738008630289251886255467349645553526034552215092854404982291054952588196492217932632845992423266432704419825939595746773834467940071668128393448727399572246213362764643617680784554251162168639496759769750923317447256092660741144442175434021271489014921930252362701762277580001547364926894844245937372479926434637022751892939069284282841554809576541871353214138938106679835562372335788963924404872845338446806455071474374978372946338905437640986709243350477965729973642785918724979011723124078278337387183430731283752604206051274600367436322454017858589497472307655855894292992147557002347149890758541536414101887770160122711532721296057480646972501238995757574621892283610049329134772596753250411435359496249222110452596535052811322422363878328090302268438493653234863101896134433645451218936235205438295905348809411694986833097893118834589611649110209315826565291966476255701869482489358372743103103482646900172042501083585250567905994046175711211353502750962126353126140137097588852346181251270059970530135885706549249571243956147467900721201825004777237822558549703647947528225475489917167525507013023611231791309946830444306960688036075627656846948148810990969200417903972784062661175119016647449729014403002624718260708290989966926704648153958414942199975563061178262573356994777751855317695316025936421660095118394674797185058816527273423366729832128164080069877626654592178874881362980340713301404683946851394197268996359097327159468054509630173753567977241268551840988278912811218090735212610209735481886215194111605223286616258540330654288660302278819565510641380040073174263260071883850635924109646829318719399686490459650984303200339417778859733136109171178322756290008660770565466269348236651271417186013548984387142238716204917685469860912540693748504105784791699583458125336564276115993740208121973487800315626268414461486110997298709579970057513337934739340401177971888281590729400174551375889284886693488350170893616650471509095793687225410386935962389588550681734895951329879535891500281403182054989385302412978517153250417419377299241508318950073692070566576306055736460630481178742905838349699473550220859518122738212331926521915981076968639937264341684451655242236321339530113267033706087193032306175689488923175709271802050768443562416617756723272264509817796116303792347499576133237858735020676173312659319857559153491832742173711423413395910345353511985789755288986364397844989936016068038680533414541313801931314443669401274747950479939274789198529344878578011043835937351174393041737726128626815072729915154458310017865525240333453274992982101774585271857649450697859238803038970630555780494894149168215782537726940993333991922853776087038326371509298044079253558752348282887493300514455784050046107149493103340336971216801334930473300506168756204456625993876602725377148828365850971592851970535062694220551835010111060037327598492106118562706254883026485478201376015185476154400911599415855516530892241365926993376165233927893268254400443084151094371098518820329033716704914445343919634527666082770931650523252413829580061897335176474397053614295662511055194743100383339149183963810882572728823844431016345722203132002286939566850995426252998614580513477223500612495133680516292704372067460055353463359044227119497352952875566944030346248169594916870397518457540761808058144368826126226695170826590136835003660961724472321578540895955404708708326363128396285329894038819386341295942552241155313326674169341658060435447519500355933113749664382948542302751826534274288749356176998123826523760805169988883496038294291440447441924003798672976219268449902760813498222254409285342113263353668316595666413161941764268923931770292147829580040652266584171635416711860614293456035984160005211555323987632252198251359471353023546905516645725654950041897887750426769067148046123800478711048039258987652692337597914137738352372362615343106425915543173823413839847691885909854836326191584037103123497152489518329152000631733756661714855275542616303435754343791885245737961354894020666360354549401510868408337102801368585075952008683607771734619671316794492576993582321765305009774939387029999077814657698812791344582299111514400843135246186245146263248583521497745382778590426651360537188314923694765599691923783044509058047781651141159573890276813396349959698883364482019803291605573255899550071580679245237784986057638039579164128370504140707199990044703026867517585465084210336711674449279541411242709975755095080119892689216300717674379492633196016750513547989855142999602863133697127875577883669248054128804004042473413239869702026449902462593105099621398341594585909052328746932453107697437892653095031091336535455745255404917205691739807185427276271827783631369789556982398308733834425692450015794017083480941434056964043563322996523724205558458693474841141255981452967725634985794666191905580493803270252306712517464436268539694277834903756272910555882719672848861312869187858097923873838943657966852047917710248335495085740923484928976404135629844875685149590016442496683499381909440498846311177045572410731506752226031260212975790712683547057991023548746091662933083624531326380832349871598184254042066053162265496766855587332155417867433554744753648808141352429458018452716683384896155664730572147503927838713755504738604418694422678780485332042152507025968924510977756509094894506503974421336346304203367717737891478801621548115971923311374521841809600276740437972073231250296676577300964881233253352981411142681726526928677925613322673134962053601584771501752691049338196592843694817990399364353857979967846404523081409492377853731682651836046328643298804192692592758118498670091794935039729621043833564771915611296627949212054439632834831346436769404502666705924091516711524911787272319590749458971186456361338214755734322129817142123758763933067157903140286529399276523095742571513174735800081128234399953612723608525934860819774047508834936437298385821979664369952218904696590688240188212255432537241948308183451676385734022224447055457415227525747300648118361463115808006672739972909949342682758382057489903670043581506765002233182513309691386787159673745263057194834404767474764819921593084806704021121306541473510621706804327195323015677806422223573573090903839195237916621816543828204311593728895183156314738740713602761763073815225662013073588974189208974710574587481653503634443682356754557848541950667630426599170257667065978814426606292388259032462793334323888434042359790105003204564213191327018067027827598129855170755087587368728424659158738851163882410919288608365428118930989164027242486056915873100694917193464781577481920441120944773226115410533426200230129907739358374025566186815703134198887865515616711573779300465279218434497000899374548330191774834430736349447542647843932293775921102433174455704880049351472064315819310336495474300211670210719652362672074864148702923128756722456362573001921208670426119537280872333171306826885290532890707154777898945056949084414627665651684126454337477304459051185820584178752367457819272719158630258648615284329268762786382587371490077452926276588019995271725447972713287168083862758395257538487093409476689317415158571452444602341755025749428703566453252728764635329146194751066708775134601157889050866916268915714736839613390835240877249463627510830155420993981551476073275889554640690104162371001578277351591667719605350426419648520561515093267664495406576285980628747547635570406125925637743460560170020304113800916985916717356663591469576645937330171977877458794794902927639047758541367239246582701228141687665131117949398646384459363937953662287996961475974065045635224193984993245820663949073722857298256249650103055593051447103286085768686059997741334164689588616390379777805415639792192438779842677430033933009380958652484034841933640752494543216696314370966118545748702460124986283398223611934515714653870115633882282422200919047541446391140554164009830479809914264464478801770205944334536357011523063275999460941150508163268570601335588576789540246780189882582299135069930680896138218695741202656374275935257042466157690104304707831433858348305342243090152441982744240877546249331751529795463822297230602241989140867985397040427536680246338766024274859187329603727470056043845393669310756801863954252322701058091612709639478848851486271016677551560238098104205997083608117381195127456083486122324064557542443228729197908478931268287117926802073208729112214835243427983561117498009501884777957167026585432832205676418430850270243559551719574351346839585217679905413093366411786214842731050375891499501617243682471896986265925439262748626651600398353307907523835036858151501216797042705077172317241857489493172861224443537594183900843921062115547523817527259987569098799509871660925723664281623611118924699303158899143654241271534022934618369496524587169439176141137554373925898306800704007837554583155050047172328573511639503848967015217157340445246055927474199111140604086003067270710811178649948234905799026885424985547548022466338474904307474526805127161506684536858486518889959968606297404357244032831190418793865999244841667879700916948583408032272509296418957286784056219110407851302039776888597433236491588530261597285378375443971031612852803234018997056212909038269427451206432666310072008403873373657759653468583097687867474914639183675830055002453010335482259479114645015932253257545170764425396247729684781068498576531954962152489897597917874631372011434686476976459074627105519506407050644247790010080252952416347995859055750788164677492170616979681167811792601310530808242620593606912267806287220547392119847475307429504288699551036662410103216262943502990758223318435585736713611815053292033102765658575086204687122170917075212269098672206823647091266144744694296850794970297383139613018370694030823361605496036837895098689336096935850086585136310298661548839222853388020430563463585362222573270392081123579029847749244455635961141381760289849280223339234114238425704140054605342613274541897723367266893480038356328755532642635359982720499441248554194309073542167622541459351133314582932799952544650951994981940057165863566377465442914657230139848904709576013984608523106522579626217615982737089428352706111608136074288963618271241134157745837220191080441613615291202959335597103597158705295989829848489449899529921972299443147513271655060129657983068346645782139985190126484118146488250031039159798370354774584717047453106478290102220558027383658801562275666682563803719963129120138590868151646012189584027723618467818070333457765940350386997349790014890963435688094455562844294410580302586099137807496809724744946501931079206732146286162890319666327230120180725721442679333767901262983991337462780925403340225588173032052615386830925613647070122788185298738853056517599655239061253028000314029939513271623604603352636799614617404837677536657072001353486013380677803880368099287161317350686197604768481613074516181498492052986411397675741008230347956298270717696453694138371169422520807573045279279862775169220521783787828947429587493025228064311508141554144987919759887882792941725659894874481317506524740477232595055704470673459878953402409421754140088387136298440823684489865393224845505671251733554180254396754948108524149353340413312152322682083936030799267812696913443266237819897504296752462339594609042773461027112212717007027816966350499910695167463269622256292958254480358219132526232300652158903337154094941150342321130882182611908329344148464805967283665677888038449239031059998357996111688053853223379678249450037326202967012815151949734709004826133361082936980229281536472147736558737394500654484342936972177000676713469544919571880410019145946196347385828599624938425700575490638834821314066570016450513301992020097116739696953333996300803640234818223414901916763539810965085803156094652547711235681223061095186651512442569284337563557878023368691718871239713112008115636548993638135510118875973196159090594087322901099951782087782407031415285919640438727685993770867870233011340717050145729146367710494563276340051012323349662592944237806827743507765951581521599632288323469648190481046579448660425988951343423058508284213790918705813474714938676921524257606057195816875192713858509527519369696309911700799420685041072816753375468049038657844908184538805126244282250253428193244265331395998490603048934760651389701480249085121811565114792710324519066891844706088187283107213517752959168385749547812615989081823902584424607692511691399946181328931388947078923440015155730931860088013407258078296920178610104297455090616124931925096878690371617159400324726449858107975892202957752996477067429258567566633201438645469468240214845950102176989034617793693303395239317917677961256279839630318608095414951345707689845880875621696520068804580579375638775975470021017409965857045077374734528424305901508312014130430226745945926387772778629257791617899925464326773935171525135447774630685835993084582330002331157862927688532617822817457128116854609753566936638122767847424474301589154798390132988201564074220791672787663849379437897868452520461690041484329577256796993463704676695038007962413126394893903895583214193348730918764828194819710288619948239456531676851015627152799486814881158954325751731133674672076088286223840854699225638992192138563634746358735924161745245900509735338774685451220033772083223861805419904961962720543625476837902622735011196954422454236319542757301297787025802631018781251234472732726545595935278889946894986445445304035583774693257516167261208151113169578619131404655422969811452980834695854299246952519790797835523849930504386724928841741424227695897779440319223884927957499350239339966913436612051959072518235502678332791575927176166665901841644685436038260306012418862138880032771314516095907900245327723950633175662159225013457431146754276667273410582781203979795503467856067925729695620829556579959847266505758318348016439277802791455886271953252352799886519676175027023701900248384804702409660700562981801948828707826221199528696264368689516357521901304688147478863481194209993556368013051104880088304579419549178896289326163073295571659530515426573249609234894738636090513754502018825812527017006732616093337507486838976072768492523010794649729366878314494195702779678259695265556345959870755312911875096400036933264613986325949615279624253951349141852340271959397728361678591599193929896734566734349358932455478509143722713678239122229518887570951325940387928542961843413082196910453177433881839684478750543779626168510872350981526280823253372154369932385907769619451213253610766950332972098911047111627446874215581324833132761112130805726766612489475327787691473377027838480391508962911246324660208296154185486028468998673245211610179842446721233233004279207518228387760227496272908535507800740641841270800093265944437296575930509530187222125522283576502100224780595600832483479640313994999838678169082946497403271215945047863232838501184858263777730083678358450143028127292961566778463525130628005937316282373319110830782889306240279574740723502855065251529674064878168165960769109639927489734397512319854734562270424615147152357742823987076169415668336997809607352202543469555635132128133584123020524948697211201278016098480800971656975507806778981157005963473060879457573880981020493086889709460847306754452036082009162912567796246982491755582928300099543054686748384548134974877438259460510755553105656261221360928287620129127785244222793734978868365267981301460254441382334833706644781869726148940477721244361354980562156360076792681731545998543594503546900867295318407372811205634617989890661418707323683535181980034046581946728650458598521893267442836040218727523768475522033934674960181811924003733215536200368078447855623593857003241541183212931604051912088055860720774776999330828407121286074398248509754375835939726232636398280550991501570664463667389409464603738618736131970270310674645081830326223611928455891670865480957648957530336417827396480197230276454427783921628310556620505102396303110405734114671021277735984895153365372160330987408922754246096163600790747596157121218081868278093473733324125736288970146918933515392510339237001821787075502572178128927993095016969901696779958233434803097364858263511260380287796426207688939023624419085038273613206551175643480923786328221403246712442762401456922876473353979393003492444446857003936084403187478205238896503325973791779234059675930494974838084713771565532867327373845884713080679107799479299055608614646297781870945173472783551047531405157467155596897415748995847946022201778639228727891867095555246863928360476261836926999146123274833625243447905520248849216261359716826393698866246523706859802551174846311260116951745696244684857453039302476191330756876273178563760879725034741108580023586392125658918596041424102704023444280985643300815704139172663568410075774033929274174261463219995182828238828218771324277788794018302985703040370601715109627752425567346336395815820041493587979428873372382781898481480948916643520569112448765067574820474963497166537877000097070385446762692526376316960877556470183545729818391193856031373946227701126848570789760953344003449161859369548534465761319535655186666970347163787177871926359766184531369427104967687457519134572820606002570103351742095034261261779504796649849607906946199514132516761550653161341071745376990835805046727260188806933053966617073709234143755643632973150219340727853795955441656108080191727038390710609442583713024010888651774599129792598225289122620986745468947239865678380737533392374645607922294173159208346458253739994788225587530575484252292991658034311847897276925400399037553855446244728936659839269903338201449874681545065539042709212451707528233451867125370726872056013903439355271305063244179012573949090994112963675446560966900338616654555265886465492188940185952404715114142194079766161541045773224521470350122423363012876507229913842884882940995273498137792482879139005536360759551835607216272322436004110979043712740716160833786863216668107402049445264000396810095818748182330090860225289265154906156862042821991477177698951955173642455272630490533585685667321879556259926705190045176132169010943528058866992707178394102846056754358345879829583758538116914040731686170615351276239648013261868889650887876529677678845361017528646770733686023224503052354788124488993525182510525342351784345708535702720037232028757051249161434209277275919863826917491734721050484295137687761857574624377607385020658541683925348073166732287516572507636556912787711706707217254549994611933394851099787634052614102460948689309300276044654116345173594698680028073606001225219974903362033327220651666144995958209895238202555469091783230807845828511354780590101579032658006685886179831792668402542288147725527446495490733258592063340520226188496875369414620251461872424404523179362955296787672657978466723743863685552075112309188178353328619738912389548337813872213099210547605775318758052047795029198233161635961952503214012018346310112006533273621867562672214240364895423741439837874745205461216029086058571891099367812103783939206609040945341754520241839536824030233866589522359859705677026903009827398480883991083151951156819545892559596503241854338911144396658215694253897291656593592186028530451199098470872103170490370124443506875320480798403992961566305550751809233206295892798161034925615664198911765108203340690285540371802254196330244624509334330992774504950999315631094528506164747684664189767420878463263326782138724287741423676227763067942379327962182930492639315192750504995206589779008767042059668857529664886994170681822767385267854099552909256073748435423024794721869612689838251018370612327297788420898079429440220996069090936137645967430966081712144749627468005040274620128532940469169152185194748964203047646345132065486180641726646093978371671054949660684656367204323623942619968731819886929843741493214872916784621610623665229340788148487768752724997713340360596372115335666794421949213236523192778626839161010731081308950031817912866498358993296251691687148226366506870368622520675422463720812315275515211418492930604794584036459089331418164018160135791371595231342200966951517557754841805533301086426291479093028046500948711949328056206569394040601365670929661870101103544854108879976591656585479337381111388157048166614378396512792230116900761050062269413028217652130844554357199918757356766291498459281927180510256715184672201675955809179941833154396982222229613820560799530699628160864620396139532433919310532203839833015994713937169534563098490303151952115513870322459235835611479921894986836431741230486666554232281036516247392947078528415036208089294358102919617169149306457955978451081125421803147943799321743146071235297597418035322520323293397642531649268045194973423159012667554877559496962714050584195876957484240778893821594780764354409258671706043450833040151415815652406175534808458038198378453443674129797132462805450970177767490596896704608722157940956550324788316183373055575551368739724178701817184850767317693255933636360939799051729901560489687164441462681878283854254617937786747291563905933273256497034791576954109279644276446632717836983877292491623184196849734325545700189536217148899638677752364572909234734298139352859763431820010470163709165233888746901182988479054040385067285570386740609955624407630067124850753129302410651309566831411794390098268889304387604482875576759995416988445738539296930917395221422520933521919114798685030469110838712955407240213156090206321292331951144188036959289682484886808914311449607811411493682543654127801056701882357423733239460147123644173015802787255812696892846651369899065505740241162084211661879983813551165599493705325112947350542740391696196265411946905007730206105508677374839799081204707369014202186598737295777115360222370078698980034797194894745430176832321888012857164076457286316390336204876760607639838415139359757752677511544953060466064853627902372359253330984812412463215500434645370595195989098671223230286972032670740540402936229787221319478492318499525297502134499488715131696253183434215884068205916145896703498235754746565787643755627943306958953621748907210597269566668658289461485221270134058691014960757774085888224372465737109074195289165886540973230004557990046466349811623466741861271428168513596084868385506699379517163450451695108035393348902342484873596834921711250225230827171607992287182208019532702413488679536042304370652673509475601369089631023767721348322350665345731752200890299306133845534549872833656471995742722970581565631267674672864548896102484698791796986001987982985028869590587023556293769883684176741726009171239221022227729489838691035623541235499252041050799889712560990311930067632056871353682815047153769776096169882710658755625045919312128300909972356277518269968737566854137771147047546552022607005819817845762642796721709498693136278081662702456846366317132353121921409139976613064580146984085956716922297870080535991420973459367437516382865245415328202040578422765341245010739303671229860422628807883349986356144795195588155658490315364995118511418661578677830794989872379714252446327768642830038601791079303386272361961458058873327191195668606377161703777930722291568579748693608437918825671132897481855835168539324689550736911314077394930521261948191285560096854501548221137685018439123274709250680265417367465188192067866703864919412023941930106138470739119701493361939172873370626855130206488564232003310210292276491687428211126453112615664364352234986075063459583894719763935421407873602504484594232290130468902477958299841440111058315645065858176530695387652796977435950817415429478037707161637513205011597006301476356691640904981032638824839613260109886039711885367494655091025216810265095837623512076405933812480253247883922091720106157090336585743925757187028837656146171942548261264444169889694359993941086016351160217681333989020603199288289561012755413792600150457851953054195744786676369765264621856088977938944778516763996238313733916082755643037331985474185699720298342596468876504243728416823032488403752789849983482478770236394959846464272686733396557315061047225734530555270471090222511173193813600789429055173845437013829681400971151802522064908953270865123509124084516426948658794721265521215381907649948092380675497776830542812576523082158571553785723328739556422737127125588739977833162078848141195092787167346433924124680094430062032831805893088238440849877795373688071897354270527508671437774891533056399378674796527471253892355216757807860446426889169717036493014262171914716671388837206197081890427183710348679067678508192002318133914549618935680465698663848105081758760373932969962671114772330506410283174667470836285496568008397556836778560529277400271689989316476567564893992429701058611355592175312402811316978633156007530575689656419973498267563119365953881990110729468848878449975849151185883272067864822043161976447393127543205620103668860535077439759466770275711483947631373314583387392049283961109027935093490431010530425967622328301278064557316918857763368575143581908845769428648399860216732702579560004682642791103208650109413524367520508957809702442226327178795477293093137165501564201429515078358704213430811023198701057829673886804262078948845447465743662824186753130874777906647962442350972630925613157823629613374484893168606130379596362775662872991798264324333148450593405920678749504707873528447470834577755981264956370120029305246524013036787955488919178784246411773771815704497666087913703852537184663994559957668530754480300422949161485975598718024796457556957247961992180910647891819966044870345835342278896794401882848234749159151138668474894074555670481553867501535504920962767035382521357480390638984686239752567015214868262063038632756221117690799308633818150560970502322045559759983664756818981215524331149175311234194504317000376868909149883423816658004623139796430897195969498159355888076512466890571741182429024252045178709841832572410624047476415681850671579976843387308513969422192778869227271873803529389333487953429590304039424222774349052463338412174395211006281463246520336830316429185678217774087101575735240153286754183720382851033702432329917119425931481918915299487697833069013079713464993924057213814938039952836726630634115104170246059391641242806544628834149882454336524801894534374761858225861096453453784844695701826914733284224586125658579936352573371137865432513313984384212105339317938217485244602758022995923623908240949734301926843970947013912316557964516760102394236929706386362805812743731965122478442603648952960943269304006697428209044768152670333911812657873772795387563582774881311505134714810164486104207596111055862087899443502471263294441407656509319859233656864050398024083372202626758702440648382523318003186874003275642308818453565214979951296355095677075477436727425793062195261195496784916121452679001925453431340776099847867404109027251592078087711281544399104207429487170364584965199820786486515126062883307301654226825789491216181483809692274043682721904918152016034797546089285759387662030726410517784814800366751179178012472884448580258994417785109236177608544836000205025143256486654458578215591965829925011043286180305552453899127787431686141917576806109019443107139931331897478392047093055438522182835987836397085013881717456515892269718473417397690059410798412277464756060247203845608009028239726346796674429555670416315619660125604401346340148158426844871482701083248560045909054821778711219883075061512942386036090237434906897338147177232101301412185550797313525717259622713614314894288655221376821543258047161797245681708988529865725492556733663021431450090901068929689415230157623851372465272959489920323491604461815852653541965317872210479922924328851653951896761981885427016098329655894747553006739457107282894845794009094699761973640864927280235727763633518494811784024518708297007268258472136278499465219062445044530332441420860779323359283693311433758522334474139275351182291986185839002527927001232143459232986736140909578147181649591787602598687160323899272109091149581461790318891915976816616002293027180551043418730584352743398512461894443541362784533571630087589019825486992686998948988065132475033298667246187538285723054748179179034918842032472566401542654341783774576493667107313278838601398667994666917776484839969306932707481928077222131181273227994536078569095284676476969578100220670794371893637217237649253735330222895181661012436073399484894669027624576116425820985060204182841104771045230214571646853553777840402029692550011647765677567477047128751350925176716545514919548101058930171133785889032802606368312823809382428779733054295406750076136662103530041920548769312590312861393379258194462943063269227704540099770118912399986015231321503652348798818842760272363600186973569270668976121501405928190377937884935821162649787946797004968857503785233255143839319652905296052068335634554461959726756859279704233249069782338016554548541498271108934380287220975297922572420951480507299804257945151145717304049919681667143794662099391155552027805116574376415711305643336539723547693845085865909173385224876227509039916415073007572615260997954305995902734023819034188308647826678604555056165092361618942636060367919637649740549957519443674693697244639887740181711216858436163769193717532506759890636821139303646500641194516832484778954769368096432331479756389842508730117140620947537671141690669339826775354428838072149961745317099459400867854682484201560634576370624506687313917844882240600174361009200922544881214031006890859084440199204347914064516572866385015083368093675312317573211997931751258546510590480167966702158099246375460107126527593609238076619020714857807591160150313705196241687882507292500739369145703716685156178881142917184115804161739901497252841111125885437491819678908129518566341370212596405345954640691839458541083321706146669247455564045646192783367263218756081753139495951773460971843195283654283264047814500755325758604814149844167469620510006606247380406383750416610192039172282832637110271127780803715364457927962238286259599765325182721280488328521235546404796641129215147946264197623252510267548078224892724149784263456507392548627515381299021460135268901988273410082002992896058232440700058292481758130558292840778840586138644268308956679938582128470570524264622368539026849378668340149117333898760882980267575565088010182924420606356707849962910846210888907875910145612237265020618205881822886495088991991730535995383497743377503296398086285634781025467425931600547004743305414838948879301591669507549354518973010295355884081461425411398715548658709560027996498346201306590385486984893137670089484277054323598599603421790270021413264763905073297595586276678272593719258844299080467514587502128313442520291360477520037518708009275421732739570259594815826220264429268630594660021707345630671473241136606504516516986798221407278363555985855938315411411728348930061387698800882467992968072723213977347645491587030300486234729805179817877212427993601479765999988149801766220718768648200363304432055653015570890681008284679097263411789055400623868605785465001638648654605021062441941799628806042660061902171895488875163818760889179168565556321712709044679961296569517373543896001054156436344968959495706006006119241287168802195563301106134025223759430874030206161246003761724692132509882271935867428636518679590468271974913965072257397420915929646929959108864265175281515027213716008877515748553892453863455344562395048806480167861832285526456215321614343900263161996559124194571523210977733181241154745415379949960704247632672752947406996521924208960731567241078684277793236008080998575925671258805567309841994283115853802417914708109771382915853123982315410029161739898536741596896198491552214674837778449800380227552925707476335635471005043474011912731615586706710931576098659185527769843390129343416790191887920662210399655263851251482107397074747673830422025326606571875770968910891815561039113095263929474532480737394426965276076851904902281515103989099076040365399175480823591898991301040664883155911321311138037383809953627252962638150620380665283723694907928102890448009935186466328283080858016856776885376727881104813999180411759294654717883551996479735356073772929373670153428191067440265018646784811171760870875033032242920852909836345202629496007548694572701161383096492925318799184331270438024668883275225147525251446215187192508193618756484276534400576575651955965867261129564267455183112176693816129220666522707834655323005883983103134543637401285532022445728463860220567271125863426437845803783416626137505967516280975751018065699813815094067639948347923740479353628458027381243644737369311647575733109042721109553574769352818319100836943340580987112404604510542022690101324958402272392818927072116331205305923230994134712673274915459219306092493914093939811772972362173571414715202037499723113274620147378706575474941422051615772600701394285104807080119615728113167824174392004165391517134776354346951966614715526711796687395858629846745585200946396870501730055724842877406410845310003256241591514979404717969986555304345827326121988153256377736411564265919631614155727102573118425250654726736252521175252098771196049303278330528228249148133187674861828515356863894980426110890366797287555530334698692646197476210219431095280251384971238826241150543679713461901478119613302605904460029891288288105569553410841927530580142108283565958959823857624519181204493315343863863176362192958130985819380321036462487828496071731233357294383598652914243586242553349077019105384474846442866948440137482236496259546956621600419451858040692408627947095154466964392745609144022154557831149736384071946393780282428758548242673513209891859464127351815693294046284310776100030039247845532461623898611620253194451355539630971693689954013676066770508330381331130984430778729559209592353171125498155239227948221059370375182443733179238846494606523620836972238812633329818272857919872097474858273019894913445036888290713571512171138915408385326825361705649624061906679364188483791625642129558798816800634146664325833254112860284686335354096312723048076507237121337860496347939599728361986566440462519246120847834535263350199219718184277277431555863034637557222074862446611144536165999944646952297549103411161360988249087780000684756554978401459447762040656925546055365909553870988463785882863500192613660463220063943128769263776828675179108687136712629963141753184353997074668412602406856417767219468082367630008588250680810639638781461823929068934233822243264013104106353363910928832139775691752225124709587861306976833447374772740199792306902850581571325910397851282611411292845236798765216471963370375581430029681261677225875935335744943477714841411431719280996754903618919816023071002849834040048495334422147276710106800765252724745566354570905138909660872649105175017469575538624446387600290474390066825683012026325507090755259895126482164611525741485445301130413055604286605915223922545337165448205617908126736445150806048891894376878103450232457626332819958547472225758293526518297456348085353240044188327930049502611363525245159069620147635434555723048352699816361432318321885390045889939647528953990744765480039935047934280757503519191851039316924604018697040856994154767690104229210265075129169103799085550525058239862989796088551745913377073720131300552725039918837611857003756453057269485877764331848879486992736661862296625402154877195979484562735436888889517832276639916816815878119574894169932092483345540107100003719267425664113869227581512450063297770802325224965044053012149142660831549853967405923249096879971998684421368211541799309577305314088949538613032126760501202114056919650325874541438265322542888030170207837732264335999373898671500109166193940749321765126872212667542882714929979385838132293082449050371975477016558508657919058353509900049172960373612512611522917681942176680009822040339312827104662689161627248497019070772902969546205523125476356295455656225650671670481742373683095329791229893191537145398182303302855929121696024154774528136812245957788899433627381459074007515081118490102760185331436674785057608803307410162671141446845763931578412969730157562360070715860879561355774476298088588005162916211910572884064677735898402842850932407300555152714649747143071110431695016666237550992040364903877578122439545036932044744376278126181535816317141239530604492782365836968854420759024604087465027915403474437816704358701230895322828672464344315848319479251747404792988635251539145293050693553702176986044139554192870184815541470489098832290196548271332450137851609705451900220485188586361050522818904096242699716431128898514368779318909950617148745715941080913553939471353835688155272589723298580371005226474811223229862884864869125906401944982945772643874585637285693437871515083762918706161581731693104419487769189472015296167599680767551572058453887836215806269679289221763819013017937198882975466353438090112943262182179902839031652522773114479987936210914132311949314747003959467003682387559182690329411420526965245626335317021697428837352626447076677686706240073211769801012017749883895176355877593065762062560134097110018443794785235123207274066278254120282356126247785279838407537112972533043933090976054997437795972501645437905335690295256183961038202309351503202853712746275060183860789114106971459962984394156944578962863489419900578927734510288454425924324812262401852111300234499955804872537671931225454829259075943821861111994893352127474325986172129674637992089104473569804698783347689095992927886943086724194098562677714872190957565551614998171734595587358889976619520519567540003193100345727104639700173283487881312142333947676703085923225566294932336502798131755071335897358947768631244761514431961458408988718696356378983966328674415020247509197432778370887010344116437060958751476429484877733098774381077519066290107440387311474282526340551170698282357624935160776753200695419832568562152953107188063632690636049868475391713095788120760278435543223906265745495023230854471163213138927491617583185021349911833684331410596290154753152551123156726626656062132847073571713152273932561596117644491665123950129030156175710564519039655497075252468292520302025034663964488309956809023941962910553794306491971998641438372119025136581183800332545916801094580950881370487491287635711111893209898552705324565572221050505300725235456596488841996931627418097217194878665658136977648126062166930142375111027387152814138500812356358636874136644097374917629352470504610664614085412718592285160822720363006247849128063922106514746738760152343587645695486844689973828189610210400454583782914643846411145601670746144962297126484676042100757662496353596432230817412911990574319344188351768083234406629638280457306570397324964897650978358574326889882485122326481453449597201736455115578154503261064218555627973758192681857893663231778388643835068930052612385103855257187607750666038432225547173392154722032293711784175339943929902937654395891837577607810867140205309468400357453027293169082498736461887635804459283429248258694700653638329427929144555577901032618443534390746600151603992989918179927603267842508302564575470472546279795599646319645142973990040083374628024711614141635605595973829559884910676581404736674511700456516050518170067132217323231752165101185869840002429849418666901059655200571371599376826558041702346466111833399318050087750683974406111754030816746721885227568285124051519176332847191933007926843380957173060127478649222933957972260991542281665108882877498893814595611751475804066400772815021770239862509628398804987990768310960013355265659737936445794688190433628135915442437508870912409279162581191825134220916437650204425490503957560489792342433581027521114668722869826407435103781314757298964908871022769323771938190441805990946366838032737337903068412209377273297425567147546401052992518886555433379817539020215968122881763916642631130790598643161772693752584532853280720763018897996227698039652884125577103762255631063186255315514862580041087356211296660423301174901283233157709902452643084343503777540045504601940735156340652452898674825092551688241056762896447555276046136225314553641095445499379035888475459354411331439741446262262748327539340476464309513598507256637008134870721510865320399426983625306107748858579651037303787860237923470338590838977497783065424347648430450460948257334110773158488499778744427631853960892971564461503875115185494656194343339094842186490725203690635820473155292016228997603305219350939698192144117099813614968661403114723634236868517457774236684538486237619828688653074913688864683076219492860894950282658661116431408943788559979083292391908963263592891081168267131784971435529960174017542159337490755169083691000803764399052343128327904500549459588980831559382075359814829065245113071341471890769125138620784681017376834459870911072625641572924042488248049590802440800527161280587802040234292429304352262760377299074613965377168440946385103337970338076083507833289422847180720950385311956294163036848320084064656427417569496130400380174391008442011170464625738106384072458648154402719912526493763329078470671254385825966157737189637250091070454727696257349513654520862464979566066829329545066784903556306677211070643406059709995346047317973323223843107632168838118501294001795159189935783793582975516693800907565131107630334054975579385927227340058323418697632953409338469992824018968255958138615355726563572510683697770591148857019154295644974335039182677169902496545265273028413076918279274783894053773899805035918997126033541469960603913019078030384959318702443654931584214795103906840088967213622932872015457584533212059533863924315096025635742913224282534842183773528677445781577659341766593371545896029728816717501904181322377981959700804684338250360631383447089637725529429400320474822057261186661695132516984108520388946315217419927301334510608346637540130725175077309855926578278774430461722988124889789254244976072080286273385203913098098056855752590637268112826275591781551418136645955328320326755059796750378559012841722063935192480788592811460315851070444921296425305560762911177027724896303387660091555877795763801645865371890425911688369133585383453393529087362879665810213448389317227470585625592408589589711498305368008962856620890277338706926421371227155280276090300287675315988743416949080242755614008101362239628355249426149781154369100304227340158900619317941562627321922039815604763448828624396978733969400141110924925813178945359189525987232068095289287643461641865199128710964237188753835870521338471223884919273267763326563721902435285397556904846488006381267554083926668942773689812119786214092380075132374756286815836203957568215593582887495334300560169963476725050405091894624624913246333239630474029457116743424734572147477711390739098127532096034374816405555001129977297226505878628306953095284879366385444160236868721188314491552351741531991106264585314222286888247328479110497200145315129237698934114274554409680991791591046481313405022447618321021851410550563867450159059482648971791588779948921762115107169401885336584232401993598191605123285230527625986278707507846196074437607776484496452747324943965317467957684647478881074215404740931958775255807406687988203559031100745402777981701884215431336855053820029572845646864985136855796022230550308880973639852837431740540446057716183420482042146402865185951189130049859113406921760435990495361999924351206069594007092052523244604495242764104388822998259601406858813680100691289353135616914374366902563639952605530102546086792694334253704037281533682883899980605033112531075937331062775084193527097525864559422919134465375226731267349524018929808491635356601655336612927105054069001940091127353195355516641859419551486805685602105807097025654721060097720934281726803354112232814686158149959011832863713464555036822533405515464451702016032177757792577102032695985033606140721563201532416330450591275681799010529739806287073063842136891337538739396051388499266064179856428848702243073397928829021759726755592734513514390939900146931699452443070475931899895088420279772082323101552005215961371734135678154425048480156978254032222153876427183378608302846639368056748513618284072295977045682702068877438420419805528246683910579220967700340381327942819778851689915707418135139284468251905125935432640667643670860893547779578262685414697397575833532801964317454340080610713342586336251953874801459393760506212135785100980549437351127822332182877088119315481006358362513639083678905524887426336158945821287167226725457708661823052163087574477235927863871469962558082743101537249574707674757395170199192493173190547810587474061720557322573509976577051969164856448436569465255461646630135456110358411805217461845272755833525200642625835499100958959405715893563593183362224613262114232388442091044903947300412778309232394252566864868337661806488865036058263768881778459660639291562308283742121005698755914465755941834086496910770333969107477495439230751718231624900638773455708657664613299205298006611739953084281718568683556162574141928888717935956446207335647727978526668338924426967502651441435816616090900061389603472854509217744008519454575803184346951446328858510687774172957556828996078971394654951775069262094249061773381334881366654328536518009921685301936383864177357760495297607227550738996187556577738055647727584301474202523782755311066708975452022258918016888503354221986956657065256398809376585120383932854075955214243477354857470368053031710079564393042403839902723521863494914875997408834874619333876038194669741117199446753030853224641523375599382439280730607929187955332812489080555581292497377865963992744458152803251158195431605312620338185254128151038139824973372519347791212190989246095009797573080115705752521934754051372719789048504776664659650303731345968111874224299670964873975139013954170738430757254659130108532044352555295779696564106899884407041357420775910983087465335403059365236065305476484892703665653395429926700497068246751274509319780162820841449331392076446520452422348961130867258687701942094367374314754636334960439099161542974273362307569751563781539578897244557332955889649899176309957670264172238482028720277420998405394634631976399378634098397897896483077980170465391999444059546467001150432377062998672298610970132784988906614265757756851618977455699254940929654493532251186575844264543524343972256616848328898284777692997420743856160418746770059944099832882057811203397396098437469363409921141352295620550970088033371082254781170023477820608980079662036466839475109599796136282283805508428638011097252725350529036965094567160368862777450630968643894900809681684542263695839599990679228902780651482394045343984958104742996710428618568691500743644735354076607447829882629770169520567805673280123715825508360954395191163168100708294585913873155569734410602909116725118685071846047316303401514922429570612107734401771015882777201948654850488091542177216309623917533278750939351074199621038616605911861034282369073887911219467099082959409873278838136302699802641048307573864346086607973721104310189306075666579254741380557453489722048486972687644092966625386031169761392555175767027620400314561990071037274544209267100823361603751081380630285679211043102487999964149415321101416386812851070771248459489585033281903170426507466467400369198798276875045260545357147279479403175848668208671485238753019486053717420832627524994295920278311051712502357072494026127596714318127963253009578473779163621705672527281887886309283014279668520003205874896635960607357814756870227648131843119319583562307163730414576383489401250067449173171963221853862427853694411739864761444785054599205119765180477345038882433401223688735060405442919648387185074737490493289379308051871243857100227725592231205171892186097086690546187725408178764783946342667636356379782453988638580235130983672383633396953344481864503429308464375465431243558584308000442313188390116772488314327266284039526172584794864498354996504762654413344312665504688363494192037302902347962062131316273410918565649553087176558605534382253896082795374791681614162834633355777344916635819173910763330647644582780174114006174595132075730099217467183421811618140498372536866072642952909067414365679245153575404277726862884913080611953139764965018829191759124357207734683174920112082459043521815768393033785882139126499742616330291374739377646243054668315437479245734375988870876855909068292262791020607908493736842796229488095688415561098662316576486097567483938869932892359014302714706899903499114995873133274862267901855235216002949845385079617339639578614456064105673475072733854417581731806750898979150605652396542725847234889288801943479180135352855027055544237288574427528728185086881971247956423975101312900441382509880428326683945583037087534956599479519742669299043626346043888992823620858645258735218958563629990969247138106714203491236550477086839050392732761989119762058088100009010787368723687105796005000791541897942953487662421201688275404172282771154197570098840395979444905799432206994786835031872036502873643452110810134127861933511583201343026758911181539539468249050672896622638735089604489515927915603124443115659108268222411297442157595826564165002119974667534478769629140459075289326476090933100066599421486572274075097033626772851832906977019054290678778978919798255119783572433461781264737547836942365478181788710287274833488631780431919771866755594491290475509026787098438552186666418793242968869086933164204394246780010226458101583031361747624784952501700593205106240890935513727245937776040146964737762033500068654699284273166373052014837579166056000775953547189081047845821755141196489307050828432495559453348791080108356640015799735352928157604645360631095998897819861658140490593626757281579129942776869115156471748068642421724172966367327084849430366746936362592217677028472273298983493923981497805071387076946931688525676770103784723152932973020061023957499564860286764545661547456797737583633499494356343646211027328787960857331674196879369995243071211794620254044484601480334842402459054267032817710918487980640175974241706001017137814210953594890247945229341586169835932164564552523159168120084559033490041306997373093191804599180528378567330398988900860623728626576060422210211927629034744351711354855958115624426435389155090044222867505189831760467029446433258495159572778580553790654753372764803485352901473051242693541289723313546059617124917052965810417746609574582235340631936105030101716642039531302966864766007772615418231428135622521547237729893700826395019118598315051658112146867727382601194991784143890193902811916737954905724073752811030852672593024330297481686834170778749084892867303447596904529917187113455004561786001908740845709495437121342355580347681132260977707270142297690935488650003908803899939582069969630080424585575972263974239769808397744659057397366845286290794292641542715206597312047725820110397721469022492346039336493918063756259491929406492753163506847689988236816840382130188349521042942599066387530441620897517728251947669312890679087709983182546345404129629482469447435194054913484694188417353766360722489525524733559919463043386150260716040717267812453465207113123055112788336549206515535989996732054013594632867416887865830838140720190046031880487763903867544211008491332156707339757478429746935864234408521218406427106739782934015603011077933739720371937851583187960774761601790830227866650343387643764303375320316879727390138254213314658393413473083393143147617330666053710421045882665946422716791935477084398967469443253549239582082760544284791288654961436844797296929520013474377832874947465320165573623415059042725097243885073395229219921667412303093573286545375038919170881721800800572467423720167063430485641786207045798087796565547506324205033988103616324381922685152898655051464444779208629636275699983300764448052508364810918952009744607182685320156523285451594021391285814227198220864294966087655716378053538188590655051384266008821515231102963401451503863227030209541711308559027064814842268619575110233552490002132497918560074555910734807076991459628660638807768853436358963878222736517721627481132570519920735552438952960230981436565916806088841838554714249446526360425363344954924814066815926430632125792291653209757080245057696779908651905654933859374473569764357757710263794186883730430729809637790921196173994084487109576619785026509380457677184781956966708496230670279131956708433617370602299733474636152634940134892777813150017940191425158382517166381718430965406542827068369768413482963569789260955415400239828345552762273334528818360000455994816967228725908286591915229200566189955067026283804118909877009749958135065862775973606627394407555403083026094602429780018279475410528267871956194898953506964416201044052473649832169426343631791972928726802997963408598877210427363185696004081428196526622765659841858087612419158889484256534194142193025146609899097399461973874424239664541508024637239412057215153733998860462556673317856016744447879077386930448513617575170214685520707102814517929800866834106009809201047142975881912351089435585355289949653588732116062636090185841210415137362811109090490679223651758724984041190776708657049357081622088051528167270903401142736357775129202580333506472237623909603145704283392068391404342799409590760360862425011848854180047937076280263318053218572469750603993251699590947858640967860466032657680427750076239700399284378716578663295618734079375266993751527042016813321863988163124671747455896025069558851726442816207773060194519319475523342978045634116644722354385103667586469167416256314194675332988990859275688609242109748384203846168945237621873789115158981359783073598812093455861638346689425695322650399628566539832215487464319040121117906545858169791682874901880467955838627396385354260332003752035861465843470468160217087661642004664509193482525139993844363165172439555261291236417908064002754342619865024311459884002914596657058287168167542813340944963552254574530765173361631018771840408626041327916840624555928749401975318037205383661394632522829448612288111299189343905029520341742887710771430603255431317443316146970127268196591733897971579092212969215072419621873044193745121050730173553948432265444572425178707057678565466734063835580056890356098097696777739589900668380950678679769834768600835921519360354829420850151123970911757731459324378419520276166451181655438271742442439418048544355976219078585915151255840337078986916323728649891018057425334097159599720711773935270197698820302161067290616622513856593599036216411004464780613452254185887633849043014494520677096929531545456052891633905301917387798726420766033209148102119840206588045267585280255870034649236736893444442276476484092864223330195694703971931648509134956252382843778546949406746600293979855975808632387158384095746583453838505186548875290224502106151625824548646941581505227436680572471179755691433594538090656495978291078393632295981222429758740741375654049816890482690977907204523943441658566186150409205476700265140656598686558800139540040786712537737880462841511795715044321713234745653437983181592592897845941906020058808973434311874174454204071827069022699944157259413714574753067607434890272847469349359916307983854967165703744845306158075873822779690749966739200360825048662250020743690024589018095932685492068696433691533929263243617293957913135211555952999815927402308493509633308710436877697416973037158354247366770185187743203778545708942963324803457996807672994955947551180618541049488911921410995055817193240078545913898482010488388861495918898418570437106856194638074978617078611237820982765587727403412203585197529624168764407694436036487194620535445612674229881436615389021009432024739700325248551687002375769774189883817131110938701584857650296477894296839768369905953688378406507902739021253222211666837803092109761348450243773277547778126897608249957620736709334682760445104993059805128195180809812874893436366193880609769136148891161499661699187859747441768218383944756779685099053627994887740140429338919933222380655602832749046633077064485286422309880711100158775653963386324031358751851693169056693454786480476951756709961411075502958221732477656043618272768360118486769982251523091898621472362141142770846861661160575556484975089925418623759580020948747626109781388817353860315649202261783626152898420384665059161214179495891052925103689739834492993465105898285025666656039978257461249810693679823021062810376163866881534237433401792109043083716033607595940591361229385550958024421187211125006556956548467056998255478345088383477299356611977886500269360949284024143888538942138019442098588066376351391292149415041774099482190295367667246263458821457763318130841900997504800865867494412007492441601911421255946141049959129602644101433668521620081569384975589794023650109253143956731711457155339958733437190660033673611034524500872753936766128834943812209779824468769546422481887849498342585207814196318426258212775611088218109753481676748529605248326265989620006745533636756069437960343343523563781271676975020529194886702276459316035092168575418210395441750049359531866347299974826858495518700941251197241231259624934096591290590107421051089906191832038022987157707865632327954843108557722967734101342892677841016956942653876002294568554206671125008758215879051915395074918971087581513522243514454843937403859809018171576096872447085930888041743797009569024276428816153933251279596794898370071402406000272689425123824351120683242447525483458972112023414373401930676427816532474792452033163206239146580778866001132231018653997484624523862795078295348537961395814772615143761878689225805197474150939233929323733025016329912690100640356373534156572541715725515679745952779177068384129965273541888320284673490797924274947934469764646992681152436262413874897207447313483160847929630734390517180517774212114957663045923474830868862235601787410246462358824828096066410723382843764904402073376374377285375283793044401261887034258055198700259239147479932716135977052804420489565713293280790355623835621983747128728053691831218578558574486341513898517731204494583795239745421444919746570958493050756778245513878302147429875454601926566609369905922201302167323798966014416870940993880053205337774485927142395039254588769042522876427295871530228245102138397684206451658108791332337333072523027360124929058111247650252486085478536241220918746667460790085391017819054236760974127887053282140448944345485593303823752617511316784502426013425061673557336861781283123530517893631858318344027777709973024815598242937763154055444132139116180831443355526654518249066742421399002183568941783593487758997267262505769026974903980285249030256077782573420854955407693593749744611187270917892523735170037934117332399197242674711304154784993047910101081247293245907766097480016323122313136864685537267178866969678552407424668209505697162297658369428737049788647031987425050168682795931826966946078716736142123568713477939347766029020766183316037637528211690498479369276363442544517499796190625729196893959422267195784292884100952735340770046542565752654398730157563875471688966989780292540839499277657586918841604096216991845642527798832543386296571491907386063607121182971201531186813413118919454322605609276931299005283675345692726416151173865413445000955815185580465113089945915339632159072021832959676568607355651016343116791655344742515832688510786365586979284750394262319122957709808651376427070441744636555562161467054128183175393065105961622346561388301248309455303591447637990902871106747726045189410593992133844653872175126231551612449935282274431094380312043863091285020271539749279104314593949333614117814668876522728844875332346807972009528074941186134231586538054544323849715101462698363807434123537023268852567989840359478236845116077547789695382873481734720226992270979478701300334137431997190539027308626010449837675631868123560848305617358197312565262308289022486641562166059854798063540649879370202569450513901223288006860314365260857658587213334266854065822914878589595407814830576194847984755538049583077177575344794150481451653955241457928386191848792279933303596415588459927296956121737986413033575241307110810742492725844949098611165677199277365113743972348731179696614907006761588870327139134177187940152539057290793300678461277306219410576547253912981164472639785148303176967060528417513149045250866374141891327253926619213739467768235521735453358469523144369784054441977955287475917720563873076715887661339357435215897164552980310564639504837014776197346863223823057079420409871782897148778448256805512898708818002591151816466907174209151427295863774557972404253432453180767922055825424677060631775431776968208906544986474207905702195600330925220912611297979245951664786996084661763608056847435696864820699906379609456078417486550707140271204656949483672684332889660693374895318073540373158671030100086962967858212983888509875802499542895158720511317999735061057412857319489716470649998827996189418896537418068511465700332064838916342483882602835164810135987535385326164724552514661434410034479976915445521638568568119043355663745387357667444436011617784500852163396048636401991453933974301069461418756252836454846861467789175153320418960959761358942117832596709696096976452799574527547382979659575474795081030323713958275040455100489344378125471297811497956438649385499484594200946909232104280837052157247319412103215148837322592223826314357654754215659545050915169891828887587072492706444925867976098182834189959434237114625021664386164735511152813741663024158340739603257267731800080292050750726282471166596719537331529002426436142791710923166708274410921564910707471573270246650463026499870491320469385782879936465282783901912313572444469350899775581282128196148905686169600093357428224127384050391323349968187427914892176816060822224129217965154187219659120433903575805451075257883128274130805376524818625577136295766945142694097135882214234089310414972657629807317882775495471553067531378411858431390856718672722989435280435999959405627413267961535330478795139972366053648429428212812500974620593301032516254958609853839836731776993155649568157042816443797941538381516190082324768575101727203401071851796843383759138197427426340523775766776544311077708357297865288502301115777575690868083307708532562517224765271041746028443619386767566107800081349186620656075641323445350909323651120558781601207314892960689442716161036968467382091017863633873887482524743621513868757707518228220438225991004597462419369289670209343594348673896762078828233576181746775416178673925845300394038290623589892243761935327539487688618743512255731459597556323413093616827551428047755101857765324002170649283552047033830511332280340046807183002858037174783393770798261818997314113685735699552568823858028181600638785239000654984635467498328527627746332217267675999815327736815038575628778191979885570363613304211131137972941355326032957054814887746646297009328850978876715588391878523695925257455118971725262398213015200747624418044376614945579812200722496383484499969195891587164584215186862485569545258913033618888641732714013855279621030448348401169457580094297808783291756919008529879322482453900652924455851347290598352799245753799180993296439991631471320145171884653689056843056489857567601145805173194472335326425975237736813855518412085221351971868365966190312065908346173551309937215276880468446163914639349432515719997094170014664459847401468765786836120133411059537850882156775679237322569195673130075898762529496085309319365931806647538399755137151948671618064735545108478310350106969539348983528722952879286342090607953098990136405894297807623719446556550795910670725245705681727229903421155863510061885333935544593204528333356948581155586658289770016056584243208050315965622074071701769191711317857024582266288196936100861709828743374404870776922783885537444153896819791538084569959925075157977708333194176009266805103879808907253421549742645055282988418905061506523943424211415530312339210455442606000061038948127324843707114849923467377620952447042599475306841325277494414083618167481222123158572319065659450650655767073703469102377897440795911048768434802030450759248009876641736509456662560208176562308638409419131417512127666572177186865231846605982950032588210371558390731309343512404689662298687673367902054587081809682325237042422637017319892144720102960800819818982438475704187197902276865088007499291974414425806225162383577937589347997091355238969899324190207547482629126123947101328712083881115524936592527490974589118812696506659864329836625511628596102077731322043444008187556268065496343277614389494410719876326921148794873288592378391349072354873179017057722201362441756519238451869502260996202996322686838713023445555966263849669135661197139780745622607675854132224302510618868044921783974534132123662440366935059136891601024210802340780593803867209843911912864506482008205110704987860674012583230406035879871105361050891677510946972515243200928158260603159744122107580404606997342429475326337992478579264196970330593557317608104262488644025057760196492008075827864008402741717554794143012594548231718017233000749538051782437413563852041116906212655743332459490393050103441678565073186741217202566212529200066731615862864659033624082086814157367553331626256804399368596216730171749874814492071554656056838998907308914435617990880130603850476943232347338109695753501874020905803949943783233174385299419092638076912463926424932665670294562411732660842909019105170233376990279620647679775141116300197278998410970721548091186421065603884117081557691870425435996334596560324058860943849090292876777921755924404447964140254517480319384367236876061432855469613669486320089878014731418991291852549090489385648138974939455271226218145252206704678779980271766910145908240624815792604849186460104991837230066963286730737757368799514896011690958258204389475892874558407388891521882397198956526531217411802685074184685360709195967757702181518514020122053452266129576109532745210164894391004291432809365771197964257122430497246234865793406594881565582887363599543597961108291360831928724898785605123224237614094258623983495261160383274930942378022166938799525227656834287236811467373397603209418695647043031547149210000274349894524816993357701681691025088851007754722721162288898490455524484949324190068729000270970652652061430637341089098773615022902167132325752274253490534878789442019022952039590966905876505667154297308664502175677565014716732798906536509961976141772939678825831346656110396551351459140965334241778839793139776839160478718753585153005604890835899043915843069639626687006936686232175435202425670851864260288494190314450943689018887162006640479310355659237943185388690487098555064537039619943044862646395557206299228388773430291796235922281277429458021722476291050880331286536930939903647638617565315540024600275295208200792175392564933308419522048396291608812065709922251271897217483943616224684620622914322944383832936507390114252947641325088935977528031818781798144618098727713418729369971054347006916518603655140687316988307155868398117122996447860353373546736931695795045047708621476322681356641251780288713538757415510140891492814694095149225243196634591391579586770425680074144230028909499552266925522762266615387693617485711579578288853242036556873702514807771916448348070174833802378747389577421267075574753833191090567590686356472994410749043826461426795177656731305876691600893545772629788271894936733982737717798807845488101274800214388444427219755291260280886935077749072323036904335564259096618887096958898912884963907037069566651589530159981705420959005426681921406737824386771414413517900445571118195765812937821550837851291382771627834802493256536296916003932599417177525517464029991215895399564061181146903195067745453581458801244665457893730952300979421063692439408250355274031993648195854547420707560205949088340653660138218316336162242900472011139439168163655072860026256691500767818589462615018031126344315444917232136399400764975569103991146785699160540306594158298935831565375171326104001227946433666724278880669029120321365475883916074900632194757824306235810941409177309210964808371553144219787643972442243468710809571902296110173658661383755946368871622187382810972830037193495322084818478366955422198416699556487999195576321983821826541518597362468119630904412633959890731377129822298435767225096592222627741940135624081023342281451461729577801087040535980859458226163518194681268793816291391174779414163286655932103488318772927715091309408205578573678133750315933719538013397878056333029668447097067385252775011224562431807100489508124135179055653471321400725716444264888566156923565034981050472804377523925594680868439887932641883062827092692901353315089547510757900103990031771413323810236016134300536991441722117631772222104654033686895970340237741035990128445792077869240996850497237586560841736869038792710826902046529202693028458159803314268939238797331265294292161648239968220095897931166994103323680551695299347187314357432684230650224441267922767178669850605321010147259339983429664907523778386869929450901106399395897810825257310977883126562710416434258852813183516878788981353815734693615921862190509009609781415218067593977361992205176515925746624848877678640176230537500128619173611474591783823553965685017714258864364504243580296736067393691218163096892868987605434196731828574736458423589958025197523858667153285616597662051084994992965222319790016920501429695218237668686389101288797173236316749749643099502936909952129321609837087294604559346876328052910466130756837572387415449422405752261794499020148596088924455171292624762792323115555878914824390431921479473032469130905672234359064823315249963522351917125148624437559871334543240504068551261938831079127165456105141395859382720998459376782102854831865415439996670396245936526236553324792797014869691726740541777351580826126466381485206496553547404092465240770713336698895402793810361547414948833475168367513679828613688251266845676197446775397474320327320938402283090399264321754634956816085848932444519237637648071156120845457564953924872518323194144549995364239348499249785196933238682229264938126420561261132704919228717416225287969420854693712151327214359219830511149861671429348094300328129888045400011248953844364333602704488543411621070306847476155546036436669272354848465709872068458987158222588492788779673011792668605650401955326233504057688559397110473299400396669082216136969375160417794342919066927546242619646445859768542595494864529912689322657183216836326864298259832404870691401519552886160953354689121051262455109950458663823944473238414962068278645423691045185033628594504508967579335113026211580535040367155915542968788960385941070618957009506247798984639112660108128063169629002698628002986363493809093199751124649563631717962679822911831047763859902501470705004092239656320591406970145780514284759936289079591344310986739618379468534810953046876631941094850702179408887678426067726089465943015620864712090872981954335784015819590701754403513821845047205726141405582898006217963805323366192489132610850522563501486716299040657046632036654650665650612664797071718640015173853841542865276723876751987982865670166333665232362920554845722280070165031751267057663043398026307024711141731501230472974804884804886047856190746504453916718309397745133333963323234422509857945820487895779286316345984285403537636300557073522921373994569628923972179817126028238101403331762377164545618429315014231739764094377787998473393752088844765251884874473680905953135157098498307414108496758195477231939152836819894747957853249595431014543788538179735814061037287999427295185858830786474884430201278011002747825754063052088207309291273643055357224634638345590768611977491949356430238531385952748983649221968028488256413682435863111689466156469904249934311502743424661184690110280248617507369351540468324337653668269082116964494664360732116911908144207287803408810733199997243518068696509966854325906637925821781149140845961016174891606353743016430009586903174730867789068942314120975312988915641448745342813750281457299334539260124159055878258513320472651512531892315429741565827871652178121749866743837451977107778361224687530585263354367284682303539037440561143183200978003514377560795795327365726894739434430484236473374405686234700580830542709342525268654248110319706287449755209911860587863001990338316264795660018108004188855018663323926870326503808108653404866420262149661082544632285621257545653758212691359320648572876522716872089950353126005698719303863256337630523477865027366967070266055963803731730743603951016408837869622520922470107102995367240991527763798799177156692263099978027882918749979647882048801701383401417216628726963391698071820962606524715079340092415761306881580717252866469494961391895552375582004577158498049855340392053905378492752703360023987260529550535725276558605495009282036273739764825474874182976119420179163554881658974091232365194410177232484465470738120207786855333426138186144482903795486509144430536013056468408591671461358124820233906411099462310720120742344610647318138718744194143671180949173716765497959966664180696166967818400037408893782085272440661396114556139866585327889824456077046123951793085851713369861220183147905333804120461963078176250762095098016019820431429858031118886570997399659357322766736463399273018380997585606584978822681886889747757281633351304917880457761893960167543956168374186993993381999674095036765087328653094360329961601903627877841418294028017770000051655230538730878698357446441773751660855540495668418645321389670377607405733284512575351750352841324808274163948955705901026767928814968193427253010906529215975827317051353870674617377753562082209548888589155947145962193482726260179614703402608248914276443313801110747803454654232004906713681364341326319294094871025205880048150058142727202556228051348335589916451743949132990326671710063911496989645460813461066650676575557153355170171780395954522107001672648606820073390656454218614757898631360799383874124806904227814435756857748533781935331068435429019694591499201404175791248756070335448042548256180866641935431151139108414765270210369221363846907035241062915396388325079810832890713150205034365076636726897094849959113530324080133444944364384029893362983647965332539257791133249026486749426684319759117066007756574312158788741029470790582387868341016761704994387138986867351679733396594331223814917538909329953535520275394206962665229757968971713404225665140735190396124384093025031070783991545194638264949159518128185925040794939272827400806176728975257917072514678303639966411668609559298519749582578554885366976235388609438636850612203644089447467376216031443171681241960942379430362654422169914190724512944312675276027777154979407017195292455560650056155764834775731119930246975031283496000211790031067513918845224754605869332682642637729035565408849988997862844700529894674638462578846370991968264627564291305186309310320328046612537009271032673209988028295536782578016813318569310355757025185212783455527561329412411440058684613855448078276509268863990525998064931979004944162757396418739645179342891457489950632539473211786116171110124436744052700763519734297788237537068965803644304282886660579178267715571816288935927538493012104939982383865791507312739278429886527730194130005886808592596351064321172472694354755086105492980981537923564440390164367586540961500935631124854472835075796811862228460971525883543080903783559421661116394304457666725115159441137738752159989276918080786781095495260705323819643792427057018019735490585587167043128528652280145756935190106917734742870165598725113259283585706054046088628011512276842114290262849149468543458009084378542966447708223117407212232265013836503531298626627180774695207194925345267376891213443936217770863646852167695916225186505582677767276363126378815551565831558724716699331975612632710821233202031527724044551713640095996296035937380180980874349656215426248852121504831119512884149235333870324687466560845509345324454740695396849104295939430693751917266017808413218325699764543560506545512210010991729508875709296089766746741703592208123955436563365149951363284427106079165842967776633525444452524647328995898302220434624508977257618491914606688323877233116879197198686625720989510149447447433294167256544602395750448566394967088056451872439135759117919578186982547064996574773517692412914572731997844516153745472710265555631804937244750681158406514368280246910504990120836863375160064406747787985256314659824846351379841776270750785280418820311716664459716074044920887839018790368679946640295041520013082856915439958343467189074234563793884104331098507750482911932375187420285354346222818978123434598475911437463439504841138861205643991474866224330194983881937124204812252384341121033174806882045842007775150978967802621149228622428901242486513745647310161853771772969845629103305212447633804459855167598695066312308342610386088335019794916412054033640711617577507226520538319197369438250258791238652783927209823122431406875136198627051240308599219867761108287196493446544697495983654901768695211620394266139705998216942135630474038291595407555111282340152392494943294741736416383615267335809642506609240651656179840378053181896960321978941116717904966424796608021888692083287701746521449544235154330079444039601326726654207404493849621119143274870009487049456725900188682055401339772488207592490637821224973366036890553911367860588862427023318411499513890769687000285736955224019895591403145683821093768792549256556351730013393049290986656962654634126784578897549605946625561741670295597443716463430798000220104225999944196630180580260613581041932583554754359171308388271438933011400200102115950166456588706756004850008817790421340035632330565901018308442903569043884949512291596067381984017767095650451842312849682333292481890511609679971557317468386671841320297507446419740279460627669142303871932173789943957910104085105311533305136668251370946298209087649369621139647446234317306887441409898237825070646383471454037527976676153356935670417405495765604135213796387231972946050044612408363011487200932298315625182843791176740717779992381231668660267803434873456342780440968483603599677079913224336446144884981377390621925144159035728932402948816286984320057447917462313067350962532547975100234037123796507707092660623508032836750032890699381213736356026945349345556441348541680008831073210386179253456108021194354371242297191867211305418965631399399376942337082000871229458243362356700572882219447824194884341579308246469043475156515650254430382281466670012921186576812072443911660018815780967223570387625062180122124505584720453921420396469216827812919888676383453272424792697282146992967793365714930208511450315945941151684628126065358138031583496962717927251787312461795872903966809904700183296241549899859277600105233154788471803322986295000113356066122741977570141537932365321637460506613676517509115738922242834012194104100938933510595705194596687608293258140875809502175308514745860289286168456068239525722733820870993659267247008893130497076394104314897834578723347006991001309768395167343959436672264848980963288404452484393508855078250580621394974684849207651922927402087504496374731437802439627149866319055683880670896928919292582639603388278839301889745654674583244666889993076322700543075585607422404750661954672698368808927528412115960819088486089126323544841118184555209190630595606717014891739522087938561464247091849583840649829725821071593883684161211265930433087245757552137477169048446435840797760119408097343493474776988550218871878162834011626985717583361958132855490301079229383641553118818475812885031508647196487508425344827942893734184367232887416793883329893223613157985892916570489366732601591856011912894624155096872698655002539733613833413466865679100201990612795916572616860523164316993892785307207537163707804680494431696294378201979901994070691801706445202562575102636093982209655096624122667823934228550877656344167268870941912208651216341574402968369441570154160721730792493283171428089346579045812248252280525384033233675666894531949487064007229768338560595852775024321684473890893380972049395906824848046477489190980079014389231450864877574727489531535497867395324477912290575464466781121632769509542589684501930464617535759965113057920402899979541449626941671516604587140695039570413892870480695792783458633825251334207225394114792348745927132106013298222670090490406000663705990809192567684056672480859277673004516600129866830374015438859399801294857303302060534082744985081820160039888615075895986884596708520930021207212973688852240455656445288694419788254502445285708328538044927083878003811215331442884203632176506476130678698381731437393294075202789748021174223868613038820270902932874739210393562744686990558462727956094081109339082429367759592788104388779053928723069765485629661678310449097294086836777661672251713841359470236738671881379709084883945219654603702225022907539082753725615240070165541750000977167373612811347823748906866133677707582858361634991669090239495372072142904843239421475791877530550413070088872451771703521215997055124460324006778588261128024786698605670209965190095126003509867519843214330018973672010900487467284354152331873381590859225069143784072228316368498315900660245631885199781333312374996303267687437452083619539252662829131322171427062552933108914618201817411962357043966514304044800020027780661054136989104040116129673650596633405678180693379505384897278483086686367496282626303892801709011283993733464883521588443899303936353182472041270170353833312537531061861647680918349944809484004703576488704892484900117134052613140338633785348492159606826851754407464136445342336626502605189885988282488802729038909786358018841495778093385221780969519249569559611263231113351616294819846215760636063008908970210604793157665020387539528006328407350277533719859586006812909023303657318462579940500123853702796350287886321321265479119800178871619432780237793384503106993355911690140294613548087383423491824975789521911151956597812878539330443172181468045869453411820972496501826890706547135744571695325984789129603231079456404487154662961299217259456365611297811153037592920656989397562523772783738939518861608245084879386135684162339305704911061638280848490096904954589574581467491316164045399059014916519072392749325428366140260536399144405132104623704333221265154519830760310645252188825323688302380012328632563245060381398062188941887418845164406966411443150430485855765423511865841608531352329252174941023214329557481947248681761973873926789647933253618368311896728621517788400004073788073601804382680000609098130045891060189656968761839194347451212242355540587708280983681187387853499452482425943972108983293592229028135002056199780052805866683507938006818049150458361171670175595126268283937032652858177868502770042654670935783491401017936202311169693281762363053342090685954357787525682269687259383380651446520593963317223059728391154003151679806572325845568786858182343785339865661109716449003300987132321208356122425991938384819298442015985090839711141338912405338492966877676483747687369148736728514358252439550907137759272806337498049709262140968208926596025275258290893397117925074581383100422804005578774492007138472687483497667895963417931496068489067372102699006222010364506843231460826062510944007374196030318333443830289590388246393633476038425684614048396682199896492210597140574826608690562023709578474263332520249657231415304546039536853536705708923697350076275757544213374378018969717371598771404522385060348109401106508611775222926468786892593654839954584752333363572127742846047592533858905250979645036587701255374463365589744764629145576745587474691424020594944764345749110010247966060282841916567673028599736414478645951352376113117742539268545940511413069181484956312118880971442664811598036903763744345835582335520704339316572652338232428784893142399927367042036476654280076576168293989197016851937069872920547385513923498764869341917628597584909769232321472887345580019419908563577554752785911407233232641998896028059667419473611472644706434503633013931939930243139250126913440380076801915209082690798084922703386679963587299023951797250232033182986875128414062982008957155614031001356994813431930372120779398045320502483841955071026619948958954496768817013878150901069209267137007404942788667293811507014174739824355433515518820254666935202996743630528423484926659799149106487006671795918860285418880935061392186809272504427328647580934929968241956017377841340852690974285036208726105482835177928246426936655065695159551654144414186790852970762045451861246506534116750679025402493489748902356763996410055656781028386495927287403302743419566124236281061927653562119376072786142046713233557842985377045411767275598917584207395112891834812426870180602921658161278852044394205025744592155602122993753709908321228318742064734368282857545969528849810840584733283045963709062827016907527684443431845623530863801291607470359902058500869661609643281719748813288312147806127857368727604392176346477988780828827503036531868009450775286914454425572865883030181210152934150937743395289848488457305213139972230431232644691406504104472626013920492478994436005646017944424483654102835687321928990611674904422213179814831898835096640863230073425927472338381290196525880512765780183453973910670736675592185349620369692387123358630062068753561900666086400304336444874356513772437814623264288034997346178670111850305691359645502821898738616634136456304635085052603128123205761155792975859977518574806783554546948981982792681801778268774067765383218407740190725229668563990664245029407557412436007524788867790817244203968495196887698798126597503640606031212128669262819017194898497675208009687461162780435850534312881676773854025471287162629013007935023254212391939656776797839564708793385639310607032320247361705542899298179965059194747706571678949083610780108882495234381877189618819070280685311573803568868776563548955227231656649592972640320884267341641555955370685872774788075240173318112533064353707238068461993561407848418293964704971159166105263685780597616100814118040821773221590714569700422337073457665458587631343431049236736343781121400593680128057823392863042010705486877105506482462075678024001151474262120946684226958200297395875332846529074050632578784649418149773356699799644327666594984562054757096198855291474066988300762869767903111754419180408735868187498173475801119382750483658601088380245635105679437034985613248771994368888161880207286164721391609848971169281642719825728689468857292278684928451738562768402741756495972055363370318111906084712822367227851406845776284805552697334144432512957685813485489727556072863683821609097509100414759710763246554693772673080275660430280367949699433060478408338887514701186067578355113143187321236512007471335095401208229320434636911410691902417659108241311910159024639472147086364804265167920910866209602634664132021000012839169722850312153006542917564338716540347394147692693366733861429669024216052941748078049220481623404579922549484608431005280542689182046363565459149274096971697268007494834016807009436882403466301717813977872253638828961289095497335215913519646524268196881897827800305382718440674994878336881712080521086989897503017021031582795233305957042673635761455524119124384310886254441528165573127328257241538544850909844157756753876588034221332667600861382438099347683550694035751699864217679547823611021762350187479833695521217267789169074336893865617810688569955462053533911966304149438407875170569502810933707802567815287876134554761540014910418638807614887317782587972806506990816619976662242806640559039461329362436429298531462141699031138944006118269775708360821116716079985019293054330355444591640123346846262483445652704689433616948029674773044478545544801143839888430013081561145828733495353781914629094014949116263572343073491465606586804958391688131729314901378048846511578662411188703606484084626126919369685941145732402242611567966085995416105990441488702775558420485181401766146543113669264411953951681307077855132461680157974806650482702165216769786696012999372145331634811033393901573596264921656187014954541184913383309577057728273143948564155032296080778796749786286327815327907105700462415063477174359012300192383297469875958611406864740755247447113931628192088613649076233092783999775438311024708217361596064980096581679687364289845166878440432484388590445945507618129887184325253060581529999293117189482735907711015681765033320365218673070012750248310631067287989605412315634688272638195192263360845178322267275164384738931353460838157411258650317658576259032405462017457872392960584962142638615032773976036748672924601969158636498065352005240175055300936138410316664417049749961393359006948999295745388596139462645696778734970487732767533812058687850639261971740199402891030603612167838896298676565324306675081265744947949851924881827170662726440222266925225828046290591520020800212868123467106929575593599372633025495150277120106012970023234839455680794180020211268693447577978034039419241075483824382613115424170664450032357803274608109186264497900308435502700643430615167646313153209725757968436846835272023687402595037255555371887593592323912875874897342515436922070506019235035936335162446541019801786442738132116335355868264080493203369285227803028353622877968238953280815984449646468314017281754282695530030105881873530250474725027970228999384421380068107424769145955830724397641616464713818137317868407769750610225579249950687774831881142309567651186401118498403432409081194268782899014184019044952454473883411862815591790347066871385168598909344984493714508608549569961776374025438096959681608406934327813580344417876983722075818127698415482791796559576754041000365098926749734067360217634035108796086315203216536398202975183007633590389910123717902564519132608561316162521362377922329352077643610375285360029426330421130996194618083046929749329109379025305170879673642691563589255604565055072058429955455067479136960623916590742792817530472049257889216814246689954175191225493147340268840060399666284573435815868029381760587004026074732621682565811066213542238361977952386145178507405895698725620751021776737854150767964162304759449447731852612065001337213294960457554678358060323532033352104271043495400582511635933971693576128075820366883352819206225848901965959537583784433306130931870979991398666638057602354189420304839242250449800254302908043209388371120923640614482939022536154199234941066180304422072571655535408894917841183037167620729806714532434291203878539847142891561304566020348112835769042109706323905028401464870485888125229432560918837649481466246634955737269508331043037074212249454776156494701566789008473229082489482998625164736274977885237279791353767619625611449305924732987043812316529739897389644559048202324158508556795819916474880934965511112988178901376648306442138613926091554455039804674290839867941807395782920205676897963506010180631229704000916499075475845401644324497256637197352465554870129453313828375219804768081251800532550502116836796379782654658190582672372580211305625888010373025705021308007239421803816970296456625466297959564242289760863896984272020014740475629706081585473278157978977227734657656775138605744173473547354268884339916330616662668151818450767943460650789257350290412126166385925584074860059628947729411736217266480527798888360599094487461142218586628849432075380282839496535610233240469377510658234051384763150763246392758610297028338582543079495272910051921286308992537210241525292461977842918508617309683467323430680916230821607866730907134066247450396290145386119388654762980146642601605866742936927046618112593486968296807550108226237364015822401624714628025806275877996065727411974040662598457568000920632090988677070689968159875266152028363567951347921739071996291556882400914559516419420584453812325596604112108826722120800257908447393762742809801212887385829791446791631219514218743646571231216836282938563919979219953238341393662121764476554411164969024736636523876854183359933206969365228970247295572770507553167212357280536144514745778920305195653090255671921456025016083588703045703991042612486288811936108569587555316969110147366037794006827825838292973392259305731628349722722046736101227993866363065772299665273099238004045885571172660302798445138581160207731456898184429502407500089113667056762715565474780413803005622435135171302012619936274392986561697372562699992928523209088712032399446382797763353516935340831799061511817966400294163744875770622961773525901513544166874963459419343389238262717686637244881309555031249952110339822325788625545759224129072550025139191921774540049669531728224474240758087109678852357919704441905798733230672743433738201800337814439145538678659574140900794168033282151912771055239576760447975303772769433331601399683344581612480452406709283380982386118794828022292173705115599370879088679984288406929453442468012834080802157501664206556603217736539826434630500075932204645818466275552506284174794979589155231783294274127897381271319357314627210029896929305735437242425978024745312985870836225940512758318193957212085968528215133030268766472200978370896519737447711676111874291814287350677560017025444450293867608394708598284897120993524149934179441320303616660356408481824110311825706332311800387339335100958421052665287828065460618628711130770353708213220031071616217290734866142122569901578808372561867656457610532518184575372329190670696414172355172467872714042741306468267036462805084636366795564008371983457551830028160812570032635560258391067680414563148598036562696975230928773636185081671560779465678116105439383589755008080332167907553325490019054191676490047054902558238797122986802846315361931518056056789983642002270290413839999932704251820324825737646839217555208775171008462221224612082228420232368092709117042795373816156604929738621617510636419577621745090930133053575871428897379921108552651888900152804225078339718629685394003517759190846112849569639653682892833420787131951419114410227446003686364980245911582054380370258359590394957690724349729592950754928623624916314205044313469455778140439403662790968360474534693299967289920438409156298403877032379367450027231657675773868530719062679404573880495278172462873071386306160385498458918944879063302592771137544947830595168651344978600748262039443327635611541267367392600149421885970096886680489500265357292335797397774104639559039423930054653390975974888028761977598907095761049117161435508363767435107896366459493511565740463289546790164487073812023438451525943308773156548497229031036010645622962910617234891892066412656248677641437642255464128762164884296179545721817146663835119391946903314913038579676061562976796392106784864926514263494668998885135527276458003573130073985149302235926382557760062736069125791742306292771876495528780627307176452975443402022775409374858703822734869140191954982936198890883116640925100974542663175364402780852583607036437105475746460259540978046248243563251146657316414496817588958117236403434323623231079009455706517374253340142268301268919547636248626179454086988982673791963515176015190527285602221935901242854937236807126473861963314169638831303351489870235958048710404467881270382758365421398063382860592615385812740861304379984771550206551820263555199115207360112388134728407984708566817496892974571109939658005197012497096711627799850558791786482423577080370617599406542947354848297488614529771378257110473203330963871838976309689744227399722346776778735890617876223287280651736471964805960460155556817096461535399384900932547401781791936484302184867449601468389202364795415584143943660371635549416555327371924140487629405540883240872086342805753714674351672849597442712923492817636988742162317857805336648073988749129309443831667291413297418817759932737799683057343296518494998567489620948528212019121023810756415141295700519143631299955313926743838060542473842475950522006752289680872055414369287056497877003873698492595610704837444975784301277827744467147319714812434694615680014201045071247926844936023504065392077661422873929771109890449416335031434525921027313355003327833387182634332570983549102266176998524277517098095822776228061164732930513049797425825811623515186837939006389670703357006517045438316870230814330473121197853042052780479388008404520958306954376169061694933900752648878975527894138220576429224262841902192504149745596328526485010097630574598168956109042437778639012020407214629399249141185939699225287337341793311911089391759405082641810601033051384384623112481540948390111989459091688880744420576726344332015034018755340613193017567988936216151801498907531088782014976909615679685966001322217368598133820935102487956606153605741583515786793131068303183688766930672596148601025424721676231358815579336444060627799617662911305952963495239771482672004029408999914691995108808825253844471854797058374613672419906414730173400552873516702368537278145881722056426402282508427085017933778039047212918556768160812665015263852265575079440843427107716988169620884745903406413401590404302421242937278535910423523154649203444558544196966065819270245669487010981353978609440365866951503468984561864439799206513950105847976033070526265189666163233342772691383054710238826142855344143716190698842839683669982665569335512129174823705467004808830020465774782683503226287783692893063678870431831366565991373263578005812881830009405819863440462405258288570512790950065492561159762458983301983685721836572491859337413250760364701940332890236347545847838433723925685668081920417714088846727296083963045422895200536519761424147708944403967568905334543052776588084500389417113580181039512060848460242355725619253582556123339955544679985218422227523154567805901772022754808999325441024199560996514542564106908162565493280198104690593599659852714882392085234314217953751712871130186610510496763699487858280443090824888810756719637230754854743723730959168659335166031992579921273559845472741062933129827418443754918865222152012521600819117989615201293827860346392857044751520569553329707001534717145577772048237097410831042144146211342535583094773958597120357730652239447543890113533625066805719193470934516736227422392756617011749305400005770506439544966976547454286808023813799743243237338062739474239828833449899000597912095130576871702074275829759817221907339762340132183238251576789634535845157551723774459650716441562108031105822948176192065580088460757406301908325901224194336957613793565693620591643137714601978202120141111007637699488954798584840247611953665305005230999598095095581435598412377195531989829064740122402366426472633450125368052851963392463510867668076428185348592396205448938767799411136885166650359033047650243198022867854763929554300870486567245719702208615910150627781425457758960869249233717126318278124517441525828337969856827373857473618412315022382411428785466256150593445471932736942622457273109304182334064950415947184316667923262432479351881103471147706757681101797677995555127834003534970645008657890012305258096029716205119037735835263615850643874592714828269168516461005250577353174815868440192523320210084495602341607731223750547214517370242864944452443770572170175408491593313236726499029390403661968724940244390555575596394821297180006591748738818349159359795144835300814348480380138275964178189701532741198831814583079753916528738035521983165057031359809251749047532964764343161008308086514364783767640515052915315733860350799901148262421185798174473594333385376526566902549531950260548074867042887700593071030717424783118560523194751172776524877337139177161720392811519916893722389245752200572977898263197653581764150182957883935121060270735783752321497643629494688834850185020852503197306372562658474723223672777105540238848680060986638434322777921133109222029049695220388709135240405140093399370272411789711379499819760664949111808821285090872359627867757615730062803713119866645952823238974086919433760740516187220419628587902399678415289771075587212208250427177058780194431037190889640877257770878872121758401878843391534178791971467094170789239439099580785814568853770228847566096698981485640208626919757861888961133027803806089772015868239558456590811183119481611906503705444722431260355077014325413395508959692352969477526466704528862060448248088666158023958339023544149811884983472083925085005316968022577889219191117525657609528175139443504845915088929545200694479781608301699774446740814509548795871609185594279665609385794393677129967736176992334224190463302574031741841827172424486998881219290285757494439839637052609010670979109220546866369317409223021211582055308347862653230638118432908700582561111965820242377633778181546241616938567437679095311878072719513765028309080753374957062470712768525108290560680078908422657935475007110248622325547341134016714571619882916385926529673961074476979232189956738944133153111039606273281392473383128113367471703740305381264004030276291371311660220109502787309199378987238190320609584875066127447023461725833754419528785385049134013718523353555539775653861451263662259169021737232549275189957622295938664987628261269987322089283112195456798315802739850275981458051833191008075730387658940672985674987043333120184541005550425597487899933349436099524186424855854221461371472025830996138279723912344016028900095017191177706605937198060480046414469264228849943482560283883250033359086220863919895420600152151734649487020877088317623826816928551863472363169205620689429174023501913718646913039563997078224044363234679256437735888901682151385461200317791558316147878322051134196454298586435883387612585162139083914055272802398706293703003816619865847208845629452448610276028265941125308276629905383005792238510719868136930473352612124932462274492129778810569487974500379238312115333563868252431395345423693978874006951698878647776569976896191881274963787770330930978928975097660551048535304187452358906506575407429118731575908302110690753554765415288115569531119417224609676256659680029064088278490604735038504790122434254344411948622355060734078186530556037281665745724966774403881575484082119576334149106233768116224310181308474224385526459791330222308504514434611444823918282968999618868466330605616671960229330673885128689043333340257046826084157639996572730506767052879069295655298485432845694210434993837263463239797257452970848859142944849030356924429870996965968629475021143688394500582396686596324738190442506013131939056951260882638668146168942794015944787354536615958762320608348772891056110499143148873399735939208561015605481853503597980805767369946110831341934730927530879740987952108667170156829831916569112154942618997011484134285463888728604885181615147057250038587396623059847288677040765559309305784774199712998667714768036215932609258743208847048469118715510371276105425173412157691116695483308246314935040909006898041340761895319169634284358038305834381204227660905505505764370727484456643739344279358778887983721613559130712053957610042302706421708668181000986649326225662428132309667560231611335793584215974602463583505233962802628801578227109805384445604179957870242100096024844487619795781286081501754249291700148553062192712922515326622881573977898171463873750926410497619707711536253954929000263083209773806830473863713471869025193213823753143174104704956540012239849138234174284102258770548184063403317573628172658973073733546074603291694395198856466874414731912590859732440099719428664804460278788092246707261560667424339940480115473739278788471803772040834332880557101969983745121859367529785075698602436557814097864380705141793816204926718480883979938490866627695619992161119583686490796071977934345111431344938210768670751836457957746142426217433609449094318238511723918688829982163550771181976853195792840398884584185587832471785909698279716052228594803859403053886162503207058306310566556301447364437828472951968271983707623482509221433861531249622517320448849178088089219697971183893084177112599758623700049339309186876138438489191522921198776294086883485464129076367141204369825594474728853665158340776253744709245955056073793701543172607355392555930277851391135176193120210587942055109529505872717471956934567244122826639078673601477294374403104302841858634258754600006313437042374750471489487400584760164073660633365118434529624237566293601001829871632539488670184445607593025363593473610680022391009557651090385948269487640359154397194717365179368410703354318718758750096706796451368250473686860508328711385048158643044093740489308271692453673291655813553908768145106791482815691896943594561750685768341051289293894226882577875074006462312754940282389727849468616683947712240517940560380233057319918343979275355795072526729592157286474077097843707524077157267092741672146143955691804830929557218181887861034496252516169997298732451597217167290189554113935078836130512011125615914842897598270730033091470773309516801210351491052098663064857839773072014360798491326391351452092447591965117796743771615651890383070074629232495034192584200511820221109070189245599980740349642207580411671529577404669762858974348473813430651462338688517806180777096396047287787544215288663290989322928649181334599557414099442276184814630779216186737908505324282859783473742948379962214787666563645089079277436942996016638516914604397517111348536302245391248342745580858585043255626990729487185573606204271184880118505176422608413674754641982230533954512577414914692754615495034454210887646862234898899025390168604208653792945664150176322063105016360794018317511784148042122522992154458265360521849324651703681528358500577407970693192231652430490432244848923784097595908430317032295197207114917280108372194358342193656910466043335480014375935026053089275870470485738178645663325117420719823017557048833620847605248671003421258921021428141122594409871272986640923315112791206944011040658300283621942547428709133390268485433622899046293857094913211683843889736399236106689236363356456059480282138893985176520187761229891291229399613820974404707206676405947673082124554947775038935045623486979686035324467256319980152163991132821204051120002363671922513118643588947860184350281153777746980478198810148587008197373427958548008219524629052321527516453734698870345556797542181089424234892876553068277251786916739845620949638374438551045294284070526077218476540964089658140072795846285969141470008589654058029593789293782590238702036176888117081479786473496341653165781605653614464644829234549986988781059629911444647368587441336418599836698734848034000898870355921174911251003195873165979611589807266595257075783390209686676330813844153132686016737395650610411433504348573844024895828236903868018726554909248043047610161178434885911750194015080503561800803377921410124806074069671414702418409962063097566146821039957435467815788734956167585862248631869144102072571121303360389813203256720078142270947418311515502046692745838503234763730142052659122200098235925741462695262980700354323299478233092614697335140889970172076287260974689511109502767691789569863295276235726865732933533605312762987656264958106490601558663548375676870295474573825280128902116000497097769917155163124206954772227589026564768583315463894021652655384004221484309133251963160529565786692723178473372316086812832428407318026690913124324888304721177358857344676421298229827892121365005405456144279573183655724722178987041573512832503213804051087396817009220591268643081687314772339694269190738363204039964845314446866627242636754722805647360266224464996178287989466985512333417685424373624087987273176446749615871012792601160662404034393999878153609895537451330265510941169334976627526279950017930776999858105171240732869047038676494429949530872318964695263026902835053299656345285977055485531049432020670886835320480250679571677237611197801181443885348286499164795136415996466827769052797299885990443095229156121581177689239035889508271392645541396618133258897946407480605229177264415058252981179362400445320511703031526397915835771998789958150117831660279742077176970468820506303660669045560651375713773041322991421895534133168401641305235334127977921930000118804538466188649807976789903791646054354644109470817062951843377879795631565359392930421082524975130457273838571450355161945365788755120351218326600474722418122221975292647209075802427357931556505531735019501423701235886453122601621630280614565080662930924395104704458448384329668131148004502902262018607661314520107962579315324130753684440716444716744597428050636810561751874039495296751345249094757288179933503822268976767075072762876510045193228872247917470965693319090841681866891531668990957137196336433500816482541130422159185700883991663567416671674311677650771213945696064723593298991607711929387157341918294161581562070516459428697388878107777539310529581050352788170296597657120090018308269473448845549495366440020539690193984908518312564270746194725297984453674294370851278583612540557711999832471773398201655434438645271991798750545487892466189621129871774970955329687734722909003932690004297076131469949851363184500328903027145847675530469042391362338977304574790069152583137469378409319132811004901700348988146168750248858388900375456481898578658478038058737271314772365810199218764405511872958682797994674598641323083872797369296529045485630390974803911217232024213533251114525660488029501969531192402245533201433515308199545781515426385698244414955927539916908075607564945548820702307063370128584651641673319051391969069409333014189385249263476960852972874190655719503524687312830951179287670800392816192273948700886419367479744811297879459975395301688636115891108512433577616894070057737514642035703856892101751117093874610438161859477282918688653531063025293748265891247811758357109427333211372095836775656064703431499843531279590168830822679783411693439837878220089280866170310854829195221756432260236036329695051509189999107507236123067911715509802522300234506675058605867344162989343114120198272301244164663364475737445734319773099888679554448028839909773420208227178784622845160604650273189754702511283053823049628700131444605467136203088763888195176487022300473417203985162720599123859960908015890525793595335713324858476574201028545798104746734865270903059634137635973630968563318908372263473346617097532354632838323828578872897941626228423850015370274742547317657695015347816803712467675283531154022328211839515788081194569709880104151789804382737189556047717417508693887220400999511344757927556899100535826085595369995797418800909749044393789129836864481588077186109525382674979165754313412403291041689278966067731229810956604181454599556487806551013959061594015700702943320333226015238630081746089126168791784449365258856616828466512378167014447900256010054691250904806098163761924474402704204576344574598808103648633348113865271418560885339036660589753309645171977319892533828735722645514830758923064430631735535935374460751805870230149133513599700469914841075069923412886643067146516005095687405098997908392039819501411443623227027575450684123583044312270986050974703693733343804583401176392168242338996518142492964505120215589692077062946689250657313714063283489234331685956141097565649029569329959362976111402716105192375167500056340237203338442523776495910477472117949737836004417834199067213830475765083925093068292431048101979175968466073664368788372919656446682635800558354568196032286776702820806097953421737689858688421002462193633349917140632147655395750459732599866270643420662784464350762576666499887730697681661598746756106723182793003937085548594050684283423240807488156852761048294843546000015658687045820820109781621730463359284001705159960349897108226974580810934035424234520719138245897066632456445331739896886332187477082234371788551420361836283469782454141315419609031395594611057240854442206334833623745402302730485964082467030881028314333481860723876171187977351999983050407423897508410883378317716979511391774927624294371283089733010306938049490528207297499846285673073323886994368603929530130374776171689430131227475051682491367401438564493424115721459194542847654000502930619548387198601369789559539585137964542716546889784621338940813523166097116953797508198209333467626690176909664465596959545083531317878530647201089815861004702557199518557276121613940455313687173231094571166350585516010829680060701395354469625541656202319936099796542049261212050663634084745104546229213861264610898989621661038242284570366963939305388142900143781705263773001760061893867369414628508418389013497302853098588365541736862284885276997453643964645994467448075030874054990146801310046560811606877946891222239196246392376126803268799775381746449951305149027245516300976123849064028414205773313331716530461872373324460125769883524865147322138218366967323613195056436806104854506532300991573694632704274887513479427778028433253445237832650965298491483962935001472000229246758541993936740997679623057117053957657999596797380157092285846333528151550038771040852239854685335229904594850037231740934703015728434105924677928839812440394465643302700839401699487720571237837600349501394890181899310240919399695157905752840502507765406636433237562971176358951900016959322711151134214466777732253789390363842483112300327604482622997030010270816055071939580005474151510557249919135014957736531563744328975975110986322848069021892019186162127204851233737651832260897141786446715953284769754272486432183312079555329537805755294167485329414383572187390081929106885612200724056580803975420429007602441260810711049109863250465485604907582569533271165408365075986615674542827410990282566548557652484559967699694765574846559253359737909387676933320802379270290260926338634745175256804718898468968978016103139937004630549920096382541985272967859063458759547710588048479249331192352426180223360409575020998944321930308406975286448443390267476025077019768377993193876925392158733335382034368186504111515184450652103250055742315607452496509842124539463596067936756304111025553203422873752144285090367824716315218461112173788288985618208619142697405383679416373082463779447188994148501026248137923969345225034239424316160461890953574631616550936341745399092197380727047153463813738638111034946408291772204433902515125005636743127678296656067625626081714734670525638900415539535472088664806810352493041102794939111218523400123939235851219674984647042569629108756404753811744632770333981332725232972081116741424994297697114759263859510492213018329337567504332341796048231658413339911909762200318056733390721717509509172152724366702615310226863536194432440338568249991491601430626316093087037771465052180457398534057154602139476036703007611202850033543473200634477457531612094380371055366141385702039086885048524268910526599186502362360773455241473527469193325284249428388282963046629924760879186402783895742062798760112439884283946930952810382860710237409856955012381500220043769412067325937228622378598757051349482625032067091803910794067302355267729145168723154032553038717289686833982828126356177597813192251469826653864836820157301772589392981860929893550287384325719713833802842111714872582265239194512393858994579937176923213126269095516061428772849561877476478060386698168179004582642426019330312869087788372375127700302972358632204687854598891765572411794108821881672220853008641653716595291683483084082095656684925791175966571439993244541114717083462244422725497704513953949552599121510576459935878608183409499960369259157310815751123662509081428906642832958067660915491963623613824685761922689294137738269037116614596264163182744506016246536622504656085494347360180671856057009350946190040207860357248359507434979564209205453354974325225940291450207689041297699631008930081053195161623849197904954563908161916773981958560032978350387510785564832685422729936474580276556309222138183558335753372024746748523156961339762607135202363777738469112286961211834881166430185220678504250469776485023958210140708766698343519851761080211679592548212517615677923611341785619968945298371688540926835230320442725395015981872274425771412563160309878112661200327083806724872572647691151026389712230118417904041233746923528311503917341656395789997968838159369948815518589282492821271597173170397219786498626888749859555130391384191875550058606232801207736854011357563483369913977788983334852839563258798804946164934811394741033551050997062352843098191616515020844967477460452655568614800650481323829479908583379153083983025351954056942621415837718579063899324216886486140762847546834628206030347167222786873197653718010492188790000303486232376700477457762844671630423167682046828989849393240873886044278462205809140745081794484491213618928911509760377884521435344014484554329509537830537522458261953260448461014833733426825078724610132696956752227449472187364068817067570193778871148601268580985358562043648972326241909577053375329164524053908063887224135015981126568764152576727924761670780914322286538877867993558240446320300935137027315071258276625982390096596655842512475233451282628020528616320791760936027083933874649867789406996574277523904225072553772434695982115052103573969392500875310309759798390012710241603908151672421203437819028121710083534958811475150894874955633578840107681543688513567826095270024277687712642434244540408750216357339979401822982871883780294752918993720277213983704639592580883225220493259701244231858845527652899138337031769463911454431351158666983779260823135504287033287485248452931667028125842353938649766885167592246381348715264633031704160242671920121691805570174515585103265779524732062052192251159292315717858215609232524426859587472049817840475042832339054345369264550240508438948209531996565856937062400444150513854080794383473984558880749787697275932567572231198737149684787178482165751330688660890418072228297812860278899607660511891316212806736771704962745577881482710224250250993780156136566952745732368804248283770177637931680684740332862608249565004869817740043398679488813477101993460590525483122163806256080880206132480402847783927756339287900592545035563251094402589082490274464223597599180665795125000746340635336955515075762731696009256476347427366110716592706803712294191761240215195109766500477219833295503019349609413644124527675840274296912323276733180550282306328231544585567617021391642649442237097412943442564177291317949622880966730270672802845370015316955056920945937636787669071569451577678734317382680866611382285839248623030374877214905448978536550435561424029868642719611930211188232733556067067154927693285241982804700788762771150170772171673251024701726421506059093820690744518420522632559011709744004483984439874100352811289940319944430899827791659126421310094053634955793807239050565303604079261846347969458653142449788663186703581472796224198779938351520451223892039355771693186094626568948172118933747409459023985013207116129739066932541484656935310315087139392942273692779779384910220131850058812732437019413862370025864671765307240296577605077133268923674534504415607153256796629436144301957456631998548641051190981648803642535891175090074263398991189708981189369132915171868340354796823536857578397657247489767702320179610622285214589201764275581410045726646110888018917126361136394396609888730334299322796306413170338664278644377088565570752034366580025654560899871621375640260632422124516874183628123118069161941700447309079192245829792681027973355080549995822194434946272583916130404798467298909693822811433811698294000734652429693597688745159907838281739532137409607256005685328462078044845961962420486673749569640628141045631131785610215262405636494514987169426534273311981375360825851855095479770272497937191184807366134970521179039095630057588773001677951823819169385589225270035640790189817554970253758394750376613952177576764810709282870357907539198912224994814728257202757699734288055112216267010244870793437903933657314909206614050590713036333491556524731142543318770007803716452966384189883624854466257697282323074304801698205634835595548880054619502197092938034033641372217581994253761503730318137787679315071397384251268919915330504009233642794561798386649063436572328195625268577879144301055067692805260258393969428922158519719773615429854817992742426341903218730520665326553719890621653959248203597692599922269731195447371317083968790598323672176791979513081092425713450629325413426244021146380680082228525357673185157247740297592671346080440548680870621776151189949365444327191635265263876476091120538282110406841526732991073059370860560757805776703314742291517825452280333374723475971517267142842960891841833851999160379488577816304753722130668745779131443835011550852838706996704389829963427633065379088091760730043989843229277504141736746081917334216062393913049516029866022079968087432691121665631244601220355988886270902590594044173414371490988894293752908699412931905275188995944545289256983398939773131772250105713373542278655495611683890708867724662356659967257604747616943219268681773228964814180728647724396863047271736188730150348836603470598629109790482538357889562501407127016940004405474046388652842979721307350707876426762039832037095802842336066356231082863947119968047802744933934659111034928955872441072608742860459215850410466994513234949093124897905453744779755309977696713750146152499060182728043561956953832744828866385439124422051770233757424720645885661203585131576624433303922723726746938051536136269844312659790134131838759324390322602463478473604064016303788352283854537185106962571538274072794233073765683462000282756421224394915965512901960298665593186040805165715975520207693113550966076671243244278143393965030362500531879731956231270392336210129062663394392994940552467339084187229264198928617568381656557595092950135506653752962522798719883429363262036858959763620719310550276509547291463546681609797228144436881398630527965891536765789692965966985538694379088763842325988547799212111904811040567100443427264964109066644192208598400379308072667468121334689534404783331412531072397703865103411801209288972203394643584019624099971390401435689932292749539262572891794664949227327545804736261701062735760609358273316782796009307611999076604083646376740615490465173821002424270854898042992984832416587261548230949708936906839075267207963063414929558132355033302204109534416087747404073684703016957056953118478927853500471694080758296035407529094895138899525343055138394936699869625090445662346161990114364749054116904112107112932123133701453192114263541787415795788022942910571248028822987877285935621629955307217610445978739696421084225714142067102780596628114392777912639045801469017718934579516290143662566608016481963150735549060180292984850747503207735780562984715016721718492258725805649481696747245657640166688976546159287944261473133685678707324094796094835700717917555904445775373009500178595254299026887446147823160254631132133434758923293594260762541819755821448298424955662145365234371644070708170629088595039033636976324055176470434630902289392231144927693663671151751210171926800288199556262312460359138457174655790451223494090817404581475249495261064782410470426702288206812396574086558625585199839237785706143097806711969144597282037425146736307736003201363572349052921087269592391694938653199247182254454177024965474056478821846249021729155680829343542981599147410748840773790428086712757893147900764219226235499349750632371846377495873288148764791963231960950865889721922313855296569126440929744572913260932900469963326902061173262643815074329571401946921620172004439053013923451335945255527549608847129379280840176426663527842848488130786571931875336552755014274682214164739636603477348751703623026959121449746607755315260108103003254539393097750331513019257683920267933830990415322883600379118737045027690862722980839485877290999894381725105025705568646983268220905900904934859463306769178231706706157985253857205048859184213800434146964844702864410459896160713759307672093746743105052268710987846729252251674670916380419387008141644260925763593384522395245431707305457656595341545464792098918643897749961606866870458233511943298919531284970674838042327001094819834073980953841275733829661404835465871638007458019220820218393792468219986994528154283236237564989620993074032231870630592740011329689477709478597335972345784098978039696729809017099464606213799031991378274811115056422564407352602018993057523998054364262758325505335475723749160939439179112473148772402201707763013509932229213429810436483525297785735270185204951570292353474417141141642029190935875222731429824578445260768685482216561178953933217524762469641402852205646042155821154439321368521589074591685492992304371337153836840670684033245601923603866994630586395166224074978781231321510568523316050559795799516143001591725752262451145793150126369439885920091159858821903987669849591845082483469565737783038719823600970803561944609135544549282028349210844619837953415036682791962863789815165553181728813332573524719851261658951927397683686546719818481923889580786826409659366784931489676981954349635167999450486336967399396303006106437207920153625832667377509367050704252668671663061675173494927066695019310840162795834183579413148998660027382700019337917260363599633530983375880899212134129921135110402244508448593928522695922741480455995179134570253202672276285764323857506026186037250007526902706718216695216911151347623729347965898614533714500278119853443976020571753088818331465987727649730754869036335608241040568678914084464759280826098354142853185070280150195696822228239292219907117276061308971632352641669743177202807698351449907379081407937568751581764869041161809909034713501208524838611341829105503188135023845453776123212667333019413276717542486000292586742450373459601838295903617254417652994911515456198536548667940652897651357226959353033768634351078203998017090842739327263821942355310055331967260078708288634333543227077937165277690988088635363634103165923984639359323456310255732019419645233825847908821028250018571756922086004082109102117784350163148784626029379296440903522740768232430498078107330434634956531920173362801465483685084449770238826102331360216215267094867890428824696032328055394421201517376908530205893143708402932936686103730669244581360531095088103084225333505524317641317990226239117573824311668840159230649807751987828054206804807680355747651478447712134901076822566171109542761714048960080168081223358389833620861641225962841836101282681263996052677224741244878788951634935502798260050040170669686146170140944948323934063427621551404013305504756858067746385241755021817546953018434782612831597611963263329705157814838538627753664805734064212878317961445111805427020232306583432683771333220301708210527821271176700397646254175425878667397660346926496725841882382889515831534885882448484523860006461832383390412823661684103558559562719758833408015971172975187050041380625807090713743943277436891686594382505734957161824701347130116302735378372123704565209129948857341950055088584611919775761785047819731413412761520318401129121657509070307486457409859132728193219293232310779533407000923343046600110302621561462593466098602304171571548882505259565061466422277052409581794747886457267596787843215709057996344871376566202528897670887083048155878961684781817157934014843371624085195101404419961607165660381328013207705231893380484991001762530421809011543331794298164919547058752037375506911828487634800851778560178011746384200251612853626961177668735653762622103483878739430862876845132863818019779554759202378341862344719203750536687457530792880673880171678284967308222901510627438416842642974175009142492293134833311032921942333909993902761430613727967443015945926441599992156501062886939311105041062036578150954005213052378160137418675006183351423714752810119618156175020555924782622539703261133807199337378152783807823237085210416003708771901682735503079421822802457124552835592368153792803659022473684586611216179041653253967386372033969047196917073277332601892939563230819764552430966386048052972273145257379520872870270678486498377501494089820149687869798627113937680345535108081719939762013647602754114142083293253884177026568677477800114126335317538616627181480441828558073556094958752531747509056495131857968156366960825232453410373201877682354448316946071174013824815897460524844828003506216494714258114158732268373882282482844855535175251409321684037341832417791344628328580160613849956167410203562772171328253167947262094803249278301609227556900679586938924339783880209254353807961051406755305772052188869108223292972539947993898711434174308947429595400857372124899993895295745328498477630911962702990378296104798661354436710203818034790542053784392408470348518943929525772860268761222178136652708154168544121030680088244150315256558579317643634145484644821873425707205676626153106401334498889145883407655125994758315671359059263166900447303250050496190704634110075644872541270319408953314651872405188460762732791040054598525927110758892302222192450304611201663676520159591597148164760573812781767166315481216952388765799235884531175166466327235944039234434203384974994874649474865851790518613695289969222285555295034798265710298986445147122875999974209833976346843229491995337145131728421811763608282167747982122390082776878205798466350765859779782552722213599739879479230868807618287450863427581147299510105018689233198220626591374176125194684204230979824731143467803832362951347127765435782895396090251626893766687481671427924732366629293806211514986096485392061210269686615219025546056181273569320066709196564687328908711468627434527817983619803148553867161948418308677534971949167076215789479781738486384237334128809645452436895701137416186942372291007149772678073335043977101428108585039596854163752273669858513751294131594981676546113144028479752156673834094557492640860226842948849179959711446219364612577429415316672469374329266463371960152959638960106636602621590653502849031071311395817847618305354915498067101648196419812602686742482679879787518763236871488607019686646879727293410370680801381873458833610920733325180733095663061556996292235870020150553148383915291973510346123651598414100591430780267671178740671337949563941004070988902235191597727190015504919274780175042140687707091525251401294707654653478014026502880275762140586710218442893015379320393302205265044043118534838921745713166397044829336971769863179819875308327183512513485426202475131136059045058640552192623010894417465207343003799344917126656602152081063132164149282021675703409832728369572992948423829147549869620119155566018429421114367607010500564871405315588594218432398403565322183675329069190529041831895092977142619775832172462232412431157762589906837548719572799609863987415282640561730638327942570221844285572458320682845809804678015952428777834749627392265023546637065534523541801926366200411241682195013026771857431855366092916813001642666530933621810473205694905536973372771885597922483308523707213302773641524958795122610572929232773616351074118734025066744013512056715041927683906584233299225192136226132924459607807134464631978490188674758642311630284413232794848768375697336338733628419900604188102513726900798792446504274104592727442661407931924822676182272844338600233296561824384309932888986494584716679392306998382035977452181781466543239801357396101598624264815078741339005979024847445568105201237872218206180853507306615598621794621610042656778824334997509218053359925269101624897492737518957479696542301930695802438392233343509214441026731401456290331957429231900793296140453056750207114256131894438717306380979515135291831372982451262759036550197358856815963780273634413382680955336336238117035527408470006472822202706398300103688093608309428363616052412636113298160935826672539723193782369434103863722997757437570969923313190486694920667464952642742527858758474078457414508242396659630980362273470635786231034852968469817566164685079657236879482785593044901447616159699321467112981607108358045872977527799935721317558717322538960339400328962528473854712922492963080463781463024150381445054132886024669228850099790451464589497982019792821578326905577569225857673173378527062389556246415660115307505347198527730899753097653519423287475708887758875791370632806906241129045795873828345546349096200860417201315518232055113937709215119278072862667287823426471730316428228906251927622976862703764496610019095016691152074861322450476855252507940126830639894349951937213673596617089237861861868024863499003664580693164159737524786866836716773789012835745884157304097667829499249562342254637966277228699984958567188320664086960766658637450407872921104753038628296425906439798272270290960328791614782064117149061913560207891619649455471988697819247731063327248228246860484664336020310361972015759080799869161194777931152482200689037794378275289655735671337872160805192022028741283296800727902555464349252150033214749315655314695274277767098668448064895392597432733239063580044262030923070530805726293604297576640207777338387610634219826153090296134985834398094861961923493146890256554308192994280662516176127174326412686534492568531242833033877881513455712829477156661283628787119655288888829441470283142792846719072583691679307761115614391149557587059269443013158215838111553712896636498802769325039519572553502598706212924593381292771906490672462772190851344660111854551445471684836652287901249620399149427275725935091656398942779997600331843983186258731928170337752675189330145389886614090017894877653199157823445868498942777629644358562832288530222508810839759328248024957295464684327221705396991556628419660621506475595953734516456085711006185764271333109088621702242504338897270184174348240299941105159892036198735826639804575527925523104987251663566566290547557892917921854164541751601544683152945287865502941619179110624541991419072011218742638452586307378005639320292027119443030992532829277950073504243278104566778288019595135445892509231964036145415174804877245990482951130920191315612542515016830603265690184904341854849570597157810624000189939463670357008216672790974540861631939526045385322021626832585800726661419841907075206980196734381561024303096711316943346453100127772487026331426152483689226851975095492692680653710914809055088789309609880692308206808347695354176470395155696458212252356145422633272425221540097942912556051889631011692723800618709184991437773407667312568661931283151447221922861487211041521980069026734563761491512241049185593407626161760114401940851915340646233977799989258331559597035618718959831569170731555456453800892364174180147897584092671280202409256691465117437434002164395746543455253296952655128987743796637424539970418771677174975353046620593821249713002743930442433972210473456832339009127765594197947651601335572228961763146429097822317063312558237186596067845988557805189960319411222658549586999938052676005289658596131442967532336438320897480241609742591177400023750585962407612159245606586771165664887758094655230302179957253121868076645851425135467131858141765921882501291159623328140392492203544176306472075462126580036851850528164602068082147281295881986680784715221046827714768431514417045656598013828831289161537405757871941865897066600144793614701679086754211612871752589763466241838304263514052953840553914090941086758102605898640965596282124004095875819057952998728778628505102725706082910356752925659286102895143693041612529704314799498225184577566010197926593502532406275928812823016556638824270235310946056436455498609891712054449131112826087726717499227248386300725571948112228270444840662184053416175513506005626391762557490268760260743627091134706484402766667882706863992656692772612178239242853381517372194469526543724050749320500323938573826616068918857987029235801807168460421719180098955623041404006229950143700329195647917326832769489882401261517403215996894978907506418941097478482561950344847104364166242736974864227778221250738880283953591746612032539292629995338012701278010874401249029220523520999994844079074862180774657345006911145602497675495930416871951660415912579561644385117913146938002123696370362072114367710998572396601484012258863238067278101178890444507828534626743182534798098383234498293945804695391448951865940894890463166431775222662855573285500743403530871197094229840861827493266965827637539029497691102017887749188037167746408084567628067452022295430838853066538882374688543780687864846070161128317840213153013800826559662673460615376885205702157509166418310821745506585133577410846549173968330475567630896537619046703047791227911258707116735548370156477833190310785575359937432788936275652814196828784261606380761986147292777331118255377962536322725551509074063717981619215835331790104344901861414210701277808487206650312891964480533337894476198733231227253177143142364972133744438418951451337791666929791937944470619349249301752764811537842062893530135527434827891682606121673624866428361924415768485675737303524944167231781246327503425592462756021509186211941246938696791163685400958366845313294280461253359884277059105072591648239434704076464628159011051429633726790299546559862914149204898052876147356319493306434629238427321685355531146139143499776072402044043562947635720747584764856940905399944212374743108391097544644916105925810126195037920100433765828797145391208894682638609952899597647894428793129973231732249571852620780785285770760058678885268258972471933112568855312390552834059135865804920270344858018355600702323484103202019112027649935467655871735661659050876512088481143211506653367569451066877313935249116366981134019932324709398790411422376758506462263423341642927333328013421373096468128183820285178054047003102844562113025901174018061674066788339528471512171405098768269647202520735025060898773875159117658906329006121406632925257506482914734462954649339687314100601683280282863269087008083759970552048503672315536440537235445485710548494460360398009521305384670124683329999997617868390251307093811851421632534220316265138437664952409680157401804936574607338197924230031841161738863950573668507559182301126303868379605371236171344117876003045309566664646448692457294805964946207345055549380622331296029966570763397478049971606276589509867143359541247708107166677730962875261261245358341962244254151459514470736398200249061416357866703001863393413066583957221780805220482047988550364921323868580826615504406843238038850187768045248629011596308076185963584753455664938647417748314245834870951505834931806600479067794695866197230800128586323273071804882152819838716380467762268024160193769391648061340487585404655275992531550211544821689516024358103612933563361322977683998025966241074941609992544439066039951181761965061421481140019165053368313429190375541518822237501824480779059919957654274264098497685658502868362224993199678382829573720332347408601475520089680051009980988080147083455189418220865233758705319242821985515138873403172928111570429500949535247177685959421050083575881246596397047352708390686080834567856197556661774693523363213018497349931472617532970965105239960091104616660287935681821409750104982203617182922196650897293195393719849307098309844705950027494768401378732938440014265573286123648863214209678103521243988088949083511777892512217983809221084417306008112650295326378686535752564389415242977538391715389041749153785487539081501894399743866158840023671595706778307833155670764179522004276194881145059929737763658514049824915089316670182537595775161173229827009436046329078684976070552498458649190343344787173284054512879331924418463210668774331038450174690305522327634430021935946344201145643172780003122799426036628845837207086384576102249650827357381618801675305739120728951147563814538283064306969509638169186488313615156232843633524230089034440609432778710036647826231928505781025322155996804811737345881971340933559698574518840167331699587486161298970485982236369602037070435333833137735255081854741444652512305014461427351546935851371862648524699745276032114916344916657492027816349239951530710707352540830619931177192884757901017961997071540429896907992563013938740199959140092409983881003087129518371124026326876658433388586916692008450335039513043137546534085000268273833409731206999855834272852110869524417301204298735140338897910722694839453929616894480973850544270847292108707821527641739631694956718801352018599891658553294647811086048852905622408916504846793125086330973269065100909029239304554790324051858398640994328720234783860949973905542581627293435484222113870917660938693764980665875067638085898006825814002024011244412191939365483257953183755301500193191896633394633379521897431765298657743549208327541087970319953530023289911157246830108191402729867285101333047515851638201558846039956548036573513125500106690878794406169538599400024303557306404047301769870647744656262186649440314122362268412229185978800040654820796817510138169686250360374580641640423221471776133264204871806477096815814924155587622473456263157818035176932614023900606511056501883980738826253776355601363580264474856895671316659966593953026557690424032629145046695305526715014970362773273372117682691487294722307630995575841906278711222628817168181659602310315828947993206491005104921025886309898424019071266489639859313590274056039031441228956662771200100768857186506887668026375543804684448085863529053051483008400722545600944746511705899323376354854277601319995583613217528575364830075319284741012095508745773411444002746904247800745521950981025718004301389467523679877303516824192450152555027863994466852355347729016263906405612624038873649348139312963855744096779528040028049486084781440042869848880135205998602631821747378071053827347717885482401006198062916628630381251306378312829997665696859046352350113720250345609561073158017287530709223848108258686984553401632840608549580921714698041953219614490233046062574458070370982110315755267046688552574933067103039991060072497339503261293529504856483256046591587445049029186864675167532607625000534281817900308321341249092814644577680147164803447628570652787471792569162455998372863096952146957084554016991808186794058142785995748989125142449286730779879165222505573726617354212484167972008893430665508905648127979806465144538704183433094388134849114271643148844448360990094641828274064413942658819373316395960779229425055200204788491276096476903880928485522426657233354041347859392996269243103901975686958239137268594701469930988722058023713322168921338745134003690483739253435041946323358129716890451708843048783054195891010351673879295957103634870306903621685620762756028090244057448124487325186610639370880219215954246886371835274709836983023849065347935698120637057819677139563905764874060258426450910017849067594279036676130662735268109852911076238599290328947147670483389160231091574027505480281151364683321678387963829122649939229771105920168874977061973284002413998290282950107000127562508158436314845164647902122522579804506318993243273300932180671863213460757847316624772993070609671189766953501934714186123526825378480297083951118012172865230349718140332410237933966713447097465586806552801557677513939487805000028127679435859327514960160062344076719898140144628646108823456928620432118133899423547978483236836860634801290217432647574234989462848242631909768626869892443818468757773030492170703954229264809324223356320579893066512240857919465787432807526358557546094182728884964506228142833206881821584011099599886974999142029408113922013737050556271328996982876016841581165211022276276462001296455924585001404076762224779459377976697292740943240789579627895382093681561131053498087591977673725119859476102084703935761357168092524137305367898659260304963904581739789733062996080839390218411491471010858389972990628808024878846063786573641919136983974739075251545685860481076418512591279319177276062454920588101860646503320213426822086162018913546242023040108243719067556540516850092430870267274055447347280309405857986879551559974767305756497503983500895805046456652430690133865267082439849356076260131779406338661388379864463173274693631754558055702353245570877187592835890838444398133287780149796369739261372468947007113626853582569739481266867632735857498640792189080434603211419658367788270670092576008070668515405599737780851067216560274282927168219260187146647410161968399767821347641375998232996045628532255321281863518255981820151141446415091513679917044421911765835160948910637026858600893173033413988618488023373087667700561036524986290568867174636631551350427537981673895022887040871794580190306751401317638519183480283748953559911058071803423822533230575879474420548777580887285059007794969393335706255499365732169423380064858494090087561554286271671628216360524206751503872970801956198933211051811920752343467750040289607030713805062569266415869352732689224816567062446643853105572957930864054450724321763539522192675844535136618882100433716713006014968598038561354292328747861244181936156695599359289571587532569136448904193365496900376860293077479081485572440030634569456966355583956069245164745266965983199207075540743622591294307154494236727670208376109051307470583476058340565322815386835751201549967058082012408274206836344153001608883892259896864465073185864760926892338644446448434529704472445273881122796201888825289867658026676134399986279564189368763793085079289547618945046939913989590649823206246609327796604492564544573989168546534423156663564285076773236076161719128704105880214421020236385210010844937129462037368935192066090267731910410931050501189492867055055889333109109535901857743472479157519127689509264691176625974525868356500790778401378440969600516134339515353813895355273390009873446501822560486735130626354258634575064363076921174094020763275316232878311434206049976884552007491225702612954826112321060909486077272566985038084539327479563826478854520494578496005363487376499242593125140177930983339106809036265371811087131165189971343402227620499429252229469444444161276687259078421425070433080239511826914265812310064170165040766661745042326018386735462561297146074131782186753939987930001920980110882194197740785251009290767371788256955406555714709434412768846678222883305299703900818388352373956351283975343619789981886307381558760240879308653395179780486077372884620647006606754835515058642398900533524444598254563215682579037900933490375168411960138496495533547572340744779283933968572572687728991941101475014707564111117604558455230700861102499159040770958093545218012877608566090955189248333835653026221038505297672181207894556869771253586960673158172736706749424735789508706872303377417870828714952523344854510302936178249741470274624167081590179977701274590920008760543838644508403040973175569708338706932682377683456254863547589840028450546867227947791884881509287831079002740735382310988480653433158397633784504094804892589823702041854588208288549848866421844366101744974406447730674243863946187341249940743739305656651685291792832023167457446894124317720164598173161073623678258320997852208222455730195548310392532677439647529569513876344616231398433701503067088646045752348273439648508113384770416352618444469753221083657335152795609188896218545263960902102487589080561505864070512438871257801868751637811819042321405343381261186386803252290591945516355742767148711606229068673833511101381232514288344789173909303445426269695326148453596979209330847499014574212919148479584245484654693904702321373109566558997506285747016400961284521201459680112150496500313878213048305048060679488739533118088331315672099424179998900142326223845085018410452094334601509198844422376558952035534961676262326456897410900109059743615485596702638166717054359707918071613490809441829435906198572047004382950767148015707397914569278053819935511750161070658728809173615006196285981819473588588687864718538262125301323094491078188027906277242439637668306397163583086962057538051773830395959558497060828104001212581903348988859592064814878976750404671609335821870700091371358253213183170672095410562022541704959108024451695036742387719650513876741165701362103996630694163650555181332703449869189554518200870484329987887924110333974728447479887121764832368522157566605410662263301391111635093578552858987707095534912857646393525399490814925595035397775225430643582513157889757653400667146937037165945620218345776274416077864676990004046105733615926510728147849759472736095902717162801396015868439977354821185686133565443587926766461225469624798713428450940163522300060468436500192794525608142868361236221561407591008064104085492861299014823562349057176003716465938646409978949566992689745124714267043278487804383568170571689593802595990157303833455835716245892857679961820752547584073777590866611798485560804069283388527495161093781880605265142915046800114496823598485791072558529736936709671500437526403886376075062400919897980505858185800570419414968021750290289198553922129575680975759295782963379593261798793264029573965286543832977125396375500751552174473940708560702716695512440961488224549215076348489955711945222233999021643993101181282880534725449731179262106212597166609881919136181388739714730745095641547066047162976153409537500143019391054565812421609857940799342563029074782025375527125176037045254261073839144084177376485599839521651617531961490387766247765165617509501649078878276210820214564546563213137942585468000845603202452147568040892695648329038373079071401592781736288844416485954894345085628496340598688071193606313286458236390325249238965258521890393868521119884176013897570330388015692440372330049428977959111325937294599446389093735987896458749548838945613277412766786402813177277161250347620829361153034344355271381488752665950718087512852497622390299739364693768429134950273103078839360987539760245597322128171696810504734693343943868408250423665498057473264364329294010978216579203882721889075147812841633654136968020819440540406454019070797083492638070949934499124130674418648045793241035462859877608197473579612306793020709570995978892726113627560964060022470626851631922572756309616932199390305121576381868159465894308946650090445379620399656547525139183784761039078397138139589669811910133159400980490145965454543202174694141201006769274301514617171121519395517723960633461025593305520245247396180616361880226282901692540734708510462023749662160982841869433018737083231764406826522138845089047457122186084493694549893357456764619034940350716362073400161100533329877562720103101501621872177338474359203020658495937078190512518041714994297023786793262018374373006953939232375206501695081314736702703911291406382347159011661222596417554992110720514430047927311101105486521415741953257018957081007841141976329140430097181038915316465637014399154955199899292316051820813966278232482790583328819533982292418648674145471374810939429460823080026373656193858709493591603529661166864231750798102228969545257014206043323341803805566822377997782160746978126166009073326175712284029676819399227000445123490736162453634002441261938848072425606890844431247120149998881572777570015109447331852522977105807110169538398943333456238426519159894015909569996760128730584731635267409301998234135417367501549788883276768255956191003118853489558666077781230007094652292839777569182214090546536583051089209454742592863554094336661258121926922200594549651473205090006401904973994125214864246329945559758360939885647190168120003020199043792611412315512795992365755746681521118584848441071496823600707261730766405303179688170682060253832183258251657112266182332232343553483769194212056650998548178453139464599082211995998941667296838206121164051296649372034323583522587207850119914089902146511030983150426366739213662913933666488048496919585934239228688090718160734510943650764804980262026261865945032244835214464511958492669923652139891338207813721431769133445066009162598793682536031117583975955917335509757589119260855374814115593408159194234244869031627482444538810990203001578071585927053547309553899078348549313438879055671098016332969867945705750901625656265849066009316546912225866974713799376342194182806526827160671612159186804933959707233811954388846421898101739876928168139079277223899364324997068352074239601606539491833825999607680204489655041648385569210020128964942955104925988633731647492634874600528612080098677991117023057088752263997534352399237019582249514528391213469302292988863344468103939449185592647635099410072495857626752507435887567626559905684057798313786687119643120736044925209514667203039122698823847517222812896436536870882148408224228395801631198256035499669289047799776756889081149827729034183938895084235607574166199371119766290516690585593614447026287784287761523518301376532916458826027844999111073465464433166199051483949725840933853223389775924555520695704631237494223526937795508198082078339706673348151031088722981587555303060099244827193936102763818734942677535376312066046904908899895491451523270726924391724471874730328422594363002663841646161929798377551381776076325114353991834734936520325558427931895496185563988414934971562376179958437113644595632559467960844292187631950719538909923749277855965996103799505806494345955054836600856869425238579596941135222382752015314755620582211403395018061637318732439343542789252102077772915915088600029241678532469680056169275634071070811663200992082195997837730868587854586086961903173907194078696435534762232676673397327306489744254332827031420650189583479187041583591950856518543332805568207382084616300807981982037686921116572634608061747467947254787340419099382828144232575380567750627867878146904941758990241868035774752097788261662346879291055483516791593208221429026289957063225662456049033695403714453364392842328495239185068995147922357206274649518031863725536536030032067117210764333843470469522368686038470610238149903536258048167907366895532707171079532880668051834515586637902291162834036248622799341237983491573555586358205049453364515432520757559732395546859684998819950029129663236587083987842244515200953388768480605289911010733633224757722404768716705549856432480405745328463073179313888838699442626525288206788832821975696379996994666333144741222080732073125427158980539599789681311066544752174930856680227158329244531672196377737465879463929661967166719502724962436887617074698696612531658063202091797344946567400727368327491429071678467551815265533901638617567951128714730902856696674071443776618259638263204222691688883727998139522447810548616461529993425540764791482474250606326834887198272492910096049374569218721371403539318230503183929099814190012873500166868741314595159973779158722973367580813372997203155984062243884022341533056958837675238569142840990425018988266045244497011718929368669933945197953907501845085205592302208616021714983265202512467420063004899251184987422791363004395626372008221729950853502778561097265266671570688045244265151015146925270425988565838517981115904160150031777809348985099227019498228227336623676455403698335521069473119377361436783831389799868817096769226205740758850003496204296924133357425547342117333027355341236703806729364304468117221699651779414724168482667444462210606893508155021479581258780709603296273404937945743351780548563710071744834911112681475524027966924609723906627640652636259775751716329551309826298183036637573058666304701953660957277574913440262885945269361107400771402801013902942616799722819775776058492088889909845094716369574414182608901723279403095146441771830018656983351405614608405951522045995918396014337997050919845202563588044349644011885446707993886390325094807633361767914937482762588732146873035531864385159063477618857021666909438952190070686238277692804926997979232674183177454243776223074839747837317848909870955211641320465099938268287116512883423560596970922101223196863770915100073875208180984822477459989038429125536653447949930540372314159135977339568420373379575374007958317978027256705878279730686162936023925733789897765610224447099705877464789221690274641588053939460250944741818560059422059352525256262137478081783034112243086241920967171507437473148672942279785481109125842613857292638721961572076604360980792891700814269820516088713124255774078291748378434456687728152920999956143396613672984881939309974521651761119219308735482890738949109668271704470156351660957140644106330192897229698381728117964716084716445478211892636560510888209031173575188576260896997582975731643619129952341818567091340083681035347500268307567756282256222870794393584737264971968402686628028759860940760993792440323243094564484303716914968950442040972994249372098256437231924222024790040268052954056265386891129639960317489969807120519269144110033713724854162835209006568617305081995469809941019561137536902876776484127048248566337781993157552755220737003489607362092142432812646140457626027828117936710277254630617722139312326272750863181681069033940942080649630871366116347869648962190296157780697845698201385715880578328876004410964205006703349815039327850794591350590807380794240546947727567911693774837879728314085624552384826876414414538539948223831308703761651806214420838547226463550518101613307693358830855877641045655455407267988397496306291659578573058522776051581805792419685351901223940964666612013433070108011868284728558787268876542026611919976391133226164853471325439215126320857420591577650236582438048317255017300763229380257148125016411727368881133580463238769217729330564589939731035106404368870623944442664928556644075645881237621758712935794911417558883156074243910533915398383102137503547278917325958749130852633283358953294004636985554804673087443136588724047773108407299861442488180608569413590208931050130873085576177952458561403205485524160330043687907801999823012713949398605079042390775309940782754110769056187930196176478474688859379980616136284210801457307249422158384574407504798086434161675360947696905920759313698385432376494860472908858059223840883115838690326007693638747130824464286008438865909062465788005946628006895782011930974784267647553105531661078132652591361897916220060607124528629379063388977040897032947874710759053958291431432037857293341568448094332360404029937129739493269602407858575253912060485866721876380093854951575356098800752629064962746950268031353298902471121419499411232872652249455799981936587514802905583271272586611406749619389898156868275283138973809332461594339244244864999097066562205868662290564392136076766461864086283312382371238753770753942853298010871440330752709324457576159905943753426822615638915841117513139214612642343712058265101367066675769551351753545614502691816812526182691576863508259777283704096107510112574539997783288384594998812697228666823479799426662654303300087358760322990555450309804070241740570362147482636710725027870143007814729674925302425588762301683805206874391612677678313499361122135771324628666190107520945764771893537099715281658240095281807302491672318768238503416771753305912246911417200920798242799939505327637324115282443152776894737483614987828126421610196079738778041214316784664008679153597833332494611799770470752169409056247888895878710598774896499600795907881590582981644364904994824391129013681668065502558496715004572316193373024325949840336588111382562891297040330733943888399074160051076229203738865525542907623748697812648354486252353648559207519231112095841292200310826315543491749211817796142175120076165429786179874586234414067405315882767742145522639651919881044733373783963613656435315374616604982485273055658047354468049527076237789588816696766909185384467385101822128096330628989437443684472678432083890628139836878962590168122274964132947020995093656277497241745454759858509862007293808863069280119617583739576681865708900418294463023323854278322158063921761305524389291269449781902026266999786989591731494589982860211006175303099292605902247310312502381350092010983940101008163901105338179824324854052245718851624832404925880085492512455244392786607404989845404750837845564779144263625313618390581628000105123634854957781273368132758446376536730157930475957559707302205963049619998430048534593507951536067554431387614464778529670267242778611201828393159191070946361149742076728256558737687256035938835272885307668832213078359163383899042820722804479841242584088124726384746538640365340776929338490456126507496695019602968069335164184441350318823556787813380685663758765744431635715281066204276479188482702445809469965812276691619833536201558269281642891665992468399443982600313782247602696329959451679551686759483861827287423590772329319633406930323880938835296910364553869460502231249681721149854039122823817890507926174271213172933153023471039080372333878415508724300456361016970256027823234196219924633854271165971411923850151296376738228576955725952626063436261685773847413755994323735820728521285875680377065897604418777033072130208923318601385425249463414931925823665099217280354670367587245880606105346301176418785794219550159579763669111158150036725302245800999745172865653174949009390446333786625753157052839034152528866036731072407151043757486320928992421191812751484982710268770034319256817233157533360052362065600144365872324267503684911826197604505919432641036675371495499349157732985000867367868472071756539612863082942761279731332678387082730431462321475838194088066048641712475333595657369305725851011371927937122072395759243611794013346821701349273226917351759942883201608133587885294704925322959693110770165973388507427009370471599336952306905313471471300878214261350980482471998519286967971589211633479622727762247053685004230437985336873774395958441098228008331319351615444658774730549530001895895566580100825319273445724505990352315575256152144636837338204589415310091125072279818176514122949025513562047252629398333181954367136311961645848228174297364281254773877787870029290384443500489369406790359070774357674463806086982061081608786004061372782258909632466653569440463678649258668456758877656386656454184099591240954160828530055507719617907559695958533488346645240695904111412562787071029172471631449381159875321040725251991801841706544891884440656991450925390805806891451727620288068040001175785455220166924870437454838777642834948270701172248900728340595868961799099111114917797925950291733787965124018619752568593042001707898939130554358691591344546404624129177965059649193812980789576363009273430164528375301651395854038960894344851565557625194902629203624781895491976053615446268713902183365064745655616849506251114386909281112397003549366182844760054121439439893781737680574733458601282130355195436790317549716538069738894899900428648901117745649582801273885546031923966030084641633968260831199553198685709947010636363906536186259130494783906540191680059049109657200126327522864108193049639918409832630845691414086783399260406670476469098128480209379784980514625702014372238331440640983550593183319786380738005356737246739675319887084614408135486171859889823491528122595982740392413133884059061282764320557417860051090337704091819126232683848541393102850849653315949018224565365816117378888762786247075652947026799524226282865999687451223000823105513358364188091792550391934294917962418250977463576511529002755385246368442768362194413889018176162424008410692865637984575291802102312536877435616184445848227830112010297942404061139787855327588604644875111831419209523914641991522041630112452247432668646374248576044080132352678898371804573747774923253794086187594582714747683126459312288738608917695136022716076875674512918490234771044095372045110713910393172844726502719381024113065139043685159715021556890397249374280599624157487184503202087397483063676747941188636902066640762814360542110958017206577887538458408800272955624339387058649736806038639803096398633660102094644435696119757774713326386529927414772692077259450891591926841598809982930087779856641401538855503237788874253188878035579573083225802540779037835646544270098559207052605529284589763425834397485898298521331750361437093962182758109462757852279210098535491926350477725814057824496052152774387888055150581528841929010896641326356565475727079455223212216337582643611667569534220719327901236146520046796416438001407767431041226645649932304456647151095556502225749754276611402289356793370357811777520168658791094644150468855010079058995823575454418263884207378218529156509979130825649693444455586337893998850350680088789921383808837429691339800995479043492889840729670810287932246299697250102948737232857789415059409809463599192828612916696983371036655140662725518255967649318037171052531791095860875733446227359125077324500429306381614026655815470170229218312280285581968240108395777867873137613752225838738060687307312783629115258698007496539451459453507547196308904730692002033809787770065914192026033097411377833601653256330245930886514615883199687201427392301561636427677284237906700524977535270788850380245918511787012833008958975245133894529198627036516715923643527728590381241760011688271460736889693984578876618416449562940998741959545835538186613851982035633816039248076752364960879241922757445919060399836911695701795978751724947645924368051033032535811434228260404450265801913490520541337668665015951440056995644751220246648499115498140470574606845010094185550816033534146847791128196677614440012422550897735665468941882567832736234201664339158932303297936570105158562394708994446051320716951183862676909889707118198034756140615992172561719288540280759305131522399665105685746802098280853677292619026809036480506675594287989502771574498992500963827021077594542558976028002834323523122376096753616452694193991777787878250074774942472908186231810847912802479456317079008625701989351319955164025162011739852273705167438079604266488625144297915149668843405878311202030555061795214628607389155624188962506297672675650373073395551332071106468730180759561730611383415021336706379989048888796341157293157196922698248079215884594829380757204476334826549051802842793048555434680658224064658302235629863534465155482297826442064699045252046505283752421404752687719663425208405018955480909796895162018674465534908996901614279037992442445245525881012205548349263591281470778014646660905830528856586281459861396426289607219866058223902299052180271397954579115733733714386588218639120055401577485225282664921662426023414638117910440875597745970536674167025971720206292905959301007775947866371928488896457749605184139219415173695747010449044771610846927455435067577194633548333978436114141173940722845019248037288129814237365001873201417740398836339282917373348390255241002268845397770200972576338526173476097788789798473904409538822018896809333654177042540008763916143776877670130283500264586545436933471468008831651403297673237918845295062765674684142349025107784949445825096766388995085676053287116004627057319333838322608760506058183433039111814838285217707990450967157986283909745939481706731032211931277370641857357238504745436192718754031439062510326440538335519940576765358127977857718652142801379786661752443262379754595719744882312058849638795933249654858139363846640572860720629929131062297208657104233703211519868215451158493335402738174552100710088336346976493983384259707242959473233969641752388646325579142037052426613024318690791225964494228769166023837928604624058345176399193788786620131272900600021621623391622736590033957182169516817793103120958366385786939215758619519842743477161344766877512615488765526257507517020974207958457569168184930609054780107411627339657082825438617372113231420565447749152589267536763644438743317394217675753284945376300512842893306715774366893199702088213641226875283144172053588035453171145503371984824945775983921965047322728886882953249381708645598028296024716635200628200266574912425829840719732666564711522673707184398042888315113779727348844474208500194290589036205916647221281489307297650066467405088660324220966038212085990778648729054957606717454162907765194734388703897243972172840901616365573047321248042420382352281381001679617523396992356234360916714342599458177988842779524063014508269246869283654570558187982726860627233172769173928512474726140650564349750944529967442582995250552757403167788917130204613254415859601306856848189863861652976086080358378142323858777428147354950955798972469454407364266965869106017569112511997829762242312860392563272500888063439645385657041142984828641802377229337698164192172061682215908280562006680968431356787470829843035079087062689842093191615815834104175734503532274113668531838449580523172435578583801588853319944350078596738151552687140259895721044964378150742789665547019846963019722206238315928301655336647623485959652317945064972914780279739471299052335640507670339355332688625343103763492225430895924141695696749247290426522576443667617023747096289334440682226290056265111664139335983914658240245797082381799819349821296780456818953971423802799789642518570649428589832335429613815783105986716330565548884772473898413332600058088800266372881299457926474284268300555715730544132200350343664329746144712959781139187311701837025386155836980267590195140970394655090258097037340803745325638239547815482875614714975966362533233843231152899350166744036237095291246316917372189833363229737070069296475012352898468659120084424313590802502351463108087114496705602648115181238206183925674340498641984570712594357319803630534296028831225295758823932743016447612189650501332530765398298141793699244572793834047503779578776817892604724518589389593023373259484513615346025461652621983487639365491749379442531362248933650699746726442492788428226515344487548747050833120786164787344213791276232425297451391148715118645654203026532741095988236238529944849940609043920463002530086255061750949769736221176951483977337455761684845619957635510146401533140230197257804774587825699287011650757095329656230253121390410102205756730445496189171258190540829697721516847310060890486615354294546819429574521635135422398154092297521017334636596612808700419265412092274847125921643209722612329011341414405172441441139235157597702394874866887278507598456117769349023583741899125624596404831766651252899438733462638674617709007880886938067331952586153262543025355659572139018685445472529378257074532385895726025068653446885188279786524308590491291315407343586936252082064507587387535233917316402414959798011194170142886560023833140171630577166148834377600623499503372280807974719115170766020509267957539655195686871033541331460685776037985804606723845965934982821221835658845614134247841624043971198756027767261171506975283776418169679335716024356806285568861061302665321453184110873315586652467486237519203903267955690386854633981753002820375851081359297156074577341138046541104275354296072153406964498013011808562717364378628705227589598550896759613778891137685769442878691813341013841030146401790000328040969636580345970797346123146170604261326855135199203267142600427897769006133225261748607278456664123963331948110297983004736580132162294746956652061819500020093633060319571383435196477239375046093466948811058703359836034887602292315977033888512709880787772593558752625174447790564450266904487383388486566274907540407433954370299327085081911171048335940999302364105909669235511135732253698073536552291593005095452103947255981196557567903027373966001863198818558353627865370981418385968096555339457401752731422765752684475575450023941512347750741795621541170252569246414814392535976208958623339748910633336764648367220225926874950847080754227607798672916607289437333759021582484552103281160889598128189339206775712167073548384051589387614399873134823053325971904147592048845463764287740054977485283644745695724853566688298411309913361807582781864001525373473842475300274474765110379940696512075638251506413730176194060960780474091389705705349581261744950015911024845125883087716995917757944224577254270257291198889214331646096753826638024709293844399198460412062011659013787656400109865123163761565570828329128779841000475839389834220778434508203363696823776010925843670964131838935778077677882392696099668868862284568768055345070724871756586781969222595571629165720486149479338181765296927630946630955039513058134505845657001856915893433767631737134733309024103443502216270560073225110417563785380382341837567130863289817328682404030678966509310884194258148497657652008051322575634970422904552840111453458519880415834698048557482042036651270321743813448519658983753727859596073376930368001408160046699578843650470795162456766776586240327669997846561116349832590452676005785568830973935756231934081707728459847227004672832014703852368753879274815241743089099257445062440735455545308929326762102451672260862516618115693525813884204786160889675028181741022272124079340352741249626454978889324672232900246705170245631267055138450069455004368529746181400321327130478750475541795179470178498357468214885682362714243499754870843871339926543535482860271956925757152250284143205263620341295812146576335671352997092002425791430929048252127743465664566410869918046339966067765495514215407981898956526174705922850826465197948644312607221919158764709409600866260713277084109576983760887685026564949716089527478391569836402511570142191152371601577173910073341538411544238964658528106808412400862049326456552891237117712519377524633170571636285904162663958879917013065178619741376708448085443549822136257953967488580654093179766524558936754650464720178371664650722142997497208216614932586968647032680097147706976548360870747579058447703811332307728613435564421987283057712169602550750744270532792289029550485613604600920087415992746206923835910125791597945839319569375209188202643017397476836750032720300635653421553582378712738080849941854783223700976535082795385420322696905475505491321014688646149737915175588948461005581754888330676978725063161568475152860297206577020775018276413126842328292963512773285748391829828123517570217710189537851824343718664586658185317540509762939796426905999289660677154000884251543155116953843567367223229501153081371417974183650637630297465611962790639687329779643832860882493134170037448527896121114015483983995779282368360613118596714713794828816819030012755848583515168824126202602482027752312804060038249352900300395223636126555137648274952472720083850000379857887753483560101797384892541509441623078017753257271557384165730642461604865666612336211454631568674892752066023032913756932162971656053090799790286464319239511502310318856514875311452473804199732112673095867217089297294796876334605775932858317356518417210762644589945924818079112568598948971614499115781884697741309195788150115831102130547967606085425145846971793014688318377374072173153837696970812801905482051157358324986971280509608061669488354025320853246935241370729687248528882473103055068605729358776754200117467181169304344105182431464268211964272848897402398005017353547802120474213991085031346986824657785447847138143625199044813394924565480297313491565575698026121906291328637259734996171294115932423705742460197820709869038885121401964035091313212738533882398399420444852339977477318567308867701552686437719161210244938403040171116172852677142874459269353259238894437016299377660403533800627831117771070536737830272029339170743468629771853778373368669607054400199173995159113714127697286648388640497438651966095332092255582895654863851081493035237501069857460183905714289810080697707262986551695342761985471012630161272241629854980519784417788484448886848350599078970251602302925388696502286971755701229045052496690408350059607533444511304926540844267673944962155128810295433302144399277071895326938651706504441340573149489881343208751680265652865552224949264051134314776623014183252614704814746623672083298617477513195323040290168742550509883449969806410271027130297338104592807980109744152991866058796866698163987841750986255194510124235801214571509548488745500314168453024789681702310462547398962555673652256283470530964558456525485233853407802481362482658055944205770029342311555636128877351033479269981069820918681721614234367302650250943838053441098834205926871811748719361673536919762604351332075649436126463186211048430092833371593843094316709449455229539759486728703148745837331521958379855047950377627187443749006323148511231199566798777943292402717878513648569249563186001356803136195957154131255780857146326649600874572515035733119963827064082891389079925649933304752958643562560360020474214505946818742749329874496298245298724579235082682357470123866772058851661596050725218450846748805098022689486394335385860459806464754794565777995616512423961610728539014454044067482016123870622332302365357993874762604197897064995746152329721150868839696393010428457182219819865114780840833429496767647498678903890264041993780751455488633351922626077900072992281869898467536581717670829150095209603702990456668038423640276110870287397451170580956238331327483820677898593238028865064698457321621968830559543448098118352641936152441180657550624028057819335551883783970496497203620315417517401950386639032555729415701847044976049951615460575932943227483205341011372972521608505377449804511243479439686934307760268276288629899484788711469853325758578978721321928845403217005809211782201846123080111783656573764699439761617642054210974992272269789918617681783112512113951413870151152524258247421498998662257207624582448182342372085708247235608739411669543565913891109768762388504393541198064911078697149595780774130505470722565018510822043241533420059473138502039193628142982649577830336841164612140976538088294487523605814438365286166318119396611158500913417929304435791375708446365740118623288376753990577178305286430698603281213268498403387224533858979556737458838512603318856069408541309961395998354280013885026444541936779726220423817437271922303230129917216384655267901417525647535409892213071011468225282611637481559544563183327316748295454840330013208263449318072004165143804338544269534283165011207462852479277425804865951677247570817856931707043177398467077539403359049791095623802839005145807428378305230036627650877230801455907142091438605433247771262785732055764969418934490695265277457451267743480004830759488039966787842803059917494242680888710317681073139523282257478776369898019255825968935324539992945073696955162724489687162840464587138680406779456988293941328686243125665872125663840066393798132447819602807650762733412788567361103028639861704371451227347399240725884916578290381269528004651581163226902347393157568888649690968166893340270463945883505142573812317400216924207263123971892370227925608487601879145608825234341412166493841820121175802695288516180483563702460095968258650659330553262264307853937992922443766234698306457087269708486564775646419528179942889030481150414087309005847327661208145345511293780967938972142066115570583469803136874977256847726399793435795450134403090301992215616628046858946678897430550462338705301933883218304832876390409690313847096675225094469919404959968738644254509711198543841875753179479838285388055720279142863106747502908478965800610314898186292786208033372757064957610601919057610903032283461496364508479705144327003399730514978941284872224529457511258119599308417788496070511686364572804380944178549047588581207454770966419570203194495359316571036442106156607309175048312188972992338570158743595135585663962747872742365244765005070887652983959074699882869283970081159112546743940166117252358074947872761026352073351243127237680647235407145266389116270434226726650954741016900467935590702816343804610716776894091133253070585225141241718245589497359132596278390400616346278557128516413580914606012701169400996698792770772249195076009402337189504558810667488261950230656755662282915613623676068621797270456723267052675469482928844082619965653132456466731605619838281254049254188700991113601916543262613830763808600768011468313072201637947571035059820316751400803838080524174523878689066933241738062114984093728510943062802506167934697488481736461493630225183924797680777862590618252140680887150256272147418386889478280549130749577086653818008679003174793726716840272896838037251270556998359980242385082375989445230682424031656588029959759728965880721245263166715651966479315006007689985888198480465913688963563976461504300509630074533499044522654066087336988740851413561645287489203873239720039080805795794130724646058842052379765541663272694326442735844640418445463762428633526389208702900079455649724198513914888915655845305225027024775673837410411885225366846506267807613270166747966769202801020534039025661129855479365795176247532690193091140169182107711918354623874502134052243406162481743579839694004578154109372240713528220116965013228836900489138015276101445808119562627229655614061279570376394214601662595662640246922291078476200405778086750962138506062673378618923345298721671374444354532786008611399701633219169542095091666287260707781896979566826181927723305628028476694925853860382175964806847770016383017875511859942642723257488806787662233510693015959727031880109330826064017872617223781918293045797900918219881842356018280909848391440658755433199852095247042471116850528915363110192957357638736502000519624052264102460310445922527528282200739488827977728689566676318018830193499380460475621882618746774450286588934374012587973589126537927066641201462454266480450539234477288459383643443144793703423312547164814144592873854247730806710019067785709155336079895621944664985064117362040238885271048860025230405321498682724593166820793156653215443319151920670846986573681237121456930265603894914829262361050639374053861747944517474168139289286286883844990398727877065097567011973182460005674832798216515023616503120986917564139475851778071700860367497967978277847080812948406116195095717667282761473706952274553597464719565264939316250989777167551887711952308067286107112076472913049331067169119504196010136171796752184677913712101665465349272853936846398930387427366738698595638894578914333851117808496954154795317272792525815473837226468199390983277393357599815852640624771168972189677292852289065654607031608784482127706955180187389364791671403599858018911912756313410345388688762146772749094038788563550186009131806023400305450975906381322258687281003493029761782822135663909788364274049424083104694636903184113664349783442107642116150515638469770582669407975843216095812913774408630691972650469533478111373135375623727418996299071241585435208328877870115310581860879568405387668950211547612414274783005720055848573262241620159005811210722018697493503828733041777690722139935802185327504013368737006979175465049821898765180952133529503490519993917064257244961227283782162883048467559794694659992981012358980145942245775121494280163693608830493813562053548241480273505358159998383552255379880253137030853312274316913855406155126597809377556542983961242916056281540532873187208397170354238352234945378547414615447436401977249122910528111220739149360597273471553058561685814806805999391579053845765389878633424490640937308270776308049693725672916382108006053198014729208861282731755829250224095335168778350653124469624306291807753508536052940051664082988122463202943252331961887716814691631998305287900748336474834053785482382541595126305434994497981815877818855551801371882205955532742224741033276108952294693386186211979666816779408000764686485952105642868942272598626918469059407083805257428954476728684426384016327665514659436227930210511504953783855984177167475261701150521043601054631903691936670256601312694787982767707740550319927131646600750013630644710780476900801847022282093515968376475643515106375460686416229198240959303155115421954652354839417878462095128832875470145533299897064410606030653008527668895065101433122881428933172833289208202455368661138383659891538714286088149117119201880391810423636867332487999079791057116983533676857171114124580426736714927527814554721451168262247754751875371132647458468662060147151086841593440162219167727751706162897519311883925949045829520355868825150947924658696022143794587421337229440918908158016560356387951601394758111553650747568190818947359714778111499572252689524210110937036781474212009637518255258042298807097472855163726830952473230944367898582511164665337986044027432564855865285990760514565462170448277983322351365002224337364115856594168747433782315303439621372972667004818000027100568287721956125965266265838838868528804392025475316396011817626473247329606886661451066297244941902852753166417560247715032567605232687686887291970193175569274230023719345417068986161687988477030546428198101596406678149998905878346446970083682976055408520519115398058331317371364350258848175490502293660553945771485399583275949785582505194345576654526682673329910499873586160782208235525437639712214025358929966452418462086695510927436962792281621666047306529976118914068596738008287065822797753274280689542551803941986418543372240678838791716222958261543888119352934470609720092964277530451063470574797203090674513016775346254856797142453717919620435794268774425748966424960147221656346037340345611051695716445716527558206290741929812979949670529491658986227610102171637453486261791144769055715781278000016896974030991163787017222601737110150286019888307749809681782242881728938166983771135413908745371951092528586491005882731117677554712743834320081814700418136731497141136410927346337557907665741207773365806338317914270540667735273486008696115714354442139188736963750840445307626930391148951494758784108723021813852303950246604604657486431038889147862659492910761791772324907233252596902544756274067761340227123697701939117094888161942678645051984930413184873493334892758128320346687157113226251097821411795820706362755323457242119830992626123680303435044343033576397897665097685132251347377142448142007558029701664686167445924997636567353355519768726445395159229627894469545410984171039920250088144030757395698090726391659576227238885744203358983323902001466970828789808004545893509176754325297316178143250960087075404497816561541555531114743246405134849830716673457546908687815020786417245136793227704210898679656956983706669980288264115002401800466824377157087144568703998069673044340375820318044446264075737919470095513831890569841684784688866621058904175274718875197615310740697854571018781673189230558021449260049101309629656842492095757974825344497757449081890174952677197749437722610213928095421976761410624802001219301910798997696655718673678393753882295930041081870543284321213393636454577544069304874762192706930566567645932259857547287549447180415863461171722679385090133253823629643771618991987530034150209837665186865367627957886163919292648300102954063308334866486349104752800859895734861675990908424885003245328625662258061445849435054239126251700505783629932151543649254911150442717620502678717521322686632353191352009384429381496980609131938551016863699110898224767459021686453693516016894985804638691655288506146080857889319760337386209863163764226836660422778522108051106843230441114656987133629962197839147500841087356500886206218835692426371229337454964880050780258184449167671762455446212970176435715674816121826687750084584098084040346379374933635592267518809486490996204156826330811565652053319101591868288521377018398138938149978626138928451608103876022489089962965309562541985236671406584413825230426803032710232511909932896872608899343807231480950238100096918981527988262354186857305533904348866260046901482729696617424192617660690891239341287780780777135568879407317341428769924452781604354811785129619225723179713521471026086143957307172526797781709107130285676335468086202632056402312121458311172726570659193860183698137931071040705664722686777339409217948267683202992018847084929589064237216568670014515808232369470395448323462782160751358752884802240719713230295049766621059390491703618897494965884727399914082429708959909103505587783261622871952803490452908123846566107888040377352175865599966827246200752902123077451661784968620673840577442347217863730468803796552019474064720888682699254282184837687392787999255788204398541961047825549527675876964765126259903885678262640299153630108156022524322534539932530927566763914852310282116369110201587603440594410169596750455177765745737279730281898009926879009389787564420490062820472422637964590975628057398495463722749112117797957019716090079095007573082174599795320140615605215412522765078926841425087710042789762083148185061653257672115209957415763949533714085329186130684321779435560261054238218449723230922208289043365258182711596699209466464467379007566843849937477453228498987843067453661363448291800839420723553840616359478536551718401005049400405012921752496493985773376324952290802436735039548268299731344039355012340095213515648318646911102497809294171480524828915877977274419898012644225785049931824892596252478226688592665576341627465208706283344913970111811533291171766253317195047634407318084529668522974732404107221653309653897041577638031708525626085018890361324416292275256413745101445681604831063307789194710698139631330159688414702398602984248346250037366008996438039959575261431926691984286514890167658739640916795974149262481969716358867203519461230637525762474109569012665971168703890992371074112926402863495429859066021525879960582651271860028691305411747759399027231972547115639738866765798977801654069444832465651289993794328633848441130636129818620466894820014902524460922398174952826094828885010878937384039611994314038417092598475021524039985809602750522388420636666150529323537644941101300184606229248513097150667992496898037033087750864358944488052744971401544585671548647043704897292779783388240351680843800651724355486991231038905634979814325647914764998931879724380290464585215190544438610183790988094820933938150878770766049220580187855403914177814689175243348019557667573154584634536022254684068373195600312650422658215238027099274938987614052678687602914196209892962904275195576259002727541245199205645588702542034073936864993000354836621496444267721412717700913767694474632845164747136737889157083724257812045657325078523563101075607403556487813160560098538099897713096832901941357275479070555075630666308727176693119075308829597053010502317766201977525817638184252685199717652186801632386508174435715995584856837668879856810516471086714805560839402456198223996136232626941504993762321432409176616958416871370388505942940204661379948264618129511981507952616514601019396449035479214962761530148610475480540579382864429491398602139477184901000499443961802738968741223571155785040922463127077938728909192058474554876847740285509518599233729149383566183278613024862757753132420382569650313673781184026608699179000257116316488804479729486049912249028281947614494162917915913146432767037389493100534833503252341640060649865510072822004660424162327037357671559857886784636828399927982272804136761307960133266650492620374692680224750374255005891854982193210755117391553673437987381199314085949989235006810229480275739766033342609016065411282904152548229126428203845937356499891201032848638234898282313155766358869657831984491267816614341354430070274034886305103407762558508083733837413800350353041429385969097840528658385560155754134755597850847511567527666929818681438175928827396479793374217340749398123225843578457970100504462662602931901515192083829387722333035886328997294913342510850350907216586359659189761639423531480931864603500916345909654719968531329768718035352389125025565178312041632620211474095541089585217154817785896737797242799060462400816517189631347273179865575416612384426565639252426042800986645021661596924035650638693749989282654529865778907130031725539463104403966628424197418563778293640746137511524090831346166124526796476379346237208985255418769772577193201889555102633668147869833840047742382656990376716149210623747977907433143492258050800066194280797359965931046366333366642782097815461257787328952565068823616864489143429069418546013205716233305073583796349124998779589388692012413949251506280625791732363517982608316090904192944165282940901600217126669217706021883179900212768048723533980934513438378173405911460090411360753462434755997700347050838096443423652157346059556628472611649223750919803369012288316464943236641628718140025275146348489837594738733080487335424740780202623476469172106752089529893557677380673745446291294002810645439271869813608365559218937997028792300414833813537554961053590271512458883146938405837957615602521868557651358980592811290454091978221920539042299717876158850858693206577985149053572207728694417371723109998817941553605304124001236799742252323104523683673964465632332264870984240502913162122829182519420723989494444312570133949721095833962858677745006027442037864514373483685017199955520683948645307674336589051090869005314633745718322489200905007545419980521830837094559904606043870895651931174983019146550305384943154163187745543525661983961018250918320588105367396218314787202907584354996182262190383500969201396034170185175602707924970699942775275649379254639016963377699203609816032228669510153892402479672218558894694325842432230649555809890657070086009949246777130202198355322629395048310325177354763779464938446545814460657782335899789943020142639994849212371857073451627743392528930351698484596713092668721837776198003622635281094363184416174020011414245036485100004403797226791588124431461805761012961353771360530682056672054563411946665974621606276321588800894663353580395713009950547222655275949937043542626454421938865394986148760672667023185982349986270082320694793855371836269609120708526925097952669028118987070493277708472709263879693502081604590303321132234201491309845582597800976612446043921354129979793139970847552557323207386126471160643752295424932495429305103998902726497484836437761506048301670994868152586461518219557148872191210773488122213739779426374565045180684002358714731611355485948876938161482165598178480544375823473727538274471673420078762480563108481437917099382614492847224479526153268809117173102480808118914495535270879010942635957289523261071404271469265832416457004206810930345876597774501480124666738677257911422837996975726802390769974267382036946320818426813666494325731508678318893807449803622320349875046054755867261181890857737726516094810637095121833754736368124698723100880673562470757771623360694959953100184261697732917802498766745657373844870366446977994287404967424367214149363489375987647281620294194497453737989649475763054189571960700487574020748740292525902656873782367718532920489642407174631416297139607654121721370375320095575349637210982561526292622898902249500636489513611234429634803817870880165884866209286359778068297443164118984742597111063328071038595012762958877077417874882786859995932686290094905258218661314050798046038869480721095709825220189351813767462361430735365977592878093048863411346695971463122248750956079912627693953221697908188485958231486133929128680765065744071408885461301243819438688628366139533428296318942609022087172608316401726086586020482837354829522155051640114543934375213732969203979386371891336795604151028407387338025993475291874588975738207025127891269007796783541387662159917943613713639790078117376269742897758100927894728005543553489092636909261880287297231878272943555021873850777714798377898354859900641945427910258619880385351599833113348191108356130188883109650962178915983390764820499899433575603646067402536478158272374950459229882627636141549899173147818766012960980931500186558811466923039982842257014384451275552575817458678754027643531532013088431250585781792598158600256918127589140292523530281910363519442821599241473747033316231343956717925405370027740704777187753654542471970217970997212550259157059542292370816825106229296007469612346804132604718834128321088451409109416973267147767845442163495877339313972791274047894108000135325044102989045793073889797810860060670715678252131692470801394008011730538333669049496915954050352115211225775367858546713473642932759481770982828639695485750310768561468613789785618127098520973404712583471321808628596910715696687452502424372529718117385432762703348772946562430153212593683567549520218125131444119232482873228792989390698759792705971626751391136858122190082333936606645574516944478910989945532564376728719359280706195222567196372418633846160563519374431545494404622289913446473659928698318982332556201582120076112302439336162398871062725599752129060183905672293432430019048949674933973332720112008264558498052779596892290522180354983437420404843584112499319887370046153615779336971354921049863161515839486938115570728959120802812616409530026414356218012487917463169588509003786201449088240324033291739688894534080850354404219093904600456833110418987573208989123773551209859957658058599402143460081294755580867961942914804403330363206002127690669228329115195069424978724164224221204970546722461254432047100271590694880402938947284722768229372356620165041513061508149302380437594912009868898749783784718270912075482475318307762735512537694761790437307463191308383492544505832912989368263572940756417066877261412946324944368788286046385974314145047933061565903772486700461387407774219353083982842867075588952013668872533894772178824448129232703897291093243786330284714063929851766038422718976335087974459098809532258889980636871485118076247370448707437042754178621327561571735606862023173080448238852854523523057102601456632759166041960293136577821550558870492578791447544506104912728811456507717422608793128442861882734677318871546663330017315409245917319714855503599275464006914608178477422998242483043900557530130548874348519424277300901742538363295665862992115898267283526212823959842111849610537781613288537021822111928883083830981062970678986980770395679221351251223497343632620309057857514020517287405437992686602126647128940510685712698341876350323210310057266507686758859585160078011001161568071899236078393388723050278364921413278805913809544735728948193313468720358690442739837575642705709538929039398642291505616494856502762641623046737104100861703679720186312002216058599316583579608649615390156131371677539439029692902341059357861494277025924526046156468729503898966963784957174724707998193163894876778370517696538869740890880516053772687260830761400443618291330651980043474746743228195226915720558433637657424397610480167283125944247716281215136544384455707077845735876087870784882023310727818431150735855629878083652890715607247829316828880133729796220551613327386243447487299960604041877778259657103988545534702918332701339980962903966370227659850474906262494739996146514396083889122446158733951315381040402651233963504441546200195241525393353464193862965159841931859344295115547344456764411517649830450593943423908911348668384531767327323520540272693129085290476930983939531988114451559146630695162464495337168279049173687610007039160036510724966462944930778514055356051476007959926652025267468108119708276708167211704864796550722528977598640013503508221186361246969613152391476447340268020566611981847659652149969239177563614859988606216352486352185716195798517261993221264711896337302328634207080110959144591976611857106850255472874406297072144910418716208545512980299998022659530816259932502067844099260854159875188375765928304511251132192806222663588567377067545042356208611168246407852165989485731625789207008038065914602929771926229901525588529257694367311269746385772160368302401930948665677871842855005392293962787163820181868204241115905092845277832971345958355377540118457975864604278865357818474935511371525508627596438335139014440239003504125315684922047670116500178954299864959863807944013844087688617301501127487250698934554668129410034683486377068057931862850879993371065439447041962693287885941320427117669098736562575178345576957181998713203373571222800902367642833756239433820341343638657297552202345171789916467752392543442091185612946739522567245137122773533292893018425484751682115764021591512146970193115019058115337238393464681995153731864983319779000944185243428272358590353976319537557982610262185023168269226524382587411655213851607345464949144489822801472773805143914892946938953466779969698300635719080177670822348992745282834770605927362336908739074763988253994348794805850817802901421062373582501833855451366754728899118744919907313658095245196440136701582187925963033466307639202971380284567380308732990365601293331131835840071194199340913290066236091579633349917120813827889955715476929243815930571709048368300025859617595783867993826371429858939910219005148851308478442660603959820024241457730642994760050721757787185641992951621662894151238738878935058038405431320182107208901187386471249946897411816215132751385883603644608280630954826580611965889992453007649241588632253866976432297128297027359518715495384073692710317060931403365703489046315947158735492538017299505882255921575682010681423535636584236468311289539570818409488493072023796298163641235376751116984202850590191218148840886566290805236100040930829424361901883891587977932350442934703462093646905832782243852074206379015952172461604363314771379472627029823171782920871461702812937057600815444273347218749626585666218881251043378608520738949426150918479995036260074114191170684537548846102134523504807844048743077261246048305644831014005842537811268000958533221788007631093914611824633644573858187522028319320631477419923698066305017405755918254376562554353356376985293688335814132236490764080452801965539172795061089559692858689302528084714166048005347761577789534829487749371924890647564597813561662308083530182350276530553405634468324982771999469055045700960609550610579591631571381851325855111348148968630793286610284971859435642113190862067812280254667147225662367301750308852664675353193621590376116071074259710992841553845704989559354629895337190297738975946748318868661744010951626617993418213008348602435970174038506720635323723326292083268069960607699257185795406500474840810734707000644910946160658595314148012155407666299697303541628129038693314759968004162977533001379445294421305272573075993285955396972228406237516758747403009217959914661905875259476509670141702299103007451061867494851301824225342104598322926343277086192489632263217107871062246987322001491935709317935488157293884398651806730865271659532696505712917300815536230039766105609382470255815022949292427802387155442680440850977490142447006780036284882443406978031432111629548705131322781187490215503797813072139040581436639767588609850348938362530581595749914062769325117749528771321462259173120844562954156838797323532338808360329907115703853060120282887783460813349871636036581242951280157350486224399076944536239658752002880571107664415935410545444609259722853475778332503823627430478304283185867492799197341393269599376502159472362905809055833030960924479903285048103601306052706158816189127666642792623420419887387621019792014521471174618043739182727023186390148731864840049806580453088916235622947843114252863418064934603397225002476490309928748045466443131068786222340808975877297641920634137943204189183277364461996345939101246823565989144863814109700059055169652731658144324853527183552662010326784451625029110724229084001950682121555104746597852612056196100022823826628777749234677488269124945279990011242621730028639882965627043273565150154131005380792896055242326554218005205721402968931499450129149820418278826185513663377507597029100094861911560215671792597134372601526019195599294245413820206426164022628710801948708827266920083115846883400885739904377181399648063613303254252730807051568592812520472823066537712475004392677172177216085439757933546408197648676774952783955537286818042637532709330309739348215565594429634158235490177311499824270361788178966924176251303291815030466275278618664911067683781954173988987825039183061180950297847016157194833124609517450838894933399123854373822862437498779370627818715043752731185861595180357112029158962023888117810712419392754445189005670356412879540771246657668192626430082608340371941374093972051160970827611925420550699438208833926464066095790740607591485755065024770247797167633025104409174527308406732796387932604861500531899643629703336167530902345838771473448269538618461686952743734464698266105715661714392497782888791227151697299186203356876946210485044894045796166434589887508206729438588647929163408677367593939299616043451496637611897027599288669794995091636950826404124557103307925114974514382426470510322380532556001476815747669769051135586501367505348531132222559480188217855925441397036436668287207885152896668904748631913595142625669452304693280265166093726527839042482644659446063496598065047713029155538160302507872167388657820543080866210344088590903188631238754126801614888394930720062262981196872025822439098820345168036180686361311107967113322109018256728046216083796017503754731229930413274892847467582846575552695116986713881883989295415556209945143995951168785202229676234682044342367953739874607175833129724203608469969355640041921687138501257504745733730460892497075239294716394261899885158237291605600846531401751140569481095405259703792254307025118197085707643964502592651704747568333337432331529378994479449512555586301840836397398814446402588305901914912934085136249475227946962302301685276808254045592931643050578143019179228354705779059274401012681404477092429729591943076485563852846367502601924266556891639779871006724125787381255243556729691694576439618010880078437330761580877160745202076450586386439225591782982767490795085859955937562377571716105558514748861983005831736003567198013717066258749833867636649457702080535195357000949097101566447504894056157121880045302154067100189418113823434597018818835651900055959148275891496492519670315488945966209120691341252028923622175826905300778023115064754737888286230098284771353028692720239389787270847437178864013773493403795357305859077251229492553920303567376512056989499156908247643782949235255500074969854853107075718319384597356510931136041352519860564878242094122867320733829313179437540688676361545061846563718371286566000782596941315594153520864278718659914872039613020729603161552865828939944572184215687272993915209033001344956414565338117952327713801911840436098586509245223399587929424940494238895836239531513072748683950022811618620945133967834125148192730669146089688190221528182974383137336797967609100441165076989382688971633620727121855553768667698163485033053622728692179690089929663242295209698554625657740584901817511221551198723606143663069018037809749328994738483661313931702594130094314155101175816438953340690079375007115763169889677045568935711860949081377428317032685742433599035167317248908155662502354931073074953672759233971029648121122722794887229347352499083822019471229658941064977909235168409237886092638753622385532074050964701524503647687055613958259985558286076671233192013028697360668733431164314719985474012602384814381036555919175643958902049538178136413281404852680320050396128159705028526368988215073126807531782525143722730445799159279064439650930545598098386111628031779897484331957021581898676369215577891466133547921014152746625173288381948421768200334250393529918845454906681202841736864266226171144628595745613150167565267130063057690954687763120072879439483250014094249152407521279718688121183483058638774828060107706234462694812070945434027354751719022182790007688995679370621231682372438212607677253251675501071232812715896674801571180214046454745830602659887756428446911731651230158446397395609235186185064698841153487184226287645009358494138571403691918684419983409215938134919025209040870888810183796367500513533459666896115806108268423453640205632652958560468850952445169209548464544502263762451171166480765086808288049477036633404707375656561772026082569517553374963035760806259282264617791157242289025337505033156853366613800498293660135164928439778485145338517554496457034950083120042784190857537866793927344471957488899262167200218275055166844888247970803792456297993931578861526942399758356118896151945852534262406553428108740235870203394417947739513646912731837466082110533595712352109236758949367676496875765443759808321288553463325416048136418997504794004174179861050388575375434993352133065253154105628237103905074665655893169030280466709843038262697176651791460002965883055945538965010179328378429479338766394300721090619356181700525364649990971545528924232047089562155496335119617128624368994553113949851888922979996429792607275993700655859969307141677208798591387550498833753485110569977072722435462529860269981859450256440362191562601820041530688799064831544577730215076948381694056751975612429722279470937943024709964081879997381807764883373959576721400539957431981100978028667222482703812455169912050038423255474724570594470996786372136290676506677647238565202490875413145323255432290300454565028527537227236142752573613711689511123695229957155438988572531913613705989769048458753146357928456410130722148399946979400523480823880675889663567043715305625130237456690725636274202488914444419629456712051898016837602582929018013781882484258530578196921118794801690513517817163741687027364768757660817392488665818337283429619176092598909296411629616271830154517733478961291960802634378286775095144857491153863644746221211911169322373545299226796121433899704618942896965664340399024494724483201305273695147731281559539723453129859634520500042393089331674936447540981869546888104779559180077739387636621661751696630224727499301709593635495133513671252557123925795653231318741895973969601300043184578564113549732953273013486329021209986546836377506522949081571451785804922724662131359345031310215283985316714307828212375409668054939204111505354815430453195515150885395104702910054734281039447721970800969520587137925781776216645676401079987714753218818998833221729765949461590771008083492034634909785311256870318043536304294409915980110376732849035815184320800588337668933336471722613282473545496793356806598727434861611050130868817303553069530697979061103064051693562475401697388531651166395607775244456939572659217767580026293433489925985219175389614644898245935941046866296593162828168162615446236342930924281526216754464979126021203949022213332746999427258211895558079270441881371644060116300285600783582009333211456052020901723644703062643803844862322813628417396843708242795809786948522020088718915308232426001053513298794796417447039877996679329966792216854831111926967862693775520346988277043033892259171816885450908051005233081889780755428649366449780383345678087392937895430957332490146882166268213203324165986509291354383056009884984450103294353599113801240821098695295033462638610970244899628135230229064935734369674853860832236039496245935699492161989145031420683106348386317515434066231026688942124601830480982643617987391233876345595226569934807939849291884180510869284135996986992045727714449604660536268270412449377913915443075792741619003661138920996032328916598740499028368281951796051462345335139784663170935011585443783948243108280420346304855501646947659816395799297933451787314119782609143836847628738015933948669615759016146292862626723988094680249658386872012469906170930092077305979664924566963857587365129731351688744376312285000447881268084225110800004054583205112160929670517233473458231442787404285959136682447701590810756564450888940834477230050417162460042440182238893526081945089462199205972410963297357160558458511799142769044098013045416735046977167057597969185355454232578514069888557210913204104744635422698815714251255364800402504573895441016629278970019434269439034604859772840599938010180476342966831560676777429981340847886578648001585929230817937649902978254170552776810152731033917925647519313745374518523285371611280781573099539708966009669291697707991406851582181930048308094489321364486456050790532778599171380458178424124436166620279891320006106585712328026440532716483818990424441339613139411047279937148384581263485384878801382799955365778280054968829239839810159060560879265650895698195202738075920452259101599749134309100065855015594340193208244671519428147791640159162062885733837832614700382871932807124331925882363969589415568250006712341456462119409686244882107307028546534719793265451790469342041871221721690492793895619354358875194790004253491562220390796261734066858452989532960623025739652513586836042003331000217655765738768018286307358571819568531570235821559172873564002504455736986742237601932141735756258164865190925670053004402227761445167168044083180014759038143300484747510250914880920521710330738436572707146622379045338947577332760850108794266937905205158619258593969832814817230666109907208068042161593821118871675353341531867470301915603318520811787584567718292862691869468885805306749879348699781654398095085120727024057701533556072401773491427927407137670273730194351307327543704257643270866014557463513906585300238432467827415466371855547150562991043983618650957749806446312993316747095859656951682643672514178770471821991000204844216079905798902080208623808396585694040098043781889805833591269377562904248198025207045058676640312075130043552052839867156548656736534231804825332489343807555137210921900823671951529622951902455675492704942361115975654045112576396280534832606368361765933696388469481583875797324061868793323713975238918694091944141333007933121725359560113020852321387714143493986990919720372565684527021565796521859776164252362776610114011441731216476395525782899384840591281875027632735375191223894412323382216654293650129806860886235469316326959324900499018518039603005632265647721762238673836141116629910323644874159372305561254503102291247722535881689110445838214467590040992043869480525555935215271226300718811714866490497826101132135092283366433632476364475967819117479942371747306726422424235951103791915073638464387573764120819123370703291908066249094768550031019088711474704795716557744425019174898516651703169440169840921472727097767068398167531180879922107735467617499056830612222800907806333088714035614916235859003359727926767166883725359329253306519972286028749871720170460649560127821606546795550369903816464333149224333095062229734103675363105190525969316306230961388138635830361482948753208170604219148531406239767456107542167887387808780471680926194076525978307241052363450856398561325384108646561134818542098176071751244107330420758432179798318187629161745846065766482210839400578585638074210427665244823494930304615213016433770819871910598296322417288352442579966228524999966519452468738689536391521799203767370853833277854187562301333424137794809227108600438355894021769423800647768700813855391471203622649337880801737189019937364077581775527809356788399679188631491415237053572649383988048182840789911205861768587048427382242665796754133388813303926939200335976125716390617437473648014236061194376393928658935995348713005180986023569147993738941780320523732270951967303184443992123764770715267994250018012646881495157799495184383451995489472487152490082821487467813157746240268808118537092676066530392607064889641695132990354485415143256626368054915558179012905889805503581445305529789218071474152225043141356031948213557659606298063321699146775424502427852848068982555123683479298998077707105939963958061663832898786926153230750156595633632243435359852130711239881271865669014857526397621451591422557331589694065322655813618730656851060443115007107237016169844955475909212363249780057767766655353203044531565732481067362359080925024412458538015357350538580967727510567503704887175455679807058288762780893916312896262355893965788974712099130316236994027780095209163245627634666745582507346052318245473808725638479799664170372944149135320568515609656391559513232289957185427199436454661020758819499288550589764818461596543723904564640059498012137132224599559289154199242327935920645901523042293644114201768585223233236922201510004273956708164047019629944416438140115461400237202336401112333046875150443919176216726362169478137790415178174465516311904179132934982987628800833843069703072526749084576508558346551929569697456434941990380881648481070617461770709691539953065713569798095025111042729256787441924593518538172957092982496951743470497004884729325962956350142115937289722780606248240429938291711211310895749186387342922407485984148210391731648968829045753223314493751469776103678581068924139066899640763830263115353722780979443594873074171505280983699585915236953408203376897350548880846851110030703064183864734416941542731206238369283801812944755482308040523185368817131622069518706236464579758094418583249648517015143286099911455293333983555850850591220970910763533686825936312393211253241217065831343445813056605205655730430730037973074421576013811909571384865449804154684786936049861062561828336092165207331530142040129403707066274272865083465665299420185040300841406444767793407009305697601543514631244067865716633317538461164236955787728994786991119329940104555027585210404876605393475179944228727273551155587105579713778688515858818524593478978367757920998449631069764296255894820042210381273610566647387433809474881430578890319006882987846249940594728710917862647229374905186174676351372067527949425439191095375586743771187611240287132966545516783822204714763054795193719410902411619934127083023733712788737671437284308905451818823269396301277746090758383995155826990732181123169990902185320160039088455676157426930563941554122575833281215885640024636409827637657657009548020751262920266155472620364615496016476190328243396879342329312917613453359688204597198555141599872879038667980385128223981883951553659699248334120524573911811490623655598037393516822708934948852096882674848595134901321517983807923437422466368802039127076231647832234795722134392394106977087988648584339341196196520081861868797882643398919302568523674095675386830925305459973664035773110423083004989530513829732563646320998694392885328813042038414406293327375382337325082757302075865020501620385131955581989830799749894419334061692834972299974752650625535379205437972444496756982245626186550834474591915121494697947991662510094469631900816522567596214468743256280571199484919917626015452206129462480389498752751062937637800513995397039665360741569790852324574597910779003583195751198500544997348644092519979981199340251650118585644191686605025127331971005506780291545087501175972463782638741437775544518722560634753277725225828696306899599193405165653276871067655307679958995973551551056218883314425427126803157864368053044512924468542380103540281720273152269488647788106142344817724913105181791772151920238404050880172693934716000155503405755902108905457656835387162975245196162377716428007558497512821813941091499497556203423283909661385963466618156309730610271078288809380890002394186998837276666143670125898584260434814454280083369977241155798063538854257862744037242730444805059150298293157467989139882612189361009588564222336602335884795361789301840086995906961876675535218191230778519473757476794552128583655993438207033972915890651471894987027736731780624108314883222291705272508865321987842971173902777224816862552447131561707567252362710099896864818915024190886112876138784481458287943245163844532408835391395295862160784945603093527903903561357084608206634848251492868722256800407466155537602178649511495569494634289979472035742650561650618080399198732020639795800411358151987855058524978596453581119817285492090038256628755905431260858659337550451246073911330989434779682543793859493377651254822039901248787903724817684967342264585247954933785487418711659781818357607996233223641685945151804520429614250813031595892282486116985739050241643901198217178939183069962516712282503918422132106356941850331760648071111072548762915945134408389452653804709915640813261495976222297661572525713810092496970001705257273398109435741169883314715517404376088708487166758466845727667550467179668292442144680885448503810499841092398865522943692592763734078990859192001778633613400556791725122655657715698575229955294402802144172157105869293401011419342342780103920834884760883356498034722707191683937230725047884996176955772630091160002853918172122994204148533806908272179527033550974223032217217726019521211150621687874102959844097739053859424162769766020548965265665232201657769052950816051626313761138395276148916093723270099484829271288391460561257565448905789325035525021029211144127212973975088851759227178376026072221632677620349352053289909806744431550892450724956800472038637197290685184877111211610176420822562153675050312847894403288476420893954789843570543245455188406095117841110130767225436465467336517975276059105764058334536974987834238936971196104611994524597345402687925352662885596029917026708126546813993576386814424927031107302927161601583338305850703088651672522106611111220011763941525499763608341565656495773153025770290949133861683133355092739667575296974379838244171877742238615261587162685539189734170599255844222923825211549719817258471629197181012236139519052500752949618017589831928910922457964349785231695803629694018774656106827917629036395896700633802469965168634967572923958874392767252829185008065224461173858670265540073405691626962714567343311466985946995878863332513589361052652531117065415040128056932583625782375741363681359547086759636529914233588855446960861103095278051932219532527909166104817608075413219984212341069344695562685943179941699288691901082282890511884999087189926472441632867690689283626521017647329524270342655553222380799283490777797312769191666472606800185522839805911840008659287442180152792877206088188020690243835092830460501525195530135281148058830994677010628076313615586073835359262100465046051829777708523522104739607150691529944225025802760643442947656623432316437131473292464901902656632712066161358484899742763210231692497392148314956919409409877333240135353778229746317846331800341861394354944976529563879900124256447136959213964911846441802764569589007201443385250866835452922462566056990355071296554583975681694707545425621274334172542697801446393876941303617272659003195990840153809954925412526289114962020006013069675450056211545145541745199483508659766942093050652251771699440220714483207595198588269215437807873086469302357258180418530387387632155087885944366403590555994646967656089851280722841342136713251730297873473669376553625916498903191020644714839064905637248547235760847869566006912065837112338797625216035886051639063794933058799084428578578745168545963239049295336580134633377004229913640919548764861085697930503757385705049724586284354903679440300242877194445352043853789992181422792151083000156352702223150896432573163226982810940301040663453911472529728713241135032106229927269939132784841778359707211900518782782738708847622832804561619492859939453239558623668145471295926979822207198823301816339886560317298429174626386274692469573038294899312225727002941743696489898236292343289919963674121886224780860083191920653296663573331995007757018388542786883759419323614676258691812917420276219641146842949426086673268787529656846608846074820707381526722810103498897164730092426425189098581685397513417257548427644022286930957421372574617759304637303886912582631411751658760755949784373513769916144737724344178795509345239502230460326235545480038221493074162953516010479789635179033826197174280661308946367506794329037402719420060401217055497405013570217747777356197833143736130596836087092391945389961267674132507473104542872859191197781118344105797736931619298958286097250257828720366676526357859158093171939367240186737231470558892750946558038308272390639385437816955875213698115338368846397025024110006735603263681863261697849274426492034268829249031594268384760362360937415032867453623916904258883454723192822487621685755006632230977123565194041129109867580444493568835174150829454031855087954961704012181216996046090765207427445696099305464401922007225353272265432225366637036500584955636093312626900755281250169304647626461068766245933184064091416850632152378394583959175602393126024042598389456433307059489363839232225930423753158441445390010821261705294047938944713890357736513013806492566377910203518637005161266010626639589963296902693080550993452433626576742316908142194520494600017627133889293719572153511629332933852488933869424648428497958268100900480737134856594820347998010869599287193089207740433841233977521937017717875251088349928288434346338057160620040141291067288303082594634868810348491770269139050158437345674729440222488419760280036905440223909526284793991402910080331571332436462793924992833117265266784173481799484303333924411592092433908640385866719678779752030422914623716533016851988755113867226090682893359474080855509672234590008095285949793114881670709355590701413872589300166223052726462460621196040010600731839461224236820422966030737264698481459715474261590254151330998684330026928702398092565034651901765566752463857230213599856912007424825712154006153044111068061419845781647422490014139591070012949399766033741003731352527817818249180958494339783386455872198362737600927779388574611189803144060162068756315582759502999428945005204764902924810251264917874264966607929708476986257701087861786048449271666907628952068093787540171711409976784347445195756435322619711449383892880892938009961463064147804259528959538869404680911693527914653184844301423134885721338804337511133728535787396592492986349212292781024433692999849680384306199606752494078726764894190214981789042739223393674657354842987843984601744950583903405494661357794466271420810952673035780820398629311383960816331417098056939997780680779578905863652777324736608299736392882391008006380962007309641308711282023809497454324311544880276480170809754597284078485020096777660471420343428673354848036653341199487870064922127375541762527476037261342089147582179513738718386646974082854974713785045005874124944993435493697383061278245084479384400054388175867651817857610918258576510937444919338352279351595682620517860425635016432136247538523224821605736668768966078784308442618159263371590918726897655723518877666121012333679136543688934320862593597101064560163976032337731562364737705324969155029226151011970463857228056487143866074768457223061340575777507234624594860085815610892817225903822229025667470851624155070840078877551367802923204975036379765174590938473979956405033621366080040021057171260059454035934652650471786167338949434154641472737483894873774225360789708899145270152002745025081731761131995707027934812206101404402188168929342999287200141521170845714393469212305911309160631590832040746187120183337049325039302195349417608133525137381256618461401287311636916338033706757755033125634325662116483685306884220729344932473029063272860293142660688643724973150948529537921294384686828644571809020652965750800228769483833397639234349171287268236575815923473706839661521870521086590020201447030277972799808111909206878169384025849664187880304959442409536755223400866995744377416242964681854457888570109985387637594635031221069859824361118693391949169037888782615737824328637296663414911597480841805826899501819063147930186389359883736172305099517520021100130914344210021533560518350158502930293190017866912827539855293721370629927370825985147981266409709670615355463600335178120162307334784934354258257931022853128242434511419220208809367536496821820966148973673446406966129165508212044315321304157336755779310298028436739535680205781851180497190219770771119968253878863094034664060670345358159342069575124496079746372537143139028909003041134247496313909727512751131255823889371133516550992768115025211295225158845048114678619142488189648291399251207746957614278175300131635088231522257858285902029044705184676940748087074678978797396686637489196494025722368527772974683213739483152204900678956431933659552877423430440067537666316667649385498969997531580862075555287773955714403541792422346771111333275360045774433629642592114837137494400159877547953208576523208645294744693531551842038545134672901727614822791771644796278340611772924559434754724773761527771542821310400517377511921610244142502008058896639996721133575934753054058592874788773782826565025653407127086569570463699961959131163309242052597953192483330901682286847066963925557542573855098007012395785644214670397244106957200043821174044910633626579829415927886813264697579812126616138280688468924173994282780192249698460179256491503952168928271957821605962167289574762730660455310294612485214304914246964018284405979775966740414226235827679406687213516991977263518479794743969043994076201503527144535868384351962077834701073139074050989007048517460087524972440175448767442932661747522059464269435377461347831557331032517070054904576551685008204980484824567364582146196798957557983072354358378447004632015882258569401138452731395325792534706345461839988681483728038122174813485637381969582393970209054211273096406982051308789452386108780609508466234720594452983173315230044506895584534036735359389553366608031629606607608160696142579873405543471336343386764408704191127108486181790075754598226072461311551357345131748686196634904977798449269343393764979128609443825980561356617821409959041487285019718726627007295010069916661696329181832266949842561592059056212496475052875731518156114732816432439098250707646099523140261201435099066551435217868993986360561286965526471456377193444125077254944375844376445033442383138926932320984329115721159916722266990356140453334804861982165096095541938101686429540343373439207588408292655479528418569405629887887350317801083953875702071065695816151837820819068184241934001023130206147930638357537651615695957670881631350473972062049040619101206842419094957681723531965684761674074789147834175069977147915283659203480481020885020328237973136345022035212646263566938808021596741063708683954262026221122575032083619030494613351717722230212517006612653857345294878961915059833053994655159716150206362588724965713253613729979486286426138187919464137823063469848734539035442843314342190700030302117400261806521564458089349499053428992326702894755124847148412177602774634784490161595188195065128540905146955865565378290742719780300119907215541167404422760790065081020885311785296309815208656163100819882143415816814963753405233435416441295028418091324843927932003153101733702914764112852249358413229163400640629380131181009567262374464334894374228980360762674059239604178970458562276358005458833196957145306714845137894156537154417105504903907255787973983013746272497876615043145951473681333593104927545678515948601109535623653561823365945247006223167606886388385413469441663932180073912023430403213633576416126309592113684330633384559872572094262396291424640838093929947055199709379693844583189545548553790110147132600574729655969744760466785855304193450306819899975217136999603342540082571309002779608113445671669782232000414281394362339638918039428214875245651371993621671835947118884223435177215325697608220870436896307314844509516597548976953974550455702976311438189472665892163640163260997418350517026649705575564753714421547121762959306319488946052900973993493723712774905304538773419744834690985975973105115031938063141958722254883255522693388369349890747243116719511423231933484063009360145598894229989961411266515389104950291823365046140189797354341871956630249508951378137148728877539858395562378588188559881401497862535587691085181327526780704145629613305332655425556964401898312418691715597183427085147154394741441111850081486864916290557388832136151413846482351761410543864167128365295371434428106298865527843272027910980519151678260749999629629700883947599070436816019229852805165120142383210908841019919007212528123818807029148451765691233434343341993191389098991128151109166709398918050350629820450303378838346230009248024622828289242653865365666542865687166514760594280478345047729056054058104959907967674585550146210532277801342712238978474288238023066663760222092427423609395799803296401800642954162847785585010059048090843272959682873704006241274421163506248465207122587581607464092679666000513185298058192537536073461252663162125135825061326355913228046905560677408427154425964629995844498351269397116790287286003396447391328284565948131458066530139739198309588894430155098784993402091298202518032972320412355046412526633979185046150524031471027575502332117862626061410583062729172283775359881299447250072756082988016606055627357514168154569233077342140236730271458628263158857284228546392426874485313150877710622728087508219707423955332008426975194304197305431246391499452802613859649201746507285621826142748303958002276306245730093269822703941579409191164557292860564524964720678737911412724553003953418817498271106863640130552259659816581542257260902849082523323351113037487604853613109846592838342418400062854831592322883893780456408383360097415128209623222359107435232182084445363342502259692561818440410561334248032339980797988088157336795097946257476226472716743067428167927228383728313972969261158155405445000791874447203574048707590328592103753645578540330740752722655092791138270063160376449680948257550491105386774361397614677356955543144320622905157889771386484711934189987242579092257160695041944500122058709255627191690785354022697210722094517737385674774098656620806423516037134414738272339767139601923525042547281189071458962054296070783410995271456259488685280027470626359944272176207402213053759285299745021410427116060376381868692197803465454298150536739714795258113823169548896551815835018294531177167553102809137930437891420792930564632107939415478909040842201352070302787236262792258769847784466885921332094411974660190660988484794059861142646153572116976769180690415084802564678568168385874550269043464103068167116961746815872536573439445738834965796850891065990099840902704913679548128323752187984217627242393448527888191784308431179478913562352054291394278420494112818941473009730197988089733947567669182469605859473813514953602899662611351487422743876606530069586180826204202694205506587628317068489835334299456600127929323029213861696531175363590223170280141417940959382298411480704835760136206801660430525028575241479212997408778990870949241716231931090848163381868663443150540126285625608799196757021035253859086560729405277265042897645777565366620088365615325386242117148481554162873739556294839645089088122283492801316249103956855416826212495562000916216930748896992020811748069968108359608589401449733974643695389371701598392275481080085373878550965615790154052699736796107999886762132629444069423038062683529743696514123767873724366938047438926813782123061932327039438367548677774131217612209690135659800102787046752241585714291509918362398050448805794808634689736268424329550628752868698649423133667609941780495643987034413940316908100317719961833851947026611892314036230003702366417694471863477577025742279562411740652380218584013354867887122589731727985580503254336638237652101596544142052964713508539270939019333557914849418977841586936097942988238172771327787767738994172520042840324934162729768121809914387942596559712183997877213754344637196610764421805841957304245392053696365039268019006777017735367699438567351446097711730675541418502713986852480916621974437290825063310653212759034831953081449052944472185389643208851307412178234738786828794864547124384957395128558531440731053665767356003101476197139511296368468021015409645340290276363499315957313019593435149143104730972530347241756801820647992332687129473723320353985442663521097639528627526121048580737915771095201662620937893609389180619925769661824956700229286937708617836318884712957789690804341342097760151920517835569017822869712212490195588084504603609408415099693204706409357094040130324359653798216811754553806012070626176505892102395143824770426096032691747616688829840142721185661224733398321214634883001076620210724918505806366717507001347252016228355940213857074722825337493281792838061604613479572557405185829824666471660377987082950362297539100037023416754098867732575585011947136772298882496083775898025214865727205055469295264142729158045652484698572228280861962597397761938602337906416110785864429449952229982536072763240073991327616405223424107154159989572869561700993552263153040914403432180573996191831999002041110753673680737248352157620605613411219073704901186145322607144748174431304622539577598284050096452108219940239751359341216579777195862330987096233405128710506887063497387574811409170587315599985711848748927766094369447238653220542426421193017871043894138778493223692991572441065034525134826680217825943572930146422050290439872186099938239997947702357719296006204574208342706376410889212890140091513552471815691016256390610541130054216611894797872363695909898022738751980072973835653918532782121476493200019436248794027386254328530296168792006933269550740628126935721732661061455026493316994037904194208235715323870388400682344641111510992349946560685610012152998853126239205789475442818513598662483268875404941636048194120214806683171361961049399038678312981301336890535090233390065353338947907420972086718354227501218376549468182768993088459061769965925574562489148178080611047288473326466966721548932873747563124439766203636717644505332045718679615998350949596385724509678365913409252351668828399823535444472646770135985656268229943854768086516081620622347878243187536528610740524005870128616654391755671829896368621483034813832939357856823524401364532107693178251637327807036755220926030303311293253077891646374357455330960347328351153413349550158082723203106324122572760186490242366328525542219656538708825623199006161057054150585310903748561922545041508411473460253449474160091976383658483403361211430556760086142472610414511764436507293379513865487964293234683573845951979134859121303497444319464106487467587943161458141365166356576320744074635404754195478100423182044636384628305495701074317058610174248094063929342501703117436233157771130587079703196307324336841088648741460817725212637104115719561292832261260231737303408076895370237011900299572658833577121204900387148028465940739018314570096975145363605294921536991672423642052940889764747696734725320947444658599915638843131635964354451469351776565931005982531440142727625403887363636532409339602733634262858426441899726784422579162079919076430307783889232791694317789766372731053513231304673667473681556399251931691503184503034184387520137949461554755996323028339908805854418187153001571291216393848474338148412889302532837806540207812717412579316525051426647724050065586580508917063072778286612402822338868266515883389886506449862279926788236043292098262662688554605638449164388038049121851518290052280236159350308686227574957357058738434310672368848856696746931387393424855483615863500667152531097545932056311466849968451145086272560314767455791066545133682454266605277072676884857924506360104797057678520516585842416955334568244276748763904767344376514090912149253629847056659380800968420172816530791675685638084360094511153779226523179809635970148480802104689498547260478675556654847586113271581248630406380496060172978177154990693621559120468172936743979747525734614769923956634896225698370315880372876629558524262806845489303603976347324222005720523926087792314293023371092798800746674102306363863650125138894728983081348971163306545159052622650201586249628440504754262209318077920187785099626895120282552670494639690533035928864420210653085996759534265461820921899525013835653497697812448339178742771952975412611711204753727527633910107549132297811118446874147799409362743404129509419188526092701620240896247062741540699277421511923623088925785096388705517208178854925717433865416422447343480330581676472506709710376851921135126144830532445741038738990673732827457793055833981387775269382141594683713680811556949828247847760107259328007927917032058142318980016460758152770282707186032714710809301073237251955933288755648129440897680676088196121302151318868956966284032314409275572236885953819320425766299804792020093381264188861278728759221566553805801320378378889641677872356808039629608471296774612946587415224927831466411406559678661942852759753168241475371335153911184172137030439877667649173495804489045191401554778537543546778197977480663623828017709798898068223908954446251753685701670702361505433460970062481816387626271524804094205541132372332791745351029695378153805509457719082110616605715992898428379251897322536972987180259361728049649056447528201575817045648177464132821437960630212400220232320094121887504983453171509289801056939975157813281975540064155611200084812733211737018092386222474768582117998691987650039730937467117436618138884173600923015630574913770998273442367491922847770441894767754345151142198903214616258805461410466058297697373421766474532781159290599929622868516608363880980109973456607525413148794856306414256586004690321160069950006290565384336111341998501430455093510273788041063947287283101711515548597297249373595997677552976150366634829821436546361399032993577179104701039145306021334490120343768217024288863194085358744952089986536667490044260903922473232734810560489906238801398333097095292438011718498015383168541194259895630225215159622676331017933697352950657328907784450598677918130398268167632904557231148410642739931289920469728862992828743843126212578304613107842842830397415728830658185922888380343660340901124146256001974259087147739496209661814567696427481704073006722886879073421625802985353873097884281870993512637219324331767331322260458764873829750966905822472713884062385114629882214707442741112835222244940148010103298116024867153134260489123567830838493738781373495225823444460435294122761679249669519342349494860533182976359995736163293308634285862127566323452056590838157728535291086417019933937850701591115099697958681255089178577453734612311623910116205509648138496114113524814450267619409411566698688586116818132451525158166275151788962861243297184162224782778824459501576844528388090393033889212738420163728378531461190620947536457122623017500745322247533656958132266725039321511336970079214023220512734502069296473204500094816017973503706663632979476122764018154969456331417677304182733201481673785718884699460192877387304850089465052438790731254998939612298302024773328689613601987863777560372931159733347344314070474760704181041385766019561895855489502498281989992994776224763468669348347622252996954588905347499644812095122214328724895304809884952766842087645427851457099567249174723678139110227738320884834057555809619958752297458053339685051811986842980328765677769630099917173458193830666706346536053063214802217604127228052546368496463368194346807757351934823175896109622647750858304131793294021037738298094314179849912694391949841390511550538842171399200609067681556075788271739502887736905924014392473823722680944990129802827812548689100764977595227102931166169664374694370703162358740738001647962676868283408385392702426661166028952079505241351648467508607676469559919936770900830224298078605355756292494003776988394033881818298378526832573886458825841386612326329239980269672625851069267605827947798405282376002634175242160413049878553427325588247292241969588061094136743312998401602736926377165259159925525463456946486521815227139248072619008608725084343723852324679455859453464665205739233168725348708553794492894795897271400178674432254663542250802615573048748810883163017593660760627553505715445069562773677999317514831917037040140848012416572393170605793319842009935479241447147785501197022833592476659380789583001929722778426662338134604062961635943808051272447168761490034131682597141295577426314526578917798230405682233948733494225959832370759478037220341144258309613717442852432692591573254942640332208059301662375266587603469337945298048633745617168895313376326066756423712003848198081190688624792900292922179452708876109090881557334852487187256518016088459035757971242919019184057876197269589608538073062588695524945698844731052693468928181240953788573054978726831919663355267207256265879662184294683109647314341220502017293753730477202473981134180896125237778359432228648823700680226266946070222715204858760838776217253196704247269482935674108533679613998916749629206675882752632066893707426718635653841508748610354015247666887638416436210785783195431334500693878754734421457237245428594087125897722902076695619531703293067911110821667031726389596092238169223427200986298821562510508778243678279789098616165355829841078752359581354349650032382660002540791804361662897777045208566597086930803945110958506572313422187303191202611837579010402614789405798062265799662412808142366809582509819453183016966999100844429562187384371416700484484836151434017964928710100490741240228484438000333293565286292767626244454106939876360676988315215114834918969917221605553813437963425956724524430135501513603599397129734225622437021538816997228756106739877053847599961070543601548574963335989121839641768960451096462477995401378026611009492225221036817807814016640515326036067373231951000528835734068909383239760466439021353220333897351935125890440786493915722564275517041717801634286910125571905036526629477871842918502727405405067018790680863443242834402662812090410126495945651332202868036365059175635651881302535117633155895980396539668337467552828370075643662342809490506359206006916471322183733239628941058474816454990923744780206471114277670750243690328830373426456691207441089853732573258200557852422631411974078163640007489267441847434108077650035191594835918493944834017475343034184289047109934010821396175321733159256873691392610148581037755284309510202663106287878952180552027129909658203526880986065655768423598944160593106672738689234090415233105578444246535586767419933964034707854142754397873470479191170519931033584656589228531369100985228515587665790335408926521869678898348949737210496436807328655134729996050659563660097413131790640174190124489834309353702594311903042427174882150580764892893015035157524830716821302697158235849172287716974322019277399896264030990691764239439027647177758255490482166917568382653144764423169088103656909657485858984779825077088406237369346569427671048410823572726611337220556890507555714755803745196051459755576113474808625456809440235066808474967022896397339364038859901135293696231090959986609991166437668649184570853603489483010400682635856164470587355085719960570205684526675960902885094417988749056853728940821699378936519587925533121145544353493593151892748085614158400487110043070053687707260679790218330062499988709171403536704545824387364718887901397131407658769160129114139610204964643781716834722162821816365323040437145954378614403677558812314309959682728820968148922562486890317622539919925591737186967748010155094952745897034044523660099876527833678376749090898039613666189038430990467081713671358758455563154956209868276331910243290874117621381230541735638941817468851232337471865937996001825179310468213681983888275240103854820368326116874073946070677656858513267431383361239986081015402227864248967362135742052798201588273732050682849046872789379742165316797991836442013970559544487659242156137758452942595633046686629131985835668653441302886900693140837943175793159518547087842862166257993444431805364229714888455657239609435890253483619376183168661841916188661637657693688286631580481155300116934171047935096466050366320228488043802399063486850599635164883214541445596342990552405483255210451344808144600443808718639108017971397685341901544191829225794791049118124925361520332848040104531210697628080475884112113271757886067441655918974938768228811392313484019357509360420525407828713484980814946373200265540630710180110228888331663179364509729526619049217254931907922021455613345480259519768251782397804025258464907749522489232342653125174888985377565705507294536540652293362497816039660893264586172358950446807194618619741240384008196296460714121739085418724116715236607959371229580965438545000314979041423221176123222736411147818245429873680179815311390709052754930987839347109804974849468028740917119083820416312052372348378810866172557070002784517273660071009916082568597171784368385216188715112192080213209151929039566577864740482402043846443896909776120342745101651124122023685971724196857814033855065501521112779650996811044196350194817620281809983968928830077191887791632396538430830351459504445608296140488263788768237169845751326728821389466930538667997260172918789378292390240245749316870893802732439169198835839990234664529576534070305824228025659717937341201129899588724045012489393042798036296327544826637971353533982586796660974210671114397118961574987442653295328710307010235881120967866582011873896717624074987847450720057439011004581676259634192987281497422774055139310418158805113679069637166007297412012724484616043036471304671815934563426884638124415392952422797925381839084031168033273193678740906545631712603674606550321788233494942960505823643578010779229574341250348743431379916781886715310655607926764728966180146370684009064644079630659836220451869979113734862594677168193309866110020744135075030646217414020812785359993647550349454086867887052029237610869686077647271957647876408771341259858411704665544407021301372543020171632698695438325048744622792331895843959764134206376077530028113214016543665265612580745103192229997276694773702509522353961041864145564528897357477912926768075325242262674455997892381083178071379358859259523029477757185892600402083284726984425247176454170104082045122482203690439090657725442975353505480673626767778612370722770540157413587870941206442190025445012940974757623747764284833599609250293503171672069978708161559644760519356327308544775329439902633726048838579584469912709637980436061196091301194258086345513265502237918976599444388844366970089772031758583585203430457346595361506474422217788667221922368283698012899857849126640054566281999896562389926945444378465126938203683306164571340421578070530768644339125372279522977593632030177418471964410221576409151935542551980720467915557762464353290582585962908115647924796227639221217424347177161551103851388242439554336120476868253027088333030680230181290436282055392695656964624578178773652276649907801243612209307453027464335765668064399242161370990973684142258333251714021134070668071668290626859682497075814248814290059483824752794251671331716301119471671091909615558515155222236159368608544567331754724444596474736922499000157690232300831957226557737355938505251227774025191628370334480952744965604518254665336064773141693371005583727242041173357459816240762799554703661439586266928982843484685463484174667276577491389797508172073717943662040047191060551417570048519182232044693048709249767074922715641836590045185858604475117426962460094487375127889291893880208913904474184015241629635847044293219922059618529493290700172328515500717775334907285939813326058925283608715236687593086953071434613475901257957429567667529116337589257772981226030738270357445476728148409458832312233609434967710641757578508026914607047421681013081770714664427034798352338907782017700866871512636632512847311522434601217906207551860563980435966686529544736499342572232296607567405218170907053113335574842341269435445825367772670716224807477765918459792873866265262495751976646643397512396054392029171167825920119508628838418270729500141709732138208419713797282881713493709251222972229840531972325937307793553924432035904330317216817809397265423324985200303917873557933904547789590035451004744431214932186941308740973845576637307597257268837188156623798107056452111819176693750184696142187401774675553315549533281973709876706709069564380565119160761962123658610961854952413653216910859655107912297942140313571322503342320426736932745277424435162667606477431008248907104596734611613236899387017513965686372473437432880103571448220869026905716063530679473217844637146608531462382563290584637071717746726920631507663537133217559339043672072013026076392825822332399572476768483187965054470226010951286131128974566789835617042552425138034633006718847158365931955569170841688845770072079215980692992137096370246102425527006070841837981919494914467518853698479757396476806862746868518774685217610523797836245119563532997730700052959498205780661739035335525314328144349125246367147201642697922939153030066759091304621890503619320181888952139611910123529395320490028494625515103657188531394374648773125839214133052243808531757604396153764930159678553370984957480605037230925204089931218830852910638000027305452995308912290386527709233124884188757880683016655724868993770835923255615319346305705710747949246016748446457383879708558260697664041243568466671459495693109181161740363494906066241220957764705470661973537969050888057491675942776743930899015825524819858702974323825260493702088207876580017734784748511741552467692442001807167829526530902970222007652280027217062876938209812910822919572502257809805676175047784892636361606138633624453890708580962348163852767602844810681983485898694482472068264064038844365996629470746721376459899317519914192632721773545450571464387001499885525495469985491929485452037781472439027604698703706181982579226332818591917369857473027927494822657317594978225244699266091830520227779434321992406215875521587068156975412551314548242351449695885855770865773543606745836228256940465579607225170969527148616093400347109451501262878784943137782664063814997310605733117343225196571455212147502460618040463431383586636829920639419334419434408724095730563969854210153564876421995896524779298286666192127030727576410945290073734088361691369653100782577346166403490828851595443054004778193771713246322319026163521968695699586099380752801418132346639375999469496679834730934314514308592718771921818472754767205384249057500662494163175644220991867257379527424370944240786442540472240753679779432179444833621209753899073225310622584260254250182938086306736134252544852368542490572696333803107830000780758533122208702181096354241603250019947091809487200875109892367787815078651517428726333850859140426615684399391487646120352067208259174271928933883226162173505222827117658306265822208662195030501976182597390038860835812975849382286942002994752165193685016814725292658415844126982340842371792123721549219450978969038774405133447908933925231014841100093824099932922144503272277870474409659577994925644287591137657005509649790769845948852852506265057135684101577436207252806824235502266135858617855135358012691149627852580961445259606338776181256431119619726624582046342135037364988011681274889218223642199395908822706729603957026422252468027763468543431842111158183252568785115013845635950221926565602188803992807999758987161465365095685085140905881011421613307771644689206191541510249447184466849319670099118812081917312973255454458527755605357530112299509722733812969321385549216621566571856571994215995980639221861639388190809353211250085197012041245276215713516711984204489063173591512304450189068805165083856386065260597331243027043303603865000030764896672083149946527715297309650534325132838222163626905601887143105205652263280788139272341119461746999870477189041521236095254997419745558895838136007715597074934545643571500601495173306938100959344336496920640569921196022664077062618137549391709844601258932888753790591786122189646500286200109076038975986507435131184617130223677336214241631095634498004738863049248612708692829342529507144818638136414829578137773054176865843536749806129335305857209612748143535108983300119780346363949441412575655521956749635063211708975125638972456810330019834211367974233692206862928976504743250005168471245883017336643860769178597122188848617419475271777948687012552813799645415012400745968476976526516511154931471231135795710352876100503667152389350309425090698785773383739707774856430755770493852854185072463209901773455174528294225719635919207620878455074685680032772256171637696183738783064299701125582093901954236434727370999360071023428548223978608889522306653978163052002605306297244725811879210387495053058097064376645009729027496934702993661395296062281918758008325912913750448911267707918912584301202385319209051488705333645858058216187711996100284390184473723781656296217259507300844770809356257038344656838588701068660117691311234968699957673609717947671529698000429734995366571179137552896859978120500240505314585143698387234387198038755246948758160397576311623278269986700432923329961785045368561553159426133775653694330022417387685943835979800966291133922067275782120016802711121171054848218108463908831432265033221702686058779638613909920773027771126493033798502124113525898572847982149947291998667027150212523599008647370380223298104144783906344916866914331291221305871985900183088569890352806260476967897660325628718760715059929747631112020026146059749932610446332298474664487899825601596297944783946237490937165188680439204153171883207536329746639680452819504801388052117361823961173304201523681305961549678906496488715886155876536284691997443423490151813998268683865161723217535041645758701747823689752281402349454244849390748579326607776336476215363699783003659138292150541289126923634537389257508761792831425264839236059454284966920324358620663783577473769389500649136576368596659651180233603300907345328977100187027978362078907786481518929983554110188934772797949139459468590197898894449057053405856177944422498584788124204600810528549973664616851876607290302071302142609983712723085859798206242046310867426359127167492179003105687934024649750926294227953643885257450116531161199675243015687364372709067552344475640002830319590897706142166123682449024475233305367524209387544530877831910062330227613950659476118646015347009179551829484976658814895701144765499956585841650026136557352473174002653520149190443439072253922431285303092077387013741760552791948259266523216911132932840779076672840057010588150618730085727312326696876540245204069702479839505834546627312990888075295440171935191690494122093487766626175343235914057056021292152299680831826435319616223436551475284155738032215317649050879249825047546975597237030023452055912158863944118344759745201168945335076601141083672347594804600342765222324747584822553575047930532029427341810375573947358436647160880434177773319785080873912233435585349133458508165427054084104427925698998137496338738559517350218386086785631094385597047201210994326023738640034100592197129745763274878447254511442590900898350625876663126767084562806905902547706514731699816316487279766903530059089089604695493606314748881050549476553772107001422809659123702806975760705913514394088025986410694884053358942839249014690766087566662595890329261312707743770664737233939753201344096289660568287077491566614085902321037216497977006388720552650516819888604629025822113451965443080721423604555269866430016666921276643604371966383809120256148370919740069624260764150782111074977338902985191718043454865165028697991252496477984300301352569359036177892308859894257377089640088117108749092175468027845341769464704230830248917900812872737746541045565433864965819146820276646938383806918323569623766427442264183909574516819565673552034966284912753855490736413042266736528707926923144319992609078178193115605282091002227165738420428870219050814015878479659584945520769156701731282626472450410900237052779042663950819088799626236636076801450446003637938887143851243822735543635623244463695434264860554101525471241860036957223107382856948455109554621281453453534706521872475270606266241430411894604625552466137746042627048166632297284775762026597925555788905339539828758586544269766536910134046437182547856950518403733522834375081661269363853987344610585558342542651312511384668574254441111208202008619872609148867908980551202467614550788180113295167049466669501381256311139742817192390821698352957620772372743291665913114650937464942923567819856263772613712505266136436884885395093975653153754517466017957992141237901266072178587714124664491893458755105459182989029887749140878963498398678658327603180873680400281720951027807254983588384760158246753068181183884609121388434340330881696207095736738334854412373471621837389743516482130650164623601934300247080172415172191013042590966845773410335745204724579771584819958855359286707940950923764701259307830125594991464220207329816683167438578680190164373670106219827890485328686225867948281916729133817579892441652213837062702990528057151849239318148326842721455054326763525591187958151120253946671522099690350836981591853643493985469836942963519383186196393029493185424995551929158558349840057002954381152229213711892117882331638904822089440960774618068306888829959974831421322625912888751237342177112572965005937596520058645265736244326118270309052861863638956147000962850110110829859963444981010316146661835308909161160588823775318434609713052226857762814388619033807000651687947218882131519753446215856792360278035220486770214655161113431797671987440534476078645839153179223732971851599531714183149651383811130688625754598669879683626295323030183351453326772298482874025548998266739876412619345766043498012768491035380489404426248448937000209959232628337246255772391750563576728705489474780147250429765063331281912768298757015581858960634399589949893167509254566152241159425252789404706039832185697111161610348267995476279982968858090249675835628305990318162974741484365586379847291093367528725542959798688212658597887392061423449051662479233655889155766045720119484549262994301111629777819443305384189163617600478313565114589513949100906571801155405075589076093380033246426847712018881055937480661746183710086703255467092017118290065725359249313097324690064508337253385437193785497505657776401077371688742329020277589207015247724798919745493175251213057956487661287902916225326151181531638837651136099068234960688540865902301354246232138713581428969345172348255727499871605471000736743039488103381414932713265927461156197690310762985132186923169901888113921141424842621921178959014942319963723403578522195874932478464801154754504625811544328073470784815911043222930302485365388768590781625233656574493359735898163602018100483912332433539289200624329016565630069061403591729512181557808862159436376836141843164977504168574047115015756496807956345875173050037077417003926303249757872220964179411808601501346625517911746275907159102442692088019863375225641646076299042244296523592965258661118621930303586636238503418873687142528703473853777835646760161705189822787763040403187993474143963384268089428391824317357201389416055221935628555555095095082104381279734041238730921682445531835763071287258630837643793374986206474284354482356009917781228581485817918378068543341915356857152533354470519433900976824600695282256796052467767456796996788601635945948362472096499580355398601299375771164272265084634482124880108373321035137238568624792977661164423232446334632250518041957160029548651163067333914521049551336906174280717906177554012465572726589007138665860660602967571077311827423036901306922457229653411950792511106257505433190869419138398484576246077233250979568769714762953468943145636346898226622810890677940083771934049759333868639920352348738260026857161142713249423000266552306868766787831899828340222004664660437626137853731827968923485164174148489233865458007273477842202116148410495980219687458941257571462046159456875976721108298119728335764725166831550864976413051944176094908817985402408500278894686123226821592350250564970087012688658036064309715508672340013629759869237981579399549852081421020439855442608245136320788757351980802918134409823131820649888773143894812165586796747024652345253143139258323209760020420709724396779176917943854280492012096935444265602414627188735777957497924756832340945866081064967000614998194058630997007911907791867393780231750074414415298713666638961856158321088966031075932849395829997213834330479047778831361819528801547975147096837407778816314721601641464898918516667884166778930190086612324221638657931599086806231214963141554153255440609820929556992279016219348608634449280476252339868720477267630727377553004579344191355577472791481421994500165682990010981082218145442501037261739944630829795469910868208336564251874926408862263029297668625093408127687428160927976795096866389127612504710155736471358584571990135938444887802354189661689472276345483108097152896147208710834586959812041772651254346079718158270325295607580429193397095291034231539882024971395309415320591117344673234666338117841299398563350800737136637658704069270841779978570730033830404165686813984066688132568262659076502921802459190690168800420357606097364776535519840178827245038451108275013894939445401986726516581887022965631374209120275224485631823621119209717031749777969876350551271150292027158633515025244241116095997510742236911168928914782410325745557665878144077824292864063611004007928493565063478791211730548094613452004527286757338281644752195592618390453723668529501957150004280392886188120393537503879180189384561481559545393615717823323521793132006695256300118674679835421640387771425292950470208139578113328961801858999096153666991533635107622999782181575367221612354317482321887457421272263225995125917854540943348830332725558309405706406086753360436353784635775823212643199947154271458693276691345730574034981897575415158273719032362014522659473933373950649342847054193844434536827451388179922325251482762848981074140482906958685684391365379969756708752698707290451149252715446432732954626875135805302694477483260747827386393365635521822507585962964107518083264211074222649198501823207137685082974709777491179894643890319272210136756415928192915437455254561540885648147036420078828340525083180772808566841225948627603145020290944356830942346060970403167351164175780602566207976127525818193505224446613122554246095461217050902971465304535100804008797319108799504047622704418979030237886401369742168815797320762497976281699438555664634602603938223676359287578228171333448475689253525751191902297701037502196313631051022762229044802521022394225885636880310768749007220967016490327541449996382754650121641873809516239043338730042908510471141066835220970026919742269044570228726754890839333756308420627520728306117592081997136373026717190960613281241816260060955877713564007731935688928499486824732802284389701236609545327602318300878810272188141838544216600298990800636490896786541067329972577138069740740980946395781711733116961174858560400960052783867744205928003498128338033151353994456704338700438260806174270823684322609727605013628284613309021788509110580972948671097793870947986831157877079758442673850974684847155848038470027678336552650733669882937643787348539281904277741447402457179750462743613971992860891303230593593424019916907530725147288421748458689808814741553321861472130162695752058079685654794659662531170807185206121228403385339382043287289547840034902914754371881400881901565065460956769765458990010442036087638927393194192635981226686771326900488355753459690181564032048552073696335121091399312838864788044669235431202283173001468125732969008981571534360547319315035178945681699343619693175099332128200112936035755621442364791334793650035424635450943197851721702358201441115634234421527673134710056911062351740524928477978157053213065983266775742497336427439861216736281167350009155054693306398851640116035936162156709738771514233026453413526860692908389133757768899232000963432497511573895857623297432026851377182484324634222741188192369892077394537442125449584466513634596038861706690859122747557918741031597987865606032613110159372926119884501121603301957261734612003331210552385677726097318016195946063178536031059100985866549491300113799827525666879370102293178523741427118365193117013964868490131455334042381002694641424359709140715806879499827655041158820912967702862980918544174350279418711693442640388351132780546361408940141349912384599318733706904919651898843098078408986902043631448938824073427553406431950084909467420151244471541358654613458070232390847494397200949237990494354850644339634891460692629659513013454781332770753225902481134528536115120702985282374689170552330772941087957730702807788809177939751262682353861246633698867436506921916188626745411714324615300400305453901706824953094629038483815375372872057447588821794073251923015272389659749494274615726750544124294531658942195400696941877068364679060669827865872500202377450853005018433027435403287210661837032365263290398501584282182304747184156600171641241944932789753812579239796697290647561832091101597474118770007443715530007272888017085455421289638870891570678577856329328879336713542713028987132581336746651363090356873922849461156648293300091831321202976923479296491136617729826671398485089676524024609992472350449376516033647953444370494978314196840214002827329187763191112479100248036872497523175093030450232762837940368943648327742800659798988326526582800794921404729162874739129186201930305129762511639768718360963811753349862454992176608741634732231322752948583509259083713455637830141605063423819697229525348700746328960624427473347721017582100232952876817466518742695284619844151103710280520381731647658795505195653328457171422350233502589908620021607556607998007644674676860330395612455209932673926012839385529955573011403582011156992080163410385608101826669582113401955350680331737274564153794440239900027069102029350742078177284696087000332970727419839531090869343774001675511024260200402075903331127656289044998181581559715449358277063264887230556442672047126449652027135023216111525773675055785907096975997846768362914482877627630788132103515671186639489165648761405545577763737399623086048086659260757559124997152737209008070592640359756745108166618784396245222174713509533712356133068676669085247138121583054188622736048877231476486766234897465587895720282034672637770344197392077226137219904128886728588669057451938907069892797577217805803302152037760160310834435897936902319822741820609452291610642370186483215292206106617875249437009067836949275903748043464838104971047291372519239832518979472082175974020342621433309645014122080426111374113583908692160039141361132843865495187213304745710429494005397144912255208638491666375817570329481628438656833613933431371228762100661025077200182262440356042595687156926764171176075553563047796954715760670926920197516012147496520551958294399284791783647695393035660843735000907752646314121080780302477487301819458188466518718129376984772718433188645339314058412297556926103120182087311598211730299423494263038681160377198299114827232789706388970603562735453644203370057783046378247405231731339102381065187938713977990035235672431228930865788563021715518290550780725154319073860881089441301145949976400631465143029373262996611326900596084537713500826803702950239267079065709854245670958099882439579008797463480154442267645498352654489863623843103414283074747612520156555787364623581110143442774194088238830581131879436378421825420769845014121658942690098996828963425352284797267289470636356176247805277499916625010733616369286290745415341208818503853855470954763419871033666191728802662146319872786849515793903324807382514679992862023675500032996862539135414105255663812980541094543382936446370733266273260547663519725572277534337938974666559516975166765987196161238564084446732301776439681485765750838698935267739428756844949461220963254643965841495642215860522680860867433618347979966926587742831094383360858620380390208230723459465697987698731913128744738216469014892573020672081246718829458723577041828908809823617395986407171622814517017814437164788819228036326832892518819512878312477284990586970939652487600177263439246276126314910332293650796394578453914358567101066932804545681525514651638156638216747835190228816229905129030378254472022108372100525261983833787465546048594912919002767481791574092264542279807647968571918081833085453371231117843011694716816448883128938359156434957660586140487547903405371569292189168803638552203540693629448918157531185090132260900555677068950588960896297227243085748446662519615112207612854161461293395435491037228901516768451940467086169691734548750345627165322687193237222417479421573007309796129201179995481336048388958984507681226233043690942330705769079105810009136749844194912718761715956538844048326631057499428771131286322250927055738550425367074214931005127573772098203674433079231971751318408491749926888223992835895870429904296431246709019985965198090298417145705586612003509179045192550028863208218534541390680738325075429856229320329655267549050799766332872198290801134573643975788134162812603252484177788288610304635055942693080050935430953490442613694854578078717768223249808130759496111662601307436213524501309736040481051181183744252903783514940242034377711194711458666592309350123905479752058881605521950691680846917944584916010768356016157424087806752673345053062265682138718796130355855454688422129624484537713267463519128719117213524610240248883153402678899211009438488090815802987540671964875134095953838433680918314238703132922119115432526279319939017149040671174678941920167969415840239197706198093843119260643381003547828105043801359415435683514879537418385273574740499362908950938442022553820574832337465870662197789344692699018904585990670136447720633931681577721046040561857949474159146633897275250259641072523594437335351303609264438154919295132971531738004834085445075218189733312751233473936415771664875688723405481559511796081495498074817418027621561534870027302090588554191609328337887761488079321996490863040389491834892351429603053865721748687605339089793231153354437794301204420679832346398505591632663949051350255694994483753945494918930984947373193878482196808799676679241399495315443504093999646454363741044351125631015236877742257804593962600133626711355263142979830682633695294427481651361328916085601204181714966363870862526410584697589781654720455845613515671919044819571746683318814947481466794565764287978526951900745694944762618334733949746108179257887004763469991616839129279896938455899405380480752906877605199973965191033514121059189526758518155297141991268735080815464964096305604827512504332666567692610647444899729608034458298184424360817839412941959949485276569226356847879972576313638420036178855109843526320197685912582843526749218002696596922523702984880951771485208917684128319804591737574408287846540175618544600451693215586529039930944091993531735063998226697539821752203672187353366508236787471762125491215149039075597848025569227034930878317403285965902806185714931794386858808411957711544959427019320071068920578992285152369141864504078970996658864636146886036686426950757418873608782890287567449965481122182445633993652209969012236576320017799694765829762837028069392239721707258172329308990699623336492089798885128390778276682731855891627459553435563102902829446385103414816923451203395312929280859773158574874959660955142629903078399208105006515661897932547514414600270713669034691458849905378713724181963283394492612406904974336119714305095266488543836675100221553019297364155398917990684023281378855381611830635882847571771031679052616252711730706146168319067296461823002021265729203865648193020741028104541954916621650336177479614514207505216013979849338845283336937922478002470935502338312157843322229800212633734941432939811234063764410686484682154591799276620608706812523351344903490361798838992478363410096134934828807459732129846451692085964003909462887360471943090885597480713804706357288667509373892718437051332928575764558916078808561022265618303067327664182355348107574695068719143327562371290482174031343944489470116569146194957467803512229754823133744864155339849054496456273855778886034189690388239573353218113401210767244743303338211238733130288917558052163460373449101901342796741806012532570806121316980826616602908116340571240190327660681578909487287425805901671602893439611757506032000294269610504116473790682222583032852523571546333376608851421522741971341317003845606982242351744744895881480064819112835792964508856719336342191097406065944660124393531575758842733589458156531401855060039568957194009509030352083395753062127895166778068342043310920555852726361505298222636526187913726108626933866626363626704080136871825840591313415285941381840581120253547278944503950924529413121586877313549322498499370550374336200662647336818868793711249515980336995048818780806226779305911039724063809429588829501214166466483739833468829225327900814914246626272820319556345190970896188318006272019231813323887886451180883721473316282421467136380462211482279497623084213165697352284145782761495490458483303944030171468490947593612137661546573056860968357006430867794220106991450439625847380928014423029584614878319438558108712031592184089150790525631234215449206081129341319823876374855717805973772116360056324849245709907986802562342214227190124503621042010055052067368803290538629760398754591083070636182147262328267056919729306358864270524558579549187243022427270817362168300907373568881912811886264500641757610014064051923488339010382203981225691272027796710546630471056154601349129601874177922214867607363598671739744332619858932105319005887945495294322483157060515978409450089143591027324311864943121814778808694357195995684662034916001436073687946081415167055756079686851828195452254639034357329161444971133195278957171395588884470636615677434239743904891619125501658622729469402422136699779050111510590121936785163104651563436820282695941578178786923727443829734869287447844398566892300093302900330548135142436889816268269578409561002004015249226966516808097413307171547830463356355706520737377445328217403717922754141040296205307381234243199856497958424136355782316847890826808638648784521528514947213775316872155449503094651487644001844527747271540531974999782035683316530058776413286333664664610759132803965213408604117083120793509452450302111958823755146099545027888764057592575910426243016942209057256720311976904221220721241014618770717776447267364339647205408431634395380667347838283389162788609736879328655938572353897546031191553280245036815141621568099158724948674475572740267712420831553232913374043918064958439221109246131577468214134708570048995151891879271157453991243999094737615181617939227245828729665817455428743902072599177801117697970533864136762886977444883823760991496046650488742720812461377149265915210727353878727325258241504826554955767227305065565781372279769021858288424616341495602799508417279653996996631742964941415836183104133910855752984071565566224930475125639925575094762377058365324998704573041076732612156211988301046298858675900843318124907854871275307755058713014542046918744243123772127225709625654251072517812831537944344071425146201282228182666357056541070343981563196011852217132212203952903701471549815374103150148723121473966707921578749408207946228926834926294177572153733386855118733043685859323775767380430584786029037340117753257068399233906620822877575561315714977459279058854069450174479105642459423613414172925648622211882251402546214796038315588378228425816898645210883147934940949405894261373214430351746574177632171324493936270659709827452678395355889114156201944004854373140461278824369378138370513413182995992254677209815701251150323896581386665723966846843017445487768466588268133804486954781576079063451790102597998446749903619298712206118433973414839168273847704930006147349503427846138982769592049366204289295591345317165743218700774474757516335761760403618214068309905415963752941686082992386341921646676081112548157193787765328959229121295406922535797852153113103464686887885602950487953482133709263766109913159823991793395457399341989663668792065725283900863964674618089111957531283296781014029320858626170917456644303441140249308911147011535833338979771008214106595758189201828772010065656967447564745043171781207277308183627913811875272980391453011819611975725765783575562571792009562535214982741894608631978942368448622209457577658080089574955578313874734865821654092524232731032344030666858586172341768605690227367267282788936902386252510826678939344927883219620973074109273073554714909752188100786832283130049220557989878419779379576357506939409004292113104898309030851921590043671759536922323664509478846137082533491363630421539874294435567795672175693351903549588655087198227269745288602093746182852371595691318786059092623908946983741941761606205576784981595770928265859937492552373832674058770707604753364181948697944600887799682658120337900652081250377812776836429382333001524124992299651141855954791254245525280863213040486813060364441884857813150118528282198344289397455722587773509918951481479282056257263543216923391277972317290393583581033144535692603199658954450159250402854908355401809762198758888064003611617063864991959571062820113368512656606680012547425295445850461286279643650206086313911654078557114217527834739903984178561882832837731503227635355402084602549548935762782852819230057136958369559689498588536677669541550594041430522725955114276650211265289510903721144096419758015716027604930278048275362704743644254254883767108701653720943081389738542997435279724229614668093821656881853964570233111466634849032542928950243250537664181275485946986176897494499600188266446139181526721633786682873108134185104683029613255581771196453382000003399642246938465365096569089141458505133815057643644386892126164354001173045818473193977829622017049531178192530805120645516813013413908200562966940759873966028572475885581099782931368521646241623228281574312560499728730465551177099424420528418369121638580900193030002716711687163795056808617717867329066472876955043500679519740975489346897614901133611103270882140625827125996071314893538033674390667369390147385081977459687031217406328054544080771580613705727841620192166687180930384069639631997773812596023234384221764282425191326330589841132483651152868907908662776745478352814704393154775954327640405858169863153997176270075219126114889300381359153513499894222950692263225102271194214447909692846408778439287963534219524028872543017041857634913447202319395423485840193973342779123052054751088998450381006326177478849226380922406685190502238493951630558801854416874708112230890921605495605736128073027560772476742038032823627685677602756937733034245303309616823096570605423774896223387874687539588113005203656745684594927930871451271320640593421294239872277288332740646554440678709354679514500738450129453442526340691470050434122638936873785659923932848086453503174619174512845238387302474115516216521428065188321692067542469417599652314038055304082699072971142585596893026555426344078499947116474605373504174192056048525807639632309199848093836662843498282820130917355837463024793867026367375770714073824298331162096570703574396382175480101889583510921649992948293669443791621639066686639887817234254614944936847626773717459819988910438773835774637594429460569654572931642688820747247857430051624766803265267060575101384501655479746114839466536952711317979385206649861678424044981899192830526191629974756822553732617385477304091255471413899939021934787685001681203689353802297746798527210910540664639048612477574058726045198941769625729324625303419866826034041763463237158941068273016772337896659469820359087009865313593916243513140406146336937831982019781061735871259622699139528876599119854094690800592834366208406568114790067875103372510183910016891395459282558373808855185659810739557007731269948273634612954882940998746639597581263114296756033481371077015518847348712006929867248255171591636306036762144768976094391998154960373463411786716849047508560367116926477640889737563520000942387501723310876755605610927369790477919300142322166119662044857482127083709158646718801090741807168009590981214295586665723988307269103516721124918310817879479798598782318639389463374152367974463313335744186016759802986817729181605716741230801017505865986524978376656985346198134155291497841957045093759465180919383671836423868235109394383857925904228824036740358715903285309085246710394545041382693390277863344259420941148729936332623715764155651952580083972273864277770521355511523031352156362595747519618093958448060810417089486071595804313953468125859161739397480190738657386608667586560198272540773996306025250094322278206720340959142998631861390534149948975167651404388798282912879689885056241595920402919391396093592529655886214896285157651264882917497211370699189839167851542603527278475026048918294259007661987638650881698844560155447785435160949523464151897043232465129624833166680965669843494425605082050639020604143773108383641753955186293750392147015220905785577086201267440565041228945786905901635437707581575353196387666624381451086475304496700433683921935556476578073215115837410923386998878053784502533921760179909660793876696786991731508945517159865495252575949636291194614545534040034930961491510577645969345409672760068874450154000519630822202472281371174394503240541427437935467225526785726758997805982042152992131406520358755821851646061726219388575268626606646885359334402629310114236839968097594791122622778984621734839336806205718073646690140906434550248571428371536795298417078407257682136724099404584518880046676203541625168144358037125397415685067894890586892562315641816486872755065290524670903833031899004354992449905632135484935717177113863510106573614153549140604648206533687448342673015521327299641915441335360130035498175294165294599448983819768401102314977424370573938248930705563770247416642241889623674398900930749618129934473107295911765301811743010903194501590768756567224803059275602946913920122941647838057769196994876755219790987431874378866877055861057744053529403515771746834880350423496913564290392921086052811809537346337097265087165418713339110722797256635162195995186881494790645661225165087240568179825118293514200825898514842742686794792006393338074903446813623924443902535408043374256307613138981036626782651606465944972527871365274094906826310345096532389311364107757536445236871657640926100515805784726166995108425388976744559625339153226353779954430983363562572506879914937733408626823118572805881181871662352009702414035655108925150622528740462266903758718578177485433012803008919669777069111941485015420612015260560571944603226733754101376329743793950358368446756442388433864507383534115288064232835867736677719091040827440699838393783478100363178623068548129439382500236984524614757851621055541427504134173332949275599086170643077159345686139614306265417269658216287498907575158935296478538304031771568490027284302344488082823614000879728854685020503239601559741360602690850147906820645623273181264650704327047801940519752610624622991254361038702297008563154887673172101565157840587568209541115292644816446376172121682204817108483396167576664763091127754244567930412745889257757097921665278292751777323149692736185681757698216258134374199693890910126098382648434774972821574849257938744933681886297950660349993224047845979996133535370196903067695258224769193740660813701801365712077196371250388018323059633866463545462895070532351146163884254228900168883737007151670887099422003951311126959871374858548719919765799582698075240075680179234420284942051854540912856672722526955331976045916352215288643860790316953269270534965310777951037713438504020947273919782144491290615239810149251915970394546480513165782697699256964118897367768853361981643182601632047250897084615222291721410499807558272554682207308978775220062916588905183189602425424935143152385900297552118002319968175572054053914292953945493235027566396147064861920054119558122176525800993811606352195689083396207944644289407158132025134348267404988443826046716660201097075203244282884349374360668268784225342187802620055011396876791027670012310367267661765623152234625804078912432326492021519107283185508556886890988643519874368147567238799450058711989252376579029737339647731476924491488142886859684177464544891190981131448128960980091226856903298491488185880827472523680755993932918900209977334628364825600585361772785937379538638629041050307948378238766178662875625809228546560170323371668870854308197698264224657944935328407949812833716317216347388197230575739138882557557595595023634848318669986296317519047154511947412556297290633644415044827797625524255066399736112499743963023744684170060094773951220854222417615862086665203994519656985096904921031315446126694672845832046742905255084429100453102096090197551443673147411636320352359195348909516385604270639024619456729312813144427058748572712037471921967789799072617817613800796769571589604832075312405367762003895411346856140003855514629038258844810149662118621615693770266219512657654391061642510095921512444805178736993772220518548461031858210094296035234685009322219655531708949285697206345455913516160770930039606093669928996884282111697568041666617590184837491547573867361007709135059846345905218296236561725521435676655684415634134988583105431701762372314710126863050529004587358148543711254259315158092590162886290608380997428950964435546964051644600515755612664359671671101492074061596308829817543419084258151386117841375596218851802399232531013638442352050870072969734935430662337451962932294646559482565334128718385070550267285245859439496742513603843299477018349889326497442807215396161458703252370187070504038844778748242819291423275776230601447615268451857534307899248728641508529721421064355096559061450883015238474155432414555269972905591841100487401108430759376642452626334378635322561297941348473819210903497039797817036621082507545596349250968095473581944880872794967364610339972484643192715907607416032285463052886586508162572579793234597285300498670740772930501894201684822072570445615471350661016013966614882081128200037201574347333873115947667839380874151842989730379053903819323371198020105601874690487745409267519386223091181720038320532053482347229286856513282745630043541512966117140959200144649667105774663813759519685689501217170801669442018362543922834415792914330380760195028512128432549142612078227956904815662503991059574038784354321029888833468304917256894937889890498166851870704207063892007501301196323184737014164245047140001917004883517328973286918872046766917460563245761908276085092281944440816738058817391903512812817726212692464274557973249061127158860709828487192700260607049187073077870049708865263569596328538351558274075742158485899799288138398764328658493680884860429176478170235952191933293189138730991104402791905535991824034245524807921109095813889782720531187699820204745250558786819990908172641234680928385717037904838067319564076459407945331669719499904136679334795851230571113410785624363893727007233247607336121021304565707157441209304877985532716328184302073098765568800685309429845954924002273442458557884063072996135832269967166988377543218331447319917737667439580461326056719256042990862359842907387823979002773508100970177133246394532613992361996881504014957685882517406135999590789486244209001235809565115205057248544694898044819231954518746734135959347489016395193636568518200035976398041002497956084171763955769808280138741572015864579453704453091554483416259129443732984653676845373881014443590387878206552736934338998285393570775222806565380388853940349591355420260892771009284828711149292279205119354867462059126368414587549053561526797972675105434332735581202695534399396876309751913482184553664015947137167655406579357508399097555658051753960396498040661263950503228644737470897270145541281930344094850173615180558714264605067736961626791756063697047318061602290819009835760819754642030106588158399030416192688080284968050927871774958673645533327828986044221134765948962968023149056896181159412598664118469069089251999292517111364541507430500626781459887071380833340399369350013639317100084775915035998047816697940694992744184869305716309069394745180267651738807943984837894701285065855529347799612850949556765931563761051704355655535246279368790045908505690513421917106669619591742257024576112191046630453150071275662006932315058120748513352020339632919467602024846652130452282314359360733008464033361016931763125142551613311114975083148205412004773520633187014870219231377275521673219796611045261463318244300257807773538614358930719408660284358597568904646109732346697507273825899833679192983586533853335377307360474139705148969048582556730216364842384463353556037790190341470103280546876016502206895866205854729898794469142672764847648651146393223838482299551730806994664746588072989888483103686940927315875430215573710423978903777184168651194610272589461353613549698946748478313919933334055121420414106694512768640594869181130624980151460818891049908396024987218421676771740919468110227639499689592108188701979654674556412262756956922432382648312944920925891635068219363577649167533934333969069082507914221886151399531253326796013333275568724723630201472782516181525135783489321637256157265543226958491686906676424288820552569058386392594436110975487854914412668214830423303558262329426445013389338246550065956451670879087149877413966595748362930438307251437877147877048171963650604108350295147519951466836109119968984348406467029731006443493366711268563592363767340379558780875009090367704724373587628452261758317525827920420374645763970787240478124717362403829505448518733429990919265958493518758220769879631884894856068668904824025020249058566201444931186896711910513843374491183441754596212410807833794783685911079443805588156584944143968352129553279896102874413302188083206238127496780544044617550470239991640732797932224991424911502640498811914456021848278780978365454404577053246462179172788237676379314203958437349651909646705064507361949761127969726596641925164846730801240586481442074564484607598852717677043218466845209338902631224456434701710436873279482388929607476788217981713036048659300654653011016695393724829333723395891114074190523632859028987478693550731135974424838701901272603347306303270207766689400258723712163248663129156674333491593837935817226218434997175762385667642519807143508908658690681296818750200944544937943883402778132168565448390969412175259148691416741022765467116608045459822243663431250125044334526927166560376046453548312115251654718060657087988258347382612973727742124274587430012848334986304921712330006637795659661827555708549334029837045234255326211496819121358656518465363793786401556158656872756698989659747018813151708150296622438426991203791969421288686559791067240221463694555301785158835175455691421153723529229790765134537640802807599378109262461581816370504513535075098021456438264102306312021927208607038527870620268503732633973221144534143634326702869714255442675415093431917969535015320881750279196221222885006676664732016068198484533763599142457661917998358991857169661349212681765558270536773457649324298153321909852149554764279151355628594451392439717538464005519209348011088023295212483231671574384191976573428637316428378476265828797176249128257217583400615799137965258942712390541478065302073931219160590555527435283617097477568542417439330606073529647880907041237576873645921401322175183678839095632592431599625563982558334266383521803222764123757967932293273789784840798491255097710202177013175228961307182826208131470084340503014309280659412041081040442423872427558897540106426097560364221570711287147691508217021439989680735931441007277590517702499470381217003451126453718091381776265431460799190094337339165636157526164958468086221487194631085460963323062335978233513322716063114134128858339761313544737298768881303778792559884366722410576472098564928481038846377751249723320283424663918092584341367182398464892104102140149832134485718149713485853249620019213907850863290599890162941703802089692918161284234115668944496345952949950686960618541347645167198671200018567881616215212675091466023010574471224537054332892116602746176545749335113455967160598482403672543304642510401178023648786068667271936239090046802749752860298757280876219266347487354619223539697480783740600948577420058028459006487414349971186654112502765883973358273494599796533101043098174076981496563227131270634764435499412252740826960942473713182136980795029417854683948026486530502661282095037582663768267839569058854194732757918775591977226277755713136318510892265330437057822816123086663031953849571771516190209780109302084861977796992338465110439342770383223650513511076441251771237527030948630580508915149309930516302791610276633622063976878837380884121056804931876876503171936883784240629085776985744160113019551275466813296168332508073502681040566442607341846968351717022679440975827583727326934970660886043894461777757780441122129354132070413858116579830720088099242078851983490916816682127064731311729108797108323301068707108219158826210145182653810088421933974784596053868851083899401489751746695200675372857097130479486426219435691001146033406125425621355092568302263155035038073706199167798512861761382156230171070213857612200384671052109534308867985190275503026243258616009901446531598656965530278575262139039681578734245315014471551486815726768736248606253180449938925288941751825222706928605977657036765172702965731834390891774497660482096489136537682258047022333685486972482733183667738269147699005338865600054000207095902894033881076485049390592224971385660315536320040123730915683183227674102260415472196824703432807167947992043260188380213572029920638691036602644528604086261246476716793682883962955381907930267692689636075464897663920030767365508029817246600041969242211880180598533581850735864659352782733641639256777926311734478312982969458119423883099943925620908861741628095156413811834109220503175718813775212830946977456359983709490189892814331969775961104870300991842071094133126469059430192123057987215942871933181717330150074668697487331654197024890579466841002799392569987833146439249483113887563875138472403031510147667334054805617780061310127093991150828015334145165692293009624227917892777978513667303698315041658321649852168942162004009380726266251852141087581055458292392681332426652639223562486135129936016504849388744388777364321077732491475851529719164986033779661097600599171758517308473903671000135967643055208095050433890785630684879184729829422678154569341936263951303523592482379141695779503875057586773931751210030944242722257037427260173769826333224289084370860897456517228358677437575251744343478309924417862020942709669201764721497758480742160421174400205582092404192522491785843025501542018310358472305845192965472495093768240377491849058352828041806991107082721357750560542081313509989632125703124956100089318465915086495398372987118704300735947170159831322306935511000880186545314658107712941205391488411982356858518492553253146606683088873188681464215142792538020342966823775971446786698001334997307000278236913469093542722838949788477282479531223290556196266666400259368230337508840229129675023483776298820094571950429522167627444063173665413867453609768669017026870651598547995936790847331908924615285975968993618834579520847561822651886994504444799943357241967076974707581226875194167563412127764768810644735320808177511639602448921874006122205106166831295224006416204322685770439910409331640753882050969288812578792294861876625164930330389031945063371446338271200327644850478218046196763401111405861054623911782397231236155380405895735302217189025009868970728534430486426578956111363392442921974492325956880073355574569419558896698524619945048130604733407013188286115323202788659253319979325405570062134226299174287028357680791001274123543721039110758082457827845398736216920820097663532168545632221099577023513492270006357513605257634615924221742676819951324997664960291991658533128393002956232627596844617776242358621876362029383936781122148481167831985781623100105904364305780665496943193144930775330111624484607858708176129704527473475424556152584224483330514344035742829578974163547587655138820755174584727712775661531607779537151475807226126467745233045804612332966337294172185389775614212717946184899556846337150834703083827274613493423428054211751453502199058289101798831643148624140163091696493814116131491255710019288419810259766870324540810710593795209398229378917639270982575772563849023133216599515748010102900475472323812304015726652025099601765800160076717639623376457752998763455427951012340658973671960741674288326375597788209192294712859691864130435098824944573483520971709056861870879529933383119616350096140336221714360667192929932162592186311461214345648109210906788576251530006854527015213910543396636973744070506005484239091131043674624273489228815899846877622825177478319858165369611314164699166900546463059474607489166499289939672972564079048788473991324183350254598390397440737559494305587948962706203737097289225260173327395644337860590314882288636263402015030577564738509069452937231875930984265652224739265665200648881187714321914698776484500915864688181157461705009988991694136579034921063561990496477825586211575797342275511740834075476512129819242026678740346378152840356291286064543265695704898078268196451984676102475878879999637164897585719785670951057614052477842542181697091467517570437821564488306333745935763976103769509047374497259828900999357998966433459929460737330911787370741422811221815599425176713592525231772416125890487998957798961894076401584618208031807946395697037442510480843774206971783249067660460430814781575354131125841122930551817303615012545770635426947300782126154060869496425157561733467696955177633243992757808763534336614004654507458963895260139305910129733523177668514391052322144667138815405480913082726680478293368851148949747375405433200039244138062541916743066394331441660662858264691491347653906956680302270660406315570996541553824196281528653086345821955209851651961791591778359781914572941230011504463819318564263701017846827975304407942170839131488141328280500134270037387519700603333078116501881198667839252498192759253632810372181094899151217525897905180582106521100066623075600112952516398073741423580833124761591609910659850731986803124031978507629726845242857842294922842750552207707383466271763842787095711290799424167176147946891779016930300728385649826584020317774525207938737260843137852578248403529551751116655022828093782828044920592287989265034707471977273039997691926447987328769260596514738158029643969429168758319485682092313321522786650305994941119228921946502628864172956825328860312950919769245082884782687255853152832677765068945452981109310273514109292214142406444891668614650088720883963869954622388916602729235331091135634610098644118841931844689050035357303999679220907301931373340700377854220724980929898317726244292501247345815063507445501555429272011136223554546186853349917724115636512710237653618784358545649239010208001744325935528532868285471420479484750932810160152409451102304017833289254075373004729339446017145239006435473386151454031762978245075407433684626402329924816775491958563981115806981986683843535953090223746626219286908077268228695944114340251460273468085945671849422446204113248503573475870925921663947533086152823179367271116771252824978440483343987007764430128628871725081746919566681954488635513893186577706536846744120302001902022761025984841427504301743864892693278884826942193986306199854649032948596043488680170713399288633290960412850519504762664770796324188692492501543136603292548330693364717114129632380468018502949646328005775341189949764844001620693169978846543590208102532616274270266830743304930577261687389393717175800203564503927615422944626410967440260388456597423392177823785340831392299075546541951096295701491704800134294871663779721993110239837294820465513152768289678966247222608157520229168774085728811564210347013077380451041268545984002499183034677092419767228461360615275641776337571410282448117541465063454687419548413422813001811109143291334802485227882205145015202298950271349169412375096691609009096585951894458192109144307410995745287110210462134442425979102646869075343605758904925117615005114893912728469390650503851774904646162298462270644352814240058714261859521959657797950034676948510336859757638091518427266825352763287291357789222548129547040514063060843993009837556301962962151873170821001544125648312890155039107348034623869307013889976770835477084946282095509739665162975743893672845657196770395891964739797288331038079201613309810926018561465861409947758776355346672559749203968700962994272404955152342380882980681113555602452906037678774880242314056062825162692853476768871827980962404664436539637162358388309347371076854564556381695289346024054738181676734463523403411968789278494344635273306612509588307553491411337657878075792878979795800575995966499832790871917795517923713527655105455023158403889921527526824426111528920065453874567405722164513070581525221009746146368339118560523283895703880438816600566117915982577097918366345464702081217689851267743582888517679484904373584057747995152454505651215650389713190258955924606141322055881470304385131110863699540957351252926653702365434325766762552033360202230071600844637871631408468174283264955142674133314105452569248947154697981662025495281917585007542268802817335585212912469129586321317935317626176284103904928126299657584511699327085535765599713684623029450364273323964755950823326534640362956152346217504323870831783088341971219204406917343913155871379071566834166159245662487162048375844950768983467624350052313886381290490229320407586384654053875169304347125019774511325887213851121695584309548107237959119790106180378396395079782039244114490261906965460195563853127706104709335072411638658891364211411339393445674701136544674156878320231533086172697513970519399919771190650366858606699446800043909680871468899474412009587555199892144386342987580524193949465956377297679792416765489311717988471859512846552688498769643417655312654860646920419709041079873909751743702942989157025923202598874162858919029402765948219169199755430165811365745587498212421472476493672209725338056744569831139225778825504759196175197002838655381735553299197128287124386920497548232968895730155806540123145497433758648543446695431625560426137875186432813626308116353913258778546397655538060331167405821460756175789211590667501559425262837733767913079599099669513563279309185061082182221858714381546748237557473936473355928513968645383754113655750779317112241952224367118396605288993429959409734249635599490606332590981093218101075521801985425429981010421224210570694186451515244259274888995890385414528450636769255862375152808924408526583956804386401234645417217037251451274976096401080388480206749623193450695789552480713150258484161980928677896258601265098524347527886361602248750559096229459843477290744599432138064400985071691837672844239229530626329236878998317508672075702643977489256649140767940255780334847026109245736181848344610404590816998521120324722286927257318209326497684004334606776167952946309697179710885420184667086645189540833617421345084699290165235929339843232296828985766542865185636162508304226915815224197700985124269215779691206344257453487768507825598628391436477300117854714984410209121524469627976387423945136717925743301870596571900005839691268411722964055908714486021120302673709362964900719116557727626176201007966254191859063211176465057084075558688144203720170872240392252842077724581879532135074803308558300367691243428213239742518492095885961821333421416456366703225219552127829385781379212264926482636605694847713460537068208867462066473976452040398157226895866166412150170253374756733620024950287406186609527113029367258108744667685995052844106681965082639566569344831225380704157230084844995109123737867421296039543825848193929377817952138808436407977679070500013141384458354266262028581538459300195121382760224041869065646055502515814651717179586177243593327118276646044141271474011206176732225655113974267514031931384055466584933731864549849077312431108635525132282044584039707453212630449527036984287960628015660674153012591733437507877026260324909049843167931123532337294635071067389278681280818787920203673854598787895111330143240905622913861482696575505030962088786308824210002959979448346166074933800373891776015684915570568674670278080620339709488670948432645193795159184495601137692070505229310948990688514951649447741796465692892889699403609217068703535469532969041677629712690159435362201568773818947036777265610462797823738793785787393993335628986732015956839666631002556048909660646199497224133730528016630292519521371742337793382476223512435673063184667597703253081141369296698719705799468492708211516714994180100449107202084938156652601839453816149757919555525003362267612171012534632712350402024759043776925298737104000748480678435765411512578970066005823013678545133424871068464735168467839160745830186273910219215535689541277226066439121448331768728126724527594609157139500615943011255664547021498375044279743371425906887175288192343132667101317310541105364338276018060050636079513901641527307389166119004907693070829952292988403443943513281631320152546486189977963273677771797976220390981352012392748606800545655398710302608153340606707990224042974500740897801850215683651818505977395617085732702711717892753826462060992376400074065635920569464496650569735360695934167314010430693681850944056026184870146762771928041444397888587103804572831123287406204988246190925008975943626842129519696179762416428061696033531206624277378444446525883332614435476349651615554342933723396508985968587911536886943297671274969555100812194977336373254727247607939231951751983623253630585837387764400492761613465866266727680319203695150109891522265525689059662949547764871473986336602650615645639234440385004914466481381853659237155555032281246015775575395754978649082673581603708660308777927791762928375711750075380697679061596747534117785023164887583770155521187099464682549857855550050905534377288465386030058060313784037273273101159773408420793729423008499131908741662503522233085608148779811719025795983598970055687163828552886248258204250777661335034688700317064284001350684402244027145909892722466612297569964340980073488441151241836450890560925301124151432476399528652194739826185978077974258052722835205827270410425421214494074313100831629058835328148773892682279962805302151156677562332577992567297251634032620170636581844893252525157521841237927113737832456247674973849823859058073830783071839256138506482410672939505839404653400987234416288246151167465904850092808643769424661220099419418031251474482563031280756961461223241097783314314681399119520276705367670051982426900263950402261376655716970231465382477403124828835447534604505610571689965882382439119977080690364455042409652286676170568232366230614452506644440015511725170218556952753651742345807994911046647405466766093916651082740068039953599212996153626160704029665644456945015122403175051464599439404419186886278939511727579101616760862594254805488370539457750539097604276645877273319103762106628319712059901520804084703560910932082699200479905594895657651555312880203970870509908507785503221452925136567789987395114872363955478101068869235133520392966424315310821422365087870469110130637708578893410103642012977239466610010717535041067717619461325576146072534678289728374136581346166125381181573127299348623072972288795925693784292595592577645321021134331308509815557647191646457138868577920731088010935255845245100137344268301646522676231923401199263511173548792174075831298934439490888971288430458771389879793718609383633959663840899367313142848797543146226248268438529585392708372647341711658045896286594877709277618534644659912274918245005642833141628066624603020678531409578463543846698682728832876529649055930971756153822619505639613535944149014192602645461154927976263529126490128018949586991088894433699476164526037141784447073785674645454904832497919632964538932393951116686757620905573742668108226089251728910532176308313908085821479109390852789484237962389341846333904706516593030966802810888888502885102249679494196239237895226068517742834956627994881540811039526444227616218884145732547719634723993168450131775704909873912464970741032243767406774210697382550177459536167454614310508135111568204171626722745379011520654431024179915587482320198550360668424326480839045672127157963187004251936896203226823675632009632120044712093342634469172263695349484096443954505995901217271393870604067853188270140808881970258303637043107757860778610675017847473078040509170079755657878902301261316229471332923504868865228886527321616029400966828769632279275777757135811649191143500924180742023100922984861914492778177983196924185789893754910645277053244633896829181118520677929770795859373182747329276190647813810067649664017205812833247465717723398317365593980355749660638679674051697245282933694181689785344077615269976956774428145337121539427629216713617573408935338137069669535999077768056421081622320851243194950678498791277656888788174602767751707518957563914697565426770798692090800994650054483310607780217020502546709711438186591168393778614299053155181609212737414496210970083907382805869307697506801245063020210469181712629139289733636803780484084555537041793385887731973731747875684404784511814151806976023869309016395216193598530453574525874952145367781263970043477293383052018911411917452387752672646006177095998262104262393332402081472373077427387483134422444368505465383789765840586842078141190952042033812575659013817342830970330301635396307181606400335016222454361758221118677517724140393286976507891927085460401472188487529150120325223006717852127274942171266849098285031550491217547741690311043045406931661336409194677087226388423220539840998395169562020403203923184939708160995801867043364325780370684971696380841554659357717822186114306976515148641519785034041843517369699693584138923766551385130253575015292969692557513052917867748958150402240015990611073920616649095915223474739085229190524790214897733676295573988431251214430368076552343924629937071819055859162130659561142827454770221558701206069013982237179431364489197311665267064438623117892390600260491183491393035713608399084748651993783390616426662681819459211164813748512832659127933297220884760330411898019549559808206140797409105085645340249000435213522749711294288508023227306810810351875686045497539884960590219013035392104079637874306845827899138981061049366481518704070181252913390902061225890658008332987971463259420794856451367967983613117707723549279158591393548300809336816631355397605294510572107710189563097327265138597580873610858786220730725759039813468359186849327434115075780758873537244667929044584085353319567816598012171229648900794969853137259168894404491559636156649693862966231626650569660536536643049883755950397689238765312371934931576853489959418816040477532390583801306886665958581093896186489025679101822531084915883353702338776021067758499606426648526910200262043579702879393914976733229064666911514393108252390362782368435512539534649845969269861241638467653575741138621787650928454184569957236676846973858850479803103466969171719434456100783570507039870912259505754929583454524136597720305788354202302886887689587222028613038398873522442593084759049546116791795129788372968965337103499735485087800407786506747121378453103081256355381774611658508923805777119856772093248839540704625137503399307637745075281189918688910335787795572545677562821476751733650561963017567209290130755695378577743678520286836325921362357830798824583904298316000212632953026607632077179338383170598836796281327822433175158999946664622701381071423636704727961888568823110562231025216905575278532708732639313871347779803008459431644924942401875601835867981109061046329755640056177128463896511000478558505364949777851925950327395026106015860216717605265737353699422303321261235539015094778089238085622840521482151521305666605372573306283404304577706782709754686828433180369192725755017876774164635350061714841347226831399901299593777349566060398814739032674974431830378947962953096169271636444383364287608627010907181592938896457542961124644583556554625875596257216500522817103516654680580260137456024108993391078362253164449843403298958882751606947166162441173972401887569439936929728226459096347040384909168816278547667754070808589573226533144391489745516546666483041724015634634172699905220974084815767722135236633771348815800440027354072762228250081877255621576093643521524815323069048467825226714883282058653825740332689644165836781420499253373648914644689809892636499526412887649710654023786092112496187743766930146122837240398142251731513482347889908698438678746242890668487008170919371841456148326640549509318572522413103210728514660634753892657825111418784904784179034459170552140304171582035649814329904354327708502086481707064061171444882408727374671388176359063593076892227197957737220310714917458503415831023531963343320173199607717588013460549776875819031918885630827384889076217486655713586733338655610619015435253764121128085790843166655216095927559313185529155418005206490243333765754896507272114528344113556357861383514133064898422259395799862217704908816132233767397649002563407282984574660627233775751975601309512006617312356876920453484551954808147020584463591164294041910804309080032652777156444034509831579419343263003029159388885120168916015758804669253683773603825436104486693894066920522293970382374790439125495970056317862778739445720124876086134653827926978938832209357449753134888083997274962896629247039684577697693925536604499075620430323928244508220224359105389353591584248179914231235257366105401087459249717251194414892010926496498897760506407987356453191769329809819807147001651158668659063467543138529861809010545146646041029435321162341763299968197676394887841834733187021153282127150054887785211722619730104851330118148240185685373493503398649553196899683286290626719746020522007221373078490606273908511752988303090189610108938320536468908678295998565825541940511368773599102864113272728780394179116857318151187531642712991173817046514686181951345534375129264434002706239169704943348214482295963782432289148288103861688873680340058002776703914442427308633187473872631581938365920645712021409784419238290299196259326502945815504314947757989425143680654964368844414163545746005879081547856295464665966049660087326864826196625626747559342009668007737810713785471332741226391149855392372981768211476542670764671035284075930906325112134310222264715984208903097596064883252214618442186057335641776051611259481616192106711507963680864620558701698308596166521132025264200517747100321021366409541998606530457630550203489457259743461769279915793471284151509001256462053722280257873012948121866660532681367105238698430853929166031781932443492136405360719660778457958635321436135141549141580201740920405754634505975158216670737494934561311054874887849317937892776795649355216704452361762725036935343271647977165180463078953542471325297726726273244702346274092847227683982368362607505938698745162969964935653918122615233573214609704754161789103663456255744441518876449670558740588833136513914289012266964949734568570918001230866329956982072760974745540467093076481005711610541626124848569733057401578998091879588918108927962094846758935666003735739242284358653272055308892831917646850451500418181880745344211261685235323458409614496928423082372071484943985667648780842784219957452304498210245219279490299789837432198906348106817789115353504799179907496160480906415023921227377735464298976168164621102315887881788550260075762826729800306626600398830528029188505328637644667680242413862188640718644613839256671609053672979967964636704659020146795735140339656822888353378574146031306001448734609576081802624406230592323887452221593918524998529968028741212806734271059504841055270228941513051359532041397915427241205653834876366269483154197843875011368983937325739334553580691457945522165075773851429928607240763499611158032640551990057592540999976915376216544936796926830425017864880170077331702497624750438541193682192922714184286905054298173909936964796469951352093865053073958942636830599889824746094135821924088155663338711068078768485771317994329663900212749835032393957703016752116346163501087170500841354635050088477599837328681040531778891503219356778896326570592316167387189498670066412952386923162708980736848352644930529092126853125064211355569732402849892376332527350656107602095437079700228651950767515560549369942492029571006230634634676743672392810690676365717311046996802579560625195731656213348979142212068295622473240354710885784997125381450764058746230167704234786383279211266033344333175472312204643932122166997520834795086580475475199460385750606170914402535905567353600387799293784631529311916741553238477621808033943761132330778272574539891185774589122348306299841228144688022202058770056289961861916382061487134600222970091595816541091566084388922814161300014832240467772512510058479996889528024665378169123078112465554315355043992190644603150733029977971766325640766919944634955873886465024614098373965395556734109787391475087712840297162417174717567141639172633668094515631818245432178110156942599009215789430116736104947574316954730932036266535102102932471733682556186580287041204927146432600737692585466152197178081755204823165415634263114877698563167787513220864508906313221798922466548993036481563147172887787435585404491297563109598627088438469073967318160358125685069926697883078488247176383473680689715675726576150479210179477773446012784461616978336998991947163480001050849747974047354742541123603975742728433353138291565341377327025824345560201733203146836407249851117700805883473691384032558656028181831724447171821930673338154649127609886678353709213083171461763254958020307455757443455875897975597489689409887251834775950158724876272353504274289859039631882630664087673287217364477641262633879935449636102561277318016954670798764903104673272785589202565213665621497754507331812714088661855927071256313103304272141145047016725078547792601759856517873059927681991364259478028203670940065576214624600002329401585127089617715976780387926077554256988356343850712639804743289697588749248811983247977707847916193938647942662247432264081517218006735377435740392018020355659123042159806036002686025029116910253492496323330850802956077352296802955496440515982189008854693577134568426363176038522419128600010628538412010976447855789397242501866005730646176396029771734733880639570996991187273217107519160073376129625009706502275495324333149161592751632907482999507960559933024986914330273815106116609776544311622164373785306453434891114448821448424728009365159901636205769664721175122835165801139596290739414555899857088318659466485587790607436039429500471813964749902463468674295097068894407713892595085432117248055050468773463687497249501779648400662756566651164516533460403805740443599572243790249497655629761553650015556224979979457629078167678181544438820563004522252195993521520281869955846129832033379931507854637692435577470509207605332774115327486449497839483628482283846124232029960936570835446389306177666647335479419164039143040796991941227932563048020761301864744843336510426621447091262984619056914266908954508591289748615100544809186430397907695593695276443831823641676177175884104583928194264943925163418057125985074543503480425693458363612111108222422654229602096743537052744773272141480393508315102284221438807271854710409477247144070557381043609254640855616921234588928812486553604844262684865461175300093456670225827438293827635321545038048958847230286001656736056566047100981444769430191502664671312677013093159076612186534299587170869977627599259177406431126436422169016421931081764832855113186281187503402068943596063799106365858727180590477257393609792756217646581769689028553094089919029577920627849358555607952026079219874164666405633327725403815348350727699179404168818760743965407399749839049329602133191121686487206100925062060552297489838433295717333722696796852336775262197503215347545248855963464691735159772992569898399233488520936755926085594667403272615817514704945083806613029601654896975435223661543682402620099301246458246570677427242725101981181931778497155774218598301097809804889129322331884847613024867982542023735559165210318447797733194001579532137376929200037219616138813576855206168687995460193463763427070638601718528052926982039270544248289046347924317836752905988220801443263121069977019247988470460273931275733611225701907683316579743325082840570406808979964107778081455780998766833091695464375416596522842260089714287534151181871813788511938010790427456986861005597768376341445547743316185791504537501231621158260318086682689615656543453634165661282336734873370945066156158776554007262981053716140431761975118125889215573200737895994562918101679106625073251335227915725919072202318781321455675831422927359498496077559237873224746023961773038197140608169770949034628952584240335496244304404122216781668642738272543742597361252994010590962378899589247784673181083218095803428223142806319004752710115869934628333661818639782442311170400450254245820086165890685476649460148801091209238126590896644515929261783511954533642066712158269205637698687766535966825943308102508287203793947180468707895104928396056742439614982480809749948793876850578350248776161776005225678749511316079503914267790488864246069885820959028953559154953614590062817496362082068643914867843550296420344078725095237058901949178811791588286173831169948710963670123559048078685185739137974045295285170812047830541647187842455634376177305551267561267174506021648613606624332915160636021194688365504552717748594522686895669180928815872349362286003468860147067121113656188430531792472943084820536316004179968924899410295963271969958224494110813566247622747398975723783801310933312614022052946363672072678982973513007492306109353040795095904539787805910845109421404675317936081125576345238038359877665340053361289038402575790088700459557426457144801810821182641310090610046363813145714257413375384077463086939973806876671043606468923108318018673144393081243813805197817894446290678251841366899348091633369900975744012999783023832289005614781707090716371289930233601473252917085603452750364712397267175740396788821665980663361436097172004278579031261040399878668433956060158417602328121031513657570293106542196653718860794531202040737428883028602581441374580118649301478936488198592440225411539274891269946432856748379151457134542774028128154628325444599703381962187165718502096640939334042941029691399898250180780313627527092672225577135947237300993237884881727372508893788123408078675223353893972468458698927053580988571945022212471067570206261367840895969759256468832838883350214971574868073259038108621830711338318826972115358345257403111139307195110226990900327712319706890328696154653074565461115201816299725749863301909451711094622415973819905433926095715471565285818144163514805063070549005897265454018399323079726821228976792255426603742478600602010582784198060681824762639407776593838285581894191235384780108015471969562975791128618235976164793858098032750659808038458984796970078452824594966401904321581603485089803737550357589878338634108179606625704318186841327132081502693028136037766987924694373704581263454004541849240028689910449002977638497293545960257743350377454554647783483209269432677144528220411201868316449713684376955043825340678979996945325585849134268482830684253726703865311483683660592488846164837602186596776585549946883755321172285099326544507802955994223943083765405902998599585685077231818439245591902166552891216791103350262105142830066518572922722927963361147696849677564740974943290024963863512532312716160727706058920886446398550676819776490880894415842547547574980758053084252937282329684041382122007699399253472826365602030714722231922076637603132841264330807894289438196237692218653506146667114357244142261667842187739714423037855536907302913064124512155021422840414997183658747961002821713877383642319035560940384753435289076413559959668593731968953143186883576239609150442109472282842400278105676227878119550915630472031831426246357687487705955978457125562852314329689781880025102555286043634947050680655210060194582656333277362361309379228575247841932862439378103810780601633125281928485721243785595635669454446545575071635155699924320453813774651294126807535034958476073166102428808686902479094788614991753175200215236628419979201740857439108320449042170153184481643754855073247340920887981246911471430112968647390642938695830946068027070395762703826065501721215206730445013986255608469348175044445236290551319338617534520952574032960816893734251899754888204956982099504070636328492354141763248119900810657750383398483800053236508553730903722199130322566665553979946152807500582051655193534987292927811466092507093653766315196762395660946681583990229081858793825523024079470725618385918316421120597496885650245321508398507927618482948283671442127962146389993558258203000942834463598600924203890261041001550875030557341902605624001502225956677657448197461501630768035411830993479830518545782878524917047839943295901651493739487071962734067627591085909892813006544120426732273750328009916185939846608464944886345885575644175902127157819227077408742828701033620091262471205711611542446554079260174823001130859091867169522037840183121445817135265853303764013739808818453128902236597333910550013116646604387477186565207380199405469042636805593259953702348256969367659964756125959924939007823333642328229126594859409833655774891342480335164699229565973649081300049853418290123242044114532397484099347495845210605029594853181016416207658598959637871757579496783224716778721280812129558241490821628634872378945801920967545843086675821276043412206918192953362186567946903265214948264216909042845389917045498138767156770418300381172718749481382196772724589228072757991401822954926783113512020163156309503012663250118344610443912627608419636668531973139507347551225590708667726918781525291883752763658771309163753622577607260294259584994876256420962450805366459601505333587901250535964801541223042190839749002789236342153230156440742213945327343073032988699608908345988660201315897399190927790584247769691703036141975843731547781929139717094067349628252883963854047776533759505437719295561714839547406539599173808863952815337192596104168485715011335731084744159975808854104842711703098415102139824957822427632324222064193139156335118160661911357021660329806944768336214506941024858557626118880507028611040499149170167423947558178180461868249598678773760899022725992489127850030470754088028884962692445675584070720717195035960175655966506889666094254393298379945786037628833016433694025338689027499224044089401808318532468497996182013871383277414175744174128717220621134652958431342197769219516354695321352642840674303502859548714092724561341572774455635586872581672538438607018779182373748635196355338729623149857354941726493476535742562964929800515885003692414575062282695564734178185539882357850918777738514061238526400608043080965237976220860348513365633824236538124527764835801162144270284495298837551371025285430738996888168864485763239576140795969867434648044886147050365983223962013946337617363086019963054970898947999421468322874010426740585714294318358845187379038852038219793602201673208802217923737594353894586537237635782737537852305017483168101508931570237387532230641150529662695755945880410449799803421210930882864553084859627426707963936910765233466336285175980500517306687289801826480316467203585553185208461893112110454601871550276073873671842514922116896480227037731420001210276764556619443942136440445466214106548461611431071705656655717536010750431109842583023078723492994262916104504079330059132590668522200156114565532369906764670288733139610144045053202387225268708276112879258496315044768060313001921485287342895846246826992912640735929323556598277108082669147836729197462909384699353551344658950744200994175070995923799039609241837569042949772877641979604024999560565611237475728826055589219528610187283677148987917111644467626866011382742356757503725950679408474740991009372091020023401052106018147552851459259286522607178853764420919370378703468562178294372658095221426279783375594842035382789313564809724120881392017239696775085355635779971850404503894560303129611647062010296253558222562947947351274958279672191412958357779003682144511446606552031310333268860401066627252176889615606367666445942176917804434187731684549024332916176364832802893995391373445979893716005909969639274188841702894912874784257971766226923515251845856997031578337471458573136785725109046397452523326599302651831945348943876732048534906121053794520988535266517730434328051025794953080008239638617438431064003531018589864459919102043340631065547406673860187350597312456199047553321755077845394662020982071758232941537531543719464800622879229346275770226225029376353418961111929897195673611969539290608770948745567521789553290826267555646541159522688942226118035333352885329746670162942932522420612857956749538663910281991994412817361256510288055940783855823850576835017421371912259385165132528846034990905230520417691470914244384764195507981351119291008306588915904410286182789308996745218545091257660121602839480254156290389026876949918431862354849471217574556059945523044336734093804724668204022103361530115448229062879809074477119667355418364713757698809593588683476342106506099710460393201968078269588995798670115470311744579634207719272215495545642692050885315531932633242745439251068366046534094177712841311804063618027365374903339487004202498820351016523895748862336215795278943578110028006220321033096075949914465303091878271534123261362776878803369540869006287142206246749941893754477012279518585169298729323688119996739735162953564846990003398564286304199103997508087903569039695727341928366858420844444057323275967723892525549638698216279892639906879758297265640755273441637737975108509245685966938047533936065836728228612713839261027274661463930156014049229065669063845859337580062703325166362094064103863573587318336311687053350562357815113751742402333689775349015335613159764474867532519168745583055138352917890255323417606527602950411875360588045838224942627654917666681204860702997255160943557874738192337611132232545222042948395001385404039212046508017857758126620373296973027444402639436212644623535453858612456969162670651217606719407269889373878332283887667880084181217171228589422966313814396803428298348701416067176081344104582068910956049010293857067461822859079147662963355178570322604739547097657955871786534040614377184608276039903345859051787808821422043178752175313776465443310524927169054376322182738220702055757580058062700110190979233037408134442786247310835914484633141791525813037464631627433207535046772706878689178048969809556195810600923289842195082484001165236535673046652849456710572381628513277765628362320301082103308151890838868137130933441632708662144238212094706674739608604172231080199273777337597196785304982031212501407633811487043734752564124948818099956246851904516864340204755744154659053582030865018529833222416079775045961072667369426425624235747572290999922681424339041753661641388375498869681049238293839959761983303595037937559018392688063621091791529202782567201740732107929884553321508072900682075325352339040750502561374833030598490228359459947571926666888841332242683270024063808672325211838836359804771380096507512461957199641688986997245435260522448308513717964411477415031610156140434068568393320282992303802611222184817180787289040291332421230037410649091695849594281640220502085915191172402773510587467751897380653359496245650762582810429213980827486573370027821100851400636204304594797526748405863140791314183637676166366779425445632395603769626134476354314317637887986328923638387869608007404565803914229987593990174828839765974934840119380218747794442696801691946414245175750418182934446890222593637102917405448838389998051181225518527000128095151724621093809393255825206404164617790871226726096485186103551245250696375646520951523569398534042952408490906304910092927455051643592576879696527107960546557315072504660877323313303375053763408295618151980698984677182515736265750085481574085464652541295323666354581231541020563279592846492783876229366683473225003756192464832519260224100134688533974725098019638407758627539083891219095729518641026791730316702821398476749464575510178444571200660189307104910626974939728153198124479531552786157284876395500270148293148394446668760967984339458096780549115247131196094320428012370044801105190896418204137249943885865920471495736430326310365297004161497709489510682937029230213125991766888818575625133970417112746231767258085524237840045814346562020257364566156974089864087707213315632574132480728888339778540964234093361204469545958472233845146861250678652829722574350574901942464500449740251564575896071502768964474181624526485952441378261776565831233752722668833746429623766592122188983208086333976411977477058679082524378284568138318049954797167538689441033837429730053888656484920943087249835302791929804266550407789429971432774609473656733958660128144457892304194228385866072280240541966907814765218942082616700340880732709671233783242228105927314019578375613919194400409218497357983031102171101479482537998856643022815416990746491794508736866068727135726116772312459523091245157496118872425813393669303295195695038754546542402708069846227784396077252991035329718945575016089039293481280264607470427061258263619804054183453954873517390211537290700854634772341269398685714038877599361228404834307987520092768775257984816472436479096380009963637721340386144390820322896630413536212148449135016774208539699042991719784925007123312201696953154157679949659371847971809656538168545577114771976931874286109000939124247319113518894161960791430666035905693230403195170196839060887016891932683533886904666766935002294383054153778865622512330249407401277393425121518159487330193048186461208971608216951541660019764812479942604167450032798544598819496755892023638268523533939289424152502287415614825101574263647226794067240327759919781873006563892081643656841937330365370379420664728778568776900175519751556512878618726033076341271278405115171515134811733826611404319902934245078872716230736193104308223854282099790283954097505448178558437676478368021066759334613498316681001639922974955008623653343496487120519808977932062504162912447224349304665644117608032884540383451772120887826918229742631528486635827411548494125326655818147422210589513982758719399501247982150402782310562258350389285542348144771891172830345334703684848048246067447335583021079929579800133391851131396243639561662308711879694443685682429261663157792875990421609533296383133926703952760380925781822321578494601217642131145100632428078863466876451512075998565918331606323354171930366050391414969655784230921698525263884771129135854205440773235280172256796987289194002900809399530414468850733784100274692815450675130212790108889712523448759853949444684657719559800119321624206902615328912126468952326917630761340605727994173041304913844114261516972298568284802321510047461261547744407180858040246044535386415322489221465300182809616721523930152463872272944923225657611264858901331581740076346653790943989802853377357419443499983273603668237817372110652496271986694958139916921149642914895940939924998379872880662290317898256784366548974555482301653969805449612429183313781221837167754944651490830123481939087185310114146823143834895007370182475471293997980376632464881005851143970249398626493516918064703456244894376231537602824413724412892565324706868474462531327229264208199890823593810705235289067147635566279843543222414942620199342029608495396887970673648344161410624704894049343515644746081764410115197892206424792604494272590331713443483069038802109453513112577476792524507361172817964171937027153867755843145469701634750512545656058643062311681209814051416806629964799124568060162690621678263930998568957123835878457118729843662718027070807582073819358470926443535148999645767045012400548597532286556185581913415862643651232671421856854498996903127131047956858121909778627672070895816356554831650035377207704251594018236084760911576747631914867852994119356180800169495092397893015754710543666143257392952410402796904776371275203953982680059054328097057422695720149726900615166074933897708914945792580461529010191806738910042420060312048908028086452869429254917760482901967228208304298938910250997422864621500512896317683311597654347323362208534660481078867721426717045634307767710253670560774674774491702410649930491492254872485580570022841176367615792726128104586836207245186089801871817503059100365618760718786115511156462577746334457557500409579133614634508980605522133916352904768071486557701690076750810622764765747936864973355323713482171370879311659773240279707484578376407754053010581944262270664699772774928264957325969034580247484832040606018954887508817495319400319285972348166488624045540033862026808609058673691959760391200696355654083737360887133756249991115385120153270917038297470696165296566861349632445777524239247891110246760883627354915327462877340791008192589671191908837711104060998902660353323838607813198790408376101996059638559433335550066412002797206058726064813661287097619655462300140230482661606671172890083062387287182271475107052175460144597629504331488682495774905013339106755530065886595291825361952838889993466248329966300409287619570681277917038584155299862390601872086714353001505819546964717620494909247114974392024407649714587288267375904778016462501079053829891952573732336691128013855264659388410440293251191070722682558485075745540189526764923598805853687204495192216974320087238293047554150630825785220852156275232659295055042817252585957318626794718036236600287378371344716022412775868924141770377969435571762925579018930713247953277454479172627340853856513843605595268432746085892266729208345297879346549647741799836117019139831168633487484996051980387689764420742387426894786228715248617967300692222373444725190442450098660904198509385155630121291369594852643524060867720035536767746094586327608997776601326104730993602890448205171988332088617835177775691856341518682268729233418157359569043160501716895423195376236295189045436225574481968894407415598623951038675800860949952902534699084931005387401794262437379892659003627287946351639013489939026299101156870814043559526107169025831925764900141107128125979837313971916752312313476054543187163519591531483705832177570005644685025203087015957246275769740769148681622300506864619885717864677697401435821187619589442710921727475661038548600428159040085468682732508813295178904476590764372290402091049737355254799910959354406289986998546766339632589718928255868694787565454288101883042387111774193358661046518761662174894438585051962855215536189061549315778863332179796354522173774872950916222192605295816096406846297091696458186868056298702963598461657564964677103178584013865377957790531783630189148018774422325173749158127566415200944361425028633429585693312835389449836317144290465571479469202992502551635806051194437748486284985579820984030032149816595755375176398761883524762519696088749039125722218687104201489506474275341958246064085545866315138552271624464656959218078930296854263650404228842596096776523299980383823394317930157334347172659303924140151054264877772100387617116691815012212551972820551371255390205955975651837606510867265035271740897684551574747021405199267140859433861696051698050102950733779699548638588557933674478699233749442301968577636494369753303922216033440734934584355719842448793708483193153671729429791588707673129744533895642519436814157193384236786454487932301236223123298510394333547101462832742739279282760367388987859938036684771681586329716208906252321353688355186932179016805151932366798956519132567732308959467355895460078715732884182135391211279715507131742227635083667165981925839935461715569225679119727064016436717940861834270275281623640402940017095379841499480289006782487310402635746969929100047893239864171950620508937644826808553351760372174854077447974711717514713119445350518968231955406688138523120147549404575755542283355700227857011170618815617891613203026495874463695319552246153438816777454101427694781087708199687778749411045547283828957501209535584397719579209536008041711624542471327356643150856096239302013677983614616719469424653923405562648758264626217796642746766975607711794675019564082451271215510063042913973744002143087708267915350878677074740818022018868697431470469743178817706113429414420771594818945688521258841354101284192156130976182804713210700665465578682752897953954086482115761526104205040868782838681404798579496166333214628005827212178366969006877561119989722564217827437667231549828259405529446320644307436837082989503380579208136156732296953163495859621953381007752136841077788885372945743951338072367840571383326305946927208022573162474311212859383388376017098071334096522006453779053538077361829921543838235737949680397549149059732172699167471809597517556055186319698494355498640007455001669107672391590725155688342053217996910391561166914124550767288997210102984662575699828764542622000982747689333848988861665931566386788705158270653834598746641163845099576885646098155640779886961444970223578844510537121389814670639860016473980452036785040478949314687437144493756985359213430478586288546362568808551798142832059733468499760256897785890123222231744399221295139419434564757339241621519447139945848713473968818497892719263496213168430680976944979058048356980138029346979445258428374968954800049588901231846611777927692457602536012663302389054481280892823581845490020309137169031186985749845609321553506754416629176556529232733263201402588824976990931500482891500661585451959371251561409491614211802008901563564402431030152917180868692388312396830881968480607936675997942519466160288763256951062815060937994410604268642401729269328107698683559789070697493868982849184966541935365107779865032079155950787840619147953033697149875481847247484818383451311764399594122047004365094313629351879448073312617034422828375564096115463389184997103911484902827215165901465597898933110105456498443254356012768420297697149555021135956836612141869661690849225121477369152933608579666432667641290924548874734357862039407338241651006735114361205311604405233196600128663376622851245407482440921196783227259816618446848486494750247141653566360944283519644690823855563649092551598029023568454314881706449436427797919437317244619705855799457851022513048695353068942504143671936480370516581447975655737338337682065447612823757935027365743148830111894907326417136843480854344682854273694761216708675723535047405081374664161907085032952780422066583908707816900672245465138508288567486375333950309897656292024732563171838181319740436891327184496712599013960564999815574796956341899033389263994598427262681641628728331786901835373614854837266941034424143315822737746953147154967895356219740164455805720328646669634040393372280796829178815133421951393241458886472148933119302129245477667242915821804838521984982316014598734538300855190310293300262654907673558788899980775791261098343229040445311131509030269203178122430307405779317600361938431490720492567674916340506160375006464780009515834215536898162218793668459246996589995634392155271078514959904713311823389604939554607840862957432376004724186196161078864534705997335127113668000222493789587634260190699056055908803880916930546480654956649741957341611600940582839012986886266706889357976367629883072207392004183244958542977855026140038793224210978256707731386582120201850907041270199670542098495714049491977793889696697699094152626444529076996330559845720794417392802381168758699781086866999507101141853522797642038594523822901479447100032102443795653354433514486219045490497561428222944806843094524248866227387426655598905059626837110885270801499429831819059707317091944241292973615598817757959943165693601726732776710268687316647814038634514861012389600432727547359335092053930073146662010435471297582491296906535440415885420150824840106280079448296457362611823309808534354436130904855734356034026231166083369781515599622228113063050970543285767643700179114565717318343008084065169274382595113239122894162618823616155489650642565585901163105114415108503293025883600775228246223708621228724624084652930121542449638275690047320245844331787915298802324320097033866940232494147923113661972878423854139274238193530899368632445112918328476591976927571971588220988223247196690305588159381680201287540809785205308359553687048035131590902614181898035659012911933441997604342370258004788185445910934859512683541993560981180328003090488811069019512372799575364145806234877011150206619190128587393116519663672726361396054954537127482846619653106097693071691955751006988214496872603605048863728186235523470636748019408135141053492764493866155466731870902829302951775659246712137116524369311621003758086283092320999695158717027592800855181383203634485639368923193962333254659039322469919686786510260956116089386041165524615193299155243549769625335288503899398189967997895573943895601432747816897090671766194039391309871477235112672104829909543423512149337586528764224200123093946814411765725956014832688752105821099247788848828614925460801792064266060376536913076177856225334028483373180604771721218362530322982283917262361359083715677750167571565713447696019806875216536976361443688297663101616347210701214292565147590363336420154537704349162727374905250343517201454361685191123859553027648084290994561401572752172718966556761363840412601443364014116298093001111432864918387051672776583970568829783838191103657131047668749811210149734183381490572692103598564003010250420739350273237488537275265687067642949065610913630486506175665532959544681066722576406337962596527031203457563207424921485108759412925892877776593844592954919899830133938097619527711218117646917022028246822227086066274731603586250190306435670864610646336042954272118590464200599501538940110006731784053982372867000547766948029309630661389943954340438353964360626501139044778105755303957086105018153225502924540903729463434313717438672274164555953609204732130667459274678194248330051858131789793514869508839089101356914248214354795918086055863563713215196182293806368586819952803879523666079377141931376621570013994088804269994609686743722670673136049693213476630890350896070562541181282606325921672470912582985018058590033674688286993285350475993449448282400760232648219394293477377147095101452461242096965426998882187970273739279862394851996357548572865342220319847397714146679335963092785431877972483091182786186205841506925539613165905286158948449887946428824438563165278307152940907515813166001047413789111449635400778875938613188233548638257662181130107553038121784510209320496411547622851078462984790188716231380593521939699467389000371613309703125839765479377107962628218097267027438078086221587215096633837354689691350735239421068081841873798349512205820805915128048059844666869705311071526831214835662105840441361938670080538882885851004662458854330709677219510940887469313899342579171909518740650403151758598973021119525731598183012137716717779876626550239013635118037503388660866204062880355867065548219438154763199099920508194976922287453210096088425249316630189893345043379379517270810680645716617771361114868212862594495791107569695758281306936620921990114502420705792941213064930024715009067090919175232113934986900766799504057927367546064858168838537355120928326183465461625493841359716535500374947262172358143039016257439610169032099809011231153664560566059416562130581299332938710483404216257321101640261639665237340815581653999033629234484982791705290669111725926172087712502567742066554002417696800834847588608930181998796436786988117179517416192806717277523331398863111749535977344133849020476755144008207061259638825786564466113093764286080744134561430993392844448311769342135323886130256274286976428562797612753826178630531817860689896277712755873016460722591931358480791216546667394730541066010049019682631531142641319189517540179532025959278036344360116153860920480889500243221148368318718070873595569934306089109679667045684448709347855488392935340613786222829095208603503426140678463422385885177091319844938957623411898606036710054808620362213954973658661460983272761270603355939317813941008071862391973022569301001687458679113630223248129292971101169603303700089637967088292405088559785621645760886773312617286751650477273007388612362264309881555987195422400315338477827417102449349360748428358466251488164050139040518540208125350988602887090039240178279013987963275100670478774041625058067226147275452195296532001225278520794692265645330332246270704732886910519068756768880929087092574195352409020187722259566041373621894643396720472559816775510325902061569135477258349346227139380816953248943826091895464980077630011009277609558948161724844463074278220363012108380136812513453485103366030263077052751080620242630826622842111174138905673027336064193248127945266121285910027611607240770662820834534419986919973470296407828436521336674555441059784599986081746843145057198448790470654514058295042898605928843302476537794911595206637715095194747248949977589354960229937448150674580712499862412406947307513740162699058615073563611514319833539200466327212662398257381960412255833290568825170886103747788598894386587264804235491124579791679274587595684629919564683956479777833683733657021453750933061725116972663866885288165705880905732345494197107882506700498761481804456455651135208896252609332870998582434614487342259726887284064031292473497616368591240433001213243549481962716404109120063441351973862708599077192799180481255220295116903416771709179592258324028471545000719768449487624307450701083455652166463128606559064435859847655456095778718106595294810555389364545847375802376801702273828273307269510754232906365401953437786338278741671117991996997585472095498949203373021978676616400506080958174332117585207189580028592607684371022708015137190576542389736564024054556358929959035007667201217904273091484443913458309624670211408966046357686407232098242694039156882302191011515104446459645729472890690728671378609715657111836447881547957308470819599573758917911961115740552523707798926807726193259089108124518517930288329422105252606770945523522808823278573246360447644330837350881949743539482540802164340118036695256090846657596604717797962447407414820636549825526371003459686857519063724042109058106929380949830952837544981874223895866534386403234028694573481919743202616861331834243448471412554327850236690707980793049355201458071674563885305545832081654214973687469786762773446503723160363819719282116439834420763920964274346425690113329171800421783272616956764965205022442205539086606763156387964568566433256392583392210703607795199057693856103819508522921084150738218408915965158225096256592132668205664510928050377283464003224703537640100238431526267942972581701218127398508569816283024735553095090183145489400753836568729088991050478168971884873961582828631211180150504189551277534906776449913355790166882381751054322751695081750297139724721100321035294983980657580154342866974119879644371391557925947940860014282354941049302565589909446381111084249661463947273555762630446538168896855561641947216664486505210407152744289124012716788453216330544132339098384060364124641722969752670505833633701062173000547365667688564795003915808750215605827599460713070409622058069373492168388167747572627050560399169486273038894604733879784380872493455304880654593504953900128376443900095798085589185662529419489158910196764732687375308178743826079019273065533129520360409964056141123599403058486909741226890049600138401967028665059413208454983992036215145985591804478936929197045592684540751245131469953001123099692742482300064856796917429202713966766930293762384018428205736164995377730061962355138714086975631182734802717284124911467881298698434400374213990184988525483865000272074937224361452329725500224395064387586180010178475803506180599551150540129198340827659614565227911682912579647412642557315707439601854654549284252239433102071592737196009900704528954926424462510765915892935075661953577883968743162965455903404985484882627601716007681444818005670271196571386162990459252761745511341766816754228468171201444739103575363859588388970137378480980572971179271806272378850357036750069942821965879250943013726279492763070156669929926417500611212714841218815571295977854565247660081389949330044654830508702262831902917418102249573595817845458908830614907597706468119726301887265382502530405737490911139306993281170820860002662207513534801353053265021229579036219307043615725675801532470032385036023580880775652895711138374598637660827051259620529672818687718535675686615334340099252164578999016603253591443523562063415932305660972045001946164513858393319450014215539223990367889214599678043881977769035078217985429711049008073890468540782535529587922697430177635380134466301990188432953650485418588841019088567724517487672953280371272168952250203382900376106408237219183946546317225106803244074941365988177247342064417169332630008953719083223089558896357294038684914961123936222407676947389341838773897040628847811024163269051685420709371871374338352440445527240065411749395712143577688470263410224300218997882719307920367384580426984538556189984897103083262707452386636659074983164548287291979127705372394122453709725403986505283815388108105020081865656671721780043721090431763129947884423395772670915832680726640943385950320024462174440756210667437263844948435656987742312914098009312595939688227245770623772644938884547140376832620232357506089119760401009273231463350437272398545093876644474773241628331348209543158672125485009372224591439345967593174372932236752017816559238513229938562701885239352471959887395832863059548474908549168378732080634347763530011322198432802971722480892513284594226259245488717944666823874645882244877271754017568736963757540636629488929454966133383425430667704259791433250783821591553287722557220538744574556551293571038855373057519785937918826681399373474880120065405648504436685520893293033013916059659764288177537704682454922537136015733171412537299149898996533393280304402959851126489998379469468668915334492845106590565373055704383634030165180738814469549726194824988822437186128163409223477332956053286445051963189619287552052380130244646019256670159894676416131947943143298679305639240238357500833182581279411780717968449088540798826472481347018524603446430060562903531739646116382571100033574374943988882077986430805063458145473187723437458928361734519016203101844456435552622211015766981287911704913687646218631970214249815088650439310570746750800977333948617381409693267090097663135537859778935585181140509218423645804507861765568237868124428719468128386723087782965978350488706173854005446110369529396450744466694721930714316017229431441335535881835525179480442813029233171990670678686613571841364409481820200681674024623505497390684455453150902297296119943293222705676712781235932210730497427133337096050293826842432860778448791238545220855807981075062804629514772159461701914495095604451597419749106962620559492820945083123861106876418493446367612849236830760597524809380653357772736840607374419966801451009331841376678032594511845948910588565539347304742132589662715430232248411606014425384106019648531285823734230533171475307708111625528078093717802314216858986961676255286579569516717233126543193062215344736835735723892864281009019600566028846538067164424159897202184871307805701577917219243114353687915025699694630925440489092450383607900428202009731537443924961526745412418541034507624455325975769647806674559974640172845708304437370734352950503029046724031073879810721863985583443417917523513377599984056286787931597137236880857200231882311595019035652322969399595465994840725734372557972182671907282122545615791396743570113245628377622887078660351337208666512619871289226441020775689526145218909480837899665104403627930662224441653416818437264902581214462349874062128250246607770115220128810983421828995409038713282052251012991964130322943125387974246860388656168457473622643007393486923772165267447322329911767234494841016822134845973718866319466644524240933067362303602209751712579224750059196507812391082137973668730427572659315683278130680503810374902458639699107455069916382604016818257660343318178578989742799152674192326688412113942528582818488135227357127646208696758870473804032233400423417896501385472922211084634137428432494476176458138992317501303232268506082299277972775125662903859530258683407755584671761862877819427454664457910008546024828125330546012537130999365458136409730880879689961592232467564540891009965088244208447004686862679248665010625567222495480076409675520996831195398490050189659687019301724682932035923182062857736049375404782370190489513451921992120388697616369022848192647967291627911733261977294986995412857068366449400839312977999507917669042409097807221949255331003281900120690853283438470026955323024024801150375716916927498978225638097559629489463749201979006542179986019625648209944647374758350024267145079661516487661234235777926349669204622252894182861034917902131863194791600518050179571517790814985560551533747691749843464641534182862775660266859738084820642761978736775183659808869897829553549255405432856068727242779555214480770518284394394028721080955253299851406341623367955158031616133327199166105558475720863085585166726252367728769960648207922034790731951269885596087295410851161049115362663553281385829050970723505475609173833652901724498748390858136726430081811695948750048502236096114431064024633390810166647845339604296475363544843690756831353085421563752352145421642766213582261820889785704834361630289037429639069398711911349674809205317812650708416893001473473437271038693546092552678595675556662939147414371086249027941552754925392506843847712332272203043095102056288503362196892871365077324102022648096958074280436206447887399581788521158034259639820592566048851488067473584516374142023969866954692574532858264122374306340065701065143551507232317687795418739985243626592728410773142067281653215242140190162430882623397360580142607425240394849094458086049705620033213207065892704240049309537687622040793265830173374167694637583068614594902708096309533551812147047033260068321450685541728858315616920839038561591601669543009311553391059160487307864047281819907891693586547585218993126240500904511298253174230915593265902521963179984598449138263067081976557554571087240895401803770237048070223610344890845819434988475014421420465305324261834338441000840454887701116617961502373162337280981695557047738220998409407063857870649263060647575892044944662968262222904476382548466516397280153544631416727221216958091819335071254788268594247108722444256996250171135785288556544933003162871885249133566308414045639820417600721538644565683246436236350822933754278217140414166644285043104358464961922960667327808966873881197029834033111789683790049968799705528008196752176327745466248114862982416002504766243798698753764380324277868656212202585135787302266934664797525922047055417039073709246147538771753991075183900889705543397120536857671080192863010200275392821115630236313227442379136991063898311507418187023464882454776112279048340355257550695248383704815289267609510190085216620027621155318384274416728880829763859755073960939954764582265026865890754705965810193687733264740460822671887462805898088383774333709867301784331215630766349584488318571720888933711216983920612070551142884172933073728302298071127280542767433832343047286372201444469552580613975022179061139642770511166278111844886203481582643889212069329396411531708618510251615972595725607633372275864515523794627500105569998597550995866362076037247157121358793008915259932653665614514692720555839157853232487981848087342972561712863604103681664642834759277077246544665983097737571666469455917161543371534572533828195146304522433745497640988401861546179533606007558589871142909325404457421457957791734912078521540868520739588535024020270076862912488149293431536849478787338981878602702166850598900893130606909435145361106206236478313454432149917276558338834489886039130292907483807727710982316996149579251957520515229115814287202862536549201733313833060032641090107214607405600432778656296624143156415800383167083064955352791187411164361779558423127172903145015244781920001222134019467889638502019814371585661934372251452734675148575449783373473550335194674449557341372942219616620593389603962125286125536983117935892204023937606328002407890934012767170617767844205078055197635594338161540500765643487927092614282196920878026298147075568377142152175505089793760297293133954674358048167630680439212897138064356712136751102506374598702784558657896671028700145978186592850429084751570533927721158084764272115206114732420970773298157358045403324657779260233066696745901436154429650848893741281687764818104424346944834043863420719194870240021433681526082088453204793706387166425796498974071212461003818187365540845565488683074047055067562289816774367335239715039760910290587292134402250485440600325546082701984407516119653250135873586667283083135426770178065241205516681774491473068854808012563579921590341558394993443542037064072902606175612253341062727635242118312792145739661013058523040757758192969657250756021024886747212398039230196512778929018778927821294926975932356960304692049492245388743749435803362207884006601278216643907752435205572127132892297487034691207373599159332423741974751904073503846200576921266204332529157014369538786061618308073558114662862593229655136079525904347989027229852764361933280892736608241740545742017384608796352449590192856336022161595278260776838928893372681686140972366264510916152918087412871707722642776428004572041877087898733505150429561373537008525455760070183478758138405237128339105559631044876790894749430991210259168388608700574689911939994371998206415667759870098472676504195111260899469633477090612888021447519101482587240961137632431373800564235219365295010555003381349905844765773771824355250657203821340072051671802161871611953950708492536384665050619567493710865516310443958219461627644918399443382438380367529629909448063074740718164328457905709987791037926345414159265162774828978363152335412888825856836951203415476069036770269601486932475356824130939382004003174559348928666970169272876375987203541027504785192706375587882100094306485297796896537241728680862018448996402044190025865209205697887125099526175249648895359512809199669842601633180296554643453085612084352172210234089593685742656042858786417442150351934220742477971205172725039381663836848390744212043842306559262863960454384936238784418249872710283970391864829782616941108513345473277069288580329569973063788787664257916220896063244802770275348598395628671486189967453296410168057578573338699372941300018490528148247719980539633374073921649683560421035992250717446747446400506947843451075604195594701067833375066744726911158419054091509373177859940656006707224413020681294664983209330456706775946653120618079908402085046420790689352998622585440990425477929949104407797117046289551628901302374126601870006934908205459092446996906624344032006709854675420934462347104840736686804080292256515321851457202083619575904959912057643301594032468012829979504659775954983636378834331925666324667810453838650359028951625674443343030661273339071181924860773766669893596045590179857039763847644220505954017354956516299301058740144320728273896316237034371363075227800324232757388961754009887497664787133436392726366372183383719845087862059438541677588254385744253557958389210348496241461884694384407118219321644362020976338692278466970397231339907671781765990015601653299113284654215498065361013068403756237500894410042804640087742710990568041139752194222138726877101724691016917183664280821976868975396318791481097188478999121974245731378751056505442595480645014888430039415753510687954956920754905984708817650756684675299616111180160814877218137052276655706651015560352223745476503741314673995906542293223428885888155076364528844757652759094371931487411862428839664660580982075423457609038070937913630358990720303952832648953562289560089681458151564266010761608736862594634701018582245643925152422594517278489767971482591553066327033045514953937554130616804075446707624083100214738809994016170257053862123917300209507165025778207891781984668113339180184412778043998047442611763323796887012980877971051511001126911237381057864912598532878468032270120758674076862372207636522922735277601163153249042957542890010965246288972694555698244552626845335280294298894476587725262535501174669655404808511477186812035121880564122552032724219172840804776839882193810443957295848104315448351754473948163474631568814695851652437141025363243005427900874829744872505137255415405378331807130053620680011954717546860767129972392047635869780324533316023527105503939733277146468802127515042080107530264712151685096672658094234208218817407481054211230548164831819181656082381201876973714567006933005157171840939518293370364733938516155003126117804157674449271697310369845600240350823289305636573916993782055463123218148103852761168938585475929924126759894383925948291025608970827248481687147265927777878360085783846455683256501027438122630708924666886247647785332440906909766481457159871730971282043058286124662995051454939800357168451632050194752951976262527522977124383283629788460706985923473556379963121739802064595782724933457532513645445126797987567864419674658102180627124628313664930252945318766578624337493153051827802622800550502266706031353106289334708456956766210474234610647327630737679811239941274420971019689621007841674040164317308688228726590011590621014084337102335505646193276758663555525476424075025085751898595258902380771781020562449159826658309809492113589549519280200779902518358334987449854221027132646539209338958835722297655809607476212957269641776373304025527035517310795755862594119788206374210960961218033021473081492557364076110555069941235697010975725034573359489891654398316071986211060878983846462326509431941612342089772424563386065146228872485962344258272575230399822417222460227076469397309674109605800032260586885345043965970683251016780778331455130886662428551670563047971019020905275356678398087515630814756546087363890025255847948666938716375830543484982820345850068319978819470548440681736274304270732833326684647674113191284076919235960401058531096936262218849962591677306246529090230533517393510532521118670989185210967417408449309936989934538921204522863243898298286432268850074185480730975409378149705527656637245639160580415916604615435549201549195843827738889153155600698639671170833881766013794428056327288435086894062282268010336164092403071185646705493373145698876597430101993820460918200944133096496591248169918721644114398723364558941011448634634757486157431845919124420513141389196454057365138783166502134781124342382504791097713568025958094766378767839213154383214024874161629534234307093650081246617335657292186097379321585204459393541411462835352335492642959762352333753923940928426903178928733760885087316699135236772004414863529996124997700935321615193850262310836964434477156778946942423291811517495367896158779172605575058130659408980765683156920226740961013390954877211315796618810898227930649445552319518865779248039288615098674211677659848337041437432629892966864365445386118782644047590119221826829069962617223185821868162037060950846798155861531859383805106240413070918999804037632767245671758304067575325276352852363939519859943340036514993973243882687218596037649746398878751067290557690889705214659829052864684499641768733641707699940323898044097432458556320544242406748221765587145742069292734600635393702757600961382034343734530749011799060015566821547263303361378885685167847635101505137659389586560802866966469554220132872599941200595446828604438261047342092254271783259471475272608601280984012886606531208566637827877951791183329101757450754448994319819483707188867307221802219585582233371440226509298856567006440249177325949418120853453204516758809667976469235374994657161333140818140982725356143201113920126100875060471191608602208788414890681552431100627249109384825346469406488747874224025266396213389394995869872359425098251007205815244950678018610649282703349749760085266989693691080141066949199448122194055953614048702385360138756824318977336514738523383512857537813968487879563302095477811736022250608747342189422708574909652966604152723297941806365212401692510719324687216694369951616708182840485974286385873744792389031371923914484649086896975817852290232870081820634847873524999234466314089013199053731992611725941605309254563547725498996454306304988066125736110199842094804168900644749655818230219347099456434980682523781487605467491713378957269739389969334151371911495207248735134542057999939103453205917602403454718371186615926586910690884586428532991265543954701312618310262722695391344281881584183016571080575432328060655383459521921649617688162864642528250825393237169941189527136673755985683012954235410143275315505972733679633577078710279423224599164409166836966711586572675325695722845678688158556486261245750063352148929409564720897071525235407676297218806405436662708146503338327481760335875802456048847948959815130359554977885401584290671062116366760932424227205455247338123762360299322291768542834038409285223413717760388852467443792393592579820188168108680457642642166401437975033774399277943259940630368236521275881007834966648318849334914301331353088596941765176886125212403210458444187757013698770514993602709001077260440276890128150388131316099123027004053891819274651891951480699567510849965738886112792964965965541470563275309260690791134352204049349387993350476061132043401077651489369580365567523514457161453088683773432613033156475280977809535088893905756866877684718844186730852601814551322100477000689959441330977862633539567404057578905635354629812639558049853378799148606814463906112657237417324984654620774118288056227031274690804221739896331400822384877193369849318310413858633960842362496493969121301279013719840554544231466671356317670452140289289182511822893113580263235818107024723545140999881557186233230578055482207693331731851159852522026468980578294467818479078677952140649710578001645352975972829437136444283584800632520978365417505123234235307128189055433120855599460811581439634922989415822587224296581671743780734771123644353658503329595438280888935016695575829306783653450941191348986809332166150456206905302830819256818026899995669741355372144871105514766004638388866395075735308803719396295824684461619629483761933187907999021995809729345100647115935292868661327376478041059253684346721977830630993011829545046919080483835580238340976022133360959769199225469488934956121695628876132294359171590273224652867049707084940270052839085988106193287148404720364108880510290405848791986491845413956084392599403270282263712029667831850811063222577994542221034347203864982476876177750944577364075538366657401326679253221778341725237395692314202391902911607922755066309638889972578530664137356940896054235785003995960881076859529877838221781545827084909233407692037218645039696451228189014614233032279299130162613047805094009264547112792174011177704257822890013462533197993720031106119713827450679846539291460194655553876864507424224837755087732296313165192448286767253507760162424171274722758166605085772704623647571942607623003985086370705441307625623287535348364268911860487034514188294030413781218262090437977759364599677417808575009168225412936115673266475762452978467739844147952759414559927305364492395709865925017891081271927286475470271436102007774958295157335107335251424257309198451645019006413057410920938826072733483489911076006987804485163085698388196714750051080169099361731270332728129994929577141790654663930557297744462051688139329739102100327226477011614123953491268086639327633517636499119033395199209005720143200567431228458976931918520373391641909525632451625759090730247530484247783610316485868264495700551615573310829564745595925838744576275284307436850276614494545859486772080513058600553080816321801845093846325190622869940764183518249063214787678612089905543585057335918569145090602660192098540187282023341914959837014931771108847439082352385422135960428234389036625208041463438209028092060503753230525735587023045938441096102453815488255521919291686684830618304583913390746198460941240508209304412429195059436483507024366932601880293543092773287367758236870781080175454699946681716406364328023528972361399974792726525404178475023822615730335074881264419920741790582131433950458015148632581217331074310331994480217020692302362749812854886453174030548083486787653526278400424473490926851293348539292767818917442720592657127652836372682650861378938194251722597307646490953199898411944159537625950238134241831066085390874191370496108918973993861213630963076681759730232050454293548752665966174362963391057831155717514006818215153884367218444304893369508211757369068249246956139594735052572070787122811851686824574571135068036314172125181245719256658849645088822089899159604309763808880637821616780124902549847287625070844215800516154795828424787936485813643342987333083438103444511555924403660923040764436388230274897824237058289135173304618900653343196598969851495825505926457187580543897529301886541004830769040536386628146551350388578560847627680105331133632210056132726375781998625375321336316140512584619656451426934023193563133017805258969317933213831790892134830839447866384633626202545299795709799748242996610315641699753690018734940273912614517982796962441319683993443806232058908782461606906727807686779267322771498498051312898432278308643613062760515340673301371983160770587231032103795170372303223637085253181381126592092594573145316401766780779326237857228650628868067104840501917711116242281404236008255672893626407431196711841212238512330853991292945852609859499789507317213839767913225770868708810692819523787410729605510823724658750746862630515631539982468837492099016844517480158080992297536531153596263222458669268965385833755321251289242276511376840562127551989394060312198263840036888740313975719689076049151861425506009630240186630944348974802366117749463066610419551202487592873707385041435470846836410683107434043891998813938006337677733603560133193342199931831231609983912411982586205778743702893397836361800804912188581106907941138159587648820525639175945171749350680536110228452346270714009271418728138012182517282637677472146825887798810108850525610242749261358374635233717863557488659701198312032649684687711013741002447525749731584103964313978272019886610936089037102498138426482716247326516838733792621239292407749057595429796706811295136214118129341538942696049164898444407437202591894840376804054420612787953508404238885976637791025385955671634321162324391986257143767083425089695537530078739027937815205159094426928640966225376363468705810978336522195476956699970124429500932348945391942558461167600194307010139047965019301167450128459588805162923905528436179197773766856564752406915489572865017083417621709031197046534489375370001750981237592126465675189613687805301438278954727198813459754797161916182094121131814168312186909451761225091481656730771537717656049711986582780937569111189697388022564736667712924107625339611488535756902113541068686683785234725613130767882536993671090106575074647584333265973658761255480939738745851615249878912214450565158209041688269364217301445444035310653880338641602370476734737449087669649775812426302913248675874017913619134214789489764704596150123952078107155701213395106850097387895780989087907575053936535524862697222376329863777317457555925284901949757652658157774944909072262336635874851179816089791481519517237767764879061578209108667315561016855592703771767163683079730622777901858425942620000608785157578450097731916290689736289533403718630185016779914113400429440137552285258533549327503631995716739851429270964196574761007010329994890333270512113300679697256218774630217489282187715854626748049387199792390308844751584969702802594737170643488036189616796746683413048144835922012927939117086068297160541065292969800562816326386448401443015554081166754091150881425610734414319022294447155525990178149785510551154935588542924219286752516465236342778270021964793138209836167913554946762221247078733203972783303927720787330214606326906363605742767149860784449596283397815781378004427170678497465851354487216746237258280900162970658849959258931261318443554767325287033812804439536612815944486337041276657453219399941309366875637025729265189471202584717926006488171144539911939182515865278152894194778658384489457578529648760349694986573669119884155768034824289979238958629089284336026867897877755915713520409560738922168234458441632404775130216215828436394058663857017890968400498370362965813975900830223993472141701047073932994752873700159196154115853170982939683408333821300485991716462687381012755816886586279505849405291175500650981303635904526179269116001780621307775342726585915726153936670656042126773570957483087892668593175965216260126009991378119655076400982155777389012874960934452772499340777784726998682023324175942723008557189989454536554731126028651031372460894988057522641073855164450839036600258762115106861507139867915489300883443625399707501412521172025354224683288803323403496920957979073124079419064816737373572287283368241669858250692609765616120719063199828039806532503383075838391078375505724464427262056674152809308877259770146555482682885955623633189668277607119304235581808282505885493436227466495585167781098039230501070600886786935489128280408714396004863744469548735246924008444968617821162568029552012525578120999438681771721605780596356019874875479866850917532028899342461181364434535718456152258715209344930006299677284863475773116086423334529078985538716971187741564807333438090853094614493014945915932863715773476082924097254503189180511339785848440203940816142138147401017798141174964354281215505868164935485446230843076267487134501638322514638637404714552991177151634604389251270342383353995898339049249269563586725122760690375583949385175098414004448545161732995529206236795089892307994608761964900731308976823505052793103956957165112332932149567017978969707995920704502594877821815225527562530978194767246368314286873914412086710953240098456722921733736246890831668166760740724065698345490717112155837659442131079773792739323803735179035056344636272862923406850440205676346944844162786214661662268062250170644817050397787287082458697219338910945306852981877634366172269366852893962079508240863433942316300150933036318485623335483190235469804758553536956308786906368427042359129313409844408659935630686609625220139774565480523534553077834699182594116404215133712319216807038183240829264208931698071844089349205239996623184057224628939809405001368775154955246851535137967514652871569675200632561891648362077944592396703244569091476115494035964874537563348999948185152092068771343903817565866792063646080198983731197176110372970748711770078267014140135905308497994004336573577491540350320401372103684462742511556452594594516747310285127406286877516198015024173213847649762346933312815167743437719598573484412749865689375977941964868204818125797200796276071453655570231797136131329863455298828624504751832888059150217345314509755011384295793558028198274728523143888667291585697280818614243301305614752776887895902493485422780266315357919388917772780837755329384807191625079245328936204230887830763267710434473702531376980854464819878120474771903504748781003167898689672256898362940252039359167504728435849704083503535260432846980970313464660488536091675009429046668284486519792047581970317587615433977016867939010325230887540761608350011448371690404459104726783054066202060629224387665362566902329990505316216354092811373695763439849603605122748776871605382705199183566480103067041410894931871894727101628719445444363735613154448432095794665249191440883916021846913785090499247974575681685248978389456537122421630637519075064894405047064807436841521352372696006532212621839692147160039453275350427302302851030622175257209337560885853806928037822374569572115351260645824462812167673902833401593694922095649959742345928063973135985509480681878085121308054561632965185975608038638247655888448574326431408430089881626299927589032544670686193373876956449436065663454783176597194011396923971434824649881596437948024526478355129948404571383372560688123515242403979417724129761660001732649225271512993757546771624458634019030338860810939178819081226118357390824214694628811309934822023438497839080849985263842560854893519248374343556901343214420288661504094376799702771842443012270617555199613267673105176352166342230212947548761166339616229104537142967339841316034037734259908478223755574436916995318116681685494910240245743956232807531536789946932665976939960874758124373228393292223384776485347972071723946283130178950386762046058745631926496076884051219124356904006865178190040787744358873232947837177419164042370485455868099195277165104821922453854956610684162551688028591874618599233374276184835351450019246375568108085733104785599873121080017917134343698042072908289371172766660464833056877348805916528510657759894670104316735306434878589205312038251048509347408844761375782612306008966671895269663733316688178688232388291488543401961285434959333743464008917284958630729946702707424442607265768585394012032219439497760637617225137409200143586058956131097328422556200536495355088127234027782123798396255131459682163164851241737097388633362800074000521960366827589959893626058477093160594436594356727107689399707558235977214353200694823759186041275421412136483140594736490821010145731312918469671460923575226755861973021946712164377632239236652767936040639267912085735479158523010573073875537240894191245006624491650815483746106701937176530341994674150388417264654259810143616099196463335027336773602125762146117292292518625047521358394599354218291029649213196558011508974158725444200351486581825635598062348089089059609636773153696125875666684382929624864573287483775488528280104724731733750547482234666054093954436087482297288213678359617361045599659480452778627682582232803418240716580032297611503589762195550730463745483801010306263215975289887073038557457260810345700847156411564616905046964889645070702249459401727650724666865955912354792388324317628396919844977250017087020048689609039876781136126696094273525443534163407920601810173066639419133961668458705518359015213919419107749638449643444214724384724606018167602801026555912822642311847588396595776175057396817624792168428278258867588218421350221973888341251380627204252595185795293070082850690769096466363183698183654832383822355871663449520875194388997130894077471790264041551093902774942157519787904535920260857671999443327795155275131064291664207743954603661226355555403544848807201305441420836067612479273208778912227304256984542093729721385735412059687225246675534787246674564384821097658547939309426662826580618361093935128244284240795567445719886230058481710379250566029867010181911911638788172550290449994336898098166700166030192597178711435603449916392161129281453989842281488831133756148902319855033878842415633070658480858943043680508689383679066100796906011740622207252807934908301769640056131210552633557923903093586214037533306462928717299532809611265653037967318511481201485502759363357697779598421352188204553060312981682252817308020255555702223097025727218648888530966561073105741581683798026155074958570190194189434132121766456303570754654265259980091328853941322221693801784392947014957863471767481417256371459050099588547168882026117835070322020334390004367571498720812797545135617131605473911183099331444674398331610038879939027156403481227649581682509394221982142799766696026787502464838709859951607322807023394580920103723598578935680892186201607712046237248817379001595450832495193929603729753550049809552817553970851292635729266191008903106207769291535953219330527265343326827438517656705107125600049113217322907616373436158051590273064687260626329968489062425856243290305526384070887758433911297796007670196636557924599572338539840291141543275809283275198115734183622976865207922408087855464710446830860323546631045894738722910264471015428811841136004851898738548699292274638472173126911079030694345507882461445726919982601932604252331357032783565932096145697915492861072590765979094576081627680254387007314372029925854259054646795370679975447798647611233278111099806826631838971136076764110742859085866499754223018981169875653735398533657990696383388163541299364028332120497238628800616351649155659745216174073541138850345591609136696578539902510412184063957180502927120646808682603601885536805262692223245367089232785678716645926041643025215332888410161919141507194156413883037193200977584148530271638043864739782556273654378680889197038965836510783012743093326884816928775661820403745848266947344787522966438796698235972186971906631059528515118847931318518733323843796326035530658604172948673183192889464474941949049113598097297776323787631286035439023378363544129732490427439808737369526419003070159077087749301446914492462879552048048279708200601144543890134699888518290958802566328011454697087178842611492150627162321652946483137226796331020548356379513941458580536089250420566399357817129330413092762431178304422490827489140795710284840485614105518164093567266669670594044551774391886389464577619495589447895057487534572117964973493248485181212590816493505703932083587482297438422964096954335657930922077168740713458128130215688280925290732637419254246588805274117723499643453016886781645689879149615308792950748984360368344983186575259406510700006625223963594323383353220617468774087220336363324030710289896087930312666871161925558585291139752082281150828211605724070087092143021799627860331892308212466468123263902547507987186668231471678906091541459937088801184821230550839552939547159926000455098163285975142171309301378730480751710652288857785255874212517598389106952887017866092042889046194247392532160854424071267678958778448386373447260522850057073862558753318749080716353364950411583873709528042562218655043252562443145896147699089121857999947346913056517345546293266903597803067423405948365181242055293186261531140149624075994701685581327242232273130867394475737871869653249652195013426772233065630415210191259593473340240105391235404949645953384710410234121517623301380876069674824896337586502003511718824179156180353355953415901750932051069085604024960276393669296299239609870208656492280701592072420655459043999206630814637092178112725667160405724436548583668444039514364790176644148733454564506450589153145268640655505848981112305272570836819892669491557423299681354705194604762513097114701809448907722984264610343317926729790793820372475822906966780423866481273521454361181270716770085764700193172452196502773242956801864796498836462556380903926547624688312341784515398652275206017655705593210329226677436742687204599411078550006615602942821217262198347629690228762489037458707823464404145432352980215869685267570965276741365725215458446105966283586840999514471576110172568114380515846829573984606341010528309791214376854047533337040390805531173396297681538508053491900877432285495361004210396437919682537484493572856511742163476520776293483989948379473096704996746510988593779472534553934864553365582489513883014175199795160170045680335775520371982350504776985222393241797553584955533069544359021622662927919830101792998784303969800432969266926850067197297825788261488408831167730241926252196828798917631141078282006762750634345216533834450441354519095280675796969596662862848412833431139546464090526635498357489864708024973201155584651804927845141066160404244826248564120271820573167951024468233955118387395518201497902370716488749166049085583298652603297862059702236221659299465709415762205987819753069938193784426789107163309651677103027700977092587256251437487092793238962852703690087543168452630537851009797197599003972518615760116389716165208015339505999842796275931582410154157454941204130732064008228294871535949821623868562699392707860229195960124744337151835707981903506733242162294780924369069364746718656782224606136711355595797827557047368170047752146645421427025134000606623352382420835328912252212935866807729486578000415363053852373899457457900828084233688189396709257607472335654678013683041347042224315203762268686839959941219571346823085205494215539948026751104257176927632660362583979662487403311241661166119569836345233085926098327301620308114853317992956558215693383413019138570054533137474080141770973441412328615201998051416188316631209358303472941537571093386578983271504687377391364395680582426461801328432316093894631008277197901132344411625296590094554403271104631719518157622935495209237415787191522905732672968323091423155337822416596713132081532678309861322194502694588248089339715187728596465719460154329735699706280925643422880219890941149023457846177730260072521312810505646553070612975777228865509193312348832651632177498020405208490273836334967753628702086435236839565619371216389615127491139505852137284253871939923156564515328259569914153389330609708869580604495170878537233045028049472445033699028167179767415527119724916478327825375668447156313585077204072856043815934616450910893941566429945257926820295374616413728123786016072064160778663434479372462801651703215432542222436820307188944551627599238403230119158732902465711899142520981851917635006326453780840574224483375419705640345540010546206157793334178734607637807808374174130565030701097368358458510890055333877477500250839806172581867544074318263885558051507110840484923525982648845473282853884997717134478401705742434426736893247510024698469291607416248174441857981479921497727701336245637363573970740940407387362588418164211113488939257582533872802218073087071098966061275827563116725806595203763006020618852570007030384716533086730129293594356078084554984187592822328721317883983177429093082892695966819208440499445721011699352184858624124336720926859031170802016488728235488002008469306645026398363345166861260933220111094626055320470882401262020265438498280773951018039193628194920048715217179204223213635205699533664355293013155491903956732456061750372841554610176231009214044240302843559268862127121744458028863855338730487127175670764853262611223371360682732026991398324675414624459951714428992329443710966639940367465219201884898704555545025547952421335081320600769649169918895048198201116254373999844300375669725495713137940693877388269225771505112853596368578150180226401474196225572196982375559351913750717339172911131566932234682198438624142703197328291798393409395488870560449582821063747740964819641856037586672362971419945774513848879930730210956740865061563166177364027116277358980967068772812350977817367752368043579259022499438668921040121606961112048641996833571957475473514979264825891824668266939870260859509555168483639407087869287393231939620141342371060372662094770156796755134759916255037470944311184273183933890928991033187018043919883917706802862806616393056129456977848818003608794574045291547427786880429718373522343234532392647477261835677937209867765397278528379434295656202335627295042266328425041286842876857321716487083976484007099192667668324641592745021588429889041831174530496817660166170861402755536217710277502454329159473518522274693234182193587703551309166257067571482505494970508107483588885174407143051293829364329287940443704520785357881391608417396583577635646301404983067198488544014951156899531111179614249316949082363249088135408552983678173929624250890231666364609594674140325408855679969592857383359523577536087817125855625564514653813073565702091960372747443762036554178247238707745276212473256840911581517667032622139983753269214373124510254811189029939391583191284164469215572242745888004957188884345491774341017224210454993796320921924952830286901101181362248222097987370960143843277314026671669003637664230817281493333164921753007008046796108662721686307547494951223127294859484634698191070583066173658271949522457311817542662972995912289785138295891943206625836235749685188311429420407674257514291366720215959357132515374976943619039586773018612173926568387833309694462168077476189411876117171488225041870999990851429689773150213890021088595550292477283595499270798272124327335196529889969474896434895779111665806064755589779621802641891474122735455681121791725125099600935045190780406311296302016363872415181864243784313277027691558423794630668086222380526300243031503887681781698920796078555410041962110338664010032934866649876706518572340061554276011427504558498332610983869282884072609199493025293833802289154074297032228425416566030393488995155918669244921948245089693030475057623245808339758388384253220072773248851876282317013727290425122439125323888017672954687291536691128247136439786337190221945825339331951303989871573169183219649423524556824656502747962881131260826122802293060496228116029505891398142647734029428721027688042259800777324281067902192546988003022315368954637686012560222464847638318949163407602373385007876274329869443850609330248122551380107022850612307345831728196314134551307691114745114001085678457264480420597847505922792569409742894961738510051477405342585734395524168335585427100575183742287099241868997948653968400621034498327799893105325784125235259002628137314418414950756660239388101388954883702114249311789636662070904414573917293722509727939520223855566568408945511846634647388784954557152767873086708505276915789035160690521535879757022791162378018903107256826877726105753252609390045986261442131140540928489956672519870413249260230649580856672919088414257979657897533419378227260246825098959540071625158138722590444684938200414639594617025427406259372592069125849150802543689186845824101764558011190662459617968994796446440556971327490017298430656241114225800593289569790650186798136425790450659090823077538137954356611127166623131264720888234302261784575495639644982590208925598444759855983061329473862434033851408129174227983499239856083165835615402457052039151988284340676831854186971476605136182501750341976462890683602776214924658440980409691254700064308075212838147414239356897939967841662875127881035834756942144913371455871636298331640218286192705658338298704067624278427038724013941523839429871092176441635746679078652475809416654775470300731207804606412739203708608839255212750995646069678407491099558031704893986897511942945383223262424991826990973617361602830683579058729871072353029570724115428595749628758756890063227803720038729304249379641840542616700397845423179463682083990611429841182894137249264321494508806764141601573658048525257217089803900533337074533306533482283536250244769623385083755967670679319658650277776082332926447100873553859702596931056368617102580970805589487444424383040926976215787697134303960238997829234334744117219242026276676055991714440363936573786551580986748404917546985356169016270700422847848203794847576649839981470844812284982428477841564668517101434415675066622830801723417022450230990305877533817892399791169733182650909448539973151052266192285870863751902155555043844297941709892789521977040756074436821436594535747406088948379669286766668247069973272545546970314705109185797865680917838145842441874123557878176840658479300888014915336020628478526574727785513857949288100116398871011517251660474356955061329610051769535704971727014664005401490278642847347843076572225525064246543295757118110610502555305814107709026414680500208188529300413197947222200267616842655070057679937013289014352444597943170944833797265567332246478561781237399278530132438732863105251428811331577525488247612943825456947309531848058549137739764490081725103347572934165311581373565229440104145116522178069406141785496907129769178939573597690055333133985235611815998898330457800720185427373272654660704517423691914767905834291373530098244324704672718728422819479330628660357181487197783690220492805847597157123945323995908634290044306117722695077136799535386334150600273550593015915272874786352651805740484149879838681675266354368173524074617824516401739754943034118728765462935910259811266874383916357253144408214619988900065250656437163502759036128308713241398090827379794501829613091209475036076925930582520968339280690421884282711557413144480802361197785678506347408623426558640458403905850212939800387365956430473892441741050747139804950629058797878775673003530011752867100764435213669429038401891108946983983602503367327661658524799918596224432712326554309289001770293423744180067162301451445661684052437458976034549570300149214716114023120239603579329623212477879673831076757621437083858007126261895803382910785619649427743847447698344571391643642465988294797294120144948134388113068377837687018516235262492596884070625043118848209137335554323549849574815333194080670791796317424823993749864001353365586102564041704836534324610624037812414364109038382767123331685953889989018040441595211948148510487495627866898874849591779989094071110000414163548454330284763268246299105458846570216846887495642643474004580066510053968234770365409408965555033825895337565691936641173928380158604140859953414227868164000267249776290344085545477320477004503574763902616075950000800210496740551114044835591610873160382352756930254898769448273549228436468058035813554996035417321024967892314510006170062587579598812017007625398613815073360133530204822887790989708224606585302727608859402915300664543935758803825950115474794358204330109490189332265820933241549544487554167392649939690041384598320883445250250943467197281339455774849848933544596926858144862256680170766148285415446882538786752730066606224996650651385131648083997626763588393989907510946830719409036957201515202021688589999949549248928558540851231522402027316597313297084329264704441986141909605348250854230406582127877146597028961008864046685237137111538040575382688513099132079053390415813302454756625932825695458846967442732849898802710756046122242933478869281802271058785759519113362278719190460889288428063930756429461092852276387514074593127036610229547930588456404520413460541400028261432171074174012626237791121890378261142525723966231235685171416507848588212102030954383956713702062069545811675256925000491664941666962939275958949526843688885201436696214704928631573603809124716945403972123351103769535624723535289901242460205975694913812936189349842566591616539379637322923895326501869412941463964032616539237401841419686128682518262836505506644459933407841740051212279988586463668583611038087550720379437896492268956121503851959763502833022426787064087869800146143235052457086816017831038347236208896140339169257999938463719490852029902261534978213816576759264938434575982654198036956953630568157630754100391259769871730947377812870128455854571674701078552467696827520725569595966536267893649983353573793143193824140950225944844408973366981502938095842607197609949590231286758373623221956090860009505946326643922227605388425958946052099201474233283295911418026826503212980675298686410238627679060886538199119307998354393871791141160185628210592659770363747020888991493768324097280637513673958396788906957072732421421913878933522305583569561173975244072371953132653135391933948989873978111431334604452390625196894071683640454854741273754114939671170592925092234760666364371192328551181802526728907220935026357170867575495632099552316950313003477649577444495773163424896605725419268910114421882626646691711522552302914985501921693129769392262298803860973042499191110550935248574026162217414731113737481379347279641032710615220102397415792781424656387411409343406583261494488014560054877785806958582382094107134641150179326134175476030082879457365723262572734758962558516706340979421132475121922577039030447629557409020185466920930322960923148753084514717543589662246592265511403494341561951072988444017229934879278568129127616559495318270971841467239240969972679248250536237728081533657620556302528278763057280353682343053382559815693589188671253633208668626992760389642210603678594040574923203829255732820689245815430150305967280184549969134266703615059487615699356459056959824397219692514251530139425933578494719853819041249047946801937699948510861056242078123844211533662669233552326966975131266414393872005031277554680738420115771838905715965167398898445637527367502987191966821165156443500735225382211069561235839924277315875353575538626452667675659124148725866452387544572811705162875804080628558829916075057837584592969816988898677833975360478024236246663710282051488237598529883985711825747557463045259600586406656251913069226769860591853473132017684223385742219559439089226351254344204715185110344317588323541136369687809862201760129275205016404402498258932552973245851093863877768242480391034396305610743658057152429067240652223431773785184940574716643857285851363934366600532387974480047587900312331527521208149936024254887016871330126281178359928453917529355892316010985291253646707946195096662890383656080334439773965811762768939154639997124748540355987182066203278100524199703169615376448523527970158024872259972311072633123719325034737102175653966211369417455086722983365538541976343902253393054801488393482173682609422564705156407014786469595747196203023991001575391402585814854797519027178080712638820472210332135825132503082744250119639536206150458031187695141429940552047874540184591213617156605048977537215188767521121282362369919743305129395702485440530107696536543467958035199792886002061264534321280034817449585353912070135901639936539873026616656284634524814736956039411029202835954552753408608737581144993122911009576379238566516134652181867923162612535720050412895228447163625605116960279891942877317238298782256874368533890377708125230373976756398150784450185534778022100825782301347428174523279492664129624480003593076988780193347785261807481382316558882626277640242737164759708782971789834339520695903549145600659079459509812536587287958555890486340589634142146377846386424823708658376999174509067715390062849171502043172420493568617435183486166293109746148272753509957937621932896448708850115354167296453801766230852287518450484488028081487915494306958674049904574253405391024780952019413172553253400585141838620403512336603407582019070990976248774214474859566668618318920933758772753179264757906219637155275710923011701807615928055536537386351435926357888277222792201798543122904023870557778316399913348471906897750119165829109071330703300854842008896711707868015981232393545607715264563239807512620150061972403889935121290956412972115274057464043960547502906785128738618184990847970640548515145157214781125113065883053222640580441782203186899830553037992823441829060171503396524208340029603899006290267515268600950976723089786049114528272837425715735491096513399677596043614044974618289560322292059135188447310732542304854839467641033858248619249959123189371842615886410275216247359709301409659500296502785784529673382143746304607353671431702403511195739818823209883657792240383954284364205751384918446404671193385324018556969032474241560848928790827267796573274563279048250672111381184135432783403896020409558807174113940141693353507122257205215321246410384060571000081957051142347425958662685131883296546646252066763406783931546117285979931331207239596398377655375728930861497646261161572983432963767094792568675612550575827153865095438478609459432343119397493422909146349176555730628097908371024829955126474028805394392255563256563062120508222949408363861832720458152883593826835863463526400353504686864010692487169779697495714382328001679771839700866301854800198538982391966546236244238460141911923783759859403338140037565046698667705548749929673233736606139674421830627870568652429357007664093254741087939735008874543578683628860301494030927755715709953309967613361493516561739726239503576061589854889006918185701139903443745526373600074453863557089823644185917274965509519899799638013350352680715897890574341793258746894897495453602536850890392926684858776676882778715165213880447697127029213539584779864633106071742297854468964594559267088143919847988081774191204211544131935187333047106737195817916864705107572953855646154278088084208378693515283127548018513412465918035139484063021008784296829101257967013433865549966791305288548892113016036009439119229961176468940721446990281658569533529194169761394184165878759866731736967859530367765669956262367477615638171407520283804107059244830248792539518019100699530172700534995802587090335852235014163952013445703049516258566590856961888979811641014584457353002757470449735280731040279526979952759180023995309948340185251552627957455986490337132682274219886156202344317942636363801143009745484653737943220013928499076026439716976094411033637322091890711182475064524278057226444566844235944331912561957584654102145999056070656463752847096508376091139926212653268822979153154662636057446077727016571967999883056119086298902669195861818687654565144993928073903345890516369227444008108534116448073642246115449086178232596973278865130856338573305861611266218234200953813137661125350622411711305310850872349948737516301302619131699157344698930807883899458420128411191098880226085920114058339715671236885388876643591616696840037456077600435754884413946154671828707763910275445619035815493183651431393002380273072399006449768661102774696548969856039508348707913095543069906857290123443717833214327763629624009618711661392151755506427976615441612034732245242284594011969934597548419136012112596237681054000474572256386277270715768476350659794617306770726697075193669687561424205754833556845577854571976270711584082769133520322966817527407785906864547363157462918061413050290949478051494001077802707622711733785049571943049299521252090683920885250576750776249063534932441595674958652041590551354751545660769683335183118239920090287635953598525136567911051684799013879416598495384686134344438577605971203562348579088151613422854799614043696411545709333679199079853731174516770603364338403035566085429131836322018673361684122874470185582841652459562333104018435106200544420261859884602340593788418750760747730928486751841550627592587503792467130125220178652456885402971934337777239383389547346780154111420509183728778235610970210489937817759703214591827126497949204787579930228750831193710493170401130928508055930290307645701370256231162859577073781315423564171030681467572140527914366606253453263329927582399004977529501026797192784034857044193279468591389579954561921724204424584416109834509472755526629059424458147152570158669176042992670316854317953062953115262400743399657786438754046983049278375140613795614906405427736104024185272747856809729599879675274615155368067855864928217106491159979345556166580171581243030862473116829354465524427009105461856055749251032067508622729013833781605201065219996440163965143970280078371824230003313752280943031346540401831051193370288726695017694022292842437928868400975789849647076887913580115688672035315432105680915086974081893465299838419451636468262046683057820775077418499798190432926152544033303592751518778551649451172627169540118908761390768182105650949701820780456432292693099174814570821860756069193979083354806424959697656411050163019751941603580910203146540440911218299796426186634969950954287572825649405618467768999941045461722144568226358062456815926625927896339313210577851567684883149133685318174906089694294325411322678185029971968143031852865738518616432564466457435254958060280272092594726079947824606457098300427890612108901538214624991462463996426172421601519397314061762218930228365103794850433405597804750831264599592721848198293780653968454847653868093812470957842047994300352400117760964580361164990541594960518450895982060938732220752911825723309896332616705646059757811425399480485166373529893684361441147506219887336080454391262322812030506311320762613470941661962081659863404259732919272706859501501841352142832745109188486598626542638291940299126597840684546151802105292158570350194947498997674459344913647073277865157695062898805441090763323590203196482543000771582337075182639221827805294409328463134323942921750089216193844262068697395664390546787235906351794105467383869309692900130825261680293253903025596225634557383446717845823808986209883675259195861326049881499374219956800454798823779461375638139081288935443375275939954089804284813804392038694555538521887211258893228225725592422651889730074177413010939026845831534837011095483723275910564903444967824845625523673082944324675721761733746859445423084125278936220062777575292413863831487811584958213013702502835182679305876499214525079341279720756250026956791454449266832319740654729036795379551602392636861097228962281963040775778500896587088869215943997262744358540744922833145829797242023228292537795449242418165197570893356073299577710885136532534788274447282575792234393738200879094313262326381852370948670450159018285596456776359611666333295439793251306019591276096428027339058642609821505240074872250887663190087104195062707232389911168781759218090457005902015520185395146880527648911953954986722768191012937265998334477960226822036735928271474874731931620382019561569701004845535655357573994497592555624051823382361468425211603403392597015021449797271248850504336873190330609529880655220373720786904440100521591509768983836047645512371510398643262335206411301802893949347140204982275530219713026356001280403829673951062140977943177986688175474342015538513298320412089449776810929363608082439227379081292869221785836601364511070004785692515345424525015543094163291849320403674889911061697238234459420237427170641739583626716191969252082159699319358599996467777718347754774216365247790817816899152092081306107102755432397133944150319908250302734474754476823877256146388927045984623549742265994516566915093516492057728591176399864770497171367719389183395167003658894805957038382088048755617654552359913227829367429670028233436969728236177988933448593561154389319471046628196613306501091001639720585206927089676658762873767631839729150470077677912143061448894579356022743219287888087241454932594519716791831798787335774512813537242257606251318140930361298613752402847603389952297540752896902753102488884631407300966483372626978966384481117396586788193885042575771223981476035999343319524221997102563018386132125035752708046451863901966184482122432508176305319530048600090339550082357763363305807879792679705312732263139536152617491739571960281486840641410453422627095264196885936507135059607185601400597105631634688966753437846115403272361648239270335122008710916759419273690705081625861204546132102792701474978362997957345313180621713762719425375470510487208942960868025267746627319142816382074151505259705767274384526092053241585512836004174126415252249612001029153407749818811804970708595619395295893154426582798625011591668229222048372425645449798934959004055476384801348213525636584434745735195476631290827085056955051155691194024772930094134178539091426492111303434143661782763594074255706628122691922902489096942393770070546100475719109628222959794355808216109456355308211823087475622468284970920914133265681425167786840416866517714985086110158198181651241225957437525776300874369025927748195346008085350906707793599283858069251730206893982471955618948650125114066361114536720821487756475439471718613983183613046467452143743902634227690379232989274686744393182049877830736066743576644382696022279214328214148497194113884686215472666299076192027565158166805712183600333119248682978493408202077993595142971181513508857574978719095924431623925577459468077701036408076072680861096294655274462088304975404730835796656578239195160478778377445474538268708103591561699897047500151172397786942406703652753585081259767743924122605725201882663973246087624526502103920175899173285926991013775596161354362304132937256092342012402013680506275185527804830607224261506053886223541663984438667851470927685051887620924480080999201372912521369583993601942172405742584549585599202364534658459974309849044741478860016393260636913767397684725267870837345227876776794467194335799761420105979623296478402398037451465242673375993831311615544939640986998595411451668227249894669142361299870194937703493556513996818511314875916575400910607997458008663215295930423920770999574979305401441099358451416975802817079676205220403649818426882425824898273813704433886195196731164944474156501789441625330827178977313397355504967832426367045999622502708073055860067907784092553998376246321045152928603820965319626221263816755477510833688452417759723189129810127594747903202949416836018839481602992255237118284510619679273157613370220117887801273387074368561476701986595874552655750489073116308789791113954211579868956092047546018417806359199678079588439792544227227630180727786871362176585915643844196098861345950930333930565147357599908983327437236264472231272931002374472004305999642518479707494200746550427492649242606521297044288287778531522361737938737507092400175981082897225688206601514213429378806528712065067286239186055713259175681764576401458361727129363368243213078601369388535380068599467534015581844907743991946672313303969478949704369138299644579352276847929167258760810000737039017550333852589299904493300444593430951780065031136237995441678426147453655957728393170287744038429276451521392755552613104683393068221668071330272911167995218895758393834997395248222733288163720527314608401087492873690836738829793452535153379496302041675547247347333431574156019462590787754489178765904797045559346719443629725398660738116080754468432392332057571070441415303293623539425057550172761292386490137237944054959399803869020439263815334655680091083489388582937418972384887792438547145879523224744147110309660935058736536933543474014141288367815665723896723146848067694514921923514974198373813450374973054112820447673639204354164707993614487845818884441183566890945445849351952191202051745191922702726188373506865171962798430825262323932574346019234362871853658578761214465674135583080789597283696213060636780035006592621568329441263751735964796689396218736441026760379546491588240395398077262594565662631499807937174648079291216937765833732999843900120500274791957070435571533240344757651026524098294209537125738584252331584761075678313363808091842594955317175471087973173655002558516699788957721068338606969802853283272552494582040363597938524359059446667885385869477021546239951675987288924891892246560995907630622089487587197016309666931736995753648639503307967489162002115971867329603817204420540802774048143820000250992723196582473698773700163523715616228873186426683872268141381406403790796137163937066093335696897898123582607615450589890686813086081796762494475266041115962507353703998697249039789527333395618503181573132633770767343552438359937505686732815470566970075097452087773558282809412788709131495579495404701704397969277799065709275585570191040511554793231105300601854406829276056793939549884175527203072878691601105500948776815235854037337719351377420793526856657743013914469883749549302582909520841231730726059020156529589089847165116782243153844324943410438708142516872716483012965735672477300831325838323780671472954221136684986699825748783798696939110703200156442986974734108712655216248576039669578706162312680183419668197241822476606937657235588279100522748963925436947903235859851491061986832049911349830165520079900751657575629101129271579459620610015817129950792993069954135825082441668351912010749770110082935592849902947172591533079743937508961957570922683194005460976877060389975296728858289565400124174233050255965423278979752213682112508223912128839750789416504958730423505958757798429850812209081431145407003308540849372243269857034439877477913652879234325215414580521545323159777217128474633106484883424677862841250877170053814744552614285374853090693395014401931788123722650735390838014779031717655315138018492159993954147041595531320714387167100982022545346072188427221503264342775628879717756856371254654194061892838516711749675921139044323106294776000588070299825167531434245439680801607087622905634002489181137521933774405244560403486943765642259922133374299318109273046008003138943597041093082459897506941994708891783433279724492098206181953511267086442959880002338185806777197784269630454120361339681774901183570887532331990686421848777429925552365116508312769220421011367882840021465409170224596584214838150840671618372155270198535014974981707893055763177607518302888710919781866364062908379376008853943780573233898609748153950330638695268834010169170527447593439195330515997711198344364473325081674138437416262918927018001896537953878881716822805237365963580523136138044633975204338539736381928667250620172040766287571180570018471322339705754412787434689974458962080364534235375330968874910510029211822714372274763501837086229632250083872442260005435232293687797696029363106270367996887704753028152757121029851639139618043422194041373922760927412495554657909284767302830508399013591033862621861036386397208085622572565534601908898859915943596381363286772557026368366088688459214277640160801704239141224332748535067189388993991494699623947650422428804255857170681729712882386270225254596844924102668884694694374154462564647463250963571881802777786248660790707943149677181516647315565756695781575380997586948452716201521835351677040851902903731696971301483258035276173516096515643246355334088294124555603712673842807742047341012899168832738939229613560482024827311672795846225111183341439351354362408334150398514572667627391448532150645231526071091561750593128469116060491580249053478366808557049067871545260252851386523711669833986133454044042465060388238080150499328868008472799693235893482653079150861294316422917197757535349123583737470455254224074679042346156173725064081048747220069377959965359131107955187943825034588127526629690638891610736360901070145841714053783462475185504157666445342875476636499588787410150854027277867334403441603609189447601297068952577419482474741880681232789804936890160254171244265762318600040478195661131212924835280096415602797134633656933612766444655937616706732959609306507122891816609922424521493038535755881114568028332360957618820349669981007690621914280232476318931054313677154131432773900748637579930104987711695726931578463245491461362471949937917517372081203573412309662514809976838668036285560111761078244195157941359453432962054773281069645433872948272765715345801591069123808367800405476220099924734403722850096641171059779397751867746829807236825935198937038978007825195791227549665757702754805193454795258876132929461733630179560076311149075095331674398143405391717417132665984505018081325279805400988378736388215691363383874995714232537010288600852917177706803793785525020495069951641250314848101636651773344392428599963393521391565179369495867579412757498956271263928299899301929258061001632095346985196844718739345481049691780182961500878234027784653712995252299556685875047145433036992253042512468913393221232809287123266298567029828120966892041466008085919519146580998614954556896909338777137738162519547370090702707447498288768224653884974950719966461252437759776486873692492124288829975967339417108983497911226224855322410142975240491820539705768506797337534037842888985378124206673701195397262632734445093983647301608528207056265396526118969740280526920973667429660823649176606268071221018635745262291193968139408347374101020257826074003318834180085304062421966810194891210120785178635461029347439430090991969041904217988997059508907045118510824823186912118568186375581142349834120199308105219078915834211513213120849949790732221247983129676980781906312538013066323245757727696796006133709416778230731870251201835138787286024582080118537664045288638147743382965142940116582009342603556625364454809160254120817769278609188105095207390870057424946553834394257948025881224138331976401402715055855671672284984155552721756153027280023078356683921839112631383906352777049301114462364239890560035049550773688460715600778076408378233674688659277196010206787229554007463065083293976399735748437843981781006747504522696069114856594257559104203660802419263394230744957288342768299786859339621460284582532930166302576371610209458051734268455369100075977819564822530867240199717999693591976249268756303513897083492406758001506891391648650156786944190862390757907086650303439711386265223182008574650259985236083442731022996775940273331892861352596383538613127436627223635238698327184769461928117053127940595247225135064481736550481814298177706225184746452997899070636881367785224939856296383848872720324906725634145943805964892368438902435339144413893506043317577728015724728642050159250076534005122731077773952537082418773554129181554938197037308984411737412951668705954373700707407258394866684476913869237104172789447284547818640885435416538604830962094005093886669781962913512302995829673597847626996154502925850380658173092623879375829891784869035057531813751756576469920899851769544021262107116268103446395209111681161670354100800590955789437089925684476903571323146568762756051366816051373399301730661946401932347966418914162154031233841576063608612619401179023326472617854842576585359074951591162438190988499085851767179926208729274899542330810733001159838102483487978368460691486628605929430785826106554537417304617173167505792598240198719716858427974732394757382245724701143419477912682747290205973312011116318474595057139461597201879430205666818477848304657799223718993227774501892814122064853355355351101876045379551965597279951349788385050774839442407184028157757121061462288090235877792264148285750476306932180403012844338028332036352412127441635788903463629798344867826273427188792007470561988635386988116905657440356111397319868476635695977341419869938791859790740577166751455754351025936370550664078479319244633563492445796008895313567050592790694095060282350508264209679160134257542414485441210121688231742288667097381815559992219745147723285769088446407156131257964568335846052591455725040988330862044404870300314362842712729821495631460347589991838956282567508417527978049991092482716794111973622295341141693343234995799219538886042870782037886931227686486950297959696940588458587840197552088781494963100785648451444812059601339751600404080203495587300314244962922322356533284307267344729236157953595646982468058686485646117689317058702345751835275364798556016476107011207451154246716838415658539657329825214138036824282370298871696265745646377507659373333339287964202404949348612231869593537067890987914907044873281936491289031250787291069559993336360557318020204977848863814483424902613236221180560818346495213921137595725390553521804668936477315478246913027037377464893887956232433981547237505106308680008075503876898499146222191125683223515010804921578721360510426625010288950932314888835509770937909797196685406618019330737265687460340487503532003167104203847866882234571973642356595680260280421400236932383637131401075460886617662127484852092213856472423881139450662696042270266211701369295411323164707804608078782341335087603162312733356951150994210091862660313227208346707476784824275729178425492359708604169718161884525291700890547725250913895352037461197792692954971672066139387143076827021043869200369619469096071458073930915594850609908870049814699847468027490359266171416754665545889752832437582366530940621089171544299198352048751276226752426124424224930227060367100766368536476632154749755067981625149115024970777250778954621973257974026613314781076203513666142526404411026570914859590539081995886715897672472642274881877320819270248167717668957446422168244119154074794056665535817783648495069596697634448251191772768178053966246326439584831642034871013097050213471295489939895324609907648003229478902457833456196169530703178632562231287070265162485368585128688427563010032633036369309408085806723677607138163014522702149500038432709072467968714559457526424868176689222280647733467736835205128177688805339957811374326036316776800023427139562883931218706093440829937820276278185739098152710230168056770181444421468700683533101549568812107908515884064494314223930129942871752882174650236395526952973538868660666006533980357263996309458682201259739011320780227852109844542875671700767447243474603240186874693586666589588694944859760639187202097446210328367271497842891744200017615511065043717301403257300502099852537487827914519842615142518104704605258222740799448678462237893251067826112941627925517484958371522542698493739715747448810352540221830155006986057531601789317121556792656955301714486707982574078703393410097266736738874093731682306076573663645279356625350631575206523743627664894241639545394266410495770430594118163597246316577832799983462421012297372990090095975277408833533803964525664947327965667116084877230269090575884932815155546212888539275134842840778518240290451445683280714926921195139591791664934225181705573846485566248324350691142792171774684943313183270050888872842249653290421727331372454391173522169575348836425280974299329772175613941212190850052972914874034404606676882037549765753120697066276966226262079581832947519942988760125720333752011539431145157810978473682530593685036012600955104644665406194173807060425181882321851792705537855275145796180165506504419666581673345659250961052546309195403441379282514694953036820644534294314058676841343488427016887643250569710903548570503754045361559494310990085561258921960165372168160779477916889875121228918863282489528139498269795965484460563655946013907652565472140568270054310792566650760101650050229343009386838275488982804520980942101033417458522889148932045941908438952105569306516941120376072315156587506719646652174405265413056602098746564159691717579211545833506140535094706505786870198164747119860162058105104355169120992317863356343452920094682278114379686789121730247291193463042192598373277063219452687257267707247937361679034530194967927550305602248721572712354095785216001372869608791511215746648042285375227525654672519248293573749393223879469957983416184167173727286762296263972453862656289557092942201691399543905419345333094777988165955162212128672899818063190633451278921480565525576086933219689714323838161496194688613256705570870072984950561167533074401005482978775305823487818444064674899022187151727583040366007497510931245473669378252507551007921363290826601656156435999091347955080731824333222542684391784278342317829771025833643693507898066874873231008690561897274156287621622131724728646641267739044874678888851748031512929616371161016281507305700697496959127674494595674934048241533965933369102144358777061550935666074037223397207850643118353446539339720809318344065475254985397998327243322394698019607647525052551030932768070720350582880594510502724086695299009080138018875814629822388699864473971203295491812772603669394544519607042372311873472165607386730544473406863545113189291321958418396625219951866346451546918422540720281258020608794451074626770002536348664211590770871646465439581211461895123710028200826790547551580122311901791727018010056857117612158910823238062276308970730265885484076177865532885509316100464932366557678516108880072973882839592934907443673951890140858458155982353034281754785497428075633258035060681373320947880904331411547704617097082975530673790426455296038658057183141220457340626711267133592839760916470147808676984926383656397289919189458237605082264069616210007508948969327394860724783674822646244817363730508098396675330138030560663369249787245228973078996248318217851975000559990595921520400960903686639663596790364993969048117398554753870166406731104862884303391279443168125529309556315037951602096144470043716832821841837143583864510272453643286008705777118760164950552527142375020003649447877520804893668699259951756751829568382518748032403598706007165531175753983375825882882038815445623282169104528865063791143762063860729660903540552816163364174391645038493839460443740252996168838620662198098356759372961614113317980012736637519051057820022451697007569263116914452428133715501696376251461464442798453529296765929741627805944515766027780196777045585795550456214988984473034968998653597298850127922982481887923106776905184656551017764904363216393112651020085081120047200389897223257809590212910813465005206550997036894481534059158876098523457838047302095515957207652520848200247892114762521567265188822192985147991674197062525897761017854763646186819876044770773978867218954235870254960645172528502523223786903928617559032952742856836712718259089416991635240616153999277480747446696562658691018871168008087796658052608089831306477127411293138426706025660425430757405102218158562683853180397255792331181865068585527281424843893967058161973822894280877185631378428657832551579272705758313939556743668617272935962259895322888658485473896756438177181450549967337921883783752458398232450844082979920981098116772298240329290348139069826652365626330175926949476716928339755532313195143988791769231197690210084125506634645407245963705340926630374008972547410293349772545697065465199994762572257076193517853823696381014785043465664338565149028559343238826202917347919169618893834374460975085219134071776893665999549767058474958097740645914803875423318694824947871407127643192635461445405952911007697349064520116181529728471060743590837885258568043362033757029255849130353090927322561523418423003180427475688818519605117546577787232719900672680443510678384146061370370941538656645864460016337696512791787894160030191345888653770547779567958895309122921501502149685559944165038247698874864773847092561795522081082455000493177020099598759482696602612524268089088520761388387800223630197043700420622454709610116869569295489251997521076373409687484891684592274942238812981354792418581555428487838237803165361114376561935625217117354641540313107172714852743241666554124398744076020487336396992164990656124368099310361022943997088725345820702267747200134659231277258667651703232077935190579462426389680419203115093860275731674835848615148630305043843885992564698010495985646587416248991047893860254345125147051934877299705431907292837154694333803885099229941220362903902310251794938428023603730176616271797115508658909702878547401657334043777831915767072070518967854486142215066744497133547916528884354629943047098239396678535424064012255718015926988813793016115593771756344777064039245878049109023006744757059071026896269711184577799848580467024438720979035556187423120429305300953461702363214693792307141688821351073187949295047594571741816856629428533912212592614586213139677581687893253288845325931942072229677804732234502333329123152541387847679030710498889510233982259399660631958793433824874336513167255212673216358934010113403892160722772851596289154832167326277202523657100415357094275293486017682800892896096672685525324697745530977500521525081691315788145763096288245634765396354201911465303950849395424350545291534520251680293319164116058995913400811243668899262297978640029537994602493500435094413083732023907297937634543203979848234775022086480007013921033519776455897388185055895540284514153085869282693474038357833302893933489663026510451234359646372483187936057198403841010148600286287659093073323514605150243309601523665552472257157133441837835258210411169037519746593212601515490148222051294373902836207143412363922394040078625622430348572644192653610234498177885562560683504317932234128047335721100455123080756549442614263914761434943743129428091275312724355030015479584590516960962674005729538364844973879713186499381392922194875020323154657850676985151258665362575754186990367613275586434429118186859853554542258261155562889719237452373400790242376079198248929276892658793551607504354682705443693108848569345034424006799732879650856665251261468478227573620085222297450690335880632051734804479970928885784840730522230324667150250145882663273109946351639862498286853940293415021700210753183711911514408540995295692375365072969915102651951458879164446347567784475602716569219450065833194826282426777329523188454679388648251763848124336758383556420986157309710156288112456474737135475791069091467272328005904764982483007406404446512263934358677602010362134097491774262292633221765975939990098482003677820686429050061510599558465480952568431601709736372601357467863581691892746124315625582723189592004429304215685538729274373870409244729360623807681067330513915676825247766540525090089830130555019303804654454160057835359654971734147158116346153621494361722382880998814156547671851756486345328414778258433046054705801353112042739409091510235674528101712071239072518757273008909892507133081921070915589142955831847245798575097772421874703246567188522756213285797311007712858458044975316973203057775851107505480127700187601765169340903055102872207753521056269553907800402921102506037779418698146191683371343828881398044256383074017839373069216887325448623161537496336799637794692909767391256612534705361215794622213602667864167175146394879382518837589255891895959206394548319931503337167686511081446217919084502655147427994896846938917052232266444018190208910032949589809254569391080540312645106654594359470593749477999433060733652260503776211970356208214353162303561357102230144346934709512076475187233641380193507457468688128255445507417885172222354097376339094613655878333457647609352239204112712848912392780806822712479387355747044973812312795530351658589629049039837543972335686792231465956795209986455975124418421339190748130147615461170778480199672252214308114895908926534756098566595642143070670319019182044487581312246507109976724056633108837802732365899131766864686379794119988968198459766655903649964246984031780797788815461442420503249305692863785145775456608315773267003690693480787698204530067053541422370796015043795245723940471320845923906297509046168596001927771311383715131573545220247312896951573687432835557840914972278769512039372241392053536888123799554949376183491534888685624066023713648977968223924286709120344646742649269688519073570727084964620623767362238654502991617555128303691063743273820987109381811124429742200181875682663635318471677572615633827880656649992413838343402684362107088130358424580549503093779017381157721628373145696773913406693542771881886861243513120256998682779813041137136510187369162643687585988121686030998695310591509150558038230656453244826276040598122972997188418831042633093388288289063778346964766219958766132914536325601075578752383214569208341430840585962452699773182654951107181351182743768325574268357600946540690410215311823645285603396788907729690941843918266726203293699489508779931254643048532325571070180697927486872019123343427047595910499843911608000081498195374079903145422171150377477224531937843388864185274464778309641756876521001609957957974463157352910408208593883780179677440306735909432761744865406915084165688803857295283186815289212280778825648033232774065467485748609367964180552525028487843446952703037225932881325053600382863536991419430743920750042596518082712012134991941681040579617817234961307091134063742661211151024543791391807124883254358277406645004666448136816670937768694345058982729712504753256542370981659577823340177198002712139960926386599318668910200609260475641390576880382190994707302233300353366256729655118005152169193246451323935632073407077017577123477994312188409719911196333129538661375211758619792159453291673548208575435410899957506169221385947651543089594500214825193315229294498213954101421577021904220128313147275988680064800455180763082623836454992255168751631099236953976006333599658902050603358424197208121818604133293418375991024602335898955363215430192807028609814698636923458446902063362310233845209217850907459316437962054478878994858064211322858938406359162320857889375179386235083344406987752060489555831067060200665839299805397437863814942442825660737766497952519719892013964271496185239693995340496033839561583979685500936232695800105591723000703692639152394356429402052948829597638885732520657589596567466458739745244438430828410025943590763723108611171887053841764611584741292890797224902594454745346750826490051891489976376523529943540540791576893938492814864705867155197584265186324685783111016487402021894964989358413110263609323976547037628432757023250243209665478032102032231357035095945164102485498121537730182260577197259305059600510676876610712117894316755288436043254754011944200360771118438710102845244826818331468899919882231995835626155896954944107237982853189833919239499309950906023562974079303696685053659742362136037832192714197236605475166090582314819275099881671947453647787862235116183943958301118387215184624097942565169975816303966847662436643300715811679200483599898406088286930045891625384049664186967756603676765288207146507497649464995876363292469304569041856452183350277716260210851412289711337922434597986004020254474401934783216989543002333772901300503096996704175168576936512050129547498630421472645996238772724565994847674388250034878168933761297236468392403179582934099580791572965698502261690875197464127923894579971223718018350290835420476565809986945629610724945388110425794274319363658691290680950794150382978974606783661112722474716549619959020283899840820454252607611067582903567706996030046831459169589072206151887561573546846323764731438935919249826104827432020167161803155858292961913036606670505344549765073227052760619397860356452453296027614367092251358781812186870145732958024866289094774877985480989304461669540074666008280405356817193743125809973715012919050470262896281014158154652188293855973598249190514551751963269522270213390471605038589141081471199484926316897368698071521979594387365662884341009327588578022516605988313363601223259769979037850207434213712834534746549202855898615912722631524392354424241928729841686349846347001733467358999164183167742485109789441119088716198565497121825992298534034720190634787766599505683982261167799166614758221807287955582243081630633114331610832439633879086190139704033580808474063801126548715869507059089023790773398808925880530678954556077959050461905012522240793528535826809025091759655097703997943853209586693134801120685608316712554122337356862976957064801251331303907520837090495376709356859406179034098478160131442220757793341480823145646990393176421575417005338070627645335855065774877090111662351042987907841945900063853150417788598509236552259139825410429493087716929839653903304538322280785842499329545841022804672810503451030349072769113163670128521899341093435916730252134777327653843733173759668485096731456370001322071746793565909936340197271080381299675058556281731058781156251133425652685427438711633131236441102951972814273355054773604775502609902486253999455361638677877822445410612769099597236862897153880456428679059088904047728497178005350265127448622760175376927697827070445459836115438671614975850288939362844656451837634155869397832148233763767171140538990988486298569050661274161184813663534545829709375962828959334477363406801603200680717954156607243098079672534149320424761011134236818938188712837501604845060376044446351175741858769565723326613283610998374732297798780788130715915006313517088706943388584836213918548319787928897544487818965940731874656891513032186025088884117832782430855247871670647990954452354812389845480315895075888887619553316644001219583864369071589257179566207569355443317571846187590646693152625128874458563174032894299029176078274775881693693954149030743984890764328011259004627923956410509571592287847527456616173109213355733472048721389109082320063582434850836337802461406009422519581207921811712495411389102132707216293514316192986042361539252447744174325472885744583332870466992620634661346630569137775209400715987956344017239169545270750210325857399076251165540003605646763218857604033622744062514679227326044785823485363214949181886065039142427809244772403092928700696676186639890840292402576657903471405343825964564006249508911647169691609414276522426327214068535134021068234729219359090989472412006557671489544638072337293283875745971501397710914245674664924759891437172981158562886988303985346736929210369353221863847932807515229626508152904535891532521012129429706640729921379873187535824161100097059715279114429085520138505194849057433943746427027145398752222044923698505541880245407766784789543602871476479722577357819900298323586392181940107724218444957586805701114630093197242166996228338443236660998067785018283787491061853483293011933450526072775617429861883245691107447974980745832939791958414078710110266276746467825222856767655535059589556037983767802007594998011659387224084399906993717700831810290545300019196644286740672790205035906187853872314707988429911200751104539684300938936534056138789857807557963589593875747069451866163625227426043371012032397315918701319219353442845451592758543776299950242964567630495878923006661341332243033125703469072672951224382919761267963752893981637235112564009342262239669488585224872566729179198109349663308180941728772773704462316165202006969917374997043907183603348375627545323279298691320505288542121102966611485113578458621042755086291618653098900179504100983841631566036740495880821013836533037515067510688008107129499604802053051304816032737755478639884491650250493240817335662044901515024167625946405316035245114306391498246682181304252403994956329123894566154027748455019230328467725832571915364400417600151552264073285677345174211767953481159060267418907263385671727981892859580475066928906667768229999861794750314706869792977108614606465629546066787468910971525997277533017498799059749667004188629028623521413009832768177668030600385937375254111212172724221139661478411576574773504349476681289361144066489710051719583464474301127169175240154113023403882748903225760000492209194847887403918442152844854266496469872734778101168960695347539478775376537890057886824273647423714015313917413815489168574433720785463104508861301293355598633326511711011771793758643848161752730106741182732146673750854450890187756864353277837795328749752983053152648328319578564724250153457346319046257977407974826600485016135372884178041251703309339025445350870651404398992408271997224771691427230421588932095285825556245807986857297955322272472515109210776608322376339029171609848556043167637990765631854503305512865511537025579032027828442521645670122995354983765097991933931412850063630620645795561546503053374416513704767694524175069479451025908807486708990092006999044802176940101512109497526461097219435729771687111899570615806200729434118248418700776370437735154782528270338939083722376509816635868170178212566117583653263463811695458539505534679505209817108461087507408697889513219035675443288246103580957898982826340724647431736591880519905040776001112836921430042824686635950832276591365539676477160723142263551417374777130104724044053411753219871989470139714105192999292001402010635149543634726442214164373068153163844297017434605085105698007142047607321433870122367638699613901913071326911227376526362748426684039280563797927263440207969286033876879788959066132460369698318072782179009010416926948557577874861441228245181756325591381538039670785485586496206451370892378518400660678620983292835173631628979100588129366682219104140870642496469917959205065855819512965114844503014545511982253240371757450923016927770840238748346809441992899389816256589963611135241078121923429120818423665582909078001336169160693218693107657559055999495264930011909103254181888354718810614027652061732723413575846296697882136383004747546189083532889706731678380461874397318064472024402082714378995870376037675293852007449410423684131356208400820754595328276337734449079173679273915290374040572385553940362338404773179711551233838899024011152356579159184726113591924412891652887194688431477321677712230076939599382483690279745808465216094584350173699546016264681604462034491628098011123091763647507234489630502731460613144788515651269145594253771762445581723820629849209740440816305003860678847667162190178659030038641883435696511623802527203367811189632823515413501025510421280309255612728922630208562882283634469746414724163910602408049882034047179569789224071294974499984003180436826708724289265003632123441869926463463547661365062449168631254391232997301215177130803910523130630388644604648466178737765902835141730689503365782546229746375547410986460357975452317660634811292975384528171247305752950723280171531620969782582941417564269292948967838859784224076418925189100678702040345438776281201218806055524767091212379388538674004597654515368575717256249540655395612724600895219511123804878090654368311738082124411953317484306960941577605907395014384912933842689908690858781386107730888024721763089315028448011204128907847635091407221351794018165841515399418198858365041129640011496491753297289991236480784537730060333224070446247944473820890006745037099960337348246430681106070531357613666487806606421953850673146864875614977923801898132308862584841064073401241670185539117352231836815100172424972842987073913696296413263869289043406698775092886177366349808852967739391916911159397271449517699716727770379991210332159534773179350851767134554450520521698883412384948797449165339716463382265421512471456846596963365996673555781652600869158009431572897108955760491927195125644319652887960176975283774077557295119304556228271059537361658578672726471040854370577922870688633381785112360389478551575938737968735107337955063560930711330848888166940324275294166467007806001415424978048615485213567293301669797025277798773011049756058915992279947676520343349006061054805339526223242668017471771002663366182316651362510107467240611065482812979510715891695447091913532959610128609814944072089383563607672966209093222179574152478127058969272302477837520890099531390096279276707758967687788239712656203323885307317580201693452379824445691630660498487438552568587256878678104642836403496610290139658686762699660749902014263395955341893049279534611845738736299477591289003651198747388420517458687479424536044091146947782888970634328258840741516210257423450136652018874787575143438005494630900121097471329217552559301915315588515436226412903407420912962260245289619964019497724683845206028492668528639612808584314862087797993714142972230685293038269834660632724118268237176685217425341320768815879486815797991955876873538946207827731568297996786304009351537812522964178801001437136868326975245107828522748274530472217343312898466380533301345412260796090592712965348219195398174857279438739981619780914746558598892615007412256650293845045114322576039797151014279016067593300424866227745508475897117347746294365704602089239814216102370698874744269110883650654851453722640233454288908978233501169986307172697881691051576007346091928227383084706160117244299987093402315711267078306466229152538369990611577376155204372670888001226563790320784066871729355197953674205101193690980409260176400984148141286945731082084650445394685627650969525408952667523353881808458335269700266330435061808188796384979592314428966738872235113697296753376207214054728746207407966892936103275628900606612298738809117649083397899460977715445587422383416208242502525682759597532483695726143856796684264317111813919050383108683799817497507739254428451495766812226308826337978907973939124545566041756606300282291203901038409266616103235203002753487897016388666360764269085670508693542158976931274157533839998321649744104905239040380976838511490367406513333912566480999130736829619632104776694667682016462529137790992571819979981727034155069767592875734432150378910996467303527793995346219189195136240702343326415832676857051422531666353521810276214799726770787031438966768914004534891679683480907352108386241244844422106399155765458870383638426344531435497394981560191199382469067526760337565524082557262104980908598030330459523476724788130515172979088243446692529291895864122839015975430489675920876202586936537234960328793824357843572941079812530718782772393443389326416732449594721287910451917040545986066252771787600535707507258251036085289782542405391029300377180799219632707930989302339008315126405432487906546505299970558391473934628760908345925124711209514957729988054444646220063821508797530670734184555222621540724335473274948402594516854870434262405512432565728114289046171967265644556229696379550664523975706696271417488874355531211598581052461249534155580804283760244342299127759484467470672345129851532338797092259003466199119384958526527611357304053559717011220027438120135928041597616604278829542455455660182105050570122809260071966319154797924851463004929456253322333956639487795131795207103299332126666600106340163752092072114317584059215723136533036042783995749417133433809625276037931613234084521980514307256038817234782656110536337161550888863251654026079206516946760738876535120615996348472605569547979739277459427577328279301303772650396287968568959559131148941422965572861730102994373047818781623024814281780572340401438771992432656376998576160433530716491379149479847961342425486582108765314429705036178594267831825095894786811016516029550765339537621134921662168817256545284435370442743413473493836081939693320637819409647516535082591896405744168124256571580598085245870508858260299915937815687030912435843720579917372972904673881298766035765035918556065402358120763016575284759739667810866263356128251115061299546967228050734312264043627035002566122237091505046103017905341783184756755245581236777500832404942282277283275656923900634257265031528682724724755780571396843172208346780148924354776083227061442931651758288245511648405504043011032646133237299817815242065232604032909540284005694637859074784903472309543289645641962632201407528791373078688635208881326320752217077308263540553828563128914875914249130148571343860575402292804981540925797007493246820498169402785114110770879270541469271194226861264047286708070708150803337651204761269682559068526599228208672042424291660920842488516412644167505736946359712720461444175870297037633796185979117087906467582011009069613836821072675167689700409363535095702327446948498586925920728871991488079207132679383868043585632341954308001223969729021090448225645434311932152872214522646241339228151306252384368735013833569407366166981862903636956809445205560236804430635194768135555077738327385336715425744473098642564621435871570344226264180140975112549343404313589394352269028550314503418633919793384396955156448265825469655183937297253080337631041181687090314490832519360379803091896672741649624336317441704576414991573578585694580011132422317627679764826254233911404640472281733030658929067407283007655143658771014314034882339082314913685001352974011231411413932311426977120654699010465206273632016021048433816836982405356963830996406136174908493538833189059095518546885504462565453630868391869952956790875610172084738983437892407909378643713765206080598833902025686024767013763749031501956369771618765211840042910765045121341659754112303510932318283459917309519701105620512490920246998999211211736841652900062174965416779117337205880966363040843620913927412098007357960495138850653106642331653757416865355719595952838199602789838770957307044863799253833818827087339034189137619035822859230511798247753561265073888277621203275811565368479533949957335002217379138404198427665219768701451545099570575710031590149495615145974801853412803906067643340234820549037741529179385354970359285827065050595793830366791505141586563701350074685039125229794277797609081209504098270390454585564488949952465621696054374230198160369679702500416287802326603921095712644083661268760989474041973821013971749517944765548505521530659014502153287220220992828290034413870840680881551426792612411076028006344896756068657280205231458951710039761959294756435004582793755414157737518423042826398643087403139216568018159626778442843608146252191843023347831948455079618117768548240145119106637951584205773072082086699235015470025230395865604406746047007046440025779351451115616627903255503953401034480630089176420953032847252245178059848694205633262729477290369635929505820435139135520259834649964817286363468485038608584048829958962389989160507641660779129683498994334460649519850473681747494722811532333224705894213594769895789503051134140418300995008218513895203503361258795719694023276360856095517431821365691524101254680604491459867606658657039423052159555069888727886182526974789127812173138031027328650671675522725299763337118476283003472921481548539083447784950325919520223341210676291770681395668697900403429942517627763637132015621316830634523207004935621312760909345141256500395483805113983226631250443170891847560368397215802212313842804676506028380828112799185979776817609328973580443069906590650333400175194953479671983451580962595276174726057692294815022840350994813930211224254364706528532730942827407906228052977419017485306222605424369599038913963228590069762012894785513360695564416539039083654496340545453456850167120110989976209921428500165294780005331935595173570625244898169087578244355402958977388655754344897015545071225398133284059395900278004396206798731062207766720919584453813035205943757047279785748105376558012750660770299789670550525993662888092131549151292347664578131894145150143403856962081238674117168271105986696006028159986267481603165834579620975264284758756431308906109121996538198339983822759426833153204280515893884391307879386263058767581540972435674470530075240674545509161550174515875164222814155106291549182648091597372984094297095218803406290134044309588975486403159466133443224034292017431891664215330709546250749798634783191873177055770920298561753051822225779504765760130982209206513839696071620177080995119637124271758337442664905223679872398945332129068011223244269516055419090630996241934770825226731267136643816031678155716656485788062652980472245766149159901737338235250866721918895276945012244604593307447331424290321625687313434142662719559276163161042414359169768220085977872512553974332778848852237147705076201679361670423357113083277887000282495446000629802418603927932300549552061286157906678762818996332287401263157765253514513531325739146682989961234176510551591316850681827006905698502823216261657724316531185963395327123276264071623237735001635995598215058825622500232721407475825364846820423214506892200453725723802470990875169496269467019965835350418468247115983378301858051730504800008809357484415284824542869279874235247226837795134196415164238437537088343693535707652392918404913207241766864889293215749353983338002379936686108439288209319337803875767402786893115509526005536746095097452723385687129070832754822819868644274478072610312479592492291153371787022358605714370027720133557693290479830674478803565017225614318001250498833358992130369588313302167671446390448860560062363393071125035534100236119448719379431671505367430269179384735966150988261708059207071847982658191302418543945207753167325628382312439709714136950468177003536404516747733698498445927224528718805467789785784007421975509556911590802433484086062051306817276833627716992205079337904639565148247157259015506576067006024481894659647262262938332076902873563039013282578561616549484499512447959020921295629077368359907229944445742277632399364163918044037276249116496909528542862346805433673573679988786782696571600393255742603281016498679992167999952181105665848463321110258377814295135011101849240881192365862251537094992296014486908141891854270105358733445622648313835750668663002546031160831721287875953942260691647779648294927236125751226037044878447630781879554732313884202744284589467890594812473082549285299395203018398714498267523957670335510994582723235392515488959074171900781690307184194419604300999009864750604398463238382075038004781046767996173446664487073099437277802347137650631617905462314762578160969877886424352891667933889356801402888040415879735261802687604237128744922975537473448052463824950498723553644947445565705291483213852430129260461984610660085648758532313795736710726504560048928522072158477239039062647329132814348363896873432046484431775206289671315476503125484229466958331890923827396946412509812319941679269294817683093220435027970870274438728571263775071790807317132763521236549773388886232392878965990660457753936772703636311842972796091367768551016015699069340349315665025862891110369460249262870918777213855296216502569850737615042753039543124247217514400206889376105999683705446304039525402805352999114310443329217308198697565734726076951842853640014016006164521750380751504562353622789186560377754925464723584146173382007182640872112098975418393065187696098121618967306421765298764830044980858739843525547544463674395726070180738514095616448709096020892443940169087190685271531009816223732801431676505299589836462420687317681876804558985090530616104760097691944477463090231790643685938549778815022466662515804530795162083594136613772342535552746953315860281757540426245642494575422957774284134986798151708871020674556446556501298533742103414727103831102535822486387104246910554062005215760841030809102374561687197275850581758360881430994448719463209662226140631409699437633889294798591885201518865611990139910910398796370857588010605946849084971988264768779492102940314841554428374308080492068111195509620741157551468734726400230750662122622026537621426025662514565913205764307846597698981480663018646850032302736845602670438379965445261169456481957497624994631486261887091141085419351570637664534431383408374503212629131227147646108257197383232120531213649520516991924531651944766498656413559995152141638421522676828997854158875856319710143403893924552159558972743707437308345097119644345944988662919289965271599736902621792965189071013022460459022254068008658503043322983367198573746497756102025857383499429680719615880497050235815144120960314597164875017799220878985615280884716268085575140720434145490147019986569642643444453570751847092096787820007513689166396496998831023105081756820962941702420752634978966788810180954112458915023032476673161184164142953958726992848897247851542510663658171793830699197647903593549274466364398559042495550663538476133883095261254413976569224897945245050541439650164659160337926615507924558447354272349377682627650296256264276901895876313469063020820992966851703007562325350178974202743504646651306670440269549990497558541256078302753151722737862974681276193373489104788686835304399346496104149490096438467948786290843672780399474724673563550922257707545629548160814468872688188846150270944873357141194646279498006716246341860751152918494041461807019571756023825448840480182676362165164473009693607284178895701128923623317527228855197202468697875164331798156671933445497077476685603779242977063617733869699775223679473381432889742601330833167931377721255001255998810889066174418405653275486915012035664576929956062348623941525937432054715885283237835278058851267464791601379686628811211541450752570081496351618754316049974033979150832153735880803075944607672357253421229240067551510276492063578293307220315133393366473672451840669180751884137275265700490424588019503823766825035122292798107289231430966036878858708201295543267913996176577599349126819058822859093916130918905760943896782429000944790930399834587294880160810653373341560511127759428345527308215455561066974566206880827113222953325047893873119184652871680385158038608641387465672044090591263546102062329769261565637147283954167826918146211436231715803711995993440126505758214896909589116747912301076878797269120085723923752389437253561106633286740663686256234001513217623964369372167048004596084139543030971848295214832983626188431818786283268338444460968571410068387884101909475215548910905439140710949480052856711797527711046957634286255242238885842943357839383683695160123049006023042894857706839334244945058792077498086479572239868120911600121226648124211380540608365588477321509985810100336529996618279055275059634041313496765214677902560804320950617746021129179830441045940070918367862512626798622003090134468675424475680869997015679250784709952892055432506371951123585283149709102202121441342477192562029335935202999256665243884432339341162770463042983394624831750557337627415725304834613304453486887870299728442534656742940516065257342753712340017310224162516103419170263779623876364477732669738138444548171335565814581479129495254180611467096625370219700319321411173709754223918452336082978852416605651696408191219151010573211194690546226876216775136801627680038083228459671284446834552700647057139123530588605513056797397662695419682372226235864755938343099559338478835845800707979354698717566074381262870754520123373518015385040060087003867148631999211023054681940511461336010024610209116861204483573015375471768572468150495317167456272657440082153561067505890949588553650979678843013080551828109880711042764096567478477779532791746038503645630304355829044849210608398124504376745936738415061174752739991309940989316798833353791236687588676828111203388648397516327884273729318836820802255392773760494378321753085252519648203236233820612919435534534028410669503086822676443624884954889102010543966101105258500199873622113975264364562224993102025172970978617636615843492132634083594836436915096243424919256970941964235258074835477361612668509102949407177456325076748662959874831017399614405170339085809285659563298646859655861644956500059097183953159728210433494234475632193307086904955463475076254224309661305270477556400586773298158784515114227926169181278763258619247341096753186124759403869324987772670475051053746588897783688343668587274647765081793651890869738363234587036770865667691772147133223894130884465205056933891943855026444843017846091338520831286456610966310367147450245733467517530771603894341955079586481492893687985748571962048733890175433936015727084635540576266827575396861924330519701923823566321506737321503913176021472539145603008566937344205672990337198781939309563433264981382761242185316376138440566508798767086974454896353856883610720539573941511144685795269781403230368098619259727134141668532708793039515495169092220492874170893150217997050756378117474315728816095190508438342374868790637087514969674269532978713378978116172132536278598861642163975187980160440001834265687705854587579510718867129746091443479167305474939925787545354583340888013719553754524457432464299492082343252222728022282402828524570076831066169701597318358928718408722368417370617775656455040945877389430325599734099649194521212340032810766445051970337443084598703055272994715686807383551007409047151117273429692739369547479453189577579067778683540921823746880724900483548863868335821115353202115601781222443908176427722650050849983792446046941822765442597172915794462000088279876342329991403789542249335513664774833665874397590982837851806806646883141990338197190450485573416299300628271238719300869470862566124959836180719189116215727878030299763087786179489922012517422569992674165048711868682388093797308195667158526646844250850073884190695032994387907220259436485217189397695091288609390069911941380581039086243591884236081451830569183508105265403676476980762830804114516668080121748413472872132091407571312738628262697672668310617521474850151531788769672889661383955952143338131816968097139813823616146186884968634247454717646150055696248698605167912087618284312699291192919565129845153829001843284973273568300852994274105128721090820965557560706753330727774586308498969116054611734383287080150345722332317104905148801206926509458475373161071087401340996034874229944393565927298111980280266431311212955625879622557529767121280344388613694123617469543340064572123677089479513223357483499024806725301291481766951637026934494024411120365575056938925405010756805989109168846115408564940404585221099882837516273800705801621428583915901653589297697109890761451910159364347370596480989344843927968318044283872438720762668850557443792733901339234848142902770304652125822236520480929200802798245160922996952291779922223721754515649441886398633381159144241248048503793420218361454842854861646550821876685120840678460691924976042994798835504748380788661819885793107491497475398855464870795466670813500458807328233297741104616406058006454642895076770936440348916442683029594863160834267993621570492992834326759502443799157221830879187740677428282039359533021270507087707749134164015250325297365618230234325353621943822143449806982490131678899264799357331899504779590242344332260775207052313466654609816730938660783412710150304056463850299829586617000045501879983200638733611102271708025024870583349154354639845096431387872531004133017285119425115606328707785734207563262299721460200314461434333364718041675377549955767488721491556728929717425452868828445761843744020746812126831199148462671978370768243881332247557410515374382020464940452498580744580841534208189931659584850234152881441734622159097295202025934378580894695093141411815004916045921364828567358282486807036376100741314963157428050894065958433330628237313926485066888342203796599624495850333370537454936726705738784177233649575329834728319369287254434026891472437375150844184694761637438403079241805318993413290603531686993166396433578540713341392381660813345015612853440031244182870969105287878402568754826092688999670834283195969170727849945739122836323448647363819035970878749062086612394950246454769163669568917822780560433585497604898080044304854809119749917379438017417977027402943920201701673813342636445507882261456264431088517874828413233921532788678014135092600852556816732563383422665615499793108219682603265845628113823248208481758389949684457215191013557998415620920132426686243929278698433330340068537801294024259631356269012964646410263332684833539229271819269972609295939592021449895147591964829021851942266649918276049128419502609829042534292429688573309507143063940389104074434300268719502639272027029715424415867807638277155522508096629116240511935993641499488149420460107528237321438038634862367394787243603729593256791391822213364489770599583687213797743695829001728055886386875994256202527970808634964743861324627779964096220394897056824852373876525457671368712458138565768599049848701223204195164168918293337801581947097016103403277851787969527273409848886807521766709195094581989847592275269890893027972814884230088240237040646213564122522822980591808952447583176701492877260879474207953469521036799241805159923912620898000496761447637854150516992096995775012373060799023602883931800463549407248409137271873442111576640108453608391340459401205886984108650830503409371484637272518435124136077527543482596132979507761115522745785352092173832756964319512386548632007066323360627685422231047644040338466378436500232710496170128733114180757914722964322236244064055256227467709780822515918317115292357074046870248845073525197269708921266531386186346981760813698436764901424922519455797980752331456813402632234054931976988902339364173745327227773976542855388793145767201654062452289447174811256562219923464474402836466419862630047978437962656060075748114853220867239694589731421600679964684703694520328537920408821429875261867127368964481997583281920565457907405894631971069064996900148790504110397965089856465551969517825296386258781788708024819241998254854408425599687715951862819706478738564179990267747936140705986453398136041544764687798813512120222747508248681157910317081311108569610401318966616839125927331296045582353561947799794554581864226023579315428203216747253908865472296125578419244531002962804230001654323666188200960540799084276098425184707694632847125732301928616314075365878686681269662368683674363700110099139910166144798763322164934987403426794478623411096549848391370316328949817998455756568592483410910566699799328646259764883676247282965101293324652713347734473914191298893851781449638858984656333760552604829351495415395793697569404585265621216267580131740310529851785700636414873830958826547097391501146547530173546860281325686587822402517456418520292039109217131166315915184876048732464804900793497780467981133093128205636543979241760760141130761841977578272727695940286689484632874507018157678407987224504600183987016033462555848575626783920327254595712048342142710451816633135684311627321249347243661633832278357239506772503804762810318640348908580616942173669318546894839300617349274228159126865128862532948060148552231225072902048143314343291442944073958332987052778630120859529826168794697752332918971590766339290878378528202019712128202117721697804370755678625637954641335540450914248366656251386070615948370997011888796834690538256467289986481266139035092675011136535415651658035662068051973305969205863051449532555702914535242780740181111377271412518017044650428402422217238322707504722416318242976339695380966671061965895964561424685773000781353075265767936404463752317488307428209427275176407300797332775137897071513697597440516697141839945737812641981387404495884306535094608920254369420084235416498846298056748274185850598837029695600196369753626189450838408332672897167927241157412771036303227970594724212796008121742872201934982727224945678650514539203473092103178465815187480775646789781655112278662151308211594343746987223771201720384378788139888952978694743941398082772728690093827317942368916769071656294547551739342633733359747261630812041034312309210950400520356984541694830057839821730788722823074623583564744778766681221528708763071468428762158618716121352542680420718309079865177920877541466347109524904924279803681880313723283754795584485932596206102546541277524275008773611773144621846775627879436678913416006946675345582899187285131925793881178653332955074311834116316592490203259174718926589072194119830989717054855462646620637205045222433192396177705384062854400277976701780722208854779673017053711155177142309624360054879373577186655590065927751957023507750923946779174160589371436147703362667370547278314456131887589975304226006422271288944354139515294263173820580159421475293155280119900669337199840847315608934696883783095935970094616679677868133904530398653490689911924758264888999506817292676541544951051271858764507161592858466835029528810754272124860759006740265146174569102840944023058516132525122222352376475880650571153851915664156873511233294716370220270364968095692263365748361730895719563010458007745105396006807494445296532856729306744944528144457409343234961255625630354010761220569486904390123465784506287966060681030359683125360857593838458907058978163626163245756052405084556939638398525777557072015917819722061517069216831115269702811228543227387763322239717293961967312748608211515319076959602293765625803095863608297195153619753170697796183737301295058779861296287594448155754473701785553123124861047146367795332841209538047677780886733248341196036894929856359796010136339378960812122010092839335025803693343686634923905724231583612702735138044986615225015033618337118132649031307363510589485176533045434316654430859653512473361448385433848652528558588908108097120586946623787327843388538372608437286138441656755604001912592261381937385251164297954402189462815466329254509604859640138661124273915154297556487239547740554683126287075437205380616947249518757166465051020155826006123948716895385680174695906562316637580990402613921218272802700051009038424223310966229029528410294857668074663843114247297394999454777007234801774897291104429441956053260822476517591026711370846037829327286749026836483238972100984513337205124184503778221844836779465380725549114351505862234158859833357194480230612943291708980595998339964165269070902488277369058707327405915643401480202561652905552901725526318399301794071445054685590846512381771469157396536298059966616395681243166961993122621000636883098861153361757040819276594481561318501765149337673981391905890930463159555000695783795548974644495420405403977116259663945019008212182178286246462954979392951465669442139234640562563918873196749628406611713347412681922192014813042217761335598750411070270830892223069098499111039995202913409692529733898257434615670075174491674387676002861809521130164945949218068015555208382137079053546651194875157140387359030650742777708816656732408521205556108585085739356964651134039268744987634770809557057668068772291658701729199035025672618468271954461507815965260867506167529777464215571123820438891409344296588354239819107995081379796511411684130660804567314291651842116145819587278241728059959363088934877522899134115777196614484907066193885736382121012700386916587879505663693643554999346136424048212462562223471988629230418329058057518032973825737361169529009898585392611017681101653967990388235911057593340839854594369315490091948909712631260003349503851957309944000856450464865258921098434421821812992069207324661666811012225955543288441926095379487604144225967215609174695512367709992627354390648271941131125442469488437625348483905183268693913972060030466206889719443889664548076486876831439657652218415327448042996719925508090482085254788620924011756753548200839912172920018427452075818275637703252304942464837845744365426044535157295617090982907341699513230657950341703602575698429915179660223657167689314108698797685912542275991812734813943076993862519271455801836318636732229401147795779678977004866700018774498003088419359481120617514257206944009064657572611880421037135563559046645673855063339315219136485743289766576544823865858396858485000875330948023441541441667363367936885596914991806107778748641181312808742672984866155602041043674000655667342415340122293511040513887635722308063776783282907402109353266176555569540632081085067182788700427795701936244516579947137876364201687286414968657536660344354473013277800079175389054241570423512015836067276734284732457055492530223389246797960147011565810853429843600263707739413005946998698313986924042807935380451537279929913124577395960035907387007031253483260773012043398926627270909493865364465370785618840223276821058111781813447786665935633837108565187881202091117688969917522346310396126204467536907177565984426161818072474112042263173049162704478200451885764712952072806025205701383125664065674830004226653328450945817403442358720560127915868709541291956622615061944018487675370276589799409511928725345694646540043703674443502599213797399350653863973847279568567025523046010347616363975364198534453707511888466888342620475809801473162780880004135739730335770008066117544249337262363247590487946462296587535144597199769042964306083866145806305330214965116899950795014000637717213270210794182184100644359036256209533990601658337456516319852533351523009131504649183090184971691156494951601004573180122155262333569404285156116479993414523320128327320055316820578452536866631102898407429886757582545053234813320113476380357897877930898281435695512332526662650532698299985756464462494802861511745199790588469561213190453623298465565111304760292727341635515907306895395563320772952556170460207695730910330604118167847751820985059395600864711680560044722820723434600388476619850613256457879091507875505558475359329570843700981296731918313298536627961141446877876421845119777470807491229339712359192846337413367555229612772215003218414550771532460009187047145531629223829998186267760923424592477666568536192095717084819144284349571705298210525286461542940284236958885452090692303895057339823593398990964910205798475765038058181238321807498223053003693247587889178069947001670121060434961682711890897447802541315516379838565488621337652402498331832315178864239287587271756260612360296666026847894775882421051614738681234950697602952121196081532471400594499797377125670079716372311002360896715319810857980351700684197178967488159911228311138533827491866598835388143884094088657013560750086960499944490505620879617239380684441242240697259813318424686283596996135095806155617324749745648590950341308320846282311927438764254142287262707341462476565627854287871650350955778443146183502198747479131213532664061629848609212738689429589461955699823970748861086058559245080029510411803696056162160325254191042725310286064577638860353724155060884708337065074654603450957347424203350839870229427695862587475159503582561994094948402370833693342677157513465249623660865167815287870732343694425163406344257319182673033374853700185177159453410591149032323221952934692077318398410226065709235411631748180916220887115076375376242452630206885443719873025919862651155553431414532390241511097942276440932904485154298932806023207271949648043019047186534009292128900764574426479685393357580857175084827889379500473046338988788029418961580701087299659980429659997822220871313003976291151143421514389767345971929397856042875120652332997356723778370338793055198899642645445855369550320141341985160609123540123446698504425036049749963153010785417608547400082854655978929923159221567867913828378613222691695861872824910084120625056267038051702527374912911290192349614491347038921287984068977237598791299034041961301461563246871336245588923181175821660928743033065784294913084237597756398014376675323235046338501451316684704229207943488813487173588234306179645644620244731907076660129051660165017525014488683725574630172125099728420763987599338873548080060554283625491395090726172847484380714246378229108823624741908368063873276085549978083120819657024165311521478994354932742556139964306831304869570097457381641220390891833244155169319344531903995566957956341958667528890649519506878449024889274541761721274985274112225529722239479535507351404202649576517613888524175649411529131958227070130570807607162246132706685879987678300367756215649426607354226960237913356826932840460284163732567561639730941292990799388960883478334915172626943446467119535580104029305140312460629876784106755085225756407116962292222174807852814309764253177276235887003556704324070218025762176207401494528081665768265013984028743605346636237199406096141789106143664998276984087796873435250387418895432761969621087501196007461682475755424206519474010546889364589191353450772458805518506801831012259116194499719490918037058941198136704392568101904675713733886933952756113938567958242248019197160994246066420456569510630195334674313165404414812249966234604196287108532910246059951377189942377210986430149223859763176545662596762709183434055505682699634787197081907765242407467457412924612228738874136410738813720719213537989862000036394444202217687634003213284901104162003222201580167380320410660700538017080707730998901489856710992199357242350801757682861853507581694791770899013729668849946170375598735875071768724717717196338780680979582933114441612425709856874313785599500154373014091681367483849491017156463227843468810357677702866925220286011569397017501975673060652711072011456416771027646642069151380669907108878906517016102916623184703991606583413899569834011875997637793877078127913828536915536114316896544109436561508361611814491721425812877458833626156277760565721870708868203263708060920793396415268092845451482777124757705917980560685822821030812077658710604057769878205866480412188348035559649870470625763401352616168711508569036680053676820274548675336015902502388541762938088399795630994828618251529952898800336562776670609355040680824937642480774995870461835584233404816091230152413901682889361682324121788560275649783399334391069672563399436406597546623652976544556499003070192607350449244452922019344846074871674518346527210481287517106971351804767667692923283194158025332119877029171540669652617410944953800128893149721696841356908377136600112730672592469830501945977744806857834895520385543110142300520361509388237502259264966768213627256848246692237375068457076778112685702822132113747064211812260692150043653179287388325291054503578084687529830087087161062696038359211620220608746904789870329798789744847436053525784452461494842731956898293992379126553004742922043037288476968359808532248020655192857366026334131405962243372675724115816446435354005877801332718525944420806631181644044183028868772178295324121025304217361561481925068352539368823299015767229867671220803386727708804374299177210479249078122261940868664403118956751395620883804483503940827191011998659959983949491672185578973274440634733028174609912217614538825379275873477441724269679900304610899172934009887520813170223249319274542279593866362214692292652186060458737159159185487749637416573855282744705225403149051467904234302366742385533567732036663996411001271614538190803742860645527763573432359249571480110463556246167478980354421391504001497238340714725710262902530594090723416917629517060301325515894157086925312953130037244787087326174003834510192046072830434602218412397927900638992918008110796419207587030444880380217117233781223211893757037565252861626018985080830005484888852702818690621384769049555907384773161430987036399494905374262212961394086311996887527608259753539030160483864576185484318657183976885331525198003239882831285319129453183217647012976725090895358867686564224551317834468087621584194248933014413753162014703686337851204478033008849801160859046745469970717240089247582776596366682762466455117828745215146162500288523264454304328088075525769287471040405627547316193679297239095261582044951018115542246560590269983281332116120320452894560247628657464648476896779423473855874501546618461143317514808723403548600077887148295045461040290796170316688386368532582048241174371913363092898878881082225289378608303561445074988161947735258197005941571647668773426358319269277798441387457614156078410817209792580296096584367432764086273664930281735830481137236247709543764548817645875578226771256126238666132321679764260894599328916346383849442208056713176414925788984030740807089078806435375298267576417582821754037408425098889573462371072462383549229463673291490708513459706121995607373297299688293499192318028600582457758685647005981468464583169147748239845647465143406877301941416996355071297269853965822309646449996585932051193408430728241182957886616101799207966734524611894325750261886077577092722726391037460399163542290598756581289306802707479979056474721515790998685949458514261328066862036858735256203655059541244675048923417693269518150580121801608506937280442530267516565448027907848930113803240993280335553358739330144868284447605417797937279521960324740212610613620927943236693391027169409431677608482419428025490052190547928418241020537433123699166807771887040637937022068701467103704043116780540206632089166460760497066038807319055644044513068971980504779329721732632469529651840569740981743748393098118920641375003405622857756285350718696358663311422866801438705563462500711708566687918788625680409492277583672994476106459103132457092657446400387871044343612459492835137059467607244314546014681091317857592995642957713315653210147187125216967779633094264528875146582879796407740504866655911008631859183063113010845586912849820456357110075144021761910064872873885154574230564782157395748861827345114208941866574734640650889294181751231938386877744679029418932459303006590720396826815983191290409372309621994547131849141883479167628802580009095565218092971142423806351340646436965187695870578838720570035048654125762815490882448801482628342036499253400592227313498605802208123749060588178829109189874756919974333340933497971940433285078313817768112627976732268247578002901552375972562472677178221131947567157737839607452381658178598729171067844653197125791024549836471916833068000877427450623629588422871492132805593194102784787170195162806218982739358530207899538325368800515792464759462431968871423345019255963227447055135112837339260004966875776099979868813130015993256437223456360237846618378138191251121203262694707483589860492801921102102613428675254761722546009799049452577212736735986416276889295211251680592046698915011761430199266135637079885939176493465487800583854532260464015162178461377516677711853372932638993744642931261703461838286802559622429583246525542922105590583383878971854753031653325102629536139347633946490117779493196914179233197045336594324199005514681803480614473846965604137935321130644989353350411592560981514940565369991064214300699069986187724701675023328959925966826584439000090806957163823401020066677025333478840722653466904312620117935887853905953702235502548365088060972968812389795113119774600465130696103007583851213490772625388203859481412875351206273898677839997092727432599828454346039654139228792511849948780598605872368202987508213277300005236788748253888452547491833749870849204737914707793616612392316482798324856138732303759326861047761987907481493855069365229621119156038323764122543273352397232369264975591503478124511883118031918831230793079508874589358145438194670336109066764128316399140638511567343196903661095759047309907027417209724968388639889989412721105282666776252766700990297568619920265927395621466430951658693391423747423415915605983416129672253386331827694484691514505977005449098224822908266628400207084898558628059167895568099430964357703712726135883207012005457261642709327736313777299609098474418834463429093238191170966873202185406871588125109966604260304732854630056348944748942069766044962597239526590576261394329803165473914625879857930726519872203508729663400978478988272218360884093255440236124271137453037684094788525660412579933619808609825681817091499971616074365849257456220828290455788535854180710993874937945642159271687384120637591430343577999513135280138731855821480023260309940995449529479878129128140739313804314308624227140233066405495686202933996389244176629748238517124744192612216390102893993351988833188809354250833502703944867653984642716528924219001097165686116654881207530975893866490124056303690799747743177468853005857692025782302921301332889397411259267862301538288531006991845309901885281520107604011338095851468650962064585764839682132228534663689038352348757726925701489986809317270759029975255501759709647966851152410626513388658874825750885369367739446133830544740704425880970203963712331286545263361117027880641509837752160536263485927052868768140299545135059553292017084259383944170045954541277070248958651993611681446999464236113346155482964090386293281929436265702699233519098571236883795279589021567851931608956015980877163882852671284750211378552313443070245729567105428223215133716149119785283464820328074995095653017046443382207905684375022335344250133993932233137558986481879175979648387504020729718838212607971700782381017916804455577647209124063301549572757335752615587828981653903946490216830262048451330522463389410809350955756145860054835786978146452457804991070939889622039456130295307128833601511458674532183455001365478838752996604265973595880394259651932941170472272310809900006309901377583849531323454001139739166083300516600457959267101727262935699853312936450543315387151361413287356549007406281438118506932483578165346079143809531393030385514304686154742585167577973264867857539793419959287594017901273204654957360066188737914131426801223400031060157687745197086460099576132899661986545232011012882601863729966751992984204807172604869527595347560575554043047063703030044349756043589525272067012529169011591612108164868916616376241374027145898131864631770123332464669227532115288212553729525698245601811280164497380639458138889465451128315254111764667942749471879553238744026556847075041662328353792463957916366125338146372824317236968251592040006426470276287647050839078823435024306650417824051497325325011947919040807402796639085819946307561782390866775545576035420855177085773022651350214386724815331683598670061951079775776762001813529127075133399882758568378884503946280003351603498998817129692468449079899559506393761923484688279266231793249707279063631821407614708983332309999748966151544132517098812717328542947429924518729850635892992089228205676498070445506140355099335177396956079626685860969987297335070700198561456870604640544404441096546095930685706383165676562404548771795819555942976745977577369685727292463604864454627246000265747501746389570513375926628849465672583062267927845701867445315307812875780618578015654111226567114772772457093390237226063976609777887122332819205232629732483036328932856444458105990145488808213269248792763757061459913353985100058949510846264308686607334852286231833039937325101048791909284784002396634256865921003725151142993353120411101308050073397808244974125690515767820328644261848022342613185723249748555671839413171058337231983185902656218281371404738846491012233366054463148215481969062964614594573981234703189290869081519115890871822478081937317443619451758308621570783556108231429861956453520402741676487820425940484650054861954605693388871893896179708572670658026421070020669078656109646339743478135749302451612861748892025220206457711645730388941157161270588918172871149473166011507067972798688301171489810087532098577921997619726762637819538810003938213157969007032611007187142427903138819874366540531021867850324013285089108938738344649464070995054253931527985352145214329111615126372292176773693475693123718986928336235304725707871659075492858344825687346225744972897680169852755579022925345413189222673925396559509598218746810797719753603831689893449862825705515966008916058563534965489012250677855544555538471781494371190110244439353192279843089117953267832825317859878858427407508071251744023646344417801619273474123496691632269959793469871118929718013165719982277072688132114570845086920659254975902441799408166142816091163919668174871237114166167795792735134404536121462575419666498941624442466345292025793256111447979844349875511248239952828927447408331149842220319243407263763784508293243327834712634130036937180307571360320351899999335675009249954339004138552311264668183989140524530919378841170669927323454314333749736098919270766503842864926956197058028444105789350121751606669569206519240063455271477736434597006098286123315890080172620534972660876223524258705914232867209673745056066371612385710566245558466350304712255987826098879582282362693483185082849885488470918043031880774716954381910410832767425575630024459859878519401449131657515509883489145811161413218719653283025253158375593031674993561877549018422942184339090100966153550473508477508577488272040217002813837788128600695696796911737105727103761240106395889706552853445075200848384879733767356127117203249239953922295536822234569655795605262600109774298884865300001633488330419947189734234683665369195731784330115952161067194936874791650091881834674684654609479602968971514285081515211941238332573494639565205087951839130415491957438881061988224159265829499256749065563175073534408741449264506763637216865160582117615658611292245810261966141593338784255486782195848077287361585163736880960793022854377525353367224244326999230034558384232597447775674412803221890301790260799475848294766209935998614966929314218566967717120812057654497847514642424561039244563301403774406799570723903499322591495586402058464536556806512715414115594671699291092382019517264919966869817770898946175942104802848332939731995265474457681269138129583282172797662023033821521268366359975312158911747327961354621038706282881472878657161267747236130446492695194414779540417944988972896905903286577488563171104469756139325607717382327166590222723029522716804692838211805274073201010628724787607400962979926729821055337984404518857979972349141055046171167752058662247412517663797691883247506558021690285676125090594587532754717026245539627419699565788063401679950533447208765687760507975689774367468994450608505698386133428701725910942367019697533231510456414180787379507590126383327526682743969317104974880437486249060265993491677607860068552136500247864792516195479661447119738629936659973886480593293749593587682421618333994364740714058980129361673312431005291856457641370476409732855169288653254945582194111759382562070634387450929535737115861092519384402985060248059308571103078487216620981540623153192091336433770899687450380202061338199848348264509147701220689577053664418392352263439125986166686439444845009571485544085545921644767101487832392236786327598605404799977604363800358975812084172119383532330230160842429489124860891704182668566226335442115801151060135847712402466726806396559847108160932894316845901653532945219927714401701584814744534720913919106434080883597542367611015950598868685744473897892456687152231898364144671435567443346105921427344148584263426428618030763732233416397244939022645733700792666994776029860989648565661826566804705691202112899882034873502073209908788920573151222945143446824466064945274216231907742337036623330782126423387447330853100608716833642875996441308748135385367228282853903615508925415998184569211752294291523785906894420388273984565665432789709386360650142328961482545522043348189392994740308193203969515108377269724189121711621395444905202671375803478435079408735554526890981799684583971110958675637012791377949572470865795954180295608835330441687710567937284503968253534613023157829993947497946819125203280560689470026376719195508672125073884463957830494790213907344949390460949492703274200222508033045532359610379043100353038417806700381836500664319380913201677991428501223863572388543646616744488441031492605127796143346795023981368879588647015897260385566033612173228579757627873121611884855645677674400862406102584097448491600927632608377510188432307728236417510468468099484992934029413490838905492470128187781401412050789420536327646200227839837021055017669684965375790953382941504425024518046650531245612050037219951138439756358381725562958622321417350332267754815274909694639071961112027362327687736599425290796333780825294052328440226601284106695366305095453026614021208425561832103479950036220036457608478013528746629377755554676635510743244177493454889324750256983472854564327809241309788939561189822518278243708034502443559136555556344626461191146250329823704845026886046440984077109058445112882280055813304851021965463174155441989111579629567358299358688810673762914414621866753821691899957774590101343054367223734967802123514337850445705653112680803112680170146523131202962991748358568549273321122710882999589710199571836651893010772755471474451141914834699173425369373649337351839701680800821453984857140961083304741839215294108977296087896474393759286122378153532944584428666518080110799336546405069647908434302759487596093366206804004841095309433325044647534605360410360008348988037525369053128164310297716744909664733769287332560654644459529624924273608497915904250437631975644126293176147958028508647560754629958509945782011052646325818577755406113313860689541870566259385410690312752691937747944370005931512356491618633320152624607391967433691798206620911014002048539613638715292773256395789161888448619788696450356821151246401655744695607896972391647342136627255088824809761101571834005930276879170381635270147499395045340911765302987954947814538826366454446090327395274230593217520884639691390613004868992176432480761008624735315953738509712802178781309815155814163181273257836781571002308967169273652392889719715521026802444212564140374596796273186957374285450359523667719113129823511059389577427294759615042193673118400186647333986667924447421365419537862902986977733939291066072215251393269109900116828183821172388566911885273527797582749033460186465552521941754090323052347959926145763986349931623770094310761333837848484388263971043199178941142363626642151262683569173383207107113776736231715025628704509759815209567749919541404973843810079443717388316318803166207773479813391907418119449602452452604662863434711114943438553204088352380712349447259684050205547798067771225553423509052518179259877789203276362381685047212421758428345145597400620542525729010081154839444759041122900620352059622618224180829900008069676181705251450954014338517587855045803394696026766779554330611461279480019240965351396312975533395911851888581871035335388281969484549006464155708468627221946297146454480167310477409098124703201114938257211028287582573847459237625728614052554169943522972422596681896669206991222101952588628704510524262537397673524782633195008014050268194370955540464512835672186186205760832996062207544811089722245007423309295458535817026701071991949998592692594633112333364084542693350888751392621642930119401406117084628691008546032006186264623588361200354216578200670555210539238229598521312931058913814552276045125913246716224344925660964272722562210318956836901798265388719944703172803526187015929645468898087271191422849992346650251627985040168613885932608398516556166508232891832683795049728777662284008537560038691142128574601340398612051019104855338863073584624313745490928962394738508943936044284567663618685367758308310019211585262378717325933296830867585738757853558445572128913394610563133145676800946330761237286027326076651136109706272755801725974044129885972347035114342950705793084210188041311651630214180752009438724618520577219613650706178997109858938449983801342987997050967524686269883606844844554951335286429776466788262659131679290402660690128228142993633624125145449775378934218441252136716059286000772361387574041897851551546843960065944702659706177882127617610980510259757617412090089379527870962512785583536133169705552169562627468934337357327946673653193638343362725897724646609799969070509248997433993410145077735819900348716439894319351471962028074792665868261315116030504896939338514205419306798105520984789307328601858107872073747888986886348219392479334682196832406403719675340009954724230892095349908379072744922762071416846769437641928491889741063161933574915594497482412721715834730173582197614217626523997249846362499534137915506689805261697321105556469562901539439102638135877656137368914983415346811380509384640192710633811055484029452139879266945606786376167285169762697602416656920693188383107318553831774090311351767197021274204814157300160507380064805236814021199947847910126143430124746458917535403846678981751650151720203343575322323698480402625590114174880917305457141445846537645466267941838442738131355918370505435840087426115147802962077532442640904942135531638951870373444009775854281941907179570813322264683924823172632655773560140300482333525363123646774739050288153753207300287772384997771297528721730911024096044693552854220344872084445286846118979373084252490681023297728384079439243892114738551480823643339193357131292277441867958911499140390245599995162442962293046893718147043692476724843213942179452820890079057632905751517588087635154499181914490923267917616715771645219394495445712795695776268122839211427466742357335383358437814656621212466186321965507613948666984046817768601607804180230788738339316014402416810342255726010533700022251995477113868207587334869068749843205777538294701507149145434801444605410213012435286966368471215373019856127635739636710454785012350965399811033251630207223256454968716296732169130940124980984030280445646026453299529030326945728394535965430524492932867374092308315063105989203358947952974908985973287022422885713512573947494408803272422008700117843349265437616008272656893016659894370774085987029765830759553405621062442114333379786881569166240598837540992874451152146828536300569373201655289591149713784273130816989180104558358578446111639397481892809380161451704617116474193607231447121952883737488779763308268815349148809877525522174359065531731048967832739558189944405113148328408554697914436417618706268958248115818278450427579469606623085454016962756924098847965548373553939968762289420907002762090303387848827487676439104967878796872046662884735998186208401371025927596016512775623950928293178850797735207893275694163555286536428854279140527940319236148129967215231288000356350652397412639895853054558146233477695578826129195928536441753502934841116002693176291483617344181252025379160258846220089276272261747378271272829240884610208330395390639031189329420024667662902351345099685407754217911936264088852638797755238105212577266335800728249253324920333617212183189069888057201793854598835743097321769809287279680264499455531146850453730760870106555427828398033032728487417025882756981369811132331399320875437996256610492347369351592498978878017227405839280755472081206917329993949306756056967661948795704878047601835999133663079324205157402560682116926676250377056787850669134528462094620346199928663000664418712963110328097153332901174755218526711963445991822860918368523888595542088804304018034719765119546213607678871246297191083484722888250666189596691366801135839869993124876987908424991191455213798262349097842320914183764827272023074620497951410130226701873180811599053686001625121814060916628588538342727584532124953770790708672300377161428493486361548174692627841191860408510032292771178916204866239830408817022062508763321889453376440640910380941746569807009037256586763282947710234918590080952597043296551244015023689132891626049985178708854721727208956030222855939087082891605839172570701882356960799649021509622238349839677324917115431541149051574542921081289674993032304636418829059075838476021763815864966957596075034724314269202491568208193991573937418146547838978219780809064774338510161133313544951377598619707459686612438581068335642825838916750739105851240224246927224465881448842051121672404917668190056772612968754721481041160300373694082020258881907902790144510838785574035964305220469113620878721586940631344637579502024169143821300380484527762085343682826660439429571949353114755974883736042007393425432106157566923131971941699075921445356260755941986737988211629730223334627036501228865056485699727188865561688145509056230757917897338017779637895530315485955116402193723625837485470193973109697411865460128917129084559110381122441089091571010283798301347988854886747381060110282073105347772166523363093474938732209512985761599267596730835965507088448480689481686101374748509205537449841300177944994719071714765775061868646770187326845526641770020880484024868292847704352698329952121402986695993220423008381261822005655651621633895437781761210846895737812263319936388834738510857160675699414226592904690544039700396574330209766544270581235115266542092497217044454937387179160941360478924885782130696343555095442832623124298139623440108398684350660954058546918469919542802323043309237226302100206868181852995263648615753316295066175805940995429139846243593833321180877882090117303002985978057164159929937982627085654453495804003682722843357736535515561008834205700441469092304075710329582557379902756339081118375147465807721999126140787754833869903185414793353432791190849898132279890230827601006611329084874914891443668773005942170323212124631552724441571907797424682064749988265497028233405269263394174556886771722012992008732010666409942694874778598268891153106350190038216633418266901161462602313513971891041848725809169678783712409340648742603541378468252745082681320050274373398905693450429356513332295525910020745395390916047974215895845150132073556893209944100753422560983245225819165249957162750932754175198738020631833598413683278132580528476889236215662343894661273475656527081186201075373013663174629513559045343695367692056723556535763752063362061246509969423248438354606465100608815109086738408033827978884855323298339063317531042997770516921703768535423836967872399241378973514008659478438456343576569562882954352325312963858516962205486700808536975390998848107969516719486911200525639521034935096844597505895676271176806408855760691346804623540978996397772463226399432851787631723325652092947897088316443712774840035438746523497716404416825070944402536134312638556813227873462882156934369983497721054207288710128100340841804327608412037346189893903250128674374925019839523523372450485852665281393742449879644479180871438813981792222779454486541744551418537196777351421261346794256451895460598046590728868358963153979879485059666309792503765259564817736010233681612196719675123383683449579728145146009189639550930514738471833586521939752103401728945661893991988146522757639317417737713817889100640968097851359012062130610296597863298701552283985863848472609781401634507876104436775810974887337188191727652557051404447731978256595745253324530142014605183412538833993755672941700164792094876432523246704442240946987098116725315966865056729875149375106136699517914760609948958779125534296941130862338544380336438615189802204387215956269211462019533892748206492858657531890010077860657427321087640294966895855900461436226919721948726705393531546956974781726480070129074198916286812221080343300305393248571104594784979672442388930561388155373242685591658428914835851795661413717170403305398178795935116007732903245931386810733087322539378262263697076028087075082561747491146937389266850869011665814098504793442410761073368686339712800011729203989817203641848239638913838908588034002258305468987516271802527785582850451330708287993906151504510384860217684983712994630438156574067259723774594496276925867161141651491473568992192513571042737214846512420466639155616692961175394019512161652446843453242772236429635543672187797201687081417891427893875083376945761554981670192474762105481792151800665139654138868787726518104061946990263554152436250027634253302832747697219732146340045818090857948858198275212634067805699710613544632148232343390948781993336385827366265936647549415091110318132563123149928446082596430819023823055668386205252571562727644054982008454064267548912427718277190271272867670373369149890241590995419313363072462269516348773659359065009426872053582526498901738719674405695078519558121324828059567995677649481822232644210508552105124639432524988241980744735534742884796320806014394660594334932321276369514213821154133184968212427174912810998377586816682836734422525185634506865072408436452992519388466179550749052344110546540266792219139231697648856017542703758580028385800178889963263362641906042568801542261593787111580788228956074273927980575745779896837359762652971948541045222703440891131705589326431561106686829980433732958538008913980346227205173866016459721880609100869651025678801816876935657350538880927565833537331634718701503592023802137043293728452955374973712880222818037037005957293675018890027578926498058174967322626134630489489543994797787401734541368444975119838603983706713678493010775262938862319579402348863744938517342431655580869362048828630610924558831680168786968429221504249605893904989434979306705021491484965677194866494239861065384371800972841925304686343218527024798508647509819959891797691414365786148401109407322784738064179333262492428130151109316557092312193387492884154375551458943632650182400680091099991759597836108478727648534092386623556230252899792088036511678046038841450049162642409135653989680813476463373710185740467847530095452835744641161071708650744417060670454565565261297949182688405716182634846143293500466777106195774015957022603360964308434011803257527985764875559431805666827386701083604451700006575621418276592412698898871289416548730504295063886529729190720690994938131690846605244988633509415526511674949612157799621782313330345127434559082819049143800921156598493319052171196111005536660108898174398930364221469297484846734579758557996819293452952220912697852319551547669273128999574614427613425630921031611224773306785917252579837776504264042858040566543188721105265936490899265560610867560685675111655767231398368631341926207840024141145087650819743361921638558466604142422340595928573896909130536890216828501940665254891404725304871815071879053301804592141005284780887008671235779367592951593232442012070048421897698330947535798404710930837793390924914957888378580796127765753702909569085892530488946282938746414539201779514302926553087262589601481221888448606026242990953516997212057171589046021186527278024121852013997952614409689469513508335734365290283622456391921631014480624695845556205130546815852432398621565795804202481937885834241196420906698731088652690230406527166005090380966257412483557591527941695027319799873183442612117410920147842159458577564079700835073056292898215602305394224724539505458397081178533888065380837208752420923709107010478121440683893266154968119230045860409631520491144911889620035465429996943685889372021924737587233383464330797236922253544761673306765611760566909738454359089177984872947010054385848724285486555315680428852365906086919529637135250006882860820146019729772058010299813089167475091724018067878876052160794473435659609680112113812261054799433353826210672071724926255016503083555152661455110806252361851596321651073473991835644178455915499226428742372999151263212769893942196252256633010392859692575720256224499717726469871327875077367794486501583447117919459174706055627863104923390563319067913961395662094313467941133186610824754765289737790967315739220484785302479727995804827314879582205562649237745544010809805531896714006540629109210797680734517821678492313442082198729649181012831781735809084251143027626703388224421467433184567984003017776217433783691601010879241962122215204009517456734173453233387892860497507195433193490415206906510692524689102682948267111514838613379455791834213960507423301811027408017567771360354628905379712818223418455451796186139284589942674842675072409433454932228743973707517134282087189499180648112361200818387341863968082888824626028376184930516806844249180650307348600041548148598059182395215832234945313605209184043116625574511624456110884977395801326499233527551697024891850310451668980229813946893146042876565530640861137159031405811370230940772134328522648991603416919790813474295677816885016167898599905091927062316592711087980733390554755638226034919591915572651428604613544370706430638322379479121965322066899619776684178282216782748646088931712195756565531859723777217604777611563347736389400727817746600255825208885614757720123526385358785080498503634336194870787966686294324412341163640721596005658302856219080890142122636444391216474068047797795577138391306287553942366831522017446505478843759412515926346017502194736989943337515828539803525924943400665378332445878203557232111303948418152412179597699262622750304959243143514217293823267126061304124134701224818493668053031028948081640203476767898618781902960353030014355035650546747289336048451834900630145287530874684178152177136064811603551985532264733997707520091908650916173077141959003727713369422078176442323396159726446635719104935088994560381028918860376906292187973464969340839642599665027880536274804714394813579818413468585421403604800456755315849739157170198894169536459579942299459254151969316794643694865368805224425493561400863605724801633653997689317174696729860880109506609719223927594160099859867219217715372442057263351338698607533383804069938518359507747315419129923633800845945778179865674059120358485356028798351316694324777314549148418166323179180928979900277844433443514795516685278746110051683855126875133168334931185815558078451610250624932459542244836851254379980134001932330781131341365659725158871367577886419783165541802834711131623111779191841111598909186776747173755899358175622239870510978861639041907874776751635920780674262867576101480780450570244355625482587515200437870585471531386457347943539450359957932316190799100349249925513775868403246798290069829988497240488461479339369806029769187953951117680635540537448533767241943702043510492573498781719590001186269584292603979173358818240722440999098083827613022506061732251502619356655801014317398143172079353196030471394979656009778052426263598273477717177159690395663298807982937259541076033303291497453689814348485544946856229887402803032781027627499053858289172342118170140239592834558381931142251682663351546938750599147326822034213102593559527992879433219168463865343852320546073357602353504423144774343402187833187342486393551885609854890620628000060420256844930447242481025280450705458253251873109785897033004940213620016415972775424425136992995925666995223285837096115670828085656682737916335227945884342390975370900731332135811346193018477585740878820444083685454689651942833847906703298799524723067307229516210775984082743862221728596615650870503528262495129402496831413594723204340309490643215335748605273955911854954410354813398110424069002326511540800060244522484390210359877468668513798734360924943642176355169967124232640215184486284504768828619790394366757514503562786330209540267887427117658046827924896320790753835095489499909073694421693814083103461659633127113772576442580885661557547603103794009250942418639117971300293781734060333820733330228162465183829338956864295034976503129123168646024243218792777646098918593272611504354749166284732140843229125386054726431135328696676020885313037590760270990951677191208961322968101217783464989853184477154214373028947378313788086303215826152217628077992549969779944859763901074007385761871003784043882308629536485641387410569792191376557259187147341880524946853751786127683371667689690185081617347327673294611850052403969711476659155514109389853480066977358202174465578002153575312403366925913279505050251126882343832217249598824495749532809095115675552993219268058373392135291499567935871732396040040952416500787173226185408403194659222467920954186949477139004711052455761829779290960260664234569918897495598344451472044235762145611418854200285187145991798979772497106523995247735188839567529373806974705475726145630472704390345967073946114576353713294264583589999767859448667690127644555228294256742431233189520818978948787645350945291361101937742717337958952265970412075775282946402052923739783466832883626308879812389860305056378762481098053596683732391824063987624634584336757539111012865349586373745773854816022167849738686182532405996883624955869531978538907169425173262048966483389043275545599559909404598575789325669514078689962869022349925685045339212848580028681512439405991184580822483226723564018374160135836010058099435420631171986176005527076744269222462741344270988997796124262909514196439583157407719168516584803597391291944683146815378942088608381024841326955855987240949989739950051203470456034609913575652577263295791243066387695010182052519477481003321488080256023957004163016185568934051596532363607789123001451295589581766283206788560916651864420427042168046461634222117817747919606768490621017339883263453173414620822646863344239489502968834999248489100179702760027562974139899873360620708344274353728065626032373181610345718923540136385688450783271235560496566182735827879406176760322529631838302981802576408213849043263181222717054680071867325773843571810973290144338345285324454422755568144188552425910559722624042132199913532179654318994490617702547838414264229771170291425316495368203765252743058729104652614606554816233108629722686787652118543482911136329233554370823279846968778768254402706755331990725781830357492653384261028746127987563805449429065743135460492761263931641332519079148896460639568514354878117967275037885820432417296182697451160454316041427867747347242763120564099385115119144875272495192675449222608602305601139973514315694154960235627822602326773034816067984671421780811851574083538714921196023810859079010169174255686521340980726121295837275554931178114194105734585374909959184996376021538583339579150574954531710597652366980167169479169545316227798795399794135816109131076198713591949473539409761913506315113362096972059300488963319414553707745469725471253422408388582317589594900871111947786557485824518271200330875645588131481396404710597773740428614375049301418280047620274259652925878272957223484121102202003772142070434128925806328419674978533095724733143521781657626454044271390720096240506015114771840922805346010917247753629438951005852344206843257303509973176718463982545035173827273999428443549489449554190116338397930487075411512102599528059584365843461535093793354326062099733577609380347078795924856285720716151234486097085383485254228354673504862458339460351588853100574748648811250273283424343994372509024076405205315153172978689005212024285739448277968285911947091728403204684231188068005954753437318054387539687584066925306445625983326622169133108245233218328668144745823144492079297248339679786972368700082009853145038979394807226573605359801373215912710503763290403528358602693089380110525265240148866666833789297539208774102779829544768305870957764215454883832691862768809671728448522616423097967116744872575979333350416109960002402141308767131764056322172649884069505591933164810479540651668836522714326739049250791015458013941456093193099820161068097086220396858589693616449382051524222300986435743966105602255235785067493241858924136740133283518460830410716334606279784969937984275990940647352189563181372523749452399277839107284481163387144009674659843996012790299915399627175663500481275581612183636792032451536466944525247819900654365304927640225634328667283295418803214183634120758432192540697979211056160807424515630852602051008721619991261900849772923168538768395332455859749616039862741212410355752386661056246342848229908414077317507858106791679306385953299432623382432904311521490141698849886399355294527973245458155879395160410277992788541592325293998328781685808949949040466374256774239724049552542339395626773231063833516748994313207421239443140912221748108788630611807692206196322421808611782069397555939290982458476717819527328473524245862382860826229488627711380846345147178539769887584656973864420724895696688793738623301238145317737840231067284981151695743217879775097935545003687015292532126331286200034899362837734816627281957326085870810594505571316306775195984032792773755801047092085097065036942924967017574847893133895993283717420136940803818334796641615218282387461099132757479110808440002153745548482740780239643347771077521805320955759942465244094530975153393001025648361101580560682959512748051072993965104529371748431574488695812911923045124090861307035089225757481325200746422803205939618448510356123784780531461370387051384247967064551678587299706037511495817789689092585900127955501143940083019847970801338240277585481243510961335587040279741286956959107537069753131776680217171135032730133239913055824817291649281143527826288426596015974289429210843124815529307199080474141934289102446584212566162878886242150957674118794626544918329357878562981166397319564823309925293376660004992480704664721111300729661274137716037616529535931772713716200467282372197282205161841549142273663195952302768658911675266457154580983512406707505801105478202124075169432536982220597342721994988045470442922593076594528270264082298244903888468022309817443692560240731508829574266215852029489875251793022490329370837660891069364087483581549076993776880375872934314250315978612334753158169643108643402110185413937715142687902062292694091442709482602824151967160050135597477787394577896370919678520482397316766398982412179841760597540690445586689127490479808304395872237077727285047246965068332521847605161706096947249698346187174470932777509315709968881651796454036271813186381731769646922867319531274386851390751393573396627399194630371992314037507293161085491753335973220701047602708807590620440199439070690717090568505357050276928370103760746490185812768485220797741290463689852116623647588771528134793453569386133518607576014209464372300344630836600710909180353761573332433996000778904360572145610685632506917792904637356664864350899222704864769927672999518888929618979628626425375825149229956853364625039789268528278062720451452202415872030883583232672583645488033633801162088821183260582036653610487391752741885990063418198676631493261680767426990395065888346278949442517635476028044055217034444630394182394118363862969187227807709264165918946183015791622817792939684392645107206663064150663129082289569566137454246569000097726797698247320904892741815868908701903533379958036720033305023262461156695580613953003886508918104116811763483027378861106921647144016730974412894981480138810007624777660306941980726073111079785714335513977639638379469032077468713653544303326111234972396095908966569139686362841706881783822245162306304151283998920851962862569093422821079690428565661728273458996098884605722441610519567767699001664647721854619541044752537260843082387532492038399083180267582702472627940620819054105744065140918329897396890669199211104234813375144041390161040011482192987548256284188287679260291707801689513181908559437209337164323182069718791990565145098127924651187930680326645629024153815809309340585018364390387330338746705530054045549168539320162666371960473885389117272733841799311224242464632307816746800095437611518347642321770960277387996092265386719547419386393215577010589688140447727500031550216531139462075469165788485004292230224810325556378154057875304580109177570146937390136454388593993181009341863499913453424286995228290154465946480197799669023455759868421988198219337690234822793678365618391228202525995298688495079649937985189598080796280667361671620637787847204539721921559678512060299983429200629365746058278871142845645516633317682722356781215822776444499330927006361551121346135932445675401224578264038781191288123097007336825593342779806239304301442691262738705774602940578326358139639618214818516340660944631519143151396575823784313848675081161452601407145638857214797028070695670740485188988062901257402179945125626036522164600594444521546846195584195012199054903566779003077341472205627968978898136122634675494985156251703890602123939518648425938099253373694867588665540192886663906759920937791136813626655753629778642889007679537840983076658622564451220671867180654840653922696668068216322917423124912646322920987755068613231780398829857870500235238345888612146932388394336589368970314341811997625524212244064483074434639603168539968525176713438393065464014752506555039576804228493274217317735799825243969593198649022982950229200927250472506946079753754192200486073153882898965572222926653525516794488488174174720658153695461077199661199481956157779824967400602503860647500573737408951141456133441494254014232742382012654915585225503959397813531044041514456870998498826477300367278129938465578499183548194508732925209066717489653691872307327961790790134868362819717674657639826694340482786312684653106283016458952455900747296888554535591015728638318853669188590112251026772248642909351973051014556555629236083301245377958234236398946309727734598686975275616829612104754962745375600409905840469906524160707025153949762418427782567328655656749061681167412484383396252926760638002960974407548441826147436534309806345933125666879200208753401529914718694758616984178669762539393556923450920013928200156939528382727642879728082228465999288796953318262854164411018924557743758283652416969683581387715612022652662844853146942908526678063964716517587410107247643798481028602202541409027980667485025268464484747239226785716830586680142732050373828263857672123339757834345734005989486843625922313604860015151728162964145103108817464529484865006379552501199404504222093827291995168035175310005634486778090958077440657476405073751186658258199768728906905181800325491399877688906574760399689746203778795531982503970813233526576806818856251582586100226807247657705260261484889326888794672877673693085973549860777480220482995564523697145908846068889965916418588949157661289845414887926217241161334676366163797193378757408985788303333549552311313446714027011963596262640181363528881747832473466275144167799906545292919032635586531963289648713975726201087462132113217060950687553109420171495654428857586152153514256825231664244462190797337998154173639589674446893827353339842095614226842866329744758551828378237691891432687855026286566790393577852029530546922275282494038183439678272000057167097047382139387379786086019932768192381540176284201778123595839731474250312185937118989197136318025251094954053451905617836534652110142049336563043079827776953240261982709499979633430837498891684386990245732131238958020016482723436996809056677371965209200324728092523972124122153551845741559414729476242706282077687606022347978362101521502518284919666765657759511057081592938169187564742187076548189102207922163548731273304149376252598369054143699190473382550991001231800093209967003040662062962790034961638262368781549096815853589865434014171173608545875690973102322848303612023778068255587876665412077610193762377437790644828339512763540379374445628034832747008494479323863789609159566551966791284256564798435039577404257697584959829629809801893540923409062361900485415076294289717732838680639013665878288375300562632222243888455811521389226747062394614872656933403769285381986748654794682152887641596272348266831911599428403861182994489100316772775794628796974989245882725941074940244915245208578382000652234465024794656961168816085180924700139020607911292859960125229854251598283218249043277926790050940716291754980122477259226763867186075584446488805480797271841012730567908690416136679832761622861788397528168844480297843847680615202355236579971384696225324991315998693187690276270630911283722065389438429207518721384807357167415228784104690245225562654270667412952131595556409508700042544759295745711979863204713133388075915665996497803149088802454397524563345418266338532138889837668037357850367852514897427193162962397919956303023110891247884463171644818658348557075200253950200382033318781218638429308981624853416522908186686588260452754116393342107053400554557704862872549710240361326448458714922690440756872515047652897279692025130450526778558989442921760926688156278528919922822794024126462893029195695269446220231862505809323221179616611348726167117709811024803890964856580338020222428450754904719090308956180019306517255998221178857368519539276369992870777159378966680432542145782313257526429090954460895606872383292160113313144513140443036138680439103243203986209766554927602932401422273647244364441472748097971946782040866331732961531699029222100889816998142750030952794435607768288834107491337354912623400622248428344747947808357792475826018691653918412180009947644537957872702710404058177949683662027234425451883412695600418000257026581799888131358954214708027187968338780860391596718932562058476706464671950443594346810408627308925773177607472452289276209471088094027765597038440551811985837072733425465673620882264464140801518240815315766491124678195437610684278204242346230899941189346376310908597973555105843612211381878211641092809480281594803584519434119841395062255275603021555778484301045152368178160144333133199050833228323264256407499547853607591998885754603502420836609041706272185728526036530115683175138267621744664646249264501340291956755707641810134274262283440822108496061493691911423893026117865431931376450705612671360151233180170215399071626251483718639753130792519710590460544686438695782694199079896268505752688187549100639799216742321948605427350662331402744962074743670944316924062675223795528661616205482248873317962835057073693859239219761519781627652538165381734771143416955209165068443510681546261817703137629550765735808634668243134355066420111164756073791483194541057328863883282072059644289752594549223367658489678248031304495081588395692564899650988160554297212812006745532697872191300359185685590561288298468971901579696909353554948133680766675789498030314391957156118349549628894939071400015439447865231602708974509111469675302721929289750605360292301916890974658803064227033684587663584060889854598061022446075677210858581906617198035196847616211259724670781401941750871835445670274428727194649080911868746598431430757859420488540957843472444866617977156715862437732874525753062441320119593190609151183662554401594101450059285763503024166824246386585908436887468826279634139025924645004740620782722659096751730141810589022699936469448887909227187935291073587990559659415150392604309963991641076828616478761722896988141513047794054058911723697028300902547122270118740122409173278841454500779580568315509738455844712677718416809904119835462667033715724431261991715268594806587018701419221020945716317041686115617894045634352335110404875387061943794854485836767984312747941670860318420116855514814077737599347526778307715789824446257528843796171916323481806812219981919561064912141543024342620014597531660584728048332122629653747780682931184786809915433868553377511789081264753384094542956990290645077232684977008346678447090620151498990921530109784092086983067467336138007750519973726426460625198036368779002769278755959026730198507961907581849320498233169190901696632986985074600205427052564029593572505562095125221009793391444851196349259817426211340106650679109267445027417060561779959386582717569690178244557182113565747324346430546388201549933363523069557524284248576686339167203298657637072131749931394340316267170677425135432412329099462125025274448770284470665055064934845942739623523358618903396149723448266284759271422296716070867343263729563135925796773066516208998791796783082368857743247577560773951572011300260098199020516466539690152609485252448966029911221554960573854416101845822043102611480324969513539511569139643885312485392887148045880522004806617011561767956989684220475406006485622376241958886550995375332213516758143037790375926096909183257988206094672581199907852945976717951036661265710053758537898996351350750732044473462230379756266394304118489259372986358851660182062583100101762426455095766700935164082488195884687799991852988441599537330217235747153859895693382470478440947238825121677610067613506273879056729479180366688982372329012852855592870462167560248939124221595448679795991018108300725332197132170532725584645998987901698891470128985786777809767729845608068506690069572628376979845515333512651107763461355688985481619001958962171341520933619728279562381544994981446425107159842926778096528408325150011822920113486432415383842299515419067578724928485495489908946767631109915783294292714938968301109072553762784336801759100743166787565737898668002890492886388059919426436653089141471082175300175270325770355924685933003713185880725876055896280901571943293087497175683243889264533440846819974766638401039720098258291129975945896365480684667055273012804091450190126728245908823413650612942876165329368127954011339084218147127642789117002476393739411689185733741352790315721387077842025627631981538601888267398685303383482218954122185654608754144950785542599017013797064797925790967488317003653809923312785516542094882017103596869585837399569134861842824258377640220012140599820625310827804650127790790976875778070428148516127730535408872629483936058901338812208575436643515046158047239865519708607340459110856307886354456958406504393164387507503685065150171196900370645610191872148429072044745065239391042273281916080692036783439957313811804117142843661431889288437748512238363072585698968485246269494475242731627374597227341881358783708478900197505526162387236451708267352941223605029957126270191584386421851267889358912942710447621409648152106080101212163351158702572755885620778746100152917106612408891407553844793654748355410461706804441954087901379479763548746952375427477434864045634009411594377316718883429093583401043512981084023512279391248720961650461357095010134583474151872950916192447502906466478468359237645643463933242109000270749370594859340738838654319550821413566972091779924732466220175525401596782697350861531782958030877340419412666488715202875576013467958519261592146658828717181125595950307360264978729136242214640325776818888281701545145917347603816079932305557049881029498546304735279111461859157166822335388712756488495913441822694617934966711233776669869185875991444517868959237634215337069403290974559635131509023587502699736924731048293454525714047993199849745306068424928470844616463004219021359811936113563682122198932803423214468091109822906606204651121187814957402107684533517077351796920010092899382634749461749760414534772159955048613603301824256511977955543240952531128545393381178383430796757101710300537553323436631299459505423618889593232494929661962784298121514496419150959123594141424812363950780723572734741099853644460336075271888135767003249165224915795034043351796125654580964399406510338617567170746936732777947568674468272471305808924975553947363035062578207625049197816052543090374534420821818389469302732462036309189059169522111517674006664275595330405565876553000619757703407080955396006173831839116659054120506304309610324613045161889652068907746824453232146160664458559925746683347476013436723363787507206557327370606107508345537448398103065121409893437320549320086591549897443035677321328913080905758082973420207485245193254537071715206830457183017512557547264954161918849898442001440203532101630571276186490461829622591016472441775746832515115445707960931116852387785389710429414387590476795623922251949060654725498425908135138231390350650498897280095342515140138949930091272322250148510631565340901786010478656133063196431892764735759039537692419808624620145325195514548835611141041859946284049905434570107728370438878179012399733394475651758093665967861716901886261768083740603371559551204466365583840699696532325973039887292032086362745032605915495446068961217418604672234953632665806168315211486626715591738681994731934784546942054492013537109218238110059861392251774493688804675097391109293764136155311457291689805769799091481865060893353461896106188235320221279499004640413530433188348070961117898670198210061442423862208592679429509116092340596054832218623043857434006937529404445199759376585521628740131916480400694297076295926720686636138999178351605204100131680120855012795996080493438861765294195227397354230456204560842101255002571954072815558629986592781622254027687089460031011015019448205228935133625286678865179501040699244539505620994570092252838715331200816909749529466018796391583620540769521497229186767769841860143739752559796824211790357679234966037287745742125276875455766113244601185733428970845923384411155278416030496398774670591539237591820257245601852921413647100633704676279055551815572309322324652026560343668797281001659051680359506062624886306826105480058951991811739616207720905947616406690196137842240176823593718408643919275944275802253061700390648149808309511780772108083958608060221113258303814787876516571163709482156752274781504106024580647333003702003773032622839211923438845497295926567337907711358797244868262325072004049291612898462105579434465590645216680429242512781257563283849822436772487871759267801755252028934596802572701394258644879986452589272246101404150766296806246155797727277271960582366669131560435830679491626432733019456781306644733301089847234004135564183867339918466940595315877149484333897217385899292078221238464734538280837745025478514376473748124056783738601422231495884378566021557592648611972379573860331738335026170062292950763476875854638490155960941731133120591569634617426432910340203077274479109878839559697889736683142463816779702451441691267156389223544854683984892194094855463963316555968164677129964315663034445074082820666075235386844977356772924727968804270178131155704933911179698824636194765869929526463308925886748110221773855689740732174508236884142366579568028162539895533870003157468512195846848753763163097062873947627079391662828053815103277473661271483826719486939722382680161342004290497145995936707833478957663746851979604114758046432366543230166807438630153643330778511100070018615022510465705553936018934291096562287938206295473510161964493906596397443342218802140996737047492787081181665547445170636215796536874530890663590136420057763352999680789099144624648575302248984292303041959535525419735198964001707510028447543542472938050336729296825189797697672113637861480254910059193556182273851251346549441907916669992103122333009329929232357408505447874393311141736212811462220585617964914449453405908247546517002918688285208710645191802386923127029106199570482914719148729072428902149306657175560874115670036839212376433245482205127184232334921588229547591683396077167593747123640580122332009826644796217327454614129196789476482463596748234504470468481253154506125760717651960895307415612946993400814088099555781214301761520111329379548225081837940061406079918768065043100118309895263651144757448761426327026130390029701342034367331434365216796548112108288763387405700195782724528883836958680947251004583009530081393869157155898397070549083164047759467088138293944420888163822482305939167171374888701678547506351048178997774417408800900808842905464203134070543338008699960977685086518287875090302227509215040248662362010485418710864943758730598616047247178164187040642873704995382184712031232727918956275280800703905343376040411919757616352891708882765368995829364597364535354588244244814949583524910978580727071783079320732832446593070431547655398305745043673712747504093460010868967306779461824317423287887275297821131430252364286299190325894513339432792635025105394564288013099557071277135528316356610018055870800528645470609392379950543234966130007298078525167623498885817743177461031638599750300162052586426160141331699278592611588450451823588311844427910146590783558882177336804607611486962878754629998294544910991905501776851932269320759242860970893101198316732285792892102374127953386541436859860159411257292049471833218269088018206769494823264374422327872855560155536296207229936939091427240957519023658427116495474614903508864161373914023022166113812144172980449242995388654873211882983852901868143444193830120978788180407039879449079298781725255554356872190211532653413491262721304784175162335778071333882654521916177002037846785090560132307904201278638651512322530438679506627641138104435580112588014903442668836397138790638702812921288638716561335678384617873010798761534940748764423771140970530932061787464298061640758181989264175944742022808684243461006732378761894729205134184756764514634587683069741131587714588070559626333203282288366944520424961848390617948138131237469703707693567330638429819198104693833985560932501032286234903839928794497061299126911775105490045246049220234098051330647926861241879140336197446578708800885319405551539562740606714379519812299019393531905782292021126325352053697035155395302610258254610654181495415138007433149311204859026637200267233635096942123794944450749952235599932730810324256561964979481491798138609550028569272604577893957202755624933846203708697703421688502238850446845056179472643566441431519837254827832559771093298736752568965888403775662432489815289242791134806472502691092765490007828886428101956273204758904141603741783769282295151750075307276638909258893461950673400481764282191473042574784730991729595550639013500201852697273525179674517037631750277913608539611708822841562320117497124765228036348747738258313011427007511599729018032169289422260602489537155971323099955625989300303971249607496053022088155952870754153300696192655255659761932500578089647348004797261767596533331355405136907909146178980545480190097096291057784141603795670597346651499468020849513140284220839941411382120719646403338496516542271285443836304645396250423627371520341399857676380172111070388054407095571928773159637756155867257962406564406594205557461729952422700282225865053891137938781118171521426931401863944933347997192454223865390382892884679256975861226301158649803243274082748909791477196091642216751906821033388060307353869582547333248134914674497841241557494329394267724256512568575185636736981928949913053778833835845882918323052757104315235625669719553525956464847244823350816677478577307866236247680368277393730458648208463109727278900347399971626603415117674182536943519062185856419786515462424378701181339027191145119295018198473351667391969160005260094598796478163239451892171173295410753089584992924738098630974146438955112099781702504219199738878081084120323713201941193306145415560201591361034489969589732364320204644740950837718366382746575305649999542027441879291683712931175474994207408290702281634182612865758953226766571770295582101249838858440528134493670783387411260569693506804242029966010517159968461271845310091998100262810226474969641192111705582825836119422693323327283886525804099838416003283291310193770579697426915640200236974527824222226312733782401510877066168030452882966496316299680224343736019525568630687811465014219135866151459017913553540700218845941497090965582396491471657708842077560236287479960490197228816732953512311732265241495727039501133614477513440307752349787276270741268079505046048631689472219820242782178578903612976170256766852920157664121350763801246460688599548616174152080318622252008688076461792235119580082364471895922449863443201187933400504361403483760586509831738650488692952670543862567745691000644649920524918896613255925549414242725541003820416227448199782824105200749559565978965085510246395353494249067653967627130598368127089642095590744786080322045917486519650369634681120935744084586332297839128681023086581143779572274127174058232561392708458374481863459993887379511196117802004861417957206025610360991736461425450078397307193646794225592624692825229680296174674151746054354103996758736587232052314210348707611019479413769736106625799772401603637439106067630848601330164229787232326286148785393374172386070630619485560475299169378347385613974167281600110553150223313579223440224296264000487303408905780446023636659344337608493322406688368316777926760796046295754631240411164573417741037586155384295376772288707405062100392719334059650909153793404921167372864709761442379038584782007010190048054254875362373475102501467537257171356409048233168644197982979133050623787854279846737004066440675836119854722627209590908533999325256432738816535349933556194828234993871604422582544442089228509799646336140227689681657706839382075695462394203334139498110764589308770015310497985839304692705608423210707263529747286675401489751931422979939133758001595528867269095028191280325541407316074536182975744368891318712227698299110406213854166627022852813835974165348070987397029760963904788289462444175767320113158956200194264211458774374454306471168154968702040076083587342003838445823541628217358833164890143590193079223913573070127250301578398423664574874738607846895965313099823806789678237673386279299421033016575420454779203523835121552432410449912151721204683999374137820022780641826371184208669026066127550730133758764016397930765259273655901955536763258191631688567739022022884446394140545906436124726401672994086613966104234356019341571926630598333274845933967303656987247225997020115243066484270577283641774841202079164111054792212642276109668039495535519579367120859182722508546927662266897282627906108888668732555744738843777701402136762155274900272092930336621576302257515204045620478238685855230649720388991121324990251312568580714866127763847472948250194132963493624890042821379477566481881020383821109194599172213516528100979641724209335231250324807931164741326004711986895576696105246084110184980347835990940286585597082782345617277924992222865924688743220263739718109729016039678707285849805408296992730600164564830758295178778994803544034586351788005821742110131679247387615048156900617074910694232287568762706903072071778303244873289742303391894025489934319905934616410516226899022104183053147796847627040306693065536907566803551332455320661956164607261282616096381966118207820728833815871809057206955423475258143209208107634118576168455665959951621391439983740963478129261766235297269748966144351954178081681549323354454571997490541147589860228233945133735099296070116575760828461738761103103357482873961513337458410759202970691454351499909696834448342676722237293790793246168768676679640657370412708467329355921383770584248278057475040856550655018149703758829050108804659009863637314690333476012607616985966894695144191465266784626498154802642696949644990119506437531010558674164052929558451746958294933036664361910330316260515768140197971827437596536243305930395934252357414409415951799411444194097359314007778602575873569379960217594059534062280453221860410082245288404755411690355541329354967286791334594626232209075545359072446575779704267613798885857027720358493808592597710653063685416444921708148942608972886919944784401512869668916008800502322076838458550427777716755485953536302329455726518322414503884241276723912062686648317526725707334722583904747201162280752397096500047032503261971232497827070694029160815769904114221854110560086724387463555765531836945941288640731260002833729342805342611417970292859082791547609202660409510825615075727043048514677328532543654597861631894855052756403122406561484956250988353777982422644057336450822006376557791315130354620260270171564920386694372286557971912556311142483450453670777404778098865996282861876264196375526776207557425930585287572036415940157289302239116376298323783618811456073219961485903008530432144615557806807607596976344052567059322740222555131108216753899612371937792346396145095895731609018012486323862646185762692652253668200070090062193331671914814711298691563806327375598412368363878370033835166100144118366261113727052651515447227582486959036402780529790691211063504356037277884347847589534244212656959080865365368525578758119212061412029582489925671228692136177002960827488600474319648476800420248675266372307582726933600514430035644189319019690419566683820050269893641356115888669005870615053108855686298105902996047707954373313677685516181463129537152276643397008907079228641390160823765959425177515257012907669471588138968835910656959175230209066822561489935531842992927614147467757590373649794393348813338673621660908188970524416685048977312145416747308841818521838292443212649123895944572025643747780191215736427197653449853702967587191358356944852756772504970563283984087077654624136928094475639638964362504391791335039385345395361236116395527330318067557595890505090596185852002747204473249512842090390174643866445165760435947819528098705823975569255454330568181727342676653927205466058458121531705243588470642144433678991658323581220717255048624868683891660463574651714320706119906396316135091685713669031960690484006403025396937483270474101065474531478236404133524691571734964841191016257761075924896560271878544802175479725133011396423200855076874459611963160002618206270610794628622505861835593865233271048251682742320177008817441867578311328540701215926682672528613825741256018250874311594489583786490757837244512099343208180991188386141097791188459082036572469775500924549565172987303117229845619147717491236176509583986995441623136525404048033661019893155531255092584575778308194397055025403293358192546873362153004015900515312242892080007049830080312025584320514498198395593495287514887775323154873951792408148587484204015210269310486838044437579193470841892625858727629204300697036014735172114704293870309493246669813707041923085543960191714394127450743367316697811240519819224891102742614491271843707985055515262686941186709388358941343998454171476331095837743117391248997832311580811879302372077937057011655404158886717263028246617308883736102553439347870661899785909260269918950639813450487089295629095956079290527949168930513555988366665252790948437389174239854294888279287851497313768996035286609674790711448428329168997295789009675661114424321125520616473161865600392371968938742532195251322779365858765302828290003993603721292537493891855183856064917025081794768367183536804210621536638664521353270659053101339812750637957580338672092092098301135767057718917898682817236349794882428056854403573502640915354616029820752979700204605178120747329748924205959648763651568201994851671880421677260296573484552890043546075160086621621653097128486926786920818052287445465131187530155116165290649504232426031624102233425597393812019590966652621250196222088355095756548484791349862001870396491829082811869273597027685456323673362268633758637372825212014425012177291375041040386894305771263804885702697683674317471789196947015819976378833211868549827689126829284244648038691531703801481679656575913545769394088079120648436841095948921360840781432795291261049765636596780584826135032500655320454444208572235077085669122968279894268271510971664315636549699742898488321785452802134508956735936220189780074403626214663487487047020469479665271410160330492890164309396908296800792380217508617935362918267536481828339501948633368723435930795822975118196104466026738608504799814718690075402734799470188305544489343828207599086742938661231846507203030270427017066742619707794306164453793518720099099467757986130127236364312309801064174258587042374684472022697568542784520637087917847366904609273601931932256698795323677628136894762107553286840958023405045780473596030630236792624544302242524988361547117505371134901013379505321859937712675491181753628627476667924956280538318939949471175632566016914733070146588137849021546542064008950561515431878309757916119497416041878713550795197134595486112375053737300379513384419037635608947194553240131949601909610690819090488476601583579845522239945189490377974540020176932346680620882170127271369397238729549488982611190496443291473386958142174922844652562061582691932011544726137144130699524698075061724486146702030504825671452527813422725673983015038106857114740562213331790076313615136127150441502665120567288192413597754133634899641245055640181037623484512052325267771014081934415034817813357446279500908472111802395487655624443643841593108789437909007974835644725488991626546648381656555265053662840152534291549966090882102698449526054395025123115540272522459421389986794598649132943787558980780333896801038098842245539235916263458802296175441639311777828141162383603033181836518539607205037118635364255540969740088554936582482613593045694163160565126275042579730489609729562440705355848659902412412164659062484029676765566311172194315429423570427566786392103169406943042441054561975508114336649357195015078700129009347898705864862064267158205919884772292649065702947924907220392898503102180021977188023375269121016027962641259978189588968773816919349234372670010598361385083969948404394795193273167316708759912744506315314464073506454878685311382490686956957206608452781784868026476298540490134677458814087423776109347406288140360312608718817531224845219884178010639630769637015439843576341290662848752499167472958891565614602364015907997548767353128833373739996821757969074827839357763711012450501169963156636165766624104137553830419718079918795386641474007861549096773717340153446215456605165318219188502717351552381333183147018481963861448554841074944400425412173223915411198138730426463934796417861994676395103333752352400191800407114427035670333437464051684968833892742411233414025330142054585217052881941911226762800469886772273029919423092636094416209590758232362504045847118878694680438202773327226039376801715958628246315053012360000589088062474953323412603155224991654976828917419705728430021745098707787591642570453367333022387579295073087113923806320511484687947388891021504287649929672931536652828456871851500000814265400001059804723835381695265903176154663069782722886985176281484429991304562224033521288332516890291152292453487102195298119992530599419122462746768748221071283631073752303460798006861764632307780386056051188794952657632820747429642234144810936566086442858811933202001196267662758252569485868723139575632768282468492164496562915103519639247843514797663212057768664340584557134623318995323593957028729601865829890375180518566919526077555553338209661074057184633049013879574981300122093574698950595913223151451231985927820575060941484001216144731904012885024313840275231681668738738036043971025293709612406089977159412688547992838919219255283339620487709851635634933494739511405366603502366675379208181074019722290100405881721474600511856895348441859716769821841349232996253552265271125039691657061766283211383293431572618019662986981270120476641008412477995831579720442170293506688923154976709838096034521409920233248019852223700608139806131515004305223681096104906502854372466969727821712996100839693471721207696880780668250827338125476694499119621916667677258610384563044338019505326642443610138321526518462768710753737472350768401499365086827490063723122283510950330427275148925498539957415294523251852398898382728957970990410762902860657922277063193396627129665136305700633508358403166041666540214809063785005659185121235383001452043759535091243739978880397859799308585456889846089290948371764482147383369921373752364217681783740686841849741328865608654443727116045419335055405153409463265111986075966982182406476272162775473090254925671902616106983778174890852768409351352744604974265392345564013598559663594564510705245210744980469469543253491464968577425720479350115114043667904382041610493577786601167208444311107119476170672814435800965701782021403225284618336391929068110494068811085042108314994291031054480988926224363974171372459809620325294548212161434430125681132292470967057784415725203573101499915131323891101737594492644919000794585639633097202575110806185638549204433792602018870172139409489061135619381279985949251879071118648981053980319386465200118454150601439213472647608050448158151776354679894666101629954831551273093063775268813040394359342970508709558513474286859796277162074616464358255094104029362348800202255952432073637631333798958553949432362349327522044904721879550820281986700117400341599296673368801514099574859692373307003731462787519399194728724997231471817639419021080362355587618781203801565247622702703094272688051061913653613059554192557292170141672540855031324677569902579561108277788301438197706308813140683385639316009040047858454152177667348364381547517563111395721852314748935356286340166636895737122473481973299512348615716233690782997852452982322157955104960510124845125316018393645656378571701538048595398301808095608093263278600759779871656822631056401285328802251195730407292821674511459671598025613637093230836642291030973679352578862444682797202901837549506188193158275719430196358783658235213799405212757293599258543265136922598079118565318167812338623854827134588533118248772288592300337484868514600708306496264373612340501498420788826994321677749192851232583271621722852777909721353287850053802026037126794426185061916214877949617920907998966686767590253776832998154031661477842787083570740189024817586970968972056655900439417045469207420130876754974151890714919498544669221026837228860339472490091687436322230379146581755088012775126803684345618237231011647375650772195404288157043560533729797938990018241814539947117185930449629184884509839824369779739071520653627215840628753309188987957441235908685874474265711094875384177676135521762483485068930663221503075506256928332070163140010930144650448544137892287251123141714555791940800866993976566621567295714200077318434787439211555188725099271751173893537369946650345799414340879527155373225214190371252123236143173373009288120178166610302899979316098126655331534840293967124285774778595754032311792915349906010877046176261997940848937394597449564336005446924861341706769276689557546518724851754807321363723764474654312113690264951970002889289877572581485919121511650513568383426447954555275212974763508369087021878683864759700724623788186466237298852796081433539660887947571293726288958024191832294752734511938289209880360214181381433364753988056284741493324952962842831481893650974238825940093786197476673075135839830132671216537136911692430734747758250463935183948888377938664675687306166215587452329689305620458529358323182967583706449059933903314817288329353847879864451259350366317013959268937144434532490858361986598125682571224383988149847013233237866646400573442539828905167971949367759286859398652556306735140999045017996523031764968344762907358075496847982011970080274144762886175414621584113743288634243325032370649722048113341322040739089001213451459504571940156536093003942038124469449916601437625863862445315974740407974808998312756843453637389866150251340504301917700376082252376119165739615688203652361252622876316576129110436830087930229685540103684308395099532713042066348369351948050697547271319555353247080734301269869626323804428982803054862676798267555903358969917300080858882472362526143044343564051067622173968274069380682375548175105820321340764256084324429306764533992028326927040609462858330129518672284672871451529525248436391906010128515138429213192412365982576798963074682618071563526116700798052417735387632268545547165050737266187882371372833083779378405376388183834106564797550303782616954404355296156013066424971623250022586830877657809480883935357133774685643644103462092789449574172960635731441061692278058123617160212119792846435569515576046176901789794856159566807906834439611009458138953172032038700387887493624071733079027303484021015421455458140177431044609429286544421243195532154781797062560675384770414270826846462108272192734347848790868503379358520549024729023706443660619946254225729729747143435165166685428402387187229691329637502794532485769669307970608010208624168826967246559085224103587376131524662752692780913040977460041300830062116084186138823274274333766197843151505403430496999837410881840440762664308807583301648788903827532214296577173075349082975410010321267378305128226312531483231699011800011762774876320390402894803726491998613539656071421639462071726625646408988176555384814736674626732816760198598581056292861129635208127096879534773483763750209259191115150221882588224838850274400184681576399779319931235079638536657976305058005252896276580118175734951222930338296270922253600691835013132180531002517745981320455057528058618844184546064448807387932470461778128720962337433494425012020002140318523592500019832320352861470321816928430509697713285031872152753282962003887786141206917485631933675778053711696069254280208473209250769774315148798924030979655441558424392530517113887675980122999877835841421300823981693770937253613428691422040274761596995788039079052973006192815116386249526891469013861236874976082777937438740514618387870136385609718611654882082396857756650218993208703391583344476387173184668306347311534592111535013083167049996763723271458479850981845836030630528413668557398021214187052601919019692337428720264338964410329684734239112882041465148856355979462616220397258611484877927340918635497441567267731066874671760250002835865399967122325115886674034087446842498053603062283170878478420305375076073427818722040462095197994314814757819210492575597616792016440551589597624607509781721671080006340897996604523678569448472318830996214860962192004962163792502937773162834735021987672165089426065676743721747709595504279922119752321574752820557548692455642280722479839473433864111154508419967596973134643882149283385055491428173174123726629450067664110189796822621164190818175078362827983052768114126968758471480150544748110840189338211134275961290252637257399829620098951325400059333515843011955233851105312048802282977962119580770645804240114300293697910045439673289399304043586258363770482290900755960468855799035425272428996956421536706502080108643304288844332493798067575810057767635358361124685414251570257413073513135581193715153296096229728256284977496033341290962913636476570455640002270517709007391401396262786658716456567128345259222267257408153130335590512838147728745150175498106885199750578852789168931374543653469707024223911346965467102798627262348667125365537241781354208376871100508762928547653197100796102740996315123651625945976434839961442355682250840569358858350352291635665071376174619138483787909912390712384086947717240102158179010214941925214932675264811612587935950872372359894840898629443390576914039800206669283620754555077715617170935739176071341353244162491756733777242353185805516316111978424062105210300338770953156526161419509100360977435817712669157851450122326391511080579746104448035444568703255205318562027402304842558437861482573205330901972230619923121319369053879144266626346775673633347879231338465284698841632608662448851869381946793255653383674592999441838691051726383936617091743046316800145106449304934466809787085005987987002012644065681115661111439709392144280377725913459750166428574101481150656149903112784729317730791236740176177350081070350256646901999655256879698320591047602889594479891248162647833723849531093883124533049410249661627256159352156925995248198976032283329718034857038318441642616535981800444860477378801034299662771842855860999126622893217449284701877376520316415914518758766375865796254480991943262289431940326780173084358366010217119599989271341800962471284662493435933113302693072701277807602505161729474184545568369072758058104146455535786341910874625321782623200078917616799220414406713617253683544100584950972137103784190331844917072277946930053456099159027246331679366481975513103351481709915245347084626458324747290172097101942618899167553243630654987114922117912760394833690366298649561765389593984693481244513596027539077361020661497211103190734509585296276789994633698015109032127223497684078495007191645330140601731249106473802381045426916239128025802202074810664444957894715197131830502130399043220818679820432671918145248002960379053243817015562591813497044596728523497496558375372089648419404444598957877446305902958763305943492218107203442175699095923895665082952105279230721042559055579433785096315091040074168608526791859822038301466817463848237309308996800103392671586802805814982958811795903571794820996529669977272500128997636826829046462848967553207881785254741557172533029876635988200035724041862112314051125417666021486874656145704859206265218009442861528514556145621723530698525540577007628709358271087811211827788208802750349570095089164909626061367560069552121539325123305810512058555396256833227067602946815711364626377052382046751811777386672946223083314544177177059802197587512036847191948033490206225944153150706560014589788503711989291197976911638584782768515943695034165904149732848159141953251089312699647015941125316324008347008150809551690995540306362362516221222946855295343415697494843943516824228562075926547277408616551615898188584646160222753478629395751622856161396212763970528483971602053199100611016817431146847943805132573911004557849628287852260904837178757152231254899015264812687437498217389373822404830576399043426089481382147600695989899659916089033505140628967784687807231908279078151722935733184131062668241068348537255981248135733098320082306449575819523134971462354884281816930658917190359151876423347060367149545093681367898048342651314995100898781273970453719296869183066102333662557196631240854267826926924921269229263214641186076095704826034968319054974908876559090848102003511923373731616226877957019337793917003091827840401517947999409597887634996381599019734312959863055133536341659870300225157238529337270955589664803613576480111328728159010235027407711426897856833293233620855904878615101182316598306599394953596563642733026745626243281551156047522827882346161386378525094724408182277291833586010140323460469416539947619827860325290168307560364572980345207328280261837939684144983766473502246491942154577151737649666978715369936841256931296305097627293324636802965947895519965238871019123974419843435772577873806629436342414225496309953884365991105212978903742325107730358689646171295227873752208571140492657228660076998856831438782998830053386743661536681687481386341795482426219290368308013031661138048699846788177268209268932981257687928091392467190368903601825045409818581493448555854599128913762505528037023863046322222970072778159173054240519292206899809277620556040894091438573843527400105222108636545350709161127793138577767076949818811631600739639871109094184102028163100681726374577934881553497825911688647566852238629059669676206643520126721467651871857901849438015842604324851587729854051613385448835422670089386390706303058244784976905079471699922547395933291188911397087980516725738655318782470530252504292144534903659066883663756597408987384046154087499789097454998677794722683569697158380370142965901182469305366033191588285804665290039846924161631967338211125077502023247798366141276277249480965977721090123538238867763698939673547867226421955185631028696004952007258530964914693883189735149568180429005221165253270737602192788245740475776145794073486297378988312134625474816989926424617814713915792947118801546908523121551841567659843102823573155555896366813833644214426901736133744887672062316256359966451562633578068611978216808021703276793024833465328520515799910780484584175972364550413938648573176579640163959215035256907211976674660667151325091136626196166903051895894807709114406704668531752191243120770554008194940759329230240187960952110474103077309021190092919943065083860006021482034385409331347995064531540638527351353473482489454385542351318263951654036174871690594350343019843019875885615608810704772700664875341986002221585143344766057999008665764911824316506328711235504046201366274988934657844138520631429641451543969357073687870643024448392855572466440934871701525868578167280736075158313525209367177562473802483390033116074115793777933127093982723858041903949836017967513742312832336260443621881224734563053143162878525754815914833816877094517322296361360704038678497441632060288743680872794111510119092259264234124522136942240093811190856948841169417198996055617536796092506836974333417189431249596566333038527517439409820496870792600102449863732837328871302500253959544503573537905453228966027211499555582611603293875708906881406357746728300820774363710375541946047977042922868291148551151419792311503418444051253562349036962297382017230388598039855283611730443537943090978681692382541339970495006978266837938204122646576136527936816964238436402086194883057471427279279872082117814171079143485208740483309426615674224352629868077141454099609298581636166083748346410081578816476150026358935742510783467979237335076886892148397150965392442657810931529084319834549472775058098649182124317918941220828868760627088322207781332504829035918819945614943268297272014942420550268191291380024873656385065887765765721190232864596398167607475440392990082141925807131984559790582954846971389699224841184549026268290231122844396861057111139015215201888379630628246336720276223133415100967524288415737598942349499465383272324219532240756369986797593680436814121587399797824079767408177903036907856242077133504329571817408383136949377952122902175851364188533442082127534875616370195446289202887198397187437488582562353469542931815534329918344380271110329983042560238622422843080707136917578947265814678237918838978388274523699104108825200978582736821644201568681816425876563231375664667318364654644348275462584292587656243158996476578235231821463908207279392309179858253010087770620889044843229251350736576830692164645787745910850850218057146229343140096933482174009682096522411105417194524636463902860393206792943846755332611593157249316935507340578205300581465469802095858038742894093216014235845783140811068545281999540848163469053119045996697371833787134893791532728594245316234857112482105179479062429822801113981690258925399838051055367879990321737548220242108950809015370070030028146264456203773059915157522623500908920170723171784200551201973655878470574420131632875830037083245799378476296815747751473197559343770172024643913927964695521463775232436715567137296889884166152671532847916450095946886252745030057877502368119229007107571395986070872725073157409026704007173836811687675686592813367409208316810572138517859167542431135742079869969639425427444880623326448058633525096635270193401974848584877814461949421524466594297581598900829112368329702812819796797170074160284398388875584941949672099944117087050096257584301727234871571443314505489744161189740019731255270973506939328573198594338112706643274306232798180523260351696116426167358982359636310456899583918273095137098709183183571792604046792180352602135900204602323883215580518411779365623026774509477041891768697087671729721659495807547128387651732321442017609031174104421823305078083795908802621562220755587457970197592119618473470910095158218387861964840884517288819280150318719742575389907605352059458639035773609420882667266523764786799761468725486255141738560999377293475461564052435581168249532527481786889622058634168769097006354441386012253609479214188160496478128419344869507354731868513166147446169279132697196691276310209436960288737116837365052133021989818606135371707056969990773478404463703498038873825299122259084742158671279740770171500292365972026453083327296599509160035660529520953202333770326008869648228682029712397728178099553955807968546037105181465516065787746375329506918541253183772076286442821101623927046803900617758799556912064856751903512668018977061606402051873951008024335282785757654758158573664987722402780238220084158339989721423657912212647929202524072463252402624144079339356204316970496025078763402463782090255168672445862722411023686579888115473908172394018413107467047560604897692338314323904840333162144371023779630343363478722786787076133680212168209152713055952010082965856855616092175335778397409006711853106954020602827498785994561203819142112445738073243705206103105482015470937782881947601087873461896824833258151204289150302321022618990258648955674941163638614794720366401193170753694031275249601308800512151598907205152995422257570527214070579524547503459984283950607625512107807254914470427152842680177931302185823437519816760376058672170398369761279091498331552851873648582190881310781142608320207572336488491696573741092639827731141058774354266072376401008637216024218575240060117052581725460860502839740459279769403309960208604538417069396378135411878596811727797555107862222758222715568911538163447698297204551695254669264279550214259679948587899725590321230387562577506619616634108570218721840244217783229861552412928670665027529694517565958399806293772612958530533760909518916725496758966960596507351967313427607675525351952178437373097446000680258381299164052704893904509435351161022468061102132862781457534988825449781108972855106573739298040806750296637974372213869556593055785605741797856405806875001282349978069404938030917385243433143579924264402541044142909659427466129500457804910085668210585809716946776194982721673302517548379053406070581758519798720011258072146200232081349731845426772154305511765734143535693766697098877046988251297266619035347261741177040571805244324366669088843003460375099683411457770331725968677170390974223548554247149474174622792721465295534852829227289856171003305606812507805139217902414887391190970370382045930002642755821202717632006852663130298986679717145942218101885459899849393073638423257204023655641759135546718321719913118431825920021997036528199844092939268865585376698185885031891309445761613517261167266070248557108769438240457959345250924868716567499855911119336158457510928971782091895923655955786968964476694592607616961429021755209717217409115880046378024336639161333819806065763129300098422707996847787763317401405634348468041608899020445894662432582722949056817609849034444909898037280417601506170521861462594005649000796011955276069086078134029037125121224950857528930016309573483772959488532224816023099094509902847626200831867435467716557914226432785282556691411600816517699961155099977497940753622308848679731190260338299660968252780737931918037653737589370725572170420095677726344669659482882859997459798033798920709951863153276650289170392246687735403939476697046410022311755465938731153061076649786460614115377914022852415974674924260487660962750808378429062353130336702826939477106872755604583145023780574441039612121757685704836298868194124422007299994392782362028826962726163101619564921129496910226059164941526346890024436189409484950221315572384312518405924008297534865928781935788666420893214085617375607746786282421248618035667803734041835416967445042698732558349367026052553752963455199185234474561513738163922422113834965549041316441706362735790229034307761495109257446674679571668443733336827859038544496845275626725491064556459569039182660709337703534214402392627924817932273464468184786112919796458326745724303694537831829288513193108126785531105777150975736124648044329813094784646187777226714406946129019005321139471565617115018695585587615247032511840655969382967784642414949547819356062098920699610662702260600232281109841333537788719843999261254562143286538705777378354854469718742937141756099483665839570172220647852530296847260458589823323371152157770078409235176430419651170761444710685524971608627064356946469938697292784723447486435447817497260059721968072851174399071892275824605282725842650030217637744757756414676455099777486331482825879098255349404404126601856101847307199197086678623624641540005407418481432427646356064650947246760927783308335132876945217533619502580658547888435950311244046411219607807538805036670876826136184825156212584081610427193076407318519611698567332891098882799344939409010275071984263443265126019844631592727708410275310610821106516124970368479382510426031779316153734450182107171987143887360724037190649634956198192292220255472469718879092928571254668505722579822955054072019013198687577730908195789969817462181491829653310054779961554744380779619934600841994750071430845304223567927057501001743698690849151720006816079483820479097886513776108496444911843381493468397605960012193902213359340370063552809214156321195021373286106104100452030638203358033196790022749832211197716999115059352642316221506564039174099539851741775382072296901848435834534954624212759338883967077740448221767350571814781751933461158834736987351835385196934552391135773299909107925057227955066585701931093252403575446273065692272469369215636444456641126436235851309972002527145518614270970142011517509596765364318384330891312966392004635112409071251340105887357888135027789876988138305483462758937578804240861759577626495456611362383335403576299899181930139186292622422798747537331380847011831365856833541453016865086660034724221109480569964072511087121466580589788437068732339367780438425109775494205287408911862935834938556775297136573294367307403679484451555945697400381177188643186356358650795151335880781430820831736137591017995087183960055413033492049447217306373517880778897996726348677844489945927574368891759851668795673783535496414040886609277777116304615834042351637578531707128694249454472265652206358658166003603764543429901801930069653464992881071235017005921070071753111916544833636555701594019222115130719791217082545238176176098778863354161982536616752634071228406358714359355459903073896302594309806262641942594212575070907217673944345078717558130157134758619794776524423486596981214935884081963958289492992120231540876458845202701220487314059716457667882545178216744083546109223074423842991774801939943445210590540426537385732445280491782186952180187486245061165201118479986748832622446949798987969000080443873842516642955033065331214049713612374868815848169109178182037039803784048823475944372449382890186070238733786156157463277268804965106729827629436345491999791571357609187022623918106218485817025171624484831013567706011753383824327465343715992700133547238865607275940850642516482403966491761480709941275822046851787716247530800098866920987667301653121784735515288636047820891768725968784592970978785753728265744959216555961029301538373559729186507536273232307015423758302248187910923956376322391054928642500050542858417454892149332306008949874889742030796706744578814182856177486777773576523746787124686878853377168822531741892427000002893626293466932477195801007494947581198515738153663285620623249575374578701600271112734410718561867546626460485890879217228262374942672220999207642571135796770291814352934028741074360800782233799916275537559700426463553056488679609006750675556838443827485046675237250823670642554448295366581303135070106585135347762365693926002819476942402425981937474728015010451232397216055329451199738078368875914203002934032326502349756101336977056476406652315993134161848188824832678730120455444346107149704906591960251918588080165035339431425951511387721218216494880201005221952803124579686366054656972183698636090257140059751613364830801902484569102924835187376163025217127157597011386166762900933419282930824460668855686811608909012713337621541740162025126034765890544727276443192558114018458118146048010430566246912440289284506907368556407017279784410753098638245645016641809793891346621000868658569880712005821698736789107921042456374897443431661186996274958755989252455739830838751252646964226896974891787789617437789214870597453019493544834175947460402926967616839584758400220337339434898954108583850886967384039929400370515578663360131799486671208868653860693849826363804842013262376817245301768649522883595987554507789130899636888264255572198511231272199183775149379694581866792702058611799567859265989349921470851190069110196667784420304499429001770639544940916323097247579719690515487000869445745318873477316753891531528302254277249031562766965815270887685282876881666985571409881808153565504530349879353568213309592823367419422831333474043149664785984526946610950099757422369362436667803409982897471973063736535879233894415105709662650017880725677877644919715736038517548871201002377878722321015595936531772190704895144039180309339519581991182263728558266920919974461958427050101389872994892554503800541213697693969367609655190264333641664961565451770248955818196348994806001176733845657478978836817835750814898886444789938621156103247540981039419064094055568890159505069592287255762128430632629526238150442508143624840088101654175699939492626719233613373400923679119457900401059949596142701175929079100322459659790946211256578100583686519918727120421493905932295786563146112008365999601787750137979484610314196694733443148232992938210620124621895988381646286679659514525497934770316456980292946471968031800588792249239322945956891951710541224103580707253924257713480013911374515739282225298694096825643733220905148581394705861927780270625155803795730113329953502343229950095455154625524231383979358006985972008085479750657138222204568020331510532197407528506815743488358548736205265448599438816208429653747151863643621527645936507673274715320457915684277913467947997399994566450515328131715501292491881342973317331293433387557087543829444033218575021879821990293442182779293827980412229820003350951031832005657611824620991399399376375154791087529168100958716428326977492618517457623685859575200363544607619729238418189899640096950642607505639934871235814555825689806848186280986661504626735380390102140491036552741702150217886133015470141069280818059022277690299619249727597733318713231413606618107508224490344899235446343950929618091297512007991039835506493176432486223525244085882851242250056451594984709584389814398592512879800528580294629341877465816316206234100678850884060489763910126460886081501806873010092559267255551538095920994198717957328403301250680909502530151970425914182773944854071318984915280610111491132310778031110269410379487641725277957196411501535962685128987086280469438491597451665334703192928320223548732051382777999621229738245273447712368992776510143103874414335273760379984786337519111209688875520016996885174836980076846271147423741556203491504191742537001926363168471069678974646316186090098723760959155748658776459394286697635842678592744534081617430087678036986027459093578899585443069133924178232644065108206620313364168276294746099634965535882468258838725648439801480320817365380711491659269740496270773684844879528803421162087263404837675499411988944409443892623848939681733995306294667964708333666176511221250834793929100145172174466228106875507457603446203751014993597632112163461148161800393702020932421910125322609371515898034303858089508354418136732201999612630236349512825222409528520521503491642965996620212367665515264630518140740470425229041866119122619572537125993025004642264932068505304034066792739262041575341999039330468573540357369319460212799441885489578498149834270763697277166893314372672797284854862085271499266368963352605699142088234639279858947897676678524516184139651966230918263421648358522565145654455418416981925773292166204046379068344103481657819805678838460023548880393673214957528011226467890072300092120222404596229127955188177441983736791830445488446272949284763660036944798014317162500406624946975776168411033164667303295874221836571100321173269575263151887689990789291636065365265754642565953214138283797220155319482390522557191767612248556021969783916758947634608198185781600328140908908389482496385867175504722993532263852960473064319671625569239843965797416977487628924721361588621109023714590518898892739110482769280896694533344393977260856751328891542938708557192408407014257354886576924420139356654537430159569601700195608291646849355797217448965462822371372740820333911624514967964248351308307260475431214058290341594648003362774378551892247095833770324970565190676934296272784299287893528861795615596483998752352835930496204795086715009416992593625254556730564010727868208945931538773221008419737055045975758900950240200417778426900928144982530394983600374550841542905226133541883532316641381352232604619847352986529639435053673620333387824525264219102049490834277213593218439680600468284128565070482137603439285031116727446652620215533640908912551181811380321911502120759144970349707298201840702122754021785060376079854543560488893339146092448564480617169244670477491544859383231851235270223838998734833620551325164941448806744160363029805005151082963374297542170979199559152801886391253897657219614786129870397976245836643346015682520528611976400851977825624893079823832580002865786262227566564591317841928722914365969830150597494514933025291059503500600632950436382826921683841173020294138646032117725076171651164253331808281313926913259160371198828800042468231389043161952915291160205892700785740537201457580435190102569743204531718501021627675018252090490524927830087977216947933429350003219273123416744030905024936552178205128893282398784897324207993823561418090134403686513175529958412693643406946358402233392149898611156193681460217405389799094334208137899259943000653157304589567085777440552844621742346795353157074977944124884882325140206397995768079483484403152766199072335500907605268378933563614646070164268976071113462837590439128983684666406665863085821011125583700979257664587178599877520093325222313841409777035129185364262567964579394561104263372860079556212095548618032611150895159748737596155097795486197355810128802041121569316898690794796645672834985898589479247710803529116592610636456787169110485063492357326611011106127405610141701571623170407026425545105488205540106179335261319688910108393030887081745490732784290793579382995297907945427076533831658293003499753079233173383921701402668234574541485417614534109145979909595316056335956033470611047459826017223807350873694721601794090926951169223441789143689547406230073901872752806070016280610852782384466825518798635621582155605291225172419448948399291027124503908901155015299344381909957567085466662644894112792323600888679285320815438535996052839497240506508172703617079910396303163844636069634295915445517766154378148791803510375071283271375903189731339240901533670266289971354188698735430641320166304902381157832623704811500111264612666586182287658695310946926508543877171024208775026890663113853182010348993121678592713610011058207356137396288166578265982166658868903169687172697688978290527575764452281896377549679335059248459755655333392317103447675863976985632991151245954059443657403599698736819278421699400757612261672347888306690009008492400663993668082440574292865132605479481706807466435346727455185727878756503114846417326857628347008370332197234885198151823120282127345790792351067738967972028363667836838078551943088789190856862530287358540609633245138521281423564592940470371582557586970634759402102186155061727327076051661486340583257931896879327895415677287352048849295747581038281625969573081407693867772208232759805376621492722324606507490409628138868652228010585833838521902672583633702603794711057929608052961149666757563134846741171985357330514586913126266566841805832983778621033124226371306780170514952562545606335616785363765936827961553326182403897135420804999035944308269130140673377879935931655952641609368237960572530111621080140140344651419325754763283698840652016796572124687849242542086914367904507825409897249281071584658494641867151955081295830833599625107815160311914125179712334996300215164019048859967674723901378620737179166191082475527104183510151532055184560502745188771350904304240406290615471838236681239576195387279706618273470687189324301058437367918110807704463741899734999409584622836123793065301301927525867872718902037377432597325744591128436141618943675651571974981114470896618986235556476680067659323979345013528659234409397608219801439796069790984309767494960743315124795192759787205834694360690519107308863043658474280063729159565019045002791955339536602458949945834365097978978985428899694014091177652384356377591121378581249146066960584809277563130939823312371215807501105657470846695304101946898292421091795004688641427389813184050685128956630303939940208700512613733990435151920874765866747927203460869449005787515316050871182392423894166184406817480798294753442206184161108720863163713136925024627781081545433312842015392298263774991074681711218247472706777251282488629582502830121301714661594096278984829601104029155979530596428046434032875758691826808658146737772904366676155163884189512994810442015477030460008675324897314222527054970624553827234026690902385342393747327479423054795606711648534293459157602790348841370749491849428049698935688612996167560662085738205624258718041195415435699099650013914596706028657306898470917635188012427068975064136470896562570981013856303864591078230922892032768815533251181449467313572351988912558859163068896643408858219010827670657844669738278045333969064490525148874077515707605061079858198521659787855202241098993911448270049297300135818935440360959358280816444034525250519393811906228779575782731292233835985315118688659440189469740586562218351690289056637685876481662507053580720520063684791659139921364566483153094170921969845555422393000839039249636612581883044788136317908883634148932201951533359832297907568993425216433470261356536940555849385376970217915676213637389314256828910556640106749941263041213103201652778904110081517006362528906065472447021279923144595746448196959179940152465717465097172366690547836152386247560874328818851910108045468636982395563583878828283090001005066855214143665633767386264199636463990604728469903017987859100525620247030520774913289136637897013246966021678769442933685147339592907314573263075204232118747816516789935703587655129717183464921733222300700146727369694100103926163939464760432462111203571267041951967811584407580199878698801854867927061914940961645203332266525243090773592475057830946555429711924197050114028040976961510042530590123636221710947246074392885956806895335726599362305769965569625445039786501487402579908011945005047261232734884105917685489601348211465339534154549135901128128024836052221453604547354415995667417895765064775977547477283799844992867533724839353252986205317786732347715137566108393112960612520126679967892649311417373827067047770738004408164477831760042285037173531668466234380745487696193959442332018502144402950038347880391347223180985335419208770782934203225890323611734104037859900350818610565076717506007188240717397496533005370066322358161482702249547850121735076342647147994162752762631819557391851968183343316553517109627588885076883720013298051053687305184002131319611801095458758137011630454950883006017626894517712574550082453914675433884947310923974179945317706898254277022002516801461552829636515774798860097406203246167998268941663623497924886669096860705985031552210715232637129950252779272948740638640836199750026135647792407248386934287647368593002271521404080426882905364780135216952936449645130144905654912482124521047470858908819566146593706828152704331417614360324348153881177502581914978857669188492892289241666417323545855616057829188769597158605756795054798309900361854670540773526268872923901425076656580773765450932420946131244490179046024131822068356717871616274960300109432111659339875479347792654817946123217511821851948145499443788130087402613796470629562581649526541973997120912822100248047122926256483553450503167959333615385450834671202743584417698716355397498630220201200079736199331170026667425071183309271480295451177580466504628330113357551685540361455476660716447582191526825285457283745446650125818689920649273298729326006890200707279388001575737274300489779213060140390031501762476844630469213967314448797023022003759666349056148361715817709411577325161594901719869278881478566652869951733070975617969842284522500742183245517657518907165179445801449288749861750655843635687289391456593646085501944154061541308366037473840468634680099594178740011724387878463864565667634532074635215539907596615996242658465098362509220024145619778724805556248898652749262192797441613287757155039354637953559176498483421661940018988784496637101119822229368838260384495555663743323523404044597769687775848928925287230972103488482634342912437601284753901054899386571343420076313437819130938245944038719053070949992035659396678979154886516269464400891468161485479235780272743658014005408938764404174290066573107123187622694877981463253608905851901750013153095460129331938763198934799489417339046018973887394795443034729674446928720750323282265947428201379260005683401326692190691481946830725433038518760684352352447869824279372251249695992984975294899920471013224613986888125787250019557114211588666345457629293923935875288638873453722846717515186153589435496875547184354102658208295460727522680374857205956824298808430880263111348073757457341274660591709902095446201867136132693588556611137118602020542622103802561100541860034465889381359967540904028431342667678044829077465361962234266757744355981382683431551841116503912782286037862435556807721036432492611450131755894347504201218619069355852500103527172038936463551253709827712277241088345367511033466243649530666692626244881787442225134254947690071176042816818641007542873619662884958771806757907156917078395048439571882507957384674701509871873997921896000509048397921128226841790037868671399303506191716600712319962118529793388192108900917376503660828116007128586490599394425711164837426139688741063071782668457566810725873781808726710677765671518493124800541419718620845820151832093210154229124735823822516182794695766055447139269618301528068207889599273098791405430877747642785692612298363986821464648313684635512381103007606641525946995033613246699546620027998468628990449246001031910340739374705121242283964039119265650237591276702887246195722585015910660351753400522387697120328039725477074767910037665326576022632349884121314778761027810220435419728249893953925386190464671202918391219663124093380937034092593800084897628248373017831182474910505156351803727194415443562467569753669794775333913832154643338759729426787854785858624998555096346156380810953360520844391503582611342135198483462021688825050190216020859231507646247462794487721714066220854379742952437618757553742450988850401243835010111982005981326031072262454949001179381344289838847718593888262998688776436367435313081553180495242963125163419877233657153033716935305852590668966221465750293101833124669319227906354058966261317471175296808778576779274064887221558725533715961971238736652708506891315872343694240251806757834189624553649981300498194918730485642322117958142643519870613832496371744873640071039259867460283136634969842306402610233947490549871756633088577366540017762181090359298249307868957088397279816889384732046011614911318676070685069782924370155888991793401634816386833875045078752062397993843638549657476253320425139967538165267196784210625730264702788840016922332310910584115407992219041383122053458675045065427419600329057672638768642078767050675078977196279431930707231748596875139062829443330315901704426925145380054580586265434668471543501863848608717981012133015204371339168310878239424378746515677006860379969567404029180411850687823392670359588768112039503607080011754641947290870394937093463267615216935413071871859586463341758639445371593076695793435087028821999998670262510389025530208916980785196336503766095516059657115211577558129718470712692998923113834392518332134028006673447384145929063287946892430255194526003805385591814834199644286220932494959294207674951902042502135801337167249778193091802064101791353943849039829184731294453699547607855612234199152609042107252101839860618774570176599707315321347395764329168777035191811593572539727760491380704197917837123411030091863224924353365554031304608160768073310264731264785868241805767815203052179152894011360824760015376560486905463159931067409120587950845960309042129722593755107810927168541991412191693940844682532780908185052822299058909510964267738658232020909215952226271606334666794806924718397263949253169791362056029038476891068144213232616675713446757418230459900756329131539130904976443677706792525451884982077179492971871333918704824513122919777927705202861781794854644646076385381481074082101972345986894451735241424949972763271384660616505007802395332002995739696349010129527568901498076507704640943842303442337133054484051300966409430270222622113798534964038764186258491638522504722395178123950531303257262563277721872282285768479821610387580457733927719694530292599689033153833962129096202637399714777452246108139674276439859544095824500366240763050828013563530058634438436542687072398448311717033378489065290811664260585385383789725364890008545243474515885234908021463608966120019664375861450133688208653260179129201392759504368547345635008419289818651312941639945926974255402652919121881152945514300097043737111979791273698555038192119795362846668160555558187481020183476419947690722344564903774288969804961187418491740188095492871140721750260050994154541386008145638327598478264352990430470324833008261873238511849985123186227538722723437051429065839119932688101717427394946920309982147683203451647491234522253417207472143809514440594759607876809545340534250389004082710962839313655494710696540007433633980952001138195355569322074597988310646633059429272168707053324101322114812062200799475529983245013225562578198387324459109771319351912622079027344659599687924802714024063083280208572321222316792296841874737983714799352764280385084566523467057647345501329360687543545337142860054594886602016742612338427651398906104171440087748147351792845176937404179660618085810148161648044784693616342684527138377861974732450918963527733452510741510413272411091280717581564530453123226602236542832146455554424618644997922257459767290765988766314084645826640814599934902936160947221355569570107663310625043266299582046783568885662030907884890666714785768072391678000654493146912369024899348111418104247570331263828092471805563928991736190633473127088498028499243997477035730031697362426640838351823207815675349869309265890795599819464687690567462565595072915103339859077410099351177248916921703479242424803149286408127977945313964853992721274116493783450175823353098846883573606520369898808858776656768779692793107119765754884969932504378401257328671927318711535165760882545500874916102520981568726271543639766834187210932804896367397185824412900860831432202609844493282081928290909209221025551383094649295620374445769599394834484482680455530994579632998255221987101201351851482210424815491895068223349488462460127403868250900045649672537897280722726740939258513490819795859612750144710601370084120271932622607406044640403224878461952154448407492599034409352388391457177527267690285372023044744277431846657339714485560559604738388726747299338892801269499262531025728258325521863204500962634758799920489204623051976923345620348665434845302380955588592282132360264239295826149921897690114047136633381437240814230992028358566651400531130604616821022930261312728905384257545393985718050776553573416691348159438624869989287933062861669846728268604885708819203852014879375316229899972139327439495798088377154880212056374608783204425434903398351881005331982680162575585169254408375090383510764012827230194536815282573513062742324537418320426162976534697472348742995657289453561766839020336940042480672592913393055085796593773507218759310617946562197871632959385660127451891066276638510328858765851124842684510152688312447877248091702534963308774195217577540744666623264706808844017170519936518389877128950727767640741886315866514630760629444710137000557699894779891385539971732473247496241771893660029951480734738123988438524228455148237851897988552850451672360265387829461249019864004860565285982315515769612762885480086254665887648763020829223547051565219567449891857796130605114268331113814012137347320136266117654337485767286290439357259115727535816233486248434082124871266785329606393544430616908021580803220113414310905654783818925849739548387211079244084173206836125058055206294372039156973314547101053927981123133948387924286056227320883704742432572826974734021412089106834874394084060816017939289690044597236728568806882469783992780590763972917518729510002301569920490532492539135167156379969581414303765076700767931124969532735322889604689224615656767709830571228730279967325350320312183778600445855508026836179622687036713671719494195333766605925815809228382625593947069126304085197104332033633864663605919866793392311321906820411558834127855336017185715510227389106065397907388874074373637131661011141490523640457595676758749971738574058502780177621729905922988191752083338561305857262599269521986119836527370099134088387026918910438227863573666573259458903142553971540442063160635406282939075246749361160694610818638167776808416073380544696507259818473463590137697112072708507771961516011990095015294714680733660368063917991832258775413282331177889551370009822368282904763473872873258884564914853560850798888912616570620917855789763906441299798650769493617414694527284665247374261632567200329434245133129757859448285238404105324523390189694464278687823107977978223259151975706858916085624223019863196071822907536771739753627157558306616615028215740060496396321187349875334750833062554156028625684963973545095451548606085950913296079720938206118420756386959050700767517621622755108499877906786713065651749629935680731802468194337117186725002458981751385415650604458290715726005709553351917334034548061191607720362696507676704495925700174390202169859552148602564737899892494083792191313507519376409175477235372045922136634223168547648594749522299427854182683426781971974761175635530321742508501961855416854835888478435262502324132261571752386990473422160618205504676782653806623798919871319422272709379428495646853609132749026381597752997933416664222625167939015045270617599194035645958692800371654093360459326507537703949535366456081305636528888402960578573720238958767864002717976721960003126301753217155981302291777807290019584036658056148521244194427751977673529332888642679166911154708931864710867938088777906393684877332396522072065629618392840318200417612592992095600541471085813175421225176412502901025618324417830869057235906095696293546114515379910751619233494993015245252805392179335454467545234119611716100779828055924790594444354462553574511301809383238221020829223227610088070112575177549500758424934276633993607879679861479477730499658459588832438747425710128124792139973744531752824769569087217657520854467978045721477777905067116947008887130078764096668126861377862963281157324147290829262765643137021622975724670257064068805807495048146959254609631449283748064973693401522728238251263869872062726358383305049951877993659505763961691125941407532547177925949700202522573045609155684091434841027420094826503448574795007431046481547651626530137270456418725768611995689131307447539846854121225551602696348828518952257800261766047647602892447694221338765800340602716616218747628553469249673364555852392536091419336247397852852386892945345237526695782457030250661354771572554831752149063989391176645794783975374215361186609001392885419815967002242970447360020601315484508114924381736966441433603756844203245944111064717226343235987692185872328178155501167720530905592323328805416554192886703547451584696007145724714311443045235189690236896838345135269943440985803994122860821687878723141434775095124813771399700217295332439050934902626405702044330284420995696420111797810856143571562811408921574710620669450953260510913038244449348220254842684866101160897788588085518071858502046792212668531483883466432988906359813335653030669565023692773567283596031171435016000066009823857413881677495496044176512285421757220643746607129006945944326121201910306272875211488203158289620366206348895904101606613009640576337824668922019433514677536721451119928744467965976003310244631185117932941662651836606014271778475008266964425285233506299216761100674135150431104816479720584829204589222695046667429632339505023907393557351530087808243402663017553520525466364263751887950025812825512269132202521385322610024428227286364431804228264174196677534442034204178576634294465192800810261551076263183181396378036842328861191118782911015191584926840661351828084037972214477978828810658227160775368423456592370599190416059544007734978226728671381972120569495306517295513388735962704726663465512768447440799199876299784646122756251508429275579945470989773996537452391511904468640719724174821253024661160394931568872691210300192026362410455448797112348727408224292544322696234736932144672825427622803314156300987012206470709555050758168915860423337795559506728165732013512318844591569391418836620493839351951462962088074621625836682753832183189981530857956347329021628732741020555521256415658531296535068799927525817998231879301277545360413979505905595488833076088413817871087266894583503356950274792654322339590669586219982464567832175293073469288180058882669070092852799878750379336275462594678504623004281150610796359320269948869458250061035876151596890533238214473772759836631040067712975529809590943786147553543085593408275109122566504314121692875161509291371942899211726561773769924445597237641831781302014822485782366455723856518604761312227473858780727717549450065630761001893719537244440531034530945220451966246560944099141386636066991559281574665167080825184473784359258053988353783933523865473904440990289914771763921148666344428751158459910069993747526075825422777682612797547261644825832498814276857875079196024310303446586232907421927068345507294119820739954353131283164102264287234695380657088628676422141063335173934140306018569619683828960459132038449420459578825710008864327674675603575764711296533478253437207719119786582820578298521258227533570418379299480719422250609632160408155549998695289083376813991527612191398254426914447965274822055035102938826093917769411485052893238322874048465480605324355960576027285258396341925916239636841379656409193390640052943233430502761276809495091023225778261864929393661707893127042572265898326252195333319373094866766081926688080894770366356645431314113329878596403130027562802261151494149331185394239308236149398314880584319351544297334683978014580833128032144563671595656682025807082374638462688917007405989465757810737200606977970125041774926141252514113118800873197626302819495507947980227318007715053621989638509188703741181531429790251997574814345665193342774827721840903940927536879427801054252012696371743094360628884734583379542219825616802415202211504007393422256505742987367314373565913850525911794581322727368803027413233598237133075505246593936977182184989672426455772333031121821105069836184683847641034145747301210622579378940871719149534267825937442625515205130361829122141537453880309353252751989346538949419974166356709798553663992629082968001912225306949498402160320613410435870735289726520497905763013642781513443301863736033703212091754857527776442006667948411795435132039604508210961315942897358717283889228286602253062414674801198524934363871284722479788279847679232355037296456310231850937773832730714813774475116073659910740693191099887624334317824000305886514859453636384538971946864642371228076775107217582780925349837402862362868627063739491420819579851701639525510353550551927280690014985172646175049235536669870621473769018929928790571860153112005676448275866583106371154418265967812985183101661139216026550982039742528216581531663618251625112328390370309091038022300669681693621035512247873192622433411233680701742799700126134449782033639091173815559650325499898551048713936267670912688026350556452909853028341104277851748364701238852445754780036452919229340456063360510019845690246619681442715079201407054206122341402082670220817199639004150034667375610891840448966785966076989716421028998014205110583748610595967644817139394776583383383697218216548600761060302109959069146921982146903579625152458844845986041340683888391218478464533173562486997092681044873806121184542588307475306894019770817170112146450190304678456968903557753473903415018262139317751083901438041508249423944144891675193200752212039555460127195165394658238996992514482587364519498606900288469426571285586399445731975869989938672067298670285409763446118784584645067694289964116891518384796280031563064895303220896265789840707682991138007377652066816902946840345983709858175792899151292263543963284691193652354615355401401657458251950904160041897787407072886347741676727709024735108289826145769964726299422382226491051371328565992843036266304402651461320847670053221163164503187057666829870011116870015261911149184069585173813598623560820089293640140104900765869453284706465715332035851623989078542475778860467668575524752756230199719453817866631981424652303707298290058238634067144861703165000208696249772281027212720191382166114939035807761117192507513206761163716114588334086624533604818968570016980782590393504358165067633661983386200258147529472204928000227243910491794151322313014378145985662449428792304324276716960985270440048156335351318481991635528442898240128434944192535968517959855337914065495867333123314022634471716597114581442399976570750058818291789466812505571845429403557316934020862717488101292777586679101452696308321912788216073318122130448005883476618830179874412278698120834091767992626958108210054741643517465471805642446520127208110965697439269291952841594743831542612975338518081996888956995356612706762520196801125595288627303852984168278306959050066430882600855436933443567579278681931430064281064245078722108802040467232643358959086739335918793794136012719585289185584644454255232226568721094695455548800621783649202151569461563260413817144509248727809161215429862817989042256333843009552119052584184935962484020962743210673436713768290174324542743754612033737154519930451659889283008063764009333305560683855991938554853132981984407492660797142497615389828607588733313918525668559645624564379028649541752829767430658742773156890012995647027462481459540154850119125172375939980514586695982954397666669048514591372713967304932438728243600122369122814464381836657064517851536093287661843043822078702035112158701408874392507941882281684589221047420885685116578986872316433988755799291002079513450837653438398671689221523587119879882300860120854560507017161154920595564004064993227069782172233587286346220765626275352516248601625137173306903983635105672339699362616667264805325181294960996862671814296671599990412092399769980141987847080081503394328311864232143791736469266311399399178795568733834450343725401572446190817650934283882760739479207509487538504574008662251153696535990292773140011643512316348814417964995075368557818760580018291721276901791323288490191989406154186263654354033886261961378836775627982351645046125074145493706925200297856346245539513782605509682343600940435851931232925971474805950237590329211877596547171272681675226211953115256775063291781688572708673288805322247369824692306458159624762385076585026753398776255089363265678463887318418619717126285315743122613000777796502448400821151278301492629353661537349233712624706311615171271353203903288467181172583175874677012566489489927940668332304452333979970517419045489812618983022067402095902944993633427138038541867634209781202131522183129091553542800292642070567419512954033956601286036418980883211094221991529163412837759621738321942177577307888343323508947552106409726290970860893971401749948816934025475127004420218385362341915960028224233667793522610160622090700592298890710393440118656839420027671187258200797671027748364617005389443486705681505928954345080092913122084271855726337125522399878206872554867736839293313353009624182202547573809417987035170922559029057247833375801850385367645347539804931169807359475875177195840009948050600199288975044294009709540003916541654560752305127928124776998807804559453403085201943537130212883344049289699549418250749473838314018029699285845647808127882493254708460352199380115396943528698090634489449408686853308651819537180806695647270122926865388629789112039089242804966978066647011642728008326715553475847322241873965081175157428233338076545141898885111491333618119970391645611200048416873545303534820595727972491111722419164552286518257678436454282568277696039524880855329667158201420705750270684334670133900599297141626194074685357286160268434692605730756740615330898916981085308793004011085574864584308849766701898390394326801207867230932411606488442176518507420719207842844890921188201939914089016743841950106851591054974130738349200992756685138619793528145463932817382601083865822186834198580222876211443707275509021614611033424137832073383451739551099429369158385321099077096139874798682188292379861257085608331302819104873320390898306186734452763952294889821324647303622165260392847879807873845491752898951483047469987671718081801143143790463473554100224029793341940901994516377468636141816287806952491020665001016846638576478667940554789766691731374791713100337260088702832370888236255390775880148830157042326219976895316958816110202583215569148781211378963090089229888998734473676438280558417389278577687101681889863039686407873533691267504061371953902537410447359854376832833579081326420755332165364679493812823616457542936307995414874341456836588008787170994132442082061247666213883239684102764145884518167318646841301818006316055465928983274384383303033610039252595896607364272356078423384672367735675624540599068254953749560023049213619703809291529143643957342001315812157848196135185654812585827963869363377608376852848768422338928041828785073658379156349597969971114992392969751579638289690777591389341792368761151802937858791192757359859425068818847655087064751343243912667641164799718877448908907677497516883654827670652304965346013172693903574923157617284464447192211383013572284795434543642121994776862817707378794048687879502182393098013874383475890343147453601801593976292546072217597447941132029088553121911793269199216410598624702137831380336133548768977929505429145572338960411806596529010267978187861474878692159908924004556218813641211105416925131934620060900965162452325966612505965219321913489763099355555698540851993571188319887905483368890964722322408522430937795789047493427521851120399539461732486077801023816820804511903215979973651772903062787993881279191841132818384691860989949680513741767790545266514332346863971697193981870622236260159859903926938565881207561531940920205615135855039055251952972410300831568743064075445676468599371706663691042759233235840091335279396204626591145321758299625667235287232957102677479445715573673537975953429374358770174884809958802089469086567426931762955114863272233746240245805650826420327451146342657547710444094221932914606672289950828443561490006488163142760771721557538105475588140857954989511658639252739481416384410021083645680547287477299369998539002088693011857484672983870192168700649965224960859845265816761429427611821400738076716391614082264483741550232659327645005988407435764498389135925960912990681719060675561302384335791786417396429891302726902096507785551479723741897015638630836564788820990571840906954129206720067592912245511276137796493616297726958749965308577465658676405890194979741834139687261458057145432767873187112268504954087838469170381293742075476606337852679157504965200317108077097622709109933948054188191482810461026982343925553739706117402337343845069581542615457566891843505849885654456195463115291818076391364612165143773825801301269667579926110617840836216118430864230495473580571003704392292908253893375259630119478074746438957411628586116388520305952754983738936976664429737145149785913124316988927106165070421333831051021099688515814391209936631864418043957652996531634365046107868635115661861601317363951848378208159500407643105393569552968016813057547207612940735357140515374581543792440710150612431056171620688206635067511409013066676499743716458080910531670214813650201728666418011210716835059859864049776432806654740819138932709819302376968885316422942137259563752803906846553382503717851939381698616833673106171994676115547294044259841615777471242946041375423803513483345566215193877165570732779762701641843005608523141047770097944424858757375831052780324671026649401355496932168546196847915875674243575592015072376490147554288608149187399144890181232983833617964404184289538376937871362552462584518202321977865858540536347915732322308287318655759737217723098947906489890425849918524378690211987660367182785289866183419249542249079428056221686384192556720425668459283632995308798990984756186516984300265232017264852958026888362036394442020059903166963071025090664195115519214110657625213994987096146867070420154789024461382449607504026936797134876502179449360706731147429989613051921180418126660527049235462088179955504628188467436042564741920742433209795461610948282295734536487646261498455285679240040996109048227149707458612224807342623970121559135739560266162205650206675660613464766213745747735739635729340786530475154228958648671276621121335078794811357209421363418393823462028908160388072482201710165842777594294241888139997878450843537595007157164584494114138619229084903729909395469801245367579866742541869328180736745584001257720054923149572346912869043608672925601030341105068495643706603613904939316300712007331566749496719632056145447249348649780397831851985593301921542636142211659533910357322023443447123418149295933287009340722038014356933483027167000544943849986518419544832606318935665880023675645792946196632135076158439976535485551840295976355292377569415183059357733773581024328330864317745704299988060743188801770092919800517918698817971425598594492922531440098578673726203609843998809007866698392022275192248378523620070800667531288145635483199524452871842337668076309066641586473281978900541001090387619001381980129185193786882674242107158249836687407712081854281366211990147098901356376725327963426113985513750433848412418454118637014677608613387810475643928444179381752537258768453431174030301340662840692325497764108420595713706153727593658413028558231912222423184500352332943604064545353437976638833573730883929358856081905821832377488228868555333120349785098046062477954605599874854583489703871973298999761850252685055589320441896767151943010800930015921623502202783967774141926822070476127952067507354144653010603674187193904459733649920289906895123323796062913077442389776404480016846005301386412378856673194391289034838641362851301101060753070675991786340080028050265155846657164442175148067970360882353074215871868426143550933693980035793506908627315573692161898939056083942073748452568581733578848883699920364431664415428248226878510275388458670774967204233950887952995310158188209255059290580711455579831526574765421688796766261819735514501719432179085750094946048365322311715695292152540130102994980552496156174931894331067833295177125305785938119325703320913140885541523934912926677324104923622068296901431081241902376775163398709948739245225549428893841438286282270113945575637459704814014036249120095816447668989933736079172693253774785229503603175778805475185823546847619009351156630432810117331906745758988112174299325216230915207902493355026870944540886758195321560275339340408830133789361637582856183842559334856997492370367374248099445577468887939745072252360483668060659412654524176007929279288941627838519377638981487750861268355511845409756018652168009158778568307463453768947571326492984876551620421773393509041357574274126563167651140296230345589676882749715937389390715956412123184882083685517051306966605084101431204201912397043066658850161368614248222050980720218072959487837775438161083752950299624627413701255883516486481550666499643534211539771920251185522246432309831129820053731735135748834843716751680008545001749566825907886377060194676286409505536627403075457445809350095768972275334563905042198465895822792728805961425507272135470974749212665835470860486042358070281397454268886213176495373894914766592206033723026929398412477700620869439523052068807909246958760908010597864705027394568975539674901341449462184400876160452565138865495781100978099944700666270697500655748424895648090209652012731774567203338577560556022196227994939846315966469420738959086399395268385226925166111140644731908231855866837516352050943660970715197005948861022339814622818803361606612837680264453328775179141533165168049203607751424540536686545311981774740715468586623284863302333327842042372662406231806138189636137320370492991833213163005838166827499469384286555351789581698451945578336166802114527104664320330541752629237867283030802585464890763005730645661207231848882757570675348071536010051595641245699333553104026384250611369158933151634034400134874688426332739231771135996297353521949310584600299567644628469969295695237273300433883152591317226853203447855496617661825014265819258457665562483651449432953094773880589119974102211150477994598190810726700319647224526559727786140122609403227011645420379950890113829780374166478564497859648889792962017775715914711568680671221162843406668545985838803853488109023169548230562467327823369892728443796611486766543549354299130176956842964003470741129827246220767660511990394292577952057933771596644800636314094455199874482633182709845397374977918911719673758479503850488200296703960475246626712210018971025010943556418418641121193026467242450859260386430962801192110114466088316909484552433587854621320184798155411814790716047705384482149081135494085911736533845426027987432508476907672838631418485803471475308023028053261211140414786968191005104205762507841635213069066100172765421568248140014086410029154360202212990800659475937138088259663446610761157994252718117526669136053172872360747438538181365307993153127548091001552589872007726824900130679684380043521836956686850003880134526017062967166383582286945425782112662126501343917476931132859213624647546333072280433245922337612578846586349428720222589087057021994763777764458021686582884196751737985202895876368336426709045310780659074079037380129465163743873100219221688805327378476703850168090530665672939636767542222672906601505334410578783350634676020001894568368779731723470085421751688557102473307527920246395976105482656837275163032901483996047157253063807510105298380362169511490191484849705552904055144460870087451888458748752279654634616909702944570685214987630283857995160219434068714575738571166977581249848027757675280765620190036404150597593381581087163402093044149214193069326347641142135433708608386495690399290951502076656945991355462384077278439443562908755691523514421488682219623207058094827644712601045220514603584410350933973471412351615506343398094037627933922312467816337092603206954516756146065369071803827073542490789480801488608030331563574506899995074928780827072275918678322393258843486449722659729422617163692931889396886904941942105293112338881578821922912414236970782848125493342935452885401738631384824644714088465122444993887487526226000076516776322703153134667101956102782506041150243585228097642381033532591757616316598084882709789625733238710852542272100154965553672576973742437757344373526427044185997667742436325079161085923044355539277234280758625179137572233272009153235459315339322574974146130197923073160024714661329302787983393897558500153435590890243196845183012549570326519862920054912864118475673531761556816396790270287305684212983736137449345686607182498930303650431760598986475453275136518802326510768300421574637780282163542860064326916463995223582488067544399409649534099075770096847724130677683517894600527558164485964059268645430219368027876510232435907701190526867110378947407225058528223560347442154446794147103611880997300010112547103176695369209297252141544322579885977387040932052484799758985025578018664597994224403552078347881413254946206537100166707433082535300864354744515585771233119947738392962703066285332215671468590780931000154037914700100169792950794148805112135934123937755735589496508350199829678212302450290840186714686253668384878680238129700369572252569365788127474236623214425399770908409969710130523951984421641725410373378161353751051313706764281791661961186067044595540585146498434077141134472984090090518663630765167421885471770795371425749346635033971131337996834839564247049485732517292577213335324255258674439722915449500335920760413530447301689441197716061943535900966244932468456919334121181140272369215024872760692656402701096592186308362174090201800908381343511731192560001458320830448979326121041975707829221253919380205178642033909007557431381381619593336828343604366014003124855313681427636382084979768623616160837087740332172729416336616882948076612697841800784730174735519221581815788297725577268665586841901576913136706353946009804485173270693209798185440679085701111110323068950261952623460318194977450267447274218749567944343850812370039841613313332741245824318618916943858159294164648244617144282615632347284797109389211044106533818358599605816679283051005577026113247413248023589827838978370120145828793634326207609766681337576363385356586484337680689772298142172085147199606081091432203160052721193529928840953939845377611810962548231281028588172788142395930742676701209004768767065356540324020120146745826374855566745176642790969228698816370099496733760177120143006296685895117139825573702733205238640372884440990062271713690094663885274488814887395123401424695519123460239769526052319473881752246634861418264318070112308298352651783972647585250345151230434339244734598061179190044580489331115081735383271749016426237304050154828215683989808360769887030643132083944099368878136541941882057244259458273421718127717250953438264798161208328423044243542233719945167426046354966630173949831277333894564692830002453103232374191495865457983940160050157933961602546351119067509362066699722467040466997686389331263707590985991561337064970837611396474629089998683371301271929230497567893029684437067256850600657136020687325125260187367097395057968553848576349826020930647861392282075340191258642707529397474889502962696354818852043182645933080795080801660453083473219221913293539418241168721020117972605034442892645433389568429687695518141567317465979612820575214620940999607921735835038858777506526687265915848998313423733931255007714983556242081281538046752891230305285880550666933967781840508937448996237498384765064218058515429929174385991841634430681289990005283918614847477683953376753669688325122923614902997773768595651887511826901118590533102090001207800300442130393804629080275612181879955237141020319515873311128579618807290242174254803817829167016400212159421177013344252803127005422552173443624893636461509064457653707358991279068608540252449525849663697888337186233342673111905393403757260351712515962815530976011421886173049641726373415673561516337480176838635736814738358442320153286683590647033005192505321736373500416129933251748496938834412674464908219532078668544196357462060256412182109673176455543558569469247984161139582756157599514503261672804253568750171564268487323598925337649528903334073825520105145856239185456001424662578258225975252214759373078571926212365160591482523247010156579939105051089211066916714741955675529033190668099628404116713053994160552778171119088696560582987722952063689590273485106731712580202393692105299780164874889803055000865943979239971156201882318086982503417960361325816185528756060098473446295410579787039827932219123076505360381405361044297168623791781806783294235925119529225553544188517753221870590962023416978520687055974282181635012846106929410070417618535694796714303833322428277868794282585068069684368826318715520426756923549014244458336428092633197810575601243948539467303314026689992882963278443640491802082229600589955683499689817743231877867660380243055226340845275561627415888214837403360102048913231837341851656507996273132834729229113341741002711248260035801620638777534230343020847050582256854491250182241866403666336565516072094194045569493398264747208853769906488935223210770067149716743033342956803399101368117263500816746250092402011521976971713714336021745943344214377041430577974695085393142591790850133808656131816788830634096711656652220988687118193371787522225368667189126554395218902586088329092038829368889150386581756032545834724258700518842824005818621576692249984151267024140233560641689407620059049156076883408654707057430829393897387892695336042363267799738936998889576671099531518418657241670370281323269337110558904652349013617067831653484672775098567280595064338535522522771527104743790749165819327499109320108116228008304385650329056774507645924101669725246278168793321619257517471641539226385739560536648833385550142394906811188241271681839418951028822807589791131278501413222437718434331811826732510322367099011441028574514241823878277218152854523965622908403691855040221639226874055215307486385968669133441669540117395157129210916435293459071705895002859859737149073022583196341221158819188286157767617335343373354365487889458631977774485459343052608286232581345298572759932765334602033543565560537709121050421885180205823232429529140858364584146896352354822736615277578712452305134506611715261882327492605839116799511899304776688573171321215228357090979274450938986590484715604205875465138934401355562633560001829385567685389636159631511461456542682547503301398134498937431602738414538910437540661014027885574895783047184049125243022996005224160839464347874211289437602051697742701162503114442250849088996220142891301160931327367685114284194636227696026049229712035604565919836557279657031525283438636144159515556185583795974892567880115707275319199271521670671753709578373172932687991865135856709131407554095061263311693923185868048326708833965619133435027633975145833197400649523597480256276087260913587249107811023586911553015976426104698935331019114404414590645948331442823545699561440633719153531891372230439215132473198554782456577188199499569139562226939203172804239808950762460835982472775537304286408143876217866879468710798549217437238087670793651460748686137812595516031544949451573074188675569895327244171727407195226440250490460688089513127110127456535326812710134714709413645017070752313368063942935934676330478184075852099324652688062561637392242047247248529053908479501624071891717268965894691348337280630022815794473586130942622115164932742397456029108052582821966647339026106719965521182378591336274922287287198121012934863824526579049091391282974097585238042687086835903038436355886493972650749987405264135364072680371785982733241546932643402215382632391310720176062638043544112315163788302373769000332049614571355844422574278788580461586026073265656785993212018633258775992615995071993376153093844775421131844924749327340618771208437825800479621261847903702982893821589755095803024554663913291630046047369220161716953852681625254701298710928619569972766951207932622182230398367058603023947039982877727143335683012803373741052584477404600182751749017853457523147761529005988886817544967600170593784410956075451499992826483931621874086492853786306450911627171358063913730498614870235307703759172858169320128549552488126961515080795812524703680898862065675579477532805346809757430264724556014343089662742870113242308498538237282916971691279675096769848613724946733254716402102281862485035232046983806943929663541221093923009794614406755871159637896969628499512063607872268891895564766971659920726621284314120326703553725495723168791328673837754670454462339483910043080321895019095652893853066516945143298503370946584351466209365661059034394363119868607107154730029479483858774596993793657124489742837554046539461761275914554950258179378221551011685539216014256942632520819977190947340144168294244972566594896888137885923894353041403710244530937421578312681272752970102011931981994690038504055356661911844972443662306038281826893800042840597291619342719137042655383977177314764130076557883582332495908471246948365613763096939977546621620526951840141480401753041799098569676116681728158539548493690077099341623086834496825869497607828938420137571681060796261070056955559524535403607501159135177255608757992146811393221218254355366986403354454111508994362819022755023426042940182844126100085259405529266900005442389318936566839176675449643334749462633094738395594902289458609522140282643634783822706494589289159157172591930280366056158469978697121611925578518097066318708464553245569531240926941794582855233295894651782955842246300982901993708723331958537954840249833092720054277238459338579181658065300501329953043898818516308218325905573936072293598733173270251602371741222112634879089953156185467682873741332961184078856804502278662910090327419092710379622151505130715901654466169231282949141584446502069063710008540150834672428762644035598713948076833585425814479122136755235487304338786579666792806544567895557786564814209919550631035547475182718264337467795491942531646220477710737732501387322897983224526970465850442561012211851217960072261045114212182534299767472502008764430419952254055169793305831875994972621700568139647722873236629245458121569525510266689019811157173425403109620862387110527332315791756592572704997360186199260361394811315189557599044012299103150785778462656953194225199590466062431611357214635933002476759874845662000709076221174944928912886481034156370324235708410410101197747172242019078374731839511273026922862447295315579828321729298277324604723439077252586364017597432289276582637742750661898407812469935788303432607234911881018916197288858543562730972656829125695430085527798752513674618751015893936949734370809102688039061202428006040920696979268275212191232454371330928678947160631546854143965878515468804463223553243717832713379420337833513306339366063717302185646293165169942581138202579903277096084634296656428373973920455758953380745873202123129422111102993296234093093403984642356822573560906475926070533590966606978783431486843097544315595376772006778095456618785269542959342153617081549768309237379312739877701448980201920073573722890869004606170766396570503686834123074721975244350849504969233343793418762187512748384882386307835577694046799290483943743114796225259534347880612459657286018775507809033754208456889419107607780341568905377191341787634768456811320145808136737169873701126890549298144599939614919884117934670731215358341457472672929371949174724669747528541281030530799059620435095604051207845615516896431408368588937307161480721674504353836023241489363164179127677064041330350233249030422886715935655253621081639909222837469179617255937836152770722836590821092392684849283643538273665708953715987653140973403440649071753095347161562450020871042837273475743946435029252035529163387984095400825054446013921012694924365408064926018635967654576556102744055716540977412635361709326006919099884216355068552435612275832507501283518336799300146449073657989140638366431411424055859534100628969926771841698750040082318087682317108528548796390913481956021147798541602775237563786614751611866288931966508368834873902034597848648656571142935948290347340244501723541560984810905510544623052180353597160737798742590673065211538231258742825980911066642258335269499273260564560222762657698457507191673650910334702759129430860214231242230232031353669689791649789872560453786735394959285895720299001696379613861483638203325609914871457051116574710778828793968505776348504729237625294248993978406429374520759735329680859472235050246671082876605948335492429887345141902324207437888781541740699865068265817256514724680113667746238916114393832665428716621367462742846701954564777461949705012557089761299931463490870085295099360815247216121371425759203585883377994583251452954207818009419900885945857093822572726488133034094055731044042061984736963619481179203598818717155561763958638871703636755057077636686434444668563800066215985169222884983509368164793926300359851938004571772117444607542786165647568584483035583443926423767520889496328474334028132793648441347777870546708948873354213645306440638618461863334534015559038198112602211970598036378544867683947517413019149315345700436830590347912405986426788203113962056108901087040681140879209617359273020548897734049274490715017865990781533260479925951788238201763313580416473762887699602977554482624120517729887473403646585317771943454778482625989719715613105074844401548095478642983715641839934513736930652065853224844811724588072053012955444877147283163921641276424727606639631371142023650160372774942705237226396909110087603234756104118551518388632594771699471098440876734228591865650311976950661879051147230464968531147044408873664659305305012410232717026396236672394804540384620128370076525367717502260913937485686267596915473860759447139662631025211978019943175818339298541580128326863031974483137262088619113425906441384142646966418593615564498182909345901662068065311366131870045774850668568091036347872163034592475552512876465828260785043523685281958211077766779318700902238349155044603714992657381584086109767125275219024246601298399569476611903092423086600912954598252401345567202746699093742842036619606007364100164310770795474933410712734266821725365815276547044859153185347891499912068550992695143266418490564419013470328560078975851553191374578881242749214493500819985532861919283336545587155305024219918179496846199565234479476232818020340022132026648477432239831355385615188826988483431860207444755375313696555373224733608845241810273267501804647407252369509927257203152314159311741788608149647820175070101040815314093521164275535349200573274357209652250128309978470767511679198283707554064198631298628538121835004387776592426578948269811554199896188832268637076034147926982750640138812288171228528663479804182522497701996887534081657221212864766425982557410759767195670338400007210604575672928836535757620724478459082820128906932461045376371107988357821248718794352166007049427805171961929011749430076386661954939041753174234724340817316814320909901042755802953524354298136941853144662357065596805760397550679530643665058067105210432535996758934375321811578864440539282033001544153118718947901907417792442646154845233432300163501565736767919979747730473610575722616583291039706768313427561435851040937748935153813585307390848327465154551484571906462560905673898769899864339698471984214106227019353326651171740999519934003909647099817113020115864456644145921244572104525589614174324773648148295225069318648719445358891250604199193030017739199688585053556562254042620346709545312754352495364808843061472060503435736464131588558856402060602543237200961301997924414579229507689348035492958307996906545804935325646072176065357489593439032671895787361841585507030487949703795785058041889530044737033163639648997175707358652322527340190444672640621113772245661519937563101335551253213807439364897654100173237702566111916394218504934310842213851463198854370034026132190682413771837927961675381465476770145793568290063967814076146710831593438338232948599538143687084597216168747381751283077339836756276099527383095813840137605061611617584274151079384298057958514371358395045542219578133840063164285930787968470260606439401610581972854648409914077048185059969749733251029207732298893336387935796157740746467613199554638901443979680590179669398933660140651293805260785091467153749980639426096797976989589717041168531400933479390533508832385774346159957516872884162313685203130226435080986581018169742092444345760815844474345242764878219389824488518645642927266747899298349164632608715195802366244684045942199524143940308981786645745521886908934048833620989216842503630421012220945016332955467946519497062183543517725526100996657739289505350260686580900797840674674807679338424071518246179211474794318581450782018840326598336591142435634184891800648438733211608189522772405181223203140064607161434973726858907677140727635801020582822942693898877650618957804726134002329986241796794412068981329385121500544254776154520627173121969452762027464265039429396267089239103197032734381490434386014962237163328643697425514412599275511660942423130794605619652334395028800239911127412341463558589103285881473675420560077667628355132485198790202514227302158372940818230434205775936406285194837979088720690911248940006889140040130046439025942854974320449410158150013611037733616316697803140236344108881477212286679589267461979397923270324130569649173989633899849577211366605123468312473179309975796474391149923247919858555209003416948528968146800681954423307728893201114616578296628905214111955620534545124055066800122026564703496025098047263697098609103499627258615226731059919088902717417047925243447046193982528572875461923558971737148840114629530537095762651668818459598391966074339218326030967968536008312544113665448432487905878540776970363937245688378081288661584643382678326944937394837568482101333562862857420606331956252702278320554297949808764697240765357383209697861789739088432781506908421786171981580838276590515132045366105686390550040486833964758527795610809571780313265482140549705550169272567815846868275833268139984810981031345210371239848261988361560250197475172967862555782493373005115436692568837734019020472535167276760056434812028391345237947735826595262723585799129663050159752005137025738163050979935145983987844569553946254719006933058786264774742643151274892308564767785423518336361383204636896452329646557366431304952203880603082787095861340172999854135140324864900950035061129749865684984267838828428043905646168827070039649665321740234866554914312559851828754518564227651083982365973375695016523446129532379791978758121726427683603290435287224311971199572976163635520046293108962165288646689695042388463085004905743381321549246766883825605400750150603245614582122097454111028538819178822797274288772572567296575961079813877597199298981984395846710244363775890395672825366052044416535850092628421946549180317940605682737853348172929620214675968944370845610039153265190685845776961617026410900483441456726150221585513249137655857817977987088544150759536297559035706764459271480920183371858124329860686698521986195443364422110030879224862804283912599400901082271016945290246714895063471054776733158219929232305614677238614007995471138456644657729505740420168916876621051379095122012193941002643342119092718915681320790841186850247681129619614317839452202224040789358946376556335855207786515772248238753424332717925172921006566943188601985615496737773188628443134806970381595656901521338150347670619858141592731336326407095597544308499312293062317567161878573180560458745911816049047939832196786758923208695617084061097528014115305059313351130315530191404719985599516568962796213649953917880955583814875287310600537421745374291456935695833551555620645077504127519059946568393318746837666428747769407358559387300018987663091589333606026971030980294197326023046710139001934317436464177660953823239517964855897880543523922099991898072576983401736968342813935924057752378499064879473889169766155545537648700678719255632975349903667230822787683447130806524672946078735187172087166945631987771286232350399604002332087282664629548587331979919726584875211032298863681005216486841412462813627105188285426325496017328818272498985680817371832217156222446125556807057679910185360548225610854695777856036821564169195314966573021728280314906752428559527795923171446380505921878834283582609838625143704298529866272181936891629928811535112667833036372052293010155747346079518233772334538889484049648000589890727444097738503220866455873286595411592320378728868039079241326830149699172945626645497089904513393065613985340901689595484794707686057516039953148659731605979115972880505831382311067729486306111812330005223851407597606497107417600737095130437997681555051587428867013479739642202149251539204368278268972537365124094208119387353256259820663470609574865301674056999612933915263349934984492731983440650182065440548627586405828744904050704255124267495417530373372706621393644115447532574249213522359906837051205004391529212390920483775389298849412207964498806864945844541972781585415145695804912391461276914540420799884394858468256388700879227346218990149091988142718106721783183165720072183556434590818619623069528047616050471587463717970310084695313590832853154038642476674987475502161662702725786771979089093431837149772066721860534319338225096460981535997668069552460717703237649559035491797845042777735095550324071674605642251976293732899599659259360000954101956949927331459600567671674247781897885260774438910734013601335370798596929174095566907330776917567783521330240259030242850948014144410483307281396282519666218047801936107289304164933024194680588570377087056946594639211963073953679387518752053988065986033395449424214990438461759547708340430743145816477557179363977714572273239721599652847391395078048678700412887082015280237072736750479792498023652043046053230043193740842735874113530047100553623958196495951562266037422967165616665948523532439181275514426363234230593903513333822239004920429380974978057227863575300423452335950463668783796877128007301269100621998694891997436392225880483951719984805998926291212956117480859619318756632987601128779342873332926846626908200115387640454752697923917980987861772921562316236982349060518531962274502006579240381396203535137163344136906532233020482448031029003412771418906011505705615515799602132619133927583954137799045540421904118772343918161812330690573945988066945104151121114999613532692772211214546832459538409241328721779029509667234041230215607306098361407852097744385631381679691109603812781991247107154968132547699411982229636631701975563909426730959861464576812263007025551293141899601000436749362185804393790401776043333946310565263741576021771117268639746859705392673028092588896691759909798789802671670791424434976101878621315844484547292887404288720402173534971343448873769091914017631643053975292456530009174373929138916878796943398962402437440460283115056557704840819760659659411435116433378722423722621457587180126548420450907351177068959476927925115255555014281806186966027562784431349021611616453331390156147274842554880594926670379595044648282968911175022131801274466287007613563833040501745242655336977391395291513264395704480693795716652794170918254026688121689457619397847225733771917483314383371672851615058275188592214476327086682166989163088310910613605858023403193151461229597188927508967028922147444303720730830800919662483920696552632907042731297136077457892737182572407830676374101249605052522135143587416837028340799143875287044992354201054725862586834629967907789951127399921615814466719046455923895571926373510640521455762990640085921282470396615536888621593683467107781832758849407864487839531833202642800929400620427578333315880600058686898402345248302345979366162683662872214216603748024790662066193879772645808674579809539853618670953418250566305533252066569348261659885955776947349725278687903932339401040430574266551439457341566973425386601707380370450788465124599237528606959283650277623927234952578803948959711370716236377263451016817584286925101848832956239569989818583488226510071056019629638250405978211406467038239236892371364176457825926853241201422689939512016576235448298255126976466890576954758376060302200400664572670756699798973122735506309776463513367743281489794364231003896232514374532836493602601756103576103858323008318004941706560158645210693739696457546079415882742954880623769137344781552427932608325559944213764278353757917941463898647143073451552836228553520701563659105369155026416888605645120897205520821144728857919160442696588938941277342412969986051789377882633211233057297993723341744514781213584883235382203243918112492071660916847072369899699869285894830553853674222688638458905040035504887193559924209873142673611600195905344405286587929010590887142262505272011967649201119902818856650120532001518696684135103342776293526536458377086755237842717736164224431656588503114675082435913327604284617394949921302048545592304481972614747594322792141531380715028727842726632776758999965762209457952021620628715077940248730705638725569969898597259256992290305889701620861891515599737187859635180114207158774162539824444685576783653001570246557128821674360770071403537898067342437027173809488661284703889409055593449342494404111667366437787911397565755229146326651776227723865081625193260129343551279819082299553124944313807461574872083202827666175903518245565504288436167261443111292934256251441724291753605516349842996771573519078678105985730808353652365821513235333259349621898290364737607920026998297573670022684697179584605257715612214382449014172837653449775726668684799680564169646648864772371926628304825910553331115176843233926817519083536776225438838678913583980206473743885809076159996764037931716591106143112719682929647425971171303127030094213515292096670027707712094553639643919323669065798412251779410429668908861705400252725580370109152721168806545105211185898081872005288263685825834712548065734015737996066456537824446649148813633211625652492919728978777097212411117713065579637611839254509957009979042985723734748419416617919251588432457208391616868700285449886024074345287737165526584175609726225384775943430427896280837183560691693821133538462446417928627733061405921439086722223768453835475808396573340380668518116762511972109500119279270619930203441071947721353072757166732415568568040457184152390502550355226791396074757377757169838884981012420085599439222274611475981768129861371784002615867265524915464347028720750888061453901061280556154943872990037403167092393148369899497822430979162828720661873486258834497651130439040763537180513972265863166993995979716053484528674348551003787100425394589194080468925713841013587376837143795685748809521184526876665244790681242294426906123702354694247497672902627708628687249068516767009018467942614881783345380692641790128760013479398870166325800576467623980074468147589981408230530369137079959588967730005989113402451320483388292566971650819785114096498879091941666146186187999282508681502809754589838936328314961031906179928021379817525504867166040902480426087291566782039872952206961128396364988371891447319419162390381204129702402731560039919617960696430037413755460493793227799823655976804638528818316120537871515266996351938202287542504472601410192961875216322377098837940423082677723295692400642282313499973845527451616612485907561844486474031527137837952642630101838763233349673041898688989024459009298283861165203737834138666723883396494360654299180153214241700888171667230843934483525957707623166196696461100232682313802657304705096169378680248909715910958400755149683931049121609524420287660064775187421934035510153057407820273014248016204735004660669664385204919472094326784997387479064990543474464288414325862539296234768066712084583426458768767948951983922564631062045731634947244584465882124930098068776473139964457608756493770755930808153677162050432481871740144884269090864101856346024757218980646945542542975439695972486002743462500791233396295992478105629846118736826155913738455886386731872703387912852674472968279868241730518571848993153959335921899129994805934107622983005006764697706602977390201630000821910519170724792018477852367435956279660386991824870411653914630039498444812217076978999690912769856518989208746466932322881052233582987123021980863207944677589515581166883707002381059526448394584548512250286932994716419274610331464870589478769006025978040193324759946124859416445647179979859378927838520172998102208478228381390385689915383264723168679623284217971610850452967301131543283820932552977604679458340884094770411748641883454093705863631401000425372941497354608190796276003259231675520383942264349078976399941816155626851012122706746695083981569662871016802298407935406039339080765124340022695719629987261404169834350557319446015547598901446182132511461617860763242675707158347428698513100835060204363005250541943064432036802283324644399896988782015316551198581901378385374882130582287445015436660974529247164281042585125849821176838579420637671199139673717447715203378282457673655035122025446705634349073599574693667279465994773364447769158031098151387191748187685224713567475698570444912731550046368481514661544653388229254119896123211345069414009535228528710229995819570436898872909936266389301573723123733377688870000895259779823068294172633088604919674031359223948331798345938057222662306366946285876453026775270181141658614393688202292598161008216013792669073452720910015329911712163223080588411714675946283626428385127540847252595748165915692221195550970380486550573706731590889591431567793477401038583206121423940838262853165647789144061047834673214365194658689779708160107662668797508335819625968305599679407683536678363946895044151478978421956350042282384116101907107051989108992416033080654472999515058439301820357864192654509750531224375827279759082905298566829723513748264855450053565094738269175704806415136896871860998833743485070186347374651728625584607178133047331261348721362134815533517502261263944976387569173040589057968449186531865773240321712194019742896626169130366255414890966614000797366621897787973430748329303659967723301734311188029160067335199473398259169001566224120092702009434255007413787048869469789194623725766754979801826121699998916234585362644230779066702136101039116078721028044923490346931452867944760516668835712493933784510864349595870971867702310681646902913166367242698135725650583681606159723332932445340946092024267672167617926837601191698116142770754579754860852760887205105542542240322853741972584979002249023921646776670275823495133430345046671013152747100164095396883974118053815499238194097790858486461991669423300372346546511641294606317989433940405252352146207503295412710155213783845014105347507693549353780080729916990769763011090826795611467621833403232194795762025295675243785664739296545485227507091789708699730512004701801108976881544158058563575584124361916891144424200896637770777934629746834255857213156659244381805898898035915592504402366885616933050702784159849696946659261282479631275451694731461294624469432955099726695580696995999055473471512262464754468043036945310287204485379666012615695795938907142662728662415373288660945328509606607392909986904647207282822146550591226352779902887124388863781297152772436023804808148691986404503074981790013221316028039609977004779220838191031877135321279109946929158284471681815986769517508532720800510207051142132087947734758699617075866494663816291541312879697864585877358958404543970056088932345713136178861664422023155674537307989996055937204405951483835610184910478883791857102648191464961411913507683842124092097017929596365231460760778396867699215900774534279057793280611792701453245536963225129886567452852217484129255573025868185716788470480698193583525520589143033296558728381041449725688168830916334923013862083079393792465205864397309223209477996017079949231224871527974651044531574949701268288459288809591531430892163042411455098001742398438204032132484363049649862978729826217925256642486269408270790284123863837631478900253906997862712303175578926309396234676726606149955788232719580893909116200955255937087910693523572205665500201893697482007922555524515008887569058608567065172286833698685447744502323299582056505344107422179444861749969270442131946927965802151891111853997041036104564432802568097564781221908539037731319962245951275685091858156817266455779302284500322479385710165916440625620243317646696051825026514285164343448541642932987217016176903739696234024627437284140676667412935325727647785587219895236615892962028114823253929228515169137523508252832982336109333157344808805014124496371350400961097155584316543098498544345941975375347556434654171322025247512277324692527931349236965365167410272648364021864228313506931292472668078708466449394895256238284478829895676769153415496170913404360279190343141004875937797501566326616763178528507381645615205154351654910903135605555815693079817598477435441206460088506112777774860159460560978397991241566170020217954863079050352442764166359900511428266060694545606490111751154415701532181081220832590349056499215105926289288913855380615457561535223484703713428694837302946179045469310599687709162736689510133502939810604311724133001044716410860051998934205448953106398289639689935898151945059709246926878246488594587663465263690926812214649452745055057989372825417203070777757187507271715860720644745835015654731208113832298536184511611968700820004722751386551757796132318889774078678284483222473513678842141496784259143899229696052726355949224052626775251057802050307862516257380655970520196574891132524159074772995861193478710208245567860789016957047101311320459109307145316058903322067867126782452102928245165154852439301751756396246087015352883977964027957311307898230620626085047260613442965494996900786205329444256691204770726316939785672760146796068430867381272542346274039388759600834228852890601119137513235682080053987349926443299580674164882770855244387066213720138220994688611492723083713129259275099147502549784166709440290092957667055206739724775574728594771628965460664287380014161905760128131566438298439394123049242784441795896686621971877828946463876808701939670250646354955815002564640369665707679780733140816687808484728978950601217825432493235082340238220726332614486878202010152469348687251241074887640616665157232594974813623224647698427550303489138199299346072271254167414784857570829748058787529113887092296410898669908612428859367296810325799699364153709229389184072456400136343967804711505460081515450697038979924302294152849012185829624312764594317582476814542812613043483959620731213318529942284273014670002450314439371399338390831821672447990676454879405709588894448653204985887309744003246212996833687277372134423666507298148280991684251111922437903122007423528878090949911268372761975303850056092148279812055698118802786655742665210152665729444391192147694670798358051066672816477491493790613146315685682492246334762893928101415241847375820126521999474935035068078667313349040841084054946792093203289320405876526957439386046693680840638612985044783062222187359652651898705653216118514860864072298145679989288978762546964372425542101074214275368484705785603983693275439108621024107476060978008851990174718110119290773807927098031574350707420841024463295815535980725497632884281399595474105648373508147638208323299367392602115716665558810380798134057255136042869027268303697010485336932289991368603477871749236549934786506309692452723050145850918863960452381711275575013542290189498131117956951492095258514552099684377385504902309598259369044210765688379751640175930782067898115473283064982631084751705358686308020697198979225566487135516559771867630695237051214926893807199337596145470725782264677627175000716794139280203575056315537434176534104767992178773391176643956113735741003841194130069841708628350244386706737523727242892165996244325345638446558631832445294294979263183669817492464633276602793792101395375577342222912327380427419044225534176340609917576608734446644235146513396568008982103973482576353438321682722783552792238423392997306558768740108418146229944996159094597640575546184974101124663778968132236449688809531229029283878060270624178034747042854070147082505878190794683751497856395137052252366100636110967826743682204523478892015833115968778095582307109897124673818676865972018670690795667321898114376535710676722501560180238270590201604637224116848697186261145190949459828009468479963607113540281490473028345548156181167701735884308163996474979233250923812951496002085209166324429440636795112885926263805887829010076645282766847473250831607331129803630971805408504691505832590698538627294456539741508059251975197794491403793217702664410897333698157151662508238985320832088256423086645249089128031657981062335846182696443134694009466781861283718209457587095105426671484883183038265558497441784390330894294438818155749363640180982320531216711028419942248002099186203577153735066887291810172144056584837199187661752153768043842167274600269657670670511657703707021281752097539387366583265757101535468257620637276816421810717562325368860397028689571805068101288399775106991645212475251678146864780325216007855662389050108058225716755930476625044713984948317623769872493815653519959258798311932811928573296708161709053273503373563776566770562440211579815472531826660588107284325975142938946979739485303501706314361047396303355260955131692550425785419902738837306451205513459314813746359981521806385456207039820079989855610335742046596259173620088239785342911977604152670740120229068303018827874791446175846987056548200317887901297041706534163002056781200775701357911198932591229614371409341815007630602402401096157675287652540361442679401924540324007343058885172748371972842028835306728168865256258581191982190683545915120610551930661435065200685278764789050911822638769330860696255277901547000121284635952564734136103156843950089204261002901864376053564267323743259497022373339637307269440880725528577452992300297257359265425069117649443455110538579337612326745947036873028437160645643091050433854107063925373575753419672970605449993933966176455651807885033551154076949465098342029798485322938903704667488796188001752267024559157921573932839471920154919477092053769785507291575927032509245619761119648370960785974962782329087701077169608010517168710217207820917809003002869221846780872721031417287038761272518412754273991279449772856400108536497148617206938002901231355929816253569577706686511241671941107581517328129491873502819081536383518296626800367569600418282797657793094287965949621403287575277746495331582151600074137541588012310048820247962229288671801872646780337558662819746848902124842830462679437529770897552764415400606033597420906785416615061819960929001033611618517999164525689083196697333472119184639365803480546978331064122213231392742646479291113015943603816124052600899430378842887979607757886595345457365980338347989805971398129807923670560289330988148499433897857861510735432203808201505926799774613971976248688962511210005372169002463831373998364619165719623036085809821682549259257586913971753947612662677853481935192555444248241041152711263281329979134466728710913593515780793028005794980218499102613365437930850186462001094204122849554580968545564987773086608741847767755614330208294734703375750915674706174589770471969335297159530193193825735327381159319657745504781603242652046776777707204495122120456770788368363589189380451935366959841919100630318482120276657069788410215010418686819124932655067982460180812098174670868280075015404207542095290712558225578496366474360684908738725904148616848491588520318070703846066536777846004973536909300121041465263326758525429853185388041932261506181914885604899335640150557040338546069245638359689445717919572106228837694552918232543949107562422750794545982679776848194407807081972636825361440512145327123777088970969253255059678483592495259955544567840429026529961019547888186977758624337362061608521295241970093018601249147676058869768938624824009260144391889140163675003357975633193813850100903417573391895063884320785153834769271809989028803713750175164423900941758936006796530660221182209446517965336011335110167996877614589359368993679858415985451010970241828589991818715922591325821605136641164581613385975552403766555509225161040689807744797479064096717038101280114761954597478135803523756476447043620229360583242828457084144411895507976404943133015280876029735927869326164761561286064983681241380548268865109860264706789246267707500968080402407596832655027220258361109224122076745992673032601374559442761735534852717029960066117199359436477649486831611417800294675785143480447935937759919698181904827850624470882549052827909937306470200725711943985721077873497484220987132091015877766918179558018405448185266055964401919403491990765944971795254932607813887076792393330898786441882801664459660833137257207886712836508098311831668770381709714900264992708288399785420500196839146062157662194319523078090399605545519597640545227968371355302244328383045980634344940532370037650205871025862909443131700446458321832909949055830004109459109381150294702398651624815567593612777094484312709233763114173001676309486527932846829132468976287844591389049884855102185959708345843858588619306890314968297085672771189470512836776014385421234435463415803505058425639510997758008153301410777855852637585639194670879269731663468051113027142699760675445750220016202439972739629388235904691017460814696808997819948483894121660199083892869587905071244986882210762611639764597043613712136190634134991666935703547756916687834052346860484747259253217274318740854985875043989557179391617731332557652613191001336477123042129330359496191797798628894100095582247319063239268807918649884113728637329035490505820198721105019551960855946908376460834258028201072579368093536589367832907616957979222324260986174935127007941475510377856446284101587730387715765695595268031386714106387518332770828825195678013476754325511895630781308887189855032439678956460353068409703107525005090042925323457822753371836345188067139836511408806793048030315029030604110635342058144933211836296595454296656893069802724263692724414990680357108385321296464556183124238958933322004299466882206523425938274107033388006131897267261245226370462009124023583695194253721346647638997351764855763851298404350593998619235040933189326588849876257958470925612935516987982817755824583412218731785538320857728448134909257051770306089269460930544691989636401650851324020497885613483744656489080188344092042943973557887371563558066908089304459100511662187351712608964359046346214804208681836136825427599791106954650397706100197610798366365663810921306559086205460716694996094889512766695509099689611379527667595423790436558022665636928501623247481282860966789903862434519799694990766387534844729257284400238143548492551290418591747775185609199756402447473681081691145356943987356592154389335133178563357817307744055383867309188467912785782681352088835415485767947897722290037130718823336634235253715853756533936362994745253974639323006227384044747902726559093447982020356780819550716737890983799026377290627932518780543322868924059931641460823199487501533050096700249629978326451714275660753741503744341238968076239968502698020156150560532768180364356475868640245537882623769019678735053789707535591525843208314482377088431034701831204541617429278152171335202175974560787711244142646771162486031503652527901137641240983564932004508077253105988694828693599496582363398371127656509310728440375116384228341685019999703490373081416370227221973162424551361464528444031184243113701667363393984322917313604299725977581514966755478200740276716190064350684425662085656783096057632738882077841966148263134872905423857353680731325990122796054645238056099640337558752694763103952349456956511039615988729101381322942872512572522661199825601695141309068937533112506322554673477228068142122722774246077231072938912360578690826601487226370752539824857384384972666200945075526153065610055363027885366477713660606069138800247334694410518653925163720515480689995773754669464286167509662085563966657712703735213065601776436237326784543048279059299247618402015239601979806269939420494100244497792039626878232125731785727287193362161058598731259955265605725876682236137722436731811171339716878373987338361726698238929403602981574402450752318397146553022756229015131360489718222739748077264609557512042680709933391463051062188043225455228167663278217099067225948222606242163813311013960103898164738112394107070765170631768501031003307113001982572926801114650287197968987827756160713936560336389907250375829869629839402521170792177364018205489968937591900916720119936880163454042718870580434813845630163505558410466518934178802281689731410193786597634642153038746793819909545598852361563385633856885769025649786279434949971965589975477194912141026246197235132407900237686401182097008437474065852881738474813096914012770526888970728693740505758526686196692819980956942869846662986026112560930594999594583814323924578481090272406360852305652156944817929781407314414214587726956232912442272478848754033785260417179066864046744603423252221650273680126345049840790204906892647832476147647525018674396434575318511260757958940250443642547969182554919121972911806609835226241143621112868077399943064640998475722420640985570526012105571993456573302717845850522178294114958358458932937856993033374135330003636886916415091994817153616751541926256287294747935116308283621536093348073420429251258904377646329850149085537533789465301051242951762057232674896109423290950022627391393733244270047651768323936790226005529466639908881735183237135862019553749177782699977662687894408838953170338093425347968198665059184451996968469270361183150538596461295329113330604476644039735220686523918936735498989924563965994486340968634248276706695891397581214414904275304148871254197691179851149599303428943485610666336329142934704567776024143236141186096625450599826863743331013333155161839389629876114965855017400657086195690722412814065539599723450545713634979382219256682697901430158140479948514715790072853305785719525236575083997334458737841394151321106785600159311316342837823943492282268564331742713640354211242886202951958549605795251810694218401470459745744949682519109937172925318458316310403178579058482780334267501025077765883878685098405735549761491451318287665715091576619522622094282554110811162206781933438598650906921783021251607277249875116433421929426636387240824134176640692026030142972073781238309951630781502733200125744593445807910420058912970760130845171107203086504239625386622201424341811692280204252975757357539176274182755243500225548727986866521112571814806906246911800788777743396382363040983057033958951886858443853618323891954866928243800021470118194792252601820327112541795405725511660326155310244206563974941077508615556594106435991850246563380830364641146428868910792597134570377954847579501076134817930143664636399817317115617864909751511187320173918679028019930405522003835366549887657684970981749184898113030655753220811214825961396717786659035730991352251261221667492193518031325406729124808498390401825224717429633902292881409748580719934350426425953980372770655698437262996516910157498440083422505848590606301898339549651984274447640593632471729213738496451675799835010490784924788319617459013818454646378711158713771378541436314057134655234821965365750431801829245435589665938549098463382456470900136617214586366600076283225383776312081342299821536222623946518264992713558606334586903946230577470417173144271599659673891629391403080067893913398579689148496516228085705992836552938754377744347596073685736262234762091362565879439976212298102921712873364616387766164789407939392230627214916400257595427663321083949806282440318243788640986179623022437587938659786481406882264027012524757718684967131450731896474177391951924670095092045405205054084844352632977976093124775899386055366249477021833879410835762944800709185818156741164893912242525861406180704434751267433938739729762197736622819621340793589973608950643279884517369833231444291332474462740043896746033457905816192733909485577548174678219982386697685489694287635999096755314377893081144443959618653733760154070321974073752877995209137033623394806222100546623485642418307183357445729836076538326603607010872882835169763930737014939152210600094866433463058122704108096741375063209144887330502532992914761391890844488800995371643366400412086921033341078909877943577597181656255035893398149306865836166086307230006208170187695651381586607129197996730962562679002486509405661510230580151559007376251555851921594356310465220251736206036031270146171026885316293096327350817822912605201685053816893609163269356212461539057884556448967365453653820837441159647469625823666705675329007957493052150263098138933786065373308728979998552673287134821140819530759751360596887919732066041163501432246077064750909378895826803602784991275502223944512285162015954126546863070236340148581603610662732224542969631337277368473743394274605941989631730482725477511712472832740031104822699954154845195695225193029568658414943076614893844176785158737536917169301212757733397289891846082528858603302028109120138352136890035175450562268364382089084439043815613072203981570885630178733399675982438147288195978465886296317002800623609320664238256402923772145737512090577924742177315701440953524706088726777102075701058551514183330227704753888321743525122288735800300474155715596801981389493668753980276292844944237896813401956591861357327748789231707896477395070136281785036410346244239287055768188982994946570456218497453485659289567676201344971461170900271337131824270795500747945952963701047703856752382537996916771816119194077049805269018231278013173566241366590484060736626533504432691979126594174629144935705933389230884365933350214388734858372097874617407816740799313318061687350264382881645275757680774801698036440409438626143269042781220534498769177604593277118674654660772345715629855164507339701487099723678670645834789803795911720521627056048871275205786175034236678346057531429143771338098467635751979868323540028886740284913051813468937372425948958009629288801508116766207636164924813252054144933949584925704166449313248927506233228100500939718718343920361633920862649616842692692982987086439950223402823112264637016298812128434948258724643622424340389755191120785083238938674241076027277497070854627212009286575283201406845626004152233644811247073208905324360718982580362974462050038420588595598798831022510533548646417340095110207248093267316846398833272038806401727859835775226823832207421630361080323492020390110622397155337106237095942624374910202769019546110092630052281289414204144840079656416685565092766899258483071706223993295756884092036002287148779950114129020749816770075624652459282491770136991939252810576635594473987235646797278939257402920208483232658789240431436996858328834091718626388023439744514311207103281337619190714242628580049654811396478102549636490441057167800809346725961037093156073673813698568653202167759465688696745279793337991756274064171628225986898411826077425030019096504757661280659654939427495031597458381066658230777351824427572672947250925427039104899653859725668101036741338869826825862011341003003277577628934347275723387948331885531617003703990539939191972162460692306422378715898094501868834733103793387839653817589025134706418910238140871517288379371366667178849455627967709157431744691173767498279343693691828439046641736331685281112189189442792788785156695422078415520893845792520728803664232189552232642976883255899140937985426222207331524437599255661141675467837087374466191097866503859546185538762982525067990474545513582301239734112332292087718104286440755077158093983767357511308232271988738122902335562790715018929591132529065396841216863191652171974666008228367262122883129814204013826657665960203035168550662879360666285315594251964175429263529291189001156226636913421265135827941473392066191229917698100053503545305340500818696721588221443976815361142244118594978952154548776534653664635019510712787388872613458928879116231302620979279041162712939347408320351731288950786653545540343329450517979900267962380681970205470457127834794413067485210816377923883480089999729508939626350035485555028680906244836791548932909180376183358946482565418022230275617540240271385516062267164635561849390295994669830261859327671635693886950935990272480057220435821142444368110781268068833314280242508323590696834720348074887913174731014298781539213042582032049352512498658486970924954198174182859520243305958365627575874599539545438283260151248318781546492190513485724281124241406892317732468464179035434038883640287050519702218247355015964133202693099194044114276263571383496967007465952481638593358477065368803222668660669532358694279491731754594707757008410686274515826976555479255583498937024014756190667767701115079379564287043785043405146018490270267447658882317283854574618700928717796451866660895012659625508225698561083793545804194436820335361271850426031900102634297328876873166395401888131047354019183449198392361476787021681978899313603225710369807951837353170529245471684832173642973144275219871385925646762506076248852327394975750141737941097084784231707436746052980940917612390336931992881454950268189014599757158093225611353534993983149137182959494731241750333602034939223840135163892392074638784188181965125646095298710201921723269967328818981332911465533089067310854053900590356638254207123033477940274938601636762041326315865179447936217511219724803830144242380671394211780298649833782938598780997394435212324576201877053526368401121698097595614467173444483083673222296968237195550050785703548115057703147426982454033262700252718229246825327385351349605828385155285198725428636885462380555300508417958839681580426766913862674781114202934189235817030619006217597238439766783532309066257762147657233066494879438595405693330533282859032410839672128124075451765485769265576666052138817282774454936149718546276864509884541903206616207657404086457496253649793516374901539789815296327000620545723130118171089973610816686230362973325130399270967306549045546639437247282549463494487224150965133606002655958446164271594905458197401176535079360167893984580991806244212542295442490965689319437035308655321335295541305751204576321612582711615035919765651424189521322914616102852232047604767356281896379251097349941004133766372713913407561513244781986801801320812951972442302708382863497292936675587548545402369851194772857153307104950009051740761736381758763660190799503762702771706276137649379191521945436102793277100930749495302162136938897132585509939927485441908202752111381582743342974364346426807964100782760470599087017126342546817468398166664914511236437682913621965219698974158179607185945207013284055121691991299404793785072712429999574167403810781504133414484047611787898674530800312892122138325794743656039887523466437908812996834721023355370243046736523063302472406193935717199223257668800750390116391639571632879995988223591387425910133975703920120756332158702931192658821814986965782358267387488054506647407424444723076219177776868253647677967260328717635313950170888316576516076688048644008053016265860472651578076792426634612046715798541998154956356766611665447464094144764208531250319223499212056352700334359524343064120008664068814036642356492059344989103730901978263710816684501530363050596159638989992120869910977256135426696014513983405846701298931729384018180626807551368690205071239790307943920803076591924390718483482353453897590038885923540345340509122416329028743503647740760334493705224654372254938604726499756119339522181501617544374726113291344180043914098073994716154045468886353218608912264769122568032051729639828283695827776236053105843782903816837087489187142168640129712228187111556290852553990157332861386459220376000511325934451209827516357430485567734683411876903371902996760873232006520836883005393286639049278511441856239530278665255708215051547914061070159387046234432442480527892823279945568328341107992247280254503999739676766273169815971803910586271440707223454669781102702715004868542244279654134195243179675997242652302217798484917372022409948136587921309559609978457299870105769792563018297224392001392543724289501170878783655264298878532925763104047762734984744898087773488786259161084261219493551659518453051777742008036830794379704675359189053453614253699574824997719330823657787079387141342309805642304174657847914547558214285852521224800532608619660106433578450197610554233627851832804677161101544462758005584822232406013163931493036589852355385054433187701723710956394301829100006633026592972307593205597673384186183578000184411734424051508647534130275478954170639532065878680506256057438557572215065313357133607856497783280256994818116479427883101105515913221654278626207260724668568132376228202348091128507145958269027077181726841812102902004955975404918737016214303472634097726415261273299608341770302556726387440755975452141780660670030913012984774618088173079429866084458615464578075970270992221330488295393187094198763108662465440002992149724666851944623876388276894221280060235427366323337997550346846759413082559638952704040331886022981267322653210784139291793518092774842671385908795653020179879560801903758825345731076363397620426113865083407268194546909000980446397603032937104649704632829396336499278416848705576301777057831042729905113249319841822564218641927089418567363987134918512518625587674506434812138343468387949747854368813159117647458193762998605415274030997709253826012516822740833980962305043917557001041312589840842944094204856855960849342706777219780107079184051412864094843703208592511998827432654969595852860956631798497267471505915338512162341998928971507995493567242395062193382762910406381094601990204460205290287323738998456037045560389521161459158502550738578208513391739590335790078769532357715073430218185936945727369107112608310924066244919763622342165351426053474332392531141685741866089130151680873710980748062907868274487285392248458638282036260677327154137824814747569917985947683940231607485075772400015194960975617911630686225730801766999096567426926928018902726065769055936348103342318564166273621444923854093667568919689125234681086343705851166799441256967294984101926826601408027223622672610633269891925053914845914478639870287740400927073463294715754454654006241562354685020973698100293907888311367760741330265454252980024904450789393186483840788564885185556651459593898087515655114744068268686585047229264918077404849061020044860692414473094630506551410433160182692871201725983442086061019256626312188423835060133783006534923547695118338923622962087842454042409056411150644437304661675376667234744544190371726376004547855302026954044683599902482780440558313634210588380243106659210768600940643015131459181546960203523177070877148724057877261030707873775051618851098194625127493134866279264416827440545381977914452704387110955179753275267708601241377387130288246651100125727454311075579470015396636159811474937759029534821501839320366116724121191047429950864770005645802967856982028582582064843661755289882755906286553962542863232843995617990665101498287573168868304941370582168776030268000565356100146815167323747452455571202249190550230139766929451404134265722496700371199443796189566818363703992319148119657385068583857739057185384979633007202690908978365856597989290752480538129225297396769198806071826792685779272445382537638136180993925748443907715740451278463782958054559690632798129346488320081704133776606502516532638565396383651664069363605153453384275356868107839945523932737796775569592714325127363262359670765219608662453390345331719777185413718372735182429350933376294086709683933180981273833193679098490121042833787328487942835466171198758879525376705228434207675817308888968583134913012570201643957255490277837373549410835091302627173494928657659511936757302385732261326304682230709023032021925414975441559000477445967772967952118113370434965009962514760406517722653229695582330690230534984110126263260437614342445587086589465796041296448107341709313565454703809576933028358512754897845584006553550965719433331159350118174687061707344147348198279252387012913434131006594529233311475717645726039487325339735827925105133072998462738133710453601219459372070989033523961434222760141838222679091769652572146552873801229627728417022884540711822837637638547726703700602548388682692491521715555739049295921021763625591144479430131712239214485518269467240965910248590868427763696205644658447668540346705820630187046815066604686262197744809604203315785284902531171845835928331281353078861196595406301728739245543662811397425513426982296511544522389428796928693082573826687838946582308917770292023424909113924595352614266054426160439611270347584818368831652904105939848457151500890654909498050462476761717252408918261958554520856577476938937979582417667249486292073133588761548258010990081224675728487369155549769090864281092445181121502327368394311532912200394128028444464008973085675343129641540387034629331564846897532211128232968309116452069462699736604995995371476058829394294579743545819682281511252906242436224075151378050784365068326724653790154102973031075147177379205573536004714558287853235548805888404979134348646949692107798370166601029175308097181921742562342710140431281020611891537271452291598358452771420036776631265603235223953320610436261292798537805168290962275964413181220736127420883592264430493179932107128309674202309116177733051504371011438576575693324005959867372007519797952016905668664766620475565762814697243156720183691173921811217517208844101700413472703689816423077048757771930750271400584987461707974280843869125849961938962046131156988401162003408002703353848406772558990329953369990745030228861083547239440549428981903633204684604250547968509101671932103340100599738847984029890802790596934763244431465830439757051758207401249585251190699536487228406517128655687180587565885146840982384207196703464042688533689799091752956981063658398365550932384408122317742923729376113118819443140758790389969101376709518011269921611951810610052032092282620896501909804548913058258954505575981537783483448636486799007299238041977850019915704866575416352203045302143299904769184511725517529189336277143162607746320307738310880202810762675288069560067973790143047884847905481783645430543765475719937942321765178821846016667513696424058430073859320146502203726547520077400675375409151185303412843622237191268727263165601030413846719372549688443002748629185708671785505423350459570270900341539505242150800099054016496903770335198619871250793211583462086918458400374721095740508346368029250806038410204457346939631579531069535254242307410815600515644983409413910155620666373945463261896051842196492851436512585735558361092175632179910625360241043997075200772326827077576798785873865597058954932859217246820486604159577763742525040216491375847383150703349510167193440201043346256665711207322340187100913945922573066099162810579431867459861516246392016814446150600385450607697989661884525723409739829446341341917877400161097656715507977674474943312787645132823238658489182662112634795038440466917742705267771050642863123758541550954807606776760683259177695368724363183309434493495523531813930668013908374926429404749740277654133184545376158760497700837263174528589386187068257677893570752921960791894862159309959439347443377487606030572136469724269149190217992369938702836896025249865242800440851283383146502640549171252093796336175301293761642782833998677964022011928518456443892993079829786299663984506404381227340154199455161433040536583970736336139686811473316485492913905381316726342204967097249150100703409153934610184798327694580909655585121356319555968369178732224005480411326936396411456379729442814880464953282534088223282060253324115706084610646672683680160543464166340524185047399054972778423531780495410635701882500576791312728748546295228301293474278612422439157193085527186054083920693738952186562730614603369185345053490177354652393805854463250721893037886673153542189562396765531677146413385051930312320092483527013580778821236177406494724085076210534096971445196924973336043070814656864173286796780680714807242867752420822704217359641751044191371647764103908265743011512939977027892405128335795312198627079943442329260676397656728432879097598704462003333068722853254748693409499490780383913668274453142037420583921318112992717639904296507568783860005238986319322347708505756558271879403381883663582541868501164293263459322693394347162105282735723695179650697165274336925874498143046562214786292513804171076773656293681691730022684717889907995159926460215315091322779610990822743019881298358929770117089562185674016783414119742453715865016695460326263478760299890756120065864999344309893491048585716113300912043627429927677991822603605786498861588239642769268649473384185754305772358188425950501253950969945107003494636069458704515615781559501117626112679386353167876579067645208943481312455821935481564257231852939945804836727516182385559613834761175284737742425745517193523850361116707427264001724546226342006224691320945295143774004426443215144310693774331768538528631253911543389454188963730604642860011396743958981244366028285937849283128029730509962097219861594583817721883321423013818437876299861848940445134715495474993873070750230547282272032263269833393946003945510487252623025025419056957169385859260798480338315095127072751506853791965200267389017709561988139964725758919383843409913872043859938092482459903990413840047214632136920268904423106081522148405508094283063136670899498921531122626873834408152599365202770299037785414384526236096619895894783147188193303759881861347142073065491320303153076522342522945385612239545390278090786271848969591307736226137178381633144846581760631791217728196593881478857103774740123824995003954198391033119220403360176231986549573705827716552181144448258288362116038344154586253880341559921160044899265007716194250234203055231421232572104103634311755598142533159249755320741569333920450129806725574511830344362481256431084508586620116299231609088586298091184192052125058224958325969169260341986382876306251517919635183256713911758522523986066102890702885160990755627391205587803351441122369708199106140536248790399208856670912920647057296259395010086648192287085720219751469796234613388970006688067461939407775114944351062066747898893584917976561129410954415019320879141383632759159350402519129692392179441148501826806616268591994922397542864196501511197321797553002463136530869239154064155425970530505745934541614695624326036740518259603414845553643614995068001957773845673060212009718785875477286884505931713861672631537939778794800105082565608428984407517069909611777942553682076646028387665913222757662073354534847000136312599203660789188086072839881756295393767771651515357001085556488232059485423217151134150339605489880402634081663623362132658098616976181578030501725190343388256266906130550044551624238777271347567988599840685613140008874979916910496693631286571034544836479595016884942099495742968110242801314242103991188138857383981467391207604496550988414053752686512139593012168669813927801892331774628120888941711927334583762462426662829804566907362368862178841055340958247301101212618261328435483033944186284526030534606762377040068308846716987349336477350442360902134050908796823739827500915305398849354648532250953448532085539005475637873320081404021860094399116001977708580622623326939366542878733266278201032168178220880360415413062004991293020911263938956906199464865953512153553786217911038631851753218197300677371230362811229473951629298084362404703620796365811394871782742919200540144276165531369320633533076635803904663035716395725691440001811941652930286004543702432350608775417052386090492302757842310195978798135213438924907872547134248841363966596197033623823618067944383938975580696847637920000440484637134967921847877358792689650014491313070665688121968233180048030215015718073684521604511280987117697528407900105237470831374686846474261979661723283391479729391309964898845987732385181881349650291441945149963934103990842334580749943000562527734270662195752854380999851362544002774613404470265575994000512251828450438382880855615816889074701432912307493333950623598148421337104287842655991161019047369297050763531958618271173272198019175923802121588918865545744345814727736149587135946507300351771762523647078399373451494008672195978581549991605034959039955353854112699454862947280737176359162393122303346073036059705691715122803738164954837988350419237654304963239480302410941769215284093126715468436343292762348093665245771766400153054283328914755279651790135796629975356081153510900377481818716136921510722738956910358875495929009376079749014151224499319710360863393789978565220792215874011346016077524513128608268162729058790798342494399361818487696130305369026128036344619182515781334691713644994685877818543421153604983627499129028260074478584841961553041942945814553294317352504834135114731595961991273224834742421704712539340808196451937841149544255709293261049264794794317600107215540167456570281900020689293895786541158449763705547959592805802516942680007611662027567246808810563877142431440212864633387131974965963472399228387115933812704834676574819775790981882933073751846740413023218714797847588165605950086085059987727265527886015042643815824148185432088734693857435975763050494741889054028636271196499665475139104984407418374370239155523054388528291487096112300735262560361421545339600172027335470987995027552307393724976314830381498228527782763504542596734368937893428282019837923689535457220067829757886118842115195184103616006365712261629890221677186984509918800757595862885599594125363315208624040383097743832555657931695684577802083473926464076743694368195502076824441850028829324536798041823001575708941811948988075326727477636554373506098746774176276838293581485321588256470418732332050581818114493015476010098384420557555981557679178495645953888197968050753232433988651245151577691985009806244586811215922700426391732237296330008342963748080494514660983205039534373664770850900927408403897550846510095354478790346260036602533018629937186966789595156468367331791751808411331132957551665377565225932961934805967673111325763832381673664111151580248961898576108738328064319543923443380576949745846459594188342388841778454924365255792881993847991309625344314898017736934699769266557353808522079919621028866489475297978374992280147293767945597620251362109503820848318189935406014758581060541581441149547229808129587052977466884175580825960431488809464630489291240918281048118504519488424174003156419262693327406397647200086380236848530027998447091275823927872410405281566271339489642049572179865588133406965479513812517465581141495805620654355456611365140986656859793331274586779874318668918669861816492105174458629289828271161044141501421202078003288201143519801252233902454130889196894940394141204035970475613445232773246119403377318998886715024179756359622771875075882667779391209881583391087377714244481202694931806464293742855705379687142744890173914303259797451489130594980207946043229740869898473756289704360359415786241684213033760039840643529090981941875379148534219971620856527006483590345885869749229497899081702119109219554917168900543418232663445954553765374523941887679280979691306716640981082635272497406542913467900093423157032649981840745087487044425848281772337906424617809219756022305468299628382000624658845877596279320945035395698166269274253229327481353097358860574892346432343598782896754433109022992901201882382203556849790326277982350074307864719413296807559526977952856526259743522298223614430652944851477494982382488365632976640408529087134458874228078850788852681797059850395512551037250010875311372466819979560663195456088748105629278041680189892860913209477046839010082174513413085795114217502438205115347170351508873975396347919342775120701758194441895340739906188449969053819531393804875678248957466302565338022120385020799614151519788255642964272853143583476500965861578480708303880143738666183763257495049105738082021068165980144724751577082563175227334278784453493159454709955401060744597048467317424209854380928489133721871554134457413548424703469438923813115647114326814433275329604970804574675872138539903889360553706775796338171230404666229883846997325444683588253411592906540312606805766454708662906150488058416236136381620344329049156852731495244429659064304969601930487997296222409064719123976933817461523851016645245163518015711595501893486500516488732260321896893997086783432940042632705140692891176486251716078393810444501324092938370971327500516952650415786865844030416384055351140203966922253580485353488007089252920980733407476139110294451735622403733413017002928008614396704189191596232026328621096656353610207323908889826602520517941867329029202053599009958761294820754344694153650153824429538172131608878949068660190642615467807987511649617078351738947796599330252003808727152543926032448275972835475768052831972127046169229626815667103461253718809580674228975150152049995866512974653104451048891076911582016151288593330787061497083626791086520036202548897200127186162706511263747366554853296152913898464416196331388267775581389731355740459012964934559294818299630471192135646106074419003604420329258715831884593639535814514497063392892901019849567474140044719397586469320348826826024650055513724576800418868400328089401827030817926177852433939322171951469681706875336868890413030094989103062101873395529509811808132048382517283377170711051469752132481566908392085987720457127222229209800139467555107447817052217576757951637831574141459417661561395442808802396279581545436878023812509662831491194464657558306041694477980098979251049641532074081863567544846828878178687318628148242077317207072771001824557127573687066659747068605659040391541368600780052942748477817128554539207112154320598851988397500504018040139730462503943264246078946303531906874800345870503553623745948583619184578364129665933643698906069605883738226043590085900465157504899874916071477731082946838634050077074277591437548953898939875240810912771218899297255644482378519909596090417072714437541016933813624666892214456458449055150030358485968126595863022416169621024174805880180519530638954790049835557000827082224712747613419661298596033004101331719794397493093922187695715226397259891104785663633225416531494653455053078768419635225259441106456603380964938625960600270812818216628778995457294736040083472595862640473910780766003063603635057518620210415041801206688930581044584663136042039034687703443424556975338316526954266183513996394209918203603868487040822571590738261866915696564165002648473089310456704311427156643194250683385650675626844935920371654136880194525702439689056262737105806433429752302349281696799079485406944750098657118365246090804595583623736413806996979843945921279563585008368279164667289381249073042356568211999426190108409857006985341006657570007187344000802876655162975198660752071145590413333662744754726504481773125467081196657315868621819700614805884640074193709250571914069470154183312342242087605411840886383981322851244349666500325276385164572227074680863233913639677697239608608233990407167945162729281310007309386551731065737842743630092590239973609022882450308853889958284159300970026239851450156555035040537366061336340099487499430714676018518576899702475615051797453575949331146013886083338596528951237124135728815403598535867129410209194522259266762070647290349555876721892350986578640640807107339842345907626868636387185883963564774605923334693909052023228607456305832794210194564616040239846793330237233305788845236454415883428092943918932949461986491399738464509130250403004637015046492842782531334519695668327039130385726542347341260707845372035934202219854630897165834804751132246331657436903128790787305156780987588843430411377472615537145926986849287644568719351843241676242627521010135940703186559938848062794278088989852517227089021482831893336838321528556455047977718651086946616650930238718195239204947760064547873174661154749250968754418279184681206438826043960008523726020149524112628455715155302563294717018919842585252326411379189755840205158662779868002498394464080658461910339297356176460579284400435367648733568886981002778198616177390712044247246877413837487782441380757164834666408815746109006505389537437725697877502880142497552604043249773707761380039338888359709245731189004233357257916485568698592646486366077554966554467649569721803925061865129433815751213236168191358951268724598637876034636670503651095810444324897800446068838267270805641122781021642267648279456189405681151611923226039884956152633690771059585197017811550411187601178369166368030382996501284094096561639194241914378956986117339192353884783257600695404399549519275665896404360356616364315210221096817885934828452952056576684468962206235924117783142315940955092126613011727608728569381737327844835767031707919338258718866596470585355769306849786766249667382689331992023137337946283360959571653917356896513438363268432756278827673962873064828643807313217487371597128193051406126028019790646716476534384265655396360141436262250236291218124101977342918060066017191181788344265323948222010507574179877850516486283217655484758053589252061323044276201133774421709842735536436829316208924452408990386802598736280898122469110756107702188304340835250900575330523916802826316097856869227848020975305390261153214915747418695718680117082761128844875474962306051736910400292055694389852280306559408052600010664448503123407319966700193867922589915622995224976347232004284292775765500068816782600361473669258904364686432210086945521182811321778972765474910494580971810226283105607256581379734129591581853028342820395095727586037169675992642104173590462612327621190005315540076531633125986328598759722502650716366072193705431148380285758672533052860977161641874179810140041422883062774500769631651651893324617409684958196987529399440925848129121488769831143216590072019227364392978802424899108466445466231471819499722426545027384616821409995979744052437989826758402164561491981243566947972293087228125766069456832051582396333170174889640083350616238165641692916062533902489764348595946821019684074940880844861841768981697326380633662876423252687913283107117315275194430806995108067000990612234754870680654728976389416145609283149879132459141267728386924891651795549204453322379142055399945827028547652857450736090218544593485154339796092282386222453796713717169958719775545025824566135432439477824504978381185888043174970426119515496945312718026377471001539922412476558157381055914551835032433863331584386175995654473946854364305397888718951325453607561358693616969424468631758253811981432196706927138613015226586872401308895701138882029485040376325647092221885662815380086730420853411961890353664382124908903176724315306767873729659121922696446264879805879491940533098689970748681664510030921982460394085297863957273045993583699006798590537957388076190749133802276946619455576147640810908162891692375205339383370021477905351898397833632579078873878915648958571152076486480941643530252568852839029139971965692218787734441003278209482862692535389648086336546144024199624057486086568597011547373142316930266570986128629526356858627515254994408214013664016142674466513572577640320775903116367509055254499676431914298407036129531809148974222299814670434206979175044584783982916109279366347574184311487172408030502473467814724901048404033701699234546711848870218502368768897327650162875892594007048670901603375515408099386673862877379960234510632470994947327491827578084254917181884735329144733921322258503704037687044294012163720665288263743852086854306200659835107632326783962073625800902035858401016693681697725902608913069678414205520982381374361986773396809608667267428244480874168402930031753229083872488212194958656180993207104505124822778963736164757184175586984179317275031767057820728034670352727477839871431481655656506361257412895886632268286946982638502735681927296199365482445448433013303155039117628349432456762879303336399222493506231480284211144975149803265152878271684455108780651872150905985037156182409702963704444888641916343872696447270399323106151489145346805074882176584193993762678358594204567762498101913164550172457060891868482662209338590952610773293567467557121126227897353732915092861323573705352291214178011842357005577820142693883932243679855892313660682234970332100202131831208955741418548184343571252096325347060789261880405919447710486616201040411692097718105826877270506424228344096875532306239329313873054455253358362174577832909771118594756934794955665491944708218727406930931374047804323334466736134524699499563475936197865071149096853719378904580164721420815590706929205205774205739971299630588992618915134664548718411664697756550127775951441293080314539914046748819761685550790038477800061920298211443236869731231200341777771576128008352009808166224307429966442712743187746526078113833154360932392509330810240867531324738107991168303092992139570412453922769043253291796333954906819785618662349964176084842129172474067469471483577938631789498388001467271894034138269337849416155742842612571525859373487049111784151342333056765148653214858226109156760841633973420436532498463140863419141484344204173658039560117095733539825627764441111777564052756819771732997041723881529484468764290510077630547929234786882168596659941698583047841830079686733886715586125372991304213051645397624869582612634819931541871058303252499239967918104379954688322425612482721691920208443868537187243730249576821266327105696085641065583154078890484341771162630058293562307199876065373223498313503504868564738129285120488293525763628502241799586037610600691586754853400309725104666870477659752902869030873396731699912268747532957214983069877875657301654162109136372483743577027951684191368834847931781351420238756201209057370959159628181391554195464340623386972929610044886138899957820763868031121284969579609293913736328228443062734635950914805333679835086913571909062388155992919593563937747469180087697929472761652909181993238786996118263382211945332685192916606418706788625521351032080075677537667310468271884064631473094153676399065417666712238296397636659050916789532289207464053117790488747013516927781831456703606083814990817535569402152547622962060276061644543051571881036003097429427821941450728295292742625846953784025216901534153597274439131521980125123934765003853141890267089707922987261775760792388909031862373967635710850444138241543773294121750557562681881490740594715454085538624424669013737108083890814935797439318192770360521430093244564639806899199805985199339051293567719732060570016669039690710951946894752519294953354860139124553176071691527105014252202183409282209671259014358864388863351332378407972393056279338079817476112150460765798247722436528393875042461929162068118461295285927851864355122828392230235564815141438103824529245198016938098639445196396743913648113527389980389494277683774318708759176442406004385684642189558323119654781904829585035018727691663276224354602143588199153979013500242154220211652730119593185796119247907936373964019143538874476535210773656099597233984280734096869477972773982389959013475599858459690120352370827321523688424172760731870469461089774586190022245910760069536965495353568497183471009792701271378861894449594066680335474513408106093510989983230866837114983925297253157973089380794025400247654618623964144850533131808779472157614213409828742919231595230216197590578810238031327952613985667099042535884147972063588118704899782638684555200920878249661737191144225564528231533965335398808388443510658012785002487882250774738580788934926155436868851200670822321525565083010091796928880601569938082870684258993110383978680959169350678352814665662113245012349838237502131785592256808912248454944778519152671892177205500951755999457885647751252729985047365269025923262438300359625001358402293194304186590108351095319650385511348377738506107906358409176063722831968251274696806820292223218030502256075385553841419164051371114217275048735061957662190749218190157587538310820898590182117842588082953393509128303522534862598306605925987688522538396851842556246230047902351221252829896770981901730230696061279924152030213503102872948118349684142243203568346346761004627139601038142121783779366920715389016331449151483479681647593066095619780450968234481277485837631211918008205745395423553148244382237214552333184574625824460262841274948230517805003082508331049233395509294574886854025276361066601405182340811873262246612017578044532358183024642161626183029594578429387937575239606647603731145736143799275682718061161005664540220078005348643944225327554658267125039790033634135050715441709785565487825897930291005717901795220613758393242357322860674216884403018759696120295947679956503534038757812001177218299935247746182645764144267107526825499758026915809925500725001975524860367327893304696184309849773068798290663981576522086206512861780383665334489244410307886491726283839747808871967158207016307008900435891882403726545561887691942581313340446820934424498854494536562506613173261741179862070849201450581949816931771569872270812537857577009530383996884088735712330547212940250989848898047986005740448205345544509040503123070833556491298577258601090238414538861283864039241376299492410446497915999501640031927984723118069101392863608741991481721270288822526474351368120326012778089909698017312778993229680869126242158885547608064312896761425358845402723427780570118572227324269502046532443164021681311694873643036763318315266460604213373997787389557051077667765746393378978968656821465638355407944090915575600082744397932803650714262452586182992592187611403711772284769544269954006561566242162683069514065329238650646956909370686539579798155767301773261172736076541709333773787606877569075449993369388911636452640385575445661627454751476763583509410059118231685822349702181992872156790195517170773300707739969294022909726760949845587892207977343800451356604445439609634007294148584054941465843732764911064919971493153499830982341572707092020950462522038003041200370633698125276350005873004690968337836669498149776343751840440896079521525960270647727885374860689009489142083779084802454364798114928844449737714778884881864313946594038751873220725181025300107426348653732959379342047265810992920398590999073718805287355546521064224519877933116658642897862559801564752784842245136863106778387106175193715833826775471051797945131175041950109647478755230327123216223133961277500468888392307465249932627900432135630146107476456556193412653875641665772647248877146528792632262361616890438876410763818596611359162888175284474849950762237175385178892782276469841148151550978935220721772490518442561505827291169069724027984705034301652703818735585614938076154590942065736789331732692857905678912415726677113819829545865258083518307523848833809902947247702463158437142206644827699054163293910746251583527912640104039446520060471634502384604135374297630885403061974997566245216664718448815672007777407792683438583152238527562815842696775694619042537133865227066758736417136267898330346844853660224205012831422743416779744616519468549854976677966922720235845912005818485064999445036619946204816521774260937107353130816699178850285002292694166490522175655144680976392949306281435669269294398546776786400073379581902216659641023384238065816143512403779334311560585459948732981756473002420285523143177143192354725039243307134335540649809075727716581629345609578203080638022990116879915284246156720590868300670187737691632544531592489714619757806669709728632665437576121370986949145572329666174789051357827293952628380376661526901652544477112038435501742389596682643213699778273620671860382738265036343041546878957040358485707749425215249780959124272373220213845874979549209896540151642220889891173718644780145774169613060628225224239240772036077194812873889940061278224285408046917931970596078174074336013897592496883668472173927496588308023360688028208608915153475525021257533857105845956180079548063688101419173565848229443371257259768171418465282467051050043717999756193277368437126217724927424577263154921715128073965653781731017424972027691533567828861910210541564984785742500075743075323634697304805655206926136998368274363442403156241830859659186344900936080628831050667076015012929992546324548888963603616094045751412062380180507144819814166591111537065856861911094908912815813596194716554784931811909808649051073547006022307419124450550883938704176601885419352269884662433417988471520229898859763290845358681687216383970018980922163269793131756210842022660720163397777739975532132593329456096311576924347412790687667320081332716199515618678673563941337984692801287496828085611950715249296760365549353890805700746393709594702159522244038240951033511907239455875698471463525648111252613828942595050353998751338334105722367086428713762373294116398497707371211613036033167445819204112800839725983056660178337538640234166798276588010110690729955220472840953739592945870027403161803150396878614718354747064613406393439470388094656550297780066204333157346945522104532215463153503910559970042144898204151436427292772509107639947627461730855435092714549829414247795838296480797286207917193831004094880819701851273248098772110993185894777013629039835561676230849945065336610374120658856374657433656392958863226513714459813500030152500959035565172781231974048854983149851467783712441426118905432307998703775639374217792022278244251196736588102944118256158852253993927707254511126687647940021340683510189022907031848741779471831871831821158492804828956542401559773750022561541321879632766251902088459517388315482962319993697310758257089164708609223471383282692462789951257561147875375478226207209880966576352191277768730109715034679778481085122010677421848356791445869737297486473527605746031763285785564096417123097723692249538920572437077642217780888725660459084843362407449255148727690999221389803523147880305583943461325887255338322653848478654961080039210544323715644452071249787468699328178694734248155374367095340968181087068181049510400113352674275193977301251071617378917168287051250327571352420552236227639575590856835527665533892654959512801213823426062407375105814497955182959962396045323849262256169846530734080504515417702540432631898944996707426916834413990693644375931358651065936347638176568274344347155433449149950800275133147522341367069457458730040561443225317437750973989274488000997105520284817893559453504919199246039535256755470260627145728463127655939948564516383891784446422818567234366919688451629909411986636454261853024917990737672220847315153172424911920288470663887058558527138704958625662154233814134058690702086342561186857438667923958758926817148660969426955594550554173684129048601627891474816258219284608815664218304381011432213831166665090622844744514741227378619323061810603382754992282474274027916977568726792899920963671585602816133499122265601123136856878523987601731816618605713971830533340811770782464440251657794973240091413890637970066672779226421118701634576365648894428080975307177686869415706095044530893982424479061390890394487299909670448298731192737233079131800267375596652155240195031300538961625323329623260494203792749813521662849761942004182104874344442613606976131181984291746838625816846483875584157410410743357632064072724914025471820508786503133353663057628527957965951892666913508261403414671750429486833681035914860715993112810817774027126506059067020486668685142895406489400484424482672477887246497152442123006752891641525392576600304283294348265406810252442572510440767309459407374505774670454084469206867543946580792270320481037536735429442292978990258167444761178718610466784746718855984517872561440470736761315390971896867326193647789332771369604531765029850405530679067411348640680087391627576726689029236108113687408176821025166640732454059113248742027287793896634014152393440233076799545826618805105031958947475974311625105894464018057440101049851689004672133973237166925457015679550447816208169471796153347483983368437750122908817143419343097845185049135919914535976245806843159567092656273393166565691602323807998892980187221340034617207612610228845671707550805770087431625359616807697463149201736081668948135045506425499583782270908731974978479996570345121420292042231249678766483941632732272716737846027658766459274364442277195318168152474875229847201056162750403341901136323685522818342294664257362497124042058746230177350424719355402409028980148247263432597587613871908842898451489128666265576074338589970113401052804285284103921989513049275899956471973791781391295350347166103124422462677057130289015564158020385474173769388916696562715378101998535531180569056339352038137603409835361868341305369296428679864815963239299549272214967954574932142481459293165221144816621748948759713808163324921228589341350568050073348496804885299602035660179415252234755140317905983976275515608625910906035402463676784616335905607533366028141379652092839882731566324468007454848269537807204192074771702001553634852952859049188746474983570625634907308506313363997695404542942114142190034538983732691975787224209478877610404404503559558445131641380484402829002793415246022538101664822045024836957196328274117523116441637772779023719201829752251207746538975479351474503470464792989984387641000125260781655258384529676639226202194729434402594625333899945306804620270271350917953655702575883536545461579638478197776370278909922778837910873193100746146516517730673202136326027178258613071348537606634364457671836051776619856937232089798657807060076031394964962048518703757479661055388486343000140383303394098935994569162908439557866578415616374105495062785512776903925837027995932007812798145507101423359022862379832205547625675289945710034656586751979964665780938658289573910322049420143401811655381127508567199169183963990478257434381286770911688710467311918731596094174704653714029674084381670685366040821349995675272828317134632378094995649153182873366347406804661387940354402172866134419379612526101993464898087681946781040523641838024170989714041425689749306624573238577614905383711593650817691696258866369511990914636647169045202823322656722723484174134504588242010168342759682909352634769592895015004051901332309557114136819266979846128910183821272220350755411503196618792231628461217410048035063546284148037786182135945497729103456073787301261465227762638701116448252783563320926967639546309487996523390734188517963779686391129217388743006210752133119701933254610879495848740106046144372972300083256194033991075250839936061298026669844037259690537879800011815318915942817949507378374133288292478981477313696742088221231891733813517573520260312898177751483233317426432059389397591877227135415289648836971855865435656166136127432518996181715677769701163960356819333654135287824443659954763450513920228992234452390899465633985784937006223275789646131569688082973259408525284613554378472590412344302669472776872462907269700136852581907058270665194722919219929584205826084696668335572320342710916761815459058737616494380797985594271612528200177115095552596151835531780791727274116213637541716435075235943462733164868602945728473157818331773111980034522383880274168109307951875118428512683754543021457615849460646276440221936504267104536128687934447146813545683881175799462386868512782147597360767105642521481855379536627829526746998025330582650778991586690179228776231445448004073736898840523952932441471030519887194618327799998353268127519899334468460586507591012977633886282360857372544218671355747206619321629078675863941364587208718058027641631495759575794666197424126249756028332762678639094443841661433175403784905462346478873706387221620365989212987594305985215237515138918832695179104788760982299398135334778894701603446039226162896081971080915258032192150596391825017052001689321990878513640800906067405315214951460477578393166598547612128810020146431951316414233996546167044197831293902154417732645688631531634008854732754169726971091401448728709974529233386269437937319829856307064527779291855262692064288389226096435088654562450975065987380347465448770259956493135342911998040169357940949734258987506029019487452564166145707593938754948115828344219991724581684243789099681584879675626299343876151037756112440738024449927805590048893976695467626556421968570733062954399673143034628944713092446711122677259358255817873215982225062256956302778400994123341428038420334796042385412617009107937810704203866859437148414005459859237920481911059898223429980011096953509180177042705765776689344458037937053029296395971771110947311573298603356112502798792497405781236520340466031153166072860327749329157885351032511992813950167206155095080179776331814570349445119353576425903226044098322917766652935559088265664389104598860332413623407305138106365336559495409186869548864872805696718061277492287155419587613059327742984299554319343068919411387138318927602356806273629006248737280728157656942197335494588246275370815436498557968629514788116421961154353686685540872456708582761319156302482646701247435717277482327570184945168849207944188845854983773851559145543945544228733397934152161802935503923169948538727855082796941796022902890702313590889134281793880269273536384017606639717925379213270455688888790963211210980600210797609287638261034368194165546261750671147783069804759058174872485144218666377831426100529738259144798972168627095594464215336466964797086231186061385052700632279712070063655036396337864818838646756431838313295718055184505352813197363169516482986875234931848672506320178771925687970649624612202896598635206663903082372477522970670046432233687900871327637863631932292565453645647987242107026971220284459931699720890151869932427247802589360839759659519579915501649298143492217709029111332655177936654745936904009543287812278843596752175834463972285194289795696277697288494793355826788820926790280083878125584822349633644647814324714665241997801720695498799623240894895888392723109923093193888513956407152204003633964782325109575468690452549502736024692986231539049937729649597584592956381033092962749023700623545196608092350615337527584159812881335052481803177289321130559119960394475446196050784534574055025614302710270576588053851016637144311270464906486299495418849647365826317811121467645874979973351140503685906306015437069347520716773224020429622731588066168328613882877086246012159667571181644690095130435881908466662949122888708373254711851756211107794962455395088703328428654617149652534367587854827765952785234978290643150047731062559075008920238787060086574420599100764104776219932304006601950308418632789052648596488478326304974873130109902965737290965918975887898281441440102801346701428337734266464317790372617720550176027244560775138530341150427744929495529407973186820552703772360742840407989794584300263015889419619768207299913427105315530694665468378608975539928790179151601580006152503873425582541380907907095453455355851534287699962661896038308623535924518957388419487600250632039984526890870954971256476164557960657712386767205350931058109752011982572316293210027868625370203966938598002869824243777563162364574640240400481414353101815635772084188130498941416816712369195509468738847138760304818949754892590308638578640963332200498250166296550581757446515723694997189518901426619884267881345205020997226904815741800374023177488802492792839817630910043172749750582634479906307536649678119812023398463386932667943989881762024478838840931565692700177280383921788022352649371922599117307707977254886560063228938366962765491078310630809167089798161947262314982494186844398820015539182675364703698562785155738481186726899898424347019918384895440554597628324533716909801076109335331192070832503338483288058923107964217498541979088834498510183375564578084333685766887857472930128492209422462457555917508639349028062110423057958249787641428035970575642464859343491315025746307263302220021316873878800736272686641697352656172067126719103539096827119638153473044177324403644184913985706432302893650433858005125298188927946843098092245094713218658335256682945709971805561981251596605655299071608971170619760113501885773958044006351941830970110882292770065598690933988483756580826762857375514525493769356216130347721800272865047618288713298036050573100148690711540008743607773374722510970305890384768838075099486291293827453013936221474457140725329633558298693871133209186881575967005179151073941238917939883955613798348772633876486571335312246675660098678915846069839890437250067850461057805234389271728318196120199832175539089107717099549811969381905695220225209009570382570003690343561532212086968586079603999085487620663668518861174077136194057089694030120202259152087314268853143686678928044509196199278240817066177615182339529076730529829898254826485531182553063643148019577569931476317899918351226480265610888943453319287003806264323568512108763229946548729177765403948173426747958626736207842673344268333243239241931146355135409620599521116252718558890367582279688082183392837311823112732434364182327916669160435412740856548712054375924072102691452275163395407324235793663398207777989133639715477412677282063613833988720805915466856408034827215904102062773022992710467214991033738911253715600005971735858917618808242367168170257627542556138718833398502458097037687162435258488972390303619807001232812589099730966772711112299754308499747456369661534725827025923137658812606841704546857988192200708538538480518138422515983989302112774027271190251118258922013171421885361856829362707490725848740006256938874049979653652019221082003254221925886026398056077819961662880252618637513556589261561487369500194019481818337252392925510223880782094673930114737159136212295076426567505473160171951848980444763591558485518602196494020226060286093934388323113501481224366218932721849630876992946615504431703602270466383738508971367860825244624871584859087134195489618680326043236701151975480127052023214814587455942283719147558340680591196209370043040427001258346731007852132818777485340598089481004406430239012481437345964386356240108798367059074927959563169353703450707842729795494754330313722074033328233223035239960126140931328856560321531666218650464904608595244499417146485140259871078290156329645514358364522122103183178918991921642354241670243452025090388726678223290003622003740639552762424562599393740158393492655530761833059102137349159692533278647936573979048860069201588292297640998812796098566926984069371018728432798425152177590997511013690771179359782042515319985839202213237245807156090612953929841250912781122461968058057159236184418686430391616968869925475520074806830950755780623953876944575008873020246774586662652796353924881733876917526230327211379884767987536695951792903982434808981044834235118444330754285042047380310136508775026934003782492134556834332326150138671695423081115608620057390813979538984910842064191531942049029362752040603025214131312268035780827616111265257175514743037090599660557003393722098496103531049295083542689642544293249322556279865177337446538959550859253111937471178189737156011368667085537179834371318398137459437780101025927503991867873499332483987148449777163339721059701906718716064685073857087629442776851457922772091437644952655186357296594672642987875651751233053026780349192195408688937390938804543492435562094587455936668269138856983928726838680570063095304271277969886057306025110222285245119734996405471225714048223813357124748811478890018475426290575149394918290200654459551397744466984913570166575862456148792789386450873587694837211659983985704365627663541715449416810928106362943788217647419121587370388137658671417453593662693269675209781172135036096971912105986337548865760534575815715345155432087867918786787661617764819301760319514319063895277972827335493962708417302024494333471978197328655254201567102907933232331500662737138111100575495682551453504040827530156514926284475680001239348995206552865570615602904177351192279230403739003598654819566935543914789844799675615211702080651328507976267054050129865573570267276613814023491149181732645262752528662226510368796299935288002819734228836278889033823263476740638190632520003949516061850036477917711894580502109051888091249476588576416018456171424700626161600771333699746140673430220596688791885152416223616476420783758799909723536196863297996177565589095345522563886592352314738691413528945670340085702862398175343529741727203876222459835053168264185909406292534388739365495051111319845602400361792449798796586316690184976729705182216691392225805292488235289196749343370397501451377953310088110936052329368517891883283905846227515230933235970743799091154765348382475201154341144681357933683676753511556466865797372608619144540989909734690736759282526580998347768015742813626163334569137577169592006826788668686108350561014710476062592408250021587150387366786147481812989511791960069272334449940156030547845767697397402115987561776348466374352998879578728501348510505210367230966194822991406953987267407977859884394318192971650313284744339679772142351719887909586224060253741199559395333026230695916962713981934663925843714561879674009098649605325142514245513267222469134618670307465464611202634064985636965424883829485028212900700958402231131996005652602995499122232098805722890993612985281017913467331861108845609569864029349739717732598550610982387295642211203097380085766435145947769149160815894370783807032133804572545705260212590747300133222674033775801503263245885014950191316676428925075200197948665309651873084625826218780939588857640207721088212599098801186740321260555173567320929093862959139430792457403529804465214115258024016991188531707758433852293829407812797154605655162376810568103530755806316805643053127807203293833328687290245866273565619900848695758157559636781829339713376612835633626361918907748277708700838477213090593465809675328463569574377162802578831018033929946383636936067087654960349612707040233072290947972240835924437604627460008743702667359138298139957363329458296614718649825211134975238960396347859919010877153782852752809892972622418472484318305715518871073520614544289075380358003957282975536440645725744477235525388000600242736713426965127422322687631394655908677967116531420270876574765397241592541361736386821764402262042651039291880121951869263559307446469493432636923028407216122455298689580499324600041683604963938736517328644431539946991881186301308380909342589943583744188913045137541512977872510064303504594712986776555965513039114357192366455665677862218192134135195876453397973261683054003961079386790552847724458272931975971349153836691817244790673117633816648152415091525464596798534865649485229201820371024888201560282442968481978634642389214343890415206090392400898033514113694956008374356578644660597869286090657442075916068358758882562320646049896692030327775917622868653929308629944993523862063994702308581874764627273762609348534341744524496113768378396836557787488015408877669913809932227499282302816676258672476628393718912456566601714884911499694532922967394506615506469060469665771695447900225990087253777995568113647394421644633304986875540887804291850893175126429761205413120284761342985505447177265789771428283549174494359353177089245442078608980155414352340023596305734493556422321703880651343298948102788323206001460338414480269286251305583505429722248641887370991581034045146379612554294790152119274143236553295833728732529438414680234773327813701460743579898978462215633467665555840972860325405091283359189743401461311957704422705023432778293827820746856329395760148079818859881662732182727761335416296199304877589299175059352585996009639272238279800642829640518266374984370624706152544848778071190368300067277352713674892417137080088137794171061516539790386385705503951949691078876008205129774406319838704427843838608022346860995259993468906908201408054214834280195835915289871880435707838010635293678715959580994883444178782879598481981610664358364362379257145750542162576583710003107891739264420563125958231928308285937118627207659409356335755249669327574131108122959163995829065745621275383542735588128396579756694111015579262060815523184284988574246010258540198470968644905055361151256079891699308020090301632702992910778365985282373965685346188336037210604876235015486068140181858879665013050193622287445237753211402039613782505001556461834476644622815056958760067110329350772115745402380609428724669762754275154605341176002509038425711216825333457116750579548449683752546093347218790289925648451040424124037837192988686036585515751102146791123939466978252832434703785063270321812190489515719830247779684290068363170717149647082874501548449803296330589607882216620331390933463192150112557569543711672308937805651669738210850567277738818315577122907015615056486854895183281326849111039962931753590044909408392075420995418450384089778994478480875867956178977989327745960981109631831606606661378953444649853321076230702511461145144710232451906655203626538862870041535643413705780766271878478472793389529400148087259043003855965052651628444460941926818797658574358547455999912853437548853994746141222777137833602083226603133772940089772759731123168362155371049972560737874215570618933882264899976279877319597676606745384562944447993151880998431921960090664309435449242635479510981198941335723800920234805405333665977695900109618752484904364481025893899595064747285481368062378615281484305726083035143279714496777003144953922202785339181615619841240757024188564726750453361114095073576735262351112069877198614956211649668301333261117720633877907938401117302623727728450479843573290452334197049414291002446112984124633176784009880792169013188093611268184720421032915714669616263260637414641964446006201525575469876621373382674184650916427511918932747264813563280391350735112649397741682888641558640511498069522589416301739991858441548932367764796989647939282902041645886836008346307751045636321702610187704770685546808653673950780444879348195295834197040610539175476328459806007457525176066144791763249035753172739552678740817763888459318740145465370729999135007120458088711449007655863429919577624837296583461952667485432614243222299951450732265257365182966638848023095897002009811400066148749178719919096642411302531946923890548565285372501003697932666149927971832579753208505757056904436093815277992690071965806534949177344206215317150012576650855005598687147464610987986659858628850118560149928466701562484765108729249666650777838901184441686929255328274643011637004624709188951657261528642983693574590556911978476127292054883213717192190646896410956264496300324857396904215170696185776471373323372452741827682416428844841206479327819160554938415175103505756435588999154728482307802528353604693320635278080468883021530843467850427007097582259643327869269533379447896114369620245446065178558169030527341894981714429343062582356399653496872849406398459504054832153781880327908534307567127341910856412163535760610887046878159059815450284101370069511336680283088151255772316389990918102280236242207726023054683411225138168366252334216261741682200084832734013058032747966102980426639308326387661635486407900369964481034951197066309977064533760160350987949842119474490485572763235507300574848800549370376249176473965528760457891747731026806146056545755926344170357071662269310624611831909105718411227572556336191587697994164446885645912042098905148943947523756042593962447548648945513742605771607132015895008424448276659693887969386252717218468851363300062650223546756312783261528662128421822257465688870599245054778715648158247265292167246858319899986223027153382637652690012170100436493436163852498460345824500689732064656561030044908532937073117080969957023304515110277588219610153360294405803414322923636780770030727615110794235369948312420871477243300643406805298315282787274369311131407213204164222307962030413745312971918789851556749925186305494537721727047012810276652352343680409706823260163995269874771100672836104956275138380412269421178824296455037086327178072271318893246879179207906559743115200426313590879351181955178554371578778801519675331492982890776956065389913865716380544896128841841386894915247208637592716497428144888932125204583808012452184359432450454855022302996896326187587297853867547205988929065453640834516751853715211430250118802538322171906899804685810068659058092440329333768463010206419935835358146147967944106156414782017180217310584658344054074993460332256850632192346065833746854840409381187398579316226771372713250852303117579927810656489897951892266141474513320730139615471639306603547967616736467538714772914295193435888987463746055885587123985364580280452207823482361861671875469667334610478454915338301987933882575615527181488439320629638900201338826326149992162547165430115444384163931695615447936917731904245733473340433819670970943731593237226384446253186434176565861744818653573306614218514674907859039137246391730220235626483618353478544249685593871546095910132444334700072717243027674808239927954654673428596897240726320349797704864202824748488676994984454594926847565400214420603104129245432617329506790647681039165285235042583712268466971185642945526656922115222512414173992123089902729636630894952367821915690589170688110129286765495499368361816511211317816011106585916336051808190748422789618006858699103568684533242797132003591846722483646207524151234314245889233569102779289162931580339687638977417684219753650600801088365842651838908421549853330187826188392520743352312451296121078530747452625280748060439779381989301659458035893347706739265473064117440258930694636186654765921792991067868716618093427978867879649520453682943724717957425245893922507857961281006992288251833978343496297559565689444637242415320263279888189707666226750139124922978043278151079968834512950242581544712401482803532319583733101999945248056283126981305932092161735267973268003309120869727344508063310949362295331007372379895547143756535154390888046661726460800619167294729267195678558752790324651000084221235739573905048882401520392895464924471583433865957879789017162053677137178232964261099320669251289713574594453888167521134739248477744004739489142817509269651232843027594618817644345641566964133764593243863009430782664531225150188803910733847563162191759312727943927235021275069467224959677857927829325244172558299248359073776928663053028640835484567393001727582737500341892115553610544655100599442491097535333757746091502957466979329704547597695441138913856166855959398997410745524974431589839567264431919322765811852094365277880391898416763982882554670206362164595907626459531519865875688132032137706887089786755948071686958967668107752817955433545423673411376416867770840403244401131596314383001877202894167161919028910492960417033242375036427143485438953287754534700475302055353220449647441097386879445869706074872829838132304497018448620458808943056467009098377756100572258122311187704235217073279763812797739503084481402611546113671012062397247892845874367721287485924603067389693015986311147264178081533588904965585540422113442550782327659136939689164203543138718666929847383261675520619263806093506372628477606613461677727680939811115352434153903902316068731520201218937509249948332462359914770251168952435954072312190969972779719061885998216600300045929562043465594486267574849704763723998830761065919569840067611213824637199314751461519222534323890334278353418098808157499063053703457238494945011556359161721113735527998064722325314867063161097912270499784780559315961682209618236519348249372389342868870840986087651508555130782481957956930834072509531605058434522172196808434756745695469531058992772944441607387084804131786362511266480795620587345271527357331718417029142386240221708816163166890397609940508998715145518949036212761316866566500252619928800836460641792742851306293093459606165625955716419620343156903982762982095006114862961191691223114968723334396493106280173906082842712365411794054391909596168788062990467579806068843664937389133961013601373458593572567854929203683296561283240681080197798512864964172945511234725798791014828042395097584016235995149006595743329591014687986318460243948754479097693139481952504004453625230761475858907103415367683891061005104142343252904870938281876851064006811088716108017725227926119624479943784010896664544979732483320224415747869550061456151926458189437942163035642725477396150872413734154082197811004824611456241181857691819415835870205222563603698599388790256533813168404034166835697318971389400507128457116413603253282966221023045774297819006449898261199671792581240806050268196019402945145165385670970461852805096952046636304682970682132093542393477678236185354420288624229458037409456024844452824831905966814342982389636243404827361617336729255992227581589764714921512427268833134757654497029912149877066139391920109986342127434616331857791501651169311822127675825155957219707107762568235432997748399003276366088759534211617328795070842017927600367309703678761211415330716031934467754278859664253830841386989267697736169368904299469317869803223450869920560249319360003154870524844983385801791494115799639617649921627118361022700588663601937124384939877185502788134902137013492842943295828366096314328619524902039879988929656710353554531831416479976839315840676901157178917528862361848054340127525441209374159981843152656126384611931000676299291743629587079879336656565483386056971371004596792485414911835303576773032267356023322227236263635330251922466250658427664629878199046347040109384631724964318711127344357047649364475704745098957597020834115547352474835102521861358986648931342110918222513449828062703925934240197741777060137227949382096266948946895336519926752620548796600837210890673372152733898324804458108983604748610850184326208480709781746866228271412464639241052135555799573014772683748025595732535745157809311175561017267032724145988024584745914765420462815689405274130501167456197082637741862404592049018980717259862521137432392328889529116276688189162223780800160428483337138577668231608977176783862248770736171100522559210644621196530386114286741067566070287274124225479565657338160007520198900192510131293948046734420794823023591855491787421487029776058995275095094702606221446058001685778093053299755229772407169986005617679953439390046174603731145920785601002747780473550217870686862490601154865557560359471222124122758442078343284205574426262474236864941636471590776089855136379004139454855583197583600310422550902400582384633958008170281517516489422169450741783218938117268506154268662405452886255802843056846400450837528835589371976796930040079308051686798046100614245269731297270384061005524501559724278475582088646618172341447221702072980295560533272250676025197086904795466116886284740192427088562942595312426690341589258243151112901229207940591041216073787147500044151931998472456977588378580300602056981845327739824461979222882441495762222612631863787646662036955544033619896366261035317301173832574104757724469137562131042123866109524465044823994306306748104506612700046994739925057246295677845488767466469832421226835477005040722175116268732562932445822140325267574775550555896825697539345520541510439344144192191970630265420497331476244191847370563574309873893587207325299825967973218997600002055260791359342476710637214873098762985787311490358631490771887506651641534917414415510673451289782438993970585145060345823122781252793075886278128894444406033668800466659381772959071997386574151865414349894351604889388353489639930796411392435677901787219024558463331869555693361202714928958615028029229801144749385032448870167846564427202154951470950362253380488229235544953393217102712400462403826076784766984025038213718271322856101459442783724014399658993947259842152017855574040045164311321463357092867867194532975455704730663801215070886259759964883387960057100819910479582516714037284284541102907442273012592922760983711333561044732589982166732877701267075374708113860728247988333975979906420906992875642090517745615798754092090711449359329550578036285428175010659085295858892052531106410442052486524982492130376984789554740122274177510352917175879682654248355143149213328595048869047567797009516355705994910285733770883461089644308881965889992411832274754376076827199523673894019141284336380051309037039619923923232923342803867717571832976400128118221605963569916621497510725401255490982575216776841737835117518691787179420814410445379165477389924623165383658332261296604034488197973433243371851390326586934009620473748002554451753145245997885784557844856940319483547866902508867872895026117836183096666314377943502406225193010315267535905232833040784136866037867264766463243908680184602852758549229383482054144127250556958320370576352580199517493665553547484225985423643888040939302095449472041940821326392484596044923901105589634667940246963867634329971081350516686878346096842076594401523455579920026595986773618912511041690622309859727932693276877695628599497511705228177675567482144007377125599693596016599784915309321686291871097920457406151307476521586290324129295133325700123338862910775613723144038655729052818682329476219131120532737908342716681797290943568557373563063519733252792571491832011601189341551127935132386423701046641993828199142012616582521066564264542372821496854895175224483040209146319698974499290442888881740839775950263937308254707172878149056579880247465314375632564696254178496022737852800821461370182186670768245261009327383117269769616675212450241035156902428053891942106363590800101742226427051902900507114717717200891553310981206730715925994619497241194178948793478920111745477434882289909628061883036991381960534052307973702913837890187261769948921358261459303315646095803013815738486322878234709263725255779858541896177831696361469152655575535517854041971661023753514088569825665138365888362927101497210853206800662660251270635901336403577739331590417738385349927825456093827496260913760635065943403837055820763154776637894962115937474802819386014459614977347825789699720772444875521441202352207672241632215591873632096940614429780918211935806604203248674387737963028447286447034541929820699057928346832818550872088833251397857457201588480523299451161971450410047200063606666867294128775376391490853492899238526067524552148976500054067943692175230653221989256447450145648197382080526838760904844588622209049265350707124217706093143056919918504922126103768143960075609966768704466881515441183006521204893333673228361183357132125194864605354361550369851873406017251586029867151258065017837449531294857939777846192426391724743601723699609940683426954657334731385801240330432166621851370640889617085724613600377898902832115400996320225961849535474022782384176149764231067781117503874981096231472420120793542892565241547391766454301053873715228321222959011667391236780452104535169131201603727860175054744851204046621469674849640218031328524844213832213404606875014792600880779189746953061657197733891088181832098997901715906176915365466832893577380912418260302267329287013510567706733857915507974467329555856903159429546946224457110396562815939322719406880828379965730563091626345884643921166209405686825895810765695458723648039729521401273358679318816456585465835072111358719898685370041823404966496058119345824298752480890349089785984376766989714629153910880443361823838385882847548477509921016727806741882128649526257552254701885837765960095885910803345664587976395330254851067681112532733936086118159205194007546107026552586258377775606055744362155684346159182664192625159591296287259691001007155283816775143523847959492956994544220056817539213282442398615749233438451560650706225800458081890746808471780465970228509487832973991825894718593832342197557401636852573204510662427180517673884508074393841019349011014339782326657633236668599390416102018231790091233114852655239002822244196145999960920265660000723832355923335840257904331004888629409437161796281017981661683932079665696649725257834805437887340604058036958428953021378384376188626460240521313767845420197840471345678594504601327783836631663037574593345216032748250490696784847541154548655010368432530169593932121328258029203419597734956590157943637033089311233173286580847830233931938297825791192767961749255952695537452137936266533505466006556782032489799436642815849657776400193916790675297519110423359205135608116438555604308987629898184395907937092920810407500735329568342812998943345072787340539474056992699746351063504981313042894379793996186598549314508960139207182734703178345595815019361535421448913115613910664972745862548866658529786700828328401000672247271556380582326444474522522655347169155493503452152077944827360457200737570590824915415896855646740707687789242092651128294607198167665831329859955131453358067859279014419717166226024375791563225557084643126293758064600702175621286028391835710892408061442526224821807276183015094476135485072634652114079695967672818008912197682213074360851218818939520473615315171896806942912946910492765291773884893044889952935772202287381448847689943219835820866687810577861267654353767091183016731165574041914911286937873358389788353886901077676981999622743643915327340362628354005434989191885241602079474010476959468158957890189706804658230173227277219057711257304858474664121315292290474658055150197199239879020136453344935945054106886926400150115696143239210599941652858290379793767776030378974776490792434768262518002836041509672801460342990623051604128818914540223793946167211135418558527161256418492069269126056018344639907501989894886446368213058427618765683679159031145487830743560771706462120249996621403875613335773992912927177249886164076524736831796018385334434712799613214770134860395856162852235274252473716134731048065124857425221091145765126240639648613881427183185677682111232313687354332156851774624639998596997888479732300407278074286393038838546460654594714791583874833640078122893686683757548707272381279719771716577771356884321102032790377924629802760662639599696224797801782557242553698350197191471138289011984186515083677541637051384403391104816856467297574049280642054814153735712424318043505440786674162410284239229085953557557814341304641438339611195282930243045340153837621290018737354025032094508793019049515894671985020372101531681604990372869561771161045542412656118598566666431418643007001170869946404812418866669507484681959588786833908935034670845717246429442270053424750804520539117227661422403414971272221897885083180787855953433805170351709497695589196236655784355252550953469411868963379524870194871740070444836504045936728984578229265116544995927563132463901975992181889806597171929491953217713830825888656437362814932180740106870378777655833336256216709223991009517573846901275715580167143338383647227778742754429611631892152219990107578774215206071832658292829973846924927640271749469214447994930840923981987559024137183532673209285890920637326903556721000442673375296072445075859629596898711395753358642590716584554888924986267939505817842998559341310349858825106223151751449358314393430809398170982217749473016924825772933316439375876434785178982563749964582305810466692847246696531745264200118953653177266536175937148971232917457276808660333655827711825116879291574043584987391019555579440010510522620498393671589182369418147127547118538818949596855091370898483531076060856854377728227314735298130054034093713966404772856111236592664411417434798989299004066461398143144863507403515199844228324615341100567806889000200702232946663304543395256392501466960793731443642804650710832247207994295765128896134495126505537354387006954184567967936020583229162887678130521418198245125570243978596905927519044291817345494835970359003605612206669620424721848175494728941105616495677844069460950093751869302575562043864588304507543443104443348092677506650452315846134992502473509216134475347246687484535746256170521510811261262423149509641690590010282481345244159396239667742529564929234394099801971894880227412573187011503476373992365777665148990719335487047215527837733362482190698381685687862028854364987664097241066053717047118938697703417891201147885712222785344132459845783336608173038271030205189070328411631323847475104346906092056552142524596047043039987024676553675355831568190184331946941587059303261842990950587758867999770935261862105124422397197047006536835347677748537843977586837540397727961922959455541667047329061094906719198148105600505974277781187633150256792402684227922697720786073302904005950733670138682977759098937285659426198351717856901586633404873917085326341305832007001213066211546396960314435246151872189731127049397345188008002192731292687676596009118026139848277146738391161792971953447854562012130996788810385850333718820476054640187131425190656869006125458585737917248306951076800678131121467173945779185776736354783654473851666801977075528317245100833451660402435044229144522601806766113665999467888660934627503393872399925886517093774331548535698157728009238310466408197222605005557514780070694034310818529222415816141148217196926700078668798452837865439589732660608274194498017487899529111503227055319691774508893330968305665470083866291178740959169787880074539356580908707098199117128194713779583875963755795394854110873385923005468560415190252924272688066003097380053087072546250330001697991619959085505532784666752373953801575713015553729192319805752786789813227525137928159117689188207054862516486522416603327992073925844426841611900076610243625948121508096142377664856446482048427194363836796601965369845770334454522355728141264936120391723727819186534235094064028956222304664464079473148104975659270694289479910713485453829845381306191259996267628872539442638897026808223564532493206129912698126079515422783260576420371313517135756777393480483627633213954954100054563218344313692508205678047439885003942884600997061569411590393901321960635867520058039274219541161941856599721764114268824032754255185523014453946336202991970495839388657090245054893673960118380146974725131747429651484306479587503276862576095289133462140868496840343898264613100265487864202138015190188389623584716950000291420270331721386976300422966792051042083395063903572015110606959252075358150810258326619427078747994681835300685705581250107873783665247708948110387002793702913153583580082912089986236499788583679799664310151642664854964053042576015980767784019860986845718121209635149603669821316032699041378182380382550588595036274534202030738543881024826636651820010644635723935114172331585654578242574150070740172777428038569683096093551072199224998798034381903334872764995255232239963161190103141567170762455102493044480906371732761339052077702199879976307309758954782267642707055459921532361978220229688987562437631684551754230475227471623591089504951502438575132749682524326870152513502818199180142954076464838232802968032911875668518945922354146758581128659727033693158656856011062890290584286071636454814936839611015344803110791755028604287823243880224335736946253324816232107121535207296192529127331130123246166164553540060834132417498950473947362932990702705048872266469987224588660116034264212503489930958583606314718314828540966006546573159677544030548564507878430511904156025801595584270132431147502240393121331547598049622180439515313363547982752488655042187880242215071545825497410376052381520574294870479126752274726903348800808636464643602415686224827383729348798059700926147680188093313596437674076349235414060347095239614229702405419704500047138051293371041097710683130754721638786249086401261691091872241011455751559736169072066817832397277321013366853772686031271797389930784718404935291213518918305612650371206338576689128060646847534764220552975093317673454825423475223368522339122282807183177482635666490959098652006524906330202295432127540981927972971044536339298093844990810329481726084203414745721737367342489049233274793647186014103435550215469757413863365267179648721757898291652659447147579283278234285035327217913921361292611955264254904932142250598909368827554388586287595925734994186657272463847818291987025312612988651590086138894114790059620835339846675088647271354759826888506515472770963828384617205952294651752310014028616433218667778281612557407737627864959951501754858619828021175730807290024533115044957944380327722273679107497451362492936109005645975801646934633260792418637333318119009155296268021505251153230421976573968093214306805062287495793703865233978327772152318279649566134488549567125765701452361023518100868227157110106739282869069499994791567456057741646857875434080652436603691071611753434006437155550218779160424861589969525750209627238609821510289563712427265710559147072087504313491224185474878554099365882162246681283272943198467216802110561348323999949967426911230498936478763719947610781101356485402276445550428171526211956909660934643932827915546886154817909008047354687034970873901643550861153372115139064388833834971366810349362068281064967542166954690228399077491657426169649533773100984223079765284900210073232446065459884488757286549611154301378972699316859926297976213347413648093291080510317066291265985991249433434783723810668461083976900760477387916026833623801211263854299642911960317610650619128431122134441862766082761142469096835853057557266483471276792588699351470150213549186779402899412925081430352227575577756429875647250849810833445893934101610430847946879006920743873238279035766545433616269706444820391881315846981224468488355220386421999211234915130892482847087291988049965733139298329865596104888798984358745375283178847411300048132391387309815148029303117907695532347196584193026576326187074144340304179159263672894022274268002290782550816228664805741052004483445780180103966668863376451874283548447501854980578694588135135569599181237011266185595482352998768440740278888298139328338440402871613951192841952533109747712055189610932513994899522473906671799154494316781971751384905294214074691956886307234017404262093112832449890011151402605605672896040225288297959284629904731810891220967551283460221812233375981528655744405313553552835750599042173189314667191299666358606544660876178219655560609465628701953393969485024839805512666180385842416124253650764964985314883040592454349191798926268811657905017383723754066771705303945654296028095491517612296155072483485603030664406315902163072667919600692583772390311870096494984383543141629601423970258189022926337040063044649092087796368865650466114889036273561574714660939106502885518622303507363046305922074745952717290133632012704863297626846374852090890617625217009645742975746077980557710081105001037712344198561171951343196283158955694082491431641775624830212790957458958311475048926212633385471685694985251232882675341644925535589220333787087263003653364298262882038249307165396306893219568761219263419010124749886900695761080251083125696371583710705208871767146595045092836101909351345454182514310405928496182198917677872746594157685860798088259814691024067711699989474025378839507756545146438379732600906314293522205154218661132936781708326256660502496445724478695738496577201080072711449249272010078893951922929162627605735944440491402960972061250891721507196150716901514137947854368564431114893816885194436121685595069601871527064685946543706290224577300617121214125903497644116318341388817951581852473231043519080995989033398657496686792027498439737501260396945332772496157969307165060561670190692184355235411374352477390883328797742340302748000676089111124695738128917142775051281413058959638164795534696042780763600077236970312899182261366201106177973612796084193148955734351946148320734976860332165989961113063126917928935743754762089461965159527499702410441391830594656548533443736638915651012495310669333192538767830016337222504418356458726496548537328573142850905516855629579176095397920658597876721459299404667481437582824244417277488997989586257615627939486917797896874527968820259288599111027657016124037353624122479048917278237620088288784578154169239023153105023576657746755806361186340056088475475712607326664796546880290798396374878507448261549105331562229203244146750898430078817671492141952193264321112331758655562115328684854666234315680997345864696388819435092627992556549228908410535960618494252938225136472682355790037886685535555098096539830442634973002063870219489183238347730146636270678201784867810792480340799984181601898360936237651925551893225433259891611668042774150189502839885523854624155678046851687420210337700744576873290816636389705578509092077277286604711124108903488201515073388068932371800677861199009651481563556759296536297333208756881731536246353126253224178554764284878745346884918561134936648882040542478035512546530183962019194680740070314443571435798237599106815475564874352430216766013606492941503225749891218092583204358610665381715963842935352738368011859575881558127357650342775897359848284190774423291345751294818864090683812131331389942209388593606232619682388769094502735758462101620388493962076170077366675619978580566673720670363380319660475472920947373360249491495918604376466615480209386813262567501449240021489544862626299361300753811477642623205321365932187925856258874768074369795681766193694439203859128425987448106510865259939352087772720011056258840823320162464940974206422818359662676562654156211312248047895851213348501181032886282261154652088388532575889666965982737810534431106701389502729099555685693295738025021871981698617063740874709429087021929840624548033930811716072138754732494423385028977500425337755509969953314025457838281578126820304399413227371983170857905615263593067402876821699609737628019905501475123516907789456482704175753378413715914059717266025222618310674674352303734639234965715309707090927082303872544113101356083777576151210358833677783201950827823943514314112427998285314141809134211222203374057810214193842598879541010059713215039932334380784214045871362094520476973928017570618308451481691875635886155032564952260357738202787056222786966119391536968830575208156672826519923948438382714768386757817450339186480126344316961296589886371744629255776250148279197738787402166886198595817536199366421758414566448671102611301762485694518908172234025830056714999403023036301033214872836502546243223672986833944674561913056345677755721812708008246109095254958800455262370621072759616723178794506197855871962855201485832537782401936420830853685820868794915152355286379215191213858330568438685583048799316864614499115994241999764842656641746016672233265548901333223431771797087868915896349364074312887303292042987148706432718525460671445513923554756257418658255765280447646236586009231978731537810917955481272018864625762438181059200666507586991162677253280189870309564583486438283912855294676103726618709766841999484497885488540520075781144947020683589256444472218355460000139716168206765251019023891674835027935391066601450426953809211449513911037023688583509056123424068081168118907430594759577665014972951602704087446220973218307920750985212976970799834606506139799058057660725013503290865774115418731236378533426152483547033038064681627905561736926103502643153018780028585862055481550938069272465680089178809665845908073118913770371665686764660063423050844364681142972432198784015537582394978845548477977752103033315461639082829436618883924902683703008428922486951204769175578610317677505628246482201037032875372223268385264526049178569514169009104090291864872038604733540701907497235640914561862363093764003547861085582867287066547514474204467021071019897170929977423224602991490855947628565293691206441465265384790708750910832205550327545833951316063519704031328920274153136097163432707507691125462846948458143482922600574991270883122278383549131103747815730956885951393854263280992582382583765440918224113080161005444545887054943031015898945255890840171217013006976136600747012546646210481167112896188165777625442097322782647809033944676808939102047088622529875978144049264791538500773371901585852595401654410161778580917279151821698383476322582522663830389391643468928322849620571051868625870602409433021720267753079884402346265237362426154472938012105583503158713070257682799415621396840670167936346338871328516917894440149462477588060283165683129584975300584898619548209436751435248981397504641091686280734867949966105838573752707411138385623037391343156735496618008012462747096891204236940109761363930177852157662305712434405651879313120958430894549187490989607647286404359064861959059105267043528214454044418933179263202295870391480164263881915340599374534723438475515125903307907632697922335173437597813189938447228229391539211454116415333714981948157998345121535855643070780590814206799477450507749172851164313706132432949527809574218804107382608750514733485821250807685905703533526040089171270429734440635440231772873484403502615711615005057028376525209109646330516398606085309523530635780460511095543626176954099091319321355260490849316611135649475010132039421727349106253582071611945838160144447307495543188215987741631894532877125190878227264339016860544618509277241914250479557917509026289035643984262563485279244700999158756337585470876636477780132991257020888155793583505515747738007071504753062887457587771543908332055301450831801901969517981061063596186374470169922297544692678268757121527610027446920244914549435508989622220763584766321614379491041497227491378162122351679397600571364370561511261144654806139988349474969015591198243637204519309103316764024478859806009034797420152066604093585651021311002442110158403348212392308063686265488049426818102515269666473078072631571344220932756888190551783611221885229102786914716458899735285977755141221299389420019478830336458635970962835621151023449181579197588889953937292146923359213555300088548993151337957507957574711923811045537831576929518097262170279754274003795336206389005753772664193435334838888045974824755385136817167950093319355299511173611738622974447369167655502979721607177041109942903596530974507519572636128198324089478311526551123106400045809514938721637334007801341546461547022219673346179399003459024317878526022550998197428358700969516851097326508393230562509243087452019498705685335058458632031309271382054002688695815008399580477603284445298751067183232421470288126357718918578603039335533819165397297430577445608220492891008400397896621381539230961485510092910144039713321400872981500282217666637270143476548908686077695485749216392885640485018783031321624136502231247116919560339691174796122849569774566670489790924361138597923019028171977602426653788989593061389039424716044108274466323657441124251724606854439873341947908661446617947879424066145233102086924581921705659442798930262418443924163888318977791666633500258418966978202104026775729963280699568221000923578648327812942026507266446844355450441398128323465285551780872713665235977027259455180544163233304546966889636226637073793265198746750250393873384549474769504792420212596289940358243292923321822595864322509780837470878361805812219450646944924394520538512714044386510245176789573811941369952022308971720576843594789203099426344575791968640535988529764872957852512877989650762079038569678772095933076427619594376839155803618643767895808969456599132343590008104985557749402794329288727463270860513955608526560879794070809304847544191301198213702374036441727018832695909061871409953078174760344677999624502027887370531073403252215526467807756301176659492295051077929809830025417966891735850302102448675647097163231327265430605636394099834206826132277818648746245478276493866912189905111868278163798705232902916414270775608321153481310325347398208383175274115306745940386235506762798423968914887627792958603467773418707402554553630793576831709989678398953881001575157258773344474583193678349796613277675314642732130740443691707031098091105392498137624194620488319322898299036085774627660523276720800828486457429117645804533055312061298279906426799320032502329237367229126384728944231197788670090359465388622673891840770432371857632639189265766865220412989851772739752984426838224249121046015998122659830367221628895806781414048879751768711920127421753591737604417138982627432675606615800278096138372919919671689797840928962722932996382639616253760739337915042594437813854367609707040850444895255711289447698749118429400908335243058319326884683970789735551747871164540431079841012091658530979341448056222501643756021804862090870516194608774629174221516813921933183956977369698211748164945907271486238151405795940504988872600763553913035564007113124338879096603365047413731294798457689046777129353358513578729309730561414563141709731709222317558021320849939852667757734402481565815426853568796224618947968932773611258080087483515341695923289480757395218954402356351182072199480410159331176128424096567389346045809589380524674510846454635963912397691174098497884649759382452662359414619797090315680325694999608678292804426246704175761287847693412485800627672312996775019842373164421530841274503203012890422864471717138828385472091572083160958003977940570333427582941957722042545981197327253340451043140029227980879536567334304459769844307822078652035610706061544742480150075369378556687844903472308840149341246661379219956953849430997549006262228688630603617200522894747331328655006275580966851393973173926773820739638008101486378299112278846588564428312761590460498318532924476642487634751206225984770392523260086430790532093784540330929280861579569154596823577876369558790750743244059084285780863724022746594455514173425694292606051841878211947378787278243932178766759812141594309601140092242463754712256375206332829325669158358226428275513037383469040816292828083673219166961876762686187190312788855085682710458510094234956618132925929983618912705367008996576781139896024062326514698659879960497307822844908282135809942670592177717807360216812004994092458833482534482322252316537328150538392932105016498266075606506605313935842116400621341739934162942909229371550180055489299897296564554554400663065899533525849300087642696654344083829250956350342529125812891039557628745554931473337315790097736655648257692849212028808489500137300776046793318656430745213081316298619047904705910222579788222100852375256396905903045404072906137344669013193774366319982671251471454324261350195866004482149193986326136035329854742154143695764590137938364105511111156037410090124037296506343414717999831220990445049492773082615774856751940830001884426066237374265428245438078520801477036119229916953134692957215000570708370085590845275829297072277330028322086853218053016346047851379091569417106495548286320347086982806198138861697275855172213506246065499960827385278707964864291063268280169128437467631197659346352490478358159271377399579119097945352845185191535459054929584088335635512886008836975046176879761366296129095099622582163608221392216411426421629868078370142948079194281763869315265141748449751659755668145408316168515811035448059691569770090842333408601640697721436557813984466741202110622120638422101572811541948719928149204510728403743914312451203873885120108620287754037327734533667876615684246233391286762730641945600932980643795234791208295963732707284555541907258687251153979961948784910340627652878640285254385491858281225150096562845315019260472692778445197077613822337379853278676614004138073991890898790453228866449103765711580122153198240205710066156632233827091579953885883264810284669725921650490648419895031397459114644312144081638895712374733775111389133412981327788143890681782207573695179015601040047354409475498139171537685418449942357684656523039907781209767662592181713534877150628116263323291764125681214634786892799315979895957862292268660578911788040245566548365419264985696650824589088731227632068852557953741605893135608486668101171186522000095805410793867034787957076169184065661126056068537027400336477996174162418653272130265797236983325031140370208342432299326184841126432503352602223070333435254122969791520085282655455106469361063133989635944455607227175825224073014775919315205112040187141309628349525459955002206107855803027947175373333161776261309261975897353789666382212529362633617286650262750825339889792498254769407112912707474565683262182476272256971882493207553518851607871100226918350648725295285215713904723483399620830193356327440558739586076625098482599022940190702399446641323209067338280301241909645533265771449249182098059238973103607751050037677553181980886525252919885191459348312978689555150107485939426198083938132634602672112188273505214735390717055093885541931077043288153979501534338668686558266044682633094471349264414404381464031483767175099509738528157063999847133626476725328025789377667733185250545167660963973949836219813079832093728231136946178062252456434475713593331523404526645795885134800908838936452263096112179463440831378820861309051772164876386966057813928215335927169844445375879004887853567882948024897800578112678140387427943586222310176006328371065871871112685487939460723849039328853213371482364669631396925659163079395035824300779869389986395607434614134133503264554668004402472203579022156437316584910793881850795960235483174935432700766159966854263719979003813017088186854207253253634659763799701466970889447058007767228615343278565937659783414742700686142928003148266348613962929381936014727655569602898876081648337610453958750080803437208292463471401763508913504871507062687367408940830524754689745153850211530481975767392283007785048041079191557283523219719796678284035716099604346795823456427050037133942760224257697989421061555444853777484066613409501806602590707487980839886819488128206196767272228384303756492261882832406704555213565996982878865507463015070592979097903417340310533601149829124511190474454581511007106619131466487784013537598305523922846286687572844790563568652992201161295904897157489171356339645084846583198127291883959212154451532359209491751115774319911392697936443838975917089787471888817578339152201702621493430101850824655256401991289583742794298726684377334502750451274150537638622347152810207463418613624266654713446675203567631979317409375847044821628428290680099459704858515697675140382015219315264828625644398134816074148353223423461938569188837471431883291586079198935947933709054694136454949165240620327808261115669658138775008697282482868449199918806171261050607239249451300314474154551507096087742441550107011975101239205615780636931232437404077943640014803929469538100654245988462948756629046077241593316679367355707387184983536150365639897706520423101579455621390414558237288700668787487681616371424210004779734366535397357533538868853873036165370393498253802208697787557761784113005726692752853179709029688069353899086669537265266848978556806933094418413259708597251178754746128019174461431511594644061929538158960775832907573828653897733133323301501788768559069331263364229281880707900398466270057078251602319671568366225164928731760343707959942591495307164236706641340593393403144283439341767806977504781693559882203326208394038335195846877342505958007254445169889128176019724505557031978055998700227849096917801302473668738106554453546197861927678292162705811335413798759403117662861983425163787753913711848480737890804472336814370890846809783081263890214920428756902851664194516726882778010940769570967993602060271065810767474216308051985886270793072551061272653944835627770587510860583488869341223664033915815088436999446452987654010208808263328747520973813839993404195071947700006220851660822596932303907832408295721087059731919524018449961385594045742717040392768173065010810606390148779190593689651934540427613947255307534668010428449171909616780496245660238503138370710261333590555739861696622195975774228184581474218393294843299011611719694326895996469260594749803716379899283280001289853626640367816551424960860781714022912390709521674795918268341999415203929629040970510019902446885753204109938784997699798880206285112148919013056092050180998579888858662633824219746484047941575654286981843286485936216856108653150097436748665256535168133263657358116194314917380773612379656745646186724646568794557182977946209390418485735929740285801856972781987841469822933003787272066251503398612339383339269222611365116314631756931108012193796812963765267101106839676454639936500638715206807825582736674236851691496982497646699204191451350884546785404675313564501385572512498163567333492675787883523982380583995436409920861562094790791420368532272581745463156341205328594282795936486060433461021931070166062469522660967016439864276241325799017713830833762391170654475045184034013962442110527179070198642643118478903876736166437448123689784772562198090465471392116469508951764692142543097907618945849527582805436823344167297258901748008620384739658220155624957766943274259948181691870569821886182744766742402959273753580186420255720787494553221359273750564996848378721838887614661090249804556555302927777271070053174525892957089485397119994992449165672390460906992750077981085980513249601178708946812410723144161079951485192148728362005249843211570254291337631575344526699971745521926523342616324605764544444178420581919416156029059485387881129029979521553466313003419613820432101676570999725122080979113731505102002491902097972755477003757647776227135481645466361077660283224061553627780762505967543932610419916878673278364883552468955268716844590252351044745606824417105315203444094917432796867112861947610481103087894193345577445216669140697807855972691103558536503377724726074815788295250523736927489978760248310685987256274650659406579719829089882601795953047948566647131905878210890723980100697185014257926497265178344923538223210589652003136847198449679568544730049314305984647866005680300145011509537863776725590894414432455611206512664685215385335277145209127342966198439827951861846943765489247290996701081843874269255973278714574675504866261582796148867838353995763070690174962825517923660469350708690435493651784617664943296525315029939906255047066915103618957364852402859263405434792579329719350212314485498890858757305408369355300947983799022801967690352484616754563365644980278980164489275899921857076724212797915400975292500585526202173102778079951513077564504680778408065720122770648257599411172194175118367417210568140467538259007035518620681010122389841760087529552031259204941973192687146218322499735311845346612348885993918448038006717417330732552481234606364676905232828137283546627443028734281563900027264728528306091438549614658851610904847506768257027061789211759303895404460654781496609213591032668665871906281575955894733768650690899431376336835861531248233465811711528489141237934161193816952379988175135759081562024791582593523575832233748650542216722137862946408323429656822885346678032186598354954740494218996517684107155146993888504970357549933886776573262794595834684835573170525384873617773796059907787905467373588463315624734145775062568763204962260439241202472800874222867142703354779405142833615145913749236368340082316969941166267920832899764687610407505508100523101347350919648488659743486887160608921382901977006759239960001596255626215257655480557784073094393513829945620350662406740271015452806536252704010889452159294698782214748015588429304501463483512609553070164679750325357262266520607773042079561148871681085905243517029994116440876029811305179410247746310499055009148190802770537943343379892590727621546008425640753641850557337785815410857222997546720903407653749511174360420710675803755446587724456674903454505036109207224371679950455003535602947531000225251392054226771640046821497606520305587421014014163943639280529931734528929439467687360874489753969154166318575995019559335027287748963706215418621659522546178212650216559794661400632313069024488205081746477670558718657214500545194581992217181229726957240033060781885396420746170387092574228316850496685964508751622500471317844257516310205324153068043799715296499487108876030545767476528632161521167045894897845351388513689677955159225162937738876380825752214167317741187924054729695585379941341160844621721238417453390279017301487677767042229061684103298269341432546611257186909439107301674955877006599889777496703086065939908708714539959936681182554803150594901518322766663354697895896881482596934850549231954640154720705244463649352303725020535227699560465830306378787732635497967066244214153083379493504794738515585639375356712297163725223828896204496094820613670824478053055104208362672489046252129417625194863567855610228738241711981939843577821976807666379306128116017303423776837015298029007949769245242407119319161399770254918260508229567615037021558881025815698896018578922803401737320582276569077499097756137790027762885764210385139033292982373261022433655550021962998415828574422683544061380930399182326423866587535601469763282508222603596950349348601205731751088842537666318402410457426115354316769829036072243551845961653080084854705761531925754770102021954431579665278606837754413717247780859548705242673167536125623161708606311120902430088888524516215677091300736983699508801551104637762631841917221987629650740773875437821814185649543661960645701834211552259614216029905636499257681966996982329594858778820681243014679091135937403815766745725804902806593019107414845482868984894447971018440463448889656431644863987466281971507397763761558451117098387147415891414091461517810965712112674016161437349960634877853083068863514447216742700761360614241009807695361490997399665483457287282120845928051874228832853309235337967581242482046089603986984756563389987770616551639278305810039069824948972231743006000117424274451554136443170466572257248847053024275383858788898210391918569206574568106430750682984937625695187096660898265417597234503444986362955267906384519767508104091914617454664550716320866658876278918906658444859140684934676182226511751600398568926958831242906720254017966435829839820436474363245684643492446074419375785479502277808798152576086179190487339893178309039603573277364905150989035107021213983306196902716917018176336091370881740181588500196718136905044656089922339417561400699822310229065935644157767452935304345999706839741522473603192072077067350974007382993670909175358606919953318367715362986720259258719553022661371281995111714864422896942072423107909175296611679578740157056936428017736897717155185079162725832750429851290129168990037549142498854663049993262894158583953547939939303468576848205400647602239741065379468023688545142475925857733060310916945577289750913878139675961297513670429103559024785972632104383255071124892539594024317617767132672832760762946027132391215729139836654823318579494420815480204560117200550779653675004940006613658134971694600987584608639636661636004134063860437437860203849982597879787169070589457544035252401092626685000638985930283598289763023123183158394932383900491478387190033516155692448179900454302599473510215134067945881873330119873526708096551594446446410625213431882544012597897068777892017128973391925161058133720920542746021285614414352486750442763917337713842133212780302435484225455745591345930513987632645490980521311330495524725521608121768853127567091458464545839854696273315394832128112282886086888754549720482649121586084462635776930302336747156279780513872831713266485834324023169415874715506161984376849593301367077375698026303126724127579906951237847623052873139063456122648353161407194850934362510485093914877065101316746783069037403555411864875212425142930904783075113964669322933339235448727567341341496192883748777017683373056015292103333984752717375927731242279545674424017809115750980619630746608783812339797411737679124752644773984468604767050128984699036886738083435266652642543028177545839995445748681968228640041832147243649960398656893851728253341453480493564596054769350892121539496046700030705929675818387229340839410783911442675470832522685913321800703742556136622941142890875672980544033527622286348672525646143005387687230051238048848632785454689884673030092209108534236049370828209036692832498592500369066324677554211429592252857495322314902110200186769029981725186883186945835817917362378926240772242979278801778709111684264509732244739070229587176452481868289687651261303986061615010728034718922671335453170932284078981069390892837913909870641860459888680931373478490898431637036250552422359615654902858428808916768620701465143021928809568401712972765094758095322519231284127897592635694835368857752498189692949700516740195862599266836703408237899083072640368456257435338831815953553373515872934565195594892932072175096123890955410702397307695929657682613577597015166694111241612099031554529328159540236773458524946431931238614506361105706974195239723334376034547411059434651083885247974274711821329726432467650459554283876990551331613555954284260613090768259852634959848949136579868059679693849900585128646481764704548131719167654188198059166671464000847543897566898674038210527239332470427064107085869425531260413197161845020892199209287234730529001875471253341066102159900124621371717569799281385433467939534582483194877403595287536249694262972028905123597244250769114873409628077608622332173709219289443043158418520293748512790543789973911130587891559544334395557612482240479958766550323157641441427790195352075885986256377118630636230781194253366468096290207831031302189537117150400342662730763945959934497733870937825136144220733853573114834999023143740089787090942001451812426130370319343831664643081894488427675082608350006027117331609078476629501352982671740741357301968835311329125607966045138812705321565442947995581671805960656862563560518939246830805507975420192029888796811572548884562941513490927835803906517016032176008612040185178621507786435591755035262725832444833658397750571327638670229050758103509403156125296566610372336506817465024140096938451581451756695837047763767232752078536279850422881940118988464887405837006343714167566343757381866590376222502706350101050421471351199606448171944881135146398331297244400018674988460489252248034717713548188120818215632831215431317643370728279962104835829537223055136956586555456863084563815376555597586504565395504345146442761897752465073302846994910008198697431393048487166267506944373998876172632016141210624862772797259022941097652260123304592045808054142885500122588667836534093201140297633168724863891956279682893535347378180923535150424186145294746830681264264816771010588014059437969603233970339516828724493120705976354325261721424207285418571806753149945702856446808193758901421336627620956936345621243818354327719935658479283725273528363317601384458330931648664469613877840099372447731580346696090932360297463342234864139590130344373780224119006738223460948401844867131223454877468648063697901484076750273870741932643822233549761931887351827427252459897677744135020289316307775573254740867120028121866015408016058314552383760977852010507454285953114713822675727956219231741943042117245584567498097190221815789273500246423623736286377971587918785263105387074659120159266090797523719935261600183337765666453261675336997094528375118274147912957600882211684898166172025904568594419093623215047200670013331020265333823928843857085465587966384723094286063501371130668070587267049784936120741957101782117862666436209288812420833550488397618125604251792326772369426976252224978700410011701391444308614542801575790639952689522860576051682751620170742138010331393377896120162910196161041438326040765234832448337990965222134304280786793991653551293306947891959797395723689064982843647728567258728448184807837070501657698821673176222679889215806641130569183486915484026969669253425791169194120093083409338428395676399798528743476372945759916864265644027157257767571621644199355401372839885177312607030644928585361651340046321603499177295908336239012709189785922895889846261970202500377491390779682368118917342528030631015017889003797896886337581742135618580751332935751051042307948449882581524381307201342727865470956440433756225080063024624459468478996778873644686902525778353551586807949518337109682240001780114678402956933610083205690713816547471028887430165646234519982928323817970885856653618171665378533069177073339151742789873080446297497091385533919307519380003352552060397609372169881584463126042257350367585288660862497592423694690959435243828710351098511635940423830994675103648490419587542077944058037998840286713072599444392744505561086559342686461762514248279659702887376016096435865403477262236176247629580914536610733950967186650046117668971725966294180137049458267276180824385937678731524367182255160672004710562000997362479782320778592550324522755706803609950160276346213187189531590271199760183968004368892338087964824430287002302711487566670965232438875811792778513719312354948488882129479391076156653090689280461643277301415231417155429217579982472134044386804980889291743539968056925566112450758344993155016847508266315079789424806326368266462969131185720749821466476083672230044287506056917868277510940975774124675769943398061222755392184410045439443950672269525851986329280063563099464924959709333479953562271378352721638343022234499496187483380562001804230682901075438935164789997804592296260339876064974213992243937414985924155172784904847794492892819824597770216369201624276250601084953381413441201347019558777718815236238839306453778550208872885341367479289748318609889452136427045979435718350932582564650460860621183195916727481966603718267634717779768101582357670266973795404899872465277934567861132346508506834453911966741530028096902246288860558326656659393113469208680276018287722274466335622206712107149648625449593001048865015665131918650104124091138081492222692507426073123301516480519461499818018055118474932452729501808879893738016434933999913547114839527182502247173737845790451532757051253520396145783720983850708422242163294557145884161211769800939815247988956747003443550432083644640679179908398687863005636129513186601476116741617019706792876963192512202305541945522023194271518341548850549670544619806916519316963419872667703056501993108689898524853416482785830832844501000854922647101937401082477101448050229483661098331468912712800963435581087385445557010631103269588919130285864329638469360990935478814573495698933939624155847884922581911554223933110178023769316720783363277572526681848723568726713686111840492627822461190255825467566434581326888024582068885726050561109241048606482097221142569628043648335067891275147230294678401832402814054151200159911981176828843142322066391482394046346297401017283346679120595010782146347377489255340049547900924512285801073975138527749422002841688828538609888770062540507578684456535434613540971699061520019344913363440469906208985251998971943115010237696545979237754234694386745847772158000180002571295858221077855179655858120119875636157895735059715512199235170876013018883711316351861080902829801779787567596789531455797086593353390433410688889209803411371768501527155406190760936468868161575221887382444423502053056179545937566135960360022096677945510629190388922087386342968962114035628776721800066586746176278148319538393201054793908283868480389220902239625595941674246641069078584173917188259370550377505396021999673242537188893844330074951219153233683296591895153075654209443686232623660259260122774793465658821313279448414108772708608254021791427401620423754292019718466313676740814284246986508584513048954685719760164878906262486958617520069991665500672322871561543672743997973312968435102882348243654620807389213895843180048700553532871806020296370688441743583890166876897216720793124606586788646219572014506210817045094749975202791134801201514658329226292730328604445748477487945173540848564399068275105079542969879345624403162691710421841086417988747560715804705530251526382230554573193132978687289188633717330912726064775284027520292638838506803563168213096790123641259149796246638218567226285705741883546141854246446220867230060044883353291448328285223352527370150618791617542733922232718763872359094792656520488840760246669627544901274956927571453721633693283391765996909917182932270092417814618853405116838963024659834194501773386115170288643370866404956457306600367819862648894948842232407239132824836701495884114722164369028027601410378207613595825267173219799180775689326728595870395921547087216548543986116192535650650609304579963427280005781412652967049784419332574667820440936308918594731742424468299770712792155228599814087765168792128703526078575505603854522072218891430899209282187400327975623505183695979616061233412321063419905918466784101583337531771182681733089418385666823239678535250574272726499955516688811703255995691239199325534790091297664976981552750784335397463778046766596920134551372952676114399768970849672136748212932116128346316817455147473311304153153474165814473866124496183172274879900407334721159139021860966490163141757719960931900939053197439019902112991884805960855158805139150129915449408480511235366478072417272209462025386855623290256885683337135648517921501737320795138535177292620105137005337263501008897876291914892319048046716051736447161670126513277695550758676275383990272226885502643172574802350431451340881264558844982338002377795520906406776965438494455228946564633117757055659623037458368458707777208272631718311047384500188877984800907483342963012467602721294880274879605269200109711090022863875903865406890586961269185520525035072771661285113640885393589822073228258317354502295509709209505232091457663927298567480197291261432719619555608155220992991330657963766726521121864240173843429567793846494269122855864138071776302412988179668005282892972721586236225835691885570963338188840147498285536012573136293036881387649881219756666085724126476207186048500099337495069813885614804205614181151642725521619530128127073275543543839320526786675861798360974254491248059710825515310616998884695106989297729436396866875249089169169126066044467787840780568012019775194674811756743693173601010072025875641069034306374435780558621382932425145500576266906528759239994168492668292372420395979800490383756991149213934869359340253478851634861462937508641271350468079741723886558190030357833615028483974729526210024540518842371251253822172891934930668837835044797110246712941851068028045759885284120135400428572551604773408543640695996533593616913900420833891772638178958126894122714821277311829700243158152713675261278454673414198452558297055523312573296074252475840677978045643952272368000053573919331483515046628709679878288401625747739107303183288021971703956169143644832022538369651091199256423792615190078758151658049158419861372650716117914890355261311758425819114689232259517303614031874107749783866159755360242712984270987553148489901001586309062900868497486455749704207201138431306552833598115903316089416775020988264649015109512854040322349914444169390714318248224826640343675827832936663711757550903150643497056095963478949611104541164538959203824312063648865328432040625476307039021082221853291382878794237831722565198413750389993680827097257619422722151989005390959177689370591800002949817464293435560017025712860513175964852085596169749300548642570461542683791337934877030470662511723521551704413214139528820047626736134476478721854306256138148386767981036107270883710109158124421505120495280121873940757870634842306365866429602314333080004346735174402452824767525409485229442316543328644144416884251880058859391062408008308826700969163331799048352503516817480958621374353937214131856852246109735181865054453134541344251152491524675464924602508237418751170858425708212936452299151065754584973400504501110819930839176110007300988097778951232467596401869399967798141114542039289513091599437073091513855583976417091194428688675673516616966578161630624103330548028999713801025726642219280684673368353324080095856043087624927346906031429751612132612816065930703055158401235263059388996528495856833322942864369173536636071431955407238458723067003728393059158262788048300074086933479205034019306335551065509652199685702939915351989499829219112188509986965520344669964594656408043434281842882793995137661480040606916204761782134760304663022613797419585725874305393657576928667218316214256471366210224014274022246259878014273864473126340945585084370618325087943515862796127864384459231271800233706016231768937696064391792416197493251714852176910636451931619234175230733218060406185252856420664389922588778198393474637132209873684727564899494190547661572186567173855617890723429619143244003727573060449775467731335223000110863207421672168760218836286682203426917820188020314383333238691444081570749266035852111751359137988240927096324354921262575982324395606242255261438542593968121907476233471170747890359877839205823550016495420558381455184893626133167874354745285984978030894962494831238602239376140866411871736351846347788438603705246025990168605519265633517487474606623547047032270101914998440199142409121284982856360838835636263765547460439488330955552841334538364893825032747272547595962767395081997152866004914378479648392736228168931427019554140486520723849977023427291544837246567532062692554771223345715164068479958513834896305081669842210018114480349299121707810794759620692642525884548897054108100811277097293298131612898094401890434919143855342260517519715037530335031717844307360709129015692393868736780569183942746987998155254023738421436288899254756591529975328627401292267530937756434961218274826233617765424371689122396013958554706736392722040405236305492950296144381635794723506747013930048438581641813350049272027234283335112104246462608473843824955122443845575945962541904707114054165742468381149592907007389404886909888337931657217666457251059815959903030584245176688875716363516987151619492197561849585156845005960914665467614312623080113485442499007301264455882561417587229444806183034179792814703990019806853468265420834852142665117808934771556536973316750086476331935293041697074031248594807696817134178743097183191151879486977156836669017498151747778713060872908228352355920359605839035240408895545273984062815548030213826606242175651608692505646107152054356846509024198667863748900863279994507178982414464772457069892349967613494269959384258053135545652388494691002376545676335006022423635164259432198340891867741973976799411432172581881667299621663437097475889908436675069233469338339999663835949178736924365441922656570542971701889159653147861226993709309075904675758599587737253623833783059285728388270803217293321137630032802371054134223264303978650043052134823988395846089081310340754481835432384348073284802811585084234128759041490223959333846469351595297347493104347150274037366817521321919926099010650037063268265268184202886519306747271042352649627703721611368384393000858396213072669796619257122441042705673264965359949981955777645794144737169276236651772957579205937686472915123067114325623707971708458594290783752658277923562483650169548866582234149208679645081677571118244533482321501920922270316725089821980077011557371024378481386653953084703060394717624636757926781899913510026845781260839465840053494737721073427088124672873000326875195950547612064621607308111723284073770566951111518451866886346913943511843832409414265486981929755943201734099964745196643153162508739301358248693561875104011685563937880103846463600581877476290835538370493491682001343248983864278128415104148531063781647105871210627864699459120020689166916328333313931230601932872086972400579244949307638410126414839783512762639671523750221482929697324796491619117533290366011377152195131109226210692505433684518794762644400983899252692758867078249988708927632040166923596531822495103418231206824200156718174445991792260504077744051670737860238047379052993864110387512136361994290224774291198186514626108362440139374286584084594939338564739753679890695989280010270397960981236400435831583875834809831568766562069982830860795823889070282750380539828693373052158935132534900379770790780965217525228799174808629652814751855547784437700843086032342837049825882135714076068184404957599966524156999348948842941664003322918460834101699354686846685925285765544569372812852068118463810883541316968738512702933656287062458867775398715984821813728181850601682827610793900786955441355502864973749121953918076533604517526367124518422583932539406356432117315127087909855984651612952756941107342113975178012327125693713982139729761147760201115732573771124796395769755135255315893081980540192958313204575715670514160932531476869801919057096292725764919095341800563975356156319418733052781740936319441466476225902256692522218688454012836773709655249040323986080226061727767124441481177270922828916154941888436027694484083422687520600681072502208676389944746235788760779545375786378659091769280916694981519883738758368116747397693486544456955595937997507076520244755896560290025793035690598590839944113729892001676070420670908946900541976977086973808599312914840109519102576065843065987075704062982889093001893620990972026082448292469067070041231594237409043873357509859090369468799081622817951246258369727170221873801068089050499884874353913938769164054166598851286906347227522302118387885896382591791608740411614706332583273019638907605139563309117163746004385532392107263126157990430881129352862083675034196664288738413637376967437446047567227282383925237764446402021792449892816576623097607188441878884872549789767971637626492102269761137493753046645671622673292793638784075191514840210348507639504278719134062201447858484539270243834399525980953015101386978163508836653853120109811592160444922469814682844896862395178814027082708204077521243199984456974446618637889474014910121995538592418601368408609172830242389638034211741747103725373069065507887558241522468502303399429870444233752596015981398787749160295338977025046076495780930109365783917236719393919789816980981037424323538625331905319953332943633671328389619049913069687073603207337737439278314020148329091855111433351863254245551991352159669061073829745606070426539502493933722576034122905990501711690995669133620186178752207590346656784913952651964150987769103454754328071459655678848159465844837188954940451038390411050317558444150031142918398126639511173393993777244993235758739708266181737224289108058838340452899075679724354068750566957137361227600876314633415686546779495394704894834190441598276503915607948555774477098058878449141970490568164129831406172482120339008570757195131473727059511062964523904746779318746026708243924527844848077814805195254462439241402761803662843125263668351442787808249082864956044864575511560129065832689705076973546999678343386653405236691190809144235202397449657157672099489496823881766764182965470315382627690699210601911414889789284166685479038399371184808108026813160293261725485679027177316450216940454198535701875481291864049369374993621314225487017481580757548439510950695899703177561912037027868520546319563651387437258675333016261796873966544848784183349221586641267110586121735893783863327432411179723631532983945189125419864812458630366628918887140227844207060638711490135385166441014421493352221584127443628602907356136217859307310144071287130757858160573883085318870504342135212312745107136707953350038353669230370998313625750286130193793653465623262682413388328835232322104866945535807376495570941479484967776178240894860637486492000718565783813454240636780967532104076678290906013877127583008512362680337300129208090492033729473981208470045846179645931614520459008277797089787616330856769658512099861349244200828619487117915102102439301104283907506102466656694045769643614924630402977172524684210881986275514984928442866210702344728850755599923083350560549198146081665163079172415648965690811285595998320369104212419240864380019702814765871803832455537703510582064598233058514023287645128642233576303061723704752836795576552331617832863611771879449040434442776405076776291292133862339604746516203281872590672289164714698559679962434080983645406121012852755335851363721920660316114905597252891207840657374065751855144810132040381448658612743206070246785543366078820390608971749217198222112456357174704967324748893571476647237238698590201817138184341672027319235273926127996757491420299306635038138912423589329818335885278017634591242952067420815111892519344900282076347509293334701644291506032376095807959932078666136070783319617545448594679832020989716052195628787005180424224683810238889309118589364568171961508686538536625479661818660461149406276501348949928140143304276617917294569972183973511345704822540279486007006158297896133690396559695261165188073954521463394126220953798751984762860415408629399474986081172410332549501768574611864018160069607761065019977571332252866168712078038198420197876658168941796525286483911267093813470875931792348693903879676287438315850402220053436870752016653200229733151137461272919170361739957985745798771177100895503746507652260142307908001473064362651575869333632234197869625790947097228422569716807886379394105888800520778858251977959977496506732333902749439161660931443037548544815817037792769379034101535064907341798366433193677672341529116846512725561666954507603148283459965213452051241535739921913656274046777861664803258573107480418139516990879107126484521654399780742102666252422843379122441774199365294190658555487682791944492251413752464889229232737329305372104378548739684223911829549710210343959546469664259623790196896041145864705872156447489531916754837634338578283621757830255138237657402797713695806573332952709380868178731945890813334387734718663772503106521880353285628875731179008478952223091957580090715487955206630472928050072097484126978221044521306793048475262573561186144238177064904163975908702104762665321002896467916811257630666676839046524244361831801617657688231696579424912927309134874768513179531804737807020285928942782684056916392996215156650592248009433407935570715417763880735469199209915503296356846821205834485567359791158857022476446819372847542026076045906873025297761269951000362678789182194974865027408317608359745997776759765833275824578028071436547136863992548067111778872097353451837835031205788381135815446073828481686997255783082532387827842504644116852744553586626906487292930263096530437792006100835397441180679688001839597942082595332960989126251581701147602614259497377384028399470484691011184235799748576311344133114081639102136394669559136853242580723451501612113808163862002962069835449475131911405893946791347128933375079191007207357692248876273887459665535567269358031680680671076473283818171922720629521257597065424101434731222334871043576135243870362703094941457860946936759164797320685901453833712614270812973122787268691415035682053869833685460004045126194124157089864960951252931271744999124764482888812250646149221936400209247731850534961728446024884826057180831603324360944873595338836330924835314304552586005667690303399269249043097006202455258577061392263472421625538740192523458039041864258907466391050508080207711834750581594310901687783191276975681272752200267732370105493812940955421520658464871146064838896943606081748144499986791988346349074839481956249043022671757007803610511324263354783308524852149329669232478353477271242956561234950308668485912672239558908355340307718706529783723492249671881714182443957199887603456085445367341651160081666201689939823568544673668199762862287729781124814246115468246321726092704592735918863906479317744560069157116621287083371090247593875218061259699935318973929059103777159742901969784223089830199607120386506672189229240626602042559463645554566588077082862598999998959067125814974234978468176726174061913479283177224148288414198877860328066588566344944697812686622378449698335616282874044752881104614270345967465518655530785774704286653099794241561799073788095989943721160265975973831392173932210567402040027522681239515539722108394206771188951051883999897749467763907965151015653606907575849004246647593754945265862505662046858083398471965965252753116802215252016176865138532434730842031572624329001226865251960011521004214108391217230849030128512048089000610577959877010970801064067024669393444197354604431821364432242331876771141573099888828421212447462265309852649426540843921022812871783790381964501209698256054742264457178946580100122588060135887198741061059611461131119861959810149663675056446080166592291564223967926147234797354234168780344949508629413622387081157075723782651019678801011751439669942803849181065747409370787780884728545916900301247678650179363786097383710241481332120727184896119272937669393921013031347350704128301311743483810529119369146854742929814960628483785525845929283796436311946719056870349049857370842304404562787002439863380416025108206631228508876792727155233176311603646241162638118932944379533338006571617466031492654593838064319184563033081491524002306517776034154423835052661840517546917509834475904474090746582043859964299737529006778599319246536016156667958874517894164861332109590733437801637028490938661226146635483035105923058772977818609862687022266367665878520895743136576870868435916027915666572759396378142179693199262092746261131714547089807642748518412724396088550341643450350666635628414185206007839792751971621896387898093609221174386096846162628498972296400591756283972791092706938002183979639349871603344417703123465754649290616207759068923883210251021026457507100642246607257338164861749443054920190942000118678929940193742857437675749292779345123698609955098070094650600027240744176765906821699953079600961304070243837540623662043350638541338931679457238034345099789629074555787614845246312052235439103579796766120806307922499774088516287350103790652455696745292189303539486751275940727098209407426491618385103990703256705335862986046376576596908392037685287968615787966899138009150016771990243340714857043226053733870129603749407652513192697108833875093602369248643174086496192587404070677276930147018795526599897982966610045111590140140614298229459501762852171127896853528933272695289322196232547541849638535118730482934426696651162728376733480068251849358052615718035729478183991745926558054128050079995316969126098610853256645953586157939843832884902723693995188865257824012856975916283317024263324207583962926507795222409404247903099949070357305889667312768029556741614620662480324735032855185187484908621876024869484235872625238365012287928790174041617967657676253325476169292120494649996493988307494952891787686811453786909882290682833949611471176686568078889733022525066924779648656397813790508710037730727301429043232154324735676688028652795150258258975182657985756904227910485979625699638581863300271252399472928207431908518003506452219278523966614453297726302775661060329013207569090912073350689005914568513643437307413315673715551779386425068163427669586181452907095143626882867021014345443769656633093541719222094700862508386738569336977750485232258965703517607507330409419731785067832787127443445167809123028487561663243997959346654314996047461368436683474932924810824374163125720621413947042361354462613324734830822122374900257840349560464458130326244908152026093800320786956128160705773701116997199353682582787656834193679086440377773243212787863260624439453740294715779271314537124206559395195571581996282740435218159625673468821906270175209420725299312504853810150554689268668530197635678160959132982083864500085938910468579840934865880323454678336891410835163191315956796974079124227460196784548757795919465039312577719769205488253084813801006386660709318607602180710122313329476538444290798074221970690539528623435108121601526002260399710461829498561492372585058939787071539192067250697951126697876203569577870544360164597599259763233358081876032035034391659657571013806881812657014378660198083521428766501955834928459387857117714265994376806135641124176890881010424091007291722813859129815797075728948491693426938997915751916861145748608448816625230486387573237894227521286893061736741611239489337363038351742587926804513780327913550811585138595173253757887178062940494961204752759837342429333886946848651438806237614628382837319822366783894430542232158254595892978764519909600395903612462913733408643646200349448007266894395763969148487565119932609417380319429428928546231643041232661641908616817900773551636060661191228679551917489172757126479844941883493979632209862349084095839452299175012860369491870209398241327506200604801668976406891055649486204935153595891976774735139811863321471713643313397639011719734849096323052276690342657192042901810222461700518661344353590345743259023662459050833826349064115277228557187903101283966259277928874094544072729162023549251228141296454788037953464926561458835983540772933283066585057639156279481546433957319527614394475753781358852289191856691926982307939830086034992464126678566376791119447433739090680937285274638029055614753024757347830008508977215997411781520054684142381275423741390190972944898279474509793959069732575062027427636050604326739092866574820173570637682733676465290349839959485361631377066446258511327481988889639833690470586986610172541227847097487084253121332958962332440906501376363598427668222774301443671180077248078543566477080496128452993184665037147703346901693593572634037252355397497526575979631090500706017611806993569015225716063253489692454482588524421736983771884323201620459849365014587075863269083365722388641940389376220274383219128631773508675830896597059280955716062986275474133424188423607503942004056890597237326971048946650358582935675430319784451756610700244575332599219840362013863316596425299825030096226130474334829767472915376707815768910856807388348887231922670771816681315231665898234242266201802165047915449004582110974719084781468555449160132978346289219172400845999033707205698198244554278288008803530826244915138306358356883206704995506365973080786676210508728817352337987945778999020078225797812149220570595509767560634768251574711613053546803596296676863436852707322561343750624128112760480332316877960037488918690297012091686466659089246682718976010664814947786427436223700789041547409676188447523804467922763533424154900759664689403749426848178729425605558083343552464373366291003698790738439164503666197035632397352005290793601358740616326121124694817941513975657769923626654232559901011721705225420142436152884142199468116662607930419313422692645094200075854240215934036226613862621919863893672019001366841237383023383783529170898667785763298064817750188388703715186826256301555710184265765242995663927844267153891437060268683051413636203851747874696132139080469257003647872030454598844091308526130910073600733013470604780304921572216109568781903561662410392413964122512898412380760878185768352960322212220642984954799047280777482548560518653939307612906684041944996350097627803390476216878598526747043203879732106580766041511939728024880244190738357986847258805477715264877455295077390237913265987065264670409094385076880854304117089163221295788755291465724989067786056265455303191241574522748897477497840284441946216500502645238328342635013702409479306137804332417541952392762221615858616256079146629292021145428186035800564034123885633198159834745804210475125829546698064878974782089781875719274623755520297882014449440094396942652930688724237384789973588240394242038217217771452070618505171803269713582609515333849093105034344508549063032426839347703804410994243362547379445418188664748597017818905747916441589983905586645107672621016840750014475511866552140557345073513935639530895847294777467017704357605756419876297951561779910268894466571283463056925486473134090509132410183585543735635575958349394628164744638589801413855200220381573504130732340249426104833960206333187434969439541693977578883460078112769848937813243741266253104413421021271706218603446636940607720026274912141882777540047043122405052176680679980645159146828010382499858905983706285208906183137553009349893890141853756472063371308584418460457847546923495130984464044932699689084595785390909557174350696452379027652016392473761980403630190588132290028711114845929677875656759446653719086566159763279357450460044683243062320891871764568019715976845764865867728659454173716913742718664413991490296558699124576866520889517673406321187328741616785181392846439944005595394214779204325912704736531023696242777768652713555248908756334012926916049121236585295999265223173351465995628742260665124799752869729692865513298208055496705128634790758170430967944359557749186635944216697967517193820818454327566906525447987050674574970664390304192777410584156027820337238899734991322568584696357723353288301594940738454886193932692618517180379835273061802962666705019042584137174314080202065725726069796185721186537108026673872870021280039658722192183281248050857468057616013753012159209053605846021364827446565507269315189950680839626990609703707210356054599178523350000572289538602920285425352407503663418663819804122986289275954598694180160198648563687995576714553678751394289511195889776945796761818748578840233029003525886523437141307184892830262308907770916787517060221468721100509140024614583249730757622196196476261791497720342532630705489282719304563269235061860237480818911983757492376660814568114587529166434913580583218908266776356438844794122420837410234670724597875029235556950550733928080478572142486534004003860293903862554183715897070970217788424938572151480679105082123000244704145649494629706831111948530733895453296385387258504858328763037971216109908630817529433441350744528338120022951453051864743459730959554369274523217447781500828663253004249009327909523920664674321105390883891840882111873764404730607069645448022199312627243672480157502725880237674408726507225446434003184650130313249107688505677898960190902897460528664091204746616053334197343862642642420324978875424524824354257444585691155365575440125672913353032359739201121001324324264296240116166676330917620330965138328969950637601272868814067748637559753661732195812391837079544133401164815063785795486786767112225285475802610839533945889545524933201747759207858242712257807103156984821790076060431393209449467628682268796629907871539115050886943203797514792164507439538378522508244668758780016602980922267225351351628290611596376704793408022691425971168494354814994570503575849175415916085727692296667455223326295448089543180319482235244062142590910377448553640570500485198532209861339872375719730201707610868112817504043097422406804049131709100201692161618069013635853787992055231568092830053287317007195355253285714906035346235301118810477287873243678821211301101911496526929684706594213998391640850770771481792867627732766296258176561412671656689409811961362256517607795075869895323423495679722658122698843876945519141701220689442218583389276720404911408480454025196515446128880145378870331256637172360338234020303826272199298417272946606293255533908521375565135296532972882461377053290812441210434196768149981608673963757581641483778688903261998755332116592324698424021576450623547575290677302595157522414881272910336694619354816685224616288816527076655823083075742025447164860064783904309335290291548694326838793816897794893005103454933209658920392518981719721758338783088180911990100731698947831835269509964436634247425864535809136685607946929631794951108957441312102987267180439671709640755276389241218309369105226160998950336726949632540452579644925266430817981170080821875284600749961144772967466932271222274869346702105782829079458856928283653132892571116401232468061018394874313669654841852741485731934082065171941475868219798195147282264392063494631038245521837995122157691810633605370751030092350236917838552750026205887459078009611674865813959606826188225596537921258520700133231496606415053239751866079903120165499906710539824678002644897540645614823362185983401815824917352264451920558312974301459729485157865655910329177598724842694693795337930016661948313081494203559515942817292911153715545460108122935307665039985669388033958425830863954723088203205872180520398445725578119502892944889158927064289575318344487147416933535102560035316397444636138112006924287849198306420132660341068873929335639136339999611187304787608796247860970314052355644273952405686153580823053976979127133544151693209010539245072744946812709257205798247970474368470317580795498823973063820568377591622010021072487344489310091719453691847544844466167702558671134550751401132769728362802483455719791711147737875492789671057818648565832659539443512281218043479322855450793220113995792627602293269301734398640676314983167399379131659189457356656215545371325685388312668920966841149298449246081781425696464304340939211339189153591867390886639182955738125394743695226994773386077489972005676438086127682164666524882334427653461352049339936195027178039915903932658478171202641890641425560051846605786587087776273056396737652858096993296593597111003537162311423784268876611333784865567666514784340922171240910459972859427473032336014061534829062124873275713172667605936010313273820597915893061285661472654363045964304646307281623843272812786123191831163237544337704827349115941778265080238512052511047972994598827546874738548066559335355045512941853661509959459916925515011718156529562475566516461794591744653092175899048140262943190181014740854213564657921666015295196563422302837761890457061833673539923264960688403626521906125962984153716469757590463845197870686163529910953736467556808052384028004504321392648465441740594869522358788599205560247883401627029893979247812076374088826718731345098972939964875166147330732285389789849468647905016710413785349827637222836417772062864430674121436631195734471362581403761502502730517858486417438062124215619029127005194773770740164003891756596364431617797348419785746670189945500751489731564694121065493749222987508952122285032690376607883342371735156880452555199144772477957331987287606690780136171257182441710841304049634816173207483981197201356166460931882928286992404632268273723755558499636914816495729170423487871392584179433290613703755006285983923994075126218118878334932963340211234514127954181813117801965812609365152673517743047332388593553140411501548557127850814081923768458035211515448867109891364612941865255779163996457114907266439792590025925723801948867333720192548504159401687629711307614989913554291770439504806201332481455332787136353456934432083245884797955214046867747081343298606371852451339139178443960583275438617539004051012991868370331099960456703397556898436060222341738117998624184038492852874281837325212274984192444877986520212303034321907342136061449224918198333205302541383936727193191508757665749991843096245676257840799900954393039576680746974831756738103794182819354493261344581814469802403950177508324291289905330357666153917650373229899868376325452128717902261323450778771578738407008118170294118653494902244308488048799009191713936437494993855161049487283572502582724544253213751670852570703642459521803903532155604527009903558623127870002405885969951814690286045409958425688390070023153173132943661735714191325131412167322559090947005768146904675084884284796421810437060568243613647514792204317580651051055199879565001676075314618053624810104839826394080861164834739212900474111650763999341288243388173015722086077023384093128627651921704651146835695158211079665007602091313347347356822926194169847180800082450126303600427894576167255954094265691674998898314329215902256026144129919225461609454416913573718793304489078947592939033808502933667609333395750851588845298231408245087681136194569647940969518173870231618414956500816521575655783518153109890565296864020176045000394758153620811325021269941552873029160493832199310000789314639337804606812674464206091944168978368461961352425516411221855348850173269550960161492302713347267287837070663357694527881523387022511356547218253271719092281526528249057691008128369199802163502862771692953989610072263153846303872686106216849347683195248326059762045483227994239204608930823238528609242449960435460216627560622705905229918191867272752698823982683422028736236738958295651644776927936634614028560398119565915876968621775691706281865178395409713118655061805705975420903090351907813037448519868891702824924118007693259384261513231234872458683230935840939464452326042619444162596358940535869727780338514124529934933778018535002914740132037729030492059432087814244377140642504915736892662466105820159249380062697557524769231649583470724972574517376964557839441891752227301683940164392855622292616172723082035926951772972096217225616214019727084486115562048981208837310178988017234104998550600612018614628066333907741836178652994976455288503892597741095213137069857435431566214539715966326918173521347571185687860740672266725774531895832145387309080421603640185999708719307445953410873478553784328683929130883664801055390444933498615063940572594651028321033725511344101503569117298819261548405183222298383747172174334223090982649595271005405841723450294618423535564755068421939327926376907892007179130296878968999459680221924889320044502445565213670357862099144212338080152301707768358611128372655935884919150714284591802733103068039775840275824606168811714544288751095803125289401644043776193413751690239203533813040653229124673744391536701284687035984019273090361495445038848722089823211734955228913569385095587550483461283085374442082593490217789358030752129692549031495076507079960344369486644644334655924033697787581472400712740510673111830459366900174440836971834716379295460507859745710537838800263520581538862498245089899028703971049006462355335024067081111468407411513339548700732563267475996794844592888253446752612831491194604409717571747785898540495008079098144889523516757855801945918889707586684517450492151892853917416356080545323083040062854291584069280108316079935595631600815893508481422814938294651532334202854569612204715637571057463646417995681023225095760895304111607923473387422333125329004594468100438757486959379679533238465599372144492017823463061793427099789409436540230596474520041427640154208150666574956403218124803392286001951192009119417696890995408938766440847482488902725563319565253554388298764405452519636611166669161784152634091161938868432250046324021683580092226297431286847143168801479968777189787289338158710123171106379735126294852885634709584067039293299674730693120038604389199494343811191797112420788440625169341154228509871975650135369000949536798271289699223688400907556257058222860772543468346678800725956045575745501327352003222653997846301232469398832209039852661938340343182422626640638520263891221729671431942724218770238636584735312719331822723382507132103470213799399808633784671775583735941875948125103474655260048098350429554958772119674550045006303665753772880677315253480090803906088359709520335725806511431396446484666940791298465860073188409329588950182000356305041253834463938344785508735908736737602217872442397284675484633531043045176358206833572046709850432369881681229513957522115573428896272156142981681091092870819301645499689947498642906908758076151119729056761496592687888360858720335199187769305151837062419163196420599600262174110395160726681530000609644186108568820133628153353890146139803175094065532451254712140566012538614732167474655634130846778072535039579047291591198030491484600506728190636638907577026089155341372722820179686367197879986179171458790291661863285962890379817649856851027396655423594436803111097049673434258532840943118247987641115644675143196620388691119483717468969527584586609562077501897095088211276645732132765113048096182998344688899592406117479618304154084802465131839728765489260586435957378270640388557797297979447577887628645813183267707529859498031993484688529375168174052586932033375777803419550928713730065351665096944631015757163811238776104782937971671012021604375167853768632535323380779453918328717960382138320780039809506078472584562780816597918784638182107535451059499415351121167215717378670223788496422382783079023859941336346158121031062744949530838285702607757727528020847728016694538214296186582780273629470092162895460806423350613098636369756415196878116300778541592582154914138881202545798068820581525285718930407285303585217624420500880623491790694329206277580150465560995445762249501429290422866641103030772690092237550351987539777715036392367546812329815305728644923806598812520295247603938788026249649077379173255394130581700171026226264245343343878511929523124972528138754118368454056736862333351357919986108801576382297646701712804504394964328297956422422613805329599844418043247995167577920036095616181183379708909858589795874749841371327850326224533824856924056773924502324069782370626903011308941227187381215211331251532737954420305606741492245710561010210440953349239554641085955569020668966383568619882266201784960909675082222346404835985244546926390044228083974499191309169162228421773849536762382357997535233066118823306050721458563077455563796670774757549024934921533105429904103115212414574130779857550210235484894141296060016279490602312204701087445424938331605228745553227650024923358052579999224587737072382883459625612879660227057297808034876833308529308531206555940703216957980587586260806685300580372033137762470904633626581347191399125699080726943047939131910264072717947201872708999087895000518521257991244293183438495972824968441330325599504626615514957924833056655697398533900989079632607359155382883000575112211458930164162076381561489371849456886189130186776103077502941427466608943640366351207354408802296907544189471077144255948099678608680266156890448795366217920495984321482269339995901869768397738833225910764653775696872515691021760541432142763832411309075430793513239851489524365470817901613059193768742450183391779772809538315482271168511319331774191711673162154466289720084908141215686791062642904437056061598998164541327561686980143364510898737089095153222942609311373941469558231790251702117760337120238781560106649858899439505102896569576262310595866588612827106703573412360384775623382239967634399748047008641711213294791905289518161004728316588337114778618830223797457934344871193349833743732827135867595507426955729000314616768034945563297798869578059619063014844917614280806395320120174325724641992213173644272647564284518403830154078979879068642237857874071926579956320354781530041582093075141978891120534840143328466293614018133979621987995464998869460336409966207125283341442430860492395113753826949909214365392081600071014694680123446686296383086118884073370147608951588206481361937325074470836120762927697205756059217435462452435594316717702755277581556014041843568236844237320443773064132820837126410982182941262374465131940161341037963584019319474407815917303889238371899167781422793920130604825837882199829318214246929905610150162686950404844832657859683829229047909853040894157542981737552805072220981254666833535962443020180747438705483963435095240791481894723704072143858409329617268385301347444153074102477935682218322512892323197381188217148371886592873883873781132208446396413050224543897972893135116978746626660013645625105519318967575303901931326257313425397283400879331136755921462336113028033505850895438572330708832260537008062899568590854983219410068440042626606641969774645740288491372812399566973319886773320082718938270074732066919468814230640521297569049985592206493607505492785835908711030002450592545212841315868014350920724799172479092152168361440468303002573621978918163110061382372463714682324618643461197585371655427370009424773387304538725686209954874655885332698894097681240892059103179238589751430713511072008723053120143647801163083141728814770714065529401506637131027631129370570849236796833737407364083612269237372385031690256742223144176012957376079189527052480631798510638345171056244008534691188535192218280925635628508048915220252588997629553859305210533451261362823272059536288419581947627515010159165076907259874299531868438853646522667572756586551556862260554298868294735920331182173062394679295765377788409797182080648188877617889194955264765753725161238413263953682795481886782799279614559791380462310857338133336821005690253822769336777728531295750012603761737816890539007815324347083266468116885183638010653583603578206037387051900342117547943200743882034564625489915561641605804793946017018515603608526581568010925538168547015935073499157107018791646316172750803886896911000756519057962333496774864791978048437459666604498964153660388070701574150286955181699704337567675103144812486017447388623958623986406068986802000855696116707430929152191545497724656007832436623957905120499229283002459475497847844841434355145752150776578933393999159836161444706312091807527929314279019893619484751418782429372545261477453535498821373820416306717992420359416533867318187579773765431808158324874192336974664327671635789250745210094753806305703523080056993276895389329923899214486755497769650970711890637788103109090772871738196529713513441956641816962763825626991026103865773044331913059264768441808654150180849392025622154643882198328990037345795298793427838265742567215487975706059419697916609317697242029117515239139271929762351567137406159752136342138904565594224059902956332885959484839733189894994001410173655640900325056816830265253240980241984884537515493432732231506274842019991274328723561997097589645046128595530258566549687541198812184328220563465660683956188732415524089397410589750637656797023297676157577964566500819162080215186128560933704402052094310428938466566355909685838679116133989290280957444346711579274408040869170615829833250433844876110555707219797554494181735296743294128039506845736377222438275009016115397711268363828552460778192706158611820801162205867571099667286667014829086633607943153037015733544969926663421646539811969573874294502082656637016244475422400004081855271522220399139488799028759865665819849840436079162146674530959501244257650758564355656650704920091475291452040597043410406537042369029136643040300549004821152791337910314283447680824096484109977469720160747496474635024990589773071242488974260187081940188834587257363661123999347130561553874206627020874029009475666507990060574068066455443456792719372289947885440995392647612486179678317069756686672331258380737874391096907013724945938050272579922332825955006611233610098913054477627856658142233590784475757962535185227541835818080574527422057771982099768914597856874595515564574898567393647953176528987734876688788864118682477347828148302046119416911058772533808796198003290526146699060674536106809753205153875758518944708192108802649597847320409248713511687152128889156935960249294602485586177311002182032997673278609380835465449684946915108871891618167699057305938637355224388097900316288828846800483421313956873204710950956726526371412540645034107423529488870043016956173381033435607791349982680856025990717344463708069267531294044353555826159927902370029640738994395136739941850416976297986681259238674697713107513978717006801241499763714530121819902105749321700972170437988497323542070209837737562105140930330961123272977726807869617075539569032636473913404377634425412553642895214480773853582005013930872244901517189015614576420474344012784294333676971975449786704146391092169961410510333191013053178762704362220139728786840508683512523005077382224396427775960758972090986908458481250259938040483960930328352464999308194769376641875955954321822184021794479880535007349820663476802001839328550172432749970811212018970631038192031018507333896231840718907104301499691325697822013198050857273827626221354145035105937019172077060244313795755613827537031309185384435338841979016073987920579259805359150171141027030634774707566524802549826814028607498239821084881975758168181973566845970977953971353911396516092834193224048289035919870508718786974280951414480057588671876708856972911157854944578969605625764598450082629636396910459286140564329586614589434699712120572139864336703293460047154729124708339955289000489018172212544521636276066638456796546474374344785406111727602867237659331596315509940351858206427591467069702175010687705810321095313165899819185819988953035776195774667066834360678955367195467228656661750027025752964289706620514694257837358757216803576442685787057161730236690291539132620495501409947616155616389232716733714521670396381963568706173969937015608986549328424906418660271392584996816218545006301528705723306333893300969880428791211983640513905742600765403573638320116490917392992425642629999879805095304989379001092725039075686626708668586035662664410383039959814068110695279831543975897156214077353193600711551585338024874342176848789355677982177853440908370677539673330340049724773913104683574835483498964536854116185472214247741023246928543285459805906786963844760674416030861757513193159122891205643598301033529401033209840123448355097607739213129201814340550292619048964434657991317805105069934761314635975466312314794054365292344396998810871284605087887733368626765300254675160637280558890211991831144383456913910496744810588507265688508365880833356277369263820235866312469505939452831614614453374361137965341858165876309550481082893060884440155310618295895996686207433283384695129091664889592150878390568137832016946311141027500871763890888844998720731185051853508469750306946114825030748504887952766193678761151672776309383047267160783000750900752321931821272251722886023191828031496596682691217992778860238567387833506510568752089388204804519595668747662666383980162521115480915197793391608820943848847558565240051964939884274802233367726895749321347742634983021033242582902240016344362116555750201753649014867457421171696794154229842235666152011979356664798031477397913849693970037669019425830314613860171658238236273229434853539059914625134363738840811812481134270734578580664735718844413648525049967693560150509006955342864639660118897867710947170743694132074535179557137406695644524667867211344250207446724137773331968869719280809527695608896669273738887446680688487442544812251953579412578258741913304882803902072421402557823001530213630775160675767525538065017560387346347679299148736311819227731545862629591683474532391455158256428102442056767219061702606543038877570608601602546574384466712255498450567028943801550259931535137369951366633950605215542588666159350094446718257517280436991599513284570050943801629698585518597704313198229588661718685346892106227600451431897672086575334657603929920792742777571953069292017676022837774570814756693614377003148469644403037080672562312189548300619213061989759455247941604937150231963323694866322255343347065835366200038308683214605144153513415606044032181570684280929630397430336013116626392099398395934532350730744976707697530212329606375344474757439378132322690686633141776422109686574440910700688324521980462264530712978412661085498001036192670140703826232707839320960088741205096319711027598014115236298788564560898427332946008511596979257803054902441521223184342252152118014550257774103668745658435025544802667852715380476415709989538870702212474731383071505936527385655132894665519711691415560388585765489284003897165915295940020010224300738808210895217563370681333746027135293249845396051389808939437277547592601394727445778035100154259639737163837864298922928154118794874662493331710837860447471950810318896590348856644981329710161639055734908127876598651696568058835644122881735837610876712082382163780742677140437598255886793958699009504912851801916988253746527722066055229620029029484887023166076734346797141592153833039237997009392357734358042597593891674073860845270867742658248632032686825870303572732218453169151067834649700075072703694075066212714849681559155705616421647676631988769986082428430929176597102662634057507472641771783620967861262392868519668565021459741139276704589486416637361658210174691185730272634861287194003247616106163089257390035409106597090665758439395492083782191409679174779649295265608844510688797869474955183384444491383784274381059056369168947658523608137226474475667249979512106531599631800681323719767943651917420278782842671734098798479926500735663904458535465414448669370994293977410822578552813561640021485598486336886637563371105836809744078538013096724505978879217046562548686159212687884107232734791970004495775456070922459568236812577570169484799487371417027295089365535554836669346501104984693657296690704750535689684823160397210110617840150122009716097061807058766588782677326610768660024384391251863809138997876499802158617787613559210139416560918538140072970172643852864972982134108771855609334709727491948715369868757168766521469974949957803720021288980136607670852006040315180894621944558348664900610776590114792058750407789520653842349694598640950440665386824435386078417663259758613777279717485331040484914520012277118378330749555057934085212338146110275284237361002878193383713290221690269562171573591982432142176417633432888440885726154546294799973432876643749731502428695002308132095722885426166545665058868560177484255655245046503631793543690263733370282974006211368391881742309652075444001246248922403960914195916762311898160396915829379195465955312175179988055499234944913534320415769395075593148274625292916601779172776152672407709524526217677126419815259369060503273833337529592941928480080687881249555405135216932755804115575483422547200249669487787827481482608262023229495822223952227997924864259763944867039828496046611113367113751911165216154449838663755329226792141030896034325904150065161581946717784833169089753930095914565090000874428254680047171371637654884920485005580258880678177140494175860290089378633216769858239905147426556455546137815343075014942777819665796646310095527311222389128458744329116625161828941061982229955843206873877362290683178478894250111704923379860235852487207241055130319095478988338880391281246193581985063356241166659118342672128122332980283548632677412425738035420125921327351866386117727343053936672761613550350644753970664370731528290107575492359200151477027764943248781660067082461892253084596870305505746701367085954922552751923513762001963350832817029755634775318138671189910614254234585734730072952700688676506036244921764335026466288452067425430416241459453434627127233781119663812374698962788922133264964340667988506999975738165191800654433585742137573033587559482481655050877792711288475661942444873363024296668186103170266611667229253760076369774428757237694582208351892227011032621085512197911701036912693094117219465921089064018152284988667325355327766897378292540596367086638645938684716458097298193114771473169504944345581645025856749548069281369310192130160668968364681258775943985587137790796925330545525372476493358206840936341314464075728958555824498798510079893606417339008327188823508510061315820900049260439610237562082889385187770091106014800677281153354110660862282662164884209102986358166271798566220099447735103595682576295039878498338719541198703481647713780974843017717445687621909605139754772160682767021104233563795760125093725775889998566948878782506739754080023931907042197680340401442197089109219317421694907343522391462040615910785834345796931388949557268743959261261239057518692842236670748553520654756807047066091630502084612665228730070311616855615634369572963759407726059782452159428301212949904719858834483927432595271099947780523226644901571141170112781017938514317463577817761962124163022623446449791885898713994855713667426110179370298959889872657706546971653010201465070725787792575444843290430377877261308109331891726545140076659180120415818053014468335326801431346523152926704527779384231320959964805256734281288112656152042657217653706878954827001371768743893674301143883698275151050592184075917546633755329649965244982186096028312096958362934995433403410816129772995297575103794114708086880993269537638895734138313418853372640205179134811196839322445669652070404740362197351080625267527249557931578859349718892284404883538704782753788536335980794279590914976171245069824217393422107939341781458614066879480878122952623845767641489244358362731614727745877411827934778178382619689376662711012790477761656425544525396410590942535641379924236413492611463668602383574540876141540408530891859963917229328648580224695546645161255106301091781986098935649166250977315503490522956925882226512767332142316186884395980048205279207905104836295960888968236859754909463363099277801133273848273792234158563875728660669129169470763949714981302772533860453725931841010258966290272087087409933640151032962275398732272636797402053998875484726929474724624534527981779807569986594143813425716930568606546657420037099935315793320158243530021568803139620718221136570395652035791099333412969212547455874226236085895183170416854984139857512022917950565625342287136174678368678382819801318037478861570035762648192286132083458904032107059892386535863025998838701763242403991257790187842814786218823628813043353372880374341778046755944229380613797163379352512975117758465674520004702710495333989499867859636825931325825532290243124827573266929500726447612145078083764605167987504289931794993770709215173195924970623095807169059333803206475423267904774392819972299515143845496551698632875669426490202099798474904154117050166997024050535433063205313758217766948953942116025619057761399995745580792843813682568933896941197465430487175989391006405744744363764215883712207649190658686107747256290519760216360469039080371458030988341837260537188345752516758191197090538536968908901641575105846292940525825674773523141653385495801539793700083499495115197071259296082348155886725772486586002219399185993799252649567864865727082431103802596659638078698479920875687014044019218791195292410673387667524224817665839826860105428945941628121803736975270630144651881459454944166632956581055292426401567280921511263039931927234447032559255643910339033548997716379376111699849198489370203087816632728891442625339865127956802390477607047575506849062429874592840049497081244087872945750479763665986430747691484608942221260869725857376840042480541745289954224198020205164569053978321791429294897777145119177664500084412481231601443495945631517443400455776791867038914878588345231956947001148981431209758099778506112200905977425331525310935868371830425520203763373725899615474365043558335848779200793287656419056655900833648926133394241485418661155341322610677986833452068655736847406244359595927407959737805514413025271270040768655762964960821750789763328836870621872210644230837053204344529046753680771310896765849319346555449391094067130964099447293775831141313278250547690704810483310485309691371052671740020791122916528544490966787225665310878170963952480343509069628908846351758099326865480928716341111410891965768009182614408418222316488760274905187126120463714676709470171882425874101561737490988964241731368864592039335258556132847644704726553726994333971445486621277107448844095246466122807073216730005399142072270569167607056013201179953868158532483085446881957192769514688677148005316040772715689762483643016669607060364964386137615591066546538726604820724895107035065519780887883164078724898196004756459101296780767848966578262210157331634076334161083168331611154890244390660971833364234662554586219977100497426251265394830793645264322315575299155831790247851506664446937440899508608781497143462866057449024450305949506151538371213475004566589456868498342507533624874891034640653786624556024817848051373950525728996373529360639191555121852198643616387969186163301275695511260418927374000793810087438485989691361223833356511734581323300083080381862031458319168175229679384612409366177130774795503609433221610744058910490516986489289614075057893880353945774424631984284748954444542102560326561523619336129698430574087861217326343014058327170274033579948573338095550331173696908223375724479861108617829369773252730177133629649018917194537598850023996354103494503118551564803162041717959195773196539067003224565648313422631383852578180176196635725507260906333321939151550027539600799738772272681893291378014778227690154194729695962651840949638889014926402638359982991875476609473762746242441564583167402028564329390738250330155328629292525938853836169044410681194131624144357420577693915703083881270722262192167806977475440112778345170945830699244777926907927914927869726764236280400466918927834001889088833776201199729282416088795213295986340454832783112338054776689573300670919983673524563812872885710809949797228301015182768226891435530949934945914750014318575653353818779488897181449748361159595698554860495482194638088767903651724913081014980416553009034348670864398230466296857338148856923250000664999732880910174125934786681811865017100698977598016187343452650883192198787876162376841624984776553193069655751987997286978618491808540770947651034366264511253900489865374896267273294173326378095199182051570618538040188548973209986521300842038874863654580372149361068463977462465666559901129076593450360050279918319310575235383206859571022025389259856980546655413269833261887930947733775156315142457543024235506131602251877759952761671463217268110398688412316098007210146094580748429279899697018262785133769995059104473871598732980511561574839349807882193419514759761327037614500381468653388018026697133157494039339983969144406000586461996546018936927082363530714295257140194032208273836198382619535957115857764961880958668683408199465398400859178542011150110073434428822268392891469363406903311347717200474521052370581227178790847127509978255721890534023843903854796700022395928726926250059879821736085322998728799199642810315030828049770854899645522548684582194910004857702318527143252272404753587842150338926206394264707702244271394835643072260206281848424776443651990279995589667467861465771345097042638960563794922646358924919640852883237998398859366418567796479332836758227068999525467960731610948862622690857403189114980803812436487246343556638315584004131494150442384622973005894433634795634006881531556044368288557416459126400096219239383324675005583872298677802444810756379379042751315619499121794251092187206314139764901243996996532530730351962858028027296178556286382990708978975049225754449644736593644435939009557314086053420747379681557003061938260483894262747432408413207644218366111951378305988403986958812945234488592199000649831289615051613447922970234946215456654399367586207130640985856677686429174721627453463518306714834467238918395794036433804429507079341642145491164679848514400353991302141667315395374986068130107252063049180690869677933195838762007348419155708303311660286233925138414903525908981990913818029812928752369641321069445533568119749536292978527474953447420938673419973898254576490015529378863539172641216246433701568456589070740615227469359761020295321183058441742808534479595202420384401160140065602506798864982404125470335871886274222589870994307290053592412388192367889280411860117572466185469127393074086120726047115341691699712967349277875587651809525453380699172365714969447036825648678962082488618562888566385682554101192338848604562129652583595751532286462092120186685900678870363125009189436603149300799238536329675716835433045560062090651924572101264337426469861200020403766922328580888029035381637413572350737057901923327754715290711269580385773031015739560691047825006948852449841655774213218075628168966799706582974364905515947258534652101534822617821783717282279977902343648831032718737016194320820680328299447201630623047769357193215669671477080489227348874248863039460239803448456136343883573188733696568329659220166055031051332594211074303820940366664727797556489704389074085510756353986813687389652637102832358446322190440392197728516449861575519161741715150429384317115849572332523907691919537798824155952722612100534152186246615358227927653958122953365888863033083873075280931157718337724420484862768562157553833915395517268981968921593961112676492494814005305374367349183123637855880597845518231813775008851927291194400303912604524973351603929361818305419078648564826725036434619157618719204647099997712579969799399083850035806448785573580432646731019340775746641771943621606019067490035197450040603150759842166991047266038299652669796695176481518763996126392688083270789797075772681065005988779324237901624721194039318802765394998888813189076962789120399641019291691453230993397580617366437557830274774751817700697774207796862112552682684934930552820672002096092477214335450996242775390879431758529098808362246121116002926104216655442501452610443871832148454074316790129374926689538953655765671182814508500222561653904975106318790582862005255023024464239652608424254921437602293046860113455195407682346854280969170746399087189667850593022397039278414700058522716033172262669073338539598660719638779704845409269139298667652197050944672189157140755940632139203005897417541425479198385174832726798999044950124709923673587164270090718960038546654008600554838849156120711154928935837806493461502246889359621785742180664848904566947846807245735768846788447685088316677696583277626286865801326454021153042200551192250234223447073010180912887288000316538761680838147471919454244050961636988061844979818709645289747301900325209032032996791168469367330653835818950714092751168168936277786362461973479371968816151749493962265678839820897412394941670926205742481821821998411113568874108281408188265356715629968036628884301644092175299999245603769745478667747943195621047420788100793521601832277706117457059458922069958482531932372238893102664859356244282261251135969781997326716822851114242667765642431923180206638732218643730711361506717928272488946575385657216064115784066464752498909307784101960771853987279121483295082374822684773437533860293662150822923768041023030606600268690104635308454299059217372200585767711601338323229134379607194234671946581371117754692404665933674017684963557116186590648675071405793459280875868999381187169192688167775820155045624340042586455640617710376903161863528023878533486771586846599770346265421880219763613528984803522365182499615026543219518356671084284452659060833226453715561216610253678627042504603719799361947822780270455397630606588164466904711715208358935450718977945617728420949572257745110439848892149292916873593176588518519656953416672434471031289694549239099785470097686093743182633222401789624575650815795221565240920269948625975337295355837786986178063432601958484650747357790425362130612631853256052008577949008511734699511800549887145150348927474396133188494366017338801319809492956581237039857794604804761870792299955137193086042784203110900810808338773771414843603377950958422613298109736038705386838933406587528198101436348297018085159252704902781643079589150577520295506343831201645667580731644791266860830860233139575098250277654799440379112732352228823545207261613944985416726839892957416218213099837688829153268228904709021844091672504886848518953757242750747133470107398515668435919324004057012243773762678971695780583640646081801979955913886187099942619578217353198740837068586616181939334669023521734675183256540687370964110503007382654440891502537586901431840413441461315942661049965261283594656283612428081862671220378085827571800043298273431713266244138353429699178455270538270914096812114020686111128694618074773407672728006250998102221066553854718899734470783541709023149556648410069821872270097158729060088533239370105059065416932349250659460078973429127074531721909433893788036555397011904503723205246398005179083771159108888534006693708707320509663020359048020837974919856968679803600429854908475412265065346686071790933649113597439086777986254255574696487589825272568100951684684719172392600009119470237714875277734731500541338710395799805310460024215958754850925273811277353820986404650705577260118690148613323037227995650929254314002857625401326491125734562688060032650556864583819867701440246525949912106737715905624507805926952002176330268966331872456510062287093896768915681829841594886373501263935262485462889184824449981580802754423828850376125355268065830909077557407558484809576453503498603425612596579589847701750418931466191534033362734264286608078915150295698751911620427957597410186577086492524672679503846058249048714081506303469954769466661717447636558074061671855131815849609796590698903968268713029271232804780825986594897025044681398106461612640280548420579205014515902932531537295350904947613278924075483168542479668632479562424698818750033376532153667923914358895305932688907392674116226634445959403615624297446644282397334902503710028696493583949116119065073581324693577725825220635127620838349618700677101086445858060888603279822690125451978051716228556780176707358325088689136703840302201934599933870260790904097092272985558719228549532888819959309616442689954402727200707946202165141517865717487350636204503035383875840188641572626165791922808387052067997490367345576678259050125770114548292019327497488263540968709021129233892401365167211490892168545935301738512600548558606910635497938118500078608996949948773924504695588275542784808298251544519484726441701654060935708019225078955876568346048174736837620725541003425403945912741638476393287605973964903073948920436540014705423824669210431907341897484021347863482966854491329289570773283649606835365127860889621459505981528380557202843039034533958852620171153681598046898307060122237237771200004651013080248476838314901129558945143643371946801610469740914203499952762519279505039936079678984036707040866462581674715786979570767855429047290107009451404592303635112362522310999149447070309276164296852314164803453301649287031532967641287793617736594554175503832150960807027069490069254674687768567882176587887782148943562243422260864090973736015292279366333067903420359107431590101452321897145322835263239801584185470463729659542231591467323994494082846477610785773782610921631045497078953714901969314618075499381355092349556170827057425116127796940298355767368626769983587404284166099248349050315346634278395635012508985708848584333737657096991444750597752805595940468613253754572863276534867308101165285333220259900999190180337712542644410659601990679530239703791206898055685013745346228639571285323661429630096141398687257094853260606495736841541658619344982024063820146579583693336880614019166018839705801945609975297927396405492853878097602645116477945701789715219881609256823663419905290014186152873898702171252743684327074774687549420567659659994914364656126800832739192626781135961946827024801568674666188654339018055929517618330090943912368576854289366109301474295429247199613509515766835463163265045185897701552593455810824577085322203863349659318807026561447639655092573854348108519759982265675928055089379120102898437779539720272619107699224480899593403062960931838087650618079133400624840362854006738702946976448631590965777965041308599511554701392515178599513988116174225135901323686107804233480670298134783089461682321962468756404282471601636336991609037095336417700107577528702942882357186936624255232960141656608256854286255970108826159029744098699592343835023030930526884782493384936101173471245967489334462958547667523867073324255040579406589036629315165994871441624622076707698376081932495299105591515685569157395034993351071667818457661500328102508628831386764666207996522603917057511338670772889932974355525884249967118641964316451411253562331494346054373800262425524246221101221078085514412774825171247987692401515818365353584664218077545939133990973387219064545967065473333384063721974171117501443334341104859397227645983453466788086654643787772804479940144981371243152767446793612224902932753452410689120107686751342562648636940028303992850357993372314664326272970573279630736313580853180407371124614922291017525492915243151686747612456285623348083571094833250480973494701804634983573582785674681218802042645796968821093345606147255585805220338166493067558383804414042594131279815806750907986003944429727336200664909546089013281183755506229971500496905353474614943778072513015103950270364356421678357669953974082555133349690967317148894052328845367437274115660026945136359940227040727348500805263601489628065475335594800209968238193969680233253986970360470724594509947563982632723977851506921971494636610300715646851741859108281542619201143933690374162279367536438981733608360972087182243358986306618565772247394138111437129084833899786181066310181605781902217216959553763896370215083038456051685132823187331922655648389730878788473454097500369335092758128708494747162759413709896884010824525040773095372476923103256521800328461166449451873259910168488079719699104419936128916932186842719402634127167415939554499967613537500952069766499512073559390943355143934616678124816750588981251874189205638899724054935068463995211386560304060045771672047473590553202596102677768949454371186592088502263330529716277826584806290263105429225820298837475584430666108327651924665147936337446016837602183148971499299836768677287243086847112744342505251783551817069502960667028961465549202479942691336753290225706971868125315359117105861849844536719432572073941349066241420680039619870445389610586342824331190262683781424959777675586954101869981551083500470965520342148375610751966196138688312619023076215608728924428567355695431519700637990793860470091754560306250115141400255541608723916157988771921767291347993227552485374158231985906858784478303926641210533311376464856213598196002855912689597611339218278823720571662307820898670219119643444056555365124389220450516249086675706115108386934447303018881085220126314810707256900237596284935012764130067149035107284987629198079958414302429518775554819580405938736754990700424230274279859716130920370690036316990550739451095809315356234269380211520861889904951804046858619563203994387853230212921485551602920840813819678615828826769351567796798787011736163973918608230935635944791931487719892377875254720666852563286970206998649869995149145236807057652394323222111500511910809642561913527739028949665348826880113356858021445066935749700273464034056268964091240544036166410029381760625326091702785502891995752804698442715610619697112227199162859849754785371855599296382561616806853117198261634214310549819333297927380140047851973990756595094572057256462761054859685365839200832632774712661643535654598320859536542745388365547154868117894893292709181737900703682544085191340842355361919437802161296032716404824541378689076154164293988667508558154627125001172259729889069674363232752665026716199347335412752140143488266327250671072595571727816697409969130000104001038388931774161958184083632857707081590529277341765838776023587673126552911362850076647867006991919898056346325061147276363432843869935198730993723834787673164514961818396838861547258041840658916922819465166879099119702122654596048860914947765566073242456367013251036522442415166837885994010365533677320739221786362112136028032156957147123925859978721560717350767920236489548194650135903013932604534224964704519037025310749040226770284025121120992051686901122768915975723441934323342092284623546572131240189299981098974008710192114290728360367881453349518523843145500699750603364883455523513245910597594372986239704859550202463275815694012668175968579404154083228551072311098439187571354537209255159321225418377118996467075555163812578368526508067433952238242869429887064888064399923930375480620475148185458862018423655386756192056105890268482695911301584378273263633362490058123763793637848939812807804665767308321710891809108858141268122679717663367280145632526035243758499243038909731554910138669475638555106808137313377422179853896721586720414955561562176761373102510184054815418860150922452830060631739439439682539060990477879261780470614415050543143843378488503181733594831131818856407994130427639236386620376133045987887709187265683703680361276296895837774172356680236308606386024554859877812729479349184080564784959070664733514610272630031225540242158311957838819779791601383038982414161615742582178283940520594404905805679293371347550062737465214852585270718112685509976388853298829281476421781466420209466525666902392115105618453196090111742489664621823194788819518982956272468440107678340535113314278393620386283091231169289417788704950734087461435076976380116808364971328911561007908206694716129097579406970972561397484754454653327877806590829037688621186048527411623651380602418299375342393870403280913406915442757041307456062243641194112891673575850618618435388686768937267277054362812827405516112507384371878972616664175836366203638961860487298176043197716637327024948137268499861450469328177397952169128989273625645914296942051843620848584496393089231882438766468107467958241141125628895477029225401324751152013756423365141279926200463866922115198353623285264671247714062285006507588805965934224312363900658043763410782365987115672981945401828605824491320995325164656121302643143160275680546581160850667327666200170442364305434459726595890420331202584277697187349690392237814615025156374961946795289393860905874825339117875056179987781040907786853150222093064566997371743594021442213704782432234241029040314465246263593034308828650327594940851777641715207500137854757285393524120118812821928733353675813469735578549277273245194032303715190364859289449658410837019751895696132268719167251739108256696816581186250434283347231446083188439882928412041063118173722099064946547268487507668515313977555023192872451753515491814919393755478479860315166180798581092329765981668582216488499081778196784395886356056051164830993830583649841159695006888780685233909275727326988451806321761671770332240279303217078124127601830305121459468765111978433156547446331857317642870297724283645647652569681768909461728950733359781423692131144678305274532079803291969235324932608526791020468833749795083744684901295420147736013275970609766117867513461064723925273069985813614521708675261198215478381235219612538170725823060282364863929751737223275409100519244985290341102565326425931787409068461038915814304709259502968661286965811300238795340856148691482752565623538837337200816553792270114564940739484778333000229342662633984018876934481174662391802941430683704400945099206478243855382909711756490492796363982528417280659450441970390300414980467747212838705657984251139971943490319688371566320355477436656376069515679870549513169183455892797701275928441808463746562123968233467348766639710987189605949603860578073866094944614374598093601934487950121609312383672060228405324630169379013130608361008767991943967046742016435215767513571006454668366936463648568849122325794652957296041842845239933993394024317720135651763712626056709138326939338567470453940872274502699673318270144146046974637167563435550312979209357129545127156716898061887355179531986561536373434370955121590969961747816942800214725076482320579846286868489309421009499021402386049213590382804270723043732177179820356822894141747489803676953148831032759862579221276769824736628905664152850656216917830362894872823155019187492969188646947612369489106002434472194426117335647645217206268267059264754377038651204391643499590130180629464422418706852898471206963933959339088068205577069171345400892354600400735565279939012172623064028800328964715488040797769870095326838084592165481743405599656634833781899707328702546194266337195931317043468286440063298658492469945873987853684488273124562671817849619101966478668423009943637825211329691642099220515028805757966976210092345061502685538268002825590616401652068765548778100971189102418009855950661103848589070336808804272951454033019382121344696083644857534299139229751882910228830402949513481374006885846416659168645733831414571839433289917886131464325689632258894607824196244531144521984385008224956517691442761994325016121172820578753602427299564840709430729054983524221968849490912639792809395291238242723852667092387645876798045743341262210479827423362713781928826078672943125083427478115425196741379246495112691252679985911333296972852989601351293129298691979036564571749560689154713502908450225771120505456366223894747770113718945378462441594854728802907333516332624043418082542121015826649178616646284988783054258192342562967753998924756644950821259904461375987885748998111850264815472576483216812042695312297755420151483912516840505347363595199267807706096910674836260380283522505551274590333752344654950929218424317260592610329013811217405546442848371912959631739280784195714975407536942268168518615644837435630468946970067365768837458568506908927906578261554953595672829777522035863249492020983165099126901280253502992851404786627001869236330979473495284982309261827407334504833298656949546775335184782108221610964908976204548217511544231560493524712597598734028479206321006063557299721170279277823694860077221722610793817071754576500349654696413116556936430692144145899555021068258263023575321798574221259769636611797491945296287771884399935365427481692950952537404722297302148796691444119030147861949062604323429959635560669848576773909612847525063482881722910586584298871949368379440981654369186779231429045453612587817470046547752952703960072014639070241964981574882313335860326823553556455152143081369327798816372942286314492658132896498619541349795971168454614291837609478067086534315533992933211806509049603571856261413998748915319625887814967384412185752488579040649183921401952993882182740287755236591522385941827751298154759643465830853358626619813940199052559308184174827790338436279231937600074583576675698049279520693770594973380719673528377743428259271658571986344921942208788987045877356892830837155477251301754913496472621430182782171861581266606956937363019144855894744395354157970715952722262750284597394900327281039411846897794340932910800219379578698950086090128624163246000895329406209487241053487913919841213430347389637710699571363017512829382010922251465762830490434593289758693395795992189931713901386542970806107523324287890783103979682284771654304293612893799400327319602307067905424359568571056283269012295734455670622413115952623637128410490985890212177712574763312187844424425382315982537750097771383499794350543272172037391762497001684294327497323191803190772400381625208688328956521329713607897931796444386569060076716939012599107424891348498466330009850906443246980483559516703619711937410048430548687652357314890918538364389508882969737601844878468893099291938946417064846707176540335206993116070412166960438348005822255298193184276004247394247831709195240502257604944577876090399181921593595038570030462074968917534579020300332531642642701868178234371177538127895822933508094388598937881329394526303400257693094434958971034356072006730442604870113987289682198357590452178832888719138155091515299390058039832306291326832097007830159415758145065047115499395990144321069494383465770230786352884046454328453860286088695560144492001370447165756541831596270864980058021195842116896297643536103723927492199212571332204867970482124993338064639025003739631389153278569005994241188520300678795830385396652833400477883005536574466193520334296711890668865328067587015798704036315691048735450812984754452408426300449185704935480391991403938003165648148261916796887770926801193834008452835373635329780288133127351514098798240460676485610521248153957069452614864446584257830642779250549599316761924410727246399229184599441210434952195876405159366209916918427560215889236759232905888177947401952449921504917794504804402952468231143256201435563882428457088682308455003544079427124969254494437730418018537133919776800445036098569039413949532177860220207405962416995377840499012713458036635125008562374260245619406145137589620222861643499561900017787838804424151680242645925935164014514223506629128560083840961019920374501994957847602944064440625900787923958217922051766762374522259365284249318739492141548623561886298919547168629754781945040995927154869776424627419402379149533024312333809580211052124182043047537605458881512404952919621278659002005473641783434463951605049442135164432756691736340671438382280837760185151208681044275318467082045634955239895119266195401177914808805088985560838515896443792320948660887844108165852809102649346317148471585842706436470317980829583275239739939156171637650216596698192642474860929464582476867894156452853543458631648507888720346344490260172903772219103973517066782761881986206953058337661562696677942815620247341683440004404514693049181835604668132149606801209120003541637170164725431804332515228340877727241472323599843983352390517255467838610176219772223506983020049570727488562341878712107543310650107552871297418668279815317994568375578373330391261445443307798328946130374850696650831139593422934296864653796602494178040386965471087508635103444102854973041644916690103259557008783885355162638192085772657467790940403447107448848875705485907739041700348962306596866177922973145409927715006643234449528382797129888395893244563757216353526898561178137156359441479801788798115462165808090037392037006390286986408533053145248407067165554106583221384324082655772443171630939985502814595864839543054977266678890574089514785045601595138993147415073501293765480929080561684495779097117141467168948526136221978362319747012848113950506450743946511791495687488892970926704994801757342570437738493227844265476667710298376717803536444661815725784515312018484120954987912195036723538950483943205599357316091193710215602975423787074286797165924001476136416562950546234213492526372438837231063267663352624484342484191369919785747482657487883787793909785889072951616499920052752830982211687332366686265142912605366871131904068350667868908588195829842826116341437594042986002002688951752884878569327611875617570119179393280212838305067118277090597162896747896218737185825908548440736094214558417104794057823079135902826188475577766464134326666426610281110539904706677056577963300472472491795499915162888653019778241336185989641682549795256582455924642289550790778578332492097344740946416479485719241071614464077372938324685761740549041441322348061824408418871033593071006586295816072829032306248968166291776989277812203495282141425184554668064541477140283129738888477481873137223036735071941783078976269754871610655519504785023823769551886001452005572156608006526874441176989994833187516492279609747751673640850824825175731432824849106693441389469395053793547182243716626700619754940841424472448111438520272659529306110406042695903951453246995292135135804784613634113466636621648028688170814404914780441614151689680318797960947175616576784333549179601871194982502770689099464937558548776393532804887152033005244349139782018333366969302628075538406241442781604454578999590936759283435633886514519513603333251017559434561697639483148266727271060782542159350232633224059492790130176125300393306330673651096249115445548732281138595905579289303069810376883290936459500468774557504161241840215198841608608641618639341250916262862445020929486320981707468458610540203572147874556028762526794350073990879272519910331770479075345479824120517840507131306150907669465457961693126998675456374792883227095965606699505188259088027075770460054999908521601446355842254712606148256570035070604619809671194539506623677510566645325246358158381954101209285467478156756370271834804756350007610773965333424522695415713075151129517616674483995753903204071168681742838644911139207574839534339821252705150505347423662049013337202370508428461847337353541706315545734663423290640583375900442050160930808409669078369000138402311128727213167279228571065809964059717991317554497778270813068427936021627068196127307084271351783654687132876259079326408557392331684906326012352742252695115991479492071096700048128063671920982121704817894885175479114328502001732431195971842872108275750114943392741315999104199525045168779985805549698974398284903519553718025630808490062509886087073687033177747509487785715245561905022591227452389422986641927939171554142241525384361676942848372708216441977753858075411616758645352118722371709917760502183829703721398762116198184214283127820353939281767308871720034472870285152407468988652295736964160027482142085042410622643342328989772839046440251105147251799217723361640031199363310046232138078330611726676599661656848200150911798849156680832486906511731471778563899860345129214273606736430228100697118330488120631659885877372948407155094399217058031423971359065357147172650446253759356087129497858141032061026267463376383481604954687679481967810095435594898722941101041600740378258681820814450196596766377488365897460507241665041862810081236054096640070904065078326919152296443433920132296635846818971791502123304934330569818381857317100652315235292866775937974585052137350407481024100633209358351705297405934635300414566843441452921424840764023417047300212591660452404097749518899491620456106663232633715485659099710294602265259976635103331855360714287925442944765512144889789148469250461725120609741789577323183957492995882779345223026619843606175336666201534933293141360324177310869920096129124987627544700702250469383797607241452775219895746774831248761155835568444054437909864284458523085159073996627722769712847853701813884026774933372737136209016248677938002991712780593621223906613897107328618512330395862631163040899464507980412756481023767742430146965919339611818205618467348947919997950457226250830043892753424789331611523752997790641867990402379585209760889308314563189701737022760776071559543426402136522203294400142580169004364098365819167144804226223350329182178898137562693782336074832584107211355427954353907685474237130673708304535053789795245407098410822952992905315321185064499874531981173128861576881226599340019672804639311610801006202651995599990212742206371402265480853704493260785161558254004383216281805689024469960766918270396079036640476814365075020964695950943821267327863903299316575935090148983980670559646082232412956888803717691882069226445523760576331313124276883526228943609786231490912892479815544198882215821710464720857605563096350728191438314768316170836407374100220219444923311468540722538677394732517890100209741887196967511396067211661897136017941395213403713652035330674349031194968562394156072088014081395412804228414222193901993942139619145123526451272953544637097547080253109873743365022531323917662645340065994301497361975895349091072535058823390259680830987162259017772484543933106224237798205921992168904388064838225416208856837569111138347866795984710885814331885872583337341400863069258016550195073006746277916781581969085326171426722379953667710098966594483162480255540405061880229163635416526221331380187207097862824864042509736590669537177633808995552019576078019160969699780475979469301427271223495170874794772489538084599130681973631349996555253906160656340197863102505590792439971305656659909205692624086270524511356279799734688586977559878495710649243736683180619499057401493518742669869553940751753549464032809057864603146194057928966308049655192517788758037037550851068745908472700639985271001327191817463133924950784481737204510985822234826307110605702403310761125360022630629933298841088278275935548066697265209845975363124275498312800897243814300458583708101786137898956910072524518594580226036359796073229242275779756221246052829624546578092728565596418135576535237690615655979901681587515380598175099624107326637857655375112672575737768949090524519448796250748565767292309458161685239374922653331749988098046573226162071683324465024590335975890217126482090417730709484550398827254319151133952589864359753455280428135703919273927533786346080614104671355431028701561030584428285318469803789891353486854234866973190417574491437581968290401583891254400035666016745522573507278959338382175182191827879078650366883230119289406459446703800596341281190748510446204737712414119665952896621048765909005448684021477180350491914486365163397199212596309700171662421262884175589884359501963801483452458518932608151207896338251268038993504867558371521356493340613188750702634464440737731486424269749710495112901883601981777705214326134730818088764448911511943597269295196765291008986618234243657863327698359922181604031447630512261758653885972332982882345446574169636631854872179633149630658536540384795152236129016146644602244160101438685903346453324384693847771045405858509899271587567117572307491366378090438894345815100210857643321935869497019513160385743607662405560716443959874136840127232784136228559304279325425198690151309133197214515133297067286712090182318674668939906830717556235107624430248616935821921642905973587822442933047069142690660606319997637454550774282536265212540545710084127113797437019159145542564895148618108728962437325580878997866197994771158600365528109277062012855657336940001736001598824523788880963805047503958246938961196285745228020293038343253828355892034907796415706811157425402365196528174627543614374563849802327130297354557744683755986164761448972524714011703089663201478587002453746453918981251008663001563990876121918794315684066420468429256591248220555028322779545863209687591822518538306992268904022523167864913112050432868779068783713019955951412226665366143304145876854575593767684964171608503078465214571243855932945919153241924461066927213116145289753970752056852895669425200278327375336181728256818050953509315534644409122114662362459914576185673833336032811535256622298606086682184984426251917892592249927416775296239150736341824333417845284486805492026133721481043252094101723184003171319374589027979464817205650258744402057883052551003580344925500691551206376890207848684517362311848290622270229656118051316748653273627523013921928128304702590813032387398880852596623727087368167510947223100500541600197497708252429392092205111945000397423004627187709850990429453201610107699681962077684725335404129835663446762429922498665160809340595239358253352021039060504253985112069803010833464192889674178207434370927007410462414540451161280587987603983788498381187485593313519450151409708290818320738323212433198562703078551321266407704181810442270922934624690935451141081175595171681017584215331310240522815606231627599739001457169528091188839822907207992011209692085934400803252789798803803708144409765107704314551392241912054260940008564324260697707065846485164004193118661290477235206611513959811437928222777532637361770636875781531501540282618742732316873341425751718853117389543556943228000661854892455190154516564533068904629695521162653154129578457384184602958701497074507358021026565044521662196495328455767788908149996128850815824652517146078664283495014440950996441896432868500372300518151435840768784838708168118499646295870029054006704795208090421360023472336942863393705932307886494746977607867580801651229493015224932348908621105925037576318588272163620957211078880747331617749410424301012866554977007787979981781377580404582939425081734022633229643807258005734299875690193531354822771597168552237305018147567366350858132248447699059349409461359576747765905917855366066387258816710292491774281855994260011051426888779923684253920126762274782852283656858824773716839490849953624804613519222235424356471265252815169832275386910100216441410432538972392328058312909005068173746368454596578370439467365809642206125303446820170870691365462902671991112005927182352618964006163442652063125043672406776317539628266426176868725235722480146616979735794631668939892629858611385492292902234573062038118720592519475564956464990358449843316825421472221001563150702729184633039985900635121364588367990484243244960440548158307702123446554630798293473311608553112169860150549728707302793306576076028734379260998509623166923872487775320650892045680148211880327153567165178291025051399444103626259605058563188884887078378219923251809761043036787320323515829399645781953811846158497065861810089275587722171688634530832257855489806878968635504802467860621221685134782419599826482109879039753882588130040152872349089609258334209260678147832627665261365368373431377117707572379313471511375878458556419803511432945243801517170853796023098471041545790404809784658951581383730601730670124801617579601180880658763361691034780955936498633354490561738220002698823491555054946175391993422993195706487702767504600781437313586394324092422520427844787980632568130427867123737989641961331520147764426274792432766376832468355338017434512750313654340016736666675591709254548615343652874039117334204984639920966780295122998295975158055931898413547937218120959655653203432790524529819719870214502935936034115512713780036463821613260272957153895705962557607695802427502327878893078795221511392040328988368952590669402058550302271785784067334979531642184898298532796832098983210191908855862022605945222700097094481861854722260829730395694277976576285719763091742406721891919023653044366558113321354971077839287730904520584373013584183200374413540018600577398043993149951057398444301276564148501084787014093409264512684519596194551106190320982052030839838368113434269643433777416562888843882616288564410372238616809585871899661045930190845770206395446032379609287651149856501536593040699654319888691858392654404898512071946786824499821367263405271008861961545761418107008679171306197586742756586088365305994928905676663874808034405635618150493927990949534398001888396359498504027983947361845917265010082841700989585699756839255607608757360067559773853009315968165077433345965596894513461399071909503024318275825971722582507264967835695326152104261844045375046116683700234509254912898935229835379474907201575327195977947334796786511334227987277448910101278267721173337696753886067228779308239397559753574640459124928397840043627244948600955661335085862392052396375540676516213321596360373973412382637588068220804173475068974439921327420611095368563159654323090509480789508111139756483905525985370290810620053414008247159111265552625833975114169222401674463465161387399159405896451897788434701041582257885550431488398824739625180018645650376203840173565604808732942460888223033145102078358591159819874277912763993232592232736412297229717349244190595211737566626962112701930572847460064066378830448127137318648692626073751588046218978842427815612638312448636770890466054487069257545664705622921513293959588883400247729512624196557345997912700377545278486217349495900238145778031138605523232345361973782992204250256241060437957472013528050268782778594865271981023281323184010008915955258692332961608268099713365619949174274158199143844082241403201863560311427149560991014225166115372167555993218867055229633172667134328575340980895162508115875775864976655040949541691678785786218538599953210491499522557635176004470784816468231656775722345602447822708854757779518037622317112164980606439244742616665531207842402473555786431757874161354378577575824488272707782429957819312609640531166667258757732313131704896786259322185749639251298731113053245825206541922728290164417480100617786076675430294692389129877361083997751630513046563746481519007222944406117032663956156229281209168186517192174277414480796185142321715609948247353400645165984545697248521687512586568555652701465402527432653943804950154613915527601741302364725370132426910646081666966878336323467760455303907513158033261314838417897878691076717403124645695385990860332544560508510831632658233335133480259472133793743312767305577875212577015407994492448786578372906253218144773798150697882905390334101590560906068020658890717566537075782243482235252155400464410588400516773665323560732928722769013232379578232167207242272900065831630851696395360789105194752348028098336829709203033427793879288303601036811309793918793262250689901803974097011505326445021324848074138556098823367856571544697227369623355776180290156706347766170366182825424087320985090139612139133563480482163517695577832754354788742520658773801935633204121151262611897315935840209394079893894910062075926703188972140615062048662224452318084249161140608559294093377610686091495585860038358126164830990933694362180868381510831257835715718935542941339331926330651458974960409620180053397725330237732443224651823015834685919497943676613444843688386274731244439982725794071385727033245347518933157904885534194561984616603259973767872787709152906618162022137237622426388640570641367292811921322404798608510366563807364696679203990145699693231469125891916487551402613612741332415996609679944526415920826244635357537753164366782967054081288166000094879506846558440627747407059285705163754829596150931385589037361588738404485295267629651357464363312731663764956654662751937923718931758450973762153442606606070010913012169220152150860550209582782801668870966536058135874355907457972097168761382900403728177384514366968227787871775915889098390010846039420359374294971917135683074743327762275689881174388662598574176774862639208789054372243695520430174150873360257675184366871547960154811291904056520027859265945063516932628624021426726234048165119159205387456513876339368460309678855860193071234415977075095469084552587443363285827057908469828270163282885937928086697095519610704920146636693100687447629539762087991108056996344505181151179735305381989085500933268165352696808197191975028592123925856783674307297989300832345281800077561049556907279223550284594076123535295366309637526274253618140658686272941006530481303263658689117249270369485298967139454244867036182778204526004647953550734394740059203390170516060870295313281934697026034192680895549680869479422923703320222296311912146898263401233789597258441073894202669604412320923786405056869753637907866677382357903747535418798686388961379905940146860935523929335255370384537750353263312187816351087700550102572021460543986215129875961995585543823203219060732605095127222417676393585122470901925308398917712680370693973946080868622880849046362174724903930379141108889933427542486598551800443799130649616501781616100265978131730513087338430352928320524225238952808273438556305994729390688404608580419984369879105967078239412229016518112269941631298579691912480481869256516556945965494807999743795571806335742844217353363100635612111725410754140119785141625003951735854741592476548091142923832493298853131703010002195554367911939802729978492589640220273345170296137207293753999394285331705739055135670705699934884120359582910602272297932521147475308189876261036446029909029883908676567012725254614894569469970887309688774406056542748962683746143703849590368561001509943130050888005032646502406560313889993223568558013416648382837789383756675623287281708266782812050667810876105370838184700196995610753757473553111041703089897587864560686128189330449049824839393508838844610820776967670770269888808673489006568909169319843620424469339984936328667084881781600375036778308472353992780614144386785728452909969899587398974722447137835078658228114964745524457548041603319085832572790155255286638257291552627510812647136675175374683297678926723956707457020637320695401632251409653107188174862749926573280617430142241122014326375122845630180705058696095712561149324848809653105224756882753153672953326046870480548948785951899517647148710237317217027088624746847234180773970049201697353463638987834108035392226985616623507516802552331428520263941365431075707947225043593407898559425414163352621791115199581803680186959707788542054605137326338467557788435111197782118448250239584187228980803577955213986271381921097444682373075746411506956879138034233115739572692304019012828330518979211739924195470129290471148045489681069946420460794258963356482077873233599784693854944171064839111710625761530733074927748894591615979551831941606988913411967088345175325798456221385760552731802660561763773935355375668118361544990190519464051529051863277890492143127173601745413737557091197079926323940794609831593050856594513450740934566196991560141916627007655346702043766729475714015174761676933986691355516201094559987203621290153780981440680408487286926835476102035853079649206100112532042110027157888285468048680292925324916945119900711226848455123411346773528215999352288898028057832071170628270163055670691724455215683500918297628601533118386758893943079579018832043016297348574294084614961678300340094785486197829942490200286550761943445213107904693170200940319747122951000513611674164871812376776717173375387815217186580049594304996419717138481174558661337040720181507516714966027723223076617811438075832470429258402670308234821664124932123662902635844368910603404647572469072968415489702583420072174864742456046536719760352164151962109072784763221831686955025447906558616942894596036947512206729900417247867615033331411632672477138466756030594009307955876017434517123364254923704034562043968039084454657551788797552497979735158194110979402833241404100668582048089874580587693981737723056525880797729995088460265542894400407114654609704102748941338558510239842708691012944703666761302454300319519383583769639759760045812246174079715289925324792276220181368701733430120758037323421569911960908270544564718209541031834198934150946273379369921837462251610049979339501817017590922150817538381966019870866536280850340370145686008052994228904957070517042567955994001079282186987189114695413647010296838717005694754401204337367711870777361767025855283025031312107391809737542952148814685860652361854173538902004247046461586506026512670691534035126945821868939677733795274768501891887650867707027055339114357189546408844714637971442988076228290152178241356531747251402046329779053869748625834806156708309292062463447139935801930607333036281182840912718575693340738992744022932369294719351296211554476856731664644486212003158049184072222842041579366779459265213101495011226355632870829726671559439455579126089618961247175711317708462025649703518712569655562066461605109016160377163805410302034640182281031996153154683513782518525891645921504774868863292026169896084477107662415740247410255312731701188448036277128738574196227512905923668222999440724697995519321160747590392787072194931209596419512379272598420390147340851257021583829055822872329428348554270987942805213856359796929358767402663588885525851480467065512566557846489784191059120511383623679627257060897661053633208617807358011321981383420991355108776137959835430596327314228437523826085635588951522484161837079272136951172754580797863837588006281260172847437647618958884238814715434782190849911881033685925529922887939738737575337420409069841198401175967551621623615238370780432408643674085533271040394343346879986650665972628393401420171911856067489983189938699250060836946327358960988924266657910692850527318339482580736834817138516799822428183453291974673959911121388339386708640614799661792294349320274506033455550472426108385575705971929928066737251457863488851336944637524880515023771583603339410757815908872158661474134570326683712047875108065320100113084430400814485104609684021031989600050131326995773583381270424478896492428639935599663347670050754414153611813642106457165026644555096531634965869023882113902609876066014503297318486692070878582485204883376989556183630115961833626437009802680508187180363935212129888973527688896023451396228991784034581846613774583890835741178053644113166731961783686206191253254692821686418358246254103942616868273953275652646092696147077504348432343970005325520317205944874601547081070231833184981043298382031928463915150461578629526178359756494334833331641203444189499318144317697517171351201909260602681582417247042908225680100975076173957744903702372882096099574942470509249232931477637379427615614705670937678309531080029036211727537604094198290813348685593400296300903906633581713286400291093919525082740306848652197414181499801715775629919321738914256712015568380466722780192610870651487350449932186406387313980025692887706113419997262948466285470757173663798417066388648710220959242937900633409941304846503097856391341905163391986035154949248106476537980059822990859563041662217883714865174270402816953448115476945207066690334979033378501141743235330333550542150991838958596978250702384450513227705987886387955155246911228909295696826465757092614632674795168151475427602443063996556103768439512912117037489685816878811571518417862283608933595493880715535829957202709841496230539812388526657410176134804292543668648452779620355559096400428683840102330778629368933262248643115098734805090676138931004531198277659426537172658223366022650378909416219798098576967039433896910017023152627876819769312993598824698715478208041271688384786081771665064282895415526991376962304344912884032954279673775019109845660416879351592474473831289882937321701257333516735627179194483881860037583059341504739897747383093517797360924737344351426025083970299597386874376685277285920899750385995285545720494329563506327339819475196599663473490313231437229945405971844978034324797837773931172658285622562355545399148927438971554689808686798043887360541990199699362146723828951148444381516755394430499080715554682055349530686516735588385388301000222745462869787619950450652341181593073732839696230807913615424315684363691563609971150357455691630584475038517963286152106765455390267168616337768604735439768375119475890842673740108901042435201286285124839321854096647474221014742473935488583743810855602425461558160520093976076800502995574132545516120754323970620262893827849708822078699452419519428823500527329343601316403727213388966434707246357967823764252569153158905303413161708435680464289591714360978177284477567392401999392682612636552651256932148919351096163495032432924588228957280932501620950980979792170174372067620316898147459768626789238445981888363457177177274864374396926366094649702607403168198015464629924423703821040319032911653069760912182973941360343794196666882209498611256318744546687680609802887944193849147009991976857785102157897256133246230802005091433227854854862124337886379152857756189082654636184303733478303965563602154137846255007559059110936801115302215892118058778330289573094259307077780771486511399033399549259998847602493098920407620034469862013562018991607735786444691570229151670268483114542058745956449704680844798711670206391326867342530490307607746650165354295367840789697872122607058263654698826029593771843134211291002564641713154712392006967173076412878578169590267994827771821529880240299912035495546831982068758791722225797046404671615969813160477360230916926991353384819019890918794767040155591151783201555281610156160179454215851241852591441114275781242946811225603778269125413180875234188218169246129091705655365753841061330591593983119753879526156216831932560460571560667925133684337643063159043858848947349348868964065211799115473097452069701738163669314005297361750325217099239953712556583772662392206319384710249209834846849924866125656477123881690269794735166609533046799203354826429449314000888748313451340164315193413053394732668701790156664357293049171285910139197720193641846205396138964752085143510452737983130759734635063490793482951071315753486914105544595023006870120483505443660018543940872211333262292644048827674141570143778372269044053265140457231321366940864781766884829896950045956754954087175038092635807981801163643693440956988376413405926487406279453626365338739938301115469562301866036529709460588375884458211696259171122122996844615271018369239576762961228235337416354003490599305521680470245731329856500571031971456657804529383881814374909413009298047304589859596038545005780525370482593702907997941936455412203357045804933605445623299061015465869259109950973692406034117804939235268720935989033769188144036941674641251017760418661369388289359897681039775686941215333463561817976745096001973357470836513109717489590400064484763842782268197286365864916602358544149288244762090212769935049153931367705543724047542164788505702523873189630214963416403101884551674711708974333892600364191372102176934684576544750777951670124900387139666304561666157560156495255321500938107011191763359234061122452674662997278590622695531093542090255248441288374673328086490845088130087101824448604892018586049699076728166810196558359933265541986286291447372569845944459001901959994179256150906099596918769967405606531692205275770867673754150849616529923612120426363126692018605642344433219989223802678306122523004973516837452695042059824841221407037145601061820248719377043637384660923258631749254087734957662945718734203016345026230018879261757199622467944900986372439686799752765694053357014088201016645160041916985229865949788923480158232621959866182709214870742668314278825187726949258143236185898925682511565993111494562095322554101081154899523955550543426799855740351638719144573190851570839708719748874898296338811284743566817859695793624527220622346005014102179074491595703338074744254248082721242711661976595229931478482575865667109556015466992194788563624675630725316934113127896151820512421445777963411044026949405196929301830195342380285459527129926846027000912662648787522179983127695652347987223061486197539141055542423017175638659667603524571485954597391677963190465983994691637618892142724682561540040792064410761426340523184984164731988622307648625029731694947374139140541950970032774786857117292237777143081079109713211434776181453058081338554076961824413131240575468947303992257028702606238485800732441099274077343023081156953814791905272257278113133636179364899773720445744865316187793939113939186044556597202903479111304900246613524214435606053175451419196325212435672749870008820469181848707357005853266508246853643408873225660313299946667860672877591012763738448591764224918868018889414677421858995601272325155319880742789487590408093311074451236039182079019031487906100198568443152607368711216938277142979897071569077493922421944316686247616215937134372393586301525326704822735623831303018356200385646894087303442881514179327457363566672796587194710059290667822404747389953898432662791033938414299776218097640215259216365507276809984464288849925364512372554281578704528574948639193112955092400729539628475379677069408271495421985184997087196264220132929634212215060436349616210387766297341595247482933101629631442456419709834132519802312801025576472931138117359308593231483436220998974583183218162418514330307777587212695409737208202847399402188763536635849311552218228662851155835064658687026579181657035203282340565693240523698312858914297472593310822847437095927738617314437789634341085036467284326127707586569336299288317279509987388482460608241074005102042522911953847862963155770998515728221548535993511430032453601693258260952540789335439690738741771343973986227061658155854396171458659702531987539843611755213915017300319893333013962486499385768994616226468581338828979601212692640040413345814404062868311371136849787837009940195555328476122612249153503549604724029371163138481748392301933900333377495315324676123604322252066681630979516617716549232789597201750745998161956127282252432515971937262605551540146282829224976912500433981458326675578446419142244852304119424911256977083446685597458395953211604659528700691753923771126042076533021561873207142627120937201911016485677268297851406750599323297286573599517849489057424353573716977272504966890609030885218045169823205680079175876892092021769265764875425131627960515751199612134323330106792680865419010618971408446081143432128850928175940283548801747885239907443998168229013608079052707702935590413732800053737671515709620475434792885624988004320829951597777071089447946072807353092385349099166597891554724424340537915819914545182416231356953320832024502099090914133390670016469915940411359372082199016126154438736370739482959758662954018874593849476978146612643991299398875182924514179887214545781211760105945375588844215883036775217684788123629642473604892571927971354708410728880235872115329110766154839597861487948165222033140670577649795165849056114456468505168626739804420087420150172860818600971302928788875367568617188709032657470798217804708394663080986251447613719045510256317249022185498185115428642679683778614834935419695244549814119034842677715685384325900033660745166576153672501687522613195065157935811879219193825122667974980905744862601778768801441866681023735640228299602293561916072737457986278715423145025247795000986710793592525517199798552245592087402107540321092358109078455576574225559665347785091345786662822084481783005256246948696408784911282822656476587593903859086314258962698305112189890739812683099881625043284314218770215475025888834103872260075171356882932826636895824239185055356352950048727217293674125896025124662290152641970041017780386520391242769100026455123057078364932716596497587059890102500926610729227750918416939368962737140545669218079432716044977319111766939611046302156642732364090064578705315611597291430126595163608154286248121810787682130430516264086453958922870334675648979115806657866354933462171341591095065402935389872836708090441108720110247368446703546466767314766712468790518251571487212050157599860737712410399300378183666483612711013336400354721786303385019575323969239319160919236181791808081206946647403622609052208909228203254356114678351731044049144296049856806797891970375138309047953984930281179533338499822582390142355407613818524759777592789354369288092602546709593921746737701601514524492397853483961123471190015913483494786920568981589906390042146406157161976771125697724047765023225024381192574169570838008765378378700417018441300220722421500906337599004069752276732122454373623717871281631611821193094537073411260781729255296678780485573105476045002233315502847229597760514699015714997696195672257266745082245615029534757450163440876358367464871210650449767648781660828381941750062396375112212000909598643641585769938702120433052734583767424240503108288091410274921033362869139302889270018726393806620852069135080585230871512107682165428560396827121421947038603805874367303048555971901816555796910769301573621773541369678644256462325481487296632112988411973200672153069044684909145379699689347374931107008888416108860958564925356976192153438010397318707198870258670536848894784053349361752172756884922046198069161632537577504970823230366577559240560617541331173524480389837146688889643932936370817536234395302592333754126781488137965746125567856652336878120010979430497979817631899866821468048014926988626953425912446052475941647646885216697098806838609705580733979358070265024961534020539771845276678731760536360793986301957957118765241612104815506001642886393669254287847980132758384575710069153645578703593688694208496548503345462435005807396114717195347904108335984190030854391927243895294625079639861105728024529710796452556148821238330871760656746329399751142970986321519278235254753778229235599012874256366308376234277648380064881972097943698578278989037437515257270474486920044310091742261051382127702407825049282421740057933722952185022687167808519480581854281151863487315799020957172611891900860665291518988875270594666841014829342488638799168976196043839293653615576102405387032053682989973634006116592823761178546697538704576565049312078903974178026590902839324625720772279064778745605667303657072415453805717625987973801675596578915176414095373597362380185561335781140657415791185576086787526740211454116552661422165466547487176922212807036880227186147296024106632258845104393206034621854541855175935871719058300129708833754014742252449801539591106156048848545422848695172189703031984674818341805120004354980877972854435959277295415716498969125138682075512787995647188538026016633058191526435924137223361875569594757232185441598888083360288981546795295100435862107607946889950536924514940264370074470365880163148298535542344703456793795946957326597164300428325558599106856643731882380857380325469425617542412007570485063795183009466584526422112227151904640782899938600465668813947087103403845888839870801828609599158984274397240710617997904934698047833136379894582726614659454858405029504226766747792804572353700245352774210860692326965862494495007318101299211383234245043113371047878880256336474787407639647514928158181607961830836777947896585049888879481357084967585092776295411787777035040225584133289440665455704285241427568034111854302605017072359180831772729967787286326306658351777486641799043119684315207572301444698713680811345543751520459320761022275319437015672003843570068547849811254674709101209063389792552921628607342823236567533805987415976077973856280684646872160670755947100990366507771568810377351648695093476473422233707235495900937004544022441737056557790083142071910908904646946644265105568706243108425042610717142265378309868279305750524205416367103412753473090330872830371379276656715180077518236295601539641854552113926173530621283759872119003771423717959003586724250050176493112291574446624386823517450723155000226937595194237430689532715394861383816116180317215208559176234397346847474079531204403132567034192027009272417374211074729274566441289629030371716016362594688898044196381349669503123697602102622149897910489273840220265180851005007653686809307487502280457131931673368779852546152822911905807907447615547458409216867474787260782319771163660123753557945464937299652384092183016892799819359093196708939744303726512740970872769517645862032221436231599329140608130261119726708278154046501070378401882577599826709646667590516872668249899511764104377413030051627073054187584333714783105684071451905993229555058775817772371424737163378407250254982035064960272143565222412822919472510752883044639801770692937944658184405548651049562981867039140377788675463815725490842105491781602806790023176563301326634517488137103387438361697968888916054386959204512048074625103252221543204777549039556821159297415070445248577057868923496816080083769456105841511315196837940085098182338583833703447378453435353304553223891586601361666178561788725372589504547950413184576381760865188056240318467539448904243554672884136429153962985918039466220144283707907585027943541008139760916367484725921397345395159360395111536163440668299891721989715216977189316970540848317529914656084113176921455230441402135173461644611852026030235993832814347071940261076455247633689150367395932375071289071358384355488546355164397692526189531330613019285581420406898083955670838763652213062977425654062588017558527796917691769035806190935772542955535628266790671082373048286012663819408475387660654754926826998696875524947610741243054298339816380027197697788224891615988480139199896514428269001050381772594416843666127593767640333423563893260228823010702439792559113118175155446630895836099628656526281843417858568966253488939890718046321116637543386412734270657006501192333190565124686574242148938143223075958484073360409052801733315573324506112222588284788108897383778695519085782798868645559555644835176214679156814263473707491894036711666133592521136576107638767198986500885731372946213227140642595972643884422831533123373586996428048519104218794493935279833809618410168363306246868314878901146613107235219066309657240594841134372501076405572876277505136747575324799282184876908128817214552803386873656175440587552956472486318345675669971198256125170288460955707437467825358305827121357303259069437651268209588525850712951473207940500814107174181773539607350270217677094049103495206279046851874946696910640067070080637438593086618747960735758923663925629018035248336287774244276822881310299396636937171914069412019846335158694669712738096976011777695419221175805896478760931918218725481254200131775957755460197832952221465742391701765380485925059960265421475899337321674976754175373240954381445337018929607266991821326417635083625415717046037961956055268041053764578147442396479844149662442368772046739709888626303762229770821759748726761778490995410973481221308110224383106426098672064241808871197388331453925152285466313600976994411479398320779455599799204714097011301235387217944727792042172480781565259289289022529608615433487508316396534233933451580953989238323447136356735279763004692005390823020245565857731766441362126118535581411664622402311690996291543589819620984921505635202895722802388166037954814069172293554664010711938001472790669615148449140682830830804402406525695329632648816822732084014648424986403843730465767644650336006536851065341878328894389153616399104877107409727879644168736982013057405803374425185835781657802393739776898833833800270677254970275732343974327041264393911897085069426938182634777680970125732028585046143735429961530762140630477329875833005479581413946199517473469129153899982876917167834198865820249953585773076280533749610606659701336533956849151786102074072531213692342907151291567484556411161844519313498638419059489095618799781938769578320532244682449923964934516791462299026811085740084027768427751690049190790794279106148299967614911665099885793620027072632624368140255942058716272134913875332552239756864059730230144508967090098559101432161962478050985253295807102297852820242562774514894594564517474052873711912056493945470842981903472013553090532964547226046388042959278745932623206226614737599778853211817385457365310011272194996773151218599199895985679346106674346235068618841262142899689365284168115473524590816405343843835504147584363668429683978587723145848060048188112522875710972455904264970666502722438474978010204741122628260511862328518913064173284123689437434783017403703667812749073332131714310238132869895730638403605162614324479093348767419873581697370244784145926366044812991444686592819133691766345536628212657115809771564127408187986255714164838554864898309762125632314029353074295194441613652039245946556074950640058711683544803083497686214870043717078137435188058519465828729110966908415728979594902880814306447148713077773889167162996003300480877971718907829957301455882073496661922140243696465819215703222884813941678960511358813177213799483727502432165208522130303117795278426819828906181107158481904511343596627380478276384750088432859723832650295583429585606750691141444059431779365741917817076899698712354121752164655666675827008990096376752019255849195242568536958700312459944918820646831845165709166978048230697105631939746054792376390456792407400756531112278352272086344254055070073049940118442890341964777540103149677891867484016670187661281132770148468555551719904820538164817411557339165865255521866195386873825586166934914136461733638790339486301410851929466656371395113902795086601418072772970038401699650035561094751826303833518214648377408377585221554006573946977775175758533693298419962799734910513694677674853069309252013189156413977285293099505625170724384168490679416377842367255074274934632154851328168700157360574364201311925120867934642448719581421944181424151308810982830237791790857339815214394951811148917030874922289115884125549658973985375498218199204978085769562371850359160125785102924692313617032870874969145047556354596293965453231205852449918740675401318348406130735072143826289579941838448853215004187920865551127865457866749142152234476697070418480698093910203717411842685018587267641178884901804987119962649512291419362571391060411362864517067479705242305857253720498477469963594465627713557459183199238880893253155998416590004357479566290493915379171355858041758562332905340111397063324597640952092926292220284716938073796814045039165915356581813424860370690780941899270253307731509888466742356383879019755606214137371798380210737655702622183059153329975933645929483224179919520110733468607589458899192521140730088732739971492375882207870090325360805259558521070607743032527510999450638153529860009356395806042591732541734981302043171623895322945084535216742637141584703234801323792736928721037159315907348396108225499954247186734669677987222707897609486592243106360148813612230674822971123968452255870191105164538252210384276134077698564976168751034085373209585347035160814969342947020972808735202581538114299032406381635355160978149751783135302423239556025548143784250393869094454288971279413342940600714648103134769687459931861950257320374230395603304817688147355087985283566566190591851966614060725885269896379842155049804761611138009379548849427808545453896564510598665427970863958506889701746543061442578726484748258372841687907703963352644747942509459638326821173705965955105245400746080190673836653454050148982469484817292701764898487032783575791303858517623639357342519155319066470212979864872628226626917107845129505609543909232039110051284976398790637470362681022377139605370207936703230828932557265909760762034210899497053971230597089131092519574706374758114481318993055485357654650668230396695651407192549022611724466658258328709626475642861520419225493139718405189252080660445969762470985557486573901436124554814527769564695634203699371058058519926839500997009775370688177763790216349437053439566033073960645443750946229717087673886362003126019574547246854678027504933980647748755341714863026535755570318428880922444034136203307817205106911863847140353891941327984082611847184978940136408576760307980298260219312286874208591458760994877736534780818501539422982660016892164066786680099723127871780410357605883712497044314003819783885045917767119233293303802751932102094492812101544450845056166894139310305963234859449050376326754512762393622922666121878810308851056703440337528582855473271248985628243849520001556389572751082690926857557282265888285960277413899149583824139189179620781081530400743566530787455393737377761285975436569957590818754976507544733369176544994860194509178830601083482279724382433715019590752919222923802120630282345169460915719929538885773930495176431183574762854576841807543505703018978738102058823646769770798502514957252055409559640804871838852938615220208217678690851971030297090962566786720914390032212377038550793231639307635124769211454048470920237707207821611677680390804490804231850574696866717940835537153297835992620775013758433947740219543867870537340388725611327631100809392059337095587109081866854748425798540203901942672736021454580009657852064891582788659216293269572890187855391966436176874733029372212054032444432970322359320533965623100830778248027355319811081655405186823056811699448195839302405570305164701381640067736953037822433358191650577993970992309955126299496328914638560153866388719839364796866306336470623243999501214829586539296235053083854879344668289043232864970968330730753752557086316038835675285688048698263847116280241268048537501563760403809123987533277134821773309920532782824356661534816694616781950068504793424328883575374268940660261730657101307404802615739567613634449141789164099817541830295231700400335791783108524216900068256441080263832187967633530306009133151181453133969859063892682848917453524048159572155133140036420791351343638569717048494735547483906070703930277225581855124727686086812421162861644625166670552087217449174622303572111379262304279692304853841674370422698563515664259033244160598298812232404690505191558101834432489601816559642467081348046031473545726518710220993091876109489313465511304506268065179848063968119300958529406618470498096842439281488339157361327832747809591750663597468556220757784549274650970070102417820888232140577377649959816611024321697521112130156592549777223294990632119894332862856583687873055704542441353442828288501638080179534914671083275560709400357194483940017632694356920758574771766416850161631233720744812661785447951563001596720019063291923877905676155337949432762428618638345440848711765262368881904729173046797759011264066375218509273925741557567531782364884432725372009348449709247898563651621634409392665155740357888796213600999093117655498608606280374199249891615960711748782672911980171385077651931896446639910479163710818289509918500926936594108947615882030961226558498233232533597254084686127949424080908715250811009889069827540741688292316172872570270938703002683029739386175287252011239248703022885424706694050618046942566109461253994168192237182447892626621640002635451788282865816826549876259292257012980505197313210010760892826166141133657762050632857260433998857729860641491950389944306719624592081567412311820738779514356343513383029391333396040392436883205959052594683676500713422055731940307445245129286321989377043918847319735865631828754282190960738210719882204328024177850293051399062156618827107563108209465689810113127376784888531024358218424302043953878400087608441077954437527111828348405197439175750491891502944714436033937061236301853227296698032522232034028432091061033534191720728079815718161526927479995848081952153223756252539953219696622607571092557708168844440741192946862640443701729236238789705756906162940752850244091352238536731293593405868067844529010143837394811373558635872182332542295696333296460592557398865449245685733758201191926770869455366066389218573143877871151952969978518372855102142528432157276605488574784259180273743219588044155826218370724552213148756098814533802429507965577582102028897461858599030109122417379200730486470460345091822986939817697347771412528265703195270109341822814451811878184115854882223788168439826560430162838594784010851472933153146962453832337920293182894358000514750930238289653526893296142741365923820148956457250368607613985468004234170296429882934642275094933314988714503753755597481566561210833322368351734590331914975133601882128693761694752705603166545225653308558814744927775908970847354022263271219729625864047804951353356004129486678415908537477800666912738290507527038474317734807672026653737826626203397779819496689598863891559819709038454356110945831813712138801741285214793790116020361969602093789946809582142801350474129410118641610184783045830500084546289074771766750978441175661024303025704908875735926303471919650279744239801880282120626724142422733256652226100093050904714509636933624582215622512790346118321212794475708943242411965465308776255446194398693907291998655434691996537820482966337737950460255571610508067084163868943991306037793477839486035694023464069365995789788956150765582140973211147560111454673169858458493187835554315643675966362752322727816364195457302292054224873303659660540400883643094239075583534691499065588464656641585680322060497156214384066439210225411239178177743222728109681941617935017601203273524338201950690190660544855515988002433067215549586907137873702244151979021596006500242186222026163763639203340273957579596140933815434270527370078950701032343667988444507418566572558207004498102836162033547977833140667769555740102662388243504989327986536707334425269782376574561349747111401647075163881991075801787966394474753524205701846321747172623625876737063368084977813357782547137584578860587549830108357179892024776536279900455330165759443796435220173975107752749176339401863917554830027910313730923644196352856506113809024304450566044178529181401939068051854134215828956052691420665875327744681034352238824968577068596941142334305821518664465963165339148012362966688150769084653089736119665665125244881255219301593686199651913789376215308188474462255137661048033774562006132463398682223021457864291557176352259065896641474815419516073175959002270065937801816161646487738826291155206376149556133860023546414772391241261988929018789988065898729098695200041276475633299227903976223182077615917081648484340188100151431374749116217981850133046458808871818858806402763476417277038262767508216604752284672056263917143466101433009195276361872605377491671715895773808463144828259935732699605742467991102859663267203776978512620639877309350525327078446454254223534653355052050183393752258008819206756799548863442260275942967970287015435751239943613808835858196081790846189719398779534953596912752005104446383596291035380733129129222987664808809892879091673067065654297654218916218722650897482150948175592054221223017736938267341753262894020451318323976978086814822146371653985498193726666315878907930926510074306088685222228696531681177960595564541581732942222404838015213844253733792765995082512057568321986524508775771421776940886156048924559633987104626553914899526399121195964734013429387989952175316660412757356281299791716715316373805207753362724343652327668222834226053177976128127919552499416656852744228914040577273647979272672492515515730335190701946882092513713874149127034998808539175513635601210165619364928709983825453284841978136675551139773442382250398114601000938400602325411604835415353744571743114526665931033434206316922425944858593481289661576386504153185035245930356379591763219856105741728653470213396228175379436790502391914968396062971450448112458219961367955153425868066605059041137817482524813853349823096492552647716343757896346729881781077160113478849422242275673621638097873721630430290059534100977381490180354873864225437664724094918256520415668330353177430082006384379626555160660180056153718330952150846579055730667013664637224003646750778139397333628116994751122864699012012438928540017968689601980676946638127180471376085420655084864751618333128296355842593234448192996994710116457981029482249045312844407370637790570941407153167946385107441993062068496215512880930977953785129363898151464572640153421444112397736049388624114825906066035045843992155957272537759718997458783487303915121320018077615116670276936711954429322322791158272644751535384044960916877196465267272766081939550996136518564262427648899287883019883768790968869999365466996749758407181039372131749966098083428523690131112938584712052927494809514665927517258478956636428137722036747692600409421652012856978505572743380020396230429092252325061721555185944081590951843350492992212269192326740088624389697774761874496993046319136682673095766522133726310126030772778310277679690965310297276665268878743053640649832608371336996786665437343449470285412259434468019409972633525829488261621725479566194220678877588028398001196695175567914022152458476392696908818951474304356488284039987981830993602574023700926317342762590737118804919725729527746977219045836675112269100918168214290308613873548647049357620307539024839969260735567529210969092582984058031349321381035758947653019576791261540880916286616950999402041047836543842827447843398554208760639610325612516734609408348760510147673411381882657547612998371639632131802146699483247988180873082643732396290758688686932484477997835374902173463003391446239319817553062463064449353226592718452031140325511488649569505010259818101458955977625873766437623880406657837745095830375425271815834828794705314956997856470546857550016410435858892762453845781104803414833435510757380235202721718129939068169435503026572401920537516620474494838354546777530760751147954103013795792439513469269401987754180707033763294238759114178310735214477419910184101580201801889992467292285169741698119897536898439813871858782254997286825309409685774216341658995202970615566969512277511371003534535817592173063693310984191110681968892195713069698050029899499885983393838429308682825430947044497129995465968681607129087250264113463922449530951566069921759446582196189687804027646328311309800776930350999224634033464644034365915887714377821216215779175778932189533264344047947327195752076001473452736844219124703250187220074441345243647751777533146192187604404340376696272980283980824437574475376375450930657430350745709751775776980654865189662878264856242713048897415232671213990710588477317001505399791118238493779281599406031326488690826053806530174029780169817248297514579391277919775669903076411849598272474999182930158949501090597620377032840166476472795064107216422458363474768636080148399629662674965123587545025804838982212514002836251672058548819353558981079612179078154855584649711077099158034427620604803875041387280665090033659256220182794537998505652769893351774225680693938356875255295357736295780471295749926289123590699080248193904342732969514299970464001792397114679642423877750303531701209351898511750263862400764103652104124036381698633059462934611226145070741032763573215122447376344331075322174836582665051253204753916839826041200990840601906143927820819637116865713990642397083144713251578316118691393212361457452774521044686506486099279448016365515793194142861781571349449851338566537983837773379686655681254373881137592864315001594084482999804045737875308691498603303441334379126152122100926570486766060111938680264608582153739729095634895584871585841670809537809210668748490859443882636787316639975868240823549206559156398245899889208406939633304540731650169474549624520122975858656303063364479709781505034061150039359272867102188485822262852122334709320918781131999439484862202208302583390957650768789495166767616640609414839912706960408269166581709749498529845530849164082907350267849475567145641963683009805233377956738835240955541922645694822808128558814859337258097445150359130848022387722345423100905519520061127480440023943712095402620264223402450762252701281964107004983817403546763728332845206580048499121657782857693599527302136635297466604582565143725645361371236472987755232334150528857280790438906600046615474928033732257875924121966010822146921110542749113558314710569535270767879541116060332908733447365785812156308620559681014212282436439395282957255017413537659817680289113772943152390624242621012979652646305812254540671236737436218804517041198146023957037835604696153708222895151608355463966792269287467043381894274416893075275092771459372981973304771642933155865132215521973520639858661222251549504805173539931621493283118696854743929055450877865216039235627492367280531989080563047610728097144003131333273014433471328765688020402764981901810035546486371980996703415864592881047065815079951705329374255560989458535830028163147839993099628990999475874056615353688060708038438307398533102864210716485914956438153272741333680712690814144350451260839614061853555383009679813376385560901485480260874143331275294052748382531572172441630330703767928665858939502659973828930716698544061285168401984646889988897027263057257896252211032983747868947083215970731347644275098630211085196967337864160491985403965184064730039170401466993477221296901105566974699067814582876215704998129824664295461792689749695883093697676583284185646935827513619707513344347130333141839188905819417071770716793197586053945270991655777230818136650555849259548375062418429307717155415168431719995740338485926047860876677557823582976013709827514451374346870982017267686068036770567770896123744803277246252582311711210449282549798973774697389516116612806631218478100127073781102413256270720117845736875920415771156040299125632162183720154100022593544141697248881627213512739109082452134534247574392493300835126236570061754562851286070226603483886031027148826332994985143048097995420919915460725721187497377494192603106775067132872870191880165724307820799253822389532187230437789331391284481897284171299408377019309010438787896488345790768482113257928910284750144537477615491858953642844929388923779043125568534295272075483597967871811885197940287651501889710607411242071765223249104048343785870780063632782728716496428668478497669833348984539668229642098110686698141101752048743220608162673293768309257650548248855831732587866295559617957206195092125140477901643143427958326265766270743175622923093166994712267765928479663798387000095411319038251706969535103904529750370332136230582135669420674013437100099388543016639093123644303528080260192238116428235730838368160594919467405654476344666855633190554045236710627002384527923149805301285650902018655524644101404900057923168601853726563969963603634116022268899935894529895575221200963834354698868891147050145206599079682610863326757170506649294399186707371482253770296039218322210131016347487080891867897635112682788013497969597544748612160012486735740771993432683662468828253803482568277095404834681425662807272334513485367635511456816763644086347567527989256951067628837311970976911974948502746873010712271410958499863716328249201246742150578616657710176914584845310206642736124379531855327855141194752721275486177607425060708023836105399277240916107122725572611621872189391113966913157102769499054510251958504366234960827563388702513774283379096221817632517679590372684970145943039077552673163839238261193116697966937946606648142049642068845981576368816735634796179800816639710951552393532666037540181803001437315971224499064105804941541976970720389587032570969110363720722596312988779669898936847426717732555236978151857277914061598896125651742592723672807930076678177272553109381231337060900501806953104020359372529983940350532664045632547662511276843544358785261456374206033509227645280861891851548157855180406837124960229418994872096371421170313613862233118733081619085175901750501761870273967714515540446118187808805517263383095350879858621733234474627766000584109560391350847743617302717002664810027107217001666948015540814796941782380786044566541988795640933100626424368006319435629920501370239546284708886557398678373920525487929249171381181832480084514855145137682747813430153524140290031414695463869517936996819008901930246189326493441827051074714610372126056880687920449504825751185367634120620706428046118800057281153074691171355592640627018447395378812102948239713495148969337534229332640961869436701001582517009159767921506038437064570506444096647787547128753871195298815831311793393923958131172803776415699816801812026508879987372770345490949516878475690596088064667221277464384355608980658872710286092689840214880330717231465348888985668312230705707711503956175920918642923276439578663712093647655689827573833954942293699660494403630427805665021575360687333453204851113470272631919508906336419220229569029460904899800879574745672627245929999294440341055137486286636101867173068859363084347634047471499450320924130708537295615089439999011066728240710406759515921455873289399850114516421783223918807642136310900570252662272985662443110300736456328693262960869373374091188926243968833177361458139755178830290072136024681251360368301368703948189585896291557555011383299250990381015352363481642716850277578548587088429733394485363186843381797083651567103675502522406650737684836261683608777916716181399300018317453940803720507308677320168136722115147976403917246194756285985087229693708171119274246558570993589291433040510386737354864271398667156408033716167564447516026538390476831752863282146429670757888970261423077541965416209802162115617691483873180725533733206168514982740511483440838234144326728984030907985219596941853591754457078595813028814419971931711008432734510200945964840462490100601888396340935863095558267670223591470346963119373744852569573085418829418168974372123123000438038815852418808333399579650721939734705139487326729757599836745455675335317316900789367215221977368230884006429299824557643005508027281536592393604720690333306241784464380500820909878186674712191293434525817186751909689509662973820943753928274077451143823263336867705285934355550002492115611873849305739934470249193767482317072269037085148583626880617558858986853495578182549279315236393592862254438572593883461115109211816460172712299653152686726522643698682360119366971303065863870726327397839233963644940071092209329953906379874106621943985128866802348701876478277360484424537197761332080794196571129159465266910252780273324220979190269698558853433331762346825396242017839083836904815730824600645015685442454246984037432983031888437492356071950543094006902144725901085391165482493650050411368848624670741217286377391248977230837584919801231922138747781346604263607359181792733133918472672276350324794669394216276060139285862367572497647335397111500991203563527950988144443373060571315235252933678177845816884377878248789262907352081382883694268654191859855213618662906898167035276665675585643677675647348687839975310180496976945861329772958971651569358749961835406296574775688092452870621014028978062720537675111793227175734933114993422037808362052772900152845060569473299384016589323715258714108511631024044763044159189776657229591467765673304058202642464874400652934746060546422875116818996011279662940400617047180755902154818325916586321799213987049961581488488020876059095614799493927437505547761838616857223817622603223659157224098766176999694903798393252753921579501389149942593501733459322504628351166641166838895969464665961949304482318322833617099735736113873367961420926011301532122536295170438095042658701797189889562372169902912043396882350513698436295576925185032603031038285581160872912938550021171810389300590184351215596971225446865433550262093508225109967770429774651029808566765623175526122297675638804912287597404275371555138754706141756628078733670756435560603944770885991103339068370333498416830418583130841138634402621696976696243319394866835468218456456747211809182819241287453625399629744681407136566786240031775222763731836327641172637261867490404499034333066728637444268563945955556348365888818780963297211724311006671564627376596685502824377280024169677907484603159085622594785783268809854326063191804890368364623983657614502294035445261099986235724745151497616798408597428669636777063564222408873362729506947396375270963167455831306336554676081614436025475187074203181359685996586349118914412782858757144815134814814423409382381470068265794872198921162224266708255306830817889655818112107005343565806934133615603078401148879419140931644230088843082803730151741745823962013342020122004286824678913547194876411548393581535246477725760004316481440967377546270866968644604041361653128013090871415962219962518130695910707771406915338704763175923255510740863033494425098434731808451908452361679259476004410609342058621350799356098261647692422898651997918971295520065643868253660263528431121556270528541502180921803059791132251585443484238328198397226557291844930405379670433998526930268485428969240867752005141359654469920576126511413811328282961235298397701255332389320209790203453782964554780229880985136364997921534306107940816477592884703435045102678506674808054988910380031385393872503740446380869586949656831500902419635966791734867053572322260456710065871773323578063353806516872476047518987945605362614165393893575205169229927586682143913792067952813212438694897649534658898891713156464590219320449495754372860431430449716804715901056658886885704162327095215546050077758951907558932522199582799192559416707808869030559437436646637087079694797625523614039145935586116419171239521879674503661584834533150477172855827833239934938937844759269496296001112681283455056590739143550417754479072028434633699930815069105715159824017732652798840994110617465383933980667881864145612491103198862444112412978109492361677424930106780268582364187346954579678835837491508501362455987743591046883670653540187505504086037726652447566538242590590278826912184681132863110000355042763672901252276552079232647035476215826027561048390245988419051520894511381646316951899978939710448636585634077711557157843287357621667229397119115394533236977358723384816370742772430397375904441028973953083109744861665415347152547817920847677784630418016050152749513064907860406119338167788175842899250290667243189023723330641931786040175542651985358275344022166160162141150228098338213015925494563674380083606321642139153106799562899203107538497595544750666536199395424365573692102490358860805722086401595358477804499126795209693893174135956254804890279746187618286617859512174820624274455750023259776631675332123355314756582747458463366934445880920793980545257699306298752945199854500952843773413029182474751537002664258253748235812881147459762695361130586337351311841742359675161970084619865730759029484908016717321873616343510476047463163079605745572212724490701885891847601918982362483584967576253588805195982280315596110469927184635456177374459434631900417106938518307130033073736055074692722026066939414628615164532273711720446940823541707279832563429709552029209554088057132524075489931299506719433368223646128019774066014592184091809603178491446673003801157409803381559998846892194952909006239087425882797148397448676643441246915298966072868362158162278884962484541350501023005362186750149251858876855079154962474328858204622331368617011743021042771554481245024180468857939272695456258360586857527975391661464033012261696720778751932334866439097773810499508879516410323943820504289052364704612613434485946324634521313388432826098569892467713587823662839065565006165013526772993665024602111355912175695465643021663811899379749136307651321325607391359186540470226111634400762225247573185418744684535375738378756704728573778445324648992656403199653991326744429297383511627924360866832111503724957222913882570096701105623730172070651554689919945980879281974807677807192926967333131287620448850373013638346627455750343575790116224881802366189711135604808676137364174283232819045672296994979683758169578043326711778081471872809796530962113374653764181221956134542686444073770934360135713178835109934970634017647726516701220627211891766409207484893870531388282723703479734291320139731971452927133416613167389065786854571977789375776678366844770691384405721378408155867944608776334553759478161208433851391502640427631483248660484523241042681032025024564776950984667954591742008235580972977351078301665324742412871266353718168895649439563644597750801347410275484446735758277113523149989843408208351444737615380936939674716143293409069861053170752711771906956171798602479157728255422402097218495374354336022721199788441375849935339167275592197126919111775522343631500419784206833798287835763336396829455510533068053648791552015211249021791340905951929872202888087177542329177586319218135176426087749533206134695489468671094647477006086295586455735930912188573175697261567883785531953877041644840422049643066556915510435591253669719740397517878160542946723405182768119536836640574168046765578963563086573660550347617108445438312268246148241600294421397203350033830900903201728869606485941254606493992974770001247418920171084962771221756680040114445295039007929304454005512330086341650663555451658610619848400142305182769021012723663523041950141421259302319897059578446900153708978570660103003170139062376798804000109670137162521449751071764687581307181567054489208168012427079895985216532708679646160356972572019837714942178695138563407090330911298934573747128802175444277324831850603535579279124729605407036174069650382844650777715976800939836146426550714169795499019791627113459290571115670667884722258843094642825237473820687209304200904067432171039753263075788562199545911683091795843275256178894022938825123030568186312355011725449226103961207128558219597384459505269746739456521194668826454331561247214391687770638647904860651688935338525003535524753179680429750269148770185033110702089970079032571452604131901961872492901122128593803280293217379834076832395885742136007358417798034661912804412856595196551883079204853137775370734863610021265781879383140627802184077486761724204472946045101092125377440038273846277216223525182407291809751753314708346007367439764026870015499880891164757925889145818306069077483471512432406725221296694524336095264655672999617274159031529243130270896914260545174497430443653881300728799957933492314416305081685262292345660031006009608499081344699131518562294193653370189556634857849074950557449306083507920666509067578470870053312528068133803604103238731288535801445596453431479658137875345937830237299448742969998034526066515999416082540883399123157001275390511265164832683537085184290725810930989328432698759758481069173505523492275623671502709675951441210295860456733130911065053308312347036736673892983187665977341127095959596125494755955455902379639845357541920879395365102965820474973836256998351255522317245802895077703431024026511698191636566014570489008814955166410184117959212475505146351091102662950863068485215910039175473861278172917201019340791659638920277760321615300412442649814195936802096311329048563806635666148233678201299831712745113448127369745608841794252381550003576164690576156602070635541388324380353546476126557850732385376038285025961614038789996023305636131373822871115930976101735543260653433744038567880179301377193080365887940749635932736808857549371392930178999128790876121953441164207207528420458147054866079789325297301456072634671995648731722553814883359612533450686847687937295943057387706705186555107043882188937545219484155679680881847514856076820315897917280050769730794984484393587498234330134346393611310467173093312937623230997541773250292188106481559476364077343507692709016821208693558279665820360926294965588205452484448163004249462819732163240391680003812439874113180356758374812683974594805074081182536062687143477538055073713611912224436082606491639024672896872004701401529662178880958930030705169225800465827005686829224308440534492708214487292225852684667425175754314085464882752947074879442612320360023102734503897985102663518686726585811327753251990967951233627017428022435460735899916464506153313356802762259869465816598588278193279386509971617618857596856598031609303969181896556387561304601073144577934059111364695743483359444359473996626071460074715709650890635838262345584866438909463950725830128831351935867514285427076672923430519028193531968036846557536454948583753665410126354689219644409220768067692107345157698287223675126761736338059063806886393168780502467101205287867002713143565664849842930220577390691954704377770987581562410341341588651194070066412492318721641249310653227265782088130721272538377417384203557399743526281788182710158258626698165788164959732425853874913547601401098713968958031506548554825947196487090853081500421329517401218055189857239438753409269138971695722070443887337450822934131813686506922691876677544113157183187302877892449131513479831680522343363423294957301767794314196635526855157782952536473608635991691013247861166046119577371558298735493876791700214988866754722771582500001265728505970028198741032850631761494131074017536884774866698860808398503540560203163382394059130922272625259007743894377596710862129851294605683607412188099559899636000874052577396539011198908121057022574852773685330839368642757996621349530769740085812407058004689271242954852128462583058232262423779033316713562790569385111481834955551870087300602772971612939762548346685096112815833996278207834932002545544906444376343287323151837012463494431612194807125283576249124142839612854253820229590087243180187860662012595476283251956655360866186189068063884995230167943815526969376365376638853796398479189759122565021071807535620100690839248012078285094623916284374197212648311142228775767398943704746626705714968165730434230361011737389479769143212347926837121579975847938615304172755284192291908865670579945808161919738348240013521349501691231637678634040847976080137833832909135733251022451776452560392338201542411627138841494714487185523878563233172131041931160923826738917089284450833889616312074210751284319822817071440901888952550717952691150109789502824733144792499581606480174525217655160379487033631928394405499012055305730589491894122163662620219984509223663187486057357735810089742091162310089456472300653603224778813833368899174075783519485379748812260017775592932053627818693229580472971064706319282924794777634962979536051344308183882616892922198798473699706624697757174918172231152929309474669391801650766520398336641409432065618906681408430541207106581004329024116075717082836463979517409702606592244062352329243306894585387536059486584959430078658852563970616152347422430223804184031775765856801912089484434302810149194275012393332993304174781332871156525041635679579843055643342619286456405068473891304335156882000465553767707578995474294454189274705109659586442562373831193635158474714219559330718976699676518188697677423769562412688671776718731263824253610139066781526949593911229029833467898089103374317564415522692935750689408398918784521209597464087617153032044032610382873226910011444608413910833701373666360711428064392230903407642021580972667885461004898287594372602473483874927828931275086241920787408492728350584141861088446521426763958310470860450296635127861538945095018963904195687279770384408580783156828842895766773960384860518457734262689090754343968030780210562057343846307965923540225827282187701396180930909280176561535622570175526310108495294615975318051788044148809167311685185439886750015830247218305601980451193272258607544732168315714367541895561566560603906469945157855392637953660471278228688176266586914594566504605322478397064065149138086919318546867626562579579357312512800913689894376045020075699928265069901600166724351084581483136664576165516040613038643674843173481887258884550634045539843446334920484151930431775959192988057266797264655612675045979688112873807971229478052747113228896670440830934472229228567709360731896820400405722185801017853325516594970094812005891137265273335191231169375039852938429461763557472008442981471597818636854014692527766013458869714819207139235188539531713390797518590343689547794116862268293738161466874894877331092305837211567497333045142378931071663387919278850711840999593544451563196798206793340448613369645735480576527708311231548925386259747413105281549032273989309037451236481880674233560230314675220638260800777401468697510424639961957702274975218844986182561955969164491836070503564323441404070945742916473836559893803893894877810437682364711291440037823435954310784404590519304814569075495639205513368179053683918027759044525280764245558734055601993242021320247667309125286225455226232876538640915193374598978674832262376851173560110591002284428059810808436636731152934989856511117298694957091801490854838269162970811019737917285102713930398837604928905897108190876028456200606668883716825701219375284534839185336032637593733566098132222912829374292696530108716378800100257678737452440492403887361277744992649022139566750311273398024769044878176319589757828327810638758067072762433577094627831651399890035296035069016039645185163273220327871369023257117132516235698384036390225383205496117279525858983238740592448595552599782167795260659225188822633267394386947177833847873879479750547268454611747710667727864596965304158352725642854408080000647198130440687629890906846527537901559258527822481302135508472589225063219447386558719194299450359914680802690590882381531766089943346258522591894008848471386830903701428477270735763634234903686440925639470687005687317958802677574332593398983745767958091845193334888776417789812657818229590471571090431494047547285334617018259178722001529142938116884475954542330248517764186719473621247883960115755296638426437968513080163171748874654649853397600068022627396112412590745814548658848802973330209121933886391412306058087816608862324564669600336309478397509667972439914124425896597816248921043039097480986369519760899743009422097340291948853776775799746749122232093239294585787738607202008703399805339473176704944533809178533625100276019827537307827729304969636243463023550591181773407528989423262179358137216278169178107777499176431077011056349450690681052762483881316806969098548149179420198618523761831965610464268874910784442254357133569559691844104214178172022918362825447767074959778953817122070587730018639966782095399606033781976114016974078644938153094348034569188547140363299678250650735315506550744826302043843367078799491636708794124524088222974799847428083993148804569078581275126817006437640023742057093749607716674503154490925930735599281098029527214420340649010243483729140380825426793850212567730791952268795172917223616269392071860656988106556139366733931295345112001748270900325815387465056218117039529228154125623185611018149998803824794532826254776846107134016094411006552839935193640391642453584590833526024016814044327363416036250091163339425769680495543099516836087405714361434302254097995509694128464753612105537197591531982905422286460493396948384051741154320609963699957074443243457033457526944865896239284663914586155919365421617738014631462253044406687727936396331812645675973119439266981011004115982565983457844264538669463336111345000489610585222550751637815154021663208670063814485533948656382159389865544845100528213484457697715539827020180267241723913588881470715955106947003021547838619957046280273630197629155300418994996825678119100879112894344238645381493152423043897038537584072826017830741464103880429202063111856816925808303324661817412275153631008013113763725531727042264111838359813109132443088090723371789285675536915367813219814595886582651616444209632191596201231322690818414381205919321000027675597475708315313957258253641165369335901494268025972189034979974645727657051682167596370828961016724809290381353995859798518141922533219496459796950745260214361898194055289983382144934895398938094413362986631751879753695416803272436730476481150995996903502992351255797600988437529696076788488553068347629490497872903495447294261398904230595639145923007440152764500003429428197340085399333822941681972093605963231718971339830011240283711763757562220379316575427084721036410584374675841231010544443084813562574164167100134113664057338241390928644256540355245836545487681703626322906802173174044939210393570642047141379125951631724380556861760976176493728861884632032778887503342404182483345971637547436194692741410198204806567984865358490064147348488179105351881711799155479045780319767105308731688914574657267328163912999806022586495157132567578109265449906242477140645517856482496636140562942517747473523116149836375593172625312238373918336056652376634318949247457658105157985980394152441041609421823264771495465811190725610150634193509966989759249635279375003051391699730140736983432362032072718941387209602036380592662825300953359967174035210351724937228361455504886824506325969067675186906504563424427437828873785023005340702426199195311484166031140671906874111685586598694921401436093032886660982767646533524100093554849572825554066726471703082685532570332518454410501813016925228343336843559273969991008110648469071610542747170271970864789398533629986013770793102643695300594410533121583063814867723772825953055907033725912810312901189034897858715651645064821686198006218126163330571987211571373787587303291523564850641075906371052007046996263798366138579812062733647829475933031660509271907453203294911128270060532380679235236719374385272315432229364857812555746509963486448078468800010217763582582074134971467345948465849049232307478295207848025896769147357653003975525866440929159482742784792391098781177238344063912115540236651900297686680725251715524306842966325557173289263225006325633658330789458722512430109313559478149810128055495615975773134688538570820992427576298110949775328261362098566156215536769221121398710340905692465573328908716015724677661163461015038555763239132103489631050360577873007509662572333274114913537593043563886533010159931862619143251492529013117080254794787624958024893719027536970811966817750724631331264567324032467886188675544244413714242652309126606716532410599424718475643259592520342680590135537082964079696082631301130794661917469831112419510385424063046428677202423524941214096990592199456604935330318439253537363399565882243313405451562277935121478516077098807370464823402531585064434779398009748493561129477274898960527825144785973328992130253432234590914530078162309158304882286040854906594756669543014009223750918044558433252484942657917481708254600565491766609444698008377132838788772909278729486562099057016265162329474379180809605372738627677647691127694820374654681623633047531115209965907511644385307536447767041120030477740518193124799021328997886987693443830469861419090254915209392952119795509677297497126519732773343388038047028967600829780255396553116837337203369613644161906875728288305913308200288654277235352418945168195457322061920241094758427157681450023491242893159531049598604518707133145441853150342477149214412935459123960602188676922128393761729123263944316969667662147556635265723805501483547197902784311245359265113692248817560290374865309820914426298418985178898774019374445830701179957268555583841968141005388795242022465407445651467825405193877820994317686006319348670712561050598217844167536872078736811934616504937205492520975458765201654716544022224279320244817515741829250244956895132674596426652744032501489478817524836425169929070171219102974449462324126790118591252053154316750755887174247491639610844441106633464521013852121518879153529983304058483749407244412540224695451519648998707036614151355255534302101551799845900666905934593390728383768935993918804117009163008740438211152647513717610877758318860761489216535991723625638985098913907104088754240991119913649398853782803920439479814098605728569967377893875370737821518803348369510477388286992777684025776892092959744994602785327949986875031663187083194706714776575688678781189647572307615519881856611912285461819581300793648772113110369128594416955869299020821837969364289425863362519581402729994465658264796365447528380925747693809510253415577939670507476259678286256772202444718929519397876044930295351674331582541999113436068582363420411144868966810142828136377326712530186298533268801505457042826736999855270875642873183768079388040567433501961067959310773203853955380137792675601137024272857110990256750405163463393585990731652885891118989164998918012186242418310961819836494619515042990004432908500225424737542882966866765168342658239172459016240554535777484042814892976380784070789447490567610856220971367617678520621967149402443107790528481210004269132372692872083664640778144704162468185330246492652909418489640465275538072188578750569249372893162502343799773866029091154201225533963688179959553301699645483069257100676358359818823634973548293522531692243559235869993124758971015855544050666894897939074986368356551235405817870893173122562134024801557660347368601398590675583972689889489085364904881351585080831819788409771992573290755102892950107464149646346800799809380665141408236487984821645905760237473607087861670073834224357772878938480273315024570057508822385003838199106244183542789127517392077340986361487269524096264997271060452180060649510137593413745213800206251855527014550611986312060910837120836040000436757381190864819371275381973367940844505530184148287558587325743710014582811430063828606548156287804224410716319109061624429120213873931342142634485969040186898925045745723999577931804643175329217494504992233176194908432554686024774517048224973420626048364109045416452160137926767119398280089744524749426612314355102228090054953528850488667054213400991753392006673560776906694573214597205270393701369676288021905625307076610979572695329694205263007206190135258485839234730086002379228226195400519451562458465832414924397292492674334870387215386400881271495174684527778131686442916947268542697382737899000031178808164639107923697694894148198173682543566728340083066040128413610308948547988899445028736969789285384196877874960938418887058289129011219563430086351626250711999554977252173549258706441432754032505305613060703295793849816422487743758395335108281707269802061720633289324370878695548058865797039076263268813533914299122986326142826381001400593436352272719369318194717287199630033709313087780519412182307892773910611925513676698667374687577446899671016140656580200315003353966491987794070141567257230719808672785664719344246137397578798086374161746304950925376353310992940647822199873760658160671190998767648072025956828592614838380010299625245659882650376220575189231061680007410291625486575350154730592692425796630013536826236542538346828493392538488564468225788736174719040320084389070365528136419126498303464219760242238157957519396798171121874694212843178444916010397852193250392086483052594493411332592806842591402498912036136490632838435490850929538542519607109854588675819331900192732060760528529620931691968062277918457181663315830376004213210931380471357259194159229091704054323796053875212129912425113291879981905003459226382560062861118830743733128351132720018520957137683885779582042421238978437806838143843061717711624781843887584596766174503941368916904741956853706569602039348778401815055362202316399822796470095509582066593756551286432308765465046745728480940859857901592468982133373038693644399340475861620314994127484081661154844104754381585447639225304932480134410166106136311275902933985097177969840922713598506786985298606571882675237930108904229637947594565795128322702580201474988163713520782122275113224152897875043054080756814734280441432908164593038379728998827000670835890489192135865806480594600457659698739907354167834069047610158285006516058414353087077095879457337953496265588798374269458362258893085409035216340825805215598545458531058908590594357852535386671727826300417028754582770598557928933121932168367772947482977604645067158807449210784614519446456694726564653093129160838058903866601548851363948239747490715014914563774113596236496234421209769171608662067189300041715954000388176395911129097375257326128146206188924666461323379778571484644721185983282293981345004263800877371803736124162902508430615453923665815694580310581382500339477909446920334246740788979087741466204343163249149057833473580106481964083851998487812393044940544416673902215504070360725993956875224668238663662795314333088555892908781877676475683732041410592095688999154468684066840038891951188347782916078907524680138162994890489421236617015981487533359000537459384438569514901172631448614052177886747910666713874903079334830700400506634614899362312485210811158789535548186058722472171811703226937801897945997260619298837013828895876950604312493826575144221978732414703188549312866724392722414632649973242176172524588313692359502829237940194323832558258362759739129232022456627778992723909650011651521060138663875653038777449906248215893444717455000393575731721405413065503156128683091366160608249101656316488566542153533169137139877559736873077869487676610188396965514606267808714592877731427672849808804197214140844889174140697192896719451188058744223275065827506977840577789798695990104986524074333487508968688708237377555267424541331674701219316196984204089549130455886244802699041467791552591072325628105670610669388659755489342246179874903087141233883295143278344371854996716819661812317643463923894816873556887944636410997267552745384913310045544955504318214521260895023760942794184437864789339254127373708256672265444080434436409747888627128677046795870110756069101338175325553426324601429930645920127018762065830082458764391529484920757326326309559961425645875170651394046568808898165288899591013055066658014007753818201861229514315158603785964276128048149873313756442179861159004987975426344261785041325820881505238536068453187159293576429160432587361762291552625087672347828184714839989829380995793544050453352602699103731157803797865889312215422052652041774342895925374872191704023529586476948978991162643813860731674790212406817842616443675914002081728870262914794209800683805372157465139519144819065566650481215691123799439852420082011689472860830237334048103504190725523623532341992712053912336714860198090829772255401628893198762662743136111912889819605999445539420196831880438701698996150822981588937302385612328409684908010257766178553271309412123620638979129904140440845283652218017866150536008610789554604987503662047921176970777671142658431224158443876680680845456413777474411296619871482833785459536432780743928408993144171747078598405461343493706912576140985819472460822070401143348937442766543499155544491063409652769527350812861786299574337483130084407654324861935535754793167875089065364492976168419247175296049779375645188226487278619038977376344907603081710590799176383340873275299584902850219720468176280047162633892063598800264335667413150262723060991895326959119580423190417371918833031671628163401622937414039364590659496052660998455494623180717215267934601848936310899910217577388448137924949213821995488353400723543065242490168090008760557398776634764637853007996730438794434634169270902480199904751968189854762435785854971764437878658425132242591700234606485407023886617491632797248891616905770787090954162764473666484284369774692370037346824482472432429382512846368911259075476145681244501799110620417307354473912035594648946333529721730410646860718223623760222188956149184883919247926602399899351587048585416032883209287732989169807883584598917711719382838823369352220273214537968400515964301850076743952255324647720889051641606634659625979208014536080232440241321487383836904585090723348718580433935992144249334119724418900979060032576540605703558863676303997528505546036585240158752369798583742062545714202392716636599687546754276852372627072957742528874262652373508929521885377821764227997696530481242738948231562474312365979755734103250618692150859304643815166097350945118893500832193796746112403307550968264767610315469640269917934408663047320642718417054358894471011433931026969347336916249551199117423500952330342011433981662411640026200081226336065573323813061599541711438604553111680388189027848573297138700076488839424948622399664935044084220239822326100641821547303142976302833748998230352274053830754872532866898353153462638127597986720123840899591371403740453608811890943851327050980214012992943692347761577691379028086992305439369938286504469480054479714064196742856782679291604689066091344875253681740884711485252385849858469115788128478367577322288772800547942353797505404465275871566484416454257979612161395830883656782830695142582042720817436182207368322007357914601605549209779537597327185065247689648857807640246562368704421233655072866627214768277907722594964367927126109721586972408603127668625451826999319828726178356951731682151366588977364181286679676249825470647261744181356647303893641383538703220758198932474084489590080751044891672309252593150126359008020975900147684419882405156762413932928394573506952377965646325144510300915224119990452792088813427253024409179045218429708812878902782752285923882432736755928916556213624803311556947884584891091167762743406814155461551340079102961145124607996414889182539674266978121578386178831716589802170071555446833040800978051564590330491678886771232837640938964559997804199035500558205967828341144567686472966787530849664836141310430718575040341387155459034697580343057247615330514955314490696421867862580105488490858578503401985715021798176537079156578033488018445562201999600489862027179365009094627815887356528221587721501514974835202748939556133472050576244358960401598321443172593183897362751434960169094661798256090444914108022906277698651741348581490800991497448244759129518510787567977989760286498777784667892831925822012986551238333000072266633067876091766317752463419978945836891621074800776936833761989385631884709742033112707313853108617163100993278945296010696913487509607579270332766855524961590390592362366783856073943449074826852254717250576554938735856052605272171161168648659014973897112787908039363455617016461857477316271843441602319866054287191786079978516534114161531254603384609395031048680970542693617845011528135345824382633819982938116315098625504852472310408902707341188391395766366459252726569092073905715377738503502082740123383819085044645970789829863542295786625004292439872088497996147262800152624809968231172057076802435606092090539267297423049853563971987311938636330576760311699557764077385958088867232145463030470993264002421238498912148849216656126385029892136118145311881367844824333173665015826182826911582295280541170841428279237222636557146946778778883306122256858405490108710014505926110262535943462144610884633769980680462525346486797275744652443576769477257168104502552480836216416175526258027249261367315274786513926933368528243783815276537336951649621703877209372082446528088443876175596504099610625293189947231678377083083329977007093097885294111793717951518109956693270117087037765286365907026412644772743001068902806719116142264884459449479075340654602320473704839504237277661998354899574830787017795134574714453051927304951591614473383446001457900315211184010804478826920341518557593111950220490548946785764049255571495996087316932296961923514321711430309300961778176380988364803886291459304082084263666889393718965413035460911159930902049033966147894240225177019044407944263077698524697297742032088712606424142907352961762124384708772976640313663878870270030349410961361899981258574231521521209655782411701732299324499910940388269732490358310347670891631801205240804375087889470333184358231166690638436287345879907788210904057067925596495874119250862631906886644229107076955846222186909611934779479715061420128998931097201316192605991214398255915687156379376772597148898926195206698516663464359198387733276121646258549108815356428323346822158268943289319299394198977597263280412366617808626394370576717347588893082601890858490775244245922230919913832241706856276266089336212385820190354587561319728188745799704120432831157969479101082387827712034121379482605170357232887407886110508217171817369655446787184135960564019546414209009033152263897499352750364258626507514303344029389425183194614804398819845279667034457520939753271682074771958676887136090879972708450113565261769595466871510375056972644422627413538415633709354164117725636642668442706450726398016768846495170036907914348138372172691129410241460183440353243412386923596517736299146551411051350892699004441717487850441969533663673674384920801324462832107429982660151502568225906210937507573892506024234761740829715085073530852252864200410787831171867349233961417066885028908687428461875917179155533457980386950125554348898824525125348350826325970546094805205759335198238447024611768976481646056939426300575749524740069668039947195082972839393906876462263159249536530755348452689850166286546311518943977193425830443261710657435699527137658272650604641672185721025638684714326266091878411649548042831903894026037846756873184424811691913372932478621434660239189834357645796312181599113845375754960386948392126284286653235925984809507590728727911435536933802068936215474661708608387816737121981185790171570656057969703194131034242891999455867204848094773306635545406619057906950210345158032637334999468730687648198415549137364431776769481348204727979704381878190389900633986917689791107113470581518856506287826293355932999884560237400328189188089179376726441225714826009040258012880193649708468130902710427134728123873116739899219536238827538521871954736548756505705609746767978721437446461846511958167089489909792230262637782702874738510618994909799406517793132829083413884440479966112086542793747121488520057890637243170008484496806511664478106281144990246050200435379935507011782013791815091244085951756959696872446955932569584877202001738553204788529228352999631211914500660759385438546832502857212889724465328077405439712578543866645588963304137297954357700260515478532767145567770663093806847986790509239085973411717486494149947633004035499658956807887890785584187005659208244849645037585788777388922356661904742808629892193964679681832761530943402466106558464847635216085815466609688009842990222465240635470586548814193474235637947063509817051260995644243648404500111326094824977558259305077529885936838268143128345551724549322164901167748134594905550624062542476734254994402337647865072271494075641462373941633360211414733350279995309401073559231131614123525026872937303233879450144312546213143989377593871535138368236069053811605241779094418834053226127466557527758809514200260658977293102809426069447573249976244173150748465146661212582856355972328531167470580956862584562815268388857466394522434356129302821282416420772186329455404434700088882278413058628461792692219729425066312501227756356279871539840580794850703112221434718139947629730946273113099569286144216090791398663546419781713957610416171966893379250583532160104326537066590853567514687784282130359544147764496015752362230143037753789063468808338736334611720749748234572159045852092507066404578904039131563744477101944926797274223539595455767907418893537752892502681970328608932226810978519200745000649865572816672254598047420133709047414695207955430734020834167128911929684962250612139738439183062619724391321874959128385304256209035577178051980313514158056559226655691229510996700897345489397104590597687173185327757036490090717092012197830745144173779706066794999490136863591261732206807192795668658330355093193891325858346225470236062538445825667192921551731905135661186316598204515042241692772560827294456568229706476576370481706045166630563092022273860251817827176750877215499168095864865541431607469796630174982286404152533451676847069397965214212079262628352798500038810590466068104737644196362433749918252681481891562237807665663777876747556727579064830380725615872913473688180580446341193184090764941851468307962069381863821900701220844706864607632905139337684185306397113882018952907244851397194861143359701725231866090392532998629683784458827146616082851983474118912406781010192905695340727518551994551848489658520345316627850055813595704200144906196885892321204705471684095680877046146061617254576085114788980796077129306590980937408472684563596003459108995168280199121456412916045337543127960477408627735944076801836061307765854605896292298165574592899225756777803568381437209339517801658813622283312121210108928599292524699529952945105835654404943713748769061624718105635935150475540808046464628304936220173502925769196947371031008567425811098900912606167485869786636954059605199491354027400996443425702652215067668558659771380482650300051285627490342359526624965599155400164139018896240083997497562269799226870105624040626347367348535553587236224916034560278523764461039636959570214243999594585506918299581800593431508812753864928246286589145521723802457620624239587888908685830063157903041540380583354632485612514336862053346314298942761063510095656335400807042592961131883718564327461707208251943487610588867646969807656362041046379981069509162393875107511190115235042459259908036076740793944806658483525935865803446580715152503277089849448655569794457081118996017725157888287949135637065002845236029139634424764067754810942481345961193659700165140231899384322068649184427612527605266727352396841415671839419245229315486284395434955354448491365867011675922177429131056587327462791319344598284831054982670592456286424676808263068748171312224060773809093493686117418946866195344883232140220437696248683583620665335668024251312446276529253159941133260643187986900205930503977758017527359276825337235927310333276276632292142232194471024812993217393266975019735767226215658144437993118270502287735248699873825065587992032771655459520230525940803693373150982783200251277541858541817050737942801816630174960381443907821574017370031652925902974248481775974297784336091617338455585512786981123423531489947317768862011991968122692576331617444198296076951096153289081418041432456426907412449849225620036919223463700083764637844169197996882913531252329302412312490428876539713279165370600820595783637029428494322446804177273128770737234698404161690730259049622258835839284070119810667293776769019482699205123252185848539883333085142813456143783759319225158905196357746645474202917033825437964448113201594344278674124268362560705248975237419460983716113747883512330746880116938752251570772573489059037308623982669635363089520044609517247352853799511319610353794129117225016086353275031732065122134445270297942393412432365507193593396214736868690388335886494048402237999272395994368554329816234417169028822814424385850316743313834897943857049237153915124268083166234131180383988814803632677172699522331434961476582906687581750875287599672871024321593342819829896747738373189204510790735141310372030528028789290913912392311446857622396556133963401771572038735612674317594872749094439471620830438193312942330715541863697827444009241756651437059622299029963257718432702348465729514707270880124128700434409926364933537781762442271929056866396276362523212342737853313128413126698396278802427152602800030471064721261149314124730005957513956460333458769890170965914882926496692472200402377818505992010372728569171637428897438435441449653983303709302815056278798384095314892743908051757283875426327878221646260575391936200258733211482167869490504459681047301592320472330493936295413466134105883681158650401846882631965780974113305810340272104732871312159160152613891249763798264952392500757851535421698539760695892904890781190765315753259501953925627166269926465611073522672254493837997247475753430271058055864076066262308923568963361718641567378779948744195357885680012628877702466622485647156083663344358114526237052570207912301362795925230687352680278182273227975410702261141115195850159647138215670101212449079204649001538900235728409298085772667660855358832327940324076857880072183418626317753093352418907302184284551595390297683411453705001854006374380100398218675483897334039561273886721078888032006832722108787376081995210823945941351325588499428164725543634490246656013813973925656634923810701921606677369278527872194492352492648454855247934689067485439694216403044401561343464735675377765950607776900298302556653661046645903495464909891721901397019666646016772076943823444608802001876235514243120432182568894708652785578362291981387865191646163353294013854593483804563701270512436229265546042583976153011335055151290421888121597384612440463718352973959380227905024688077998522976821691757739189089050179381533511915211408366138119490282959285663241722579171974266535367372652611541866011636484597775442570761641137665544099518500634046478686446962642019485613790268923529700881238560282089023911338908036510501520990222414910065271766766945692474308794724950445883267074298729052366918034663766787702631200029803679586338266648166464700114991208043901494226721701932216230019826425875937378029949393670151065298005205143840386081497366559295857625515190910944834771616845108708951442601193266233425615909410744327126835844327407499963846359938761747790323141990492029603161444063720453752342693692515314622092631670598411406996328980995972191125072760853189311179224490625670568926252654607841659963115346427954569426120305562117620420557045738014514669438809010231941552096899881731886789143410009361595673226862093362853437361322081569023605665946093247748268589256306727372360690405095422238649271326129349453281914859290770833046197964914634240614130919807299159878459863050703900586949387201398451616353531356128706774633863267001001470804872935277696698113155760339519095524718473842849791886095831630271956358642695282234706226103456545936188484307704923981125303820156326856337775663874899877646465054765166761583040107097858055333754092441664477907897201832227059026945770174138260706677380624142853737742255191827575398866863244175427248772440400065721558383564560710179890428995928340802058416427561523660202053111151349696464694891675252745147286777980354401361709476850694274999402708234827903904474353594685785559754470766663949211201373447219655671096990671269644413638279534126871346571668885301700153537111876133046422730552481706248006861517071866643537748303833144048654249795945200200350012410259487453296616961130177248796598037429219100758948470952710849302647118509784433674393052524613880455322363826976221451151976021842987680343916156269376504308237554669277663995463011634489783200948396842468058301972851434976463956095491551824183201140891734782485689655223833871864464848018921366545701867453966706982475784644233061240483758678703241078992706287242080153837860457273075525998791626743778267087454148885182278390571986004671107687102609240212470921374137408624109461689376833079028874026976221677541666154066144307029185274384626639975400546533484032891885785013838491336785923558719454616963510890524386678455685853664890045850760864379511671182994623699798370998517827335351812913968306304575367264874253620004644304133951308511543192755647566572465829369436616218482612014259852891929750181010183171911463800962632837260095401274875899176955697721313195373702393780177718891512121419310429564710834215834298366913346773194895639417767974628762227635542968249006924487355452116904833457727978259323017950024374169712240669152262719472129737277025604747891225298451581011485710894825536437837719237449286434361059938884890134948186034249007537148259607737316716450909250181031920840576786400692407147488050150895295476058805629194529570507424101359014231263347912909793624687085617166157169487308481459408921546245865477124172721491456959587559131687984308417731211520825081632674821472778002868069364818962221363513986387118319604005619939522507567589697695327235835697224796670352451268603695051282384274251902205052956808209399426092086593637096555820827386637345056731150807180755452289133964174236989556206314813175175836625967945313925623851065524631029761650802170274831031811679656251423005579214234483270143481422188134619349051234877668278869684486771644660061792259916070184316461114693130210335917329722529276850261783532106299349206135587279028878183007290101967437522667947462394480795736045937459633403847537818831443128652423480956287294653898522896672611183611728774043524636941029727733715537568671187191707174665451440222205279569557400011148262245086467283477944107487116000370634372646280633777604988501287031398702953942160142736569615975104763240737050697534164619022112459752295448040675186458637738962152270783468100689272062906766551641541974894456880776669160857021639459342345046308221993102283038377932429017581778531345470348737571042078260318157038526002637956583318560593059061801148293689386833538821262515482860032381637610927427675635187010985871100188748590902580304197123141929640309413276031700388805638265379993585494033156932656394858064520604695940959015328878227869309202814798430939778530317026886183233868650338938691484321933447853484881568187962549076570015805496834044962247902458196871243792459750730126648468900445288863092322913350315641554169491943104779219818832015284581239817929331872603375677231574135328090695512926211031994578010677117527655917485055291811797589044780628512584478807570547802688267017195671439175337765056058766341688688126978551498753384443296357831668839895304377185069676343037618002737581323443275038456359578521466298255509982134536532471090035968675012549610187464713047633220552391770752771140480930705479252274369596153937048401866603678294955322127192140911804940278099442664346237144075360099071795168304981795483346820840506895158568797371998367605716570611647530933860273167404805656451792997001237871598496035951176084593323768979050029426162483562746479783092374640036842036108952189698095576417304443830178625892767573417735950528447810896252663536254592567860157368822987989489877748253013452015067960609830794898803971510567694968011292893948890382367190184574051889809478850347058073568011398333161269566928378347490916149210058676502303622022180376165488780512444434691365347360299699355399857559890259520217924466249719545648280698916721819253230962992840514996501793211500576254320724985690604551067314164221851729895074620141858314703451682334638261800374153194801355427786479058266449303938788856727511827623105788956241476158948955373718395443036422746739432803566981104502129747338188257491676876126796944427852357928337265727760072742459340149033781483522512391652694673897145678289504513616028471033249073751341565433678738558378614348748342753778802914201798665937724081686415235899749041454639874951947200792149547837280375795792508778176213833898488306397046154460416078216485060829299554273202304304905735192844805411670173119962201203059321625010228955007577403893213513777360209819659058956127830817691706211620167310962856550419842191597766223662736548977467392407370979018713738792181443633140102570084835054727742313163012679877004338886217634102573754586581903089359649052591308901977349974650000530358100844474254192426439476858840630728991275497384835902190787365026918005612987378156185988852950858018576109602205580122463246667341394252951906422450494229151818749647748954971829406387571575391790873549398621297926246353835212406069718632293497336578598951511119365012204226240059122881099937021743107090709379986085075602832031734466574942299030931691866565927429955533280470925411503668023377589100753680921279307064760930867321449155914822055056691578262674047250402242809356372995007530522322130046069986480642266163706804626643457092536461285427458623405165409294539635171817974528465931141859465196167039537947965639813307659767642685576138314719333445933678551215986338527945957965837596659828805473898654956631513431172564418312561505850390007053142561516684532661487232061418570570794667273068068866571457445960638596204151107696293177928982489930555306220744116056335003706390283271494273184369196937657769878952451419347480351127316373735976549652832029841995823741980358636445692858324687380778055154632115065856749578666226269473581661590493018706085016871420627694830991211848877963672914351536141011600435691278622832563513779992517012300364210267086553408474098555150498972439206906110703310080639138843090611681861453295019167496899806069045416315640122959629448646272962634803038302959681400196771696398897759645763315214412475331915967033698730254309560510464128672066410895277291379580207766862769540327415276824397601170613805364267983100546911711747826933893361353041950719732239456746011939087301893520209803390761957293171477415434570658323651011390718944278904224669951410066879496272187479730333250347861610418393291238988000025743134863976576347631945515863166513034826965753382587527693391728897646519380223833066910601429132583154954495847955859374516912562385091235551147928667634031733668160865445821464133481091585027134495556338084920910044688639498336671772911632134522277661048431441229811474921936979511583854110423414227851935079722069548626325267896851427544567583702234141660113172862291985405786764807816787908885627398648952022585624192382796299072236628253203769569905732710305464054892391831707189001783924487740281709097231521595040084104276146327003992743861529740115795944177438995872007025259347924701251110902217356877807164723377641291877794521253867464309295398344316113847986627539040177475385633951057798603121937406579870478292264269841899857340604790349033130814052800964491640466884751391326348563718611986500705812947692926654956702553892110914527702324076370712881187645169142719517023681513125196683124856965278290998351511573554591312967277578590553746759370223427607192955637399888145063663078112526992914690492663103098097208129074707591123834443677723336196966446699676919722480019657846471513657871036229716490951719461282858292370382439694773586394186349533018007138234219572785625792397349456312013453947561651506229215559378467529339833211341642461809906953312360787662904503275894696159220036913360856607504949542362393635362589023177255360592769741071839889040276457125231019967058164149156391147944436832932585422564580739857513991594747424304326879612541094271399585133676632540240765541648255783392215105672535948191344364025778026944089287590607625990423363459203433161284960352781849453096632382893665687910609900661273140947264586467719274765548515591847217644953278038151345677564956069432795564932999888463680404785217843334861735147827566135622355639889420993296122939976223028223426149051246866271862591514970190649540625359398369722404207382690284562480621983082366892686781991002606655358372999297009520040083790029980979496013183959169732772112077835356288345472234643178703670925266788164456426645519066374286370695207827493392242245234932838315352500661632897148600594707559196051577388364642542409029424867026044933910966911299541490423592311955950866033359132779531769666020362515172266112266906017729844136234827797656360774868810152970182915441596715875421129908960819941097802724110120126711363691492542643758192097855957855190124818384576675333975504025994769940289127788062407520254025544543924871265013967963628499069885556645644018890398015641818665155053571505093469137680309953498255281524595749441770248097962429368044200540408017349037830136140970469149309785606529534456517374383891947071778116826513581620770216634319489892293019056361101540140632078629665709857378088730308676472560546261275002037572520487980583332912671505637777494286202654527997643217201387888400729582395924343973037464138968882223319872991282367763325467296061674449563614511141827173653257876802831454018330280718136745546483878162157452015506932174434336466781797694183562035888580780343942656164065255166650322940494428226660322553597926386387082569046373985057279773680346574231770646788960116531922057150837108609009735326774024168125704120382883804049395171367690579614332258089077197521911842801777134114282588823886614431875447961829023977474159331012065173597198192960625943971099740459775947276847667659389505603718376536968429559788897184238682001397532673640461214385261442474429428259086458785840686066344744646528394312842224075204765792865619814093706434855296094006558164874986938631567490083174328746907757339991572215167393830240987480874732806594641901928026863044505218308531136492221529349207912096002327460862566749142954178822180299421627944832319294154940721916190040921862682374772291558480552264367238473147002898361959419885384161403882628501061823020669301902599969283198739817516049825667885175224377288857177162994026563701652720507595616336891513846476358184439456524368070704914555679315554682716741886504220602278842294750884141470301384118140571819746021220180604970374233301018295184725400116556547103425351680013678764628477292312489345435797061592007082368701274494729772306399342867599340906071434742586776384738716455333659539655204913678566263168959712016392757155347978106969048830347521880988400932243996501798303926200575846886994855556293902209191057824003655611876284166345941475904318021734838095321393099803592064968556637002776939726877456894275209034004944720449947201029337024656838572438187113776092590420205251442334180136991103521468953097139068105282192205443957321767827915800500160079991404721002986218923492613313421503168443604210436464716562267651859474935490394915844021304089412063374005877750606533785788071110755253824815607812479850073622002686962038649244626593054372116103369364943592740553240524415595537393501751920829075087196940796970395453551983279993849045930198452993991806699405557650178405639054617134526595225743131490223722105529109346390332489857971838487260371601064058498632852465559996270726272383601459365631641453536595126179791855033141176005814403234147604733103064225833427818701978806394351151050902186234225935800086636958883771743781501839221178683293790850219015446868314198478790066612751211361772573374524804401193976927103528545753220846194301382600768132028137389756740414715170726348923157502804237986098922189067903790908403420016225832667030054959658423669989401109696568641089388267338053005308206759270659773506638428592101861694295919886946813483478449077225153750640067061145208993031873154371810070919596109751362526138215104881003114754190225477662082685031450476349960802851493057840010203935968882149134111645017626914076664508141255085235199434202300037080709803125332805790759086351746117897921621754062964691330430887227100716225853512263652347127804017845956597395154969655556168964946589210832909384222924326345838047355118811344003798963471933367923794428838530501432036256880648623551391682240866601967803813795051736941493470003801378259241413476069500212818102647054313718044022478250315636387875648385042582868192932666795797944062423387403372316794763279786462890038260772335105142963706905529951643018901868683259196701179193911401646756148498224700553619074945203954821499336460909771472064825135199685762921227344988192194534951716235937769070615637165089256484820547478973546901585667887995422807011679138711580524559742144802043278817760300436842967806359013851535290591926636729314928298450968186570050660771510545114504445817719956865082039723166936856222201086957467427814888088482541781054998684178547329324173532357671770002497850474087163421775437633280217698527788881405125245934532449768997708267996342691292474851992065744635500596513771467388222067584535506527060718585373944150696052079611215597715406115279355690298846006597410753056872686906750597569928744097930206098090496484965135099276293754455037551324284818361815513230169773551546295401869376501148501068941770823654551521882292695886076226059047182251131960419801746505889455290921120759643723173341160424285645590993770924163655935279384847850404648939919307073326950767334431926721992831129704817347195412051202876597512868117218519995322069408093124973316602275222806506790957331491002120921972999979251270958478895965496924062036762783935264680824338734985099260924044856668828501532868081754212180690898156578013722263224938994389864969119627782946986984625301032329828922079200504172885937961777726108162357247413626145496870329336234853403166543868544788605437619556352171063282028278212692773441725158040028622618744094699992727432764711351253688946567432006405511932048195539890567394018465583741547969939088918451489903197360450812911614657724115315197511332825294450662631972037125594861946349408681147057124902812465198344245128388326065653799816235127224879848120466804181812521856356902880388973386591374628673598480167701658006694705925396069844975215904895317575111797796778406703585527589309696954201441814592989459707523555516148054458732421170205060844523963952166584246443269485106796706545178269074171402774533079757937965488116255588017679034969703220063796479950025506732851763712746590935465422170691770223533106330917703914099314830992189713099910381979519479996048201190440311681848755504903461682928989636191085774705070563942998619285036796552034557877997583623247339734100991263706345953908005924300795597738835856376257068917040681608653991949769970424714734356550415860500580606315268250476955718827635772139719118729984012889767940885060209953381165623989348229608024650917947547159869375819900387815351661575580599464653465937488156561981317303071894341653693117740332123898402681428375924765901410305166386245853026710684348499059972225849315830226961941967341220705332335192880159001950199504501041203862822419042794476242253733723862071347342112597061060100972957339529988454535688560345133496522636301840955074445481443161441481739964519826677983285796512451966062745320653362320597733742931688862087954022672681350672115686382960354713902507240054848368641011877417583004541697355273017123792285011884501682237613675235053638386980195903971282623689791761906820734940953940586721277413713143414918214254447803706900572535107268665087368142234527416183896620451796865103173816486544164773326627339143342652296162218972156608303771019270076533111382379967197976196621147861534110838175876257129338200590237643689625275988648082554912050502168023350952360833801521213195989628628101229880623009206776269444555573518480116240932912105603829050545442354098979539655682165006430571111260608345374515212263579087986652202104254512168960162118537826122738103115055769992422590547952623653116008575305644091999864525990231153263023374971712917347627482849446040642358568219315512370100711390549519476674763326821323729036195866437904514935749394612562576986269736999334990338112407214203762339027904366906707661604737871635701799325843889024281131601408469809869214559259329251356511555619576531936460442828095680221071467637185617734328473482098921520260816742713685307895347784315898714364674327043098394075565898659863504791529934232908691159700601282274581042707603509473143476861562354602625542492643138322373299529293541616016806008944410765637976916955857251422454827426623044179989879022959634404341487313517936057242057496745543298594941199543643046121191723208135081678144760366760389141846229827956185235829168402737912930282849937840616729597067245527308754806752475143009787305897822265762194631567286283097359523247565028166766141996359190638900527292586717498052765869091697173682746899277711245499666573990032263795729078479470033908713028947063773923349523883379270323768616773970221498743655864012615475194781027710031227267154981946533047227871069092795906077987927053735899308061743896776014665588806018330359203109598209514409582797662661109070787971874552998593192875666262004421134425922683623454773148723945052594576410514441496089419357995131261266135010945414365400090417741544592263361409123579739926491762315321793728955972579711645067930373805451360872859966354047258709760006654154716546661439857146798565230443049751696558728225606877331473407598664522462997419712117575626126561322767150055456859190524301829255660539861276409996770312847387010571610831530272042193985341516959548658125718529411917062688752604496163667643589470304657864693644552279580416806744910390477324008260491476241912081443511822790774417593748941766199701951382981500988802253603991768320974639972793663118225204013911908535252610565320635764025644462925033510827327826611905762499963570579879913194923476284611629178260056942724746942735825535726573818799038158430450136291026118236629508032923985829542224734755773234788729883008470428275913291135651070928376021566685748707491134796637762325018417710047803313636170782859055609950779714536105239807055928956613349168597907804685772739659108778903694733993445682586023320972165100855372337354035646883880957351198483381278078525118467393906313911916607073318136339668888950712518161730333940347894031222916049803481055157523700677169616290095769245901681197313544255188312784738183528048769506753682424414684991478984125256012707390573192325596643365972890615452555832328554372369706415053733754509853031413444916352751590067957598757469489544517406932483200079034730658275978432725083528067805473544869354742450497064480678510210056424494920120843688934714575895857191194706051673907479588876017863803546718222896269422233526006708050780518571691312316000373806828357015870169471063355089432291845947055384097174889864587850100048192577083615403405156900059372179900608415633279171305486957095057025750830176623395275285557047864482206653660901064986089829226660980798763092070028760736869322172143233480299249202925204707490888616305801258878169787704029074697603370285044729368649454015272288179903046199646626892167760058554356663734155932689263535371019299050728942253302219905949225024342499711606996448651882260436857211603215524498630618329512188710173517490713215698701061580571087022975549081593194072357487797293335048596933182377479389384382042318726973835461457772798703885760289437748789239657209379815014622668915465514930820318297416502985498784160128486622065306168465851541476219848438445798219632056494930817500445388739294421613422458947230765204787660500787696364625571808045929164278442733836086635207312989722733734620405695040549450860717897088855793707671863335376613130528511613623156107183599549945815346383131662036196060566800345994075948180519577265562908093704107755556235674410619103663410392066261662283414924286793781594083694376738966597269031193240501369209681942575734932597992411568091758992405996488336179365897597779594907231070036307364463790974966920125803329124138102249482573609627506929439065884149444856854516123372916761381374711529948807701206441747888769954291149664142388122908449400818018003019223669161403492675861457160429243398019917142683869092786488331106175100750793361291378234819451349506235296065339744543610068600632314189389465464834836787340572607542496426881099933872917820401287430189853451578922930038469958352988521513190503543715892852126706994238949212355993708494884639610966596510240753830178412530248100959012082074397567825031118804084820568134228916564036550401220944278730368837111730059415774653187894452133301698284161611135394827193988849284551658958346643812446304756875758783600557418576649363700872714710910132717616491025610975316634808939997395083735429702984288785265750227815135548652870750862568441852596912772622269213643833759631820744544894860703842677094202166778470872088649562656700759135787242757987713470175252319587994338765426019965352495134589139342355013147164215640571804278882753333694364356110883144154772772607886012140012930936827988160660226268811764614882291405871218539552137677992589445924894064733369545757027566747947573519545238690459219588507447744134693676663335832838844156975122594587107993334563039637199041770395718490938575058296219514571036393311963371618581392578048697219821956101933022840461248330874369396987519204756817289775344542276970080693820959305195770675653166918496783052037689625846769296057401343024533843522444520640591752647836282069924039464114316805082161071674226726376304490351293357989985514324828143592249652528125476159748900232015046767823499481142757056096304554839520113461521707908678649606113152687929441624304443857030205129967062448806434548334491530749040831375704906904351981793075206239326404120607621492960571599609736608830927482402178690450862680191181736565098653752821053889993955546999333105247904954188110444021720115287832411960757977085625483585758058415338151885669279150368022528371702374934311703584950254673208205997134982053177339739084721604401991611072577237837442191697020974826629963914585492650546626758865858885458539331393466256854148355933796861779193719702633660677139380972848830737262808423920323786134364954337165210713854197268590447555931020464128130264396121039882456786484158476581352688392937841673204932677603967888491725107033420035016856677985201104330688683341729789109045025076580349714025144904797996253216722758649960665599046898647334941654691082974499625176204799273403833797100079801091720259629870578728340071576036210405180100076498652923093051934044226909107283383361343248508279781836976658378829509658168454052729897261387227318749032276343034969929941079457248376674967235935700025569718334619345713028345014947907560733884227882350850916270770532811313918032911295183347720538345874454070342425899552990216493652483288089530726062633810870433067964313282503805799592158676403445384083698989391032965381344679382615276159509814416896029703531156337691152096851631236876958134827310581149921156670154825223802366339383833635332532410068489859530997936310419309753613291980151847736638705224691530799276030285722617368577411002800094708667060832498154394065652225566298614020801431605369861607275716098173149530996606891339167089856940838672233171076528543085192831407467278177987828566593087255494457327165005915046997068679046159944097179684205083513902969407513964983136028629242074356262680395572490382085707963332746111508724805935249286031209211995155410788068900162452995470242878934573846075067705978136373637513066243749761788429887175250965404766930295935064094559196339145589726009171302388066047049583490974984583992130679558538356859936136393168996365044339242511023706443033186111452918031193856255478009067203563655727512680580845037930696334378148406494721105609497679597782527449588040828942745840257451831302880319079189451703606649889489590075746807409942158816380173140352016662651810754301661412986194141504481156116028368589492606809658315907995756612726036372084717587809481071072371968151057530679884894307684859905971708842504084167043186923840791882110045981581265953932208189151594408183772664550546347592953666102811035320737663955945889185809827358766566426563193371550914663872263436176142090380000964746908262485483794454300982515092573240587147549603222041276392051507134010280795772315024496944786107349142974475451550905869953271206824602098011301505660907205377485731582654774749124731271695490153381375362057577042582550361533111913363768637260682041748825572073303351599825817614863219810781501751700322137953817620510566095362534151593659272256641674932351504498599605054919937305900653400510808331614755013731825106945623595480774833814264210265456033178090530095585627893211506570579218344513050155455344444273756697051453489180244642104274712689428446704994521941887955835358169712141464410350039048679299751545343115138050270753710858682710615136558239504576888123090115436093007170388622611989913516131047681958495634235223445622680455095204335063502632848439424919910178098390770765862288390374445318049061857358206642750453526654335838891051688369278606022281226452162364051049089058526060936786719800625156177307321939833096843423132227772969559985468936590388092821327575755744080695915933865449937345040577709808256234183368642966299133825455576886094424611889955022656662065515590188232045769069808116992990261570486200235376810061772913356617505611008368968518259633014909353400325728530117431514503050690714527061264777719401656564820692434359539867264593630483929105806682461990472964935352327191673220786027882671279341989762012417802780133725940691634250727673130113775755175783551229495087562487350880384659731498923543193254761176542318604312257553465118615751172219578277591480482554350224106311361915415384498781966839274472075770746136172790146490804493593967094011993639182999311529281589893360499086471605703782490292862837583715046229798221842909602456119201036581888161833455700904801150843473104498860140985134999051491861667616602175965736324833112308433094652647233748477747121632237021615102469351265373705789847248685324292865408443490036667407704230481167749458304657960232893813061057052941336833429262986537362385256926510128710664934740860085133985280369704091307926852663650140598423406320672071621705329684142450941918742839161974917269923124256543323586011497659186499823502151977769099812801706536008539679789479778619821089337522751986615377888661994401889747334062118393968486985563624980860489327916330468769759558229491102386971587013770122518679505616419211631479957404027520062370011118636737561507100933058321959724899864394152525322021769700546029648759826798510032469841960321561929023039063384141618104315069651668756601036471095157140277750971895413524943676476251955325575939223182154769089983664468485572408747474267996674727913837614584834558705670419047020098437994031372587780918493745452125344522193472934962057287743299630546061936834138977349975489124296508985706808779588559692770148433993897350079720617948812294747468020383884220066376944102771360319872605652434285588225414949583766234427997039266253363388316552701647874196669665506601438719347001027117544000301117483669663130573444077901375230224104074033070360328089289425728776527288802938488351396211443123972358575668566805210742975140082222391129366629655052161347712513330973511578329388835807919144557241466578089746263529646545450554418843552661470728358589194239167879024521428097639537266776395757246493348394194706735335266305497499875171954789185216994527763047643875420236877519595022380434961031577028855536520441407374998325091054374491741140369911715233331743965204224439484067992502976845082850099794972099955383055264658929482899887664426479991442871707842154590368408117333146770132037851673462571490010395489868100269419400182535780141867174140724052199059503501674966437464096213586903083328763898131889338842177047270460255943286403822413882451089243959342505887402355622965350604053167014315094054613154594309328567611919586677407964855085889390942824497121465909806574971896984580360900595373751212604340229082875413153885368439951962525514876814128064606986277014423925018590347882260731944791550130922108293571321201495122946497520854901281791649499128240679205578974258113799382239142972003488760278091091637741915931976129466123625278516504058732365248314788764078271086746510659426893905056467957604495066055564898588992033911825261447852958069882111105950285338737371243038816545611679092006684364189687446582021182955844475523908349071390479961523333615639845125469422695079186097872605688482903311164140350254534666295513426548136150146898360177461273473736688000950608586613067477942046361974255387081500639707190364940059029530302213721083030833343366464721904791503625420412913332573777894475798906165870569402729877936372037707876772034417693038504784688934176586299283309366117292434852136123084923320570112226902126137412885807905925052928666511893950948381029595818298041693785791159011584138891980202842649032990225563580761725096482405175960261514610837797478834360956513864648013959564274701414092668913762948609937078509531620416281944334688465476253776014022420015597423033967339516149458311623020095145755407866841477414715073532939340476056606271764261684435771462750765518068212050001954631598599427423129954833055566659570109660010922851176937653311462751537369204061681500248503839722890547817829599422796998491286002640879906437093200904131751631690484210194178815241473979873858611049069058950699450748580755474117220383688497469741788788031007245648846470530500400618530826006192762792371002645804055782207708832540007116918947500778680884080687878774147469018910362717385160856373442519108994703008073337892615068246246312500415221953544707500713551124276347607021814336836379149636670636191472916881843676770751161652591358361723399274495403630395236924503954798681712069893119127332779325503191415348959334197851703518052147594312509255434991455149985580037582287514699072127999306165773118432860870476599106671436344991591734674736646781772226659909023685174192189964268646534446704857663402576977536395754575031466489483110983925701249362253911687305075671656501501001513917437003829149194856420081361740014292921878243490064154197390254816220663241426266988442908552728200673018517368405851958694813035619259316201228939550764925682478223803534704992360116962172378155542077535669510714042456266993145733334127128090911500042297270330940282245791849879315718868737200293916051190038847885210186417442567236712074966471606458058023395121542770685745942601511818012716256377986261717596622105553256223991915214372510153726771280089391855573918535539076368518097538851722945522592703359576316750187580178816101033855132564549707043663223239752752810231921447375480978090915457576881389072350024269155591618707126634497464711789024551073103396940139553216369289515768370487667205641782292267425792005197751604552427726392467436418563264303211296238164544782045825742304825227561442859191174209286970731043114661701802407277535826997507378829986989109586602196775310407781770577790227443167213508652890256421615400549420543008576389023093245194711330044118673003559493142142722371331689232343202513198970558481240337763384610890980966605155343892678283820034051432617274611550305743137220476747375237339318872985408464002774409946048452667663823706299016723288660081316054941576906851774497754704348890666029472456347786155502149501563599173006625040952968529249916965511254567431758293896849577620359277189864430929321445859637869350163177121501648566958509774767876421659001369946809262868812397453427863924455141256366565805211693179915985399630517793868271735322040766917508611795592298059430020679561390727403900186856475925681923653319456707270742052830870755644958119518048942395516799621793673764992139577705065484481652637645788594673121079729331233031636885150216232010688525221522050426147898443930258763909076059118250237747780131548172257963921216557340909015124609296754188185079091660811264375192522389041772386269728209406900133916889244058279221232114402944972546080514676921877195467966730765053728792476292281418759167459424654845089880298372998947500399488707421799883311558476780232313511659807732067839289154992143722465027049546811091630593380144912154872007062809377124222001243716152128337776383429478766266023813047089764070341896504743627814295347467286988770515621345745789181354463533239526219940909217112405064771151308598722494586518341870936670091156980939393505871616711338784116781771177927835927675879659434268036526910921248527501963721711530169256946228680285865838424434489740660301705234501124555164658949477461608106328211208489783402945828594950176735079588163232016730585649595216221671209708806149628899777084491005185792633873165718448904496785832063272561251203469839395224515785529476514070555162919191170851226908370850160447158193378673685546954762252858026191305046358299233950841742760454160401663759997926014075116700736784886386007786288461808402003067122594041026729065836028445978826725678276934143021778491734347539071834625009658167617810137698046371811512724204748764766834747568695246167231586041243198847083068363784060870661576312294569650439473727839319147124389292513377684372717268957033381014550383461635197748685792097635143386450192641517450102839730302766975132770685361255928697383992791477647629682784603768350483288160426519125728002529349726953494877116394963638759161984919643368162611361608718756625150633535680661454325407386384193765243953879768782469758304704830149159897484135125050970358723956003574513962078311645390090209960695261785959800264681307651251925111835898275555132541078714717495812032203284520680715365379126179195532941791982571241327048038038977913664050061944612897642930877547608754503184036602730837457797970342697766237366021387059815295472980119485136427861196366532250986835522067168273224753052502197622052976737561807681240979254428787390707083060111128353434656801013926102995616219359251978106310045347708491957871562737745076940690973012009406190566523389462992760677954093764649986852652557708612056486166580567560451803775044852545700668533107874300975087178882407955625692648350640334253170912627699370738396951096653513711410438338566199263892766859385439022233707140826330665017526065883021326252213104672723968018915761808103431880853394609400411462518983646962768212700996641659216534158441822181445906716884971973563524646971659639586596277442261379452054882438654423649969114491968404099222987242101358900314428670909711061532340186930374971871027873829976711464721497802789357259757507787801231603590507934440519675390886020919072508972318042593353048900922847462249984544251214190829700893492710706318445530315306489747763639927365622806152794882600062599082035529155288402067378895489713804144671212664637007235548656873175395228844790335967226904821471104462888951795601873614068757190674303205099508253933083261189322884474649919664542330297757170719927258925155787440483532940180021487126786985166133894541401135234585095742918216312490569205236310325672083009522709086835554094101561394664197536290385317734422969045969523834900636115822974627711013444806945195736364572943408937862579365493067305453271332809507318622495853565024812015036511549492571028285613354328604016939207445677370757299793810061906528324598389150949186088228492760238447773011222136520001448572546424918546764416843252654434876172566815872157930618671549538478514776737021204645323042893726819041349811118980694631064719891376712052259743841501224577682340257874932833520192848447553976513032074633925998504922231367226197714848140001385438649706215039310132444357851359253338629512360899811388806450117656216948884477790476871068820772663424811118322229187861711718438209158039065402326088110616837081321544070943437165444302934109080244488850252320064981827286377540054374205758551135732953951872560999804303439438023177747187553775639565883515294972957024462181393220464812342084972943082184107417559905691082580728717873976381036561049361011549582376100451461618464098025937174295751830216372078152263100038399217847801555591086411083530836489605516488844286054619394472415144096522398085186224587275458205712048168133012928961996788144521718281835303766764198116210435829919673515377709902876124554430614384274004764565778315275685448368819021311899730907722433651463815456660477828537207358337073857882001001058869464658291857594644289744491144012174096826831337054703359667718562486776645922604737634462267812811201287124274736067109243571198614396796646457731824643402662578839662671819692598128342141952849195236141396239722486603237816380388273479712197754160708821488971406547329507969679466474656625393763718797727850532066294084308620450901661491966735045388212082631364425298343542514970738974748906658186879140633538161853555286816507906348318733008092283841404477709246063628608594869734723359540438173836875787275207716096925039759407716825848938836689238034675782630863185106561952908792341467199001553758120530998119732611023093589947137208850943801982032308612989582107608075321365528895053048999085276619061116133601729807640468768882687940949761115904642247951931787525321151713421118806613941721143492164055074020586087126913009472362868600832718475979915528939017210823580551937566317238685867867258637303453404452605263285056695761334132078680666248657672391940278996081966708055683506667919407233188885121233846762233369784369769694849532235957119720823924247505788456212208257000493003738698840489197489242342251623453080343598831993155932902022709216865684494989734583215083016658345845675654607484853020671188137086144899922148297269339879803103747744266638481152882606106929909117802699398951823568932851249115770010235241053436948842488513293464362441587244444647662436451272135236885779656844970643610756277997040707188794696162859446987229692085300165102915939785368977961314419250929603291248241770107676018709148392095006729162111708450940459493999027152502062647342084189949421551956761001621957652755719445370131534249875715311809083805752772202639384607063782619346055528935518735682624037945240126770786543088756725031812520009765295797690699975712774227533688230399452546644078198304541422634557293894803061181471401199876950302738801722152719932136622666049228499108288611860554584686410179696099862326663993546983301652721258015126050323676645422612294579810732161986671716737514830097154656964389165443634306112545597653205990462726877629502413301673601319840851003840130643448679866950499923495724621909403894970858925912385445481881568363925871132525134994364216504616823805950615565207835097732062042931857472540598844466102905725954258008389742862727094782107103315072080946296636905113465309386458416238559048750628355582896421246038557795516340100536576850030824691982539835103773066584380236357636152529325157610186665104905145003807040123793727009712657278440968417328180581758712566581235869916540579634074910163645660662253608975066580005787211793819976193498290653676376926644846667904308338757474283205754030566034314636691632066221171636681387833190229828107993704703428828482891681709032562641888631381323737490324554365990667559155557462917193832595991090124013854585534996263972775427002967244032170872742063660136475870052956180856164505201615475628520128531061878944420936371311761837273338369122887937139796640998739143350856451018912640604390543198982072441746009047480969253148990787095528189255259723398672981852119403231877987156186343954237476452371970803752494334953337858155176707262179082784103054588049211759058348892541460424946366733027947830636046354529711162047754621973293725620125471485753893078894449250839448717900782505237168594731681488061887038429991815864782126925020008235060786348781318454066163812872252298036621116822780455343384432798237988535907652046342428360140696441954373733927326922013075983542051555012693462562706502635443237008114822979905271121785707388747601330525640057523434643514088249152328264071857084571993067539554147512370653376196222475475805501780282508304825074767163065411527474706968718519326350720174989484049498487733263790044232621391827946184242990074725964030064701913798244459141549149624953106250587601776146188600503480282242554464061197386328968861588010354563083119104928019413452926251196133236468348861001546025282958823429580999594649581014988135610952720903729622595119712726257906951295636170101785649659272772823407793906234697627565558018107639900442988142758792116541664155543761677977599232883145452125269670300757352382950891896906402517692268899356184965424489222671210452561786407303416160059964346571965579471330309453781191147974550674337667341077868622508216983718002169280136471782450551854676694938813671925470902750472179170738378304969600176526325734101738270438860805127962942557603366124973576257523162913929381942034115003900891459764777769643609180318436106691014328864675894162209893324340795112738410589975052824245956480153643604223515062287508593686043165302113121423075218577835914732745105665593181911934047864938904219420824181866237754829519963133760232254927735172373681965516496171977026755832252068367623361331596945091845222320393326309221949223440847098672420670399356063460468931174103123421758813540134139033770186756249620326453164356737895199261286389341813121360976236250266607398757906890364204890017309871493967188043541149151423488647141620569751682210410598613383046351734694363775563067085391470121561529155709197342482553152507837704969806417428992765311250279580389100555098869763853811952279661813744421278368649720502988804235598699733780968948203106157922928827909959189271701691863641675448932746314734306324409791307826680330406186337419599359147132788882726507458484652536094401436064729644171404807166211390821802918298447517665478485663171285349316848916148357054822297268389936702550589194533050653946093495380040368792313859400627374744046710105998094913255802675875345541067222511192475793391716641477658603533385227077967361618134654540043608326602488373725027125148196121105324202515675923891580904548513559536982567916751383217629896284023630956542813435266289776850663931101331924550487736645679201679322135588164021240882284592923987508994883924120980082012699249050118276177736147374941634296187991433509862057595635019194294816775832289313551090229545504942864496117864656517505393680898773624505381978610154097959824450611270520651302367815968173813211144420033031570756182421075939108152105140698222008554207238619830484132578830902462352811619430905885929717648747013828773377315490169736704248878324613406148156027970187047740527011187117528863728220661758852839057298000698194827526816293731726898371821824142380987973366979558040501261901293790789078539920913410774717071000608321912892846803681148192867085991913009467833780353718072657802410717502056954977905303755365005265894932163330706507719398888012685486927811887669527598631649166696713663236050697334070503998099203849887800530028479374784852859027772292597570963301387646880143919669167410788204413734335206864491691399284443785522805767699519878587722284564008808420356217736550328389220152274426396508542142068232407464890255196775078807095658537355383419796140836866328235777670045253978633516765159161367461394628302613136159149017638304933042249350777345991811656472044581454405454025799205462654711756874473470645723545174891702688869068397622479657756270286632949919480105293046028337521141216817059860171683310938852844436377922645069933795860659550285083468625460578371582353871526039623467741874453606170556874895906392054775706463765420022021806832512489434253695075311693250682798282622797084933804459152123783880777669383403647526619798923977978529334899283473468656673112994130107943786601705105893473880452885589721995991927346708750080507067901886222389247435530412032759385192246805854537488977424529967156202331117462758241140434273462568738362619175938057366979616407076247402183054154816785321608493293441590019992493243454709583390723791666483427139833185137722438655976691507955112890805659532058922931602464650595807482641735732028881271103070882217726084953119278438118343655637489517738001911826452726935645831585092850946331114420386575623861399219714853610360879857330520753628607588970805196001078668016935269946548282569570008508529514110976904447737410927716747992402641612819953812702604915601686660672757072151549801178306999783943748064155415627769879542891167280979406674028693678183265619958737738432141327114289923669601270279380074282134963548925757672737454581606123058658595520303898132328288429933191901223075458577451346806466266587967878607251847813037947882871833734468785302568765960406058015375204443663688999933534999165722236634806087106092410685318109683036574225896853484879553711759272362321162278756381329962155186656250953173811086447377923826662080347092877278467549108483240598746493499838937739779075725186899296154373943784355821798788820378787887646382027666462097056943654745075834903472913021498429706176436337089301208492554438608277766261838679215176693251523310887984713264909197586037457147462330106537750823137213182089706151559889037311930328178507517474649506786064556909111416428814072087069817671057887587357871602863010636296336695338519349330603178985048080013879617994230303343880156856003500501620032518638963422794978249119833569601811000562972588571279087398470065932010488934375290265471497242152154227243429549851885753787977475062439696467472318602407854453291335510806578156174283551746324669177996991001911974944483622063654818619937874186991221786753105164457803413229322089721040381163726086521100345469839704826644877401378145167643505246555151728907945975566245151213949522500720756862829509012711034770330091286813840579369754540785875368400474513591801474592700294643437350471210324821772285786815274613586058016383931749447420132585564603679454010016131071553190635984509432978864818355034955762956492070370133936256483421927896545123435786422439842146238312939522581421450181315237268318743668061073441128474233082713587335154492962471927999845255754997019079723882646740304790077396329028972794616240012803789215542664632711698786121525732911617991381327820377603860517856707363739669501047968485305802675937949386055928083408336826493363631978689018490756112248062115947017633688386847832711494373451680099489494031613690599811555581233556139606853271193963597459056099628249294831757797070280622860641311159344438416537296132350212941302621115780536359102573516574414439431871184024464334744101246878509105772638212981202056889439508718775631764654443128659522878424183649828917949948989073709023712547030633212830118306748112074723089029922157155317221116420089701785458308557641279805948321498175789057648193781352191854832079104376375270617673190442600496991333919257866002915812738567730762934873421696378266225378363007790129476600619365357119273338137900355364004260323662412448831681038344127699027999601684669901093044674328447102131408441952547752225260512049621265387997571246865580202670589758078017116724772532500993758535881928996870320841862622492162930167453200462832500928628535219180720646311711599066660322939399433622904788454541054229225001023436415854821714806171315282899490635704108103008045967525257770490737335929479372776607423044467390408113186392629460274855531853884253089166422458885588594800370905742894933156306064197391871873511744846130524999920168665445382247463800231808921091392988865847911104845250221939708947424081084605381333172696813555422516493485632415182130160633567676530135376015786484492624128835458391602043107440244928477539325322656215828633793458407710859827735423587732031134253496417531831558080481871929679583690610443266330198660561121690128719730152406270588515777541056747374020691102739611965751833012658133097542568871977157452881986531148909747927895374651896563204820047400097663905027113894924758884911286880877348502497452427708087309373579722097754477601321478946185168029073421661758414008918710260017259564865228592577526078437844036271472316465850450389595514899824489991726173553901660791158972234587447159987946289201000990847881075813359377874317180899093789428677977722352125092134150529982005329581614404088887454265129051838784984584482661062740994081582768946366019303616316121883598544401798883678571463372834125791817963998262270984216737603427532897724374150307182294451300547369300554772951237531146324626481470968418750653512242510164777816774546469890860696084020050423984069587097641744434244616034335313651840363195447112144134489162957307752550558345738288344794338393951181870969914874453684879104001260672562055621193896191191370526626249313796805292940010044972446996701333066499895169052849474297801036645237927184270520309682853615338795547435600425725829684283363383793166317522140882243870200640874771307400436221102513744294003311185422930935385482718583360686870066718287110235869215235467101214141538006460731995198047452502613144225178833973319668054224348270366717179575082537617619243432131469582299714348402412646728496049704039632390930834793115820139198821924288028227239325628186181184203651156713766170495068652566834075271779736152705115617162362819441025691619017775133389648702907311335089740828969209187795919584147315036820099289388237242687633318212929681961715320893652659958312491901431831103612961593654239931334885533791813387236751969698208010204804241253489251195432266601293205654785236071441108669455879912007446299705302950979170666364285734570256867547133267389228962529494761150856621445286117011982935442354210336700639897283183166793895156901256902195365515994828593079411866425924911555570775287443594674780877524428790145099427160096854658042562744915258829497591933655868383370890681046518652263665440537478995262253243631392052978039921136201284711878216743951135774906538495098859237662807714467062511012539423904402772422073640475798157557907115020752900901805403508794040456028616300897282099793712547379871648873782676809697739581147577538134279415895992239795068988882977847520118763992796354504399940126255186690712353907134535051177653937386181171767057044611740556341764461700105405376437481034033776998791425029549118226347343049860728163602055961507621438054113186053258437686257960314046407002746197287874281469232767711713000771690256471620638581514323483196685200857097870312199860604550895988900826161792276959472170343170873057802148894456072180360034908616238083120404344776470391101258396303191071749404572493422879786793944133172489833665458489863308400833356683011426856923502958868962958673616223811884677067269656740786544014950313614597513362539508133690897655607206716580965785166707684214708604699111971309524127383946952226378989000128190413567825736581507028165793549869787112233176313572401310478498488795757703892536187782303841410158814131329917177382778624171151644733292651727409338399254627972864530140571268051997253974640408311986851776709214958294194827008220070523872850101613312132394142731653294086074870091433174296063535025040298580642778552781713642581658572345052372392267311938509148830255585659149788517405193275677047658362400673037806200845083775084281184817045684783657906543338028703188954705547057800092083173988645729916020956734040346659706109209343181982010325710219745692043763442484519634229922670531144869800667891134414764853504791427823336540024686972445706263788033108142324573525924525227428044046410355548376499575188098867001632459909067551726792391950059501219726738099497238335385705553941776257756643206687428904406416509069680298847807050368065580226678161923960331559313858973393736757735472654447948750788718813792584411533342437947360237377920150947469006911927703808797696753448869293884494728060093561638549210700699559474164279770940081663891372641082619158474823862848158730445933753917510440060142386782934289025124734831919660150735235662534829844412252621024800988044787917756730316626512082280346839635601923237515665244175026546468491375928537990742740243629754689111718313075064669908424794810395782053975729146789619373821783245942048012153104927395419470810146890519211151342280197179911658176296293928223258009063409626762552152909242613882233606887089895432134261163999355554892084142551405469771885513169748291845679970052077636811149424337761510538070414172697187150717991724630723088155280204110736079708643378546395663443784026817872770822647233319938229987755829531567188321304262359766639163101009563911404934304318045619472277614336224854362742453076211632849250365149953351388770046948565789775800753643670883278470665190873758444207244700635912785417054301913411318711002733235783278457056433721036659541668093783655871340580220686729492232545408563523660991861543676864353240922770713974830190411894408562522924481675567942781751771350562056942640759193990818241845423577229075090555049813790427329294589567085208283373685447570087338283197848975330800241100509565753730897788555620539963989511014051090574522509081738422885116070835795751594331304688414562173964023479020828268527165913032351999506210379152114319982537939854100883190190434019220272131641195019481258680548756340277192265632082651298777846952518849241731873913998964781680755799748791464464453776196174913984416318582579027161525929705653756616197211769997859315146098652837224596820648339261438767965605362674655265508591779221719138519475912896519108223175668031424622530371835395192910341239353616460938855517683798844417470080552831438344906412372128197313903441586767686535329985385803245516881833654972322853434949726076004468986362605051243054151851240983700341013414039079640118120102869083911089060838423807481655847539627113535059918115561497449285881555761953494376063131737978925870205490527531055607762513966497758417679838549977995628317219864281903110344649944135491458079530410616762980987423460481021764011406468591969530774451941408062358883314448073952127718075239392602012554335372776067947742776875255792654594726326101866575997443514619689068481279739260796081998960701193914120537345358984249397583632737621458777096223799124087979008770720905821743269794740107875018672803708769328058329511477774743342161585919755109742604671419275370004171038983790907952872000178768145642352061919810691276056484223818439771312005515639521954254693386929360172737101415044625750050106769761925352982232486408528483866461188345085751209803343584533074927775891747160961485147414513038836106356663435256595383688051516117316417549303754920707377723168116808890896881406937888498339174969332904444305197259678309519023214783826398181995600244946481249163512119851460371725670902344781665869295111992441674397951105406519429348562211467534262419287806752741768463257427349765574178006005221448616630155976877112711987957750772825820717615646667691774849615739897911321874146671497338654337118104269629491427601824307059040589867062374192000130020599993224819464483376428620111500165569617465042456628141022329250400515901080167584726430705033414399540928024671846686373524377145097346845605801866073676032789447360465805274505297315041240998347335672768791802856752420204568665397343565340824094333738990912576247014119381764424707913431643598136651708801626633047778372669488689925226879918310702782371351981805751964480461857052559134871700647842381822237166421596004330880154125171471511563873597282744369327276988142019853430930297014702900625776684998625479026368734132460184227536003605053272434125201765922251313831182441214788109813309282860577470381912999007070137112143237755867389531984645991831234191037938078367998817088825913824586855516478677840329685239522478868329557942843456315376254595048601638300512263974610033497726324171680997393162362654503152311415029339891631881687232384384558069314897462703198526255912882825173235344434170772578987515973740277294345385725009948727863742608965918271465199562325267033703089374677028451202445924056379178561382518186347421928266830367449431150470308508340445188297239978549920022771340517351640872335674733386484787889090517092337350667343750466390241921083321188456431531914581658583691371897922905111783918926449648036606389217726593954947610946462515997018991817879372325015083236813353491732504942783629619937935707523138961337235423170519480680994850532089617390809145211407750080377307824675281792307887514442630874985145457674257183021430104707105398641572603706277076292563657254605990609060166617139786143197955890492190134361152095458017215491378348434741059450749556113264690938803044796800710679870060060543477365904597846002405893005214652522353883590008415237286849831790479507923687593516894561225688640429023495741015352868657948316129576840058989325661852167094285327730203840821047945534923620396525954008650941677618378931539815761262754488266448142942821392954388158272639210443948268454967220745394416529590937289823615793048488531783939869103185314545167304376603397401857697030333481921560824893299582446673920488740106116917153764299269988837656252789377534981810371349077789721253542913681129443478911577563669582891098491908743507036166569450266729150552335107927183489998281452753849515768130818892083023047997770562048029407128042426655512146652782274996430162097669842995725076718125810414868149547057570881555998112531841217392378149011879173802699973532308076084830915240538692243325438516364139890327758903243403198410651972925244106886916266203542503166085501833567362769695595805006580911389993055510551943849922127500681880203326236126125355567718879813650481613976401438729490826714492088095370759800322356054413075171299025706564292666143941797308556291409217723580641496955014689390115367626098969313279962592526677130435127879809376898325627978204912548530123046190687678744726582524790692599120409534010587636529902086110145563513381369904594562961686073395365231852488170386962682565767835152380350331729538076258580201715156577757134384335296772511231862767951886853675868376280138393695680642925825673060958149055050182226759076291792518302908157297274550116652450522335472358164904153332729977376847091426056421046333202196624846925319476918504438644928542878632833568978790464279758669021093278161852017094907097699899913038902655808655852019840217275832782431600789935320344660326364643903271971674900840825063821239025917969801424022000793798416248486647805695275171893486780532137088798415958413336414318718235862187143762490749313041707262549163867987098171530576360740210996377148296338196431757536758812154100574775196382979769466010351963385276792799817164216520001623563081502463657153998324920157228778706544192755729977112458221906851802719479916312782795338532724386305169349070077050535750695378809137890492222511760145645265522100510846154404997760178550169550349110753174740894349522438941692882760266629259975502214792443154088429602635182178866619280275236986762802895464732469320260374584150390263830425354904816555440398625790031978234196190032153401033037570824326201942711699609681169968880912084650262559720338593194513262052006065060545528714365349774734863808695458101417347456266042252924878784160249171166900303669533611024713962523209893913539910999276382765990665782904610056030318604744341189616858371310305398581593228019878810772445077897560737700335179924946363042657747620343086703141104168446618430604133476351353242254835205527244371190941914923853911230345988868588180658609281040332751249183685201448723557573031289121991711095574855942694750059217539513669740473122169899368953559600625124445610681823852109679974726636932922219017128518768425282918509207691528752407055938091572907537388339898343182812966530507580988304791016041029016391115066880875438565630431385207331826763789096701619832382689936954329361143622000093441760154926034702626861321243858592901173002691149660509926903328066682622917124715486694170326017470887276345927093689366454143480867714797056651266099789058810037850749942050778996329839455402469604822604580555430050544033687712062979153144165168352158809752335876534834724979770185007885357193397796977352584107988379811205254112408880179355158914239396916328176797679188591910029406618358581260830532890508852615079559671766153566179873207513538251063147319343796522472405211929405685403247749436580881373865996766104895956019080492312158330776347938442973632409386595520152605229938367275516271464270478645914967416883891921221187919228480124730566335866121271155625038417723457426177798583329997470155922677006588919957208400725075941133473039248349087577150053771621972592211589266649634793991913855703133641299825870939559232633051597077116693179007121295588577855863141092780343524317496311444217973411046251117554898144302836083389176070818523388397422365334481420939278655672505026281876905070817661475292625586316278275148296103039724043636886292060835983076696096464405342853505266438554973066580615708243197277498073976288290458321049206193111834300018043673306993394217582234423496056020184958960574824160032814785279275649031025122781160785521659483228093282247984418175226252175497273516284297414809298126630875003156893031583546999386830379174462904834441767174144149615867122734767882324683547878136707390693158880212462789101912390934831964245496874930348818684266565632261518509678792919728092894433378189011656248867411677949603572268905608210319271970496860054772236544056303455582668808540637132894325809522062610471153855779857980036795842067824318513907134338697068492103226158919247910315680515484523980553263483313324833926598341040667642933436638716341806583540109336549829428078546910443026068992267651053693049193497433255218870484427125610704905939216339635481646243051640095516790953673258135951310405804196409265479909189959695677187012647765374316772915568276119331061503455180241877282028611723330007265246116286009404134089281834437548579188838751345260819534308532124288434196171731735327015515824632454032494803784587845553293709004840680967814568710760652920587372585598264732956182461426657745218806713217748905418160665204529061712270184524544816688900651786941967366326692213409237405622094009345864462957231499244778638724573344489769108927470953485952110509010526781199940621326115895651061479038702838525652666603242865767501969054740682277607467577765459324965493376134476325203693601867228608605164102986403580847568556294443833666568476192535264426836690461452414893552408870944129590196465797590558317845086329696594584848862204355726463394004136730487091361842416223770262213656048374073662330752041259825244221467636620375930334869838633663994411991954203974159474762248149518759589524805795124222584505941823203756125651338183695375894172176388625719871508740134265495008093847480009139766559933512801924854151547800078999973821743478407914993646307272610706260823859729848955620000793782884478054263995543961222203259045246013134489443023163291545456886517512828609589098227738018609623428527466672628371865584707061964059346881684893021126041397955726310815182669208811956903855088576420579839004734883596736199085582707691475029750591813884088781226009719141097841724649062914078336625899277318330722568172854449972886324780363231128558543159914869076238085043444603113458585303900362228938674203846268943019594756616739623660466316421777989508234352970247932053835273999919733565283013867227924328943423731426226477766196472229555757795003526166745189005866934277058197100796098597207891646499008728374461715427666085149130670992261878068638072609552417767795458653141450167586406583653265072301598229821621386951831962242500775649604069571236863243555079159333041674575369956525842974592814639675026310672791122288917292425726696379391594821018207870296209560264575963895456487957920264197864203887295337268735597620531113620677639955589921551983820158386911082379083203860071802739020749391808143710520246281682894323559327710255568468659306727017268996137605754104186838689074695949595868592550274674846028719946612762519907835141834021335866925818329293821905269159538909430054039964244642637408938335533726104081984495290249947812708306914444227038673628722657960636103805949752722217035275544463045276547629717410386232492998913827648106027070813266569591471619027605971468301446830194366614985057527838409644802324635753172243351889821007487200825085723011576801518435657060599971928371091033395320095084862281257492744197051040566096458007562361652579779825847870034926869944431898279112140238162996106774670023317109845358322543334481055245611721077146813298586920611612940885850822203400530243339927966515491867277042269344860404545126280137334829428994872176069394999102224755788012668907961097065704362374614589885579789983659204746579668228272985207271099780735319318447096747946560488220261141797124249317175890366277818269428987600773560264110469000042277066142437042304453447571295659424956922734536815622160431266518718862430847668164829674758664395546324058049894660399659511590732297393515520862278983366292894392246833445203161245712581793520321552095646842887197703931950283204072811573965742785617695352280700046167121440053327942077911042986140847342176565113522944746475521043431661848224961787227400754730946708578842418020024397688633666693775329913333423405517332967759416108686131136983828099181174701999328420322988108820299559656707856299047402719237872125643335612261124677394156600534115581760359050805542161551179979251752221373402182580761968708489395649226801854545385379839708864733102210209495910483881139678269079163133514610751174378648590532032412587793375158837570573535270895409156280982804519020585484675922211056137168661486446963926693411158123331005341592392623181024971643541060361211398375615840639060996042556032791825487207179394925865060588446385139441447459203144259242648972856651704489740761179981883385073459283472820801954798487985402268333954217122878049226826288990948127304888572944093600632644470083410407905091115127359487472772829763558874411193145145384046269965412953327018960988824476462102084570105241667535773186399031247676145627215878996363662994745597126216520318550081587871986173819181328710908088148732727698267300486070479137093622527701766234523144456123930478936110244343270718508993278614587318234265394781957550954947629750106607510363207302504441385251883663512816194108912817640615595315387793147919876039146083088275787291190686962993125037086756467794621171577159743395710411479125081583349620277175219240310753153718053377824821179702563158505708791716552642477580890179086819664516900692699450073691961003197472629140017021602629066697504837629178575641449864485573354402537296859891177987967785288512465408618021367328748993655395738653292494583687780440420924109007248486376613180246571392088781027299920417850743926938377683575884117763522132974677974884328129284003186299332694677591505476624868995651233157324786135963768081983930875616048739702478985215676626659167303951298313233467977494420305056079034209974205517105627056300956239694895025921464938147245196959576711920099192056979811005499122795390215944557403649844329571841475999545020031811401073665614227087110626608155399685239093789822543005712689606177484858638531242041974521342999546634203392279338598206738079243243291499899920270959393012217963131148968021711129255036463642934740384948277451073692059144791691565207481580634892183725335859810957810713380544487052131693506536101082000117554974301327235937790479085927202521501513011171396919500928490177467796172364090739640379151373093832666108642179060136774440680456679847414821311153101193969880753455483894235560848270048074928398842203004706870055783894878512185143298398139425191345152021569825191169103646619847322987860581287554309633298221640486269507709115219789688833490280353244226233257167510680905530560224036814665750333323232739401056595577488449440739866475270384369638108704799043076360885957314656533138983703635677179028360782803779640827124157168702485707411748858080379234627460126285683634522797534043736892855681688876919051573468936160662696459853440693674708133903845468132056950400535854210599449263355425694153078415014950647482283839888227823972235768169568213948001296353080729578206736993399759284619725577467850454570621401381566175902194815184929736890753417263944356106610261931265307828379366133090005836162628775494236986482100096310999886077004091570583025016145156482613164079293195862759904123157913051044215225023990412546870160535096622685127514419667166902574400727579415773113215118387293672493396384276085616729115700241460638684228028616800693508034904207439310002528019048527708273407248665558646057023905476117444544016579221105135407906998717278187539053247819719532500078539559658827909143359200166084761657307016930790634754932409850231525901328327454034429952732708013407765854882362517931564282484164845690900554336471487727445958132661124787099001581708071196811013411425875239682113864427295737527220512511951495889501265193030579056576071914877913304071627754479182003348072312414745554549433894864930808239731590156526288992956600989922941429856417576151513267100637714568450786671619344213104469631809827010851892531340209434822987008422452483208162223980250735901601917712599527010349089777226056050239136280793327448823244089384670129314046282651152210117762149614221687473605412148496075610296952420925997363423233247881731251583476812976695052569408776375304462537666765513653870202444070440271076470504285206079473976688990716810653007330696362104258187449319095866033537524666234440994997695174166621498778377464673698810692801904562340957365270334140006634558025720388244977062196565140360040612069722706482795362809064446618396328785622831104351843782055314680511288576082346631804131736889319082537036931291489169641423946459868616537772056147270516049667034896608230536360156955293930639516578344611084758670743125247178793013101152233667587619887915639907472001083736695718396759760030804828110125203720428484333871912021100489056318027786510838029165492091043201990703543598413803271300503462985507691607293956994055299519455126998421846651878803207480313699452050666087067516842100235819005793849440965888002442198131144334016284245483870706911474193968906282973320015764723768675911523910866788815148388936964420944973383492918169548447705185139091765631817072516900285848266606390157609691376120253341139459333855040580013980036900296378405661865832221603377288842840622059921563735469320930203340400292038260595202266684625384076082226460594200169160694929836166190259113966841382048978969924087326608624046415384597496641528234977684333010681161452852657574322118845465683449773615206046115688017940308876976734444157005512529318909046011106412298843240362077849589532878908319558983462804896517860056410810081660680161772672585057683734238008721221029707308976107631225689661705313733157033424447314821180704048748678569873431749554060022495146761300237001798306647574682670573142834838826563070392652397637197482533563990296935134800660516360740100176132374668458565133878685653860076589636433067449230253723181232808536791547847871955736736712095443657680508380450420183131018125388479763016260163482551111176160075894673103526366227817983681249052753893543413613729935887460454068233880442411134889986328558229192044415445829753844478534274006537392116157504294864668216685815723115809762254584870558064872911741345032877030873946914447892727055212036379361920741473244382722388590377357612380690762458026327542788521297704618989434545802498909716650945767826405508302323676551898197974117620765312260732219254589585207497381571041640632962322518304600578157725143960615380974161160909707930063014808731351425602617844144162730398920297941171344314565635849743908914014905664451068227960939260948957412721072573846247162397182546635431226204769918019380626156912034429997176137109605578325640639243698439277468989583270970044348705198971809509753110107536730240119084046063465711532825645733622259540145780812457980490155602370760386800148166761982293596184585107988377903374370549954919167330741188725374087819306129503936738750576101689843110375896839076375830699968793977902833569254207427711800417202520858507280062503626987982505835079975639247194713784451599121876777456770397297771020764793530040675162942426179184814952142031909269466012354739726015533872115547796330271777895391282385056882222020362286002327971596038357465980873541690233300377158058942059658553483622267847013998249769723087939467148264555086853933848887986865899418719168115815930266856754858890032491183777655880710935937780099543183270468970666463702212536554702755132142759930705169933503808472844695542917042688374382711767764690647727456126382489400183010022203096113684890410556143240185733628493951208309939291676953053050494325313148384868909278264048542186291046915866042974746698639541133958372056537869210306339111891554751514240005079081232003840861234521291156139040605596003003562426561331317384937939061753421998488932873700634223534724460057542140056361565881786266368742043426124277169285555614338529133761479777494736084780606427743629307888777618470292413554680780636642861068181645925036429356418213590978696190554677131915345489492910886591691102382061205585347986422877876821249286662678674664882476213054506434464780848688272946933225042080499047417745737817415186858457821470690748455450469465331556689257091787215993505652781281128017252229945171353353761734252710029972832069815234966591054380746064076412937632248930236507619009882581358337411928204903048011921829827061286455007883109426345291569499558862669165647506710364023426177736260547837223093658684967530961841092020917654816215525990657153308531551525615856015999339528099580019844041444971581284049667963672858392116115587563803248077220292538310061248228211608295970740602097258149656373263204632363351208199374036140560753324093413377905136392578596004636684165918031530536125195294291180112391740268152573523524890630957390958601475359617455399565393688310368186045216434833744602783604429327188540459154123977894603325575438152357731780033390506098983273834763058085470050879792485250558686128082113481149937644782704752145487855277160435451589515394860923310868440173919319664991514000238400769975899477025338765198788151533451971678374590247183917762482792962014646162586833011698798874561940205374694021673756814897590194624952236114981638767960570559591650908765584137271198450886770352106083469614070057135147392303001430546710760485304488424053928079115494847453785657177470510594026997164938317541047234129246810826129001311194379548459484700145629212412118375860526385759456217043551009166888904721971506828543187039203447275890752608629893289944094608407834863045419041944067876927987834485844296081768308446856285502359431528304709306111339271737334588355274467075366489714012772141505203977082985637622726963846854392288784931799955079573263983869313707692145515907790887996342074663012463626667575838301783352347529765520569474390062313975636377752336443055942939836835473147768680370566510150096069296345989737664913329116290377573767728673181087104184263034309871800646693590402113151307524095929688664628784313085219696298762873931261206361990277645730863742239646466533311906589658158516498308846094800634090660969169560924978901485174904763375051430663035207429680212769359781092878522168176709978423767259038729253254184922602436960302460264402383806834415290275184783860096127115395858118671888809015710115663721238173513105894948000323862956013310455478221993446763897476997889503649490090566357759826054689679201569050596780566851153229943501921326939716688626537205038399935790502840395406580054189015090244868582541765503546547083875112219478190608567866987112921386074803246910794990395037872778818090032549006244171731506012646923712874626896611028401352655490024111376431040795937832195261647419308179154338737700358823437178275384817327012988126366308106803901314611006986422263812103785220868201333469104018373367430771118701930214011262095187034194290236271325220517495361887548357530924075033794474901509478568337210185918123791611359433440566353408221668983677068051589713471716022347378861597056688686636609003240153696615535634187499267558092775920492134524354209806658346451997466758158768904825833976700720324723326947275590903744278572758868581791547043031928775021493636385017061328727138628422310910419321781392374019571530973023422394507307890104994325940907519907337995852654288406777109975554845286582403280878336863249701939785472179149715776179012304726234573282710260605439099780444901348148346300848095493404806759644268085083838227814212311734782632725656472518338404869454477809174989626936500657514391586816350894433871079291900723402070967539026031891516609796902354243008790260057941272553666012373716889620662153361812541243699000749321038209905770230393921731255943788698524611531141286563195148364874795599982064620374633967938263494696446805719498405789685090696570620093183289891442957630380324367522339389279874010320297846706948986137673786076989967762356157223760137038908949528752019431906253182785624976428234939221568746045170047829457843468053483184234094468320419929786343895279852034846809766692697184677855992750550732838152095550854237399203252703474429582987132659786376102882362975195332559552643476918770299024172803740801916875119029508245966647812978093157879184734731284012566094300621966489133516862445018037260771934586495425956682182823354624251319908381680438987430973182510756722517769196419199803424152831935719199649612728702910024565538862346440637247318742127731837252884023694337439766937370681409498970557391390821399888969915848705745373004052979580906807109319258609568309884243096655497701861475598220170827279505020700464850190713974092039024300330150317374662891259150919353686282988989982232012276595691114259064943601987635667927783595400779141803350406455773315569053177012768757485835915459031946742136258546687119698036837316176629872988771525979107721283155928254521677759945954000196535227464757548534338821577099887220305330698896604767765102236211683880541864681402153983076086184013014374906169203351073608385209259012485722901176091022589072034612899567325078910439697515845834597993653002310044251050481460126074036558131619202083568110558975614189524867687518926139739084959757527382760057958311286041934258372122147119411750242538193213490304354990512518047685190827059187535810459114885307197963872427085490693818498081934070565306622489539463920864440332491137258403520769099901029740879066705026513375302469811581716712687869275250542662844987237632746812983772738414311436592941115287092032699803599879778576284533193721242473081210364693946976227607251461114012404037560403601098458521381258903629987459235631094075312541013817663212215688368047768468875783961414503617334334618542743699744392078185266452755989194947536675262753407903909396225075373405310048554751012360178989523510853749240454236842812699120258931387521910398992161647125058593267623000090659873873744582773867310017502890232717974888262824851683417543784071397092285475284758564785106501314604433052422654967020223927612757684460935629479991591195097807040643349394608172996131469867127602807636095416161175041052493565922245269697812321897740128587429290322707683751809765532358382042972144700907821660354444560390999640508091334816706140888812662525863975449209190772113256658760515896553029075007719205949842430039917766221285946483869015084820890206291920702954386431084042055788121701068382514135801130250179120149569888027592774298788235525445228264572179458175217808442194618553056650233309898738308055121879959847589043985540874486824192464775401195355992128298589531399553224914089237261910978036982449028989310097094773495806729813455930140869331510449901741199655044386482914055353665707973587531788535138800783915531901975938552623058394776597456051651395891545148204275873655285341085510073590522937361421789764368229442527160077284078736820142585653784041394106977568707482791234175243839910351644414451044286570307383245849486571087206511962786785933746534596027691614842469220004989112408643427879278555783442317940622672908137072940061501663756284103563906623005877539586546405005648167173135481741013191191720892596829737997775579933598374462900493901016608389624503279204672152976394068599208080776168792535595730487347245314552350554680579311110151240678158569034521008195657794282744058405201199591160146453505692283711535124881506676715914938418102090159852580781284323248128932740137783250077660737408664174342344644461128971610257781588856215628560297496196899681123507850193418825067252493758270337060887352533446751845283942954766096771279559993126788574764416976693716643603155790141026964201813810081696184681960381352304947092370110812544581142710459155735387557496350262971956251728383198686483698871478871236352052020640145657348374699286853014732541727784356694349888001706667506033602913795316578344055798645669872724793617049632571654473733093172364580919541207243585731395640138537982083372348351057406946880952804312688935737823811950364637186168106202710866592517514038589343902866592153585365819405085306899698536568462221667105754383859355761413862902367912244377233028676078453157051638062725023051290979544774075763221428055842721614337253169573165083781346214580986489287700233687173797272593757422061370819147530412917184596502756336179231710768036022734259547056852973599589452884936249175821398724659630715333324073678150163254693679518098972665949230398147084795817264725885231261973187799034278460638597288657450719471055694798148261273512909450589447430845894171500456891699013526197198528139584768991498799044955123588067964885949418867909576288183430804288392551450491091531049750692549561325346190468129893945935770429336743128480069450240075895118663815823801012651324887931540808134996848020988854948405028978274704279624790234334679728913909240560882545857767113164131299166822056049548895456710826856750823163849080502473319689899459518872340327325032688415332641280755493007683306294062348119810755705087599937114419135866721428959692208935142982665637014709107047823352098209646281745862452929351692945345532778418476313078108231620822163414477702997678412334306729005532151886263039803694405068386741060921325378437337847675572327016527359914963325919012636227979556247845474000228265937291018568113814781108738302210214904916645332252425075948428193804582331891316873500920290883657769514714878255160541103711025667082089309689211471263678176248440510660532074284564690470272419631750006655249435058560994109311317038786854457614878615645520793405982096031483127317417983569431091614718615796396748042847040104840215228087280862966452663896496980071572881639625274178367877714887764604818649281228946262702694265873760722071001087093776030553601823017695276315592428962469356288350121077206419454139869527488093364706496547671965860649834724373772610130987549763580366975259401268484563359800096150612721414346175947473620772869287281874048217950319044583373763473510658715582000469652179451647608901786537488402475990630839590866439369227597321801036755387678257710397418348393908727612633336356405336912238571991319272401006493507671519362068768752571694052524018128751273134943456428182579243040607402024385869746245886782418325739543951038216293778500605899309378385431593876872416845530447705433265922150943843493817215273298430934964700595169505627698176239501226785117641215962676090656463845262280008480776832523375527798009144501118659698103951835289614855598139474383131269274247226482205256872257869298725826379213097049659117983854379621352946133312292753316598731003491979759797480245389310064191312974222943630389884468016556702904904132196741391433494019544808350850779582689182845343249829091118074352113266814777373813533518612169180199724186350284985324352275304828089587199914176103588813192398327078166086323562880131656000597247829941625228668704759399206071644940301406071882729003120960459442561499875020925614918475698324804818636688313254044249102487461348096913128160970019385340873609992892659384176691169588432657596442549379485130631416804229776669887323621642620709686159270834676279622980922719763706110732024510310488742365535527214833975104756074310628632219436446606795129659261122755308786267598490656767626006603172066946532543904939963209082902749889795006770640140187254702334276562357356971844672480855128438071334988554033366749535301004576817249322570747059361809105013532536769034977804118512793365127427623677490494552678097891301552638015874757473462837767413247001160775773246046501074443104201973740435945817103804387884875556535874147872098642373038235321124777954868700131871064676164502903161048380128856577991575347861402622327595042197711666184541970392444135664123007724020777912767162688477935281470551273932114778803375694526226292181571781841588684036859167410121506458296911298451381446755999039407302744978735220245535651572767959612302580156115535450692909926442087218229962064276842899955630653692448388102888092054371026646900083984562171943055292464440094312024859987288479454056338764661840931755222996053646189977549795784980492613461621100634381655001089657587380008195793405932245445060517190759882986747152751090672222133036392944326537378800158515004938102434910055405253433838468514525874892642091964101231214133008206402667367419512855418031679740477381496204367771645043452180657520239374879415697402236806426921020153202233454720285162160447506643277839537150848909375264164639991717231347151929669595271485972497787944890927696589021591361363233272075730450659025223483790408068945718065560244126540108613665716280562004932962956111247084560286601462995851400268808690330920756249361459325840021854096645458626922075776079508277247263523922500779092531157662704520230537727897791139781775771805996864077106343332811975801667768863908563102245471096836713100736660330586200137291797528629934809976419223054906091062553865016580262590831824207310422508692253889880833288954285611793524983479947106602708120822154471672091551262930306841020668631960802500491763278250036830385763910712288936247375796905332697783103427271869557817976538804401151214321777742709242179752184281501927442448844445194883041320010544070153212156862218210009693359056299755218602703828888245016714356041601366411116092076973016984176046576164232954134678200873747727612295367779093991060939455201001197831389659521564534818076894038424682932389271147313267974365218334150534968465470273313998639708113034997527717717481913754307282867655086582057202235793892830546874753622119481913285535271743759042302707150206890924448785250092683354219262713836382924961796342720288544501543990194920208963373756273629143363791411866044183217552015940458687778347334732639928386897591605760767530880291583505398427395739837354469519788901828615093175984792207562667510168221086146179178166288349296242476219218323606410142325180730603943160741565518998460743120581012545319405416568614172102862970519317339749279288937589254497413414318436592980461745156332086348430963129603620552474651619951123894607404147098714679932233436305833139861956224694253696037442796644866160317900380199258533700660397816263410654270973045757914605352939289292386711057826674494739388073443337837712422954496888420085087569342049009590784543889252226105484809850513187061546924437153285155008362954526323742585387248808202940662346361847883652318076571136711114521796769042571911670686981646264427457558233605569815379999912067204989063175481552691555363999237175383263620785764410895951341591079395430596461693925739915050717694783274792620504851790632388673324802338739788794197458825851595680860239902904583210810000723874875811239113904125020701713107063695282020282650795315613559782648882729999166307275665577995949671237802083282940325533102983880953401708813921405653289639551068480037556443827339945668727951131907441506756302371476700347865512661214806476623155267447698566672568468826323984716820796621346753142446112140013512115565715528326467227278608865820595891767150072382137951998541395083827906580748612446940036942510183579374519741879196032478896718427366212135550051468941431982993821634502327075139231524943485151902400653900112666019745255967212059088593581676717131470575353956959682432664531281205712570078861396146864911028202463304198023645457562697978665136599993434973717025056310083483758941818540614721515292912843402446042833399460316875991453651053110187761819816988984253189905721640725602724840531908979131453796955341559664434939816009774314787913589903699541843332150328729728232114702382044517127030920731381332842243484484945878905256241852715612208244037285716619566373271056087450406684846357805926247144293311427949945593924887942442418468117424572771773325584992990766152937307098646683656216874502396258028225035614436950644007896070374093865318044640103878022259698672673956297106205493129396694342228069768135205114014920074319345010021633706319709171740626995451957741328019171857303528221774404968078397786037483053121778539249299065299607514148331189347825165033086431055555507914048952935633522339825220328486897244149049421834445144065380573411034234893897992695658831812561727831034417241168949617783710762133868746749870022857754531607473812051284676138857074472315163103307216939487361313695511907781009529623777591622426156980893711327842874996028319484404505107325142584589282343436111177989252770407037816398857444483016431185343013153108475714191956108303525597403391676946366323756748022149362488407307485044558193702643119741154380949156248536084435946113258821933860093347136401513174663338894856295635457294596087595633308471641757045460674259406001054122992733801542932515055729402195670904064621144653565280250478023027921777451853730667302957246869929505028163966597501654996959851059123099974285472999333246556192504231842793008528249877294337241813078081230907215553783904549306400000384208510468001168892497784468044663492715948630890774493760103274272148041739510207292177651801206789374480123980431519967976462153289219506853058468795012525028873545515831718469359763147361389782864910192552501673778538177655277299537129829983325851709340543473041143037982669608740901953712680430003796977729356927020947140515072732813228655308451695224594976193396108226174399931231929989008721593193742700292983235747167533239992697558514525172219493489713014618490234810002260930926218175973505711492139224012772266371520793707341673468983891017076601063884650457412397481797020961367467105816983254134634800078381860937092192753335648721401195420977209557599743185275449390378771503595349727994670457017609567334616099337977176332804986069669625190651077262379542845983729160857635230295777131898189826817067872857943366897260821507391275617768777876949596526117028102071983455682086313878709144569492439817547547957002891455180883536545692410046879248399117937510942113354507887049285400589400273673543116986172849857311082154991531091055733881027558586618699789125008965630766750287847468570715078338987761105683279340988229379705790771552501204655232085748857393619656212340661938093253791760251029169466872933617385137863445923352315015429695832888404251767753996881213119047423623614592062593792692486953165192064590944936629507899146167864709608790254023624616929374898853929362520773044006190095204208374556899711286188467664094552112156444705576507813815502213902643223140962282552662793087257633211228120082410776354236170577452034207607311737708408283909788385064436626513391139291184823446130348775150050107441453987984027406885012272675827215405281690303840714590449366166159253555927245915844807566762214696304540861890758332943370746792798262376828972404439121205062486782640611082681240420721685338709691729148533527790412486627168225185904735749379695041711334965427179776509387360761795224258473448930586158577890717174876843648798214162087054394003638266990629286761966078673658426550755848465665254318024209252799466098438369944272579891294661796938239294970995958281806369563499312957286118919945667569917139245191986277628440300369295670256697678671677206539991590605218415114181677289055732010949358004731264038392888230450285230828589843813506987237842182509966290284384680995051846767159383840381725349750844856307379294295423703071851968207368717683506758784382635102462704454120586837835226487165973047291006826739414775932512279841686498309749228392204350995660388364351709354098969313047971929450836579783909447233665065961045855925694945323014035665208143869397813844819197071394290185568986379438945520522261843601664014151475773802071397778869111308248865723973453023684033155434662713323865157684923379578932738869809462163542968691189628607321537132861896224173192323818986550237039019908203310604508783092485909106236159212817041144761616094780735999743734753982683627305352059314370935276571146692837636506720526811620418255373457618826061776197819848981865312877954428778409344367621139541432036536862561554923920743887956525156099597567318522915059850567114924171127807028020309237488686819188838997670870386694634164803674948688706450211074915811158220091148087098916186808546746928409189745996000408566991090051037554448189887340097533009684863883315670547103470305178650200473800520627221876206359946076421501212091119572931804065347837546241102029748079341551876575468940144038831893357574572736836641530341364757774030835344507185769721240695545099638215213250664378219643389647408507405038996498486876043606013471039514081622510134763270712904290817981414573561856275151653464313687719032177931598812309014309769379745322378902130366354946641510210135178562643694093118145963544994552395245708590863155762535562514860869038219976980174979398293214003784744953809372388664988561261943856387686006745218893586422896596894402097839018339377172400615479774468211935113667745650795511705390191524902731474753397353710250879797963511246302387869986067430186886070678648334443838814958363901992180602108618656827482714631987763525631560640926742723274270047099592242320345003431949029488870889754104499011388442131461560381436346456698354942812852941052169414321170557818678683408085416240089373324680146812764278609426067814131764936181822519460610152003823065425956315552129526076832588566377331480910322261788515553125019123853875846761255522013474506521004488667140062349040470026252775753517449652373352004818144321835142410382042218957545732411933598704651052698845139366821250781427221126923956427384233352242784253051820496622513546245111733785802071631323847114803339723769823146277673195233690468688344334833141020563394325231706592998530325003667533600010004680922533022712307348619753429472575124665769466474221056901033127088688616718878364775541055593323521883143520868967072131942646785856129552620834827671397077069256442969836430300678765843753081211296102603885083340307780079481322842294454785413832108593128209349260952233995337367474027974850337886827202945351586760322949386233505113377656208403408799156370948649236592028387768253145057441144129497233011596210128136938399045540886849683039514032444478895604780217898733739949967459130923329350476703427000635341067887551093374423300197298813591783490268626239147380574726459774579415216889805150411896347238678579625870049326269753236886209816041999879458366291062413554342644440902029095553599016801690639328319626222910964150554300673164583780490877754290449930603954918875391376339970471900825769851226673936018394419330250122291534426911659938260026616487461546382867971958362047919550795038491127502961850015949805463572749159102671506879228805156071074854617645128076792543306044950575046675126379573513467697517796734336282133311729593563420037634576323705619198802733281844351633765265940913979983186903376051379482481553615368862995745502101544155137057406519438759605447797339929790606735892393053548015627644791755789157256800531102234636156251732512312648198307229109854733990712243427609899209700750784283403354809870394968868052510055555012045873549610970872064246584312370472735772080803664108318342754253901439352832306092666460371970253007721074074978100856180015393498363905213288274805750328545287068191227167561398458771253562615788557128021052049837257682837188458674503233703933229069962868108327786685251029306302531411300462119772824765779443302831976535302999360831361978160513932802695276577817277855198609108002774975104494766670854558627737965577539499156335832295286074083356072790855123838410798804535249486198582245430947589893325538693750513068294542821386561113607929517318266153509491423489575987943423443559305747734226512199874789761732649743140922848763547504310079965409188200486409337901511490809568188687710909424169123924359278904237067602316383038874883704452166471236870324673923382915493180055712006823533483755693339824191501913150908713943452663610928397997634360905448020949333281948103237552064285098924675230486167153947910296004017251708045766565067490033935892205396742172129214238067316712679596049237568380557241045666479002576200962759597947764964358657634778866175530142121345070005651015149891258057401847670112129097569126758720052362119515750136112921427696693792846647521581052746032190563008176867477606721695306318247068669288923025658924829223870754623119183228620341916054503411455209208255788308255112182374269271730216216694384785880135594006793146670397164394027747038988545830334624220660832390287906055688861616576851087888271882311474350008782347460637565814894245312301117134267920099360812462022878957111733338592729393898442232769852121466049798568556022060659623249237656162275674130461342625783872233721790761008791469326419892462168088055895563853578109713503449452122368943073007054858385225133562121554985035601322686597436893923555124651818037106341438371342699846095425743938040887596747340466156877144265675043912003566273664601901790336312746441724784979421982644931919571994433474195793302889726546788226105174568811885056203254658310081150481694803729553042780759616909065546028636811020680314501644795285487018809317214056103519014836774433862666421450662198935071617327427219816183595304171921403951230655084195951572749448075793169899579703962118241258363958816077954991381641871163519021239780432982108028183827664482521310121989791305369207975418027382627116648555932256851071310076018094613431850084916063266114693320657079106719882099022207525961372309873934232839622828654178950721715533902613009198174453026346501243203223555870740925219348348299487600350455083328145883385959552312856541028300074875721440354482930192477487592725491794842894564908595545094018898087329832514638122605496662023662391885192472251327568340366067886362946990936884878815168561520713600523195111139971297273533559284723820584114287886109229169532524522354270329773930536617715109063645910511116385785179420568347016186831350399070341002028920984322438383459362800308980753735624895197288072945427034845533380089708045903506055810865115220892006378088571165543715227090802323958363294166255121075047595710525176972534940255421692599527749880797163985091366469668296728725952932744586836070731345348733053068332086194397198685436414905821503631180455031805384724756900345971218195736529420787433700963804837336347470023361999779622002485698044758556171816654425575902159479427601912191999548657064428474844611219970172663737510054378493178255681060859856236550064222910536695286034107417773719487030516266151337675596308386404693840444474844326165717090044380274369141368985278096557344293999915670066078020272937253917092998771812720438666776648644203267626863504343015351053203499157577288494062215530068301469840078049560550704780261290880675973975776436104202718095986357548355177046547726571654194292795161477212718943018510509453137517606983658009722508914575558535843317304588572346355907209753382756463387493811712928104331798158673304853815339226811835746799359764366569067881432501293368459899390071046588834891334301587495742161838402827079958510825817154110797912774261510806590029751249584040319006111850804105818523695542230467011628845671595001407886220304602529636264810881521539440651419494137268489064434573030573301514720582059299494512496735492134998601919846055687012974937566170490266188716993611137374529412238459993300077539161919030854617859287303465047152842360116797569762525632447215247468785769318448631133958761411286369435456603888554307561104839293262284345178550414967437741765737090723187492972009156130730222104886126859278362247536235886738588309238195883862149064379005705407243998647633193376605240876034824920540453957033711730305752197497065615798479794164347770588652882847521929040209869197526382614119136742558420438174451317298130522295928329553749294296555607250433024844879869025412484943126282222803225431119797374933831228380932467310235793412257617903377629658100449351171215755593899210118762691157620968358038547614949466237689920253620749510043038584086458638468404122491281025117786997858906769566710135998430935349589682471467655340268598706100363943267160362899401011759790428125521553898711652238116179464723245935780809420718238001217373363235170527768554870885884243033721548413606081226136957497323361180400995443378060593289258690095829722307643720285113109254219214942562178907599121462929826835359336811979166615761961692429156545507888784417845490891513656619632634636587836093714573501598262123352160215181342711092007006506990278119248290636021211567012331901298756553604964224921889899828821562265982261255697533971099583615468981320805410982346835735606575562236549042095153852794709679401112807875169649970493383823353066403553661127171269281662368731785812349850527523679697924683898331075772603319022652586761601706145564293282067273164645129485786727003386562895085337637321394392878280429224896041870033296515865478341560596812009435436287349782402063409345809144701130155246230782274162675520777458619761418196497312215635440866584248694150603907840929260215720246132280230846202688000646863639118318884790122395025663696840366046645049576523999316322888378516946159818824228715586187206053292467016317386919226152096514948043665681237245371185574219924042496735129552584122625752325746392004421846475849364221527437206882322216864412760400265120596165833917158886630020477856012239670479923354556995286459489108796334312239415047222754357733861440419356995011011160518713173154373112530822929526691306173207621064573749939293163008120760018562629943781685282255833741040901295295762147585267335341456279352278412475338166196034300518021426579126647135568330313528735851711415653041309989084373897221809224282893597461437029623910285562100778743121327723501120062334005008885590005893612842129562821947771630260782746949338445127309674873572837821634574886489266739295425306416367079665369194262138406496914547221407190467403032497348325418851851343537937893709351400307353312133272183361817055115647587329010523972730328115392241852184942541529359398335545747648081353001859296426760494059132107292835843055633005577279350109436520145964973319542705211837899712282870330772935457743989250306271006620936273258495184121205440395051479467824130670162309410623701868712123663137263648265580886206510690716038578379293896619578692155533224572801975678543860191587428453517010168502659294519755153392644843448008626255155627918138234545405240346294575787516155251067492338474588699748158041680601718878873156412510588650876462655939945500310511982991589401320627110625044713226049295482245539502654646901165053453613811340185320709540229167485510880748271504382554626552141986228401564464732624319016222964606753651279505176608649068006049498463981336988405956531331765520814271503763281683584781616953656637172475144557840214229075728627097310702658935530346220292365204651859612778608339958053475407862671159040051744632527152297203825051005908351559332548549017482735867059786440742326652242514828141177105798431881916565071790810143912110198772300037635282622707689845105993055965442037905603703840283113251389776499446109804682522514795764714873095580690432097381044164947268678502073401566560784146610567269539426014947780938062197195030947051249662352564100035668695140900857936453307381395671058030123045409382536593482827159215503581153241333296810360027688103961134963831336583915131621244386152421559938930281684168466677015902226135335013148816382298080718746379828336001264178026273127972471831504897084821001164566987261103131132841037583839755826422039133945343515374602829393030890711161229148052594552024101344031699663729397346916780633954743011998559336747789091041315785619413689412133760776177271415336081441424147620892472068355997432966516506569014554907160638769439073415127962034765259618749861931435252798025709557547148257739524423361553179105008077173934509919660088836769250258173838800509462447731307402723683062265892684953197713929975664975207450703848168468953021430500221499606618684096433788923608544061307762472624588246728965823150173492533374295443434792366457399636401849901732455559050909794710497121024190320562836529948184570578532567126731147817304228701610527564946408565100575945123041675244309579504502722888114912655928052569244054600052730922497316117325232366744711054215028148180531396598831270257346274803623737107709569743687242152807765314719123862142816812147990977879399972103359426057145438160201431211626189490788653669324228515167106098971537601163006832307367755882105768252042817231164805357607412139612372750439499315802508608827610730334045621763816670770494485834661121357076967532695134430688312888782364495051208356620187984023226329408229757510915594168744569585810294489477503921841694284198941799672251904852505246770331474395155446820332723795021229260592957591029645906747388472291917808691297647115818678460782320120919247411534600578407354779084345936230254345755458718611924508645196239345071124469653137514858841944193003415502057288175558028893785720282014995231512246153894804112693137048001916953012301385838948191502290423556072952313665706923090398995208871322712517772309124913682440560064355249755104001996838256499825584947118709137689696901675624212630257436966543871936164931564211708726310226651484599755885687925577993527429846282629819098920911573540864909789233048725344939722532650900499382532468626337682814993003342319245177242769587381513404433768529430758147871487495219168003675189372483679864888007099089940933210408327139525348507417593039268291668660186271103141725451816270264458924811241908325984917400528503957857340215597279223634063142709236986092961459083274194283274455606367671465958805154178517124913832734258878039713605210266840311795345000126730082155209319816945514693881203157812416965324883022938575964419974089928728430683763502741884698449936890408507132772446117315705412445191975285474812891817370927732349756909542818460838188549974953178660967967753869415919633759097355330800137247721049892068249542180277313146853613162099746480150859974381382625137827621817378606089809886050611783542690049204851262262171392943241415240453558312378436625381510171024024821795815798954156931725364108311900164545443044942600324341163995946362927743004963931225421120762381390800727982067902242034990928132758771732765113515029813445495413095283844897940697404962500508243154239875268454641264786737260475793352087526530435167740076702956152646455203707834918660179112730727661314501485170931161700913710291796824681201238864589428388036712567088592033502823462886307534776169168419644788427950721187832148319302356012266298819236524941807582340094093586139498463810639987652867622693209733048049640854158539962650643136543640152636989027295868963420618833048943597992640768449194538802318220176993056375057606566021210432510327344762621147642567803355594334526011871694198000755441139824129137679606366918915607617458637306474477620368534168886479094478187027987995775011172149530557685650711796920485030918052366751418224376245185194154477443826536425335904801197570725802628144263810073766069234129614328486087336816034142749734723818161343816647778106395447485023371159621669077216606359431992166587268334066460697729664586983851182163038103649497669747325899485350211231146301209665469045489627097669104997787398788640892026532647559888777209239465682306029830256007507902918642274539334597573604976003233926590588850981873301367807478040588240297742580980170465819212430963410623792977608242948905564898302054071953311868482084954402979960145850914690862571648559766184180259089245116746429550933372473601651596224292401288389025168235091124412915506445723664816710352031798212288372648412090217816790270369997863528995528239277349139536396500029201313212198781049697595452545046821951671831942104660648579672587772572197117624010020034728483276978932829914087382254839083478109874074846286160247677106608065798832607405881589506504108777523262382685351347456240742818755044051662230895981635774345389708125814533529184301126661580057807456899572434759855068636615628934283368501967532652578120303060864832656272785595447888412012533553364786196890445278174718968900893392005896250516023173588863249613244882917500109257156500614765352340504693236286336441862389683672271172403817574949698574661472874395622553248962166237579032745428788424620304661905935928198837359369989448526262387740220885904837289498441067335480453648684720305489458139415257256025802247869792645648316914647402905884831890146277605565013084422352915699349803499591475829266987139019610338844400234094064283348194325594741028682867459755669374874916963155710206611275909409458532165020300303586040589993280088054718033316498539978669778835539008902387760993969291167694611558843977143974203187229114123995130056941048635154942158683804330450057505459965461060678351748526241546785130651286741275140927863775048261922901876700109712086651391925196387808249686048018461347559421060967480778483171805083618847239586289812864119949817286640740236315355635912725342640512524731359573476483994104175849127193401839335082638438720125176879835994681894334932985097037941492410727236295158971097521622153160842787019965784689868810834809648325735598136924866654965297122115344912959300592972962407094539481089223403177090294298132325391886158339240260891431636440416001821327802204765099922857081730270534148682049607583808324242472105749063821394839552540794041835052687748269643286189264049347702647084368169721374696511271097442047747116015344173024875223166546706140347520495940609630426755024727636992662165276597389193512208528096630288815055529628898979473835125092578789380408888297405596750513718988811072296083570594109434064085269616685363685261149047631852104886962947185794051786403054436470510288576643857278181653267526884127958829995009682486945920873109777247540566476849157269295512481215688575742892484632282138380105939318186482371461622984351332379008726195799746486091781434295296642164696286251496620315451523125497913495374306207605932197654970082029003051596037223793143076387907018904021466655190065244248363776459220777822652259418013750808773995400250665854503865037193708266978833019227857708685995533203997248927454531342306524753865017803692600021317032114326810381394231334867640773774747486522869556853029869511281369528182407846867860515623754259362061207876336684407182703777745736462297225568858801619215130355974267777611386421284528076307830487324789786918170266790277754879351728682930216168178858262995496451615442859479158342950294215904505519307137805216248107662056464867166447893187765514662347417987064907016441993846424544103823524020257351835664296888816866539977089255597814765744535119275520755495530887927560230998821369042287465904965828630203051560234717874661522444862957530967104181258490549725670082417626876959323144804669481122850861398325236351650661413803212711618436912290641863415898816806442789184004371032501662685646521345818367652389707086514147890270782215481208221491858006753765698119536148342221678460892439205866280497530709560103939159933641892960181496524581460242952383439666345758753194587774765053834805259692396335752098295268729826455751911707119248397183156814840208103250197047950851919156475890203289864755789557372473506868042680281557527128932189220327330104861371361103562810497617214777206028086466235223235714040986568130090725473081796678154955613794532004622730540483333648490023001314239350913573606003263672043108998066884248872983113417540619420077383365110446487500852741374626553357442035963928925086510437886514702555204413823423554235799784582376400499293908372340787049996064918846664727945898114028865505381167574831125052094180940447005288162031509834639940272685344132144462036332170881393138964163713660818999334001067768152323809988884211636442881888432298546619060659867066053590483132046457465038300278222566573434151805214115991037119351017171179374613367978362442222763189804403862330009357369631435701235800174720131318562345208942544230276944941402748311499215770462694011517023135092803942509787418561382807240814112044262398923260287965182355944920888961161949474111601322759694054374872488593005437606352697388762346052796019703515716439985173465402300883746963226814003372125912182025675633813543397110383183723759385667175308756937621692698367644974393142624796160391284753904479475955810190399005699939564557685440212283883735868971328723188508525438394604791545751100187731450895004583225090616327809444244114597761437547160604515066948914008009134181700170836929448466249596333612480047035598431594524538635085828865418570534223635650362091777417056274527881042496347814174125788327254412106530867835493305180144176182063506769126331808295321120341955823441573052764756351755197927359675341250663155021947019112853203978374216981691541507071903259036195392141866274063549084488888466853394756000315434881874986831243304964568144658925227979748146396264633551952427964069237638045617396899069715695269896632292024477444295630573838094376678647648299317977275781348865680549677699412336392314142867202813615477061510492253526134712516818795316655511792003738521338307885279930992335105502784969601084372668591330070087094966750747533484352266754635694260961773472235237049248088755882463205030841545108878943743829685342805373849630588286862304908568027195213039217207335493081696572346476942161727055873258891668424087723947438517739146520295091529911444896187885236389393639466540608137927470004121516990479796350865776475647195791163313283230961462197778327370087641265289994072493871211551743790808331946352374809444211602358823459337204498395231078266489790068553776420551736365379668767820933971422265697783605338449386491480828533615850029039580905543391306485972461461036066958291820589186439758487094948525934262858761267429424503073364868139801521254445788342120703332549734248742532283321698569713092136827822837161734360214831411251458256592264769620311732983915137804372676864157594313300165265760151582948803514366457076478612075700908483711181391234216234935508735423585658743252996254008704487322717017497601495848462873553013673115906519805710466677662549975287032802051462252857094552422107755946981394703735787650103413449746166916709484224663453649303539509714162732331000535563301458828706322515602241687261511343048040431045842596305376557854716234124237117906519329417340512790554525335995888819037767782915974212886998859689882168728264319251013055483250812630917915119731250961575095526046024351141676116671426935623467253315046876775512950849766487918205771996536205855788497302945171592895174789676867509980232660658582428365207090796797326205883131596702084171666956646332405244242222349328410983110364974570335619516625977378161818444224262671226849792473313598399403703704753193819138981652025204593136980721784988783476195856994411799170098062980744601603906203150355025080947473271383551664282011812071193459994708392475234850255017168178974198015666368825551294795825346414688022214044897321029412732643779790641029882711418565632226050703850906715275222256779186843969763450817282501787855453811095196431198852848823610137526276390832082010420758610168587658933292460041866637066305257126821036649442697963473246773572109344226824370314519328168903615832597829860036125245064204843154749616456739274380768433169469631829109876405671209241529718425965407958478506536884374445811711589675405487427632554393160833393679500489124016126563920536839678388627975064942118941197062955625271761194813495822166706376542715038877659735744611129295642655255346705218758554579553263481885909241123934021422813972556181187694391409001131988231171907610483525798884450253939815596282449994263757119940802158032872889154016549419798504153056290514861641281654353703424437672848836609499231942997509114406724297315504155771749523737629775382529507150038045512746519701264105362431102448594893304503517688557745103837007246489585083368739810883794558241701012751289580506717938442652383279145225270040240071682897419077374963048088829119297498019075112392667187774290596221113081680495531282792927068048749204293355669223682798377227752700027058190742729638229873476370973957298410241955817276177310045042222344692276311735520075561275221768948718560110108177918925086886513886013205497494020663297417978033484985118539119425267357058611764194705400129921684645557540801119710129585038450264007907399073315870312158841158224979421572377254431123857378133607930521365259467158041323785740699828393433155001687762330389685055488448026733594823599963743136743587354971817593417723630974803503074594664613169202388901042054690855942363419209460731478019833905557302276299104906122358103852416078814831730788549059653676613099423780145054081992168378797668848470463763157166368509159581845759707920286848089415576055707704682325319616888354071473186239768856901280589485453992806647008709591518267945258655835140563839350977787219077565751135713948596260039671977743711307462209963159720848101088250101283244881523599521833099632751158926965419733780630289098795926044373263193202706240349614986046462571602339401138752635203627380006196195706537801037449188241153321029457844737545471938266043546509078145851928781361619169508197500246251854233916275329013495406208718300999161632421292620917913263873412109456148793297425035381100062876137259092484990910356615701835278301669055838418986395621226503620663828732790106403623481305200506953017071982141914780326063894452114545401424889143726146258249053089011409220854349082711063162953604548918842906830724215370290835646230227012766877588702265578598393136463993591246221125098787374100287865737365514658358940808899853547452830495794559067899216539157105354284352006363389156702247366348401893494936989416329262091961224043566115758963976860067627067778197034832203333553415212527143525999651964334546577103667682917290174087000968973309690395861025963288835915817717789917221066233277832854345476091219097093230887555238400189421979404357238370583838208478123008206426785535073823691422052382975646902652219287551173989813469439504800956596991577036904758357221056403307960755027197200311551939106476953564153320273480079950586718358104719214159164435844662838801568245276564488802999786321827151347732213463730710970965716572090414010744795923879958802849779809128270803843055709430837332267354807634050255426270885629350546804719044218727032864529819575919242813653725545095288901568093248784419064277007737505795316936947108791049241940631518934260152603276170214063708949506957291861423537710776343757972196236777783841411830638893980196736682288952096731479615499874056367616149055474463785219893632734048589419248417204760013367897714138318548507454212998572596094305208003528983744675070615598706458184433076553008508292431479324735295027771077141435742974914826960590811923857397318662953664716268204029632908902184174831207542206126582724386056007958161707490288816115518717409796254141926513858968232691031436186644246109924048260874289618378940794679930110787973210073316628070920661429921672368741867112293537778750072888544047616315998316367765648971363052538143600912882907211427669917249763001103797271408507444043255174064176155633638609024430249756962570171254124388731314350832408927341913192347908814269153863114602067917481559182920873568733029106573160722301894965593820729616452312017241777603968430913652810739313636817934237810486541839752170224851486349460919392885281360793578578930306626820183659087898145321324073365937320732013854379383979786035270868551939136853593096841710327068307435845846808109845100525778167892505841405142887079875288948569160444531597914093220111991650292395061818125698880315996315619267934816623124348539089228364650778848996148564812191728876502465464889858043251912142680939195832425163139659640347635903735161091633974405774984857362086635622764714114851741879510866085783060856718278552983821634676006911866163932770937277726577579152196984183466939461052893736035590410107437090037787455108777854947608737990412658091789804978791502194733580991822957575695089409942370552656992343078090504519116347042167839320492732620920459304779519993385236284761077367420078252514266634872771372725658129590383775610502583255752308057429523032492596272713184890269639135130142807992463262898819618419469265945730912628879617890791185365168700919273620966459064284543718858484763307484374453476745903155305860837628257587643894661534674169180324990247249368971585754841092021923724538726055977397583243425284404642889536537145351548024135623008399139137149969517359757861636757516334729702122927942294066642851389515239223633976239773028201002147839568936362337426297830872945264784662330749490751022059415658188333601430070426751759272310139410747227470925422121660138882529490781115925069655996827905945107867632510642465243791088307151880782915323286532853088995521022282631867870747117847584330336195392284414626567376385282029944796300606979111945835920824505559813716348405517980993172851429421031349730055030164333860660790810863242418231653575532485679305437802289024345629579807849674917250928000488968999288914338646923852874601917911956652132898543432573985231896919419578593914105819249052665868416080064910471942464213586803719563901664016880335971747653547256225309772189764787975469814557557405288510321672487436869379557731189537607112027836744686575972771623523654758689808786614867850417259588554661653441058572803086956828124230366321445808112069977043730191666156946159535975909067739475884091924296111963513370056893337421753647252839419269945116626895126731823180466936111725194408675862270273401173884847404151545208877231201568063383318247061140229378349655325593176215670477841481002904443348382136957999975659032160820465191595822484541524239052113099478533229662245497938384695504480729137167264510268179505474014347779392579116241704992291870915598304017719528192686889133677175237339800121342217492635438888288810322884070242816365575420861269056942747536391881014284914556085258051831396424147847279672928840309304474085336169148659362842441852719743554879767871854415277662375304628824807903336194608113591214556660454743541419646222058938476432913018622516998162882572910659184830400958513532294076772593272081675897959029468373354355908419670042248862192288585176670331486876596394206865252110370031532592488808570708290911192286573318714011103225533150042969654828671168814923264213376466754411286484836684601472520457946786492982246946588653332980753904675517893016582079073311285729900624189118476051592647221367445327789065199500315948860596407205875816334839447385218361229776766269196747906919769494168672354655638812573637246557390117643774438350945894332860011832929211644405279913885482262507862949125264227190772513196671253690050288305406506309383515266456030875940918583140464620114325606588203532142073090490104747860108877403342997021033981798956549955603651831031116467604486953986647434539219658705668574681334497330918621166965139393988844563399568290545926468605519102406695918750388249137010341356852202022446458209890175692027760677520828048806015267127616374527627394625076051314916438035843339061941823932998855577671692747204863948851741350913812870819380540148518629623361354507428606826435535718324644414849239109907788138162862289131504998191756756750742537883986036316280568111211614457108380264067435795740669149490404381188234863720699497598314910137255382046696347882420578240158613384079812197058731700312347578806344416904077985292102158143210204892142294885076781677859258004817995773224328047105428056883637588982164188540851715378027634159063018962323343275113928658018662840381601784299443714579693827954988621986710408021789509563844837991270762060027647075113185491342095453754312552725651794703546395181856759931134883138122349626226836321411580000913271008284451897812356550618916905182103315746928355793720343495461004099100983755889945472538339165297291693630737558954673121611514562380563110622625740967797691699727199103539977427046453840362250825365248400863108592884649094861193205955490282986423287388883051514585939026237694379284854502840668558333194800554705759634491257803826657098362937380904744314524471662560928411713554745422543801141385517450164858369335350857968313076870396370665435885959354895436205839718925493228501182106877330569938163547870746940215328365626262233226753398440985107808088401852070546333639814515001046435837662441114805157449150421583160488645947528919919879586574280611779246713479554703758162396356365315658067087066608275902806329494733138576585427588941893673948569049138433185588020189619646229301931204107110344832510436827377559177138117311717120935709137009118022650566662615049081824077180398378496422929030953570058286816049117411713048703217185155873217508914672605559380116810344084987226268071811763362881606261252824924404579904274533891062760932293318276188911285083947995678552949857681894917382537750171930487885555576505441686229937576484443733925812894231979588741642447214037490812816208988222214980454817762891037998690649432733290907907092764413936430143469877190536748403374577702061793868837155696845207539422222072894380944730601187523992074248561757866584962535518021380528216216975066035618105076576002086053666141744961345974953216752205049626585024115949528600493154818866742112506063275301501885918491422664340327249112230892375162346051500804715703389491009636088680593688668592438650089879005292890010613353983087195379390834667277317180962837421568286280714999144465942361706812383969786500537906723543254387189035563446397028674418682567074699265810238298467815366997440313062228622685743547138992658557868612292126663654471405556505722739080519452222561659273854900681460591999050057558218071063312685828349835780517741508328012509723685559531507182973096229642030460731894007255231944358336170650298300499683033137451523098605421617777911859802933345342317485902766015512234817236809926564504754956071209300025640408696516817517811553057587839670255140821642593284164932155939733944784018508746534810190138386274160441130812423035314463703535407319332740485338692050849360161453984451310187648736912799103111237583771248158791248125096012796962670763891815501331438873573495848718015123767446339055649462466857581334975716488301126868901771689589939244588226331642221003002393902106197913735871119769361875455632643476391364796668034741554746248903115534620209245162806293200425302565235379505429943608465840107879495037782838380873222662656325899304712315823536056587729133227143056451058489501847036658686697240445670349305421690219486238065663096820950359196015624837668446505478935022961363126394508211190636418428666076839229628111810686060060269611526818448991300617104677518059916259291022797039197914262270674626395616530585615020972047975811237635198024519539450233143711755631089517292519945557803084890744783499121150203561575783993446100521247608764786968333862913846389257056365785203443484413277737248645658412326224866513047555356555577878953533075123030294949686002748928247135704915818594326765309025934330160894637496070311910737372020162658818620689334464780037092743422893682397063165453832061647153632451217637285542270420125291059675735524188255114562498187864407960454658133069288538369835093418353111623338838953980362355240606976840488759491075230574959594855786276664717121213332707506232459920897665412842865702118242001299038551942483599349962485646106136124529911600179124830154800284459044212212702429993984291934008927484585369896701365183372231706444911840010942934489303159125529986363032008042298122724992168249030443597039337124067484299796356565363117159525574371216592528515977088446201782303061637353208332904643242571370200734993998331129332950267411622899908179356969322129683932254514274762785733225891954449072281322515436154352462116269975455910986632778480166751950778227880354670307168154049187741323884971498841475107089608602812784069818110408175155716515620683529043146815455021797156095469003027269864739559176971800488094931315054465876318241687227224488905542882885528181002385051949506843201614513772032384466926189846854962157870601953291689881296957589728956392958105319387005769206039420968576607457701653394814718584064500665345955072726950836539672098366934702220897243548219831975576984896979464851161984311412064227506572732194135881228328686889229741455760156198162144095805168240539443093082817063418918959744120260539174797874702392270094545187760817500931652599430299585234446755217727374010859807952151950278761506232917766520583679507667608740701770244544669389470006895486255936981533480160107703192069957926074924986852054317727921591472407560550005799321594738276489302981536458984011367218102318273131900294296290178086540722174642365345507769232999851490455586150444978442675070538768239702897945904442113332299560339811001463076387936623963062890012510159816403980109078706577978221743740325152188170301402025587811783316625430195608745591358573034679885186070952185200756183095732370025094541000563973982503074465431587335357311249887633589547783333756107431483364154836281944079127816928752199532380902816967570287194568222115541985083670248018041797618180043143929940037480725570107593453725383779785983665789644602135353989059839880103256132632263815237575661790353378071860916609053721334796721379698743226687314350645021597035318158402702830128846666989772490559858031942786650465291160882081956195039858717801716333663435680702182628201495442572840831608957292354980957356638210354173013757977168842265460063219676907891320671544135812050374799177293291373363856293912895372192811304844267833726369172151275110422118764023056833986824399512135866285809361344587854002598754522442719132050207075429395768078381980670085621445258218544457470585571513786945295455167845024636929511091278334407154828622026547938395355972141559482639542598148025470902368468015143132805337612479831147276984619992380759659838370841882179245128506514632157771936606696935330885757821296102758517978138482730935002964151345889059612938377875182185185428899328029469696608042035103650228345466572835715634641403390259113806287081378179438292744230926170244325693586233081076056370458711767563966850603833137373570867024923387882414336466316795633022056431157610411926795266989716680838935546859303000631875724160998262131561280093431806993082053221345552319029575991901730490603356386211079244436748459587052806967682235261505984227104816366420359694849089563967649851305291100575791778232307922654988270800405787158941673302741542586729219944649277097567024569592637569100265468191936896577383546530201613487594775561945307833563456227418763592773344635116348909261164378693471464216819335459882639801346822228647463300424345334005551565291975563211144511509763333301539066134834501469022573696491569176648067953728624713952210868341640297961702473382182981691830897960563035826996783489512406307087882481316799600700130758480776534495859376736086936400350992735131643112027749096514341307699762887119330529580322493822609969775721208020506977235770760695572476869822447221835061682651345290779800688170041665410817120256593292421427548410063410204823722309047198659939674464246673020845463967810504475775376454918091635379752010781614951724291081463463189355415540450990921091649023156751311371269951954973788069565993926917683362362738048372336372888716071576745381823923442291410968028498735578263769910549185645931294640798282063002930171871676398026541922693987795097403137451844765054045926280547363673211480792338634928008679690170765304249770750129139410488408147488250948823066717904576105922421593309482591782661711608427315498034994867380182901571739194118167713578415605481436172596918910497313529460222881214021877345720679427554066357369929452539989588825344218494240523545434272082137314838157150975427440200564101659955609320126972421508832918003670748399094907634813929401251865626971411519691242370519459495830988247120477231088605474924830532779755413170314328587185644282891446566668514608370513136677675500404391429938689231271646523766627379294561892261644665301943920550661779749783750900613360597614751829888454446660669305983644040962442805267076294857273926810330190913078891644388715023882458769871656945594443581862693689261157491898726241862859246572465249290968933235275188792330971329307616858659371484631161449663679768731923634810057227778828909730489973414854771714433699432244648680826221156249291252428052916652691754049065691623266291846948841514448382368490833970962812137934494138594688202399067695369928473319303851043841502042878894710537347250056581537275039021292676067425434444666724962577515943917768840897975268177986815752441867664121766269283901885688105917729918382493367550219625683637662857868177650274590898400458950603182335028577988402500064766381037932554841392042841277818309263548881539121744421878182006269817862583808005268586926771143448613773598863562809524353492804117904551707876353915890580555316329672914860275968339980726606708752806505341388382334683256820161469195227482060604728533088273983298236604692285095296399384973870066196444141650748104487858793645172806203549765009287291349046148386917179211405467830091208729139115439595071874520259778107792854544910118729500689575576311866876700628245799447475267375452868988552090479710079686017653579003890636252910677452284119140679957164741543470493522529834006474385946692707987501809841866603542817284895861489345380098396600894588794081010229790907564352338421143934804374478313303127125663574094094854603540288785319184923782607317641273279217571937316615499385953040629983571781354351079918398799278716256787151208946352740752623305841928259755956315902823480337465294173556249060301674731907660696206822618667540563873292192973316140887316808611763961624486522801432236745575102892137543070868584202664943672975314962244248233014741939551229458496672182658148728780129354807737098459812045595647237520997678145392215139575327536555236217771497575659514587647979428307672411605959757475357603236459819144889298050095299682704672661918860925619034201295367984904704131154352859297452919575456841414648278326945366568334550490861420834552665877361065838740857101206430627778455973179509893806164864482477766575948362618874548049060689825407401276815853513467754718775050328466247796233806381994250053166036807120908513543414121845389314866061536213932940280808640712471967269117290821059957548950866538585023500520837673292684164409932030668631499797583740446409917525011130981528714620470898412771303190153989863684597096404027690943358197246716215311764799250132953202250638969761154170443817740937762681382749831140957470743390083774874532824761959787003693959992960203560424790895467145493829020030550473071393726977180319871126508742044157582299743755480542415179173578075403321503573703278271671891702555256245960914240127110786315042111352308532212822147005730759565256866935617988489586217825151792374152216342670665614052098809127401514438670877762080391113877835065240363975633820862783307781296238544137223930779086046786678365998779559637222799922071310984032923446735433929912927798278027003444386299744485691482393450192855942997776509962819612735048568315666658014473430114450059274396944948820891508358152938527190837013992295703019300173258161474882212152823308099353670064826793801924381539156502122019206747170918976701998414117868007673418758372734152235763924638810320958167231218172940451343437462687222014918672299301782044679437562842410411574098574205834427093379677333682286278054546342511824969035589233752424445807123656598860005549449181887581707875341941792112504314448354788607813770183961900327941488592780778148360213801027794759332560559575925679651849404077654745402284609280504878271424774743936343444898001799668925894259915922784394927753052207528404000851413711303543491291494114449453049657027453050863029950312720580089765957618521325988861879980806991204288435603502437115213071343176320277119930666056901849201029648312643505549516024022809744136959028842676106785126331102342440969410366638239088562935708275549036569898392916456727457776733313896705758271924419682610926735015700970286135203184014472081389396906708763390091737972107872702132776306534541970734237698070383812330447896337835205319635150771392091366183777977858394676009796654134225523023728183587722101149060741405602653378401769994972123947188986312681623457951173113884608657092141162961857356204423215271333644579703718316083734665850141668802842596414665489804945296405596720780379905995223568626553916512693304072801613580355707751729605157956826821630195032202277060108934764862991075879778899974680950561029075876164727579888828535187881366010414663156518661164128728424110810736474791666545134892324610047822251638872204745766305360701654534950521163120992869007883312862997863875741064189874726132111449782407671803449387014078145519623987976832003868041384813225951936061132604482525045753810410056944139615498309268300154496806966898792097340803435064965260461612454250300343961681458593988094178768707346950233178846866144848131644214332027788327806739850659418689544061718580642073461306370915955823218842895488110364761255539215278839482301783768652579703630312536965341670518453987231608013690301376296667581093204597510397031388465994184696086490086740116108584836573985664216544869470994617184908327494185440662909362795111519947201121935866334856286037222100964607270161074770028602199063739471708668018424481135905577519064696471992211081167262382128229575892613743779053642387286945709482912661289407539155265153863820402546455782219553574884466168082396624843119735279941485763188681637714054730617826941996324524950880326653772615099447225433452117643029806064458046503111792255066659278365589352076586503971639163156144755399624766841165711907046745760334156330844099027674144808255359647092634052752672346746693366158650105792852447524330494897584575032211170396987882302996268176778158905288861102453568927292260843698003071652712099035057678037650036772668660710748990511870325855648399566120701157869345854413182575038460315688471366295329331834575813778423703994533427570356601177317488627888106028717332689720770233812776491380094292309561992283206143053081721230084489365017301159072574314456852129820574774118295769334484987760239592034318285465107313361873512642703486570228095224754331512687395579423590673297812119094156184331575198290297184043475520138581898567487278824795536997823418971346652415281936602241499330331782739653939840829027403521729431700323243904971373090576050804829779775470928133147180858479623771050621264485836279031566569047658426442275760796970979662083703286671863648428757858651076374670704217175694434197602550727544585424100578942857257654145645112093221244839974772323288307540506704469366810818544284284811562109087373757853580780220320365961753789137541120186513150405213803358412938608091617429158293222042564250750663635718870812851151165862604479203767200375196591988462318689621371484938377089052775452691740183539396080021126135760218188659199819871661341272439385177067775139076137323356349602802338278886781983590351030319496099775173581400578680430433726434599823676230456993434240993485480650783565822363242364533177032989396313768454048744255244604318636317798124599079013232207642990860308278696457223258388470205055754180657634814045106599873132003902428600882007684533907695275434819756352205335212017166490635071007633736441532340205098845790116955040836444345502438377654542559770805593399257436874720562980386599263415621110437153812636326102877944759287279430897964691479414970970684513635153349969834959104198968272806887898633522447251931551594759411088122498544833644371672212015987355724543828369275543940895615075685347155456613316760035785645016505051350452538286449223905963557577992365728718506156790144389281536243139134816487611795092140156325137965902554276689841595200390362857296461113525261303578067305010442046486256665447434430775945090012359012100294825886950558754539642811324889008472955848421241319654888836689618799356040271717322536861313134942029135355053312078415971651125073097036658644706637803993455999400459869681387645304946150835453906230000536277857698537607577253039788947051371488423656569309661521735297892705261166091191196128733496743625620124378806895559424888030591440665095137517042911203794949664290993947259167791173677035682002913336558049110497975262869500395345785318971391103230643722769848817661029323044378000678692941653828004042442531574568433883667458280704555673474029616841811699170520505348562192975311103125503456279502913821103611223695252606754524679829063077049918514255946719198361313209421351097067906474268421915366965555620921135279854576335083148744091548863575693807142554746196834460768726405567500296804148747019436143853947340995560433693324529063120586352442926899317934329591048449105900794475573458162503426536603701137925340402134826339449783771440419459196186109260788471163166987023139446223293967221495009940980859603913160300649022223790157236360051091518737920256452376343459672243985643461565531520935657480838764679270643451823931316367768249681460576339588633790969873983112287432277105704511204041345132925891597294032911955808786672099107503041813382864196279457984352739261778971765038025980235483949017436602755158964572637266205724357288879299556785445147796927871612890759453022789648068980157794823983560788803857996807158270592344916514593511723939723675892921024478580542417588884053691046023781879211271131718934931104345511607552908975534774084605256295196986237578897437764109372137056522967112138161208153404086220288003266601343898073372208044907800330239039297834846233372069903417158365807218037326211177486332336229973745446889065732613501112264721608510745527501380330399539268157315747369667880102944976215934700497159723443883863732116596258242393371254513565405789426738007288144252107183412111127492146490565503754042991291179017964295533837536947012243380829428391211781041209177681338161671709658024174215204536390847982643513859755375828685729378769297694443655090244281837326006455803011477923505195994568982114289765294312046811367005445237752724041103638049078171407270017008188489478948917523916021144916613786794943694947060711022480191101475960660803837512830892120972151010645528421820092469865417680852752217083186592928263889298250321168543275175994886488938079889578638584693658157963933153456775108308210785579752562894282543077826823177491891967778100642819727588150494713190816211935827787704170707753785574973467117962913689269636538823371612673363129429386015520414367846320516589546232134342879640173092074481447846569403731960562431878717118667945686449137684817400134621180470313810066796640578259121153295549811738589086525502302696028113012089527922365985951922533692292818915348969448262967178567428876510575868258056669289494180000678915543714248480011022215266635550224333189617190183547283585069954717608310523632252658808162172947691349597283872995761180437284944484410741077665029194721231299711503479357412431858663559293572507825815784137244804844407248046470054829938685247459811677490673482833987779677126234314621556561846496975712155499529526801538067357240369659445268135567797485248157069023030218576399596804995646625399136345027767430472814972937554245133556801380391938746395942985862451023721736329331196856874375844679056617219011856085940218098249127181152252040234274608443150415583297990249153451005017857026928481707340898859697841519996970721906635185047890664486152532741325654770871432722752373346934734506395209144225963424169972549194630063290585743417799352340076010190837437420198605875766003711467903816375509920944093567509980389435250714095428996910146333791190291444161567317026193374865726242333688431361580066693647662764913273692258711546275192057606489216543541038614322396849785547811391978739245182899122891850879859036117438403972188469190801670040163252645170751058094505500010647527707646303563222595954357341831815505375848033144530316976745568742568170950526746839685851558036973583842970376511154590093787206143941534008268266072065503015707160027970245635692934475227816449245986530755422180850612367906188699903652483526352641717525897715091937790244749274634451883526463171242809981406010595113088835861894745119484699826304906709857272389043440460932128970597009957369339500193435055562464516484543532471832255018556085989558545734092005552559411730732108129039485405433429440832119323644733745107615659976408060588677943253290850552339693921615146569133190857482498060100167845715977467617126664697507415920270030953377706000826534564552027353035408913780990420275302543835310459472412334999458409949791267842006659669206079699655793964776335736664547593529897951321664179902947337894352796854394414983969052524077476819185182511264209126694586102874004390159511170361712475319088092241217264896217702863319532180253068783831063818540914631464931017199695459990372114127438073288028112543564892088268820699789733105535687024511753776429307142305725723496185713229458412962086306713285877273274817172247528621865470115260254636222970336071339027621101623613175610075658266843205443420365999485409642206882927748757147014082990338253475739603605954899325666592647380917081348750459502029279325827257228895782888969637177913862502633055033719154149018275103405094850637212144317339640241538282323493365528701606257314153492802130391635368441517679497652900798584504605726772758591503964139319276007589758723304449672839904720297941003010039307789781804696046962880729533986741208077186223260421663068466531873962549427815409188688477571654953381823924191014173719128112339209975347160766337815278594922669468979521600943840024351164554446533980241339450103890456041975560536825958107825775404986225424013347880505036450753657104143733265588038244587031874787037029390070598404218336408240113774314369271682934845246296033588732338632219162978583802913186907640549167331321733803671091011499024554065697192062568913090125488053227600526608337191672112703396628637524013196406442227096852646625530788265470781683182288338880026187854704136664803237953792421887618198156161215467000638873916880266592643663517787013976229017290465964512904637710503530701858893864475682963296033764270444284064763027765232816802982480806680469900039097122526189884760110352751635842804761397856006726837721326123213429824502070531936765147336981531931014736028847270829553336836198664246101974122307624269208107891679136990861449691010605983164951338545786611250992664064843414038777918229925476123390459554302942354147467866612322096287637883640942479948089315603988688747339481908824544301579404401081606936047456790694748272970841339517841543936108622386869222278804051176397314524890886917578312184359004786439053138007461869351660996960386477532314153313088003709843138464165666058399024144909942074613812259861444123349505137100032931757926319551590276002006293702766455099012798633346725847093755528501989956519991581765648492740864643381097417667131258820772767477031968549759468785841866343387258111792377679798476122948291865646403787503720196285567647134215776309660781507947672831535308072852356334155429484133830434738998313297872094998334073229262327078901397771469131865173012000247345640731987457373502676166793595188928499884036578993573698432748021823387630226688291391120041629215523231468511617224912087105395944464023620049016120972376272052533687462296156721824860058418551457943990766459655720847795623820904949611204608807707227010120918734251414168085914177338701267893320676677153500188399248656528234050583478984253445327686786669305741350127060280995187484664060079794445006741340640410120394363753099763606264162034094907257930087469433597967679940290219328399752788520901073230466665856825214422359201072180990645549647700649913595428891314352986793985283825135359455952417443470586361273992340494475319905531056954424896414797262238576034033556567266900553206156433835336956439278702301323735988931306481200118693893502795965286788144003719303892602615274615595494379442401903218263436664208446516010027148413732365730195230616144377544531344210850828914418473068670918180118658541904309289575834038384054682698836853926104731683839301507239828280313665501118165826488552160200731395068190934875785128184719789091398149206972236871944939130034632284617369091770976768007335334801932478766741593792714955872084809548683031365504630843935597055921206146352709800309785531926357486487246481484031213700256052847678060502089801240173238870387877887998173732249044768302105340672391873720346508323194359470965183087812392057005064741922113106796644622893804648545448547591689382010447076076590370056491305199197805309497666586284689501934295819749940355801445022140186877728180496329304648069187299357642112572290323080129505456809323721447256263863587602761881823606801384399162708628988459786112019658390192106413317111805852074291746839968957144950131378597675322939780068782376228282432398515005710863968608301080540093516524471150083393995768951147554131689012196124147713873377406618618147520202194722616506839336635031887335848886026249291613574180529362785616379269703763719306594554880052184664659032001125883205945248682641280240669013251775877125078232804726801891534641564362272284722973052889379444241103937736988041782572970002381235372262972817862620905637654663505991027106270694975927811678319157790174528542803962280091051198054358779819812058914585250890089799699973834479273060760678386856599637024426960354281784770049584834965603933044737557232330699864745471098515811983553614720348095843173755257061945515853406943659936654358613875580124195330658612821705594440426464554195970026119683454356024279221225390578733445624129330417794412574903209673579237461105567773141296794010382390945796831543245963705567860442631635879320548172378210203636559021666192411149167676949776564790676172898947310014604329485921397684899037369065492125028493503254906991181435862818372564452693204649482817600452122031949029930857093513647551636765941131589078362743173156075249001598507932352017871037470762340483235332276070577105208921279021806899021888076786190723845209724311856777973522153049904982462345830926735939268281491351068484781535452435240653500884334412401167291187005042752609057024992778982770275991534212445328420013996656577450883707071102312686107683510953673353755228178209410448537587569096182643799737662425984579763982951317729834833115326943320458392867982262464019949012139331270307447447958666750806602559680764001234254297384317789908122938267789383104544343223359474896956469868303440987057925471583592725171318064835512725441734246490635480709132333954962059296196963764278250875714114406398322550315508410900727469238576577010365574470190208719496645067271886147880948400585703030248739010058140904147390311210749338582846850764035587053229474651882560813575866563204336588562808179537080069946961036414449193896831178678864528326630276861106809695693278022805047424841109582094268506547246960562945494662552445442823527508730968155504317447813288791878181308551770462218318809663250047894190619112543505706017531828937379922860657299938165081314919309303138024872709288707490779269913007432675175642109788045289440504928122873157703621398973203573946195553163575877728839374693558444705956995135304327842269022297078103349335093907512396130292711141207552097018206028706914875373448894189994347163839367445172133762771236641748730195769641368241050028662795750666309746746381368660638547722137956556031236923452862927916562729233860282491663921488296972232192377047143204137194055903869548311579286028905957877110935330903805596488359571060383449111986229849917452764698327335325248172215216659467721117686106697016856477988218703767515453310157137174906951003126862449409468025071475173587961208828709618356095919546641359490114427257989660187276062186990001823967187211178132167672829670018958759867807463871977320335697027090035434932848176610399926631230949706346544616111543176980334764639221954994936640688049645713809728454185505366199396068767632959595297095677418408296839653608688022355811512663522063150093629651282564795170798322443181684993648777958208040749091579052232270646020179674219169185572890377206059721418350029682322047433288191851916217560762012770537856583311272482287203667336872482094712072800518020460654563488939210409308138341532167888240713256406580108171149514700815065922670825956664803940288897074079981447419606167321721038763086194540554595113617231379047381177668082166057922643723660200489075260979465418253944685148912419110025421110552713394775441903696311522363742714958059957830347722752179044562397680478598651886596313579372705624660328521334228980748288447183348305801162312665822515371558117475551335600891183270095943065795077603119061701946435176731097809579220165851643773082216693178247813651613797277792693506241404738340622808636645619282246375126621758657660857938646338444427463432291673274542068214375665775761432867204107543220520590544613598085199422442863020316687453033370068736882789565733275260744219821356886120413679294747196816948396604195049071219790486570493221209818869278945422750404729649999786402413818775040415676647604268033293842935895086558895888021099920625723036074920597004560105148374456587174447081243789124244400907176222428988042115627678462359617653978145632207663040232602683441353560014814058775129869817914942147352213410933517181148321158778372276675170537505803615223197119484368114703412584811291934809514843300188748184345783247972317937735865006370128161123148373102394465643441118259657258089139542556950573177210225008114504541146715212381176960974668038248195583893242470601493827438291260534782802455706926319775262642943228255621839553550351331354341498464687060180696640386221973244209910930943480244860236166722597514152047953225410267594590209485562240159519770835053764625784742912876748713684293439662827654111805797925402661112455992547957340859389805005515715696011750057873051742968079193521331633420006131791809208174921898053406963193219350361736162007455881908372051226248584836383184203359908852561100027222094493527084822786388992013424714428483374670906283258835749378963771162703009206739702217395805748074355664121728336519996361083297540141434423644949819500026241646950885482096057439611995054162136649991302012225340598198170845669649929982649456355035636773710934489416879417625324886336626444189651744755737467213047480621128782000794502523685121986695591871507594362659079429617424611397260252720014959868966257102320905820794160304898038036130099784078953187582907983228616960985428231387474263491679347311054656229140673669339227944319085778959594378743223212632015064194964195771592071395250014402023514448264056574958911310118823232890759317546547255563375734609352890917296455968484618055162974716216503442719830373432492963502289840157224428441250158786989938273361834545292223516163719098378214445835562521353160373227760628267935714018701057051632313547160120391528370500881091944253123222088519963286864088141563264585380245551930631003677288683859371548737852374506889333306440519832284143386996227469883824179521088240088202602071354278298442980613813224454664863624751810458350258686955529978394290776585733419483387235913652654988620664557355286782223991245170128628146475622454694759675016205450473003174912868139578452956100092121427630431127651410918191892286249736794373474347030469268408501439281763833982428192219604596297152515544587674049417120350933431345708938067082407489213490485737583843713592735052347912093737910877858279126920241484412605205919617499566749839988935682223872946186428422463284684491181727022582430109787165134658214976302396846295930205072337517080175118091968179511280691347641551487859886238581793452583700505966014417128246719863278538694290138238429679478463327234041194049221534243440452988279859254080396341890562369252912965849468952694059406957088244510339770752461368548073600730665876046415183684235695591894819280723913117606900181820797204148114626116964197568866404461236827383326472745048814248297882308421611873860877713431042009794463356745534224281618378905434532844993825800714057527888087650080314711745541641743970723342813785110285993297144237122395854778569667550492043401148787249709895725632615278529061775730509531586331903833179655857051448088839990759655307441620931774133619673178904015897713454894943829404476640279555713244306850228097514876926488382221120949224153663811867464054339127433311255857770126004655894188039073377521845145915834162362149899166843354394258254719231453997571480046943513258624774244313626939881092567283292234051547036019198470476731053206947946984105125803879064943998902081112410994504099985823602058002547400143814634932834881987872684722685419697571617412200622366173161068276653665398283779342750986553419432348862295882677261463875080127575806815641092616083105629090845183939724889746099257260671743024966066292524941963426008034190680472156853931669789494334600975556752601067316531996333937147681160239246160325621620860698167250625953551432503857044349673182813227623617524236973649185240229683645191278999988346017951914558588254886047025821125591889520343606940379929413268314655217172080200071167792883853929223401162439664256176386493865651315669684365857299112562137143512985399500855502797124889179526420386071968784615720174569175973271692790371502854761206063337326889507229688248131638465780781728999981119614168889871660894700332739343114032400757039420710355126463744445172095610089722921211162785227987226487420105376653719809230080097504812910429701005559696249327360153882223644360763905342256754793748273443318236625267404544804093537840757083841695130993523700193420973706348605673332936420333930779627692032190383766488372897977771624927820108478693227114065811768031328586920890540878934740823465210206607888612749003576468313088698761604825337538129781485174388252936881694914764925465773758209538099498283934520864728557333781183986606054273716772587247140433266647624230561953620337968529930345528494015341086215374677502426533276902208928224941386522357092068285858423638372334491577625023220422776484267396344928033462252790284942366669819098418501143191973677598947336286933714395932453981196480279855823532057592958033182950585268896166425083887767011642128614065503067596648888836462650747364863631277092085417660582285081983860798054910029823370150817972855274493882769670504402380150118651448952218395694824085453282559530315108751190033825080015104875251964673239637533763905150795300085705555327032819894177087084865744456554588985031864808255253434004419261712629455202956843271996757178773260216432365542692684204219677870551290435761947920489279801615879190029172640573031563546637647958207085440732037041955928124866282430713458363228040548794841127490200365278514952780208991967861439792924027463437236661221270373214598538848280141346367420597682324259323466660617848843906485801744639261527615839698603915531547595125075527890205370946320793747159785321961240671260507992463206596410786513483592975754814553571118193144232627244693119368513068814135274492917990404307190195464431761377575489048311591212977077735178636330918297865038339633534848069058727673761071049736089270170139885144466951281013622647275157686546069250623666982633439766090578051505226581224417736278411116230039519524211311871748062569744378895325806898884901015403518349471353054945689606097079664636038701106358239877036595218770783127158785975182028329727473940563630954119070747753200237472585954506722946689257369609852391969337785258181948933102500183345152294825449051505046058881026917930049887952586332272055319174830852442796644585712147307244947133986240536605665190627545376317891553487301195317473548948875421952518389733973900566728405028047100528781402974422042736538231062146251107504118771167963731506834590033632506551778359472277826584924404446677629600675695322705139209836566621960375691824070415937357781520426343166238185662521670008092395282035061778158620405531517959141898079368783686407041404227242548125085232913389271079095720059157493907063026361593530353455901705375844311255600714613841045173266909379796702711180594707617029194985463281103070427854387010831877283695363773610945159845494696118876285336606628596507937715796502881627534252790958261618856504821556193364411439630299544705055218444636911543942300740653721280555487890399789661428540372055688164122309267770613208007052994015947764203279053150556854806727452936557228967656224503581732648271852609445298451775953041898681336350965489962149210238375739623305141248505303033208322782544690391711355214251720588868622083749756680840251065951549493166519788698302339100385451064606947916806031001121910776181883683784736993773743568073594020484220072707402107840727261665039034776112596510036355697264780778294734010519982847599896969705857922508811935264946126623535505650167585577647758457650095446389103139903046237566412750196689038745313277588753489535361535436957542726599950738862462965633505787165206394162333903080157678401641717936430402271245943770781850256303028598577834593749693904791459229236174947273818943461851572596068131967578848045953953950174262105261961205720717945874036003840201556927731882794169859604154613398196035303923781311668896823070283123253623500038882600429495027657700466075265279334616489312483973857727441389941090329225125766254631937246467460340506207256962057096535411047083214004670007505881720904315899007927976854815582813540079468914295042007360040746169823861821785123048951311994292235275346575292247969949116150290523202804329914556506290077352290884579369999187551592152839688739969240487983093028548246461775142385610426900706613418181644090227676572044288890783316910189537268928092562632951232379185576059870498388905533645128095017772790154652323505149539312859512093146296863921729074652169118594835352239765479555879744904700042421943438279229232617403079773111432908428041192576668841574529469305220163425372611414325649591076390286597400110152106970606943019328968357965095977917029306159529503567461472536134309632612711388648598979315685565276964271910746320673104144430453825028193351167961877546305772967360974801108660085391845068892646882848174681355634698944435549037319483274724383996259521100726343669289841504939200647972887318449431646361365381377668832881374160267489355044269222240654430633009653985477719431747560263552270649034956757799761444582017439796823372455081467543103263656825302976298901871833330626109306447370268845003298445420697393009005529440476623031632357348832669556889109996314839187645207554399397238556717392552454953801648849698473766789534605634315203302856917548307241879230410993204858842379532933185185387120219513509590993571915515048706793511373551257753459802510038921285781541043462924080315872301874261913966293105962588938662127971137860237900569515759544308307502723321030644951633832408625335398913460255718613416911077958301333952695961921311468392441153886447528288381334330273234455071346908479719791238149751111158789059137522566683899695321127133637303699704368392592365786400415477288305306794223627982497530229767966569537879736876708038245844798916365086778530015665701449771187163298237398095631982572544834817900444491596333952145595861461502968635701708038130306198212504909647719633209920512955964773476593473441535029578098168358048557932609978650436309378887365042800206558463481616331885140278248124036702045208717257589825770543682995527614802306324952949022096386097303898962492226415149550806162313860830409382076558953531168275482079721596699386752564274629320716946069799719561118616123427389272784625881963774603840835832940867094571332483533723183551365261836371451845279895665932583293400786209268201369989684070040815535589243980991451354231040853212332396210806477736458984290216231199891237923634191967180980561242329232285612689527184084761905667328986086335108494580717382257612251891921932665075541373717256729456974557097407624825467250997541121672006383824999773198019940031441317913192395719603301553208909772341421714425537999393380867303013154852904250067807162298526772162728260689749158359997294857610964771422398154203556640035820521403865188990240716519646068155601409917165938971608440041005264842901599536861306709264279279767052159942428672047955731507228321500834233829757487895266833502521676476115226573701847013400310566194033441790799143281344565798049648570225942064747567986332252636068099948768715916338862521035069005268958081732106351929338241591243827803292779981759846144115023879345027498339405757917587111804666020191029576165803996973299811309050612137548388942324308076635554205025185329075557689407754954433036018080739063249312282052213238842990720433147931187635893066411926399128538504608894640955474002010942271289604164141179174471144312518916966284060794903460038614450297142958814590558865263695128918082685002571116166779560422728694529167289838028051643219638269313625207652676200178289844151350146458822560320105383100130614253616116674274120387866089921384399086711442581354893503131715954110311708393190322131974743930367129348721217531269424305964598042152500266101694962811910209560852031618283562783033802609705039397984670454975679053749159837054768103568347088517485287127442477547123993084266937453814815698089128625987790603430905359985173049771902339871212281612927120452590963988993310087186879313546804314842758374283655503119942098363593181700165932844299683990713463563171591761667886659669617775445825481759182858310755275131336310709546504527624245882143436194367959294678397194182958139647777312422533260865722805342002083544319161848160471107508556746719860020814741861090332164992918892405910969101568697633784661350706702053730315585432086310189678314658352015196850930985825758827165901259129464678028546829093679310057631326914364362255047807510651824124110729516455468112680183187700315051646805936529153759260867405107416752468342023282141975822160649677001689823083446314308035894051561495507837453078589940506823765462792443016814729143462745818698384327521595798944780059714538830010466601024784391960542596839999716067825846828471493286932477008808403314938019944976458400607867109014804395696802166082706843002836461863482643883886874287677233740767415985744786304847556905422621941110779431709862151217516191101836431410751579330721651894787060379667738072706340910379614488906073516276023450648551089295190769021119763842680225414066285466250139952954524217749100618845942837201323628826158365932152350511100187189795235332830648570769997934676058150352176272576135246559412648287294088608163489336699055699487518455389314450633336113677875257672803471735345625827078339741396811258412488444210672699280903805816900384079230546537608663173093500648817780715969260097412097767330895119225158113520389093149133038091183861653990218188008376121377776181737780618646116369853633248437432205483040114066445392403304568345040444350722007582423131010365393207943622058591943065650717675251392266008901477973677770910737405982888006766990976979178004350223750892802075305653814993359166877270534460882197592796647367736498001984503093642784582254961809472684961527282430610222044233969693845186036300536885751266358402164343322939684738502891144469021733204349986054639032660409530470924860009736347237924487597905029512328794757598878919733551514513208600341292434641410065380797929378291348995178804483318850999805646381488687942232239607112863685251963931800097030738825798705003033713006671645408259166931448184123821892506721055005096861389282321617215636348334989674737443656486612535045832628714014450050391818877511958745491980320588290202825155406472738674962672979001669038094440136246003950746012213283115186766511651879850131575415196677313990959863469322303697850817428864092533297436868772136324807569835973656345681069212674833371279333642389033140630746584642631899056600475259713980195388168289670477824507563305807312887462424969154429152369955883061254050472362613082945018379274884011397234149811601601496065757450546957718850417028111074626635465729617016284767368545976658737253510656454702531750539780655210467904235499354824053327596720223379398942271110705770053254857514590009071148700753933985379961289190177718770906794272786524376283319987081728384337874189125007772776250174055869259446186703043793121376694780326691340438945783571041098357628572161076447068031668426472693595084985079274943820155377364480673919866559221322094275732079445351575125789735471788239549582064553954345623358145908583721360689583475625681520736518199726821217563957694004059792278435571436571862946026792344471469405346808534774853503554919440126902130601031189947174751488400461122641482133448364883001162386845533283218189750066580653856302249256129003364974173610016489593107240533261043398862921096922063459410208128385336041191484317577053453948369394513595716178271853785270524431838752288039133272770886465455445375915349078348795910583544489718495432460153066765627198886300207270704295246719912390258945437383698065070183847149584551299686904661224313167494535679557135888284535487794388698040444657122120842910576110606430294785164519603507238976076178682718398146202962785430171638997786353194259847970347342660205508513981796612727430964448141710096598407590527739253031684311248075933638494084844589464198019390817264505347609595944663991538828043987878444508501463610678780589355255913238982601996499002997117790952297125461136966534756041557134740087378071547431625204137733538440590529269406750446660373119018330906500117702459381711716030612499439872488426149256943351367476679023309131413630364848026489558658212740599455320465866780042006738612154188504443619828393687767112790829460227707214402341534317563629364467187958055545225347946419455022402383755296519452275962632532016756449999088885217337598011183889343091042890047720224459092153949120891093859863577913970978781871921865137468716171249562806260178794662236135558359910778235506656073734543491953066035872021192057782910824045938870588044915622154338638340250477860266985504260763727227930110960355138979712153538873060111584902691925666711964296850803933958751773491785929349434740884845433860392295739455273063759635058050791278079743430082945334181371234002318054775873839862980372005326919103336517411614200857158958693637928491773192872261903723333933284363501098014137161925624674383526175936216946388365715710456247002632093054991929140697156732798644048246054732284374462722540611809493734715687562183051575467461519841483813758490116663232943233266434668289640271483937026996143812062522476072968035350542127452143611684596120341404705663235636607558792390385333248538446469266963800592173239640307312710876287644691309086452438649711286958493704217565215360548080640876421396575713856278153844889067270261168120076303749447544675032081630476036611792210352555992841749366701093971769768786023822065229346995964197181912176873902068124998570137765940308464829572405215892241395472724515526843443822357825411940439321779091904269942176177612580560940935772098889639240094031747865281056434277051249019117006159560114536872754833160036682360087615222287729363767155300971776070899660745791139857178043469832452182423315438728082543239736415843551400856803645417913091778647404571619402675839783845319327386606109714061149414607852288683425936099556834728887179334233086875893321558426782974662529818482851075821442132723964119633672231905791335375007599955802698771317615662827965976997853232946356643846424014988343353815722451487060202947839745721063358582663264488809107392295312030179541077045304340262362280007758667636368181565937186908415278110347593870737714030733237257187863304860420540486355608457973980384326468994538693965945191684908545220478987678515965096092041778586016552638660453851556382917241379162275236959220355361009691734957874561216095693777051530726601526383342847214835717496693587061835653564185188544012548134576679876026473994603574739965703108211363230456255233768542050293556321231284522686505301961712220942677665730238814007476634227166340218257544170782800461956196772350063002442735203944514744630818602757502351299633309508863883569284531621035425906001400046663824715709314815606854100737724599210814090884210168543870794969297183501607070606642963452977524406149680123443296681399941023947955476754158034370946868125397549466908787378791780926180072131038600330235444928824191604907535014589956363770898449586138105572281449018167172917791283458311762908590230600005100266336575733832196505799623352595335196118493661874440628266164018262096662198588115725034421358606291434129687680889039975094425447345394813473426270499440266835177190131173141982724524806001602421464609064353333496619332752704402502606906651081372242802821212521678869167134817982077165910971919357990970694487875649012827037289084981917881863574322978695060881268123463586593353722491641342799848052292223120882485871976992781800812647911157297286266652568484845493701443480946046780001742269376580478554918311794949487151909853245388912271518801139842439282817291772515368444214100602519304196623421238729732707609412096718319673204751839400984179100377754528948069205874817563409465647785596600222628007101038630341814764837055058514017249365781959267341407780315010731048658741772712733077147969958857502644444504306016362563596477890914052154165347629720948197086702477553484201418737101666944305211805438210546458692931734300521469708716335345602128924205749634736267320289119794999925573863485880966581989413575537597217937358548691854935481088537194056664903497946213980909577420892330736482684887980364711625072307718458756487844802666772515765650329576451554846559012984086727875300586114503194333107543552037290849418214232419292252947721719067919794514732744362108870390138960287655150033333450605510946720091782383307592320611843194588896319066980118189230133220434562041294412656911242461265677517008867292194950415825772269386040416297296079802731614521987314024586588653041515297814834032325305339152673197023437991846290967370923783221196300364646951573501812542178816066999468550742373079734835773251568478511304655871994945998379055888113886143434102828192256903089058313583887173264527010388522837457453006215366400262086274107773848073074590963386201249703820661558728737573418804889399047209951066919130038309684722881114174807403076627644301758169253364958646209359647859239005599510953326417781046952702929292544578398552815631742133631748521449729135487177280423193964001007914115586260233857799104581834346253934423092148816847271829301587225664586395458933510788867821134995407525339087697911939575360520026999952540734557949080085605708066401568163350091852466469112435916631027762539581115026272724790557218419417532803555722912041314245231019387727911355066540907455829736527842709243934911443339496169510578036110539516596157482505062433736604297435243633894913710476498126761740204072894845867762950845572811189596610185143162760530444010204789506288626823960031804305750960025961922306956090203140620819888472032208248830386065903817494159080651112229407781293014941047142132084785882978244416798734715549504689797195021888641102354287606599794711662874670051374552865552698493564636494794134090059577335850929899923576108778622003792045364583017966376021797632859780764880472924455803865818610596548981911428481361612585956846615786150056918819821577858072740641181812829808662760131600834363764820608673936716459969587799694707190631670436832163142536276380546829133033151201410490901768505381078162038618359121487594928485478270032801922447270748153212604632332627229797373001210532745363958300486388407839096079765487434704491923645405957499631286401968087424540259342825935319186405962229980247301211456336908220095175295361398889299497081515832081904552595180809371807644875726446516002209689958496471519177750095461080530969749825883330772874596514112452552866500738913760979062345629227371741362790670546181927995178742060155328255788747252575368888602241692436697531432206997987964046676183962783440112574361774384197768838340443766006183903043431267035590854430723787645974026679110393320266579545853112633035375168663171007135406466065294613382513452717083233676043070653329176491859950120477097342762991060301338512370348588936295640474654623834852556898480140104613761233494494890251489343618079098487601769758311735370707407944309659005018202416281844561579335019804064598495292572842113937870710660014562494402837949857117213357782823120683737439300327020700596900161230800358436797013582764177926236287651941288679468758407439439357557038383890177425232009648436103946224523623224062188779213002069404388595384136425754841679559165368157590004044748000443485118126402308971276918198761836378140870917844589785767050164430689419860465034576542072257967674015836956397778760328607420293788923016201380655330087331145510747206549900912385003831691434303511382308255211649341410676421876217672646534226228725677500594401060027551007838654112464509981431071066216789373614652726607816772135565361861818457743909480211894315019984356372201487084935273127765110763051120376039794120425638262704790119766475506438071049494699698412401763103710835796730998097005158446953611745371094408889303138874410267541995560398428464634379936390200168354462434764001952601070854383827679118743849202780443238967103819609830676866469517741520246489958435481601752183821751476591731589928953081385735124129448928930242826895184270072296508846956712183366202286498146255893041992428615722700810513162040474748812186455964235777072006199863588521987773559001893960619261000574245848144693647649766975556884676374285546957105284709571173348560404757383965516973822683511440455954162370590335765803897837871706619608996495092680035944671121013753404621434895023433641177277360077292028006554761485804009743155575651126798742162860507000098470482669186424234139545903160843925298507177459159893175487059168305668520077607957448283810050126452505000882374255077018737713173748587429702770724325121839020761684682799489177544541122459246145043511714473847013435696880518854811671755800242668297594710496990613100366669643548934514774106629473990362556082521887101125863809069144312693362675350144681032109792979333637166704155879124737924880028330987980684153478186620941446657412258712936367017428551173222942241593057702773868872980680927716856018325616127629716864259736041232932393473171638421179604735238411651777292260562474396858741767040992112160763620753289826520853455533565392981947927818305173242225651576340630604769077852674423831949195297433725028920392734972450723252048292284001991333274687815147907560443071603212655056371597787088369560357973449230982820190703996498025698566179154747364488904948523904249169944518486016606668772041481745883456164205660513193025476175681988656165758173087611052390208413164966311157109596628393300357495626411269956470586530358253567691295181187351781294324887349153953393847873268190306070518146005714078580763076083668959521060684156637441361526122402912391491274164750733928539807066606546884134866037117318521127839326523910673139041988411020334354068782901353996274195405370410598033623352827499972875228916851720165337351099453163284922816920041666493000170150829994668934481816354046444879333819729803275905755516816326754991536862877617082331288332538228350908192441787685794858941887526541066751281511191538474117223911403565767826070940057408941488507170308287183999961137247455489583036021549542184335036510842581331237192567442731648928591564637585577286868392527823462041758883764858609370815337056351144230333700209626305411435291847595721937320409657552000333936743095608642265561090968912551779321797296535597844422448666133441458887264571034148277895336340780124718272022520270920289460584888414787160582834021760197960337690513988052343324027221888475945286738909264522626924327196425092064099688404829473801924167726041187296561603845397831467866842636745517224627195805221803993095338838745861631132842431133285819145911167993972028323885592391981578188162119013909165784648584130555224706491037380984785375584634378083823384423653620155624884313887865528092219063112984268699640227167206647960375942477073953602739263206955385470728466076832559976825457640368868832605739978562039287623542536520944788391056208310227130207643080699237637934477626725691453518894877884452489613580431124674227974256660704381392314507359347732929930247419736971878593067273881705926008785602898293098766862702859681479126776357938996556287758868397116700899996391447996013707735023761707146255829885902784737385347782450719388854165628777456752563037529737912037976913995734638461621085607143434313547611253003691938971972445733453816479492584534233287189644076858470877240776313812041734373332521373641304120588351801823238272669435357521792424165983833163141848457108071893400648132709519721001527319742904751294102936712022412938656143089587809493202072480415733651248544209345299445172099022267712208860575466024500040746480197253526907227863035375775930574597847455020653663155807678330226830271022571828914034904580799962281159353566695734367104223088885543907044626945627881812197444882854525508056491400088611655560414496166275942552258743065129635042267909752845442408162991343928980389903108761782415074129207474133859250428757460265145560207026799126819681095720728722903510953368287032831207225669076381228719937082045431759171822648982760188301459718849779198179322457880441653286646861490742196796780140232913861406329505775295504852540563674609646225851642135652874365810966737896943091279218475383384433483610089344281384885984973190004535585924691865546536737483459474865565425975832723541191883540541750113659329299105556896678212652087193134750504068725078136225339144850538278659402811178548987983302176166565762591091670601861768415404728025733315690590910296746901788080531119981147779074575098514493052031035125596698084667397693258241958485890520858643880808217310675550723478342213009992608575694564065799027736555747295921609031618781036267087237952131804769697394026802603739140261214738426020189191236630743522635054464677453558917845185371934327584360201132481348383284707544383787688868602048805959697469130960011362859278646556578958068763910702629246252715546956216207894122187428012222310343613555709651958101262463827635420532013082935853306330069573649069636117961967983694067810629604382109787382344968550167102017075496718517683239654326629427787807022625657668112177610763528727952159569008327272896417402672827158601901033025118697656528771217488448499191142150706199425444143770793489486116770933358852860914120393836287742291292852276629109404190456802702441172894858407245922910195103235134006637857299459728660997946885695615264052600389657468504132093025069682812184867839286853884933951814878827840635969518562357771240816200331641535178594550968436134384241107344357324290880798082908803007875361740827681434903011235308571389943951018929125040686326902466330820377896214785877110872773447402672005492979525861262332761624350981073645351771648919665604372300725308432417462952720309369552677540088601163364537377306819004894415959895815971394754227902726907011027796617979382348495431693047600204236609928896405229277319926808785500339153862632331378201002634761635268023530446524357980243429468329142506371442956505155511930496937156936817023386650095201065094179581766784715084181851794536642165314682512955637100219117045917138764831867051752139716672653224955525854150302625823160167752984124610424324320517205008331752681720903102128545162252140426190915717350099282769804254794721501839347443802071442873194771234571548063157541712848215935710790922211265347405288015454373552517629069419856516025442888035215437900232863304365791406513329776309025422917361446742344112040897346518791031540646452105233612114310853347680831212848545653761694861220804289983280800602434938614403180065702835833169838977907925659481012401761316286227244099385102806297935294555015482039082399330226885254808304026833456285966125115031057929866932955060387553528758487161841706737995381231053590717251746266392323029193016833856209246069157558706658906794687499842673500618875705401961902090342873700804409561890544078609542854670069240476510115818415213482557495099881850401964734434316996279893480339937557567195033484356794641644006276315860562071106093661648239337037863947146906061901343663350558127227927125718403110851692421981709764482575529903995033028628806905201698421783271829699087560753153883757216392602977011213491358712389601272655110564979229452200128461558078765287775767953867610590630941710872704915657525872742826694987501545609200697881855754584459875488283353136609156644140697930248144835756064513445066008146622794641007190635315214123358346807662044407981205266955735697602553235874363984992715758067287622028598545431614569591341008285406905757689764771790890425499555964949187378566513576958779671024135970429618485788206860428616683639292833599228963003627527632230112896679533112109840615883106167778618560116007921572196698100371891645244045123748433282826861409032404512822616796416000884564370265856264817790383815647154035005538559733614656673254559148937068361980535000283391995166953068744266414556140317189752351602109215515970245112164106289462014491466445051701949648118591388322838157208230003807221141220191419948900127357886624693551601823911984647548309848604029363063795304561285453347561045992035244209872100966189432190904056440316277500017837852002935870625654352586506183735130835468693703993829138761441874837654419889793692029990155396127383412094699563299812255421118162905729604425682466661823006485527754789972138976207483440161002242857378053740150170797541225280278686810051434282231932511246237287150026687522104552262287139562781503895335758198206911658357593230217739882885301797576057729414936066496993474518029386436244048516359028539900741464257715817296811628482775602848824662131865852014816762189913733489762182489121191929519186448605763296418785247965916209507217019667047543431825508594625926869617699963762228231299059427127205239640935706416217390727275471698695705838048258748456209716702869545245068421344851905639442885185309177741509097124337792806667262020619034312413077079736567844673082837424627289704286639101662195877303800419425901374761749109366776515573371224155141561722592109981231726325909557200263494037599529102537468324485689175045593959573003890858518349726826759520635309499241430523047498678749504856599584863990430712066103599151084878294546006400675245790564444490539054929201515359883983988472759605719504219946451984429609557871828869856729857677685439075079453057760835742789714568620291355044775162350767111034543911422756894103138257473624412622986100546794095063837720482679668053540715517770719344683727701769407522133243378453931050963171963606233394634846064028813075621545703219938500409443976855140621291646526114932761026721503327947672028149591068276851710303232594531717666966803118586399555700663321622138183925181187674063381286604133843853158843313989076928365162134468888718992136558362603323848223605415473254231707196680271736257644605487571150601096430580100137653699460441859026576290336003166001589962078947214912368185293927223245488680620063496972361907052569640993160086104061797156378909074248100768600368057256077823908936588804567132867632083728984434282604565417079669465825652807101352280793578212267280670405963018495421608486703329632209380719823462862221251101707704260623186892554428897600557048988189246774260012516505831271322461352470939841007094903038945470365186961803664861750001404609768006416574749124867876450577622100970211169344812542748736909232119476931575552068684528153534386189984430622391055869675256078298937185695161989668464430080886571654350822629487084712492922445388564720842847839731960448639833267489296266238078315484047472295627573327465589438577229644764201464688650306718989339806303532727553727038487382020184051279759709311866014124670727052583998680347641597089162328910174499148952984158689414946403406777605308004273080910365829965591600689125634222304699949077219923091680963091427318894710190179565050818616661507410084662700425959178846877273369205573750061788656894221926710105251536636178641603626836175997347810525844314346815824542031894308862947363134747210881115904205686951269495268889530381260051810404720395080683847598754292209121695711609474919481694571851581618589140341595716882648792300166723792316594413788306917705020714070554835268965329309787756309915937409925783267299953138363835827533502775918514061165962092268224327532736005638928096108097165808277605585952223591475968118496838243131063910995971992559386772447371406672859230017215976823287120363515334932820108337957378863408092564358284065474486373217112735752107279702436034649746081252940556977272779846631154597867687049287538224855312017395965202619603410864182277147928208056056499019125430033996343754530116287924731494138014437774154564468707820661759331710065274408050907974322895592957126649265999624388450457325959353467858107160075940581361638353446177861963551196848685889555476840974935773458245509287725823277022179042578361039173054274552838501955051999809384673672396272671219832573194563431670986539843643919207800291639447647304172595939502975354994672259783774231726641993551913654286558733459095281293870118303170707764214655593535861820861689021819551203461881324575941267152750682274329066657892724328819427781772227240566197742502940739937429502253341642710664587112536168970799460144626139194469683700565018621370635537067387218219729522996952599651403529547293883494753042410263146079937482238995680329516116776029248808975256389109273272941517654221269315924600968053015629293766613970116183409448678874489403315176809599767107991508735563566592332358719607601423246855146457951420617364170824333940895656769151838526491193401659778582589569253591612060966518752030561719741224099067106347958107387327888787693492721141974273389271596928505025970161272960953159822970925039788900150395694897496972902148520910543747628264793088470488670648873009012530995505785639178643691952272541024088542705835519681211332355431236501821927971421721998454903988673601290810069421929465338148313464825930791553422784608260322215881016604561945564458688333674652808234733585971691872404731634155478596392592956551016724862470319173933930297084347867782811284555939417496906963177513415591580206731911526955869780498871005657937980333434586006891099783247642007137477471918785282899967291934918283809118100872843334635098391226073711169615582888452120789096560182096473535176401485682277416498155274758341055298467152904718363493770550080877613026017578025916514546120715090888702394827440233612927356888473794846896016734280732486428444134929466306909274396511761716731204700686999625717847834976449867636590291175130262247500766571861572637781202174658994797083227643176169684930081379620651563418708544170446028671796507140710304320346623702342610703986800908679890712487229951680692127966307052706178812611948388558741241389649563223519081729574043165912667253899141344791368558222775395010183253237219684848731250813762396070386391814187839794670377412573157270794957010059736755440988139738666349935087515836007545701557296638360110457734752146779184615404754146367169021144597016759003978900466485896190483594096185043498069620271613663026523911611474173892868525720120555988216573217553021218619842463878151389903780021219873489578452258780914370617738358835860440170164298565909183832940531711678772646600374729444673330928591118318543545649235085902751607016692375998848226670196478290633455677762804758184105912407672911518874960634482125859410949991940065378022677335558112213542287846214955243972983191616149979321609916912853007412551136988187175156085303975204144408823565643881562915985107574310370062564800674149151910821966540724175139795021177521334531108655542878262686473007447993419884212546063369964666683688282390981899816378417757662398086982081644642071310512161594179880990207724779632278562281987443478800654625543677097770418355327285738826106126695288195700368572290979831363740766357147588500005208605448081785002866937128569291921717356325886281887349107260125115770391127858804351041466745895497693190569012330818872366213952966053508769775353341671209809832415554470542849472186206609668070183707830614926180722282494869076725464021525926878109495881239788633128291101052034842414402208172978455599945347517531085458483049969264462913748160035337241869084389316459024765601863830600112949177244641087213853573003232578999189076240066896273642326042180585935424749079120703401974959762125004975337381146144955793002874773745095910609320903891199612017565651532570320304445931016562030367458105254853616545880995126151226000422977073490670251760537341517008478112026588662062378018591210389602009833644347566584084708286655458032867323071946837296844712479937699424093607692328075008467301996635975668061628913861751494193074963076026510546454715093839329941328593520681372178744832113293495251390760050808316698961594314766505695105900310692724212641156532760923613938794336979497377599645459262628933495038459889573910026134948697185760268439175574712915944073852712945031991152016364735850428814178378105282125030911591645323553242246052694118458240483204066437484095616759276679756588101065946165486730435055866535279344748623156865188549071380530724049213150173306136005848850381363288743009851572416658252369246521468341678503122457581531886087026353668906896365956913342842164746370233937658272151429929456712571626720802293653644566432251132347479191209578198233850261606770828165617969016969043218269868897863064465673585979454942261094995665151190079493834362908539271606111060865619957450964004354335219025107506760545644097697958740472979351321205298470260181599500548503418760850983104877879962316931653898132136183148161128419117824389963289377220619678173887685121287110845062635178399802593859548924294670847183574737285819245318658135688463165516518296082644340384460127548131500921665868515133923528726974989241920766352076276596902651332022334553435897670513822841947553169558602722922216587671206642220942866561810126801383170898217804864283127299895688326083065420000625686442199955222155361161191045072770748239391778656311529339783282222812041737543326434735126299703285221393480227446174582261205668657542789392128803715214639340204948690977947172873889202817855820258950307543100134838315155995262091808083757569508271048859713244248396844667914251309615807267590368190097071973239094286179407103535099065952257182791747469829199190459634009341025399435207555583729363300566534041075470041087362524110335327764050830479194532175209360797794646454929536336229601861131991648714803578619467966504604742011537034110272983214305357230890140996653690281238695048695793540796315247719951921795873463819768028580853164542374645062163136092176736963061951209074483902927978846449246276483995832410578739322401978926557548541509574152761155209186853522181521283303274730014856289819546684122857362211020686439035954475201381839428014419124372124814464921491503392397880207840003619641974651282697094345614896779287061289395753892847619249198582853263578687197443588481634408216120647073000859275039699196362230656245499398678046013033566885795774645757373246626472953690643398280572974340162091084990399427550674755176244616231358868105640857355023757721061097611708236538524236320268234981993033835430328483827534562314418684930144566574608133303569038619261697237916095925544893729142070562774808814121802479450496373192737466943275315138585909190494936496621100914709142598315037855692254562953174573960446601890728045277591755052697650713658985643159210222558726063898773579383873060825242753630737707288529584399985338378415682269879629225184685576828888578257332767583460895347202427247366080576556587869611629949439798458765756294990543383828053454856036394346791004453432494391309843891568866782804127129615253802215958646434834985133433764380040411449717275134051057947335376587731786799541104423082035196573023561343965901913719026233242224424335760587110646934338413865985747804950376910114142969633101363608097079306798112204018632569549768557466996121717391005760112445618797028481895922453758422225004663648689817386180671187187003772171524487536514286049076408113418870343442719412558652614683783229719837634928694063803371630896164692764249885551591598725084692205952320969130680644426828215018408635641369393497975762740789971590230729738542006741096787366566832148519513699930815096803578149066495189271957012217617314399018097000981692489290210052178548708679523171705784061423125342635873028203559490154345950550248031353282030919575759171691028159480684695346021034888246319831015110094999175203739779859366493600192844469536804771556277178686054753502071812061840254674841194520033519592343475191985077513227501689734666399222675565830754939505194140153227531251325471206397360915588054882676489527540316612649333260404158267354236358617023241393656444873489145066745743048395704697393293092927474577566449294948822956725478886677502302763728522396747138759248904178729335561850914856739876755736159881709472340901699727802861444576597955656137692653828700225170165528020478609061752060148611333804392402839281121685408760343215397193281158394114666756498505986506019153540026922479088353027251417732599117541585708562378808572380116836865673895923089017312328436525818641543581109394736863925498572391555226428745262119487959176628384864408053063238153721982775651592171937270951835035074588640296951543149902701444537398063023082761560179718052534434853869955836742672133600791563044790420556165555159133974737169660051886320994875490218884117057207610156598355473549565513706621666459403051429830820475350204657749841435638369877551929612914840030188764684152067300596721201319819080552047258285192698940313141620212380752843985894949651363836104888392246165165835677317917510097239309221757796714540897532625755132532916659713685513811044923593562543452375826525312042493116662227506617115395021170690733065208172005997526900214260174067067434165321789907194853848095031245504966627664940534245081903323889671175865816786519058656075288851389655522886777927873531354156700207361296619778380015980426437087906430435380005811450582177769197548094323726189253261234534626349121129194622342668994845276939215624160575074348262521940639077696567030984703423916808270229916480245201147010551986017517578438862947065313273522441801325697006466522028623793039286264168522870081437648304871295361048400904559804719907750859926633667292460355221664586523111115339051889620056840422240017219145020891016803217977450907182127981757754145609860097435221263102431265492671432498630674056913191559779989766522879864476361368638321044563303772222742209426416014048778006928969444356170151729676497229554519972696294916438048382737742731947214740081721477257873991379604647917772853658774757972170584729226920118753484543023654247645728862457305579088988294722129246500536934525163145807206142537185857166483559591417205119924760304263710838941420063443928670077115072919783117441549935961165985544976282092370610542524933911225402936980917508690048215503883604153862510286865542191125359439376642255381103386029740054950359093629338152011729022702255425328196210358905423296399960666778396551521470924391792687028313447201585290485504950437644888395508968296828885217534762538703184740490420680423851566319297611328269355093918348513010013307132337399279385828725170228625866451325564427433001213452839156932432551452331647307822149896607126018523334342789428449292312436716782551989563610757329736572441008944777874112534870904139509292779233503577807634440205911795179671026546836753160979926643883832058233171306454508595204301292282039307975611365915377999769385246891394629111133803746330123194336689350340470694584802722511513165587845059124598599593823310596644754917167357740458841769503642844609222208620798020985449998384215355513258823697168806562861819837152275321572285883783696763122307098629287619128051149831990061615303526846467664043169394908947256261595522182340203882911387251772421997588618220381624389768491052018893912070597586992403455418029443722682116186570958715440860031112189868287269940157097278049916872541162655092507625748078573051753663537099988857347049190891683227164184795751615617025150592947587994506645773288166977517329850503352900355673842513009648506820408379006626483935534474212915077241538133618311747433498293179588761174623473160857810592030675640332657291881145828582233168691610121254413590464004158680135782695033396761258727636482239821313675604057304159026241514635387429847070188332655636714935081793855245539639218771149339203958295019617396773994504358121626271551729907883886097985704006041209161458207613423419480449336679226844491114130301062657632763195405901352752233610696661476970400458837314502792011445108304739330872304530369912129554555188283840556048965183802073997776080033696488215462266169204815043349447770451961231025982944325442458154325944310743268584350608724786873425768813355902155621815652719592539709076291434622687208492390343364794582694231831625734933102387422749105231934625666079113393485114146131695199372824893113863343353141150304681506216458352469859940696801703644453760420246878307438728818333975770040890299964043714259595832853332198905980433166128784605974391565745877648952605770270431780647729806897748757610708192242758823411531253572618953134929936890266194723736209120800480624344759172179042265392564119459055544742802575816267616616088255131129633087844292681872716980740036466164131309645098504515641564954859420876112645933967312682790051215562357341609925705617151557436587045295283350734666320536298314100536744399346340149394416891133431583788653615834500376527738560485091003498893549873041697194998873406406907007771296275036844320910854090276129328138220089242101968787465236254868753757690148703462133592124197494930009366941340431096290132607411161763867758795316639357466262142865779143056490552697690837925986619224577775325375330472679245573470286510243969235947330090104361499595986953384586701500810520811969678678156346876719361535634420569807866138735639336328038719516788865943178520303128750684217713920152276680810034298180546921046114950185372921007912602316845675637497898599971043650246561048351206871869841639360367736708212763183296451829883773570006154349550508651611957403069791589718676682729822113832011015941798799695844573212214030710836819405493791293408892092139199132598115487184251035087818555526626010808758685393085081438825501476973853920887230728093815588474409450071163000703524187634735367403255109737209210419378256347518482310170209341231414323609721374930219256151844360166233173310788294593260234097796201830848689281628551884073947962500486593482030981434456908977949662152792420177731484974088929393695164446609018187254580283224121716133391453246016708191635092901208428199298980513625715326483242115410290123567182181394688510104945518748697564298542663213116487457436003748660536637781037239507553595438058996825055059716987407836099015519110960806574503205886544652548297809102979803081425415655223097346487127792061250011128658612763343654351228992666747770503665120220409885883992899030035131612085324790633399819365136146715642879646598008907406721376540928864285812724703143992991808630016483664918368553753517939391771255422155149979764801751132345270022854119062414241187932185263820234901767149677585486598319531546756597630927716413340365547129726172672637531433206756945828500393336531990617659571865838093514823617744841456014597211831453236969441081452008897305785969113810044324164810125048128693710646997498971393084867344054725130530230671707319644810142273366866569939043964717885334402680962975757498314042312091263014286747112688332634475006256181630229064500641033980922140710413227907399098930306802574348432145627975674779474732902698912041739333020182971704295461827136058932122142921986900784907085331327667484484206731270653725165125380439551003663278193607812084039293260525097759354388043870615197087543653551801631793137911589293519191550802813293801093218996543485756399802838710457183354662732806651912065102246129082609208024601508796427376063453289951584492727593283451107845393948772740230114689679235100656653982940447960619583272632999460547587605063881669939821519880189249799301870605012259387510067586063879004983424157500360545294787591188676433458010426270622330950623296335403354329353829118658590247222959330459794480050340803026112807063938449847480752339985786335937514648001376656265782979830531137134537930470877655701327627524212356447480564791947830866942212113530809211711319557003989968069193166989394245699933260243813464722064314583132283309653529980173746646022246306031840147280376952139610931994038416149245284558610560084536512409142028677546478766695853556771205875883514227136773757524921716340505344466769910596141768583593934273460580324075908314685926997767843265514327552629734137394937345847918614962124096463204886125749118586069599311483824293848880644085303472286550497008094061859993909778568203737238479791163342981237855242219747856378300620560275728470649466415843598047209570452167994299174305316529410396454683190567697306798074943586693459477926895685843963501156001769647653456607737620002233738926500135920817631745461599830765418765147377782016453976225544853886772333379190483201711626458875832389684892396057684103543098977306211279457903356030040207062162798615242913039725877927068667509627585977742736173997348426882020868470999142799983464738143974289309907213143271708430311291310386734839104731769679674434494177649626746970722928875789462116789887709689021535287332768562762828767889051577807755418770615194898772607834056308061953572359355274859146769274579025092320907995329654563646034452536744800384596077566282291602449698124618003432545979296448945272908298463252998624831992328723585310615960582209125900344601932394067582767747285229438239620446010679002559679377238183653073118695362216282651818595517895472092917112345825903752901321012254134748541095653003691350928888334872536508208596877170514269626985049621606836388307759620390477823240012916490782551551400338611675893941874590001899250857811715721052972273931622437230697430543566856241863573884743652428273654957647213382435764830084008629195651787875123943496317154318170327724142547993796929460163306124823762887817106094821614148044496782409952001063861833953315843588039083694497292682429034318473684031291853548842308728437908166155459995998204690385340673019801296961538456343375162516487316784139472922066827621364763415876287664260465640166130706578408813211254933830888486327494899129309593618158466048521946974221619456400119634694877309814322840920140865382708664849768216183845221896083464619376160440644149882286022205230337817829589146144335823257118247306868035757898120355700060482457974262188178096421974782701055931407059916740451548121182598390456102971311335532745281099496143708543794642114673869318393995260748439012073935020726501856653434353239820625660497831300777739104301255074726323752992438185941557950747614565938241027672824746759938253570697729196933952430728436791340056998221454988559138735128215025466383412895891129447606919886768194569502938670280694758618164623701784396341946441536286667876189550704772041951961435706241562030860562505638023765374047050707043556434917205861365582300198428771546998281618951034911069066791671556433128943331453386699089953444793764632254332917024040225214852369552010471609946998226062497291783905626071690093941689461607040838795552161864934341346684000899649126610610615911608901674581521404492773868377867891563510220308899723001239419467680220345584820984419783200888692285717012087559348640202405006362265027538533729102469003606061406459791832719144507164938062542611719471730398914400816996858159494269578611259382339861013469503365978858888175593869645609718255516231570647052812700772287801997919796173369040751563719542728682932643845542092998688350926267309187514333266620981124196127692209696944945068540228891531562085013329689358750433163524056372140795166020118844325785153805006711909926605747349316776277959244999706671905452373790243804616150201509850088632313374780000902794487475479171868489526262815991440766751422980901502269637101795614408176745374886180364982481346262573835442276571923458418648645310737062224386831053587517136637238760322491962374441941387814395646959286498782582069478923193897602071044042239330126396668831704417060573477962114456561512793661421596093824397496129462231726337841648021195069719826420489742905321988936145421464890833243643959595289114896602180951644670230744997880894156114941275263755926794536140102251330898141565193115455079783001278951336615884503092961909680804170567784345987005843043630205879028857902890810511848353800372202515206260936250958971953626368340120147117941472975474047109448310767693569086318164404893191936102071229377380672851929219333059421442475289644519953207767071847251899897942235590954441569069650749907056876011000477567925505196496404424460050267307335589763609393529385746214060786014505723408017522704159744718262355921643929667587983809664698110631451742349065731185416995561957371839050788671931904713088161761554268725374004565343014552333992591732755850809847414800340139175416867139771481571453352365588756922523417609232787792147100653034471264027362325773111674997425410512819085348444424331385955349861611312195022754750339233140989632163309796527489703378320898467396493998401465703342516460591397192814237106766056504826856497808679856958445270765854313003615215701531020339118571801577622241885326178179120360916583553557147429725601605754621826056902179567405214706682769058721645765883375398670529014510506301765132918543625283459778744435497228627500123554241678229553824492621507273692874352485192298555009678937479737406786836115428634098566221609635852236357471004119806750207298783479844408488890830243976089669353080628355403463846174737429506906788830235871327286904759000273109704590366267469342778215519932318507942777963622464157121012393374237638386467478723810859964925180645481856193560490817844443668429045027097646135182569369839700844834447843281505004508549274036582830700511928056985890579188523587288400178233479793075735029157301436076194154788920122427775965993057521924538200790475907283473952545413580090532578851942032160862727604713184908972691655806461069740801802498335304619171247018108063881053902409501309731514849065079214929010914267779071515966436523049994206864222588515205799522786401808886580273438038332989516873798195315949458956968449238549124755334819136852429178046354613520721587849798329040364568803277012136562284712266427779054262354105151781427860290115551859031015152055664006099036779817147961940455850395600606496769375679466729116805719413407125411363365478322992099999833477453164586937615162674126845432552113126594036936867664546474127299670241409562793464125767255460085865679893697893563044376195266174382559248051653331198409085297125697143261366471912120733695404048297393452378024616752040421663374017176901867976208136393648285083231667210623889683745414271799138127060800682996853569374061849359707177143411855552911902601814282800659126175064987145274980287072936134088379244750453743664776150480901334831714969289533775420493543609441182481922012425533932897539134638913247866511893523695144104489641760978758388156703999588192232212358513203039392529029111724287693831821685079140333043340925070158695490940494449457349110272734358385602658991095501153430835261280454044736975331585490319644288347959085958440770750493838704660467854942639110618145934321475102503769779558789525801501420638970842740146656714215456012656500993991282805011752624232878474158975661031101441880478089762596792367784376502918775753399205722221579673859492739391981325734476186546639913396709539708077498189407157749512002495841590032535425089156987769983062943171844814785384202660361979606479164549922825630393535749137136668844201683115913484679157231809514249711362523114459222324399956035615510503595947124625597739467377217793043808339179116860451322056800687163346870857927411805674486354711523720923376419972749262094420291205549374028162149082024032049535724378739123860519960048604949771649678612968296380521253551914910013695581557458170052327356125752812925434209048585900448065817157202513632776445859440358161585908822630911721265447149587111866854661018672580192721603460815101534174975236442106737515411758222652391085636653047178500086788727034282131932208264999004959047974169847670079309122522307869542922221319392027259863809416784747106453507340581622933977254895387096023403086720468777916166607740418816042423526998276824438283244267988813025449388957422461093985059191479252253718628282996955964915309760290378389868052712317715338855304366319378035959245054159880863592490632526567799084775391646121425078479219407047334902508103774396201777281989821623828110834551850377994874348806396645089447822314715289976424269257326472317227294772535451476090132394045756172845992106200372934677555800039413492440488057310426899556882800280517099705597945763102058786685336705602325316759641267373359385414887183955617148964249024338500320049361647523154846227436430305491033756350046613340448628883726791358710966080736187689681956967566852172590775222842754006318491268794829967127971345939042227423383787590922583423752690773033053495742853979050041714331609584428105732876361434196438473779268318257742672945752441731564209198123284202860730843438812912991576491030157594738771222086011053098860452512100978691292234246291256996101454975132832667641289832571065199472480932465670191725547032870051391208579053733325704011112073285347684926901309850452489606769894152267700835139066649171158831829964895540787546805069542576761382191225487666316327775783962709595491157618827978318764954025358481621157526181534735966751368673280400125831370065704987068023035794418005383714363235676724440015875209989351426990521884038457804483989155822764184479611649765369263407712736212650742719110587329497980190916859988263530472913332980522180776317151735394296725155864382878325353875963422863539449022054957872608612115161781697573371877748497260434524756635184783232286361994700127269609218524239868076096800956512215896189061328545857425197207819236385229321483732995174217175639012542134282461421207209261831018307145387294952065201208953563292875809012058364098223166888108833745598975992620586547759215861378644992104862681635583118438792630948381153656766472374629393648433108439359314244900763153301025609689364511372309372914105284607496915533796821482815608151355922835092354338429103291280937182038346079083391614883838815456405201720233966888707734988771967877459204398713846646071627394945214301959874499056918120873323643195464430527552342330745428159753454493083105594720159690765268450464607991656210949520043600610936230034259925274979482084744295231543914335000024841242942638686991321407582342046406456637939208802868211455258652763582260318446196895714937868488287663461371254853757201614212785903209749993969367252405641167284453228658028397771189659399896465377418045126503707195233190489673831313003914449902554179437683575364630490857730798096613679982578779892231021614658902543630350875953370993129602495663713775677835722954377326978133143536778670303763565567159327802922573558057745706665512485759258170022767436369158130917248248179068353289198891995143154558889522352880937566998910823014697150922278510788671187441228490840456763311262650455972967963345012642841996747326074488434948633597837234733609756413864094350461029017453084549626056701521522771538874465380265595449918149732607912073114482756563308976196087971102775467515680706014224812435334421321223024377452217429067277311958517811003081091232781119640916340936125457297363120053613852585879681877007350167933602164307858585847576774591655391090800684201369501191150571002928427907168154998240677361826994772126661789217785296812132069783963742805539687503235309264225117301998017616382756689117188385106864484357052507596342011007250861572091613271919881945836561827834477254865958326021007226139884080419663462815182444600390604897658380598544330480861736879190054871965840307779396104616833625776112208723673558538772563791549054109590722953999757277007961461788160092804510041567028415117410112222294409157870698244082572133452185008556747408381929376517988366344592840517132931579152717866106738896966382358407022250102604172425135969400875959745741742945988332314024990296396117074934481135612477851696529359160342685268140885115548699455385265953596380878623612491493216347427885210020249456828554991982945220760584686546997527376920663328308140665362670401312904328706868684028806791931453382268427295889634956994931222716459874340627892041632616270413561474708019405602648057033249658661607995917716956191374452943888049694769677921783641116198993524144626952212603135702048639093541589714963556432455441029316436909428597653609318311462674853804700627714396378219388533406311472359553956823206252942530960035256151947046858256999616953617670519245683308105785256012936203773479213863616623858108127182122110088019752868864605338223567579904218767567138115220277342627834814574450041495265083071218082333957750772859320413149842577152089244355856424219914794657651677149489179382114341625582291949333274726989087725476337750637935780794011061465083990870878112827631157606821057509902016767180796636545499239995216060321454245024508458322397359528384528513988481164577852993552383576122769566591176383663391113514706772554209779906764747530706987164297041107872697006331269396749240073360112857286733365968203932393429666551441548226986326053174392477327289766214312853867980230025421222057048996682272588186807861833187709959037482164241021530695443542512528700477926759221354973771163050959313286883760346471895689064475970630108276263342878653436097961804608744072401285428733409716563981942338060775809351092436385714515703291978179152876248219231344683968053971214620071290679937249740030641168823221081097265114630532652331112411815412143502160568745704125854310499026515724653048189308130484518102219464141154875555954471962145975164920222910764384634889140637717602229336707788000949848549031527985025448996720024517623896835149592683790109316450221074217336543468604090783944873738874386883886726675760906707768366997240696302730777034076156473595330031603775669486677764669603294915543653848407304280323333258130452344778431281249588298634745873166441817604153602093657178801920396871283498580691912444868839683131944149156306310728175706450776455442880754019755356181397784395594173873301537210963532361733750067148072752769921293990108519666438517279034776430267613651416047644454609729888180704956440302777611069795057427203504816793118931627389201783365272685478553754793115875498170747834042476968651314107423619467434468005769619111474981725485721417101091018203586080809011348560028616464443090000792036864418197330302016158218669643483795267707408313076673910567404885234218303373188571405463759980657531973742040920130920996834765886095201870069621490383833229047280078544802700716940866620500598347185319793782835760813530988371672793490742425199894763434388157613437412803006158677318875723416080026094431226676445316636352044128931021343541611374758846874963408428828526335285265889876567054141789139430452798444723176573889248729273737458868194612405437899089663776578221429470136813004613217522763722716707916836558770834045935306932496785027178160030424341733169678675787683734145747461095834220030975257627867441549571431395991347040373317426749869884114064847558231919741688113818289811557351398292344552244470904946879207191769992736065009597602026748238803924446586876607907011238912514207352693885828842535395238441313310481964417272114127637289883205977781574508599741080555482817809149354347002429872831257914122313040823905836349820950560574003464967822714758072914085827798996535525191234494840562830946795027208451335113326550874075827240925122033610604641102053249627336934997733492675270440413541668763245217009035265233341203086548438103414589476937846509756552779031796264442147183633861672273828683460167834047237659607406045305489088358967556938151271935076553162101956095306851441066621727974307898900993467563144368495506644331546698691472769591915031246453661324543092662143694277005876349063639690660516842466643160137148625618074021667497136686643506275181476465274219516818785701276380085619241754291180665966727864219481990255237568306765963446921218280462142302981534885568539905498877545601319973894983734823910855128351783571352954585777682597195632703750105667975591008194129131818155063573138031566861969230813914318467545900784319316241690359471545519228498301128385393949028885456293991652028960211321262279743901963430794081274443795332540021270007268513063219030738201453732108319698517600430176147148724696969355762711641914627081253880657810805159101413030358339202205571041434340057826626765705515426007628531948138182814535612621318745449180547891366002291983327281513336565370189766907249055754560311271247646130166674382177859050643207793462301685915283672447349894389042199300308238984052700731987086659902632795215524608499071974160503817774967209289304120983614210840460606273128939622775243130175174215806177697136123957885302761148724230266252695542495789076379610262161017721908807874107464308304420059320496082776701638460718954040206716525966631031390957345445679212864307765064422208402728300845026778798870246112660301144924600915378620938463888954377539579428541649230804261473213940751770428997806328913661844278687195419053909714223090756565981657504261598705393545356668134151854419716876243897034319757005421660399316998756024828517376843408822498216979902177465980568398729636542451996563223914091806717632526304265154825555662612945956959152916232499270347507577305907168999072767724270689655637977953935485660383533796967072698964480786573985802455197167286912557442567623914352773476276364131936689623214070178737229284377770562752304857595331886608841575650524061229134472544209220885812900710150442336262566146137682643944034417857303718743466055369738935051769869542851342435075721847595796650102904770210609535935018406732545982965290686664667806946831140424643606847390878586013959576205022564749378109604952642253729002089265410722403536608903427158129424522684496498190668943669519686397021193387349069842376545976309905620944803774818274209144563795394911948271178866888665647053255299950340918217759775638661704266486824784506183971022509295614894082788823891310972930697701524834327280589284246289941761636409764911856201985440814670553122228026285656521626243588317468700968292525152753787175502997211536190525091920161603823877556749541206073111554610594987477578223288260406103190359666116210681818248529511451085104136143168721521396692274833129075544560488902328165056559989614102194857328016271923950793244061112505080950392683696689095950431993138997285694730504585593090597449007198426378655009480600600691220661502065057872126295538093371127127247248641823758813588941102429904039448949667281828850361401165548432068819687288006806454893987886612296892325381132217731759922576098494654176652589560161341843998056982964682842365173527245068763860205849173859573330759210742073367061312302746257134785647728906665126773268262166873277282590399137855601819772420570457157746003280225660479083936510366960908916020759081903961452477022514513598453116832208817475447235872383067549458583439777755130744434874872253924761963878214529057559375234977569006284194709297388683038613658655438133048491913177689933486179473989376612759347425651220763603162416185633524998364809766886256917792706545946628873118701738967839183918793729664779730201498345277555234294406392894176794579155227633479016861127758741857082745369107256773137195519082849425387771900714327605724959629278488711325489222648345436396046232306602494463572146256549353747501746266378820362896922677209396022527517337574882897870804721406049657233491872346647465630373442174964419212131370116323417645833999430779813670663068069377177647254618914556967190967354478095671669793415467121294249994585300973138596369793114631039815455789253475552487871480363896129744998065195191973934591546299225573657279591071331531681795269726824604510815874819255384335529903999144236332469385965486601318954641578819634835067154430126544593508020593801086442976542489001931141069324184357545096978113220433071805914860605755595059474066361299332445218695477445356382319280266497853358105476681121811897631213830428998973263999152244668085630843595159589857521438492087413819945118041775565998888011098257713105236816752413933160344647887674856073471056019146734393835617573297350204689392706112849246643292361251714605795410422871465531685422139659099791942948932774367267260320003320302363500853333417638319867313063600062931472100120550811157239755967216447766591822273864663431965115651116520703522359880444938743383719509999242534641881846667461467908055999049047725800533046392590645768517471757582787303880019949965065982348328320290547931731113044543847894288586513809089532669122213909346163889666651196984233492860125989271796341909309750981379558544409584604691475431363090241298252574224032997334830580355949451657048811116405281803801965615965010688436708039980521376961294650148758468450584090971026863111871748546924961444688919624368736915122335835646594803296764176211730879515100370028046246803465187558844219229091922464316539858448266300250726791210328396526430821261625667833681412950702078998384979928914677467139007390425467363973418823275425103058894041200324086524669200489771619642627800784022629371100660412975323439715815661816919370860265178665825839205279771420051933729313686650449786227221229121967952243391015918990708215877683407221483616129810996813790678737844364234805598865342853544560617614009861047956567163300476610325991164260237050524496884463157939395944162607218288242214344110881984622438395865074095798274597235370764387900264932790908073936242884481718535244315595707845720545506808796608742602252703949806195747110267729501893729840197151876919378203801583292855177758200677912778934442413814916787318769395793375120087396278552625125662266805962431825214871740601824089644469048157755968308622015880139136078750219027113244666448449093858360308753641501856878412479817874584100055467412397252429169396852127024034261630915679092480536491175048816793551701946666418381666110027452511786674727239712761374452923406112865951937090590811466293358281731231627034988740383659321851130656216373188031081480951640955249033995280097291902910810827331653545130311163520293041227472163862758944926849972756766064145709561721065411622826329598620912747620667098816101004222053461346825931049704144204363949859181158170117256252727428921443727447928402672920721247576309424509328307716454958583340011530719830520571461113559267990994622178738930739779844852490923918520577811491688532638457525910072059674795160040829770061270278442323468260155387092407637735504770766990695220253453826801918211806502727856886877029358679088069307876037855237169152055182267606792137547359862141881992416913063889026592589565474938634989093813926309351858970444968304963766959530767427491878262375607619049625433538343485456294642588231664580964335704483282236641261505849783949070676152169282610482516936535868339393328051470422026626036697487129008441714482072847071572204275236885298624143512377693204077514198703723144008783048581909380746016533446482403688590636460809205610670169980439905666621687937141360442282087303211800282803436790202847983636261548788760527842819395409202846683394555174980621427772139611048397156937569058031788178952701044352372583092429817388484697015448629469360807028983943776734664045274118187897961655697225014766804050745916987462295131585068553068455914290393904548363935954205319076862471915953504519351628654684013544344335963986789002599273613452029427578619787832535340510089440006156589337288848528765346081862081484599425835028112016795236529649853540476671881609897460021767224413379442077814519616123781739233025495832641986603923947770194573088301347243644616104787561403230499951701214028594246729358108779257289642028737186500038565096649112135386779958399488979504677581735654312697230152791668884925504422022854789762613721530127135746936044181656771111826183640670457065319326778222506542226063874038172493999421328081079656560809209644471501416404068842014268316170221548565678748893058347654592506884116419030267374766213960363042467503009798080109641226119068023696067930704772542805503045231543130161395936898539966737079210318148740023967510923505691528258933407605811994189141607435961517619649532756175115407576247782249893893261675337741545867757820403397483724440615644313227410815958499056292236877486867844195729000816264840674201339265668822325834333462182906186054422885233968320291140948391860085643444365130052573501681621666181687597172275894449617145629847778586987936977839885657116292888036905911115094760903941101952637454165512841363376288273963757610269690856148456283368142629794884674653804752086844782618446853735527554777515006695591869136673704821967636987613676875588517701150160071057566167577618591599111683711163901156277038394938281032444632269747259031318373291077989665152706649711050831893135462538112433941647058754354428379009867246057491804350068252192626012879673860610319284277413106098639050703551900733417399104706832041132946800368974590381301334052966426404621082670870970114227527567866439705312794709644677058551031754049263239793545838080092143475137835750412587796449201670842269424039711137921958365292078091221799782384978761843016530172972384262273069679821555913669082313621600059624198285086854411867831214950845349917760717482088383883852389805692140210353985762330471982723089771306387866769902004552583266018327761197551934162102411519542957815007744214733962430346795437297966337374138940846042261977991653607839277648964062588289096316205200920002016726929585743229183911204168393216299626597528644481842994300465980376761073085815071400641337019985245361678351083566541691544716225942619587739353360965143773569368696136117858557739898320306605428038369755065282341849373281254461730248102060169105120963602111934122896059139213369543258089124530868781027476991435806443395218109256871960780744520348483251130030580530905563617597084426809473744938621200391260186779190496985035745885395240331835255966453631460152110644040593020534355177237603614501907211982758957800443585465433357203335238198914275428367641191500769265719988863418568851916695990866331404785199784544781939054473835656797901731098420704332767921456316526463227043001962994439911965088913065429666576411534832696801175848052982498460965813357289638243540024312386614836936459938487189147901922167581196680537415772290164954921871605515970098933993194678268793336580028128871410363182157034464633912795740937554995848546285542671111832020143049374712176674794990654755677723051157671671490492254909256576603802568946332126969656451506545512718543162043640417503525695874084948963717379012834069925580428925973827473203826002865796728738108240241434592458213964830717976356157388171043308132947596583586166904700082212939372328549524195389127999190481909235145346745433087308309301789367897546572916088833602266536094655610734574642752302473436061807723085196669135823863179829422478687904440725491134072507586822893497733765567681633609605008106780792757852432775038425179334303290314019670888345926686469912217993199538811005236307198255922245412474156510480866347532704769517127948010125981777610454441614932959093768464623117014255272607739592911077381149996058062005462419987101605976084820585176716267658508702899794904879331633464640207264464089888961247857362427713180222107200396246253566054053154247258815235189868109679812220614847904463387750969945294280607121310922375685080707041411189384361181738899772732604193111863927056691993949770032282580175909805038036938631407751502453527922675453137091526316702228615274830717479614109802020232142912078179862068093424881764300813175840966288045778860181387572922775040482551388558733292119744863342238053982775574525742025729507784707840582460277718635123776312823642329933340276945313072163752334136417337908990023016659153107536225697235273783396425866953030620341712835700006338712666079663823547390953924514097444619226717701571498002812652847169002166728439281242174374626310499270724136523333395324525921638352131837106426080176391663297573613459866482148292599666177908963292324591241481334303939806747966701222019945717079564092737879073023074614600255716801599605072561596771382732817468158564501868736404715885796960401283015781527820796444711432691267004166824895856620181068664505820399116364461805406845371981989411116289515472890619683146482654889289938443402213960831288030929304018539135209069663440683561589883998688717112675394462844729644333554600507069124471993325709821939367922647651047574143104950644611872730397275607552784248027894524625398022362849745111977756287387698780363543594106650406943264459887107545396097341326572296293363989375346001549944703309725136194318969162040724877262009394500195710754709494407287628561693883933141014026993353470963289967483373674740969072145648010783199755401423692368033227160942207993791100043605836548226111633794846628689101996243701985116502934629028976361919899950571841089148991563476995935113701584108325492251382172274221947746590954722967900490027945064597542052193154624984969540783583729512893715337929566573687314147159863439045385773701983664392957778548339658255630964614824409731554739824602066203621267649504026226186934448980033694741267069666909709904856442233901487939092402566747871382236996881240748881678408585063645891678920314468460390750059017896276829625721313140961521685404179656907351475049671792621278281640491698322135096918279867814973294718795439196722991099039931664473349396031674165451542206729414361667416231015274762663531746365066149948748756789548520992018802696890769142921262446218397649327631848377231925768595494903932307009356614866109561001352329326895904584466044799778738705781239754859465166923618195877066913396624585481407192403832366401636055165993163321307786067262728455542260903309109362664866107435410363188652050134332539507971694484294301063172676236729629859826438804639699451212566507418860261705210833183854139019772669679653894984148324705524830180346407048833723747650807549663652327220095118119924256204681170872882674624638873450932366182827295080105312091638762867026638596391472258391318288523884417885052839919034621094104064777123598123689062943372460914965064285045149135940478133642015901546685072738559145111541634493267374481165812966114239612363007936918724087814360605347033251284384719595438410952120593424265674855376338313584815056367510874595574867270469182896942130875363161200557869947338477460940216653667207158432724694623793097716290452211049234408846453151809260926390601728965987217888893610498568304414620796406242178112521084015957674127129535984948150643000416781693255875245720271719485840819867130459365566411306281497072464205179826433376281461050432377097189707886060518735312637625056308727581903859548888761759085133188359107705590834081887535262818712583122493065980687032768383486054740137924494078067309841665507966954789682633134611471984573438728463013959166435687943411177829014856088739985249468511361695242368059860514211498511950128185755519661343499424791804528327738691190240181948999066032055984389377050969459484968078117643524953553658317799979296353999926997075849025483811221948056753898945852541576857144450891106639737182337736115172074757261656338249516548611541609997801598565971826501576301000771733113900964944720630805020398170524584542831633079544982720067411059099769637855562446798487769500375235709816168549859006873422627839120650780485486844064061384102241258779097376862374645716295355668549515091464215838418038716116444606449203538994043753621480369753054690005489809447999106988886975534277540090178339090524879856195935384624643144800306763922922773499425171376514626847977473533260205324199310853135691566024370889413023632799348788273337583743910551804572728043035306228061219129940427517757017989917577599399581482068369577151143019829470421679401585664627851353281356806044786117166181136517251535661948486519688080577105814585629960386352399268288803532033320724769080513181104029835457027559916342389702695005118434002795442177496288783311386522327243808305237431655161269739982680308152651780044643987470070088591505842062518768679730090605915560889782963432957396915205794205978016259134921327267080094878829213255992523955129222620275741195785978886319127728083220807125475346017063000196949484215343714038911720434202946719526573683567674158229920363306146036159904169458888874503749770984478143144972199325317945738094746933743558899647656621147058424585712393340048356902515614484814558926477050787864630875527225296275915082541766462634470600850982883994755311760213853856055542073884663188112237603973860883017722437730407311595699637947828208800048621903917717764244127638343878196260576102894532393421216651003382456374783442217621814062499529154348755283046451833717525907277082484126259335182396545634105208004067861140238612203560692591893328074053900566726267246275110598597719079309164655256697166383943675846870513177040750012084678245566479223494780681621444217112933406232420392078957120503884341583414951825321618569581412548033347534169845188765658488185706036411626886711676652321529500092392880136584129605363408052684897746202957506948684331984948764825220644748792137351946189489344895021679079750916586984141137156474628606827399211415815019437756756173685433186611652068123744366439085384257811235981379702429627700794057425844088014483538718711308993679379704317303644812845495945160919241437011915876748439710982170285232019505448195616029925279957997794969397049256546423026713519828264011319287669844696195992902660244796192255038936577629189048738650655932715912663471525375161106976899701290638580436516887263224427862035791160835697044045127233572666231859367441906653047363685119052874653158679951131012701339733690837182673038540085358861649495167581878333038775937236329591890141792924921797607762163173229880893456642344969729867094340141887138736072352409425888238675564923021430745793021830897219593594210529503309784389654706514049114679414379907941008063851096249138250461511574773567468942933596381585067126058135078123300654030334513829742156891028643045640838680384359021648009020685550978441015232907452492635113302446701571257934141143862435992716945186933567668685267457973133054420777724234615340212361625963566487793475184133935705455549556927656593362676703794572400212504521826513737315117073856057365122675067817080992184671319103197281249363492607441300963298759841604763394096613843788810809406209118158524644417457744803197905831693045648999451906165391801715223624366758600099408116983275046508965984378822898239507355299486168747549958450934668595371916819455174138048291384435314648244767978839023909343618428554089841108028285808869907782197747725987495369536979740526402135252089062102834277482270323257279137827983881095106851750610976304020629577939547564410673406518904739362808162472894696484030622450885353847421096032535624536116534379115116814946498303211249436511367375591108122944491275815052044206510964085795600702458743697630655362069645983426754664489798614447318841873852859891414256975785430962305315064433760384121523468574744279035535777110765689259067173086983479891015662069652719820882083646075165949652062671372124113797759700963902038958203117231707156146232765665158846233247369985579149142184950412263430342062012076621505262899604429288347378738650803490729545646460514320969600779671108627323734312797952642535301981599321045031825678731326521964848039485080544082406558406228204293526077329555725884398519614645545539747238589270049482230988145211841767555372096123195311949244530295930561076783668413150968206647743740288702884998275162481492736005074897185155599035139586049961721610216929600705974318526642775042353300376723395879752700442253937350869466653442923533936373558189589112017805358588982664425427889350406829256657208849434911536860626351428916694102784538167232062958095032632380376496867333983959946969178365095347360722795953878197158686908240061899531893742375440581775242695205038814939209433391553379840436325552545996194355999124027307530059027458887778279152469778974344493752982585356010918757107475210005775024854146616224463491254030795546097109917308505140072330009173139179022258679318587701130280413638840692904025831219628387762149294845443443210177346228109390712560132659524020345872291430818827092241487551991638326653619298106701359069691060450849075016544019993438248890914374596309481621634927193116339794462992311697645920858537199643391469713760966122787133063180154187379050377735534708811727903813777580009904510254953072707829350557945776674844847459474553618257484992109863917895087172937205334275575722405259355182874295997371778685115798144685742564708352427694915155293764961439714841556022796152883687245487814195725914019840115213775550019549122886087521967154037011863484248707274543630561747727906964810658986708087742839328037597574973971840894650693448974944071480941790298191011913372510751508517217382201607386641057983932880537910200330377319963289855479133026377433901209792810685399263662744581182795897808373871222621757639990782416228382601545666252083468489333163016200031409722918095511990710890257983774542284476434633045509559380782419628098505554592236571652219237923615507037303059214206552422239628539830368272086726109461323624071752640817265994944537103442289824780773880815199667502279998716925357358351978419907463475931644397937093266931610957152650198046264918739688948568054743699608704895147515463689846286831021484166703069185664569897538876635973308301870658637406831294800413861294281481563653940141141202239368421720730554698408321506751159435437635278085448495811110481320750218647450452768562148995761949647279118473097255960142152956982056557536688363238546956103675683314405441869967956592026900273397383079410963835167341864036765291958696779355036735538088107887813244620529663104787175886483337515119731607267092710548263883788446878570511613323403961626493707051840569211072006878775186545218342161019239981339334621039388600395989683682209644710260292013353979463089067201766849952690511066413130864300636402622510398890811120054407982775523714528048935586539985734914174605217200130966790064750303978669545277472539845053358317964890986878330918252932534889622181063485456343934776873916767011183940223130041485115402155897730125028488641714702442547218596992742921132934606403842157477173480706354975431337489765171790889091507037074861837573546322853796464063266435363843367377605106875834613874710348097961200103025872450189696809260509729856634349006179685007305851345455780454035789731116068606842958407793061041492852832764855007374471933753557388687778933529177902532145714218503715543966769428450411377534239907821399906323473298178465270931809847013195806852867125268728776688194193239267278753987241281892796811322801465074618724861416298909820263356939604775674107224946170313578055129791511681308105558448893611220310554343174964543666967804668850310462191407403401031925279142527177377874792433562308656172911561627039724250797104275004267169014760652088592945596846349655090217445839195358586913803303424278724290568668809096129485843991260971921314947168190924715013356691796717370138321185769819067190148032346706458796534558883421434354518609970634627415567355580064688192785657798635233701564006067479818209555906016948394418523660976878620275465062019257116208334702600564177838854710683808439004372291307492134933710105021748841818183491717945523762162204244654315364767822045901703120907403176431679360876961822128318490232983239908626962496060386180374589870606079562388165361902880628844044811833784173675681223120432546873542481673785362510111637575315043426858999986413470923722023800896870433452000568355025107874550604282716604269264348654969859099446786735022796656625158482333715790669107949517313187714759653836977754565503989088500958631648448843024828464384733564394355194544746148203043188229616104679164988127373537244008675543599585020065034973606230810634102543789379012583545803119092894138142160026602238345989766399758414650413264954436777234012145738339990600597341469505587444533614123814301054840994758394671360496993832888832443537714696790101077504702841770551834073601675879326853160083439881301482681734004027229664280058460885976224201673844912827831869622716171443836785206074846099165694673222272978859093702042348473144992636049460150117453587958871821457667089327383571345979170176693661365302559336902680404006279054462793376432293495272047953484065030721050552105037761238621821683200628730975805664495577956745718050752462422878343563469724492080856733350301879132512684673150666752672806149597371860950673147523015291689542690350901575187066817812088188077138771287003080242897703222883906952987144163460760198463480746511024685231033817060516969028893727685468427020112777207751641860525145242445446474811406808564485754775988303745389213646909222047446617272615771961248077865125048870721738625389896337458086149083787036976944361865815875303718489416902409643135063526559043346693638079874978108123062569542783327379017932240500829207143466094121275323101556163426874617653238261488174533606946147648545643963524506634831392469737767028768567276670379218810356970107555320315851162423589266275167613876417195459028508783408872186134555938336327147558881737841430182981101697410856728843936177655766811234256202395049783079820346882864357706633673142483728101823896488657439299295668452697092673115152278561651288400603187482280929835994354442658992346894415588282706985721381309127614305890367071370994009877437942460345991813303389818332565850209178071855905764787273539758588753843757369674053945952216447861309589751776914776307991018376161842281499372536624282347245387243502938535024606208886388307023580236549117484280978564565231403074306369899657869900607105565805981870927074247042101834405322331903014895386070524871207442977048395879986583098603212832480491224741294809866324248498057812777521017328687352971945459044495068657844826603762988670354881106395906251910221774495171743778813224524875362194245305086179114494129815181309776448525143328126849917734872289759494774584323300785497736775110874774822125727197084892303766505910316033135928709189659903623454090962888180073120255610161424138311589222783878999311846427398367349464785928568021354046079124062547513892165410397402806391361440017571169168154347036064276868869268766646499522381819492780984337622719197783795985347981572504362513827752968351141586267985310172941131558264832429946852885536948311779699810517240188908078578807087446735109487474653749918442869080966944954502853976063065072610794301864917017041193660883472313605594726965317072616721831025918861077416990858190009623954397899486318065813939742220758404651713247584681709562529440165257592252819964883453304464676932178393993642389490008291642447370056754915005536084844985036143449046787875975771536345009267470820357265719464900350747449689163264186450652869432910797799192320384818859415240555205951846833540993807915933286712085521028215810098270447983594209261869361425966976488698213502925786731806178459026990795558707498334909398857358074745974980254071491899258786222761481313415601044924991646104376772212695471348114844804215443636145233296607677709237911857096472064655129303696196530111446289711767660245790191849951416506122897340785603218939774182218714502251814418168666199486735518354543281358350673114278157722721249572212481666725531085109038331353298991341490601309487439936694863219753316938919071945373856609052875073071133895019414601806178663570254131736263193759212708338345093590296232291139060688351861001117744877525812309164436733301594299091091180820906883137365537019495060594093178477444874931828565347807578778709418295427570950005048942076096665450844390766963869023218687693299969793373244190184906237413865376970134767422621017170612871323915376935298949610214402475843519814252004449739120729731403322721818779019298354168515996547529643636110285441479119156748739655843731905833203703304258945668183378128059912327432018829759350129857061177955780619487071986087177466246458908991139948401473260383659237982498353046301111958833057260148841758096525626023300805565497165200708220987499556030794453808476814719591210682433087924936045416778910443773160776626092054243522109555735950018028468166721025368879107050571382183214139929750522502500361270765733658229734796282582218888361105503168178238470410948597687852693773958049382524168905741151089554818457255677255750962033282087398088596158869416227759913334029474351695437765072059053946854488517334467118419590019893374352934424224710533665634186820299627146613012096447125624305710995099913564301000520214988648492538483701018635596876827770951848720114034835297589507087149452137501702977230827834657905903588094757964244063457582534376732679069186082718323123736181631052256979825493692488864942159301040110446744128618401968160658979565246709797953021609401096852960898451300095335354832180383947085631851778425100144840326019706054044701411583857223645942736445128428303646105048318320573762036329291685974023514986795846825382972692494558858867221567111368952779614645451140221611914992346962403066388900361978113622757685403235180333322402344691496298249071866040194598701019978973888811947635615857287890588365885165820144808891607776785212211792600493592937612438702220992050061612066914300173132426446083941259494269150857416841540768708256390295530359589697932188099177795456601990693226178488744429507136979842140937855465965315289559387623343228719139817784973012759523454300528335354340523178524633489353392260861934679891956984454882909322258255015330338656925932659902276377192061092026810373319979368638210744051498799182502989991802997819221185991049619139201134081999027106145678124556113724333961014619531372094148810895599152757300856400831305899191256908454124003953914865373598264503681748101486057142094068273598296939634995120177852202632945565751589322679823144912952305512061542387241170454681084998606273645596005889157145787153016401282761623459724299723856535197244423204369543424946075348565384585982349906491180398323852312396196167354370576118752129548402754076873989979043048519499218164167113074278835884252797793773869696658528107964084849092613558354772102294953225598954901829818654757882406684397708989900436068568817398730909346546770738382328979226032653129704241966372055895533070664699837332021480359474950402532305703488362050282151838626491751860389088627047191360427123030135076895286507495037682882930969469417337971664927677057486765739319594703563119456077221782231362476454996131360531275216484373171113792355137345826249458483746887717034411221309494647547054643947520384494917825373495244857582461685909285703992145545579980518302663113812957193362030021013208516183931118658808325136945998835696301094243798981709287890056971610256115408001552134270333304293665245309929691010228994037935282770379577057316038761086871889068353553865532984446943400530420611578518621738915416570749846655795388328440122529462650324382428078187498701040069812719226348498080178237904147720942746162881877217437621979396309523695259847780600306257975560563255868949822704735408128424036534209476744187095863848234452494469166517043459998476416408316738510814138449750769983230383103074552540069509488124997252822566189051539423654758256411814695366501462981221582983696245732598046017356512501403487855765640182571705587202243274017855902788706062405043938563799504395587555066834638914454956999772928311629768478179602619087730919846649407949005827330476687492698085587743233282997191762879365051486273081652816482805455389868418013790424026604424156581638735736998075791320628599629421215753814862806237322859956252673121159006228010843415362310377872590528644681670785369424673106829795035659211850321193539688279535796454136733129741390659512124107559370879514090074924874737500623678105935499126246535390393342044957233877283481835293617351324454314069651854681340236845874020278772316635123042763922892940696578663616045707226251431406702167090103157729710599198639037365712332158955663156986496677528667180259929087257903839489086500995186727419894991736327148919979399269585678678247959185711881030251365420182662306132034209625441461649507346306860289846197670884579759695776669169432601034089672478504888019654314591715559963379865352429982009026408173004995060706199367414101652509824082294692192303854329309659520038894098690026871418929874916902409300181387914331749608141466100735592964066771409026044474305866487486138110349587063788491062796578896510211251479828170826568201290717716199164995072109499493505309283412384693462496805512375907616348301135196077996282516654816793705203250778169294450076659728319846321938065497268034769500623391664201627193324576765832138871716036662230335183931635802498943949190590726067704080541061278014295377250421255630343852205470801257499653648467013297824165788336216082863217312083218654872049160461526306566022058162087419197453987842122106085235443680658003325165066947661822439222772319397407587729318385943818775699448396004395644554868304661439901459888350956939060783189436378017935841810407047211102985667722062326464161110220468458000397643732458074357725768471067986558674345562547459788654796747616015817997539147475142962480674477223308246785565192152700075412124368238705868521508414845556180003767733701119013704999716508742167168748611694578815119908372666838163883133591092621274623470413261504023034388160393520183313725653054974520463346498948147887653461070267919978317651326919984753050084004226155426456846112802195760981024545035105352214063192050605434231737752401749915082407505734395479276346986461900628927269786566843216676080518299509444906124375180078861592120828266829922929042768763521131201966540857826207489182575490784850332566175821670515978663838182767992369246927284119631493706701465033181679963749068787927023130707695254653781334402035758408384144804718496414895437355109423515260772592667484722019165632471411870536957177496082544909313836775765214655066942717554932439179285781085695858910924282788460345782925404537517300435633241623010250459423232450969282532564654557694030293975916364017411423971350999137906142441735430621616095117885696397007151202227748007780240608411145216991865817245021689190553988854007787034158713017915777361290145280601180115080641417345076690004761081803251131931104896083930171957465079618946612180139671634478096682575662143908385659190017673219767422444947386000233482688859897522834695588137830279067176229958467362620246873969953706045577686576643493858541975386355582178227118040757513015227505709459071927604269341185772602172721838766000901332284187972118879321522926652777081820846405496080502571261792011792941171032579728435190254599035530928067106623322949005735851085584666742566963656603847478741588320968717145796295520768573726502494168474114753516506975557892687572316884039382341846929335419889049452853565427303715616068747176003652765134838783630817001476427382390625362053977448049060371026958816617674131852180715524956581899020250184665551615904971457180557744530017165598946153436068968018793835752417845032640568470345171212677235300053339170193492100227022771099874487769954709371794590631120559915999973040857334501980427408973925279248388941500901118975653852650105925038843067207443736210612114930204400516138631525960280065458224880341156735494554566032049252912154550509409411418332293288889837737513705125890490282392660334327674140505242985218789475443074383203430179579399998808949690206530222734059946161325135600243582336223775514500358636280841916923614229676213908477589371978884609651378161393558879284734518604317306329724841210541318684302835319320314150327686355571105926759395306433735691128653870322065377438336706688332581394906399184154504595314004504254291795926817769913178811983248116492127595820742643433254302296506503100265823841565456859982029933329599443869659584663343660647374131078714404025635085465544072382546045284882837832013147613955105248790474860065124266216291689852437443391390055244314145129135845328011368244419749645801651920281016646672507722176959175507386161318133748014189243188468550337075393198114183540835615649411064020818379621365302340703489848759191729967064497105357729187836897308430104908141211213173823222079884548537638638126037194348969465884211972179721918355030306531573209893156804219884782744547041811746657990535197450528447125707853664455694920418541828275601484822854652457585214729816810301658568723924062891783103517188517229991809178358821880431731728371268733249880901526708101441459107461496777374770608092068990597687746228145020499013969881292842798572184743774039367653566479093902466985528742494975003409735163451213447269825718976085924574834927128050757784840507317828350265108321846852432908259004886361313647323526645853121849109096927519379634190363431874554504777441683148653593087033407966067826292539202791998481711556551508101981086125333441761385402399250692049002110950333194139352339818268938820552970141433288532596153209797320423069389244823786063259836671924087670953083884935922907834786276920037037981807006981097298604355804800977756574599339685003720355259650245938591696356526529920551638365542045673488558446034485245883380056648413886835244721875879436153559868290536618206916842482958800103482934049706353588282801878691566128949290783518475895816977586329023958385306396424516756852525732234868226820577387648206781953220560537327956039914930655604959803143739467073419424923902973996273091309810265674885475844950153475717041948040632779901673846912508824730869974440228125405154702168555600081116029859557366245355311702779628330063166238871333598549963711278683150339322588669839093958569589665500634238267600574031955497621080273979547419113307175868325251782447270714722569669029657940492534397598256866404921154643767684124036127982117727069292912461341382716662632072512367586603609965020249057370389570140540963155923700961938447726059780032892108379823502921530221468099647525094839553268329717567181389008125811524768923238372227442888668820022406475919408372890969545305460051772828973253156893514539573805769629767706858949791642137724316211465036982981809793734457283082965523687784999291098918528322344084049052231921401569094992073398169951963181381882062788678925550179495414079602923336897333167590356418313473128305371391893106568092143139295312866460710427005214371323338984285722422057116759932002834875707629393183944669514573510428866990207189363828899504062286095426999933085775185506236653234456440013053318772665933895103030569174725679763454752661731896637419925252506789255312552457332801629020164827207920388007038834063770131740421449645919216826919666664555798680588886231253357831562415122416977825287644766333927012600436046833720514325771177199092163695334800769449917102486302517174569559130902934501090568892911295814495502873944115859363050322364861849614674895730303242057085688304923176670169364539712567471206504626096681774956192958749015443529736012158955420270372246112358644902655282975651209784694710270091828471371245294077720975003247475037569194415077514971318231947288114035180283772960712307824623856521445063790086995300248205594460691948008702693797025429225282822746504018442742279833668892143014377833818507200057594294190494677457123128504509415812693785455909464870534334971418445200090633474451310437691244418092367293727464078641588968896484936975119617238991256299531541561993661023737305274956092458050876333839312274214133790379923501127098330669972369897206395685633107803001501477400824067848475084884102097967223454225177542390919354322836284846867461966645780941000507066384409800265474394435353396965298036520548930504171084642746576034118003034697211143037626134762803800973286555842597707279372967981449257872271124989919938811845478026173267369841877092602078542313783001737666984220685518719685743861614668750086293295624848149970196950300189028439145661510510943104482195551450852277792508476770961948541651256736729937915543375772744464945481276720356992448834228034976242357306754913579256257159663608697824789570988813116667097659612834306593385836879404792543573175958525766228377502772762922568479369068495084530891287936704158498784889870734059177247963983046344016938720326474746192180033927086128406177143512186949712027479144389279918814959890763701404746910149702912739730140926102398680328223962760277894953321983826624332167957113813344572829805330636791908527667388077845904581051387440020014005839379247446632349780747939170882913234142936909153415562253820201372656817260895908552305880347793360849872345891412838722888459929702745041327702604483720795574501438693900556411592212648187450905913078331471701736010026728314540120852574275804900886760300258476186744582560822570602618821417051333629301692804624296320722525611457389399899571100375075356058525800311237497643021593008735445872140338925912750403966479051052503860250978128544209197574134909902535635383671242717020384687317740465929343408395064768577785014605549318331644368745459098450772710577622166490004794036459006531539537348450969565151534787905836557335317910709501935570094624696523717688880356456909658725165944617025854226168252753605035419069066781222117966772779402989858449918207824241197273686374991988420495393620104199686285368108255510772203097483059478367764688856722268006837848512778133414074601283383268417856640000966385883162518218214452399168677621775637635577230550111566900736818583072815809761045267922256240004822033137419389317495976052147841668642154503201257195058084805896109901316097359825154411050800405826233969378402963909445247995387522051062463948319275463238025282652428867840805487743539430571670612410406085378249593976259607922105970223913414571093819579415492811402043295527618901625797445198711345771395861868993351072892455890590298512392054520574249271227021486989348337210315371934440243005550552332966085503413274231027454418838382010075149121782300013709834025022023770350550528112519991972154497414765304982781155688038231981352874046766465809090013575445290808485879120906686733344702511798568049795650666968240033015347697147545599908055295895629022221829982213797735640191074421221763329448599157712877028039053594239573305577945768966219648046874755509963188538793327640376972992750523906518195647725784348433563938125100854794582395940335314195260054832742680202231687463665847840122652304639190329068340178229867331026601921444392434279584752211094755551714542603405326056115478663947995221408477439816006017065892004287348539888482292302050637139386176412698084093199529781619413980734414979491269735858321078879961304539273452854956397179779911151023793259205312522489255257822708295632211706164129221733581681046583942774900325115486075030346086587818314951246985789722318329216972093503843923922139425566287206974826909225945986214267502278448743326206675379156723904999918260653317296405254900659556522858935233946577173571845807738865120949810406066876120142385269315503076322843015627605564113232160575762849098408929715100401865355593771493232935473499431789378459441158387321834135895716555364456034105288199254430630233204708760071781346073705975801000126540482816620116267785476279885054844259264259925294406321550526716373419237119569141141188547784716814838577649503459793981756604365295690320416558167524548509360492295239678360594636778727775313481409913119376746087904076637950005518986185644664110760666583416481281418442234921188908057164561539745478126607373033168553221024761938316410263437279933109190210188491199506043161868496532637335256622571053067555928736017605215494910503525653445871415798536763859889246210774929701599572601938079137664266825343734447345601985262671091039097209756284194861573195577625082230176006392100294411766569961250410171455225603705420431767963205913907139264237808247674971209316199395109728038152570175775786894521450025308132923003754961737488987443684426688027945840636164870422121665389813217761383349010223146478235411125447966368883189063026346019928764318383047149842936885970162104218162192535481929884522024688948906352745327781017778498857617746161737766168071567172323854043215816465626593627965872384312920527932674256596636376003681939623871417586035068866044696390855674408275191161055325290616609011398809231697658270199887179326383388474056563345365381688081092029366673459740148747565700378762977980884122654453649225191119135999429060282695788588952138307936320968582062290983860154426430829287825313052839285043833230201134955776968181554832999408922282777734670783876901981214556428518513064292387982841848986318154852812397638243358435932100620315478145229433826314309244960450244413010774254153355622503093484342999329357153997720464368820586052535193390862521362053615697399411495917991708629323221074269475584556428685130678430311662793684666995446076153755542870542713698371618086164995651813624117115938044610063409658142837816610871551187783183070036586536290895533824456234855878956395604066965329954287862062553331429968784493245111604248175390829398751261540981603958172709527959566039769078702286059111079429195632144021214138686277854543926635107317543997709814706682813250065070681432595257103939545504416121983782659709997556773580963779597175934350688782148598160108504914380975655794791797754588121661910668143509595784502212338788788988070626125716821900038888703597008472009523125879205129619945388949028569899253329504777697298691696634784050379187509518219001705403405396838915191023122563348619653623397229585076768595407351320257418054561664248164344402503706952331054625658460853734423773982378936263668188953877480485794870647851848968797731525788718297557373869457637287770343534329731322693227395502067274081423371255075655864127042941273722574595345439714096730743038110782572473349127883117934174754875344415370859575255128722582619830400695742768546339143726889445560998144629531416592346106418049203949135992451011735125936817314531799769891842226030540981659782535730948324458943631867082317941205536810838293778230425906610691660826603249694303259844719722351777661768175316453607285440912305160012453565299540256957183029686131433397887604707459081959043664230792426593387758997925351184336910820298896499929838766462151171869253268074547405383563796037417372204681772282467452801885682522290514046046375553403615296980447361133624804860623906566901361592241881243855648808953988115916646046933268211828057349418709639234953342115376834482020729251588190702469229153174532519136884229618508958162838349945980578016259719274623201139050424272970533771651115807495100687318451281697073381132081569110248051697864736153641026576486089027897646947497914512253860453421522147901560870560011487350411205286521252940069741792797575578719314842137811425297738688489295416241651279636288214941831792299136338311080401666489273072058824105271913148712795961073869408373715175078869227413656527671292236398441595798795846314187752889383606435949230124118506090820833680604664621191658272276150803521400569843057491198842213147295634834611146285854724663240165671962484534487724368075040743338487961692846588927679522243713165411403073544467757334872599228383903768439331257511384933440592850066041579692703104738607566054294895885196791473836113694630486752347307428428113332931106881312378480023011924053613593859609047159453714887574170185044095613683676536882511236637768004411766553523305200683685866897332152628458795719054464404742305338882007873037220802785547328599118358633804208388076159068041117335974489742109487651093710045271198629160362654200468393177843900291618683621021702367741755826093033250706624611072292140536466434360775506799453992871604037742518433630159079138108697831171446682095182625421719006313588150645344887588592241207635529311112406411954131270501498096681988131387696142937761389340078730487905637322614797367293393431392301674612936211311667419387523571931859175589048176858665149670132874320693843476005069671461149242222396288768442813329499732139839132805965913554765444084872668564460570576240464807854001985650155416200226179331474057412148548039940734905154181755079042073152587925784881765728665051139901720902341652584413308636820046767541141944026581035711595402086898345928975215648634714444817077542663616599271220908257088512457343200957730053542904545816145150960632410225045523952453450394570195529725213338757777937457309162934582783761482994386918270834556067522112689349815076896741525367523832272230966998091927677627995363937720784573850732253779730060421580636677921295960956370912814890519748895149282063259556983765045364073436353072117808649704330588914391902804318353422706546351884944410596159430452963794354677684030808536316369898825552185577305085044600002689103767303162954581601582616997096025953446340855626168677187392877308122895975234739202818092346803121196870346718199711173406853876793713852893434613409142193145662053042322193623106170102804985312887966543546056872950210373342933678199961340595446423794932528993391569843646007247696791840204948226553105579910616760733753080153511796196762955675296491575966831046487821307107099778927961614903231391992986781968020527199681983802953410097216801035880892302250246611403046315282374321299805022348827329997626307273261444547411141473935574370982515973341575713865452389148090362040163450377571451886415816015322876790957574043199971727527954057614783561349400341935925952264223031379782062470449827026613215216340400750051768868878451894240130202788530683838336128492744977660776143180810700761479560182388058913426590556230616434220459915953214345525569244081862316506599323064337194824896735086907584075391383067239198307203589630166848134302534569577231071726840429641942545000860612884540944967988519346403810802648082493516473272175562379523493359414281107471407948400621364501792805839805058008371399733760763003936400928098776012705817864317292500921999627292016062587372773670354079055081849733128228640484222863412326388188852100958700264830984144487139011426852742234003022399611410624963595875594324363908435204186754974386838520032391321927805740531008508616004976143409194456233491199993109759971566436571304529904079651091411902887290165493802934230442214631904625248062086378177854037873317146745685306543082061407758726678898148828566619732243626445949290165817342965004735536448899462031645379432601759539550236692576854078627806687833801316604251501535404569542472450248995548294986281318565121769233620328753504930613535966858825954794241626514240198514388086554142313334937483417530055835457261309696803893282058511517438036712458207725396437252072833999974791973668246853376073761392594336277640600409876179119793046548198695461074110203023401559941167416472156539257460187842803678869648389949986279783514473232406298090796153089251391395883656836902460644733129228453147088846238823961784924348140528420143424501466357262189888285300318529090165665024195535584492098285151757123609940346731945609153859776111435024301994614357572478147055511388777519735330692049727401515288850953055081252428131191573854108179566011891851900398300702911963006290906814130895908869518251332203236696407587861871523561941206176081951258113589605853818538930834232701483742336730529033800432766231431908374326765400999257774317230701476989219869410128554395869122221433778466897954021688174769895821943156423745009566080503095557386694152872761719688779950028559625994330566208811326071639160664077774279988363718914318137773349244625967110206501748857942634258820421116370758526268252080382999853772126802701117899679036813622657436190586179356660578285131957298783222386987100829534509659949268551927875036857902776040547219347259649738181912440005761588335994886643360343570518982912020493001589866151080846483829637669294241690403119979029834396523551057811910514517169676191572986405381731113002548256966173995140551737170781443623621156469892315698481535306053239511340222065576664129283604491714328244675303081407189415164984974807731873614336020223761091332943611352633955381836103817808398508863354614554896163367807555793020619275007850031879244836180587967526749895835940626714664856571385186252415869658302076681038118765579112097648049542113390367419850746845829243352854033539341702013018701319981863327749175619765730570052223784648053741825535077892150584719181987099945102206866171086355049236175013990806470957617463301261822860802686728113819892613308294233025945706538855204622310552312255429885502961379025515720084636411065325507933741639876618305064864322017152492355160201407266910833261874046631622705940840543209930567239169285730548210029010151951074685465494560519288760349456288604451649834533939415211168408632856395562900241031977649020846230199988342011971607967351416952175888574771365940078061573872713843976476773118036659789659891240548418283238405099888976917623991641733805615084671921914578295245966149323112034309791172044579914297694031987143226037174221987909587506931829791321668533839506238104333132950163984456055058545865252703689256835100306867369714821511603209514410101766972567130577086298693358253263477913916350736659685032130079284810371856587014197081717256984949736794553940945273738919284905144741071281562381984655484071252361389100053846975851076065642413281939575967622773121916176573784891759846549701250011745276597244212493066522867000162243670532041876390967237934574470500508131860561610823933934710623269643498750166315356466241830213835606432788427401902594383783573562505514396567518753592752490802290257735162925180060472085174344973157270725783036357015428464114072320485957091855254923637998495098551375341551202319324311745949261749275128625480167524373723381401285496470470869550242606917082184741898868956583432357961531420943374320970939616547522952389476373913966996461771902807925143290423232817401110885949353985109149467043216552659268101953350021653807621375481217528024958057777235232761604961302677072335751158521649513662166448274441569451358379335645670527457459519378811327696504072492118573859301020681270576192253999946321904602024492641971748937327064006131357302305737084602047900054025619969621884579085312232617205089062791116835371170165857946838061023408717737502979842846683181496279132480499934807114765231820684285603648307181314802480627993267242441061761114454732474363221620494486719997639735985027712494777852459978515795355013920155878350792570576051929839601458176376099944965709245982773004938813361494009106386047081911608744220547476886466594375503618561424802030578243470750986419841525899499181457256605281629711956743105882307710000588040742656727368951659906589811064673889832471808499606404358006416083337475385777309809325981673432778059228072825306632952249487846256308983677158731802897863485781881514334810324705955642956617914426413603777697618750402000621092592785054854253587305091912633713891663188211029900712563107727057667496732706475621217652170418007370209787876703126647442951280719253101178785176222740804275758264049272350362737223430893964449870023442290774655456681891491009279072057101496839763136438261034230250542510378416845243007516255268944426459566741927033147559596781673760948713569920615303014759498224852334077902005949361620922334752592128701988081835758350237411887558466812399838276121598343673804963804724165199031744990235295361954561570698824113344301924663744304295874009704066180363738059729494465729932616708252013628283560256346543468821402420280389719240731584637002585489812974852822166928998288016168127621321525953721847985132484489322559974207298490489088237879000652861623103250080784563979027938857290423527068003049305187487351960478899434603026922114834112398118792716024548749059718728724362802607786638449892409339798867139729609272860616583228397294536178401926740946230603464828287387066742385696621201751041277737246951203768369883482979951173880502375543204219682948509356723102198182397924409494477346598583037567693436194238806763234031176734467682302870883880840404227172379164652956532760665308703312521419795311346696208263781718697535440620990957828165183974454747857758192135072953702195439489176072230363883025531696232903630697617062699551252746478947063597754397799124205782157017588625750493772962077263615409671178740856387664464613294783396513634951643393379709641632815033042831175852843358051093502557906087326404055497835257564576119789150285947174160035963265955935023709862466023641857076496276915873191760345845575346015875451692958117016238438214054432350099173979831558832408794313927297748584003224210521091642421069265092948781727523027883524266100531649491321235315775221490903501556354004105111799078300413077145331481208020574866451602575033109599229180657364187586485377844559706446426110825775197134866801255280026012984234587396541319918019199273656085678974936414707731184013192846219176319131847669200000183319457115227133083619069089411832408678610251327325710914812143235105518596188076976636306736351878917393900159204698945163863500563496843144009501736915613272343339440374729777913396805659416823462095426339650421544977921762256087426329231772478831988809889003444019345969492386168294911132486607677291070576936051405066605769677534584119995725788803061471763605016444895972812770396261608095551995336733815589501238073402003627836580256004292968399037026433091919186850466783292534948324188351309124777901543102494117177259853639807981813131332775834516075417842021866255240071085879579889405786786930554255357152991868565595294651211588343106393551770987374564096658303969982977457818582733306076747328826629521841395175512467871007076745240985170219098242259601171007243816634699355573176175826732269468292637754713327463799477526029199621672729997448718301645855196418924409030793990909961835012904053204935708705178272342836557759820946916416512606304175497314094088594644114917802220899289950687858476788125915140420236956586961250307189686012079509162782085891906681932488880811272546747356334485231934187071265906031560587202026776066143362777708281011950149236785497906987417545649843951173033363609833568563464394487771014141843811821107902673836930257220383297239585894834387997745726160470728508711443177958963141941678604556831534646578004863135439802776158376739991105946994238735204267876022181285561857944705503527103587545855223678974211886609183747521122101330397586302562557751107845987334515830824597007598898248418838203089607973851964603885902403276020055105592584636424890354298940463230557189918989780415560453475658519823336526760729076450349878544002279133603716370904022030321328116985912772272355669770666077829654643088579308550164134231187805673871973412103212800775430676816810511666093136985759248730087948357023068117341166090974354327421362079612849532506601335661906607622454810144638513739916602297638188131304998316801493467686197177859894719941068257346293852956057182451778930773390441455910506256898279493481650520929444113527375266742196560790975791070789627675431202383335863897697279666016475970625162719970490589464284883199252549861299349180883055632741635792972784267052462147438555515073372475520416169052497426952090803561398721555831077531674770191969123934825292402986830036711980363668545556612827167308418548149172919597579924360424627791720874747619581101956242641984926415123369778421946412097319257540863537694093411605302943159930649443949032354692848058458016336577922384012924952464372925207261362720409273385153822414363174364590067012837270242452093864032846941728703812354016873633364035350300111092363009783733161143604670420865370145065562036640574642308250028742824829693409270875446785514938475436304207885421981608783651911312711996511990443531379100515650306724420054962897784006702585353339884960925055015839862374539775355147495287646468918243125611913586601148260490502802679571441791864591190413468168779060200558700083266699302834016089465125604859900723294229447045111015603181877604659551920891991077451016807708283990725235989907202766703733220148741999876266489579996434792672355521445391623061328544376982982772548838564628180438092704918087832290595456173026757309533758423886247835998005985214951896749502663371009902887703222531964606628561083106503392041977482301342959726983036948292072409024038354401880624464565930568892252496323398452064120635407801818805131466872886736281076201760384987728817389568306987584606085040566657859192735609836357369923047860223326723358405102329258167812352940792664128527025900714956865932910747399876414156070068493919774392206246184371269721550604604543811356858680581357039993778936667884845729855412528607531117895395590383882390689693900771832374158084949412506054998335384074548942490469816112911210352653046047327110339762733242288754524113222450544948071966784954907992544227863098914383047209968268232854422598206565371286626195979847255537078851405768526707974765577332677180581721528410079964658889302825236329821800655026045559803986636961486519585710707771975653273468623632718416418802539651686955467216130522039406996866083866677855643021731456661379140956726665412499898619896081136265875427106708850955063914415562768818694527807102533787596061587312672122279550064484493942179891476984581159111865744724997266592139561856285364090406160229503807422401257064429667654322171525608872881674018549540232506703041019247547170314126263181748900868752056415481839193484045917376926598841795346413977189608632304048752244298492767194313401371726963646819270518529383909110669805903327053571678972932148660862540827263922459770493575759223786065195465962543105752658194333767387845963944588940873534322013767872790356016318424132924560577720669276703853078692978881599296678893676147762333511589571762976859108620743791850947367877243636972028780949649440839315618403533832228274879978177535210368510550334423387317203640608683060754579748970915918763303263580513667116830939439357955450253843442936799319082572702566939396751687157584528081611706491356865168037691704905233322691199299934970590703031115493342996433031302728983602246387035714814306038157490683428627473502853407890164397792514840757051053389181153988819965069765915624373591031093127928545926199457379539449709728583952752745174844153593636588159203275293278040579416186124398872859153937400861481982171245428302418205295096596915134527539566650036698852892062601020191637322908403339643896881669578507718012718804980223005782788031606226002020434650752276975343957688527654854198173257080616977583614378053692783108738408844186479820412003361837006031224190338441508563913359830053910012495523918617123053823878459533514761791533778486187522956166900638848808862721463891990707774341500874039134591590748479858257907229024055989673259880537508538288201153605543402276936762771767265310002908386986653712079902553339908037168013327196980051655165639896313895291048394771384996205487839996011253746373485372574563669739476139458251911363574291149093094408118751735215212593282098551890996320712880668014296949111778975873232684299528167317670362378052377835820206577814014386061562803064659385677478704448924194470613806139863294792646571428463374844890952479768951748123938782832683542171282143026444391140528034130043980955799293252596411236021921122433183975117598906488251689122163587944882421697796862926997945227972250753504374364638721486112302325710984665552408272617351738914518216243114609616866669816011203497104369648778451206804189929572593330137812020982052712617012391820300097037201479209633180023731340775231164160576529774341274000180688097147375411302514746056232007974897422091268669239402138636973754417581184687474512905474695111585179857364042778882501843743181750663016409831655320371995723662830710013233884356067330256709902030469428046316539022118220878584797382798846536918794093722006512853729053279100318516466043466457939348167279998219740239198983791059606397246610477321226017882467653782219881984215352970253347000640019613417514859956508258954450997294871121899366879836306848373511898047905775080159879234690803871979506858906757954300130835764263559407178428614895741136654579582256860096766082350859591476306295269462305912145743682931027870887200599163404272001998265591920361825682125066374859704844939979311792608144802889130385972607249702015243437920792654103140617070721804853593809042114281759419926121996047372796635613832148402265155379237725483194954247235948573348010377664704979559053599055396368179930741896388007758260634718695975327435838106358075690451449650751245086945647887093304747851844770551824579030849401692493021273429318938465377215860261622229620114251101637483712643432651202771844792639180724216019509413082084862523313348417454823004160381040757434411034939493809940945171365800285179615632423233132392995428575989578399782761660155298148144782247727527847979902484577452044696113056519410425452936021843343792540914262083479403672860118953725153376987611522563127932294236556185531664264715858114634817481152439279852712494280475038451759235163369345925413887649901946760543641891033508412890923397635105184566472275724472626415932742566178304639453892718950262606984914184012185957943118273756829151877776707925731558431504787159298091006893759152108353744756681762828317549314472314666385120529011630263608243476321053708748851663489852508083053015114762610617794764971404369104838108868131996508580638137352566711748532335703992899230107261195300180388598465754252740758160861691066444068809776935808752127806003589892198206568636098046935910924215404667980294943563084418157562820097696264715520265313786642504051461004309699219867018174574541919220061321423907706180345855199407839025879887474586274221714534679950231506838211712426334364578465707638556462423281430992879620792899360507149763957047826706456714299042729097871425311766206325584857286787328944328844450772608354724960379878640161568261075449727393090310359180733459747052996019797127026680203088697196658382589619071468801745744329661092727144580248382488626851716098386410252355312666387492863099905335873924989242975986952727461781592348782490953013274763175941171273456528405008202211042954806867666878595879327024878951504042534522322293816088220917261323055980181530418110197945277559803228027586017356553387103112998520418172064832722324099676435439599614223017125146305719315744947153753984967213416823023944078250264438317311722593737033994010814786661906017274565808124569838265473174313367918248163170048597533064241081144376493837585589931560733318448749380934045225035359217541307369093679557654117723774002674845673079823688961257855560629919395707099884086841394656950813154619819684311433554085060615706218657925378095124346947550562802283952325859575568932658534593105524879192704714976292731816396442211008030211329657623859151984935891682972929880016132528788660098005469576235051562905526072538467760548466338841469366665161285533654862696835451498761393065047741409854144345163851518850421956254452482238310991649171495404919072822239541410836238587380092965773570376451406396405180079095862631534046753791186499639105327657675562761020820022175481400329949693208942435264366843702956793899489469750245998204521917572522944524961452603335973895348427788129556853384264324083656160304711419243489978731600492021686038123799378028315788248664646903242456951284008297754951709703401082194621805210362762997251955381379286228631440046754137260883519697252232988923902212324693930946681233468410413640173922645632313765121738022781569273762136445427831893148808016791600598274890683396232131899068897017305946519596182741482072809220090467241091651594629896917003550174707318757315280320451497803484303403002942242573948645805081179457279683562740285554280381488422874196249952938405180324310295645417232016913033947224759047030183157258430498544851692868783096514308308785578034661240500401961048955940205420556587720188858941759669557453444547110579109047194093719580744116730200282090119644056259407436358900965911358772829015391852684620323663984076475588016755293571501656504660472565551286813444472429117573277709539852798721691905737073370481508729750529541902709016509458854272580367058735694432122720385792896099642623988994793265556504786797527862318501105843717795908139343492719694628038707343219151830967570578326007518156265448022118904703741786921228070859390623694223661950666422193499653471302806209106215842079252304281035403367850366465391052697465083965632037531818960220112230686899697746697370507346341148198567262434910200397566534402097084454580763307469739293489762682320893003638537641218153127703962759230534981875379346503763667714478278617906000075705570163771577716918927384117279294461821445623873902376589878157949820976922824024090114417913787069092613197777251212299727724901571155373397239067043848708679449765711812058159254926734344156641181650383320631182992521234280826405313996120554158966266953815624619420999530492641038102887871221333141973324490510614451354477909488967351998020429125057525637122393982065983575814855091675885384666083797912627891438801383346889903279775746700686931499712696540221099293485552638403993946799878049298880581734208674532430947619869488539945414337797420564748272911313985038995131587556591750906380978947384263088399644752441654415216021150505639992055116218743471837387477068087810882812976660712082420340936328141209936409940806348135003782117999110880599888883242621481480102381247084572345436723282379252449543758389591852828230935102820497528231374020620594549849487242884959254722177172801456750480620018919015255761546188760355306785617855104114562737197256602223715779462675956129458490610197159006079569654026039147487839375425020177275827802412689423918709867918153144233363779137000993714575741451545411565414556436892085781413733335875494695234350593636960974442460158020803810873735154299603482640166850660165296882468249616325440554960503511173742679732078389772751708977252748188241220277377342675199795083306656882963432825326851851885270102268738319230268820510565420776501864611401712201359610787700682633257684302652378863409582899925202806560142455351204382019068798770685504578291137768147761935180284961457729635662431773620967823252046012231762714092871250817566187855758159746314125367512086866810066748501494487314621878047998703023184277538469743784122543451695887905576890953887678305102669203698677936400176597557666276517040254720956034266866118395420548101377144393519896724318275260442552527611257147813504334111294543770915846139198068664004328594049600134691163195676131627086714815438500196103972692381651784344675942183565765260459099316815188794277175018998586224929742154571887638188450741792696461498386473267292489146938972797086872600236813900535258943860374517768300689300710435864412818886720981472597055672115008252335087327940946510913221619120143787872904888958812931344795592609968886108758823662163574142222653776254351101594813108633936968771790488615431327995764448390931716631482817965988892704485524489422982126932216379003958504549548698293393807862474034735882210606140832402946287520080377806715559444879537658683453004104170574295264012224686519567192053442699158416169242023969873523541993459554821074279408472525142180787552335524425208360704862433348448256608051199521710643818442525237300754754115943745628900905696646874584788042870698474936648868866515384504650347499382445941197426225278282726939848244519235060765187620499516664421932971012831021977600198071444452753087008733443456546456059495876751521280234255416870588653868248939207711158693481925169087986740797229537875340968682297016884660096587844409579315731140022378813981566340643048397017153842499922826282119382630483961220565848297867336818456763767523599965987511282617193894901861445486688951839005473856689064656861286830819427197052850040329169168186282619057220451311965363271792963192695417946854314352912960606033525889884137945729393041359600597555248515924449761785667815942049229539307752276949375316769290487046247289613441367387107880086919037648659944145770963284440227564611212868108637168144141950010011038706757637220277801616255238033856907028544340520685042400626832248570898477508923902502531940989449009139996152772468284954413107445130864201408790778291547198379982570037872195509784183059965499436127769685139741567805367151851466700797454099284666290788029626563511341670180066793637881937067846648980484716978645440183853362738188008246095995581838623711344741032890766803518740566130006818630715830620135183928506159488941271242152830182780652039186724876778780397575738292273800880959430690649476516541279523553504489488695539768842343029591323818053864083579861822597399547307557226580738803874343779084895873316569825610171767734493872365391746919674421134623984196505434792339821141540452015059720603239185627154878981504711384990726663362673198001798168779130469538084094986598299144124058047534983753080003166492292491052646773893810780319340005318894146793381717266280053001111937800598669371680878219588654636198494958869466908043025608528825474843830069271379303187897729120013515445682333739630594559900924543867893508986568048011306079284079162568167387383485139195746059875525234557429278105189825122778794923365260687081274380163515634309424974258618749200304227655718507896968556172747460267630104954548769172940498576164530723554076981994997524943772094889489143341639472279474018332423928802988282202471115048069377551723495250765602009799844158424769356296386663826422740555097841659841685467500791483747699528280990699155639258777436302463041764909697389656985348097030413806278270963762882719676174472640196980617709155789057490612610462525881977750722026524701507105946020189038926328882196924653476366866746565551432434171696931737369143888436420717683746165603810312753752773794372934617230959599176707051521747754999200741215487052912819636568105620651936470941132957723256910791216889768560916933976876033431513321670495592777827602087179161588351432081776514105778355256223360632045898960002217715316912225340876849189200306361318582401112028441663760561222953578176176277787408043606495587901817603381866608554256362895522625804300155773848116917815274376411240480131364602660035329416988254251164296404723079648720607778851901697847024359047522400182650484665312782269484089499022344342257279501137741131301454662787372481312974875386622392695473401124933735003665371892449458462867768199551353737871159288188144369082663005835203190125238231916760490624306910896021781402638917429807095618399178177072073497125611610051804922216049333431508538377585019915857116351465888206709564320900969384426538340866168809757293243425050415364860114063623681082199053881952280938843406964517000603413096919031066998407026568459992145823036788872222988223321808182180531100906077065063633606006047692822328639948572152307868065522680431958965834285233488126674830911623034396464003181530725330183518866294984887918906584936035379172919320798169235119120553617528908978609460678870756404034426134090718588816163902376171471566590631761077026476163800353029438360692375333645789681033488307105613940754849008289077044226130348450654002367780815755957055765348853929562317219356318609975497570075850309012042711004458921008408344961862372692297580279705195992814597264255083288572324602959445064549491346435388690274547993851440821208117219935322745230583763117692276028853738711059712487450944022579348175384850541450943145059440870732505373365585415743964725120855397295413003850104811648449840606823006944469010298380117410975964772280825548034894653116527896430883000484984136300874861389239549708740687788566573607170371761717008882714575630559063937673642043891137781187609186250379818117800358965548435432006145302912711582851837664649817438916444267173956417303582238649217559630996218228056539096974733974751605638029795285156177339636434562673150342936313774248358808147668990231899025005319641708524526610125404774752272709769841949733761030823282380583689014566125689348140055879365894391375832820726948314958653898088547219004104095431949333174135405468741712512101874451153879037620934070702853395653885104452366559898570555133250543754478454027180730331275662626532191227162018911553744385243888620104826270817359345632512362030813152135459032234515181906961567252118821811932674955502728654451850875002860326210619451124838361290083593967543206577358895459278240045850966170067110820650816293700728039767148753460352718234044545243145363667883028932728409397257426903801654815030253107829664799688713206997894085664391708567357560482699907545073400270523278023539516579304486608423372387667765733351259741736896081932415322713764696013046306986599856000005840072179936126488892851025065758525707825120880953025132412778726904104472725183821890661777454662555386130042016309286356201874159671345163219135126034148068255976233275765968637454711534292663440974137052311235474500216346599854674558932105567053989201139288286913422015412695931649736051973359355929953870155575490853597874328125847402310494217535900799131145182920215267996559457990704965686731672804890306246903826127468759209644796399261900228563038599937885214140497029072583585019377648954248409778823833005550469704050346236765624855651496763422162738266699416834782627424519001403674985291456816237149125296412402893986288439292102733246791324473929027771675517020884203495616144509919763477186416004267689459714617347383503513740897625168022690787573836498495383955224139775209839337894291338460383490342005955531568909499195415911607938763598634943901323354261102808691948301354437855891650713250800081688379482457647262037707270052954224834100932252600281965622897697709304448449998308701212166204169503671064166025749406438449208221543832781092641018361465344237436517666403420262680449831068655869944502632935317295946937991975104455676289270286467942247613262031312742371376101716112400200819130179795415781382916159522947958095344705793036474628108992335017714886903012679872490214903823870759751620013634560777169836430020995733029895289602692136972046581104908973076803028095820018266317663567323617534684227045103727642580659698243552115006741536420665767056368371039509334470361652804099871513099174064066397836516329149649086447670873730968261434766279734221181811190067057491221601353792966487318105740022588329052370771429197556401226196155318370876465456105075039554552853273849111805080134765647235399233926613253837416697850641325532310470598875748898663434666466524124846388838815991937534695374885785370449873871396829640146933914961056710971199361930013075821086161252891989990311627007522163745319939187586451125975738629933352751963722737451016211886455282697209225958273756289045421136741508727124657048081751355292387790744354395239783172284343661638553719922857305663150813340365756054835801749038367838783026519642925349679986522613926041849133174010452759772600127376776256553248726823348159474300818436147318776040426008535580018303095383550410517727331894980752039998687915045211101102397672628092726998700525286119171708595865909662594657296638260468321208842939868544093745550221117638585123216191237313032232865715301741438820199094348449093705965178546849801216646159880707184835299275992505247812766714263224089561443933603432161478561036229589045808773424969577091433142146138329109129912863580227062261834049520942295371793609012180268596997925592583401007095659792951826317515277651633262967475411779779275492966192747293156379652471210566544656326628061244294068579827435333981133651450917083679988793267102530003177725574890148710751638566796054246695554629242581931337143165513438524707541704722150972105453612121031958596006875599119586602921449348620462167289581979663841085899195743314759506499792457401981904130488086462695699742714628521716246055323693819119188056875075687983658406606165520344079650502044105214616279025881532321460344056700865028442021710611704478684014110490514409025242020963208596035220664937177976391583657477045539530039888923194775299606291090106343612372124997868890986622745687672391904714600630127322269812720201779462041864343365745681428889904660088272798439907991077096771541333264755952599569115202900655481161311770426969108383575965739844291067742913808672638794733199529386909842343952912430538946649743137169467610647293637751279645185587920893628110230523523022977047056956993337123597568170262359043586852162321481374803900467287692027912799709219995388243267732454948959530493084475381335338773347287069121413007293805400783782532808252978287374341964757975424561689783502738714880694266361193213120772654449329502259189112551915618111590935266511001144540638386297409232216458424229261766598433477498421435951904425459522519885294168338594203988747071337926653743529843968682759622484063996120558442832075945142761709211539145299024521406180652514484031908370389444179223657360263642546797848470079980093745821939104362254346705883928205038073323161444379463646931706016866790370957588634294288879724206795001374917024282119149536873108249141070822196811367001540053612490756005801576347107785603760415602226621270946927563689836770939462083323446730638587091457466494779636023353584597337032997592030873208092718290844646126718740446670853314184401329395694845865652797616923545544233322292360237687561063961640265907987242532178857635223762849145348284647071274751981564733128979689489439146188211804733000007876898250694745889558968604803911393088719793431170914121311366705392764982101377239079533951618177193251907126597069012312438865118331720572951974197162493832136515183755587293041770588857231585032105169762532871412884738554725707576058844708467820083061108881103277940079305043696680850320957592264030041487285832767428776198712904601350155928191681455362267103411736351615562513115003519660899242911514171706752503471422005984998335819910171268417682552665030401144412841990899545621932941285962817479045822997499655626436816200934294812956111334601971932949796087609804488766849684267271647318450128172371448920733527905781337443195315358178091530484360708231985697211376333986820292700933623195671074481642901105270640968737912680236832264778366909348881729555135943407296164731829990230523079403154052985524855551100023375547928404548556128104280431201028576125779278857946311457072091949086850362894843983768897846573068781430017735268712630197634485321932857545515291040383057949894290320899000790268662730862871478902963953276360934957974109824537222192232851200496314112956282407742778523499084041902640505587033504792526345472120427920937555071138470554392474176581650324627160011681743067149418120395412197277002184948054729199085417067547042016901939804608411633281862317148267857360004002983834768414332907185446721970062322116779061715181574243763703922438480492431934473959329768698030117995422088857795453299548830982372149554013634462492571083317111111588526820083519051818437104624788142512429962141963938887971120142522718536190303456395283756925797004232834340458921289958167354256123503499350318475937132102492565683509578515463411306208698703862120980553722748682689006859785871359931793956461912862178754475225576803275167613081985765615421306577596433286868235429629256105399655437389653172322132718169366583366566432084494073052549236045755276263556820578197738296487585898887023513871906248456785954834052257867358184998223701303651576277468725142167759473639267184162218156892529439319251272412110609705584472543043454670939567772955239011410607091993068140926729038822926043656310786218802806054594430561418500100190858526991778797200278490051435972338048955259666995064615450430206547208475203146497124305694883119560148387474551023618375652690029300466176209595995347307553561075374203610411709279506132182104501857487083862497594309444516517589844009117715208473086987934373424328221275704642967190690646599246649086957969751499495962913196294659471755165847450332489551537425275167466203433242262733295497042450860573928928315389732795118987312147455781780124249603633756229741867361517189957957236836790651128886933701696380111344143059998350497117505174303087021468005060335024521102301358277303317817472960504399247041256319542812788706027311698799515695695205219871285139400014400089549472335537055441949205321369608686135574391636924974140284322343861485224120709617113830945481056806472723279619066684815892662656320492840500065583608956662168098419723250621997797163992190768864070428398686801877730790976886190316356689735083339307886529482004463851215254167491009037160500906857615218471741617917112899953709055128835552363200193646487074769999885215486069195493663181224955430521947731661055638326755421110658400655913534922416135764203317858267291235317347973034434203734875365940339877216147658489319913101636397818085520103666476257647783175970467139863319310518212293221413346975166922808020423741853873557319496112666952694452180080512129194703535734019367278760078438651475262174948998988502115643202249499092371861518815003933110523625418532501781355700913551613440971555830641253470550067135361837863750738173048074299932357017607329977477688761961850539265015461627075740274412591847681259524245147890034952081809683774939706258654086389734088964476242702439391527002007231065933518135195632413332244381961745765505270614970026011346244310874562875841675456674660653889450063895722721792160752713735046469778773484031065743929073815531066866946147317750800984972572887349480958272130035758621563646628417831770995294079038414989198676651191310635089318944111143450721063185029630014015060782440175816384745269148311452947908593519518651468191463293000881754308152307253734288783596438919855911358086836402173622834476075812900364477142264538250016824471710467275135907869977699463524210062071144557632681316909391724064032007279536898743030906610433734209142726333855365396627072777304980324029880791413410182227720850142417640033256567419481022007457630817974737105638481238476971236069295746547952467883095561529275915260899191305477959313064661236709771866452975997329862444426140884111681122248708024041219802714815337108179001104003035129275739415251695414825442802035136674949082836697420432253176926122245445132208929016861610655295505201408103093260360391717979736356487309539759838206785791211829010479136452263892876897478811393375816615285193866831317853309635503709223898584670118312357171874347490629039247402556037462383625077529741831400265154277849506247467199011042556525554119106915811830936009688473116857149188292265918061290649714424960622770842190435971034938829109288278308162283242122111980805679629080587231257308439056042963586824638964807525887976920753390257192842536553131177512142995472212315644732663963432770551882390848919616811644491244385144227282831868128616614224922830881547017054101545688331699917957492919134104638591478826137766131272521485336144629365632254110596498336098147784062986065958030682166990333743208471541840912742152948560217570868432113993741641167668803186507336519602910358623490175785742122228685362708242023329207261114391018526839492043521418437219341945051500848067322895648423266140155472962635458643760975101885941399866863536528455886828527209557748703174959176467148628823332890765086346391948721489919349323776750635746881825017471064798348038179704287890141268392690015998240313965775075120322699586340746997942960274993848970322526410003373096661441160408086340609710101506360973368973561190056731181502702013187195025916689086975576347691406622436576645632437956771918029757477301019287115283407261956281920063989633170597102525392838780082915230889941057803470681819495750159475843333519707495464122675512499570838601319533924900679865674032546524807238456417487277135519474960839977001057941410012039325199642810647017797660915594356563198372511780045292974598606956262876193807357603061216632723421471523408124793718873425501716395072928770940160812455078328127840754293464908698272827864740866686255246979136950431776789173600295265159941042619936168254886510699520841329558993603818171409775976395184598290419379846248482666401568650342871267622933942089050025177771545871409397926361104938881244916360014759342710774159294698284608653154852376367814963677194845695134602028314312498977731948386769585916677588817066761935484317586458111711996351515499328493603517898759175020106818298535038005281617168206008239129086609603874361046690119980954103366876456853700120952131701402535289573252858636622240147036154312667687442726439443640868810495999488113854929451780757021182506665242504693334271769561585108059737612942557994281833264344953143529445307255342908436984356503786742963878359348974143788063952886445793201964472924047741037787514766805544723321672340413676964447207116873877370671342793086267436714275112193669712017699067945152855436295416607665141631020435554698696394021052599661462628137037773462206110705204564288721918340876660964546692831159100159048158430624070251577416454857050924466314441128041673560777418723473565846546794515963395374176457051939245281943878022458642623968040912725521284977836250237979893460720725257642818441938228306677757706181944950847184634136976399233034146143799373975358910629968867358439654697737159851183209411325514073432664870640581417031154972462339626259469169651682049930034109777694935043596683883651957829628016103025784939601043368146076669969469025882181620479720317520498525004930609092094161652684589441673998026524953249802922552257931203553100738630222306049530819962413998809631548966014386613805153351226465026428792839720393721255991424614806161425683362368614568518331248477191466047541124621283617918473263038119915582178071729588737416536060054116695376162443922961169912638888979396324827052456271294913776406997161607330253777466250745062203613639351141201415027831048846621653710226256368598889649894489375914592486775454070553760622143110537817690214755077911595160961019847655935431232502863787234077712443183584455634549356720181834592243940097632567479777459682242171137613624095018956599053465346325441855769859341125484231863550951910604332447969066852153189679370263209192088707359144073868907403621179407687005569457401728494859468022330529116233926834487056321067066945995610109648937580427760051892450273447170967079954052630748474145863575608664880725240924603215576979412130372730665130972874199850791052392601071044654571618373087381108644137821769370569631312958243747755832226750783579914544509190785009803013666332603425447472542431095957643329005687723382850447907280461504565449104369150894621623565781643056945297586131043117658073449150569471449911393678184901430951106737699465170430891195896922966970781103764440701602665097993833692161173152964757515985972537838886216827259271210319605857060235504704268135002369001411906770949748458011578873728205305060907587546730141123700150558766358532816124418698194395633751903286647306451647297021397967817173642703874502753929392739380604412177255528273351585379250606120179699447707687286852185847867944676708256876128122104503993651764553725601970169299395025304124034842648968656082639733841186429302858779142179862440629236338134002304501463018244512152923962983984754086735221366944682806753642059616564979036743633670594243704970734134599273009783722875335278423265616596758515425704714527461338069653269573924328821581756765244336432753453046533753571003847884854164756206630520414779404036807399913913245361581845005128125029262848973124588589426004879600079560315729059218457288626898379922893605690059359252103634234275370519301691686413436180942563876045238328278430694620848643492428747194742142304969657288487060056275166814430226489974847339360060216046012523123396626404098158773589425339902002704899206015013584085043607407872475059110604201401329644288546633167559284007067153568702546803735957904117898288977734982784502400909501563344801007843598654008834158394125585734255888493857435708331434168193454030007634954067730855246922547962385892487399430633892702211392473906856164473799795849105345546363865147462585381006878364873623828492497724778748855533129635973291035245535341335131111719389339087268228963960902187912457045723545077656603236793710237435632385451928504817205843133246006152330929168181534216049041059889345261639666754189500904098143265043020038744181052830318468737462416288808556342156743737734427637459870193594014350048171559951019060306774399683896803704998798336428612425118686274893948939360390457311815781298541412603906085178111060371533630141582060816745660482358027324370146389734962165968977358599338913838701857962764942631643077330416606493104311892908964887579127483131182879225978211254325035415939746181450872954895876643918636121734015363482917125408610801463914755282560682697521815725867191644547079721255809115089733976617261584716137558422449650621288544530438994765383748890847123810290789399985968654088176165598163340336471267866984380463269810623603816718415623246361262586110904051439406634111771349269420851212552579572223757216293949931883799482900457412001283354940583499512939508292977834403055547564420603510190965926847823256500344555550530392651017268334852416430296098496372606802972023285052194881707970527131252537930350771717886072711267608525664651494206711155381019963722702549272454137694472996540374497027510035130781472665605870796764095557623817406728259355775262120751212651057081011929456655854238335227277504225609181719826913349449869567971475576327371920664193765009922446876244733027441659637482530797901881998287357677292379869831534576387004643096654260459633045028468634901835160150925120040472810485291225382475064336154917014554680650937415659486496068580251064837133770918447857647493646479138684867381982729401068928416136993081107227414095087360565858542474470974967579400795960322280914016721682506507182565852641472176473651977138536642354905269721856020000613255145959931536262909417747284402428847907013517283026598931919357497361372139476457629862644215507982496826468996965543243216006714222113078439991859556785203173708006559310643887088112296302436352312406006488531781632499054267056632614081178577440356669406407644405345674974619924239041617583497417452717185980080556834852820076682970592047267942333896342887152612431672588832499045773277391477285771470751227081223968307769007779272845199850442363040629366341742536746949720797330413456373601487623043060449483391913067773018081457711488931345836346688893462474031515244549628722364912559615268012543673069977724240608717374920306515661396623453328662091667967051485543245713235035740276260827557219213466312815554901634496326414710191414821364228065176771980140689072683054968060712111023582474544669979441581604175671756374030159587845639034628907821385958639095450732633665626629948208475501658086727266156286978323292719725507074994779620902968945548234561931968685664426556628040198782081215106365225224274934853071606823451208018604263607125456871199414755797050612974745735620378770525660334323122724218006318733212042964318107869194942875776225380023840076282491750949037622077963635630929868349104090146786875326384798015475630278629244562916346699446432917693800896873731327559332733131374612932347619128946041702178220676344413612582732555492913429073025784627646761169715911554804950076634243878946682270756248704333294616099655325070572467767268321857851592883198725300567681738456771724173634968994628509846367162479771821101804140756515712621478592282908711045483850763615449452850329106755478590454518105774667167214032295796080950551597854279656011572691146822968204420899997654207315488947271361946999899324570844091932236590562198182262298201381099454530686800993608969442740407665410044315792095372169805017147728587015959264278056666130603500225103172619246883759363378647459704115042267856108938268626369636605528009213841579595366522642738150937891623640641154653845614870689111632313703436781491222361082687025908654392559948782558106458154689392127709996289518272367161248780128649704684671950990850142926255507596873288791931316368875605048865949003962497065348405641882591710215232453801447404025749055700359399074393281537984069642458614484471227410547212461888700543520449000500526776530389832275621345253142414868654777350077559644746558696228385616845085521214902627944653582143032991384824571377955733307730676342321934124795683821039724361371511311750142847433420425167807149415967276827068838642760308576737555855564398327859542362711491677864882586733730096549504916624740667935920082056886220966580033354414666392901340418139564556033384362366163353210736555434509774850479607594870758328504822589402932958092301099339118049240554442530626894066460626736314897796222850527308534758827622967649788231032978270835345929794594809124991072655779608877428309094372416591920223530124991195615225002268495004162014480551131135924102498146803174925085957592354622466898324112243395887659859938603080183779919592497181288950648259395388534272551581105598408631616676273433078870103425220407767471889542070596509508413246412896344814778576644549439969834041453939859950395743336723351360802602391954899450681472910466415549933617717188560132344170068861972477311967237288956737794115703999568900937546703761584090801696368325919301970134622349021164884444413214075006520213073185919577846002380126154242536417598666579435072756785529997141626989483193619361181763266744474561821194829084250986500377572491833330877666879906732237801383929434640542034900934540375936747775392756867284240971308640540507348332180281510621261421460109926560847335766748581305355375879939789210798322507499271982079448693054092321637258091407495469960016015530653566498201014725370147257565421976133588837592348227124723336797368861707317001226873449864159498188393778815589212247012285506581040688424078613741818405377458348556702114670855231391138357283628489461015526386813731059578772089109613992577583607783993392415950038658539350047896930528759716716986090547540652239400348485049030277487283825376287339314809655836331860549802287198911309400470901229246615591175501616289103920801792020958491254074178802082540320803444991484665879815052852490185376399574796244087107521835186669248591582170966453817631987783858431844877940660056823239535121816085006936246907478671689036683176496184926766881077930642771900774522583642969759209615166114939699525215485643934235799563467415484818367524088881765717333031250526824066357065797714331668914212299447759305375131187971704504031846797077348753662127602890084405570179927069989071623897825074296891101771329495999776830904131443499067674384990341137064508463306532035643786096340047677145992510317311741060390269808420679483997582163778850028339166695493548323515782362877377962753325847501146430705964032295993138306721955221089457582341389796280137044604129345176914399174323823395828046541308383345997145797984227039244828994765415118373463076974239411366953482470655069796139131222116902563188088109973444971064695251467027788328437393250813010190971126796494660098847240078431041187614856425560665068663777261280128412993400032435214250773303893442798809202697370471676958227236944371175573860488045390179101384601884598264847317829094876190569154467193079458186893532054524711582188520362761913039882496267167889727320139491684315202759694005984401256724639465262624434666836723555776550767765522034475282979650799763031202609445275271781436084185263731346365997591576524582498807833825257643707949359942379125099004908680935903622547967876892739779210098637471273485242320729642970342171307684748865942902069986793200045213650200730427451330916393941368909556622012940828570189304135913343860811890142856677379999363590756496547597254877295348711704784859535306169976754356197070213367427516926958401524885288959944179273024708134405475853874940162840344957450191856869970021595928841621217411055913319167047811786889977367757685653811414023617529408962314904205653800113626220489917323732226388821823927134484314519072577058490522806667430734862080961996308461084707642448138100517279215010536301559778746388613179563847856249241412830896533285072881648330601233446867863169057726773358233838446937696786039576524097484497467850894488852406868117693379831397732645056066169672690246173318748929352360773422090082169650800262590691845072274025250497493986121122932627049327862236394133418830753471190136271233063650797978975668845385000736931832964146974442637574743162761938850922840573918969252331344374240215623925602751333642919035583717433013192227573327862175221912943949709227098260602436678000617505216105979188958853709443535732437017378091345754329601179495222738139194525330332439416030752426673993083275270339170966483145726044533460430055377017601662208008916919057350904391073624460913820729879211699471557464846888676246303547374785915896161499426735718923396583026968693132536443686145842411796251484951808929868695950650083072470371623746422338923535390901941685863499945121022238347691201491753874086572497681562255231677505634479697270327417062991994041143416135720878453345241381821650469419590665170431978789831904823314679583356334864873073998114790083675833535870786603694667729588258426996695081765436341351571055947558570060092236192085265013550708097541489103254699332031207305235180461525648532840692497648307113565152339269112077543817087886803579531130056095742901540206235493281882148407337653824791099331958409489203151376574474700357775869065124514194129976320736463810852508597299494446819137011053974173019943635327122557327166361179914156313639106445870905848181898883966921755283154216452714262858544945340867264644820702844974029892332054815344957421447655206922492357473962422435578331668427551580078331284104123267509554216511736529045185453557991925086469875158133592444578359567673484848851566382671443517983151232290619590140350668677839055531048465560099739289757242721167475334136636823191254875931620248189674049211015393054595014304807581917587569898012165804272134258904877267106959730078719828143632442294752800980441087603812502331731645794429066804755602171100954240182058422546823951097709389084357987376792336876597901443949217649314194367664490321500216048171474232008252049698773360427115232759113138147394724257994409917235210265774576194887539859393363892508987574529944517052508038065202140884732694971515032173323084536605125704574981621073079160892791922390971403618453237501444410138010682206601118642455626601397221804723657923301058646405328683146357142678932669112642579490926804512156137302533904397638752553873522583715116750633339195234652298358836380792465081394881417710256588517763254315895325882042235857786499011477228458008203014991169879239782359663871659991956817147024452890455832520976224337716288022361055302222702853841637975680236030005465637465018977523605377124506147471604895441053441096973354440064935285827645544799176473717740033476892390639213335627516277803690872435959690938681140413644303893136741134694632858394406650249040245277085353396290400282145444763174700967270639648374516054297204668826288107790611127062977795058004426332868044417409208377971611311061946434617521229458553853595848023686949741733737664787828994886624466522875101204948500859762634939263213150989603960505188226576835795989395083263471057917673323059050695696248333086952709106916787985992032589938090959156223489296292185763844080970421072945212427533709621905397681585574342511044003334382172866505993914734078882232224336152345846997006001091397263953079576699745075509952968163207422090579938128671715348922013090072517462484528085600995133094656047055474430121992811892766087660003705947919174039465080044870264396791823075685395182249445279917987722610397373329030239608575970869079793500000574868552760015824462853508353325509739299466336383123165749147345019063788953374258180747693881457794576776117553956630731778470676439611307989376195105746963459629915254805858037673692128719729264639014098803613571032239947281427387808942287367096960556348007604717719359321767049629754060252142364564481859260394760436270024000096186501710264960496112853146895929268118454319702396361242688464613094442925542946489053605154091232078858568272532403169454130039887045303225197537815063623536968381653245311181823604093723636712927448184130952178662565201682676199750014623649793882460133131967019991463326029737828748447325232316802364421976466095583144946297503397679627041609241815097898598600368373276918887742234215842917430499573468418716665217432370392000080372824224851659246125347852893034375080268978768741758666622744812670299328593450814054595378422540736683637183272960518793075867934767336253041520724938912297877315854534199674406266803012827421001073051371939548138275600034685416887443506736732297324884875943726257366199906149883709994927540209874243712441907302186265603954530605236605289774012324275448055966113264654461431046755969225895788071404317655765526619619774784374814292110238551922837595943967808085145762697557833828946136742206508788143514369856113844311194032691285582233652538232724658059622323924731274131941618440509429481627801388999185235726569480795239404157926975453825312373495710356616954423392989275455363857693939520618493190287948429262763404372427398939360168893442813932724312840418136481903134188508595064775750040421004691867718669667579524454105810998496885045688756868051800395020647847475663808001367370042585011996079053608898908071966500386509273274068429020229702178355670262575724194498836523812092427068063758834649389454986880238021264219077519006635445227219846622637513944219831651504591737653516619189003789362893571482921831954647787351213451035028214090639631240821498967846827726068908296904104189806588750252585699879782008441499482616413947980884128183963405633260251234230443147568224197878951359892062728077710164415056573212668323938578970591639174838517595790580930658268357814238549842550474457785503538015939374559454536112072788022802908700250536103397822201627239785392803708878591860425139459451976021128247558316629440751112458810390103982300327665271662996728570920214891439016772241349956971534648066499488583379277479670900613436532133860034354577695999302171743253359634432051731499917714727203635920093381963209743860907785417437382519627238696497055444714225365772780522092783200303403851233133699070718238573652126685354679918363933007286423529230248609233521713326258732503788586450659727382367469973485546862370403700626880558514145434747713953741805142874611369104606027386552847920671097477498224035351814199089167808014337791776383454758011982221488258020891193451207136880129484200643836546090793549997786728469500475572487611429190982361728408373776999363365736735375273270570371683948560528571104313434687329421644890382986308664962914905447960120783138591792936329788149272800684740247368095493969185475565132820272212316537586532408684482846961558020585910224957689577370751013222096612249496983483615808534148288557980112352188827817814165143477613109064188648160463516403242481162072612881191866322259860249993230632182772789325387896484889440552241542429888668401648577245118435767147060531760853938831113597692375374891099309540736898330715432986870892493674136656184109821756470825629898551603710685035785734868071529363856300175536029590813471505051224401066874423446227947062877878918519579919674065164622246723592872023356177973778954914028829540356361424040981540517190075653041828322361030949120269193698900603058251776075841154775373609862544252985335788785045511583711794489840935629361196883585844351737302187708923226099112757052239777363117479521029359596825495111903230108228724312441569484687073515020625171419182375032442616776886636927451695067644699174321012382377011972702939011514528288731736698600434647004948563556154562213133686426258108191560344870847546209077896907490696974421781145111116299459310811136663226983288151935069693812185234675777449625880017902397364821272761967913665989941307145701087030770806454665854160481279395190845775711602045039920770907196712782286145428027137013280576949417302152491933893340570255174873930949439246924231841093228169175670800426680830896497297305027772244540001039047086108623670164095071250638774370050554429424631191744931561526794823491152199741958532875023764420337576879094729393018835355138510709863991165110369577848710261643178984098096328342740249284349400972418444506577019827168500748293743955523415456118333400540892579763569458486339667067176846551241953126106887169889115280198219652976927871403778344845171597274820416398556553603385343276164967965774940102570151113510416630520863961936085141082790304004848395560901099005547874192529800151894474123012656750446203485312490019604203519061437233694119519386040344750910390250117738167548781708911625149518510259971621442796650451411333675315002264421865871614769949141943991848339857470312030095557221901530348684723949975687979477122010567180296158586363167911410276530883815102675376484651910798587073030605300291621654507315073488799644314797672923614897466198645509951895670726690173778398488833484021036824734598220478695182010673304313317154477451872644005864324405536032357836950216128004268687184661033455697355827144759651277152310875306156431314208043718800261423251576887794972816184247378216711405842416478821237873955288916464910212255969513416208719205889823102058494952976257947360524537001887935048159139226088580554021897137215514135161882272552686447424127375031913410858476760335038545922863114849091383364750521842682618842606130554810152518594037418321004088666340461932566372797732903893091387341252737014184068190811961403695496988843740887930484985832404267588055277385203348844302500072274195013765399156961670837919296888639371694758366992401537647284687234762919541386150005412879195568275857609772538762945988809164354848777828789808646792223785033294986421093769857558618327025572257548064970220524187853677869372038896346435971355320904978462318180380155330573594952186957362122378374577321105678122357547182366392018876065193690439550334094190630866838507972197986385131038829998229496934205683767718589379212043733123630107544638222565883706660960595008481559353648478110461066057700115513191972627598332306930906902964318082875226625189542027259614585581949570823159201353941651567990111660607282137991085397696959510333166420712987249251300321612573291698020870407184410853827290317158292490132908588948104121102076583288743856025656463143326887028491575003855631492336106068643063497838449954518644622128081371966806659447840855745945245295105011595086866733223538036060170866858778811228152907705228418650246533912083130127187290665894324456909317493349162311181743985209327022902951710124755770488439180142603998713614284725248779744260025423961743364765913012859386741152360205825766356992940749103594590021102349685183171246817696064342602866019149600739101792618988207323870179820730507390947984034828063172800002146014095406083394851267517567194770198705233299975932836501911967940268882660851475830181188684656067478333708110948855165693834462120822050593266116152128398834375370663881126452957108092649451866127490631852764319729158713659358046450946250046696931009614910729082212942340450706766985559029370363365028335682857038292563246091126727695115059203309881985785436229885455931804066515874571709352731993359122685466322544605634419477053298632336808860636648788173920683692276606490451870399794535046200887465806297460548518224912583744678390608415386408621788218120412280534161017076589008554935134576779147360926852295587266605689977455992997705833367944152747971132142769611787347123137701048032700078893962969955826681045691424113923614505772580969852687382008582439350382128359106920035212720179269948887510257332954522259364193352153672478449668105611813157846199766805802880220153899165350707446047110627434400420744269202930719471063398039169950522429392247239300065856616570809705565267376695141731089657071482224154054734940239937771856657033857841532206618612060824584355914870397611575128278054267369303532873808832713374817132209211712116635668230242766385904841760719865663175397619355252563749645149120449903466262144543927274669135955023380739468373411827765036692229316397096050364815026557151445271432643736002746042695654469132454162558440408852454819617619976186773304208955203936721338303013552532131495121651201885577627184930992038213648329151363452408305246372003945832389798433111479877158116153439580817870850989693234981460870663286523706230192117252003058680392958110498058828279332735369199490389718179492390447573598211620959848938107218637663540275493571317943885957557450588195568200041514484555500866948644451491430161764703098483639546750759059145539936935087569534916545336362454097709464735989622163638849816739042356727400011393707013107078567405230292085083895502224103551890906157279109531793157345039680664199254695002313691473748847760407676731911747326641379499359690095910677768258165767481720727572434280045487087418235137292642641239305469500183386284637864017111867084982878141058887599243816764939264063152163702777077381364250506886245978187857345969118367433927360655794642996502812715247907471541220983357752334522393623817042820569849198074992500463022598217877879723415469077878590069892802223996040350325685458706073983119198247351607522077512917595396437758180858765580622865521240222991958873461904908644366787798941831835438795267869897819925161943308776864014184138968131171779489365932168134413246775787955841352398531472352040415218754629042656017291929349331391165771754973689423882187711990925546281883174171716475259305290882233144535884149961816132760294648508957902408821604706493655484131387877749969883475726921846404228628952516708979363503097094297548024101344290114569621241776434398468919241888290514063748734452067882667259766039978676773756465018741522466226195203821817430304161556732733277315619821975763235393568390448470048559567162492632036541095775624144131043859749554516919311415378800347981827449543193041075768010061578402207240091349429037129968128651738231545627739887322709132160893482601997813211345144319392292612547585607927002548659392578524754859779966678905630443592525325411202095912466382409368106203841071174342238399047959602988803047944486635597276521060649112052074089238977545211065784294721885051765092903577962654455291580383724908472804058928439997822651929123250418682430460479151748080213959810984658462254776229793461424736443735329640689479924136693673231681581518983491574399029727257567438927986475882893728903558476618187975585734868385038580570367758206119238121425778690023017329415192469843812846299014793328710392579426352891351648709147248377549140332405274920317303079054588991611550660712387588075503934380914390856340657464703318536292950629404924860031689270235584054137757905514416208149079032284072817753805850238475633683595838938914587600414896033761942897912178417464700192449192088758538710442845770467008211527340945389869303470043614988292134599920661935177755550204599050324218476011125331522928271646935136060046146927740629628883667551813231651803461682603232015606557434893408354432583018080187667564294795837773269640404627086465363094791787326506301909496075635542726911178319699071881775660147027421735608977455581503250063554754720943243460604524605547964901510605851058530058334675635946139969553099360398142437829541013299578987325083224813113460799786812556093843927086040229331689009963427041559036921841151989755416659413081928138383035751961195417499174516254057892526827776603769352485862513278955106417670479494809938291503973405308603577964190774150820245663594146087654926142898415879669392301851271148941317962613045095437547210360362339461778260563362392981724626064778738449896762020821546154667549212515375569987671931272018225528074365734705007618603376920515229066793380984403840532979212581190108091577784603189889973447619519771145739513982004875570743534522795410461101550248445420939160055682617262176457908944000636838551494671456053991640301864094218580566056438040521452051802683972297607157966488090911772334983649056623117512124992715481718141029331339409323704050089598300119448062588430170572970670409328105019487119108821360258173615768304763732293077604433312358422432627098149908438507512836250022959243503427716638932557272195910324312308609575746476154890159445745624693911411752416153284239553458253143451688892331859242073866576254998777907196767462654837918390632621946506166832065841714503605018452240636712672844697656474493637468948374950011171524875909289337798666368509129291025042227296708205894580497072020954121651911669582801671979410691675819560479717651521613104254241363380274508362298361694685840279943208053751495214915323493442800899667726092900410785773182947041410886494472963860214631835398943992922797830418406437749780322252295333994536480766114930954451699522043668411721949643094695475002623260273687678867771031118643470970558182154773755643637618924826976992500883452740332080871281797548747914257180414488678911946815570278424258753918249884946443896697419979885104176883918985021718124400210493320626481033112012477014508593950895691153003237613606059329260242043403552225709286725079619589781691027671790175282871495187307049989710538196573425731261322501006857332482851610767765701459133849594674096166578939668463430866398466125547163701343159161287496044713972722842678418621488955827208021274335958134667083660632673198776482003808434391729383393447322020342786736980596951770958750849731620825113033633454836479895133807165826531977853996878514828877422300867090559245702567418275410500106663843662483704227013184036180051480125390187555856836332780505733353680456674155998135852968633891916044483759516421048935773986352499498592849485581904331009805075782222155833770379757772695923493972398645191896173047426279135859798029383210216402337145606523863358170552017994730543251960676671930256795873735921572669779531954890999828122521317932965367677571420128822654839493451019324751862487919557063768227530141272163827025212346230283403495356075073990391364441015868310889871892142046419110074174335237520889071993802373752472071653787868738458249209876219359557818942673734015667124452107167594532338643578049644286840217564597731860308501782000000112115473747934405534608192405328559584863095959998745446903644094772254159112540803976525105723656023260346814925097810876408664399361544956301594976969466256636232343908093352377169913625089058394065428318448616858274180107023363447685738281001196037114122619526430974815996380087493191023723291782349053324273250296420323026412193974214800176069035326728223990529387182387351345571113272415912570788923569433424761341242761489981690189711719191402283888031049036283709320038917441301458676827700276266342783365414922835631759332340011579901748058525272224309219657003657822879270007877903842798841431774499577117513472497184399451359899401771213840551057248475743722365868452095190975102541570774981469217766796791758184977936500716650191323443942075053552396916560360147407493407363215408014829176793823844500508208632337530839068096780712077981987933392556489008841568856228223965255093934254760991828013299192084451193382801995128048432310388572693473086276694391911774438832471768998066065154878470498834639576145137855632292176705458604279581863884761540383082024454725796500200658882228377289394501569373295942876202879058069244067261916057569453049604608575793079145040805039745545241464739246989079592028714696796455785771392759673673785305931989740198124975811601228813277895086729730139076193175870368009993823807854042798035703132074951160778364179892900584670185935112922604596493824581601955317317996866819510395542427226703787596166908287086754013287051348652608634644929243770360187869543389221403253345012894227372461557794940095270106098833062707625631382402091797973789464171210562681605701277733726866723209513942687708332160058705592414146427972246285521622679079839879691279329557961686517919644661812315201822666809810923861872208989805589206395431813476162636468778960860441484520766797497322240230831190903909335329385795519139723479680128039152393516049416163825898025249600599580863447444036236656978564768451702000189601437596943139578688666698086989113181163053433473124103112271181603994430441677395648762368453665402550659064115460275060197931781377873599187050962450979100886772698723973378219785255467462851467056614046940078938580200672287062047110720398622763952592881106517739641689840295676478702633191061770301729319925859887104952899112602611313742930812924067493518054182979457776103946289335859327915624188037037621926355357619243613575128948228205180464561506160089413664467751555986303988292754469231238307088994344365540658106048304075150158972568174304360598707333428247769773096735060880466201215017236661615841107296065542678023399915183614003016594494431836013383980635976773235292797698492343367344508907843703939394408654960627362748637069590139066692189344725868570639096969393505208844367453974862501451585657005710565136690883115746827444490906344315521334373631879113033290633374214401273967352916041520784521109897135830933159422610667788278029024566046115573855500722520091711478583728601741465249514074939202738327335671159824592445754428793859088627068791560924684818189536689637667470499212864535302730807743368933198819798013577546287953595257319272571842808733227619836796055448738818269007104398308903017823015158346033645475312987408358335467992086824960363716950700799492952531107099173248983979396585629040326811079698114133140832839897765040729619777094259786074367400842228262290845511193050410202528855830519220474822085368107771571274365529099859128317783393668220058869872756702456745746094818662064413754530368771796680435924251707652393753109473695094766334293702424288214095866321703828838319386158686081837591407006128106642824077215764507944296422972508934424088449612235746433410354997027996439313954373715040952572085851647479550674210731081261210024664433490253344422686064612595667359354936448430810364345046310716039113878859337721507928202326508192999984924412097962474907762061722101684812842103508142103455069536102709261786718163621716855588285642242356688702864249645430397082466018029194938757789752791067515332341361787048405925543542281449093816971854036691332455113931537526568233487582820102729942998786734836100170110468932135961840274253239493401165805805797550729615419259515674161916610389697971276210797276043106118616689580717830534952009826210196341755772935496767341428943748845553183781890381447838818610510994607858883923199510133619738573169606421693727324283119209095703830437424830826568350405637116905367210603091229964092520147127202469271431665464112186076938515023177170675455045962217955356305847758879529756649600959373209211548741918484545507886708420944607901929828867283114961404954230586858983148328125283405003252300985475508618818802264229576450889552668269041062217236407000599161692821948133337510545999693240769654586031869979727268510088508670716140300127354542037566687806775739652083376637654711233968273724817574684016144998743625049671562080639949330948297819378165578584970481573725328731875627164440778703634245390207052664128885627717568488540135816209094504881620109958186328985479437236135476425881213103930872148918197880236811334306165259183069179133334655588994333162563770234127545474845219624302625316955153324917586338235547410487652982216956973980868896874499411476527158387885185299899446031812723060196885664927793738233568847129758505258887624904770753353076620437950486687998603724830359032274326704393153809036850989454774368989421170237866245769973221271120634452960652278025883102724053062967611528102670375279213594032025998603164742299708482734381654675344571870902022692067671069282906856853763073675450477676322333937752169517909979187097971572945047706609668539512217074204865485905142146045493713576930841795600833716060544963642546235616479201236244970088162001022946270683877481073912394502108670580007416369851018554136262861208876482797103546461938815635202053942064998791519491734254916417959878423400137497887178824245995949634589165559359980193372228821088466342087189578401735594960991151580710073639955810822654467459572086407377826884771739812067267362647313198463020760283628391141837954194568829272047401911266356559258277932463919729297361713575813077322131865290639409237439349050964673251568239949743786879347873668319033604508399443639066777652277519827482826025857168469196918561911676607934627903483444244839499431922334691221676624284371824572977025870155432220910052359505561390599444824967916425306174605298383575683538435402030249163796145358678484121613101272012506869949274077996060925359002382946421042199099741980595990342131782492688738916578748342726143213085972175458953909316703712657060662227460663569317068114954435780547268971832926128036326276349192456460673991446530201162922248132666698776602910464375282415882367012740552090231203550084943706424725390886465010393521596007770687151269292917912076171281448193703564760657136494681848177124589940740757098969931012100103508164983931534589489001538949360443894310454367063630493198095032945162775028145994137899568249388018922965636812013813150849194759162461491370576593857882625436716547307831896438811380975933069558788370898938988002223085146851907952517898779496414445109176022517384601186142979948316320671360336142380129654320795401276311558525153206740628463518602719788406022806834634897861146213430800298929432601452610956680124131956164863309999101098800437972676294637383426408252906341268719571095285348378322586606662971062954891995853759877728786237664273968084495934840431311818164307820034457896504348339916405342577785709938302717810682054788425517670243797284615083771435108584373478245528107181162329561330815178760533497579112677324220804836578566036287512027554445977280745104535145515147613796061431917419328101395195929068402961357799115342463327539448705860256522531268005340193602772309702015537512889038074623526261907903915210864741362928307940150010968560470413125050180278572131273702381879271954202862082428313073913176418044721655289856671855191368681914984274461019181204724977477562754018007549044437816362706349329467886343371464481104252295476999665430655931037368239569693859319444813712833562650166706844179239673727381961575313608004745380799844075817076507336752729701876169768526840819590929643553584883746289649034735285955824449757449030250441999264969517606038858771219576625077876363396318143833778022110191573136747213072847910423468899153373030103769111998152748408034758152632319547093750400686390934055533256617501414171864196460859681444342822291083548210361187775048334316918784062170862874644808855769786165189337750771505266132003388028107808048398682149023754805519026348033711630104187543572087783010845095156789184280106074886684480589463372380820676295986765800926281142330053076624777368076814718738454790224727072955833633784513651209389306176187249124944629107079704657735865924954520975284378743143542957357279225880799292921965334542691563717303039306358010401273911157119068500922890051313311801584489566093295688868866300898232174958081577373329663462684861691899505034796442084225886116178579950653510156889558546709448078117240781555468365260480558505120505893018555792096544521112613246951197033662050753183792026781430303553918264451561860856739389637720527266469739976096694765331868997231701315701184368630926463117488980882189306922854879245065340531644233469983786921612585626661373132653415002019178222496837141789974305230881901656065727530486835491946401507297851367718543685317708261453896529302638141638693201879124489038840246459627997559000171783449910363520092492069993689457891500325045464401416679515114913106660450791402694680412562502865041174825248528809987631513884279791694920471163693755843845075686088851844597611650026583394828265152460226339155764660392065652207850760039089495121315863805558650643444341323379905798890575991432513194592390223972992621921509153246212111989635621547008672767347762160023157219871574602362138250524914087193982408003440164003217005084010274877381423359510554801957254175242460479570849830770957336172415039052174225451554134842977709176266205622734809132164979083212530420603842256216157683634045907496969783736972091518610633397507886396763003564939916089408694879734700070979481576922742570619371290195814646047220309607468522310355525487146976530338252128537638204580344390060625411685202731547902448684141430776515236864180447613441213168231653800078908079236725041085337973802014487821534013419887224173343232422616985685905535860843962540677152453271474551630763741286054938622809318135939620943159345398269535007917079978469770448843731957586377236728883307805804400548870503282556604433806867976770663664004024978895155589011673171104732990731718929000388333068215471799812400854960427631847732159566505189684572480147498637463544383745731636257269614607322155985158012194331357322572726984943628583006895292382047006744162545552575439268488492932928396568836835394068672557800925496349997543720942249367005726715175525006353034851815730387229563793799804766155852655240443404894302021265095655053877830828925828367722706271258874250059788209354141182152385520493137841093811960516994657240246009614471184879293736756728498383306026223473391181679226492069372969098395248586006117287097604425888886948149274090832070996978516363438959431015164686954443347816842749681186463654313292671216304855432964770581426320622494994784170957954133192181846010156676649182885597522284480062116984060923132098232630969216955621292012521688048515405160018440873059433479540766278895277832517458615412117995752510547762301918371876429461619993810660058728127840148515938696860191482198708298070539036458382171073529239574629275000551169963394921820829370821959481689321833306179766081341666088218237278689917555837827388645129068094153212903888057229807341195449214614149822391919864569141615871576899891790752545154958858782515138341500215464334834177656607023950688610115131557116731662905212031959760110802469886886901650759311817282236607645614996816014801943880029800102607717347072492344219049163383498930752662385976332927761386156761221659083101960396931617262631511959054571535652711018367788928448617053624329694918435558084286084880824178596649575745378202692024261319625196774063985984872166442527250655513812999669599207304385982513663454261640435193170846147003719007542015954908926912496211054260691885804333780758233156450294364631871828810239879708358013506870883298504985840401605440212054308484151348195129342468768851100372621717238976399789618907503786111656827484301833404026737313337266358897982554567262077628671077635119972177065583944016402241127328314715517832210064237320008222219070796180896653506559656881214151040055722073063077929302540700441358749221295577600883302634606734534045025276569468778572778263831968762051007862757205360215767071926678313321167791835020707309093687809764107598810519452906264412315273583554484749791996057665426586595818563166315077758988042793194748590003187052868796011879791627891245503928830300256821031816653461535520970875842697956916111095195538522525968916779504825483108850289963308794438002459935358074987833212167689809654714177878817246579510852343028182678611324302405662602747902186686057483042321960539618923661892421822706076658622924140923372300364052720289149744703715488613107833885682526093877096372193224943322300150346812574753044570133602391878631938017622941238655612882502863443348779466373942549243776226977354325037673103142035501992990601026116486134973130770914021762498007079000870827451358005683201452227707684493940415771507866151032392769246099473643288759370243416527838788995502727106405292248783720122320401648920368580923877432147477912653711594972294948649460774279959681717334007495798920979899483706181775062172270649420833880740551701401360982489834837356400046317893838711964741517943262359167179301081250048012686012267852776444273576444411339468364922341451286096816436095131573567527088881068091610145167795900426431679106051168079735591361079280656635840242871385347975069733475030481720266184726460992047077991305942704207576038975185371465240372172167085199762233786854376542570766126896077468280595461520706529629805000356433739716046315433019744465691509220176542116690449493557529558609484926615176979728194019080501060041174272843887295225109238354668651733294717010003309528190237516486463890063877167324969329645264424835400500375351192180025287276661769153221889851287049729522337619325381915556201211596202296578021335523335206497782427070883469995839745714731274093960777104807474407124597087402596718618476943764913038228721923855195634786239709523041137990936681338683432352403732049160304488233538047492881025458321346820152053514827432699778406763882239861959582334169065287618860512847288212326312750163776936467560439619370725406947626513618619833280789472098350543368415983241326722389402222451130520761406444902727619600798787956199476202053745053351711976393063134449971337669629407927636926116187743852066597940064551645569470077607193831774432053968209719574840938179775978313314247390836171519097219754721495979289625107518496704389909591188665428825488997755151114348311720694140460504120479470532046635628979773252601038466620858092187530125545744665718677355783263276851113276369620829440937539093547213989277357002457945026534141561305675589318454623840007756236036341734280249329090992802768259541203001911229277029367488375475133525563654604721578618389422476267038393844436009696599850725778148018150182483106691087036027336867480229028193422903047170125224231196673118530535702675822186932519216918642442016596219971068819093867874478157209056515093866536964295451795767382298490349661327996662364224014803039406846416302527419835436324415626769274119979988813790747751916043953456320429978180687572005703440009997202622439526758986015450697853915418714864573320113674337922792696471285211036652838694927341936026838318558386765850362493943869865366489671858160336451500076450008476962499897253193364531471082185386046473116008392404612748075015079538690222134030202996026311854225163970074593902488040821163988872467034905231355427706954801226138707295563038734760274410352483112842241600802909105989267040949589122718048244227077580493098744937120249183202333869388193943081294094100992552746958702787151215531815251762173212350219129564836972655220648352401270112841984444156945923691919574360053394524461382094706918548882359114140835633205006652420535434664997140022852685626222889776300362600818652715640894889963883305012849999506607873754746634772545496719778310624728649367100605007459334508209067461135222750616499510611070531774153100740668676685035512965582978179009946559711083683165542067384111183043118411634047925688454945109636482089651196539890732220843707368546716329704088546008893867687052574400160694000448238561964829629645869875582422238383772566540425064279361745326890774611056487473885214808428252821910739747072367629387820409904710888536143266939550734256335205589503897690177660618138781908521999160677912600584360921414392644767177753500228770822941226088562808231838216767858747015987846303375116415498460198689253470932469496605465851045711935068807102120481194034607454870019748900195871215690725686733622492024377579633812006647102916477352446998760684777499328837991127090268589633648716879489071793491379685938210519043714860979788923734392231749272988177062914120525533838830367458707857198642277222070799411707290865196718663124011416493888928817612110122184874725097015508840397324177895001667275422540096973018665757142319215476313788727901301683023608332592885663589991700424239307136916015544314209351093864005770248935317389008665490649830109844233590352684939347506441772608575374953653955005418463131534608696184917542252035436420815921652950773163261786381047314052471768468961416068480934679795223565108786226253854703481493056341522003856523426822728872904572955865310951139770193816650180628946567103702409089515811186730408384594560129529995316595621657324665463986683172754632290541277965253971768028471842357461838737252571977757865311279078947784476546876680856451698021655115160195989022263216851447568223768283101766557525881004091315985467145576116047527682854546742846183083883337263703389025378457278709869376945124291215808408875686061032831809332889608482730990054328920084312598719515602877833248879793299272046457645759689820183840608152683622094940828281220537352246875497516597489064953709344972087668174832068504471904174704971273356600734706428653430647102151029567714987370583107049923876036851044647635066826403440259903093261221408148209603600191904220366119245566736374365366739522153601675584550410153868040809770593946979574440464944721357576806624182090533959977908847885365678114374645596811934795796749116071432494786158988359879595131576915511175960444503173916139330256720033349169237105030593233622697582428836192326788871083803051340672855243049265199940960822543614933960495858152829195451748095934143351678085753394575303699436748146585593062521772476560143224547856424442528251668887380640111070351367068394576024317086806418842340635138634375988099224621785853464015509197718401375304163294692130378463077218379948330335485874938498786866437954887863036518002879154948841563744019890997799915104885768521550333859491389867007282125050423072321114414461635296703881115968934138282485884728940034236666788801571401312612258410263078191328218866154053238774081329935270108588923750384702415653036370529362102762796420244120271413330837136021622108749787994709803365015267465032508052798697150802984680213495170363331342420481163942894385917678642662024674442443045840910687942785093361540968814857365797076836245691569452800720476038915918027419536767039431211389706529305830441161294845155301435525358047088384385441305561624321142006223246238026490955528695530400730883699794752377099803736820435594368278748223449365896941380552780565302774811631750072168964217265490383065867384811458216051035204657788724663647500146531562154210853849933630352719607095344059428873186135567905108130473898431010687917811048186064365726569352043467122386352522051227541180655726525874286289221535803060443680252684717335825971122661068786362525372655021571427282684899013989843083491373958207955506653301533352389868066575276471380371423503964935600328603395930758276936595483020658708049332762637253222064169571455100457475866912546701788359926515769030021369430775258021121842331765017329395332011802035685303373518684515095883225501309127648007584423011097601853534232397286354888533361356715247017078293637367776562662052631804640911019760617857342830917362897130854617344682759851453049487142341742679500025896636581250101581513743965036517409065855682010076806737955482462852422045586615388635326090906393856170375069434525352172290136350733948056363913505566736187858627053222238764393491763501413926148857073716920114421010895702967182320756478054241454911784310150263338894402539395329176648726035109609766088642821323928788617571879522526408406482849033757994340375801998686640522146561158702652209240190173641905957877418750749259617678891025332021343287450540255287106044101308946147953376854813683125331938946506654197686525015370891456494650321861827110288412128112156029349601106070198883632984658658713569989742656351115505545837243459889329114633522747683167350889639485579079575840538097511914620020341920593188728740596475924277533281953969723594418235807101640220597831328511012835638924791531640101075797453713744565863908150260226584602430792364466576553100921237286898529812118376749585803828056439840122823046657050446849796072034027843294160637176300501405390194534931677498164963491945589533411032301864217749591728124662533673366446363467688909050218876913612760657550213639897723347736688150458273111769092334758646631301012666670087309257413069436807247868450973132557092898484163503384648566171189818270929110755692298557011246355465536240601986246000413598762614067118325366412013913860660448555850230499383925947378738912202239993648012362175141546398476513480540385459495177107336945441710316858087922175450836125648929896450513937159237989572086271455830932549133913788882223108761052731483192665518347652049561045727023250639724061860273329621027098886305733724101003361961105881965976011417441078726503097340687422908679127643950245650453925110707726045399031787196978488761944310612147828834566944503699518085558119161073071471972316076190491674034860353602818168647688536752935099407411056690143652602767249561070535345778952415994324638823085727240914011184994892296834138237827224450470004599169972674707633481496173916138740817288503429313795583054485332684544518298520791379736031964564261571558963537666253175232333968723909402936505427808187307906784908049245402918428131199859239329731753196333974724940104516369164297138616025411449218560558331449934108869814928722904545772806147463504002275533593567437311552114522757190907343564508706075670134892964084564838499988333672910325188921861123816466689190842527747978573627623496846678598263649548528959694130588855286188187375853223903948166366393196430907952070139564968606311122415151766978900525326332454987504653431391353306553236226004557371606489442948314736153282013721470976343966107288183768340588559288195974793409506399928161220351313445570083828712024357876591491940946444830145851180115257253644595525030997997240616969726793414000305048300298248163570975783093527485602348805364999132659356300830445637079852104074131218618640065497552622271681820879643219912303289446393232016449770063179942137103468387186727764003963177984469998233931112089369931555166425613663168359528487718259684296937312486716574827010913244860786751643131589443459234862919683077065807007558458332520668219178553561377702930863830800783689837495482577147917911556894970478595628314260898247153298383803071064647570303750046836448521738371649622075143260498896212046143910975698701913202085714482580524268963461631571279867811708251974681105888161967514472818214902439947918953087801859939806791980789301516301607065895832451670760814101515036499392413284412632799980760588879622272577528019596853725571908751624406302612386665014447654762256035217728091825246249913332401656192689015765150978887262289519146380088888655193634940180520428548963707328177729918576443804583990498399249799027847541371516832179723762901387245170627394629049274282791602350437523761900948149087908509002181871927115661904397800264917729945341767584366874978009607817193974814682942954242167397365246092770850082415665467449040716729577442878144584879118027001527510093102364478070822798460657996206609235256824287571131103080835075562892125075022888645282735244982991665136369256948563123114741879754951882224418398816104827591612346510103389409892284486595403430164248198930641593805412514822676932000997498338527964398067267096224833408033790692187002682349513430080736354347577034894012231915328353107639158329266666486138971563267652637320161378796338279832924754285667284042192182447585629901966302077507893207188713395552281965034684617911026450524378896100371823125433543209561542733828117062484087528394390181936337250352536914134487321339574267396152249494105589647085598466126274012519659443603407164339350805271300228670172779030923525057059471948954994885050918343998315072576216658014849810843660568038906506455548642217422162533117542098493215356892593421423635641340895653342369276869407920832190204596899023709239876895879311245170455522920909292673552921269718928350523354203307106472837934514120635908333668858796182620095241695434442110141102626561546586781915328105566664707993231204409641364517986101957495233315965150615283706187413050680967381642780230170451331366660000953060703478035509262577367207549212886177094628254191477865486707588640888890841471454382512103698466292772012076236773645209868636056988347098125769771001610554450673388841685220616395878752769418221273614851209315864368312116240242560819160344951604708248630860718148240965123070289224942654135520061470030095371104046873994423526329015188380099089940525691303564318530158632805703431256112181022913364579737926427908363382939744256835212349763186944526963437145687336687382894462373297165505654670549616483538144418936296592584764338736416339326690665388007943492342985934938513892114797215859696381805424193841100227382618996526238024079268162377079293849601246647857707085469894426258198542922403206864920035178752548515225035044399892140125590530499680658316012845033213538737623804461662414775731780494026204765467087311987367625672070231897601604428980649380336747758209685386187721444566753348617501016392946277966441390974289295294940879859256807270305119584597939109856395096828171096183661457287375668940553627291627515242580262649556263728508352201747908171171173511993774118069166049087071483514870437825351485979390572448085221894851764842260768938001720210826240134597366313746861053385211943767192629354820731663990146499169480612532744211800472669111649060178941148587162779257217712293903771834984072966054914616681681562066199249136621342906863964601438798877279889804512184768238685844618378997242493992069267170988629616496643651854426009238813306761886715480348428738782513677700440538249677295548716642015220942169239735187791173865947072434287834102068777907333769432953371115016990109462980289430927648352129250602322161186296450580247993572174249518187113837964143921160758151102675477231436116406336104563913081319989883861635771843661853756713763865967723893071709376883401627392487419400131454194356488792035408453313532404477073597566319050754077440828209695549885057591197449238032150701668598515408921053456533342079318086756335175639385793949836656488362143608014368585357552803154425605672412706040843966676733973027274317666270683480624983422755706790277654154942781241383479136236175751815814371855210123348822381074695673477552032601591709889868852372640589265092786446896673201233714650684801414530298646735213868831416849852353090746761289070167751965501621730499591789493045847367847564592604663070601376596482962637004875981183335514333206599923258192921374532926824642303957552313978237649868396350875654256165449433309581088882496190647101899813370892541925098592110550251703691678484764344200944510587027296472718745952129663581426737453584866133270923354412377324945920330527196219806319207980046348871644360271830780866643995671127408710084850150006710948035886886790707296139961196886656140879856867041461563760032775703648499971876834043806294982427361122412687394357568465165591936002511536720707995325835657394578520014974320658611265482302239759141247579299384400802256268376375765993952879473005109717729032300874118501312620018078756668692229410114533059689486208398249922993752410803857458815828600511093433845139030167703825782471453272273849181494611655980544399441021262259216912707614248134861152764756841138718748371459440706577838965264394514702851276095795996438396245165337996387066519902696972942414323402473101292946602696544300901188326645530497019284674008200692951496804882079692060435438450043222849750507846310780278004892425175221335350868120777619304884301363653326583485843318668255701720545171727831380462479749757244460052189921345412936517033992989230838775489595918001567343567004592296801411144150177166492014574257223748509575131966739692343197848047443972546140512293072261093856687849826307383160079441983063332538870751196188470063725163826530967748132222561272430345570300935393127716407043703419250977639795910642734438030053026400534490586113111902313286376579780304613657419369968650078591500692910845149532930048108847485445097603013293546004317907438845079351037400281822525896036934479067999293643652183664321015594072325430015746794413943669413090888870749227706526852524843447229780897525606356499240009933467482270181741443480911296374304432874223212865058546445562094566156476575593619874037670272840375822348636104466435392106751172386891283719823603501918860952906578375992583697819681514428203737210740166564383428963048981911953105994416617473193870940786647562727713433320889597649535753791971948630721758918216065346722886175002643547853181485491804273487406006201732200542546324054167098523303524182127635811378239308953313162397074346790474220371003127395547580301531202414898939686889554385003218097427053117093038276169109743767663928567822432628338964633133859906156804253838161270747693838564113853844811895060967021857056410684874882047187970628002679368194659687718711519160627450736807727916557540858152851564630697150511120374553514562712615221721899927223260258531609870114304358306947083213034009464133846735506130021369007502346787069426816086300644922214201416563140180527735646073779907428272603621184808874710946209865516840006944353787373558834838581855263439560783818459621488014770746104692597635895345047811133363772171814489146940415827425713184983922726168011754489943394728656163144703718561494698485898804943261214512215750780010987267269516591880499219407771858905682166288553636635430105223307999138701046155656615934205833091458260790026903605079226787974407904633202060464525352102153633115934321951575586815498505782971295283087269065810696164434546377267593405649929834932889008156042080484987876620582569420467851063384506436992399145236868034032220580924528129460244322670808464177457800624199366644636402036882959457596296510317890192706078211958295207723732627919235892366302959005557830855607518523380345702082673865712395414086815634778027335272763471213351115913437027674576476507901052579182848554870907298910880570472141812495713484133561789298259132506035124045859846735205084808107023390187686167442138519157464646932724350085341458271295579583920348714523513762258927636055094935431441074106182249008741527532166913715319194590973756162170970754548408620379349668536183885503753519540146115619497279611904692987455163385475472503407906917663237042215357965663368015533576770166329029188909090127982593533332377351812311772547483486364077287362830199398093387494204806758596096013430168777064441477243333485616173661749859619616172604562353453850139481126676942734874445820230830166858313197944194218580039784879099754014921024784979149069310976830793387898240517781185955181325881012543013910662819801226505413603334721274800317392717839290243439344098704582273012100334104714864435651737474034649562014456787825703732561484233651917414299721720081705295223169100195387449727889750087730964367487658877603353519616668066762317218192402677997837292459594374194642438097885972936659062890364109713330585289340236495450108943011126045428842152845443323512685661603781582030553554558143437367817980896188084964188485784346402492162131915441340370724307648300110916536041334247779658071930518779938405859735746841906425902075828735123368045005115847023994024142459099774954117312711624643909950538125926762281410783119769870898681201845830207337619831700221534275527599300084120566757304411898167352732132682670192262229285062297520113873483000108036448161764920848068167567134192561856977164983333605055430565422674819154684564933998500170994228095108160309894861726480825346083897201638091973073688058515850967193735019830576533950162982989209625156142255746103830297981472001252701191066543058663793959649266677234650046004156678920886949553975120326556869064598848290581424182415762666592321544019782138623964647993943358296712032458315634971321712814586411849590232667711136663163820836801510129116143790309968138485495078109215543182470769711017738740236772843196459159189141459444220201571617463056242248703799315076266286124877900152027114212086028035633398503186750405477113806000983116860802342854878003408513032101113298693216902481095080537933202483248564640472907140317593981648776511040928128033630230683313755357809440239864030793543074589244735304720555213053149734363258612812071058490700233786128608674670515322955116312688525960981953761843204514304502512400839873652900741116771385963082399827919255236124455768848245553095805401449452255418519308348735079187638470959911703692857699947614187436206682453256608988914010073544962353214546029780398094758933809555560878902108785739229940999393078721324026795498793543144022234792675098727540474445193883982071267539838020982498607762838892228135705283316065876016671032637969171157153398143474671452913121204458575406053325531328486558839070690882677640007616822591645330183279326571297350309399613045119494132292624632453269132906365056141235608229739571297607941061553675177149148344411925401986347291119171947949749008775730262091158072585989316055846495998793576850987645048310450295015221667800859497998297892864246955902155707637916654869360854988496740633621619779293359596641575651790385331098288701954656006078792537228003919658606165525561759949145686682650453653980781641194388807176018516472434556871758996352541189649986559587239920852343361751513145999295671608619647191850423163961642320823667368623552679884879440134438852113921395954793805804607175322775097413258761598534057080927350578650058497564271394094233597160799795464956585089360301944434830315111888749846994263998893268914471448283573090641521409413058943289762507860776047776185106741208533058730631270502522741720739787487731167783157419123726274760300794949101975137525925033355346619155585392893744009698791144784449165487682173696473177999908308189957796531657634468818461018774024214513920641614231965067762668568712650066478438583732714780418732333561295307731161032253056386837015420760154858430298629704224768548878623807875852349911157864962771461834327332465583781842154461954743703477710261287516779948024397006691771832509449344972608731410816093867508408751688761695826917326484762736447215344537449248872273307044088632771459172076160538747469657721021904705688005281477927138536286384812781693438246541251858392711866020260302988542255229170515388014054416148124126330965790082861444653494969123566129031097953192198716097453053111679038443751411427729479084780081660467532558253444028727169667292859823250493274208246751213077020584966369889713748760116824859713727527643952728245366039999328722823696493785527992511518939225277332082729325194057065836823298608936929500527163977081406173209192676337810977057049814890023563858641419196165805687636245437657916267257160579293029895577519974101618881707918028330237224031236267547599002811842886904635935802068824890144781816907869974102015494771539463722074256652143716379942748989058428725063718735451656271906973111023201908263301407125629164563276768638509987846708349761693871422710494074162107047206980494076048660906343953234509668614684377925059733968313047701673197520255510862975528327102783525047453924296945419288641876583408754293257235065270841464970659306684557548911922933367080029947382547909459653620588378497388030627478043447075674303820253503701267855200896851784602699108518974031846758093690293209390948025754847366874075491490026412920944198809494143175960515298011237786643696658287920382317677445069380569821503684243724436283010046103597355174891005724911218616710770585224182210115809474350530453275959576490888415118026701446731703182041464243890563867864330391877243268567985134895326532058317869678538774107143683449344035843733153619133310510527950391717777572189572985565833660761466671856216564648929393556844001945680408802532680594904541559292920640945340951237529799678355859704310598130561710404327621141962126548140438749311957928983939590313453819963844199184613849876049059211752171605073097602701322815751247482120694823328055687454259053672915486058470242951338421479892890922830167370168548083715230105820057976086602795153130593533313053053154957428474724258321731209160904914387380272775268942131037920356597700607565348622012730497613941489416565013517518852419630308962770955881000631040900920873118924565721409694004306722107344773494143593173595810243570090136608671155887317100022294138320067390836638131645568891462880163619034843726450668964833170468729039062179658013911573344455094533072612903884855249914936650118544328581444685324216749584585943223328658767528656811989789938084301940134605640622647996199908835035841140594335456981493481400016131073615106951348552116566472929803757129875228871964325623619552897267331818556257805443140761339540605786723734881578641923690483471899437905409664971073439687875669761522116381567845787807077456467703684359612761783080095122593293186337223096084692609114825850942590455551700602053219580129976894814687231357045728555178136179284312160554752732205914411732507021538957577580907713172905700738068755714934274298135740380084660392832140401710213781717231896890533561910874568170416971425398362825552714148417408254275791257773587133327010431699912549650005029217970557285230067347858996522142314570646417578672424280529108458696788412016737953641186856015127632399999847020736171632961550880581122677237358400014025219024241274825881558115683957040013103160632209489523882434501527530439458224348147650345263815246146371334056428920467246265637788547631876303514318089480355838928659369016458919437873986249642669489883092161145592043799428805298110067293743142589189281846018235805370928642953986337623561094865718414471273390830356925120769717468380287416653836022174137808159135278215565792014118195990813678199196658485581894846796067658706250536298056263056264497604042814559076188933986195229304404386856818554534462295380046597388727983560507504587083715780565715553190871611755782187219574680090478757826139643926324304341941978756290039256140682433025828215687338615773366392748190582891341492551592469121066811833471965768049088276371252885135880619909320991485323893417775072563396335891638073695637199992640007963838273750748779532639220179362663306618497061040851294681789795941647973734844686574968321982031867355089672353293017349190317570148286051634276742355724457099088972720200812471831745681751838813690088099924721107754658002800082747846976080142034424506642715764870318763002781229872191469513774486025590914502418082003275607102614711609057341344109952798851969517379189788683376884727167720022182362076510166390531029191128856688013409122512096747505871465043718230911542591475967346896946292661875182593197483940928285688940039727685319795256325922779745481789880288274244564350716037279552914997802012978505259962554614129361319671262018711049749118348539542095958278196535662141863756326904931646369554876832674156753143938501219171322508622856054373553102913739512097056808810460008917858928527351897126633356921431366867002346608107678276112182127398010265919817756134736450279907350451602889290760772369457855968253244025341699896989135412453467818539172706268798889627494273127144193816042558126327833267329785512971300524244431631429078051445692778547462065558786252859386915338947726308071841187014856881044565146267979015265533494611083354036565086963034139639344747948202189657812017366312641215937600873570889814241942788400613069920914188447844845360095771044404412035589487864556734753588844315465565994832298257671067933085326576844154336707131967308348559659276774216932497739459992612204559074732231698259316483204360863263906974108237897718541692882059676586189731765949126967310531595196840582932162907306314109693385645725431350918148069899369465282800402909419382063777659811176250749277031806831095849862988007052470185772933506743778526376113996138301889460793783238216780625796735823766275834668677636882276656001170507009980230564960543222063154501035013734744095515302283947880687934182733489390313176043642410927092085994158592738197853721545972474412893375565567951713029985975527945004783075963227448330495501849917902413447297126676733218565841336762602740370269230236426798624516122193692157118026121800813823965317546184269627514665548113636106106057993070532879781785548962954844927480119960334152952538909253461329334242445892729180472569475023656902044022976993639007152892273300565106415671077176662873815672785006718068819137747977809103256159025371655444611618154790914579818961909850063599627954259993325601384012199038857801270064051527622108494186151638252722350594346214483215562248948936317625994866703347038341280765949319930896643065718573624439609558900518501950589393897396500110288179381098401689598467341637253010886476087650204831141825159921378697675652678378058687771427399993508054556642090771187348225203329605536699195723184913850918289132949261707723542491073522933303811806744348730726423327020564684124467992879415916401010898038261909412588301439656134438351600377390244881656549829905997841141353768631419813453175288211501636917234182139703885891361052286145558974939257271051510473807658218380256286768054961750212931423810987564018651576725772465255099041949781579445933170073956092628225433233620506126097577549171113072831294649359520333130487543252377084454870190885758149219940633117664898166455618811779338673754706197594402431962920636501158054518115111493215244497590150704805053502359982792151641699512161275448919832283467810999110691867102909481788348311813369247466156705645324879182741640779363583156305613439593956247767238846677823978064800766065998102489315233952628330729580892484453151048947064504011258446566961921523930181526287699185951913281470861405510694153666977461607041581438017152643040108979390226495593087370968955965276558173825338241417692933419790005431725002284451281108969752698695189767710516750215169192929596288659664739203451567228309569522260885429971295966728990847405252457810993563581484154044428938381706145047624717479550863754874317009391395590883458981756499665105381469082025660903578933619490502290497705977155221650830409557880054622749687896051309967055200628683327502384781136548118400097570160143445062007872501278000091711515688814128713828304422743646506891065022468217554550432486617143339307971873646185637122908211499359859631098447806034616970511439019342945069309732540170654194821299376828156094435778688661124275496896304288865792718434202885649842735834026908980403740488609902228153085323963721918388745731511844702802458196249590401659498197752690726613283031313171888248578799885391587151859612531311225868112023672520445970115052284869821302399821720113044974123889004267296045304996813017363202410108489578587979250771007425801646942166752214638499624286487067506646292493729046783691950549303943364144156993244988530654277823770800786189398890786938851268389907560347731845490902588740881355610646225134338619327437141285971648851404679380231493010402454430312365319106877887953857558612243162004717915675744237895972179992276433205894045667324703939410434436720788982737493874174133906957978076924309840219488077851244985363436106856563378974217217700481186423753383796778641093304166408768430584557917341091463911679034212092992333677379594865781082920377859604715172562231527270347529147523127168062170691869147431184808381278813435208447181834954493969600056930116606287927736488676325708269866785027548067618952608283365039896920558422821415478105950868360480446606444513680581224321002387550731642333463721907856293009006206146674559042145011370148338154848959300362324988632448600446027125207681003676737539248631054125326260065589319384975502445434919726356887321556312262016796835311633936399408924182542199286845602561802826547075496276109877892495324132420871877783155951056339730170352104271413433619833614226510365190806808153099952165665804540828215793152831068634700386358952248744941263054404978822329471246102873203148176264743801639902841216738648418691730719165922009272992419410020043166161304574361392256476862448274833625680113026340017258021047130403828687823369855950922241841920766529936788250807065230154688525322807777202326772604743342123991022034118542062206078774821535894009391391204234980722634908558176187207848058552326217212539462968789712216106180820779846078982478026278958288306341869877393983788127832314344788821637284397500894124527733378407086019180606496936791215066032778156299759230285756835697332650110507622189009068618341728916470698617340971024559258027085298593138514220666532375131884362279232850691267865747162225269177010899600661199243194733019234510087079692777854810432552065781151457361969504059918430881028047667382432677240033542508980750475322345762189667112976001197195235935430538873022666404514800578125937680367117464982075644078713709048377010310971019801580289573073324740890773586935796364164901937288695588344613895001591445666299824930472529498700616434433265535680032721360502298096820628418954646432112620360801847737271517976552031207304463534627743121959515412683541989326350622918925598405358125761988167847521462631636425268196656722709916725624346606281589776661232147394093255997446967862706662415162918855701735734903897926979334266591285755027934140992822111627055764702271867532430473073435081648802310635882325381263017057405240997339409588589352070018447135339977203584404224030987453205999751997439679427167624559567023286819165689626750317150174449061009352119252750467017993537757236419320177893161866269186953773686842535525802436249570261569651198812628222020178668859961077985756963711319393999444350704961202394973814166782859350974949074774071976010946882021010875002914820884115818894268668629990729156235150141152921500499795405565452984892613846110494836776302773815960820674970847774332669692736177762204478386843210309882500546180035545583609487288967912748964287702396079463310260255715237554355403044090250219689021423111087587272085355730250744738166798781650954651593045366237240260184398349402098523224257398891551432843677042497063931644232811854110547126239778349654211512388808139560232701578090171083199353661357921278166100719023291906751168845686491080760447582777274782616681559006039887609430984363498806675462626666412790240124255638424169083906387333788372542154514566153673010829444104755992904928363052474477859422681754873744009627659567968587402275160670720818116262642948652198276600394091597779519381866718743626563236515661207994525302978705898963098601402341202133537840471881819089485321616232015366843603223890709382921529147633451647014504549748645802212718320247666699772589772654605529525172113431389820007333998451145908771989973904735506288139113656508836159039496685330158420233056663721713020240668429925315649128042066989702396045651389969532173967964113423737735570937054808081257413875233170158103637563466944870912531084079831680987222181732718373969730608161276422527022347736752010081201059124342520721845053709489328160121015965777775616354816204219781557750582070274035607330974383841099852888239944982136427693434522263905486695630317683716777021173158537785524977933326061012114133612053727731069989002031795784742752874704243315467687546080341451986987116667616050761155625839163673134848063482195828403385073536617169245526025121940150352182481436652368650993830603706048477427281451663942528453201039218097233375938819043867765004754191115146432899987950931286853282520692663641384230285268548901644903874688963377212779649355276355528800432713379172612682719831643532978995480555136480245659709767254452686844244594738994734825709677063055911338909434938879652788552558798037768296736729834305207783866533798304641485244329051095239613371078909641298361419784346124036827639160408973998924657103713883436987897523683895010649012649777402903779740333958768160228628028294405167657848726179358970796197631924911998802323535283962056300194398929376309590223538337859366949267385470466111256090626318237964819007173332828244933018800146428768215670369087617130746972084294004123305351955625930531054743731342831213903711454975812440486288321773706880027075601686862275869191991443403273605123440173528274754384236621275442866871385971295900491873309392462637644060396387657921024609829686770730262792087148663977488563312044731371885170366039338353351001346895122487768180130074277509806070954660923071963706354469628923494714745366728424277410686659144930930930181782981262019284038842737463714523297944100170574175881315103064245894735812539694292926371091139725348750787177826843709870848828909051018928821499526542141263348653807185448618511835131376686624175419101191966903225629056964951316684663559729089118425600173962113267525987694734479004815457310408347811592772199558813573306659455966661791850153067086599624007808734977886393332287869225665890061201540034301798854719447438539230861628796289700177607939501634826885470089311278374943895789259038034644838912028837167243917907204374999969006417154579002760401968996896706557133250676884933808248079028987829551476119020821126623251701349439479356057351926075735814547045194034302746343780724151699294260279032206082942927443177280128083193161681077624708966712751996282607800726726218244142911990385102696497793501225527307347426895274860662036596625812489280592441422297365073772281433618971381955126323822353608023167954993680174427665177096733739406576365962394450230653792306806952582388688915339693052478413066717557944404828419205509372970274302763665552029700885853627959586181599318927054131817940016726385288591825048092616855552611306655373483473477872315625827169699173845623250295519505254082294484948720071515023508986474916070753245280257093608942200771848336068309393987721530773426158589663817319134567324956213555607586752047936177900438320339389423216000546567342271363924211451544917891668928274358453142626185252746953298687205321555120898820984707351070955699971368253026615630525951394087762824727592994745730727011444852615313469758343833444072240321734235709327562473299223450745078834612166906436238590331622292879810093371881150302247211607542759235146896897099710494448006428071651501780235809075353421854653874924578841248591318380093682288817397914233261403326222730042229683972629376348145710400942752549850715418765916966065830201088493886601905037403437858563569745307434560871967123038067780160334877286390457403711932776768990655160148753797707563051652049922374077033552742577680214048065682057821576412434686234161265242996598023554615916628918511874531960844476420410565236163184880145396316912031446787773109740971662356356402888932180935221378473853658834010437087252504161100787581816720324243150016316951882762914554904430872394003064271248999387908271608322129290509401317057480895471897034094857120853597266973480797526165197895415792351335558500583875987143503218097496635904959091317172625889077938907116567560542726746609900031232134570478942621693330968863821948878084828534737046383157845848858270230650304240022475119335124682637556376927945481015713734468856721145119791012775467910337819804638455279655229316944251188711578286009741787844872090390813342565547217365913195871919936707579084623245992246723088512535172343632885241685111871536336846444013965878098895195436019768982526740502463105337378029959612307866379202912404011061719283192525779553837930166721174020819730426224735422380666731127351736194295859420358573801223124255912962947404736844126209107567597742591314737362250179387465011168871484590401886994986918352459284772006331521059716330122039730704677417278187423427674608799691315796494273973250503490994729244071851291141219532628034968737646145814446024050252355087850105390958954569310773694040140547918498588769115016038610901251929160564469180936660350907756398281656893922055892925972845609451730547194384672033317241397994534902601143183433386389731493310540276259938451377588116234085862512484213109708741565911623441054213882055667189590341102745141493485278459770354350168710041133170457555581695911367535884827138722567480370916596871729741081008716538787358035001122321569201719724221741781733915360169984109494252274891914397209245412519569622434673119703467286899707815455805169569703944622398351899997486166132842752280963245227251458261293783072082172835015722956374809173085085983783492229494179018098457272145431431965238430459069971663606744028032828065677757935079227783822594721242433133599821152501776590263171408954913584798467406634147420019448443561664220578115013456074371754795929820560311741642975552875300106308725759381662495099596688343192423941865551236350617224739924028089570137667526848624070583303948177152711943370442391600010645318340285221077194200148174550744291150508062450631378633442601963601645160264186398769196768641816819007388174712595345850296016397257122811647269317383439690087144621901565402941747474090897662701787340935314639216606482935002767591701936570562990629418229649696832660443460699055997826421928175251814984432339956134026052904024348171212848812071150823406047456767549965630062862683221435005192599160768187624230136574075198333001697014070292529689358179114751213635000646536789653564700693171747232980847212871021451410991326028201811493141156024727879500371051317387380455094798716733877551406330049863062859113999378956361669321405473111103926409286343113736422947616650106153701487167177542487666275283552345710919359649719649313967692462427549518265648886598335248765898139538184335198038611954532465848737412127147824055523178902163337295272594913142205991522539313016017269215480638095073974041526166927194306835183172645052634377147964909536373199368119839319836246365617829872176803494889576660597219530722490268830512404212871512680863980901123939573728465803418618922164172274857437271381609454592811352342541590422598687548899379592226325211807343046726606566398183571791205381178032545395956782567684384121884812430238183776015854199764713109048898617211147376308696521715163000314398556964063142884143387494244232573665163844258514618344117461267932545383992616570817696292706836234588475025034700973767550647401256931749411547387473665349378507634444138890633143481890765681489507136211352782616071595089086832888436225911780170008532369449978112899819661097820547988013017292537231868644508904925893529042034705529716764297505808527436375684475614729103764139092101937574686729912050467488428940617850427382292929973835681023290435439863185147441590650204938705770121221067797399590051080202898395810098551116258773123413940597045079797062552816302384303105683181304368783774089452794879535312623740169531418021200253136570511527164573892992390230331405177580703099929396048818641757210517746083444407197318596610140221465088569263433094195410473432866664029477627183912209088672032637269474085916568544041910511801118957700278300940704742410285559860222319295818354990499127609705471893756439383728027875502830825576712348138657052530337352680932898768869741975936924078279796556559356335693843411733840986674878767169048671293072995035119017410673134351436576334161860350129033366160614760121512356706226416340154981530597000087155195481778627698624707512239724805760085781970815891066807377521900093083654969239406831876373684921478361751619697771803511154230509412938982493747266096144105403537927597724888871092862665467998562175966413834421286765006526729166298136256857096463282100924857015948268715836760115546704431027472622459628238467334700654164624658053178158068584100713791594746624225214509794351662579452425052603869337754811180669991683776429321787809025895141182662616582176437688131782883498729157848326012969850997981532269789955398021594545010770300337859459844080056174512232962785387301378116764089198130052679794873482620708178455211041466899296813120777398174320304081646517415632298614521306241933933975835939670315321565649505277748436651798299854183469218872283387987827134152810525786579197720996476174471413350816181352451227657435198077647465289153288054403681740832871111584086309005250223098286272406378223115858844538173023127152843154708989076075934679380604721509150572857329054363896829780087916675871361047323690048744138678097111981064343758181491908847780723570556713606735527029777329096644031767959590561480925571866812357998042847995511603546919702456207423201384412180733850294862097374894415927912698416397644543803823127065590300617663323658968100356582838530721556196243506661757027072630027735427003355488977133332084161174504949905506851323065418977767710985573576719259298717708906987714745842352758817300169419064936871912796160484824783303709113209788989596407420462772780825507179590486674001364187770891356752119231724490583264047536931931135727280303539870502146720225723992383419736701688408248662393558433692588683617519452620193008702032708160084948685320004365359119650469029391686015770613519643245400233822383213972897647618387129916113961564033123085680003800810786110814575351395220009397132111609885997348511177099246624874819150446953510236344084448240600231357474644112149983022624756671459847165054612638774589182417392518724203515868746034726354695243512023350559852801795107709473696235291193633298893075882528387365420705988569460300204285145791737924266141956604065106063579603638502756693669049594063009021493592931111406840089485004939709496688978289917436635964393503089550507665270195387790305820391159612766543630082439736680522843722100408110224412046348836469284592656236661246799599436905403481321080340210502323932683001939780989580353110802222747972530852808459643493219435977758775954534636472356221482579872963862146136869705407162117887522688815522859825210241441573169380861488051940886786437500261846173183705525526761454032787322447627485086933853845396721038946285284983577524752059993983150373070231160764984305211299399949944282972105052979973394639075055136842256460615449705715947358029182956723420482676745883301022041778550629231980883137060809154939907979733388509667497461040419463818347348430145527979924001269024247009464868134505751780357744617166572246456982784583958741348713230835589418995718279280307061434968344847775232775098583204303899644388660453354218705741412522692735795830340458688381264709720892553186189777631513729827495362315562437901561109014117489365386654890329979644390004678113837424841286928065217152630630601501461183276838702384211549285170065358871609953625039099563703380837188218648174029050500804836496418237624568453127508187101444230783364339765141463951950531546137514063997645157863580811359753708606416038591246341365061490373941095565891065409296483915767328767677408217162711343900512898224937934537652885287851551540564461090914607856575341872104835952710531344786524191155185065209509785991319921039533830818249050396344829431580899537918735947039465882149771947701575629039183752990441251718679275523181593273354251599467866274645703863021749784629262087016858118395339010727079387248069643890177055308976242694656137067848330639303265316186463349691235503904567182656718973145432766649451431812125424811853909178143764629014135049900296071285063046678165632490494754981950332115585478607303724438198117368258426448815605245019073676814472865167457346503469128785317155324171519000467495600146955780969055934582388567081397734120530252070276775577193868008152998446802959716576839843724404086209482832260361606193472173733608670545479608270439218421243756264080183895301938457127862582434751581422913038745194877313087949287601336391913881075015705642905847057567917679559243010965633917169783031541017962512163348794064553927675603240760837805165503427622944625188413898368092048621901781251840584795314329361689361748001636219474065121803044988260720795363513957311831545781143060388971647056172275974659133153293124504950332335556408089882679869362031329049751992957327386735058411412899349348652734056000522504553748005117588005257862542035656610259986408933693435038732715064826905056678008557707255393196783252374341531198470581637128534657167914196121388436032858626439296882038022703396957381453746039145792688336094923091098374581578290240653500382308009646329907991826534411196674594039451232166124793629796020317920199126320358795297022865617401169269633657873616808089441388723590336065140737988198401959385290248172001356585582801672296827169255827027841195827728370951584439593424330168109137666542590710004131848399689264860772783033027660125548986670957046765007065528031721282851668921214545996521524681079649738535734551035692515279425183024692030688729947282565196713383678596826315837516843045048770774022212290718357857654735614636096015678735491090579506867069824074895996444292107341985534965249802049003473099610174323412139307712479625331823386216258223340472307483538690668695103433861331821985482613305368521867550483974509755499167454494998897340691596387970633062597348485934902735351809253668872204571067152923360015895944098676348937917502035131248310323892053167955267834209038371482256733729936176059019545849030816105782960470058815219368028857809773883236305829588197540688094842801603001404050554011746570119527317419521009856560651259017718929561174198651452749810297445933454403050542114346895864453015534271421162591771757354503069991187288452463948798531809152255772712727355977860246126057404772132736452903202153843438060273282084229060515435443203011532231752981648200704737140123744401977880309922265766750263241864793853103432051909831891990334875034444858856307762420418993933929129083758865946521778063843201047428641378384296895927649549818709312974661810388433413205144175556630797137029140072321823580419471341554907578272790364300890702070132765176876157413239152206393669854962244059376708911688891750921463892180681521145766194857059719808775039351195953476403267857272892711789225840467136121324810239248162464864511065532706902257858950120550533514924214865520619727471165819037821343212544961955501644925327166085378228145333526808737965424850143820844107942196063115515136852266535476682509271692818472815842936000820976342627523202540541381903096939785411746794754852720996090975687338187068431140499590997240997568112322967388464421004086848705639063473189546906538536203797825261209805652929016193280793379372531427512664846980785426888129296904271487746848387369906319933796029291031643192425871766602045325104800912127365658848129249798986363377910746589368865559087997499032842383316152708855120107861168792716873779814174364458653699736194971673429435054714974795156754350328669034247337387064365736280427099580522609547388169955307460863368103843171588776883549335812291126027758011996705745517711610349832989565790822471505972046541663310227353433234136117353355849717631822708452819625300127982245361921337209728337548471117175374425729063514556896976897542763554074240212120297177948998446974118034984617483099203333561799330392582628345719198789696128512256785308106798882535402214323764005047245842533472767166445106891955292703681812300956201625973925464270158199895328389167170145152268824091870595094178900902435630989087709876492566592405220656098491581274091776133874976018051325731511829085273847473147998795550123047182083369772640368397350484427447839581148200117654340109725609747237549255973741008863222136972299601241905511877198756260731571423056721241837531640882423558211899604644861211178342779859638619757452119745116687780898076180906843198586557091345968693894691240800374003693786193090330269784846377426937490318102993354064950283311462452201452489912134786089589257182869875047475948058219465070124786638140492932409441246654300402809871988223621249353233271245089088424844304258605551129057003402651427674052588825969236724201114139057094543478899993241053506242183627269352606250794768588499462077605235268487426064320611994540575140560722291489852140125143533057017828586284600235275290578533676860929180758496732933493617454325352974603283373326065811545798137645181590203003401225810805019798679191138011620386441859081327779731564303384772938111610008557066255924429288278605345279178937490670737729090069280969496129558936409078496758914025098960106372359717712019792771478279835836920071036961981062665286660407836780270960157171298633052907880704839875455458217026362283093733316635006462598782785600857163679782814384685688967321038754839369986896279282744208958052093371028524296300886008601587700812936441677052842184342132391414061379522221753362974973766287827822263278403525314131897993662889464493399765249007401219403579799343894285701889312356493405102474200115883717812102180500503473552676092197532358045623658442335185587753271069394257310546153868936312937360575895454568688438865505677620345806167671206530094612183658165061402112134458435916790903273637108013901589100003757131825788208056457593379887162504577754829047159360028261662622183785472383612323217284015335061344737143155173155398607109945188404118232066217013121686539197795218060233706424591966602609461859647882747363015654028354703684920814039616434734793817615662036978211173055752848989263145580213259924464033201714224994749911509569486642384801545163043490231731923804903416792501778739692480353929576757057719942590260349620889110922900779432538570065313664734464681229241253815723763667902547242136581838429436463266847092488445553761226435453096342534829588326629087660392293405627557494501258445035135118341176068629890825125257005832149925350113145485544191800677723155918080183862002245543983554128506095170664387267283303547963079563352799643789303435621020810608041644046679134077823583259904321878079375990190702199210494384292169053167012372191241154957359149337519208766024462173941796512486852595346997841883828169875240421052932453909691744702253019252498682933141942808633475367495940134678808259972385749172983902751331714652884621689704141891610751269398140561289783425020112021118894703008166257251868397461720354905118999172354687277381411580952410518804287511724599564762150297673378867706884835745996110258981646999577349603330251993632865091600872645735311831007259696307904085197375805405280668459039110938899045476943540702926192780759961181254200812258302262765638629032145604563244045738419562811057298729774614481826802759080443962464497509183758700453404403319194585359322519753778740099656093182645026175232942429230788390092414830877065282081883881666733840856724454713110939257174995240950685882389178374638317081005524591491715737072161237413304766493730533029543554503113065574403027296626583907869946396514961547957542241400408662499917887150347440423037598183390851947640045342816526276009068977788989956694797367113876926644068505720928599173777968821657484737190164813488357115100145589536010223223164548684682799995193778300236785173305446598905395429207624682557633176118509882450108159181426778962963337824927476163930184745107890312757035539044085518276479712507455975420180784752275281226343310152651972114007364237201320405993313208442519455720095798026705086210149478320298813693766048597952071798422565346088621198633393076397527706957148067089442552744083180558016407577602772480871725613645185309075455583314823648676831986844576992033175765085486217186893749796814668688799452687225385545217498847998733231377077517113463488764925580798915975715079144191698959331753774201169379615068566823284228866592567685711666175555837429012821718352850438766361898637994121954117895049552278289610677484333620298063745621107781158862040398491422313199367521035005572538639989282478801179721111016930049759897249041703113318083791376632810928365331053435650731126019887400858328488691591326507083864520648989548121005342041005916141640502179655668406976767581148835913225926817708189728115224181956581207825208797353017501151059753239233440838965973417466299975722832562739910083400634984760536125868078784000039607291248951017229501817300540165212666401780661140792313210580955195287798201389983255570221158694904432366805433570725246551016664566084256695647651811203816804045756834651510006120813373234829347077784732211916326550338895991369449122562381585106137617871197726602837434862883392586008287820351551696126188508282961027418270123511519937926645193461034402687503891756441648727900973693217251125681577776626293962122572203936913723431764768195561339824354375923046537758645940613477860390251477124853735298418367955846990270614576151831363997054552017383413717583460778681574639062242723022096637443303767209990309088230066602784822561625772025386522951611406926115623142962430273902378581111053231703682434397814419449824700043270911845940866009390773318581815126368594721387708362328784269907977112608033089083793555140956183850251538311156172610123122123138321260350303856463164205832275871073578009446740938239703239120592673440868041760633392517183775014426757996171462029901102779691163428856451246179028969849917627627870982067045624609856766461475767186171848989343274371146135256033764415216600175305068895684853099164068634658253889853360806194419919312804274748762287432298293569327928492980424773360680792514282197545513361825756060282314500476861923045390775761849833993529154707480002854910511558291037954535410288311966149576794515544371389796544032767104476410400410164209480101754238846398837974312559825293237506200642205356319248526268832010161418127841234856279060339301157132161079556597844854603453287205183403409631126409049241155753373714673083387325666068970359815846858965758753010557942216494423960491898490142280590607531922092568600145897813349261466011469861172926260010245583652472263848467978081930786099312922837801899461917483539344785572905017645327548399497470356640768025159890218391371796988581593938544474288352537816475037692537023920885135017446192981425637577038622959048275386255585136220219669084281780741842613044503056265579560657962033050410046544018688000165909969790000042972589492457666356375439789240052429947305832271805261717312372279670562058154151568892208097313603868847500261302400165579444994419682102036054367729310346080297385740552372352856422341465936772396486435673612450011973183642889829600724332234106484137189190190842980605806156248786469789791369819426957246233702794548428173540705750681644528737782975437125503159205487450551712654119304748578683313527308150071731281303116909889696055464628173440641386457890419589366654804248751084340154422243177933697065495178198299836253212983405072907788893099658555934938241354533994319436525125658857808195068979787204334817510927066115253784306707894623576554548166179112102983155176059521052924055359397887856709680805347412326800155578769447310827037943800226838963177030590617680426434463028611689568779477629082635790309060407649078879335483351562357916387315127600536711178592544250488083095762094870989935397272056403358373061349166520967559213624565706120180552514809969726939962798505167847949367493783770486157899839785660248234572010393603379886237235481773728363129886359002241839419713226629700873374699127513370125984419152118550411400450217221656329859006534328905306985908636788965838034274645483523217925551239836952641083528397483592732040233185167659774230527253758817134576778016467434395910668209540241126941874322650016643315050246526586041845685075629075711193768591347926105002141607088983727887425318406880801904598047517717619328033093637614778489041292576310804231229950921051798709209501599622733208447173819478391104845671219668527394506402323707646085218119311780228748890457946604555122725255442475511313383179667631309253618659454023936124123382242879595196986351650346279713042187294464012893603591405529313381294218021017861936594216686293628900539005951272975083972588558343215519448249579878077917523536977828047995140064480595860560798244948634032617802015587458857794775580623679075740945663094872930134307950585806963206518626535187923443383361627863806725974446361024398529236326370570745626204507589367957309960986513408973246322747412202087465907104354200860483207414587378240179867912428339844532960563488525843663589800424445116619547031379116289613709728340345959107003737854556496379651382427000219675614467852780510587181117913148757102262163697215325238822513743945039306527427455265990788061429500581973786663018483864579708793756073475568873970808458451366613499328129710296455260573411248132574974926188574930087069462398265581693239264447347955285106200459372037367665567020214585288403781667875059160101835388487036770374333783843039035588406660880532679700747155964673141621056420220719344504436631000241942286385229549493193694817304137304231344501224662544073337269995209684500744592523268531596425310569910243882343403340477132238597577864362039886709521501069929164538710672015550344636127511242813158547466073407947641973113669789064372405989506848408526451435436176938502494760288720446723790551708408565668918827884537347956227472893004384461992484870316202721093136128856406217753639502638109722712744572438471240853905831531973077064389146557866253142529246148480260515019325308571860163178489953183079664299465279143410757701865136954194189655604588948361775143407792672650512495580038043357695418935504216423636393317571038293682838083971252076828376665579967192132053885775779719145380708712707635437589286736592218231928411453383819828624782333562769881813301114404594851213344868642222623242115995654512272185185544007538194735877342489179172655328258442987743250234266769708373746527078542114475397443598933768050868495793215001867362084202664167165656024844144729317725043162391231725888948393905456800441623015146253222221289547631053490247315847151853342739426549865606100174020757449153174384785053755532940935813887729783169073625158226284565453047224826850702438751659884305343847341520382874168150875327434440835881375688395818099572868198273360879434323439095636852669517610966401042507196753275972042973844391946218416322871161217241929185008430358448657786116516566435921604828330918379248720605158209302378638766500865574735888202739114213610708568218317266144924515631191596315878691026290137566842836194807848946173695920454448751182889393895642031784506068263474027839249254295450348364079518413089664514265963648532510144497328162719127243816101543855048400908709403192627939089433588002645158533277174107421841738754852435065783584522824629710904766916852235020207098863580319388561205254114836221728241793469726469678470435311011700126199659182393840816769318652348535521168888029880981447738758469760141597586073449206043888014491595765805431451451568920587524793944806650640079830763575254346886318738118734807147768419460469292032090719348560681186080879010543317636664620191664759178880775613037591083823667250569794499776531157059582039466898546819050703566155823007443091772553826348761079590743047865475275633415235701655772877521420472863707486625585834143795555607097279720143575455104135740323365971961379991954058950490899178466396660562096135339748114755408448690237827912945260819433954897711104859232684514056593389315569508700854645285465096869968590798079579023611590478423271794134675482768838652390908439972933849140945945399425431092613804793661650539909799523487438013719764939110642245605249995965208781310472016150423350231670420298885871219273023974403609387167165994157196494198968897395758371054460856377562722346257283812282003434582103769379825096895260912549191291340407731467734539195943776649001996734142906745594748578272660040976788994946254238164461092849048898895295747556659779810659169457843937501184148095244232920856974993819717595044944981235216206023719311949002751557883047629074909531346737546309456211774731531423000213985924237818563323054547896619431114443732335685338865368226041236577734474387454184305085348232465858551161671904183923529671809266359292661818810474829423830091245123625705220638232817784580070219596523914941602787297939302982497194953238743152655738389608610361826632587846282172114490538851722235118768658237438224956320217034124142178423065032370299222690800626111830607161884508746866379749881869194980702104846183464278577882303535498143531762192699174798062482159434911893224314186145780787955481173317764734527616232260778995292166245285238676652822540307059877849031181900943877809281413340971462906612391798001056748612047265573506951344960305058847454401731439334448273505801604860274340900249687035659468914461246843284768064117397483175182716051386965894744455659653267191885258942293874853578261343520465782576162256609430542386987052560619868219716294311938850235970793125856188869942062218848026235497560088707553972278039376926257337864277611129349785144641757023485664809956637961666114696870761297435401948665414201152170327623016265050599334537738938027037843559227147135381571676508102601430007826506779656093232972805212167025934529622719006927127651750856961448731808041564823412250108461314505201429659178905845955372220370393171024523608736541368309724122983164802291837794262709536016382244458377607237266236695131365609742044629794432965244496286247711140536856362406834305151046960038611281202076102613448387941585100365600002966976034164814023697875696877758686565102322677304723518389582895179438950867462907299339922371058833349871109677672551081200406399329547766983955775229288625481919625145776944141949835777827016412647754429932565710265826695285466074849444426109649295349100225501692847796730148894378654193497940976143994836153229357615711227043497694154764408832245731240521893706712832814518562896128800903494910708032271483563603003813974372924935127202648706373910800498328363798925484310025256960865765940878574903218045756425155546745899581625181765573281926959575570719522773790112404918698899045999089037877056772815400234450074046642012228943872861890087645917133461683029620207328986050011630848316382890929970775658639439446032696856588301071154515796008144937753665870310376092132972610875359632243382760748086633580106158766159808000653381115363969325230912890908783951737676182413393936129857849410151105879920837648824984749631880403439132864912836090387535803457677630385880313975843143637525937394488995283355830614430677449384940530961055578992189097497961400648864890946923114143216646441872988616478498978036649805411157175361602886826763626532657218460442273933344031818141775093292873015246676457548974061158930827906466845925285608514802253799127261823710442891872892611675885843374163238608394466841497110164724566836269385401256733849503462264772576901448435046024808052195351568688219403492195848872529848183088330208525881721987176872749285722249282412514479788007376855388656598664142709570666358896494241596503621660441200866998488973735240560959728495791991966921642853879029556269286630137104573660528150827367070613684934361611347860469327031923040681408701919931607096131824230699826984483845422729819097353640528882961497626398702453489939038666622719338006242016981781135504406693187898791116784226265245510909728768048975309671385956194345431559729078388874950835146292655421240498342030950644875531572193515448552660272250621319540944807077383864910895675368783706784869032060444987854781176807078736376855150512163470585111971578808332608579923857104709175394046321522833810822658010129742973102453152585527561388381008988633791218674871251371937304082008323836161298916825419380700052911063397175587606266573208197761980915603522959538799833827337128496752261906738801240740354131720290986413630897759798467556843357191182223919373407422877892654153158458650664388822983372405714723992628092671908485664250978789859394599857647901001070433207827599933696900329584871511910708361870417496754601955016020864397693253413076386772311852390481200033810817043130404378308121193093197941800325749645033922953051798253926666212366792963650193538052924985628719745768476530961166631190423263773093973403669639544686518569038315545609545236207689171538764438548998143640126462816143437804769604425799339202533553366308895863635502548142937816165629549366240987301114606457830577180338313996500346037166194286617451386319716517276785149442687958711511804810321104854537739174506203124364904595275417270206648204204678941913577971958709864979518083388147059456705218978761751507559596650648267276222157388569120185018724771625555795883981527426408111225745633631527778416471784316668593559697778249171422478062401503495616619306760383323149833244106428584077376455157290558730239382067656217752606401931727714616528404505645324071539124182535516095928816025866034395900360452349914319979765563962858582641364260846018435219905393462650351504789225901570690382137010693116358847853584039821602877648068807756649076208777250475854671544977586729143282815980169232903459388868674444939969259900794854413775848932390946985298713368107869302196262791123598484334922596402321784127567212694709159280696566702699507743609694422111209136720897294031502048869975055951111164389276961356475996749057209206745184328845772564164206469652860416864828493481868033038973234836347355173693955880184389852817797438546224698083731701659651104702852364363263768874708867661622140946314052253735438104085753031299577560338542660250005722798629643942109911395529238126121559384537083384087412296787628557370695891080974941770464892823428478099296093402842839730790359992363989014668470160331473982611390374705844387158989468136893158416971064268591497813140219232818059049554212925027714112591149247235011751020670253705582593266352453280441095490636434343705798841785470393252457578336321194367793215173295667129858325803228656141617866359882179085705429442409887543490430686924066205196065215551301520392501451322536070515488508408901185847752722322591106451927977443926116462973662250849334957625340648564142958073974975118775089979554962423710333347496858634770893562571523340254491754125674662219707391284655274745104942732710122932130137000924688431476489329338034270036215380492793052638127332293042547144751297726668666606838829614801082052841103085326020472813193551266410334351972340728110713938665734078155891624559282700566396844086963955041772337881633222503522476467379143588042785821470185112481359754682858073688390046462528239354332430445177928875218708240274495713342768379305905579387806569597621044882013790533264759662611611452018392591828688195771142486441973785812349029855594744999482707820834644980798898897925772188799246988470717612297869290034927334438131371752739250729832590614874752517447059984652921947553969449322066747348080688632240116521249621055759053205601776441704743555116212635542356995647698119913795655705578647897662951738205534292512556888681440956477722198588637451445552106254392151991197909405874768318931617969434597443109574817709652115550909121207796431539480623704557188696702761745589277803503139356688471110165647832201724834714745769528437424956219627263854890516319176670590678735911814841500938510761043307346727671379339752068015803172256788920735974263988429626922810770105881632604780020818871888207983772603981061316753517017696033155299636140652047062927559099540784905503637332381019513576928909438743687716622714101798879020985483615453853121765349391408269597351820868681800411222272773755675222821785712835837384479761941789426709746161600228129310812626120462998500692674326866890285799454328619542659751806158382425139797971424909180294032787609062991963577784887961426649408011546931148376847374872379327990010408074929707195729055765320918480159828618124878380588653349831431872460083610975444654242313381166299594508884323881512515456031244154654097505506054040463214802103384823143337255237623083299913314587722875142818604615951687944673924915075876585755827635804132433864778404562366781032759877429023165227814309929203975389757157804296454869951351466859384029610384056558092177082433861440975428127760767529222533782267310639198604217433163761171137311761366836917398799608599865453966718225111564192402043611511188086207091717117595008710467580002914206665148246605657993955884233815976560211434194411009227789308338472420921526268670076026759408139964333677540656759732462628493311153435470291945975189402009012841497018254563603110848184007909711689073882217530103048143091760735126811745702842437472015969077278686364464919323445468739719967430701497720144706615574244739499400367937102785916688108897612794356380648517047250255673292536029608177592425402528204731470376660762238629913492198397967450202087948322441059326945085731231181769147643804192561529235789691962594592407259911095237945516487954077256317581697232995689527108618692686558124734663204846727667595658857825607117380051664650508368714870098301755711712375445051593157081306340303052303989666939057484828902080181228208891555842687010772405675311717516863157821256084779796932564257904231819011887907506007685521763861610343722947401672911389790135830385305508488760758355020149060410275978322616698308296628198330781115729421991342078215595049630374511900177535987341540146939441115398905611082775997164739656108971077475186382029345489091804694301930922672561675401782248501432117317602364915781383393589635370505369466066541339134991765812044724015720953069235722291052259240165590713175600259370829385074957259648158564239728326216092179766583524943307422796561101959403336911809716420479425289143127442931113737310158130172831497290663542132291854328464304047649631406945154144446456392758127608617376165138752903016710067759787732979104358345071577717471486809497669934228267448129620120719679395040409976633444318062538377013106468242590565918076964469310324142754298685140724090564023399904887887435694029200516675784940856818014563812189519340657393996124981750499032988498455711116540418270681275094570664730342402399134798076578679455819547824883506990456267040565959834612217478347909352166952616402909777745259750065496363579992802648578848005811692620237903877440409363998868816693671422752018356751143332608328486577641464594741618759377360955751665985855087464153634516182958978494913502515457875425602909228572597976292792376026035595582050389253742662599274284333155253027948420785696023854029642740631876322602996705482474834738786177060447618768872620120974076246305810971795001488808464790672386407023413420251910141921138978032731505139860427440086110333131882376958819654349064776567311274058265523534663581627325230381505274169141763217352559148499411338103003387646782865444576802861766071734342757174768513624573912783312269953096587760158238285217284996330183152621184961958863708634571077538643571321452814347343649517425400371139593509634128512242507918029584848572430717904751129703500064200805625860449174686212570688383228183560352988750864335601261343062836811652133923882602110979520528898333561594061238319814857409178680850829601937358175797587041284401441922086135638358305959646494567877715727369454149749937176605119895144153582630850111177958107171494741522512490330668304604052881258055374799506992213904615100636089591532453066661740976736282103990197768043996596446482514141771701585145517200692705823692016844300577715874460530475564378078394213450032115587498310767151145203425837129933354532443204930416844088573969587546521975318507141221554012979917293057208515901857067697348550545703035338825198447152785913033443207861161282485794864845482687847464011104892705700551374404580950191459858201267867481087160072639960588380340965688877295086713285103541244041957330920035743877404914512670807591926102918858046606911541073620356419923262746623478817308703312400547189802835514931648790476333474129599267904289176292658013536243848015142896379769192578163703204822643652133899571258177307924125827023426676334741742836983220884658166293534082547625257668843159889144893007185354772265197186106307725850411381378110844574106521536768751972604450391630086827089354573204470483451186274865360325590367385830812474947104687015956227326756608226247993332339180141092240805082708409982859502302315184283563606518504369594494379946647117869203921852547095038314831238152767268433645860445699984195153935845660785354511633863909519415125397523953248008565586993362277988908686216316668186907523658615455835387945830970495328810610349734109350894575011798783831734976259249641688244534794021857933262497281186741844230988546427177238758311167967689229328099571628011025565973890919785395250429910490835679757565208757815865435821772055530042799134504012582741090419387494230184501747641521091336156945876441007812387336934882808081202715396469683785122946223531039328521648553907530802040595164824174804714149987520322814147424787971836227943375577282428538062073689666995046978006987147588497735883957969521511858793070667290638964812099356966163292168544186395965528276236771321517502918465398603155285577662369117783976533664433986240440537406546232895080400985219881542272628815638173226444347138841527856136678140954033791249493699028669572179428238043010086074670567511938429616630006853036742171363543156283534000947582984950650368613575526693866418346935671549044397096536747199646858418129119695944983676193096983765344748698198663938602034451104735620937826931751884413090526404033632258797217320231156857073157540733877899863891529440938166065356837757502576950840464226283715877278317643622830141802272815684526092393484788877794860166883045182975704493402316980822733207538805129717811519609661398183921460584817015651058541941965261202822360224696588653655876195392254025961722898217114465598212254517321409130805808644506829953837593722004069443245238840210171032604320719392902947584980465214996179268032416407859787627816682012663391019601459444040929488861342249117450939817935771435908164420363310597036034516394166629753696292196023304159947763198590919753296567257550742630730133194792153709215613025427607167202656862536295953442283815925277942789197927784231128267957082710261593396885516195389592421980227400851922038411057585512123153686757482860008669370446022997240650546927515899198122134386926842541783828243798888209340976438714079595690364431565420030076445895696909845886533745405329991376800547810177319184998661048894522287991597710489342619037708337513709739703885897204933483399796745332907413779430077490371965627615135200812285643736879193501966474253591103090199116488526988208126702849188931495091794567406140025770859056424898651029349980678258547972380201944581592146550461395680374230576408390216702255875229110254221384450161550158743639780322094791931956118494958233391208277175622498634233332263145452020437330583882514650157777114661158409405938724768410427566022827264570682918496997870134353900078055884078557979665981223809433463826527761698444857447431464288114292047484166438020947418594993205812948199047916999817815691855896458920436599480986869871049225410188705225587020858297977833453348135809766440875252640279942072330449093448870884051323063446428026996982416957947263045750272168037515401275021764336042376162912582499362944235579267186457164102487608353617095218892705322987804707295607682793753985754582584785832524990475206227038925326940920798870852080605848153600596331035941843235867383257383431044251688245224862814958957541519443031216055947481763398919535371770876208218130198746709401453930287476565773772214254579122263322016686188151917278811118234596743175254763011803940992823249984730152409598242578488607075369614382192329241574968962318448355924273498329267112747526147211992978642467962160516121273056509455016869949780143526196083012187482145790104124923791395882467078402741218558469113588640133653641604713518427940625018509819646898466668643694779929618912008333981091647549117166212269677846660418350275359763894290954624790910802210742203286048237020953181409876356059861928798099517444386834483681483722501436983461654279569609733194064839079295545214094877242843974588066945518622388461878749549392315527013268336745725033214565581355656687363242725188426901400445357734438171443141403606952126876062619376329434989775104567118430704418989361938493950873152128494477289642081014559510319079753054795822518784753470849519747512152458299110662989164112707421987822302488159036394446615049134903197702560659436057058530440012494790007441258703222909184472820064186033632951776452364584090441953563363284267638343147857920442208581888276332755319336709694631385671677746024547337134994090858114195193928640791950863026319565435408138797140861954167051943923879596840452146460069016647166949279764954831587897177949841306279280593941851837127480305475359712631475600015462813021010270099050894780768308422340034141144545668755939780564710853962823270830049806324103610367954426538061187401493292433244557177726473344557283900889999841184655908685294964543860510038603282022159213761035818310767510629030317605224310345908795419005824280162390303092174090000714900952289004775591292189814302118249589352052503380466323506145186687381901854850155506985016463031057091713121585435993747103579838445895379716547231356013058945487469935762258618260556143937923266146949473529190478256693111252573121738296305503928341282818826944981551587170426665354197323296588731915691979428824102027286880104362964901528573567804976870651743914761025655381836842967236448298677416111188235509293028082604958883029762769473981404951529043942378712191258147053970448305399446378098612436660603029752719882506990195759235191993245228055564205149981514271082936032391124572217259797055314889653499410749766497975018483919627442446549241889714077412515483176582644081558116116792080487660303593053061481754543821829794032498438937619340611447817109768777680291829336613161021262468867767157561407810567836296457303194998784745776795321891998003670332508760277765015922398928000058909154606327599321697580263505136041687389440790266327738805587040630251999215574476142261976893980301910477600609083320676162297108276805169590926321770281682032966240838093367856749881357679160497568186720701744137346285911106996137573192246836576800042674884198139391790303946625516624764897097671634843181868993446305367877178055836747850119466154335720521314248125378973839443309931700890723420118358619724514339228369526447891453605688701985605372312960932977167944809808649343930492617956078838948933769054895216649418266451084947168931544219717482217420563612709422524062881324467752248192564778218496760764410991097932902638090551662286183293606251506222465942154678039584765940748479810081193211978398193389237924678545227892436475976868545244208041691015372953731785730975755130770981850605913770673738875170819470784790912265670833980301702692642816516438406376933598787843374330744155526600021204255021510957865773649767233637898214501578068935807526033445187922308900470444141393638332890756551166831873104777664608634903505955534691643199313607568047156740138455360535764575184510321609266407380440334461975710540978789096503370837144489767996297969021229731087058725333382467182892980122562964231471556964357311121023192497347599993905282060626219572057571517872505278656853596621521819584032269295370599354308535104699654659825022431925385042119302013247086751415991074563154724558021682918046980825946604737323956605970820180696717675099739967724171539369014861824562376336326170006229793222064178195058047719974969912919396298465825136026541580634051508696007532637204778250539562370458074150174128994576894376821697245279812016137481982297475256503692222428385953837272091450868312207525366409038622840684605337065680831029793289956112089793384431548389429386180200430906629055531987351314154607245164591902742053818805479516129505469720682041761489143554179165721321428482571592855386496871602401761930018620451041231600809092264407217899324581111928559881608944033332910171039302399013149582204467396522277676445867648946962722421471910476721078194800810746044071240024494298385167209126616776433334047153110824894855072271242225656661738502318581417915223152876025269530162092371807128263989822463944731002881877182392518327762790359165318056729454748816362539887217134871476558060802425970345133431520685078203997842686178108101998961951217407085067120106842942602121057684173549875040474586346267715860250246759876671941009926100062338322815760721526427706773215096466498504679015761323954100811789711137203945425269917526554609343165956327839219657298553772857029792116782633511850493217763982806527177702162961813032637044763956630481907979806872562971916454530407654954988502010848012105505463667157594417202711604644100500768175565396922243128286784855298421891164500536889845699499636134584934853448139609180603769655563790328419770648934074319271700225255472809717672926972786673695771654035106268145343680635476630487525318302708848348826788427593897756994435410465377438157440368372960806111411550521550350220210294842539658035535479694800439991874834161382071562359941675728942004646004340592637701591222376902407670241875873926595631735772157278579491913240596701646844574441882917195485856618833268449987005402598236583729595436112414680667001492937253614254037397055749458139943003125890415189100420724266828654514091293390560273960150646334701438752501567045384559325472722180349681907346623486136089962248218520127053648089689341803804271068879632578513995975632425725924029122045962381039250198260204328301115164108137078194076819107629372133150081704421822512979949859453137933014244811778491532810078018397046679899516610374375021833267556995191853227723893111459258100130492305453090570601308484096710433932084099094725065218741766758271992638087036872058536885191705483163436191011414622444629571622287916425267959287268747727196749502884292514461124178754148084101889063924717508807644639440712087975657932893685703551199149767172668930762252835500501590534787031172885152934114484287414671509765653002230954618803742352134136258818355996239011459503457828968142883023822885783165066224767983427894669936399444323966187271252185886159287734232817783345471279521202980995998332552258395386484811000402758405468063589509984842089050424076345933687943005260840324990695543276005967563386599350006172914045250428396491489365969843557716450790012815078097139364184179816085977293698257931811511743509945689175940691858049627159345546606030451212640177060919479262970824507103889957101735257545590335718230203674664884937949116017438579579692809982787806439377224548788033248222549548701829200611288550054985430131892377899631254281055566560224853109129868367413312467095648155921417066111805683678784483580914929385840743499094909935316765559515310200075692446040716910797157440799933454534903244231423096016865901912409936941783491472215610444689928371420508524391428444251049330934098422334466242062706892728892941815051538156494862709392196611723386030840743277130767393773761895856712445280928093589307369266268454089016955051542009147511966857429276216459119490944536802602624746219547268654045054454898159931196468816216049385445998214017796702415635878095591987677097852630435453776064933593193246844982129019481427174832294344594646310489709874399467802813455268145311483009625899797130164870706872682404945350966278005263996851860730739861630749864992920760605352234014093274540376690910298919625661098797689751112859497057221922350092480499912568699313009352982292533579882662138036692918419831381932429691262852934220949740987762558985852377374289411402773164840869998563738084541955254422052057134946486442308060615060617640052883255720738886568037773681027789397744721626779905410011058562527879420334748201300213855092392386359725484112011574435622819385203180599716283059220355873895073219169207674146070284334671804764831934845369684206446101319795960188895888916598655259723357953369587866181480056555935396448104358325104040772836007645020744483661056551060080987814042319624421462688999371826047273236406608589219337513664319104464807938729338988397504703427919476527196215601868218634340864081854906926281459063696066739054546155478058455580069533868205179960324700299390257060310786048481736970998808260593941544182309885739907860272996621935021342690948042420949743326708386678499043601411373775301530894300085821864228536214348283210311130721296227343695144922736705400611294172798125081892095570531380267775808655828059576996424498788653525548936104155459881505085485064965146118051035374038623650187547474611244203650945575059307127377452082060845851234779919889147162448559659669909423336088538762387900719606819810091669488605375401797608851202278147395325014751103097990770347601987773430767804639521358568805517982209726255553071391449684800198250644387101938060897163156784277121896071557795861404775537885672478143011086218617843263963024445993679406356553481794256424610196018253936443823755873746055912473996504884682040776223632681452100365161877671024157730642500269486334174607293596887070986814473302785555735209427935135675832223533209222198630528523027741828449384689753428594841358097794556676682347308671143274372124633496034169450084616986088610461013593241716623722115048586396558203676885602470856640353187763880873097183613555476416141589317370055727245708558099610980893043679372322087507431360568938714632472155175426635360256071744477233631560049891876929516271047272788721243117181614654476888381798788092939547390373833723230519844461099193696688901205937291456866344393416763330856577711568385137907009780499914417527588540466655781533812338843872268761340879192926003062997853398112266086868432940352887001776166825226036132775679019548688506828696449309791577242379992626799205383427040740182793351710688191243777889214110972130177495699171738978370199308457610850161518003019652357309291442346549198510813724467759013423617127948782491240311920232996182335844391658484805097575266762694407957933859975214543646895657262221612634686706843831893000122010278934697281177313854471085934577362986059705358428655531609428328982709466226329320686702966766210189188416174612626099608161338995009335263615810333648401154136869574444059826161060202782381349054703593114913486941894448241010273852419418787722684201704901164591468331293456899489653167286256758173004042314940535970191600697085942705819676415567635227503646632865846813415277320733720925832567779928313095580423730592284538773621475946099813723356470042613121929691106268540690886546110122229425835832137952834664310499432735240149936092717511934402114550949634179275523246459133872685198184619312559318690426146372837368567374228576945360655121540271617231481660627597786687159071911885913112787180225317465959708167387982818627951003268638228415104684746592681377363789167640342697138520973200640156712809142251032296733786875445637284126085889338683782090019166362515407945633847874847606868736310593906939851237873668205765416901426735186115405307361895168014068752217941465888282783242257880614328020331626246032492678749080145823031243500850527554659763622650882376168869452007014072485244243184387320831328612836496802669229639967170806131559334771653040976548884701027523766174874721764499691363151675900849725487340764149585611374885812380409735308087942506779974305789551080131715821778965259555580696404017620563743366346317527600317196393812153215587412233040831582102003021142020838529493795438741013025784788111364003469477724092021650643738652950819386381183546853595432262361174179575634937660987646843224755754059361412449435679892481946156389979421238353622888059886772637525609051246168669963748222914454444022120374241414803334997704937312031919498647398205461469065782010845539935535352432204131340218675876101917315234277006246057848310928619796497159938149193868858406111579974997965095478589835533494547136203095001005164288452453537357413969871702894772789552521889778154555073431430743773348528464192535377793275465273820529324212778589789815319305195520307037861676165543243060631747775200453685111142922340111533254718502862362327004586214220561148528826102796410767587856012877974949148020462369136025963190973052016030502569650682504004029533084684306436740423181211537882714557183084869697915837684231564648994126443958096505742343262794334737247739495753496273189206654920700562358604591789135241652194321387086289434163603930511784805211348974529432218594789873342849492051895909399407784971216653904807839881288101903500732715196260600290335625991072821384099462792381474143636997482147813625949275324947837878176249655261018425663020706413408411764890987938640256777693816227848033287074504543003750429315650638278577862247447444165177268306625498677807327712657207400001461132498000855140995158450532059629144051944073781360062393344245431334621548615482611196872632623994249826061102773525293481492390525039743338596462277283696311491944511045528469241525342069536960258359386098477846560842988030460236939598150097940622184267937125843807284336898672229112811906635376611326637545197356102162309348914700294560070974162577640443090878400767078805648154740099940665486620660555629367132073207325909020228044859236149890512669176666801916118488365551050490119121012168557347435481749459924452908947644472366840219355863421635287358396796988625349720946009062231957258364162461242865399988048047709699461481501030507852286956240607922202504404532604840411659262198768345785007608597718152530823854081627834055268587564398130410312784333703088334498756058596994251119903117341472493490741497527607306890947811181873925710877899231315049233908900694082559758782302388663790404960076042012316882295360669550475122736265085211139762385148584226330597790098395713978718605311512990928221557869412641534243418104776825465671759279687120811107398575635196664031052380157667078188736771357465911289101363456196108292590347906105271106936206792810484722233525703286480453357379090198456087871166897728005179839910381323060028651884642285527473902978447612211879667302788735313727587348135298913812582245518371613914840936316375876710779600857266127927283205929077636460461186371903858169726033055211455918365294452834995840524051414471044833598197141669785566415687821006225022091276868081349647058587636333149979701574871256898292765960656542083789275650479008424397686652461947486009225777441953846772507042325432434730979482790152049170466902436459965525283623673723165743601470928509755928182473603188704421248976554246965597444224141528440730134168487070825048272862882816204878809314240534073074826868585505156431238892317547804417377007968400385445646913735344197793362686094127929822538102453831815012198593977926060087306001355845920494098761134065084241618790840812201335164007911436264342275533095894458907106959548074273580764090147454888486876501799205030953653375203958484839997508596283176186481147640692292370209815890583586891586481491561663328940930799506501527705199364643660495232052988698218271673343296751242479774706212923283154860957991854265646692415251741572291941726181304003376009529053212371229224316080163197362997277656255430304699760788901079821600719235000428962156091966426345442611172066286298217756851379041761680798202956708632034525988178011549906818464635369807084389675952654830377544450345163615107540823773311425994259748197392440996601192984739661411883919616021242249777496323398976003018731787939992824609036879860458014488541229894643902173481551850468891407874301732383687587863911836456493831398592176505902983020146116335160977810330248262136825382082168165342125643036851732297718250230163020975535930388348636668156649747258902267228050841915271729532452305082694265754915727766006366671674867122937445847310461437973679408773526353696736493565170425608610267087849161210387713839707835416882053451981628392477547547495334748307467991515916629694325842150740624202321003594483489383904446006046804752792999027779086641009560175956077885193138231752822727543492377344743770255112943352691888179771573383248999907167443944171514549861476955964464605739040405814647607249009114928711541023585401131168406453972788615892189881662764856089585750527226811114288077597452710071195545932049567111143063183876233552201213933900994800867768809091193444308881286747284737978714807564356587431450096279851864957111753695505701649225656644112083047478077019888805047749727198922582724982475947365169732466779382118248427768976907736860707523206007616781243546488015440209887941900336249687575221140178209784622533417098607213545400968927206266451229428137659355420761339959981530781136286724618664574444863971091184494233197430404083186786685401407640573711194841624008854252791858330830278312454094432313842137450659316816707284731401228925716408743033260558089552924346568611714089171988323804712068630274107209678062863362330737097685848025774922301746366238946625369345729098626149470815218598655700040286891036008889970149764973568604185730481088309210946078852284032158385457730548686404078768559162492256993388577306979460196180188777647913798619775710563669153955723986823753088135750894188277633422802187167586349170078081956436365834151148723026506656697714569442746871540514203340192276257078820064394186811993961553667342015564004187470479926297585863993737206320448040516016723750743082195442500751595865368229314576301209708536140539697646163993157020231800605314021650506463491613203998756959141823377897516414921654447651631831059416629356186782419894628219968501600810847263842647378140717531229145376951641929681761501665917320551432708813116472966812610921215245748018096106628390835567608360439805610380956376460288845009140151643124310244739194850168225159552246774309639382385721299457339887402707013028366350891593739243193852121084474390357497560948333756947441997034388478053121535466520038373939637409700842609475288822881131378038799738623194852858233247884959110323304324359672322823739109607915011163642805182483758334882399136086014873098338150434089308065923219837419865768160307530289315376037630234893856674072762018078220009530990243883204960971727591524847193815359737891604711875598175581982800526287273343675657937722639310428754123338733772671320734623610994757283117616438437508572677725073251304063401514613814429067354395106159527382161319293723694120141040523538135718286656198773329181271026791382696984902154183320642483898953681689232379368227846526388570429743827278369922048115952519200646471181369675598851347301246608106069309214321029953499254535417902154303275047574572622023822374973693439329539276087689656491984490248158052139149311659585985210101673094781710807717393969291993643990305263786608127058098203076385382110641833692651920178488983932076275360599534025126203297036127357832423743656733550786427061370956886158943479831242633883668674129000400788200031822683378406900558797954511063760858330976180148330853201329857521639267555863596842299802394007247643316648729974527606770840870597277101998881291749090082032195011890040223410037591409531059736152365469920325348536747489894810848821133036293033415274559100829953757577465175839641215372460506032758063721665388498784365407679681445818649997049965647172688494423749882938898739969628372606832286641119253327979111135107625850329087444429271717889754916380154912389374699642862669695251431998191827126176120999532060592951888747707401105511159569255630893439759206590340172012325582564259706108836294102934853334437513306829829321771670105357358805809337350373770261368885014891044174322475398784114952371600487760342587436927907678785820525808529709335215024781243872048453675840069308310694644361740650206147146200762142906666975393495604675326700352002754927005474402145193154718597775270814528586556837758809855979135928037185422123979753489930035783411724295441400614026065304406638228935511316916098348956507102722824816567785284574309664374655397332272498710606879679796798706498442415202723209515568038515453125484249015739919242530708219952239720415556473181397863156171087872235871134603447368124698648096932529330050545540642090109895161107317844070575091569905727656135254748830721561112160737108927294790003016933838371348404861937655019978465400662472026952830943558624713708215244736394313615825087761346747726332652278482476882231955766737702714877802198749383267936593397161163177914587809376693924456800712967821405275510972407786336081660459480845492822634571428821792435149355604695346432417208919089343376695703316857303066208542646752602499967256189831306606957000197867530810250414516292107246798419910881567393900876737336677820716390636889783362217629065454836459454430573146110266342789365186448923807577085692070549929031706761674753463425610963335484780666917180481495965040773417729612873680986506931332728513015906331989810011673017221246967891034727961092760709938843051503561638186693699789488601637013748495718869753651201914736152193482988857552439401164608681821047214711529335286738744327067443878046278826706319274170108372162878092168823530820603098252263576266364649263589982414498169312634513418344747264459412747495508169018132555105495402889603364426634296560224769397116418516839005577741244716084518465196659242058942576210184810751074650540136247062425213280925561500226506244637340171264679435304125814970321777681700168464237375501283125710963911882575072651376289499727017718522872044954427114035123693200717904903581530544522187116148160003136273529917799163134309662108020349584271503154402845671098191293641543334361953492654432480174686133925520916678410929647213104776641426847728947943656870176370699819408513524422931780283130618046063349392289607895084669832311361645641114437075274169771440562313001676530146510241891010196891094279783413412133104103328517093781054232692165071378348551581498260016489894875923341135090891132108555705907358602558992005257101150658923408575846168056767261977506608132560137007866470720918008486308144394010471714795266200563341275996205557707482996642642742620975023204783870543241942072784261350327953176042817395764469596813562411248195253779949888252455453593327942525360449080515946829941329627647571990054479845071356905551208537489481985890948665323330857664976037614547905215913435132895321992232292341007611678105067633286570375138329529084005666012937532690642035245262356371460403487515175648326960842971107653184541422179410219713170796744640302598985779704247069091261343842304367130175514792156448187151324177710747160230778946548612134916347652743408527379887403240397439392412321872445164190041565558751025315523093232616908903521407647919224107967623797726285245037315604438088747196025820567154089667767580628554967076469313541113601429275205813942763016576287423387358632781993718837097670025661475552363960030768929646643993412629740209479381930873311288808844209232859568199312458715742340022120567927977183412366504154698747277963374661626620096129473244549337015277000181822407036952809856729765862585205764827114077347455305693771076277131243563841231078459258004526221472547905965143154957298853946866099205300958392891641313178052741271639130995426677500079904206878728331921865112533431724466857669458352627621265190638399986607813415629419382491288903485224078708300833087774023058930086712186775574104925186601318716020104040089710595582955419467501640288315015443900494106658930621531013262301437253040887826271811445124874361251649070219503479038297890380955795139611480161157567891671717207452578696879811583072359941695991144837044230224514264690648572371717596661778166362008162304422625011584842553596574309912170257607216271310614943495128874475066277726598184242158132181599109232024123197321804889932716541710727817571454434242622298453190426545055548203165312838544765818465723950971268771612112192121494655727263657245768292112269657719193907502545387429859283570092663648097050627171108629314863462779135394290677670865269027050647722502201698420798767542551071880393352347529042964277900104742162764377311623432234246736122291506285997169525560498795777184893355733504928969429774377808989986267145247409973948549674913328485583457602664926596285903464346720874715321596451725654919924316703008964867307131348803173829358931087038848301788527925299892939034409899621619462985767242977449929776327964301000593686062969530901968094839709103199706872250445151223474586592111007941562183569647646774236271595317880276762219921943754960396777206340539837735382826549204051892153384995724179822484930747128979273693720286329805235196840845461640433262547628248223731892199499309422287146624014747064278755387217188227345953695489946735140365605569652578909767653516795269260375008179172332494342074703109631279594379058536260382962340345871787973803761298786011662467507786769457077789154308290143616529182889726596615998837237839170342090471234818245833955826939086041051896878827964065407206969889272489951745169039132833283370107102953113114413964893577119593095497725546201836000081361382965677670976797198733822594728176001141280784025325773857495228113686326004523356524963651703322888226474227910690233863139458716730166048459202555286254696337268724145172767629693104638359212932985026105181494800275212972679359607908221326462347350754311727957720275674879410326958394467585757931043652598948288000937983961425065246012074848982570057610776860015770237978585893709465237657944273975443515618916752797586507960252436060362261442904961182734727907962553128685502474262209490867401512257824772599220211293869631572668901906459146099991467128004818692558111098254910418172429438194972027239723134704759371838730871664648640903471994176742635273322282054315172112454377222229633613861407571056041909163262611871385109369039024504591623867447007791933996607198274932887894158383467640630748025853416222397241247593874426770929036894785832480934940755062456153969947994179884337052802264547257493163774437248016413500223677080470481577036535845114983736853004945089282050494671159433136878815924288622156779627830041628123535645284520586214832937662388971944601052817786799725714025960261835695267250543387884016520228582298792073455002264426839642358695462138020715826563012215450980293504136716190094268562499558458312046484390885918630997870473694169381254918795345221499650020705913267318848330320408993842964900492112907984900825425073354418017401813627554738626573212817859079350120365839803297262998334700514729341944726673421419965016319632822021462951025786878631444980907091195015565764745792536344922198712867870655028908603726643148508535175673891353855483909788863991056759674030994505460280678331885339710624023272076997094238778967993743305003470422158257828036187356348590100941063609210824468885802865999767514198679526775050042960859458562891008529951932364032161624700567145742151032842033951328126183258475965434929362259477552328637970333094817315763541629887177501572535855196052014803362287680239397487400235299623850707855669198005660911565045422841778997359767044027187753588976739143158387441751021196673035310649753104485335892068056487685797816582119875861672751576999723128221579095964557739163990711509262984129598543763821525784943606349458850655010920699013580955203197120616209662880679293673011094308244271889193694884477307578302457485870389683286992079582861872680145631555239155767000072132408141319475026056728424080311474084265571960242271322177588096810738566399006244463488564280191417766025587989858780190034504496131004203385173989337953953108336421174554948070307676470528033700836069128722473538415601673517156380468351679896435737578567414056430506881339370661354062049035953530612298938162987162477356502261742515177195827331738492148939706628306578038501125481823693135423585770291634260454657508390827064261688409593781907511927164060643612180747068708576633544595465272209296287819017266843355778375802691462047858389718799287401251050277430883108311350958633149573615678056561460598667650473601920984134160017374012357657163830894847018153396498218186614521223185139302215683194685709461609958589953629025862777146428903419807223207213128045490425688801233021113848331796708115440495150635025361874878469832392795988422483649777742537770888454916708120140420341553830138129841775915355236555922929392164558215892504318525382219222172798346049665322475893557013401334443069034359646742143338913267132731123160867311606114235175556150494239670793029290836876417684795300075352388617309751125672910857580651218801610885757810648871864533931876663555546887883670225284175849828380550767328621717704802734307747586256800137380384935270900670166407129028363794175939617934865613900505878717387676053636818753998629027037719366884047791014664960149225504988288462187000029705938622294246015130579179607001380465128805861827669016442494018718062452956199319927904286092885523649225324110851098403930937011365377547789433104053396156722656912785467566099528855933945455187395126669372689157288745763795560498577713673088087173623789903331993543796308624031013466235300229376349156219186452350906694920415844739528651938991778234892820719679214349230941493579930051814400560746734903883552575881174054520312063466251986910783498032689710604969458741741689903188207396387043640656484279006101496700442731131745130962209080877614280488469874422311833413162748597342027304047588087646014420902540118125888693598802339735676987867680861652638945010567890633112492475785294283537275202071519956695664229019362592604105040864935564684148037341248501450155161203527431223176758676339358725947080149481843777523292642823374886137258086834636237753813082721111220202005780810919941082767478259638820077308410408725558573909802773277767964742070947966896881063963192308154383228654947249020905563485377087056982126710193479489561413562630685683924776583908194723270299892301360132848456771864321086342226288131906818955047960880415308499287704085767378286137195790942091798475562304034003610164149716566527210669169222851431018552969488259840256497197634590905798532041664440681482132568072179056002861208077298424431499103839286466740528143639490891007973090190697372336104944481588280763642536700857213014132867183967633224097099717423661908438616083717251677012901495282728544649953144027220221663264508104692733239447549875606903552062873756168154026590367638577734342994455894233319684138385788108865290248497924157122536535317215899840386612006644242581634485435904149393040668619876027110366150724110676793036116855191353248410338968552739381887828770215667465400696314103590044490107660836276498389240453324890965375398821162426771189574798810890104003797966672587452309560831369720859587248455632448784463174821335518477403871480061916255610206311219218571596687065087927707913905442623199115581122386592550205937965031019513498236416269327168059742074478736775935391463796395278089046252770371583866878449352841298690740931876005238603876650495738967141711105112404910074873126686011336327793547334764993810804032287781958170935028980225899037529991239069769016655033716964099176512857061804514370989991658734700217646208778545531850671591932184321739888041886679890200120795220641090461753877694860622853881726932099017861886041852113187612633003424349467835006095329746309108177888932379089377052831820239612555495008799649781618195535856213641670670496920093489605799882996306937545520382509250277944818026994753932656403994212957794755626999783351635500652538081693512091169177070793079819619662262610860802678206504616211190846306626305160278816707362985487752846801719432686013787912014575058963921442958124813565157747102156810797796017078356295326488641754355323299523625088068798605485986440919866905863026843456210867103301810199955113911538390533749674935635915523185382262525281567925573112281146053437625044264506665987197183787658865555861455190130446663341858654839817301742252041637237728850889470307877140673112313318441717146706620767719676856227929724812993364206614188658100322395296284619581810992931981988378820382033279824189473899489454368193608566684047882547822839964835632705503584312474906567440024250918801082767442956212475501775278717078851654928909408790557144216310149347864420715816170843704720740369039453739640196733551054087906448782758599595573122512651730792363459332504170612331480827805070862413414647421436286783758085890420685297512162336307783546725555107063701550735553400741640103196257505527249701400716129875917219256247395342466876066720820398095784482385995311194557456170662479880520971421562156832626184917532290664947613254663811674603395596615008962481951226139338655473169365802613038506450892227564116657095839552581457229941745054819491214055404242069993329390165410424721067046892012089761105406567521212916991861076729864247356921983840143206150289693958280261017494235998901232302859102897224826545711706129415352118327103786804675104624631807981980717726931444411647960430580855716792052287596885635350163594660542924761705267000204636848996499300204119780640043590344377916641991352230414856241587721020891156641305538709432584687196383619482403385324434511302633315125309582566521683432725167699132548695883844580482501231984790199796886390850582588540391261184047877526492111650289749747321660212996214888387193112945681682875621187297460873441401134485516270556336172263797749261107689368532864130858298644893898193822974194470396195007895635401040211472176912508078057931032438225174080164393621787401259326613508466184031531515164912187267146053635817200330072831529188638973764867979810894078575392216511240796892524001869116084455653710730955663975223424384309285838396063283096941597770501061786100462378777817224194822399260954949724347674698916214919419018592163318665440380871844116611725400384532942435612887830036922991824739136783818536375737764378672005605957497806428509179306809465520830138626292514860574989407371027567972350951118567056582923377690590344314219249764380322148594003072963669357470846113110342134250214887467823737806826059586986034905800435865897492907383278591558389216154033529501321846619228128002730877659949898126702194476471254635679444534915576127440063416826877906711966490957870826161379520354942910154327342412811223731336243998233097691618069257995969228901159614577197716175357180160097252363473470066069405184766327488352401047264854378905956710264999501405134146382052271985493931596776324414693613271260798172503210333242955107918737758331374514179272865860690875877948100005081905402314994902695416435435447352909512372828531356138123162030402563524208890381991143944520753106650837087511036013033614098148144248078556816785564237653456725518527480972142324222083146649398807829604793053431935022235621249503779066563014660715729683304092497447160286071790988928446894498344206528272938719471953095168564086767207052589261271107630700024945960763897468335431424852588057596347346284837220440858329803154148414225888061530760623157744577724843482994573402586876402285390061094789396445305220693442404993037605328072929486865713275903717086367440670319752022164667379972628298974998793489742994415441098116310149485503315905935141120123797437112213292139518989131122308147616370548865499926140650339711880014112102107772219061386647725820025644870977288587391207914026185009652054290845301425188753854644034052214559317740011124802402169370190773651251629160999488011900581310909535704675757830090141283038660994883661333854795829753428518155138128356005330471886605983400451594242692811217330123010768208256306347085909611554383935610170641615664000271846027697335688501532997027011458999235375034253596999001103181691091167981371962398066253218540640315819355981497639835522052750966478714137723539185150248435047860258404231728516915374440078691811290524570230476424694571242298529871828511561721905758903928459570356991292638638132074032880089787161603069295818999037763484592765458947619458803849020762908935104928308335895029106493369057696490828634486660700146442716569040028346790395516813291973302749889012354238402284015533849110688178653010406582314730048303182338102090954707390600363222166332151412927692521453123330901307834070390999135849748463262721102174562074139841003916966475383730344594889399215647350929455538362576214432773384193121964631156123133075786924865934068999184153856845122919081758145414827357954391616400635224621272658857709073560628389190158812693635473718488428528596259289994234124591952901659294600136316205327953582830789544376807759818152531268690090151681402320888025231571224227867191250433267289749889132977871884670278918485435468724162574123251864551442345203287800455159588167663530808275044901306780334336662551881550338761600885685536489338984403567695585479535802880521885164574106110268029778512197240065329902835643439165254537562834781650479767231846865929419088619505060523490608239484528429949484521849731170076620108717677050281346475973063217510524839840880732893854726372156394651692424599853382596550819706628726708636341985324899627858389166962104927059943379512985910652742002565923599316303194687750702893862610047981673202265947399888502227415197352872274771539007509022583173967297271873387421247644587322735791881180850390413509302220247820547788657168079756121190303604708104424466747770207021679094616783948974323242853359437951806595061567046803804415043221081283957621440116567434184337692710616951878761282772312933092788018102545915923847778310779308164621542990114794906340737457958864370774030842709192974506137915039952537734969774103276715902041264415913222020392256108046736800535290883560759034357715893300166672133786828572454525267369392815983437121913624417686586370014780752158486039064496360545410281709961562547469674507760964014172890330827309261124445024516891966973873791309137442401667311006207046442353798317536872931261693204344602523554828383717271893969913376736167144818944053426708375607987676569928130657343438850064404274760618948141213655330704094935362417084341266387839861036502119636002554071847820458213329870754517044227070159954010828628505301490532886126307537859858933559326812490208275189591733396113963098484269329621947129234594777107582399156988231041019995751581036676596884252058335454220990086906686762773870411618541850524986401057098317635300174394413794145398093807996009877916116232460787243298428776408734840019849979486402210759916861750728174813357989941576541226207353539600386772517717438040777037651876322516951547589628147623561660780164510703096295573584415377242887935303132761806594336137342253534682848154237261133550271377725951986444739085466501491330765582045595324005972396377432689269550775517477346703673904768333014884832446843564339265993938090616831414468486393580522114223914603744778726334326038183844461886748924690407646907175906887598138068817308396245903892122401694926555644595828329327161010428484898273595234589387692403017931915423853463628860414999519258625870784341646673784218465480759875209753634059718485814173076230877553805376842318477421338336172480629908026908165860388781191843320331107780588899895816953532843380203813345206745058222405170122595724367607881934769206907300971514193723644762295806254735175232865051377981886624950294188991978638076537749752279322859069111601306212660163868570010977817325357961606872751417901092607951456504298185159970839961906208205159826108609460175039004858701389608434842008906272903763610218327416445404458396876987446070766636348056449305654401086899596535336083767977931724579910268272058405990330696139655226955093523128278327151831735184979210937545448433372175462823523534140497222350166951739868494810039083191760465714782264276630186703629721325705971071682762502108225382419750678938981646812511770853443201124972663406516184634484035437070404917265400008650880360523437766196189291640708265385981715949113050671706982242666208175508065775063995619263628477446994466241519893963547515118943723824372603341355019621235034007415432380831917813946506750556012152292673412948703722750834263781268512507694294987921270511729947232114232482411718263038740701652474797810032718273018285518469841730692692573171226553429889495696662530320290441540398943859348693397525361452161681921993477115719285812861412369105338447417871177213231444757671664273372256718184997804548722900327864321136052226219212635016657502611053936789111889860624388372826738231366691462468768678446183879349294115419859686966407470230762794850451137577126007450049287183868490706002111389037629571473987640296743298524641837501807378542831637889110851393463853556807896665398596716265390270209457888931245727917640659201936119383331594080682946905387567777862676721013222588557343006633114322308509813742490819865207230976127989262822205194284380812293846295883983858666433910167322031137585382333671039649202935421158305960663759341841829443254420094169182378920710477774541213863222388672849492011922658210224248108483915560136561548948639666923128835027761578551341901245075997327179456624602306959730138196324458516064365012323097274232349690914798991111872198664120517687301507830810930345110978647138924285374749341013190042559482391220651301514772665264398301369669392054529690905628721677029571121947977662081987382791273857352382439148548536047475686610027016020347731352308869940881186022519416234860168213226369231576873632215188207597385286379146226755844143652313759555197118229413860911479899446948790225426960841542311070168946113463335228120342856490816768863465447671973109773941880002787431442285609778326533625761883648411868768427359932910603332717227518991775875944876574418965361237434666556860401336836541469959526401741198714800724654363501891377038174411408962495104631959757319231325110569979550899652145907874726830272062890580807774441611047411437691011257603297190512733682343160559594146119290158528902028211671605863846361709928706027877387159636043288482066592257002480458132221274042148847442911719526097470938245678604666903174886050494680771412132580031502026305027733827198483459626020787862406373468572467797294284392447641215867060882493823417063035801087428758768098062226331738962812436127171460847318087631734919188562296350110017625592473841218540418021198436682606754186447582599288555026011889341773322270085663974191556963827650129091587385167337028353321875108650026986772360411779358592709333538065910120185327647321294398504487449722761009571661904914634604016822279860611515634749076857191444116782947466248992356117977572139809149208329262115008922189918145352525889279193473975072100581152681149139363067723312540972949633961181642869374275491991089321825887814748097242841291549968609595644677460614495254239091733587159466251589208607875798632102697872428964942169709634288629709973458692635918612458082736919937502748569923070011926812111966036246883506090195556063546921716573438744424617566469577140178011443676401454755828627016118437015151612084629606300911258971653325434387194104981073699806758464377816759251566628528976608883862110575149439151278036242269694514986045376346315570530577470806904173388402058386257169115320775526683915782401035349068121580391124659540500878990014677197821601746643511655282946601109075853689353583214661296112586908676623160749645760077461696926657208233879182131527358375298738664890867251088886734403333221844429533503400047430787046138595136491808035679434601402391975430367396246419688166708662184221154968494367038318918129413701781104170841895074166533149512388748518821020741321987494727837103120252441658627557653049056017210212092831520504870953643574324238839927734099016598811959929541226171536165804139260454835868884246512178583865170692901102940431812757927549356421208921122644082019288524249366114884606954485584152377707234168732788019034586487885203071681828238334131913741752948807706481897167458999241556050651924930328386960849565057378986563513339144043278584305743197930779316969534240428640323913785960096996962839821915597042701508760910705583434028207579398301426838937547641728198487595992965382945514260452726896419084071092038534060120605158909717859964831045380371211111871725433555391261715186058883746582190380795924424312394473757656539618941616444579679744633011358663933373339026898331592686594848660336932854988191574770413111280619428663598528321618977231115610837856566389219961446681379636736966263879285254732490764049973144134775391882071714968541545149695501306119395486932998051107194066938715544856943833271622297621687401200684970333935643551180655972361974448210247698114751903258059598418194561321313618937320597467414097009903275597121638839520661633679660633247098589271352172315017044150538633999374868441800753174841070946493816462245485970870469128906245406631901340773437753065213419589530913457619538265590061698285379200705477339753884343792268915304179835038152503409660322190708465704321290177367189606824618902394350864584589295100302926628531225655525522946622962320664393077744941292363463070904369013032727814901808343579433186090173486451998417563023155762746043760648417502533922585222497897970973010923308227721520612708933860217215060720615456304443652132117602600581384489697503048857184536170033953225804953659600417951700698860956729861486182428865067927344835621247693388347995734773766013448529962033333871004106240819447268426268497648480971209978238748893779267341483093028305443142043646360056206555273915637717601576418702962950937813630834011360865769623803470347884153490218473353836458740694199885015831954258388644487994105878066000215870431195876760534094478290876330139272337735677295907884390732244446900287712005986407765388944010027576410969647662255883066468946700253245411783291804706106991443001159861921047889860138195616408072984674904901396253574136769605508661345727786883116989038054675714841062237242490016669139616359190561491029700471124955244223868833911794107196679963893263910167315544553281088586804564799443011467514262680438428780305266257533598511771486624623546180644694193458633360036592624163712351444576900966400027442982107882270712921171865438837715593156874930185724324060921096836023684109411407604670673674921988313289295109970277180375467392441725051103630071589096506657882537882209155306317423735400567749435812260182847794508376143260908706928566164078818771475605107845009639045159119320005663742998711183403260430688411178029898465734214719893590423083512626252038743588081110020014764563941106936443754480846672260235873259680463928433570171343068471481074385310957203584277945406787762598224864868510220486404746061482020830798188398833759742598193468766722121720035427855544183797208423137038916518191488606142823076406695814819792770334434717276615292941274169365675437396308198138699302353993093488334687494622301784039246937815552706471119030559388487031853394322165442121974698732636764398016806740200411683899275361442420831843639220153153614774778617787949360979414701564075176526446327802798518150940721707323003190259339690424973917474915559857814559053404627549588269721752429578284232287661231584309372737434048779109101200131197717337635357359779883270404371215983916872329125738657186341225303286022335012646147858742085532661642956344990377830031594828151914348572094732381747422789521578847901611849797922203980528712392138626235896998039982427886210030032638914362800358055605117027285653043347721566654258052859739170510947165355374506084362082543061392666714375231888259565339873112521949234876030319824205832321908380719383523399318104365918537075884310763965935620131966507635431094257921922782666958353112087186902796202602854366614015870133235377645353731206331544714108115721898644338820856422262175672589106991182318202860026014433823748092030535788956525671053036401332551252624726659220408530216336646266301221020521929804503683639718984593337243104803256294411741681504085037238819597290349411663713928911739248176504574810461930326836640807613885655394753004673540098874151992271509474758104359035011321465995342300630668113782190505249945583737836683870712699053669058404661597622062405850807632220876314000907149945955491767585935238416220536885079481875290990525329216187405521336224361480548669859874891555048432902612258954784215084588147057496489919948818381024594035368479818576459061115970427699006805723626234846298966515935437842296075566655860175479824548650594319005163720995250719679289942826120735074686036775264826848671078038110190357948894133628585807933803275311596782622122918163933818827504085570542192922127861609648011311735683052312185159560862748656410115599308181430692565908396513988859050870592259274490361424941791624637980486385216918996703651566955769372915166739808419304067803011316305513083566339976674102359431957437674209093184461657625414618718259482883303187784054675949610590453792496294739636730189450946770864259411334323770755402772057979959760983579572120866131064155337558248754245371299474315416262864511866902178537247334307966775150809445871340745312218403238686749848878221185735323506320874670057897243293494351281608995253080543803398575176906898909991530643132890405718416364715830979137041750988103333249861198728669782644906458744404058931209102295148576901109761272769492315432250092543724711803351640853255058787243542442692997408989224372243281659320057990652786927964182807066763151641333985824665732461413856820059599233721997753954557299164492597318536478853509781732330725582657868400998048739695774161688770758381629740248516829480878668084788213554947628291250974941083379712089512973344011924994649436608207310236740074647016458977583650883939246453615136610238732306580943121539561136794633235989684565509135518304711585568261703060421115817040578754658957620087072890347081988612209532074958979681650277895536784060679650476989826171724829875025565259672196729571275076073770353431759056138549461836734607368317336414406772245501530400075613140625961044273754783145462447760543617199439117150303076650157163447779550046697552040995747473132604780580877998728040085735612476051783429914791218951771094987481748744951301103148301476709207371901365475007862085187230511094884976568209606967914398447407822615900670146462660604016612795054357099449582938574331547564902513882587317288358065976626277363952554928598885319335605188988658027330318501048530582184925106012824248315635496952478795623538791341471271747673585518669412778358674114580023011294186985199588942618378111126234431424450982024653232866506559050685475314951815043519445850068077137435009203323864447117816063014876262873178285726069384022765406931181420357559945140504752941507171608008215862904051680514581526135151499925342614156270140502359191849427954391319652439325953305317954491515637969523469911808779642422383407935075407300315592104642023747189006109120752216894309889480244670508750831709248816295221582399240789201586305950171573690260307464571405307136089314627055310105917398732082068906273247675676763324504794124649882842401384436813682084282888052213188893121971961054289796171265124072071237386766712338192529634218050963963286654554177401227847036073103021442785934339879968865857102969009392626777657886305625800724565183210928657078646251696912651413860232272900871571158953539754805945663578258407221976821788692745548286809170122441554098935696016305394130934768047034846888159746761900507443281416607015761847582049804016732566508153944553291426768487861489736302657771381988344457766495136761494967135803256062047215536764475136232042917248147773586530780639589204225833087475390034718600737071084472887271061902430704563089338878307428178354076045952482652871353064903968254306617270540507582714900407437559153537858232684990528243350450917162064053657911597310995912811465390966166078927623566197385793155406114681795902582011389733938601304814124044693703944970284804105536990670364346013086786904601710714399562321746548415697239091153494928961890589457799552481206350278628287292421373843880433456483846772381902447348319130028631128215881571101249781983018643597987111291637286487083309250514640845750010979102429678705940770382245949949259970547130336428517775897296489045942841762175549206132235466517586861143216261042233270885275874423996567669554853104562467860086077653011804450997955475145861911392783726071655388520789327870604765963451397194504545734059726125079636541591312919636129818863813360564932750915201079822637031625268137861641996450405514583583897570038879347113533139515133770666685699862637560076114934038604564534715978040560515467003585691537271623097076433113308844128345995080931342975635941613338337605061004972426613261672399275941306432304015766496261549440822355791855895260807856423470150945251807888763877789420918794827958571804928958887339063330881375029575065659286988186349948906073654655928102304996133163366228404822951413740089888292892295797378492112476699681271773597349195874034258717009698239494467662114490235571923259516930352782445588709950858853696439087399567239665254714477166345639401560211849579401872762420273649648461732746925684343596024343443991195841204881713876412858878644743738512243301930537162582232842633393275288524613427820263789098632068391504244898876607217689069852597292206492404864476211424948613391018929853023229512106063759017232392986235743061609390491605948075351051334208861795032242830949662556768014699224851428396800555650767602717577033822611535381344719368769968331995700666095760526304199787837556974291793663349725872221026078435739445574316646820020523986176487112452360324277755082827002023501229655133299465355620594380727445268543035509966379765375499947807870488341280288552005262582515294012022018757398858660662856824565343463916550771113130880089374027822606009585822961739990657630693482838275098452235366067836497151855466156212994825963337242934654515409585644460543158269721636521517051422960043613756671834451103572282099058885544622380459881150736636441422392813600634941271654749452390998886404882591865770361714353197686543740448351600345523764726329454921204385322389278492199949712060205318388109812184525980816367238106646593182006406780599176918336780238308681216400609373436693225962856318301282119736318770342688748740967177543393542606584319034289633916290522997308075407403203266747585506351588450752959123834290360348505663129744434733767617058595521930725279313768252953677959630779950872461673170730724697517626731562038004485143666565840820773890376864471179078265632655256376675825514103856547012077030055974178119069670118534413405549787920580628489337732469241986194195437526067699989254659965866888046789244684658267458102534732908314620702231614234877064340016323342597232891319066960555735719439956122991816037676934114624759492169266541225406168382552052709226215615660867213827176744804743575313016607423905018061304976059782421922300463025405981538461059111724496061511424078339516371404686927409848487237500062657967142046695833060253831150055999329164554065151471292003302958350417175734059118181433594896464579449389007792597675382613125838230785991123207683851637281776755491638252707503850059472080991780717506893326050123657649413178489555619292684011876409884745064866684673776362061192491055939347704380222970674711986917474229940116958794178028859265881955560023807370338378240969705876358415092633852879586333312689001391173361503039842647911883007375476783076308980905662000887216120091750096453793510608593484817721975764690592131908160654367859673168390877531025207370292315446178803258195942662301966564718081158596915524816191268951195236040552743114723389402414084056672032246905816466886264823112823028324807679498455550270911977773672396177291903802139503075812739332630432986407024367461143141787950900485308061950519823609744914142739324099972299645962350143088843823743181007689953667036692631553086139930787758399926834625054935983399373880519391898129088800019072003593378922152589283881084247738529589641598936420707549739907152963010081874488546297129134809766110816912073008665342286557903007610578145390796923168530626355507578363343054758615691691352733087560620322612819663182373386035095319782554943287310661126629814464544183810524702965838829254670143936904986627742353884790611934706033993558412951080690671068570146548690097789075156663054807328009776367524258595814457385897027745235245215527546381299393725167399362924542990991579282384257352779730395557623759806669248977752701195918194285494081467844818147818752071999545857613299413484383244360979953381629865805268597502188822007315631659065572677865563839824840727522022360512293328643303243590537349616487290669264799352116189004955714449080987305464528211965497164805400314394311325740626236186433672040176068632799387377453721422851877635603995790894285139443160216088370728295294125350748528599347800314835231074513026710427751768163845382623649362305487612840468691383953861458911926978360824658474365249778550629169782803442760870304882567516066248157893095162126863497149812586680964396822236826511460747758707341013649870029368234621935371251484127746082196337970453693224977767290020495725488832160780688973967614327504044543321541699679207224661778785617269173886655605574108192333609068071613948315418127278193471484831070290360259001090068514767364178463698307840279512642808008014522466892286118815980427414206602177337479466357748500717380889257268105619197631480629729394559817309894293021817795161371761723169905245173254734918279013841387545952224364200526748261659032341950110348473926981490640060572502897666614767646157503233841866439818176645074426672511586329125485670648686948890246063510176745445343062266609774409704485415610015205792669496285772235593526610996488167368468690028254316981795662542705062203696985854837982697404023534160598028857450154030280634658882257510352562052875771071603732488937533786663530605097820466781914427198990145679666962805949569267430419724665712330074843320538917895634745579944736134589435253869722717198754891671348525557156190489253039913724151923434785591971054886658895599436613495382286835405426728858404383577669603611449212492424199866610318395808534630912817022820928454823469180965825771461221760346878995767817959548317955959838343771187207466828173587131880396089354023250532080346018200855803746693326910767797083636309053593020566276391899916966634007851843834509850845309068793598674521987360287881781556529814770720160817691974227748470036575148114210548544435063296999554046426175023667864015724201850697840887946343449811947035388491744590468863199817360744166321091657741272343121645016086745530447896202083433724577038968835578847078656929757442753117556191882319308614042982981838343474008697771827060123550017750964490787297575115246307059333408363449464565938070711630974354246486711651932197029915645548834767611021057781840134190009319303773878629271726129484187246717033107029576354881017383646098951451566194368758486119200938280232402545007493429211555734960904916501601037750212729977393645769608579509661933976560477387932139317546700137963002085117949416023525451706438051508489209250762424367137250296723198812144830003413380925961242868002372204399596615683581581229160106352408754430536476406149213526220330374336406771401690475393684957837272734748914349631692653601835503899750629209621629934822814343110056551279978341615146579070209480795714127561238220261140632653318727534055070587864731895691636193258556013244184980819451721534264079147107720896158681593682954790229170586556320617296040638931213752980262888736962735882410740281881350996799814463263105234183758369188253633166752691034324746634856175001290200389999806144406183204451470625671700890914876429972468767168636964817757580839221756064547157342955294123431311206894929897876152121683146961588670770727683281886593772846424701799039843300093653543583903316019131011438556499723816790479310884415682715989658095753253646477804672970927120232557783644106614432512179817562089486143054583490534223112036630465774073701457289727189214485743535077458613951205974488548039657573522094371317852430900748989911955843046339345489720629136288129468446388008648519947047932199501868269292604072201596323623223255154141043145177980735357438292621756606027971344353921564289285773402723910554096696048821620814203348937713362867655197107935780411996274774385426138631663418506933756953499951824307040147530132981769541703789844037700487005831512117108930260497594250183655429416571578886464639210203592973309536718516375559177147714009140509817098244826629117285855784417462998984014024140046170316778451346381119130269581961725819854468845756074457460878067898556398858779915410786379328868686450681555510215716688220066456114459063983295696458638819796523462745320798184362879426906387245027677644741820954741718697594571482461586052627162182214640658165148982199465390913492819979925147331650229598222366012145563051673626364648977552748741972534272671816520539696578367903425118162841366245205760341846313318021398653260772850677309734727488442914959428449705204633018009099825201596551935308177446035940235066840686590254574432067457519460888155164907279847267192010959424802557818900715157959953679916795065068371814250976822712683883993020382841253266575527545540295672974665260748958163342479094546340729224420401035105887563525340523618166257587105097493441723150660598816065823002209760671113692677919266064620671291448832534669186897088260016178715980022067289127163518289142488556510679046997390719316044613113039698552160348589502853856458523553591121719299298521766339241791530106920657138223359979779981447632972226829245401035700571972336641962693092526690250402161030149998793236355894424527322603854147650359093246487415377995138084673678353545644937946405699797283943795579688011255508457342386856116693462350161438815140520627760683002997189782949607374865786729294131466016312198973966697841207105965633704096282337258441103312347363114094039596366598722879352805193882142545450150685174938059503092334407200349879530917636297834538908164030747405600522825828754069615767584313284951635935053252409437756332469990622475281109054387981519042706694939178193326075433040135204433558343482540198281938588000965241765966023841482338017576274162736000842627098179984717349497542949498498879519988745991140762576316235824407881830366913438728511898714537133134761855533545852286882325908929170251341992964623084673587548090309146578481194007962978809776616978781347088944212958665793329152153002786348392539174414139019419080658874310858176632883249830199308663631466546613651528452832216418271875903514055481508922887730660172031446329538348040917082489097812554925449847923254427315103759414317504828277785548468427780654060615649731684019805230388865876648367874364144714574649847130793742662136297321431123177064025914100911575989551790863723756645953114131703416578534584685786849008756184717585088021346963215030264835348555313672844978721865454974671173045872057613850033532397763854986796889744091093026886074059199150944239623337908360513668778837021249938403742695733228158764962314211260804054445592650458673185929252632634080489965358105617824905241701631872406044623389211501308702395231512730391292305667605335043528706043618451931169756399810415178918017964424924698230633218810203467826829768751207667063519138489464390154986250663476290314251966836959966448478855472921536350845534373862738788624832901065732556337369421952380790646416180464751332817342090299095754418538538299265669690556670465141680409280937377577514282303431039028308634732554275350686958749242799936580680732848494749620561026197003645024722824432252399568683699622835841120421580630929999163383988106192887444829695412976089442647064835244881454310865590332627116168810214582588318799663737830017535441711200329841743941000171961481505102547598763412659953599787650955708757295118684462118440058685778383189541117132586198536478240816423475106693003357558023118665561659325919014206217989994106455711617305575754150937361474838052360211695651168462045481102461804669268605629453188598932815250925312331580974751725082944985424589982151445957256687284700759364885188025603765887065463872992794820021537432772178972370013243812323951903188068560122365197697970889901922352682390971110914370121822614974439331765179234002904732192481143204874524804197603479190659758445565118753689623683425681545910770028950201033809259027237635311743965975086067706085053827647864660698560384178174530302069432460153353458938586827082389560596367662500341853320208008943924292261093195928360826905235809392480990028273316893313132153989913750649831227964737875732155402144942055425310015126806348955136214420696078507200839444738150563342646233949906315396354980760377762128151847495997758746968333979735498078280448479451726645597558252656356595135585938483228881621188046342024038517700405335153911301608025394790911630153809778102347185218220461578533166851475110226477384772816696975046183313553460975975919653260114616172691103673974578799222420480919615357296493421258203259499911806461341228509559934330708986532454321591810806062576724121293903572205676332326819873578248102965523419807687244822707845535336533016089017204630816469743429270370575255468463121534926445425258805835145146585441604812181539666376981758701099728324759330841314001332195801178367256524692576723764561077934147951357154639623749702036083491752865900220412808288276659093665088081324626849820780164108759264239904622487724439378439952182919119652143333335945150120152517513619877341912937030587658323260342397644912375826205520226807642513463390569027887098452349201076764621219334448321960673842696376354425133211779468256289072787840643762093405099574487938675607694204570665755431863117152049614970434388498484761491937206267867495806891390935035715053824197308788532647249332036905296442837747174339408507543783412191990974888262930984408086123327750712052896311243265702741360174687214629004300960102533900644829839913241807240894314367794310280878495176135809687917681918688824744462234252371114686760785932112524878137649222074191660024678789211075739935552732113603599031892596185335290502489356996796301089978025139204651850940749311635730943453675661342676955088092204691870198773289456873960497771408687776854964014455720644154440919377139960888644893532035463937803147749331634562705677146556409554144236021506234333821745046247773610316703007283846078072754333577144230978283537385208482300792871407508289984741992225860357762226234894301777110128975690752608868056652558581755760946037358168527023444777255253854371425598704389171229184371685081601173482344496851374555226264506182270216450795526048773215247069528180727705416236200169571144952477404016296401074395940185244665666027817136131890758880179489959083438035087546434475372460820946668478393309611613855641981334396438209371463876418790725549727753309643096138377446839803853652463541622822694183078792485364288708520936700660587645494904068993383784798868066108540635033072116287383124328331118202021714093885446862711730954753051590479027904837256390873397528015683836126913859280147890520615065933162353390770890892036348425962348384580972713027301831317205261523493454853342467068399111066371155365327739435057330784557498158278753343642350648442950448063780880572660412787942557222253222292716006667617064082981190835887954699839980250211127022742121729670290032237574807808926456282705779587302612850320214828493158618808581370482759397030557325488211723805874281134213746730972269058886868409424295182083069353626762257099626812637356514484208142716263009389406206545479333633987825592110493605674250838406259017634187802106175460635829456047780500808607648069732244087986354905412778548192308309620539872438818733740975313591803746549126786823606212400159399721076590685310761190381622065382271949925042616900769341452354555352972740434562556079339751012630039965622902075891926059255913078832585845804435211137285217217612266074503315145914864624893501721542865118019201853818340164491034352608705528514493979808749871777210406936837632770912254119570057230981572938815108879048088880597276817926630720053809433441365383239367322351866077641583851898346504905496156354433139557654328506122436112463345994001874568644462557707944614351010220847044360276064608646811050376961481183727109819562322848977597907266820878096452306838423697063614669942671442843106564132397692774497870097974378091519028575283525507157993078811820552868811180360101166210897996865892669474371269893549626772147919758198767955988814584063798825446602352103511785187732713881303819732222576541353101575127547657086098488742923428614704149934892726187700814121316118934760553975569647749385212345987080583905620396755095975685685531149698310334606924506845330116877037207757355065273013563312913635169509543696468819834642649253581087386570767561265063418598435611505128317937015777024355891298212817838304307140893711827737198358752859369619511393562595244591713977337958087443718336399394993021622398681245173897837149900370857196356833048354916488821722025607696590814146329989795545657205078840343353132193725377423370044979813344317004984284265689616487180268465125307099216475444760561336076202469738492559922246250642328341786304389066818490371432661162511599532422892010102967250269584388948131164013137183175469959135467226515869157551776227453047741672630502330129941917782478207917562122675508605852136127028179669815141919103818700967789667980363456866996660444379615793406327304309810905525150033427729559122693342784132791387483351713667566305026759009688293853001170956222583453508177966388206659285775476507232616476202539589050865139327605299210902159879260181256309751095292891817684795669918222082484772033635425105895541281656049490289876630603196291617690516948644549453167511018044728422800260683426859108571905083854361480736757793729121551909447232824141685839344266949212768077946743986215449815578140908357268040551560523291711194141822564199609733287651372633185046123710219777576010712424094906257400022050523429172447227343869988317980448501403051277196921952185193299820852824864717832781863729268660783921356167151522086581114652763872734381488627231530072252240461275410971824409295041276059564662410106959384849888176432520461919922040304200703280921658111287231407290943198140657183038998663715175124149549982642446316298568909130754295861993835983473928504822553651909538807416660774757716482190443034130825705707965931198547733985643211314931204856408396599649204248608369524012611161935721437357518436867000649796399902966977295793492482506334957571149418680349259338920091508166947690914124826467035366667960222310841913422708034151908730405494258322820035133835759369510338988415769380697531106912879460611273776847401316656541942750666195535850294593335365484593997473098249157042659629770321362987675404162981046012891419460437985636556596637559046004379299982211024748479485075214961739726475841074859787268127075369085108213503180302015158596334634850769133545466860731426533015792469425425218655511787653367712889321196528831994707621151836732074995507868790626891780335890711114907802762030678244779298814766693998046239289495792436957629997794581348110244030409647520608969558699003977595953221564742295226955876155521998709606249917033531641339409379951700591312566798875625293502671696558321127558222424772211948869761459628706548836769368973955806085869005462511043863191307392809069069513663744385453354562211079440573648541173568290870952396209516396871757024212685576296896959761446531174335545756414761324471578448375300754506005265244782647086479975213267850328540888764372666365671415302582943062048056291101095934921136684487530965496565276790163465970534969917566780557009972436832175348451991637426399589573987450761040058493310686262635662542059108420723502675861967375737446644192976724397969814244046296841896676114271331424652480388104689888182570181966565244963976287093127555657047308288140899519109861271338723508418785383149184277720363813457425083909800348989058910301934336358127426900622742464582892366959687093682537088658044590798730330164034228871285952163112563095591420560863518589003527680421640823396083027496939820488646688498627710309010777263162871583012939642891941118036627139180604158003274325034404685804777790701444416401758014777152741926347167988570378266544814026408572601703326558059714764441544896868044864685512693749711397553657156899024181385937933829220892642500451496126121542499408956138493468237466783144831995904980873704374221404346675818183431255923654746934713153775715815038541198704758535739527461289288763240013170754402543150158712057295552758631094582679054679370649067606825177620100067165765260086970330833842096183291787486521050012869666995145723901009851713896851369649426660431851988663507990185375591496643768004853313337951272241801004915126710217131652485487587899117692433892982081622392800079822361643900180988870594747656519407375571372863071955240820275159175773654904586666279264245894330599845630115258691944356338412793008810619201674453742257786932104916295343970642906023169885871235910762997247198905673699403427509114327495751086066118570809971828478012681228791067115988228993632505644516093568402169270215971438055367746978447779794804333202382123046735777751790175834548411509088968897711814939814312226650247992259141535818829993065199320676107426564929336277510273992032519962011554765559743684749324503885384292589162604768911761975585502456542243135417110611496717881157525577256111578632787292624636039670479585453358322642811836729266277946583982407054369188886470028207512649950107770725025706813249387591538089445024715525524802892519447422108345982116837364137676498812451365938333743887122225424046886114694944923187232524714140857390117508605583535351472734509434082880744749989186342695004085630549940059715249354302112141698780397020219236871629739742887186457162016952301184558045623326099474548263895365377737441529484793071696759172773380959205429398968059982075560541569491869215580475318978021539163030829072006099338854522606009229389964461655901411787783166178452439434391827267805454387904727508894280624301870673893024772356998203048773752011938379645936086872325834957181596363353932803259134546860831462726882842728664554436436481050462951532473282420276591669639967992337795819849740191859114435866658991636421114390011437928978755680329538835297665535304001957181607301321358832149458510202058894834973950666220689085217413207719624370372178323594029344184716785727417695022527204018927965015062806954863314249269028833169985436046883878629161681793640655328147053840347028383560006060485027547312085824347548475635441974301056618194643323625409325294424455630152253144379191279039149645002240278337551800977406173387388434389438154428079628476836907004703761893811601575588150280327232963130887022555363043042762651561723267824037879302186521473182854607006433168963803885253448467376077641875880928919071245573009204729606445668636474716997839760978731995099239691703083200546865590898290757871616539174865528336899919880961069559665694609853527249556952748783073392227011642224129142867921539968970398923404383922678150380651206920861119619764583213611201494679804620452298711692788966461442026717120740304850996637056985634461147602043018021330378571644375178316964931338678040768614042272400424985394295054729936358006577252755576350970034818026937675487670032892664578047660727024675033521610631210596979670773066754973133151726745553618545384293624024863525494297539219317829832986635383684223017248371326010670593630585883391629685508800270281688696882036956105258154975739088003465285393516296040757938209273918599038087954203670497570462978387587348899943737819697008567213820644933382137776038278665500214414009123122869049474803370764043161648291780292188850614730002798129884398097781176706676295397081762152515805919725028447919060116581686316691545691423919152568404259610567507086663610647486810119720951224655853629237916588318244081702462384719352790167373611959878684826144176403233465849829745836136919639973570033742332541426459375304758472646794854834370783973635864572942576380608704490835257570107150964711670286284070462989297244209629025895558387351828730182825791425284733994322150987883152626783033578955245542455369013026755684884106531779518278870395444452409078345920292656991416763363788589917868276838545384714751726839966102504314800661681844195937951319342569045317776684759820575532866221298365470311194868133674139632267943455692589369125182840893868302654704476253628502499693882897987625690200578303185059705199936298345503221960371604813193724764697238794356221751652568370600240912316174245828418125238543259037794644527206687990903770112243989302948467041957047094107062226400768483856993223119358180005102162807170025062035364433770105052636955597980401999441860446461562898293032488742298707740119833837657212790699700395114306318967957316389052340249203994792519299440297331425354431822150283201550875574061888153124330788240554783814288557647095960340327898592864864252064155637145713186236460637368150645294338568978722140451277778648506318514978448278795065827604188283640520504804114582770328767890271491754877886056113828393266155407253588097415670210432339313091848342793452632283929080052688786604552248228578548822060879091959257929136207540226074622899146623896649432203237275627095459343517727888142996042447042592868926994438896264081897103538692637722577175448761074515888853869658533442263392183432870545030057890841030272005731271371680376194184842727547282384290144322836764439381040098352611199043534148117315548630332637404714024690087335834185597989507871150658861961561060296139847389828858149622101766132567988592519728995721766109840249931129113420585744164920179546151330545691586996772323125415949367246369028282625479360822526225176867636860297558860095322431724907413161127358873293484287554046206391802273141746194121049698895934584617718925644014064442533031748829396095063652955111086815780729563886199843138293310089265044389072625881003717307091967192697063175432079109410502510622208083649831363863046822372793793542879099672443264583855344273128052979410969837249413390652075557980688238658485984028190181277137822993768553050395190348699131747532905983894135700773040905469852197522444622763496387548477396465199434945651224769746645154366931907117291199191462378248064674977802404806763228469527414150478247364928574770889454304176040649879238066062887732937984813076424384329206587758784724330846613604113373979562032012393702381156045200718219461500971176928903292997622876367958715879925924117803995741924861032243574207569819755792463851218585632280108864000106125953039295108866700024407746853175562849213184555630162155485667040673058721832081621283022365999440674448879974205473645075899246945839234699614172809561762488105052979173641074446758131660625571497659009173184342654785325071295190109954852897699558558164583245921410106508966184957337444382416199305803400361860913228437103468954212918833670958574394399453011878223161201506607019695756454660141650172666627679349669691516158697141269078507096505996558940646667733556120017007986861896269864967775755481614713882018796744555536563775972988946437389195584642345806327463141666258446936291546472801728426350229077281728017515291337845667324055677556938295246418544626894001009874931040990574808570709701587210005510544437673174681491872641377038992870389370470605549771098966306615175540165798321777425031492868747445119448656833159333785726975560702148685745371248985645775032218434392680822961153301546324774775112719598576771305225237186564774430114234799104077375418897572361177535652526764047569870078558102279047099042265043750593143224015235378132611852024450062910354743919692236668530987847510568150523544347656714255612629474672670693118606804543602721483329615678741098914300000064609601810294144598974875887454570188511317640474128606630572825024640530653007932164905574046461898179251788377851252019668837234923059340716244320601206678509774452278366887498333378970295480495287897908484226415975347910740868093462690772201007595368993720119489174977262507685567773063151975709797539634040976328036779143661596111372637500375721270265354672781225769311059305116706893136860846959688015824240065436602429288301918966816242305251126430957051173834999214805844125355651499992767667278892211840087571941452329301463818789277707795279508858627990118150389319701727938919990925821787886026723688037449984000964734453545590887460245080402666078524559316376808726566399303900693085475160488384295753359752773155794111765176315752370820598648456660523463536013449507979054933365630612998956849164589439312719349209514222345859488801444145378941030484415223894949229597860968477673253415117898875803898726834752655848738932592778415793274299083392253947188143141789882542360357555739725830410699613176614992531343935732631370445027988175298646205881802308011806481706749111516640317595924195341787151259195616494666667273567491931324698296765110426310778526840382048787991417158577031718509984997264281572363210110183504033241403311092597198282548369793747806563062442836243379739862386714349826540922632425077896320986630659703746649002979325267907825769249419954735922834515696701907775171247756936142335853098656208106153354377028105139002808591922826374480641304475120994762075915476640487001085265167144368252123621432004255463064437989715590894128815901534273972896426437710916024603185834591834388764373836637658103746950530296180627017434317680788191987381724831683331472981783841831673841878445094249410077139249041680319496851982603363681093788057452150531268395954938324900211746704839810236477310115992853547710306163455098356482233515790458835146243271900947737243628003544673795898088539883232096846393784296068963837608012960294830689448044358939348881712752686139500838447879965595185896460704231269386374006773370316581458250096703897170339294299349609526246257517738704409075128999564991017428722949466983003566728099074647805154751111310945274852040130804750098220657594117579147868788077772366634255385999164677801772717505190451080663504751471082898617045423341300353353214982048564214909813259053865255097346822464182476619318028014733916306173343808370682122173792131287667027008068560412093835327374916223039245940806892386860768765887145779738102347611024776937941671631937923381357199720706661769855675539822523932482280423667585743910013415957252913001410413635201487060617821348369386633189150693130969387027329433456958843674858365828901531556894641373722898991873254690768765749612136052396793899070665073431551049398284396048344017061388226042574998976587527747937149478594798369199539493824753051501454368602571564096071089725308075739231095889457382897229434786505497070223353856027109467005846931348787904915538944408181374494863064197046345217627724874468097771899078839833603069819228646844484502427670458902086318029701559715266832067332050657272475975425644383320823054452554588360825726642355902810759902256779220642843480977967092800213344993021431948111734364713655196703301207304530343182512356438470159717325465603812987801268008209211333951495255935808042502101456416438664345868959159264820986979131457906100920364179822053607928311858927056946258053363371630197658537022267429643915684298616975295291680090138160071551930366285106468652714419084130062722606202486338601367963222679828174150947044359402309469063044608441481043492837973464675632184959589835892423388461675077448198996410951438228459088438067692971813595024504641886701118323096068552334588964923743145765040628147489961255440132530474870377133014252144571018957514411511443703736101182439971520797076520039807399318568738700180592042098522291260248873649992054414968822344173536010199351987601592168405689528812849072403113116762976120150235722275914973399734505214632444343606080908375615812310170571279469179898052428925385794485136160609226416665994943691853084904502551121985508611353326127272812976380021160246424736379506422272221588890844319825659221934592858757727100350377629701144128407120953960116823972365612114114159890218817261423911161971291779118035537606663981895492691116117331443639471041149058525734124126193891944620041797967509212821633649370261340689959469984063246830900576836104351962773801392402406606737394654231827900455417000697093239429476592554616101436053769647495816110890645850364464819482051099710903479620955996582119436686147485657683317524913041082746054620030043210215077683708637454792120114714087101548168696762830469927789878062238987013683002972202432600073514723108722813064024888962605082786359714432049193378515549507284119206921904303442954821476133383960731896714200586328012503819932143494537407458141726115282801079144766885631950083618023057075774676210142190877580356252836417574864173460717468568694076496914104436226869544209011731918119045835546914933297116332815169704882547691516333370198776073228121018816776865563106837195918297950009852629879922288366322528925836245505823318221971659059765258560128618940530821383424158924983802300821498832294883253010176401653804144361641544222931696061785286441719166132176550079841579931537366820585607973276249553411892157741360971848180507437112615248078641025080298638012102533208560220723642865424135567508495820827656660153915619233108409931948237626413517374998197565862703081562640576232775282175035508967880846403020076296476341136448471092120703609311205181638603745024904173233932971830925798689517585120701960086476633416561211158762571444683131402391084114604263559021606175349073315908466070264740725302508933889132388716504319365066963500073950763895244237370744850387749136896032402677109656129768891577152659566359701970892331951989140230336612292514934656423717467827326882972601522187930140972843925499929197990952843155896865643436959620342452956464606030272135104331962926850981280509193538182545933846164349885221299594598428508286666653132107088189787386390330057359562784760654862881987243977677619347136415552768672079694679077505844093797615163569577995586957081622738631036182935849697019840374281353317104442299629582258364029967558133318450342982349416984482151355584208138296692746821656665846313062576639030069849464898283486528339376645620473025949360772018621275830712046621446900868795842271921172163659116650411666925533817001587347918060464761384167863893786965477885643578645156191562600435936511759627806516505125454700110420051392303389695088108763824243998836229003991166163681260988384773686232386097385175573605326859166380452777923912141918400260044243291105581420349746047680078354003791931469291059798232179945684935453547490269236562508457795441026126466688147055039868018700603295716255362253113538706693874957785418789930307184559582258793929561343201531908288459754981170580995361206232707958111813755515132899713553102246652911914920245785482783236740908566257391452006192380820938142649590075164418463085460786773654086066973619851693162076502103959935976093958942922198205187702600682408049984115612325283772879330940248873738922725060576694427689115825051846691908110670269522644897224286141672831136865375092504795257471813745490058646946714777106408614673288184664771338599544854004799020603224881162548643250141895117045759470418221157055809575276282147680889162154299644562588248429584334441553314954110823496961478297414731397512697697810845619697941273631251550776375983905931496221652339618267264254128054114180559124967484005498664468548959392664962612870490194532453669764021326641491901397537029640458427650351853565831730326782226955102469972627704128916817222531153229477895881839686542914582618153711572881205507872061142230796795464185067297612852636735800390718445174737968983534708212807690929763514467409581220281995282967330534299434659437770737131536790338087346727700359040375248872601326871692900603299069215620736190787744600314934298383115253979622297831622486786853568105146227218371772068954525379444719382509183970721404423604068621839862921585146959717817862044120370072225274415906043408768089330435794484018783033306192881641504604773459871958255134033425619942460034154951601154661788079612685173791056513116489059777391163863228373306815625198656556338016777126892518977822008610582792796604483226192509407114851244613101157483901048111134468861050403820398588705619859049376908337118362664990219276654101333753815156098911646998382366653588441202717891547313089733185248304506720429727518823843461112278076390625356538739189365980251721343554326783335273552257613651678629642055174300908775270356143850202537453571831775678788712468058471014368667001526991316508373445084749728416546537314669466775719376166137080970419313356950139833833878659204820248308704055544497570968139907382737426018200141336878603912867167386590904052854897873566051861517541995884320498237853264785631183092927393571986515221020241192146205318164546154288211215748324485372707157151749402083220173452936385199597624936720307179118801580178360472180842987888255444647950811359234426586205911895688267244096768473861664688075635700685727697852462539673646573573941319606423703599484969064441234853130324850984964750833445848356665838093063738024303468965349271296883904949091229483938259601531612577316499746717569690898067493303428477744435990620723225730438308369267507212335962394865821832174295952022769289584787787990237699894249238577369409875217568972595380251833776069105822160958322886481599293631052139289237248791453840900473367647876989926169274323905168164184603533269279158344530553636340436819985358254405661656622799200627559960365886869955106655141580344133532161319410566383987162252852525945666916607568373826422659544401110936246011786306418977087689549322496111120859135696019006776967428943976355577811345512687713372491784943453259527604563887650722525970635306885306527858177373323400094923496924876922056865646573913432987434792090596164802550426429332529687257666384398390829819120239881655397075577835186411211559236409784033170515300079405289702592468792434340374123995723460928659164424985095753199992284494951746470062972464196148206592720638444633894840997301520831429832717582959131803537938636459665726336660754719890459282407013053992165160486308153065175767319304380583757509263860247491702579634294324267725876972962461696508436081041026961494226159251492401563278238654858244184036203845042220256212029586833431516007104340319161004019934974085272873763488525795191339143028572424422779497683564483932831330444784416394536164680402871420862266923877611065291381315180489641640080466594801067307558625635113279001398060463320453525130418110837700272218812978500591742439241829170032414139146380282669197522257606076941179716929970469284300499800079348365763506738108516536619526140311875315658816469888809193147507835073597179340517885863129207191370604028969332892563902547145765097000285992938568734496783089651471623295411836626464126338456023856675907976820730886347961206651902384994202666118287061854223071797044343185852367010495479702609913758670047399712914748444008504876375387478148484386435715369505198478579193016652322851797305691589586046673088462413657502679689225084636479731007779540117693708051975763822904696886711853853975817341274359449583160361833608574894898150756243068781062298468867815266908599333441358712699944511094384709822965352612638140089616525460643375226256784816425222639967084376576626698653136489153276167315614614482325929402806714137753221987068268799217898510871447879073389646285070702012770253496850669867393710322707547007468029785750286543790251329914998102296644214864386655212974239955768468271831131205791518531760019828232213722114886161587045208416912108058551677399868923971515183366834753709425728872247612479024093816668031834875843833709904384662861878590736996842118444765559928212074134132965789598430283933248337386465816093902366867384234383480040105048530123812916120727320733475967858097377817185400426572871615864581291230955269186086894592876566774647863242718177429552267652167732139921314669367891602438646798444806558857064777639992161450370702749135858348688278182421813317993061637422694569027841287269900496551837688343997113345912312723015505128754179760941756705019486707671446155621002851019690363546474593701179395651520355536847415741770388567576476805859500733743594805891070621057502564422809604334388075949510533790161997573658969561384027921952835289817446000706120839702478706073797433114556821414172786565394557497144775876132960498299531414429439247380428204319930962513515542240094663488827210639611643125019076148655916844778459854960285771208697051979239777348229519825719477801910012935010179555718884553117521786463669276319933005176051986580849074806694702695145024744896715788291995916515115660049985950130585648371989054067095643236121496592857362387746656602333315612699762084970044386177710419077895182959444112833781475386830696344741402417799077341136890818258331402178673318036461813764370193651000674695247173297307963336805329824424187253946558587257367347646100509534101919847883797441040131755942129299532767720514755845356557611211993143046064816164898378119180971916418042262831161900528193933312549077870141356697228201222686809924216367996177840662087286677893319366021047998140829399491036472693680257022620556089531248396564388375393843903298830853867792406414709677112809801116273497773401422122958396465891089255185291996979487152968192941456854391295796562919043715775787698416680264029175327435159474132900046476514411121766145855118975931841678823281915370648136351409541157460723705397906318487990957766818881210157007609859767922717181847556127856587940061345691062538900261889863049652915292129466848473756944924217382512830635822648622974717940925011846957585589637954926170333254492247869904558277020802439010341690754917981327736005521942862685562587427059331522009496542085684983090382399964467988736456035449932663832348698072068455532775128137375181468997576437574592437185220042412825262101279238894209970252336053980287166921865463163771570099222341812628698026868906448828863228060543607567661680718562643098648998827522481588768319504557946893661483191677055671279957828168730080211611089471347040830403676296990697269651175843416593743891655135635985826077378414108387248628182190880273623924644764335898353983760455026672276522657946164487471446530854452372647523831304119037681606605973549187215378447616506978405681012802690419776822693527938477688082120048904672788402967238470294940213139263579866219315390228416446802311906692570669895287763977000785690553651357556172342804305108158796141075963610955048982870312656700173153263451304426420271635764804660469821581548786921689141361595626364260650232255431030351643497390575803371297833673855869667513542905239190909941265892477251157121097600556354659883810360651128696247723278177465488881261253569990279430065786771356386639864306233993854400211639641391110409065174916907635452521728175883338127166596618741051842960351113377868272856241964025529207166875726425916277480639262396462903438474787945658248243016183281105553176311207796119741566642795327632487260748571198562867643035087570703009386721076646295156619005345115161112389951643305610197732668832186514112476400164019895969302623462237456548499842825996125021353714213448684058898546287490211565195595338423061488528748646745443375209041208007145976509880955430979930742806573337236388211870017863100986443320306817106765062722662276168237460358039279608094193273051874028394694510089170825285058655459237684541767503311288067857810616177434603474114598693956127371554077024513489306701540492509762888435444804107068244378016703060005029090282651024253966634674620644190131235313107608725204077526007508382298087184675879376272054905984327540234122862468396840450661160900230198595073058981397905307978135989470069982061574595732586670453039017243331978771601717353233945607350108722908471017023183533082198985974125959679038482643923265505915066057736279102161946728907412964968228078320563321395211684721497588068713727106668607880494999241550464989053731781844901373530006443470740562616286644991174344358021289309887774061547825444531801504462928516148014303718861032492420853545916277677801994545808994154923635141071364987960393616706205979568193771858250724917865447027274962959072372126868618105224363433367275623891767297974510998822577148017808670834563316482172506004223869588085141029903614859218865632110720614161926316267849949010252389786386835622225350309409479372267214909071617371822141375406971067760886859363320530880584048491980019178713339631549282727876292574910399149011785231908761786014630398935593464804570716064555893576436478025690803148802660516133920339848859771294700725947457340180229704222443772833960438335559110408524254373052783517943125558393307346758017794229918993984866041851006588207097590340703197148894355824132664175082209311841706388266218624200448637787812706338988456820522772383596490423085463776750570539528479125022810014302454212290182989706207334176571528063738388384762299802770767764601465076475544358664167866706936929903605515108464352656620034241752632290393637768958881772158249147207748796930435402334661699827528492714630999480375766094337030672970506806916024593001415569906239853936856098915263214918062527277758611727347039239906848498750188755223572777823320827094422462419306152031744431126589480437199342916511556039206288876561462581348342704774106825385667142728727291219098614677302970451035474702600798402684805137268307030207767641974750798991532814110426417133791568085933437372292070284571091387329399421428316740227123211289248433628919466710876493714941439009812313276126923464184047771516135745720773648891924543617073794102231897534727381966371640759622282602227807622016511025762790626001545424333727039585432865706894903291109634346578427689476203045012791978569081223802221219254210014948784499773397129546570873269498534888517246899707910224970929336881561179231441029888456565702215040642813803703645168326427340216296783729759289824652749089676005635012956320882071481026583236167741297470404419628734779261813277620664469178717173283991706175794455330462024167096961404229155343825435578892718546616930319372253333602831973217199739171444160376793558573559187230636275917803160939827108077140686933076412415050132569821747525995948363093991080023097354937449141442538538539833711258338744638818184374180380018226141441509150553645431830989985990900563354454474710412192914558919950074206588244157930630636052026369417584069103733118508725031326866052447728496484839026154563414916470980505719411780662411190538211011324940114998654081474100597717714781213627486844511302710377561789000933428226074469565577048856334621291093483003340029231767965128053490263614143614179021914729184921476374739689165861508498663771650854101212874648714309726053677465104061500046593054063111559372520330027264700998275637330134190009952107820582472941919739958841651678576776681586480251509181112371930789669404135536405507677162208227747177017279530908880937398597641327297096475115959947971940765392542495822329036106957354605136985116904731284087445652683925137116049135084682077929638556776711568892026904450283810792095115973539396694259476720213597628541741152581717581986442274052934465016765922825706086019506346659502093981502368656595277098256737347430603515454817031529132979984420253013888378808140993603394976189609790534133830503493829273149277350737549486259396265950378283261246154998158876227515431171400717664634640910131698136828078377499833303305983031897598005681720004715665116554615534876460056142447098693275852992558140912988193602177177109868679574264938600101412345895171612871656352598204447689353309855041550984976811468392349987864555481525167748974196984644309228966330260927104141220435772104374596780737765351708313260202543078781379675081868055923847430867199066970304428994192842737212676294128116547158262504813411271585073050722946855557073933561151701758050472645317744874656215276718361001787380442248668640612005436227484399321123709253686363186061871282688612127852611282332202557194002186090584507071378078981813378828883598411642422833186161263560156054715024005966142468325210215677307451304980143861267010835422151107885544297594312747276610654262300866903859623212699551225713031166898194441300634926091852152030502049828412808897603755522187232382870694816658088976964875242111456181127868256210958826812979591903079091594659899610439954896654038574310840099416625848215934340947032632160720192601467255806484215538955154704269830881555773378113537177547928735985678159206845664877186560583379166630844877299684166883139402364581436029872160466787832659230273223146186279068804553254564830277867282712696692734869237590528461072177847579196657604068902701372294385388850435015816566908294146988683214450331534551134665271812852513763378731443649158764625867737005226294127115554435281228793312562849260476371946688598515280232914651579827983530327888643898347656504277940837365490941826845524252522714028296151368255026448743043300195301586546481391029201114703424777931699865928886147331761754984403101885834846437361575262054440630991107102411330460630089134213723476416900841127348237214220120516779062423217297408051040690720392840569640886356753552203659795285645735610813257710157559242858719411362097365183451050280857860609508147709625468942129120421688708501703106410896740701466707336659141566070343451856882134370936825823654574441101248234820328238925484552044759731381926840198539546650125297598230225962780685317593871031525474524369062650001180261964464762182528327071117550697974732765429285903636712815118398038456790646388803682219098381046079711260933571540792433353224009468925992980871637196426511942815023136334954735893187962459829169051421291563107167885606305994375499402700743501442872808673839945989868640769876890947035128787197223484791823208522273357343509984977732513251746667933099769554839103742727103589776196461339990518511196913928324647469175487440640342440606453844629673562798736600992003920979482281228558225777528673671426800148131556335413992519638536928370653870878127938633018024009017868888615214978729810406756294192421533523075750549900166352455753269929552221329869763659090290102934071737480610833662557495184525522819884864100645589748013912936593136250480699428388232985270213168648043113402049321342717693991006728965766308986976176531382319284635236599832961385752443090523005536380495013767454479663891939833843913194233488788297402147101556360826253958214552524412605189676836939729883940466831242798232285852276541274879063092432537334104564685646689467203161798899932336202279187308145801384096171878912895376605473247738331905572957268210416320638965057586525216952628526413944232968455146532811049642376047659285436879424253278519512601454332741119786292174172128341019289435130047238491603192022106650405996044057287147452808763887370477530983939819915459980721353278868418274740457699797969314935115437421456283992490261511110042376733867592453835836114839756387097103107888024973402741358759277722364067874271367616167654569088966078061186924307853990960087983949908681250608387272089164934701545662712569197904532071889626862195937497191137207290443662105185930725700984336623585026056450493368336699603627143301289179162019413334595475981254225033955823240691461708680885066992487550739632324059629906013021928405454184979491104992093151564818292892164312591350751844579040882898573839896251893506260781864720414021692688643915145953124025380209008963272622795010056810191673796547220596807631392290409402893654953909516660010032400716566623190947997328107498197462844479194919392705513035774592511307651722537809654976946185844020050892502322506063391261653579010930465075335589398845175888220199823880139243434017641932463518917420809532194474531267533357935291613874524416930468967013617661086445009149862948509599517704784938476688371888804611974435877169204409600582363149360338440187763208506794569881921090999009295373896866549627237526601888684257809012026634209311580083129260918416703557403782244906791926034409603727256903055492758127715081364627062521781416176960972249695802616750776613093130925419673977784681159535647904827404570016489408282646936346141383138986334292031326267835040279016921973882044604683602474520087355317526036030467469283571467181311266239032112716754594410805348029730740203023736973447879252692359364655694525533656880290634228325334945627930096559704985236812920698342805520357290037309134045632296109998840451055059814714296555308633424488764307112879529307877578705147633554295021591644926979680038600405229896623361835662317429824869652566835752991843396507957221676774629594469542860698631743036395443410341560945139557014747415954997553194479432010734365046190982584579218821375011823114316441128341440396837190798745489140175520626989041541194427615593986617009588846436560126443504550834288852723170788127511566346920839632089457480354153550165786799070065102933097087052171911467662459467551774933178923915379240700972090033527445831731122783426728244659725374654813542347407284897680307107333684046287983674096216861243801000934157295358178967425579937559064935159980281885478833895011251501286683766355959717253994768141828108833617014586974509969889953609604538877311865562443239836307505071579710996948392255088993151066489052784421229652529622184770966596182711421477423291398062062329281230626402753423058970016519010075253900368496145397146977559098018807399593118187608336364561270845200275725525709960774123529876760667388757775317391386530928162095359606344425623164099105763806690619618186979782723207168829831985930622274989735044238643878334661360155191845141985225597150882408265106558811114891278996442508980907638497040935470726162711928653803551700388027747071847258874838520593069422208502984716252486038179811736961716645421104101286718064775292602966829296301694048624282447670985611573281087998835682920448828112188232724927821238102888317524664616450195547925619442610378240348476510959057403786753635611489108096003324687825804122673633710988534485024081524514212718060258505924370231583084353410304229517275816749269865106817524966731700903654294644790240200902515117608771126474350644498562414421202383809354596054497914428792956815399580815781613659774128535633023159451488717813658873895465482737118989949029854717961956399506923108295939137638934125747034792344282928540907949415345993641372620842548923929063291967214788948656803557505954621806248561221875213818012719254351270092705085924070031146443923692351597441749003970815169040410975630921074515256024995749697358435708798287148624048985545598369040669437533632305891030258571915453852443066908811243106897108062536135797901063512897468934101319111838336338392773224574709245303111517003492434916984416558387023787992817361051498191798486799396990102855423713311767716442672466047122484378105942200551815001638470143580648160785258684093057113034728589062600007604600804727665436334429174897790700053183620122017660840454824347297861640894082289980248773699286280926097497432994163412212873664790662446701967372763565280398672116271827553408166310124369738599192353413349363271868835830302630546271051281705563189572745599064120213470372763432578153562755506421434691277906715656955903384518737012788099114770126087559562590274873860501834950654617538207263218835874149402336205574806381895894715235338724988786010400185368853081720092421323155722091847343478499129959220304360585375802817971530976376828762874196395110205062422406584028597855843944829647397067111091587202168895080485074217367173355588652925139497753170194592044139329594992878455612428271947715465198751882939621106978800750912472252884438900484056624188832943278459386106148278871263755932989352689436224577121049227342474446283785096887381623915865099416661362100038988460293722057571065036572968054713055534255799740521217311334346002335120685461772100627009181285839335065483627862241097981842072238492876436239056569522675502008117351890707860866127439844420433061418656750079438263822542914608637676773115344442179606553965326348086728604602059563875626537398271283767512026830669614268149874277273695992374454605131497686266278561172310412821798186554543117908588426922331396305312678764973733464610917083404119631137295091501158353523804383472584540698281643715558363651745039164219225900311096784443545018372912371323565630508733362929052994918970665401953823486143786624345589751006280318763418272908872381267667537231991149634604194768059523005890213856290638992930220121626098300159888201605695097157235221386323582010336826673059482336208861624343333124134780896346299921170600334354019108469950573113107672859447052782040646151395094258800249390825034270455092041914410447447900169924087979073471569539126540558776035910073874837389614591580813835632362306473333791732109309934176390658739782657082652742912759618630568935673560259288560066997446207910581429109496548735633833170703874207536063452744161862274488332138825353342441507247376181866543441436125095549327900197610325941404875438375098838400593366703133477043705443717989497384189619984337129980492160554387638122897558468970353559006262621851703791521284670289212288502698165328606695969398706932356970262081605887145400175979652251187301897129949803511487808018795748284187829469631469263000080231054778880672329202670330389722549529947896740889402311920263093397991344475150412813770949146263318151877296590983639721600729542478379913357557769729807325868048006554931577172419176532346948430884151601235656313420919757537038933986950009531063462817578995524292870867348434358376320258756831656171095242398800324681042285584492771287046083108226551160843485313224789643993519701595707126872782121899396295635083766764642792024088351125203447363501967471917919340646792426687505773871392085469378672564623384944483306511855227729880541141933437742290533397091393187352569850966457706004435592437626021558355684441640738099847642987151499183524866525289216332233745109529682888137145353072025292316669275665215469201376866347073769813911722131861730979394355755225609125840686015850272230653042016915973251661760327753697931213672622887120031510495177415602635700806528762705103914613508734241386002795739951914604814492701426320236940306843919728308607365055379736875586816910422959999012959652200760368190197875100806288214815556881767991128311831962179864760750514918211287909543917221183949494920617391206159798880945822147523201042591540662207081687157171158934176539280060883409901875781053355328935199490574990364131253511830546432210214810312895857458118828581866508036779717543101066674449654380510150266051761090661107712771569109089841548117424089980193086151926943921519465290020126208871430683536108561331491165227898613406068118303761438949925701136787347145070829927983204828079184787954985275972466705211146609834302633624435366399112227808066690932708345463316380952780598107301445329059577177958783499971320351810151849330234637340042749605343686507817678098442068941879616287433634343136672894135052775758557492972100097394271786092362390809583391220527026170187013460421727748723590410768227700756706315440104034059932646643822396060645562731539636565463843047537152560953112389352345627662616989151985239633036380355146858737053384619775338448866184000235493958983544580183141418813116283224379480955046388793154365161519182137793566334109276802060699312136880278350886996057340909820384220793665447719084806673495501711041592512595434128776158015597481013879676582250289972309157750821047872172051025689268153904169710028574571633821300539748548180436686025064370499276646514974022795052523677920375780925357957433099149929695375504323740571961593979629010768952676921928442645264574217186982803485214178249496328545792306943472489826612267573189656186236898035346357403308479899776362750725736051482801197956253230350455058176456422817144677555129829488589067988818574657041635612036950245813755183863415351962280215072348061699180611903482857941295328947121772294140534027906795928681386687200941974374130816600760161692933003196599658367963429425358232837483235415636906476206438825735319429476780140094429311260759312384510085037080939142680552411016486220556403713694093397408644453353679133159790009355596240798445859835562738923688998144948927026648415774743620009490332254360782954632510503697463551589118488890575924029721861452555503480419551487427532665921939989877193168330364168339398594255935405733340160338878461686114375802025977397412716064030135351302855087937111602932379507927276374283191653235076326392304031633630403366922292069836953074772419224145621211515666221680696430106159822026228121582791445141388951175387657877337094765393136946631790180821980607262544058892840701500977761732972208936160723694795854159868585398397834061461468558567784310278982278612225594230172474701165066729359441469776566921469131587349082416101835169380885529897987004928477434225912876636232295245144356916803319229902845191832925762585937826899104731305192649086445614129583373239127921018083135349628881730225210479678197764282996020076911517495263230057230870911471061655443727020084088469075530721991182571926432693949005589934952185424962340085870510019440296029427756322193676010028854144588535672213354444066438058958834815236955516549200839097926235329100714098985191981842436607569853712183608962733719030709568564502286874394451769641637537356692523280746564504477392898087321417580996571783917822710484946432064616983950450000887954971428375183687580809382002960413278959287523702863306704693018603742166786355252694617100759830784267788551849106357248236604690158379264321432268967387346427311434137010807120028279558363559675038649023218995668678131173912830700517120020070020342195575035493100805633659413310447329654242510027384682232002227805299720827927318177288020384093982053321286184652514605771487108196802699067833460002460433075897932906866783937620921724272899761011462141973613855902156041371162234965761772577392839233300785832316237220009796829443615890241090605210424788660059931717827846398006178255884935573562974851762349237101088997929466670088467654160380548581174097099861553652754946300332398498524498012438555346570569676934724554774850965460769522230250233365803052013080507902485184140085465054072733350877506908665827301381854506212119699623813957540589292598933459461047123618287348580718325966204199323256938164053492284054809048946511111684361679068664049226076631029015233892840314142271164759562289841887709305538499585053288821642086143891830824424937145870208506073482308615267040240388894650124137228130250949285845150673687091145576842487898692660196160002781118493266308044432888863410667946306194458828683790241451637237374867481034790657153766070206535197052741895109213203482985162157234088332351469150982003317951318442090793005017397716743641268781964492058000837179607349361213528414132881666346879138118243256030100963638358875333098044628288735480762854660314524034433888155352168635129288734233762518662187337257944720660866619430917646441874636551990477990041052251332941272472172166430106107282070692116751262278613767445103136862757759340370245459291873521846392358007760400239108910699587105756746957611150810124797198510358193309168056841998831941222356213729628656102486615804431134181448260493914745040404829870314669752116267158878790920331577147299741062761042344709060619148546760679600783470586148251955606626958556844655003307949620437781130972001538034445968567789604583820532769627066160349665864120835163540175749330074161324700582781626993744939432497495442551278712170308106915538712687112590504658679217594972725823252224106561242420891399727692454061360401263695685495500359229635833808534575333497313261031405747737662831227209697273603146297873774068354616038305178513537276866641683469092219429671014113065718751395090263060976648558485578354291155884753189670928761245277850751610730587338957367241757491619786143630765850915710866147435444776815098270886024107918941419081470505776003387961230492789658915074402377520948235384089626152717935946208924208488132888396095745650288284486096502562798946158439810982295443825084237960689111845776161388806452276918582372724126689420616584118766088569283392874556900172975850367527647789625563392277116953057589039801368526323281364235553732286629448807949375024158662792365125280280447820155237298290123635663452301681045461761880932320519043392758445382752540640023839564877781842665612074521362390016016990095258243362353716908722037710301818998393698521200798549159371936558752675699837166459015451808971804861453810740588653705882429879590513857341451224445269843568253667039643638195649538269081176193708297244686709100251859028504618379519161320781477368533464166571036641640736131565349266349238581060939797647637236822827024196405766070687257691226072694833688515283571192785664426662400503293315191544222609856354085815699917035311427584082898618781672828365415846019423755135529310067198944380966809168179613362117356759123736479518517317487130703064021013672619544873540277687774626506260025552637030901572787576630576099485376831860305508344409903596935503416551604501121119896855274839959216923906414026388981066650026396958332596656390979450256932360307408684992494924553821891709957470995426140113731166525387625916696531740881885328585005223219737244577827849315295144686614372283504726629758833623795822597408379042195985641372724948682564103269593707485326328303957945600477554345038235538206461375876658558657669384175724959658931979148699099417276663301738227702759158673781363506140387919001823535073575918400150605698382666799454518560224187355373127044467501610929671392460933999216470606712370496399520106528837139856594839411794241468526672889420343759871926286226607408259739683449679392378324405628248717102456390956142535406057046683332501812416199031793171226391918395731477299090807625007616012514909703160527995368875307701859451545213910047750776715295629624656495255378965988722921440309836362511239965325819745117980001861770761836671987539189408660206117515308237558950746332374661581125292235482121834982303584769390324209748796299674071115218229756528053538643383591612026490774660469857650013444122593623659282554960723302681900475907868757526800881200777355304408123749152349244543975954580165012692893324225639449514943868628496859980605370152661275947064842613782914671853597204723954158365777557644316633846291403261826480875800314283084748947216206322365397041033190821251921389763058888396940960341461715314808704073061194416689562688298114908070719910277926766767077592501096057191093657530843242878057460854790597245773604851059739002351074911474775835462125608191847936576827840087932412112175614440623686358481789276640583265597599640223374832944027428770251878903959257047475241025985630976088257403465253981006007116855255932922253268131923274685345985761184739361416805108382183858423594567942405756858780189122135678595783418657251148822606843792597058866200051113570601354597492031947346269512216060270013859245513352699159620691260696175122679714590011364763209613707706616796797848978377166421863561294676890856173158051162602854877486944005964734077197323806443098667780357967047626484586924442739562489410080425307239718149704774307997889118174719478158841643102559158742154488675797501175731687337231550407940444249079755489670574410678814495741156162311741179932710450649396687193293187507072334701008183383261402582238557184857040816535850481016708059570775579433338129108455825947803561357916058195128951097595221799375644004196545469069505887279105220157475197877312499776048123640664283439271914292047914309562580680544044954758734938400789760837124103295893468674621137436137155277123200986036134766797085297244640411177816162691209529301360732541717476291742646294520108995251750205457941425396309098488417841130564935379996766618723000376402434008058918727187194022214407971065182354311498721773870767646196954945294426996305166704363405073682270762978589700217012087158187906720429723739889431005782695372792145096241160193739228515589282751348962395326426364249283108146240414789682184738885898190659978540809604378595167463989901615499866731754051536511408793517489477051329203487839951423720329505820305458474336115805170061680679294457640010504450574528654605203271636658009721817163725752146787813511795504149249037918798790706770934036829655032403990231564586250460335905099563500073591791924855659013707202777621507017304259541564572687030464428622790218248565938214483925899940943399058860552293030676859664923232988663368221285623286339101535361329101346745405370202410178247013535456173448506632061475278795480677967683909313796993354204284114076325087696379074762838294371499780577188459557421208480690467261466762769381394077216073769605093432747950383314698428158889804747138622788471937550891607571777254516478263056521216871813213037037699811625856722200596110334655951569136048770426405443928252682037097646809924835922494733487970125402510498820228943322342387126879549467521298797542600961442576589168703931997085516832465112498289029862564522734575372560440356772923983821068478582114125090337578532452582786857636269484903225952526924382915502168888044041074620288795876410615776443351899600970792396212104013437078444384512170708273155736990458082271573504123840897829942429005975133753478112030466794006714876378350742402369712054290300930617794303944433545567830053891184906294885914288737730129138262805605450163976517258759255384254790443332106663068792990111702746259233829093525249689603923477798019547599963928023800973281453071328290140116412392392680276806949622704258350391411052529895000356219403938251438975357194784713534482434269472404698435646570529882127011964869422445440359153942215116309317469490400853765735115401348120276244113793699590141250075348610610548090554569790952757043233259477989687686489219313951711467218631478478325299473383131680236007237425492872169651768097897714594519234722932771357985569600882092462118090239120158737897176195659850779342492872759591898418645467560803564727926150277994291803464454713747553705324789086992985685705716661112282677312668218032237757667083486780731893837686768261125256866081512911431303981522308314055968642498701022225400538994003952625523223468862163800087925009282867725036006521829430854382074520266886206651185960175355010924511133112023726145045019917411508520198861920338273225954755965541964974994455558285949258184666119773311290333772642614601420935415064714666097589087073095309435177648028778008410078490090687524591773373992699547312870090243738961613416652180030530211976742025963381962668395661447716936872270148266941152549022838937480933789827311702280089237272266470858660658623575798007240320302979529751335348662814172319572109724287367168095207977120747942325776300276358660925494107591081405862604830397767506899123505746906871434207642966851229415314258836267686987282921525253146842574388060965784726551281374217661150644518626432037338557679888726624494814677564577269278078243084294264131336820704926122445492918574763053319301975464423106137012063352366481480138208358677927951431369111430587688643976006234118539306111289059632148575211474433705129702029989676894482635929318723856661421842496238675708787385896867767323914570125805541414210583031925130880368950790128534873701184066585805645815377612656113304729155520379963465072447484222447267809742907260935910737930423983315329859304798763684957693650578576761000683857692371695522830303615001024557898367011781753949455079961666547061029189407299373579176969684874802476327007126308828187325134664894890014449138583006364206675861066707842730999347334763713935830736213602016790689417902383518496354236361080722890299398180054649591987453694239111088537942012121217702264968236663111803051546011150628008401427369461647531468506929341633687705313834061285879379121020097407905425943896734887412399594099189235999577363990738106556363341187866675696249133556875039814512393039460375839104746974356127916554018115150147814515368867313738368371700029460020424303622693913202154565359148548808070405134121644194541798754859912559059632243269666272492983300143076245129722736639184702370912187384022482015519656297696632441315651776446844437940313748113935342833019441234777872709982685483885215415059186879317192423972746096188114952335366112899579381755902670591642369729514664305703273769103133288020578809895149783173422106782228774632550277034932395992629020805513394231733384780560275311231471056474704860327041199092328335547541607395591848212716236487430468642888655239866568445946868258226865421366335425680887878021419901458568739878350296995436307618931789783101399146227171881912254945917193271262359933341120865149525375491565919846518490794248109982303210526973118771471512405560462940154466345077435272492219563584512750358703471654923559822039293144094691614775172068019089904352511227084401072196460045020271796513869864140170958060503714067924789449513961763752441460318993965040153210548874396404661993180915558765054768388926076465524846013274224207238260240732964191825055158792988680038575771234161858656247058788728200118603381542774692039543777023834101703436616961673860842521364369145250531483490922942938945551324084294656581539791392891369031310515474825931925165968425716488239946349010927390343249120051538531664413069702629496235416734756497676490403322434496307675596126859224044604759511068964417990311378083726953715541130329151609330134691553411817356541067422593113396874126669396675865467683470964830833757597440071928385911814719137198717991585148097154759717993664583342958929232444523673991139289325961899899596184166236717293109642089506234711093436565965355100331565054816268440713842723175029764466011146868362758670814230746780390215940042990082600185551890326628985890927370302765571165166699256792364151487426110070875325904655936182514288634756168662844950497743365806315692695004193226546661063272722200379686588632957935105906359727226647409448799647800329107887412444635090416006776329553952179979917512323890824131935043093027398853351729631819777901877750143341040830004744199826460588931516141408556628877701294731445675312982606490790968471646310031581296584825746161314198809928329041201188997419427842529055615255590118720643080005564304603884201691207871066768647890458672575091792804390323141678734456361280466433678997143566731894411762264780104941922764014098850521469991513752754952464439341719051591463152400939607907560126709561478120800844371017721772150466969722625669259077437475293113563208937177565786812262051546455941633703974202921364176122943906292794664128957665592780000076346995705920621598340152188126368755791974549735943943907349645914532090143212038595586626261111378113622394370805361215946708943791918036690141109600181665674637822344443337487242000987668113644872478549742544183502815053892057379906239000504028252974063327680467847398895970595379192269432945799278176410740240272267945952346281652734359586732863912368781871333117473230406639538660880993128971613138425702662097311337642635081478382992411776213683307472122811596830961650136361066595748786052710662441013691656626518321463491284870417803291217573486106303766823667293437276061201024343626909720844254087564249941184135471983855380361919066810925914301785068661318426484894649387810208885076667196058835585773917149753694534635403064843186192308869670938151978757866432705663199594765918997901507315145547828890968415573382439000687512285425087120216496233998059887681908009225657876220856756214462568781783400611014251145046274189586576712101635699805726209017216551202232247190398233811090113830104225160660704975949476856789289138194369909596618270229009422439699207286290973675736865409972732696789321322910933919457117386307353740815987241690227828079046996516245122671579835918996717338554479300185704116346202252774817121090027104642139769657736052472070026881697074027182586408811133511325375785185954074003613020332040678486472908680259718586904941296903786806759057383720833651941410135720530933952065942057815775980223488238497858045234563190851707855006553554015217261343534149505865744804906360813776359383646050617081233910827744280463397617828266687458170292537297292155523773062312237160514087725741352109518255555249801557030109734692485681482540095939356666286662103758336500425887818403598956137368961649619398718681303264229747744867444109399769964269609156485990066269227046314812293302093944431231881526230094642966011692742779817627293072867508682724756923219636378092292072283976556757320238818332887729995555180567247781307431289801356311533449729347216103016164776545131268343595928989721405819922861949415252889482109077871595381206793875223335628072505444032766738669394541330898331386813128190637615729085423978097556693955366594373170758923396078880021887443840574469364695430444848575568490870414755594668046229931076035089768874542748360328137831689498773746407890113215695583838839876872693481225122928334865846370691341591807422345147852568929027462342465744227942321239580703047457621401069666969890667638672511507159135083683991935830317003987828068290711932807333804606446812520759920841205467767481488465578382350494069511752165182534597125333282727756922703211602192341917964279335074445639166168689739033451759539598095259219902689363970015010366811129082557208193979045200627039729410841784338010624625715924115423521232206136242457004383397639379481027807554503846799335361801949590714758792598658497141721317026658233822453840136558991381047459929649223320668205307485545364814609367796356696174096011077069029270046324079102237173532182534771435776202232151293212408499200371640199696820926140172542070341952644086321356150303018832417375856891635846482809745459287198517654877580336698262718900356710910764609164666319496650120983188574899262275693176575237723895250736477565369613685856282545790760139029332063796810092672078260593994305838003166171987698447013597921989389985994103068436737146377128621523567307234509760232786596632701147305644019187549910683302435042831171659487107557275182657883549829623749777752006377547510916082209104379262221759299342286674064139660552846622653060992518110429760264471529478365884746169856898909494094949109831145270266637309195069984275824054595772590564171998544420728977383176052084409748501691281785482671507992192770443317066747573120189515107844613623798121612617768050291393957092574058451304364207026111542411248374949998058042779036264450704426243331468039666292671429418884670774180612475951371363206066534204644215235780191743949627813769492036321500163285027511557125270085245427898931172943787521542874941684786377586003724474481623531577405875230974424733706687090504070675725941959251745799378196784041833679085086656864735185216716433240984951291781381678402194450529387280654741631759326976044085071636538898511921392740502590952105566559958455029929719320590453218373405601036194224568043820902643037495462747519883252739905295470905072633017508474077073821754493736549018584951771313053574007652816113722921693859626317131389652980669558046159115365980611748788158440871814967106567595163293818329610936440423010718867632652714639264562933227271947107949690192496816516172663095798576524547498350254361187806167932212965138810596908750753298304352476976271816400886728915993086128776356476133695360656051702163048060210941477525807883660408004731712978846558682756326607552719445466976777478877198458267729759661816151367993315916721888363100037973361712111084153022158532246926996176363998060445177465327517533679088301407929795709382168329810396934128516679081188917030040988442302296555468273924771640721479518237629873260714171800680626579414095531147468660914224248194039904783861958494715901195825150829048280039900656108980467648349272365302454872712469998990260716602564977624249226851303541139682366856915102397116940549781146134963710538531883349673099673010770742524948981064645551660694827614391693188516392899491959520465627306949599706976440800774339934224990277491116130946672242124385539999611749926381346310823917161713844490649057148274721723154393919576685952588001116042429829166124804414801802646426958157479729412971905915782813409033900223912412721738837582225423673148611522534577016011752185394171961215371122889714159715352162556591010585502754956195515880053311704880407169429655554853776978308193171644302306863972630707470647434156004752436589275087972350570236767862643838922687156453860098818287773553083843037544695057899562848432822197008762863999893880012185770926164124836119182648322149286554755405812132575942933534439102660127429711429625586707429691966740670231222117659002011454113220409003832153062253956820796521305855195088172964911878873465122543225026650772339704840770448283765507750098529202866380797441182758419001398490957616880107161053585987491243587862622914430028220217349087960106309872740319774266898206108886878154044222192968698159588240712938789663236963243531073510669259499407747553847778273232214037363027626798740322242202676420366335063013508081353058304154530154990161120317194517594531469145433482390672227701265778312307567895022308584392246242320550365237227410325947045122386546252253435815941405459961297665321942003652095049037144626998366053274569540936635591397253668387844808735935876161177978788100377181339839852732194831192990384479046010854451851022062495221723646576426187190631113194941789971301146390182691073979194746085542046077642182556920981533381220584888097317676537897278506499114723931393076098992763623290427717382579007611165791387924919091319741225879506263800109980417349437212167233540076486340777713384493171781661862015817252778168603816496778417624226530567867657942902480684829120367772838414043462613869559133829333413984500213754009769804548785770423743844616479862584183299046660586419081669965055403823762744327372877923964828728628149758205851877447477721933608240853392198936076748081152444135060862206118821022892846610369130322091658788431816479577546658000161138911092819054548742176056694244738278579155067951652044305876875200118915098305625366397708411779987914984764361463462489728289065096668280817541477314034041183087608573209344738618107655753068881025517944120836011441956386596668821933020260193247932950525128695721548689174857956073101411289289231951204119595546548237970729596864715438172191450547211470576412903847587500969318290395026830879176343259338655580105535329048726215370278391046596311807439204293146449120790451313846276260886630529558408949145739374231067073772576923926057672694147014212961904392609586392971644913083021197835961304728434942716096259029343189609981092671268971452791405945489169666495819701079281625901026497692006944420645331057378497234667491273104709575000320942523542806658618027834768748525527295507370267702215564412247216572031962685001998547220228967781133922737089991189486725933362744452083666520194461976755643771118615011777920625884483845659698142082117865951474811442944628968165878328393432620474079875235325855456118339375460294410606953438869800680727209682859013126889563981149366364828475364382402254455234530167299158277265007792230454425882594638882863057581185494725924872918992182207488963952832537558684186309246403214811241718737301165197366743151933909308680849354348975818761684479496917523062996659588547262920246291113996265379081937650662409729336389685806470916191097566020102392302981617103869439172077806521635830644632182130561855079493913085925914977544387541450325497812028071223190575139039978054987280124836439863755460933068536538806008405441231659388873979444028018123404213762417918860053246127914161744765719674097993910533269272835839666205251968330118771605014523757885117194007191294151900595784696947164674987421671610873915509793572677757490132934579003882518941349331338295611460870003031674772579338997527418566851039089305304644527194209117342112599461997743052301800670530340724773334773831032242771871510055452813528145946671630969534623201323317148260701630208788699275368181113553685005913246608486819601134254024016243051706129591180878301730750244397543527504808588416278859147890492516356039014547731833256916253479613359862721201370290851356536136839355757963713431773321917881973707228332621199054863678502772332826401214137961803090005784731311474324414515382140582123934264015166896292006070487433458384357751802170857302832417406259643558281397808050123727104203184374588680012724089273237686838174626915974551860994141269205014061817502321250552857147544393178966741176075309150979792618461910610872430559886162230864306196113957901491466845898516792379765985155525397520913651564171770622689405533051482342911780507314705748436698380008485746654102226088546484174559946876393348551194981184582847655516187534062358804629888045906496802649858410627804203964032280811228990860476129928122553792167749528994578742411329368537566423876914162824325648711257816037566015048621548741309356215555687302513343925483879126732477277479673099993516482558760578305933428300591906415568112881304544763936588159334422906287890801306347714459620691432300117457541044927608892665402083423943726552147039295538527793281628533437178449884774767582374925263222271768377310647013044826714770623703045216543123159319336451676406583710369455948621410869723336624247097186886260033810909348870442748930147998754908919141464256851217990082751750713885675444298481221416995888198038215487661440110387692136992091270442682727689001413040971060425266741339892479664921605483957821795273907586909553099367823685224121473542972388470174192455180588064071361500132349794758184502491370521878873999134687594772745095005184611400837351829231461369632638896190723738942817837048366627860927034543349157735135553292718723257316169496326600867613029569260776864398393680587702688963724707834397002822110795250076731816168684934639257669001438648616052940345887906305302229631514143530693673406342234642458100124917039205598215455255356901147096777342016035684327892528073249332139818833351868827448626307004880621395912806991385057788501430507948231914055708576558663194848570700232524346451693090419367009239353808089577729332641135723909524117865069908040453293904427550019328748963031675858608627499060964413336586124805440184781099321176712204652086057296289244153130415762617765540070012801247341125262410795449651644094977802912953076178195088408201534185307430236867265305331858939981832584819502424867743222379761097961538728342766074556871054877023686806659217138961471025820853979273064874938151575521742546446663026130130784711720898688167946411835123904965845116221854987525336977855259432116757753502414612732092334675321082939165618190808547851040662393755361991748558024812946230889035417408893388617972363688883297084936736032809016779946525671239182039335435683181541731717738431004291224020405100590153379978872269665157633633736664996725360612082699074023113293192478569521345416438224246568880804093745210518134463279629907442273196079701081459659582030092496951000695332728999718680269324316213764991431023235563705284778713869539003829098966816838760628637180464006472172652674528787438156849537473128103467159146291981746357768026304125416134168242532776212790549633903369055483687561381175227273189210751527288764802122177090630909724107753950195459690567992988152860478932686231987944100549644626823440778380116317082496305317274341438722181995630797717617251140514069330578013270551907344949112059362177244731722791565610225138982043155878751059447891937732689352543631607442564677329263157623538810316178106543297004147266298742913102965919166227615886746837363926317988385316138535134824090569726768163336475939939386984166388421445837866125101325214943421338137495507390327032768577454904209592599679438599716683552084664229593460011243713003586796517757916075800383991053636454343314038307141353252932065306376567357619216038489679965833756601472702975550153123559249536433286055533305679658516019302638730639026925264745724136498851432192996736914807957219295046724062435688440712804046976676234402982395917536999552781044561040192189852051927642700528360852773270845680265564321037511546931654308766844383329486334664951542792177133550792763866604817975814293160211596219214240726118203869546232838256789871792203388532105507029522471530891618377681640830582174397419816013491991750224597142720697428498459649145854216512197585914702666953872358113930712172822019582779413149411425370196083313594416169630315223955730269988974208636576925570105373652864757408857605733963731728760552255163638386180028160269815219340908919730395398589099416642749918182044778182780448236642345174968994412575431800186507079789606006964240456882817991570885289230615880988929472376187591683864993533872214952114176551733100707685035393183170384504658177509688368747464912385101117309663221671692056925807677121430186464932674701266710152510334751519448495889103288294793268111299406561473870754274848518992389508836052293862703584861827060723577624894464232354825968861586503093304924148552976899649389453177408038325727048948150819836848842933762435355521953843197339743980468201117494012523215014266523835359188247121555016935957037106749923653426794793929856160153991580065001122983017107198318692761815667338431402327360341341477142652437373083383704319308527941043832701085749560198973860591739372859661814360295217091814684370222367136918642470791039087912817821018100364063487934834306235076678334391699305997122771979232785512305745187421592066023381101217972490943246703604234908579032099359419833702764611875653619929131273936694958061548831665929769166608662626969800756164051225985545902800822859954428015539302138685136362549597185523199470066348095867204267286561267709070203475313691967975323366253962617601792239970545536992423655046966175346995720692861244717370180809765491296386754257008142048666462139851154990235439520854826730880953459815090875287834162965457515546780576661621485621468002072009565956672896314567133816670963255321760705748132692939193408271179843125645471976988060255864942197015833837898260680564076591849639992655972798344859455490427719382585359423577728982569491122680440695034698146671155768781768989261628137100338750056822392714992865836072109865278677573915478234671665735173253758555829707325455419226939644918937413954259952426888896970915381777739542549117010130520695771920028514333531435517942175352558936458552162967897922446803020703549294643019466438874404934933095637471686282218085395475147027204204664882054933007556895802917022321806467578046682246402741464299957752417268722400714189394109376984296481618537091441070258856666222119323210620510758322129204052142186102762346137926580477075680769674194320954145232951176426435717891399587019924033527190789964892464459209693137973743453497101752720939690453853111031943303543975579473936221558960548645977396859224345348955289792550356228782505139552397523583963946208549349762482588208487762566063559399399742072699777677198236860597528807099146115580216789345435752822631734265211366202964475086523115394879870672160272044467241138781508176768114110872677082381504195153039037155401231748157017750835263259650304213911386657810496461255460783500189070618941334175208299824316067588942906479767178646198077036962641354291962511057694450750835769963067761835594694722329927522013410925660703113528361708284692805184916880939082975259611330331684839518500490697907644288398345013150309461771783825232573878283374102632116220961048861081379083883245070083383177224406729200201965603982647800406904408417779272749350696325800010799822197161220815451198403090251674371402751337502599263973369114045679667117593987295562336968211145752068114270492593417214952064266916311546654518510535188600761533977652954304913018586503088516329910593492970370541019270491757037787958873815789100005686684005897312387828191582385903437271710146374082816130566676287100747549884131984005516746056523191809068956489305304438968903409157970478837215177537604578979370835490958536692971487556871204595866587275440252418972145229150622045460357919296251003477058796627717992237857928995674283692965128276564313032911571583689277137567599068949355254156635706153904934297435410166407068745271901475955777966747344309937882000172402034042896474974434146108313247336893371819848813582870934137624525650692495525594023769632663939802555492387525094373154296768369817393951341436402181569037247113928989795195653108503628814345382377768391489458690245432806239384050873031097305690463423951745864780177089600298909886413637596996626855143421985906767510680450588680896397528818614980598226866127103416165347301165213097625385582556452684670222222605340559020411716828823255405504015941266706856452294739411804977074428362002616986490922503000865104309901616386925515511293935648860067933367871609887654568764900331573303978240100780685943023862283786095948032215875364344823122270681242659558854819702169760184236176493549385845247744734351426926145807914698368165808608678658597234964125824673234100611548200605519192185587353615161636046133789270283513530060690844136090269060271461200255207713470031529619854539426124937774450111824820024452443156964452073746482381194880139479924099691963659898283097976254382459978511304429627055761024619543766636679512837478554362284004544739227184691722016031286461731284569402663588078554817246362555524703920257285906535770590274657450291866074154530004244892013094097379120853744094535429481083892541782371806415407642145909016325148547660091013462980391654543255138708264178236898424387323457026852496713497545997936115285252174462215856784895125084389329892789023768304031536571653542109556261606828756942103506383492905418148458636783946131824669086475755382792576614297514465318172184968470072728261814551399058481328836961971810121630996461134836627298267601169351156130631068585342004010927824455385526841825059713775469157286967030785572899107976360701552595579405728067570752019441394323400277139361742701369924334477891443030335397923861128502015356545639092732743150826723085835071275288191896507726757859728481780838716298669258190875351556821998284174390839871579148376420337396976655113165130810436142948208950495275523066458944940366027907470229303982577889248370495039422225361645613246175895555591616574674182748211851267045932683395885643297938421108978596180070827339194517222727897208705848581154597078427639540122633925298611318987717464883997028103731504574474105458740200684921659669051061477010413739809809042106401616749191045688310255313817184805418738075247611134241028615124797130464158287116207564830535255538120339439691842883139186682520903796268370844221404772413617962864749163614529448654796628428561851907431861884338840867166692565324525015040742763620120753681488376884982154593754187961594732477199177030560630892919153464526674020138722549101451532801631931595576605634928689533214759351782917768982603106834855588411684725287695602970291968771999078120813943454589030313781817976497631713876112900900402060299430376163471301107886347984762339175690775072077471263229621285234907434122813344244328652069252362280217772500165247488745746197902119814427235817680422905690094284470098769437880421221999000196968838772788359586228793617364870919287817973146648498414218798288907963311783274233081335422271563529431024405731748305162651877101957555314545813026663497522008386443014028702100388893191061160678665301268368690134960112401005777582567602620051727531048547694400130704496731387699141983512095607946697284059114037235964505665587221840517518555282440008702434839546996007605505706762795945942980899503636026940156706800492175853637533062543139425473739736120156396765884607064253243698257205391743728992959040099392581243723362543072960212216478899445825200406855833392471444314867428335192455973330470310333594616508163545759219162750703800523213231851728130119069292190477313261674298338090716701244442376742886362595211509648049865878447229572307699853229703297816032993976399031006624908734265652353896889495640228576306367899715681960445437901907758858900722618889852585354778255539624750035836584072306167348778650912585267445340967383315623532436608395672780545779294553534127026826014085256251089698792545654066336126839702380433065805211045308820403925045193161159172984083336310686080438362415203513529436739620710003378668099589232195175426965385093278467997924199785291853531722953756300014056890599113797847536669990453660210081470110452934116826083211183955132387372799659858871784400747552228235840556565009941863310541357462058155282966864650333059068725930382647792491369296802339215921412463395358999724723479842410650176466371524046944908496331530510545341896215904138652741132726594115210739343032527241368887371496754765488735645834906984180721018194721207136078769117205412321589816153527834425377446805464114612116746872098621896233503558229743954306695404407945283782687353364020171463036275483740711426831853311713489031850712113213506544573706795008322220068925775200840617995818620684721308457009118722102306595115804899756151782972620213375427420056519955587796714227697205000998072931702162626375962325442980444169991749699349252238974508158743195226362416425519357905116946960071905881210950077518416618431969402577033297643822610306459979417703133532854799633045794310658781919151946693569902574792036827224492494229144878878674008037883005728732807585806982617572448222361121724915619884755345446379254051060748557649319614776559000606861417267934580090617129862246193840592320645696716832237870890617443357230233028737252061383615455794924193851345419128482179232002118801429730878157893052594920542175012166860703836807296076423025539564610196909981424265291117578781973724624539227759171373962874800336251417330369283024452184716485711573579953319499407773027391577694112080015561588089240242927982634566620712029282827683970398004332283075037363566519854667665311786648920211171876303034786934764085676889140638142741822388787206407195207627066631687883048976236056264781458801402616924558490971966970113490433085613246493040917676989849625012347372310623053879886354527083159051278710515992390297168427386067050816837629873085834958813009528129892439751251806204009213571325258300940886390402374937880899822574319649491375013267731318983807733632618259204787620087333741317191737758426723322629558244310377605315523776026113224043930624906994623875252251303717842008018242308168799156276592268125851598121082778327417964136326101834229444079617047556644416384854066544499690498757056682597394440074175878504234055585008044663118084605607812797409023701264223334941062571750861105903432985247738013746790997697026249536456068674466285415466892921070446156195174474390422381642541949743268466781041602338512809344734374515189229439150708961299824870413364097550890758181984387085633458290395342877588925926475196836112872476588454505347710591016977123649722247910741391775619137473453376519861296736512136806790578882863522537149357266355153726593204142194534362520999762489229675841295556824646391949263934137460355342579435275977709198902377879547598313440911369865707715675915270635230495970662380557410697462849724649333641085287591064138706459781908817014640030822928031371342502375992776348011674500908361906638329855907947804692133132623474827262514432797582356624336614620846348581904642747323297643752733727383672651749410887053670430090277546742909147755173483902574938445578758769210377602977148824907848591415910394980798495012670647751637493218452068153110290800889671426674843441333076837325335023699500667622041941895079001476083338117555041113595534889879433428424827130261803987292567709514242088224367025104128429834388031887867816823144813043339524271790622421588134341894076321091795325447746263390105229882551483291274319443448621137846387057732734876197494181157891565868055006393975997664606409006358976106000660866036708038301120247758987433707170995496824664288827477382949170265144015829392240733982292283222712192956389380900302104049464691053269508037080739596803732462978342104093226977564637101671300133353353765489188647683541355074251210132784066126797483525108978273466291420364826524460718622562574641648001225546499599328696647523559856324546246099974585602447006546031948741532590290535220737657203489265623823945454891304167121682266134755100332250269961527391146207174633364570214781255995325131190274869936634509753336052367607086319371207449805195580314296623377232150686212798440827633627235029016053527283922789526361983317859876302801712061262536228289962493501505101759695548796612559904014584761301239831072965397963144728368369577846678078142935672924923449074433699752383055856733343284318214679901355786242352043917658101756050933526886279858983791055881331629204636402230783856922864904970093627119746787009823083859792944870909046872850104252283575212532749372707209873682678041996084052906692335397237389582210205900686245141192084287447071533796836715628037665324179016766183216427198337922460333650760642831846958310271133574560488795289430205433067105893596518260263057323646746518708589420837551666707133300064890727585565543604613396301809355914868823442292181369193119327082314002883290670889278466355894011487864727064863608586389016346204734003915152125971607655388388917637563910944408123860455245158914269759819657376193139243790916125868690143836083809092704213311687903474571252210596725566196979225090394066262434190016055179616715289891573428835404550474679445801945039646528609126031582649209064345445057676401652363068728904718386031963233709404951924189629582062381840154981944606965808131611099422507937571397149604439193758013045594927849488095934665447565010484433256087636895169953643717537066738509434920036062647926145112167288953416324119045169738068094563634454149926477936703994484343823688548358358591251930416942415485688649343424727815077768318326856594592691260398213689093195160734859729458307004417266268536626342565763181737640147184493505957116002430279723537969753408911237991617657453051184615405299952104910521993513880780825965830056558779234519351178130663792963474470559067687484654332209724940244208833189522399586083920584482208918465427670886430947856471819438540111650782837282116877677127252531482114522694299749800015219109490481246129119330793717215787644627416396606980112778767070130230878713605540494048491615573932977146031015777364777006216634379371380165868428432627119110924017128658204594053904762756414415094230658217700494159869622457680035413308786507474904601653490724439410545459234435656177775712318579048367635421269646581193905610010070438601239719648856497470482735837741953659173701405453418417535660137280840550024858330489576028205907239076299206606867381371986688788518301709853956289720571177338994703002420988439329831215230220263438279571025693307225400140259934827562838067420654890645440876989773382076271722858482026779497507516087037143406254537362738762067846836589351921644735749802470828637868496093116918516400821172130983880514684191659638528295691778708569847202125295723299797313280753473728045426370621910743574113489414350314293279489855292221958140546434227203447041842902612419295751800763836121596633862984083669134482317734497989504718970550093434320588484158359750930422710924988843964298751048562902080418229024822920356465733113277832678327749563268481463285733069713391175251490085530987108104897533425463323076955564363476333178700707591953216634825310079363664016728417196350506227210440381946147202983987219347143227988364043668314573672412700778409593091674108740846353042422276531224702088512704949728145443942131955000885227263473920099490617799075904324820880174301604497879558481817187017573094572453559330037910369645835477795328537349910443611499445767300556829467778065513096842148833888824298987599108940350779676850857104585652737005674088286118104397574805431006334437266378557040404401274476857380113254267895523643290018233336020491474268491698811288140554456224885833597903385632544879046409671771613620634376043246584308713003229385505451613517134635419682566571316775944234490857268510953697836575946326833509293724701405163012479054308303694921012024614459991124184105645682355276120567341732168929100688676998947660720748683873848198739194701039385839535094684431508672782287386600247515780908771396808158359896389878177245062659931302249851036184429909730772319966943634143310996704292722500178319711446677174439422527770488620030052760945390705029107048473954269421154732183982364583571364704974171352818418769561310584139088940480799726625668177966827113394899725499259096222462794124890668285562653713840136062050687738641995139110683806460925318146932327225059303105824352823140133949808428297867186075156210787213541303582659896446541974570779895225111431513795913183791166379838377055585865172609608546416269068713057500992930420478553149805101676510040143557756665190461683029824808785144062899962523833190070825581044362592717623666429502135910656303797433495868995077369974679219880042035760244834669830220506073829948335824651532552728427981955992931173959557681074889718484121094601244168594720182490285197891784903899163046052954672904486244198560913521694345340901891611763915603931843368268778578042437000860860478088009854683701276006019764960753997328782631758367637370199979774295386616645191962431985229498600160220067001982359289313568888237208640316350570825350021555558257782715101584318267498746424788967622208998380988670687835584159877891990131918248619332713236645238590560032969343789780167079325583281663001871730109448652353833930113628352315796429161810873192765576822636619089840305030647024884627750823618334876118538147516206896077728315377188449998344640292121209787105549844453994425059180808284216129678072106008384842993224874029224489972386327315499287747040262575781487982188915396832325934890648186711488158999414111861916300702927326161967905743058801704175472114865809243342686496061850223283099841047099627494925475620744711301284885085970990065360656919169538505933691147140959364555582043460118773124706165957590585956871145468277962909675751339883774234118912246874061817441803475069898428414603281881630064058530186149327412019364246403437786359244353320777987917755272596170793105882478185501374434140399856274672077649472812317476531206420634147412846212448410583270281123103017048611614550112029831271643750865615284774528274878617906789474375940479477823456745973662239414376444852237872303885938589162286293217568486879013860937784840668428529707358788776496948508104595083515713081084911870072416178952070028087059028155818756347841919405455436006859859007448338087359887202731328947191500381609276322638811183901905360822592391305891091616367862556070244696176180378079241968251701527158611197819945308902293190398102294160873970937790676890104016455463862270009366819021137441029399709571017112052437567766607120138780002324775860627241231346058002765199433587755387178023371269139353917148063157455016360475518085151169458223379036359595325994597438550781443366012771492967794078137464694680284624038465295077863546927051362977373779946412993455573337763079969517422290177273299487204381418568874968661813934240493428462339843387707642800315317636805091448129094314569162716393632363913636683093697603831937735595464848317097341857645851737670237036586261417326999434526151519421050516387114712935398809943135337677869645953449214044878378033360689364019269443922874034523352814082844797468624480258324363252012073197886808382528235613318864398873849665809385171552309812427754954022846676788072544989729380352907117386431486969682316298235027159291378622999251610106660116564839531626815362798038468909922644919960247313236924428058938344644082395716152197794943634609832166730314060205304382360144660650367332581866453663005393365708955447275552935224661327129412127909550178769724164567203197234532937664757914666441186038758111404097040708434036535082144434608934180744669404524745809342509390994019646179931268442815982792584720621894688750609009873961639896218427435185704779894552724095087566295217322544500730935462375001814726357169434469402667346785813836298974435880731253127610029858349587823379812586971775346553100002622758004356373774688810889502071505198395313297069987635026397379995792995796430887252644185808310608044467964239809607640839255990537058936103384889813239423414583611937724547237692218779829260991646182119274625325087096224785069865491992701704548399591921075854944763858077760911117343894919757091197723533406888954190097963639962435937089379391746503881161579715608333770979939180425760800233801385540088451235371280968208625454006272052306817681108220581543230105751252119955289191176486476813391747273088267245917948510942573473549409333341649112114822578525719461144716361590922466243965604840474891276589297060101419786879210727723115480154363939532965023986361632539815592560309825343249901960667797199332541673949033157808459656160533649495630308983517938808511493958486545338893955364808244786257950018600574983192889481283860286626084830739311556123571602961931634998162735585673416105176290437308516104578301666215226465643047376716735124994316095636259811985567662092509457648743837244119755173802609481131235150077360072004481795205354289196485096792389037887562142452430224256273416438269380188267739313324046634202743155097989441933424658718059177035622840994384692165718391685429033851403867583675685126815821801209766644139511217436890413160880084167745671173538489464103825150113513595572350014696360134731877995714247825591383767112112705326915965441589914232528430715713049705062239641742755760298965032297126035813269172509057843720828612983846723619040227258265497571970897880562868331674459639564866204166717698655509743897714138717224048383532055423212121587294754942235325345973438475624271084440931753822325579472302685588848495158464756814527556584817999936831124750046083899685330370533238080537955502877201214667523073373207346826930459815229785539948325886302456916264145322723450498083213011929954573956395734952359508121748994749837764470267596227537105070864557097323709690815844688494995599297092207131223312088643187151277457807672572874328834538640731481446571521648922362612471533007034975444295634555287417227068081715142412617668436246551422386483978775314310273637271334154303187972147935097655056571606532074249176039928808175301330194215446311948719473210003377272170432552277935063452707955906852588167437842694638839199695264320030288178920824281697468879907337224128788743848308844500173653381983699279011258346246608344076586378041675969456105239829761422876954656324378734776340470024170870698501845079601120540529692988305907422852841150247598360764110219413897704927107722569503348088536607952668461826501942165011068195974802397202196281997760096745017959770354509271410527217937694891929439830761070632685501199965229249961943921545168611768782406772547905663266699876055988235548722520489206032590592120529981841130950845331968475133118111981940457301505943131327821517848547681773687538616213556192885358506933830888550209923237842885942396527814426249396130783644710006451670315056252161559377142928872344243053937706129028242755548569302371536199588497054705750108713757158783351902040460944362500197510263205691124105820206268574285310137026957424732801139605060483457431046622648233589512154058642810972293551250723636488949571057654779573184307990135819103846581334551096199251782514021478919565858575915317686320738313315850311927254655235730554941031339060323009703836849018779856131303015331990162232885726252793675259080605091989789638827379907925821312254211624962258634456756043183109818796735251136809560406816442694331238987209898065477843934024334987181899465720029867099284592242669834967377104305823979732843412096779500185888531588861073787397156039172122101101468180074829735989301215913663907753500298379980417703513557560046488332667484555254642940137344092841052454625938932978610462976252816035163639362747258213994095488054298904290322600777526856852752516238023836756929222057237152627041965576861772471421402138164857751613383474461838290410376021673533745166237732880967265587224836943771862889006786727753062079856403237509877535534807007519486080702818110797438627538583225966875364097136535321381283692473247338259858974873668124079785064914185816534033574066608236120707546447328986116801894299155547722446056210487216677510184788414124381608115740130454931081879600568005125046415413467238587753244822615339290259936268176687336650466814114482580405824459376757731862887903872094637468051093136929580997993911205339094892338262291545770587868441075041928838466304598913507801649440055698069583803207761958762398618549889223496052685961422668888366830221270286653460651067174151195089020282428468002141204100240876182470482773292553696181711797343248361069036078779113989584592265739872098446344382471925576688891258634567601604261149666531034432371168813013416074112057793333095011184251141999030264687090186474495420472093927194737110895066170422577093027085183887864412217967878910349626113425485683360086151429764182769367796502227572566998019724324156735845436877682224482875053805755048312759336971009864440595990435168266701815788683823981712065990710395712701157704969135969340261747676550974548354612311898187159634932709333303758923898326109576467881450354175147428266988983287334654517552669843724609755191052158350064453047583975534566696931216251180513140205657961435872860279616940309500544116153454696144949615195298584083684482138090266508836991610679890346352209789796117922253956072780514084602893876289151407093926249348981068514210774613897391372396388688264990018547294474786984008194548654934050134479544219850673637716791756174820630004566147435311697375329353415481943509908484417489585469106047766372001410635001758240687248039535749448702336245039882889501329373095791585752997896285815030858061931514869873016871616606486413445185237881749869994231341771110113187416531887520190134339156957129211975401158812896952382649897654638546819940865475457039969485497741387368598169043956994769791387581187100890208274889424673212999302080035544082405107806316031199579462787703895390565742879094021489657505429345933183394074296135569742935109307261686546369680298618764636850050059753994268725220413334835045836288082406044375121197650465872360763628612021705127903783311367335986133648886928416914375040115671993486355990468322396691375430362895499571892058212990146833734140811984028182685490067564094443832015977566976486330636406727656067693976244488180325322383573249423820308704946371211594131702530456722168471772080277432128562935357189239120345810002487218256934320514464405214393452121354429928300014990831920771572203479571540012441238680054546691010482644476376181616839194332085560367680908921422783898534631822141136038020143944782857050304180292944540387528858402854686188889606724113365230735979936406560325505178916370779459506305502116135911444145945966539536902351236863998977737599911058970329003071247885258342291626242945086689218215645761519629643659661562958733271460281491387549827840507579438252702360034692273381202377958934782550339383885058688082098217097644186434812349109731793771692190982246787556776432355761349122887641744230319440758484418092657284851942362898657394405248173164991728256539842338933382373549962739845733046098039885051528732983188880726090009405202624993159402644098703902194230150989015653959621519707438944646376618059566970898222179574609717991972530862939283997619580588650054033123816272796438016715835471146711363389760754266035738704065220805630169368581940227333282690040489045373389372389171089724932979214162245345173759362138120567924638213433680859340493782190655385028716030164395308824916174579291284144560088588765503817935611145580972502907000752467298143149738450998295640532962331863117663415456383897669652435797126764254627921434939039877497956191553126820996851773170589342108299820383158882166464620281723124594808475262490382757010393475850881429348914217671762200619721846620233260213634681952740973946194200842025743247599507291736371447361710502197346929879366896170723883181724240936954075926713858605783628606278911737250376260995844678374516392483584971743598572729647923952166575187329322318257092284901697080873270161091064270874762325025280056951164266347252288933694831952559324085821029380876374561847098016601075291436709709466357068246680789153603523735681744413207646592766295535336876260959846456593893008228866923962792758886342116646688175456326753069979355830222556777949360943000617339366906969368995428158577740935892991149070002105471949337219460742991384220937213981043799302724954925224583255492350624254667668714055498084607043630260584556247337738378855973933471292531331728072611292232990395056943922760529452886633165304941505068217601561276962967835239999029230529321722371086246899670131466214319506622490302725308870774295119072041797308892209879677348331824037168269356459287485181343609912950312128151742737985063470195912300803614398677906895671648333178056553399223575236703938275587381433318691333631684377206304800783954166187990851636714135826289956648702585030927431237396139314906111827224886826876620252542592743398740012791101312638550331235529923131707734552651553967684272676626915101612215143351003630202522396027776864902389568095763011307743080891036496006103116443511247568047252718536535411780006349003522486008215588432170659548680573250871871923968067254666184941543177423672643891567701181812848104510366820085014074297388602601541545942818420031001012602587220990595393049729056431415227328958977982282031930471507085571377661564059707725066654200106839637816723804426283192338310391893302375949544886777772623347839887330509062184209602208041798770762333891346644633525056268954521453913898385270324743978351608810330912937885031081519587526699659099268510927059236986751755442237504223472019539451559662902575805475006560735775215981692909587064811017366908274751383350113065668426110007790115863024353702180973673917684190237935864612433525145247414017938530413360205013407898276050631419512799982291909595057960618342967209992060429670212491356618160750088056574741688517841495553768873638644763664854131441721992431711261155253248256382754214208716333808381622915287220427191899008082973480610677483990222300000742939597826778626959226604431251991432618280233506435626248890465943372570231635149103703718870404293837697546034461789156532480944746235317264280595399630331557533567762858988064797513618139061354553079602200284662037222538865372399350876377905013869527583169129210784705866155813466694334631315344494710365399622503014175823919706967043245605115673767302996665137805647696704885013344121654570027008744025980616471553640728531932095412410235547673039217028332522043402284725925046760482178750203164978891505724345234408417497166663616259885009176664456986623891593354472666436689042109074294407590194257031247547020299363658515450161530033652211323883189354226400356555831164370050786238680053772834763897623643938355243109445548646049280346464247391333684646175525791357330348679875080093305794181500805286340563645928496151033496611448999922351162118762817023596704622173535032300280611690273215545533875955044829052840084110035912245078999626256870396410466738244244672368081465290728864133967822245844440546991721221388816761737005261048221954990826285632330505857630433873667203423621556876026832153569899531893627790160461519122131855454217316121913827287383762951301677703046089054124095593896226013630725953195800488953891173839154896145753003899207882715109176459532644048008121488278101929678554042287024036179805265161907347142846951265922140545399143636099815919579211428166438941906007653666964957910341020090107826354853095960897684781142595055709193716643838058327234622837814994722494568369010574142982584765618963214453680640468028280078241563767816079414042978721855418400211357481826568790671392008566745789237659567302766151822751178179994807097130580841958897056325344726529830571048151288128712659000342332560162035201756901618588990083402594997183547655689182077208631855860106307424365501142998108274208315433828461795703946708652194718492943230769028758799653765291478916156606312285495826071197615515115035794155714713838343082994307751016376595151784430287765193282794467887384675127156663320761323308213454408798948955979637083005835590161687285149046287425444877865565575299070693205741005095428639752159096245023770370444437423110819779248680288901899714993355199780084486408108632271852942413381154421373323763400160948541753740432619442844187843247262916311236836895108520227541682498595879489786833440554593985104536910582915161765600130837011652014061923556358988749933041683106540573942517932637969063477602242682639654416325957123785705081198292136378289139643368744821616448150347099197132829147005608571308321797965051607891072077930266651548137979946253931853924288092140115209357516053796098625547733568507003184240606476640603358349021903576579520008899846980943771661223269977961914640472959354362637934898816545442364204461376300346604574553892044130699010522043537063908963634009926302370743786529926916719866300289731307703968863035464991204587702400452885532454720685883009191794054042947056355945953384821387071656090773575242911531252039569574405687500715346409372376838580617781236949877515268894858621998312780988876524906086274142267508308799539565907990393148720346115014420673913912307331661201963222546961159201841790191772987318517751130891879521380455982685008947488614325540964202471574497243615391780967412602613432413097973180852745812446996916187994449452647757730349239922915586018606091079927873549127126026998152985151623825596630226518966879838448159231794531675001751794794044164706684818501508327343237841860926402953126685036215824724954345378871592565621392322141132000417817772572354670654759077679774709736087206168553673136594478348653436202299641825557592074269551580284364476535787512612984746225366060278707383859309217313247674383700273511260904978234093338135378594664907658583215264336205840479225368648502357433171605425703570283005085513066358379497106066579448734943924962923149549946515738855809289556487224224147797220841951822758545117362485252873926411112848956161606519121357115398220202408907395525561363064645265063289138142894243182432848222946100431603616531321826830032700894156841631250802432040528578780087592913931042290926402554822093044469539967670298747013033799087418907424504658864118064634796385965432342204679686062996366248535885389601847797545200549924449251418244470473485932255115362764743345670483252918526940315373598462425801070198631164886675146758804145994566049777625188206928609215325158991514631913055799751569128561472154263151857146741430898362270092115126980355555517260126888541356965785650166308004420030619386362935246874147424216441900436163450572102655137995107184571171451133194170016199910409640021844748535389913933409013917047997411294471565698022685200768858972341357369093077560732554023241326021820291414407640517671937712091344937492605233069288962052243608013247290779800808553828846782707399481357813875349288399315205688036806865275946974593200801985275644622103401157885384977562134905947192446801935946140046892865245787049506918115255276696316900692001999846446114767770147960805828030949733182792225807926835343066132926937672907372180800065416072209406651465611885894137625749285310985425971626687417908376016623564371898633164652075267519391166041834308796418172867513314408354517294969609609310440061999957447603183402913197081031064584780294792919240495970876910907486522305513012330436281374421291235937387899447044124880936982029179409918384097761432865155728892002850952250490847502491797787175470780917174823803907512143394185712929177987358203970576636442837226219296896988573405449886804429877992383290424703502879834603558854943149000343748822834168216719504269370287734691096457609423202214753925950597570161762827852931663515055837531692215045063683475081426519763081259472804849860782279152928442600005741727506752328165514727569708363580950085602572750015767957050632567491794751551454639745277510717990914003652579132116727292228645182675748291877243113714742238049506312089421439151151478417075516424800409285135387843082001119459205045878231885338165763677041091951385026134648369061899712671797030933842826662795287298114292074314449921031267835669129649061890608880344321508151560173605082540411295568745048398040934980187364034720902678737846152845360867274080270141498133655528656458579122554108732211618269951430703081315252463893116161741865991592731072891307032383490315590036092836062270719670954811656377067172013109406792404582812217809795968532703215956768843592090591044522810074046774666003751728417281455645663965531857418586961532449292907705703991536693332667150827485095226251014749740153048000190490474344279810750682638943215959043440843843385571575725391802201417259018428161597182637316146661456020098340346387441193746084261869051236308153057442546786176401231836565346471826782569888531498133485670871210957188423497215839302669494098390686593517213747055157183359810072737440868560119616099386656759327589189308737202497705302768801689803172570489351474085821846251598682016339026675415581104544007502530105579831532857458052205552167938402300890327350062955893155623959540106119450804324802559661237503937600675666177711608414544087785508032090909744099772860888625498001945865066906556651604668155659364834921386462224094099405481676925679819357874506923786178592351128472443949937771883935694907837633544073657799380943724233072667353629198894763561313183484935814055826466440754487101233676973730014329407576009040715996533909011191122051659037932247743366506690433730937469797302489074530532743150101263132908691179758229435059939339231670139623032405473021467723943456985720071556244851047294552325994662982689060586734716294583840960754629740817511979883582931579535177837893118073387100238388666635419673974922578320275829855106379767491524893409966371316320593370622846960033670358894139131712412742391056855103661494556072082041282089752040712364570933531540513488570589061963860052481314304296655884796825344906182545315198214447226749862358069919524994509621260786943076799041950538070055371725707434123944169685312459914598525450454034896772321865024562252518740305070861326970978387290991431653259328935874891304890619042835540531553158892886411359041346875655926944083662327691492112417905598382290870340372259633507788928132010033690359283273006412711651181610712387435064661352614851428969918241451924569999803985370607486892467987682413356376416849587032077423394867070522055428974399369571973976206318844900615849716236026050108210002204538600210178790310815638717853373738155514107922647109303804412114382967995587733834826765809244404886303879280700197518740739630810843437531497668308047627380601296227389567676529460042073752369071594813150504452223177559319415433259269622709311691801642244515140733512390303995067630889381633519207106093992537702947349550378655836700085292480633591232591896482069952782961736606958058663320862901989342117493948101569899050250298308935615634110996753097216091680803015761295225509271106372639106012315127174382910253039201323320943605808283695031584700343759424469322403918028112578719767991692764271234910354560593298967592460351285433541816033752993736817855339958227839951359322189485807725478608545676365104781023244308653224309808461295094404949293079092233817234332914466154672947370549088820066717141471841456934595377879850003221800111399732384344781377512733476145523979766512800635103106655261453725407324855550058811220437474192948105948899963798845616221650777851965021350973284668258166271158086125908674010260505212711971114800910597833228670002683732876909797420357476437871515056059828108020615531695059920253160903216827160271028668858599853611648809030738091831017490195116485222467940593102260643081314468843319233291506179829017068795315742452373830957672713587990356111206228153139378230056486051385310664279309056519404718661902777339827275422971600830387450527994661473391887600912745845636034037869102662673959288259196710996954772282721690242164875571279565642667629347851370786452823328178883498396652518864826032176457250122591717144618601440366291863464482224466821175410307574604913897084153167659082416955710553932173934694440139262412485510958339172483112064233884623732460618119709078460193806221357305215580244504901966413615439284915088833192795770617420609966940420613891407649780005379198889054200615057866427004376831309113217820447710593429309876934997998880619964915554155686554958675897631222711937993816124556715439836833692380565727960272802873918806779301734129155172509273868679920731296813891137189717466207308251014319626114035744420764807140049111442273144511614030854178749757996489764333363134327044506488172328020295332237165869936843409999408598931598987060885160810600596370691889493129380181634063401868124841237372997155966585315123597004107341827325074060098633274990181721562429763846921120048267305520205261533813210556890564008460620844592869955067404549361873945946886020683723397755775690553867388323047250116746940643079522012518191580954895678260719559805560730872183848331547653939239597746214892917293407279706447318820889551211288175188453618450328968292741253090092858161576878746754231364732757309869903452807047147661028440164977363351031860102122668026096141792134904686365500183128268126817803952284883095122211048366434192582469914037296236532463056792018870930958082952209037700319520363013968348176043563871641591185785649630198020355615056439577265749701358798407932818831430316807505855659942307793545020356151286501005496889330072799066843195948058569790063839737665532162098658840480921986395468199685995615023992259707469444913379859976128456177646043787057019166975045507025513138071848816700432152015859070358618631288597209059268021600114820981510266716022105327933485664209287415987831340027087950463600495890100893907106838524108480407596582993902450239358518478851423234254150195607045417628658668044942974211169841420615940775359499181370321562325474649373710802056686139123885287852756345564154028345517485059487826483982837196551200405685306205342563411417109163109974908281830092603624517249767055709894461805269789638236232529860181879794462186913367905391381877764729657417199159000113903393630838822611181625702446282319260551157930368474836996927245825062196567679432104746143376898598374709679844385191367714915190709041855685416890877966114138748972047493790786603615899342796375140512629423615724831759113596873269753395886140958037958360980535627915689877366697798753248379148022203945933065460798465575069854124303192505970996958472777369788381130800813417097116959744344202788771519845757366723642091697028248147013795747430954740752421414023906567857167684686146868376849060179879580594135521075801747851677705050581567077126305488944900062418666034178097934208056159225523992199771589370608445364429984778748280869485896614633719000272517310006660682904225263963314495221925406776775333031228829068543536803286994913101701911540572283631132613060635174097522490810516791706354704004120538238702671941312390605302417244357177592973466988068481865064971938801884661162975303952092051818825311616105355755264687703780474902590085168001635736528792661382113084493612654679512072684041585328100462456694101901422265069198318824544564549642522745744646620309738902859859273552087703812903641771162112170124339313629156747528338976519001751099139641574567748288943064690637659330178770276637655797488300300457662709865081205918774129908342626639754869188531733856725956362011143217431716535659010009521168167572094930835988359816138675309789850601628257663605141222660452299812241254869001068574660195198518498976156594912584035765624318479506847526907502646879286188039404072942106195493825200666042724578750906937832090764680199671302225445484316112633902632948366195490478549629244695560751520881999621187491672586033936807101557081927873392081275972695689402781559256498418917321734555111868575651138392184885646114690490623053127736433721542251608083133463279282042882239455759769330377277036950020679594499635263185109637302080258139122904850824903234210900581126463693456385806172653261509746045657800464416874818391877083640790028532681366043436351896701946557166946900161452597947935017354631163293111354075688732351377816615886164950974816686513397872375442604420648404147408106107201614956497480575494753959076704377487250050525635011550085854572897521804568740237589229844406073315741527314313672963553242978211362790478540213727776735909913962185681094364827908332191341127899318214653815430060662867275696766032863932032234443242647809635352261251112761501024225753384117180063314717265080149510072816415093602752181592855489355802063890986653185393528359033612580887045531633413317417707587205234161411095825590454475125374161428941935386302629017734796271105015406166249250573451791242831908579012766843090183769009700059298848311005662649125312373355328051220480089676495323058803589449010421512005775981513416683781345402012856920949149383888308891380976799143031306393001445962672810568541259740894729911350530640198649375783111203835900048792387706206665078778930656316600326556677290219913133902766157449611170308310591076408925229467830141521500747479683305687625132766429182643122158599763847123579164128414598644311761202324989392768916749285019792209430601922818502151653279585977946771398774452627693233271856556151252657093350690448759561810346543559285366093675779509567703595752795324369532389839817560277483915182080229009055019750333018155642138077417116923500932460480581568298716184166964483092614954404941468103919762267005033551809363920264373131888158844333677995979518455471057052009973577051365579313525773885743233099000731576314347292733229249322284535369007815293696755692435447238151315723593917721537439853569475072870472641887598160083145931488016914083990853123679725968053006659768238857195587485110576709654038764220748879320340573765326135957727479473907966623734400025803298087803185204771477486531662719474838020971484224364521538020705816067316211837255606261071795048431407455586126961305529381288149944243044470069748832313212916048169175860953467407697420834175215124267591001180451864585003587294272180646002683842858739034193298316420044704873237771715109763128413597396963896651755204342524496688492689327241642442996985167833479434135408434367041588749005426426012465259236424202068640818032091860115606802843675708373503087148736096610570296389364579342424392885805746598384284764489478322329142388295822278995163498855748503728105989360402100893120599227109254976760114749031438529427874492148222173522105387212785775231490480912535551648016362651961040341315500590620217635753171169164952900336559137358089245978676635420129430083456026815675850128150153245002828175471674326880215493108414630403969133539749388149413361654831482879626059987608398009386495327435242141710776274448024769526796797022936871398824096183584537017794605954232387315110449909609708819471760809486547769899228731779594220835721071838699686803144994031559940423821106229396740127384192214372007465562573535960233331771522393538188499750986407409462881368151200240240014102050907301912652924519579319073030224067519465088786435964712159754733900726304036074767072323160989034956297375306056688323011747535992630028520585888722241665203585319618227861693742819782513203822715692640055763765757308323497629633782049704296499282411375873054649599609082226079139793805252031843466416377879900961549583350161201645360919476532104257249327885965579413311259262362989254878072507988534211298173526111925265512357708611838659758861178252207073769333062120030410024108044292085863823175889513705692211218625527828124361167913415914252310254793070317374007438606598932972546040234966532890955868624842518693463735206520734158589492995831146632839453803595839174398389160289829573371495638361797084594325217655015636656861044201480120850697031159717843751750533265128740594889760606928881042792459670677108376631932095598606922462380260759633965659610953959134086854964329635754063190146441758564142438495257623901748405940716404945922895244794071553225255910153461553265163764575550652114743690475343564083907985371891166267440737813656492087205276949334527808945230292521334267381723801311752868501889498827952613010222520918361537211329560285575403477606712466372640593995776053280233032365670109916844496911466435245488274228085556133065543546083124874948752765615414358429082229640896460094076310475297679548681443588218472341320038503128012717961685606948044353654682993653809092015186134267185884822598174814781484555996783836483463498686270384412060865381635817138925825461841660690168281379977122198093617996434316320972707772879156156308242540958014098219962276539943498099462727675337520666037000942154291955785944142597229695520535713044963581865291526459734428529130493825329311460205378649341660774930704605410180401413736946161480864316325563618758566004606787674395672162372512666663865419934828353348127686681936870648013108067229136403714030022668871479092396745905084528315625351048463501760217040065360165199951076252342520885788361348873903024311483529242680324824200794630869108649722920869974143734310079866112649735487231565105848185797459374670973285368225149638869720345360877051673391337400956165416833862892024064879838090635677403804509142854633945212397914817340090690020279153471744059433366625976050718339457371182730440413083508874891322312889555336963845587590779626439670747887991864830846551288992030443149168584577841516050474788423851431596433552238042549335741020661201121953157837712854836589889889099390778029619474584486000371831354059117003940033105180520307322726376153919788925610415618107186987975201664715005066906104323366699503956105981432353231943312192876766414255199234058219641542050226743100020702291454578433289241357886473176740654975195403056398162360879408671323983623668947429448209895587490517522646522543276670645126699047220250866006336602626534757524315007558574292753286301270151986580441347452479839361798288841614938062716310792206743989469735293947743515141796159171187341651528158138789545416476778162018171190228717655055453728695248739168628000978346168801599936393622825726734440038685332879233191078195553325091790450195678756303180879372934658055389115453100069292937573792658015709205339290475301148723949465773144087538072102284877219155267624175476214322237150284990475061304792014706342987736192544970373934617712352715966878412623836506151749090891057575076359137586971023283813649905289516481115595452557031243834419044771772594126062083753027535778568618869498511490426124327905884704839067355452172535234023202105938725707109223395193769255245770032325868814570233416107820594616791883947522891294570429343147832420051025695834598343399718255718572636678121890020570336773992110163527104283092806046793836087819059846714626641899651480963703251437819362218676864343734788731707606643911084135822483602068218714852210606356144725447598992360388339010728856547997884632960273062111386652767154464528039892387124383538812456931463944673025633516201666243889026502092306935485256023678208957032668188171078405503556224142285751863967087838400306626915942745592355595754663733306327227622595991217189089164354700894021782300614109874908797694596026770762599193326097283759560420358447056919415979783813975870618827084829847461325092055548143004252771928990346520377105778961181127815249996937356925788441251957022180391163874006625656149425855547225350880230913111040800355680570700902913847328837786207674687706676723649847167243348007415769917239123272254496192821873721216306264623423523883368766459157556502374452410954518554649218153035263883632024317163316933001506964687123436456008383000675094233191030294648704224756660135992019610461691407687110628742467218415869723936595256096008425519244493259540001296345871663195362048075985326272075278346158052527536923520033475512584371452923766989546738548904178273179497687967561088626017003094049613132486191058973286289994656227780255952349554505365674659964876161782602461989391861559564005674721551172090284252345528660935115222284272767122193256440041028695904900606907153155656931403517260096318825724157420709284761731574784498853146320074818079625052246041257709284670654292014655312420144780606658743528597375484071531034371066794930884528793526892697433433059879981021939211261639763121977137587396641140919504781887509968611481090153308574631615378832333932691127977622062062542017686298142880423335245581241204532412778410413184864952536383464570582564564529670678388158358730220086936953535174532989688696169135209280389091672440286719126943831796922432482545164877478935586918303439785673130343006510667131282922937476213210685933734489498695542640090194558374321407690863273073449822001499288223392127665711327586819801538894892486697451646968072020038122350283059650163283845241368677385756558474780826989934243666625936252230200131962763400975560726800241293605444273304103297761585390209826444946022868062101179237121929236486867882181098216793337317993802279957380180493731895288268259816541091568750740090293421769836293431933058882508328720823585804204538384763048199638763129706314263494104240753087010695171072090452938190438004786439769932610345215317933009080139935810970029226872003724121887401790476041425013706724044204844955691322805224504551711497841204966220021765900591201626620398833864312414496932754367526104282987984915858256206742644047930410629853655140650716167590165799512257312045350214878567160609359931353914518601585875990197575093786725930926430465717063153252803410959742427567168648524619048377335963857255180131367087524055238759859178320589919909902140474976798128505416615253595230295913079398908150384122545388273365574046695952509967566486383919854182604117144040565570428134424598748878622077413715665782228858996427030130745759111139573472432402586416407350656577573745319519818889656849603373563456491497658147813981202594348335756001623242384565984035898775826340833515213932863369635745593116897680494722319529606405082967734302165146714049881372701328161069551268227500444240755694178385075784226646793913313581086911696503174702701664552012453299165905903998395746621602883668052831269297463154221674122766564142385694394543504065690562780044575920389115226360724675711080281232864917788949419699155318034737510729514976275533895508099300982978334452075041390688841043332354383202867696596150175353027906931416084518420618354422625893785591112549848873450110697612305852945538999763411052482936940586865420996379430997475178511392078169317332732109457703483907850156264676530628630885242456124197903385267450108344704133379646225792289619656995545932502815614188184038716776762016955040625522932080556216916931888695283132432758881939348746538219660622367037095047278978888856414580808030071526289482813508640622760022309958706727876627406319297532681122777206186434019374390119728263207887314700318775593204643976839332435004766038940602366688267402388250665248067168359211012513967469644126353295687850699491103843748395341256065818842394228368284926793870742580247850353632888747619755894066269623728333465924139158430600611475029527175652267621104887338306331996785421418366679566560900829304950702477981413206396992336513847686465541472529941039452296119931118917128250981267774889591410003961912539377436792967079270838088730929696727236596358033901016541355091729236768758379074893219427166697443448790883077481582491263566884587017160404904817227804690307451783379434294237018066877665695485706977273233843807778389114987121846430162244773940569997069744499182978653100711907971426985735812586108582962355265851048274402990891090955663217799922170752250543198496780602160584380878515768032537096997859901951864826338340456631408777180352034699075490250827742813957616238885555275661006151541733911850527296638004680543899211429088037425810464617253869463698774997388359760604407499240663087027998269869730329754917608594340693472935819254026583036903800198300550759761966839310913583231008695512543256324672670989244697715705036547070313165488558491829951945331717392197234628359415152643306649146629726262497761939879587839830738381806580041276353606482149075744093306033886691553255810227163311732262750814527901854786996704539484067815761333179007404906760899308126580425290514273663813136879059001477285604619138515353594893718728167034590932382784496667255156821247030987728018599729578077187590028678858560985357304749700145804979414008313074311852298470730436156197546411855509729209516734889190333115845184373230985280083517738596627477577287912006031988781649629744712196474426231894678879911576560910805160148697892562181952410259650771456517553083055582317569531893683747413269708505190617356627104767139839200125772025147448191555707758785252532158357457580672443131785225682308120277141914070492054081604185553198035256428759385100754821844819801673995511619999010700465797744482679270634569315638012524759365361824061561674945919449648742561601533835221363007400494427947584562401030982346605511616187424149654429324463249015004330330039592026447057913923443392214076118972503363929425115470832580161308995057928799830650000632360922674620133168643376819067421499197016638897546731975185256305049067477045399651940985595245625769729101967615220680087001313990408429485272088709181685390542811079783903941118542989801269914277490869769279734075693149605693482213755080168400550661053577057674713254419528655695471389320047746769316883613913246922560238196609317824960157698933471549402692605426971705618184810689171170442223947643188777177484569390669796096337444827968928962426953896041867324296108654564905629806958706408307909548582583851652323153797126922962231305126934368317874803703635027955893440507254759113312241986623504403955639470314396947798742157215739009079413965919825803359346007714636788307027787399820206803464861237751925542629057572467920524953419397731989956666666416361001551624422853122115694468428858312177893851698560857376059178742447255795180034733660858510977350054086737473616155200191325358956161199512277012726441970384271780086802087439562003710307179939697910563308557852881694445940377446437885940835666653982396493568522998247567256280341443440041682685725353504897726557075729813815484469910121736913028903947480452428097257018525388493315642629679251763703785547891964310523290489626796095243092705916896026531302020592721243966847474247248444498359469306130657898757967622389466958425779836930384144001882979248569990348100114445571627879390838731979108720607026897942564249860743549130367976280424927662190821131705143888645375284935977148686866801922147276787146155153507720576449450139715964097762509644887106176960524506856347479752915508580373369389261910498261362536957375596951505965927413292148582719495134904984222705917291719280826972713253037599682571623674294742482031030573990290043513894258925322370942242354551573451738581050705799938570914815364832739909550480208145745002248892844249676341291499358392471507729865101927303705487722223180970043228027361546985027745529875013036500918418083551571095443915751491391601791035843635328444131916866231390292493287381804450291999976566254592447638475585757359063740588518625553355288250068629017868724958703333375902028096126562871129927610806355473084714920857493115742354267204905319729539932256422506380208230642542485428753801731538964882969796858201384015438257441948663323609427435665489799100486206672145358853175242861512487107734826004996186925013437032620834533175432173128818371030450045001449823198855963055676143024659843825578976244530134794925111525487884609664086285091573646158963690017127813139064984315785787002514325939019654090353733322252921833617323043730994935427760349438249291773935249094255396003773465818717390532471296670004847420745713844229470109534455948532711211765016557536223842136390485959459073586004731881014223905821927969696501052133977113771390982975551300756717720272468519981305733451045903983333048936278290999942634136766290277222976400932776391457960585574705704180592352234675361149740962527088071376751444107686380729951846395512419492713924780871332989728358137932197866072946686286188415549410995206739095492801784831886752359432769572642699576795329628384838821867658342769932889495346955634124132835601420229025682030401470665077245922598321608712348270964135443667862765855573132479904962592564883242623356869978651607305762143525970657558205273975476746318681615919952459911702958804194865940292005122814819564161855639638195987166671368536803925437502845117336556981508129059527823125123331836817749620493905505638733044639716567525827382657023167195872353645556056941718340490163757787718851862122403510357032875909984934301424074314272666996555157616043078047543428584158137815910254997645077333986336410838281245249967595015546611004064995931862144760522514374658160050698643627112943647754367763245057529671750571658645683838750556338741829499290255610324900965525502873336842829653832329661773949902993144610124200202095911520334583328498911109684747077555562023349621938929404900007342668162510149351804286319080624658911364310473093043160873507337059627642745057092748033991891549651293400115447809637830093143877447174482465398936951455530676239665058947183595466862345753205537773215963897092658801494066218896273198379842478208397905647695476667197241215011999250026314052246849513158979412311088029902189080457096735464482032231047215049447498179250736139819201486254103826102865709043012959272522023440510308534769111234519294676100002889942134298565928881204883628957338862162606164694762546703471208315255305400682792442109753496273047611655393250936952456673296914157590137760237395667737877027323346223027431502101526245497526592425142877976010280201329485398165798998067768326193813363507299257301574481903954043082033441288046424151788564319854526325721868522355029848348218387949546864289426965998418514458516206211420872902838404935130952204567646538546084218599256851730264910106961211234226580203161625610613890782747585165374569297423483393379134637505280723041817013113713833236498631298777057483937456740783809864293188633572668695602046012478179985512334061278773970709868702225574541245936057290809173911878846135314468468325526980105822148309496238141883023477315932277482119556802153794963789090952945147945580630175757919288709392915585645395715829377908100236754946931932099872792380199148641946870842864541303726205485999456880941921573624517579205860560821609174616687862749722424152872720431999029168997221538782772615591736469740857015315502645681979177910848409372528755054774829187470592988796236273420617270570818235513821113021809299186630239001031734888336158646217149308377758504676823635049715926221791742048144666076747784412725426840568104113476616531844689150854721292447088185550502669244575625185011501097013910309621930174047427993137709143297575665573813195176099192545867736281319213081407521259570196903116063470902965507352120400461618245006992270951197044388547658788918205665221745579800397828256972939354202063868228799329049792109906356002844520385097880545640692827381475758111264965544026166193918832214807752352947441063700320488921600783421772963354879459361244079258654532957423520819493655451442522729598140977177234596741083328588080367901192169601345221962240505370741435637952664055945890930124126201093959208251009397223257406892127159758818743905070733913880959201092507075466993379397268173050982287407038599571443031150526421266656361696466965272305521106600961135068974391879100960377028882673030024803001017026234391810175817945602966086416895990139134981837569145288364743481081881545177359311576085423221170122520406848075285204882735261103772783329310135773724205728508460337870610967462155552793241650238317071788349658057975823663094821736735081349405801767264120497336526279008611320400971188307800253466127061994248461387111538781200228208138445438406703220486039667173035358986616281441145773112917484462584557512073342600045585580579493053297429204320962994090618781348163635860484546179982064552294033916338045200460561697951417004562287900024234668926064074352623236152382771030160164398465870481821318939681366171563006209453537136669232079669909812353055880781736164855183889154992238415647327866170894504903323501203341169843441315073607891518755184421105859748055618756011845350713367955379865346887544999748498827715180441309267765449114034210081390418019088085621253978484525216926390193075636393584511119330126018517643503825523790831821025131809129514673511773266027520624609612221317931027681994450007164557029284682278002936371728651302187185618582246027701449010059643640525560702122642157159814903256702639927185990383595015108095231269508377500082093589591687244707247973609311114131941111833505491466835624497803079506061854431912712008421759384380522780211620257321076953003804705312496433801649388872451545862139849962835553917310853254543808165967687007421016482005793550521349042091511885092380211408797672196394724056016334332109273516794117515333415224679213025986832259083426561438398349633651147117971740969671985446829241004855963823146865218788416886881872416383513477705957124735026856073781547483825424390839597398430176607300468035908381546659202783547246964807103566423598606954863512766197008976571241333028264228877741086229102940538888192169144315607694610515397123036265277483502936305416112164941554204572486872977057122506405107053085494907235229772024598856773310730109721276951725302621963448666033293740271251807506113856562063411375790327182419736124064317099391606621771252144226868327826194418965908306627519591865461357347200720210901670021359720276625251207924619595528703034970479781293013877486986017193257407064664737779051516446010174619840737798623985888966082825578904587549601245292109854686215440534846330101798032051047221847862143115608206255069365141890686719194470701917771845715927695548228032177628570552135929310275505842786356049493314367361163637529971689437282873230887050958177714008506598588453843338305134412286309802664596513539637897249303574344425571133829319101007392962279046719943367576718256686137445622193419635501699743520503165137851496586943504907631716071423356173292408333484608681092900604272771106738138333292430911323741223260108489164305167307067923247548184605989523659059659157043418294173864344782082418354558657983656111715871596963474043302477702054172675370031812865407018398255805453912630681385687767574891250352975422175166042931774517413256907563235182031702911884175895888957201872857166995404583227145297985829118223011526947479442976987475613395507879081110117863798685725662256993904502104890095147883173112429744485959385516120440071564871048677845777518589800047592420292685899484818386887234160532608266051288221107571223449525748182180839134031838092954810571507206463514612496148961555912319857655853711361269660327921640320734715371933827053111944401599287339296801721751420592563685153126262204760499521216411598203338743783963239722306966680602833669242183581541674129532852965768365696969527903689233810629609500421156034205352396365593090169842606279043223490856796027754749401354699405670055460808340755124506968207447746416611826108987883509358098198961527688930767337363257988938684242718375576738150472483884807986182712339760845230472253629968162202158697323520876610851405479248565529707193444765954916760685519360955972297962248789792282063849806286974141159626065898742170815127993132685072860319245090913361345946367089742085067726822606192196677038516251958937985550417829640088392099602203020953545340484968079629270288007368937156130896180776505147537155780605179012210411853524029169636399112619516853776861873156163333382569900290353732652959240304848148693695874306716580423756341712547607979140158693386371575097495221047392778112642392610036635810562160275756539501928185576495923362683187861827739780704867728894324275963561861247425639458171955678683905171678875290703879536224439699644422285719406859631659097441868717132139258374275606548706383929642915220252579324302389991621080855608591732430356054199162914284693061100200202436500234755486101200897010255852492390896502358629709125052585751832368812950081792002148176191011558206766452014652978449577816414679737391019938654420146835751439044373323285751572582413621012545466736110570900806942688764628563497551090821683718842061485196093977583772350306269576172459639141307427729405575267880493235168509975133274931783020501229865212460450320532785668400032886889358971686333917779291958458684180630872460441112006197577797544278024054904823228770359741490609146257451183063066637935058059349600935302311578764421627443980614588761208448869027701589771375543532171682829864902014539581274750751433813529793235809639404914923388177003104163299232173220713522664430186286702701204652480077015312035701740370446547330014118493883342180829490252252180301689590751616903685811751399541916491796839221461666787781460154902759604533605199028423055403867349557579490217515829883261806769198799863751920443160442782612755732816753713190142708940820306485818844985823699347871634418151764350718972360088888082123472348928806000081271687371045301678050245746818239634527538968729354753938778296435621071959233925508496937189378219590067222769660971278704480028032232932870702012179510931161675577282539588576003887440363646846028933426311880215839551174372216435477720951723397667175196513194248765361020431842057902410764576906797501095402960922512785548814046891755983490341824383870578804791528260655117157252606280649718198292688250476925160262524360524560892722042386219150110331652622709179587016591876775745867044190537888783549778649816031775342563709180975458030302288850015815862910556171962426867032481648931776100701364783851400395577520936341797094528977436735655749260462047720193973696696226582421815951758359865055241868622989258803924964849565908146011971679273038672174093931227175221873580878073258467321737358975552277113603289251768516506262632986655490416461135105088306724830973889018104508858781428340067283644365065749884434809556434817787143162870949277279745479425181234901063254951193166602951295881622668351667769059607339634172665414434493504947266976236419484282728852294056705864713675282601760243117247404719558926039110360310585425802359535534441846255041709198903297097161407296933346207142324015264040263473177325780563450557750244818239794516990729561658011768642472484686666097936851555402609947397895916679230608327956876834681399538676706367727307546947311776354231445628878898523988485058091374255190477049789096682480845353086113985505952100937330113550248946957642459840312719646462886832538009919326496644539356122790772812029754957291556360148230219125703566246185952830478295056120234787693835595603577882504624408484486102048287569176510387114498064447506768611915872323866704157053717299438191889198856764802419711278962280946140436650206734779261546667225037962087986722090698997462634764851724627674545620502866339106551224572715034461757208869250646577638600227788104007128095654742486591543942237116075671890200155068129739267022309750703112551152777155687816542576619467815438800196492864561062999701251924044620475987805628142696367400993716691663335810811550526416674648634150489232738517493403572870378589513983991024547470655664530905283383793984283449075343916383559294057265615726528944478962111385363986084590568101308119671111473708478461568219540572027326192024453891091950188633442371056722118604005801093978331079993918054805982560576992943950371873452204092455553584545046523666946663132876597828723708017245604380455798418004461327269024867923007796604672817604290521301037265283498235914850608293649420390933544095494685407982943057334333637074815847647735708316121185442020138660098421495568334041185279493264746081292252506297069838421623968187520243703857517211525785478874004823905828728725775413260164963439162216238903951326095273302514929608843181345621604360504631868151708997558263903439736381810208072811632290664951354307139536538785521263253127244298505211787616771099050567255066381740481998036102132967210202829040634742813498064222044516006473848418221051347903253846814445403113225376527572113445046676568518501970310682305277631897649215507489644491296295319731714947766048615993675544093457323652228585051667028944009477034745771779195029504866695521004834557383582278264131590345341977377794963613300955399718543030916836718481181065566702079958095410679133450642454293031024199515637617790778711377745141817957020343936512116747426298260506618357670172968086814874230682509561819069982093116327169247607296239861291732023627084788851224835960764465740398609022778513299634776036078426516364217684334040637490832952461942727809450340589194066599055714652220946756809785084183436451275892269265802325434453240532105635949414445871277369488430094879321864041173000925498031014723692755679296538857295783198345618953893955113237862005911946495667829431582192838415944987580919988933583131020054322857511199729349475799471478209188239418427605056531293583238533443094835448300522422290375806859488936660796374061966733635764100285988035115668354682397285886751409973467433584800591275744775651764727408988930490416246761087101018966402098209807288764368018653945034910099163469422577256621524086209279462730736481722697964946230428540896192718098412071506390822687481556093856668549549925875926768430062410294417110878734284558430341451341328243083148390079477443276663814338934750606221414281249996542743408741736606748275643639363556771484841018572654029260742486546727762269229277365230184040152401633690604422146537006388365054069153545991230020420297752257879848896854667222867417595949310131693779962929979342596715412037404351096531080553533374045403256767955264233620527997158843343142264162701589934392948070192150767835412742746515962245480626779518022179905242062330152041610414135233055251901424896740991705723076167078186266166109641811013511814371103481016679851540995306519100448542809881911036961930674867653401927163983631286033967102700265919667028951911304357392512644893879617593766521248097067351678130489207115773879708667678711308389506501593790373142084809516845245173702681756921575026094764961715321895813836243158015687297619727411563663112216261628299155068861786277947164569001000732000153878214685121687695803881369658980599503359880984472647964528184423451065009404716735998386303963489611161804261787059821993940162772990215597457680969647888780344880903712123516279599422920991496161500936873143075901242272445743844585256907206664833638793214570448395042528478117893556088978855639445436558652485461095074863913235504339631149111125216305003170111687047403395736302076554056044036241027792861067103195616958256405112632225127115669368324733760436642011141531636616954065895128399856061271709064999957116224053994208705422844961559358373893288282102940699709350884989880645509873301406590628201920881914373350785286949796676143062358356766752486237786343551586929441951227157211490299078207522882586715002391877533535448050608559960773102871052323374873283514180904077988720773533947664959986770077565133598750360507673398005492132294121649270482383099001841493183363784183140935425730288332502595854303601579016398797155284733050286196467366518572770031174711643794819280416789984189341222540810006285001265396774824203189405287184717124406445963489990574004623013866701014245544085900116735656246885044822403907862006378719223625515120633029822122069873148667066736190839421992190238905100798239426902142945446902767555378613618621836883111121739809918656385361719018826283271025510978469410429352954473403737713671315255771970892130791398714034979206946676066221822978005833619411831032434076305460485169658441146441104000910575869541366357917680541920758788611982433676706923664718060926358584105831993440829699848369602114508148442138173510791774189523915383132480022648580219741731177758372047658090580678103124457054490901111621791341385779990388606200758586363118580820896396236143987877459268127688990554086949686074675936217365728129334600793996464631448580733047014417197230659812480860252907982222789899079978038387322910280989726190332848416690884093920458920981583603051045941724065253914134912373234455944286361926078560903974149586767599340851552709365296694544811797088983797244497140697510222688855114102025991776647393493274086490054914860687748140369047194288182692190673259743769611243647337308688747424484124845848517019169483846852532392960545943608314973164164541185829347572160461700470205817292808415953667200765144218794329226923210297836090902416109605885643750589359337858554518963691701713995073530019357163017266508833264531745430239170738367620316151584406234792577493529284810014514594868773894690143757433225035033404070121644607419718176583254268342808385640038107159462643359483762442234875254865368736945003706501600211343242117404213881720747572156292507425251026245767943475332854351781703380217906700966689515882930985088362408516154578880624269637828036752086261437735941866096399951685836917920325373800802230490662824453781339349483394064634208262253478249972728258230060988936003030221817472738217986975961776468473307091565634210784464079925109092899369679462639390637771418739258550374307984092844943115939704120519280285301626492531092325465697800570517042128855623216484588068865202895264974034736362969468671808211732111548457200735148962088023819486200758158035743731528401022377737810446187688699420056056961959966600392103298027072799587928715726663368306028313057711497352691993396462668611538794586634975357159972197602918359652088527919448087236112075901880081617773875272202851144368976841566708519955533302786233591837676533042506773016309388992061071413160113896354639930418073107154663165859922297923447537132414586641653484376873549852085164524414692405643984157742799409970669515377537709735957901947039462366022570669343097777002157722486816476314997413121641127512082382024384886270402148087482308894096958744792552635309732152517439133068587880099620032327859672666140935867347427329342041516358994289149690809904100437959218018498010975957616161029870332044891019021720325103345556460515017960477353517785885153115814394230105992136851059683961579344847554025717035151547968639972861046700447326110956514134155623438693808307834326530084609822182736207034799522601386829460914353613814462943587255938000536572393726708243519868097140684318509465906971611878572744239809907649181055522105618412613673545972086936786364132575289722670271593353870777958204989501629399092177789466450233175561593046480079229351055766690117071618018303956376208012441862332540354067533546291298276871883356177455607653801049898535545137301952787287075188236674397620594425654683896361063391697920902420510288869714394799679255114595515716227655287770328236937505513779899386765255753331452085822683764665592145910649589205599123450388054366538815459615301608686286763731361906465406443403665850444125308374658621063455980581196810326174137696544552056593580735269703924885181176203642844378529955279686158093407911452189625588323657366039753134127711390677651668323307328855152776661187358816021985416117945840432997330164445335847601737905813988904100502706060633283815809183356197426111625403917858095732706618200200062650770754977454197592975773399783202805169373396618288583186711693734901007013442153163186725871575545054146791030146648567377115663230573980555576303771166585274163925682835642018274551941213319715800931122558368470912886589863934132150649594711846882241895052753321772318090547854128638641424957067277428312783366553619635590916562767209839985669931887726918839130149747621454639455017635886757690037340648068616339001698207537534547272434677571989563301585188476000465685696642453607652185300618881527743306089365131982828928853269665755636503658233014098056232278111389885496746648606706733290290705495817805365459775462364298691985683309935097623435587213359237610692356717029074420133199786561078867273257934159021182718494023978333113297130074355102424514314481247260170395060319772040443951864854357856160267702860117978041923067400150062256460605301036761649371512964758126988851175237235637368118604504090672705225005803832059729896081941206947704798268274802668820684168953359271480968611656089636657931088341610125693557793901924918798446879824547465053273155751733045297665701745064287599410676380411920897575740390468306606140166818080195920256389895373316147723739624121207734972983724255910476123547136160390564177276738680240116757475862794852092080077615201490149731692002114331166725736892907650869733252673799114125863668350959858225779135692383410263044891856305709332902481468642982919843141560991041528346949442285253830509637872073905296393149237677052513756890216059578701991215206743761201494198698058936587496437868153049336051150513991898853708704925458202568554247345119808818474692989247755445057379180596607747034820757099765692343666926258397215839417481219497247103407303602544231640113103649150353172290166787828405558152653976723184485737180512190981117091289100238096423771115011285423759195743934397727840472590716185131396777554446793333744732158343295123152583668855506581781511498947741014687196072111939645351758099465217906816880553421175609385511679713311364487022853544943069434367646258298960139561735491605943712334715678162025742298996387702281593110428339412282168565568779528507032598914573304636898659025126780499418082756982770378239209732302866489566707112140756886218757676070916191734783138269282848171383099927047736867173735860343979248752798560675696013208350562280914900574289388900184195366246930011080492756899122862232333673030565713729260672848688766414977600998014363144578168942386492480452222004112905051115286556668473537435344379633153834907896250246835558140546061902840948759767600895888007521562441049210585155218900040784859706313301323636340084660359052065155711519789091965278171666846083359796328476267859250459005790638427193827537742645491810741529616219593157392189432569285263131777410305895329524195513434892665616271516300388985131337289748959577417917508727867872791185428949800632898101053378048915662954836643470521751125178003228701750850958511475662646392915765896525786660530680169221408301594899050348749636394709959785104894370095407428208040334148034633647054546695519633950502207097509366173697681128158074914504550671819148937701333084216709822998425065540433904020146642466689301642124769401913868116765374984373800950920705641319042847438075775412116815467788735697504996618524190316974785641791659716760670938253500106141843302975137485796629953994042898815896569948590967150703378326958519536034209429726285006166270580993512769995629035876873954579692938843455695817438488561836211624571540424159693863987552795880467991054454190786551099201561562916676604498889138277096201564333614168142605437531424156580272515857408561041644170598648936606820561374171376741936758531734170219542908471924058466355399720997356625619226163031045529858592017617210855416838844861366499300349548042494714823226575647709031408351468619377122583105310705944757893071223501066567147279622338258254835668209074148316206410531760878118814980838135900612083186082035725375667718135483293729450630254500604125668434272075079132196092552595547652955591655332581860268878305292873068040282192790913790213543770919354555687683638840502820408121348966985914274657620307213280303692737382823051095894646718459006305510896382828175154871986079353649202853945017610593538093320408271972728933245286885074038802204325298445375435646355325021718284796620775158505141144209821898712479765517435779191959527795215056787580813611806348487660434831671338148777772569172631565556192017585840046175076324173679199418116600640574834638970076251450917600287681902518761116705309467904547478058485195266880614130954827232449354863026177593081456461896757247286921688254520280018889849513827034953418758710144932729637202978392294748189820724210508505306650234227096448012976779281843464796457882547319406157895937120938136451387730804492500751241319286529335007730291906199685258385374722970854514187632152334038590189258532110822760534826556394923020474365626227348679402651344728324656298960065414325789666667463509166547570775644148605908398951836834590970287823683956262476445663330253222897191123495940046674327662406833642736033030080559289795964825763028840841970894451026428304186615382965329611431126524545218506728889459675470510796070640418465454003653742304175800157192519839432670418324278975635863148118508671818384389368438374297900849653121427382532468592478711498773492835541883261899086238081395898082715205536522302120052668221675461867715988076788588471437841274930186008655977025451062445579658048493876190691853933634675576056146765501643057108405006440065959563332677328849057610147210265415277101668355670052735893304822311553331998066899868370338353674240578440431676988450353057671291521166188783200896007256663464949163923402216643234751513416505813592841931881611097446141316284985152508064816862268766757611535540809912426802786553409096409517253515779001386599723810908621142817085880710299505106884075893093071638394150938153793170478465070632760736781842737293962501892163005215755309397666097554554739904216265426676867571959768720967392454005737913635311333034143112326264631995266000215120338957191020206957971228404590425542829930725734253890831896300646881725213499621720556416465518233601954480729577733974157114566859562100147622771768762197763438398103602844850396611364944467440397470943758425220496757682051161547794915788128215383721202504479676525623303499070894914187720499799877480477786406024599100768287711670098521440249584949631727433685047868263927939280501369305908690076832545543916992264988422187433288200517899460369645081753251423600664503750335427943243010578056317248298710235938319379091112871916962246608779595944681947220154738634714111721864372377397242431226866565641546807126843825049502277656927704039485599263267499572815287397254026928361484746102206742014810745352047256442126372874137749609312720035203548784675450386957273090313451781743804876517306803055074592725228628348608435908795032682127310596125492599804133473043910210911402600609563832371149675055279995284879987849549546399899181189397861462601308753251160360807819290279061786737204935206786199750794757857134218176199247323862226759009861427436578577454031769113945244209709350275633295069298720592720651325279451387890837839871860448808632245679632938632667789809465028211419533135082044317140154688368668789639315293924115171107161233930011228506501421223026260124089728495706013609019325188068344331540895012631163228216658297947030146425976535051034418899182170225451131570397504964602531817426011286077002822961154217152207748966895032417172230318062475462587572971332911665364087856627588162890045632430321397342235225456264478855559032850293068455360361929584549983825465881336898311857268753429650596815659745040375253150963067187516998413336461172192471203794124610450639739598146549431905961797289424256281235861075110774372185739264245472066411868775716075789361952488815077175921959976806761829350331453431750135843757346655340093995139188243980784652372112235910246950735758683437964432195780344758724428533466666514032533119133435210332339125155511209239425500754461293695766462896327886944899964605119093696762910751631094143311781871844270725204835117396763365930655770666830807132961775749639919464525762108675581653473780465389414663610218299309515872177446980358573042954731525168887543494639225271518926666088197052018852616443071116699127113136845772669263117663390363746227921868897161177261986821989220002997011629416499065927681482043459661521741209062235535569844232086087516149737334821561346899013726948749727028713379286036880232983031871804066193520027968520804489631942167062565554913069793693196940668862690836353971293444841520740145707367864559778858345256237835854327112186840044040320809099529903315264935943518616499632406834216871510428204796839353081882836086421043730640236156057382126899135227434880317336819003020282700149015890583298355608519517475199793601859811350720231256633243485011139251660513759978205301904402465813135214123233788359401787600403159325150984270505278690943346194256679861136628266178060752458112187288028082530121813023501939414789850451369245296044733072692290975126119371730499466818080768017423157180180910984884403550961132902421578331876662284443678894275576784765411202023869393532526845183512840671595979380217684647832892309264516256855999945561088846452374899890805042637191522992026853459820023585528491294592786957820634897423097890120151763220867262228358893924808973831937351019393810500169750501390464735863499122261823168263381592956582201758209706713152479392403717385826086806214207549044159947444796953645159128643356515790692503097283819244203051881662488518480121540810231065946483509240829181276640744054318428548069429099412111030107895941300805260801984720693006569770322541008973439250691046905408981361404738764875042900311807278065903198426999725759766708084056619530290863442978819738856303515575089436971685120408654673371439938566090578734677958187701519683885219875643268052755438451574474392500748376173071385074120961454795760007439822012513054877057282191665738706106336045982511455934886540426282721528063177398833179024151353033078928327042910375467656836633019329519359367031325861928462591217344161547501861782087855755436629272863899004755632753325880175644984982588968303841398332194124733581099421673010430163198331863780550511197517914429724565753757515920918684121444893950701749505345057535924149102032465147851274463493564942575559058389780161308106040603436113918004366642376832426115631046713210218403390364766192545251378813265441203988309446121998799426357089590934545862989397043533672339452418727596370170649684804695495384200866955391620769259928859213367720854308073838341776810801834204375654889020179384292851957333781478672714537831714972199047658684509343708749917794594271514968124101487889096752175087088059040676622159350666691860600021309884115042513052446232439075469477176187410688405577090232340639772879760110221429643981019376459380163386284863367177304221237049170912831793280962606196124497375595273710595719909947258016240630188978577202931124704923165694964771730660205919415015141461928447854729727117213618472097380754911915325940096887156516617918181159326718677592088883979774308251936144931373433249872166964585233817728870692968638692422876508288614874912630099035492686280000982650322987332338465202736422463027959873907757868295215537794793946430470680204531819650021125853766777435322666189893445778367213050970411584603373688415532658470397417278479453804748158988584376285877957330661988948507422562132226360834772848410745716418694916043832681928433609375408529882428839420045756148648460952881431482825377359220116627505430799916116258523843908607729398499262963575643083767887679522761615739431114773903945147964447656824462748341499328059994747400462513980377545478271944232195843419097999629860840275032292246015268359459593418297130782463881379303190490320692381134038549956300243578622237668345870288019708072272001371865854141700748091114511336608244575743556681459021787060931876034423119599270797683216828171096313074028830646442965097000451549878696377309149194534297896886086129004584841905197141195487628949953276148513447610452642592635777876506909641749805636119800425853556059113661571906445792857639070765978814278274727307181731594221662457659442730317000180891347800629128585503639242587966286343767481038070029373662599333597587121403031540074010744176318878982366837990817672585090690394104902795466637498460195475742173196045539548028620840305543456460178485443357548387693874354043534925628450783011494899220106419581536119297966060279148970320565152258334834072363319453422797596665828693947831444648823649890943113599299314368930672891922054216134367215938688161391821474604537053225491710025275593682399454242840791309287173205096187092689015938348422019885419416191096949989769679277797928607947353177450829541098041423031353921551621945634372029098756251189582848259918390772409668700552420464909045984794624525163588991184298368217319285333227343368741156105740340821442830752035339516007648334766357042471348709894014797399657445037991606608213271128703342004948693445921862620961966922333386940217617212869603368979993295855548295770963049761826609057721488498019961461789487402235574624789786908433299016298976147902118289640981457424540731427924295620298023408930921711988287300627078003092649380550796510697564266031615605948486756663079771757632307524448358893506904823878982831529172429401345333973576771251972890009075889291398088203044093081555923423241420558950910788131575819125014188050571620270716964636759631223836016745649253909729930671055435409955432291487909704611136996221856667640838608087916884602806525516917708266959267992205504378557404712701918906944198104508234738739252855323835728799833067003999361795520094047487102014435823863741087036582196638453970160223096034552450233758995085641336357647138847592913353656120608768566047802567753571143578285602929573860747904858236180105685245711222333768551604402101980114317291263108910735794790181656428599002549287913157928725340878721728798318588197170572227193231413606529508071280605696398631919392723140601523068809174172012036078299738306944464644427995378464408215016307679341681106273127925109350665559614571062785530295619695716096808129466505369548234916054938737181558955339735899117540329955227811011761374389210562432700373229203052163988374578064790432420115774230350662796111717446618187143786101716263738668524648609938439092938431657644350293385965092763695412792637553280671102788811328520614974905607959952952054126406151657273673184486952002564961435972559278972742166037730833800774702264475060974629319685921772868887436855056848782619041331724052835288068153247659628312124762343231736882185259238822774367655987300347592069054100142266304831475741223380428387376267853868276728425759989866950072240026330194666017535900278215512215242928787594196437415170779620429443344994763053727130638915933775366518100942516689459514720614901231401320910926374909410201299109948562724832132092080607405350118193298647157238800825974904087712944644926094341016858696516259930674278579959913190637213805517001438755047672863755999216475196637338794913158460374565783609753291181910659490985699818852441199741552981060369695711511878756945514945112182342886211838077515045199831077027038917921650226117514646102434267264893892591102054118838478458785150110079576661339085237503275064495501500103358207460488560612662706595202043808971813944260688787340036588223822983882183194320969873966600720410798646488917482302501876742422924404210936829144544830069579413146334187224029786418419413807125173347346636723223860008563927112504360126472195273685971163092239857889361454192318793108959492644781414076950410086377885745422914536886417332899834164415568405196778952519184291550263859479550876494912095313336752946190939914948835402708089512980628537799892596915540860261217136330925299626475757854277893441674469073520151263042356653446621120992783400135115703037398327807377731268486176210279241028098497475459787437637688370363921729556838319017254460942180803285754422691068017104871113730944014471907889317136054477053895861905329491764272685030881912989857526399791277145153573383983115063133504376715589999906071593736668949705325266437355246858125681196732865514648697533591940108124280567642223221573411267287023814844793246775358059273183897291752756270016475130670446631469586749124919978783033662904068182638005756963775650307096147545857800204987354249491634798771517011354515316107542660313444867556577277370313860870184459161528154176232828072043631417452207608769759250194208344589134596727134009687729206592556486563102943026868818729060578662125719772277757484633627859593755834540025632437116562435689958832066709991135724506560628360764062270432386783638708709242682983947856865855724591590293040496668941426104925598786383171680593323285828667460196708330198936037996500761959763430651573826089512377005963474833057945494910940387627622088647940070638314173031793863125971003699500120757024827835142152983968031343330018820251483866180563985811879831309985886319668874834349701988500967081301225868995201619695089431863457789134558798495715135433285364973347858892268345636402849251792659121246482670603372292870498943510134320852686427968323794384027028427641253179919868950550619073570260452794153798016118742766924207308363331701677974119814524536875204215867043614370204135699587751738970833524521606447413386071382409829036792025050393389965843435330273217017745636148815235767792339495575590391532973026831299881091100699974082612673429081593292619559217419131355051963726365201508262413313576183111475726924767243827674887670806295699259343835778283728483466271235492708287519745333332939731072850334677820384555141068401164296799789270191066904017272674334124847210293120121657789795529643634827654688852818499062204637031753351523918641166794327445280747816432004290241368961002431295069822886159419207022992017640914176108289250533539350861025768949779642513194018803302832383949148790596287345925537885790642026419094900421239788990462359260679314038344385359919802655029986030851803044725195485613098077450743161052048948223177095965329051505106872546014856186731305055603014870723787906523366718580226855464466353095265512323978695974019163153890889919897118512727028117408817467416760343255437206989212044728295105542534162584538132730926752525063104854144282797475811853469433058921246991062774094619401116668294434947093555144290814060083180107067234434146015296826709673212112857627572377933074660932607532901826151861193442904818293884271630459580889028937259581674331253579155562134553044907576174440059865726502108294639345489166590868374229768765172663903121298662035026562088369352696266759489198248974829292634411903974605129110260917535376009544718196351476340635957488592932731011802111933827941994166060676991390063732205927531361592972936415269532485258659198831289160885612180669051499688291245632952808755561756160116000700943226185636971800387561316110433163552734613673025911460819976151799184554860475761880986479370067436990797989980345071507838575009814348082795131414468714796970796301291802909968121700296688276386929523537061331905199143670123290602124287734848861217282479243207072374725787093508032962876734451022512578988430819101998966218862269745352017825253841611773993932763149769096455441424096901784317712370233841308065116011197705212996778336634321523279282597773468543531010329894326740078826513365175607862824542448921948982764634579160845145626431212615826063686706514677173157698863586077778120873883064624779168163621919458808192254400535815199204497544546202320099190412152697745153961403896180912092275257751874054325058748370553087580656637601571344269820259730593648787608691099400697528838903420898056640132349878006109352274892724185896960793289931126485442993265939211596298913306170546771902999868364066558213112798975253764902560482332857450608664067263837446054502309458211851932439600850798037103900557732145124901776530426548444264147623862590245154541967481197046184604792229427276237733560352162789843988561909604057429198948980060858660121231542251818717088346271550796014621682785520472875627284715308133613871468900986894078654204112304662142412417817754172055971291778011217709847788619129955310673506676325202779132347918862873675838212325521345552753916169543507045760355709225803883895444475143572317952678992026151431138813041430088824023326224114206023878895808411115316943228517014329943881441850371803860871116140083001983215456160763998861046091429618905233202046209559602467421324937815787994869310744310230993145179793337961437310163004052501594260566843146652722591647515988149600495024691766197938413120858998638798692148262869191636951133772638823184454074095280499318607417382853596974618539053221205832575491711497048725933636003405466195915852158129203030183110790262123867196985701133892150656140231232331132394914767892079424694483851831037491529550340872359733687364593091813874584463130809301271367928974493304892945688791442330216372065004473330613796592605092959342200054249849491466080761602206269254827932846388342596257742403598179652679773282988420220383498302262911831003087685135679426773034913022668143764101214038619113440173977640369180286630613597478335826003423485620255891416825910049231672637279568136605669595818120399520806452993300135333307320264222574018369135599030514682903544950915747082635655348453684146195605743307939374218425113934918284125125587801679475499071116090798709102607062506749486624346697548789951409406448920865518837825837919730700976698297559688467668632625041536148870111351063059276513265902500648910298494729159331007362253926111299114498887094998865751388387040317365939960324363483530232625698446235511444671105657892555486989777421709776963053862751850795250482893198308562202693429448542390538562828590300691790302933085294103145744850189639142605212605475610905752572859504051649420317779236899017818193358963592891163647212999342773824899215546400370597353848684115804607290465927349186751326012682306148580074592458817672645644792345739193578174746555828461003235549253759835917242193292515502947361974175100075395640346782817954663253444274753641652234255514932376809352371002743157851605216741940380363913461997666759198234371844164745128268836689475904621619988096463201055000665389197340991314639640975426342546666656323516362551337086197187202498740576186030669136504946794859529389354256123657855434050401362892759603739746099570937758729034115793463765177468121625624409026718331615260203255173963474846974845972510783720435064968518973791041664536738343505855649666931850040167612244415930188763665750096018232524760838557451435932341675838967576882447504695100398712937947751202984955213280413308291235438584009761120024320542536483413514331796733655466375076534341673348079382918115338485127521574114673239575249677953727662543450273344317521147298342603046944353290275259140287678150597383643078577770751427639624936551749342133459768080104978979417427884827350432138332798126629547001753543597631394721380823960713577838736592100201632447161238599019670408953402733348250392590325465502522729561922503258516114966691175880109626584362837443183130997320509710614394268633960450358850558409731415122654737783939002258723059124667576399363127520778765237263647771570039119454813302693644378634768272305569577292910708270676599537853171997600190970386001102845397781349672209277623607032064773317231297378408562379305673420143704131930263300149527521796853159657481289427501972647463624178707338255935085972939350900636233060756865402430053259255075063910747124349599956501368958873359867290473741437741132159901333723706117007416192479584091078813064878527051506575665442405265951243576486634031712758191382821900632571297152833543413730063858039958455151605534238426455520647558241104791970518643574311092564579935650298099286680436457723854692444170113156269918351814574013613909446781902362585066255167403613915411326680284080002223578718348432430412323184034059125649369426054465447523192708797266230826022918913859633355314738086574811486188218113810557517989164047974095766022172983681511697381701375921675756046132849701245529933168551931555630692244642312125243759366781346816534046602650296405464149244639285585846967388337827412801070739847359557005654081691680692608512827042601578800647070522868607012512918103832923442978251516021539912610391780383252374580227661331513177430564538534004506486952611712827230194280758039795657136022938456339385992910201756734333863870391856449203905340877789985810529605565094537369819965007974397873851174029265064642631053293446217292574028702866326448332012517998050291751524704110951534158987084392576749437321160262132640728155234547332290445544835438744765551429723595282581096798554364679889909470597129435328038132850183767805140826626628996307988312268693635316888222912516108133077387544529548262124170543890668929591541231459869285391884058189863065130973365019848152621499193114924624180881917930306116992383347016751528609003892134239770549390176724869051760416992255458138171034300464301511569301287792669971209156161006462626597596329250934428809475796435144916294591161231516274634437021284853977237935320985066708801604185907876327262490702700926988256590290892307501332732998025660689640391627235335764126848676465177777920368714880930976626352612623600469467579906976194008634373563191280553359124999685528248560907482208024278372392096722674191347911489570651567618255672581991778331370002794028499634519780837747357172818225337731072596765372482169214628088886879498551912499516108384523885550528858378786803372829590742715785118033584204069697543531439959385868707992290634514579777427859996625880724801134000142373333058380734481509697339782434437835133575162449015673110696767194605753533333931036896476818217596464549961939962854619364803998601932391425088703283139832314092535379296574140608487874426486204847518287600993662004102261230232873696983356984003480423539532235823190293085084685328707822050503633635086711246823688319565962324398116790119199852797996990846917122269615144850054678968412472200942340523096953147753246103392070631806481522399866547491921129650589259261153572236013145958532628239542393970318665932586459516743242919527171411651054415489845905877809607227869161250636839694454265247051518543413449860840213090451973756975214191400263518391424831817336324760720925885896425894858967748328965878212223600168021519042284174637421605055927308027656101659515053071800878286587255019973535520525415861284714913671008497415829886056528715827894237517244428219442895310381631052112543974521929126321876277159411910183291547710665169345496023132257017888397215419063934602918792318117498029390191905997241109319678146380565606004490265290405777577153531550265810252325325037122964520492105318201051698606171657388443589416275510227820035246358246792931197263460941516718857659574740688894520995966585322535201944374771527843707031413529984822352760155031238436887674602926065407890336256389409177025379995689460910985055686851738962320957764495626324626966006653775691109518356593288526306983613588137305062060495871051071616242230765471387940392610695118791826635695166773165673034913414602916948422822157183921529994248125725314344433088332348352471871927959151875224470235696429613025093266054344137566678578706379953442134288148436863362778433644166989157850516472603636146096731469916068537521919312391147810828089641101400449732190783241428806405261998713654434771200780048899673191198865960300161665630331116588875418378589930724504785444753592133601881779424339774895132333986860501123771513395755117928217111471145083658754357919778273559648868482565824330324431404742734589413400963943217510844048781994807282858538172204932157913124083050519794691069432684756095860918528666866388586951148243452746677449729283384883846752357087839318007696060074067262484769667015839242837980377408336327152476096991354533400639075328624371433665796395741545708522138297750528525516659844396949183463968843645063946041823804226967959839567785485269085944061746221488243588125880414209580224088157056192775039718437530412831087512760661837844368823815876737929687344739719418585071172685217836791785913290937715418778504522202067637592031433977640398410417810811076318351230891918777999873524771942456252709426135581619291753865331052547032855355717723774781201396576469220187509186635749209865919323991722784541021079056827895752407624358529373221868307453822924564495421260253059118759990625424362679135901652829934372772667908759225809353187509481306712475254087657535244394199422211858023399724467304753589016804928875789087992505828265771735691904129598511855709180734176488258209354276487327574005282981365989835539016098147332152524490087394684724852993097162882522231762386143851726353775327891503338753396399452253010205526014209790402973342548322163478116451777694209792303949751551106204060419096031042525190864202808860004260222829263266109971831924643317187205361198595358842655154694962688298729149909847316944704869061996483922990016760517050254848564801917614646848346430924993827382939377333456495494596697741383142640765529885690568211803278201732922800484410884742087270199724878032055512426046915214640671195635982715559915506294219403079172782623075750463617478148311207296252004356837328434926910197607666470899608157721859202635949845049871188072766493868678654285641935270058378553410753106357548847288246092542387841696363236630225540275999079637229018183460729308085581239048036143488622513328689286325198310482688499121254807328925065852182756816692081671383465385602832592924399294794427485277406726348412178918063338633247589037089834012489271931065176377917014708260149473161604366926135098323844372645563369827655018806498285090950752419062333707891283928754683099092194360982735351747797479394875311319607554691068826516202208174698197237886096217740738009263278538511135987334856755117368488235520063891320449731138767980935142233157602527124371337066436543562963635103600764507628709687731128578580797552783553137272650910139644040504079347848389972841905598303676814068288043031160241747976171297186607958041987596960421732291423881383889355192196797837733987550965614825508804861179975260392434061490549917336143737744538692548258338121623421471101545035796807760164219206468973016541084335822147667244256694527474552608311933499214886650825485760626920800782940777082793622361548549932737367254196551856435457319825811601652753548637294377681692700836350466015561989854446267855818599637041375654141511441910750571683509749359219336041103425150535536179168566863462332678952795991476685466151791304258453631071252250248953588330334066544312595101675995939120600984691704720215460916833455073656179249270895838110891687296164745576936655150035029715494815946111878350882414896780292279646773653215342333848392827942454876982067410979947218525556936193727660925811646826247402530890397312452639185139437089682359913957933686808107164047434094009784634461025875298329010865329043826137616873914057562702194359292002109149338277754773131258414507634652088645187636244435452797300487777385210038202510759533084959533839814554992278131632234373539901639389237424049142723224655112626210439502111647856378790220533843117096514091861279937123090902015456381301043641351523118201230896619846085504002949980764953764828982918123260562133648328262887437153310893992229929307924387304320753438680519399710305813797834738963378399988489094702316019734154098072813936315977434759895400224223236969682023485614783341131548354060039141637082584381839793105516161827363029860391374253179010614728620886852986950931804025509513229014089161698581235160766912652422014698976650734206779063307952814013519026428000537866744307069511145480607366713702536092983438868228154125450895837179679469433061649014808782010050982143371600666724494011797115501045631362318768248261802245013198682004543961834401649729691096807797994415363757395538302390427049354102471872807569744334032876079839014512655407709817884655428225683826911804760502337397009503528259516909926757121666176087763185399375800904880717963008673354589518037085181623389078600344628834185941922682346315038229479709476943286947742549527767869215308955058668385362190790724725182039013207167726534742510384500105654324556561270859903231160662503160786029073137438678480314586015698805527668311303425473401265250745170687433664203438348562797102814066577880988807685096697119851462047664766443000462082158138291272251475457336619456147981474784574055910710139478758685143686070263835248305884418051824464616071848852074661813268410189964065873917899540422080484290026520226737807904237470673933473260602916237826855643844444883825873267908819294710265880690509446203674595756738785496412367452877992188273702165959041499778189669817256812208122460823376561647387915867498268338137352191584036757939566935940715193752861655173814278334695033090514871959525692005423472103900290867408192260529026742016658994347690390466035980976156194798802426880567282856374116505135628835356905303208065171124116626911161169593669088092303401920419876721050280908754702785743169297024818934399104245295402233873455013947407154147146200866297842233622857372438308427508682538652590350672999505350086972353590111319507017979079674877937544938397424497044601016678589479804306007579475869533247829921267115533902775993438365948152316408851208573495541743881487087637535660305927938117615454244240045925850451768035838699755580810373526245293237906666329363067843742098187052973132563676622371925936763294229820855777259912649473361848287798692407031905012736279803893713140196755536338810818391635040043880218640428830228202629478907166694286035573589676387468353202012424760018148570225618641841914472308555442016243137135074851844937330906866425518905240918495787746315247390486319348080406344451588307120766142536302577984413355289191453902286707102103580738839686393100084740757506770245505633140983343677270931083860136041340818443049468414789891286405838235966742048203812671994306849674641842609782162422266489470112063257325287768779983245207525131619144964452800228554727537048857161224781546334987775234044989857077943644359966554261736808227313609686633822523828252009419599614100976262771565834108800559007861358472183654063053811060535634914795464566712699371030413241074030487920603570705949481956511829508752033315325544575423726416725239561565598039591821608452417342234322672649138996021732743087043528466303389671140400837116842672861352385895947149366918764224305669809470073437493482575460359111901243298353918408575645496767418389162964625338684219837619473219797714995463620007035063046018555732070268418220892869590539876099750592580057462180458516834407250801017105038263128873951085317241430554900532305577816734897626893836925333294161833281146177162154205798370650014773695341174842869866127662931002007081325410407461944426202457905494235940080454867567465882898473374541409701943745999374854936193038458396705572694375333147187548933038227182871229902602616312149575858128413618370206050571025761233251695388037207212406092752387782536728459988078722505300655005598099264130632380488848401319378557613521443094600613325396604903311348520199409132517681827029149280475217913503744201324973437747136297946742764271223859764166754061520713761485190709027043100051822408692125853491332326418429154363644446419564312333874866461607698149979522368777485420801848405041087893338836253519640699135633356952711427804402028993409458716491917056606613613931170443264116827479924407713190676246116116312946144369388565016646995862377958903910037490767615511781832988418106991823771897067815822390892820834725314320596915713326851660395237375664392144250095736874290244791915295486760884664642327039126281050757230400828709450422803484162850685131813680956256285265664881295668841709296659933814280547333516783429908551968923882155565555549911864770704797802310714722936231452850893512299533804253012462631643708177663258580485946627851143042671603451958873750905954672447628073021470442140928191410205692682064403938217631391015953851158279698486239598196552625441784204192592093489940654573817415546367494780109137486542171086229903045887064260768743589680406471465461530987494906278486181206841558234321673677783940130803872984733587343693609332700604251142537086880587670568024972132949516412467621402472949701367358799946010851943457289469950628027819914472353186241142460229049515521606185951732264067155732452907436342859261253012957681343501801663886289190096256330200544410790673957594051007656806187034453753445846453805208855556535730031503921550004072006316554950047001853240932472173618829856021921315450742700008010239429663720470159371665377241764143697870796067388758273481131144232317364905551940829924400265814563781586285823539042300742745890792861141874899134118870626413685138097328598619432133617861313029148008532656068895818793448020123885385801386588859738556759110889376783626937081968712248316833980199947656392194236090038207448261318503586362935521442995317359439349131941513347128698461745632581573105761542839216045913482807417082834072314411871147828873192634239195013000133153008741310992502076766714536667703632919105729018200177744456663815878243545070082495001576643852175269823632069125270134792037234348563692015007686036122475595330603582233589463349089087569616739474517754520876129140108384749868371188201027661746276756306056882441878423955179219904066186689157563123577950684959228255635754685107695027057179063181925633142391768684753869399383823150171789168032067376984038258771305906017581921394197410137461074831584310291855389898642207634240794992762200796846343126924710714939303745878100675648014217864358973264912943181692111118944210877274205570034609210000668029307585292010898126614462036055536944171357907992948828635745363779210756965521694668833305601728430818681905796751107494536221738348608515631210873741996431665354812440366122951432680758404583332618513339980525989824579766996054011854007508649143140505332691070867668213353305837561812439219792064950855161315912450325306031703589122318206206135967097972688130523334100460077373018854581875275152487599487962219862814180974891474228832675088607822539930318902057815373940295155914237964517261528382790949590114371108847336569005893445274486949069859969480679050411256212928311258932658425110258143897694607608461407316714083346683252492416378244810189345643086305642765644747000865968696724840495670976952312254865074677698992841959962796759955948900118207679546555000524582974610183137598602121926501589314041610422241515244423301594648045640331197620220568562334627477652846989666099560849670061045863755179928807577995084873693901736272343161211070352122291962594735135343210889956151839259038972435108712199488319865339837574462071755747659201232819550039500037382606540329624421132866200736023358363975892602233688811852088673581352533843681346858428065574260096881228786211702733981179114588962995823594556744415173062242739456135071155589698458808235870338485033419985707755882338720470295798079130932222068364942039282046282260532272733049679051304879749664058986477179924902124904690519358261110716101782199805686379517889794405912029465496441690938266769825157474064182635298181693055169767635107964135394125549385948219883440851246427958623084934120555634732008229058015688024404794792954861601633198481127414156759852629844934736939663185808325367492511987596105170595733838813770989047630017685376411119028523835354261353322557295172495746677321898282849634415203096916275727972913774265330453891221776899127014585996848175090156838621631941273424967022852168526023144049236033824853595140617032739355830299524910696250769279777951398186665698340031189175068886179997371168892800596798086266866077160310562657230264265318555860119373788306444704861623333980241383751726566518634236968188854516245190782407640141288879595471407605574600916962305129979761704806231167971674706125446925485060932576550742777230500550444830983075368352278632779383616938573982500882803546861816174542393189090547532495647691344248604107481802606762077345480897229172682875317700967393409492566654610992112929513359975244059507781415143501931930932534401657435618686915858318934571290823411397027890778052329557157530665413232618208662278447492558620735640605847527562997003327758051508494968423340056317515305774467234420272277791586248105685714054129279124633124617989335034224252785112826320589995374635570125576299795166003740618728009105319365671644596780534940985244638612356239732751798644108161516279484018308242208907130602797903125207796477373022462146287815389525728675132309376394617269262421611158509707070756006073572980752689231159527888036827710382937692073570328524968870866288989185710118487944540902130047465547625096640930453551796376229571251121061122507415881829950590871399759648323634919663772539977391799020769632546521694741863898275642096064438742672313457287796597433032825706643646441415753039130428331277280267026473829492503158810765297433678480901732341202172906927343929076832992630621453417437830357672445229086720803122448902575378115926226664323735879772786432911790461988642939073150483083584143667949629030285739943636398927921945507530034799655696925152104772548125559833151592369754613055647179688651227067199273858299973786307318997886023092557739692940101622066286028197762874384173880010835620901065577571568914358429291305862419095199747381947249661945814314165942388601224276323561290271692041788846972793466168724950126141931352180467430885112722840771853603371681084688886830625554935031607600681069180601395385027268291349880753406126037752755173956180356349139582223710158631065305931717218281965081718572240793623006463258869830408162901866480919053404752494945101431602752992313528951931517912692681521606423555822319968231851734802420813525619140127785798076751112338577875997749866207359759054120643478596396870446500155872931435426563097265908571844268106156635966529775414929223436318880606672201809554567319585512331310529311815449463522201395710124370667129497997057903199462365934407497821037969455141572335991322026389060778083763754890647477788583045778460466667616282432880886214760051496172729320538911652045864957971623107398876140712951646287636080216736674077422891098135721680361578367013488572358975845860174140751803242638303719989496048205269751565524844745722007361234636341642154093922508080975360913391746405058153428712860412258094160211021084010672667432052790113098469128323513458177034319397142040683073714281215364349731954060167949244562355472056403508323639239067209683448170822796015595452974795743243999773645460628683514099907780626038663668141689127957098530999580335695367664086152422260869244172233915742831434176359288805556723831638901352310293642503130323095009044223111707218154096792326969934178255421669492860471918570630387780797253590248192697585539475199900751987171488824756569690226114649745786663194771823953474754550689757487683587953931995457171358026980367412835814669239754044321675789078577886511367109987805077961332847977521781503885028131526742234559725566126557115205294413667308079401485557575921056704819637468526171652661888018446367625683646390350702980593130227072303198168214201037599009892890219274053050967605340269947156515078976898084846683250038710304825883544282475077567534316618099476034737680712147702854474248384152818713415470771078928462370051775823915486175800737251246106127456615944418743587638124611796053419492720231397654803099246206521504414132615162494573312795450730992798664157356958218878452615908745044614526280523623323952913923382004495457298407969247433923600756386921315202574967851789883637949398154803681331918542232178878188717255927424166075850985813407437494292241138248564345444012026913765706405342854137602380757701413778615130555261813121366663783544602892999334868274295884922259728137899305207864877332086201595380805041060377677249498615985559374122199463180041716051060622292371434184804878598898573775853916649413012852348307346031643726475040840092083918386073854121862202573773243821249144553173870843708260637580470254518799571662665024377315690830333632910757597475471568228646234609751559139673461877016192736023854823678773886838925182976362152612575416282588071003742366755756994303788123201629940506017420412201145209460597656987612675029747259911860859055464193328492392549943809052506881192187535147890834690204258212152488745791564981469390408906407425596313688596963632439975457208346263205906426143298709916654339230531096637200402036543504974078011460571586601930645473376998768368402319674658259411119000309722390689248229843543533231775249640652410579440329686264510733960857008891054767362797150646747613336643170296629416842859334455971711439066256449246322565506400226365282219015923348871146196171306368571718514599346568020648773187905924910899954022217951248675585408333225886021353000593959220755739081325780364827994571335339394938389909694312295849388299589538326146035066174269007439947060717453298923476821444061484813987977348383037812685875860145214756776919077017084217603661634064228501887500974248143325341454256575044943907109159003975916902648740945395911871964742911481940164956573270286408508097317793438217152165010470438171556788294576979026005120681550264278450955177903528153160840490312455789696966321194014126646872667293240599940372727740172036392180534178966008712901963606916386091006123918243636697923020776749047236484740563220560009669236638214892337582551467376851849490906972467586038733273932067134926370288095770500695863942931666466366261974754996806275391372208201647329692655439168665704979748597271015858833349320811855706694851565175861790275493054172830979267545761719333752733144400208053532507718841888919682018886715964730989440313808375216354105080858189089581433172109817215292766722682792343213218506156549392826607092302160449097108422138605501679944259943805640925369580528356478908749641475785537664541849089759766028560626371725021126645560331365073349644945078988814485694874051851800375295736400981132106690887852008266829233208002893629913424749640661875986631771393360565941077771443626712643562367109006423380199873341312953382712787069980975876134835790496866725113525691924464581077212535221595088134833967450398772839241515575614580561343000127629859006974470500123052822210817646672250216431730082997801087204333267596803299000308867657926239827437192553127148435387294501074499282805751548942822964504510946405664338547599292999738372650645195680658507100140206903536862939763044271683731863660072748309898510122685705100361166164235039484800119730125670741246713270803007095462296061515559655514814036045086425828145627062225504601286872573240865936456779557214091940560797852184798118566775383876712637815532103837465863438065687465494722080794559096647431807901010743085233468443760714567275570717806760618341220873242637916903217007904227381997495515599300346041320672985697326681161298281803609377700901263577581864439603432225655357820867767469602585762457355766534395239614755642400004257779217268364461310662750442379300857882175953617040733767258384007725032170078869327833270257314443379662283129424472220900841170790184560193926437720225957119490278320875789706244368996382423640187159209291889391399365062965199466376651958381595925218019656803392874908793951413336152782124122762761116567748114955853498546702365663739659282607483716503548507299554254439803267999343931233484091922330644427926670443562967184282149697408452731034569164774116784509176697061299685429035803242374881824722322632039123852957669013138814081445805086146239405772177407094357701541616589883488658655489725711239599135372555196163279893977315381200386000976240736808720998904475474695684573523492204213568557655579877748460134780159065760486392608180424475481280340539205368247368141697590423832636312152656181708873739407300189214079170393925871191126283640151869039395531961874725682924868262883596687012556638039546833724439375627944298942002814994092892854018037347501415805846970252144305209880854408742518717213774258436455487041541525602401414008370996349661872585633658427907582947509304374946760321695434262647947951226154321852924170015201376432813044150186958099154208134521042161410061299449565141484021700738955689434685247744524782856303224995114566457796518021263391679242880981518455246247564592334128760576473004423212880848475941456919300146661579317564967408616693182675115375910923868190503117944979942397752190057918607948686573374670522193083908217192085429364609717079040843958649166642606060405485547968525092618624400681791701711591212060921479911050983338244269951753701558556861759507647988041909728510331961055093510558827061842515878557290567730110569699684060381798552475429405144795507096970934671975612276958416865489077128474544900459761646973605669172348902778980005075245351074337031336945366787511922998376089517412553563865792205899390333788835009684972756192687973593404455152414331028887878175972255993542580585038699621097993915029121449955625419581910933539010095683764241887400392869481722829932635802798383190616631826734534756950378068281282522854345198425412104842797735234766341879431600819549906244111285392811774071490934907035566487207072434531009769076020937588614166799133667605059978673093070119861124627595011644859247725765444182156681635734270331107687413963004248202339025065039222568168892879727597316828417323211385463863963695070693930830870516708656607254386016273622308125126681409114194366850860834368735407340443891824610269823625394452510229166463421939744173978884568250644779676604266130795234114798196573471064723733203793234713719273050073224148187374457190998746350662564152283891075092622383843973283934078394581815427310093270192395056011167846431660232725202368003964693948892981540075311235511598611486214169224528174106317518294426546343551311923774550847136963434114641154196286276478985422754137814559810754293159570726550791049758942383166310418925770066511086792764775392000009809797628215597824602274524029051104593294968863747267790195081975571850093317054850964653216478885560631557851160629417067555571988916730486443861520894044131888408770592962099510367356318314419682703261872097514866275924427461533029750487736978010770953025968024754386860689013277474040123469997232260913230216787120668862585086661248926786917892963688878641300474866677436481062812900498886285559882659129489543665474846615095970043545059522399823428430430114704476155043634964524919489897869034930436502792828574207250909154577565029095976222562856402662441648293203559709445039471188503700891012171171132910835719077553878396266169009845950539571078664960185073194113070966660865566697964678718576278414965622966310008445888789609183152595491389426706113611475488961268048764823401285095068425380516447226285953006705508813134641792479952654498289287823981290364853233357795433230000039425871769609085099218013362454438151627970249982754399793177372796525932996427212188149396615121571449259153952795734657850318529860272506028722145112453029693636092034167671797271950473168525882841329341499966584055495797389552559962225881017078829804866299429046295488404795084740560033228604897719492907363811607168636602338002690398319865269015589698350725452832577055468677159017651131466970922664249976791888241105557010132038804152709349717910437671719475116116540923453599664712678334932838491709443410188583585077201929134206301833410168536004704233337693387046192008196259373576308322940106702049894751763412686452340582767314179533108144361672928403316460934874589216635709347182963415571765969389469053918807989602147260907923639313393317871375208588391423255757894577415039263394195144131708167216941994004311782018295513672286538664481542886768541933211745296068156544564131388212538385843967030739521842780434026135817483123419268283812346430121647916432468440705868739777747692182656097411833108716415708070249773779134236444293600421940307715306901069494159025983946508429256966687976826668528651599966516294105940505017038230503244649223991220170115475415946357206787724146313367439246009915738451596921299407091454867367504939412600081157698733138924270586335656425132980106791141319995487965194722679163890754807582224255208073128630629916324440580766669596818105864700926062797369653807180171157310442101517942560976526636988370460848943465064702594775722127705913329271974019885254308424928324393790344631206977478362031299422424890075904110384511264201836283442419963776250496281203571290048180528294798194636694109789381843100664631711742102383681168710574123614731486172327510449820930119939781436552228764332737661374181281979027053264146182909123425650031357130084403475951982732470068188726339797696675031224428396080247148327642463961340438518708202030878896770543824130337925466749437931449143857105140891057106325521093743387033102862752997049565535991415652882038304088681345745427784460189406368853589624663397943874660665969931484220201748861138853361595520177930567427843004332393947581207957929899673973723540117967467802018624257751340387556419041902917060770606959786347669680070811433634258031033214247608252893788156505583634047442546103358565898332483209532974993199490006285540511970694520599302940969992741876761785994923560898405138086336430598629845459250460433804706621984099600877005395607693533097224766500732264855920259050001449536896631260544828051621418047996558490652125938781754537995023983410611348928968250217946895550068797827581152991013696277602719675043556059251315297141794927206119538046781323681629057883990814655116304965101151581566848208283358767647542010724752041736840532473501951805027728747016743800516853878232891453348180498968322471008802944868125342774617888627946679405135624803567577510512722302411142307786674951766375860695132474089779832453923689159796012037159536476418169053006378836409900222109781025237803867462371145706567806701116162142862084938710499930727039164241596249613955641529323345673063620679436355230793301041525902061707579638354914792706857930268888396145611484509541301592680764525126178284551816770236417243741463976475457980711206404035124411658673053675510536426708844218622849968268788881984531444028302089400457332492966619828155666478838299598854906035588706236058437956464819866113739857620698582668278464623514003073644660859748827088753163318437182973900536292228849741560888676867293453405073563084152292778770053266444290258998322867619454270385319290911656620828560221230262910437137651033378725204095395073534838059813232927847978280831184637058932256425470784357104920190792784575408490861527992516469733229661165729935220970108538095608369710344492854365254381754689494244706589489556018431801085946535994060278728195432235739837790414794694130427701655425506118549867124818291271703374505798633679260585736455436004684018173980792991885193385328083639257989437241029925993560221511712892298205143282185437403313241926084803732166116137615690700358630356698973326095913038341209419181935619774798527509087002842087008346971376628191463940771333664285682073974506363197933902588467384051724033573433890595488758866882061098390033273753061131539149657860666975971513114757508944091513413351062555507961158156967142359376884718555577151415243187129735552816434282311886595130060109907021003364253392644662653305537276690311779962485924063001038880370689042391230208580307102070705004846987311558546830610827562594553240482541975361275207625837966222834501384378811184212549230028750077894239110839896003870475695771284267688685689627623930812147120865819268653084243548446026989288025083038751531094679406723950233371648061333924702343508727309726104025836885717094464885131918022601752734345081333742233532203373771210807404244202349775751230458973154903460592362791825799763939511218989645160095246655300898414430117089343922993579912312270446116601600427993905293739268293942933494759359956660613942907352234187338042276168795027431001057434865640065853087704404698448196890524626782327121616651071126539505985922318105964557192111241658886575931937132160089306728134642401757511895439564850043643048445274474901638652952327333808833896648767035262465807055891288400700067142883464370748478492306398944668740723470361822559836420248471177574594844129276868845633136564616385833741879100471804981183512699726160533700205096004463783665275003609430102914186190741850836794307462557421459922865284618818743016803388025726299860075005901453314065818377667208915882083664767633916944959927510564943219407722121067301263111403340592538631818947117085144797161333999229548124073747390721287503613603201265855900770841275360810229759284129142063628874864739848021808139378340349180289543269004049350805621099774344745413203235430203346809770094573703365762226964067986891770130273091333945363673918914858222941145573171937082983331980883597632990604831229579168593051730047607070258256138312261521850557968566097257396982883714644200248035642090605926790670252969790469824001899735458530212259724317389924572369281713262177517331707472597729432576793381722067134442016947397313979560567929466391720823708603891399031936533083018406888442289544711092176899230215104779109033239962497393082171654993014404743332918846401012288077089519217961525947232360218300732849732499593831205282278284694268380143186733355306132569584190803742959788543099552095867074249193528905271583926718803859461951694397855711203181023098202737455119055493877856208840218548714767524973614586852449339161628842500947005629480287204411881217487766948527024736741469517939789081850866401533272265520842944237087232249695670446809835559661683803114279827616251122168432588195259974196788019986345279555900841497585719435233483425996814118173278811680406510308510110417286377293349899092675428117582574645818660436526859651147575672881865288141534048452474167026192990826064830506879702535170185304971341554526188407820396189002768086470852987593109866478529917911534786302681729990536310123549772603524429678450750898560663298415159051402577381697476514656583071223806812788988587714440444718469514404358391509999422684648696730968889724656363365906701230309524781867700810202998104706481364750566542819355969982643497662502331532088264727567058819581293654046066411661963139602251952988353881633350064471809782323596678973286596109178977245058836606014268732189817824964911752192474403826608900673145948706523127520288124410943985500808361286944474413029424469530763728091289932341521952206671670712230938538824721691691408071719591905574528499023284318588613414141843330597427516393100669890212949038820901295815839988105253836223463281696393063045250655805082609763513029072038508644518349256943690668089152523804651029900440629288462278279145943570922618198647287879812847333071366822462533449613362721193983331719318740174051165429782562098130817805212453216584649687831535159716660541464509324215154860945341330579420569113697153844309362639340813186478684601239129469318905922911139922565632401801146142897422081686593445516588701829814606243838301135244441075832811308426958008369802448228653215309196787365866232190269227181484044532427750221116812371990132923102117728123532591950315362515466820946050292754974124269326936679296779079296163270072216286933227501308032980008022055407028911036901567408167274291586817324061840471542367563825577906112883066896662737869064314688649268753744694690071046620625189197882260527780219252311589378369217608285665079978174233568259588447919043601939898893524153923700038132522793940609365816543899037725968818688511607119930773972457139910388241484525544664600538656216644396094733674070834442784627119967523759043566304479062262112638245819472437957777919271497164796226712174134215153018750909326445101584423436556781385567220525123609467728879331429386940788836377716428680256287414007367720648406622434630190916231504929835028281012499043529506586401742247437496856511526730787257743810595531404831291994955901982722847302656179806865302116342165494752807809905601234584374694157257420997004448321514060916353636161572637137092927854228840405855260467134153059388698087023862488580124730494963551451146037025185322488412493739364768699793292520837071548678244256827215240134959568730558893643234835618688856135152589208411371899334801767428916430472805470286599313062118672189196908842264408744797935756961604744427551305110100220479691345401501854063799636525612937270929777753138199948878589126220400344388088874806922802949984847267381925072261816433988679390270652590618744622258730306597033622978890000386595723275965351954977296520379337111268147234152829509608242767609400132898282940557485387749732145528830132844542375742067964834588121467721871695528543083454288843588865930468000185299122045870781036767973455344455748058389536215781573361859826139998894622575437685518772252640159547209650428571446073215876565318456203983686869583164101311281703519391595467020577687056469483368148897594287479639550968087322435918183019488946635211945102248145783593067956892386739465250969789025348322393034141719059275420596394260889520425566537313500545889182188922999020847145827825272602960662358741912256130954980584076116724902764178324420678184841437605661280156526115589670320334291703655833402051757744076203390246149695323478715841009385017173316278030319075319638401778141126236746557300193873890719449793751974071027244621466399770124635651550095914807249081480992783063810693436866331988375087051735526848260863889833219765985470443167062295308053777183329898978498533576820467526914332286356210823620277835635734168932444327166180016741772302807702437268872973851399261497530677042699728962230996301222155398107826984296418284920624306481226821587796023246504865277464754251220886009210192686459647557737585436475151892584292520264402882801205384678970023534023531404808620380664877730204175507403032100093727530363350646312043613308163135700488648784877343304597103062082327206663762572830750650481990417003858428913461339353520969881830755042786591259620494582224786286901814270058050739007369912864101552424420064586356066829439777777297524590532622038851126155988936130824297425234391715269220134876015974247100016048629584955214856474510219371929942377375188438445686934126645807611836037590327944508697131081686798100353392977363937892185308710386573294862284707414215896819138737519670232705857777358706461318982459033377323601130812294761109603029377705631998911976642826927153892798437460942311164428694428987398390766192566210229293344656812095085971886746873931518013398998563898082319667349428520391374923693592524665243516393786992443766748456248739376816115072770181818002000771180025492523104186467123329635051463551465336241114867083839512147382686466654434837964941371069998697369948528410188900748301390487745202779811899448476496439449766720403093808407952126564643831859271021562998264889968223033790530352267987685298726788502460686731089965426630923932602996145803233238758054252186903012039216115788621645426158520910889473543956796764211836562361718052156601984923536517559930388382713371640370908839325497616194761643741374666036785294118530541715774578401671509858942190321421164092362076753836881160494435504901055708781628063810162716765055380947268997987541674525591956367393782944605254611937258796139599766251870255410190163202812519416886153961955708774863132085253393438950537817812754906885335164069648640259169726133641051176390478344080076656365234427301297697326811436493107826482283600488018621083437375990967273479085401025568657442328195368790974217839836809507212862087591784200741612511156345544327795529402702837631960362629718106033533778089230722287586053985517223802329881211779605210249620943386015724452513076079462904530913073183607291491630426365553142226213047574750677751347091509511141495526339934850370896550783855871118432451826075824692974854295920205799313062647639650151409905448536087279017362663045691392753838421279924964011369819361776101431606556036882709800540753534553131992595656255811993610083450102680274389359530288193772128216969517863989761596973453635741917747515410665160290745183158384587190900639376826736266604893381393800805357157809347302436506849540653102899463075782987702888992927463043531806381234774554169789085592151448690971817209457337080260539298376290107096564469434927529407130748193610701867937178805296405105785951749014837543021362708593116282794415954968794357241706990534692640293920381052113011492420536502851576382513793008710221939940894916832512550470023799180021797909534719601186132021799774142631947230137321716704670473603147221261261266431272999308877618578698907029671040519726360987045396730273162295531432921854919743907738422471711660413254660338240550738323527187175483834635488214946719103008260660781339239751618884020015902185263167090086059334644292709637941197515054090199486501579551772518201751015773999188287231082800317957146163048640794488519951083982938159363253537641832024726661092129037303324026116058868199731235893718026449514112643112628856204899457324140958221749212615548884428171418943554956831846696317642870000404137504113036754394226159643929506856932130515657605400258434285053347188367094627046216422249058924497470861372541280535074732734108087094654913488933884609549002722562310691900502751341728253937443180415641299015933639875449013958859774000121414294056573913620095165093620657674765687813416738568837225234043384957957094261516131557844577761499144048504331624025174050173205641125134176679144764383957826972101913227130900838883641261762335586371614464118028631014838605099662485305556746451024845616978521974850115733623145971796268472274940817486520083781855137656189174116344592075497425092371772148122712749577520569369557014529698945215793231506502783769175894155349716576249824307257788753285588332767439754890195499454489112870835174680211580805476604920083430249990336270213271553918343328212067647372527843527898752269663530809027066525893192877429703726880999346087349999524311802971496298864748536041150206068391920077650789625548336933960489726134089771199623593427057624880039819399829355382388379923264765270680707615948141632629872152319292162441812525959977553394557617381695278562726181842999120158199944609806152757716412686426493203960470110211439442185275551138409631353747461014563255424885360872411825707165408692016635455093087089280120215829352559411170261299770512372099219233109542175786457937553899810974873532075193344840492553582112396775200978926458556544344110176141841232188424049475081058918190033747984873947196094158507891665170342813406452762538932688706516139151347207305319184128050498054351345953423409504287241888104705898702285534128145128667588251537319888684983054581747936420031058291144201657107670018225258035341929050261870313791858017732658470358377418056738146458401566611787478627558806790415205496281912590118696045618975822107501065560822403665115900155443803116096939855793679237143640349182491856993006013474995656213845514697898624008851588702022395789612877464648502906149789772119965532036021579962973271128633396977978110391148058048123911745068394101907572910200532515886774577545414468177302860286097034227021829439039579103596381102815594581508740351564439077647249811701958270062736469369526261510435385900491176736768244413940959056934505106431416991410755908114156130664412126222954616147433909959480019607899416678056869355816550059939993592431783519585629863474521928038925900452139299810087795988529585757907223293439213512977948667848034141653562470271112333402610976995375092065142572331251089434786920624620429447165316316103381664581648987214577193678157228390748409004457340794587646256755013568601850908260326717310604040046222299960740549310625819046497116806905832923160383696136513907998692953629055536585200742275380655143126946258627651165220420564893241474076587560664516101828528391384344416877752887050495594658021540446480756938499704727684562432450406364102365764823579077300284497498853464887226732052400261051755584407637870619854726523934864445150405749554731871669589155975760110173433531068633420447386818497166900232851070162483414119023632715249364031442677940076355118713056734406719250246601824253909310424459414386869671097949527741469521985234546240298268686429610989760356577698841301957072142113429085639375496749441820387589476332376560674571501870780544677322135947691594138579135965357443002880215956140297052701884792927411777610124381147628969247569532990988184221154397629923871950820484868719093679908556130967575303875148648972397142992208249424416190152066670105741304464287618294263185180641170617808806832915455627637873231937318180376221674310705507948648828514354051418321841932888865866725017065301224311678171221441258662401325771863019867563802314919677652445714479749179099074576998935072408267598767547619420538529029191151235261511602776081361654227495770746996195470566483675025365519058179045773452523780063610766790223246396676259807544228101034114553821817713690808146827845428404238933483471618146993305376279308220204148568991167277426170836994965350595579349276230878644422389486591432254535684103903994251352531184820579529246141452413432811826574139419552277410447679413784926018881478998707645131899130082706551693756657724434421692352302816788722998686823587373347658856583262692400705329026838637839549207425692944776040456960269262038765370364010469697940540733284497191831340375588336418942139677159254918293690643940176591524729603098072233280576794036853655407166507358047018636945011455582226607963356889740644579265291296572189351123557133173799770692641489030549989301612498648737957885193336559374068895861314800515699833229297720238578212248287926881728642461174808844888096418777640313188513519962892437468633919901397455063253540645239553199914254459518082772058640573107505182400565583952387574427880851012568354284997360495374910446020199581445026014520918628404399981142541808479665377159117334222331056042987738652910573598169797730358632476393371048098501854017442506061864338779584009866487844305298470858233067745175869855565302980204689942840208691317912651980882698655126604684867486302522016359174601669203734332999238163412990857930034970271166031524252014131358434970744319617324673913115440663644443383614098066630257356796361171970122810376495543189187746654969933664819314934165766645164944028853361090068933656181978807547301481264653887152547076671869903941967860070684909874714697732907488112668284051561190065364321710788733867872406677426243453899699557205428599053210177676755659831528876559702867941412578841296355765515556915122987887286396948938913884817033249352355563055424499956384260507390926235086639141003524704791374705293857670497013059978132837154277480653179513975163912827784791219812477315731331122418815292434398335110674462269007519965201922775384492340361162025644108378858477310728910063293258141842250799291452479331076863110327341490267317535933723702811328897002963785765820124894129748956581807322569988722681140779097383092245227786295574794948417783058917622601322255532501201295340408040660169277215914127160337229092147304203206817370135010286494856757930529432545463849608195286414045478889967591632515353562206798608946599660374762495624829347274105323898979107692234488965383453386821446016441147959181852320963431631561404339489434911508066580675742707815338247874175319697977271276848560615861428579580126199992273845870203765872839983427308604902093718142480301125613979343817626463957559747739333250493834597817982933606534803026839163637580796994972491688853389738585626527665450943464753803642053711506403923222495638832532479457714907808210285647472622364886750115651793551473459259156720346302952858589510771553218430603896704127354247389168521042618509337909567286529540344439466453958121208627674689319203076417330579684010698873337811677841207718863417476615319132206455603862638435272186514014884100159728420891800128338445923557551539504662385852113758754800464212361777491837435929481127232289795287925241871949257594626061392354224107847257024298042270800385859651498179200920972559681998949042535593104444295413784275302920158270787047483815544246041729852969480629813964096436768599459506606161439950682482069240048744254962113250894091757110289730419155365741248785824941567206207141247118073257511698171043355213004142610717047668699201559252828559338178510265805195610340143333814555610273881284541469185695543083179122648033856684687053456187186310275913698379117575220663416737005626352861308753436180512954295297680019285892680546106541342797527476475164236123247651251411513153186868507453963804408969282457596290181025411753580791260859178138191937386114252919821566283514918057519363817748650998371071855919897506223842929210725058653719926271749363575486663197396045526608423273260181277391609167837573353490985047075863423282256402177180223562191219981519649625877637449623128815329070220512298650317218857981990788912846173432496156421192704668442096297427361237136285910067962113959021270170613063921608677486535750467384667584804109662346385264332148609622408563851487011306007826921725764413746005102919503391789302706602845757688631528689633428790921014023737376013299854517000743809797834581851884425926397921359503948697887628210538924551410713841614092036527826382413872988757804656944077130191852394142365250353276483487710958832352388555375876166104296665512013082504114739284299641489915173400966791598397885619309695246261237856120269035176298913472827050932038040543207627987564231145466988457270581592483224854420655805393083335700600297165484908923960735945828225509753755823884486988467631001905486926732231723444513260198812824979822063695254472482849073031786166813862455348623298081816708844171576914872511816619016089201575607104144549833406094371237967281305369257486252248321090293163211752145612900050265831950188405575665073997419197222122687954831023902883070762052300463637778506251155696176097734239396443591752030024099356059019219717480722867857940180908972476215828176554662204097035548489092959396547125041242131279947321172588439824258333134506481135282395958376962472245730206492917370913904640972282575055493243025331879601579384628903554932700744850266964405908037745410833825493078549171980938832419117726020191759996981228552045040591703886267314770748653852061194222389317956461861145936553581736316340834543581521293075955234159002266440527103466616526099948920247059281625473137658390377994882962038907770807214948146487031223969582823231058868882387807227569847232696045612763527435782698387936485381636278545684390343376080949267230595199857260038511857507824442916994927325206630465369846389008282658371919349044826660305900613250148429925233020677244781332884730681850712794051082407486892521564566545276107858758833623895263734529537472234225891582885078776171327462637104778740541496077520315842997673948664293681502340050205661041706822287417507115556928139165644080302428826998725863267678597025947932863623116111235903549488421369106901426704735513349905405899342515789116705786898057406407949987299762370450644184314776620540607209739887997225834174695483930263795557046435327021062589103036630336868552414858555962978791513611592843432008851914080450701071997230816356738588940694434999479947172623733407053475949134978910792249347889081719669294749242242771298679813860917725225201338353751211395482383409735960629898676909532253606005445973888047479515458859663683206377669145778169648967988090903439306721982859153354007031026946072900655992990948572924326109140417786017370812325994341250948459170257463302321637090033792399457669495278152590317944000420483367574697426674555005349299798087956955972800419130236449141893598172085180461041023674047828637019302062905265449451723846774862179251449902714489703894399197484833392368590417942318031485303301242310756281798660087686112310727758789480537632809069718558029084206435195897950068645991714185105357968047972496481333463770621009506864238138124576701632325309077427281119898050793611570580839848588625039771480248894363073189160286439620220389533690052281460267520385886203026039303089235658379265095395836428836755742764789688052978050358047642955710121055941512294277533759494620360833678305162913632943446325255234573006241916442449655833460663458357313291028531758631477497392908144933049505550647051231076530083829803307493656338651793464552202724682581689055005059659191370456181133852062335124087602339922008847012109283581450154218096877275710990311824367413966441462006373902725945397828776847371162403382550862815232253054242874709259365399253272140100099869324768553587348691143670087684104467731593697415102374208973478102106476453646598663950102481124377415768444830506914033914881022831552605128302544579221812405467386079012353106570660250587575433175463861825712437493867045933491126250092780261149125040887075252838085120299836885566806925497700276009494889042741915297713917530925550637850249612414396103865325718514631869597801948258035006422397667244834445749099629104997194258821582399921758377930530973504594818323524019558907357267382810834231946746740432716652474682714538525946538055117880918948199048866288882446063329111504839912772383387717847333875166938544977504213349749206262406951678983208325491811508386764267964169515864292284728533672432151004642951638907200335473927122913647825459404031823841602359729567745089264801881910550474349143367602024270498095011991625875283196175414724362160990510984094327183017010710223921187427687993580749696531987980258211615931414123210777628308962568090314352457463530833632854086273022434275627454160612585948472557488992831813209947316163405172596451278715882070895485004591800979360526665413938016103511319060299478997818353318383783326581436896496828795265457153193371972040494755390871078572055345824135931518420695551540567623460791349419053426473577338766540663355128056767160637190936589583761190316606331243343977153850021298441805107758551482018837499385072910083547978879339118047668896730752896152668501906124902609382270813080702843818818534948571655966902762022170548630717520525564571330514054172392277252711280569864273059532658130827820373684431231476993943946551446213605993567521796678736930715142771078086358360404652102359514189213664789877637689811259078453821224985940935456526756863998980869559825116354937653189826680677044409822672870906803745410274386522199710559740553187768817825429096922094169852616173278307974703032128813063005107384963107592856934868288353577428925682442566924769348069843567896464616688239988053516760900686714457607703566401113627296934480923489358577126641943632703993761021487620527192210138354849830705405061362804572561421374587687309584475464355058306833620593550278790981344205626795591911162466500796503914384938188222107231794450861265897292640591342656379102667031536040991341019970796799064370386363637980134052138314836799134320034007323396486555200996332785261609406581189303853813978499830850367702852324483446580496638559259588716572823640020955443735376005336541049025467981671496510308729167449983660203154222432987299811593450628645305136825106684445593579799709262467026342231791447130014943744304736122467369165176150443582321280066568070035333713804983792207056798322464262715710795329746824650015348287160891217664360806613341217181001379206149721533033002901863504673577641541592641153004978150157547895910658495861043241476646696114217889291009988113106798602807431806316424725147250530205003311753607583347396572507638117472181655395871058066863631375678083231179284108326734276929108550518959570340591942350536743081989993792176807360146140219045955907467684843136904856594277779614355543731247856285848251539410580359823064173911409659094830413918456784919770713067232061470663027201525094748741960612315409276485527234631251995810990493890502689744110864740986727490794820554344894524262928464471199270812429008860129505122973457857832932761622980903796521359722514955667283403336423112000343562358138698319229255598426596469363188560387963666406214122872515629706743582291143944982962518838704084282313121185631502696706175065824214255108646058694909571886430950645467209404084655624439612284793841963868874861241172679892703932865968418964393997377123916204820663888742873769892261066038677477495316570538341325422403728403034246396087506213078579856921350334831918768356631377852374045695119634642458001584629614226399085762408312092117622896977623797033886075158689611616433464924552689740119219274505933874770608108507560697288982361144593594733847700071630183461237759199858992280063450808003356344286950649378725114002351351623036822935927117983711933813690738014914212913285493139731376782462939674198190394356734609051960392384860812989754178275555570916198830181951617026784668933068708550491266188066770929024824415806475632514801581466897316075959342031783078325467737461857785401819038747590509348595579428255667099713823206870788421271178881721875533399356265627693384108061227160310374561674312716812592224130486397399965345808013166087053850877224044352500813102228896031905494193597374508728724282637380099194719119875480096623686579232296436237213514135231550808441637895802030627264473921654742592736230203774776836265397894949478270411569406722008414161932373149054005526973738034624502703078383353236515111820730724404972757086883021346714151304485144749273115636205090840231047078526143037987963139563428685820419016445694947652824751089977185802640201501708813504939978499566937834440167994775094489987826671105578766686295153791918099545810486715406487035399672634435233933586751110220547298578822133811481006561107296705903588969192210730333975657849274567847054274318301960010123812504332309766198738868812416784897077396690894653858333649772059337871780609931097938809342204905060784241230909994995798420103860405795138088899473680481390402054076996708683879603493379747147340707281464332753143059043662698408961601403584654600706283235754836221354016947401024891846222066800229113235797339579426428388456482813737194999753007464071406284814532010231285553545911784657056078320937102943555987971449108983594972945752047607076290354689332171328543799485466608056339500214926833455057153355510328078057542868836364355576655572609725687517620763125478850741551133229907011641867152813664347605545903110023515856839201703049708387493845451361769853246783149616891315806061575026441103112943398768734455331453825595148690235664300190997560255550417038318387844749473300759884387038717546843511350563438443582236923687422146661640275856344453172779725451426133585445413974576889035370498396029871303670438146362975529601311353315346292726808748672282908256227076936991427352142146218424066580180070699691283644364943659809911383109909286267691408387052594463760912578157865237600006174945535143654707649321338774316109283309938350240805565175644460287452222348413207532513587732003867131422772961462040724535055725491769952834757348483242928517473710973593201758726751578054931439834100892078896625723144984416860916937610561563359417716314328213240650072032456762539569785744706886819313470345041761594555964705511880409553612482552295940583843041329310676341616317249026688266002856360855722949402317951631912353634512554978717361703458210402798140913741059176530989478622474006201859847037800795797765485884107748876533781346570347700855028811397883822266346656743785145261813843622596811264553794299667253948709724707082350737259661032061558992038960630984073281726401657820520906139436919944209596653259000053842100847918485565494729530325019816329545538253696233170454313475798347248130443056469009070732904075932880810325739039236809423910639106704091480481674577670871059263954463895579811075577667670045989998466413856025100991740363560209036586837068601424703610190747791710169397817777271669180257075368303741977299974719706727837609521799770171884674722579290689958887954315660300156818910547717686881619705028444835674618738675484700067586066790604701571847405073653635754455050880892052800409851421732378307072800749497813326719222445149830409125898529981865830771300968694411173505853061617103410689423616461619475698408848882822325911208407209584720548569644318102396645579357605311776058856018318270505857321442187197483766455424426453052547869130817917198326007884877539203319869490604375556688721233764247733853605063787077132131311583308429714232908062267620658026482709897918414800072325878279479251738768301460539210448639064868485285407663254536057699625549671244630681899193816181179287407728552635706994676444741995427663835784883481048081860129427248655123880138604935835874869588563388628660984577252875339047552769252430388073986338419972327022168252032808302199682912511375603917978857725124794070171675885440182900437180602412768241761392103056228759142643345133078333800421696517210593166464573108320918005122638398795273595491394941192927120495964532009084506657470412607433776056365382936393827967046809690037027394339958904159863306601937379953711480274145091828860083773199519530414911719786466205357253200804924077005881102012249433324774456824496151348257652713014117185021080988181736726783938014237139206855586290758937018983340288497876715316603939355031099188960236425526594004419081419763087140904436548721679950740651507353362066938037074322239309352835061090792911591634409487760114558109105334427028600686931476968806322853619809228305377042073792768646673604075220064068589786249537903004557810721749490067967317287951195850037247793763370400973100812853861775383087054180101337414759968653881179842778866386135718176953663021274606168257092804806245902728076914346687411530172804193647677223267690702852875563303277638264069443794785119324714453605900890327587796003929707454285095468900827195967816221720342152997123166704333089400289896243207579216757961948932770045535798128723280902733604841091628951302853565930936861495019718318181633583571167543257112163825266805914919226031516713433811751430393906742627930507059060035462166283827894923971871863925256577786085393963833361811036082355325324517362890221594709964921147629500359186097223195732761051917986808864482380480342901883474803434740893050517141306536240516922353756697762606120696990557767310424100685161168217142589881558227208877466932251428185567377056819464930248634288427310121290871290639691890599871316037550324450522819530656080917621697493144147590861019743993936995461226935358413495924437699688537963036580424472738311373919087579054029810847984643283453934658141157082615786396191166788910376865779438225419680241425672040901631619693413140186563137469766110388795170426040545062716209699881967111523854005924078651248919562073356272136901939005723808626750179901917434147143534224534017638936509308213075068863105479984619105276334854021212964959626856852496229450378723888090447782209043676511701136841297933686789624657368871612798390888059670223178840917174677046508806661951925340734936816155294605207517460326432915385671416292875350479326375483560395221532181551891502065354230892220303985610039017019066885272937441215796113765896269394130929890219850955270591135810040728552076902209751535187582420371158748905729960131482970981017441583945192805229045412284564588423559813625050657604365700234626170141343028208333765517357497776438418121197422512413756169837280581568184588466916726705461316142394496099083827584445260691270149619343617474450777569117634544410114656875496418842069344358720283957853895165890450447499362516361966560216793467478125957248314172805294573645228198927348535657502797167545105276867042870386495564106823123486563526848658507150912044086949493392205623084864559091493778540301978010264281282469037673579367585011617611242650038265222836687463830956942223248409088189841913074183411659607112637647447262642625971740160864345324704369012834255674929541370450565473370782827988747498820165662744713925365609565520752073856030893900221052442740720679700046458524361951172107456000193939115286870575035635215188159998197813095462580065739126269881432606144277818863045727789355634090806114228504411538813834190616005844638323691581353776626376942531011556201328569265506160025750734075600038608354584613411224788135467726307167689645469667267579212728882005719396533847749809608373961405479485777809592096958989769355861095128944851058594776677046999513205125779267185609245339554685573740699587969294592819216723113758245972356412128237483136715723190080247093774045613020375347451623825129146319238690100432266294427590254416992186554966484642273119280124476487125189831699591670201437433029111880007102790968253123087159598546717876138791076812459043283288674158084830204815422791675165084932111416096860879517241139862748589443866347136248656811775820863160918158457518862115786793098229770771273024046617819476526739465261101778064522618598668499790495673766458460902431445713841361965097805963885394489336142881009585013786322644476748388477701949531044539183778410519884998915605244117305277764749047697980464160063077133325783563384015992255526326043494867445092123054088390670581313628467492854064339411526572342445821195893516896464078705905236333865353939497473331897907256896578152206605189928131950775557148720613559585830837771456955225524505208370916803238645245084488297511308803848024296092284982701727620874153669623472468538699115836500803521167168964161499472219078830109501384463822455302245592202206093127086430665365322826017938924726442493069098925561579497276816689145615385105602982098586633780434304267959613589249463374321599112622377654176352279122968367442666512859213244920866960672464101285325495862862844630254941562577354666207409149747650095658426817918056141861695456277037199359149724861821850720124890067193080478566210345409939348813815320621918201568840411991758398397446641319434516226869438488805376155290363377276464559607735986191364246225892874764026531118720349397500493537505303989887112178211839356705544134021887149146838504910881555846051378646517168560970307666524109492370316641850374226545288704973795673971351800387359753308915028767462071223764384128434476066568757283407095381349282087663305479934926997189444431159831334651918630880113201227634607360728725371790843371579884612367489901105462811620224743148274131612561283610792963303510671991681004934850987893375223018324103732306537400671042621947249225976114490829704948060479012164575182769087469985611865592247419461179969662573190140180137145845586441536990801671615496934640037698812162670160059788983213127337623830192870125221243002801143319962863035284639718971613136108342499483764316946832791505398728373217460057191053713650301750440189549367386153062907813725672561475410654644072020465612894177537728393698200043142509565086352723759778535854330033497684486464416154358989090164182914955098474321009418900606605591726102176247330286765021687390231704349689804001867903781829920814949242712302323026826486289978169859533412517423949276779329397844499109981100820807521769840163015916128091723515076580354184756965773914052563768628247941749422623555453296286262990715178086905844660172143003589128100944538357963222544086307522053149302027659791195486455688608764117561709282685640238902123366069584311144934365847705637222008180506520119360079952178752194575695542743428369303154015106370386356354156089574888436421804666294982406980748921279016737087563261369250513190624254780791539399324534621607520227977642685270914797311453203656309671082794557765908181509250902926925390135126628501648277948153259422889988077022542062557292309780641448842837834349182826331613763544275347903009394982045456191625830864347731214084167100640889100008312120901317486537400461271300314447632706370357262967358800075084761711439066870811191764591820406632407652721839864966001863447376665287678238351343008551119764295043030442638701678634339885313965780312937831294664191219837327220615473758618073239692439436003806959716636391556586964395582064024298651321529960542413158363953613654417812982940805291945659928540837333348085555608605419915089854661498299845399511220598782627116170136591196276858291277138853886656631933140602793538995163205877901688414088283860161080218592281936460028847876163178440261068021352240713116911173969526333870691908932734323789891809378291208930958278627993331754001859980050247379956643781847091869415830316188137949237725334071092710163231338195066637102569599615355247247712271817855620956658686622168305223404436552658194524470739748663245264661412508596909174144857889795013385634049331703020438544032704016562049453096763821578895436870631254860487014539839419119412770107915282259142648730962341580665015319970153803960134056033113784809202553182857414769118186049507242484737055686101147492302935914451090636067904214488296737315024429535008554705868900775192476574683910397031279606484963794895157612516951631983385125826563424401980943202420852861855929064623244110730900072541245281144784904785419104784965207528790558756479916210755690825082624616765422836556526204364264040433228153410843209132840755721534924155683994790987891180878696655584359056700935156138301084640639988890166399280113869926855843751784976050642867771725388160918097545276559281737423342240183663293702613101098144903657831841474396153711231986076099334711861356548729521026988429540480321540558695947872352766271842981928868712386692459944103574369573426475394289677734444653102969889385282177526540038099255015301039202708939427696403703100078647151779218109212384931051756110305367794824288333324951964225520426746680567294447803724283918666545256034171903209697398459712798291179261552796584845973185221733159574846822002613979349290907465088272885212452548152156674031863054412094932495804652530083855869596550283217155205031401626870000389121889853831005606444206367439342691224498207442585808327232525759935815437697040614280382488998611605927221388520977005192212681222479287854709590122468101865550066739630426140752275792840581676703347691306423431624962149756285862492117081223336012239183310343301291553117084199869461134634276710694614215312424119377383552764314139985180522397384525209374227577300790389005022663201581855331681042536456262762301134588461048278461328752077184729266429571333909365142837657881603783119158208555581108236718273447028767037079383203175233218093443784637441272145154876195571475816781675234442529766161798649254864914658785664233384197517555105133411940720718699321084726980477066917860064647251213120697895689453780370033564799567923062473249278668726004158918671211265259477274852985336785972550100834715286861975239143081418972025564421585965158532303057535457870802578646207445908641395961465914508910636175867971959060471739677394403982595714499814213539989006739691697800906753572014385369983928978005356690459719240298450858818571521533699336943667759788350792613990915486768200078283838456656247455954617011553185878734729765109024495245150285376329123304675255671296838434175562691744843890388457507554825132598251793159789108405344217875130931632996294315527261276146011630195684341335093761635874944890742593837135079300694682321795833294416835216901241356654482939861931794595371500955881632919957951931408465827769949298156487947595836588452672408032244740087466680438468735769188067484559488628180860109759090831997755697679350488643842045874136566495175428395629117367791196409891490856812586102241581239863152332432237089827677569424634883077338277573790366211528928778019573198288896987328507795533482239019394444150001374060839949200041533564695831576550206395427036066614911207619975202849575195705746672222097620070573562452785040724343111006652127194382704403208886329213857843235638666848268948550394579482252308898375823370562155181848493051778217321832070568486600513246191793467275251227627591715159711021424141173504367599028427244599007827355960428227312612545050808607561730565576329268591911258601921943951944292586013733331862640537158145473785990152773509914831636497255885802809067180086228400511229972601262384682395698048127690306910142210333874558222745803181387437606490274564817630415383066516015990407377565516076366091679875368674673784040779873031095398652323543474069238067369560886278691048898375910894627672198139447168204296871296683422889901659256807214586786157171465859842223637962389506734347586440873535885456153594827143555926208368033586246646444565680328562041033579932525482366038123362354704378408233002466279692219053741225774155507973155333275844213539097038007603604208628041005544516645167916822611885330416771706883398914297137339599242027557070970766066258022401878510886478783765973099576027806219400306870779871059909078527047158190893123728191386722485425208022341448225537123446816137960526455446560416428455459726167741348486447211770026924530339452034529078012751472772416019109025546530341810763845595909031547214992032034533585036754657752324413161458303901270126400868244676535865174118608556263136511426705767691284796666845840333370535524281818170944502873219536622349074733197422491617651746277607528994051382948846743993825881242411757945367691498547552355320680351244708756350722056210632282954925062230288547818122227651328749801997974771783052001343511510653557596857144023115742082930372663260718331187216931488450454035838195212567608584161234090797660483927564881711167976009129363204302214985117123717630436614497288050619128588023711392670679819474453943405327548785480129863005476505932273333160095245259296790159422660078369454350124801995900198160540632195279171540436250265087986345649108743994227468918200295935047179139508467341111839674885054769256330521997767957995268129940651198262516236005881527069076646421945643501889981838464305698331818621888943390395819494534859956123548739082128452712350065171382238981026709776635508952198139348378944878531778030488379720289279750936098696134331965276445425457640725277337830316006026615991529459930027143850832414353593300805228354099971721818711997034870768007366793438582700600441659444821549590548088854661369318775225459867860938362875678650657708837278182315340957215311507278939514121154265819865259750592839542460332411493145606157825241950587229083800461697987046711929072707767869360996954256694607926974131827967845654194630411757398579687756544365577327577145054516705277727364126762587376424028210447308571599496113921722822234974310129868596158384311908387138781090840229692829435749456904648545917926747235786262786853787495668658868589061723402003580548583415200749528215159992561273426231267506029937765007156934208557603896486762038752253462724343280275416726194228958375168810980433350445167227115585260112156594676851064596750199924716987842221625275762752866502982442975842733078260177065845686433379965116632566859645828448840485816159637265302922400827294414141866410102371893318177302919505390406449594833209622201514582538947525836822468134084237707806134239839168186432526165043420992496616885212402394236199447450644569379226677912007326085645035248689641172034904659232990967166868434979818430791699095324089925002970681689453880862763826867265489934703587333408392907935263646453040763302362104353341337916168230738968765441784335046026895517787422528002438557428320899358980147935312205160485460487545600485579323085147191643718471314898218990094321114466566998501615742399292902950137198907602381222278510265774097741055094817348914001545147620160568149099423355829516798726556147060513224790304828263944227084780176365124741359882782073289224830428152145425718387166968978430326364865521836194240396080117349597676323834495678216947330304059459602463756432324721547469174388230746705084791720139504724186364688130750932261421201879902448090039838364957611023721534990442306492246417656586782931893441359873362718485208068268111765129637838776168775960677433450128416781574024565648259570161219694265596676870819730430980767434970507026123393562748903563193317172044382955445063085846979930759475703658437758288413418502833050769527478646520149553086371523994560160584880316686965359170477661016805581915968773192385030163748862385142218437658516384058874881933031861899400305558410724798325731556192060802946893185551704162748466578186972392086648299289400220547431936135414282520618095904625901946087531626713253027460482296996768153086640126320946233231257266689230528559291733360328342737591498964522048104598546343513302981786455462315494317367775700211279867563065170662088103998617371498493093228482305662065907247538942700540831446569355805462624374728062883790851635271840787147284103385439587686763140108524607635619960414155296840906169526912351669230903794251733206324556249196151186962332359210670567247662306254658299956870443287746967057867671137224667083316457016365824136714441953838321461562404035954313568834411932774403724715747647517794077797318085383292857314207771600515293956789734330381014784917925509918679752156547323990931589528412706078139672724405942203096582917835232938083127156969113337050740916600088213410156968434753426567231116135771151682927059123408768439196153812820340909719729402487051031493154858140032181040701086696743834443502982960087889253237500935075956286708241789632688189040361347286988661497460110928058735061170423054952946564131152476110584318271381798881022048574693945827115861482092667079813691613511605760781000462279881954435201394737037342054855226709196922701379449933203698681760874912213625382708928059700826636973770493341333396481088297547981589523316820803045924200402056660744373429631120068408758298924187551055200042035712057701279082903178480597901138211572512351765960969285037284125809456851612425594542163553775669571080632926645603930734421678424303310690970788363210054306110601718235191181953939665196444532453072011364724788693125455668900719567580172331131359715040636115645287350914475790983534713712751692443142421786234621418003687676255171408952608306831534914120212795674321138503584711900318166605611303415137147084933050406427349821354000752660406217110266413066431076007191947480087708930792838025049857037537423677142958640876563511807206434217772531560791012013383481750451965139472349979205686316576747861062586450267387064903988057546349661192105095951143563758886190107503910870092069038524282997524404233099193301330489034709822752005789450734412004701013312924491393120801805304352955125014511333363132447608571092266939420745526199649022731608239630290753336874802154851942739485041251351139065936686491678167324591234836235400843251548524247094827677019011120816006940085441951974687312128201924259068466594561599605082801289934073716657232886877957259744441892674161607788503923379287784873397926957192681165241345463800070015695036259756245370743131816578574276036705236894663806988964530232927603259768096017574351413758720339168261891307648322548430903247697035983243514595125903173104423786384901974634662009546443677025715669036929376496464018570943294769171681471351911457094922344336370918279270550067257141353905435943231846240796643220950961396950598407327389545420291846307392479182873650833432542068564526491262567327831713798594585914325750915220678072556726607454115135730486278655071131505184216582962928611381824095889267437258202785476786008003647515161430549677428651164078001692403175400852005917666631922333601400725367856126819924197701972781554967532566475046786527036960460771977511059151568331937433718429348404564030122183692585456035562285986502792389528547680141350629596977360247137108898934010538575802101036342842914963294526589377771989696283494196865782257801668921527145558807963567038968778239628426034910489623098524596577454431926081172303381908280229685754644605547706227158800840359594653656023704902911967081192175011206216771865123544688560843542245401026805272357510578293321257942281670622444692578120109692765915454810743572271459017935108770724557233891062242394814700518984184444260749351721186732700249608665184597300618783664056644700062871583838532012711556534354543899242113675404164982280338368143161462751374557451012780078725706863868520422192288831699411903954901816356177913815558163284006331097317806248606488243075654659678812374945135232359833962138104523034425230649771817141172820002112818900503233931720263619695663290098749061490897024333238107362766540694942551276795547946126333625077445753889436058260106121962721282183545657605543122609101146957934193986255186380761974653454476003779845268548639960521553136337646631485396241760790059241375860556629306240923588457613795460363360571638968674158331265119502635052822666877652041408160809778023796650369507548243416717155190013055850750078802195561125323928394254648999866834611037606086715234275944874603946835259502190470204462926920313704000972925782379793554785489162200395168843569763179738918771980824535070963269936581571713109080713486249569420668878240595634973789837167061393782745241327564692198419867358717338019677157986527454583486778167746249809496443247313205079314641519173956734372349928910437569022769306116937471622278488799992689006749149022101601049242339433410684501759818938655199599023048755870627986226449778939240797891414321375893618663150902622768439600368401588860055408875389975586433897037741734901886637595925626499765639599602863909725510772946093268400397940327262237595451079394242138356573781210492382894167272924590794525198676484909537417563032517413094512327183041202351618047796419647483078806486018608287753804376172726256085693451834056261945969299351707048440976853219892395103658142121294559470444497212440912361083861749744664847254135420199327389079552039621340345774414773313698826015747287112064244621411617187156515447543512437938695530365837103402362477520554290652637966314530904037984721616161048109865891221195279439208386941173120909614881323264123011172560346459418403629902284011286851083048805631810226904221278123218514462520947354887604980591609220737306490454585298725453254062507843593386431434259132062431075313445554531891528595999399454988981565432747852006108392066211289635869812510624042785916061619085387540671714200808424072335237103281125262398305467447084126259808299574365827187466969864009271851755045426800202763956260066450839548860215443318557571001155759596829741208500831442050662389303512390709790530190440915411327213114579921889467393985787254175922513732944795973243702568230592314924540948951960644288933994667047766083457777911554963754929479916452896845131985489997210010570380186489593694863280638338269939411703880399128394959174403152079177936067327836774989831709422603558083932390418588704375869533270422874372462537007484478563266273914147582603240608213065976322936762527360327007626243524692605718011462115831469466203294701989083917263787510729735344830346192884870183831401323948025092037675707373317121384820979332159922078896693774916384849408942568806757681842613877730271624660076395997001420688704893776175038316138883405207912163635052934662584508167282016105160952020792446623125284166087166787183176091369954481359317829619523530428510812906390182809828982767900060170200897770472874128325647673610927904006958201943326373142456723241143810543822696754721005455154297053536493864964510837977156199792160232997028718944100707731212951334096138524441248265833872682727087623537950165507323943793905987942944433733128999274481443142212620754538059215455132581079710642295694086410100011390254739308699442809215536387139877600760327001180009838275019214763517087634503377419015036367938865058228015675460802806511455453407385862499337488895145977160964197997247205623835412138827469803867276460713824356574135645713121506335704768867233565243531300842850206224674014594589545729892684538835476367835037038919762713336171115094570781578356538493073680583838292153350311385996123232704241603166431960132151536594938945891293516837004635285372175856568748065040131356582215787020045478162554128351886743932030808915998761037008600820151003498600748678868782556528109841988200810807374754725970405396138195012607231417822950773050286834656655371039428178310738389101499008293518636683584077893568128682480628695238502269386509659624008978841500460918452878650327866210430700182557543441317728358964139596486985359782015124996493001761272105402249661174539632440325798609476400475393138439522535146960130462633185902639893685435988940052741554940747421849785712646343855027259976381545472591663607407825521416224549284000697978512448432078472773591673510382602552342873722199427802393734185672925002787250247564695261522636240614162715219004091042956818310071885155338788179132233858107663365021824437072505421542885083864906652707056122844329876626696198036838516296966115239301943573465237231880454794281423028862904333636936065885261724161800158540445527180035403480260959623299171850189516158860428201225169499916421617252148434706817185952523387845197451630942623658994586855032164649015379094974201369412466746195022510934179991731108851448339780092782154188062587852875973071344375093582177072597277938555037898462329468468457245248629867522586112517014620608306324104082980008833274271724794211097537018957341563766178167856075361495716471755834907938573594767956275529106431770810326064968630577154224473789930685864753424949909044955558736979217847242560707569665716084747045189847946184131068822971915585128473322568555343011905494899236133562078700725106184422445028322125265432215662957437341757354064581239285667606879532928785200789084050816486655826319723514857892532749476452519133693568120055385941923528402055059602633565194903455493869971665703354030199477998805686842669619861045589663450519976318009883644826597301316743152701549043967865612080511724323437009584548681718881219642393172273012138070437472671874419171442178100657338628003182800324818407058483861265607315803601962566751207402060260850818417471499734077052659038557413133385175893465090131117381255235020804393363353954235889917161244755772215228342947741007583304315134321995373220035925166746288416345108747953783188888558778357035519505843753279766303838726402714163134493367024316764032882567821320740007815908207502248594088464572418069831627083822753672588198894953327174909850733830833874157743029678155220672540865176567979491483519219417650943860347635697584760120720297273873443300433239088774770049560310716925878851458502614921080186627783993089430134969251282371134937441105314829968939586171932734754573526432221252465724828377808585220603052000129225532443356934708746800353507193988571293642999493071908431996696586812991400036173098769899562157478914806834368593399612646758289972248856839495076166740240050201946185930484253380376245518801915457507557050219915916743252058499943801364803333600367908702893512096666147711271399674060969664731188372098045293079011439375517707234099130029481907108538926396785813837870647969794424804896830624665561895419170741328307795289841860863563479360258033016672520505080013091521871920896571595645039367366293663284240757737570130234946031209465751083431823735861189703572308820272184712534875055687469214351555869770864751409981705098600793890218988125461026989221746094288477220924887268841080513106430376238702732817630572802837342366763817900813647716152931143931841271075407484519952118233805424012860014894248702311265896991819808853883201994218484132424718537971600532115484172237187814660543130692891749181963150494647786226858326162977834394304867026028257468493234363337641121168198912114295929501525827336938605948338466053102146693730576915532112770960523068730661197233038862047031769872733232113863415314878505956430351548065995605122678972835151886637024759607752251381078422429675819562165372899659525363556626281868222695438452068478161819712832243859539721671577615210581525831935731009377272344655935426036168167396540668347610778637741991481699668072966720474503249258116507992771211850725671934508932174389458960967126958754876634907835995519101687999117425933299698965884618771563292662492784585789265890321885791747147011596615037553936433450609423764115533708089701879185218865919042815379168707553231881169795760289056697826050157899182207952988817031368538416244579036547806642560438911045499274360912129223642939206637834362561327576985927621635198013078445636671931001871042103625008159729782060306954754890522030562274228222833549871843500742329052728903309841716790103102239003857990690946953551018245318665226607444134092185530444673939619917225756024575513773696132929291935654641903812021902562912866250798654948033170741262613431513384580606052321150312914284693698176472263564851286291085603674162719402357713433188427677885966413190032696804575339076821618918361991535052035518935166113691193919982886285722854702947682483648735981617584149970909758309590020118396048782376828150889545650557093581808945523368664934950176519459788551560991914495108314767755972979086922767163472902996167734414231439153382745203004810961583978689855832398739564453421449423200938049075396987327550382054218343949226087562786420795670252329469689203146144710946622813748834645306613217727599969736549958673344507763649414959479659719213929225354154445132688387259305419965199456535538906654021375362984402293615767464051291540848555445164515477875263615849788817030282653743471869032031989006268813744512697916273310093446299297873806874882579479972540178273998795838255129540772653419825276022530220330611624531755741106213144532617068729882386429161710168434163591569406484107704646621558459008215835641254984905782021685954815163791749664289639141793601378200216021554716952248970992800283775010731900311911385826112253834730714308721273582629888579504392131500431716830228676329592432144325741116880323777714335854752169617799257448173117249539042477384449572654434635817770064538086529073393969241045821665236750009617142887421838209948348658847975537869775438539534682826564342150346824898750859454485767517961777318953890670736595667996926175228400458319152157331742035377299529772680257069217793470603134031844218564089480122417967733208238502783325700074967086174408351092081416793893738595162024759943255343517692774073990673365314552807143187852011633344167948913335941065229311460372798633592954494797396827356251080689966826003046693056880355828582639166840863279144191734638157239215630132411563518575915311487036589245106683821035105625272630501719182941275859181815590125659362368439614895995065750318416395931442466220397097904337392055233517608603593505769126772293255894597034478574469394588642615675466284524947114288276305792984858050876282502493125769648504843788779156163456731398690252679660619176115805483988433929467600231647971887304991804739083957356778786495416761268465782856036438165808706644326343438541761304548894958576103294396673556677396671388935702420439277178715961274396076458531894378550152001200111298408945228415215371049321454754374675770363396572852026784418993882261488586404700528301766318130335837567117859006857969091872174361259672143944023950273051522649190994029859935641966564875335309961400222962382552149224333812246779088606346372545383078192292622460497342296362264752382678632971214931979407692445691891082073345156118211988377029247393731005630194864043295829271973324081241092855805576504133689535386881552639848811234660982255362905768529608282485726200779922889031145178986757639329237165095039039637361458468019537407520508415416962686720088781888223309916689639890653288486731541471273924913933235736124416256689247190839791264368567724476455673534222690007226845383525398007529398203802350478140291085546176172908817661314012399051461074012577891110731972526707061842732361282146287975250817432350492947149231059985674461219721015668020096981050214847777776004327747243860722060159393733066621187886882748188284587325703538327524968555679459934181662886053626586687466184941809463119273784259701352408599948882649630065434751210479691751662222895403990396274826558118024793601269376968136057960643489311422254221404735763310500122963659985091803967054561365644694370489738076966118141157236328173553151733781779029072038397503383829326122016620648689104422409018150079506623446784849573160497762582679738077581943878732809017695186501756174928268389026091848951357343990761046438088799294366813752995796372189698834300181552555350058865371211925402002914946005060748728336783917631093484931841201442175966497116148275301221099492991000628978262132645136498321703936871152907363177396765921134589549907629367216867102255954560528420178494728770972536168932642147511996012608047292924952456742035895426469311527703692854714344342211503254414780447653622612179900238566007240491798591456125719928913610780899371899779511088541165940973884876608211010633585204618355338548895656893305085741295964276926116577613629237452608327234357403385276980910971629162602713446617880756001747243906120101964891539867001983232446322283862668520408203679967206337864624645049408572741317670368473025833683311761249334268678258519730013564464991350093732552376639487985443466487184035161733320414395509221070283836106285015788715348023933507550479691290786500648371327111976358316764456487134595079855709090438129095177983632328187838739247491040542841238855930326608787452624759942353027143615077942677559081789245944692005050302342199881502573703611373821606438092033995340574222493778505392561550504281096285534868797017240738937870973368468377313202409162226010107038917158063565819727112800827373979518002146407613163268125484897750395549598364357389793568707056328180432484127745404960336235685608499080788178553087704625886227323218803791517359954877363447749025563431687438744206797173458907828488439085989219050427049208505765891575603248026154152029543036637429298962534495293903756195148115736705221571659274577398372004412060522137136825531430027495104140174963714388174623041832313637873480536135672059250734804637354922646935219023993761560084306743736206294337420037668220816290434464797979623684541609281881460025421700182850451522466377567086959364210742419066479325242372244413654001530059381808708987801350478405586464504766916979239719362695910155267770662722702954509984895766900121691528355874867032073100691480165359226842051254860487044753161872022642631976328044226009806609882371249025997234468311155448989099250144893046973597661257843783385052935060976192194716837709747603828921939499908058886808202282890211807183202849681656260187573648596190399407353569981838651802901715521013140528908482569589379557966026333306143783292795077089618538814257031837245977194895127972143247618998585792805768072887214915048079147081377923550030018030195124239968003760020430123367082966958486003773865305585749776048158567799741007068510767708462465477942551477577457545781407209350405310927643966743405908411373787140176075976084544885638235427962739069198967818946979774502639353759646794438325381947970214169283464628481667962402470448681012542035379189006060016664170836929445184344859686125664790226820759862766217241066738533201232295811770890707402288039806212278835683602285494480542825115815750919602274559280775878261739828391233900875573710031400892689181463337548203820819307696264902088511289791089918468102608854822747742409699003274316193672730678602657978779326835212088936685265216701544492499279209969953463123618933731332267274839254813941630550989184360851742205060644283538226267684885526835070974620462058623100630550480857103466738185156696495035990912418991477460931007959445115433626197318016217877880778488659867676576851330593076993633825789683838290198090253559214128680994744092574349578122776472569915091723177411079037774543532317449821920330453292173307723340574728026691299203523952180630606357157192124217333899457466643936738618284096344666743343275158948566136643641531028127040229406695937948019889572937119494478145322501475881353288553959741911083234111086123107348509327990573705515322479493220880503249764543586062703725155488462104203614915135950588208162301349855045244931325493203503924767415123952868483439685647982236876255291918633630518987141818093673166578763639115811452381203154375535295535510965429292295355406716289505672280368746113242540174127690726083280635118051469544812902814601930745211305594267296995163738285827265824694840374495648507198840292502717659859639146893597633950977757656974346337053290242186810095407395991445701235373258047251508721492308336843613916004418056957706465062732491199801020517398096587913298999333682487391105111067737910606910004873287508868023977975521143374449150437716186408168286321288093624711423246362904239599401606006021368491905529145351462423269436053287230952944345094797686513010321695023987867660669020267998623937524769357949026175949439536602637141352443938074921674413096657629696410686509389696056972173912444877693152171215559777902257845952441872266399835613542286872323770596757086185978663300306405782471323615876483903408340332793490325020098609244160773170362863987797361714592745297163492197249355279564302598607177956569273737742094825461983669299549368669138811654366206367122780563992540175579749208222303472103816433648796163223396317764614995042270282639987161593150941016048799263744918319640703952111245060416239599042480221447581234055047806958476342132203773653103471647545651701315848787617608727305664647044243824415415600044060333573135909514695636457603180217442589177330016767499114215441744783557496849442589968461711781950028904644665704261961729157994364109341154286760127888423337609847526808609632763805596086841894052969557313526811330841028769567808295697153682230599182126495439037851643917016535410395471367663005531980632848242116027996922617734711169128832362920857606255841024998325624914641792068623530711282016081626267256923878362232808142848136489610178652227769659405461593696774114422616754704779233139369170642847606178571535621914022050499521046866259750109177986940700954947943034196398991608740296456495900907361135118519741400166593597712999701601817363340413240361051990279509076850208350694945954506391415654234643278204003452045338322073315723223104973038296867837452671793965207718159502044549276943307999038492909862727813717668456132341208381507819604083490155185008083185065505404868032497643777827264776955248105462044639135207028114847322179783945749967442795311891367462355023162415878262788747201740978415372324821464916823209070876188576356482159865369966873520054311344561085063563265441003915392661169096334955623300716998811592845266325157594876662293667002734057179062579211347143651749307725630432451540665867408151104527227280173335635125580571045792636341118566532634136130705771553631019659141697426214008429122557694313798660993444301208945310456258064542076834080280702854091977840863857758501097204878008658139611337149796851753833834895490865580311728657532457169270389390887055334529496861872885203932885988082214627834342805104204166107302716426105562468895663748746230689710686377826533763426466362935046852902709847734404209641058819747730715964124310275493450530430162718479764405198953549732514927282723357160469449022568767817505316607766842109968772252891712189999338695756161473431827810049511111345757808692897129610804217831599982195315977403229243369283173828475798849378782401727815796798237210334389223446045652060621362672823210051003553688990137109529816711767917686215734762841304256497037850859997599926956924760044712035401782662698688002170446772557234735822877735351121412184197985836676934237669329722572348014475492496519976546315614956018977617061423297709607614200920338213478933968753286712717477525877514106471101113261538420088612807737662925196234695521884831264519783998433387366342643192426138652379066251434626066170077843103789970839298661613026376544420064659873569241507960850691192158584867082503366076093091246078792629995922108069302837583863102142846196371172305134239712759420126667328113027537259882922852761204460004223620737134212201573924660410008402755880790788444135617021322694209993990179623958752822367272826599187942088152793996469462244997642825819841811080733560309791786588356023956918543911485128277076471403039331153011919742756831137302413620485461292584042116070312430733010953374085672623969977005845257100054005935944885459290229814978156890422558418671923891270616064827454275060442311564074906398130788180423028946992205941361929495331259425577951087369139728065640381102924825952050047009414640789231974866251913477675946781980316423595181625078373671416685231648694387682901414294791419533968340615992300645252558100765381335218038718568746296010650885912027455950497947829230509246292948248525563561263404800314059822530204902270151971232723161624957599715473187183421266787633182649848169276448483306445807281939312344881818249002179559871732428743819420145232609171025148871150887389153400726396076355973890275522543987105004726498750171694921417136013390319792829802326181714672138837557389039516448083560577781485518965638206542500178446328345164260328747343385824229362297793255784141235792057138969531405780620259204981656192673063052151832975134391369836725912562606369403275436281784104291615207868452661193305868801243599652256731765678728272265747653880301128744033130923061684720817880667891362542348121813605455429711971892303945615388755832452998624793371962301064526029905877136079902614074161755594111616184795986545207852765027237497818600221636801990514748644718189974222380920823620201846443825040422144913416679756050287616190302725431617050952971608094410355908113596839450961641882205182793333467346231580719453654373011828489079569166778060787944523278023312142501974829392736358467530545993262499306932239857671313562346384726585368762231591959213167341587022918520614947266394733265734038251279224044287083496426056147792538677745314065731049304653827122773005755976129810995486187439225675313345105474243972814784331627478276658934502060169106476287479736730350789212443154190617468822915360825704546507868893093170870483989297521304634022703908099120390972801662848116831322112636743703761291219311821891128744767319434659950123511098571644979058071508515782934912229342005293439313401965468606164296825601823984429759094742899434048183206037763310602501011296073741328308946967168734522503722270745687297781125676222076893150668493864611897104847655468017488115318649988019855674685315999695606023110662170011288850716436989948664712938890415945166496818476568256285173534826984897399486372320919173480069707594630355433235945090190048356693854212907962824808024269720849490422068741098017590074340713049143731389770124202983604585002858232651571244324389422397295663899775572328728989877387007706757254820739917268066430317813735503675468643304959573263361495621337350154263435286480898705530301085404836648914565552742444007042506183174916986854398364602108006800496010818282462502163714423892994137160856909305745914397113215559817553732576087044602578045497964391927409744770369964872519119609379076786950775994843349595711586620061330316456847754235373338041030563477930217780244353867438846605573757857525431404790943201544826376189679727541415905013807699143168270934893616008316257966109539640173601032233219406419231088521675651984359429070229345363118046397001666690545267918323909820308099361100214962096438427399381165621564663366268826967296734679849943437410636252477764177236758393806996970276634769824550597795668092788429049324880637604843483510075899391535868500148585254349975190112234552299379969859337097466489406199393104430699034151539378327880320019764103869003308934089168710771076791866529188742738558734766584368430254543739341810668174996218338787180887622479536194658384048844821472293308558849412177699001363668135797717901136570298647355051274155652919828831666720802257729134858322210459792708777709414517373631378254205070098545197714917856341156767517943663370091447737792707321477553313376942452827956047494135890602997580540542272406468388953035978393456518746843931134578587290588578730630009594782023690090510129684620316704680224578369516519127374728437966060266503519569935632852146154180334359419908696082621617278934251059938433418657666988265130212267317033822373968227767900152760550284308067049601716577975330702175188978269857121022234603018669506863683238107242533001105457867422051585344669962431557524946352157616276321010788510460292697919505840713085409995812554770649818647641839375101208976756340959380880166008987153771177616355879905626306248870803040715702125513377267481146059786029244130957055521340544613113998077153775739400788847169785999796920798661228105389620329081336769510528334622224745761284709146473064125274183780343180099128349407391071183313387222123206879314278673707838591885860570261189017223186108001338566513505057442436429096588877069547181719937257998447394792021876161174531403628513966146093383991596597378367195184701221626144083597913527757563708824313192913055344371470895081998986744125586812995426708343435512849541375951370055312041176515965924369060453451747045501222343924189009682886839356819741898655588534500781716580014306600671312043189165175254670599461212479519017014651978279216182947324713490221584263839869249686475196564446893366199874049948896793304994787544087514823140015987112030109980342556996158369158494479900710163184323582047805847280017830866728755146244364917036558019554793492615735890247690559809959558614057463054593603567420077190093437797475457583527390509739814662490114793200547466354572288552515886912270314508112728834030509692819210779895664252051869888872765132760950229058750960219725105294548052501136303885245833861001135167076525153530497214561557971955604452917478426755544170068300437546847830753692190228705013306633789793237263012656126288084175997944945518329330896776492504960863349687481819350035264383735025875618677753346781920341058828124602292914704156571551398122109554745067009740797828389511556754118447998652582783007541301344088190283787463953580847671627582218726680872113261921932629177556594622818815672651303034039656582058811209880347127466900717780141312323702540324777727076616445458010212164892794968512545711166551182074045731591492994147055679284124503022622763077949682899461012581028686661847093680511153284250978784768399739125761045045024464463909549389686597381493736062785193696659843617228291800876694309784499839832949010551667075068732785927134935977781089041397096598758582257844600548564208118307641179501634155149397928794731878718777511424868149304341041649801430855784041557789010323868437134298154689851915077584674297173286543199650666350523716333906800065860104183176256255790172265810373445849735619932663551637949687215362631461652784540691973336798811660866672321835513289949315584042270005704864847703032754366349778964679615078413716490710356246838538788658334543880333378876005278944542073300477129460839462090659821449700025417828745081977660184291761279162192451127309836364739612582047279361164454677954781627917486028183819629006059420281709006843670247424791054622387957232122316162643699412310847511670627938795888038209778949739488420161238766060135547433001570554125755702157710054055212175793111432307268583440559653549619214343010525717469727049651445799594896808615129433186752782976845905060095558158317110446529560959519470265773713038179810897690488125285613569653484789488625896517800323193239741784996026006855267391965435821561031733507139287532931015573449195820220842584952616805698662438373987893069885344767394276405240633981293934476582403920710614883379091267986876676867191971617673637784982898915837528188549753494699198530620896582956372168262798863531504502552691279469530643748724657060711304102650751926813612918464906115869904196605105497120323257599492283677844318050834544576453784830760592819020895545755640558351132141339493172324583899179420009898746329834518951608254296815163772252235810329020164372944599499079758007830618273938422981815388164987846782545694057979297582805963823364056680040028668184722889171233730394974412345518981077147254104205188091219064482179462073148653812931030090285655257305087073476942126854698953473506724349647676325624096634043877010437229838201248653755758079193144505823483299414613250763153417458326905505347180834586379836965473652044474605829670990688538751346885633258862344229105571845680879153064758599659558364846881842145179012089140091449856358617730873534993746597810799547364350426214661864443380045105872450100568529047996394206713877432778719258165925082117368301787927850520249979662992650634140759777526356703803433745728692860140859613493394581873611825717168591180508620542700231096262760432112910058919761484766088480212363405886632970479988805091845376908432359533678858735026250087850924395152877188047270811089444832361725496686568925259657584605879781541181125678531089617656213817761332307745946928776365064857509630365105068625849851469145903106681656060120235315632071121862001470201385977271814939313204272159716535167991948359712805180560369275883127313376457880548486793267419485513931404004296303658003408317112214671038919253274298277067346711681490390646594113233840090190842180634865137285359029106115009130286643181005016759530365914656717947775534972353293856523560156374569116902540038187301442679057557148940294842873756099716245784534747768349196900808189382142589010141966807719724544860383995144753708105462040294364287145322965314114774208841582484731286215654125948007376025177932373840673343197192726031411801444729341473034522514947152995825921822205644168797528817078251849801244106790306634133313103455715665323342924536924086148683719480064867851905869006055812875709304754932586270977721891811545371108751069219243915294774131446982699360759464917546845334273040047375104630747710671465206600760034668260000247491084935678497040167805114205358071810006525622373906225892923541453096700066893908129150626686740685754753719159933384826179427030691596565150897944214916557082461386378233302509003257296038258791363025366639110951153939259356046781415597063264742127621354932926608148244331673769560690623476365017121747781541339275606261573937580382629996529936895279344870232781036521457992505076090948838123176139071752829383697729926024557023822011743557619425446936318473761817954718563292360738243358804934361179021880762205260022702292396886244874298148462030197368338781031616213522660680299945974517155496390585654006864977710044921070310788741968226485903277694601596381069389287181425881628096474838195070505606537676537822347370843779071517226581393648387797364368103258495278964493026396616477964746761799960726359105577070142865191118328961322433170910905148997536964772354025913812847082223525081207652009465389926950774519036906593203202315149164664524511736784123580947597674094069925855077642675839026212261068573399078483446942229776388435609806335014332937897632332349102373351609305133782905619554558508050591182639332773901226600762023312778024170239728310300969313874163130243117012637370965484104447525205178370489604829313799799359710295298044165600499617689083229901111069468794558049117733775407842687318161258977059536251906017310379367840749051674121418617151437449095796512422692684547964214894337729369926603330198746794757029776446029610098300965520866660200279614418471418323771546717589070107597525405413909254906062588886523289385144890769706441765187206632371322999316728138576683037971588917238300583127317544829440957329211274470051915448936020604217040901922890775904692014615405935521427764506434838256257138980461166442573819146504828946786762002186765799268357792035049308433048964294622076990244553172896401484414686669413495240475494077067652532935417894726129351133969607702585526727292479221279497931007827435376913188828846009898696684756083068652985213617027563767277030500488820429719709351625669234061093133767261231444208493433847088383701852962075054715788551891922394675289919342239127770560517255844473830133190544249207142443335498589238038064307959974955032731032287516694065152310693294256834489255297227202267313980812022725078924826052602063269716046321661424848017269450915466580524694325344311950909396645778089825928485082271815133389045104039528696360403511596795935188787226234598884857167084607809202036053236801156738607436586636252624429652156788691225388257124268553054730184564270470584795330905708930561500417033726831924989682936898612811721853155145248966855300677752088483737029551278869485432061309184560115335514554612879640751840923186593019267479411819951859701973151065083712254960914742119253432443240707620902219313229251937770268838450142099039595854440630267660553533508018015424293759491210332586350872816903796377402548052275696142873848377860499509447126570738244853630532385863694287664624312304668138746095778089568923532933414844013264252900540123235625759956317993144029093171011514589141051778026650936159512540284646631338502944048506736261853789809049054086469593368558324995608129590825203985943181644929651930480560584975251508473960444226236875581553475441505359040942306096075735001062010354970288510906870305841659309414134789870248079255685501601540006139112984900413422138332794668351577885501821683510312954376550398492565604710445009666984914683400301669986167405667855804290601672871525751881838079003317304673956358321539840108705441561113117031201988536676831167422702727794267122810963096809577710253316487406825922990554485659659671788175766861557369938777694550139019083523543534180188815015927844799860003366264808559666110650189424639713026253775127957835953191465937098276155519469489314717620312774293022326038667490076210654086236775224934625496605129343418870498080485336734427333851396886651421014132409394587301853742454392522101109931241630230828669676477114409744863461557307928814033274442209290076718125980156326969244918034917149365874350806968670200498853287695684908460213507263244205951937241336421046027503513643613893559278915333566787916729338314268591587287725839097813918416118604398875544004600877057023778728897259059798499516533819256440669533376488652926181836726431346869895335879638041400208646147931178473407697516157734396019131220584868924538408564509556481132965862224190110917074966706593886281117690519353618556453587325536059453978968652692097617539267743320624588937324073830927782336245724176333645505446586123710274693222452906762096259300813096961305918198942491456843211920699313950994106083860948345135114085567850871567464551582488629495710382036800944511994607854396299682123914765001564331191652086332994213487348487204451548140046741325080497672455287196380310178656660680604658823493268696865139820609346123904729912361249507624422053639848989398738099300300206755864302869363010347681382509478515171253723575627168615721181418248857797613426773498325171148506057763368978589665677536618593330269337513168073661168262970902937643722982156977468162991485014112870688942454069275770602901205323423842904203743982020517774994199447613307998505493981596865000544163774268692234633735713732650600453800412924818600248899131590020375507016856178406848639142181958860021341046426503231731071555687035527371649291847072117767475262468878007041908273596374984441888380999050592942702002624963931527324128413301737437471933525093996197606012321584874686241871853089938734641989000220353931428255899580243250369948793597783687579344130426464869856367174412987521227904337146420578720820728315960146178357306077285195718781931912096628199447623900414368137748525703452598762540683043038950017291667673091347861843155854254641479838207212819845822817753899789429258569333302389446562917354542534844075359306570013627437263666172164447602267358698834473587761728406464834133918616386287976542969075267407705919290116815358441127988694673220250229288108015657151877562605520450567803348073994136548046721341750794208960411825972628795559163005663490246087381212816935060555428781118554921764946318819215326937236415470349894601523610522859704566209380672603315437579560878953784179972110587887545845524664335452009197219757248080429266746377183988913835711062465468697125484402974413685808400568171026631868681622686270181835852066372697447686393875844895603351432728539995855305747301972612212794904802271611401345174954077253016156047850432664208830270260585001240954707937020436442473609636357968241964671167402363621778473963750068049490937426715004997928058529992574016489978584758859051689055889393596653269370506213127501221859421045656077491222444807033617749440631541375030989215141022196191784127109551523875602328384512361574362890091853467574344930437400306301595259205605201841242495480325845573125245878375695899014137264753672415303141327673790235967589200331491030387556663619704756867560220890382018125892976393056959365644653183612176577453651993284761599570861531306274617627344631410764788699461163856437258727712092622840937667298690691521501960871472146960716738597514569565530161769387901092619419705444408545185960648938511610571170370553597696431654613211302468161885957925960419927587780083526513088268449745642802826191940686549432563173039302331004519956121640277164450452328757286996297334394732355461708282685773538023531375218009044899509131554127738641168220359356326575451949162126705364231406862303034303617518749609776697914208971014184344634284405452295677974954746046146846838805796945584014767144565294730958230969710510789179818956086777939188154790837928870550115613951188640397977938948398486004277343426131264353979576634865839395304564965539623184349292945251061254223038028537866491083515645681489897287090960254346832529987531886670381684605671672259929290055546432436036859223958459402189067742768634315112331535596764584603155575991380101541573390086458507249696406110705206170679472558304894735916106409832673736708708528120002589241571917966905358489815582280002921888858992839601189151056778061164294541732148371532244213699971324817151535912674121645444413284021563046546455306586320424962699343794825111708334913616851075860612729792274796742821411277307625668448098101969209975632374582225481104153874284009091124314810374312115210581165413934459620003449524118692275271561336871628961491920984909468402378284683181185542924752700337947757239198047056118168738978170938542606041977620093656039985692178618828831556454676587821782018992437331537857943875245537484733604674994543313831114309604592491833862687999643425166439211404816568495223596117731154999029172815905919789804042937600527955267360488624147431217278072672685774679892610852588867841572801112756682515855963857803555354629627318400966134213057161565740433668777165340858240654813537510876531265696394200819108906824048779202070471074068650094242849058378846312967015241804905869804723663472202958797599579976008043530854099676502458657882970850592780823952672551626925070603961996896098442063332019751159360961524661029893240022440282778445403383161497699488083233204299083271058090528253305267901634802947491128787978881142668747927490605416706559955214855979965272450751597181285198633958461735224082587700167722220363651942530281958655895115688405597592236047601475143569189464352020513404587030188678310179692857722935548105206951401582860819212770254873569290709719631278692692125925837005554013064295727984489606890886337908816689342397373074069855444039723437671211178664527966777237661426604942612768187722322679226703293832843238937327919723021344816558101936781970926441477294173037021540344173767086392978644348650529110455926988124769023351550150761409392175365139491572725259443433619283801443223648190282990241443901888892187819118683077518646314915647918636203783306740492777336387143803818167945117954306856839876188084901472775511347211503286656829522717088507018838913061855174449139876726921575114772738684214884773040836901520865504105890315606941492706419970661543796389404906587232889975992557724821572294521718241989319400424716434252629143046910939906428135030115494715289558231392196322062346915479519815662460261431645106270824755684432637291579286517271660792621836027415104836352521967052873496859891556074468219654875111931443361240871025250733431770681400285396107129823384784002365113987842575795545105475749051742667147948150292745009517782132481794333269548115093455268954867406089983308257393777206238639639066707935993598614170944413565153565383170446615535911461668134404969770861574074594678272313335988562935844757337817641117025783382759872202912168328179366582205410664959902299648600724539918606736814521105314470076304633376149148929551902781272326923128162255209772513653189807912764380667491698955864393309928960452510553945215989625563914279965043861628230804377899383124890425549522836983893310157077405225152040704726612385727229845704341571073299149494662993163270661549043624431994116007704947356136660354695542055489149258585062478298431609877956946162036843076134607701211810677214722163653089028104097577906476131817970585117068384833158555781688913204165769517899148979163806862465199480402993997987591378843402819220848202253223929696133578374956898184296183338372885451698982061585543918916043290846155076031078308137680816904120707456741141456442594945372438813059585079623861043995334243647592247745599766797797694603078782199409801370920629713775306217042116490099642832366612627334481956186515800859111928244138622415417027166278318906255019328396860739069530547745481978988229286635544200879284587211689779135671305459784448301844869395681894414066161833831279860634622954366275996327545596387181509924007800955136598450012804077631920922818158075436971419329174973902169310174903032855416234890023347054210987077134252302861047316511796300188162089343358606631735636265007999012989022344038066318427623518039853070447322736472573196649188936937092690971712943328812995278219788702194803855266968174208025046548315153692610341621621588997511837448841555105980469771846746499676299237954744166886097201270583792572127409458282482898849017772947958741930887032860599677807661092360831908024884840118238746981657403444865037537656177233700661856269051621863822277503825296741082003771731005760270395952756829271454827594876350783079710736694711388053562109837458546899338294714370105179322705784602220183211201333720238886786743148794290167914831507933982985120918954696038167659962995811641954194528387780110460164561271890441101750277562622727183416779704553707184882961801665903670571419299385167423317436643445011529978922805941898539339117047581958361515394560545693583038812661071612036838387850158857950537583738324812126781040594648694977231617283404425158450174466229108572354738883837151520883489871518839191426805080086214605987807415141925323421783352473660124201639305491051958246491012690845147642410609815677936899417366368160044195117132254998037660383580996178407143335274679224330770010589040277230511720364773958804672782372257477967016453021645095683907734671450397345664403415895332909770428818352325362863920019667258140020158916184450808696195709520049843681052380685194959247456793607926964126948655921231741070127873882310667985915266104986286120105470380245397642542459585782129626987323378157599756959819068592511166883132706816262357988316224408985915576176068420141631526759604908171767385846361332699903267661606885880038266948612666228472109078015978966876232603992258214484628369791885033379706931115003146856993497464809058614429432441704052082063125928001354584548031324922520712092646998876408579828851899783467514978981648059498693289044193495727561254415730667141453559542490269752474727313794119792388911069144447841152808864627402779843314962759720670991127882727749932777144608416290041968243017887265945371828484604718475627328329672754670490095555499334938780932898195517440757298222020977259613895797767804652870530578491156010331496245350921045210049774930193264380183577903147781795930625132289753124800925364089442893504784015291021304108536414783945694093957179437632737573637872320312801444555610791509112938311178891499284171366142814614148284509895078859343341831846658844639576540922470605677645749836175691163144203373912337938482089422694967031598896916165164230198531219255148242214745792289665090268895833645122946129150972166857002743425447838458009720368725434721347653816933218316141415853515889621094938915972556230548001167795474904140627530152195716395530042851033114093721000273636188400860598052019808549151075230578128993964986183749885755945409751070089165090619261623565524063628818085459666847338464437581352575260732334462023746405613425293764077977818148085703833325858437127794468214659709090757964183927457588799869890351750897550166318058322780415533784590964189064366109707660709058399912059132688866956909916084382322096827297217883590432775629351306436019633323399290333507753061973310500816912070782666244897279410063373997070640831425751414232792711898325689332279449679240693590062195000109486347198011806328282407522805586986272000445355695666177442634665684045404765044121560812151772847547417574916880630070405386569719619035208359136077629224240399998727938187632047126854190061036333720782950205651269654246326536932936507023177834898150237028140812120241306766554849467910163123685942049576309555229058802655941568386148839641705969000327357516213868329856308438287760749006614058600130283453813620719913687883208472736845207320745689781252773232053539394646822045510402144597885228101129061434056510938347816459302226371355844956964764720101064215049147442231158312164616455112691046213390218072062345631511950611546747671709713322768642709102581182106361025043850200960157964762118687354245952250955421976220034796887633831645608696150781317983719845360158634905752400072734455418449908838641356690798188898766551576883820653008541227741252289053509568859184754517948279627072108632384542017783832121017068365024541717313260546472216660865755639998306930292275788270106690984220933126015002126477492110086342260336423166033277216448606302633580073475259841296714206295088736506276886265266709083186647036136705428038397328544419676623900964541261348786747123915592368450484660737939695413677323497493762452828653168068736080559442220594651999256153408587106349270444390437020346258739395486220877661515132295994368498979085412651489435175375810048648145480011474518271296738558680418111642608326000441798133417433671195724827171870962178500652456190925863435024883549268408485688389836193538243730374502187630603452796817565572079244313816705698346810159161457108719705215841039269574076433269458377623592887830827902430159194582848059187000934162541205694181417450743569858782100970556784757013415907644072337461380990350833935981733754596058513569408321846845048787323013030936256446414431841036669434912670147127555251810397196635843516851828589302081181080834048154031953569174871724173373405481723231113287668885672628136552204738303796097722626383328410688623184582226589978099989828388397847720648927245122821278494757261771123529889228310835030310739765904130212226713128009086504938031558194586905876374521409917165440197538672521780538483078572776689516431738040102059407035854892937463386425056351766538617023114694288134715565370919682542003911146712261527049764005113865558083852897741238890911699082211551246685979981944894769622030848085355289778315656176195081666978504009527701106870480200072974756646965320634307370762559374170308378617349911707419069139259956836156652046767225408037316168313257411109694682044073249300427060530643081910255231198261470809758896304378025871819249188109509810314152240945641425166267313554049429655075449953884373626553865921397205685165240476929036222053211664015717342927699427024834041596074515633039760015689392832545131031125952546345131278867331494341249248502266731064882793400707542520125803445012722182363736856491114111814650025510825688422497729488423148493259821294806402607761039173509757618628288464871641962287272701871609026537421844087162181920896277680689391200827241992553152822734106428417552520595289821281523950459305673896012997982942168664290112988085864872443714454649722345623226218077898961031821667907131885957522537969237954325462168160144717192982643131337724252379882671460971097299727380254600272607900211036138163020608120420025736604524166269417631783633916099271608506576075540683559700354862823007006445078940046054478336824436428483013886698794163150658424737242206061879597372207795617123336075848036091463134198671487948272610447635574022653623398440098795340469743400327918636249866991552067494536633455156760891751233310820997091747830449152955716047913480940885198093458922361964809034915589516102744115626458145444330029570295857045479092765390239222431424735178812294605310299515240475846905439150196374818815038341226863374959259648429413071911896134155366700319644649671231458304506440588577218073540947101019005735327684476682001166850894454225951625692750007296832102119816067982459287390833615304653678494263206109038624504827531840040670008860232345467469985352411932486490994294567939339069072688244638209747112145840980906120552461646629459722050340070524980158734623784561009674819011588437486172840907304751385740687262133760675949578272834573945581327337431466374437886484188117730197000940298291432447039604127420421814637688613687109681931638211519474979040714787512672798833939016139916100348368159940971752143293969249078080014944181776964252907149169625316236339617688352108435439206756025443550068220553144730495230370305549290652098639489202053179275848927640501686855438454588510430949932631023764600616814934040114560939012948379152301622753599670678235140001632641988089024795385584984607132999587852384030854891117641059674383346590515086947330282095287939605432569142091228550059076655753583443669705683357843060624836931707480627426831794022384569730903001305935461289421883138558301255853424899074429584770950971582470209908957769032765519337860705353226285422985775826114243111468141894560159565425694867916541231732484659514280895414912310698231516340039269851488004761177856521048541685812905871654208002121605099552738723219968043254925569518179656302652592492446858411185906441177256626028617879125694887011312049975477814415729269812078110037961365147184472369210382726040540404599130334256717434571269725656594265449846891051515811611508504497694564058702567692432716383061438505763783226589525579964166026714252353186268635192870197141586153805806071908558249188564795729860556501903240129619153072295150848057373858256567511815428461202748068053145028354377637034551218576730534024594559051114224556792279325229427739195047818672420090006771569376324854081765116597321275574852838270815759819893731826775457289176137913087664181665758919583333667827507458613439831059539446137711612848172543191298849252601831046583450353339407943496752952065381492339829499590139868837265041404334515028875405011364500730980099058770364573661199163054172934988143922603619003830736079746757564773100341696373553806717713574881652110592474370650830621401824967382302127160457955806147503453884791807084452113049077111858845148964321826835505434478580942992139233513808009687683282879608307398554401369654754036322207604831908755932690715889633656649479124077465136220060237796417972465423711691268440905602993817965672190545398071499472396793062687548308003233186429763076206137685698497227549460036444532107472404627749452302325775571022489129454410611025111658939582729641212215044844833262154239091744484996789720019511453042072089033189697501206046357043244775262951523109721856661712059030259543670228779485581379765802335763118379511312184945512208463057226444813929039652019040166049706270728682894782886282257395016349557364430692767490473549830674783055156695410913498281733205513436061170568784627140000914942994930306640081234039187732911986770390677362050633811976963721482564146572266189234683948258052374641797038676527033119813184936755807195582380704825539999862612135566261105995007937263486692805463914195639898366396219062578060913777517386843652551467630322656143408046904089367734395437854533613398189393859657733092045020120651400675267084947633466364041286182335677319481211121720153853634817049972712051889082697814375494833423404749545439448990100816458925498687526711275950352262700666924870324332302062632670828227398668365636359294459316308750404027336323142235499525266079992999217425131687459750015174613852932375660502043794359507661507127243274816806449251757113154042762483919877931213715261837859288793923365820240226676736939337468603007008750361471618541897250261150328835665670893131079803446584041447458165134969457639051251081362449130938967223890395720764036136876003824625123599160271276246926810446982146728956851428955915661840975029488397993819431885689440307362563739980119379849229892333509271168453466534891526102629270437349131558984269215658885808168074987835027428594514092337791878732555223218668990375830023296978963615679249681264318604276866773719235938783381842388230185386886549779783989885826649465295341241959245896346216613666316901298797358434142321660640079231185828744096339127095388857136640344533849095842076117844521454038417526398221435900901787446906708796233387975085481283806707582429811316751624644418023600004845367207316036665052702970484470211731341539800905183472505058248140178095493596541255794326601237794808268007325354412060137582664903293710375525118908127715473776172185222567683288836312198104984047725246075377675921796503432934572717981746626243814864315818077121593266124991210532384155976722165217330033696336215186602298468651580581048023485741407548652359192078281955931143999879916365069411303669930478021431844505976206327259587221591419726764526039927526519847553858557339932748352776370682001360531857865249053322960300689731296402286357408153031759030357916234167437893791133819438240324564780928756223392713844494828299278755560376813540738163803614769066400364170161464183572686869845213369830670729869280413527124583466504706954871213720939043227361294560355761247662042710566893717921271081541206704402740048641191828354256330144912006631269181435484643708249332090695825818708799562768781907392681795603880766456914797941211835626268153061904334046123192038266509984333096224462387978659546864899665785276115970772659096419173352134148038966578594077170686670446112970874833489216648624327459283198844020693509812645548679611643635714929308800316271338341974283363127148712441817699961332491936699909694815643727529398030285519982536892297180036481374754867314694003352921776778927846588535084207464879902233726675774526575687061958978738775209151210243137119698350555696734933035611648972100131924409941542000852492489941355120588105542025745863670005464130751841878025825161740786191176340172147079838489514307735234176954024367342581998882539361476854086039033485022760440557037882012370808943856969301805559200039165885528610960843446722094610295535854344859959543407181878598245883150381208326029136064330744295074854577698953192433390899050188219291868502037141846104015448869955414678919586989704405792645689096172769596497709659549870917164699030361876714949856646751921883538031575843795460593002526902684107479346167912649122689788421068972940144284052015163715840315988071665181880350013015287887098728278225432379737486457379230198743100612098547882665874238249057895916470006299202266057773189214334077429211408958454300678018341344840169490658979507354267398709644205222081007901320529782107670354164490352882093384078000352813999256570581859877437924250119735380361554203905114876986717536268798758785732987733045125627733999012067104912842503516748763213792925399145750835779367746277029633846117611197960661284226102871792378464264155254144933395830612935056685943294008100969994758567336748124102623751664756430716881629453024866714419204311800305022245896581588744847165974286314237940776515640175102220894687719214596707541221254814957051446083115826400749663496933315117411520490526198239909773544472474057029786739549072030427571225672848960637796881627679232092680416773509048157407436115572369092684798560471177416115836299723367396897949151495179321131003096205864689719190236942290089089687117046854188715666882935616605469766532086804717610223019320228876147518734539024989745871611671534436930163578721529241588651031363152282153321120693485505993093348432641276130861317286453737707738881620768186227421557347128603822278047076403516275622446810092809521387440469942320168542212895629555741216789689710535016423249084057866687701447644919154228095119143499952547761285884311644042722037618048726157140002702922377681380430879058608881422442857397327430545463247326828420815590865292410031335989776069963413099272168303395561116495566985627675052672937916473263415792308326795081976966412498471140426875485711305983269485077529873797500669688332290897864582195855876733869441563057603991474871460142901993578236555408567124989213258306745011024254253612217545812568500966195541693674480695132374193778881335242700611049958400868727552323259695239007443778829193772872112057436561455058519260977754986967535552963827533503830150174470187387365287174273607817963815261212071311691391626184820500977198948549903007034710758145832581923993006136804477234066894574290658181834440971558012131547607899713297361452171349128237130626620385528927334948814270859822882129256078936663766623375344878261913797352208515455397857496583471022790709613263608402395621374061496653008736511766034920651021216569308371175381761876364820430861154589476602401591852387791035653830209668587232355761489061658986890452355588733999410195118082047638877265805668492093985143533066209213562254257438087933572424981470568869166786513039628487399201426928750531105809787618717773927768553553325511053476954770475818567022939341637700078158038686230506896398333405696179323377328701420453403146396218689535238268156883986216538633060817476359013942864450607563896644160434705526709627773239138861312696541694627304948976315676670801312642557126951774492536355060287351226125106539450759189111681787889052037493531968463509670237493886409219401512726630188057885345970239885682960490797669926985797459881394621309432510971469698665038788122998329618933007236531451325155423774860064371190161014569275352001495889131887435811725358697750208996613705311066504512471104100790658497870358237590853185069958593444673470679187741466253607117322602088296585681928201857343637198007423515526330628917459655071090768718510413942671022266814138073408665639686849425339077111568806079180636266758645997077715713534324660144111280255235516408407091914962865282232014666420408907094790993037849364666701591369107695223611697713505948156823193696954659700734319461252230025524808661300615717567211964927901520307253167924265453691025765392684328887666788988772109740524727936241143121361308751610836209986186499019469099620382064329575845719366022198052734791347399909340492344378932096206097546438603846316925114617168639756250550364862837112159997367224994775682926310396806224641010429886792913403919773750512888943466415712925453581004277107616482481603136175623929226901002631317334547060139436160800083749049864575179408235495456484615469801461569990631317283469376735809892298275447854814582129482899658463856639527890203467219674941912606571639114612778982150327291944195384176464248758966234471818381675541339921834174586061909716503464922296331676555395677093991044631611225530511709821180044237355688209377994355262889516378800460044206349206245730321877585588621069573066629720717236396965711393855446913956043607055493391956767730444022459571696174842876089293925970477596958804465196498320873545984932930863754312339254558823523887267750073091843223431696062691644116155028840246069673879789767503539721245096813402807603438982217632582000607900228106073198528271523767680704807848911199878723483696857680425793633136438694126836806779201515168070764310078181841884658331979167383998726190573792634541996728155115663101693543685768738855850348871824297803795365220380918065294487145732059125211079854965499756472041507594606877258813430310782423866290175431234964608315935510730544650605351618958341626811605748060746940622148049449826586847842853460589851190688089050885425987029076744297734310555494935414773283664392377338756128862539317497989970558160934340256001479151856090114433190608595024133437777745184268977624890128358539025714066813663021242884975666809649642047393808142576346993327906845895965144958772610772031428708186489999213971425806363366711672027694158515456470301970976345253718458259357874389084260917424690350879617002396466349296100120855746552761098846177594217577627638260447883735797907836270168091106582260338637670568701827099628901578869932538777612011434919578906465779846114197050010255939855079675038137536242987033776491343632770442143261616444700213441053668731194285247491470685433177066164751150677779486613706226462274679944572255368345288686239720692825115290875463158915051859565231422484457185153474235922869901944997686997451949671721062343722672155257406379030968541950485028506368432011411334539728499000182964365976178155959337880442212377638778594318859129257060083876647976314738779095343749640167464666470246841287626274302848555289283108907955581902964974600711704059120702458205652100291733130958406237827944257300040619958009626526207368248113826037097328023377535950100158229338675433437254890138251968654738212653350261760341147290892252611502611179815718983297185508535017537710862187021473424182691605439874707558113016437459217308498335277402577704126526218017985507305014190065690094890583460628801674344781878840168778220338997371115649651219012867620122553139458782828729891213469184500310681596349197098015395987922525282596671528809266025639683643241265853039735713453796502159086418190777401431328319730474745954335229717545544928186753557620222099751900453534679292606034055387181666572078657257291222214961544874574449834400106109595798034231448990951422592094053287775717797256035151735169872194351089289647094490918744802572543126594486337516559607894425870419266890292305263790584156774238031329545224782702601838997387115961962771474462210465228916527926228820092450485162960730741673775940677299867744377664878359398898598411856980721818011300029510940818310116162461863774529150666422877018835720202951861509308191081128834471155561914095612082641067003600599117222124027837397954248047958927772301063334738331345702862425093054953614447611193405506951897349482402313665761029481149921980130905188404233982107181486488381525653563541495811108626874278162683907355251180032903412079770070713225524946361047225280401235837732228814972683716653583001753044929760874763325406266488006638277056139647054847527919749587477372521289019402696626950594032446455870184856466181895687307923576026126669463240209323569834033626241735721548383311193843947997789790382843117314424701335442573982604193791931616014495406306045441474420760548653196684237072798623253461565134544433069707075706982598758350878973833069664845050282809243956929996906690689428104472524399075275404407114074343589634919852293197737006623366681774348021241728063259376295598324995641123291446500790344435949783397801288350246687258631824149403486859606851636145623171697516828768072058701150777207260819368089216899527704924846028353156651367981878626553972786407706001745061427097112145672235011441110798923069829044789778196307716773836082642098074252527738158995142799813692972988850598344754059805827733876044123757419771707269012363435595132440245320155285646076882525392257685080848563384571332459347516622322108104873134625007111581483841439826970505997795580945096912543288714321684920584136875589939392287753250131474276875035966210766148233890667592351917228721043760678283307488495116680378365210602892352187835000552192517951014327823048385850674459336018424055223609350693839200223014406208916832926119172265290258672246182100516462719893760102430820727136270105248075591110203441604068705461591316253913977058575480231825743027130123644376124732332095011818532714538277824383874061163402459411456369658133628821162699630603093328107352956243468523833964492565172889765520559643061255284900425088158702152296666447990946958506272942936020636885181431730823147745590193627595841867325159522931777316658139839127980486861148103905463170693777253473689579020560693732914977788685744532544725459613920337212178114620082127149635414495884173424735838351506091702603989484955907822889927983712587174123391515076017652456509298331610417034333904965065544596845661581741045900788576988931118103444659429901094750980698170620277252376188839547079624534877645615648909879227810521339607548784932805814940212906288182073253165165911779075641521239636952440673390803123866525208422991188668773944629620846729566927030301661006474090928091004827703619239559385535423108191470154196311441661121798701206729452683870453574028211519368079787329856551794528787683260777079344139191212505104203759545118316753204437781533050711770265723663762526977024454539887045806512326439026003598723167035190457387792662171518676980303144875365875904813635459438202339096680982694960757933250093389861098693140432636048475026716677152473262689826230601526142464261181449446575475663833233237520038215776133054636570969948292081923456872497294365766769583147801053617017223764902854954958617882290959825625605314775390287445154630238657142871865667429588137630886378986030727758886813952968980793730322070714675033568459941155884522612669026586596952583856090944469135680391303500047458165862261539566380474920621460730232376655095208800102653047388072571349491234267335513211129948397394999738370565424798432435299991887330290865038792815731588061350015874931138427406229996701431805981947590734780551378924550042752448002221855319314044192739630252623574873575739170311797713734346538951502713380717502597530220504617313126702490504824852122567633418173063177251424209938313208728113827336107630148032409000716171004242468915389740668258625108059954860663699774484173001653433347166776773984113636707904342911215116512841512176658519784417030839891865114990120842671031476319705370501686024478631081224951011255131367027869660979395118372072446786175392277281097551683310517093653679371945010531364630558171161341537775641759462103527738211553983959375104061860585163047261465858634704895343777488371174266815182750613207907019728527434006523726407483012074516828633554878550905461808441278666360611620061990891592563492892992161920159097458239026356071830701139818184542061863700770059015086536567553664411510122414737744966757689973934655869257369015544501634675002698344233523190171242699998943024223460168622506172664666437794089580804271802257875504624392810254508255251141491140004421553050842947662165765933026579270221280287409387089966077193144902373194074109889291224437004237569349381398788529589829894907565982944253848503869969744653879353662463495838078696012207541356136228625981604059168287422216041812903871307991560743456196555659390659574693946687929222798225932785556261884534680389224397976018920632090584492875571873201579224312211717564452241704062427990556879358274804246528048902005660236856823565577488375482019664912449663819026594778665589011136749030310408334334425408932655070045613832432665186239498113235887337938268162991988700405765190972325066991179227467701831391175406725991377284719908165799725635813701158752655967478586856676876802716639641593028409710372584472604283908190912256136782836886065751506684617436859396404106512350194676747929070832982431199035047851686382141394031202409686630561784579870500856087809837944903067598550092140875289760692840115765846932554941260274016621734040223308665339367373309178845360275759583809509358258837791692029992573723247519562924924777885081507588409058989914941706456256509029276306402701875559512927066880637792589940523345896405284637262828169831918796586827635305849999016201317253710437050308723284148241010190464584512561124380138313353654709256806931718153116364087618932229865332860566338326925292684106735490569174350366385706987663969060408673707434357678890031937305851842687062573011870400090009848905182674470830348962686497446362686491607114415696580072690751300474886004734250874901948794988839096684479799650223035199032977217644674964161194765620980785469617294860270685275187417278579753324870762094794037741047355550376943452491442060756291660271472261215281713859404266756269290413870540622791310928203505832948860818030188133608345278226823769698455953997949804398522127544372004122507897706430981406828686275224718447353928666769172601149151041516000639727513962628595679958733226841507506456528094106035164181041832057051998253984179135259954008070853985350111904473853748941018635099613798946605760791441104169927734478799595936343082854101948354695708135961068570601959819238283782368295214234250325791181267092127172971503027252698381697645117946363565633301975420030232481589628809597433111492427057853816441691996525924579669446577636564678085966068620247654553184862906893733136995700098728297363159598549729892568828899904250260811350670232336076880222451559761282028200926017427673364536582681734872396365542383385301921364404446242950934155584415890272701661128713186703528896810096746740400334673199039398069867355719029293991409088452904372822749088691683555022016251395124822499763572940006365652140936354273433228748977336797589519716436662509560516849447163444364923835141481374518478065019960026884244412992394976897195706561851832287454024881548403282151647656793786125190296366711071638011914777838159561753033970249258785615785244087327842459547161930523644698422823296498720760194007247221584957135206189301149032747600386512533685885427163296280392305057544863542180599341610226236015099818965154211466898345216197197209935264794769812150717287290087857701047375378032131540079904474529215075189750255839558747499056928295319124783180388189603215753956462091004726860726865601193802114809351111288230255495296718859470598446071799667867064621901008087916098658860742832062107784339796715804462273413835980871258725300837289197280927245680372594099500524112344866512570633228573197089054732383143760831123929661537213733752743908147023511686631853520249491775500595761649797324757136206798273018728340875318997294284026200668826508807951309875248849965459962978064846268496450798609892731307946255586965461668764204544459578605312041568015993315507452528724980552015010665416704963130516810008539043073992915648650492293657097182626305278677589852163872562493381716961351485170008064285627551001490586784936316319985906941119320579659414212172503394020603670874082313163826444156791510148766080678516100083675588757232060509875813858859024217993535241977926917835352102054702533796285069795165227513616696139883839743504681551920839495254500947525056306842580791875444587938639470660239281721656498687605502601714879672436558126085238856404192133119817614871646273895903720890879111579569611859853265433042820995185462474153020934477878017755785638188447050469549501723094413779190046834065700473923266635678696687421584536292813111039335731799207171276505666257174431751010064394539638508222449665874016815767984780232223227433212410100984727326729088359044763715687866686280981848050976239888851298123678035396085000668304748099923611319005562644975123376786085165698296808778364448022240741876942098670695130294560704350347182772780265749149409695957870227871782447832282318934361459250117827884288369148948348048654275888296640025975076309934789150288566433390381901114246367625748131998753582039774185533154352229049600510595164076195691206023228454789400831055553719333707891769158178474320922668982556050995158247150667543478168876254222049128185798298930349669324914217636459026897896562093366824625501503404342785516883517311152900177928754528697232754087401334336972304345187659495600456155509125837124972091050501787150792357660594435232382687442872725952368413992350497728550388426936646585860366220641524474812994594879274856423954151808913891523404622339448652497245677310531179744268456952310345706853208021149566519074981501949088878470279949583175595333591602136874310650151385126706815105141116526417612223632380350469525085579874377809744287594013977674203508921701789133607292275945762153793624076104771480870312244054271606955563662836550918121467865310878614910790834619145283054203967663001960346840504487188379557597035945440944011362653821838270999482419904541828616299061692004822951112114769062266833017921047139745505558217330484201384022674885238841835756506586545203071341720014313766791125707942699200510505248752837820160321303451000351079349273640232640124964008442677368280224212038546317925425035583288717327376043790398770919589406720964999246579033222917261733692121862399325141866723882330670278383818591693592930800921220878058820574190657602147309372518673918496560401439028079550423736380863309292371726312597586150599857888747998287891271047602231675634059409110691816778354396276845506716759028575030826463271249424081011858020686867833644584415143100205014595112127938011711451154966387815335838298797441551209080613487326654348306250243096556759858415787175537430517554654770396083711487287209254099048494616465920734375425216924043753188877667645589578974227977717551640248770835326462631561890619087277962912316721875922181166366991915076973596916594992336653363757387746699024741932092056250050514132686440597378788843082950131716035663901290343215115639521406075408372332341551476317667512327918227141192782079076389949475466471860714936003393192196148532165380874751197826145987930491114637033407951024024328879728900301820860404461381064709469595142018317672279578057012553833691713656330915203702524442773567148860343166311046560272803394714293895025861644884016173260283051288388622044002913317772919662405123857717266185939141416645396622342156116158738224114266007050879402295815166670248810315223854361433777710111934437015594230285912084870418369308238889415150570312873496627343061537988684795893205849822547076438954329954714562803909644791447229525694904998422838996059157101523259440601816795428858713736671978157941247928647024833147227728259952111959229149159901559676392985491789185802930530513510814580744934380369558496534423518040998877322415626862375006614484710596456510453577288496756082170647379166954874094017222495859668900743271462604274449172756915481208776496578035292543845590630042945295447115942908056370415300613582864140611699334715066681834934467157631782505797675664656120872583482183639253747272802057584645922026478096005912370462005911540644142700040464081165822807911117424078793891507218967789285942858368682432054311137657178747407694568813982133307698222159939469559278224822445035760988421981109714966970320038279058625796633824484321579125549383382275174013666150814574094519736613268685887851826047578343515144479821090544343033332783899208082752461540024262904462145721195386183434354688848308305070385696452133880173399504333687575380882710922738238297638861844273243711947199331642028432574297896882881088075399766337294356229262616912598072466525668652549226482842132013950747012292488358391772408078114562966844969077053789439223904490682783152571203942133081932599124203069225439672224084103542856970479970942717501473545302901476264514711985563674094801443758522424274761207843601982678898543685885073397955435218869312246138320630084199208019686833175869410578215408020851827899900559190983620461493106748001065391961524904230424829174709632009764470005170303230135579750234084449116192305667619696093550753337652100648876645194907081866542709254731513197201186402476567620090437855797023556356082007819619977060835868519008226337096168521497727921555550934932452375639881300480374098346380670864382071339016733413132598641182159524865849196930395333031396783409778000022067118880256888479731526149052023965879436908233258898996781071210423057605206460755336042928413069635034023151751620679856155643269923498365169450413255779806772053559497230892850130051808364478123053866375722602627183104346132023236881961003845997870364598424189021835676801276487219413411621557830384432786937032169517239162337864854143024799450811027247653965570327923345595481214992820195351454349946941461019241994943730943999809208402690882958396898637973557668167434115058318833100739664044839093802538123760041556025338244115896772216802008736242337076355803031575926134187312722006808450784820465272949057025338152998777124341863010627022960532541175749139081700711872015775489593035110795156916788837967891863124493937749591003747032400711411666687913010981316888338581350983410056145284947017498390796618892671701479407191711447939945245168745069191393272227500092388649918649217182760715065167739953795213120878660358106715833398245882218033713077552264822502848254951063812765836748189910772850326300238111771678946685799347166188092205537888187236757848806642921578553093136669054254461477840522457217846600627503473642119048939181105102146980018712192009584805052691351722629236826434585414654571651625282339955151964784312824502183195346276863330185839777437663863892988863536165000440152292569835640001257907768602839294804417229666978603628325546142984964686337438904945731188163695334379572909078165225894337522310353486287731977336139306696341798307346753911331085179623900500576700609623558108274709903535918142443650904915996043071392541040442866335338990522316000492008509115731672305184808153637854490539803621282682833484249154169670777525695026330508262542365491455870853031471097402291717822162018226336715453448483519472906994518609915242804369839394309088398374925274247350174207308298806072560903757113720752920838641082039663610209574708315850891754311395579642904137262188975852985606289685916311395622080835511479096805053154719556051286966883188762506368546462106248731913231778119715083021280839861506898819894237576300348417089912422974139327750438578001098320484272617781240650428082049886268394560022930784397926241558398899148459406566278996028090961615626350905757115983846528100068650167666381864949563653913313572293357168375917769191261369986011060704498890319511200973520813752370514003520963412357197591896566957233933976186260744403557505633065347067547641531829804419755623040029302182590905450203462984320756478443822494903182512491549646972010247732081839112863728510417945245878147378554452441387756391625081955910274145293835556205674755580016353035004369013199759290637192359680158962901056912535148456491215689652238768970559026521820653746135618251091826593699209593102680634715372237120010927924274460265422311714882396129686279001233609795346054771530438859312948253765791640481826406762206252459755740126540820961841171739367162254877874476150232524252756537811062894699484876058276029808428341675038736907148498580664686953605782126050102114191645047142915282388340166941703111985150829549302062746007348115724610129331692358636467906225269958395980074482372890802509055727074526154493040985164805758531086813919923915864155666049575639143243706201987194797200393568653193727476509722390266585749938546082893026828100068618702406435558196386860475074797251507511790264303370550020599929853134771361696461541545035339831790752868627782920401232476416749198083247063628486658570666031864566778871923749235917092185382840660060161486711429659854499050863969011662010824547159187954569063947713855641518109828403439640708516059305393937020870202547402127463751685649366886356898274235538695100573321782261246775498013202622240024599156309120950471869026494872556992493719727594670447771050440206821613227535778833660634170504666360252731204163927601032023786860930403852829076063233890515880813585162207518516348577415256874649375839347003032097631999518519074567248958426177765841651980067971963102311406693163913843284060991701726555180581012274638338046096376425009892061165275114502114241506752247966157260669537059319809451951860154590245583730761045025319377136011531887862422021480566669444932791170877291327968072296935027693590642133426763716569969285498580179675432171432058664869143236716384851504835596596361699247224491571864757274780968339765916262876083543593021385349444547343880150007392074073733991797292438106723311716891637700681275226474106543437998383746642173472205334467522916875798300231688922581165603988725991920957165041145695957058941626263625638550234871558899140903382660748508608181518132557836888031834160878318937214273176884399430606793582713199309664415701051523035191355505075380986078538600177936482509758453396261354164651981048476419476872975504768948084823311914528033562394825538436756078052129195964521231751615918085819091673403950013855876820288475449946610442296492670416839872486650807903575922538173456455209033070879319975709721208580978221402214729218954145551319900603706798316850983002508219932078093865524994410422430280693366709104974664167628991489210183814067278486453427125224752886667862581669129567725634972075741171851843930094896901222377554775500020748766724608874883585743788061604931766971747515332411723410514224198124883739499727559016816474608276237084017900488337822995960852883071798510664609936772905950462912136274822564438984116041540471875313625002326763448984972640056138267194504556617139517916162441746801276692316641849378519400808456848153772902575160167884832563295161725426772352626316549676737093020727649134528158871541501042377288992085859899625160327368685212673530074693134792127833799775585157851441562872545348887837209172421188776946471807125916737155696881807882160466704074579227144499480289644177930941967125779054041161733014408629925157337229924858634849885818976042398032118262079277790928621505467795114873643634790504116393000796683948519844477553011829572333699046980703539488413240784254379119639829407352605109052311309485752054661206829052800234825346583903561167091601942338752628397728363282337116986855926586137977719127470407947259584986444078432588807491909637737705668841077313226820942510665458899982697883862140839458053498330209046511754528443966774064643510381395938989100588359109033997128814782076348837247018054025688345193414455544478488453819911547043484825843513623440427571022776398797935977545548225888436531667645633985930933415718016134870938396609543142884127308552034814897076818880501675827094595075513064794293175244950051325795648690022540936706554666426390777561430842667187183183373337202004676755086179577238923022664432147058126521446256341443116635679117308718916492737568401107567510529822133760790167763445100834049523199463160809112220372556135562356486745042685381669848058745508952179207397595759880338599812433187601481073843760961149346403022117516969690566180685521061912788112247270319509017256089431914268571140484898416728679757708671927257432250260726178164238597373343762744668230377382900070838361857846180438702864185580489818365670626379444691944480003169714527286660448135498718889855163390015563431012851560106132118775344631169764749053377150211153544184521138337686101193253298504702873060882756210056258743753103946094342976011463534824532664695041504291215115788771485731035509847060354466578189608046018115468403516838115729230653780552352428655008580037744864626302637288133529697542028896162030887045677860650610855282705328543670905900352757030164140338332198763940207862188707796223285322129641640777096076028499747814182316558223369098343541683771128607344393892656962222628725055219144524253274271977992726536807141124641651190088549132245460773959670789051090999276244263299553863451407105159159118212187411665505490410463642770113754212717959667621289098680636525637034348911458483547759250335988093237704577674502448796752929253331601093382302982576883639398146790761255950055684455668832298808024180836015519647910723522010028855169342101071444304222764049740051466182572945533794686857817748007541720135776643605936666836364085847682246225714863385309552234567371095976541317193680993433748807070921688121657897214944451182242407741081476125993253672487673951079164068601673506019641976853030291884271676337012495947060502389450193409339164295249414456430300111503455377387313472846023476393382947128393513327213304197161584070718775548554726357187932080545099868438201095793307758830283367241036012773077850522626129126448030925611135714546569553109575320863145709491679283858672785647672592180789221432727074516826075945324279685293687916747319420235455611540431835353995944246270220229017367169415887901992784480324430510813284870937249831298406973610964991103097169384157987297161916054265216191095375340721012913673487722537694837264139952992169318879797988094246942870582031303582924955988472005320967343609678865896656220565107326342333569948675919062236795783278469156319266090653881858939740255315351409539411594182526982651923672247355698729700820893724109874938337278191573907923964032696310130750776244066604222972134955592480671846820167417173960034698947762801861028415360799295304351053963671886911931063373201903871793931941017278565306648476771055854678949011572476414361097331794474008100809053250983568695030881766227891277774207718742487851023373534435997107672996185906690032479055496157480301715589455801276911214750946089074500846941218546023075159560620353619646559764971159402305577078741344479760530624257690274092247752627218912705061169881374904917650691759850421908059965037988300409995632800184197171640595152119403234168546163084794291301494715550037291527555056912630078773724469330634490881553755518505832852658667683349491133505432009129131840626461316407241492518329960770943448220393138279803255507117253674762587552384212086613653364454207454393930549813485648932841370942775143379717779246087664920970891813559020450381845530956816599531101151198201750683812703655260275837558905386660164238708325844356262068113388844739089121958799967037991435975007100944173575439685153082820786890303515817636146137878635791655800463037073202339672315910366656969682490374712243959168795095446713064381587115724491941139458434836670078571719953702082941361762359043592660314961791771087895429205485746605076209214718126532428796213734183579429680338522110490912135691844918021124949531103129153767359028799915513446988554014062655160224002135964197270518577607376801432568574353636316576460460434244332492874506695281460982148371937977801561724831584331412079374197388674267828486871811927565499834347232719102797423356966821499444427986607436826345881125241703989363487313419632217081858255130697681406855336308458001733844532812221810566360280514816198185654785098780297825188392621578534270679487290992502148009899720676255121414788551499920718801197002535834704295647799336848075710981575560022738481583751631513801614762465289770114528707657414849698242221112191277646823146150157165732000086181888861849330531764847717174726842714115525633073110682849308692877703030022908179366724485245618305336978791681487938888363098448846395757001764147503678513774870715332431251994913107225577303278050398143802720038465261648299705634351077227665147963640938422140607949412597900505068856620026963599728387330386722502928947973098487188734260833581215749397925804190118116483736033972510797794158013109193647301555897546314153780387158065594489568551275481911265266999739101669860462161749250703095153685824624067777626228119130120890916438631775477688881597035247888679788976059214937038807164327207052681207786567892352596562047468129094898230988564070097451544447418105716273736541848778605709941359375475810966990835695502787218630201286911780183696467434307295778187122415605254197212593609642350052496649704738483924904025097214297987485706295463463356818819009284688863989996282774032550028651853773036323762816294720423970148417945649008110876527541657933558898619322883956034722507694853983282451770180625688820630504307866689575889092087147111327623255834906248374028289174373131176217554146532069372219309630855622432164673312044690438834309265403520957159514573860213601409185116029553572431050563681824771136230902469104260074331724537178624636900439931804467421155757518275507870911191625458025631778586969244486787557248182785300345797616328160048634425732823174252247743533415576598483734449804961509788513582449293406865862704917390013001919898809733075821041795502703121672931232585179212947934268115526029002028480930060391968207946776232053886631263251989865509475910198703066059619456590582090012736806327092558409326761583848106494578324751769580078332698459939649815746681064538137778805332306879377844228998714477028325065377339262709141329915600214507822844497202294877501162651113481647669165657062525741287432695427914802869092915517232630967381610054305553356806054050053132674397268271097173908792468887531865860617195945743515100304007597793312578359377549008751578839802074760291692440237295889011998903647732746690958210600882562602991949937750804339605959626293545909186647609124924679734553891991261980952814996705714750550970076225272705955138490286207774524379835930368175523062243957009405242633140501173795471382020524715682996935804740965898767510727379259372217312463957136710012754400571426820719805589536251629204115946610036779777482779174319665123054241811207237607942634507367261810637964012312545742273723988736140320684525905764417197307946825488985378617539606753104022966712042475054213374491550153554676231949168384597308294290980319149619255878208106672366395700953919010600894683252883254263880322920558440499997573919175540571065242929159206046546076509738787266155119577268532357241661769428151098539476751117437022057833018137496713350681451516536750592665403658056274877120583960898481089928077906469245451286327005721226451694227088606812399421336721027196138338303825414374920849630776835825385037202362955130437514711245677861268496954435967384246951475067989494251331964046965435609315328975371712653960739709314950646409425898794416314906873837861326043116444611180694203633794830840893697655634919539065588487436148211579532751384623760759445991631556417708678609976193756520871318733822174542567413637487253812352940362295283903037832673183493212312397426907792857776131739690624455762100516146739951582849542935519767596235940919314620070341630965145490180370035441482729506971377373722916511446665072856517536302435592111531604032426306558241606402819085639054318121593226516154106735822901838099617700872539701560852902254933821784372301276905893093607145550648373109062872907928526762431737220829011518931744694259746955594731951343875851852163076831307975556992121883371235899222954417082126947353730042649656295939418819806858525906893987860643054908644988316706378884554616531216217545302487400903766485322210327449424741859841073740802888940292673558149091910140237974966324617383860243087917039468747897983357405986128929790963401490635692198160859967128808637695676591286628911276503936907417310721501394934732426330230691521841361597320588521017879189290377314628578392970970658606658286138369391235901593442523642455122073183994186735908947421212917153392702766570266541792030354351928316043571572246129260501745636785525976443276567482502471160780522397109936520175354662041757763997553114873742404226149966001724650148293596021965470223093645171245119411369615270142386904997582997278828285403254907026248142162179465397842738234544927337532375389862401912837546338314325645718491253488459251873946497705196533157039197015210131971293741758302593967585894922829074583882449305858957493547902800438106500460447302136867988018616677994437179597057467282928731057443519320725607465736066737310086140014523195102283186012664432085562758877805864528643306895351572365385779086561156235062462750024438313691696196220819611856289153142022677069577723966221832203061489371648401488900254492985998654412808729079438411207285989056149609143243581185849187273388439257605096009589171580181790710268219930987242746263089464112067715583136712855382351738967158200533826802293848813698868028819691300870348250502687856014343484258338357973617159877504112869059921175065364477027233589294882450416527673559193818035089580295669138531378293588166781159056092745777606853183435734846040910787723044485080438950066628747047856007301895200494113639309723897449969930132517501316285673105753598909517168106573001983290075454544376441138701812722862746529942054505497159731216266835511479841474311410362533510292190666560431986493287742373378206020411226695370402577822261522358288461087291509317838664525549549728219096294245534903713025517367752203982349111887416219999725288378434792310478059824604950495141126859275823640906114452487466346369564687434699010979885428654977992772828803556013491891262972558641801630867042562805901614699269835067829753640153378521290232955354436462673003094452768742927325444143846555572302347854136571294821585314901871460249125903534407238345577874985113466031750590180249842818040721088195073490999961902471819894717865806385311066556586484366373893600681761179681301563561985181173425721561468122487551744631155249902681164085566105346923177222217198564220463410833613983149132985333120436830488264943589189780967702346933950462624440194013122105912777509563867400831789909961430796955708726753137545014272942084445644132519395163813051162808737820746692204266443277617573838644790228454177348611347010234173228833845656831290497237565875627264060680326162808976942403141479128688079003076001457561374666695553242026152800411316301935014408511298733020749835962321115576589034578093027858127403058236234692346951453448352240939196855227113017729248232927188431770475883204462754163885106791765035686035737042669604636961269241968227917108385025102321463802327438842213953865475299259992077265599417777020087887903360396337762262908586041420657253055346857976363657491570056286330375079284936185453157686799015217179985454026750440611309288358443135365911488970166686114507182262844827511260594388643008168647513934346434111253379493477920363447288063111269597619192140965139943813701011372743952533033626530766817328318329924377716412446474092188876916026702600858700566538076502189355147826700157925891838688993744257049121707018884586470560180843485031866833437398860457442792010243550459656680775750991383445115571470585805433608395126646585154076253037846158803447325823221132429526775386882186424699148901286785383871988555239644276068661917133158824463568694022609202436103360223379720496726048279221795158338053979551664417760795133694229229583829840921113313458241665038212173484749511770079570291632830279198298157838892504906610539855377206107780554186606204605647173847682337315419547803147351066020959477252287662286497253549031898681733647601224591680575646607986739804683603720060373504266821518795873651167841359059950859256247654391029256170204601140425629872894552082621603937608311388810510037784555172603820187729637066056909623695975104967913540233977241919404622969320349971705990746546189449074579955936920936187120538788425453871504283208753783477348426495577520287040669620623607978278323811045865989765302457861383640366586978756714445610900078954791397260524255392209555532107124758125550226747625340820216674085889404515203772205934866557702351139298017400013932926197587277996269432677976279816425599502335098249704324624872538096784099356236258237925826123099846415102714384959352963154429436522318392995421629012435897973223231378772600997764780313910859344147999501242118390945365954935156321184891667476204607519564147790758802751439941277101394184728071188159835611815832468978321460283325053926947743945571320175277219057585651512357438114299253647791633615126583742880110318664030044106455901139212417908195048770051342962638270044226559415938217801801555221737656013179668001157020117142277092084472044428359641936697909316265909393509203260560473471686537407701021779486883262241130513145083550537609148682810020739939502420946836552048090210910430980602200743771808813794304469945757243244876563807238666929349399077733459543992328697098139024409653145866728813081957121787798187951335527942839583009039199298907071792589187180469293361355160500931145266632045664409678045849149157615750291194077881282152279347901740209723898988840703901683013340206219465909444630692472739097554542695621271806652171845738611053480722900567352799344694254666855542444028835346627684945295045476334161067120365233544840205898618237667987892751911829756169306468886549859226768786674267495075016518106037513597549361344444308579591662368889203167044486730578322228244835140386852878437201846440151877363978879142812062656565155092531879021556392768462214572436006638065971038093504619558414738562023262791568928944491071729632470791335304801031498854250565780774929561279460037937767299846450323217406857420218621876801081615339213079659819692754128988875025575655400779243992864264579357278865245553779085187539113456652737987848128028521218957193311407401149917750180751383615845697941638229632134113859786947618456376034075479755196247010196229237553970846930089590529704460839988580630540061131350633529032737565472570696121646741704641955178881773269186829490896461343739647499584637306460403987410093267427478793736118867613071548322917653259988565785706793722115208646521672600181048765174560870095092199896125057331595665956979416697884144403625353927795531800428879217915223617354521783848178378285035172478322665284748273015701074660601813111226660017768776034828285415157540178887206990239409471027388789303327757462737877623582589569896689769879597784069440412074378012927352397353700802087986667794072250369771319844693854356453873581543288447937782590492882874059716165614386386651571862610626213535559560009545760750348186517434265021280178381025984251458081987605231042678299158796116070541653797706632208336110884657060497532020337033415360683912181840098592961407626633166060321148627530717127538265603229020946995355903875958380324624288263467695399006930352547475495584114771900195665354590059739349492218419387850730500884640882518165771571227723637394900211152082904874859030236071851352264218917607375717291021290702877414793007006337540205200280929213676798816415713153524944409632363235127757113660676103488690297910010394454565054202706497839174647870651906132683602495585559014710283494149006253388217566324008484966395051047912086134801474287566850470020531578168658733718351533655008726569864980566051066124263427652038193387958758157000139019147325856362164186250925102517112250670599930145278672302117322860300902242566588941159525584646019964433312930013290399347341626926801105329778833012578927628729721749789704735159704266452815429246565252712031277279521264609891257097546072031741044093461657300257457663102394226548967068434504390878350742064571499899679582080546296952996345937587434068080731799451061549887189640741525909759920990763846888650686068974970251651609301978041405667642686278883784092175531294494436203183758155794147789752392275497983523210442897784124368248952358600012801380890773893137264618269794907243414191760464820056474570807594499507416563101879033605778062131328119084772185135111773929289046026184557323995091163720976069662906963994279371130565669382272499119441525175452822547109300076354013660237854586969477241135143706754569547212660096097614757357711825068684194166877401319729504742544086891438147446742865420726134900081548055569453254382235707500417708484076180626204567778045801178405143836561282844632155216301495221301998973087296597467521968753985204302269698189951100841788493044088107185761045044480229954289680584321206517416469480731943985534031186703750193694366321887865772726295846854987627487329255019606072391705306228127411334999488465331707125249367065912550135614598750081029435987645566374283773741745647649402215300760606558414652302615586243885544497804871947367170706846998160714629782698480216037939837060451540588307288055586636771510626693024347402302093201062622123084899730113071892908538831110040799512111563785754164181204519431980907088219756232432267880856010250027238491576718548049322918928393474938966279567458202863653312836271648332794948559381182422814470655624117780839033118055754998944034003981568722467439499716058602872929934560564635556935173436886522437021637598034372940666003177641478466748047417656568584715160019697732677110515601940456471950674929573370996939619909186698817259761331837607147117161796295428539855599721201473643812113581481701680780711926638842011297372245990230786310892208862142415027585647816219834832738609886899651232745692368062609313163017879267795831284952041961165844447503751025238629327758800079169270756318006805382032876887084075223753792855779482348497264588821552630401027000022753759560719607043971825384155820309312996672029538378628260205759995263276093297384897425468093944761669972752232626518943925757529339567424645797712703799644730767139910552965223011136181755093061150071449628627405289403211971625996559466099133911885918490838187746129464774854528084187158273233096146658630544422877953217783024804722030137431695592794104801542280388596586921856157803600247924004564435399659056089484722669235257025814215016775308829618263112045958219722958112199395242982519003973444979217030851625409539866327295321150961165393759489992411617359790207325137365357701223558547328510258965039282366761519801065084644523917516316409208724989252303509204159828163792253237076802362038968663234326944465317581069247658409548498325386330453589875058983325635521973210823053410233632878540461391344617415041476625796930937983484222328421880836354446758149024469271435907562303873478272364093927824653243709356501997296640811783144671147590176054409590235530895565001150947484583890962067648335655841801368942621138901700590161849168204000000748331751959048919448703623599372941332455745250927516047330585758762386333740233008858604794935688789389410706854427112494339917105704831261874345870863501043929670770129502985792712959066197475865919100732123631640637786393322567803000477903397200509260239911013068364472964942096544015377329595969746589675263522001941849076492268281783249072584096049410058939167401346061805065627640010984600757108277949253686138657021293366702689250107730667374844589236145775961259193314858223762087209632391618654520145816070969458915282651044222254025873446364094558558084894037985609289431755995260861192619233960643993638617551205418098194543310023724651761956636823768476833263265720723084778760372622241681491682614116746517400831500765739878982582326521030196588436796542936670857830667189452623929885325127022363226099796747120090296329573791517656411971282893780246283795738340264495559189481299620374754805180535419878698798694543085875060974900335490616371211645307969440029642095335060227043502679777600644559947642371015928374838196397893336478211186266938874330031062234275143157309781722438568526683819073796853054376148062133561898850690034068488797013498876023676312122387263656979340904806419228670065363397467752251652131097613194372415601202654600501571044058119877266629376081195857849677275153915767987137419117624198791056508257330206408115480055409544876697498495509027447700265195127104084282361999499122655214874226323612158708419075747507954735371634925833446956863095118686498680024459696405801241532840162372152497785527268013654808544828894736862618957468153365832489720942688568507169322887595237996878961735571869968254804139029829682962161658910757207555313672938629691904978776420598118804022368246239974161023591620097676914825243680168889755082152925943857133097508436770225164536434518171669900051788917448325514697839702654665609404592649541284241289928722926907646710523460482613623942822991656413930984451086817529938710995935351636860655634778257462468859187097937519573134842749150997038045457998224964934471875784751269706077595722508132468213623651743174469556596608689067348643700588701599269655839067132592792604265868692686560516364030924413011047736840925552005056705715271450619179286401298509397574925356736646801552274925808050943722372514225980764981406471060658752193076786261260872849878431078290614884729698142879945613539315488732137328728373922442688200787370025597041929246612364611370243150546776371212133657666241937234770238559182967730317977418365622662948459294323007038838198879061549058485192973361537681077873111225468030035891111695586130621304243181767220983210567184143363239627774165582080894066415855271866115843177977412751391555885893197251515928361813286333731019210354562895550819049785478207728379774761276528374530411773400986992059124427000104277023846972988957378464610545810645721972107476298500444277422168197408321292656460438086077308318566958281186319625543272859635491200069238236644480792432808515408041083142154150544929756586895278054675353647359958198624125037438938821018570579446630703409759316891034401175986978931263764352680211849150936833946050560246233972623977541426634953423411346599455725234083919160450555490687193291221452228285592350728500404289669977780178989383916822278387358018885653423571076219503458482526759391527695726575398324244582291358548231720594640119064758033708769732004100588764545698096340867410919895626244235282501700606171593036677641354137613322687332028859784234966687234709729180641318075587136617122918537774646854228716066890352244430128243055144297138083024835441737965250585349030880880854276584637044960776788470342483776576941559382097148222996868847374653484998151564229834265610964554969512996950990989970870617939211546542853875954140149655824746435480500763744637786286706051508246099850959318207907874151812224538563696670251065115239774808961421567897482311240850328706878710899086479281805805444913132184767606778123520447031282950849294961465026976471850400505552566945870703529114440366332178008744365284656449103122398755126162655952762187318717038252625318173704466178945517393162222972441688715239738560702838992588142714248563065128562328313254385169885684037243841264978359040832956113167209688025603695346117096460355951928598783403017964777312042825247477034780941111846306825409171383620273632936342536764301641359699612695569878314507549892048663889553091060633203766862109978559148210900683560916862674040427269771741631462175531473037834975034406660406844902337471034550204379564470717921986755406349984548119692535073612354838448226424171807941632532488216793165698964942036388919849385242519542266119913049224581575752909089262451163953625218433812387719150662053871678245664085121992490792083675049836094790927233503236669483550689050805294204245416737708191542387742948584902531387834690749780584844309228403243076925724853793914959342400675797611584266734204971056956110237781582376717715190763098305086943777234764382592043979172043939108459204821388626426436458276492479605346681835597059785518674978595343578350308199281944141538418885421182164609826875215223910617457000555221998955233309862677332984019686109131327738370224154229120259075820648500354883772319111571205965318040742967711116028655477406641907280881708468198803426788449182788190703023177615602973649429698127383526839887920350443642086951789490069143541262673472998787033239978288315117033614025659340602938674369847334549607558950933025012203954705868927127606115713014961569701736046406258775255126781013268423674936544779634665258667717120789133444411640301520151717243674428356200121269811656320038219274668021071088801890156659263065823388197193323675470033550901173003513886431818702808227522426995994551525149822816286571196000234040159801540574862373750444199689294238964752607988659049958021577538856874343244509296219892150791533204033496159766183832884982485849081865221104541450094854563288865226848166516248695345787559917002733414867339222251194481384857832347228161270178108409855368818993921993412543656794549207303114360393882167355052061959338434815614374047380903623033766866470030678891995687893669922115936208261868203464039263660216232521742678922778273877442193065050894518396156383590394069688042596977935106418931941010524090941890044855997905608501870738917065764705538227136345242522949760307056903516066308616361950533156823703680606127987843616054858985981563336259267391338388376935288116104586844465212047663988867091073682773081790980215447617490607601515056401257089205129386514085910652347923116958926999926848036512864899059164381258734729714605754498122055461402764962948444222867015448780348543809362688200733288741477972086653667169679070717095414849071724065285855461343000900767180149785512393289743763396997145944664961293990136816853206276666034968837198361594250765973747570080478460919557595191392093893639829831486926694203821032685787011096579481418653685752407636037262899926237920922671616917628815349000395243506271312219182845845045020519273395067017529048153634733371504249148157154979315212940943540092191232835882811700532709775691612059085684829472113264809433068453547316993733336568676303565757534571258596364974638298495555052409727877733173837619529792713177393028142798934145851419096327703938352883268898687064848695135426994499756297149081860126896148892431913571882474885082103369717985272709910505127946050432376738733113008831165441589102350349702887263698456755966255625402533102375849997745689563291877279304078439188638891505098629510970031695125535887227867179738748843048762418214972028886462179113984604064266992884075451295665410574571659050265447741278197284991442398967842008685941103318326275499394864409243844421578447166002291005689068789457071699226688296441293454547857891720881585213657757755358816746326150372484384137796905495975049884182927426293669386576654248288100827552844641054991826736811129866092444288124728568006874394168268358851164650541962062648189823641398488007731459143857356132380309464611712003608004132675195542380196488466146974784133457861748025483293486308045040958634500603517250751844798587238956720222748860745494852436837996405404456593086061564459856524904514280462274255435149799750146617013478156007445063757774409114137645095837004380538501448356541364610917427450453250729241174534986637873196723077041447110955302029922537833292295889318699212211026254355636456497944139964750376797202436938793384228325581463421927492619228855076622622912158913010120397721664897879710068877918487817319831843275271880210037841790092754195149725923641459703973552753944576413030377129841064989192179980708726063426680140850593216701397151894743563956147885469222399728961113299101287940515268441982221578198514645130508683198411203495574128521034081745860762142958095885723868382189615170218206014933549751797519362902484284923978025935269805318582376681521530258194325435382857668033510824167009339297788332753354690444665366954415712756563503827869039789240030092458829434300507320181569952018470016977642758660494048125143450261498499623544203311650519926760131443187426596439764034626960624446941174842174639100885763486683008684518699825671030553261229760478608875642539832436015476342196967316253871020295481409388326153178074235504204783331485117388328401377691261856713271948544864812629891789066656926666548379417285536583810447357327684341253698642746385611104572702553294014143381592199320524372793811313981408031407315230644443116774476332652507688003033266130938349733517496971136710835839732123775021402142662457962071324922999631039994122792647659271896496470273972971072041333867080957070907081181646141297672460346179077262100221315537813457337558016227457591528640783927485846340576575893054694639669443722753089805834812500808289223518006423649270359961225218596509822474520360533312704353501044672599559208705420271441478446469268466902216627894907060398220311386567100472799496774631322907367396795451709611346505940638476438186040958978220836440136956928420921889099538871230339276900558355105205202945566460550092505526440752833233916153365801968310764465439382936915718004526552652436822936932757642473963396110392334494935428488845222766492931230919255206286420622019911750536987674986844002128150903045727058751641884697574732503986393931066031113099730418854744720176168881638068503090065755544291644182206593162768504523015850610429298521723269620001606962897719403433173592919828306249109602143657804881457240951810151355178684060019472523027703165027990930060728427947659685894863843102975366336784975301106215746444913155891784482449962514043348494323203767658392048839304576295544416357782951812313723274586642586606696288444415085370225559589849661659155036103247051855112439222068894181092379529939343144124525415685684354091414190562487815362456640371794765231142191398598120400853473736269462546682189232698623815300823494795523516347217074466752837852562708415820587447734158363400839945425102951517518079423617115018770304679935130115596354506140182526350084771796581314402001232241229985776573825159032179463837293590813666489208887504997677692217061347075326973276845429345188184933182686455214517840917399013503886958120036984384863739618311393618280124901041158307096794243666702217434262699312728175449167726985863115170381910946028533966520984902502030206519900367317375326152597440099013002444344493839190836670394272375832465664854148589085677103566358149126930956880340488588660556268028340601433944940615856192683125622162019098961919250322860466135058750443562753711888875984315994441526178882718966305135649584921137600762765389014251658546203445329585297117304599253389522350004573447167377730079682540969848202342292124940920294028943674667246403759212710183910322890012385017251820063717976701638168745809865768319997014995994635550801884876881904628354236368446832595420196744430941772325136529031884730732296993459621922799691852255891240935479844610726054461719922978534253797565514307709551081697306701159972523664026255676598199826522300953444743621181297225188934238212113162534958861118493726640646848862590349443190753806808009394604514117047574127198342659356781093572875481790771447182182309136402503581268264389577152192547854935854212057399895453411491379077365429103522378839466017800952624953882616203833806677912385997871207985388716421347637707706398459898654283015338589217085358931179986379146336069789449400001534885596773336919256228697699898801728766521143479178783787315268721330347032914031149583086631753686318302662309875590405484990884832913784549747253317443527132912833935946099878650013450736723177606230129025928686046324797685441452483484964250954201415573768816622788952353596548810408613373339055989724011363077170293523059971474897601700900802120930411616440250422811043498771264380354876015744181341498454038885890327212243896141204336527787901430094843172081004366620999577952960752785156510784774981435259611778695619713144771491760226703439694241548360926116343445301160180616028666574205425842776765697170988905655768638778890163431245649033239583646963970809187658068652908068951552426784774939440691171811881408880073081981882375206309327161920448523362375074339392169878278237351124878161965134972693437069380266168060198344047279017612456599739306665267797804568322420416837607682669231895329590186271795013273231049514531630664763580465257493066496551370470456142187515168195299623061398219687762889648601525685738698304596569211410927644796656906351367346207773963361257377135126542838705641421848581448572217814251421947770165322095295982779429692300065245072878333685917533868117723004544003644276057167999176071036800153064117061474036582450416458299596055426033162516374894035902561091549448762980383519826832833846748816747806659636194333741307137007834940155535897685225467015580056467154744841081108252226327163370256474246241391802216024414944890988999161670791708470064423627718842413324568835047048266988624429531300785220148223295954759327996145271503400570824510680462884873487111482115680415695187360181844484207789742004249349978978034674326160163559699899606385503594761194471550227655255373018083101370005271446698376970860057244826087477560554986084746906496442232769693322709055694606878656320007123865666767872692835194195473509576567802260416041929664660909787504789938790850225437726174604111141771344852915540125467701996762114827457848311737617603552203334136230558541523495315655351820499841522162354508967295855162110600446054130520575729065053430175075131586459699556238483052794349617606744050917056851428381486445061726624887590776773817220632194821097968476677217322772623495394788029614213303483624724671431225976626504950171583817944608598621879404506415355046761970091633389516670726091340337318284521784940240300966942086923790996308574085283650555478533707583907758432515729485385704336311719219028691094640576987350884997622191370772982494414929821019165214176950709817881515423845933635147137964519185341597636628878840093084175471218707644642799757197725566123513408669256646676608023232569721282879749137063731088332194321158763754367737218419805933604742526209247623127050434997980020794975879048661243117119050177169795960336637525063852273497577623325880106579274733893237532399779100059715530621294884006133820601059734739861860164187262490893789782356948287988691287537162686088398395121715770878738489649383721758710064949047689814640991340858993497713982463972572340096001484793177337974624762898821583779725750767213450423143820947997875485525892425906963700965625840261794109064815292494625274785870868154622502394034152456179250253123044550791241801623133083111318985434523868478959341334742877291226324334444107456232627422215913543999582840649347848069391039896692924991297338527434545889479853285393148865990520513880046340634458881705575375417715593370825205145239057405180063821296790891203552848972840546220541395870413743071926429755365941150711950196420962870386520860603177493195477831150177161038941529775923372608315251942640847943514651784900170051981284892084855854611406756915078291040793876636709311073026560418083435779444684167628950358213113035731574863587345605073923478425497344993469827361877540329251200709596426720686316808583431101655099304345260329761870309469007235402933818075718799647547286115332283454828623561614536758864535027832375007071514465431676620229314749202303072205227355985651875197849221915142994741612751002924349784031665790690974639011068381990535901169942512923440652602259059978022807034708850407255651299142962930679280330043560387424155090401066791040622751514305009366782627479923915651274327006379497969967501625261543107850901340133532378423718601143826965857967575151064346832933021454942690468185641125880585071397087531648873960608736230161001678668567648877135356746966483301256084273285477499719210985972278159911449371719229996505926153214709351203207657168881414013608821212902989482852320503947169923327618204634568449307440057514821751626290291245736830657606912390168122363071744054257737060140462299546497898526591396517310825221363167767462263546141890525020446243588459328600207529241458891994884590957708278439952112126743666173530731398255813289262823879580511058074836008356901976811195248930621232062951457165043299652022859956754455616089029738571047869636192310947185763429832523476638695716047882332048742187305548287851057605799083077866159591479838847070787758181401095231295603370212081045850207790285208922874205193022521069228154097734533068784637514423637805316270325154276186720895373424146726032598979997098386243055857656829510142243971778927682645006854931014504407501594850957899394480661451639139313606803711529134860676620528134441138442184777826833507561415418728748537859644426830694347727273667933450866788871091862102473105357870936481401665173779301722531419628803735964331953879058889059071715250876579549222431249652955095133546482203840725439052149522227457114163379812505639755820760777900297401232752905251960472665661659849421206528190501393177435261362982977723801342325636144885994694712418129168202890002549075888340931152174198008042694468127523143271459735514606788221844180978578563283905454762615287074090112812962535763000040363393142856826308747605225031599280490304604612158986174835302678235764878901092572344543706525249785380282907901999353728134683312680118716798740073567301192902782812872181728313843718905582636187594797801367011963785423294661736238192824376164051147873538576526078369038047913072011529622746607262904142724218697094743042349354157688270357884764765754787275379645713233560917482401592736345038288273653206452090027455218516372512963540689910222409924072881866573624495963451550007817607103421006560785172577418338826396906250286527661909932943266077755535431845756595491615766240540502954058368205726494219904951391129236613629008996440631037404801496328047829758552512088418466274349431843674549799545040595146214576418366850424699320778274060839994085108624200517574851245971572519436800370574221020699351278433258368807011138153589233605187171701212823700392647329691070103974889407694378797818040287949863414818085248306480851670199280329272057575593918018162493107726283855796711583794582159590112488872429322601356203965207899759048815018548410200514705346567165680388630621046166609208420396480104162507719138778062912561964228305320692932757076131918300039489382788339604656725026057633703748728949188136660970006547887099177200305957224046802692316112493495701502840374948529667854341444560585063889790471544934512789192572384807947942067081234920928746761074282143379681861851766201802420885483982518480235680159808069559169023567407824113589786418719471370057051452447673264331329134762452489247559156597171701047035412218324485042671684241464103864403363318709884461354560436256370705166058697430432486662668090607529008135898399599081829393443868938938164019893283842013726140251718732496542950687181990721213886984355475438849999242519578433947053130993759862445042215162451263705890749936523210690910283986949125818723402280783665902569663343787259943103878184570287408129578318755104516873732984246315215105285542539560442771156556635245833389665813869758368190797021097854259625730037611747382752025863952944475968728446957998249474681232272053380719547843620487927885288473635859407467883267949460460391927090899367936200562919010336560052809855255721971646588571202616706787604080756288055726153555623585499032116655672080810924074861582347291878331317043477699660934389953539837408083445372864039129790695827186136348808028692398579688140678274997663829293975582437626410410964761708110359467655294298830313533589612551583690395959665231939144735074039308426420918175660139920932493211974350281993553009257481448255848320993451740248803097174579826653467509728208290259105076068042552453486900271971242675929754699659611203454584263201901635825255474841237044476364114946368969176717497888507338142180368088777948432550514307231987904091472077519045091671100197266818841900850586991667915211896177543139127611126046693927118826514599586480958522402326472318130487935080406841385582862151638160460771234400585536936524173626432908950269004599807933773665912438650098580627816100701494959156886253208603903783933144707247246492623096293166103877889098860241135410527750794885486393344423492585401063342871265508499149210486830165920967826238458637700253342957235474274959744839354596061849022126622986075964059256637770789358324323635575241547575943939809835693493357541259184153179806194164980244971295623771674501615669083583368365618966706467674442300736146990665063998960672751387885514019144517585801306142665028968073555515391100472053289606012017370698841244986332644854595044216948742495197028185114630195145849933390229068640348230649256553311555618701537507377455265297377422371095659653582024612914518555407671475436529944581441165533773939466133775274481978721235517816218503785982542011775920324752084280247896992794444672262811691676328015033704273149233782953636930470075389671556076824317771797287023100242612979263592193127500211106368601518630931055254353664496928524807068942756646914527942352901560959579808151547844429052547692644974909603510261324137070628733080149871888652945020542181522565526634371709956493495422524308473147589745645352208892225381910761962897106635526039242970641209691149116143135626496978336627037339111570068223791905234434455951363096114163363162037721557303812991440704487178984156360665903671318420119375620907658206907731423271567451358677323122350975003179997405190162714827625608720803805121712037461826013143277925087298810728404600457746774605108617315620669871044415772537493655547675610541391776624220751350250110651079215403700352002658775242833221841410158232967907322642892647969855932367514756582421693642537735362803647513698136240624323758893678246885615916033159817477659076452460958015190368837597240225482480392851618741521796986667629885117647451400386893846214617642017218587886632857900250680496413745504918408068527913542138049558450488908554084306842432773335773843379104132218123272777989646156742686021658924963624152292990850292957899171991311834863413452625354289606124112545638780290328393445932809082975747523583178373422344621358711216458906164753909081920138721454297020225776998363389045332083438136404873333324850562211069710909265378391877946181879857621251639672384863320647928187515004758431652723391142224490159961036364795229010738821203189915815358179578825151892128859098863470746529925418646891401751811782129528080333740211839796274064362364493138537149217976133607250322490730607539053285242554378237451605627257974750118131448839613150155284002127806741677361016882037744099961693958913725580240816693088433200665428523946347246905950811569652318162664722979926355478277945198660540831900850458429077207296348638515208612996477978400400054238994530999654353428060591178663819039577126737151648558446951964020422164067899996632335020530821107612573697389299550717197712215179647955966325130766202223216886351765400822389825415834191752290069259560211120786886498328764126745253791450621744866790293005119051838891871348641011403606096045578704016602118589508040482179323206397091070967236786259133037181355325588739555313117398641453188473936896175926926210838969770060852081157711669947963887260205852498457337760615873509178291394215570015253746957184275837898160638245694766627782725586894844267848216898497010443912383783329600768927911817713699131475055903259113411008786731236794465150216192930403219144880667470950712370214555192169124757237919610492674497729846023488103355004355269535435023708463728896661673266601164352398478052149468579668468995331228195197161890760982771292323080481045749210962317172629562815348973753640575560241731890155758879201435035197246283041206646395427825457598335764120066569367414274741548844626837226567740698948117608377527127861380925006258186040278728175159546328060699407939927755942300835212639594746519472956795839438394723337192047902422297588643071652943179701898193446515531013827128606540165096810024574450270540388342799964547826302501275614055217614249220086802194079097065706362101366945906000221381640837399028883210780647853921628179771031821045755731511730264253343217597249171359088784423694286103531802947722503087542022794789821172882079446423342152548149067415891437461051960383104851304506662852397548471876859885637558466303704095229586484732472939106725561704473136863907087564080990074565294288589465679829647953241679168857598383173786482553517352096483672072182333196783150615959903055741112941985110794494867496866270207427709124801442504487950474919628821135635596365139087542998394128641481677116816159706068430384842555882694165541566969207440706021147621013067953872316460038719072450692794103036734668172857561953622517449931327973977866608848818893289312927866016745549706552139597784679189887865628725985392170836182442130198076662415296021681004345547531181835902752870281943832731807586853767004738854557641068018059294441247519885339483820793435151326720371205348761126374078676386754694647346613129567708566121158429405419072322205544733222955505998259900157133619414390555845502963466860047514024858970491264056909571953073163697969291940640195685418708345237202934638172961995266097932493462707936620602159183044549665643571985207900388298307619379293360659402489160046445585035500259435975717796717055040341198790929547906514592549213819145922761119617161426555842366764858932360832942452847335357616126330441202009543596078332335031103438942373825288623686658392042814364236419594409322034178250814719457555712533401652915153216691949100152541756125474008421926690995332854781652754825975175233303337602538183730786521217138252557520364737568198942500117068950264447338625706020414305646625995978608166888874611874647402257816355326992377988235013762525098285010018490106761277628807049373025925942858381216621183812235316939250861094743465006524823461500044692255950982243543813420916396921394584501963536356147271107598194888537374392691636113635533745991568765532118366741329305690320146002253360365983370158256611034433704811512664777709685235486377327564251959345687183549835684672725607342832099818776800930320813417423382783139246177850652758806446125525253612573121942069189511006940184477159768028636610151544337534788768851000734552648689666364640582421809021517471369133430358729155653353106832085014654916266231993531298881107721711799177575439314109913793234189853868626215088439142865514424779791836956761710850178707404958728047824592977330065943968706617002860467406081049682577538674585665940961719282676599953419774956316982909678037988736505126997018006048531610108303837434891375097836500774666992724900688796745437776848137573493605652514038263228416200343813478825657935112896451387261954812588241398342963239285960010409062123013355736785653896016202936014283062495127824118569419932662228924749875497215175652265699486067983555308396526702909896048361998332163243155083987352731369119095319663002935103567606684617818611644914888726951025437040701832239318744807065636736089824792015862500799007407474904318301703751457295614231846279001473508008759209055142539908592237389943989012589424048947127495021416183957283428949951291239557373150507519024613594301123454526311924883594756481836106374351145097288034798182240338590108325866852871444400075808307763949908136838841977103534539240064343098797241407200040650527899096646157981026159105624407916322871369173950820373457807375075546624535666782879002478445378439229513171622770116120172629417699623467729651666101031674515641165352885617224014871368925310705363770769139207779617464159042751846293149645365662356716978154145843245411625340493085391617499590789051765006042810879440471524822240641387443817642753484643317597546347654122173440094076258363940365131765716528927632803067613085237262781556610780317849581793271586442061641399760241256897953615935773680892446034444396009166004346458950675979740842064191988441694705112483635513761360275082732721613773697726088786462495117081460855315072214856206584935396339323430763548904594164469216040393593165298934971354802684929933352005017973140608748428147060476430751763747398876166439311935410536859589827655908755311738909294911062536334495374991424809928223909724744312623644615720742344139580313605493909965272052255189578103971119927460798138313105296729708374188172743919825548927723991672387521924032590417796829270746817666367008269239291078523896634027427614040313133781568858192073089337876666330899239287552283436815313383802843304192907347946895992890594848744718988221925754027374177633019149725643466238433204606093659130268284510199492813459502929948066474777474208118643703179731328400773999957543809193389061482474799960741360110124790704688381091545151189307443674669218217537826369019335349948068919899247079607755037761929314004204046544168775955947486074307523807554876272073463476253932261834390949972907284402586008979087441223756317778999567190462921545187500377526340204641469527555474761358854782854627441390148610888043897315123767019653366549478983207997904079507858820647557732053581675429767016897279446984434626936311455373974316048116966438949081378789177389972925114597114937327189783123795962173557050743575348874239101949884996232268268848533476634409868769647610515133235617025109787393861940744910253443760900566282898501439417276255051257775080928011877507671139750015268287230218075462799308366966738945931913777338278555604056660306163208799517702626878683723738368113496879874904456507089151622726929988301000598585658110678499989375806021791626884162889920364018684481053192872770712259294984689815063145546679092299644103371023313972974367026909343825137436264930853113588933367653504809879534281112508759953887804394103236173004395191693799384645621858410352832633055108215359476213235203722920898855865253452375061069124326166135758264075631190267101099136839770247975646786883030850380595496282385565853106508372806433290699170150457837417530926709912284187934626748725518124071522558818034888220229597440242137638899505611950759400762347869116545822718812054098788607231416098513336810415614010171258857996636365388901465913112345301108144800536574983586080672674473878462086936213308588097609908104187738916088677179092879165802880090783556346671804676757099406578599389247717031741067515756136431851044720586766166423904038081920870726981524284725414413065987779845595532515906487114586514490862870028931262229073571674893308097816782208740136048690912750721654334143791671556375153506949077978061979392050714917516602485337065518660056415971030107464474318735184957943502391578950610644156502424432619263689657548444763710730696697875475961106896148659708208197420694966676290393060820574474223575324172992037469631192396575982625760910348954252994337320697076887536214293239798438618854813999262690966267071938091525833023556444841599071853994122012063052548871877185938284519260314984598415338002504472072770252456896267414544937600914768750987843419700791325222330808490145903309649450391233432822156140774328203767299577924892464306180133340765279197227672892155247281507519992001004356348861869118072636391341462404562283059038757521034963532489467614384654164966196168565995805979509929563596295070175516891173784251962382333520117957267464844395120084721691755352910871134944856896176874983733025605245617767585043474924664294708927377455075676265710104225550614132027063013213558842149753143994171935663591098521622145404477282281873484748403651787304311381648711429921439446779369851537252218532906005250876948835492121358236669906313704758989827804073978827774533423383220511433628470719011861884102783366546570620562271979952846114671457204424658643057507852964957655450715520819663681779086556555067048203580657392675225474562472299233672168262548297100700482779501657676114876349318508143934272333587308918587735662831261148084634815988568934812409730611628079925805703776353222534919581470403086354066390378481695730468505406467213883742682407235992981512021505545008657511176290211895698697801670231683330648127921410138451667881324392121274233772299776742442888932133792562884926086679183477692534956008068981876172593673969337000227448612970453757114752274117000182452453276237716902484345450772490073633802611079548825741497729638192979282232571695792702811169112078846885566461506753960721093503353349962031865824874651811787876071390671025660502417891878239154857807587368331638101604471817584331975197575799298918678675736261109960385296403603236671960198648786389064960577763651754022186984904299773901945265912580957221659673003021052154100620466699537520644775293450605263828803237253014090627255475285701378892497332999750840513193569105600731938511046742636351548482796428033878110975991185756365285335122233893393029895474603922270707089924640403200856957004516125095330331384225154929365890163556514014697707956468872822112541527659064133657024631978820406074639061782420110355088981396291965670421309116710651085293254951077572722807408087035260940056024907677133193621907600391343051101837196890787952026370463948623231740596174541637900971936140643223370376347996574700323553893059490376751468753817062276787334480672573642836437740429493606608991042624934733889250477455968570608518941345084598702690650824321717626203825860432362933764216982818285517380947873345610142691690700036999536539736493872984791215569224445061083523736496130022343508873432178267713765782599116851776203619110570045756180294272501525932971531522662455132909362127855500087545071604771422407338081242022371959533491849129595723425081011365340378534257652151988643753121389072362822296230557169155277025191294610012174735757630270215306655426968950323452713295457063076405718160223137730388839103392605165801344121776464593421458364029761061321969867722620158442449104237395961837308097625972749368503478820884214848163625772944104660636842394384965435680849953139029360692238017351896762770113205949783987751878132660007486926074114408365029893697679532704854376653070521681473055054965290174248240978344709052280015315065817008019427212924832017838259582203946744072182849557673975149805099329085111935856898717387939042612733281688511542023340706524037586145397501517021911619635517843995321902296418448719148529212674132279297950855589665475733791542112677944950803440978884726301656451926320749647323643118707804721995683451357954209578601232369208815974386376671709097228180209628873267660401732851958441928214738186658520701334783807548353104327249032463473827571397445499368087974470749250034903132881468297118454638414063548067915969269282110961373544364903369766920194231316518132743053092982758816815865200607252867234260629937470345418104477508109292676068225109474179791855712083446401599145366442233303470184567975069836508538090934448671896941714461249750672780046988799296895140316380340450029202358400903710705468451720727230961024220952591860243840237669597882996608791271281305197117726920698874934639607617001690226431266554739097457908825016717675232960489734319031302643788519646589520262552132861329659613214714718867426419337236030078020093140556508399504075694105566199362496140808572508740833738651126795466238556536690526639051125971503920922169278196986878775724895037616116720594607845219540121878657364606670284148990421683517367131041449975985890973395701805371515838760917120170395323380914294052338803355738232778453588745206791549337721433733263313312501927879546609986296235075852537090428639932631705577032682274856414807695162241504491534389504718987646585611977238455468025584448638518531527366676784169860581525249598668228159032857075002772627295353902417838410385044852562247817209771878115616166850621682436655951667280601140072551233774049149135103577700256509153984164366521485688222425529906487045802321203829151616229901786471751895964641001996339827192474638188186504086850083968447009112868451402131438983190675773067184538965582203388481265410308147043135409164784700618198813270543723547677234110835699910980727093606153327917652737104104231669290302998183042088123571858617835273636209410668957908178516520302246922035831790821287143717519461623302022437806566185609248449002809850409739559158056997919767566454412386512787134023093263974473234329115191851626300500819974651308368114827236141436284486528849675784088568738110263427240072777738613420663264749870241465497631182092228474476190353685808103527910501360757960737695291691379128733931227277439160925001943696699940046677007728478463330187678273824734365991896569391630812434104197924859956577763938105686013845564589637077966019673800382728752284889750938404923303836271892210441875475334601833870127971682467531468093243119246539094518460028433225596148125490728400117169999321248751591651561366827445256605167288094024519704435246219653779258686064457084688540511651432877780148734451427592971604700406128179732152088897273716874801266838347748166359279420719251768217925749432704589265202587035276409242531186324143648737895003698504510436103621186635749717062566253825946476419783867239262276054199201079532997184426322007980931431357311545880470621395288876648586089587413264950205445578237594559992201756311969834071945022320423758011418602139568815329429964236484390172217851952347217104762875836345429629655320716640932742020082582693061886418871012605717042128164295899457761499060230333832937824973660035455870547644584441882731913451741672939359504827005021256629058477615762777501899914247491214688165083791648457849034023535212452368601047738831889321448248339751680255145673065438626233532357607573148266038916600529299140756571705294373180445534746538386555435614821876511466489539116453118441521415615423724422601515799856825861901009170139318694548214107780121084244475802959836152880212992370800618619238782416717511259157440147740739667015120523417090256643067669712477566123424154918909569355563423364436603696501774305659073097434599241614854843176617329257483454513635146549353662034777139210524711564422467519087544465267051183845242508453008072445243309739029697409534144041058354400357630820023218935957309280135091416081915166212051627533440617400892443237411987444879437823336466787822377817133880400718852778447637288587337457984634430594502469180191336627996445382138518279659142093208492938472158066995082973143921188527472042393891818179060421514145827027015849776226344516294040218079151931752172854662586482013259920116566739445251939529680637479342362118602490764295190560390536977751835226652716072744236173053571863548575747920784102901703360189847753185206939192145747749930804355169422320218745945208016315532865633501176012800173517832729943497640829470373953906746931970827906774926785401104261484622570344954762160523548613864673490008110327463296699003470554187378971587522687621848531975433838751630674163974137261708805434936875596667664539392125235698324724087776131238353018875445917602815646895854649365039342716587967025990348356267216349583877297964471360903516358175974747253205081070848034839874584848387877219619699880780814766153834853869791971173164423002551451213793294686623957344903763561334623057320009919414100705755691451176101917230565433504010495622016257362537201922025814465441716081373560760568443315605100511547067779987112474687347156537896262368291711214262704807104234657352080139337055844739812864293752856861474475582213067953811805272502845973242191725101381646163609684559284844057503401324437388947880593271690840098811815945544752062803992334573053584029034236739904733939416263767770469871098217619636160418672695212989153350211267218183539843645704087987796460059770992402295751816151768627877568094561052077482708643202776541488852107527992103663627173297954686843630558813447909429916711112721655929647492016474120410764451004725428756902800501741045991993306931470502227079355898709657017151337770533871992499549205973658803928720758788811180488709789895422293322247733716873411443691044220183292094639728290673641418825744614923158170444861572765264192719373124955324178048045552579335816852606915438907093214852909200225358087252712096299900374574952769405268590539826913506741130252427086701575743026446416648364985660270456933144543639249280758015080023668230429194554281212547009441118533208723971500949893886083656086883800290880889175134145018458791736877041077158764114086563297763578549824640778637575198551837352563433497998309890528868483150719488504367035300093847785461667361850255912170316527016653169515349669879243524988620308453750473799744788250206927564048948326801236678582649896813091524090594633950369325199692579924839660257690355582935212216931104670013298325243408906762007269496572590969386546403324071517689101679662576626549497297817041964784285993316577388243246572059921203132634917990081241341585133315857431115104358527938197045254705492042324340060302360421990965550720048167108181867837468657338680201300283614931985939745814498406523665163743136559909862487386198924642379866763985653389426560088922894544797095373106932476568969477327257295645162522277000214575616933697567814559742829063056761095924535762069764397193897076961646700242146030055041377455737865730458277285088767239267336565484527461361584965269613013495471872419496886077143183291971551647125452423303831647550555129154184489377297636212410223537360981331719808319638898229388589836072503392320233824031685539296531829470066604331545054746089194384939953454531055151354986192843376516173921531906075261208989566138867220403182099901696364577466426013171843744523946711571342941527345639805280606288512134363506121319037278921199208134357132155766196016684469719777780732313280555064861739334995687211361932635786813582865217931634315014450436099869428208653903400092397586829968699997519004803961784557817529498755141195646809452466061331836676423535566867433149543447291506261759301309957860754236075126496631294549757550884904479625398839266442512357923144777357257042977598804498672820639930829772587062097430310181512630082395158155805227913221915988642871035535300399856700946468625294810320998460629623559977743107219061367277770746699313130563157703947584504833752194132415519630544044468345469567070462825321983797174929342636414355017292485048963029463750351381758123074895970363819769079912052193984072461265305959215010743256446304173914760022042943049053624632922912950569764376747719738897778099379455705189670596660841140706651744441285146096212857420754638781650796150916131995037653303687079442805694230015846734856267522503084711160417186108127147187791869505503346971579731787175937323749622859808012697523439070453247034503101871982978748729618977140713950518635066667780581165345733078134956480559324427993983203762016654063789365755262159863871388988189201549153583902276136289573284638318994658706405647017039739602762675843327568118344483193667684712561364348037825476292289353672119851728749001295571306185760448786516821223731755288607157033055033216529592322143434412580106160267596621120735258846874837821014321376562300329554909146741930971240562843611011152161629414586033921788825639384620047922705197871953065241626099954731886571499169922156741790957665747985934732941759951952686292329634666002397360228692362546022135066046120455954925405874416845952051345919820966182559774792921453264001161726284333416288236861320054420962858430341009713032057501830766519936477689074239001961984323969150064187666250783912421303759355369861794748279028704489418726752093798872234315293099673516773652725058126739990191674483711737034799785102948475076008923973259902617416747041520700958425839915037133338744246265859585184303101905378965025920159014589713794558229040754664504571349178771690657689935858205595383410413977520484589144968843359945425305288493255511437526057215801744287197369538449025684248266326873854236972025353037016116939343441618321538101176198611864398548157373999283467406297397711509736180802523175775791683855189950423674954902085661637547398486723755514140134661551687937086877230878573784124593090992875387123772098020766992159740094740957942067607813655293053304746758271091675590069509456288043340212174197276292395881732431554728387101320336371173842339779601285437957111103406500975898549847080902834274291234809965956905573816264096163953648279156871671503011354116937565732260582005151851043299434708968500560244555323067244487840455156787920069120171920395121364382067178645453137603651897114987750468457424459284131383728257995825697959704046077391449830224477749677384655742767844582112105236346448435546781720666765717436620686595038915562458802875670328930024328978936707358019266668282524854669957796790221435759154624296060521062655203044812649486182349598611891295528869589918791748014321554246169062227524592964549301145017288470676312208801710538930987665301347710609151206797346198799093338776874861553036646078880226630473112423090271758182216425441187487872627285468809407523622925634984941912951446450085213162673157961381729579396916081888144411139254263373119596978062264652296201455421320910082859205809768655431934072309219325981321947789226978631172425316778718682151206610054915104428110008141449613752750879933072158298745962855168998598876087382595698390819542540028916736511442041865736312150918054783359599050706811837588126223373507858074755888981016219302822275729129195284081931331117796906136114118766981001302450663834632222591011558919994488382856279647884963149322875405428283637777831225346167306326020431714166046091026447626479769467732040200086781033215922901802254208091057969056836699041682092559516009896403253026673238864361009077059196396390720188894806035992469827159491065888773552125849349398773355150987421996141600998218773085166971210928870107774411779956423895083710221849867664417354990248679248193114828873343255207651496391352817386466976011590948644183560007185003488638894714101355540759111746255550627647183380860505694260901894549162517566332667759122312582954483898901815931810876874905453326494580615592570194973529892020187086796473041605597125862767301944070559631253718546227871309451952793257110850318976743469830975044985184920354416983028636863594912709993777708739188424643681056739639864365431742267886389636266722406366435016251097013032139144318178344345554299318398749326390692455050190083137086786321547734476054179317120523466541168114698999550601562320411606860967292533731416978511593876525488540424382654016266207794192997734218897377994321931877057036920205927723856086924714959612114014752084247921435688450717786409257938049104904309525083348350429825180794695250728383626607578537809908222490743566315455495490647239035815554882896979828092930220972669971441411860255413386325740692293403246599093045190131838728981066868851959581973727029395287526698301990790595080888320509083939411306536034115271177122791921988683396018892983697752080625737345084943720404175773177293071670949143725452600442612926142138918969187116388791067331145588660611925598950070944622005382169354038694321927109976888617747592072014168933166476438809523870886002751130591245863659192498606470558944305185955989063297023321325390826154017929309198729846094705586586357647454537182311329618933723347343704182636057105273694993722725404052360546031063143847135131258235280708723751889696144757871201607624163502155260055794178284658936273509935881097015691095769339824549370459629459428036154851427259057923564082667247929270783135134904851998328522322172465100457231541675356254905171887261697113288703008084929710897485905340105054073948911937168294509462264758081426038085808596096803871669119959990306478482362368529750993827777929231263022049022763085643948025427567831570808610261280990344263335573718403373411295845775353635956263904329616770467780949411682942571045607765695937916199137437189578035151983035962734662880143345752847965020852415022375333777875814055127763072450215101140282353026292540425793319234924140398050597244629796673196204677873516974368668721089931759335974925284519632572087382536364018332211085473799779079277380174327402264977559182750665471138028438718622582245032800635154097172122178448391398298571169280990568297754172197524539773139660541284059253327610852554260133585465824563157731024092147345146598470496779385065009848067595846677072602539776775909799223011520589231940263662326520460699833336426640167664716197164110976716024443992229376844638749268424883777808944064756845186164612280231254807889801570695115652082192740635119113208089607763896167641713010251972552044978517148758676302516402478706802737730542216464036315412762618555836330581944010865376219058991561118732036823572747115509842807969224434212819770645796619817011072755098771736262074184538258839059082475017264081010582484396639948815426485778732491915031413439941307730863958928069646019294524713443038579121545620108860384129501239816417969302117771114534591869695742857500239719557535258446977328997907947777262774203297743539864587290907424975365377200930076946333476680781603326158724061746628528141909523609658721300355003858382695655063531404986166619796678947202987289364786773884097640851083996426061458974311829162071573953209640622688662220284645550964248936600666283089575844258088136090931800279061498174579024149253024815260247036300669401982486252755501758127818367121328926278197429531849446351955823251672079806829201550726891233338382538342542139108703838237617151415618286163978922860158011331882044637376788781487211135474892512073612037427826667701794772366982928018554828318433617747997028152505340492540380377531323297074961879590279579052285206280537964629247842611776223845165064909913589267518404943285395741860755008150824825479223548334911962874458729087651540554803979904919119549773336824165640050818497025399147339771685219518062087090790869350819056053491374265386774379524323529823563137364559948106483553149762405685150728147743858406900684655759288220576603511064767900246207412393209085001003835156543059460692392340231960601271546309644539822331210352021839250399308606347663203309550469469462342262920220665871480038145311918597457333035096460903805947908136165261023555841928423310863569129361696241316868320812953416195642544192093035107708095722032056783376091170007452008470711937703333730570078181489512616135097963390130826354252263332038474117516255531595377933209151843120464778975371985853765241552852234002083872923794072318292288039543829942699853270716139657682969040743834529284874111332393742785641020410095647723902035842495564248173994681444107645175209199431573606339661196488040461908168140700439916665778914469463788880536028607091864615635922431318312312469191593184269599040320893943313537587093834186828163235576945150096132650898825865955215287859432050355114829859377656649031814760062675556260736140133602920589006169539845365838437891473704957185075727374325763257102264096016860305859211068003799752966447266649207124432835952503258653042722054955893664642819714018564482851835660300735929685555104254498612569376717088435126980341629489588108802668274765685423716687784528569786348614616170006890372625669357596022088436681291164694201063982997553023440083907989573035166828960278500426404020357857608983339028361196834919563931433758942183346237999855064077391059917184934045114008552468444611516404902041168792406475553442948946054141815039127736621966302536780890100815897717153663376571856759437501285115800055452982261269230636751070547407831517785026703312603337933167397711238494409206902378037135636333753209837988535768076360192527691525005846893707928199887992265641544930574130821549413993881871849774825110806601965265044646310655180007233682111642625754792186777656222057066601289207050753654962789428445346230760086123518118352132915261094768848045827038325945288529929693767327371703630310581316606522277491123899742500722315380348232730074767155250526306224734592924797755234796928502016442555786039677924482032151401898610005141675780449677887704801793222213558765818127544581732972862562897006021308813194997540467989397392135171632230006977337334614790763882645004981371519834654852646756131611645269579526594574045798209790775224991433289063007214189570647405734186330676833010472832022102862570328647161897445788845877331592117232259753787634435451985485829955824068585872841077429764673271274258698001715908292082162806150687157476798366105216294535064745491838363300514717427009333038029020768319362206066290242135906647537254512876170961756255178159129476392502507375966654958079698608591842261096378857426550763646405760624948544091987384177869208295396179110608767249654935987819110236426117803916830498613812842889012099138288053344141000601205686676145980271421998341887972403144268699608328996717555160525943829442698316680952805705137325068855228561583405260209783315267275537237773757926181936024283092842268228291471673002322680718791118875099398097263833476489176217979036038205125295921908158721442832349748591876524278295920372916214460655529973531542203406164571771310981325989249221744396492469608524248812407215471970284664111881369899767379872823016407547721416370508774895634613975814329034138435747563014636516262912812908637163498216847585682775477189947938690754068301419749947953142734989392003820877754295499081430411018308080881687510269162062365762351449985136869741988454958784898577546873323878045171688711373879741584698946049480202674427002781014562092802152634113843935267799149457727679637147912040072850389857215502405509730273698923283750942093427059120602586924609810045197059810078836915242120149888319850594639630040152739286374520192315469757175221935925969054256563075580663151648508143814887327357353059073820185089808451820223614505785228236042769852725096732300151324731873487519019471179789218681439946358648343649656471902065057385349957782207173262426428413158309569915189409913420261911111101929328681539447525206706683313923919740799192887436221407864099862895616634548808873113437954438575145669590435325924404101317502339876615759597251792805543223068589737784875558812120071537896784582845706728278649969131083589987787399191374619189867385994508832758510958664098914934752554687901304843808460577109571308732724438415633295132865311679202426210151285673251985848637678976419086425772303427946815747140562090436235132285825253662627384018629424928042359272706632561193358141401550836653557905594409989830363161997500434596460901901702543569927824191793241851857524850880440828631606571348678806279212738773518879263019155895797480760788504073205025637337286522480851760694842283385601721359436296402888636452922883490550706563343104609932206882713276916598173235812615781898571979790067630630786317563673148732328444832750711176143236683248249933044146919274226549150532510283191001774234448266144404596260080198012879967924340689082138983708728396531578015411920944245348306586380122171913556485403051812637166147049970508954688499560514079332512261338196754483872445416908329262702977330200947283459265707017409506806128037357974200112274388391840971460696545573859081402685149353596914639760191189793213075519714247911349130432406267453511115452475685272525641549195642739877866406345194172312505331241489771612283925991909505261458741710673592676142112501639419986532309910655706846207084123121783934332178370730684877033300629459057666653557576170412577621405618115204056886856668508237206154027597665698105520817722108365592584436287587378028372158192284042250403686739941275827024129731960979130366638832884259333803873953177726099721044257173657713744372456611904811895923873530539877871468153050407809473000605045922777403281056767814342551716346246985614899982431478892594379700319419665093459073255482670721395961484817882989613546027388183307468263401610675792624533470648616613804257613451725939045871148783331834166675650248774612386879091631866710211269230642652139755418656226585938530071714464411145498524349509553026572014105313920257955340286056895810823171569928688057315824891138886941100433072652837429815196026112536903253371285996653934155127084763664538035958645240372326685538550914323209367888825898614636493518345813632612869943397009419324529030722182407763079005231184827243702512412219594847526634970506771017816221102898725843128304085246935889879216865551879034771037476488384004787504537867053812469206161012744333212497000524050922235450010005162518495102271905967692695759974933125479637624038880550583371026951478770136596739945678868959653833766012020456219624778715642286020134122408246688579596836033389751957024806372416804491119557789340302330312773057686613919264646718890294896194020261339367317545306804190078393957164613712450065709831720791527094165866375356494415132480537812533102591808049466513768883529876130453727510198097990143058348273287680764961131912720423273345294045131938502186302317994422339551044915992662468801041905962704696185430659219295262994248644089613814298087841068227051377378231308250483440521090528371209165696400701666706923953071854037786142114288676414437927835485820394802030386432166954582552181954037432897784704836929977103620754357416697867011210878255673759322718825331796967720431313898459426380805803707055693129489565304231425041506187341298823989113966838901323444506707363375598765405463158312728700262438195515195901001186886429540272725204986855607747789509058756430889559315934278008593715805993164620706925748162008387341967991699523792438289046495041775552493901884484736141734287479996084127996122844158838418856377921690874601938324661210649392542189893181843659184302189369795989769046203123676948474877334653319091904754504350824162945671269558144066718475378137893120813952878779469877418976305843527075429483735514287465050154631803211706596622097451576870157962467487201279520097995314845937063025718023516838402462290630813106652104012770561744941723631702944160481289542572711703332670161936567361720049846416500385795324920155370113410531920013779672372342578515954235164561605266562241628867572609540950592473936250525380668990364302647694321240342301898081425534417760309065573000277679865266402048104077298286857914037781466961859089800641103009767389924083234314704794030434387044642899042954823121019380858062192418207399459968104736155491932021452826646933737823950540510641382625362027641011813547478322150782250571082630277061783876899488255939479795730353426183701437346924356762428306182603957643348068468903854970956207752271942830095974465057121613246468825031421630235389086411373076313618410296126624760516969642180736597570842864143398630302582490339227202767701232275713676394157612639873041583892309551142059801322769785821113933797869161584740742034926240734214558839174474752388011015890850393506496520921283323873321782294446464339548095691947186084299942510658304322283664897527581745391134581120470590818633761972885986223908543820600033474582893990595909076427084369741214600117125398555815366140408724203891181326184303907264175736154753462098914743225658940711207620668594023918228357759822172228714931290668640853062917941906315876806735333691185221148689633457703494138202136775108494255177306099548134795121482239284786883975487927990835208039946071849490846328480479957281720272551611910226103681388462110366822027644841420095084119928387466847546311864739744402239538361356639478370064761786304475120137220037035347636241220243579706840462474038637642308099284068769476537840195507147394559160279089043935067651469938900754903494731736951400525652737804881423381790139994456604645620364104351045848078574467128943941706544174466416850690287936908258488405903720289562497562531332826071220778673253028168523655252721583194325755991947743878808584636448686781648898262859008277471787407389654308374746619560403288271721696414483559033489923213962998640615062035214524080968115880364734067642522854464525133226964774512531747298336294250974666036869467178446816770200986973011358617776440296111680376777186632480899145825415468333644452956864603772217771434997602617303951149658027624879512815615903157586853057160580271088700289146521335378466740132977637711186535114196331154389436654745794902482474508031759544295720938856471747159951719000317442374109230229863867798024666818259920127983578254162657728271334009770793888456550967533668002421327079564058195861812778239115042488340508522088706277678801072770383347462344262342009528300423158008725509019662694815884210492389585584068522937904503225475562225556631393701575844341007002704276873225983323252515857317282530457382382000852562299052793008698840742583332768904631080106968264407666755191995232751872868310307488681106028931567498817809730157701725372487165561198777237586125947624240681053596865883875356760756218433781722756822487935718352186242112160425707667755216307915041041955243044889249753708383413018267876913839512981938354197087802354410916115811996883743249126119413511968836142911621786472400429601781700325400531998793200992180314853853177506613111460984458045205289881845074487990486754478298427850138393302997922145605766595374008269616214156355542632533465936439926561355795079737403493474457795389169110898920405783578536700828921193146280240151807768677623025635546468649402864018274584066327158122046764375299508556776177327389421324877370091047174180737395699556184539714512486632037690940929410939676667732027126518396753684055657327005839259040774189473221226728373191666000008129857118710490208360337148041287392708519744420107261791553589567366815192556063524398628360869459959840172051828772091010146766016231344410839803161945191438376758789491720928796166666090627885341723339283428898897797948369118523852750368887199264865365254880069756476535265326485309917397947593906966505736375254089014152584833588451409113385811959184898502853926856178256656001190586085246685164964421548489605629080143658376026137376438123791949504636265746532863713630311128801066424526114282061590658277327437118160385635153145873714031711896523357835970500427043701846837445182096919794880046545325871371731347129421036812041520240202193672477809532994782170412862863402583392232271116492535757157073768884118314330447412214218200397616294800104174028902514910896728920941066117254612698963210258142940515589513138207295776173312212608277589841177427403506403428440399343056952420660681893151366487201372206609064723197855409248932411908404592635311652109452370219732436390866203031261115364844129978205483494307888245839732810403715356843832366122433792177885156760283741879567318528530157607637696510237602725579321044630057441656763716076697456171210567284259430811248617978716543886855714706943960426504744518190018481241562155909883657137774385194110177781420863871925984404776393941876524111981874523092508257848141128705496432269754460121167522416170823133499936535799669089852977451074442513055966863187309759112691104776410270237974537253576399009649242891772650231410832085303292005908167864637446333821854226501499384005965780347738099313595041516406494710898776886885300219854840919606505458997210648056171619311964557657110808895773603087076856458400468118396579232880997159042092957661700272355497257423736174078074886118452052718697766791525051559498662693439408581621001005430551790687695276267471240808194618873367055761557865849589327605283844517830407298884603404855892522728063698396325763282578211894873972554689252664785965956292190197054232271106766336023768623663383655670091932379337130680012190669518050357985979697847710927987966586424975055210820935226449117910734189389786172070415158956300006246783540737462528511615544516067647292584020077730688068571829684713536660782475888432621725863689686554492812082405701993437850589923614585023783599739193375576895738739357577901736200578032500405151140059811652698057584189642406763770978703075552646165085219655648307195160570819325747203467938336225679706505228123768769684561087969048446896004456040875584814170793386871112908212513054583758714852240869803751036265962268589805386821619197443679892085567451966498305936606605869557735201860334732401261797805943015589029403464522198221968026122973685107512470075878350994076896502686313962029135103324754621647118923405641214236100627834648348846371727120152529828051371600138249784507803344876236562328470823209458019611681088545400351397487928205123848234345513329584222379289150811413411310199902151119461597845012617018226047591615434095871929340313161630807954059665483663160627018312776009325919766685518850276259268931831972049176955337901424296703475958186218790398127949591148804528925783679440156207002924600339589411483563125746320501866754944103027008706225863960363926032652552710538274502631711603153295727838044806943086638938817473538887436494679413380081321066855478845803929408001571723041697944741504413135536768239087405084240950304509927327056699596710223891998372810212602787775570593685854527664801728794288197729570272696177118202166919173862421568478766857365273207374829877732417374961750252899307009691492285662099723582828592224987306311091690971925822273956271952827714449701078371863237645811346971176831172484046982911414913927953652631089822933952755274417105666750491466330951960122945499113470117054407364100023184299917647006039381512078419426786913562192997727067412101566298300120884825217058569653973635333002523093489783559691439145888368079266979160627977911203467086574744593769016211558676470316591962856938502502025323490942768447061656614174327742248339322035128629422454127811313769409828437107567890257450780736036334868214075965446669989601655972801538285458527405843667162369943717731262785580317422935379677705716791780910789322557930173691529835413308092070828509705742002634265974270738014776900610141030717226237388112444487364317652285165980254767057127450990615162786592979299654870318365664729329163178349484165773571942426613934432023612232198757703262151198798470691873734166025354990987218337838654665554852634832329974213679402592604689236133581924955545152554248376817119751248432045233157877307675913155802154363629935746448769880833459558332435834960560513615717667469332635271748627374206716438981942558675683629443667937970006534258370633875704636676797366725387382810917510766408473592325104287196308928895417538030156972146689707759686761363911937036442072696734417385949558914842428440397941797342662816282612887042197208561695030215831583173851073518740762250196064395737063712638527735225852999142424283301790565058447448791249308025158255523478607931725577359724080240414171595943538715633600095595602749803633503487762337054456711870519322350367281265740923853711398739159357827791634932168432595039435956359047088668769798711688756176902294719522711949933556874319370685795505730782617397910415530311523532535226490657222475124360580976478089185156887400204972569843295132631415923160317923692417960452888221031341883144046884025344673263962803574543436808804838026581956307374081477143105857384850490437852022053207320234566442273319883601111211168254885536139818342846490505221856722108402651271183257321858612056821505985126191033796242553953128700957735043294429972853454826902282056386505089034632531050286509304751716945687918337538052836424762351207230609603080587443639169633288205878024924696511425445390713067786816230071642232069105909100068180324590858308234130579380013438544173059908055505217344522828161225472660366539408702373604998461651389488429810676856708373361648112627028227482300532520821763884548054678847557997091561474256488753160420704559767312088619004058469799970023960142881994057386664266164597322856068573017741843394161499642331588828787119201117138973909721198174005541258402064009589815014437196789555524258292174082895138740726017338560679653567156285162068981817803138802045784659729627418452771289069809376608054023106401128453074008233381297375427691433553237164417281713683699848798585902701155518289136391524794360336233772047000239967399784224495313844922884705843336910958700200864213463298951069703336802408807952676797195507195836147310757619978361921467351849253400926681632444357626977427355200927705225888717581951219472708794913122310072749050705596385948588766396031693181234466915497772746650786794561750135602622783347733788816586982134866875066032274569522878932297423575112394549823052133488162759443615210085024461124180327911680193766172474774972200530547872716377580608764439027838096802386615620294837559993041205918776540851645284400521916530892801961660696581233705978518031561980584026719335423126479569740979764601027968368358722790081776520588363136258706775960286644476440924872306551802025853592698417956823032351431784550075484848531081157378298037997611987992275560046713145390318502205351800157687504737261122337879523062003353235463071245823257819535170544102198809447862769126661547945556224311612771933403165679217656293856949812055641312248625448591226203913047837971335154262220616171380365800207255517228023619924032387461835121844761885034486732625824132359743589018025166785257315217016026004854374251718720969340622572709940253866059180907277023650797517407576875603013598727109829437399577877810994357210783447650667943582126853219964770060338762888594764700821918999667697053888875172905290845158240223964668884401632955892853025591302171755481660480612410215396986083111174765723851746100217716017614397924916636452158466450994687258908425863662681469220862203468558382335326376388642094656854146545424880912048747827329564698294410935763600838458803821881010272972937613637018950994867190529546882021953305288998970390004914158178769519441347226881758808659919876205783778425692753784412824491755227132402180146350514931386189143144415357953028539341672150531084756294974530436135172301393638082727582454395696741325096065940942218488928191895919453984704467976865813808618827954488982746877866800105541891124762809882029080943097545506460935027795620748974263762121985295726215446744289977457643103094606582844149538174617427161164391588895146704397249981929947341803887063632887794909124390918891361597390370185568128774040482453301731488918884447640403779939624744980744154692079080020597735594960877429681620374951438060773907964878069525486325118512666658627958212952315837097706962910467289991269845892001751657265443544320692829823112576275806880654571846630355047609408804421365038423885789318880554934684476345040765684439731146454181440840127741327074778619878638435867088782876350750137409314094785075218860737308256936016950963051768314887432949428954864071811489757700122905753198532056031791106017036954613698599907959247053450789817893477196842899509512218492398058153476591870231010167338861887023880743127660544172004669152287342191523475373740378490716034833868667447213466438513051763069775253629540275477920011483892961294277217686210163395195601428022483286441682690008381491755413682695024200467412747564908233656470096842782685430938391827785578573509880209795774708947513146139424904249290097793718391924083247644168752649135418268468967625005313943387676488249377279780153950985232682506088806390928951840550738356567716381933688202773365403512682883191226999085776674205705334989706343806041180065886335085463460558830730250688373205138223760808587917091366096730290739514153382392878756175373511555865981497615400538946255382377809431726257926485978064653430616119100396916376816648313847059487589777754141088459197134893584483861434743980845796104859176012423614629336119327331905704994935990591439827082210534885636716877618689274527466679420913289823957766121376308675034828603552704121449653272366696796309088572542568679894910138263902921533353952817725582962016113758653853819067989417489188743585938432961434508791291638601747820869366544009987546726458667207233140410336480415141626250033437438840776264959491104076683361523219326905312091851607171405195992093206133280315768557062300077553971581340430397864887363874631810844379835829071583590940509255610537024841821574386622777097418152836080277089868438228755993397182607043212931223010103489165480962829060595062763997513807969345218642782962042980896668522476813200743506772900614931880197050579665222873726592380378373058256849006915971100597618304773047046641935039979319547308423999500256967786146848335400119028779099110514697084073503551765468383995296139063888623605027954651313548812578824679133110932555269246719053271049722342121690908659806375263582766888759755168505409601315298604489638519396675975258702223786612451142401067212207934269399323725494382370657381897921669953064199639148569490620746775783775015161440369354644726621714361312558776719298008482559187236895565729967765169909470502348358220661110619087646943283821798182902208600136644073333407031359116942641152438631714563369960822634156529510145278313955836472573652711844685720895504843674258696566476394300321057651213445821977014005962552956594989842897360908312019850547168396522342762052601037287623516816578121308294176883038522420961674997790588144021741110586833570967702869544083134580410533018754303643041401879363172180917044048333050291796109106397666637588350702280947266704721868649846874278983683630278307995309013197210425094429494238580083606595797640466629266107326447579890071254035305638315184604416268261939247365279443913914586416268434194267255073691143068973056462412241611166625522075116480826471087727457784273367868844697096438672130507742429602940293964833216471090995941140012990066824586374252177367812283573323678622865027216265342834734674290413014108640548379743339122591225497111820608707146584615201272132827882936812434725283650970057209340662664790212917551999327152365729943958390815339226405452733056886031721857229333578404019278007414810304537543400142619277085092060785042831648727613419815201947061691455800456266781237660802099328317088255548644911667400026570565866588035387956473935780635652708675000695837019696264141104397824125916993870609370352682150248210864285269271561798515270474266972532603251374381336657400197533556501091934962688231637399706113740192068372770478013033866722768823434773452868383641327585073409472139529413887539589412432463652538183779361988852546047633215681239429231940286218999913587080191354051768332667528921095967000640750429725746961383073537304995409131936592598619066441353187940192551639300609407939647236007223921091925734597201756663710996194887512983604262797646456274794792592692059178271178880967908879977889223756028845659292345680448231210237415257657622013251296716204849562655925822023916593032459704847600613928037745531277186222967655764369767500196584244766023607902246563942535031005507146430300491486033974215339342820237757396478902322164981159273812432366714055071143581726808958053073051529682438596847482258378189121344285863426865777701098953135799630444999523492829166270806569891600489361334474523182582401016645579569402192182969141250829597437346450182066240313521136901989926812172195962253092444255969340685940474841423941486462312689958079660320237962645583698976096066584664992952823309736562638243175383714917145238996999118407794587251525391655555586654194330782133220146342984686080835130206574123803426062661555081479205890599341013229218495899610061857518559309374581886894809955336024250653832929206884367677707940582413204521744776205266161677354286254098012113342911856290690589523214295372056471973946839371120659663955458158148227973779912984836199581544820520136301309440411636661170537766783154475637906692659532951565808270327493581994791587830642528465147591868106130637582163068349550532901806646099181992893539575608502681904664342895838765925106449674172597669928271540021273264920283824826538620739634403497311208949177255570403666077948049241961253142917094933938515282353399874587483623721451111043857386589840327047495860052702893949729711377180896266818589112434019246944779920625473511283569457953380543235757531893964940667781111631604707109499644217882029837646798089482270717763186001746505941571194780927936919315994856313911715364070837789133991215147172467464605730428342127359834305140182474216273236006909392242798293945628128590013555874383103481241720754670175063687175281408548036901000190077044138641565622267754481582649326346173449451076855588597911279527352399679504027489379689784116414893157610583042770314151740419899619957130982640070069234233029401214891407501951407669892655801584562780459606379890689393691077879211433528197850102908980566673198381245533089280882393922304780900174252390100413533745671477801916822499134344582259857826628398014238217235664591517133195333081269688452605955848345980710152509570541626700574263356055688302668581035519010937127951256570908646710233898665777489309418152005816238642128340489244912115950069934553044270437025278220990994941018503349943503221132627768981247938861393899486146603234522490110553701163182996905885869396726645518413028302773895442685364163809526235126385936519561370277989283727862801949478004595410400277614566272151405336523625089353538703914941061662871295044649303867834956003939012757596956015603232655623491318510669441126543479254746621064411857030312885396452122017421608589102451004159706136945203323735576062976454913772676913441601274271762636876655781169147489539611044712905249510104166478435232021210987595985682289531658235188879398161386461428225484620924003838166023083708744977155677640041649853482031393647111975777394589820297041582806205709367137477064505057342785410776147248360251532597461075557365517115033076724367326070239123428894670225619508558678283884779756240726836242477185533237383420475483507806605195573477063032740383599652055995254072119936144230819882227727626279778488319753726299743356695795254127876173157631329716255778745385509750838918811894924017109267889875165058105652782069748077588104477622553573691785146867484553607843785033991485773292050284199869585113924900387353333444958661245780665774021265943863069516140092156710701997612899242121891807190132269083305088368742825014343059774865423496404788771301771401183585958438136170264083808226437820548399403821894697551429404636540108906781489450099315575211818324419624022815851689479153509231484744951802336925390560290980904453742060115499770869045068349414671567609058322332990962872638284465406243402862671781345150143912757955015950207172330047306195196393863621277774453922301899213512555166808424837284419994412211901162955009492558660297767628133563731932066317408365923948279814359149295177093833660340065868278391959053735608489268660695058358626277506642094706918659129643827211130545647328305479436547286788136815687816674697264686243343646695398440469213091233019947943047445076594481448042268267851465688617801990530468773741918132261682494050125485564165445291052594029226704355776897669571059291024216316303381633733384207783476158100514794211319402084220118251065119991898544591354286978292213928880320227581130372329483301314378819493659957590477345325045851696836140194703967747197785910317545368700968062595383077455392781136413589927860076112399637923880885262600081979421617027663208500562427423891310070444108544143290564636749341515224557049061469581040671975413875412548385557849217435462301858589684776160019371106680635314894024976486420878661316322296841000470763325987719022764960384557572834693187287757382192351609980402979599903522935638042002406364892705296520304542859822322747135382028496185536587684470988237563349498037144423497695721387137477134805207508442464184771282105037264801959512821582535797354241735039495155193361309565827936598792963814658467152508979677745559848628095728577231950441996834326635802954586479839121187912293738576600102088957376791185496286180282784382523252164470650935871662825268370013568791860815236774071581095065628884122613651601689892686292948377381925278990505067872716521856349007387320870061653332244868105207932537567394407687269434657791732381119018268768111357083273469010837791938506823235034300724894594004463034658505117563675951354799259050115068052292454227175072888027137385230060698510699234019410854277241768209329515725343169498356992012723992138121030973885097527229784352713017001713310692825089859216033380817581871601858642350275677352276135946176112764486202912240726504826020637446710613433177287607391701725928478311134356011574868789356350048957101452752249463699661955504550857901292882453756379046995067876994334867130549676890917088762530251175159337387242131953047269619714615547872128020454969941614166413242785187105037621384071567875105337290308928745300535680511661972876451340236469053450541868045836043901610401439623391776691595280113845764233783839749721048119016098399406429444836542095250248878532384821753277662916206499004244008938624196486567089890431394866312343658093410244326732181590687909511839196637651531126034714392984722464121404739234360869703376712817694940699588136446460515945025241087226417512144258378325031800977772721578224920355348271617257143533079555260801246655194044198015619961989951821843076246963288727795008943582760280597247849811852191965962389820313518980983007521722106582908940815726621327208050324095253763472299268920334551398896960536779963268150962418220109111332026108795418894663567807493937573605389013624417707080457185135967283726494507088528937300020032921908943681078417784642608100783245292454071346822703253178257882014175372704162914081283433139423271479019370505392464834185832154595213065895785478657213414641425500838167297191300850621254991420624117021137903205121195287384498261631682876665587662588403481522806493589900783687757831166425554556865532956832371635180513486533207313393694627023986172994492790944206134398857931235103759414687715924861259052444792085306222164937132069336434778687085507541401246412752923564138566928211657304135970687863627988528178268045894536649370198562835611570755238834116743515644485390523209183191189749229935447867112790762659645017074675612762852683616913943313880684718874511375668446009835294534934408766181886276504571360029622035598808639559662112277059567539155173516746935175148185028507147987505088525476432857498906088964607806982895698286247809415749997115491233789852360221274043696910288060358409332191822336566261966032171756006430974203158792501302710478648040748455917912709624497147705136106097668859426306728777175539036372534794322993851542306003176887750607528646631120293556251760532217012594139822470777988482745779439869637886328302925889227421577844810165097761154080055515709316781157532189452463392498462716015872501302272718608815387248072259458922957119741547661555343357565613684776135409169070342371949755566886186377313008183757086235820060446243277237469859592837871886835003871298161771103862921444541855562153395737005603228058596481506756297876110258904946405987176182082476999685069628079648694745142771506094480053371697463636029290350282316212680027340688019117593547951192328487904603891402221947152181171564059289173450636230198170659728841426652457456311687982563545684573104697541260050971381393250842185835764354301776452400776431290336399344508486467391592612415955106892473296744480139153468054460652508260445772141498084135732711682300209619627477038208788909394600749322149082809187466561134223179772144243417131494054680760015721054180879597926934065477778123653995677823914985045265638186212354668437352412595572652587990004397537188149770226746566523646637555290759930533804845868637513949528769286451621656730928992225405493981542489726917712319906373710257649172800163656096763549967479267789728200705262717007024854969683256311955214081124042364424527575229051315717722876829461280480121482012285361799976604189191088236822170064243790287771765852192048721114700608011973114449468960830473202053717575973318608524665481114687526329572134244149934588395624499226425864903443581035083415375511556741159211690450288387569975046990376235854164801539946676892141595727562150418254565447194842048566587588902330345548481728121414344456923162996563957839072365532850448328586390973282340042759316054183932073566475840827595554900573656476540164858846174591124851917291835746989011346584869101738012310351071960465408132788174628098677683570225423736868014243005376578249452592802541022254920934366650808555860013399962293247481005125813679638745906855130713016187244655939308359390448256201128738961917500882164979285489342372560271829513618972492055473720932511807939864289005463895537463802748400088486942997044854431527650675343560155200306424367172392354734142450391481814538909630688705003442692759343491146625469587916406819513670190069863828347689566617871284639427374646428292319012671997629559822287066807944510037811803650706685524567398541446423094057805255533902311953746156750083987914442231778473899794347814510201535658358508673604044295508958070099785609943717048412114665597989600386868522634012830860468578843210539048910085557017396519583457996610200258450821825314224313012740550937271259904971579370773060665265807449838935203421065068422578148613166368854936658305367626376463478298044976116386248602800911770770627701165337976987570204797450575098590181892805701933476230963484121393114168479485125798619875761270740088768011105305453453962153670910106007250366268408409726371586970450613423311117905212619412298622157089917747309288497609807654814307535648859075891023981170155247778775765736559397841926486659173748539438429727039333096468159853123375615060947649347284393200919760809261184107229214922127080631186724182325575405482175494541712527444547725796185334091815312079857856578055091515898819305594691755826427079705672354142344449326756626182839817980842184949292010172903127749280947544589893694429885112257989655660400641444468495774038189860403165420354089748433730935909314498028367989132390840237202123932899322929820348270779152142753474763075586210988519807987440025574353959919678981653074447877166886588663348728342582076847908184996691390052051113316020446700156941736928774448675695112677599488077202406994963905254892296866110890054082766814688447535846072505302025640364009651782046445028747980459787519106879432841700205141578801548159893444617821339449304095132778474138869621864616089081973145987639673293036386743988827943509744881496838263920716500208981362281565885473262719903467238603621235699051139461445958516680966080937468584062034122600941062040309054561893753006686974643410732026946109222085733826155037353890791537639150400597602691552122151439809248475985057670848803523034280565797192940495425711159558314500939652309824559257300758946145047797674420060021581186586433927439635741904910062861960288726966906371505664705887344671744569616433049885604095656719535885187481906981394018760242898505463748092156647494608664851493028161000573151497650831415674740274554539725739850584852673775141078542230723717644305419543334096643853162821247289298549073773334189150407109712854034525652684187177158382645881515991885443680017044264699553074476913867341614564261166238886485630178871264480534102449081745129491769977886058682404045929996509979665497546716826451330683514849091238327893278134785266027611986052442614098972335813701444536239142513070494177045684486298135921008250544235038945572646462701528429448473898764308043585093321463434973088416553540130536304431834574154078746303697648467717571713637863435110103652108636102924670706516329012482493802746358494168455442576920094858971360345696353978685733354929894669987397814805699264534636319698441748359441989217849998419021338272302517110306123509242925440482059517221080888019835961971299219229793413419737703065999884201771209888826241233631474069569053118039173645152059659343511925119081952857326394277116444447339395617571742989528715737728464882132579336983840763437794214495059477216735943719691017812993933156586416288385189251015292207676677227342542211117669433061323014438221467583834165764820305914528177919827002787581093924592764111328865853940564766727553033731490694890483676084659873159475963528981734112674273479828699363325194208123265846437587953928260121318483120706424487606051400479407437702685632584825397388643412305058081992723859186030021920996227767265503210037365211841884825220410819626473980475488703917351860692630072844173851654139146431097436398332043461173283913642719039670730867241832120401129488967767931919707533628743996564893129850374920592033238790451005555416648190876127190814457099174463158738018580159039892984117662685680825915950300201987345857515005470463556198868610404051026649176248783668371270968426644389019757856011472158850449042248720138300098186975086880440413607739220591989550779665086203980379711372758601612075320461648995983721400789980839245856607141665938110373134110192574096628537296681026227735336632094804529104868600957736536766935354167285433966123172551241236636699445064978629165734035800821571476823809251004989201170638075223422749314762780477647732187411386400725552608727520774275036593225811252672089574647460618629688079369433393030054388786763927139087881650305796924565787977222818609207433295599375234326976986423150679752780555347004318159796489299572951696189294735092398828495909695812789374095704058209266983711998425854329965483602774446242576760194962071867791414992032949894737184797641886467381303465581942686456856084122170882385291934845641531744946203504242236619602018730071709990298418965427484730186436448559504515139056240261263339399013597613316889567586816673910567791911582408563971496310148691345883690968337644824099136356249400653493616190119285930681542080987230041641177433254527942098365678741874320616315519012983379936781768255275943491823547787360348920212853817476873682096081119589153773943247312686682988098710644322651969035873172448591489294577009316569198316069980756087330662143071026892623961349011712916187655798368029427433332742858710822417452246872558490464730489257693826282293752504907183131148912348181396725160993461696750435113295866075353033428690162311226518708131172054500379506936682603277169417509460870780951902550710448949433655112386220776864029887591913773708600307894440537279735361447821948692137631711655892747033576679455023300336080229890112789350234618508938349071205700627939326482395349195604881047782455396170826583253664498160153497328048670884135728721001415627405616126208493498199386030469949155861666256018020827040562884497230223987381640114118579495168207831732348661746763191047426916316520648649733082893575823221393310740776964781735171625146717752485359944313263761792899407474538054079360743678834426420956944477348921172492585677142005979644126727281128920676243998440497138281126423060654857387868651786695020378613603780755565386908410081587684612617757677770839771776387845552758897689149570297120281887459701164041688178445762259248340955192584892777707813996564530280071637860171513038645244457471863300079021635398451575094681123635608990455731090579354812517382406572489090214313199589479321906791570838378088788393583680024777291477752394247337519043683627486103387585412265618340491072227363082509591434698864778482973831324879814781993274176532459101765069689192163575778792604345709485351036463977031748670712466355744018909710103848173146114472032299764530276332697009968688854046203895033919386993465490718587426182422082852490555419598330358079225261205195021673663865540746108317502131278161250433328097386650199700215948405995176638060717139482481361044417437556636899315873918615628554446316382196606462134515974268819405335961977746743598904870843709504390817906711313945262087861966997841288551513405148334406296951116624972602879938084299137331080272375261893807516945446265147288022389254082201601742939355734669770392468028575148908564688812794836702393853989278772110659468653765629493808068940212341387073662637442090492450057586170141068648115096764639308363897672039367486557456322634017072213846621515421865295108915522218401591863132421847163839546706190981100460034889252979293566338638182533726757404756110969726291629511452839395767929451872678431982747740954717802603267971780951878020438920201128384408393125921280532737451765247912879534374698403551634247938960860270855097620861276683442567645569661941462727957732919292134946360915905676294670062979850152278087932731921395077824441097482069915867768355882690870549029580620742455135644083638274563244350766868295791824894672786592333729354732909437036174879101342450167804882177902160815189215629838903279874979107988427512969324643163604830069728862405951485873368332251699816116532354316625378529758318489076795393883305399702268671696438541672671377411605296872983964966958867599411796941834781200963469909422740301578677857801568340258406357644266359364094051563082515454199753020842960000647161824052100882395609187559853332342190833837635768561670295772787574167921889837504497551916529875476848162978948169928097696421225155540689449316451575107723460088281750122185033103779247448565074616191625216513385507089059895676599812298752749444570281775066012628252631846353743629791192720168108687386600943982332144666647985896885508272309262577398314128855865018905047326628761720776872758640259891233784880623557247393074714480527062330088306310911619235797074519346752657440678638980681307740293952771473106688164254102012220276288600615535647045574385053143917432270956702538092415722059333161014866106164161931461318836275445232751658974997216821260472138719676015030704836229220738483459453152845436528835828401736661418790568698853268132546493388363923830028724645091930000144708889025253727853242229115341068527855870464855959307167996087284308282106650110466984807361238477942534524883854381987973630992393805304357103929600095444413933183752016529826937661144222560559552841810438338492074448636349837296205786701164746424296589512857234611636546927983292031032834781469849062551851906658826729847108580769205193563000175670939256403656444372423484658393351172652777232069190708170845956691545597902150775306615412613730497222735182082838737087982828664855535668422138717449515908236444473573422516542327677608332629034303006752049487489170034188884877247325032110796278763212853427810654917532589559468561055876371226699921898523412446078252098381398365323829477338342491617474253527525172403014268367928580443993230248229764254957526859508816405825756512629204450279571687058210880697698774136724640055488297119594524922226911027296077030028585553670905268743650236557742632461535718565682261583467523858453406080809890916521983594602828002356836755829056020560393321694846887448325663290669951501153770056585471596594544888252232185231161618371446462551714517739738700051145395907411525030482497339127094100626671872662408127540224214608034446505479211788565789478133645702646833343385437527024936327243082140241314608259977960921808994678147942365547946596056344886376408314582391036036966971228752479040567737288117836671466726692348143323463137132195423737113389059632761061975368641028963684678634418518060928821193482268797345297333336027850786021566987821758815627704343148331297809094006587217666986078549224673632454718561454252216866900953392604646254124534579780222286240194341441858108375932951659537501765515882870343365582696165316593017604641544354520128708661271520217216888093244260910097905157941548242520347974886441522442108185782643146881985421424957264678014567700581435585891755205827649675057718066967282588582710424103655574427979498958269014724341357357813286851113333777378404001556202325488677342896888202616389200939332311405456548840213056355627053980551390802473797667923608318986783845166690979038084281994992231510655753001857738630045122860971592679860466179779391112638374153565135220651460924392623184673706484589210570159300727764267018922105036964344533596558791710865969578094528851906659160158361359873030464999288938172443199149716263521622876920445186315686070024489807282610213318367971641921242450066006292453378887099444504518654385276633532988630348957345873590032081346345431964576670280016957932922257225134985711354443181457266395741429459432202090878840441790439831946529615688396488458918120649062674428125957294681756873957316765327255088770249628667025057316268131879851277643263502885800184706307755767813922576852282271452934612042506482536051585695937763300004764926055163308141211517832232576229466959497162583543625829433138752832318214848337964842807971305655745401331079941171075168232964985083921308276853957268757669448887831997093312612509618315621162547356178514506587019275010405871766675527358132401823329223000720628532694797658957248933474254801116268105594034672223484752068939809518333473431666741094937827527044283482534277194583436574570422064088382370161196284268647135095652259864286992800491058108143871378360410383892733315624881445256349779101198403014616666338698023673779651718595255990156780672471323415901647137557717340323397138160650035460567123161090999227408201502322967194960796227055134390454497500608019152328261302641627088857821643347212788635331353761755922455028725272594250899069556861581784612698926954063297858014591441912604582597034754871644488058263006771920707583893409058653259716967898119745520237052035533265057702332350601449100450359428881352634430410946238913691043664189388545986750495490804416389216096378877292013081857090148856802626064076774810755947899386475256295292960386403822832326478782186191333874832193365579621401514039786579024737180986356518335384239548273012701781011934184203182169119384310399451580803097545536880305449690020395100004799584709163721021150955025165618930605017475918276805640811194804261760565129737816541308904343067263209527210529650486026804748191478964943111673016249104827004129732881192550083537283887895263244438780579938007716252367060553127938690013863007520252263328109026768965668477696654977742597057924321151984686825457410858403089410117916469994797120968519785758909612065989088244483871317407106507495996296093332639134344223027137054247291317841316593501870550895962613514144120934523367088669714053479933301049382417577867347031688405493621604198859623734624190543619685736045523080447149608919265380127386581990950587861061019851710456813537713013777088421814882571517459750471809997733564307876064674140079849822951561777379683670851168146218889843227958854511106485483261719366437869318516160647925515377328714491962567800198163647211951960487771921899705624753142620819459602712358967650891437105209969020622101595033521848959746738687370856321245456381149854029637349743741588058109553891301486741960551011847056937963047967715651386589705704244610780675030809494140825448897058261203173252946298631799631204010963159233370156629097262525341858534622031966371722306723387408028722961217861047347186288012776786321931011968744568399278743044671369518866294648146077570450257160924865695209767637911356495324754119602404596707676742729458551408925640749538628708183087729534181210562657701989744859716970057229458195385410735600479676074519176328778681480213852929525290213668055595775011695203147756521201850136424830791360104110666985758555014127295876130960029479405710105350770576343568916219788379718525943890543840162748152489887488640613377388173618989412532970766258090605963995776745869685339973996697577020225035211020737634876604426596308668236194058062365287133552051339052631725354247300047091350019052403632257977828559439502405925520757371591625873911755270523430017945019138955303230995218100954769028080733837430025370858349519783291788347930293904032948366076553941519782177020452771686426975737996860908809833375058403382450084340449719204284897239370604202954289698169280179831630318252435371656172877117200830527323392807507165060923071490316595892448493401922650312963083419579119386428059223013152523890155711750116578397744165168343776048558233179055642013747568972002353421447601716962525876194548939196876050312883570817205460836904980795731231255077813564770003378049451789098813718881738638761462213879413354483476248791700645110132551580076785135717825669234743809318649693594798633183481933473352849277338433374254343796499863659541307261701821428317430541397322284317775556753012417699563503422086277399857385788730249314485624722163549032836009181080724955378722133305884305820497264911648677197135607378574178638483248374887536806735220606126563331405552856888932445391575187354417857492616863106357606323846506858546051872670570551038767091405233881396258236321805283488998164981537788110488661051691526161690554821576608578470156394986414107239805163391668909187896970251053985924543598364044598627887404988331495904012553952639748203241986349322992734656297901852497236418406799350831998419721428719369118982891163131471161192012580003838367352648456089219980868316671217355662095439745709534858312248477898200367367103365701475674557273414202926113545307853639294459003706682291228239658984268520289166781128199211751239299026016669611390634925206845789681268487412316791157682770665503673903329598057433867348648242313067037277782776047102865775378110681322573312955142398340405246688513284594975441877010469211840134554549500514082157328962154321958637488429194088451413895854856723611338322479854495873901859928652401032939339498085977355200663396928744993119666764527744774771203234286081047711001812362685624372356967861673363891496019211583992606041238591803027201319056462084625407681215221783727716213439031789246555850454416633623712146712365775394391676889157515136002927644087340542930393091882343557292949997642142704733205358938937499508960300498322165595793893556576637562046948376373856288364028281297744368174425065282126342600900922255185208369049791213180911087313119699377071214087091931961433688226081006990562961507098217286955473016156822583184288498286397177628242883341281313077377039166541833357901961779610234611255104414826891149208532488089145426751724699525136898008443741852259349988882499510813110211334800704492305319364995462185336189029926574941720063047392702785783166739419571441979017608712346500047292442955430521274567644390937976770799072510016484907745070755552698474077618286654390775260988068692278882529819734054683568860755126755887415911130859237077272008135040084735888242843723746625104928054006267887248951515375621047140727962967533080659709675683454418534921704905076171492691242099562884940273453350305416965211006855157459984446428850446640191960184198572452501803048951882999113751299151785925933239713249634053478326832048410227056987333882509698759817996347725482414275553444138625022022886132875184092814176009947979107573261440395264067202801264024358180979489232799586810704967422430483176292264843675113276986389551393505308257768611718108947904371353310100505901921600478886072298648322753892234524824814027011205532254037636087558121967121984026970736000241322788415781436611542090251938486624758083715336733143677023096098495392146349356303366751867874692108289232566168811971267426562900502102433094546049192150571604489738417182573227254719481583892038067007819708792622112871982635512492384255197917106552223765823608199416434811255915200215261931164595039894175243437620604852774931877773965573059865362161815163452322927378666602742733395437368396717343493911606063442520959603137899434540254237192215096643204076820425670275229847571357504294427563067400081313550735062925844583730849899322903629526616713318014606590152217033672930407306897154132458979998820266550089675368870405431642526607622842612324023186443457548510126202949269136730929976258634616691605358363975376989596386538656434062020746937806610749076737778841941415019700698368824497874389905447822654690696119074039951186587091856697857487906279561391962587994986975822124922977154604152801812159848271724204184690690632465844196279150930809009424990451870835698517927622396548550490482866204477568959175254043147975199322538256263961726748466039951834357634384314114469906094603564418274415872244404158344717299802846012117473404413301002994737059855793380649755805876508309192788839159443776498431855816974028538427678886217683961025748313390933370522550264558733726007865208375744450082290755710166978533405654638953716129769983012852474754649535758424239433870718839650549186616860892517932424796109441502175961953567318801813275540541953168934571468091254360059978169532548627136363957947450453174078940466976952379266727380990410319377178125341907113877649639131570358431860687826362437768240848156738045212869173008801005444793678439144006403787136489588382292197402298993603810151204792895908125329512534468092684223061083946538950826079849788523799829183466297907082286284503186931255427952411826318857749239105888414705564517940971676799189327385385195853438517846798845178305949801329179800485522383080997789585341652240015905719492169624409720483600022115989326482999771585954659602734870923147673286418797818192365347334662662836215641871296852851322256145483207605529902458947636219084272813536136379483060002211750504286310522358456726785899379771790288563800292136077902110777695660123667854668626726760476881227176997184758549587374043237408810890680825551730405197519749305472261139685196735832686174126401787382032208709650018738346184842165386312136918148570790287101047957343886621967916230166680913159167521065426401596783470865120871109725687531590953167449458664778939174422511090812634650801476291969315834187580052173571828419866083412991954709785408991744875501650636790615162577517389697810183970454116106449166309767691396427191891452688941660724945457324419549683656157775740041246714838037328874501030671307545984479218445085920523928264994972076837195295415465405113587157216107837446148339863621569480059070607535384694812951548015347178246114447585476064281004264975629029891373597604031433738200078328124163347766974397074622399900353050173069466203766971614898232820614545141740741440331707418604375340845560411367180213181824230501254622693680080694977109134036669435301839228966083218279680562006078681923461492885792484796243273274352091540701207417252773184099780842014778315211620990710714047352837320463689259228793114793912963475776515098439852245001071251103521097173427364339673906838894526663917187544466159546543181528775726952875328861033446268333954101720795238442069918946119385324162487123496028753062249767436575213329847460440090214119910898046963030126166447014789944380991350405998979565665758827634281686187728290183606370980219952872615265927850955030152550395360503486926835249741965808904643888173908270866889234814320279718809301589950091428076545686870075605400884731842162360834291087348677318315376205247863532906488278409554415442844813201273523360442055819568178651716306020121482325384030985908496591116903218417492124902958125546302482934111233802832616297390388204416931371882978283870992130989222786929363300478531198969469498033247282967286591467518919657916570196386930929499368556635927822115664782166043537796509164743894648776662072325543030290140284808542537826268458336430544817439663134900469965963314614151139781207178245290950135435427883799625558969214377874816171601290533874930951217101726494553033515330855846417569963395690392616238754480712183710425168518620578582151010672808542241064737325791667649706115328930095618956864238073721344433287048503925301573748321261477178012876875696831696001225086065360423270345985892467328902671828476394997898835339847110061091540162586082686024125108841060462147806764381048162698323101286311852624948322477931352081601477835467472866064023740972025726705730514926088652172580953461051784611118069476539230938718872511322854093899584059391139686591807394031173021935876865082604906758239227322144247506096505923401838916108487585916525903932208211571855916116861352284281198282083341441705914634314725971422221409119687870516954704010475045193344373919778947834084700035611265031576819692184873742122183116328884313146537543573452390991370583369238953316219324164168718073995737489735424196702186067751292493598943484615876071515210457986555057966292539455191160315155548902143680211856214465894887581214029451136969004505409268716973631759669999191721426535144846994730556449981424524854897306011970257660456019134743567485945707661572431842182816078366671220561210540234802144656868639268873052237937258384340944018585213027072901654067027913692307315813705528912296028415477669659975054058654266291315030021400084664807588761482563371778651419451451472925481603977850929821244852036737807808444354720463140175691240276591568959588810314606834522746626612396680030090466619071170409513593684861170291124913126010455087820775046294660233819182347262981283914620110722740389423017436608199531269202102000237706241045690080333318133208399981590754026232658804157602401985557266059198866921476378778726249508926824824684776417134897770587876368027716505734205370308731831521864527662260174916367377843824778886550413318950169433090041978883144457703373351807781134117485188741010661746207895821552493954562960740657194265608037989549342066903906895141639689094706121093692132136570992211243747846662064996493751230947327596238632968456787396629373284830454693377068065274364799099306794800311766177665686853338589432417098441606183075736998533274292974997312175405755659893001911064813946078614513912946851934626673716758956289571455907620550602839976589970898862284671462435067349455938735037295375947452291076977144867185672331114822180241561478449703708856174441907842910945840030767891796296220394425902685334581348544015650729237436798658510393086598575675674637532288789954704099591496268592277610158436086328588316978987073410042366257766113268421842257479016861802753906705035958466911485200696805693078908296727084579470351433138648582252145166022910733583182200292171622343249546092142610790449784231576118801350590412379540470100804641002712109709366351951829634746198161763850649222158789361055592995641229422807905222530157006051770154613003409548240797687177800030604440758726498118153398042082229627199843610353345536614086434246053067629668896406794295311978983203633057437322010493713639727650215327065494854024407556315241562459070368518917869930826683611838707077743591189569035541946246136027193675431408410770601794311583676278765457994574529777241668216742554758392686414743156987133244971058558719913410256831652021792999173339369685804375256406187156344470432272517790909391073541341346716937597707777531947712811662431105833583828783060734169913613693762387352091444014471776443981904973550819749283514896639472417972886734904955355710582708454438678320610026388937304856068545951033799302586217717239578203478117473412440022194713619478995991187865827435958547716420148642104115029432599280883420880874805243297128481373270906615167502876702967012732779886077945915597247699030948909873188258001182498038842357285235065016868271567796989044672161555943394182335949621031948029897883072382730123339003739538318118570290661295012581254713505840502094912623396642105768658914104474981453662203222219205908490116990381026039804085268818981638627587584334162201375021392713668584633460420435252242239937966717222083448600555512847359242924774669792465427064910574367425294475324997861313440736113075068104778483113483761848209298108256302785926727136759190145002725009226803533147525106599459953248338153419112654382194377590381574337886176411579735502565923117838844569675564885370884098073959554138908212289926335251934178506306923589154329419575606705986147853238528237397622206099804952641035444530776683098601580649319500357450965321194729636187579051573453246895809094241483265739178716982558405155026162915514985895014949601546272233322962374930054074964847097277479367972045282289671511730193691605482326765784729396356479266435816129430260927563252612382204540522306245286076905323098405739155008728598501058485305237081668206373039042764240075945262339516364397723966485937065704217951227018271693940146034565426081099748537088518944782765031745487359968702458944561596546643290148766121868097636834893666347784243273320603390746579620987005321106206767850056260227932879645831248666465789369037833601922489395658138251744955656590870126200420169906468779253829360137671927685808227552941140171607355488645047386207234497294913671870885976975956251563824164541207493729677376828454793171356886985392249676865984143434041534327869083739764668221085493158023900524138961755396694775828291225547707775519658777829176863691319638090298154546914016560382584176487781723322508393723753692443868035117439720553345049728966035864398258864338891127504140130368713403342241400976296208780610422837672208820750520338015004807101760026635173775330038867979380842009012676220952208965794347493955545182807465183534373528081563806429795823808375590072047232956658271532267835569787190221302234272307943020799689530216263668061851721152506462697383877042133039679084232693238693479842978051671163021574297772360604032621565332762314360786474977446923984622853281446626559281593311819100267875207472937031575280023966714471562402866297262163488593263208058561387271654770153074530489907425685876408650515082413722416065874056490133651844954138020747497551983537651786938161832874998776151652234595644640680957973344900594850685506103525090932318882610245592957402118273294360448132211376900147435907232224726491472025680973306060348989266260249124679961793737161512803195250171579548021022117679333720886011869313401369471729385934708881404673954170978039537283996461424205011522839898358235857200379973185356970607435814134887351808818455887312032852710468284018294333461259266262502661949472906155391901336982112294569017372550238793463495858284918728828222697239571454031240828663328148160215548850019243711488094738830447900539078072148712492508840276149209878237175622042734991215898932079612531148805020677507493853553594457731769749527927170233818860845210297038669258914952613073911385458144352957839200475682970842491552038539115302951933484555436267988303649232412794561997227132533353682381721200065078044645255976957378582662432054949353314281386238719907363794180984152511434180321177965023254013926296761683619915594825077624274583937006457243591348203355717035770438699769576196661472941650730699013636904655564463897834174202145280863939357736724156398315430193537558505774079645683224498833177319747284441180075330435751623472179235450824945721767126718140726891851005808526685130684021729354029992578165226424802478322734687405969667211907060378707799026217381844980817813805750322064077182395052555790327634197037936285406205470169772261676895651482855293557943989594207002912049856716866815816350597218807765333603467928577410307501862151991807185220470051745980273654579616717544805604106859908917064828546186152775211217175485212931310212734401149664281576376739142938391079003399180258771286930995726100638711278530248646068816360094204406578058183367736747786199346765764751104292052790740918301436381702186387193706925417652320715138733122014445033199874682984065649017094940741921975957317262249026383016289601566152352083608737908892005377343340220670148521499394644757441102970382232564511629748685893084137721311250267457497725696951461629297289244170193225750629976485757408962249398775948409341804464378262094197517320771217619440052160370499084749848549622293268405418685087098066212219628611128352516353416577565315522603117711562559847114625042780492948445460103421399646684393342664015766772107258533226250065127993787349018799149969749776987018625504360133622191820019645188656299082385624043031606838212544383600059613614884680204351505684150409712181339215959925393553029609420829741482258071103810402508657321925938499501574926208934201254632974076095625162622161257372271783648168415360820421262111106507193553671781173052003467383538495982506029442589950208685087711661576031651092990658192508370729432278935523758181638994344158420614649403616653106581531855757687724861752215013945857570971116791209599445911864381158280784331732327648131291644605107864365076607070905323640777865377076210118802365556096376455932522181756085611573275348312796914456902798374446591893464271409076466776054675883183573473532110164845678025880085928784583593887159085131219433066711598274396793204482379086927602722422153112592532322309754659794997341979598119777199274448180807020172204833186985044298350428697794613742378890074491305923510672652300046137514393663766346385767096096713190844391264424508994972665662201408456006867210481651048555838855225513632025652341852418422270553506207951477425033091584281823183102702628207452031290787120095973761216949759395284360341347467426796035180112328817643198694228479431154899995180674919146041449962409881225320371430895258196703289747430309546379808397860445274029347334781481618163498625573062988121994148646220788386795852416620077290578972708711385313831276923032960436521106281260179236879144829678173795459102009272243404516932509560776033742525421048975754963196569569242616637155683785571763738856323542246354620202845663372117600776950900726726085635517611611033740824832916174410256507396018214229364438923538908667300349884855415135787797138074333436868896854067709639563927336707693354694198037693485109811281845401135242295470737966570000084676207393643980132343678160832659057614697550236954832661833024119402875717304095492411744400801948929093178578067502406462829074040737427799478577061711911689021666674812358018178757186543384747604404168219109308976092121215959612563910199767187853228804388085719042065902670690298856193496228725161048937578287285275132249474832303869220551435275688584668052608457731376164625706743900039843632538446618125167684498256563939034920049232340943063767106314282464523615030913012524073944080884676882898951464585329064865443996425474573472656576899814918130412206270879998876577968091420330141656442348278232833478907903281583888120963972116995919369207917413873567173069172737370441656294971671550389975794735374971528251714576906120879112852812555434970556139156652386613041613907918825753722430609526499568462361773847833586681585832951123885921618717200686816612473960863003379306949620365210507804673432823632119860603597573507457355891500641723404917531835820415962778251277784202257355631189872648153435036945437248119277896290150692376394134402969011529437673556335796039408931177910666058814894347676128006034409925237727354971019295290599977023173336859870107037771474601960543618048097653479531837451227046437992768246758981760160772694496501780606310685312904620555222772916031249374071760344342946561852952707295852153667750138221659821671679484297537818210191827702965340076419017931754180684090588991494422880064011798865950855652988288421182542712697568790635244739050401122598832190389729482113288772099457893452722688849810120903233290992144567145911761016950533846845765719930750117330896309311057157828341057265557633729564369691639455048955807006201218731190566338557783310669438252801415479929408374688788729130052429731990199825319167865324818435876344231256728003806003590752257421904440311840584844310069744341536854882803867332836127299043323798758370452253705315863849371500910886704259893820885168983294878738609679482242788397395976747619837430289315040148449849065292289778822752545227895388800892387497031307866841337673509259180152048065193999339531930379893845758891075059670768375094333828447592884856209760846445657904043622605276211453294807034355059953502804500137210078633804710138736587545162702195831284138944307670220673822206931697456459942797005904465829103621186076624727034339263780025159086830020432227083520758763770909872199194850915715130218394440604271965777921276897146533041354548848171402364104005976378682805727615667248738384539855334438727561420600065833716700445854911165366182717860950960118476515283391635207161962213891651616661380523329651279355030459914605154012605405160450023954564196353536769392281213245416246863825412548149051479135058617885994008106995816688136427725487099623823747059091961556293994054800850458210458628174424100442905515906220696678031808565199391254231871031793115755155665601426327700004011141489890128917343348253943120123330554774882089296570419091139474166826117301169754062760961514436036692032423648573677041526516205743132552325663182848187366959956294944118287630734299643975523067180996281038621958034056375409241721513807777050432432719762072522222039149002832923598674268952184992398142460619413141039563828713856448835550806271359782261066517341875063426652994470826344347641157978485017777672223066318729381714388464018111315247741965035534997099359628056598027172015759348400758093473862193647300830111941020136792627123183915766430362919519700341620051017010132773618407938655069357437888453287702575923630573997882806734605795869814234183776133461093434361615020038156287897293564315762822051898476689799875830435285229282431209004302763258609423795330504313895422107137346355440693708865113184160964933212745607966447472459619101920176007551020602831495515712681198277252294017095952004108920482029208156885348754636475166656586417911795223265363439166634073675324952888732886060828399394860675453677460438449067855427362982898488085000427107810888340605428899859896743187141531467795841348636596701299548743370312820065452259689510692911887603170603509418792841546303722212863823672158056865344893336756082335454670504225623096581895439290315963421658060725978323799120079287359669511768214695281182381484992893495937923914311264533597820531602344032090447099467836707664198861505039470702197690964240003032773240582755595655251927436372425746203977323654769066213482418265262445304737635142770071860006190449022575585025577672535008985717780277770087565798427232664224623367654218689041737669793230888962661935883383980753268359939318911595780074853418020962550645692156469844112303341219552623316363213739878892699410021730872935258167701274818156577156126516034569997784627533917652257759340923760092260337817870235747010603253587668867460120360721711947980355534702723251091706417208742676176464015453545612557411781375693894301661654756961639272483571003464040152210451107527504813958724432518264118516883452170425409974274397764533278046818714483612426168901239638343338261513705588412760905883177875245352092025507648276126747411214967777457838947756872529803365977689542842283371679279597524910022260536877740874940542676923403569213288486286738068012259845848141482512739952629989805982622179097673106907454343712772281127948560696270872462739726316986168274607300063598666265345448685019364471076874926502356494344210675996488180465141676678273120341433467957063842954659311340587364148543966150211591066291188089558593205665787233342417470195156698183382598191575217176433010792124720008583909239422008938449301970833228304754462738786071277625269538799948115608861184966532493543864134024899210149940416934262144556164422519725513509693588038241974039703213456785836431036623971199464307148743884343221829639803959747793468607764583488631452435264499943933088679940736265544086675241680643071043158148837081081919996630870266537576405700003365503576608990378704770526713145960648297253574492725805351892581694749420396769898209056549595268454357667348976660111023034853280089510149098953263174109044839895023671038069958741891170983267265286187203905972008850562085896759705434074966638421594151084946707780262201277520753220087793291722065957885822875971940754091265592364882172741020661470482988642343512943719472120730927321188218673990082322775861872767374801710578205119352500624439238524661812158827057875961218809878208072660527998810951932411113782653330408691560843403143747697949610188018321429416309213889504411240627901288281391658509959590595799195841578175875541226894979484662509095756302559086805529928699903230940390027889636371575947894073446043745071762612712192925444220714961539504189337238295224026512640300531962428002105545320237639481402084376179112545668498557588639024178989123486595356993399892482769855546559895596448146618902424173431250634345185926954808606837437663411139548061637716024343106573448852233041176767408484657784101501680584863021184402735174987645174015859837136713750447746982100324047120279150312477000682178243558529259316884795125897512734137726492701618082669598040079533535834805416053285717337998135005342174895454200390965688903136782986166516098301246288049799037728709708089853748998286057297759067279218327687558390617627541076759810842785237509977687421510313670308500827113652121556953350761763620980282033482201768295371352406620277774275011839708935338509684831627273013991483436296939645459890862972801864264823972236981181558038456242804682676809695493376906249481071058325785555776989734271430087510881582759426630851326188109772995523688588995087847326547880320499937862176624943228383754094022413053525993730558540807263176007110679255321567370698123396179234633200461932060543751164921244739829912320021363272573214121004805577632862266025125109217911263329078910168594823948257361596080364226714306589720476997389527433346971072987909745672972541466726384556586277683393279288250376743528089579508095245215426556931623154651410766373709944740938591549593941831801108053308895336661339425867854245569161629807089538532712302002032376216556959900933996105134916392488471849298326341279946948353882608172779174096108799346707437169167243905259324914183811831004746611283940659081570774756727985791430321568897699563707867482448101431041142951375822378824626192098794023315340898677222143644379310784766958379198170847431943393540852371999271317792397438399638380122849571261928984787723842906235371703433388236001666839656818815184135778777144538580164459828948091877645500080707528241874764794136926188536158488411517392038961187672512747669783522338823880088382868207390744357055496004072588004528052486423698498241079829934027697951268424789320753184602245808600743976641479194251152871550129766001861103355932727407752312307048487585953021934032025804252173720940768899134901359059448430329069866970475753418352479234427946187915837236758795723551489708999862158625469360522062397467320673330522239467781523197861611336675260442229312920415006018715997944323150156948913567996129220720607730694278782689559528683594606099522687140784177272138981353914013512147410203780634432515451389594214736820857928335404764498519473766771084251629511184529904540390106609067089605260152528832600686547115768858642260926020524341206346002811732885517625675839370398823731778071205787237767643076494434247844456332327529212180568466523975798424102825271698558561953655793629994521131659723181959834143833865726523458793474543843350112874326836916299665695018895327097795429993199090023552037670077091800534732793229028414797528559602501747348816231178996991758441352831636912313939983411318336284123059197127726879764162572085604007027375024938932724608197801691768899097856177125644542688185873738002578382759196549393970363330181833426168698883672278666880880677053289663506912385583894099162836461166880021042165509930717034615473405037610249457782373747946576537043070722469705630217377608008457321908243476833016874758116490869070696939784990777166530933181073560972679030606448470344059207597502938921544419472609830906710438848926767911934799934366880020334173648679189943514723407356155987632364392771338285891711580787788230374960970382984508733653297545022334895243102369297367352169722243048093092930081196017363054879527445949549429258038507240908158017444477410147177098742496588310700664277481036764516934900299426351470809485984085183247099021931855980928288370292688420796370043928182412784695133295398473829066976747267038143488995354625322149914955007294103070044011163915377022185605323342511421859698197262152875156129640262999395484115289743254949672368485605725342253882532178003524140852102247094777362145559500238037649361635872307908413222009506455338504867934622440780872994749909748172321538941544735646932122627063613635259986483227675737651586920249616717707829948580973655278292049971360042764940191120657160195833643554880962056148076329172675812744296774487131977378587207826234914907102434712292596581356197614539433929949210783469400815366342689069474190697285657154602233746507509969253493588713043716327107887754251905198786680849533943741905006205548891804582688611515557701851039166626419025694903695216305408366318682656783928136938552142371428807567132734062005459471408732084426640822267870051626428511873476686103812030330148669131002794275307369007631956647514824400099030800357414514173585973678102755292009663194356739835296196318276443906096434750679646024820882718461122679283763912691269620452797781993006944767915297661777356096792949734782983519338285394999280799579913753630347548971178958985877239836931029596459511683264068533437235802638139154477094810828046977554423464123764208263678424193809145881267635663904532206840666483979203154726753329885026188276243008629586344374590944127343396533654673459362053105205684834038641102197861278363187560758713336574222443628519192118587163811605707343489205916919048759116514337646799146471149381092067325785534929276428038574831759850577149335477528710190685704383919109974840961510958113010171466074434109659181181852766341035161618986194579571419150027321484756304314777409558201520270761887003941901311392990829695433562700242816052067574207113657363543554561037065890803530230847467864910867676356278715159973777161007603323833188345999517573363676698505767910096205597946522692781900666032552886952845395622689557908352245447408205495162400443183439009741340102625171763686784048914579595616571536117147347468684707404683124929561951558984321873729464606427356809878172303766840478934657716108045236158531884695103549536397327909161989679504721265852232337422663308556981253764967181617323226448845477377302208891044777240962593203045796521741954233359063796098444692611189124456929011839856534577616596135838272977241215699634293775739047513083955139195653966475940857191754166987232025822192380736842511994433675148094444883018251597471348989994018201866654373787147798314580203651444199631051836495052043662062468987056815683225754476034276775788700647095942551656108204631182659581580911578544194660297153435914666149189570214788409139197320684187939746504147471003051508084976417992996125792254789588981920860469077508181229352927518486851224687658787294801176194898820270779010211773750150699117492083141698175625174343056945210391966819154355426764007045531028563995435025274887209393825203435756852146077103046470434922224488679779841433133614971645308132782012330357669568233060996967440292796268842568380456922527151243481226543066557264026949355831997208622120109558695937429311924736927426286844065282791547608031303341874485908239424344323324278399072064355745117565173769300954443920890683113665603922486704785275028446778735115814869251999617669076940516496426696242785098300368030573028560297173931392519293265118120729287427713475330244858477661053321323001353015882716001292132669618733031215002310974360858133156151464058318998545610176201943085125961519178026155253095356126938775615660665704600091255768549577555087728180775236865561303253354992994489738539960481535272377650550672126019425457956756475872041076116372650068404335950229741476118706655119402897973163069374589483185501283357904820817995029978087895367538191885227941275114136392592555052963892770019598274601311213626978928109926670339268831173566229014432065422668936265628986152863963568160037338986887883137878531404404002037972670132289169797785350647980703175953173812516437186011282492406693548496991865480468937753032262667318180714405021372765324504717930782625827567218740759418353192458435886961881549839424889743188924056867280751956119529673307867000731349630718054258345021771266974947751333698697580212966815799012319990090326379867770363667270062165264487173048436828707353333878938055526636374104803737898623551455417511548246628693154271247050160224632442293401857183639176692917924911580964057458061049551746349643274516940110070455278667638330613453383587163646270100251365440176855118854578969168490347779344054486630934884640624826619005493705301270790608705323380355468275436276596116425960157306958077521813203047070620782724766420093418510708273095419480270933585616189803282377305150441755599630344936262538174204935521545676669402176748080342443312520177668233216358397632547360545327984077845154090148165419699377567277479143216688715847030043517148376488602377755971872940047790569088760079352955431598788527822391088521652621186506360711634173910348809020384268926061799797793464060074704913698732485404357754124772187526614326664937712349654329237908627310091652789117863685707424378940646737500809411598470186421827737379665853742547125241109252205684979526569304831673232159905341146868179464764184010272013762872640747938621362916111411609527431031114250859208489584217002974102770257326721067520301688909829748331945133846789095963420546280485146329537908256999714020838359827987002745735620884534586869674937042891844128593641843350089754932898892162832615142456994588217162653474707641156187699337099366675847205717882793644927165527749062419959539354974822636006791365277345293134938274670922216974775496577542612124070145609768666206539190640107585073493648865497343076438412023907996108536883198487162872118649463273260082051204260074350338113219412470351333484692447833020911197425463214960592720871724122787174162348746668589569871025893043187261663310083985633436399700883111750132505029699833542039869074123780955245485343501933846762491731329309676840784529587113316364450535906986060515692582910393863360774978295245233346290887896052937646431952991203042155082572447927122456430529622851625052931503494122293970206550712270178267236986297787199067436114155565596029894204357878939102231426974801050820467546121730213744856469320827269234267548670494843129861999301211423576245600627765556482810636847672380322537824201246416807772327599022346025559618857380093906111005004230792231557992046131997567942490543909250921611975676324501195358982075878885050511154702712417594133369564237041661815236485977499618733298609267823078259981283070082229003926384566962392700891582659097750212785106579602727072896183979206021577807009714399119559170549429372959710109301334986925401176883738540138172954452376982805197273433864259014597076060457874928005694357600395669450861389136382775074517780815731992817062187610525074551988973908226365922014823727064507948948285866882960402045156012483734248554886447153441851515366388729768064843148271322744360952190508617853802972477318288237512985686764903991030627807886213029119436145270348469762023405748995238923918420106670555648398848278253485505457645211246966191571044148461227872279562673210183335053665065175908748825011050969552478581494692403786912688364825466855503622219767075488388527332137175209722942486558595016313735000234087668952225404794946572572730724767958783009550157199317693646533669914132296211169473372574259001474595055518487523903555084795733221837788878967669498145365915203399551310983982197744240070573614367864522168554866264655879693435866588564867871753580081154936338242576920525055816642846530078327692648657513633058520904310882306959712003268964299029206811193758728253024867471301318821747348645130447342874899610765926043381440438429644494685142467293439891408113945644383688475294374804260530507229923012202155958487417887755401940787330220953362138657845858793140036383969431788931783778526916826978603181374583106746135835342806723961492099602317884377207688638756631453179983028296316225656435562025020958889527050226227216698869240672372873424524058885142123436801004800533639042355450964584752903565085557717572160278168605207375985090691100714864121592597211837184201361809376087597812654073652832457962216989819403351809704930978290718968407374274316776187363133785220479796688013499475795730147356431504636846360975796887083942863545424980280296202443067234195623688339603170983009554767284056034027698834013839572522228084377431129241025672300226376220315577702604760487839401689090313725196042136949018296344357354234298520878733296272482613221492216681410190383494575973722319349641110204447255195028705072276771939594677147183145324025664577602674086565822153732445746044124084852823231605083229428570421000437491813581186475982816970390329929886632893502208921293394903142444524098655445877779841313327680863848924210481538153546837467302870477272446841584784054759693041795159592350093771941311938222094743905897173282557523627345617065251294861576487212007127078469005568870476530235329562619628991892376912632639438787792469623074329798093273780615391801620633327264708824064630249799066395158789374868438643945810803456605045934222344329917967286387277511453594768490084060732480105698775237635607051436131719781749585936518058424969501208455601358437807588549556591102026566790521696174049237361497716101588011808517137544756277380177907028127239020852477271767610218302871540453261036772113500449608094220400383327470962695775058476213665295792436749171143691691959602824831727071240820013044204029675132664139332287815360957514101880751397769145987541075327883496272467899035400446163057651821798844893617309299646186963601364827582255813951606587507225798915726502492385518651911548984290905401464667982846712625994514414077740622554897885552226387538819957180994399441383723511494307179895342677437792830137992967914526998678987279123399280494141667999521029683880160469744993206572005248865072170258890662611804221407562261483010973780504505839023559040256968655256709319852900951647582910477394058533646129747549659485880182687492378800534777568915180089999045236476754570223649119725312708816263867256925841576286862984931029732724654998466777994094850061625961886424779020658189102722978127759276884249840755305305935684477797549580259587654876550824231970022138071996458940802880413415496482556743620975380957886605882349963915998690951246063642221282850392923869020197786903654709598840126027055227358483852707755209945035529667956595927256277818631074720021255722614065473420311122230571430001639451069861488232620586850140960267695203656937247046214711302816885592104370887491661468633280224626295894171815874535228471728669464851644520924260766501998016025097715901571991951445464100192196287411644609378307452095085718163197311244384445053649342394211161618312339358001157495456033641478749321504685071079904665327691939931240383613967398154768772922125287110590738301315341231526963385544176014722643380580335350444590287566518563058008726918337698823822453590086893013043729386427190704922349225363642875663951617194425001709267004473401928199472809354237105412972185881091964807728139485525798853740598833617341987961777926420588141765306062468227654346040199858757514195706654330301569385521373719896495712877220125962886717337585899399657396502117784798861290227454746477889004456501448091607343216066643888451006661430072205286133171215306493442824017691549588129076594321648664349138752379753397467549641826904212071297181001312359564819061058473639243617082237125410023299307880383061014776630115784884031119256268551601562134163398948919562631522598319553174929752528610875306375162637449567280684274826704011818743865972814413394322180447921888791874417277947584284567069060949716226422686246965728767119490579537744380367645402281017519638579679823199837480814766438223349659207063304389421251621033265225075783780318428232387499894612548885173246294509519613093457244843077486936759793952646308205198495733720776530672188906926868371370588609743983726966296913037589708104251636734905523727126875410433728200766876232024690296924625731668753883216206157478108350275741160611550250211857405415479182907510034502677916768855155822113030669998646477077614882167965989730902848241117431515314653090296215466726792328610337309881487495897180946691362946960462367507994578474704090461966946284585862595790407002958903440031624445045378101485356903838703885536181555978627016651892805594375238637313045591405636497733220746610497970138091749897255063114026173813748047071231967383030012481833171406022489370025400398380713995445688631783589462704387054823033863943796814010264047239431923237372261146173762687500596670636876940215778385987893058792975714982835674386324043693558029735982981318852276250312875643456704965541206747352451596991703502651024097153830782582496924072915444022531152807345697344745697587811305393737680942370794395925593367603452179551405465422543167725773696689071961864364764311811233192100763035173110490590143000455845205820065398860661674252225624425274534534885913881922802526281741311369768354129765953225355871690761000172035480039068091118425115744778238272812658256208923294704696708186789070138452605158000290121862117918900257427549832813522900242255743064698410028113589099055367084808611774057954681831779838036013711529044480775161044453682096869850309217444038548474699092262704690614162173403392058859588651550517471636771713235146265876190335342167770287374874655171385063179702096213036229566358816947841342760761047151135948065815904592792736376909573993760073005730405979751983840043504672198420407450155931503709973930469675790987348703082873170984051058740168489270404588470926881278293377779331276175352854047823450473933938989552853508307362011762205558347335385596384211620180369119018220314977895645757586622128868313543925104598960683830920861020906696883523273581093258645353853503991380763258296854001577501365678595085194816007312077488506698267936297885221942301250416478436107319875168091168543686594405874061194073889121394614817482379787642616528474301952010012578974962436502669046500411706025245394344407289209350891922384579533059396143655243974086868196972191127759682526612324576351182957881602526513398511870004211152053646988110952616839515049978069332809913986542302506274631171906051020042552230616725439849331149492911943317635492893126560727628129963813157198212255403515256891557508889729037499715193978665430723495344726202676679014022710430563471945855200218761148844516749220027469081849693566133894829650079692122101209543637027882930744711565397947432995097439314373333027790009221608646809490752206232848682876272467250149582162653324838892915917506721610113034597695884990905247321750434940523684072691236522724950954227661964244733962564171782579938043588868605710173108315887982893239184463792815376673486314894134379135077140766241885063482850510278735776000458198005412190572601924045221431483821417284053020716613297825161296858751895930327565866012656139836340768051976267004941871186328207965438895758802782880809718447722020365947710333863065373748282654298149245883590528729431079114912972598876038018373795908190083449196524589429980077345372269598845097757647139523401176799574917277613827204060360799360190169624245926325316921603065801544512553423536047955830981498189930785690046479405973956795473148626965624067245902223091763756011760266932391821226474383561288429178528027453615902745486852704362915699668451384556174742108006906504956890854234344647431558034231892872382754415661991629465312212195637056020923202456561203163668422442840465952482014882168233279170947835067398678117351349523317752703926131200410144487084467013666647195016970115657906046541282921296237684549550234399926587990104830276818305647699969067142911438693761883267916644623729871712588008749977609613946592410817008151222322817674419910197420320059578238648035365660001790442192303610451916522773222741954974879123316191275956873263794585704594643155032648030558842282362090255322499245241803861831943050692045368249305836062003851154181755511581470145921697129290781578621463173303722338886516261513503265557016259437299029844876725895372466058271371796861216255380798611127896791133667647275091665119241202582474637001861004980000377384478697898887371662123342624286783564782267647556943841132291217495202707025398175685895602586237643543750703638217032872610929377901672851077155500114746537670214273680477842498581358272489033856018301590507548314627305169258846722404623154309568844795062143345768357968730450305295304416543530102365404395999008228161078287512383139662154302294452882607537182273424333852874199677672820383000189116310794391219321325349075364703001459262239247714509780126138649037789268035721330459908446470810102046139382596867604776366623499464782212751428893401852004419566437282589258502561740387106462410206136783708174046275022469779196918254710193926289816546799809160080540875354403766982915169093760874817422585900239006939779594204728488491239594692702817053752730771721553470631231254339165755067966889146392051911299589083102798989165431737868639707811453314161098014641184405964091022345817721469197803472741535644473608824209826021689414275977119148520111387662932740635444375105047391089125611284685054013442607993327383153221580493092326104289395027107780169402414787917265812872349623498125512062037431184456976979008995671825507783011081356599038329434023145554093583276573493067661344952764859535974981882302187585700651533797635619337493749790126596051609017615578175776319756243468917101988811187606437508848547860490150873640253944303605912093954374500552436036993800845184328760648515769520209631127099456028301877372863151739540190307014406285151910945511744199805264144223349115530151685563550549394257941575011264015706506697148093550902423257786168749172878684281472296754952103146006851897550797020716874481622749985715456231828464109581513441528188610029754154605154058215291562709195292301160314894919667321216905360039272325458804294490278391346236209586109363883072909890817611601867466954303733112727350085388967303033369557896728448685304563956330066052014673232405413117510045633959862922753202625724752922751420810087929941428205941594904320418717241871147824812851913202030781464276955962605890307635665886846731813267895297574059426170507840661770588440846773857976608831233895265362084925853221065547955695276357336330034070463843225172165020179250774001394748153764063465532848996383547437677873962734419250988801000127634189936030021428829106586250994200615207035668336339593390820276934037269351725560092903599654744541612509664158088719571604186285670288941398139102320833762093388954562321134983426638193451973184399359148218431219556448990432599510193163327423553271179142716134688937088330388749450420877728507301791086221604537302472116948945429594704893911009716014586188149004950997069407863840133800283060746030929888176705246574576840677479422139725776340172375924422690156590470924493568700210718831392293722764100874910509355268408194325593502000506278785497034891166664116228641641838353688703474321731400102511990638497988020992077597485275211715012482057551515700815140147926381681535979421505083878098783485806196707443567523448833322070201531341414249832152240873155744142535041902468209674956231317688966819975206261576537976077908631625466286528840447550747838450384036588718015196107898516644723319656943451967543811837274822208833937052268813988282779378802527062037968055116199634883344381281429455695900379560785295509255159332510344320526538399625688909635475229119825624094563227078189910907231918115299026642571947393473680834430351008809679921035630837823023753266979814059063404316285666622479777246163084837575643692580686581904783276693639732659309674779266883367709379672001068988361614338220288041714554987873831898997392110953623032863007608656947236907009446587919330537860304491011735106621612523615717352348982666230944839374442925698929765394366692949208306694346271300628117210843118166947553493524027283686380639335553551102878221290105955991074616372209474412622681048713811487889481359921643492758832680164140808903393235791945791740807916731825117465974614814492585924367261532606238255740721060263571608772710439358212214069589318973766235088788796276576468525598182753644503674646503082813246259104948297585635385327789022164078871584648032416537181259887097052532748024117426184804783456668766615573435321067146409360909883331033938333442966500985965624381772940494979429420294855986085270471837869650460411754565072866290783277195075770494321738692552312034552464889647889709658959491226976360119772509564120532211244331981211520674242165258621933740774367593955028237709736599816159011836840858341988030578647745659158873344340763084384838867725493644349558486733474778332989063783498751066947474612922546062401975702870787904016752574818845981646523202433700133201268846342202578666989042378889560429044882621340688719688648073873156330361082746861424627292185354758744761369868734226868319732781935751434247640264106159229237903428896296496130459683229732937824429254652315053127772869307131762750877508328957506292256705436894820589767995178287739186685942394581912159729993157078729686157754077500773742969346751427896700574109215446496410481857921757843053631473062125249758003326173679884004991198299805788730970216866969065086682553617330785981573769966030349183483265490656320756735476417032474497787882960614920794038316695712590448743214740122357188446407462978546789240179599222347924975417784988359698814209130806697005509906968412251945761511948519535942752105072830564278780134902557283449304230785966745901664893441159924684182626457830529006692585118933548636453919162682612093619015105282975949225191328421921755886569394659966646257845448667707960232444406859688907940403306666695972742423430271285394934487309021568601046368570062633973030302637227862895793779524133676801749020093881681212332194398761131509151933289186666495440639393670326386028126026741649274596851638263516233961457230097236962869471709332709303671978655211802874137312688484646219528775210961314182394211461604612829479130088971088047922285203815588547835484830304196458030053281080923306538588062520674930043336204104766860247963615410823083730566482754550781641769982105647363116838900584787939216418310380755909122236071063901923449616499547214390995974080045826875528795197310857207863792238436782440807869111322260770528710084925289397658050454674289010477240333518220655907090387421182441043932611312875986757683961872071066871025690475969004582537183656057784548704733654253555377901963954992869784875769595187616572228419164807635206101556856960864278068759285169486267135022509967802634698211420929406706679186661310178331973347181620938022523469940587205845442797119024005780834145815736395100078265791757991973070838701934222184011687102913977768372026243683121993362027126322744618309167691037790156913777547165006032549934921510671795710141758402380830553218837412682372642972152124463461912520112034412574145719951995591242469384745097499482483310920703120814045582048768961550529874287125391214261561068064498416866579960589174204872207563091943211445057337947505084949743644392924858233961247534198740522141938217486121217633106099996929101896826488733459813124198579664296831997419576999122544972444234280962416278487254555414964938357956473097830075555587119069514574691410384882484358166730425794355911295972276728170414159837696119381559445439675864935093061791251312332536304132480257383080758621622007554301716832687737421634549481164932210461601326315627019947346599156509892580446610789813013519746248918560578696427106807293883121168743126360463536958998808530909973994300216601750417121308173429990260639937781136504813482862089435923828557203416281844688527143578459348046467562644368979535377880508584168407259680421980679869372425870098498691252656035953656785394307301473675147983909424751741540485146129179453329279612580318182739638019011077530262334445839523543732117145196301104393024315982730035115593931810507581789569496541390855210712290143979743607465091285869576433612524579821088163706142170500881014975338348230017111229151807242741156600885521419382851904550486161830684429638508153402859113445303259272399145414245586617306372154295898520531658682203059650823660613941234569363464121999779484767611024749612610768851899595526916398719464988608084034701146574943219515091016986903422078103485122516305253939227214486719369075059862855577608059049299330111965686952206273075381659598016504227017506261981242539620487851368960329431441974230672686170308678173529414252916259441142188176244442084937033420492005319079623773680633221734266179122636063612498817142007929423729611535346716625256237245516003400245587347570634460725491770989635686575297675475524871395233095878502933726789652591150444265347617991395174746569266755208930736382003530272536876119439879938836927563920724738806717704208081163906886339690880504699416742988479677700231537456167784096106782415064947082823867644251579405068617074318313292479887737391398859514400695114273900093945100601294728056883401091503942561515383428296902483079294713933163562471072740684529492672751972944522804246760356237408317997237259140964233232386695332902552020735893322179162712655084515501159216802357627622478792914338164592634890459063449849704314941720214356309261255779759518885714117005283979629085898250226610242321621419780161137858343861953670609561869338361531062339384604989003383614375112688551403021497084756915634443885230211875476321351802227550259349711975634733997498803125692639560741351613254506348086008885651878256706632040582407364830348452841066831110091642367255022252610398594110257147310217012769745508029931521598324714539678672528818100103759153418204114268359911067222130278481376130904129786665216367939757226938331080449994281354658447936137187869765850782398430602023848984645547780175180801102042641897537492812975795233561914555439281592845190639903602935418407616886106092992357340263570529896635251613934343717812045467377627894577060864342241398962434275583376131225531324716512891449967628172867443662160922758058492898397874360903056933280064134363446334334688302294778942342831796369622206168128311246262947231493953402337750000722225594419378825259844361522168153321950498683691533456575861587977366464644490064595008762161129732438326209331318240457468783483504343107793790688591726819331677316566941173083835776119739412834071198191494747401958520370659995869986322284978832259195783956064090296968063757570843397434331269732569093959267049285276623680740350250525047648762629360533832178609433092056170541385780505289999522256710191741367782703986502265258535534058621567937287418522333557065303887007134788831463825385210522593957007209893476611626987405261290775593659263515310567657705072176541028064826146476170850154953246629356174984823602412715148106123350121410312685459392077462844399682504678816088224740741463704640816314419532834327432756944975617838347462990207853421144041777047249390466281248800478167658097695657358527962598658065978999878128572481337707307014639419221675626284960196283627661431431165567064504005016598618991657859424807661499024097318385797233873263189585268572401709033034131859269101634029478286776801562012806720130889893397523848830715153796037665947182826608518349729767535956848156577793414882198098427212485493997942210158449011501583089049601513269417897126074969346705363368259782899184755921966717597018269204661132201276856746568801195091732482188013885709062280857808004354539753714054591305205198984939125733150331625727252445373908618695478596372311058678274821119010747338787778129925644501106255879774631054787352889565160273603372162048512165356045537462746318824835457469470319406300205243909655968542223013137817155144184112776357970818324758790713490196608539121775997991748674495171332849170382016863737951388312358710811625387349101419643241263865763713545969294381720161133416915622010392751156430476700157574438486722923520993538988617201646809377706792143092423656782121759917179365959242753771225519899807065229127646970777461324012232600908310348046337001073074474700141842036474035200632883455422679654013111269405766914803033280576451873742631520852408946677613079550428419056572005721892948517964220255112483239283467365585570443712250508174887179471902015662377123752529034762737382431519601742637586991476444972087108919016479294340152210382765531987549252083406365862689257617144618204102835027997018556105825444564570085096921776826008683383901933013619667565047007774556434349235367869371697044798183504340349738988583982490789641714608937044919345015631880147976216364932347231943031114821561693439799179289233362170816375663480200362335690762822541241255895266507000440088629245120879870831267553968717553256244259030841817661896701006325137632792711817479570420321628428096220486558639429111112441565455422014914365599068361211582583078187480601347587072567572307999686021184136897413154385237965959376714421013832087308916519754890410247817609725243357856143035741249172646517524449136771113682087727975432135364231657651827337356069463777072826714484459430161668632305035971221950548408403587872417382249746435116011421318895545273680992927883857642019367067092129411360448763641969609981253461242019167550123910295172948449495550957052820712785940223095231072020588553874410364725093551489855469952115907491023864563363757922630686668255141032075276510481315360014485102392461572676596361554236750264083256270201952755681654180241742893594017867719351265717254069877643541861139184252519324984291437610206256780576249340227785374647076688365196346231962451134444018577501408784035804342296161041539593366739872172192132661253768015163721086932739807771464009618685608285804011509800271387929034858028931670586048472361295608424386538936784342693910378693832480487467103144160857758904553175107776688408500046437107805423119398182797224921480426853180246111131855606175128593066177291031967743567281865322430166616499776330162011298553338175526455063921741763796151957830622627247216424347458835278262622817847864733370051150237423253519424307357745241092447356953139601785430769115464032563713723346356273960547574288962077421925270605514594438164006150250336640447096643137207153972031485517772871346021793509505963626791979066729124856648087507437747648062934205585596498309286533295056205951768974889388168075207763336503339193475872172532032297113332848344646910841007971073577870919347571757472610657428975201303314571280786245136082195913716041742538060562563183247057337667235631725490551806429462549726516006319386516946656867442991904336385610572028332210040985959176765763509167453660513225688337548486651815626959859119534480474849404497496872080285195388130548191203188305332538947589181572210585325020086510321054053703244411707599829766916341594661825791953013950566853897098655925304500097677830973708275446440855541537589127887111134917791740249458267486287152204179090498171923501941441280540657560344275223296611522452709214335156823117169643524362916703834182713809479449865000256306346308761101050953065352613450103310538826179154414126286050908322296073959213196768130586730702188387955320587093828129368480985816021360016193715908339737930486344560392187923877177135719441320968367340792870233503880836352832613704256939516566531916815924205841958546903674350246080629680043339894452194391612121496652972847432114033366313450777703223102488742160610900153851116260733644278593257873372385423932662093120542918998647036993117331364824656191214166049564529665917647905213867897185439676581694384923442899779472638066719784541563965746517116792680496891874824579540068403236181162215337199192953149645072477547928259859325046276530925888028149002430004424157092061075733933305261925720042795410418020269805399997360881201145312963569199563715572563151603260501646036279484672481867738026945429961800640808373756445545400842885661080270323231963879331615789926537850928821575809611124851233026268708693412885641293103339692157374189227824573323546230699793888889783978071688465078650027109833494983639935001299023685866032031654582223334956020983230821131296869414050855622135443238683204406853636215856326766611664344300237828112883162209540533657633084963301209261045155117073621314465586539730417022004550691307327026738353076570385736296102678898156792860937022237058729525029664715516589346648773728114688254588468406396478552699058339045787124430559774421228890307376696612612206856462611887231339367441952912585710809483542088313361131376128875050625039264957879365011429978662329126435484166986731329860177396807461862722479951539760501152982474252477378229199545692915399702027048783645210248394517587327168177673557783740589423893559735075874465273035028587633623410334877436774426203740765339152039681274473054517051764663982057031827564346161947018440535549493342758882261293513266269963343422156893708797071389058211318463122622925325454808028702931374874693185643735266654102302330004297173824605159246859485624844126911159848884675637447963729999699969762000358472451688614519392899177001708851348283823914012033670163407229297592905458424548446187721573161888345159531924358280580980811028406057767514485128669407004966365537353332081075915164067982169970995543987539158845732174917660803426155437082750729085778461511184671259276808461965010295040854927413307185079706014136000384444795659158013585093342892732118317802002307920821208887789129969826990289321989966499447080388549194350346964590298642119762189498310599925912676305478166846304387689187036738048507972093680389516577959008159511784985880770406554602086816436962945253213825532154067231949305029119105475772324458266331417975437410468790810944076480841108157023307668666323949982302464505167278851384874672292633753555441290845114864125275215493064549685541050570887757205707776303476734316088883048822274584951055429854390159241885418525600065268062378119333923784546607704866258651239384418100801146946355564310048121700969665059160750737893595544371189658451374660632573220794726573645502766636062703203100168809210989284867146180180325545087251323396066409064512209021108691116626173301176211754353405466028933744059970253282961869986906246854951819439740660038622337206936168665828743047008586117340438049940350375733331268979812295776612485697417921193045395973075156768306042033361886871338660371856441275477171838817961996466726583473677710851206021813383113346675574454071215834876222661486115798826042773529859274270343692037703298646470865261153556275809005881999208720841721985948892240179068775102078388611219018352311433219615505507065905176897349035729141739547412711432415708037973604656815623131858956569301403255165868161865302272739427180066589899015406441562703995627769027385900538205027348923700333587185217850753038730279290520956452587768902251011059035871023957159770044017228010295393448061604490028001910812896985195843053047947694156875115656127749030478512699448254027129050749313596965755449539397994706755108971699427027394076948041736129565554176592391851476785062992040994362313777328040708489295197503666377150020190534124081656581242441667986866063125776660329921890547660891920571542814162048477611169108869548301999608100476235824521530395977192347836756092655970189331195391672803147569919066893549192510237267645920981931966210353544169725113449183413563374623568397589831750239999218340434897393781008585731284259655989169784300736573636199893715930144000376105229580914715266521511312050136402238164460811592443035036384842546359870334022431848016456445141294618701437448923254622346825446004561462612838328516904674904168879374400901234841467552970047461955334309867008521939539385538710390104631302710563561332673910813448366152827756973257959217145741993245947087489995773424573259317070133577707345363246996042362582599309464268571978698847732126241001330997058467291472590504341161144069908206170993366022233866264869901591251782197010527622938013973159638512700984014406500857937066599329828943812324894842563669575929004239096484911513025124019441089756583432644974778650029909372862832602609732385416771500156091425706048417296417338509455032432816992884857274718868657642543587913428911793526204791398625253309785614894751160202382618688793432501184538050243432510710081670832301470425835032058836276614848866201975831413867705302008809785058738552500032167344129384790153291854955970888294972956865332918864329942545149594915410228306777785318525405564141150823387981121577847680385444466630463975473478179719546544743738952025304499380551355057687399511887056471092880024873805706800859701026362623885418273027890091854148736170152137045762363913993005753543159811802505653666905859466166372894256675141099295847162242021621857939048465839948297465668783115995302267906866672216081869866012900724555615482281426873573531412309751546138932352078512442231315678948762626327768798886028983116719782381878110595405773705629802075181596366292086340019510866018634191521058725986895401911262649116282552911981373472264658068136506929667132362355581279051074526606387616623937588377058578610229952784898506503006842764583815432484326409847383463891927493790508555024995177075120075391312845462959830028633970794986598742172420953556658733124578282983930879009475601057764349241566333690830241414819384724469368272824275822300788692365589083052698143885537025665714735254098528790620769556414391631779048126276509326402786628842454098927158076385623332856779117074664380039031166918497351467633198617139653297614954151037059150787192805168576163489496275439810406023772668096046070620254501791854900401655596751273494007450361172422968421477393478131947996287357101435759956012912408955440146933380794335112678236128011083493035865810385508082340688977284328142768677962608095961260180211030047585775724668345368733337463851792294405833564655044440217866050123834141972548095503381132693472497818830896437586010389826610734059077916962297621951750735755717058295560413910549622049974361638134416498572506410893721692952690291614590569719572799919537047323330871529779085233787768171019385918934990791581029399909095858537852013975592076389053578502039639466654064612632747183402121306464390168496148286553848304070765308360250715697656839816295830760940886138984490990504156769982956296971904616466622436963145521395965417619544438118851008325249916001882623256849457019502571305866491363469448829834547444195456619389964539149475643759295297891149859713900616636222756024016307408039007349659254676320272790695523873363506338858932460687482046130622173403525659873806140804463562598775273803761533385455635911131653408096725150755493715219725009249229152125812798077366638622487715379612996616582951801387439033266325482555118253168875579458880640682601630792395094367590655950847256966557930721820615836665236323199952602745590422128183402337976998916893262919673642658662491320608301233197852552928152677747832231826778333187058667519915312236376409586117017140814311709224347012778818756601083336895035414359638354171157845839438913179408013846417673854425401313681255896914368269570987343675175576271367114239108895236328477011020725450372584201747604657280448795278168403904870537933126548830922098494800681543952743848577418978191458190742981266239331255657145207562370154837536712833650805097038221387811050947353733871124563954137669258699089384779520188198249227394723867371443259100934371324649381464417936632483368179686236323353741920923039248556572889726395142872162445530309069143849827934334064648049608791614088695499319756569620155434538065439213563787690085954599429775935056482760924215961514039407178282467682293884239834610868554593769872051162705253552512211820599109808005324115197075938958009669378258969988853407892146715253226610178103522296745045357186964960790249646501180612769223017100578033274104512239100570946348635734075501151195069452738674727292596103839521723958845664890204833340567919386204768061393022608731644175879405306017021880299957322687559586247145666626199369646939396968160326621407920851520186445144528120878519092964857865749486422082423374233615851090822419574908010556396465007648739367427729118208725218346339098695435994659446641871257799438430439748103124540781262461539496859696113037131007718996996979208133644717016653204734664608861375333646682736488153448337782587892756620866977396829041114064071322241973639289449893923298983296053021307806572611555473597122437628953505246464053314367710455108154144671713289991935852224981093626069857030005877863137466235422767411627916761672122949729615851758896448182702552993490176573768205032323539602793294219129018062376311600733498702902282963501374303530374370179291748054426182227157224187603074440569354102987647315494932520519531410721255790851062759025214348113572090864295882394726235031861170286472629827474478593153317160876698282732110933370144711475057707005534255668748339780665417180100205072194479672325961903307709171570655102026465004726004561450820976063940397122207999105149284503919854325344722250728557101020070491602656958223023748754470866040309946687884625405275785401713393300332787552946244439532560272448817358527989250437051239788792701516910952286074341572701791058490167568910205153330490881317824062155133836356251866062362768217739038819938454575987636622619773123097951729961120488368809058600928889497951111623981841647971783355474334561435922119089302537181998923933787333837295280209324252822092180945884006812636036296043016237142412096645686568586497520670928233729198184825710517607903744569223548699733692403649332422835729545008146197660265358168900340889396837442035895032410411946649248409263637721186692449245390412718491274426807308869736307237356724957837283183864623487820640922880540454791781531009018100956973280665716593333657924567094999515412974248886715231057811962454176989980776456493209579642897416453478541279612166806169655071393503086003727631124766874844260762389183434182590453624049175607534799975255043291635690285986452123662110334908442182723510815367442202040319276008743675991713275178554761356138597049334017353688412294611381260503965064124397705887533600598618041791090058656088131706132948505991484233400939891700168971540322776225994800798486223733960365294927501076695894556617528813996978162618829975704835001784646069033531986610638950366449151113741749785632155539208690858836942563956096190809740879903952855512333500721252314003114842182613316685978035422809223834228407171427594979582514325537551519225461370721157799558463907297810791608072312364515036329453730536319687941043602037960824056710714714201612424847095681754111122794678175282247478470203577066630886689920740351001824247499601410857810652873584218468334829692457259755118349052593795472886994473401902789610033985855560415290791054544732407147308115633916113598323574922771909907518832807841830460996201539561114193202704574447169547663458333288593843368795086424989292031835992821757697155162434330965456991134291219091329246070712440896031752097859859003060126055275692773634919188645126588841824508756286250881586090239901395961663976590888184908457957716810766702613609769866479168430715332885863452967981973734346375941024330104470424243599526815698489038783235191227022212380948749508662052039875283585271192359569242817489146650481681822180854340548539293961321869382926322107870998232678400010105170073706111171940938883379964697970381114419798099590226079547755700343916866339499860910155378663461286528936446227431595797745806446606495972062298937039428529847908446107792816312917263455940316553768101395626081096558694503822798721510858422884207835124650933498712341085573305206849807627935660541027889864812776516264074112406699379591198552020202500689265973535078673462012130564256703558491098061976012908000597638477355141059000770629053456848365536596649298281095433134750178659640294240075003157340443996597232075660021634286117052296599416803842853355835193909435307655461361733118482639791908716594661913598093876060416881413422653769661036728372766241241441502710561499849847653011226677924755018359252742486136047248462902953569446349135853370109822087009658788224441268920380491638959342021810596250163454123468615746253439147562870420173033781058629419273693807512250954589853896186546198380691977380036879253492887518272697989395664411342569487399595028000229815730186257654036880989643129678755816742320759817805238382754991537445679449908762628176889457202156972753429281981706584521815939276014026535028613925029865620500431569317473248008912985182398174729851220286182190768012778979280766154094401201740976259609778702181287784335894929830356426360209023396817163273706962507572469318970811287487447912493393523415121732100127391810649287706352505364895579625559950318605598036003537466207240631439809671042480946132102708669797292385494385764126949425142005102159578963235360282231303494106301917202960425270341868783474678139655323221342473574481029950329110389146176323216901848112999780424354635099943948589357399432319348015287108382375102235162959138053825031849743013644586169785272674746047679551751519147583952590489872156244534345008444038605093597664647584596571717560331330904920339995230090562392954943963164429260238970655696075802607331433236060573341152363764736091712745644499963597157586548423803083281316898600634811310497885734479910316349572347617866217815323822579596010103313944967067557462940227466886933596049389075755888150445636905902947530098301016312937149174617665832378467854185787636346446952671408439417269658263126703217697472345647435969375436221979894591439825791314852040869638991732133070325481182519967685700022143063705554620963053777366512091301954744515312501789272798728018667993840862171925558398098416668869470668070437653516498731847947034252684649986318343702902722452667781254522447949599968875490542210724541464457641560123326221705959351349165692969327035811063219222216211838689985802126386720170932128958702156629239920655782764559805243253365647720972448198109754531054300584801632402652956852771019220294406676226244046113630914687494990192394479072888725039831540777423431899756584425361136270350089764630838759698674268349736435658322222779443289063900651049636236299903031914208047178437490702343840755556239010741989431619986215141317830034152150974481758875972806718657987751655512436853563045305680416718164689181318960887219376045339775072414651619380465435413092587061695704753676957126834848230923409143250159030984538803761949535154524826265528381177273492761344895181933167226524044051598417476808447087247615332158896384748718784917148907042836620763210658321476812703892392335760019047412090436879939556388483565573913817873596912704855293145950258558995277849265296736211467939445724600615155413194892563821947148598152879757735641307098633454918091778881505299854271549961573179496866389233613324425190194866126731738420568459723884237955473210653881419749482848259411050221123625183132845831406737751275013079906172494139449583741350494510470808521450027750353059839910872131260861052449340292974903191461033507718821023942548495877886554475406298791835456214818789274064786386656655968032556083676850723563041373344849621465643157368088198882986570669932783274940602835135868217339439764252161892224726786124226457375020255854195632380767303756917130084925973019675074304298477789327390681394238047671078787277311383943916738913895602447638634406645271572205947078734922117806575533313220696683230333261345503956426323339308473473045110849303539589805125295754362881570354746180811531534008894873071463683591328571812249558195332239727675794777090965356062067349301447401224272484118430380671103783123007550685316647030772792423202241714619275760252857320112698087177644491912369362288974130711247976109134823074763119576421909255843720307656173895931893221103290956538690427587991972884940098088049492248530925624273737885770643793259384061697588906182744336121008283985275545125034049526701211024700310236644911380258957555078422453135264729239469538708756076802484482453637946593308371028948297578629055354818488400855297595959838366568062148856925830449618784786308293219818072479097791377559141272481827859758944333123403705423654027971351969147754339864332257380097917263948027318971859203793148465967083358217823877248782463310897153167001146171508248310625561112123953446080980873336461629128807418496993955347552171961121935031950815409922887345114921618533580792928931947166975214893650075716666376017009826655761808503156279644885123827642748316413250994667523476817522593439150759721549431532623010358149971821292600175226477523620401113180182803695390543328599744347276037217788709487945694156931527237886828939982717033911073164251323879204585192726524306328042200116721287798224113004533404306457399505031050271456712780744335609759255304959790698879660207502129084106402297622504429820541907787522698238145760144684525807920272182880093731933061254248038829408384287164125203778861393853296821821583898488257972015173525817569735930128829660901750694755414673768764947798833719692459273872413692677421254966160422751805628446027863690404669170131448308521751677896760525747648760240217564661721663768107954839358623609460376603079847053341656875031885374746239015196754261813287307467858788947523574591332369719243515627375624449694251209095787121748777210593094763418954879733442916668972211806385462971568154608729556497108851165569071671131079947829641966388065867914296008118134749882346532264325764193895063672674861678318816032884636342282677025195497340679888901613963494641627649462748951268455148299326813256803532576416289922416373791002840891076905030879871557236333405102906549420063161466149822119776895307986795571173468191806386365499045782922582109644123293230617031696719090949872379170116576032591227926525422166055439695549119484988795752970400395491542376155519951487074578867526737600781294118327978534462950197297157037480063309133118370812142861022891198798306923946977453970829073804029057742647042869590985119969811769239786236934589898361267036590323594900721519833277395642167658745281156149752691145780098188028629343873665695450257650555679640493372447252986295653476679033116836400529386466232708060917966422241899216728228700395151053656000443748648177538202358749223523518801178449166108670454659719071503990353077576614616979160098314863860877479255656478278266357919528900311098796362169541531779990753518907397403075491894518281278231295756342563838640371057207331956413358709766329489978295743373845837027222792375932276176354682292927407920928635804171014716956018987928228359034661822653654893051472485877206095903543631928262742124319631521475520828806669533717621398450903334920684026081525400291559629247429803497276556420243518232055344263410592889516160003473965523126306574429840433208161747926039890351531769212633146745836151641529999885308482520094186253434512869846742997835387910799500823594847267872401844504031874256413906088194484000744963142528752269417662541276450196295105957778615883056582363489431568508301889252059133981339560417548030834126805978589920523097148587252576977172501181898958971125803944983127417909618372579708960113975850036136240120171587620254367610916107046188581216917827372397162080928636686695272138774146122316690486764901539822588394398042019324179482250211414747051160715838171632567779314113893145359508634396500303794190886506740628583863517125968025859714714926690878655697703573009300082976891960611193639413998619129419419132757064722394379245615378613835763553265223090759289784175355604395186943639654350726206287501404485376192816793372771354483990608448291395700908566704583609498213742888692579472037319166841886297307801063062930525371333155534585487651545398098504817895676638428777512245066431498666063653919603193018820741239054210967166169097349728196103310114689001289273477278454180373921933515403503620977626790863218861438891184083968617667512722752976021678900212764369124829334094531746929898759941519019559235697068013234954564703746233469798545593758135631462400094447595343040349221283449725552726300297835776664339618934376139903163953734335852130406434643530624291587396553154453662744116437641672086995838245300978107109486560734041252258912716391274515987039838318789611912895038702898544014695942974364660394934163606118544116244753856168191309427520541724119883770098516633482787064873109128918601583242857103536235998450155945457505728838809111214962934849067036624772151458053448268945039407748934975100796732970408726996224836280310077691115792599961915498906817057320040828597111003353794981844434667685125892735946310542021346943621448116985141025913569634833124967435370188015110071738993911452778371817126139430962429298245754258211708327053535459957927715172161879079368014089795867308182627714266889201210656838588126905343868571306859970433947168858227701989293515817346801083441775566354116917548826224270074888685355553179689678621965191804765237210158577151531209264172190886008778281069365538920022320937791887423774445495364282707515990545782854110564224576962649529658829841694795177751722734281951021060182257558813111635617194244947186404476453990590756257145592981560360427885730525650196305509894156535596901457757356980169805777209622833427140672015246079480951038319474941076677280115533244665772685910607632317091002152047651185400172121929780047652483811417431949934220495762160714055508721227072641066686353259829399109002784718744603519674524449193491874829727550823143210348924966676825123693032501395710674058849193510167568892037567457122192736322398070268665144360923394794978365601110763235970857226515423291813693688821581153304257399949696023640481382858817634448186920361487196842997201489682289079308850153335684046647384083982283500962804731193930907879592651428574877943701658780314095901368770440669930830994027112567558185029583434867305025330964290173047052296041279507615032581144446956041211828968396502993477545330864385170740176996224983345205500058551026540032194690969960176159213564156311303559612940678570995012792845046737542436085185431970543410355811120735092682154456172182970789434306141331368493479462543772713762372726078835348468171503382063578661393076219762975363464789006449441132100215125937791969539887463271272924359324403022550918226084413053315404098275011079586305705193694473028395894725370672533871291178205316640155360597927152104311610291619368658515302501799044132199152881273919350153416113319897040116076561990866757025894019983907983528122375689084063555990709374115181936095847678085128862160387566360783202806033573100081194787102802198125254460669288791294526183588938826765817559236041367981713117813781641699010393612629790775955057511161675210234549896793028858247293594494260139924466918342933752007415986182929393223007288408671833778839409247145788124800999461490205664682239474596900254374441377647367489325922232380364109020593493841295644324888095544221679387928187751426801287601864185377355315322630403295523934984254102898677929551815143432567170431271819466945694877424250531935531868828166736012463326478272186832797952071388644478240351537693214132474163751967285526254246893506352198516005618882811466855453135830962199603268641626624292569470347622790801630883759911709220851259025571163423987139577693102372028100431081507526840350565430301634361606726091549009096889523395123677606554910888735368423389972227221478517234996269518112901100447328166078979585216304097705229790751086215151567434036658191911560001406082720577684944818584453857349894163749196184259040128554823323999105624997250013393113439481498522323510309533481297164381286626245277058090126276378650181806954026953979229687153829227731935425141539141424837662533858437898791126963437725978247513164542401308645950476982965866588276615761618362588356087489622026493149995739149350709350844877927317983690859277463302488482601285418288114753152498824892442851728391217240852787439708016011014699976229970026332573140232490113430121621335709126918800417964372885581191743224980158387088801577713537873675565473043639780715500554690544486023459845152244907579622427648197373352333271930537071706889372419545517090281638194560051799317256543195632047895695761163800740339603149506966624517040883564759767154586683237949932003125298155505323606445700698132539478209429890799616473592150952995602985073906003972953199431636660493943163212493538595319302071387307272497375903863950204953343795680615600052090199553528609069336138625029040924141745070444149154673194448903194814500656958530259299006437745056400954150146664483693241911908007028292217726635852902088447916628042076582043291080769773383038471202910191830998910288836186591574998772243155639988952678382161725516896688628943204357480396536256383521261050912579613750920346298084872854608873683001982072265542687519862857140838482546111480781394608875817620413009621594970905878949238970088589602737037015126267063988546827414840615469784175729686047450330664261675283768265373037341698432125505998931404251592406208275085603907558035796687656888871437617357422255978290112908094104187676958225227861002588825086754287111354227939930916377167370941625214036358867212849568150725734612421033326492179449817345670054009154220878340395672376187815274510994333191315103855918157791923301225947892539776049017532480316585263777518103861917309738668832734514378409581723484890803187186469833257067968927187891933463071926152743145782009562742658361844350405320773563434024695075052384309203652250125506237249219647705769561366510661282736592711142081933879242966056471038984823894606224879411280545805468208282415756612455055154376621451977187814076840367782611143213975952713844432043945681074478686623493514824501983780721557776923379482275655359467727656630627875397703691147217907704051989603509674775341003056434852692081138277757207369194867107399503085283855995608063713994349633743292787586971542328622059093113028630932082346858911199158297942809343292458419854356016765436485288625527249387015890543506095016851370835753972217243494367922589405820186372609378003275611442065362151664889848923631659778001086050416546059856196683041404880896758432440877615679092452201901888868050210130891918528114275518589487661183411630807489956747996218643833363986571342337846799071104791696563592826510085341279706167203667984032769506701602825751788789395610252983284047903554048376448939744276778197131204395609395950965475568266038555713664073513796009399429868278434289423918970584691882999373619028113313285365038701595572917009232678296456961703947240532914427041621777997516853629644578662486969988359594314007147453281338778519539528747530036575464872268745613260961185841214137379576257927567637705009410713787467088215851840776869761233694319873273859725207956058767081578570587318201356492319041424710231501211138700003098907470254437024249038867173985029252131696593941704351468585660605733476928753749573094467801937527310406644615373278261662266643937355769695400007669906573654016220695682807329405563239875404422488627771597691639648893357023548586866509306455587461714905692583276949372205049419753040283776460959229076500535955172532019773373884762198488636503463943704848165630349748941412269663230032240680707157811297640301480704438329269188566848167368001581892520942458248665213642262227455616602722731530593340247023524680157244945407959030189543719720239440569655199843696383441147647352084226877907472081492065348527951796013578042121435194802028577661136427401624787196956327084456063995476509586907177513799384981924356626320789309075624894206570647399039915715884384090722166683159447467326175110009912476002779980838945709536339859261624183434328112512451186021591057142033643888528040821570191585347711051552855009536394475593012582550909389626898331919325066958568907966480606347554740318480855097987673690026613728351666561627889982241556636081649793487727149180998479346630713240487258823768165033542455477426188254317397052275265276257627709442946427362969470584529095262184347742259765234292129233317488807987562340653150196713025776449609237845011822901412983554772220671761831513869348202362088133507673133377562174887093570365376156503560626565046329598533023664710619151698878625632281183440213666065799529118592590457612265416354972790149046363245302442457537865290284817753669637533390704103263818799967068591177122256959386205742349629049890472232819766509212860929268538330791290612650245508725417352027900241095596239458796831636343928478067106162579035634421771224875958970730315299456215495002166983050510916027411065119609943065858321789949706423182654917547207994442517238995393064190403448516947092248152797897467237862172957603976193893166702408847758920026906544304193301221680505070958198792436689917515333352664076145208537334038854855731610379918234689462041135466126000570130077466597007335126458162468493280054299673103372930888591701496153030169976426550281641781493360065738051017349499402859737974698041827479653472448553983551141168918559941925936305369753492542039399713393382168804253580806625769528698237771404341150716208930901956955975662974531430349438522099804054791543803836261978422982641550799299293100937540746003541900916449577451409472659492796646715130337470992429541916461737588684772386885731497912250048076957631039533488375026453946175620094771347353779585328751846312764322897381763658526003139593047168167388339201045782423559317071533791605844535586957652923137772965939304378499385653414732004732830016698370418350426832616503428762871044926334632118406015205070571257275581871505442806680232362708875125127066617779153606425841873297186294270845400858877720404470157278224375009718866270479919469518969262335066556274743048304827457830883386086165961412221878774135156549096143237346462060995458554502106651076964093437212741574055306367119047261198603068572366428436283836475119120445413048230336089230248292061239383750262028122760587596061974277092983184399792201069944089595217712865473185996690007325721262504747115074268429810303094435600927924654879456984487725840307188695329256418366691803450622762589708097124453630781800128967925099099658977035635830008221267232414645335698296160989076362999031743430361477097586640101345705960022831829744832466013194948055129612868842919806509335938428287163593795400500702662453969967138970439703606996418089148019751840163836715893211917982175568414594494233721132371044444442726135184855137431752410322396884543476657336848631709350236263772002304470301208116776666489259864310301498021526637345719533693709439959985826597788291470970895080162358745049941979714442656995293365676872342449050354046805382525382899171594453950238484723796600431474101721396932654633780350369786591334054590738578389595522876854553594143961492491888323324759102450323082971435176146513483437509891466489110527930428209924764586103686242267327523078030863836633694908472264388397717019099768353317028108932062027934923624423927400064869896839317634272540631640647792394729534956686724351239687291039491460531084163688767234795969429852824720478751677718842944537258851706828822942049109832174025846575232210710398786756745221763052261699508906392784754426975620927593071648069306260032393415546460103915974704225098321185381181662657630055333578692763625791708296478846584471558450457098824609366459069956205538728677532163834870707056478321785335586932418316766481690704481080667586304021262301900197761722698611195213717373445851502550566851216029197626415067372578006151948138280345463808848113928147783824602201246609868277519734733776610906336880769103219778742718024122840054122226027559925933051641317281772871658104513119437163936460594997242888865475021800041957689061011862219056617726413960189481728812755023949708565433500038186919038392864819985667220931691160774614899435644017007763541712970585165860868372421113136423073969206145024866256064568538356178104325832927114702685399277669737669035392856793235663029650462814026077536085674570722488508986977579060300914469086496065873070912359261257619071626084302809539168069633709394713661130494697606612245458538011718462587987243936852554894509887909259558810869577548410888347120628934703159967172971365034293220152796625979553340448354669997232963453495325527830043151261404827457904556722432468403910304115414861818056225956677791695404502861356419155298062279281794172384962817314665599387202559440194848039422520909745980013487420071525545999207191699545405739729175667789326825388935535731977910931568317563737939494195409558157481598886130966438702129699252050007569377325209018192786730175382572422349239653330759004694905855663067465339598121505575342999578793324309589080609723260823015911856360776883596499767309819010859302882034130135725974695203408275338184320946905833625832197579166944664336954948720455938346420398649059958249222237894852522831096148824210226799840263800093411651499692027000983269113067448228051134322914785373023076703406021062004039259844641412206750653034418097902969375895132966248266646594380562924023739617820070867946997439831386068919572051112413239755697855798914493625989451483475554909709922905483267796404159034041411411679749596684301516378931330352173702197016049418291244212712821383187892420586670327511996459014975945855202678136896840258624147459162373691686459415811063529802283592286681860580060848998896566156082437174083526552156137078652569544419878917277048544567701320941687777502545263791320589102769344831442896444644287160010672074185168943937144045154992191784928593563226673125278520313900057951861291521321532347624011496609037021748198035166611185644193692589408991168674070606677238183106298536706938751911569304432762180585417044350000895508048859432261716400413076286856352629078206701447679198864027799554980211980382783939627615429685941311255436884697059046217566055698508064847207260889984710328408880828196138044959856717208729910572363750419583228033055651567153591234280700872463809449840470404989918267806010535453569824187827041168771724205433534745923872312545023701956296168202441944410383338517601013805945736764699325067167244851504544326544906311955953736044089223819168327385755028781828481699483079599857270262567352928633259607841222484903138626874573532014275692238422447193861860190899218955389308989619641277140540279355412066046276774454835600479088672929655093945558373068706136811050784307615644625097673914963828108544875524577634511534498061839818063953675596703665520239559270196692180628477619207451418008184619458874504718366450190317192735965553248827612747233391347381825805347228787255882031874250040810581112236118899747299786035863439799700909825440341893470377716652449585387792957409644452786593649583190695889573354705676790122292599238654597469257483499852324129833247548159441313092738904753054889901948525368131493734115872234952619186068147552569423472540103662199962325152743646721938335346866319768830509292330616946082020664456425515815222582715001049342684498333518438582431997399384282284239261478468225263033458788212817531047876558006187519791682638781452452333986917754967677885392513700708464071560574406026269197109091713092258381794987997969038212873058320911477187252608711791611159274981258298040152970893025556542722735294245842697025012104110932314090914378243215610086415210555254274823262944962560957449298331096192249102882791230784241516371649532160234378995307812600776905782655782853097588878222519417616160533662624464348509840003711518535838632134230990981159788807269399618359778874190258034130012332112075126396202305634766454004727776357788251442796345943841860347118622524189474217273157027485723983546169881044751558348268312512311240363872104170524216803194699254335647443013145257789489441652979597063526012253403380244251925336118826885442667723932818323612326583175037701085418160919930642939252708098600755945691190968914769083327763823340721769881788153828722072258796423410926731929728343222897029988397338268478743489039791978186614296495475002663561122220848200632048122023759845536834907427133535512723835511246631321227482519173597576296823322104628810934986890822268529866826711673593116198595249946653111051155126841583796919748166581151301554031862509438841581451978039780926020140567418743491202039396024919209140043440460673044427121196919594731964868661585279761130811522558098981085160946995648511944706770036349675359787006915311140843124693303717781289270041135329795300954640559265521916715983429071579630999434030565174747758197623682453564949273083488460494015571070895455518149211444419632463897280824832277704578568129193527901977675203751284652157811096863846752138494380018855374241063404553012805022083163010382745142071150758825011689121516105639024092387608846259465365871330729491667675743214599503622811306864240456641248249193122148273742746145894255837356005638207088782033727542968193340929125854288520825146894301169471899929734564294858355778042884361866412981607218856395131492934964209641793789771717209398402671264121185966686217976340166387396548120926133687589731822502176191763837377270404557873923808630725532819638428917482451036478293780428942070091852151501032282098692195029433546722842517595698099240074244026304961173249519333720351140208006790354975973124724941273421790123246092404091214987495736338640976556748066393188889530406019186217801150646424854461698216200537813745743709988282970451275100789546982097867038712427358713059804230113473330707496136889271877583362016290670793424112737989625797470574914809727335423401521221411196458609674924024247766681392138278398966797315895425634081966069397831686030594249739982638254580238189677542380826683377128753185746952345633345830049508858729643518225591312451896604951977666347002320101523966359114601408158531794452052393177885284883438937572769588563027575906325892903806388457035998633362032540573179608646168193573973209649420677640043402508105792542099416150140282774296320805496697226676573121981161302422696331274847658913584220844817362304799968200017072319161767639668417544569733867411048915745708341582162677538558540603845861605214854070717933040762513885689781694302250207548284802896657498057850701872772507105935800356557874759724152386701882339600320670301209400489379029212776009559611188080116808592058437601709938398634342705087764263581577724881920709363384397964746459140532877602960420361784321358406532491160822420909969669846670901107148198059475772672834648380120095728547227375286572133279836524731677395267950888580303053964306356196308504516624561518917341590663946644973256006739003857489427039236626304435435929710966067979010330872835104272036699948737221126722977382672429670785828907901311247556835285086295053245949342938327553084054067097741542966043775245037887505102951266107722132752672634356719292994014372574998100895811088201187151581111270230257703208293033262814357882594039676508676891975129516294180803213386906809123548072834176480956111806005554901182093365346604082965217060839994755637530242064383046174876096214284085604978942227639281166277581161019370436291212275444055810534070372063322089373346515129433407066458338629706665272945615108293851718452092767124443199097590894062912768916268260924113764297116005216460993562376277494599531352838384184856853273673502235196205347096398375198336691863462394002779181095470173572333106076858391391637434045372476749587277926190969216468121992369107873441314347776165106771674990943405199543329747791978342243932241540323883820359672805763095316093508639035170712642407011585166296391381073825533601375112692719802337010068363686250184236946977350927572358663782206267383794023729731045867232589920988532689778763101969724385158298462658696175260316013688610472425588112373415099272508348572368400032782450607232123865788893194999743851822456409503501441506799896294666576486796717683474474857143005540727249930776497493914556546602711771086352963693427081754834044511196594690949311882183186833062937893382662979550449136949110644913716449059802046543500128080256421835158691199170235684229777335512056491718885298492680449138067752420253714158263858163334379333800191479049956855560583686469322890822365007463542829958133490255154743857491220167891225171647603786630876032364158299640920418123485676609107058923656796052504014948867884680661013184647101672207438323247012175083452376968861307850972496041953251883998861879243045118954908827157690468171709034939845664891454974716429048205793497697517184978158944722288957886923790461830354574964904518540474600496987803173111382699309925710216453754230505519472001930195412706387072698874274302592883097030785646990938445567268028855570216274905759708795251818866802655860980335912447328477071235233004927344836871056622550595731874938178554804757378020452466823471914966341331205136636256696640636970703347759852097072055923890950917253004196552505742571574236876978174400113677890624831773384154238959768855466510277241904397045571124246625435244735911525214467504799861714685314457203710807817018583727061405957488546074129089201772858410229751155535138923341254386243888739541241084026974360203545026241224667279117088667951547782119692056506020529508310175580346576724972842374705020750283457725808773244608784435746754864860582416822672458673307074478736724059325360253026337545898749511237487916113733829358068834624852161404245143067214426576043877849741627601218900851008900049265403028516120800013368812548012631636568398811473168486932427277591058990059726909152827101508616722530939375622922280959897997402870022810261312241758632361959712893706841273540857798218639291025738060093300683531641844279782232985920502072867721214213655561579168175898228588119271091644355843917318702394936695411034915241780931361773183390528593459930367208011768415606240920865319287849952732653961080409582164178913081328570368683376475099407427291745779814834030205192139387706201330081400596486201322251878412662430643681575812136134941387952986231895294532245437046717840018057407058670545491461997979394476142373413304810440457931593156091243360839077927216732743057491348176505731385405611539454936327184104840068492787162129145094705459638652790995062020114683425988094130399837255564612954434068880889905543308234843090489460358704224580772924571424175634471384365603620712123980343485993657001562135909548371251292835764922355512578660272072438016891282810807672799289461552860983307155852761305357176968575495585945024260480745853821805708533783139810072129082017106553343193051723882013158693978588340042235301083698723415116476358229357578070005676376228165956555690554990229097637355402932703373881624821354043155024242772363954437150719883434892803933966323474491078038131404480844123221708130484794196517450767713535478179158961485802247332688576231168648929997168952010686064181528782079284461705896929197918741868905365900169250597131045802202467547981487853200408403502882280008371296669288149946412268400444780667059926882260612534211900970086538037687298598123773405439072811802486487577116543068475094143034738227421316094438820807013137108856366884609264804414988726905358698679717995783007350037069624195139922210412531552228001146536196497794998180600655056785889520514421115045626704324202490077406209664797314461183155715300258089364397721084864920033376621041960594885468726397728074154687782734805467894100247862092148736005952394966695368861394458327433497596067343650956658538565424017994236668279432569869719372101272640705950274278142671210565823082022041604512242655394687820774378229618519849206821789175913660815030971770387622195778690609418403076279773580547191070562446879917065266629571421201367570806897668160087939975559501253079402820231828639226549843941733862608012934231884472659623691017670380423347287282935197141854081218958078067550658330546208113277289226928204734019640268375153849867420250373179780486003843204181743148449525516006375911942920833814308212456354206663234829667767352935914814765196010829297515266269331050746524774254028333528991111785167609008911875245528229512539042618988845656005680752624194987448126189681285351073898677817255211320367624567442159294446749824646964410808090515169364163005089420464074961025578834523707337373375543706535162101309978131089147022197381499839738489188059036130673715653569777164939722223053438837250447345482086609841867725176780433095276951584048611324682490477499394160942071298398543294254781762222198944821291687824464042932070926159582270995003823073532795967280440170832138738644022970797517841601398073113518318988627307613514038657055691492054642505580727000730358518329728083408163657726964911827192918278847839330963934327141907862522877287399091617247644250282247471477489491000450051770984704991082367077994524810721101139865953657962114593198050978556659017257148158920606187490492684126773030555046170407925062461097819697340177177918871155012079665742114913121710940742065386568814952204496984637216656648284864451050908755554818799981065191586208549923085671893281698159947596241506765019670936166796868450042163591521994569188222959997585929539177621740691361683038158959631951406737643001089962993197995743910156060297206037361857808824953721774482488297843077357735954575037003592623745327887466598284708250003012129550005854000730667656561793978544663393605556075257932199057521034986115584829323419284137287765077864864106720781253492250676641088503074567061304998971395070766582155034855459314378204137644185754159046622560110705334571883029215253708127936916911838666200622926580825478203877438444709058238289555415051476109989098909389226586513589476976440889248390237049739026428582776387107067137684910093049088609666862625157282816964625531382047445662723019942872752810095687349552769837625062209746147222608607417255014754245210142359944170313412728315071184992579085599784303069015875192852499603519700102678169355618203393064192405738470079310426772762732900500242819670643891420732546562798036806273350552325288623745390106978394186003052325579323620654145566351587450010281195917489628757639299570411787133742213414503648199272807178921577328890389210614443848463986431861835547247237128735714696480147638071806650589758199687957537491384673282899252086164872303748173724006635171415917583042086585363479075006798041760005761526865581537448975567178057259499643033395333444645270473170568533824733440778925870392559514192941941750609425498527643046875718517142510435343055782017223009760902592205751788581268999913173969130265742924751786767553837035394634120489638978878519750802530372041801552124342819248112430074136597275734948382255202262234714954906592559670628330512340803097409698733345890603744345045900087794355072285183317894523725483591455588045765141467844138177857846002954625081353783411097471709252236354069056288672531808571353938706224154310110101315273453048082621945862727159248285593079045653531584003199180100738343918331370982679060476733734488624290899336987374329444355617631637483785604177412558842688015650469254614600960140596602486940236653623369803736045986604444946454088007186661142555515574912141590916602727687260155571589493359619178595952076120440250566107332373586261382198959937406494761745853628641965375249837664403312414911520603216259639326337688137460920497804028991094031039205800165258085438292378527432595024396015605243274089055115044888769083089408580225458923905598643344473781334690434056973527113491578235730639891233582223003306418807718917834552385138232181299869371588154114076201506177829480985025902450881281588997589673135795384435684854739626842298886003232933617540813411107599197440456277882926210163338134648739502066155274986613776752798528529803677459912509058731657098869855039623218426537544605872763868940943375186054070617243516920318779871936586492100430949979560922089809380048266247852358981043379603532811984275417554374757545178093680089457554568005270968105774657803878576160261255459791126641727542241475870885805331555590500994300234232510697367197931461005226322028546280893663833292605607320044834301925140380098376957324839846820341084521502834403365631983678743845198444206285408668202126525276720483969176438045634500327945159597290346689994153566579693860222251503981006168680111050923417818681623853561637154646878084507464536482837864269647574232757877621977244596458146068289402412930322046649629450017159653923949933950691923481489458474560324576469674385608734015609547377075921579060918813795477817695768083593611168602677920802569374024152761858488846462667677003381541520217313734637635267198146810565436586697276414515754244668165605318543546339580820629685424140483939897574911556629065495260843252828039410219586488860999690145573485443555338562299395991240170065211879259243898138381736400900101045212372572111047553036834360230697403540874951391209749773501676537272833840791203287348132585326108769651106681155135926405325197536579452465265645026535268204061862399301589276861030118981350742282414393731676474791392827932473534628918709786141505404936935554209637113181337683916716911706240259325864954894037138311183612867172498315908391445836713776533083486629904545857284259834968162518184725530138470911151534139993826777661718301933702946276939392729546397320605735965310752197677396295707098658197718755214145663315561682848116665791579525511055284681488145104067826956529374187492893478373548084740412327751111715285839049772699108970076267965748560505608622704463979702044641559785513578619486449680027585800931289723041616092759277898019982243693645197662180144843675823718789260517746126525696560048967268668378090280983848703585057825562761199146906858994850337270006781151779581310965882293761367222242653767144283701246028097206303415070230954539707642209029915522352138894674871061664994031385637001587922131070231520276681359388228053601893961130266694475660000969014281707489484106256429615071727852402835641761383740749300824582767252383990016151598736135990898597977263407211592128378217825755130451629251152370697476664132202837444127814191839986970059035531757737892652123705177337014413782601177822217408953937078281820952220457437041396508744992520854437793369204797595682139155137226583556871559817483167132361192333653943548187192462726926819597908063845996211722295908963868993929730942381191424288057678809468638824985248577350911200959787374968031312087111311762017008996141481404387979296545350689486039556122655268840053656942442732867360207601854635158584929282232685192661420946509788980567786878984361405624587865291280273348411126938203312505652714037885170686723527602285006858077596845306904575591102819694959196899880594081223523146329233079949705224862804878530122970182325644708918464680833467733294203601801679600863061281330708679190510364699033650131733526896128498286971290955218644111878717633530102165348363629522973645288657962587307046260412456397525827114124025567243838480672226994698136345501778282123739043059881901298657742021873488599690292984211983254865490446090947440759779039995526828146970552560899103994775929635727659648137231711563571419805803394009931710286622669995118841867878642965488986761962249492072386920518391779496219525804012499382484548913176298631170364850136675248679502046738145413938322746976159913722611522388023171712200005480671675257664830538465244759170728983027905109873803284375718067036733040084645976708069445907422240457880822083271181096670723759973143604225410872618072082753385081606620725837745576627743243174661458804152172955424410647615123996057275827177094072700525909016957969955185352035204939004394062014820052702760933883887697529952944688768240889024228496022042883633832817691926933579088330083654095509321316382452113831078873865535321215488643988295820833759697511457731885240477526126440258754981091535448872515367270058005033801537181123958419674835302604323951498427984355200807758228503841498109388852349839143664986063666402221129255985967970729139184844368366313922556951605654630975775963877995751152310002824440495161376731673423638725791207241432150129355786377516524678270996758554584039651860308396360268638928242025236784896377157111420347536626568462398734269981257525740672761543200169069987832246114362317485518794750601817769318776121885338021950273275510644772987878509722241950811797495888266438421950390223697938042183330712453482985447732170458727456797410741043183982087307887020411075638446807701559809137860706517360257743178362286034543742457614286345035950957775198661388822064275810267146619228451640070108436054210242949566697106251802194598669833893033479887462059245648083924050029413880214842836134442584270823793265689395807072855312947907066678648850197752997049372207474672158474966002921291717056645250447657296841362385910262097296143219867680373074946113682277844862732795852779072871567634319287570428799495778314400183606353380346347828120031872660800943057886015170403692286392598858033301342205024602957739402733709052472614158172895718151338694657913896048576280181615854432176173623835077182220994327374190780635831585842052318905182077498375487167081143154867565246945859659549600314700034477242720656385085626996824299792995501561340811170246304105247471565950791644327193241526647336534036837002037226174549670978471430576488233158563168174725450119375719548668669499066241012213845980817558299053639831521346421482089875261085952327878332329866744753170616655741990496377507865586231608525255834162739676468685857510773610797633692085254251595878386158466782780808471511280320940682433958645602091416920380584245973390927758326662291902945408939014445867368012721478174905510135772695548375601406826495879397393818684446520645462265154315097408793651553966635193056480434637006221961792443948900912921010810348048044109743394457416551409963064020349694356895566082417843000666508185619542128520123963112390108868750383846631617791902052011743450418106650252952830465866234085273434362759391078453868433322394983248498868982375001365162234891620117282880172061923215831197470962408560223796326699441158438393646684759812607253869158561028325819374901396802835891987571609748031792814455511229513629787646654003594975275284126730332115598659559513526382085551529134718023211871987973962805623520530772067539997319476359856038262280173387800345412347384242503633233430274816702995418610408911969854882795708885850257945995053241104832612958172642357483398132273350145275802375053231181258003684322476037345744467893594607868349250600643522422024602595883409420560202620953969764284398542804053224421358931861608240655173971370413516647330476649157606667776731913392141643946265067359464387158598337649318766181135445504407737041376469486734088277915315784417988173864827402207177952187927899257938689329068340868986900287931474505441468696099253848877705626455917543590548527092184684312905645615560245377521692610658768770153144653878280657748967990069806761069731239750203544391437032776050683850617833977041279536633298156293411692371936105268581369381157946419598246688003764462344635709139151042756516617160138492969706245164464944309550359214828138919947759239533594503362337967933148029837882860977791592307024619631746104094241851085570193317242593887845514654989516542051200133339791226574832072780944926805293084640375455437172047757451173904191223460258038938965622698516383034636895907697070370341388523422213932030279287038803728343276062867725048693508276787257512694462574760912231709928228283821609944798967467344657194590285186541931133451221751493703667301816893024083338223975245759691132962164082912180900797521296954700857744869588766597922062939174324592337215511655329382103097537181521485634403608025109376237834967691248799828139734673991883169252616328119288788982782835622151511514568264018273268587035348646690254983132251021245201269873543524121611884522771600127879604726238854849333218266977103332980674904811638721074420490709637450836518264049701506435566423642143933487644345425199145362368914799575589232734411895677368412669880658912670869190920294684608568981759645982783395006810788413911251540511318553181686028655410811421554268678021571861082270218831475952943648874377236809330124828268929077110914607228752426286292937000182325163981958596837685626284235104323715722332166815554161236459191148352115773179688351344120282883513830011164206126138437082035712772701030163620403812551066988781988509194609460461313947266115535142311598624934847303975286593652990216128482870733542086566891439209673034272128004677019310578752022819925161576508957943488917907693140334414503810280138679200357892278710510737180006329853481272463027492367498015633683451772908663691192863367823534221312105117574101915489601761526738505876440147706977143873341027225004242182343717083436854070522490815304430674804668402350695959800766746106903172682058610419091188372184788524576313053445148970991668151346746080544533406993948979914227786506208759976278221980849873473048621888072432187994431697682474898011608541049175346974676577786831536235167522255562946005044851569304003010954395727457840160532458226682120367644051568322036775192621424057090793417675771262818074818219198271432209919930085853999556695593226785820206313040208710910104572817276709461100761129232120314980887660328711198331585648789723531413489599591118790331604683492311844733302260767065058868150637402923610055353606837490956301602396695729070956515785030886825774074798915174093828542914362067476405522860069288766007841486637016760564240494318392955958997817173681142206050311910798732971185557552950727838382181595570595018271925454407901671271156105806189409904271200235759458585937032907898094051374873569756271130015475550445738297873920180617529422771359658964641188516438610157051644075420624766614749711314581130974415578044441627600691916912955535934751870674921787647686651430340760505475502386351641034788763983646560459101837149157099560918710382762902344464336714902585635456716670253437463631234710609422970476079201627654025088149619779161955885930862048776013368175122415335000125118251709489686277273814944256951131206247822972707854952391585971672653661179313925947375371500448311403274556881616171101442622985538584689142941302626093072973197911579722375048666011987612557262680023037151078318726642948853513300138276987461629222425438442857942331925166303297335537945609771819370965584739155696550760932221011920373904027854026020189795066087237583395657548639260633317772125918317200607013820688367432876041034603944270061574914763758302651865266642665446790188921003647187492035594016061349708488406994959065647935447328400175875159809811261991520015828375180335832741871110297163306047757598714716854335491223897719214089295126256357397998354219829113513107899403103054460628215294220560826243386212279876649502059256736546806992787571752976248534059104442401609029049029335510510564182920035401526132838723131758026287248100113754636537052241755162977333352007745442547281409062965016854953309647621047977275127131429838577005288963320720974499772127251434309015955625053284733505239851703841985348074328118579513810584103116513021371494066429320302347170330737436425645068394208195972085788560711218071876758868260430703868315999856026489813066297135108746783765660779839491033155373133817926805395950382514122579177371709849608552306000982827415550522164350091415974151903555651899829539237274586790464626444586632650094871502504193800642439613340809211682497048949779546650874239071921673753610170147813732974159805272140078427418376381460012947270163521877927026260623311079382968681138344806123872056438090387777687138763824566843181955761341390290700824651579516763308840292631580718289570377145203140471992864327995584070984223815226494176098611761700815727071839806862307185293280165227323935559075750623131657185654767832636990900160213635528374106499197774480555854530266944321352394833112061018231361961716453974811606226377294258887127499025890350551590797880834169703419812666657214444136468458060252263496870365103653036644213599036022616709284414864835709099181676902873074608527016399386708145161464353369406877101726997172388422632503041340709575227091295399575697796917516883792686830129705476589982971702541250681243150139361165257493214812099924234516213199695552244206000195877590896639719104438920680783080472017242134317978393536012698588191519956491125717227677042702909721909171522469935495869569058107019760609923921254574724433792306186115198094032893916483858805558524265388084450287497641197041766475267037444675021922376060557068106160681706205676667937836814246847225290261827650054161266907939952973513597204699990201048372939986927345054103369584395199698230198716371178240581109401777687509740857092252085662182276199109444874398391219571744594356328517260313724091186092377800462338437697817875268159491549024487000340654855295257616679370092281611630642161734940152886084671447798844174683209456103446701339139663405354247411178781442972920081523006875953115561209320731474560856683709057900114637394925200743107957472599796997734982980739868867379126028509008503221059978620784968405438144592832463530870794547738497193330245810223785386839258804456839818603853537667095443277668763449030463468384939096703392071694046725532744152343069953216901872074055810885138183592340172060127188800729923942754937752524696368547768372348352604480967049631116058687556016935073809823591764054018207568083775602330528923951606134201537292992118312892540921776813811241618881559367540779696512220591916022114458514632987964081594017465459123290881443303172972369584613818384432004596544475363530137049443263584531706074302378399829408896752757521992587190596480881859899007203985302121402176271743431256251857738822751361181518370767366753868447583111612161827757397261389434690205134192382066183233638668997971295180565889417162599276853328122704071238505829818524454274159393551504659009366863093302102276371340533305219470959141621941196491088014628576284301606161363420940276955308664484126337940548516989206026313815547401208155419893330506791833423834464489814992294885283001407630571794854023355779471971729120640053026933143971645125462501149624358540244214080594274740600408358136395886603801111217745388481774644946414531908941739107549351586359361363298234106375207592230788424586640753037280084092372440105731457408646665550989931706938218249908409601835713592296022212551546540223349924644569801217077090477344216976820639581733236868819086532840924792350935884691822180117300401263780208941490850543483909467068405860167437888318645501390523358507228901585157490889326539421016980889587852371097685994246748875935379717999208756895073131914369331881284518519653379625732429888714693716566426798167263659240527376827826034987505844556605004059381977706624146666618992630222587741097858866050668871090390059820548712589657137483471300604646862569997623884202943206471746590008737671335920913435921415135342349122906964764737317502840994018337594641992711902031992964175403938743459147049802498081224713881124466726735248393825394707066002001011792864251349681828407403459371106921707301124748016492524392475776310340880979860516755030088299170684149929131986669662682242883432869172884653259760828538703965223693129808809852230826631452668499004453793998060996877747185839321788463400672446048532104764726507422895110595293474256651834018055053521365213827220800074225160193256642736530180668807608097609182316514821724360437822518460668536693907034777053981528123807876970169516830157588626271626977773415358489096917152157255622511335248029480186874794530732542381294994425103998382530737265187375540397170093746284959041282784469265090477254100488109142902218809396579240898013084678382713658430414208041755073583493993068093865166339059907961684343832443217521072042783904322910991233042203739334761769701306868530529864989928978840864986436645535607903000155630094490266178569226178333091604091695342709628941408865559501622591132897630213356309308398527378832179046372196191383036093792104895602651106702758752847403305806596588023144853146489146695513259793116448087015767277647464795732637960922153144272344385092547044729539798830193220217565998590995935277248468503596277950536028141529717310287541605431766809732257507241888755650885443825119418325216165311537679048397454880333177144682806937280114987244546718267566016380919023022288484175600911871089773178025571366281042546938905061301967526726079072335971543613158468771466998504250294397714930433730309412445380836057430825507264073251846096196703697545313788138848392961928294099320501756532239794513384825737647038042834216013298302650884056448280842497770994249103004467466664175827201375076425067020432588521174846088690751062243078130393948987598954787040706776438959615676997043498993194886921562297132566620169857892513057249908146652023032610036300797694255252573356711759472087295908532077997462676183142705547997908546127206152022568753164033041538293537813365715442498241864879514085111840596812537281353141276112046077705547056248894418023982745929874047450384164843686869762615441528935280973460418853665789078281863970989189609943626176527012981198456796678499916156058243088321684295752331766179478089979016398619119624228980147817710100002384003818991389087760498666032157384001712577047558003152682870595716617273309599681499063777239599270973951837015789235131533324166093088660207525376184198070748622650323101745227463444633059692505388612697420338767075559280176302232106334641128245438088878999768529495092558076272061993362889738321176448991781645439913750847166513995514898981681146251216907522273047200767180855694153457289061795110296287369064775612424377306430900686728596563830767232074452875890024060154517481808747065299663802145873796010980751166472130844258117326698068759342187160026355395153953818607917629997383880863640103862959836750946655512267490934028583705134007333655578986540377429302962005420470554316497326832110587315543681436676493751145942850998867069021452866797975132088632430901820338406337254276092046696377911045781449098493123735798005791373972066243510171868354079946364028809652274293704995697730303748256225801604740746362034782820287299372574177458300677788296497673855384302256774353063323823968743980679294325580592617682633978249803551731858243998141757205428009166328868996373060700566368099579820601516525162733731617231339891233812386247740567723004569861593312958469476442107522284827294602786697499824771183782097575642258845524130120489980842017468898360864506295464671923237550483584992072089274561885993568716090464048404048159862571843088846037964683925144081988364773885211734304022099119692547573689545456676334881535030093358895094517820381881869086618035245203381044112491986542208573602426572956402700396753742710759713104029974878412258282459102921468757152832842028791785018697872507174069189429289579989445060557821265192252032409189294790924540828800321621657799662200677033880956839448604114978134353316176261866638144229850968634993018517047782459007633143890430515539479619394438082278719117320431724048893054855858939385476769074756277950180856122607338253228044400840681843987053943395369822441289601778677599247224789184088858458368470911988361102770535418757624503004961093074739758033998851478658052578665616659931424265581122773891517306601991712838799761644093351116311550461380138632352470238679452724671819084454880977015213795922497636647204651750041782579382373096046438901806045729628880502066656054983661289147571123370092960790072906541844945955581625358537549336911025001077205589267600099944354735831623553639231266440211088010613181279354760942749095667208157849348461099911690207005074486639465232264105430979652793386872648063292317698545919265131733311712118556605525592422766290797165909468638695178691203623915030117881881172236396828404875345980244714712748061137142444093586965046446346539485337393769148984972016844865807838413505401778287333763448015743151447229901387354888066230016697123654668945924814774353946198802379043274588232070607570322717393978019208105536722734356524815383068337502501981943285500898327542725805462866872509738094950465849190451073822163144042831112582932884234080672030383726463652795074836783763771081010364195713637496931153185124223897336820646893520186568933585895054963053711108017128419803388445895193852612054434952820001111473963932241149123441954729644892351645018586257295809519580764615967199463894553492954867961591281926470593973572700743329371451966927814257313711888731784925393386139576406215533619352363017650906193626931643128756757062232993910911224136212739498611721462618990734807358338965730392328294786254682092165645227013608549357711809985301902605306151270365825021620370820148490250115107735738597298860418476299560412145232074807067259931277047030122920602865757467010830943653560328896740937245478588804539214240899911345497258717382771924954003503687439303149983920579406736337209954787464591100523119375644832597397707520865034346373899184546767522696425897806922495879333593178926715876731695643525754662484126405576634288180376592676814053031734010357905258425834099868035791842315756848707791089050031666254580104108389519093166588807370541210606339081443263072758620637593812456792766809563272479262171769511008514550392356560178849659833867627606124818654153630782141321806720256821113546088396329781249789252508232799151006508027367825635542692670377119652824583051188462073150463800320483398506963130240210173161659281370243718563994675159498195952892547374486117870840201814816249042900628620846591652110147034891553432111450427734189184154178123532495637763424927367502758336930816010192842090473408939459440735812150902666434284415519306211256884455264692129377890920365577139716039820391159431252255313844435132057562503395481875421210063243594290104162358548446430473148838850466124629497519060805478211248378513044803639953298992535775296425585373926434011592057257132800829268087169757167018944909601664675964654737923577214651077584527462406691371529529139503672292360157915155173728757944514120269976010357353369520116136223488331911631268787708642941958533660583776937052333826407260920159137081272346726217778239173688170396250353382500032064917561127716250512528303655031491952522278379315587213427055188091521488107088134033685661152797768223546521388861445409525091420920875803529776851380929197807013172228361717380716165396062772486876353124404185445133570286719037613773444969965005622821602116269176999937522147211717871472880422463597698977106715709313676344612315300619533024271372031555754179444789072955150891518316050678398827122386930172896049575044422031843334233806292611871413351333869051343004783101964758683817155518509361571396751897339367356447307836360994762561471213149947480215771572616604551497819163109159403658084710669953721650068619223606671484044864216099769364975344086227540464765040890500263168196117696634657909057120290454431133409367426115148535655603781176235844432899870251881386893250189150180543269299936192182873258503136047879275674983764158358486630920101189963270489903489575968165958965079023861955765280684496039987780945409573261116197500804102299495445542542230337216998700527221545096390421768343294430334505336946491284506471974081311614147185087812305946189445717276059606884026433391207205623953009332592333600347543675493358042053597457384062426776334709487463274224700410450899541169527447940321590775484497035014784480303296641717289398507102055236145576700618074989731752761320096457228315129936749433534057034291310628816315500425190336055567476006732664806105256057339342800811577249145513429757742051600597435784320791630737900314871286440050197751110151203947948800825987898576714069992543924612957923721411218152412830294999556017345607932072323658787215565360266732821608906825613210469848634913587106774938400025346730377608284630811806779372327910607262406422977182609924741391884690242853726138489855914348265457965676829731875275065033089786237291045619874612550086385742055881303404134338191069210471910557782274526095852153698251054727184360330226479130842858240313315182023627947155324539841132737171428239060071473941078288811868224092407402408132244497810285737143880981545372578084334968382736251784822134932238556505124140363475575108159145377970264537681455081503104707679964167993300715518280237822280207568322858075010267452734343656348811095134013059866479350092527509905323214321038682804760878418120776211136674474402724583116603439613093578379562935950018404750492112141251606103305645185607823694444371917607665590786531019610419611960021400938806669193291284780914874916597432630398806326421738489224902881548530365476766176069669001544866538144499948838760296299181308494948277602547815087153016964220528165234817966826729570264076210152464764013602437194857241145883150094011168943752191881149554438492658986650727970863110691834561354772568627816636157023235436597424658957400544788231939186748712455740242589617475660121693993257249364762761921225308032953887172798264768524563795421386706606889229903596355940672853516407366072520439441750856104847808496133454333456178471090973562650222182024255205931836001469885293529613771352369906497801461656383941357506706117540124535406787881872082036933968338280050535638072622323436677436533028042087996617437185354198131810398762040443535109582111450776100318678931279324785899201451137620019143283970866415383075346277190022253674056937965839938251284597595657547899010622818694513625985590926461204839751629481278076857529565350550224856565857529791933305044267258358394773772495338495775466590295337835234501703726775707736456370833768451455157033956842331795841012643553260391805741952384160640151380925484094140496316964962406672880145706124190761171161328758336926468580837528850688655279002524647041074415988045128865937113695401243298586940445448697007620946576901592706195739757273971235548640127205165320513538349830167103154578912834781620365230414991623285788646139054290222670177737377934310316208572747632027066453312612069498909043848635873612928476948728284622711787823830909601077199318527557216203279078221279179586387557304190513129233159195144348801290246139509719374431511100096786310369648037559782343447453005987935901465340371614168264846329074584843627919110319723595267426793399199693165057006755153076001267596594305274183423485728456897986391841215194457962342657455110368198417554482518919141052626822000073724553863890949660068033902274807912718257665060648957636240804799195833774673138709083450798161192683441499216587400536078539559460555921038409485730349323820124267812070354981534820219191716614405187758248863532383125215330124549863118309859245058820383779752546342441503123114941798615024630538398226732175404318715062237851860487094970549189561465836801312685338454567043868905674655916547823437635617363425416479945022302613000683781574998441765635392942799372092948529306717529989450446692554064041929442892727522634342681743306932715591867542421616594912730614844593717836106803026758997499641287922746460122131237975050430246290566572057366047341689467267698918185852223510659816906495390982073883426917536673717471840535504059823160280998911112818092929650677533899623362567018799337869027283717673556544311719949739583947022769190019103434829028953869191612867230026622031272609313340056339213986430460237281190238528430721676010095337340898147557210101541078509328296656675930415915711752140238412972798170205171585625060979814879684723680714101438560688052799957544556569181319173702374234185571019525140714967611138538125020075757593944930200867005424220404067699315987188690856825758345036346497471299957769216956631398900764941988583017120261245405372914704208720422431054130720252280826365661836386694784261805360996670200823365009516532088236971454548806196415953841229413779846184376134110426484997105222041867946485123211664006306677686833384231480698054880272673122993272602360034783518760805606799301303328193642594993296918965957046439516699087466111437899644317703957783702945961006377391565006134092181896760130363655037699744356443761377195090322998227697174531874428521637870684834263643332323869754117342236710063144088215788626490643166053182241910181339600218480664427742256065319731865149654516256668466740262615402039139046325681437475799483838966548012337608107456907418638726544175073999895373325264659285671985993421077202968132435693874210977038927558183693316618290155683889415695214122003701070561427603891758550996921650490947215764455699514333372868792800330843055501198776562655046100316611090251177780618298438672924169261571124122955292219029220332155734425033034435578759697351142283039977861911440215111208666321584037658082099008135263186672410831533481531183476591097484438532575867540852049553714419299158284488054039808714266254394865150274915766330384933843353933987983313337051182464835546805031834482782387673654714474178937635804169060349816522221589180203464452551523441330492886230445887571764214194076123336515787110273151211946520094072978877951673729477376886431765300952600505498297907589014834598318785609840206924495763505362799067725787044206539610085679856011431380242957675571058005256014672823441503403513373031231616374213232900054991517866897313888553023624232473023465995784899126724788266914618628405100920069644316676112686913629580066768065540988925545211149363535560303360325130750662730603189591048874091425307131985201848507268116623521475912412716988478287389451642618768258763105368301072055409892162079291501191492563504247070768536653883994160361279693881478327559155616785019605708324755141105423136144706523992454790994896907937735600579787837396136474445921229391701871797748217666133959924959604340008235967749900418679260458597402226250848608306171469529789763606061600875221851393750484348359238229046008380148870988831936477494818612957219485223540937624553313366674305694730280662528832635742944540760722731271450396902842550916487213510001427656194382154407502502897206206330378423550361984427314458601848026657134982674976295644602733676972887084559064630049074573037739428233388285706397765235671808852836062995811662949096851249534938581901889418527563870414969742303136401746633244523297094521482159139656038170696103511107869781933915684452962404672432817305151000247667933117502707664883977797923442244233835928625412655362241744771658615117173454887103023686764365763019152738351381102251561425332282859932064280032827519058468985732813176791843117321088783863549079016352684686748803402689919773182944801106925980484616644319470703715609242537346680798342995125971514207974315320638182510815059734836291892264191505944734139212990358958238923059674452461513038090061154241325165977644777602289423453782053481691599936805144677372740891644657305274474608856360568610300369378867012439866727489233789391435231262199274475721783015231921782176035254984940178010036306888766990977323310188594027091525573945726373887025186773553037104897078188344238905755441235370145930118211693441002286251952095762480524211015735980087711397454444995473640260534263823150865747562926508289407622109944079209419475410937625277238477927138006794067834649139427116642868516033981253484269386222194974730290554606680027566777994889838286426488426315089265685372330679468566536397532416053301578427746450863752293175501821475888039964158886647756501569531825631738964579141745487268664894625193892900514409415452662984035294466227751506281027699662802361213214220756288262054715433991913529036415333922025884669531888145569905998079270028596241581704086204175534431791786468328439730367524480398826831732894007988934806722864998093532915506746153015237415333875354574197146762277988048483837915976107543208972635009475033362038162781990494703322449859499041590028997527405976255330259145114331679546314626746585439131457764603322944073299614914653861930455742490237680913040735239662561138712662234649344900626941251131409833833252253621295837768692625571485108029157488946589267497901404641794957172277171954170931740385744798150486583504026918588868278736479956963809432259639020126688916295120974915454615860356448133562756635432615164705761524539755461112427324100163944809151510027065602565490483506630701915455430002201367869469314270197835869771565236753317392807058593974019414062004506492720542518765903801645696151103963796165283373230525115496022415848727193051358272622875492242407136598054911643838340388793263723423255085738307297272483784225212719447160322980683079757596497365115220576804693696259722550787789885910932183110837899618533475283306808552665977493404942851351758957169458710333859462756257593663187681436551185613095660329832802639541152335337470296019096789236412976360219327058224246760852501949196329635324662537922893181849334010034016865781363123987294048378774761631778773356358146638470910239065040997487650308821692654985865018233833573559880710269481395791486240766988408671216875851787168140089486237680127106401515753012035601003823786362676927270281917607483861153452442378809141188275237879279804614063008107976730238273920945939526108528542557044124655343720539550839841825316298877972283663167384761541601781318749163639537836542305767086221655770078291203319529006404943219016404027421931374518422692748766525936060509826566129117528294144302784209828018791660747347201750147905618721059426420361105660940845602207860233270830312649240794892221029767673671044008485270533052607148345838371693336833065869128097116704399879935540142069552278623811107208848092369951599867945759403796099018028814317015133506043721568610439686381352670171780738985319892350471868243682400100927989593320324795284549228481491845026847653011958885817548702541635197746248932773169323491883422467653963319352908934183612980725705205861605635049297355442962974715673908159901019223302461261153829238103002057537005521833240115480949676232138753008901135167757737874506303110160879825734531449094280169317072414303378862363658287714276592885487450104851210271588272498199010062111479933336843494399110198445606831875839123284469194966899516066728695391439072242571492008560408068502885773777969259012047034445304723529096654916926027692954033876823066129295686971806187007203122332664026325101694265113344772986740225261195960184508186685480436963409720929215115250964842822409052391345682468558381858630444613083423221208027345649532962278805298004633343259049552225656915239375645346173074435775279854452191494096639255472617688363642718435742681629218189969547582910370629380893956206011308004769723954301144211542625860669572911613126275618547888904448971612661339923408245081883770940645782959352737418741633884938148877355954633815846122028065265180483085547835125497125353069161130118656619349424319378777133208714846979020822964986692054006461348391858786877086623381834538563523874563779349798238133190339003062479133736133897959970596763043775779584269394966541012957378854355171518757629640122166267841463450037632985117824938494390558922538046316423882903299964432712750124580287826245811208624464607156369506241368022382840070924853757466094329103823554376117324567485420513958845859310727460141841078288612429677324260000897665622141006261000676128865916771953477514220462136021364453009633531208405746462630994612911833465223530485495334457315713468399868329932380733409262079626824489797627700547360285295271118117867933755339388966709476800868866252624417872053773819161014277585180110429630938168278430650358659952390197145750011278615580841775645190261129061435173027011549841586895658694739505119391011087895583321034536756893041385473404553417369460764768453040201900763106278016378781862152559421011638829526033306724769831092655799828752132738051017001580263643657222033418164093317869740993423111522876871111275123770648023760241801307297246800738068904152156142174668539473761528386670587099767308858701339715680129031882773435589421458674335111846961301798969593945120599416364835680844516901683944608594569384580390291702094544832575559641671412992537050524498711503541393917722418374946402150682378359357424028330639176127907994052223559326720297464871350838366619064435326616234281493308060509861099318506256792273581303332225234176209819284323660184352969978757737389320731768817699536646073220140695596526970747153891192273156155651704298737115260877753579679166751859663278770351429095681259665833561311612380821556958522958015654553490498513294183632408040693390168946557916709938867447201333943517362024047405019228521262904471677518355258514948725785545462162072186254375123823872245455448671519390903691485263038439172484184154223522986768115791775837904294151808901266602760399531318249972188949035174277853045399680262256781822411977748519233275386694915109317021749512849591732447577605982541842092292618376605520937677624882334653200783731685340906024183452136947659985898149846648341486181497062239705864747316295646728721960092126539416174351852423712509395160453058012733929612410280864479208375327990760060248244062400337083218134709868628976230156324840865356374706530963396543065999771594182321312768714050447070528074058159873588607140121600373584959526508619303733314472306280335802375751519001936853397829500227269663117816810212886917360052331642406276315928808914835620971918619196760983180185612366060094821071551981053352158767492388556098023591598353909993652159676952049335817127397652437288243149746386820703179453939212577873848273714447178913500719202978919522852382833128575304556226073049308469130866840650417182188268905296711113022454252056615825397935241943586777276895442159222972204301909916616556716088482072006491270945349471349590396669641391727871555685520955100934928834510378922738061389305444419199948084360115487278928392536787486753275027760698379719345884794976665044918296272425375603569180407122393863991659072052199714826637094743013534907849163158809243441932509425118423884271905296254860586573165188482200897610559973149276789831914106443874748100748613320054895670793645135874984745249441538714106066425315930259512271567251617030335118743269693895459335743729283301633330496191130346093051157127078264403527243748332985856569133268096017606046381204964220120477604670657341026952472385285566028588289297390184346726714118369335591832939603426327443260369563082488472905584086830312588741064922796024092501129865751268272442825800634214278412647467368499741641391993196044609233254263909981165436298665132105425456581084628352866124228019391602628170419554779387987196111637439277866042156482070070180637579910706103304270650404702110675922429688140410965679386496528201874483762176166261682535095485898297279306787773125751932349154365141522876523572636083028177286590063379510800368355587713869003403836749091183674102639779622493901281377941259565546173981116633013119640111989519798437907403126300948848790900879415359877818619892759915234099816022470222908169673247186999673541129945805406166779871715585566293350944638814371968330405749155147420317697954860026494836324444741546675058483900041926503892631715928584358214449682366592346057104076446579775348886612957233126505728840255076356093428560510346065686293411629299660056356315871235889400638097228089479361969733458716794513512314258449665007997834577412396961155625820070477314723607755522564017690147823853915993606114222425215452636632440693113563297504753798158300635528575383844384813946666400259155124260504650372174261447692836259531820967933439443587437118307376066948867054275519281837198009490589729685272067313701715374192953470221694017422013819477023770229125118576705560796582890909583197769767328946899052421396712038764403693091268312313262777042481471510039770924677048388527164853006796646936551441473734560345755955894851491598286607953973194135577360557181213011474214227964724029395907585104369367739982011643823168211409612876886857808627376976258811104070462552184770930032009903919443615210557731397387231477715460212783023330608404523434386369632150543687638376069584096439393381212994128736132188793989534198051981154746732706616252181040645294594232926223043471506713851849817657787986105038577235937903538023064125913053622177144477494323141240970149045843588581496498909611345841179359568531818610141242466533407559047582406801978922242806887321702911267059513557022913494986540129718521077827684109790564779163968035887487728460868044888025621786889636947276923603799875866638176353994771828807352315928576981114749893608271746014432572273212972186500695383634083258376141398375920645074784939623608715932357003176880725965353373248128009889474731423616397284475752442356254329337756425257164527684556731143919266088141936711588600177359587277845154813984457643893051355419221392104634105406241379747904706340500158693245376084192670098478324213793430973442079754864110916317300011780920930692459124732928663921789448190704658579471566994748717872354294414341813894383911927701100090776709181960525557638703588877577836533066974374785368579331732676997143141766251275629769483932402925095008426944189068474237130841334997710867426891557981406664733873256562014832171411811068969601966447233241521465457374499349451671485184925477930711394140948141871659625045499205258545188659094170723023501365328049303762898185657149298398249306103187360665676628476865249153846008484654162973021366883758911738916161128048080262522069547304507444245281619709759294911905805016907303603357333585824516948273789464422257345873497877992366908128981805218991695672077892427165111377582785697542047019176049637212494145564859523055475317878456666036860668403666458623162826577448288830634847506793028520651898855814296676770772641340399244458831418922012342946981459731878582643612348920411301281069046427598725872488595728860823203441049809200844667166631077463860209581952569703457503436199699386840457388198728894666191827937244061816640217718157773203734970811884081446200992995380837704114897017633486306822622222294072815514682675520899746476858551141730335774827663002707126861997078139754635317327901717290774872994123676476275351856987742909672346381275512387454041270321786682220817650673478591360810579288445935246294913006188671016793448872984810466811140546650728485060660234530734824510837036461831152442132414994464622740783909059013847542901468210057373906394749366330871210118010002396111180156719441239939507207004789414141073792111444949830149661776436086543541356160585214807442588754075854091812986961827728923687470795066654014314838603803694487025294150637613377852318913143606549001730917048071535308098447565785011736990034218310760094960592975706010703763176154717610977832008049952738975672098204321923725489221166375559507709723932473549619329998496391750590657391259193344491753413110137575037608750452231624450779063546331126009148882721383746660101938866975459099247081707012364566663621888293446809417812561926953999572925576830412392400338700293293238810095330082185367574796658230361764350633172802684877127667858043926269657803911595769086619508413907572619952421308464542537887984275881025021342107671873496614338308960818441354876152678695850695009054528646826828541400238326753926493469194385051263832752192814956914075827711511499544467097805776776106984150882873591689470439160464548823206520157320438218763247039682940836346996823864808068040240593896207286473665439514183991607290375245929398117461830753804407074796089892596975728410938673524573310229639258499315343526321316395863749560365276489931265674856614696811312514899859910109999492327819712263037417435753778277365920757169251338794857870988821171665143244280447761976222662252174441413298710926587208189004881819035103337509406924654947474122393990231881266506237663549132738641191913701199338074742844370419413456809582994911065708455308417820426673854675594754505053362319137902614441568199454065338308041654805291322155011180852047675708775149770137148942683275301700423758115867304628562023376061266591277189821890842145624167764227914644954859235151167428511688118776803118113089788146069039640475694691414528004278123162180016455314831661907732422087041517928135667836017430062585179616379014032887165701569511619676336737076670452004945490244458199584968628914342558794679389217821082362629001696326678842157316633428595065004279173607587572064125373796568994121885327157014545218621686080842468104210605548103181524771873022214799630805738640542139124501269393567019137028363851126263719994215646507910944402534826664389958164816853329103740085088378286248118153270843096057483363044033179872848382636038802981004418220713774849624154067270611728103963351855879572384907821189671767004735264734830840516499019917603603349786143854504600098721025535306281267385599494124632771980099518174194190327853751372073977540932379287888174685721405361751347707483994160458394005734091474654823048695337170533005561829345149570630316465174218317364400332330312423210306746038984205398705568133694852064856910800996358052389004578546747367450718603813301279824557475561904075404818887307084445194991468896902571777692918321445334788420839914120536935689833819269550296325236276354480239883034122095927843699546970980201872680001258120350719763796486645365856569171658438283115216585318811387167438373094138835584735872318082498335923648380366032065729422960930593346088363296109342866012159246450398825411965950971799676630580143543751430551629752672579546376064221076189740883474052876696347445160268528845076554982762041576738981795790681790684795928887363607020285783507178978299179150875071856166614854999958153399488451900236101412776630157871828671049089259260799776805900019456159129794956418737418192759384538822606724046621495167148147600179405105815918385424289770232168670281930414243018173452610570237460339461203281991845988455731154222019123125083880032461061467068948303799865801433072894950622554863884363244282800360527096415613821140395635419419121313896565308608640288648834254529489977760838536839750232271633121461514735917565772745053189504900460632778697333753430798265651411684817945529051035294698649828786013497242068928935507500505591051317800539028241991576976910310972208644192056307501181142447211579355892466122406203753609877593084047198014577372824973253511960685493765702621786523490223433519668104218746525062061917236650829101102648469087002073557615370052125976825913444225313616040728265951209080636729894854725851721677243160126781767379061479140282290670259578355987387271209395906568542820680697454181436411263371285574978424017534833063264089365551243816798240876528789882230583885528127746269099128365167715900576757048233392806740970686570579867629841711723560169796800280989461939035002736698781148368093722083680632682787247173952493722575698215000860933135942427363905437640971124561457598680413382650897804021725855246188837203332949199545279081344593253342949832551511142133182652075772151002746382484282733655370939180887844422496966732645144044844194348388881029770417941958806122037631687054844218791322942534432535321682780918517245076793409061447922904259500198081721844477816018544566684800186675022417589461262338071498419135569083154078178750006317496510577175345290430042087952220929728168230914011131852613190758868588536569697060293467087790867957701531556098108646736749269354156869943862249387119089080168292909473690504814508727866900385878267870580179930144599909257531734818744015244925896127457816798554173681375629062593252598443722952746489691837119007770261404488307727006826654978827259628138211985294314850887094877379654858452429311960931375154831655572514895230588979620268999230750350035546928162808171576166410561358972872343948873247805526232572000689902190841887510639269743245696368587240346503040179197246710220837095570858170596670108359398197723852594150452144501375653168678116317516581660259828224440082457699885406614087541524947418685152561015140288577313077054059903056407674152977950598558268210072262293081018761295162484527943835570169416991021200880207356387388203413928489255054310603685792648539450385427778169390210035799495175962311457803015010644096079961051451570665675792477995749786972829296378288821922077717546965065452360951495312730097874217616684582119582891349856598398904564079065383376835092253661278253443821808881531629552827907857327249323905691444173091172447877066033250970052693825201446556000746985582403111236389082516186211824701933550234755827010723738218672761000420762000745961959913461617560105313575386184790161581432922119306008120556653096810808145792492301168946671692444906251120145285677216911739640652460386817751203243548399361502206893440194829983159384577695004805261801012204709265296718811562238829829563998515062451832904948332875597100573140425698708547811061016421745080162186870317722764071352718624826894553427499041818854148156103096753410524582676787216574537629846632821845027982429219436706010060233111278751122115730868935188706538610195231012190008777469690937604550636101494070856778010777191470988302306168899313454685167098448308148969813545517283852254054726560381772129354952232655276057551937698651555831237207433215349570315629251349330243485178097969170308095952103619353866080642537684886361846146005981953989136475253548727299326461269739872001917438024934305265429030228749869445099946275034012701122173183316704140418195709004827990202255764152542581864383922412885000765566097842895038583507169146734322356295238371539379243034814297241751597576329230319072830285462835398211702064002211079860138863442097220450104291539181702415607508832315865489356405057777453956299061920814793472661603817348977681040894673004795546157856947092822871228000717150885085036787829224161267267812469950250266223346321719406909213758024965497519861658724045107500653296055772754884259151797430888830224005649345474682277904129296898661733436064459855842873016166577251933669142055713961682297255060281239972274831970763364500770015210546841477205577409546716979582292588255096841629177343917437426136141610063910848647221394955707518957695726981524466313565759740730114757655631731984742818803449901085568593024003814455753360232159635830033825811137374191925183834466029982346933945199920959192847700897269501933041113851227058482440390851247103178289707695291372277845827181931803564240737584148220699330968892206901894133237809885332103164132082103654466893602507165680871116470771758966340797477368910302826691413719941542659934236238643336539734808458510960355624044417175918729830604534635167635848290055091885235986282920882875776746714166055871026135752560367898787721339569410453053752856035109654462041522375504970580669307673449041551235016231077098975723076099364593259035133043674105196263330174615807278011801885468222477646852452397299285107721793704181812933042867558476769735356079638864594454364699050880443343321541048805593346003202860748690633920653572787580447709727512428914883093463469058521168864894984760028206925251905393317353339762998336594629116518744658313596976833677693327230667687603140686431814968463651978285635491085069851175338939250670834570069318198372790138385814557965632955998166813919015751444447166787083909311129320319894581094910648654170111016534912164063196220595415779526579305850190381066432029148243984166842912069278539440852793699560838893508447784683612262600928984853443974032055320487461228232480215312072336862588712579609723456953932821050973665487465004010858810996260851868475349318598797454846830841409651933733545252576220734783820562565463431033601515567418208266453600960495169749402441299352119897549690210774712519230407296494643312000321946341880545278739371123514998285568889978136736009621524586974576793197897039325831942318168673448583912601542522527272881182339174939937245688910434686385791452261937050875861587681381392544835292026353327107936196803205299017586347748281323890715147725233129455938520100383482000246583120783267772514118865745382237185522081002535790134965597459378366284371844593919046761518090961654174192824046480129552158194080916571645944832902087152110112656918425775250438607142732203345065743073906681518767238163815408548058368533357508380259008174356355545886110859990297682016051472969952304190339614022918390828532723332397613708439049702037126917283135286336745867955987961338319437653652829253792905438749957688708735477685666133454227667595051074211468000960011312734077471097957324475303708201514039524970055245151687083093962433621134208404351660534309340909568324503023232870017591698279233106719288591765008522270220732241379489319182970018048676416098115279664880028616330320673445997173238583071505525949873667861166403302025555203012064046614467318565810299102260657554692181630398184383736842800845403212608591244503258095063728175031654003843926706137269158891741125954875961783128733746591006043619483493098748507139443278459527251561160420128609369956467486763908421377060317208136071526766100847573492175329564526000214851462943549263562454340103896005786775647999736030195620012985441625111066051421967092657337773110154103955623933836254243045268351709013221590559545499252383114251562991742465048963422645139151483412949811689195605894270603326985319176029110936361936321567314307946823317922443548435341485086454276616036085533562454969419251701022743722496617713372140267203231578728859638092919946977723958154151925747848772923932108935776625705495553635274653702810459781317997176213472194756572249471909345206032498816396229255960740792121888977363897594321754377624447081296846309457304188526628317178435030923640240599720210466993344841635584788382410132921534767745408861441923028766520951287985243531759901901306786311415266396414313097054905100221620412699250216155188605359360164599304618507162612031436050558376304599807129834008109129414295931823694199785890879622383465377786458015884408061365814721238165957336136940343178183832103612220202328811950682491340327221155965232985157705577800834146279841186842624343575170654131140572926418060461867515181201846227549292736074606279902787616919270125237758782673141940319079320243157021694966674762817164916442938900559716918796658043873406950162983203367250905110566391535490765927186933940954590609810665159892239464270903501767208900007631970489905569487776179174063518458366590539188570035374919718488742658404939379293863537982852135947840817511258584579241268117487868444804675829114201039242608180061167815762830876724618669279092969349286635809671220807930789337920333086911260752565467861097568708210438882408886707298152005415201436697909661171847740864113088048242418986874047585118787438408392735371915028649818443533876629639434208256394870208130790167483332631204452792024451786055743204461789262002899126812896135211215367518119940644633934224823726159304734519082859806660481740791732678612286405129737953474944623473876077808100639737498024845112126582887711094596067868055416211634108081974443838229042759544766327527403568319048294975987903271984796000934701291738272911407552211797104941690074758768864510308287545245969679887266111512625606886946381023858952162656294390008735552644330912584235412734831598620630228360912733439495863545740484490869785506095255876440587916475663385364488416296530655668105165217895888208466107336395599781237771190917443494865723379407994487746024773052065846961463266876034916578438996414586025193854144567226870077580133610258443568422482257054167137238137093941451711159434386437550650994093878038381374252960708326461114219826996390549744817094000416885855306727482309688933725372797878724170316068726054153780295330675176531740655773382470417724772749200061846473465820487328569830960083441388024094046995477434646100503547724609342301557139740531542182409920614288317340149413090667007267865130937664759892784531052502465081095521892731341990259201096720335957847667297215608406728164917017411724727712784505697486145814586970416812674508748975045765393849934800918787901138533695442597294553110024139752778937811714665815645994061421359943153091493289108062320023979248605853022184780781088707148072491891151155718651591233482260550004843176177127713008397006761102554183995996064403109650414399974133415335890096569490112066273591622592462343373118597743382985964162746182739658510426669032868555468227471675326324099400410325914555228055743372756200781211947485696791764738905952016794029502119316992294985659530135774504316262600183762912077237131152005627983919825396516485074347511716121352471594103458822995905813895414537493713596904482216146400165078926129390602531600484125868689366926390890509539956779273519029806123349276933248240001519203727556003466805891940354328797862360067438786037481887935862854524774354724364062698378743558688118811264619318653136213880784939814243589260312926577127279069655230082722325690812825398002577163083061079695111397958801233280080334398576354171049106054347385835121447450491061710635447997205843568457121173834686136658466165169275741234414255160406234728894706131127766028761136179416125146701477579911087837589629289153699907202304672137686099113925091334987135099833507631392185560355272151370596176170272121089604659443133346046078817969553820588621355116464333846854463031471514213567197211244541922203200348886138024755368176001512502277771006576942390918567854075710033227112818280964262017663836662500464075782502558801996918964221424417302558359332653879904531873680661162806157915764670273079578166806920537350810536504874664758255730276159060304223628941218813346884629822685221019200848363965138257816645351290047839084736245227448493674650325011108015070668502716265429808127869130571675903543209967283472003978082079679168753232892677884569972413805619598596049481072551853108628196094454787379199543719168690643955989683750945708175820827935466440464400032568836019811803768429652212432471591570519948967932837009128929189460103937211273042842871172631487276004057801372293222238225175567422235866841380009908855952435636059372712515601900778689960747481393536256907609901220097397685519578174557191084067284570252643954961825006672899452648489304598960037843200357424257765144165769699892331504814640638797163011385718169593919249201493603845449910129339000354891217081943545672802733377255110012824780811715655129520373857531594814143615040252502902418754299887759166663978863149448220582516776227374936884961233527807925073021819222123620141684882856762968629200106102517132484929943915808013130259895368991425226214171058111605952030015729330185064945539333435773188299731628799533103613900977391985672801598983454086354099705349170986152643462005662905303378401262932746863371375376099176493617640029859513430236966086956854690722173394339280988286720914671531138647804774706231870077079986934168797649954629471263441333451249215899684656054334210141909044925652881814932874008923955711622674119942552399630703008172934844076493640401817296258910807140211293962388467945558215298847868725677980418556680795147253778789336319869180422043682268654266044932013106444480406858064101559305264446200257755590911682528197984143441377861643435632299553392123061023923582918029910276425787167428750127457491690753082093794580931026891348973435336412022132976992334569799380149870825549197359017237705024057947324382765436726300589720535406388601384083593361580568281993364867833376974394718322848087044661767696375948306624640193288762001028293799357250162809481438058675371992272008349731153568368012034289024386874340623724643528671581672009789471239122035363798972072950223236453379314337157125470374371451439760722295722495104768232007555833735998607444175024022181505491749980308812210981550037033091076612629893354158749709770961849408553103384041661610934957643631476026416672359944970381243123856532912824000601248619242049571921159387689814926871904211184096279718631637741176971665686855820545694106401028607665893956264495732391657634669436346590669680273477933466548882342466451390012649915036589972832067553433707462691534372819802909230340199312205029488554034318750404254987196252310494679141210836740564377773924666723172834525018021701917473901046120134891141817947949847395391900232124625876361820551207887788661265342261805891142857653481753467969719331278975233543059272222096663333666284930706213039700922977393612491698699288142850114470907593863968465193657599696303637753169034044102728457093039467279654933562580586580089056527796096918679094896600660621809872720671397671190899723932600162280151933919504341062509053616987025575542296853893984236804568429033185001379411794741741991794341532158066505884778822520182501628468746318861780827662762674551071692208490524608700677590316440708330512449118630535298768798882488185909931610251497714526631620074346453141109154017508174590706368984078311723110777562742251175931773745767486113835872364706280448725360979814649712226613573864450314895972687053799686263650111985594627156921976964523811808233241735040403582320195839022321355976204822056548318995477795637014146661516975925721771003096717143205280708594745153791012078650567450496901719690853308850317111414295726839522889927417246532191858162086929570163268934848250705234165150328651121140092313442189355682961172782634361378951178334360568374132614323181201083852345337160670187862835113581086057834836244422564955302310711116788196575483354534279887866038013503410438340601669373306513821118245202428812712690167146753834320077822727564485825817750377738275883410143535806424535717478302346493638711571889624619188078100289628857379962624285586403276621519652544353478474860497206387645756312673679046529000706482221512734200661651282797241674192298551833498159719900534574961762606003422933352338835171727792128001235350388413214369325176844680531569739468194664664831450605544813814558656844101277323287239919072366047127560239841958535661386347408696951652326023490950939746503047267623338883278597331458489789556689396443505744046763613839017206880687303127691812549273666908643979129499039083847314923255852086003213786197783224802576357752234212575293479788180560304280502572275151334081974535262562432922451595354309991619919760418702650757202770125883960647308869194700726694970034113837185914350974216156508736360873238449797924353281427837570478005157979944414551473584637179706380227528012066770470394853591861674487559603697560984682396170538565515042039773343536668759743869948149502879177583649481841463457674190499579510773290082250346384328457507520276056377947346750403686286243000398832514371737603635738001095075073041490427361657570392835237162660515144300922080254524216327407066438386481720644061760843095030012846858268211310438001929818556059109472429029177546158836396048679422568773209602343756860134228846494003745240972987697199675546348544579315008953322196501195495061357747707617718824882786112367576999239741966992074192040090558137788233325502505172038905791685152340973531299351022144618413173714450590969188770038588639233165921001360698212259418218779995406799868963571811932673752084238771976672807487092271958571158523900273030151797915101175447331645172896533244812585399852757491368843190919715964479241702931996028543364674027200109851965838146892388633052823019142954180428101664920408763459660882317921763311656721345380598546353717887033341675022910953100672068359529303078868893297546616487972816962180303630116657253722860023484250488656903949744788919224425122367737797445354411396270332150828032673952175667981804284139406280222148092427483048382215758317508193568709893088471611794885343194405865832337417281350327335767567426603559549184127012501302752879541756779767530421257267676318876150795763709874782703323415767472767462134914613003005055172112716412815938085803485875386155430728694321979623735031137066649334976306523752390038748276435010637048199490909336774227853007059982188549509871707747489646322276349915992437791650734757312762137357556676551158021654315507931185238139610877104082908379566809191687198184571137479144834372856575958861543229974478080323350743352058632047046479408533406415509511674669933628961271729599805000035083896735212568757245341331692565027388794580694143098870630859744755860691609641074111622230236074034868833120031166818753332592106403308575047115594936620754311743760969274758892562646404098764891080087351494821092924500005279578804379719089121573986616791813921791226686763829724954061516949060430418212049700936994418913930749788468247717994507830376607668416673575364795292554416324750651571084014433191262263935439978408750092510905048142406564103984496062743580252490385593946338056800491645607636992817670825538134912268032769404647592044038165252349674482354959041045288881922825419767841518944169598722067257104183333066403696687955422743243477365297804079398832733275971610857547868049115035270301088340335460067176433488126004198003249839573559081710889653419658662239861142217899191758074512209200333757721830017272575758338570682129945253931547132306484271192333777012115993214229193993890993175816594654869334359517401450794157934049965583919120387113856653433404029509115818092550405459747874676807162363368339978075480883924480126264988497135874401113710193689456997799322366736369927537796967905717125165309612494070404384106998542103267542171680654211840862966929115602980445116849223628013538273914585526218545227106890477380088213824746001889920922096148742422203551284260383098410989619006196176333153401177288668220713144841217667242832068090212487037518864447084138417688740388274671174479829248042528598504951811630508518941859514045293800245133907512571150526200778800335581309158565990057802553593894673132861332254663880920699474576043653388817140913436986981691133058761149374186435773326145377880049791194454639257856952211991269958367485725405089223711240367770432131231852063903509947029837476300523531275701700262452918267515373088105024264601400026670425221615540822852627961027135354113472068412482418274541074140649432468769018703510592174361153443967588304897363903735594668180482236766821441743183464576365506669651558104580305556700313552341556957871317662754775826090565160125653419665439316812474467013418772433641219600837834433804129083277309771510813760483982239077260910818444575671222046542149914984108868897992742232567473000814097473870973126727304303772611131003532333719588032761035604779680378621048963725959853404735143766326772476024603107478470510271026328407486924711002052755355973303627198842559699413645576484609613811013965211800694937817897636764829924177388660051336175401460621382758245531998552356888395068608701906145189908414466371412722836183320626874911018015269457923080537708917747750626909665229522293674035140738354168754499576390316214986560323062529174469088103856227444778094885327826279387041887997392654429465210085426103911205004848740576064133898075409665772474961511563836885144082298514932196445342083632529134319009960958252577325486046447278149180316611858900589195890873104527679196196050282335311714560720439830398053454969494871312822548253587805994443297954938286585999460679213576633891981120762681905168453365323746909051648992227963757399480062127396430728001942637056040417749859472803676096553613445636531027483965380047282976051842259242562998627732420814183949510598671097510148025774960560184513108456149783736757522652604693282380647905594221421461876941194781209718399723542154920819802777841162272134219039511077626224314559173300367207767698309013651693456566161143530362470050256157656466356481457187604051914906198552113799028876774475496273507912677407607568496809547068512478760753016388065851167333686056656234698690523345711433445516416526083982498910494750517664924985741308846246691122270984691961712345921950588882838517657958858876666999430749223505563652257850497269318266657677350830944609035782228558637583918290670222638950077026401039096771609571453843273267488744760148131640241410537246616856768167430149887973839462806659889446705684427318924716183302539023065065167287395035221815646202265166487122093931612056359400138620186356416448981014127639997080888765233998792848010632497440251034352360107838752063364291050391827101430761651494783132161197077507838624665335929872380735493529057523159129477859817056772814180568618699783062217253024775465114840984572869554510533543180883849978898954121389532518201061613736301435794973005985809945486625997450419648295431084605326605311833860991066709272698143932097718363202879600239764133075868216876471827136069447564570561699387051220549313058567005734845474501305966110092650317977916142309287583248743351135639387745685693613270098860179183077162934834568530320637836272973298762965299505436497687744788650180912071947773201044591217250559398844881058051772191855184243312578092273464475097372531437676630322669739184601155245046423515765610685386403206078716953515744991471435174833393217165348064380976834493716527332425164186408768046698990418809477543935475078466801755548481686604637257028010776975288589803743748307014884529654471116292460209381273512121408083782572832953509953316974912326052506594587470916571293154345863576421917204016286876291922308842103212577676707390855977478517903416111285334944536542120045294318123446510161570098979871494435989986438982977798745844425561741137175471322820867744175321775143702310925702368769675411728839341983040568479426653784249322442427627722166531706778207745516788528749520659934568559462325124910921108842540141375191291884500034358884128764981771939723082472460839527804769315941671717845319485769522641277264585322865456475561302382670778035613642949037052737397889368761696613109282429626464680133766364522698219623726478196086423067085879280140333372747918822280925705502650553715437575442512157440334771240892363959094387999191751365497585391753349689792843240335633869511074347622193619406228897160876181610934423217088983075944956199780637827311960215142898646631724278513038161895354370978599531135954562175832696622546876835404808710627638495855046186047536552835631383868145385231609532693840554556888488615651768455531061505765900562056464895459454028230307003796501251450230566567681876896568835181293502167844610198249629412420436088929626299376583407461020734436393341017759908600118197249115195030566527239410911868128359387056445316636588509341968332390894602473754635622937903157180341985115235694364096456993292370859157018119581839758522295787994826309613959450208960940315737393780255397683657882704569695636805632755762420167490556311525742479999525248748375493559902801134762520916706065256203593335749197919894163127740866647731463568721394585826294324031777484748696320766453049487127805078553683968291871068671696613952575170099895567972621288748559467760133860704141371743899772166831004510875217721638000701883420260026033040381454286728419439988854596782354603010203641596137030593379638054807752804415730475955157751561887357713409029084176273812743695162387235047275381347595598749991859286701505605392356603684387334602475705986167758972499221978164745812502054519717812026896884589174103088421287427851489838110229010464126283969520077604613715488062100046654866477457452351984569661402365736887853813859969308517181443363077687098213065007607470842305392243300754298398978318085132282488827688109415669356200864980966171662360385598107068644928152666180052785390059805561960315793101628871407222355121351079096970839136048320186709294396465649664115717615606005054991607665725089087581230128956045011268181070758181050025944054382384714889491952433545977473456480146864775932867870194356120639531515208544586191667100441282863164204319332523775938263921126392844271714141423302079486132420837755169042253537607498972515076116051025864893017856492641612260018001649536409127864932982858474343886031194742324939923910956226543328671488317314148062419771324329191993580921197228561135090305136805284468122207213227733673447572204106361151553810648778828687358112722271029868663399451250338634780587440146604550178265837349923057892410196269777489249812172314294917142085799516389129246152181644072055463005130331145291523856367947680148675877199139744566556198812420211505388837487906658664217829675199586772578287660220646148972230945849728908947077050201579291550745788329940134303118590272150666242761933936985130034734828310849510091065604270941367150983086340262599478422641649692974126385467533875553672107563181874866195307646126579864961172800144770406967398654360403535664302282783960829312158380290397055485138942365684471390592578840003488532729825309389467350183326762475416421126777953204311782788260715420586497926934626193250182035475655137509859774392973963422077738498934289751297329766154819515464491943054989798338510421776694128425515844861706064999984829019799255076983796001352984321859567519629589478281387988748296833697828634421923420642197956815479770522994740135802380625406482426137930858813171954962484586523500427508301894756004143430144670979563547128029543055514095043881771381643468959866123471121626021515997243024749096927544900643876495371955929449379075115187443381928773514820325899305660237726012232208003664652335843976213198653677611168588176315728657828900743994696980664804832416922966670790390465170804771792571319209024056013612720178734788878152926185188332259150949576859823667932877010037705410944264043179355177855087231243413383769474497922258182767636060283252660179283508698008214738347079023510206993083702799656677304726983302802450723884769777039170755370798082946047812656651481945214122375111383571765406520543079531880175701745680494463184191099170046168607287503305457020928118009039683694108798017390585881326940149978131499998929823182156448157311958247615069120723390885428794448426050142639918488038334993090857799810827563930012801656345901063189636814670596993416014355301793672870602500630893748956699717114105106727822815234055080872794456740670342453991080220095437531278392991261428580641887754651668470103689286351777101544617307843567099446205833130701598381086965991794168642273342109836195703092849894556458110104816820143611471359717404534639476774132146156274810831895778813005588143839026263978170047519188503919415821154674827968993238117599172680979903922655230858388162014270642047532567900610654796341182202611142185297689962505516291410833677390906419033998434525130447748924294997707502686013581964693823522191828992862941591256289529635373281652222836579365114640937999998467768070259971001904579657651784621079221117091739801441962138693786023656882213108476533672557881478453531264056925164180181515413654864722380907753526461419696426420369375684252229001824085479412672989499178158088097449590607957537407631223300284515469064842077465061801893541265567308322976830233165639400327190915478151287994464780251030229423581405079314575904934556269289261476071491342513006726616351533807285155725694898591654107983362151769285981925730374088628589565629440326731489444036373565418803562399587009020516798734490875462936975817239399947591710936317878714769824744657948990585240569688534915029881479136469816487211202548204160761505936976261326662131240283116833484147475575913266530542601368126448618801753284866651521888438483025984118069142786650523705868365834861842650775065774161471095788921860562351641740306077969706550301300298325647603011211217806330856720332565861989415704251536194355725279099013994869992824869745071001152034263128367200995368357388640849611791275366286545780938751794446023504082144717451024434252053833932715249040946654755984823411294695187436256511624168477543202513268807918010726487966837856966310565461838508189610017985599765487359614576673606650263602375207907621428087798963732707188940202648533425935375216653166279739325276509957137050178329361584138674591940652329430856465214455399310967645028378588334180188388530771826652638876452819203031103711535082363356040927714636284053648651383280228766607818852798411698414818129341621783708662402351969049551189456166322092348133030505250437344892320951954485296300425154875048200931322291484947563048955526691074052608709667020863960812528816500641790640831320770339791164325721077512769766588296808156504605042268268092569508308887118874600803067059728601465748438994057746852850289142384043654520206038400197063329005217833676386919404859858292054831787898182053480921538543729753455089106185956270374751815010689249308234604531795721515489140410339691496399238645452460410526271271457941918326395753869032512635859335823253498140220449703157580149382558246200328780056257168957195180953957639808476630716790737237800665903061212136570205688857159558814916417383862255221649957681959717871481857206018798789111891289916019582439959433444419349660184683561718729910792201722311948562084650209901506737623157700093056929419755029929054687427791170461618151500032836144685833797541087664931974913232996109666084640735340146294307783377537700084113436389252836028378238226828747709236061105333640028721994603493072928749525421482074187392084401122624767168133913453445340050499372540710919359429839298263515498512079707682435046645023377818403248149409705527115577982351740664311270252722170851211514814398004546394435966245751115532422307147620024951911809851162900109104548063854300120864529981587029614826206009328870291031932597891966582308332414692847451092584849142807774713348144238422321107352356410294429173058915744066433425524460357033440862010776684125955373460042096923890339312202228392839807456258324762342243206432063982833499969990931137875867792843698884692757278443255673885156695739810212629049913333554954124277713628285917950888039330210112136412093214837837564786017999982092480337821052389804471691212575449381819661378189127438441674298618494935981489657281146031114438442636640849684673542983809289766735158778783377167975086447510790428826649429564721963765373794309977780941084538688701652381631764774536850938359058006552912843903216101608596014502835723116778231058230487657102305012094987117316403449093571412135210860420796252636765753253197880291704164978368692046427159985030704301196871023375245818547328958244212734975265947408251567361334832107547282744398111411243164086926063043945964991221016110148935924062035001450328039952649511880780524073521411601088935499464476123957217976541398967652205576230615475761947514920957627534155611051546237404048746176216021872692037087266606924025492434108083252915285923886234913438202621713319215733281997158772736844032699381772787387390425820657140518286980444575012236486277408822666517760180424455250340163207324542225601149682441397393637498235062179046634061936770477565197343101677175123612227020718622598615176962068525213499664705603367828365953116967313925287848917339954339787190285546406875321692697731602769129845597852032941014141969403056470677645392176556632743851908442153237466078894083605269832371706824247204317953849092521802340124967900460465661401723291108854859916185995459437608117950059881398338214910506858335317756884185786355108938641595792375267177606800230918913244896130364920434762945784249740634836913650816027678372009875319427579448420984642008288072354405806144616411732098490947037345551005808180279929741602160467790101553079976326647059144056667451641864918825310199616917149273159959655060789258864710581518611855836413490951288469269332254447781773482656919537827446664599848556188313094353625544902635008703329864723614200073529764672221557480251106993755800263149195707583470297301727532248286039118299203235190252077563865597833573063636282054907070361085680358420925838964204677753161858186208823921279143543890585277454087847319493048768217514414351694517890327187533217817188973696565285219305555762859509827140137675470450794962526777303774356451669298155599497415813254255488665666697313884204485225415174863455733694621772574208533884008342386594044115894268862345090641545015039843368952441891144327407956454005034524086990649011581678285427560620157817870134897886238328530946994965088225111018747060183322477000265848055754669113870158409158038113371876979490946247326361690007124842142200076192842518499906561707618941623019506653683034657171353252216651836186899093568209728012602144108956988428265518097650240122738166585157215904233701743079778995766258127879829766985896281734457571859519928216213014378288341222325854241472589763271059201294732195384909394376720542593551144151708330716295064866570824518717963622169157568462185272278963218699505564188808773746624532217474839873883499318448518271874143649813036000603650186074177621076251014515765233167642968182603594124415049650245140082010097882871498891617460224262948136556180509486495000235123105976811627126864320132377109320874124849544877921980283320931693444931942012284477003334646511048540850893116899398055286106958235054543475335475108829702403890828916062442913309302313788598466049876619861304528976050933261729668542712722306022393913205539786530859857355282157811091375703118817519758932599804918947151169116750385366676690380271921595238159089093187921519806935787611855085886467742126506418614074692862298759416260867573480288917483440339099754413800472807555323286335332132425179641718434277386567450769250713679420714209973439241269902052690501054242795454220842011924582351350205398204271305293430695287590301849106320311756192846142419419973984326172430007924632470395184028425172177123352253653644257268525120181624418454329596416319372102591037633046240987760092928539255861363798715215544370460709540962518929210190337613148216985423602530410983557248501600348137528899814188336067695985832818447529530544014455764837897443231274392222383425082144309232477490174314649487953976211657661067882585520229277869042124350213294698485208322547738100687021672124035820252740365499512029371783175776753277149234768859319260584006783594259583912096859816996581955773872920214815232634564508242852412014623054152122976096189093854592962217792949780283694271783597532607800365191325565675547583795244510697224510484292345497810733361799286085630105183916937670963699769645209101507737292585858843874809816564370209332650842013373429206453902553201934699928570152278126902422850539821126863507061880282284629647080116732665867289686777635436778727503032489076323621100293204664768348166878531746812941233860807885238783051292597942319737562507156793845132346967207554596750258048249702541374087724513666729488745453902865808416464042131499940196240856544587623851557105497735776544439840330207409261963577740684973994431297034206289575857704297440890210783346606853429768230988643960797312805761927780819924068887115748844704393408870243894952123089395317129673552151021966154061945065181102602666102973092866538258108160887516747340699680952021049031984402729940677996985141024644972208024353118843225190279290883285509312778555252879394250615181786481751552808650126079876740128796283252823965722182585837671590597217853402783599815062016187758290185726342143519796380722600029282419188672223126826078567560618425539773868957622834666240926184050875573797230666390640345422781595246563861247707231797063171646816088499330808799259059009448319015375895826793875978046756365610283702063464687871004906205943345494106594262429752569240238233017079741699132595707983348962139025607086358061334558845268045360511302587723694288344877849644742637637291447964398395085290002655636735278988914840517037941042523424171288088042118030067968822132951483234295012738797405929139644429877183421608354267550789854132893821100248667766337256522325005190908790067601549891306460876809055081232914255258747591014910936474266495738628685086680737122670296076526860441884465335220411597433019045299149032652662366228615386132712664957083078919817086314490135961832487330540680276378009582253423877027202355068986774749726085263491156626112568360336570741687581363441007079900672518916062153585069544922118600840483663697017154310365699521341532136366787527379426606754160837503243061137769865182599799216844494256573006718687380160342548082598669926600191852610775219845214620108101315133677232216992544580538135241941330570094330553731928500145749078216930267501360539668986703603483209262775541552689106406602835070900967910766846599243040124478130124974325662459898385218324410798626156976214206471727708297248578171179494528397638313132248906598565462053417405868819840460719978776034748791430381719682419242202114629912227046342543051431415862883595072592360801181782257221364299653230600053175391141080245627249434227250809773940653980078821152189751273329255622758480757712286742342133862376269193362930854226928084702907267523436987704431959823004224314828162238407275095646085941176763813310928468792261725197740971390614230920366278770799954939322834917888655740300073916725222701680580580072245709986240060823002848847739453560609289574369232636077398595385738835914707203245438405126468155066203299263824768532379562503527905585422407764888621738500266930949019196882984721354812770957458072450962556348210802465493192396984187405077547147897413417825429465153098175409101990473504246619161343588159404544832955137606221085185679147835432201697011330559242313397943933405957100878655800842069284850190758418999994951661531645563207736943248015971520324935720931962726408769088735393216294307948913933472590767460171967121438645629764945796980548425075319690324629610992377696451252665847666514050772620431930233582950896672941390763657999026573468498299715867790600743665152322136540663786604444461136176645862085894338700369783130348466727714686999227320592588522118082238958784941766914260256545536721557369652512820082674417138300755876973438488292006524946716945478105526045672882589953796335079332209236424636506626666459858286462283744374196168333474421819559801879942917788997012397219129672916162456662464505804472170798189035098278028346517033048701633144467901676593447332364619371630924420128456123740757615565949487500974789018300613172913239282356013089455526142619897898784457493826367294208852000734933701732304967636446682073198817820086381610221881091325915972485306310438572169603776029517526745655746762802178693838901450391148236665712961676968829849655272554900522401629335226617554325041869281021290874284175481875568821446782040389498212209070334396528024554237759858612971149535461247643667842319430146849398638840697596884146277895329563993230089638333010922086732210340075104923222354946070108546328707003901777185382920142746808524221228259116214023838342265136730644377360154429390327667006011335276833171044468469045111972969211693449793276344636340310658168587200846789504623852704268356337362775734263361564765032095992029497143269970194138428775632266961731685445643843965341844376156915817789526009039260346122199825794187552216059439966300253256994917896003383804071158837615320350456915104736922909756670692309618758333819067856975870691339271165430339815713623442642770727151157520614391406655172252408707209782033131379039559646422750268096484930072903129060792411401045107634695408988817628536580681391201966863730450766574554925625231060470259935327825818030597496760845030739211431697647676451970001627610314627266880721570210064554447852508162868828708309023075591745185845882596209895254220316999354827645379619867797697117115475970269446449297938326956838906095863476816574009113969738437850837451623517046811306957946603279528904835746511609566579499583141419893112730802271033469193853439652923419013145738906683846581429678580282728481367981456881250524401892693706945574062543050877638497341473365265511760316496197077227597278541293909191692882358987250588887490722214724493698153578443294704756156924470061869146528881292549526197098057450417718453501069060385260225422428980978113067596210392894252095399206776583673904712937380847097767575357443728571963567499948820423646326793480979277776815974793095555311816286504727275451469432916480700263830372237293787943909750261102138777173912532858893146724968887657864778780654890309334158193520536914301958725950118271182135056943366556497721455396543181998278948981377774429944611468183281261228620010709876523855451398391474763662060749704848562651996996964397493607254670532553132380976147556129052990834827495185142850009841147906373389060097638620245790590701913532184838383712247174437977684331134792069841593996793023163909100033214998563132590774260436284198685100459930646462410425134028808996923201781833134416085568991104596661089103877454405061728488778811982121497041248414548559530048264593439997702630615900334535556055958063871143979269995277522498665633748629710342014980721890243643093984673031755268831880624375852911652602518705476651329876003214600848909920518604181092568724995139584737081790434191679803999811107463600060144143861112970200127429922287970190582547470234699743762798168375629089112975556132433882874450331510658637847769233819505174057066647973925047664125443489384090478386111781825722994098806277538211991700053474016305030327667551200617912123141559252256709931849530236795208175005034290076329502902256635921095010424528403557691735721980095358001202480703380392038757974950011704795941407220045948101418150465423698034855488604982927797998274610056140544140995105870785678163287126023395517563904769946367159460293490040077608244407545269838032770998574418874990832997037412063916636400795730746991365594099349279894629177625754080286090287226061574439600277681253647780829371723008583107677706013885505522139932427539465081257455880670622955709274876370544751502989157800115479386952625677801006684147594058649249538335664597116315045663426806043297748978131564903966486514291380459682074134265420671763400384835215872500503051436313057488969521940695998939335872815073835465779743550113169861766571335211579443963440617120845340129372166386815549844965077863011856660799403299129355998486456507850102258938977680159958895432541037284164546914441007129633031852945451487598434066434332174732620557680670396406931460504243558017665935378888692752284976007368354273041464028040843923355763231893209974753501071426936242659800920155183863283440574705478221158076365669680291040221157271150386639614557706226295513576300756696521105595165027253456830967603697255148217352422945334190263498619030807595327300751017312751010057447468463574632152265857250030497161640430971928392529179878111720087795327638855570580045467528096610345719298881824151791029259411277564684411145616096127052860645206335226216785966229296289140921037239365142446894425414751774465318729258144593208345456724490927381364570215503362406655307051843906848259657681904883683236724347840990650209526675459942966616083467623939756106870836217481850630744202376414217140088497869670886459771542761856009471799747760419140944771289285804121144898569672133969696585080032304252595180799648571946756192949663362707628239407708381137328819554600278315968153732572828009602454288732710780025184587731835560310206480813788432923098979987434036574094501917613577181271601755340390332779639681164109172268696005039160172274786848783521367437144330955080664311824153699142583896565755687961404241164769888499464796699816717366366074225167879240575188552041441634256702853292819564527508085215466219858499968595410175358942932601392993705988450550133719630505483103027382197159917469950541107298931142693999129298963497926179723121443585180596281951169038965554676816274750873489707076444084673988623090318046072722602289179370330467157188317276992751815479224186136760134512109430279735140789138671319570309011593763761559609286057775498636536304781388319642565007838714100946947888354025665948896966219795613242034108412344507096488051305554355848578352461568409576295966497299094695583228069486896202838962270228158439661571351203021887766355607837039185800858431639246191775499803361254984829898080739862158916651231271898511581252425148233471555333665976307776929350891307388050935449687550256830659437492329793992353017189391425360062256453663717261330212052397697651590489255724449528559865470400885032681480426754829936739970352518332988299288470930131931005894798328921327152041309262673330186938394774468648377866272111128352948182762441903160393717859530610851892848056294632233800750722623666468318671709661089066283049266050868282537543992567094770363187084028835301061439984660377892294286482984740543665699542101825353227471228586206551024546261045736686239567277061014831818480549636971483073347236329207532319363892543030746067409847337974449925447198920208313068688508981553610827160503817939096342456190030410306224381089456583291336311592327548661667736818018518786782952507634848407703243067740447700667000480170524345166494659361754240558979860354663254470355425182729001196229592592929124185934933807235315885468705946698262856901519495594400413323687472277466818082062303627832749434915583543176315474097812419480348727901308783315401555508938249418590380145351811082124827701067772259307878687141333347966010569108303920025310136125264399048447236696738116049603025059223291528255555036127868222776175591900308789159794096769509721193282542198931936306670331267741829687374794685570807101433089767138448657350176828256933103032093710907340518177728403451971554124091606835225641712580474977989979544520700411269563384663040960076757779774516267145227684444666011904435718437323216921776938228428282539808906322697679987401707577792699031334975745174691923184102300134975420290936042768319050614074675500178592424991483409885797255917196892004459801202085977786750825501445345372986288322197029339160339442471561572101388003995722594792229815430473495430876172323186762162419235867497771351024770736259753586100957804575506892774672009555910373699131421148804885750713676235167133087483578625424756332867527501098271686180866606750748761007364854391997867395093622573616649942801665766955709251405639801610665545220348815493421406042746696090552954524869791898877050181358453053729349281707649104327931022084319322030952701650864666786472937784871936100956300479006996303572052497851401437768837239553118945252315677910049777597018487640007538729191994557015780094448446745340477598392448114804943435518542872900948320206137022760883569295380313565559900736879408760931521987696383895138620911073507903736485779490636878175439616857082186292793988722520873161720916041167756118698113546306190861231905065349429953080742575799349920669991375286449517089345376241660464974809749203565433629116107957177071758031599907102491184671945952983041906607427838369775090401603107992227740424574508452163818386104720702597102960424906637414535157167244518802847399511749718019625123406464141193349741432489727713218548608049507330351644486808844561317327278167179052113594168735876619067390870834735621757396049547931564022662280462042514663724783694151270767799092380410327852143720420802431276120885861373735449719967246261012116705305877497211878662376568976756956096335263783329277589778783543101632087342580994672248774232705874312163450041600727118531676425410599754101268592081364129120148962127921186458063341857931729828927112782874756138213641765783168092200393921577613302854936583958990724745683837631211341301664735721376980597176855965435502297681154992537211119883222334357579949902853862336284344095704626257325551757255787831421169883967758819849054985108948181573252431922001140078283021422121586273392592452930604881539778261315499388408714505851750937375475803126956917494374228788190067151603419244886634456018190180879316095622218573706991211958066474382196932445082589248091142335187011711465701876058155230632184559438736308617313078070392426984687562155451967009474188537169740351443383982297985342285803678553561591218738071615865079743084453762793808018082303877559095048493279145041271865345721338746662871256097912787209633358419690708055914518394525977492674038389547302827581513594500147655401951517578197303866173829235551186075181291613012495244600560120978653515238414939911789258082442445046967202621331380632637857257225949481125110247449327030442615975890169408306302674932875028742834467710524880211732437804605367483635218704337203300893094377975022008313953692045801299028314037429405211294586489526898083309666643338084714456333154484597424090540887293402648003695543613484191844209569817281845785316571570189796732496806477311346993998306627483560076221061321330388846237535372528976271709374072997816816352323534206553627265190159738575849230035669940398348407688699757270146446491504607159297230897729472854154686860717995927322050427276765521313056127044291780791291888649681743626885044752327307771643525666671376661126996801966220626086915871517791634018490376520839946278274226231266655967470076387153254656621671182837240606993839308950756464891882965731778308989469336878666920574323370111354310807294916403430161194270395248354625200511935763217951329043142681522441386338721038482811537686500441884306270731886124507717974343301599389186495023339504461371259547420674865552826439771139941445720153076536221716817876938297673846735376343322328702741981551971352173602229856072100244653275355218101704339152834510358872222269227378665245562301787902125073313667448724272353055439529719532487795001765633515121262176694839726300473462479411871820418819048788029840097793243130485698292117047919895595826219413446193599640716055233748879782548855336061373316534567910189608081701496163683598129826339747781900087159292026843935653451248919606886339806156268697740142593053962151427128153104385385717298352193080638978486483245843049165192360885151768480144229994324451396590086951730701040259210076108041787480507490756129111262993018039035502517420408752938156770925026784629835603917189080941005321970169064659305139574642954447462784187044649381478331442350583767928502915110013510746574000759572481853980162180369465086493081891346124653043943494258520977059467908025050918122244627913563654985979433172652169314901807873127594553178525416644132580534686346429553832047907286463519190287910839039243813356510226498942614733687877288208865437807608128851366225536474113590492911114035623559904835452564489551956429285452721489824876330055970280510102951655724774465107071751998895233568439915343644490589339948142961402819897814198219318438600504910560246045987927129823643596436477603014977279113529810850626098713983469300895000353985135356394983957780888218682307627557954326296500443263786763017367539332292904975362529026980541741701461154944848763566342052402187533949917219213956548257818087532450457741941020357845763043196189296341561719214808587818619805148651615343304639664752798837955940742734651703023489368874477613965999219085828221992251171351413972546124004812730560592583511397601076180228849483022504506713765871624656307698835883874802507975747693906152790694029980758611590576834492960820231464688095592313420427393438850725064819914358591714931772041441795489176117437974260853215817352035421342762011895386554073911631531633634851197699602804304038917212569162330280853483592942655287090737557393269778304841909461620263435702874679021807082850556549600456368422990595574319732666711093973176350407607935777769851613293614482796638209251180705826716973805443146334534092872971239079837560087509140589903385768166314001278397583016520723784685075350941900739119851926096734457334058852207849443656807959148511106944450399193821077619565183943991340350395346540416264696316725857273938170950720638801025657728851396564586718076213931790136848747709826847614652828153661261105797041397409697947427438336204931936817776062793490116380890246746167071961297783213911984159510596244981157206274133406801920136360363136790353942917634524045061456707754442360545984261165475687084141410881205384493435314105618775116653093923009457781955846127837428314481700676129641000333139313266600936422527416293447183499234299299820723691952528280426986915017080477471261002462390068159835443799470112730806531399397257795376110454082302281202674922594344460216084534184611179752080854970568652535255783819794079770767505348497806713403948193057413437464612980616809786976654014296903684019895136441986716134674182865423386827536760835682351428478539464015492379777676966906258874951920320278612088809819885380731488032967893290642146734008610365963826077692373629753824164130201700471946393888670290181093216330505521152411449239899339850518073178283218664986200709560898063748933432488018429240772441177313694751796954381642775369427129239186862406616233985921469055637858921210431554488013418047739376594561789117838111634341507176190526863464431345019946113321255253494787132152751021740407213933982085318383171289764614583860564058813008151494353842130235182555473127456316824789677176613481012794380387692522577414593206805307160840610049537991898335988536209476541761324624946572193758127442291442766243397033210361757560665277906021529007290729624411374607881854313252909703117723365181914784291087396161206536212060500814238214199205864645432708439403752831123719787955579300505772690620078203808452718550056331949735281727362549049517252787441843166589448126404287257957904640979641189047395227808861486827250252443431756313806258737236637665902170339058644534118514862229140635009930260511192309509599059043277110501157112230796028304057130976938635101803912334160354806026889122717761724997552413836232195572720405922294219262544056950444283963334893378568303776993305952259173640460228860035011906977918910407229394853795618377600680116510606014779140584618105676088556368771179651558480342147063643507078015790116320585333265440266964059764832446811848939306401203478204318571174548228190156978993141078713307579996070332600446393850982368599851699113181732359774877512279310091494703879223079517411623622652872787974274721688264615083065336885767577142933019780216255352391352814771837272837063797527060335785732718720545540622531031374996023983796330966362303609040157781370616375619078487690331473526201002987047508555818366489422803982293579825111819229995179785382405581293660151708501416208398342887087827092865683432138067434466343468514217921070793795202749379588355993973843587515655705102538136077750862827304196985695982162046373804365258655430444647360538905223641083920350903517422619221612459900040178096194953773949076504546383842187344914207886974712044415551604846416959506697864196665248098624748518309254757172788416073047990538017262214182872915518099637379425164756998912118974775156773813450987215256715342186028217099833434202641350707817812963673850117679272804949849329343648434209657607424377649006657338110055656197983678955930602557527565627320745706691456460234816104899313557885262755439318514534878526719775808676338954539300975100302099242616575719392701991272876301219911879188206962055488833453302585389549013635681020635805432941911371736523060364782830533617330346004611946254547676037818137722559645852031496613037138683803656484773103862359307288184348093635469625321550233483544385390128920795357382967343700271485574949907894665933198239799339287058104178627055621550752032692563890245606145366828018840547724453906750653464997461573224560216264595205397629204461717443830535718244854248163768812106229299351009597190131592674167591194118229803431857602502965213586066450487472437983524838449117994194064780648098415416578130170650100388920589215613405983376089104677775559653861588015351499913271055413088151375468660029049324081601501794931940533004522245923963170967695332954083390093191740149076096163023342503823286750355089699350685671764233955612169025885273900077577896992897778024084757543559035772780355432539686094531418729898731698170183110237205754078454223452786046810542104073837795580252079636715478122488193852043874403520355720541163478522991623791317600948588527220167673625214940307414340254713210723078295107921354454499371766914688827027466048237793366803977105321296804300293798722681848232683682524635033221147633854927179387777194477591391210943594012492891212866444375736609170125436603049282818383587286377744907287699347383983035712536138329013769086912787105155990341666957667954404519968872586357575529097935702193916284099078063630116490764668050143034107885073023761198279312897227106279780497685236073725431069946927468350578619275292324851256590897513251966287824750411874197743753033928476072994416583778157493993903203929357088443687299079448382488615758790429462716285503044459505030605446609305547913712180088430262104412025641101240687209032542196193363257168168810831607691360309943096609730640951931799893546694515038346680544401611154268060628363198605096857910084600345123074531722508325044555929164559798307274041221090662378837011605187257425546420443362041678776008210332347851318927785799909053511739966523549796722402131522558084785493461803939075572932955388161286861995638414267048219785156967423521326897447203085675651092708675458051445623441580430805446406998476075437114245548424138596231198444231062677457544033929040340518857069839560169981487965734433414159096014897991427333594646328275583509721436583827493664174896720227744981573801771702707156295078877691752134293203496601996621741214113073824650199001714159611885183575089084967201907044737914126228229065408960046491418817761622818183751425757863040588637894053045079441850005028156278058738930393372826749134252309407207623617538187958254294196857450647207192825497304478830810253341295386953801733661822000540451873766169579404477499819430039800920758355919750562579628794835086777053868881216799905353396928154037516574934780210572498809152664297475288544276638599048054683685600637971280386453816901099113328347304810271233401307245442417499180679527683458170460482132368784940428887803726267008102658431452309390459525944791832459933720109138357337536164729287382147616052169202969005990206694158533522002421184313096139144257405894804290005159481716758977363208741977677964072880293745703810941044290565189534421879372949973356104809931150101700937815389834519106910055588885350219643156104009463785155310087750502120952608768913873926183784020463319710040119218149355730909306350765169343902351552210039036928351478148426554258873948050757894462254550543924787210625545268835768433634241760124876305149587730912990390913601615844736210504208053304798592918064135641085219923445599342457354005869080920117392242208039633210094097134008363594196655985449275847548733643003253957490639343499336702564048033668513781669915003307119058154866319155276946997991497018725427112171409864635126742432739358584903012042937537189869318160993680267865522171861337446549451919918765113575279109019285661545516902194359993534097844976799158709979101291985438936022215562566870159466902885578994331179131340421837341715300001945555797191130302745009962050463639996767933548383270788779840730983469213261528898762919232324713904900099608494359964167217200972309079716475431592958555954977976940833567733568861690083537009778543361891582643004158773602692563455003617304358469510304297633405837185108433530866699865169779885051995077021280382261716981415569017190838989421135928715153053115613621216951718285772273061575889256063391856986255424738003422248813456268786658490612189747086169698574226506026249592625101636322922949292956897515569063976492690938357411589583758447390881658780410345425372274464180022610252764186383292333095562231712400303913851086046999367079145649242651168916201566437653627319637682039509859901159959611981565658453672325309962548730087094965488674591794547886194922704903127172295136820790137882778420284289174644381028330526814002176287254297026594760658780384034431215295239424725122268553541704162932408820670576721207146582053739417637480294098830933118662621735544541091056435415122725096392046090756789895777208935749971577709292432082234453071697746565775786490336994175154127448677861361646197313974550478041518169495066778597621627519229040526211888834906676485527360110585651539561001252266390472477514318509457413287239055373869759951962081821811425743199103131393861655014220723963607155797167702022365348436563759447701379272708539943960145481550235993093889764123171177093912414444899270117430674028540023940191339811224038332246812545829936051224358780121720393765502665669489408911770144515783676453464857575737706452779597278095098731087744523548918628330577046952667715008848599798811022464603448918301234111079290630491408008827419630125127121248796200385211590948356339856801925422691380929833342812063417133160787922083238778431998649186473321000181640741016532745362689635633604939109148291917843852646133350385252939544628726829949148746255544446552310948908206940323637276188864908334175491199164590963112967943447187733994990754576379234022121604603269421015816566582603833844747109708665938485269934433928961842178369879511561495616867046204825683992492547082571202249724637473616778829672252024121212185664649405785198868400057347575976634048038746342827963902361405516039702487242042876781707033204866295188658315080983144205303174607327146722136288999014828642843717580193569311113671271038174142956850232355850116987043928366936906832435640341507040018614717489340305986010825684506130122840385937738094798699739472474588709162738080329421793901489657458347142726353785810610286836855364223359311745982695122424211241197654278484350228528205253140980652621663164174148079831696564438103600658199056650647906179850926220875015504771127958127642263970428472242853529230304928022546496851902786406495418180185294523571820864478096884137678974096525486918825361925496840967404544084948269213649114286608982293363623727749672924826686945837296988285762159335509831081904250957499797183792886252285453289972521509437331911267055673993149620186441621675739631336448527809385677616663872586324983998176927831127616125479473422745912122911512164977454166384937859735255941230861966120994823740117874706687601616919042771781196786964386047337530996773886519910560901090223894620392558943655215122709235218721138097785010695844144724991767593214019661427550285434145581522094981661259565802089967250261096846044551234150969812930972789244010423168778782553072882723546676915407079143885240355285825980765593667965080744180069916187821598596599875683013376813607864082465221750740380809480402381069859033915065872250220108838978545784566847752269403320591285410715393407310029757723779607252174668744120021844262271889564975260498991642794834032131653056068693788905583278209738620479409251727741188749544656763664363256134766818298236965151111725064080043419960622926210244625340653926300839284600456968509047647914808216158216407312772820179775663281266045388965264174526970609087535074216793004513426257012335099541355420732755681333765814679966285470587735531306665463558263517998881613302610792162872226626216347327740570739379410886394635275330785884726149769860431356849999820878990755472338279552455016483778973907246085552472607338409623997713105106701709135028654667829681381375227850292614678620535656288438364447212800133792949783529239388788008114135267223452189888388286290352901497620945712874053795979775563332848140333127687401506545629319486614413355749637705982018836711753532545957250059928574921036347799880674180441774746140214644952351138460245418878524766580251797091192586736947806604925088521722716105690797631387978537484652126119274006590317875827135991267236148641790254782348406387644016146904708713247964880268923502881419898265336918968092571896850277460729181809413296444226767169756742576703890088059198405957720217870902288227197997281889405351398744004014449925791801725961735337168829593260774178648271513666985701566643344663509971074028370206535653319654046553822280634200771556055517902180062303366575288879934946878025148711566942417288812559338785768309849245357993200221016030907979690886571985488990249772800578697565913212522285756643000254411432701925960531458868327409660661903398520329297723481408129450533182214394704368377280390892835968069467022694973970384316625203558595741866754132774390566209799490740237397014364185939533427539281215097358165945302671626650144019616039759855902427750858547199110873752983898256493415098042119725013269027394785062848376582357903007456001966853920209288974324902474337548810137863228793400577116725018475701631250473195652205811894176833543761243811410657616475704734675374076564355197244403652967386696470718269349610642499397964424231852158784126345463672281796520601742042638692484779724402132723851884654334238166043504293559860596850353344088069097306860179171231766171083665094034881829799257675581611034886792862266684888749082724133671681762539911755176372545784922563986523509971011278525648950766940130494914566690908038016524967252135899311470652312310005394352335928321306807331030491264759469910540519203605407080478873388017546724447162872209450841824269249762503262995426113009753304220427037178166414701590665432661752808941628821719224379000691845658594075405758992320176011646117709029180157113167670873091208157156582519374737479269423511202105016492264698416836932371690177229367685081558673492690780276462587607507295909879625249679923390540040885748533069960797439653302470390479384833472237774842247328870171835910719760421651789531320528281012045681977465932122289614251481967031240232156072973844998919419302364321981552150290816601773810472322822840453280997545185873096835695258007143533174815746008116890396213118417319843223849156210336240290207487846771029613066076876975830156118729489278547271202349364521966360454733544884397770803860879811361780693130090373583066818081497280976896382312948494901743078292151025075261198030441405044935738618593719057633414969927582393894633217187169492280765141338451273437908201292660670464298409548036062499567404090634670820291945775762431697493513632523710902298769648357685789056059697421140949747666557282053838274209509243478319408952420089173024346413867698959814134334694085427163228359695569895762592581233338505036830549314938872432079547994595675738563422460111107141205811484212754132569891342646428101499718243543315958999424962288950376244438784416078525241064918916847271254692866711912301570526840602222436028139947884536917811643574277216427656011033864451099561221532647018506311043474928936703098285308442333437056709741746216970220012840836082719794142698932723623083981885503840956213384674469264377066698017719829653900586631966028071458650281323805368425523123830953367354098449650333913109026110804073227741202937363293894041221105071444732344769928754691643788683270211835014275011803545430529413186221033837525179549279313218134887859958002620582009527610228530945183841195558840116358792543362556153109228617401890268308974539019758296470280501837312475295470358886562180632008970782813111093326641880256589994880509504574087595696571622743995149464670719003537083225676144949872163687846873503741920314627402888497602967953031103790708877124642407348386067818503509351354518044537047050828779323312273870249817581802100507248904455924888669443464768242671944144644226983857811883367399088406286077683445067094755840306154656159778183542601738065191839894962507740372672998221399818862053611183952268100844814388862164892309789213608992485211579446650849110045615373573380447531112640619424307137561465377671844601385799797365185067218453686832248712560445514360319103082929417454427246879115018988464474583018204959862601784616963949084004011738465739669102729424274053343440236218446517864786599462812335585662190448497623671002816182792766639542133352260760355732955941256143615235313190750511928943045845373865466423108502152358607457683149665963902541264058677340536074275455785766721372520644979651609495733083957708634729194888689244120825442636056007861721561630612824122190402078627332226433437614231709987464195225683542700990091147320876657514455143113679794061778177796534281630137719178999242378847727734410588222043674054238415738640707096893468104726105125333165047750621344960799246711486910807334102462247642665603468046121167539546814735192875006805783224985624195069087552073640546901231449167798442754023038985007910380741670947256173205282935847418539851995532478798756060967084757783149678703370787613487853388903123644133019343881146879236000972397025561563232166318950946708085046977631606770360327804642768908069913484714233086558898778648813749533835094855491135813523859038768320988856598150343278640584099267902445561892237204174717178569473675132137909145725566621765488384332932494317516432395783058306581941795852130854741188392809430273338844215487844307261224489062558542633834476459746208755443529207069304272273229231717582347595464926597584737202887289985085262703212623979349207585422975581469686265061145835886479752764106135090812917884329231440555293729427175235890401545417501206518441500094702169391727062389727859781220237033791598299886867104647693308442474827244312084578051725783778909829255628556808541808651329406752406293348664513319833436358790649983895495212013536132790259830293838358539833222357979914683380655594531183545281086410178316367431147728418811640085273812175667658332463570633671210078795014339116700826892302153143397007433361991772624501136690711153088569238100397867787710750611724773845299490698584805102162033221162256370817071685203849679053725063790805419147140868886173061235629845691760900075266837130013162254328872660665613237458994291678421911296169170584056687988348204529301332328044243488729709687185680199303289428295683670688433536693637113368281334244883091760007535433048878207221809197834567569131881413173101867279771369231667215598930823695994884331391578950454301950820216154949912675993175180481655158811854969784318272819495192813258443729522886837884399455941978829928047435837023412026273608714325690066394392801265177554878250206441696242472391898156262950244881516393847788923378314504434824298909474949367357332417979293081396922246595988918544547085475508450165908239188051087242794743532283927684620420890497628314613454068411963930671326964308350868142123489840580380179649094923255301097386793826991567678292954412043752031895029986448303596833438400411854072862550460268545092808581356777145204110359036798009547164637139087376982327036810461244999606046480109099443241777061156755680435867884055523929513784716687724971888118413361769675799907204193100994559925289875383944868870429682069396103960995326779246998382354194029746516565321790052177546383142421463245187472088114004700779498883224597843316323411754171689034857952317915512309666627602655148617242312249187966960837506346788256364592622502170315971628197133772041973154239416999284770996108592713348630887143295878824506581487609282503695947895572357412995786912723678727024572775422081732930667435507884468757770164116131863527248445144831699080534976658249614308206734274121940272660300891551549420743018313269513780573857826079676833706077705077776699615688708327540092814549821124525836953507281798274473450619725493353521981545054195479036764052890733499246660271359286881411070721616385839840167695693118656960105453385437732048616991606136714353263608096951817859669032909125523334676580208119513466334677841832920499452058815927961366050149658127744606736226614881493752032311220128379658618597498740277582762829445300185235790174590376771016670392351735753028109902340688831700472240889831917822392012635240139101482439158896175379849058001337826500436127414398007167627734190747689652001232416971929796321781503094338878511348774340522771288743762217430209581653658378580422153799571424008255344642676878199050968542986913098326288887514155232189114902384874125351994370038450693033489164862524063961448224587319772746544225894612787490507926375754288170872803435039299210805761546071619198801921527935549945680959917038883172123990445073638008965272697783114390370719464147478459829041315954739217163935516395417017491855894931400910856875547242136630500223420003737639419419601323526176300459813170612851705242386275944686605503704596882456730765944700075454249920648335369928086388522204215307797515487215387459328089664135384550434648912401950841175507424180021110351372545797998823861723415410991728132268247611007207242620573284432823031897827018171495279717230921241235686801135972305021687467031443478429387810226911935836032852600236758101623670187107055184967954812863290849644716056936419839174143811799810721308370483869544361387045512611152915254288187552886132079354635784585681697432713415576176864481369741094561382461119804056023699358872737219537520833636411909674127713044694180589723029766471132922023439476332277690994583729144442450648973467535239444655699342835703370787743810165356361819918662675219035704516220417509652605788397488758290542637508710173641764747498871817662434428000917614430998184791194410939817717404510278351346465485200445955033346667802982115618634753988245557427121725695884905171973995162248029720238796799656193400541315272872172278045964061477304844459790087132399519872717459322699078316789153185478990639838327474914307800766131022323569536016669226254648744189722650544821930720880027580486932955339244252431253536745488147699934180226558275926213058727824703622840568761925389562222142185217913516247153890161553863076292194280781127986827139599545226583548183219311418774652684517609976066720541227263819426375834259280292069467988969648715654189793520619811972644879637677423917426834828910976010086529407441117965164346611601255844989810480675691188818820663594551605818844009168239256122476885318416527864335729239646471820146799148715792680342855574593801558364929715971213304759193388850528965000410300385682876210739829530164130785284057029952799136511801190505734635687370398267417113927326191411400627727044978890605144236797536414492866939118729184192095661873072639471197779410013074908406514243277303031944243869037513942903170274511306577832375110064166510722056955889404738670217485805539002530979455956644704541091553405277363475199823687129618061898431128433902072160200466688211308376107478553950308447937010909803295070167036367057054583086127632816752533096403595002405974047438745404374297314581954469007247501103900696997372803457930955046314194371091815471928321943821220662841628123791684804314173064627630451636054341484116079006615487798684319843337508747311271339011062688072099306329448208447785202675578434921064159560394529348180641176988802067246431097216213258148776428418749040586302701117268949695843332672185904116386484900749034755333322785142645316087556993334051986050718252320120023579413776812171045413753559979159268366045382929522897266367202279602753686952378603958926172738786111890560462716963493618631835612573089139312104922719299814862435398258735633131713981732100331071585551988285706779338818309283561630486700693605301219434140733746466091923933730765740189331989592096042359730398671530989183850737003700027842373379782242203198972109322429260950218040146471793874318719550040907950034206773742931152790154464143955777823490701352707420000291355791393051680833288708985598525478120854175235638840289081492878072013539002452014927804843493101710892183322656541996857605326964776024191197274701116819383618523486118491844688296163329602470791514520094157421099547217943688616944769194654819018108200341440452256379586831395397043262497436703505328984118854900548161776833016043809482582547385816673224626484404459859487801381058921406691372634795113936115299656212716237231906379615619353674633790793973057787608764181477662399915157319066881099087217439172089792789552127976849922771197708254478352618122448664324615890250819658458035032373375686561179513908091835083051463905776469145226304053931673276390994719681829417064485074719868939291073360054967389398913289498882439273188137795158659877979736691842817044347467638343428521544139228610167487370643812345574059499371288082615011631197665031562937431796821247314229882042549803532788921261825312416716035575512325242794940983253316496692941320530591886171085229538484598897896042260201401919376471268366885063330589360550777364603045048170496537795738913089745920149288572284603645811255285587124385076455083368743068781270373683344930942513555835724759400974450567153363160246576045681958350078331483662511412785562462374885883573374010143297507359659981614384755871209963904231560986741173474797555202292921482711625580262685444317620252657744780203377539133143974384865468815102715162167206404166755953469832884001767225946159977426790109829528422784230631327531987457640243595759161442747984890783863490176059559995316925583960227773418502258850630200300032858385140883610186702643989664880660280661069747613943430758232425533945223198013267773349798955029701792355836050442899173932613824603524928265205061871072925951504558532065824479326654469633025817608064404150645569675986645376982005057607210974949056038990119995505881732445243114297452373832769935928689680696446543547774879663920815191597587226830614590840812264718497042779628795556677434978683426785814937446843286912539807807430741826143532672689768776751707051158303199594858721987403715265971053542966507934862962071537096761572289968825686222443698277526066814914502924833828339534267450244918715153995831558358221245461018264589159255803949290222311143429585219986755859605841684389651057996482307427085780342609794003250600969138265395798745589350625568332906245429895662076730003039290853010348859852401797908525538413852481773563900072996155356977855568904064059546303340859646203302077322201168549142775370193164767298574754443126535837598457446546202523233421728959068660241577960857429078073741437502071338741948892826502464136147173200760311809024959875932864857160365398348140200474374421432928424278866094554832423095711761356375925947479087076755836158032826982365251286536058553181492127019998665595189012994222015845140885077552643357306634396603314033604062113469163108392104885310175491070679682119666442046464280493142959828035695511759225459068155068990776665713535514831808926015599645934597900415203637119359155394169444428987019258186088873400843831098627912367582648458042458806766702035043360749441233713940281827337288028031236400149252050144805308235428766646546677632300395182936423302565060638947089314231157359289007446451681479397219488503803626764952649204323959351176080353591726792266178286956118470452130662491161834621773820216957431554298964300781917590148933457909887619401895355858761330250969972129225856321471420040765401795541876617952796457549473696824300403309354308229105729579247054203270441591979321676500039242341661604283543249590588902651084635459626594170435192482120290608957024102312823600773958284643774027436932379924886244438720253611717049352989864686376601446764629142302711551226914340168092371048333980528926755991816330844402735933468732643463456634681924404521750847034689584624936620705891303554276502220631946960766961684531853215313988857204474124062690004680518872020455889752361464244699362482936237885734137401576533205520542167037155301531849477371687944156335460851045305488163969706302156929895505381529623243110511545006594569210123671272298343990539577826789132013478545747110437912358936734018026672403327101392617334779937082859380441467751369356804575048120719625571490912712345026885349036131100540268550517072972095943569469745321657774217044763361059697394975520043662076513857197265643093546713198636078419800932957740399072236012714310321809869089783245210270140401350684353930673103180227813664790562274180110188699117221102041156277248480181519130728217143821464491063575117377924934486081001022569406058653060880187780158507004684500734988331673486789080182572120223142751665918684825232558012456126542249812985984819302080610994400612196963303592190582609627436383833696114828435948213993272364438807504313791943360257546581801336845746301600332040635008968283716125525528099405191991156833573457930669753152760948210389174634998798280536658661446102342727536550402837660711579785022240594813446627570083104164186788360302871959799526098870178121793999095095899800209829376565853102960815768954949463970166650385901306360569138482145268340705468726080684011411966845165759224066784671953200547480423720359833203253470288354481205845340110375199842794291753281775135049465896625178765851060811652113460104495805079450533949249483520175331085836875373369540607615127633649069008903981311463123752241691986590132990862939189938472023840564172709974347331040861392061450260866955540402884089029757686889108590366177675957025883317256653850474668521075640611887555564893628178070352010889525383898826719650121146571784168965419562380117387661447123006618650257680847021634705946514372418819000005621144417635560908364637767976456056981186143486548321224158673329182290765161111733094660939182055357517744761263360296451655626954060737227285127111811592336636221824760946566620190735753047894637140335187317323752169875673637158556149229929475381550598933060826361202641105404998787217797705481175568144732843367870555140010948354974480037201949385386487105140974009997909423165348181514479982778141120327359264949759921938925607976134327836759762482295936792951882854583006163338976637736088660385500085720217594696214292824521290234034530429824387954923895541943070115551075885418381798473473813196467415150701585478322214363502946724145598563646307959696684647703122914457214638028891171376789747234639318828444021884563423722296161668436953265020547299862733558699204430308007300928990847122770182695623123431488498200431554672916289685379952359297284467982715769705857876859013083810808398288576779927908573071842277700163741605429820183019082138239993579629096266651067590454960386084798781859224376980669540151947378274442827125837393940516357513971793962040051871175020788963869256340291779350956404543960198037836750909868330488014522358233211568525097259214876169026875224673860396814976641210245285025164307048118587879805271460080199389389697821987316826850913344693786078958562760185664166042811652652272095353353428215911793414217908254715300136275510949941756405255463942879705653412282704699604673679193257525088480734964672932851854172432501627569011624837774167649638554857267462235629801150636538242674400152605351960380101425303367444340251184422445912438271956019676132643394706144700856235851922840174348730391690170841229814152179354235174815413746444458457716707007012108934832515325256533840630518647604147644412093430709755448554843722193489027736614900150101973429830058658321257326255034075697494917498096823274170979515739658507814359864473999351449622342506364897108785774937470568063190638754515473306961094159269614111429652002865866668692779018866881541476100274720258415369748648487250752640017336751822117772809878208986867818798044531681298629073710485215642340455968527875443940632455710872940921160889191420721333698769294113571360887805283758808215956754029040906977781867004546572496177827353772404868489543340824781700578181200545732610740454188909620275054903002911478733796910484227800428998214945866362611816428533750912314728205714118339115893219165417274210787831670668888563074446609730002379509007569401169805011516491563760346728214285356174149033852791345699414074473478859465846029220521823085105058714271887654372457786624228516007746207755978753399227294206552668090139184962068137894726778063646382248066306703193618892520269307538449733770937274136290468720995029724186429571348482117634530984819897824947527345145806911697665375435715276281160131768704240414751530724308873975589288938231418077353669687488187669230320140672002046468076044537658330229233751909168517422092917485281427804408268010363816476683741656348544258717578348336583328998863747239037477250653864412342798438025088583107625506546480229166137356372253734224064793816695218989683866969530086639865481254031255758408851088324238233475750578705911726503206658802406683516549585523063332601871879220078857179427892223947558447965409419104580339070442117848717054092141915536392566782102899664363325520251531871401651125821657449844757556993102749857064607399670410536869962765995256976252780502121322720916765344945335321078564036152154382522537356189932566168715184234809765716538177821839845274835085757342538430886650373716946947516810353061939209197763733690958593366215740265953437708126503380024798726774707587936322960317968041393410041584803390625405385883898333873252056436816130044266362068959308612611243207152465324316680545214408790017388169591691163256628475650568729957795492149884094737216081592186551091471852767933303850955936873548651437002995008891315446520469906593976242328328318025006689429146988662628632920693370184111166285107227510201261036929617844979011334106438207335239988368714506973414922648121067426628381033099201145273942898878669125723695815191308713780698340401079015086819684451957207905970993778158565034128931868217119259475270064530115652047259384034253961723025498872806376403199990539131085650454212886194345401189772898833414283825466887126978941937520367600184424794880088282983284089158861852633301177855112116675657624417949687201544346075424983930343788810227876331989023350402439657733070961083631440210540985175866874006835105174995147171677756706633850725583795733398034308847897634026561859259304711381964750808115478588291544342042508346920423745016141485197495254458022451053372964249492529932555365426643272019871581532515456555325505174859255607876604026805719957047005203452325837509496476447545174038695649731685045435174319288102597438628166426198868597911155659218819797445543044807516947919035306544230008652913735652062150478595195567767217573656320560742571155071882803489811908799237122639669262998049112243986993037389836778362676086042770087757420670416576249157711184855116847933600138888374679041639577274638191031503921795848842027596418238364098669325824387629928378332925045226208435523845597228720958727595119628130636139466591034259095143913887744818628452886718311568031844650457777756624046293793600009396752533574572682094691728319596034956186678604115913671907252900163499183540974424832590203098999225757519487323056792069486704901474785643533867127362966683926174408896349687344433880851861662083695759684048507676530267861085543015359003353552690712664771065360156749618705704011201282636855292658837954046499031224146722774211685774814954751376907401025279788933705062099286712914622394270947692171680784508008539874603776501993577892428340650137124994299457923296096006441553002159625096128652388456013142054403768004897555526923477277296915995167741595087387257994898813510450771673629981003383530032522946717844477364808471609895762612154826516325513866944398389888400134939267823049536420397739682468586897669122726901125797377479597953422481430701858150288491843303520457938267835504136061053863695692433683874127271658328667114244603134220829516440032227743960281635509340761794017882767789945581867563625520836800265474339759476671127514060676435230113443649715905381457860309491141912674915584012457694604240842661185940982450505270575390574709880439364520170850563675642048375982854913911825478290886981875698601534454511586681139384276362417819771273257937212179254635471871711133728918189418673643663883637852542959638572526105530533847139977928179887079659817368726883337264704682809372701601691797974618631330040699249427312013577231924395379170304528331210475542465421891974180011752510515623700338563220555126433927679401698820419133466239496191455804642361881332312530324547269311914499710609731379155830052885675957881448221585466141213376671973231912287823812058704295449661762219412205738129645308346820230407930387079290310071512998068532204941198862393878402359139035602978825048625620292305546102664803113500293370493819656951096030045371228640215735172576289048378588001125423698683482288411669340683484418853076990473117428646031719999643648249800480427731353075138963530062838790526213110788877722907145856128861442107525104462868287047973335971621452701725917041033133201319245688164694704500265059882409032375909732031493685217549936245551866720334785615311998941652338876161866650623900694806560211530248543873807603140828751183592837596763454350205977084465179614011424984532582344055621561079189215403368088901135134929383774446003286113398551926764895216593912281369390633240152950239539676153972715666029668888576230282293807217269469417002256713163978750308529857054563056589894979176308769021979816798540775592326003875014920919203681567756715886892470008335875400624182237029354625143755814640821811370260869987613365778222379305372090292802019386744950678070855231741528737177072631016177591213005069684961183299606428308328086436394469075138913147050494614376925904670935296153729694257332973055177868511564087180117123040833561584313253429450120814993154234837816558252002334647471123112301551865573091501266155783797878943142072458781258401112109709239574858703726067874332382125220017284465145509983251446884081593759142518629039078155776419013055901004948375909140562376612729851490751576957680346921822796000146578700628367213146530848371786295595912602189180613997333941413767150669501532138720773985923222275385109107099300210532562993163131466618003539449620823250213814426996158818452072200899699824371680715814298055294350212692141070226673196359487572041411712295830456183715791580071987523962993233593048485922380435877121615489894797598078580638247509147796681694729534051553152710397690200696247246072201658258294731591843007092015251496577306586205194136187289863368268185466367752141951595228783494758091394473109683896708948031967217312247056635998007508129787492556351331183979559780410163590080671091553909067370006812384632413920515894823175816607430193562936141375397164144267806416113944722943573437528147472048847435808445393426145446133525966797654474276045085833225152913270494631373651673097373517969291292034515730868925769529767626127134156331165216207591507665207443360198582883081637227052994749449916524563982594485930731473444994370440002556575946909495966443480993911273106701774386782249939370311967016049030325360965114261739636263387031070015002104089026198743584743380430203683836128558058018730856828993661923856347068061692954061438875002370814572821003765017443249414237056196871792127006993701488919827915538363914117395224128963393937287283506010758534285844758282893603634832400087054947884410083595124833635286706263242153822905756708090651488461294561071698228773016734541030654175738458047550801972015695575239442269649650788146524948210439361006093321357213945633361039236714709945312267020683247319940059395856072538136031983171052774493946217121000225064437620551119957416416968679532142771005249963501066750211917471549111808544587568517490311000745996629292399631479179083397878977567372726934489764936948263490461884473106644620200741364292471006392908430206557664354582312887624308544954410088288671680368360085133999738644335228707056062910651249125764469159420869049673429104183583276900594803081043212041204813400020085002180421754676587957680000562652964786431637930531169302982793096717382331389618727028381162267636496614345924346874187556645938996063016225183900245663007079816527070677812080583950233158238397605531620721741212492895557391286751887793618926780912492483367591943519856053888534981328647122757379534524630383705411921883663406079530709713722705530054455352336838553207559761504534085777121597929575399070057195914510955931840432241614981887429029565460236118400427030326742844764985495731467650403406809799408981655226638662291131903945768393118753897012258060809896904268409553190874164005442688087628098616811819198487448410541198832413496647833031822569073885164897794096641905369040277976425343771614042237899386692954945201374361253515386124658260522959964897146776205075633935508649824260055426310183160123063239611714709387365871053143319929436563768325123705872854532823734569847847245895851402566977992509468211412417527483971710864237195939347610941442653978916983750076672735244915201430696906895897269786815935114188097002630385317340282640151085396079752952640542623064326523264563734731320037184848869371843748534409852048189272994069910408216770721884026220481114940426536931383838020259416397701210183854065910440835859244346184918319417961129907845320807049076032103107541180416004718550214472931067597229662154025233301822144886722589928240099841486267827972925295755247122765811742059817580736562611705124950472205711852789694009783632351433917724051165088501718255581097952804088732765414174902519381823433787205288948787032703740816025974096860789445242563438243544581029158959750224089547232582447546432993238444378467897873802942280427032100154347425067934459507908317715731550354756568060171546412013752795855514355615575189990345954400277023256929394807992519486140341879731933569464437624297639066492490960458186311172453110986225289831995551322325847380269989569034217823114773756354602731519096114812241219645905982402728062994895020405804258834204766221727722517830364021962884541033032590735194583222577731491647336732949107671775596550298454764834160526040401480713829621433567224364591147281573853452682896603130241478651806189842083505346930771690861179861471118370288351945364456912105848606536055522047087196757537323102548164572687800412059869195062913490379688204398767441582167815937700945591939672521143030697519077184433109228685046591768716593232402974245264473403216545095104497271096784697902742747290199172944781944172737841660476579761541181603463018098009297436121117136561005866679003691137015819612140689343610163054771553998340275013458288906367383240473362671031464705592656179911059944677060349121122892532873300972753712200421447729426671260009134711210085216042438080391529444829260249451583561256062779408992642368716596751071285979639264834790201507882239216930115735238889634383246140916586432364705400638849404806027228147915727336474010722440033098696755916344816384731694675297340721762899772980636640022837214402250492031891192899532665642699287788114432347699411397415329666178119716557361662089390771539822255841627090673731883115266781137216316130241669621714132491489217762905924381147797338897348364531644176237248228775481169021648634460762049290949956059072246103072041884828831611603424451290629645033979471547915002291412011558420935804706295225064674727654296407008667889481417652317854729077020185560535064128492096673962930294582980417131667721464959678666705037562188788912294821374688549804359002891417149906929118584697051833110851756867475282480653222841662044505320802347520342834656562946053144342875851015276669770778115591259256214024545396832809792682615506484479754061308985289298625840627418522647296717982342238570327283069069081519432879521955106405554486788979655610203553657854867150697960268669571244943696399908848159040966950541040373391396347369879228248885038921287217186534335249523973955469356511269831614426531698479942052366222783559704315150084559048684865787189773798351910635287663981174747603158101005412145630164308582316813718302269339694371231230708916429081613377724624745027737133945595453839541882530913872703093882029820785579669907783860551253366394116192652240328333037468954888278593941839262853120108374056565239406142334698376242459151303440146919882272158577820393624855349357765130065639883875823625501022915065662082147037389432406277190335700390335387887566179873315344709063002428092603894968947851979407156504136269051363591407864603710885924243370584420589215505376473869849578952330977084029618387457461719155395974167942628057432159051816855797111321665566185170547292537407764591144085508760997920498400533805682819397412039233911054641332377274420726999236331869154796896945931578358121301697786138476783719921702108114703994922264591804593684766352987022816958724831772952406428595071619901554443286351610674025703400386084896347554419836697558966065979228796305641211532328357388509170988281505407980973387338925618320965122492932915396191614431676666169134237266087376978559622449371905671248149699382133851974274701778588309604567137487494419487101570175099315896377175925236436869884251887168156417579902298519761597398690383183732281159523822107156201322135691860233814478096641506546590188752190645192751817658866282445629693276719870035746553123485250577051999749402217354994841752773151821738411736102217471478494951510375036948809961075558823566333770112396001949190826125574063672090569376127970211708210741865467442346749781665565965336115880999356950267909488823828493957952649855540599226701096139523642317684877035005334750012181719282458434580328325352792623832616674776897786323530051249742967980530136673723280607233213460995162492904249951158577025791037115201927726393486309058393994344381599067300561385883853925474348694396502995765090156506254538286328078381387478387970812865716581729434710972545261108688218864818484340522889547482028546181082455551550932307972834565394384777972536019244997509246314066887884151210730182448439827498502253059344308786473557373636845588516649270826156990810815362522199865828233314670992074983897545048391430878970562417526467162568070985520264351833013929445785063784908418510153994547082854592947810738775109869965780155840563217144924330731079657168414342876947986391345908775283484730599581102327604266395371326941973654549416381090504215764080346953683705662528278559841198870015861669004736388708363674192148252498107599394615385979155108716157139073444435504340645966729285224188733121649338672239431226625817835614349545430901943823288505410806151366127643083322986212169966155145806937126061308142592094195157916683064080944501426285898661902999998940559944308289462544402179496896896651177414485235557118019166916524816580834289487302863753502543921672709570867631784313667266602765518456405678430894327997257076108036464515025794740807856860777811082299498047766493051956575997155743293205279273600350633132869053858933005490919875713306427440795439241033442718330680769247042636382857429454722932163502456929262835867433980036958682908349263223815924410298136883758893095305254746898405351404797862926236481063073344699497321604279013474075317975957647205420314527539629631803994081654819498729316170417280228097970709412767451788353889836890293942229181910775221950460899627301039432121554660351509385501672546128441547425317828546604309730660555872983187161076545485890826496406798710391689831167941918782327432068215831618380077202381566069093537818063451737410067101048097915212161116862486160714746995533996504566921202294213205152683990983306770588485515303288774227329386640410327451942314535980843843352332256344918435008413666003513172691443834092520321816141716070485650140369007934612787784954048445640063487254090072027412272509026539628715170675388121696573233374087213649663317919090664879120893990283662909493450057567355114988504593962829080581815823421430789245438472227479472400254659125699677280191104354912125441202307659946386543613306767178539157492697917021886941427857806583222413639445747675354377623874179619638579397924814489562221802810429937850308393791096637974628035383903606226226903043249615611683744439690568770937011277838557718133058723683558638736914958036288966358374113896252605492893347322032051643872862372560027866260996833020027934204611126746099933236231937873705461099147813580612163463878534564360139212391198422135772455019848333746888978135716173752636836429897063435841198667496444918709546970918761943625413247776697298405311979612806321067171800432743304675020834567201702301574144526460764694632587185870219814889622268419800979702176017817116746791685336915191814607986547854617272263007466900083281403578312672978542941576487963956334570777532504938630598096939783466675889578213971267554573980307999586876642410204055406711804043652158769839820354256004041907346321121955362283703268359773135907113824463314796721254328151930146941196510878380099723537843241602245445645918914099120898491392805654299209193316803072852039007922417051451613277735333646551098096459686880335095220654037497697526524781714264577170161565415354322853156987469313221605651215772386317937642590849618093159869776738760072790373028924810223995700335804456735087792295123814075459450974401477027238557869416969226603729036422110342700658540922177516952209708973225307546452404998261540981661254926922820886902447671977301047188407273214372471932588729575036338063081618702665247636108045998926863226919227137585128959430817324991334442355912793172854816299585372640111066002413534778520949943846895870341342892080329937963522546385127984400266481390767076771328939271866443597384203480413827916423524793157202487021850747614440065360003822525378806332449523748535882049080867172127580781723308867325519970467529368004191697622039679109883888860409809689347863841334797980213878834621486357903022453643780946681314396137199633135759983487886217029001091764580493095893781063847434879042117535212923650163277348239211395833633284429097240978725441441785757605472829649266277701713411201084474883782404496405425969403941472749356262460643274941087785664719321237069843167750034353286215932688498707572976572577549243452476797273995695175483804894929755791122868398985590174924706130811852454374609901035463871690599718858000709107926329146718839272328625824109692478114437726411182080766511820779388682566300421901775964405404537154947669431446897104154136451546915762991589723060071953797314627091329542450998653803702746856331356572102123868767970168699755264895784931336071284386936071962772621523197529506688230882894167917786380068088438068275590886857863492198635516713904673843214880610969537799780035133653379483118007485516264472296646270466842096714799041782184177961513600849351106510720291408709145422413929628418075318738255634649309240049222152071925958124288442938214981652865648432200101701714207303359873963844454078953113724163484808171409645817387876134386227001829558728099300101619521535503665955188865331184795905279737617814186443228832775338367624837100394397607338944404370491856461538128436898466371681526871534323623101992076195527259249506271228952464751385193315755735652030854184296155117349448190267498578899413297840698897601693603212291681231037218671287413403638414230254376633861962996275007376762114713005398530959557955219145194327660480647572851979013887959673047930443408689062236513183663910933557101208255959116828867201462087347108489123089996545539537137555792967702336530547357831336776286223248710545092551126066371909067266497485355381892356394315006523394801898768559414493365583389444064617980542567925430852518353220061640730114331382842394905209059460189509962199949035202774043833106674222716935242586070808898064255931465339365596716205229782045943031040804647652464504099174209232000924854583836366576588014490189807426689566196869752499927672244029107070585391920260961673284913642586204767998709925084106204921155234448548223937084444052273796649057652286272945163499167536717121452723162027460484734191707917739393240824877375079984433075631407782573404608918477114189062441791035559149832361732838995798497215773407550012931876099506878626314147370423962229067691841616924998820589191518152735934581367358145494080383798216818846702806325529393911806783874330532620296944404335833789764393289356502971153735406423132013029332517122632452916432083705905843995009390711616232597052833196596083308418483045887030590887150170715214054941972349267875153715797806190445563813204614641239328502516797098432142749399166765532395787245953317045415362800921938371286189427857022865914048883929178867964669234441740495629151120767026904770808500276598723487163945029130746446174689800980259753639714040798998849210583901593248288958524754371613396056156327277006082207275417299934285875459902617967604582258138560594767993803235294591022119629673883099241458129204027524335668809044822674186339098916738700729595781358887880815625604164764066227354168935317630100992428301916444309376688850120914024415401683888530307799756253658244313942547518744446580552171821731798807216378687180434112010343472312481346063700469500345392588484806640271447971023353632357454517443142262598786604685657742807885582774968225320925758430738142175832426059612208520865762554346885044527835099176996358098405296756737439045770989240733923639176440564508925486969342492063228504511031498722373674309232776658633933506910328307779308482864584920292492816520662863288448912802074211394995829471721067982890628372354823245252594266847229246424764032609129991218771299722335954326102192558492011334975237567698086578309017887267286679348466440856770864152676941395138787921290382496511085455424512100478075140018533204199447236998694628986268492301686544285647850228213111583480504723344065941199339162231235196602658394079655925562288013315849688542217265519531856803223670689895189326488081583726333247136672970457356377501798507468405278983788129391696550623145801214254755613216313972247445013226837906151868359104255446397199663100354758941743717406580664459236710309727806064584343400043994737639684102605492826794480095272315513767217696917128616766719554098007129364542039904783462789292807573483395891747549519148940308262069008124340839085090855074491975998560999343448005462239260611910243412048234903442490853028822523015748862562720136834024149013807599259698723724098679386568414605219745438146960883233620551230418043886828206476498138130867147536714532857634412456982830934834663879413127828946936519633846141332050672605003339962374177400469514639337341809552274881012004528454660610901244900580201622598271246189779854445029378050615614455869422483576425122480422688094363768011406296353628261916635859578836761787151586071041253481628879857358234199972557236886115200015841878567761731999888756841093193205373462421289222109253362243896817727186518827497017825436843945548910858982232770424675131400631213731406455499671769001652184478107238259280199496636411928799014924848747838050776456614312791607345049463072822940611776132803311253389545701063084872141499861702205879543188586880446036886321597443320427618124305535071437024101660159675126344616637585595378090396015006459355468285874737801659310560174804619956007997538345815882260297576198683430619332344126032021687012765460640865753625658129368551821665386058995764392861791621364232763666108009964773175300585430685487017046501161354245622002931416741802119099740514205580672835326470634189421072555139244954280205053350646025162239726102814781721816286009041451217184918616439498557907618333421728410296235010985170236809351062320778390920518084077747866775951419954820043991566578190566351831805055332750934856434507627520548945535720099323525861260969569219004420472038166130008975112382033303706162146663914428475443959750006859010586341618548030054206167636951181898399692951654182964355454693033503162170999984667306066818965941200652600294424296718357758861352195878516130628805426037360759885772883785845564201343854254908596996597214337117379803522030604153376544872623442326042501000409145869870880185926211114421911351097380746476796775194234024868332651467388010728515287218353689023228690621181589067915223191283510591712164549275075733701242526445055065040668518453482490679512022533093873540309513476089940027257585998646188030635451684689708613338373417940612567503613378750367670973790505296878950282072428524325134194900085672936773198762861113100210679278042306622938783351287623197465960163151061062007172915442926105847943389236411897240960311311604095485588765549444741869601689261984945083653928844131526240777742738306608642270614303290919337217586110292035222677782879760567589364821522410048986712589517515509083627204827922780477660176466189017478801140607763871956727958545486879445713592491904651955243135745951794334982076311194577738225723059688452499991159592781672482474043363435308672300073772073141192454429251194351534204650735583894001435503956159118549334942636325486993323994514527166900554660310685113161708780911379481324715279757772704210448408883152811381562368938666101454407605087324116521882305435473544839480965837527467798917935159907524437288372345667605774490418012706138289616997121377114064165326050618010915422505133444504579113390518302018735942366635448927743711620602760054162835210769410702600942515107087515827420607214820045032561489562243875046953874846825382761683276503459412214927682451129758526231248826901655304457307521898949513844583428348125797369879652664109119349067262975242195750574146361013717296781322153647936967534950319046462578248481272312852143109574816297049039122478914110630662052957452355369948460702883189339849368812545075630554350586324372188107466972922261713771136888561055743234870590159461553798082327798355811273658186751086794181099146637855184296249167200320060129789543557042893036168294597153041349651095684699250852009508821683958038949002401513937545656218814229009640914968478538423989239768814385708969935758399738996945903801653089549185894421693355759081440965855726307025519371361641760642279495188089361451901018352618621096097741798115236892272899241377782281466463101322708605829171245644663112033148816004161717100929444661314785123185393326632679995834818979848015086753087412976800473025868690124607632131664275253475095722429770055959932592199592107318981921732163303019104560447402050894045723635742688902572287548769620581483529343580358567887422311929001768080735713714769865706618250188111206591656997060949614273371447600187941364598703105693221628995469669968592469782592790682942217315854127655261525876742344972937648126806153124129572813976713832863019143630555863478211171999967664401365363210774476548734058927105880217226045856074703194538107587803324786081138893792991967127929377016870959515260734298513575674798914176767871540877972069255901494128131612790703166241818607357944421516038536064320816057981140058658763602129328651834241402436406632280502196672326253036684062912252115760169739721797127657289027950171328281024313989066753083567954935864649434032789881868112369847295137295323945979759883702689555482323186290953877770851628948727135435058693959878546464418728573118783785957136654066107609693806525776081656669065308230550094872313513565267594624303385929062731646406130241893947319205518934423066163957646734057527060110429140895857821639591310165013453519964313285185999419335641209579595394264185858416393057371914333513011584802545358076219475967608016318593440157381573614874017509585764397383729870391020539563946302155979723003685330145998719136864858297018299400105393101542974628028178989612795339884000596646204577076279781807388264412459222004923466619634475347165212209715293416512770593219079480829516971823676161681541890265440724792384917016348747929504196219461863078676503102672614846693507397856949835020133662989252783723249806302498125732133552860142123992312307699536869791823240701734438507595388171355914077553656619441274638591225920842689633960270891932100064012133984466930362347424991444137348788654634536131480429088248479119386014494598578886001367567868657536319111932487898171623855207138138033090173356728369373211956630343209924025030155290788913634051124479412374586986270127836520750549032785974786803814312803480609465995385030919449725722939000535033447198469217496671793199531199892292182003982088065253098545424387952946084698649048709486654904576126680498122975467494345442895349367366669353401480287207087615941449167193320850421415149894830756014568374186354155568082743912449598011430560235980457069219221451211523879758826159252177922159767626141632610752071623629375399544309914923525108891836792494135288991224529163774714175440935330427623553578715141544738114147882079831479558332382645911498680338576990535857400865834562027214792141487685927958213803639237865664608813950381642366097810930722308619740923844465398481395686886360209200464388449491672004514847406406845947474436252107627736190653976292141946690233020790829492268395365732505582632000340688049588180217242402544767039600732576821979160734265712315541086423494941722845008666767268211102915620178891401083968568984633498246739147034694646486254843941183392535107030859742018527426459114869426452169037525254942179171302162108189245461161048682261411963203534091788546467569446182018150906125829067321166404153402696203694464310403344175279978577805845500535572734592638534665690828335713968279018700419525970567590065099149203456312681105543710882700129244530277689892427007511277635238915781596501113692528198154012242726374280030332000190428192371038190506028194778627265018556707211240580413132209752282338717956970004177337924933851478390399649083276790002213026765615360790190437186935450537836759726399435744126218385315923139774916982452030078714894737405023650140114137293319054084352319102698763308539670991577238010257583953241405198388995460960738036031862044327125291247369193227580260343879373516216499935263415277566928451316947709283227985540847271447384465934647764899817772947156366421454050193629649332016010820987023505111816005705896695210612428683474480863647556420325681482680346346208344609504713314542760173442568737417388207254226277222653187682453204687814391795177050586935706695119032915209641340014337228712635718611855172221499084850978634013754030724850908196690129139032449324517561597439909126938251498531876177287031611453264930149502200882207245663655815876929775493314566749045955961529502975627230264285198923577246647154215300647494379606691861770120901087933197957424901487272963204169185840808675138703273983461946847747011815593783700217204867276512500984654920991176889447870660963663826710299590103832330074831901430669588630859039360632214635573210882424352577547323200142360289628451823669079839689096030841174285637057803975989129638300151680254309426437989081420926682937062753813535959343899492138036001117087978907946243941746239197814536713936352540707640744041074744618652840836892547100661606830348284217141912364933437582794800425986119581362202608532049078795544676221431211197190274361247297355848003367241425380519223203712794297625032777779067127044751866728572487763602494259115771694415610650405932275550839837481320835446453648146005992729232460936299704440954380835973147103873641052794948581532228368199764015876166116578513068624866178444134928384526722005750320159044859160371679771619418906383597211399704671617744105413821538553175081338236846450573980980130381609926948948343081428388474474037276430874645595819645423700568094496147678411156567350310359169821737165958364092583363311925479614032263955536254186159452137061199994624512644201039602689200765865684466625019239192196065256959096677338802850200547959299860594257776792046026362683920220754788848610694078384520592222241837660156204425982524839223183752749710511106690173646507717467092233907240744898958860931461214603234394369382134087976598505910431588539587127838776142691393856007330687881641913023600823887613260459717137070526332566730369771300289845242868747290207042330354350484491163814007454903370296865169321254570305268508464643288858160166002780983856718930524102375036518892591843653847452695952699008332231650901435894065181359532456969820453684574128865701717313716307981980601304481177313622505022597345715714951335387161129447249138970093784426818183513182157517309853351776284623776111238290128974115073749159541226196404338938077480873217053073854125719203223625647230748517774838390480260174453554919188494795525852577238016423761483285601673325934133392653615344658885245711737407322408122576606909481117260132854103799107754464936946146176185810235841508457874573037644364740106359943283778144683723600606618381800149988672231905644962053763230074442652407971533763017485874555199801850924464248627765200282018404119466662421992803296689720496346641663899690845132414510944807424679901604091863885177476155198239363905750025397470038827808856463007908056824822221001157123492826872143939360999286237523482383583808302201694175193727482118418412511009876998933455503156736759104798666556325703983003221756957215760829926965562876118812068015938755489498385385547989845904377937134926699950316010474304446755204354973873654436554466552118591609190470780079522550272347388198156515674527830872459548013203732587647307123694863289214638771737923565712880420138238976343799485167066056722167647231117083511244027775258877751454833402743902264645176130364850940233195560017446731861923079029237076794222322495420698115161474878458075829810303268786754449522194691762830664622628562028629175190548986477786546251756171885715429271397230053419587884182281209372266010208404532452629365711008153076144954552376401961354255974984857003869443926009612816075135720504329298704164115038402573418212343312683844582724022475041106828411855548126052473123754212541227124539123552427300563902012479436224661332482008222290256784687798333276443699861780529814058323050101795666741040756278386839230820547266784727334646367750934224670931546992920924966007074856334127775537493224781279118017760990905087575099160888585642932048923368241873552044164094767413840563990917016132504414434731588168238416926565676866844894803030660121824729036584199838996038788203123374166727804199921905537004387431899341380746314077667708835842126717778177190839068645228798504859293376580752071271150566233836338731520701480595556154398722950945923402250905569814386078916712704881734960782113652860757478951490907586159829712739214104309070980540516606670870146274356701134645323816267089192606358010105435727454208780241134871189615148805726864310564732106206949021961845005407975922703533205853526558552450180427151429436618579620039511923070416306334125965565673497092873574442700280461675317972067680128363370855384693859448791212856067249886592610000404273828299808087573136223548655716271714113949516084207231168825225765920028887169497185924607947312843147004044646585195450984230978856507752620132795723091990658514700289375639956539808854731927936725698121928180135895886123721682548402899708299535442270281521190245992412931185202392390335442475207087835844651183606040797380681658256839793129547608109237270288013780616364040078480276078226503722507617752198467684887842795085002892139148955189873532244915356265133193552353998992924565647103203080500738045835675896162442689668330199381779668370318188965090919306931602017866879262284140140470271524975326592868718705631148179751193151268729228395688362811363848735931754848437495804431509668436236790725199607743823930934342773364085225886413181746310207505862938173582439528869934071244049240492206681245962143292754537467552446768583202287666239072171211028141148883802129214967119179062369472778978717738697764041649556266814953795978148237499458833436249430672428433483172542710194926392230537347715488592470557429599113864913766382930270365435616621618878789212877875105635547161721565286471958490269583969883001728135792979007515757949338632401512415314058616461351164437449862521228541484657799821895343198587339188385324502807571376405731715433395076496075809345492168619757382942839235730839933181834676460204916172784691474466813466674539861975965366283166980632227330928920841477301644652230259345081301874277439513599083723325488680530978132058866338810252628055405264668764270561551253531051221854968313720312937090843060936950954064043836293819702055525633688637402129864175577142441141858162025642380235320584847284762687937478886964600152717363711402303289718333816678336571353433180148612248644190034576521792149796142615759644671266223312841993750960624493766052827222258479190012472866494301905218163576006323679782805236053388162090755451630134889696948544085337602237878520679035591616049488892502081696119934799994738839407600368367816356276397057970887309862760603242571218262417239703556861555020916318824038686349306013003122886828340193598406701200715303046947701278292277297358548608841020333607018158823402418421262908767191061626951965225227008461895418526026043535799429221784246301256262293176673902034710167458056827672181282200385851252189234297111722474474709713950705654175312216041145029727874447477995799855131481455651006781272250544687096295555340042068771565872810698667305456722592216012026994325428310540339773826552191413137875470814508320031988520054454505000428471580034343330471243666662796792724033513219554777167218735107055866233157037039799189690476970770308624529496710946348806828555027465459562445788128239820049527003184276471218885010411001256496962377921783755713724147921764756961155570296463291570572352359665746884044192447465351388303695927749379081029950016616100775685459564536021068733953252677315500183798553464870859898955435742426320394837509826188575334867345140558227500424704717166735681754226530804183877812289930929735933619704703127439083448179407491814877733144806700507065962076197145199828186154197081756808775568082413328567153501584337100968650650686488862873653734913622249936669397130152806551938159699969726334527062879934460801669312337327305639634606265860429836414897450783271539021560730349186812873829461263329452190196143326363297039702435939746800256854742283668893194445830387842214618654780667989201588364914124812393517015256134627242873448637857492690500416183923486595193414877147079580099487040441835304225866215499827210246147384196702850392306997844906671006468402831107541486955637291836662818919758798703247887775501694674513570214944390148021565592903741411470542341709212142085117099176929840567135043931024094265639357529464970601875288566739975429163892967323995238856502012158737052391216380418227489374807603046497383948005995668047619571830823385742414305478225217395278536375019225096048108621088866826021350218144120114615582917471819496498837104380205858564072925578098942125168760869350958043026680916770657183595103341035727106945434849218185105989829662101882951101272506000150517387139250760994051400540967316403159388202158324427224968031889283491299027711330080251398585112982463098824533105065775320347306982722695414488445762989046154891552617752656473347518215658020642453437005747287471638997417422398476063244967442630651289124013270089720382476358772883614445243740845461250166939278723817640227993309790981427763236740498335631473984532449637967965805533750582524320006599546028012494693692972791831374679847141619449161241413145078748220983724157909280646512392718231121393519596574474879143434803076930385915505554657462187204847064419532222565544820148128925843815801677919486653094168829574980305575320706486094554911263242266503644086071179071515615044425544334397897784083838844469019206386465377885641025502814131444225049990636522053109656810858468193092934193530263487821125076304755769644853985819118393599245736660793900425436760798890080909694760571183444038914773394520125928283481480884569686310048824001973442623576300975638446467887478159109430774759767979165050113943401985875792236403425154234754478936408759550148257260025903220436454282807984964795696104450682038957550742658324290119376000424798532980348003161095392815660602807951093625800205027083358521940286278737048822942085514529645221775705813008633488568169468557844045984492956907835169186370518960880266191090910967806288338368114312437484455372273145049392174584383463994677873373866625139571240976337777950080467477052678506580852955525625314711375565200988735534858498607015877720611070707380504092527019213319032052426822258157998104437238466665232645058069598067611481278452677342591094844224991058142121282789664748716721421421600206354176972483227939729320240544579005457184272947588515965384547283059352827225253263823356685472915053360402540312875647506730916961946716453136805622952210852722049998615530572977493009819096304573862236996345572249131306835266983613002771750331755496067208792550233759383594955261399859743684764069828369874378669228321748912708619694192848171340356171191735776489746582543834750516807652736607709476123881336865604046884238882902711327727877698160414522711601589639974889980051757205341553518141425601018720789487308396359308614413561716465073761183733704720930996417030073519977170904086597608244741622832770149718759594194108814249234837646168208321001750682457584376996800748310329291257963660768938785326863572043947377960951626294898326054610189596569800822603854322521973278953864178226859631680592109464457641121575395173598916950357950116535814719928713901276464334273551690196671952917414136879207452210632650950599860282389645020939293491229612950918111495556826903361664814389500502663709750470556522527449177899948445482816131796387082494954575129523538174796637970864472563300053476418586911537773438009816711563805388943535107463394760361589789762079014213795831929506090524989772374244617710096325726669545848077001005981886965827734730122253588945885440267807823702399458312795463356245277069864965567464877966722947121941265896329216957354872540071920315780954928026780873085630492927949134116637547937832434197306155992006187323254237584329514021806885602732834255832992900828677915670589660005261632828705375924055912507627338197581458376257024216049480579637087935121037461380573399651099819504313811411703895649548517192260247837774760561178254635161204124340610612597840011056675265867505643322709310315101710515714720148505525566984293976338082889851877363053505976778340726312227693406270633999370648277184775441091543493966530124667784083807564294759329673272797249890659701378732801966073598121625979821033495295361721423425205114419554650979449805754126263792929606778403883480936629627973177783557905071413844004918628184566963822621847861393621273997981680474333497967104690137658133325962283461938173184978362041441233035671449917766263092834411875751992913937703414818987819808242016933550823689038084545059365293399385273934795895669792839723674893219644021500722318036582281246517276464975936495260138541979116760513154603222795840286875829503679253281708823391298510248190080697338763553190124392091423619119064409400800033912943385659329804241207564349425133525055260304867034252038723318983154311727505994304429429360338217812790594833791683710421596681637580044436448535975912867959926577512584929277863469180053331620173090230312811639653544200227019757072219809392327729063955760047242148514421512087410120134632820445643636742863496659819327886977164854348159420474709541808540946736718937870188621682536630224930284510930083552562634293125138270167769091716270067264030703711806503742456723827600808680790387901267978104566299535078584483200128682664978674745660201001869391471540607356737850107868307360806158840958501601313061541218365318307854774618417832297451605253642478803363464177338925314257229888313353294094749959058582987741411470634679062893773465868385278563194675578003679266488808438443616085798195287949505499131974569892238018524507143241593454398506873520067770161258327965580470907976749470779789361752398860516684125184613065803451952991290686975954460501101862761058739595578419665655887623991939265437519224547965799316092161578200323185019933334190042888103930267990022010216818794939428485192987151824922472082392390631992025530577847113376299479323420261086590000308055795592042013892416593266341954727918197076821905657020730887686851339220455028290699856088458583670520161552658937455915057200128055643586920276714505027211361949284021879296253774636458909868058528022133982489133841827910195484838697470398337380420032390406298000411800492131867252623398008748731977139293786285864084498556446053935028125083720281686044767740064313029462056440313344710862392859154523544617197283201639863909222250091501209424395163454153044211201287079291075634029148108027224095385762867639494960926063227537872696465875858238056093996705144120652887855140673994076036274175360605354661781328372609787823804622592121901623609567282571062291797303031694422062560133912114161708741288895608043000381790604866405818463430143889946907681845953405558190745239791190612321074213525110989420224875231764188911644669270214138018984571501994830019397392326143067553936918259687771990671869969644605381920950921466532355611596805973884526331621274203859314510879143656643269901439568862193880372360860436043694554250457396933568046512522231584281901937578483270663915414002079848608835071756953612662472182965677833154291126548271043038911528632255395362932818222814994740548430318118099177834129873839288127409384423103865826533801609523344153323500634889830444621065728608462230439010219760484918727620863202768245322584129070558377688997067802650736707011593261765022853966563338705493680661870765100864078821153928150104171905499079509802214842069746752290993600509631359729962521483469144810700014735709223928777475442548355328111370342140095891666460578960049125745007886180296286909693058707064843741899193513881205254041685025724134038305780912622108596625870040940669319161212115842483716262661180799321251267991670941846730839242665184934696595896195970553917713636107170642410369670843034988710705770614332530423405248514329431674472938311283157035271380199886513349028428014039349979467313970305161738056983912750440507865435408408376490193253619268822347068835402015294334831268411552352538749319401912655999393219010271571085708009578619118776394761366700617053543408875093223997376394666794193975378175297173786453937478800962020837371813429157792534190945821636445320326245823443512150548727147730848864060892358685497296457358495630470221978225939228323426072192206719329338382274255878101671947207768879992853801539794483720566719591594854171438359265962927248913355034669008602081939622763954353038149931022887690118529179602796614269970656921330501267991674412585567867634835855093812590352228351686753242807847422624804474344167659931860477613064191058484439040230333738657212616298571333768383036219163567806528827953108815187824540838691569010786757122327422995408516229031119685299982590474714154959954221204452430435853269973788271376698175413918802426006804972265023691013362680723688255959390676927952580813088282768481884943231927562384256446483314664139434726543653368397683606869973592127523078828023968156961931587526772005099013125193803168864566588851024934123048708790433302782860950503072522057020256360413876830252490714398669441115677838706622721067817675156346632306616399653901776721530161423757662213329886627730826847588919592915039207045852101628972089339365495737876226483493159088902801631854427707469287290707034170608143738193729196546831820314527611600187777854513135466960617293865519158508914419049702203512294279445877547712999204455748690602675488139727178694879017974259540594058486544181273661876604568054814129898845430042936071599912432764432187456323292935509611516467853734542015234927899771369024124638688440234997940066852781537637042519006963046120984138935074822352308818191359714435465713681363077820756126092694059741682137445210775664638467776416379754846476346302900650956592930579009898623888026506402633217442778677824288579459401326590181303709790949693599230287610240117554220428131949527462852810884506095056765833259092994180950623067283584445816854812061336895451328536167053573047324035163497646499441085330973040654002698600997041433939058783467657473319753653098135680542639708175722734258409556903227673693291227344436007525223489694107285314725670963479723087875531525440484128959903230664672718369734845103756701249269636831855241639350310945834627832647930800696694206690838502430182265249144628128165359291537191079676138291247415643692693272522042938621597371013242448940798214477271860302482952217556222471981288656824992487988399723146046759951213313931398914221684775126589850047549974765698011517151223046333837073500390759026134554221091179277135454960749682391254677180054201717578039495091905407884956379424244046428059041650453565820104200254740026860820467724900835865790312364225244357224000115189743558263988711597966536807768074345957516387426495614558699149155291406914649476437340908333827425810882282312541093033796065129558110396477558242202150766079680814314406942466620917588315568891707965644147077966893040164389948899331695929672733163260890047305027359935249836206482738118001824187032018845755296356570355544222939681032777039632947202936694363687718272385105297316858268419231022571759487280895473430955562114918430873762416572840152142241337375610618589463376921399112640351995741578157244014262936547587355618231595981257260593004971571780922222518930878570055053362708943189928394938919720286573740557491656105208171669525903367861281333262617928556574605522098493192785458168213593819364001196898924339174132263946776429257336110331233949153888626080812118002174560541449848862208595737845255320960162081176806473716633213267387048635327171502404432360825689341642418259960554123649452815588782453916779796310468522905543563250112752692743832892434509688161428382062285213371820218317273150111148140247480774118008574523442134912315127951315783090693383346086024495802660892801032991769469152318031540009754352026780247403476195454437713955716469904327754612504488220704882778778002605512537251290678613804747792709784447992916049884666767152572369134211363029292693565699411746195532008780637514162569217615829447049583599756806008462340598552699574118677809551350529098311350734286364097754227205942839790373098217205089257723528649346409879406458662233880532907517101153083423346658723211226920609031569375134781038326025914174042542717468152230944868572765114541946016738043735892074672907636269298101114877029039655311135472029195287069692101889020403654189949147075122450126217138531675986620524875446864528386066575285753243383227273027125981678887859089776751027387950173231972647228869794973890987335348142531498724553543603104263264083580940185510668017037055228957979149578436493134753247224715414493532315930517591874786810326890246014003425235587088301254612023541037323832230774816503536788599681366944487100774008378124029801403761183827630439086085468430351396098088202606967569653526667211001938167599535052942707833973534354158015811743744551013252600749690621352061911967356013617518050858115716185788489214805582947435597651173471908847416085187253301800493620262828080091819235724637827806382769989653836005373156320143978968676490326145575527444472442998215400481368798949798910604593703972410520920133970660669803187804488304542581295333736100154071214732736473233335208399068385357270572085121290768101764853363537526229579360274911096116045662358935382346459121803941593914830238479145563780222141593134446470710139431799809662503638665978331967922814517244073416018116934802655286640603448174824524664829550184838091835429801458356814981682799686973876876954942548057368126326849480493673004625409608071859327985314621774509756472214176503776308736108003890080403959214637747429421420904529080647197945892707616688545827632690751622568578004346284950441607393785017096968127665472200464438892545914475285221726083271641920093629920778157899498943969743667679676645890068654842720022925278119600423235784669764206036909177785320317691984129558491184827153733752529239442451164066870435557585466168761660668860922615018033736634183576890307716113895094640187677630726589947550950407046080886443543966734063146888476157594040877889214148915602658433320809345794442270077875341027319000127890242411688024112497965728446000879631790353844308040092194399344623377488176220430363361185627764944531146255873630668959172198266229290861171162818605591994786456145634000869557691190615588840816077623125306276931019916242272373638496709660440255293421355833348756490427797361905038935319474940510476744729174695036764122226583922303767390874891429576543286972965750803605485436135487916319268806227730106344421803607024190079481936247967252233739821656149218659654879399447357080974582923079330318776680832151979148259362888786962589890066338192483929592090919569662875107216627689845572348594113970550655585870940281548649055451488554974951632387282490439368072633504195591027844877748403291236217075623932001679915963611447691798406096616842957392178401376610958090102752758663557528567368526240094597281470172012895772826277957859290487226585908024366153021734227160458437153761481806670306291415780964342087195310124700105657578704500479458129443316944125121732278282856456048019771017538318535665824287047074360943730428376490925802096766964353193049848131010538927421562212630388719852350729963690930595551872113953221126685877434568652364900511588951480822214447439724264456600677811777143011051529908928667571628436767792847522734733375386310099879764637273157450793976140256243315422997157289724804018391490111528930939168584355620504658311187148712632673815242975094052084554394343867186285496040842435799345435873778568700284766013538844137731523703984025817498548598471887345310764168344202727820950224448757448219574193619832922932466339928294729246858677405191278351447196221088056654691309405868681329619120763989054949440438625204867853820899868059825756084562591862897416654168302270267752705216859306519807662282837893519820876291406032198785334033528164253677422080299190805124432236662857019728605231546389157337983106664957607680297714515268020720359457677565458612944026449922620225507445230464942751474218421691111471521601371637371257910203026155498354579239714016602767552131528512031879791312192747096467398396171581643351638579979472835678739437518559242571247212576548721176687142427813097885861300386642646138108875937130513263414560747463171543167469440591589244698806475588341490270304073320230155793995988765203691781113271383270270824455627684607261921043597648598241562245601037274450475369543024246002621026746471966471368524735008410583722650554337901388511400204748419914242535219792064544199836392317087120288339838535656677442081418273838559514389760416732773886181484128617908451606475386801640183040894667336592181342228339141521581631746764160568732265866035989702141716172853112147627055330989731797592723801285951594963344503398995946350600098894618514227574598132248238478129031115393573870751077278751255684451446194774173301753346892253781560059543046145180587304764482105210527536809530159864167980810236873096941215922594956533863579767249068843241792024874363133559402405662022327424815847425637383641309451269638319467219298486817124121326951822634286900355023087887262246453430997080676905268821822928473795211808750911325540017667627683376223696526285658254966455457438425032890233087729797777733598426181752699059340553455401704554929024679043575385698420511463333327145984792842927138535127231909672330896381692845344919176880105829406027457427045120238556204445362761657554619401771252489541281291365361255002813196695135032224470960641492192144410589990905588399902615321353550080640563117388938797087420826497839772330675519058205853895857204940529036068848764292708835650243178852450755378972795648345587118890063423976226299805928133837326336154242701143465204232769084922830423054384475029300723448288137129720063784960323373886374590276148580764452272195987005245258813304134723948430188528171978098641246543923315966940767804518803527452124649866274882533071689125790088406546015052861701085077372264006507083553917563346861456206031887912206665073591882972814589242411537247397794543337146072620742598949393236480997535905287781884153496155055758093870836318711340825761665335288665070015266594692634044264523183144858723578810747743041413521858083017723510565179213880103452628991479207904584059334143894505018138036951314102695115121730756597165718061154232279225039641994258639430196129911746557175703011683164194574767166561036373731200557873408344418396079773570906817388598429626837371564301731397457295717198101435976276091485756137913495139636230517979229287317450250252187507855080206271452000052301550419350532308713652990684810458765781596021445909216558960995832054577678757782080014459115630651095465531438859694582348197598472932763675911429615476248277153660555713979149154500356744418164945845416217799515875520512226354901129118283101685248941108242948037921268149441733017496677391185143975893062270795598472521500254783962078969012890920730045932307749924523327187362729017906977171925961410782870043855853370002283312413138832911400993919177701059764862230527172606606616084421444320024430268633446392006218306642721935466009644013374635969550037849721865072405185360193750093799823707095084469901339370928894714693291746336126606836418583604821279971963495194451603319205234914420707510743922636064419736374090026243451933924727989549130803150909333494933130160833346653426960927974479075230983757567092226126039712084645033818174009859548975904713108803876545118603149733110495215794373487019002097299149625388380343034198740936264231382563241007428685365191183548793428588306389817233113216652420419485129411555517177548698503829658383636457845552353839640388010891248688717668484519501522479581401508421182395003896512682627832503706564206105407491286987687646410839227206122446466650670792172401106290182308960408410618706023328240539600799508011075889552254575774861880598960050300668050368198118711395685162166385622813112577182321237263940765705135957861347406393524631840664145066044576343791733905642031882169981815591623041052417198196611777283512808645321630466864864810636239591163088995641673757030631915710032497860257499738157183320554901049408872342173439358362682292177860441915361474657205783733707912949002602299389769490385336297720182214154740252330549797607319547112063885264533113353799776740059451728913984602197312242042146477520558231351789630915230430652360804274517164184258727958852728352910238320195004879965827208410683413156997715227348890529555501335485231740642274337201765821534462140424512347692678024610524794410292603619294986947051747786555996156865888762888626551229568852984534054618525122032372489878802963286141502647918201291373356913671233039157215373663467725206306818567831882796055332850576663388720077039983158048550166176157507478465505967293615047387750474158548420404882847914148586211668588855401011315844343380949137052896477950789373136685678858214934760094982932334784916202632649780208659274899358149802284842406737833967724216510672169050009333830355169498646523194293615862450942271902152613957295543044895090151564269698353868813933059637402586040877423126201385770398524845351031930935578295932162044790637792138643489256252202369404547905997436431396535480594434229254919583159678438867005475631870452367249952825487010924660694141760049049355785546607575293788114225464085443633637776651358265049220473828652864796614665206478460017718832774734651039516783348483149738858306425747693761389515795124734722596727114235967526915032961015837620450517034744713027647572141823190248883104099561600625398993889999242082575298131050201697889587452033424895806814847126885730771594374034585878473161105331102435096240516908029181603029106948119232785124698735230984497914767919017993169771527500400070963120381749168698852831493781695218432568910940540484539303243209214828672394951456166183173630547332824860864744458559255689636775189957805128952616308717555749511023760889911836104030565197380747855552413754922413430155636898572434031134252398708705970745299669579563745878500028448931974209285003188026549325156156527575188005626967695933333998861686512927245499776040980944212843375683285791847897895523437250733472963923557010937348988936075378353757298125207888769198852901270695572349187977109591797541995118729856975766807765717682352230675066598550103734035358176056245610670333998174224768608208294718877140867721231479078136254931640869203000842718168340265298070257995984903473753692333951569030128207634757025406765195511392640765439276684944334106124035961670775873057414865813900981684448295351848537539647156203289002546422338579376976717857092831716947221594407990061375673555467065590437558824141083446368412490550425842418567049200710126389815715086208357892893163112581742524554683518715782704451270020795288801711814261063445874730328069559814493214310633530595008453874045964041161730898067361687711006596953057576713559990272827567341490207514640858079153645829980114060619783381046543754338091036665184666837345164042570529036005030961029606959246530256887004380140847538330204437340516784263097908811029881380232788611549319962216864745494364029832134795761437236644469525762351329081572703442577513522732280583667428137036992753007220554949642013067578445227863738348212351462837841754142260754436600394013534127312977565879799164466524655350910478385386370147165038396714237592499209555641253755343703057009546465090659743955630530230357660069159940587178464062288902019665787971352524542809019783618878321435263515939816970360051176732443198931958596914744592076082281833894477157699077612083983319605899962932084797024988129027376459938591883265382152041211269317112931772701392051491693244211111717958316968305831897856604012009833601320692705090916521175682632194731746807104720538580944562746513639215616625424496723540275954944115992994390741506746126263138883090815519946024898587604902541683149427980850931991880131171062810740227210972692523437164510563732417502773795143713783765608021575764947094438934972225289914086842186195908684860251227255262899733187095317843133363365307275313991994375397460842138497253909850763677914443178240198522593347042652132602590406037481135656781078667523041890943717777464569536398981853234002009886710543795814054806967077054125629637950090601709602703301242878234142934075501281020753317283680335596123452709983972095931467619366423342369844323263685054107162785519906504156455205586250587487964403215291382546561316128245961364092590699605517759055068881039648455429673362954773434546933320702724057358568884061847019039725164239977723577433999573297173033811643583341646217487505477278760665962008463657343528685285038035900074161465455962958831026200064432890623223029928595772039663726726955331000869595240565198876632033195081614918950782526010694643761571918894417140770233257807063264761469676777512644916538341952182699010544230673985200716659527422826846511631821478498338105674080128882238911514460363200297555288811445418260074909581536712555390905899132473882230702476765903637589016138736191734333818656857895485450184154162527316503705421540979391247689771894879835184899174004398498580705007390266103436271268329935773271437546260427872423721897204556569155109990729979538394126292681915304030486643539349508243220329188112522213331796121106916692619067123046092025871982101202926666259916448189987960984152581107511981630221874307533137849576191957531863509237911841056928901785606769266886640110748911275385074352265366654509984147336704929464401458429526107549898179073892416951224588749641957566845509426707612371782457999009767007993450238598096408272119392294375217207375534824679698632631845059532799986869484430638780774273183640770909095785052406934139285711958757841036544159864210034983027634366161095651553020883211211096789606241405140132860638300714596493234634238931199972501784132623617964283264302794927135168574411888437633043944471133928426561583858837094281029395298522353045208213789825138013396244945185573495086202048473551031837283750996323960688078539181956129364585079472979941570567942696298350937016433689403498692899099132294116375329603813599343195136043265799982184689688954431906243898009445507091722118807990939237140763552366679190688824999769448834396984559874776030603506580000646939283058144029283533431528942735824809295863176386751116894266892757381602446794834821671701533440820201161484720096577474726644784577060752178602686524476682457430236243853855613182311306784667389079613284843341695671765958452544803963766730955447054632451299181366513363248408715096772988000308357547980963589651143059658250175390747241064277389165693967996146458544827826619761401481572995927977057670321054269962212055482495552901230333150953888460234858829497706208298486589647945896238734878556415990262285961768381680116687196303069071482610982248970753797392811602024296685182947324259574356077773420885154490753101664805513929621264593132274021475268035315522755654161012564648129093831562025147767888795703313812801011875774578097179111475878070062082815653474565728790558441092226929373366587278671560279990491943068712250966684172269123123685373132558700083068703820430752178509217180415799353626370671313050817270182919857054062095068803508360525741180288881741813080988381657334448398074478851323806451196425569800824153854135952271505266444463165663285830328001978446701461918978032994524227094440252285193878600232363939328240483428587114533154308292761050590442596129715369848318769861956199228321090798860931965732922453686247106438285265928770162901071785721948713136689271216774840654971612875035907079222227051830662273885968501646904569215438846786680923976955594474973789345634732534550723022422010854331400279913682735288748306210689745333761403071671564300929284190269191781208027581768163350656825821862689177919804572867828531261775853628698977484778714916428311370354393866900232816985644311860132413128002025152025131870665947312232642435826347839281832438697910595822036519314155799127875377681826417640747281481247396679452904482139836611253614450058129578726571881669041879429061794443113814607240404096343209767803068725350812315022088250964737768754797436454845674060698026419121711871925467741974948113694958642823154646883329100671739123927698691102202512984100873308165850330818652178537854626874412330260796131812451687673613029629192413963416570474113756521728154259825400942355730859208866529700839716722485252477847684994679551747776726624227733990897348824122553753472920342986200753143745780793756260032773080150631052239357805578205742854206723601272897048131403542162291943461620247795420590712790110091609215634494528063608390116575869882833451655178271256231706490931691326866021944072372727993339386483069237125789257740780550563893891194811653649450138874717481542183594989863975029835411216909754621369333608490173179779349500244483353681831370799018712336569137618993738166293109771056079310170238998300330798667541000421182222284095279184535391840513434434412040746058285336553047406418544005329704471924201026993649969193749189796163409384538933323250524631986528526903944743204135834512884157273630659740279792437777048115774606446757861679124801767730728017058683175207752169169683835771925185104681656402607353521382037314976668013902876375731628051438188874289210321870276614031759743382643960042421322270895014184075413310847855937579405117148627381469796193240789954715758930008337391475162434948082295433785417945680209699582082706073226468144100269738218035009131458407211310439187931916991140254230461279836219199463003444752439084417825583185460185241122527498478576598377746196410414284060567232199387732686763080771284528424543738883967047669646949518145454116082683636459497543024133014168221346302577733825816045055481160019760792349618964988428429817201915642128460741078321681592306929276958580266604628449083612226536077311000281737007289073460230159104799498881967961325448740819871920722226941637558055427578409973521353335860249060073364115599715238576908493476438545816936213887541204551142920038850693262783752400495885533671393870832330121086900061488476702547289157691986706143833721082371650909713379883256503179383915437206026099384315849808108537569535020376274650707856755584153602443463789163583255617130034388203113282535521919487356282738153779781384431141563522840597957208939237042193348319022445485185272856451984545365953264487387407977066086686856979832860494647404498981801458478119914400886019814357398396871076055518482451789670903412615648180851029389013848473619111267039134834944532888868003251028956782182407466239212881891256631146840526374742460003569180327009540535057696859424097420818919486629452662152046470889764258362498048423605124057826920022923053342704569041053812206325346527299740436751223958926572627170444513643607288741157220211117052820068418266446698902485109077186319716561543426145380178892589283058132402840991823943747375838999033588741053865532668727189327200954989462667932045917895122035549588337460900419172967323375321648170553060091593598001852816388021610056774576406511872177807876439286621859861006559009884679685935807954834904135661217155589183027411782028638712006085870311464228736000017954589936829316713250909313641399981084397319729135110069059274797563080184704486965374510339520412605405353533839548018720818313285323551381539556736843122842973476076882462431112665688855000160654407426772935734850400087029328434985910596697709412661684882906810112315786929144864226989233800919896724489001748294418446925073433298878234050879243717917709509615467321308054900647448633469884419105989994331814318882572120341645948413208687141307844038720973242083057697932595833349361530848098933913355215104625151229709844759599094814315660222825293943062886355275435982165529618674150695854043583627086688160890472731178528198881012923742092992357339959420231060945487687211773589599023031684397939495382900096781533198991816513130644813492594248704009549763755172821417712480076450996128941389829920972571119686683792970363700655437915555540770894070468891684580745322617652088502462982095554286376555990375047877310427297641897610533336685011669714061237869308455005518113583129990977111744269438101141842799207642214532227069622815378432476748163209737400171944395400449665422498136532359220888132344351692858962200739549382798156877768871019742550873063895324989539007877264512847817688264023118889682658120417298001544415139480330266106494359390449746645469407422371591679455536908437039670514196449277120559632616416118176865330650230233389796569759688345318941970694319844112599573481733608405293161525766381478548018068214090663137880765656948947360936415954852105877904596783397655044621230741916193444300324503970423640603616929029217101534795584469303006279853645109478807889311515135512097646058600929061093678916950534378813985891689743530046264050067082400897859803407342040925740558255178539291862629517158001844122590802428261639247205077532969138728631864350491696085401575031593783065764341547504480408931599845965108532126526773192834323991721202038242899567543850776740836033531390233518196765030438396770798418445221128963332262734512847878072385668160455944063753428363649223487218726524892991470596158875878471427115903480897064855843168678241735447948161798353941157892340358364326141780008850147671009566357374584094362624618978522369605067271625374698971088295225808608947715694962408293495770055726103311968344781894596463239723564272277440300634211448974398681881050764317298567296796385640486338496277489894458312437405746872910853535709685640474051531310608860990843528040506930952170579567515495458218894574185158158721622532134035086804671831096462177105677314475565183254104136754357750096825421519164201531213319303657635853802808086729444006767770252932206082046573042904759610106563562161369975052500269275914036031060113924255432134178595048352636117801560133310866626105775934772779800382834300558786246122700553530595062492100059824941951878981501139905500352231331414177489442248515026026441952668048982357588638326613219242753943704344298898890194872817675099872135719728388183735590946925624281292518967653485120022365330380752874361812597357522670118050521749783786577563206569973905748478252634452118772773216928781022780348027614750639359946216090710193911177410266123218696214532549523139390499867812824136064864588804378543453389952457755929889443517021986060888269372093219064625348338424459616786250870859266542295831108246443584931149298966573672453205668636989885255339596516219426164193682713858810781220839787031222799408238537119259730827403150838127247579519933338674074906697302256673246113505453610000637394006324077852269069515991412908378832590901438737544421550947418017962111244399663387906469554014094704469239742605979818807714186439797416735065327729461975810415654688574516996629480110392710677357178895590595926470894734198904156864127834090335394903494673615173717094216131572018989977094259531236032113239373373567543001468041795889816352026238868146169477348750924608528594795722647696807576306491920482638288204582085806141545811561131198765543962483368472207550586818096642162497920761250513442844171205690653584417876772138319436783064573009234986454779579739191910020852159739131069075228047551715956388070508706662313468338964287547483725104937002094170174466001305173270733423447590449799709031623773031977413749958158954385284140979526419821957938396317180290153169030762927750874744617605038777011872398927177236552594396046920137842740475087674683549788378712137912535910605655574684130800946530734218582274932190984625211807804082320420747735380241205435148002193583027080182312048161998688041858075526805496654761223044090844125404607632441413193986504568188380863157786635639614526771196425830693369460558851770542676945873524266943245477697932488483416505603878530686915909245836427980713152506827291680406227158595580260705023493490404528759755529993588041729624514187739083675764209952176527190907997113957411530111188141979399278925708110404376536541039421905202234533546703627201793299630226575784692743146924261326666050884814336123700606649040248760024438803233624702759269635689848202034700969025493496106604556973579383491762959963826181337600384004220432811994954398172286005529642156529302382650165615568962229237580257778844535793049598144186196511233243071704507153724688472998085681376698398717633174005623962319219374411341886577822112930808563463742325204267079883127851912471027882785973636636575236401243591728469282711992259196382409065992175210962605324721346373020303377634235776516206193063657894621226690928434233277789279698434208475652952953981558198210382490888585801255894327298413689761395525753715858173237134757640333357886482688235356678779747197967825899225494920574675928243301791187790887980481091266585712136149276674243248104799089779864940381065240889357894012189067256179432194489800263614152053529138714218265084799556357834197488601010672513986937607424111235967925484474934507559806369592232421191885353431859377835906320875982697347073167961365235685954363041523557195266571847632921792583054388227248330263210349285824627853012404225087495859556044288363619219432678249247702139888879822164170637269376933618127131519414494343777171514709279582044594117944434821261513572447575884394226241242936245762845892025792577185623503061536057169014703556901148665105002960015341491747604653278088061084453819425879699787919186610122432755006834593005090583960057679849680390528636820913013940171590477158334764281025353500257984568569038528021236186172965698263817783651963500187202276881068476334125930736527481139522096706402727067997130677725143020366862080285049713456894539886685622319438802366229054409078900081889574559016062535240971134325122949397222299199878078119161097281747164129877792209589630008387338374210617954304051209936029933098180955914749887486662548912590133580885072473115213571218482946069143105759062006540005070759888648773400761014637044122224336241653123547583424643499928971391540829876551421987251051721267495432170253350585997706582936849912083963396305945089680254075013488368325336162410305897957490652264103269241811311340727891403958578910459982662834581474185118554156328131771278234169494129184138953762127048507671261857103127682284896410333167633068321272941412152781531811174488901830912699331498915341368517219259364944142160044445958817271306105847044718904179494954368575513454734175900160104636615138169040604192464102745963861873186940659068909034620126024253527374574397446372011465705287734196067241495083160599390073384296397297536087521515510869960431584617398837325903360799971243905900732906758156290772563749529217704614450935734379146067808987440080859375956341143273739505576215386406771400437197131284269976996722721884268364216013615040861753838282959427960209469946059727512940776414890616864334729596922032947593746698009790487898474235894206081257758005574868729902896103203033240257690948054478203890259025747200710662360312613426402584410628072448700284627827864264842723128322304838940378544181751366991826390171377617117199796288504370749767542391707779281954853052397263600805650151653669429838856803773617483290171470583415927497352060111621462643292291440126913985037414634542994410951522547276509000603554385039440719119554935434044087567485687456742032648288247196275857832034469154811391687835961748677234510957323101545587214295695442920197510667906270669872478566473126856547287808352814648398081291229525482901822488690407468924107198294886872956393165660095162508105755450024417406489119239139819425054695462685695655841049628954515276367832195614561775349323115550922913522369907089645251105366870423175907624364323308506929257044229320079594125436109153693092119432969001333439952478569464003563416442255295992909314014493709945969186950045433794256193528373399561090656333692973380183263453490998459535674408148344188694663573505882629587420885032549642163307998081205960194637134928156163324570261919255385990833573660195157690396368658642244081705860916415611875792905038925056024084963831482871078227253324802452997904321209180742046941939676770402199881097583656541007351996603534247987425662374395162517679299915518696373275978482116202914058172192321128239990373235627040860089073796024366834799012360405131449625148153020680801308822186390044381816259956821723258249477395645499869457821079915569454551109780924007945127724332050636098357302477934608806669090227145822092271415224699745263018738175306504646753545043507904831694116245571794672578287625364797872364721821503559025351745107568020870401509267353722221151690529646152671968636633059354483966475435302989318438534366888165605359314161803234441937877087744490249070827973161690570549457365395042250269536374321922889074704472787241352344782172971154348440179721999001783279264029752471253812247210839051955715954201773092045268378063180665921781991149025048589280432290739546693495155892351196495283636233357536611827815704793400467732588215866267948055470743639588822737934273268146860345963551156525101223220025545738409240352024070118894105115945568543649069159945737022642967728460582537282277889613120634578027394733460606245571480031752430889769806466573128418418670089171412754241667815603916582193988933935403352474424721715790766952859876754093646428924879482955503908706297460476040611460890212132595004502921943349852329206983515937302192346884929724515909193552156773222688227019387826422157781479475879040835162659855903188669272515466753753115971538677014418871928350267521678002913989006962868031306689351863485822768720313190761630582186860485774979263089077801537851622657816644822403461985193539472315285924664314230758388355428786574191378491577006574240972868513645414840733455617008526027502474709606921923776369329631957509649980982185326660147151345286657836840496612585866267294211030500106493943466412036530373208677629688654030009181673695441132502422913256240038895176160263891587227583939014871263046952792828194803227341760854037364911534453869720817463455247518564480543790242959987201423241324259806345965022013246018056456728718752353218811811633691415718063429687174929846316570314578901876878691351473139047776552486230321607668242661935852525533336249850279944933505451827992494386553460953905719584559194715064697124616928409637730884156617145968072579245527508967569391206868376948909526319662837604664322516500484799404069110932962524590179376303890180766255410952049668693185778520540366661120551091735325172359449213676707514659355682691654712779996432136314665122307072771182863881396162256646639269020276973621861621071523211916600231116138844735896468132703855301949425112248585215131285901339538871610283149410149284242778189202727051452543450803140719409363024467100696558924029482443838494365766221759147654156653968866375021153521538542199150814673375235769457518139830434229919782300690766587252575373164012899887959344061551642009596887847989738660762598690540689535520129270209755878639884212973067288171176322348662023081992971604363388100702243143343537121902402679857923851838598338816132085166448587085305016167799771475259361725351906840715362851555472815496521979647535121507399229631439600136354903853800282998995209347576759285954729266787298344569409705986194548978069901520069393076378381479517185106030472777946566638815888697998806953997828593757308332273328031210106747992453534908218364551857491733064403740539219949342710772076215940777577974222247159745736440995330398529829873839034070612791382505834309882522478424636496182169323811200871643537566922859378084407543483951977391079135654490435156465031179381043496802605915028825679602178256336277648638407016483818477041173279782037238347987296547795086284921458580359836737175442926477136265571690606341820516694358489388000680705223248573310519437731053744536820356669690119416008789237439058974721515335337577048560169107452899396739511399128758880977963724338439140758574480536704663563912378772330526294857694063033552854916263277988345325187975469763306117492974836693500208283668799496463670992607063744351324084370338242887542902985638212985139018534441172764262373394960851467954165002444250475315044349423487349423730461905298592589204303200148345150549147401080760474278224646826870512520460246464434314110341056891899275357043353856436641113485132457833411335929773269068396477131890593259619134707891271161483263445754577866756942657086499896854519523422122115360436673591230076720901472811526174995617198421282843771916575381718993494964974041918358093204360563542328408602163729783776877819914810467188552738470846321165164957728802550312139770644637987172202265357538218003657789873650935925217098562393059470729304215315405029381980386624114250846755705577017300840978373717543037054481260898248987915420511552984725265341416636756422648380469590180166097973834262585695862887000556436106734042487017640667712659807551823167558112090654987952830447334050507312431047728676933156911655593556179303565903742362173094757558829009136651155383127557527745061713014058260811540389615643538683930618215887798720957396231280747667009881037628495627156934201036088450282793578547915988724380384200330919947840152118242244318331423779153837547955647023755347181142718827835528069669319721501147651938088153125070548286109164568726887875112807601106651155418959719393561600333081271086771246644021092266002500847873055668325846796352685511943133642328207329868017108874641231040253359486809653248547958252842884191912204947122608109853346628950408631199776654060509913253325703121540504158748799656919802309968196667458376827627566147719085521497041262714822659376042854653498749070798454726199882729409609774907144259109474459630003641714447100989662803484109127650785782119128145843462111493015348363281416904638187013206088329479310947589877033193115657474802226111819810856387476846024088249158148382579432134280154551986015045299559686423679206701714056182115264527099773252005006252034936801304894395075664658520070741429230103737110953597496172731385821966137544412150957276287420563974043692532570460398806247926738764990836183463542064103315599677673490769292240426474903689867521134963589689857367315798384304307456438404364348772388825386192741998429187829052032663448582211755145290139665013418479340800052762336495085707457775507569486597530857759747654368606666138632607440839391817214375460572404202724963832378686227147401505025374024472905102862264931605579692600809263744942132918744525700680050647079500479793698293145150255129713501812826558590467669229079193982486828319234485071837080304900187318461423827338209370620912309386643675199252561959508294635832684645424189049031432404675645866429240572946303908556070748951813449346243986302512227874710005517911838412871976499229285341852555128912205602604244476221296582057854265405861825221481972420026245450106309021641799718909148343185236600583103971288013501097711913767691078991912313265322691125748830442639870901837174658163173921788312065760465327470208751954446423069324387033909464827505346571185493696821439680960276434866359853990435747069118769906770629343263306726771046210517414227242757292549395088391775164207211602380304370291057932818441879987466850600389512998862472759383966373784950026136825600803880230547473413210645861548590622306091397269533293253337712832312239834955755643828548304845892655625242624322964815069982046959937906489311584934847435637530184644602020550394788579901012205951812359658784681431756501622781510004375881937653624377687729156130582031090242368826788907326216243410544963545033849362343984833299932430161241839104512964235416929067136556748469726933839270124836472274782616617171885345588129462749274397366965279940866579846225254086924001720711883923758769437151127720572021040688094947884152841291197808824970996252882849746539462166933749959387237534079276606015956080057149796846014281398534505477290575397570232554557336671080845176884308564357093427777904272567020997135769998355018604964506113232050387162800065552360749819202873809948455535473917866005764168259267922456630374690012369903319118943471220841924637749817680688757061410637362940940174056441463210890219361133875414234414847155857274064605033859143505884157436578408021903271543729864864539445831681741055382842934885456359309237471458026560355181694612376495549979416202852628485888834750442207175176016546952188208815993903740214997880666820471127022932296776230870109628965396495419814796132023207809443917442156357774712248577275302723363245476550668428644937355036933326662800872093002295694431070644090918806678489552302481924513729935024024669728848782364046682251473858414011103413598460979299341368158056859982220389178917238901453222511607870909105437024106629786488225761011965572255080734907476999929688273663009608706024066473842264150736271056816403730381033811509881209156182834413961426055769488290542404224760191979898899435617643585127572342531235754232684700178780013533471689351365725405462905987726623224794628812936404915845116554421657442436796625548776680781231521486041130917480007074357273031197714801816756637810429728162358711110390544087675285859439840416120366716984083121468972775444639445662641048166631523169377674569087804036833355309266660818449580063332267627097298813344027354180109532297901923841370665174053395591170570532756782924298663680431185062732867113798989830742266639695311523760857916215687553924266342549432691407772608041271364644816781900066222751566959672920967300574413663148257269085776727141782990899109749347065878384567410040175567226458056180289646457354115610557396813416022352399969491023807557647779687700045686442789244363674125124493732784431792773125340297670551384328704373791408802881162937802276450038770078498398118889088849152461705947119813728112563499328588605375337908784827691848170982173372877422766534844564966252856319423476951235374770736821066553873596556560828102364586329384552042982336039681007934645104626973494397352164681300554683143222364307753709703812680761171995693167366510406699892561695753615371803012415295922007499988097274073709399180566323316807577649008559259726886852623016099543754081338846452108918659883519559919970538728948628440041192683537914191003983823801627573922625558654268235559757256780456199266982671426277828683689677180819049782256341350463837119441956609388922933242455033823687818473685247782237281700282734990920686769772382083463389735366663609351433891618985216240669579766630931749470618802871614361071138411394012501143196252563925720771896209394659563250572116910328462090351311067513341458496772251548566671716713249019302728210956533863720819796752690281190002544149998975912436281206468130277241520599484724389431921119137493808840157691942377547857647253734936253905066514532690973491184370627968512264502137606139917787484929250314854290587675487910728709189900864881445525616035786295486398834763419424610035572291946014877713613977556830785890168670021131614706944772163742343575448645493606369093179081765777178091521186094642194243971223595825708950069112574310923789481768234352377372408374844456237984434001070438275266491885570183732423247604784454229009181509562899025397454226039898050920699850966434179329865420887819023438645249992625599968125125448104349101789194148670758222250296068281211255236238899189654975145647476374235888272501189598794298339831309424585085972877947365602696290414397590424376673040413862646829417575611068348541019035148507150549996274496797327382644705124257811573481523931287613063913878421534677464194400980330963516323284019812875428446745382411478410258766090550976034620649623212384338373563092326998126332620986892394648196504175278061037568921134858255401718857282322150029201894174690547061705188002767265561392944076717949957724930700474126047691364378894578898254866067673430861413906831586365851291261174235258863968807061479192520409022197011604600418150806662748707476978696228462364475258787605616806884786386975376921360819080336422864353081500175161691754684648510713268407962801782993627085396961244458272721750592528721243178896450664960100670139606528747731492473789279666897505223399689252733238912282472246657700662654866147208884177896241122227106541958551213612575058078348699991302814581662764028477549570668305843750003915252776114358958157647037374283158564662495875384473952412602724019059089015335139035410494321211727616265730796842183619449946446720480299786085592041495742482981484137423971552688292081600892676788954950990447491333364931535574574784947029388072780820360502136952480816565846143666274531341200246191496352916042040102170894191822784643826421956912046355533951277360797064240997773013250160598084046501982471295738063655968286462422611900702159524718725347908144100683910627555545283820380035393353070871219945318589999516052149814946200688736709425365535526760242570414596211784582803410900370911812345607184524616219985831918461458115067985678161964653145346114950979915281009148051810199575945548522669914365550297507285476293394484968034087712573871233686678952765582957092858037133014742897927952429375550654155293781854376429520347240276001949240676379818582631786851748681614774672064897050759659173389019850265673450094561689067309744013885626377272994557089925712906562042661710557760269546923070497402824374132900402340376888745226786374148096890225751752188530838103849857381916711553361242933357420373214367693806020799578242978395445981174175484417677046415991339576620637285849588684470993853407481423470447009460429819012737444988057883484989865526995454225473441693415214747106597652326355183324670339903282372569152769378417304546431861443077182344152133121356672861199905217139764132066616854653235121183306782963593825343310905638988960765124962276298201219396524651040106083536782988478008136377061927948429085425869028135405042203366759464964400137994532025314306551440371033830681625681517244446240216093088193686709797150283301555705587722200014976040686110260540287068713462352318562896262522005521381853932918042383533959074767407093652464183337873369072703480466399596169558039681045815459617265026235387115264172174215477723068221440520000885611536078950937800952795970474643327667922537386798500472358983618576808172429250804654381062286986103843860984012664416903727404145151247663720571826439022868549028361139884143560749721115414820859245551054982969410766680097464001311068841608352558563433851094542077330207746918213516028244469989560225139239351840805710655629871411841867453190804896321419248963373589502371579487510516970282742687822419631008880278067896549928352896761706951746103455992622158321748033864885076212365920283112971576849352577293977190537039854483468235206843365440757328591194430280371294544610307824178275419880134829136381182363703924137830260585235281397378022087491897578220632610591287097359937113043324269694597433551887889087507077547281546068236305188037394113224187740104349887034798572011200955634278187541519425107986244537453165949596630046030003476277207895790023294105901497014522954708189907041901091503156409870047689898732421645272787172399865115924406228584961931895877789055670127812456657916332728227300441775585552638724757322950151266211267402013283371002859194225152330680554298350235611483623688829419778920990733161219964977399131903871697859337211586356612218698440617881632104726343925338208903298140972141477028350948656450083207543219079791857035975001378485630209933939901812363666446324832072400258541638304816033641441319749433324098997886155208354996589161998527296959723744967245369659632102034120806012603215870801707341347160119996852039313318407534011110373086534825021371034948490528415956676803074969089827402190436547636745681035277674095705367020250400631142507467566506916007346653736181485949728393456482575010721855836838891353729514733226940433961505431055258809228009544043189956481697547349238531844130933080445902866492256457017728339494171161473091821526793542970458919596015062121118456615153497893005217768765070550035201214155984497035387065975184399867821773583986238740069302183684668199616827857344886701407371863005769042998003388408446146629077223683946291200633019851992762091556655973701276497985984295348510440090742362088283303796016009547056484509205138900185698833387610701121018938923826729888483705206063081962924735556206051757704531509867123545213294807435774442366425122917791522438684515828210032715553587325563844123229354974112090128409270602529054924328434497084061618900828749684012686531454197515957452289282351399676163916110737550383789289155189411547883705537020542336399745530003508852520329594616556148753627367116732516745471070127137970505559888702898694427540765274465219095838212662491032522719661358850453537144659881054125116553629976696940550736974808132229238332244369126699305838896194686709925210734444121893722731183656744193487579705211588786278026010326898604056766087265483450245981233531275556007926243244009158381427393248773369607877756386319770901999372820752393033726489169138766736914682924281891416820856484422908957946824390196548795102050622120873949076567464941800653270468788836881590803902075685859273506195616652983094306990204374236525121490120796759661702495792344419866845748364017041801740464458401045856094771989706176216941151070765143941054332448099711141591684202222812571624523624637061136753124060037427259953925076158546531496506967573054088843396772063588501809534493774093688693775381668028409945969521279093623369121817962097997985525437684665959828838444298134616198353086147700267112561097482598954884712557386628110528458160445741258524552646036058305271005668381681808623645665283491028320913953545139440048049599225271472330554889759087923415516277038145614774374258275294906188865309521882116301342707141261183495116474916129725699121686415458738284337798141812912962089950801556929739080573888044945300213737320996840979989295160192254442890836705866529226392620250515135160254834442255959266757433620690999091410862559262494187747486054962538542843059901399955986939541164715379298380719787635919646638428868743054500935007697066440935194645664361908911575957082703421519743684798016853083901839576844758094946793481053951160948255409277056377495918733947092575552666777137588526907068080071075072385210022227030056587770232111127732505935277108210456148729239999610364513774734626722450419954996546185691478041465205236942832927103356726007237254268718146340518136375047919144176545309933104844163547019713350645107778364804072230385797674490619148004135376842533297230001356774408288666131510092537496708517838865160268280660477004166132178197304998956988885850596377607254695487122398055476375678329840657666354843429573884374661908601264247073023689301270777046388707819319074114618576589372636161610108159679311277087956383457757741942324112277649116618976104416003110487621122217313143001432267444927721434463536398278560088670413278845429769154035500613705684846430569985964950760885418063533090791294949995142839947262639140754337894943073093048469900263699266655610339639431926923663295889615494082553736482550437349633677739834868203716066973399408791524839346302695207043261589353203414029255482996150319639853217365414392325132622684045440926858114754632870645976963304850412143436942785900148254431084115833035995328672693102362201753041019343610481165288999683033645126296569293745799757573042315616455401986747717649597056825343776701366886145635407156630534221581300049521361710576781970080542229107647265214378274719139841809126469200731686294816420580870603981016180906909260705227588903861264128595682150168553804721652265532451634863822089320736293449878908998766301384953594433692045575542438713006555467512518026584028442655723160708096051064652810261278164616892725996946711944028168383660815301122954100164331474551932805603020865357447211413245305831585615873117200063917916757511389992880772313033950668336198414823331722365767912276791098517985975288364603744569455436583710312698113522403275047258850090832609414333250531340092686824856684956804322058012124148737010441601487170951600966022685920814258862423285386649922855436605130331283035258181394134182168195005654778784826717337508736246741912655122413818413812858362369478147354770808393608121619845442860463569178137583597974346363739903897712905931065594516629179145208783901192302511782158713204164551750049707298666278030015085139961462609221852355749738874430160452460238429389600261013095361089729418397701605698318630648829165744841495227348119762161994215546372155562627018543467272916952633511938832600946459225155458647697329763664298460282939165617927811406499390770368775813305183598266463423674886641451796456558871461666002939301316324480136378652564691682451905941720206125185628864001573968391565622548740942367366454835512775758741881813342591457744117139808765311284604122937764910969563306485251999582900691967689412255953874245932156711031010657851514024904910849823137035773553689616707274338949733402217016439363037996028655224237631391527812042557671351118972737110990893771909687822040099130616400203874677461829581799316463765453647802792541902005192900916064885157805957488968974419666465494849648693662232198392808934038830328464997719269297053780697333282751929378738324546277090187725719064865883542782914930973329308058662739482900963866282791840585063185577527555593880761461099115767875480384076782444968987121916482666775186988384255604757664632343042975890136231204756137908160365735175557837046012511306025536412330768637211547254705771774027406908241458120209217549388896375715705468266614070055505408219130365163688649838910274749183806837576117390799094644210139804478352778604789707198266896719243328831203339118233305229209016634708421550295840774888921618773255992359654351583603417985569898886664177067065753031943472267401534372765042902284078140216457939894407123685857164259403861528460035104731887898156642008065737072863299457233491960722118636669831355207741404096352499156323099617158007196202681463931555713225975378256010001385606798267002934523558852911334838282069424153718764999116636031352876628642713638037209263738407469761834364943552969814132669506767257306425077735745166239633527228029497267945945642834818151874367980742951688973735235403678205562684035263526614730076642678309514844318743204163473150725288469176527190032524603259380649189211725657181567448483812229383570040540677589425538676473447314343000185283927720014106987301789084127092951116322030358481543806568664011629581955665798647980429118365491340330693722442201350064700158261091207194361185794633882958735892636042243188555166942264375931805844679067745618403475134876424980132045845475148010728425900030838646808747008986419611143225705557456630388784231913310359529030641018510333441481503139736340616366170353475301554676715670065701731003464204780360667394235428456361695326473801241815774624638747920306373395268087870357358321711097150240455516942539217437747478288540251950929973213225104669629858522795438097668628006964705156420910868620172905476250521002395798605516580543556681083708422777427656084019398415517203347223898114808356749631369957632466580712963988333758335831330193095224055457681269721364746629946243270144676908392448945316946921167545033496665344605218890270028766998024793874296470349122291915754980830170122296662957254964400005822607208075566722529023813132250201235271361988040453176006152714467222365875593478352930105527872700772199711288619645202569273306713300709407621113814390602610148897873121817787374211405809943524023951165798600495347414518183368547088585841378635134150694950396365087374721210752835116962252432736258337695715569163566973440120960887290258509906404137991082023051490585488961553521520469043496351425980465108823936445593816950421354775628134253756874695417668357812238627823631958840217538130588432291448349614575002917987535500767208927308626791876892969071267811869825387893842746770485995623351916379190815313885837625566664910530064514570455293885633551834469613994343023051738952896153789447267339120857284346496717683365836771678664019181993932450191262617719361172392129335043649088479506139569530251555165202211475028642494491881644071899215843317629009627840783461115507230927781053697204808338594236759140855791560135948826523579797688548199082435833222510123321232495378674863969063145603945691856612900411162160977600082664418845056545052205255707406968878622634816748446758225947839473138736523506586432865135169582089793567856262347533760265594437547959067705948536856831589501865291074259911761582757289612695853066500890268612601281346745341440348574812991453762745433221949439033288621939233731825967677216839784132351308333446556857436758303249611845731394361276966666293322135131501030060376068069703086314216582237793747046079898086961595569155334861201576817196650718768015031432252611218411537081534201548472127810756904653777324233023707536111837919912356258339174475502882510767057303399697165823678990882596170887741256598817024417091019010916225469547595748168000215706182246864393405197810065997235469763337760898055088419851445437404916459558627170717707118838002573332955924412600071800132824545695553102786443218013727205330506158877243972405562623051235983716570215989288396667506638335039276718657217765527534507389823842665198875974284407127438506232886229713430268599664066934572834438749549959182918629018829890192879974846340895830879404471241177567091670072561622756753634473780075623849717789744360256783421533518389759510341175264832176245532795363775173653863582670474041345064232035276021780065931187768473704905107653059652964056999181527462824570752242250842205885679790078673044865854751026631372649471875314541998589415828030493370251545585727889309035714815284892251756600945442232551700936466146999427801984763704381407143658898929307299763238495840865233222221385628077473473958421919205364027906738027962717972890004324406536152932486589371223757664837527004334959600548951612961211266575030925781730769311542166271367741447770860918048351249579362516899727052877895562172248363314052709620885696402458361595412441601335465770069457947486266884083916768533840293317420039592560358649758978287397347207513040662923610360617443461033039851469930086552611451608504446300125664132901129240754893993123597962850789686788214439751225735044262161025253731619454358644573915243138305613631292754040593454602979192850196589022000892386429945809307055904355717735710283929095075282024407605744166755051147459921602828851735759073741071792264793479202055828665473079403662087069704518333103613509607681903761600545838368988350331890681906080770779310233874083814065242240183169124323363467146064657257369381587827883917709952322184994803931530415065204692888067776784453263158278724921191458902194738300295799938302602887009192006569478810102632701185511297238099230330521165849994058580106215588412212793892105972213182869258809543700118378798751052665100799857308817762579674544905098524266906785362852886406747832091992867077622509919515005377396633013969935907785966274149464153501842630585038005903749013059687472847260186504538578458069555167711251723636199367812258345253530014949077874841011803883220943266472697492560199819445877136559284987182112801878026258762295724033190852652225197967167441693017913225656189691953848095561900824936965972940253696997428394209704595239401860845529403973181748734324064618880559268988993967506123779750363151936384706716374504784334885880582024019806833554911587006459635093894153918758630867104350639345479464610670463483986645031010027846648968154077778514048353595199680578071886095122000490657555968608525007657495217584557458356024371844431712425077989382636078180554048209179122616623189412966300587207306682851125770818275311412513578656399907056516088663503787393838892749686265005567102350534547678680298539533577536872686466189065854666873044756750892301945886697145943100148714365304396877309327307625978621696664937696613000048310677472676068768845408005712487957992287335212966946801887789425961067239909736600233283057794610099330705871143386112050244602745496240551897888182953910732318890136520033536405482423751930418850244696725631797034243620805212048321680914398066397604682850157991882788373730883444731443729375735072426106172414626979650899497093764419222183469173992919172935544316354447712968244104383902901324304826982735680815733390493899088423212868590516779888029305620737145005779029487070534811719914086300756965111097081704085934716745990097950895988252463764089350598815782060683835716712012868423253859019769031243857922111762315816878316732972383457281716986482950457836898952078339000574617220925831168413318701172987201268156422951021679701969809499371242372486724209195668940027000719431433443227830037661292850977481863225431886097734494333458023290819999148495314680980112472596634076523511867731601349362956758535369600477571683797512247689731241471093477243688220702147546368240393996153420067072650281287546785313730332155307337688339681207287517021096308938876704722199152082663657162919160582348641028350494794200231875643323700605096214898640202673183875125595990619589426896818741003664475962640140855863677934239740475843741824029814460362687039634368428248118399067528172625225961338680680903222830116021325368085808310983416066236675639169235414765213104656282788015383135182922379129093402466508236567412652759068699897102867558603412649780327573479471200623727683256956885365091682344149947248764915626771483387160022256916224567292517579978062583037495681302682433647085886311226379909140444654244742344941185109736659063113901766632710632080437695522527399078631924253207120011380519574140286948099869583390454549228429448125391552533739204558899171989469966298937437013403000455663707199187236004147795747341984113160320169656490162688308990262455662989793290095195517859116287905281368232306931388746830105594328894815485487610736246154020265938440024957018844565503846237302052229891467109540196666583892727785825364686992639336702518617440723161654146196497333298605720890660635368446332596490170717297349979815533304805569060963168393815650090512957977961366761363358385390083706705796689567027662805302151059677207040830076481668803260313574221222492204246720467144377358367751635105898445290029856095781334132424443554855149897851978358385105398195191168712906599650135258000731879942764896021067704677821696236856368110969981843483912546340643880730614628045593697579409630244181015857032552052235297290193152982235172440462810888749728430294399614879440957738555413313931401998912395987857345151929734199598307544821734943602213640199122234358262040470870793252115034198817531093705059559710784902116757650581559804997813916650264371352174166274503808642249835273125097269901288629971389530249818187376012273895725225976661226276470595621995793471600446255088692462016165374832308653006292374144574472083987444962263866122471887797501210226587868593819637340817239068313110912675593181492450827437364519478902511344621268936265174077377871646678504799751252549752070011783864806604933230060352250964893454810835893451269290992873124849325483514500818694317848664880050433895704364970213044167577175328708833767417781610998090840245796422436682873038286752070287229304149694970179750338358726723963752511953857518083746810666682310605685520972444561248100727265107642668363302801649102065681246938228587468279795767798269492028791834651673477251636457216505619189475131603209896306470087283363897885036338995621658177314009316491977977211772790044514242820745823988545570731598924265694703349558461375098042421210044207618691536576300666118526839628795141721657363848108411059120394878968052626048608976888890995277971921175635608370071054169020175277250964131215892339789833240398935386566979048242661689329408539872320758315144152251577491669506619653138183078605933165124768877789149806343487827773490944390547055737588047930797561646837645884160687427632766786680075489491643681000794694264143835980611431156491666087486014183098388030273796410396418472190123201719555438531642386847592610353321703485842815552630701735367132693226293127324808729350492850385959692211967659593169955588611300338563803289366124825075938397775561775291045248825176333049308820518305712474997381128803107673909522642322419759342991405021874854620425156122935904795984860892473697982128486453166349575067443676711685054137111659233403177807490952408107596344811145668337465344134545500205515487226855071626767573482872901168417115342968979208549691970644564319073593861574562157468036511221618882675093436573486388021326518492575141197172059659832079348540816656265599730108502059923025094464444203251891786457473011628824774135604717949141260801444269775017387007972484565718328182328037720088150565750673530939850235520298105988534718284144851861454552884194768444908704873887954376127876375125101697870410672944391782250047762266488006874371806943100678954835151994965913700025962510199129005823695460041088525944395444078316124513321472835016653037671847883870407331391205044626005464013810039370892779798076353005037343784548088888807573122093654571185851964298308812563963688596688319228421953367420288812646087447559887837453358504661123693487236173917906844884725163615184516010454846226594955573268272775073060476626910309916083415853857838854047149504629697674277829488155845604349498222998635586557572650235194419470562810876439617269769371796509173882153023465810973403197546260675423776994476830444131255428317527170876200858039101356735583192849044039121122229040096779515573668988961720763644932971599535710278062511624811829695771490839705698544999609055564496468128874548991601911231798561709616428780026234669581073773654285937583915902485652882607765323129754182683433408116452563204358989635045139268628536840133232507863255368566148396530549435329109176808229324882740595656002620640914838666104652369971306820015337712134303858613034711409826770917947512777316632194194554789143796520030610776153313829552959201664580758452272852042121982217185019748942131421830575992834616254834938456198921443215326825072822631085647943799973579046855509370493478981943997992481412480473296814149215505112824338150735482323000858087480740062787590296701248260047334216715671506191921771674436000479081743463666155187049368213088829323148191187119234910352523080184304682956109575427609158330113456419030257458152058521479561673757042386557270302454955729835618596318690455106843661839024664168498241780152534515487286099054443482716422722430554199185951596491524721207382521974982562136197956802632251191420817578817862012799529432218015132134864431209587972149304076204575083566207502412013023124772509922165810850810467249188387582199763216174084360151018367180686938926709536111035653700141593589454985978314156963621405830115496947539070070704731540802517576421609453380303903792422176942417603986817322627286869369445174395913384868452239865986364312048531056748786224393560685545410088366700095370766583590595484951161407175828663627161743310979737797064358371400552879285535587715564764118792369865658350604347946674720791116547238142296408154327511729757964128050887760341023839720102802473806673561876405139605771961750923468552389839017023653394126368882865181558356636835091151165937636121551926004784986126522470537283526228267137065892293462710160154994101513978377944600793297622109851310431104521234694054403292415144671645444187545807728162245899627251473624471136851753562838262799641823567170711186941614070651783129442632992335681415380092971456954626827802554289124173090355938619450412668424156289425400639422948321877906510370676272679198603617474475188794879896676438756371730541394256693869278085874216972862575677972796803185519497198573250628324393452362566500454846392542973608738061724946512869074849647100084415068322351586190124678553248895054353535611561465896202169723929464345900806956699611219893205986781274028116209587351199033024823624723482479625005932228703081439076480918006636785110182172494112030192059472342277701488063705537161017426857691306475264477211874659712237936885877300968759165346515942239250914807376564524931951004258847316441842719345743712186257420868697441759873731224476799831959803545142507019508518228733485087071889303009618678716853177982097699855532809586997643240522287781355730689204509389905355077099056370774563093201298627488675217464640406230147536097622699054253945412560972954610697448560245759581006011782328570158917601871814224828804639000899314825908221820794518146454980960433848960498101176922700417697721568325168960150869774318679254390773022673616829279869551912046481977738083459287090540148868300136564896605976099676123761489615028771625363119962740410689918601133804570268373395111586678836498436022004205434989794317607756531150465771846332689332095440194435046087346679388251956217991782005650259213270723137667767970871650698690297030517310172633901430056835152443665017638166765913223677753903173419819188125808010223651240201003387141611600942067310661506268702610178193939980337678631950430617679303351693796339166113298254600226311173835544677004543490983300898665278817727201669474377546763728823393990600709986243863179469059094193540338060932916710125045040230327766247020221330415021209530813909544845389082863013553678706965773128305186052361254067274985495792115609385117983687939571032369728867978670823131292738611126562700861963513944649367974086594558018166749764768724692613054476192486091597099555703076349732858484246262660342997206725082546733053801902775722646565388562637952130301931624004882364552232263471744508300929472186406084737595213970266143107946484249879858222514615229558615517400950922910665081433334096170678474806305537462691875118734846316222066190509016630490387716511762149322297336022863280181574816796354155742880502098167266372278116343138446258194837834557930886680355858961158386580382688807000980459573450750770333853563960067530042640429463463487411185671393305777750914140661869502262901950171000331439671041152512241636485080866751550130545874393216527063708701538256339177603854570402426591884075769346444608773608205490137760024459623306716985844768198367024707186750826780927086823550752256646022845309568752470406904335581119590786090367772479928344828260152550680386104191974014975857313633737979672851357609414187890722679748699718208931886378316538041873777098501782336810901935383797885779498756843366374672995687449328042666534764041365419434977201302538844795843034959069844412660341649744779636332761790105820785526088416449428044078876398941373090844405984592950426436663605504935430294380703076001522535059808881692010341152224478510910203466179210284137471626153657476524147269858657779059347231257740512477900057611062679594399576755588022762411174862095130272534623573685566601901472547530958050868018966070419865050607422329071092766550521661685147503130776565270844304747742917297363896679955671772850763635208696875249407238559703960038454584084204073881693686533633089974233900581316898703438244652765784473404695678730765054642671012439416465600593595015497287623738160359065350284869063436285363597746311741013182527674465216659697806582551608890294537558341792266180594305521132089174134535599240454506175534361732653463586168012198316594310903698632008012256666095329601473414446620378100786108772364291716428445918318060676656993165556935701785710646102324807884809033320131222503662411537607172233865055430780920428131523043313124027487265619934401938313209467123541251851213247143041244581880318591390162604811560478381551677608429571330655870647432115782039853737608455170809133146125083820843951586950011572511234842955133880837556933342911336569994904706410132262438744227921772472594368880325908819144445472440064243506053084159034004189472716739739567791452272876526935505789153391657580998305818100199642291196285827638600633844351227086302328780515331561887326272522971729985364326552249487762514778143975194792093695781336208070731950541798899230500639867186886618745789370560587885633338193090096362727953324882561863359290630789886388426933813167455794819135456184361233097683696861730312167061604402334716039217313233961944676034781097078514766415139908477920422887090057619044557547596117116829945104773327212180093299089365283128616586454368176972551247070008464071661204785617191304428592134697011185356867483591811448627142377511844548071826435065090770183838979865959828897623224225776248865966311661503967071196005430669900317778545554085424370811621689574121291400693417638066839927185295150943037097649868541439160823692622317502516074587137799522968581830086439637983778782114946708047569932576995549244772984942342223829160399603699842511202849666270498763712044210778569079162273540233893731705711855212886217338711886402933982066985643218965690817698640481885146050731622426732936360610154357152155810440102727653905222391425250653016479460088358348451201543281954303494578622565844726342041207845488416795308069149344225756676027852628498358723171353519816661653335060647827341715640556303406255378063476275810216099195362231165256315839671053678700457881486939801869413830086369167671200189900143854751922666180622759403021150587201585092151035344030676690325833637668316746976042450971406409888750036394939037084281739994285668254625917395134028758493577478416399630566501189991030508344956246593866797019212278086684290087333334032427488904566825432079715822885575354622760922643411338332469674774164336819161105774085343720825572435929032834245581975551013044763385893742326861498973954702424209656628958701308516588525226817018561637203793888730152137035999992154282691119555219174629353867606555028688673722807821665364318288949953060966645640050162599354405828865638676472311469726386157381412994451916399766660987700240900376474557339129967106539518574201353585047521282985582569556241180603347327359457189062186249921285202560999528818308216123552673925204164565597492018813234742741217245498779264847713622211437366454404974471291248367086915317169117321251645242625112557776578876403220686167730116848664315094655873326025060155594614983526484655603734645049302761024864718143358033781592048326711914304880260557016710309732177527658464621746045225902255155149005050150411217550298369378820717667690013034332042760233817550776124565893961363920832114294923331395043349460249546172001460226159037136037549452398385946983886842196847204550832591335753169527337643739577764953908316309870887234186464806768845092024395086730714424825389998155492844906123673823572988317120732714126258157126888483466899771272739666578732415105079690636833428116433852880712058446383060420273885934108238993127975191165994883184455007066311089580005667187545720555736996808279722452672440474196379178979524632832247970237438961632009172788883826724179598901487628809483675813661916289751269558447932585985698440600063727888938365339398308176541130028204596866806690316004040480431683536961984314753364526601894252962252210178663949060696403791167317623290356661696091862991504045060616939268408761928133904794189687025769961205012496835109943475548292821861370377700967078099595190450329700304629697316154487498282951437049958275117761763482182549797884149228966017383776771083539890895943354678688300270128796455863194967606496681652212404152765679113515469454194407312059082628096039434958086686407965577625263134323389053742673606459917062274590216122771707671777539598409667902179266940500143729546540487453091482242081444928005471691966549266246728882543791228862651779771850736141197862313398426590933163242952523311698119572944452462210108146463897710344062114930811968339404823969817831802459872070705293405123615443279117469681908064599463989792862226857151492275750384709370307091515748220021213710046039477036718330344310541160570592106183612709903385260108625491086308768343709968856619252926717236510655866583743117346932947185528091149719612438465950403833774662213446999114578064928446855647864981219572632740798870564601513638874572363634444273549192633241708008529981243259379691914495539400269092252649021996137815132379070593146287911217923244441133272618492632937426541355459675757682020842171904618298164689550092328863822301300508488064219535985383930051729445524400848778394508722828583878894824612961294724631650893943009604391771623178568852322235102827855550458190132208967790716278981916926719160185957246759060869134938833452765361877633465217674428691799848062511288943865042655939005904849727601678914733366002787519195702621931839542156850560008605079117031631655564260915415079338786999935968604846316950450908880505315193348272772725441798330911252149625358859130199364786978857530324535944501520174060320540172207274592878562291431257799462704225321738357341880681484207265219369368792913711249942415338552001125240870363018685645712139472900902761118046291893743831941160134187896600300621489168385780939314327437582604978916131579607572447523870556274685195633437250490267112807482485703500652898889803824611317791567306609546733586440472225068203944120377498822253360718431182663872570022591119555886520324489324375412415734248987195933574446220555062222450908316010575396087327115166090683306831463866126211318521962486894775574913023969555859169698541227503809082562728882111341527936176395268016967851370849761450553280458576196408028086608881877570933027566951951620460912998161454570677388509949375419161753176379443621209440434523481112681846441490955743503842785814764289235084656239111600535346568867158176068432946038453051349114860919001268041268080386296561171315628625614890616539742391032569493628061894253057971434186771330103809284165657041102455861748546391800045050351206181228351105584118273792469172671671866906099059538998241262132142643610812248515791580085486433906602166108855116377304479437407456151953140160424912265537550343777659725701059873204224995218395835182159073465356506019073156131664873672456008297658033890029832952210034958520462504191732890463379126397492406759863569188324552414824274896412933988793179447217907009988962843211075263216880371838014279541828443567197984888143105009855831524641244486904998905121382435141415306344265635954739374479948505404048963437939377440144166664864498856925679899672863282961645147183908295984935620693960522309242159976672238315675602606499880058559624390845173347587395748777500793507388035252365064403290584276241900123670752328967067901150730175170665374388008945325473237054613632599236443129517409963041539484221671498203506892776329839551409704431985393187474893712278326994081579763043152385880871085882654251701824099697885144246203269432596116602100607890691877468103115336995886477162748395862682991484525432903004226907956238228133834827433149953712210500582549520411710642209163144696495958077652005395571913718605000917560708974503167594787723086509775655385122839666040890376252778383081352596356664549733131441462795446312303308899407204761328293506576183697123990878043606789823137631739121829145322507072738805743110330261323664244411084963670397902246759218387501427070914686579031180092016254023302502694294732147198491213029535212373455790527338680350634104460107643696838386962208905030441431402400679455511315828823316933292534115345230625407946654708574788724158618208742170435150107118907738641297536632259932340333341355451629975732807242095521988050486345711757818497529806208581562979357102839165378079301932483901449731804011088301344845737481762488975780934023484266658706549749263925698643485933960097086426209497248336448300678598292928586038413049137309843710136798079984137305635494021593913232169167645043571905392103602690007561293422725696677618554534296119944726415360542788243711560227175194327843330953642097857509203978627607097887852019405819720160896377421505530686722051056494245954619781491092392786384643508872060809323508657436143384917573627149975472840579028898687824416386928300211211879508195824144550365606402952066692276145468994340876900286974770637441435233384892279086620396502658263648120809211506330088592489433796164297419366526060383101502205508143705558078236093060608238817545052270142194533539296697772600858398516931548767607923800849238262120373679056010685583495214635667657765686812530105928304812776695614473672793141651071463428221990036431109297894215379986895999642658559922621610229490295606052852363830126324581642100203022198781911229542108981127731387118622858907925724043160843431377999281820297910868729614416213395289527692967978378374674243591111791707302885335720005288624119703536252055172452906043421743355467585458431045799631449163879036219249766546424477640335991802802818992894746885202413945629656987263797923177110647317844793702492624854563650048516222282985310222279854413487628597777571502356019835424254297200549450994408496265290270414548664072551032830400138004914401659153414077423539667744061586858570955147094856280741006285278077066169675078909904078257852929931961386699085659683223776420944383453128010838793884626036884150446995251894148464463163354337668987422766696345550519622854841506425049174999856731580938549663332716521590860270698943508998828022397178197638165077493230821578348458908241801173501315533959162902299028059728724743141698073435645855557685501869358936291200262544734219194436274270318647137563934124476970215726024944837039202770361833398820541094137950286192097842102109467627270895017572523119998840988738712365337081403066645472324255687576115481506643400726275668626574037987988910007794986935560075873395642439204054751928177705171748162367643689292700383827935069736286093165243035237365707141147111085597370604402675968943764136870913365404475919510748340409820039113654194453656988104715035535929315590148863888195018490963967326485494808595482350187528390860461364142162022089129323079687520536408646203902185114077976426547986783402889691124742903091297172159723751694730360352256033253741931357162604918715116641315399379888283375801713979942441917768798100228625298715776200350631574814612088313679641933373397154582789149012534181102710312939965144848205922245944773586777850339330806492556487910717552524938496893675534204506639064505049484416795997199691779623828234010054382016552257005613271580869630193493933602625387625980833243051230974436643102407563738806632711749716300485260795749306714253783901662481671004485750829756886074585154657165532078842335235692263111134042058442432458843509141321671092735438527361845807926930548457710188673671342117812120553674813508340573041318573856170793987869246828075271717272363010328705492748827450981077375918475624332139652523039293846383570223710975390249486025846206650097352652515679805389385057216136702064684033759587705990060305634280903258185937455627730354079643336175531357336692234027123855789389238950070822219374986507626161209631173508186648735368522207324175376175130659643534077826488589913061765869921344396005402481347449293832271339209991107421727821332526565161944179059353981374822773772785804550311512529718607844909019437265856968382116670148080517529355554970152853092926038930907420112172174844481879112074063665885585212422719596517220277776722956568947559903134839874354753680983908353098119626848414704162996089279004687843540762997897912582888863776096446064076803304500048969539952196747475061244633812807909783624250032924331500597219612736230708090318988848892630162249992026383940285567529130706513006547563311938883753130443199242574269047833998720376523953791892916754525492964105188500567745865234208106229490668007044648366882102949670180073304792967651886321148695853028686207819735935137880962804345401979101318805641876109693579878038396517837648390123793733096064920597829537901550046010609802481257540113363073177622957149811620104897440564652543646924067480120910957684604521709231512027867992718346261290879560290333781974319207829973642132100395065996882511161537465839144744052368486420821927184359712698561152876918515352423643197123275860009447618597098229646987910853222029636839473147803947728324046241416222441546211797148634426573725461020074104580276009238835282576499649375013382919542336055939253675350678598731118140324087064642835986659414818070061961323813026949292096653282644453042437021418565097966849897575378015016762467381529593187612936047678930246161516304963381298525383189651311384847898652024547866406891824184950135680572412964750524521404765656168688362958414115939361399023712812164870979298475671348680094488551757038094612088577201243627533092175261385697427542799350660314720772448130881139495717345242226068541259381638493647783043927614944109698698864655678364512478093645027313483553063040519713015278630443652569486650682349287065253777485440148215959978790695695915160256367768502974754372620037716196145697549285252455719463318186844711636051675792861474641783609234251551823289644416925954870711940872680305934363886548374499112305357095876625158851754426193085710046974803285631844256637816603675369967801655033594841958180461851783758816475200367976519055266916420103445507927387489293587375924287628228859755609857966026056875500526714334866648967809836941397728426069702597781882626539101607179509929737771712332828377927911166551199323289913319191232158052521100801203838923340476267728639535067452580191593367088192780810691452242592058036945337553748728422062833629165077708173858658979528615633822347130557074861311805676136560109237753323539723641032518236162209689084723130796090193740626098611367169395605563962641946507551825770920121543508645919368421824281980323409193770041529850744661642791214441133043736475941707463954934958790908941626774705693439206150068748220472498018837810537977292544304686341807002076617865977026589499817197632915065585576811464183910185432230698452085444625798537768707372059588536963529515388161401495999804422790046412251491767079792482702738125770292459935500328800055829222823374069830954229980790895844839339305262018940134637321927433636403105838737481230031735428834488009976105092948136652073257262369153877572805815950616248036359263877789697606853583089256765512396587352327887943897717421800784485862500869828597781163432912849397342033066949516580700653506619869820909732834604633283609933323297305950775581370962023221691184645714858799589163768628797752058548771959759103681031670934232044787843077770938255977792903935326911380739068293207677695189245822354989513621431891253551985882690763363535316107300223046703923498488229596622516486366836139091962818296223798703974313947687807326262449997146059659252538823364889557489592602386269290103585529565391295354599696286448608634134556005043707984654935387642811420731973052988260388640078843215607170702862018925259496100472275831356501710244455366489569147316784725979484067093059137958401869925481789692065210890531369620360114338802719813519684125419524562966193980266997761092719094436271494667051264090715448343788641832148531674158261479298810442585565938507382837866132368360778194808994915323216392278395167683763393097469079675045598762398162123837211548616387427786378031488526862467811285091445202808355880815765525121507228057576512669423348052329365648505555616304430104041908444008590283963434086853698468204025895000693820017445782157944987905777319257915103468835864474105047477627434991805654813796573802574226872681779878932381796214992939066229199157379530759734568525727870623214978268594777297378573338226978631791402027313807834591295782304122343642834207670534516491909685817666568869252125747676670176123283113721391223134364894966438717083282186976719949810546273780925337545240958957289239158125967624019071438053485473583313219024633104712246363405131731096812886897789030111748473901366991316373970878321786010767004484842636175496922360328026152721319416537734808240734404571972280954833915978049552276388839769475152642718690052688717810984217917273563426897181468986871135047575689943564061604563643904818207979209709860673071856803362664718906316764327982460768149500820248389445959172829969043917330426413148382506425823367222217709304229266020901882743842565379831087171835993127139489923830262058438943082154603592115736358040841773594273050998905500909614881603758149333639122149243828836380929197766179475875740686311005221498213965616396378825423311247798446635073258590662295090263334062668988112663714975632558804354694047611769979016995731489365051641592784094771940290020314778604826003905510271963573575723987849840245914907846163377416646020403903789791117996945422533443034865035250685617209552372513138298558662424560020765824957698494373274797258806424167316430223961926135125155671831848600531305112693992830496189488040159805154873568988687763286015495683675172712926474371729729062855390451742385126241923731316368350913945234966822753372659240757982262335619883736080719176062444193475167593428485481112259409513959574908867434194627658191684636716261557101418024811328613649577133916410681907542788792464225462105565003166434956598382879413116498626114665694205882150357069174091014096498330704705960887663251956981315331197363886457833599117889652970570735967464081042314164539857656392041056631418992061586524170627310321859998607386621038818747328934071743092801041153379974738837659735233955998891636269326247547457775371578240155797880949273252141730768485763520570883204577166857637026350020289374877153500002008285206889052899663998269527446535394361581705629920072860227328605321667023916064340466739758102892668455753165464192779583339506403802254077068052603299939834298575390838652159058520585299218752556547471550695299035954776462937212595540117719862182950040089796854074435788118283863574096109787118765706985757753704312550426005991449348458066667226046913248831080813846772051188238490142516214419608364696652854721369180727693539698439936803996151211690663549227646306723356013642294590048944200609043211327072908298000244083520084437751866636096345370042322355601173347105543196492476800827651004142720459130064078667304465130495242362697580074854691558278904631246072702961422968891129055398129177768550393914101825584361980805023690067126324990278760972777549586878580600795905030902741109170603071603104563907900696176436902457961246605751966222195091618422387719065620694810386288427627073225269885926841212094265921202963078613308074960087974828825993918115012333665250748044795148176355400261124745896007641856222626087815782558111826091594132458176169052202012520087101167749021222918114026867564785015342225505096367508259827910799277263189751421673239803462905053172101530181497500915818127341468092475848566855844167775002143896172999884460079071441122119687211955808432382173867890010215560114407184782275177088889714225939792416074252083268974551956363475172397858626004172356480450005366377823202060904803085680291801535696851547474092438776683799195736337540679614606464613086019658795320302981434996846640894713362282270935035229319026864506987812299451478901386288089792188923919477254812020647915011954396908278341819251958846762378807281367781762447998565919533763938005394041284521838636202615471369364612618234946800233639595653839527678697781896521084410547854599387628403440712646114538438749118552615458932499827373488402491373280609334276766582100248948837835043185049726756787932181153307211363766281651918609764276699375761752845351249441892492441880171072379215327435059585423702033532861243078782831007320966330595730974349945001718390191607780874456594138909824980864396526495355923851462920557618696182738187203777756856508703928421514192422089800666253570455194574180249017898323100142900883646665530900807323557718558437204404741622338613498110472633810630736230246920169020992103977691785323865988921769526051662660979914927438329405783605415413612417095861477937073712853946168175507149077151623712896735293818936619459741806199351947118832052328731764218065636862732199923382383157367691464752771759216041220809662870437980040655371418640183803435486610040526980222782771299414356248702744044884650984718778162444598704748216227379512597875106568790634825768805197234126779712994571308238808266605735761402134620278386799757234758615478247170156841004020208237533392290229471387771181335718742828037478655746820449823714802550008656349671964307927182920911310625906095729466616350359289638910320867712371625453208213453398370164153317093093580140116821929500229719209137617970112346108882629578514298681500557826243588951547619164865567301082636875682865223648740114652255576933355261768732401462213845527025226073161607425967509654775716105620150432507358983831954270615145097430575433932380749448966503824839165062068955343571146584949840156533473712004501404961610447427135441192991947063141034028993334964642719336803054267190545762508031561549758898175393597900631005603208890056071514705543408992280494467609575354298308138887452188513862923413541501790028424960611187095720012527165450264825262104457568016260328153704602546418308075615132670450554837938329350473469188374597843090057401126973624644494837816468420995160201705374946626306752456708976864695491446593104833460088414975878857581819745591481141302561583081041340212940808845001566260748798914010203405209784231909292030947761263233264325257914884008677142972911053838060286184200482039540438658094261364730050509145147495607141941721878369714457664844502498976277757291595643347560811993165618884257765391553087761644454513459214812695127865273192610548890908640311945633916874905689234163531215619512419711919130599880685284893178985989332706535783344729880826103365117155330975272540838201368679754023973275442865693702746318757298827730034221971700191403669498807689167869329185197475285198274600150181864666860379302502247403667258354288148422933449591063897526707275981264401797535986140764614195766393940445701357309883170954194222941246512526223683377991714751709680055413507935402501429770985448005689051782049130831176544535777454480590626076548569553972114737700342592302087166017408342194636112446166463831832769154672159118428016425120012929076081501411690568230872822138626573981590425527578154101847275857578480468609644971664914646383856112845595573035961174656540917866063727105991032994516585494359270169531007059161295640324090264104605196783092237059466165133409869704286374009886003207200486664391885004598631969081790944837737059274455508782480249556515861729783650386293410971114528703445616075643019777054006865463124059226169675294508167261364316760693090474316967893829762216347180811562718562849902422290078885405868505739945107276798884707589919583034955642970072992622933612273065409680040072979962294939786920733988476339461836631969112432189827699605579743230828954868672221145151611732846853563066938669342977585320062248025695845006852864133005660503770921924682786711428736025948279378669428599025204913932948877627563907897023017108767140015601242092044558566315264922035410521754485482108817164303634700454324441318758610396881670011314660821660570485404021229565489406725858291085598575598256432221532985589731931309514782153632093896333991676848930736123296869497021181467571373041949369021319214123793517713757403723325328783113631454020783324480072950374977385386366119440624448535719036248210230437937136843226438216969660337087995967437371656845604490917690186189978923074271886249590786715154908517755467437089538988968216973894013782949711215285938083064924527096641005176367386879447102957518728281022991639384148164357874770850619574008295977447982097941759248219169883337910889279529405122142335424794002827348324231089641357200631099079012085526160449818438727776016768937414841226025816830893609503137191254488806879856081308739105542129393410776014140613411758829441285074577331331380665485167331670341814801987401447706634585688626066732175264004730435414450458792125608917053698482037753401966464348498954798537933303738095482197512698197603586852942759873995358255559559730589328832445875121881559394956229318767106632058685930018904475887316589535089678112711150446604853394253222248350762259808564220148343923131360806171290283246510793727221365928544369866616866937189000644440148637812962959294118873058102814278169258146770931093263242189862323657167677965395702392306291341098024934501833201176841503976855787183112015884444991160073099964607318190882620360667144510119860000780243762035981761869116944528654381246129497905525416360613305119591731017856997407389618707075309918884383786123169980740762259292542745900929472288874863876797937550340445263702265358599189715243368950688796843646597875528754623831563222734069400901196180557981511385823618707069719836249899374954082197711138725635728680442092306243934281157777903106585534609162900570189610730405253612458973221764083567899063462232842824694493005308018360068249638849087380784925400714541502397679567581783909236026332546600749398011915229482795433562022196611716798735300514707608614560053371130381009816820155564927842970634006362481025862710328262877359974239435077820770029819298290671397417810877038307311890565167997296745412715231480171845144583120157789354276142903271186794084737445089761897741066186343010274996092466829380542075503199699646610598647412865069906581554047689641303870662500477434449420954605300590678173098566122541248990661675021265637687540085418647853509050124821773944112319729004221163404588587512240345767960712312370750413420010625644978427023615821899335611304209529597708432825199950953990840249300779902468680024200202713407548462792594091408984381166722749438365488155052008253141655928802991735971612816041091186905426348886496423779693150955422433325278628868781626165557896928313310112090188373950227250279941880832031372937617222652152688683918633978635576446539703885212666886504171102013325141784935292776687344814832506134203247764326478315513872941883200003429445739701515666034526817834529678587430117851526258552221530121351207040628000151152211072083423790573226009153308167062962027016587170851027843639307463285899178382042593176573883748474775391992151594567570603192228323985821874351709166131253714989938469549897140169773476930450311034924017556584086453104898038969695119666265325457849832187581038300908735356984694721346983302868770493154512052472755767863698637194962283888225417982492408972234827527977267368937083191897515400889504155867827898652162211142734859570642207433046512800671959631729076588042365126100191942526504996514115854655804346720458582157996891183608445186300319061548839203493457172528112694826073447179097919528518368691776414586231904694078998151705813585367209853231136893390074812046067047461745715632956119020966128747061332596078623896393891372108416279959631192653314661443550022256514636232811389518161476199851687994955823849318710179329357741958185912642535296127354875100781956093115769333320263211701751429832130358634887497686599905695111234073472241601746213972018995330293676650838468051188117687274265377869614453061092551771546385744910081637518320932710589411584478546348089825462767011597085920058588542717913049917844173452716490928109769956240949731631546375140122507101445283476109748230657320572950304878387974004150778044565771044231799086486038518747048131699490479146358308705935994233622117047535660076076768890355985618151840155101751941884817994376222222407673292072751012404888021996026142229179269653525545465906667536769844709227628755202875401029924444858875118654149645880520657637019844075409736100328448285474604097879824765779428938664284681320035807230159406063316367666939457938893726574574886737525771208475499109267105469644251445805222853442405460082831863830717112537171705982280470457789486917102039208478189295735453467277533502521687760205690447460714066984436501485496174786040781843544224715389882374195518410229109653845708894928541404658891784365069333080450838120083973895410479826719823274739354706495754062907491503533189870783697499512095959505668615735688740708528164090682726771972344626589204171015583951966899379406909193459978545110727253794509026119736957367322345018018950492256309094499947536794982382874396354796794308568024565316328658513922093303775431534468053337074199639763531696754984197953047197237553117304494096094225912214918380500750549620055456513401866356352931231920174212497326077121078524014044392478547239361552134058871295422066610992207147480662765300224819745796239062204716859939375588195044443629685279572500034413966461272097353319894345547874086702888317846312013816688739247487303056495390453350203238395602270752286706499113153306051432992654657438392667712614571256554251970730876299276010851684700668264842093435734428031671551012748096929890277591612597075825997806618448281070158824701467445421185168774628963052350465689147626791666041206939153273797186676897010268572310937670491189406593246333762994464805707457750819429505071389640417638821381861076537516625731135409833742803368049333049683467332199816264994258767436265373397230402336618607458972046597556184516284076584299918698108397778075274356055313164453681116713874443056638688758487605289380473040090219872135804744623321292427318349453670893564377282759984324195406903436716041160816616505255264951029073572554960918405432695046627102773482557896152226046734445064725896269864328234180649651181550937633085078946591661281216773602405869350557054193124762324526341764569131298617684878727156778262467900607884729207640995506488634387780449498358890030555756651477344128604049043805526169727957694044104707388341959652125378772698224799802901649389923186216329014007741974382930914622173679730308869909421213025191682745205105503480965338276201505148785712667603914290859304947806599679909211398930529640143507210852461228204995274104324405166484783411849226769611028246365205465140805485168170013235206727793518531149277529861871221534833816038734456439501851161862497565084548633055088808837906301757403438692686474898659189268515274760342989901787947110753922911394104367624064017690571356119649403522345213322627772711399063373516508322525850430060459388347207731189539433430270258650367924833315958367177760004194772571253886006574696553541122418023363030479582835071860059248380370906841709514835224733045364408756124438504063500949479750691268968081479855216725046637610722066435033100569506760474369155975634580599994832580662059873289257178320500084202478811683460608952718677147546035873769176497487504803027910624114403200307592964542412333014375515344081166069014664152079559251134110701700409827503656600886704225601085150409890625962056047362130721165509020993532164021451011338535950135720210710004282864503357470118142074253544518289236453100293443978682863224165246360942009161633682414903499230597599900489294879898996322007697982780307101845800637678456189660346042398914111216214283747560409080919395596108919961058491243352066424019963020997331215667060755380501638761789209280669080527606500108013240104624199987158060846853468606567042417850385883169031947699701486596172208529767552638478104348475487836042438510345190996773238489035842567784664746772558383276595111926478251272524839870687379718564069753649719322886702911378802031910547191823082348212489152914172284604628374343308863759795922997113932494229379187877946191635759570340529422387430928400390951171677809612515342326150270244007077346420383042217388908011645548535828044403712046650784362642921683137714902389404222112444126052096309520649473860313921717183058858006920176982336602572983782639405392265111583805529208291280634000405621810621418250489225533950235428371068919370204317960767373838358090293946131955450575555612623460548214095797320960842814019981106100709712706032354876370932537116216678951165501183629703190354817688208479846752018591517628062179692994478730370083326748389288640827333893737626037343510375925819561299365792244217382573005652300461986913798183879214327401107223762192247829695993382032075860197125414782388164092010831336802557366529433341638486311577465509688240533650138182892341597038462246878437911434182064510524378966384535572398740079824013036796973541371613210142891520660193150848150260209710177182941861513380910444656781512772634897809844520943092961557601457686242021821273074621084609505533627019090975424860268958973488846407013146841848981244203849507634512331831682738931189184905204765953136492842951779076159499934901195290017736847310302981789006452820168912574663772848191358942584108219409772643634793417466933231896749726600799453737654954158870545507057315759940512340607781002197510510917098358929048616683964378481369468534322332958473566619666540980056010636332249106644122989321141499608116047237506739794269904848831254972163795438793172071666761087126558091412842892594193859268357069751517468594693294776311437046644388512843925761587868756385830089220723957706290614756732639324440361754019168547724189620293943046966855205354255605363206100117399810950897245223604365247555669891523100290824568185448424316435776267738815571948380664428597372504740452009270631765026894179113236030871745557680746600292102444848378040652112926860902351356522636994190962780813852023619943950451398853386526707897234158903536645865912598911698849671216130929445788293515687583099148719921048643773588896336950827111669272115871149790651559651092462746228662867326978378393273878652465063259503293286840644741774528322571965596769023311147950635398320899864996328348025431465300550497357833524591536526268064763998071431393221043477858834684613278779772533397964608409826422969019158091586907404499345432559924056180488901267949148722274463125648406562645573608411196218439522289647744585658848133740868094339381192265418580416626355431001367609343308964357558041043283828570600293538128900509891076892485450358270420235084107999946508978250575317994215805767866546388455635991169952638250556748166029774716441379434126689412324199023290786426113184516368942715900577553939205853432369783144262907283168736883278399724535402193630973508933092353233127062855136060218656408883027408451730648116614904738483168674255171822542213394032168504369744120095457183623863429461905270434365686250644371830459516489870995931749963043206185342925269350606007805818617089324103629321319488330360180732401151037020632432945398849506056955986586309503783070327263362453021690112141559196190931714410750311760601090340917905685732270929143301385985662508853748430879028272743084394547109888857450283609209228119249806314862433938518431899563793050431001091402534684935743044764997069876160282707021753955924778824627358771959683773308886757649804220185925086484752220791570751517627323389766362296652985036944270163394428747039673012897502443423950778159450194102045129259381944834139287648515447928445451466994092909979984160796788297998911573116046796883635374521287539119225310135055658951063734331239077060323898138917680484911289964767132227525413267154989957728672301506040472045863158772282023409366465396205618428351809002743414628024392228578329121682719816899336935415054526890440979316601297983521284384777787501428405970251876505098174862379295115207649379027349657503179428163560385865264906701586554668453962609502126724075998833032912585156985322326718406919968936384411696398745823067756748559274337973632083081327680020492264396872481471075667429180306800607216023702388360483140067959699648061374631764945947230234899974770043046885282717787368684716771763001126706994235000459466515833509742277728098190118092019101264812272433662696860962982453578967186794666649385995608238220438672023389926209586305312888382650390896714279004964970422507393125848658673030481591785769218623214746695033535149277690990053528159946450417072120558493698453397663570483827434122644331300507306051276791163652056984486141289472443631833200492610164702893151054472926663729573134703559554930563324804971802668063017005511441665845562363286269287038096448992119571024955485090591106059268548452120842509043847711074807521112825316473154477574453349597999089322985239039179718966669303550750864437840827616422898358283690735638552404635419381544435426288588606618269704868507740651759597650170646251143593296647923103762546637122923387776965919129004802081983469936726374656073583132283007751918806232843590585776054280604924361027790568486208688807506200757228656013222278229526157301165805771004324705074054300534693985305387785494290610728162834074507991572591930506529867429642501070964224644169814742275076219506019046082719124098278835109384901233409842656608328979375439154686125614685178544330563501346216116499567335816489221912315707293286860014083135327194581689769539621248208971542881418448849586453923904405399213659847577724369297654007136403837440494176254253397113982303661411120301080533793187579656543379116761647180350650896785081327090108555431324418616532258464349155769190156094639988989680923727517948349240649085826389963603603354931537123243848845159763222116035924704669312913151054825269573724904043398290923177598641216682952684064840408239156824843323264089402608383312283129688590330888378611603970164411573368135968417070468461226289006100354590607320123725493441466905677210585462163063325979502602636421443639057210056947488016451352759731319961676280928743550944562064871533449154124249768309054252825008204467010553513763656612022937501113439490721181914829666165108869626645208211397490382823988774722698231835368491411670321543091590527872661235888196656167341906342797576339368837952132261228912508897763327853910782615249057594475528952807385414747404106215581894415171042395265275119389913394794784646405539226037064165766812928959634062878349161015936620163397966916106489623164371367502645080679466540082080171015351466552717702632723933599873085384607680006945739898116992849965121790966448639148964831871198415985386236443685540110040575028603243518789675125689037203416387171613151891180476370779049464520593487277633612820481708308859696707670631875219053301064868017415892093350261719941019991239396659092722693691584080946000232558629414170867474779512328727175850663386448809088846764690536474227291407336617338475176610971570060000705278974096344534918978969632553394907474694401580778547843578998202914500477199280118345934884037097061628167125355707468450315315604683608410769006936140004432887699930110940451333376284307291827631511695739756412537748849423268375996534253828771187408278143780476933984629083334294717667762972305983986046715454583008248638705221548686376539643253720895391352383523399015734211236534450686627266951480327948120523380516479724863098189877758319702851547475132777609248895760835549319148039743989098547689625485672782507372592476592194735636619842261783404341730949280187534976423327263876880962566990220772708302359750860237482002942219822812159923177217573400795913779808248650057532021574555012980030287605577628458125879403376173131763106400555413189749825334609187312957923496220391923780258845172713712994883768367263023455219481879941628217622263595987655714084457207541069832205833926175794210097015260986275079212028830466267474840555632810238799727390612090883862309125674121172357030636426783999204591151969556094489407754812921780113897642486286820945430388461957937940285041140339491434445748245543712371694336051128188153487117835660035019223582398655329289020488810092189874518101556769298633120360382732402686109695402951401496971713934328339813307391464138915824778938718993384312872204834176754987176410410514230371361552472358658950551604623063514950313569919057557623726205607963409290538266864944234574568471607280179903819312954384533549866460356481210003339505557032741535175275894063551458855367132601147212616137568988421894715718267464123425421832876162435143068323971469471880553538840129943696391823152991813842423842863258700177503073544781227335114192113146556195436289593896177906331722829631280104155561718995660436692001888789528758793701482146729859486681966987012529666431150961936297128152753754469805260976062734364956140360621640790941775952593238132205265017326143330888725125824486578391720812817228454595509716877275208741603579110200528995113334265434344523131463915021815487857169961249261754448232005286655482291843084542303676656990235981116358744064269850888464185526284364493096078116838671779971186923524718347551959346122643000427796336025712404777167871365903280157534905581878709616731879608416040667455963335995572583465468500510496907308570676222450864159220541536592650436529479653521450267919420940307797289070005410463887518863353742815715038198645495248692663729249088043048530909896844630931158528013267836081533687534803776726493654008735288302443466900751559373754420005229712981150643245388256749980706161558598899495073086602261536614491504119249325623581323454960942599182865445020522836189398329578612083535312748298185019971549335222158118175739935133672012722469871981497200227700755329282711006685914362603394027684485470083439388638298988107592235435296569473848389608454992536641719253634989593884567677509268535437400675126937175133912118583663772217783099846985329657239453049437012312737078453273709612031650874349706123468087154429108218405927294701492769103987169074216230984160389590819634004284882444993627145447899915365997534448378130848954280367401477387692478239257994327404554547875072269378981910887502042960771687196762113127323927592060833794398695957955153083639546148816886191098338392839088450124682694141231678064604352038641497262026884825357931872289455483377987880304532941655402249463271553736256124871238746326081240085123578362507790133242440966551013460574123040152633343418102751664529662090026380316801161591842804467573374407053301747171509554929995070868303341663246869089330102456158310941143044311801839613503728731042803493198735800917670705624100520395403641760910456039304614637178518714603002948339677294576177166147826071158813689542582169210920662916707635917287771122790457928881155592587469626667252448710008859966270117248188980668556049077489410753211000755570725950631753222271275576004950481248271577611720275314860769957453803373352613401461746781415446150773550619339952715338447363881589507378247282868201218836706713839316689531016401978541177440759916767010261963637395461069004299952561660997336627595154503891331186299911973071092667197251591341828935437704671084795013451416824287731327207542603711362747793994835250795848428625658411487997444258875759571675415442477960333959027491927417213107428039849713260209415035883125498415936692759380056929366970493533383434060297265192704021351637147352595043998453285932236407788210131641388734037253955724107480761993616958782689174499784011221003402627565322035480724252707489691570500476249251335681166351415764131846552769197072746325988235056024689857205819460933113653267168320908119231678749567575784342935984316613728255662567685194201226577098146079844076607390932695473039387869592515295442612266589394485649797554998760739757041078960894702074185367531762632777634171560974300596786986953500586288913648892523372391294855849468333582802009920359694684499259312262359087327784842396953181452767276778517747771897459622340928002858389195928346714570990745209870287075560961927382217999599934719383941855976050549101878571947330718175849242227696917169088573385623279917430129107323838832309160768346092045576799914864661403027445528790285235724073985542589008562585869014601876563701832922810621460369549020508296344692887652288634711908303170355187168897227293979052792546989714179070206762805110662971085621535037431331421220940436267597165325058322172364650750133204041259872031708779250013348220823948884204093465660267623273269745942749320721965894929299705417836859184950266761681468295262463676047966357597235542827591159279633005305135534055970669863728562823096467409763898922769893708821884400913639444243580422714820969685727678398331156968109246754431433170909282950559722092295175897782242804155808143710708603994640777938572345295652406047057062804544513383336413839709359481066967417276115917631861621598250791210893831395277464322528793965883661802290505113832623517941993583601470728743836441903798564908694221766975171616334446414828580778083999362138262573234389533088127982468252345536781574698710308614525358212657573935971717986410752375716271055336243759386364576425331520107217909909814641356421493913268067621450421987627028619803901190180093847994443969487239844216360756219461976949200220851076823669260058642431058460383259711408048453194264781370188767485607239384225214507733180916912409800785885564001031787085292614769017278680729211653210985252020110700370976929318830693446752958014660694625567947990258577365989552415797553746104568739181493871447657581124287268484541555124586777676509491190572661043373643971642030958800735756693402196338204355416875167202487243692512476869670654630391076407316183603030691070026475083712918266730844226968356623638462090737700262864169807986248490458648955119751291537169644295404747808516983781433194513219672035543008011001773617441670350210313960346366471836683565906241961420276740439368148488441840110674593877363516639898172435628702675384716816132388642051598659558281585504675057808377873944692757776859255621151384653974295364261538980654053754597394214203221851561266642565900041235579993619034082805620139755251128784193814311930396119123557145845013368425106431207729200292636370304021100292255181974957719979547944239254390238410409427448341518390710538106313038519127105027806387108139450874758009327966864505501009098719596016024012488332894524189335588346024753271144523125790183440712684240243674659286227430633029232700176125640171515476882064692399895145135230394984572567217674250116879687209491636561999328405734147873985782282803677213634323860637327759891820290147500588886213928281781310657044505003918645461150238648900268173859514753819917955681513629106925655919336527757998766402299780429477698125391252338075179862700765229906211607806950811937459323713096483229558491667135121674918724218287849099511125315475590218954587537700645010314887965899560569696956469401695761387040974954443151641589222651599963005636448997176601298952576990081254016031241930664597763652942085767818435249926194914695043212423148186504299304481170244263328652847491260607876325644877801741571026762489914176443570924627973245420883917970809251685535838482558990787158765011438571126792563916213741758323882143728854280328996510361694970074786186923242035566818701698196277817550616491161355738192871887829515325585407033360789176362871340416731560607058667134963764234283500043564333744802910540927042059822607512589275594158193896574719022734439656710567867113836642382794182139156368527588742827533825310224242086852471845333368482671847811679285371801683223941236807383756254190929260847987223216570980762389597036328974084966061755685905723015785774396829854509382461266517412967768726926805107508514238154389784853275915956099764885036130605257671855169850491305254797659951485213064013724090585553058808860547428614307664459031768477719472248102727750844374514489804915463914045221300215489287111918367465621599157178252442267497408617613120933011145732261353326001419226505822403090405287337826842038508688850491843310565182902000195521323953165848210565104052601828493779461103761431389437848130041565511035543093731861658606624416183679553031765766184180044440602931272169651652499434782345109625028158655938312714870073987869358629013817384113185912861130699461061908553492055856097720201753342087770062335455383013827054322041310522678642128640188950850354316606444342118127114235733381372929919617241620100163542676740545628349460663767843162044557631913735381225032180111774317364731751574066415555945782688449243725151648825246527065351778307125911369275218575500822161903049128605309721004483201197282110153984780490473922931252599424840974032548594640406769902156291680000137346138685936197546755514575881058645562373735121943477757402886109094238895972522957563580927615311496774130340648092679172661814932347763970187699299746735494583943200004932789705471653107155199155412130206746628211212053129594400618507813188594057327322489695615240804360995655574449737191013020711022672789977154629884865607000604596500463476694024922457719278842754616289711918225326290162384635758245053951423247181096583209122983724342598695047947482586658275780304190241021578013620401372563843424975087319562143949476730792842691888022332334127971127335492194607272536166518362692920931341604230808762141887223680374424850444532672285586822841725062483223658158318104098131051914352616495197716579186116309693331447522556412843175129969415106952418099221767129111917327431711622780781722816049642774192976122628619814700754449271425393373999259629718264339283726826321635287377856025782563697030453378522724678536286025700444828920348372986539934971569847020516479033750125788007320947108023937321607727799313344908242897586080314236637801289035164757069299502711420638882557332724623519458900100221797372207165396374037394061412876037969130394465454896039080859361692668861780265545595199458484489017958141031467627569698941799813009901829245171038080073797048571532814239809142922313748011957121595302026811765443395299621102882622147560125713843174276151138793867843169885604303420789220881547049621163064510380161258306050842125538270636486503447825664596490815631815750905924524543557344541507670807400026183874427937290817783417587110855207847603718231867895861399355635256159825702599888189888718038547715801787057382867507572860097574409108976388442903282629272687575870071247260029647608389332707257426350607143744213495769714193931356462887943934776316883975126888391987552287846587150952034138565174864610843707823148368778368150858232993365601720914357966696046462725553483659052099597109649750105935681859697301931586442647880566966138303153659703440905833929681635612903663024801667092557124676066665212811999523995497153610589584563897322158060930784483090577742966111392552582787616978558477253628193519409167636908504837177821329407929996133009698738343627518253484096134562529957245005303098446296990585384523210515301153144209565503367120621057403415433158892306980688599223927672179428410909700954368510013683202083832701599881180530709160386582852558110293425834098472174852596531995223610910611184370795529655646135435304613239400380974843668758084443225533333660703133354434032091446157898756330398425959700047635632772241175564583442846698575506451590589310794887946659649941738313419342737167869596390541075706471297615361157960662129393650653741170772591774568540107931546462998184301755730004659604410093991851897606229994043746256752915003057770252808609205324456875158910346590573599438761744344285879230334576892908768472817499605502829125412872362086486793582508674130002714738088624365528241769682094893781691838042983211451308285709181978409744847310338587775969607767564687751939187299271967416877807673796387314835314659795786577477036293029466793301109814951993747822279029757086707280961617000407176935637131277009354941532205270983673519641963649273267957312010120476905182102176134510878628419535407325488527798197154651191816056371940185823182939258015155001413755196112038584484461224921669877310600684806683294662943984396083831593917156367435724306709803532781131715412047944086588214138374986693563289300380832227650238908514073625381331598922526585298899853218240248096956566895134717462128029153759680284892744386725345656924789568890268366087137868532817935434371008411141693526415348830917181003230950292008329920683737898933484196667071184675075547545598497052841434924780921612099134815547368581086047646635466489723372386106316521962009694489755401391327812882014291818969970177899631058441642345813598497909465955196573848375101890340863521504977397248326636027898529428282862002089042856333770772895886193619518542301359833320132108516368370699035865902240550421920437735100658451364556001608557572815803072448411017144903995473822999527919485690381492848015328879914758149513527557499105318080125592119455901590455589528927061087272139772664621749149709669894733067264717409323844419624217340663296250214285497562860268293023999922104541085041921181348031397855442493472264798029132956762981343064475138883824250024821277702941979411814826155362510781183165642213672830439805727948214286391926727797594392837441421660934838958692575301176983681386312193180995285508495419900247661246440932230555265681552376578486300723998823741857435772238311463037178309982512861187087227585874523760332345180692520889318491356439614260019145333901930339347674274551504533275018041514808155259674686342229267727621604883844629175683524242390483391998217737132083327223288844114474352002164120646591358353742727736631819696382565532733443661321581884072657913395238498392101433610344051026572441667491865489910429616314889533249663170939607694450124155096669040505948658499482792221242596210797993354529615572575611852054186557670316624424940414456676219787489364424214864543889835288300488886888146586552087093652719646622723305533286081775508054074374370723632656923461766609518898448410268587058440762289082312433761394689812844828046704412612803386384371594309445596404209674765713853800153125115823468609504800458859518957682360668731109794586744537843223624821076156634609105706077203480948285178818213508584397493633196339279821232650399441716147012792883127137112921747666703462162768961356244429009931340999824911329595216970965160863757621506045966495746907349381830890793516782802352830601462181048750327706160633005335356513251979818294284934229402449866713476189870134265541724970075235626777139062706351033256726021517835975385058926155941556263005365322410736688993565141539772690391931479920276470174138116807963759123474418084018671217913070334893721661792383476116756943125590057191673099414267467198336692840895951672664409791037378673798869633779460668894900434910035163515418585445922697040061444804932379199859351871716765356550049840855855076435782741807880771774928209105086990556449136162738372359320398110995803906508093732444754373152236163918900789178502503393205505560706377033007602251864989102744757778166637795722941407145693405399222356211532982976941232388831275702142888917043642773088685411471755326431201046463368829646107342407886485029036362075307705026454635893290606380619295529128893849844973423293378652263022973601457714554932369489081369798466079209904731847332082654151987521620783873237011745352175988102989543280643422835459349941263958895318091325011399731930923867169173776350974635055724043235254820508915489879677820995850821836967343090157280650832411298563591011717633747383885880427609588502819287072723582032438528241381860568271890110823273523120621660638212763649749430294293524270069910784945102510702114942173808645068426244782904806871648290367891228797507159407236209968010117633053948637845475580605462912880953955677104144383786274041420728988762089651925256354606878819721282558249353689306588363089471468889648726434877779599327935627398926297987841135623120759300071791483018351318901078107317714100431156792524818625500128059482104571846314813851870116712177526210740648264265510095140892059344262786538667137016036658358734584083970843835288109817023163257651741689613407250356992853319317716420991345548735623629281173047270393304025083142237482835392553084474603511939029513045900061454611053033644844922379377789393895193423195567867531953027119518490162274863820450499044707210312089341001056206268301116057675729085374668068743007696617669828100258177183905861121177115042922525410716640157707027662549531064800691393959356315919658584048271532496443358210791702564420879210132491129601663036490855889473428008485458005942041051290961889886204646851317714564338919387510552253553792015226946210646912302017938513840963058410995540208702777910576937893906388951133146144313697855246213632558982389468069660104864171926928769165495749769050871125560664951343841395297784249757381465895673328037283615312267323692588200919478987812567737342343848985847894398952151260743634850922079718546375601562568735793941987183986011703067123004711252781036419310683848695752695470942069643040892986320447386918286997863604458216802515935917264077792475703081766851798154233254256953371392261838228352279112339278717605028644751527753763487535812367637657517625691796501407847491121177879665167859548450468427634834682404901738062000524120000653119446647385424429799225365536252228597573216080691407036849485496110566071024350628123370091736822203545880562241760435572498594932501474675705026884605963948472668549069980640175968905911101392449604162635768684374871320459520496964711800049777307604429983729820931805586199951101786177900414267531960747879995527671450479340756597630341090259242035121043186861312516961198136822882921441016147827288319520044173927090665025490813769363596321679786190068942533134651330299852528127266110033001858079849710657524490265719436267163825271932495294293521070059294899320962610565916655444145588181019436879806097020334706424351624492319623092845461171726775223852214659765878203055984726805757763907934656784283988233527468701069212179756412822426635388489396494088339081610147890867176738304537427814143862842033727347622508942756546958726206531595370256675621871512193192021757005489843918383253515420859292077899042591861777606781841372538932904105588674971023488072768165410165392598202149104518944956715675522410934570007929435652273800643096319843427659125483070776768727918269257446328087650663615158868076247929745836100657331160277968866217821984531891769532852789190072182853207687933267756896070165655527785608829877389907809967083204880263268424035428825014395742398176001411905512126041407228761530084208860262915989162791339583342277284672404365590470586475219458042371633940706613932169527474893019789355567408922853545312821892224770527323253080950982431064777703727484034039304191463592242866049840542325552286348591663534053798033546295726481140890176570949593828246215316787873563018003595375931044032434004555602202940313557510176946371118682592227992840879221708366989824878865001533239911971711848699458981661662209079607420673936836692683787972548341060027395174776715103806390505888223754939988615169215105355658583916916260341682228737214334888216665632096238140200550140568328128949052677013698639096718237574674952510344863878645437133621519999169811475600521612518287094651122601481666170907521221310496367986059218714178380887862346165407138584301585650769944719064461642603521718435820466932105105999948081909332491863155673076092301992380004528866870743353584084866304219576333793698335342791968057737525091797388838140477923175505969018054945577459668180489502828641506524152846139006860846194719618116764299715084975480161262225810543429256936047408007946418771942264692974682028493165605443540830926369660127270347534318313321113065150530906806458622397988434784940325412908817542430341029453745787943940688405931193020011294193534248604081483823430602191248399668021045262321826989336620467935659181608573921349318680211324898825953824218024247514126763841894567932363901068946711907159439890381307422399610044523287369035433687797770119453666885310530717141140819930776640120478662041338669207432790611206697897182259135967835770875491333346152076117719582933639683685495832597630026811666719359272042313501961002913243102512060129758288790833384240361339042755941912176626573026518483609158534560452268143611346083405136481317471083191310919737287116926354549201467228921541858416963864608950123804524550823762970812626853309471481950784555614699532591522945627268814976585706256284145050932574065069024570030296675281475621626788147495261426161190399151357536343373639306871001648172004207722360729882438006697182020824483877032375302157726060111039270471553582581884615150412511016235671006581481986987951926182797274732814301251110484516280611917011614579713646709601205212871299034458310328457655873281799253862412200308572926744187343819605796384813369241950309689006133338819189229868666856833926047769942955428753409840623896367114019224724589908696123579218906647328902480594979207262413432265670263539852236493651449196288138591273551806625435237704603982984633349894137446296165353118187820204191141197404494583164478334177695509924046557346660560107623877509674738220013182968199308031350499380120240744249462980769688634134118014020108647378982527986799319105924215725437104680530538837613203297911237410381077615780430519728686271501220771582295801966835042439720214611845947002592679162296950987372527749067267686657798932182256483895842528887682150817389960004179969371314184463643943293998727599731342097537234239651269655373962344618492846058218278950650123187683074329221360499772545864780669909192029295596798013305036894286441097337691270125623437179109190345084337216591421695411954006340571777907876671861275557328679459887406362750109014306989157968734548123005926228054221000537244687795479392240740446732787512969387992706517639700853700928455133791592027835885158093282235217886184596555103366743678149631683077609592247729498638165164484256567188238582890421015693108659243282020938016434945663380476510112972386873308508115408086350045092615321793204392354556903103804319024389461864361935686527797343878012353484821497413701947174248639446238806017711391396642791095578667583238953530859828895238724845502482993145103984841088036194590615445289404456799222864259141212893230940276412989245258508673479068776495360799188440334920372576194230920209664960210180828742142301421233712472102376638767915991506700827490709164092995338487110929898395696313312876012549328738598633647599817314965154064641198989617626910676465767787740905321266199545857781311290154296483695099900040013703518635755006522217338194661566749238124778617359596662288226769639648146897408416860018904750723818354622462674093896465717150849321656623558680849060058214309394504193155189352629547759605825859163868266829050275943732550083741715853304439140019130428304723724293337596160448199459952409811387253513920836873272365913135107827872446369015342881855651677677477021093859684104017024556904863321485867866017161340674262541852628869696829809146745457400703248492277426026278553396376738414350550272209976455992423093798277805240980537838291843583938138795669387489486494625341686594865884956597594733737760375532503089119536723679063881954437939818272189230253138578569774336362288240313453488290616555274020311783966850499487154613760237082979461023125513857751522440010014339315001993825759938926172200607359743540277705274066807035621668222303317499809385627507334053863910085624613658486001102688359359142780219946401914619890848038863705822324380195126951717018493434484715721064205431842996351576276516331009846229141287806218035785336567232127101474956693906171957880876581911842950926278680665399612229514197833450786552766004699538706092618585728352392842555219532853515425068274265952837542065694438529108555009692919128646045225322245859598965199816492830930756676272810351774896349939725754758099384402502023195504615720669213547678536881667941954594949372603533303351736677482504091116140564784386590087331107541270889052004856511058755219749938759333686120037368544389384142125664138907639350391285328296239055086335536522054241593840095707603939071211073943182948735454862036320820193602694343850035323507110457009496992294623929619951896907737528339323678596225613560262230037410056775091242153091100661093602476096451693129224325638268498246674758075335220951110634704440023700942090887684360515614599025851496115796309995238271570499478343881900896500471083984689564493524585867263151833753236241096619858402972715195275276120874358804171275295669666975624540842555982313528803288238644963835477637913286779688387030322476505560105323541496297555706482166592240317345385863737587862016677112898163871751742844240715293531305848305619619073543297304970928289802892923398575160115177148929859001022480884811324174475710806278728229672845889369793361358476391843474758997992956000249660853354796518069960062958693211000957615564722261474746035897663924956179578482298817208200578946585071782720708276770719627427835648110572402597750804100679217007675008839145131225591740889233966943855712110028679850032133609253603654899572909741542674837366397461944688316377024411615579588120398470462505630701075417039787769225577000010710391858254373018893261546950522863634819474890537449335382520563426684899777537467388942598347971096834613101761837651621077975478347586384854401409847873370935041479445147359056901257692701813805896127384825950073052066954371633451196505768740245775099998905199276011919597155564127096963043024889467057176397470734774587996507321820931159143668450910197352668945139126513782234143040682946236548399678971434620184700231573970877661639861769092193923071706962510724480212148215558164829308494984977215545024310028582212644560049780198599937676691703240969459418187841679838122878969021168859522294472155401512994952543139219714743027620081558844672827533392744295569953598326765281950737463730408065847184407346724974987984980045957033903014118824780878747105911574945156149297553382570950851237643411669829874595715575109844598952345831386655316940414980351843209204971437107336503147783554184607132024952640892592471175433245277997459724875751924385236879960799467374614864801843668094524337633224815761306260655281487389458287020318318281034151415248767877640898944576240356892720772692661351134690064195447344565702184319943653098286083227168213093115466393113903851574933114404449045681244908884701404646811315592570716247042593294324591752592658610312701264779637408391943485965722711316042691033349611466928582329597067236168408927284482761341390302181603122156646794157186637226955188913760167502455183728620653524791459167796695668675924867851083016419827736149631267353234812168884016276933510242730213148937673844315921736482860985010759810830903404775185228609180657458249413707727514717234606901329178287254378117761589286373350155991993286352283753125476866494513562484365219244655138630179680163121835433885104263843055010034428809185977742780369193869253570476811471149994474379371548946526619642379053336162045156629184478907417691642285272240805588346718998632167018986226893903023083860445142206144986822090101779474786110526472663533257959929866975902470322021683993923973924892910907474801893988375008132504524195077522406368834009989646578976573198847423178990352961054125596147004344122940325142019769305326883972186335167320380263883150461381823159362434083831290406808529000175828000391061163470199202617349131212193836154739357108342477931390660766144793821546439649414160359644870317732051749750762259802321944661503375080533844481058099397322331217482394311307128137560749665502811208223464229229389014279186246734353524049801873141544309859703647488754621212342629199881504031949185301751520892101387394870567581935809245565795578442560444824925998450431843956744255056364221331323577301510914466978347912832602280493521505718290205212634876371493043731258056622130154323410469575450654755801326555936044814531333382634225448523313595963888578597641034919175417152473210231437575082776080763950850588203845744344653422221706758663055700816142849164461884214041620618209150575816128491045334613603885688891547038496921161440769930156510333928071040223153595848127603223955685778648630172786618364106178987031581843729020921646610169971400706787073679613337979086974899930999913486091018018236071705478616233817840009790704835472250143398558010668710530852121232183194051057786757935980666225195908970813677534198278790666100488102928003705981183114086968397631634947942066232020226593895312263618153089212032731233348135324853908946767901469157703723022503553936210850511881211505656369930020081546357436343138214735168059311198951894858769244946617976660242670697508636508568370075242577776607265864582863342027043990729691441687884464995039196189179262109052881349197557300311613469800027044998207565562214695680910979572611774810401189152855867451840474320684940278668149965001273353489690188791846230208417053535151236926540586164665763595374458448193446248792275583214649791807153421297228172018415377183318969170704938289556375210735351172429089520064846229588729425351662784302848459899046138490570889574990298588444125745641644404840784522061711265971099021285640536020864247925651420810463427362066616173245920622174061565474484911008641692803665437193842502506256247849599014723480076436833504649843832090118638810248528797881381276078644496676010900571802835363365045592533000064622041170156821543896011755607933507535787870379138988775572581507474946254017480578397794235733686378654495906769219218232020328620229496092464892939379323272709127493052368262906112822014025582160828879730768230619303876071902473146353189123228388567972443997562570814306434331894776617434753103711788254520430038416657539152926186355292023438858165957992264495695996374185046616543533919567381830293522010536780262263595930213263583062013227178170930184419979792801135848759428318374074986129245735486755731063011811852466778787048074048109706992562496573382458753948815416975769185586958083653929762682803911473060274814993553096583082270332803946234097310720980202680080338053558381627145031593963355209175691715708024144950815158530157921860624883763238304079780854896417464649279025526080967744666324102878621926603413847259925282017998223761795723358775812481847882790204417027119643954628277779309185463768017241264853381709746310028681912883436548593871470405422878904023496030160357220947743447667737046859063405175052058864054372559564555688851232825599159211224893612143004986573789369992583369597879686874953534752344084068322065034435440559667393570572991782141658937712634015353370525075430069385722194040724644777796738745885080549831296615242521851833876341477532836804600500453963569702702132691892854008017499781990832625408085715074680129776730305145796727169928377278806057502346005047245325808742051528390477245090139835260392617819599479389299457153508806934407833403684664016412264478283249937912106385811418856494499648691956139339205881552864735234898373411446340278601700822150257544420132524745764235295191021245556812483868005649291500970506848901628917409363901092342085868573853940046772131186889751098801221913614532429139793291533663850704457034155048041621865046661549793256451581736477923034274499479773647860731537345507700733381000141584587728156105245285938188875807049583821509622358536030473003023083612826653145728317486075181591444301154354311075445234895794656132783616703688018600935754142574828616463874795567275831010163425074616949086906779107303830510017948763163554830478340023235218509123737605644581368672680592205335067927512838772817185648017512171618144021631884855084615260490993334798947943925093690173419310535642314779001286031840389445349127850535805321532039100723058380864163153254051570345763388215962894405289802979906530173167864696769471915293492430195834136487657600369629038451812043106048301354969605274432623662842059668073825608073258125416202422548037686974192290606480809141751753817088400024559756165754003032304448122429997705601258479646450319866168412681215846670599547632418667108252791651101642968121422930499786086720230807012875412696167288614338013042307984487749084593695372574263037122050385670055091578740732735404937127690571420688121052592209448474964048265863840736517944402952823159388682699626969704058075869493987260915036550724842557883962873035705017553790671853594792455533258554130365093231412534071515177961569810026455052848737332494083780760739570247635353145300641425172085180463512783621083729370859694305731047922705106845039174972455627094177025502495685037976856856378358380088686170242110918527908746801211599697247069210574024521948001563684972938302255486183701756860948108056398857376054250445826241864227829016929422019413069388801465226984237705547743731469110773066426339596018777699777758211391787696068488981886787728015456736984662955741429552508188884235715364098802315516673340996743128080993576821339969742381221164953067181606606989859909995393239291163781874646088689993996759490720592781044103124290443228005644734996205073843102172478216363026844081256049184627238602737795518740350916480196243426094072425303016629953080745915233819760562276350886021116346396550173957125449710594006275055537682067723216156579695873917873675034244432250394117729990093504610064016325927999971839159676214448245572221166912315158003274221254246988199841003415280160819088339985785209139790799051948325929877080291746260943002252486761509143367205711083732337011403023240343497503434242387207483173865551779047998520963654246885052553997618758239899173084683242023516350753445967635892995208434619961988555878125131320596388993090261793169657265215739598643160553868938338640599737744520721000986128376114570575223645991312628307324058745992400966455439728240911243841782069658085630287059581094617087477977401971635108573492474043982090135967409057379544646569026449791506553946338862801561839209413400157803628079874216794134376624848873333762978032752386683068611944418980626647438942939656065167356112661681714955930854483038049726648741596736731744593484795843731687660057823839048693109958558765991238612227403543794085488989080538182764205632141907503371090372104440061327959255593687807843776284111184319740375061166225410235683342468654472030683538095612049900279190258941530422871102570370565910480982845284498617959626657849902167051688605429606291280053970708919861132333648265272868038580779518154812293511621253668940808533945065900975050643653775723105434321064485320361147612065227709708146062589795580373005119030195366536131312461113301821435622204049545351528827137912661836783128498125126279481261308599225115734448931459833806169650282626379797119914926669723013981572530775137772744971895940378436392914149413115174447656236405206856560438791059987011028737553809626769496854417287051886883438023467168732042622424169481526856957154345266319675755042948917037577108333349594989499377669423085058919374098355200963718241429076010311549262260734661898740144865121791954235734214081615400831292994199522034652625092231370724790568523494487562451743916800715280492138821907102384045274493602373883017281954704525706239442032979919973092319543712297700657258191182790775269580833250650676960323336649197809551948784410282071869423736428154621936836885510254398832482592631415860530633113720040049746889266972931043894235016556299135914534335565926156905283864394826873462934472701124695503611428220516698261984255443110042998964484689146336032336779569094333345847905417295376073949232310390921046127023128251806250907559029082580347355967664525094557566799066736897792708276998073824882609143601114098968630858724890444998832483165673052893324661061211332914357118023388542817869165405962828360714007853871186277297238576217582342494108401450314862311736759196708852787469396970418099453058719524629600852888891929833141793855096824440856103076968406915755048248150170835102817247304850365612357145661225216477756562103045172572060790365223796298519585054121911391352762742646225965997062592284256868889360268320723438813616489289534267159378055368366425207810762709543940837841257731767745585867605713243503360004936075830329254619872045879735460919998154555592328958406433715261043562411125015887701796122651655122352297969647908614463759992749327663753176712837903783108069738836808031711736853197889774961856866948270502457716666948766941383341402549353105083111721364171659169388228243604727144621600201774196186570480072037061064318840810807556076104251544890699071804467736688275606752924825874056116728842359187439522459965484627188314254330799370319202885266389382324153018530124115590126265812911731759412810894649752331611112317672632372029658316763383911610644640376036480348354777973043910479530759033066072700669114749506293601049210847075496653634441530062479469468847870375940664052394571132234463639257856921736363595136444689892321458631942171170155972336866859102830477143942051978846973653090793167738207405112403561472686219040009951716041720882712116068703541595020329392164768562255852612298698318048697098360118272980729309390611219689733993214436923716639020958101706341632435143977957969088891882275140547905609270344170564069753822145789361056468507250571096685894305656913079678555061681496466324195889439148534243281261125703791802313459521611857109109996337791429643510770882362247143185450821756969451003802187894975132186928901242569670966157957977475058655196700103569982387053071372162830584241348609352975661263431008023739256189468912353151109514956898792350451246675726208926022372038087940084262893873335989617122175091812640235398531991253012793058800592876336041170344157792887297309851351485836172778203792231955037960630919712347995615782646200069914772360611163488446291655418389106856703378490724872191766337445594051835883309568255494622179960294159952559750611213083555179454623800857161568735767917994357412835306952991851575872297267650783778036138299632636050585056279339381841737670991164367407292728189643003145273154877103548050117854097471410077968945481339158066444458842797636696223381501301803218165284420912176160967296774280344249740455954556735034941589494992955948083700907570559139663946779499630616590112855584871561788416274756128021073595239897839408411211788486832120013950447830572624254844738775543130617923903186466364563482280907820838974845873333761768128780595748230182522166349872349580386250471107280227100569467856783431371232848165711744399504876692490291799383534424936377342263849386900830512038656402485594729378757264080732099110033062954672848083026470937947763324928092872571287415864353403098623367270662381152857506171352760614648258755616061294853936752653109502670951503359175237894531604810710589537800639135002240920593789053467444980680459287894415573296103854809023119343252743149678876172804469745583756416839967521801248013098688615611702048275965519064346364165028525808108093409304978513383892800166053070180009220553185813062501640486094666618519072705533142088182798872625284238464449364377462589299891031201410584332996020496851051548348702967231567832058639665211443400925691466158928741472772654016272465252533602292569523131547990143809350073645003453396677920036113104979952713886779766616169220672255615097700916694053253492989168342606979598346605217874282284568072053955058431495454946256975542550859460194025503606182766331509210980276268970843648064364927002826518761806443803263635210178304288553555967838902333682840842294744077137779450183461631272902677627916407221685275325862064492513222330514057365311708306848963341421291875742845868832812644852737215715985281323164033810838501941459697568170212635271020998558771138495732704460728671887483439951981038044540091170739019231392426766438669743954616871612542720862645325479761034181179119825785896799808238909755585946776571512347786239508887255938490720982461655162968461086798391375446469777463258198595854290702923573908373094769537888053807459222322944961599496368156145605323710090248167044405718991102974445567980649514177166217488592316632635419854409416109729034250638873728068995923840556707415346750561370394686055011397285385483112690322268987601635759317410451967463181315327245321844995370499967552556023295059354685692351278870934513974024817289259322616079555626175384838642716698581109603893858008032596555293067679293991283769942758709225998967766211738194280145421413289782064412416137407366154755435890884447350471158573718026161815734899075803265108961735084813707587158995571551480084164905157689943280048214721301211710708344531339626484564522854544042403148336085864224820615904330358051395318023564445989951565417700803254018610297045946549582559939337552810126126453208380526365383879353851877666305864022264278664384319613788563040035872068343962812816744935949537147957748980068874068557855824351548301797346634436038842408274964319958544965306297516240268192423451386170203163509434900873167019979848176423044909488107895360210798866161955634070263123440199577641722435213391266598975111780167733563028510641971082782675003365265841836842058407296042965212771949648842528416453383960003664739652322956459245684468940340253615457354915660223750243034889325091545238244144443954342818707152319422193560917161180930724200497751784093498342422619026725922716239775333642566174729057764349925947976595175952890767669868214847616429733286914415387968798158090526837537827864966007483420814293150915386464274804189460385985813554146024309157670318198542926705205539685553153555112751073465574373238179032185887014089771759724538871100662165619238344864351284445518788875724146325136992431052722106231427925960209395831257927548135108390032325142819844642019307765933853115407544547929638037840858608565629160177738901127570910852532867839646458005642460724275075428856909242584683864339200056518107732700368770008147022643790298314893242272951112864540329123280419455040248776282078018178332623882332434702027439732513268638141539696316906434746968040823058608740679716073432537361445322528914453374996559571501387779079181041910584236354345914360637394453644437281765134828230982126868747375297709412462803887087685403304645353337725916899674257067473236768678907827763193520040028843276452305715152027560804284643212175558367319255930479981514090164145669712473701038586040268192211416828279963373788805454217877773195185527269244575871290824965552578329271825753010615940144858352521024623555382472317986647284832415221996505070831323381106640365859529215327505554616879215868354836976025817799450120222699074721346920745693820278591048447016924137496543959464243595454292166845119415238683451934034578045812214176164868459405652642029739057079059241596474665995278561678426702537297622913517538225966513688148123855677466137097563931310700727003384889277043505594794491767567531058184560449812163165171910986671009979901232633364213855125960705017143517945085272646447744804274340217294406089606437677933556233721521268531571488863219849722518881120408477222612066743361486360778413342747317920548173151177078352796204532191781207207850388624227875623312844749648963466774435346640318666114324374352801453653272942440963984329274880853020331032376317835262183405639533636423489821859829502318038318991895036287396010975514895309011191677274243147760882396528720148632455664147078534063827483063895753531725163569717518836759641126917024360173760809779020451192984466527356934039359363072454728742085959666960276879775671993263616100575620487611180201242028468606360838547999799150754771237398445453879539032958096399534715446522723128783498933255749382645842434388590551964908101020375813069617114663773734307828669541858117610020277307417475267276661821385650473224381094929871545181804249873687677809406486591089405177676074892805410322220025978023302101620165105637871602153716574295038555208592790003267947473507662131809459992280536330320414522119371581421418418705908220250876576342831348949723019947936800747367489003515209595625922009634535902956387587152094742543738488045586400572418714413329292740666140911519630163506287532156007809880275709128552583208201438628519667726417649587257667665907285983237822260764865177315633549193644920988928008464905553904380337236195200095337832123623790392652253594233873128377889598364463482353171482534971581368543302520387787180596274839435483446692252048734789538685240639716956841400064918717905954598112179322847736477385402170891775621045017469654119812280221088764421184006583687028488253851998043484130686762005176671665519998001578322403962896392374838667578768458485743432112655342042788213388216980740231715650524931812339305342004313960294890728012351333920484110409982424800235334860475533640514588127620981893300160430640327154393469980776334738934438361407644678874410588851598874447256912748694072082021753237234530854463963007976068824773094644058887709140186154905319810335115791288404753367855002946280931515240449180142782591049384625322546065330906663113464361960886651243586142464833268607184382877161677271440492814425241304303346104358125191207758374450694499282155844912405809791774426801273226709997508692870616893256768526653498677094113411738226432063806060865724975046210413291351073366534881577044034771724434323938987805374153236965358052229573642606236209433780791895521325856567095479434433022428965571875522824207501883357855571685226776582749194093765985815390470620614420609083451948819927136834901352532668765874858933024450127769707601078602970628688196430453861861692733698699984900796185712443784934434199953695325087089077582553299928814466621975344617430018391184191548309804513723913290718112822066038656172454785043291015614398769345262856844618428169519862051113335037427363380827334721675874871896716409156159219777119244055990941414568423258415441125913781399356719672655522260013756199902663817301065457460193869721600024443305378811723620742832425998837257520396105762653703909980597154663968596027715145835396431499223564900132586882363272260870334952554134764676564549736676016248052238612285809088723402879911572557525456824176933446120672947113520469045019605202808354006557387961384088628442400014962105096265081010527681321602404441647332927532060647425445585644036223905281272074220853371122629124800672090782140179264246642786327192432513682383766772457188324095242508674798951990245072782663229680154961901487080314778779592810143898370646447205000322011798268647433298811105981727892341139201930131082393403731443361393782281016669113403155495375323566566683188462345955401621164433750427571364770175563184679168964793351721979593396731388860641000400989411337817795054345403615675893581682631295641350175240852855054850303187745104471132701758542978085648455313166588476783913456012316138112097917887134963945081443767973614091566108996023809005527236575618365772159085227456630569743225437419164024423438073385282849922615622663471950638507059114819881085114673143937648033047409692212692432036738447981214833142090114088235257032050178563410547536677205844399845205503819539088621766802253626890327647643149466065096795997125637777323254070596257834930280295744309161267820479320480411146779843252651037824725414339307207541169270364523513493172218896235929153574607938505632825000763706557243988590345518420382789116190090090250096837549921196236460035053304709241603078402742851006611539552889135479031554667811193076394116538405901697590451707453852755892368558293259112282733145202464062431801924562122178161806576818577110050338169665945286192357078320343808681014541826365128368476787252599353842549756879796836436695459205929447346073666810785482375039111128428059166796614054480623059840941479329872004851176964628353265177110217645870428564979384096491759835938740542581968623200034229847581578654161310680422338534433869705122203369106325404298998477049986796516996372761613872008273650692860572245645195584836297728109587746303343692469869266575624562381644457181631030075991478383075229986420857557835789660734624884825978161210750971303741435091327614141109391372556729192299665526558353112060454420050585885173578226875263636869824812655922717325160396157568489640516842552222700802998452137178849529603572672350326021795353257120185267656805482126775728353594117300849882641010624647004904544178821499730325455421472725773052712393874276753609577515466653573479908364995614103589030737642455978430246538645084081566578707455741991693037397616906144634650519570720138991929458861371898096555323522105712393501621178440693245352974153346448693963828141643474492319011093054672763695116264023159202503095945618910263961441531357727628881067908674482893896816438594330389511490124124385986601257579613076829482925351034525132534840604072754147199776894610977145706573002825071049530015272183910925911361070987323743156945256897778065585334413860956207204199245184077009427442105546281074627461235271385431725678946256914673889341328997200056673792896634708150662668056421370776971598765101793330027297204640065247970800174209114913048328314042768799457129768125077078191372603355822077460408360002296387663535748143949242444994978317986232286862876629478728891311284071417080037556928588530204859097592382676272820503564210755127667326524894938217281001643509833273552774402250690869807864712646507481341458629449242565423501133336701970126961428510415912590192417399559954905906179136036595847162240307814350291013933671702280550229861241068174827632343544791204385484743637416588790631140356500206255155287566925841971240317933278627517850822729212895067045032906433079758469720909656920419395469094405727974074800101977520754285201611695376297436438633756049299936432389448518272296920973466244651739309209963682063465967110695754681518609418515863906489808387947996162919865115617754400286339628682555895497506526134071234244857986046507068524182749810473842908500903010193193234869183309297778091663173648445641978199978182648017863156892058698149024558868418556127806991001188022089457470905872399873410460795793291816322053814858877460769651341539755378549554804025772343718251894911160137895375067046426171068700411003047756918520662248775755130728155854925588983441725322711428582281147536111360575661174437712640806030436713940341260626161944672538628102532555561529699554907841059786349332101142587730646435249549684612113671665332702196436734472471781607764700216755111268650668961795847243465514502116093747521570157140180354809375601645684424910800063990997365384101102976064701202530503484379474897087240467725533644068830601392387402802502183454574454402207160933935000325039946050243750552131103825262444758153769961809399698697261573399121334197657698638808536201354744947986811411488921932396404193809210397361569189070833643052223321601044855987370359529749685433820292777564803777633500577408542454018587925878905171474995256213587200966099319398955677860341201297365874571576697468724035421612568394846098412237002196194495263781735819810233278293215538392189737118313695381770766831676112188726554171940440779612546308830398003425786879639593756990739994198880031808527464012535694127361072415586531556690596345183104246169250610449740117309233211067871821970400400352686302088709732984993954058781833704058767588973986376125344376853090472347744685101925215051711626712171597508190566461202130915555207294353924122981125641645596200194632835797725085862214211069773748598269570839907058243320071858170845231330051991205814141108951567296811119300837978537808461474786630309130909950049010765499287906181130385916986409872231281053753383707485152172845077838323407495830868560235969953504796950556585440208828109875415531857178548875394146958850923369095299751798829746988884872017873100954327280177567315750658836737272618565579589445731204296736714249695936228278360551055553805493291843385299962975637189017718187463182857904306853976004478675853747226155914382082903482024866464539596257029359640032961509170429501581374032780118269233620412164663879263996199425983915152440186371392393564923692444567463550610968391129733694271339180984230836859447972816172063098342736087184482000730950865695822791868475102966890110506341039066086474701363246784398199124538302690017562592728600587514106600050925893650966549736472634011093090666829989341496011557385270766131312208420526086264899534511333108170030089248403038548651131536826883015129790288927340268427116492063762734075897414770903650251296918215188657641920819272637490053562272942416551883104535345858334756583746712773413475270225660402565449525804493909597457860896315961036722317983910376550520295608775709260316027667831451794758653884378266827202329646379506925981415177872748073600616776607993974561258701593291178825090572722759896252258573448427288804483273151598112131872301866014577396559324041439624290603050092648730314430552254997611231372503051324399179259139115172367295490332201506495677475438463049277888509355728749295150801060684094490273183934674031158185539091789041464930602119025380923652712635660974440743632948765491465794231659789430233534398032615088444353422572892473146379738534554693122408727625656285089697126245958639693409298827406696563984048253736071001881989782164638051480701853913633807188420641974067703290062320792418143357973290491747704089327706474248330493214172082118102035630279453795415883303128221984820699615072834583564920047947275901973614220541612427483829439447492047596060218800973648557355681420695427162654138234186006190809611885356663613219829265551269433359242156943086411039929808659139153990133625056439742361618591749248410190570310392354970504825229087299034099315838506751158234901670179864627093706457402773571228587919915604525874406070287202378028627276207634785394558988680984508427489900276360702656995292639367874259037128696791292568730339692483870022331499041869929738208587964060642814501896218091658097167132966289986816441639260410001207941122684073960065876507697115218951981877309079772093291927358304810131605567713655258833327671430211354914398373361835977542545382861491505103004879132409152862438952658886795992580314139988311941458957863528658317145519519373432822815679900919494497013198628035737343303159727660299241448335100234117774436071512399281092243766740587093679108713063600516232457864625184551142193741588771433281116958643134568156123967897847259836186116354030295944826593457234982809526932942062191909786105831160127963092514933734638893215463518348417984925309615029454931224381534571468776926701519677400306741623277466239579195652112015234368763010727754059268688218036761163347647575692684503785378378547412342971705650347267361000267926596829101384804079773979370845744795209517374013956680486591702611712692466592663460607628696976748898853990610445706089266125417118919302508460155613016873029260459262635800739099005520282743484022452717173863912186626567207992847222019778593659996784623816637711472886104460616764289562264608117060656791329907579375270538719544915806715793068847088774453457306695563365595097855941829667912552019893629673498030739159989767519566268283662363021230323370472030508925426327006663139547954374596551516486870085605441067715054092262502783247680651874445607410671796194227026383520529668240707743550971076582945892718099282316779058337318629773314902262776647639975877872648780009185437081662489942640476008521696056410892523500387759435655987418602655772592103559019467796891192199146786815236148853939684347307731145615806989141223301922165162133496565669026849366588895281121227296304467475868962435982081140842100979092174162238355267638017794044498723664452562120829658972467143027466640654904339048681503961685371641755002625008090102707273184819978777480867990532159066019486690570746278399926850486685352764410341475074037947699087547938988736060124023228335183648042255722249892226956225246253007640989316313972037918509306931003937544347779085542937400241824242042068714986294521052290431300586313654127742656007773372797305587412903512538481928684259085043378852573800486055457377474189211793285270926120491275580536773076062388818899216080508537819242483345548814107817281688151034268924506845911332095567937837325103148627500323375842757109046439433554899248197516077577643759415470916033217947850228897659047860278240237509482782513372538689941950906759873355355627920800813560520441685392083275216367998857361404576126881015170118872399343573090436489742361706208648394683250003945861856099553443687242137955308697136289714552415481970347362019126327565792343098532115356466712221366198190568723537904628990326597303278585749281006225746214576275360132311518336052979996582018918972283885839792460854260921260907576123734648760157709227188072065023692272342777033727328418074640026868166341452547194341860844402192374385322884365125129257222131856389780046200534977416604114896302470754992690430306166886260854451719786096924615952864124245654307189437524907201441495553149031452997497127915076526325508590396128712692271228187766184967019850097555026267666515471578619619940885233687465244351663665277610511891089712686122775878582827204440279441462501895723500386317295521820365092937443507702344038064139888404714686226277631260507245656751646745922672648437229226330223934424704486710026338189564150620457845221175317089890677793793394706731511464961339529762106499799592620431856815277332143738280021877698514397332636247997670096233566995946049663203023782714901888596966463732608493391695506723360614527331268222515206412675382447523543050944648721451889517279356341773933220703525223135451504661596691736432616399016117552054428299936909307643688927235258356577819986625752404490862416811987874003042291480657454066271670379349085948581836029029194182917554746002838617357380031133837242142837285729664756014874374630136661918422525537403572572925234159444278326448356938270259661336718911746158235455432289919839657896359982935853389858539478673910847722712761341668156528051082227733927345674769311346951538550386892288640359470449833134514486314566699528996036505229091208793565901987592281624744982415387726754484200085867258682106871860666169934857471182888637437150630244330074009651135681503459768773366378946994206009740107506336997764133153214933384346607497017766615102992815003433327004679437066092160088053027446968592438280664819365947039486577786479420667279151729573562034872638537276878216735150109823140086946138142800544457760359846397048850983720312394743723739642014751801484135081941808352606859420487235860071035631302444726273262390597474943710511074575029969618287160911237285322016919366315954324616338889016649027685391089942839759949634435494278839345351293203371473944794210981919570333420394918795734455017699375381634710764926366912711644102431858103319776142297960298245829463265766999451307205512361736152407850751225154775345051085656993924867330739472794042408827355896438511214144623167853280200592512987544613736564545733478755040264444375289009679264232462486965913492497522171526785115547780981860391954793115084387346634028276034604405320452755248739274770974100929550574162399128404223446497912150112765225968836337564644977727626213303679595683949285523528191031860970777802671519193066375334347919623769195277951604695435368327099044613027883036236843407782427214999096561834081143654524586121698310605556683522501210624802000696993629414628398568031038985311875072798921461143319521948782167662549915102245942595624580582282343529813256333712334620876912959717795734688397437156853959562048906612093400174827213667947291550090271057756239269470128957910677924206784348860276642774070799234526720751358166161311802863490420037134580984942406329689371566907220732117277070964839387880198725903049312721507538063995164977433854957646604218705720815018375378190458591157498201285848151971881676646968522900488385241978727847129932105833872139141298628168655791168177572182700868747165975869466574681281491248057059415863652902613273998576984194242593499038718780233615033208422128074189056658787635845930586517135836568188653937993940455673862234328074198468397030843702706875397157056458890717070752852746226602959362077245839508948155644619126506535159856241331476599534722387192578823890011321792298996798211482912683850061835898970676807128588005837803052872972324330969421949119429171758074522420161509119815143513236092690776224133963838502417572187905456761560612400116801380094802605871825423560152416879749738514073569072734069109645263473009272623964808287134385673655996786360618498663749299738269821244470139281222229315432501109112122053431671347422071094290740737925000923759537735793954937990522640251976638012964067305585887168094673476150621626810839451472216814002636704995650352056832267335768276556816354082986672392065885917923657579743643586123191917346655449053200352621775765878099562754849450302251088104695098388145438308771683364659713907825808190762541120411877387380608671495412687117983637223923129992949347374344117838226583243945970808127232864803464300742883940646816705062948236137835626157510762967957751040726964613227822891659991078755198502630376442637731357421254889431140756713946253972992356399231349015845503862760729400533350810660957045143438438968148323869209736749635397872245627129090376827016851080223073342396932295290662723477697471879925181490270985942095455218779797863204169792995238205339301138361314592916721067913603032009863610968849531843579615894565891485094360458300220001518218529799999122593660474036386240415455876622166080410137042013780732520169464395303566576091669894314876234361531316308093691361194011744437167004043923512688904964270603442556857945177155686498275838537948642085318617789221869630828515034316701867108629682673442393407610968701415916131978256952148624122520639879000110645506070891046827799674682805363431762299872898487883064524694506609167538624860840914556870623755261867326754383874231290157586141355711220627525195439174383544162231624465897990037866241451437275614006531957977133215945338526555965070450142554602718671396107716413617357965098511088855025652094066127285357746608282035710882256625985523226400228689494838531790087883872130562709238621397969995624730570102538379031455524614827285869725099486576850935873607942216636905136533137522701585759641808652334803327291194809664107310570154633631765521382045612670120225855101189091636354133727124021784631141911270118261362323909356321068000368014670641544808368385465809368177290201950263800600028625735093110641100032620536765657843149724655174483080175131269651197876030208741538241573317829787955690410433106494342019278405744799537131564514631774584072533824883230917561693070418231263020119650372191708793545346182108804487030279818598830656538430402391755501934170824740295229335863331668558739720121954674258886280203462778981134543636199409917629982388023736435073933679693322242423254637253639167137060764373295149481462350557891463365054402644175254187106703060557443133335958054133619674426339649385284639465772431130138646907145579541977119934769284227081039244582096055607904138395734414926405521111857419522859219053058227962321577413284327889474183595322780613805086945754739670507535931702123502691135656220320832866467086253827373554760474925997991641270228642191181536377066372735637263483271050917676109829775734290897285634101344719063997158822198313961272158463331581251841253226994471413445219730252369777833986097568417708662540559923900282824743121798615784762201258152155985721039141337614235844534171261465489468711267460691204058613069551672611937709698641544866526082138912341861272052682571856234712543197045045664983246199060787914693105078078199906202303900330918513950850216145298539919579582889410735716336098530161461147702297654113914910731239569106787024172120695027158990085527450047660156592827368420131753665600880192385968325177779699947871184942949431375148609026396007191726155829811705099432534738065582073029247116931954183010716602227743965070290286258614983791804613501722725621389617667881115899972986134007238820814705271806361308922808641641139657705766005166847446449368798646868992580634753544201225734270137186932911966770779071438725824694842935982678907396718782508480739364410427614739135404968337064368274173057569556964690848945384495788521313042367540767243214194578398897945724654397552751568202514333740731625891565883536439713539417875941721548507746259754238742147208087134600142428382275901240537064877753596898247625872742894326864495919795604111618585751084369166274271348795836123219240983645662649890816120687855454505620176113117733110690696112162616166424861694491955540521274390845972327194202946770225046137888621029211967606166429024652833634382200346186049754039855749765861368942133865507194759987092307807553576285824048459600905707188805688742140702099255255429945490654135143893746537839412070924348605080139238705807552660458102374982609607153101367140348460796185377739395058691924757825223715544376182429391312082468965035870274528667356396876262234875695938033300492219984856414014476755409752614876643014000982434706912682747262566131768062971070255360540120797367043295448256527666795920401888057127780473690809093920487829495547404704292363937454192429232965081616996251130107378844779197609415923601682941951235683052045026938061359989843019131559142486233812995669176510932479013590816512887761581144713765517656626962673436234257188757414807443553166466192619235621729983520314695632533224052502792256632089851603873978424368538951204263631110849160997833513051462885882878697197893150900739903645499903811797529544709011317299987924534403988476739904968514741300344271934321158279493627610093287794761431350723560903052968246649901279803682230290911750303272238294241457695369611257522358751188477008579939869690111119201558416571047298008881939130132384125327338170022542449905643589026300268249036663972828778922669957033848215125153051660310806426911202673111399695002533819769808152244531025457764402407870361561524023948822609695402535560245209756297831121622483758422923447484290808134589712486311881468704341808074161586929236683127272635428089439675995277376814379316841127544496340517361157619293411736831020135675010896860673890720313747726478260735533207947679209183715797383610487716075759909907061094809109307171029735841329498147244732735722800862447879010458450088484188976865113841464172152170665665679916770273167870587608234142362488586879066921228512547072448386757996552928207268272933812472058183114815731018092202812587353708665693534120338725037500656348906134802158754953204740020665482104938652489507639349952352382790792759848094353235853531655761389267726542210639187158017175840642422015578196187441832254239577037782691058883465954798584005548515460892379288940111149042923099649063102786971971876310384014696924784953550511208148753564467946455918693535073679882130177520887973737972679914381336937828637997202024022297780913335867289805041300929764955240857343552968656882241197849611366240508303086641818499469578647488013058835225006102032010168640546659736516593639516863086471365954261396997359684196043578664193923154750057485268073179936923586892882646749131337914992904153883558987135628259121506023423796794732392926989683874156255190234573646848591893678353316939813517193789026742458468855796190166335358718565123439068721636545956716567700809503112740075183681227994321240104402018836905144428116166531760631205451392409481783799585605811869435152988491209873466151984520750577613610095930719734826821654704569663636874454288094554821886526298058503657008852758131917907830774223769131280783992463913892371889076331028592775075338249540542213900956063844536170242193635471872176737636651732635406983733831200429173457032340652729991274729495782987333401911127185957510081030018765801517792440041349879601917890553126216051519306454968079655306525869379822371452914333651448477480810814469479667639037185049882644543891577425447623100547571021451081762014660614137875020087748159330697988240162017997872844207210121209043404360208083056348739084432896835721555182928568327514258936556590067847401494153332851532937168459951708485653745652016750469946186577239975090792852071367643556159689752933063562150453044724084082141807005173234369447714586392498422622983594925359402160748163568391151727261289512653390814541421228834532419093211195901657539251488276749528185103298414420493508378390914000879106950165038291876910813699833066725347601012110329732570233516728114929081399186308609033395176464974949018669091247931483598548177840963445926700145462796514062035122901476675843139963835185059405849164678649657085018292098022374077875822360607736867212695379812702410585681288410557961789629505836840774827610419792349151054212094193689066902399540094494023842552700737521198210507881093121159922767679057338555494829180754316360014796200531533267876409869416127167990585048578699137365521355692428421238545961072440352900764481680993886592778833123369031479076379618877975275961470742008236169447566281756267277598535413101454818645260271992462236901651607690293365794056202853161538971464511251733739783103400506005143544022785510214630522123620509865238528873454867339206805373420670434381134673836663396524567044855253383890066220278698600268805931880083869253983630703892219278573216819349048294123587689301918883778514218589638453073199014875180979731704273117866149249228179075767548623434840662045181453086676215435600740232598624220177384924016582774294236837635558093784669558361473073496495364714823756028615494390464540745296452389482152071560458396922419003294645371719922458137273480479938709170445291191964616404195259245147213349829918221461942643949116106844198775727893795193648094521245140026015828067908291084102377410329155459320812243100241741465366028193024828313677702923137383002249980236391668008959516701652156973370694608702578610146449460625035519469956507229660044741431146680827209858053352643389195242016565738026434017358573125809874242814443556019305133255203264277418394546722452822624861803845893906794261957180768066402540246343935224517659483480686049564063895653418311934068788429565482045104773069251661113988537917041941500933058657323978659276343058980303489648495118479559289115707867236098306236955115094266580254382581050966911291192344125757198248747263136257976792131240868583003055414145291125543946362912534698925431010056595134952558291886967747938793579301231350507078189981648274836947746010040638364545607384179132760146636601059319450079535685985709065480004026796705559786844177385048070076467794263264357967256477454931913308817930552100181831350974806725713508441906047477991968423515908085162922732550633240140538995734753540701219393996301417206137627312653877835033985761013529781910314908274196672410549128936542130785007840658723200823976252367418130115179631786381994717145248039656930448161487178698191572347443447094663510761523713542656730578049267640729416498122860273029855150100965446508243802260939464435663132590937597663519808394453995007709710068531589991487883313734433187526803188427976738312612207973350782557274607495668444530650788821383514943681945912089325130078809750712250007011516009996640347710401326674597045752768055449652383003822547256185961104518231949395776044371760478288736104938145286456605746047490613405785403701529325514884833869409576094653181397203461820736125330493956466996087703159949186523402429350160523251983856900882531661812851106550927734691055171669447111068739941440455690580837796310542815373143065494704140295524711315378845688383869130061503938349857117739715417680066083135737050244300645714934247523020290870893011635107245265314899440526015669542996719953673688385894593383300450499702350214128925470223276790527119911786478753699084078570865008607499093679131378777102865373649469969671163586272275592672884774531870131772973613753263555481664336764210372176321048338969873843559617942102083982976650208742160835946247196186005884106401455691475063068386896980052995492308424865258787970962537743427261215757112667285873229432825649775976029742004568645812514741010231292313754915701842049523091917695541689563005701551772444356810445124594783432669090003273523895846013194739826307000409209365147619113796670342493876651442907232165218577836295234468719651802885093761269197092141654366996492686093685458419712642370274490744930437290508965984272796611681032952907089923172848064696040435717976176796755265756745214941402277349215666629365045688789525908513987102425482188565439302494430844017305383686579125052720055158698803686021133605750155838543039202010052901262465625644672213559271839850111264831901287689674549324821317493212538184419596458671951608759336235767579960202766022030501774779962608232035951175277623168348227583633900950810116883826411494287062326379124757790692814933202510562978028286270526631166311340778047330555601164552467122405053830088981655013788176444437681859805429624430668800857226701078096008476889433264193256407042708192981726342177236549346942043947793362860145980323101517841650170719695141053582956612598209270311175547881794169943996108251607645172947851066932704729068797716706805407670535315508121915885028238045720135848549692413631451553867061470493942235014799406861040125123125550374961018973837150877780394141315387775838501524675496617920390306312931388161548992745947352965860128230152363181416785583816259440987752050165747878300602425347444946644954436463015794011934592005373465076556644298691420855741262691317400239517879680719286923544582901801259622901868610875613555553659642895257708924243133875091184498079773973177327487512969301728912226204422253686840762173285001937050238298837211481201654986013728784675385957392978256018632520697817440611115391785080864647356558253671970541772738638089542369065506915969536974141549191182245548991518850742360281094652948320970342799110929876769559791027370234784015023679867130737798205467534337928992120396613513364827515918241454992271419372050197112952801019056296046211088839490592327657565403599551349604447432494035555977188731820631709323667421184979475855965293863726066270363595678383707507547550685526104920604634904814535125857677257462964734389095398529728392214192017178669590238546498177310117448299690531826631265417174688426369834717025488004308152187448805956709090032169441607027154689352294469112452307310912223743842505393030195194100245885341637406742067000486342836552512605922717392513322971424841032943339547518816027509677225224160469385093830165527318375692039862942650990435965050175613329807446224546155455712457741480734656229911168223080807165971624154123287443834127610405554028960699068418858849864407202783088486214158658993442592983569520538983793303129679752069047067008148476721636349406520855266458016825078762306888727524801091788490904186751958347645952523718559589081869337411188101646893927685043492413557345737737455362043911268403447125941563875607258012064473965138742079828016353086064550606004163145495308544120289398184554111412576564013889691021761096996818209100414154965590732869341736842004985506468424146212896263160777151697027888009775169428577400064320466517579317590677515081465993022124071723969815923591961539554960227404876657558610490911763818282436474104160132782474779288618717376827347103049958410966552748267463977149147288512271934375789362958139297596706769164469171346581569007385934688603661737882542977162791906641218838441132380294432772129713030916710063282865573796154339130162157920060789093852940785920507647947290350169123877603786125438831310161778762116792635543727459867332312394986872185985266440676543092948148923991780316680776760598211521141038826523340473914392535026752547724699523869467891315170920951179440612930101230189659242129984546422464927516648416031952423589873530973957613156437553672533185829576010585884757194098383845932136398440090932765937277332410105362452262979998570265350349385927591483698020679531627102167645427809170882598205233915217258831394444532238630872687725835767710062288893611917667051100096493234045867937869648864241125877233646753748311723071928799170186052257684224262340359802590422796450634062610191446299174550642157012931456472583261933971112768908609343664674576811559330676783583341273558897213279965297364085517679284533911972565986108319961768834403074535724182061178005134141018722648386996474916420810609266590681196189422934169423227099623090895791204276204606598705196767801322353777771623589991519842886264872987202139004303176480256196267585871903411803491006120633460603033718882776447790169271942399730401753334432819432119748904108291563406287624746104006526014617902474026262876212677262557688233554401854275865315915949823478431647958305760155941548111114116294479705913349457138305149398960288623235064923694169989061839262941779847192235239187781162752379950102251298126081955320997496821996873352921929179823921955161361361962868618014790866043340735824723783553306208335165652110411528901875459378073348176615432812276362104881246415412268190710130233285773878172499632380686037419188496870399937159094177353848063616751950589469694625707379709050124222016907795481875491314242948520375375440107797027010172432373153212823884255435540706412403944674624738558908261898182334055326349800502279816894141006089764902898631753511552393451431362632050840892358525379045577227440095358935122638136327514652431511537283567081724644219968258282070908953035160216126516765691223962451168377106643566959263015783879536510548919469925863590884473400036763305565243133712800304652700851414521826125459854838142149605120896399199899257599404417954081740116502696291141281209721347516328931437116711771075689439109627375732811189002330215996034407785785097602559478043680655687515883788537444459671516411914723590276193264224286654501535845319738888086500093900189902811208114258572047592489572747063748690752003152686986114791270510886883269541324299750969309754844415306116859644332217473646690596031045409596306696301209302897213338694358694667675649560984829643412622857594395342186283884250418293322467474085307777247119425778774296130386822317498105135889234662279549165937770658004712355466578199050387680315756031616322211564009601378670654015436584030539663535258123127267841146073743503113684836680900859421327671350678675082556326700974821526615572197915679730420553612924477885498578103188519783041391920477607876414257897042652106339563121868172198965298476654438254246860751901357743896932023079327939883273918665634779726506492030744504527665922640801333647786779711119331276403825304543201938888077037034247271416963385560003741102915667655280915701372119884066467776581051771709568337941584711630232598928372963361788457849603281473803427922741298274807330063321835255602811013598750323885903304679526179574544250858494642808839427761686243011595018583530813419946882411855105036137570744940070852288918803002083622880702189231234937742784599381211319681828812692523500635447396553460798764359559609513446706708686409577647267767980141558939843073568027999571830665925024233261139126107439336603341197030140228819981232862571116337512984660885985111968096018724609928870297214263716090696455249732244591433736744018151663169011530424506353279334841040035236966539606208359259444821095798694551440143514875401803266583596318869093234077124385471610137671497130375592833890003743006893189760678127172167524553186375569539747502201307103834260882670618243526049360955594540578605450213504514264374617687896343085136078334451876733199962271565101382035342726723247260746777678745420855572313481185246713360213217738716810780325886607638740324589728342834527938838341830906469194857071390426626089107899345541908249025875299749695057433688959720839652344157282979800968605789413704501900802905701818818093825327499245021394774196819855875647250942205618870494924213869075044247370454293749090011701889591425152378470748424106776487386607042940511919280702145280523956352146997188114480392472537259107772965552184807159082256620991829413866508332779805372817796351054670243148355034737673962568933061653047520306772192929918827680661470948808112700298023082298914456479383345951139106750437860728685439124393558912284081397136574861651355136401598770239543886130457840097112645824016896614443230449508119812810926714345864864610530237606901298737484778988497946743099820870807707548447979609710595066654056509656467510634542589340828984946093177484218671063694673447366620908750531271518193489775679283097790789520233295313499058598803318611750517699860705171978526833728889557661597095833055088027357346281019671510460840075406872991393492126656070895223077679042954102208405569681306370001777201204874596402767518503346499178327260124573272332926510334673816930293180824817020033693458578535265155077479115741219543603799521406078342593512441692828112048798198310459499951445164199932293090304452309745359515611939104330507428845726083508318264145180292400622439864269739177841206800373439475647252293093725103095914901020553504295183054326223036280116172108967435564539005394515647723700358962185184792303469343142920404227953102470307416226980244245765543235358629167239795534810143846655222541253107945980877776775099163866377369579208841440867409062780764354291006780098322422277007271851912448723751792030486129866747876479523610731638076002229387823591244084427417450787415296111441714171099264123700498775950238028097034385915186326910568171173714797498014867695913859195849574937521722931944184390567576370091366700918930461113256509885787902833217514346850509601680874980426332842684985103315331061259019035659349716459783498424920876176078904767545561157393326144731617453818501887686468279551076499673629045766275577219971959429430726968082394513930775503062266524989339902279819333329143095559327316636636890324768469421687077205211934568004219814348849647540791547462712818372359824146155513142918269541305879481298036788941048175620849667295169367772012498979128094453271264300806089406786734038391351341420909260215715257228687955520921093293700034312494779270575266019415198723053397969494945373262434996224510010261411017046166539699446740905595649014698378757357889316906856000447068905863080756944710849931452710745283849772345950563167255090787019810874054885592678298409993822364042563988870098580904628741258950179162132994695780518616912305024471622921880594579648928747762373225339587666112393003342731312930973181254534718160150870892304159114229127085914427736233442369939446501625229588935727495022193298259987592264253910215027279336945712798614250608074086644385811011883628314369599150981124874001955158211317093631379631776978087430950940777883708990578083080262725616912011961419778539131941484790908987191955397699757721294591137554310970652039375544349013462840757304319431725875347538174442586953015819888047098941958748824519537258207140181167120047256747688415138807184729414529696776487008612130904602273715919520893086821831241500596081645255541712796307397814311088645095850620538287990814413822253464457384483228435494711278467156198934909758843911097775297523614408000165310508795350154546864556075326546436026152023744266855725246248119349624377174307642683236100565932175173515231818423004671091638944454264877806649044562464617587875452551952564818209645383367939598855925629147477967070368053262766055063166541068876084538856966990002129755896566557067191974348867437614636876203442245383273847432830812057744799008806197343428471299835144174570521467905741649475317321349397784138925770338349076745135687814195027709823889338311598360756855099638474359852355374596147111443867194157062630671322509876367812136934565407539988667301585599403379848628970867498418950730171121826971014220899681563578069709007344437099230174635691629455736421755784162950015127174874674444236592666732287379796044642819059651814715039434286104091787157275829195742144151884976127191232464935575727743810393085120207822495450192404892168951401877186831272712202122152012978372642749034040694874160128332315997259509673620380946732860732322385027278830230497236087460135896173951989982941242492267919203262587750484201410693228237367334961935069846522371071348744911714454201781641385808599605993137894282162514506093740315357936073201834701409408574009152888651949041331442953432449910016691448424442465245149894481399277548005581951259267382409487110913219272058046709639022051750635366350844511028716344337361528491972168049130320138549135058047540460811045295304320755191400556774142639772284757019227828036301890389407009638895241500251042267829085032795120273376371690414286746156717304297920204136171439821715436231266846332992025045994833670263065873451511447587824093896238387810227864686327611178420777976949618141207743209142916826371690227148130800089392505846262200436608975127956774912794774468571067350150148833099447843569749977409128084732736973120721369396297776575673875580127644120739399196082571261668103179079986112097266745044092251562051549672342322192303418094779646794608085137170624052726550880011140057219601158073827710458629307991281841269517031645294560552995650429258255042637078608104633565581876764439450917657866233354649658436729271327958099137566074351980034120612067232073303289498703659183388673429837280426227486424835418409738651988459041774791553967966582100687878590417205621617540367156043307487924874981105714476846056004792311978903682422369653760459421963004285953418024274581825662530110701919861484622334176826945629672108380991977649029443634356856330426274294345007771221288364548325229835056119774351213122332408790115866331791928911761736826613911920536892063788293067525092875074908893427573276557813494667436527105025809749218249599841058932469722163421671222166740560061454478470257273909538103947400263962446381620673132871760025508313981528379015950440473458855806078120927864284615713699936052294957888217060069562660372375379951314162123088881225405175936074908786244731988813414414148646389864499514702166980379889038612577066344899891230212170696989440871253257079854092168873158323899633001907154490184432812476978764160379509739062379168656372876437054031206089158555331065834088801221000626121925748143846479230635309924013205041033168053700684448150402585101535471591247359000641677435622547626789534520580380124849762191557263355485777240180636545885290506251531975362702077714930621329945700333844236680975136841540335929947732954296596902084579053119962309295589111882154892942582352274050909021402558159380124976332627474656277303569044283528303510417697580674340997754537760446828152178099590707347771105668117511165730898922143994422531533037938597316075176690431659509154009037274231296043793238749234892340403361313445331110833594638288757152990982309728112256710368376609789638647419493505743447623010259911206590601290876807564816214763695166999834835657528736039754105112531378960845471303661131664320590311572166244007068028402378825103277304863662092909840319088284164866576495489734557526962680342460482818484209465678782861571251817470421670969123290950450586563844992308844355734945540138902886447420283801305743278608397974366486017765340910437121653653420628076977154086756325704832102016172836557116120711573047501040231124002642666875946787395803527615309920030719990062705487679430608359078868525569123487625749797170485815266295046072606374908489155841339995231113514047397676981831043863912286175052002602761471188573755785356800742242791311694277061086673252166690398164913882345229441786715586692349180446176908739630950222157676200358472265989523885461825354917618621014729950843759686978664049292760001805014071580833573466612432454932270050797918614373515563295635387149251626286299802060421289422250598240061153642050632566458554499405523360867484518752519665694503958533927521053817440717429465521727158604415101353654046438086315582474182257661082035202013209050205123926991211778705157914588842506437416122267694200132970988154726452874729432924957304848341094623339031464171792650823350508376259538986544298748887763918353405029121387075286456363991767127977225794791264868126234541855197577981340828032021600299236727425303821313969885066081822460327724815598091801701014625269286299544405995924245149370465854596343344453729902609599086639425040350671544605861776879971497684457961412655850063501135436934437096528977029414579952561913057448291311358134237056912715734061415058110880192364616829637483757917216829085555225467384553748399860193050777714390971209267660793504465758674880063173891503887538433055833687082783453438682009659148099357034279551415940123519543074303534476300551935535511457508550344958158985211132630546381942790061811013667770726507772486362867585116679844939640746652970105606692376447059573731891861201329981162996144069979572329664423847809873544538803146473996360093090875718416885058585147560360680034238479387163897334982462402725316503650175609018045660372799439903812958489509202960370354257279141941093745879062611479480145291250656239885742241258297087038012788442452095944346513836671626912514333033866383718710835132467953320474108208735687987226730072992380892562456488134231784608436337754032672268569595071610998406123732813119618042303814660324431363272272683636333361103454646145997016487822979345695851089676012000561643520592352320703644973315446471372871220921124202277257931627076316407500541361296753215208658368271375206366775638361118539627998937796592168949758672516413722151041634543083686037666788594454096717191375063197363114604298696374910362025375886743758007140090813783257481629071353912137485901257010791313701951708785695192266841987208593881161630299550396820572638717994060514274649908013144103754842962694413411441617867238399469309681010786196735790184826689100528498049398587936565656135222761916682457395340243041047852334828961315194882518503539427731835164029561516028864798621965265136771770340014922162300432926032138579040741620576258017144374639451005927399884884469896757120702023392097243744618685926815612491898437857848738604300478126594156141067719616117599361552580286390138418016891040954708002601843735811174425016053211742472158268635746845222079592849814494924927489326768918900439289429274368359437671881603275332862173229221839963669309343335529764713953754516787909480695431072547273594330112574012701359430546943332081549260083025745693343000037768225757183659558640063205645376699189119895699315692247242747401473482456643911930987896645635894561698047570655467040070865820576575459276400846174110352687855056375204718541482498731999423509649776692873481572992623945921867180738058736308847650910442815413428721425085700817675377868095280751861874064177279797077445420474186259260064655660416778751805014354375771010295124533580420296713437899943085758863883135116430497456134229750886979154551779828619236446878432066819649278946797832941956580494915697432377892946189015207153503969176027653160386476011287574917114513896003889308440378224536213388861905313717196586454736831549375901070540341269652252486924745068240628740046077873853799810707618235473154344640811822129517888678321009856121428729206752531681981075534811376787825932729655922359157043738977911313369932387247690839543326592149139778857654023447272954556605958175417098676883208945658558644756168586198354444654890654723089443818947274151682928302799405563202961867970168170490770167699832291586986404391648048281188710209905160258626341954647599923952832779130593123225735388447166191244982957582200457536296878581246550771017873954716600665910908866309203187359099157643684392147943042797452455435513185610747925878089556339763129949634474872878741110984454517280006085211529076631987531036577903130373455076692148876574247314918156187749637781873061008155454501741567291922205810434136649653500727599662444290407086491304551083751031578649024984082741523817493725219298521266284105961822603705592655911064493870472669845575839733456761444922994710361980795672253058008763036054843754413428161312242699454665011813919196135180143759774550035526976547504646976755246701584668959171122414164091813359575115052609816918844222956937822163877150760678559984214495866051223961128543134803173727347059252256840656346563999956846987605877443977826328084873614652603228933635103742794518556498987354080362828025730644062298052419771034902010596476443874275485017893003182032898567693349957732434259325703266563677346043302442888405838163263961212102802637107519767484575451434540940644613412450687034549656778455618487065920330332522578828000238466596877015962733539567191546480862161107800929087394718900399752942378095305458717423697628529571360655122914947943021046552095586978714710785273510055841301380980545141631347956331159270795952628569022237588952740071687992884343504155759709199498800607311846178301204551268369220547487764285200904504794385151411015580772485173448731308216461466561009821194596057617106242547635936881186848005555450114276623308105466342658839475161608529526355916667221315973641068068472922741476855524790634680605104636321828440624072871214764761011756021115373684930058953795016252279942247838775577093818855446050210189332199357943559473159219237801107559160686091270680007276482217014336586863790434777999146290138464238919549698866739365839618994523290315717252776925563770774140842645237135456487142890903964032659936721647562045824023785135679175483873900303558767655479692524242484808392191393173018167568637412723979834188654298874978754258403985503030703883663973303186783580030057314824859559941814172976881227813360303607355334653780334266856528295096946008921047880482255995599116075290887101781886548495317130077557225927125217582333272230512224135288460110310221425911601802539765809800609684880356005242839401775599167453102307424114374488050748706891841616047388604741487735111319229509771099693858350603107515760619370265750774978235761078137220061483643635146814647735388356352853069899886864279544964323524141901131355934749911087876546528772386118414576202699086831308862775244410272248707680815133816643241945414275877217464356551236391165495822750781460868619707815717232732169388116191502935410288376028798164611779576041428045555717580862705505498644491588421173429598775130512304149203302628516277198588132876591997121617530720538171705310121909566009024157023384957432818846994663085375375630258863402753267350403747596548429069899629885988445548875833324547562562318772821213965486068402841419428952576529266856580570327655152536270931861620688457625537725254660394160233231093428202108737943985289822815588288611817294560900858383247744392653533070586363940563875783019335986370398818527713083485012570451734361588385607925942295982334769033857002864216902274892236974065039626021301347407697781523019096966326652064257684879875359400597483034851207529478517476965951087800043297130150421494516116146643834745944730309413784144092372098962075439466670045803372257008526577577298738723309621784970468353999783241003520662683836732455507696921399544738819813117048408485662089069285042279772794931471673297821823226059975228278026625794927764437089762928567704232874560489991340403346374058051874270782391530466635162207311298171670497938192620694191782957279193900420437267934295601216762666742068018075428369344459760502085263028099394372213130676081027738038191527116705768367847260830075388400787645743818820581923301779815038894280219088244320719545072093371582855904625961370209527009156811746957539278717585435723666354124097528589818524885182225925771393739981832902107000323566853694889394282620947227833790169366019552927775976889992526792572082760643349094450596389516153135271040200204487267363109621686189184050111573006779875717217236883948886834986754427047584991569780476090992151746575973466655966109421814144756882180789739089175569054655461960858453765256208256139551317248053740158259039089264893833070928664747751895972673007522597143409076451303852312254404436227806041251199140217579728042450109204250528302549245074027187424469649715170966740837338538017385509926432481379932154732747302761130618980098358019460416706381474887135505315756076952248703418253954479638390642220281531595918540416168287036318418934860098588275299688200864919716782917259683308489229418594382169544018783013981212623520566013127259080932073462987292430579827521135130538119045317673701366361364193080577142566529558630582243976603373587578936641791914051127297284262694339960806349632754880952235563885602848556494591214330516146131411536611508174816599781354128187497303985349554435337939399368067240944115557149847840640823685236270191911732859995928869998718294848139483552120204775578255265946911327480704712272783240221287836077806193075415807971174274266839063587133961624093632328928183215924444688421398104920806956307519858335470639691707445485357946561268815235952953524670711118813819838045617097092403031339826978890363769188595420261029586575933539884708065152423041342766428156381093175812259781552986907251677765574153520029760103717184974072770358210637852303482171867806276109842685947476662363695035880401731575837194154500411888379516650720971728068822585498626478571954480404233206730555708482542125502149678169023278564720515447479896084082025559280965828386948930896841313895417284524453923510891286712780349922188575761911684119193895993148519489575477802322635122064022140518899277629515486089185747044844011200742250287315843500663836125988147818669236610301319113955494219512941889299323966732284252498191081044880623571911314860020334230282801331443291842836302519255785858197583126162809343202226609907215005931671702502792394678333027976049293163638856873392121923743537879964283611403112429320495870154033473314835398881990092386448119904302200578879090832702956584950795234222353807969519295546102176981100028215348886333254345671953849604418437588954683664881067885871002543869801307038870493406507265196165143309212658913757200760012205026996916411060023062595487802485526814263164228536256522332038740808021809357202085926234216319784219652222744953511418656866283743437439977044397851486760460616058904342278683096813775591485521101348088447255198460561790854235903185880417142663430741097684555453098440671719671268437479035712937311728398998446071723571646664326196815635979714983099490489028702981778664883381245950556687305230657078585970517553832442407254877585919379617121671779683313181694388139858310431117923826716143755575957847417765159713926833443761494561859278956578653274624174213074011219274002956817845579806118373412098277898456718469314683746308969961437291065012454751632835180417663420257651776957295881348770649478093447735972196585651638037402665184494686356320356788232883766702211473444352121854434627239334107684901250348200252028138550236159708520357622606117140777588180082988575620746914226828968603807382944080201154009842760238523186225184837122960016031639425678046963476941866761834610030670238930456888501572787992580970957484596224406776381241441860308724171322148406404645681211638336080778594997810298028698077737696893178790809399403309839845922297106132591961432100219359778154359275945865701646802636582811908482577552452158602627441202592203283707714729214883687364215462283493431117947329283472750080933016876758415365680830124870395049628761041997514923322603632165040181371322437718109274199671960629781724620337030578584843013627621433736246008614077069077621714815824989502629012602890046919817481285042992698950671903966909169868518876962118765892536214201300410921632795485551635568329746867284193368499898570441816806531011123925975800200017360924198358724523606554602062528685688746672088050121749002580689877709276249751351884543937535779676124926203383656187020685194451633463621025220511139514598765065205798229174375975290817290042592660013196837960769883241769902191570880720452138503836361449524986460167798991361034526577773124509821248479935541508205942593356574745652011931421410591362717420417961538927197780773831860966153309987815455092536262110079000871662567945034714171939386854611756531066184148091437589597904306708042668034714159522282777136262953773220338273587127596514973446206643934632262448044409183286308219435198786383040497765681090282865281091591721255809105386946245910661748237444933315004917617850196312385717796432139195478260778852150022655839732293947115688051524932958891510554477817803927576809145201314105532597841590558979940894312166149402415704227966826142207533724886154505936211929275720465884161318220310238085922468319466699760040122786998665323211309924761626652377972351465317175530902227933874447477124211134741282178380721041394440305071522444305986353049035332964357563241562123480944050035155595330009444340563759330612277496868752525391744609942611693644447652170509693987225162536150595196869128104424442088712403567835011284970397521218314526927087672586325894988768552098702943636130465214278211043300198043639338819705398287158429574005960215935379538756856196720315095760130968063522385306632997542210630947267261298586161064495125493643684941420364371613395280390513652179518961040288506972664144983743881596791489241887940869423544690369376611789133952848052624582637881200094799922072684872491133044518882881567844488530734431234435785037538963185317726643510117335179974307889368617240077159191028137639997207152872440146114462679763315283480049862412069144960881454619989414507074972417252015372673831013540964111640207813940484749389281650216340736070898863696587216900226679025389734282731224846840773298473415743979701842209584603621673696988598921309787981739556291944825361712530345528598323224379995711733861083950010802391177688970151883670337158254317322817942198999620355634225278773773238803885353079597623413422169959024834718119204242268364006546521901791077516370019462194073537876420736577677444271231039507379422853733374193771061226915005520593422261573262847973597739387979676220486284494993401237196878325940706523292756497825931897432553530297567028015188819499317763307246647752670461753991927854078245114312712476369457839175022204610602324111263995115747798320637963016450387082488791607530747916801441611344389754747597008655421350244948279838610577098476883805774754156227106158454462195148564395299841440338019959145028480118665507833129505684322075219007176441508399631447622794704514015690015942029125264040158376176765630634029724383818594595013078768756879231056339399597375374013363085306903347689563567124201449373249992999128272655582755039176575405953750730794782952104446400256496355162911024090498155960444705916647262703983627800343032029966498724998059908303749821524649912666773186060021941368822248098639400484991755901054131670923964790807105832999244159500957087297272038697799628179480704003452444762042740383121295140065564090802255179150597546664866000451409696332244229971403284824736503973402546159769638347227988634874972115553139073749550571558826136006954881697578971841741958660235552160462672520906554665862399932253439773211847575959488428667006245222268978050485621236187112807218246447595033629349115059172052581056893359906312381067719620622592080450013998059543284481361255682822883059642853334785547136651477021331746736504397792914766298920189311907861709157781702904477550388799717783993588315417719669620888994466856920655948086476647092023592715795411848158188010006460002708419434169463905963496928190272660587088033504529033091208456701965508366594427910552114640981673312826514580340784961122951043732402614369382085762423913812724336724985089078542245428022311571262162926723223456195610162927769582572085139233837804845240276349716990326799912129982397692894144162936302795688604728133346861631192665820082354059550229317289386449549798450429344266493296344738365745699173763000435539587971424746734482783866090293153038388292808511289869748163602306804075027234717929706118887769141849325233954218907392169515443896883459065239503214046574946249067873059490193565039963123984005288753662252708212782929493608761933823284091966747918998075373118701898479454412081521811045634970091678901060596321272147233388110809117862423606696880772324071331516477800182354617650829447770849284376009720295336655606185224930017992940164171033453011022484683107835901958913204093385210952593017968904622237593091847926619699582077879659551863805383984194237350084366691493958294558439669437159530550243223228712277874355715025852859316847663091542401371842668625573839443341050503201833711973993386783861432838124486963193386095839565512685589417315798518755796044537015724565178726339935683015948167432718839970946583165396441825290931299981389900986919810437934581741977896109172615065272353754901608627328420087932951384379035876790214795061931188587107909295546947301357290412577113595734017962122174999128747030966065132175528137359085884943517363155743690553342630809735171536434942586901609411828779544877869278360066686409973720686089369359420000664286410679558295545265468797288262415603668172062908540982921412778662036707158409344058758772023376457160815423091074738249593872554609780057712566669213669030138687709711383134211197465687655194155587498387950052377767444729765272445926073485925516910566285942997653434707188983575297552119779309863904834932214390253946864423170421943960715132808951002612897373160263732925486791003052896832990558286147299727121210449211973375330057667590735780170416624892284757740805130698661241990301480585765044989834441944506938678584667735127272040777789611260352168147195984917524652962056438752945284651810626234124650288591726900095305045381427563008699387892051506353456124858096048736039864745304330421456022997538328059278711257969318328710678256631333135819352625900041951762610480721520914609601435292223538658665029445715458576636982550440386551601934757074393095813302874376023718748390010860288466968601405576258036747339398049217203522305281031518254923994061696146911473440085492125691843090407758739742871868475058208562555407586581272164602731140214012801835434497178627929466632870958323006631087012345758778372384405276507426702092738709835377387904719140637451063376797373098483562808574725521820914638850084245748195221624788862216920704896193737265688325181400992896602824916000901010454694535003971268004144881648278374956845786441654988057828126714334544336677019976883033419657841277139807351832187770182357661547648468841797000255659855865939278616528771261636022190259441711774021981984119038673719688479427587915325408840693969404312182517142296363188378233119776114156930941022609190189605946075471848180654974923766759865260960376174150650589322956123314581053480984279910551915715573419683778061297188048296335534602943606382456674997527474684525922022382494708738171791536676220935262673871582415524719842640913686083721923294726048425098752116648642931665369579602997379827386480146305712653518410629957257610800468145919738236853220622228402883932856946082649098142195432653551979815128666868019887969552405606100915121490755482718253001527796685495019719483004293004505301673801983677960008384699956043285003791916079443584633996430161952511446685300746050465900003065984147178619806439457436340082594223528906107116026660569172457164973300324616846026570248858197970318847057993595973595802185488599707972092885549462224388373362001598214152946634408179956285419653439669126667496995428121681672618355638251607580407128039455693136852420991599664712130774298335596777723714255297579033203625221099697804055712328884443384143372408455195249517559983957354293914659436173517672982022029297738102430373899226095463381656953842999738844126712628262571291205236396448012703919494683647856785793040083151997216108671699435598255389075624419954681148464383741973575387967279303665658821893993974603790005349546001521794556463454124657673874622825060051864523555125862504471678960771242495948014534156725209671493215579302415862443291395955890232381551822461010842455271018315698664061365250902194686228111978207464005446048780506421708249615928827665003775204881724019148489717991656372395338115402624052150884455151120772115000403793827281680383466786937200697212329594034748267455528155706577325113993150886831397707898611436667800895276783143682424752090892343490833898451872906185949442477215228409692338023931525944483851723942288919100784022773196144313116742055117042867739552857694233175917563769456932605768864612825787165099110608302433763043086069305613830145243677371479240545819049591467616401355093349212042798465718730109067540988255317071661851887166227200932242757658127922858477601738855183145585238624410180461802071595772777267496094295780895345152520200422132933644429517136924915264263989967287585885466480964848839105881216599340800654463783513318655801424505874300933539043749466321987265517458750565569487986412564724212687107121195705001985768196502910803613303877877592755647118308066944646221243820786265002084323386486262448336388080508886286036629517103176367125296574709546351297366970793264214251628741451684687361082344466942046604765840025457632151467264385174685117153327855918846469142666378001927213904283286385152904767874195814799666464560370122769439620875324226879656031896618209500559231351057596763666172563834051419847684261132600149453008463760020037886565160571499103092970098325162997799381872090100620234079528670474928366532726061725052664703397370165980475839947943670253097538826515660808917172309687817821762222499657252850115216287754786303454984276671963982856557853607499824165880838018258019583975787062467210786256338840090133999199889081474048293093868155431799710452296902260510189196037939726235544848853037858646269242438028639827593906671364831585571711370470241601435825497885143529896448458225490579259933649472693726203420723573753678511988129218025928118706212009444311072992023377768159117762255892479185025300561003103848872466765465500847776511429319003579438850440515418784329064857189149860041721348495750200950193104606451566268947951036372303959722224575444137303548863809189990355735687564111394110093134989071124134417919341098672344352004666030792745156195078544811210460796705528868061771462702960665719686001185245182476599483830666029924573918415899989055367057517439955695643960086983770809513489904831654273467925469611422233144039702856654783181408477902305623309397998764994821463837325696571379876295822918591760433160016128984041094206905511193894460227356662286368282018425991328186135884205827969366100453051894077242190908413202289543699266892221932051698161044712357543209633406900234020592801947325636121232864341379889375098271771787899526143629174730064848400428622639948963961716611024496421155032428842270921697317154898388201504252496167806838810767749940040544582250640980053138612292439526222816056044552297767398611102249269952354009233037348445576617855087734301325767640375854587188425500053127515434557997843194877565511001086952212137053454137625634042144928587047123749042198310905376366804115366581878765972984169501891925991571458017906342470985414419284717271066306889030200526611750911884861078365699732861468625117008771667683615505623467036807527039951461094976850871280549358735669411599811210493198704736435733214407909996095172167346850429177349517373474663518879137467232546789777004373872253272211540562508936788315288964189022808658448730247012871874540011475243498002592002645123929539469947222356670677829487686055907551340879593735796730304208880258693068149103447247585889281941640555249307588435616909162162105340755618870443674339918469077810937674357473510371391381967976999498304861265043565815197758726707862189369707532385984151072390181767538206176594395057818628566525344644096398042804291442861878376995381016836976738288012154618098158047444708796805775512879075617605895483141847281302526250232779108365209739784429718972037765765905532981705976065896126239826240896200389914093057885715465073222000543185861231318279114380809847516189060254855298785377930215894996403065270075004690663918522713523937694115142888908221671740566323191380740921164888845068004902930128985502161044892407356824261686495517659664723100165823958406908646829928373666309673028848335992387996969388343410844393212484044909550776018203575348423208801438104055365954354206535736704365043702422488853427511963511323621267240250310880837466455560122137657563884571033930848029625682625970068636860862562385937673407949132663375770030057794246565482116816117081684415269297837383641320317254511426704169231547508703403642366478869780885892841525212727810574534554139139898975471727167904095410604737083876906352293417654246645504431361633393683667978854881378909413799569088622306041480037384984921424251718256977298303868382274980084467405760493924188157735398731222861076596815045956802999838093733217293163106927993691090408992789447645942927857359098722692976876864401737525821366216907766804624870625188845168172731155559883835950106856047357805223525978838020068518862066643778601998271810476248451836234086789278024098290929247827666287297979036607842671956569715787111092980999548486614236947246465690911142285103585794894277380338608856144999656321368457552708550638705464204918228509188082069843781440719571000791895446493780189084224212450224087212487987496881931396975376629252535166771246101493029959275833991018670981854138422242520687576950041056766334487424333897387698460553918051901069652254458510428695922483537669309912187582146613451670638666142879112249426569610221391232238703425017516824429066821241442883783345501660986356638200339089020099781779677090436299424507858735498700802927408946335930951442810947796344468651827897554926218223129407213383718073341599270964211230564882994778699282068454633306162955747434636235779571628558870336763999784646069076541392620597926539418562436235720949886666988865161089591259206624890806900641129638015391782151799960287827112140944578787373509327932184976333137723346098346853381060765481419971685216360999615715841477869953705858542204493418314223535394203017637268314212138440276656557801464605667700439498263480005045056358119095005439738256831938825436289959753114217589332437101402483692670687672940427011075697664860341032280515217141937172216708678448656966800234868025613828893062688361916320953488233271926858015016556580512355932848185882027726494087979143097075105582204592106123833065699141587710032151825450616069242900380738335074789316346091148149520666001413332796764690824039772377147167319133428393038633219802341064680191385315996235090639209714465357163189404574858674875325946172081189498080291474497333027266689900952843598248790926007585786244852579236075253115139913367120519056332179725360091882652081109746571791128484502432643804893691881682107045343349707758222832415712957430450915151966424490900816673962832466871662124268886962326361608196979591877397251111200365122396667103479945657994093546084803999605185698400632922110043307352093905539782142473358777667848655357537567601336325018907055120288684486452566254363441961783110272126659753740198739792128915592223243882140442438447349538353290004570605067692163413207045984480618654300072132168730706493039209951149654056910389870929719423949313718683842192588016802474145850672679667914144663225342246409766152471344553268567953621678467310186903517092293617550183404683892474503319362508151834290264695452940869709311005092526314120725784382282738010090866990393377146520681148086468894793517383309549840637710929211242799517984628505185888450954173872587380921943004236180177317977364788280922497678885223699665320420330065731822276793166589174038081222541836921127136949364187982416740977397836452014015408213236304857073308476209112992460999748518136532141997400590788235686251562972537474377445480950597265315014443882106280228758821898199532955763737235509750337192372068735161057458075239080112410621909051176331600266645725593732823651307649417430601741443061187153949742658960127500076656784237449132002428550625902453802951239999648459299656866547419469502257851149183283833151439703496149485482383830158596148195459414601506592907040053558056299021583374098892997217237043759866280742337241676509322613775886117526696218840052900541393716374236315464668224022948657372508024068316602027915675688044732033011445242748274961108307173669443967335059540831198062030825326443655187587500378030688460367158718265279252738011687409601205709692320913136098844663540966486005290470656800289440855160227455616003501417136975152611075515901928769279047404870299690124593629485637258396782847077953549378102074584620336503798066603824287077702857502347428880646486878229841972401510747332825812731802075743764845291400270352719172610735840011285985592947541377359669253890274033447136821632828950948213848169680524857416843076469926353172145059095434394881711237098368321806016947869123421304979264154828703073752319499454270309909742260374209406181659638085330200092495676085350348725167247845259277941329105193323928528779956894464102490023952989009853442648466695625896967931920515859570223976065725801557276097034599846933096433426565519567820898476992760142351032786470141605460887265884717966729386126094971147653573104287258093890638072352823384054985506721255748370270677391227974633155665809917238359005925648457766299013691415969955432240361923881598482917071522995066431533754067054006324636136960413091228758366283163744209537922365056617621408909599236763303619994901014904290135908792939642583707103629663913461154145442652720232679086949963707883986369855746888791253231388658213882794922512348218882693088872615099523242445059615694723872570312467620350202184161177939966923076513231539982870774034958906168897617689980498950610098243928550854833055332845506193801371481224175913113675464928361768755564461812184750833061567309088506114856687319823461426123723266034186999231899023987730911735465735978190104754495292671874034473075895650583154817971160656078847391155186340718907435495077853032077933389225618336645190709431062472385745680980601915305539306221892512806519605617412485073925412767772367631174101541770798693461104179128354707563574308260160731895960684495093749525949612760348422556966151876423923274949495953184460348972268484767778381515460571184046999025958172934216668911519638080186766916737442115568454265396313955173990203050715764085747048009396826234205964053178406633969622970798540120189176117542155439577505508852735844326347112134493676340576849415062052862376895983517106945786716415892290401583101631107659274364171997407261328847649704196870209156602188834293963113666901731235040297048244199543394351513799995362193728674876644660412504382489311482272990106725735003307927338911335688462395700345539089666130479912674119638930590016187322238940743417874709010466236722868444354058135467152839325928895708761320729344095538082801709897879061211893033753480755404730366971745230212959920382488709224266626843477925767510604165758535205145759540487041480651132708722405934201863416071830412231070769092353113856352355352118818035289067776207679404245210524381058867746808637687917405526959225780996423152606852411313277447814543075791806921633501542944817429718329725513539459207610778575758432893705347659415870583048447918507847684025460945729352912636207837770987584419681256126445463334992464293702149370368174915484383347773188529927100773152097457487128328091251131820991519345024133256594035634833885609174172224848316128890199580992415636441034474982805969213090327166951165466513008214448936634941530466753008642220391623597305286309462718614935386007901067458273204020068262487647196057054727897140591135302388208099173584228005862000384424817059571881652619216441101387370841938576770594135168415380883589794577455647176111063026936167261886565936494689948754773947402429743932059335662749004164863284191621716347518720334955621185889647857282449827943843616755274811253153554517709219338982454709642875811429082723794178486511205090427061526297581448886985845644057854402691780018036616978025894427138461180058265201300484583014848709915677308477523156365665008332192228289817461876853302963403877292114593118497431070692408289138876125895789680582239168775075715192489478024238093751892527711175978245030700946335594882804128080934648965588784161406418160354799499017107927704252665046850101811741201254008363878669559939453206199151486495936789930789580459450651445176295539453605790623842118111570830844480242939653736406412497674529768497252616361392177908257237309841027341509114429883120835792435141797503677859357288671339279423573561164515435332926881655087203232433196467882823160411587027635495229355071402999359761011695678385767724576486035356775752384219852657467826442355234984127337476344696922869146088932752006530776682215481379031477313298393371547820537784664823759509155500147250937530375235906048042163548004418947849787544288563414121770389448208819215076184418773891557360691092057960945157296244340300609980858565895429815943475927376585536152468028055156711039413297644003574000527460943912589026109968833619908597488152509795757806671100838054378193227354132887225171479790452190002483684534890329358113155775307197172999804596896521168722600437746522047418843039806075949783968632669197096752404675280643379095436739158333592185024262287831400361721623271364271085650955470372059476073220001931637070310742299278912123032873447175563003163067792468427189408559807916850391061370226827537026439044089371398280129057233846849275158716951588807552636051084418400372259114196826826597088457349596435344953052262852421814921819500247542978381686516493659457536225846976733318102098896361251207880783861735555722213280271660373598827079819338169534761834867865396950006676857964998685753663639851170623911519574807699531554704337342631054309816572682438402829372075940377351866063781243213807392162326671477411708023909819557053484877398498376984331256515172489935319848282820518392910043792260469305068403652513947220917499381858259163553283842573426386821679447422958904603573985204333820564820674230072824878021605354448678318179730233345363158049094371133103936922496099771478051015139947560376957065358580740586374691139638456865177020036301631413412600238468710254144861821436701579664184008198090514627365147584492234032407438644079714902805007263866624482740390356645223031519978127852962345321088407796933892890903370150942724821342746257754507007584347628889037795467791967241153236277487722462130135520675830912071834509625917367011079711371274176611806691485714672354410492565723330159099133834749652774735397310905296228560129365481938007926368531291811561843910003819717306300377076961761568939592779777594958663948872599684723208913090259142460258362246115357512641891262042260907247949350858104346285189492816726227749872860919211371538205165852238287403342013411994541747806102562744801424859588607925017633265255880688683889752397757349237198096297006570016090244143901147522132882226070492239211691802259576969453883963280956418823960944613619235320678177497113629744237194066619095911237591738593058386100273867042225162039795450196625903944364162434325795267723881413451690627651953069051810372586027996402287275953361283916843440119423934855260103525517413511194921782827239422515916744042189653553832335634059725178942893826190116573014621851788371318599661856887956911939542154282229280645330424561671531753563710186828495581526011905979818904525896127347379770445679352456146141415776234362483654039012915683591549135477706705978596692617695634994810820686931152659442077096310675414597608453261725680534851438260030576258838881535388108766115487140504360589570808596051842413710663551718060791827441458281076313775383990637877921947886563788072333116162533966234116622924174959566240796639842405399747091308518892638664295668983048576156441944469658646087749593292650417445499532784264838810166455481146292014335703972563765015649132779925463143685015649200261841452370375520988678534885731657802983335791747981582674899633015109419084838054982717844945438834929788760719299029247504387030960834356996464757353026745872616505238701892948293953650272195801363525789493103329761732326860702920477520205462693678642391187565375448978268447204509106428824877498658973880967814472710572731529739599737158129430350578580960379470209998210754222353388383436693504646654932457532636408067653096502392810467098320504253787252262705356445987452147491018303778607458159381854986291835408818810500131381121081429679745537495047332554432039119571588998407776973557287220711494185156438619526045797566405786747535017020844188914001216354811508363822833588897789286184591656077223270839688760600856175642466010032437628580736432892976232522150441628425916815908803743411571986418698342133907074354755889764653822493492418767093536522129097070402595033083965384353916889318537584912685793652234818883470627515018661586545742552670891795743007239731318135942139791740406917912949576756061854312882938383430579967555178522020186260521933505049699078112876488696377146701124137425231478309340694016969283747069751665267880813008936464397122485937675747038068291960341775540467276761645479237831772633771895627306262818406281516971959674319059922891039450026187719816619481314033210223732191431404892932756458386397044998828491087601466001602032862508885042937783016998885679306146325910973735991743295341334101264603119122091399943592167106126479755674744049413856941007548497617375156972570657927117299840697129900594583249723918547010908311465451048587068254868047816750185389043289032413794797539694881216150030977942356945912686905017485289402986566970201865823134025761236150932541742152161021900752430113361303821026045528077818883311903427873529591533778900886147320492038569177255756500785179174963567838338352681710112838480559477890748309167534773402622399639542419428143473976662314979772503110803027610257060397594896289099480712828657447783387565922398453396680377239789204735466301883747640571809129476129239611228865692266994944204203419481320428824085424133794313984658280972981615286388303353566338255156034498314646393580033296685097194675660513733544023470316591338416806953654236344108212234927248056823160638227968250356706986149654786819115845455788665929247610256758155188978824753407602098234498903643466214212721818341769817572263225189494151055932110739925961224881116799097889039569623836900333836036364708267850028313377672301891460221906534484930464908451759336482952889842016192573345936366609400959848251605801613056603475342322663264295099579999207353310267721958550587136795109355414903411050431074075274448655825606129621384912235821972543447147001708224866379255365636234107740825872113651397587404803244728617172253942820050240654655131730904257327146846333152899973534166350943834186934682086020610475458495344139661856029026493785333994569934171499743427990758944319293130055753418849716932252569255077683084540597440797183283340878963292888379186457480657629182372112652190094412529303905222011639584420493694264550706496511452980734069751464112576420623364424079538392428599112019735833123411916322028470961965135011952596879499676721207989368052970316952550738825565998882196673399544879160918732765946160699446405104395573699161720639461783385342735189167133571007281724791060585757793114902641648388657865074661570561044928318112749162268342626834137854720185880918398822257341424538357943555908917859101381909664102451263561531991272020730338158157940733506103481270002119036421994649037966982432700283442646248625768645020687019405228554703365422210655801081574461008321690309759976549447514249892440135172738877974553905676443611447370958372666926373663462389792324823196029588737684502542575564065566944971061321579363321052021642676394828057284788665156078935848496104856636341414994508173528023746720548705493157520774771644929466212956216108474645408294682212775238813604075198805731766052158131959478281345481092075540986281352841458181472673762256438311809951131922957825914671574912135594652094961622739007698505121466536984867108803349936671769735250632671383185179176740087599022712138286446985179367258371923468437849990459254823800656351098477246754944085699520163146171152729899925288167178124749776030011516773723818539727981309289192828462365727552559747055213925868032250906919554749314683853331078988824123282158537098097448134146501198522689622138174104772703027062175179125639871201571202923474815882173125258842256002806698134635071122030651821840488458833175992585448421932631796786865933947664897970704339707213545883078515828966458585778615115297552402650530893136594226382239278238637195868410527391458381943162863623451142853650808376378784049021437357561731779512873667636542130001639235669857464830925591081683991925573996149430773247833456887510703939275208015258985008800658254054333466107772861616479801602368683106946668378263717222110316326178532672705629628577891227684152946617018866177554273227667494191855812831838587979114314991494009545700079468399342868975196361805313043470203706412412915759561165612382518562269553542424368542700624902258543982369966140114542564436087361776575153582363793785352196660890222528556351174260119357164560465228596861583068719430571136992023845811224022765911588048556290751748195146489175713932355203524016559164148608483402826078516552316422645287310248697846318976600662543255508926371854544487334854379536878506958987312078792755660156541141121303432049057053215722689913303680215683503493126443367584909018531741831618730149950571772037528886664583368439365698732417213901604909113571773480436637398228602456584230437370583311907512147592938472274748596425384382073984545883160193681984125098057953183671090646792328930466969232230507602059290931313631107225142207599342371865201280126825504886018358866333427608758077502061993215080387139841872905984598316364158730838232026705408529152983851940783481396348830108372588862806368019646074085263692604108828708113250250767147898384646554821637314851715595568604124809045510241359891279938365228012481224184012635434355123564657553338812737576406549566147683790249916092607986491067083455857887532083699749128572607289117347976446629015760148936233815282173054167727191630000942629735626716581622534825696777094739124338087970033454829356362129924234591740105843397553375449443602187501037778648108356777370698009098449645645313648921856225857957192588826693091764991618963915682357901995098038735404557386610684699141968707306063853163624178312373259418686850255015095629297381290014210426889041436650307144948170992607297452748628345967877332013323666151871336301322399536843841301520400343754247662820188092960468778383632294760086597409041834180178201799957261933680768389392488907025428353902568728486267223351761283427073400708931652354408886000280609594065078759151096748709398263968408999196745415193297827941621500938889234551493443188677928729163391001715777399908782996629583596203720943408502095082132519341300526780106929042020143368323322501010568807431875975001570734514343053962394613512909230733183861369637371955320523246501861550422725024128596168768707758891669369545443700125224333600723141718878432648658165943666141738950886395116880846200391886039294115208220579429400233956710493539274751423588546436821571624670758151220966579428184574340665490322017020859919841989230204783938835594676313939743600457876625213281554241687885201660731608676695741977868291221250106100891672462781427184682013463284901102667476057736925974279929933183307983331472491467819497815912939055072423964802097272631618859901449699200921817199535968376232334258814268991426452923960819083913442157393489323789216786579431499442989583900565169919056763760879723962488937546846035093166748813107126613649549632198283584628614853958223786769482081091154395341473712670010904781904207741829833044510468524225633002796342945882204506627715138672966222286293268086710181544360819290687738082049750949179407802103655086127731315193533877845895507461769391100477724862357309005809861263534766045387545547199206064016271182725627584822861050956384740835591715834826403705618862550494401670509724342554544221915803189528522233594558971561115702877729087693948157605775956670527991936057484906445670560474600727032567326938686190144761223294007198093202036892936517543488980467008470290990000443852213809848784973475219696647092526988961857201057391663719131823697248631636246932011805991184578512589108086343079396192039547993671875481192621168838634009606893690568491498708607890264485564767065322004530340364473142073693987028208373912702119284215237286462453139055350128894107093386261230512179979882812794001244050289466097774676266157077517984849209734399363282385590761918343927620286058140384578080417598943792355486008455239569433080776030722697485938354633182963962000450255108117104381755175512625638862640379389075312614993174514240462443423887421661588649697765248737863017008722392439415573846273358433261815894230436209724698558407566194688120774359775156391589318395676173992612016285519373033013201323724287528108205492454271364555235769622718222840677520739795885123810589269229492748189727215919313203531542693452153446238169146012231186162453150270640394767649560038702404985751476899936430079881632684583926613754270464321864019634084606717261474123398654638889290821722486552794574969510732702210592889700722567995334614398637337530605580049776270101688666395124554463334385431521202686472964634488525506836158713433160847944714624141425515941677680912175981850187336906670658951483601064252744882877492542409168948244911902387022898949513423516813485662896374791548204010917965752663389736402384154850664661200418218824240182863704703274705108659305601652114936617089247640623524222531292153505928846815210205931292847916664152677930401201832622571755982526231586499981651888801895668131468712784974359713143612167393137523046672203591672180203124951968322316583771523954335984380651595492136604721676372462599988766442868457966663114676649539114893046250355636287761761615449476892120361134243145883026409906041199746058821698114997387126420168681235802021598633681716989754685053196822638137919644145375907853100424669522057105549497045651070576534983014303953707177959843437394684832148278257694769621474621875855819650383526375537473504061970312731341272021353579996754276015266727489871339360174824147376497542409933110965667671883852973665394498030194392749445178599603562910787879763275795159890578042859892254890663842139497086271293079460747522419013609086697181505269329050840710063272165661553933619963161075779897892973782431741388533004949344029344272405817362885003083035416390392174247689259900697436746071140453182047917280176304967571383212766191557508050737291475657587442977128336365682200796357862453167976579972487531122608535951369198400346135146414911667805046811916176659329817249846876714010925156094382169771502135713639140364131351411258017321952406652838555029911627706784144991640764339966261723629899828579377510786413021285397268457148621573538408711766715370953021752170348146270048174971886430908633231945256710573638573185547912603274069745651780373615598385479074481302211055669638064667628792417825199375590747315390677496408160314499275945074043001324367492685495494313274527065756577964519063470459870827792874310107887551680639587124398504938727635249915741545659527272611164209315021160662361349771773967555919452840968352838513625903995632944803225390890642227275758466838799363202358032250386653211765457005825973658371515563330773281418424871245574224664246141384111233219883887706571527636542501546224761227588913823472464321046380582714362669495684046118941888619582292574990302882381386757247846827217028327417625771534113260275124567862790758302975950384225937816615428899602696771702065480085918864027134219261762747413643036683117716128827297554448438820253320456454802551977902716073162283647846568531718197892932181789689040990210958296761885353820793870344229978115827531123099825374561328447269790445643738656733272201343226524232949589464398683567583275597570988142350170832343747607127637463348122896128299822397920571283664994936636038288476525378405497175850948516720189363630347007032233079012406541306224129580789005994439092794215725060645891265735679519240239460039365681025471444925072863919508720804345587179213691099086210306229683329512306026668309864613683631271024322019702371132360706872771660161026589181974829762860752926116382555655881541099388916555496283567875133106943808429472438081836509237303111541079707862413329848369793639324648720832653828389334233160516622232527313034669159604302153414479066189198635219676207126988075670758929101261565702491752236083208686393565845953141672350121997704419748841228214606201701347320487317171100170561909352911962574149630430590447238146056827396944633732729871446688905513737677589216476484220759531135149292933413848982164868383624076784273887474164966297155037471164758112938548075940801308861765233728672470617582603152876720205914792011501694746832004255569590049808287900252188881703660432134191956037115671682415257687428003561956280891835016165406190019306436404373132102180379457789710579739325122188292100857334726760934930048695457334925995707018537553753000951602249408323586562209117735765388348302086417536546882478637006650652251715646891897968683285471637370364342174425221111664412901351410395757584753192196170301545505985036303009725409192347122534121809663713016731954244902298212338053888830940480401144254634595807828217863467597996923776866237920273100737036151960370957745635973929721379825477096087320657263715279799418606981721917446702443969283285765714086341340281131026840756455218983237336298895672532166762343641091252788107647873111702960208391880862094819462468278794785483046841680938868340193815532626046496933270309358879851208537794897594829110873206823838832476397986597181498269624439730092640280592081264916850696612760581368778883492027993237556872478698820505777180713572966918500974234026836650749756725792313295909954492419983360834328096924476446807238701422699431405060260659767100179779792281962027116030571908768155064923687584597302287665626731110444621272080749418909992234716042273715103595034420774455214190771273009337854950550089644398261174984932601116925225176793267736815253700804118292649166505367359025457783007676764040952193284466463914012038929739376547953137340143876982258246870240678773394425710587520238763649365095106672816152588509563862724546126686509385339403581895237494757878269123447037558106155739762738982366465260650164082147083983173774228494911125378818415375604452460661803612906301563009053369531499553717869088419967804625764070460435161241884574278465565909791182529626620523656485955757680264799752047555566089138752071812029701940062678769185864205914600371388076920511441754836645312591117542582309465011981034128034212541636006290628689356736541256974923879588432096336379496386643542394924352842621373816526804908757125834255890358700254101424802119514080821165051080279292133096846490625983023048933510867766522918007561152731511284560766863203290457431679983334986733783610385209204898684800096411749293612950533375945921567727240931623232374789388118309072859164604471193231838702253589707855058960444062188641043867261716080671069211768278331019732633340008122117744608142431925920311713277403049203139084625648179106388882932952149719163292905425248957269286367535492368907309097025044748052390352930324601185822835251306273559504184203845666064512814783996860630412104855896948857054726985324967953579176600659031312307250397399169003354495395661155568124786293557675327559444246411018234934021292525504217349949625688213265256363787783530514356285438881167785611148422321033466678027317787519973426301006529071973251217868254691652038292208737362316291222994330171152383749107215203786762779277214192630127944083160268776699157557830062319785790016731107074468816305363778962219193407390679602483611682328675831051778584379133226774257435545802691105972215859421353884270293666980332222049257004751640626789370300043272734100347050021778910532456662040704988932045343913463690946046711670703004645480747446084116845489396506551315921007973001043623653242649764077255199984065782445705286903832755251857654620334527659472946834796084305105797167447961764408905133635902566683152465630962843341521832531140226095597630150698768519102276275117487932387860823520325059541365318761458935736780450307523062029139254560748624558602171357574368426670672293127095044185569495135039976916651632560037871871265954975206291253264140881736733219164731012419260160952154418726896330814941981703053160923415784186688052606241527393698909131583914682227668525775866974348102601003986145863826064990455494405638369868808511673850239292082627953877005625081832795521439796097479599578590599807197018210842640615793600799757565632922484073124913704019671434210450233119596786584683855990111259826142166221699714362372505474716657610245542879516348453880007162163758474885498233052553489543367794265634130051131542149539497214567557332443576318835179666239005593521956854296677442865210854576509700080885986720170135025859495300415924878662582628861535519115985147922673778578106841230757047077650927457905292928231520357439478089738816645958848587841150390019047945710359551894158425919851449964177909272663269453900456381706266747732110498037937599571569142582801033815520538766760216026975581152055802534325199633764512206932901205315026618617927467127621184023798688440999638814783556106762435370910396130732126324844246431475222684388233319543631386978459161149480710017970001222845711810006014776316192203592247458408244943894099990738573967251775287095435727481129817248021741552097837654791382148203710881285776192695771374760412470702490468894362937615137797460610266763706025109486432655345173820403957561510376806440526425968195084117442120507947141717874077469035189102317843736078984781352979943183623485145086981976525049927055036228947598048340986819511033563502458504785569608239356947119338865259476755681494859694049737551755845243992336778840386232691713384009056711448765295527862815274196041928667813371933193999316325332896256987044443164930768181886718713766987945524941005731123105735056057771804003338199527809338474077030966562852482552284981828200551527748056282050208174975790501433744518900119197950633100701153340039921028168697288951408899769575382618815940562175480877983637237567438025176511842680683129385497211042655942276222145117770746498405770138466033136435608158596359845439440738073189690566198370173770172006149212350430319449115208341564226947321801991439196925162397374088699705608171701673186488757357112094033281230719551589817872048400501209575270848773901843742918403825457386029447417631140499374609724482854899876873803353717510850903422282994566113167763628495222937122619869332938492338290864343798150150814264182002246783583495717223171839842317642235900534463487389747979849048434655506943148211467214054238869747895194232290492464201364093540955679085597308870239499500107214068142169971036462540065518119124189393188275497881012786511778416982401271557743268952379174147623027666814188974739101534277015620901269072977786423871343551885650457000064642569648415278218275556220279737957873416153273780461915648767147800890361967189989135476484131966925022325505087530090959646484750021074547464794719028008405021531269898596333303144666343117153330610731099779198243746978275121810776137775085236459340479610849965978571264441455898766773815246961918350840270158174576704068349986746844287367636405030304673556826084347454651582349647967602453266906499029711918945171497432723834525089731054227269959586338467730067190244200901335018095360309266125955142651527792889647131009373935904420864250962371975538096808529828484621775374505357591876238198184005163593027439108285178035350576629521702326602060997527082338607688662704681813436365929138355019852464878737943219124496981553686114323368401950365159206085256011613057175620894903474746896162070036052700127898745601824478148538628932316646509677990006412401600876362153857587172928649699847748212790896721192716169689367336954821240547888154781813691137989680393331769350798245681943502506416464904911255427294025875575767949088466888075702446492257231820019670761810493737899451223701579455682783035631134598383409283508199605521796017522149878377509514734149627829166238043226975658062585282139731433725863214721478073079626988400471462935683132354418391620310067717886500921893940090526684949748715294258643400898143062869288544200721575340410304104327347732998548414193398157730384138674808997059658725370403997954055979381397644228638642020907922053277308711659626764004292138322226828760979670274833867251462641882939969687628760578142858874881236015550348204736524701309409042009014941525965198047211675505930113139204280592993733022650024713915389384751998448157995533437551511695720214116890537866706671712804927687415300824407234268540751588342287320186593770948626560301152372527836507143996779044972499147576680976768641100306719746412659532280771238885213589854641249312517026360312278117269492342911331371071611331977734970948890226484920011988949579096348593153627890532914675908492574237899784668772539232314462859026041609798858706518468933037195880202262281389937980915943852013993935250281513258832900464715610793541374506982362155417445798419210507837762249572542036512261377718883168330988611394200047707506203304990328945314746085147665569766458751754476996446011382354898113846943941204568020954021071068506561695555737732304650422882213526001120570178872246575419924307556675752152454156103158427537639575860190305069322337741965383066785562546151506696219430499627167875855577386209115411236651154458214825839258256026974068744550529496866514890462148241229507389527082421908064696843317305936341819261192269421511759559855895597636373532095248421810646218166314426600483176302901696031559173439713919038343917309253124328478402226979317348486892950707172233882820929893218214591509096621044811026572199223333342943717838139684523392000110524673194158051766210056915660584761939472597091120965553723316873947388992123650495394856062131584626329856582899489643501930686893894385848393548363476666104788123775258487060314242227849066543161785023696269754786587980778673894923900689581508251077461913855690261535282347032872337126356059670280293798211923025246225636543575038750810290246866481730744158456015305100452749132319212780467465784601835357086736456259684571486758554311348063277367183976299755908933883932254171653673449803454949811749208200047882212431347633879318089417295425457387129550638466159284700273817041820775902500880028839206251348927458282725688336611720696811389709594671395253521290281136171096686397403452742150862080393628809957601620341655360368335041197452727413760268227918172906182871214279460119104193535031699978749234905714401617360699339279028879352964744699728263755936564519470641076864023356446238601416668803580983847652286711078274317033932793226208913501218929733481054651323859177442355072388401490474806941869670255129953740972635454301265752964458605107570888859334852719504731468845592733193630376081380369486013922579854068027218210965257091293917304707998553529246648234812328393986575567385783667460535876961407498300086146745992839540527472860999642902591702903431753064191863112485408346531186586674410766831632902275364704091175869839595905150170243050984023080557224961501016536930788729383144999978934220254048271641848090036232007556107302875312664199634752831115517849530417846985895083076372580227571677498415672356508756159486139597098653836676254972841155607334195911644265849559603045030228192122448837815239105895096863283938226143197896319128052760391628712863405339055473331120606888452036374055238421220498807758667911229150101026558123753704186632524146048350324576132045802666446475464599898552447116727287371679333646924596426932240029148372811155492115380841875088980742096330101564895604634725696753753802462022678302107836074986829435389293760724472675301361982512989345756225201563686247115785923532876031501431966569072297624386454587811536899179840329053837920380424184307979016914678830009318282905450758405354658135256467974193734462012576881053301390054716952661387235685752677591301467848250277747786624878373888763512860925354926809648474331475365987069138434028404794867073672278944350513827667525667186877871958542821033684277264733595547239613868630719341211218537302349961219987814913837161380870031047933987069117222453768511148077904541649364003416641778992581671168834332527125614010604581276558000551111184140555104766496704469094227200980412103247402516355568028579507748448677602439974717029471933775517967372671682604329425194975586616540018465872530911658858322009294230828203040565888538430725450658458908454450088069323757712879415051338870414578732823687865881496146119599406466213452983095591596325180878988528187978826266854707183484517054965231141251696517016752018524457202503810719448785444745093108064779212540434763082730483743228466547809965231496105735026865745383141749054032232359763316729964617817472778233110071893840173699284802720302845583071477946687280242994117697258230163100081388201500416546686262383687044766624605251004218230341348468008278744114826023856403204391570199510771937307388709034230527936317493979887308332436117133017718926588024272286386475198267413544495717516549451527570391647087274392156773679589082311224264843805627090349267691361652043446065394118140872507379490004893120464907441766039010154364742205268453233330509031841733827168577516110002138686664109162862678263390991144117950418055893312859515100269783788452487337341208849931334771872221087802412695798091441158966292889175989887574215309133676218001302889486553711575866120680279415387947448893754389933026046829740523894100719188169449175557593950939895128968163761201019018906428687694616671777042616457011956750898711462958151997317089165704559765512753449884290479647186270958150630929957170215960361563471455950896846206367862240251612504367348801443622745457658194382656416954918957602893975240765566762181057137697654954187864259440337468162632755559589662231578106621684500002284301454539520908604394427565069942419095325127725662470413318935008528343286898293775401760587267837311901211616084255531568008341464385723199267543789892392653614520630123316883582703926054398247996552305830184633677158414338379956246967388192809469621485147342776669840231087200591358330533869415959248559564518514027538663413432056277019534874183685621960560982526801432223295864920776229725816755201979745930853312449152509572509411458048016169951085061033543257509258270987314868113312867896810506666858177390154868835781000310661379028506357931742866147616419916808459995849100564077029761041257530035042989875730463122894036696439136528991002426658558999604779153159512712821378244574956041074717630469718205101022096498558362887808310264825217224851836202981244161615495407798178388374078214653199238864141621153534617923780368620953273287294685075801077453816081714966633015864703438185946286790099402468437253281418658733463662024249107829749952636171057281289358254875793847009610810897460748675211418551234844070265674186749816945632449491143687535658414757581753774467072528451962598606673234728660315246114673990240343810897034466636129208064545067547430074526616451611156413941459507034489861425664182541110004694174740039084402279739198792784548164118916989733479054865169470263648162346621480501986804185321784065621275774750528217926451473531847912101462795570582266718986563497933274273413513474040340271005811459686534978368716071770721433493198392481197611852320678843816026395131293978704608856675626028569827295521426496802520492900505034316940812993030715673738915435715359816484434365775102130230176016749435944713741270221087500901518055453121893548434060219768061496725519906154542149545095906112513571107260335781633138300761545990468957001258252090550475610872157946533706423859014710943258949059720466943126865998962031629659800103826904683600664055237533116758182035669039920471488623246148819743426347665287544514534490602518974585140050105715020590275934203143562729918764511572558881963993417498844602639997109154762035944575344291289293063736144549794009647122751766433162375452532258014055409030513430508276520293320939970016500803615361644340036671819399025932570361719887174557065194497392908053205122331067904852817879331021797168776088391513254799602592244039848075104057911515009290063771300345441196491495901411617016417023011235515908617840253805221044750552477524588563152841779732261974491954423300621486061290671325836355523490236840726032619935953393175344018788243807738773645277920962289198761200785818312086768319065868358046480436820448987110076101927839708411696881538684141652566314914182367538651509670514820093221128969423159140791464230714246575648755523496559777875224899963510267804011316453259056702372742410892465673330462765040856042294474657696160083708360863192206638064298557373357903330172522349795878894519637857527066893441241989955915354362388824852558593236685237215140589921220588948674278949373383692070416776330347840340320404944532316456481969942228970969577235020427732030232288164827448747995668143303085988184400887377513423433187956469843119537291509267862882454683620003203745344409824771031059133679469511393654064701920726965943071559908474194867906045794044682622759610807379013726638915072139012819963922605913662330718323980966062038297990650269374361094905860431153913047654769745967134769682413031331963494778196942527170435907237403457147567671167273588103451601039537087409057322591105077960634409703483940173330597331706132105908675142394094223178208916548384782545520265155188629720892450713585284366280199066934557659495184207844568897936763064250474697343732710606230041427970760162477300676367207282124108210208977938046126654979964353846700138524974787010238101831839922210709271232880942428457343726965544588256211591004031810492126368152371355947930107133863352611707050816603401131553344661191758488475075992376910883117045786909834990946936769718126458457639299671860913810437691094124180219297036541432124624494926293570173702152315747174467964594477090561550629867929797555460452517663740602242250155127698660040454416595249558429470651811025145701508479679014439971099130704485735033733969175056296226770116659472481323104130132282761846179424258274297551966355293359695760617294932448539328628868492048878464406870396739647068360100821977110175964844705722630231072104414672031248484743153667640174513369589173731445559388156077353824999999935969147562997962929650674535227589533242238929241417341371236414466372802499952238343040142405303565616801444531282707792010204993002413046737734588299292752850468151894181339489965302417785877203390467708320521986966147529744768963210566040374157891701324334513197385168563107421878891532708303140694604458082438136636755995379326051421822287795878199989375512524598976269097309874839634630876004821238202418006631130619590185621049268737054275068006550750369206457938866603395687582588899331994348599143659709290735871958652729823166391248288700919304375206364068320625832362625705762329265637563868174792159660163814932732256835961346661009239643044635279193522241116061119101466775973262978566993899027578911183923197858149121564623340295959106670377424754884487171589855472551814821877871139566760822803848098425276906306398107336982528887902491372299898432301337273085482009100848097423262118295974730192688748493969140074361959965512556986556644208507524507861205750335616392455907345242026550630494702305794874280297696518455349197488204195416406832282937842972494753455529134448667155456464246319595242141876819538922880728702459755793686242966544642605927969493212368381727523009278791349569069749192877093126840636636610864395824703050017150489850044508830485725141048695143643658609839447997058299084474500429608351686993715389996565464931201567695406328677588530716800381312829191793601057403603526419844648645298617967031073215332196758053135685052779176476638089166659052442144603605748511881537293064739091683198395916338075432159323118178173906896150142186306618676098561034615259125399186073735413211189806241586604966686672093077960562122393692928845392965993147868834250990160711023442607892982069253694945577153384501547576543782045140488261209932837152290034400537801216705755913624521903736652331946791207887473106452386947007255250208826931226812473078021879806110512013429980911023508361119240102052617658863873504155790788870035764524624313597530838853933254339564415500563054645588865547943478139937180931356542811684251549730333574620996042227526114537684955015234666028745298580016349264771168865023166334204431047355068623124596935090526345642326405216225320448178982076438107108033583091240452084307719493601015174526351417522617948754229182415973912482828407808189962604602004446892312629496868019983684536826538311971307391088247709308705087548020835229130696453641156770369094820172870557319264222537252291973110609625947219955691948944011533064397348488980041683064230888555210318655727068750548816997879752845130749383734525764338987209619368153233361164749799194084102523385321547396835661849130582622050085296575673969647017130544431626627654890704834761049467417348103086761346218603934747718252149912474516863214675001264085872296421286619779336337178618873943195614894657027587185283874864818576847354557657287545951797754619353079847648149371228222947859530961074587520085187203234117677631757682320397673709795828164478183436877918623739125296894998722302202572499852677158528938502464737568114302561343913939123390235854687161587591825312738700742517300573604907081965536748866471731692765221135264809420922457835502191124563691401132051440536132011466188756073150454598430216316676945980496551973382752225358058359651202569126683524788490206341490007906736007059977700868000844939121427069614831533813847857505315984312077480896237786092166433893235132173154617735911845009344966804001552580536098585992323088922079241388897250589842948284302786950867164095344517801745402025921191341207753455572647899722273845139627952869564432069314213041466573173041761386066608451016521452503282714297038301127991742835155158364255624941850109873270812588057092828576042791285114898266513785908034780137914174724452844517336637297277975161904367453686024232680742876465034095916382304129677121712418395482991939457076832240045247854520455297837869070269921754256285350874283371186462403009446392486519209003430534412141164725062728654506660591032576441539473515388422343699322438575750401999774458308215555651218898626752654139752903432890456547683394126930621875761019728219115040661224176489212184149852852370544100919901330119826466647072529968426822252399128509586813004725754018075467187795163385306165164091938957689995306465568602445138294043039804390125433208361801974615140976752977893797551914097470650542908493574650562496689691378651072901504568970346373125452310458607742315244771859111071717500543028050284237171334095986796868402038894147034076084077212632329031580447127289398250255901038039372003877657867446757710027673900142245639512531377331373286684081366614585915339142451590718057486139763374770556066295836724416047963110560022426356293554906495808149842122615322775037740415823400731790866228581916471205870324539902166749937883609039875209945150997543043296326345053541609203474106068459322454993524875747094368240737596826838908308723138872341762970295049704902378302427926969807316978763714576744414665064644634982934450633541891891014695262568639839685004015223560171086151038160000181188846816192282088916918618693691759932314835911424397692610794998771883694841098688857915182515825424869032813768294013659274560808540864335844659233359054229925343487109255584654665706966057519951790434649087437844462888008205861903903065472116287433485353941606595883960667643375352483926702193721453129664730574026466752383214028754235656644062794779054362869486912921173412151905929474185408171881296690310143606012176153217118143881645965321452428874226572190106553274122444854322267288094787517897569536684780124579534149457668163014454443210021969739865474331400987434606338267164591822119390135182785452828425084262333833022472118687511300839763687612626107743810279116069969731351715197258588298874200264040452516007558236788547039846543985657253679745588464675319926035906973634638101066537684381369764371254247884829796793260432463002115245095443609068971474767234144766035749303668901843820167128699217072842260190804200936708406291993112769775942143470156242767547290222805645451941337751776094152775546203922953308666938812154347961883117948448191454443761177905260574523080360510967018936367252563589077243561332519756021495417292257651558850189513338752661734084648724151416442431037305871897631072313165589907300512997673742186195338544016817526057457345366234950620623134321436067648340832114950598958158561346848976021791868194967908218348445906465833309672314244637963267880365218487443630805099400407444909741547818673756471126122268396655917777426191988178821631474969786826445271898958000014194137578178311702828439349578551549878881582456198265714550975474438092903794359866284449718191356925048678361027666876565344693946808211679226393076194808042086121216604405051593150549434622478616475118437182986592734756539890225700705513525889985311082989996836979639408516553195496366910127063851612635266379854011944187767964594303625360999201832705637076550352048897859214017417944366310393423030783658024259966833625547543692812897197036094828019097569608368281067928107885516551347701466357581529696135327283393948833162974856450776786352908042744879330487799700343457788041090878152494241804364906561709189594771429971944336685962492128512137093698635421447027836701491001457921123692532899752058718628882156817291138537540730941982931227399816677146736353024273907704226676754749038781320699726551099628434054370779805718876785394419493893755383982267285115552580503376292585722669251952393123412988966836675804142905512591455525205695280808749788053591738658284374283031430059391506837191949460084487980395086681087305723978736146952925961728596367420454598462780133304260706065792951340360247288727380624530294392924383442481484686645163124639700824992976215566259004934340198139542488286389885564716012328715007621812779028444300203564440272581039180892556593310467310619846411847334255368581442104982835915111201634131755763026505049451300089354728678306264722413613716411576082133313156280117917460560787360201229056072568997928092384651354120450093421807300308422206918068468159845937902615389895498694253733248187840593357034184817170801487878547673601748951839565757732363491793100538455775347298468266762397141027913095490238613623277793927034977861799797480000387528026268727912760070121218256986669366692366079421118003277048914188164212303942853075742063716728626080853541056121491981328026497369212148585013326922085879269822173173515142923874799165773471489307882805305877861754200608690481037085854857288189621814956415227696659404673433103152727706903419355256261906379784180940972605649224575199004005616339290354504891418517615859387602654904212920831555177557996795002397280164354541371788665601319358566060525929026221072779556493364517289734523784984336366918345291958511564941641591097919682101410835008930710884987830951200780654291128186152430658001912701497160013052787001409742624175005653407215459648474100899615525519016806799498557908474548223894970716008809465332136639158798585098462091677272550515944349889828986949767363980790542814330115154904086578371777965528449880715871052191311095834538779098915688214645993308352442337097715021429442569552765915763462515195544935157038289505151709594283547435218064071159326121756883354571601523640810117019307319976068709209971251362986620341803366783824851650664898124249138340785035413048159518085057800937893818019900352609229123276903921718240732120103499634403867217162932466770290328221381871920298945213366619825766168757336222047425793224291967599877891697954151417031343813955790595120964024367549579054575749188146162923045333498499615379516903713308565360428282809346612344232007392200690306304736783758740603230987134115103358380414436998709162758445723490010147362276092480937886015232745486319473025542633060200661062724293273639973139764845827748868120673481580795732447170203710271827303466645319454087007866418891850016290980653440557227044375937656465788133766187256667525087396160939818689975438083907030230477781374632388250220845963316697845887773918395955844542895878615598181640850231085743369226745135003349264188272073100454818494588517066959145758340563750360405389494189592589294878273853142066302888054591049882621143017685921844587815405142096797071046692547487763598886218911677804440462956184811778375524467506922618793969432553961273269275635705011622024563337621258188447264207564401999326885475239005139842692256313272542219728335675953704567697513472819337016082112568584641864850533386088951164063774420532047487830401799047379952283423186381263005157572448438786496528195233790479928392126056995922828326445808546964339837074399472505678284274480123904575324510024580074331390739544281243156113764101549076974604696221073841417864977625113282179601620173260384789467930077756431610978135728383844505507939509179482596167871501587806971000857798847334152457591615492839058792199210593389378163637009480240670254382351854143876111108153267960526361237893753853238059503875243886386237497324933148174247765174650866766881696968812168151945698462334484488839740052685444050467213694587849628963050644378890315918372588748951909785793368776038562896509499365774151109353718119814979297521400860808302380144842526157462941564443901659342434966855240797000573246615486984636922291183897059667599580423056829849377660809298669812280024325325540605984973548862920140493448130760812526395528063237199184326223723183684505187337978932944036883098198887446743873027490085175992144658516763726645190098869410989792834124764637232195265898012864107584210753752544707355758863269061336911040288299835773984349185795459866772939493521635086530043340188197681742462170538235240241605223944271357700542766990947721218974158474841496666253741448182921859778338420094453607494674777410441689779639401864577218805186948270787524668573120390657757115207527897775956778838368830063823519740684766610293317972278612624279011015932765458279569813237694950196375060257053863393363658060754899409737402251768988258919370690786908605168939134743222340800546914369587224508831290243172345833055519966636336465113453378332182299932811554246415519928016929462315904586582103220757357740941037631567523932096005195418322363644766540969651246290822531854431801167080907841483456690103356677748675443809337157489834728340494278288542441617662307216815860229832964559714867414384091286898419451706192684017743504904847619513420210291600097689629687194765862211634945947837008984875213030488208029728303162086102732291776896596845695070727581151193155975352153895336605926376941818740086741092068638856685434530665372177137126633283445367515974687520424387744729619682095117715652053312605053331049433278050067954706774568219725182596154801534014122044607425169166560404521584804433722362269649142737755275946260031457611646177036868329626365511159079242430701792045669102987911329537862921055421608187342523075410500909409438871406134239383416696639317756714277042930448059813485545448169653110068592421479095020354965386238690336772012974193249901820888833896175329011247499910974863275257947176534582339495056611612226895813991618221172493427559606895715321692025702194512513397738695917397744775334318421094731599693588294195093132319575721775559712486628811088620154672651189925854005769900609194475562649241938110467178078939072707576621935388339748472844713921078333456195117834387845823603993679075150344037617493331178426163605391902814571723939824256992872230931965469967293644329012332498371960756690967407254068467801486543604310233038013126689704644061990038227158330319971893139733668886903338302033186970063751569131123270915164074408195946201542156988523313406602378352656113766204419099482890790772805869901084143344327227013678784416928336750761766095948394125139064805959957862975163600735826838705997006668169075075220854335738432846060117439189361553369037477657726873939497343554958397803017235046033726503560967113055172980529784023524843244295984491619259688430837660390657099611922245977118248296788111346136929619284648925437047333990104331341518958571882477169863908543109612275529775171294155088502568730465585294318084210074172816920024762778227976199690887018197168052190352112366949983066444609892428571985996809592070111711161461252200052850448122231469324089121093299543674042797264696675424766614391176570171985484564233455417465824491642569632186103479213754563751799053251989185191243170362289596298885308368195763179619435927778933657615095280702649136749646863801009039895131772980934186336737239455232122690867620286304471365861000440362274788358160229138704539011752474456711927352852936951077691244162190906703400648667615817254217268225642791893792892633664505047031894960022283960847763631535235645142571565071660416110212859951090773937179997058599776365056353026164945360756026933372683159451834466128298412162004638516340328780074091614567401472267656730478742034575002087498475751173137216433302161364361814472740042844340272767365460858629536914933885358691637659336768063623458674527153811795238118649428149622179190326741123060820384121406766866134785852209289917786681145961689293857743481367300215243291097498397117995970445474255037607721695359272110764331269429910865064777152431448595859713406413703977771380390877001205258494553257101100390436785802943624220941910142672482007297766348650485574283989229373465663343592221117319751816705941694596929904330134322512488459107948535118066529313997067413287426304471077896947809828571855928612031242811375856309730384912214560707720991609753938796396724327514659048919889994226046757537005213309324434505031332216957361526496736633357718207977818100183295282225668395601573994105610284857602358186725574283028134310902945063299501055473359863389124961160344723663884422906261229085762943433584516771348317375529040104714912032059507843635791786937829352656614731874393395976429126594065960818861071587694491343957943023976145264530108790410444961654576089788260897699938810125190564713286825842111118254347024726270152451843789519488628656567275420431345279239120828120301181236299696492088374073091459793607108332970043755029169108996986802877368733776818284266952301071235277836783253026366766556995713642699750473507853541852444765636847855760377571914859103493713131710581434227185713406504827314668103295308727431479654043074723975908973704381925923455445275200669701160420053427680763919569559142326938270511013896410956606860204385756183153458848493688465037369489300902088707337377150463541037317826688809691309440923381843968338733246185162569564830830477052086032557535376612011994812688701611451873202506248365001491856806302714095713913239372259715310729580556078171789065370996255092858010783850991410196730699576601503980261218326512259023103309508202017611335992659957950925395200009771559491112743333410638866264669744366414958907425173568576021100847873715379680171474348038252525240001438395052959935126476637850855318611678094317160578999090976486443819536910183124644908520435706267842908979675208458878761131838192464131149165860316001332484671674955516727345029994380170332560059271744470307726182328024698867090889711999070931191874999641430393382551891741123369090506107066149111668721451905579896623201149728792091549358041653750449621029272731903261502194613219372047581269400110327530878579111109893295769777672038956196405722468777459649429638658807624778335235093596034477639326604132286697274623495347164481969716322920120387516116407410386932296687677648655763710544024076454661824950835356480283238774480063753035255002121323221966716121698034628852912235518164583349715550430858706339496514538630692550837587954306321096506313803444052106173073215028854578281431979700031807022674248671152963640629814970896228547325122298811140878413849572044377789392155791164792151205590546165587562058933886102300250314274940388664641440713428989255743991637683068461488397277760516738387922354729520464406366941365150679737828820678732046645594703002178154814405076484143379249011144302637616057969857327559483030104346504948586563403715155992522434594305012681343146466108836407837988763279141122866965223032021398426560356334822030676585234885979596556358032780541038501879129272702231831406663791024280029482371555407692243398780107100201579067426732410060719429504990840191440243516927395488889911558660086601597353768209609176509387866091905912667508577803308599491939669470953375165858669616600754608568141553435919351837403448182763549854770307241326384169327702093736040572735735848856688979857599991678433472120923005539518769019895103935447834600878348374391365044735942595724307613041368589076495909438032344698802530120515912762680560694196409471426498677517953797615842699452251378739469173880271332856784249547468524728664226166468201776450990020585347390250384657722514289950422809405981225802701491201663948443019354034141215125397233830913170211691028132065059530068518987546715926829276297776389869741187177541227657460848027471407432250237704941876090021979840470529517379062490562029689690038602917321947299506881154724100876948427642634622124241480461674678239397464414215273395906643967416073641562354503752862041731778790776497652025714647474049553054030050870323408842273816538761252305689872234802878646549569122719580372877223767635386978453955853310732568094309756080565383137631590820308314736034221638915818708588295657781600477584357282574906993721203289214058750558169966051119174718854260866137220816617787674450293502890717693158376075556313299072713850716437355951679336417516088589501015653803885822108027011649018513311363861259683910153668273093126253890127743128469844832649734884075449796482069433600548968636222182590927848179833596544127936869541038758668170105485728213594538594740285062980807163404009515055785842861252239411384901630686339579804745949655513764120304070983020469803175181781311009720455745028777942410469849854466906079695344398015125441064439188449979395913134921666351458654438961323788205801007146820305333138390052327798867617463036593429434937604725523077083354129502772880184454553157235542089306852751620111971849611096935204125488034019908110597394456893260347963174972018998389353394521145824579602168910634212060721263965367401183586839582961858389993372271165538861392447921702786617601362941107441266382804607682653302853443467405940766366773020973015133081469701859076230764014772126266095709585851835950200394153658737276184060622649285071771099226211161241318116114689902972967680578014191309741102077900163051303591385810717730217611526494791901141424151833507843187773954957828654748400117772287884746132546123543622854485206773742716843006577540281399724437574930251824223708794345097524268055288698582673046682575370865076773487478040545787282111141464234362185617051051808076986675555093923657815789913724368175182168055183181476955444015785352881499942932896351408206431086750389549986947644364449470730814691805126320841250042425516525590264507330859442457981183963113180788739858627051713560302023785748534095863428554878954848794708035587384236136946523535110143493625604559095954006734139110240752997591955424734829503418118477067482845575549312267257981895865368037457268572716931631337424785396097646529395962801008646253742433616539051256579050545829594733637248299502544058162290326922472388823525546659909936966192110697699429231351219455733280093000855429480793993756979127390293146832405594686314390093227590021403028627133948932171253306038122509845497868091754710263528533308182567482005103925472867457229911816027198383934236705180453493651208364277479611374610159379419780244802978878219705888687082878524045625489871927223233919186581370619881842445774962515416309718340183381178861109239112524916332005592601504460149647786700243225899266012589386819680961921298532714287322482639692367867894576044200691874775985418221462911538481453847169194529117754564543236457301503347493430510778808087379426761666064604188134805658798959818144999022964318343791085758725438042534553872668516502400331301259720468691674317984659053492196759807053001608594305400984952697368994374173467562470403087029228248661395538126010019620621688264282899480673697605839329582818427340174500394762276472062671115749060744069360349054197279694713785418858492664840070102293292610653940219833515966335008707658538720442082810525885840396163114057037949037156228739601039413149206619197017845464662238846557248554312934191173843885555449508060594401733282123030654682883202856691701060544300015413827384204919711679151956226808079875130398518921863821300218432616112487322261901302567842871236060664281686444051234305268678064156933601554608032462743461370147981799105769242763358658909857189460177709207111719156914491446777201801964188359135370190643211571061790258995027326193430847998696955445815947703413673527306132416911658823262454455172788053378068059158885312019869117209891542475483555899522188339542129439890948529346817881125859195238451105533535107494572860090274258267275802753713516479323819017285447281102833474994043756528714245924653038847605223897029903163104100984093874547836902893878116542186706255007495507763118019335636062127307269102058599926128570074283259962629142357926636370658823408163033462763357774846250441324400162836693142640901389067989849401483631497707018907345959802606864709021651142796766061297159666609510168526453891594597304532909038394060796732988551119687147728044556661925747821659592591337898657238991223675987803590937492420195153757668038850415377768197817621233336538445620394513473764801811378004030779467813325265823136965069061371120855076786692646191132675433209970091154107362579616896888413599742637531738694036957815349963538268427569785986844055253653528965584735526933547436123862955697468426549346964111037129648360774354761245875819034955436590841273534508735874359867779836691494930398563074722368692662918284939672329415679125222179042137609600430986656585943720775358632847731681406335207357050851404582355251952606023466190513781486801367048389063850309391773553306067831395863617778456816908748508425050117180045051625910686510193445863548149915279057091761356454752329514978015699461090438026546447237607037200201593880093775998662161408218189332318837395298830845286186384861879420974680164716596075725934721293886360593879674332407480280947083014006604173847464547095788966365063174825970516280159359036923276368767712147162568746533516796521835048501168760309655226528429349595402327042380841416790229228289741863817200365064539657799368917936142922640429626625241852627819003593475740028322723666194370816388402483969108098210522825350666897060223754625479004261096125971867886259387251563420779998455428689253311718208873602100971750271105566664884587185051083604014033500528532482864676633905359260646089052739982057953667439974288355031729909742817203912442353218725417127963434164544347633491001442119058766885816866278917947437710521796227756893164482260295738801658792364623444683393026332026565166869190134677284952517772823435333207563232138434237970724788840253925911372892494896065392376695731893460197140802024458446584964093222624006520451768728029426476660104305129534728493071258541357449051466209832292624713700919607772243982443184298965546713146740321139781752458959661947150042296625769597529328926671614610124204245626137063952691185080244405572742269191555524741795502348181975911997502554007066705995659235387082172974015971238018266691594982485843261949325640074464036860655588706022483691811054365439132748129615699249902008808294247906702365521080402410633061893397034412671952115068366325758691527684643944473796891597560099545725323051286955706757932061088864939275260031308864629845599832762491042356645478823119980686022891396701119588635227808291588998370910500496588859543067205434308082733466595018743419451813296230585273230685320357259730817209847224786151324140168400497420207762002186364027177794409471882153921872480097642502589062214848797418759062137619756897335791775984471783898040444344671627498762841911976042572818449092857757587634699105398057481602833605249746291323447233883078040457012918049001991592563806389684391318116017998247232238610053024254435918363880041144130024216697406845819994111708408443330278462309877057568236517857177300007308574022483085695864576914713961023488690563446313954924174545375102913104237405718594060694030566524200501237686920002471102787627900560325648625449794437837708416706445880344793917164805559482980983725922432499959770153904859291143041736717483277384671552939544742579606381138738067831430237750386899970687967208938259207947452458038072237993210138324006537123344644015564968921245548206777828136423554985614940289517889380571122316918242276960376813751090701761100697823897883425548633553644872618579085731960541720947618204987951973160447002421119658644178201792244708289145735987665070389528502229184237600162719629204930493521904977728618322997675132879665953863323580839631489827768446418608983758220024973276209639082572974707585636738330924817124877941222341090930202985609465217124959545865531157238454471842815870921805578105032386847608973395384057613419223281427542220505695858218321061618535695821402590809299434110684842677674906451321954256823044529614252410199811467311502843696435666727519262445697725785662268778966209792418517041458992945558192765525166731299646437676942556995328492261279206220853996596675681318373007083571556974267262160984429467364587275139791769341176742785484329123157056340398749279935820999279997646045941963568073773120481484664385992036819794756093375375062027060421664421980356605165338490963722008340739334808507650902119345376480395907007242498593196789589961383941870910382825336883997943992635268855704919006230943426245991648208616133347320168977768432731612976180148637816488585066325730931800743683140809701413590613920401443868458578856029341786893477218916673182968369650337732557597250950974593575539601136611143208834949252021234014715333726684400450029615560886983176217435809254888082765329742567840835044291059218675848821889711394889590352969763951856304967805867732313637000978671704429578552920286416304672840420552762426814843127365575582738680156113928847640588741462268460224188069445743159092820183174248058581646364802443756853641862478709518620573609759279884970653241983691359442760475157416998325859105481375884743412581318831967988619222300556225894074658803211261843443340641144011068352650780896359427107285063209553523058483786155769882438870591840494475785657786344751794407023061858655188572460250571270073723602251617971119478110942589423035256410196194423456547396429995063259103647268416873675723734301801555965115327603151872518549721222528058394626239506690538941951031060874765073945223885148684436839193284909207046027425506024287420054123077746542638383150388084989780562971739019554731413800879468966128073728866922396380530595823575625532542400394710244090516461158434552505370528272728965567309811306923220059272493462709472899476874198066548055851818317794946501516795066247053090677024596237904960440211425934113124194650775233239992775158963666702387425001995761405658384407040995933044685362239423642944996370971851558658170232725939018953773484924841787089656242693277179395120604800500424344008202748082140934716818979447625128682267080618931412502427540712818429076913176725086625302742695438715112160785409348551614875237150189986087781005765182532271437942273686030440515064403240153170579092043072061826013517238005912597688063361449883256229806012883342787171668752937779471309545141362008598184086936639333967035290315918871735246550809161438450205671232783817404680548648304392822030880565687819989602728312896107461383040289133407887603009545244705772659361838470331477003033803626061849182368715843201666391095760232180644146838940881052852758339735380744060070535607819310344947761306109432254420647796400833848194917542057312199395708319527777679734561756882991596929540168019234901722772580492380789245004686557387705840145998081422152313329582801613456947451870393167145336822721304229964552199650456107600403872019455317159428806680268327950346790499878769530183969632285513785695822099604959200677430356592062504432650689731621382716854236545933521991351206389886442828488188280919047168182619495732053681442262811667879779043548358854009365071930801674137222306883297299052800437178754564135126733780310099816620225474099465152263228039396422277939708759999814543740122924429781267504365331518337503468856169578518954894947632819388656615150644848755660134694510837562414634791102142353418774798333746104874982186094829469026794734034179586604697261631093300656058064438600752203299476187493485858840845920934029642312888622000814539126512933864632118359333464045235889626429755009929179152077232928920853676417915483718471228217165988501731297682660033364724534106214095111472911591835023008753635195122364722663779704668227796004842417239721479086437741670578212449462131655393632367440312844363534778894903811202765118761843923062098596252627276874597091700860768204203784621021042247368306175889479676902365880663889901234217854768840095746085517601719520676184252829974150214454557453224831132633312705086163725129336312946973872861803717074177830296101068186329371446620084573326331019836524191917418960407667837665190311313418899043125561925366502683643618250991787210927030905531168142105735264037154942131653412383335645806305521881576213163741836670173974298570911142977621251740845361740834792296419460710922548352252514773490281264181182310084572708647052247657512542520548734423675315482653733264648726948508859851284141927483397486650850973760783943035038356332471735476766940419117999357611887353200081856651598283425357264983198295556777961889991241427698886725375690444917284310716292041809255837169447901849238283088506525138327527455633090494812472546339587601899906528904137451111458662823420238385820865605173813293471220975925761405462199945073677193041474011955312731222497762491135997231946601814847554342423524487576371888745233642704330112304137043768768297707032702453365336003550613704836042040920011328321762278840882465285458056162076903748270434685048318037463279053367542612148742694188281792379574614216838753088959419557675779445221947311371836317661395840657135652387842489766711573984753019199278275565411460275336098124931006694894033259677248521322429070583193029217506559444153972589524717357654365043645151166317569017281018638470089391483882331451712341739567293084754850291894441703077101235318365846225259452353693945603770405315946545086736083145727237006661919298112314015928002296670727225850195166978886720226240138078377295313431680280659241460820784299641867055368611763028295380621309290983483586979749629809538174873156320531172650961312623099160977932980157122401946963591163499715778109453447599999224502965915983257730973613206553503230363619920114665502468861768468779630175537920592781404985453065373764102357453113758343094286420096196345658125311437674940903785366711103552897637075511999118690839811411287319299525945509821583993278309463858018198564561627831499583114359609118249150601004027020169733320301783717549739640523679832944527227715525692289259028747345514602684702745805886431307839472844593172170166056177209752848094967912108796629575394577654589913536487857014573258409170906514698555134981733480648012504268348919082835045661869269875456748184669353110493440321025808736414513091431808250961370857535027259530989116109423880072986508837993398782857230971379201934297714973323460413861540817369284358310003766038796131954494759620535011635216202377987868789782432658316356003684621445588932949240037855823387525689767481687309099264873138134346226222769739934220457013736690346847924349380425146835660197281073608338348952330379573481935178942673629332828294848651166030267648656993068475409480863588394575833971911983137058853463459307570145597885155124839694639857412669555901502318519880384022528086328306670034976672987158185155373073601770661105340256016346554452708632472270561570354947201465583182665974419410602988843331584251432736211389228031273785864290267882541747383407742236869509036102391841657478878139069812249643375180617081974167639841332374221329836257366145639216536419021519461192816604180370612245276995799260240598208466635676437254433206340234690652995711610951159195662735967799544985614235552573297119152733877071788782419356898899778277482288399504742032692058403001916611458999371930936948587304599913268455111752066827882151482026309095626163426074044091879457706934983147048976441433374422392225774010099231946584559445917941869666059782376171433610184551026497311851462176029040162922867860511763872016788044795713408435858849264896360001500584783462361760614753690816622177713039473533393326998696828558565973879466411053498312596068665343839990592069118253514369843233681491736972303115034384128968674779672728508038831388101418196425327192702632167522368358463159883458300655119805122259117236299758958470097856131447080507294446734800977859739050457293856236711753632871585091553488597889895956377720139053415065050603643001783386682966889316565869857333238299104178068833015657953812287185593881838484529986532775316799719139742196182048217685559023036453113989590758007493038184938480952845503837825517059602858585952649776518875167762370105032225994836852962681400700348008546952561489041243863699754153894068558523637446356253409476304007464942440669001670460358579298826591456143925261006747889802602708495780563460990011626235621648872372080923155583933612268212440460425737887737008381757311651965718447184551674783136789449641156224442755285250782401199512561784113920537725646963734095285721992501112612656943846989150042400905430480412880647071683099809702647656035470976851466198848790004353451826600930320261271363184631340455624059721890348836384760954310466997588999483863618099868659569667022004413614406421894323707401275764828772934104341460305321899756158354778461679661761290442116182977488815557917007684698938320856311868165286237160338443091933715247761283674693166071337366577341956270535853310254319584088901815166259333314013733941953491602614012104378020701661955247133159125089077293659871029385618084759622655555350192007935372053916015796742044057979897555881911137324538913722970213263478810241840765792543801245791631443938855173153327990715160369424080746146988293602312690587365152253163157546727858716059447682880679444465726355726459977742495323278512836647480236377069776144524882557332707173021338905939407159312075647019655658046000818254783002560694072593782950328818396909318321633028826804395971107234680901576828263188182411199108118643306661539006581372824185861846444891513106894189404342456552162317134081590217998241979306084708490873968524951572582296986734690644989322663774163595025232125158912787994156486406460289955400355539678208650654354646568085399335262915588428881727480572474264928440560640922855507538580554126225679402350818864127131529264193036830482352183959669072077802350299137671082140476878680172371451236988514262909586100289518042151106725595815374324594992609059687395942719761106561609128207136834350694593233432251045402409214075739734271642650706938713480632799337305962320064641386840099408242678517823839008035942341250016877784947945643532841653797568319660734068289153111968733664256592678068992427064159916206942336665031809771417202967146029767522674025678605270877331261395757686941660803540129022324873957294839270565377020061510440221733908442534403214921650690770356365174378233948806892278672929598976715830506935203454931505909244335673052169464256604931739404932181579954133026602929823362348315112415811083461715474877163637886689467123664111705362269286314239342080697303286579316729025336989058734148608053264487168505594909509053942089090508764593056742004612160668292228436996128185338536801925972236938999628839975353557701766741838564730211612882747544727548315633478376172462547279857974667534154236389763408057535047617589549804419705349609305834629719919569297885858530882342013203886583100663587956632163448534022922490760685422033258992932596058900707909470694941175201048032213394794128053926571407858490399235135904329557926970881075620838345036169894165593591351539254454319604960487688796045306221095142008530928562516794163877760358716885718743361973928225684940055301874907497440317433475764347769032393004678585814338993123814733654424543915213680914258285925393337933182483329126893167956612047424447371505682230722508061364658745426631653357904652882840865630428408640860590412683383059953097560734271891712266780350777020413259522765772758372450013952684628915454450385929159183280371513029327744141749014132499288756133666749603054336355999457726463732407566738644675914240988681822343128777438017544041679741523668932215375646660114154670902515772230310461470625485314102177929863453447179220635972546242379162068464707025536572915325664233765336225014744762338447341123651213721078467547498070153885911067309382486861388583527269810227985345514182242860274993329851029619873122845983946627522393936883429956454777020392791800314771905631416994348218283361375540085957150073950293974855707995486532910622675414777867368654501567826284595527332646503867614669081668129411030027903766088726224982087546100225776592971969709402610280553978628260331737486839247878117701437648877201286059244085702748354780018965995863492102123197392728369911125466378155159329519881780684774413538173149108593227839907739476449613654197116434423438299197015009046979248763064902575087086477376386302599019493785085728064459730749275347890112563419848748550984483703964469923489993368776257104924714752504691315021535363418871396949065650459417784327710385667702277369782132271303635903765998297692698734382340949798685145737287372258771794608664106236612548521111248347828252548956762879999927891917521103790190930762814858426680552665001785072168947204124077182922119093990300998796855678873985824114686391462543282731969861788076566663271955242151199151354393142388968476336483004827480935598721101570514741140430666983329161478131425039793539176833282672366094861771592059258868589660914844181227757224474827513470551890808037163010955751015926888018320023067558018788834520614578538802342634656096953244108891546500365678966954375835919438037779937734781974972974082333842780936395608876663249226448301678676791287589569577998464031453483279920287511794428104366052871929365603406989817270463154053481649019901071861973744047047170899581521839459590472192436513392058971896585934164834089541656822386548124906640280869173502526511723415549414857890321527662162396341138577263743519702275069076451868431073603323548847306187519849344263167719959372376218481714939861643284470788867718789385533910439628083535147708439018262974279109346986431148719705521581649286526415913997944508650605402824034180803581205241709472134740286617201017430498383095451065343502202444190662692253635462014743332864995702055440929887008291467764002396618099606088440745009467671321821679643101136861937537764324253993317781238154333270304439056441185374746533834542654319981089230472371145951433727711640614501370722405838999441215277480079362748793052160806141051000693601113828186556644869409049738621026690449262319384718248101262153412490187288485168827182052551126537423206737398627147448021109307747036182797612149140049346993671200701288447151989368505601573390169291136095321846994626984497838306717363785295246135999780219263746610489922822589336085559362526072819912805974943636791631697814894843310063687314305542451175012514190702748724860399361899568012469853119727042533407819849209426241783802291594641798305082329191894624140571004897609031130383094879987115691864863017753177192580514380461723381250644132018702235369509379892333921405287422533143156839986439756257760362916035623252421732784285890617036102310735885288990589035127367791351396761191937242152875558175379679293364020750457648638642533594164327101285247645969479807971720514140637586540203185107469352871632433753177923632401166259070683357944651408293941573247968052867314842536088086471826222553398912805456818007663329406076395597385958524575688546346701453792178081520868176247205388709510597619147766964175305291804540962946892435041818972321369157198396532162454891750672733139789655634854494032214105794887411615110495983795682441160499316215896503032328127097216543712272200519188683584399576183834628993032390581801937553146860760463636155957592652393268151446460219628480090018012805219244627080877657623703635612491056221900573670401085012460023039641928627535570088218056579231699028819828549314467263151015044616555267311243127601029287973167805685355083059991157724999898634455412670513330152904364829957971525684432817198155806287157983504323290377059977463629285437078784621713538294821356987445453083347804137181999670130040971476630029078175974214371959772243375010770296799069733972249280857818514753663892799991401487868915772981016039344413122870063334275283776785100715907576822871321948306299538975043118423541540203131534676674728159119857980761427116813659740873579673345085357508743919085154689930352359503913473114824161350346793561695307191288196791682630135192061662668628257892488751500903367461500071437563648855831731635106460911825382939715462269048335891937444323927138925250578967302718606129260163462527852199485070782858069841387697384444019617902131234211628507551278503368218859782533240922411156179374259191796861096107382580411688738456850721296566123123343420643366182599402383861540270168877984134348924790602339993260142734709871889965521521426239984007911781723632017677528491712652835070750036902832763350462887337963438741206908030021863175703640194311400797315382043652691218188608860471825747380951070469701855909413313152100916869305548998987502536214771726285964885377051922632680186370918467639850136754790433782091130124939966886043517394736333653129239873435460424232164872316247900999129931731555501291349116649115283348724037358327048488364575873879537854464139622979519719000158745984434787159525492599260850951359700973591121302591158134331645336090508934330355212728597506535352463931457365954971741606468095124090300019925006532658158267674571764227568832371625504369627671166587469316472100812680773721470923958048620572116712355830979400280541978103033062448149189028154523226846627840045117456203358341652534975101621530001069048935115070381733300299427882122171717032545333317568350761622103428921275340232300505855759696662526833138916211933150568245992575827783575719526229013284816814534623613286306580024379335687300058268901630741702197054502412360430494696294140254878308199166245066742150402709578827882977232514366526633334237414023373620560994302880863228376524255599830000986893556848822372209667790077800037127707994127521750552557231741067948542601995499174315010713264477199108338540845746676100252639617882343208906551137480721040516003505472770480067127277015149187868945680567546490789148443746804857795232362439251218721944759244828824729070741673992090531149685777969623033259161977572795269412333505725779316508079390973825927905184178925744970361037886224839587210208551351588039156977192861255501067320709776192938159302082003649483606805982484028138531831591805000432215461859587493490290128161677598613371719499490850638055291966911114044233141666151917716660017583492890292810131353279942339502746179124906654545803007491096631372398334948138488309903934125134149738076411864472828045315913505921188952448667718862586305785516385242693982173775590677573430930141606535525473215698559038804818129691593903196234313021919807954735245636863153459663072448367337989444242257047513241935897759585522774837703210063334411105279514235795949079312621567965782306842013622219467797369641839443312180010084971165477967602107074817721425216507712997815182127254479277483034256525199177235627415543321282875278462972269502058302255373947499331651164618435352189450720207944394257288967197308327964434666143241065597771856816314166612835512779586740313763395445423677279039374048098855027123174040407079342014147146837582095425514259066859038438705367761320169147701608627230113609774504559016190299493365765461109668873462781669235360061024867580483248343098903415602326486853581545273105563977530457673590328630699251993525629226339780967687216737763959436148563765588241518181193637214396357923995919373785809598010647406235517278222375426399449552867986766981911810386426036365458086130517668849605455370245020945172426469021904048778755727670408645506400660139111894769781326394342803889007650413702985239988414032477583953462995017951403147282880800304771834826063565701741220198636536620207031070264557583161095356327235804560988759262440932699384190087534404646171080927119969446159152105173432656820740246317051665926982847100305065495899826643147573103485915345387693186708095252375086924685372124635815446364227690874803676276499893407940062262367112156524593481812850339249619964758671638267890323858012528549323436836100671955464936037616331460363871841487758487828872864609018017802917055059559477572086536267272815987576042241422935798091860506080104939816664041857406736890661196110296775830733361542766567478407071306143924392969229615633578418258464009854665422318994813615300643332265589293089963645443914343969979343539393507898463255847523780523325917043091600202569891450055676309399062666479123025328304543660213720571337873939642211882921212110968945192373362068962217036245894329818923051765113401006183628476182369665062575907844348538464470043112819393495998809160946178885346790411660876428745203181983136157198973493351994498693066345079791740633545727404781006227548552918333770821360182920589023049671856174534102197361967848525301156176573021435131007423604879771699644517768839399506928906734193840921022480399370549769142164111741961645625077637299605894445659502596773715902924793809394662267649381621622047611933401838043114751910388152777187947339624653463513793664933687892279160424806697906568788249509208040384899519476713363341673256411973074210930738192265307630647346477968120513726549968648837211289771302691632458730086981678007332653957345270561813782584512266464410288786742260732121522512876682758047793064506144621787866672892356096369800280742901965522957379518224745106816079882683544345615750442700309283484941996438068274021552884843766087045973887222642863807657654748784094156452215919887191808886347219120207056403857199139491492552522621942930915836628854724912154794356017570403401666930186804790206180038145071740721812601623711454546920295746564564269801934087800542988047214237137200310936486786011851516568680705027196223790751991688074712466732169963341331798343662778916711980318005246354009384066159833168286657845900359753064379252287375120526613010619124805981021274461206866334549184150194828860439926009306970340073547015950933503639972145841352192037199985323547128901030321143318158941838960871322822681905631771654085562208619613810629716358643968442562465375453680498194746369973841997402826716790212037003105406789035452013445073360585570916255417956810508477055925597376025511534243745509871189100028559568232070351495566432809327019307574638803943518657042320142736904641668438829979995566177516658015118264829893836732268700627360113364115168816494847882691258258678452773235109509777227627587066025255814893585289019443975610747724400238951167164384921445341655492289859431304122515658868546792395040452294869407776213503482697683366555456357339658381634588024082686774547382569111343637900185650766227913545186944840676904366448235905236762264135212767704116676048131934160095986971024143039444108687317073687588242251089414148033653745710729117554661316831958467607010377293971484492782024395387142192813119368537919855015812418551446518919191429184947587062339121607528443611644772162675843029458045367000022047213785194969078322822076793699929022781880943345646774399016464805554557723762667785455864350148446530150126628773136249217943420379856761536017783467674456970320175161367603899218413704974031088792204812546338154751684231528321475354758182134531168177209201931298344114464115184522376402193796574394556351264433344215806671111818779320106137873027367004189984389518286218018439450333803781361676017814830932983877014029871799918757690882245569537931924505997761828132505277710194918982175564409913850140420235337238052830279867157187440703129610853272821306881273389163074135777685837205434462623682070489237907184609871078486211101419187532212061032656358628336326930302415305525743242506164077527164931251849389786622972047315023610452885464006481820863245526198269684287860903055231629288721619483828737659176934101190230953153651469529498813498412918449946711775989564472755660228631906797830438695212452348339397037342103779187519219974948227627710160790455176876604612456754383254162566478271328421188464244324973012983419107149214918873932966842035094907860041688762007252347991009344506225137208167425730592917994515052203077077336570518263182812036718557764195505577134786937995981637887625185497118879445449436770049031777453513708248023165989492853636500377562755303431661267711006801627421410053943980960196662325274932443069441857438874520382557934185405505912367458806693649270520269151828543821611113665199459525518074734601551145139144870806975655038211075270163696712200312913766798006356576143921457320686379270563664583571651211158345509099665970204718658756079362631288258036677908501176035659636359356907288711406509587816799991739665391533895720250643132607756963492709326573503104933322922951009909639813552851492529581080460810445495575736468747150550617172226475002003477501633354114942312991797133438376766753752496020884380398214191575750733761390102167644124406551483037408055165982003957049532323406217209940217010530070040600750537015258164430664537653021668613922323411102403041286105887407938029906603096801839209249673744932090381122899818820816993739867353309276895047593500707615041862083949164665836302362912052588811719721973355507783608171887421312296027162717122497902571121801681315201878081162804706271810212537128345381599837826177843979880342087940148215265477780130093495492162607924436200105186383354605966143687427885664933542219743195078283518783864540684895662284539973226118925480720285235251352681039626562579022790944137922026001324479941650304676551139504885182684191626125480781496754664036368594958212211186918277101060530609255817815231286773802249374503582809896720643914083763214938680480356105536369328392866619863303680950026593665451225312003546788511018050163251466977882793338971088527369531684819509410556220742102798095247124908828530111463018056434199821381899345614089480869147037514997076583916962738805649778528292957260224234716575995194403205507805218092284169486730526479583842427539569762692627045002731951112683349100841487243833366298172323981541810958737098629011217845901024074689579513580775477586868442132002036487502869209521620300866094502307823019821773661028957214514648511957839161488146840063874058868833850202708221833151453944381943529704469281162660470504437345049242863431455053097315182531077557740216294149973656452235110325927903845207649581666646757687351448991885701449815035480750404499964736463790196564885231329792295740873256710844263869057497455902707009942818868646126183917433830941116580472336587195715103420369243153128677065652714122588331734916863267572858988646849654618712092644716473351914675530785046973758800136261742541254587880037549583971503075391105219544737097475131428738494785684356642139938447928608102905899492090359956144554135859759359019454728016955431617908528263291837368943798297294961082773499497815388500634315815289359712650786613894444579730277918179510846621742903540064857732276961437758952798741338418111440014271031131682625785268945098290168204029686198046615473750272712318735824033957094089479284765363341548460236090743447378998653497259097509214287907226573950591958697164273926354068239198545354890126485466377745827591651241879665313765748836868153010452903815631738681751110220786127771158223862417343916566738041334013939282751305723244791282791497948959740586408443105272518020859403825024617913324207289112992466788503274026557860850245905648794203117027059662714870746773045782098620488723209855851502445582704685490063505010612502880687170363602663572113108578955384181655003483577298012702071465191037496097055755241751023733550311032337126935046261513545071857625794485292862392965807530405497197890898500186822099866479006740096517586018938868131593706199585245484188765898518640220212251673720974946917734744922550022834735143596321224843608275260856536764572131535438191541740719965253875733465142998080443281155862540613332053840659328398881971364879600185267775780087760977722067050870430087583808579605594774299768960832098724046002251960278679347070490057726684079576721919094302638413710340932321175555644837737756657192219849548097769663066703205246434060565772265004669343172417462844005944028829040038074487839680253014927958551815899783803561081678820386762264415080477508239521986588428490609594986246236213025947369271306669367023207830920487238080846216164252821128531395240781377653295979758609865792109235055804968469889404804076006759632108624465018214290423195191164674901075762313215662325950574267305795971765582451911675075791256513525608847307155042848668478673413807250943531613885138210732298246524707883612528152685173741071760870102662998682684486680110575836093095373502546433441949017086061952455451394627316573663146852208606232789096990304134015961623390756199889187238337580442379053218646069970562290693346201050050998962389017273167743548966264876876090474181943062871979325378580387746534104014847005677843118462469903123196241201723494856327924480081498342993666446978982140929324398553454772371384775044150664339088408113814836915537789777803381639633371356916239969747863852890691611479175497224768202053170044532361829652570940958363757865396355781146018435571757050213880738046329309405552980235577063061141260288876163899770336578084649327736579933578673429007243121231823871846582642031114479727351884087416320977296251818320956675078586356606889920919111725446344753737917081186069065542509512241005549791350029597637891144704611679292028882434029506944254905959340039734582911015012427981520148354468625303623575885480825081120871614247506827400853683580975910178452870167873036273223070628960028274490933344652645665135086032309231838514799897190772017617469972775085012719302547322778350822868173838744310397617518079210138092865393584417237301757176183036082225988497269922229709193402559091609582434638998018472178628604679512603703858984377429629254927579018551703013467585010213075599900029393802647550360609550332509350275958940333807064608987235041747051693324920202404179146900514593728493933583142088484397778976986085329546657124235142357201217175709332522341979275437274516606534393330456343527443138247491520010133664857537802965864957779533820898677827216762060839933573866376743217882118450368689072227781808251760940077896854106175587800998490923907714068515182259089934218128714038780674810923613512058408577484473976609518942261240706155035438034549056069485059237799803372804688544795999681118595855449548526116427962072936001060857392171977782799855721228536972620786737033552408209547391684383379531238902914796877837648211525658559384236192326009140124686807586936439234118724774471039266651204542423228805399936437196211246248575476894873951996487457556807291515852699301379323015542751172904935698547952009489162285398558143679970651435848574255821969376289658690914227900593473002984804217484701771195640150513454266789192998465962548716935578681393248169642420999623113735590606388218458220693746726796554800881028693764864399614352784163752136260024730998052756813359394917206854365247820581462925396351533780366462494436034503505807206867609840393809805884663256458679645078602398192457410561574104985507013277029664565776126238896850241798218707406041772233927038069689902908968634352315496130987694467130994573151914454020269606589619130021295110234189921707636441890841312587786032945643537604621719523492368581213613822601834671164016677916902585157840976485129526830849889318380319480638244161524942609790880544471916152548603434205752364658640263100363118224634626795907974114047031809696419131367344326590135538495998975610163554952166310005591480042482122041407401206341844898480238983748763944140706894461428316852363228324521567071158187120752877927445089101382230883145965104515651445430079862759355913866223715911407616210112954451566025560594715510341538451130228281014968857029935461356656056643860411517585771483049886900272424273659128481034780418976017084822947346170677266913999623511418705690858491785973028103701803291245039490532203665239852656716795230135812927453145653871890774071217808382884142040762969400888394294902843494442016872506653884050400947102934935759223443359052745483547400277577626925997913681345124334936782848693600433488336344771787134761011580529563365271409076038435410151627973085711856889308235706531913571425470655243489112782693833560184475000557954895947854294507525998783245573577600800189942372410758458966972511051483024483913998252005449532789890417672248759484720888821300041034024348675071250970154178544442935244664276536096790348745910970037737694576774317656053516924967706057434510447503803172850236880920930988392039221904048998817333927748675162769759402946836642318143521998840771381451284139975189585099781678290111054267523758836566748192202884696574505157030998707257603377472292057532309865989288394831881904571688706091559631074046289067518579188124489027821693375039909224335451978077912973866314198987719105989101448838884560541439012992429460179522739325908529972173618024205771678328142460436330072728205133180554005584441199006212604023474400127140989633276199777353457018285544309498381366395546851088655569068026373738378052797608051132630565004643257159671518668668596103902494221255748178394122802390153731692741418078724856009680522096555487136010893979291637217739132168105244687235481238727333140624906922782783400435299225767250131528490957173842842126171326260836532645273010836033172771854871600912667192219098990426141881347507209704120152670056568935115367296368973888211232553435444022246322662154979913633056343839252244529194380278457650650103174363573425370791057656120167273440290331075388722816405604862219009315238144465028900592706220694914796953379364114206799907962535589858766013160141679654677006881161706944861447863552133731048331836016685149003069532021782357907666513322258902029600191373787086425403530416767304512183983524877909326526618634691272317199157121641925543255231941947949695940711372235607246637878094448914550875034551475490726984510215292672319809573446787152907715294433788004894577335812549274570917722617686466926793612855346360617916828019858325019105442371381063998132126316355434420938767984554484624681567044666753108888639134049548831944975560701400426859329007470320767767495294683426668448519822419044428695920558168512024925135889860020949549657105585722214852007804403295398905381754133705129100727884309451831198669081536760598929415137967678294171506319999935709816672656048392628220692781757531657162999071240167063343058003892074997698103346135498222929807275319793822278051219973283545857023737371884603396698965371740055515875094338847393203308008150040683822901791619890495904960784547239717572821864386217233435777215349499403632337361650489582242983445333355663507636324453654670325830453327106436483869237606855353498063673876521706596344380552261101587488896897505650310070568646343493173447569623157192365771701476196888741216508149220276382982425980371764446567432566572201298011300816879475428163505298924257817258455003994571005171332094359316420048624412602914549946410259168697042256699861896715611664232644070057890909351817000047508894534472316397850542469693911468197631535778236402254444606784495131824066388917667069141317441643756998428688961290924036824214055589338697278977273468008646696317889272927857032721582311146090791524701753110720001402362459259220582902862485277722545734704478472056128526072954742741447313907377541529575760611751514042178762804244590354487272928228163586795695264241251886898384990829770525540418447494106100741150171909715457266706356667793018343239160750404413761768446325162455960883563906085894328492485582911721676076891787812463239354393174903351008368554373443445947022469618882381180371521723405457261650668371754542069409426745032836899448542005674732995999656694706041287758945391354874654903662238259137157668632298858170609186392212994358732036368329057394631424312070988815654339874861835063862614655804680393316185019076872242272041135612128813128688476742133527773795174450595348175279606914691494734563971255715343320927877685695645565338824200436157239402118893971461219864284146661390988259894234100436235418788365033595130964824195430916289094679452756095112755275029807106696147949209343241112973806623385834320200464466647239412384366263859014112138136692637210140188451741962337242120434286602909930355066685215649681631330316992677019756917190215370091997903024483041568403582993167719331041674661656447774464347592796070541598398314052903661952095191508566111965301323020435139670390367469830705004909823772319912698440669698929873485850119079838412203693476896093491232513117584159226719099819851829161253708320962816830885188440600663589539858177445240018191808889604600467317850016929992380369747541626750604160955402855813469118059731316362218039189807643280715335134454138163603052395319593789455180246201876517264312644798235732266419769873066372252167167415532808949999150930794714071933105634219270631878408774659064287847747869567217558614986260074964959959447077461409596066752405190562584720495882763586749773955814469610036608299081248984198706879038220393067235073076648595978559616754834204301264260319212005892945667820580485572629347931924102857509288533754072996484337507932246993805724081802276548563168267517583064101454768245124023996037696545833270287271430309862370523318705656787659011929999722167955952802426234593794156203836388867384273223981006679956949197266592772764598622750450939699203228278838902833347716191785751156205843007760291344896469719241636965643472249287666088233547650123903498770245392335425432241064850191229950178240042253929006875031555381332076793534580633240336316118267689724656848678860258293436957547176169017380421292895937194224848271330887999282136627546331033407650279684332030061148025678963599891013381149251424994827503455690615251661711430932335361857008749434142731250781219865198219498437348300898996756333850899157947551843096839223487795319341056398774406037313878443889210827013111070624188412893855268066089284825390724405724258165811944417129592776426237491786903469876966282891402759602720694385650117286401496515655088632440183405906991123053247181172430107542350222629826901218050385295561510626665000960627032422782568212126242047051847474543153212355387879667228249547083304381401106895447743691306067422800434860196100889720907006934849152141929537030807097250054108118131845414536174425750526560138354948875776981906016245279793764368359158548975997766036244119740432362557140644870640902881550485760712413897171911645607548215728163849754943064690631832070423186169017663603573401815222436320850891858783330395295468108606602031866145713014150188809860940570956962391545758557546460453721699280398020017079113482152351048222052379716490203593957513788663963419189689013276853603331600744772631148592422712719119191088846440445415460367838289185342839907018731139829141373514669108010069842794041681614294868122415882572282920237370916480344949392154229256664169154498306499176877057308167882168274539669956291465935117128722696780099020041239536645318105697493257868652011500979179840819511221745459995851951950204873656045667293892163033171485248979407010703433805867792415165038116862286167969917685253124709873349376705914087964110646291096147940689464606180124453467624049534380679089721877706880573274009610960115745162765958860109355425630444991084913793674057885057172395681436815510984091588074699199721574198159655031958125158781185169033831091137589522717141978988195758120802862584839085972382379831634582279250895763015295729001927344769222277860452120468950817559699542857469443821809673312424155819646221546589886976554160182831795104387658674283271558837627529242013549935591020012294580254754522808668563735254939583017666103735330229247246165890132702018252454217566506744489703619309267280088494259521880944328932394934274222240636873779400629068528121619164517003232049214182089153092739425484558004983457597852366694576483928738082471322949017812317456615065567867538725024903355756166985650754732532338568289379109997779972348960074301223717906179761371694600726446709419979540259803337220635129378562196124684599192506995492353744030385940182289134023675161644882955068763545157198007089704324167820544430526380043039626284287485905483722509020024442947998357460175014971846172126146386704736456134071024265528918198395792712488050063211142894656009223611852582051842231308599033312127111831344176415823144275696135834562099995451396755290559299090186954043740947285591273421965629904487460006784746799684440712593758431331614939554480513472033216273707537257180550885398836974471550621851770619194264949879933848599798357201879738066049480987322362995464234430793855662405714546978986718177753673358973992507457268645280556900711203128450983818090271993527206189927594960811877898617325945914207885024592646578007882173681189912208896763636202767467266482242661923740654799256764487519521094907510507349738819988769364500415198961842483863890334358938300064606252596575353210802440900182438383382804655940526422801983978255184489196461577014747851489076995279766011032404009668734265066205862528526843379791120667864881055014813077669572010487498392159477741183797730028075125796730803956548465210578344698505286713859483073616947882594962455508550676239085763956568021793057541399835409339041799696466064093714046921471093850413608915931070954632583932498000171494205538571554764001478010638271341555895044349325189568321389750538473928447296873835742297838702611842018873882530257657190237615703350532327467125156295996042842954376009003626732470617159025872894076446012702233927620603692734381000174178769675176886811913279736165176728029851407976211835940136017360501290175302726268223963334044882661619916209153711950258498145674982792994174238701597613207223389261489835493042989855604919663620664809200565803605048734405472186530643051064960998991656666729276480976201959071491854453844096143134652847212686003473972786252744431224775243980970723521066045620527042475809554779520989141953291842615365118830236399365855279322916234389472841223934527501857235055581702264053071519320359101648246695585757869231389630414797630455591196498304413032404624077207482215960301816412960296102114106689741110660038601234419737472804898481987158818460817738959399077661840368679198774858260356126385697745442193038017980167443579697217299876800849637103687989688593486909887404023851425391005498429732296562329839689822293057189529501503916804445214714788363793687612629126154139315984349588168129905204783997463377068173432642402779779518596000670637644851402891791057479868168640329746326855137454103155274884736962211963476076988790801657140758482122023729700831771785784021211094614096887902220279186069326562450236757239991442577193782182457630107772588441410539630739624220564717830598952154583516556741014430762327429672714235347492258347266828348170805199744500683245907404190662481586265344466984806112838711615002396668458475020299887314713644244671940357762023579266369850990561204882241293682483290178739558758366654813018631987156018843021513595469820172148196744127359832400433065123298570938148959671345798075409628975868544831493573575069579422202462976503684793349065761165169555241449129276415973466127746966969730154954317486533397474629913061120154958390632860147833715556326938044955524430989427299873831348957896400540279763077851130709021226172772974184371145160144928081917172197055535129604803702607751949627945753520849686636193770517279455024616628635809107641199289946738544995074822240683549722111317199262635384792145143344185638717511042130258392080444051834841734315004526586891763259357641265598992931411052501963693042817119652217115322941033853225050315116632987666163109751813459726885779836357193713829503677780690557002837253342817891936524086361920434518168469724522372948975871547661192241857457736065162815437087437294813486026212427319575950288166014168758214401361332236479852610448288329949032892890981129542585541775987805470808643114815996459140570284040792894804114320234659633634305269699598008312912088622292313639202426780149811366181275317228151261953417635253440933980185526696029090663288370255618833481553104954998371273299947454036570224322855916173671465244605100560376502899178406237461686131802018528359434656016383692455123838366779370202748688330881465382625319456288983539248669918652091288657259487630617010462925563254864455813497673288717830327715401654660931338745544698022055300820475025942211162651560001917091762248289161706827852020413379705174015068820509701166309965521327479152368848450647728007801039608062144949289651106977125996773011365528404966762211776680279630017759159115663277248576594913602615149272002118363436316720169556166210179492396666611063867174799163990433367914554029149320695063151523185856896792407552474969340641803342217709950121961686797348322493074051896243128591776749606971111776513211195975193189785808424499821957717333997826206267885341513339993711886324326272741093456818035773254475554619617044584955717105916553638923111971746747446911306028070329723731041518046936651915491920933053669235040115478318571293890057528742386605279762085224032823557263518373394705581171687693437444221576005937247219137632854008056256506078699530238276553021050245366985859370335693125979010162689986391286531617704600095226652529892524906381925824967437511731995039497211466653235945942276544184027208625745046736901388125591287694431994311482356439705424608594100754236655867731320365592974485530593949302211703579447360418550288094604669600241382933022740267837599336220352435566857763489187447786034655398025698940223309255749699334796704686874832615625204594313360520517169411772728638534082667989567929115381690876243539718178630208197764595583101606032636394686441632038590112576273798941925791350100579385022220173894088538615284604222765096615507364005382104950259828141232394695735284625953466313746483120031011956165959928488367600199382309328996958916140708121535083127924449159509159193978522580737636912322974853672068197794419052997740019357397517026408604273367888795929691502166518196397523962054250766926512582091251061724438727519856433481866408648350368032134499498782125169432249125845119035389064039368146066939728687328395623209726935899394960478170564532888489782079164699641150475950652825641268125528677084905138989132984770985533517029376931403908520946437161950118999462653742813989250850993880884421538716365906972482826394611163776218286378839563571956997841417470466158729956185881002908301750216696459638719824783517822361821607440792139188506618529277192615756489331838045806201861286800322272578251682679572938720919730681760050720096094339995105760908538791782170077460423662815103876161612825354620583859152229226230472819176025271101940334670900753421938556404619256343869566176194813939709710725760781734220310804635451635888341768121117465091791076504417740682239168109073967089688655602589300133352036565802416590168077603669245924982062087035254111855471577986748551162017505669477455860944386283091095508041613454323398448853823772115580960157759478351923463366854258932040268510708957141832656951664942812422127840186623426506167870489464674160296836460599503230778799096711103266735122473267674135107707807686907582855896229425328940568164793544976001918589481969769307976397986060041990406924376920768877570336246524824678089331693750628480581895093902650429748412730705951859032271133361848876751806250853376338394686507069852014853593257830863653340619295550945476047806553524206461496628031858111468968699334259212138882976312431204250124200544041653594665169117619159075979944049864867900769704413407171029755696447978365807707190429702015485203225273292644556090704705010216409624123687769817716394641576290312817305192892504962112273472583898472992640596935953989286792073317449986369592255451110013301489768899668066313933617062279943726494973764468382011831786623786436349158049731304752288078904335565776338239641895692015740141098137184542899101975860598703180164506223846271370381832807434613630193537749844909746592413449799752303318308951808356099398087135201919708464180582910283657385139269232207539347672708914207203913322116651538820962645027270928042758016401586612687332615448549826212024923742920351468194817866823625842538192628012235981293645623471948986773437681951983935147935008151448075913734959070518998081569405257578689877315517943382934776160117355221499608421323345846491717324366575934468342104041565285479124943454599440526367433439669815848976167196890680466314347380568103065840367054796484541453234364267289934581973240686613298549978408549099506425007781961672004494676909421101505242647175260294074763525575295049332161891228509052500691262114254998529900412562894003040829156932950898605520729948234391938310191969048109878775830972874524866469107018131625223450920899378040859697506275507690270541715103399561602335123883195545671797845745301218116012401430301254241337797962116417398981141754540967174725449464061029598262390241163601153282622509865720794160601932328024427273128119361839408905293596772427592608683591316174139637464939427289072164905166725664067985045648521140654424326186700214170869373679390073762361068641451884674960597591294128693123143581876838724930336836153179606946467748071173700679304619274318679289358052567662492391596050182042891768394118560370843046339909082231147017101786667279276079458928036981695793477300131769212218431618398716803315929111876252245460065688357506431710056710939346321403981828425089029817817600154790071964650079432620944724673813881407156311840866751760438305834308838631927201068477971146980985122335941729072250616813286559480553133691714714903120842913694113689041734404542658838612361863283159839942035363137252962980127670935801043247819709018586846020588849743561937383364491558964509291246638651062312442006705843494527180677280529389223643184353604045940037249421056620045707344933750330610289599285668771280445382962713230676819301136532918481305807463512879236347121661717148335991226522198528149913011784483848709148164828789072243953686939215214074448205696514220383184437283912038854491676137100585160687990505853388832124301210750879600063005662427779179598982449556307095160280463739274989085212781153312657668460156033614084831708780785518062607389528287019888872324941783399630845065822567477469650089770216522973417676437088582068613188369000923954570460482025623920925589480731475054686691251458645649241822222513634471764345917783401660749192107813601968016717187315029152477088369390551083184979968397547632539870373413620860699263668248397128729300499210318697929800898994196221012078392604926602745432451349632405706010024036202908780757516167227734077635245126892991459030468986490465790977865323609115167100252430910415769574815221908068262568712455247882489940917099221628201662787173345458066898532206999802944918371245686564892612111662872220175774704308574560579671823665949411030814722747521767208756720983012840865481724726009737042349507120330412073773838802811658520445369295178200906290490309352399813342153635954307438300014949781477886713370644583710946365745718579279544631477128966225191230281951018968690770804795673109899045312184677454571412874973516456081278572131518590813564263502707309146635368965361042681121503093329807776314228262090400338182465811588116855774465030279642003585039953022627803951998644258559244344595693378735306081953051998733197855208217433111702767977735331942208807094128106481148284642013094601470386236593622299160896894152807199034143915719571268559314827992300345730784756060863569172046651296947764825544271018180007359811959822807770576761613813511564988730343407931052425233032979577551543803354709205878523222488082779916496133281078790082069775979858306243356531793227942919115647292969649142124086237352120957499460161351376425942554024069002323005512630444977781442895886617991683837980500261593279131414219411525363010024877209590482007708681155245915980102487657662589916944110932115306629843088020270656011286692568711503585065840676634431290016978024541022943950245787876368658796957303666597588392224981113939968910077311169632625391108952789684127039020875095513624621277155364516431489421884053924906207964590287475485891114005624301110728099718054007467500481285823954503933284367957841633790818345369654709405969651432383584891804011925062848487817618684510118025944004256847523019994347717576669095553228996500440006930355131670495352454223950927727805544510766780507255320683715294438013305564027124790538688506458421618691251362307168716080514138569926171614077530145857213439986008182817062333268277616952948524606147953675199284194582484873004928068783576515419889088727979180150312319453599088723740055455180167006030203312980603817723669187812772062794677528077111795019967194040389272153618100867793208745432544111597820189653165911797884350987754753120011153630099832788298458460107710231012305584630022982248261330470534757323911708341598923090999216013890075106905993986211196903236999754415755585629260471546453259021767724267387268692409426107247587648008079877015376020655349146626045844421537734256934865396953653306870516976500103054525494706825279203814388253647225064029752306602311707165936779063411463228960565394686379913272466171526196247020477339149514678971205394137833487904112845296245706322281009658183972159119133512269483225432836024676631583401500168622670455076622848636009439414577644451991360220961994430420331629553376372010918962960667625993337596461882385194576911995590812550536208507047808871275754113469557913475707655980380208928452015627631188942098787866431685137591143197153675518085483315051720302223621971925441245425527517479782520998679989431920655480703175784863491459540613817665296582840686722306469609600346912960579906146519189114925567615906262671911120077497736208343338969957724800015365140266870202240172930513462868504667086605850628365915879057891419363455344907684542672497227510927577046148101295304129655912187434341404157901597423047935516709673264492869969523607334115791571780145187413267516109543813616183978938785356260925693634395103536245677918687183736090665526449338649765564064288083002688312930918340474318396919032305374369576090103956662968331652161110901724180273475835448714431544713623307332782637191017321726651259158384086367725664600108640278472850168046225121491930913752878424586258759197675686088511859720105216504415368675850581304127208504247642207038276255065203028231891547059522244817341190455587562401335322184985851559409986456987306077380776172922637534446267972882828417441883956350553706022398532950090360227472104643808655507051103382303362638965348726207275517922757502641827061692135725513335306383896290502485465767438843039956120847407160557281922019703849774758977078332394534877373686553205933775483262425763069590809841974483038771949006290688625069746210507670237207040671544526140702262340361898131859519421360228609279165911122789942755804900694141045053127111699318633659558238297899336602397934685471095418726153367789640259204536574954774213031698552946422958901131455250580327759455341868328214295299303351523630630976380435078374048211932884379353413416194255719764205148980039647330140717155706772000358606914730054780703929093612776181507926122948097108421237297386291463831066327346376521883466751397958057094867204039590416663215973137920742534673009688811165164850354411194024099010661040565370928800917718502857635001512689355231363636959255734916637088341231512022522971513790766028471288898231537596570723233299708893395525251430611262563162887249978578245895702639726288679087316648414967401959623445736163259542206078049607479447384964719561546744713401500268825131011670798261913534281004398311630658576642837014414222310396796784816032326161580979013643012831047932871687538812939166063824012261698383864139922681776518485461928393094528000149280041666772226715747175355465763100015326419926633729458473845810297545386818746061027250441428569690078221797962135144230797661768883997443842831565368503066046875113148816525079735243404019443746542789871640603553907425056095379954729080329008683474197884594241342109518811253906916518499582150897656172387766732268872780984641765201438889444537144772820144502635173061946544346854082124808965299087572188231387000387803493874221554629912845457015375928063750205446743664420786915664656784484266150758764273655490546322445005845560018911974077183310639101392494736228103050226862061333955925537249194396078344679093534291933393691543751486035145062621634590178777515945588635494682604229269956755510550932987768073939321289094619618809917241655628249269915713677354992987670389465549432123887960633979551751393556433416369444001276368636017083852321190156016260729521758270962716902028241733533935531938491214012059039047343900619340680957412183119875181395522955167939632802898753249333280671412332343093355454550516572110786199511780611312051579409221472622761929115164084590868448839285311550319745234240765113141210310674177246589119575283874496628321313036350686270773451846286709973512991544252617645647075437870161688101265803706503327953270720872858493343864651575231555583753027568133247571579040986975685717310700095180434522214946376771394487264231484918622867326547897766659041763325325309609148536132981584080334661452370476722651993874820118738825260524511971633926697058644344593671181530336900617503187232468834752714321010614324320128790465136194626451993512712909584585856750550524052856143602094846334338627343995045946028057819030207812772741283573984869671080833227275048711808667031310497293294627165885967138290932931750828188738158280848956827774160442803158945663276693402473373984133006091792982309125498169417620629759207412492120130257916775892436664485669444945976984127796142665892992822683939911630325086483781203823682900270477350264237387585624699780965610550368789271414396308484540804326091551834120325618794957292455283221301536072354794586920147297523648199963232823174135786693528056190145813587197884310622060753890289157745579258498339063327170004643815961027899888729733839516689710237644136561035130278300798188277545232002888400696121511149877705848158979131859495470009992700942828408722139905060216791396505059682759593951598856646431809819819578499728393376150909255197868799602679676303587240158826253493187424066098980849539149530933654121744885392045606874224106111144126514588189250685942333339473498734682649302962004793251794482659455268372189813213398325535155215728845582316948961849549939873289639265949050148226015501494488053835919332452317242504199614373782679700152155474901581838870889930383710082824572039317192283524465751193110625848149875306195837547063796639725575165743862840506879724193797992333324415337779577541365303464641692854942936859182350361328699908619093494630776246933932980439890521182282178659293358692368068974677567564666465766524310670134187803345734504753330015113293606180579386975622666335627049106763731895517936127933661906583729277512938718404562552016194725085853310979355669487702896236488047820394976792943462841425301232950651390848670693843777296891567441612356496712251996839788370578420788762787497666790253947308800844336666851170730388535649227866593163736746470290246442738243280270818266166526634575138990556811796606316155284698441492961967246429222836464828027062686805764413942344942728125959873037689318617358622194826914759975352073463304496865179314147814218375093886592018299020252491231843748804071625876431296638976214351776106792534633635058605837338505779088293690407820390917172748671732424502776560110055500075563563938999882200138514465688368175240199182759624253955163954607553409537099514429144243842453419351102099156332999355457609990905070107146317686622791034503772363547638148303093634473145416328742328861889250254208806655838837960329845004953841442681279772534097153333842940556127668263408174265766084005006750893711260827472096280642349920518296454047798811702515256334499128097827420979891002679825410372369913586510912217034704378174689104815824344184271599871011921824133195549364562531099561685054795868137036937059630174064446030778878776538497444864849567310042017336211095953251177645034253480013920004422617618121342568159162846709795298688908414708333887978450217636772897305800152450502947906639512155950722917723685940378112163003414134813925357744182366136944261923633193663446755546208322100171656209746611132353750469024078749691620453702134772896892086635323226187893860494126167879664106866151157254834105528664752156139105550651148730586224959132123353369354570440434258931445760794499684486132136936041504414195677079245682642048145269723395147589427875101055823590655499807509991223157252734034883574974822913765358337375177504311272226285403246404170123797849417212601704578922649245539843816104970961574590129757070621949399084856840645572613542640716645610595162847746914385385080745318753145709299198519457333473759080598409539829942546289574379382192197808510105460286343451317800974160813225470484436780864728243130625986691127461285466898641032335498466000574078106550080514617956057908349575983997851555143467712186201578405102911772913348459325190891314361492270665886915135642466658701644112536951639538524338049507874650908936399457149027676175886683642310589085823471131533536376519108445473232922597566335998519943879941158312452298767787264397167217156291675427981012250273065890380774825738688935347507421685696102193077007075758261664721512055310914209411018484440084302071616239866104960391466896465471257250876040901868536191699680004637738392376807672864278283424889188300299888854454515948829674372016229590632353615557644584417954498986107558219272512082930257725942629596331345213936358179752850677562966060562032791998493266948461496673145527674743883158183784498184896299403338804090012574507478199230203331585263214335760786807226013257961994459422187785043931497272775201811698153273624549129395292353657215827010260147422390395547520342601498329494098311047083811904606653652066891277100421698249886043215256857781182812064078952685495052668557426115374388773082089352373848379074529870856887331223335406229704180752637105954862144769115435313332018459600346227524010217917356527612809948389136713601565405601843696531932503468760237201322673905899059891933267871229537214621921959677353216079633970182351761675552381456536091969323165489664458988977320855616140895785810308930522369732071632813526023851070160201814451580967639632414323804328834313094074545580505563586290255357850616264280500144109810867881740418894958520231128307934761751393216776747758640987004134006099975535433385973924529854464847376421606541247748589431165601264626944460266744470496328462420808748437000483683461229491282092186828652925850293759111305019977789386278249672216175176317316239104926161616144177224797180644923912420081601190663712993208802271393677650801309536718464193097450849592382654698434242840359698417051220058489760669130201658245463547628334690853480231237990644634058030890105437093749109639606213758666661105929015684316590411386733615434809793650176157620449219562897798497391061750594310637970151103741806028996458756960672300355526695492772890158676971912704059020147399662571644427329427789504339943199685602237208458562505860788346926779139994485528623411802038990347653751152617209276898557987658209866095126799584169153675464477384257468283431680950710078976459643068461452961568315493068245643518618061776922017590360225443029774598294299765053719056139087487390433197454766151500456398583232749334393861449296196571687439119942259397274858046534288756911664555482584643794191524584815302360945523779709562929001314896770373966252195037430407549363155473052359640504590699782777574758317786789199320470717585139870436730790355472587428350277151706342009588410308783102034904403826783416867333512206723505962687250709490980244451151785603765694953975724364881997028447651427228845735187813235022463482897459356138512777422757808321375674824632646817819709774096626223283044487799855025041744647320129725635357821456082670518583692290479690945184644932743220706432038737003681841373522241139297116026719054206629510900329890978122254322546134128572367338024131709049552205980694010250464110432768997512868881531121527210139472421270452972713802132325340102116167523063278661457266321727012360436544475384991676550438706484757331021161822876347100895645118256851284667840858775794518068704279367737915830149595312563545006366919824164378483866818798313348265049788043099428503003885851080581634754446728931405161901314041899838200586343809554141407116596630055901095447006490714397709144728859403039637595851626880311486337287016339580051358697007947344394867828510565443387759343866900357773178491570193046542282790418076388798400763291280861696991344476981181561621299400369724860287663218834113090274577943192967162978755078072691406601545970897183456768765848216683451092161658956935053353433136668289686744852904716088483445317714442832520520501427679321302799756910049946247117055730130550195407244801655345460048191154007716509364588558391167770035661018868669842382364690226231726691343188836340703742441970481368547227567969968970748392043141505874091642862312222807465600709338113462700981319231292912840271675385132341346011081195225833443269414652252824535972011896781210772680743427099165545657636215374414055352407153939591415799034916519517387954973443174538163312587068058123744898282126174983454762538911778323660232957228653775522955429841163010103745976651109407838506740104890185933627778634088930034079339073369797722146215091272585094499266211473783119776708648196135659587264242462743661772479945963337633173566945012292054472484286121560109841635680666312986216436544342441360544046201630291905156910909390821874227363028305894251645653589051540486283077404326519250274512142395392834261570625730939762842441013179900135281695140845851947327740248162481188175993401623113316236060305848017839676637491156111110893670687787738111659086974352249015417377754258086046679282868036984515905064085143609658551954387764623728342708431159696860386912576772385075034688955090185567281357641056533931601198933821789012732020791849366680590572047129944401244416401926173261887817916261278969772935569665194365088961151387370946047416456904020763758955827966472770271114800086174593513849847261502665963544025245270793671991255970723913119661843075821123689313213446171687153392388388811095858535345639910792033463180659895684451984650636963982401264049574160180397369216638951136304509746731510757749513334260464454506192151351679899372079709735781163163558637983086297279416528482081500392841246737628309598334869240669523133824980494810618461221099914196690747572089937087036013766310941283471152872134930634027222908288547289893529939540423941485553089128252253412707063448333928694408639994960749274420955420784245898516182215214469149140872332231963283198793942847172224197063644750184614344293910374685175966618743950144496334355876539883100384518280564236594848749613257125390440182533458515864263737490529249813012611357211734114731877145426407992965820809601838801520241724404605469118484809002825101061623480178317982800073079188560124246658046842762605133738140273257281092008956518721814954123720937269607520075559869703637449716117564859852768849868530842303781668556886941352495802233503081773583936315048741955686857575393223942262896630970329734683033973861557379085300011556246398953673193271873379508050945475154135652877814981737578357138368090088016316328299046196589182672368487316330120253937117975151554405693157548443466536270733988185240618754139150693563270406220036983544656627461078463348467172407674534621599238401494229033317927251757594656357384603658328000067879918932214529494946574070104865877076097677028516987806843028753721676845619501361516235087719995857016207526623444640785850021134330151205313110161414628279938800864136573942136036655229993196227053119028812389116169923188774360843992173681081583211812743867834389394804663680301665716341192397275114084671748024331707754832352382435327908228931730103730129346269079514417001651474084143371908651335819847998182078857949516977133757264869757197942485299601421677976893366195853477861294209343699668713293627204799008214229823936613917840195130904012618773893184852658327611153519935802349277169470380847281487823272027444595036344174004506463386795810425867446359076516428973171894420490243042083249064295504772614439743949746645307406733046347305084777548309892215502132026693622903909002843842800905722174450622259299906148491413560228996241522608617296794332309501093291198053700697887018673202706039657869530810076924543303755856622744454261863211502326794324983031415169176441992491066293882274021286438070192710275133377894175789116350663480267320264157631274783690115509452847118937048715396678740033746080582294286399717858208803594036753273599158679043061645593263269684905544145269780539857355378333770419909504312539357829837727223335821430716100854952053637550346808546649149231193693004600965309728666945573345289029999224259229908344340743732029804527674119227900373183123581751046324360890345274532472186019557569481752904547377653266103077677304992335288411294129927446041633088062489220416583986466103641631084331048730250061044644240272940464880863904211521510385536057121244576059241226021550547246570499248990712035535291447711396557220374621719109604663519950186342581884282604097906251065780570741907981076629231893052134796867548017241031917289753388053480125859338516976080592913835033124489054389366679012989366447900960807578340796038370486933811998229263688099534180223720150826055314659578924449546214515884282388706166302891550710286185719568228177576232453424077409014392654281243333647960580771424407989991963074978268769215733727398016945765735903416387386823498127980315425685839680646757131543493082634785194517930893264108033983696492643692676150385731154460279502871536225083234991524821076919912077345830785086853546757031446040827203077512692735182930600606267341422932004002159302625706224337691130769150116372138603004475843677648774740213044456841625586877350580284949849450542315246910630773569862955223781277084401686691853680686908437108696911983910660350222772899128990521531735179571375732280466737406067335905750251950133773614300076434291240013665029973844595454720227873925915324714128798978558776289232244712229665767378393806562172968166640248368226557011697616634699382682381220045343107039983236853589142358604428093981351015982442499149728444539112147629163589597577120997519341208116708825897712014998883079691519880705591586725004359144719201924857526212040672444772892421108352666404227664761253362630649189765559476121496105394819632049843486084217051920912447407891716382844237933622234011240006504075615011035369746787805654746798275536322399219344229952256590038588515795964238163850398857036160784971974359542529874183140049843971173173680054061509184076657260634829768423818494570268335858887071747039931738485419899600311388548176922586524286146945495049538445770052954460950153312046743731924459546401721214908972439747821577005498199786268118825796402148197870541421803484626591386821312420507822558433558007421766581452717604038114600699354069916329564655814231526957358168288136527132351681484608368058765140156998368304776397243631561555969302558022792537546347886563813853459818003260730429107265304449689791911628023930283115733088920148897648559563196070831469105642922776963905791265488189631939392728503985560206441342714522384531146199381778941998637025722875904508205261493624705802971409946873273895083868368592158782321685368479245945570512150483499605880292179074811056951900036323856985966898628447288750033125467855277545760050170522145366695670027481472336049051907823577863634401134091490968019433795160214412979542696573959042235940837567462595312007618344758314627441144609230554666519518504135115504357910514646210378263515288042106289023828505560565817078904573095397137743236727965087751757668992519610578125773384289171071779615074777026651371510416874422132108518035907517414738549945213983006751992201240832747540244788229139148151041920263251459704136797517964916897598925055993895561577492937275637295124196977784711644689718577646249738394287065305635910424370453181341085567583633872619288574974165362321823690579203487481419997254074689634276639485664489503126493730229226140599221436251658125804896205312450550461814195338777999624873565779112407192990783985616221897095484248520522754977255105257353907371731739685031502547928588045476972667794820557516254638050937658328370830599501048731873685420629526407322517433867190782081656616977479178442091586549821083467042696598655497886723033122373883688714730053329566969305909291721657740392568053112681930782106400172916216896928197943665330079214597139860590544448189493378673179545062867288432788791572988578672469732766096182968311390429778038893299793346542155369531325629681913508216165925944515217527109292588734254690626034218647162070453051618441665961815306679501354413219200874154552270531581419077896681129616403602722989544531201032391810672089848246914375607418074305732976534323376838278249508498986755316283039344507452516643029031283427840390603007283591806675542158443315811660393979263376013505528334791487646214877277023731689378524386010612514282400851145578038276038345624887522030586213452671758673770666975790347977819791364674998242763642448053309986602092278802666814513570153277154284946026687591522636250142286861199334682632626566242755777848609547481884905771993373150130631117645280178704875884085611978553340523025167151302772628230426068535453281571666736125076832684382384718361644614246787833314156099869581037968046530354789260112306811849023412481665497943057873266963829404217631274281242461269051265215959105812163144685094804008219661143171968699859826037998181619635423392005991640939864554399150551999610205876023139451199437647801911418922952022122153103407907916233818831906669386924447083997283349949372612489927617804885998377135500005754557794482088275184279173521671659466564352279047212480591290673001767241583384823111701552262620251053321226033253780991216548572207861526080700765390310797361412341111188809414561386261885754774674925435007725921057815121027906939662831899506456936581392204227430445834117708838905315684139512636674336713015913491297492090924570462267638206011392113056147945893736265277063831915794379845176319041634343041830713542943017239230151436607775512997874192330609023810696644865572287755542097263595430809780843016511933206710409744309589947547240433262490348186114754127335856750595616820543344995632072651533229593550222669081875789670870121548133590094477581445783826674108581564948874390002812597192002583332931595649965746829551548076028382848931429401616943776800087292391523198773876095619487076745706726329648480910940934932439557951039208558090885572287285447328267239023352916412106150283407332542484511605927154760071186328300707018699880650649447677713618111352037324862522449842422999354745723317438401576198145153643188052818152226248977539694867216995930901996106510245393205851131899111826545392060946027916772287502451751233483979554475583383470460073843040815277429240511642045868869600437040549805114532805631587634489080910816559823641646194094696638812258744873917005580278263777466277941972775550105180047187118614312855021230126869168312727534700792889281075407417692077853594285983070940097531187098905984544982284678485845734154985068266372850220435342267947861860864614108601628968516130862182591123650946486472124147016065938093918967285377156172272131583430779861039491261344766093638839647771647247534778359083940908211563076284653775214712955892975797435537590902665766603790797892961863440755077027749837141469297108006396817348904143559055326990407157950141080074950677871983254731076711168216890084511786088328558338151822195770527434001265923029440890048759378860074173218728714535400737814883829420436399996790929040081362980958317314244831882274593740698759331169081665117438980710724217549264158128158945386734208682605295718438176115308259019878761235385072855033252480983045007864960255384983761950389861262881531241313392003877085025694431298098885317260798142239546852486089362210296285888734470578683191733567151393006535837129523034577810340544419699197569072799163583237277868981392609689435009418421737073823939205012470075619598904506785322730986196895926350922856670412990439288156917606493828800734537927678690155569219773329446364679645387762049449853362208024489180329066996954783317379332006522064403920333625877862804779574218115420940378876728730732078481269091421050174605662201479862691862522702283210044058544787979676902838656598398259905330331611671687240442016723140472108022255868065535880043105506117855439887863967211849960553909054821848226731605147946610118668352194665267052416887318641940264132391399093260965089150371213802998236395115401575635897863954146318272329163519523520916847234193331692086435545792877241762484771896533822755304145421795134276278769033941473847536037025943434121313859404178379146824227228515607957452665182542266059391845744743761337108678449833822317295807305337223967636839928309715714008792554080500421197855465143117404151177965164389656973603084533319096125184373851741273936652580182455679361920519396534902259680627773039738439231207707852731783673311193100055377096655059508785112232077829029852365259621206500171216995811793002996100179522728385465819496236426421106644954631585668206302933663117064401194140995721864202432078260949273636818241948999577015956974715541758833361160850410986996194563191483574276762569593849378625418750830056443153229814872901177540767277994259178835339803711838034255917055458643149901413969280630227682387450581962136255013135721544934359445990831312291721490979227027265835152853189543637072689621181161328227624371528028597115328028019959741318588196725145242781640744556424454774485716583630617391176152443409702889767866681400967911955461919999141794339687139817243454966809374762482613202949481669802459480944672431326530405754208042822271406424654790436305792142617368736342753424652531111232941520913614367159495797706144915446260230835583781846955438821843596749470199824294842001939801564574752556631098868481086505354458217226813182451634693749250875256294466909916242694600865241808569003552670773614635170646971703109914433682955067839046772972072651350661715727993138595445605657575956667553980444864406690059437134218311363644071816554072091443765443340885780652394442091290095590441587798529314409389514168804026170780985557738213241700636120448087679782443520928078068937028475335382553195972859035072234406119214703477709230692503412174906882768874617034646874061456430928785223677493464798009091573413151006086120996003654751689782297125844024447408314501162655352686401159764190218634644948310149657925847196452341830378640111612596914379555649275409542661367813739977267674391114182603045990869529431071925262052772540389218128944711075275609513264468186397829416120357552188270431200513494539999833215866658723649388217602360019210887154608085720821072565985743745829449364201704023400758186269204399846741605860054514995811122067889533769225692807875209969479696407447466963225219380873582625489265126694598149157505208993701484339431020914537293411882968339337960696999474997953790290369541870112556718915548340260152967395895962938610755574972112018586786353141579707569160958705719255514830254051650974721724997083787304182233306888195372836390311582993702755614913539514539192581962588988347341379530005178069935318380759518263495136796184609160677095228891520893892753909963203346691456637696734649446598712844884590884067620300764861428174442691421174310652772211699185128733958462289766339402932049044270006451523897775229524324714858357752555802856622795752553966550938949498119023268361682728489325874555652475337972485304903954879605152328463872912926136964744343289123238517810631695277914375225825812377949504507979905770196997059251344782766194972372372541571012817817050419641371557879004193044334241499642591726567505681072237201825633552111325107798829859086717338532546435625338353239194059783128102018398358336691149094654434609119278215448927340888770886790543728250440452773840599719308283337766899516192076977443217924705110508785618368946030315703964384000142825363648013271908101430589462526114898767751837362366329057147051537858528621292144046253257512829630321884303623245252705010006543092103557285793026400484918324884721350086668598211108304331652022129794993104103990289802626918789684576339280252746209398364434932976016855969688753824650212181859099768482762250387656573699319579172999908369898458239855530361167913179686972723813201586644460267173829702482612548306604384705226504025996029699455393466368273657506703601802330305325972114954197791299851577887564164105481387504028445587695739571290699075380463045904451064095538418081558912878329810272799957031485027202597950305341201229811578396832909521570812284050127154111833350507065768380313262925127786095568254245703987912790971688861713377041519083626250674094642414533631110193299118361762493757773544532706678113077320942954590932075137779069004866634807319433341404156827228024149966530603715049968875556882115448830580399624965819093984722480529967318141247550572089147913459257049323778841512258720928309257023685638767918922126489149156153630736277495432397096150423676238177701118257673513352352558443024268650132986522574173600475016703164377450620812343866734656613991084166621878063001704932412776413282122324014070676544123207850181908414065834104606572902270738926676688030712763358946858210377233118444826447179048206137598789978873533305400262940724600982709584471700716978378594439341387272162417445762270810577964594223430267435089823590093967020113472470749088849259865716234888546135058425358189475859662775627226221448168073293539873066293389279448408525264261076918596415625528223077722288044570306746862050648857287102688886309405365837203640302258822020126002691771758977381089109348540208854434302708517711928425798959428921217608719468741903860589817633199312265293768229921710019301525253797782485574974301243731808224120669181560573175952057548374105205970555620414495600807695810891226136624493657470834405331604081705181756748209308382114506675673059627776790747200507933562806184708212410244388421207230907206360869649636311709314597671661240633420722175052171173549558017367318585299275253746058577604316705533486816821760224814538870618854903289941549475772662834333049832913070987418811370970131337133254238840777710016388356087960593514089068311102007230138670402798476767741448876612290690969210240286979254160596039265326297335084117451994234904430331768744997241793301997950389522153479208312918747669392688790221068822775963632259836167751126848029631122622497723884379317749583585875013892059703642785569211038878047558959898390076646150203980177654747487111676158693944106253995965129387438041706378454889741103345544950655450586103268802631725263617318939973670209412538639875542473012660848162845570642092015788342480015116241767173059504537410181141107657153637973973167306744568425878246662109733563265085121390652094893090914053581244649088298145455824006465563682022885213684711070408835740112302829454834032042026824783970219205615867099068602835915679530286823010622664022668494890508608280475749048745707651590123886187522593030529245439258487444133650452413053958102976547703236116845879281902272377468795010450072669182787112592768007601193056282890952829708700669198534447946595498549882680473102940457147927722938998135227643972363589941786381272779693831788930112837263096002038641208058690796627712227214425772566470360319257717612480181839774256176118803505623386655519347867700292068167772390281059579995049223565246928210651878272350973834086689895420542998061029021287619445022829209995017765777259147940814717853130217265520713328412362005307524718120045017838335026292483992827328959281697683479574031555440170511811786020662868347046366590137103331772593138362538948339683360349437201880817313395528245594106559882910231144187926308173109756460735726907562657223770626102819558114278979267834222754305159985701301628482901950274454332995412742822239431178470730356707881489715035622097368968110890515592907695267293865474920885888555700371773380548390754694337474092619890360287068752979976933497390587222350828772197856046496917446447029078853266122040824302441968754414483912416257830237135887704317084886231142288268228791852334212988107653113934041202151861114947884946717505416578224255473401890585404480411536344438948928624906899573810385448885318639430658552747601340425119479738271468050547502440484975484320214917370903268069901813464946707861597959391993518517085580180295514605756643015539688694705749133466918911072253273402761438637881587383978781482920714745841283162150960707633782355528293818092320098200480672590784403621512311154049451884590256139527101817394097630864774016861654009877519682149737127394052172732289369456466964456708164606991089388843256267771730937752627833078826137074543203179502489095637387598403495084079858813151829045787413567634626988186718048600449977926310692100751427123393843803770079492049878984610937860155486259047365483222670298944928943281680860451090365229636358637842287558708836390163022208913443035819978186909802782463545677243377503293266134840529222431372798496498087262989768627740164595735787038147003235953827614120072089418385006007565870791153960068985923848215953551954289676984082932924788628321378889995956095985782139424558748832303032088678004516238843044017041832776334556201548728059090185271971565369821263034363301831681078206241202021462682334681585803748567558421237477309401783781383934335401769299861258990831027508766035141649055405996807960985188479094362779232833935843801977766013524279260502076783946488053468448230883405894657070505134651606534056755187115399332483439625454917612883016110176715869291721230746240514533914013493499407880611785165450731657669485650777550728386047754479391777207909066415047551441456142234174216695463212899134195550006603631659273502192453955560655122468242655580548545660596999880543270295083107237878904372464670628332811999917605799854648194018147804798472487347554947016627464617407134592550790118726033680623791092031692659466586639842355186172406531808751963290410392575193486500652583616304913073760790733354859056864701965073493235461270834233328840085325812759501350461601836579540394523404168229421030077054525456270175336646993528858487016238053789811893970640650468812783647134089173314898695601234631799671961123764171546458605807367434767918776723605905435197869833779306237182882783135022487770804801030442100533308509536106308388993442567772398858964355470184723731189266612969757740562708004770365296628990949439604590390169110247707486187070388711243190570008753776785957980801513741377409187726946670568468975102451593810187064405359207881805169120435275829991357152445454166877747922501862761135762382497999054042339721875803537182966463916036770819639076414854488916105859484594147360447467669587426626605051157684824633307503110931745021976242816768898610412699451765842366739238413682671889534157196148557237304591963994981939309414124272562720925566626765040642177372138560068712634106245841686854696372658851848130282149050164413432344455817635227521458482088586730594496073492129163178978827023663159872117970275168583489994486145819765543005678603312649580204426886576268432112329749445388538764262795189641077487965164866173669525723289785897208286636432955330270557637694108807813094200248440739085437767772086732713665207764261120240879236978945728004762991119810345027054697631748029668346327571893256456954118914153498362787560659542264582947557186212965563683124763069862357745457977960143345364622288343385543631904876712574240268970717474562247757143485966298586230554892375909611711561879054260072195920975005236294525069393304091144573818961566540086348554599899949630975577637441346305327798409220837577068892920911236467849314313822893836812185993818539822698725057316697348770210469623911645017971276373013086951313227014478023360924758627326035624724179159195531400502880819285655855078648132357755359951479967371240299222463132783976605858127091051626229281975835087867396959222504210351186553617045817573071329076719939135757939314388694513536690039534662800602075761338085191288413263077363309805384396072595479508594720844964921083558813111136044869857284330569794163528377361023671794089966377640339355211177922436776890669619343870369671172453663395783387773461479053926497661760437880932106174834203861276643711088351717624324651147804674517851407155205416223560494887754962811891056650886446558458451704029601539858043345306630703635400504366022529235277222092633906457885034225064014338213769724946449450879503911965140922825858838797704893287524043656070672035589065423194667568060408524078828646477741294688971804193862112647307649639708450875449231356966650350988763591196716658218489765024778691644352753001831439188776969081547982384360394283022669699860337256364031471617274110467049227508280440761401781061659970586272484939831309821399368123021001806062998942284469955319487850973436166719610418455187068752862668943604675376322967698620224714150500154370075442222300405287185546822681620676256863200553368318414532579727191334198336412480767604972553222615243494837470794143436391960825468224135168210019611360555530862246853515836698516633314287783824205152916471561055360514952284422701641749981882947804615869391426482965188911748411165772995224410047221892917891015322486148009070177262837791029590353102783244123254193575492367165153194189171872832179623487759126816830779574275415490971867343234863537936563136267549519976396052335226854617507080483794144094419192188589904280074671922451496294575241102481421781871289427764204611650928107052505820061302151913246131738309761046332690297451299617033265934766016647524406781812251261498210507089836270620026239070254721383120541800100354426159656819853744017464392782001092094261214676685945862548587174118270113982200982327737051361295065847968220243502858118651629430819864581285510959811700634687062921374297638852013628789947006957443102311979018163152783932160265055637933785042797345591236463739731227707302503260659142366416784672368707612450558185194068890653115510562425710984489615498481404055863110577013260302675851463244584536486427887905057704452398691509354723779189217614327507307917601148142607475395573049256673166088083852467578055243738008685476860075434304615624175351286053541180980545598471742916813779389879344651959171803254017797918197455411029134875190448029512176102996262537912101709173595596786027601618668320124025645492044755972785173917986541299009078729553968551413531269190195623407290546490045352389689825384190966930978473387750244464184115069005224646383380561873252909351457086539567725653905566712257837662902995765938856059125241063514677562240943061205780914410738786826957768011776391082480671220943128771674805126593884597879560931553796684038962690751570810453733427635194900511763457651312469421617590831369871367769190837321890097320424186406856002101885959236956485330024909547337588890907958050556830388788674407711095806141442965020055299946590325350409565562594282881114563992608907131905443926128085051858385609376668739189359790284238815513353260994818458008604431451531683514006735056151979297172759431171074212101291062278205787620240528009186565130929642772962424159104055692462948770894589370796356235081281387725310866935319293331524941273393476643571430437338803139055947984861804077184176878277228424044772978865912581191808003795863283866784177728628787127098360555570531989716430195757143370418833011930742470548737460302881094287330043717641514179816780656568031214159700051644568898877493473738521703882936825315980444358522896035360703726714081153150336203250461145563726920094664566062860400810009376041946070110986635334659224318982399308399794929512557401226100724031668774185986044695762603074415658751608720854519358514627200115633635989006445941049354456973702710469775071017747436869429903999956135869486606301468004931526148651224678192643277117057857058045276903845226111745291502641184577828828086880213679800504835954802263288858974076900394602602279850490080667255098325070048267573336164781287521045610099359980697373158004763223002810726455920387909646263729449458502233416394879893765224370492912980901686826243350865887440253655166302110961682403858214764381262714143012482849318152348354899806606131619768072679259736807757384031683677742946521748306168309970299726507848010362587720682635519785049719782951398369088917042567744312655099353469158302219627237263629747074807540145649313665188572662149943814556896043371093297922620354924600405487038965581559351838412248193040368858677787079016028105394896175322109714647394258183283240012818776538438709338149998279200552637327927921145600664503273891194785765928353651613507831890157179116646066053900763336599067357017276507912184509318467157683738822180813486206768327524560638020428695826280661394412109850917127829845723410510991963692989210246262888532495451774870452992480638251261907080055333713941447773443611119444535245343568715696179772100198486706902788414576548330255363619367846737210194698750404627843769100259246832307665495218562710167785311905103225109515687314135993700997633815131646471038963202046902371942419546305329789969885100777606802507982814937703965145534406510563668108876172790503930528892768811944743822901781844925650942639440443297330996425891865161477189030550382142083071089675224974990699409858469941483451270030375837630047836241455460331871061879225791199653660094216068618976342653843451166172990344587677015943887491926022184654661274848823198837142882118364482144048926242854297377333208662677116564861728308985824542193726566638648874603927169879767583051827068925288372862967777678537151849190592426688592221093174060222946581858645714661644611474291094696188498795473574355512035820337618717770389724573312913926909896405236304476888300627335938956191451372348346930668191358205190264099535116246192891136316625160172707458370989862366926487177222654799375227056050619186224635974047294923981052784678972926708874476004398635891982759083632486233013318201656349380874398699794780779400281117805766826231210620351209373121918337380113294367727712919628292330624554832742488634058217612484662643640129152146560067878955723417196886307180145409263368259307730546769868209664604877582242261526675864831512363227314405127852558531358766127817224651266796033194181432557596448875489710148546997190375916707238966028847604890369364771225045703584627472066945184363689156185428852225359816258282243366258795840702509955388785292949163395915308628039372042589162212628870818433015421912974954983588760118565640168308352434602831297638786810315011810520995000907044826652296460543797798224253332544037373989894446243875201663990419870651138473955076716614033203291867756447907037186428946206689190383570364393960191121662602244209740967091191442894748401655765973202834330862305498073899647658063028431390351251485194747719325406906216880383246579625721584057500490906533363318397048335318412114965354207029316607104210138303996996400497890406665714896784739635668572752232647993739176999242904976312935710687431032992658944964490223495384813874338038490177825927442006111377463693634434152046167685317150378758479739091616741220901934155017740517814534412408835065034478194475046483275249204793539315020955237944459363101261861023699006798697993013678547714615456724890894804522449371926725061218861728442451846262992643820342276428726711130177266472432499866205149106235233960895908641026151195322735527415850319437291911451237903221266555517835699284970639122096411353586590571242950643390027959019949694366007020330506417896912348460093199403597763803218747957481930643699947585383445025945136879150339745418895329871213867286876963519329608625395333161576282215676450763091524100017504788693681115651806110214523010820218480059678937323439297727495010425983181112209246654184945820884008914716518825896989649081527134452646921402681576670154217125973293028165910697095459882117113679884907857735254193330801515714169635792584224798433787806379025204000217338852152664238143169933176984205424520566954603661948855644768165506688967827407448083044443877121579028135880289315820797497811227411486092072839056471974241666030403978507551860100298460410040464867897994204696317923996198404789990830635256341912828140115869454152402344233519318886715866568771227848300830806654861016752057996735015031871789247646130377206208727505291788563198815358623777993218438552392133415410696152444741273648267614146877216906431934804363295358643776339150390454248365342059135565085971409219149932045429671956519254756130862195471378378557955554569610435551799803676532522433646459268956312636850436485089055235185677196808612703550552729405425025310058323551422298879333634563121010649998898715071042864516271517530434966264762173923501579669741920272930773317337155622423053747701893323607724253882782279005407847974656813541442038177815317479234862936881471402161601197854944534247462864744947745337358457906087184277289385373397798093475095855224843592745248482825959853213129378447345465186194920958622937668188064479466527007738691538805927091052854357645581338525826096572457600874079588831143716923673945504328412472224162037275234864829154157071909733237763279150125842539762101228160958581955130609674273017511283160316449124773209080294199408064721638009577672971547353946665442316676683017537278404776475422961034928683881428481768833375966000163410984031659404638967318594994310453604850512644192913889215245610278840761069436553858910741948359296372292354900765203265046420381068374950134825647763315122881511900963374036561184177037330684118730423653617326824094429114443711505516813924587789405049557956346240647922749992025197145431949731206556768837962312988015491674982231752596543345542570447806336257724924935329566061218814481674119005230162602818020390610216069369890850209323118458806452380704811549798084897180232920656069108540548392687328495615697801010911120183402562042399697342626867424233802522821564460750281921105704824582711381775917425103278980929346246154113764446273536346109115005150382738138284894127140451245077555878398436442891035824257457612843447184418802660601442243152264567162725300478207132560527430747070791002471796091676941213454810483350582332633633292007151779423828963519512658893056709086216717438852684215745297535315603941767309369073993688995558971416088667291507836327655209591477045560885273491050631540828957873186771789493942069231993386275830030591451742411517292138234130375515731292208169646757559630231104856953001973393175391345910145808624502918515750371008817071050080886405894232796289958834402338829008048699354947223986033921864271009262489507824594660952643955929976279645504769825451139558615886999074040513484087372347251991517030667923345479446779118016236000712031532060568316261276135122137714694032714589513150224108663771398877736886092207148916414027262016080130236179659383736365629517703829919562790736243343204549350897431797382538326806289455618064476605097073305628063828118317308544346368654506717637558141556841343622466395646619858191355265388665601881087460223065159760971630506719089192582588801154380458754148532044197108403464814899681532289559402968151213872224454350354171647027074681879286940373437855006656889077282656519677283073070618146543019493970993739293598561980471850116520634213583881316152997215535997933697668694313049155951547342771602241365872122858940461395057491404792744537862509511173311598952040821719870040628538615098824429559894881706778911022779988347494295285581636526310281373243497168014698011479965998717715763635652026764652337360030220916997469722530557099377186313226115244992340220901089935480353670329928337959497234178579526871539732724779045761849341175026663216168384416754172369078233134480377000028942930720426107825271258999818169397271269183626734116075587408489486263771501072854623211812064574374600888623598264704425515063667811168338972336086616243630625588812418980101967058412202245726659646943356630278148609667360608138979331703532094464261637006576006281058146452369944648672388872396677491381535620989194106780523267238164543154724647797531315196972467253542595318125557246526215739873530497888107023485286254265586343402954054483822605538884462223173806476862499195097863146963274445458948917750297908201670070905912346205745584779725719496873649376849512553363613203139142244364108815577703487290210714813460132192836639030238297654178919636665852505873891051446771102452521727899168641209155820197338293363231076124453760169994714482117221737960107869352662765945145058504244255629979367869346623410028555615218240783488506236781284830171517339407946625480407174665398977941125756303498285637348722665443344077490242182486576122280868215815592712015570395899264380501450141628089225908768365258989623711993863251810889645075284247737606665201482313833730643229419466249419210951878706608167710168540480984050553950672930904863464524498413840086197958379377414487584131955514837717800154594237238075484276069278512298132314894162764483288340691348254734776869001876863969411569221968982402252632454157975812045873554254078133068047500439563251625897885203188232510475473863126930867828700031815458626040037297444469526125342924806402003276050836273363709199194341333781914361416500225845364964718477118239050220477096698756453904821887136290749769232881859562864620446816623334900776753237273885516896790428748691533760419706011796379061397279481524218864202961552336564641329247710161942763428187151965860625214892741710603664550479387897953840039369092662070814120580577802798801296705305102396393674691446553910201006620545141250028873058632386590141696365464178964016559176785222257412282921178082528960233871040145188077500849518144142071083963438054921517610551606376425612643987310773082095522161823693935237499873160822220193821801519572721751693768402435398060641517618063973903587497223153981953764594238392432317331663229627912346875510858751277711872352607430977791203699107393288064716307913556591315074010730971917692231019296568498003883817996328259141518103319622882500107797742474828299089217952926329887240882130872286163723831736003693517454522802058606317121105580722791902407878259677164652323993460988182245627507116381241707138278840886166711614041479445704522767079917924871807874154321139164997221025754204321362931644547656803348419532772876066045645061803626400287214811115556052949874040651519117042436374549105697638885299133496188008001950377707160473555733661975593730428721417634367406677934216053631814469529021460774677175996176235172430023300988665008920254467696910255924997904466242151891497988917487702128081461846540943121154833479566254597942812037580420309139537908481872200444618538376942027722056222627653409455237229724764714487642598757122118051922906619676365385642473948834232473503670979897438315069178862913271605914766254675638576380714574721478948625283561092853061222306178981557753308298570651980126073029012157163592593107932223948516918916358639815845058841240988802720993256018959941772020728657098193397080803341138903426529607939217653942675273150429520323107530862647996784431962762007037741658141674317654152796176860504757610372968079776906309065049952709194411499655030057625526997112322945527607628124196520303310974192156735977243613981393046156229407976754901500656614257536645290381368648387926678670026076727073993004518293588156019318499912886905321567076271044409190368483771887064690233042612628875092924726780638929952416471633008542028169718258713205253053126410056803319315949382668832941088425319116320882506923229134236133227479574706267627997754766005687863758562281115025356844279822168773882261319791843518823582832418087811094084558864771338168530511994918073716915943303486501623965951196251591445816843155997728743053600002495449106765533725258394249672188828636385833440354297254679633336425396523814970785643368116048116005143245408405185172606705823172465658342556858967800406714398933621370759498497689570770830932100116431993533550040545232879600440346921014164071800920966745295224610974457335968012453226369593539821056734115297124299471863848847177844894692827189300507857821978664308330407984486658842267572721843167704041150801796942234963242344649414405197676160427251423422684961723831474390126772628692825961411514272445654520310930500070214512381885196078794949323201702053938590900650453486716597891166270368614690785911902009978684739336928693140418736589063439896361360532775682258760948711615635975777903597671914326436826696440585835477779304362524660532374972870091277124432194569926577842167437791435061566018906980138364104297527834569953292723535467789423471623436495362962892040012353108070887001190096019487731853555060959625100303463064578388861913456633427651805772230799780144450152435171257976787290139487847322927513118614181825374290461916829623199458022834635363417505231061636200792341636198019943378599670655913469113783187361426653456149733357539865286371531161982326205975520555253345350064280271645794503762097675592914957206862334702606839573075399017719421112012434486626094930448661136081807355228101610497684743349637901236722528234950335700563621032235380368058007046506804315177023698533071666062015175783883569794475627305326267841220604889981369747358172953113745828575951760931703151537719365844878176329146108656234457237345147117714621770352593756300372494605867448370602392697574998066692760661058225062563815233854222667149203463984535284145971185123887708869385646514842811516661771789691828205759580682550200462213491041261624426496367905035938864896706520206229290952578322749912276296897548023749905875311210394804897524641434374122714331627460074424132114129281337161138712072243574223516897449602142598397516589178998174741468409310765286415324889385709460882571071297487391114959293427315626704590111500258999111797748315838736694035092751618837460916578597095604930408781009942124769614083350131872129827750158826208746406378237715836412967147929408269279126585407170079650474468151017019245145873330393832566084125000863786151020725143683908668831415797107081904372304475838243130936555892630700560599347971667699899208779392154574735356468732307112918535696535922253973384774736382478803824499735134126330258207218751124374362689513629188453351749863107772984948554223212567105528735106435778143514604701761536046414983228092239594606836090947169766410967888505796684561026755846351739568943522284776698987847125963865641441023025428377279030952076591131351585522745840068597198711843531831691281002457655225376863843615095438681061157419490773985166428343568068559064337366516579247755947612318596095955707105330081966380678762938492543445602306513320026897249099370876816398684380037137876292343444888495651369258254049463598978591150170060317205739081749874367412252137833429094697314906054208551071727291006608858829305760487722552934824478711968186880347234784275058604684030707095738791087708063129752703313391073792061077767456364707248708562101009488062366663846049870393736369538311665772572041830307302433620011483121597546665623296561550449276992990473092728622414748035510955196432475269234496017090988613543246582078039494187012978592939254383212110168176480642512929923452976876914479892926451098626909932261262318100880725877007518456436011368767539489316145398083234037442710135483949165333886081293103843849502212052651742431546392155568487403726215048998318427422162549496869586004508051084032251279505569402931552394300410691914875665824182062231655533659457963946189342628766042327134364576673500729704728548163217310738534055115076609457541740329111292894445366048061049665557481004704401978229890008276120848093214052507359105485630342954051750625389020328027841754919425174375598966349299208702634111858084670577041043746262837690446847104538186569820420082094273725389203458265032113846695860381733908003246745501006965269316001840813149840308410723300991296708341797269816435362975257857145787329270831986945774439948505716329173878659288676249109253597606168035846971771596237651376805328333093010097896789424292506931551413029662678777154944735890482388345646584189261302522753056035330363892426118068585979999822837859711726667533207140855029653565240761712817027130288638000752569889673115619177845600889489852777828294160031923507227748591605546558639098525239872374181099072937230595273021793101499138105159515196239872813554665928556967551505140999014057112059192283017447191317042842321759477298896994285159920269789346265607210115490329128429220001857511961619544852165380013802758627409169144252335309824329128380941107961010590079808856946296242670798451539774654298167020399427570056369317263497264751451799047127589986680027287976234612273272063488999638606882824630145901746150582450184083966548973425231931590979858434724109641413289338493397020350750500512020547627845834917916176910826568387661835693131914586673883841716585125622031221692617022311006928206196873484993622147425219220552242956500770600507528958583255077047824745497617562591751423101143858346814948535558706331313786330471297196707632847146167197203899772050264547951003334693222944371027893639052479035506755927099753516116808228552265920093227297567627248302213398688325629504477986987137693217063027371964231568044506756705593951722211927204441793913335252287116913486515043227107885917884082219728581397082826504146363842734868003837782897490963948531825840045253807479899400681338696992256079010559613088240552387014761531985757139576877355016505685209313646956071713894448944940736389877040918771176107696320277102472027294746100661365010406210922022959863313812851162214933095613470628032026761703165657410547745549150449997802285693410552678117368282068155460256922050719221102716075321773340308643199304663482641030496341203906292401494560072740159843960786704696467956354669841365049756254167623000975445404017331793558880225165857981252877078883741585001426185522284518855657154241897705556390836048592258685115061004001124262715820081152593779955613397099536609892188782240929792364020335167676959664652857188090662929192240008363303436553967870862258236746718955178507783490047198012262046583445392483388197454014605330867767279422930491886010231784905662124755357539204225412840951994646317291966673948465355310235922831499887492215202912492889629374512683893768069026671145514739676924122818865932431999713488498826604259524931244266274579620217868695486056460780412696783499264292966166007943020218660020832023025056320002231103014705742533776960652734251236979652656371822044604331375399563093035113259744816159389901381889421633008496207056345313181016712004345401907631859449667013258665145582005627864346653798385001217405039419767523386328665058796784657218232004889006943260080000769886721225359487804565745377031745751216664752948533401147231875798818396229671376487330691195569304037247607316526807917417797381138965854583699287407674615199069772117249399016514293448583970743754140959204520613314540811625183339485459296493040770713306797311383861084240851060892837044299044910256046487898533541769294800215685088600119832501277457046802055178703035646005649664191636913898937764913650826168504821118440406664396890029062807260802392692174133586716986112410521044222117251063649630387621882561071942386958859507011932084993664470903754105091332411009980576041487894102391620456013805877160037282037877355526189101872900215249109642336977332337290548559473058943992109973455800644886878758942409703669785314182798384774579938155568318703006535959464915886221030555613953945536761094921769955822728021701397139060088513947333385789940950360365234236847832634786655631290186445224286761181447057477771423671933597345901782146016079607654899584035191601086080766154398459510001645218308424864108815984093444090669005541596432933201727863263722305781368270256277502964716415226473654046461795079855307147350318477014626770194025469804672866742634606676502483742338969968428531112287641961344235964787075561862505334612137830245221058773255351247974639624847577225137212776333866909311175032256122096830595545246724438002678489494923948775144867968136408445765652642397928063251182339023013001135465222813686112645269386274944623192065442777950826564939711820937176829649797200289337518590299555725009125032292414380090076173342198723593581639254251757438305950782357200759725529572877885979007540109832028087206356468426791557732355442055793229190553783070891568953403382866315595794993251606839038213604041991269832476018411538197129705372895385220444535758500634955468108266854593428323660498333119373334221554100199712202989391173471033213336279294611958529430104256331243090879770496780916244046418283708765292468649817713802087999431487164127003951258824656693764820325682029035403674533807089505868845152556045018246500505572438849230575659962931373266276773489155237911983809307985680415179446750672112258565071135803546579849077282001832303560946175251150971556901271662597547104475973496574464293512351655726209102180158369997359270715532784901835792686239340111369216030322395833288842265343368303104247467262898768314038491938319090465519952263983364969984111778986154908204507207924194458256641611207863215662437771522864471627426848912493197108825655827244537711819870364991956663275117239683879450626364161872195280478153747418410503228236138462386319829963184001108969953068323982631214721041484817102297735275614229444175759520718590633370792435993679482102463154120754381722049112738606434309840040287808074774632923680970367072893760761064099383849104421824308113404388538554758960571183753517752992211628887902249341526240239468806174019188479741853221615783692264518400728760174176681647759823466238314756562430025969361811488460107491519345339984110147177059956557269117425462739210926242461787513557443671772641593860943721965654234657431337175146645929740431095545976132476914964479895040264117275561105470451742664106826219385040617432578709217588864209682101875384216521493583106237002986519506830405888789721728085354420296381981072368213334673390538648768857121498127487776424095433846907153521130130340905214424194650889168248636619885838283742538922175292125416631988124517608203995970538195892238064867567326973107011153044455784450922493637803000302125800282823129531113820325927742306398318024596291540723421566656502251350709698887264693234882727780732864153512893326381773219446759097685944030081406840719773397997215693551274891838659247841436095338831468448216791058463461069646144154035299153918513196942851927978978281628960775751174219363872866500744359089849600532480634821715558353809142102675934259780505534147896879039882352756102600146165319494216910887173713945306867234559949112450586653753911428192927293899223475147909997435344537199499696514629925980183086731899005431251340885870965977900911689425681685296873554801919090703096684246883504528873993460147908841843976728417684942819489637867987092961094592312976298867294891349176575910126218075059307005136469434226477391007038070123056103832535583265584700470484318336275007693182536113869317249126283969959007964706927452016357168075582324906068210111137163017507417078244317469660546430139953542945803411203553738858074687437480931310081839947530853607430177827683589721773669930268949331232808032665922630804256479347320228545860220110662385762836821393593114293249023039842378216886149484454410166509842885156767568540243047160519973604728384239422658973987882409235473447616684198923252464727490607775951300816801364692085186632743728023695522600408597451178559036937351781524396538483887527888145173093228156597942024126054738730025011210412562895279154845261787746126914383277545955922102482657491347995397447865964094382080082711992500001126267017644699409899985298694126299687150546072848007212131197285742441767467790203542546987014903703639523685648597404005706076107710977980792054012532374917995730331523018057910233906209622831359927364844023501080780163833643074214109830168705956175868161270183102897209232552040207389622947095167041350209497743668086808161565911298350852296036157223075848879861097881327639011557525322694116740360040733532031700005435097606758537188720215387160541018494460909893093991606521756989459219026667642088022542770049914512826928179379585546564909383766111453110356836955815515080752315999076368514809574056707804777065499280296411826594577888007084212961731115759620506016561020560758780080029748750808091908417756308964914561952300938893357192365724548001572129677962301991200231674387707412463953272839281463385497633328475398466829273784667842923760261034764062376295510293991207582216446905401750674951247414624494428438337447737177206468485824002472191924353912501966427963144435679708020815221725896163747039476272052248671739309417232016467943006703909722174170889182223128955017380463559083183539960574994201782721573447279009133165085737955268964883061342129154653585802508748639564908835148418584652216311366710313205478171621493961448396149505809808192354873611594506936024423787837386741605684236191677992128004770881748923700444239519680791104516610377607136584210657524743529543627018239040897798362071823720372039145302811532737857350792190119171796115533307752017074804929909530115850904668601950770055205397215363359946443822087935389957221162604954138759474513696977748844631899011740495079638715848973682747308647880144628197408233580211847951577275849994067074398842792199052684563894503864101626055300019598965786517049081042867888873402226409526137495815072238761030272788620385620993639625978110647901246151636860346383115380598593580353399211417282953272262374796199537328501632241223994519278624769649549711465456497372416479791794996824975538745957639076978334233540475616772630292099024846677943717005236195308943474900275143540968305856161963051118584000166147392001044521214861175633019160827290484961391201784735832255513979648726489963101417306939073233141612065108274544046626634605651966891419450611145904456465015651948663237185775379654274367328998319295980934718580798347642782343493602875899408411354478999654099308448196402492749389810664343855036971993727499750468265484902847723802012855598049216668489616971242159434359100746225555505344732252257206842084316189538295369022940330434389976359647906032701101549754614084268838571260883985331269948848059730402333211769763172715274641248753434263144895720004378284468644510894004606718983058402815476853743127184699169464759196031816692146064545353776307051905234866625015518292436721463402326880883109263735215132753045162860190636579252823751595475829540692632349642765025293601886194289321574785156762167044145851667409990089797191578834281085671920387208236664702649884198034681105603005695585724941392345023627852042983269201610713461629177535664026602954985909488886248126818154076219792874408041015248162325560097553179777961650091337657720161392972385241480037675083683878024767137649915015272785534482114748761867491040692638554568471587032001424330301649628904536661774761747794747627439566007308962516350507446623976207605719181027442810550111914389394345191607956381030137622845962274831931406687275973054290943004591091559265070069438721476523742948293261681417582911028105738727012184610866628775601380139453655830483847888505255682286989131610438866294302125812208386953429215570331343424142929683200217088857251578821089825441194683259725991113926667046674338691550542772537506449693764888558864938334923553779945013984915934567118964090134839596626620616842388015358432574605442560291749789615007899963003402122554427399100836771894866659009892335224986071638336081581091012157447256653507827960444407121113268860284339214965681276758593233915328441437413181164457743506787239391186650360846333056560571152044856914892485374457215216951884754248225831476712048654112491421321057765316331587437994637468702336476939201585742498912792261120437541044885051981167688242222128508731272750310274326443363328493002705096833207094181454509384478019121712012812617713151460832446021134237090534026789071823503297386258860395149275220659180005506582353411467859868255141327432480288608956529998068058258381178548139816134634990787970994463985819963670820809856513847616172247656876462263555818415656338175923660736180919670849133708029448635530727505884768337405440106065875062381919208103525206158463895764738572207472657203093381511137173438847925861332738406445646120730207656510758387886069273538570295363994453352625172638061443710509990799675090141321380196185701258261825586142594405944166379768828093655930663071289482230191970229281580573367833283832576729869979734475803098842078491176354316575363550841741362899223317641830187016829740170537918408155845293609163241553048557524438807085468332303475026076822718186129503327990263964414755961392611662621976910492801370169212220917576895458613191289363904443287369106108040436414802877769118934151433013673804412714284640580315200082518178798254756235338230900543708344938958497662128006001450478607358434169847148023403568430226029815141260857552977174937988541814219056063037851293161433130107277282326907979494159182868737965535480340015119877369685128800039895554467366535244204017874852564211482044544449558407925364310858383078530040681112454263800233397900582103062236065214403318645356420727505459015553775303547855317847788957064862713355530248376616405494007952838847256880778232210763705908589712346860008119110039931469362457010507934057104004242218635580960012318941238929184374600902749949732101206381067500402489490381230524355394166334326331575031669599173592064442502027958816009374374721032538159698490519167941454547069779794388757794030355283565306633649869785939436870108876988612301015284471171083848911498103707564834548251626401738151613624879589396133112382073024100751173999546745735404863652328157084992509112438917891231252463956347337972041121492846460528658366788800047691756254216736674381665512667583845025152192766383534662937846733301388991164605393256713461582758445334454780131780724587689939407264154181391736191175244667682670012589131155638074763636250041993971832480318042093521723909235305698247668102448235624760919115795132185267384053114590010495822442778545246009042341217473513218693034545123192340002177538082752859987202937062227998409787890747739836499318610478579933156654747649337516331424080897687868056420989064976138965063305424578598757415438043977477592005290314423267152770218649420653281673224158863919590593326015551003854573832740976439229233162960746642549071971791637275474573269459073640839531039443337730799738347399800053307691692953586611593908780278886819919921954744501628514162106199638513919031846091033038224428488959978345647989748849880426248590867138828992858100202736696873576332948342622694598370926849245078217558947982628460183409565174962802219822737942823534003055804532211123771185469474476019739143082664282367244201822836065184435659656975119452804127147360040268565199023826762830692982317473154970562447680480773916024020845110854433772235644586943095569259714879314891531748370198123850070631745270313860880237220611329888367213981823444529734896868539468755568519179773454819514203580448755418346057959741048614093914645290320537976855159840322748540479375881130500191409402196067587998291715567451253579739869344737189652201781094907380594146711829737286293299977993494648886991031922739381685565043744703041006268913010497426250294083215601164105534227439583268998779514977367085908234069333250306418108760207052554461747156281213071363352667797698329507214934928337051551142214568061209946828844149140837430653196465178112142282461693733159572071267292297725913789515699422657691193139760462284462954323513569255744440591482764317568200468557877393637465488659438086990365589085745394607523895466632624829775769090690122666650261255078482139422952399722121588681709759934017380433067253897345265738948186564629382639644741284704390479937673458923141672673844546962896843950432198949304958269816082478555119332184165780683458627108694008339795239445424441674083866457577055051205606247683474523164423506722611681120541066587971635886432438425390251362752968257652693409865692777554371542153725567885613467927546766518625667060294892298049061282678935287217399206591776261316260863466092546150865244073500730511565174919444557102301806811185812416983651927979256703213967929017508051230630836048243810240378406936908899782153755991359339265191561771980575326594952772548966750002513471243323566714970450625152563983585279784053867456336327532885266348762690081993805844817359750226198026217765305126669585654734522693882743220176365691840926004594190304483407066299750796516010061343285976545659269455298887428595143501974293543459172684079191390978551588621101334776885819277351533314151011245700607279959742374136452728287289823071534462453169853191547221324443899544608889593254560730211953113627558985401501676038942879691710701650114214727005368721108343548641284696757342520508444052273194607981961620835291799326797021832177524083368590905996003324471322346713915557725074560854980990058231449922409538260541556776407484273635755759731808981937499856271453226817026204095697965485083768506806660870666391284242849287676533178395916714477322719456673820382911020955121606848375063212022639857883274522711253465990469088209572411042253426121107520725502273888629725328909400785548074856282793551589800153107313309038437725964015352555873297229839088981180767624445147909797221024397839167162400605944734716977951941728651653852082950767732826671002877075766027273833675471059733170369159960386874270131495173715293552646717714883030383092846097403398007737093512716089526106875732949357693959827437325445396292402364151553493764545587354686430520420019100664639417506206417211902166690704251002866068208245899990953108507910772749081991616192568581142435058750020829533357885633038863694223880802569384201581265763472872731708754443984579215265209461071615297644122195904294123354620587538284065285376410155540084319836343029577444889980393760861698964335404894342212416933693678767025973987303432458532041646329089904324678222330911267687570544501813752719152811957432248291147385503057011562632132339595971149809148219028195773039407376296030550735062052776102111285829187605991481842311677180649304750994455569259710989339460716109758786992233724623776061822524194773632421606519964167879377399742832168110275285634428923566512196778212990848010884556963109302661263176440368292040252160884666500255280673209449654786106752025783064540395641906411050109580502742906165502613799174825755481919224599785069730996443786435836812798514735568147814424696790414476977452953334517284780499387768338361098210138933665513712052907297764441253507236729993783101968913837188036985262352599576779542399730332628234577948777355403466255664359742110157770575407532247021141564041995353147789609370106314059239343580976426240464580166622030778398209415897187813893540362639933190210187018176684818450537273509458199761334257878590425956243271471144011780281090204321451513539095689690147305295166146972101922369216896528712169529278670457823128383469187448546913540247230055126601195603839556142786972842292224143209058949466484853115678823341512988601469044068445837325783084346040611273665900348641012022885594412783552862419916002831671068417163933105735130237334995328054781357124541346635204137147210666365596691964006642583910430913300419628377896072038059340565285644312288859629406576510254354265271715785693223419137078370144381638168661779427182617394628608856754623520525049010404763565447309544213842431800213561453926089083807787048322725874709127686929778552750464592295402795602868227826294305982236421921278701450824878078677889092390023559032245294347476242836983329649405247654484958005072557674055884074557006924961691630110802707234748852961751039353576008176703019104311442881686678331344374711777113157800744628601041208639683946324884209731631217973205037841589680712859648299329375359753411983260963590235871968417432999294639887308006472792346469450509766111353510744137959792518990225523613087590358643370285745264769614886194125025053073912665943983725494065979669223332658428015089127526898566490862621178652399978171287343590262031386537967081269685040832301297923391975216399605562606126818255219619703234513015273951083193024155573778473591564782985169280110821804921941401160281329688336567908499953951006959383419370678791656078773007544186563150385506007370319178550056993589042937154194983442120712009946498776080140769378485250581786736760012009681328135148554727893814816649744506740291091956984331765210018222236611770749570081315919558364608746817533930623066622102261683568811774072959459969955048472871492599072762093227603116000107823396094156204337972281375218228453535360456388486451437118636092152354414353776345639989108413478186515093305412561660613792149190066474093656100167448933694416496214303105287325249026475399989534521188276203861975091190022263107819443393133332090270792377926740290179389242199486691271336821584987181130698217882308399672849873838771455316254334175960140575346585141022462779270682712573126815031712926799428085788651872932854288094841433722831751968398581571797657474372415123665599727437280433076489186366996730532261954357367985605864587485193341843879096250129148810741559927307481860883556799259857806127584193446787959143816662230739060229708719936825584933130743584099103090421818293893098811717543059215971405317053278277297086284965224839069944624364834019503004265740296825149282939667898986976255539394964397789777243108753369640903697864008864171878272599119823383329925432147722114523432672756948917655005218755129489677861757807962663331585745996399550704923080987154805875313333066898345114248858505389771368495989088099540874347131606345620315113832926463260462364954324980769658260680925410357946458920636191683438890483159939456561042808944939607444381179364002914035446892193674413614552735237283012950774602002752464812531866702938883675275045697057883127202090619893607912975597390536713834736201584456341904982760398344843637888481385725654426578170367114027950596034617906579141821463771128884369392916073255975421877916783418162420787448197440036365501900144685705765783257933016136665608667711259870121886050908549912776307716335294225267382213525118286061340401896060296663772511570028876538347679097307931842830481053918216209111375964206802043390858135933994959327644818395257767289327732533310432038828873228084124037667800115542553310113944464052794859381291360512642044890187369063146643750517390055469855132416953097049110048655253860615707716840522112992628276103896761377561594275305519730133832594481691065340691634156569544332625437830518564372261598665739854359140580640640811219825772147790797672118341726828492253456866818140858383894264390697612095873143888810539332849791080817025499848064526086178051902609953616921515899999764350704070033136673481226661253021199458705040302809694807557246261491508306672727566854873999261104487857704011908730321218915667569076638093861003815771442581960314430421838028936441123270293238053110514075107546996202772653861169325532322116675053734976274969400570792588555336480802301331682802771002572832925208997148762933661381912055859688592580211231468725187392326046690070258673105318343563433308377664280614141035526209553509900789437426291921288678389396278100211357255663584882844856763021324336312175423804936265984067884738910539998520452230591811366544490357597708091361276276089705190575755521119785043098746116502018929741970772748205355681546353115609277781826153972595755009882945762944288072969547136078729786658038086440568496538530679404676447430995483479742885587536079189980245377191533920491693060174726634730784251829683816075161135692741366196642985028303379037524151537374098679578975207186360701408437436816011774671738908184245941637199580736768540767733586252825459008810051859285840707255985810208885179840702889279230641317813636951062698719704341741315017830090126801205804558971055016658712056307468857484073332697727703411140724543133104891155660446367061330006663199048000164442000278804175138906927359853119811142090135731866661003030473330129341706129785572924827897075227602540120866338520678273917284100991479235346275905029448025510646906083265852412487751024656797862807080620778079650948052684859080233072490204022644201549759610778480965414575864932996049155324116844858733229148405760986299987495785817109245023258642985704398318210712417247757840275869626911293957944615811627465012284418896377352223712945386960582328426893086879340259589430219783455741857502805702614952546009787345814606501293448769280855863868271025054126444694174446626348160635684691616936497750945940898244432389912232680920293477692281862402699575555777247893312076028885254378953086901288653369310547739176372476232543356735273041123885027889190888621778808038061870743971023277711507823599650830060962451499093900403072842533567218326209016958113156803729361012608820085196111389756554338468290809312765437053078965510523832068367936134293003005884569784824699087552267190564800772047139471998898374368574090731241210670103148176661796692708989740752271748920032269144691362003477540342404435934333572179014160015030827409475577180633998868151216522321666265117273997282320081884377116113064441514646790935528024655234846488023256724312145586487904334161392398438416325058742526418776972714741017314464998170748663194523473797385334369620664500791442496540341529561695725051394636184490451526951592008160005698853817380248693671725274621450379266037300922647543196006905346547529759371964542048046345584880958882498926072751877751915614794287674467291502382710181662769705452831038678491068317748158637608548486373486305641386643852525372845924052649374452633749668089473722965558085066333276488519623567003431582706495406779968188227316855252404975612111557202520794722278380414925277459601100272641845722049532543665365717511129710231804300712697786599504065668082067620846612102700081867964860744414694089497745638238557786611955746515964291371284318780896904163113229683256569374213389886016215078881941773888617466968280456321593205880358761263833805107860369813160451314772513312420200267199120155810618707568164598034829379553126674898879167898923187915036078045374794740882602740207255265802341604601664631675250597757041075972672678595149175170958165152005643464779073557176666605881876261402720302108206469320509222451010821199534064532585799981209460080790559589451008619187666936452404580761494989461842636637764590222529310375551330764982144766136127332367283387695853637041201059371245954719888904148945702237271226881050336324380687040797818300159288044507435157471008723782694465051650675649536643062069007991474704133108453367188882375167960267608068972500899068422899573572526512640636671158593170293044598585112333879527740108771052629248977950384111515143116561062559290536865414000156390843922578850644991247996649978501717351123369866141375876796723753448411191932841369107250858077028785394966425003017032848124629554784928170048640867973838284227916886190162678616225165290285050581104160263577977967436673506073255561316456534838326353466670805256096177138759493829261866723287055427336803623357585029259616234408949641122719735251116912277038284598598141191469075481776936907254298775241027938415365987828739246297182928168291825337026787470233971090782689515132047841605987241260802339318603206818252428930790190999156703565343256329718244764409132710211282980666825082328866954640735074983943332605225357332515492457536215677317933759076359630823964437311814853471897202384858927200959390425033022561518803624804106746120908540634037170051492369072198528581502865892093496307408511417044374629511227912537707066309721718292337641557811836956574585335011301840631246038346362345190168652511874407799950132488679737621765942078811805528585539077591974879915543494322099484929864739143253019641547913525319000541067438858141301957247071306751968988384413392481765654695953502811444888365611494658602440162991686776319236521993130352469341199282223453929512671515871868049735791398942615546765754774767489343132813641464358991818597012948252551908018444097739751859451471175320689351067241255527785670107358340740480811774521437739294084051356238557839038052401599991744655014275065133570210065908155356423007409899151920174045032705739000299473086673489490625815333186477256744737070199291113685379914016867705931198724523850122622396372268151296978511049499777642815455028715333706064080330793719239449536969132691635116496135228403968923419542965875485067251206856903770538187397111753659751450516324700644313059394777622663906030015612157241756964100247879169311851438202806028395109721351026043104901720411696099234274382339568902720618836604015935703383819180882819775129602100942147069735507900990350784434256702489033858248922281350355277619351070576720486034288337655414366161146949373679018596498485686178792391731634154840654428675416601585323390385229007920155073282250495540789899313567283382900805931243288885017543695456013490738178959571145840755986318662046739565018809646189122248325036508239019592453471593785037665379729280202038861923728923225451180855022206890207894087328199238050797954702796909973358771382520388334581676321678934673479326217597707844317319516666084044538717885139535597010542462844804035109969945241985921900279807407785202538781250739096443842682367558470681724882658985846503645909838761919421245797674570206134551693541340049793158842304172976561845327500619298948352200410271440315983914579466654820116896612676887644119327515855798505052354452557986295979453150840649227856750143033514240498142370514082126617902481721645082849906470337442781101748274715018054200377758291042432901271422108975254277118123712447793938947071953239630796749845361117043138476424286423875958517799282589858250702876213485332770757079709691726888626897378821522517747966908234037763057837328582713107508546570733955130512283276414601415605857146813541277183975787065309901355219036133108888696593220466471113524165157383501921436936341979218429899786499771811623783759666458379565471254725607878004407453921585544479558640170663941896729370684667323576506655071531775937093522384958882960703932265156604862810608555443005818890437954520408568846439106374975478364253052320734307177488252118143944662659514851932189552807819899464471902279071462011614968244172391626523302434817863571960819596784873370440990910132613226511359494539585618048455739066403250436146260500532962555086828787553677363450500198986827695631216531876038541712730524809152896632211473049767001293156292056568690103609211772852976189604651726038945674056023402991359428085617438362931974583182715477443325804634715768585035412305459546180618503997539985941373448406267478068634749544689350642627532777821754706066690511050434574290878285966975710751271490131667423484797054716113076519838457975848675481967042311655623848058421928772823844997190215225431325023764676725769137142393329483520246257065932328176734435821054542001965341208408964671568258050786542903139126074472392055079769079694718011119664878203856845430142544438713179101124638820715049106167443867643115250535957925108660912823834404750722086829083824228221305739374252170079857897516475549983771100569804105271899627415363299377441199281882715504545566625644575948172539950375639486284954557368986808851419452065976465469423670051070634081272394957207813405667053916978441242231464333962921717164907706027906165442200239895549085124416167258153173515675039870653797516800335941085821171003820951287536848422348798047615629573089359061536822553277291879711871927128581638389103454017166372509551451150411046329138926242418219396897307519455984753214933017892858795940820328783978862474169493614637219564253881351049199885477065914138158675237580032569517008894728091299540744969286273734475906547880529908957234106624076041635923154211343404723657508835751657100093225113078624187033072120933347450307294317114283057238691820729164231771966976686693475605706424975954979902698240520595754634593427855237447715038679655495086622199465673151999856526196073217832963598341378191649361915305681396105870228612255469458991310050555517655622601280395536503698445707288309328537392265158381782983487398013883395095905521573257094058383974459192718684426035235714595733350529112524595017898052037955194941824465226030793212373928410072944821016541515268097213216262693909859556828692769550359251484153219547365691427435127050023178289312739923000770328804034630740154789897271804767380577691904451026616466249063144485557369424788798648508552830563200826579755250730366704758208112784623431283458227439118281733572627306324600372951371924647364937207307925992906760446901777330655135188823382253863624222889084278480693682043551166385017792994300416224271490940878480189701507983743355106811518916116698446329620189203098510535042745897975181170315474689007093687828108856047526678774917946901742094467896290511946567722681885598201717583803713318861175801866435162546044621694475663932865788580770083410231811631823405963082836361998112700282787871263850035809200194605046635962486651363256706125839246420631613723043371683552428471673382473323776498414829905803644942976198017525529715925278899764398249324208522239876806819434925263517590162550156413702414408677635712801651834497982998617657429028371168339076162137781327173050371740112709682610993094293214708773870484040698103729468582301585923529284504274606656999543760393277272244725302722080627799453688297275083518870068375954845710387356546612340327351363444250701426752821325679958589456953668492774741423593811291259340255495079437865280950873418448155952610978145697119972757726157568018340994647413335446954072571652417468670301379987947643817580155577736144369954063552131777330558050167797489890243923254035757487132884695039450266662153306094132942815595192042296754656383259133378652635577956160410817442726631745787171293785264886926099145382756564968678309559962005868549023037289586066485383660432454309710267112878091297213180905266020525841902936375827527488523352138800889157258132032408038611417441148373928692067211378908558352166408724624884844497178099904676430173430427771192157088375254716242520704343828470029349793651761612063497005649579171865488507569204636276445710863881924093071930462051368694508232508913426126112107900829318259831628347124506514508301470044033256329323532597447518353467864967857890601874858733655832436180727540173596375232972635131262355759263588977197346888019315940838238108663115233773680946632955859767002631088756783545329040121900058851166213531125363679605258698862425716500959846413238416492876128797712340375360924741185957005511213074882530677734427558877831931456343605465779270131372566264808056763438352460081545470211985215615761881716433708817543637982111736730269372354558327421970037933782502125237584950613026309563403290403149610833247967692465130578215698974536308229610926450854364916237081915362867391937417290523797224447079366170889679968448536483575709469477143292440767471777600540253507193383627369242214868203071026562595990476510374571640137746295811076995996049757833937776852018802584383497240948011936206357325811638932538216157224191304045113301523137048960241926083919482419672458737262705714876891552151216629255920733715924873421366777042233612141216846625907746743474775708355632384977508710978850690451474348298064654889655487091593714707067973327938755397729987765013645383302955396120740507229212000585364102683517054316057263879430425270690415163863728602644818567152311462201229204442183432076042141339609015509316880794762647097814352432769115801511317152242968154195422755648528809889240938482129882917396624816049591772730470011535847599728880068509377830480132644025537558461523307515692214827382931866506227320215589278970132739599958134417619141586248778044742789973538299008286133144914928603955072520667286949760661179057808040524099607024558706459390067607068512258975795976149282269292127731342942295594262459873857894174965344414634490332514570220170498512091925786132955750880814938869735363545557485138315982341445697690391277916199773104042852590033162770127269746340446853036315942447861878623759971075203345897754219924777880988492809314833865334968376914359575613532441366455298173956828335028853842979216440981679145517389940485439258346681416928097932871204426564187130288303755431079036981311406288482471939145019256280925717491882124019146284447359004106253715345104844373385888494310882646797839657189843154437467658722949111571938925842797772101092709074023735280387090340794293853554540763007079373660245362814858352561341905887090339617147930495960498232697508432240209218109585492632661822426332943188703814337023511676111539695658272968307252057765675787205629551060166213630523495021791736032495679109847997138536955976738963274891839932555757408420399363872795910150105190515971661953763105859836583463454179070122331957306058723354373212880758832496573962708160146355880192883497105557082993859292069125078203619455431925686521127560898309470744203411747500459601137042610708636974392424336853551929303650824413886328532161292513020804024776100212784252148570477330973169057070706365456872009445594695899709245744285610023003784714562827248249833898872893510263544688679503224154947135697727760788410035355812792925011154916690449545383621513290795491372659493374428632737546429679542166698145434248058294756277189924566520494537464032712006881654540556285967545907875355480125924870816740518902596153304180270916626750926522431449119131398843616263242203461004969889854546731954339261212343296674646155467861585148697763068280098959214628707224757919426268279326169967171449878701006342069695598999735938327180007837728354823808138925363311141994522759194971499077444901991301871708698096622798470163946431594361234952494615623641462046706898349302882668419530263047080333569507925598494592076548902353953575693603413810560021436564918715904635688321089550669717024822525595071655273353685881183216101646099847105055130021740650367782560543951990363175616271944728372219104840123836933565252326880877981418694512933216104914249669810628244023880149683419720546619563998391605853090710425412746043467859179077668013735858367347435188439530054912433844692857075999886472488023017975343352911046599254433395095881585708030600418608572194239402733111775557715426826708432734653000449726434458113903204162851772578743501213529685585683429985643202931856613059106085008712670844866572172573793745286104044955706718227824224422612364430824474801221871296513359712311203772597512332754605915424965709987858625996076860978981539896873129661331000451233601746352353651280388612495189627643666527940072588675572076269000485859449696401008093287139715940746834357953743068946130899419061170288005459496124598759881774438232037249317544885942262227295283072468108469098805037102161445057489597029447653886095970446294732312503121460706799873303070310142234255818046786852194881535384885451742092191241666455873737496663480239532676960898460891323655809152397325850467185091598709297961751909568442096705077997768793695714112351905441806819047701770329658206565161939535619437120823055439654889469860594405020524445649885222682253376355830337678127560342748881048778913114106959384744239196448335435683416198854158886581433177200267337727926558482609360025261424340426774124375812426818671509340389471574847235990789737831531729932681913204028293181276317799438285274118876120009722471322018791803387480088349731085855697328564304100356937992265821030709509009364456055849969347161894721680593635409176707144990569083268508414966198255061358369432526188375920097968959219185144625383434822461629852702314923895615501029282987239088787920226342322565837141905865618160164942290196643770100632837194516172892736181642063375973922324361997191478600255252996534950393460269692823701392198761677079984856617550176464066773393179367227285637320956595481263903995311754943387222671442485428275892318788524454538346404288277606915634339713512200551916797869417455685095977327144684359559442355516814859862191262040421081335981836889242666725451020597140380577366782630420595274328089298114767911303658342829025889931367326927860691353297918433294647057616744202243409354056461728821255355465359377711899206510206434463139716921744348548201182397959544164706250534236184317245312630111438951889910951728985715535529545324974761692145210493120877075745916352915073406483086349988157866335723747659899643598032290562947390384530252132494951950710180145161700984458044392988498284815949139509281970303589382546919641107642586250524691125649378623669536842865259974018983026219889358924830891064580914613520926435502725321461569137287609442820455806972703551508325049504393968117082254798843492567601230172561307962922665976861517969244982425041437877899397146097438743653781731675839974247286289409412185008384481017501641145836145293749807991281101658007227932676246876642958407486604235303670057424458899122611042097613501304420079772151386539257446231187296634643180756113242524725411458970652703162240549716462355084802020911713417689156665160479409008690960929907728033965271775982406303501429441419091138541309250143062342373114254047819462989821583591124911247654593823468475267107500584568135333917200373768565033488089129162905831510872701029622633398541289596362443634441185785039356654823004233518104781992687708088578576450544964771723553383454516485607202835682192458953064905389299432180066067199604002852578325219028937809011350790479665807741170319601196386144923941298319690873207026888949873461860586656142805783569747333629705357193465709184376598385993010723665154218040945386767980621529159455245170996053958883112469916616181077869100118606158419685413089762005711600773429534436115306643892252487781838585126459083853133462657244144926966406245545792979812973637810968481747214423231011267421285799148174444630103864213343959101224674352919133503850794299189909368192752200044232372873511284887707212278304203856934996306821072282769872225252991299082448610378081515725464840754003291174080582222054532956292912506350720970994664261922497033546575496626340316131653260778865340178657733436790685266429128282304699570373571052746599853207620631660453837741260286228520742073745555438707428626658380802407329864125389725110865492873886756417866589069776535184124159979705864634078940808443268649045776401642857640594455068171343983080441098610687786610497356439023312625031005645385290914127592833695605503902185071436334660267394642607936093936647295555018632589670502167490224523882647392572731806120754597940696445619963516314201661764339260940283776626411183453393467211952561756977673299546870272662830584186316480673029840168835043151104906895911941073539173644013347051780322946691681929150736529693335461076740647689339342676416317760717716239283266399366559004921605688183860416442429204463113296016917139765982807063072085315850577755921936300885825577015064031214414043311141826027805998094286072095705946330668223393330860940530160872131624065620416992004079883041222217294158381281458955493658658758849188905310052093101337926236798982754194147313949571060214564095346775459084828738283289998210328064224338269612267172830345874032965606265620678296168389170072187115425671334276439797055903939423723144929813437781334079945864654240824653769113447126937026074289642656330023869428004069541058586988873769985707991421828397400819417470380546867754025285214878490787647340455991973768844215203079090399374827743480589047364789851581841622908262202510160019905165016557918755150410951543746315280520028401337150264456497523251095841042727317676685553748799023801186251263798996009982661430270614076493049732673651867321786452534562515649945144144493196385685301259300645353488177176895848089794227554283764387182865433052010476281744716274304268085232310095373640078755678058205322153381589406375578365453206304147203970625571172300484913702783807470670321694455731825556812362509029746648884000195672332248798565209852923616506795650970934952200843556438864887276833406305720040883027688734216186015220654380959304081144097927393279370749817097861438205216594729352142414710242775238808404603042860344259556447953321057039633546469026726248311133437199081888797424065979336695254317457268310160665178025389046963851248559872265311851526194162679457230346181981655951561944987376106207681899217982626473621257541472572602300750870757235780694983614337002523941462685637338237217038499075155753289834800256863806824219822739010557361593287329252764895507212507200118622986681352712261995424186278165834435284838560074276993506185511347869515489005108424949808703547808477867559654741628157702711826581172381528842749725048592595643042302346589974613030458332348585100311829005877512071438260375744387550608686984741645500850608755621151371201855004076469965929439715030381259562919644995991258617024821347991039275319377993697127081647001788593508030721131295186082983207194456142840886322309784533401209830320997266622187779120890493542114884996887915432537440375745672605981514826496090604682169626497499532887066840297790018784579850309125214610319314353407340405998524751308287784006662645952800236241240702090284246358839231942399573494903339849656767877384187346375833798296623543473261334780783300915351138499441477018448328194599620354662480177699967857795706320032006249143171410511368386304963232679675149586987806194663994428068727818985088950917801822381552320923259765627048503321371102570812410521610121846553319341007725686410452206284812337300900041920258147385145638277099600284777128613016421373044400013137488290790817296803604776938261954716266444421513700203022348324836642400215759127998233853007256956050518741064344700854688258216089434048468374717943365322858560080993545097993924943930046551609929453082487935868137214439134591213785863219349861214422726061772993548066859335225686537294920400499511716697989436763924368112318990772472345026288645970091473460715356631475481354284290663923489987693752863769967584133870269268427199625820211139224183719520073491186807178279377834497017589149200186343473475364677453687459498411515961919417190685508197802173178712575144785951586113751921572111665918019385692359035300844419196492804473529412755796333445417073540961997443645356743569178816509416584042641952310553766711995652660091933218606092440736440887623074439888568440246170437427142208173508371984550199944391168527864886124491109311287708481196227008995242020946469406197393570032723521750513937687257896842309326368954277662567120893549129754273080022215557844551205259385176368510497709551702850946077254832443103807706418703470163624704245475080406692706213295956871067820299374229376636906675702538798145117543501045531980911695668466828911079974734317705254684408589671339548301355872310526808224082741406737463311399795946827528598118534857729389502349427249036166178125490370243685932828927790238305197446631963672213889054274874272835414063641353313233842539613493461041718494381355307594163854253402770243061471455382665256246222797721596659307311588219336415486419860655080876717997171640643888979666524972009890918277311324349275488180840939202996899210970447525046048417343658296898994766186389140796261625885381681049425306002980716013370712445400858944700668086295075785306448534858076063332238529421677273106533326720044853017423112781737968354490039710582122661864298870489477175184454856984931761333121722701066635130942667532388122656125540917364299748524500369730293429921693821826980863966393898325837847564794762550934676358821229174765171513017045406651262550917178675595239333885208696271710754540475563631776929118886632234520940139716596037681441518723953170284169412464770013604395479640462087425265656975938704484336840038628362670594280738717939202045555487533685254505027855020246911711948508507940197705967706977887000537203560801309704938232900425743306684855491736110830779974298016514902445080535568702851479374241095486105848843524767867485905646866986393111034344632220212341854479256157486709771843097010490565277030093438275351910979203851519399646899373640424471047096286402431730195600377441167139262077522248527617316572059751706705484999154536774129369922892922590333723314108263155857944043386620645807381511685358484465688623847550418202684867852132761030893162284369056253309291021308414672098823952208144609986946139599771577214869147872459520783451369394208706399307394962511042349943686193159129823965234205271164182883749539661203181127471923315731184436613230628839858999823593067607492443697974097839707367427283106655812863431462787393888916691590034160012495082815043412280051798371206919753012494034899780784677432199071518164199473194209565212163561408018147591708980550956375951862390689705221828783628133121085322373250032759502467001592157236202374515544926213242074398464010147954131572613923169803923698656472478415214866139557396834237730205567358264481530472572111185563776354032046235162988390619428769988444564214229603470157639782820548988547225537890705227953498005845735445806984178635241811945738926145360951978910352005129677502212394118997143447440593603425746238648579644089131237565528949455893036337366499603039361129135943331569952354713145535528605266446596678144081745432329050452229112530490597051599605936108065216803346259403389063656530040915782921914268895234756810419876363859459046669994931161112600679921637951549381939033649551301769845753485821104819395009227218695844206513025797703935139399059392727601976872231188765237374401915151837717371325985314872889044765242492789546236691062465200255340020283718445064208491671294554994795898795563028909406229796881100707503636325560593255525590920071342857704219145917565555395327998382596043776639567250834512770713644585547167832916685948771437274694484430091679648564316442777436065081017296752793239421079359159267241849006023286718799447503012335685171974249541365990187510110533373377557667953930868540611386583630645946592141971887811145846661280285351490854990587923177895117324539109150130776089993255355456250927280206737832401784010710862810903655943524033414079706248403437144586401275987033781980940168821675573585268528075836491870088687752320127413522585071738279273704331544694216131353393920620058893209118343688868912693729544612466632900340349616158402857021638963722204089376845478028173042664746926454387405522379474486226095709679891526732261202865867122804477816213388189518846688422603069655559144557668009226395350654887136435095700853294077452096864364776066432483399094057108012366067854040083168399672447383337571251850038771484078293864999822095814442859225443173789374931658316096509727137452420736110988690310632111946845276570050780874385863703319437548875154973731589465570317030820901205600239645964750097579147427790808122996142168185859060483138075820641701997776092054331328123970710706311753342201748784454552419289877711811324588571856941284973015886978781099080284115238147295112364308900424572208878824044928419951703938479454880923167415597617559705927852487605843908848957975288362418554322769631645155895847171033986939031864762459535192394886048929799454948246776357934082788349175673754383362326330653931023223504147051758731371309814664463396001600297917285013454762269958145306782165887081666345527604179278977352717679694430425562021455899959511642403229265281961705656545255859327664990347390338004798497872540805937635703257150991645411557655996814930501413985501322422866792339194892950538102044690011721089782860842116440509151347263864918483141224645811494304071129758576997978519490513772548657410616616969651090703895638770345603799598024238548619246253228518576442638933254211928972078927269755964211742388383418057905096329013009862336077993910477870069483861343825956314231736666080051033653858285574242278244449442976417531961710817548715967289143841608938236733119456361446060529488149117762655607501964402912750499572057875029180996665098764581920384079240129718563614575833154773252679321313755992008340670362465810278790639147232081175052727193123911783754550406173219059438326688401870547750855106864527047326550371157538584061169589491647723311157366845998438985155944049753583767682684558030217075277919493826406884685241281299626533564257738783338870640101406946753439730294231551303856174136934284955533221969374373116766002599324288298809783436480195382268479324731136461755218609468724416072617895870778112877278908241698284516281501473152416557443038239867717179937551141832236134097411369117105415890765819751444856965069078925728670937891231797944801820232253238999181326812828812243152678060418007746613444675319590446090395199375401694635513549669788251236355276452069310616662951620918584673451792463890826896591699868217228529144443295892459235681469174069781009683668628865535293844462786134079066375321807567962425396280985457176531700225885595769703674536738223200999988041512348167258888587786458450064076232565749800889694399742910232799401493364734555393127349563343653282381858586686633503631146827897088201907628142083455221511551448693764444361205146576768901850666874015410845812339117858013528408061287790264089771787489011210975082918881810259404207563681025520027377770531869205589740236649126996219683425630488110288901326588635850823625335271838329421732009801155855745781138564721874840666072572523615126601210151512426991009916813920007634692637284475964317363120645754984978125805666258346098822709745100634840202265639732274425351433964459585603713536983404808799020487225673939850057156352267173838224937331575804984265522599563659959748647041136652534138578848377203568131750698491860509376803249603348632275788659399340282145888720005517401754692278180618301961439862832624073593934056307514755682091386231350023679883910235392492549708200344164150250432388331041645149227394304149470747878390063092913923794966794751284903660848230613446672228029531422112955879246221793933651566177496551398038399953162340956276970688161406901508730813298312091378943850400320129049008269874878339012119087093183214062941536243656858808453138257487384699882440958176047980562493815802279396678905222997154515749899015155418164106961005498608850862623687521550994742439431349650826048138905875892190434303631783748995627660591647063442614261729866494632369682196261749910488068385352631257434377539189171816903644562876138947051373160495558512879288980725929229760716697602312274884788460123880232245813088899892064553440144970117497258068028213021086647038238466262468827072180066260059350190665541847129840018352943172364682383398563357664018268887999246905783690932588424499887175636701975904687302296288283379702754985063461221835826370875190795980466764810982631882881149099724991752034367224563869099286641519095673056414358966497861496731987424648074133956951722921940990239070157740272881572193548636631788256291560509837559224228483227692754380510718899859043567096834475002888219301310236052599541146461627882428486272533708447963509379219769897250311009708399800270941042363357240637184556461941998978135712591357645132691790956951557037255693761221584558035945935588169589294229980477666028152992362260440972869575988429803200013344285540383795828408180021495131858087829284451520209212649229641064218702102963915691200611118693634172412461461695749809829069826239174452108305659681771774040164437012901974710149753412856230518564918538171004200508467243105602577765400266690151311486046991831339017858387485346498659914133332114331680088526825923668911072215697404937437761771971548374043621324129693807428242423869640164174213006802634602431551488807561171496245792132357302277634862375946626689069702235649440154991298899846352345650703130141161246247570678553405216417210169470201895965228432360817353364653091272454299207277108727557647269474819043771984521260102039462480345079145499158189110527757328958457483910437478660927255803838743644771210661485497165364143971953568711591758429887256777692476598060662637399935814265852780407367154170680363191244113396637443424582089343685260525842881121253134825729609894264439474908789060284310239610642582004629624577165818338778833198954060856754253327012084152935098806437782469430176146268181423921581685822444978071994825595593417718093625937107061022970559473702801034662439963123969889746199169052088181559730619800749621181002601972377345575873837812569249909859525052137199294135664001064537937848110306787482749302779149932276956087850310844626667814712035495575484852833535661337682618152868354071830848573631987916191929026997624505639524871247089401982178364121731065175660032705094944878688071124069544132786140776954397495232559124247466789492585363762802107082296169230463757255938268780311251708551270805705088210481698491777421031084804463059863855972027512415865364172601713606942928548917228646509599552081962831881875210268678424343146518738736676708281515795749848043018552223607261620333221044911415507918599780579444253861988890600877084084954744151493421335851275763137092445009954630717617402150002681936924136336859946007573641172487248464599394624946290609560273281689044268218562541817319238062700973140503884597910337696840148466005767482875649408440565850784612495038023433175498299794305455131483425058012822763449474874806524152649243686789982070099433227831053909605141469322889701589611699489404423801797327165664917494960005562595186758072914728809734236302199046484580015972896288155053689831486437208155052742428340974687823460840035343675023529138629031186614335309453256295188913051636952478031920930185595461313574334327334196738672855812543071092838973777579356332456841950485697081789051659816476849783006456421351340539813199810832684382979908320649686034343368221398622976955574132461550667652361862343453927424579298407597294162955859060305495021504314967849596133820130869311010028621918166430261150362639525399339072390213295299492007239770193313160976638391093721041598726001079202711925862108669144294966556338249419038684985550614595520599009173899399918864003293119942304506549928438557389322397402848523019707939632614060714156097180223190597188429519738060608168758937415089019872070371389597654866744725253604667666841223690299589849839902709575407421054924824529535842380662574555766155101062200153437258578795334234205195319650193514183713285261174931456968614226003554715081810312351733637637012249963485062044017151672515554251871118883743652841284451045438136701676136159640352386926664422888493174509966648035392013716683417889680045927966429037408989669187707086800939844227817052170676481542342464151820693099878899763678942109303042670184857498835099364817296230918389384054277116369264832616953618950656864377968766912334303340573744413738828945849398719802058730599692395973289435838657452557372448708815107450507590490761499997230480512200836236329924444056556312473967997639217423333161887844393076645057928648732111998861307859634039966293726818522112455371635783961680619891462398704049183059546432570802921381080308054732765880318525492956448162019975101683658155019960537600663373078968426743189693876116295516762862715540325339118549570213049439891737411164436902020108837064675851777213188552260477685946626291987374393401296303833018271322484650989371097723969884765108541647335408034042259435709547286100681937102946198174589394783912185090082590070347648887359083332107312955955276757504964609204712529389939562816875059426051568895922223174842702158079297053360715737718072052543771898251887433681623342475079426038048539653726689930632816189616910951678376126979182114834786178230501992256682504511234749069135886541399011163123073561409624462532614840097891253650757073572647056520272325014544396683526893780796807558288278797835186322719957127277521679767851702729849378378499827141259751461424801827522295331316065321938596244542201354154771458716523651776528005367443136196094321235064178759340895902509660964309598789202353633407798426977874433531829034575409744705363494392920327682223338084019344679277579334336903475855229659539026395965352731646888725439384671692569699966062725749360454023663948008373326350216880766082147930586584915806576728154889231526665692192248938062552536098709020891067916999578779812859387615048285878032131488775589096230349183651099944018414206100875006052903782528105552345683715665054053737361251606488526280355589305804319021912869365185419268362058148421185465990711471995537286142376858107733426762909143493647963383799667025853585797619148569319796514944204454761996456434580093550720238429504120399450877124843118041383828122172870925899463776005808158761439678489544796597397761900893871056213681493802553884122882381102252958229216057968583910680109381728967338513444222375785932448263960170955490044395421600960175370531477349167811129436639498470329642516192261614678394569773274924925320544268743866539219662285740724960498872828883451211495471342444102326337976344638678278364889183927051682141963880260787431805514018943459822761831011745359047268448422069181155685597553623583580644811628151042602398479149672411603544202527924504885988321296155287873288129608952875081278050231129728300559960634020834362596795283556811509809130958693980005988767788496422118925899955214584923067965886973887055440712707305919745515557913177934036549186763969847827441219064598005213132123043496416003569446924575471786774126034517480795314848367631149347413296004417404295962900411771007386639111835536526910358395274080530876880596825722877114804083151095392127338820560417597068596750984562517535540233321618051063198742364648697930620738314566197869369796780696959894464022737413672009258190385630371767234690363676703771211074768182210940978595007060845908549671596582768682635800654568444110267810534569127494962545572606879878629731489638249928943141436569282715145788436309664397035557939183901158933368001845668725513579475650869171485148332542308256216539389357932692248061069079126226665888670436881759108277750472051688973696111498437264275962631004697714341486157833829308108656738575729195863567854140185039881253309041198891897171949607556481504088404366935298386649079392688422131976484023492669875855445523236058350216508974628385925882021318233526985273094768179673645801845152450449343698690525277457990836389403030859783417231469939447389207824462292547779210454849164719125117613637373116834069167127690416544828763198717409561988492964528003325228345190957012600097013618938233034524934349584510791057216732219079442146596144804362768529031883034039519121847081838169502321512402952712852152944273830982422565525839193238895141844727305197893057373595749445897384128492612226574428203941304929605513540371321834166077727494644043331750462568807524727139668751797243282236480236351726396597878399258806668211206305977920584351704957251061435081349242785405659472769743828783563191318390957582322216946875501240149799315679736633893949099955502458801103241925612925624952972631067025598015421870069824036441846952676134344295477435605001037260044044089279766121069856355771460802771969445180742327759643172353662304169326846444465927082588462657555680467300047575899729096050935095693269378229570054775952168229156734615066576759695313279686863253113900388227669169091430668384852778710097638492853288039897979413885890964462730885310539637473144551659129377461068323880219687301788114787847282411799954078800594851374062949495614709958978944943917038878376390150713108036630239024994852592973207943413222822126346501879128730262679093171039598513901867463106211711755227313894589724267487888192364391797174960848014938838236843395040474474231186307336569244384324406331824722599228508176262676198846390429146488694731261597916416991886042792209658489519105343756049087887529512132160432537010066991771931477056470497343262693894092655283119746555959918177687108809460088357044114729585975333602343401647873063861493843177163754214997564781760706011290461910427813489618907662641917436981957216362956683216868937522375514124991370160034173636269657049919503247864286925699233267755268755110837709579730039840210023406323727064142169556482084744708962206621837009000290518748977824359900415914894008500229376781041360325272360788463474459657728478805193658036669141352838760003983674394543287382331907449192264877135085573691069544733698098621718766873783741301460171516556593387518422128979332165907418096739902704640984941095182987513631278112042446024820071355021591956426633174187305103817507042579931241789606632243639180680753815893940985317435963931645780404137361861839630068483450659587237580011314018460350754348675270266372409798942936602137666261580230543587013168518190750248097520963710186649741826321893269701194562730017511577817154680562412742535144436561498390752291607087738735326337533165543315625884502091880686655939608991349789967799845365620054463260300445017554008395013099674023791464132944278841182021361140945373048759248989505502499567787590473448388306771077747900534911655725814397367768579082306249365676209317760011807397136472121438569739837501792086383794070263551829534990233033487842351985982749506220232804770882738769010558469778427593474886445128155937410455625363641703063197520945133404665180108512808928618187343386748020217073981417539951628260777800960940199166288462333148916197017612277787280103929126810652908365942300211332626382053457768360704515513301602390196477224885132013146218403733940564869438367696259799794569818477211877136892971310096159334990362583266929768122478606135158461117556583016771497055582908730021635978755612305803099599908020833843926355583140924519094404859653118057116080294906268567852405912865461404657265712338116779924329356598973540658717037885613248929737798702706148464859088497796203128809674572572812398906866550622942320810693081810982837152090924701531392432278569339523306089715670586041657624035425789580606346572688467885544829302282011857283380657718018659774238642527927662604056588716794093080923992012285465065175498766862084197897536031136760187778302685145599071632062591628349467803300796435897861802053587898285724877372524551049760663463690468731036212395022440108328982836384456392908215742462667230483052251751664781995160224800090039604357571470932034608600907348709152090164462167771313365593315425879001826734729039124228867209260979565338281755270803276790126222173296094179503681414539265716223912588764787807436670397003444898393275807668734403236829752003454239291896109009217361998302340768990414602727131356672646356336353989780423773778096372845195165974638921928435037062341258305768053648562108279195098299539377255257541171722662518284969609630335119129531877744475100938040559231999062779003370515423155953998159488391812929266455603673637345020746583485755212851592873640175725252687877564027744794979632949356109255681774844081382258761897986122307177720326183856860953617481162189898440963992863984100316401301621584119211007222321853564025060908571454897354917835545981714030685913791938440382491660478362433503003314419314231491513135050027446616316348784099444186129561237311691889970431519849554235220248972776888763823223527059455879097946361185789552488671667049959773016236738636281525105621153107248031832577698103344738229640655138438908931393142752551340425106452284856167908498743387678884865447430263854819427597535220405971968501639111663392844105019517329291130557315791553220266609964519398811182282886483548549244468471071685860896098243127703007092506635290919086832283053159893114386196136131783739745061938188328225295754605295216319258864152943142912170265422489748306448980132519566854047330819733075256238202897721002620569264471825799080013736186203387005675518008033119191455373334355779076670876677952953805594545690156070370442307285099649646494573804936059536790706755473159244136513936071653637618165043760849739427995920672026177933009701820101825925942251199137175159247965337560545499109183012115948025865101544720791518646811238287723649775669269980751705492645251784335807486654849050401041386484004464808044768871030862458133985917268713322278428915998514755507190276604985852400566128500833586176298917443826844938525021193289272355174415524183805535389844312100888328210683239947891186371324169099856218258746337505722256002031355396960247270653248946361354923016676405019553546804786367186308356165387905469519749892021049090159930083349249066432318269370071293670433470418956047215672896547566887613167922282178839499430947710629975685554769633428854557520776085129496289263704694922183382819008160546389568123650964225558725156815969423259898789993926528598606587361042787848227559538452550647182179567274902790967377586687250193705725296006037098186985755075131829618006544720883562687973534633915204864461411030611000344619243313214281057976472897479739995926529667186504622120078475875668430411952273377452950347462015212003773808467540962281716938781100241564198728905388032542478148119537413922717876580492893316094722716100832599302508318010497454787129384254854958099743786895763054803996143395026778157776160055304182926738844804703656655792268910398227775663737914702009253366544406061805949899833107215507961191869671869280477732899249109483709910350713115059307921686885974362056230635019800205674139181338370512760470000887490509288480811933019927032230900199050484977283708449937752266277796737051142107517733275340454162829353957885303185071595326401223927433421304432632438801749361398648062539175564121085946464845753388594393547191174490491510691777265261490854133421358470198105665008003760717027209299196273911835323601331591690574788127179430923663284447239361646603815121681793904875634481389151411431575352762585563766261126777066350216297437025364889730384763319956139682211887802046661642189274495377368515691685346393960171582209748054238709886098970780677790800341605776242786345765108436427691999374502107257826582048128870718282234289194704673835627656517179946705663333276288141420320177801907882292931197184587626849457732096406018670387570065215795786143534516460145022291807013412730432339310986834381325530809902593249147855905532509898491000893587126402887392328747789038574079812835703118966946661016429776174881121157010180063044705052248951537194077040348010484134135507799417292427769238397493148298240255926429777120522484873856226085574254559222157615755157766998575636676497577405015813271033598830096073496461968990015492522896453097178989813937600618213165966002016311227582510887060845579070749604098673496388432972667165536482701109584303189133773924506867869895684102557731973213106477842977889311643538219286659887907457372419911571936034335186670425008807723443869080723738408644692182366125130974449171596918400772842794746432456280564078622586298363933596088700656239944150505995161248537970057166921807395247888006805133609665111915433360277184269078778794552651217568741413448563579858132664462009093365490636053793074033256899320327039964185795209210302714746641676820653339092593513235563008593538672464358816847763216756423386490697765067525753729718390074683197271865979061628133272898326525843114858201896289184967925761487419456550417113704324068183372015905360595683776500717723756830310363313507960335675875764593827779759709633728968582334752492649816679175684397365123276817077915951439674105867516406090276657059758486319107812888704368517191023086807994792622029468148515157128099003256638876631209694313500337234372005903253430638467919100830895006949816470439988630026030923364646987844012724612575073256283779826807098519236022245959620802814966932385939666710109950147121283868484611087464627338249099772453736456076464517720208760980816048690855229983985951898632741723469799741955417378538737088619407675068384126383214120375722013678710719333231776800657038650174134133703439517700448948582419392664455120577225164074925615150554438104589442075343875655621913615493529536198799274918363324259184689648920758870213310135651884039694999004067989668865403046297137796066004355364699697481057794077724154741743397038337987661323363378563665404697922032484563697243892724006012248956265432040093233069328938008314135741155023095985712483466360554314042915862600820869371504766449626650494519810722610921021485405858671263634153256703718366263395153123661720038651343292853745665692003579403642542593971818096658614313238785838327662187159535770105886552825889442838361468125825543448891176533760237561908650805807614242882428721899555970898255422123245559081449043801834804642589255398351539441384318995756235751383489449420435244147734392457743006019701138545168290293148022874095702393128579182071091245580825949747657383875278412770796099485869515056806420677426595520462310813292589818781962549364174736653960865798417817501732674611406431545595585269786303908549305788177967121913963007019664280371654907826975478217881069663829073592858576526157651095874554213193130873420160181854110884707093306816471863064065757555340230226044193312924134240671926256713832343764262384699217206593425103917328951844502358149555235823983676698384416831318626068134620923651795845555229824428756606820126319511593326870568471078265921794422473551323841164970804154256776370993691913091411172447115581338269653180309334862979221145313589953878292703499144305363632111802649878695331057944669097036896515057654662803943310820638553100079767153332535621739029492235122319531307792299755368429629707315837349685987245958647864577383790973697046124375842911881121279847220404155839485903117298126140945876042192351989896986854567602723266895556728970505911198668245306062232598584042398811429085930062753361140742025822512251759732979980310343420029541125314088073694314321541879583394170004800218758996995753965211722519749458486374127024324100837691131390878964455616107474434245834677262928126836992301530205122289087686514458245753783779059809974956221068614224972674244988982192469369336368402664990240690631797310978177712701694899305324360948479923016733483429759375989526263781219765720225692062973909674578498728580035028740333566624052854568872755837047761965166668248499304202240772993245495515779439970118827716827200766231028683345278115605375744598076606981965224464496761949050864698471164657667924954385639554302654108506497774764898934951308371261361084946398879184158081249912908278773009278660446118816092493157924849843043455781143510853002458919946518630286904726793131278861281656998203877862915577406599205277244860810658022265978736494593646490637679096810259997638735561304055013831736267158639488667057125295595951447725685725277518871833359927214992587577617504072675233149688638282121277186345637177558635518852666621161481782915433883447740203643036669110023502830021392184691584704335989757870081872770537498107525125974255344686380831793006131101858451398483816371731013256134933417745873885462411952118683608667336481050962096445022355507924145453337843770472630689361588750663065790001712511005753380831725331531216042838439327480312019043584587334676814176360037157689574735427405634609228895070798273810024989728744049185616171616556359539054529077344269632525489205993476950107483826495449555541732054687227728505408109394894970632505243043198445658779282598443280074023559566132125861722688821999183637530736478343328172474772060825650168977829445505734307698864544145904091513759317726183774341120236054292104712994021811832482093272506848503656457617806653349162853716105388095170337631003673273890487592601639590164700759972547484932152579220011395858438540005746183185650619503896368568110992326044188448456018861582428186782661851277808953111027795294565376180589839096054305058342701000317409536375421736523362507776946107166787927457665828492897562308719231857059638148989819047054558191110313230220007703889379459115074411879684000327289645172697681029708867662687369274101083898093850236383506851423247110184391716104860101830316364920340812421169781223714911957212328290693626653827764284623499045128306164380945026817415110152477079739958831634791640903816825723760370123163894690258716180940065382314447357808034737135035994279636041503055265574569344233564526181440634944928409282487620437118457946931977203003093756384256540985066010047133236676257283956742241632966043793310098487593082965510264750663048417424686090440241469479417129678127853974565377961573347352637623337448973641522472706146781632840496504305599876448337112774550019954517061584785049480255440865215862127811086668834189332554300572937353815035197492462634889607304454071926459864288427944061073614099157287844177257767563677304579486548589118225281282537921127758825626921936826127395589118573329752458712969934470855734382896894949306800978921123082391528223974636128890871917796624806026178306535734604821272284191575516555464563323854733003220578868337217241303378151881167649925652106487343636887733791337076083359931513825262318663347345798085554958090166969523057059388227575832180963160504864230019404986111821066059052718250126770434909193633716268987696996943052335772112803047263747559328478242026961593964869903989131244932013634988661428591264773786601033407184747764758123414095630120128168149965252178582696336616892157607593828935202760042073038993054658738800439409948645012638199126609560041811380684137953028334751299498786018943222224428931316001732120388999151281359308246260057841681069184634576048552356808730035016885230660462257687603966049468111465207210407792455798354710386376659129488433560980254507887317541372715312314932958603289777929833747082821504057282270809743455828094822235476657863218132217855330742181972064319610763536044889372099772866652955871136073483834768756074682935247847201269198555747423557787748958087668350653217338549020140579198468480130808220601775383470031910292573852213736854889004162752935676612515872268515533486952692546732300619026821223857349010091683718134928483403234594989196188893855449193368323394305890446173674227300817426988731961686471742655464880658692621109760044128780009150854880549411081738409293700700036160952946108483208538329456787566060416072931879166232123649796412578323812319445746558618739391382731262726199268569791948620714935332936227757811364917570214310773224188363886336938694302997492268307770911752048990935657011668149201257391173245439637958556345019990537411781656617309910942763729384199625644717018965812762482146439260920193659249093620428230684840877099085111299289517670406780431927799433404242620080270159102998453297436067451757322937866382650265776836274889755249679996803884266696560980874652225523998935364761745997870648558598222414732326342266331407423019683401814347785888664438074278736638381440727853195577547442234812271274156341427008929710650585369205194630532797496552490536352960990631632236997258699783726653182324929339062670712851897341926615101571462532238950505009584196758311264971951176227034109359479764684489949683746368026592118871347474847101384074337873431397020127399109637912472473563946010450138860112589941805299741703358729436072477080639731489768727833798600243603195000911841137764896208140788518365447716363778301587380594570533994436053818080826030590071376988001943894588808342448658717858727375098195433815326536739807165277131847181563420557676523385328467863639294343431201762745292987605681029508347399823460037291430261105518008432668377560126943892812524014871995740699526668034042747968603882385738070004846949543084540950232211542577579695364437621211142542372456180378262255999273914346839121495435756708893569526900883930742305814127137136547074576537053875513548565070625170851200574730957953320678115871888608504884142350286515684461248457637652583216045484829324203296914503544061932879207291028965574876855092906149655063264991039285047713731808381647026592656505412167881729631641742015351002071473869082847186095182088782365440611894269650813022881941613818005094728801697568260764310546246708625517384759194811608980887268020864630590533913027824160468093352750739756964242499041997414697182426415432386661290685523100391554030250725348375758661633129024580222463377185114976464867799993470013585440464946531328745851320943988543786858515093935272084214800768135444331547520366355291058516409795691200192417426886959427920272212528508220653729943666749811474108690370802911272834998814777138273299340051004916042197225925285395949195263667406385121987872807513848268019924565780046276742643589120305046393266746808518723173964729984634024171341901351469682538443734152052892416424881403420671479633429094752729984602799788492993441269811362615265539149512565193834713738059872161176563932625297910437346669215213934661185336867643590285729300291380777175308455880455715065296967652780586111716759217597553338354034310904232237775504218152141350606401107297267685418569562288888544567482369875956462198544385218185461417792893307873579454382013325415096530934646325144315301221625215202096132556781257416934875809446724716424041174018619673471759527388385484152668829677448906123867462274436085022065391646820859468914704600667065559082835654837050592908205289374315494734783595621204108349573199563990574263658064137893368512481414102042849992388868231193706948187782832835820063603664650202986761199838530650755102477153615033989238335813617062102469221863022776342070885964261773339920218829642090864452200972962424318285509640112316834874518125516229876653974933693790821577130593316745850648684888963930206520820903897754029563131770323016443554152444229151343118727259447986892176521243722864114921774778169711516731669045861118041921754523827944583966792898393343474325399767564891487199621107481174797263640950243033404670405573266010114094288680815924838474474853876330789848435816295789585716303096270909376419284693622827046095833525529281396311899338314226880314964255031723917101537327490218204866237046944338119883834390725157422595233218360298466060409293168816339742459483714147663823573123663979492719150409276349312456402404025628892747559232610824738112736990808029870579162974583879892145382956258714186083033710039143785611244274756626979326999187511517189837844977405350610824190876382743486520399335217057557908301196136669669483316647665192501103409530829032154947110270177963725529822799881350194890509360514176247621024865591858346609578031373038786029023947232433243428187885661775105501866136240233016101104301837527654935028361690782330410868436162236197508124857741038294507502370770906409684422771415187226581353098368226686592262362414267661581266921445500458206166667934997579883095330349889467139123053340896200201721710169429016239079427075737842810540516427118864905522858614262506998335228941015952446366313525094801169407414473788797627339413307739227683751574807101894048535044598976720389434154945018254098880811045692198664337650515203299052419824318443930863858981344569565403107017993658764825909116745893275645906097373628819589223338509810525328327018970730028730822792605050414853577619215900949195271967592944192373366381478848891501499056621236062574665522072227718089494234685680631829880335782768741884716072399066057115617154860444851896095917467119838633397093908962926986996629924659049057874978644698247208097530072971559601582405998438417174039309701617718605517884975046811056773983325309579596789574449573347534235640114703613739981266349840592971458369733301501797210877416296496467004742553352758714667564154326399096016372679878379799543810037319843957448725487308964493717000692288101207678330243570384825793131736443650514784302474599629165648071421410454021007190570910382279423452936804723131632478981279674041018363396977324509030136803645596475483710559674363456909764861126954393582933270106297715277745938946837887489776223322999307741620063134767490047344186969889044202039580878449567476761520284108711443572521782352975380339870346329708069355934734311983786867812223402261432871852124984409476788949533871707736730204717095542941775303138586019532492069838387128811007141435184678938839682497008008514876912748827254230799382484929060329289452028825990426825076726323032427119315434873301283798962098873439082064588024665577025687346036276772981851372685642197580111352712672217483330644228275383083871614194566765215117583240721385768967284087154260443727313730569719191398580250092556335922195368378308946741902719037464612719397227756290993726105840764300947117409337562055446559469027101940724265106465915220755369021434921978874529345311489560593785516762701366501259936708051239050991299030113352177357750836001508737857930370639740935632938283734076625116256496449926014777338710847111587432072081593455950390957567337610930039607879986183948200968993663735989455704751816426027054910354188408041822326607611065111186287379644698997759509768434442410721262850168708618285904308225199813444099568808501201243605625406965613301211707667741583694998104915610206363070122347263604465421604775594864134914592549237541573167664891703817764791506918640250458667572521506465544591871699387377546414614481299864131544009164096785973380097945983900339682941008233169394353526168689591470288801392377485238123687658681663676318507247490998165318649534774138962051187888661852032723957603195145388536742563798539165135895761174462447587852820637550507122312165375099670409741449820627388437970334354968731391276464766744945888642494224063651453183199585985843951869146482495938766915939382406690724870527805266736540704769132221675707365637016036035066478602275456178571796043963096471315739274068259614514643426566261816073656562495621895739685828350530214982547499500034772586576062855059523245565588756211710848151135089536495182461805727888106669977196318127022390951253881439495162201111827264461132110791094643691108108919943515527683560462777594967742049830636589452241788158234330570763845513373745279264412527589998659644940127067608520120083079338104255901985800020097602284892308224930342134228833054092382913743693442769926417843416637893637912263718956853330598009059136127189180745424170987855977503666972435665341754973688512854226720681499969887530521016801889159569092799808449504274612681957752049454768546752997024861102201685000001299505250261140397565142773456855764159714857741059964074746675134255185129000750221719817785406721474517481097998937180495963914694381681257154834037294903894027242658605281626725930743125757557284251178633655267514518072209770898597374337601883899996302867375399312168303565139092984720974070598963861534195075972652501007291960628906222845699108755042094051612742337003746077220461197445397800057236170899383832581314966637050997108886261718127993124092316197329310040856376266189460433432272651349998117523010631476220566428424117044678387936848152657464304089091430673554683840804306371846254657669471647285329476516775797219339050103096420420946882070080496645035510392631477744870449054561030452318549779025915212605116735651421586313673932525973330085126290938444248882153883987303950600565375338748081609148280386582004364475590161947210286378611970430490888503022395784595729006417372340916531694714764982895295653693967371198382369360348058236612522948279620703502746086369097401481675675106283716502151638850362811217523781603277716923542369157024352245513207662042466939234635471201234561381814229256954083876236890335512774055515227759495545596048444815906753674913353461873369859711191187312323081200244707859256907395567518450296942669633250917928278746652943942714316232739930285861717840421100985242957222499794716438602554498621936476706831281874954263045801853232961661179794733093955136970158517633348906291217755621196523310938244579685189013537216525823232061742570274328363705222102302357473628473553903915077591301779781872491795164171420978795436996587009488779596072907773975562846202267072748730382747270292465988629820100609386463874195111363857804327550150675454997375439094970598775190916328416015380173372185898944365164939364379578274540713085292117543433774678418954482585495365563379276215302522529807972237568080273176116675491930013052308026953863477897016736408194210782109225563587141695235691055619289070130721469905289867472914472259729770184776155493988972635311606386000692150196391505210977549186206545858116257831404630822718208632578897875108392309065822646245822914223840274980684195729976160156765836193706716990636293368302780079290230569261960131005937053122755663898477584072863593677742333692401055105576369879333470500623612042662055717755499198471729075285748439849721041369388112591118376934837073382966596056825367337123553203580562258920406581192765745913093026957378599749561839026960419427315442052584157729754341009567601726374949957974361634278227251093012330450999221036668640439842749478587611172540061834965657676265397519523992923141926365423117217333905458927411115505614630878262101599716014372472830253240713004153353750160466971191967532625641583910376783579953737973298241182010511421082054883655685611712707669343666245033599378237632143187257851836077003440441659665339713347926800764891730373533715057100410252570193046569583578708157530417744424761381453022523733759787011439030060797660431786472976360468899293221362816398547429655953226364900417295996237931464899913765610344817797561709585733674977671067588344457600143063685541579581780245795373482590655685964842078200282572203743848665465690151081855866794851750758258789371920564921325445353950968326946819450783870950853926190565392246375105964886300538944677209229356760565128952471007532837912023045463889355341474852681179105565118645931530979014638544969946293873551233679547334280190539852747640642876516041160777171003703041804250175677450404436111367186440015963802805750357127484344508632894676776009408269101662407811805528730977633511092238371362676142380124727837662594782442070485618186634182112042866050373000332195662888800368902306290824635046872992834741552043523728374782534253273715325260280902789189860215487936304468196617095140434550666432442587033385035981683410789572263444748861327813210079623296637926909263135827364997234045894589047184603066618829829374238414465881814511330920757828430127641221259869490291461148948786020125108662550655357978520867784218919520860195108130668826760070304978289554996700660458305212484243808276982738948543310769538187765033859656674497840661237580656136475331484373732714508727036803037269663131416207097595259166979965679974200667015616035835088994041523416223449138353349008508531326009279847736059302540775593787905220428919010152908362587513885183308640336340710732632709606927379901912670598436248431588667403012244656324604920196655359484360347721045026077722809178378113670153854920522304961904108640666085404188245336162215162657452974149428692988573965740247286257356759104976232686937769602066558910559757000421778132830548963303627501620160693156253173430228644873735346752769965242717804955492440146305173924606654233877408932161913990395017533985317481610988613868618280995768847947612508276435287748427352318630596828304802407010481260703208757213801080801282826332051608620817371400537754512492610768336217883755787182036050395458449820680263286199923938991768690544993269754702541869107093458258255571409168418158502454754181039765515779070792468217234134045777286634678710476326484495024012275437925885112669821996562021375444783673564316596987861270455640354153674552706069129223152485343555475189925668381235947760753251826740148542692609329690033056012525189831490218970273030097152044141020535534951431654858832157714246258788718465119617565916714602485912527510044714404295911691301779677077551070057724446398733458515786061945639127158350588673917797149635176230252996676263278916423366761792167870276268024692349472067489388178156802995867367929553586160486508825135449312444422460580702652028244621001355906428327999380799136209902508513074150894187093500392391903684254096409933981132991431196825139735566987612204160163185006722975068613821366697515311809167667333298773412375214795306974142080285252264208050368985232651051085651863597361141183623296628192464621698690353600253545946602912835655718596253133710518373928698733522363630214857184536392350757483670993029381327359775437858596711153959470523418894545573493677273384721661468054660074008998325182667590681106416136951566663244232309516329252427809190836240001985316886273086032364288537687307088577475656730538276861193872985134900512755535143218784268410942295174182749867185629995446208659491768436261395755073573136879978647281924990899427759835412219779956289802896041750272503491975830926530782357437249535936090495037958142210836991118366479777962185843402386943104060418898847431679946117157706072841343309610765532050198574267250198591452863793560999448821496201258417693787364365254265223484317874630301977783232578950756410743377405476849289018968838659264470481325356040199850260087227075110232040728214134173260730003636100152433568543561871397794608685089795276777415232850593419490220554049297259274532077637945869003067979942137565468331474260845274968876514989170524882165123780165703883356102741302203804320655883995532250593231479811658622367155873323710240573117778433642135151244367080787002278202174022016271622721969914747644540001222393648988930378074849197982247125119280572865653157597402021410092082625049292421222276150044580607454096631215129793141251518823118941136200230741851035041198196876863256859038209967434012088761399247138934164675197442625402381933039410330836325758223872852005846106200827044660252470271000686777767091864014991924622817856286701691475108324457827150308724949122711141930425059675470611550406073268626854117133486297453029876221876507243988469626473720671907970160276385534133658804378799835273586664480540286947839153277539685448403707527781709155973085395699590159069911124644969394616170949617017355640810184165438276609286863667400328706284463521871596840849364342958113780442683071307139636595271996726774712016177322604941969950008849931077891741480473887966062807912768207703087951280066295258528185026345799308364644447178691283035567137228583807002892167219286741899585034691048203633553156784090474916978489828396553136295861876833767188702560958893677746081593575547493131875826884294009938840310386116021460277460485537302724312042536849266790027481798654110952449196774177788369985735050055775377943871841587557748751683805837687988074310058647074107139269154389237165469391128487956054382098295154683492175329978419285674000666820214657896147213806591448417968589800762732149201896721452865685882459587570360637006572445039676533138798928614689712146002311436677318367623498528074490408904396583117590989157544579268141080827473007204290383782980504939233793747265732516601437613674030136875149445886847612635331442785441551130420154584773716283229561274338647489018448327562604884633571736412979169764981241048117397792212075743466528536352447067570524956694822305172721176398775397275452553946597451174805841143333228181805227878118195156276044843532061564804963122985514645690231602036947112865956899732615197716523567007895144525625050152094168682971800069021332461289963580840693979230783462214741552172649622458645550905592221721138851738762395903541016127101052031451542136958361893144622512768720731559289136303009788690495724826322915421237994065808986283549776983807535630067011626891389146635765068560920333861642598602531895207288118128836460720170008940003611679698258849663397170837927307631050409141674801342927687965214370056704704313301500730620619125566781326679803287482300348228572526564045553431282916123471987246756668009933954360405672947207044452381203661146570261404082048849432198732809525944288547099291224216622088668386010334680763552258664890956133131054976901009720276098476843198911059923914798996413428189119308674692894911042912415189756856242364812364984441830363870497138069048469452054219954571021246332768210438168136532332261593093519237564502042163101406667853689977433860503548047566609596554981068107524796867367279659388730867555418335471482118391153517068318084960528900432106427258358000560190968858591375990850604630805591818128861311957093185938672975360293536573121954085876787534852360480603334435435775125019678990886723321911221560026221122085785131414165652346949677394632195036116075180254623511341123086895174255835642582467868391223751483840172769872012964446939556658037751442470701415251102624299882966215658923829286911427094053528398646960307462020198473385660166641969821994974299802426912432076909107619302166949803035826297475894781717672524040188285927492473230465494089303825336390566050405905687655252679526038889909306658062657359181163400795993577412810410258228544634042833655739542030207958544683308460958329039615527888681704999108508379419061255915435831763457636503238162075506938439280346870577061666335898071413265060018776386621588347630208281091832102118403919550316177183058439770572748717306246166820369009325144500970491286593062925730109758296538918041693913195037984992569178981583089322708303453314582354357389508360461819704461965687832268030289590827159331082654304250256545596897456689654910758685137887750252464479172022463422382672601741219641356556243017378635984796139274748817625278652994769107037872159987151696274075533801593265831394010701124604153462534659972176625709011190995669294033613092190064497291070839092560191473300690696607902283814538343246507093508988253184658576623639335217663695245672652946582722735417218294934682167230599605008790409421123880721389101736804415989686871745693931351237270725494986958484234222346959404874590721477118815196475362717829240763578817335418888407815073556105458723649803191095693699805961261149582012542773757675084957147241926090210820324347070534627469445059787078698722451995055324567698436691272696894062911434728887741963269106120155121243806583289758804073887962242267489935360798692970150110346371024360801803966620998361290169760289927778884574179406545969209018134957955520282716428705779663884219195807165016520722810400840314290655115228056114127987581171559017540269285529499596410176807204412693400271405914590920897320043977995384464294496740244393721116571185942151750696263838501485099358142538508832355146271445465603904911768570420120582171285908196371173156393408545019410321419342849373812755311786863737616799975876886789989097859379342693171208872531802518837533822224677686219968387158139089407230259825088043892481030441577474817201243969762844202470791242998545160499074836607971071090124745366827325008062572389878044952762162348359749914209104395429034846306667308118569493842264684311323904475373028550442745199932760818442773655353265390951189906564716257332382688734402884947207346025087556986376441953861237472499154587657558388099756463114826771519995023692438046078991811968508772761706293156450355091785515309039304800553735804173711784029472009721231685518007541466630238705674137334168635420443353394472872855698462321144445806409428942025045795053388633725425609091956288337513405446222778955165934213016486725710912132269031286260331024571559970214649535149716144708397478428564260277502756331543956183337301335490780686055865615299340183202904529197561209176994840150875979568347168381992686275248824124565455106635871913106725285727142674262887391373290911501834977985038637881370515648392550309342112872792843806448744160054195048284852629428586723959968362666100176879308282331439247291533809971276960892803860725006968412575113173494452302760649229889846975500183735048203738588425972974269865238078786555783236090765951173792825118361036796442685914539359389868667951427861650847334538238579591515614578498329759106882414721363516811417307656496946571585781119817871562913795457014304021954916939892108296342873553079512787265301531686986744451510598429229695229858974441280340430010219545918936223817183280114387297336537937574020511958052364058674139728044251744441681815216241861948305969441058113657396264059943733776717839029186536939146422070502628127950661831735553519892763818454549008042171570913823908826080324906146286360740792287692622402278178131606795410447546621137513391018068831188155738131922123479724991062449920731391095130226708221087418666667086977254514930495913031098416639147740124692309082806236478790955562031957217712625606012553188442376664967127362789649010953572109205766984949819568763009267141533732092215753478361639608888355585696142840755865563479758958827524399949709992062331959706078651998154959444687786301562945329776227805059382196784265758471733221378956823486298690622771338969544797202978338317845732756913268959690681354279487520980520489472899697784748702403867416006956902173509916301757401735262273163996574755723678808762636061551796452249071107040438281800654227335535391145403102699802009609565668495935509834704084045540663110379176533332397776291755965387987876330299493558510901896717378481921158863438843010805821348151080889012745807364678142854603875199773186828866500011351140771011690667841846003414947929314743630644782159091415112962046389350789318921767076775608778444762113242064501468153333830812885251297670001075222777827832831205210677615026327032037361311584377737657816841357642216267388704696849748951460559831814342902375659295529911233714858740891587874411544675707245752322123144836093780074184666878345138868715233758455668590940503410244958566258350184083994980968348346792861157503607103497708828151395567324352199364885032515303217647235460559923086595715098657512316533473697920746959471826931269252718337053593995907688221410353753862258659806954313849929045239411557768286800425644341357266762545289571179750498942649100438955442711696673656101142571831723136716532403762871682892562026415830810893618863567000416650095416134195925339828292530001816093322823004534138030071967509330928641872355835453232122516544938241094039037388647875178470998815522255862323595297269878895317241199713153760553933550611832994717104319259078553739762175575061452356516992645991382962307956337983086967063258922002961497123515590893727083087085423906685319859626776090305257962777841000972895863943674386592912315402947444234155080994311394025354676386847621474669928488287748129524590232789335146328911601899375173544799865616953246586972181888712890036516499439640715329509395655138057647642182071159885189099293672573971009182589034972045386121599437428957884469251614632106709716692500706463665825936658883182630012988393986103930999969247476839585970289322286255724891534079691083571824247214710365092456107241127922734015171279882129195715402590096092897735112700846392405908956721272355095895649939407736126490094597651892756836260069927841425237253565533325240171905113025207663684766889523971629631860383922723863345425134261726032248918161679228072655371080477170829734321350154940303864080639491021956839361631396675025403939798604350336555554229385805694004612241112332544750558738549279761841200935253250759653904586637116326198111670566488915857763075059216084926193882426136647181096256219649249625180531628556120467495613098699107239455678909949528666302073857955755444880822807051856580296026482521726527559486595708187175083665016307716868660785354374191235793530410214274653139230541229123978623039160419868776116651338336904703637369187765346912396869912895636220377897483839333959766539304605180255462461106705241540940378207264994411270618551187621228468370893198003264505385017121989698696282749659669896956159575318428587881561788282704666630732083750879804256614679337116760154816025311825077900626558362452532160025729724827069106390494537029992679019180129019891660393480742346269583225532264629852480296524837929169189024738847687341479271435593087569373432415049605992785093854424597114450048500271901171908130214934367068164381844104254945901225003632567454368306828296041066198987366240886114412062675981205329135620638722920260623114301759662863741103135000156957866455365327719636777760171405192329719287270267131118064245709577159875165668131728019484666459718425109223341640555260282785115960573258800192580810126649527525332213131939688032935233156651292942292471043509778110912181146810888065385305685757179306575097032973293859373349279830922362858969065034446438299365835473643231769241322246164455410725600767116696797493541712271163723901678456148820836602110425181848250643011540220292511225122838722281879170815592448796424741691593697510683981943197971368512498942622723440180858451109833270751328032077771381991907574634724859861423307231964219036414316404501626384004970374260274221489262730349607201335754374871022460847010149625865822799679313150134381266918523676564350337392058606305738714060072950831977023626490232661597758608593609871636850044961278327861347337189809375931832492743923884122035702799567356568052414597972732944446534113855925612689491250839161155975628359448331847176068030194646858362494480082363353971145863979294056113677306293814366462548748105072084102803492508880167486971666266165442258204506730249622429780367211719529846892004600863444886434261121278409278271979892834764537414125886883479101395522978298083511270560361444829533259519720377099546637142452023419963301049943923839193128309468547075792666035281795399008380499999493051243551590461058194042766737803492654195325270460729471024149853674397894496796412981452024532936086333083131526198401901429953693905489479312190793622185912040948133582082538896796814963137709000150223620420011075827323169935464787917957183177821240372116837919727168816635911442663817974399258324995683274698065750813256189533959056637506134919478843394607081293476293393710182138997145660989465089553899875012561050970040963411767043081561328031301300438162157026359348134997318989698638766979992414927729031533513025426842172448508254455376047490952760953150213877032690414071360144748356116250599475475185509308297810416040048345852154718320122368403732978267119378905793233826413248069863165880836616392149304939362428595427105412642140617031865699862463836775733115192829973665662475240977249458741330574544744855138095684777726664560930541603017032687943018200602639012542804817302052889098747385301244640450484917332468102113259589057938165770261791590320547300772810959143502230043937448881457256396192078429143852337030426510485180020332621219637393740043710129775116090091892506348364912688607365874394000800240077617827948301733298998889339701757106490578616259866403582289681480849484702206836043146344435626154072505723292926826969778318990090466824689297422565122758028978881881852539572472329594843943569495143898964351265874609060677936476718905759767557260001571030001270092867599144177763587004920427006229115837077437913370578242559997488334203097276256931167622344894981235464841581312445922110652963177214951839024635476562899623057733717756341683398538540186219544243917903988689727504978759557504176968679661332927898270354529199185301750930204775599404952834045775095914281450554141379582175370017628590772904131531641730276389248942808570171307664644994076601672125796307171485353629307317724772735569264131935513905558868790313822730967605141444370809956860658423726307392045273066684650019460764618619372640526294273622663300595227498657133738825946333524973325550542207027110246605653651117687724521014506553168474986367305448946532540474893388869248557365869679432716914993442859465574335121871365323172923833563948872033523400111136335908325993726897203039323441722326701019108319141029069767925298312387113419171023353378260806821028274154401981134100046887459025248472581570918659047591311642042031367061163803129305674286242197813073317008004318891161906531306248312700628839292807615273268471278112287242254280686712577562728868071085695228758880736738340437235243488356133558479642277382125271489102887557804783194549403363027094606842380210400834667488026364188795433527577544981445825468426226966251339126604387181588501140840711373558813402147317384665154031630043329898127149629959839649078156964696368351742515951594119482635735080861516941163642437159631942228441054256689452207735878737645596703436464202349540727718171542812115471059500192565619727342228045250175697867315006548082735048002511008887076631798539477937578682754701914147587840653112427119048002441520389808967810014186501091994293988797533271444393381409644929783304158973524627733706133615518327014294049249146052457736870780326660012259425484358059834821568380313808292999268866517072968722740491887636943763758154785233937542881588386971863183878099889679891704504840976841885253316520303390047045412456519266077291646414788953895859718965163104233122441092091796509277257774169932884537590963210566546781936933519189322405173031798058776948290121571985960576559393202076550924409021136103558555285478581062866548840432152595759583622652190993110944781622247344459701718201003522505030865547440795393322450749104633181287793455259288222414417038852314565816311989974893731008620962219938083767064272059725034644700756156475177253784212672146394159576168501998875912441216042613857413613687724437478715297193075091514430607285683713805639614234405579624847665045105677742632657562013849738303975419857060485059535123772142220586364043257504197111462660540712317223690195261651015322630787870347572908592634519851846662337837682287372826184717688035981320086794175129477671960494916437714940829913917513677187301360984850572773815601095260906232704642267913978008880450259095114574001305698407733599610828489875280019186941849792594816557576207316865014262490798661389186245114932957640195343530248756136342768409185172376586903143878898072543758814830045527113256826367019508124454459993433864870743918748443924301857015946890871004764244687413330064855057026221462518582912596793392117811069463598097480615328773745600225612355500514735099158416347634228689463396452903627931260242017315001036769993193631649967462637824067031933628316260082658490202356916451256772239768309890215531010376985641377726085667514411130651884861615151334938147367877892823327918292855449958467361396884094520694461804126963492091502909679013042498590101366250724504296755997960875943125130145050913247893676502891815759641130323821030174476038870867622798011544277065478798360244387764484529830357604781819074201398779541998199837007328218425462669088178332458032773904478723703929615248100534924996188882450614564638629568036237947990476116298692737931271737553736115532468105115748752851503103590806183351820414892970451916177332871476538110943562937332114809610030878879138254514649069772601188306877414681940170109467044811185936199843285365427980545871228510847167763961318170233528008550814658488065276250147598062777686826139998545856313502385498499925685653359143317584578679557918230854896933412018322543551266414070511936444499039965521558441504366233497681093170861120914232252049162455222829647957055542611371009201882980755466800009047549452524709508564031573192611103077574164474350463643910368956700032498126113087088634774382127074895342779518452125032182568411769170987573626299053424245325916051488766220914258048732509818195881442521540797577721285665088277845389887283585485442910604210616131876117696133918456975165377572403984405776465381025642824972570686757764484744747518744440837305055452035201728330107657138061766910086770129535537175264018270514214094821415394060308860331582169422099228248751652082266448938578215043810971114522144708530043998521157528365119369083487375782741195861766521536627485549571256782812018803961115500848798230347420657996012057188065384009916078039061464685389710113994178088246190813164401732716035101763040054154574632317758121975719344580414176263587614901987659254747546599110657456707194886405306246246160478935511072127976873094859407165149581680448331071171522814096491861318594980370956132966493686777077515467226863664812693711415768639419857775944418363402586149718569219750914373732834800971930461727953186314635473687827230004879863588262865037286399204320551923575071703436007815749163375131616328020546038086281473934963025808775772506579655092343949893373061618900382337155722649235400993158183888474451519796076897045515059241070486224921428699521119847095980482368893351523255138909475944307757166446271429292792808954659863897114830389573410659375087889889195003615962134841325559921323085868745666817472199599884448898299188335496177600830862685721878094590976562534625762414251167391112946630546801197218664805451771795733897159450804331920804130176518784915938792636932917974535309590561008759939104209141656536466445956708355647946712492787679805450671906960636389234487759572988239987083137872984740509094552612320930428023469768784302941654133500844261135195945254805690189910411787266957671530032477804086226329711343529147031987080333563608099148117524496904653709534585456261132718502055259639705978754057234730670942884870049996057608639237396786849574444385287407688183817688062822612549931142331529054611049476579082635600554682628895479632745700503977278278980726601980540482909435667590896846114264133821613561665690866921791888194678225143217892092276923931223671600756200509071850795852787880405195557061664924392891359570743762073683160770611173173696072400848006909786166759803200707199415498283732727862335031003765515767878477935854729738880830855080080579490765872435890599225737911835838874833978026129363072757618748264797465590893458107902164066862358289449675104437191499796090127995297834997698295705251714455019952149879133052404300632087190779356025468734213352916294883677708153327340448974680767810439957194001333726003153290239198851433299879487341925904856388779112480934760765840629155966714488575747955788011052581627735393735824003328167220154260869932611731936265139078604066863471488966141797732409026806907441864360652124258664142323569085694410925622980429098244654596879732351042142285103993968498511042688550649637958161712793446662276340541382939104763394320011286553137483855165181355912036712076224591637582295481423196938407865609470652335545068423128588612559082328295651841720034986293243017607803328677573436535327408232253807803921372362384834869249491118191716991543375980849929864208131694812153965934122763146243079171327246860441011793053117175375224747376061061124714587682149222157658736476641644898123638661240642832415400838150241088309438043418788601414487355689532056115157838454812389679741186342726062371558626482580625666018950014986819031664318173369752159283387016630321421469046564069328174882978885701430702024473783216521362326927750893477492412203325272164427137957573473748455309038203292507953228990273278032113642666605954389696556659915192356905748379021349925746344570056094253603229798414559577775009166858035258127856248218970110087494203785808526696822439403337089909904418770131321612609614449671605195250427295574201808575553856159515002031634978491342789055633178298619556189164102027997480165945233433629048852703053820722408918943964745955367020046318382013703732753923854775209208660200289072107546520292144755659066612432724190975263022276820271958329513658764933834812611959086908990762211220098584551277850241143509789971745144720835202568511482264375245873151477313493846976550255260909048573328168923369212474587420913823119366320088569817581164426551457762559915751276723109750162497857023488821003731271919999499289116128331017699027196008472730769889228977405734892831883181912403517111673879124894254447713178359749706417637029984558517836804696771125976077211504381647086075901381608766392278852879546982111061068694993395124147790881271467078380571255894824183596608977218220845219940917563754587390442398481872164009926605688997847720800650538202896027093395129457115019246149424039023703404384998042004354112728008876032349975896809003457752502581571234831784252945093022406248643163739038872790420241831916232824754987571681639566556364638355709602901677162794381477478816368130784682418590641238962598073507118326369622830715573033080233121720803947932809594707750044763898916614223467165720083541307120365143337864564413184236586581126042870721755997877815292987582557865703880461794466927562697691868425857883197555710907978924372868311036016962144363077286829604705864214939569550928341745072381201081238232618801886193151650548928623916676509035612654139283159823344848849857383861163351470827398465424443406001984367938512092480166168020997171379326416352613301982686418962467093031383813473836909241143495567636342782706189094663220965808139546875867525969525283914985837235741007566405673570459656041257448151960273240684016459201871932503879875484724887455576958362226053124376488657846238935450967669780012875147596726512611055004624303722924187798953362862348462981734099033448728996476750104315915865592538585898520503030409398396598604407968105372160363373979456031626146634975305101078028783327816160815696604255219795816289017067100691808184965371430774596870052026521729236649318441362235313420265824930402005148341522402477273796938885059780603333684461360842295336957392889548941287662392117008868757266265732070484025940541738073496016755966785176682306954177246668287418222813262012593827473127256294467053552489922607630068105106071916725613923527272511241945892485842447928391488294557131908670737254084124014682274104186576826007224837642112643001641556739099710249752921495871450830195067782293181632291873474001612331351874951193609764828205438916365779451560127601757450866116586418419963350601756049610594017030866904754629858489632333520145942419254465701531616630909793569258674587825881484506143829719736207404422904834889963809888694994841829541765769929112668217672818529045113411804311645910673960221227138428748846756235755215583587090981117695999735764166393576356930034528050552422002067607580001271959050816994601340158386443186129035471193101495573028379357532551913233312561799286496311212205117825173279312406164521725375247065245527896548631609576333829639262838852432681203136735819272927912674966250840649006142896512322311924451951944452873107537867807663031146422831978362020120301227319651471451181579042854551170202164920795825757730725740125410094209321683300014137988165429171513956294974164358078992025700837874973584014440312406882592353183583398193521378734609490091232585974364649442033408948027331436274161321119410126270862488316349618388875038932996344646985981588921766848104825035029114385204101032512514450118994482249574336337505187960953783549896965830567349736338369974761442199914519237345753260317416973470455471761763891708636902644561267174758855060357064131232842131805714870216105508846642395871258485468723412713729383563547836144739257792814440459073817958750026674726556639060094066525810073410027084875434680968764931704286446333472872181498957903280068330217504774769408272473508298930336571899758023101554668532306280644010553834744294158641759931877675341831168175181217796153366295984894952436090641419722532394802527626077608478991975641420283633704381463329813764158358926892255872466813024788019848717509747026777761252664648811705171672178393296662885486369964300763884027143164885890540904909542755481089572327929365811212144295247522002669363552330045212621213049405533415500000439444638713881639728706272559370296993969340258935679160494579720766807216328854807173337547360457012548739965881078331241646638133923854251269729996069896989648155781711215329666973341396042678901400561003385752133345488884524750736957369856849903837599667126979682125263123949478058603242321129377276702123422227406942182936757397620723544091018739346524246523820402406217065478245441111167785332237991224723384325540545611447656406447509818309512085285096889694210143593395245990358137607875083788825747531198994458884669072714824536983412045762765187422764249363939828005583523156586281821952621847967187355379503904676991877456369117585623823389953046315038466999513953272372698155406944269504390366252036413626837618353870775747529282696249503033788442729346671246209436285762723273652510973231165817203475180516470214719937248242280988762049412564970140036073657029144691382357466688823737617124017273342491525650397018725208112708781711093610058729521649731457614743129689005641677528442788684513352961498016045367757137369201530291866679368284058671108161635623900764885650985040743757261967631023850342556185095936137305219915561458762104646719945159197238270721176069784045139348364808922256543597931846326518866559804970060243324312122469071502325199558626030136520817088800894053501312216682922459009103550713988702466026892249851278713980080824747280137132662978229558700929362271247765013352344305746841289579164266486086922293268609094930777897373796481597166247837943573937963866870346322822355423510998806702012093581987834937662020894112103536882520262715617592842703116259038117982420909430485284366109072984079471583007980656176584090287404219590550281259181450131835868495669023108726687728677605010389075323744251700799862052917360591083445535494149098843970059261894037265203822360118355284404210603770237901741851972193917240340978810621235347690584062568702898329711651209076222212400056104585216284750628841096662075850637851648649070764767312872389882598055240174606985187403988832641605596656986498855826750929141861694337776143957611012018713912537043743572410403900584238036778849451145153544377997957078126868270817561626434017788320537080792060386938870687043949046972449045965124620833721223202630628980917241050088041622662265941869952354823933353353684986055165056005334097934110103415159138364719932819174106265998570578226748122496614085901346270039184989988063133670155461638736728715530494456783003126915265608512348067715366115483526684483794829803941084814873306752700927499785383382363679924337251692557781677698462608754379722343603101160317606773753100542782877612299623342090976180742678966194955544549910870026405443700436506992404562921056953592318187603788735110354946058447429304944121953498012894861529765391384416756594498856593450359465654182792315292157381513627555880148756692176263241004934587171388087279517529600739474824186134143966290921055619725844821612216208609488620817414068806417457941025706510628775349690708672919420848295541732627194349434877505279315823834524966211141555911608131437161826179348931400623311676109645775814948410187412619283476976850086959121787210938588444551980964986001865769780750276425897602235630660835382382632262320897798201952014365626300725374052075925355766215427703410675733934297673296868403452088758774648961913069096853935806109157894886158046033936014762492327855569166786293431503310875943117984792500027053034549605489762275428534148630268870333292507446799581965551661502664486944998847909399319771351294639705712203195970779722238418804694556799864799756956623251589910713502878522215411456777258977941721339505552948562518210664413529594696092812230108567361938144349090906968167868749905797390771092714373870627402776512681749729388171942536699613102305203278978413541773534376025836336748731882468723299730311834362883116353315061168759824258897129046122109951076578498849581440670584723441651139733184932622002577422207219930335262477980223880953401783624847242255416251418564930223767964800444642758196112566549029702811531331709861973156537154306960709444056902696482586426750957241544609013377503083511026647811602818245645917535580347756539731918726272640429553039692956556452473780102175426707145440194728699906670462677631154299366060112775653756522963915871522604207155791264540775689804259266599430540063669069084365704040106817671058091331353961518317894008243737258559772169399195999886649501477820409754484689409692977479790178250212423415464261276327890760503135494334431763354238906644563382748235501879446494397676991806148476531286937130751576487067554790625319882640003964053682729890869424258573765444504604393311678724047481329031535614708835436131046717050142952847164947764624529995756509307458054702933908185394479580084228755791906568756556663520659602598830211614705129310050156898937898919142811545122707118317091040982248211984608347858865289317997525357992002629402166365404953216689578654332812158031704178636347159459693279550861769299468866488829816718122622467338641514928707854018488943821171590673933399652035528210473450301171989754646978922377699308984625705754862101005450989617988953833152467993962841035594292550654514125447289153900709111365747247059209943576268534896264985198311750800347113970222737130294950768150649904933577588080936165585778510878503996736730290193123736177551305419305024823320662572205908885435834247864281068117121151781214183651612472035659091932422560481882299903570639740412784241643306148804184375231416669336385219067744844348925887968643216118411241922799193357560567923988797122994792123944803916274874230160098992944003674365653697979572883496024896920488826017642196171198838312690778270940974056797218210441456985466569293815281034440373463806679433691113954749724451699913994448078673725218017448702178685646816117240785794966250395289686395957010190936723035446494259498851555482785455837625010409135609820395787483631465789745937375283001034436459672071752696764828356927153363180535100800229606890946032469059877798617406535032990967248671920368596263736948809301520716343750422960968386770951631897421602108777813705777259906218631976242978776266928790267903282642205608250312001424716279926149153275207705685486564163048648236112578514380533916660186753718979347908229272124089343491919553814987073985768159847362201713848597130681404837689937421232445000634523787797100409049878153055558419501433924200795622696632207354038661839760615482584243651349028802217315442201870371385523665369182575437066271772594177216341074188651851083639848239862422548498388800930142500776072074927704656689393068014277562479024163404442083950239049165736023966439729178307817493944068237431614032363926068736613412390726021809796930269062927667806626084296163042291912841877629680975925515276961701106114673043704557654091406285928969553720202542083176714035021114478149232787791862778289783689411813236544707925116504123967367452589960195702945301168780280084990595786507857250407952949513266766136519020266160019105040937424940410987853988156931832249285326453814291264604383946319544988324378411290498582612315620881892059544344882570904653125467057257940459397569932973189885395374481926387057495617809462005172911512609386386164068453598351922960000334629776730282058368630753482604438338103389840738352347658440526116019710609312498655794820793462349566080642504577585724630365392855520034500677053508761231174962779611197932833662508984038306168969981618183482894811975242628403850254255845713547704855323944415161742630345587360566809538562401781647549892362435913350063374309531936011155265002013195602925671299923282500590076979379709076217376042330428956055282773624457772715492748113243343441063717621372533152392331332970425235430605825995419483523296355530223791596722845619101886464923144716323776400790744523063364463842570313185755630850684871191756848432155104740310089949802471439600960173610030871674307274438963266158374511931654053751722934493051384543100453270016955002475440134568126634955377345049095361906092952069991307634749700294619583195654615020642250953742588718211498403783724930152448658178093559820089901654355490504093378884373075690943473913059456585490907116810247964903000719443871898924359666020944135199393289143948655914449741829774527018574196556566894974495442723898756534547483383074396907479839367440000904695587947307060765552054490184481098950628206692884489384828509301897720810770862202069664504659182398970646305267799320608411953978267588339854535073010064961092839492978700770932164785737396782983389610790032587585923404005081419143742274939567460208234471897592039576673816721701537078787313680938396940068732099522712519414308858801185693828546508426003050507724986079729793778885680161392174645781577663909889937051484499738358022378535101849887610757306305715895070007554280469644343867555441393024092899558441236785425398173953588856844236370131598255060648773147346001392312867411064385812603723229978543901818197240120435111424398653880454089698371584417017782144450134526759379242035629286094301932618971823583247062680557001779306059466396324615592356226115804059774277016422670637595161388461267418282062877821465796237614916206460214923733523973514983093895473865808850378918076063648332812687224575366338280050074513233009227415596183995373823008094963444562556187382608188121730153336129404217319896885758190132489903264481669315146173577234386571731222060979042417184572317616065279641323218581580138221897200994191132863253601419986443492887976100724053707954266866405994056881810148153437908587958591335334421038417052515260480109098891326117759711705233021063791357021534672160504021134058009400772110247344036410659025805346937887456710385000267522709663931498610147682936407198104943289415696210961301923663469641406994210799075103544628951785578767526960844275419661991221411667966720593210711295298377069803205726146335697905199405470952241543017574240388236251241472165255897768935049418948115575143652123507513938720223747050139495042736164196963512423227585572246928364911056195761395244688977714057216653133620782544457033688085462027304979672923233490083234906424118540890624451400824185391635463457595933341827860898384381322031324780346065924486400543552883821847499185238685282092653631769772254650617854509020806990674530601969335524926105176024904324589972817322990995713462286179890610725359267893659617757901598457590229216450683934918728670350999001556668257342765348709594711194009723121940079964031524316275252405716819044299321495629586560069630611479653507593666371493399507426028152187238356783509023913850195367082576619221894248652382468350199206301325921541684511165122761400503812592928893274202811415588244918407703563000507545738647454045642114302760438512998605406359781082745495575587939451871658617698362009693629825882950918644265431613190057273078509737354316534727236170081798958179028221427819017448585983593631976584032515939925355932730487305768895899386585461040112491368768701561228475138077700928999218661671371712267708994608253041102616299330363457521643015138210471024571689793457363751589126396436685486688672689751910096506025496192762702846542941287515930662316094882782208801497278550697593123878011503604801980345308522919070262665600729811967655750107402991686048778968862030189259544893929066361362295563932075265399339267314745069984383430588916426878583949824908255869880277439507797513406823626897564435077518568918213730698698055859900520985578502567734248913768707594401083135937941774303171688348480312779785778639838964555062981731541812540133298743724886761985193497043005186343140762137264430421145315144500909328337389198045856032524868948161187208120150291693216117731595029371261281675786181606718301582768047656842323410382857755967334990951700347529600086833083372969017633459969328488465019980744601840977973189529040580772646194485258084358926211392309657947188000793417171842415536058438355609490085579933303247131677510343348354161440994520019006652822921064111934658742560508259053997788413751572725846558124270220003809931346959149395177968110520510854936428659782707481536751726011222134564777441168251838408117124827602369458915830401540477401735003527988565830757869621580714996586588616914395013400252875580017661056373224063576678633055028717455427762757674166654011700368769560513005826734611235032568184407232074739900086987170507701565105868661159174709796587166325264343076467023425967803790356818889545571784677856177427125135605010874931224690645911731869311246551104133153141466194021176440954113875449849061595682469418768497100686544388645191504076524531594111946646760008387523932293624450604365631677911238197556041883523505046130558502935785359922113795655198899561487539691755176754473761747141204424727519207508113848073664859879368258143781096421935612905004600803764990131130048976019721038447197584194360492598659120668539608765154470078704768737834817449699616369802665132928430989766203828376681256943167804195896915970853874081171659358985571814143987998198412113593281513101186750513210576831381557010140719215480268147562593366447588180706757638763205166455122443298762554624466364412630435024596890711360647419617053659978252079188616599215385438100148751215993202002179180763852200668656927660650155628836074907518780606149801486858548217337208685775404452820020031697107255839089870979186720930005685254723311441829895719657757076828652950723682312587445301372241992022930379394375372893746394141157494533126623361102668738257690038221563578118346589437428618418338842885627726709921779244780010368877392527531368000849611094303062551894191015757400459345969358508862178137767361840434713879126667591483762787857390140748215242680803274443055032555302870872113088542369010369399777585690502758444469477223927442631507797153276881877645199473457722698463213003648339872946916967714850890209924182233616408575468578216598325097934263232508412605659294268649870203488439966766976621873488764998248798145211766048434872773752510954487553740260790808043008253208734571758970360118906302638077196708545452534384191123060125857642305326056737167528169786230301344240269066435624074191653091697447317298465604715633826090011060876759216874545146662594409470719124113490780071950696318652985153321438470437994648495944888130574931779535240763107873984526459335770057326222991972192348144011148769736260552801917049910209278959012215288844270874597492463654046308681356537266630125636576010967516022274734848468851541064735031490930877791401127281222825619296023712961474408635410306268264536623099583037254094563896301963635533257508746212963754692781493213160128145892925674031938556826498795953518588782859047219977716333485628585250103234397062274869727458048953116077248262577718751826234031622556914111225835181059088103906951112768052144219234248639377287905494189300417302144173750452590118406732673230834227864378462329803900183586211909554797507781098256097433355003752339018495938630958515689432378410301359072999652849009714176603734385070981012076354115630653292210365054230463009401090468190001201891598169788062587705897124478318045993278257782759722644393117725445252049397577919725901675758136373352079055749552147664835322560140666948551595602186644380564333708812188889469376248301886477975404084689817840805350523749611212705768297791527002883782355198107873044792290601026798806883518039758579086251874363924176577893184671009475432733576900012396003819872854859680987333147109003067270950384422836239013587864530716122720569529316272291845353864752936912240373668177847499471938818800323893509311544802058426249190081779241069102942392537203201304070259104850110520216421689899872175891714409131447017124155781510848603427859061008375220917888557998191163593427856864536707126878440063197378957210257067686534275199018738497982068397884862228166580319697076454240003931231750241575174753282445298778168790928305326119020809992713069742822804899634194655612504081144349674286041754909189559092965051349546647688254320816329288563845670272523616557813209823335082939730831993851833650587412149984665163210487462596399167965972494058368667173981759828220663570301188022998400941084622164436064458518742204707505267635344006435110634365946774445082446630372519450931229184422273566529893761220959733684887872631844346433631566011916652665133872094171552944354925425381033596815173056891894623092200316948312917434467448243836091736580728439378448898951824586509840554722807325463125206267032350747641682812335417152102496857295877343789400832506170249641002351946409024737423214717144205555423180292934613717412231322991423284292450267431183366412981194308043381196303603880160476879634679776995163027934000941607345850948500846883989906127204820157669557922890325921261198875662215734610489857107494664144348597747290072528661366213845824088020949172667572899509916613443066399382350695018727335255613684861956084973058026348599193419177640554637580997627373626074867304399613358032426456745947696426545706780847101167902487640715701205807010482175198362270299701883469431924646519307901785386478868101103386942230966652685004333051220583101278789305566523412903224298148357871009625336350768893046212023524105203288434260427647486357542149085533167025150306872390877967515278904895943877404135929213926540790817506267951468587972638436684496338265372538726725037850580562741130396207367104586876350303322719083126406812460611854052724324508806501828836099530018918350828768959386268735887659410370763938470504191213510178909251432259360206926671881446278893105116756692095094100873435189262185990040030362717430710815243568451920273834898385712019084076572539968372460812133526115754543302541168615593310841391308920286443901360846259414824701159834653330959160614380424204232995865012404217352137031553247871261609789738139037620375871117340986233122209034157424701106707808380237801635517545658890280964142756935275531174998612508316661834293735069298571100601047346503098794675460880156837824959578909812962989906257896321412619647266299835347907335936683034144399790483292097725998070868169004570087245928429910587297095550710722392032755371226867824833983527791551549358575535420121263314930388809844415554345259155753993061131655852815178573306533366069606247594209989239920699382065135921466359761688643864130282569192254640637602926956409913822935627599784018635412054828269757683236780506170452011399642859289587675311404432608228006860542368060672253772534292012518710622591036564713344458118677570058925531402554104377259772105050540924206448215722446105147810758150964327734149961883565465070587359739787216459111073888468690216009694709820262772229725149759702201985126720962991130067453791451073860508032706515465572763419216904200215774145368458585549979602806440192092428043462019978203853072850375653480843857362755880929749557208567399634791848499831832636352735619849918091140128487601181960723287591177393402457519095904040658824109746524503224512878926765083293393739684167379285540488737765325574739657583267150910505937841125901229648013869408731789007306520131302210478434253325255032954885269244080614021120207681598369232679300627043700458929965410670341373340221431721871648229601205673218187341391358747847379117998200709232429910473596280734834291818094363051539501791936899707654637034231785019897283391876556382698353586366263636394391832143199937066288076358502633166320300654636418200039483037097963967521898579715082680763928192278414506667754349973356855796091053616234962730541010744569962330543798000282046053848446113088273792197995994901640451823583169165572837366078537770930519521104614443259316387845978123739046604956904571471832376090206394595576938336815034749175820238024622235965802404762327844030796774176096809875895133023524307250276273213952458351273395013140596908895028669993850836834921505898084414673802217041285037271351992617336542190350775830754893639021036294843617972305490996544642269891220327565879922000363905849120653709921315351602668552365287127292526705966764579234611920310301026008442381427590218747387396616344774249913537195759823318682967987052888172838090812394297295709209623582828111652458157074426689027886177180956768632811591476918900568209394283066003868893615085187145490816778600299189248912168788746923275388789338671774216992634383476017322253240180249891614150540929313906923336002544422777325962082081232003531806349084034004568323975054277663322963912750988879524408177447847288831015797307632675460821215375747368599871580375108491785855270975134533054568524909436249887661313407417477063356032345567141530128012912462835344436821401957741634404480013666640630550563635926635051566524004903303978655208981567998175581408205960483740818091193905791403199130013900025081016046581709159516856374800684537863236982754385935777112264132104738014240047233471981945959077604380353108107356672959630920971672384121866059648093177820525894129506506093573287749767841190197318681768320339270622373335443183736062756610460513537431130055626513618755371704837908601288597800233965009438653965546111812019931765377746216836294686182198454460947241483931572560528798028294147902482775178267563242917886046528899898470559269511780956566120877487285352043574251779610421683410691346909018596921081446526364809125355014346407008204938038540938575636910163700666154977810151735164438872281381184075856088456311947662093475805092517235102114805730915539319430331961598150840817695753890582876272619909219167773914598349373696575014456256252289479489788108957978941935209661813508790994157763242042124743202890022561830767566992595803552692174342009028950757935269283992249398011859230845387143841965212494067953186862681805065008585875993858761039054083190139581586910950260573976815098363764016406428096355757147366085419393412772854476412647389687356099793565310717495638135245672272885088605948537756512174731993131960987511511270402867900416717142494856707621678632395060459121096247218935536164009580809908058588280900606463297615074358416900417502546989118017262867901700696624655921574674412304356468358423686930542084432520908642891575754357593482430191602086627432689465740085418923984296338727013455349782689713633186633755522358067565589944498505844947220468807010197106192879379125170159691355738303116435387978188513335043176166057207869865054131477306699042549221922425768210633984015391194961565570379687850219428510501905219897430536997775626823532330563392560836125740149570866637287959754793212669767278873708242987889931938689774638773729044066300278441794245862735519553283015236803006529081578077817502803144293055681121939046315610300175853804348560429763737110185266678593159595136058640846181504784209774741593141792770312634602148294851984604666870962587760431767697967413279471690705325473955492093313068342217578473064931479501139379252768740405737602701974875997291022581704524175526929660467294953275806603327520312374904465945973407324894976873344932135145484963996791381523630927583636379220553600664074861465896900429630636310131800676877992896288181293156269566816719158371338163387578726385905111737573073064887949167829219147451081274690948798219106313897618085238330822482872551816248818429117575271782881957060179592631133555578836464046297892221245539902976200508555192553943604130699962055378337306894982782244221509735047542924223848728919189224073079840911676470163835281870758873134934839156396240800137629147356945348395116614967076299667145291283272648176924975243356134297575233204877365120061615778345186157140629525598975987595983469656605535461390037274631662204716519068670277207049892857619773151892573632188977874590656297820376015251992649498492876459893591986213971438907583483927108232261302523014437772399063667670340225175784444097521244674524409099915942467457521538279423407272552201432429140203445356359779356901967299933919472949151251619633132594622540007443462041787622901868027239170577252373278627398626502528994800252677110997603630591095521572122139608235043625903371623950504641749893110144603025979385837682613111490960125155953872818134227782987303373203793108419968758442749216141811330563109230498204727995539730506606776390136284863117444031498791809648640607780314820714023012357351520042033193683956541001936240052607678087351159420517931390894767540714730705029497961637450614177418963349537937536720349349118351997142824054427092103977815838420632037805403170303540098316412392090419207272315341505015006371954743074252912098746159011412065908515091032756632463094785948075486799969130564677568042477463189550754926083664301566507477657129591737076914862496169992844015961448401444088486554696332367348140530703421838380723287327267372233634970648659194295967641961555681548977534911093118619070927213876907275247965016652922737206414776614895806597341010447609040043248684478264325209215889926095370252962233844086382028272625079747568584045256466262824524575599152104420642879942617615272362045335823820503142789848606784277639976687861321866961916938633430384154601948371015194442542686502742447019503930545684128165496786896791596810710946732166793123371017941420212515866083184728643386642605658055190199111847903966294229866118886570641844181765823925567544477174907708416964344294808569301580103162453428943341929626043191059455051479164089309208670964730881798998907147392419814480886405032072511697170839666635015867640974353156060096299250475294646208545265730206677847619704215199440669344227644272295323664829783743816767586865575585730085258165805329432059377684295798725901658119239820195986422174186887731222028842296552692033969024894074936141395084675484945894076686573329852206701043914168751480832695440294639108852689066923491873120306906018888301501825306390515781771867671773316875033493451492845777346836647717028139927547677059102275006989027480187500380893291634401162600977758499502442307567161504957014824520228064820629298936065109650462986246601594531257267540995757222973333413611409379102594003682072619021126690661995516175312556060779263603319901814623496946894549052787168568362254386605385410155557231139457455793667832263805741564297506682038558267858538173315764010971403705033924223092080661255024233187361763931657230006229119824023565806769770952551300533270567308551999169124261170549693388392998690100049970433865740698319023409904197440027098173922502056716094418282748175563246020686195829231640969261131229252285352161870546670967997904230842074358329689953571129576216623133665850132756069074639354317016867607705472820302206173265154333505368478371086315903767375826118118442142735680372910677560589840097091961998921133455700918269898593660286415616847516774247543757643487241282036519238055889895080784635273906978706765258460128538282707789447876515493582163307247492841853808752518543808808221432060162368879749210383978252996461115875777289923793794244318391618051540965750621068409748902977534008670605003319240249365238680456926101480463892481721202618719677236831958686651138115107906057096962360211452002793606212784773205193190015766987410032426554178028205392309466225657777903705580085811130440392798691325316737551381914404438355515135125540909399871052462243795803150315976759652215590419085107492794694274845694543562802244978222737690546545483044574394405501310984150208006270521806944179493037133166859169891489734302078537092394574332438467059323715952701345395789065353696527718392688781518364478934132892959241164317387816433380138813532136268088179180171392283407528206552950255735154371531793999972650236191526976470192012107875330418569270961442600038641815896984516304884943998762298971955578365577679728255367384130379445101838269945145559948781010958825900073620181236511007856979222141061019780141578423857064539630490775702866002154379341890501996295344440086390065916759234453224910364036266113764761480861707620149578462152159439240304303845290721577821483698051538811048531289479697361576877071693097227666370659764175698671437644251891313075812096701932141767681311611773346135947663878923435785750831619688786830567607869520803592480703980029961964889046344060183675125581617116733831461914388546963428939028414955793706851412963019809329349338147184366458447380221427658287776108237812916397455497557697896759329839364444776423843495328369609838623827243336763537581372172953919067405755479837435762874973925534114128020057262501931525699326105853883701807005087879731432386926427692742309326774651155933410491049233750479842897905388839563980968651727040332724626078826319292704387819316149613675293213821175782423834967980157162572934501694437890245239869201953925698342273518494886476755945891659322459645083859484266955136056358281080152992436031798390967603695028853453298226705213569000348396554221721223304251398737496294363540573362648992096010221601414175602720837350999927082944008801459229345968272473041523854716950690468027996072719163826378971252115289972683134363959480660425787811096651601375996184870283662019661490587605040390586263786246056350125286213626718247646522485850368377364983785806845188477241636140927722476640002618244778168974528101359855607499102926701080487111662310074615940642342941611431847558424072780774289544618750985454555530151549429519115994061918191515622824749831116404578539355972276566127271273333607704561286826917442502827235722595647252995949769245571475373400795469699859580257722092373933272034509242260091600095604230347543446665580942449488659665824772661216230336442067439858994413012795301117562927132243862121882106572757389968788398725108575999002817574124664967288139968545441376373604326611859441976757045039714293319935323174963192868702912502835866569737839240747972905324649400566679058606062801499946308300298712543052533402301009801329991767680722367067435693535675901778480498881103143507145255007729917533549203172904591894756823075206429932811747569148233489316033986455463256660617489072450552607043057240753017942530545496981654113613194406733008739756441240429001165022705313945483901562967254266872695647274778768594772873639951741500333420727022352799100656074957633622265726994050978299921330269417849290178793407710711821152262245722953348025185541638060296881985193516434407412288063835293670744840890913723970417344726670399494556263681332236249808070895413275569048198058471157416082622117251439924747342357358368558346315261940605078425455588160865501431194181342906510014281375518063390564670430137068429877906767005524227525917744240079485791613304649793822844661348086189064698619914061287866244805476416695328063794406397658040830688307523298694679502445344439682562800499501453277401510190899628116429371385732044777278988077187329271445720167171360094297926068659639446528979561659487363468732183113216315738351540175184296906014139123214052284193509404104113945588815228859690472458972908447100765969946208087207308867110635043251758944352251785910177037904589046083489950696736598144186814495256432417868468107200635808728797659077672503279934928137211261339652851112380355557899776961218624225539274512340632287058768495727777679174095300662927782919516627683347164104210251714384118485909775738212591336813410928395900484653141611398429936679584843522516225803133147534251985884786926816662311621003762694716661082712800653358787463621761719877689686290207257711804933380303234636726710378057653597186621317427240285123981174479475364200022290104285792123391148470044336516669566728482309938795352527545097365663053119128751720940497274099734123851394920777394929346244589789381765031059818489582418549120672834583878385215750257444244025477917233829570732269418296847387539679323546690694262553603426946111004149720034751042526974043140159599985901814560289140400511673068391998257961751258022781175434319677498598182134829979028568195098998191337673529859706147021224259083919021486780729303787506145820019707108285934079603831849270616105456684396924122390701549880486443211484741812471518228788377319470033669696676872513795197206552309719870014983618433487579380801501430824226535047794882336305772446525994964832864946660744640288675769446438542927983157375920701431259124629662763017518076257001134418217018586139052372392816104166290638502323679860379867014619218601572753577016615058959856839527094887809408925446778789557894638086864340290713222010793470762189050555711636119669020336751426778123804959934123489016682689696345220858604131617821147773811989266738268163887894914582177341689691204599921804297465754630811593444049151278600818180248779140065734787962491473831904652926400333363367077221648919871658972286922133581845123111225772181423056973709133724571552176899420161941549645523885613477855466772887362730351301567449980759940243656224721175093858171790132013224490193786489395694524548864396599606189233419521851011838733688205997777689524654756388383625714178853119380901556525166850496414963077168963021886273121345205480351776881373265421263305744233783619204817518251353899208989729597897011828815395210013550502246723280827306626726952797185170336889446723651192752506489380552102868681078318926577222736223881549734570635635379154932425039950488070569008566582699353180613147573891398608302015855622162684838119981483766850917607675979633276942690209284976268722935606768379971453917911254888196813887220964407041632924762114904958255905891984840714338005933814489969849247451698795977713567793187755666748350053631600036929959822869182836349023070722700569802601757498464066678591997303996032002718073315095332209674153985373466035858082605872877620487724765666667326845692539141449923619587982338194709435403901097922637137778904457440909598354258891571992857660551700126461664927667231663030508278709811960532278085220065601652877635219664737575994146475429462844617178263383560620931001069815635490122165258918525379474860248285201728201580238720538734909078358558052898811600085180108794241831644615478577567862255663873894374276300966503474392174413586444384494816161532488619842938081170632159832490103554658424756487481993413925398000776409310299116248782797156964257872783005456552669473512085706293102829545324812095904549445376172031028819241143765391509824660050006773753034253442951309779528004213550006226970287534840415591976202010584686297998469635047527257586638146677051847509924575625134088877789833870980570351434228189911418419751658776073986828383962234765011634651808927864837169565285396890695238164586600332239051362213646611169687491868813378343845726008838393528458560114309958272868367443068372683154541958482491676274341689634272182874043699785702796630900948169924332223296855210580052939231065449247065756656653674713946129120570873446858114030405470288208290657126376285206862389674625011984911556700165278874000414406879935543502527233012706691037919106964786270695222244471730373439499805409604729831107233627061018970776901499309729203869763567074463014355997077889594115568979755801725672040499734086662657278694296740856489399280255904567881146682990845386032483367468855765576867266804884041998955067805773854117003496587907373350527905363794118000449616101163861180349636970728375682818898175087073554792057326099120915152472422371481668113608657045136708451827526007675392913425028388666769394682624276463955652065874070494249284173233989392195246644304772388785634962011263367689520710320495955179299898461719879198598894051184701433721042841809782310005936204234169478698167999684991409120315883108197747971903888539685652489201634004869677222119414702208894512881572947867022434277390621565692941393178957622718729695053243319190051474009738546122246235356103535654824363181543308054832682457298090478059305583174687411997432695709192268155033425649261607648733292346991481940338851927872171488510351020850256098890091748453823969858100202670971081429866025589242036295905643495412310595878112964509560017808733817896173755191907810918766055393489305683826222812351399409664771236499173410570450328840584099677956509123761527893935959803796678378151642665208678178181784025066482004580797807562348067287800209666407549054999321410634673887320677613034128896358370706298032428233051556506180500833407558934183487180846854660004722281865982442690019554912315827309215767425332422562490080783058175782286219331724019833133503624350100578558146508709306288071676455422604539405706266373811777572323332772412534157583817134113280531430923924146460429206314200573263659788539851132746438789378077766666885615838906682507861270401472966109425836102227119994509470548294826389272192020379825565987131361526291253751609386975017070280653725549237266472669123290285759004595250796167089652230408535361365158332553042151880987230959697016328690462643458583510717415568994234902687323663658345021965631213294721837134141159094606357860801817896265878321142188287441969799692335409884512739595056619938309832992648748047171412488621018961738749746020086657343475415971744196149913234411217003095390507906135614838748010286883675342091048241710165954609906326855451803194093489452418870739213753910522887088989909038355081148575900259447131104293839718069932209628718048499961053058583202803335619739253989094977877811366719691923951349780499502882251893167514235681007297848643626317906314695260104102095869829627043997081407191675299335790015529475364529095401686415463376205817887123354365735348969825693688885421007112723101551642107700763232351234043612511396494519928995755906432019282474693795773206617923377381031295314845944882388639226208256338322433161904820909699932461976883058960377599454664644140231421965349177522253015818856071666531807563653323417350192993264791435407140579743460059548914881658942037197441835490454437832933898689562661669817838895516207617204213422255107063341816687757865956228776584009261485020196700360103060662288831058508224120386740410122936183699245916529263281715754029042506673787219657137700149639609771068581723136804245002527252544103429714129710348234226221143464474819310727276035177925303340333119882776077405214469592136561965741588149169970704617512192312870051649660370547867127911463602677165868108219993975781058035438588849447010096117082638315575293755224308755067070155558163861403557413453561099821990801228571418243976009774672794009918692551549942801601348599858882532912761736604493028107084709905800232338415869913646918008416838706953802313659828135252457483364379865310053453876544520144689206446986103097574599299421806878769968388786160104459228495687398102802021753424189358039338970787193706777145571687355201558312932955276016224833407342233479268538198832341045157006821970845040917743307497075888136328060408269384878891887303637340610928312172028470084789664751312303440022347685250789108936130164060518549275071505494876258798449041999147475265194318501676698820758993935321128934408058040252806749821654388495036574206885048864161984260283307314870013284463886864255652686303148905448008867966891923888037871614883598675691117520991608647461447224472580273417168727742641355270679866901300946418208788441538527460260611318109587968379995257307204989451566834609931295119737712246759270582190876499055674409238492911063753541199158842807477618416097792345295608749194584760507796376377000282826103884679688133278489800382114454741737039144212176979911497676492605204643899969073183344535722846726336047705372629777730980293625921433579391361100516071264825624323037853001760318376329534865349103901458461993744514343012210532512340638032732694887284825817179922951792423034984740741875381590555232376002798317380557026939881945923080276005978720092399415480733156848218882162343250168239579963828822230742768168668096892530371439307391771928305295939158415797104234200145929564994728605967650674809715543474737178653509082449792743889893598010105295918321442236948915014671165315532213131860566937909024729058378194990940644914684803076596168580838789586567777193495303497699103417323271799248009303964249951763785868476954025308954679075408323460466187490592021172619642320971760272706865726540423177350935852730082924199988944850393538225196527380598456495361990126088238342168228207314132557965526402604234690840835973509548094562389715977483816351434032827910007919642809979566068061895434016715431611031350434869254681343987327622415506644255406004708120298715422044203244099113567496102183658592382530595346936822902140542209941127223236900848307932469305991141361342065197954321723291425284650354088156856580973431083292210697325557693128390668186811200539283919531005184780218525789995441803343686622794466229490228801293147507287635333277173550096812710742949568269970287957164402318494634865278459869590581636838372083881565312646702185331419941733819420306220322426433737174181281682083214450576942982823316959331408359027774000433203617057499552833399533077338208248226751655223224354337035540457780220324957816947874472073873913107210011479364314413739720176466135984539271453869465482477648828473921536598483564868092817602727082199990786857437381366212171472787516593872309877131535647812299872880939688448582072427346847630468387247413226699474427804244929545324086490002946952156417111678659477827430299277223113034397738816938612694677056017555014545836969079654551763159258736435521592354834222409867889464182782256076687552700507262612315864680739707498109263246994805008748916191374734887272680490142856392522188099716302781183722469278708262206852211945685788814243119089784642426945704049358880434887435289658827058058850325499020321353145678102301857437403006454038303499201356162562717977729716640693126751451206686643005899795552757456062478813985502626962344289790666334208530347609821745140946344767252619923236029123179251640056187231336300946795149581909363785091817428791172393807205942724278536863975457060036278353193071172599463195415706308743638510099671841963736810950742319209551804791244195829852849167661041681899077402200493847875300282345372287058777901257750985377973377229867706110085721011757672216075232261712901430118103121378522941377416833199204897847198642742657307479126781459632402362021541307045908856669883721855264176119609693444931776154722999499972474418228583279598081175435836189365666136233215320811055328157560309440157166515256617738845976971935291331827640518642261126265081826802771882231072987354388284805253663642727260483291655938499540105805848034437214831811282436909762349381953491099781379212730474763979076975266270427836151687057636752659071648748174706413382437200495137356753128387663210687744012163850153254316917493971044378795233851817921066254248003773010726959193196212670147376065959797497166179626778626615740849362359028039646374928586890380939672515741264042275977299592427104768056793976338261817153266682625269688357552803979764864578759826359326990298650958697451288180923408456102833799610543393292474808663477504367856975446669758996347139242904314116339318471764668720791617835474364761431214391231053324178572705925530683107470665486378342002034768452912697889971704606221968470125550982366951128751996851857841937769082259757923070137107027686231649112576992293369458939088222696455128976985352076939372944032521045439600132014728420708714147191432330648782895516033079171164663227688005612889258599335718118245104575724429095764960459981290381245922909666681456695216555198863428366960449719337717917961289478665795658502752989400766141406351515144969923115973824979456276770589435079433255019758623744219715623327954795200245569461815627433413289425836614980079791451799411388973014773138016372603027134295724813068315200624322093292899810023881463761856315258090531850269541401124502017190928725026288998467471167509335115410853814614800974817479836558625411320024372411484068083428248972765753133463751362555414166403413781571417317265073618203269314442642310406293564201967440249190742899826315592309766917156945210483079084135740069573275368580650511683295584751451785376523345027820523941064107212427574360193908687350850665474606243496520265353748736419913600899204113837615895639825788993537873682116976646450901400244449536882591436404068400406615672578207903098608956790556585758743492342875625490194153196123366082019354921753715702699752365327942628516493325983691592285331296864177922142396330436626875651718310200711783654681628496179265796488686490267969074801900729646457944616068458278020170407310798032688151678063268674598661658657734064496243491173282166750299414956025150852134079171558271928736655003536913731088114744403808416199778789184640635997374674806682726754884208193041016249202327301392685049040814796947725414297032922436062530710091285479319902324253931819500703314593376804374320476545188921323241021437745799145333890219264587849638848826162702776855794212580544437952354079037498128305165016616106635264344013596304021222556464677599242904980136165369131759104258233072731785518345832194714751611343072246527052995911044382336136153521274190449210263068967841730862698384827469122658768289190184709904585476937031178509801787765754711169329621409820389732435478570494038087964167851874156819202434454832194130649977515595940958914844035447284513496918323171921348852241890384363151521412287287891506550877473146521780004697758411066147983272519207881793845852845883089548496846250028946709078762873930405829557820025202712455814177953809821999870449417127082778770293346480292969513756628255707980164268385258369364536208465529359589238498220612157329167866669926859247872170231616127307509706906556744200324569266533110783999714256873891531330622482471164020989723701494456134186643444525812424237390007611566211657730612214750337679896386724947267194167599109533722986842458665808650664229690237282624103690929599086870567306692404979622590449725690124942694111763079213607993429151008763647461964284007781142880512015645221558198642356009724068346137327060809290119484557967719691870179488008325281776920849909014665376824233454753701279938850821475540921402086713304036090696931307581165324039478631387729923632768438944298655098017086455948163082906884875058629215457661666636381443287651158096818970758368334807804095162201395057390551993718117260204270364639186216387651639523581318447865496218738460941856078965630242612153627657225165909096952256779378185281459782328738950798468551720995614332707904844138071039321629467834446901534642040286647696541804899727086815532824396470077668430820085412174074958957440739773811651842671333136511658902800002986862118980656271382286283751649322737648847571810020349789955108682754657447034962983558135535098397396988658137981230390653290285463508541655128630025884973110599104325260059518327443815460320215788134045114764595608587293130457591998962674387793822014518647236710101720948408965876673004802547413977148109800574556692456399228578606653957344586806748573698038110855725196669340745575067134395808455610726849676092116335725267850759630787079247461877093231402904933892560210976396901367727039889773991226959822646614901324486280853170735067648675144784876860281057965344313162942761338343963546027616243102120639708504888308310956161195643708302689736342403779893745072642465254043362327577623814946318674684585349480605831255391046465243236978773758310507132133900774844633457791361312795724756444188757317541610926662773939292805967285343669022691356033798128178027219033355456526364768161470092435730758954888754019123637037764025501032950593557912000245523934290709598890136737797658380751994288214394637099046918002515044594855259006638707307723163900468752129501936731676869911966139207527294210760118049563455470769001317883971145165216941036004982229944377856209990665914296858062090545750521859701140865060928766754710177262650698365815003628082373064961572317023168086558506694856835238416615639268832386773211596116758053996134623134876989210305874687669310903993690666947952635697831244975177759406552777743081609081487779417715453754689078361125706620865474196738257714299643886194982412232175322940709890903799509807505335454792251467602263256426057623429876324483208553025685663407651447416765943167617057216682825798043977295185069777768622768717652034393411390582563771805675689674521877736660323619320880239457013593343325990918221382547952618735253276279573066409433169194298269225161712720353100697819789333512089415637783414785906111369060585539858459858596215294777315259978347847100050612019355462255128448614003692029027072284250560472274845313537559480684352726879114559714381355303357250563517406676533595871221005021878019694564951958764846998856076695287581134833053212401593041868413501247016516336747543912127830635187594293185033539233154545407504699419024937301664439036208190432439315429465024458023322698553870271713650679772217519444457933892054157536748223947568729026540298571167341575911859623539344408743784677522175921577152521726957629880242068267844081127346907625362585344155971667543046888801420724877448882261543080189236638570952197698084915660901173700265651176928271440285194657226803752012539343520311493073015189922093767503130855957570275508711654742256616700025538301545682678793315011776662903311826698763624948684709516798792334282271736563159445770919244849240794222797143080789330920589398132382637494090057229096816150158613131545719383069509176536045688394402991356386134124960633182630291817896828878882800864808499236710943145569253252021983848102868703753620175875507048207536353716109983784068685634009509731818192168014717451699880822769014582674742120560011308736339921389474145016165952743102852582174421800651355250221867721497912742561006190885649215418526176401120554485397912987219873784597445496100843037931140791428565549238660092251582918720554446974261990605902520053665380817872674374815100565282966172651619176830972843327251072661829668508334752749430070372605288880433786884703394836016023406325062944809310809882111474583166204123816230069769613073372666521573661464906812566801522459619408975769285930063220305049554681781020288485541383605013907155912971551003671094992913524890047729401581152880682075456433741052757800742213693141642413906423155601489801445967085339604682041549546239207127813786078642165094951361156415227363460911326421899459161949674710819227319905474507705448933831338411160749298455902594446208319120611515468586016921946995693146079128705645988145172073260366758001210518576301295106115909672461900895494356812887522285456587713219237646211480483974838582192897009253175965236970599349017878671511942519258339946180315175070906646641836943010490565485299915932749144481837023061925080143564261081533131618797516207495941339896251234608358173131724392734076966322439736775279909349431857486967814617815188288817221088603553740140043653907410553002342192802475531542528938219793048903571314114894328333676737842738561455622982147256548685637343989200623706736473395398979347459701772294269974703892299310344707719602139779525608191153536753851999923546191234739641909437548233722025994669040870546673198318728361622490325393658659507068840574431118362993839518883880515954542634015657122061841063292872557179706085415421035223924133077393626328892563200275060337221688944111550462626221495770678673868000006240327420855612743965244133412340956117604306985944840121095051460702309844031384791236646365961951464894348180789525320663546848962802225607231034267698465617220719534939996969359031570493675125445445043116678718196822615729364396920333561350409980765053519980053076363308918399393891994860393508556433080816553595910937246567946744352815051869635103580367697532964354042253909199461687193849166950579075457941587488484687877198477712450318779503657190925483996432188819501386566327810186387611113451911678897171934741437971708717733516503830041825163059888514980151395714453260316929549097590532565123330437609051491400708862787458368438642284221939125942488750492153520172122945064220062340257525590090129497599744918118505308364907094971353174731052753365906384808485468539058763381949221470793493843499115377811498269544987337206714675461495789549006534991139157389882161839235723424517981920443370341401874898084307441544370027321720136875682825106549569594791355504945775280304644899533955043043170472950516614971712508377349392949375832694868793316686063481288075762568070846913742563848405549566460041702515170934262016189855211665163566726037684625487630468548194146548804698349984292922142944658475720148019013905484959010393701317934412211385303027793351195673210431184039418143327103601275312115191130012814765035448774241331064067053338298666520596057043352192911994996978793398522470547813205357597777243751452638427227786618587294773184360171118365459719046347309091205116919888192309858919038659220986766314463891679449460626284466168357306395021771757894601439456305061494241319170017344490400588389363059983291134805574518094153902579360426884599213629901066898966802648795355570326130273116971863312114485092521552934780578374408789530573985000539105255215435816021853688675212007006062209403911727377800541874350429332078470011064144294696650711780580672925595727287900424083834482727475168326373202728231216419906276699610783026429880377762676812812036086299036207553694378195520233003654352406019516759497076320868005063713732449044036312821987558448951371635282800210961509517183133956145421150951024800639286134374206527011661041812460761180209879579185240716440366581426547185056197793376103306603073603488594213686554577460816857336740146576265057084930062484673420663728023866254068270319391384708072307770720292658763741784075225265616184610470097025804916927685072306947962307558161342346882929919259286790428734951278040523556876719250813060361321299488883480349542242577956942001119055935667362293788353588704362940077952363493904142521877843931124698243343888047910512193085672476509348802872202288454788658328195881329521353429744658988542179447230951087298594785842875890261476618620186003755527213506677194111930009633341524664512529732017843555311610886702279671611353276652109871044289553408274313189705028197558048279349627528888114653087471077767881397763768805976067446498924573061433681269712391563559666260042057720044988962202836301132792285219910448659052276446156321551665861272382150736531178487278039282704645180467908288104148923925954566418402567129584946635116264960187642997653333158844602447507011735942205494258612366364012137775240488633456996142741808459976871783593500670549824628097834563750533506019162904243424244311170899341032121146708905051053052595438190909306987054997316085558320578103994315095239138426492971378100796782778077182332960933702479536210893963614230189360037024469536598619221787153735464037910944071255900925390621936862239157352567482273530257050510924348353657603725136610201205200993760045526474957341109857352354201018115566926059933536991191013582759474489126619202671827776637788605433120921119514105461813200597927705228417707069423482354997375349375631359159736561356323390279723905054578413672608726457081722934494153324614833242729761416390461600925735594444187324363507890304797015258224796803684971615756323451400067861165995548251550375386637466621114358473279298682906671076374114511599832234248359166781009889536036677529316372813052818254723269209263517514173512053585466526266120225004209470475218183359949593181929580902799402889040787251934974957796232615911906527202575018755661812789566833737860768527099607742034332483149328305973735689095033120028396986054218108363186197435092133069111358037545910393155585660834235290450353623726472319502527840957717115783861378228587771519170298152463724938007890292596852514432260938896504828622529863228766930190201494626396140677745870190087140904557087759936641756025426085658760184560443667057264464373646284655335678085851916258154588052489405152716232720627339041368256555072670517627402218791583162896464271119301531892095832946628553597765517668989229103932944003521147036382728896917657448936581371032280300841068601626292923001621153015556166116061792114257455500325716881514329059949737483659996795178241860498588658020386712388676548279924332115703803292808752253787768710556097230402409866839258536693599994875500012547939784312004205312333591648106448717791848989801060666519551687359647068504482856187487434141270479740152833971313378215707644480909242896747922450336363230435052699341967422789708551733130126146321032120473143310700115582362848208152800228289224965176092834481255109650174750057004333295594138890977516452029622593818186741685701941647847672106408477502868970575150584409189799145111001484750238111667445882931013362036534137600718969172464708753537281122775227078138687265101035161327626142405638832393106281189475695816878768373085825948142728544975665017779952656106825386120758618681586885919588546366770967167446839821318371783818624553551138172812893306954986392196797357612788600227179820959009474405574427693538390906785985628767843507467236084930825430504802673709538350974539224326352480577511837347819051166056841644726308199128648005007110110021300852901245285858454984564470205343318683005663483109018675835026302789856250458633347095335690867512810038086815058129184229005588983893396334696456526312759714647972834608935342003140140622649799663398831472402982272445201953291219930071983207590551761078475756889919417344038208958056116674006767349248423061542470134619003340116643838595431303887131139596644636627042244779794129893798696186430730418532547609382960103991134002535716182766776790358106794295438607904235687395788159998898617717646797149283525179449579742422985297818174323155864484743051651846383472611766379096502274018901309744024974303605240667597721106705934699772979739545907352602488673740657596612960839271930017790312670220132395048098538874201720870115895621184170872311151031875606993568709922944816700766547491349955462613964306436131738621690027869117793026817868882912116320030629605735947391151377647064673660284376106953535034424193275820443587967407790436229372408970553031013747942025110927066100993761479354776028364579727737582633577313961821134323060691560883594161113514967204256184933123713729697118560025777026349852174257406619772921701855572021116507232096100396844772406525912550891390737263075676616601948628567765231397563513839652818824285577626111703011237289330529523440256753162101347123508448162396208033068315527760924639671071460180165985656528099284661205870768055709048796202953961024258619572193476409801140865987404362991882348091306406910453659054684625928659526350373120322888136022344173448045605254429018096963461864539210916682578451730359295231930256864966131962650420906864041119032851580677355957931394869055506465973603966084051726625227065601291875228069833865619980738261639234813085828679839325838687364283396148149748946880924908790425182657144547640479247950439188554291341166285716543189558359702864787428808142545543201636587923713395410199644572320580864277960520949114209656029102258602173198950030810785792534492124116355682158552602362419899212583107947811338667237454043523319138534321849789997188356431012885807699728830458306360967743715686925879246771461613686226131008169416079667111457260937908291291934880394752921985225567591228333336249363630708042018953974148530202962714709017399139961611315024626122892761331009517900890475880378922209312974287067621413570709302488127947146792002395351321445917194483557105262159274311319102256919794080856323586006719835046330182074424656312151485996220189629848235436694196974600797927098872326240662807582588937135623686498843565385020931337094550152955493078686681472494029229675679459279930006258707931141173460082714253150577265395771001954938630376497389083009716373057884675505325544032186131577916815551623022439041517555098928876481030317590148409558732564873855373533623438298331806374219451137531974940816044919197480412112152857116959534038450012551827779341865436573207035093164100645432379767793652603249301842147083099859777662578361033767048187444818809077301217935187234155610956741840183922149823120455028640763898716922134373164811551446510873154448559466002519074673447664350244715873003352609337717339560524391943327448177650614849782305434182076652914530183315024871626138348332123697035115208593504275144548577712643001220325507805594350158179535254994095002528361935255592411243145987773175382554718218966269928931308262136668943317286361605900808518049038339753122413961050926518137961299042306075196444457799974702194822508956120972817520137898651613947047792041324042201543502019617312460616231422760441289016317861956334284495638556260652425833343114826643673117103369904112649772202975005782040196596318630151304756713513702205837493575679197060879934573003515227094183219793374293673798001146408668754903333748998129773908014382250929650614339646000377555787404605270221583031506561503999598414088387225436212849798925519519814399309540448148888869955867705266951221488929655036337164627428069218306610586853786790466604435756377780573863653514566302586561756732933413217026193422755041734232935632368207341923224053129268909419755789397914567873652377250024785566943423314800933016553486438860035322703193602086449918751530111188493869354879697157640990804973372515278940943625260354937633556102903084667830478693980205475895021047512651485224277331742209709340509316409903434438199853268066036143478304524628755360450889958042338491066527503100482168566610854136291147700621418617668447959386333599642957173680157328155094693671246288277404526941513803992242096842069929607936189217111774577916972080625225881819270666448421994329198562625391913132701111407091146844822007522515376894946671542445651399493716233446991222049714643732287649247421518400940786416801032952855467968358913522115439878355238879400973807850029901403262646921929463462425573688438496954884252212540611425564358540123402149519242282227185502281017948545197468633498385071156763914907764251686527023813854927884966021883773058314671619055844665670299580071648447026683178896167892930974240764613138922375575226318013205231593941485128110061091056818150253425531890173136475945590940549283070468627465430381837936705939501615212810023511425406210049357953988582399031529906811352750664687221849262221719318358166537944660793855220442860962756902846772703654279914425882237196206920606009472440791490870558857792122753356248734945612169363834649267336299413860975259178054039586265746571549264790916143508744444817012340417878209677202115637310943470162688055642837524988040248731077646786880146878416616249191261266446241511264626222405904158053869471905119282627817654000554729192652352101378948864848962981631303721247287575090307763186383820906385122988029259670574704878648997739851848596954516545475500908931664276742954246846258169646329110162589073214596173557029640857052612236211129550333467058904587886748659844064593872947446114888725939860347851912614277693427536644504094964129830184492126468212144191147729872449122470242023250976164109859836619028046860654658163666692578853308586991652840107034325861650957134609586986500680694806076792083716884876954360196257573257096910370755012527391504394159240746129540384380678264206871101450042351697684849344780083927477301213154236907633474088607474355013338944239930078021096086475374300283242121422307580118419853978054913731763296238969939246835189891663104002247969317317909545835923476784849722689141213550378593822315123173232654425396575586813326617673751210567506505037065822002186599110098050586936012062000065992022711888742498139518577466284933065622204415562808689989605750935805880709489479428974495371806144394550303087584476323917204746671767135887644062319620283646167732827651454631562837331165733945050420399843414273885025705786578114489372533543246380737911494876525976705931393076806713248764873494423023285828922229038388833805768156401936583931558715871774721782391435956671477015777739930296495819891433697665752317045004903115664552094432768773438636549655932375952266389615902998577641091342534210804807545799265837259079165170473255352158607212898888631798587124408636568943032659972319012779397370205816301999558592949377630404883498097741982866751626917419664941268479269989748559779051702509866005909632577410046546429337373759157844791210352827971814780364987454976256206914768795132328968441369629741059112277529852024415062395428122846543318247469557724956334182931933132251542655038033306979056094657077344619266598454834582824034011494485270566931839633521794578927791248374161400138874852122064916483330461679306952483446160822083138902939633560098107229711452332154255257469267583924115952703345809978457079661027647234388780336440917052023829379682987996124507203617315602242389726893372373905364738589250553048497330809898632776344256645366541932460284684240479945249897748130155134726326631203245094442495300874764831920569982400194186751338449523208965489725289084578531048524985196965901258082729666086675550823192531906696867469863566670387108729086539066819902651023047976779995660345255221738901470367502680604916863340150895209446220830239752819155551817912406496346453793298951980689790903257684193862525520562953587855684003808554067228563867007190092888214985445335268646881958387531523008248045293488938102302773832664598852574224382052892434330587796134155170255842109663667633818754638788150848388482285477101403193207756969894124130656870588718526387402523380784835289653655879066624731891872941589633639835289051007797955922955942491676314502195149938424182163744647038681970219085773401375750562775657541270366766788801871610772300199538297877499808471993227204427016649428879142671250987112599810835969586001820477670521126961755775671073624661810025997735852682555395242775224356644507413991430776264009644487740096894208107017688384055382921891740564723329455824745981333204537426356508330261923976312879355922867905748139318223176205286837328813271529045378271451567939146984458735314582884453833208824103581102248183673784027842342737616561037138738808086420710277179805797979544660021237220737013906403597360942216660324035629363996527973632202691336121669548005037382951383307714205917327927382669356165786757302186147293688460400431265648345632391583128443434470322235069167236743998885303114995596710402714216219080339084139989038620029390146991717594716180304399153896351417879873488662658938755870654185025109413032689543820040927207485336218312951083053122164124546659182649564028515762833049927624925382287466333469563749398855180572000608753069455017342464885891058920088458637409097399331687012914802999000615232628621341182674797313548361072752455380804306594467177425286027795897327598922055336015809804132364323035011475856368431481375412578744779290240372773075088055798988846889523514665388435603301185636550307806186578741244447342404519676536062491483321057132971734368286331453120415001732608949713214757060516810814819300680179372454063333737840574763050323334308045878588432845885061032047905129893512338239069192764152474947837388140853329920559910132086196861273043014687557077376407226907360734763856437570030607439838793053751747646434768385342291796470732763977827002641570215077426670818986335644370211974281991510373662624841179816056800795938944906730295987803869529531733138673355774133471514949442164797710317064962721582519291917291669681873966950558585800708528454647269243526610481461419962922012000902594633297706459197518459557371032108655772410314705869966821714005178357100087056680970549443606596860224601206686794028627885906411265779769304033506691454369202847373124438170111318645162018055046932946151666023295668437569148514437758835724092791407063004931892064412516443944027128418092617432557216008682929140227135724778807085742222191250701308983189568935320000955024383731587186216638592083009389065834741571484535544569369835599245898554473132743691085540589020648436894378098464115802393984497541744588946423446181102018158605118270700017202881573201335309424946679519975221735680332613828069242773266847563838063203329628615251889534593031754414679267833467634554076743085992528759631042689955705533773434067449049520897359045215146571776475560964520612049145279421946663658347954908473461577510732048018084115295561657136021954878259041060362818483464876872331111829970333764898425031998782658515576341746099637020942929579858339975768810228155541450895160237922693766962216084221055392839771034422654623832874830510865732323381277984409082876713302611190331285830832648423301144095685422239267218613361822651286434228858650670216163176626432777876805864814726950966460259537814115843696103533603178768295267510577552770557816489558361480946108018079807554997326599865910349850512930462898856402370105452742502164698295578885277592085205096834492608829990721078699548957083587128660496886635844375149976375170896191192546420776946869953387182793157907681638644403816395540527328739889284500260826321354095330730070484222748691178051799553017658884041038378921630422954045382314217003637925965007505442625950292494927226266883252494968816791168990043441781580089354579341449415889586428274163564337818345586628269165287091408923521697994653573779023022185756433605283642003141738349510648130763463506584532805029009258755780048500400069527240274710365173951173942975404581193368909099001851985205605620697689031849334622149351224151675845161651506224960498002175558559636651486005210139584971340411098254261982661337469976927875899492794105245808461540508747945235929348427690753795192633131049575785891207774143250114835283251550475458567687123667341722112821382353475027925930656297735073816312349690962544688360192422000566358113315887136428855685441054223995871369189663946121024676282846469517670165405441620480390702607489567473748972784752239976742355321890181323103372260846024738113133011457649274956639398777988205455112487506963189815694592721359251368228570271315456180282515206472171175789344750489195249267234270337550893093950264843863559098661376579007834080397449795039627400980719982317587464122363741490282014264043465909575322862296555600027018791724114618340073241275971075746464205698054465117054842068378074322376908169030696076991630701835581706768294880590112997214016314376516487385609319607032845025216845157256375756621412822389577910559558812224895038699909550870867498423877894401994681347713945292358037536854927705164522805721593220701794534028044201171679355154622256600743777898308254485156867786347003420480969423390513943329638885529490419456167918639660584295637252311645154295619815864951295929083830610320419655719049643361455736834425003494875176064305219412815372941616092489357982557684794271956992368301958497442108233676667610577025921710161339994406492553732388450593189403953559831177542315003464396631741117845979411276528456567664793014444593436850586123004913682991247828277683650247299963626414597266669345902846581106160038558868245281596818463556025222781586468322951509313692691974714074361517687228662553772047361278146313676862293265287092514735947304046980414633520469447564761570171080943737118187808897681551652908663359274862253519939410773398097537580125142898780380158966773918620540263692600121076871246054656317179517949960976606417600573579063463107022057632185914992131158439271725757638653268997286491010096631807612908548748663208849697830010806424037629211067734408658438222033868077512069114765430254053310195922627463069402352367319078057186258659372406312146724152085797931170704596587666844693542191621149220760054271625308607686212542151645526448804482040680889943324283323376338497199992307975512801020834030841767322974693018281760859441668521443787531499333660713691627292495819210513033181372663335985492893937665650442369106370746680948649316186604218011060923076389204400375474291966925398471585053184486475905966625652525659069888485567870290475664120426715700058210919414730728476651331920365258560948263632307998440754731101040356462860918086921554095233055567460337015880669763043456030662383404862728558713070435329857127680098313333171606909090221828332129587560569865059321658660814253732158778469886788596269422278733411383641374618110661021731329073962186633885311344350195187848529008919837438612368331464049405445811674026183753485778076899149484405444414835914485230993699468380057782714041209050267373074412886496915549361163974862204419974339549256308371160154877404891095098131029717941090072477526800097187206917191267107507289647527093280439880863967696062465089391378720786104240389101253647764310620911563777885531316806281881920667050198035236468426040302083169355004547278026258276167419436770560877994299229814595895191824533542294592466060308694906752290445618108043855498811399760287284980941962513394893592284643371817145014951162218210898126079832726281263251215063087654819556892944449451239696951509233545072824436306141918872859656924470145240002558251136223505104510910128660925589937611580135080204528342882207224059029855604176387754080046639035237641264304919840871756778861700633684652992174922565902976844066239557010479061606374361514397229593585740411102245165523920801242107764153053180396670392781449624160003522632532435112163814717738222951414151494762627976394595008103779850858469686503528526040775641461874017121765800485479250727254847883280149917651231887047026772952206650852223692050579327045190726715416536521241809159662517236047519889210950852744332726889195205758096131454143109395674365334865783909072308932170567354135889863000000489564148407718469611023670883637256270695559287782724178751460803882664259060391117879392483529446242767326924315000586787635148431252758946861027143771058255857964907153203481819032488559480710518614583813484994247207968125230138129193019839553593293992806184398070076837292797914003536201650836303396757214469914493919364888006735236771661423235606514218001649782655175084154205380888239531705320367957893110468932548835994333740321091912998758805065521037336274179803523493585680955212847894955618633387899217626749438159951128592194096197080183000129488161098668198927487145642328172054894369899210297572184172769107926415106126456448232838796282440949525186002577754533250768570901041810809275387330406507809639722231605208930986457866641677926982241354277266322309961086858529906456500843906513400703349588088200312785219978443723696652288994770646883903587670208892738582182413104789052379304228385327438254921522285121104299977110152134654785415565668931737781573741835505104275533507349385156724755259560992057387912981236107353783550967961172970884984555739797439488093633934555286796260968179366977660156436532436715839545692144423145861220348619440263551748053012850466867767621641124224064658167363436952949799595075917143699320793802557367068021311112295491935209746714905457567285411279256316379695260282363042939893776429106427151341177204651456189059833403446503879356126263883140326723022288327681637698258274223096052838383582994586611203863232685315935982037005966106789289996111727569191420195683125575715679565639651519682528642129961393531384845654656517534911524923430141129547646564132895635189100819209289069045311426859681876365970223422233566582925469106320221615519758012827231933407028063952205926706592300391408654311089188005387628093975541103551753936512223087991788361817590779901615012883825221201011678181720523050396133043016029327312148413582961263812026811415470534794595129015405446194565053959709018575169956200849096883197651727138170649684391443273453399333022864573222586086506571106575017296798873768091729676341512432554081070688006589689108527444561259240467381881611171291156577646440375807700937579019247803660223607105450394585501844899067872903901443506093742735151540035347933806937474615517628977309791984256393492326417336232063888302983957511985687665784356715614244675760930317597049382753191486801142132377635278943122217055663659642290340677728140643497911848215926963935204401492486664732994619064705769859562125139892279442862518298220363233862766320051272647715138636911649542600877796262400794467466750486780884286966639499971884605282616814774576236889922198249852236935655559203104173976139854435732998575706692295730563029724641655179414078625085162580927835728088573492762898249483741926960266480396897720962984378885871071725510713830583161807639320539400654817576898982302421714926785033355417627174999987005794556385737543360707950190320693343766943850797031434780278491539026406714184351793909256501641726888288623064556900007030976109493603671634569838386786181024965293373808787467319311619204081522284672075854101044055259984051187993312301387566160602303012969727641473202064689224070095927913441908640901764279802973865933925177587867275013826258553099304234870135535686095701027045994537157999531336270590667563397470704126907475189414254088274166049271820692191513167549523818605325897260246552728297739113988153692022399262657591581624523255918617009817401396639715870810730654740813956296182369922332787016052021104086412751197686587339220020766733463552298983670214568876646440772221474461844952209333999277947195075710200398862940488366839906510193265511728968628203153947589358270939413570255145121483172096868255003470371406412875766910879767588041892016319509709271945902605133468871882267301771667152522702472341501982709937485004450332218433495448425742993360214061699143254225732109381063238004502337539949429374698340418380769383246625174556138492418733020272015063205336256538140392307572468367582329182680294958245123808184957909321558326617557460264517706762627392581097151294613625840298324694405564017836743074708725527471039168531591423726010915337751570867885931534853470075071837004293297999333630295728460760779635827206458465473686977846865371438352862765404199432522119452963243428392018823247633925400693720195260880553915971294281224512724364650884868185940861672195082194171852191893300187308217695488155211085871944941903791278099448571839780521773439720278930512986541401451396852313200707847153525500633481162207443166152899205874111673021632898769772883705102120734721023191429551438421631367068084378253828274162056243287640750576201362526498643824853620941119995715896761979641730073842939976174785838779277828105290023435886970624427380165496525743434042250078854459872259080173675576580064583710415605696009528829629919760446307091024531832675717177284441130444037596677381006941647031751460454451455584835470821202617092351127711219056091412187845452843913683695009462394224761145472473955825643760198886975989898946303000112912035640148910363379426625298945952417499136241301011359924024049129797845297658629747771880560510537057584564904809583062811934545807626926516585549054800903721328014134262904596282347226558292061197562075747530285502457792410344178043538290633679881876172422901096553690673887494338738264724664192721923063248017458247467751819407412536552947417290265507453921070156384947128395615374746471090422726351421691728536392199509837874766733113920192931430105669372015827400972057679609465564951569806967512869355242080883839281798166039466749912575503987531212866108471811273916756616901830024667338466233035159317853078086966493342376065106854074286917962071324202292530452309953549018853455699222711153815890159705172973776766246691258384083529665801447925381070112600774589504780324213598229897820897087043859815606512996803923117062759276088614621815509305077847640793259440248613160509094022589338085220365579849637360296505543676227041205828004023956172187365380775114981209977076506482537168183308738630001299845150389334637387268516353398981919871250642104552209723443648618003817247018468555842856337635121101418958294384335856962592194124080423405701908608906022416021108096475920924846246702236089664742759648914833353165709743380463312085148565627116496845139235047554420137454911428610829990256097318662006195925399347933657967790970674970662682452947594959320175702634409782093545638836410168402624228219637216286521198986717586637736447388655956401968219134824206842593850960109275933006401449101284385875672487548142038187977141964307971733818856911192556070653422890207557259571170415400188547357289551365296734932583813043048605574447325212586383930397220750319745689298579575833341696477701106480904457385011129986170872879348491603658456709298216916899501814362316164297899433876749549634258855870306971588776336559559242659606402658789267637309187163034700364483077908534534917305961873876940449909893065635568029489766141181802263425680998675728725218554522901132635935775858732014058611077765989017177063748268314505563490400423576063626200931183853748776079318713632200004226278848918668558696877479725889447896706497437851303268148798580123311224032797197680881624096886543787570896375462909046909985563873043084486326656674435079969531886010806883402935083165805845460137655768397944247963945107735813351412003026397404418691659891198919258402556871132246715656265026592422489243214313464393968182307122647759545967227304782893237000422016191855696840287856662102337347052452063670938043023673838038244690151501635980536643747913828940140345758687079979583945309961786528194871625392109676699345612256473329714042432915246502823179204864543148823652224923735297419059841423226872026854440189740132686853590374202511491639961858754868287633007272108496844166201185603799677335718351335920417621029494586851484720139930697246444460768224649379415719614070197456620822359846650974420747898096968645257195844224983661864092129212103422608986314615691227806092877514944199750214117460930213946621772949209703947083620602297931633254686164731432490351279984420205382542713885026516829559614233710463448843611961639597705165804910532443149325934531809874230104519737245221637965116176154096380160756539211600846249647134347542178503034850528547963683975088068363142497569164610741948487186644934737563196757707288688462801224256586080301831229717293521259537890364539895846351562869755446654826586318346252558981848782225768419850121606334409595766611886798699413606911314544258290555743778569303206288080821129614462546281312253381538331529334248764017305709032289513962733221319719157971872840240485902433959814967026242452418457404155928112212335662618377630900167344884981469004215291072391977537779595963959249146534312831606377712977026547491324129166733228882041098711463773397388811732534341693225253483670399865558774744757535598456381880254376356191598407035706677800794842681378669206271493080642914616161764232030658133001955228457345976630956387456057484542480602173599744890909565663769747923169405326859327057863341337158405164902431586646977952415989473752802808041287255263024640898240975387511777499170590364739731825380145445883970833280279952469672665403631771925812319083781235448209498917741641045698453948643208688768218752339995450820306952271729167449333253634888288196170559691463156630851757862936776321212891892908874926163085254844740929683587156400944054203338494910027949916472361532116377533722232376021310844731068525248225316520284826382498158561625816185095475244888370963267463869146882673245450984016159124357459858005701324523872195127057344714397392660089453234692473292745324606978364158934446487995577991050911340986575941886691011330078341097182942862256290792774724110071994476199536539786711865856708506928188836971209629963136446962991618256543793076885795050245033671591045106427759137671800244112422647145805146402352287522782487934121168041641137626981287116175800607646295279321465984801713846113518983248464692180483508709394706635148142306486051853260742031859020933595352898085113405378411367740011954971255987139676863413405449486524985287127906707648278020888997344106612263013870178938108358466792066651435249648737195816343847966584429389876684173067729616806528737766293614044752915087089019867011727589920001048962547238521324360496400960239319858084977646188141499901262736107115275611454778916343957346308208588436148851257296078667988600585916041438507214503684831411355103737075645205709452629467656892751093913278491402395649482164394586435212295009071144280237006548665791170897418648629845340289811314028048527520816473475475268537538898951374008744122595436099422441672636455840104869271883862644797325882792142704077757542216821053869347773517285955830529155761866986167030808056330462009380699782613039428860280715655388475616438971468204999063366958733687647532865124953563322741046050763308097314195479847431895379520961573286278191290324740981755295580457203397346959320260883226547171260539030775990360352366014537870130941011452080375186959995042641042472843920386803570046718399764157320591490783812240684442245455098528824955436097279489432361733024946645357278273464046838772862210759315519928820103819380397362206092508280991820539607099457174747551296464458720927030624641478040196336198772547741882138190277026162408254991598659381521229909853320141952893423740816757506900713505663093323903019017710245611355741038688526536663375494229247218922711854096384406209816729053608125572613399173935164087768233323380005963122696077641669713244599029445406821539670630589575293130116427978916366906710677285910944865173929036139390678540056454698997214457057331051613491010647655435595710021815811306531911177224362434987526489840182895061883834126569718773361748684186578354404648154272411786753775787647342683559434640955531760962991969065971115724607478505283354450091224378118610472839622997690866080010830209377325246840641714089761443786467859368226984535715808462960809788062578885138750602977672722796225206167436468028240441193138517271305235297293567685289867647197103140417831262145522342429128356287357633063792613285929529229601128264421095755008313208372233484073918045467382121308666844761632395567272892748621389734437288466101788673580219950544714797425605180610938025428501599970029935826346610210900365670703060871971212300156139333749316569214914132652176072802994566269706409263892882042782497501862186440616992605196853956978402345283134185133224056471611131028987903660920652386391670840732193278200578134052277720705262934737563634684237330075948148909799914133350841991029422394862064121535137913879985947293162268674062717152696553814601525753605552671486346976579638388383021896615590021196043714411198108634583088409820186023479350863621744985173595944843956218120537500379008630530691623218705514346554182891231365072068128548093323459627358463321761080316118245256109462055455709903445115833799724978573337428179935366000367732387653873614017158628475850366474577333431955856833659450708147602094504564217745896245710515867452027768178243118271094148961037179903938284913576298862204564046607267480824093942902905836345494871354793993641001273823744241205896736967795737697221999292390956896490110919231173144837424298176820781421566180244608705757640970998228844123044976484081838478767356639787547972715385735874145358374817372192169499135402174997855583111570486258023947273098680847421518168523652104392188320625873224823164561833395506242413182503181993173940229598697955904066902607952090119992583376386586484794657548347078051683689626573782754375481837342496398272758027545220773443399654396046614346695051149096748499860799350560258814724525815687408175071550919614210968864256448052009354714200075772882441766896354290336266976620599442551798159244348893392319084284162801460200671337758103829212185354850494439379732736877068313438784534515074592175337616095755207390187928804684636707579879227839342035479108015132744105366890111917972228439098669722408389903707819349634752831649709275749636700764685136444922283023343495995140109237707959195790758561699405165105587085285047283980658081106171573620613221892395543440394255057664085048497022938341286179681253569214297824749682239766068303859161888050430551535155642282090424534408335907267532618659007520192063896568755308543475110517875803469071166753326098901294528653403306877059060129732025715655749212031846562546682519652687909359204646299750813034137954977889957357099205017567839196883919523386920521544500309181575244007727675384067627649688257519534693263561402003214480911355746662745778871183847927301386488270432806196840973576156057750178483333966120323005699412609381277465228003685542850916282844767865252464654602627147489460535554951234153339443306339219836211222392970980273158257575735757048561608001834243349636994399715086633429978358645149716953586343354724119549754053836065589260697472065315014483205531550597072927178472547077437726733675266677248975389820229717113246317990079563149948961571118271446276880902605543496347282758200098503304935505607640410043867823873575038720647636722555554251442754899806920894170388361663406075931058170602320431768001894493145708568510363234630211172902781222410949841001886108056719253857201053666584049974249831382213453860086705582985928450032361668674296590201424888759150517589606629677197089502679107809751044682881459748609882667100763222517136093762308609315877350058540055967463546449521936749077671987141376759597247153773022674291323379059352388273624715737980375919003405523556160715662160996423714362479739024841837303866706557716851580539088702820188707047815237635556374317398134528247971623125757318583585767726653858199914907377280548844075075356034761303776205167049581105691807613648269906852807793329061040103575538544495183707523099526847534371421502935650537662666936107853260809069329818309423304930667358933866385043205838495279229685397491207917774414800763551586503701875783797317027196834575371297710556032639901071041434187952141175989741980036789173300552379449438733551108501562652578373311742804489122581755889700745640774583441845034162523301021442519218153665640037436202272096576279468773840791367398564441315185913344870693124208570427445765033619578002025322275232641363380701633966607480048612488027928900095448940282345097321991479987908892914123852313678280527034208622521660231233820322430646134570624447964928599613004424009295234025405258055958521921018297580919121585551386355208595136951642242917101889756475190646729019737662018761493090496860014837056000628488139731730155263317050151212590955312321127837358516297197605327645159675944065708309101470228162239913187339997673191772561569976797399515839382559011621347292093533363005670119016040170954916628768135323771043155680733339195292763633595503199706624322758173340274052034886329709194634487854946988039623284301203632691353522602888894155922738512440979960399382632795975311021276227112016260976209525929162845522612082341621123319843652244917511385913538445762589036417821952985021219958254325310392991418991212234335582937128216881507719987360590533311411703773727693302259139900551189170540374097272277790373780165835241362349103300797193543489865424130748901275692181580242729576622207834731107169587330402777350887490877618039942115285613752975853438852241435878575848248783679477731919501233724701310454463696353888956894409568615319999761303645449698207695409186035508586429590696297214738967516912820992360697103465276612176851489498074423049777404382882270523209024774989160141888677241906359716070190265613816518352880751327676649415808533381894582226545542868413425420310556224373291985361199687907964835409017213850422468504123278382533018781858476090151481489137474774703136824225035062426763829950806749012084226412489108302809615796868586567967028245155934469713557931362142920327722169643063297665222794612724871564734467632739396832976796070775574468657697057684037403413595059405508545021039247705153422257086217063883983954391641046513841604395493713939512212409047896834476171075395810354651159612521087211279010223867196319174854371132916264975955653671085867706387146545875163368694367465578575629881467248591328914669401382959483170856285326959189168285754959262907213523482150508749669585169220386251617509323914900899095847324614581007009147553494498664601100068952390279258425090541530752750749865488159055710897735420727788557247983897204615768567715895928389224452151258040377301666843552690450106680437919010536904172152699355108185496745592347733781300639619541917013356906513935996356783089878199591093694851069957043216647789924320199203388396040844587551265866997853486629341592983476909188051440500668995298508348162490636512980342552073192204238092484311798690683195414932187332777650782188776638663201118579498884318732943271232723781636030328604817165733056967873888837020592607589915511639734443798154780909764443739803126772729115135834377544252111753948103562807634756273339055026313102027108432513090876714455450159675319942990737993036227559701988954938063563325091945451402510612002659956869285146342828032056089184602236392861146226446079218728556728059920224134783484270451521537362530370706418858888116327292735858407903280928250454090931943267732500674787460215621689723764936246284468053602827400359061232454716435854202825573370899929918583761253767141651787758958857549248704748609849319648109983878825756254899808078051658204170248185656427704112544086382943565913563557555524830390046304737114466156828225320019218865991902653010421486805782596015454863976881380611914944131867902641590140410886648251497613033298116028489378075078419167853671713257598295803248744494582078660763719503926067682115992686492835840456752744341869926290024461939928412150487773815807330513856848615548617687598941283836960730410404451340684308667341213106133705644107250045505577879516860426233194712567980056376701936808768003707681689205740762012413904205024573171453442197843082327765968986187340791036948463800622120168574507181605063108566971705905191075433485309336655139460905698419012548856550708773124791193489158080158096745243977347179253494515068690758216753754633584258427560537133927392353437074483094731671822564851636771060225387596368180499325468772281190058435934914272491766401095395506352384617638231641744981654204927613065055201664004545476137597469027854002329674541425469428732365548848359242208423357298062360674680354145008869964733601408808547811507418074310963540131409650479971303989690404794875778637360831003219071330960132730948136557856135773417383080899731393602957950769273874277960097663159504437800703236836350231423343094566468654688642426869119750145231354587011924487713163618997927508617319056814600745395334011665596336833746789958555023620102046366840597303912108150353827036395298129292524346701491874354195081269794403878420793496797843956312084919639852292085964528906341795415327058644779217994184605291876452856416296610790419996273538200101391617267900476726598830768604018906316578172655139155402382320789792034542107283541193055863550699280037524663198950289629246815974465629549208769905749285786838798714145544204652605148341264048271356016979612890937922446645102897772318814027308464027139862822463826153053150765020374820685391815730799921125155937689369463801467952219463216386358566894239375814697256267814381520132416480222847504077413182608092292402863524294319550241838104858147657120124240920770404417190568287169270275332242178764106491827994275324642074243724365763898066467201527199742206011564720421085325584046162248248570194444203565613464569619133827105843187745274515491729290662536655537059977234672160532382450063900489893556195024035182144345286690140212914994272301780566541908055959780681690280719491901840444411281890650431068149853152494478944848128021913849793434422832440606361726168589138826433093606534031529768003687742546218778494828918366660483463815415576701846993137571287534745447962457031369686374139219504997948476477440948714190505784837679977568464703505345981698282460587132248920482339224172945671549947251088161949889189710211045973548851428334540912133045603074508789553823920995945698240661923664817430045828674522871122725754174443267824923361348400363885370618907321135733355498417047787475580862428944646007636846315282228812565187896903907845242477400851632353016295611638425944069851172890254740713685370227308173111768234420774044554568018658485205772542641364668370949062047711963774594481555790447572907338990734431455375679036613581385489176240745268575529711174894846082220001531371806361657667942959992813318486631268788250093908282408182886795727453763508281684018826123558250869940390288478884173920425884174660456113577051891691053189053401296683759802435100224275760439701516549201906089339643862985782832744734884211222701040939398130094142640148137283633600045734899757135119329602652630791486892927679732133953379470515558757497241022065516126900404574767465043850048442712643861704001080977358902440447217199053131065815176732129511565656729553797387150067979546818249518583615201290403017007356904509397487626880538491861178555989968967111390591134249582348565152406624374199487499312725220944982882087265993443104418573015390328968707445185926780560184017088866618711381260760575509225823943912558058042836755282759227619195845289332789953295479281054218967875854132188330698959076384609077709123960195549102128042251055928223819459120272274352072568629976490378112877335983437323536007252706527982919500751762910750803058909788107509394703636308617843110527873137549021326737709200022398151757070865297425835568111653029442103920968086641577777027291541216576977630222314052962585386956106895330565844775501199954707525908985178059015443715264232089837370864774339699209594696115574590425096619854040260206117654078783293495995318002418740705324059042180951934740839920216797417135866322963405098932953129245828873310470135617720689677674006124235338818985325591266368781600158790919338698597354835721746654697510249298550983546257252866629837056808938659062189152022956646535767491769739543747168993855440869652238546566656103291569188057221594289500112380726888289316891320132566587295211911924272984942611410238179848439287146267810937507192348845856078632650255452192181659804792302368160860376740566563780287641934619227301554205179288682948778213779290304105267842640176273843194334816957690124272238703147248515991312445674347801473096061038848653510787187770960138450275700162137125789044266546806496068132258903920038548032377749942750803148839910000349139278842302637808308489038551430463832573159527751630923716939630294713697249162321331289695751608440575592106833004838583398234523236817599787567482119603994627370446508867461999330225242539807638145439786126217365661316532716895569200804126849806627975679014263652402317449013360632939867761583354255682990613381222716220908254487467609509962221713705832924811399518893004518048489050116519463458240138870272067239283348534928527835789981233255927560116964671012831489353722161415856946495853551583623445931411206785170928080975414982937639003018198530843132525226011203841253920956748221856686276923569353556337045296013903895316306217771337102431877257406548650799530335249778968130965569290250079736444625835423107934108372561890828768139015408022175726172362718873046029921163605402991844549477817419806060959084594834269290445800022322361077741072172606518170846148210354008977696183424776366366629813723896883248583574586196376413630423557071192483988066224351106670743898613646133467932537642710147129341172656407725260980606774251432348414246445513018456639805968865354202365393635478531780641924633914701771212357427069422691585908503140517892631633299768948484897063357118006257271752584892973816254699940734586945252915950095245750482508430069105323510377522639368108030991828604595168015094271225224205629639434438627666774484179029035185678145766955869414884445520709081843677954041732879578342134351482904303217639815102370859222551333411593665792852776882018498874785283831769093900160329460385427479109201369347132476876463233899097931766737471762501808559450640576549365152923967856277837042559351580945077048257012189512692924326886738334645357777952568883699422734593902760528270499962732908080439008706354319938191902963208522221387060241127335801541694438056533463941945149512081976949566923384096412023363454686945589866816396422013299960813369500281852281178925475925938250994060523040631121483148595042295090545964582568658588584922999944200942164128666759406291168366560151446480542202780241088433975303391357890972172578818055313723545980535790370021382081191174722663010689257610134877781976731013162979834261831139514294935265285874924479935096875956015141542728988689655101065730754218645242415027329784832347634355521057259654934128968539326168511182417249508240868777259425150780615703223178456316493609719209852834045963062132498103516023864944910843833649954180467927641492518261801683821935528941103897458387613173547739516973135708379143828821120289006972909466721259270899098176751067424082360324401483841325258511781976619739139669598449575705460270231742871578354146609780378739819267735539938468847771155446476671707249656100253293814432871488802429537934974068618886334612989204050860733499866706544249382968102300534303180996481463317337389171354627059141339587827342810471179228533009332453924911733958851820755686329037629794019825124154184643215235117055014159434723441501479373663886772692417677419192568020549362230502374862965663450357112524787632181281972758741239422582696862059838455722819833174126893984208132695177295913798089061078014190027593489171629421623361299976806901752512872712367542701483274882215875844785631424687189216944586333906993666020151156265673620587825397138238923010464214927012368281375038756343020646201173562608917994891878814853907856336769434767533254409214032467108580726646766226489213601497410433442845271769752570367843710313187040808832154248772089698887462369291610445848541651909160835508432540707299596824490210983643032556343058354182105279447189335402836856057771063782838724289232969752279559992199872729742971781743734042073196444761697130229756734665192295644798569072431426975864175942915758813131594521123187414491739508417402164831454620052917948203071387620237698150024704623637488475964416432257222167494889484069315356642097748217362436097130346071658588993801513959381454671712601786500734577518352682608323180821227718122565416978733744762766536958880730508466159927495630471850157322614821869218865417165701284676388228423771860421458301966228208111079008221762654450029417458033753821143746076594820236411846918979319825409591203891184392978687520242589838113113721116855566966188557844433826696553256273805784331853490134701542885738910408490192645894456320687890925352300331886536900283195957082637182817914886197542687733705129044692210665834306243907544307197056672903425141708779329082929078395015020726315146749952448574326433417780593646842638730569117305922127085651909885030325716432628011363663784403199639771280941121489093163621562131081731152902584268543278590015800502175727844064154751092993125789472141066436535165533237250037597920205936697329542406231345593546296650309614739178623600728941960567862947620790336943674028706697426625221178525727449147873161252289906256912434167162295785646067454330328668687022694932044683822039792683989833474812712293380271149276799561415718782238003511992118606094425796278236995105673728038267627229185435693108399372387282339735131499803650829112346683052509721288582699479604148722359804201260786336715910239422839053765068440126460139624184421401327841661550458886960534762507892339804924165157761862847275180833459059941966758352834721592813719542499293029404348329679212008273507597463020163909026412324847686156190841332941662616935070744051808988964992770413184652968208829208870917915718399445859038883240850160651173138964852575927647919612936940308417145129439646856334697746998028336443958679354953462024200218370709713521480454062148845748301388934456254963454078135975028068278571788800649484480192209465907735840754742952255415817472629722440301035898596896784995454767701863400032303333332654792149695867461319420909016169825241716963036725146846111016149157131301500981698817129774996496175729762762678860726993532011793444998588858060096119139038519393536630102182036386404873071722929696845178595556479906021469720936754447228366950269331300065404794408063921288445457414965299107990546973916047654185715645640897996557971406348793951590449616413730440414865536671119406351575710832084572357090114834821268470483776953052331203264851385274932909887145537795144817504373382306453931504755539386478766162930615559123877538443754774806159885841643146496922533115932885049653739223461907159527065782842511154244872489140680797581159416626770640639191387347150132646270873157141920698616675101101125742574140464602560217232465509135985673217707229121284454756963995881394197482024773584241575537515850606198393094146751769029559827657530255792414370607905518426102086585683782202738176217397806754735180612728875918782471633415438346410290895250751931132831759165685229682280032794881721176225780838190186768526579960707793629947284038130570223442028457845807752472389091231540465211844858054197215355802590023676207162699788793066201852359121137866749597668504486210629123309195869826657745798027413819486802047347649701649281747963279456311639132701012768978857896648354970430668943540581504585543485181423678645017892785383343687874761260371590287747365694443634925418074838187607986441635564435905848814376146159685044529424586664383472711221712823325309186186166917541438456242613612978526400023351556571477208786867071494002916635181585995979913099430354425333659886747191080944261063112842633287786181852722258127877470106033925607521312296600297911637337056909358115628483367065760211730030347318855681361395445905716313835846338555085174978451742599916206431438038319404678898684397980843378143944233426998510077788123465733029408832491695172529197646375246905672256360471722223286311248780726237800219188627916520857108869961538281232630588789604432643863311524843650413877329462225180688593579249302911407470146447603034392869776601841569483239795142549265309607529222035679094128274006187017867097169607839168163520014100988529582613693349253004054272785025026956470169481156769775664002731316850481091873834652235126524824293663706019147981318999096474568806171218852837477645092079195969554405498507910778656897703910597149003463870098672891011687086056004767403838200031469657214304896060020315356068663637618134471772383149489754355049503337213795284632361830902844676250787245629541042193552475662754070447427626517972922974674235753351415219114337868508728934674167045201083877244618965799206648015644178380256394300606946127007436256573515440629502353010960571046293601825216625245392176685119071658220461890113104535903152359185879125629435196606927257605783821012200171825123434238842211881262877803592992331915206329357857884245668043761220811631655551730896857865751122455488483827057456424124246940268065274966349546872035146207433486345649942576837507009110425352929316720524820571552724330049645842386075339076860263578512152933096521977930517085182919223158303814550462264591609947314991889741436768014954193448718054678739940788390511939595004991443768251162064787935405275519244277140482312651895721453150660870912574889046263899199162174745245839051065400500823106544985895761811969573052374143461096460126197159245885655235363614780604327621343568883059332420379208193743127833074230590133936368828951764164934408120069070948375183558247362575214112097737388598710632600842693053723586506096820745215064338167478735954994909157920753863037370052196313886798999377590485001507720981845921026119593455906791666596964259628881673246823587570762789273037017760620236115094805024933947536080171302466877722912295799251022867297572111985112390352189440053769540992964514678389241963997176058827373393542253497796666944931106089060400008915244772890689363084206712931481739716000296824728827229685668496147252969254598171373233647878657737265755693290033197095158253219341472552232689934940837481268893178015379153828278922162999432267444311235164823028873775339503838588778304162721049295185959903429159074117384563769003361026358879537920528809499209496769561479106789781568565261529602287458036227060891144840458915452835722179498819450644007490457988266720126553051552679036286849882316708273831485433493646130836758171286715325624990862977920147955417925314652853568063770195487837492782151034802689879132363445894874702412692255251877626778536324752156116997687470537727553116566156165569994432539366394134069396390986428390718724950069480053243353576701878155215870552581985665441205764769474523355374878434435046664471253729087193213192000215869325683314831160259606595386222328542914695455221748629007302563993680140984527413941214139990771810373292529109764984994044695636538581390137306258640821494939155214210260917707299791070067173439751913160656982249689656754914956886280999405634018447479269248817475984347852465699822515679083175050286838754245846601785194650554124449749831833146675437417444003283620227250137982077497979676282753634539009288860526685949530133670868926619352262699335975348027874994946220233963509007465395206564492181637703098358052731373989616450276701800014837671459331326861503985587914917663114776445300331231967831250489191847991008859155424025323746760228444307006279879786387451606184562777157192180263581048686095249108072905371234401983767686382379054895053594891271789604950730859533292827092598548844106856822082204261282140440694898220465415595030638396317293026059347848707418468966736011639385336663582283756834901489185776626866801360578426866808584363669742193905421974686606632699636447810678634525496331227944266532065735007046507651587625177485768014414076499893811446712063753046053458539360123577186764638445350917737816374129476842390647255448912230946936415990015202809024433717137097522851233795511281640105907789689558421359765391520238552336738255132317703937317404436651202857895432652467949739693508169559593275803318729190676467527310409584910541373581537479571865197718505915867009423036236269397495092657983852716521410030030869144086214180579738834686682900932919690952857950566200403601357264178143456683931109375971323922499335022565443311326965569084303344938958854591014988605331016245103836056530038752486335403740944657556817636741410961893933324394553052630091949306059674287589946576195702559726085324167746982169117646317818497559316371456628535843627235119809193894778062350775931111931916886537492028162638644207398222303065658829310695422954123289612207906858556941409142357611484226294323883940710123271186230393976166815505656424720978486276897292426708352812206673040875983604300111909828632442492832381510359208421360125962068947711654119711802357780705494714522632293436580377401855485344919054790612873594398610563353394817223980252837310151941556654895064363261583699574306095995574691869183208164362418301150997682689429860738123017398668746538467277974493122325145250296118736680534790936468786068364614760401285996665604731084787182933626279997854927754460298090269565998828124588674763343204895953463024530825628948205913342963338839870565384242060655472242304488557444310706530179069425855785389385049046031738490563733413094507125107503902372044836781093462103923133421256096092257996182916286155842077269717109542450224823539575086070160726831634686787421124023562488092467106668171309760402347349269190568844326788816798786428046656768620201330399166971669700414383121762426485864189878064908827324737525996739186716356875177952154863083829198277146687197951361764388699892703054359635956524611627701106891031662419412753966439209565515302754931570353446512226091724625450625177986652246404269271165359312430867336158967429370124523820803320118620227068321558543828255176576949447298073852925637568173817506382175438816180360397262920311951989512472115302298489238723957298018851027137789547306439863114484150884010655552301372250303304757433988793314234564962652183525951053741507696493553832606641906290228016611345058972330039195906920127013151996820851372721642757947182627303560954457915191512594439461534702599344097963357281714992105451009573538555497768596182682081664140449157761883547204961777399359141811807591755507494512826431376464906154115241756670831093433595059730386568584838625857479264778184387573035134368969700505973783799322765857375732685046934521715505769221175229810911572128736902763112920628589429026676079583891440785143204585960318874645218951446680471101375889694301614974613358991433878784233065711280840829099418080161813963213234810859691696682565714521076078631985533979917354719289039436933199262282392313177288521487018709043389647866438711195975658262967919446407364098865324038811675234157096897171679102119963261867162932632286124420092065880345082764677991517998297801265492330672449507016484710831605566682049563735155870842552895177328988969961407675473715535372814637042021162212839222567431604683480571235901948175223143911011877589083497180584682797312385789836166113370579948776839850946341165461302446547609851486012921008958059154136371877992859837375212761402230472621598943946912335968764416402612742729994384384189671530109643886526782326941935143623276787375515663648145483972098641256559958783129752474561712900202938540882508003132353093125918417179389005742513146000000370431305300015183114636372547969049714881693694885990076656000774360227707154131593989064040900257650041278000155925650395838353918614857929179434860621672108785794839105912580900325271001630470694085198317366434331292720750406853144522118332773226442098179896535475461528119663504238028986916173704431491078204144320895478802443866892761310971982821418231010385051306452242380975838631436563411821426458654123875930481532068030628898714815297391888074516289573743588856418543455859721964531192981061632168953218811735170625589850015608792069936784048895972464784290190830734302211732985525846140775653013950449674336115754157581078664509045779232873695929646915983478003011996092324314282431552643809273901435111555229175765355359074260927041739341022103892829376849586956476344657320382767881571874799085883023225764597302302643210721297374398643868408194461249978892890545361298766211005130346932063431286938541566787409170267737806261556554711958558931377305668015214335436587154591766229238697057037622666893120546414359334535905385406640907761606814075955231972358022278079523835228129859470524086971698521138478138750981739095264119119885402527796215500614257240627967997128233372227264735456832184993522623356827639191778499386789553613211780407130743794526967833257615182540720770431396081984547543630149353708685080957820549592775410890077387868644013584952925502521131671509946447551172010862783044326246244079615833118686780876859013057071593225128738552316677249918028641687851737223939777102740344648499705629818422180875597111031838499593887175348704443463274963693194023777502700953548803034439213517259505565235124472386179910882578186170069716309739791884901989316630740194529636452060329761428108431846743603741581985729791228144609277306377727565036751942688208768978788321106789437796896358299022117586257427278586694816908985950627955120024203011833564983549466800756884437447220286619722173609404419130051033306616625835305864893934657507032473236567632853127679019696213777185801239810755292245085093665566145193914331302977836688313604244177094072002156101187047548879867984223751737777450276851458638966579278854282894020182027266676745191737588352551158161440821969730796883934536579480229075014917236202475841772037835470305828361111905230061810905936600157610916240491189509156695288898376924485813525887855040267121923757521004916253078319127958632496625062442936215596096037198086936979556124700747068039160332772437627828247884032697569106815514983287032395516762360127957618825505629576390432188265531383497052373866611085310858138398325289705867251796827731297497156259556027539570188436737156294357162138616803724430265379701525441596820649458253194930688745681800755494547174605928366278359594880092311156909778408408294724559856187553811423225649640689836273371572245594520866124922830005976112454389440966453573251989516212057432971280796730146031749055410031150010154955964243243498897727389536340071031271396008903491264935410233098832916734804899695146459698139143373940000592160179190276392837264373878131342299242047993056691611588629478878348830542622837853597730867878419919036982120831061879638323231187221333584154881381443335606928283055129570158374755732050948431540831158662386404544211943212225344916067556770302067091399545124297849447571626710805358340428997894099133049650858582231827867527372633878811955038276277136382538655541322626271991652497593495781402677918854553151478406343244828743491043902024688835054708779591577374970924819463136686636515060027915667965802664464122264748933257097232803965469907939132100502195480881112611955437178005388234275288640387127754577632143176517845479604853541533826415153960739548617966509549100858356722868073897401901852383992644461979516301804817172660624463591782044212190811362065420713181781195038489761258365296543370494888936310616285593535828343531318998171758681543061992672628870217251887923371914031581299372091637861063949566309294346356466922194149002459234712662807543045768830303444345230896543019579891013816097644285618398983841026462124215669860502714238518257606961393041137600039440024532962252514279569561289394334732194946828657507526619378041015227379832780528756719516314061406456022297694539443493674236777206114722147088422262764477967499890210152394082826555385398140657116339725327578416036052579354275092163052585813037042757865355178390893911207043034361646739809337855679822163515172697488042327536209491219706046670228507941065682414545814774926960626468111167579494603430646946176293125411428864509813783943113938496084013992159598458443674594139938333901794749432978321226330732561516035915084036084221444646988315221447729451995835546219317544413869035738761254334461135225384531207625510578203080820960726166229289251947986384513389910638976484356531380021556994278370661928445753852134985974039012040721974923930971950518586486759579438485803294740667695970798033881327039257220142281785793658190435254353770606171131958614794025760672017495957250564405512626082348488914118689527507829659039435649595210976607090498525377689257844712887936465628742145955961908801967363347343384897301333903400285585753720023769492967038725652239846908901511901197369554320337331406569949830075121234933850227051984931963304024469735734242566246878888033540652307118540349781343140524389471778210074339402420078419584316486636449710005642034360211868468269040821968095367760038450855082497706528761989247850305518831811499822082331323123946779881762950339064451656204786935073939810261798955865807701487383543652663919312561465032190689738042554265416910128509609302251967838758692238224884676520898671242789256867675417219412641779507057727141426435734241170549268575127663452705220974991685869755157100764035010059224070549087159779631295364354498924182006415667832603776213392781911581177834078164913806557023509625169814122886683599041547255893426428897871478715627250657636884651880256722559147693138314704021167642753784917205795271516607757434091387464930047047526390344893093729924351305059871972747885663442925760905396345866579694967039005302064227685286618371561922908686525559213558985598526754569824853636069049025834235331301142330442599736913335262005117042622356282458366871276101828138219021295011368299325562370944369067373395161950745539467811228930177733213744140010374807846370041668142470014470793616248794413624572508606237057870408614123256008351803401034569725380648661407198042015450093440343126922895980037661148719745711202148086197668637671039108928706526963250160176537891484904536441386154271074065525595218602526607928983630288996649404851089581931065973911247115173756007507496413857870085933546317933268626666677986138945546864682371481802353595786556940340811518161266363534104891531854805098091598639508309612213186383185071687964124830580656770515157853821286410650619681430430025286470119331312857834572858752628413999528470477126345477189971551874469337471773473464946116580064973134267584393876958836931157052276040468187362034209001917344096547438434575391590786842188386117399715164317981547042970298500076410987505921233572625906396276057120671906995046641761488030688923265121529307045517655089377171611213819284164353781363691737669905329564692942324556669124056991722556812613508301951266453487551117009715542558703179474454215406262629074426347960912830587456032034024923817018897323756395035407756827478483907124056288489425075508889442062546076507538205586129084992620159897789062933024186376887952317892361013811852025651456698819765548322267661841769148490839416147912683904261317038565408195904070926081164865850757552326388139356529164023547835880827194520880521169675855477561816485461914542543688008543775848790895116756594887014677205761543600605648233758573484625379633695885890158521956166307957258492710337426546530977680176429123074911629345930401738267442201370669564906853778793463404608338535828780428777720282367547974527544497656618736193602007588024458974140908614248349851417853130828649039912354559251737831601250782248087141884271637863618184455126514281570907095635671268804638133432998243317437740668463782718745125397445629811161849041448950803448342843541171917339507366203428633014858616350142872869469339640793438443810582270637332042980665344962203469974727254248961548763675451825595824932205224142782744638368761998480277408212507958279058178612178530115114248951527278327431473397680014668376535271131215257968288513040617217437107079056306771859037745489700019054416443756754944693302542117983771752223653551215777957390215650206430599385854569480041631311422391958196949643049739396588267131111217653036135852978595024430297538383062022539408029341922326964637451945076461203887688572186887749707431469437889099598145273288145840285640305834210025672583151116771306606027338293743676247659812346479192630009355686487168176003948839600585042661164307107733757329678789225382246614924965461346002735438964010201259144836137413088022743091538932236846603388367801147030426688005388110673654775737093225050852098965028554148458273760853163520746504743394170459802141237594501998838922444087425230116172722497430142666314560419349331577161939600351517791665170969367303323720818644560017416944738444565723169687808040478305007058394982773758774088574533475482255142157263747400181533326934976194141290559086355890318046550358550519263919204831303875333021601963319533337644942922394677302716782079896248396741142667982012531888466833946051176732588537033671670981743729920291528488160540712795402754187246028516256474424238819711633883420531689198829398203428704904719099370895228389919156685641232792500757014546805631418737843758717009145113544114006299632269004153128161835974608238382791727805926035648014521150536532745262873362118684536287517367924022274399059461880052610114108779009210110734240408327321782303752856659758647876522355475239833373066162376899165827370664366420043803678229789592405124592078136335348503259545567353407253912030398933764001434184234642365588361290178566825509284318073140964335999123145567295001372517302328820474587837727515951206776482927161283766509316793893333060145122595243482454779851255161349953401826794681687219185012977195906803236528098902577175828146055259299640717904637970597877981305613247578297653070915341491769173285422909470008402232779079445122737485755608403332889890093292103035133020678484172621043406439924684541069765982926106510790366885023312503041495204447426895393003376200453012140528897049468356745394368061087851156097771228143335279644700202521157448573030649505887119898216170081214076059012256780274967059621651147186443581095954053718566838859719441947126402810375062531741667112607048414435978239099096161114567197066285205087943752139387463099532611195145240205095069366993179505655022666058306270661247686118637364538508368432040379708547141583258381185703389334067403732915663464795838931327257368661288479161906581446377069301551633755021598597857432108946919581241675494667525791243185489251157249440488151934746724100487094692320611207081176895660732518306836535492565074560473159780845688955202760120758916618779346271640427579795684577445962741369291692784470987755038164846254998179857355653465300260972811248856747345324374237786855401754435337379360626424264655467174975510216471370271540800824965588016496310888472712620320030558747247272993167826726717515863135703732172374455508400620822026509067248760313513516972668087734559606281614037232583251750970057175950901444963223797396363211744009418323107177772471058642308983700737813058379106739917295373366445431854110155280392766149549522419793212290214993798705126539504182687204089999643155950329552568604190500969476264566802496364497937416229370141132157831529095178308650696456784883560051025559312805995257704940665959396140388488688658434522479221485843236211897931827055558187225968869872209210130760209241193453862308103046603114146846748641460996251724725294000384686428652507169357176346607399378399273014472323387861636140596684875257995906583960848925239298226688381093941427745410939074143339284863693982365069510857157212908814664645459498011644016085694423147232657082340865377497207538799658246317678678015787118728061241028439957816462678948109764085811236829275693529563301626310898565298608768096712440411873325129549367112761449039399394540152724322015925395627869173376772996250735797044150137966910813660541521986949589026884081266144851497956571227311522531118362237370556970757391071844810180951003168308530166953466161114966223451400227549110432904041044727162923966252878815993851740965823379742877657267088769453186865026957412316731050725039472419234299514700915038326967088696535191931022009905290991583077868742791442655760062603263994037154970395793066882987531204821022426327062618616849939986616367892543793553921052136821968368309836300983665016448936574302024281173042515454237261899145297395296660479370965333442526728964192811449836801025106573055373616097471876783291097555613299950451661718183010414296071799477935400821103002547902746996560731293504462090499628638257108905262731356530007171715977744230265255422908151734044551838239739221173133569822397425145240684586854242863248551451721829615357390651281967684467900109227952325175228025340618039195049667899040745791341872033831257790563521781400003947328766752808209952476923893564408788992966464059912267715823263257550631923632139888787446258159364534422846920494562781128432475262944434155155350215775866547943852625872064842878822370362182261462450553881175907072457395110863197128540496111352368009355750121927219691659157536243384427297574876387126430036075577284948992116049133230638753821782460732924888434235092902989870007545999175829363381028212834894362290407056401994038375895570604451821252015829371602312768045167338481295610065699861947053786549643871803109045942211672189521451985105043690059627741597337053015343930660261361386760625503867459085037469854232766203819604739954966025231110365427583683820004278799063789721510115476659955667429043698851661965718967345270841284040579596614147002447552454822553868078551433769997098320416536416268246744209664935605839432379496325468805575469162742897568912989172530046805185100667494259272943675309833712152567366034424053984473075534007219442824900756751601267801942372032572368714192818605576836768595614635285778668059212064362579480452966103349850633613710130657107360741851899977641185061442274315237354111527579775347069362430492954720928219932508770893048440703049878472468019694284305900291433879297429523059038275672815954625612787324032076416441111658429300377534118435148480496686374653080357297332535892375127082543093772177365406537216192787597366426979530818075829007022288613324177491566202456171346337563766547837789087524574919607315812647072078790205153305443407668688622909995986381069958941178606415952720108782525937985950481006029490994630437966648722770902966272240766354466920103126989417788753869088200213813561222989872008617040368772085116385372640994958125125345484493556684118086241923131157974532685363752356912247199665509022498053876762888039816912239703911524066821453683681734655052698871169504469495529428121428899673844558354953546961613954064166627803736160071424935412045001986664200321582289233865907851198217466572634785696940188135874930603315825093318217070529960909101597875908977837881570614310389696826930813136774490280942836279446462447945555941398224118394132296285841640933547464052456503351766401601217881935803963295754644643773696386818103294346809940163092764045462573976839564527291879265620790800841934740503174543297621297218339715778418825353159154724589651994312007585198868113770984239396053891469811469152263616168204817533066645480163858731080054943615354586962164006475145514946283680868303762978305475419131586554197037783899104846482285345605202854685646362949091641100493917913096110148355558674010451057838200927941097336000413998466534305365366451280363556005341947803063042352174009340857200713740773527072132593770279216043032624826092949126070209012164005156115860979934192746712070547609335399775618289248455765562534953642619927352123326285166650383106368483641113490808483971629111170686307973968456201210638847672301309024442761002157881839982071541186890904734412238861865376425098357579930230610235022103504403486843126703068669634935988251355218516306703957620531365790551118143026347378652180698628502083340777452106427245708592163649381912497627872106119173834514734068407714291706686624555193036512050540426906878110131137722860584667467848855448616623215120796381225167299280658188722272439088482598051448300911131170623512187066362203574884884395515435796305855882241267034893771345397926704184824396154776380270789935474577818098048284492766051373703338292299494045464797050341998964660600869371857667545501725176050390962732441966990297645108624790193568542561926802858715056362697066686790154582932236838158882588609516959362027511766630056299391698468731483453562657805547180808912263918361269997226865499896056660362625064629590822459720891000100943709315623723977565046953443829910303171137593397036709211291632812969801001503294823834155544558176931350660362905304693664895547004874028499797928820365821696553105416599485157625873862715143788142629752432037564086932649330413666284079878709202873693026973521035276284142077804846618499692016788145482556484564641154243322297189652596507516676970274187636619453524434410596515621889280805382767389352165433711413336524891525137201449880490852936582621998848514574446989470731306925001387203336189199613763935202305399908792722603377058737134247453790995817008874070698413641344535348241538117654339208001772206774853928280984870683431490418017930370897190430153542564846401427049430241611793244090725763693519224037674994369341956427259221026255650897436717009901231051277223064399772713750018650092643629167160079652454758955941077704789715187313802981476649842779513728472890738647045487343486838183213045511114966437345543856402462704907620081602828206911679476550451410163688386317762319927543454894243014527856790156178044951470212524966716971208404454232266214376219568386245420180401927937407583356754929614809711525643669611229120028129790820536026019654442315357534559385717275430017906385449765944114804010695117298624382701747835027063945207692377315279148975250686321965778451281545889893811007453403715141490234520971716215577962351447949261496443900511023242465837711334766598847763398622987425830570681053350235923748284658688502893903107919043597933379079179123996614244629048614182768920711627505466139062292094108558744140164356185568646308580319129139749905801711622237482596905761635139553777479595655241829945971526109772063542706481516482022935188645910583579541082975540320445625120792068067835408247016980979405241482565654670552987357725495343545177083313499603676541321065575328233992340949181456608596242047606829335713143537472135956846252020028629335276774966182310356626217003960328573061673993448332217750961449576084564169265366325986782511932244450023463797676856196904062454133323067240449637350232499172228404171265297490868438987330526135197953242168248877411532635156651294278876431188432700358780018379663347088571631387710548979793113946970636968532706576620862577501204977244539876250174812304960577745893722079487108857382579293425712663772152899801441562477780118172445310133231341217612765729943583937827064093873650165503982541318329581998402538672691676775924568570397153990116417390075651414615182145593395797730357075687790460261141386865188783374497144564342934301379284539619447482684927168823632999862730479800272932349974150501475207651025657334487806284422004807128635081928007706960910619976211892271399716613320352679728977047967001050383209739946325261524666667016494157869798723865619578703814418324511959853202195725727159521550770707185944036114885544015100922217405770357113585078822343392972074401076679645489141119406278317244946445878309038462615845372652549791221082121457185299663207043904115676681930325142660604492292920190087782095858829626018683809422995086326626029926311696561332658802847021469982482090802065288813590613114644493629259317614760045407909951715169593354334607977834933274455693097412805034082494745316328780104123989321163717224679082115160252820826109910989491336006384620042415644365237170631600452280230183715807195599433120249141699975968759975449477361217373710536668661395000946343955329624013545686755517082264481932419240268341264320303560502275178873516733157847800146744884538141339898229284880034556537625136336690465341587763541055328529284732832611234724751559428184096954573528871281343457739691485370141885291268402645452657173751106981751597109006995032968706533401924915668935457596192397777250107952065733544501033690656891003375434867064018892115462511967598415379119876064562162092098599525509569481369525411871269508941465665563507719126355467095597360488223223470383639924294874851434483175523415704094882853601859669880791795858902557695993557308050459374674000794312673806068225641943766500525680675506241326417262979374910671656237427330902452158454341257509161735125601687282649453609052439969926808170501490779870468499406224305323474271334325782434620036245796172821542853472780534699293475989373248156440581480957793690319589574398329090872937423468424964222506771786939025630314679429178826267839014779770034721342444607412582240812819357712433469161145971047886517762413004756118494718308880181146022549429273105617244449815903665297502320113085106138045318137251254367217445692801460665833228024152560542674707880949162137199106105466788829619694614562524326019092540307559994677046659586040194166848818419339130861841087659966083984859823190600253253605550647265558367833531244779316819133929297450738235100846093429771175584551873394973945864595515446614275270019767748609528487969311623937142235315755744074373661630619368162188565134683218943123697706664474128644686643361622096916807181033332863760190287545832371085279317008102160196473526118069299752662885879838933033275756437886040645973977421087406877192660984517532075829841241347803657351479644544426481124473899487711904933578137234353426402888282370314142735737938193501886792027717640930307527808435991182202905978722960471692903364699202702153936948875748150830161630156739266673675447942833578412481496591243462303225524546700563342986314688354279798372820010132327073876821341160848746754171400192431711941881645975927900447863766185352331175121172192666275168564520136607976073522840154222465857255227511541156883397277357593821755947456660562728020649003891306195775593369282509414709731074898416726481867484498510683609759359593893273819759869955031482860641301020076367478975978343856354750923423164070265978289448664324098024761626664148032061796909562477410306194725000110163113600528634553698858069459459666413675310651792015314827318977820808192456947197888781390334014787691299213095187446492326682126385751264819598757985621504413449134531398230373463115301435971327161019448553869691478167412298713803103538342406664132842784242830106914582484394571985599727273423758418526026675072774425232435255191962698547732710652255081441894189871306759393656601159345500257421443134947208037573461810636526157331557235033492984828378591558782023902247846192412642965001066582988795718962223008512632150582315984804420531600863327966669105587814195677972769432382428807680806166057011984739557256290456795316313336684943225935918929039013903658278068630771301201833148761271738388244200290906668377285905596386032766210586550742754436177082485683653582708758239068905292256581868825585378561233126427208479258474718190206709541405089740323691601023059939852914476436357731476475236944576366887239680004753432900947300009432965851798368891504320032135550307914814443268569471800646098636083519687316431303821305356444562247114695534032765385025324217960621709778317799962023380518934829853346708309534549744091099786989269248198612088665601875577707671500298653652924733306441238735718427748598210237855811623854356227277036113232913564774862278230546856994368589977963704241318523864280946653835557694748887479833366720336996766741767930122463343194591206629488104652595961790206302190795365440574090440157907411477149950036468414522959135688179912609971628580207650618691576191507042313598414676755638057788286576440744159671007022349397935152348249954405096359005113603249146671309121033221113246737112380869571387874532860187352260553586241475682859905103347147503369581422459990960002071204875366538007721877488146994605071702413077431511813245376655121963332914244480131979179075731818677285573444812340414594827948442614305835494799601416034589819241415284748977707283867557379061085524425883584760059960033681795628092723755043209080927414475619022099420458379724975414523691428999056868789126728761519611493253537420108133923129252392345495699077546879851326573877945805967242297828204473454850854584765798809440180038959540683872998751182442843976520394709401890179430932609362000104160050722807476525600425766894123006927682173549212403698029039976190390175105376562214947795759687331216745066023284421916069350748965509054220466430411776047930751046952045853770645258161052083581812917301517639886310351210178347194024362126697814414096089630091564218017972890801592644818422500472463969865054247214265689088824080818312177961427313064851332676565334300361934329299593299263552419280116476439203307679767461899703932310471871253235131983554235453024982217233142787838624741663152245422098349501708447175595640817411646128672196363807593683082053872141236066122675282623378733877285698888757761509058782064666959022331167787229795627004509248197333917010229781126878980706109645524395834327118554434138697654665047337750258950008115464051147337996766149785881705838912897320834772329108675223326856612126726985529033073852488534904839854334549983416310733367092806127402730741569366235918537689584091642118130782346460570998543277623743468741679278702233700628188615419858297724631849662578754681376850898331397228993494653201757627967511198903408225101743918221475862617599196415338196627833824929682076627138751504069165434514570932204698182730656180355157265838131320811211443905193874235813476424881855390560901037936099149999470934347866601242168003538373200783704317981317197033181192078562434166989595355576526864789284138354023268824258409952508666284278852112433493780232653361386750065025790792927027250095306079640741676742457437940108635349904460315532562888054077512296122721789142328752880136215804422957107048592751854301896592530828134536233391220628523749665327818552288004695545826768447511251148348343234295881606932218104326143793759183008709375431827065874862279515098504315735084876233385178149839540475758112638362930811802350187943687811000114741866870793848650438633791443095728908846067768480270924508117972151637534820440217570518371220784655902548012306436196278122403208617724721453738361110611195306582109086413879264799198147675354336665978120279419406268080814998017461949835029414419946142495131521248142963736470182348775862757846949154745458921000510480861732373116970538165710657379084257157618132420485004480122531418270227774971156713378559717157486531886885489971547936239050557685589879570639448698107540143944345217378973781979752930477739039172612839035964723339337928116142031095752051283149410439270137200014542163862704273313156290700183998629235648496578588755743180464278508357217954454026190021639252470799758839119295142591499522658274726736763697123800467645710543373168238799049160698439605181335875735382271732361621757185424880647678385784000254037152119728596741478606058085136852909451905380548760389932768965059973059839699865861248527574107609600816008172770823637050384320942160153454869933502163408417524889142004700922284105459670543612948262653341636935608736139051443920426519709216674602959947381759132725055273604157112337772074124892437131532262862501361868406159319550528067828923986676585798395627330326250612781721043770498279438035952963085488137048712865873120900787648178042337993385812560858730894786077608529729299587514427075425047031210846960131913320970889118754478174910814044928399054071619165353368008915274321579187278311519512163700694082734731050652135434684643856228387380161079110866561446357006744178594267344624745970736276170368100976533943226255765145452524436361803460915636514160160342685545721702358658786449106587227411067643301583944931688572624108364563723683591836582552700445073752839377448075532293921926660350643678937537352907279517482170926672576674268788899085826566571212334254118334698647925629486480095173554623422396772570163793328006971463127630239009065832142395161032323697041139882452413915034939076094233178220846762215696196359552001723991315544154161047331901067765208336671236446525742823728678673974632824067786322946057133667489220759716692430170365849399756738546218417958639556461840297958971477990506375489694436283919058167186571955871125077360553688491393824382551771801650257859316402884812144991067860451598865906283406163797322582337368131107303308892599799772381978617739606832723334498752865063170599654460082329588464876091597726008625947167994077684766123842356227946147017775765649686968502780382271114930575129375087143116332485664374188684249349391767563584085436312294041704574995834154683030177061484789704731100232816226859844810994583918151392762831336016479400122936036555150715892296249396533984185852176114875191594978902699462127187193169476188267215577936751856828679294067352224043341998284624186741238753926739632619166430942263928201136347136040102905914299837065492410607522912763753219860981976831989658400320056243385517721838989501730824195295784009760819509855038212742814003663806039092161003477396857235293629669456300634031808176464432131126393720527865946674448492919675821307844058480550991500347680584641691167518305272053437518886985824998961888200713111864947164263560869705268817395732075278214057507233522026648133113454412255380384341411297415204739472131121915639158897109373491105782726769134101863586856838306260523277119718862545070150355725569801632340840684630238742768542191565196127538244730511610216668791664828149151949080976985674331992478715361708857558834107019484401305529811592913128353434477420230117558445838238131656502649062834125047369836343183740902722468128310670107293949935553104005574545431885162119608836609294701158019882314551416766324225466276850014597396559727541757511750670200561210228193296425855921006223897225036114254121151335900618506700056132717615931991951367985887220429401808719477102925442181961999391358559407708288253626740420720307244258627369684472516238146115360155833431612085521381025269387453654654131457635072125929476101457161297164474185343988430280627519269002043614073792209717618625266969114256906574985417278767254726498180448267729279585834834294773228847672787179591472550571831216113238583429477805153995678771070479586406725890039165180045465602128224897542261225185424392963615189528133202697154704881676033988863527059946390014467849939269431325292882955389236228931281845940008419555753346659244235312179456553918690113904934193258764557764056963996944253146889475459741933978093872930499788798771048938254160621743647377052230901550779765784350627716199404300527763759486700056654134479046301646374032664083160030034194606314503561571855522646481796305027676544326166273251788228780823384341135661483163029626942252106300644397038943001850125886871082088481078244338166649758851029001413643812294704670457787130216502320062838239366383279129697628011150781318202723454691641554968604453135682918445936374903373724988365031826189117853367653669998037070403057071942260599368780602822724593875402447088414502162494597906696328031031954651663957074787724287199578995739822301254797593226519010870793477999724450292718441215612177257555784637280232640118750122441216036036107573789629199506346400853248605527876300318255445557595560137488919522810203273556055280381962876248300972236853004450568127098050581465542928131682140809787299504616284182072635110060390017849597050583070563113699097157898252652454771707185643851451074433685310427467457325457980877696378520323604100246530938129268839230354377312061442435631632036160634693115297257266758196915032956057119718367361885814899055107617885249379178476334909162038427903116346058386529209155895462038917942365205489559799150006338176990966126599655669378264726141466278374840560612346819415505308564055661577762559948958153195803405466860366176748901286367434200033907310597867235686863846671241276490170938939774011598956526698533280816473724449380128126410118389650373959462959895027192108331056384033444523295628127890506162820080786500507347778300353211335634439738970675420858632904297586136384240520440261058111924861311285084269303547821174008902556819066456573426263046460687842290664671714999127764228381811511831031876395452448966542713982369874223280773976811512516767123979332390869360126224370229405698268680944883598839693660038365728308153344250283403313740083117932588438230340103864095184481518877309587176143074055213576594521324269618918337225809584991146753571897503989036249483347183730753169969521526934507950664821830148370002757124000355600220740221519320469444852435339734311838869893374557482881100089955345643544707818489811017044899592271415616674273826378666260760720805848821574235164055354190503004483222344126058407372406800788099941822018978034269050879902039402560034602179370969804898036617503680455675286988326584684888935981474534540903083752554036643339620736822792423344171550835752449604812881144806005304858652882996969141605708121770250814610987370211200590088571716353546679426540491080704458336808910603049441969918634086305922002910570178126785701842685799261295238185661520990110518539499044661660266808677273433521007318365423746625882193126723317319559934602647787503326391740323066829593818104204659966843050851488134478406615765228584935888543141655666342825052340546250763995306351838782968617986829052527409806141467801934674661538121647596653529979052740893189058045766312684045983662680865902760868929605370720842146401882490159829557656676918649807067953184882677632164093277934735226623029644048103149797630205783512076935291839733602700001601925400448116596875535805665103283342300618362196734488158015655892479915478180457611898525409866970893100518751222336969488116293081854379699562312117507403601694232019488688221645956293167526191237688630647645257376902211329841121991512889467727203542368239484404607185693651198266223405562348556257376556835800901630635415734199807538203082551091458293485878370132789007598606562528100957851917579880177282865958590084876387165428282045704027417312187780485556274192270446690120288830704444027323211538844774937707656476101643696518379611375784104564723242292087738100033517788263902435759020795713924756867037051141044244277458209218633430205895659137100969728438887329871599416338620973999533972465124818925522234503194588224796405437994116006136024235284639429441241116429355666458127819326662459952510317055986898341445966672242754072861844016722810699069105741093783945401548341670595393828134983870948646906605053880765294940582658614694691418814786311525791099872393428979051946832853402364166277640657125967218278255182506150594046489642274273334959926481326639275612748763753182685925677979843823859040022548594032576830131132999813418167414595099626680032993315577992915771990005324831943677946823603423285693409542934079087750803340510210214752603230806707221350023221123527915120554045333290586077053030150648143763533413787801567163775242667590651653867908522094070047496621794959449506890114829515577990881605090617821479360952775523828999222682506925157167509282265778402829179573079617768796197229046184889770586568433745154727716088099911475249616101494664153246269749145520842898098801638148399595399931028602866953711001731534076394332150179584901651404319365798017153630743419944117578117612519159273614928113839866908837912692203945402868849821451104627265260916185620105667641413743123394365116719963170063276050527030926617500976555552121084169819186572435260969267812236620444743650337887129689864106217426846603847254702792612731159313545035191767993181424163269712379915157281535625984579336886460620555187909025319611893321577068101378024248271578325246218825762590314488180369537868807974757525856382530485383594839326097092303615902252625529616566677757086343128424627637611548471445837211465852060994548824770599067582247129206593975845151069242345871073815967913260708099328383299098477342754226145797517610619418210470867280307986676258585635734326607429202799414136359628317009284118414999121163098077880828241667788708101240167108046984743819116747579395303681931102076629251965013402577658142444807749404824232604894819157931778643174419768983996936053870838787826043632733399221814731705202367527703385361958920803928695535302119874563998945113176726692397263217268878774689947967882597777205268833093203612662719569820305307031697146904757211148095822304800742542137591303733582086760020243709871807272988740815973951276445052422144573401227778648946776622191874189028469217371976686282948992138813585600655074899275033814588869906840817709983544722052542600639785173182610295993831342565828264412334187765246534156428564540578122787025955838277321805463134975542830312747145690841694524338980861453218707275876062295136291532597736788816700134463440567059145449425073547746888896892407246110622345869632935184686042179399508910507309249406913692233458477809620937104948907388313546111220856467057440722721549758381309465966965143912294808441843374445478520002870570105106025268913563026957865123503899749871128955028631688144420727818849851958776334356338538559806734568777264539046716130492815538138985737740638668779520977608293955493356013430085631412567808240148727292460574182659011278771194962833997690851237588138356162560166077290186216182997509770298137091648910869338864538965083171844200097208457765133562295388613851463698394745048194370938031161519002947081350232814888511556698871132822205668944994779749780489655906868942084333935277744567986986695594713647212300628557019130577976536063830716931238175951842088378957100801388781408601746372301269083607974935038862784449523490410469323127584465593801752610430014875535009942610047598789148435594507590364041578529014515346003309578879345099792385945595076441885532101657295267046865460812330389503132576835750013719310127474551767734498898381064880782096430655802171897335515188405515786900843628411708194370359734966941303003992061146137398807794962933232869693839033419553962262598646368643925741887683492680119077113966604259784080011377672711280052771025193529053544141838496052716787555874632486595950721702826804099815829054963018219102645857498203081416319192944794182917806237423054874721533582201241127432885483496384070060690775503293042543960395421933849352339152606939447181930156726046707199644793133612735116664266576462425654507269757287381229116715372098174222906513493393764061883647868059459759103970558132840119026369757910787942500027192854819718117645839332870022131616551397465274007100095356243892925105074177077631644643659755171231550094324034270754156940892456987987177246503988657322727981592518877226743994898905085290756188337583962975407848531468017894405781131668445934443601930394014617321051520499653353698486114364097735185634611321099425833305367861736002409068891396463532936858249623518283881800132541826821408584860591682156654278248018241924797959992413876039248486806542174730081238470527586430544979314526982808145158554690342477639044797631687955055835513326767524600977315979705020682950228220844666871156326699548316676704144776342133809043387125603872193025990905929271998688818650593045524113266235972136668951592652259664014922198051345423071944096824669134380009541908997215271037603422043033017095568364882711163967052688709237159723846220682252856092383022790026309247890151017000760827851273641084198725363771404132143900329766335230178727708990922611708102436921831669757072188257316698827245041420656986362202623409999331645624980318827925848326088764435780763982382995056419967489545660432018691708084969139436850628709119834625034079992099183834470579859037732722925103481259001591062499150187774063685904311425804951356357403067400415909502450184861258879211264411818117373834596065227877930211582639806836790270213651254328223542880063637117328284762479318977490799831665318743745278160039419418127016706941853125403797799501452112035564811619747122244010591139849064839098613713747542496315904665359595656954567696138458342227730658353128898448498138926670549078312601433524101326604906347988168472020654503158867978975540915832037586373776547164247705161484589902397943685269713444384820952153134122854017428075879039588907030544726867683579457779455186414745321875649519586230097617556540566073584878489899419132053807506126224531083336145848448095975156596396887909845354773856435502317344489419255971830295021651467312063197031482104654284872627713945171116680261889899865629846319630141265568079021729826602808396965993978399301156764454900622132270438267439532602089979964495077840603667070010432615775246933803414545503282660531387472057215890651995249422325104653395761391589740691556909564482445741978359985801614858139461090491925293898763031708580682512485951575593324685686847815667867486677487758548601969460623798984208530809418074285575368479287549347122169625268681409674014118334529322654332281724123503901672924281022456026106728965613255008614277490307491877319673213147047705864614754868375188965426186392321293694237872726532136157385885533804729000623103275042084140839936430066161258829921125629277516538393497238135687084185551227665436254382574440176302043769973740395365004884696767644829891127731888083868385552512237695185131358637659298451018464677384274780281697911943653314627151296101428806781775460387653658255832540562616399922970554862567215775239525192413078683101233928511262714991669700192887007199064051802818640437434032480054393948483491133387530962758139462894564431918126571715532308846564150161844269449737679440879220129797680171417018450010335197760322788692867470928910503237719264193081840653490841623163599804926135239889208408304111473739258325661650946098973872631972762353693913151600285157566655251155914363754507282998065796838503507768271976259823668880709115932153998443131830363553565675049449280475366393369471326249207837331646131749000100427312965892001010466059852747222232678308059072941014162442244087914253997209948059001979353886535263837064881579446738500421505586041012442532345674964815526342637699951908606680730133908198027967236347214289795710482794911063884840322805432147913978300983636529805813646844129900674098762328708984406165480301312728160618917251161514081186976342397859809436755230107334230032948581543777589539660307313123727868885343839037062157364287628112055555671145766118793292814777887230253031275377613087474467568629629691896492501827649084651505968279547288969486330538787014370355390748365062937867726363458533425579623422136556933202159960907590637609828264884590307239982176753819253972076765643805633755651005487553718484921894983268664851360321150924943412372118739684419874943186483115519557957601499036908817611546197539536829811689529280046490153876284861379368781134043264662685756067630196850509503470810267223784975117927188802782441207203946984151525009175674523007143971950827295646085942703925296568679553407967166245330345660858937440666342229296890631581563381432162749918678798452396461909037163190482891986376446368526949938171064961176375089924065831382860146598234377571624169181984181634979033953327666979234241856843696754879696105840642972722804320599968765054599297778495249641951599113859258867555956527432795537373561453613360697397605116875137186455792228068716519218328651745937604726820807949363876678174354027104740243576017312616700983803217939171269218424145281027050121274407180502945188442030952804618561144214587566804983789679372366530971635763615982158419422543883454279606394774367104235235593673007661047787967314148404119363871552373275268655418397967939185114355609033684874642835296509144151274176172807517399080692949265712177205575838943624150067120922371466187860266049521172783328730213810526937000665534835995840455228144943952868894932564902667193733157056045447285504000874366416920783597581223390903680099598082259383830925830429993501699868658453153082274030166583939533467708143834326834577704592064054182072687297947934301125688968720094772373692126519907565785267109688004253123662080066691388840874008403560201678824416223802583324570642838376548378874849933538042013288121147938233625760032297971349333125772233415061156824433299111773023748449937231899647556405347813933296383130186302864179608212693016679526863090149558526352212501946627985050228753549388075608536868822131245219580515815522382968451293503672310489162233443594070301566440655611277372895278869289097218086050245798309194143290080268016634471562366556544581193473725201967218630998335110726751519169334758820192423823957373159129786551334232215940456174371415284669230194160480208266022693940995053648436588257796299586060731309478218654160762327089358537615597046595438464414486359429160681059349517541645557201190732360790581426635941768557243053621877706248991677284578740130399602056221194519813100133192329450483651101902366378649164638730275712122049615123806402726447947808495663175380565955225256322264680907902199531684254872903851661196980481154463672013410233952514201222933292430501510357923138764107038460571297181843528873210370555876634297045428525277619633373075319314936922290856311211899450280181419738488221164694792130505578984371002475265564350972746995031779785599605040070393172558959089503913317104127961457848185825406560947422889565400629419154551896991631932076502668331827958377005977700493146643436935928183962741128145434677144913089379355000228747346255327389225594557984784576961539270213326004070428931237987705141965371272315767193577070624626059583953923638745536921877284610101450789172969060577503733301683927770907266533053838150327430876697756199896035931701517630582661114778166646512675676863495280551861755068197536808667283916806849645197947314672234028864872717769029827959627908830278338550442621682286049242991094149692607603359631870347468686447410430044067628297593806591557632921980219406347038924646044954779544240467330273512862103900947354219795863931771832096849401931380712764178055010479983054431774602245470611425471667846418748876664783844526429071254641379214181074018285555533876621165666233173581136203443521297195794567490950998433562669980722962321191131643326982383119100704072161535068252340368665677838682636997776837640996139349924746102357179779801989343974448831914773634084916917891863117527242179361414967597347554426432820178241773155072643863716309228517936784116151457949971802277623362141031168585048341418147423831321883954758063740278317013413041433371038948387370122456575008634196823557513298378876131529340664036374065655745838663209533815852736276256322395091332983499674383079023507785719416187759505046943344441082231194195819679377400779679241028192580824868276857732345589315174337046470297967961000583436266753668474599185776648391336299497474024744439532465499118031256936303323087076140179903442941519315785990935219242595724632128894544094883272525418329773848030416660370634262381344092268882117157153976561163718216601928754228506085997775410464744696211930441157933583096650592904759067361713934283988515995814207411486715768167541965025874640895010741144724773853518252546357382793083919972642596356109328569302088512204196925368056955297130011877901042943956187824145987998593210456303079372068549736222171559411654682064585965664545607278949009052333615142270093871322645321178031203701962422307526239560472106891540475635817147283628429158078412352501865596338609957832632939652683510813480374804923420673043107747995545134509971805332495492562315515070704022556619921430100248738417403110039310800895898343509680081206605251300568587245501834439350582494806681397587579665398581553151945261471243699745038530806645256452811739917606825133897852185182831997662072334804777422763963784077113152248366029700393374678967334309946558554790505518275895767907113190676221453993788006905492616619862147343730453682718068887488727998100500254726959341384793164380218024510026264295060507943478839281858024277163714835467919646087714030617326531488804015691468433562143071279939989191689780093745375672533988158853647975015333511174532610321800539510192580046461465732002643006654686767205513659481996298964334157895691157823859772730669386915920293247698586277395548079987602507578554378205166973895432810036554277304814849944916711316271819267117088268121588505903922149951007575095672456447185330373929072291672639928891513720964128864602741340926560856344874332810663578853148880904359219880904168590632201578590119808759868059932238502180374830616118281871750099258172040063689582120530032971205497362899138457885964055800179513647458399346123685130006398609540738324370944788487592456955753312844427595498794092417338811320547578269853715630466760052848193047543567888447970684785165020161016350607263201374508353453992879608752845052846249039018306919054353805373953949234099849196779571592673729331607720278193080809779729529358527297415494307737068120505983091308423816295365009473692667331366460806785350282716551623480997751927282788657185513581451228488969566611361326702832613814336170314482776017130696368053063101361415226895126314513361183778546698181372491142700414907889015176903526910958253153120647526199309831535046455079908880429626684762554421031786641025794938999651883738805864925191306928922367001262613981896457679721640479450546896608770156191515967828625230783130187858529221084990530524800679726871469970722628979486674009907589051133837136351168012488079433862417688304615915081566828876537947570283088796584854690794041806022050175354798850156348101360707519962136405308259231179089045369656086932189085258924935589843152334720075847249777615552032044077410187950489335967338108696963069696998809794023328108592890835663613860932673661295715666545282511579972287028637315716244580140687962693650644216749580422733954130478610690864970670563812075300392457565663770500808885767895785299087941746938966823033691587375999061265653108423320732620140150756190218837896740960655449455071858042124483204355972540067628749076824188077896205237309488331422935878586037081837696751724537303601598714148496450506421876404969419204773145718151782167364447733298110962880529763615329284144797341736232081948050688958769332426053935812527328488503770597859200816358859131732971376600572791830947482465968098662969190435616100870683171189119369560432501271992801875573276831390946965493606696532929253186934777635676327037191553462727916424435898632473388050277102737389829129482680683138274847885763830025058867580358493186384517191931455200290306296142576595624512189144672312420791475242888912865153341140319892781507132944526041762220708903461553371392286900418125973981830221912300454034457608669825741891701772212334873930312510899399047987424264390225824196948093962431701496572051317056476840800470014314348415572905917116995984545483405061222019683002584229476877979220938404841466410058611633080646246830605654092990366326050245074393023877650773793354161948408801528169708001133639314835297129096376890628070385798829770808278297381131746273556118714845577580777416025547702804163174677313658676610853631012744980518093511230465129922442334798065034200304716846019546839595225593145465901561251731165029476543711155050175448265076886764868030971476630303636875752976067902471459074957538415837079646159529247503803769022422964904811590276468653573715937076961604997899815437644839376406995345767738553089570590755429215348190106939087852807418543056842293553808014332856071638102248716370298518264178330902234949242098920937220574000212095161822841945919990967288032520015042544696992768482528357968823310993763381213973593158430032027502458250549676259227510104538204952431111570592495545337778689705610404350275652438666499934183560994456207469227285732496033432336923581888419347562755145420475872728762294069707024541845432810327518041136428882868352576808949472302392079586867289196956076015588930673194738752843944610616853448348197951816500378782412223633907776296658064849328738322522444858315234329853294223754715224600375204724854967435013345311194128056992042941917592592522500072801994414304122773893317271930800073562920763628275592352144572125255323625126025206812794592915443144638369494385034676719780961790857759505722657512674915628058581704446968083936772944280969643383363603660078952644552413022400767229206772853142091907385822907405284561136357488944921985695085618791323705924961377587922833302176194389278514822012643725775344346048014327918519569154537442563998967200450798685538747926902830482991534990731810062181543835663743902331000955136812383274069190528865245461004239277500645898772609907232147038377590369564466678701652731291107690964659467551837770314175186461666015245461529261024707592683785864865127204367402471177615343442095556478938971730222353734981717742422175400466899830414419697894368089814597167495330974638228070185788693765867525243358394464742042387567969374282707075193637765651764454674694717614741792760763370714008019358682265472443722239387399711594830425989799829933618013099613708513109956892164728236733492076208004520784822357244029908577614130172186558918456942378661191133921098817488731173855153075904591881270679217567586242500538148056211689343871591263398429793226309449944372418374145375176683709020038445541246928377957962128647387994406692232772238059083661088873542972002933215789874773487054391643963138766775048688171519724938793434465605169436349099028919949011423649958738264544799127761977219327033260289562474324601101135743035434982588497697193043614391224770739544146231270620270899307961266713233976335837694595229389631384413574553407892998021188658001055032300023280026789224935154525668879653846265065459078959310954467676036256487389298180676389343370854720188888666800795946465816907676902728716162920276115687432375654803513856630593283177407644330199513166848913477681197994916213308677725256397695878527801488205115224489152793620846558897251518662098905931668270898446469118605520935999746278181532181216848296941378403033435200324052563217499011095624354978037239057604004925728169997075882724556122093234541770910219367843482359323922081201373914427991220942471288125527340996923833626501159513761808070197025859401932913728298655469110687418655151563550796512333013907197356213222274611248501081328757141791361139857053233448097525647106874823232169191348449060788008180744732714220388717962502044202828423847043792764684272162522470115156139520352419666566068927455553715856667074654849091324464764920102521471820544960134520281921910242988935208560345650705312868387341217819721000606898779115963420641582590335684798432332865228506382034344494864477409247138304264162837830642591153700487105121814721601614720990212034651427588920024246948476839592509718802219764123703719565497897210182102474020116778722253897653946846060615168466310689028176291993857585724708138048576970885665499706391672516442951988286647705648869511388778919580719062691260672929696084254375192507415066724395229327999139282169659746526619036024800133918060005316172535425477253559663745568886201045711189123316885228700822606175002352219745393834582558506383657186694840583737527771247603665998452274807690251453698504126012641507058400624010655075055655740688473727292370913703139421261122948255375766699162514513120146114543333567016352164236201768401291961224862885685030103364244607167316133932691001305154426954879369801232279090547929939307456699959422264905342814584572341200746158405344835588174859283772605856943743056273915833801290512404790435978596813168231160396727254195476499074923160908897499165079247406435588618026460786417984381515532785551698888543790797049502203172575465486723502728878084687215694734047999142660388018689380575245900651110100080446298798490148818796031462084031446725509309250568644413937206115058433831965184755337660598318330459657441839984559708391568002047443722040483495932803169147396499803213474961964569141825069175777407349173197785527057929035671520324520404314253017418220531109747025622480217422953035539675148855999872249539792829483616813930007014057963179893887555817336975236634297462513692327997832167743989152347418853577430763940588087044984570069908496509349245328328653060486156986109760688362565876709151067914869202630151215910949582596614170913073304212949886134495527074866933760053401297073782945557097984364034345115678906160306816976112449412939381986115570718805269154974136555532611897814770616045504531563287386714734451645201918531379173369829430092246027627897014438545417192472983840193941006801527782568011839723243861280276567445602683310700328476565610825413881220318610790670225768731748198406009074025686868841803360633762883887715585691539176306579446415638209766732536277392554987216058691024621364653022961670297435537759318651333325060603663127049833871524961858073431353744380411508191806733341681641355520723329965113924688999563275702359169112720483196576497587814241920719114688269868853831490586933476539208077031302111347835066056845423509753555783946849123596947535612879579787939443221081663387380098334441493874520380597723998522913065275070917464065323827518728132312033163975518148359578831581765998203404927597402942173261709167885288926264414019183532337040789415435540193605682040932914126535803068156427917068840265243420199299527213467321642891935244639177797313298505457398171197244223280315656022860906819759254539691903884082843633386589329224305680611355238657400182587415672737180560571979315398288212551185789965992740357484575591748080052297955811863797931634021365563504832107908137325139310712408614238038052239053023821400758761862994598460605934266637732379812570444604737265557397042368502398904200053084665041461244563631354520840019770674085217803270562909609076812720356932521041781044107862453631885029236139506903723823104096032142784226260880861286181546243779570122532001127871021382266267619812577853629863260284555189560951538126768138275166577047244036132696785282160713786281428235597965284392027287660796834607094253885154015960277350581620857013502366005612285540333209366159114268369400502824093588080423401715201684130977502741523601728574547818115392162183103703936678138398609943220839241721419503184932181405477696610923269699672691385843908418174615623333644739866923059549017186982734166054579745286808817021204102272973560293162760781522036380017519565294258279948172991287604382874546181939679790446802061278471922556970801794906242756799518106892349204166363118881474511256261480881744007922222645368417225555683726803101165160362852957915257989252595314005156284710522926719375639653717931460159377519016401536412387584703342505840127545784296919270641911988414655612714967097921012487806314414926755395251230017659046062374492733241339894956649402165775405591851320494443213492747795238358396061731705979751745880341693411451560651292601711977429519890026407733909885352983963576318061318973675928859132434172504494514665458040762693788188534623658709754477425280134541315944084655436741043697461264474849437547504210504361312121859120049644632664393553529697866809696428430290536437201443271731476244661723737272614827226456240789654674522959703120796664954444990056251412094430587566193191958693727699236927117555929158769858028159335644534428811168353973384700968837926425275905725489113021958716065952484555487139511703054442568417679579732476897512714170838585406851829168141061791820992999335701606292551991757141295458590704935860447886602486475992450438206236231367221732735991657889685678597073746449056379993583582823543785681065579214762666177337265502469315681976171744324411374286314871068814047531843949542803709361985144119708886772811403805357837465016582616100400106742747590543839733695865945348664846109019359048310889083030836855314844078534994821064062673395710283194625054251727304794492400997303242394587886659413892280051483883250502481258493252887462350499880744402570083039237396085604625770159509941401202489067919237989762804854995586065390652077007934495708959272283102862129435737805760308841018669857170312431408126036715806953314289827133459616340559621761457457478393677119918552936593920001083552648671295831419224351004229768571106033273959590830346788913303170717048003792360399664987241289351425448363919667463188554687912746727288826110719673758659794141012610155466125528651385932286030552178902532732100220841676816336737805693886656423812852562820085827793170533446606209644646842347163242414128051512204548239353923273697790515202124616455092206680600180933626576078163534529177138008716177986432218057558239940112835847646159913575890739254249970167937666309512551215043172958567791518950811953880213194340852519193493268042581315043663999546257014983914269385012677558942837079825173051200095823747763553079970600895902841814032140645697101797916620302971041519884615182601150219842171525750685035909171355268749979499446383623417762521023895618449430770959724466962487076420249918372650866825135851291927025045214880562446195680753136222710322221738598504792634751873617369302111973801243652233597630693257541290662039422706292707176063431675768055082092539838791617924070981768593932922285659770867176145892891937872677413393832109887878734882268001270202091035600977898716631382374611051987266817752570078632114342406069602798999966897081431075568277877263032444119618800639015210545641353392579801557461693950355552227829784879909295102640006213033522964004184302075106272960180641784341099350169866668408966557597332350334010741530670758797433329100828686746984919273539407357005339905486756839025283189041633965816506028534928286050647700878636728458167506505042688846122472031887200805363473679559132174554750857192219621344570837981733729551721735663531065097396755945769752539058038793880346804039720668818774679941789956070834486075382161772614352402151085802248693924908181505034125749040226783673658780510361311523069194936487943130709212917554906507129800953471007138357089217422268176525391202122729865615112570748604495690541319557292783423196279384876560137205008898744395680557072253851716029466496619185749110704545380261620767836557762464448330164774965839996651633684715392429170073227391867917359077994689635185519135564209073425952820164792705019122918624905029012605111333149988763463642137029426022112112492622728122584017582229373182639818062695819186030278740313992745254669946483046202234820154360537433050765987233751795765794020891659279384847818565196066685899626286356102604702240206364326870567892796585448681942484189461978834763395752489386575274046847546267072999513015503609069539203288451307320756853299777795467388428103509243685023967594487846331751008543867786554751694012588182248806865760468833275493977450744239275607682432676811468273383901647302098355789724805092081402734191125621405201409355799751456437628503001220972327671979499412979126284572159479363023160702962596607213663657483057175471709022190129978874562814941126215441322540166223223503516761647796094712105200224595341516852497898092166974446255460184496079320507525780536964945963450683606302681191477590510956624238951148600356253483949102415364109195884900108716817233799107061688231841172810942691775066147328325954278292707192162038113286527746881713248798416993221504307467725288346615548280879420224338731539686051177485869058213275652536005398587339062061714401342322251317277776683202814722257638778527975477882067830551132448887475731808916517116710573478215978376895425613553167423580135796559615024217117531943067039941039590048313734200949524237060180410888159348433885987091086021628946819782113056131993952255056850948867257818869546759309113583656877656293476271076312842294081422075805450816791122086753732457379457650269272104528312727303672857726270370105269402933540276523660504070794849339788794761642406941005654133119720588299074083331626937558269924543043483647454936234413361065636737584880606289222838041855549982815908302652068792332810393768468956443857879059255827486413924006775747298396942863586764188568599815334780390573240012255489597600547625713035452355048494093161945869678380826613641234463977859597969049137050392613889184952106187621740009081765320642941366812915126606435639352321792954648080700177244119422707850233525192112973590173356935821588486697524514178027165747971062529274344193837278950281177360106925755945973771666765308261062570093116713344143842054189262336547292956863354517118720724506086051691140353004202650839625556257297353774016106299147539059006425108802464686222678097283177972928142728372918068720438644086042661485510551044981760695687615765093842222382794031721068340184216323536026160527768172286408456692102283016461510396466566220832488750890963902776102107524606532993503015600450303530896697773160245194198364566279518454176702202936056709514689431235103300315375511105171798902205179246954082506970283839896150342371856834017065454727956993730491871767051997942757997287301759516845039275693474666633316957206057736098598942832977182219683531788576085837941548652137336779355944403498053721830023594271528557881664251107987529346846716108383343088513030961107773059210634492205871287663104974348645296017833712569807568585908545748289162132324823204953775657305107354452977721771093181250569253641108242890430217780882373834904518830294008406745940758339345745760316415341904799467869389602271763818125119844360054493745188998915223346020608046772012848338537250607345498938864926537759195014500225773238255967456917224658957748148791867052096877082983329170557719999682416589087060302100369896064882239988951943688942680678098405295361062879246114130145213958195341124855291181983593226972638004075072013203341165241895772812674084872930251212080410127213375803166343343329546552556373179942236113548341839969252448448911662208837392273462410234299991761167730793825688849686446530100544821431767685673559574642458017046834508602443962078113607166613778830734183710847080078089336712484687983256378950530036759584148560333502733040658009131317918807803553739323691173262118058375524281210594899490821656198546403272451509943776634990328513618090627164804046892611930904306156726854083961990257854760591099377656920250920369097037403744300675805348767368758322066080983002601331975547000519110880555111161962665171132091859929384954642253144593403824222579863253097200440043699651790070544492549495624681877910462966568794646281505776428783217628696497771931825840949080119007322784157816609702957124132737375108645241731041430564227095665371576488968000730691352619378918276446419230648982328016670056878872595070389096734239767725436841912131566680814837154671805366436838239215056124995624641194372470534966145291105411477568706228259046168447408943633140471390587616829015122899688158005519856371086695393228744924336488284701406216055310256507788645859406090308497509643127880086449095155527163940703244543721923068403147257048767509185175192109284146686430637921739487916554064816825396482359712634546363134187255028961283992238044830377971026061916147514557046471783282282154271204301443606983053728983588991107487802498571344673995312856754582329121682557400617697739454787222017393832899076844946964160040515391342971644352294343482929222949518146888074339201422102661260011576016536004154016375155437538955845124118960962852728980053650357841788955208323863649726061632149445947703209891285150991801721984546656387538019392347111320987969248717306676429921541538575371849829177569038672867753374813872180338204282698722330673275754986300618248442961249498772788398097295260491154253480660408960240747190356323071881323907778316612218500942521036901806175353635823761199579049567875455867447460044958704297889936803698823278853204867066222194639655450096653113608832913175228787872846218165945447615714121876454567280400044259493163580949383384813172043495607391058598007616868923830915469785470809014751971462503472506256977628695380028695997235118224004537006345335456152833712599907537000870777651429569050364084397339735247627037770239022888075075041282720136036861877490567463764831026929647078701115156651195749307746367770163588167896568221580035933428452666044706183685372078758994666640979253600263671684858632787844711571192095961040140895685373706594854270465678858600233475272461549374544824731875694324872148634764539863569129594205729827062539583913831937985103299147076553968018875083653089295195330501542087837389967516329578146297558698467494670750037790467239096204107981145500512188885712627077329726502108188820600293985770274656855735259663464575837530515961057032504647594160922761133337159069592726432957985397451392898822528847884603797128404418883023054623161450828341735651680336380195055820350569433043607196554113073370848546433771489113580567371136904045994367795509609781159568209215350019286363168051528670775958496437746760423759357911618324227415990589656448030660343271064055467567686205657336272171052387531348348314726138057508004707987885075899931352800164513663892023692636675966156273936316472349949644833348994017230953224548769964604073756481163870374739691811603008367761052985208847868279466187022597140798838700254344990931201129063578791642080434073276380725726199932024517238172292857639639274467764795213106707902021013247621837115141364098816588455616948242053112609355466895569609931798113475006219682724353130114041657559733625111030404176518049721791914062949370101686756757742445080315171679252082133497124746230596445239169946799276212452651826671662407552662636139310299685437012178233401172781097361421285728935980677852589800546916612020710898633129476106969569520550743388998154703364403531558770954803370785632537358716447524615472099991615251472325983705216444311108394425928622684052922884682356641578711116565274287813278007280811764118895519595558210630380209798617235832229426470007817968120962474761881610432962128874148015557469796125946271106310139937156251041858478410188124012684183582700009446982233821562273817912007677850575301125287021875405991391919457855493986300615964722557154183368336766669687527314294222935957566282481239489219970403702094461640146931639678062108643662042047764861965708145540797002232732265431116274423947158424235250190394774177224663477172925792609207244982839737531197010730266938021184745343647023566018522503881418054764831189922416993607806672366670344873315469047054260728906769191578717413299298777797894900062500646986941637406831956297001470737293074052895536607741591642655715426580849420247574202829395336363903296223031824543312833177155894269729883633803126126045064407348619193161671572570525024501796348594929273305147851846301860891595554229094440419156047247789140826140335499020946715697193912665116049450168186272822668926575094492482494849063107816209841810818555746972899256844056996761066297432986607850570500914624457901618165502924581299643323199380839320603810415316825049844675644175985433194511398027038973932339752399053374797437533877504762791376292923201422929484289785953570752590565470124600219275443497255889240768594136477957792078378075690668228954556014616317605082566306788129055038624962435724938469497304713041948341585029295901208399976903190814170493670886315842406590733419516972575659201036957842157765301632641576706985362239417635807462797348117790222545708473303698633912631026501261882456535033070314446872448599781710390898216923483443385383188294969214835375693535071246163955427364152037905272064197456093144117040429515568801172269286568375387742912668773028157734031255033030182480926293805585944194343364725136524775477681055837833505305293690884632481599700147162251430946649715437613350019432905804452282739506269111767719850473722246067218016512543587710283258505654683050483625668061223390843834591359361828129615613963990176933836757823096213522195990297115062986787322202088812301377125500205344887450017151932196328195938820786975802107373140529330770205477403096447037595515805022109592223830816140159536424398415425109175565594134855648149774789677938290066357765718916525040939136314325857194410910662340138748134563765818447795024857292074398877432561720264132490850553648782808233356585753648645978504735935299564376041904453370595216332784345112927799189856909655932118833587028172252288766301277977725443156735551313971386081839649145203826268833168193083060068295076448556231187954914439198228404631028719930555599985121298341001800078404875588106999455288780673919375632400020316170072273637785759690758535685208995791915003594851587462659567677942227708337222964902828033379989622885185865689967997775170971588373476738995912653795655798646582187162065392170046567435818391426440488041993886454477791118013791630093909982492768396104144781690785041045047987056622068848161420317339190194839387469543938963450513583543405836830455554085219157206016327688291487911411867190472618297386246782554199574814692367135788522486892725442665251862607580368669845353870313497555742120936771671621191659452915607067432281727764778172407710335286929032750451959986667791471964568605715205831489437061228878436681561226960031110328157838988797634907354947495343106294842367626329203124525842381783446188998146364322591824863891441473861269724325994848145756020111672646090832647333903521189184221383959740582043694189212735854615406231501964581301050818681675971357913661159142345643528553995268883861966078332585539328624881601030333974488424315171078722396995203877390458436404511527010324657229474718144152214333866050217966484840967000512755478561670393750549361780504001015571597143866148545649703317673277512099509723666094869917216202966091409689851360335616431524014610190903923896931337036589455037146462348279071998786467617013984204665692753022130812226042400389158457236198510919762656152615289025017281156877697083713505933987816309892576345444155323424698107953436024908121839048783518946889345345481637157395713853356022497976300154785420913145239359359029807578359697193767472151667685563420823067921244548967081687589764216712141689554459450464462933248085714100060902640929132770982565500653382997251369661844166735130312611852201307869534058733756280259037470997896370351223866519565020224725885497082556211419597667307242675352775210050102029823091755112738766639906608126843127726974731986818475505413648091249310816970433154921268818612918074650365752755883875636618573378273012241881542893110222202589985483208190473683122268822495399450281163414105649609822477772981585697992707359074071865294992667967825427620838736717377252136392853534807075923445097234445435798083314235357256043841569084022635418611112863259902874517558278121719647719636765571346766825346789882854590756470588568169915401544245335878086290666053916763747049282930902185503072716235292486039215331182352035735930560548497092546225502643115427955282148271217075379133515056549096018934142030047488255225730451550722561088960577873538342158314280869251547216302419756734016031372288101089198162912243576803194967052767244333110766994224476078966715579914208309647876539623573813671225710235349760247427174165134071205368756542735941768724471433317431180570588903780083067963883390240136284639709241455449468938918106116540875348450022980295853810958224814058778895400984340808398302348638918596996027521839519970819884838997794098037565987373209971059090008141950925411414420115930915797929809450837009521478943084786263067891618016005474318312940647860891826127982064939888330111239119788697981639558997764004755324461516265231138107153145629159010501377278112947430962997913261302833271402268402237628437967932073571130528297872694579109754145435433015048918892712990391802809763225057445609040593980744727367726954058593530031276756414138081078152180608032882033621462152724019994426065822869494268085941917598470553489722471517141292597883361112377514768194310269596796666371029360098145021578372781159644022277644356214258037537099320804704842829601967202105398771816239774059272553326373752252460006271503990784357351971995783544712523714697748962737840754356378103750319523205872138706765645815674030035835060942306235919792065042471306776916846516624614455196740396976506449857137844909536978517414519968898869166154521838485640164180684506292829038313378746561778650553458379988314481186555672386612422156897882181655967238364806938259785458924140959578432320065113285424927421512545511587124388756671465298933246201412508424308243181843072263590781584391350605200876123699826335156896932128287523287927601551288149006786588162174299667264764107224427208817377317957191306520455838064384357834246989125542936187233766136106966557556468367588744442722847036964571224826979711405532780461980047985331521022961027175236205217736723104269800518081302422066956039013376266530542739581402607211351307237840510589760758540148634864759227326852118527555997811895368482996909736907259810922193521505769196200568371438096614397267755099178689031173134215962637468103862559100763051817600071387870093828867973123207837987061091384684507207332587473621351537095992657017674447570706665584496370235653807762713283735851887206661853268977351457834602473557180819907935044824791333447411444111831978636438898556660645569903783397853576649454602821118153888476917114838202097246966892304759035682536498271357446957057674071143422201368478610865940305716558115417470286540619314501333044106340749765856354968904165520070196691076960248454591293834725621725985361636338543835902017488578117269966168099546030871607202817370854665363328548507179636731154725761385763156958386840015647995601523565368996004064097417360201936350274787349766863686334198289831345053014127380119143001683997896561088925976307201495201829849270889973456414262085772147862295761450207784496728710565539510198045884686109274089354710959670686560189682881727144523948143830081906502727629430968947169800405838918019617213740188243574902438196094220846487521316867084240980254940545408494839968154962718276433620651159989033725380167787020329876758907020917000764852225520829203976015388147095638956149295691555677337073555927349201372278854902675433516825803521405708449370123953717685304618632626244697796563506267320066665476769615617057387103914554824316847937076127306322630863773404492207372697996578654947135474468374745806516254154271506344693518203056003661450001744807731660169669622291410939851874476131799651224985440142665988196480806708993793388586684330861403693370923225199503410408655881709939689167095845947222985943327677354756963525982269620172141641842158509218345393457571783015204267599549682745982401302678336543529271422513026236912023572243504366635924640719980373935709480890450534665065133620862120180980513538714426744418315256057908615167037912016375826423295907611281227384164146207071983591374557486369530813453960667879130629212153664885076996935097956542074074491063953961790492893089182642307000263059552143959577195317264105023494502232231547831974243408622358818484981752133372764823260514982947845080705009419771627375389215067008911175824363261603307356388913243782148055691496134714294889162281849765809553118843395371064856741312690622318961006031747082247877262674785426706645437982932406311619900509114818557359487623432966028047509964126856314010999072694708132701313602313958720428583672881714219121935062316489727243593560566641091093993304963361552270110055285204438630797043918545103530370508535102193633331253048994860344904333190359234962917148751119425043738426278095756432946233327834861389051389524178779285491091513951457295950515266534401911645766810863908386646416969077777331403400482360519909426306492272957626481024162438715138443130499471483407029094600993807519394082007893499082365795280652519268967037887502441930324419783717312459492786784925802609971485864410765928636844745845565948538743291449720604610845512296473422521154186543556489643558617413884629090922060447872179759222249011778072615251957199622581723909600637167532613633353243908555530385943291942123753596094725967086249969090259995418546838910768921841807732819796690922191209657785786847700009675420834191586570370720044565266384275247572181731652608103235028425834820146696192702192759852330524333855608383015558285365737218253342107127947122325005721898196046636367096127847189069189320075155608844113481019403950759040096560981310996067428930452140277867901053192835152246896201803629863106100064869474844355910847649989806999709349469992726976397138502909482314076664087677283582741126565326691848447935560384929769686897466482984153511069683772905247553231007731115302280626199808788329481217894467149401349236852732281597576346500299451402891603729845838814525164754008174609909999126763370100714044420974670617335870746826815743981164080503341443838554982304869938105487473484429304884230067476352363272066036356215127072731469251990557165557704181530391796103611684064337886484200055901667488450155804232535846108081706900158814647045778594799589997449402117701612833399687440120718871167203618436812035764447316745143112704399157774477971401333769851334766424807716039382909920455318107268579073465618722190755919303217098619795299357294737424447632280348012266874568040601562425851111671155895821658678037859935432930976045438302281463388069760004474814494920473221417403796474707305843719492550267891229511213448832839202497533558678163926751357611781413736629618809873702230953917917407893057869169658767088858426314649971170671665347370429243349281036450655489967785131940563473612717426365020023985097621835591754271567023402300120266225324096616440205940874527901557141841141547443056160915309907250428080108499879392324304393036318921075351389679138482680017027843925008893891839999057883120038678798212103740985307435192461585061522688162657800078295020148949900431348965776201318883835696809239380186770012092401141331568568629059723825082934596661983320931426309837601037942600217928581265823425661902677696737538028725824569637902242194303282723737023891112951236776422623620655819530295033554326748643251291024953763473087825067593737272270596452410070898959978148218757544494457672110465537973734520345877545686773324521755805845794727390071884890474949160806640735843307651535463510971426092488254227015140298290500601550767920851285643817495143233320115182521869892422692441391332998214057763808308654086119866536620058086419052106605248764511790312599655654055408613816038491762458406712432504722651785938526524809686378273784290025147529090151664522799616914600084230205634697542641695962492671749479319976987134293675729814077136792423821038978216484291773540753033114524474594937250873415542854503015416011725205852752461447501270869050444761329708492095885626543492439792331634583961040977305810334042120511194400795489087502684874454436760267245334160250194662985737620354867442610205505816914918986025425017355256713224612276059386646305713346449654071619525593395478727089262547788039612634098250790472401995415598072291827545182819908160036850191797396912086037600080507259441004584746525666935110039764192831791665836630355229068125167206886475833544140578557880848522293248926117022522836080496648882714950305358774415797330012092090149637701071010111836879128381264876001984222764629392363832963417729312716435937698871093356193044972198166207949099811133120515785410001963880721644510623299869888397163193150626898245481111693821489730525747581036366905086726014109347608069174670683525506731659442220843046794180061377135823619122764092038886271869259820835692882585806337190696883340499416525174805967181892294052178382934321477417958449006053914425165191502092783558517099634496179154482707761078578585862361476846505303056470916155822700934733611790744958360908959988994167000049934348664030245911990894785163419223519870311300347984694333349837985913101711278041079283991965487341905547664817782717947810554180446990722859451454104263475448979770600487056351464427284193147280941979980195270574514408537722741683121060977180880795111914901679273257064929776972255918105870035008882082268893903384824054356083323966391005587619531690526636442408439289504667608265829385840500720025640131771043763106593716159519604041707873555986912709245038157951279796129272707573044743706515989910018703111597838392626321144409087597094606165988552964010497666248694692167620083709800713407630321024790150009421649937778939198895914097647985602205740890937701250576905549633526026944965458142843089197808605208019056577167994876832571461689150798618206068003764775761906725204077424509513059329200467482999000286760770364128152713004578741701117979301645685525392213450767733963992232532732850853478072655620570567085314681425990119634460708471456848481159736359077029328709831232459515314472390152536834889550749837608778068506067908802405437002563384002384068786612136752791704152353240154130976860079996826436239012169022728690588354882855249458969737489826967722028014657322591484958007110920851055410762560192569249917427929255732167905649089362399983407641469907669639879869998883738770107706315764578515653351592819828194831571095857208582972376319466764632042744948813780820078844967437540663041307388196629459737619694761231708943406671000874835817845310927153797663261308473063662505019690240761733190300869715555362903825713992896940000482725050195007739531761846488711514596796036649397325412129525531349278961129417672860785045432647276098534589988839352252940220656459228791294816616723782861395645387897419030878929843019530410314038139692077113278240064758059446468197199083294618551932983103634503162463833252029410634716649770777942920340380573498985033668021438299344837111116081035409847317162748246212932407202427922298291596207059088300304199516085237798706274366467073672193346526048079459692898050010715968034839900346353072392874316925701379966878759163733706999882572439214599681678603739344438794243386286163402369122689193841218317793449908257406327192833658897622823017441387691209705583682900805514868040432149868403023351159190025428075937643196508546973930258403218814120679348404974489285134820753995548439993678887726322277026560783534201991047517541932485451376454177034038954477616083351379276521911809469267248173186634554622426997686321785795633840621817040691377364375147744234816925169327117811850595547600135874980371165087214450795625768727595633758364172318371859228441676186034774203323618243037348448669737105556612010888147882960258987587619820064942365432980192295886527574145085947006226884626098839829851538010352124322398540731664894890788650031550865545448049252327716956774189427215818311845996617012529579626309741296245233755940815107750891972335355719963617518040869860423028493897221934591472125727772326590416275799547727450870880192582163828533711814028707419755076114114068165589050475880504162709842843985520039280273130285662064216866374353460930311642916443436572160799440748286378922229463183975879177365492790724416589914822712935667512670908495499713288219467605503620266480628582227299529118259232844077104889866425053469014657559016886387703483547380888940334889193214334531874165780643107533780845182558382451153850244279882984103576843909400553633432609624388330974604597382592343767464293543379958934835847692489182794172274897425722941211120214702103444449273488791478500277346050036693813519005117991303632657735006448683990922779450557502676981951011580521176821907719013622110426007461411310926099845700423105233116490809248787612864521398002272151517638756053301635949470970545575901916626720393460140924518892053495536250747396156614716514688304154370510630204989221224537373878595355999514918224248670489054109324145398662199964403125950899908262855712438001091272725734810235121132229429102268024210928627606723758455892188656737758813954891685892293768848663055376839231464983251177348393830394159539406803174015223844832617560154372798149761064436288615619828859116007140979617988009592467665021767580858134052288424322602469443288321388992711073285975760419998352179363344001582974960761797245618417875678552257769618272327698533720275851820261415345892445804555106440634569406346401868209574632672990977803744246634573680045738651141972107210447441524355665580418534641628184507915239256807817441222106294982866118678964308571814115025354502288156604656100420296348549595390118174062005861931221853336859809950705272739814901189800617690343504752945256881320928459212412134111151300992002076455010937580969062876844754440734843871733428065264566605163067507186495488130122967714331851086491481402334448849460505169408819387631551959062316549117110232405999387093200967249500714446970625877543976727585060688781729633457646307219189678032044603327347170068456538337543992060553741610330947723899664411541938651929868982779607027533025044428865209111786344139442910768541708242852578504811068450108216600338226265211572949034650293879261001167769180815846713249424954917068704532768339079009038396921849502892775854792495112583762939471614242345380042329212433168255854605148928898891150555899184003433943197363623490767306199679067624205680411809905107557381746280060650866956991209272360218950348577852528060464612278458123413388128485033186133122795192434025282334552133988371481920158554364138665179271823159655922303877735800980464486438024838142190271356931716049856416759590158294587432476520617827922449680403493599688994782048982355676612256724250149119295052287270543792749913498266552045689648668110115074913498094140292021625599617367936732830610205020950581999470852360163119113522543186627258272913178310228942936183816885989138091500638940918790260066518224660746132906337214334889913577901356268992899554745242529491049444113814098192194850806723112083182388528967568214028862794692631709568624511522698358543923126860287273557173698845273745943633098612617837284404402670884324577187828243720001397684577868899813633259933144148989095038339422077261502223364674435176588609551785273179567631332257257452499533339881095166840681122361104442396709395186721407154142109769220764979031674501315066910159434672590949071110918803668717966382940648479663436451198413328080857183923588410135251076748130353953614387667275949843520765256035178819841213808820364145761494062303188783149869092902866015334218304132452598400418872827902372954826547812116677971055348081406071794148938954953388137910107864774403706376164800251556600901987511370454729443524016940377736834945647650462246262457184838951142898880890425292232066179603609216469162601032053055965009038229614075465285050461724835991616203766346517011463556026647563357454872957134694803327510454954394439303698286735898719395810335131519081640947830655235598905865820051351697007556385994105934915518432813977961793126073101779727392123006207628048939310793992721041558988163632987770375299693240770250031419457841513043765800286541091413524864213459873269643721234605361018756010290751905070581724369880437833035236208357213653489016207914886807119745900950314332694919002459544171290786052035163706466477352532600549387891008719927619736759475212489191524731753584176621054353661162465129202994683671662791830633548592846739622054833272054740851345505016935844414692144407608267538869688037826758294956375006610860505273495907581860087957645659732108532127104678572686163979039269124002161040104750245881323264725738203288669990957728218167498940227496151275172141433261556998519170707029235133670050334455167613407137277130520909782516463743845879865039860302086945254919962004084008905104291863316058154679468430936437823770721322084094537355754961673381592957814650939449299346716262479778511252809847985956699185746390255524284822323588583821197574441348917127254139838178222659328931258788640395499262948407826793631879807915148844544643377131467218286818427241061947302639986276865111453085901940804746484203373795041621713503054177315493427478920305927709465807718703710085737161693586951115245118851188218095571246675556014054765655712256414190072008395153128957743895703900515012087359318814004250622064691830049043087255052935494896224050321359047701248843529522095820564797808216834522951877249697677803724259930143408530333728025779433026769925623039584288226259564882947729095120706275721213299931957497529270205222756520926463676468555042914294766235190449307326121767651038301068844519156527115008556121298698273686134471550764323205738645855494455351483568616530854165393651553100706712051556417610467643926462399504454596174410247867189793492239702386713307754051321363816095361965147530058940661511670388887908466592032291223912669735727000893894438556854052966321260420874869278467601481442103861781639712401598159630798962818171617469550813334321527983781433096536467105139269463597649238275084962225013468858180976044237871188642506863441035025780380599861843948178384491468349827619769710456311504616581618179347975791208184314687584267177452952698678763238865247514798004972927143589918031200642511890044271020902699706771654458472325197907875261592290528875454972218864047650397368497409422214290002004887921317639107156528605470781755884877569678600494659491912047864406288293611960523627444073377561282213266428073851326710985496779065424851509576260629258391148489685758565002501205024369158941630785298192675254982830036118671638492870988564889748317858092445779018655389689928000018875472688696087444839613986628542996055073250631014607710622595987266494817963484817149101792523306027982050008180652548414793729282113460658758120927581448178906872266565959228841268722979921810226647785907778844455062044689693047902603350146299359867777163247013412920289909172288199455177524756448613754650193333431271255832558970687649596895197738324073753267837739455067818096077689440835339807129447591978808398167870284648558276696516937946531003891743814620228795100931616082924568824224713809849467831214109566528193142727645504485142899056906521337758150421998765756703151408529877880738530792154325336271828657936150135940866003487976809675616521973952283920647632989551256656683947101638437895629401353006142385308627852411536686293996636521949637944180132893363953995722126289994825695279838348135893623208281555811536806182442490660857506980311635531085657575219078670872536122483008025557033060424414832865618745763826134428031145335319339868799719714476190317317041317918060995983573066386533875805816125174939281183512288766292615672061641806392629851054119530180406128563283967448633907263410556662945057106728456073467777981575164204486674052298072275647714298133203832411722123844510648427987161531670363284053545288290066658316011441500581484586138858040583047085882983526716183527387566088132760111966052343237431664184512605535896743600591696418406301773666272093102705272484245516063579183499091517407459984164188533575914979882894153073571693291971057256342269854348335410212420207459380590944584293596846493623110429467375567078022729421102145314237457349407941223923482778645663646979863096036204402420231869260319258197138903071415143658942450091997009744136469949657475492092238826202131399614695871801689855720479810603979223827642909005541560449663984474454105386187433920591793059972784217697653641764540890766914551614415178588496197495213295932637641417194470712113362440282781242427887269798697361704716597422363301666020918868832189016476790114624435100273587842594691749396276074616477389102925453748390276619558820962826208830307040736023998133687697732988511580567500090541099786991820534688379334389908358399141728971232941812197986072104915373160313477720245570990672855781581590481162112523788637881570477819779904989817281726775455380499509292025620287316066398762322381035662408504351734829334373442749114457441812117293736198684872473957300654150544224213618707008849195977016521214721570730483164185827462052805180158190294339187144770841757271573295182479805850008264378371047817024529340838323313768175861847887818433835371854069506604988921103747264817310070100517463663193885688363759530922703263589100037206099356884408495953207451078054676684636157218270435962485949731591001248322873388443480157232678943305856642365533879913469838220571780410744443141138411574503577431173185351524428758153198848149619253679790809756365720184663685667825513677410453933194968785891324882458079282041194335493051591333103720721590880923695080937365982648783331077594780180456310885392133863554307159965390078118314886686995954894907792438281067930602521632277103402709480504818809305490378608030896147578820796706508963991659489766565608957359483834391417198151234422371557434553469077445902217759992425485043401757990168209187140884978904026490885095691281120876582844176586156546190006390101931659197918371253331347448290405151810341404449335605109652246021315912703199511963733656146950196001746251646717197586861900989648766436735476411641676537904556308508726722416775376539493135244253375618320757654027463147000852066551474839832277900366390632058647914705264412275404201150178950286378873651749000394655529597234222241733898173162421349223076966398552373737274925363592231481948793826760913438002708982375084958494579695569166218020163460732627361773772837018504363228255584863207880680527770848444939230993599879105695855170028412660938053600013334782305516401596701165954581264602129974214545250006029336652815451669170282763963379873489899277882820602138587632290601301589581866293453316167513829262250819204678699321728895374204962680511691769318326901651221199609218293047601157142619928293960105385882291758584545878921365836165316020998394082172348484889946160188505408383964141641749778220069165013579495419366017603334089855000129151629288660485316747722613304605835602732204205969355015243606023883672771277158407014519617741126045083524504812343040697523122444390021414346892719539542097875687800842355629649462069587207775497678830130135574328751474627782912790469384677900524499180888361177385543900827171461881074846727802395957728825025269163143684350026092186578893908848986938363392399961856363565388842829148359116882907870527845536866953908243619063247285374886778642884557427351970623940995492586360721798593910156607916083155705235043051671636587594808270513882771490164882878110116985037409011343128898668179865484975017770813619492229773180833731115264291031619425586563445288574938558844509859643188726241711614164175486078318446671842225742747825731423709094823079589005403643897126993558796622815293958855012859921315433408558658798489077802834127841022216315264575938615190423232887573147741312986666157070156752236243787061325190636979598685296805507263709781210423235002249201932878375658230120568026034751866612565156291717169181383185839361506609302709846776779057674885363355452281847660597347312934578558886071999868154168464357152844655259912167791729092368364073565961637782099381986824460368962083619028616710392116768443595891942733626447190600981933118162548788036856267374178940327432604767491121725940658976872254354557935448845267512146007365517082593964009366799129631288919971551794526169955094784734873059991868079286441992501831044042949610828112488649785328828970892043201776765795913850631734922204845577590592263355601920187190478128819956374160005891932443100225286053974985482190585054955592562047437308367023967609114959854975325581098460247634763764383243384847237125583299211141640268280751298615223458350855635715286361413148918865934082340198060182145450724696474377878231199414881918159910773234669610017430710358765628832512577766256169805132276572615965926386823148605690208977968846993087444890805087522692667766739370063067782717174347050021538290958671349311117802638846400420030119738582815446146505402474742424136910698653529566095509023289335489671065321807568268363712856705469205675373005681815756614692516255339468421918386817306570709386338335343892438784141482988808444652474582201653247828389092106606833167233932542880402821811291719395005698272047816247249729669453202121547927417416093274143853014434286796554909219545911086557708589376925433181659787728197605995334244419748699099923771313760375574194873367964754387862163492805448465302387130691446705887755843736435250184428218961667062905654363812899561390434721482936642114102496515627225271342939134685069137125725926782975414272222589412736851079597809586744757417978720201286804212794198260199877400843530651821139586542358690379798522935376044313540255184639497423758713222739527005411529502963127136174024487178070097428991797994863416351189785563925147629169603902620771553571089473143037895114303247839177763040645321774919136048741284617366484299240163039983667134629759546444763646141047448940003448882767960920347023054799182590169789355194240724166869743755258944719545470432128363543882927327855835222209623048155740733881960957696197525840566093979286743565380916213397540942192014901157835043346376767887364540777976231008999781720316509728057037366187999193953600271823724145868437872108791224065754796448376999324650759299455041670085133366527743349756457545853389081132110236297863159108461710997871604679596096540405003072397853832947223131843172235716748125404101154411345982431983577954357823622932562447108737752324655848346445233714331098051579504242513523920954055087485397501454443808186201101066447237313825397920774451051696725416899211018197986527750578184722689919377428412264931540736351325264354021586608079867003241976791222751881366046099701584944746401428749053067173612576147718453668254746202219080422262292412232770785702978850810927445692558483882007038531785647611116877397711606756608678624713532057399909556687881216079389125173276055635705540259903571303258940546920958177676316369135689609462533012717794063328238838407294984319861694802087750896013865208847714283684389499525238507135213068916655379617808844840729292308829332872565905176832524998575246655896381419546447061698623990661414927688020657381410312678931441659852122101382587176421111609466645326571853942306213097142831060040711287035826724361739043463196652105062871780639771452671493442019061954948382004378401628936096070973829567597964137732751864843725838529912196293273637228925392819833911459421982747257396667829094102837130865162638104977976533504358844194807602190703709405821101192369518547542630214553203160237192857767214322634543959849146522114457499526971934594666131573192331505480600038648469530047893676816236213904457084920095822520856984128999161999914122439307802748651175146416458792375908629981011164501670933824343320080674654230246395925001446394572694182883302250350065218617148233437414147231332185251298248694340824956280481069463229381708073160410819001797212194467359441898024080952667768688439311604932638029569957094450878122373548540547636497066388488248474556072457168332172753712607761327600482635847436179112102934313610650481040493251789625482796005774228569111338315584935154809563406739436594327531960541621713018677732490727240954340757734374404251906465560722311017544852628128738904304730884351815634031613736833711128857522108852577366635112788819924210491619323280468241949924914144828717681244395715618015175888145306425690964305382478817581826995638024062876540535268580134069227898703375942626402698832140525115462930423009653175494773354333353519897123019717403340315647995695517084580866259139565386411201292709603918104295704023017024396050660509412773056831511710127786245035217298200903333301728086078328194237074623828467039934139020588485644833194385448319146887909899978673381218853010531458709247315771981189311451727974795475063366602959931497011088040374720181800095553778748568195875988337617912147547484180669769406753772788051741450816146829990476010815555745424073518855148078615870339488491495975293031692129363681929181006292774057711084843512573124264658217601893234164755380000551996793562091040652895770148901190550751683079625061874277461094861921584886115829988168243501787624468721254338194178432564494052833868390718175626151090495582295161663566244598644772038225033352102353516888697536914593698901697971375807261351308315357700550402800983439214013790719026212692046465763816707304343616663582847724712474308207737522000401096539498241992387348110578239221531487494165370610140483540978446558802488798858255057893487217320432626268697212515833162848678354941342178139320505739444415951041299128656183214600342461847342498106972074258437640268524202189972422973869195105663419139915520026311113721127456679219769839197777521929017825817057816680275037397216361491348906471348780293898706289989144868409412952662314369884825717746389068102466065609014598086239666655813656064027096993414803791890223916525210067144167474355934559887794241379435574990487323817585896132652259552000383110489231197124203281150919447381865823822015265343878109336692782212275881164290646666452603953188903168485088908662085296971077002499925517233413477456350983628347595373397425643078047372333319147140956755589957773376911343950892853151481381018501855061656396166433614802859997498449346797785731336594467322290805381943039047135043946912039314642932139329624708773773609205529275108107987582895025389468161838928872972732873607182734722136506770148034905728231422742258993911049658796539466838075980880521289148395025008248368965654410134606249853870731276934215732541754557412298467073217270672695803051886873020988602424006046493327820087089054815734138622377398083014597799216076609384140637219506160557793956443124702336525517855230812166101796855136140441377558738635793569230495248046090237837114450507642766854937594305469705904228295837970576878709286170931185339273669766490015641127721123626366599041953265446542884550931643955761512960294612223481932679303273736040804832716036384221399980580236261695488699543407359939936154151101687916117620653784725365593637789387270177835024167246527978935122992028999404043727821257416313640828176265950382729434687933643656751561970630691345808268249247397582537373021189344255978633081417319369552013132476728477676992322226360603767371228116045862248091639062112986909716089245669359763535403035413222456260377569810803063423699956591534851495914808307647417676340435411025828388993143076067701313306905547838770990187556546149259772407234508464387487432192763961194752223133848756282806330969362425545288383634987322827180920863542211064047736370879363865540386248411968115616758087084098542162851684977169796340286272250653626524264462829495725260651926019929692227523024024526532873008449768662243918901115348294274975875116499101242668758494137949261647964362300249085266782521836036888393314972742730262300059256085928903285035500445095607472403398474671071436563423150488105824383720344651187967429495005229806420823986317352813967475818664584304517751826593945362561817185833985751985463117029251244826885797820637380312330037024348097843221876643310474254479736157398303035218095186048158749663401151998771687175158776016274642435149288939611363211498341564724101914992463245356677811285801757259817175974961304928684215271739065885569893009170574685701969674674384998788961980835015258707901758818039069040088096406855130253154456738127258745610169284764100443231949995477925315192209012684207178931032041940815195183309813928624345396550823481649684203632101397948549539457812941591553507949167519113699299040245654873020825050334151097856894002846144612943266815846013921512180372865205620222234373697308554606888162300781089778632706184001186010222544930217810180411547984436052555236860835819966420366334111640103250337817788171957794790429374841572610592974133014334011983972302159433290236589943144153353911729717034099819003602333202021654793429331101857474944599145695259613805032892055800445298972805355727331628361037510836807771175127530747334755123587559010721183076336599581769331626730796164333797853054034222183031800379051711184646897414865850020797712031070522926255491976110702869234582192896081862549666018231265525238270182248129235813269526907027528357292262138990241955544979012323604609834061792311349366589917621562243086009355464053315068099913508453357628226750428174574304695389880455600969600219928824057384407121198509188739971479396307674503935306215675540008474352572899080284936675957308450970416836875746212849421717767823772216014193493244339824009590033114726283602006982671370967278668783806075818268220652504504539721496602834065337305152458712123289935559983715345350952004055120641780301874952361728235302360052981383878343251646995356005963171044338901260884988814268347205458782772485726525652303567868563378992411008364086672359363527570281120168923238221988523192306888605964693116427092346997836307273544859594122862665583331913273639451993630401851270411750056318203748611638726983448777148873196433696109625784043656888789762172862075764100035457153237438065481373011545762471340167268581874869153031216187314708946558829716252188839622297571366371939859206120108032276501357767013367132347934659209671601844864592030496197483834452703146824999718902167851350845214156522665684339483023410394214023231198091916300692780985736086615380798341445129096584797664782938414320105618899578003885258680672798836854603865664628207141049752389989553532847449266050233421897733867771617333537494673214263929926266027060652630068653450880829105611828838340640437657920849630282553588785361252476096404822015800831705933603271751632607582792495162933722861813135704878973088032907115302903481352360899455310793910315193161903467098665140939475872487492688399283765813852221688058296131380701364489715168996504799377517072951855064112327593680223135389641646479435742410194348619407951136173835323867561710630079455210106362032087741173418653851812860744503380569305830924651793173387378179786401283054346605134003342556379585650329674474015125215270531095936009559349567293405428836642167449367670961574281929232197542948252107544708505742318387973427957883587739076771308090195650165899685871761855159579453669949180672321382827658295666598631884203438619784167426231739689077692860242621949144922504358918517367246816323249037831341629504006851289798666028524940480616883288579818074867577768121644264797131842240270248421007735041297649089984222469174135261718318521173982484158453231403686676648341420433208379476734507225344613980463299019527178543100178046707482707657815347789234551266385733015735293695422887091001413559552781188072571058391355297196328023412499079204773330495088885730256994320877828309966123206960008814229183206900293242215059286742300597924878706557199923789760234777219498448394383890437927449577037741692883653283275837060814004318872799989851995982217691565040880691462795794782085474162565409475784569107566817040555036150899037695573283898053081221120040791862281280818761123201833723148145327575153697248690932894637396076787223866131543526081634799611198493800625013522066571280770567013532960879904784050571200731342099993958028188357272692401532358290586356540465807895752675649927567768087930264211614656357053142072052721297199810237694234539697646986244413250944497297240276146039558001177602834891770577201119108851205111352016215414502485638253493469034510782430281435748140731194984818662303242899171970632141852669234466990863990571885802875561546242970422143927262765926480090387997830423353463825262573892484620003765369130208899153086761693672565127933644176612419411996618873803267666420121842226951450698079780318590895537881115218295506492712317375423438179059401369903246691604204670528833379873251913478112501731284424507445660611659943798284999262397077319457437152587145921844093342337022361806337642885866992233167571985302759609635048682631836274112274554737702609392630858031291795002840800977976840904459282754083992511505633738168279443793978360982584223379947097239114060810034327722023754483751070873266132914311336819345916276096574016805000176768617158888220265634811902248620013029522029754577068063517356126373365988958434201336038227456424824100539150113384665997910999051065566040724846127166795355645526373946455447088098860039852188067740037996543369504750268574365726030485938009285396472220583738606072607234610580854590461992985394833665028142787596935962042897569246099266843549005978703114390965331782135121386966493855916465691484150252699652977595961135744410424873928483003776778066819760572181997571697781527805939006013977043893711058912355080896630917809216872441134180830699125065480677248660845993634637227420825555229383312828458438575979898141382590995625805986575096958907882627112211582610609247586681717756784886351169730422116321667039325078018666824984870717341084945667201516177267311962825432789359939316707777377943445874970790415629137284970898148652823862667838668445125135815066213131921376196899960056149838529926441501090534365351649017560462150490479725293360738281472963497791060588795276416522899528924649525812409256119192605106601249982597617112228812939376866863096782393024000187035593381212386314907330512890484140145711463409252640857507226585480774141745657945908755197982086741633066125303114765514580551000046351612572002281342653637838111083196958828283033763595492095974880195342103535681015516909034534526434864574210149782567739334575790039409873131097330665202195440435050819793029358370132220568338359627389743455912538799786561386807260709826855255819279344865881686517704553457057622452011825967489613689033127770038326968545299875892605029321621579901262202711827810258827333498328784534589990917831158300809255143916293900823923426748691074610925913595438549891970937963507881432347284436746696908403807379528034511522363237845927103471980532785405140768798423842011895697312566405152316031557105107183132968995227379496444776056234691098007012887461284076449407470648822205678107276344347563594851840572256235035031414995130990524464385019627861821410471277866329145745826435981366713379782450315853301469355053775958301405881665468317703285359606902447623938588565688107858998465555893211456837830064620611429089135908754075403146737412881876755848472744127784804173778046640336615295370490153396366508109967421751974844271383326165265686670552627544645853086221628954656099026618893178865834722167145710818705427041485456332980898856131558127769816150756596642508061636649506840792204197746039966432543900142817989679362889621450732121663192788119011347716597184213806216807925207942114519093534413817889540736637310531131606347108962362060817937993182218883577093577295979550369969328823498424806521634118787187041472725231178853886043819319465428285619241949581343262111115643968562947789265423604648958359683973160302275052396468173545004542075286132181161208397001325475116828855320751776317141614510604445304569343504728168294564448277311164037266004869100372026427808085760494105230052396088282423894009845252054103262399717904271866705045080664430715691899503488061218713762752965893134892984415681240032833590562598329588834299762735929343601855784241785203265982913657032492773342531300865141929285175174022682636443510659989814372786199666611126240286528907444140464070999263261412481746662410228903633469751473379623004394839883070932170963543524797760180949870203876369727017190825056812905503505963206833451889964808372068925466889222162532392163339075657419234545102398142417925782158022570650425192775357771515895466517174170395925155356213549383311894165067460051666714666143977770528108811082780626525616435690099410617105016351179895096765966082063163951303358844161953964102535577168200046250016519552213022503811670380226458489317374698664354042847292809890592299171754809019108159786217301730610257190636233800272161375665079041991853786944476274763036732492293812854011862043825968566651584804188204584685499448322557763989302768256629475416671101379957186056698198028315343197525171367922114631683923041636749841925669969537291655303805556810723527540229925410162910482053870616421912546420180423296227547087650471684853021524925593584776768977515386324707583037842971018853318657762777865185220560701168760960329329966674507269483454882413378606934445767274139844290591028864201488890468549901793453986875131974363697449800983745425573051592227934881829899488369971313371773133793836037352048218106269044232186728417404265842933941213430215966509715605629752094747116236264420095445346554451254505555856952874592157227033161469655823883330451067862556627506826603638310830593356359469715003083187350365021926132306729411708716629808212850000583573995507056939937400594877150143594182630093494602432868648307104826603861320214450350699354319280258255798935990651668048978936202028089323373672751872709769350556707289612924969152050263822034543965397982757816715778137984311991166010852276675655729859226424080269907396395059226647150032160915664160162702827217063223325929178246954022484379388989747743516170934701307293238123963476486540595344244929558763677083557422741096613920197975606675895328021592642485503596143114314456657027572540934100383059416551937831376217029151540299696664264869669801976393643254790231253647449120204066803878990990584233953653862543150308305207211985901282464472972044140906297428196067607304424761331818765462952050897488303636794836560925225889333532312388918682364907398482095085969823988914720551154121112668331786368593773195295892378683566686965380797574078564205839932311679143158394773236322675694920561840835593753546587650138149781555029575885011692022487139535842021183062347520956459952984219433037730072846174064626095514799011144300567341323459905227856185993784587280463464333881042390201364473192870911877416245061705905014986591244076254183820334234713262963342248158965503864229388230703551100671068361854048825405212453003526429413642065090179065156332334989073068817462387953969270592271911457450176178169787750007361185151559919007785893343748545593556530165239376085303880481952327084145382477811634202684278073806954692173712547218886721408994797479092357776929249415322556268400012761092918659834588129716112119639919363307732847976802774182537022227783348896484753803983610687848847827587425409340223683376652603803779251578911824714399622258440414678995831125486317858352313409926890194628860629249190879989377992986107744445052830849049862440119505092154370986471341221319367775353976646615371630105258861038788416691113091248549672167502240249500189069805649426108549079598271854257422749334889847064953720068340159482390738739718556221102355272964674275172634139257696310481201377781024685527968650580112738185088247508306700688712804576469728936500422729460412252136701398619511742180644403951056293439506845805183545226175053218093247314623955563353379809862753506527740468527276692586091100347551831109294677082685602908068987339772640075497298650403829186955474335691970963472572626576987413399878664199535067023714793871358362916075512368590022002644064280620357001908089116338055440970819995758474006483065747581840359073346090231513676870632995512701686529756568316194558931773753960988966316932016881541570425900209460455403765450648565146544493745442246079822834611604305080533305891840291060033645373415973745436464160542643957869923105899735992826519170989248683803609630630023728389941595006788672583341340087307695379829125484468177819330974002340855487864749512431380487300469519962074416874452453477907959636837435188616512744970119494645335896055001227170953180218568842238495738834324103730468751376967382872117347835641406465416675811749638863011450124858176818172305577482781809791391785442180816808067773506937061354539192779259760047962100489385369853849469210364175323620565399347482960472059716802848453273627223068361823608445998184179385413126994963428627772854512006609130856324217925617821294368308305975048326109160275264100304969607643555513056213339066992540177749620227095117962489472502187926572817333952199559295311673818999301264196424845244187402652715718382530527357400253475246600620103270329584938082798912093292902313807817759601502228253487262976611038426932059789808932881741602729500609192682465486914792872469664421325317886674611131072162989897334908722365578972830418517534782180508542739668640187195284484153464387688636414184975157755226358324489315208428044164107059994716652637142067427953724263908870881834097466703752650794242031149806550598332884117717696404952040003983744963767799791826874506314320101930886876120968595424827535030490965539988592431705657163281027997929663738911682782121508999705858259969000030187945916787193857187486220231255591244400512964472863384899805556737396658524265679587025329179218117128459341013642338937202391727444821120737877856537490997077121294291286804583197571482427997345878643794937282474451022666958824472124993437320441085424781985624330769903248202086897081931201328120195725371202398879878233397915318006256123862575084939532571833962362672520597357953638513197831247781108105064474035794719562056881216138643778337680888360815224872847467919780464753676322298275781806191327280316002185687880678706243763476140256697632171619730139623730290190900380468610149873751769823669056671669070512960165973874722213479921498292033354688158363410445257031678129806211790460412918140370214402792903199015688809654568024476591289018742093710591198603725170907685175759989222028584946263436237733149605659945163663732912282398751680816640374910841135945484719470943663449902701477915110316088208787135826678856633690269903120274668158203882347458477076663658820787729049768153125955059270711444121996675273020269701952413747175993995478676655845049672208135796445067139897722846030106810741911001017203900500877561659769630329925730437367561462651118126679526423612425432219421030829171964657604610197466243872674469757853180657526317598303432988710434579426468789384060606607171890667583756154496576460406789228279290815127832446193658811447510371464405396555508311373172760054691488810229728732677455153892561052833173639007052539765418472897054978880396065679123279695927991294943267600114642655184390679697864573955641110446666251381213455481201921351070451431440831403647754646960750519646026638550752711771581306854228536920483425138379547749867025953087774308321809245562011434896124880320377552535257978397118807236971642008542599145431932654370179730855404496202380772713408963825266726934881910800482413245601617378046870189419797200779660411319747130504545171142007571779411111675599657217986914562320182247358719009190928641421642581468759556279715013202721101526761942371205420306799533012821926578365147140583183249112189922485015457855359674249182014987978640385330242081872389799800527791182886083036881573006895396377941387626092860261757414291579627794225837217654310845162604960746041905105445863732823053962043243512585014456208899713439053432246485029713795821389406337354665428165856965801496228598567625016476334154424358762322555266111144363549016827834071952614874915418642482106363516048150871817936847114654967170833197467353426542983703594511560607746003276540979760607459440015955201353208200938789547615703985193766434258439149182074456328075774921587309544345233425952029915545280852370855047145010963876661523264729421322803689472423073253458657434948072412423583359676943652645631426443932240413240001193319156577667252074791829091400376325277276020790241639419757386449917967254448671128442528399308801490466321374252992776233826793079742060569005496762400686331729054509192037422781267318108181639579816067224236238686343104478428872609707840029359383801670076978571888220680210027240095925662696455910144257496994002724631009076213200724033273626418507673418699371334359046703919551125232202473337369533129601583768399782517454873004587256039592027065324333735021149809876581697099752817018703180372045914049081812098724292219840260954420812409381315166302092079929927287910078704503325929092273764580714031237626055560464950825425176577174464593833732762074770879797077329282755731500333593797945721141933647959014052973320627021023685298487460174054733471270272547952839919716546050867909176400854048235408605638568505866150967192506015023952649182767198693638459281861024777407158549377035004543618985070104659115507998629438668190303889783585621493613475751736782161512675091213034272715009393046037178181576206748795426011904511119342542339011313811530887682906177144715692290097990996834440874940878428358474270945256548755682924569369783699773674516775363527406889028021291647452651484324171837971678764678776222232224621420070437350742856832295960353524973022247892320682363875342293520314460395198576205486101317958224261769600193231830520742332794705297700966013191214800498505686071107567183047408631533244652220729868222012908579520310959559561697394232518572929795400358558986801574962899149148413813937939696999556091873608266482590908737723056251582860637245600712118676476636250179469435789615611824309102310439410013945343098384974753050645162939871294795432489490374256633824741003532441999202710883958079547786138944098856686881300645185609660487591569275565006360764311721397454711983827827781931403311346526382328020489133562843048260511137637733249764431459831311232915312055321478066579298315530471170692643512083909522509418307528468224040897035835769068730651949685783239712866332746009631654839023994934430815941081440364692685069273500971869440160842962684754144294818738923120479899802926001299653143415063243789504600131972222309302106023011039903540233765371831588711245783845343877087146930254650226188466152832268654077541511230146694164063569659168738633281319573686491518547534882216606458894694328151914878534746705497804314216792234632951621741836279173768694285531538959596309553767378692752376017387247583595573845838377272266220136095543287623548967109494794937558910093792772578157468379385672616072357112508970176173937881317883736685138081806025703276681551117478589498805212614999421666032035859473220523752037378715385464227163431225083372379067888965524139782916932263559411100125847343480275154730689149569771930551046372871165588716557649147736559504367888755669491442705307287153703855716800513326990483733034591977039296921761366140502640333884200727764373449946831000939483414533989605491977843666576209418392277091009095202644100819258580169826532871175220636343975683370277963571876631074877795647030191798485958938181709036203656719190285990095550235651187905293843593651521673554410925233690786220269295399990088981956909172518158273668315273876479760631316984070373627526347598103728467257109697983122645470835942160369045481202190625050390274288275095630430759243906749800646607650897793448044222279165345555169161857558481799217489718260891903398021464440531763329280800753429736541707298801793374109155803496649271928348551787146995276802319051136910967687074498180625427959919682783068689506528250795039969952149871699010919540930515199032921531954526880963059136469930198948996120147519959568388024508746030632041379263767737637827288026305472736976258608437659812547378402830253910950386405269404604312319377897933661421656187252089706202731565465582782991427137327089039798493287663507052098981950365832062060797242649902401289820189917972014056433667990441634055971609250060634559398353150118897453363379943516095499918797128122849923216537400619040698252792532163998052189112989124043499792215313821902783899657915152225792686967793666265761982747803143914733625720409869062329056044230682093336907472355658683352464406471299936041277525745551976364990586211357360281976091437131794895936239012937356472404537439235198019429945285744209335521910511405639009531867039183865553358598817554606915775180881075386644157801866740069685699856472082879001032241928688666868645014453895134097506408691476470128117350222701102030689300808012562023423363482782274065706504588028848251545797365260549848693605791095886383620871094936175110368147794149397232239463357177312904129466476335699409766543066876571437463863465592803560853985939878253203457554675148940194314218068631861836861827611766223555572788176287400235418865427123627170284199629054355252642478674604338387033694126895549956815250410037786978066062011294056555605319306314531567295752515820125465204726503597047744225375174844940699575965996152263942480987330110771923107351460461303139590367723792475714780472100859109141157153005895861245108418125870002288817578101595914408113742650871258101716235982231710020949171548781719268534497056219702077470971319157515875689546737572661261519287707798450477874783754146334895091871644422608433033656131030940510842646821833205900243339918322778736895569865580062752078758905849787569993013518209394375542732445644789776938922712762926168627269328698946048004848244088030940601974138501997811847614129619948032345550918418732902868040251605627765402892014592186257944732132770194101145835271979275446308828502501005399278486343813309073468852900433336583952802142468070679200906607262248366018930290785584626512336436533164938558712569119350518039215675864497950958444120297170029514816786472159430795693672099168111730678539224776324708807094399338550571178872163708233999902746436482723133450918917747424502992946108000514302479182593547513016898616215809775275221973541939682428882130999957450093715603572761254173922427921001750141732234934342942208985775043146183517217001052357625837251644538265782750945372795903804951244327239532595436493304947314116121429306502475486243043731490911232213975341651187144499508757286213800264438565949288430362506099665207257877757605578790912618328681053808794878146820044033972178768108942250868268650406656548330095914670439091744518481640767213602937368347602476704570711754373399776587460574084954819780178748332626941987663873416380828965489553486020860777843808194818954897174612734579870546189200467551080649917992855289736327202249337353201450717944167334233076806799117584812405939286157054367927111375638326306845749263179919336000235159482520238565577433829713758151448086338895439542983062459784392914519491089636032738716338238404256813688815474535390089596658807262759239882412595530709948912523395524363225578853007746375583834786867105299091664741182157575051015568278084229435287375513469134910522437086339289437132661834138229550892022613388424177958279794073083792459920346781258026438867180124932127100179137412393951730661988255203106134460375313043137704134312253107261042608317768948798217406509958990634126298994476822552113933359782807829839587758299497079068549755266964535540160020586344708360526746101099552150972826051106906155968578534120666600518655311103247975037048424343994882974252176158869791540155189568360757298895079066901008399132314545834649962048885662530037704453200438435485879076471960471354516368936253522220237691811812166003029488332380900347727860058284468778040713588609880438270036581896782651287628371292580542114193979446603325479690301786212459625559479917402517154954131069069934418156367497212566127328747747109706170537104272201904898252495653904126226170358601193295411417355814862491584286521135570664142393933167902375472432653855127521029577914833846263626248188424418680969406612354939775492822015476238173523533654178037898928537942977650162287355045456811667869191976068124308323075730132150664694108669137370586967164958147761913937845014198316445122997238181933856206962211110352378350628828093597133532638147041802555220360047814460662188158618422941090033323593716181391448587926797097082422679452139277640223791925448490982917401904516559775722859279610314375519788931839468310601758815683013881233428332532322058178996038014092840435585671951509779557742401664988990727947893261081201729652405689925628938397355708704563174234948568283200899119178574045267178667099386976437083808201953358310681125605756739454970495901543834036708134647020448487345714600502367493477473402321705261954498522544974910119470696403778608430707119910831711411289721860494760348736883569212601332484703138822798705398484774315048990658970144011513984933471693190701889390347837618552616029358226153099143326028115785185465443833839856303236774186726424828154315994002425304581777609279987056038552687229607122987972203864951957120897923157035103952682062841808639993549772923975108009303463450992721796399824685213120020040130033804080318254189947208899961480528489043872816866712372577402834275988726756633781285356801469871243523047115909799195922232844456905862731131764268983304433368927472289466530839416083819135548433578139999430339393171367026591640323396622595405642002480541462135492257240466481964178975768603273039960641855154085304659167965453086098374651506622380263068084725508697463221741064081239049001874801170565785874483647443822150124719766323329612986457151244403982140263568633669769805395771381862317944067564186847471619040415277067497597213305338805577630635834095232207321542512022602381751227364252335486088379512381304997625954984667887584961185219694962762637300676611550151030240869329325611121044983435343935136564585338607883754546817891343471096866447060610253093203536657073071894823203739595840469482065199499701020263716394448053908236529579831431817766888185147440907793680278073147262248921219136738986241744833581976085092974675039592221815331074938848071059355886988559785295609305294616489711989894459210851473520010063433220233320677279756087301608551258571766135064463704050508458168193147945627022885614215673481271046444418619120229665557202421221527885291197743008185290281999350549231493009945776086048603432519782971124112112031396215028916688378041468562756483857746294675610289169271839543021978980949427075525455892816366026735113342404987970135834402014072856344928319601715092335017283295718483622162288101635506203929810268311737693641414990066548809002011602771196314299711771469614181301390891716961045973951716254339940844223753122439039781189685186584461982032628399402180973267595070018750061995104215727278921416647162187138114428119484055203368874335634108173407788752671658257197970524255915908969179477158836856457839335096327018725476247870491281301026265859683007640649829780185662855682168725198930897612199374849933160648098306869709808705376533187813913231865582283593395931409043390895512295005505356752599827279094240850433268346953539286460717463461859548763149938710421577777661446647213076566627773931533659604991320579206206758174183412240779424105521381221717332746363055160254014579908386708680829790286032907240274287249216205011572431326877592962351018596420424635854905141815902519353675234504827723990277741907883038753410702423230308385962317817872861197342050328218905818575094036974898629550628201623431518478821159729031187343090765177702579776675132072116694148087243440434264740568777664745016689030204201238856767295660626268830555241046071748888210504490700736693745855007725285450498924684671452267990555880172778727813528876211809321787154603840627990737261923015447013456529188885640398625844393823506778816849820379406031698417910285031134569758049850822482080275284064030763587535770891161403413999525657793995386554636407591269995001578431042329747415572982005124705765468930322644480640986785607287015459865560172252588297804652277558910866163975063837449626792654268878836688303981231225648340645011959000310107112011434878071969640308006122568815166271245880478077285496205661827287315039626276476022350612151164879193007249185214996230864847619695255073682349388982713280837430713808987801740831828415650833331478771659063417899459229037751855385055949893945721378062478805538138547567130155836011494942755846137908956652786517582948285138062909080248682735786447439546379032710375010532171406260367211237815961187965706431669741997767129149256778441996910376484131433404597594556406480024618089435292748547929377288992360171173520341900728357494474191611807868571906247672407714042427444738558134494338376679038518280359595977018100749143418759660142847825854911437697396032223704346104869968898300835454069540486599182325190392053186849088315833774640847181366769128463886987579656753693372379939590374591987547047340352987753660807234471141579752772206458999288258969523785912702156373442493297144360819446058426797391142372306493334011620253974020573354553512108141374097591645743159962768947874811732408890900146801769708365293287108398971630836709469459013146117024691123453722197089050923106182827744579400607213614579433232897144566051733917944476152716520016520130986788204866538651769121618078009900691804834553014891480037118997666485968679124170256741885617816531789568142494541239392716407290993524583914814295490675371457299957887302032887586765535598806493565404808352687817821625705179236209879701867291976702354567617092057451655106814859696767023095780082889398609697536974468250747047339353498107164061164570122039448807997694085829582977064105621373239302520989521368296330271986947399563777671782783009387931606711100863912032792339586022436983469395335177405469715305352979464800947255870354387820435348237241499281562144008225085262466965365256263030433991754906956051172917365174394636599596062416077545480960952049752236641863400040411254708155903114559194584169719865891675989220327140347795065227053394152176513898353242912145700736028397164113007629769631643274100464461567005438997887822588661786566304697543082434437728276054470888945570585353173149329499927805403293451203222273725455425715144950813698068173423396904583281493541638860109814397563062939064738712143025368469946554501179169881427142110043070247960141973243543763743112525133988743007262295186171205449165864716505228127442716749054153831858292897263448340369299802673944138054048830603609859325018304818002268162588809303845146458424016526137065955753686329729243059546294741049946614197262292525857115937902762733375865461631803913454196358676239588019428264675187020850244969240113730987258005508074228270241737681686091327419647606349265436810777461928139069537825112432223004370694804005040046053563522224802808567683677160718792362006652089601102535294101070628327016197735102468372245999461456840476903501298721146131772596616321217286147264768842166463912660398684822364015767820117645883595349561483971599499891156843702109258131682607329987373801694561725376682797379001833218563763027255828232147639486045852133265434276038132775391142642990075780576157377848451664262890214039489705542993186649662693996219775690286447098952758420260291616111494034532807406481647931039989000916672885575922293042564886027786862552754068546673481494393251778200725095835063959011084326464372647009104711936833760509736812791664293845733478117575138901739229421545371681319171043161772167353947481509881428593676837309556118277576062602402209829048764387116519373501212391480631141681955605528971309845623755703380210481828382642659103573656916989409013121352043948481306596309748416204854448364917059610042431679020656084179197301227524096507293743086384739052978002692052810805741049854441427387330557298629513059501890812633802580997901353853708428672507845440541255451024425618828514192559386764007164943814021387900983786385709873682977485842956694208237158701900808692841314889511991116068963789223705612920244128222085765889061062513914494659050078855990269240045852893381291064279179955038617492838869201988475156761905139766762893700748082730084123685413684431420490741611574772922806340038975876326429044956217333747132848999158144266895234186826302260381398846390567059704245301095523020989075853355582423717685847453538683355432407897825147773742956560919160112180577619332509532413881230439753001611866392419356532183911045499282406874291037487634138521977853939887444620524168436382531910754522489048259856375174468126895826584323577592298991833699508627933948792254607353391138889158687746606596861639035331755272481743586332912315975520413270740126245618898455885887814317430757042394373539092181307027171432518874605872878433643224057299877147125725449596060237641018487920964811322298547639774134367856107483315749421904266413349303220775644039685786672892190866023720473058280566240212057008776966730305026145366222902228359013017012460092915598999366989694171287550553829076201202305674333388212218774178261015399373403685290159111140038025128581033663909741286658206251416852600695411323798953720097153728337431176293954339050444853563419706261523850837875165452431583787078682906641881668712636711416326906406421350080529400774609581599395092034276809432447161493847584906770241596553119347947117727134486791494468877313559172010105920811204174976218173239197619962580618569072503547937864179881380960098415030059967361353869109447637392889851122482257530740020288320956474514792870127197052145963076087614710350548280057421507864744482822383663860627294539090641257334124068264019673564269968936127402646865941255292208431501789268750622734092949802640578883784582589651063577638175876417191676208420598665056293163359427528457860496869619242313289880907077952180349798425502595845238219177203349379489305101870351630721244443652240530384042861906552903919037176826292803243333517290947639840024749672217755613586675696803586352504643960266075777719755415987001210526617123471877520254649852600793753098667034153094976400329866773942298547420052556440839661430060711773377300446987893807958635642495513135252927316275150248570411561976119993778987234692426972741925468606013575549809217250337062727269447289330221175687815156283714477068994230510216941648932247836975719014572216829106340427166670474570476086717420076226308453886474997635031980939936603601741512371635949168097335466295940344886875889766211928951025968359151577242211334934512755553539876525936990915864347164569076620435134388800892613590650521498188216739587146142183599227748741354364195154083755299805771548397219231609021063460635972397101047139298613084119740327186270094199271827097457462266407176183875239454801467323436159841628769684184056697386416774429731436612861176470833338263209249107465498740880142199119705042795929872297299027941442035756512643305177486095847077315240607835429976009898524361233793287003259912643865331152906578141962776234104185048638534448726696917963617424679958842271323349065157062584440386617997548345512984879585906712763815848465312340107817918232160741762209571027272024667882071383447676578214348729223663929277249090829400156219373140520595128296613751995784048109541316701107562557844673928295181152449168360611047071385455200293892183530670945327986818531712491124469984172855409413554992506385366804880162969509117934921551890697777554916429619267635382212735083814430758958949130628451036518780173288891972712230069935007735388019322910818158241291594536307167319226012362219567484614613029447106480914890865244101274743057088529868777777223799330597699796478922889786495808709555815011619887129306224940580809824595230470204155400562902439784502360547852967590594268604961054276762811090795362149567193888262684375591521776325905912272133592712528117014874279393774270788968110885396417979428301009759001616204203278978671232111545514569081308852111619428811183305684089409518158599242538899846308608004505762186015706132760627160878701256473512143806828131856264518787954310108890215969284298677844041192200068816442882833200285334931269731001860002022861922777081878835611522169859464775850055504809966341120926614262002717529602257875783578721985592185959153308921285518553056663667818706033587505079586569178203829539908618628710754470426589305463726484010613375241908239211146593010669037048228459002481788787165246958754787124469821148170588269126207150782453733647400697616558031270587724484870555415128112137689445897507616510866467182484709873105678829955705845181274928666143311639339298748439524249930115395992356514283995871704124729144018288031378404109390602079050446823279833836426783094614560273050340563813031726463315566070098245937328696052415697632756276310612461102462954343111137821112200996890910463864929859706194366174960361777599064956960003232881885449894464181479438334589807459247716722109242352250566837035288285910822049020660877134845264112833118608351590174575651111420560158688876010780168715490195617137583603673961731245687772726581440252096781388297341466654232276047597338016549018695066159444670378722520972587904457820592307122310419933359036698886402684629960002923337230443047389841281492146463160931548621119515535388939001745434575247125464855744764536377525089768926608616687472665274418264986977671900153766248313998178184223599846344432601138349905292741096882894683468252225111966946307103862523393417662071728574265863881528693247489034039874746025936106176193328375406926480621731225881844710581553673542592379567750724778390134539454623461211305286341026303541455709317721152411694066094155866904577195126702544462646686287819730680697141382137114299483177205495132991320621757036550631991905649376367392292234319764860352508486949616429280544580587287385584870710660292835518365635844657498097992577426069738636387491412681964484414919635735198365777544414448978294726211219667693494546162515078563493632305785586220156132525275871477593631655549973397450284695263695389890022669448790370567153025708098912757985952302760518633408003335324834020396807356543161585062603012660146946746531633897073884813938527254109104389603278464844497848215986112219850144451143036951257461319747847411904410233311554458380305397982443930267127779004693468902153624518696973697078777695077361407963557451403071388557463722152872164099234417707378489813924778655359500348601076227684558521442119958130508004743865970829731174730186376742036463988097629413707015721080059215547390419018587534148571305811764878451706381929667337336311580917201916682197979143879963769104863655939172949872421280308170966519319363266678364388825039075445608568756018375767372078057296540311880170843622844421295836441568287889615316774156149839360145561632651466438964662927103809031392566350781438136899866028632585277363215854774503839308118424554322640411272786027462055102537578167901037688640439171432761729926016642175887728147517550098605206663413802884920059385274587358027355512668144239386745243559611440431655679166432835897867823015050990773720356342032421229824752833657301640614394547408591366368978790876387443098361122769612000703156640067381177202958868418917853529587667733064621593640235411771814821380373919392057610122033191834712300863014882345715647432348224550786690967410471374732222348889584814798760147942913332576062575601102547244071022986382379562874701518134322249604748043483944933370810483297556782642792781953041741190748030702954792236346442698814279970355173685906292666383450931936967028138903086312131223798373239025481395364160070646895335845404017026644201041456008159189051691646386531326739723802644694194833919138725782062748094888120608781974887712827703097421877450853666184686484055596217125713798462498932475579264767721065024587415459942042625247957724483206317172572146417707725155476730338245312575880322526131091512667143576188131144034705573657511443577394468985926374794479369579223540221743910981172908880168218825126607719811435026486264108403696539761712653246813975832454488858830994483497588276321621224512199698337825187910998445799177683206693553367987176462708875934755712118934391109259845133716130697845523554521182359107157658583448366213212587178837838880519993254229508383714715675393507543221248082243731132468839820409993106273544969002646664663973554279077191804147526553179962644053059685117030265927682175286757031458630562495802433236651439887904162847236549427417866858308589099680315946347207763689327937830381387049487555397306019682985748693800828328382635511719993483438802074788321246285129404262321754696415847538002465634436038578442328766884693571453990053200441446460402095007531484282937254542310641989911566140871400830892167284856728077504396349519080811138741243812691347536737999495245481523865930275907400555533626141865046017342619245297691843862646996339797427140790775340645699895016268906442491902159633195317101275419915656205693607518629941713467752783382861143762113151513835899395251247210430071466252597581358918463901307375089623367978131820700915982780359447559474354216997338142370283368160173588995427821125257780279368274431652967650304314975880779654297977885464848482140520970767269026613826114478166227098213375141103332901144376301464105248720033720161676996100922542411467156823724796094320180184242682612155326179926338820834773337266978421348361591763536975752148195607088068299746585980427577495450004828048158343406261037537586554713610234416014916824301698649109752273735249180200750541135698668385004590963663987848153041819202818996637239772544653373141208415968062227319560871025811792098281981861762635236313872064702516679880253412181095812195526788655225669108677123556087014274287511257359514785830886350877193277120970732836403458023631751369336865776138601631579690907875890720764365467029985401599418152608202196664179999379464713445419710729610397203938040838634944260599241743297899946346278560809314239373739462150021371431699816145990672736081478439943701137481557165604189989733340364959535669716826219422060561916496952873848667101095823389531146356248350139653910643830817752289445540367622714751272028724505997584431617628543244923137736155175718685554214147174749383095481063876961782851911145342165016711358382434757588003413123661429985050209007749413324445192329539892824159727225294789711293487319998645351930639326706495842441998038673639987698545522905133500665479169152418123651529532916352116605834855259656514688362659566372226895593019211230415334690619527719682499033847765530398029498538128164051896719759515300236744784473503513271553339569931143761651926573939432554017128472472826663240610537705086685314489570936113684234422925287033100072662617308945175232862200664546985216828905554873698258756209737205562881491557487332340224921274574942302209250973090634947709097336499397829899380919884969269458591366069031492371990466317346570815627093502225666146627309599971792336637547855202844843175892223282143951728709271686302896029319271491846415874969025069086392812563959355842685211096462178530826120660830156957152088726729857423968318150151944170127813722818059201384903165012132164283238476280512511646582002649766702474476310057444845904582428613244198428064933400593999963121924546971431315156665529852646216485409049241593639464771946902729040271974820331384693113473395627179824723504657698684474545706944169583421979276692261349939916257242863397947442579253563521237498103719199788464530892547144558129186343380330089480883712942242038445901991183691210869139043373195088451140317556640544340644292946217659911442777843485545324649693868385533647791341182152342348392087156148437012681535835766883076059559565675255454812766823118699930604660144378066114571663021988297692831627014581756017634340748573828661503930709766656910509330441163175439143636213176347342264568932102663390064184882127850655984875202091166155398773960086017775540069736957563759611866720634144206661808121105574199050306651670838206903654854517091075357899462995429976006827528864998824252649198870257327525188649686100743003542457067843173254048157816876083133952280997475411907364486434093862477250108139759431880162668652778626391933725310154301696420340404866105738580417261750166382017753006432811458264106599604986723674795605759560424389861947358203882564856334855277819391497901081823992250374661823266466020423433177729219880670027055331075865564449540788311154933189421655222606037779593582226865099245835483830809092045608238936956389803543615451306191050938950141221802846555109600566356297711610365228006726162360293880596834753456475486982350542841663128713510963978327139349563490750577549314956375961255873886653989065806457517876182256324688514070905846441134319908474214450950009661134856814581711379976998736199833407670028586756441674583432181496654829713405337189209333694516719376733085990970926644791396709948982009342385676956783793445393871432422229730657938439026937913345168526915063317577318177993919819632736469669692410667737940351210814203034505541990780222454896774095900093336379125288415508663772597664203441191809243152418580152180234192148757841391560169105388124493594209837890826891034283360987159665754511498240812713136444333755636306264432171798593333917926949565333607077095460581010859951291845959791527792648040618626040534877409935982328330434717170356597704115569532479961438631628785714847568026249650684324219197132811342802366435846261291796603223021623429936319014095405597411382820852036832277952758084068350676608266062762055646081460854679628028237146037425052232703289560146858510032548030741637812929658530454748444433393465422202642326234672466029252950023436954838284063457619619542550359362267844149992635775947796700920168766970896855468655862192786505081991842364790737104928428015784672852484598441341524614600377785198810431895163501480269309661271229018544908390250594684732404664207623685792074118790872156745402702274087483630388298622649939188178430548596620258617814582870222096118560870155058344346558757847078703679204796713556000482569202335799794132930240296954756815346347038786326863368885281586809656230593535576713591182171094010334391489700651849875105608383044590692842395854427946525617733481169974901068544375855127810435240839209610202189267064201402116497602424741935259842739192211381851763027368051422169745425022378030878659610035806714546987689670082970191092687940702670277344456695674225502809721950306356004629392173873702967202659488754071578632725264087427966507731298076879852669571872220136845558926024306403371767259735763090466191068525427079251076684294807203059242852598615344707928496514271029512512848529027596201064506913119189329949966484543188881888619238804447277639454082447021246956234697100359565194467663731174479446366278576797350983013341210820488409508388241189502158454861047154957522746516154282922607568465989008934581438580926982114876193227712395825360046325522549466764424735968621894891897373850666888014108828870577084051056637792481800294311971563040178096104715870131232134037906470813124695095177271381334340350838409841857522675855651157580762687948968884501471130126619024313369272242396781821325196605033944369283508853328207641258670347063509052497056350646050518983357714463029899728673294820791636664773089815914155758081084840962665194824303408746066884569626205401011941062061112577625231621476490539300543650908077719468474735226083874044861702609434842024372827330595995921782462497985980872285896251569743916663857262443762114442456638907392254075982236876845833902986633576041458554510034766504437589360334156179174666400044918578875333590128209762623787904657636013497607297680702889091589665595504518777964722751339211237109137664181217935861885097125147913282221285342667535030214118220824743719428304430955474630854190698860458648766654961022748118018299940385667333852180356140852531820219749928966695330832843350541775403632188850736069756264375553224350184189185146738090334084074868933247398832805143402344209616958505050682305862658274551923340427311682785278464770103045962529846757676642394870396259878558921936708646789448148218499657291094913063145787971832923783440714335119834855642747829144720306474567612830577451356497719736972198704506630142540996926040170788586938296498554608553857431455376051126262170533734717456075330655224770454896548025181176313320878510991660525328876857081326592073771388570944339675079287992757557433761004303020282497696161990547785398073464930166215524974186100291026140152260079252532904648097824579033063778096685524946808194609283333503076102823497427126505606334973659183077815820678225392227713719681611361733164546440463001871910000311883725180974877032580697389813680201209304433697097658494005882736471279894831986463944402585437727284198388099017155449889987992612379547540527471253605242573480958407894331199585850293255509141244595127915765888529182486888010241094179699428448623090856316147689741050199635923366296925632219562479110969625701466917384962289744645636583303199379250923999208762770420869113028674799057167502201534340801641498096216463096071563916666260833939993954016601821980228130373970219924007867814263593505811538965282235441542786543984600149474823195525828747488452578290886277446171229380572577656619321770572132426753413017317878685231086273003012738461732378415061014597744399589724937677983043830217772732161060158664638458832001211122203625440627444282736685419624050910525925404704738645694420926564004655568691852493015549558142188257976800250300112270536632865064497013895253765902248251329377929739029403363025779560412666495766823489568900898319186542843100926588429761164491251053922010521000739284044280136241256557359067842739083742309172102335221113703621882546704118000929913159914677581083635931659283432131050163893268920144389458908726065235530106540762536623235723210602230333129415605154642588303914342711788003107501560328092516813580683926912218397007428466755206141051740461902142818417382195150479595078740511408375431269780138432889034160793649801074968115591602451610763984047489958571690604327142471246648927967163057388982919781099238094533704152179922552025071203894819671207011823894536147537699783627131850508004397969308716743572053056647925135596393950851173638183472042491647365579219215110708998719468821542485213251409450370015679642316738165158961344517569747213576320322824553793699716578381975082080802472176975165322244943067464115995567799773188633422563279372190673127426259901379979995701936731937685437892605494277008472313714814691614557921335230196083323158265276099182269191144377403978063647039022445818583821732331476673953840920200885315517773638098045395122733262452946008101339782824516403728522225374871433496088911234306259987322146627175061453943864761809974431329062580656283086004882950960046485999270417185335021188269152728196324743012670655678466267034824789198166713525340976402607414849059336812993816240868759686821437960301082350044410508112658601011955775363772135311602857469491983899019207377154204188889678711472404805046172568412031977062203487293640907018046454381443703925800942247300761508593998920489810668063865370794066555473616206601301979576267253349194734290643046668813856225004916710469749666690718403583687482419467922330408099134245478258366767408514588551080391235955258585774321347005749804116480022220007699835773189020287299616197011226252534907997806534747913457564707809493498065705411478652033938468991144050697291174438686561226883529986426653273798470509493765431247414178471520804201712011726620577581717101293107257921416338770694295383152362889089857764945891775678007619472134996756839382938201847393594980761120010775076830934231827978106498321829790087026797148062666730943748267715171004068442769047216991805143410924170738515406633462459570664268053772782043841603343879802568683734633907742335634599093011111933730273802120390822349775006062963967448869810249304830961122359053100647636910216281967612437087193051421562332127071728744242531224458808274641580855753664387989940664207305008892074372225353384936409481964180399055027879263518409906315670367002054682092423886635914066395500939990438765165555025849127511638542039669361748981254131948502776252766705870633708288459688638242873231122125437623284325960846696226908150755481040114808468134930968468247778735910089957605004583414835939976358933044745563747367942991437698510271073816711857539012269960550244780552696614802072691407575831366205740822925629716990859292394523619120505917353321191122590175596688104606913989983788776979226693393042241336706204291984842699435338812601869558141296369233016735519467869503647332562736789050227805615095233659489301727678414717394815569449208865703628635316167266718902257498506304807702828963499246478118248417897714295445512595650743055203577422308091976819602313802216292389015132232471864234385942177761854032259142434768677251987495424867358965485297716735242823039796691514187970251200602348479510575748762834324118030017281143701814721528391781555533594376466487576979694265106662663671208466990885807961299809375590351181994884527893965849402765188396320820921073004826532187407804407194714596329782704275835219106073923400466124782561108366462603314396050785359935789031402572102776888794675122028188763562580560460320934595757718980612446608060885324733718187537121059243833802442047908297235593291269740697062983621449635454819554723581257535040471707234489324779207522021034354080647707222620763604753251469964903484874123886636487264865631207643599917150871038351321522847980436274585726331125279342998313332380261017783803455779216395804240315393600085105817249445672090510181504161179129161384943296815893502689929266549852153625134010180802070861140771053345127786520242927727855767195807129613764963796145318419197069703000044789093216240014202860431800703001949893357470724692001283137516183548064478424179388661613524637711065102042696537639291167901696922386071165473707991444574946000183499386270120752061098706512492942191111811250143124970598331348939939656765154622173376215658928481846801315694530254172551909403488213744320343754706911184975281390488253696258354609896585027884951167035316825317928564387779887821783920631744124041943152611684687203038155029244133455410434425662968625509699795273479878833104056252259458350967182799925723151413801425376868155526661115319647130955351460980018381362582654141926436134546387579588529397857712794576081960938667283986141432288895924713199200547547868095503420529916217270395709337074289410077566868237089428854192471591935232257055909993520515797297952470092907103333219036829254055771904147646884439110840794626373779792643484186337432530968072635840203378085815911466958712333391100658696324045471659693784055169217292256727182358476069808596509525504121737923721411533846202095091931757713341436159653413263932291037517612079000139120930677308057738473909421985702408637235049242657061103662164061143594758407727077054368937115912846759328851231300298294474476904705558898627457815370992941217718825213020424262485500517001133296812208408360229799163917222507376362151118135861807196285914865854031616208564297907101188274110226945305180970007826820621509434673437935015751262435328179197448663200466131547818117568941725820935881251267767086959114065337342860464545074175078058640611636098267628749339408243310543816643243628746953135022297861965638242717720926925208844883434554543473916274321095892584318361353999396621687602058933677474851137408258049785024519235931288768455330440620070523648514184726330133227633294445744307034714510478897127583108817631227558091652765466624873291784403015887455522855525849636583970540618554226293115204840758450117088535926744479869281866312421416349867489099093953949747842379333026602360902066049899121308564452565240782080680738441480710655680645636926497955174154213988087078691132914273255777088781140001587336938831578067380243419077679426796669794481022865661549933495127336713789854472745133125932765745433679505743477341736887660926333776797504545191876363833098646870373397895596289001705743727242540439566210893984553876680576753152550604292581275723370539643710430972467013779072138109052920856349663446061422941905144610872542555176067644058466427831869522186355504660980156227949969111758609941040979860342927888479457575064907633841170557770148161998382370408767509554325153202502344725489775656899457011008754433647544042777482149114335736700053674751394554473701340294541517932307911396538191315858576848071719906186369872318113419187414068908712392053583779569076634691887663443415692029513953117242083092292243712202080160522249928326015081983674558737467847702058169253294846294874919361074177536140672445147787573146598771365934039382540746077089968026182099333119436326392640111527418252979934207507908632669599275884274350314476250603606477894165228427410671294574286639067600576607177701220821166397405055792911137970978872817781483644306295928789418584569476605567056859842599434315736238117292641003750692902914795882948941821846381866784936127092234000725225827219971984971417413478621443426653880039719866882888453073223117940838598927494295016530322018526079090739490748123365808428164216133862584405904035550117496865175381125583252924146490856737537766853199615692891367421295369349063606346690005128032203657243647291153350309763592537085996645693599501306656077018554113960060185910947022878456326043021323128177687700775451669749448292256176478471334093840505895052902106277440213392016791597170119504572405922436227296165018023381237877600922849899923892708436404634314683786084061437699751273122394490608747470883762769330995299853035929737700463431802603351492626406086768270809184521607583479170043322199769396557225923375606025436027194715039437435810629389194435579111439373486144062992711492148581526084222486238164182997138905617638235129731304633370762260543963885385044593499006186490329015289479984966336031059108846528785771765030469653282373477295784510829514369002603303282141296052534969339370611412073726920830105278428866955478614908451328620764496126494447318276085150709959247729866874391901310103352394858419704920509945586785903021251469710638462501592404382413585352648614946020308155410341302725056517952443025451011944201533170598981884998362174932518574437960623259793925675320657295358903927200972050997152668936594721292873421959894243149569394665013109965414475040702009008568012226395248365934720293953537400682370528838912909097182938914720643034846050306729059468967362971928883547247498509846882313843941620322795846882546397439634374397982480543705255032934049898231372803321842331501070954328663724677098429899947357082569522142486823533486110450893060941146100588388818725345128091380016264116780567560413737530451874314386029219782284227498772651594645146211973212272466726341333004712122861978206554617255127759052878700223078014389697806726484426699077060852526600512037642542597732595893069856770136960065282561826174629197265667990852736986184268223104929133328566029805192387061772525696796202620567573944047815150780149780180719683054981396281906792323925822204061108852152113973268466734323771134480964993678197665909772799580368977365670840082962974243658412934823746904043626118595831432069231543267425915263119891589213142552947910304161786823348672057672229050532719304794202489215540013935096718252832319569648572144349370604961182335606638710091885618389950739523635624837784938202312811031059713624972949987240411470491812537715563848882979521539696533994646719251633051655722484886543294980779335291324781704394604653990445959598395420733633904898648019068335841834714419809340924704664792034424329383841777801520271483591669683616362677649523643716368209900439937030521923442328093397860064378366781635520667041659797596853484539874839262614520000888894319701418229412548224587239618840973375808041992340573764102753108919542938543133760149777739849727503796271410186395520717310578949320368168913825911298168592390499830172404693465945620905326776313189177581737109738411101225733972569158214205697473641625842081328162037880286015541478664651828847255093879692588472358132771319715073057429667469896776873429667007430639839310374906656085540352617809228040852171147875719941562044273042687088059211890349752376840675118420544301459498426457920043601870650089352184863210113024265160007983298789058504505416655469174569583377992923256859037867340174953657767919771288553196777789145043659793697246030490154172016542584344191333734414513807303371842678505709060895049209908832382567600710560367276382661611806214147253386896127643564117224967714721406368425436802464768449554814154451062794906571035954569825508279853251060986353371262765399452004914927169705677040920277579898130028046272654736488800682040453431763281519757040149918744266879531971892179116534782583187367056644054403814774119287164507868597481914857954696524108155077968679147407636335323880860646353900866551469050647204426940625857084569973129415487085157259982743491244591994093938124193810774312945673578098535860394177155406060050165714386350036656143232520906798337684543743861054668049021773246237781414946805731486768339503364826147163836051893318993703809730578632415389598890682459711250259062731515735823362988866459372327048990916129804052573670259593660792000053761670056152826001682381846952118026563022526221807297391830231951804474922153555099071979133650085929516504466277861551318421481967777916430725103083449189281889454184085268573948166350269795797988817465823293711117625082329137195694768558853489836155827821985410053754993969942811545950758309016635580421245559050926706250838187910490896073833905745177546402636413053248996656913311403947374021747921268060625551028416221593985023277197181757646992589750995909339867907784766976826852447821154787496750851966921659598205317511175979945056568283869407142952530395482251935225685010905582274363983094332485603804409226098516195876051368521577163058184350687795355044048915722213880637128833637329285587129719395445125556720488857384348935716506941234815172737412939135803867916816177805965888085512371558029432693423451733861426020608062438077560005426898547068725585926685724292141111242744943802629265555095974391490081520048967463426218541240777244397695292776650990733088346296327809330516249475276774894775010560189594101896133157135666055246910731488568571006180885224645958694324708072275288912456314647445206100828817054700870409976143402650321965988713262046828317541321070747460404614166482605675441620614672278149431190698048821079101802646461864452576235755090773332832056647852239660075844482192083260392582235881875094121721876128790376907117445820035809558608838634879481900398655446083699896454409541131745552814391944650780809140101348074578473121826407407254973774889319732651497424481049404272862684137391858319002342627667005838856707483731537654990748167194589683839171207121146178708407655075130194731829545715453787108667289576912078591964922345910670463925584135909379251052717815832634825057431137707470355992308328986670407307594395314800714977375446457518946837635402047620824894117351200916843299847907864277506664650127777302647142352261655488164541859226274933918365402767749505561340078515650461625826466901597464388411495527548890943788646167731488933134490820860592606255581870162977124114660552328193111670681402241818076501956488733085082129815238047714234298785615631663008241518610093970474576204168688013168486482151298751421057142102186129337919327237544413188225724500744482249922953171787188869422844550612426783117375259035580039384911898660060639108130078846715842001087150412431828945969717298035478251843665830378112187481275084373453188173429214712469505388699023008421169509670438030612797728274169470651808349998089867942119587127456230308060376027152103719965035499175366647908858013153706994506653553475941775513595044060290475654758604586831366657632164025438836895305154959083595649535427424354770789925014156485717251286210673522285782073141286827467580637046073467873814738765811678298117643526782459529031040083685847791762649545727629800190056739537691687993991881039891949615027404382604693272972064455913825293711341779721627479934347232711325926486901838203406362985189774517020161532237516864977996732249329717853885945988856325467177166085601120411222162398225680584223098053552975699015482996336321201097120399760956044511214886751108552163477096327736542401518898376837695920025734553762232193115007878233889006655559050715703257736683398475165560277955939379396796517098445368313385399795886709988259583315483534223554172719362810115360676584305357326250389686503588248076942563816455305733996283524415262067602506025975926921205244301442000456218539321293007520067273625503659032209256203844643079138058998274702468844759274899817682748248037627251523231236584558625090629089614316558566595991861398301455535446482558720256863214555938836799474332041156290307738611596200859349791530091682256554462310518475461690766234331799109306450382876662153550609948958506303352552295224501010162108908471630641203679622765026253498273140258777989656235920210799463783085237618050198363031289674100985666961574484054183587834825893253358695108782828475287779701778339851717138576736822585336544099070246052836063848553376292380010865156062488915193935865012237999925275011927667436526982943571979566649264486749639827640783653563307152219141020870575991278240090633261192213641730445804564639840846855185876742668450269967638005485202350064528417170017018958361189828805513148732628910268386048721705334716752460607005068325315962946988989124997165734688127107054271785602887586305908083654523603861228322184902253899921657609198719879677195318804839664323101832057656192054535773413596030305626658591901614279061961124402207343231953084061708216945552002458530392907200433711081685680850110389304666344788354020485883320808712806910305355998358250516987856223157192974312320624907423939201079585197203371817723770782588098597966515226510568514136208508014081497415750141095329121726984903369038908489557419249207669708706986550747127525846824749277446893625344643547427576721650581502463627476117137664249054414686246887190417911103918846260205821396123809704931447932268860752296507644723159188556069514042381430570192043470411455963398163925964320949407504440729221910866579989597230468419020358566119232119391240227271278798676092748922252505690235340521486220477691614781665337532086279378142915924753122074951351308969363804589188771951273249094217467779194365293083747156813900619312856424474722721803609046207995189815851086774509389977100548947723999609330662527055058565827418918446955858329183982953998968856417235867347190234254877683300973955066292019455165192905584331544783398414275692657629993712520603495687121678297493309267660588683384045992112129327674177943817359255144228003169192502067171123754828153792396795390185637021680828558574684753139799788519129483584475234567453306559385755735805373975979626949337174958856230310328120975642367851117258842724027724455255278390073246641535805410927013763437446763606362407910360787107013935653167743611583174046120012528609323086235010505192212679758971546834262033238558560995084610241230946308556426503238870431420241985617050768860698633557341820551831502607870766228599685518259072220775562322511921477264878727324613519765608235328813253432327438745895602243633540392040950674547878488927081654532717279203862053838709827943865545157983914361827994240529149541094488779579125874567732735315045933340774159899485893609466385925661742166237951548139018140145062181082821628800160391252826727485213987925454028706498528138623088158275599589645134996287504089480249527191872679578495890039622530690662031880145178666126219057993090860601643697815375189995413644620976777025090904968414020317077670657708585938344729596862074574586198020606004214600812158054636912084046619633536509528588899989168375484410970320065118470702832565284405574318408281795580572192165313664306966503730979921658375743666395975803356910417835841214897964629341092549456989160657758403995177222851981944628756421306054045009692129220046409078618571395103079830585796505514750869195939714914754111427431780354040523423992476189184181328113649486861729645390992960502907425267058533814242104289967849277173337689284388081335999558277381252262643573077117906209876829547604093027360441837464899479649051739399620378831455722653497396798045544886249805466092808269695571325686567079389996964880879489443074835425357138827171746360814837224520560810959159773144367441518739758278680757444218209862101476348755369475837909361482619706891715210533523088060908809022661610520888356553890213871413557147382774419545360371183135683075446304492465903313410784801748032212545186892366102717592135290695276433688101886903258386724580217341737218685357220595080996240911631308150590041026227477080324371937578933349990076521346190620736396298610218606614624765638198304460528983519895220787187638278821664164790363929611900442450977522866346911995121980137805407982597629136620487773278102796121112917830275883546926544429091668038162135077621750161987449419638806979073802168513268335794562712350955036343905005267566046162177187969690427421323347528413220601094935896414893147886612864269376497495214446628584397228616945475985919345277488128662806648294040676768462499842072620432997710601860475773984572175276206605438175897397538232672229980388473480173920771207471646944296670102726228986909822555077413781479834916362644113235380651093115157297226005330309928442124059051259456517239022583494335627285366280298050966308393072834514488867188092970169507627332811761392117243591151933683767683337591198240792501063721714187127632889366479911744689913312005612057381115153606570274988917102785895613332229865634224090518465413538599419268989722083751331485710648469220891665468396093585059829237841644201662514559592323139964717187139792670978879905365719102877725797925754957675501761455393420059288212302742197730810007561611103614424068227370227659094273148937862509265608037206050694895426969482450619956075375102906939727096859708019630475320846658344354357574654530706341595203814928711798724760052329420629482499980246187877276964442130995957455738962881262598267132001650251669815467110939591553974227750169945729025547518947774069797652547589298131667653265184004395529840173214831334297470842323883781677190629512069919800318468490785568175844544033838307499988522482034461831266505857899738800337056587741010585056742344642359961504835299059092149331269274601897820899119768449697322315857774620934473816553743065951727491616932484770479733291713886014539039712932191864850077353231011213135612812012947334573662017885397537960344947435426474186150507897816174178886336759077265638687793276623630749983759015768208557514007216357971387517339696214539676380554966892169449009627987224813432658276162346371483701021589649343106004621886482791557718496180179532968395769633999114802426109613841720236680720856284809633857228497539590344490760727631624943761152539647241176379463631685425366713900987970331704356948391428192722895896295955561054627749218374184519910422172011722873400938138751332489611200792913807661268130459815176755142899412456812261026503624223064195502744090097624570478101135578457149302760907764572834058136945978874179284594873187282853350454182785428169970452415788800141655488195496609580399606909650268113533665699201547291935806926810563888239005830012902630249236443820616046868355204564320176897959718545892522494384636534655739626269901841508606233631251889498050014990752967608327801087714354634928948202725905433731684155891403992597109996640015261373040897129139234269601808098569723393236243606807391873250823352006141856444931646930487461105612797188477788784521857329550202600296107417376390400432270720257904655380697547935476035060338966296246795215593279321409461532718290073897123316710841200789761748013888507690263021411059350413694956005018041138166003254873680844956070651494869828621140941664285047856409278188241135175272952499792015151898319487900034164977579668229013512824861590070300174083228271916276462646890924119915609193025578954730052996200581707470537933579692138891593040723967895250890667245304420820025066512599285086576289153266684765576604799188839215615221777728490198709712343210883127524643353976876794788025595529512226801517545249294718563720409867847328861361163694844517794810542061242207064489828795532276623423572555588782049269425181663135947512455260640875638681237635257927428894582283975110072523933712801737537905919277282269170482215859140188729506612522019772984838803688992957924044882493011687080584994179420317727003750686763334257960192130586062668635143786311669049041396199118993747997797956850089601903569632827564153188262626371056841213812719776866633485534235257973861058413396723524165184318116342202876577616946538024867504547634386846595345756767516742086766925869251737285333862580653594095353078062732022664768267135557106193261645603258827685584977846723621868268624961434945687942093746162811601862881187882597986195789443932543317623175319958353720361835450479024511514811514726965618237819406835173774936727008173993343672209892295971915733468689686163712797298026113676715673837275837096341852581110761163280690075728087317189471402673586317475695417849626851181274525069938686933061439445328950502311631316696389871163305624664925165954839094363548606314693496068354801807449679257291321145000348207673912004958808262031003769192168841410066435555835161316212218197829843180932387125148568228143871251116839079523918533429911375328582406717545196382858798779083845612393496726108575011053772642640806084392067288628114943375254409458259586967928938464032890381668181101414368778590124555527580472507713104242881869756097409435254181496131102367239913317834258655053906584834598928727210682453763462735637149370315231810299609947162137542672895017044817368938306104932749149151321386101842378153611049127391911162140679794144673084342652532509132596814222482415724488938168098073503025594014416712508322960318236174680445589117251039500674914113554931274092460203547496699563711940441568140272150698726552280617467022067039465354539244939153870461927836055446538033200003225591982141216148213230184013964593964464799155954085646278374577303924751815800190149204259255880114847489970793700679048797802023735129868484518420721210872187783743129974363891764864107676469062884363260155743621681946928422424079525356252562496510288171573030384610669755263518989051382310004990721191723577326984631307392028093848332421081493916498429756756951273379058372214774400927206520807005280789147082599188439227478831836773463119296572205519121150653370248206049386352779680458351432809688438732939138709732164111334200014117934914197795379611449014134843687887476913605810290319332852185682611015594684123100146856120982634553941287709524355948203698160152571588395583416332126214085701752495209649916914457197727469084693184204259727835024632148711585807245228856387619948491210531256257045308466209984095543908367169962147963950403175872434074357304317166168151698471558823234260609179399373686944200630958855864489167800399920439080715642882525950894516754168024946239908550728105939016194503532994322047009440215431013488629964920620647249347712981103001269622802942257249461458457971024084207314351081639290529998698414471210113284959552027040771354597158834286988610299170637815354625016823671611532810060457705227197837379719768313632190794578479390591609257992396817354906023224877970513208079466775790840808058654395842631250250601123040727365647766159140497296272917793860991133613283163209476716810361335480649753037987024126778783500941977496476414692645166119937833782611940046940683454732854017445964505087857998367547620960136147725728599664817307522604908066178464337416891860799822700016542897601871587848321027711586435037311937153057354896795713216442033478084638245014166297304422163911183456806327598919235457713660549685714094875459031229353770964643606186696512277713008455076285425493118939678000472054340374218118975236339933035526765448201222973478558977174626045404552158389943893513471026675662549626335598435816709170454458364367188749720920154492399327996177816252553871322092689405942330696340501083117881753296873483537532310536163968813494109054018577054675361721810730560541618317631151985461775941582356370592248503190764138711199752044496090525225953730106361633658967703402516775409256295093299734636990466217275040225443902500038730521585384126255492658096371501153527171478355951315724860411445942685083881703940074988254102887259642562852209783979180783376132278734416359224271322072715364443896378398953115688548778577410104824200465365921893538653447109992692884019999992444113358298718041300355110160848500234396939048777103722346061440149744288510340698555549869929256852984758802672890883645175483737971959761688158068972261944639376701769244522384578626747756688213920166684195896557503079042450572325018400327987913752994422506721089877092133579147231118231509534733388223115591489127293728879745189321517223623928311924185268030614114077097638952752366418015085637517390977883714099348446447737096928948567476041161684233452082288545141971097967727981453286951583748067101917450639439253045287149898801452960752850399580651305738774338143748136352128048599764125938978992441876226282084300349930694219576302873947879744009059695531575306201812253070402238251924509511684249168576333069172154185094302536432199127461184332479387248099432157292012155251119253392125163381157120165899122322433000152713166338015906086840587044859725339600275091212125503896831794550799862334764743573686527230152252319602325489037476865681999213470931972173286297920177281324829297499713564780967153025616444869508193841790913851914430897151929644656011165875127144545138869638419263478355486561177463777421559455947976252145169211863289445989911679685331342813610596999413876861599563115584165766505075753078945620339805214601765687098177136480596263766030208404824700593385084348555495832924186419789786212446315336360828873149104162931569879661272961029793662017190734377078436163355902394136802019854953295406442022979546952809472990094324828983407735898025542881851083500403987569222052293761933825767341167824610154037835275534758419609285319137663369006666322050368925003523762783004962376586110597663912083304663596812712693775910593121290280917377350717931253971041300754776898454992727275878812506953333773943699228414213316573890951291952167835226525851514804107088974363809577577519963594360108792054971171837714301471803182787290035208184705723380104759261797598273978954887175250390046009304321068406928295830528679936226292832132432315178179803261061373046635696149633826623148342018254940861341645747287160146514784667815252654122419828440633535043501721153718516084928767021581159044106143498589997305829085433838528312204989876242995021568806007643472359707104238925814494879014318369029157898584975354978001213411147993453895510300247362169572382733445636526180179572031157507705215669424255594688696866389260746775195422291452581070114116614383466071196917816657578617232186108436941749374607788210333257257112236990771951776550215111696009961467309460403828871911438402183282921067625600300663920452788122631151539187683189247093591940669499123062321098977291592800797996512765123314178997545113769034654047482251149252197255192443257462504302420364799459832323571771868149733943850578770484770369560384522351552799582474650770428655326218521868663813295935542717144306887509030477907422530359572773964000561009947435779011047457019383085356325215764642056091993349278730888636115008037345253187439788455107919863073154160961777834406642362816288723195431680509062523018704861801128741950156794193663460600509507806959071154300840154608908383621474766730492009809602565139141927629803996772506466882340729138515356696793316083855588960637876687645678837179269522623213757465184872221982794295576661629409516560514547963892090871388597081553238073812279834784819129751115364051612239156873699567821779945963380053275459887305723850707059582168936678961690079273957714605566104542111914928812066390003810429986029138765762279369193084780809326186152612391242776091228000930273022945920692398115482473637891615008675645494946876763559000588097879143944879352602033189228035898905926694698175413693117444573774252253521499857572296624751151599975262727190847930439288656937895015314711548218559434117473258252619635009254447828449685386352916311788073597311678676982943857097297798511923222431538863565423949730910425130498145590668825025156735700760424681717300746736953660995544896997323522260485302308658455137214087443461434421417826418826620433084673822600863655709488419676161932126254787904690682779001066458649474065375871590422014852615549484768658995464676243418146585011525870022972837861787240260500685114442470913560914786561387086738538750610259650124630380587798648507788889289552675076777913733506526308719328245997412903427739309262754565985225465052975140372012549918400093733069549249527786007838687578042886124678669048515050020133259462550629138218269136033085418446152477868979156066185998506930443809906768191914597432575489482228088240972711076978880808238521623417455256479842222358917549715048811400583573913491588566979391794594331686836717092753886327649426121834668132259328172480938150372959934387601967061957090830781487353194148934495472639910549613609217928643872280311323702842634382532867002371461510285070305293809607505804998648595035164430752052199477712379214976695056735888028752032318462924020800307984744841167392786056603990093311747125644993305023570728933186799573003820820136481496356855847011953645486533749448810394426770218961560070636071844224448383099375188786387928412972195308713917913228569046044944180864605085623765998323839735691113593251977852477169300071903844934956983117882980610798709435144337015668891795925296859059070767392366715191165977462691684151389805248560554433592216031062476089137869742379550748754872670362090607849739838071056527370769689430586609638132198472096276893097675177173991118337015498818335388778911631077197887861907783079714956080892872635906115506388064196995345469071129425404708297517913139166979997489633383534108330771610382331605978059016941752489382113575405838319921261550086359448154642394465819556885013261437202244373561054628519665979843678926845385956833159720938485998879040589479258714031414780218555663739128351828127498013922850038479849723251755055488363109850234996863487326175569896356039441222025940189199206459199536445458653968619637361117779049589475890714561034810979211478293870389104791300393790363140338950859745489106295977829027407721167082138721549953826677154032780781741763329552092477697676742603362920923959312010033625804225216874273493293177648612984946013652399765502831979840104219520040228457627384066334940940578809286555138149364339528124147446627816156865511676798498910637212049150483271060240566750116736658380904289002261272630288732579125594489969695410500965687551956490735811091368457212855584070462165031470465851117948118607774528008111417579506915249876437478938176255937027202088836852116979227258075085743760748443766740875202863100662799483152323221540197480183075789936777800033936907446424837177057686511502716486983912972767047835159336344329584704373097342480782461182499307457083971396222405453091031271105274784525431439262438743918921556820436201846129452541528777258398469959673954873759743909171916297055769056250000256555817013116740880232313905241969551745711357576643463679771056166626559230442007782707297469110585674102766987896491045547277041976996432710143994840150030793636225848146437124014135226864197043651039227197145872337872248414440660152211456440647426747083104616959127178084590647721042996223997457794259885925582708925751539456894546752721300280494538570340204457123596418526969508795477618038159261605404994891383563125175431642102629890786208177683654313739264401584303238549236385649387557722802925103932228769274320580646777370674019324118881770924262670279531527930372279066742930333169069516293114864977180809569216278639546066519442210053802197756583496846103969342977905953189488188805868075313604311842869392522546005587965792781609743643701668530760162448368968242006376179441947795876415182491758755387596775388746098234680026381306358965556694205545244287343167650403886525032556473317575507509373400925799948504046145411991672481432554654227614029125784152700440337270839641156609048800619335811208556705628810329163031537335800290241256392690918984100775876592224987299852206238162694486363679023753556405676421766034498598197678857699593635435450616712238523457931078622921262921838565754224879345983681172059054097913328279871577031560624137679159698159767302594977957815434724601912894389047653995786413215917615921259354890551685946660394933930266486214539514044377256701874184123136454028169006378874127281717664131811945634148058028585215354032192163318886486528578345041014780832310323500458197893723719878781301060510524520868080995637340607917589455036647514149374173075307189080301248008876349946782091965869682957047312113991288931508010617664106304017977958912578772290509948595631564825585723670525095893415693047876395007864703112765233832855769502193201346915022546917028531940827644120807177587389242361528204231962104888615931391052127825119494473148681122011769323343299851218152066365553414177325323602277881224037732433056422213461654457411649001465306499095547974506573390717844892963937548364042173676655949447941298188262656919025086865378911387519981422649523201138540683435819814451774846605874669737967843769726375200924897587542495307749319430171424714999746577960065380541434417855223380429662109618075688183899775691310950917491450987356136993881675138950317767705946965300899266368164789334215732587796351346557702317821018198295539576230876910394762697978874080047414092841166230360502149522795925408210649285577196647442464008677485450677957301923028857799978739707535531347715882126831012362240159772952131142380877259426441186106822826637302884539427191223438664550103508411070105089112088597501424529632736448805292972212111491337164643815019451367099695889037171083648638948664963774510383066698062956730865096343529242090194498560824864856831950162140430969521641879009288237287009184546987059776697206732129942957702856774793445620874966754306091240631267304744090882257754518816172746695890783148993763736163270899470743155584814919521569502290845433009810185553069647891862454489878299710172813135300959918967136513064045811300713523946360518515241580593744322593280173192627483230277126077797154446978006826093081376308063281267985689952584027038607213976287953552217014923645105270575539024388810950538412044184541766124315857838782332312785758921176483343999778067230035194030013850104039466773693817179252136378829823081045139714756528935850085736508016548319109232819930070908261984827863750772689438063036960270861417292969539897595577368844714702670483408785257966126409551820077229418162232948489128856862592012154233984030321059259689829591464825310610738931773074935369867286593764458410939318062867436871859927515817144839647676974856849135296653626635679743471566571199677346364380324790716143667297104766988925991176197301933466090169303467761507185428143748873815863664945651792559857972852476306731606874249522578912300936586919767289244751885550837135713512573434384225678703499812095851046546700416250935334990246562437663406841176890711588327107924421969574698761901218780362714223352365984902293276848016027118984529985268487144836591144477365991758074902075064690724832504806009573600181705518592911535312265007449447124521956846296501189847886754483046104021496662297282582719414263590063253699356668460028737512998400268792732405588304817664072583778225169227430840049695561113132898129578633325714207379674385929177249150947983774588928715063572517697365721393627927036905249732794828637986515965996652087943518846124352783262958295246223773672251834708683809286369825077003763549274498358291624782942067129222908916451208641515957276706232647294832174963420794072606462260344623750458367204373624694275709728397514621559945084089915893034278373678385629162857532024475912404057654683352784249252148340281357772821106048774869654551375112498730357638185671642674427622163263341378937495265104778957271700598542891860926384179289459188399730976767555029231417667861745375887066350858068705109746834331484928608975592718453406644602747431539562754817601789435303765330479885947162474559858818126965704565455997439623249207846512614230369118435651687948856309506806869543824671118209779855244346233275869881662481998944035668680921103500224410230950733118594363402031537355828732664553066877144341657074315085161411669059290808726551258588937589779818980246936232848104820552231720634444137468718097216535487373936118757689390070087420763785332759139336867494432855762140369345663245407316096300629504064493423133866060898093688985037513213541060939511716231605168720569383487656375615294223136680949302063076936808703777475686160355643989829028342577385496263641981505085667214287743090202400143309637510429851817123814145669867171556166813524196937265378676369408461268641732112384077403716137659303976277682790847781601801739318082424232992748921874329413015372001726755915069608927425531131191311330207983077381557790721213420369447633252448825698162340105906665940082027077069716661406144637739517847775656138628379291908978757207353945689729689786293438777796967430549546880317796161354525808145695711841735769468747770468531723770515873863736479556488673053337703334982710116227424542486787575212689925246239032229332869406638520489800240605055588615989683781629565149584555444081130048539290200437137633953101035778527137959182405986544586447581962159846736503331073359249727076238208983958138010614236976149181138360932058724795704989133599530836930487861428191354783049511572852251469693557437346674987849280200313249029341836339188389414586986914310577540744511346817533579177518879286120727042514981166216398571589051566436225504609806908323274208307437692023503377514045527034527809870988063821851018524603939037630661380815038771984837400315341436391714916483154599538082482869677167464383279401272198971716054906223808929690623543724316623322409265455813623255610220604070011245464419417888540234418232515768513237696459497919815097692696355984455872914127413185321096559224266047180689211817898738878725092625159483628766461634364763758583822907788291025230157942829135653251632204187702422507624856096303663986069813894535880331985792754805123698198878456471988564859929903786724530019660101039908448886292657995803546285515321630545292930365756496333656681454378784144935277612918223306166291119596007010991588084795632698453548641170940953477287844857664748007387084087879540844226875884227888668689711868300551244997783707514861089451967237025484469011470782375349098736033122299589417445183792949913900060330928868345718752043713469300844755855469254114558314130365242641416775158604577758651846917517872228824313382916618840977632269846903214518082186667505116374265030859802883307657354819819530569849284356383427809987416431838605268331895643507390016837346223801538054654494408488872798087577244792765779832000143641141056689421076756985121964305574267196172960665042816269954040153078448682253571849331306881309411544510283383879735769024968464887279297503901608098873165208535683836440991453851569546638259862327521742385640873688129423729118665266087626933558844812091285115022102787067159522887431742885389986787805762307397880791569651897074872871875174482263864783013878819765846552909140035434492238974503423904459048529387433409701129794086271366259530535764014335546282802657339786162205048697891400177268080719722801072117046616351429512926813516263730521723893052930166956579471013451464819080250375934347749481680028657000801464057688237758633355265979307184387918199789997358488324022544082357123668812518711959354632716004845017231391858769851189189793807651222539799807825978411398211958390520696090789152581555146280733058941737810878243127358805907120239191712745401822141869233011170139982957827298347494592824898524614403650330625157387181186728703553052487113735410089399934652626637385670669815250892430709558029272532442586291308055439393298054612679462181048951651706008812531229555778940755160959407432814210995274133541425344445810345315178960684081076045922422755508258525540565632610303682653425585842599317275556802395850412830756119568991326902392210247193167160851246439882924810305087114066498001434407939422300730374332180823844331677089277729597889962375449258365377756511294737798907052634311636218382450639711722357478180943558659930223740402277449597089941791045920975028432060977809674057093633352003917009043032567391233940377048010947213017603904640568370948067660547853587217297484061808150881819974195483851136582883455450054006301802580893801679188080739597662742247560451971292396105458802541942970084694893295733257164163795007575115810240144602328901860357580533179531611188593290596805335064107337734250315560617638257774785863691448818201151747082767517294666849694229478790704569333047080265329608673879734900608213336256003726859741023638252478910817166060243195664805738162995203491166678116829281062280768265613338762235832567989128360687570952433373150125823000190136173244412457800228429720609655804238827465971821752828988417102507533593451407566256476860028915708662932284699073686791471389802354799925592347143724437406616171602854232340381249011124205177912983627499243563345361506237476510327779135682007797510913028404615488029955726179443275638540958317635945446951055188699460476859940010533124986420934866311469083929346135887665654890771388781104122714932972028275428313398267342329364764419808567075855229344695617533126703188364376166993426950418655614118182319432642457921594704997466755616350606621483192030290757796781821282430639690808231340456283433059997726910278368317857255149766350005419647160744883065659121167034536000053375408148926739517224420495389918583213576130372240995113502960677916685417093074299018855905647728767013228821025796071387926813611211040470671612694274577901507909223406712380928266659019010036759736772366951526465103240664051420415910143429485034554333058318477173639002830039144103478934025493009998400727941502126591611462235465489909631486074922843332014353591070221472532898849499917964682318012628595258544381459816172888721270798552297979819392276168124345297417530509388975986412505564600678568199381773949560491457116176680870335942930570608840072595841897142066055641151955774728419943778745672651573940429484055638899744198405356581098283131725312674347428610117086731104673893521864566661310817675671399216792416210190842422666374102296004901971571063886355459039424245222462448712119636503008352938238129744449914634742544767401578055341235524449776129404319932298990247593146024802076505115132298946877144564938565586799405099590503717722521337340129300430092336818182440726160538350536839750504722423729102556449714796241661636084764054601091866216372341534677274581337564369011502862640894991758506400267061742614218242167182288632298368236370401013674301135878661735308607749935224829285547741885066991490661146167132387518520315577729550997107702119823493539170925201007863292644074185133509141523374066917916407288329867938541131742572542142840770246482288808899016043614647669335262678856734788850354336906257978133543809783504444005167557664128665143572677244968260879642494000183178039345824707866813580544375733370904703088379123377290456561357936280730773956049403499565899666101492116645638432073217248996552164551311869254130571096541598535047053919158572519497407255228292063601692118646100706930437552985787263944557109747501242435354800782841909874247310087024430128510678972041742828115280760387960361052913316607640290497797133359030925427232052076945833548098906724289629137259260806173331357576799665939162722640617781443558452932339489171055132540338487549819666114219156629362964312258059257183501718163468706164832384925616065519466943857471566440749868948981941283705598233468195300458588610111540166526010175585594360287872627850578889621277147999753963971298805077529350622960173420898703916653427793813160847409789205845511148139590069305410705763652237106644738803054359827062972859947546374431132660630848693707050928396745456318452638689492676836553241142248275473597457256243999688648274617793409342703001972257749406405359450069006576350297676158174956598668150459420025163372187128503030364500397302878890811262493329535040008061941734055723363063222116057962013712080438753457651115433826544795880905097951167362990229685738000524572078650995755288965464108590794041833413043853577035841893173922981826043019331060106306884395822231430161197548108635709299078353103889634961138569830591561433323947062632342650645195652482395749968207833296864898112216517525743981752436314568067407482093827935844934682538924129256338179777084514421308818516033447586405880406404151881710811894190279740944829130439489822806418520546299475968359067835376892041723281827748162404579356423945583103072488314085189553309091109942036503499471127586103534867201187052900900752006243935041023992632702235266699599816185953563734498262201996701396565258211542140296200474163259100567271929325813676593933899550019082273249548613383529847923622486113263952635228480151369741766196051190297812269682954732010620656679027448625708081695272538241762338361877336161764094173624838607976704017817602921907587741253971125647772532049835661465143116561306966412647757481786481772040575148969178139601314953611016812530081891893546966478200514526215312078000150752931605487238254247363416511109807020429449645447697701690638326860914930948218262970059841220173675501110941501481218706560143316573735856384523917307651603861590611564987584424606821783078331127812967455402273654833039200022373076730058313433915966861127148076630804762197189842856884009216407799418779689500397876926997322287702759260093967557021608785009655548027024961472520032452714955936740205610735456730211508369752227627488836712011027901105519292136522042264848512013716508731716096223881857848647538331061177248800264340297882201329657335828867906188049783339109736978915691602476480094406914676937306338435505693618473538162636232149742717485809669106210900734474653928910558572207299700553321794262994663159376854543994299707254225087556431723221799249284817126450540101382111796528203371887454466549724935977841136960232482074598075351582787205774130134931767530098813597068298013782690976683449966882294705370890620534031398497408023478343183681126418908208821785929702646961565996727347923163639215376486846112606923525059153730680496634696496931765460094012562320584989470616734456023316318598323196068997379834261908171045644005349112499608087697822540560639678840921616899581689141281140336384133017637122832912871240093886178877547094089431868653517997395462501555761216646989409241928929073028006201681400003863986400334996544410416500599863342711155861801297783430184293727342835175547341548650272110595420059601481580582695437566961222153464152981976545291354870628476286879330639208558043288682180532102797870786543004581817622696872007360277921736464942172131728207988240985538340715315750147858077572188320901822534758800183050738337388371239117358938499220878698970006660083135445812095016364213724825036429575374750632129933644402046341897256780103204095329159716722231910346109545333423786464131406808013607214798276968788158816250058091072562608499395582109496592343167983044667881149900377568569851721339914294842037478172828303431774693483788317960457788648821582165926479248546897676416024854857643074455273233760537596337358534343636271183097790999814258592037935589632413958679205784004151865228380727298935253572257219274724169140717750858986462918786535700233361863426740201934811564152110415352457285107125168921243691251972946292686516600966745217125918262052049808255543171914578283146243544733156775990510565006901291056727487272472799791621492834274499015117253294821284368126967253272814411495706225173713502666402335236854211340426834398493685599917914711475373546190151643314945915627677314837619822395657797560493764120535139964648050356322853525169253099093813894175260181103959288399208545392052940953985233105890853434240223864443379327274782027093702602167127382240944873712126345228946818444651342308912136962717760314817846195148747615152014972667496350392287616775867938036745293195475036600660155322165922944004427048636860234651432217232705658836161640473614468099897559274352195857831159812362269866497063760467650207078252385153324814932896173878255546362793060417121426127327617679111947996516126303525805417817869212142210341498638464665576257023670191603939307342812292370920847005847547659837326304187533842757945676104389270009000307760821763566858029165579862346058059938322603282383119170479214412149012850591925065649696233303462862327484721552615355531536393181736778866267914236589201861084111942375771671292567388560545975221149455673359174243895750354431899811791847995232234625230480410560427014140180948088533746694516055568106921995959612685097131471153395235388863803172305917445018356913040244949899754131386981005694890696575253328277073896314658668617397452441807033837223330974950691358063289895290831951905382461787804150141047559981929587388757179478148029306477844612624190443565332084584759654924512599031273458179599641209385555641517913304967284876774781224657425123148476387687059118413335591985323148156154513145470465324199378095924239353471192968483403946241157052201359051244968308757992885302395896520281132531600802355379021661536041534469667657892974419422145382200066315615847046728870442478453082103505466907474745589738679958638583501405027302368123390982817140468053717798123185892492578931452014991494175546001849408782318784363035229712861992899777732626762013558892890004119743317005191010847121254083715546478242968960281245421421387853066179475359278850120983055403927067776595633650613300998874491546271521098038314781229971066333643574710607984869051714708264116439316186922342749371848085891519881848601830724689302796472531277684343018076162262231113977039928241150431886934475596847228687365856846585923833770173622284399332095228613068438039788315572133554488469727907440257496256541472041671906254493274821190127422451306116740635276156573330323455966003634032221374839079823961086668340461844036998666789831977239512067933710877496146860839833965646423120917538101054150659092621784782506879725325073420097426555652302193411533700344006065837197203830513878054801457406601630266423663613512916935534524352560925777093658512750485853285559624892994210484751443076093543175856636905712292042242360609001311046860722029001696638493783119879128419755157439372222256869934168608938480685516532289123562518265760594205749172720809802549168671520837989506731044782238366012702308255258280814134770427231535382248435885363063366367338264579724329018548389592959020202913489731073567601754807086836566009663990760663695163222516055560228724687484987892607420177622653792140486027210081387885898629405547100187914592093841060378144996620845832071571311694235372064937359841490690744290217563925147127708764469561236463406511621157019521151462627540557477794365772857261286482032152816450745959235179063670534048792821100036420831982936559964663442549611259509942687305149424404348858101029580081482111888851979117694595066585788251835319221617459642911371025434682650404262471141224294076995258573766335510155710447732231994796917977887562024676126377823413865262277930734488959723430039231537323791301135652569666344935178663767888970582825564173014742084512633091493688800420451217756662393746072433997949663904676830563619067498911980904474794902690248253754402277284262100981794629917392884737123444509105056586913992999686553487005698958322276961510694760071409703964166314906838648695529987976020599353176143178600311474352878297454286687251196961522396497713575475980755927529576767514948148224538989956195816990796010473909903940899840402960139635187158545086885100114615386411791466033629321673609107128292922431684082005452644092775777519032249446756719659929593518591355016998190203314474349786143676603749902306062752357872083636874506660127904233233988442834520505262540113912400537572183073069057043314757253566537502526451833119863537050445299377435440186882097946431709094644774456983277933952883638506542030534281032570600631216049591199906187796263550346743990327942971667311838376067846230969469183726894380421481815670976071133429983233414264206936676114404374743475557662910168945721970859120547835376055374770201053723456020857790556130800117899047267123702879543965726027170067542402341413397362667613671197680706148062573194110419637881846316418818732502819764719441616453213166286505201608546801278072542100262365001615297994642649017683680196640427517069862287608043445385062561558720032887613343727661458355153319200125382807794576870057553317660067955135515978556105222449023947719519864151854996405533089130862116361614728320908920809449160845225479360653377017514302388611456661766205865998629743558010890798183199442008150091671399984088116353319575322599084137353419771206816316535364578829612816731700737314785884207394638273367196827659392985127502667106610443090815762551163596155231523901105327046489590877625438149633089176849666330688612004356016071652773194518985841256263905425036146196208045744067730266155796211809141502562912315973919092681110905295467991441317311718693107064128631275183194834027930875565076235743483568164268367304132393627596524014825874282639182373643720286534987461231260132261518336657660876597211376130617736070286868850375952990226176990210910665440857554574998802061374334834129148719717881565806378309079655820731635088311148980351329256722024165861533543734121745082360760886259586286817430635846624984607607374804152171050493724224087581025217737655991193011316619598659286170149541794927651730941376721981806296657495571465011479242105178988248291715227534222954186984737465344601172857359562032269294684359464717665339319030751075765895944232271762457166091759297065932793589712206243872671825661428396282948222524467688390545021610975643641363408626400742058614304517498612170677567198752596333514970421618659477976498352772443914839704406587705410785909161709491718211775752381612698460526609439995448387246491727559209823808131121638361184166897261673335261058074776514326563000792119202145986080109212327173873589538838631617031243510284132617723339228406084543376724640962649261592438115983218446085700059096969507412357976672027722081527514614615427335195541431085886869037530798773769880019409866226067877967573182999626030714595935624455153110933646840630717366744851538207209629055939177152440769804792213791502024478098554172771334600232854457866850306104829791364421623222733168791772447007950774867582486900974177721728509605561686561978056004653300501885828205423428504854617635137745040212829836394973502061422968999174340605205604342804552416074358208659906134844812594508566640301515684679416770083970967987755315539816703080927278951359433273291160415473782581125593217649503206774682700344274568251267175422027712870888137075686633714145045637418019029922077215460338889659053877741462493816033450126616078125462458032742076866327314759910933804893775431607231812150599458154217872627659788831452078923753335103160691481841096176552886492242408590677285150053575867478940169481339346718806093060359837369776920120108864146312704672623743473212712747538055832654036084513292707097775550241651772433859856848035397704932149119035013628648723716033684198971408946583284596866306951824698546919175922904817624796340771738828789001285416631130917315017022897600075345909558696451450127781418547680521737334149810727850886733203912035166476109996375556723447300309031672113972993957410746129646779287058521744594343867558590146343896453039950340112171752733145900886304117397461626612045503627866684283387004011946628017946228416521188271841081171544530739920974600157520487175931996014172740380271416199358100237229787916340240054548863032232335400464869797416499476343162459883024672787943687525050028489786111365651681721548372215565465663389270794040083895845370815323101091027046209851927498171298215442629638714152790320320071439002669314723845439291412707302630322505921595026905295784004606764692744456716012562950185762045816359249219908042682676914505103790219585041150447019095217649034274649966730307627412470506412197241673796236628847829762272626070707746495690828026960187650340990327056505770247331968302564698592378974122389472020837673056726822633039491224625085689962318947072106745246194957968676512727458967101808768808149736276573123160152739730618240921852816379559993289751124258389071600112991408238287720465289044271144489621858995576362504130452675160505420843113779804530241794179483280684083861210975160375288076553886476574678474769879983068283169822713817743337118083328229726514204065630076369731431448217414589874026685101497124591050169303109449123634807421603243831895134928786621497432183345310190676803156560221473259153009991469875014653993781263466006007414805811608433706114319146246117417489689866634121614288343698788289318680283093768774956863621279632592117776839411085588167193890666770112553189821799862583926305442743712213696982235697743108393293187250420837166804349062231118062356838223778387793342282208330118438205098089061553839412773004402777899517269742560844360044877920198644282603196407405901232582085598061369333255971924191132598609170663459260183961055982027876984744312954070085245522099938937996295533573147113189596047679700191978142574896555001043650748490879632891405603545708218712188811997245880920829742536538437531770277975668562114854222846912967464413718617243938636699212896654083103102308122858687993910478839423320051194313839696678047204307546768325357277203183317420336260387372609289166617455359323589281043790218405089680843335996782991543854547921474891564113039366463043392367393439139568138541486817463707258878304745960556843658408848133920873645568868333387701533035541793644322931777227086004619636634428124081621960072519697161962707985061567346645361839412046875768478831926022566499653824367463785491507934571549235639578322780250392778976955463326523605551860246094007163589884386894537319526182782889995307862062472484781744215242798104975942063171572025947051615713236014937654531977174253975600821667228749430597529143599509424761554965017045100596307145253414029149065646910573056680244973548258930622572602808419830229552787508906608845470488765436886211615600052442008250206066304871520299350819405415644485172104548015011091432368261231943235238293794997390901176253892814835871015065077131351392136729847724968264838028426612682242736837384929784762295636412917250066723971251319016278941252046668654302169064802122414868630176330726340553762845418188500425178201255993411052629342591044760278784670147460718838945274258890521619586902803378877449091773887932434037898176440269621216579232360842864374221670478131538158830860086122577654053301727407588447879663304859839713390561042501675177236990225430662511783705758652375780649347196679912861295700343997074432200779031600239512269468608370988836448942054516371504740878081843834030816919151815633910514094350532597738619628018368323823396431024706689798918097194828572972219511605217696659893330640467742174034526291184171749722916170279544483984225299487562614766969931911440848146358945468647769156881952661208841748846444733764448789235707380339939876265464506516073829959992044847242475693375031618384516528002814776817422125640157474426468928474986043659140917794916686602343455461568212885101267680091948368037735110373284110025610145133592655333974668046962960102411441323664340981870033620023470770920499566395157256795226987663440956856043422803149485822493710404638504784224300044423458401078996635253249306123654283511679659986589858525742871827773472064104349191940148309765437005563005127029836382450271394689122179056576471276155105247100698218295843816815918310504120654527605618230590951491111745488936747277866896325013877141461306677017334930825234370750936870862883307663051849291565574855455703302572625438431441941641694406431509687010295010343712467824723351468561941743757097720915158771470079250276966310235858201546835878914566096241628605830783450692476725002539249761587745918959416187304100725788003504993111238992183845552949567778409765250874133407376945822270719811323995545495717525240921011211692385808987026923815490050456476072691772060001766911294060662519634655978609728632873812202302564440318524514167656448341662660225881643880507598381474903362947778507277804920201471639713165037524750536841991243179128752310284144543132073869544663412898984906725048387011670056969965402654411884785409495827474472763382053297683779146940198686155260199246015218480134811569187558731916432378430698276309697898937660547027363331531777431316192135845608053373893490835226364310893150922555830452792812884244129080504210684837247182517492765641743106314629813060139134401069432594026202415753304669539568149235136050753959986133981627370162680782592538316411880020656719489530679618381369489785202555624646965706465071192939521377221979205162678734502835337931817924403382276882678626494817118359014479164371400517737819704667132955865938714625417459439881978588794023633873325306494089658330100155867059464121828559210683307367880134503933264904371653829178272478717528713147264015026614653721861105346509027082024768580524751822697849415135511971912442216514489286815448582202039493275139920106109613083068982985383314866051114367394688568892182438586847073394778735657275368543782270755367646289411646784904295463470209578075254935147162144262599078596446293896959054047317679122951949996676584295854636326106365105331386306808069051723052645080506727878462705206605767383222649674864218276529348792395027350522063419415074171303390299080290087446862174511085694828596056022399778834400353204095009064663003311891943212610564581880459120136477822771768292761088698487694138251843226730990435145028556183240856853287428563819792611893729590481788814936452136497252235434603035897283309792010886425273787244339135162716726582837692503097228581683731118986173605862883987921844908007749267098784778733708444702308242129265883074076883541603858749202353470166330867869099699084981159649623619910318373515245113685517128773024552221435321993085842148003669932280401923923097277439052213704774151416810467801165877065271086068667950189390961212321533880602538154797112727115588264310440193828035478931537064132208153882989411232019064916356723393389907476487114500851151219263020793636157872810055362702288937128989993526127779572468639544757855433666372448010266792995849580942581460780868081075955574747190862947082111182479936061172982731193660382796237465995392945108447559200088585697866871155956613598284165332679258355329096701711859773500144047827023664593814517855184018337626757053345064775477754290294440481455213889105212912463514578141632416290293141336004781395146001028849899773873295526494102050712828883708823882487016388798713082684000398154379269853250551285792385416792093890500284208819797590683682059368250393009529774662780883603348781757195600292431896556080903946738693212786369651478725802965801905149352903613401636757106651252913485854780203053785740510370614562939072443920827973045689508122834675836096116170871208010995928723088169272959645018763778644701207280257163503830296064010109520571001872670610072796766479788529676940791894150231512187916423964628103262850794021959168785235264539347152719017958254438408456675226405706434226067794980378399235384929606294778531747326112774109535601862097574271547983451365886195531479325778076684618726606083731940103476904638775288047776670420050462913992547432827060864370468142065925906871378904700404931231171451642989687684979232607869562373192750849675810904095009817190203768455495080951468750981780095393029387728186680069981483793357466967332322413125292028677762996479976477174036245464322681294046781790022924903005245854532687478792834889864694970888517127983457011725715944970536070948629493879215496746983047192363686327879307932255999476795420613297860770224173983397821706654411701164482588830235470731402563440805752697303649312694187921459659971348540988635488359653024054438561512669252835260789106948348502303146334627407432521031556911590871088139690155254531619884626132230458907431656499377426516255170927112181435742402184957447576711678660371054568263968595970996810076145369038356050095179385542806805479781308252327126280984665572631042612634421449377045475511903286487558354226458278613318756533720469883564509923473765604623039971191083633986149624147326894373876684890576645910794392955074239547873471222029149533483105351844655755364599399661668249122272412722019502922391147347808599136664173588209389782568718058058062499199300146602788200667539850931801396833289842049108256951490241162187461533460173813227726534380773406828753859336885741769554656245666295520657017404020379415899807247834410207184387147383118504990581195385921264108259497427349279285693825338835171362380530784188179618675144695340806734822353360792945592678546944576036784474769949620635832305486577239257122427947377571122852172988599199740549219942005765575514557915619415689517002708638582813441135249745969316604626388814003023288073837442694007125579525581080757374672908824528748275248719888943646588937593946879604946723555757385463677911692212720306345602446207268029806193729444440156341284002711166341586350740436327026914938765263597566553851275262265321365366567163426315401777050919105636067645013131735704793243104817303699650120358586107501135223768075281040313884322941855875276297752925472926237731732103660318453607302921899995176355982372559346977697610088485003867240506169232584039943607937710800376849862349589844146309924978835463895130432559191917394473463495003702339746605983190256121938646469555064717525106104102690656474470378298587844919534802274173648608928428329205335219185551085981454120683414435055536790767017307466613604491536192769789226463401270373177942100998246484058112489066962565329638784455593564970096356962295130332704467891825157713424377511097182882732896978108775967940388863110319748216533176057943678757070201039178805501588115399821235185537379241158844109126276067070153408696562925625452533079412332817098487213651889244685043464273543743959368683009172071453131992124325743099791055751279721143158230746178556808750501030281472627421498580720914285997245997415297705193984919547103553518033701381406860098210429317395501610075812255122201601213186249520652550992188121129073020730139391348350433742243369792947706310250107705416373712949076520918667880051680549512200273868536109818180744403066794149381629693235923320274460967409880120827379370647411566170292676014860003297943703266545688997364833582433932777138617510572806053083885217245041471024241474071086683975503912857990938479745998757317958737921402883839381517850658215869801494232955354813753473981286544083798677380546874272353970960107376723365290673579498728446871318113129255222213493337319893748388779743001771423949250194739063695262516308723572634984607950576128247042057570192519689368737705304006653357142849538972069261059283473161548836074438048757520103207965171278258907516642285430534567546347870463051909339786031690560513422821087154023004402618214086300596729653406160078275230545720858090663691906309910741794062810713793172380968097175644271509463051202330113078013675786919752125093783369772952330407777272837669527717045597366805792357241154971770778452114222000994615906614640002218643943515814475123209849009455604106947411826137075732387135612362805954112797033540995061780041799094914037098209150063834618642507115751155287723680240725569480433069948566342258458498401008725333817257553848779366977893978559620921385276867187284560861951668839547153473338284361224249182964808993081798819001346208889125747528075872014650899122238720231413476456420109925597918265630209390053893535621561568888206419364274197623775380595994323529255784366843680084206239918033981369432566680374842200806571573034955479269163099667604562530959707422400264079863462920545593670756573512437219512821742778432983993773228608484228186478081792301583867140932515185177331475230625648484732157408280260139406902607710020562888086614385554021356642724233318309019255745820162481543906981943196629700760847845222265135211501130651028966211508501724195381515467424208386925892474758579282708352379760130278794033870564824133438907193670511029296420084124191555281957055912692688643349691838206939195072592266037598652887470549951789578636524600355211838565359992696982897032338573924680883304877655086565658102522524865696296303735475031751517324794960281215989072389688321762333935366763746069671931367683178672115087132482073409333509330968719327397040955386573137414060715066982710246403850233803347489123378899293326249171324830533137249488420360805459432354275599999754820140672742469877432064759779243329480948523185300980251978479330161008245154746592536899560063445825644116417953238295954340433022626549790549807037613070187105640155542490015613676626116433858757828261805806280072063208718067670392494182203245986733219632707140629587876352381494407796886008733210783435170466084615781717322980147196098984317349787211871268268332909845866471602882407768256699703884913670236817991508331451419162138384061913406679845075485147403613767454802588811604224154559836659327598825049633687545480461028534775118976072369526258155067133028207238818304193373173718628216645960519573069050781057712972225880322077234812931489831623594845202345079752645170392938302810438667938202005974437097713293999238110721150146928762855080138271861338038380492885422773743210862049726773177316305676611888778994893199945687642803224714114449087559987549776097231241582121728228217872173028038144256958511900018643679716609204988237770663778929934995858905379067615222936534923275982837998094816554908160283235972946014861826310446046907121627919231954797044009468144876628471128236441155070672251985205116672343511188089260727220781634466690309108929112744065861061774317248731121823325500570464511751485962465107215745947821258029178431930251461462014543434438388857153892808773064555337428892234357006526386964801769364448566745930749526516252768714719895225130364648030539571212369247302824939218418607639458326781986390086033521830973568765368214752249542392478462993937864817759870733608750021899844732419641994013358856998317415656392443036532679842261300296498685021145455717994255923232356213963454052213700389742506367902374683386578094734375752370421617873242425842626126779427426004233745117327345624923242644651083384796862897625226276733199091747602613538943121714274412277585794448078021011272269119853925659849306866409188948891036821452923377143877553446805868779182331253115585710799207160736331341143292078539360573384377321185313926471806644188355088871015325398959122187803012007580538892400339863520684577235618052627950250791373564286280395681663954086870385988754425234506463598371434639437433519405359156381642430432873044730989984597820049054884226694719505062313098406360276861262709942288874869030172348689881213743611581174832306528690726470786196727448514741625809029583946391208761667816355305550514402323363632456429713726067984442623683155841443938221170358800113358701191889616696572797534847402436531834260197350028074006996717097946945771574107197382814892117058063816039340480024179081329059094937736402295746355905392705164227204153640273825647885447334455706860895296154633819759243241456312512318283848338377218978908791831400069582283661880887618710192683604513658082103942502372471178241668117421025002614376775639407930801878779509028563975903598042711692723052382387176394690233018626923665486051411780060162119710775693072041149619547888667789330910188677598861422778271436130821289707505513092074380346205523831487143095700290504233321288016920435726000335252069589760237083157109605612645281810106374511242749530427550701340429727131416992660241615341681113462310929846647913546366014565949186219751993098011169901618299846174376556564373006799082204034571132395568275426993592866381451292071509923834232578263111496522621046726524686597160480247544139124868399787526388236613045669316917008045743686174042468429285004355935647777141326579252300744204350160838078806457060834985551795706931145881868607654092224186162169974826644958337920416765714795740960945335692075606438461872062542285213610687055506511666203070402562583315960024478054575147752437054066001364687140684403705490501062179627458770301962340986252569325137417453400930822235692170349604928451956252156260900287106564860472507843959957352727182611104554208930060387005632256214395118874827807560141163887708670673694216446427400062352800097667547466072365836657941144747158773224191808761243363162438955535049230900995770113221670146237109293059421382772227244134427987796117105916456453302211955548560029527945803280981084156636162713166925760449921976889805179568816972353945217714872161512531918431820036140084443235037241528034526424052986793102682862978755597110191849685310520452129517200481024948803155377971555048291084379707297318739940431146098206763535618078824461124964622715506620942262104874202292584889283251436530455057869501510289461921815334745261568471727966089407522052988957565119546809112954093400914455469904944139613484386714978831136462173052013689245540535335106419203038882029846698309042297126562760534882933282184209526947261812999393030956710546816544388336100133897221770409710769680661061753038954036300385029197719962687136727157196687317891770321198319916689897415977230207042953534327535907776187893661396848562607482834001548484568026759480190348739517256354460986020256912260997959383160892915314296162997832117809401719991433008837093561228128917319072887604026378228284064035604796578876103256760604807028428775120906754870119661493313667948083546605155794330024322848926095967243678698751010478500001274906469509213557099093402541840864861398693830251037459493814603261670861072358597910387560848650080289248157231793148318275988903477194522179077158599961130466121024964965926948521481247731989492449026065932989634967807376044338017810591472633458746963495355109108928792475728035151800062748849539265741622296653866824160151902782668031036818753176528354155760353601532636109919149180747483922861710062204409721788081799244497085515905625205000089078791601998156018083317239729244230302424422849907785234285310428458049113927238272668644818677126843987137126402989935020057661921851402544918265685717854456209486416674654361945346923869914387449130228393315246268551129339997734015143482948309211886967714686938918161534601744726768123304170781821482503103435915564205544077010218272371587188140942398688982696651431173752749398203051065399343465077169111343419110866752176932571110719416671443980349911022403317148459288465877315222046603943936380261340547387754242223309094671231636085241652137760140348924045921664292629493217886440705541273973398518894005077613140489992107200977596075644995460969761251724534654143320467612371326945617638342772507787490860159208080823228247171257422688554627155075405008307655323038562659048922856090917032188087485268220254935980720225023761452285692413269149495358689577212811427032280516920432887879288919174191209647854993466847760731460084214889194962357923522173162152758270392451999618731797629518733437579616211939400267104180461099546160412804115353686208937265813025955420955250378079419551583849015844318702904424877220504913013837247255111950859279938415529628553489737050815554485444672291223536681127735135321804715961599598432669728927624710540451245500275375630667435551132935598769806851611951801996842846273324532114925232113759810406873507668000497328214634531127414633651408411918223907902769159821992643729941848830480045960756735070271430930218420087429503827301834127989576636369935233191002293939784897236574782457315296228325587894955099218315363572535407782058185974575349392637581252458130579255300291126649485388825094327296068837375019629531182770687780979597232386483033211306196582067992932225975931462263041161634786126220090139307008625859656435723968448499100869314235884006969702071714308344288769231411370283579021426438113530210087382133293472868109358319349671414390281500576133378873350622597641357530351297687727321061681435791150367198094237096410804521746746434842603715629487388245827002182268175389537395462313662646048464579484475637932145420110381039632111835357110783977254590912654386092884930639070739137795614191544163213998350416272600035962042971877077720618889856863900617417921046913564095013285265224995521531676597855255240063496086182593722123903668657651570785047089665207055025064376247547488766041630856601486920172208173655670321284865740933526577013229243526748407954222931562203678664550298417381640162775373762761930528772507828648907205426220927490060958431508594325050231005913100607819791135178402987017288259221838197785623446694989331436393297792693880649548863430702652162417633429712265371843727578501484421031436209810188181028939049486535025900702885404719188291119959740076424460818494719293967871809649781303056261387574372280541405113354722905228927171632199240324320266591830620211643128709252994742318950234465409953540298242854478536705152392901758557104140653444081088504868458382948959543520606565438584150586561553976921711741750346565277108432596011086770093099923994649912582026462996911422215594293095523592001291398529228779977077226751083378814702192520510058560235282093184399358316182244660955113342318060266583412560664958881361329779284059752024225460322540774678337165341707442582262964529254382220430679235010833123255843668402051060739655554474987976999835049709303773880836571078500381594018110754753738220971150837844337218716956151282123801449065468138371547216472789220855526078459298268987084653477817376258807275394355060494242031155701401480536870645508743050507282828112106932924240344416000706556239220418299005014999206610184853727701697618521944861440391081797787073913400144315626682191935572588610876317318957122995404649752025473399922899131822596650793915099021517580758186424162727604337869944633412839253507800585287557758372996859412459791555391050932859880367165698279679880729676004537443886442213412171691126835629989944547946700194060781285428553147106989967674386496177280090910235513097476197055555448697859595712404372136319332764956287203733047732193578782428219250178839222109303463451681653617905757988181788375823747611972790735762262703077226508853432582937159825620727509225169792120879105772944857486217918956542761937892039639165569804387355987733599779250981571129871341581386185325718503506209518677690650758899594391445578012403949044582594299579824398245033511132317481703218516703343875284378969001330950899288533412573475336514615672698088251035527332108869495357940968393073152584362566548741610098451742101884843154188733997392410398097918772377802621361782995560247161373374205632240820475602668354278209758191043871139131021781634147708605486838248088132291320910437725895980602022549833760642527544097444045101358291061960779917964991442760165866398461691495547250087877432022901631701867537003913647186661546273080710743963032952894472229245735379602504622007873702113973884685288246264342587092322532041554447043019182641001432796591301363883503714043786393697005556565689466786933159720090593260980272394863157486209627998026748816239969945644883870418639668391334108242112365959520362227171143189814520722428716393371124695603325402266053303475477186387656561203012609551123343036157875750463450651172431393633657544442901723505934516649062949662993497354569092801927459536930377306030262696677613705276960986358151357309116056062945185938041847968169707447932069699327994736807555783449659919355173664803191860699397474393644461773235449791066424872544122083098693712159402600392014707984835669469983298314523182201986894687996674498493624506466368219538838066266074705409382180826776598906992676715435843585542614572802047652177850177691550063374100415026353633132461636394097842958020120086439183457301093651680450888309306189549626182082188882363936694831294723388098628657907868771394805390456663577277819231829262204513366212569551623447097952697425881887445822515011184926796429806563989154367303442439182465955106663350454064909949888534334425975219081764597930071854571792281010960773339700853193441098076279291537592761066893027783127131756385015676433605350772273904791120862109012036439959361886149432509713603989354975796297364098467095745808093262392789371770778817448693084829578923598424019559163078812860928029358714576653524248072881083561093072417738832060167178821217079328574345335797562856763754990876985188037196972056979016124490404022972099285297483203455942476937612160601674415909938354372334374658943831384405721321300897565888258112678469395664340665248065367763218524790217004944338163894122542560566496893570510781134740650629022930750653580583829986068012943529042948062386580044842020739531395971594216302370954863571302765520368945381161288676349894776266943913059362132683759447162277921257397313750394821270326245688709258070538504421870927498200101011368289405181986622106094332461512645770064496900677209633599629544271879318499385405201428492605890779124802679211046222383748158724209113611656297143895758780909977012832744371482496980220214772089113063902556223821318931941754030181184114382036423538581330447025373919735385529077760811743711116982131955408192544869312185850484164249339323314611349704805085571062653861074808996331044883713269265235355853376506344880507712518052150701789818009796422726519469728009446622626997739254846574989107466600071715076470674523043917617258590336965759236001024350532857129834821526100061798132676440379126231344140579024715911080135350489879540475459555865540757005564454900130926875915592054004425383599948131824150387781005086172813625317450088414830719689953014185436302915466870632007976209523436716095773464135699996234416844423399127641520596463632725991156951415856031719678708881205042007158303414772690137437380706925133176988660353955945762904330328010730598767901598999121950594065770645468812658191471992880639735708904505907109001104818921872064130976510567396539334795187865203122204604659205021045811431978002694273225609761867920578704235695224948867786702908441634420150285999005759089447840348709347590638704887123195674804604518824388125222660862496122047558393218831603010290272623457957446319751985809629014374215475128980049736650470436866172312461582422905148590544215553210555025686087503783452256033844602543616397502250526474788116262049080179959170380623385288841828790263243753877603192112496308198580559990363154183002860059027129519979208680124601510067027423951220218543480920035709986419971604633010244928516005563327191183478209404248495080185436649005265868054527178275516181249158123589719743745930051836708796341032796904499595984363476815537699780981786002767862338998484001600581840622394001239991470954172766466158772198263342037876032720721293364026067746872856166344329202632431239840695545297074937306940805484257237543047218515633590839171167870149049763283133371243903945869885689682372314266655394449211099297762994293317658197200422533679188898760421333707120524892469162893358665796926351038181568842252748425792355714769463844929274914700921278211890358467137473331847350388686819941881110229560382977493148266196518339453943726653509713535956087537184406077853343170934325659759168124400867806157374949822271383981274992376647113468408598399227664989951754097616862931540417337537265721538387314870570733936919929588304130087106368103780443381454375312332335639503817382212730964569733116907973811645884377012374147986330398839539917047341538762018138801302764490450852143274805118347298034279749613251094208477265603770913067317233715569625338689115587029114761323792432423480840780107964553224930274045577350432762555836287383609073708593248234017047739389259303192666793605709227102205991046089523213097001498204017769027489500584529496271548100044069929910954420664125928789998229747546244730932184207376433312805150246166451242404094639649579842596476386539107304887858702466798733083788225565974511849703815996753066101745320825568555300782226185000165609421808924303174832619610426455434022239643760795602679167049704730026953966871410222866259843536992146663131096629645232186316420796704802931195293179479375315892179167709122921553277517809647996525006036754022166550218679090238639073635625574005712147440231270891924632110176330151673664081697003031320883492186823799038658557876299796086971151005660733506234499440525645267113908366975539410521028496469717479936288117971136301327076108926326076069623733472712430287590773777390887106865136232022969147600848308700791110918883045061315923369459012738260446929102811567275342553005979872014426349950684775584600699943237271042133507691499290525776787157160692237415937100976168770738578752614981992852258744592683216383674917773424239895852710552669120177467341613183274384588814125884483966265480384826895848668944773969576636963012535211030899834181284469947614218636671371935097906191064025850371505318618682372120817444118283068439574255460616986585179587999099141572559010217298215995504418298331957570032177427348128397225200088615264246448348018410472605149027986359465217351455872249712039728404936067657191596752602870765083122870445383557249747346012803373421474005033167838308676281226523527381961738137098655565561035447020698581193511347730192305695798310422703021923977546561981216508450345774162684825671010643829756382350389364542410482279606398902508012594924206536456463446554725210520056682755103028332137918394646969724971866515845817304923494812532183196155356690188020032635496008130951318519292438299225395551220141185992672781762766074160544865909344127207178173152866916078593125836090859762092108141989371285834833891956325754911143566886230236737130694369317101380323355521563556636354391721070507121915696345657387425052951716325958452623291866651117941175707147541568564495886240772516240494147244522657434564318869764608381465826781765086080449901274558521636517420342733134609478446498390201533101045974147884037823417722346168609362113674417456780898917310549936276481862848146943442936311242596822222198984423500049083605723369248174105323756062931673349172838632957901086140407023248669741467011390427939421878804341343489741796143871929292450817961410439476137638746041697447320456294189690268242868058294798901378598425557082525917651176273044954627584317294687219034027648791719722457803192135194499314206974312312932040844415152635818326171778976715440634741095516517642814915645270471676562763973705924983565942401536264920458856052100813257202843333287357016686340418062646130511473228099104824695962780801390527585138423167746633541414222779931472748639591569967137145034125067902747128180832905610981409445973115154651150832686223798862881519610081030795278595719544794796538905916947587097275973958324750137283327582937562435874931786792908515389567466983208803762104605151068117694701265540377807170310746954819304445436260696314432781116257333134507078133294684739096903422231660511961860612564262892170240082722991445128036793558921902615057085329308882792581373434666173220981049198196821225694462265413366025817406273093320928296487172271298412444817079927786379935176870861930199498616239722700492005287268676672641525867459431250635763789797966618461658618773507131377241911197444549343582561166190089314768047992039015382885359755531932604409907731971881007474079443485038942190492134250765357986791001301878330644638791210261431157096944870162060295811884369199439386655899388371402345568495374755488825076389115113525953121268036754542703516030080226009240657532769160671860925861093317683736366366487318228799286380963508220655838475856051682657581765659963490236381585443264412071126667349615649132980297513439476990043777986268891064776172796968931909963411307223870553383483601763263048255123856849704785635845513106815920093836987976364618734303693602849751264085728640426923045478377142018337249271623477490198114706287114573995110577616936860804638408430847139288763142781885362981532011953230904174990275467288818381240983972282401352997309527301208318870552919772431333159215817746329162702327835923024128471960026593559435865342167541494428302848050004957838016132449978414970813896742476778893390247146366117259247141483154033307870346779634081164573035253508271914395132142426264037597904039046571434762704072585764173507597830102282603075114385416563938033143049136961485310729119970147214479113946757355688196579404037141008248806466071542297323141980057822919449005735109768799145947454231726968985326884470229108841646475424124970515652311446558645846779591779817007040869557869102801492930178327357291209384856758240840421388489892930982352983900423147928455652176557417324429007364000581323815854452106229876175584819518472840182220948740254606722246656778934711603139535649175892098299538066330541704665474480830716417580058564004299664998056883833415236452041455190902126918295147701149022876217201775456288675397437268310190617988317361935446520765760680643609980605030893302747975614067026882827159943849032261055366257844472542988031856081718060422529355308409981589794785671104743004515816233397661904914469572202427845740965231040940898424122503520193699904838127140788764716503644948011624766128509916514871508565861410762763095019342505568211283375184193945250975892282180580999124439575265160125489360961277747941700796014492643360978015515489875903274648803112281914815496907683510405589030107601849254474451634910906835109515682715501752167758014063213291324864944531404168985018053755379291981321447984136572369753978744780747991138669188176823772875092070106511667063520644929189011310681622167495795938259809887071685382090786495805013017148006040114663315575247911868913113213662448678111264820222197183327473177720207511066077897760508587326009805712060146168367746508343246848344622586318793651268802177659063061298887655597965589112536041694248816916146949734773342576586244049871231094333632633513868981530331004031654730154692481431927735348407422721409522394814516778228092305244295742234314193366591802967654412024944407421962801268409771542596032196058123700884209232303069742092950698509553740910124003885178619049807082011382759138055093247491215756727833824250605244089652429857234310028642196432440774223829073430739078008784826817615630236059109760689585576647139578066643085205287390649295918076672984512267272121070451046166350412766884368870218954130918648861521416532331987034320137088833985585546946810040707824769110810380103815592604819890636616953298013742485482760077933230449736442493089865297861719932256625376793841336695873359516118778666458360125770569609171529100020948369573456067076998717124391863081351058621996600576424125170064444044161771732349858285529901038515656805262141129564297702354768121964006202639518030901665055798875249396635022351900461933582496473452490817690371659921100678787764630005977697978023501984193996107840200138677367199992756674304473151412616279868929132748773669459581740252894374678105020053979894239270839229092796109988338275134575650699989367913445077043142785992894313923356167135769131306330203664512835792547235443399675332294408002514856597812106836261468510224343074842585823241959494414516846405015406479659414774105920229524582829009596403572837312433330654295778950378858495996271283498669841139555271903362181695437162296461106428126928139943781059782433152106991712980269687780889179395057836329161116848052506604675992578823478999854585407277967364084093526803859074015084867733010925997158186418955802307296481072268723824235694868004756776967698352769841874520940965505458805162534805118722978809319317705986805437750008636892195167207129693407503602600502383754530792521775611096249709761554397702513514709226742630905275349927555847115040712476532321296911180711847194921833409140615589302669882916022088315838216468955987793228103654271087503675836298628593296423315280541341598414264056515026330094407899578999892117357422579662590245519040805613311207339704697528526923816681775437337582654264356097920035149900670123665049735020669450198341166478088487054952409904057587761411899702316488989451080046902449117692500338632921261624414894077168546007935709843220929266813772914713694004488740738808313939347408308787739472502571798402292028897636885708692088490034316561812714056924467482002866329981561010356944448605351336193959497194291693922906293225271389061445237333287448965321955002700529516017682574318548334216923551878928939291381817064120079972055136476693655828957982956506695373698877515467746677055371131406908724646168398978024116692528318087593469930094478655920137332058744110394611590125448139574306592187674180752186821693736116140788754925630824911639554372625622476005536898689442927406425321785430639482088484292689999588244575621102459395156276917476131665701335787898826594334026412008693139759363695630410613357744017464436289661989289677053058835301168542632267246615669480554628132137978711505733463294203967632023381072979425130560134034265173879302535203991817847029149540024508241636662173727422447876380573422806028715929312107921121477298662513860877776816521074784980926440096943685126826574617682610012116219848847106137326131037642917704476165054105286452381023070997735315361750454256388087947128412577820733622260569101881069120138071448806704711894404481119632152796224334566938770269705665265952222006690955494118315056088543802562256811616717173763988474084058091898247907882679033063125832160979871075581622283123490476345645084653305900044293234507506098945455462353990071529046788319861301240848408055113418920075310983564231571575752121747157099541987451400242346616598905535264142705906036408119549346939599236375013463391768957494541666149085686154451034151028353616349896844036821657117789086452796062498320196274059114887203153481670137693895167194431679420065847864736370949633875135652915778282167118309395741417694215610103236532836180291671206950889858267778373454515432190153349650639911343097371853226903672092175750992619757598034982790170819369893541877697367030250858992761168897018212447378769914862294393275317454214420375300578146567102074888401669616167410822197070159071153270208984916662466372989822527114237909893743329207300208002505441415588937604002031459434211685135755004527174174315296483572033774550911577817313953945271771431840282300205667099137988441595759387173018677886916452628059574763237355329362437006778034067966197787862309604262582847546228486059336040817537173052700927880569878000928866214657310248589590110847734247718107513779450118756679656472852059604569643193202813673196268755231080144992516333497013291378286043484454655627818448921299252609716882265751848800940459735384373329771979044482386715126089452690154816539653733387004082509756255342240430033347828913909332364627825633247374046619160260399107526548241074045490740450248000056710417751639595982708747065649101590239494993070762036404517135147458429929203702360800127441706109350209307623158591486718495152573633122307309838738002042693574386179734401253640391902442799774101778736945223588306914607368992842221688840475687614053931917170422522373873353598657058395694244219103572265519270021014181353205240059909332351516163268133087472236670149300133696370068588129797767220560088284475006902627571130737907658999346850370539576593462606380705468377654554573364715172094920301819610582066965742180894969866992959223299156047905326272165925306502855821408045463437234481476709141879526058333173745878417237677119752278353681265006673041857088980169299001988164953091228387489922066134050822872298440011472241433522431641880773243763261273127840604095983816834869970983185729061188469872055120862632075095521012130629922969414362354063110599199204179392355869492074978063654594018255347196765228840899486650907338280644090128932623248483533518594403959065143015304334483074010472314878683595496114539705180794654882579784305270464624845578398764813876470989749088069525461096427463538097706301994811633264396624359950510648369106623176705518706402250020401958293803522024867098112052152946857288644229758720397747216760043753181373721878683585328416288575812605030009655663911591310963557119851235003677544795653421589080707259268679424469223555136753925980802951301346709859516086572408854757886889762395409462441386113907117992623965369243583378725464667198808750741752135662327315174298688616082441185656544552927989858762984022776769490816193854370655217039552372520343792209705652758802715628794015679754418304982675289312088879946063828075999287790157132674070282453338535452423163549937149838476162062056192866153759224413856395278274418308363214123547368126881503210630704484761442706256689867207025985461397392136822848655577719423272057906408913388515416282038823550558192669393097879096875006636026643898797067379635668741014781556089821272604308112145849515001771951641894641938735773343949568752552048924184840308294046556326166664611153633442715262288690659161264509886361374337651853775902375475080240871186515072346496591630063102389525635923670720099909487791757532646634243951301357372643936334719120779101902594948587204091294729701983607787669436459180333003968504470964214589389483241353960584645798259786724506501077226943414470919608484616012994201102517473213814034399502986729892964181117302319542333651990230533196431064105901070668056240570958132156797069956657241963117717082412849144573463585318784978141247074648050181183670473285614721752373011711630371996116851664992040685909722144976252003627938689558739098526342806910898451305596768646426869140914667355229069996447576195576163073958544329764561841089984600719865791176571245926915562548924022249956877613413337740478176958361576355844421858075892341329181308426670396140121221236730666219398719204599938664201668546687734625794175295011293080280480816499697859162850786494874174166720216456417808623007717477662140656301957014740451055625782911121819143972924484019414741313855117213228534452231081053548587658268486864291669540332955489827241428303009739061700927410064505499412398543441688944124081536519514522859670415640917863475049465407684030652686808964478488061727042611958561124219982201267510431848937546091391908072831186454712033830816061981315955346903748907897701744404616344694752083984725147940985868095919913924183888115240160257297148006716558855360693637119113993253297124325426557347024402312240004590611251266662609017088249659697571463851671078924741980089050605842892895955603574609849425835849012381980680256503410672215445270600350500545679568773531107504453679171470760482643012215257268097721504006915317510742251644222750754521138414995815564257631929810164493787599539693355014542009249731818580630629473544554347043455034782805015239053426562708335164881304135645245781659733964285671640349002533264941388529798307819005746021095247854845864830339975742726673646631598358895738801870359201700499144706286382161195410449609133535359862539037528471993877146134991635263308953487046179630355020496522851504901961028305718813424259801294513500434967648441977748737308076590367199361023693007217143842873978448513578240622024170391906774184024097488599779309161184965003609215290999445686787249391432628802752562979661491975224840864330916487759427351747264180740283355458432708908690834838026740172899478140874242697440328781165557961685654072785000886728694533046010003328248889597496401714647856884841627223669792836857317132529107261401407374012289451359625527855581277079058150251816108806254394548482353983243757710824619173267183518096994625008073142320627953382226685848726719252948366406429927764683311377216574363166981505952360660999347151892868681823885777596208717995244051442994158684567321345914741611509847851015366742092842728014151763097653047703258443071184613343744201081502424907272493681033122081956630946989628900774976382424032913360265857690328894255092333763154257288125104469359497840668353033568227420477537067401521562146547876321053401217890005532628004328776214351157924192499980861379252101358938434993361639126644463546473139610263029875906651866505716763019012187215249856850865319328366935632933750629181654576216407658441560245254924737682048041464194578918393246693557776673586241150041066630108732983562844270674263330590553299904007223654275750020261123403859405198785804549311440804017907347669594773490483027685308753501880997393719579878800527433398240559622250608090668784302512875450846937895319887954647532873434166696018550082594387831160578071292387909620687100349569801884719981361579524169531117057111664056126307614507093721809235642908094935237766293952000378324754828093076402832365348270533764253986589474569977153478669921265320913667299175847130381343938611696617877418405152943488403574754157866789300481043086252801789345411323162436404615337529470210575818039934851371056033738735329700233937623842558863372980989994659253824906598275052482337323995228287597421912302423327199082720974230733729826228432344181208388595487330555168350106071534171987131688610703584530853807071562930971128814947954466535235620703816155978902826596547462774311933937821868629714268247038617997770601021324103314557452005229236656681930099822057929478320915737639843231913662577244017971748731596617098920425112128661301925573160662166094035443854187102588471197956962506233424558032390536756297754647885524405638583251599758874335638087280966735506707245367961332799888167317035105706225217131781907420939841245728910408828725273601202903503595478032076947476439774975662852387842490250452499005216288252885161362771092813165503588135439383181384415514631156302722364518583497912133154614547617512814959175459591014785275793955888738941918599539430601207720687558155832870326738492627331258184392826385530970856785690132921129348233793084093425127775333383202936029599253995759386172501016607374680643510740675994742828748392624393698777109045765781338499154954482403599913435903621654445978500790195538970352147916194603146154050804300865549885688035619966826407374309161297050302996542922589646744469466028079865879919536139785433550536652064301733990576770211029740319870706450669666856237377230377273154013322597394619723848583627540473067526167060068816444624080652420479388872911154162562086058744727407482616054970566131850976702554880070289662725225724485461893411587679845777566960895515947512815131853257556474050285280051168310531971155974457269386072446892880964481528072362042388073101158890344967149103359243064880745213666106596598980624805521364011266181709583179301553057165952969427133063292777152761876822916059915970549990291053803147473061641063129599203021051961164306835291281663721247075351399591299124990872055079986143422094669459612282559590060170436197550612850331523997282589128673605585669288529942573243747516965635410618190587936486563224804094148569251537048162292125344271586001818164592270868035585314766697450776329828894357327720762333599294563029566866648379535570661519359398965066660864808800220474833958408800750392068520946107609954990855356548615342874686667707781964971257655875693774722187209536556087982066941863857806564864470119216491864770229250074300245221622990614679300575229870019302755273672272676041823299855851883719675581515344286812897997009614965967600401883813332229818499971347318935097143849357477957231710694976953099238655208591660183830152102755875340496959398292119337656395459716397986670783826454202722465205359243945978486282586170856370052474197862193236062848222000059489003191342102379572249927150946096928790810247515813766599935553329925284173794083726694040171312669212680027957914089291089891126136268972142530939663041974330877408253814685775539831855850934493578594764925220538729074289540413894868559642089826418814179887233340595404530911251522877408605438032043306433455408921809322866619559877958231393255887327098947189141278503603031764377082697906187348528594793825042600114153297961741706002940937127835217778376283983482340957485924387621644494418800432354819842821033896410772205313191366163794228559603386405048075796674367911709646521852319566413481174245166593538381297861136250969018380651264307390946212398627507121517339422693589360948025087744768548162550795436106476427892525874194180939046904373649593061571611697865229054545803287637488329548243386992229238835230522778440917467220491999299349747326944668806609077761560994446567449546754897859589233037926895015669139227523875946348147432080883656207452496645828174912261094191355843616558655538670189907696949210009827136131928696854999560944830930563469338243355269147585582682303145457009310111092195269796003226148935745214552564790018689370861916347090209380402680085034270173707269232607805001896878091404234836294680398850908204543521218820220535362500559197879726169010003909693308380754183950579622896613783139683143920313676175658689121483195141733883405798614375704563808379009461266298612870292285027312403854125492630702265619266817090323950947477761222274967982720082294804914477912821042402405919281462082079971866449377265879633408219213719042997054920938624932130775585969678749033616408764522667064671800113429510756689663785755448823280037021589349531538090700573012329166819217031264663038727293996938378518181786839882733358970264341186501478584082691744011305780289273277594601993245588954320817962417825003804546311173915333159215490340774220078848721469839891364488803743028387852210839264268715789153575881033191320268639811870000963007260436021479417131462611517445451379102957786278099681644309646467909400094641955214568193416259465876430615531291454055496274117093494537096861611698285214791031990425467926269353102878570571598042504091477641354258805424414800686070754861225904203365820179270055853132118431025613947061940487754679427212604792441529361582322409807727992474564768493975835059519262681538248409613264333060716394545706501731753879210948277682085008408694229887295055703236504182305589615167751958401843091026262523235161625075268047062360580278476055015815792429857266859542672048866450110502459617848543077328034233127587079876472636165639429969980033860993301036795414689406503815346754772608544970793876066050625779028906912509836989528169077261324465597388335866299709123648299887108109943031000335635313147636646540057483209421159401799697456715604611731745775399845830308863023368217182483971567838571315498308191304455340338391614156140745177264733705872696560942300157387203954868897632232090437237704681494009333330048334549731493591032728979746665102010005185286258742989097059939517441446137303817870785878805285372953142261228714278583581536508607990155765822155045845847318526927112291783066672860728459877607535094505687573744154163454877720663322910040199369457216444751616721693587746353856664048732100521497271156013217382644153592083446929095243153588652479082587646717969354495106454253478704411034926922926570915417425368223775169419628580870491917972243710272622687496351767695707500987668061135180901572472945075889047014258595643495453865053750973047108053090361556291911655347515691707926901729699997960333403098926963902011525377609845321545044325778026399157600612250314642143254439003408970053016014517371174056465826504299360827075914670719729085243583418700035586292926205667754582229677857245746965244326474387988042085318361390813722906310336941343886558580821483251820159794679942738337366436887764817484550761549666990655752712534854247876473742115141194690395326702168772682678374013582337790098279965329645801010790988317361639876871004595478651983645230727032002885803261166683642032362413251730952165452930485435338851502019193000087171462883453762812477760590601566055676977584550982542729387531795270683670865497232742650986736084361714400028230046307357760114946806619415788918832183844855732347163161383427952491703066155183286503433464728718179751851717560820657443446554251233074091980027901311200424400454421292216469357751135204586476868606087504010331971978937283397994785799702697375218661884593501085946379420633947426018021167511117493790135672456521016467097565880586129739843010750380325962276018377661340642180076505369539403136500014368425904747084029162117694879554075114960093852611306161303060957533226427333855499279275517804723404671627019999138864774698929531996837477097014866408641120247771347584189679378161488495292605218480444017967255180920382518089892367442223213990270385929445021975815847825830572220349550699719851858194870573780110278955915501274971651709180819400256493017039131003147243036286872770041281435176290373585750862796453677662684024895045557327231636816531829237883430169809867728310622130449215013596280787241741007763463823118860936231480465373091187535771490272416584999047041470460344384194532100793112210882434640314008981938457975470811812712501249631198128400061511041474020067018028865723179019975401571423047108617046626927749022137376986591021386192216122431143908165814951229409759221645802431458346408142914435975467347552206955773240198854685901004237152442576674608742298616970757381705623077812368358986573796107304575427808369511452995035045357472447340247258803394462535594742888998437985509855330604463367368433739347952790821162318262435353199519519313925239939768421970879586199164813313740600783993305384951365405048597658124629039308990372830080954190658529755790286561860705547525460641068398770149172460623502587257992107434227863281295858680886781077877330524904879785166759135409674201371533920050212933306179022834049900255866541142759914957909136634527440919322096237752847632238200902919350202099619678395497794479131453896474826473620898305709530450795425129613499743344533298241408629142402501200819164841698666272102074550780536238344232542606339070184173485289948632870259126188167080373477049515784400690951357285142991846684539283118295591435388235023483136749298238264535681111021068477720829033872639926363896002117385306453659558579112968422208085778724369513490383702985103975063086188642242531576460464696693688807342297217846526257381874772357422275971221629375916191679996792461473258001465386877582948140030730233873200673055514853630030614565132970811396824007749585330312895179184043575426659709733961175000842249517040200580377892405351033763141574195383765967382886010451461535228308320348042223601015469207555659537939113039977707543077465613126797497270540222945910504732009182319336463049057758071931116486918521206597274053591366895986512406157723943801134356872500505218426591369039073434759713081685476900633914859644679209381476742119415737994900917845807360792522404117328653304910566663987185655145022455893260482813823455731077395871260873059936346120841768220191939342688807247910010760348827777638804528422763029761143313191201547007952786364922823757557994433949378023892779870488015852628145363837524788100330929489354378657440553580878790181368408509304197348487666708702077629335414126353994074758019060176414648217261389283551952123168986654850994870942272417701418438750972065485508112334818487711042987692680857339779786797355638735141540786282682019565858167295895031907380134973622689982488919842250822113787726093271517297328029194530767496748674596326110759238162271777185842260756566715433037331827709731940108541450733645298993102471032914201039016812766906895437049164089243161063746908319655489416042679448210912339075055811776030188800219000831439654835906710421155467468881844131507903421512564033678961712090493309929214575981074564022699124394769299904465877891975551473348178674075681856434179510342278845862128248379349670319374455750849904959257629450530027183566397284485666556327255041640500418564192660920781845851505971696119800818976577651463798042894813913759718883703483936895522083295097732036121276073779441010083572749737282284616741013893290417329618478992820240415337202249179847185984461341300883306127624067859461680942722275370859655382852361854186738386850201915371479768312812476412708392850195835359111472508837865310633726819745387484752560398875904648274283694296487556093149953888187771444738558704792827229915729501692402240867390597546654047211702306903424689569594356604001376041003083367143663481867048880377180840387247216749727700084061943352296130992712546725672728442543525396569650476425828023317173461551825553667585567198355295788772334266773224747969217932344357217173581586844603434022762988391445984741761146488331246788866733688213114671213241949481926571614147013944686531428709642835329701338160284106969608974668655689234819226735576897831324824772753876506797542219270321025098202119674637102803304935686805903018155509945398287865970246604686622605925011010515472679127164960845586393592930801095734085158642719186186529580739423700935080436748345990144493278717710617801115235970248895098233204658168596856761893062764858904018077404457558874114769563339608095669878483614428992412261190665459747093317649015983359846049738305284414623763726078502664723564893215068812176726249654420175055845184533393956340083548904959748776511286419932090284376053619331389084637454297241939421505952604686601428551993558687882974923783584547691032758960080416720425390048783263578653317153361146468533596496670890061683351449617341339583982867984577190237357072844406155440420288996855195919879837639920589294380812734192462154541696875395962147238105317833702974115733620216183254998520171035428435841689639391000233415805076636947085801297492165830003721729479528054244950050548452868644914061613963311662028455596702567976987597077694200251028531121177572508493237891045366031731061438173681182525801442739453374691682035528798748322914968304713209066296061445573727127146998662116193230651017162152373192549827167386507623610021618611157776750467172237640884223699300337266598216641352204806245290595054150745124435969607433505799330834809080374166696185475547897715635341223851287496312725628730926297734587572584492973377335359241608825773161315868028752242968621439505475496111644124885399830026970329493134240716800343361808238339604562113012003696456726077639905264560716954422748363846963030537740972628566733969186536890671525451060407086926123344823521723242858072849983018792665391190302664322324194991670555373337883346795976445338807897750428655740399361865021540533169734261625188190835880392364736608716517316070145820295643890649088741846415709613592535491005712738407252582319503413847392588408719660044029601096023559234127551680787882838991237185587346868682598523970964959217249356413072996433590784277263133608876570181386028539885390494757724564940787945811522372449177286453370245855693090339110288930057445112148343429874229158322868264841099667466953592249620104900185293222400761429355508611517341622166801339417771332346002542716883637002899849948681618009552398243880978058218624354199538093181627142045087606592220219564929949978145723502689526996265371591610174968017797230247082108848669717916724902288465593544536216051586995334669669863745733390931316409346868850719734366938571910845848243323129591719146252283832445189767781288997354141119048934659123032799272087255768893347984263928136664365839160426198606786809189061677316506812313356387897494974892671915453903458443022875539517803265609586623669477262944254828250400318515325449668801750473778007595141949333877335086079216556135192348178148543781289130169431481009103367572059964562815286853663642654427744545755423156795060072968755185099946161880137278975965593559039284049972551897001207251730041294127398136486106496036616299966942855338689762046539926912938461266774059882447183007904317377653307889105977543712445676844564679707408787779365147306350609563267930387735676442432990699928753945446852965893195190570494906060880049199834235082957183088226357905733535510017565884552720556666855052803371153581258419241220543078047626201432924541311175214978626387483587753606215595575711471266363151921071600645273810603939479393282002838047292537296215898440075790564947390359894308009403393403968476712573164977101970567590732315370368089807476282650111558810854990478237615552197315834313534289279790226474613822381823259899922644342698847132265838824958922245085977055935840661375523892336434825264654636982381258179397943995395380275237219094448148829330365622385011697180942608320892451829535616045136996551388242592963509395445242663100990434288750780561433863070260125178690342015435292111862418673484827110066508086281618989385560495153373337604559233311087079736844396749790430523143122667316769526778881758982131945306351871301716137185164502523867955346596139924554488508137331444702654517707608472242138960633680026519613396585291798044544075562075215413629350506486112177105254808291275515082268062369262689783279341092169940614072339949076934373946399624801832820267481600167059736519361179824631905796205898176198720274182786360986905145518261486037829434367360174509817568243212980940298219499325746896964854119950934995499740468909207224217344489493644698540741197064020421628527654942601457009199567548605504303176983352201828880772307561875887143755949230632514596668236486366125478841273146030081350203757280572571322714284796435186598336183848272562865809268816542838145583768534055523492375122144868917291241136224680783421873454302756499315809315430653791757218760499862332585304132121030238352066207936656271993904398302361884712351263722876539795237162811882635889822254249531734507697000989358173552633459200507843601348372997713518712385248115281758350708797416400981568667701847774709973274308485692070222180654780108947803101063828120359907493837649219687995198468207410844216025040121753067923474373832236837188191359364675435585377365254799076953018697242148217272042722438849320047904827252434092125459319945199229290796464871845592413739799932326528798747461617151419411017612263675743828955353509370856031962655987900465408228003780249758903124245964690620906946819937584993324351535932898813740605671169149570792433942061463009292319758918687318040972538238217772041364602300585251632900318461842058923335405785115395204279924826938283488757020910708417415253751244032028561136225742843992841632399466525798527193041575869092941646975066854266022955150140098534682786400377129490312262816788123456345498727895428627832272760803219685727176666903475743979104022776814614752888231866987149397315316374830946906530720136802063949039108987992288181228945833724734217589948221125234770677405836870931254363083742494744968677981359325013867743300941736842811849933219996245643763251708545826624336959188936627346319731131784939594333411497679788917976028230174539184465114667784763815133224956505010433005547469738165934603628052115661822945654974322151089083358619534740560336328237354265239356958243431436841654236336865959072278417692539621928465505906532465277525635154343536904436102955179315362777625795994794056509909962122223934875333130376029358474489255046613898772669554546319499336634076128482075893832684741534357299740706483178727601261097912850424842844470864338828382927023149418795247352709535322672521967605988832645731178761192724065477757819599155097270002855885909132082716359007740991415012829113077226919708548855154657477601128698555673803955821577813246752595572070807482566444985645759724126248147404534590312065373543255694713793782614851219643281270638974367021305452532175056393574681402001194260684746688145977335904996126304783742476752118310739107381873043958021328520239348745529175166053210106155259537379913417030453881829206422636462153100400235352676073307309977571262248247287085267236309099950678797918522274123144022620392473067408411004053858665706721372875779025150396780979693472950093275717908147331052749904781930352556989953323443866352760793926663880552968527337393768270255824721231826179683547744867132278821366237412454343708579567666129804319297438378534004700998874955814742747219887625746409000124835589369390550914339043860376500635766191121554651450777400510754282876299394758195402426278224701103115859980811812687276267179695973839503329865482303762438803530978981963654796588676759184414419108872840743687301191529342872387271779210248272533131519021042670366336789399979720840606180323791693649344234456486276446573612950135619314207481226581292058845050255756767904896678443375980703835956939701892151251986674420416049353115853104872814968263721647148140925580670917991439226878274157892384396814216570146116316278524381824729236477492313524607019527888907214533999972440953954689474364856156528888969576907666632488103343457675422892793322970405032299138690713619987571222750943094761551889465856659131724708989303961802184856609817141711571173975607343501158553474064900109525446462420946463028671375366824441210373263997115314080696826409767770648827476479647937413766262006568856909992104374517335878016702387967666416717133363883094982664830874587091137041178737165618142514646895230299792713138868352224476239352400336925994187642172903476018098398141006256179869877074236319205100662509123217306825174611716881342504237397051822171088738415994176475317062547857295762788676644495451867718988035936213437935326909468705633911416124651685405414072719889908651492508484446680562223696569673690906342160798164637027604747822753995053069597694740022249454626616959326782367493469757762694072375785166567711933447098715925688755940471588557971047105752218618379937021665225063248718943191735851158710981412412192846908699213555875377029622726810227240259194387394412026153164925867513603805553519401964210449192100383835384769303536765540435913690754864524749366515676592241605387301970112710079179170442452332636260358067276927625766700577145168247226518223533968507395975710141897737835001213859036631417909044080605314482483983329914200478944493387026849861168018604260353150418543369069051678477342516942249510686844121844229941249247615254440885003391666487004393224023678586030758600052420160825235809598610503245152534508185481571799814972048947233681269477092276227593507888218427988087332264657554047564887420600199300136579682130431069779247560415979176270942837524562207719082149312915157265804130417745672725271777568505607354829671953659514854474160815440603909842807191391570450246604353450905568857472404769363528259465225686348690986095575083443942058856844267906031282068279590209314962596919909778118586282503138307409679205031355698954307029532669309785505296935743713271850806758654970281130194662369805940159167503802896053739080491357188403563853123991953626405273821827476659874549753019565228908117273033560422337026502108717664702695998198302221301649672313844291412083262497010264151687031229851884157685126697450956071896404774094479627472175354672197825525452589603084478144028846078600770536372690939593349752550489583966324345681372636528026092165632143246179447960452271613567397745870478581038527448947016522742501577969719208529214684351449915266052112681410883467437671669192748266815583149735160530572517929959207793057875269265726548904538957198434860561850791082845226585922302353311767332292525806215651573456730220762824106472897280488558364503191669967506993531871729699950555324630723266109599516730649654875322700839748015939234833665437889566918966319781736766369044126957488547399145650907411856975553028799036342356250447790609134560104067838249880481506586339359505549465257900528130072312712214166775387155049206701280442801399620323377598474339314355777168516514369470126390483145088396540955026234664419658168393937646855773402831203128299219440898242622141985117511346675697343337809596975826499198287478179768565780836832725401348566870781377732354103904660576764684180359199389146425396954772988292962523072079657825202485706393920420556841395576186359998730031722316298584803964443003185656780435112879986000089898764585921212603398793705862022837362380981525397771708854443876143648318666900197218899331919810401927986288149526732387616469381856081249720788111870561471868252119520119289217199003117916807469699365205287344559533975565270428887255962527747571165211204573865382976394607035728332040317098832530702546092113060514152262141162815472164832154438043180319256700171850046987192587589435813638018413285416250069472440388837929051254630989662193013480652020024088556713154436169638686264951301921513582373176970945093088168401534802978505367072533284945633419110833722539268431433264995268566851765857566083697613957304841341995158820774784894306946846686425541556169178116936336454389140669735302021908837116099807210182182177680008756571133386490149786326585112802867872811165470487085565181465088808435451762599335896097843807107459302457021450529275878236750831980349519224055834451257242368622677350365711245539396816377571913068581623083389040636322307065230328883258330126270421660397489376743343133831818821057392100107251819027283120778855754799091923377406709556232177423824088014537716590289902983854554731281790849893426565224843736036473296233154319761373097367293740779103587942394698689735938291264596185229516303491308858032815007519547445737688700785418470673342268708536801284785206451072822871910820171767607486677197159203908434414525299433291143332047067856437218270424276160374494191606077870232601699886534460354672358880635564575298430990240922237476147514946917778371509378175471581302510143474394095626461443988520832687803296851029467132234611037079584558812505628591246836297957204032423938960955603818416535520986589808030244770307315562199740701889384539456492482220256094574607249423146393987570847396775441203772499311020133332647883732289140993622752890040877818406473834438419709065315440121046629366998136085658848920163454470723403544165524681007873253101543790999289379786995767301169451800651183072379787817361793981427732503092166706189430129134180108638491801741567427839698671525537453830956177726542406652813038189460657403144697688767534922974091695437445836234050746521096343894203112468643334767773010912224006982140571195481551995935562412217329006642244579467539642910335856915741501913465620646290193442701648793831647822503971361236388463611095735223459377510525114603060332362714468273239339759804027259358363284866391835835938104574317851300038352750962537066086615949655863729508638197814466129870199802511295802338088272696275789521983671541446065697377069268905396909559296634876862203936162464284218715656118301896145323552605279934458779655370980847749110884771269862323077205328914713781588269927947300476262034125889667352879587850540013849704722194097288944650719994025300830339790968813587919907876369934471719799648134836902343989412761285066632043776313753340441402007155804185096402957611982272799718512675296079852498743340330694476604621693257986001024413039016729883632178338550273803413582466682857923645435485784193545019699052181996543321197522706969518678071896099314402746688540291437859126473236750522213907175744765726174344497243068191007542200600717873044375033952784846593495058019354781091144918053531883781395038232865364241887008468843493689585497632736226890808930737587992589800645237884177334168101960574239808425142939884457316876424243195374538925780578919136299521371793997203644929793579717441273713057225752043951205946251705798449157599702715587742343238623031744196109303756850561556233537035959389142113851789941123526367625634329507254043804229116884553446699074032728598520967009428265129113940867558559661845254387679237569295918583340746747872716427904024176763787384942998659141328824868174657868750733213175676841036482619565491556327488516961290274524877655854788142799845451865057557001224937800236099195591236186152319120437126373164061409194013292651248637712739392544514643677708855755936461650311994506600663424660123476134999586940560670549371614871467421942385239754448023626837193020697768668305334845145846652941117008102852130917700428121702558941289578653055701959505322663500322940442288867905054629508247154870191767970730795832607027706793739828081843226618758563178287849223707553317408847760129911406661382768650363538297544818444561257508780955923544070620825074333179191323333985435353235003785443034088929379768635269139476565879203858566486339451506269117480082598205673870599621752936561575385539421120638895674672170132086761317941119350176515935124560188471973028396395141424777766202279302725494026915182561273053761654711966863087599337812084920681360453793319195475873613601808851712750895435226620157320908577839538275788523666363820657204811880245092936635344851754705108176541153703911027765721679525091181019673507433194098197589741774495542786158351272317408983907944054264702485163613825913467340747795594136840486653791313102421311387210346535257538497263941976724173057320655201192234758102909225908405055528216892361677480552564926069605725052612688586718564159848620283141664136686549531750286247910747152762641054358674661682671247107389327728546774020299346693688666996463982419378606433152778998299838859131337085413348865555893294369565156473169999497186431100335015943997679333128654349094284088720614782334294880244323967124875906351872626271710436215990229149721180478839652585203720124405161057219628481696098621966651227767057929366952132767233580222329745494647327648546184326797963315242043687530698876373568270854988118673407154613085173525292042035962740395701400713111122680046998379556840544186989552692014000820341194205548101489598223020138049812131702406537118183236506377043356296578732970913535439989769132968732121002278537848092946880618347174147041426347652249391573612841035974670700382668446943063456790254156051918266928202965016980714783552145767737766902555634339124467806133148909269680627801496262272133129697932155397530604865996773726568325442916780631854760186646567139184172418607379981097049005883400728378794894784605260216012696711063176245450518549632161954721161045954120793388340012380600569229728302694231182089855727776940018712941689196436039161264858132095981741292374234974410718324470050432184183830023465926525654508042674234381148007345283887095385516529927041224852579115754878909805648331166639565117213782112262623584265981676620192327908209964846704943032300556514419978749419356233831678951606759867759366197755805549606944080201399164478498659654836331612837671459091886201829739382324770258156376919946742611054569571499019424059142500101059264864742647605597693646075178093528627395169028325213845739873183341573861053271988550495474154666078208548804095752208013758879792318798352592402219985706606563226819100126500011485189112618900665614590668459486223897274856034327671356553938433511176514569123436637907143603955091722983921256916125487092829843402231975204095076635624216864498063441210128071606106515103548114131490916106438379268693572521779474069710420716849397243365853541305832132260422720013740440840678850405540996768739236506473962551005059824401437691255180141798275844748004178660530321780034741650181281120044489076703578183250356117942184367885724383932381490985577124870352492898425980248694220879162196235191686314310871348509873860994884376290185997296120734613026349742855882536534524545897781416565570033680091514149296836018564691123266079244676930143021337808484296282533928052605873940045833613314185401130962761015793073435701368472605946334235975858550174180078332439591932026745503849282760791064193431389616294810381637724852443343425774203213010608264938962465809963033062088777315501632769248417024256441715608049727198317308922572919871772338092484869081129981487096613038531933674507060600188067904471112056280461857024762627604230102293468363752090273285030004283735440445448547905484492572531796861609249404105758670704375127368736451954415328074397699930043401920023225279954289465861417481365071079733452486522795330533734332477067924543545665388007961329141458332760745081667017581223915240174490551295314521765897508480228591460867722450349801072930410667793009934104459392373091526546406319869636909222853430350794234825158906127765015426336720704057088123900663135050630466228070320983793552488918844841794074948356584664164007762856957501124462952967659619985801770386179372435045532403764626968885359465332444942977644627632710574663407287573345496402141777909226591365221243835455452119028094734028000325179149842996011794128221105967053185828164204773170800871754908192728004274280729797087186750714819110010069117692989103635946997752987468774387810970863124884648786243750794858074957358173307665740374657483634900851145439308710956823077162049443795953499722786164392480678035176683794964810290381792862829808843858608355222391641738977510684709163982102709646648228319979594307749604594045203824644873794422685320432175374968141759649886503576128672001886106814914996373399402028502202333507914890074318266951096039779643333154696536642207002655598338527145455786109053691830948181022554914372826827647681520334540984396117199663028772772073849978216145880597702862659266887276075574701972754794576948217400153034411149798773042237537584782168482316461517578866426674756082208302704090302421010171442602526865237207813617350728842894382008424834690114459749450991948915048307871010936922098045598329374620934134087188945876339445005837662389060562251458954282140550726654470602103156049695560122726381452804862428644338127573598374107562975615339512463115910788939307682796303945133180856025960159931460380289993293510072375447232263111776871101328928512369492148079765909202900232033663875230471661606261408899837363891853891126556724009388636874102803350997339263811687703024846969125488266623641839147006600458199375897338174440187556064161959244756611294062147146191974107306411709859389849157342926328642770262627257992439579247336974629759417355172176895624690039129467009164508668584373029351667646930796764213964490145438684869209270391865499721185086463656103522131385391481719296257980311783289268830572047059817031463753809482825239510007714220877391263113044775291728912716711020053106056672816173789729290091476199469948266218467751865368121261941720948702483731782823030156071663360797868381138846392858763953901795267562390998733884279417405439827184517421973044202863383587023345265872021550101627632976516293644837612632358822381571881164752895197662618165602197155816367928030623180272346549080153863803044376217034674028320109717021256908941527516628901619091437879544838651203865118964977551136164882083770499826690131460299336309680726000272742005861320926094103745299712751026726690584879718030969216780714940516980468238074071720970055527174456112368690960615869927269693707843230122622011216386467687773043223894551042542239780380313665750831703741080935488943280891359523672910193272827714906070389150892369135353610973594878391738699529548074339694224249925851687312674160828778449492291869984105156275883851127071177606416280074564857948889652842103318837157774118433647168350502174857996161308015282388617435428359019266372836295803211410462591657003486676623629018636972675176262564987363188400882948505584754738345152623495009064170558863766606103997909702435585586467590058621767358018166909467883278154438022105086035892247449674084334855417158361011528143088856763375714160117334381567169175344372107902847820965105872327748205770396249523717687667620741611262862333538922932888620782700400605613585984615033216376864008684006167011831387648949037311864800301482803105149990301966408156591329656158567250555861593335149621999924393805836811149145408614579674171169634313136459299055267175440329716283874210057766744473531359897039638398393345039579649835500260771673424605733148614195999640570238395722729841596895374113510043265359651177905878006066465434234602514047845272945879077890840743560862323374089461967263104834503913260302007523409566203821939968373257636205689810502747634749698562809310929936436872960042945632968952455320529170183424893447876082143661952170493002972150301870963863330904011009560998555197065378968741339394335427348804507156952308069468934638553487736196740086795890332168395704497177837889743307373175249607180242455787323507739804857730669938182864200154369415220900318215891719156895238867311186116496602032473831219719475684502330032275360835501427321452688877399066293112617868890581212420314562315841031600772220872605881754712458281951580981047386086606631411229863441444486700128807613481591434583493677925075913275024355932731222328639642185422775004194662101879207994171287018089354691286011288759200461839334492061369099102525494035280462752964054756936281131352419037537837680284271086306362626541013921598396479300949189587079271762380245771802654547561229333657056298956331285331130382490917693992564144959993275944680422697115660395539838644040457413993886519970434972662817370412254786010889872267213591830369157324213182404039788114251075242445085831339992034822016324510314811085760235150235814870336548045712221911719399506009978681349943185976816717436758080958347849366214705219154523709238069361988333605070118747364573627105424311431182190734762650442987653906871776076908483343997068968142977386525738207283788592242000783887529417293348083759554488129320033398413184883864174519692050626258744866456628207667894681643225494925294778937727556458867960247301516682244571445376883526004077029542665462782358512946070496610254476904782663293433169340245602629893452747839276555260499048419656212521117418753763271948975965313199678574626429288879457760934539375769011654508581459889195028717122763335153572366487923982004664097529249545159140527341437012120586207715350336400051668401320673427465876671970347898376323981929051375986766422782964300953960976419850110467982538463510996490012603416958929883152990605973320523325410747405297958863479589604163395663638213330773082056985578500899662905202446998720066053799930202767834049782581548167539184180622867070471569942790348715442668752147844506129077182722812119738494132179206963292830042007824283196212009058580743396711076829181645947146357351678282621096532740531243483855722679347457020826358882631201938069534242121654747995169726872405965626979301763526564363134829669109543444821793290847941306970899836343702267556536282130467642481047110791601646042235961130664295431229738939884992615041866902417183788739042830017836700813036221614167933184642194156648330150209784550962798225223515994417493589954721422289902469114510356516431669884576710062483072514470296637099333242792271413761841161009702952173370799695942352021843930627946900604090392937075935214708165354096105561385918311224099370114745247689109135006709258388482577684466199688194101519154068240499794602651712411573693842322952796197777601890916319866048241398440361881160984257424306225313590943711728893319167955532525424395127149189646097439405443682672365815435081228693776069483204275068785612628827791846741631113775776409440516433436926885686631881053484120056834200936132696548443216704102165213168408143543786676898888400436068151455948150875828525806684965110997743628086146610088901247106912511146458728658818970016577287523916888136773013199346001075859955306991435585225463302432510942576716867040133969250350937514129251221874429417582767829941016315120607307466929088891696964670414788897891021057102506198460260629799888326731419550868017298218279756125819878885034735765643271776137358525813595095185151036959756786796176189574893925711482956856204084553568191418187052256060136662212479964951464773901005304534074979744670666001839552545860566632029404585812802348872684649414668775937639760325258171192264040616594026402421388288745376239453370092159223216803379405887860684475010994712092504309870742982842847995896348452532392572412219570219134412566219988517781731445309675809427243101561730312596095315790663328666637209441601200729038464724644317055669955499485527969410792605602754843259223887277472649491970356548108534445066658925040949074680512129773315066355644698254790131492084872788058437304896198566081871120663578694016530613267826764364508525346939875399324806663840009617930322806487348114942204404306965005085370274597984678036326327090880022908389014823343516583377378132133968247190259806166190486165037249505753083742429870118580467979777449379688291059988869670245615441292125086948579155650212409613886159535128777828492669734814929913800844385073357926064374713129675650746274357370109792513721525411576524108762454691519085140697741520580069025996825043164229704271495277910169471581022028678098975881555014421759530668901757989548642539616245973893073864309786654972480697638102798528487444652596200480086594285464682964331482677553622261180800830832128226117436441679841292992804451924991369420948488844297395669085735987750448503151272913496471984737423758451128147169358213728867030065922880159293956661085908223529215090547009036874066734968500537265584254179945197088300202401337217083584292919062274880428588660305021033681102053257450668940517164410750324036016101599495493227195046442215141728210394983764551815067427529856478416210198230017353428454809054774938506247000582639414447146315839962150615900868961293762119036181615993044343830152169454511642119610534586549733356522807265333365214652442609177584884068574614786673769073447319736490147155353696946383347691403730407218165969683266413199449662122069812143927915796433147064494288449884503250042115481939331175427616940128226174335912967388785476197629723371290614259788743304332826832892687430487731839292084193189242267487071496004611118298089752830135039163960820209374601621881347867498702148645678335785733639711320491669288978482193035489044973062478867795077185352217660839991748899081997394877493012411660313517484688442369472090549783619722208196862503869833699523619086649675705397895420928159699679592488191630877992980926469913714109718212845968234098578643919227640087056180466922671008367855738448984589834715253503492234512380242893547528938847330386854431223943795985026000091108355896969503923649728033916330870288580348348138269384978419077169175019558226817046833568672844822445388913656834943265547986708169296293410250772492614843325233733253674217703717969659533282108169901970339117076609355622860297881793685542991122885584637087388849946185240601598397467089117170309445468519021796937890726839038482643868004749300417620909558698589146814127598228662566898461933651849576328537340896218065044188272796314833996509254150465180925379733977422508652168070416777760993460732528704025396652662050178179373255475608667603009023739670776724487897088315698197950482559316372518643091668027071149506690520441789308300751160530586496629597699959005627722930054755258148500516172285991512640180952303689105078247482822138225681356860319824289074235408016583448060762659128544817506102959108760901662719653775506011834857338652648676430195123945655761282457472938659146809398410984754127267828364750893504077164246209842806616887732196251867824469576464281140295248957056201815233178599910406927736563506583706082473946798322626555168488195457957245554463784786699966390626945404497564764679898994288226431424491185489854051028655761852138021772589224776690904304572021659407823044986967411774066379991280593565801212520321047550355121358030701807048898589847497153755151180332336230841613786931246616260181062022430593126631759039280619936254472858609028471016789473231642603412730316869844364823787327067150097884834434310999501498687510398182237781575878957389446307219426905293967573336019425753481396787498808744547427861391531474104916707286170748354007580543320569169886958332921523640408106216832684285174142476174117111829533373356392887060490970462165905243247460694860335318701048304571083219897070729518324225342065056437349471960205735347924292391687287993551428383536403496692415842613931874808331385837262841186793918267685314743776027432080772828133691572856439215318708434702893497336205672823918155158988194691754429989330332062381795632959541962347300926364481813667823104478151287905990958695060430457207923400851279153669387100679144578386554181428806583988005045665260824607454988914511074941793816499566476603019343873463980314957077587474017260286510161259492239702868985999053372655104868381498056936498856906540725069776074323064911544595057519135064825531068612428917315215103694832247579586881610244961149005054986734381258678792309741522242634617107718400625197217173439245739082410904324892126964418551946384755450353769559033685162783419627564295786995733677292064115199523760736504663339595376944592571265947755757789934458524159942339640196327555937770086751392727843993041389853137777748512943528429586866365173389364640047559667765214326204605619989069371867873905526268630473738254674575832303501038243954756302310151282983061800314940118829323016265796149577651551035910472209638080551819979297828716565273742992746712857810057639829072612188942272739240144701574469194961793497550472229075144298678722849368833751488912270433604376822746052989687525181393387265751749683803320620304520852488488892576510483483468896031718515277483942694542081891182718145504523416466494740659709172223805538745707029033341915631430234914758841515077466558934417226320648204356309239239530566020349830405560345611889821602077502124777030962658743127748247378710186880628269931225984607845464139923138565000027176085625410617110974334398902573129086409592735552080404865960011857988437753713118804569805005414933027855363637647027600995653260689398610573893788800150729810295163791720105888830010858837755229268922729174959084344591652699540938186854413006575073186709592834922108394507239893963872904191305270549316236868966519406131687233194040680909278507314915920162399417562970457437777906804871493045972248401092289420548318049589205581092632122960307074431254809471116722877409296179813055942138319435636597396815872233243068479883317334658397133600778206554137484045239559641365137457338334213464569569500856676995009283947672537230185522263244104203216530494269502426290209443968193105086030835576825520258915824346021054228713072365418906522509169464832979587407442997238741672500820890410775751317254150935664933722314405288289282116737514747279763583833257782974424250466541182186122831912872035815164632566548807744996852416403382199454093906675568731906167059123532376802993134762513693566309228834331144740672706380829048863239645960171903114890150233402853440260655249141018777396959726268131250057313357047422775361876214413783096934335077078547816078208087314323741653581074197629292215431378937669602302558747189145767123441743913071205111970322047022137835394159378867230934301787806746713778326081381655992420910681686117216691090794936527696781366149305248000452380544217473745436056562368287990865885664836049118092218362889573402619924698071529254823750509069939105733061696431801359651063731737966596739750092215190303237400506046459110759260709275866027799769578530712741270172361491776103963783153840079037539099296389844856671227134391220572002948601074983704546706786178667030134821139183805307006006509515420251342851439887099374892656353871392816240334104370116518158640160047603412238169783561970686185135992033527648940672531052636976507347920121782898086291809943238084077829972832892219251307209724439465652405431813947111711659344292699221022715587685187534310337119538710655055465443590803450607302485154459548175491504547741677232228978977576873053232557265979597494135874606331930531544049596076894830351785357705885739022166222778701758835465293614855705894480528713403655699887740365196492379765683614401408057727800122203021737700395955231319011273038181773109454518118820620344971108569017225712945970074923587304595180090721803488298438036774372857544905329217930891436195864931122373078233924900262917353000845988442331688841348005549181887663394552445857492633728401882071510721009446804311723508816876094022796757280905573534841418535612279551859597730954604586814211118804650220004440320250671188270534240366257576816066310297305243681943050609011581717164119129826722001363096005384290229023309528749130086290824927760652372093322233883843222468195078403446373067377308999053465601196682268223719704279429764537872380271175400847563848494289518097880848658606170402483454696914818216921049266021684720729310437941178742817399079107737890653592631810133437764128313491571064097940244041877167615547763624749074187940573050989517863328878333105459961546026560682498212379670446022899131203390007417492478912403695506425208581895162221120420827404205765300758990922662537091499878115848172165804731654116004060196367570411814793136449705545132421898005857406856105178857315900222699301240210243918046068455435309780636504573648414459517795150305975008562465315048738044645681856605358541625195869085125567428035275183910539052189461960755725360209359487159454669570119657677783906339356914339553079061789671000231770664861861527897759225473149648244768137445608454612395071719556398195013992594885827298546252597304435629326756501168595078166782618033180905489085581189753294011857509054208167377858554367413143396149392174740853053549832521932372601195063929135207197735846389869814637916018089737320367300716370382108155076375096215979710195525920642540206415482298626107562754547420185766983174625344042023994445745747592419861937603740641443241856046053158065477367362005101016575272886718704960725605185469747973968002261896736681171291975222586125904434685540590508672279810047651295754409206069350110805780009852175691627854030748124756057648155206966312399513550255615986554376338407894098418315032931561083660479167516603612288577671122273991279656854511046982820310572228381616036187264568036373852566779193563081415943657702111872387588374218584685279815596186623641912295757845696778181317966107665628209963211956780506390024135181875822565011150624846900422065095010874595020005200900147961053709909100488192014156328157828116634098338472208073709259682481106810687137102203156483338918144068161028667692177184202362616083342355674578460032393709908643900887459920855053617865530691036000582776838116490234934585680652681451175342439250643998959817572159901532853178099149796327175592025597957998822580811713374683402856251514383345296863292248610114066300666918376328716640503320039574917074640965883702689904731385764843252008333061818386105416625343433808894159889690178671828413775848498560679880405886946139869236583156198080171550775879099962549540511779257433829348084971094089303174722604556920667104343917399547704447197824510389228898619664624124090711794178836071234808332617118115552488163288387414863027315218987564356897219822356667956813799955282268744972670321827236711095049377129714067950122229753094555128623945776913818003128655036757489921262032650539047371101995738816324863394910551599276958596072508875161027951984801771091167961636045526775131385907003937403190978939934688993835238921014829289956591857423850545922386023391379143518962104634062023247149064897851486900499450424844689297755772263376460826908040123300155657404754018534064794703414920717520593463972407107956246666440535330036523309099104028245752587562176666844852785125734892370231037282474309237475862472892575235692992243426839990483801192459101749955401032520694167293535317681780635146894124739251049834265107960965175846624016524668308651779619680786055016145978057762455313730104420132495352339630407856779041595614479013954278536936094645192882273288691595952543043916271345817040596288044935225080987475786775812496592264154828253347565134726702235317769843016978276172561930231929447123995469910802093353943308646055163335430127927351137077760754243642899096972921208659664186873344120415421764542802265082803938113395720702302879795709123868780702447032200983203688350889370120129360267864863097652159301830079877739756640322703031813978580159187528508320122863650115467989672773618503863377912816242902100101050964936004894527841054538710312336650094293758338061049695520801855491529833641288051075897270865114470865553697260162223365643628587462968668764252260725602488658738119272837286592298917544542561169565496257641601138502212105604905459342744455328627319116911767086326887320704198291648304402305085536990226892120085818875940037856023812678913657989368896796871547822179899098566883379199977477520613073663659098168769893947512199250686571137924725302099370033235457910746912739845972842779844659838269685835970894898858924505233312118885467475208554447905301417563880219982086546664429071620490998311963608070763747722450086714779399927323878113279188673426978772019617255043125805377861046966784246286805280235668342640595868980136385592042048337091736261641376533028198309172081969259818917805642370054976913291057207034028192438854913057057569795675735034432753984234986304227669522856145893284970124902096360819061758700028158606372545445903501813072480459087833546469258751697036362377027233962602512129745869327599367171754410226832765134443352764218413990089297515548685064524814043697989536829254704610749826575426248705402157780431642114597879422781564938424897802594534851524081996347389173685658831972257745377824197466124844435263825380364735035311078820481299918680142323780637230857365929019490019417161041742922725240393537346254945348956639690838219918081335182791693310391110066510845289307050775174071105392239640610363812777498003222409958173474447499817129973032832930819948725179005785540814187658131097012411983331415876234333088950739679262999554864159200298216286997470373031680180594508280183730252686185654665196114526885571447198167616613167992780174823787910135432202009953112136336740970026874364194585689945881555926181164429132627735439729588075276589099313155946694690692967245204969645132904499085295170239044994236537530525981126462425086582377905362351646639189130667288592407082785143834241460964831822778875007085249177186097046083315238346286583299579469583781649532872497129108868010836028828614055993042722975406450715831727440910140003492232916772218828171440999687492774612578180886384580604176930290269471199366026614036070590144426719295619855948536667743426589095728494461866838857551232058068792275983358424835480179737675870560997085272731896429889821294691809456416528104684625785005697236297957868184188644859510745749165448400219437503359963678818240003160893117350476462771322895902087204775964751297156450674772699409619993121401199025252136960546750831754882310311779364348166176372835853095432572236760729548260410353372771478312987951873976346084344574511807359147689741396843994378397827169907042224582367754695308758669916797627840125905818455434461576775024691468420843760576204134936934375012199323223723037398167462744378277985703681637995318789713905223117908715821037862678990915715412797687074028186915986087805759817000255261067993427544816501319825154524599128506051273988220759416190991866448166246446360621889692172971864209908368209725315546105708376515156330507208493967112797952084188282104231201920644277184772063924725692808464160081664451586208954080696897396304455920487239445168633537257623442221400129790030857203900553937787281047860622181170146379610538073048803775390944517462365695220959511383370990383092499946087634044916065664084928959931207679854601625352756116785270125365145035083415130899041716070255289759882481587356330212188938366733508748048674628662064659092468290225661504899818682791845653573536647557377056245736296354437512373085405176500086865352969842341212024948337673905787002775806836532840066760018294630934884014284530785534352716016607830295493390303766586955974534849065345603745005954999102044566045423416531611999617974266049325669919168588028439726444996720462040033716600912255858081188669098056336622197319026421262792413042120009588584788391367135417935656759458776170660826107249038009508025104175290848742936332011531881058281023302632610397072390431461863266674340806688393691830713356419105375203530563271358453576823990660840522736625838348695159014001397864593608981487881551542568948434519625542272034806898720479686241650224611927838764312997050732919564156254172377425682221469618230472080975476634456713551668193863142478669229769731862520968150301941700431173280595454393893758947963070580979944713467751978885633130084380128691217763627652038023836105441000206200363238229795006708318050245883119676852831083691810274764771370709943582688835699210676745090110479933588949998550234842221487223841553031573087259282123850215665604587902517255777828029122441787530365108687876872781814508365422253716258845680001887201726806262867730900000366459604982360344512918631980650992069344120100761911906141070427006440870639138180398516929039018534780254191532739963053114237100942151723314642613690649875567479582530534806707755181158482752423287751213709191920852054626870091907116652747478347957057192234916161819694471511199525193576296808401269763754601058517957063453495284278973915745045086913981709232047288075060612130232051404281067744246600502599968699357599476156247899215259744915661712205146284720825228845909056246491837355263691250913680221104914922451086814402868124194388112914061408864483882601436615702242153069159128298510063214386771808896053896643839897329590113428618930248431819547122980771396004857366567966941901761164354705548579878085901797700546705744460911235160188581833126025839257768418210858839868816451221144661771944240409138832619463674182188070853698170570274141842771080870419380243786448214432865408860950025914048628422832051969609322796235362821803595207774213357320141822361519019285191414422880507993317202950244269179169560848998537933217923276072565613674597591065331205691761193039384024730299079917812855485349317835155381731571209268259599430723589494296797908690043847571426914761789227717060799993336854890485676091777881029965601417811016052013654718794915514552788685355034760623394308669192332651750898060750033689350783570338038850528329207934197900685352093616190429414164747683058401940983623390412701769478415746548615502189340104168311360244949618265422602565674133400591888732748677581797273618402768663532726008935797267504672037995369291791313807445973825092163521976517972193022909505614948792784517298264104232843337943484329077596548953253753615208422131525340838061694396810473031307162631449764961236755251833848470656158851255220564753633729223190848962569681250293380450981689317013439401596334658499098942858272361629964212584386292894678623841791986171785120741242182677143485743674529909086716413961413597868050622155413437832455204542889027057005274998477149165933520998216192753533664922152364253092132719020000003322318742869389690099117431316593698189978092291392595214916326280228172806062655634276354390876349424180339019912363784027456549032213870729400910976359449138000837777594492020573199865067123953415901809333307068143990069463657273709521246748270843843942065212960014096309537466978885486317492412464091969292494143519686810972537241111764416997826860137119009894774501973347486967036171811343443588172772425436228859811728064824394342922414312143298644783703264048560545600673188208416534494566622446447423424390796330539429445957689322777727434447710246897461548989368560322291977811616582534821018264026901541291777465859903806002530250495299115325065551892560007537874270711676300860270742373515239737495002546051387830922653353744458888233932921184281836098117467406324816877803386684240084022476517393604047782909681175077914416321399178896815908155778398559784155634726200072701666762242107265547955065248615889854197074932891651574316409693186585335981523921507665350980389449247495264817355821933880683406384847216698083078708062622611053416237068195692582715374131058190716715328722899938174579683848138347833821142925310505574421840224166796889045725410998471722041438228259462041761694530709805442132462452838707627303088121760099940327555071324311280813418931009202254380656269319653728954198980252036758015294043698780787763779581068662150058657034911092196972621038402504181230840476599121936765306094230885703089331395608874859358892999991204003177662500668859600208351080974875771867221556725448369338758410705212948935250849233254351097082243363336606862530176153722797016342398611190715882445203809964826937089363551974059099284561139774420901090316470154035148882355019331332446705781563149188313660854623583589094086397284701204119031858686436798343855539462285660327388630718049270224110433058995755968706690634234337412755272214345944081862421074667122810701398593974098930047127050301174445468691050292403181698340681605239046370241922159262497484060552246181403230940430117573083924158955944008233392080987836525182242805802639750703036409157284017641727687327230011034948378185480580864595089749720434834377347352842791899478016892432340257646005548827099350213509212608274478102991166489274737711797066208936944796234152482455239044678981014365695842780538594399767715303530437285838764066224210890201282203648411118369177214911330794987510094500576886732601627567738164581765418372352978404285403833369738794086880268781372222091072595165951421390595267911953383393797210676366592235481344901904999428435128439508631018076991494658147555327080124089432945372502288124447162153862437113075655552630461673904626025957390699062991904605313372343403825359395960834916995540091515735638795214418332634904863939842477974115203472092126497667333762891065785587636364104905202734267117056723450239418486014099455360279429762691925854478022921017064344235301796444350655102242117791116722414413541158503670053187616243974844112557799620356075699353932079093806641780753913652985635210431223858067128168012907826037416139544647150024386366133287152030926726836775246063760304551395738688699604073266011104800650215116012638151590828880795452237090911367400088449899988973193126264123976686047982029015086834643941177574928829304552296208468586514962036941779856223374256418543584522963904567691454468202447293951622890090765759081556708231416380776115757755872097459648689887257130798440596158875135265292336294492465062065881925708042086273054084737567018718041440869451651077679697198057178447226780637933251759502369912954439869805860062599789293517431434744679627854033412001952788277948072347286207602841439851770732464068095146149877741828815821709169519224146968760192876600571443073352175159216787184798636420556255865433324601281483519772162184442485296596713075341362620171121628376615332548705984772145368065711954387297262724562161975690298652781447726578124795243910741811884330864683043108404492478622967188363625676360523897008901881929534203355762544773341593861533189312134293955186715549495972287712774977870305528912938656796344905948426302548793423441161077456676522487481443648776256204754360190098393654354322432340981000920430694292445377463717663898049428567179562689558227785501836173254217209515519012069030897693822912732692406913531024719337958213861308412560460756347804477181665030484805499194285939998360011154669831612013834653828556853327788062381042345500995915783794717811747618496306510429239704294477917366213398182766745457782090190763626891326486032777681269003267746028878624794093608956599803789991521607041225499119890372824402079238720858718564939270802689394401561866077630997415318897157209538893248943700751301772599551711199134786403939785485610279856884897482038401139700396722521031322381677811305031465558848193323252036610148047027779244210101397115426071023524254576211632125024187970412595874289766785775740395177183861954141320919841114828430231848458857566432501224105739747008203984169911926261332310009635584361979996017919266233407470079062186735681027908675682404850118169958916250893967472371024421938496002339204066229003040612944433889975535441808601460168902450127852362967925528268630180817266534271766278968961799286975970803214230707260782702851804851529461696959284445516821949167937367651236628026825249982845979294052983568023023240605792061936381649138765125123811191452254453507539235906080081950315597484036858249385851138145417474003399902074625781804800293452319691792812413023438676443280289442321049389401155062274775371511077301481246563083418394487503162206924289370706832447612167244670487049464746851245488094356794943487991586423171954017820258819140236949629494698198535574928246025092056720178862319310241937187090974848821476723370067460020250313780084611313045570070296637699803081992770019773259596726491893819055270008930172215933944399844570963705936969509199986991913639615666559868198132258374280130380806809087603521729923005418154729204905538283346898485268548831037352615732628840572831879933932963615879149122049250854685167017538511568120105810242379723634388097069794737981928551660538342218569787473999211866888966520300508735253565362846744564728862156533162497284586096578819947327729728917204171120117083719199987216766798721824967731373712104230560446556700955943364252591941638260897281811467103937158064556695370927077858997727149869318687585330041974014140973090235629110555418933604178088700322020956906939974752012955700034228366850311765198837206716837006001047568828128565425602497222811542409180953377390339291328601988790803717267832508385243056672492746212226934441583702146945430556110469149574824890797509654172549259435528586700921874921532848838150105897490161981691951147778208400026722814166143167294487572518171526712988572019270109167361904992399013162269746076362839109389190301955077270441298476961998754756915467740778754261107783254537814489954708791154750696714202180117756088561433126838694196067083912096487232771132207951425857243363625122196458688828542109165338282886814951246254777113012796018305026406226661826046767864660292389758157087954486045284156114704245184119756923495063301016686685620918751341901074813780306535000405774754464782334839703797533526460519565217026465507448009832484861834463451423165824285658991595811286080161084307701174713818990305751573485251614997800175989679958730387841384826993347089316289937508386825052799423050761508171222959009614795089881698009620852112628429246488998450408273630036073361831555804227231689827952487780935729136149098270329058284969080626981507822383603217925922833441804538420939302861086669218980117118137675522852374897043903097354191112061887882361021977540213759643855989276755359420011814311551253132673777022601374813282802606888272234991597979008941723930253852571899100107060152773881734944902886505824186869191855845407732313827749090334401262948135155087279566780372066627852069661715575559670728263738084286103845983542605784902568876116525664614041585907514830372600756609507014853828888234665091229504819119800296060071336340439965946627017638321803172087713640441732822934504833405854261782801026974327628485210159751442527807944269413552912633525596891562821783811642539293996220683632563721655984555367717860355694686076826493159047228917130828659940892602409122739674098902730127416460753463899417525327152218283653804557235870323974335501049873019955895207116150122920610056532854895767472705390575995409504291548196883350389747197086937984493593234175004088120657579540835701500280933575406571976337304389146369614626322051623462058348366018867257404777880356219736439374912134445280134780396955051352712811686502022635000483468305585985637412538088457561535235133749572400552744272199244521547281260503676749086261289178715159671657718357397068108605313325453235847533049681950373374963314760801695736506210830856489147027632850114572553975047228501653347358151184538903258075690540618194231144803452336345121256632711200843202593353129414986330799890132628652969405693911340925493699999645710459285614807596063642024685155551036007672019990662413438489190809101079835528908066255732208435271979928429052486288887826993288951643431518943001517124728625113903538282541720986607645304220357238931187070813304168723939126177399609297681371816605486352076242966401930341623381652122235294470976518081045664229394435301215454700285131234634952203650452892056945200794476884478421641562412061458754000238378250078272989178305125634210190157393329292528141875320964043593070882781563065294042317279878848633499710951783329093494570887270385685843126128590274550825996932377070465199639330128619604085864071436901953150648516972415867982884585561465240737121205980316983474386827951833566475620534931127543797650413208170759936557726685454895183349910456803928613820652452246057684580549933556776732798092544322777770865627391186194146995059906346232169962177392761963082679959127442110603674322414661046660620603314031171531810885321946386357188286598576643334371269246019548829335685126860511246561594213584181562611178893719642461484584070244362803377006535429823785772309084369477747878348959875251070952437178279444381686646655834724829825192894866425460420828561955144883965268896865284701933256077819980099274764468039424505739010200523521370706697612664221941138888296183685937161210276973372144882255664701614858845341928102770691365964619685716704012803527640838134542652609305912283219872852536452126606456664986926863361602872043172392570586393830697127860988328000057885149661853182895045353180383369405506118019123267906489384729895959413133355349914987631955904701851701047154008344479793198723051320650354979267053123634672309108176561855271818711627340527882050512016359014099753734757521270358029193613764350580010378787243134003024025698370499647594057904165290067126086619418142673132098191311028429247621120106254995094551225995259709268439704320626697652475544455566903856935501401208256044519668136380400162539445174795077281723449860869944804751762087266317702561308715357242666483550149131644421523122406996928803391802963349526800691663316284905568771494362222652472392729610708033927112046093772957781582991243671146424744415930108783174699504128395091736089126451862704790543656868818879000685692491909213338164478845139695852440620335303069344489406798013652384626275160428482086163459958571092667285996576431258730837554339184091643213417418445654553420394859806253630964502796996716691459643634662822846588321536172370590410916412408377622740048846794504046888004002045976027252078646806030237907570903405947311181072800816722299379742135150874932466250790636668230602540435246014790799440969969916563623563475015802972851639970978084140899179515740478274749488787312788650891161570491036588198220493689620429205277939064533340739149026598199805038759468082298905698746969516565645687447084547480048478714256014797550225365368123288889206683015601965608432224048003208340674369633569194478867176558172794358867480485233361106566149312789048238048610470808368588538346471044500781367106231799792888983655424968174137867823738363435527688244168001695127405247958290782986174365512473677748079966860700794122262794116296518047180694198147684770325616824215279011915960535426378369288881890662475039123000479901488486233086004908767550752536378223449883839044842432429320074513785034176414332964630145896704397473708610601118820121126555018130963375193593627329939208691320285967733877778060260004104716003993315818510676091148720786210655577601906463433799394194131201309619600650752421773393925121189046041934920506922465611984615386936066032170939863624129518439558570209923269117125174260105392580957004696614165657372417340152278100702412897611392038323491768099336859557328107231837689745749710268368509569808253470442906291328191866842998672531671988318381038762471101621293283137417607059404611255933769716935210681125503040076427955562986131046096040141049730468545395021008244584788660124021351806262200169979905025534718558748232595085782881477855843410338532321170951809113172241184704707606575148660634539534600674042616022403513276360000537324264805163146694639350487893991051671979522987788256095784576054986286498483104964992675686306790996564633977842457418202573437255546475841891956741398416145785217514369736715671269490621761632508587229226168876748372346651516703865308576438925161471644667809932829408877126644376990601087002568424902246870028904040868030670710526462339834030082332508832053951732056637655520271538755589845593083578451277739060167784505020302575353396129475969488990710681340066822182947476468892413252265998881294520008267959715404987816814166727004307336186291224859009306194377552300463115866077234174903903644664042527337728186703153438418586051926839745990790746494682005901467121699662316335875812824276176453947634209323376112302096467220245648915832823431140103354797386036590699295483380320089437130223645335444373472377001533127857212679930409270638682615698732445799679786498218600878438058522278216167914360938058335652116305566252119415504838929290581884007003060069600305214806793343635578526691333905625832500765971521735874696306147283509612027925396845107644528198959239870121058576236973429963255353833627763811985831068410814600294801831693059533937398989335746245188784063240635036171507809596724537703545874486038739400563426944702947029509840098170636815076318286541375986750167058966335319196170284204621554372711007364878116653211392408594344208528404535281818527261223398155728251202382357679298658475409519493590442867724231389702185066317608962983467043634794111715902913391609911981232515860784541702387181039862037800860003457048616610019175065678555531470371792421037911200419116075250881961326372376173381044949988629003735384415359516234867609445392311319093821145498966769727659331276702268482172952376277858165402684659192789595474932335375985311467462428161935197139451099734484190235879644153221088459309382287167713780537667177629501806809653972099531663412632711632665642165615648237862936706002664099007198043790217037286369087183744212606578303976759261410554621076720333711494419727868328784541222023945505033324916154771761966772731398856283449086778962231048224054955013379481660736746183353860534518757271076994074442680450268221467804420261106488173966900453716462568454914658205530012325205898414635149894637117073642474083590550457405564626809187324876929004233820941003578448225593316258106537903703416702428559775169730990841998538567304564002135008978594286201220426447282321989099883574566429903202822400082756718362875932815085167997059303329837836512470625732177364874313774567835082433919908173848716575937766508915757739761799513619689339058390094122303929238371725041957782376563282106112327541436359027437545669837636986934033144036497642285169124723205197911210796316946477543997093213750397614979003550214117010742209697454448270630709299242645562270140951458142507374160353247510664748778612709938014551305474455010472158803633530431727531360992077344718609072796082513068127224933643591542137900247574399216599237194235655321950017038216834875326570720669042885695811615821424621817759789289862301144255425069996582667702612554353953016916610421943452329467961662656266387369889146885210627742621656113929520327329131948308796391550585964994721767357940522708384148504350579688584105677653276396559235387988222013780957360054831698255551500999238895768580153432494008744114467534879309605760986314216112262200764599163830024632966951997033285227796224943716961434438902906193753684320710712071737064037822274468820832672545669239029553636113280040848923310007406743024478257182246485359564182614726992840418709648996645059534692713355970684336515321539459815057617661335618529297117281875782622315406802627028745399086858745168821229058190642479719421640409067452191254876268930646614259274248490291454104613468497848633109994825163563117582700401566641470687795743140949369466510388487139454605602012002922639652851628015400088608610956285535575513910458351298032631207418493291440588686103469028369555970020236901519604053149836298654426393522557388848180591329330226335313832516919809451153641301159228498853807731496439408459067715839440510569426162056200684636982189742324523638710701707263947563029477931930740929784945247472757484081183651911331078080799643041758880421749631225214740792363374698777316146766770279014633631055180381210369124827027187521800291691822076531787960669061786169041213619428820200244300057727699993110618304342466049425226136650045727520077035319300691022293196420507137210623670223683756477405121370198981115683197702006908177936793378742028974425913339306935003068715240540043991748421807740896163667261114190681801254769156995488161836351693282678273556132417213410174419656635778447798130518229433494010480671291175876200544754705027296039284092593020730846553418317734281509253265411206007477097389128054115554784967654696394323541531421813964868169393196265494984365557847474907991417229623589718924448376265618288141892214961287237082291760441322342957776313377964396819274148886714124167680497755992236992131379692369509126538850967573872928110126188954356982222687375136117134539024826016841811673891779524519206778157103451449905613781972631225360615647828215247732213854749459142307260694161600447768055764464652520327427599408726573650154161954195674191743417841665244693748513143218709238569036757955499972716876142376336674971318040255730965987914060058887917621889365355517377000765085280105007037042163234850534485577654657087431632630718823770305063655267906495809720995449132435062531281030277950317869209919164604278760468203473206135401526235155825981990043023488146569058905046287074347044384656913690730161480043407373595359492244693319715090861049307363405153496215628293704958708452450515643381670103646584093764948281042744086521840845744697954229913363170025022560231430558859578363861414518572489745755045322435466960261098696633694762182114746436365801092291218883608418983522688701865492640884991623860099458457694777581857406690392390521036250154682936857780469907192604650627510647439199875074718429005873721094568863757715893289960032102986724436581534455333737652031976471946871518256336503665032131353676479396024126496451272652134883229838308831114458278718320790207375591534152237774015967489676850622203526894898352834131402395191020634732257458335475792059370083575414339232411998554292609620355613249333515371719977879757090968484094071815217516745490912554957237379349593906553811834176677867881978895020298549991142685904358969411730404369355002309564169916865345684066707711660332496688025096260896775134531541373974670450924726499304843455260028316576092727852487218706818572495493422388951538563261530519147779377806795584405205677387611377219759043593634646440813223872401347159827576177136353744948949527731410760946293461687073431424324279350228584133771352611312690339438119882276612273112152903574890998414942115203843729240997610203405229533231828236936864968052079021790907841675260474586505825589322345965328015353368083604263079619203318771701807933969329624134486278618692285340360943904050991366632082826363182916066772866147435556954802625127520619678800945925666343392376341264175851344740459226797384678136739670816815086731621749324544501113328196385284380461575094257089162137588159537567297907891340147041941870262312296997584345624354421124323645558031249339356657883032664693767179130714930665861707146617647969046955697123427049268334163850261452860091397267843515454964429660721870934093461371554103673560342778463304150983396180544062545230146230211561725708198680608676616437244521039511126211773941791596203170990428650322443994632032337813267254348624552388659093782544310280873146348848290854210324933488231714106154754260625696081807359097756190236955810436170419575196380505490244681313402081835044541687991178998325399934238984565278683478194329765996167000890785757053237048173838678907446032598010888151121458370514984420020363595835610164236521499339519480706330519366156971214392790559213153780557724373520781698581440610142589084727314725157002073657797605819612668114615243595116250510115675002350234170644681523039434386018206570512800787546565919003751031812444453146988568412161417827065739833104971962114977809231960494850814543445009542714096087914092384814897649644160496689268807258672807187296470111176844140576454589489318251868164669009740603119532398303656350901814980532254427554614582533275691020048246079378460651915523889371157018687409868247857013730579793572895753364266801905563543959731349887181292462704189027139737949383790593814351019703238689829468231645451754248944386233075547469247732521336618554524763167562560183208410549706539782210357849779466754998317132361210067188524383697081199317250700861120122136458850632214020969329326384941829069386562791561785752411201491076090181433003599953743813730116862843368065225118994012439885991911682399438205425096044109208445879264346184512594468397045757183104956649582471443254817328709103912388988501878717953009715924688494330261635069068730930990697413909141698887041399353394569832940685369453058550421354609335028676182968050908680395653170291310075964815588155288181284506625634272340395008572645671975338905719941687452474426028099910348148647750493352409009869680844935859568571871548213162901482612864127589382750079486936718193473665073452772417323384638762164826914303181713351972214625829660871612109708605961695848944177257828382376338648299186167844027703469845286983534844840539368330500479215579631623296534089997208763558801742975708169847834598414681199391812195379438949735882274719014746578311407439021805393961886191175845394281048196911314510572193952659339997966656855691517589137791040101762070120699840629339395385675139327421419305269012026001467897859355266727383713656708337023674597604855034554189146467255278449454155864467074420471380338140160309843563411762022028452945746191309176785464740208177962032108011720322312561726481069207925547798906761178485031277281587710693148632071851233538322824001021706559144407641403121848281871943130848748963225834351661455093821717385045335798471392837074121105316019184092682443198146823183439156268359681540600852983193780803949727280556003638806142343971634978458809392807041886412847027988957811347493395949332427428053030836914848086871841539480508218306190201266438096314182065335425637482137400816765398593815210371703112187212240001463283189508228094070095297030686767271471130122469697573770899462597812836284134865284960075163721004074228274703637029973592075375293217577174034785787893177287447287684585717501743436986597506088074515574454022045174110799300380459205652447549904727331103200904366796665640139145773133615725844713976034439161212155865182018438944175961173158334196079925281614725222348640616788309569047630730102868682824128972873948929745934394958959778623246427450170397790811359269192397082917332223815522813468275921726114735163924355607869108289406981918006657908763839136799418026752941421526921331597217857355391723401164551489157524269745711066057292551929695985313746528331783014068970060368902871452981648617283264221375175597387307293973912586096301954366903871966272741151312400517897160828609824975180366536373589365256554953430573733834669575636471253340183968985803273918452523537976743740739179553199942783784931192939783790186156587318649192103224485486398448670931310660727427532057728155139150873111216474427701479118206292605425444365033438235648212581499784730814606218125735220103846812148085621558733375498947902097280478577924204548693817021463697672414472330679456392068403211448050907378223436216166836857408335263828042016593913125279973039632026847851533445734738435506818592680645336267723366683723575261538510984833420029666781429907060081965232341489753154410784632416578382894448650212665215218544120406929512763003247007740019769585047879296128931742766520489850026839141534033771882033302421950388201701238795215150576698403871098109348863637329909072717476864261093412044443951386467654970987683799007566065464400159386815318260178955921695970347560353815202023778151057723276771175780933960774611603195648514658189472700541412940340929994823536439252112103148958241873830520532865473353323651036648678856270209150434335860962975170727510399049735237496756140940363977313875876568316028700236622627798315195518568240680546781986456543862687813551570305739802927821258346889033297959608924761429325849987956660040811763461606072829212221589177671367514896412201129770465649892655679086175572418157681766168795120784030504706812877538227227019716234946725232610003867609895024227494738274792072926339536111230269697589581534768601771534662737778318386721572697114155515003341859196158756816487179223996248231904093308831462678319851115233940872490889754766176423255957973909723269501550257779288315308008087925210617623689503286338697042440427082634139389636666629581957705665685113502149861628225526138783326629318335701114084651964199262736229295804173472268820366006171784460076852521023626064501506543464088720364146940755359411946648153103293866039432636369692695315350060600744340852793795696973212496538443353523990880338082996632905368026583395478506633670881990251631704163906387093974745680005196921205032164602402228471544260111572662549691534606643427205037788160765398185637923660495854411872492235144352038154103164486450892424812464203174606636327437406307334084907240435915442899089147694496939932981842514606941087127107374191601968090442291237715307702563614677426339984431421098678163923048730803023119009095047905370396591977098226727688128892685857936090538591318582418590774960004257780312259173097697163331303069493068011937476710182926966204742528576152795121533649838159565646038444179409766525283320213193783726757064899315392841708100061332217371017985256688445610351909378615709314343376669409272900359058270047456069813267415887336795352348085425192741218192731962507134299917133929758680482968924780477969910436638011523824445895779076683218679101761270625746685505217029305854980170075323983543707114745596936207093392978391544359555471872619167909199211555963669262251906406924851694606556974211454129927281405848066422479779614853557521016459354899129491167350683689702741401394787074536390997117809755275306758976086539424352120914132585124730381666683832155261183906694448052052182405122440482224913091780689653512892779220888040915000785051578368613679029459978821751649251751362856009235065885107517458147529478742675137440092750156700665495529684926656267897402796932135690008960223933653900015383026672828730869193387190068333953850737275357601745754418514362524878973442842346654429814972304884407244603385528357488843572449448944930527991253761084471111375173126372113969264916432458876116276849317530248580674105851604926254059713070180086843531954923912746435625870894611873111000231206443066070487237869069338892821977908919458268350914783447529095225505407339503060098854718313095264318177465843101339903223732593569023204946402068186944398215590836265403120338063812074577067323151534112039127269727755541369330895238993563508917097250017180331138201650368350882236931985231240121099602745151775078970875405785199602727451680417993259183665609903021347759966170462194447611256244148563681100557056580814601279344834506496080209688756990691498732344999429661551643769783468178897911361452689316426660225824236420820634772297846967101375666763428182976627391551109779056942483959134675557692541565564829810704459632377012126569309399363743372099980772319927287752864944855416987296743661555520863836590476716005441756799130973019285364875298258835629628736389444151288109524302081009134978212303021218034667788218407674221736203266687146252431422990771213523290230045269394546940528524228013046213707437224857125687000014140140494160688001008712400984366030711714403838200025688393699659376843666331531972947928916143387643719691208385094112024091486799181635844456072313529054473260941534704590680882579328558730690149829482145930932766782419285585865058577325889273275072200827117141050234990572874412876192963912364301176600390811681562367098304952781967683633596887326800920418120313689127279030558669654636055171194731308900291688251621959113428016473029549264606410752781518840732894205937683339697251395930548580133370277580526598993721305485528175533081623645415452206485383649436385310134444187762530238436324113515399086081684672851634944923583435557592078255128155467967771008856475486520253538924175104828066581757747688620914685784817527236920080269311663431863440010009752368822020977029320340549817260390800605331358169247350583702028472172760647686349920475845443177370849146512071294658204432916473776692178001653871051962162844594647536158503846552736468753285189065327659840186646209287026587497665907319924792664573360977840540764529753498651455398784886043955035418949119058932195244896568761385448719686310145133036967074156065876668861799726275006505247850161013500140800846180196013150755869541035931297467562867361754511378888053410489687258600533044711391733380126035684590348359041424662269786932396812107939470995720526380991537422596432597530145445807665946972863037601880718782226295316236470232916133259778831187531985632576623697745971531315547913534410730326328099953375570366199153915104604486713355489979655407822027314648539336236332645640001291474558594423592222033166455453698487851086046215665354433122826375802171759860292801438694469600355934102215448850505595111266773009874867513535729730715311226187207605217924325846690771293493965479470615865484894499973737132232199556686499321528773851906770205461283393743300162961149238482885314740092211557423568556001047417410775930315565120842775496815490521237182608271755905394391036073451271422109990950201882876874627564351108881490556895962410848694522873220374312265652138972350329073265718929974629908851787539798859635339248463289333491855104592008864570423720195217732585772465716083447591513714051140105308653413511428153313940216688156329386139796168607275368334650109426321264585573491027648415805960210005468259109562394772753188553146675797564001873932385599137752046025568573725514333292605473654367739223672372145165543613963632159233213463910243944998044517971735478293559418683845207110834674198702862676710506016072699580153984755076307514151382661903824144772458533601920525257149697225489109766541559034789510376300376959685895397753236020982780374608703247576709600507205680551457524970613481990135044074798627364746125446859303220053361500029405647550021737707240475333960610460193025839756182587674763639489129949943528450042259270941219771202469584126098511380182965725369217787452550136365708811443039005127123163336988104551879456052404563299247366694020478478991523171475597706574955109428796306908984796629125105967114888315063485104533637411202065950610767241987532953902742362062743389105163764975562410344452052891372148675813788506321068858034282702767255693893435189867330734270294899900834180510430763953101095291554093296366549445421464186072724541257179509575222391426003100507470754144094241816986678602994625909196900186488839803945802119949616351639817829750160850425118189345072697621166665667999547479483342803297307366149500877682274041632744303846959937322449523127000001664199865525028543431334490038727802052434265596994055824502373980071440850188444525094948043158087753606687791070171950479505434247090866199986354055818537785343567216944845113001078603070228088185504121270654708988321581948112658268142610830357251227425958397688324971023047874716723377337367642929503452950288210697606045599466166490296667786637135554973126852141405984199596387978742926824353148374960710589739846722009885618562576277336529914216075889638083871217834092363668973512608825181990172388762711607179638200402204985162622378514614234759550780723885753349370691326593884465003282363047025282931767429785987373730196941783747769925790530620844331605211469390436739392394109814531268471285397304495198154108966714603149415253205431114031613222143568027382028230494301368176850351887061992104219232320854031484139162861517285954108347535493147419789929003235023976209382240561435526852459494092781969381273743225349581012166346220235270548270152385165638613748588691012946435681778105556415491055632967598853353407630847759210203059021549898917257154004814553022324030786469806690229525196246994788650172682470707764111632841827750438926912442220167589028975107847480557683496212607847903153630381205400986976918550017918578137088113469044728602948391299353289011656115092461906867207144547987475147627963139773351997783347427490259470151111641228265929971749740784290757479992492346973437213713040581742427150720210063918554813166994711152479651347906803038123226646164015668749784525406443174291022763707433322232170858272850819570405604470868888763888203920572565462122720645584246853768591313515680868379902125806518311488642345929085302421771183253651125137750516180943787090845650428960739657764309199503006621286511641117994787273260973306078009907481667700054559456345407905813799382341243514422534803571111958806371949021550007227457024193205386028028708723316916973861992605862129800191742067761325455452473250672762996198577586526423266424912046339337797384084713621144179768597212414861792426113830938955609165943727532401566945857200664213093354462406560569364869297399650964923154979387814817272274538596772809215206213687995011650528993431234945729705156808414557502268141129329781185689528706807526172328666524513379001333575309915335931465933859705111282124773032713168566623457824401844448699774231388301201212400808760631876160138754302269141037028836241412095924011675102516900432767783414610348046464966598577375012187102477577266509334223060228152346743794178507003970251541949219608885045867505157338073624523831004508653472731268085685470523978435835350889049679896983205709759481234245176660430019785231889079881129184892075819536764380110400012072471281684916823796678927978639082808174840524879517394620410424125735149070645039482047799490798733224758995255134829490307872614308874173974452856718454380574451256918271261180050095733007523364663440318387786018167170261886586099540378659925865143323254477162723148235318036897313243095816265865593925516615902046114986795697129667418257703609267502940703710148587756395999778439368234070213955171628973695054086970493866804354905220534581326244119564096876799734011245475095290201490331657103268395926551385286669507384384067039902566275400337244908143659756450962535054846274627949433207328218072079718729085998856391761256751120212986233888267849758553486379726937344087912723015528029638149189229087058156528686007905024887334788100774931094139999136860410907537927662662680772993265850161563386957723108822429802389500491571562578828130316083170622805020912560768041643001517878490298951540550699000330569252634759538052072613362381485742010711896805467916259377536964495750047101740291836824991594844425685773091982511710218367008847037621091775446239210196716092970969608920689003381900582139445776364446730565046794719438967633643065391273099394049106618814763304988392867063154805239963891757132643762819864780084910270453477501983245489148882311523722985577101414160713460571920161992402241387148927190613178060766634393625466270636601477615272676563129208632184331486733945068651170932372156257156124924688190269011977076603832437141336559725951311593973131684738699345238748220254094126482679424847663959331299126938333040804710364361442896214427677848489896527685917294565054141194879500521397775982684682133508803024643390865755826713898238231382186185033321134259979860956942661487739542114144470927547775711348402665174391097891616267124299844486211616810901471882894359219201302375978240931388006187938465809721665271003463629107092313658726320022189973352666209683517199757131886686217058371511004627954889293861334056176492401487215152012809445090584345055999613469271774108805262684554165319557974069882356496551801151846990832918091716317918914967861046333968661859042528548673478141446060912796818182985381197350663984521841133296030007128315648173337738864726025212246169682592474581138783482665851341151405661036694335648173743375266688488934829609056964179317564956900549405848058041809519527563926717586256557213426421812203382547126063956106683910496950824132838947932539585540718730630811810335958419963136782614921434867847306112747549956691022605647216964030012209462301578240403018900335395731468407393996298167851424139100232178064334418632637122008425033538955967091037913844065030381066836543317385944496997474272241540883674710514975585822452173273300356568569698024679171953433078067180397456837439880535088939486761608287145334234199522929126209262155499792914516254843952132157386641484273060440342086164633259396625836219717408704474210642020624742543614682817812501221133183041067986897200231100221123087232571450526178494536135180867997812047223752246842832357323548499639318187194702918380005650746853720479800945351986536915116726407646871543125901836083710485267108442823112945636371880830250908650203539927053031416036572746403909492278854003982145287648092729199932548162796865404945072487235448119416863200902390625533325882668025368448492426695277693874111407685042713183853107816182782272773877087388903763801097990136899969287972659359499378460293242978315063118353414794356841436909494569240619929288347508140852477270018929057474841687140750690048598296656008960257072377687468829369574763775860612284965701847964700294962047560416064677191080022115365153877389821327147034174751496383122690151706447582659878914643640404094227564069966688435183331689779119325509097219580366221070845161017913195317646317491506515428200544858728915763870607619606358980304267861134112652760028467235885568849127938951253480953520366009855403867892150578754890697273099939387906627134055946115785914419502514725412537695985713459967195943289727208044954074104445624271852229330738548041088230017243303930281712407500066212965092582097203454991754001834464543733755843386510846595914841943234715442988036404297603550402956844290166637090972964781026080910473503194450645194697078060548849291215496355009015618278604454412328109077442891535167448180758261022424900511314344339390601470205637187746758689590259649485720890577432999947564887301485840052479921305223398500067060325432474036829198327485239256845706105426129246070552733487935925916149350389537498223220507904766377297499175722923113738932266073278836765421116335046711140486316963669303390372572330822097303690349499727961983694617165703778749911988329903950264965405484126119554271148670043236040696823774716953072465594912886346244457304708250458677766803078547067725978229497314784461454490245037136828837107133095710753008667886776562743371818454594088227743948089110935634638356615139247825718370451283514643264677505622371170822072529421332145210772821528190458150929125117892541228261023396616777331224202814031162247874186371496435926084234878877620562048588088256643919279067280053518941465658730779426335443076174320204248439029573465372113938505814572779401999074073173577283080589932903427499202358434197864277105607352178682805321371879979002695818977204452840668577771936247905214710774555095123864412581465204864196427104373635313658194828986508980678987126437001525748550043066228177924351994550257670563951438086811463941535109747119340338397981180769167526526855584846817568052678480672053629855115465729535625532134988333103674223426999127757155806404434539929981549613345081403965434789386828696292155195983843726436169202975114180559537541017295279915658969750829582737013546820457788266187278125528819416583035481084582710493072672489191949437356542600075212501369792618673762956607837024958142932713099530674046874726883565706175088761772026079667137730487472973497534976315662103717822168819270713648687568509833223957531875989959927258095228130659030203013096373308032910136689997561512476835590786203170926005223011771893086436168386331455336080909976644137320632211701336250309044585900429646729523901356332736178672878818165760624182638913328358163432876052740091226960249961548886457276424648062674170422556322168648891647089701789715318658163421292386421434139208341695494408045772953297727276709497237288854765199936432134799214871838649415358956430417498740909225410982339652557328324286541040758352710878035264279209511101577145268280501560007281300105964106285078497201691504281742298350812941810735135746853639337173695746165250613539193188595508273470951120697296945580979164500109702203575745571339994949391266721497641215915860918098105884929252713688076619828089102978941555324772560018697677480074985518686393455464808781618194259987206302547188539261753568840486779939492497833003143877809462158127193529598377898048857048150976476258743745905101649752162559962517461936004671752545116546260553359398271504758300473234754421045473014387953867975510499143940504931176462992414724421913380618110407261721335236617321457845434983831677749199707985070061215080236613787963228604630966734508547514792464578136761214493261122320851775041576413225966206851050024274671136153068840089577657672442616820895807822757528365777639556555541709495085698469395032587572226884671618779152025145878827989504558626095073489945365334612022150703444476085720809699941163831132080167808826509867696192750698369818750559590674751791864439063031843708999401572640295074495376064882790049009750319573076104680987421787112496666902531932846420963636182060374517478989951315945257658141522292154406704531689043734970722318496941119970073591225731981977405984580285565948786878038358429509630966180108023612374999449966717459989104063252543856518510221326273984333856445970770090347804817711521162909880118596328809501176633785798122160464684600697020989489509492208966501166333019126721740445317251519613026775941529281717732804100814683881283799814068779556675322446329266128407908012156784633790263201427527296585212047226931007936604415846567340609442384163030281884035714525574307327531856996110643429893224754372892844087470825218880242177768932072852206700355414117474851286284533571535628164727057150445625580624640481785158597719629703909277999610047186443827563207640521888912014774687694384269719504145215425463334001514329161831852565501452926983872275449380011358720430992133856382548526908521767529167382611295066499529462200153487366957194600924550575719181839690011685590028882866511759572544224219834978700095464350680592795987583036812390466742641591760387161643639136509656784429157215171942527671720974513107477539079989025858619838028287954778842047666772282042513320655032748801608931568704632260840852381505464349350599139277331993401993124805575732227269989258484661281437030880095317228286261908493496103125009858057542883417473453346737465714792322305932212282714571643223448257606323655337684462499946441414117227284329238095992482643723156788940643446957909613574009673110224324114067942512445131569357477510793620250119888365941959430954782344078434831872370873543669181691801701662229904801080730255973188685048644490505153592698711587896533542286442603001929932304103943363144705171446641634072760001376410348850557615686279910732414327674965172720709672666095924495028398249617082425930277393634198607346401950473567075875473693590713806558016853467231102359097188844633371005061249162716298940825493585523066480520550254023978109467272143208908391119033106494094412064115409297969008177999637008471263661871748599386191624312294440920084251626563432555778608715876017820345087792393829466840115592259326367274093080799164795513233041747633696841185153412338591849283247524531319285140378554130226938466231415462375908222490604087308730226466341389730862076083631787617761751709386455287037715432624910760206521744496899165949664532967516226593121408308633624875174312036915594128346211741936974377849783689490996167771499362154404745684358078600083214467705159706638313998115166793365322783464270538543411182133036364897787514369978472922772948387433539983078501133966080688840717387004478583650567433697537165361183405774432449446291085738474293887453504749828847501446418985857218177602143990196049576892209340120179791509512102943349966593609320067950000651548278972211367156064237367995585704674016488865175530234847479929372159465019273576309136143145079757932982350222414550090905637907404178343576349937673772745155028657469615288336641290192397634739617388746183021051780073040203611735655875223310876228994624156599527048193137654049717459577643372367521928570632078244182673328537948647540059631242461332299623772268181890656690309508957576133387613595676030425651853120680604928897248799792585356688499632623418755727117141461405927652731412354564595380468497622657714232660262408749014532523955506980802364798998352538141717057628951376970606080814579116993891585874131361418663996634954273349675919557757213693193714540718689201838122032533498332533299514326765766397023314845611045978646091758041901513348561666020621531922834085200862941764478581324474356995379573807113166213067129437023418175187125901523881202461381168463744394520774157300078032044073356688038866233979761856016592584198674165897852355850296435279943999600295345378168898272966834059730348470684219902884562300194254346550376775812610483173602188876339340095565963762455166301172161757952031372656255502618915195775882636315997142320718774371436702698499463582918412117956823593437752318239381484350066725189265243115026109833720235277452919715153114071824314593025463165686662156484939403335110205469081575111160498743738443141847849544574337935466904317815903392961821756545999536853610849295449060767834785434336062606902823448145887363722654207780774561038161560541100859178404952753183128498990647768276035803278705660752940396289721046354344970647615365865736544697081447190322577184727906014229685242472948048961897386545535687944161898654925512602877390887846527190420398955834001397787332515127744049728443383103668420425628403865373137280380830138433508713561749786652305573668040645057955368168771808308535030014008474861196429897672994247070623104262497151150882878289592804778841408823376192399488275962727347312994530990350455544433204951854356622579786672228631516554792552505997903932247168100313275888138797832806520344168619716275337142593887611884399794026614091383792950503910066040381295327768156257453704975859084144146080388666129307559061408321370058473215887320850408833380256845342013006751428403091213504965028628302416925856121331419964253464269907785429517740742299021136222879819881022341264513742302004501333981107179660028752227625737456966401300116034391994930091562928492194696530943987233671723457972664695776048935691496894603313115397609883168952402722020865133628725852281921087465438950287970463296962125537133738298120196658766644638507855020528808742279470611698487792887457153173052282724079217902927330880049159856331834501437275182985170047635830519336287114221691621108769237584335200216412802449688038529911946757267188650803071117236409156683811326180595138602298451218359319958189439116112024889193672324768215559500460472775086199039018889036527148177534430096593344439490930071290084543528239755932351121779555222674756700781971611903317495233537298285317694524529336763571945149819792738547663261555128874258714897293088174403367928366164172698463438655983183743592236857977304256205932644842623185791975542552537993561142670697578819751812489629782494605012410430273671598583465858187673626751715577876149221556387303168134789865902534081621971494677921285665459433435716812237607588032549227275456798015457133426071707280649874930293492851965331286729288042670225571704552201680996186744903733281259271468245639039863719058779010569273539648405334790412243343457923989741203439006835671676842744188747654712960374261721982420705325575674511018415647744324428082514301941223106739735739841509308561997497898713834076949269880163224270073616898628741692792617893079490317389377462315290768505864823944955193093791502200051824890584145480118524497061134891629150280933409429271736207155603172120311460391048722539733799075004631146417299919560945820269615831673577153840410632389494321312138791088487639336517760197031447565784738329369711913073066647937273476440057150940804947751741777936465786677512071331914687966762426613556882928134609030941230702740095142117891739550195092655448886741010270876066494120497050308498031744478683177692364697592910163452289249005043406046192214709812121753232236753733393570118043337241147678963441375578669262360199960000533103706822206369177303797032419191240313319688693762436834022019463584387697390395158683250832624627186576572138808903552882752470553097093677468976292326634028908755991449231724720286279939505086515829667657726755517393613727333244151412109687006600765104787579638072449867219041785440294557609120059107487435834954590687414846730764203087428123994794258925896863966484551066666429640102497018833284503876579115093753171467922432555271354467179760023366813851021826740798960009328375554104765013869087572414727733001066173408620433463307481638533583576825125435949949069306400856323675815040570166140110384128018194586649561522634188872358859486261819738797994362960996776700648742252493806185595831814930527768800278537548826955436394552467232869804831639001979434225445759153588786866951583750185604283899457875160343293996591656208966950885680698539956435886143533610059801822585839287965008189417644987647694714987487907581198263248443018151501570915009695889262663689221797037850430690721686317450424163585444806771197740901253836691753508497406637127370003886901095256563760903537983874642562756175025819183717488044780153150079239411838774395210933136872503168328525609684439521591799903363070379255426157480029766843355344304520927099127692015737777398543749196315341061216446682285312364776600526958629321162719771187421502908677286801901053239474584483240189801811940902330433854673588941493711627482707576283331161127567758696681088342945640657121013716969721561070570286668292066592427817852287023092581970463986108382523129997379980499761606337854257471680753433952408177710040455561431126370988775973303044083328220706852207253485338950320340629749935910887257253099754040312352791491782792131230167739669990900726044494456725741852613269249894701427373230457807091663245430898241123756435816182819549652018944609187789949318597069599423247854738523907494031148849614126040108000816628046113643984945956823232521612812008262452966993551264701158946323620920343945601819101973783522852559229573627498465940762015237872971111800011809907901637275157808917487718424340304195465973363372463234264776070601423904281908872700830182572577305365816269699620420651692815020043511782088892613667514790628858314602045341620838361581273643995918447103015193681647378678371653637439567149803731286168112693145713573207684289994681446641698004733559525276492452144546682639129993206020439442315623309370221977459158474160614371613155340509854675566444194114919831019497391827240977563727877943945723627474393207011675813807215655735149443922809320473101856382612747042555526793615979912007739236018513989407993596800698548411423739949852446475866555869547804325259637649039434055438303167703329979108271095681986423217333486108721618105907697130756708341938188906753452175921776104626028549823533923541923772906129202261529348673298431560163327177311569970175656604724507831681816017417479118240934903554095871277644859681327452401093718503628919362387782978741672638772379869475887249656033461194976235258509743837314996030430647494018261377425746384761339744123923176177073936040813040836397320755820074081480679095931213714239105003748674591066556796755834305656063366252973148112071883184603756359198461338983801657753656819741341574151248148353297001811714736529891972853660111413386550501517955335753164561281921349479709310203468922294205000060012092503175478700315249839252533573907354366305149916141115701704325581215690636542138015850185456169319364154348326419370005802665105424814193380226114957457063432014378928742608111942698933123851777855911917497488103701469076802871558601232374804485289136173979043978528206561441077259098755223373111868498876917271142696930422772136475512169903044675021808393056648341188821242688446298957804019441469052917495537369938058737337706529361005903340465408418670108107954119614483518305710717632920163283920914945480921312394833089379226186904965459653560436642260586455463904797648108111538937483482849105456646702538745589044656688020462027334166627668585891055564823152761357972518628180877166040852810321636419179267188429313677442124562025569534183426614800822969501345809358018755993190874821573884253910742771061996087805060710184915018449764942483242901809011122241437134468670879471631679598307955177639352880108346421534229666084177997657344974925258161058558587779373431516856936784340404776295282673368169971277013653921072069856755279804695591868759453152745189085886547935591817943784362173059099401736147584438949722879479469468064135346016704782621434009723932608999977657479321065991518658679074856274216367652826054316378806915578296124547512481818535708531124844315480695505818568689647170949866546359576475031848147889000759094095431844749335776044835417449371120322065885815658921995705780668004447529672858835815441779607304971483333008590353252969602058411807891988398265045651156226627172213104243239327391111234662926792805159772483598041468584000266941193101541627655843641962649791281806679810377725359017057937851889524191557107850992103925560841094926393322669281505677281382089456417699564288472561763146052213617477996206137921825501725257631428441608429085873021452182725155629071530437780765994565590122802342786100108759536871008199478050161574222319083771200164767125458776128491866914286870039702695865732840141519413367366737910268574723088782873951183739816159250150838572147185683321514729156175555708222682705946243185141507219982827453119162844371586304249724096402830567568803575278229582499967018426949442564103819483467083185264727276265430775378310257406303350255892553369175530732981931214588314445212451742353718168956623694942205403980164902447539098183468282289238906702705995935352798875634653391646571175999397678762760961443840830248046354608994206158891465192659271986317731801699047916063365505708498925380087998664139237675958771993161037154101855849275196453957951918478158054078110895116882852486831846078094471669806707591458249659641403498916926940936360551411721425398776253804291468793444499729056965322217014796493377263893785468268867447642782374125641577871955877498327987030763544575979548635671188379525809268901432252229813089250874912142038485691232842911015800684982943372989212905803537654398930684750730126162287617154577973638955397258195746255750415700161442788127291063729210934515968319062432088564867993539837736267017298053281473291075977977410612877972719519994102714338828651147213766366781061576772007038504141413864269123446324835461653003676637798413706273398026470409941555642128883421695326868487752552403614804077998070806640816446297410837791414056872118884912981311964346349675374456531617843507513676984135844994054366738128900145796165329392878138656580041415281747101114578415461339262013348674547844390736351091545320989280602680430452872700101016176666976913054197855644215705946275166576411523703747982574153407931699837923517789811251835287649575320202503759349471043914658812079251539663770308882334556822836133671381778707578191224621658677012273800794243736007185579622591772829979231392318009501835418960760773890234288519299015714379041136225275942178376179504148430686707249081185370343154109197268143060734608510473764390942189373583681296255244112085207261397780886862675884309229756289703213245413223917100829832920394990727364423660708027012559754483429125745105557350677079205314966998259125716252571257125634376174383726523276890235766648321988975283768565209048291823705891867941744849997484603720698222412140180052109107690048464896460428557593570632662376095663538538226881495266658183182773050695471590993623317474616519105560983072686478543301028699874696341289770624936127660910707445269438702785438423130181579875918492835725500176700370986349294800488573591799848366904641454765767417023835332772206707092094763913816869464375237228470035420734535912275393148605563510225399419213303276181112495098028711367400143244207901148813837569107266927284655403715058808039763183766308131609366964423827435627220999769396395270516009169192010685336935715803620189230792178756340707708179888162365575134275878794778544914517841563144119555108787213559158080448724646999348732626528178241170537753794967103063043243725717549419343355773767448441978971465215838866786872964008829904625726779072924473890269346871229904708651820940958267683066894148460303156592118054688357546514740954526763397780708612773517107501165106489562912772006117737847573534183046205369695963832875204410528729187625631514844581866622826032445732524126881078301662585260294905452277059197509385966483062527616982666004017888952151778314745957068483633314770028152066101756853174007060347795909901450865852892756607442896962912646765660647502984782524539559496065665855455590657272289355636191782827153185614597394078576433388778094600686567737211465668809088973507499761456332263622149733896988005146159286607098812814918384213575708120749773040108127450627158526784362193963194304813337955431793200236882645474302749600668008478970632754671552725997021911293459337935753595056070180248786537431757688317205157782311364081359996230708763985079133742547911208379687856663114164652392177560626561405993537860316990392307442235605671940230349618693628179828362292538152870592390153971857526915083756106427112780078218615609397179978793342916682339922450100720159566218666881334100588078510527092125182792918762967529372078872814115163619571120478613713139188043155476987294725156766159215743051331731671107292768036923878187440412216373974537472577938416118272089955284143370695875167700344795345970175190802434000116368464225872821294304109454027001281040167907366004499302597207701719340885001243633924215384178466085145946320182495050256150589611892669490919249821465154994304117547687451207520264394055294456160989658126006164557659219894658217309035066527483346476032045654145176541114468240116725432309257380898536864199206813314577706380023998802080301550682655397120573757269515860431064457678279230205653676076568283819074515534093262695000441109156298269287023444395609695982368278544538681715444106419054686846767565607222918667051062999259216782775440734026741693015960640556847423622715131979177699303615169941284091154837091801765321292897884382447593404810485998030465245100890917911363823320122600605019710116264515115899213818285739888451493051448745984250847865211255116058350435984988413199389274446287032498931196598277612438912617708216030278587227750426618866695225954448844807596689956225137731997637020821345111784196482471272362483954153413205758444123822257605758696899626002877895494776846837844859396342206927843487968420245110898464957044644839076657452429806379742321759685141702427453466338866440187150403699279450606286351286613660484153472528797285095082242411675526848597255491363751945228985179636630237339719565133566533267244112093389571283063018893416255768025314083713264166708772453495225147568342936189445940214990693635848761208555092853969249431905135655004386807259006437208895068873166771028577152044768143125928310710535674522184893150088995093712375046620931874221122389227769274968324257186931695366218053505095542947075920467232082707968443469644693240978041628702271802717074732531999274855109897538808829935558269773907295158852633240501674457803904714811546119825833097923677065850396357170658961193256175484619807052102182798299041294591257305714407772318233313909104359543744379122995844147996314678244080939916045304922414964186211201002431448530657250735615284178270316852294781500247335644640893356909978958346267682932256476590204212153838404301423797907329545902935086924903330301300619585809942620327324225165682036596977675654489362905567671640662052128859240482578226328168239600504383874837472526172392707218569202617051831997461679137119396976125806733761478850738780839931589311759403273291442702981915946278174309497095517236691122201450210009966238230549623155300355846745251995187359797139169350875829551902868704700258997457177377846286305593389895010125398367582367052906226436768957186071712588531105868745993052543843928972918248010297592780338589712055735226067058607277961485864595714216239635829921425265345671023437888113719706688676989350232251174188826439222048192287235236693522183038537876601732335408517656662440042269768616102073158126984642236897810588383193207995985026749511466716882101500007660580819702992918198319171822853225903658688557119497979111735601790128423512323302565892031302551587386314668956530831060619886879610402619050646259866217875443900685276515201368762568945936291614598409485332125242353248239099277692926447236770518281921409746758406055888170260275288432450038287005904437365894025697663108120392271647686893335514277093070663900297588518592026534872587831495137786126730635476226735132988413530248538028736027149123808936313422588150356287040917483542025754611634753450723371398529440601320302708488011402809244695549002585696182645982928222688169136446817062439148976478869354097525723238241618366157357639113672127485963107719066348163627745276831919262556036734090904138271748266688576563947446487301133654151133607783516659369049811909236447213111176317572292034485104063548696618323076919338446393644913438247748843285722166533217100602411156906114934705738785511518738714684222985425079387610573917499333946716644467863477459384390076370104304068660517005741470713795954956257005090283282930491849312982033060327011491799991479356643109237285024887621139305002245598983963687514472688104068439899475325245937413089776028798713264412916565666983036342821251736290059327568989832102391323407417642226984295524685639287822347042317177298381649865716544269505075710628491808150180544285703238346696924402198469715335984426620770041271719446987043336420630592152510539704511000071812690543783873348348818966248955958976682051226956684062524571699149294378579947057456860533390285245444267722621249022537841962774021754888226589177360628172717370005964290698344117430052215795128961461589477005337367316406555193384343907747111857238096146649963210332003424456386965984757027061452543660393245210897203849226323442274106102773336112919119380322143001192142378550817553115301525169495787205642209518745757018073375236727625302700978372071169129900716140417117264295609155823903647888212422382187642306754968856611106384503738139542703781949651277635720957026316571996704989390675075001321493416451094897514310843043011925779929470288039594939108661343163171898395626387393933643713983905979238243462577343240343898475630736608397234482228325290697911165590289017452361007597445544516820166165248614725006547025470316178481854634607984051494495201510851237681327459338043374768118372879540315386581921147063527734721306673546038235319480553387470473134584114829223775748691375936676616231913428905972855520517043919016718429398850068014821081412693807270798333725689001516188923485011920609917178087006297839249808704151351276726956230391916223060535579506933736841726376528582026737282069218455394947242279610448591700083523550658393727545772965306070090537481545827737276903902233773268253478741038707640099402822388717308222461298662190112649950782409895077600182046893438063968939243266527077034697439756007652939196569009639383374975696179371749338499781259672907012158903200593042235538746618670441598179523235356232350381377878424806764561963110406504171490154853400289353287777563421884792582829148981018307628780148281822246327748356117721822389967945918802290612270774670782306909339631917717523307623782574520297223380537694083341835735469911061164885405896434594278238005571959968614819813998086345515724107020953764966818213898368817126127922961764543814573474247143317943477405543353234330700917830976785376041768974940426688235064242881665975276292474796272194513096768259670712463786266686107233891952176892385020087548877454588012843775265490817017150818897711712389982060951936833922244228031066400246886225919999771979456941758000359850163889354184181158132735130918924885809458291833093989090982930291992238802557682112412836613212514934517321329171861856904480719685565546073275523200198761896211125888275657023349170359672911738931987334396739927199526991752493590156496328249702678568042189716587599417662992948918830240750931995657753226257198586960113024211083871701981705371760890481973112122242905548196141013316034582043151802155204546352046873938579618680373675132300258880138864721060851079788442746178607786276982760751986164642945282746657254696640555975520495220931591942525764313672890398130220750117186375989800706901956169362823493961183198768163959877973894458415563654068217165470479609246782123720934185930392568762045611787397122053439050639012235562873586865038258847964123267012375927768796232557459045526741107748952716571518490442560458783495598489531140403721101917523970307946525059561996738846967679770088815000673886589016268571874355826545175832859300292810561645246330031547080082624573961352784334420483889763839766496121828527547573998902874874091051700378892335204326658631168967659054793378307610565699368096956531673272955940299788931392443465418763166168152960650681033490679091437141142579194591973816939583461170227947242197562944576736881994911776671526226105886555427221835318193647180533417245690205994156609175887126339017529025866396587045553452321321578466424332251502740552015626137080709082163735303700251699213351298640820586102758351493983825579070189723388268311279600556762600896612780946061249136097225287098879202851863444031747384720182945641965446901368710202537841120848212916912423939171147820884152221505146177835075476503367781141670850051183833403119514615261488415865262431808584916622098221294040283431045281700225704769398829398796869415462269373950891768360707481759763787158083358109187700195167694027668243948078546813986231948181652296317008381659490632492072878627793535079291158165412111801590345896157103529053138509842727970519151223859354086648460027326200979863006541158329514026276742706364139218307691651516885850378506383770299881521512705231971102599202918927889779456290155544273977341312689042963927922988077656121109952075866108497549975271600278964321740396594966358320921035488214850981761872467651010613494285862783210139839033454614320288436267698017335215228322697539045233676031407978480977554166501184477063831563038538363108205232876950366141611492285835336895911962339863843897360504252701359528810273934019791204254653313044224680928802976638625422188976466510749876161772136238388051322044849534811751510969623860019835975416208513078520988645381984126097988653350453971496176730199044877440523859223213990555689195472941218884962085957739907388441839246275524595478126997374745848972525934158783193326905812279216301783546076539294496340924866716759210128551883543381549473085887911659765370593797561054970244936134039730531497322790222146910095077940427360790802400148199847955644028931760780076559218941588961103953505174926919469876091573401418689356367927039164505488107871169909111764298124362843987921798887862014669301941996929437469094794008415025951020152249181927142659289487907870437247520182079047431614444706811656191058289511203670682907322770191007191980783258483520368737469616492617126189007621183612356577891487423543791710839015530645301071882939543504988559201431639299419263014271758685156934742591573007361304532355076398207772213914965561359420215610020166095701153521851665013313852879459606839537334317778986395208683136586163217300485893783259371788813724790746611033377317850926815202453110358356118092371367889664850674620491986291365447653627191791792691577571482060200239924153257195756872118582442892945262457344299037915960632378457927933149185976276786171863986677038797342097030674044418938332632545887570044835389922545699358071700388955979360960336658087500652741700938717837317834166784710739052446221931554703420819270085878825432329969012155183597247208981418818837618881394913403483846017827495595219318052357034503754149419845903531533368755468986058343018062120615092594445717380420162734699697887241410176249898993011112024995968515381629447980896642184522257798372029735145450545938562762811669418787319674905395216851879109661635487836647766151044943410219152363260890725601538166477545919601077039635581569503594420083664992670738493852340702407583309878916635219769144167308622519230479834671727395702527209587783329146558997168677117926848164340954754973956786234620017858221829580996526336097881350940237656835268291690449056903163606980814062872735887940324389907808730891362948434770615156736729916062378421335760504625916570838194023598214637429328352059293773455395576835554499648921946612408035173569634634224583251695435951749707763322588614701508029622511951408517147413377945624569125136986761246013762861222565887029222778931047332387355423948017898238560927605050302785639398376956424631734392406454119189322428170723996434939068020113996935204593273271962815876469960311686415916950724425114564280596755979639314613628483833758559256667131114864900144553495222782100765773467590855845505821518080410839579174379354695693414883767557318024258522712637526883157828975448723505342460109716172527697922327638346837798774413557092748863262699119866358044557997417337490259948296368713434781186875695024758384159260035889248742939353714142304557006026987004704833069456915567953448301149213760300036595871057678829397718893366049354036551085123503106428997242534546427208311029849377135246779188507715941537682770054670383039420002558321488631397051449691097209046602459367392435712280584653987147147671580460498443002288605809636708298471953487601313971202165089051334474889222713367363939277719899290136997741161985630195793442258077650227256065707951691675979458808956377080688892870408594848101079055695577448005322419912593380658338192778214053569740658303158511646476498963918452414959161079798126294559775919173355581095520903392256186053313027908304561779197374029109266647380173792814780205402387267032508726621257881476166251281898728473261533104286453854310139312318735362035221691316338470780910361436485315211402121004442229705889353278137164888382390352908572385775806783054985279696652775816428389709920357486423052922841748554650354645130967826984672158879348702350657656307704624199981931847024433412785937597809685792880399183511528742434823201985430881495398998695704606786804547205094199209593502886004750037582099241411514038482493271956587886045054217737170909454874954219036214801408922762920277764601984148575589057035023691871762753531688830620279927392417071727971965341507838558871075621003560298475995238068647953339473172258728399732890775897022008948743525028820935930488160866553352683810384855618110067310255955292710454697762931608959526475614398727392106739590625141847817079848814397858555052500947713384626986336965747724413702879202352139576596160709965811283368873909859498304196056499764739170780647356894797579985047625996782954774066119491352775874292875759521736963895162581029252526290912239923227258815118080614884521208502796051703264102454052657983888034660761487881138919937061424945543967126110485229036287362368999885963548090064950242782099475083321033168173028995417500370211988714197792902527459543989004120096518911517346960966955441325091050422919552960944949156679187464789060069666589758408982862166359037988806537842501555807085179307082008043287247041702381830025762330557616674607693418255039914948959307657012599690554096338949089270669982494097773819860732815845075974935807740539757274835967594842793546304428261019732489788935375205712876769333500620593792469877582755090032463597197809408257479314754286638947265101887248699185932543618795964462955066322585366302933265301423431151114603687645042227381710741289092942030939983662754772417269222125280799403541990926635115496864558213103185668728886427407491675161447172116120870776220395105065746819000971574883290742760722481004731767266836264610604307934289030944167467089469356174193932987927683689293760502642075171272627902332906008187407607587936947856527289017495552870601889001110507142828020271747600102371261959015005172970778627310068073162404603118872913360439979887403974723436777694718120846618733878426704663162583994333738514202796220311657049149920721700349474007817625286431537465677626522877264766083248325894665621814470337903765545239626767464453138457331950235670277871590368173202582278558595711055522917239867383712387820448446330916569788685235739396238573756947477379134383180329906297804461915507854860006243366217726369611261511453199337349038150774539510559061927037818604301433509277936268269317099943610030354978575507424799161146285432667417218082783517336671839605715209618893753748255362697643362105106204610298551966998776092264168213598146305823994982428633116898190436880807696765225028809574100664025245080000855412926498483425542843042359199906680733880970415837198957346353792518896616244395655947824844756336214809447421319779104726433039454503767094117417443753853170113584275470401570459847713653146621957148234170776675960217669650869485549742493319028959444477939549438475860912339007412296551358704435417907772279968848396743520229598913472048103454508753845357768012432108269757339684001908197136392086947914601109281235673602995141021928146576995860842150088681342508317667287667998218888597190424924663683128893744701804073557131124447299285693047291357488003266867059816632840723835615185229817632786890321008862996986624942558300804449619461875610864272874587644352662423246608551667703946131964930586031404988394739961627577471180621206072894794398617931715868731592760531766005853873764425870961878886720169703251172681402912935738417102548950166530216309908217052490169850773317399202221222893479984254385925622906561220614163294582204129831300747681578021572335578560881598108577994279326797957845960144721015327840637806153620172619780577032895215161510471114597910851376247576160183414123821039054115459423372394636060650342338561118171378488822148832264725899477931242291325983086772469337897880207580134666216483625004672528052419303447819114815385322244579188258634262934410846892850783486541642695952806006927522140278236208903178247696808088587147478459801898934174547587889771401331777858725993386214760163012371029246956703615524237737101142127518510142824025542335955055331699415190156660205118967532829312000775550866183501147018104232025707298101670973755950971520679765767496725458725339913197720735686623938564109241004348026094603904332838939596814546107301782093420172951520156895913859312281744584479057073024581449532436092211449610568674185243228285003914256581980670170940475400669350666306730761238007987719298201391095885630239845345785607720782222101279792097078492472255823339256870788894362792697475656549024718162293572004962953230589899945461478640179731154383451863889258549706614041699495355026955219901827203716887262575496096649370531313776362092345560148449110726104220287229041144343739610263100979318381300709476110667485102554318719278461720979871775857564053113890083448987951447786556235055180101153130663029256266604101767785582965510462349761038216203094776097425354541525164083109503164852260847901448339345367783777699964506441079423316608568530899407891492851476971765336979865025236766069814055229618685860111458769133475602482950416905970656916330599473635607470976222861951890145330464052712752724865598930389184041554438457172808819295293213229122497401707205025604462789173180657304262248816645423019669060857719966842333221531835937763120392540621619640142351469892392040719770909272452427740884870277500747597822888395512371503914139629940446825495814472196421139435291702264781082760240929894455444088354072582680449604088144585870222198848149789825609381181160000664362702717002334733854053905468417367224732625342313383874894592698809239662370043516915134403472776242806252049169678934403642843111107334302671406251723705145153375926066224089202359047666565055097900831939419138465996249671968990895594624630002533355050873618575929281419045366656093302445864201291995675260937141975357837578675187988869435331181348986626778161582415436063577435720322140188966099326929644298279236048620917309903459667044144278974654782142072351695915635490118901215304439213857734711752071626166994260710490422243704025589902816051840997352839531844129458935288207652229179707707265174048009457544774773243843581679980503286044462693072841505282257187267435505617710964831496734849076100355127498284448832590054706680175557391601367207040003065199355861342484801517409805776250863656122014736766189461176336563656731289111160417303340485437513930549834983087232904487235031474410005339601758816644361010397669541784577702092528581238404467658338403890328505602225236765338118771703426731660552490795656644539344932597394948556552795141484574651272981459135656782000411461937741216569483138467030103692748421882612309841647098038200209908304182956971452429742054249259102194682556064696880455008136674095203607907968300586245597275695809901403750399029480346148640659006308357994950343389865382380442949840558670239318164637137338767501315516854574226955471645962603533645760043553951557418897693592981875247954626058660378640184749306867941273960700311530843543506915414512057193499799096758610833730096079501021051659522997676760888537112108941990850023404999469159631884319464651494186507047294541980757852670758533476616898026808158264529932988882642682432558796847603151807363465438486274676924805952490171391291618855031574375797879545333353366402293160359092836005178089202431279652452326790738888008789359228280555446889129860784520504831836026630582458531786920372753793895467578492481440271999760061293773152329547957296712729040262726531619781758988617415642511085500226574367299837814888974520162445693931973129067874409158914809392166734375889758050975142479117660843491416676436817124747984714615751195282583205856884191231448168841993885038281969351369739832202943972659579887677123279539461356929021595667465107123871610942585709831071472850058830483344791097704381713316252532215594778626049989731557619839519964373079375465155143372426068120981612634322198562051799916870699550165900265626211784255752732721791705889428888822605543916748988189030021093509758108901834393018389686045771843040888212641982339452653725098443890737157133146609741708758641656804225709676303354199589410922066517392191695973094871727214370786480331535130315223742546089535843662261853478486202586026373565083780318937981339263068495555726246201712799767882327773953900523445539088783004137725295234639123761752895583845994827588198301647326896488862424597864572138631610953741980408134368492672706039521862888903589470187441650151416676797403949413861565150009565947971832368164540413363660781319984341656994431826530495598627364012597634134081168173729025805221396373788224381418789688098932956394181343899266348464834498478332641808197057399832696533294068068115313756716876848883993028494739392409445197616471369119487423050154263244403262342376750140890219164448671015281578971550172129268588435727483847086174480422604136478965314647558656209691110122975149225955215742634505738206775367707699675923847276453806245140472650074248152861504243807383557824401284775067436254588628887361904585111087855155468996780596497493396421860950528381817319184807489694483364535190410075526366389136359013716166298238837334019501225057616471750977879889551870091652098626522527602705231979489732103070062638403593749866768993507911411301475541263696107959934983092505297924729777941044027372799131014983925321248716486194236709799729311079858631264109821432684606589045840705674720919376194551381485810829527518499587789251782090524194527336879883005113555912564164399486862754626963461062794028390632318927284741429284922292122977098307239125305165116679282866596981816341891402911656193907188471055482644558212603361875627958771063494615908485295291549023344371844090848232893154506966505476007121861768467291656314575029230078118426027240674547378082535788164995716542717567801733264272392057359326403173347374675875505537799994163571621597447193250516652938693769930231246711161503431936057117704445607691693208859214029052037568118575409502670098769805776102910570096850266713766824809177498971680183996118370377866905650638874807171165546862092312514731534975180507969041085110955935573578034043655933446070433763598758370779024309615679219611659651273058146100345517567661245022750250828158820593522508634695461779202848973550638315838608922307272245539016793783377419680199181943878893847018137019959724602010879941722311252114485039857216988176921313824410175439438477159028035406694924932600302448251605279520175751835812357634216610656301935491003551450165415953672749538154193356784245469125522393655993315352067906210745636079380373822089991363307580647972244918526930122259741843461049731437804329873988704123874504825311488621412401281826454301233009489274309067628306238270116967108837766077204849847963561657566102584025633857003750378655832624036339586465981711911267987436183729255126336105481226862684624595018878584541505467717964736162914363324724337095721587408554607952935776177686985094144832232868206943639764145551810612948185295878498908651035172969715106709097470511572547965596795832364911967535747226747389992530044773488629790451121796516901288313557141220587153539502111632342065767678047940956012795186914045558960690069913553711822767587497768256430174262901855652424101991462027147261959919008232500463521305676040693647551308701116281761030028869660506199480343984051477916211998038887970084507784335557824270392585964710109879353348303341282805115776816925097717279640711214556690510001008212864110143534663797356688369294023224722954959874590092337738576417016642669732689013589654790417572465376497990829715315180499803623919316552386133276131504693223770251396272623767264407573342514008380538447392420753665906033500597032297183473572711550629733304883775602169345184979705145244375387690243035242436873565084113213395764972704705660313944643492422530061139268985621736645523425023523493275124825000164920279366267663117714075159164241315616604508670040507379179315893717872505671911544228884431593877232230887647865962507705287942121978479371997033691778316820417063116258538982210438710838758869497050237087539948963245537260388538387496747450093899099698973129290733375524697976176633174314144673524448769485376710887850546026655457012906417908319750972405031991101842726544488908218621161988267520170808645764273239190575240172068523184463128876453891547172969169424931823951501517521567770804979934511335817840645100778941149340844266377461583689828905169483279715091358938351348500752459310078760009677436260742442654620991268825057381246890114645205947342976730707434887803290421119601664811604608992821247020427092168608343332016832221131738812337679425262789458047552830902311664364610316282722358028968640665239188205579386536139819831545874575527756631035692774947336924994299124266978832386600522397683602557115175584389825960864433901056413553428271802088204624475478878311496867418983165852587085786877196388351583276057208250170164690626013104065103356648423885637153957624663414176267641279399978391151638310544457737583956013801334987015967418380863822527483496843899748214073717242990091700784508731674969447373432972166252699667309963123244233959061317687374930861615985824459348806085747840728015731887269551583211962232188128688765382424595098276098865590723841592406105895485128542666979707406699225513495570116790243039371180996674497713892112896540205574119772254482915693836704394636540640641630855839323805964552863517483111279102642274670073020953633029898366774034821600603478012781132330127201926967632245843143061781101617940839988524852144492961957187457186868889421992673743889038439681267899116732275154431727025072261726115238962733535599604785054109829670539863933511355843473194352268346632735962764331796707669540758497217748716696160257518418702370220555428755145115319399315440525246805844959347586246861300961583120371264693587859683805299324787459144790112614301847411507787425341599620692253225059944644977944009542625160258977733407696684998180598698250068946186886756383017844722699856527716600557534376544462800884230796922939930893761401101249760400681231703512590303653159377024553594826716743622580585365241788809585398435657173926479169820639681465901501423868836919920190777285011630324376034479674721443685559534610721802840294545357437953744236250026517045378824377699825479733706823104481423809648304575531878071159107179663297375279807105618073602246464661925990333525539527882580788877312562327511774058854059747149223700909916938175818342109050195491276107844540470662065267244300865219460328853786797839747371079653462033614977202799093418292765000743491012478111817269695341279732830753382415715555835312586812283447719827270114970357549433641245493180074743660758289032151796470889599238629185168001951254208205484617078249603715342954815948879864054000922109566181383068223493245528687503431723592231891561024353003387177781530219725000652614668916215657036487210740050149426160790905337650889954567450001803718262178575782779364899719795145680071676041952339360784921481527455394905057680081859878884701874861651173606489279109770952690629160892359736719901588457843772935467621673334593230333636343725166981012444863379706982036782750642222382813647192672709537531719058213706128193347496451399677576501480948921278745450665487400801760936151041435934168497517012468707147495227246237547054473394944035921360979459504287943281020823485254259358223089988092145392462954118091115366017428717290311157387278757311514005487679004476245567164504859177237392792590430805923378314498390919197887956830534053265696902647407644646420535727619037153138069424842730960117194480623711180895267499494903740759059284415273774380410953166159132940506400046193614936193493175210271027073781222568687857856084762864939779073386498400263935295790887554211872646038674934470048480341680431680645439760220654169956111662255806670234649084059239835168452818994636857864333537375919678152676977338242805569039584982191840725211560687976106854345372609692664875098207070676189775130045122433624024991680076729368909658376833704853617634737173531127025466005047723697094960952814828218693604397534895356436644119900338677159354449498078385026322821927265875325670979190947886941976355935034639745106624152944613947421939348232463147030080371286046470093124710676212089074047579676578292444642679912367747012449453620944064221498759704010450990059517560668824483482630609531359401538495516116931441184852907855070461795771834995802526582062837421231991723923511782694554574111583551772213944696897233466994279885795875260595562557465801508208234152834386218556352647932021253861810517045767366275260585635552594955265944083215960115921749092282015269884470042673248909140842501760498307999529399858759131296529426411337147792000515607492741227057154063289572864769254774792378875881645658808696967239721022505413436234612091238814832495356758045207158640408733810048462064221575214249863657813468375277284227892818261721334032523822969425005481620000225679082718937132813097568357871756938326665783512777113557100323108168395751958181037020540768314052105958399180515370968140005693413711728750614044103974512696219864301839922084236687524328311417959530016592425309545975969774502925163502449179569900637720770077132672922783792072454204546126392546283126111172671806100556135498933689702841150576399310706177582468365316839503010937422474864844041117587406480207948947817632856159156282335910838054715178904461646473778661202360599553654724867239464520008097051064776454762724673473953022308495282240278977459895905726191943340671885269544011686906247763484920880726412177149414087152828274159318499623220514222747338496319932999894044357340842974419996932109858350742687158161815490154602162523487125336442509101183726473301281661604670995152735711973683650482446715923105403377495400714642872079440138478413294064360358460305150180675496129395312729792158398950157478064307134806100924493318365721791357587466818082591193466977959208066711544768856512992792623622518882595523630967750495718008040371412080991503403261817951341595170365030347330068774533467846052657072278172718038067446516454809429847979166851557605153602978610483979870220123490345516723966990243709613411822702133437583371233946313204233024851965988468839705350796987562770781655394056581238029007561259788350553662730511020298384571343552470058939539765748078431091869859480335190067201031119926005809001044983872721753490531148865149977744962541261031749184585081836613265962168193736181602559664727465426822043848470268944318193263304908614221769317848289611133687068305242805631048997243810708635326755202917518637411204487169114647483836938552355568860046513109443978878496196221850849319358067369121218204208116756593060015491105726325336837719121685807884714161967995026160786583191654268451542347631640862255332337523657625572983831484134554058472938218840263548061409108550767183056016065856432172217929653701487703346115655585180374965425183724283417742024367463724029162099907327893425104973099698178356773907463932943009231675746833226871033391780254691540445748970040240612350488651294207857796162626341166067455756074806019713951236955997655535667530993079432128413205404466745665725721120752598003137217496365634824812641965837773886095720507487486969629296446954522752482606933619658881252537553565839346529970236651563601547155744974593175951508003118164017710159798698643194471691449272657167195984377381509801406250734694218964087280572354897638360308699446811893674493641529117922451172477821532630218077606638636686504817015309946688445322696625963357978620475857256287283621232233952870741060000178885503380388282005621867344336354794573727518321289783890238709361515071047708604302373502320267928596645344152872911069203369896363254787350596260778691431853303858321747987230375075834194352560809380395606435444112594297696675271881608139690371917589144860517477745036583843777264191492312538595480509225739691135994343470012860843978553520937749987054556100088526601623956213061272132246939421982586401382422276637555408340036308070346520493598036355388191564368170833494936969728423226756529084423732398829001895331415754201206444894836928961247829690190640737464843253057588582925632005179651718075248050705914569732206197836771395222266263423878446945549738707330645388563458916672794272918564519658657097175210586202443554105363721923239470414748418649843443780571404380904982986477003667005915940595906444136154920570371333197547894883455853149844663560891515864936118984903167074753970034674709677088430861701269282342295632011222558650868559263010280672672160015921535482203437167114296940280770923061299340475526279051212475339039478133502723676815719923827522806702282025476082107104508770118913296603774916883504059149491192550981198173979204202111465948124438896885874071386608111555485855336580087515986836990120293351133656732542410725325529925543030984175055956128605391615386256063454400444376290717707436299299406091318264410761915798319262425629301522175120634668461206344371759671186648793199495895414524685482402542937672352821900637743695166656329383514532499686534021797443776415701119737446903156030660017498440462665503934624057210602575947901120508309498183251203790312758097187752505463389877610825877751968206986470670000531787572594104774346039093639735317866763618117622885706496695802562180930448887578984558121506200756633941963343598658872140007687663376862582272244313944397440453645700396194325950046334275749624571389749715593772191599944586919508137353771507171838007440106564866915597954663966522007919871178087948813790552496884252891054618993559945945124728327588851685426599023785845813927869480307901628202302462584062655811824822800442669889682936402224660055942711069550211523600794935393323783325511515886668598938873916527923958442821828165396610194884048427185654629107381438393303103428913766831997430473103515618183267381053842294449112438544364589534476289629795277466387003766897204980113939657918766181084049720219978134607589948705705393214681704569365110636471818211798500723099848141908069634886523048882796928598314106834223122076725397438100617279391143828139307667118650710230596495551005322211816280302475398763010378522491869535694123323121372281728857906567156846893541415898965285285562910234972314096944129683840061524807906837895156989482910871892264868036667045262940271489246016987865114794565225485197189978172658303475016388063047827018391889356140327246933998331463195192129323198650233014778771809985196124051662229378356452038743426881706023100036434396007740204302447941214287916048487600847863281231331226642901740139029015263524879106628500078890533387485397637939335525077124829020394459379801829639245740966774773740774867893748965200320363114030304346777351791854887204754524752953582472771436154333633228100474583806696635765161037661521470232094648454107881142390927584671338774804065530273795384388979305272078313441438193595713026627146529195575459262253856767480528445901041814173835308060577316515605139828669014538786891426243233244245659872648379011119117324933325102001704543286684600050875882313126411600972234760574465305362095476174965910329342951890013574553545520264920643204190322697213964925557803799686108747872366925371747028837590812642884139259368570314714856374491399281118699946640904891528733017278747432182915457791027763467651555091028844207107932601579305593204971184774916051310094332422320408730139838531292544671701958372865931755200998146313349333418059525363583745337954549844726057533622680878819843844939671572706309960822586014416670441693100499984369026878956338896841841239885384226892349114596214764913679645627304034092633573545762950851337624558910336095049278105258633241713380821275763342608360543450396764878086368443320015422984957562463487233984669867249000469539978432445520327521530533060338369747628281774707633749396708708149433716634715218130155730270227654180983769714285941988107235761919686606307289744314358155131308209961861030095864184825942713722741925206414284289144678907478780503845582868478224239245314704165797136725920967708440992384772590915088730890765731796136168725299879092119621882889606393089077162801411668099012482672724911519345984185187051567067594250721368595930596761000534939499503759118974246648609955142643930030108677836060277220380019796629400018853182656715712089615455358253719546003171070472663496316924304306630351081421484647598000218838063766732665611550513423547536270746354993371664322742980171975469294366622181718044107596470260153407096329034710595136961597768017381827051275800191465727504789072544642206100806311067242293270090994481096880637520794105090210069295969326919142721232019972875842069776555164292761728413850785543992836697739562817690117066043514461635770924125975307860166709918041569482633490993108760469599944767956459619183770867302938041265097876770951375149568289236814273137776740700513889674133386524793053960101308932223017235353045347406414197206714887605339368596880986186634632319424562832803273046228943656783002887720060994700412449176538699957330802922152236103109138770934336144951372511166376088420816185303812349460594288876551193488076359408293639721679462068965957404697393945962085491798695995585710813966348600718232916279541234309760829177268961086357582796464256687684561793739803481326865255979062845600115423750856199213904049519482364871688065291420656147316987137815960111599451507063799016368387852333364215661897282002018252023934427728355808875211390404251482115868555952918340538737088364785149624407140080695680864254526259616374404838109428489595403297651209972640119490034556915110591485994956421491880494870996449654999048313956721488360818660527908991001798551761975043625934753097111427779652814670428835384507185003927614363537474432074852680253302859988724252822512654865693251621006788146778115689722162282007494821511272780747740477673731341649408251156615677213022697451749456834606795613147579807505287600525823925985136927451770896575222550907529680444598392776235829924910212827790553351694342168251591379251904548453822709050708405612526702734098673729220703376097535205439465267996751992543939425089302943525130709963927072513830330791832799239241052699561539246849769636750544162953560011862975868129550835088254938167048820157211081280129785573927306608842506101255539270556626596897345557208752006337042422085247003286543832038841191240214254238673310936572643313539942013152439552592482926901469513548781539948388433159817628744519545947337656447420626949251300434139627706971363579651641963819259211436046584384464460621611735303628174265773340285493038575553551824033520631272824625418010991855545645340348519890997701114400157462587516494848598477424300806541665735688435768780183312902438772053551586807879234134922960011293764974201332074793882312340897126440433654175953351146405806933596854509202462668573370589057481459458997532684759699765666813863509823116784739187653293293952768816506535248835951711103091174159136753971427240453599830636498696707609178670231467199659179470849405479086760754713346129338782312932257429652510700098930092999798241535940347962856838527249846505814863776794407010834920886194651272077106651450073289978927465020937478038148501242222224720300538813759851689258050869007332259331411079549377574338608649542352374434925928323167548480828493900799369960434550446163729602477571111450285606105629533485031209798723062171230455892411297383162462639550848043398537607501253334077920201271083221004899695281118236650702408474477344999708529190332062814240918258953657429423164329424517648328396299337268426029363051798135119825569091820852656416744722147315356187306816788771155185063690518729652027628431894367478030103551665813314726956600047976515771299453844351935790534176012417179041030900400291139846256799045279154663844306418924297445553280799729863372436129830678510913052840462427473073829328262492202323366977749774019648301616426346254272805624806613618694030029202391040251903173313053589443142980988674626103301405849274533778442525086587934531274650012084414330987021572387571293884645695839220082905685874013293274764374411942280855234022646171181463024972200180955364673210549812430936267614493131934828264230801436164811692206240341254877344653672961007769216598167677489905409230619573544421022821733694082054884267095123667218129848813899691998444608519244988884139016170576789239948472399025714784966275359717926255285013813482676542697564094669694441464861703824146634475230313431316528007177819073681315563288163058179576586775429355309900591076009093480659143089630195073772405454600660415879093959215693463618899835057566159316898134605775608038125482288651140824545070090068995110486919412066936748162452141646321905079067086637755604661791121565123138064987697544104489967787459649055731583135479592404222117313338307965142483957905219489530414436286344494662879154043846332574990208095780912543200560640726619285464444418486096270655085378290588040393965110544795158240210104199036713504422651955812437643460991676723910704862886838770963273160986097912722856287770596675360047415618927207884429874427172753614427675909068744778706601353139120819723491151502764089393771059202120759727279418235233545944063512728013818730474935023296019426326529664907845874170653735104187330273051720655306437663006184591863570532740984464242603135419585077552158395601931431742062189088076128795573194345650618271043583027800799003818343046505032255031707222834297228717118115636456081408022137184484526615803867103874649241418958145657473423995657443929423994506793240215365810218389034603721028168563223413875481576216532821553711487371337488805522451049357598527286528284963805269903978889784722425316817511268618327183495236914424215456401736832552249202067055355033908353971767076707134942531676605453312054190601115871150063294373157711441199561676736909875332235815540372533068078526078341260212815284662679174333290084696697628135114612308074906900137163533143670934940182022017147992081315254390814728737562100067182468095056472980592305720433704906435177043877659137636039302570352356646623561459119350161971302791955206798315775605529618809070391002812561989240640908785325190038730213445816792509237705121757833095709164875037887189761051779839073257778663522738778926865817507980668285755670497307864779825216935320244831303609153044481824395042684995092139184577968331822142743970610618315580032546632613899513768442956838994706377686097027684230874986694821162278340080961065945734748408972690034611100024541710460098771018874738298782267171430860886251534338938033441319165335696809342488952537068932525866419085326447413967942470507192282328774610339652615580762534413111784129506836395153603211668192458101743365240098068376524806390644701322578336530285643416370008903460070411281476823661232908110347110038259992283594994529136487170816715367971688569163984793569429500064942825622053365720799955014842258843936324066509668992757903742283212497815496929015573111669476276464289810551086766337308046196578468557565447644346778253553217547753404040908480690735564303460043309159489975295916885840146517298892534552405099172948159455498103956288946067109709996946865822127135224981779178885197414358999426555576393631063501458434274764854791484152609422158680675006736509302524233145257519935471432718464558706281718944261052897592570543680024749575070709532588674171228286724518211079466036846684102998165561821330549141318343285893885147248468582552384766294475133331867445148523906293158806321262490969733313081534382245844176090269661943402756782492972151673668434275258190314190215336665928359715661150268595808785021884844626564255311441906212266912303059671538540988389364427367677487710120637335306567176532364124833973713887655052290096867809697729896321081810158098434294256806343383353367269371891310823517091538372382622583733948177270990351874948287241005904096295401786824357577175825017942461999295821910999112550608320345089927289544796655095259238570487266519680503783361294115085047812203206202683427624202882963306227040065239352618893116349120319580252522181670710782612312291459670616161649143193688155994795286118943033102182449031342233134838239364654360433027188350887877168295200879131784196772342510279857365586376584667541791728296229305778067687609391840266750212682608548865598430719809909254850629915868181336384552461262563563153021581807810513457648647727410723317889279869923051985046155087776277408048654816211797156531864991755786565707922773609293548512231599591641386105852211530518840941291320339536426601536016287346941308934711281240025832894639544695373949332796522933192701469257611314112055436796170216568978458215342168816453598865494268735365756271460285486172080020180047117304088237400549194982372079786237299370104634222127432592972533959295932686214628011870995885180211185829386846743642564931193941694324703129577892578289693983709844288288540685572051467647455762201640320683553885626788165343860308243306012344904551712721470298875982979785983723271349787298190435099168607001710956944154162368704108730857937987999056682290283370761276777481952529453932935632662218432060005487810559938004010513309259187323422002768094169497086329966015979451142493184201706303096156235101271021323562676387661843325145156058494448342261627377489329983854012806017503821406272289105595080266399786209742988313335255185468937253991983670456397717283583416944970452084082557606247586603451257980666292393707447961146635137570588321174787465154848216517663840945589175273297777856974361637267858435120243346625702297095542752572476129348318949479920584783146223867275518694700638523123329518628583316949870021586875830037581207702899263493224299659520247635781424934091901058183141480040160598854423875502992793962159724585969925645376057480764679409242408879744938660333298805460574875591964003849530254148581613186073129961371116930742617153203774819856229349592182765681617266711356726274023361323197327001627400773051664134123185557419457324871378255323450618651341705783543499530047773337522353577046971026441436094235374215872139100884670220995070558390935278257054139674773381325874198806640126077953542746339503098318982243617755313543539492260471003463772663269018857554457817648952725697148150556475270848965700996030565484868118899511950224107063675774418600105131150376353980376112063901627360585431703118453531280376541531824206726716242797512864784720060956131121291586838488306092951011581901785579640030696565833478327188972692324985268941007594775232813591992208311146420609642964573792872401065084445820788401137596209888965557879828342182795444746678183129978724604325779567801889691013374921812020248716928161836559886905335458347272387885311528347020352756095212418440715304056249730041997690691219898640354425091347698036309375021823656038612701166868307061045698484822463567496187690890387733189671099444273931383411925955247264779307207762429312868827523674858623406114385800343664057541723693656138174148501872744145073683700460991192755499443771573299960902109055817664380971327787621107087627925536831829185593923129820284088795396374004339601974051738305353036542930309122917956556769187739381501670094155380557447714380138392839924146391431008619319992715402499211256425288753636626943653008558131659439402919590855558005352205844969089142043328359134939740084517487755659266542545837182356871644525236737428120849565806121326950501635202718076117002656258066198313613397645364689326351465011273019168390334838399224214287113889158644361804806335081700713976836775943274534327026693745072263324786316768377664714230764907316572830433411749195468375626360247076695226662292932625821064837093410161544145161121814562981399749401870367841499369914841039721576584103263260330277154380553381190028389824321973113852908289577904565983808081484422899515512282419193617196306673923785063081142296856258142730912709093524364367849067153756329420961606923607832399405866864833259443337169052908744255761672923393682073057113661163382498542267313783180037816573410740629601717686796023015706075363321845326079962103559267448516977257002774652070808117587282677708385692792140878153047329673168139022027653766591705915882968808234762748225255446189337203910205035973317107920373200384886703822589554122958971577554597045514281815925371855378376892813760435154726047196460938568484071578773055656890196967283874640118664567444710689543264630373890455129154960167953698789087811600534113758061057437773187862606249901289636362538315781914005055067047189274880231743469407562339940848339424424667163420504524789612710857998974736812437402488902968866728890742359331599265175157983259038940803416018841827534654372362916438175086598770190355351080138366478554130565986635141979306635784915223616104394110319041524317051567267666635973589116842015475549533437709022961236506482283556913694312606755916342476785356499824760485310620153504612071129133329599309401644801281190381107289071903943839908491829657837895961690408228053723564302650362253136420691411177625850626349817429383840910566744110352865160245910554705537386722856861322541376888983823040082968506076841223303121438752413331120953705568006365872773319913326131550560013260864081943184751457297153259943161213497105141665062005633487893633515266874584947960424224563129452339395783171844002432080476036162623651883065569836068725865677000813066334617444569946335602055240509478067307216796230515344228103761049965493125444390599481066663373814878549626374507475925527368522751739631408033624374322101772181428589467047135496960271220250443059193604298599608428329593811593146947476150000047657751812036583075779541566834539337886520490773905369311889649205809913292369826636000609419171334370432346320298491338610188154963317672023865174740031806418494787207369591148504166149338881733744650631498543601520440604559620718169945374483045257186738671248696924429117238667147510181046126633370189966299073521389926686641462503115157782844013803756635641594121321159107892202019728599834260451236049358967096645392549525035166144224582018672432057046256529258626469804768050011917316866415458073829565246303369699113620857997665704466150316280996743020825324151271932574381492738727626465835176327214066000588426862489715398557690610493815367065276411315488146953330816627401044626610158436317104570007570670958047311880188083630921717106620142555321156128639376064997431201334618327684174237882822346209020742826815764753016488163396322163451766003729264338925548671519225625903910299997994318029442879868202122314451752290664470020439558870917565982899929588603102864069981823850632535908639732851690773201202880759948613698396970562891900881328589772196596040813629072787454585248416310850589127622993729470765562379553185118626560311672395558036731368426697596575140265034440373071885906814653482134078470142732617808897318356348847596628420353852037035125824518703235334876620441197767096433093114447152956409475036527671033574056254826078169956865785275373949816354679910481955299424394084142124877928716815983388890720380233693049955603535739983592698295916823524995342990201818033814700138926404993529202049239044111874838427195105009325283777170472221569658111239235548939545006125693308833184756094400794885534750230422816900193362441404981767056696053615806242406554066623058291752516455669677039773394591922215068843090708245052997379872669999286271664454677454411248464325814928051073997654752502913894449193317596583137341804531007537327565906857683165497762320726419816843099763497949107177610178362497713863088509129527676687438805955557976966414010031209069438491388477031474108269582768115203076093213210699321639461558479830369294533421745170014098883385570375085572126746190024358453678118159438206758804289478620273690877498133912528103115672114196935234344638873680791232653108737469255299384093372708481982378048212421851960015033775090681023567870444985085591784631451745707185771340241014797934196971940367402566242526852549966696237209492700012110680303233487203417819307903176926671578210101384787607603152427285382185456534857408444147148284330508364655370656374383956888932313433317870523438622880181212070864758997673903322477376883059733063682914305192008574002865951425367992103943821035798789421591679133991215067363094292810566789243050851802734728251625818753385666569859850884564496748922501554217510310741671407701296723910750577745048834471004992526794967197658689494637359647494441266873020584750407832917921088082198767679444552461000496286490318544150950904364500834500053111874279465194279701186630876982228795314354777654392686656117848598592541373048067142752608969408871838733808095919322500265560759145431887732209547862507791027490429610654574924088639875683696563729229553014504521889015570810923068321935552640786973100034512672954599615128366743854660480819498987156435550116457194497135666533700269641173326211946058725762989988900570591833039144594130610946309549816438840982529738298288539806371678022434879322308140367503765024745516053142706084490347201751010807516586767848606522034071770853732434914079774634301386979929845003293564933264353241627572042561198160631198390906022998903655162925626121550737541105301152338316834290223927055980161582400748700635316419926019480736718276624859486307169607404629415007034131166286643554773696989873964789843375061842523679319235784089455231244589859868723953470758540917419276564278286912628680666973930002823811915926662405931348448356890613166197509002319893901545288075742305927461715342961828830028393590438758669347190819803478197141973652293292722573916721434978229945652092199447481103663210130844217271385139405124516079604755917361643362114214868437676214252214181172877173428867441383385329801168116637972501899511645889668624416571151766190419175050176906428935516545702314215764837738594095753015592055737729069250939731436237570636274366691050451439516575022365709072938249127078926760690914761510259827752077924970121841962575624224134466530990829184000803723326074060533806273857628371701364766622453279746325168650557972717226956986514523172026277640678377953896300248498617390435554629353119616833329215680593210894657433628003160131482681106369282265602314109187757040828004169824819571691169632925712691072875781175585646634401111331842547444731015382207505917158035043259170186708894898570887965596935930882034358668078059988929788808892773221937209307250713711151994088808786643295511980605700858431130275582547180431181599403785702288545033285023365992192092218839146628614603079161852061442181170403493144047508360763534808631868617827244573645193668511501467858106724781009015099924987705395746825910953057735198780239225982964938769508568752964063210516755849343676195300615489802900770474889889861417173445164501858317360042228689401848925866213035161245777893213420145023754169028600462046503259468952417118260224892358400114406163123547780373199069935414297191273809445405837516049362424968186599206751033680130130218705481071518635692572183488933648173636116934285120751650572645536667516272621228691165441098692745999650138570292122755988064486456833620092938277122674354796753322211907011731379689623917234152262256721822587219094423399745848574024222743836072978308617767307177310617851944969447329487998700860188664599112886816447857644163220279534049048193337210605681725926479138955746486873357293183862963279837951996877437887066362256981255379278066978544955604839227404136827947500212236546958713607489100950424630766094182576210504795563634030977023263848328340774097954734059048666843099976304752089548891864771718274568460309712992596298289253362386099579247731423910266127531944638979986454408883022018142318418374464224393880538992831839428809968654963994841602921700659260115543109447204381871174957775014356598051033717556641812394322692397438924722972555822780215293654050492941510029670259474156117822660819053220310092071999696939199385127655291414700459945609033237223095953810958319645794982251920329587154521837716676749753529033347939334245819023607197903193227703544721975279411869328825633134612659029564976231282866100744077689716570963497503700305717870663071359061112797369039708824937562024099940299184642273619911134985712338055798709367528238198332157923959292243709222671427229857004339627215819237235899440038243785214503846067297605386521562650680527767820396890372369711982863282896410277250585258392049564507523997956596535463825988127372758006481525643785919176400280199086948648998282422352399458372413463115730418314302970718855890525863044284137175018559212174210427992246950917119631121734050151703150813435422846179547049125698342528506669497615056994577774053545587041590426942696454288965997636091777650956163541302980244468084665384988289325538680914128174839086833348754327632433666387316707382235498477481340560644217957654193665233074161636604430242605365957442217858641991420069812306683938713781395269920613444785198408400977987015396764870674426952209390469751486747239179267281867792693598884571374550580653865096548141619551439283419569189361885850429030068065796415574648436261494644856686881668186573205435551410368505280595802078185590684139925224830477242651087714173476693963126602212448732031014840321271015761824242061755175980267697056938757303256275828624137258383258300076218137369447093280613065239271840632236984728581979756507885716058080370427643925928328538634241551535893049542619143961679547181964250204146005569755431163148815939281914137345635880867784404833818329654711566939528205700661926857342859000262391528223212861807418063414017229141166089885198663085857382778156021844263530237144216521405200696579729239986151390301033321412642937363819218950750233309323087594850353411237722151433038860956927827257840815997303815766186898139112432811348259287285162911907407809135344006274416406273070536399955235677166169809328453654589190824991954650981341179582864998177225352846070349693671343246893738369051353878621798956352146547048772826156418836999278874751649209473664074481606710093389929356427854733771483135530394970979440542623933146387672770249560050630646655539380673612363982116122170365256605658960272933161430389490899609890659796623443095695600970490740152992286709110542026581485499991970111481663879903845850462494698406800733050035853096357817866425587319026999791548143139178986508884307477665979392882051631475635865316564858495370335280058180902333379409916559760651825004966524437788592893740030056920225713726412797906479631133139992327477346173531704015919584018773096603385719784687005037172624307097072063458923343572464366962502424990880538927208482839992955366082283390682351743600441880235051186221748292676970445052236804960335855612035384836590665216015819695360122447752510838572952418617953256829051442329746689854179944099139365705553738057149653726843255883013182010306030484990227066697782085331644667667851083052929779770017516883460058851582727510910496165077910367887763745630796803829960914447382576026305737577671558819392469868776200582400650771204000574218460992039436244814129608358600980486421828423315536266048069890414983901390273227621190345654975696678802288762364266439911421501427532877792207886426718755791019935941195769671137769422831146825403967960321330582906150255047338857968868560046890124426545256554563210247543905073590730839707013442154300762126174292365714383152360151986091644557596016075334259179919022280122837356656538329578538284392600219434302443556025980578604540720082799215860809625934083947722921935511754422306044066983699479553813032555229928164479389888789595345687745888637408878568893931124200406111017798714002588239090617410929943009555323635477910954739241739226717811829591763680614210623707837209807884780184626759978887847480640315778975863839693298287651657395336442764292799762284614639089019666022229984256636026503499910155780451362717772077773395152060746393315565385952414523545198834976806895036005982807354172018747388312957334130783029151977491840454623458092068513580602566633842355577565456739114871852274297757283079610639491237375736752566615195882168974089757628249115535558951685068400501877504658982634881196303149847350249108493746659942825373799864425799691332025960533761887651964489105665629288487458543253397598841149419853506926812091709039859104909668867769535776122569344080633753055481887707044083867897915049769073481825371747271219333523480788437084777990126884351178044407977438565501359148129811785717200656845069767559634610026886180950127400978811090980513350296308983761195668120332575759771253635675860592505853759220496445463352461069090719068677704485827650178993190831669370304728874664761714649533927813586644684568356876033717803306234623064725031149641890149456557416391968268903778692320471054900612853210656856045764917292036244261208460202098761083036375135279982359947460474394112133697416291055336828272155346920435869586491661068287706388318195401106846934548144823667207049152024981989807353084263977989590742492247485028261988819680857048865473099054735946361421893620089607764844522612732880586462869586600494429584897721069110278387136369107021846907920927505265542405113357159198381027372237391711011809015088625434810057572322396992958264985352927372384985573107238012971547808174176617964691233979140695652041095671852929483459214351813659200082943669799089934708982319662741241116226003646919177916882367494673449154794427028380396808175851744144582523054358317511003494375296833542198201570318981913707870341347740952278851073799759367169130861735128482637481118791623530393212867586613967901252936310538774282175896303339048528566554588940195794533129552652003984456021047238003192131022483510507961553402875605825275282533428492610958419170685798579648652486182020076150996519781161468720874525892224364616726083461248758764211360908040034477533159337981069704891931216852145801196004337935509356885371210376810210140271482279540790575119151603081881991101526955088620900012478891340982457149951522835707954154983651297048089455595115726929329672979699916488960691085496013436089196886366374124147375728534951271586901706867447432052256024679680661053009827356887064700623950672565496204076447630013148531660166707431275621490864159400998672160288016815130262570757260425180815311369549642415556314052582291466601860264066510299037151737974325365321741414760252477015588963350541476298287928422042963939580633741270046440240340840902604238856495268729383832687201599308615134581523987536735555483127194636248832798721339245929044484949122994558503378688020901404409204897355865221862907785095757972686932181010543879368365792068088313602904440164083066096047460843797766241513897793361974416565557375294128006041876487905367453475180635251613528319267933037819397720029312579869048601742769848560982680567023226632518246327613115019361402637097133981830472874228093668227327599927167807173255157379961871227390710070305870193849776492180283271951776246827330125177433399340015399996898442287419467061263847516792595342136920439129733555075424377122380599525447358014536869058657677971665037435357739200158231184803494747030092290834587922502601066807499482525449693865429004769877682385287753933660328482056250483485258764872624653035270649133808142250085431239107162238695101904015145365090267394427673289562471918012616470077298265052442309183590647134849079822469362104392542984078889333278772314296337536757606760857808830029500273070848818615021530359150751496306912140544950959066476345061621268118760652615661458694869068206395320194792987269056250455671573651432625316141497261581573337497475628626780139291439872664978895082515483217262348621991284828414408951915083746898965483106957608515807266430848238954333945998781818274520733138937145997701776034314388868762134817545926206693323124641970843124756393560363627621540474350260686227901138399959899316621582223166967603173513682334819458246642086310301242075179463723871954684197374906250356001291029136925004712279146807207771631017408588340735428365303480662940332005337325215804126501175997287765766806292792823971193783838565949650255205884717932157306589381784835007187575360745433982176402424732786316574326481005740216235528197904718455144725013677934186037527988053072547332836186065943580203812266471393013007950422134109089375161982345521532259879401086776261645331617443512876917266735992292081653110984354338381075412932030889447918833223997662919038627123828396942082965794242126077733550592661525321140654506852084475749653014985502473410638943201457007823003852915056816118114629989679050166297843538805795876847700393386099814718682488312698678696803138776615338235775405779271979550906363432595530002950831633784489560942379442477787938680390665820082457161501041863562240620823414480384505147618776389784026558323295023864929962717132112725713750470771832851786215583920934719191582600962033345694714801416353226713469944802849689047752489368520258293012089579296253222807306170620899866461591734649607040907224315874722177024474484827895380597472328836984873347692238040865240306501711602416156821235923622231186677159303061402732696876220206125625380704586285206525124775165983158043981819398434560620843974147809598237873724081075716885613628602065883489475289413770992606957995710357277022336709775913030435229749246981219008072516896347651836875350097290622087715157792690441783402724830338899428676751007879527678121450312015386938103107830601990159710632740405516695724107683162703799479992903180976463909658782160868687429608671851035102373884916086679762874362327549228544721516904218179914489815220073906823584350073163866597561473201885758448453713277584952617636356188563532143759465462551527088184804251392441064526613746565772844619283406924737714858874674054784023585923490143306940520444970319851289681196615856853746383369204395140239738808640727877654249602307105293605044962162493487941976256039181795465170927991446757574144870729449273116832795647152099968535761567808787135976090615416444868550806960695847510098975936612466548257157621787683699466999818312173366812739112438627571806906182390189808136040244878014458401522390988663497075829920452022053671885803026749562401602885459506065190564949104744790160206403555273726476869109064396292754772440736709640854202978070248253071134497390454604366694375655525805168953761085515995912735066682897998162198039344338334748096106581977680177640133516484950301805050990584345679601592107793036410993550087067610956657465728655257481188259805587750103212382274193971533574085969513297622341835922942930837129836431944473632286011164624301725908126837490279888791929083865118789852864644806627710052894551569814737726538055349585870157363730921212979705753336297764290796932145860630990464657852529409437603395575088570763459484470724467353312959993809263389366976084051375777207310443199650803627479589496566295400309405264951726055134436906244711458402319668336244059422345324061691554720018489112539629303983531657182477234739821107651057654900730962471560499749518684704688156020513054375003603008109681574700747013546735777198152077461454616195302217035228649388455775250513316480427343207341195313681338246359331749205434414369202167983868708910927311554912671311730799453603139987646045657103711143858461658172813431922243608859895712155844973843840120866154472252664106759648665298198230883481376852365681106014424523727406491951599402449785532647853889643061576908140593588840496569935678002437512224651525117683261833711049496945813899588471487946237173712532097563705105611384050072405744607226208053326701954082980923602377095595302048881660083939346058761410545967269629469207259157315515582198111491822570579135324082504536510448018699481656333436843622900729397065834636075141367177374488729811716519908750782761278664254873330172672659524870315879749795190850539089612233114562498167707358308680772934196627412631540534555985626128148986604268601446383291525620190182828873495830756320355628941088207355566448853252840882423572759841696318539908683854871192768607617305293233332212550057168570514348573546516941930599828234523629118160078854031216608252807761254801720002704942249309434513332488699059963835986348004449977283100200317163398963876280243955746295212521146817562974787151872760129290610917900499257734336966250627200531127101766837616514636814714849086748315589404315801459491900348808088760943778855289640680871648895260924530603973892821018710162429676715282494566082001304831010009460494500890996301699187937495702563406888421622541906374563839202087938822860941228983737280178075468726835400209181858463312541185801855950580892029542454395483654403105906675051764251180284866659532351201721704338806710531935057609670121954223841302915996750844296170622541133604514132558814265428518570471342527701322494644674443476344955128750226249167942417384286470811868910891876934212637221694592384803846643912481282406403938462897050023288085200704140609117569492727925105856385086869404350580132744482757993447850971002275255225952152711572903553480633213810859893952434067508888496546514512622615471766301472510058279430319066023674734700687702478061882135516468797188238014271882770554908869052265418451868418419228314991179492678849939438518113080531681937457582049923593653005663720599068144994521165879261795178397800709749037937604035230210249146745982394312619365733038818793554459104675922804084631811043420252637663755469067840481446867515757389614241370744274719183217683954159398521734964344361187526805286323484439678967138711906203725488604155507006956411285903328244593685501370785943975825299538457415017609667617918274159129401695017068337049592874757548093064501152480046585781566180772597866025121903654203684225552879174956229095251330622984905107178047659658327202449974686352366548788011703176763698161304837818573875399662152909459346275817917579079696656065590327392564751812971436721051476714156664923620142371963206460755963447453004472779305779216272174634909971066690770306748823494336471974654419168421432427299719537870339935287511216144516284000297970844645957966860937222750169524452619935750210141889657104883081900841858049545683330690981455541857396477027594652549311398163747110799159636480452857651142994801315785180286539057480845365029097544431426412776427401663716545001043198825985428429890796791335034979877882523496362153006449418504970177675782770394476784678534277942700158031842532553795319754993596756923988979349910392030634078389694313783513310837817296820036994437531550737161166928250530937256065534913635308414698544778048932163478570535396660204316388751750517534465169512368129645639292719669313918660697554503071390155253162506206210156842054146461397204624022723697618231520211263638478831248780457278389819598521500738804592692494615199191667023815202076082693061957909277209075174321536807109746869933280110632284854117066257245452326562329192991605574103249572874353609706227649067444965120796634429583629424847423307533881131317856308658018232273815308885325388146071226112391568054478980129048407883322687019570124462336700882038713881506453637670118290857930970731025977603070121068468822507061998537643692959385364748321175382087958994752311735323273436006670760154763778926999386510418821763094405791142343887608636609625292167524188514973139214808330418194433432141313847369680162678114937321438957888463233228059572262858279788753599584899365420691974659540596135369545661677346688610215652188273342930921116648842769290024268296738284975332740770042555967276256093344321482546789470845483505872281880223594060324526049178041329544568281144044557472367745886025354814912104193286084076491609308862191165984572331555681633093496836500127307903130499834602331933910016929351894056953117266477438363480988244291257213786844956340267943305464941574753149093368794907955798463899876859243793898099665637340938676067302348671607744760762726802750836561180152273687113794931448445647106061530897858262666966222640948448984414402239070464465111483461057503389295214075921789298838388274971150232846822582009538806619425552744246352751906668983995906351574677688634942071327181361604089523494017751267929550396396622085374469275308961688333399978050352364128969287904852620169177284336688920475698059403033926222842619029722558583849310348315125342522501383632535702858525038548024310377372681204206731702789002618282478992129927444339328764769804068636586970770686065155087281528597804358782390118347510517803303757071847348876918946797745659858590761979786732045755780525348840548053284013014880693720730445249334773964822159444602209040109412386945924641498973090088416817688834455234788977828089980758351989687046177714362992810289829998465722050003799068753548027842158183998182899404668432108825575753601322078554057835434167185853442428315907396103619884810643698897878180599347370408563038993353688319526031390945321218170919627507216856903815629609772006006805965920946623345662162630661881461068808738640294294590997050320333485165239428206302619390170308802430795733829302819528192431230110173778339027581742326757051004785931491637038592521383157331448019296550281814241262121670188281043346415066241240443605774924935768525196776245504574597724875532526745936442440204406004419298866292911037774313256085662750597836402895795646953375507200729206968039608482808651827054128229828198600508673384418683297773853035825167364723209933829619636014589836151836933865205349982535839824518231975576668086537639490688230000663351588295050275865787050691825298659528973156218043359014441805435129105077434749854443266809731729739057656398179719832798289200991322143495221560234840325521811405306141334535791662527670448971282653407053923666709813639408606387075694830241461309062420081101031074825817308930549427564295339714915941531186195265026693853869486844770077414917291340848107837264050151625964843901973635823188977481036425323985527345542394395781120784862516566843670422148428478333997128118037787448309088024261751939586092201383423868984416066619485865735270762301671873037043245140596914663432791488890997092388165702479203982002835177873085032092875677882519976564833544739341122817681244943846157741876829805533559694147638628135402919167112376192868857697863634235822761789186089751905971482318892565059555700140426093396678589110959476343098087413803715194326660120556323005987333971376581620744140499804007904099215447095664463087778154867057283332258787191330411987696198041394460302801050210212083375520716849395691962905183607109885721017924824071841026046169961523293966144731960463737857111147014128841492862553768937610409665420569993881525702310168698773656796693147463969534393084748815420320515030775938227550010426360316183396762561784195944794552846750470182876420277242869283316303642547228676727422375917132562715723656690719925925118609821123267387673824342704288690357621120775823200026433507401712698370132023778607724738005590774137207956801482884009247896449972021693145155791736390765937596232716909225441745328334061120606243749083066214505807264398407313406034904343570818934048416874503330460649279285162841074738635530313271981982039038748377311168526512171484950531187110137659075707638199907287280762101923685721196662175992819366779780261630950854580237295171370147203239091193171851453260956525095330992187020567572337290095361094465220582937475885823127646740184638013367330979958061297323087438038093368507169466039220963847982347281679590569575727636635185597749340688847311402665311183046675354825572692444661452698313922419687222284414079099232208113300315324733231086392831751619304235715459631217703195543910184738526866599407651813129178414752387815160507762802569069276515952132129674514772528020246516292950342242755379575621613670134529970335651013939752709079669033151950199669422399936724071860734482753541985692553436400103713310793045419603852090064115690599060297839599848511566530553202242197035775290828150459106816440688243634814559877992620589573084094070722503249125033218542975413413434473459019340617749141657950279055014187451551791994145443410022336354398654425050827882202530973953725968335158385626738354479531982047101340466332006197512455079660293781083765930794118179911252914374788501266758338314391792558645600812932607759629489134101857612589286451174344958808327650360078393532687002791148059215051887395918353797579178047554256951034451263056003410605794048188306062865742905278614061536679875764214265304357100056876313535055093017588840527890614518236698179323620682530623345844505116560753803291708169631867324548631854272939348208377528578966440751580583215876375806730362319502772905511206365109750453956767255450359775816134020121628167224479696353204062348373093526083556533439325349714921944582048196937946924715830567997245978526397109261390502983940598294276651583039789711591068306547275461019710256296526029688931621532391239531891456891308953868616710414986665072519724929877896303162338092475161671721851431165975207661375168929166008339863508650820618777591373659341464041629556224816076011849940131840429889863671427402919666566892811063075497494890968624842256745303563426670953194188070548469390335806031182834891011102762073196323265434845078146330505642767895872603624103645205273021648868306520371426967834148738742157924811205733062928873161148852679282205350125804585685787660727879324460169997430764660911749090728166787564230647611692111604563400599451848331220896076939565087859627263205753019383539594676195387829877358044259306436224765704006019836599188326155309670470028477446304780236521566026549855506889191137033536935618681186998325195596928328988509489910145788342412364218356007149173001922351954677521214484128927902915260398693073772275654497278724418254324843635410277044988877915508556715282421592973105819432547162832787822385330665043844844341563217274160199769863119377999364344821555199273815507374406487949170197704701930916452493522275474517162811093275426235272406316031365730599125262605352633874473316625317967183819495868770562261953801650677432341941220233156220862068087869641685097534598298957928879329702192349934836184859959217728949027228436290776339050857187940529785653793978230329124369743812599345549201857748124055174142826283190181439633839098993317726557331279106834380785052340352380388511020846430989054728678603788475414700496186923184524925198823222173868118871184866844347724414894386565094482118102373975379085723474002156887545880331525049839130762809632224374878475321686781997006615023576003783230625907487238993030419446509558583507815371006585101703600037811395739773754991594748228828517457352808119397626231966128270905739033720423059785066147609534854489945302154508789838207888173821442208238110793650670622881399420374287090839292576316043027059502947678603678418453147163071400639243469292334534621250912121115591418459867301387139010683143159264136298576622314447180101037415372715239079635582602158069646145143829760892856807125873575912981543115195646030382744198785625310132958716256785226037241642858532402965923086901092437031883163742438239759719654596104511176378421470978196480479519201186073211174175400484645396841026572317121141390876956277193567729468779207299413158283054194273988810558768149494552706663678868712948627150630327967090212503228856337468962920016474049577609347328968040853218760791882275949937609836698991433464983975304301540956228250184585731903972030395914183050248394292959847581673325526720042629356361479577704976153747051183059400339427735191600544072468297487689564105047279498826668678297295374418327360755300132785355133719166619163286386867996570524488191784182332211522707863069697787011930653663743553421545929093894595970693528658440467502356178993565458748561961753735847028478434639429001786560609899078987082551692065682428679192514304377867400492006633104147437418706256478285140651790587070469946693607181185172209939563967670885702819746681596881536932509455627710734391423563279065858860628023427634048831794299819457313344095960574229400578987764022461465879185080847950971353140007963265901033194016221517356923648569285152642024788025823568844349750737973623401482601557288949005502989644152591545160350028193997581822715444453936467897571163161528831330320829973339475683453383409941772037127556511828555086109193776658249316062956820509499045208236056173536821550624536457373896294643632963297590579527021749350566387484231234123034595796885149792379286003899637009145117372434764030938489599584769379878600961920498849523885124191029770239202093370113924045460719939128359633663739119038096947713949475738921575058321156538724616079731617549000551612587172491083606417972475017540474138801995291372247696475366197175364906999409552345982347512760710161157718543298656010134987597004387752793908485665712299999763644108970539857031556549315932865922675583133156203617740618081750532346274637728646763260910655691200176217858402393943703676863307614727324141909296909727945607960934901108135017456137755037136195455903630632378876629141324212598971375650068495639318290856335897445783644204825281120793939038999533795481983171645280306764185453418935198382437771642174241567659667965994484249960626837267842651210827222634657027057608634339508986616763809570928121001979856947046397289800887573410829465800002524932008770850076881788107031765754286835332670303826614205205431060829662792101206875478487515352238230475059069824954233253054504777618743097317714616952311986142150162799986197094394569373055640138849361465917447479568352317317958731245271688041029564023474066837313262668459734848416174439493481830830404928423658690934103065476633628654108377042301632101495747499674307455175170721038303156020542617493734477850017246566800506593071526676218604459627733917451039765797671899242466559249954868741553390006122769680980123825798404242900365966562038452808012456746745953948318523086987677182039226872935067065306859822308989436017895328000597154360667824064473273864748961551143180138258880682026745410325461462331660903542679386775804022752280796850528579278173750437545443122184088194217309194939238502503345375333200921528375452562396326347690399712393496120984076106274841766212948951783605747424954306024567724672027358290940256692555259675807315715730133963815224788758796708946634557536460242136586149763821888327480977146304408628352286386925540104109995894084811132334090825048662237907898335821543728902202205476405102507214422509951259110702360160478757940766825158459229080508981789683910201176213047258788562609873824343888619032445795462066477408070576953366658098460902257549768162099043117030015506929512945129369808123838895693030133051213650550863551059277788849976282601597622041203384757838671868620774414796066252942805325019627962445766447349283024706192973945698589397438570218054040408963588522954589877773015893392554321033882571564787881519392382590450616362943059989760736607076272509277233658781392050391046052891880826512787237576381118228084379894890818878723977382862524489729587445613411468781347909991684477126236479143619151279334501676087841212837027282866962224639356894152927367464346662022961423012806983471965108703605051112984376722461531256583910398340032671209556513009839192505144024825075839712338410628386550435843463910842233306560404851686963097816959520963761335256143628340991952306261667607445061154952111986037701060753918230386780828872114639351402672172188295062300089108123060625846606382573654455500570577739112109365280628031026122550553567256695431097501118737214383520716796948492589206038888351149829795116481388348067054248287494193955683808928868357909667550763554231588706887826286609870064608887051694609072027768872686831696301143065912602215124092495880938311647739253586135105239966671876377234621323121477110795442327447431900679144037632651746157729526268008830384590435523985032093889103276894348098250655156619204941629400274184024148457023495931110374978640863863244231117678339355413598228314592976666332026785495804872648881118522774068775416829989297296852607874010453828103320439427454978158460067584034189780288452770524124861761687591925361812679033067492570965569066295279971835929086950055101888867389272720080407358654253187470992594007201536601848599041474405643454583929331854704253742895784384975050091042678346859605961178640621093555024974208153977402413003281714353273075524713992277281887354135791251644544263652062813531005919439197561825817108017792863474715949342278033670451787865145383337350323413841507796510342761688032354217246990737705205281808724585357084248363263376031053021805013431306828272363822995562194799458209469858006228909663778700534597916990936880580204797656546232906780651869650646547464584246499723956838858019295358755596287863563696200797312474755388776802451208048941400006057356888513543388436194646298885882784624133269023204945955382010100478048295330839015518258212645832767470138617938561282719714810264983393627767968524851610102358817219851306746911199045138189524551039162965837097605264564982996720078224834985757679878999095505495487602879173440812652948278948536025185303914563261329355986925660621326500860071463978935616695099729137122548189436722829841911238847720577660363603417646825057506556863007114992993000167036695680280132763207396551382620268115940276000792689857843775078368258756840048557920981706133047070398785494103206095919852606717681536437827331763782921410832249866650323974097383422018898751721330020385217833040552388482310284159546910277669342286850111268399822220717277196255142542792670904452745225690704375807603663001830283308713019869374938890544804995415745308541508217839557349388789221661978751376519313128357857691076876129408942293443750437750779836735346843988502186475597075685482364345062633734769769898960046808113196441875658314478556805676442977337895589297770554915650909195504806882613962393397590637676177282611707132422698964210013220888651801625852028073242842778727504535431705174869430700374841630923148665690692194391571990014715481588552610805532679453561344102212601588455199273020024846296575711249300379386799172808229802298038874117399888274241764678356881941369560316227586871832645218904079633844044588013933990672313341081786525292062011599879325504433356328788409462159216444205597136828072448336781071136332595858208266395426427763239834515771361336918081113088617491750526548116772042231304300685971891582692860673571210932087035711877366281490832420829655363352265408414145517607107192668096182642465853189053124494388143148954351027225111261837984904732720663371530627772337739188729213400433289564409131562611505484994181478782133471434856173245650430744916970571981667404224359890428812872774812940743502070901713708063563482039825240453276151185312355788060577386158508735755447481523847238932521684859906380674505574500025689505372143037389088934713608035061269210176996868056213587234814265562177218753857410300537806022619106420942043834623099962497513389475301091335047365938474905676750072405905917613218923887986970093214554574222536054594214675253576296504935451034262509396283572518333409903533808278097760931118690484331617430284720113516486314922081897458210959763380349359017674595039162229457346997338277994814841018581727479700297838822809790199914288910483135242922180188062182309748200919341352282015665561035533671753394115619720735844643138522506510771765555584993052593033015783874400665820750999918776835717070142713209328035111125233394313695297412244770713354796997917149226278672115115532568763781611186395566969165290357955168908324000907929356230318257377682550990134742537312475622744458749755905232086779366006767153318921682888217022873068990518796045122867374449523936003190041708963343407262092272355956202616646281954003998103255532280571748336394976190319518648566121973575911861494345597583863248759683598660400709442405157295973598571186612885736962896602921987900889398439768049343162064894808764610065817341308861588427735250937342798509379661641046058682425802281313834902167893465891813215274054219532581889145473854779330604874798019745668331617934540574494525993638262068162734264447264243217810874546707058746668382329687157958486516688116732274671468535458778570095317787881889143686884956358684627158495814310778961542420449037472237031194933151742707593289322434596544347641014768682814976867255041918925148438993508431303074791121097624142718382674344872698516839419818863777299099550144532217774432853676680363273235870874845674912421132431881036011795536949125889731632236772716954582719886857613516714165840758264465399933375035808191563495102775437231958997726298352355133176927591606134631381471835486732030775820741488582611389284122928836798494292192308912827030095548181911472163240996259480913667053854883858218471244453837006543070885125204501081410942523079794253640000289255233588323988640337802073923067848876737758743958414043484407276444709270243397645917804573086249520843538898187872007017528823889888745518895499587567471956226897789949542490672504212136461549817708181213018159621414320460278929483872602359467211163797274047693496737285307360633344742594217332214662584158830685921420303709860346319623944688528181470252145291657364920540180386106336180428276273965350381590266779465456300905556393250734425615115057127215762253148443778600340623690972219463665913556760035210908371578762938269396644092972509035778992831190603956758132045576054883399673913615953926363870598351021353466524244820863198083346147817624276676415149953684085272361467856246122417743340576397858079558629994348131345007404618493091400711213346834845216563784423188580077972245721797489546118585588749751755172677272764649924362101809690552225256152941678744551204443023014385664849400421868356092709210276521639117388006973365544135368424908394623674680356082032300351831670786411080987397994814863945490591719021236845486557076964129390139045733818791088014875275206895786483541231094532128851203153976539104749034503644690102728967380168797272967974924142213438161556947514209510562013033191576839454762927352274039032679098112934747236075476373224082794757671145328441296428863634843625611203394908640418650188303741274305537053077719537481151125494771711269759052079957957779506734569370729087324784530711498510815264633006455533509888016832372696296132901820062932990672752220630339544265271431994115063669523932451722629034475480136841272032962924826991397604908986136701176109688077446047343558583153429011066455305751322513603581415029155812392222567391237988748819683975835800669318540763466910956581198900231119916575258108708525978922054044568659218977600559375670879991744576031285228492837272356681843629699175866965026071912878018847378769868575284778100734998706290429807660364848420346717481928831378593642573559703332151322669566456549077759147963166116365752928254960071183282535648156527674816210203474148047149948925162764081590461696931795410561166229965661729258244276454189886752592516852008018936871042530957460756074845409888983532789676863823763080117030699516065512282989623798521596212966233744449440731650424701066712630086982252237176177070240717340087799980601899863477600004104864398766940213954964301696819851743675261262328803885060472015037976058992232327279354528559803224828436938382696614828071291951582247100844399775000076551615924141363298554649111373111014322362267123222491183139001405955992956886783579842875816549412124121272829406625697877039637111030946320712355601215976265042841005135488104113947619185034721633853713187536399874590568564611824152150358349188080040758902932001452209781439764417636353004213540146698162290873923310735844856374843042186833172780312072044216366884812197675704253807093352078673223349168413982922998534485535373073399128539744873556152306990020409729962370479533095898611579956681717745934612319040920654751989556724958319328394021414357904730809808271850014633145106088204627600471250822416908676305872918516719459411851288299891081396504743956085687961122019360459530029134826438627638981573313390772059811916545911845798891217935491929490136702706987446449315164952895891890519349646798085143862324608160671028988141584370024205787715557056211340507917879176575276407914930111517704725378380526519103632062525752036944863612341921725507929584075553791456811917436576248436620484480283889444369804656740498760321665512510160239620884719686117849623083842083974062662052763444666033327035333587097917986018232335316621636189673000604212935899148765472856748093191831407275787311159064713916982378672930395874621894608676129199698587368304540983119693690486635659226801933471361217106522955951517795049010502542287921060148256927898269755935775628884080350598412077344654916759943708096294270071220782787342629631999194801287405976567314214277979501232106480416072762844312039955842760971235555507282269789549998337767343884390087684957074681641456199969250843787295708476242677295422633769100463938937489401780647107023063424869669752170332357677299307149744068270778277841282773271183981395438053920617582770838232956045969307063184942104123791808331235332864816677298318921411883570229222067774910201634333728994079107572290300300066471790914607959772030818597254378095675223088330021292532414926641410140774684120447263705647272389956068187111957949529054348779214258515231362899444317678885662523612346725896989377237290150125093071520496606702746838569466400017358149307429151065275191625964888426888257091421943708178405196965074530003135826044571226603525147818899410860917900274269522379223690673137304844838671064435936440928684582280563213389060701752376462294888766691349321670600773836146274704393799643084648669001177645652944819930039962233344543363698236619376318154113225945682190662360760737058376049248746347466598071662723864707225248230850059667896980933846722105630665543039343409996612206850323825519443377174459311112349627377837696690808001682073615000525877250058267570781730536054096211286385319440340960449749030290529302229828040151668251012698579201736075094754097358422789279011874758401956079422585062506791435317828343954612897852113016918103229675613225064380622928085337080477144238980035047865767484040790843570955172135962838380234330626093962903947349963342157950393391862286327733840702256401637200818740119202093380486714382386822791327831768016785992417264199789383817627640767887117956298435150083635655995903663357277025557945192680101211268922734340343765794088816635180835394672932167699783831470411401856537873937281650786003392310510935855068708516241186215531261929675826234907914557402203878141748648547463527667083918925493553649249894558342201754584278513601967246515977356250503475114507775579567347400233412085922125613937716040332504977708373458660730115473109793932167646313326987117511174871376521273973980998039862513294617928651435298480066424232918082356119650043954036529556557703029539921887808370122976822122766962169286594828954409687420453176710717652683544306835727839886892442081626310750366606693672911210311157432055978121636136542656998414087970250987653599608867972893530723162968029996957055548517168647606078536782763198043965612115746672097516145296576891375471088233732149198643443012949201769668305119317513955393079054223549244982371532416965126004675304302491786318262584516445825180902987361706016054573361724217184176877617427123994929541656271699492301623977608900205122976997041158422614105883134203864863667448043224528722221992249389675852322134387160537248583500616646426326901453587603545399072651622017057159720672755123180853842658608043542891987165691588820556555317753599090892867417675931687626319752822631168214209358349936986025788585254709010811236046692365547248062240799700169093995024081107384319786173906103695325923234630729123086824844744759574266507513777817101774919777720440278682271985610588563526269841445482966655161511631602010440344483105573173195097943122859070025390720157219490097255198951570001718059151826240697757979930542939975544285648635865802879806837830822574818045562641591526889644010356936340769171428313490048646041543960308228961798773388025801209641137231696756035172738221237708004776106085454886536017174534995105709368524412544141086363584264403573398159401329411471900742857167710099697429925615849181666912953970033035366914151090312910323827734585860004945616552995790718640270395711579227565288508548497000445246475907994528117261016942701536941504295707513582961435306909489464449343372304203660985723686451417452789627039009512109776565260792157131221596252466134297100412618444164792222970126498408475024690761608719379931211341210769359794151107041438619042477980380343611570339521681655197514786211956390076882832679943748427044224872122182450316690577092892546864520998250196902521851048426615482520151760604377376592919028291266086795078709995660578399031804398402335762182206777603127400067856841465361873699306316956793099533011075354117528974360377084296746126978570895013798301225583733321126551295721687201275288734721327603831232531394570436694629418739871738768037081444513246345602791432127613550186320209372428908883949892296353336066362572240437939903913574728702243068331603387703775398043954331647981842146317044823986955075875845211422904345772543677908467642861050498163847757705622014506207039447472281133625021184157099862020405486228362834528524557880429607657494437074411141348967651390107949215782463732685899798025913643768610289225727322821526443476464627178067658525704954278062810244953904352575794963685410728667287159522021240214859039218141199366922332877670882256167808187700160224841609054628189143687435699741826310733039349389324262359459458754870004828869934298480076309863826358063483507953223196721711798167563144831072241150854148541662877886624976740938153205847525460563881818638207136163851027605912916128432415620904708450868739126624198849327681228805218668339450226330308570661867406710153896522037659213316893050105152941613455026609885436042273598225058142347049839674210596272258587943113105298762028596550943654284322036000189828382049209280184623409864089074094115846156144468333084326125331042277573941810666044087444230877455215427539544106321734483816472504628574911861896247447533647986036354078439779427168264031047089860114017632695297432011523445213674003667974607235292851731039200399621582425026801424293170998925339971385176490017200792584205608573375572573561297165562556681989707173527630241390862472793795468028348002571706284739708634645772499482495348674326828249647641091747399784740790894901788123911172942837332938887535555102577462674053987984721591470772619241611159380807939616614097504324488066433386669014763754101754958120596786074226970788490032791801436698278922532597690385736880695772032498910106180756313332420438099530191965773072627708327403611361054532731087054177885644600932399677756036613606829430169030193267543318719794645687615397360978138303944481375815361711313000926521554347875936757280033676057867448159327416198067767507277498071777592050183936356583656608778066896383838398658480256801971433957183581210528878479973471511140118099248778906795804307398623265351459937526850167714777251620616428110388647263671246477068527129741716725387305700727018305197640686057070852375731972019909101708541701531681886896437140983940308650125455908785895611104656637036389946862694908644970489077615868139714474459784667400910070330011550200511680642054348636678998622476891710886491194994462971543420629689694471088162255601973320676829284140921448010817667595717291071526707023578474515936387593031342244731938585368233103118035620211096991082277497031169651598099433941608768148167853340190245719944567007674122887000258720594239756981533024934699805493860921693051219669145824558162045349757336267203826667970368578219770091902806160005760095798690882642692666896963386288948204883756377683704298244152654177562732222778404201263682820334576777229200079460371640647308112307153568033330278808622722745860145910052706084892985084843300403500694289694105075765759252341471429567162444417067516113234513563568761798927169071847510607115857145420311029324248143388449910977621114226260348632639011419350962717257160062688499442451969109395664400996190046518343662981849191117692025706534727692902266948278732362213902124979158825620415275938039480415254837563025969048761111533162844705383487981666220413272399703754799742808004375849829254187343519387631927482155213836026031673419376350911804139360513167800673304060121118556528994582247503422750967293455022759050140292768823908011250364745695504312528692959220673238228980227424440278381005431243621777661070760142894882903839402134476680100148022786620113176268826914352367705501426530109974387486132173209949584892593746126659630350695403241218346470897186084516330763770272329366347619430867691182582514036035996536539011600693995314893274238490960355003174947689095453338920519166289128110088724778286595896781079040864049065976493803613560485360788970999859825656495620473372580305930150375472209235752417611152306843662828091077528114398561832825084119743611336999041416956855779838188167812129683679516372294522832902314494406046214256339493382105264031041939094559270285440854144872296292441812226143399453143382677446182998308237914776190071954136040957643392472363126855357009594129228362935519734304397427542082280999862559860822401258591235920248049994040469508777952397888453210112017395550082730976542308173008470437046757252951753205316536355826129163204867434118261975564132987956398105419691422736904590355621658552577257959758544881132038025772155422844742661694696971477178647072434426183731106453768278085611849519299230848896831437494770262702761560538758250498875295319939970489260398096856456784478358833777539795062344292921705307322886292738212237505412935039885409129259276050950191682930501132388773091557300736725465558082902469732215005064108712699887909019428813046502753047650465774192784373730775836993101857387596817705841752622062499589083254578890453598556471530138211133622544541370493220429641470433453229827347410399862491629406049390728456328106471566230477178937726256588721805563336341266196611654925308843790373175023655596448820917505824487897391068726011947581256009154481117448201988558402290453452649060331998897656407873079622516538006303457627361029881092697946837670879435095297700576760451174716898570252089111485550827119035527816992985346360064686672813590531320475098773600808757699273115958473365294555792352565150071963536000757789542129456768931700430897350162071524386081144725836538497098834851181542876333699475037383131508016575661312487620707206604544984235100368415768792642152564398377402912380884295469621268830894090628873006890152368449687981814856660010419558426366380020112519931332429347005594489134102233824862230530491595438043810165692261606663210041831352029762330505507696241486458838459535826373873624276913388239215103299134166130896438932662535296853879942890501675458003279413195424017747880276898593863869042241542835964509575354094112028457691716550417084930662745497230260708433172591010839213872852982527376009865040761449491900837821597482835112551966399218580272445018966617829183887522546287872220562480844917363318152648355795959602113316448548557399169801475579928119923983041408429471399028101461246654360356083174922923196848595045198748064891900350063984716294401045429915103865563913409237963985212441138120471434347959633562250745042372757152458533188157273004511858411685596182475142007922964704210172871648184102392423362871658631223188343687971873886462285753664386130903731939231300405075427108994340295607061400279521918396623053317596015609022773588102421903029189458869213516075829439839876779583787741794122225529790354603596295839858710122816228380143361816857274873936594467563030300848242029215139593621988422705606148645585957572135167967866837109818517642123277692970253894283427846592380444675772101002154330821932699523913567555246830180198427341185428427954773846012133521987069150317173433258728213038786437933148136802224024338994170610512265463388474438008845803570554272915080974767401510562232700473113022426295778104460983694288580262650993390544163908769032013845595389249637741383359149402250705369397264617683606511024253652932242792223331416349804390330157541588807850711240542301409839243131181797643874089897031789302937074794141890840867034057074852053152961269170066658612554281931564647319612556043808901405542376217821333951197576050106705411495676320046751889096298305826349375346268629585835703686561332187879417804987387644676986863162031451725603378916969985296432527341283004898073986569499331221496169512878265472653945628415854502028238400287627478037006445397986631250622243965110584958516167313444203578454503601112466529261089807197351206544587343456922756875203710676387851447822486892260276154299020968213268552825229488532956104826572179618357063833671279223218768982627305448763090984030680383975975009391224049659750719553687435222770192958820353528394892594624465556368480181338002812993363247538557181021891612604098083388861177517726288002839129026483418007889593717569805525677496324395922505610382917629664277133064493491281300670820630656608503363671318148351771395855451467988771650104193119256047508852440852300169285433657081176762511464493951109774843351473556089426882693358905725484582045428143656434548985705940333287863845513210823682847490418902496393600483358830955923734862504934851137135513243545357133462573386190983817229101113753371861235872842189351546960686955826208046018566587144693986600332950105062009980772182292653807953098079410209631085751765573484647247261516240149528022113592291042652302906881962062670395848134755379233162838600248899735582863309255640040586628871230870396718887119706508199809108458159847821704916135918182552278234707218962603423574638236833311372646874521116988934717421675683055162034559130329090876637860459058714324744535719881531465602686465841609051220730576232166389635888274468147990667296160361700728051834442392703732062174057763484753347119617790982824597675117859701080070265816673881763873274437397473716382534969953870901234764083101249680325436979336003461110430618507048508248799537025056598761731579229813199078336886693438180769130014541781637254277222171257465717160407257217621860957715232660952739642494674593421682011253581564666212649087692190819552368222068981580430583766714365515445873685105680630483145639587856514293133778330518514574087670031729017030590396593502775518438028637151633747335055921726649953629674387674057535907963565749260158441229176182509905511879759905117173541987980389711863391695167340882816409836428429858943204535651488870294754306401163352993055920489148898995594969789757817738377297065618360054913914290451470948016726265491101778506866556810391452825137374716040189964861177680762408659497854039525492572802183763752975684168492720453764582745868399309547016584491901967964682902034312200744535026360442372768116120280669171705936346158234807587053574016950762710632918623937046582917490855378151181169025186028675204586381000679786834865951472591902215019713979055721973990539002437621883529902408663406649853441299183655481977427740669125069179493691464813113504736466632005792240991819609922064838411281128619342931818817435791112500481920888905335370054699483541609675137219741359511068645988420656143975528004003266384547488210698389828068930831020123812628494696435092319430578707957842364151746653615926976327192960562637533380104277609452792171147262932264798844297957942453134484134049232875827975878948797933364851887463014425372975738556388887434452991163283002309116246075225686128135967450842051650193106170232321321259281109441327723063903447259282581650050761848309191455959575463755738318894679300502354258697775096800253011247048960313338280313946292372475899419195015963975228717955894604349069642071615453119482518931765785241291733230642260828818070977490858562725825104679924224017090276817445206312080586631538972303087356427446655560527603162782350262620629204280993513089014701083081029972748998644696259442844220023800949734253084984730975518156467844405727128017381676115195137527426645738835775303186365322185610075865411391433094981664588922687294910402797192123190167569138945197765792210449779997926768231290893552563718499882150187812258116140407742305746781538243411360312181975262484416811694067410194672071217486602876319358616708988251516179493109076673637053626532895479279824095857417313278105933619722871028803109594688680941665559580590511056649020156817958504480631285440287662829366456084995598956831091556647121219645151280690059434616917459145954642619123264221316151264788922556522874508478761204192060725133051518182974414085923212275615822748962035667070583524042522371721589851627667028543658974389354121029817769708106360496915962179902767378072601931860880441530223012273762623345562879293505737675750705864769004631348239735929376929522985478018074172577372588603677607207031569249141289225591159307739815472694936607135276686037884100769633410058358437745203659472904917625553557036563546862632297358090058370506130678537236316539238051344403292502249540764686942857110198846164191186783181567350557115845752499116054341135860810334866716368943015444916832903164346814705454853765131855562617055165185890258060974614863256472843916025536075981027189542819637107764747737919492628843897378965625902171306100524500347939469281034185036974703819401845502702077783665467432915211513145802316238727672260172645202990456930795418068469643211808909786196791097635987362707144418285633255314408182980243074635247617647990219779737369438370884737256266286489339956509861782693005781019851768568377238291101354727533170834859783218969518957223908894237669583377670810496924827135624074987248533965797087187202352459540574311592664577836912465713020822911218157653646533867590144005909272138737416004304529395156310125257957564725980588983532278618085680787379291088830325386071127400463749995464268121531067812800383383327102800055673836339953189006080246711369013827156771674775232238815783235207248487868440397983418337284559267867221009806560023656716630657584568850826420265828858809185647923082461715672767015060461646741127832294515740545997602630088623556308302230860021480178101471133229813702251188724800037223731769626637099731948260264746860519799484325070181044752025215276658382722009869787332761315840156583095616373570285477629164818807060680268920281061449007432416050844634219224191830308130604142460429979955270100775581245763836282627340263659765000057578618241832225883271377253275503657223246205613320039805695685848885202422730202793643624461804271593809800192776449979271795748587327966953371509485902461704535291183842906203867348478549363671276539561425254139442572729665244785027569272490982984156955564984056597637234070338157526879533122604625835614929710934049406497981648735169910766824210301184527349855448339282323609352152036775274735746138915856688369575282418025491109210951997459799930882404670591949534617046030924649397209980103971276337704437092544670308361992409094225862662949913609825369945285627799181471459117330982782779545142232397980792387322631914487330340431875174553030417462650456686030148758636798898341457028340983568835014147840954227789210457990461610598307071130122779249391778843567242026098695147967849188539076924435859472716883314446160959964893260421663921830550263958351561212957339301267935554765774631953400135278580049961357446757826252999573353312686568035070691165492820348834041071176195860867336803168591432389025221681555803561891051060193241010467290485078866437179461447292412233664507147932994297677603457423266490395878564698179195232166769235587445023003111379749785482101143962437178514919490567998202579312859277372908718451467233360084188395084885780377334603543779168457762252055526330956077372845140001415028032804792254384208532147440096316646604716511493468652765372453317791856586672771113075219992474174622624909267748112213021682270758222178503685442408480095073897378055213365385471334085233664029157431815445121578501722567164927573791114098027043588475988461486887085556918391349487964628270264569657709110380961061688755418161252380210721273873498115462323537526925458359857845769584086502425308221422065366907411891371956475096477400625240717085635854268255556230863163899877957015420236495532377636971875199287136262994893816146517134224455091999934613530637489045706155133900529196506701268709790687304480234787925622254241529920424846670956545298136248950373851588050050856305610707421645408720824888559584150733032763872103403617104679054216273139101294818856516391814148835544443039234369233481271679264031416332964310015048750249318193934204622466067345037828638293074649409218170845225526063432669534821383340579572410939241024577306394433087604604514589326952707389557823897836636333747594544990846312786864560727549835360806683999770681715668586448207965118194202647395511897989986903710180861810529119675725508552675002933872699222376303013501777373275655822733575553089368949556821275419420292626059576976412028163300348487533578929324267896840626205470538315178752875544641862566543393424221765542210674848501724898559063788904046444357414595069536699660320895608015316570550145336475829050988929019353675536648872290537019054696396861698922812501976641112107514177674532028727803122949184077711055867128903042802723528194038574597160574931150642302533828906369727015898635053603470682261116520725901914963958712189520085656862149845971122152305222859114518144393946503155543103696004072609784306656865344661805805935144301810252104387266721896779639574422845995168798919169143547918810313413169435856948486279587373663325628522038792377356708664906991513804738074846532470575750357746175734852794190003688601350388018228053958438107206971908851964451711925941267286599992480203307205535069219737433636727242564099921930979622501130199027829035054011491637099366126294651234046883786122125406164824087332074016532264619421763807975475609361819445164203017979476900927650257079393903928866414838396973635710912946374313410456356227637265661400610645543425018383349147907274135417282666945534876109017693841367309422599486829670087917333521971621606872825765156513332580361105337915519072511239484652802060055108892325456821740296358361250667188145148075811212346837774256492878104549817581354007023376269635476596046050570561812746114068508291862971475322915414453472890578445799055542510145909331339694744784619814565592988784036935993881657112297397981603805679220814635859824692769187120030191605379079015062515736039677071041797744921606355555529884608550453535810134243684108815227828729388445648133776865950403314213349588991477458345627256849925196965260671021886026355985447940313777437730906268819359355085053972601542422667701580755349856154663004524841454278348859968952345378592615481662348177431917007591276830573161147331987283569849242938744153544515775419273689800032844843409432068896415417257008237283782475739249867121941525756625870460103461323079674097954769556013856965543892457172281866564711403863867737196588433815459345207412497649983648975886699877355764878731787514556683078651371324431126424558599797617091829964121280078939357899887375699207187217514429938073892140476095108593675696081591522479531715057464592714385219479092767149581475627622656176356191234470595258938080180119189701367656257399119779592340275895759730632088964272272147057969340364892071598317055831406387492114742769832849978428685709714254618427172682855672848992609503733336935921060092976406317578897371853195364006043466364120076924893961362865856345956144780681999450023718815574747708762913772129501587125332776164357717236567651766959658754132060908987026971949064892436402937072830517321738468359857095915172345604169164709018089698885172641430060234779376527593546394188095809887280362621594518467986159686259943786683002675420467912209929992857534669077801968497966591597864876772747403577225690008102199623095719464367991244870201440747359850135688395679221301262430837686057574780189443851293733479596710728944527970285962645211474877091148390264704224779719581135149305617025804932143379379536240152438972719409979421205791958652208133361543557937609768681954928156181459672212864794892350930558543593578949615894484847144715348668668329097085108959083964346285065538950863556419424812361785746646523962904392974100978861652581989124020453944849445461842599135625836289574057910815673775838830142719573939344731187190809540765285065438542998537456175705932766986947517015598415346439018643619630690871361533395673458643532521113650389634794159027418373512593900769165418205304066278164117693676727718659392432547876710732504131032480194012259989289848476212518404235537668607975427685473422610789733450494367110561823418491778374870189725492925383626275702482213762556924159138216730445634019010663807290080662638239543028195227192573795416176877995794337336423151956548816483452882551917132434045809285255959101786023304007598511948377679509129026473522104632871543785561756155598337680154023112996623158899574662583563378240558544866444872376388228080703743758063957990396966945238948016724318108792039724151041766932436433229268951220635754542551676209051250436257946213636322621966245032928741387767177357104518924451486034918620985516442821013591369204056109063108661687787974314173498060823380915861550730373966360584246755981680369787590532847338270777733351391693410440582689159455125057864590106595572438387223768278866681839163843561693008699080033696152202876749392086510565117167207268852664094740762182794869202738211401516576369128045574220494177161764931019655603139937912227595364030304305310225815479319525221511802262526157525606216941621894996777164994389797578481908441109652932326303491540332905534366590833220233649496291590286719158317812352898610544684162776127536276249103703614959550004321078697174318373628903536343792137161110732585942180668407599015424353204657458611564361766921875064896168088471763772610931338645953287650633468828416362399798169668473860248585641486171569665690192671241969034301144769217783421491401110627522167241232807852554999387227072871714974645635962904039078618045847516672877162349832961757643319099329240646555295141048179566337610821023146003520448285298179630374201079430133142162187363810088075508448214398971527863815883403754417255312258097636820859916164113962265445354989955868071436603445177861191783916449641448530120305252725501305124234591450504774281963104711319331803662688370607916783173063126238014230111111337773331699897482538145647479493968537571947547255418401081410629003584270826299012870750720931161149062101943437223361038751058905213534342020665592181234926592232211273358747451769633937876732802078188340268169137179429180743139626227971662136872901456180892521731680180245184939990527684005850124903623172566483139277168550988102628785662558636729840226734748001533601089841282427643298335119039069620113538486748013316355878925043261910786331344728223586621195933371983630429193028902096461818304681079570089515691856140851853301105059935303015573120737544830619026762452803695108903739282929318593534665598379068323802923964919923763526681936090945091737930875542516526624652300157006562750563882838905078142751885873876038450492350075102848093724984562861849925125098903420667707462278437190069595848631349702217764650616052964436748347431531868164078103750564019452101548518178553883148693358113847272417434731875945480475703053095319431155030665503937205668580382067051586906193132271306793143860341646018755644491341186481289773538749513113564901923109456088728559453620639822353111328799833548354085503253991446900687403642525578146492608032028294128728073492039926413618584547521755820310894481294853172683130378539505606179409396752291556764521001175281951210062796217369072212214384719721096982755969736650882626979696681610488512673319320647359883175246234610352432157978043731738994647062946733901171750925254198197292001622213333472458594122393258816342765439611081190965748342953777349050976580630346437401802349198442122301441058203304121677081251710535075622937385414095511504113889124114769656046659406317107009040068815220742093019428488112967390155041917712680098152181907072713697295532848375982863061909044385604247757849403905138210063441402886333423962848620525263871624286575612235313122843914167179445878417635959884565314050632732139904563226794221216416886691421376556176271331115093984997573271206722226437852947169041810799691135790277821481835349775905380839437937727198890088359373133749102510878470146599156478317080355299228033390504903014195132900344546540034772802157934612810080298112517919615200343347140664521948915867199226146201612786220628343240713603002681366481634430839194882807716154608072901582257830410444945887611130402940258996424020085283703017596385989576459080017296863088881754473368936996440707776630957226517697780475038857652444466370344544703826636895701726156933123315303699703785345716578090603921993043582527521607830124771808492262598297335168541314797852088610923589530759116907436269850777369642059019134569643357519708054404790682078240412853036107299656533511102159843809504586986719639176853879215495049346112794131500532406379505386934073911894339060795253653243623656775743883436092682546955953215396708707083611994335104003207333893227229689892488730794251514582617573763122311149969457039731005657330212605149708261459731768346675784130544344249356678251005746220872514156713066446833373767981477103405856023225210675073236335172406020318538261271881145514505533703535039732070182528767166603700149987124151171826605186457656789921856304958667952947045024708866090296824201239478505102931255245437718513346368428414446507494704939753762262889730597460883472881962896603637051478318758688355989114380782156470545825510129736117298874280268254407505226793165045900425090535001694752901218898344249997960955703037220457170803410913037174119845540076755503027473694650315471878557688961045411546287427604245450648794084286529794820356717136126843475722386675665787469190516156991549098564669611048528146284648348355715478106727629608077620008386208967380669900183563944638026946834635346268312488700828127189089093776044750702494988457932330586112411921520924486163270004442909989928959237449175451359516456961819844553297439844237604527951920987808151355893472496043087077167515276531800449711869742142193614716089653175503208700445797801501830732135561702917088598047847922271895938834857989696170747748604727419257347132639858597928984935570283620451008476881295908030620599770761694599242609113050579551503289787254485672390577332970143003704201586271795302682614360441335313664639500765408546549349404541262345060536677286244889293146209981143934116984720372068380857367223984053436849843735483572300135038204031015850736917708070855258263297636832021743844367062249794252833605897414682687128407078139707737866729283581014708302097463959144605361444642543940484608296176713945834527489671844741699722727536854278331939362807334966535920489329496385921325880164813518983837972474379792740568146682741319778603381698156836270685781609760366558261293826257145600982722896693971779096604672961324252457508312633111694004324941962411092864797971569003814685924610217371939924167880278824923509350984524734045659094462150346156295946322947144740772607995956606337802022664148706149577962062290764364183789165018850299085982277802770534886771610241849114530799558232954540857451023915469199542930933220048149183394205657698240062281514172824200018678259702191247277153053957355029439395772180579015951762564038721925228894032207263662556210123186050916266877473406060117259727062326237876759939238819380136887955061410956966327558631668530274557051871756114851123256056958238100227675695023784378193508293955450626956900043956663339907562543307561472488645505578363023236697231173319306824861727386125049110371284776576131151063815816516942860427975149746060029087054976954742026171409206768975713447066877183268548562304833706235724325329233045193905707536271366521906342123839682678153701845352834414730360057902637839024332118777735982719360164484594204200470311380130506502211680350553498121296618857867221667952679524443005178025351289906309286395654927130039637196384281812325588604899848357999397581946162976591881907753694071627760887922990018493873267359281034840103433018411680904334252813838371247835791112290194373922160879945151670237205345188735491002096703283373023628899250970908762924149087575743025593260769150978399302770124345033337997831339934477936882078498206238910162364461651869869212336194960060502504264564578651690778263973655413770712003630774028248212382014614272929918245230849334518388687456112429592581208605757736660653230313199816937385418616889524562969953373142504499431522565300225569254251811745116008106776200787057795789724823941386896566122185308589289899737234792084245554745430033528301968613829836235066007447347584367888324445398079869664207740975504252499155675197205804655566517252137376507089755168963274581209446577640439154496439410531785481637487422613353587596888084250662414232353510119323510210346487049048040703672023188688551928700046720231919590601086261713348041327837115043039048011274966106722865628357378343689211041183070361599786696512731926228117580378312523343567231217649698595774399387110522836995006929076813411652931384183603297293284506932425282587220269304874322673800910894614927748911734400478095979700134175436958215205064064689070376704883753454238060231850301529457645094094646010237480656951577664624895251168783776184298516828431814133629915266160942811362682735074270636254217786379718678041163514548142430989573061501885570467651681138098516215145861986665329262457033227026077802574896953139346308557212212911770576798964965372414210646441486805655870968252166960090712813137257455659765642303022497901029084171315655073289276407107333925091786597134202318263126610420705797889545889011986711839371984126659109462749798629057717104804058205487228224788482067985774031244499648734138504742970091371200983853329496810345639639269079682057482914319350423667642939979144138023879298055110890816103815419568214737615231296418468292262543120072236208379313415601731798279903558882349400671681805866407112813988289895754447742913507493592966939124290325241705315782209729483920472342734668540095312964405040431349259179927623132212614404808890787103777435648888999996765053885872544650037231805592042269324687213628224681506147458640692166003293005739555379387468367612099992445346600503918786183501582600221397809671961647364023304347502119311553385753001105711258263612328389761308596565368403623663787454056236231719839477339847416599258565008959702614135267873511558095402229040016469959547189847128014183371713969359959916051033891322193094821676248389377828449513509160715456320329332634612322267381286838650986388916831476062122794125532058779661229465286950183281529993450970073403309383632907178567890587872347822975833506300635363203968105577500946348056624527399349673961806896390436135647111386719643273230600957194641825561131373103044322373885829670806889599693693888398269386578895735757621929101015771721663647828511276644481552429116546567326150436693862312867801653716495296520613420922197212619685483170983066283986646693424843539309918367112435788002308335275275880902731495080235881465602631733963102933474083639320174361955669858869658708879907348227264083609459341910388323609069812755137797532994215400119484956564542999307035904005574604794756774780501161974379392229269851929690837181227957824280563575934608229016138156406446266120175963988162766778989254365334618889640030479242919062402595519026263117932100511016479938953524367450541773907510206825948479938062642901526415522528659489279590415930608623754637795953643270299060096039530171085542524104071002114691018618294313123114949470524352197451341339973192362864326896596557103401723592769283279621540563040710801865642547008732154976755335118661791663818415218575578942455615978098917314679544286932785939220299584400045986438534661274627165272031675401997112960915870856116042395321072203053757902452536588230244625497457108856474028164441624282694808940031676260366372735901796014105052222984724849884812662200206118454650231402879317945248558149107532569018604449661381113121424273375310607163194313653210764532196898352167599471746263811517890829844785691835873183895850101753270353950761033327644036918563694632650304424223405870945994308955635651849293194340818836611346877516839039194185115091988107700336317530559585766448382861720029086752291672888130844930941537980465917853238809329195594707068617692628858072423197037347299443806948581006953740427999366733870757477956875697578417256547147721577559103131165741000228250195208893027271949498018246661853385902628353592182889568136541457718589345190211871861627037872751055966645630113235429201108508260768305165389845108479035656704107053550003053883505327693186258563611201516405154703796542663049609115494079083857304293145988806662436766982549798429163961224516644253131125693143950558689008785639249588698957038279341670669611689809684414767361404154851084888787417435307670684528655721699390318535609137717795770081424632400867134269082400100035059584172476708156711764429952555795030563304807629336688206788436917413195931045625459395414619994879833816406570559074575365146457653844734409799356749449827901866858146904258117830344676333005772713854078832420290772801983338117777845235627126579763065008163231992595118818694737917026007985825902655397654569357270363643976588349385892663221238374935952296930788892634343853706569079429841965664441666340363118111701248013251522245887215959766181066685949889253647635505750181616194138789483952144092583144283531693753889361619110051383274010916234376252484406284245071251064852462662869341204958987028707818596584669280037152014472386104911160508034452255627027371407564862739966557639179344788840302891447442668599426800278540504021406039906435800434714911520146636257616495427691387421985939931768585810632045227784076735753330281596308735734087394473678665242962091993840321377229669082933772312909093848764163182176627025804297288527165209711865933241314955712260335230863143488418740827979008672120349575935520673407429377627737253570482987092824850776338848649854203573975685876511180795668673494254458684048647311196797658945392940549950920772230192160849653925591704667831725112643518493656846755160833070465751773460211807490461432700770991269528990908843162856959868241038879068945159957349534577726354491780416853211103324812707795531661950069822659696884508874548630698042063167752804528044050475628406928055982464651686817050717825922981967838085899012687555950338816049746051614507053657723044452109738114057571092182408506934200682116444639738153446881862881762846767602771153458841576258274551000104464738522093056399871108587168969261914069147531139819803536597806527345465131089949025067986982682463360040197315178886300672485806978866063439293521489199803674928793549290369999225809036578238544539536170891490977604335646668861483125419761921227249444396098398641266911106105984776118829207093710438615527964872503986775006868999100292976834803183580482658556291882459844364651714297675211787619512316807454597707256047941529005731329599503183144105554908194724715686736218322135976415788803840888622224637402399960235368840862385900714648044857759595527544190480291841117355761881408461198300518169213167489290402029919296598214081151463578399285224143709786225375214397779722329027752431403690806365147577240024408327709810315143197104989180521509166827295859628933268998965510226597140490293518049313676608734808974792843421296584539015088458024192431484656834720396921608720411389198403163225327639659570155789937332846859129236255224061445831664044496552322824041620636516607122294015825367976406918862730027476343404934774673959466936728415692311198120392130846702489454900371012569127003602213276703759647417385383799291996732817123646413943101906044067954780767579665255469443312202862471386881535286172677404848377375145509031000347776693332331759326506153563736834955160757978421245723481049175872901298639195882347368014881905673826139059692471709018354084368305878093258172357253362627759631538655689388105149361903594751548753791086992602258850405604260347407015556151664305354407097599183615209407718201452267247084965374534699873949231636033074373390018701415777575591565276444012695100669820382687555077830742247048931425239729629034413231282801051710602603547027331182028642737367080930568695784091718197318474814652049103257821201721880444459446275276939718746674319212274236017810143540118485934624472458087653710960161101839114323125873523819065955081379717304184655502787653552000472215827177787196761467083590685836396147371182277450477442825136198243551493850979480597284306056512629533880222395244516299416366019723101077966047615798126638602732777968201827596975997918428570074142450544976824645489720309770669087239432515893500895772080042320430810949385972964883314648735998514726183637176085652062625265199019362910477635669044471038391553966572162015370478034922983119655405867198049266632020550428957526753269350261201056628003782059767601787012827969320316033189843692095270054753101162590849033009167258727520006433717494009029129805512198516442439480232151909456648457688884283336514385282125189573380492150514104362572473598237137567774625505892913603324027646501267057109245355227837360678294225583462001731012185602081650486715055933749129149742445037962648276523710074876607425689204058876929864449761692433779548181007529047032891034254869050510579585237447782672831318325680577003452575969754061833234000326237990794301447607890875148445408960343115767335458656479081713305055136670693109379095632759595212287094474986280711390924640256180384642932944191400550747801714863964348345253383541867991268377942293443900656532142156476976084294207168658084825770496643307665802317129214634203261154521474780623554171991294119321770090932523220479747500256786865634784663523502456124256383751243406724549592948795045346230935636910922502806674323133398156757048460090122824724642886522007825830588673999673446288373333252560712290441315503232218476528705074974679358932310629001612373391937331816534963230060407243865849476602144362608353898235763068236658477106306487807343932988397384503226549386969263048124497229836481079302443220458648459482476970308249751940223128388005593683167356602332680305433422685207424240725838539844419113889548170172292135111544177817594825720381039865003740549239145906495592560243002651946853160649590399130040476640664363710425929331664486972838970255814738387339678565413870913117122142844107224589251148833042424461249866169132388580753673687624258842333641965646244124931320191296937189461126301135634066225095437770807957624495005901142885076091034969062741585543053792066890916395240648807367937515420242489805148997380638527009262367830721267957623062861181746427031364113442873232347057711234048367230872013876470532586892997157499843869992588929590246053276872903382899584660723105762350413204766613354014386106631249846167959625703011787933247895784077458203793971243302053428834057534863731133529004409690731295004338730267298615612150526020630917277319630158953364587413599786704764475739181256075128250731211733729226540908951845856846987886381927881037016915544539238557758096392321464102451259359533003177604377490507168186437975092842904600694725085254669425347035096020131424040180125953126837977356554239267770847061286991229771685274817482309072741558611669853094045559104608176895550041879379149299618679242089753823914008432837956569742879584931398414827173343680641219016000590310993371277259240959732220336245164567026542062487668276521531869245953709533298786177909496544814904422478917676848731923565639247666006004679415238037487928458382076403682614784020369582798993560647502294668254624465306987079058487192388523835535546292809664480835706552394527956829276458794825761090361038221176798670319501541748793122261779385949758812911677321605612959315721390584700151806881096062886632988000691371587153846332153582159377235005773922819742115292597450382042002572567375771569881539749850582410292906481811469511822051617980471978829762161071387474411125470355002556794755132652757516939437052349004283764838155896192035437806058135327801648387099850563947042144496947766813489560161608670832267907035518154014111979574937475715018211753280315901798122446970412739950502508879023123326774453218775542078821300127436769672051518038058427076816972966858706982556608514945349966120209180704900097402024173251526836087458847824961039610982043863782771812869464388399863484631047996232808375734328188916967343786154031275447760034360154058500334253310074386378509968912238065828435448381071320613401103270064415759826380398451085970485706479853257572753126127578602431425176476323847845472505051671604564321381780200411034361288266918660588717491121788810652538010150613698517456689303289870513940108204482436414867582881602829428985109282776756188816247290698775325467200360192603167267189587652787726203710704497237108029779215196895919439324381141987156469012616652019597503781441448105154073634009830814695735010475800507128148480624129360380998067951117894363462839983578560321701342470192329538040868511713075914825211543108141351531168846690724637530172992839892333761205669425613851279912566497336434097217241811896641880107298706679004809846228944174748609561479528930875814310030732792777679979919575200263073331616744336670277383400727259151657506738347913088552958188411614309249808374081647669835002571588415552202952762052386715429675051334176950013583506797056612364301727570017162318921683678760235029946743189331037286695243707723124365960246144356838155674306285647671751639685241417427447089283840715845584826552131197141635485932857315703515930806269488105112292850027175351588819316117062538797495253525921578975417691324056142995962802538223764937825396190112813628975776070462712363342959916822443069687824822428922470643240450315688133006488769042950776059721491844872853885616098131630717260226339184770965141525428627456391233328761792288552873392172227306432107058090922228825055608887605693950540162793546282847338323930704787820300733601069854041672013929330180676372004654439449684663330645052668177927560982788884198311069578069358126049644141785168187450472040571080258328053077717313422854854680800107910882469605467596165062053068184253700828048103625155667607951904254150670399611998516930032243706716196685472951158596364159341865295920690603617084054680637180748570986989276050014964484280931885025685927258870367317320303046758533949333392026794627746876815577730476384398655449617588592083417108944075637902612942266482859126729067656801173304323034655026537798641906691907377351738716523311872735203915091365493878507821426556000124220699112645740227287780981810994648067940753461374755423028751518743688429982408435207220127966747544317225978295204226736881557272058584052863452217286221636534172656043791365240478421414372832790405011520676218417288231862540029698863833259633405747570415292923696183325919288364624125221850651584075479801281957325663565295108966219713003083936408539419343372998165133824360723155929311375637991207606658241105618874142575763806989905990157852916391819624576158544877425690580690948752029549615283466007809956434797019090840451798322073564215709263867300296631468319784570222746392742843234264869792785371996270114011813361124271205614961500454329356397362619844978382775154611261804208038481414874811416752946292874312705637355433413853500448592351920590702389040540207182927164890736918018506913833243538308255153432512133041558881738663920070992669093901478514279963909143562847828564513003337474301234110983200766817819133451923968582992566710570576468231615526028914485462966953139472493991470862832172264530489732551027498731297110045845018029993305623553108802354372350400843672204587900395782695751818525575266970577330345189686314840678596670513910738604395431574447934024014539992937460604654463990636942540666642598237962863306616387269344366870426153730448316964178322325744781446477632731783663154183441039946360755393337023989244167572361910873770164262850391431753556169974361894953066146917350079072763955671162203414090870875868411778418351378025575611959547635000994838776599756433949804610784063803842858309292076998547774292070515701679656117535452407818041073785258219510386428507485466828881686851793400271736542043931532348761841239428959041551481505592467807565891587161355825240953598528243355336123796684212198975360040349293976075076570771608499043574965764311558195418032477345097288680395501438758640398367545334290997993774033117207117541798602332505939254384644043743257708460560145362308902011789025864639479245835321019197870330812280779099795643717346412741352382078664734800020129834255178178109189339616362503978560576399571180085063379835964725439575460813707397753871396780070444387139955678681956429108303466234903084848745367846966336300696729125118846076277878776018506784596206557949000509883564315371754989525920774318522143805537250727936259664598281606314777987486938523473483403395524515315891620616540527896450670322883821217027965106943547326946459196523566055200425966318824521598270530520785428675085756543185672985032825592202966096686719630716682631927284734495979694255715846762288709560401847833185610788295505392784643753408111541827207530666507475955296489189800115214922512997138368895867535523813141014767167891182803653366464471402674391426372835038792924098551998399315040992554707195615068612433001259812800974364229315337068760454340382533733176328745574388323344433474361024422321728124239655930798934800619263440518189317853540062073711708324216034104027073889919677004331418359659323493176171003068860353346015291139187349124578899017858563161062337891923823579364263737967457006866718138107892456201972459999730337853494530487692117045906870837936560840411094770387833089235523884474218852495939124975871149289494649216624972392491159235944037279286719759689685291999383260769958644615757340567728040394691141343427442775403597488343866396109289907158175651635876165326494024013127604871716385078679344485530990468993369152076961858765147350017672187447372133245787466761560654060385223506676166623349418115342218713966191970886451844218958243836063445017432425213792056631030848448397253151643607096269987469306844378476328415876190309337696699042116282331689441169544239037398093975140074706201884021398167367238330910077974007310916853839088983446949977469544349245968084662758760265419154688106422879231039533063938689466473069214542951863205881152390400131346944725371736720801775820795395409486373254202872549278838090184479980463885716757487724437598845351656030823542211197258611204053333184126988330812774540710796627494886230690063282501476556072607009254921148211542411006554939678892263469565238312564368564465325962403356150600152207124181509840379772430988556877081554365960735096116635827783820748005390814426335374324253559529320684735283586511223210890357386654241969857235802255246419343427299012595623667342434693669432568105621252729474700859282246336554442846172799339367323470854696715043570014372415650414312357183179494676473791882322283587074427944855637533905348008112966116427678247256856275431431122723260221752833554909756008772151426764925174757106653153251095143527063669640200327682564638966744046134259411425832949469763133266089181899657371535830096799382298951875581440025619567133583228458696231348554282000147043757301932447693590696575460330335349791769247096460529271467188635537736861420980543386287109768949216970998093059962678073410859405781314292587319253227339041076492093617688405652470075538702056468355078327878909695766886643393269641361269612918184361780626722288285002498049744680803033236699373495760415687564521928218663020256861945032118691185232394958569081591522088357964165100529038442759493703107906521290936718623165134183990175739370216105706885893616967757111483666999586437877556332025336145854676737042350167252525416711148593901264337855063840320948513528259014022223343669878421887208967374479467677869733323616156288654784550201024266946867743518482701584932636447201791147315012495425001897526165714090580045677704608379901875901736437885168684343051578197739031316144692412127725227464222102828797522751412931922996442993742153668692245494637477219217530433794307684942281297241842487497103819824292689762751685611022671857660867166438487521519139337427505179513937443756228025460881385092238112238921341198920962424457334866575120434915837453934052504494214926793824177911874383513755263168320298497714845360263264309112673434215361693136782205078012927804320152269814375932863604528631021510612375041987584814090684510973197922465739737761163390760866733566329139865961877253865782602839812971000188634156056654871100385128866893855240723804677713822001943392693382782827161492187979878413494613291061968421626836247716299002105636509673353963463987074153103327292457613712969063595824606391445187078159936248320225853160701890991204752485486658113744152164060540955077457660295873251363810255709442631728360775001143219285698287965036578473235651247214256239701063383783657539054460323544322782696009349764675901100266689045001847164439382940215404047657297209258673552662718602398142875838550386697924941738370451198273348146118353413720824259856494257393998692183008400627215112002135688381080472788368154608030268056137488136062150334164456125626228261812296372723351038942922777029336309266301753195766254650456391420612829206207446669263054837616607019587927921954066104205503046524063975014163057342252138140854932722370915309548553735859577091044759579983202950148198941216245105573171139207209590149794555294899897253094391233976379697702322267970991014479976283818200555469381015344212333091710068154928701743315571140008598404477115685580366995598455192233001700728271601417035273785515012592181157858817083185239870670845407117003831204411438406021306969349045003363167189248737409903746806000717628477890668900088948215342025673483985730390726436010241204897364850803708118831365798696168019220090607017894881842565364310459403635082643153615742047735165692466359475890069270304384801012097803207212706076709636491561488260651755352397770640581463292769494213880353202214215946499830397010709321054276116358058369736566660326960804411142078880476074424327266347840732759030060062013209127890684673376097508883439574443198958706285064545147470309593444663065776509259054744383315481494551665480428426123389074763697941295593463602917817111794445488970641701885410976123740598509726357563609188607483797888924680252395754925393135448499855450865018782252018577942156448771588693311450394697670807176896690637121172571429986848646054197415336268186097509467773119154554550233713154667721392895084663556433468573633834161945557244996044511301161771586172313407664660420571771126607062476277465450014671746099540833880759880776876539573788892230855367384305956783328800142212748413559221545774922783460995242638699565661946431602396715214882241353573900937962033741543705551468772822691278560889924767629637111050470859822026547302062342669324129284860673673708105052862432018175609596002946155762025682817076189518801712691680869369476843576864100353507486705923287268727895852183913529320558182842839328001154723638653846013109343843029725624526075928155939491537684215151973202582288709758821933912443726422214022881872027524216031720607000460049112885937062486080733675593196410242978451776240091196007010937357379561630898471941640036274783707143115212680377765541934758109079811918858508762564861665207615108976496176477592161365506183534608620841446811182750616800446668872716332941025274007902806598514387576965197436962019468253772174352851816202273138348479651514616022430277644969284194905120566950667939820440656844307399013068615698904652250777778475535953462977392474564066408475528306608194813020648116951550078168402638749383084577258208124063560098372242048109745471295283346162476057283072454083086351313801196462896820350394176731429909091262821481443496069492725751123971990588029862940158923336903256598872745232873909719577766853672173989474674015672663763653379135456653370801438677300067853633948261492534426749182957967510169420381275316011978239470982892863292876727833527593568311069864669934207162527885868365333630147718553594042897551552648434771078961682649648245690669637360254968293229843093585906324213804559060716874003010473447086401810292525795265105680496339473149791176072948023500111692775319192340133251465632944993218090439139968019828896925708753250293425527551511660481905820944868274165758966207062365632910167434485047052485369562182573758712646158703100091555197043569364247804303643204299471279168149590595189368481396285531834982908964291144328443988745730606538129221099238121671138730082954523890870784808535239987513799142730860457090367491409240880072449899374360792224573702487559547871389754547649588358501904680373931420603078345071755715806610636783587984678671658366314183310829670982873717525042437324213745917150009939979466462426012055920968206965481229532899264386097780665214083098587296200446957743277645203565474948922969240453902166116333432021459027011569240685452102959074357195538321597409309588113221172944834921867450778001992969322965920531448847180201786444453168524214789347966542421607730075821613587874044943905065468108896669020436280501956368920655445470783836478046362247253829938963861086460907646808775916172650668343208630372600124282103956174674448508566226773788918272913032553294376152413222572889897103811431592953905084430682037351732839755566279338722377735393313944781163523018876684944358272205125191730408340800021166806122394992603174641453022324773708291604064094958705068879959708957727425521653784080581106213567932318125635050467162771070626315770708555313914246157707613110645096992051286963656707253368526869310181942384674281988466238429756537484262955034440951440413676673150759769238144697735334751834155336911739167025388607299917253629760679609907657238705121232066380070024046570073794239057191553173986107872281366151252112408297956626575152821998117391100466711709099492683763400248989974993223816509108277664224596712740811648975769635842700378512711971633793730388744645518544682939515849924535488849347923983760534336553726289777745083204890557114450886336760039502573310726886787346925282670827328179409217773055194151278894053350147724234960253718388663318658040937525918274467400781875342624732240667813127119590098853377162972283416148679920697345109321655905152297328605514977902669371510383862874423367786395202648550019202779529773166713909892812451091935591658184173406953606778978640829892124563583026620698146965443568093879433337311842368021368298722450275783524992071417676928771364672955594019592642903864140824592738606686431441861221269003862192990998812202710079287233280286720760733681638607040480588612834588596513166208663683632041175067312594667997884274723467221130210223029078984543304880410811663421502429552623566962393349299066796875237648025251700637726286472344739012294716722273229284985885859700866590696984283807470035801093802772457816329638239962559980589316300854976620021548802741317125113663532504881202348264318969535431976244384701168279570410633767965296522255669473691548952661378970219733073718812981351123207469503702788974626688518032891989725308964906201782728480026640253134590288619522647504508781584572069576406769391604896504931081003679703752390568131483162785743218788539162187703034187430005277145116974697957145919987667175726914963146335122464570927806115233606382351672226158106711692757816488771222363709966326749278256254535982242384738942313820333709372889408928984299751881862537247705919144790981624037689977816761510534419734480976303650744159319990174243217795181316565861736867209492935827256601299235062377608948371210064823450902224634143534070582278991131770307042118573831508747210763031314257087423588080707815041361655411049379289227655165722913941303088566574835401102478859044466950381615578389250262841963621737487224360808055496896814456355066304503875493715190223314926291170637505086276297302003715109978159961900335702918016226017002393345772040582967155641580395707242283171657536578973622364506168341222789706061683120208857867169559928565244499785213121792842124708423118284757164006793707645301473746097783437360184365707139277677773479088770009269706182661878405943838443362884613108204845647763702656287919800142448019056145353059078864908228099490289244362807641263683485693573733678657425088265741068049529177511186998391059167918296763444916501582276809808718388556296364440650781524722787859792065377309076073684108499070106650737917360432993048959388933178752706798724745347737397377180697085935792015305886593748924386004734217320533436596409553939556870898256914677986027299564448933873096241214268014522572885865697050111598968444096147178713696128019139156818479823520159596506113076660361684507704297475746971045467967082519319498892529716157295308425125167422648503350035017143752712519254531010550306380834705363711372676966348551015742292297685801957007692503128121207052764214199642483295678752629924990937512895073244252073315196199439535261106771122557560270025837554019657707706648187547051879603128813777908035061556650393614250784021655195751585300058330869022104512458082256673163266686361401370075487178475846749047451227530204461205488869153901261139424948275004255694590742121152858183408175654944282351027771640943378067428341738595275311471140397969460996247198934748898877040999827958441439676694590415814497309987149875870563258415258854621357144131925036010886092346592965056911680357547648383765690989493613304645018593159519790927546463127060542742312898150380556969444800243197290846043527842752023251427973373342337730880690692259516349334655850841153030631470159897807563197361797352953977712644629405962630281844530865074941292283258637332671703302169520935420374235556613120693198574437024081118957459560664824952103473087241522280297497989080105408258682677791680018910439825152491521592340637346286838572988569875878114613349420963071021381944527558809489637771184102337306310627228989451597576937800258169147938255896847164820058652087241641928333544783790516149260716008935080008708129948769256982734811661921810933313636564943407821948919917644773132852709683966474311718506006702682226883625872701868392017274600111721965585887273917256789147672218389898116387482022709206658075798852727595389062738267478608738121078833113399622657107108281035254973170967351195805741027731346307959061051697387612221646010914763072262247427373444771611503920601184976114093901605680269808996262174101718460788561441792755678798178868163163600981625128462428874792343970092570171507183163154803032637278084198060175790834716522723678627569177540623682497395863264336526915640479856662094488293634267508379519781601756597746242577527255104121220542344904399916866233144616512280309428759608418174707242686518978933272280022273939305325193878860570605471103091253072237703667743025797742003530731086486837165849058754624483859659155451983018086045831689836805676607121592620743391338349945850099411831514388398627699314504722130675420132432051597186047399537710059441541770407619483213279112582952540561232818397527092647568372078273443013037400239115921012125325910444718843477222916806849817222349005909544713236234984864196937484308827008388226908817795356969276658955590642375555123127214059020374562333961259261779892620465629074915165008072259909852308618841662457891856360750886786789102275948871933908875541775870420818167327894447774011826042176327934724747244159245554805025593980429738709364436406919817570281581826935548467024683819053431843149142154315733086290268134440007102386895769236532082668659931034888749260360689034719504527140336341223306045535677564878086730671006018106431119623017936722406097705893012390876083285528047247371873922403498182642479153589914099602851177056854046106347588630496278719949635845414096941126416379841533057147214649142459896821964306214165511285521646280405141270063842069426901879597298154333975744551573007306109039932109990146835935811136499266456205345354044949950614872039549741381293376182762282601568679064684474064009490412712793657460204953400891409315406947805766053623572621440992451180721845483595465289940152685945260870676239517998769786808677473557233696085777209517960345833878835443421450045741372956444747046796203885791677627148130865471025771950963272017778964270765658542847225807016869764546543411565656189072367291440102176057121155034360863425428456491107197613943830821796459662281777105263287343422040300359389283704404449919689847801094077352043891933682179316520542091448082804330421280513158351931215534844609176383250397530532366230565104891183210447725553915119893573517410570671537184543641305638531984493491045637548571219739471912377166661533665794865272173796397801212449618907809923251089375650225975359077210526357240952727978142419594997071529128752258813754428327267685399688447039668771655263498434965788981731595418957543620314324383885678056132598274149848250016372601439492544171873688915164718955682823917959661076547374808665876477778764951749648838224884338781816636541420248155497091995744617853700099442722186923360410553561963311772296180902093150593500177239779193063236708705270829666583314948952217820768278360444859507313528313588427345703623546612235856534975032850876763744634847947010815237003709043662877630513390717964646794411096942754110706275353956718957252286607020616037900944336514046864795246583216761805089580163303093019260746497778299591481075740272515068673440884189285452644782169482906771059889325660008636275537864490314693204641278674846351823810173336878551532027472640855036589836270839286269221515673962885164290399294874218011658104304648514123342877847814417770635515244505467185922919418260217370411272930354722735075499712144914447505111308905368245463401787784371379002277191204011128978922687865856920836368834135614806796801148571658005568687160828784473301725949443104971378708511016386764580767515843638602876136581588470759552388223671460253131821552265549703857238871437989569357632718490034353770105865935079724004445785200814841181705396882779358701982366326407657465704574934931619749668557182877369907367834182006408510489120528831188592514995337034659866268778828085135025254748176148412725941703469472708258411946719285780910012475972622319590938507116595949498065616534724283720819419615124925366267321355079514222866841634534404035542711100168965484983444683217106937484444201937169838713081146093472170882574892979827984803852397048172798509079283781163267923799967173904436273335027744897727671737965950471541644072354614773141469145520938753377582444577322556927755339671306873492479430414420166462578461830661485789353438082945453788167427833945638001863559739966001701758574969349317200837285624315182596822295682352659349231348193685423862638578903636036937988630396469220595446863299315992389940558242527083889359190289805785186989994786820732559684663245354178033044134678803807118387436143308801985401632033222254272941185079808930333176877275803796632472431718059708200805411177008708062146890581419269997307029694466541079426517714349388260696966564100769763927841979534650675978559454015929617670030137678318074006483496903114225790905207389300272980365956876380583922040707486365271698447958419065782894972929331513204636947946826046621784103537326779227178716442542930187125576075225806900291982674648249195748601153517252739060069702012382225277054125126240217376965026786783203034377455741822572936864981534751097586381767657490103887720838511206546438884766851354605406907729957480560167912736734087047964787269696383244931517327742444972787102464408324324272454654576562582667560880541220699573397414073138791412538819923171807318633267248867242865916660941852900402029730156305664661360281949312091878388064743264396256437957271544644658790376424130920280155538098183469004019774285207750564483342453664614643755209239427303920617529223339997110016735555722654792098606997949522407127681390438188364935317699013502642100402769675060233331821312730451797833931398312209025507505382663158670079442868598676938492994754925599512942844783918579310021089631449095099794052457474007487037412208321562167623882738231098190687613004568024833796942815527956787650652358359568947177839136819784268456950614211483387872708302674957861980798861989279790111193287500364582661450017387868866488275213855935150061901113797166314898773658348878443070920849610714190131208556888361690761287534264439359102260992376736453421307375082884072163343164946774796286839044662920407150024942642819839018621988592034269839127115642307424294010615155307232866077500976535299767475830221941442883438861445673324338703955894955886221415101290737581370748290673512247585401866651420919598010397199624635841985782320089081966887230074793544641885853853724435305860974581794339013524616978138614663883628091077288634061486554328607473321261691897296098226624780092023162432954357309583983792103495203061032441460156648670652359592925758903122572877810182032844386452199519728958427327390918798178508335777254084348240513246889776337424279293301354858268585994571134490764440863082608905021756779246056090582134024433694129813066548295187757525225171239955483154155358469536689873595673731713906600832753444157154571197172548007408529401991829849626174125516985870759638862317441311140471408273649123061273588999612433151179597975833233038373450178588622836051855437382043642322762662761138710365170108923032247399243116931831086254207327570021270709206668065253199116915972700979127117908533631734054467915878869929779279144989608290082868525784141107818184985057422477299872235334125707044918713243295368710640411983885511256495917934697864797481795285074978073275080540940963393873766356886828730025333426033452755315324233520662512972621807667233614819023667848885942678791198466326330554930389621855282884720635352205412582711900588794034476665286509557051495186747613267330424207153000622940714849795395109793624832693095385438985995506998442395734096193238474307052530534792082295293659407078066636015732920335060595019208195904752541942291387147246937928410254050532076268583226348568833959602106245769446907023147580372806666768314966797425976100558255904728409046679812440555198464001650616951542596518757341194286949366889628954056973376258613833497977157206729577294988448149695196508441288109085564416614786707766357634112935027022370622906195554977110095630792908048267050039014363186806765681700095433376732564927333153824799621565960443275419341114941418577022374171216482925687367592235093595500196041532720874012338997850687605614275546944740574087653522610018500155009600689091359503808779349473040044911412939177902042603093403461647188729428860092912610413589803902965934459327311486534797446011638629112091951709129333037236173593839649358247347650182581750149825172590559664882564246471790683328126534549796422189344698719546151705544940134824068150391476856664585840675289584778716853148651457120230792895250055067703917475569654556187293721129798956870954603206646132076117989753723481092704348355215310290215269049902419564553225211976639025441445478942059850949485102126184361885962595856429526194825020097641721099984392979795295379472849458731814951313401737826623928904065354534420469432793575155571878142597255815924132523884195837686137507618563582249368592589149864842100646993926153224830806598565949171223448045678978029715775362502071825504535544533194454590774138703992251677088652928146178300783695308242640911343117425596906641593374308950625977826214165137168879865435131711520805693873107321598795721365592253697208944753688772508387504564444230120352198708410755444523436249601689546952374326523269396128723471894598510565158302240092701443071675520504543030823329809603059989457440538462228636628683933895107537217789104282228356923861262552506187362879775262815021502052892897448731782849844864520147216667619702630320828807669253853169156032699722584684944107774141384666688033567094951982332071731137918600302467071212036928986297304993039837609525991556906565634997985143638142861501119066080983658151038190968159620869260601111582937639982175635039380745669406987919067022379808252712701631113914602423689614671623598220463157784076251033915608660945121494883391887605593820958444687867367252897982428620002044038554772102198418127126637133603958386658215730132975802970939636745534744825236366530043070798841635622148115363168652346716886308646326409314371535657977894173966199192582254267579217039344337897019480400804160453251421845973777637399216879710939541878652694205634056526715074205846008021394104276294015605683548356398639024653988670930102309909883812051706473311529084989297932577555198931966800096477620015814590233229861790766379842974232175544672560612333276548208784306566488827529381275841034159984317718452668042674756995920564047471568808229828046100309411945757965525042892865512341079604113363593737497431247844616861846597720399685473575133197497869321692032063727965795819354634268157564766522028253407240459531158750046722873100350350941492331630598037424558532599578012983126214109510755659679719243451704118274554771797900608968409387612368980028738429995370183191748089546927497034407619907971468186331146782113505839081495793150441817153511360840955698007716646426412225357873683784830477969823693250623209587162260285718265158329437434033911221088236370518543850047661341170735536357034835807426697931511089880932369542776890141465918541200775303373541934113175971599827977927863573786518121572960644028891983455450644328413190130179277050164191179596756044816050644592957456405832831501484854759588000886650800171406325377349656539635375222186175223750992912566669872390314054891407004886801692526121964760166600502741056766796472851394790185017986744304907191035926208576177129318113415971757266260010659863102766823318976844425899027856522314695454791124675554466519688623372538066619103482534855650870545349444683431573029696919047109737169963683148452219618188983615357406291284906914018535043855360111631175217061565727412824546908228445676877898595095845716356530949668749241223209132536505823418971504309451362792184725488357799750103007793607108726393664761324066263446493946558590408020985986952003317929642716746385998256274587537545445787882109897338655608004035074268224704778914503604576406410574419738353960915548674203973946451092070699404090069648914412201034710734602493739279467070188314250925098261622269115192369763218091904306198262524218600439952694406090882695657052055338407835479601489714308923083945396927972900479133823631243965173583139932423424729578033289861946781706076949996772990312375167718603382696903186493352376679679088310378814501618929264437529771600081644542932759893497754697280025697820453453347176680359219417054526899432114245513503756169801723879284672665154196481747094165273572111408261467931701219348763052203801449327653849056804778041232934354807554457828103258706405732244672760526627621929991441953903846385402898311093937215423404155290336801270021038744988806122410578532911582321922356595028099659117401064530114367377154626777173094308188261842152231830981168196371807134265977491679943249020533701420103099605962568581560312300107444447333879427390647097304217563840543574477837185355309778292860584379397504003587444704011687144921719695580960240608697983463991242435775098488188778069939921092188197740213832098807178181449516581425238076172952764954570152688263348355004247206622363227026453959404441059353914941385537710269940341216156728388645796116288062840285953261314754518292836807934070718586292266824041072549803607282864097393466052345986199375638053495610932427405431270237003349722496823844193645605637021030201474918616373638471903297268705129211068726888193619611545696465829576813902676584623122668740971564773385536136098971306879394423784046560979066734353353740518981809419120556593145207135940693062185855407022966946789418335239627456642490401657362369253418482611196256811406178965520019513727474584706813043685234014866906527503975537496387494165524998903737673468471759586898345521044993731230221222040193680799746518858227052965896972686240652633608879041630098219685229443930592208952968526408114805710673754186365510944127590418336656173234767963102840094715448052921329341718735820883970423371216457451176720428447238515789831862341968124541019288985993234192068474561470606041579852512959575872761521091782557935458472173673639356374487489606958521997949282618978718988846697792677053100024888568534395070752092055756824910144306388953545244920608536528598922544084078267469329487500615514020071275911604969543729846932905228191217919587102366795344408716161655382553145428079627132051725735150173111361041111143250667222766299360134820672061230602941394648419406454624751076983127411814302922287533572839470869234605011537023343564465589756549546263347160251430178850448721797758598971143237647973670162928993268240360014993738666294675177235174057224675054721599960149486818965970864304837477510479890138300624717258295617715710892837805814494740199920738017372657875958788701304728385680748327923739693618782219653606615872025996725648664235426488549513006343752823143623339688441735773202339655381581331773091297627367231846644140011002394878882671343024116744552598509549249826447333548957845227335625644732659565717379456872174514269308096684294387168406161952717924654621287487982075138722980099738504195722127487493770619095966693719405457135433503180242889868842208588779145582280353359504018844342716589708657425625771798135868856021960784302766349305758648775151499310105425015977481236954214986572449764169872971601351511517431645300034142441625246523842086878793266654710618641821391159104513276148199690691115945761400103034855119699979746950749845075363681267867929164827420066383734526237413519440052796778449600167558802890964208346607955280020112213390527475467745313717270283333522433693399180705706112518525607193879707356439077673876501356146917295209470580809417268092473242165569013466353810733550150790898085471350099180000588892040594844763480963374604302756068148359884833238738067127661300399419730999301025438996651014592263953486178121004319024050441723374801744935244525858282278828646565464207973496369753923737407727033904608039897860973616117944390646525811726273252422833652002142114484166465759417681280997420339692768744167378473690449128804174921837556795558400705339611500894776047866595667965946619448080861125107109482057215994710211339281237072210405709849374193819910521313961277709908449384680943097984704931374957437582288850258006913799404513340127701384012297003152484799760437478972651683635810932218109672857351020837521481177948551382042006081927292268820742989956678143212717326772356552474521482597950152797785234202796286673965338443510060440017986976288259562168588020681326437132390065612147027676925417719024637556577623969250004851954870259101424229687508003402077811911576945855381811251774961671559433715577869091229644738301816362001607498429715731423993880220255643720540680832098612903501202965321256722159438396777501564263498744141944062272558754665037891029557883710096410595060672736084931991727047776820939350144310437778767113792950243089097634291822674435646176682977691694005304011231391904878251357507998484140716762517172156229609514947577754329879590059004607778601905545848872674996213874218282832559587692697038306020033836408863171596027532799158894808100177699692771044138237800579129129099075660108063474117522944920051672362525652668324442574402308395514694223510626939597773600350897115910972243375366830227563370948201438252924953780807576103016263744764568709353827504815394225122094594387905577137174235096670397538664466316571851991822324867491058354301123052092369160544518366360673440758934167920651547229149963691172887759382987051464729079549739523438037253091654639449899880877756668289483561646026025292709390182456553530113772993243406198090264379097219281735317564614021177385911118012970533515921239607437617014962792016170574193809151472327345137809268562689699379829728822679377653325276823591219698206537398075809668115496969526063073433923934508122658349247444809479782020665071439889319827734220831783177956504230801376368789128803868649771090553232236829937436294062742187019988177652804878096528564892816744146524515621348430136739599308028129046924463266269259993579441502912684123382513898686017403594137372009187054815775012315084315520426716117575270293190720452342863873679825790871821565785463315691316786439178552117754133023686194849063450988452745927694410255662967363948063105586092527844919983194718375001511293130233590571701583470884988622872308282967353053546662303019756960336184995769812802489785412177316354379478402379801569593269462651266553845002869868219146948923120136616039301946520463776930252359584604890887710861590424877852018164741970363170303682333578912036914135237765521373039555601100381467203719331565929185742804283988645337249471809193111857963443629623533750384040356636825689306584691532147081642370170490621476977442991157232693242129954971133703265127368574499307845081289380256071458298874371086561133697457626351215772450093576626204786130104049771560748117446026124860533297100396641589808428079534774433140494630091225761872662706652844845258632379430412695081511418007590433104636251601055763145297888774940641336721145268304563985613153353221696092667081503729923918145275395769261684896126698469381059003483577611474365152150803392418980910247131060738199412296325176365829506259220112492944162033020239748948987129797479881363313257445432246169237984850220801733556397651850490659546049201135391343872103484904611012368938599539847439627150277475528451658435625730691375712783962876081958330914189012620813636072966542991768846870644212654138657460421029798831274490292451082099951262795026849227107590368758475448749025042982075787060360854887934844720700884331458278717728074464998748976633294253665503618960160786087292928192970330517786755418909263711476051059205814495629420899005242265670225341164072903626296943644588122341052515956858635001543484164917469633534238320965581316504403332155341288031905014902189032205930806064091540828666086259375450181695308700534171731652840962295562854284208810066449416783838003872474814179919004275485885210526457223611789971123587299080606732494580829596894874925483532375643691457535685809338884722710937690194768786047460767166311379238433641308739610943380354171337772154202860793867187643462128807410278856073757418700846724132039753086737162135881697303045088732197879927835418658905511393807138713537277033484926084429039538537038019699071895819681966882880815287181850083265268602150172336179249924447978750268665585659782455981726239134157450606811451108555054739609482098983715601132970571559790418997803328678711057625028811161346125061861807503979580391643037200374419588389378315452178224537103417644635970106165152477159354223270370727402235651128003186607102971618713711922183558530980960109024336536491683666474042608801051752022553551898544193759130201918888380473469742031750030930507034692584894709751322858248279661976043599934066996243417142332114671783056921526640813322018862437096646775485738832057589711801655290464160101192364209788820198728638135771598810126724037055070860054325464459483431859435009219834803367503194267714459374114168666823269476091084307398632065137534156868246665939833593710066813698438602879322071490426005392715831422940879508689042329434474273454637466715616281741696898197361444242567199171090536276591151088318865110095270572522572973201586327113857652945657861008958663626909942240918466103991983605841023358065480936783093071454229972271810270289813902265450902393739118886260595000847438680951673556337968326033722320126080565773621175893399549593643959344515250108140661118246656480985028150813699061178918061299944617766508254956792179066518523810206219008828213251133628058981897544223397533176815190481060003172260473813683018573474181735496415704308732838252732328849220009009686054386523456791900165422950333876484835757703408865146922284147484001813673137754171654577971871506758240366710442310551289117322303541769844509663577156463805945039952418080004257468962765775500829155385806335698196219548606346446141515785918230609311978700167056291811929839083617358646775799131704447567013821592946655029565570913034205509873178853888585178086483854973482895502117507929434739847211555836784059346722286309468876731187587289003038550792050428492369550146290034124550514402843481442866042157770286671866529338928830667907360206442688229278575150265223760397012842758149043834916610672419924172053150573693835327063390549251690255820319531369841938740935500795986419854747979879786162823677455166024108200316910170316289602925964889630553466360908075317937893341450397389725077102777527664934185041420962003758115909914274087310494257022853995899647607614864682470078169295916799221376210069519333471366950145172617745547163894425016691070379497975752108266635794394854360012403538525283390347803259044127068738040317753680860334690639786372614518130053431676617853367969314148380643592786548007478772000727319362810191001743905176839054674031188342555811591303043853815859791920759394993552725321701302806972403986002439324920953846662557236221361183783225159714192805450386883628915299976111286433257950355658131642544059559139277137874357440020513075972635824625263199929032321529400785118441168570393877991255803899896354188686566770285636737355158853247926439102812327887073455780677643287888942738420553016027005707880889620957473660036203288995568989841888034409627448917520027473538389047790209186609593798468023065678008281684215696509128447790382672705706866379736281816031975694238653466622556252411750962229269130502734105212070982980986977755394663294301310620516163976089970757625449844897442513211612758660041741461980538000207963943398554181507779126505152686008508789186876410005234932551454302328604658148655196818614965646054310077601353554096973812770496601719820067479811549255163499241327947418151707544937766379465041351235696639975177576831960418956298818264178535760448545261565362198604806175673929039493081257624631812655672544511637684536482621432790068933188433097300815718999690707449423528264504909552413595740032408471784689702421139678140696901590393789472982447046745107235775298812132623962053087540009731858584782513690316639618204616348626603619666786966937043829783793019822756891956769784246361735057428507691993647240520991120706471828709431515717363879567154707594785937868191386186682168391857791961782904949272763124158956586513112180280043805259543706956593057582975770767469551606159736553053775389428495061707586885070978857783887422671011671196233948749871029776128437704001188330696368188123648333916088654246341273948276595435157687453313971009932200833903677419015808953022654122005969971960226504865229107128456392168262819176688438745219938652359589785155219731316561035773368983259052469099059066829252393745866494333587801911866954235177960018892162900324157238612498003671842670429273205284517446298126959459274084384919468743523633588960835654291823430272372119985967597573310708911980537747044536557972257235672782913980794199852623786841827531194685290252631519459247399649056760087374402449019264920621265690920999890072364428641778113205456237630877749415782110867515416258771490317851709385284786796849621508402269842885991633305235944317420134464444540537247575365904812430125346311751228731811594070742883049379590056894153208517484868747143942289987137983103656196522245835356686007031052207830529334323562448299298562524598023831604181956096053092130823379929959757696359437370412408335663288419366215125497569425063779170016074062137676323254740599480086750658577217277690368269246316339263858659145433189485014338740140931571273539320276603422830667514533278709805056567843295143025771133040997967716139792812613565248092048852140498780016299268265010643244358779988943465995636144255746336283836026390197142687638400277923205772581976525047288835807931953898271795213815562147816176760350345020312744407552849410744326450692753969760291274516982814744332587242049583775727451370197855755409779960715947066583440720863363655958607871523419791795769301357979409368000564689830889856589617308499224298155767728751694587891501728778834347987978279272907694125099503752288589598546764823853886687267118845629752492996856471588497580264842180764928888769928618559587536357276163996511692949745751284833120314874331921126882904118635630938402555621901930339215505061012715285115503752487252075457307601894848461079892034503045466337645723482610768621697436723856049663437277835305182041519765368157995196410819854216079949519338598130437103484208791423648135700143430144053422375597534881697763572875345240090154515775897271674602080297859901876258397042402283222579612157222926450641190630324959196317208786102497137109573015236831851429239559039191886709971398947687958171806491205259939953576628114085885288571125373145323645486569187942594763017451451928884061330216210003923285376913917640232388800257022558674148082405431906176641660360727288861702437822810541993428395412533256519302025171048030134350394907414301171873901141991049738315089737167237050094586153623350640820868400903175719421115383570320154407872595905483873019602489826761131111583048715483457681503620480143754499739907509905607449792873567041294468266151397651893270765601456457501705887165062617447853505453944374317862805869521202577377717767604694499457170739261519855964781373454130954057451180714411704114859940774303808866723553075850631436596169951076400009623165642218326499281275259893441953617207357497988911560465770100031441602858676325111694025311250726447260457331014485516706717848977860887281945524675474151745002456294359225951067909351501108686179550684739632836728737275362075634284099485172527979205950291031948078310641093670047229709241434261458449024549057923156394589456012946802892785224601352863687561845889209908332218220786334086344797083899316548282681688179347088670404920617563748236651592328989635379961856462238465669521104518857301139353350391978243873280081412420154942753052690494519764146169944356755784735766761429875669739590625637639117907227432538894121444026582627024883686308584697335403386576014747428159581275947974701779173386987077381925789798817299320533109911292484629612502549263116075204571695301421029834178785867306122315079798210420313553309803673563264464397906412522940524815975816704114764043999139639535786636013879641421889288920394420122039553503365358500319097554033136067761776041723265658175061215938303047311379734926146903858079744301263806035717971967728600229310178839053815860168768372411034696559479369071106063308640115361749777321966872873857238619844760826851490824256550249582134659653988821342804130220449366753148934383798310880091629953537595142701301748153863569025616916900004999820018596838855370095277468501558645769344547396317983529540513737379074111607451930805117386508113571962067549491504658657350901931319100232079154785832130588247758821199896058024681338488326225710680019166787157606985981286438504012327162773217093649701560897081189023360023395767409665856508447819626741057658688906756325973868198961681171271718941841560384348357097520434695680130117846758583059711576747341077771153659996873902252831414200281139424560278392198740021259766776459379698409147145101789075151940143551173178344805188286817851614129551588847842188502834239940843430050720935546175330654601595024904264933469717947486424899787452225586012387910121706158979028011554539934490557260636337413392819741201758362090274186554949038601300336180768176094057973608210090661803153905324466692521940847362129706645772366388245563155729505677648757412341439990438983264942990225107948549019770115472428625669417376554904942283735540566887903715542875869477920461297688802078885242695418298697237149313760448574864729972678342131463177643975286453869544081759189127551154661417689246667650773852328823569328827345528584416392835038892970808320790216859072239037465367952793690241177206890461197085860364383703303404625635088720285381080258448298984867358262487711653691897761278297469538612225424780425573828381663207535566841108191113981143721515151252182968133223894468516389511256696530505022613513970721839122436413092897819261705003295746545005687837803225219568535271095478263877240225545180971752607912805902660697541939204930770624180217520376199846960242445145698883215148503839825109278771234643586000769870289972359676043288770634008084442714733586244156456977362401577932304756798742162356995133595981227307444080980789082289673294612038552134063252699442785394456798404444028423440323548727556984799627076596371754537855521051277294041295104640739145911067639610130592135818300183633499500269470927904051867682500168516137616719439453305592862479400849520733144454048120928131662445724529210234401736826654926808400707507608568755845985855766976640012405790490979975371338994740214727941619200254890606071274614291996353444180771288254665519567837911201825090896302178766149861582965241924637633107352026573197486522074569226941958481364070316479451944098384771729936515429500298531963200952462443193867587719703431614029532446774014835254953054964423535694265572381328054225817646924434532846614759962493312882930471856304310796319844810659261385500884842748331821872899470534809039220494723148812602990255053105780671133053646815033058711570110269587931441083690249894171568832659099148727101739622058761377491363582010619509987864312389754749605882364451166179973620807830132678829592160407221298574682161844388117936134555930514580332106349457237160229009473669282877432324166863446181018343567734328548138641490781395146646284039801244148597381896723431652146043141927423585390163613960606237973297567369310755035689020680409819445315852532699250954862026251528091545327697351751727866596811049815259696918035587055226048441272332072535533778481992571628605226979230543432276898769702068868347386737384723627754482975243668471612115151758710790110856673811861454931125846553087960868830608540192769277812375466817548033928319382901924836848761905907217224214920828838471157426717947034290540267650309548147329455611268802754117397981449223950889218296837122477008484098737872804146245204117950286119964418004918451642791577882432503483315619271290561726828842940233333416206725218212792402662696324391803800800155882409728192584039241353851511442166960144228876121191423915125374078828104433841690911884855387044109767448776316083936178916699962493495305776045942444045165008297601325465358069851584474382643804506701812005868988234835813555994757850994888957152782692146431031225584337229310218454005773870991542704374206551327006891233667214261039455595701730803403580462793054736676939966556690020417780662094284634367449842984581461014892277349369002664840929862186669951056177127807660033973325656659000302855056780737435783189425653472763284249411102594515104907914902954775528898294138055469399038586862722222995189273540927489035949977369121227261934353400544891138330931893699876663146907936092740135817961710139822772805520029762849207733669896070559840043131746523754468156087893578216262515402175703210457894164274090005240983498760309346687822735007270444930661822366247692621035651904845395149899991132949863288630704110254806830174364239424332521961282280101128066031666397299603640711287116967590415252022657385095790219999434772297289080540112545166719919334836807307874336618017286666923088864462422314928363997721450059285403407618704739575813606811995836897430408177426152542981668700892002438568173270537898624821251912614308781533869533518166703222797059995671718107902102386905069169436066821602648415104206448394279134956249200531287505774030304228952106696676695385562714571495522235202464910747691535360090917041524203339470727069237339173173712464319056149142170074992393494177519633404872042668588742648147060329050821545545604170423339287915156610507668183759654089258838307134912825672693442635265712719221739522792361276312878897460991520110657243965890489281929194749454075758599272244409938978332081432619234275545198907190902687881526899456408982468686709313667348843266166694222525741308490395193852117764004268124498739258236844637404798433846479957407003630458344430766888595620687392563634663596787855748678447093112185594652895042015644659386341769447969920215474818126599243882777843406689305560875859301495627478307737521759071604100876395307253399953258466930200075376693018957415049098726946656924336590447213141834256052854395646597740149698213376545017605905150294125884662814495090397813806543179425921704339873583619496847779372140509204397401847237058154698425075182912782755727078410173713516881908687228612389864813729680596652722511315144048001759085926895179404038892093284166270476574021725626636008378864208073973808395084280152548815095133701882118866959795112520671719124600624602772498216307213073557158437314929039434844467335885066866597795761013843070712794631784998813272318260685794942685559271065243370218435231265565990529720280975905094325832500102076889945580657416345901414034049709105257883011625612237110545009834017754777071594839122948206602710582955472576797744293559138624685547987572739180952768849017627403967177629290192877536971914887496919847572569340258152261368088998232588319035666514237782461673624950324363682064397718924603467193153507310189912089675913561676041067925092148799387385128771887544063116042033694855680724533492533141034050559780509310036613409248135058727006151736061318833000632231530794924284436580316397485429932057755607474210250768830581244061779154150724207725258625981726117853784059955782848072174532306388376607644066494039215084343265789457480281622361089104029041193358018911875236273375059310379122691290325366513156361823320999585581624317398298450863413527203221403409895218228890901908584065347156400741841330977298330658354353813365148517455213016731987583656306678721831701005607212200389993048882055799104290714521094967098596443644495532225790857652155575496343376614143205465487063369740424018715994288429612099507801790122560531866918691058168369037988443325557210011246260586888634165838769591762642173669565619778955650237930057433127627589047679501730633290512478132775531455872903910859777187317612204848681658203932470017373637859242263564477915589614377919592383257837617485307751686933801945727661436585682759437023859723109502294681023741940722382340959632483689044302624986616978379070388995284757519929773124750753649185274843022277852669610765677081196969323375834122868996941716855420013783822376363031522306772342783901595650991099557890334099730906217870401157813089168636923763271585434235758995223177553872371267975783573631144386521948824296133397543407626296878506772343375253581813946978101234658158125869705798887618506501876576012419084295909183177939705031271983852913873420579437080002795070653810681506292947104904323001391828993704722248722301353645205867749014050703565761103323073404320537636796477449300653585134349663842248132004138068632186397971024923641382572126878527536656324031005255466057881450518892965766210497408914806485406962579879182339559064782444082646467777931777464846652016724703487239169990508438084408599623149613511350696519941873313624644400918818419760084826594303705760223783480510507797349452977865981922195046903589246161230228071550735149664345504783499898341714202873547118061863466581326564363178778857308105173175556015667280897181793561020687231583578966027460689808061426646531751480581846611441811804381507830156193321051934094001760825619288350764143854422912341372127388300571887600259744467743397287838384926353806675620669276242385401232870428945925040235612345338947408751789468230658645174102663562649023230530459060124435851419214148672688579449521570740297214710696535730018474624484037883747078157768761627396346284113236226352822241516932637995411825757126984596122847406541014145880452994787395517831885458556838489894695148224196517581212500424566542371371219156026755890928245920118375911621624085782960082073204202775449011997338916779026420516092965480463194054989088501493691142026532578601564674994612605658896473575426853813520035159870713933566285996544160003485912459185451727581482838303053833277724065837953183482798200453166510556449298666023880912315726744836051663431428249327906504534176597596423703718324948181515038027873865642677735056366445150711409075865555076854576472336783585545730186141018494651787836767139749319876028768440467424677371048011126916875241183579198892043720836948909030230462797741794401733664500866142120193898811043647496104582263128440584569845866577059293766102821484938572442382206861832400481588329061195115428279202072356243990693822459692142554243265096334091854813639799253225803333299838764445751133478374873787826617324300227808453593097743011266221807208414547251597585796581118958482722576283464476118106747928329833754529562446322276036715665500257877036532569466474613033079131230951298414143209187178039484792599719097000018691036593063829821958745128809606291908601170559316919636991675513234960783288024002731719884324109709984141248194935404923357613725079420560753574507667773461107401363752408654881714450185334465531870005565053213729352732320616063098355180226988957353939552812924184706884951685399340334705681821245225446687216580369613144006757586963180315774603779897527358268985237197690850314587686025457692660716744024234609926630142591617781684226472946438832767506457503987704427741945235189620620889137554571179520929204585970369217442004809550368419756192933834658740643745705026622839589801982528121417999183602860747551545625549310014156782562857366240922709152152720370073733545269431587869081721810659179368983603631081917480013095949171677785184692388216673134242596747614846208439161299997166371306845481265788914332140031364170486434891905014240710387615402186821075500527060674722249549152575060363676126729401245446707233583436989603621676666344909888067703330742211810324720896421875373116666022683581557914958835354234167777987133082656783365501417905563492004959972697636233369024177883406156102477378732913807717696297935798371491968010920127272620775072445823154223621509176044557066323633221221972051964184590401171810975374862167409493217578188833960639825586096300981010454711277049761621841029186310557284874858842129236333562263174539498708927748030327965501826252803941446199283310080748826315526090756020246490189463833885674550291788441016307276179332743002777632470300707227465151980179874740792860550272597833590379864252116750574183396827473365425391638703141642478329438243613302147199500413276579524380325070582983581214770206807704019520952388976502200755906618350452830732446748401568510347650707204174562580254154358695883935642267644824893840160178392445326076728317772244952775771248989009814008048357723757459392152335525906550652740394106011854115890436990675300867066611146594611044623694860708892761219866950034494118024914520089390607384866893199925080708919950554056984356607387091741004945140278144405732347899973533373783282085484095760910791800130370766811730458008258641219243817725297297978215027366226007802961681686144009281040256150505177455105169890232642909341509872018716277670785627738570639800230247945082377817900134733255515839953210698783262768364439952635485209104983395210769459477461557944060316836646332052265006360388057306514519673741667522010331981525458984417806290665459265032455871368642193618089645468473314576795672046415889113059071836902853550969474448302604146924158035591724852179803287146573121427639236824437208215375914774062846547552895156197826928712214453454855806484685994600229783296190200665613231531762283063139837906992687197547517378737463823424415362098896104630246326638018396959627678239177120665391844780554240992102526714426280944347141820003977256090365726551713785536961225738077441760202405263491726522192033702167753600352457821309562632441880446110357672985819574593971654429137015405814414538923374825308305104042701134026476432361985226006923097917586321225877544159721867463925486975957373153424783839856339056896803193644589685103053484654023735322462648000766931994186283149651176520079269358671522391215523435564386855374697098565177152208489146893337759002063957608516418335182862430416487000285381515005431452004391748440307075546793411808887019865430332514123783373111595161932950063432229057952236169459239624176798211322470646223012444227032086966207954180649938604194228621544141216831204858778923904144870086623013549653412991777536239820188976016187745894853873663285611113051921440169649020639962597909992640678565503974264983024673474729764123698869103592253664440841551913030597255722468999010284902507447983390959815874619000114690910397964858486589237980268794313159761538633762819506615822190192522217349852329209780780173182623764631565967974648068315977891830815835809608929778616514266760575304890833102343061038068786952938477106861712486576977578850111129746137020921645222473966463889882221175575595819704201939144265251566012239142773085075462380282903356849256604363293432550486070728452513694547420389156637830993219914923658882608796154804222953777279846035821128298817576978688186619884008163035735488645351306917062069621145419402380826257665324532599694582100961503697851690106726655167358830339604977174416368197002879469085046597606864512169716951108955817266206473688761709201312010797550131444280967527515053669136840168792713261681767904652673386164991930043551175207668966760666785505674560462499300436681616968367531507500712226788392322071675395211762681196014718802692019273443895809447770735813794059599722940715632167349195734210487666612533754622332671899358894027920321401371019232533377131886461283865191813643412624087775983950808352487833008238769432710206635040091707827467023430847205188452443458162631745016979725014515871862471688608351991981451116118674300885273929505755665368607999244589474606308026574290586355862132820643064717279790346202295480726801648241955950420222452794316647317490290958129564700541416000588701738057061373450536827305239751558574335171703909027091729781989202701216027219487698461509990766234510043523405352017918720338547231830469808551019530228989003350014631294975413460974269843226989496384487306681063800825759554708156882097154361234694643749182946618065263639407082396153159300031444965331981458799738280819757415922913604073653174017160107808712912741359871233474770213868462190925311859091079992568216203184083580319222034760471152351328205015765961284999376211440840692427492422861141473597148958677126893261057605290160360836974417753232226407566436557232049977187047456109123569680857474787652671625171926962795082683419516344962291016610701838394855836675555980544058908233790152362348355669860967688899618981827327581235162106115604953584134003078336483014281063253331202158422441895486934870829425970779286759763240627260151847262063213008562134282836424463483201035819196707503561229020387692439566022400544646940477464713920071410885658171705962578247241466813802581832661224349437680582687980572739540039569267237058343556536226994839048285928814961824617520577033989438483141457151566547041003321842333282963583059841785263994582870873858883663090806508739947092972023385856870496762860360927254668942757385494013921542769822751417818498802385608217998581804357464068971901183331997340989885705982181210224768305201885783941366520109088462153463260786627327583014315188178750971458036797690770371464047780865010827062171553286305532165668278884405558590282508267813728946386685396430064223341528855062576073495950445554183567692293669768529306773032722231520103279998606809993133245551882203140676083822762824610943147679575142818640452796360276133586519261229049765308311857647404582630398409566024748922410170307115710829414761491489065157546101894451646840828664620736936715482910028303353147340173519615571935132657225408080351906427069007144175103056618991336552846547092269178877723163056575006247273423962057053512808584241757009448459433836328047156558538572767741315344919863854639395250102286514714170023232898037287423960243092369966147079838240941218365298812965686909401452285480315445864979367246966173534853838678685149089648795030896723960900892602329612337624740113230304882863224032338869818698081848250308520923406959887509593650077334663623119601451267175699673139610615343118053574476391683609866240971245964223496745973884836085764574297743911157925061813134090612408070953599010900660146020142596800638764843060766598522739583666942961171530331412834642700222230288914205986225546846186919562419943765570287814252504337632839558317683859552437426501249584454596286505395397457453052327141735009462783624976431675598741136134440335815450428280873043478482493335139265075563724280814821456301135864207520199611783484499384738245855851369732203234502315404137193987465954357125143869669053055994750998336438290437947156879439042450300973763894489378616259940715080625170222799910017098895137514029034789119176008064774650302415756244854048574431226182993046377935511238842441694284044753108555180424541094642203058044179054276730552029358887201553433726816609380442140334356236885679220343496030801741191559296605922727871321437619290404237306916686175030651873419410403021672417831206198763653281640602951650331837644788043018560928096953427743571855922723137637218332914049192876729683932437624414324961140433848491049079642690671257020520494370025548296769106218968718948237362196193824086818559786166495287954876792816061932008033843658986421305049961838341766531739898645603691541621927213602358793536354452426338399734260934830630879562212604103199133685252883538818917774902138463163306053239451645021893533102679306497828623545193518043346895408515181002698869004200236800784577576930939432056405938133218547317057826155227305198434375284334231223968831840355375910444294436287014433354732247327872892404999620895191640932769125607825713095205760443963742309385287026897457326343935277343891847120560980939846514786908956721204367996263889763015042293220718552334815514601500150658926034865012342661822377089240674946111377444126602789240709015209013408399948271062311900947657037224614239382883443651500093607644989189079376174282185765705698097236243370564347526039618678630875995310763495409626040826649271180187073289020944867814298480170607476745341855820580518210983737401923414306141935590784322968641730181608867356538538109098299432074088521965549678663932183843145841507624315245478007019206966710967436853815360927433638143267835320034684506183539760983406751246770752533868108281364637920872228612400799695212582137165619058336195211933516282769457213014394113104559135628693468063003614713304507482202369052721673250487876555667660670110913890341802316552287213346353924321429218552783874705673069652056622790274482920116987148215032172217028926438083397955618781384661521559948677924573005860746475739862588815762449204500958585139549503689017277685804787674862803569793108430973054167048541082278922070229116736438338067241375576485366784635864243098570598515710204940201578484690784313351741951070949362018416757208215055617592360732930820378237667709608230522082601254386431827026066408591908086921097243400131906705338770380966005761538638608545977862121487973175664318997823105936064405547503990660357698592852790948706478866317082690270139898479933447860108313464533279365002118847229092564780098948703195132298776156990331676478496371969737800996379044063608719338465093657010231521330372559542004957884491443618121072191725217028163803703474535654728932040030222007800531995831267118012516761681450855195362531693651460715576287048565715037863958803820551100162538694610308175246308033891509243995693071328415928199761744450760236364334782068324064105463356909165691938140133026526069777493311351503291625860630229733346148026604650318660387823186608179255529635081494889794631013966095360491233507014342701622461285844631220341746326134734044936084921024569553132513668937576779844480504402470484923441040279088976511497161241468811879014422247882082169094297920627175474778527891618461949196634725469831566958200873218878453745044472141357379174203098259917045194571440194092112658014828528019474209795493061199381545500176666377867782206927227028100951386451536373620616883775100607884273258151040718117983003080491417633754263986854217366402244702650595303492529904263665014672118088725987073214136000527958383806244762699605516727269352567982448900628573351933095765502521515016367091294314182337151499802727751788593166531681559421093253103901813007194190507438440664437650922627516514100198382762544130379068204343071295303430357941633588171664820978346068703538343329178568194950491469592958523970061039705921553436762504159916507131084086461432302321607945118584391110638642613569205298307948737893111874396713348946163333471958750044441497608884241745768962681862721363446575624150422159551858025505444640348152336935980781150399578930264633547430784233463752993924514455600511794319355047687402123538052987509552354922718497629335205548790399384567092037818817711462468183724055882319608754348593330406245983417393156948900337958385660422588042345715421924045776613261177290765848684457581643406877349156540136763729679012968699421246427931515223406430285270644383586534556333770908115870963102129007142232437747219603172630315090382181397850076348446591707917660465806827125605831604363019432427079251354538288977339569691302448977988543666090276873525062139216679237047788949858757167434584112158632811947402868187442046160281663282181582127777825461786873259857698034534664205227073658393728211775782884981059661046510527167676025500184533713306094497095035647663780164138227339920437110881355659846756215742234991302742536882975862314628277807049896115785607872285753161627194439988058111223507261727903018597746695058877304123530654249396074534684067386626518026543513737755658334936962965587170501452574793700723904512520985408960492253280239982324764918971455560700646676991716179733418337101567953313231745633878316861185010871869059463615495295683436121681109162611109977076741890386925419508794396217231200788638066715840077935832596792418951520059277802427951133538915078216988089186111457083451134516282149173839452744081394228848723783118270326685967861902337331513252800329367155770863985401139312809386848301420277779863146848471051091862234379772677110766925904168668059422612089293282372817781064696786747508456447849330614700731587490614095518993458553113608443972585677517329526957971013729638396577004571930499262176213195628432557174961989478111860406905004376187562513965683759784186678750835819491364270432697705959821381656387219269513907346247637374799315789945484474401973890483606123769925152004233329584732732377361038768166909304696416235087675123363833306036701290969183419663988558936640618117637563584405893289375523153623307829444912715163986085596699498517794862863907399949030548030931327686483004806221283321928011038469584240988119544555262987152293111902611925684145348612372548755001906662709084410037565516989108680429857483558958130143615342518644179145226965034164873854683360412896493760400640415499436526024786942001479726369111044436424218083209229284682123920199409196958283294597489609775002260997926802278378604467561013386680436338692573532770837190425612852607347018377689578036821681746360652666502334122062420438488540744507219929473101331137051112633198537102480541574859093208775682483121934400053354545024188460702072701066635422363636388158442674876378170756445067261069668372689349951590974836674095749253139520250349679391166284656431604466519861392334649858143684379244497402494025765749204521590629412204066059111762785707935009351128809429137934773325059279081259726145978784841162511653011174483414935729564211986549859893201088810241750541380695697453805663478204614863159957675811284177265641656548560018825340795855803225062116326661880639511535559251408304494597523053841457648166942550111011153591466638088089169368745069160935801513336826893320215919217839438538263558494719923367211331298077774066996453158292562526613348335070139652570371686613676250774640459780152915274304598659745598373350887064463577013372326533523906994041475667632452382454705852915429557176778252737581305404748596678799586571843488778282024248374807834195425648629999519921448941670435701182292693794896927676974766607089708080763880126540028704460664287375600034065512370750511174001513685829236418773595645946475392151440521536104377820660323072982526735017722910492280499706860255768760721643730892567434572580662163280786146712427048088862602674248117300859998603317049233822019192029468686230486431361044432903026814781982378743641731543155022435733776967607344914904487969327611813117667007196527579590455594228700219681362435906710603567650994278777539579469406899712516410652015985709009115613630218835593060170769709466922324760745014472510370218270451302188325865811503977488028221934104851059823936170875854295550218789429160371560568576591708545761627371753197467705156693388487011085635966329804275386466321593011242787200208044001070434773037343661148359198163511173761459544225469803981695100566845260300688966728792964985572441358836363220398982680085677617359361845213461319341391073173776544109080552001376512215060582585812020150022664047503550135326552403923079449915963335663221499524446448137698855278176091029587351578262890930998203143388801426540813648182854815808011570300806476708578589656802409844543031282837004624489847453522371889532426271159644814432966319079853029009764235911617721265880980499714878362030293223462792204649688649707990722174095428346611988825728698099911832340915387694735960598650437182780128835454107162849002947502162836573170432477406589806370605425374710468536582083844724030403854252639712256318290345020942265296436064924951714392413209417121669162847430597347793285921589114173693449431075342953607627075041322660922447622297523709359623954832096623283179843852569915021262940360753501427234212426195753118828245401404409517246735220662130272588407170316329453524690104717566504465002890053699141557589299096032737116952789805563036345686823772138375143060947159424530317247992616644133157178553998905475149828483183331535387330178046809026405771887287968504757951329211902567308110348801368915776735908775834430118536918806822916378449233386338995042221009837213948558287895782775931765347626877702921006322396953866097221186524391088085056953712174302561699389944531966908652362450175572722949085739466325565349312920547173493625016566907278938030196454535049246882482592817721360556483290360183398769449299637162981265852803868201868524234655700715505553799683004215815679018559519870071045065500844420441590963854667404757965794494086976359802019824228797436323431454688140255975345855281180436007068211517957902377890455174612762829462147231499518072888656324048154339083701878885141701177500958334214007950837945553644107614153572616892153460273401747145782728300742526080145809980769762316875280438338483538187127079778898006665064947067234578319862853656787697427972809293960458822692356300727446677494761452044191183344756389735360433165638965835046272504872577892678300215884361299147182252184150831098901188083435975136342951857539990453679585911548289655889545149735140967143756276629629092817008480873001419908762512280329111422354260950106530787118210902833201015597955634637967080963328128861250242108211956025360510072585261532392488083889066274601386523145604605629963246942809369267373213640234498471839490779640363616379394185706193860471588354534731743418872119183299822082636729205216606969424439296832072713523491719390370952252199619760030644644215468083963915863893992595705308643471675554680590253414203409481158128186331407371427101615357758365728274434499616242187665707644779198826765093938893724221796209140476215113991897671287825842749989527827204631406051140921360805902590801527047917866618195474056741432553647334027418353687185947697424786311976642136161373861613115639395534785993561882793787989510863537601781543607468693027053913553858689453570793224093688075265175581593984228182010481939062216525758107032917989633935927300315041324338095329138105477776711396327059973496309095633521721395924703757837052399387529826391578217627341742406414740893796510914880110765390828917218962381344208494642686914353402827947832200856216075420260163644469338000771356157767315054262857936789030533581476728934768384282265937771209650896216944693633638763912000508969380114503479905725798369748508842229669029953507764249557281649484911327004221076638843576300180834882465655012707152456131093489600644087604516625672474287162124920888339665816520045162102388269532483363802552404991693827027192618798747973954348387908192542369789827358613613801006762340628501162634721683502191066484550868785379214300500720436254467970402389556807705596275090589890599674429781975861577660100845985634163930940786777746497831502655699256966650909633849709456724600877807060773836937116495616080963703946559384242879345578979610323712948707445407723608328273433042673853924728808385092307246518127324411769941558062805072106070819416358433843407163564931073756386377487252057524415112935227873084045155185144395095913041426211540302582563234063970704012191370909663398723624798262803524203999839057357025070049239139414231443267749266942510310576036128165823591423527828176523822093870816107013586560264779339019090978367832685814849432741527463134611488757526019703543334653038309684234328721172931459735083422595866519641143377339336111554241464192634237757427757205059524200492209860960912212340859967214358482007662357731185863489568432836925184443878950225295924565444648154197163264610565596846128564314032519575312957876157235028530528265697494208695322781529060644320135588232605068941333790499774802852590726749656121277830482090377789770517626839184746305562083190306682312891266075823176180513272398675934180247877763742514330324235716847500750405127523207359373779957994046309490677275431930379308258901229735498764991803382560874348504055268120071960882788826069293698102576762406344201817807168167965863749136483653384029130383958961154306336321291791954314428806619326526182402604110974807593273645935261130733977589989103292340588843919699019649074871955414744207587762502272292611627007519055216939380980597524228481224311483350106767989466427607087011840541690943760962142213958997486134888215321146928517579112892392026130105329151220280531370337941046445933475249625667719445235309056525858670186159636430707008271538615064207249304631868707568261245237549229697148639857233183016176659596935299967709264635130670154725908355598848377735887401845147700854059336842415358992359764480974595021215516130226359726673233869941943349557157910016734505786689901354729519532725142642187380164881591195173092479951756309173845259406869099357707660984654503906599173399636283259005855242162026172477610372117043376371919081321935684573420210006554870973614516730002610673494806707502486904422196209643122902604447545836838991566595475857548963717787540675384589851206526817333124398642957998780862652531095187163517891736003846921258239991822336989160603539521204919835167269953339014916201008259418106765299308180948772572327695068164605724146424846762478357040027219163797957466084509524485597294420708361339640533871435340135272156655580228103936865025057581084642730841985923735035154336404273686972970114906241868887469644450228449821304248943331261964402605703909078050307467988924935474265656196544811487572746476116154264087290235277186783370617195817662565538747587006376976899970841285548887926093605850070847885491405442606132170990791538373251339871491289439284689726177130794597200291089522299034195348136545911611321497365244121537339555908533101289289525339085988956324523624557775687439136721577298498603574523896803852141743560411409396150773511881733123806943675284914588118801088852587572379036094230987578042386479577784737685584249315911948686990260315187222309114652880577724615609089936457929533867346519674469876511694289824964936376262300666422017616571320118541972776026989890296843419492690359980926084147976780869561657034750165757933558853943056626825908517982016095645217723323165315521488886496215011436098643305375301016482047422253438635067942340444807598522857619750187638844287096799163068402277827373780005988866614188521731892425788890969632184724095831081855444592178445502392031781143478418755532413479387122754278646645952934147671575289725632658078322622314152516798287151571470892099937820687177739155547204788363416688599938899061241655785850129070383975616683456165527860347748986443735436037286249408042301002335161473688082908521160743081025812449454183451994537078700501533057026840126876248714335272541190461876500352801020474677447016430855450126875251512102227329316890880561654748843523934688378467587039225497951050852671918131001324806060197906762160360684996523574239274161519736268783628793546084752779820208860168668592790295831910482975576307621633014933579687701647202357859829488891326260526153110962904832083480034273668530177510292828006273214912674706554999559996139243164957035228877701889746543162538682303827133500784214994129498411633159176521086227396897219632467446684461821653345265985526601646560005830393311831838559158404682910089161584799474744024841079386477950583983681939513943139530399967276530302935141357202123524854160614527055929473497833040164800324718356347685201456071437630298876315102478924538520737405195556401630904471778517415878637859241896270345058360676917992858145940423505736580048498817531627175596142320787385944542033500260047082957732448028693309708678748915895930177872928488903154335175301467630941619397636457596596138346086642133251250552997666660929575967749823497107760433088748058700456901270553356722404587896799466868313042531557166724257222923242126906033893159168496631276628308392306402705604523534618874680391046324945779936513361960970273592167078635412834269094038835175655045386180671599412059172236290544092862511451772098290503753565248335773981444315617531352515447134122321661958523757418349695576361967844763507961296029627370039005320021874623822694218824438072213688475403763739660211782733001925102444826622940517991204534305749650928879295650751769567949672629632224619855557044599481838716620592758506666824973925853840094209996828491805074368076320671361995567845444337578673383048434459594519974279401367213599073791341607447482961630772909913064202535665228390674058783297789468846642798128379503987138427997018449134239126371084145400369602797452053373698950038157869533973532483532571990548822660997338045199541766241263969657667666089535374406005631122603920530049959770283686691409794548673581167183930187939804965493432902554637826794076859659338019173010836095786374146650140139481565986794529432542009887550917545729518373816914471852062064700022993137896706989557289013486228680441133750077127315896742298374590067389203733612173469574538990339581076516166639226158573565673722275812007647708018441342100121792873384976791451205123371520930494142451486051623723135246092103446897169875856093350336512786737976725815075790264631203173611764890813620583010432238032400693044021379166542381785309484216423653281286883265891972161219154973206859310611668497130574446455727310426351173626464448480084968081032758746247664400512320857461264309223225150414253952179493975419277263563255738505999625701848704493276617683457106402855052622055358134671695472876805735022574857270820608601862074927515252770469521622206529149723584153021514052567981335788917811016717871291674118978424920175499445452978802592664212383241736614199324694315707432804082251067626646202813140005159336188582268353852111709338998334569633689134111201464864956052098219685629836876193351327270836629647942756871455899580278625681674367665905508302046196104303695992183931511880854965953776830236762535843606397143955908103727256571420607888016531129123979910185606820268508209550426163671806717015984896581376529650686744444820839075887663987087304414352584205935794737002890744691339045671531559503517842206294435217633880375486139072579963682283032106576099406262059382014821271522318982868740033271149218692520979010821050149664460341093902332127932353610016290883422558131269403222720325240182836904292479101633982630196629820992348108284259561024088052826345164286704556206022077125861504605850828427124222178739139282037171103029343964544076805299047526803791873008473383922877284846798792082739780572493757776180247098710641130064236716056460466320608664170681827944517634169919018524935482410775423320227671290172071511085845000943503996447634380313632043472996702154987003716938709020618664097804639622216264632247649729754985989132030618616143011798890157563801796514481321386988650920518454436541385215770779491464610103382388335603010363416480238462881268691913028951576265398035103870915351843316434496964136645013225064638440221250825123256938803688761578781197236759814794446005762210874042224452706189700891023767336398246647528617501139586951811039703989484903444035401072753673843571032289295827147649617513672818430487489143752209772466459621367202088057414323816683548980667498875397897733384145137002237290081355371531404003833208062876003980941771779489578317671054024384230104836409929905524408579370874856615426791441918818131105523959176124274065517922867415395769457945175832796992248709592760192688667921009267656815825335194472665935677921867982866500435898780843441631654651251191536290362907858485864536450781399230696011139597849020630835939520705085807173752292138049839955994107072016779082605103358917791070180855533213515132031071732463199930100363227985042396089997634802363558669281337953513171993560325860825547779329394951330929027738248828046786065044511211526471496899725886791176771307826534278674734506053375622495718827829115598862316207998735815854611510473234817722448159478056525224561164375256897063925354834485840375410621645337292789873564530032494211277939323118650758145169768423575072292678454657990406778180649333873964421123414899738725494586566786664108850934671995782976323138418536777700435308982394453128898620294834409406303800174046291364867142503809595878147953968117535879759710430887677603798266032929054339850046127080494163418862541775949565044881416567961229007461337525081743985502127306885483037995522757342861453904979582483932260202817706318828091848821493698015523150328643786557699607725832241812419748260526909280084787491314535747112625665929009911699539019097241990033517154215304118539619114365754121220324714443038178841452034783623408822239676616454068708688797261075442834769264174498854486019289123826731026524237938657144983515820520065545580295706167143391906962991591212420780759524530612847428299217409162268261873367024241203638360151320157825804384781001757596379889354801835990955346000041590867183255183412347995941470980476101928449704353489485957203505642803678759209563455934400322140957624840987441855643289859810274765061542874279193541483645851550198428652983977762507314282202379168555238567319264511283775010106494174554442119585899983225858395731120403342889606786570151819099312369666780798829949496888500513927740495781077008648345020457174128467378212598572255800061873800815211221721942604294339704222705505304836093435052179837955605660943152413908351117009772473896038958398258894043473048083858182490882440297861992699019842254757357918825648731835655646451105719203173144338250704069463541050503992332604583561934928417531792616804484412770321951261824882747319775838464128313015295628739302224156757758821057170424186170881396052011598529403283442515854492257370959704453295785776904219769418735606474133853020445346581725299366865253258327268658510634620298591108203896616612930937113280919597608407023163892675119776038660018676948715690737015863047933455511884718361395889794373729251950561287099965205647081502319768618222564722577005534343656938510099755138660344713181081832171147301935478630461328483131790005615687322587132306515293001965761129251836459750166311692680036424358672783826055307800891427161063574253460871635198536660798319133397742250738850211407330436221012068866932413238855757015682043161837449995129762184345047038748061427076909044433875089936031438531951944744617005716423643971697178962034435310459364223099674912275437333260783749166712789284369995171030812678764134752839822024376610465401229840158012102180011678117731584008595829630257196146813361291699994038034104725331962930273668816493975058496957396914204758291908259274705149711654229094378685394833024657231770669495504184618408157281588729679458371305492185791214845246779403242275513354460375713867287561931810873904149849372187184204316106946338460340987946446925793506846450062452931888761978213830374596087095856473157622034624493856560761926977503745714489288821775271414118088336796076214727382289686199522126822175943298854918025745792547695971252468840799342261627969535814826830959412942919018450484256911387021932995580312487466701150864444169953605805579823112603639304385055476863555870440493503867416131545405436159081597311365388433641831235431074048024733671702655358407708270242023723462178599982161840912690895095952833548644289152172189742250480026038049880119297043472794799443030614193785075265767431637158273880416898641356833717057606437606776820048028077494807589065117431193221737078979488922314589032492686268292004290799750479695160899529509610979604372470599105310683411601917811991503342645672877925492432148062893522343561417863283579175344061285589420727751438377261321000382963402764936724050712683529263971294452254872358379938738676668642267766004632692198124947944330183694904515406775361893549286122558978417430236723364907786328659552853435317144891338960829320264114358770370069079101384336742913154597150249250565062935995790216787072828027202167419202618165154124844614462624981991241000829029128137762498209571108220807421822179046363307534111469265367997155873320328391745552447629998010826324107973391924939966872674005144886245089025296658461530450132358395282029432587084328522127735512736348844433023249225389701986141810131967681046379084869748832665433780788706169979734072388247713512206815878539682348644920026514524613620126460989366160914685991360232191244156153965214815645608449696049381187537198414776416784839073936639660310743537373877057431414616533395447016438682273970881433575370117969512484095757319395127040671912207303746128766685356107924960013932741224378875407992940501214857968518703829006788657977119487181062715280778084104702580546034212326746450936733705204190885718247706790958632534431628487210064033261364957281893097378440204570817018362865529360804740077442279363366914808221212989156972865473847918630976617598159501067116980363011866304521270276584214254378951474146432182865180526490512634655183107114055011936721106825921731829679960367439246889696397547317572574033156206069393299358721819589295543815759434976670530765861605649531113179509514925243900294113483522846330075297576216370967280992567759461528728999782545591695871113089138457363288650586127483150906589927852599816533306399750302225597128014715204643302638174622368864697619579438631413513755209106365194897226295310056640743976869055507780127379918665762531049030909042813318211474655659082073810162054046187707609276315184468681348443907701421029047207711988161453033686491320044739252340933775920870912835963081953698184874066938869692960321793022650838534117965458585195016441690943091411920363981119636592597981600326993113623745259762784337448076209715680034780725448383516647585007210269966709764367731548020736297654582478200693225692798334041092875203069444596049553808361626960174618060160265622754064468485249257551779648388405613595961654111535020794403594270500047041574225881181882993407024293858447381847250386064815739004105676865063871295401574074597372424507580921515755024885693235898240103474592676984666300020720565210242902155491170480088076129391858555999802112963744424775344569930363091025507775911919125617536335545518221338333777416888949757940336384638217164352212537806573335850615541528009836042412535984465095193982678682872160601470136105393025413556365196709764293308409369525154896532735117182906119947935776337605737665639801355199637724914353496142772839082177075514941890903659877905105717219469509128580292667590173295345961354350094631166286645695690515012965292486096840635448958320183115269802933796247491317513363962883084344508486930170828834815340532476229264944514329404496768701076050969631305664171259862968608994973053505717231086802604523830818773938238623016644524318386108047819561243181044277088905947288589892216696626907212793988651148873007984565866282251434848418805915648656773683900029166982777466315198265786781899582964383690172045499105312676441630599746323408853018596322028712205723017403831231174340050938244184631109514921447117767137151606293104794916448600177152932097659354562515052569326149080222503811138051304463724073813705621083849938074454521629849270834637138022402657051907895200007951447412948882255919888550310986462234363077531876208150580719707361164540846587743248844185690540756769118214215584504563777802882503305467009564288885062351292745380867044684325410456407699988371360657452124088376589703528496627442951978502112778525465553288781612540869158339918244842555085948646344165021938745019241043334382117900613482260956800263876186817676964310033367507496601583760922757876986913337536117015071961313599952728876500849816253356187774406977636009324037064082260761697627628492246123251630348280425679597162216410785833747514928956324718423110771011302862255811927862955067587652110606516114581209247995568717276331378979509621142630725954322763508203047701022026647037916802877971706551646681231848489430904331988161855818339389903028954679400547409605678171233308672916357176597076041858996289923120299793579754969952358921227843296228617787134978908717439215743844928988063686530395323168047440436823180777410399343945770806317813091562154218580766107435533720735416163554305602219930942705850959578437185686943366068739475063045883072521881832997014762237200924335343396382546752269326585665289556975783786645210671809614205177791874488670397728408344641030889397216918291103817793316444140001026880873685754886684554632279637564344281032508881020994119213599010178570095661032771073717895927637857163244521650667735867607506330448564565102411304125097028536014940013742814587563099835364897987468633952624765798044304446416708024717058794266810555861207112377314387382726520797083916981794569508766570938324495132308240179273724104460467794324269006419242864976833477088022128631360145189401747583911274866214314610422630882244455933341005393493850514566713915858841038414818972989467213751206786277585499519207852913808589780672640461639369417573405727734419012988585146540833882951200511127853558100653481284156768549442388784111827981990450425463216170868318199738534165182636741081476558216155706126233588136968282503344885784060854826297746569238907708175827776455963598340461746331533945831766185741078422641584746992833823886686418814292520449331764541729629442879273256603189265431928256558708930052702026688846363943792691527129430137423432716423072889639587847708773339697163002039916260835502231195232844432007403662968533803288334053377970719657889171811471327390448807230624518584205898286440889742022995534785133947184008730717450010771216115729926954035596477112125620187460734036458091591176024738514861427755728688691323451109449532413077046903112728582593498612840995539256006425285460495023952622801824766203061646173733930715991048324159610861755210304727461492627822226590386663272666737672969914093924473635055520228290305038070451969345973478713710639224620876809805519793592590109313955612995466082839550991576812506393448244908806304327022075014816591181473117867221728607720934657636628534056045582004983705915054654816572945122687212170093063686886423172037100383558648988439312479746812493862341594893311608583407376417613654690398990316835209203840398950629672157413800012768046783492578240721161846199471660182681482092730931501757976103211162625059425295192212375474542610983297989097448735192416063262647567490664737536522768266236811302544176773308946351790622897119952541097255335668793916992144873487760123621478604393673113923554561802348482332077182755574708315782676300373780773922178086356683023251267670555920957362447363209360072167539775370775761822941857613606818717193396331810098313457716962100635923525441591729559892677636333909936282967337932500409518991872415360126408029888154694583948058132005550306579528796446137940994129201428665861081911431670194944059383425409011798242665781426652513585559888484144336687464782461098596019902140468346158413432198463505101512120866060467286474834061182343078558482132989530400931669653776476430551956417118624988998623890969753736319619840281356332264037897555987712856361204893933667464441043745554219976715812422810559451711430352615343425886351775157568541166679963189146034927528947832152261354260738710321958272829844804650682191889545331233381406984750986771923521773973393405048897281104899843174996590092192990843385845024821815741540407699908162167415337669795270153520805276449652291590426970813095734980194778326382997317211660215966838605262878634211218044975151098827077854586307014255156198617099340567452603265135114524331696679207276766706185778173698123901955751501597774138685173441097880330458207764759660744059814867628316575875855520673528559660295838046051663318672949404989604440728968478313070406370885343300723751441972786134892731963084081887853080902829150521331685382040781631972387197143740454054770245304949240210784946957416071678412349553720792732620455791352746664557069195902506680937428949715312555815159517183175105745158897426814374740105214357805651569184287450579716145623559639360473866026481853535211478693885458789183497054890255460006712223023307092466087338150547026832189130077126581391252730959287959375671539580332214897246179130211239432841515430434247810969735134723653574998182016829334265201768518369012401334824978403162017463543384805818702124193126643216754288301791327374526061487056871588740031297636608156910464034022856150468446039097996744842550066822658714466999149457197703165517941446219538509375464328429773084754043895954701254760863174029074313594897011677430268061214032505810385462624278361088939935009638619942316086629922264711719018036795952354681737593817363171899176497151256068572869511220297611504001359637080497179332116361539835131113669533523840186047735081457088272947045245095615604794063073196343879126815493410580628287485100838489603302694818415394130749473330705365013708291642165605261142093648621501727748914049743314255003559106481404807998923432772633017926509750133269516136611954618355986658323871854275455775762037521348561777737680038026904224415656220040170132619788862609751396955654551589861962355960308791625725906912997593146229714372331183815732849807253314839666878561457555390109699474744004070858875867888970749379583934938377152669097024103694850528958593090274834260833456580233941633451015077350792284012295589095652369170689924872058461019729604751129429896600886023852421078172388106469492569811977225838052593998627789279413977749204426018387375759915945221024173688472259737020377422826980200283367458831738157937408002193755150759623328086642569629528416688405675755973061261743006352803854496979168212063745629681912944859050679693464896143175386676652365938187729779128305408170567145696074057124773168451829823122402794732092604438257023543089125019351459074605338315446496636497322858484264288559928969924931270155328377548487886225143959853639468233921242334832962410373971590302837720316378321838750199868387853048599345284908429976318984071241857996326985675970219670238143831066066484012668247077170861581909954033641355215732158893571393942426165463410527835090284872251251859488522727629159111147462332490905165903739021004158523982233123495377680800516375934050747366878075580907011584062815146388611611479228772015652704273480997109972298965066750789311834424041102102950174907616802663901667162651624388310919664579240755960168005135400676253327684022522539646991664198457280036638812633129331951557105135148422001076504484722228359450435304038213787362361768508171420226798739600262981760582189454642209484697505271322476302843045668820173451768987479568990139259854566634315471995015061201023387236027051714243231508884994902004289848516219009156639179550601075544465233912787841044761567660683698912916495359204721791052925273860689652328688129617368887401476496573799495199297887745117142549901197811211170145822927917715183945925851966276640623476594299867911611558049561462147189241029757832773800622052328739158598793308342931854474291438905209843857280490233480911745455946090761229788886065414887301931499137397937349846706241143204636225888404333838556709642065630211051500794992120172987802322805333211783088773533157869116920556279409589024323527541964444427763592954822947336984329841435307857747319386612752961370290890433966631401004076104915423024033518472499173296436219254420439359382400203273876846312454526818560288680836680016562960072662086745417305772807871557688080158271919867422205419310269565646393630775700727754407303274510249999208157858081384850120158079732707539146605658689954779687408857683872191326628810947140796152401112443324099279082908311008045229462887132515595921765052577602160032540325641288551866731819981237511406881015786755569284216389899049698592843643773723094239091964242066892824605480721237798062359855584204621759507816346688135681212406851156148000784159157823285845591678604992145183679186227082787574516815980444341831538507980544001177553141765274854833689547715066104280362014285813902884184929856883462716262191838396457305875817327342582739450296051179931289107563538336244565766357740042135855661685859431905256985384404911077275153350329531464768032211092763768358612994838730794091606812317706626875047877407289971635379693491974287761493819235658062868026251323063808906261743936167630280147977541121724686717837840578235246790276002357028611061979460881831165890490915692191367057616030710537427664500366679311171184378762276915114001470305023223362104616921695261265674236867629589762975554375588036196213730714218835969389210628227653056515983856928663756850742073436620320165646324366751344156672957555297837293377766554581001792850812990869007310558560221520364246673238191977924687971773495925136999503263763045843539156101839066949078141229475624859006554028416773913144227991869975129851192482705898678718927991722574328297888641386231925456126728368831163216128105480226644914149180672469916498660468545544400211606209623748971749986100639256930377191134569480000029833180043998849591286823103422617711880541437696602271196330554185202302741374949521567171662818656801589928313565452568649404684617597932915463929135305498616020544509265265903143067719883249550226079171585790381153544481330491509758663216185806951678394781720349558984287810869736011703450685530856884044404687880308221393889454656202282107148718019184200837209527932153996738891670293497952482710857917673626758921018560470194163905457784071520087744981976611873645950717647101900474403376957493185038298895218553625978563603215760947346003622993133272450398776048818737984878995326185040315568751084377617315091625745039220787441398590148552909014120501399569882968621310115914207365710036917342260893512933955329817133559447813565087414532324616828648087526577716970221609606522660678289170578559313216659001798183143062459464392548525119972779091655049439368181612139473110163844677871100321894292220245992334781565258823702539655142234168251242154901576752435878050864308988728892036666230017918489744612472291468745765307621683263123643870701589407249892564683065306018925864842402099151814520279973251129590278997589418397371307160622709990371633461996794411290586163140340607544329994211009033367370566633899904913035599688249254269709217201657594185349239299139395042234926465379040218522351580984876755945643368920366464402858789496926918831926114051978393481220772289499809240710421728257170417135650417318766571594283037866815831353323992474696169434885204125523310433158048863531980298161600319088795484323076814532896863130038286605015605181101226521356638845461656337226934497364625367949969053986638402793839056820180585364103286753515974509279908856522965794299663367821274470302027829240777809265147642061157106818213328290461395667060041517923738130689357570569453423728496634682823384724567210854567341586364567843089643819737158572822049867465719415332272409548935115889871494228445668794766418572612526491316431744002922542368002831084935056955485841594327519204852074991564415049986281888711222599247166222966294621748910020873041522174455964658039956322001673729996891896686734377476907940156772279181946303766747670117267433163986941164243742379551113067552450112493115986374279156791886156976378670464859483436832776043944004183033395174241927980069678910377707899960416246114259225584341943427037266557813417687049103761126729438725943384006660566057354809841392245687486574007144499282773314657303376650980786133986921112045245596267228599731362313915832401729445859738248004986293048079490143676227963356708863450330026239508472994643023222625958635973151218553264966824029957993326687966761810854362546007801689364803617390692333049347073431570084213443480008463955766938644396425647965783123136076640445441353644370456215812332009332005833681676525033467651574968564688587876882781947695326656513633638145244997758805146603293950367186480792334620865734088889251563725498271250245417910207301221433596545313994644028688654301350001202266743632462509907510849678198256125975154851679166066118747693313946770466718501106440779805516272752797059062305660450712184957903678081832223898009529911684094716389042120294167786481651530389625599737624229034562527795013675513124162151747888862750192405300964598176649677031658178618446472091345612924856361679037262167070267998008826409045482050389186393993249222447707358912469059717100130724189268895561350549429858835248859974061373392419430427924707288203999863833440024234310240432622053819902807449983629472178043300627479514363744821158366538140609870985970789552655620784645779081892710596752252600890640492929378903362228181275803614137025238262269178477884629595693198057541054054773437308216991371695956461349308338915281124624061718454075485746577595610968698669117709650357600577698255231608535640753090072017715297875013814200403497649555759278988118627917178276571820946317541115774888092209769827038262156769021938886854574442450673940931747665369251509289708733558751713301450286797866605674910684393143113338076214950678397480793586982628256733811726133669447573002367789882038764855594905704684546308509448384247611289372022816406919215841761749536010066419649558174890097605174214104672829767940973367680002199371405064190441613293037228303850558638446919143351410077564547513207451008872638330617353093050494331916896492810573719408414125523361505704473028180133963652507976435319126385395471852358598075378372427578214200741836224115991628538715060904333926200458243470854844234353775728268223021481352571330368511138506547736619310463788723013784304270936837938986211070888972793633505110157780179219640377395458569483180831472714738852184401522348363749644588075194677647159566479881062558533607880488976175639536944520211815846389764656610466859099420715328275796173165078295883755490290416410896916300004608425169647400245609068449225965744730791473944123267783612405529577187922417986088367975987317128432066922777372695016296174857687932031990670086438673855847781287105032557322701546216166479239888531022880465390635658411715082266380696958997016528048657747316013252387209529041070281913906466536837745262208771745425015940897420031143780133117255479772527305463045147741833942733882700906209492705886033126209026848807158767787408264071904584704799392816900979337823038601663756598982088851421218002554672231595337176552629546340698022280718645449734452279985698396083352180748406741834316700564966164549906653235108709949072460968160688799655798875398682347938890304236318601289900943514650554507919218827544973312316833814867877282064643736117231590665732706524276233074484876630296439676561634457281519401498833535146013663453990039152752125288187576461066810090437559293965938585795036378288677976314356023693775686413416670650776079522023907446152863296742777556702440767504268154326758896368424392004311287075534729509716358222377259788506156506352901126327861144407246923856170064717019261340796325174343055192427858330554768162444514562776951471513440410655411494471004056700035169521669571010017100436195249129588873527721092623353230275825592137490505916986735033132990427727764827289815870592246145437489666960252036291400947643659203585070722608682326486640491978999706430583744833864463008491021119823744774835938755612847872822652943205386775814212599459902689193691814035690613773177232996182711873818339450839046849544648791070771367292442969009666564891203611614638772892259322034672801510892479020234227002986222884840775915119689822987156039667270220090426190260194194800515578012686325698052786669377512216680338502626909408957184838214768199465440377680817671604525625028218687642893116092185353260079671156580080745564932294471719489234132657215651999796494796550531912069516195705824948621769227165135832652408056268128306339418070733586585898637488924032577456289796280637803104697513414384505741350133252197242723992616273195053841939695910180516504748914004267134856114087538233320824547803615574435132293305009336970157904150808029961960918822129446269861486207724843467202573100109871881705481637708147829872120402514950013034945614951694073433063670484773344247638841978831782814533324056699898559795842221825340205139952008524943811251317331471220271342446479960875784586023780637742122955830712642760151617518633069495034439834491411438028446861207317712659040437668982660386431758697439225658712230672591178415992006080480390583560626355300511172643547546394587392000863986193933439086460111102254350826548860984503990159167556006955946413649835330386898418607269089750991001671648923309294643879446057926757164351479315392247277211981382003886747907633091952159203541641188345178242944728056373540867199142674414137711229437533822832354441193786978478517676046969718719215629422209793429343952199001301808662410393368034137488305772311395889363959047403434379917464924618089544409194827945130511577079972730599262630305387334045929877024370760049144777773590229419894311391475394161463137592069982727242778841437812935473519575341119287162231990321441677360597918954517615482595070498908808400696960633400140320484416559386658826295722545332049703254514073283420604003647708083749699884928017491017419330231993959228120212278443983191490337008683325512403969228764948085051611867482062951952838355414833229512650192481230381651082989233624329661810533564724291167504660655967714269093632884296383627747166276173436501449886931230764321652508219926193022018226422286781770103423149679078227708481403461872615431097751397168339371475352912038897386088746263870415879811810232768373806549303689429095121067991097805098949960055224074968305390346240536934067359442830652090767001322869896423978314109045819836688098203964061654394082299560400688530327762918748789730824437698286050495995385938038375611913236387215262285702435685497371260548353742624682869261323571690167885297256242764697638121629287878519391614691817115795013139392448699532876868269556421332271102183876276560637151527264798134213116629225344390692297301425346835203887868492915387092037803570645197859899726180703967780879783857294534754438464065922643097683069625372644312837178616130326898187336722873880606727848763447775172027086228246563551528258934819480161093913322191771345816181974940560315163164054503898267017795033609797207158948304849569729507696588239225400615874721871235812339887402046466961114435683290454625473065605667239197259088706588567997726249847198082102875388480936519656130657333442643935936425954500135043380295640629544640527078238993242871402885903125507558635638415292520478962263419543918500084987918336868740265500390596854821474680242074077457615228225870357263296417222323687007482426534247394615150432427561702298092510038730929417617478872307968356383918254088108174425790938737864502658620303861058219866876211781721099029380904117688532109139411445549810117320473870050151821018423607993212267119737779756184228257173345849370444543970822687832017527281379494454468614245794929391556620064116139357803446366620655632549326101583627300209003330209272038719467348271046212237275016449399119771714677291731927999473722616489478004603027912713734477849454506632127591821361662404015276865495887833355005806352583780238453239607507512253213139620069063373222764142213856718979205228739825750138223776301451632781947841293110088433813910813125900252795206271769693075360229486403690099763244616344886666655680301413104015495841366223259365528454258192781321585999885919558114784305673555368293615910610865730639445961393944773789651373565108476069324021590598038363734279263870961497862343749422009935449534623696420394195084829832174167359668550281154467119629888403888766755866558306536150302415808362071764960344784037215906395690324195253852533826710412776400330944385978565093488945448197292324401460906819930211218449676924239271692473658414526607939399939241897700187256914889362916815894208502106559144747174794362635576272780975020782232675671507269470564951147433730995431282604568630462161947776992179400120388013933109714847897708304917240921956305078143107272295431629079891646583557388131420829294287677805628026405152308431925705643700027330902284686495159965147029211930540633317938186490972884459515261746892526977033398029591994913905576561421516145797578139306734848038852063016559488291348055164224894304932073961717515616517997544564294540674971488225954819931225399630795397153604658916270470278188843103905629517984135822403937528927339438288248131917281153403823310841916138617113196498143733482165650160738055323924470928828908895432433136926468520638373566040215282760632296167729262554852540888188259029703513717170256798504452190898857897246685575803181314675409877805799141823758257943346851871578224222525191846247631311102590442885334650655978015731976645747901198471002615719339676788903884096498373628451721248225015608480757653632509411889831800140872568988275139968115153537564228642168114161167044737149448949570792878416493985166526246283545927998537464394610192715198208458672099390768386849548199429407612448487588204536268121182343395563661322545375762469980661563407066286261491107289232502760778370527692674003409425540442816400787323769609268520127780421332182265411273153780465496200938920819173614398113550866913799345868824289247979213209059323864757094741562835259153633344525623053700060270980077409442811035781044590401241504932042228231267091468362891420009362553201927449465101054206166853140026283310039476443484008158620920853459322163071300607413462455640949562269083986610436541407622577306470382978127203288286146156076335756744955973776907490558638085236680156901296880539276472128976153938399586360935635374325897368312178042133966788803535762462035726100075140531349631534328897378085294339133937317566443664500649754383841954187118972917891562593142996231192413015583520094743635943174519834256144236390690326247184951979197005577703235700683894442144564702383741925664786948083652635059165006163737566279777073764559285128100147258437000100953551319823917504224750983112373623437360991290129505154536713382918068632614586237819007843079285083765345648941217853431274780325446977367197272401560856097620670654399539289410372124981230030384689068830016279692254462659942988315137507286166175550536184397189738315795584252844751145215192434263275403486240318744144832549575510484983078651256617469164908242889189677168496517627008628191674991861342184429454126148614033868486695054177016174314189940836050540728976029028189419058174397396670069926656698908809270288850357670088448499101235832664688588117072824516482086369790358879564510154922465465383696392241546620243824700625169242830770986724629069826917974245758641403365010672856355577301596499071250512760333578743026223349554290392265664713297965725471883274678621018742555123220882785001098541491579615643078988397125357983917053742520942342024518790411231635586951663532100226952912741352986989698051484532315160738209965430539856798524745328122696939402352520348705434399389977516495643814931898537260943523903928419507488041567130616743529574358974203189144295383727672557419727527820233994103246790773553171506971130138635303641012492561645222804707078532029404646486784851638301612126266695121874957373744082069202812630467211659021558449727786236118116876794240997411272848575179396947617653809465567949611722814343561263330372726193518239504062066970395831614704994056597839510693158977924076289691368215588185836329146912578761498926182718287030586590203357852721059815230379921688055414753605894925913618552176319830583790966584157845505415789675332910613438587717718078557104302259751300221187929797796278279453711612734946544179001353856093600106036279128067231484621978090358613564887337489207163127170160514975723087366788083912570231286505363921297715752152566226045404977101132301234470398921405738362129415172377934218591325746099913583162967080503689875248126784666309294523629825172909636250864559311869969844058484307761870923983789592410523120603584220947730595253032464107107390608325720056088287418362204866411474910792463239021635770290189314565407046295379861671316267030282018213523525803540083436821218192653161871654891764379443602292430237889420004502346660187431162515893999669742281112469955885612614378932492614325368348615475978935927075408241956194863072460849462005389487977373185186878255244352889122544328314093717787360198877950121901592394020224615439015859836203341388472425820688030493334002593578096920560877605229741716524462088918684325621425067980303408671442328898743494895256560834548314792485748850103897655685280393281643087573203089731771390877996734087284181086831035106176928672662226711529177273633179561652167173175199273875376279512998162977889646591474860455088413113492832786120460454207693578884593983237631230728770775113289693534632659779295409366868518907397060069844815267432845532121925526483643111419621302066385265360844911568227900766676274028009950689062124547193144638186815377854222120080027815428260110034523884594349729094221347528582818617489852828807442718788936366372496333905664644370351387764732281031932655372596729578849538733444426617095834196984974131454450751580790751742197744157379720751526188829391309874731997821897224261282536489510731891997182731519251356622952751596419023864555525172984408567774527922803789549809294238350480936482009800828954939799596181961495168429062915839666062491952732156122730296238620624686257372629291959529294314982329039669525872550503239067576258774211427353646526650316759839266094575462719806495875186534643928304344284575718841831540636021794223773756794053425842965349243100621052838744274180423079496799445251212288816277445509820351936240063618342197327987245116016824836977303709164222256339621886216660813813088674174036064247411368097078166152693653616616785791635428985720251568690283151979690595324659821431101848185121118238011535030676893549927743754020109503963246142229784086587335737677731838480559658651279871551955112061456427448337939373475313731888700224958518507871687162402269564106181159908780693408997149822788731013137866090631254270636708714688139478661289257687925877535646845592736291134539642326721057598467876037153525497468743249521132332663501125189572885104762957133968824523577286058626183453558969052368291317763985413401881486811834308436925846542586613138056075039967995996144727212244898606523710637771757262553000693774928883747009077673622326488100634842331921540619755248775958250101601934945261777747152949918937381407738141889742714367951715464300679609003957259922289562610537372148927779696682286806310395375046017294994726778346499155783928515108744605251711607802214894399997191661000643225220045128566643143260675618692371941621616781777215023925249946516937000616288807705601835412308502852198418040113823707997351185208742290428814807543453886160627353893628447933034330805250341162620528874940405788598723540610967525797146178972629408698651894843361489985768395121381217149360754204924958000239358854776083802239656014190944817032288353603855791756803317678299225184336247485475202281229326580972204822607577327998196378557088717373839854348236529101219142480512706486071086488892170128754224489777201167702152961417888945522654846483217611625579833286657849165368250178887916087298335582590157304604994994621155291462080857787476594813026243140235404447994632591547858878551472569250524023176443687932358341261803855948845496260308418701797461612044139326992519590064793577972445281960507965057836062287317062290140267265652965381033398122390524249957291578315538003806982179954970484735326102319105427856669555692373672713060777899824375186370259520793346193484679318044914923877417601065390085317067311537476794285703024389741399930916448290012972548551172462258739130565908711145567614901453516600586204280763405891219357135034243560258346597931002667144380469443477042896501067448176185274348611645736435048405931148835889000875245977105055270037428041255801795208910981173564548701674794789880048255129891879733191498266159154820638793087409498168373512498566497864056841792307358495781418755618620124867456785993229122218581677452694178572481392165104071134832663332643921224171729700362057324365906866204241455069396834930818165108201109602241600038521452854597561289026282808874666036689448375438543996258019666263627893165774761255256252086107909189780150482641935396872169559095012008462264687941063784817514527305840608581732817749180573261664354707252248681355130225154730604489080843294254279094770237282888749055360242906018863904842813314295919267750251974428720932933008980309336722749403128733715562697904797039034449109408234176039777293180368240381098750802210182079374277813990372760440916342059927070785287802093618885884251766239994765549564519898999446435797615607834916064644513315485399282661329299674716673849833772490101111016699911150577730216098234821681395324518584184209185037814150724691289598318785595628574576360294629483743783156347682780936863079592114848195466785988756159102843477690471172950206736563443927760497007621762932366293328355571176398076858798888853272814452694587083267540267078193739379184779194926548740152118052047763661186818184797200240582273390164552496856007456549754339027166562223466965982235948291875686126219519897462780923612350182378941566679071644072134961431328332383297452064235166640888517919187380750770616317650683517218281629575894372449453307172639994531466290433658729847568811079590618871525335374766873977803213917050763315285161089102555240615872573452446963947212101026521667918818995293676130507516056976074021758803641380478014200159042515763590719689147763447084964184182466647065384589706444786309738162009275679002306884448575348552369009162201450031238173159603230732904511020314031453896419497478346247920160430237072090994045199647859889396734207812905607612796970014706583438494271058581812866213612575147721004340372667318833530756928185955604134135709346689801277630139243468193519303280959999511709108479714625704862038769491414133546079217008068792238070757165159286047588016750860676421463767204693797782098279693737970171953854292811955517881532053972946195706739473862660528651994225047113241363862883642749657364635918263720948024522145662024620582443578585529897114031787039233906398291711883706058033895206889875679152823632292275998309525642874973546132384454206111641873326039128779237838118205241995990082575375706412070067905400817288978314904834220135095600665460987944640076394477473366947737107785116179384999554531386110222605606199166154489871545435897584021110557100435730393794732375525163639538383758380784334198651619823757870197460898901268260970420437807708728102097403869904951656294316276236682566214818945180844615555013594158494816084811689247644672780605519963785512361357995479671176130905387879882368459826080223654305396795123042195178894404688663963726162268220666065729630787581713540585945849831396071796047137397980670419855477891116737915590587105425147363787268912835128417519029041117753702914685566388194225631576275826214207909103338849222253599879545556183980906085356967149882979963959821002474268139403340297110067572967759640208205580336350369798255636867387875572916475738693523880640998503376614299330416092950046622113829593512692590776238538726309862472692633684020774627465870805131723368013892266466765383614440164073071382356238186279981206347170768099548397376574935093105264676875488641401097360836921247715036909091958148667766888100317846941422728034595766223331569387757580952396759779006762184497257085029577402579236119228692443230508848513397250580658608409158261504027909995147961033042297770606036875472758357877365747904770300331145199540309279887988872009534714194161836319555279280676389378170352764118006768061733841754275855343854092914759614339313565682678488515393910870183261322969725300126654652074249401949857584201167935896406179542551985307735409983997020320441769775643964454291556659530582239559852949999280909669814165157373756019552297233868718397150983359034138477303376067518492617591723777358776359115371055890980568291583731773085697812005326274163123412053340708927826583365687599706855634299514425600964452535128700230517830651918739545207484467551114946165192502827082045247505458197652497175251136201797097077680633757709654388218413002191063653036592802903211826452236348179790001623809672135321740043307907344016464049536579956969709753341512587092321094737728692774968771759787342033268383336692156671915713310237868551417357274848418213285876534675206718898089633256469503097585545761342554036580045197837356608924460854515528558313547882621587645594241827178948639277086153345292645042533972949414846762722746828885109616423377085534228635508204190256154636353798962106709248034208263058488501279761259201048200713877351830529501372335384050619158482961223953456224622567124477037199422278351532460479685478067681412926068798982398245864497162779220340322937389059868751470220448705507987606789430317672504685316414224917024412468001789931424944616864293580961320533351890425359238064425392386380018261575955814477749968321992509217082946575470850191969210173392780659033160720268068407574710146246234910274256871825174132244538605003820314477678114698839823686189741027939304288326142358581448705115102100130083715760830553457816214836488042261111441762555854813730175272653516946397152611377955187698943774887558170108427383003427326547833643835882657942162775522962650001505749131573524535816095162790188359598111514762674393647005761044620615323945722277627928191834679398298740871055368831246392894565529588270171486884951956960239070358253294360107827366854574449318437937707497750958027519535738164398482572665604731725130881596789742812072331302229648066913722906412842989068571760209918842140829171425001717918636866474558751961307165027991671799553697163836686019934102689829109100981475283282649330767759233887251866213419200434319202183931584183087568755606480708909544615776818319935981683494327905550665713358553085164782141495977217811564511782744698593930085468137552479756933005097971021693590037047346967311838019548919127298518776429718724160831011554647850262429769093468511657415703091799418145283702024447276080609140516042470600010274835993418026151856427190880141625832277397356600200649003314546119579009593474962925850387068261699273343661830570046757506511911818183559769055401687491700057275995127129822101497894872011165514766910634453363503713076230872727383432781161471700471687848858373539883778021357793459546055725055970286642784268217895846290648204128767612431872201860766488453553254746573431607367292228471476589328546019936311250628295947883688392134128335384513434546762488274344615013931900709316892165873839312601165854354390194932364900087374214959590112145724208990552089894538016234759272499986089920147446743532596162335094887367820020828671117309979390154933124259232464858871869015725626344624231639541042888790143495817841985156534646403240883988052342627719558510787167211970838634469173829099143911393632082050738562851329992194397343160667396680822005002775805612274188407825204638788159218541108819433825070495555963879129153167978510118597487219122891728638436152271662359742479318247804355321459830033429481503164359096949131946592284185414987006793491818795860779428870396533929316493585370872159610168808342111675519868999381326273160232257941471619244432736985134446300910883327276757919443936847625938755467951612632177737167076840442259582563275581153745221280231124061410277398374236413120099281538606766749291945035480121847458852215539130484510921179093990578722333767843341467867991365447508278113139668235371302117290286681725145704718377339018350830073867158249040271789041001987535876558401693039749063273381241211159616185972136788940764116130665456934654063883759499842673827877893039013246805354155300250513806221200812279357293243634122859609366337366274333897782926313377941746290003897351989735190586776436067621652659123058783651769155163033967756960725565306506055224179031899042901521189158769804777236180053541573292627905365554372951827497986906148384921503137777267556569146191527966272123630841669492915465818771159810173579806060778258900333094292186301098607407457426773921796382418958264922056206853258335991162929305225478930577538968945068488990521765482153419901141868984588780514322801091602338103827853981406062612923944590592357026130803610632936244606987530630026335716552422227804677368562008573845216284200236195430474768713170940658999965443799916187428550733875519590772067171654239221650592098053534745435996022366974760590837908872599778438427030957990552059342676619526585767704283816504340821514900252634845001200852034167180699703166198966229215770265779366013407797582105536409962111107650273135826778629640933829625028335334881339044596509932956627925351484955031448179511840873445820326263364107897336010103034497332692509148482668525241273773975144703647067051176257160643277045157462081690912999462006805151909411978842179943826548247272358015715572996649018910329620491490809095439526898522265405372950625011387294986627955088149762401609521776184605026026874851395178079306841640374099861223539628362484985978113348527745324096246370918453926298060018243116566968373435250666682031763882257860631028898077754382640819876707753365511480147850739085781227904025686101903419031762934085174063781031063999726583089415009034688352224832542423219390339089918316839001864888598502794838289458485318121449189225243549406433700665378304799966976450215299800076210355111721798614578644042479193747139158797327860225907089648781968960348823462248801401376139969892163615362857947990131093531877527651091157547966725279379022931558421403742562518488535447257180683811569432028196502090029788165680992015519693829879300363080480007809109618571977958079441450596999412149361780870105682007406936785763283106285741017387929952709659029896340638272251484686052343802189221240601379743576073430436929583365740707816414627417109725180734328733054546861856519281954161612861320365337810271591546423474851906128775294873978051451380692207189243411629781491784338507221162778296207522031262069082008053797640577824113998295940251092205949179185244866444450514494584190001456183609174207140284396475352296143901796204731553118836332856711186912829014264653575354430822733842090508181530820114686849686152784430189043392066358468499906411353992145622446187517522291037734510351204776604373109570075206991675588442644689733537479040169164564117546541471004240450730407240527788979356432445461161110082689158756736618705139862131674051527044730909825058294097339035437188516160473160091087347253176164990523691018167183296587691734815124634704932400869805856614648514645892018481658806997444784593819184023619252988187709562478405817748688320465212006837392391068665913053201034913903608993613813159081620093261746643887033417004312151475664339597134263016718251745175531126633086408154554015141157692306949409414027074980554127080229192777312237858854141555905454321918768809882037922668088849836047409195514182773632515063512708246002227102442188709205353821523621011529813384288344769681144866839773283613126388379703479518903174721444364077996306519170932280030169971413339061559899126405939731321181808198100459751341929518210424968491273517401725469642010543166345331134017372826490177541621787778762372930761909069481837617269939422152348026195250695363486497271977793024248621615399184760361565544225320128586546620516410511383614500515998211008503586553659386235236813087511268358905755230599059709141342494150722468676235893810958714223505518792036042856488937936202812456248631867812754340086123280203770124487468970158760238108757313201411420579114305309999105715278064481392556945766730690908968170766051438757212251910336869955937582009469486432512675003685138339054001555414957729244542855319332536420192919176189015362717439686369155528955022498411618515514174733920743781121906343996919707539035743196651157402304050075853564317537882727995008655899408871853763915051392424783853573401249494782637667978372309977568862747729397787240337989629433327351746034117114829229248140060772980344866880624839575208383331014885730869733438428554616519365301549986961355395341174155718031451673080620799756930549388030939202273733167318504021721633586944565669663261285345354423618204747711566761429208692560331467505369321661575551826114244525686408894619651225802713251634065998116837157555374646547253103390481328022037478124603796874447030098126035123709947296162061411127186876913099634250679098454524967442903194406896375243157126540218160052595635292399415092398318994677353875200648375744288210501727228061713429991106257434762032048812704200017485861637150662267766071718547944558806758533632467795693336763333677764677767405629927035857329361911822445858719332933862795379493623526329663410704877534695514630009357177753389985183021559362469750533550418788579046648262895661263659021334119345203858091690407184338968200920203759462226773111383474336831562236964375147577568984565313370698024310227213997860241990850637712436625642037452940154719960647839239879434271747484074203309028046847541098495490151497743174503559198130679993845306853299006599350789762099561055381321152968932814820285890421459996000656417764110100186775380254618996171695379031995614729902881608856186543560119627249150393416710993135204389009053040674058937283579236644734084377880968708330427492362137509183144095362364315000920789701808735684705979012713792589050787475309220092845810505097758880594861741817781590659634779740766437119367663537815386149108959245570335832307901819409546276521051436943509238866017305502041494594571985543551266610092893171600207842007138659630735767334496056845910829340000018009009231249800178952037433773120045318026972777961421433200603398952776503255393615056712409199420880765600493166279664980087095023336906067745881846244117555632860909768359446338619423232059429223085951122811450627928908421693915095078772138481541702269678796094092913173319713866377625195485906191700354833494730056947267442674343810812180961480768264640915758780862603525313700922258293468971407432846098460983861281667119731845457096749282063505941454714263704656079399828294419667010226778822095367890296900170924488498551866293090331747623503699024366665928300944378947318664248348753602445134435022821112913885233927189010107438223596829062296955433904503077404403808551692275849956526981546021953554748452767388046741382735507548598066937945606781637130243150802062552554257191747109094775735491082326626822297981377233134461820126213623728816305564165203974061318143023962783891572681957457908902555282822678698766182077092720242683765899210965500292137865185461959735402014037346192959214879454557081232142580474261129058478238854469415123163906683904004991659396586189422013845657680709408319017035001511410586443094333720413604840906891088127743573032139229594800168481319225492939957314774672970534270861262346553282795432256856038833446878319712521383264702274961816286529840441055886769877237557624715234389411789971906266628393645233791546302656745639163594049660192038759427748971122730421906052361646772124751121780962071950315822503172031641999138774959670480235593803620874297221803888418701459788515784899494920634329362598005772211030712152722675111576353035455432473769094832158250588472842909507648819067854413887386230753609036517178455713094053690795023417643332171412680143119742628606798825429007853871446756200739262105232017628056558158939532445062259964960292603195345522609001707606174972793097368169547465503082659487617363979750830689195509326965888916011453077296234856596315640945060153160653444691096365075005283406093324901510168948265826349625631748734791888734051227344847379279999333708059967531221981318574851915365105735492498906624352507380156133241949472332824800782599580124414757742114090584645927266825748185512313156056469347532214329333308566688597925120960334453477311422296941640813396250787572617909670201710770415776850113242652088662655220840732000636207382364920243571165976391940599440992631452156255123484566952593424049704227869869920596391783521482133994430008456838285021133092871786805514376011437750259268241614435989243376213604894214004938718291717719882809989157699267550783297309012443823639070302837838712174228043116089493609928195780452931945994921817128600882572483059556560881462470924280424621524392795318563311016869510060911907999953302505062298102215020121709818073408396622597844843039419697069060254289717736900025717050703059830649755127901210755982772955216160331871342575680154495053519893266440372350854844711774823504735698657410182849798216551181783832494550106395083100589010050641934838388241376848683968179346251739629778768549440363672259482681492356204284426014015454890632492317348324917590208375820595046421928353040381928649769354377841773901392175791024771199437623082609219750728459155968525563700801776601815045421820145095514309648573176884662043324884246037364342087293302859401252281684016004318383531250425958132118302666994361494644026421947443187689483781413005397454102218644294173555063883518751954197356579585122951743076048072952638678116503254717332801845199440501037836652987778356898964003673802584408855653604872079486080314831118865315453402910361081806176363375231801322199841592329539153723454216859630798026203711552614437841019620272633517147264895715107013901317161089675385830965715362930842432124822920918197984969156938346880172006475621242128135246027540867246296085775311409985450236175038325868278301147151384200648921964944391658825459097512190622754258053876776360174712765310882999297754622440887551995672048295161623949446244911701232758795097718409256240281888173191026168141877940239385633159993741926187487242068559171734801496505651249181350231964394190906439208514491504913759316076199705397513023218005163035021139294304972831523022077370378148481372363673578491959015842821660453709249530441696132578511524622351552368035628640442556153991848224512008706308977346909310191840105206271839120827254702623301842102578069677723953617277866054577869443524935668727601918079156469842843729705439905115480949235636785268467940084682803979322369817125884958472100525146289991097399064337208644181418873421855292464387773401062996059244116004000651739279029584011437202467054668728791562013922285656566546422910229480710348134169661960935044621080407574551578646066792196819887803208650680371225755531776328280956785910757621366583546584282013010279471685926920014312854242175504363176021292059688593341204858431339316136948180129615468905124654485887052358328742801432832648550183649631947407197298050972543765591574874532331137228533631807062684132635093121098844739230188190821225106672417640625865304973918771955466903845087266656200638978331541328964791330092810408464355005481929126678865936559931242370116518696946311227919937713096112691143589754922685314954784143413224449548288367290781986507183317770610863434878458876384434946036912607647542084048126607014919826625200640384125081193851576945148290132746614443385419634330463785457528307651688608147555556766009547943524946000252074919409503812797023278094727281566952738309861448425060560139992664399879777965271456616861283781376636153774026343949585083754842220412961370036575057665935579863758664194922765602312756193237719750896141218542971405655161168519919084982651975615859444672489496836443259596955156644957425716885715407349264318525425504150321284563892996862524175411725967252716268990613916090088366182543982363535970655224732948402429776783445801547889963789425148681001137132820786574196216699183993356532206697688664321261532456599793782556053761314446600185953836602329947810802937690879020074235943725527140036138886497654504953965970880649104655160992837471711431166791914996207080282489912986668256125388196976125091835733594802766049581722633259022140871458039484376502701504376832332194291561850632448577049538100172233654600808744573885877120075721405549889082986552927760337041306521024626032579880883440545124049043309950372991110894561101047328758491190224595730630845757911287696738920993477520536233475092709936234154307822870034597307198067940667361939154504120892486332047712357639828518476037077392058291249416003551521697521695474093865968071857362285348139462979018675068712060090163441249883976133436665508049085898344023361402940077975019540357925014455994000957919963378740199681352492480781657413127700789350911094605033885257728976140072182072823611809970984992476929400571881510964728133055642987038991495332874232657386634628620584662509115266394713962864540782189748625198621338721827989174512775627809219794686199745167100032764486589750454201978054616106855104324480725945220838981056003243378470587858145683044382330662400748390311232261546283869716234797125943298307475910783674932249822155273964076170530425153736387664186529452571241670877558474007590784420774461641854347176459045465799350423946204176753575654690820235070450306016476562348754886345830375521012463356620129550778029555046074691150658463540164719325691937470319071481017922805468848531397172130440191188843829521363836166654387673040001952648748600826864584246300239819911658621992941590180357397143862660138244860557162287064940552131482717403635160803853187886689453819115562538164718374674338802216458410378175146009748426086036042962464763946442483376745650661698926321235390891031824576803033924212625903433279302811397470558484389873153551636631454110919238532765651432518129283671644597092747231542634786522111074863320590741387048940043814288455785501291523724256315105359772369567429119830251506422598213738323421161031927743728496054669128554314136869256153564088489443404164425401615580419744798702722190749367394469178646720000284759331912531652591183136933731153114116737460258268028249227484670806040586377826116475163841407327778455290615112777365393964568419779066857662010917458522421874955550642640911376914373124639364517577404526079395188384110838448820819503270244981097148562098794777736219159041811794870283759601520610849845189505418900252091112844619817666715379548995802621317928570377329907608854852715278663611551375554046368622198603072727220255014384846957379852133917854595261932860683094083899340453400020122004736180857742091527695517189682204698890434489598329599194077250947889100820767084686878800442159695135542717342511646960620884847263845316175232631788546262145555562745584182195354168348022309142072006127071659339780006476387858692414245864697417567146844540046756422839354289483420271847791349212021431256167240894333752378779078301397967131086837964338253223651478980079937130278612608954253320787291077357919221247358868000587704719732284976397227215087333260097571718567082749713574712285180354290181882226435237256886066617073460341103575580983049951495412791542385943845257954105389632137916835152400042213897496592343934558876053854865700673454273216948231519258870991161030213690130348876653695399385627013114468391173197746069144261023943420842530940711607882247379476984232320244472627198647499934931978974515396791900933196211636525623600899507734042778757745090664645280603882271734733303854456305061522272965137292762646556801485649963813188352308478682156893593459164623479883036764302440474828866772317294775146579959191233863271991820341977133379525363676045863292099621138070447054788322065704346265344821553494772359109353327431174339591638403403662995767694297552232634170484911263168745531731048723610577844532760478886905759646953444882263491964529388027864893175946674239394995850854664959005900684277268194517587740079634249363375912835636580449144623201701777865343119907137153563771861675783551287898808367482265052573410199500095083969167817739700366705457980910365300433860314148055086089324826501546035392252085919230296441690729663600587662591470570223728934811008530470043094009970432710810405918768447586329570619333569220666570565654537752323244174968066619653003195169481922962241260234925303566197304021972867323864252888624824320351178752168182443415767386468168490780423394855185072895193408354665845270711157741667533779721674553983521904605135425183810947769361167518911859611103133155980430380534453693250168542334609898453947889431005869349888141210177633749582017660057416866000152063936250480975136489978575815585013733101141808718434181285495267512445597232901885077257312761129764885828972454995812600527043945527048417606007549680629403554445336555885939459284892482603485325894425501258537123950785683729970405572447025009375819830064019672342745052347303124864065477450629617632603499607014820128412299729928604603671596352178733179821928705375248715696497362864215445720969772714943561939964510997702998853885110215914141107981095594278059757890544109804557726903223593618555779794656427949455771303312643323762192511338719171837678316286072961871867404563101101734803983469710897486943832160919644487689034329351677398185187507233832622261304751704481097603863344836773489696811951235338854718597667093529462662050733946822900320235044047569401907817367889991993539155263326228699362665852831387892472473028710996705671793896849506615612323850925884569581841963533863811697045314692354185571824833284415004782166548925547625716016049649953139004692772556065752372235134167267857660981215041127876456391893388267327438969465254113414363459077629657378868485989193778689343986425814276160214210590011157363249631418697225151087283474590165974382596245670397769758729307248769845063805850076581374043435006622826233847889957545127460123402012323471865285821099278988561924972625985598622655252640112041715036158941469017596017091789037911971744391997074277770847171408510909696531693751009328841060673532885810683889027188635761322003499275008890772266951484672172730660629994257687749806178639956567500003078724128172180772827908651086174297407791822682005997291471671362390245389150483472256060044915778373717532991683459948449594380342491985428469707859406135066529312379440727537595004434057743720914417498224996642399389131270763852346447094360752592750181825474466021889174046378273751305710135383036709106076774041158484653048013105311399001309240370488058518256429330205283228519563485737667401015237602040171709897109857226059786129799854436759302405357593055235827786796155876288466027262429768554764609406676412334160331830384391457722945651657360469711443056054823947393685905856438999402902266508100552681441280375022156714791116912880085323233197769078885372818381018986544902781897814627329614944411553581840366011323735753764286929122507743639016770170793210670268597328920936735011232941634171158356280868027141530792851835754385512226236043123707589143665111971504027255201960037757392497073726344722553639749863125811678778986319966017999001917284241898386545522958562100589898443345126935304080923309091187550559696806937140828864610242253034414523979832426380524062789591562947234108460697171688316354379217972126371203168526453362005782550875791517986441726703513631943439703031143347059848401153273581523613654269534721139796151547490431213547712348335777992340514761996900612812215666240077989269976244547125568302253682211467213880191590289114469866188880481077549437403094626147340972515466398018819156004353309617401636111796399729345672536053331321635521133356376289869952067828543576224527248602130545165518910499084294155729023938167616602860578982324776666386460597108885085679900713389592205085856222479733244447970101906133262078987944053452411668618339097490146716380870276983346792041165249551108265188778152035974937991444377598146513043892373516801856869071171230877370508491065241769304115954374798309430205431673409865938242770924969848473546716411403916205323280851394052966882729547673256170000864608109688893097736174504579057742369238004950695833821109079286630363408892661760884168916924632519102525235704367162421631634762922572725168104972511213472274525350939278831587955375300326538635399094923263013867443113777601317748892089080676908181920850590685484341277231928505940827833886053364678308839610879715299466240616129638345017614565053748414494324795284158264719747899028438614882039837589768233105858394417164599057139366950567697246570331882118386559528248214573247927521940802069062470868462194726123574002876090252343242113573176617488657645494958586670313982847218411252212577822029121028923434527353746913472066966956298400337994688942887010733758440713087672305150286616825389009317328680257825307508881802675610494204690908556684296974231751339890909261809372447326765449849728706781367414711546958649421566260816681104213296804388376931369175966121533795167836790581182377055735558126813581876854776846760735301196181659516756372915951611078029054738387819037661397686591294367290624996120840095716545590130552650493584339727706269559262215081780888654495703012976272872913926125005561871847254442200684598632849415573268255804312165771583061080598213663997367939021217798294877993512066564179252687043927133673869687080484829381681099063445639995585687076945710050393053439662077811943827987120864748781577006186991190598995291498206634554990590410911084175891817438362103607767939857746632794022140052691248746056609429597195215833552376950041477416412728700582198071294058006917134266155126491427757844178554102403200342170903382506575236479341641269445363078046896321467432377072636094712643667263951337357771022794903908118182788157468287538171658804253889999721096326117553293380067021203060358237702619005731501417510145360230563638603979237562090350173485480747285509206755537677129943990909391297523201497918621581195931609442672447460591040342192202311796308354526179057938791512398018121030135725872847507575553963756940152882010655579436958237152877383684769460006867220353796165451391748695439263180934755494092623698627453080290056173037603034039964652764842399250655677739184166166736581579461960183556690035904896863928476354712691841006748765729080604486575040644897449872249517706550611204364784475090384184362985570050131990075087821945570907089028316428773115043384171231169834886030516287795148416671569222963262303679540449490805795540862911804236900459015111417691909474064712670195313829903563521113886263737773076980565670377260252099831916498326394595881821944556644646543449431589011482359436383562075236930005870766515681671945805279168345903390635159906881481016976527273177987857706962747541095533509676324842884192818830459901353715698652270915806548631968024757317864558060191295456828145192673434101425883700897810203379890518105814992677153162026936366881703459120577860886678491471165327729406767721692995570979233245842054768002508603336436237940280493811648172878508968676965331241440908183595709284816777991656498078016130032648584078347420697101048444668831724775158405098244786310824921266682885361541220225117546204913771440617245657463178598549170886867097969247433454317844305127929452077558570376556882870106328894840912027804682493763221039451059204761410964797822554714436745495455317624008593120963972811792451437130006175023305583904068585606554508689139472148009492492349241278667274795574604052883228169718749861177954034121459569659000181406930972932793325066837037230666011221454249461588378127775639303831597343388504582205257762136170499581484960271668890905492456794340814582996646918671433819616621706848329950706794018300253253142722782317816340500400374619848265897268772359702659827059354433939813322402010312402336303970684026901215978171280961735480587026961409565432728805952499304420134544292039949812201839799452562334457240509634527495057709711033167454167955433585122693912277087789324084786320626442490251320975556316761495237776121545567378600452753836560546434841556075287587986866170002985224499370810323834662715136602695070959289621040942764110695238468985678104611348783069683626306870240463935963320056348713178950643864192823535032673573446221976863970868130744654841130689333802055194457300024795240353495716911037243691301733921485012109961779693287156084164867382711705195981036644530463112894250657318511754057486870276944626011340913439897678069004213595252846983277302846200315923281970699686326547079746760661652514602335062763075810326100661114987023612953921111833512729357165302606380636182689858419821186568290630070344873316165370268441813358900139310228445442968424205917318839914494261580352124634101987862764390665779556816501632236938994232974083194927117150940690671573874330286719078332931692304205386364889616418999229623979242613807353154866098186375632981857326200583422673236889485895979114355715993218416895585586809642727767372963253104183870132036273546465684815024269336528303665533771843925610354415160940493768004926465464385439947508736666934012239739938219973067228735978914807563142105286174636577527879826064759193805314709830869520228937237339576975854900265854484009325789965973633452488366752364181843058930900909794315052812072396538488839087747224339890610912373824862915663934682533995136206334083753766756784676606426732528875655465863018394438734743918259190613567976346553056346573543107729970582424166309804578028794660660369351123537708370643808418376114931252567650177169452432739230381511744111452000331549082981242472107841934246182310406955512780855440541064363514648276772004365603240165263276602262323841635012359448856638770682965680093306123820463180266709566002018913103847652829502096292578024491373171505474048372895997035050259296137922257342023945329175958565200138582491221625125105823088726761186109263757402930592607886658123045532515563827891439692862435756482815640458011003747373108018241455871368357024471631960544620155580839334588645828265263936712552250571315758623252446678232467006508854453301627235277511570117544645680924929746899032537771885305908852766895277783992307772180849250365462732507754756829873292394842287721851340185862874021080689358683364084386931151047873103202527453473611092126310709285414804150378857733168293450807844119741261560431248938110109329432773171052292543884300605146881582103367352294023173493549227662413418009633469365691700423778564590864399145561389964773445851689052521260771507148747014236011853529537606200416950648800070996968965454653420307477211267793197114691047595173335116508852768248514998222781216824666088256269656693078056194411281373164866184360993285096664218249764894838348959873804894454584316782627474864799585059893279060213421457061997524488175417494723514683959009412967740778152432756077704298166426374260555561186174307624546951769954402733584240875705547935174997571756391524916781112823508095501055516243741754864774281975425872766645124482619169538214969660895793297854092743674584837343532130677994174337957719442755280619783447183367705598163378137071426794674512612236948244346854921036864222544594280985301870818224402992084211279332301908365304078896926538277609561614282556905322919172477875245735913673105958291875097528608179924316650158730164493284956958439570392466379524961498365134320383159536211712528917285228357241632409974113649481933076822455313878522380779259041741643037190929745418463648643854594990960004200958685804911495401850426745023818510763694698824104700216686084613053551131768117552139648175979254932841599072821683593348974452398403580829142175537207478323874528452640222294099505158462215294335283846431995544414161983940289569866854614101252393436831334894243858696338491110366138460516298694990019123457705443393091359253872358194335753335788593993666965973104694903354998911015142556362712856391368134921320069723369200115512253985998370186141367431251847396802419854600478339018235326156201655875438812810882632363763272241849716845380950814534261411471077654582196019529905225344847673446323119759534184787354877951373271391929893165903726157269290767475327785359276638630916882031857147797941724913880572518224937803108003082252362330623760689796232442013706312511953193137993801957145483352437640333561534377067884225335074294437210244577982419078754745959878639361948549201082006465232279763964648446443218440733813097318945312771418940285652316641047355719541900357928995236878102320038290939146932787586308893197538999673427460790739095362691128022149075209023721328002729582426862301557805655796565353436874062717168860774191031612232102125630081767547284793326274632715936512380496051862008763722303793342769238467565751633753289784883956797159551670892682551072203943288126211104180523649566112403300170610386662347678572834138589435155838577699201590756902024718002738533335280307273259377777827964597509054498792442920607449960056000451918306843384848210875257617396114159001426634712203538217446199391100500040818096012818291410795703286787701372318963015749612186838058962000490460658694950576377982008093092799966347779974308609591958505260593168197797566817805536459326253516002725911959048607686156121851477953533821031274232850701407879949124238625263937036561635870617337878060964583525846757239110750481983299571162560976233360298521113783494100576484679530896201904520967236216735617244118807679584521697318044396730393517560767964664631549372359093575231089898727354498126758361370520974138505378775018447371238488357322960168359416588040051585515254104317099457436923969835105368647992390269110910866819046878639067775167534202125407919098828710538759624458580404904639075879645548085331062053149338316789774518482665686176581066099858487276362030190369619331891173844570571298511433969075355875392490740368860949251310400794695171345529654162770676970232054939289163702566682727884517631927437647708839282171359589471691807114599034443238828267641155974684020931289869553187917464112351970925856686826147743378914067958800507758595290124962988427558649159858806613433661888038171787633084186611862305672545682218603266225185497653938093426722245330487725825001502789562997256345564355010916485930442011094366393701333089583364158312331202702165271297532538659358710635096266380695450542636453046347324391191558259766097112602728061389824084903433603138719646066946382423871550367969024378015451682318229418650927242150890195109601724677313046083824752887394666684389216882713351614883508902970173151673578264812420226143764371567763350711461366980246046584374912474325274011703957714610534688926624037473964186170158564314051294810923682236845192867706626416636693377804679506016078695351344828911100261350245549717498410782333567506063613826179505587089148681600593079066926810388840387972922325393280548849518501927896845259202437983291478971280729017002379116314210740591747157040207257362137477386486582925608414032610250747529488614683613377412967989751283830935009991139142800931915168818035893986084596685628312216647796891441848078595041120225886112096908967918559808347705392893225611905428905575000304894260033992748500570805017763225775009523940416353041306758706927871085031488019702975795370502419188632096274088113772541534267359439284842204796350802605017612187164107462606923213297605390878332826210362685184176251021549849512412621993439999844067919399256866999566418908433128561998143409887539536557020763519018564185734347702019096508968817593607200915627487533060672596928060992982149228055448839826965810237113607870486174291385971723980537252429731444841655856187014481370674734807753434356818344320388185044608491051393154736105726516886809860345276140774998059264186580376406352732754328863254061619760731916684728374958839522799837426904683925127154899642575033634274111724085211667452321384712161642010985756714601988923749366963631616659910945135294818285131329342753885983185805249640700348923467960824238619662623364286505738308093361160528830052367279661101507557307020943505717729818179878182930379074844444094664112216375355676556083643207108452747329842612043710984917151647348614965043450240727526989119391974697096191871560928341113010972081219095395743739716254657160661882720050292786236666653077028741257766260441502147110556426199165946535636220322755446962435918089154701677382253257748169631352994532454789444465380400541501659982817933699068955878210976617478266580557120587460397622342772422664588570349342222806936996705285090909632635446562574924759115801976652463787134769824400239318712149629911585962341813460598104976087142105312224516095947983979279369628590498708146031860444522206927851589294763523810608555260032695836923976548734300865309138999376292106106836871298267589045497006608140222919630889025844403203773928925082861349419712888619634027652882301248129485084120316154080599870363633142262945464673189067266727443931462388941787885135388612838090396982606225813714634865851348837652819968925780229766667769631983434184690874961329540833314195103787851370349818489981028528272296686598831215979310162092724111286720784294996742827323653270546805218798842034901357715903983605624100871864677865068909660150426032937688996455859545228192889297315061980419360784433486501686157984088046493299639274381558926829622838257246492653073400002744907156019584313742752960987088140589407857459390236443699100017915235162095857043918916049797479760135590819854451618419332050753087127086230635269801967319010919083497121233506492779188334854319988738452427549493954238713732356167330891093961174010523268787604567608994540717234423439471236435789098427568268648991079993988012722840365880568964719923438456685612333820593866881277611697860051450336266375966749754368585623169556052742885565103956591892461334507371940223871598701352363420351194469021120090714682013802372914156103238430546688698305434326435094848060490183073479359484598042608195241502656976253534968036200406572136832819228489206972369954497661098202438465550722290626577065789401425987458653451582248460201587283849372139568344138069909016776099499451280272928313936044104606253574051664709828786040551896395931363676540780263084399265454164686400013971458642949248129286211006122044842922443943067247498691529748049574129461726779823254153003253931682378015933880321264216880872955658070862758221523152054865607205572374391072899052384959370113374747127960830745597773381005270149689960719830649284890843462055567845783777069182535177172452733760628112646845190631833766711403061269075674233018575759026293489501500439132246932994477227710512987278848067597143059808070881592134268917152430547900991347178176335832036988495575448151908416059690423969225221826177238979535179078908188671167854287383819002778817475580634568579690354517964582906637322799773342405295422300361970688130076143830925044647376558539824973536843187863783371395679244681798079179693230294476805925631964497183783388470121786084322136822478714584736960872400144188870895486658765796039519225890403253698402989873822937706150325971651518685630375815424307823153416263109685972231499073478969195743796948227478219312794105785864269167195540702125380268292498553347473035338275152425625966482181919345808280568575837049049326698901535552250133981702073384019108558168927475765124248440026540229698615508027060780007241731870249402810533593917109900699402120275261379144421512219052317927489361110862932775018304934741357918765020494764187351007580575437633278995187250000419387699552655793556330312085416663425727442236775942777741462196815371925113699701602569405536606571457585461566415901219718195126778466400667266752299971921447533420509293766853735999674573075476086988338160260077453121373430882382919957763436424856879810217282879324685262602294365138537957799324062347001461227242176950870414715369655596492582768670952242049954317515095171704622784626882275327344552519523145755257379478793046795128050626519922714575767418279374172912437859821016266389281921907023513458598678360536884025122823607472935821832844120662190488060312188768536448686442770102526981008671239874352001237730387258116539473337236743868814021928568455059854926209170819504504188981934647458107196006621570488681472369536158756720837408906856517587844640507052150259900576004115882301757394312186267283461772767058960197784234253591897291145235205847530284309487327328646403407173393682952176557822226612585968335768479527849170408607233737484962526606430341001882147852909981875355719475368445461377260589668964667696875857537790069396126946716881899025932036359846517105650410201711509302814715597044449582630789740854397759511993828988373791316242500327785922389471364451785813662997852057546163811042143405023127447203558403859557808651750574621409047580464798363024029098152841030124769406277531800698677443438477398400393899218104171754732576504211161752977958606673220958874649509380610280413128495225092428547104445782272611546095744098232729492696402541365562192915975234803354523439324781732744051696257863369691122705148119268275515429399346748233921464454277931944932055466906251886534486323205349996571210069855418778013050263406836815040700495652964630226219533779816273037254229141533770557706772144571459906364185565088500170126632171867194556923115634322056932231077483290231990798821145137166504537530187069027878040828245587588738591952188437027000879451539629202746223821990683222849220650265647279668771223013190865583371408310069582287127233467566949497831524469248969582952539783259183239036832302883510702684531589198848143815208953741000272581487562970536950693601753111568462863763403217337921585513741864839462030046773721539750551214248725006570642972229159274690066965748051014084983041311609726486525688138547483259175029917084360193491900357693563960391224742824636782093913438875997386823111543283548621947536500951914502009860802101070623940580501095424516744321142659265496733930449658587662636711128437603181196807845726915956979603128636787657480418697711405312627392663573645214061123595405522862715417429922438576607365191281382020141414933997401172375911025617565979102789824061608081985937848251641377052847215079496382255673896884823495910502912013510657826549234986616197528021999554894574082809304967263509775532404273996276942197165039093085382120471893600806628534690891704960764561663803969868697072968001343483692737166689543848853757327012879552503236766989336652512540141049027107541457135088960241859554175472964010684043754560249875218323633386404145533198262461848486649337526246391123983506786077415641272774983095303476692133321914078186545178045340558799871536990240878455935796364304424163081682998270316185907697101308548863963917563558214429138545996309151636390497990120571291809364150798963722510862781221785159401051853562265819156939009339806623574115380878364307349253871581732425110096000018083706837711901599636991388199370876240068419249972817181339464130329893123487404215412796318967186246158982698003355064514905134731826492891142548268286703921339960053296203838779626151984422310305380880426874556387353799837545191362528609310720824851085241808937850979970637941036069217047846471217455515034887997007075013781589538675157213825474675096122340814594166568444165965381338893346159928472026699807873002634509352378323546378897343424633476092261578851805293763515172948516493537763999600873997141930690554450904101510623788705282013215160498854228464878487698941106129001184490337811926094437582626900857212706315523374728273302616162156366612425848619701546395544241982771182732197670546566419101300722499942043700182387567406533699417448249068644005862093392009784033585116424077393370980604067068917397805034887771671839306651434689678277105084583532001563905660670728056719408829283601685688771628454369759537773256903264146587491200628402895247239009607981074792459461859701365640744156834243724049795008149143352107074263064638738420245358776394915768852720708201024144259117338990747831461158831231115340596268163455658264355652549902520285864976833445898202969111196146090365357455388321462111010149078020943244131280385722017266876036668411648259888300072531862173192282583768918826482240405278815719806851118742940800461347661915918457904788837222551309237552182850436751902048304431528919844280366810244929495963869418144273534348884936376462093377777856826171527711428494201763937897381740855207607137954870825107748809378686004789886153538296218332959147709578440136778188090891578796644490658947882036041345075861631282273665634360379897392440933794600539552934593872298539752211147543737864798027103895130473964738183712494868327329246645762484116826840658698245327571352748923856300761371629951828243487111033973527838849158907180778961766848525793399335318074128756332112691249838092505033032811836317557172797040844138592923860214028307033409512963732961751209844769438646865250753096421331318146927653869020558544371588327535227956916048934919495191756181957987657063684086787591333481013916779888443257719417098714591580105764660226950032033627290067281641858688705490345241277240899502184319537270749562884500354478228316392434527829275804844355277588951663519957251894189927489814165047011776182972772521312076008241035071612667464371468198360089792106256130909299485938560585577620014137614082569449382073253631314822356698119745201119620386702986901497492945491736705723259902562254110659377171299172640556633454429792204562381479419508190147472405899440163854429139914950498062732907255768803949988911564784928765441893458442983392841157260702671976637019289721219415720359636573154046799525133960633060121100062519345352940176308178301890899624903751910216055710986906735332653718315223038395632961005772826673779583077118080081307259847902735694521355219728879736916858449252507163326239238442191346033928800478541879315479079462194606477488196854613469720386824416852257993750224714309067402167244258882115360242013210964534073866714854684110515640831652263361647886408897192904899675644453421040266273765552857774830715988802938516888171969796299755291917570757752136068366512878239553090036587569264831720729280447731029632034868528136205936188166043129545633534212449825692407870071842377064346873218960711102291252382158064245351438981020277445223229425547738740623613671571247874710594583300894944024933329804515211219176102379471866189603032085128730004066098042862852020331959981321200059138804900244157963574672235649658493941931506699070959109463179460425657698732723302199489350780973364737704529912944758721864846942463902944078709713991161871762407190643700599717141080361401332361758668020827185211673683505309524433403108064382947244120890683922427542276347782164213153927440468398747753144599245747772256725670643570859879909080712957993845986682604166532275540762744879275955172338292044232681934437510424595838306249170181777319246250279024694681139996053562409801693410188371112032577928395957319527080261674934773556931226185745768162579187571253269985226424694755878759672583105277903818895367513683122997380192266619946642818244782962780028804244784410662661281849097614624088245162081026594238457048128904997586474210533354954250849881757308093332102386883418726472133557443573077519231418530260745445809963858852875533475026541100720978089424678447549572381015690356006146971872520135133198886418965507630508023937887651318993104182697941589094729720416491889750513914206749472074918516114007941785284142576247276080790390495106762752813444562720886565261189619954860564478511666031120866918537185161956631816694481962046090188636192126213846843580626473551958627303789309556161899367465382050190274973066377706384961955237017033918188348833336610888509739876032479261376270114483596366531544954466792837401530283476130239444055480450230724601880395378279942558876500660227782645597527575764687543734316204465765693286169420348885393088616872257917591924329775487027946398761570434682088050189270940062148277490445185336026497937376592808807521906457170608405634457438503355948335360283178507599238084784958179900285689624769790567947721031070568504665024041950479671152816086099098624885683460417350717119209965018392614532467655690208072143248688253661118283742319902715733981281615912210772985324466777520800396665516302919922941939423987187452051906511163836216914746219016772710214538494565530911888996417698566287962648455616967211905336357862811863896735615971525708304005614919940138164990287661458222850542980225036171179953799980125358758786620306346088397983182632837071974489064586105606574494119819496042970120514935679483149741940209670039213618114750231879408346057145518805997124020804768432985552547207215771038598468365512633085657148210227080406946432038154904915540827834778457321926262049708246106913638452517025007708413164264078966945820046969070086022834146007089571293933017816358900888242143290073599485582218449408247646236666983622872864213126991645231537727924354688247657636400947175274052566827831340863735172298364402317705591646687367253042524731177487029873637519441805236053372793938962190627183471017530701479560227352413889077387933662473122324989863500814935782948232488494701080251825483743653406506460388907646220534010108898253353469070239737602227986994991228732510145374914214782747692647874280533414266000174786044179235199430227782964258994320394976821316777041709189213056553209082968037593243070949606264933395660185069707124920493648941158162840069354790727413894115934992552467966016860692712037811794903707064026149344757813927578375194848791641668340296101224899379932888849916655858696530125581150854822269697324172432325553861872031238398087444865323726568330206477068058341693827016886313257817025828868974993419183907812640107806950539226436193893798763795924985559867024973238013919044807816077507571795024735582660290444989690265008731109091311852485252651306652849627835651828795131340698294523525660368255016850246376652912669292821871772299458499075555743817339962824717907802965564135040915027357318484009978456049909509491107078582977669581184405828444079758231390485500948510835725618253601431678452688250708681586539005077370307124982519069220343767031122095771750062310871325554331486994973018370994984118643623438889862844219315635500158870897280062599030194142421888991835234964784985067694000825700975856530397694200165201447078272948909379002457700533488384761213721466529472801494912431422020991576857096544658323768452835252971148518729953365511178208404841350389451022462018766554480024984413448384355677328796931158748889407355535977863095373104960792669405312001182595362605950542241008035101573847781500352190568112242767690733635123818797122791140089845202073937648139146582685997342951285487119665047916338398680982920681297419424451714734455189315333057108752800792791367242964886174924490946573733333119595808030170261739037355397575687266943133224875189360081000021723494405556109019542621834043179345805873088906207089672719595324691428586983185123622566728937919821580271939264812130133719431809806905570491676970856138702729383658704848477676632914941114499195390215295564294866849518991750437675293969262742421849466568577054609276961837286046327516031867825721472739240293008002565736958022691995123272298594442402105491608410319763876988152275601910393234888140723244173547665440845127832931634972415291537492221807640582559703251763394448315065210728036640100038908692305708528909497069246591729695218255711592847588022808138902897651698021046712664488312520075860336680833256948955880686476424940191831017538927882644720357410803984946311919628643314280125089280630699574166348918862841642311542552629686469407100546223462832179976221879683126923868868639343520941552029046447484106720396941674242633446200219597638375889594368780612297850775524859266951388406841011924335434154727311095437238128758729042849827275966787120854508058358603067148212366192480360773248321683850157765648376332431183156756475112685764076066516395495854031019362727250014600106264454351499095769747021270177926535613171265675156359406619461743743013103259585273944506217256160654436156996351409359504469056086330361579277877364626513203070304583099457279494717464109916873103168290176839989199384403159585766430994839064853501364870893405680397915786838064602621940545529896735355791740936247496644822215202777976023906961327702155338981758898562141891742562237001328783240334761435105600293418744898180071850246323997845885740342250104833022877085158060807920201877482494449377112920570088867180938203036799840053239323668419969394074748777635855286336415146679653222363711504647675869888951563481638357087086354245940088994700571015903469814591948149483749644738415129012498393305581192738984757524734215955326782418387953870359880924938909905147529224529398995417885569135495433993035313695769679261902019447673226654170648919128611404896637519873716456942463542960330154820671207404742455242590519369436583671677151861879013063453929805072985630517074671074543682994834483526259865956757398463279758342762735031848100385221415139575682229490173909890956155950512254248703935328748859308925310469619241729972254361326078030721878714630841054010811785871852744675593849591201527657472833728559508371916090033329472206099658624771337453869077478934794242065139286090310585891511489708592496395283596437920775387103325949549759454028607205866460449779988019225616348045562073721982479454971841493223726793327840450754569575274875125079540811436323353395448474423076861218142001909254918539999776043944411295464576113301657091609778775660547114833897297718948036126426329434942160804650412799850303700671158654963097346938054268140830314461969320147393144734110657090815837676726097672916043543452162617626608601849255955442492082935080962748298011747145250108635786061210841489923312364632919636879942963945010162428921401709624877317341841591214237287700500343242998488346260484768428827043447774600410115679005410864727452867919551086781656800387886565353705004802752876096392873867713277915433293788318909409714603070224831646160327395582413431752983103008590201936345703007150011998894145795352113371211416441176931035304803305926890899373928095564044158573359865353594785975882076393577896889758073603992812798241292684022164140864146680815662758679366216556539223290445246197761660833689757534283008829721352337602058731170396332533785874171502094536524408299927875859947448858529759382087583145111325847685043034621772370582326567306115421971175431677176107200739526889683622608008293096469550786231369155114243114458134656375072567155924381230768914576173120807411707295204536490520707237432237016876137773546887963256014516128788148211549093260437369820914248979239646037008362979717553484498206769002550574113586332959754950732053521339373223116841423855355905262392210136249155247783785696291091334709143783803635442843763101625043574775675279383254656961052755254807591617170503830353853966951508380080512578038299676273542066231754178729858365547881893533092857934488594211207641839077034377125504952304112592776857317567414712083732075881930712235143448552766983653814325373745996002478561989837548608122082094304546036304064660539034736850776161029111782504916117695320644512517364087484696591436828973043553490056694187121332621652714735451435816514464680727491081938675446854078558105077621757269170794525345924083083745286606006973870984688360181447891933831675042576048969395581975734272178801771668686624200981948163427368467600931301575217318847252021496465832165401587288554429138037382965435773235068424638102534382456008166154290318067283584644046174373766833551024022677673091767804120337022201219056860149507277511370013770075918456873853070811144992953385610171592457744551005388278225338483885663522496393736114496404555465932873574341208983386444358659625226977361801263594982131078184555900569230731029026438911029385435841725521029305858447830238711154759298106602284861850581318250885216258572267968784719128034753244417123577914677803461322641410987539804288675253025230156880245190243838955870433411131470898163621410275388279028226066067531660593273602269077091303380945839848042046252382584271158408625458085413113990989683709242873650288686420773959721176440521888899007779879958274880749925359931894158199799783128686310952437663484328006679665343037458318756508852461141673938572817086353518243075986788624532549503966379536091011946129113254589679909616897350104494362187293143430290585303357617305147379012333321948735888303315033217137253267006113667143896145293790261057435081181121914661507550702419869053235060966714380874161387732144313152125357207770731569826152369157080471034090708684541006982033297425991824030339581359951155262246673155773454749644679089781577032231217530335342170077570950038206395497273050105150057373045618651626530232147567260386974098851369368235232273540547843107647781762137221907167979128577140004171181972735016200383072933083195184802883429911925862084213759981013108901766080148010178592181246544468194529159623979711606667924838961724209172576376320387548543232924758162808347704651098686114587722066742539703118010040428655759512022026010660231843792682780611587800718054886953534749954089680983771114543040101843670149557107100510107069904454361695696411481878456440573319460712832150016569828732556971160436009128239929645393864019255968084030215012609038239121572077667345678714526218633350357701917848054996466529687431480527723721609669560359815253800463567481451083128473363331517459847941328632245360087352429959837743139170501842397674816470558628902972995588361063156939974704300305801674786443136045068069261512438646141037292994354388972935864434234456962500782663936044187107999368627207175691965723526019618865831601104801355052041256222160112140243486964043826190352980202493439883231767955806515362242510319928162052631583427289417326528288950081556767680958473897584044221941345500241337243668592664198293182165333520932561507418288592457638896366863495073481342899339238608200215205772411053188354859802055393340806719303704392300629396877798998269537860842795502235447563007249374829857093790067703989521301279705311996913278546530155911709442052345042353279239682518088072107945214626637462620213065468938418296983589263383391941419765740320678569926899760731913460336340517683200006001071668514380128921583924730993627178305791159362834032646589925944666146656796953301536544713151242085384064106243679267651187973085454080325542878666697488283554619418769914181633461843498926207795271570840709355342183706059605763049696533246195235513021733785015479601786811345587545861924198360891056835320321991839954263819095629316195847372134109192272307390394701207118552286979025018904391801395430133587595403468477613901974095808363420123660164601938869258721132834959598811944265431821486188066228236122684396738867566859589363213682107642748527683464459430460164350684201301665295309958707358342322686634436939040615359718166847860452544083363197354609572566022416493126038144911644778253134851574176944605634908686913970291367923078278043641564749401003882606227348946429270368526714996137960932050814890306110368065392641845948251719610339230665123759223716797435917412618778428352393156258373903742466077827190530590840771555832109143086208176720984671388362240223755289255158660503797038360438161651595637641087188986985337443675774714289377829159171578388771315998607126084944604355502819501621934666879160518734129814790069858534586245263219009333975472784533525382453410967307299355367979874948026629981695703448557437611804960088195997567567278106711654067319010247939349149771489298859498817840037340286655903445739309952877695881165471086330825765683367297474196515728761197498135759748455984203216337445644237681649768324572992572201119869346225412448027317251854743589807314850060884790511121264482433824837971186740626290769989630046296662373174195467545012272523825122931134419158486625554335815546824097462903056350752419926858899202456685050104786389640641786711463133962485992448282086946955233898366668007995917705109350421146979632302459097964481615238983946809139766602743140606186368981656774613225778974482994450517738932962627910447075974729858712112070224003098015734954136977269716494947949218925793534563125889700221812561807276375474366343295611180156854899332631373189172621072117303700793317783599046355263527390926217716369615516082087360120925457266318149201848774396243907751595243030023887571196492269410652407533897047488017209065101740729851538864862772273044432036967761941077751779316938422802291257278823089454447252255529238536245287905786652955444265641246469401948245792312933726016245827709470355665409904872876914382060522459615054102374512151205724513838640564402184540328846543370368992099182175777034423343798880637849600949671355447536567937335190995908876415715032578098207484079042394762252674751473818013800691691851930783726678662154057530627424618431568561157929681317953563972182421350540045847535275006963564938869015083127758681715294987884215920079502618864635203876133781412935034283190700654696216921652207829555047399569597080806257246406133189250711961564528701670307650089360930789734107026994263971639137804394711364173444936859299644741494365187023427497695821643841749487900145100059190839398729202859273363464972172528648766356220630836156368264708939179131734383886869648071597420923657721796811894948728574832090912319601828978943960385074702049684421971820058989723190250886066609814653075027516617933198874027049177739098202080225272669047135842000123613796044256871860463578909325971228403242008937686866623065134332160396649200081171961583172407143996108959502004772259602410724862249743288638095454725584268804865715282847513398679242760881311347285791704571922998309364017586579287810471085541868669945170760890418509390220675326399342929663087691870872991156858493128822804356385564437182805486017449365797543197921015799401433227817123001670336146442391178963223531035983844589275284637263518331890120508596233208406489442610958155603949431234887403909940874043344474734496886021367941115173569041631721129654794731165810537109848807292216589796963429902164274025626747749211335276518026061458085253163957289825793745630780650868856193810890131978833723120727737297859630468688071271866909715533029974803451839862298848641326151881828644745392254569154538988025674055739828681835243646593605267485056085689842532446579578247885623829194475731226229039746945990401275021192959638024794786160473380078660087348792846390624682831801938303902761657999449852696170391282806819910378804206970266919747312651922414937774196704403133888569924232360545303129885779423103589908304275308108667119452639103164772661474793051427201804127219223402985882186053100793861887330970761311678453666331107893522556726354904534272860676395206966938539281181898290349711959656910032562724718715484511002076325773467524234666522862875510643747048014370734987699779975875751698310221161654330509973478512557518857638494649464443297190708718747933705951163418608055882293878666701335139417380844879997286046170577038763884790958876738583711836613024836952839980146870956376915488262754495823988325523209052722863758535945807105925158708151536732634535640455815480830309097946964273833888274901521459229243757468419102902549012575673566357063234471859177926114432669147205014372362431787679939268515311246132346754945320787161697123200142498804304671691891791246346266040124686374359679593697627214750125658307772638116544183790857222329155919412876165875623435509739327725991142388674318756530389496590938841130505322511043418021905144813570442601103027899272667589108384883039683512936553909306775748191576247453637718429781284588475258283917682697194341038828993790964885050752312582222757762673648875927428694021395773775089762327903466065692578609854846632738080152841971115066031658643376386742379476021304167008760483730810813561431023810289266377427460208566461561152142376183156033581864518705048018627612442363174173289409353842631852096169209485822383648388559860867003809292378851905097839141473688121343215677090909366872203291515511650293325830626926904353313910909889717408233022265992715121214924927036758170549776864653378532891627214262394200869545443046855826814785171960917820654979593277376838925736383657184615832075465552939374223619335966037672413844273588772636231632294210294890436822151325587413189095711051183421461302066961165534940221050791663287105565431155025224242387986213439090914340126453597351924077918808760584945957797434547837710229589014893301166005043534869926480813282993373603848054781386314973631782454826302949207127810476934333603375968828404917965351519739589509546017189823391527145903963627047456715692418606055018709779054912906868310874974786869145591412395196056340503240709204806142032024126595930883746691025559518753895433087690298405011943670008782066852924054377734198528175635787465662287719224640177091026811408462211081841238343825539019813076472418422872412792953530614257182697645156044330074171122689664108992757404276699053427026154787562744381576438456431266091174531435670569917806721737483985785232864761664569911461529213088629384654461882959649714387254726869954066497667567495822338915493294511190149593713910289055727399556263460933835569063427069377538347254690188052017211619742539218954998090377659628075957943269383305400949496178884234490168893992323958289027222620774107187355380073226894260029479233436684819346568686138472271406617398004033820354399403033626766849517831688636231640872045253290297510082725663662251444141586132851344934608175362503969601802940845250459276764816314964721837959923394397075220440458454027056702123681402776679119619208898908838446521355711104683720374163557250815230354049406061395839659290835846955477109774242983210631288610632161893078210372149680581312871521743287373673531708480035736713188552632673344331710086876735112557134693098371321177015476194692258828682544880414023094528765502240368277456109370638178741852971931792462083667562794036598752848330741739931000433003288858181780754187205436708884070069200361977935929676955714714321730548340730036818399347134528260253630735204535733812966952078906274160180418573295928277449316279392528364868397755829295038550162994968776962322462842050459737975909293129916504717551928051555276237003204033878153794159581952443892795681435171002010617965259026546296917832336616578080446142564328221743742507710864345828841010513363578894416042647073342535581579428294324969115275857783964804324467171436167622156483873645002925446481065482982050015555255415100985175645277244214542482122257989601294683078405731564605929569406611429485298356144274681732277905678227928798180109049577687336822770684431997665087106175299930663240731337853875787976948058612250309977653300009896812240328876336143624147979244912542518344111493410929742001495048805452172374917728265761434440457951130045564280372222967574791433482479688150563304773882775968504160943235361528879664737281543246696671032167530144251730694658993493607832280496394828469885813352796417494641609055453930660120282587004413089646644821605030015198317476988692002403921484179786727931593991252924695201100416028510624005005636275617265980001530293710371914717024979931976336362926513443931768665449851875163742738494235422404057290067845810672190028621436903906964621315528102603599657631173476120626878074617818894525774296704753147909126106302726002554644251639582096095888737064492138231189644964094031175031741364480440888107585040199799478598977241439756422189238126695691525014831887933270012005021118052026401349328781120898800271195856426457362602491413735920528053166483258835676202846730461772385815143746932755161932839206466955609371480115639134372108416089004050970134134479167838407721614216755679025120122736093830137428649098466035578206258328063212933555273017465947784199721668387021274363809251282168181788011414759798546856931793706428219536814636936627719965899949357289473072346673816276718450416477390582544314689630556101560818386932825640773263759794831854085350339637896748004902098340326950256597261713284737986467625316259079731991016076898611667691375423017999765633129905204021038544161573913678327909865494498497322246197680792765267955335145002241452945848091772169367921433806775162690356366456139367198843114223622536133684104534618391399437830088266246428537367853478160008435343720194184807185872596222098127684931247644336260493498145667414288779414765434314117558041355905706331051976004498946032818436952389194903390541410818061564205553499218372461401738154969478001306347404037248386913698796638960989914978271375795012288504984607707864066174364852581857887997702255307230133546983818714298062048540661981573337526618609143794760807544218951175384580274918207305710692635730525767815875537444090409381362217176513666816833934526190113496493517495299079171923030279575509207570485184125025807470701312072354091116560967485807347771118219540567698144749955558775091058565052070754811792420218155960562415170393552000347553646228212265435133558069981923754704502813232913883865733102714964850699970619165733781987127856364013881249652662937383363824859948820086280192412018860615747577190669945095890227592005824093367942592735976257100073595327906360788408995372404448168880799210082010038456549759659805703445497696909788196342653142425958845936481305749924823931220992621262351607453835942801401642950642253591891184883924655161463211328151772946125063482978463907828430353980854079181346230375682568610533595932804064775196787260037177436723769384190391874097544868249326869513495810754270918284166422661856912614772707863493457011455367024845823074379620938484602054241859196560510630079793736740366336665364515703128667302837305815983064695265485243132111630815300090600245625524020464179724872412847699102267175613330968147153911238618258876813340486169551420995362894272511919126833670421390207806747456922563839326439152218175773277803065623743975638180083510408571243069289851547743181555935348197868555768803458313192962643978266480894352086715442123020031585484045465756955949794160125895809981533181171151618655927505805561572033179744205177298936538364714150265527608956653980064281349008698572184517070441073731268979657048432744066103230923387093770827087258051866956270792390157495739022647775969977175303045108184044395943334764970502265072416284490377597845712288766679744865583910403343666944733056966466613397753904254066939941860126627435958809186414559002038611766237154171113720050791061557133547345916290945916271764887105998871314477491290946955563978705920974025292244766665400511784341346343989457598382509591439915271002363294394506858343258554457101286181101292457374625766157717028995145165988857300279185137668807266183195246444500637382521487129488702310298684615050910856246933814111815505398952194644780847988602534400596487069232084702351044438130666774416486270921576990466877053479197875731005850263873885879699927243683375709266410727548102123849969916250270393024607832196307880443553264190692135670244778849442403047213306340350742901213911663116945954140994325100679974022881108133075126092460858123059448908820173667438105735185800433164244793785863625869266428469932200163991161003327933475343053043833925523955851584357712793968550912502843841787197109361921503869770747484654637368450612924301031123082427507024997263073523067438110209024304386871673595266540422357695023124786411331005673225633829357995187323904872646429874822985762149743534835731074770208275752989512646542417213555824285365627999179914231626333315245711043186435431428464101175065603700287155106213027150949221147455284149087747369863263563859820974288779084436620734521063967771919880161169173098707532223792190498608367587694788808331808005235424199413215486219180021797797282757914800643237707930199389563324509493415771277814549301609171398240741025640056192404930974227322097637307685417540126449459049090651224515238494739334462891586233811986852948793853687797995075309655725285122991589148480193160385133888081798241171894915690035433769570396415537683262218284837659623082699802426450601955533136792552595513589422356549290812396603479603599011364619286472149165943242194930399331251427893628489039514798767730057520423114274231275684878952863921402875996986659954518936508740977549327594424222755359512444096574076607425710752418821503006164522149782953768020692928636575822736189500948088465607053020809370268802317633297335468482591995596011086790929161570638577161568308533823251002004910046146678742057668739842535903723624676191135776464285781626588970953320302553822527196428786889195170611303012450413872052868607091145126959895889885521263917368742966301811373574501691302663966899282347238448378510389460267758550870221427462910363930401782136879327095801498073930861653702308310251355685929207673114530625917168333068401287303989295884100242783935197000766543467053546901089102737551801264327749362299599959138767206764306075234110626499494801404536893989176579935175989114274156702366922018419572656306661110211300796848944074154554869751837791101567124652586447053766675951727561326509589427113711321682035897747894380374703080138984738084746956193554451448834249960452263979271826210724849408084536679891276386781408998786796636008378504630611901885296883311381754604585180489105422003220919956960564165098195062662718486617404841419711198182592256995760604974464322048247377002750557973440231408143662497715133162299850314350816052930905848141649163222095436570337461007612487193349163312943428568059493815539462328880133886625958061872281029350336123265552849200590503777556176722836581983612239098061443558343320626229845308641426247892411635958740290263875534341936462934565022310898249303022231516719847886066129833385275887271772572893239359481016220927557288868499067710972289580052510628276840727361138789324296717398368423004525491641864202902713718552237783695793914774647902015659012033447478989527430010089676083702501127294275976000673857927613236001078024388282930606848517963848566317863374637022456033670219229056847365936481047968444686443353656923647400022723548458777112546842984669706818150940567398718971830278917806408341503110930988166817901755754201405867944378998431828171331515629803904242676151065070469654075062465513783257606244595052340995761600910141129333006007693098987296797131067052775186422478834080840944521772210577049651734107379323047985970757939460160974213506397615974737284751375321941460612068259621173782979129097144497845288337806886783542902015126129574317598643328190086784668774229366001417359139630547088376254971472312395480104265647482828742228524530035171683570679767977355894078345282073291118885346721596596918555702146191759096630853128301030709162390751728687735139704851427691033115537834778813470729033160796234572783740028726373191634234409779860822651688613211122409611348926606791858320569414685760351019744186974908047350164297050836411882748052527813395459362492023010538298494673477351790147977380872778548757096874413407027798067385072424761790245727732449550104838941117391840567091060507634812917978230869325714345423406587473863140416229450979963336149493306016897450154296494503662664520296969323102709530246061310500263085871946406984463625668571946644075682270318130664403506445375705745911394124067987538789904651292192457033122379836596010886292588584575152412813977935947743247519287194735632105592868765154845136993793228168484807981675644437113032257928972450492598607089453325156422150890578502378947635086529003495474274621457322709634213731018242962383900300721252170721474886092778121857290978310354561714289788094917033743507551468979620983532833862701729766684685574712587603544857092111080960108767280647916428999482458638321548272281894637947250249195861947801221356363822035162566420890008343036651804193811862606180946898464240082448297784310057239084821160829911616437992208665820483944807618906676255485630029445327796685051870982159042479963985865031351542575241911355172662525421196397549838177029206841691634728223737682147008551891139308191877799806278859672666066199600911554632965127772865583923229161549932909204105918181112197613524623712805603402594530270091416746646561193048321144245575071879582202980692402594315695631630695258939068967322297513251478464208679098769345487494264887194618916955766725667286820632032017801029927684289315200571298211358656236452350445217862527179362147828595915807601919049039438371781395120513247808440153650727899063740452812588644675830070967005648608019687422209385789753335463371052194865569071381992579310568375188693259297816300875200872719135743944154197112223627343832616762380368113955912980314943731344039128315649526612655827141677083406408198607463035233224435016743108182908620937526583833553969302193328220944000709583035330785897025573799434279168907046526908042589234827925511889783928598812403819737805511479996751205420644044957886294417085581453878321290427653333639562930253042932852867855073808668371618090712274252324955107436483496453116101766427444862942963008923711863145428492751124798488165064167441152700217877213538484610237274165026765421847017079298922501632505865720354537751851328406428674753562604133771242547144034926803586431010708677430460238644443244908686120462274701470176383388525608495710693753359583518225363377143158120631824887953809289376277596555859338196455931844878329901856441789934805545402842032886301245555164517949583610998516739501063536967631428774578435535700061745467470416078350641244581070483168634071874987606044516614893119534825400696930118002943427876042122536941802741040129709544373606695890352051121660304405001124366457166905904635198892359580097488284397345970306283983499581232105512183527669654142955708439663410316330242778254785271702762213309709192158404662193331706939923147824212198996775020908743018924160712474943867891773879461431044969045225652350797310811831964583015918574745606203875040206159014320960902654623568922016933071394025640123847098578137313632038310120396470061936119641118096462058986331918868222921590796996972255624012406399569474513672844856211259684883220197524482310687650489893708994209709481846450953364803851881167263013839860967930395612458952723822879871627684762390321702739262237171480598050877427049172176964615886299990694901431155025845390533780999308816068070639986084283920406397811623895912747035776822756187084642608475184599285712177281785307272954177148936738276205724251328684175558915539279633516379525109014734553689040708270862385413491098138996678933743085584615436182466871819162079470942551882510751987961947234067622276528988392834610911248770951274750162365488121693200953102697220611582362769351327208780843990132366648523211074477955663797911132025830161443220494017265708421354335869171567886949794760665210811588917651297946867371912853133069515234716117033904321538710055573328516459808494413296096418930048131010435055605486481731058251174273571811642229297611847223604101058457902237496147009523299637612830305705613064055472168501521587806260171366961682901115273292914294742524670181567097836855727896531860062164484028127210894114295111392091605913546640912078106315857435584267982020802390458719483124477436836054081585672451640848526717676540280607296827142850344102721820104772496675256502933819906394582257720130168757300594386659926579457602290774162628854015133354938921482349858537332789358138834939047605912228765469666660375725320340681613063339205399226670072826895708214141122319831865263456100505365193763531033234662940392593640505299644079820801774479979956174279220145240266084872307061973074251487447599864725913329806982572110595036711752576403866819234508791393715754777963847428769037090063221374030136270214781545148751223523444185559842348566660994339416066883785319099803228678070608819713096666252647083105580461203941955147639342602212641465230480064004653891762126271916021053618390594465896240904000011206052846542493585903214916460398209355310208235120940655100457269713462284416009927629767922529418926956489117383700861104713167276824501568478953243874658741866839789111309441731999113448306717918699824329946229460632651259510220262058336166779230815881199580429584298987336208850426880144317997391735980960991768384290819187869816633767528463562092973361885020119044790308015433238852901780636969217485117741468391502182858692842450584380547033744468196112080709716134918175970162814793316723501989945894061675871610372005118862212147005268326806014500582394383893497310460466865067736365394595303123978751571162460151862337539969898856380169907794425305679499830269783618576556532721684621137350044204762426153418213562549613231410781477176387751842130312524490893407751444016033162525420429508537102046642883695914950936905619559324102521346420267542241640013004233553641081629299143479879612787022279393673410347928851325303304316779451680505931165205488489128254467469737832058610239641006661579605806172564897998656738679025127386723046754828245636319368945062002194630180150437777655966978386337276735114207401902182171990966844572267826439295720834408844217814548964290246958264155521157617768850454657249303532082421947266938808552746592810876589852081163230399003551607074268079142626219983137030470996685412874433272006083614466919637462228301153589563251985412353676831186518304072546608410068166282716024460625678707599887612730767160182241576167300363998640587122768176973543911108526731954103087163695221082976689472784370657899300661994350623492796966181206337535398661732707569330180367599220756587467163445194358746256380863956366376876138761275257893115069595260867618059708906737447482654311905172046487404718147162584158917728548785922428484884175651460344455778148094794539165173504218774228124549625909067062352173446794358984233805251821376475074436538925871518332770285703341479193082171406755072672162745926863656111707549513654407296547933700232100811483867923525021571054257089292788935632932759199317830257863939443821198244294214295496080522216181434763912884100991688590978171265266937372105509583388665243675606083910704245102955432240315893097776742520827504988689659556048310014779981201097189670587057710829463576175051020705182233806057610739887515414167398581622969482918095303759474846205738127276464551938694236087020832423959280845111215475313452548373862083719246226498332860122291827304126674936246872696537039632380358470710339536084869568557440366051132624977859220764888012959523654852929496666914168057647821415424464319090853028408862402295711350692093775093600366271031382274258260635237092004065327821930535091350572043804922439481039192933882162980211027746540930221195331434187456806453966132860865104960444436354569107112343058628465383420810027013326418259494792898767291644847188713147648217746060527790009584777925688393102386425666758859376186695799900081420004301925255751510504776307118324878266025181554857236817938572337024380954817292489841718705912407420291858066702567106629741133815408416343611117001945748790279487555191756783393164986292243675118780129947850869267312664180824470858702870438360998970602090008034034886209906590896720584708779301665955225500108993614083826883119483615756193129003752351643668775214408880406196261352995605520927146546535440502104177939098102698104483091680425608433282132287973208915447382186438798580935619890019871439592345141630200256594709148314671429012372110101275193010143911723994425887863931893577531912455717571270368952744618586466789184383244132555390258371950651970213675313624906309698724908451876533662958592915558055305409120460744692794258069915613973216722789616955362226366395688145785859748408986891949051947093644054917368760836814760209297589275726928575478833858714819138302521693416388630803506111669426779095468019342489137914304882086751225012415884953338400872580116117178960263607281874607618100785814568616462090608912029624764364011286180531092937314638136648496531711865273063413447671558796098196133492931684263509830012462580367745973777622104365231052649689388797354633177059780439024359927360979016179002405774440767148888801216852901918392542956220427224677723216676366789935737616844588955525287729432893202279631986664562181906695368675713913406664052008474044828640621993951069931254255135498147850390679979659060393946697556038315533319138055943247335141089215612895082045498308332036991382807755170933939557994290711902946168025212232526792632153668626863246375678577279075904113234912606224569147269816894561630800221316501973231094219046025968939750358381919874925747177850093307570186120240042595894029755102373419844503199125106702091889690467602510282327515173792281274990031199818706445889071043849434166963773781376876182241362830446669903409977455807446253083624902436510740764832149767882991494968455360921379783898872280354727776313612674134387449831866825445744416801490285215429550561925711884348046395554082786945345828126426155862034337927897354823008901095720986067405297462928970199542453820934287374760509811408328210706793516915005437285477197653500441641872758599518288468595133730097661985627243504590946612690855180987643003127147399389080652055048704124825461399428370059384833341728044666105837798287419062057702548998000145322788045885051527178492761077627619452045939098624037639651304421961501060366126766520310782387626934051055662761368911531009783655148368296885986078392212765952403680441431129566966686196265680592203196032976788466479870670624561877123462941038527850454471921961258693411602001886013416691349508358972560174847242011726123283649660527439688399105257954855709997127938741934285655364456169548587662720954686849228224837557287373806052170163803342160353810518649524951026126453258039516622630639165791735327879931027927749687156282342021433562891604188175337274627704681892335536136372774405483829614787583275772681723852255416901430140861831936228658332793778389538595109356105163684992119534930511985200371543245101486701330126837666389093211127105094104399951411854737691012799417063779903380663708099311775858502739137903343464348570826984652264042580966713692648745280094760387657752643162395131205529073382815084463750967301040992986117715568888223059733276837470151876610395142827296710938525199189598640329472754924504408390103332649336511642363837860210204910831104292896659109082985031018445140083998548747501080738622403201357633495953560718980351358758725548526452376959470613747072276723469735395724201816344787740281920385231696053906799922931003799747367873201117698331333543564519212100339524865921486593424321113041631400345955523028654532836713273905271512415167490912302356950708370180729291196706978103978143829444959845957323361901877246821667590420990705537352380476629473694106133767099303241759591953257335968077364494746469182497007212140064461938725168046058701847125677811227244470493259842932145753330974620515246359917292181019073710390598616488491578926436352709143940955715993395919059982419300683159844193486832396042123072092211698016733166562073581388285507061943678757936945955185259867930953790372752086696990967662002421330789066151668381703052819635894770211841779418391462711718402720339688194794011030615704272251296289806349392288299611756379325007421208464167992904666291077743111724512760168522983623689190897589935108157844483550743440463998773201922891236470947225371460409185634245346672286355788727903337666348673029395785147576105602734303282617741231270532993608531846456527540184483555470235550530274437537896106327817588102166833634146408659633424815251726377968224052571447178223137419225239942695214687291908829832304612960391146178170128147627654526827907790279353943419395450643715442876299963017318562338218700618498360590600720471635724961275199285032618295621312250539557857722762343051746050525499919603017489333286224870295866171252210014871269642033897326831356413025756861349005728748305578953072309412353690667153305861159243701992828852617461350996563760241165015365570909866868465967197139697597523453306385728174852301717730341549560097244444202419300312785760450589969853897768766483917792521395925760402014618831311378089641117025644710867064311524342291537427849520306148062072161744628298062968903534540418944089478597918199631532265866550123536755777819816287709727914279304325149373582058653783509683308608291229236183300132435341334772545343497769356139338934543925060160789149920630414492723802134325778664750308313267620155809637910877755974152044289936522555113584441462925382875758128405723886857005081409452687958942133367047006754534868386121514327038268416876229855864704819292823976926879948758478750544017074244036653173768079338059899679808895092764284676508797923628782621657323640586767183738499514646908373292858583277899058295814310033246180385478370490005853781489905233524371972777348522848147176659450414965327678620476655354304371663524042584933997716586430102912099173440535986969731103650247835168316377682441160385797838925988535285167803117528533372505570152332564242019160921346455098570322190869519988599252218126092086500434565473753368591653687844874011609319000016050343181541088178100355837787668757894101069885314799939533390143423914551787786359544919019777736824790693902010399920089046097272029125459512198684014686511880884650672825640943882398514347241113483491626530650061951401320795597742110438729441050781760152849415176447815305871734971319479251818378045413189123504093837258309822302354126139057711051211086327421207839807875746995905617664361157785222035594377202178296230143762430072569424799027983860574548692662941313089433206418482947363616408811720171662207266620678754629226403542452009151399433321090847025744982502619300272635377820915733547776908930511294891554030977100436282113021823131752072116384443002898646455160461989730699824471781295642038207517499487233053792592485374367688806204337082573427995818885489642247358362644283636083336105714971838713864099797583667333652284703048778121758150199244304199280703902976304491530009942914856245672299654927647276387308328685610186533489742301306896857256409545891140721330160077867081641818304973922592922145124353003107455085478460610218078368435047958345621355953358291933424921206681381472840453821159547117190669908393719034084384104020870619400291434180632975382544275203076728967584237915369539759519459592762484566591525404592796051033883529384830823874597641163768969580120686061535304630141620011159786658519642981933118095577706828753251643493158492610708045760497884538879736003315205175757909332697303984195999825628996417541080851354793873954415758265020337391491036828513524216400958627991656573056859041070546824131306143649740659646351682318038739511309919655552760313105289478090265637310856922889322953431057889744446198472429033769110391235345318695839826830612078651422135084867061223960900140457617357211466477837198632274421499263511577628714206630976625524100182887272344466096392952406471957360705829228957945158745146975279473955513361247633131720576838059806168894393709914646013857187000384237509318739402324035728605497514308687261817051144293269986663737159160172924902536154868702426014741628757993798193360846037317573881932001390976150751260104173130834157609161333737812049094443328115862557793592016178555435126676228292079524530397619211405009308693003210768565507443705133112912488650558700269913463425722191910908190544430863607780343725671777578284576334521477056761441557241386835624411040968964421868911379502198108208378911232721120540539243436388674080404743131717733173277103309508528117287211339844183567912178974689653484022779747243948000633690038101031653478741596136958291120345876124651856762873108279348602334318624695175060247977296103507747995135000114246324855332387993910889003563435881119949330801465316616396090406098023793363933129914671638079756674743950480772792819884053621980079443629975013662304892010806078675988708593004485732229503737673279328285582006994751667770081888848553725708597953527408290785917935417472664434317498460288211730918925256400921247049040749655368186618683628418107961634239931700315582145520124019412256679869938347580582138611556862594989545301650619860355745735350153422553669831410754126434039814629739194406964228940985814868879551486973056429793901128267625973720748601732646277855046171475162847684963083440453944281720070715652605884555067978372262990714470784885566632144640575203573784655055684642362716822005704563316637485792133188140349743066080049547269128686145018163440932074900728220668422997075400961551528657528730590904581387492788144859264726604054939607141871695624957857742423045197571663267583707730300317310406743254204562527444568796177681904019423402120954471577497931989612591222581564839398752832614368132951395254448776580943278344296870815651077981379706178423176578236387671839373580798110813744350786368824881968239473928049437614871611785708501120640609679765998599525151410846776195211427266631294445775484848539010339108872920636128244366178646610114619164415428544419380731059027627472605534748428078255260336699260465737705100233162471065665294321336699821073391959780591570110647926959788139810851348857012601859426636923572587386551996140798650647208021368494758923501359052761215208536456112778306920722530151081886429470704733777920884123851338057807862938340312893907813524806203313906967492924063152318328947746797957346064662578285636829559044649311238097123708722281457380619009733483459430428988540462707821938626083609267449875887132795670999966023390125865266084245262397312877401602642671376027430566047767083076052147938750517611187410851769756866171314885551937927143939459883555972837151933023261637321768205680713862551694203574319033601778749117896698230769381287984422015909105270397971779013108685101751128550108678354868297480489702704943285029387338245683942504194633916756421015841505963680071515926985887886654821886309083761064261441961292409578348093257365440907761369154518713548615120748975980037275420903524651151456193120251058471986196081469657385306019649708705477009601121347576887360016288643349117714845270271677538851266678295407835519113833294022251017388360081284516869214405381506684388505473643943510148954025318983025363454536575078246188932565529703996564675653381279014784462322670080614723090221164816573942822213392993140179674712814880125582184902478703085262229391104157633952575775385121936382965909563778237651189894870903065534964292284244480266368551795026468345906711097367862749392134935033214444763492219176053754198731613122554273997888913937385627923878625494016613095582669175791615158795492516992602840453942176789536978741551174676284030499386102830163498275068938304203594771131481679509088950006198621258931748892155279022653955131174552620212161570871161919220386082762822933218276802660215914912636970401412901938688133541847105598232446168480852032806904029218543923973919240166309551829361644029649329882238860388265730620838969053822295066980365542911887441318979517212403146907631063260431542823614456616871891912083409127429308096516002247222241820361208559953987991749800567846587906306093326270520501367898339548580427639322620458340331615833306934848810808767823148354561757746381417562645637030085653370697503198766395543782505730507192089956983336055479707526806388790264783078062800348814309054109124517133549285866524149404093525536098659578448108683549720877800513803258924022907963912054064490428183016840195883620013624075749607594760493719886586167288643340558980580393279916412042838320240838961762358904685369860119736253452881127760785071658728385709269423126321526491384276229947923612359454388187488027605984658890594195821993961420194502311507524357151660245603561658029649811147479493059226794697214743647674571161174236184938447382573380274158976241809567896251919809998945478728966741599606728209235827534303242469647550435820436587234377488727300051093576071348325445508981692168862725205194750040645721856446115461579508797784237631602267406421781169913891811621017881743758555871019377091211044237550498648869069437685848449523758746936207156774173364746928359498180188501962690566403324329349012350254125175895165492665332036920457671349447837710490595209003204917529370452538571648124621966111197169836734588277234055375868641873498135923113997983830005660070551608356553405430597082476965051401996849578156994402719267291559774871957357513881983395530415378862100980946853718875856851994023738064549529762698378844569754108808242500402693187156266596691883112537482936621283406339237204386558681335531161581760662012444451256356756950234859697765820794610359432980374210424042041510423299338463583549822526400774544045819944686707694194470816850723652543009409036702800386902305931321691017778339212260332747163840009120511736477479912742006205818761674928884767336797747984015483006211458933681072562738583796183601046440345991936498981317423549182889711822263272418218148364328004024631033634479699306446021732095863493397882147849951306122276781165208051599188489431286126189201145483881691699007194852557808977418268708049408947257672868947316980494561827187890766982810387043872154647472087398588219271618290109614565829499964142452935177264364945335022042227035335720356587723148367542844261634336269369067782469841817601943238386013989441732028708126568092691472384847883919456435675125455966638369146805428369790878435876886976568724833973654420432881299734808777148659765166106017875576219210269141909070316604071623495917968181241589890426636011957245733330856063144198205782104506276789297392918960875756226093147833045834642480362125503736673087163105186711210421281038361874100062608373802498316854188181437221007002542512404955397330733741392312887250842373550452923670711654087036731187530516127900373572080200456536517869027651260929109300465599057749064071028318201035739403240624371511277083127214969827977165734238767201960380871042628969186569079258571335924687323050895337932444608920397837107432326043678417320586655932672023298774478192969138274913215320615117510483657224179949148341276471539974691846926092959241717554650436791563116188301813425720788866376434625575203495501398827135493873277759240674971908256234225412395933694833185963547510837330166417273537489996905641609317165065692230655051735820373315613752765448069828447111957072294880742323070788540445515071385848600842463591310982034575125921853333291329723008865773505533015890551396307714352156676981122738671509188587344894306538262394694597465869420099761037666875993939187235712857537907359940801156760225242611943124043146811148005442622271956465796512632820291478564350536376722669182726561280014752453981690539056961240605186083857122070456232409317919043920653043858573934163930907453190644198155119620298086776936323782574562710217901956155559959330155578933440830850547094811634137957630067980302933213007960662511132136900611720159405601445307894659597694353424594694116484534825014401485610873109180304436512009629528081194684495998301190642436384479119176009206233906789953203386037375332898295330556279820442367775104291242326655840550467288387994718594339811215976343794421926421322635799090631901169841235581549015455896203605082405911756449216658495142121477576886600054676731108209945766560985587222097059307101057746614867730840199523686781468789766807755190092288206850260648584277599465558201890514846883484361159785423417724396464201742403648216034432350832107011275975472194828058438023638672856394195660006434195218982164294601127910333731725058337335247772573491857017790393448750262666487301665882982437720186845364548908638507014179324770818301661740905938977329343092251683586040901077471276868442482633283233038165380349694831654608842203983959135656335818272169954484436847779616884995108346087047173675972673002543641834535435314851690333770615263763195263848523816471792077646433993627507628643650225625998633454748442792536022034251815733577436836734990401781167057157958427905885130336494660264849918596305512631116583653942454156109595523128527487609869177210199424174479387267708010171158203229183228360849913258018547207431327130686150487434896802395358673182833429819807542972115766545588868437632761764147499200121040585622053881416522040610756105814661839337393928492569918394002682119808816468420141017562327225525685046021373552630567376777983969587773339948193193190063510329891769650531811230785452217104425665624319421422153639131316803320571215353040819255097725337834021531253346783773657016748600040803316540578340353076272899191477411439014952191183343680312636458725196100621742267881754004758285764047902564667516766114832950725381805158750447766367347781834239581458107026021118694320854837660570221355093681558470300761976556157177840275706566658123386292543581826727255079965566937979853867525045989576664078585727768804852364380240417156389901618454951060133013531120649555036302473073167827285587497988766094318701051817135476346662537304801135275058080686040617122926477437096453640489888000217133449123918158310817354672165123709891597599252087960630821835648588148069666629927447788991874636480422082157198526536817388714762451504042046432468847957462650788890062948697429272688864480827736765636654022227059248149212342023543891365641507119882447126492722123334257431573291853267302809064263533484318492023520546320437843347816064081751769250264315517156557767203908894018400469251179358214355920969840472931263834647820233186002714783703614824224213942095960455692534952737740713064366475384731073981150302384915242114596735715716920218513904976717980527847450657574229251173732841655559346616199143197101439862046038948988847245365062932460743680299172621169720961146215665380718552177288689153768809747084327001932378097582164448095884067783343580498007349127568938459445479279856038499413362068146172855919923535599693017492996490544818576752140069279045312662073223590880413074496713860267796721688089364524391840567367987293911952634109827195183159621525081433438798603679929158864893730747884416224160156929842252662051940990050722757367538542061870987989156845683562220923559302041018018629188265734012457765867424614054727944852388198631830061810667008954665147969575811115540049157918452997706061554840698893255974584813924859326762614552187344252045651919771162871131572914348366080878527140032011707114131413137894151917219220787987505041936568476149252662574805421996160497499363743652430733911833207059607863792705093547933720083609641374108393368347934460264346271988224406064930831871331189603263955048768381145185931266230282052852822485640466834476166783693177009767103590093843384651376030854511585013843723348491380851641560273468935790731881647813286505117375212892183743973583532716836687656698069169420447993193964243109922694667845616910803841251592737537325855592773029107124808741492983690289899498866575121550878221601437522092520213891430453739622135822511461476625693014674848584989724240555040829022550195498160904386742539630263016868751429564216196236043833723474223805278261158262497158489219035508059546841497386507096420170119210141538987483966444752596572669360147679560693878794808427408041142741601295045841319090828111267762314177198362040297880297930624159332738284716836402059706969473799459089241704025650834806586058986853055175362344694299158040824764111253194121996265574453592639388416255044385974740240566437878201265934427264335513303962469459639493327978252337945256747452471136904232701603536811717930358977088371600704595683158157983488850165811744063838545312769432942227723902232215034620346254855121036815587731784908130310919887861149382394675144497215460404654737022073226852096120964089594224009104991415812950466969158801358623771658965129609564288747858336319084316156396484925660746801108866717305303769670768860699512698050392217468712173565919804168087356475153254629415511820095044209700513552522326771627105921704195514613981878787011918823414052583913048790073066697980810341992837376074483260167580875859439999679326835531599785129806658157909610033619220008740688933266383137392813932134936806764062683287189076966726431786376644114801987657758004245771071140658866733281670051473205999850463036989427928845001638346261360265955459033256884881228292070443674340568191007363876648914330954761509603843435580470976745894646410969462973310795884567816531335280490292079768650861465930106213695652224960964581106005429843691023705581164396244370387101919185530065971264405899470708214043020161386997782871256087483637499000023995227773748457507544151109979014689742473025143073180449054496484472829730973443579012687099036289952207531079343437192968000611222378611780488535171905981969391893611339950234472043458110029431083795964795552906053048171801211555782718408800841637834287278318527118102388268666483449810899120559211420884084369015655167245735113952434077872182998543872348789921716572420718306948361578940851205524283270041773494729250566840147057087973061310365144696786498521004752232162760399095441530394621063919942797157562457806179969993949408212007762192986348014444284979135407641868205402767634120978697405801378276793199567493596918294869100765072225758220458464920453345858149256533891161724444110595185487610139900593201155713921042485776341964252420883083663164614026085871316458469848860012587568890224442991927761781213329607733363683296029511334564944824304831317248461389776981748996910729599829865318790671309822374403406451068546462913303170463519911722733855667330624517953583180805094835352951952853897848724648797748110207370731352866194968599145743875387853484685946273493455139520345762514396671455607361370696787461897262878941579016588004834838567372951669949602595160398598991953480707510342633404313737904136855338254580246833357031105711345478917232892487114543805296812975839919690673245449318248892515945985705303831540332530276004609301844402896758286615795099654935617245204570597602690862488897987494019656075198938409766751413497263414259725906127729926163779474096356276431805387936679148261754140502346084282822280965485731724263383301154528509890624672309493375830433441752674706747098002262947798364155612257589521418170939619338434853195534812906065007758252125752023690950344865913607221539109362553809639566678802404949682312478001871431489103756573392399012336151369593497673090142800666700760558106820763650137806098021152490736959499962647700677102648122511003588900576353496646993638291425035744688551346154501012321959859768355705957030809757002764581663840879951278260699669550171118169033963200122773355888690717905201008686537855731767966072019962775920315004396580039936057383556985561967759133793200704654084277318291874460800689663977649104275753149003757689243554961769398364300155781191186733433353742600248649187521479093068079392844221842358775587094289063351926820219467429629736086678656037279793212170468453616134249667499353629532453025121835929118792050274462978520494370932547352762727040786817148319732620841379916827283445364587720154639644917258109499891638080108696969351097890165599777368497273992920629867979751856300317603581063967195258081438121484189356409820830375979212369016904252995119934142726804255538027154311159949252227063296206745185162052775456373841093380371614529235466548774795574541930536714748617880886470507840458574608575797878191938153501559852242947917660862205811177011851152617522602809076516393829268920101396279318441933280504626423594267937674808819369052419514212247722350164788245437762349038331736298727292144662690709583079085865796747010681486248955210309430505465230514696271949040933029681246555345318455103676078554805931928062921875141668883701132628081809383301855692687895558277950242154065120504290395997838825209881099210650513778911887455228435239177287591271546721465547382684941401164621780245791223973230580556547868393288700400900468027099250507786834051724765185872259275240176458167417471175352970724315131742329375936035280317099420251759745563948585723660311356430400819840538106169649432315978970611144739683357998353061886404255765663583197409452824181181760092109264665232759740460187105781568639861207149220075392849621003733700809018562255822265042722736390896919919915956990029558469268790354841212442198828438446507070395618004467755174548523472491923305918599500405548069746764164629030711971267028279744435421341627000425152098554678809994174181022130526386281613765463851679791149801733237242492276113601025175325720365821672044136931685791114709633199342318876586208872934881770182935452133497507523619317239635498313142113478208124888508494745482007000333117378968147637164934083159362207426193290913687092673821011344813350745390522681659529100190720391517244172574049722745845293628975087196944546214662249690631156269011678679000672123097423883171957151955075716723372622992190500259670291151248702889482353479326960116650448797384556211291393498373334309609806302776591317172604098176846749456583140758130905149093998150519384720434104423402400697530610268696072869546942491258246362302407010152758304671096819702585024538318646186828664235261880354860243261374071062306492439898732060133440496159423684358128804365466533937685579147965418987716624047178077377849440347519938412783639936396443401882236775169490758838950618814623096796992632763551952519788793123351804391205595372595009447465222421688332653267317425627847771388515574755919121477364428102699489844943435786186284814505295861671478167915236393545829968737529845453446533479295639104914862923345040574859368274039664787611703443514302821297537887259678148300092794928309846134981045584535061877698110100278697728629949668087936071138950226482559877914545983301038071548285811592552738973877850365977955567907280942085226180864598326284361336573694641900073560216072881242186846525293543957134180574288181116113596181062462369612858827022600668925089402495975052589781638108420211932776735155012415152548021657136477483317553499463373765958887134060383102196363143477203635996976890491808046173482557825728235952932735615399396311020761346256077106530811178090759458673151189561150938454938742744017542649873030003230480690301506235432497616375484257335945754667459860907029451647737355145465597429314396131805660184396997893959886219207929461890328774556220038620136319858096591814860035466650111335673777156779713792628395100790123873112882130377634466413310242523956160969884863203240988500656399081989324847199041949210686311341874729961635231721813155097327415804307182158644904132266451965066859194430469974074005323517557912727992593800711045474811392782330513719172978127219140938841264492078006205148950296055811220916042082190837002071968294706723446797316559224740097734857372035550694827856491134579652847217453735905775333798034925994525994269713269815469219293914701119607114290611806158320336556332770597929345402329612088432675842058027758805056721279379028369527084656643474370887404609596501383272170753328805374148946084943995784913545988422412980351979695443269953731784981008191949602527508770638223525747293376809322452620984253623264395055273003616062206533682983467558790911470699141299034330803878108057479160835324878749226975379209367782894793007508192563090937821332224289627468591166367600765031925464099012699288184448338207325288382359849627617848297919603955179427000383357042923717000828517733149199312201556174059206343513233811460650447437552674439877129745574808272457187337713415643800105021573640107561567948879797564109358782131827990636622964951406829541368655311158475840329137761893110909986181411765557560060485598088514278002724178546776452965466048797506687363390200249063901658131327813234072105889114563669737104097548745407864248591351820818550706253597524140355529930119051125645882450939839844185413127782758538092336278042905478296160685021574862395920040326847810346394181739072143769618318013732868702240970645364330060132519501750338897588435223023502124694374714714098241006368147580144172987968948135910757353082891603585768013432312016497224056383915748938351967334797051740188699607253273293167645737017177773434445818909225286900670306969565148827344456005734224998259947621209616125733828811946046039647488016469715643713804903457998419193858533169270180559952798005667361059557649088343606998143547851581584746253731003049439247958102986918359255593783963238868465669661669867572162692975511382677308434109805677858367175892068624151917156722162964927365978870628117562034016276153213266059607903908611790353794566811508947858128941781675738602522781441676112171355402964666906423262143772546398845644957899246381476796653170792861560264168583573120962155335959900243022033427895745336832466635093900897234467141721992929778394490098832686414764824922350657982604040902306356573873837565983114964897685269027656947199286809019992981194047102526250601140978126779321321141868268159322385642375184064383624864476841314031613107940659790412672264804599657934166542261559434030448168216841322819145270932293620076539124958684024433285446794788445072230052015049597258068231159426486634770340482436136921518559429874413493682859636601548246031638841323758233662396157041136714406648657320597832587599528394887901644567190352626135019373868783956127850045715313275489939152575700974227277791892772261602186344684470540642116245872928381229250508420925411058961550230055706935594428599051656739791572683963396679837436863650395546849915336101347895950085302929302434928604694744946720088458285893328043359042135969431887963875947394254564712088179058481737395834233483214326521323101888479727190719051644777710633138581590232125679355228240907801375698188523845247714375800375339406194190392977638604379209865664141257551917181794897943441833556437184404759612853964440209055450093127659915553904411737227786583039583152368595098600769170178577649916928283695798055355256133817163009923262824200298001206715718425230028634154423831473680975100883674198748947639494463009143823891344498060414697142354934906502728007280993037148638810491463183138343224557241331767862939516713024714866212636763298358259307398184745166604193194126883715382761378482616799948658267678456115301538869673898552979238203307297610089930621251629277239889671301470558783055395697698886198433295357928474267461648613141304754358864117671737054863704281327322662469904196031890236964828558350774929479413454300494330725537468361525699043080043587131938303523902154552676853483924653598751787552260983505578463838560168263189343448495504451998800561543510778240345102429857902163439014144473887432465064871476487873341410326147362490239479153907855581977293397040338908595079536700471670914107128494798527779399171871474802110956086182984813762636948009928188138655591115529223459390347310593148295369626272891059389273973345781262690568860499893441005673153043713007787575142641192121235708960220478628608721090949148993735046562626869069190717631373797905956969487776797032805871725893529724110241825062234533516137889327082004697498505192556290272086945307993154737583218695377487202017061089963682424750456927393220587595953662272298662839686280309024746688275772398463640145700938512583853286584117827515770321261132532622353713497551136058009024324770714734521590234353076933356052810074785084261523907604347404824567905851484719366983960776758457136730882563132772519251971648306759535126664116461260274344206430070683520143549236321235199543415568836829951991620923146281525819524982665313371734198046492779246105264855310570130381185373615112560077925595810351974084690551034028625543264096093608056903251536328095169660599700335218620499127739406000497808320956456718141304642101842785278754783777675201756776170576803708549473763270059757251357176917956581648841086501500012770938608566801771804765341229629523635465451828082726340178548535004838255897197448158628606168394696058608163527727581881155923996363323755267856048096714170980079175014253368470260635940532982310844516160982930992067729566056147276765987997749430870698846362638549048137449727153840793400825972392735268494229010080455726139220999146415500466182060612381798697698041703183161178519559842477786393285839053668928185078891039661838302108843616464647526201194323162562465731773318739181177225843276683747558310483758331384600576837014323703362418778739437846895582581700520811034407543938173092173543208174658293510923684687034973504074557685547700893607832138889823809261255426418429631974476327227377770647505078307842460953517801190495072129574420800927671731192671942159560632905112384141118535558004832461168547347236798378320426293316697312842520711799295397128821927668775635758040268079834159525902223879840528594922790189804963900105870108659577997187118925925805696221001047330708050262233095282871366714489983294616475263875235566188427072585093350656386136371072848797020568603925645189851549540751025519960789837931388197901225101760068983247697026704109418206430902273936852405950244761670083545953644190281400600662968693179511072312976624591726586076926788800880806806773903096455458389889881110592935283203575893283381164952875450535695401829673678537356109259414762506738225120519537089675736127391023023009059579120751852302409017840400054846390526750454820003879011242489823197641984133146429722458965156998702328266523441172138157200858698068931383751449447514751523030141340801476091386884286825603889599742321222779726511950947464565959183353464246836178707042808003749000527623342656840307819355951771885600635391458135967377936527153916681342903580202232415918328442419196126494280454033369628424318483940586629104006080276294759819017323992725656798920762225978603395908983093178644893221222594208279052882544316627285363594693324665535028859166187176142042331502950430908340593087612736735807172213814958752752004470620495928218226430804522244459564555940999768028397814961946519988817161365339011065344189950584761075329892442434407849612546490200058929033258606605664494700454774986451399203650251332780669146912255813348101068422867754680961745540815121648696584197491848533842499719629002017418320092590343238108790582680788628914871476131623512092868126750969771220634820136510159885235657701392097164159287960623531464917186040907007772981355209030506101272485812751601783171845518902438666446351123456619692030648226514424385309178626446792101128845311291612343806880821073895633612014514156482062407027539291713545536746627300724915726277238148355558676892525387339698142223351808641145068821525041750077590603127673782250922131060967037871069246206089846105066787410983180024984103840368259773278150548504237665181481039754703828322538161036771420373025946439893266166366642084943298941162714520281081841679354186467230915492819070060739618160088245579119996881743475270777810260286384451156762640337786066105187075205099880612500798531721790313929736003977899693399704022218830670464168169793984964036246263672073581288020810455971864158985019874486962328113368728522727030091455301716271639448011858242308199301086977106510351247670228870252412481560445652163774556302940598177271265206728387596674081651375710633783922799540877141873439745867873659447136061859703461731370886082248932836561798901663115681975174840201022826833585998674266470720140341501252113625037398903878356961248008652980105556520362085996803621102664979530342708421768794412741726142472036215452801940658401193958403337397839419379536915409739186161957146904576407674255568456524869865932827099482729083710146769641913526799677469357732766717324737558229519817155276792283450944218654582327521890739609060332892165523459033660250073540084831875690125012770789934975874724135680060094397008504564966774667709976265056736762985182772710975854725244380033247686378380216009238260771799032335333643000782618496191984602227195785363229375178512220043452123710135212457941065679754056496394725745181875497116696138666845676485051628378926854116502772103939186471855985062757111330444933322634773571266681107150388720058245123949945840274486469888098544182328564698461312588465246207774885346072170261091719405843248935446469102068874713745763805794916996075821438120719152520586364649802933563015973685524700367318494525485711469258232793775022994239785737754508872132281948063036168307726387607864168495691560885441537553373070980631679177049295484248420794890654994731797738517124283183230811530936310014892387577585312437368577517211427271577196388936331402287042396657956674578975778844713937440652579543469302858038242110826052793452644103159836191728741775342309770834747798646555520419372215125369994673265716347080083180391326644713157506630251096233292751000667104974012685843613524686846735613505287098988643904541608093499232284083730830592668496074155714407797514046934421097283073760650370939800063956234384793667794842464761796950523972296803205822186779523616693148166256064962763856917743169430836538794602193474223805863673559624751456498013954135456451195802807946484687935173266205551503431568331359851207381273456105018915667305089590543320292677023593624743978416861037208539925570190317240449516453252419251163958084570739707785070809605658718372802061002943331214522093277014118016205783621058057836021449981375213636211923111535109679482972510454050192826289071443298772900265661158744293356449358260871150062648823079070450009110750968335190738661625789314134050740211993695375965584215992584435100196622449747631245265079067077647812024814675065113264216727245660384145001526206247908564953267148533625980304038234960476265144039206385350947957299359818322512265649385477269729571257853721697266128906917928557745075905216586254713872255679695715872736208659267387906014332915594244070079422631669626191101812274074929917278006347877957526611730041386620319054959024397267817343963820985479021748507599098774495139350419516990095302921217149270320251395289746779970316516862755001893704201076533432286487520937633208730289145607638350384854920591307713697770848760274451476775131729255638751517722069346839671729317078876078375213708001215853779262500645396384485066991250880173703233452106756293061517229327195756996277027046025363642089910881218177965250767886629273320365373531697544664457125283497393147925154351603346938914023434873668893098303323447352183945095314799827564333564359417703419885969047785764334019647971606141038547200775272727908284999296187234107788074776072602348483310371915436977006560900356713163671224764473147800023801405879911652975793767631432908677636402585839879289939336863140838285080590324612715991960176968188500241152494318706636136684009893988995436377456756516836438428936342367019782171479570107518236548182234283119870850120760722863857124113835412816557210704822349884573200283238091547111517730525269480105681237693706115507930787501514145302505989568091161123882945001875522289070141084051847250851256272704640215181136618082851481920655725691114250103660317817919078025770743035823057650109291630325728410322836082550171512637511296135467773129299043714698357900785304609292165715455576423264680139498015967663973114324891234454255053266901442457668241995590259212610692149320480067815086267403417119337819507222405118588291117992062182123392623688517437762383097455983274625845317650216133192569222041088235150478715657238674472989849023872854405486138137783148091883755398248477041676132655621769374065512411808371645884365276150848875105503086531409297605652623011120691804496963163645148277375613253116266096575115107415998937196956840769234561967845187537736725199173346550365270014522789860505558188581388538580705726210874049047570333346285128817669232188981326607222539261626385866955339470255240456990984192257598411900785804787104986866520557828412763838484234487759379474888980886497353803358892198237513388699910741086402072095755397255231449789920677569987581789445848710667839760400675759859437110468445280726759917021966905895391482343889470585290590220718311390543164126127846915209005847538528728672221653833188096322015031297457594173400930341210687131093027419069076965245640337825447562219723345554008253211157446701614236814835258624854511145909732220294416017422453807558824648756397031977698512183817310198995239239670348924371056781989568608976427103865858887910431053900790199818550914553845706928394682965156200344563249762107371458998059188361132449617108210471908526810850053084329764523376754886322043309873921338978161038410307625266898863690833150334334008959830995163353905696384814080708482332385825061582057349531562552594299897589971596312735707822802609322199640573240990229777923701085935802636452496633377435925369500357797765630445168296640935085518950875383113135752769178411978638413117706787878415677973911335925180037126155160708184173219788940521955848089808608672283762620485206888397122272645072779169725325887045810268854186183109682654510469691309362972577960140111773410151363184274458092307091074480862513548023719063622236056364331500328018792937404838378137412624231621505230595631456079694546947977725937961201866787105718764040899774862265451824066091929375661563761831825604378109868577864479405990775337842023171067832267986571253217093816462721406113328755331501790964943004457447566955760171369926834455802565763010585010732056362898274165989582411391270618605858123540409143488132730373105786614277605900321550856935863557566628188711066617164899517037251479191611915455336946881998722191842157514512293262550812665548146582597010137763886333371672988136043043489089317601035642724792169305657608160443387656601675629018629805840674561015482829550181135981974084767690634905633646621814263038061815798074390757169621119528731949479593310675724873526653253406053738859863684526553829628099346309929670279637012242817080624354626397621003911320772337746542257202056235525417617504752401887602046498932167455057465164862072357363584047375996882262760719402635392571203132033677242301974312709444983173918955636951383009761212309464517202026420740931740134740889850027371603433148548903012471869334896202535406973905360159558113159391535353164771892894902930353873642828894342235596434658289445619557224316408291755322170643079218413621235311674697124475385518517074335847744234727539993340973345821956890580633210839341064355265740627791531678247296548197517886061418016003929620667553375942706380912451495466370345256875690341226262469130257126388541680397772180207033339251883420949153337907159914059949369180446982645064155254772437722541128178259368627867022325793150576080305135439541960038955062182588360512273759949635357485981351886392849397099931249677983333015335875005953806024036931398260627772600157510290071543686771588943049488319417275869786414705191102598542247336766953359032668026760705243490866306881381402405501365713092141324183772842119338778089932047532676873944886662277701895938441540429500961677378815057728286829862830574001448179685810894680471891000155559519134532083463360225834190774789001522135180927157079461945541894697997787384427846601015932176391844014060245812105008920618865444407574157486991725142072963049176669684820937963590122447585437005474008033913924299118759893196389509213055034297161288835827782774312868484931745334484945448308760854768030082945478998331227361496028054408287911955097768592833453688730895335564794648001304844204784450280470012267429080141625254162712987872620843248224446820287981338952246040925049921991330068407904473829157660510690808278653095557217325727475243402238283618418100056293016979966042241712620182352470322297784136446972063746796167846913296121768613057279463706635805118344217176224825745492450720601568986958039948289094895521674116355451083991287891931044666295362745170726955286393925975794463709078482571797483892968913161139698026936161420417528781585384681806425469491436011726672108480180965306129014089620180144732436391044822141799428284859225400689430883261240878998979763252257350390132370082464000873426440765030912225148691662077679441755998803272583468321381619942580267471042175446009129626592214387094680538829101848403640274105371175188152822119825949840367247720945209476937004817380395895587914561465800486912725230195408999181719309854685112439243134606065557418701707873492436124458843359337359022112384143672059927295828593119868787653079390127757424101331580809278110474239518930519963411197317015457689827578076489361897044561091483940862581996442621366128001808246961261760511001865952355639135998268362814742977119624104143434307852299001587507639178652338937278884133075046356660411267172612130940575381586692327915191648329696025239765467608634414308419585400516850764363206487543641263847719163484122096394081672573046443934203817112192929831923642791429783693438814547713812199084258475911823569992769885824880903545167252394555625184580889961838473858049949832545127675412846976365185819105703799334917877848185060376140474299178808380317803752760639622030153682647972527286915169507463810041586965490994691670965564034739960227784355426289836146275859954564324782759919982557551763740354519268092339725077437811313415583553709718478724308017301794762847827150783849528104588141106794642814429832509979618315057422387598829983501719344994630265440731542676726836170948805667732140578267218714819305432988977036389103403287884659632280024144077716183725467921530441890452606151674161247046233302762637342020525537557137154312095633872392773648697248084005231315662853248474108209915005668360581369345589438758008199801471259380875873017796563542554569590979883188321125693765201968170180909994215382041689207559265577599540395267428366766586970118604784682454790953402494898473392611090736692029583103672202484560637357390679918343350679276380960492574333737971454127540471535467961039898228214085527278911990926107153421560321591627839845077802967121986224611838881639446976930037860783101507468156857491921164153387713701996974453189416703724954095569494550314493806519328097232678196389373521890345633262235818842586312432863095878383743384370066756095933277664333194114008432944896209553136211849717888321512254184447478342571958132939938614674797103121690026296535509250606411846905575137349876048635042793127068949230331450036782015497075573854158938163717572881617202711503906941502240318136712627022019970900644962489338154770724545050446232642828245813635902740143003965009015253280560457396660932207332197053852946158553231353257544060997317823468972858386960718101497421152342831938889396986564744117331604820523386388857857888684406469623360827563763064783856339471920860280443101345739792651634481110643027957924828910989898073734339397452373746298848787420867545006772087959951592807037864832772421846885105046860347628604411052784631416307754066842148683826764759919514506403288369835147928088517037188924833624291541182486291832502968811655455109917643765377196466423494277429334783958471760084492449031112873892890894141799656228021698786507807691661580144222977445740593612800176804230309198754391146116992924077930066212286283790223095630105298594704662576749053752920764291062998705248188339602733845518535776065341328101154650923150661807706124765565242379861128214223551783316995019938644527429779826466200480323331519828357093135889547536739407812732135786496224639863075281786601106673758238975358210436030314770142268944956233932850367396373654462415109856642178293011023047293418528664140195912897175639195394886387838525961480766656270363097511181432292202694509082205631301660642474457761732998506228227145350220712422643870639807140997987978696296498276075543752701674020936879035181840719257870047474800882620297642819198146080447398656032592598879330578140065432217724375155659060199865991556288120980870704949823623342087165183787299222357449311438848064898106771536439154538914943448959850731615288401217731293816154155226509837220081829463721154303621797059545696445979192013997562514905322411467207660447384314741852619603107689200599312863685125412696399489970634104569967574897485560620231966208153739011986476846058016173586162587135397630060201376337990964980655837491455360111625148787718514919080828203710486812114035902910635924214829451492144951187391763967379381923184851931910006353107448178160267532031649979806689521046807611158999465429375972126367134052051490815078609441330129920275552365272760215613388893599490809781657143173022854574552127392493759514085418399024426102807830039537130628578439512428649997107655964043983935275320374334685516871340991652301854531077951562472292350461034384372215076434282019238494886668356317319902794238685951743431261154600726912077328001823344160059863742027624376566878519671291347191945306447518342607521396494792203114271837441220505102744435499576853269362066227126715633431711028473020150867014460653747859275312009630979213297903156660588850178037260101778022755252035650960368763685913617670096703675153127085232902673266957497476548941847380386700387556216053454306506007996991441394450609300170628268520755640955637444034901232046333061227517318573315816610368104020476066947502887179256870940365499042224173860882641071507322531679702722055575644196032456502025909153097678505452619544135212047673895261657913195102956873748962565949585948058029339001697136340251475728913126886122619878930880295294173297167941069984013444859185402895019202634280992498803247742487894277407132377745427462090804487577822692056773215918171370461610724548511307866255942450553152997579230882119118137291823007015007750937241413239157203843920714467889142299843773514543765469574805265383685352100123510944377451684611616769438653675575329023417241767130433139933498190611652467033428236264607604488861690246299178333693689520627296484613698046841849931715365771813372811093084011359829921455153652161935467423781551245276772585818410162784148638854812607194455553344350730089460244000949804315205375691803759050489431807111965513234778036768475254277138393790946390464216058007171574988116549774864108922232195930487951672434418464055474992714681695485106816637966760656877847359205566844045095569414604413043997880573055937666686737620781150421515782972925488540319718839413901921862721757326069886908197132194426240760249384399017585798291343785403559005020605540714996865045776012704994941493372017910945300440901572245082741856677791191131618957038779438711194380676538620804496260895047851314670873551037636087547735189459431106175453212413362440935787868858195789635640998462437228681350108775024164160822988082100376240701438520681518955869879194059479803315068658545628890241472236906449706429433197074041902537602325800005549545271071791820343639937364312709771187451016132983309466408781621261068546930383939520996620279950403648127985087266560340651879207193866143230989307262412781422385684618353738354906178621893085297994405055044167519181377626474230325750681157457703320740743625151225462133615757297856132838459966429683290678205064691289415979714259455497594314470836688420474027492832061128755727831741576433769252206590318415024557929748441260354855262288873460624633493179568455067366446670398337965060236726672282361143559515947497329741370267714312811049035898646586811659404476016055445073101010994915453289040497663421007475872377692103740208652840198147637029375923254584999550239564343399948594116014309539878128124914327116240810723851216500612658221333168724455649686278536176532495281424683806457562654456382590958858423140943283516283339563441063870481233191087872896424906246359311763097990569089333597256787519772870629524419189686965743448812482308692761128476723272819286890880215639690242639274731475464147540259904363999089370667187249830945630957206803601139217640750372812980813194421628250236633316761319842646486193167443321302399622159125761798360364675460221292584433569646337696898419499323473534586614229783003083655957315703003634560508508080865412997287480114771994793668607961192343257475768520920598389676273484365937640273153809378509800384168582232277615622048349399463212944574386718351716793909071716467387840140840167732693731720552978761450931569239818224058207501985110537440937168815167967864844880600837878039251533184121629680115570218071585825819592775783046600493159596911308016633065061194538874454796336167681524890337826568742850774970998864268582739414983282546729246721842621287418642936741822517540596705322696872192797922003986509169343102144324850139868835376830049948098770826364051124100771599755306488449579270647238190152154956161684826291922273838059750503844267271088143449156738001772208638085902043066470697637821346762134135238967626637872188734097698611078719333527753280395389207250163408495250898441128929615034686957017603245887667308043932328663529424152790714980655976200426158880996409518609304750488012913961530411848266507211969243055429454371905933165039447923195988969088534244567206051066761221710453707287980268233411686087570839064558308455365744985918182623882370493160446222975713320264516106128676652937739952761688184282517932060546245441002534383283878351080045471904325565010040020435945303487073090250038237379802464681423347259198596871612979195013756837124202794034884874227321002435452724355358991743647856564161513404044668307722156333999565837111506056618926811970818573955618710039131220767365615343961413404022280668641978774350124716546163393129975554055181369945707464689400804140918208585433055270751833279393926092738655182781147748665993586224763574121506671081539171809494511878042546499275128462674167114676729015635290202775173097866440670709843299879377918219731402174986122230339055785393213363612414253480936635224984708366180008433112266153666523854424723738435807084408184618117287846642505534603062134630730717104792595509135227233301558949941236320793086343314505200047095217371379332785897014276517313159557483874962330376113829671366380976270220785838199774101383102836022301514420664217278939738130957134441387783044034745381081969598626314214816749133308065233713857763134279570495810376755272775184773531122558750611596052293224400024190465329509905667348532260184160020533032312330799352896876917168180663566762911941627263856411635997262476184022011525313165230715710606581827156258173013771462429523028548809672550298716610823477929048430667507581607755748128181808631720695722563533009015825830156293596743642754605879784668574222642210487215541181925208578901712008088789030882921535096453788740280961447394155706265147715878902332198573352582427241105608127490074278852649800069812660574866962415270551773492255788841827753418373315710468816741540491413914301499165537363095447174258514557348096604443677803057492510924923681118228829388930581687660738524171656608319520103782343799126123974147896867185062498872734522065670186293558736176023578281453882931507427566687444065958139155338291361183977639026439623011056687652431610739449803465638647029162462841877595891044105264918998586994916392891476376340769303653750414305044275340822534609872997361699684605240226081346837314858806666173538572748778534832818125997975485092836493170675695253275588998128098904920329910760408358207467335161936680922157950680090423990174299342293062592900740214825908398588251765941241274863151531009069818827740422366701075924830413646418518006551018033363400602959329302972989951277854908721355024843760979983340541258635098870295289957172119532444604169984443782574376222497346419521658811566304733348821576756439055629011465969571533843919562893270570390479613127085038104783118298032305779371888470545128505263522553839982288064789630362672818873766482467010987650838834259524862613591977039844298124444240112595352744471800727204375466908619584242836894384170049148541721629410955695455180418320242447477392909420090872757079801699166281899604065408533969801536780740992140800058929163510857116406791013102567580578991122430249922448570702315840395157792112714921759739346159541861347089066700358429256320343690513286458819245811949647498658678938668229992302731550291216525172382327910857048097188307849073878820587085318325415372479672025237799394188161522365063453564171731501975136293996979233789233723781720138927782856091724428169464709493064507616588713104627815581956900719275080413292597077791821443804584052171870002423527598167239454108857328657315880243837245278808936930451295592315687723984955816209892051450622717828528792408900157483758674741288602320084836251180968352455976419434904228637530610094609755779817790832679952950047198921026817972333596174746030748997049221812577539281228842784992806648539757326471656905559950450758157558724335930482627148419055257656507046235686487443882630386824210557370511062789452149637645509336845908702228014117687682387413180922340447823795378642518064712238494597750494666876631696116132726685409092836350207861457042769146842884217205291287997181234938647367177589606293094925515746437041765931225952970586038102399158625396700546689260681728886435881640321413613641841064596823484294756905782275741308118072063235259247934847857555012310016820494247051325164572295900225902184996708077584182086154250203450042962148220186954234125753939307574686185571753304323374222110769732596766780037142292371146625793896417433949240852451998654434332230928684945833337850252727321720045659329391337097120871914505297020725446848831623489556400747868217984837175880541684920280916691916307412338158277201983893230843849477298868563044785547667571575813463235192229078123998774674239463099445015007960949791936408177452829941702024078415820144422170127285950342795906801829159680013859724510086768126486618950098186194650384844939587064974087085643331125299555614660639316022746338966857611881469558434339177377295834040142889667099110413408708671881001885407590450386045771825341471016879014809461591920346657274238118154760681345819441320974940582415853886886254406400869962422751046717107804879871857295910934629146016339768485745717508228293324671933196920808614912404855256457364404638338058328627798281117944390271540382381680500374045241506962499098478393590691211162956097216890063219156160593415161224541650223029971529723903232927066184088099415521172294859752778533063809052647329176431133265404591489896816806334239734521742028726197089101538919517378819978438027104968099263440416941347566324874822192781672166689812080945206319969537088992481168768927519635177075329256840492596060856510506354843587543727475100391301657836206195736816595607961609802679612794810961847995927149242382735707735989342844494607005303345316629970281019401738326301710042414277045849719271715650433329956807774586824444054332680696415817234450232091730112395148819819758387789301810704837880726162680760280528074922093645161662726391679713973991112656764550309687427362970407682425232662660249260247292045998050413367509447542889129129138428649143931084819244287513675021083110152344883119754448484926918097263269261868035266071955113853969011614275815467895034748474795876188372528243636949144671751648036057594754531421884001815344091924071874853604422353471182673009003844968391426527541349551924797435692343828023588790055458673101037599443113853295011097813732140492908043454690341347649283476933991994444820732017130837175754022223925166426784238232451949138309343569976029026218344296898584701007967163658203824482352708715391859362180758102883070784980004196603137346471350960171778249899482678744570360865063090424839089869456073962605680354871853179033779966325696968869734700766060526575564459321885767301190316871135102138495741066639153016186342734411687375185016446169947717073587963355199043781497967365941265409992163243519632743257631974431162211131992584979706131611160858337922053325247146428535788757777818224262063970276640313141408932545336730268081241598452008879045875238088541219955431365683852775268807233824599112110635837402742286894672048678953792207001738451082168112771715201743897652017505121820849973125943070921628006319109072609856489009089504624106168594312086296281284526930571950997565465022142057435503485839482318905847158120031564788736907458566892409122267143288197598451636605383001171715901338883298823714264644961602019716256162218498726588378985561106946558476108074913793781329806952523810527961453587654776443987641128706582104218255057587477590622435855028294177245109732589074215590247150277491814875519368003756385732619857580019892221976230894754526985748469292054191262688584153653500530102758391949734170042363361737825792115042500181825157867520665229954293797927244102070404649704433241774633959146499036023050634757028652778448579080840802276895611595597292592079304728111903248802861839076532664540297559284172816034068970691589349515115295465180623603723271375876190946939890671546966595139135989357974685753758058491330985134621214531306682530608276290074439069057332465127250490173388164810169423702181884624693687568955042430169788738732766568409172059784633212566287051760021030208017055979068472366306350897180607644839812045510634395737297887110574080419110122004907617581872138660598087596226342448455085758286553834455241113138275549840154662100445677008897046474921385727032367227613214555190523347316359898135587897733304186371369139295506361816616013740694323581398551772187752664442822691044541829614117078086955393244468665335122872255783256567973118015734894627910967523950867392382074028271021536167795642836035540632775361519442246803445539527115045070141535190330654535348040366001731822619724612049130228240176289143046209750792205648098390286174341676720073356697578198341328678179889686834805513620179643379180119405122814052483166217042235125168565228250562456465917699029366443173356555699750410821307931224914539325885713998091684749974854638428839615055754656314040755770193094851708970692773007380667541092367539117736260794989499957120222916850463836216574433004186338374949630168879618409278420758435293743993030896058230520038166907152987443821993073940071876252698057870949611077845718126358610213610180065544750117128188289496177813411949123067830622683006088273896813271360434644885974650215191477291941601262114667050374198358058049451023683801459920486019537033398973131410221360357614726010690899050670483326191086063146691721771297296720438453858431818425735407797429713682979356013534864422814669581250327674977838646454112404714879764511942918850264320652488378851178887183126590175831548755371531699367824620658178187356624397803972760731819005958244908996104033574841336853539757184410558325150447314256372695901946317405138037112645234527418562828903203296504221081913202015061933981244041176570696857530177931808089831141446709085411136679091052228943611991632829557289759510883032834614689435701651036977980349054158632050020298647736505916512425344158995168164505241356353353137324356231845508515705680633008852687278128225873829955526508954308868207335513864856462082360353538387014772444515165031222580142268198139341146192117881963627118156821813926010496255698777158432461317910695679208338955158343349544679040451731298121426452329908267544470741072630781613220806974635009796967452859218880393445563678853804754707172274160531810535342774277170660896331656782445691256359571944282823465099157260288344669464994881657152665736276509425572977162811114215128760707184437264098489006984385626167877983089238257743125636053739603906549211563808330317448487901881294387817317706630602768182331604536792474764585373792887150930020629021753853053356814751691220823909420473875100573217359451667623765839064406071014598971548492992125368222419799465138857546861971142603701438472373041891085274427830651258408611996849606595040824986857313795514452837827991340181609338194750958392538918493736859346893500667430529178224840260833228468308809199592715647941818358993513203854187356173816083406468422190476492161558722174419773935028978329440803547428064252312543892640131463497615371617039394998017305208346724288016930663603707871352324817963863378154601665190177148132138325304759278593300648139346817881327052421825604437915690987676286639619017593269586601223911114330101115233680240675048033051264802141151058704065151253869722996433535812189582290246848127310091781374717202704874497605092644824211838459664278587101835945069811820679357267055916985010174141882004217022305634054116053633158557227553350718021873038693726460782166518736119035452256558980542964995932063984420078685348261487539907616542063958845797398334835251697840564220789691246651843785904552939279733826815206506958265640944151963326232615968307555163843775864751753396503682013444638768053282972021712978560912006982467651717227020444132618916698416654690182819486965317989503778167056568883373531914766260789563835726272655099226377903716055937005609693252255213406150949793015041148299375602752297280154969391241346542289965850622026340137363371453716388989416985403225227763668688728661405494594600583289570276159530453638984817038377283367098210341606248262973510589470602675356434772358164715083361921898481842788452772184726948216688868727041163105406268866586329863917918657785962820897258843447988194561193811843203332228893641071611752935820812727677161861911779147793998631323883684397721427602174699898838344997774890664108557575554145121824188109141507823977106131246620690854104376720201486020774595665373850324704778549134960640240667255986052607483959218415232487283401847103719544214106018225648077835855282233525782264538953087878555639704400244692517579738521902766631070573375350941047969140506166797003535968901575589245314921477974773763491134472014443304011726824912593394437703555782947097380779816328319514259364849640156995166838864455108389855641232707516837087344859399035663192587051890270990969650846893106054273908494572050135776711744824466028153013948696891473971145042163346821351051617560635063011826456879308128917799450847947785390281586659184288848909653419473942068659439141920306334493520926043830980141508250912017067177501004360146094061725869020667081432830922466610096101163901923224526147262111375828684426434865568160338383351749372185691311896474204626192022760051895860838031888918836791481770347953292189926439841582932031262317760080590335697718844222361305218335412404351295456997196232485297299199368614363281346977436059444960298476227182342886747833553702028179217295292756923383010182411258255325640841453509333997097558415204204734753361304599137185093117473849134156084490051352883458012051025274110994126137503943214175586179249364812362345892148857400524187258246976762011823834857907645460475225121883691376781834077705154267666613877212458908803199650746691433803862679701377544895267756211664705510267203839901413763642669608763887583133789659527585176508780007451641354870802558760353684325393434095483144376952745001214213043244391954225178912117736120374633730095960672428961210382277644094457000640028726374312658959335881233794510870962764620517747112105395638041505286877286462461736929240619236566631480922233666016336538920503638981516006029618685953793719628062762552002892805379210644815126322448084843403037276638409652343151356718610709407998517403756600689943331388168483685926800279429116359440408954627523849320339972782068452549658268016616834682040746088617052758028098150630974786949452152636212367930735477554844167788545006536628104232310110561133592484037591918361258542954185227672799862094958053204261085113618046708733926410424181543606418030111272027554621338182134185863249936252272199381873734635086525652459464450885181492775522382617699858413151202253305910596664627219924791914783388417985092220926714487607756916936012180527442902164429223388400308666058252091922432749335071914502486025995832995099954829257868980059637765408564960978646450733866704140978229941884962238658604633860280513114781655603759799469085772216400242113434863581966647042658897217398607108281550183158927042328613997849770733038320938298165439920521506449581942828595209376102292613904724143135063565511341809758491157857288811729611995421234249599817271887420477645184703120455670530269478832453545211178922293198916741492787683115868359078256957330428931749237231954800095492461500697050158773892765946545976080047182751596303767602306958221827950826957281486298105726709710934272361656530766053927416848733976490042686367593849994795293136384221454907371160475524902689640972058511986549459921800356119352090248533082158236204400146466539122698804399150653447296937990955046062712202882789251580539991821950159295123795076278340682388676340673240766394229920503332759172615446895745186701449024162157679074136616624254710005521598216634313945099210607607650570943516055131861259468943918566612754851971497357340637818837569006826727905572259901879378382787029968696894195790390116375561365847422566395504498707145981903655957208844255657663704627551160093505892458522839362899748577736240289318850649197688448402182950613307401163062665138848611062197411345801775128224067119014436270359852717023936135394934747413834367284920481911465856261294652280464227715974598477879590469221680047099431658025224755864985779843382826461154870617809699675171863560505171753208494236520790612491709847402637209793741747917214061548635659149455880514562511621159437770276659538053553021657363172235583408216357116492129942406003932404454359079193396034655454278532249616103885438249412370742401296755002967425606244268683001496167469828433386771763162713107371735694202146193898470358662839524648347490826544577621744719840259009888866511893484339773895462541913847067276715421419428580301482648513002720744025916477507478907747806237326347002599638181354825761390612323440045259954920533637851114992003789757083454370201884889489008565673703655363181873386091289494349595880562117485932629965004228695955639843595163119478743457495889475782208789118220757715103821067572093155526483419539075087361117965187807318163084819379683057077012793326188425827870703864777729768784174012526430916382629634369081858638928928190199571572783191937214185398271864467631256979206350321435222988348455730564099557274402156955706452843858735998782840175359513713776412195530924734840860346093632867284857891637836639625224050459370493728952592046661491187783127368845942791301282897583197351610190766737855666125728347006974086797297912167148226246121212618211603865478163419226760842287223775332651515767304003111246718835203432537530385060045863118454354286712163380714112980459407155621851051558799910688477398790680425921231815060429764230817543251275062102116432667213860761384189860433946183301898863741896270452360930551070738338896845490018357657122852755370418273289515942762944578774223329884521694037112841096290912853499160851484803843793544918740497570216187874864810576367387153250135080517791549586860649935716587669083562338477836135277110993706732478939012140159582493098618619525270066916852297418469778591425755947394972604460517216472168740983903032537418187831715718563706848973786994614630731661473451694247595802535009531829818332233373973586793773744715949989125128241335661905866207578084422250858840412817972226070730254684110385774051427834203899815240529514839186000089279116008139342303472909703925352451671228259515482727261249683267242053930038833682267048436149361667613036875584453249711684149591045517222767353415778541978006677857830317393598315319734789267875313536269459557128114559235962330691855268547920572126821017437701849771958306005251572472128679547587761811892385454836517356224177254130912814286578718258639334739325733299218709668620628593518945795905167952813442190294693872252124513058144849138785284347155808577815822383962062004852712798465444944659889434010835865216089232201040088666664415788237228019808129110611567538034930845655462229685655615488703292245161204532621571563791583422752115853008578034309500514192870206109314847066666095033463823002448717563513194275396470104335684162557451962969314840249292565471029010032064387974671258160838501893969761601763808852465752180984880374010866806869325184418433024500623634442683878918939546766080914923686191869614737089721837387064122468197839211698115473747519066196813390575015748664808380399582076563843240341788265207474329801892072419216622905015107761327123669130676290042462869612873581799150474000460478602394476248553752382383564345372755345930352232386579619021767834766546775969514865391287697986694183104762353678281940210880015826888628946944144091439889942632551489647166981199295206477875931955753091230254600457170682242954797989485593217014516668131276591054583925889354108870128624043771611037553624138853147471114051151399657957964103642937497104136430238068192662506366436482559094790034796291368550017815087767857647122366746463096812771917331322116135702686623869933833712897828754374219176234279944658345080309970818111156567354710608215117201160578771198493231560174296998579079304963783917878533042522818407226253890094085684292221279277892524897929704875009207560753329004153091708163267218662825113046713513096672045588944609822531688857660016838877716193603048287894819493062193395596780066810907246054922996827104045519324402211665228788832635481973209833194644040106662061017260314872984931945909460081545117798214856583767260330699928316509018286050055687850988102230790164671696785547984831297658798907881439408845585956485055979832747976742414857541584102439747128502805743709038516830757957870229377010049704424321599876549148838443778915860763201713539810431503227876392754007386582943296038495000164462086424072909385697350661700516968216450343553682235427205282368307066337272455806785251412302384956310212943237476325333374495841132965765429780780726759403138312448498726343345830463005957296312916971079970044268132373851364211697706971472927942542733022409863325543874092658527383947051633340709170115719843215176370754199533199321471391724623607318898795557823894596176722594302217344459335868990711314004735164513252136024467989381384330478765380498977917720278900418178290553674684521586030907171874519779638566652894048151134515380700731170561269490363972518450176115484390667930489262641693350132919727140620800930265925248646655071692850701871727167543038443594000287923172917465598450332094017465980886678651920817740332652515835730557803261271490434569964632011705833211188930554351386822322359589577387679145419307129948740120033316377202353841084388294647349964570114691048651961615438795989821682448720138591854581632576861230827819148308106260922256073618358430152037551271608379061212657175215038637266527230543973169511615759902971015776133446593118105388674882475887063594305194246638121289391913323928075096826289099184695626084481657962323555140047278424521423298746576419908018431532605598276125936741578651123629319554158161406013678309363580795274110621780564626144075790713304178013812653118347597452626199306958283245432513612613150240622349197754115723821803013866483133518086433683279901733417745841456583441457016816284951197491184705378796139594880067537596061635550088809798145505129335487678844975402431943813060550310727722736673927854331405199844844367055210653780161685320590089797550197018827484923228853704806528958178869636824112709849772364972269496879439213428146665111465891724611653861138117433066790830356156285295988458493563606872148342043007855791203644116175739090681870579796475670178879952034548353496700993919623799835006245903835127331135913595190008601070013269151867923354474376931557460714599312579279379150736034903864748243120259847907344173491948801328567624111697473985163073551239648862452307533821989724446542203060152940124649146653045890011086591839180961634784356601329157499192552805081078448334950029397923294346733883654462233769317807911389042108552002485532375790316151587432168045891085460585082755935028788009776263018883293739982402094725435141411721756113529067644099715246996625375743421166698168854088064624121043959832248966210553040950416338837617424787230524571726707455009979147134933242796076539732310930673692916898184118816079706373610667104442965801992804810202246815471977050193741775031512037216869096638478961834916599124045097092557022910292905297406595971329905463861120266398706459826960797681915962051414117213997487417161971449663690548786637429221794728942129146100506721391359950396398676608612692609682732939095602703837481908948441221643008598045586605017482425299470670284547727126106836451462282447959265059899327733693784973574664165459095926928805510734220916298567543088613270724476670230105737824101583828676221194379141719234545380266870374024963678267530107764954300844276765650566875059055696824101874067656235553202070690570050443863903555635934910960593089173381990933838005868275495021558528177813701177843814291408077134042172424620681844765865368501192764365254918219943226297590847122643242616678650094334861989600280127877946174085940102272657673460758629712495723389593786669471232959556587221510378034313457541371760537950554342137140297384549090816080436097778902158418110010096293066038381513365909101589327931253951628960239713815538855472907026777728008248164756487725623941144868510059973886074635754938641110205217395585621055620229940807006056293855742152006426722833831067269057999982616795191889951676498728871981081099082355393278111612649908081654420994462584470331824173238363465804489560586593698450229383527977480876862878454838924124658826583951365577030811345520766951006168582491894509064504044590948357857174883926464746399893247548001313707975638037162010606068466074260108531363523505410233348001715763112663711565284623426926874441584460274000141205816814781717472356423215118078140292164575186283209460668861993002558376526291591695948267467421605994355349722286151335902520354572645582220078195904257188032389192127155056863683718839999723644673866939723567765507134933496583379365072492401544140276701422099232890674533898338693005254958309994759864986439751940197872402256238508420176775664226568587828655076322500616947142432094246204342925630838465118602472733292022691260036718560717171197633341828473119355486339716434679508152333992367022354640373986989117046635439084290463835596731766527900911233696585798669577752179446337310916358714836302650716431091639242419498945798225294716720798991799658351736217483020220132348601755149607976033954312046321124459374409521343118237295731680844662339750998765983406318774145930613448224714280123392386352167253014040537190910450971497898649304567637958895313092544121377323929033626252954438367149602907332282374827994707301040552493569091119655439463478465298514728875768901592129131576623039264617363141343628747827111790264575769980187632312126085174100023948379925124304036721691366714538917177986200353543333997568574175051479352448906946491897993097248130473854785167756881508012897692161959786957596493965285175183583222287272067484003469832640887842877058584202686007801331194450138690280563778489321182400797063228559902551319372576467490316890785311466560573579174400784845381174013482081592712521358109684662938524025965346710164840996940150582646174487285886785171037980507225396715346959784128837066569045313026440749103947138346453252135438823680187041431610651579296290319234051495722362826498214379076587906269737164813291409715611549713043925887171182467350393948457639988025654268672907927425839998628960581170530154787375240308916531094779142669904203126031732490233678076226240454278941223962668399396588925466376932390573534040571888583563803682066941158756913779930484546834979011806202531787048132495874400811639309260209479880263088532372019909564992265969304718848400351329881267753481916267937164927899332134144519737011572645008591249182406498067061586100245683276374068284647560332472317523376988955969820551851025055992546179220791689951415702479810712159469859783959755346081314302014012872971865235535068280952089462700504613738967607292776542783600787649015099186469137334243927775768408109220721154880074039206055564939011497717253186272049676622660554387043472251988679442818444481332008974573781359972357104965741183573924962904736347648727781469437696518738487853356334443470826462687855106911756455846674035483429770232857633534347262842986570269391139625774945301498977542620727949917089729392523440539467056294346384163847675374301618040367049318632412950965117137359615156773657021291765682739163251034212576980642605906216774980537961770464923771240198475744681397338308325604823489396410514524570003165163441170522042967252038515854628967701769084810943661177310635043003889035882485333163869745755549000980655176582861306749021502155969380886589351220162909428087391643754908287702356245461239539323194716534173533566469595188341779664670229202813911360011049188809545888512067391945554332370161097343125424700876646840827261216200923393922898994128822479392842988507636746683413805254986810737546793700160451290589719952486244108486929724723130339955441944593979739342753321747022610212791560724679336494060489563812388081581477663060681036635546405033526585351806915728707564741441038399771623925973521122484532305963030433507127981590815245438759336314966693040306202718140918050025350141467309839792321674691578373770527722535048786999570858040686408134121682087600535346261642641157038308302727073660724265649111188157501578741929025619996646328346358136137010943249698940961484059613611985051561553735791589610661656665598426803812627271072949836119110933952323810725595788521466620658016195178667270869824728474898302888945366029481293030250131035879166331192114375752650752360910488572396270999763394021723577635440039301852987846006231091291232053295301010755223354798825965755079925560321761570502764755841762516687092124985775242058711116627347502477567380411222426343078001473526248194447106268906728789869187515702566038594995053531019374746166612008542333417244796485157754573142812638482061127692803502860523737929156899758446026597331475478023314684826654157097388347778060506652582607285016130037558627221151608631438223019083544426507490182572839967635097028870658132701378234073507656215130951761111081489894199467857605538541897381483700486011612629125780738500222534423556389319424562331930849068431622598855909445881649695815076732633758167621341337706923112809354575715786364761135630599246972421712635359671454252256999714052145668661466098519066200331500284836069972455436923385784259382121001215146582613364642602484975688111430061677072638656778447262276510444142377370308996078596759007863300853482096546274031049336146193120962197432465918616304129526383311895509750049295406290575926516227884470885148525879435820171015472423575314947760300270097667728121704002042840038182447746676827300303447537248505094515608634382349659059739244147539264863006957401111545781380802340154741363178857033079692452037434830878411770024236637759255218421182964799158803366453484089599666427283275076052852922969893076709460414433945269236814232207536131899646559839326444021781981010507465007104450576715976300348984587828141036563874333693997939303709715817351708241070301965067921339583960864623151823972217970146973594225068761492893960259822364046073124994686042107205049404207420788338201022471297938095801456773616204738953715140411432878962129006935488848214191673290917934047977547247152939778149180836751088579872842515070991224632155240235448093687684669383332908708007872431306189240906751051736839710315062839746719429436478843583349829943516363835095781234207947110194982582702030127240207479542376054746213910153111995759073311104777637891465437039328865157251467471491785923994486584957621254090894832124619988516146877284578608878683381585421405830604039036178155098223123464810478909118111202233841482048095337492086800413776854904975707003299751533080661701561034158981131953025327241590472749565949512659541292759333229331923342177448840408384689725297453992502348759376780254801415306813342791730010078753167896088401625267891950788631199549158920669576291965499352041744748000805593920162978304401615557541973089568762646524846072514326127133533455945834738711142141940551245679290367180407707529681636846006395746426127382308124886512315033266294369626185860162044019820757801083848561565486526871711250654418949286859133512053816928825627504773611652244637396475476983812203474624470958788595079550575710580119258010260088263337884028318234717805174755537620474219596565183674566633908279850788130792745320038547303599435081801954590730380134464564605825849724335637327207408029276364220940702324897333539929771256508054716473988170097609251670343609015856017117880307639907162100131033259128195613021835428641408115512722888412310964930725440010664252528069602968135563198620349703307449941647627452257728742012067253834627509089673732535045056314878194317578516651502822314390339960379946246450012011543283167541346051721903348953919116867746239245182762256211586831785940900041208097667548012580402549030394964688858186958679610380732883589602116928186630660690737802912744629636568163111242668130122255482451936372978329077048816328287596243588049947757965807132995882534554322158172744555868271231557283074863935713008160392893118315543265520412093986175210075692909961476144744112239583418045550422855478333418345457890815119549933703655088489042048676594596315537374370540153267917789379517620941034856424494130658080825287954391907029368180518572711651075308761704088989370122789370989418107796971063105766863827868119054482304683672695097680044772411708879925631934687353541292217563050867138599667733558766577897362500286467383314923551688460863845705458419115383023527311308422107604016470194568834648029023996129278381000646795926481157562496194534485221791258553438436885863932972756508462026163932374636923119649347759477344512875354030531005805245846858744623119323482553698768431829530862315063932099215269136774654527497911150839345371257827188974379543335373922723299038860460156286730256253231100177307757276173218673888792215949218917660615420052230789862243299465551543026562356115586273683640501362037836050080528679625670501873512981715573574228648110670574107193631928606051589627076914001995181630090392496437890211594106783923440455889828208725585513429037648660879382915846545892668452402918605955697826838404984776699042089513297692001410292381426915195219070871205236337546251885166902211091211080155935379504429548519112277304485070271211034449284238003203819686416702638299951165994821053555895999620106501323947017124879022083632530760271636580388511832465269072575937085393077146676691330135503469252020006773288643031637811459123021983762838178215172743280081248913590068654432744462495077395258059570857343791097988731653365909152996897939770917949898626397325301948690690224485716937223538183592981062864670696074539357793531039874547324326680654041716332513376731018078066557473591750842436435267510038294199772057871709142546519055286033289787492071651686653652677665501125107620460085256101832941424746805885617652651852887784613537531866936880957145964769541372947019815584012697522710559997956397334436979255124500860880896932255851435826223521265764041638088598790184357193129042200692934208896987976867773986816710175719409871245992590855889675982467974678818172770106314571303801112877945536614807777884926510507821210717290543919112963995137479263212533839518184012422494670652515808186435712986517955322919119848633214840431519264122008639354818956226728776796272131077519009785012768470597862042821300958149036577630369053334068362912125227261360596885645157377531388527360743708294172847912210308142433319179425261676170202511491314316948381080077462504867541721875161714023063947873185525137191740968786102817684988225855882584049452194977657217779639570529848812100454944979150473124128342981723978727061050489841765695327772010069303204647949521526218453722700782547041957469145755183393922722574823722155722477319020827123022021767347924297805160028920326107598518732030308825192945547498394291130833046664724353009176540199037148534749244476909224215987852668714434052946276810379479611511158518824658707166555668534663066339270518522583969285496098159030107951733525748553023379611300764973997360198802479357545237708332407137521175664428794835956709287298714049747079145845496426114779482699238667091909174872740924747593616212701340494364832876737562709976424698076741760598660524804539092612631733012702267740228946503742269991332415397566470857603703155757102866847276947981678808500921424430650487536561135848418737252467579871265917179576792620550898179422897611062330988988646722942738190110729695770287242181993425223313860936342501938899972523488290012544461933989718584565908697617125854633208461372722863513125358566451067566321499787878550854055959672709274708579417080480739407464785542444230613967328575019953946396038352553462794831030889000789224331683927910442036839039154836212524623675220173804560148141840438577576392082621670404727367162059329997964085588715322845246035826296565776700566583304843185389409138495053082552836812692853859164165059591486519605359649523756091727538030863913038564738414982858698994679325273120858644965078235410312594134024215456650425974943606071988362849811541375550468824997897971138157904061715248584269439994811994652714270930302549687315078746091849406058174765219199093352742082468112357238362066932272235654730253658860986234911811570666275825502013359512622996880235732447018956375591598694361224570672156303170175918474425867956310684541446382130785967196530138876280626202064316041621663108094334585957159720987171976030050221889171445861658693995013668687493150640622341359305027506102767212738330607749548250478242633995347772387015919007206736829050436195432346794517342889962100724335908189008936905803394548827895173089976446459929672025715658355847664357439248159035923875476715943414228377491114219040497962221336922289854736132971910976690351945539196817634125137922735362613705143976212752635400334182935702096557028231571754104780248853663543004673903817931361386231679658846752163633034323379749217583326821487385416068048216081731563350707386192263950442119077523377519435490634861489851866360442999057832889171872366925818525194452984048619796586290900708592426730611237411471393543305575509237450727536771562619565510654281068897643189866649715827999828487124807472803942752595333517009361330418234363637994156760375537475998255921922536560637177011009898014366012643755787582131972020238966695250322870392870971705922592587682807966892897958862122215639208443483676532366898018957253027625588253757973939610478246728327357131397311807013777315486405300245404428079745841443991041066855626098805900492527981130223161785006825715306268179115009895796130548070417446825116793386014427593905153760067543445578367013826731690270186819415842016864093040237789902992580830701545295669702518190298447354039659679998110680151515901092635728401419919369836974805773309512946482960251689586028248911649732536789352644294906747356204613984972465798484098754136143366342972518203568041441629484842696417809558776731041482415981107628057452483430940470291353553476571630631968262767718956655634030890827669637727215901764162725364833365878254493074216022939900788016774546025861092980322165995123909902651350303832763995182004895039752066098045887012911624142041541534909812138906562207106307768423070058510913072523080180139277359973941576173543026913816831310899346132748879324493303381951025456235202519722858033173344952739372490427163197583457194536516060490965981650325172211872619115118859890701232321851254136665229456304000422423549673822159550793290897979895182377879764509307538110844792833335372856905794813653379368849919298035457860718471708846841291057724542844257034139601668564937697360216942670481327811161102241689026899694971589540566194067035961661873620845876106602308867820299647260242060148811118148189778240144730766682382266213029575466191495225883464752955172694005938121378106071675207119590935973829740616097118150243900341246306087058946115269438698372118165291472404302775733716539306310099235680180340750007097392943137460207997534316645678961149543983534635959399135933425163223052113964264193590047122208296037249761384729940220186591902244558285319023246429707304868891315903778180502524962012908194116736848317361250197590326497514563932291317167114448454625091655087511369484512084609548790589079359186967125010159669698051090554938400122661774387758118713399675218356822488344093595319715279428844399258184196898890629901715959489598869568663079699616755749738712494083978265342570316984417332450370372123410805659721685265606779974886349218909221264573867157643968137947302608150247535750950444175657085222134475912396754684581605633704598598576368381033224262320276867909074579623266317730951712054546796568140121428967169209339490115330557811603077986031714373069525246078737399599982402891319542214468993466137135783683085616672515984309460110348227994033446852802316074449967372048010326686171758866153855770637401405401556749653461809576050481217305231933701487473228368389351499494062887802365374144559511795395138799711670689917336085589814898082568586564455787890277450016715573393556533905990043282722496972137110807751654966489203778727833949462338288104388880983709241748328180129711100530826882858657921787143457283726579903932136426549541240745757337934834005581534570076682042164164599294371279753325596075332042227586472807194601856485651571534003351279707079402956575908162154313963393636058465825404828718379299464178945975751501365026218790534608816804331806532022817366677237036656903323033294086014488898196807400282336660475186983055672158334360166748385286146666444910259616328261887603799096024590449178638902831045379804463977594295104647315241148653515037432924136947782914875293025439612195880681030717149778512452442212297066678767173553239027289389024677862092376610780976749783773209498518711850949952089827190629469762451133405133330377800153437832078252070231465737054522619484229179174779968948626880832024651583434645340444508019180910350135218068233029257394364258926888492645622238192490002089889222125105400644500210430185506058900080784777470063308162718074299097126242318642993078630212514300417848812246567597757526413893093822003757922621427436365865161324723661250836086585788915233368173363906405193677259636858238023667019657149217585405724435313434141147632541262339894388714934670713513815377768223095700461304118852325082400203848055110673394024360530516317515376168258472963506996563234522165812723824751629327162585702216378063316111421563541635245323363154233087503348028006755756021228527315240462422257347891733978633213719308224141402600974476336621610240637294576179085351046410685085846347536868364028614188090376657088258645580857879605998781045206514130401889801654790513955603255342937010288260399817668106723851587061032412884933120070051932705525567239797018920579747827635712921188355179541065405477728954437210574116212665877929388890518708149882802121637654612501131498398670886568241101451817236919724687751254256143687874308311251374552458320301551136350400708039918457250603612868179869742217421611937409444189275467484792828537157053784799986817897253928811785263661995623965305747593623611801778268546712709933337943973749117879260479782495118314525261453943708692102200658205878374152723013788940542406398233396615149417305827207327357932568620559290163702082828795495210294657041509632044553997899323930350333256077346097274308964564062196922594546796243510373243151487690103064987622457974409424349185177426076065486418589772845079960132769061454357672162146960575667355591376254517625738124285517884412216017474624719474407642472403082163349845136256078883394693037941256965168125114216395670121990344590466335387617161879588827367260925261323466834246983291301062672484903262197307934569196681839601715655862607889469390932898988589307370527866720317503224299371710490489130108601591431758141740142363806632281981763785216527244635418174102395880112909843330448450937671806913940227520436889067156434098592195047063411480297832003440744869469780581368231187137916619195578847072648879020798577541009375033517330190046420292792677532110015173594119423772668721613932663695484624218481674281986329675863648308550526900553742001636074299071110050370287409189745295204507166576984331457482313596906891550017666783088639694334607382316275696885625966591221122306758029575365304572083063747432708252053449465252356003610790157947538894416432692072665646854644205318205309335451684894173236955022185889057996600491502994023099661127347445568894199422418054924711731078263838286161034239521580864989233340285726961223031886504789428476412314639564379037553969279699958884185846395292189639828590310069700825267538020697949249183295165698820930136418798675951268633058154026738944215636855904544027445765284223267555431466677264647703435194312036191182466105472288676951770378444061631498473587638115166881021562950253820241655915831553434991058282488950975183937626593273273423717894031937316726031263045257548973097829756313113317073751725140190577742691348078144963005920904644928051086870339624449821038318065733842465731330223617468929724456280565670882240545098082862037796799732615939960434373571857799569803803451929336092337357797357697877268519168202444949213439161335082429194511971444700630848230531364460834854927589470149655597862521063620080818638258709104643183837129760262438519483509701630368794185812227138979199250681278786948328701226785800437455427406537218742725811857726213250022356420218930085456390351409479154367168889284275465028576473302207206084868144711740331956120074396421889060797553521160252012069086907002747157630544690784240098663740113289704824287835375121096024696993351432720999730585074069341678400343354238223926938302594963263004027406158823053764138130570648161187643662214232264275402915892468863688174847317691116928152379398777050297221299967978992730340898368744560868737605437103337004613561723061283583812225411219864955859264699062633177777118571481608006725846600202273557004399835622993576759028318761695873772253929287343100646337725667731100187045506578806974691846227649077651318572631750616009334761063258396687199032824607939184333055882517930713158942015995682555828384081435202642513149836686655661628917528519431084870917047774775104602712779808633972667339355234072956358094993632740252893168599097771261116824146286225124682415498707630865138413201850757979158630100945656881777218398584507917425327766804444493902577195219438383470910504290586876574200872162236561159619827577717415780718967476947413038941607899332875254862705347977189951972718467132510738794940277164729762012747885582010210870134589292742230757350483637161448037191399970671475902279187540429602536113574393318260148370740488587589736264801517458029894425973894564862525680714741824824810892003736761892720242327881410011980598491645722845672880742351675479353369768679593260929739457230150294176748178959387075723289343744998330043222212693451437143297081463006394000654373798296982011028085188669128562677761288044778147467339258524029530290638957660154730706607452967340315488680355263595709225901077165544159383735666609942584625316757041122589819183835581249996222834695400365013013561482266793396427280050439528539043218323472651521483600658692309086847840452109185864723320226916747533256188843973888295618566129395508905748699797687645573214623141720514406846817316399461968793298662767840684417787588719101342809599784814548749531921975663872016920496992548742609257468481127492724365938020831716926802634000456549082093869106140484545856834993021623246961237889073780634362375293776726275460167110532493570508457100321459725620316870447282405815634577354594285428819220251889060284959800267450244317427762087843919579570490558275672667695033370316995764470501321274923089619352749017681798347535107863258170715705701475113816254199423683206077319036413307296239207212109464228916461580516142895435963807570749643645600190388595297836911752969062170899023329368923377170338418155461867470889486677123292525024129180556138046782931382115141893781405531560658717209349033286957841617453396733481706633146928820523390582367182496428992197410886298471207858977053584918720863423869924339938405709994387246308363961886036512333357885237467004976156589022918028233516556684512941940749098689671197585329284642553515118831611066691335464576171993983020310029757254813230257043182142343326806313741550424614216730418363955825579342218325729034192540654798276324467092038522181924898431854801845471889563490518376844281681365576501325234036357604605331279957931232412296635472855246896517205863347808920793796892732803425602313338416729164716529717049423831503150643792965806792722802961403567431005886852068398397536428470230971966795575164033866519495426441032223073059839280444929102280174389195384607314581037887555076117774134252284622854112702546105803181555428163023020355177818897074408400607586955582069908646733861140091937446620470335148045391628462462149693998470795810172843352901245763875662829808566957022927247907631891322356326415605419332032304039670610085905790183907824982197545955224895861650421404043510363781392873537662114850746330033688807956736182795225986969073045822415325147713543481890987525532129594253394321407676701586269440780176357078798246870702720749821119430477348760094888764925889916948955277017176580349578494875912133201286419619236227231789288094028061782921461892471384803124434524148877896449671030001382908478617003602393280948045209649470141128321184112209028589840380558877214935798896828495426405476478832049291961889314912500597035940451867447936650607471388474215668218185328376725072280818864821868014226114369459737233302389162987297948088694177934009427417972923160692206121083061294501799312579882176877627223601034427736352496679711982451924208438956220728288239233580037750620076680205302330519400370338188695998586450760809738446808471549686277532032054063272783314295182035004637527144673562533610805386103902820203889000042845057445213010746253451552975134696873547992263311227700661434123942174377607003269569751721748321101746829693781500242307391576977252626948429246666468518486295966191816707360408404471312389510445636608096058297371551203058169840353782662011171825147680808421942145085944547692331696278823462214898931570924363025508548161061324433801998056607715708547847702469473459277891104785912971200773097856979322731284527637920227870743269470144490845040174822672905820192654016609498144435758155683817323444222472733781741667254682631130428261305341593869838555475238109368925890406245679351641333447228043438676397759267099743695280314354149044611401563251737811122075452630381863515755279778961040202830225717156416322740545274887037400379503436502054018307080863202402541924263509691794534009229297707176931739380282502189985016165521127949008147013975342737674373464046778656648759867180225877189607564772873452630584525627571414440968826505446309779332323572669282352542433077054893973084341773842221579946962936061420356250396576920083380167558009178282383960315939786751570180132738244032290267402392157519723512467426707199178024131027016380903473005350003665796429129417297654443300586507097924469951370702069284227837850312518592336221806557716516401890972670694221263633701304273231373322896658969448187362440706723093124923388014137616894517753253756726863648811183939186443704584993580431544930899750195595588689532986313602007340317878106370950721097056763288495827373797345402952346567455388133543555942734472172355336716060852032776748669782286108707640646423827589722386277395081493386727932827647391379561440241063981152634942316535204078731855245996034038160006057473113691582010481792314237679004160264042573598798366868538153955848677276373429655684646647672001085917981183953316021157085652094069468427642462851643614946131899825965376349462242409622477352459746202271875847846815673572847143821080772470360824568587912417986588214335000581055202965909787005528030309218135942007442372991454833707427937034651718527907093137739028219432913464927294853050202685439768828200383136679404426033883958287659567266588497518932517317675131132014881391522020622957413958880368315121517408218363423117884538588100779535253027563242082551734400285563850497243138192201369392990636772504319742351173972114179055208501439254743822582002988815777045089628161516118523461829759165433194947935674124051088471005926625990537949565957181122926472118100269479766586003013426236435092319906199558913855807958086060532410131816763618912644517878126005743975371578867800467012142652803266516043342853221301284469480783572391897125207322129338812760034473628481630213462333255897792102570947847624451856657394068241713590768010996086267174731567003577468473477579806687093760880654562239547537095970568742290984856398535773466406467795532777165238811349122202262074940440525119029380976568982013443682218364153554611087158263822431148356956773896151386873220414649512760484207624195129961671349562382256669268597053590372676388917448475285317230123795351504724676763022723927535010529770414746660728552061023578813729896248571546468643968303027371301207154220145525542336365103812956424777467814133765739564764061766743877374298925512007743404024866396378762279442708180806803067595258895322986741989576427219494827862766363426944663833894232208179884892880178254171923993633617424450427372047480788006813672803174114032951914992671518072261804561522234093323890057561706522715086999020296436358965052767705005445979222769074675649333963250434338795042437849648135669149546569672865333300382336746159909601993111013565671481375020228903532551290223539905079110358715774398307291811031192091455176400990779822102636504548643315173621896825652855517171810083115599111006500444653915387646270651763177044945470652035684730393144865424867521966259806720371013625270414449953523934034416664580779298137151966280494665709266882547528741502859191829639652476144696350101762982687719123341156336293125936489013151699235843340401196328520303520774098634679973123755671442633710901977781192584927535226204451093142477137048104901028798534670695648068212520565060763205377284613616137589106571726591317576627897329214292178520272523994531682540779680382555234607810100549522371064062273106082967315058489839392340753835397297420319987436914466511080438196865662760349788599013701568019768793073519478611932864849239078574894700705427465837514269415006345512841100849057483535100193432868571117853534275093490177434869278305695699393635469857403096122204137762296885831251724527426948306985912318325810145702737735192219470058060985011939235003283363801915318043165764761263732874494741797355974271666895052838917601936093447533309911930006683353312239537529679825449656056711249568292476981686658019053354576624899344843328267251223110431501595639879945039425027292335294568318641217993706619688443545972538960127887494734459354213677326576946649260827935068947478308280033337711004592192964001037688744366155643987054519371454509337406090135441406483000817636667003731391743549956634179344040007910454507517187113377100557896119019475382072623694929193752040484541599798809299898151720803101011017468608912444360151441747892612293850524727498901028939255683285144219673662303971335194502541721963991601048638175346963857671270340447499576105921382942028808780677709554344249080353762035831163980342618214954734147663663060973146001350370234885944549673342863555711593735826552900733744015764694909772217460272444557938542310305650622207317103954807236612484650776197751125323506546509523894094652171015171113888768861060625590979005638706452277087745273273642671957383967813845770183277629373811967458849724600788502611076730615722472828512884301062385921467369464268485131251997553815735806185508467853199879231590290813041447254895689422844583767705633217772025903764731052363515006179863401372223046656886823689452692465205738789379965270286296239332657539044522135133862895410525851491711780067202704470765874788798927078643007459955411017456173088636117166253734321473530097422667777633762502979152034819794430856276168949267528889963482505885689804587825809860467582042810526183620404522225841120345872773140381969832142014112318242469499457761082150667219208910686279875474913483639267509952648118548092626300553384206989575552029952236202170070924073711193432989346232524903316844489090344112358833562847086689113326620851572420847933894873666047579815914816487910380330582283032124297951375162602309417859756503657586085134056403842192841602764005488561496862147719648422265865413669478272612236355298193719574547261898455874037025490647483524128921963572695213746692839493073286978774081093592044947804204098400758135893448988580010749534303442199365738909584606291853184025634530521012558458008535011180892818453605906167640030793850145093324116302110776887082728329367805540877370624029164481785470942119855918473203150906350980976929939044537583994375903782779863311485839564734515224451296180407277756299356756421609221699793796192223771088570022213173462345050027318339678869005293637489113664038515082423442873271679673071224502123574952791498590299079948673426104997458970747664626366039225324334011643008569519412551088139794641413315662298074354449104689131194866819617205594353005335918652472047943283976981291578402161115215288485436662967845336865742508244005039863972684146189424337606668573107239393222841268222909925072313619790249941472600007628117502793393865615341765896784126676109935208745649256655488881636733749298741804227258789701709492697981690892791850700306397547460828529711087465337562656193697840786780424793763645662807072644545440585882198783844219769974027125251893187846045706369322771460395449445472490528806444120582745780147716690443664122829316765908195571517586255096402698930888426783209186279280133584458554939827601402222363002032612389898427246523643273274788161473481897308138129874505873303955086966786263623334686142998942435743583498128013615351162960324867100544832459867366245644895538054439386035473251923629463976867551918485649034816706584548334996968964681076520886983675162700404804638389712785219062694451749234869952183615690312131056250443761211375409073824356187702564445580774074664103176533857743848017234072909686052587909535261835518369240505539238378818365868033241680059170201544321954443418175476108372655055260866371343205668900981606151305255137179988145003953655005469145069043386033505746495234076751583545862853285283566868230187462088430920033860838937330199386811882629625222776689877223948407789864960535851361288465836521660415091387943563185786090109128129893182259043736072644957517552225322896328337508381867862298013189457746419299703444790180461895703284328537646307345125727710460838184690945828375175636084750903524419570812592490322468463192583551432182851467705393516591242945877138574599355482708324237207905152275565362900047054629187762430861545071686014295664076032965450013651524743964618963091832909043615364026518266756422964173412105698084301986142749450534750176489841431747321413058027313736056737635073459672993703697422021839786258686910094520691627553307259875678320013138346629135237635315498655120592706506848611935680489554284235179795222314116335186610002667438044680101161815889562942044991474800528649304767338428943381144442718153410711755839846602541066515727620239639944224324502178615408607308440581542937708600866968763945679922536905446409816041205698835399602361941557622271926600105922298119014617933655887724983746275239966576739798834225846476320172321108923695251789288488025308457427555584323646302498946356492230047180118545692099332894173928132754619016241221409903679084528149272669469603506871227158432983094734430607958574183577587831153508274081765503439748699568610565183054429354095831379859155997471118274001016140231568893624698277021783364929440824745396151633602735870933638318275756777041131080680383830618887752412609534751242007181284325712596197061329485896483139240539202501891206357015703790674781423006166407262449502843151086841297469171193144155042586437697100939488801037954423367138585827696722984847447567912918927652774544345503177413031751064563324622564206569488419505356673035928393217237552694679772512757227003964222498873118337941132496187140748842953226311637997801615040758587123452711890995072049237353743633461018679129109568961739747842714232297562938979142830516888294719052384393358668823245689032718603125439751109825300321311017378310211111509563490346234540528893015973529365187398369484511557135081375975041189632812206281046317973966196688123318800594968959684054355752840631562551551231343583929607698223415332206921765198839394884993337420710366397388656868454818029968436146767623211184319996922134257351473624168621766418785160328653835566086749304194963970630133776947617692702438427788723951970988761501366686064128113535597961673821262112713061945537426652109070021707857006898092454505742133731356031392203690969897649478050515845762635860764087601661359011457153375382435923460990669866512196672331391978688841863033938833893404356265043595498579165915625717227954199367664146378580291518306450954573768500785903964689250836820986297555314376148643511495107291264198738870570615784357085733370307041579676658508789830900872448485240822503480892539380864480157221007494268400886691913315922068295598785622403233947999437194718485726966766100123025164220069831865688690766482210486827085930532438297212269733653638049274563115935755538610714723900636817125466572923080126853909427629465052200309608018170260822757140946766564348473385553696331938018039361114498000465819597469951339696764456568038633526067072024279047388468004845098826548567203902736125237978135859038181500512725476036699052984639671052415920959016220963117115590842526998554864997783840656744559368480562612827621908511398504023967758290392464068045879840021483957995389965335364065108404095198509370730000495504426110868062196095292279309273361858334478082859841585709461566437392399617195741115987455120014671227360492938049247964328159412974173256883662231062490532892051877036180943532305840973956047626195566384639630216100996937867584003149769906201722306917411650422291897241809586087947268284982229958264531030463817305248154394701480532076620410735308915930850348082545432281412513466633148431313615305134340386981873404162934115197533273913465348155325781665598051758620458615514493866526566164325449666736679399022022151214680716195622583497744251932085360083943742175763176876617050721588990355461593202336428010555923696840291407523551150636864455551075523566218101724881867672467048271771814195525855432724039450565434949461052990152851861532319764090609002365799167002960331411310049877753293701056124182183904990251210825145824329635531160663718513472817592726054713629806835824170083325097047641210752219969713495112154181013425355376294441732711585898740512780118236827852559150528088660822441839631351870856809049833199370223676119157844571302759899794616113889446732388692670032369537233220583828389686733878096472941622626968940042923914169726923262149546629502068604973081217038733228495178807399323084330492363326764588668324406717297831183348814468838426441712942964252579917471563792201446782236978477104164107130744246631051078389715230321650305644816137962865068767465171818346869770490523612182792450120463839826187585708802840107582208045727590879763918218410133101208758418511549496874714309128172647291248364629288061484307550030230234192330710424696335453518247019016885887090346265615274975952088410228131594553211361190633414905586013119426163361917596089745626197986483043233527248881155113410977441602480196494045591336299869706844322485170728929872279973574091569194333562164612315467224402123380883668239197524100008538073993507355249968417647249208697492630616909876587415891386342355574359317311459944349444726090785205159688889148852570078631459510998157571207514435019254858150595676353709525347436576580588843954501832189196914952920775039467810412920550077496909019694725753091643893982532435763785153661193519550114584123378371359322384774968116005981287670333701490565752560384213677016525376683703248116894125896643676744000107184200695538874504826256357671587478506996278817574447988126886167744298697889907054086441383853460994337081006634712673769393934097326544637598242522029889966460093043733180033324986665781978233541231981672139056674109064620005452428352014610564875570442622729924520445006062025507697333572458739755535982861880696080088640056553246841237668716824032270086304910897513469427506561013054646170155477490811586730532607093319930354867018719785270662007122901598470716298114854691764479933838179601466653459428029042257682677607746190396363325274261479618562645858588064766320665755573476451332849448766971632796137909189631672618365975708817955433728859860671119929653734717963228798925115051741459211790680926535436809437407108087737880707051984185115093489168116896879403311583427389927237439136565705256974265001598891924045787668257132407789309419066897546295723938133608309599018296361820939693116870803615969979301185739949007410631070768353721066098612089207506016866107766028443368731181935713416255388357257571440891295277647292597703632835257229782611186901730717645770008320061167222600841599823254687622231268884929750154191613520929283589002464281483545110141221879782992616020140758872406768475870908894901228021382613915294315511527872058599199725021200114553236649276058564455655648584338010287350742897557813550367471198603084692483186457763082787290101746213757160542851153449207623312965470343596786364557857684126991868340162060400800231271418125090855858639923500817384378408316896766596950477108993418619680986242972175534486381487860599970702023100869724793824456262545678200191244095742336581407202398085433246443048038906950894979239383005337210448544757968363856679370590071161778939197891395332856252907182121557469250821586642533975761755168129780449705503210449234573001849220348013001091097359213795997811946585876121254765248826960564093532574150461069818419814254031265434087971337776281525213453691050048211663370372680540319132853509369859959497295653282245449596568686540563495346743307533667305036709531585881862676102379766129162300592539157048916661538749771351559802821758186753853726124152993156421518848214423148397724105469759856253262575386724499102162166229890093301610674188014923299561109683878166948751946694782114866281638745305259245376987862219843312057991124334047963231784586297289349324313146892442845280379725999677464253952229715107843171220321923950694505150941525921609584250302265341646276800494112108316852842401003344059759535034002198870953048155176897951667471782476333283167450371889274725493880359358785907139804397152215108249055121672459112016510230008692220400817653550492860474552577075828322342553371590585786755150867209075300958127722206670164832394819067331624731015720828413494902135047254779932458981946877780899705864611638316282592371151575315034985477626689855617819769817274809621969268088223373614815291799471293048676707983807898886895448665136784239068132049729470360377832106639014401133437934521584908866970204057046413603177484414221637927147378145966831732544752825377858034803383375396700171513595740134238554844739003829330228789213279836369660940242553574926739474627275009498868693746279559015806287796602001852299643344477943084008728726559322068341833166900274078154473916288964544406632698292652067840742179786083311511791663491947211164326380831370140691490501123964467854035663667668628013626004242951252668997298335348562330342768635782674340013671888505810164149390871879328830546133175187280904718610476591358608929662110715339476617611951572901133557252823297924413608726393808648437010499278563808182619190229089021935431110626331265248910602684052158353805731024335736554926864473328977600310420040155483430661751676748979175399966728022698301332009978818929416494542170982482636297957503543031979786645662709841014145379273810857971451502443589656818789123465095140200650512462327698010761775914064935873809170222117835418375464808829402941741574810898942604965631217367640680713162122684548135590134795763976236160827252961240202435703312758074486641524914156787953449211183508856885916867791291184045500199287399812422425910165483690596998978425882983501902853708431665304166000907790687080186796033252135278773381406557668675832922125050461668888757160363608095075545728404778715816506130162819718499816143618723127288642127425096549782953246098036050619845027693425074290621220014562928434649098617649616176345941451761022958073658617338867912371389319447918002072448833232603599658512192219843083472158855556255625059175095626325371129908492914183336080607845438876932795910880812737121788557600802624344136727840158359914291987078286198911211167323007921875229479077629690361343342762338484008563239891583155678855700695664990612883406042390438936725625115401254841496142873827882337490262807059059397915034388634426247273119980838603502486082667456863168298659102891910348577251295533276856892004531492419805235356495888871394704456347425927585276732051036040099024256250461551385474196696002352095162327398542272021102649798967501665363842960332731081056601939094542455596175118901652833645808329350160841954134989098134693959162698733561838810909421711073556931601967314849592677618511243024514531289994611168997636513659027932401886792525652044145808215925778697302625030416657732432555014545128533898886943677201567056340584614531376232141472548646755661780514703484556527943991147070314890417971114423630394344789296300972313812353524070839240309660448436158085840345585007477554783534940371323984721992043137942601010448304865328314029103962423370074082722931868905388594134693025717202482429550210700916950779169592794135893992633345771230756766870124843860804796893615386759652403091222946651940513446129064070731752864496570100623141423327651983689076918847213176735628858460763378697363758104450119777943166750675794120183878901624161880365247118317706793764660792171293015125978667997079297904653948133903486987845514323302891054142239376970964353268280204655243418813250266276947371023194652150273819404837729723410177629343796636836308129851811801556787781808310101310555175712678109725050024277155714966535532288960289552709444826509621706701790127016285527926380810250935119336068676011651867053491637782840640206936760526467435978732156854380208446432987186385610806785840924466970849790159150478947774396368942675791492936464565964552234664584431627293250094164858082802901478200041706517151747422790971146931090370124944857556080237717045859994129158232536833131543162419944370960812304440358772666963213877095457492433152059336547047630246069879946273206373247582988051287338400146376106190629046264148552078335651030393823818878935998821364724995159146191902636357641397867802946091653128125624337276989452825169319058684548964125233010630255348259017762318455108029094422580948122458270243265039337032890850075605269230899399915466111000692200309446424921547838556750601679675747436539408224762941879957780655175372321751233209612682651365825589050114116243340746489844248822820800241141005086019985485208863679397143123329497305383693889532178202840979532350998867633387110862587887222071413067965238438886069140821424871452158710871811620958021797978568593987602482805987363265986142016284708642466579855656998832892377528161760051346455432697183246664400176103650048080320150218472892541921876369191942610427951247155970628720349785051093673765084322424640662854957945952669276225465242155693380070388853983576546795000363391928199092057779722295042678333310235384645592729133698187366907161401340752184127528501222722424324239726993447774993251943560052140723189837989501371218993141636964210002434345534264283066266920678410155553616867764921349522774958891947439574379143033755097189175044915866074801687751505715168672801362929129303336297870795119933481192831189501552223620301780848967026522113803341464404837425454971461220803084649401518108480411984538083134748511439555119826388679821539693904631621619009746668888837232568478704430185971222838041725934318263611877269357188873550701915493545605420597221154277902071470066074658232358312096317646300061802003467373577427242965774021821492458194748439061336705044673976829692621270568485782052832431988693634546540803656223866970148706611785753223059241717269960088918330374197409072260546945525140041992902339346466655322230707057126701371351875736815053227987261913710119533598180409945756789159380529423647974305909609129619728850827071399799181888264568573466744053425875314991074574972642273470481658536176824540135959102642131457402444638340381598591470227865094531320185448938243553101314819052150046489066365404016131005776022344422077073373877621755763448178454128444892341480310080646663132452967333439496608955650377398311077373917499989675334933995998717173321948152612072460694279126718616680955266738490001071737419134609304016522125816329246629770559901039110921811730136868476112778722345901667840302958740240133380319720093926078873892607251564105299677624005868852689749569534221151669028492824246297094982414659961246049460829128930189807611062254353958741280372310167194964040464612929870445126094164904819527794549553406258581384659918365373257704617993327604997746616271296139002863745388602376754961883604975704680856300732978377637370057307548919286647111392262182923314636914601980846870150415827189637735104912046896374891010712494644889562628993072294315186196561373640746694513525203242590053918975827529363956659373078840041786023854553930618147027884205219392791707715124025885848336471079419742548029046892110491525118147885537010021457881192887152649710256387294341734042268763035752878895999281595153733255511599320177827482761569967263568269151489128223621252594653857711807444176318158341161936021250332006783716213636626641829521494117621984171240967450807846470832049791344033532325914495643994082152504950487614087499646980810114679781284680173362510918245582862738774226378838715734431174889252265649144661700243040760457484457106777323669015073946332359155529220430541500016250388653617276721700261291977720104531057982274061968801052793800877715351448768123768073985080410769399916661230584192076536049061044274576322610802808246978339396827645503364998330493136751401397290945540919639808686877563581580037042785994269875083319729896830324558483240946400064339315493958725822195284081689270310160224573481484975199570653770795561383891327865522857545565010635477689345726142957288151390335680355580664912750785319909930997640302235338994955469434275861504235805654144179357619921372879883380928336005549150553670197691678074182323117757002841190722587119507527276792655006164143195814367095074862609273851579840485322040531640435311266674019166210494240668488969314128137775139783629199314228763717200889588134169792681267622616265294021542103825350625340616370587846284027594466268711544200282690768012650236142262433612616326539202956331200205741372131637144199599052556853844064351445854173698440680105447846072736241553623269447896752897173738549663424789210612435763724553416046568508173267232458617508702244861480489864569954924440470478405778582886945827540916217654919872934846271684448687335374602142618250990168679210301521337741786929186218817831096344281841659811113416960563365185659198184091427924877565321453965580396904147826021812539333882322342341546556977418340834105826550937279011331380761844100203649021484547272578184069580850792856330561971935160209581901781475260429058770054103313198171442968159194064517535253509902338144064567771096910309993126684628506207882206354346304312978417349686986612291893113082588824247411543578222627507242529389807148005637900700551529659213150831102131935610134938813078521044588497623198061579061866893442506164255611597056594665515760515474737309893584447731578455825457448959807800625843878607794430655405313806501417054369364282787246905372078163904340694325268300249015302160287069739582866975497025359909490122656513660099855509381727686531646688556894893654111654201429643610151211030963186452439665525147374642170972133930193636082822376407798510878124924776366445078937270997226654665064906963637786516582523338072095438158101664789803855892497518503265907112954293845165188713487559249993550047501614765339547507315800881446300091041826631097520397640120710730817900112471643756062944343259271887889398312109878545103796475772656540769992210552366197923494106773179191623261710295322648056808078806914289284473103667477540005196375667495144073108830939145691488180718876777028363094925013240034248740648285006661885161527203791949098283758532082790221561744568027946735700874278161429358501098109694628798618887080716572252956777547953842758697867460903684846941316932912250739126183029957567876157673141331262990778020622627687844048421661616941898568871158323094820111059603620122352472334762502562363246148810259441368805779693847136737758830963819613178861053598291382412443106788438923484817389497843438806713210085141015263776695378370469921589277661945978197873440947816228872141588520818893485320491747822093482517044934940190273038957696892649718872865380186063174208739247830822715235587763070272438090432700663150811927863329523570605294965645217077167948788267683872791116696699077660733365849879763314244065589988021680435322247399241260242750676933211018094768006903857332024348742179740840918391762959933473483684960096068887403784880825758153374324234131950228161899827723746731173433339862089179219756735974463757386742245231354211278716934325643646449294014438058186808252029582790187609103149142709051831397945786425863510812139843130480274381397482246465517776351074731452931086011013587363436797510999686738336069410566065321635569531527138015612266081791948872342697003037362207031247198968932357658921300382415903933864693146117402100390183711815796030846285624308928180450142040037849826733057906500110259280954403808465091663102963036125946434449502761912276857836596394119578746149853940611176291587682398297376792804501920978980563023187045559657483848071841485679092924777652959637332343618359069936655740563039948216017512301528546641481803839682968461007958963266284861476398010791928644477716751223262831564463543447744070334383201430410320220927922827557523113361144803379439904959963552668080583677647774765287213270883927794068044798344626931504838631999833824835886511790472486966081664267691959600183477122318971990388575021270015500142075467889209544086572745713726275203753026724445994704050264606069527616687139877784632045676173547677414803699946689494477603001406678502283373047394208217108056686540590094878024950938981681929177329593474509637945599884692769639659814903152524607792328395497128660454789843015882748610599997210325356440640061115344301811395719769815815370927682741051477749469924370769795724552547848008148091539961006411102081431587412546672782115550999678723374884879107641343286378857958298669754017971139329261025772663284005859998609936842210685374029444101728904188344053523460522297198005241122804738261811510105664497746953547235137120127921022350759334132218589840627465023693777786167987702602381331319656811426597226717852968380362957173495176046816863296621759294172416996376744542009456944786290461083060329025394728344991377417295396342986400715408114927461585027842793586974550924964734894078036110903587794267439608178975926165832783607856341660959628469616430494540636003509781620528488331345946992077299674213703816346527792559209289305832200488696479642668436994927737497945917162973353025022225196768816550897863102021515537358028760963100092384968055444751318885212485006229117628627747755612749535445881005011021703028881245712677759021720928935350215025413738281190955618618578224708401548786604839006384923859116174994532956884946515197602806134965378053590941357818787878575091355410394436051072268435034233316010641158145607641765188142174223955792548136791534704174052843920485604556258437995202194321157797596277167776058195711321214846497973278966547390313854123748972905297897760202711160367969349231640941253439319555923570808833259186278202754789176579617548766937164597105486067822260932173478624310981066614887626035559775791302390887841083150325420469283808473025139602367324224797362973711625329499806063248026214400055121679553332221756722959897999611074301683264227386864264094652239146482810923315392155147088369034745413728453474754332875391071007147563876879818322818929487956587731585516049810759223466339071316208685639904730968806647503705705863449778968769122781694170751861671573246779325028214363707430735438773075167759105584668228230492963121894043770478012096530233164819057748875760088490294895851201723480626339204766033433633140198241873281078322370022679761494789105815585810547358828879928234917915772432472021247253969447011941433966510572489224126867065386005932677597316979847434987787518658308358618589682209846962036521449931419849833245055269304868259810674767109016661583869548178682904535834483012988541436087539540855198076175343477612737841701219143749652677389647883432760043917097013517185139927138883975199119454581158742296396017207038035464474180251818331034706693465493648205740904346052023909928830028018188710049128125432226000859895783327278768073962115985628857543932979725067373330675182104608234465428656826207196018034783898547504252965757345302040782269279809869417300066424779113022357801875646736180069039421738552878963854993694611935614004067014126618495479738621149938641540959861712798785493601031664461335739150299179667585607487792637805479743339385218448221810715448924024685049686923221574954098358731920041313851462816522033157119690434550435154429209234444082833533047030490599186332874046158522175900289276726482646021806679960487867317475380612746933723017536668151355750172638375700023771120930021228905381853446673096154967162203142492559954131627934765069861917380783335700026638835767217948739036959256865475487406789698552284323829459571441764214536216218570015290963179112179087202526687928336785207505949876263037748013505873295835791530251491922061704694643732656021962824892808657316982680330501090636714203913647292582226445364445874664731304118385412702929003095449310814553355903437111629760417479951178056068841556652756936536127424692092170732881671101198953032931921385493518772489391300687765148015798391276608675485586556435271484103554875660240049221193114258415226515297421734064770057559034292839487628063399236438819420919576729817514600818238148167461196121940420193892492621522782757715809074366695358443664779584051619923632036599835492620787536475130754403168013623852230975182389157715313842079528959209202054951173793072543498687683407280746089323900203205390682937605340214417684989968488671904257518511026474349540341318166063926230030751383074967945226645415045495560443668805926032051474909289044431880589275202664607329450916238365258838401606183127930538752580726798114168126364787936088654002098689818912817490717653389252171096548818669018146498194156375843059871313522761811057861432887960095181932701986399942518394782754151041849563864659203861301215883153582515534030807493372544509219775607736642135164707103627381579257144104987629381312080859577220533310752747847516236831996936355284295618662689146811030407932494991997073868464212102923044223516775872083758276109074132057254895923618568059359264215554112455924680468015796705609000240170799215321796964427426682832662034076860512363410155687905944668828543566532841770967110177879124775450101829000709058164171051859877678416941877182911795546270446100822669598640663494165929497971015867040335958477293169543682907614661561848970997614605380466297048582406655309012642363990982356745788543385224388267986508116053141348591444101814191766904124358072807401746765945465049541547734361759504055534341819201263380981232462325875895074028819822156064968966172475893973061933235609721534037078662447078402491796772028585396657657381976008200131212057423883901706642925735792910919363568248153178657999555236279320453284507837022298082795202952491174805957713024813077551184029903894935367750369381565638322156326193903315159650579213955372305140954004523330681609458730749059330623755642842954640237493335999439962295363074199993858835545332310016387837123717882636806743092773314344578886772725185571498705990445856472022028995057121295759816766788207924462762382040340135139355429341533626329524642676449446966201050318263770213676849379730037545654579327240673280326688780609986479440189122366791954368194866416237087577458006221543083924201292966739820460547721822054884858715358494645586429826252782756928363809119560381295336026146248602734058806486129316203727870566565675072172561964648423875353082271073673855542532088058755285546862819931303533504579303214232762732839645320111877326355104496337378081860915342073135633910787494741395674057016483261238458415904103701359296776160896703497303402918243103537563650017137077142613506490620348364955289523346286429821886276657571697800317201880729876244484564986149142412525041757120480590564093562695010137435471001661266713190902304141216950908344498642020788782606832466729464761119833049127665319040147341270649328631516435170856695409816430832496320036467393679882979856360689836166067807550935681784560982930514426724219981576448733638665001210217381116384381472631252817119380287836251467816876233474496530273528249532871310770338547334962123849253443577999949019022297316494357835445268000583087298076422733835422297496355974936524535064609946206173219485643349723225203243658445419095364830132037640513858981195420531105994110758768772499961049117168893347982657538739063126845655924940811495319444822642358854002031605942393551887540118423216167828312619226265417276572649643963541784103074635771303877869455688208432426051940919401861307867934193735702423087854489423583808893434911677305175950488988499511799047969134779271993405821576796162837463846601965935778253382638826485427002970317730097805944132936648121201086407982566655684211695908941392205671941478020740755879691576265639491033800696419572163397368311208626467958289056710718394091677281151730321312479510831245259668871476562819314012972817083032573424239552460939299656548638947587688143222343149302192946594621041015333391908214175986277676842339972860386432160747582658242969766041276849488237380677122811301730658058369660039456534743209034548678107580058906121623944814862637749623809071566182810025269570570825834037577813024751833658827280154996426859111626022008493412517579008506084597062215943967264737694815500476664283349691917704742554911511422261175251893621281806655882859704228434982713597535524452296287327095459403712360530886329131935877771532001121763479461963032344923527471243773542314526980665496295592772700843333178448319009371130293187487854349502277238319363596436781489825903812522822670044634432440521857694505665037606740245721983864836591509435430022701460965253834981364459805467883776305997863604204257413779264981360077320382978197839333610056741500587218913523188789257785252934192776760608502502787833136023383426716996774703216564257457719112475941976090154320107731159510076876359243199541242888840364381858736108964011227041504603792924180539717455695324370350002004617021549326441606210528388165074038923249767143417407676106464723636063002455853838281372206991523068107087662828600895105598195030886295511262928155001200910829029506113024678961755518469377409139754510496264957943524590775650281711635373334568221665320428477985515580152596361601294264068203190456495420177622743443293385152719337879141138322360555778366328039382577137876526884026465767796040200221597283438050849684688891139281975211101629901356002203548034781719171955485896026008992130525254712284266666232084949391328000665317339149525974762158706420240009625526588905766014321500194331503457717378444109107443763709986182217925804435846665800548871458594980309559109981794854159649903447729498899664333131925970644197974601235206241236400756658352736351896159315278309795028242403671065828838101951602274739222133460377861576632662315872522101388233643848453616223533513007009554143744755847013603152082951830883485821080234300194877377717517178860364162496409118106711688138813073950171215844566456237780970676589308334123568148478281568670651016870341821740760681287361682272050553487922121891658951046599252647550382269238757406334180120937229664052897153126120564091239986851971136300761388234553500944149225629336564327265210818147015571295358426646012012267974492276625469097263089378884639508834911645708918527187755126685902844234332439420475751050265849192935253897219622537683667978946057857562964666166271357329169986181457401140087105734441239781711103441375362061301337436230254513596725838145990729704300716011231128473203068559454097929331829620596058647475049380620077261819295602779229221743492190907125092413321038734984512644095564706578647783365125017627796824777788185599747503682209715055001665223720958846033927280450647035998030393830116364388511238189203264530405727040138521045951835155588367737439781404856782957162319164099258497578095858137019618279456740961497961701795409225253891738376106897261298482952978752348568545384769319204487371904185943719212192427233636749768990879529128275166379979715810961807651922670059381625114274182398839015053047410888732432380004830344823266585909405703015467982409712694845952319253829816809850718095324930913325236968481027075690145921121324459087708144916823150034404878619180466988110600787414331750658567714275890817014642790555569233077048269836492128785931329796559637760631603174273697745687107240783495391535520853579603260927294862763716942598758174036177056809463025694163736146132498986372117419293950391675025943468749714458883774200708830743473394481041141061304667633284203683783203865554525214878126184619707852077920324009326396746817600218918834851713500010645821751461059680995057147315900026386383737190347899623838289663142836710124775293419060035539762452643418856073811963990564947813022377050702738526252755036601999169734935707017720812048283306314301721594942865529623181660674028391496324437305202997140589333273465074946505746787548275300598624657695904998095505873246605765833196694087112323632493589806788057889426300582276885953583982541178714548667902320330597503092416174292593909241404020973528591058553107438593816321922131925741242188559034793553578991262195090557578742362077152784046980153400125840514915083086441024778970535165305102749933207110835908330501109489980059165336856839087528296450012690970867624009368462498405717192623292419914985655302317474478850584962701951349918161325856846092440799492450835316949479817733048921377032650943465530091489783320480069195538803888637730580091433896193606233855892170321442995794721982372100199096347670832709248367026111199102130368288129866910311858647070472703040822118901473973395351807377844720993789273147516098209542412508015690396360588489853845785120872484429546247117483018866578934973219061324740943584453103734042385046196431141697136534133010070121602992698088174306483101527101945665909484339587249236161921692205920349067607195448915762636747213674884372005487048995366269907257521597191381494473070065921741572140721155968125394042669432462900723677312662663835935281126995304817916037626385734915985145921336653112084115580997057468722594443262869974783300355859494435253223431843856487099753538819274895928590423449343026515204507989600878029686604045299289925974785582986167776785566374612546845264925420449898233868732148292413699918979847727258637302646331206421138811418696823407664281144573576412528906770509569715523132067390630054769187355355761452736897588961097954171304631715297256256693777709468564635851109683165251572908087617447080613318385163730356137993797136882128069334310391794984996221511843073359584124774753182643125283967322056008997832193950059054096633857805349044827746096394614084254782619694507430975482857656843496719124109469543647373169001075651400379995934209800321300797198474407318638245027961159523820406942639249922880524950289087193153834271937550742663259989467565419209716515321527254807699017077367627038536727211682266983249842311111060613950292798709199654556613028350503387356409597784369997701863390036051833950937863838591575979145570151098106529315561782444604868412081232173501540977605070836115925246368961634174585050570013252161745294931504417738217411952465712161713118247055984055769315956842481659239265087013978679816560951580534298732038487666442583078592478908261319262527939278278363297587095679457327275746831763730869327985155216994793382447915075595919730998523117205583564067717467720542938875966916222354427436489015775555330020922568664130266281980737744141095153586319280125674641854712562711223521435013117240197478471512484862246800018621163971505244821192273945145978142520506339945672208607667957054697946244209446689481281101538192109376524886726519296989077389758861591786493779701027004048879987562212452233066427634523422127298917586421019752478214985533425618401098633063181893563848869988281293972209490465231708578585137659256101780774348807579275398285826997486225826646738672585796655046911681936017586739768331019524953780476396479404417732311114980425862801639372050260792856602288021054692100630458074311780472013354723116588671782578418602426423445913584780491920203221631686840875597900499420014043935038864876908148664805827498520100556240595199588751266577083419159786861290893467343782524274058035344277472441717061778761653682928915209403592284426698983262834465632448481110365557255141159537216208226386306723574139897371542587382172297663013839383281470005400623293072793815946282148373852516529159508817243207531680075951833867220084924583871773211095401199364141176000657424643349417785766633376262132496333438576799983642095571276071258546884695116776881726140603378906113822656793775216411874758329832750324868547686143033969665876573643416399371320271096866785475142589994734553966285456985704773656635884333814777436781194748076221778357068136090006980463689235271749667303948575901797343141065193395046285515740171835658492219227014810680169019243128155899782037330222101034073102509580661768223719664180122710015091671188142397411920050459539751981731345022665926696048277662068457777787522737196582707338008365315168856721480833479692643344204682096734525578964512052514888086614753995759319209631161335053547263044501067588720420719994430116413094842617748742549313473300437930420933763226885345125735127162969237912942465717007597421097050051784598890139527404282748521300535468835519460371773255030123406728117220535488511287830015730681137386740968859820318299315707026308968961737898972524109507696361626164899229916346106507855835819899595205938089464465085545802364888134287351894955920767445436995025731390446136182142571998511041840286481758193717804493704931744480904518642542867774586908848248856856719908298778620742408571209942292369041802106722131144435548623533241659381964387100307344934644655823024283849689288006685777538035114273188261702936256456143309844760533029633441058868438892202084138718381537887508701572590825046876864828216943885176919328719488069777621978720599353067758834455247148778004793194246035612823059399488713236196216959616381402854211203307610894506683959385961117441270875627510912720111315893651042887451715578094793969624715231673141442259381678800629497342462032585295089731900842963197830349185591589202701454090097382116549725891940750602860863483371363879790253453630740449562951205798506568697871188597966710353009938426104672734650760182822299452002608396222665115275506165762372900913077801247792424312073870561966623486621615739625884451172183916167388878423664560552960713072699716482706116830049255595506872899964650818115712929895315704397444345836346497210374019964302899486640579901598621434925728030011481065291214330900863375391828974517604071689889840542142324225134146261757129608302942206970481888372129812254697670771027114446585338515048391958653288492046064032628877899734045361347938620476359377773235212995853949979089956618558600036577259952561901739643279529285827815393703092722489638858850567714437679182842978004213363000528171721841761490226665902335873709881513314635132483777156852433404639572124702283730799065862877665758574788250203223079971599445752619994916552983165204817757100114176607771433454239522423491018425678132477116402253420898890011356859069870188692893949670403354139029150656262620097701878198446049967048271249543437568891758360152939333110664012692979770831805586445211461005414214905533500792112906484484413171685802388387118363023558159193860943561044256669422835087336687338221758837551385330085400578777315339806980372719308541437358724951712578538442348926837383399649054628529942712501992371161879885714163426949104865274273225407561537518972049195039014745293915736184831843118824781136586181862102925604863538055453145451403444703362534963160109264457964674943632174115891638476383112419324124709582183287645213418333883626048054376000647675459579969895714282795103653928635209789826698999257187830490230305358925593288131958167424285044785519523170390342843610805736028755201825779920732808077889772543791746729455996312025258769440331364090790129224659902647393047556179846115281376042003505103814043644949026278114743349894538089193298448596292111121869147969137700799472284266393446028077316238744012052437445406630575121925159676957617862917308850937962799038356630036519664962945089198444741503157137325578564065912821200642264275614586624783596171501803877103754044419031973307818188278240468457200414431784518427201505488260734971368589669776755420749486833879355840239252736276322469891480042432292701540127767276309414572331658404427172529286920218056144371928457305366485311694508900239717836379866166371475893960139974272053786829921812416478602802544762288205045554349636663877006260662748387573329141804282213771408989082649021461834480478453462909005676025099120800174254776245717041290969549340242503831231351030047127989174648709956471076141635188871642522046738231870562909707724780481712886811341718420660037320460024239451306322086209325936587752463663503832107234737035046891889452877196488887912543211969905170554078313714083635117778825777114271397754410776127865491971502393169903216252419455487171922902398148674324902153035489276606858185737974209513267747750054528135288661886690035354413843392192105002392259974989562325035073134772487125099715785019949242428921785722932939829233987168238521068022785677120148331350706148885293718985156304549733116314950036138430711947835843125317230949790888866082420328315244201618387207008496790685018866918292941031221304250443336630245851545452299114653970545842026179919200188480210492976730965712291086064554774716125585375778417584758937559609969895207844102467190910760594229327453493638558647141997423483584992021191044403597291254782274357615793109972560555936660800515091012381627397275969881985605660896545472324508549865244337768184127146728160105509976285410063921967222812700428815354512060931566486612372706830022434051555995918654736360420147733461959188143437275219962796002115611534854433088829024191280974263348243781319695006347988978400128860782385271620852734545419086962768718538032671040821868785923539723944448838735812342340045950240804390936771202776028126374037829069648785758438988228159609024759873403357360722403112678463146819455970425025269212176520382747753969376110851039732762035933654788126758278329455413972859598584355627472858554755534403118637283238627411257734136092537356941442728104609992473640802472160593488263711511379634403989872563513330023350524469477065765993828828431253375107893498659015789587960267911166750822315606609409620856637186251714658869452679515701508218380100266753725045188000451337213331868782349282442886553623657849099881492427091647756123682437907915605081545168785025350249856146608744807314316892594719440332299632749820046766588607126466264889891160076929047303313690872117505735054034660714231248090521726448105376456484585644220498796033812257101023677505493612215491838092577436204871422873386759114573119930402068370791763780445978471326297154348941072983108420578375175264305383498521291647584776425959224468279079368133278763448115499080411648327415826906665470609949178884193695434017287603105185126487272612387181821313679587479905479763095908422233598959634384392007095991178206319610596300352902531991644114598228769048895905582374426646288992072682215759620964402126646517329153229252115352043954760627336421978745519242661027373683356507576569366099915859554611632739108879748432241428175648336521662876499518291989449917230866005904468902688358541578979178415348306158928451602598432612131349052120379935031654047706932622299835514938732140244316537646315161764178237699416004162577913277908038353401680285151372812787469384762432495566023627422060272118202599435317803694566965003761832846452749503447729360331444992486765495737317576791494920704114666373062655742259994520813699029268159808861000815965523648867685766676900179501929838852848845983106899139336474199543119818277488268690498655864009319746880337641410749271559201670971511586613740705899370515786734360128942667134319625435407250981627362834160481379884020985364181162796611049681527724021517988272176593829448516691614369480159210107121179755282792841366351823785051430879230591656819323768826420107763945619073542468482921540028115105787398233700180302976051505782922960411634253189831119064434251057102643440496338928221898994941113289334294176300905108502782200652185967331678995247450462240382734994949074441915837362695206956704013516605754758994997525987796389684746267400240469370872086958675955446980197236537780309740944260001790161107366185850569059652168647884867604223338498238635102477660348033398663164464078411394243833699053207551858006676363080354267852014304709082309563041966922105779885745619774870241475388881625926450016562024860098175410794584856147288339264458643174965389468917986453121896219517175365169786399697919463917792764636108695190541311766767596377842448026889292932505323055109140293245293146028938215888038099169588612434006431108417072293432239000506941824504670417123731014212014136295840493839155977091474946625941270013564630222808934632612135636875042383686202504368704897669495425024606942339560410386534657653315303777454213366211034689447566378510325343291638599338363101622503660015644509256824523046096399222787598696876846743980851912917307746792441763783327181208187050060705232152620826764425180142912533193620734391315234085535738099459997513377614433248941468865354246981100608640156373667788048400484577313778325314065812723308855974711141832215221604985990873679448628801480590212928308692044789882207812697873074181403541962730079477439143357827419374128167904831623642858939612307520439989772552608038287099531521281137875022283282423347977094385309957807752475290628117423208278876076888634116682668664903868575298130097881978965047341055002520499234735972091213183735631946691508118470064448001999582987834602208923093832115665596561530512882388542710597954711554580695900942648973370067624926280511771114898274891464051824699487011067030718154407547163667551974355806264566663073216279845903209741064768919319373331171740831026720111837358982320114449742505254119586424136859175539141047280702200836201987732661852207526206471145404860495433611286998594402680448165433332887758753156911081581523481174246348678572430293909336550656486472290804788834288324859793556659508207358837801345171401981945623588092094173911578410127004451065868336231823380268816700837494540850853919455759732225149394033464525650352830050514660594240935798581856073129361609513196026586665013060555604126673726384526345011007592549745127160775268796729898784096597455779206937907343092995714613708478736678531263807167878337791381351056487814010617634293051422327350669721677380169122420766576439018809698698830759872018962264903603965034675109068249788578937621588834404810892894018597267506792673966881378844924868404996613069265239301472413637382493206855309614981294977888854163482412934587572316684892459800705829589636518562033401710651827100403025388546751882122485007221409546164858357962011572603722919339129275654557614057621499313726371158324467516064053186893352555633697340159359556919370981940917637456970003131976513310259203247008224378044230181304237739902322645896534603629842005532781010395133856532449194017349632851840279150169093445062876198806631395103270947821100844781990620544577129038580555958051633824230581383141170699431469329396837193655858770648386147988327414530316968369338919388653779918782423394731679969057374979063249279143629512238053579024351561802996024897981705679440644887208166948632940555157215099752466191639445541281938418189421694683712918528423407967146717123020700485005626026403288623222672916407231932160900129915853528552176703072245835796978578103375201575095607616929149278032407179478362624933898801765945982480223917917515671501669659331876538157070350629639646437479013706333289495062857477091635294884187467358546126710129098204948946743543344409520754528613568296634158655970198734929603362314007383617175886215313418039330237608949251558068298115865939073266036988222244577128303105327541948555889560843744238220076385127838228798208995746373714437036756431918623097841414488437356777394483770175746453083503803205154363271750445431077094880079643730969016843386621843440041152216267094864398686651822989120517466955668587150024252399214750178709841736668521035152720019803291396142595817074040202504960038286373824028010887665856784509426496598026511866013959654491782769337713626579514210063553226787058901886998434322276431112491260376661749583631630596719701202888882998995190508020389688841290209052944349390786505079211815212187641847981483209877876370940939686710037549355513952302067927213579017128154164793224243392650281183946556152844152269281976268748311422437626272607457061220145254289969436103264683589748917628286802315920065308720951736047290520069313752650331721367589440856556186632856062407623964744081619477820932781665867344359171791608094497183167724971438374290634015421576152751627790645561532742775729475098159622879421893260094952850727762993158778568747893011889099142271104903405439333944001879967107810083256449150318228561530524715408338456420679426890093119807529981079738861998381183435574769528431089634619568872463042643519117006871835275555034651394018569000989276223768022232643894416139680837712389187975106613934301863466739254902376887880547750024455749117947377653027632689231723139990355673963220002903221317734353245422574970331238575635958968727080207839082951954152928965125862776696755782133785720786665050586692530881264934352830796655050779124228569751038741456379925821598458209871213349958673825153740252566609165163006443040386756216099407182832782749370708465845442072917261706925241713579889735441393997362490358384166524105569460941697322961944075703200145828898230873105897751712389308455182076023827967424397455799522734827912590276241218011494632706947196718974448295858529333464918166008557279305176096695780401834730048181835111961560805108253102618825640710486647337675298881411088622070946129950741347492292721991030932719805991363381062694861822088434991990065153107329934549688186707618663554790509764457499037260015948525979171910246502432082363800260025707217008719596068437808252553552108571850028797343298268812836178333013261420037924114954416985354986417433048385961480187822926977313885811061174579290308627921771576217261150875383244095839734153241300360294252397927233182584460524672785320333110490118471317313092653280091172258595778960456468221057657990802803221550391215991139383202575580126406664879366873603215304884262587307065354556022222495827838463091966453210080514334908663639859447191525494262260110088051908035390355533778521112760190976243913640993468346889239047438537341544048901227792939759443074366483780357893420221712943473474029324957941295147559175498654175442365765993779880690083813731194581814607626098789992119959462700393205619823576550415724092398748736669524605956579167773025001135391089986428891257626103144043143544516730845079215056111560443749733604740541844809633353482395298628391085788451508034888418361890432686232737159307835570092673421655981525002574152114908296139416468823015414361051775452874903185721307368840848355609479473193639655748947413113272674378629414552602465640800932848144862716617412395592194706853998238492182092671695230224690624453705704032576585850991692713473493617832031459744888729874906240217796296778386677438968018745871350931808138799190531137535765320896935478719207349229396766061406611729391761506366227751682039384693179606010571869492107159561504784767621210948170157406936502467867842138526200436042109075455584083201711810861203976996952275693389134818452590797234764009495174409493640207742733321306811379146982694321505762596131663788323824403789103317159773693409835453574235045625054867201013407757649214712715751385166224799944550747722656823323174737639313403249023319660579287497050283005837508031140995924120201966000558357474672255894973245903787663442002784923948291534469117122670159511917715739394854337976990231302521516094187011062324260114465337543589634299881232194177189079260766788351945667188538163660014102555534933193167993125797945102235904982712417349475090645487879724363770487953555136842042041370195197973712402114715967382241918288560100173247225559379331348545838124736610474495949818949030183982913179246384843255954144623845149512825687311800693894091917142118715449295304979799551243759694850018926867946846853304939700433732726343719739342009366166107362321774085995014014512753917118702060044957944830597007154758311775940618056753709616159921688316829099136280077958505892143999506793816331323650755972599855367720529234222749192248069970992695181968006184602345385506893011616043002562720141500638814617777500506677265317518440157459820701646700696851417686271154352454906415450777441895804625641910675210374325632316620045179846793871005176927352077060469253550902832237848477265870098582599484843546965171938673452060295012847670718051033624165184225318039958627219489229360607665775071598678042879741091059868146929668813118131181164683471882982190918357391348449474996146875469417799504217496269951440506159678147046429936743771087444127366083039485054811628009733773456107241369307277989080310055911565460093736217136215616513766085763017877433048336380031217869206148556614428581293920464026727690060838149324922674608281326956437273974919216191046501514109160543049996468332985376638509251825356938477279947702197879955850305942529935420731335680270415243390728387087122330037881556125852916270690670834468601599987223245297544525172936275062368064267737492661558491039172142037213997991208142339641748363810301257704187369044994380720004986777007929270974250554234970600908086322513470106388289556526794689369408375640148805875571636518092044818971575342184837783488865596874132075936222134639627378254754892399804539297120653322798073795684461967627500396480780488722697988791528493845853622846271982581073841690686907381824375686548959064856382372237243089193157759317129375565080835253439788138213545074930072959006454047500125801426518144438302936306754828660766648176923431123181140991259981231639985225991547748690030186769221486696533075097802454941804932529877654010847622053718957521101052415061785807667368078984274578878099979086002173168308337693340418002064886074895940054410152541025369175717794817846582436892128982588293811578633730871614715649642833801393610445024209050277575736117384714696567111890798318380721451672626761573532982282246437065810170746606747593159817554978570806405538619776414805862151566548580814144060928325881926068862954491525074418920125490003730034319193285687152453437315687169042194182432052813235191730983498298549457695507759938875846522058907103082483142691643400877533916877810995870101772456206032603499759389576985002706135752760359550559753685644713643852745321219026144528825008327128974530344271935307588360309779222569498787205681122475858153904010366432203132568821806342002498807657624753928765010300903428014020752113426439504369591396196017048342202037455696430412146422278378255828229687956813724692031145174804101622700426911909723283511099271123426545893297597640665203593301001329833055503334834113927778778199746923887201337459125989774237108520462652346181922377412133943704679258867839608232204412995131614348547659276478131687808497982586639441851395800271256553087167694028181305301667700645946932557698998685343983644128422134117041695541680310953159136347026569743208507051386612099140887486028475259887427051112335837812100643892635247915549661584205183313843355236798747333285650094971720282320412148229997626504537524442383978722880424740775686723311707932743218035109926948533129397519893004641301363753333807909853888537195575999582321335809276709526187528835681389961428876315709447430854002449960524762706229352192622017221524078749411565728034643972177252951825865058775086977880597615096029452045258202170682834648492721391740382471186931262214176398695599262604357229938160432206195934368082427062547845669663456660859370724181358779862973046605767269305336040170916692599132049670467102103050277745195677634768401386877253126035118915277142405331019987220779769062125891306403191925630281181708128200957996644924410425164431762352375599951663734973280255532528630431164371123351597540157035336968820670890779739804750693724915098412347829642045162308245408210733363406197435362112976773612369078997574529379391702355591656651370685843753173352996031009354782128555775925409089834033923837462417965144378114973799951351644927180626161946346177365285329570566120753359903860239458095989512722427128739368985565660169850768632844950756981592869218670525145137093161424644322750289090164712778888644987170591089537670381471185125511858966323399526734139036627182240019126395055216868164029543061921779463603214096651356656277445331463554812210069698690980297678253411163203656187995021594798853396869164135232563783740387554838962530980793061894857864102583343749928508752216360771681177190367308104830688636267462194023155184602797235094949912830029495302951723518514246305237224111155328821141314283535608473276828826272749743482944246237392569608682763922923118236146209510489967220498323257755242145706035430007487770309323588679594227898218058320505338139903105346422990787393357249327847773891165269228627293985579063154989163770275332788811155932333149665321894394753709194187049066035044529837257839585964675845593837274833685762211979963633615124343704630750309612666471970596712066089101557285278983209074670019265200973529305526147863224117648305845476640420343508316616216598662844754871524639899368209207627984164584506102951699497130591794392136962489777602597613635234865126910385292245115164214475043099352279931306620174013098461924839510723508670269985271923056261620045406831432338508408512064984214057589341184100075130920013531473748417764775601898696060285662142628201218875432295988347266115708105235903449191208195854041988164544177141867833825218489828594520313322574420513762344125175648570211098535374119192205798754387259857708617026155135629694703399402598325314624643381930323475131130832965717604397732101277982627624807953108170076603094238578830161996568001151704212168993586683224833868949652711928193800895933846373744633110851248377993019414324686404892529673003827847527502544590561173920643995036960155370638650549942809986579566663231055133984579211920227700688771166560658987509503180183520691601396024580245252152190392511470036177928588449119978829877503962813406732887553752113297458478414179766388555006811580883683096628303461804279173914059319791763521982871208183172017167534644583404534821651587745646075485348994219498713447473741453994833295087273118085201821192027445612842141889078154481415827937594505547129090678714033820956440328322213678607526444956433270972388326242490738850654498452164093714830999897189627258983922660879227939550644904870034181775707750904653943411545739008183922276514950131682850678892984460442010376208892634810901220668376881983643076518422678910155513346382473034062630353273854998591282248566813144963448507737060443555310834819973905971629600685887357449034726408466064435789793607396828974602446476072519541062161846198913771163752812082550096250152782838153505358557013108175927364948693093259765663471252538376667827335304846173951191825244145850559828967418430779800213674565352666363663938149200850173621466603393364721110496743254520406401117743557478883961118012466685151731666811856059535079677792559299268104148112567142528856976151357409970729818196978489687258666269679453219336730200636742849966199398531444159445019769947920004625234072992116413371145147462420024166180838764505125886974621629665875335503953689401524357214115021040591641818535856746889218250105138314191750427550259957110657405132818456579578826400734610311495072881677375105028677490347874081016793299759159080714288267097971578098852208644090361680329887986684673195860301581402247967074404634738836085395277006224981366057467098991667926973493337999577735385225617647026241725005543223951442277410565223932528972753909954674344160793726196470749878118712365406052399871177212000604311194477806896731223599628267901767284627175570955749154097459449018571553650701996640426668833355695954505246501643592225213947180393818689215910300735769340866013520492945984790677336398580891621378119706626196072225771712087545150354272022968801387359619602314179617383796512509394212276811924256532130963573584843025594432798765488636524545883799541831957433320183609382546993577740845414288931493278665144192462820538678340868346496836399335325005784453691563843443138226112097684268974263700179740796146242844653104694114875119101063155517978829694650875025212872606996308593625008447487433466383574427724165816705986997689407970685687270533065061955252183560028218885835679466660209210055483187706874190570330268963152088442799383916350820491775078966365936547900277811527187503094761081612644234077792938725775216834594967609803902676287353649277068799009636889651718866042915248998392094358994792707309886529271436691770276210978172758977326459472033538761573778947906317444328185759227278619972591472834702792784236955165552185834235326587079293146575500453636892157629336775397533880277246274749673393083700459774912928145051479220620537480111613587005611085643402575379796767292266206479953037338916282353285842101263760465868856460418441863364241205728921924255514677062422099032716396914618889998352868923569123904042254086998474385249758190505215694159066770174011867317847094670621266489486201757021647534277123958023250171718164578592398276731519165208634838178617600049870436517002617452113814539407705470368873504509898679924435606848367305043214769737169148592458559232424069989817656899854591070334731127029423278733515288776414278022917088218146189278114002444023754934388171232456439664189614327639795317894776430339861013993790518852819930204874702030594074669405809818393990824172712485875116908412042659015165870368160739889251726440441305198092611843228699744585027160211702493691139952780649335435129925276959672852702879689119077494292206341251925157321968799012326955673003485148525327109073629964195634528076701451231562965938097547321032308426649011547249868782567455532921509639673376034702443457652417928294067702575056433126325367702572428325406463932213008110268706993130535388659451294535259761773436845174261833575534709851934790763251054731439961993288858474402052239569395527999542418449489750358951423009832763767318219786043819204774147291987807405154097218366285628330109521255558463165926151482877153843360927674578373911024998634733454620232849270142033679344801698517482418235360027770879061652147213722604023491635606089758342543446644706409017416027138669879692669747731262957650919879476532119112084225271282980248494368619465727326203340040358631570054347620688827122784797655687497528127857840218889884952717616045787461907399505527780877133042785954598196366629633495607308254501156876556042197077203232708618258967148197271991871801196456746706797860879710453024575049976326075245585582554819502318765082598774030511342581801790711246427039222976676387732732193395633224082352971503034448370974219966810546812487037101310484159983582614406794402881538372179517915913844006219410238017784614631826845443601097666158089806798481516502139290398711731987301538273810236105273678559527623332188934522163209071459442696488066090559566370717640730436607379955969474178584573671565113244999658502462645178368805286366821332116275200344624832352430400844950312687604213755457696635009729077382306732421553829384563653061172271029318555793709441428603552165960236182879101144954319342805615847026508776191394688023881208369783133039415334440120015304054924205075222121138028183810924823999681127666513217162129079147673236304369346125607084854912053090557393803215753152581410090378259168717979700040689385519722694087179080678992636185289094219217181392462665971570032333913297518693163215898140928886023655843746250366205999314793309336237867869099236769088893004447706208838524509935351304268496620948091023674381822432846957227372805755580311708871203774900937454376459790819083407893995595214994562645704802066387633029569575696680776815895006945359775473086346031709304247864815223091541437418936328119550598976770498307603974600587041743746174067908696997082524255539517791176866456073712229121711084994357238901664072191448568886866278017566737407978772912248702296143862026410793076875847277684896606236741158971785811891846908709897525723849136899262594037893575576403741833365383075158878208246338428556099435781310445698860681443528468606908542926975594760133663684512580443801017191036476548865256854801857099649991530982428835352681416002787905661125648672655883029767184104607613995659653143619424392107048914094306743250556538020953493045070658123928076233965509764181482715680391181408388209258162220208173189508374786908905425439449350969267388685772526990029553113585394873785907414598703276107396977639322615230580178884189870909751407612911567842378822592451659937146322671369832438302396940409502024245206853212137306853515336940314875524850062234112467333010150520015093618598057952737636332227555998327600131488836531557093876233143990625841812233307276922139838472334082079440411222483161115277333895723594056933320688195839251564240030202196518650273557110743842113499403015540319620016367531628432982337252503326414266542211917706115945033796554118994465055181836250200548323487812015496711254272687007603097888806911772176612395383120802798996750319129203328268768611247887294380877739734184471321221651391630995672066837426852747214953479040597279025156313126799849508888669508570503229293351013699706049060653349401625926421705868499626333461432568461812205783190890622829412331401295422625331954613055555374286926551751135603906101025674300104775014559557339149613580380993864499084908090134256096386098811419949592940805735869936883463885647012687306345903428641100519818145694973939158649062414737911144315057099660662192008044990054148423755208551704139929726645658964631727458225516144082778455577934621953589594652533377987628677588428871680501621637986483559841540742248934827027634785926470821690126269741651664156921400502803162656904867806660564327716363454095010368513061838549554917219464900706670984984500410150503287988965837296186147124763480377187812935682681692104049001820921019088165109731505388456562571660573638502824805477009871818280235361286245244233992394216828200579769025461890917250127717167945322690317109252764727952550876908897375800804839254692564799607133799626127233944951560364189250580740878237720242082019347337261998037093103787335299399482243850294820574976486197507128682030193879630542506407361614360875747343973050640930948625631244518192863731572400430238824505006234262973936580427623797757555151943370629349191654929219003858098950565695929514325454634970857742949078920972364479344656166932014332245576591511970732187980845166753899309031049170652508872065348783165381132923947023782594140455899193962320999736556015411608504665528345312636261265728082227245201953257617954070631901754910031888581319731089642161510791653117104913824797156459903388791602309085936808427583372136467986738385025333834168898183447936358051780475723538859756396313714943957232766451597011811338137963946674823692888465050305815259710400226270085948535968761165011275064935338946995098718222371124137350469893425545675952748770463936164706335584885387029217933413703913799463664580955577212385980583073344053698540410898856112926913658819579416262358465020824516161511304307477646180275210690997235323162967486908310759656143359128965965805719882086721417969560846427356116768903558280547396398854398907269249248714976620843432279113761822184179492245252138020244409221294579853806588548292407601562087465414302797037353184775171318663784592125327341974894595332377865862363052677269172801738292483791564096492117650946412450718958703262316667700403957875969054545656083315281371049786919794403425801782793644588964747763210253349231499681796235600361942797005502006354401740247043204302129765215128160640581432634258745655960232345024267896031801386545327413405596132539082641497350167393295247242805437987609682305784002366057419621282392352707635623899042641767545383142650468870309942458131054330846310978413078048869335614901642730180921477459692041114492284678392718202566005487835744963648848206673434918904836702124870743835638410481208925244072605465098914118161212351919413642280343539917650964867054498080962305884218476194051272403632167791594605128081620744511734925715076641447545744169414361118803162524381267159447684405698447668750756857130464455504917477372010426307444955576608640377412310533980050064017588789955425409415020128713625900598146801206563471797498203086559057394043813087231067724126619303636428580569469678877953152150272761137980483710974664376223275948714875734499504317583912340710288055603619547577437538235167540321499896127357008665862152341883861794569402540383804615868314191721964169612757795777775614201999891513650085576910896919623829280284244440537528596710808107164445626835869379237333981877578359429760731040304633450968715740838372235972091728530765089632501005985641295895349053761905143515030683766954069162012445273898642557026262294348249350007749731339494907350496395936533412454340009496957456732512112764659218311159749778925040863008919768492526497156383692119682973604668948723987326524862887066280909904115175514279189078386997232150011870006936763210495534550002684998150290817888049408793863847874285179794545673073254316018816729344420273435446716276255421712628989094449163322455240019138841166224029439484940737829010534781073155685630975515449736505084313949871232804597732979551454034628037145515287251374491470261208039384893724605481148969794272280782350992362163137770400430926361660939734688443140191477316308810417901152102872386410376285197718814416853946678579781354122239786938765949859114717134990568868723742964077492439339971295871714941218047915837275157132128787870376232899536359656050821469375333764486042665630700008790939691087881748393591105790602567005761495092418758516382273630048728515292124846152662157368942961609168849780020888173364418156339640642213344688799737443630633965256698456913691355264882857004006854050826463618926143204294709192883972320382466024287175821109542742121341795458477101905974998211013196737480714424730585555884291207080450073712457617274188051958253949142660367159912333774559634121212864657903970520568359873010735300854845489890154690258243561888690401311905557929145779602909313344686632276091977042454335061666064081957924400834970242350842732190037029762479279566029102950686223148344489776062499733915363441587018990660485226734045308581801491633361078821792457841083990600053118823854911638811760965967440894156125342618410015898225367721699087677453631364340901894025411933365735234263857140066582395941179743145568885410439162011122313514983869097493215915104362530784752939387444828895687073470291604133667396782293133162932141491145594898842124720520426065879237063295765572289684569933100034828177579981731084387501185902769459947798787333526530073779913393736533355969120962424337204593867145303004091523266118705986003496645455034885295858445402776048555421287106547970637073718856160502401821025548958742716340329066956949954681014301894345509611080591495775667991359500479427153096264836439958343993964323602326743484512553902387080973286290677578880916201215179008967503598057320133264173906029186917362160784441397299702856530118023754875379594186501116724426438256854104203723666986812581981805880721324477200555947426459350227705245403163942235351354941785642506923671460042577689180530935557536894472216568783827994571680376146801765445372465610178556133344308992615318069195755941378605237694438917468320611784013143489643602374108535064205506702623383419719722469962576172674526081961883119694151315935130075287577685760833081754549294803886207886961871503994544468247563127308677008725897151141975349456505379530065226487866833453857289416162323455272768463664499975322685634718665043800278162349614870113772422780543279447496298089949394658126415255509386229651261380532416200840023928254487529985656856761614385098658609658843560562477391567724405055224470860963326854490243202320395260485364017255617036590695045354752482810538182284254644579899019351577582705234802437821211608308400548136946568649202899234810961164204763094101652753327884967658858823101224099647947132947191179326913895617802388060322217963419242250737166386842727577666330015925752388628420250499633331270750395095343590135867245146825830600623172262271284465748409372001767218779132137948440578963750587022757383045103280789738838311939664904279677411716861644945571020989920344746250797684669413051447639436769819594970674228603982303059978008823111824999287065663028683177667469380740633487953351060699172475563907204256312094724970083274346929652474461401251383327607330013481096648370811673189867591789598086017160223131007167994334396691936775823338803404092451556393554394395725822838741232670817954077315664574513815634904898171233702718464608085365688616581163446760885177985011666215865098348401818034212553851676843325457126303276923643287716990451466683230280485230282743745491353956004215834312723221180021926816023702058725332742012678660452670251656685448611610403194843846328390100876040618486691012267081977738617282255654737719018193627892443175361293570790726812744609031190518480243697103954481148060941322343249533570605303450050639159021110893063152495160196995010318751731000843431339420177287885411275543873156726828160104806451899374944094720984490717626590293464872913367162823939852404758492458418634522949431251643167785931205657628881801443975811742356152450840341137671609266004489282533844679590349688580205906461471736331871516578501118320797930595506846969691650246925618000568027749186940843568340628428481023700204140202565831116567176262120636998412007695423113447922339225596420067593044131116236730681608932003302505802372570189536396492771542662534202871622752674776606781480418565680314832182334831168823105269800062740533286890862149371099660642484118201122647744462584236252661471440027849895740313897962263518269143305436588876387492682692110660219300660409647010677449465056087991963655563087642847200218666381925359624637288198859857723252238388565130673778707583576146508729544570582673609507519309798472795955056970565903910047971940949646142919022135305134512785316399006286480110349237239912284026658975026919031398803527402845103300230585569076887882512800082557415256809213126947199022906568619230043058454339365672802166775519917669181327535692109206334324680600445146767544908780306443833681330176676805968066590253900466514221078347566149849066650458567319642409478930409202173156132015446186450037458349305000975242913922526338145039943757392871792708482675137989603408486045985755761726649226883811849859854132997201132266154896443280311873546633554422570839611023685488034500463542780845720608166328812804652391213543282856330816342466223723064896334936642262375214139167349815861147181838082278243611612347639791699056141769292072445467888798954061483081714564400349000042080197975971078343144355474209122612095013819819555774921554852901028986047440834451336101766160176120629613149765133419721887526163285535508514072389465157086320852497141287764753239178939168327470677601880926266504100420961823538080523467608170117311160383386420569554510336523388579095427600397412936497657689488378658083850063717500966264460166643861090015169216868173073811341703614486371380862763689289145714056728249248598385535960951761274003243724845665074774958449784572402093752806985032751665389004577839156210417916431515462188338210231600547178470884909818086170059240070591318099540232194022482141647228388272499646745072165312071807930171774887303429442166340596220992865335324217992871885746993678260978342801186581143861734505205141756775959135628875815707588945164901602259714101075108075674341541612452925458995529008424910057717401585584193744443766895808559484030464386544238953767002220334976609261042018587701865488259464350322120688516042311767758804686073271041737441431555034923351492700263290085657303282900181341582510981147861524778083554527664512325485811609158591868153918633878223665167267066591781852048855647991589703974340417734850072295928981153393331210181369688951563944692600661336716831164529538631979423321837806344713557102162484534199505866429117285128771200617864459702447201006946799752397630772991936161691777777344133675594884164436396973762179759505950969593570527366866351355489301959672629407488871543389638425756343207970437383237478517778069729163969441170827150178712120096399089943480392449685609611764385116751097223672122511934683046988760866406028464270076689916356324525092864085413219796027332501752312277383496609748362455609189348063518394466530018263120671267992197068975125530985635504864841299291856774685686888374451208261527133309798285671366045077729387095409930748505915616200601938344325113938065909412072810284160419539113001681813158395013701038295572369758337379377562102936220012176698666803519497324133671148480360716066227001083940354498874990665083321266312118938548776117078904463836508298204762808118318990173409681493723450889848081641952425074347102626312689694038577095935312910718280656491032729040690885698419313595218329549618272458929250416596240043882827612127611696524450745290437445076129247879362188598874991789360460313382089563532436152313746703499977865741157321192467444990507163624388195526608701448707667199084252368194574283413412603921975916398417340544245275356667310431202141431034064058790796294428383230368483436903170457507880413309599466521677502376536239791836941358159005298854256042090772383335682310182827474692407101613820112812992052341414154222479963839574888093401921185141945125332936662429437317439845353732027745677390354003284922648711766678038792078729535639395504087753333647007902415175612463920463829339540867110941484785115719195242261214859855701082355142495004058990341315942549032503676246072851181563508166956469084033054599694449782973543192677466200672151759788054976986273941339306534012856915874876830906991261813981897024980011090285748722959309645215595662304668407600496107833152042620042570443720163284326462071297036312599847525250729695745977736690938264400072521805129566843014561251878114208875149018166348069275286124759401346602337491077144764763465671036759541767265998987685582091128712448332061052934825294825717825427174544001623189627754279626580729107387716590753192975605125920800676370141805990450727544197265249058997304499734290829059787370397265278790212615154093007093047288599777169747775525038008696123254215096586879217831349302379968118173867616048565693816532513329552910499619770784645242071579335000063778842998142722102752829008187873780006468933402408626286809720103497798278835098783026230204879733806315394847392785282824700568166748155293640848969591735444377563539455510566837862342019395113151270137238168211461683257266641868286248692241657573652957918452896557004148544936797073608442194702712069572433236242142619819513081052756711299647564427988773139677273973968574953957730017298872909110006235022349988993038300480635766851572451692353231372552156585340634664025604755066965237566369679243120854533927552696986124777375684561595432111225151630036277272881668910285996733252591512550572003008186073191596397223882627143219097097077356985451342676444498047373976402522471190095588982413150360307485752169988468088571026682916266017759798318048225643793015245989672488576345381841371372969374122751248763090924848423409068051239434807261029712036823745495941316155331746931864015240912738268595218082361122486643877088374860149196615566904542382127128017783637642066656254376058030756393638514804911241075695073660969152046818815596855398144849141831959367962993358705863643200170813855146075832419831291750990805362315026889897247024547862082307191605748294765074769340814484308467321488306479399424137003700081036314907217412878869571717264749824954771762089845873258299917605837281493937075915692048941853399284375983230057222395975675291903002480597292365015580455985247320990716838878414327914555581139581530423840069795653621520778145978752500912927000321190431868464510650631380568519960474919494100640883050008691423525663021635104701725960841119208368451819329409332792352021260255284090676500350398491572732479921519012216028224509703007551350242618871168169078188839568992861362214106399073951089186144723939870440968711485188920153522239492457778297269649504552655634787133139638705594332817303857744979192473704352831414081298860146164973389221489010688878799228766477177477698612048516303064897932155973504493319645060090963304816120788403392141902447605146726501556886504604294853604150932165572836811085684115398702434842943046209727285384658048600104019540081409111047866001870235073649804883998427413127227153175829994409722849805745036872187599081151367461228103281010611469014338867579556540050164911516176954316524053720684263014785787968693331973093369826336567133838635400447374484021995700131032579396585632075127343511272507095220755129845372521407011799777127043615204799823568668333746548951388221279515812453005844581441555289771363263031794862076761818904329996451544799389387249952437623005845358554592075533206629470538148910787839415140372709946864504773469184074690587696706529071416264375845815914611782866495669296675680309907075492056471665479809526257190127127453729784948299461910842655614655520372367831987685098729874404926243022807763077524785734375202788363386167087179198906091328560604153340455847824495182871816467970699882733455793754904194903057723452006151086246138509281359915935751544960475813988976605776158536110693705275530327357722867261510238082676228464301694464302383724608910727991947513666127908015611070570231937209052889871476826895845982532279081020296929392587191254902074944476165487435327276806780382385277910738500666136166357202447849636775992467006657151125969972592558615772948200125412124223433613105853500554222289272897337958079519119176467133008895833078299157491747846435515560758534150268164772528333764490585868329775550520988133894482676427266869762259799838614388427370586557360785013026725864742658008040420268588406988528446014974061906386982526699101165327168361692384070406643146758792844219845150323741861107822621806126657891138169746938185815385776433750589586147669423243940064295669179265666956330652870746317567265233202448536617072907815212780103999035987168110399630090337646749718452780546929266630662732413154273135992404210968182663834353530512133416294858306797531937228504508164861680740269549978715839971183053194400141158625672531248804317049086758860535767683977920770845911466642212507028744691051808874541445135716690866124424703073360729453655910049151280606396968300098094507487753165774934781807467907999195107773898758888165135579277581639991582351988453592739434029783343492199441778183329964968291617133758796264651206672494685714091655952680193701356586820349994569732200402780150872682638707763178889740158236700420412676827484786006834291773349689920178237916137728968426356101505129774506087136812027147157242188056327956568525966929335578908379245849165128865406952078962831253471236610653174692793592007924289992541115876067341331985812921124063975298416297828784923334278201160774122764433412035226697985993123963113414856738409008104813984452971913836656086106692663156693001131912146825973177516232302116090328846532462178103691444449949957059395906018404387842669965332051478814502074186473808981070748898577040761581487225623447247658728526241863742980023043067257008426668528091256447131073512016609072965696634918997746852006058301763921501795952217882235858864734195986238521346135584004172410543674905430479789838981355682124837941204529074727354450755936234076436078528546265889004512184422932600963558098932024969393781846160286814564443552713281454896352933738657824178437689103792545347323807485282543374118393705128492823875420480173373790155313064044624789751916115169930224584826720179376869262580322020334645890466036184577261928783030429789915528722871638004893276170807162876644126850372114674904208794488707158934387872260414793257663580703064322822186867438314218446479068562187451901764220452019336172318527326411177498567618376724034989589827980819168588363572181361650131858912536147543947994098049681773977361190017867108406284511568491096624877782437948024706052751420759361136509127696659405168061802224306756878346499713755342804354751624234555425945877096743576073420040199632365346823185303622720020205276461080621685280503235424638848909534541283621457558609399897766896532887279053615670497003046180211276125389405709684737533508105143786162593274156202009850574229821422616584297624084137379592849210617506080106534694017266421232621887321829034385563697257188536904806409372876290567022728422493598117946730689517697872263593732327346455027130432827333799775450882017209968064449598139408934997782840660682424421127355786847480712241118497070782444120453953076935083803537979668486160939941994042342095985962612962447347307123028551300016684536650082873817888868568970987561774617850786615123588118036993940079121575654092306209792777955712045453629651640062302212925719740370505163434804889107638952057195068555777545616817733916737681698520576926903427081855821775046678108911301554732654439504432523575649745290477433121059949269593140685039393745369101562902819933792122218177240145947144627147955785352702476339566026167982899316201612052411780308070599095057325754805540499467833529214529584110402849071562483114939351171524677252288798333451608058840984450713116494905588596132164015132682386693349803121614912483755486837918891255192286538399673537776431822445659555326972664871203066134593567215493364206140037017940679393740263696372645374610818342433467179986765483690658455995320937385100932746508358595202930305050604600677912930766202266646048443990960632052087950046355339128144467237872359348218717302260702827844383823021631949229566799873746087279813790831582372720989163362765695749198511721072188361398029762015811511973358366826909114578672960595503272355833352634712709772381394655624433469370908992914755098440398303969535642411551985964574966799610529712096418575000533734686385034188878112809642199891624745701698047302892640785316553151325563527390525079339471544010538900097855354301553424661969396018982110873295650148389072160507273029570851745483974550371652820760587033219590017946333554649828105698418903468981976021139789556736421904484000549568364347981511176025321651739080826724352780236231615419086423808654389780069418986466989001268582065610479510436324964186676321922654426152554475752244450528324653730823591271651272411677292799202701210184393832755738096518563959426291464923347710088883218958107959050451620710440467330091594662705465751534086340868552339965611639352701348653485308563691879772957538798054188326737895707503643530254935702576056422478580575718175624694985900348981469076690874462464495374088282406172253886108585113574749035708487429553815155184503461404634438998115422725915686825669417073296724613844914264904313401417188838714710654845592576492371703545278439739431064729480485374339268595639244213649276581509304073918141411048569696871978839648652393145229680745793103234827053397238949220117653440733149971570181647235009319313553663371979855669028381427158286676172020955091950734237923044900507276120301798244866438597667746922428989320496477296371555386734108442765787248682744558363778387035375647953622083280100462371910241610985927827138960690833803048241291605523983851328123926715298455023872784450717412635249287268628342723979395147374105401372169387596469900906848593442031767316474447446248863625887572568896745450087739347972757084411843161906712318355816565601350057414944023037346498650230446321654666067362744258324317517377493465673826482387805134183597771624756273894358402949595141136836932475228816572900985531762349843584439097410992437071792520876422560153481186639927321282473426726790493328054716462273821698684301090432807155680873498246392879540049397054703935476667003764343991660757017784571701214612657673900566742707083123562071767965202363247297025243884030270151313077414010032089141004046101317914749111027651579759558548064843825230586892413215530146391083515846336094324566442287838761716311563067054698350919221595674524970088785397918193525564881235493136931249373109936749656377121394004313888486158589865462980613426939452207682326079951370621740813343940916299084548846673117664665504561316487716911111996599931661737633390077978320946198518652661055956379272452525613462143458865534248529300768046563068336261851842390071797436094480157763816670144760935559811876228746908946953789530461289799415637855510614485286228753696654842335112656080890077223209039910453181741203485504133598089967030852768895496051895892434611772244123523326484511414766151881981834525601801146096563246578167290782476405006289052674411097452049272944822928447612937641785334717045728274707937740005006470681235092787054848288526568328602126874144353479944184291942250457437655822217033849448450873790887418933980247063821161611646549959077875723916708154574093815691293777132841491097061860482385289645784396095047685742495789694603842547409662142898121440732250839773789636421592528408455865287429689505882407408061953989013028003400406736156357830784278903108164996188119988274458547248171962668418744364966770332315646962140476253404109768468520590121010581335141290526314386973552192573307395411070577100669370186304530372113143103878498555989567707846509042032285142442605470477388514195522548578982645368611327198934851569076918737978661458647108251231553427794840393485982054833379011263559011391995325403060236744232184695476548926985206104042120333470921027255982702590320872243850273249655359513399017922077089523682813028508353944695546220362198417023961564933169521489923965188001065388736742521523846357483350736356443341346930405526795318789471894176264668917781450723870276693618676899974533698292255174681491478440954866847564801974464774960054925675219800211512019825871272609483247425152689360703360576117380915164091195448608677303683335123636735053842168630206317510385730098511326290473478465285406374434561793053563165534136853077165150766392151185595608782528411571207537147899774759066204017660342282342687163258290658991717486359125482018844320242142763686627944248380824658560975646597032651526993510288965979746985492262155891015842369191099165618525853465353598578297056593412746859940378996667496632901314087062275148840044889851531577134925328273477292622875410357835536543572303556610069254903512725009868573659138385482464404272016325854854774157021763635829655029707694469515366046372460675217301292133697908978709348163439151830521607391087628600917334377462812921737965961913269624669575175922319657966925413905128001091971936200218883880200538125270481369219253732992084880018461280745079693507531891835208835252794592291837573433508759232581648595405362933978417628337031353859520008305460361580447596900628791459630303313840395362123576478469415080414173970398090648997998365422666734341051620615236520386022282500713461045487759298585440541157425453624823465981891355948406224089224607237401904056786624401236153287760366868807653403784949022707489966354593908744940757072539201650053747582070946801713534724917291033838934518627438331911940959903724520025663893747714027787676490316812893317226014045318099744639821661577599672235575233525059733966057515728295281475130560211649287028734307614884168988197965613079796080719100355251615325769665845986401652602308834869038278798012555513643519167662282781071526637188642919158297774108335018976560978714220917703513583942085591061424705074915084245302940214853209814246597609483900093243685676322195271186390300634612027078657917907612104093238373081717709375948328834663893337950385481475030043507322955479597042707522865040248579569014574664767138110626500710923036145174561095491366552934740800723097913439836309505581326227426260680473349276391243264989692699839043698084326592533541866798455014158939744236352568415644462260225356698248864685142237534410134041782052748771350694296772095968668717605604823725219963376977981007620551260781649612900755486510644883429858304853291230409616675361662279266504099996657766953977634535564836881371165829143516253087276335464544352675193548464183265797485687197477375385936127900656020444600729207487739005259086065284600854587628202214408912688150574839065456595505986209904713484740846365390575585908481982007523887578253518339170919962260142981770028810469874602741864619055904187581088710972380798731105172422346863685575315245326387216925651313223657363729714634990856840021189026105466472404985643969025564950600558887299037356190994990406424996668008924003172716936045059319847661049201114694555437732037780122068850967714405780277149831957011354648766982297908116327683435097233008844642956774728388445670955364880552478682034732014324107362502796749385692661352681649445715547559592944377540368951075039393386895396835495109068759238014008680605264964217208699615567249908488672088597558097388254756682849429943794206677568256201599936160295899208080689857339830383402516648946833867192709303478247120670570132549631910450136056163025354918534732078743400475328537431682828230170253757887090154899425814779457525076541817786697766814636038184007449952182844173157075621415229713956128545157854997193908444971655984187236494991847316599303178238924712976346439674533746676797281813316950276209055539704065341244249751876984371599927546214463940084530817674632236678273596139060095317793594423485873600738470455790764689097685433895758728852166943654948879393942572916875001235384989909149275288903884934204020994769482523771784479061279026821458433304133153163106016001426387336027287044524254879017577818265621167218619928089716762311541542066478424058527450897392801158569824705670834974433481923149817076560509787750751758925912015459348625202909079449109694227403725538156142722646416305388773549568729774515927870979654760616460478936609979381834734286487219838038479437740712491360107590235527544473298832017090213102485670693704262924020165686948795698831815349633360225901325704621426646491877712997249124888716215853433247178597317042435399172249007585013534926238362269242822837182085400195240648978828756586008523099110027514967556791449643849009289792422569950714485733191307035211266671120205982246017156535154992276203498480539835464923216936267681776427969420014227791360501283100815619230670836972469275177939096892216680413543125526722454150367292607729274857651416073661333681177836688717643257359935035844256579277862775545816409123002168094620633505967653001588870842545890558433633742662448933482370006867162732358030916601972790783101232600371930361223183554680646700729308539985534045799041948035470035964378016503049986675753250293129415776027935788151594180113899083519458650779781454844034430955863447785252223549754521211328464695009174975936445578395730436416295321544381144780878725929366524530091178249014693445123508194566793587216664083614406501461320436445855701818368336998936587016107831710051317558669057989560597414549983517048466145916356905861438992538265563843188721062974498167666384546345901329559854550231210184387779304579142716745157775889374377900717287413328892440778592704432475267725432939751902093843348339209290051438988412963678320665851194281945846355361070028865169482736581697611789803590128998041685956523177715076595603000589174526995263241006430425597200666734042748731554665489232778161987592413167014307539019500456601719367413112812547271905527285739103239289496686731030498471658550258872077364018415041988469951577616585027369296755627824823598829548288862608701370365871156037269880039066877346779136710822984842258358799530143494050835628622236747245714134811052759489875204721090737846839294113102030556981423975769621589743228014185377316144637279427215086919261587538609012424811546288293633041077242734300385112331835944538309864488135313245035154389433817371210759333336975211480792335477093545373773640083606936191574166492973619511472467168220638096240476055177004056798913555736464161603350520159438173732537014186231169501453833529679544567615120951026054652243278444803617871535956708324177162746430371725591096226561527744143260515806551666496434963309138198438282676993957414011400725870680329344298752018636676970747156255051078266681563994369786174312222341093716141206088722697155612707460334828944542416209119882159136068385644968393111317455316618662429926572878467883176232757951715727762347053237213892582346637972069727201334098155883357163913890438696264944403360032475779725084813173800701109500168985770549687625804932625004223483163428488723198944139033500979890443732359130849684493174747475434230169347905669525695580272612189372624305159484123943774477245783642284808653035702692345489623845181015785447823465264693969288608145776000567399464731046638039946456972757892158820710001477078536307446156399085228861498742281667832005931083233367049217953959518777862253131018628176646310481113080918862442961805438173485619152950857033418712243908370709376804273363779139126905871449401823176919842784870377632363207006378887813236529865624274642012602919456453933585777856204900359129816252316034606349867153259118636321868549892873854355869300152338836956136927967660512239741487684406838424866271519413820585501815619858738397516717481505195493765830805299968314135358771126724383264742913472077221270958340064114692527939796505548882986734052139038853080507573076247330613803889921706301150202283687982950632882720841387476733860403544977655919103624249226446512344361924118318920788767141852697267625840036512406890538302503910496929389683643556524117124082731371332170970427254932988124614846954496117281102933734375734613566547668813233920798951327411005081860474788957363395381865363616140147814504404155060327151591723966324563617786047826849708096254230796579011612710247921524984371352479608821174652221476518131852675056065438160989560084992172283712471302464567565194637614053035598356297373946444026411633190388741407176459705269751554300733130146659965036411080924512309023913888677542341813716388241340227352711870353381883728272127188540440794006905253155601496971130910830571533447785080941308283347021312890295563300431267671998486413458727679057444021366638069642302596105092020686515434803481857001201879803271466416800997399201585622347623157064484097503823740585230538683354582736299920670078830811064207581364536121635010669795385179071606885825421288607611798055836117564537797209217959681995899431111651809401087845454175378456390928414273376681164382079528906766257955499273242651906971577183521902674199962363285998545601429895898310412472685135811891571035499274665933104118066622023614744945128334452485971967125453407013806324448796970670218466694065808135444817743010078887636512593663794796692132497095621868457493436387677744391559437070827481423702769273545856033189104503889763787239765319921862921940773629447083782121528422467720428298589068359412705175421505155643451781356431368966171639106718165176470829879003596538432610703428268391488308741740153662850518660339660915786287883901774147501714142080354387605071742568044926522563453117384262653471724197171682346617848287316191156944905825434108153682042552930848721643345929580650900873724603749245269826511846827587713634605654718593629957999905045450410868751814402831003916357823366955985380446157639072145551247354277367953953168925010660409425098534357024055375386763405514776539032124378181424984281409061997067952953040098625859289467163337184093639497759818865367995387799415267146256629947388636542368956741074415809804636057742741280759429151067957911957227992601700627302869469836866693153398009997930241709757663356382738571874671950719936462940146863848082435370548707145512683711429823420473541856023519828781418204824769507609438871208885475443215127150682128908942317366318967219671216187253451257527838910793964447795803428667747183439461373339817468799066502331876323891314648047556922620811904272124500876751372621717260404551426891009986583983636917812858060240106990139643963845050664900333027707778574433482485789290867329432806082773825526768835511727809241980298627420619901438066820280535432470735119387867414173424870721866339650415481071913905935846502219862122895756575088175715147983900099190556730901658948201022696775973032296861120545694380598595956550088138116391666156493441187750117028496972673589157586287633676053760572794751725932101468066474288085651608719710694930381624043741169377189119313750378880213195613275332768300367272060211785879487853474532976420138572096229319161486763824341581173055502489110486287631944079264043576122968485565877892795525226101205406694512442944258538969175395942329019640960287149942382831302887695248981513721078684037522914773872681933093471994039302873583114739994086672290476876428414138943454802259027275460270348588183274776843074625306245500417581392411786493798443479303459168916381141515870803082745541285561194397091085692878723867895703688157304700954951871123846082836687376065010113119725566656752450350198440061270352421518484872687401495301731518301392778852701649617266170986047629976755566702891451573514975029997468984692299318769668923330050839612113123657884326296132826849588891920149424107772393365045204626720462018487932928090782749558517085605625929681020297559399128484686307495421625757210721078023590695191430556692748231681724405374088777840092291434639017886908473602329747673189508726868016637175287156398528986968957196896393648760256132511566814124764322675866321055404821158706198539419741365058370072057554956349885282805070402217420893031984206160168432238149322590379475548331624782478680168688424349325309051174842685604532431578674334706621823478979183287135324219967353123045387159229462351286785039787424324675071150253638016172417736708250228058632551278058274883376486157190209340511146109429432631757624897044120695865799999685232144221202981297200379685327453035028690030989807752321505462203233192334993313277251880260836146994550167086049293643657346564970401682484921249338817229283342464484637166960948875736676980228157677083527209959268433889723592592706016528671235982026469749326773188312264261856503175748707578550182852204090585418067362203338967879951984530220222281664056398238324112905695194615360165191324819272719195880647681519589398087113477755625110564567775219101517039178571852876873278282022569246515587390235297934859917838905359283190413824139310868005810665265815706577663868834184858227028912425523866420422395892282104551520185920038771749575378296187412705059072898341746090772674688176072716769257447621381292122250022359774951574463520587892883203480967517868584823892468366986292481028693243006061437301658059258333090512940901253101270769889884999320672396286928963566186750262557164152309957375832859745857343318852472084201360169856683891142752249056334486905888726711161487441862690493730626902539363717826051997274004061577255520114381041064483794730126296269601722398874098809520516172791471474134068668912381661257860308628785390545519610623542507862097783367456838528656660066744266826162190215440794041297816663908849246858630752614238832465192945489861495785723484226048464036073598227162466452467977145331350714503675240548170614520760244648896482866340943610708802744673746956257736565779864460293605680259768852469070566649080314210017653356899345754375923918403696606669681405413048647603199961858522245413878605324544857277379989925827165776464211196338080096314843664642262819733742233537537792970720109987209190703906086624794366625966239339860818646247994760024410443300075933603571129196846539910608483293020233061831246885542187539240822142276224499199055893339662522768762457537663643480792952290346209088522857110528405256405693788473665522795897254346848869459914273533777892677439061287851590082407215513178864025847009459800200648558550379408767620629280355766677476145656063153489042682303647791965255428025082940781582268053378800639396717830351925726035338159116636958738052105117310295717609651661878693397346666267392025361957379807939731391914619643698779479632144965258448380294449236237395939193596349327544741444495245245594639425972554286216233635099416955363579407906005559841481051668670239124169456385311766888650957565640632366618433021384657240895684308239140185125948432437032078540034605652312313021463765330876802507312555413671602521109652360621467820837931859449100648237056865589206756977234997334854032129526662777888243933346560397519003496967194010056350790875905842488172366715184257255244498356235632997097743785600022607589629353909818404998459483127089505779263304091713796328120362418770985647484132402819427774570444854092691241542893526812813951544249439018520574742324843226312227167058040399646846313086144033372119958292219519766404257020698166102351440276044011061520582253547444903460834417738562791839880404233379635183495666460212416900518893392301022582791266475713906595686521102406578664192084633264435242682114554666616666879889542697535052244751673183781938929227119859757750451066135480414172372731318587832371974391155817333597009860060257792895292955503415875155325060632651904134227554049120419191493862546717316824837909314759006072771385828669614359720842602807304641772366237781026685364390742999718884586516527762043640653717309846598139360257342769839680139467329498006418217269276179365224208368404712892715554025909735287099798639515694981332259765827554082383513602214701256170503780559311381599961545414817272522010038171625563524439873974961460920797762978007947295047304136700877313531208371419186353366950123509603529959645665964123182059405376041503741487525639102898903244975877898899330613475604955683008093915006919066263771752917996256663446643609327977770876592878624135958298402228663678594397597011390983740183139204851370947719039848720679115610213156453481040319676560222328990804441149214905120536822127012974244419449096437464719506156970139932931841125058921626888839852959713684565729131479242262211307978071483045695063418412155926887201950399823761729522595460898714396498082373267432455700889624559230200136988338025248475926709170843551871446229300535182666589869212463364730343128386325585676528755021445251682865706962272470785318180496157585308236526609934037125141782057488795009632169912564409458867926137417252407913016549025143892719290489671020804175431927246416669885453890512623493820580114990025874771918630417984854717441008807847162728486295571323811663004935637947420061191226566082544285529908092541075562929940214033961423140895577091532901911339055690837505245785360317492301729077673211837420111628847127166143904368420614119150785755927168041567303920397917787074886337729950915527391372821808437928138074689989978134049168312205355305404172353073431156904437889262343394649321985861571735363158033370059214302644420902267441323700829577261255321093790597659585989690960737522419947431839906991164657480425581747701955044162364226015593844201715821140699057956095920759398470521070227560032108487619993759348478281717289463859285802704266424486755139967798587359998541334495299063766463475279199867988302171730372429567218667398268543009361790458374506270682395778245607471714062681326173887324518924974239674454551680037312915921088893035824613220535510401018410353473158346349191895141739248713173797514511366393872387952459410672251069151474529069427621557641715391777216717123175121278405184024354388913579800779868251253138830249927543538011354220696148723734951097861168046103943653387140457228487266655707533890509112210111619900604306688042928177728677771120761761404157769355822897922504960466817549650939869865782725149143163284906476631696790741658467507434111401156933693419166015273041102030484050621544916397865934249133249701584944965533749723277074264640044884785446426456941210106503687761768182274137423728273609722382875140005655769629089637644067483385335745747774170028124080269904125258999302090170505704838090126108670493866899916697180794373303859920654160758802770412357064994857945259020195548141943070436082567764307987019594113632123934767823005547666255512477221443554482348796126125700951829951262731788195085363190017512382161030522818192490743942454562274706287839825251813893720832707592400746457153856121401333993131271502082958801521775507652858228333787216847512197547813305844667546424491008102133397821041423217627723927130834615868863281807584883489550636837336477036826076670631399935611200609723049562021267848848636587411078211160331536587343098818306499957591932002434720697766347729682393044713306943187887556120199999161485254370848526174068173229162194289419073784762835447431045284982007063883472616900053273898882784779925091214119736096430273437467610658261873110972004060364589155259866247091542771971967908226675628986872727098729835293789781796476441284757774326558729592008160670709275046780636771413325326090415536392848629406842245606003059928546739005259867650644931121041660815882492389117262960260858579454276620396672104024741275874962763724741382266675774379934751816144155195915637784140464019282076156801616618890893242185427807669753684552539271720790605869413102912206396537964227361740733320915519816153840113407305675748771592129416627822771113765326645982231762386790935966163539216927632548096053832160947880283288082771251414393011776305987943563340101457229115820874239216292348206085704388032906257794177865632844940056348961263504653815189400657478945633575278355353295715357147130386580494507022011614293104646323657916435409920930220665335692262821146554817484730345289688903556277113872546578875149844999479184616936858410274455705345240695845624240934642411098979404474827557242889934206313235202064736115809425495856942466576739086611302524974521752906620547355451725771202164777827386853494773961127135679161878594458470336414737704299210268691001974061632077960998142642373425946899543188255580919640861117075031267800111404820812811175692382512245497676504725590268440694481671485106782376349189336008842250724675384964674195654648918454946658791497116692644812671497475239814145040532516993108728741044913130319516390151480274217044374026040501100407620205485059091184284111401325517289871235720645694675728148969388367605444642652063268483188497880370665613213577936849028885359729858985071049406623293115218085159821782217682389732328919050361720134121394680609464322894847523192165353456286316045175270281469240442068466465722837360406896777123514706526617353375777268868153024253060322129778271738410804525331004177480535178622130698538061384539942985344297663820547056027989043022271155772885797714723278814788490065487290284726182352331528171512597611254509506602605041918365299580264347182004865604475862825886506118393927882017185054387184191285087964474822345331647873629998750490778731966471898149368936178982125657800463871581961962806988298851227487014627689817915247894080350971974667112845954045343356838238630631542412846627311621809778957685155497179374298893900327228789583629836969415784478865614327260884545873914502922801713133811478523067932441174105391638521875935255543981795125510727241587847547381558859044354474942990333313274445620573709086333018806667275667955769104676968300820642329331825237540919284040858071907808119057254770923493990527311771169785948447390160046102789868134430315753543201615570685872242354415033698434917229727896851503191300483413467798703289812478342687019663636889258912006500790788846231800901479654625448332911362426734140620692942351702426393651400416362037247554756790647505768287913564283937916897561894386319123962580227083850938484562361225147513745688528929972211575356554296378220160327003521246443258780671424033786821879006567837767543225660668025616029797302677864876710605598771092781479995248878909805488457780974641282667534236891136058976176830622568938992314077909827934578201403616211649735396296973404531114843911207910720233562582866786700166039462211520595794310020314184532401107157885111213442116182518145683933380316639364037533993339061523822700902821156062416008091668295981605886565212774231424364996365138782498281421537706752440678417810887608277919131451107856332668453199981865075144688904170721485278030095937908616883613422102273288897424861282154510494798932143730933608748355267251224262891809961171226235665335481521462367605756549697613220903945508235292246258776065840511396024354372431994560744712509588165877222781690085575021172043783840232667060053377820903518848318811834402737467024315923409880516236209135070479254345168591115197532812480328516001633870641133005672314860722477333575663552393442654809822778685482553946517659829768196468370626772244288927203598367887122785619685130163278625992542403081787635326244643244185758738626921275074138049967081980347947476571848090408022603882666619798780263515280154282891669966169950716570732534045866746388315089736875290640582749180535712450655780489543551132249355744185552725827373650439096674502018763458965597784457038479800434094137821667617053252267738522727961158608394456411389820130356816430227321641901521455240729711167672260244324185690003128262039539124979836931584364980959606413188032313032339836558067272044634909267837548339797798265698271388581451712534960350671195926185340829929886320606146570317448763153741767124510295876476995061297092621310947382946302069628078303497641512289492288555304476907536651805286044785445238159504863421388250678821294387271716818138231076396592416533388433702583866841291171410714341872663114951232255260283821734034830590175589497559173462872284831039468626078296735753640569048934031961319162843593758980153253869974484716557121362289289080249849454003974742646663053164152309922527857119913611747253383127807283659324019495277907431002166935296310246162286070550664957708675456428517752395260407788843330613375645867190929113293629722535106116249824065856659614087817630063638861608245830490406712134343551196368235678851327968698282670207885013206799296025426480689664355157321667397130665197562989049605083536803656076329183817590426618984367702483884967043423198044419987481912389119915104781993449432777560919093630142014130494152899067429102841252773023074074288317886607268497481152313379311082761775422263869524932743142519538144380120710115416194175645666984645396596172274465172339208570354701398495833183894785433107143919498850051441111716978248407545962095191214557675201213559293438230828170193890464858996066742911505887265006321066954533101582710911544106767831574036783854977683182294807677539213028757228727993204183754049242229711584565508832810891616617364734550255980361950635645543658847044865458712723451657212995812208010167563461596242515445839982964820816729345120118979930480063028154266682955103791372996861760188529878957171019119522004672888325174000188381970865835269255055321989627760837294258327136481739030595384254220545623334062883620444303180310253856008430297104710869127443105992804375359809285060553875302412322225332027829808538580338182430801404244389540837716259901538290296905584594728638647469868111224918848025800190321366544637887239773426186660288073806940329285947729760439756043095352190279505261846251866986904664840468579229934192060998827387273991587361154531668560771011157814547428849425082213397417842680593893762408769517950382554575847219061215358664695828256123012011650737073510800697769711841358633123502789941370898869764730391129544827578018252301902866489308485862966236427696333234825948921819989801240617869490029273182244360742974390017002238811237597939843623468874855092295338568605976839730969724440884264629494920796953212839072116540329257150104510502468736222714405252631581263794705540574080443261043420431382870014669605752881037549906475432048172559881941212549485063019721166192914516013710395984145154657032183990745779601759165247558411720155990441206802166653747376690020300449743830891262188472249543728728493448635819000655644253614098192002672019268125454700908665631117547735402329434667566008902916755847746584358670791026467586599672262682623746400022424925190772557712956179640240269317591981076552012707414541780625743499866872040091683216123107564101957893409245660973488897872107729791830925759527560048885299881924801417097265997444163713576676177170464281910808466517197139047536666984011317104053775219213206546604432645003918720284769219925590419164168432638800202034140958972786416929301086411713095289633899370857595708502197446456524809294227766953362214540072190992540676881896516585827178810200927103204986644821487236640398404390597240893996913887444302572470265692370842890797094397882784390177233678572400183300466764429810742833030031787204883737412288191189631422076580833407356026634896450372718233270047665344643276855417426469463952700153320876861630675601492065949027864312711718753094432746846275157128592810018068021014954942958595155694057418765186155122255547297690792225498139245506564057881206262849838358491191987845583868902027717258265820169388003260676573831141774065455053784648999211035515341927501504820075436021616478678529917656416448284439308521862211567615667440281160503578084017859360713616928403667131344172887291938383106941391330481547986868989948175083746797000337669238587692548914954900842129949317484926427026791116696846532996749956001343090163598757067407598896631184512976434374030310463683915937257358686134003150615516408760667087542308340155887938166621517407595586812257067610247781293249819533690491257054978830238713723204788215747271044020617093345072024852539032598386767895569714545469216374723878248732801466355046814591372933671144884043640558737852876564148130244112463118623786392662339629260209922927636692281783382810049278452177347186604195192328715190914973388789693455412669584551576430767120369553489017731403775527621213599857390727044039530387566999221941624123927868336450559237596992263310243667977882574178202039109215479144706175538111584939035609687456066559516594400119271171436856290108799855748899749810365841048871145210974323821093564164470473352902506107801965788258171360232738338347691196926868257655129054166619708806965197333912116349649905483081780506682488696543152409184642801143472911513991697364020798909021528143179287771205769412433980801915788329045107220584806443740211147491372545687477785411748541458778752441858694035921500377172133010178407560696256944400962685851239223069567730020528556480841041505851969655354162748141442219643964424626928637097638987040743648390083343295395537476281328456699414134520811184727239735583926028012787439906087897173053019852434310130426496861259909488246770301489894281510138934161655256975619972168289225701412976474579231288913612143134313030930156763664865350918475871111245491353331858257996571690166809663692988585223192955158666123749271126894237292223621383354197017698701374366258387487810643669667761165206257373774607514130069844581568485420665677512225543869584184765190462449674179847774599299236175339681464841217921771962040849350237728225059589895275849337376783966474385062849009145858325137630929168981709164897518445539919416358000059664880831901666912047443115516532514349809849511460581912940752786769238393894632446959497785195269157162678908750532599554620510892683968249912474441467613076989248680771707593355221911937626910943558992407842776577657625077230048051827296416662504235941485174714415494642743838829054223981075513307493165444498778801401789454112657753365877417851920804088643476931770221537657910458168485414262264705758719840717341891843665074922734868367507798685072851700497171611454921232584448324971685275888723811706323128228237370081857100693217017560289170862328451954571191777379356329709278905904459547227687804198290535178502756785821170841424634846617487945956337294338432226355984235124108626680406218528337568590570317125799129646943485744125847550860288906430516509353161288759486534750333284859766332191237443027602230576405503955358887971281898393247537817082898050981699225934299358471460554922758760682429337329696200815728974377795781917948269913460362434728198230594329624868368249489090601698742318969904903590957688133544525827969276885400553019376954218441432304781676628151587723961619694701145662288213630415896647208395853037739307590758587407579272705565712626633566303269135937870447745084665975900184705825659401151788937593119995429843041688565811280284849292063810342939772181968588614322787499730590777933736221752549966837658502883974449349208437549502252525174061283560146839840372179062722489738664057886012885341654009117782241226014210819175148431479140176044480940946189311299272581803738646630524654572747002399882950820481093701674280365472328409921751908279872668062759663124567709322643635157200070125365459025724742737346321304726466180534135018614234757338456366107930160406688091785430080339439568502178658488440920256489007357963553314494882299566122816504508797675557421989643433148183289464698990351295801181761045903629575741870626166649645556635191999806072774801980089342892723013910149439858385067541407258156240879473786807536383969193014011021811216380868107510145461730282007517406169709312070508107447372838792091897441331484882539172608027824770714106805208108344929699713398066887673211372659012404377315808373400298590167826256289670049494309339053523090393669868304489697968224999118907979502807340944597266416266609943296410904587336489067069634483383471702227109333773333231430639902949311205107342019594375144692382877812404521244026209189370047010578807165481835542922344528472535469371549100182323975878689522357419067142916926366178851730363610417162179944587943592501945393868830119877288043254170389131001689141643216829324251627034440362117039537607916764477193076738588787073837564505285157175098932179077609955076791856744446887667597108657449261427628750879132290346109414198887906100067718000038909025953865603107002156755281549613423876010490459146868785164115411962790676249942620588032321800290759170420042729135857960698688364777917432153149724162767770286650239133164289500370077230465168246084310381140493008968698662976228438053986128467604723839783108582303646277806210638504376625278250539827138413980546599323546042610131580332388661605316441613057043955358649896165344117082380350101198020306950564533378623897228984700830163004913565364485997617519160342831687029631591942825636230866137911599737980212246931213458221208586735043726938170847130399513330534351059964049542878716132418199518407817109022403946722784375358203038725539011145024948086769396183906009623024530587165570756940813502722999438889654505682786333416421249430158616793862178585364387007336866806353577783462476067621600404914692211765632066467496185413577767315039643786701963981815324300667806212023176740647095687204404042366001171211632439436794625894566913740025923944148240465110572044992510983637779912179700806827145247558416635055058481522023427585907326263536748448119858999189164177249594411631693725387094323635503551280311747382374498020175644475771923092157350274726038735640061387104832597539118558944067028377166452493561657677635528447561082653435644233642378751844510686349996033057307607774419249048662125303103406800375034574921101738453669799365674904444125990005837264577130532031838606467401646039191406491190399006099412600200876483341651390324501016010332928072021363689898047410547957459649338942018712840977729416987042463567907605565565822863097795198680116635353083026516583476629398491058014742236644529665188965918231540364840374774445163695100642401513641085415657266181492167281238741591140842218639472486098299944782311715482255765251453614333449615026408240146067140951103753576426477268584453336041718587446224451388508534094024457501930913251289594481584102753016053099410097417298509125968102517843603989231958858173348273870534661540829734080926463846602780041720893819318990834108847113699930596807117832706412589431283311388948695919571573502432164178858598922662949180459347487065845112799771856122490190663027452464528442998945877917646206937699459393668112928031702374689570614197969439764075377141240391402770991501397981720067748462455896635813406533255700757759001487164544929471278069767757729628126865293572586628182690187381636952134137774091797353866196782251495124495803382958125036083323125389118369388632635001361745602410529413836312052884439485154641584276123992057883247859603737559329649280430940205401156932733990885706890818553860851188971327473104141559893974452085866364582591762900926410946254266058211075558266965222135892912103451963384013339614216782217427659501550998857042535146974973329483630785934851794095640652934196064345434859211612453969614616002234210384619063382297399680552642540452528819317033754242907476103942152820160846455688155455581027368002163847782489133278360211148726474710023918495926076070219157240955978987679004394398426549662444904127182131892271912387867754341036197843148046611246040279009080970574479090015785798686732164959343349191307061974040200444902105610053983104082976982057029221279134056004566737102772608679577418314138140089330264551938327231094877114048035742871219735600859320250519134248792282274088585582750978883552151322526898104723145852346791605454343477278557559759748091772827835099578692568157679173010528355754041559671394006687885711869357994503934151837781282868007603667791006535393890695674678570641094920293199399742548636542279541334047404887879784840918431513895265894764399334472675354663268856533111340101439608042862753067832231439866886291181985607326499998257732843627482905146654996871793683911773555106124437266100648590982016476866452137382460834903261178917428680508210590134215026952931834471660304255992491767734153759727969753405840332491444311641107667468759352285767141908684890477638104078887248373367736129282732570407568260285055644198266119419261093892954885623556688424258547870678802907205716876733476278629866766838214803220032484858213896994396501122263454998443991551681631011028446554496400713850003808509620521224067698632883029245509718886073222054476150460072774449378964973212976150873345990688922337141811428199299094651369114481511437720709453306472834996078896581365862465673898747857259913320865151522884983055651981226810401924305740202586831523472124098761591944663273265323516216870161918480268416902965187853660025981541211701147324265380497996412618903947438549112117005493106824983252367991820879987361786399409868527387176249923303896766690668674390835909572384638400934571996024342325941904410358364121219199401123805092153877898484775023846336118243005004505604826886321201027152556106986887416130454683679814359637105594373390679019855581528944106792919238317337677500317341963267539208477696413119863378293550561053714279969649659846648207686099708212348811927759947123212072203707435428314325942973357571758366734688865306658242593907150738613234394415365085452216390440278475616589390633534937189586036996969549986099021393640008206085029286964301964744550928793512263652107578601441209464721584362587941308092269849491116570424460087897179546983217966147661199947219165193590380702499756494269538370146130362305174494412856175851717801444936889530171332677024252081530626828112516822683811236273044995215175985890820384448178552711902056782103882037655793226358802914298258482852049565354893771398298771666770726297943348381382983179876127919554860906839068807094440041360229228383819543535374709508129813978888429309739196723393015210420255697339386842019824870065604128567477677363074917982054510588183746496361611067445030889492497907422302773816695539943517658545557363012129412928656383907833746384198517996467962474827413872780798299560891817613453294794324882780421363372555594912093009119327002633058212769055128730404065610221245014781979729187423599477743235904355460973803275942616994424343807715150315272497040700477270910011073538018300170045470942286723749694360708651389101185563972514420876802540894052972101765381648202482075846438942494955663825718842434606659403543751807400301132676010656411672457219123979673411662140846639011015504418542721340155425990780182392311030310490612590868681405110045067416212418798285057846229757981976278950799477905961006393356008761128451762728778929396098864507968440461726932833589533177308868665588693596638000156204902254495286697166987030464033934830093826582609550880446908620599833921461261442902610271367376270373343371737515567305467752815273250526430063685336930908954009623030351286095206347485022698396930738459883418524814342786254083353785761236827660568581839140337482775504358412082450754966691965973922078691316149352201800823670188255079742139864069454390768032794672221541474239548550808407292741335814497112449232199017321418770236036711200565942268146231723950703411054696890038640603339238537581191259240101064746801596327805645156799299026699795053645856783727675365768368589580089278509780340222628827693692516008415074765006520563997789003215151244086244656834651791735761024796076920296869334181301219181878953296392411808157407081879219507292757403739544600450598611177454002138838814076371735277046813549064929629828522007408135084458227454968841653282383068080774014326952158505202134794020717556770251834525935988132618319942984909464144200304157648215400591282895440108207780919486017291545280839253833982114253921540898229925421773979920601365354558882037496595264370325385004961652780723196669293110665086475725884439373812659270588535591783397341108340631168724440272989036294520926008431874495800642864650492570030766961397090762250176037668098526798967639906993229764564526215073374825234839734061279920476800213410284027340687154931146510144985661579602103185922698168256637997436977901307245029066534939638564518106492933051660398290558566224578531426109432374440188858011839262030724065615970846887240296732438272930393274508776742792961764517173410088309733557446236839696649122986921312685408029544976095577645176131900869902626410336206859485598502210305551168703207626047956774055367199647963410681800562440482835652054465753763381768738282674216030929040011011376044590043879770980394502142577469097093572498967737448160861161149108257059013598319699930199945642674243580923891888882757917948283299096514461668490946226189865752934059733014069574618544885296205423171653043319284566533563369090204567888291463261178341551785156107583709475363393345857989056335041880739949251764216234628706997056993911970586086875942966669689766265741417139355719301171210641422958409830809187558013184013698953158705759108897950747707946275191884689896793810633191540883145302383751276924762936582688614356171354470858453221179859357245879207820798166841247010245257851251004737237199286066966854413980319714516647739343796662280409024340812232904438011312450689833237730424697684488429333121786383001509812814091208307124459456499709835095053257162367610941259390097801651007896639599357123889599701208383027524748209026892844444218550370308670358292455941364194558541772831806956775629760954849967867803357655533093855984135277827054884321976156611117199089005787548264985468613306518421837621410560366474818843080424926254504565617764446729321790634484820212476839968381404219463743487563934541696861066137280187471685196584544496758931219592934734502875115897459283486861697630547375623873903523038056794213440874910214828427263431829875351245344774205786603400689191594993400692924223896392524035821284800814065967438884050354357028947230083075198643646682975609709619154450102350042559532075824488329243249044975820794592179568348535330838169094323076539468326436003875743125521585677115582263781468801205763314306296827008980539242588988806789097206419451713384010008539412858139630928423979343327116052813568136769750669062613119916038048600052807855955123946345063644736919058922524721841428216258784986023055575714926918247124640470605349118583948814510291535739031127211612415128173471456347502275617432850810965313441210514454948443355960295706133623826110120858975776038837365424221019575353353851022494592194722275036307409502306652282334275017348421241220726976229901207447290111431535866649714374126291575546769074846730788443944211408899250585203217174000691736244559778680735177153883009762725317900635214419160990836882130254667201205983261820237909908496649067335202689238147069355413578104220950392723828868950930785102435703521051066641928233741577616935050166509568917655158917982785644146988937081311339069150942131680769263030405677488980086318306637779147281426152023320072580189733731256063002274965549079962012605791580055970266576556843136602093232720208410998460716588759653812265604037868719810686625790166712988802721512505468917154654956768873000934384529113307382457616661739649365198396391988417053193585558023257062858686178011164316965260641302089804189318361831946141732924235836114987345014343695506620486451472546125213402472661089673610196214759686405885303674130401257853514359910559776471844096111011563882439158808766818378343555562706723941289840834263375173177214126125926666293536603766652181154963201001418956588718746973252789662628377850826196552570724901942776871545431505430259742917919707696809302421069258776951403294497819318916800928705154623692013978154324867271297640864095941575452947787992010041931667043974036457264453563609479264042870545136215271684258654768450613834234671990137949481109662048097729361446538742135683267224122210157332057244771607426688411664879975088498971187101191534001895435842407147467827812558461967131651097578174258661458648908570466755018141723186743839634217021628233871650248254576753453260806943853209916546219212481601967842296415604610348549129207349493693750265742929142726578186940574962105521718264987162120767967011366622946314264813798493923600610648214118009313368401690229475778513608023104950918913875554699251163885566467432454011447967434384268140980399339340332610087923042071401120273137348734052806385289320722792401967080652371697237013323648867550308601019171984023971942317172220398285310780281991612529100885960309048518187475361361447066536684113891964687484182250678267849919674691019243017683621564937097955250789919423732804378652367253932661192604555805683527789446435661329988839759866919292604332602539699534425578026192662826609831886669990761219523787862395134539370691408729438775582598683635478233848779217690748593927833373537504945881134772977032371859142212780721777966741193471646627313521779003946193417991339723877160971078071112129581472002635119098202630879323025215323477115996335910701759749341513596598881834097277237129981800223183519298755780755404227620541030714196880445189351457442124841190819738524221633602817298351986496487698185730132205804521325920036487745271176016827964878728812542751444169065469895100769523517254752925821894924278233378236063926969662509940660039860773582163201737589096717695598294674468302486919352364022453836257191325295188491717996149057276560299735490768799719245057029303106743524427875403086836576006954422624589092263335935212532698115568788197048928846925739588267912419562129716970916887340520241721529065632442699075921967293303202022746502330417587524665513313156738591639739126689024739185363675386349926599976850415259090300049835732709931237272816054313761498760089632423389636120635571990973734977485230970107922933376855755827707960656279431584261293096387632829810050940631507052395095701751962469091671869436728385841501326563311540273520196198351704909598456944255470514272125636977585538993872018697325157680508580779672445161265975366683489225954317271835354528159606835303076237835191333915495900754372455109494630611961664132932950218086822526794411284996543411719678628758328227311146785729465375795376280610571602104522709364621225088346690144113882210870517505316359265313106781822402541397568173260963864790345542993749460651616461679490692030399362338661247927347669131162386513426519761391616819137655434008385059542122061574281605475642504622814752231592642105282619465456150562714898512515565649069267688905030334406571105749270127686574514684475485541562562428363670463371704987209776272478115280586973694236339251193175416521822017185862617287376608398392575279299930681455350729354725595004030785561766257047391507960089331029724778241453134384642047255098792076735620094372203736369450485575643297030133030670197026928240938385686487193869197725287161433007345226575616577005313502325264618258645648175672625832840962872863377754899974982226115609716438582656682749397316081618957390518541662602151642612493095015048097318816834970477383444402676521914577526609305639229119141571545624722862652185518813238694158839366887362775420119553033831050241615926325131366716155572835024802446441882794211056702139239392395108338456413713538588935032376449437728810368370389516438395703234007638207028343625090387703336078501198859125484153682455717714055041328413232268215623278795265347608690218010779904033827470369669378759976499574967950118694907613185097653103777506622470379503984065314518297174053163508466706846983896737908214164230526084861828863354427143881031111242697635726816437804105305513013652272252169805748597350257253843953765372597740385731418073181263121187909747798092926745044909167446899881966108300996554698317006052533902349430112344731862999042060050750927362432327734207169366370354129776836875702691235935553915719346261527853489031733602370464674170393155402395946086366740342155435058590851103167827330788379400198117102793264368658199721814555485839313757538486377122953545010774027839321196356950768608719127056057522000274244377089347642803247272144962601581235878016481971505633946112000002317612486320171331507855023796894319667543886560944317905930785657207407589041783163772589056315865786935432946549648465765761948504781475034243417607647971694001015527945893808185434359900872016231425126158490539922759678057296457580480834735824814522387676072479590613594435433789234865904387644200067707482784621697495343878459807651206963300126762558031724515356456778171235689093676803241238787962260391635481263217318982021089786078983729968352179877377488350218488122609926457055748065974192636671217265243620891294389105135457448476293027125424158098940825772596438038449327945058830741802282147043480483501019197177201496270659762238827371839775206166479095678662031763767282168754630760201073499303919871669779441129933363606867445182805746832579743858614390879239965686102970240334790017696808670291309603204658743506972486122514563002757046575154246595075279403230012532994653822975901759728226518949348446548921166535746259120745960248456117146174014381390562537166213088091941158763730303199563761966213793115696567582981438234882029023011052318012578948791169659099570627126947093603817516411660482198914881741681148019881651267012391042093289828576161782034072615056804589466283617778611799061355162111339436357936973695197217721786896747456076062546649747528206507287699539653708266909765754055951346765240568031434917323456857686769535376645606912264573062304088613358513868817194017344157756691396175805205449641377431733907553473354686302768336823127181558702524621071414314027767691377226743473682638098427626020440333256261424170030521561522101819665705706028399865878168449188233212366507505746284037060149577230317467946791643514417965143252275655682236569541919403283844416855171151422343933239818786473671957995077823487985458926670578014531985552723926232719290983487506543745748326610283214200433123552764700881670692313987173678823003008484689130448581461313883938225361434613292945560759561298767424280739194010836853301395307905052589542007768033122124307332644453068599484228615736388352637672138688843212890251657758029424142308981153922824671004364771402119201698542939552711663484895590372789712282978708280740652727139480973223475295828685253547355139002067656517706278245397007901508749527152290394089952783434525313279880161160336898971204908522489142204718794433651732626199647283904778797541985776056971255414497966124246819994691144709327631715560123872127487561417524010832751135993013523207176145793523565119796386847466013012515496877930429439206076667331579690482949190712964557243397799071068233059613815393497345630547226723489021584824760780493720839377482575790055255635196736055903119515114134436726907542681140057021466208033001006344592758620811055055453565303308181508160641368558805728589478601544659781809275326866717342991055957696147511472713144558141521115253421615534912475566383612230616446834696605793048793894095930773192380130609474435661845387779182962339572663659263368046131811908088578078192147273518131951909605223116475433548008536823143074371164013025787038609737202313394967848665222027555553766271788322268633860681627509403025539446902406730511500401152990870075938702069903999776275235730182747853667943904618234888471261222610822226105133144994526342156699418645654818677029217047481166921297531712060509363966130313484851395650883418049145047839601286185440887586538736916253026114904913945933048913215699033970556560573316911317885083225049404791628074011786314772342847530925030303089552743507489384130874813408279155383734075639617215891601847636924749042034689321054298645554004590551370679297585248135166791073380304567421802850036186627643679510721180535180534492903665629347797787360473856948575339287414247804814279212804844922261337251384234445089413364137327060429278055546783076180530098827698692525753392879496343767276465060011566354836054176182881146742481051861384563572973622078757662600283947869252777887700711169460991908008316637365870896906587753207626452874247538405571677650139413349562952711234199252161712988974383886649307020048047545722732798670361247932444809298282769332534547472275508778404252151614326279946827715472477149976454469551059186955219290153445343938159035312490511354868006534355535754350435523535187425559113635224479214303084423076214128321840400901297283821847749523593661397995331383637278730746866180473248886235592058884695612777024403237641353095883905187650940818518567521130991034786037933197378441524007515408442742072588575316236991777096439785617969078545920207225776163037749304558868608942707939335937766999867552088777296893067879667885841646950657332988030145304447803803578263797024780984799170123843496102068512632901979664340094098518086397917691962510446008124092373831989737662721904929607350664707846263687152081180075520063396025966608194999288639097732470175025174601502863919509662552095116330851235158904172797190601029617144369982727799246473286324657729752771438839211903595619793546282065359598399102112396846574049245413134228695412813054790289087811321141704843139727468433243478812212232249889977102654949768239060122201132243429761223254178477642309513658336817647847662873613195751994493547395501869333315000927992492984818068076287995453393454199092246528566708735666227072766613948916850095886883815026690932245846020458145864050910828607972739289130016385272558937278545534337178094962598520554876397643129459675196567636943913083652740038764538264737095314368397849551188167236051317435841197932386693377180274547433524681994012427621899751329820244613917382299540703809160215212526219424205624770696762405357797809904640941703566493896303940476438476832058712166165394036856410334768677661000210989543220191447347082347755746564287070670185893347603569814852646062450595393320952957849288997330392326080667380952285150679135526580972292478753260059512138858383558495011232133673502628656562333552016246381216896969218265305386332126197841351739723064880921813967868902899698729052353108660692442586272946257390499638628563431677063909525579229828773820397678552313071499022017870595010220166094276777717732417610465513876352974895733432962031861585920898341730176629412279302646407492947581538308820356134109637829285910793901918029594477021911492574427232421594791688376481468749889266157773274742776969694030331360558425116791083756418561974905883251491193454220475491291053321086402184980724117904754137656249152402908716558726191987224707852478426484964286407943699670413661417592787984833550577136209352511838451619416780880646560438149383341672586748030073077849513865284484603184902948858072941756700038167048023133679072179306569469787429790613188488528895248623949604744829239296469353569041437071383929792520624110952688298602175060096510084125285042474773925434543526391184973655487806633285765638241767604157259313317840490099497630518107076438744275828973481382575858857575757888475640221418614094806750548038384555185517474709296323165755532918698287799741607255659266034076255636974213322963270518817590016777637321373241271146723748610525888313914261860573454174549787626097198618649423373980452463223288061777023567433117784393405379541494438873122940295271786093479076148951469875109962982793047775396083880804518208008828150951859703895978865110906874259382731057506348125662439579553283091705957487345173657795135551250822808119764135019662832518982242643364945884735480048525254800556852833124314395824690229318289557156526188304076801065268166253221471445605111220758753066225394885108464601263305850464729929874709081270025974292272828801844212439218294055598700081076426784786424185962918045245202679953545294640356321400421070996237285195648811510157682921006341069018105089785140514532834469685851552400878685182609069661004636023338532474279704656953206404745230634646407711315577552811016172806324366721607627519842965619378335002538202929414997101859349491791890651341349410576958628981428454257436751652490465093213429535600661867264664076428487494391672627415294832945512698884762595402699552733686643108565856235942455692764203089550752233785223570587224085739892747249678224754143489524387428352075606331099760541349346579782416701134646000262613986919305105952789862955209230140231891215964648255280514521151472530766771533634813685742890108160960219774746716456571277739533571956643349112931813084687208503306380817308354288997476989127659580648402621772866720382908214023043339525611819197232030654879386607469510396214400924897893425392022780878808417749482929258972591873375487800554559158677025684778805131890401509607977956788688585024271125746490536022203461193324402523187199559860665911653004144297430733706838862831887770934769427129665164012357712144544069278441982355470660559363531496376000490453016678317635982484693638663275236402780607760249108531949464618436784021831756002166285092805437834724022452654986074054295171025595463726781632865469330598965299580293650759559653591657915643683065624390905860747174285291630412764184080254912273570358453659927085513161214972997605270073025617519304433101546380235415456550062732141915554205993145309890750078567074296931095692067090916376714739766005174429483164685410170264873164179800120294244049573976927754625331336390791292129744203203878511862851164700798835327070024966390412142314363743735217288449790278274688581297199065947814374496949697572543920832187187964117403675012760863539272795908007068664968134244262062571204207964728400676553741067215076644485446349607317768592651398625699195762347595497140538567572568918347679067746443778685727209813182936551879935423525931030747508370350121525770354143429971745812278296060206868702339031762771883782429653563263785015334951055232289764860651723970733018938085412371161560380898730272346751305609373922025554883195033209212220013968177627694669806822700477634545842824649694920930431380471106821997589371154492333134261022384001527326211342779818541905218327256125203903395541012525493547328531956637547384494432222310459755873684827947892205914801317360735260005119141223646974299688002090014301911133507227860374920629807075393509749171092242256414111213404116603649030792280006836273224967668479851537901957852926124944549995853826107467855139606441501989584183662666802611880028527913399845369574669899390262943605430167907168218629126226250427827718132076403545982415493879978618643444927415069833412172927923689530370072435177279885281919648849619034240618031180578295217786194047863298132221824073489547236853634410274581617021379079543699146478597264151472633029396350219420168382231922543114901716079375913946523477212421849935420495421118623998275981686490984756726317687345135734597051178579349430899809561497597609543482792532929306062133521987474057137016649386954321413546197430768695662582063566695115971411611105462915587104602850076548393259596527455141414352263945389596062195203107342255017640771402211147071139573287606656040723700673487694601649119637323423229270428687457807642087129673746988357077866607843490446640784945421301091324298077309291773459933770958580974370738208196955363485837163573430213408480749663430860473609276835290566230390059665606152575298401228589958325868671573937992101033178162321083950807031446464425052579333581356814326994311808236841448991138542980210528816636050675471834137056859924804761277548177591827376201750815446696280708772190238842848018432955904150943027886598716311790695056243111545808882586280479024550792147751550695151574656095717364730403700674450954069301479184085142846066454534320369979971802113441689009657766133767829488726258815789256116309921677239020066124940553458388363251620662591738500407993785951481426572216525862803925286772155792981329546357310125964651943547038214361159184556153358473476208118622428512867449586594076738855790632820145431075814443583250735726260533032692838906464677642105058412007300457096452456932194676438942299316057805697089458005989991947917962360976624887786866553866060650972703157469434768136302461338033761124626605898094808883336369763088267770383601204283832134465404299714830538210141136341719874448422979406634881355358450408574357518760692942990569395581541751499343679591491097503249325246018612525534271799746760238094705036994422839615840391290595453268289840024658056831194391530680027642987880126671458986363559554319671226983879451940624730685724761815107963616638588512962870108267914103254008433751262159104806775047550949229773321871477881349149467979693354035135390350775759395648543025731498366098545085446504372706026902521271778263562489254628067364485718511992935805409461939431687193539411075458029823469854909441345594939425960139564924823646365714670655885647100143765444690615934056661814207989194714054492886914877657554856045836338312935448361360733908980788972020060456953034920978205249107058744253277381307684977836186794151436639327742356545932362937509648227091701367491217635023041882286081321449869741750732381824327300545868210240833825845526125935500886659541386954920166288066997288034088902947537297685245548458433903009204099990364057701326714898559584853193560082075481729897074859645022238725114523872572815005168295558613476140044228583495302743312443469432044549476222454705072024855234021548307268639443835011281951583030077737732551323712114144205093016018928571900072021490749977278818388060117010312161123236414974162459876566729527121606085447289419031775591852256273262520157400320100313495544514510063379866789852579271038513325240935952896938618357889423167489395235972161459861810912278730978415410416634551326714794557911432784086950432090976336140514615420599965478522928169784639527767263279895043599210826428574319816922294513112279531542703373228848367459377034620831830646002851188539357624004879264746877740454472413041704766011316708866504164740959241273780999681569302982387292327806781673799043261925300568262478583553474257270179321913657317937417630885079811635637332164486652857552905118605236846488433642261288765316128372540962140317100119086463793555935879383870915803989130391541292703387246875401488257693919606829862994384849541048083143195409892973732886462986235953061877641199100323379588245853220981042759203179132720401092646345530271802277155570842732506614927328344004841828499196066008399593508837688525125404968576033975132909348391168752474988826140573283851828226820318431767027407084882108186926538649984077410393805437191207422040013997567763875390945707139920917347497336531771090972917182603175075995693838942019150693733986374142357834293311712606017795325539918257304721522116144531724620396124245844927406905458679490575262678682811613471011967124565186151435993387729224453453370525734020097223494376468444939298896175463688509354763958977941544065794003061556849859859238298037620586300348441953037392205058221481880117863462544675705293827299909127428739059282533885984725536430815476139162735544435167763478614886621761558060415867741842175594343445735031240239897294508933640635458069578322261024715780881877922813822751146983425719141564091735899488325704924580813057320203480155826699652628847418793196011971021170308784134001239400047831185384527120858577185614067869082779816495299914477457353858949604755215462572266530786042957973491390596536122597332975611296300602640714125262407616880718942491895631609900667657732265465165258501789561620063483067611240506743438906328206392168574446920267032244194065443408060236587497973238599506265309564756019235717505253560903647162485775271439118180366909768804845309328327581280546352228077937412094016258781496160388845346058645218455534355225521368309192308039365259002196512997909601129229360748982143501676482945240000458821672541807230204549771616501611644493341082506531377075504510435232450968274481897984245647424472466576239386451898812236130449425878072202535982660889621138133738353110305797222958275310301042506081325846006920283375943109897120043764950541848471045295508582252732209492908321677323697711546955304126151869736738382852227314181931862447188686807348984913494934618452930396575008802718662737157986786181542218671008928760050855345105687040676380375883603396592366177004499136980739560273260377225288983565574035310717131757971403725743818893388293010760983817608234904008641895257139219760966409330103164089881865451391654606961251451586785214929913286234745027265532534999337632510292004895121150234087085574540932375427226486894358700787605860211794157027600771152126207055398249531174341225569690268355326841900775193851811733148309534633848342302197825813870856047750508221321996738829923786418906488349927736422994761047779405448882535517076130032541040294730436848307557172710570042892640720384200361024623064997851736211060755113561906104041409665114425009769239218947803675418122419494975544813761926360701742820164592395941117100491014697288790703017178753074180035670762601301497781057307379512585620635921347131929268274413875695326250306985584073011792179449097811836693805599534502686690266888089264883153276566980084442248151495411850206390594261189534591755078208908802747231135348493597730761858897238058444370744198864780543128791051713773613873654933838380169141399681036880401710006882064943522578029413269686281937803588481450049726401220886349621479779942605734587657020944748219963663410847903049725712153312365335772230164179640901051949130383676975430726009899754530374536810291995564510334109654259116564050643057316857131636503537608465191232288041397128054676929584050885318503418874572395006244202339938292104360221869325097444879421765595519055100656125470226185760827491263968680254579049799151392568032831043674193086218450920064798485771854789589667961497209385201303746613106510431401526991782353540487267460947552608093344260000235013506823278718331562808111482226572508907731771141051270764977367216594995075639614414820811833454030556261141972560447674825224811312089797623816020802261175536454492253122095921505450034298747078798896521342059027360775637209319351047120696419548761034247852188770221455837782860362337078848483553482804650882760890907381209789681292616116168868624624045358030618616116094103497209386693745684075188417540836172154450122883642870513125733924005204836099387259303794757975913592801406224555444148926878846062265221234462218190283734197944665829585771866964784040194256950833118878367897771384579071352712716067264786331708665788419333046323127563868547645185659314773680792159570894738381565298051617272054757384911125949390728601426315478850308468593437462589018568673449959552919512447707212482208112833287278343653819201360048575827904083655616935667451053179491587526879797653431018898147030511021454449758328542118172565485606729826839684204780740116769284653426704195278442485602970081663132787414464921356910205846313579966784579855990025831379782240058875179844712265286828030756881515782755776790368721904355566176114879985190641693398541698509051911265858532354785193422833546247801613226547961245497104556837020055694224153937755355338290341608900278257743536608488087347347119459723409317330929849066781255645213608977072937766966816336433145556498564970577753145680319149361730729921742433397732399901097162618824307200810200181022309484039164572641668650006915015756287893260709463361742382977148812444228122835986257401908503912997782851563357273622655482993188602520883737117510586244578527320347289468144318943687880912098189781521394093702900820724539418419757032520553835358250385351230414214001152889643117896553783467571137117351759822432430306559406147944010735563674460997414179950976395725840621064765109640287857789164271870339836836642132194986450336370580084448542763062066658387019841211681066038394626813959615651548462923573835266914003057830011167321473240114440185185254516959846542447513727934250189022512038603975195973162045436066500900171496400728567341600300489010440841299085672113009299794196013659700866001464146175719005143481489568857645533462028984266404681636249224304452423522026118660611685377080330968968657499404055184627624284120556117050520050642875099560996000638388331762967420362750072106861194664662652978731916018462243116547839697908446735198524596435978204536454185769890697146019014477940346837002612073167284282719597011433695981061833606817115706528666044621018737770308715790237403321791819706755040428395378082407504332814048570747029662328509975986228305037762507067400011609718622492035823027365535043274412298124515711872026034557396237536283173571136324511362718813120370331068887584385860875531668947541502424003007644440270538758111325343932596856177542380154702662715331102929493908197583574891219924708681319370164567828310886344122617763395616461947429375184527774556180427491795689685639529835928868989510562453966962355447503013369481333525451048590863454773708404721946488262544114831785645155692648598122175182604249001413969388192305751848142217362613466706178370978563585895261162722219087279930076003929224253440571780016784272719096771934950744905333739635278390178461469240760969834360783395819638708237693036670087325242380020959099835732858258337901026492941382278759531710468824027209434041632282413491936466505848431077278979703863057574021353087761586774540677234883424157380650031662236537495227329141875219735758714130893051510440660157382614468049581995011630300330506677164461809818839555057625949959789640029253312245209939984360277236367094727523399581693765533893458504350249956174162440853168831495435978132926135283545589717181119007089837402372533784760860325136081811434902876587082617365065520823039781202022065200884559711443895681498534622491137702048726354006357852551315533843803882792544248172405730788310119962576110786035033253025274759090637004727601267664290032369157089601376755238005710474594918078659071576056675616011750760490196797807828700918048243577053566615327101650377628223929107777983495707910598975618994211203686169729831200954410943101655609360119408902183796068273152815436134495314202939156859299445921267669345027437917642575132801971698429847631553513213225144053430816217417767279410341090709224913468385214930675675109344468226016162692513244562164990901321343482717764380524324102471809168672945101675783843380403655189860996013754598659790265872226675502754599454869193121960903413227161048077081770339832164661637831841757716858534956920498166722720551422593980036559134944452629105518755930607089913507469534181649846357816231578156545124508176090050178618495159973544503704260121523850799690262969164498958071723343740473977949218064674239957595276310492465790673413904687652227492257199478422867859439551200853731972634873946592568524564812443928885721333700445314284422172940579230604519456278579205729960311777003977897523226019039780491292918096981971083397488962471758627189748216533297092214861523817615083111993682338980094550836020524320097636393061953470197688380948394762387314684336463666958560481793922499392731403205802049674853228177347887840533284752164058970929550602034516386017524082244725765944124072123122195553708016573696414576487621552546743057203690103948623309166551610481536684580353765498860548298179980278126117652582729039315142366887118892261289749389895654507085176714732529468941238541263435418830400408140178317032394706113106365304381303068078450161670643692320445123169947860954989840565406100858107829546744177110590212605298085228282339914646777878538873167471021924888497677793452652439517178104678286605538797009718082240338338106817620837227315592067969112016841763936843230339919662686198508431795650402821322621211307868135379210963150941843008739592934561758647275372314855184810449517622317892529678285271801916453684317476077165316208890763935795919706493183760331431744880106131620156450992087534756353572647299845566183795678134125131131207891243397857606095328776424736126279636913989522243539334665111216375287992233501533605903363950769668237991160251057851593162935720125567939725314691817755302380104632392979440877885961885307469086845145451735404360721036151551010451313820751151420492523719488698165014307836015738463577944059058375586605420613244732363013342474382307400875755295465802740019749274520752973591568820951287672620011176363754241633511999036869725504331295183632458269892857272859868284642684022153818812020576569776907776780089598848569113836892971456538078003611924126622112163796758487905132716100026346502618269261985873745778990315597267829661886218851539755120372058063018613164451415124819619138104976309303899162387280483804092516332715375669107327605787662731481810037197840036141297668891194762974346554691625513483472268213101785675482034447565117191841648408896587234560883804534895040093200745521834458251888343157922054369682211254224353873887560331614901491121786739989055698722595144472305694667762711743395762238060637714522260712636149670657916731526562635186315233460155902180735373850858940271052584579061081661231902703603875608298731027409822268430057242163126147803396158292387799788023625944343429544577388472258316863013463112578785748337028117241320820128265741595341620708525105217122780852127152701844895326543952054955771466842234651498432424079958787256650505271420133604019197299045520997649167937706966708469249117348330486851822526153394773563891196615628029717245868200008974381593883979548774492493516093395324482482798111949432411183422032274635159339992010213433799844870047566931422579993836726255074673675748894042122789893049121053219406990467724060726315719426577264849218078756219407940753207668971087505950056045058958627366417380265762057532623889447299961706352874257246397576352298310581283547502095142618090301204770992545942401922069108449182464118517708137152274601102316089906117518077463616739545726827671647340613260478450279265354548457456137498102695031241611978642082251001154734838349077183715843306169927584462997401947352434589392887542311662735074233834831725562422518912414498283998621785862385039825389558082539329954116437562307254069109731778135571513687733938445827129460054473743756053419816608451483348873621546894974156079115429692015682707515367703534019385217935348898811833009666012881121667397850633650348896167226482804849387601791782355099285238916388180064882081620863735020165033153590524063832908405520499820497687514205790954764050534970461386605445084136729303941438663552888966325890284846021337880104988202122674307127383325727593575731730670417037506525175431240908462347020890950712310396096852249725486303313959675160394741854387600293507355615342998711461498696383091676483671995079516279502587335607211399952042612368384585810448075125021873971903947842105112812326671193123376987330216639456611113681662060241959742057176255778295444883902835689679060229934141326901942060634364884002180507610650269204883085333972372364526350063580066358840684052240540016563124875516368537093920488229523847813695019670054247299104783301447417875531178343543224760394517960525036209826228955145529835101840136556883990269452464293398215044188339551139123458503432620169390431593502245973987619988326497945479321815121695872532217115591588462641296194904575203127756360235243967784539589392551283429939516763153019935116701443824871684995598150233840155725342334522184863647267527339904407810807676272746791211097206983739534158652636159888953668399518800416786288971200269429648953689300992876377266453594090435423720291384027526169923339661713174648033406135262769704063572707508966166498029198943423164567872779323133412401154074431115397275527869072828667671586583353239568175419121259704939958559966960058696183205590848032350898558099201603238083186458750651045883863311236287518567815537075486001614245064133478475984396029254030935337713054530177742045488718079855898189233227942726694841182927826767829042314314156586216978479976807115885764958284706066874666120897211562871644981763229545147612069335334685635686546344253988822270717502274888996424656096787647007416314385256907833514564439277269655827889003114450751778628808172171210927464329446661737604381766762886351945016724227050940915445394186559426311150776524392853534915133191612183312604804108334297566629278829567758195407407959565102444334483715788403714271282559962706450149419456292808872081927719998172640932509794327380124550361900151983277576710555348207091742397539870506563661366273631306316764954157470094775799541589368555858320221052333188653560711784097516761440554548547506198476441354235761559918276841876971409446771583245461824633673251530421335268223663672214569853967410534391966433482894879274404195989727627180183148217545050586852457979385403338307285845829332590867386737668195902073880206490912821053010420678760638723072151423375294156362075375833066299046956716384016135824539981990922613253542450119526347096864323204219493878446987665034033676191562857640641324496591427712839696406741387386858591329944808187717004666286876426925389685312460516330044345277064287017845977013471164725046910070095857727347187786401339450270216841388657524238809017796026176585734827082794460808332554709967501092599466162616327073097678418997675101700131159426341953881028783876940312936422550185245282018476928775907032066049743019333786895014553133039125691585248732792147826692040352032077982491948358792328429722595726285377033872957099278799294309079844928658402395323253584915513604161043928794999599703864987057484837010272717675402314942570170643929226662509186850801671423998206924907023626909546660450459657807777685456269660462535784785815570815905348545707582911089084656546466856063395616945624774550764825747253642749077288789432831304738037056045773452651894465523776677788565133067306091349950631331652216131235447499388749788350549485465547106929423119261388774438949661139979765269855043304836723861910929676204366146725752109989990238957731906356936753184116440897999555286814968756693608204171287453686945268853967940289272668324997298755807322208201159689734920156563482497439230959018198125558724642192984203892793923643607088271184476770497064281443722258978485240911982989323766602014693845867512471798286913636488938541177024873191810370408138690560904323487260199489544077494503522582850796727844888586348060129151055772401460980508589748879274473154276359255432636878990036546021809377627320900515301256710603196995360081445912279277646066326300117508852096202026023399798050989904054968086194721458099098255707387549512667316788623077784687096752606505227880824848395871294752496426518223629460376021132391079466801256034004664055208743627168486345024016633833079928789085923561636909581889172255697494689864725586514380444139597467088741958278363526478200647637878493642870522745014233609779341996012808329161775047077004606301541505068304810240420259310020129714396917427433241314056012399185722263298534420956581143265496273037965093534995155074176954109231021965892647646749101408860383741723376605041022621543139624512395839408205444089147381699274158369488118722780565822506080268653722214464211603330021939407010610626400618689048477119900777302758354429677730834213747820395548486936111502905247294897526848802669959054651030160608160684636097602262867954796425834411753383477730292228414897581003412459096905440470218238875589127082892127256680086405994565973860175941418491871742163893934844987381228874801646618449275380405413597990732106277377069395826143304487393217880410843277481105292248951721608156017005056073451893243847779839308568323684534335618179466535885550539217874080878528060937300081897257088655584986242854366025572052952750554472302573195232810880991878073548937969365349124777189229125129854629609409073126675351281588614973479208481631231319964470072264348302548969376165233889697483362712167693758220373994359357846294158074696190037883594403934154546212191240879376456832007651829889092847309461068187103134231718685120921639477451837350453091183087907062458370407889597719053588666218602208240523190614794991861383842380617646976447831239978206533484911729687344510217714348178372118324053025897311892301435076938413185867945665461329196780463770462237753756622425978037672980529406775615361421370599733283371232685145792393221142606755310049178087072228280217827494613197282335451701265081526646184501091501479132495027274200874800311496122901366533896155625156364555644947532414216376488678281912578631390950124503862940986222864709794882153927291668824053427203965468976434315075464718536585948000388454346267034701252041573522337961481801472559505338294950626211244492456239059620666933113603018441952795633203917660303592778766147238116500506706016382480418576519842639893367710949225528659301450618865625331351166627478401489474849413479474963405019372696947751461555900444457128481386825307964942165414284268975632275294330983904750396931234730068815106279044799536591060323454379820832254756602242320022961563247842298262263935903408552259517522262229081161315574541372718423927668136768642025155207984088063097547089532212054737679754959918050050016122073691752396975473009180752358253973441902371357685813647251737489392838487182270894101685148859360499648274858049848749373306767982140646072899219386026342153551920629569345110135820096472197227174491950058051406433021151864384117390775256703262651219145848437317807535229387045178018649844130140702514636052115767500986200929380698649076231791937884472879150545287920927021362812221718955005105255218341007262273388200004750298582291908349188753433828430626660792063185406424661676229979357233315483563869443938793218870784016261947097714162149198481553609498627905106586084918733475753182175421677986639917098965175804920403558179569355387808879079189557887417739148069654676731530618983590527055970993206281453588426632707781141589104898180126168792577392991736653242380692589144299386335259413149747496401666996518328816375097737630938822549966984526256796664939346753055054558537645830558058275807377851630508118923448622213353662425524433699811644492258643325761844324958583376892753440417114688476144458897982283946156330867037580593726280923390197414351159573422991098582379468430982547879329765947008526037087971166003438453814403326058520054090280408438506757101031886501683140632214506240951855336631220207267073780950304837734601805416433183481367200205977376693169502909210925489213808430342227808994210083487708700890654554636211639991957471318019188802975216668816654602205391187028442587210085919188556570436885554939530368054101750628939970935728313080252366130701827513937014160981912318234734510629988374270620351303208134132418802069825240254868798430785507184518458768380532157959412857611654283515212201754246278717713126480451198960267826033446365676225137014003374288958337721018422359363599253116705462764563379747329281979201067210269778544736471625563359729143349743046079865537814834473629976264092240125840916578984131930433706691542936730271246852032367671218730443251383965519738433834442037769083039470687752156036732039439151330874713466627827946589396025545896915412108635278981837239229576547456353424960325086212287263523319676239914924807440867175220700943696439330202776010109675535759778426132101756176027335233205125157713472324590497009779028841562346702856624097825837269195396412865161400001414398739323299772621566480461454368646212251543525389216307299583748983796622650200255910377701309045279769692739353245797001363279229951956410788000619561680258507929158843101349366595810029480034020980352664585372911658512522303553508819246361126819505081717043138777178410430619280905132792681797758312627874503988250061628602896632780044629752039904961183850756311099713387272812797902615272763875415937997970148268467883212397521087228821750136603748237613460581099226301983500762540635770927459450337457570227457465007116189418817954853509022565496657487973849882759806876116151500143013259709468852101286705557332500193444370209118717871398492452149307388098205462884571327311823683959078927390197111860629233365658261205127742193014368482487992139137193042221653052064951360870975618630485802992576447432259097761327239388383523673072525806326183493884290288875954811542081419022268300149636595092469514650980203015639889826809790588933756208306815914857698032903633833650996749451672148905457633080045446189436062782136910435177406276141033482329618012889022527254315097378363890787669471152623384629715418071106030247027574824688753305128293374876298940629788849348569732155691363485724550725757712391340692689688346750286659993950646680762303985371259970967948442870020999153308138981528158605577283336202131731800410571710712602865810310980873188754709846535673755734203540818444546104817636100614189721024041161917273962422879390423373011648970425023229640576017047803299959134126349790978725915477036990656721338790423745451221969681094191425086731738296639292748621217366075369772929708247422143470563137723266106497924619961542450787677055722895260823416913390584642202214806914374188103941892459098688769283275359832763865625151500704533359910651843347338636393496817007420965866158692993182205403758795344657400365978825408732626742827997311173703693188969908706645916461080242405097760180588660237894743697595023515313024637857802581034669569894076661874883874264906881514569037208675694815164011302270836727163960261450953594663821356513354953053708919099861570129142477161371133590906503355713829001955188921981096095730799038885382615739512272194013734676823767259244852288665073889371214999065523386481486381943107337260579372723023124424645672032665375386600050676202186826206009161349559128164336321029117782905213104850677940330417198277318272144478246702197287857574419536926865251097568542448190337989658489083738176280838879572690805047412511423051763626493715785922004068880905557821342466284069882463654644003078858406945277785974025864552936608119960923959743303438426784698862482212241839003274247597337918316438450082510668777802306875127213761706026040678963270935988838069805900579216726864049070448518386889439820929752780911608441451196688913116488771927716173579031047700073986159754646104991567410521168512236136029740471025539327188645700218317700059853861062532227727298498240402013048833008063695597481628186400254637237838209327647991137316351880500590947038693646806614680994518535015051198889124429807044378815440144577351123760509421871164566658018649616559719477920993177990376942760403274791303575224401838045821173844998349191727351274808319147801200361515658478257581296392313733553470068730464894780605235802140720029051942920103599664838547894789856929571068450158753222171450248053708937370582631137375740244534752143062197701086769950907279167198768705649521461218115097067535171759233427710451352125891833319860941946969150682942638885652701654696068976958580942523927111153430629146610719746110943899207204416724209585239490740122799086936132257868692820904542791701594275938658988123805128274425625626610999714937462177046180791646260904806410197332015824904982422228777508321221382247960747227542030573601976976453558717303129801818307721735692688077027304774999366041816864998934969187664371532031143472226596923948960713936936393281266775190998175433531966421294486010786128825373289094461590359105830283109840072840994388362893009646870543422121832598422156322711793588567602342301913506171217694223138374829701047908187957479598816717609404302217043773481367521259595570758418335548461631410846483054228714978617056811384496514077107976229618673573189007293031294963674991436531502179532907716941511706415345277145438481734059789366108690710962787809932566776148115826794501472691763691481073789457780771044609573623908392178065655650088286553323812080058843871766627105400854937806188897619703408183119308360211356949948973098531147582226645287295890259972120979550078277840178031449174799150380901173577267703808056453033702271050631090576055891673218408894399379826797608393604571210835410060949384509860793271303010846196444495306342573304287051112030460796926089339524663308054508868786689787978401880294917203400961339001403834357540656618877013223902223170042435500546023638826665401712242683513874647352047691886159703826764301542238418489221096669082395921307732903669683476158736685566044385663441372068799467071063443609863275060084352234243546452895400180730688614189684506521187433817818312071905710974111815784965363423388407988093031049335994079599465754801173205476401172584028948695669762938717629859244635870408281019345947176966936089596766717539265414070056400917197203356973531105213408219266583791267667566546944174203484144441011492525492126916051465847158801994080686168525634867933213528125311677251103153406510111905663622729477303047307840311825698805191784257240077500052397232090740459751427486501648198484859873397396924601581690188526325916110593114027439856304689135616939784703982049679259791381593012332055653483367726765560108351624641858161813032337190403206635733065248589762301963067734744026387098615409140263342152553745851333384765266174557593866518626331287256041279657478781233146079809770370548549602675456173118019199155340820776603943124905716687777945535850909468047975933533524979515476341779458781966991719412764469646600742848846418505539068675124497709631470880333595178633428479177486222051031098306519922639756469801158832061169103690953023583640019664749545888888585143078351695149422727385615951690691606031773689881539065845649959121676531900767735105708483839270484656163129353598784598196930601323646706397898563206512024219507812941672848143552814303453417323586902848480966211624608638383159515797832017933071896730799646210893136336068920075584754381839529024317633156287882995848871782925937136952305865764069249185995986574671820461132223630857298579963580897632472103945971438284877664243406121207075213771231314781852528039060313362009690379816275858179595526068456468511622660713493190036146835321419108696317888147823715040915154516524835134207278712539223770895451446359549862812438916053754419850216657493794110484199451357482149982177177613591229372679836009009339231882629754176933294954587082772573055914954317982162789998685741138205724197740063890154868568099923833385820274202940066725216998279683635143972037102030311868094608750349542415491135711160533892793760251308553390964207884169646282928610985761219383234894746373495029960873913896640330295378677656519421756863127633563676381008488666551231002263506487124726987935328018525932838340783192718337363546854610150976037629544733418491918896051553974589854399135236013368527323201094435401444503321677811689623265417399144180496641645876965500312695396239185957128524102616153259088024240153876458572724357333328540840112208260860019672856841364718398968490945539567935131336879324630880640111329532315959010531950061701670691813807694260723467560124058006050184360336334535996751329388036234028304953839892506095071423901720640274973124514223388143711736757625527836751594281942590466638429924659100707932941179760668161396260040116282290623149536922218461203674917360427462331734046248468441926666861410163863394803061538788941152522095107639319292516080615228463554450160427411712589711853327641611480785554778149064549900260474463834052361173315367409374428907350062191631715664058398090176098162273468293982903317042096965174992281026301010881934853648269198318264315166000476281706841595444965831951636786299316262219096755219251826039250410239760357982851925579055813622769180839389276515778075204766967695767002280342450023068777085610579502742985337718371621377541717808234498519769541674488666330649586622034956042585353951646154159394408752894593042617469838352888778860280804528337964771030974072569871655086658841142764053610473186223253961590351013509591775271892627532295284156843741710320350102315999944099059958202562134494811094369255570499085749965119720246753575997037503875929386822050433514879792383388830261912795736295838698280131015387674608462134282326127923266963002363752061022417269616314906056362214615245351056435093874872653368103529144685446769620532672210620255275159037120921875685633751938776777581901648402439439272571097303592992451960428725103075868399268991321722706568927190508321240661743212228751072497018348817852859964749030823778760934892679793253770735058070850056642359201438102038645602330848784716118210853559134623909726608008951806207265850090498075717564136093821265966155003622775051056971573515629178546392098243115912230963851955640320510293006616360600247686296114760003026939174447290677588260394004713369610502991854668285311227836142088247537142811908185470683346478453145517543041919484624813932621982815190832598348534532961820915163993578027534930992344487037938580125416697749875297520588053306460528343129236671960981691190665990382800047438664329557150364569203334348157362200418343831097470331513577797880734472289824514736601278746030001754853608617290588368217182078740370505864835656787157791728821154936351170609400563369642259486387200124876490658945253819584910483514354331079431164425014520823427264299090845573019724767868970507507631535563668530913381156983191517321410467490222364145274216470911320897310436715103901800814929345642294177352973383787916705086954206225160465921940607579090817171119724298146464503566547801870413331703992234606024449054088319239452878145453671723391720831189611973850413680799804673942269096713974890857118763906195924782918467517632211455951817937958012477961134988514217840004806590700517462209472172791266329970869776609659650577791970065359510156784594526213192650320857446532611252643878746029669384267726255974163549828096294270918102393433584362108343420285272616487384660311530890650703300780800421565000242329900803777573172681598351340349708785459279553458630939392846333897655533082204721132479264290373795525537832542282095183552245933094637716520075802209980481157411266137107807411092172274682188950771426284267596851493683559366644905503288869673286749768458880657978449447006938297488382533622160866884401441851271880977003917398005664775618173507131752123276246803806305553660201787404240819441429754155111819422274004406714906967429088269526501585666385783151649131804846119946893980191621352523410250634210635223179161065163114789708767643022705524109708446288086522432003624895306909784386927121114117112699612323557902463395653059668601612866637430461760862128764579660132989749950363504804615762491214511153713957817453765796683758803999415610141396713633421015189234277148746446815483715757023588703492463536336949223664627413211683259529885289114813253036590400652956708600614301148171235003750211815049102492462843946718560062337741217377415025899362857168757573690272670703979073881912810665262224764443251842211683785985612644206557660353703633914994173454506913924000690672503626818634446644896308782015778127865743611608243586562302450701800636745323080636510810667433166732699084737983064530579341999260138799573003015704600746112634313791284087296435418219511985637237804764187513398163864451137661337992728753403580174424530481064572865103951370504525394159942449520259853549787281734840927531898124222967318764661303834439607838834703304283450923645454469125352049393669338403333759338063204858280111889087090573599052797307965864687197727990498267124347243020471438335871299345323164927782827364452866680374509873871226062948380766525662268449735568298901091994918802300519261163181715485220714543466343526097243844412009304839472312350120285059894309371151073649646881755553297600609142770874085395608110001878859354741319566341091853482987198208202020863912004595552260069325004432946033773084169269473906011344458372939352797357700572622675972398138819151870610269480414864610526125761113380856303381839919120339846340427292047663163822102583225025686312424688927794312200753085111459518909936739137068559743984228950423118288542833797129155463950575334607145231260590527717288357356433538646654831407774977327671117269284355328808311310445528549116334451832370597128348990743519227954946708111201462685691085859921539252218361106798041080803866145908778690913600748305129072568063572366526722517462511505768327852916236856376492553433551468287306181533488214939189761159668525681863309175537630991550684827055441288516373806086776247368744783889696514837695592326660804601302276705153392078805201455664043692027721465665252523559244017770152671120839454751891624013021311124533222997264068449705669218110957310119715635738770229804076505951188539606661567599622928277788278740735737035624752540855641864681367529752017743295407686519960375401756574288189790751483254982811293199852230661512550322140623980354455228419917529037358409296795555083173384307459740597439655612855682527849152587800520432197253877765503580165783424523738312801281657630517069106977608301522553168213650006133139567855694163100153798953964968500635327383171953982554245976731813923286664640603390248287103859242127086541127797576563580738418946417610503072979145795914958984562999741438680422517612749747651357810431606392746722620711238838459459683200548740092439645338405528505538636894643779802302678015728725130445926335731260285248540669801980124731354164852082332245406260877454540448929363952830277406665674000009616091703346412251023212805598211423113374384865125293700876054516789406531878135242820259755445536228084233795235322068450655526236358312608199778525468603800492768391733344989221033911625404951300391087371520872697194675859525682416672220118852666224095095377890987482630234971957378599687008353808958629141196357489552246196400471006648318340249333133951458091387709887890609147491757418300506673834033989113588905256595961095720803840198596874983803639550740459811672830964550111237923087865359788857942690306221575937788114957121052349778761516554943829827290508133537555489682674397234605269887681361929912548960554403800877420803646620256019043700635118674806729255724470897617133569794235335892232117813414115780399186893963655571757175909707650749426557401325873844155072687750881534239932660536144547384468040568766729695509230268637633565854592972818736214155279090895208893724371700220452718810051348427206937742494274793121131299084363331554465714680735741516126010736303055521695374063960616886997387005981930613625115562712045098595733963746970710347201014430130944813709358804012516981940677252868312428425866990448754999124743750891614958871264387592014808366632607328540270780110216953767209444721908174256039404476006016230392138848905895217359582360091555357611468340710841765229085139433661173386286304502316652061789781443746956586740671265129663927822898740905471145106192091708556859004849624752642476492466060843469388473321977443096517564048860571992105783955813661419218707830992942127353881480582242960177257283580246695112963464419979719266760453760078817282934644764628529077896268569334568841955417842602740503790868051798835744413817101662439989698468017732057248606771267796762162812384482179985737320336256814038164992952793716639084682431730749881494422253354054203656665019124417603397489154758108835244871065969510349015804275351646622178329226803288722212301641615487569282540594788928913831332024023407258010065087043436469975753565774082447831823631657774449598855825152151884558351459633812017478335092529087355541827897311528008379574004933923421249591639648616596846655803464691320121835991029737215057345074538961679677756035809778782863410134030747928939251389716147589488683117275758428581165051194832566679136014119267216260854452808185881016201488946293173635008358716115837607998679748811137096335666546154722901173231094524041280880656458915887907268089036949821807556549453600057223165779155478989557965566934327381830454243136854795423106741404865453790932631737082668477883626265319886129865405215035441635345172783286909361276854333624022705926837320895435997686054751929023656181893632975882609736503839263376012999294730830648522582310523466204689861584269966002042346366127176078877734852736300177050803792790239025504570747061546335096552123942319556885033920608480916015264487998512240808663343520991669128018216915573489799228807213992102050905140484964108451363481158395324316512825746183199837613146986725646393298461582588581041137008307533447199809758905328215011474452572722588766864540333889517743887341078355007570802971824413617070298927484858420135325562530113722162848164201361897845336785588989242040364244477984338917868180254931524532714188325377308389018427909647521157563218785386982829998646823474457413557692835681852220767006331840347450769284947216602973505090650257902172336307922446914842954630491741757371348849539312281117098666775392584198808771464994142778189196625472620527943892365499552965510908301426149192398085203967868705647415696657998637407349571531134401700749429318797025034637990298773260323233092505338850537904479619287968703504628093528012943754320305309842062012815529802949826038033619908281946559714057070221116421827818566875415890032219747325731272299138232774059943138347391859610306772806180110857004753697837712259834024090527713528204516815886675735836877297939447447308131426522195888507483360780860913200400849929748479277878463713056593120595634469448495860349504297434867041407368679616088125546760176054709589128135183253142570421140006061165672299705951261785865579385505867716862967747063253056713322041089128639404880839786006636444182959048630101797979593309654960000267934832943450019241286738980610957011940191949953413265454583155908948314109383476508028837421838785067725366355303261865342930124909231796761201178351694441016761127428875176318545129744165649703573725384042467297251927517410245389085093007581104112659008484630462632234129162334503189703751962898993247024845747237036254863156236759867104208126736997410402184777929862651801763075861305122523321217857843970849832654504532923072348607842903646373786787744682137744502949951554629431395242005210303607411594438924137468139786653197896308331993705674151161400175970599472514632513356322124173755543911103475057862626010872843011222722724713398574531614285533110864490991879227666202373082437527057797359902499878924777204075245271350254839176209749981501060081636651338455287011339583873491164187529983693074554061019598389972591461462877549438877503719972858123723326964121238884124290046756921322123877244259002826537757529063732345170627156451597305350372830484945551615597437454717210737792266659324479719566701042487569424628129513816888553752912426992159105889861644557335988343919604967374924271056699397934207204870735700711587377321253584576981989000809970939963221114342323421308406941797007506757088771545698063486783210976622560059299904317682558786335131158917520319882475380938074693547868307983547153766581052125362835536634479334648851847006381499441701734801817654753988317913216036783873959778638227330819876203771080281799945003851440119336357770876276164545328033574511967298368715528181374168150284049303777718042603356532196726766926166956858633917062600626717087341423366924632042401467532315323255458016605068408137742586146005420794255541198895502206831034601559965372450184989357323321445266760078061252606855953970315439961372841937963135137426278879864260758538050680664189255416677787802891950323845747221573017575488866463532052759104636494847364596067685835266148316983418922182954272832172726410986293029663235757504411407937065426995978123530405683867903079064849519369679365161852216381101962075172096975701664616167223253642678605959957848314183228219629175312578668162111183482059869890266430365993175966848314110941742685978951046037653364415562469284501821747709397898746678227390969099867121729454645389439500207791701147370160970665187785694012088689761578672215145909959474052463890814516701563275369293314621479475413268127950762203642601358468583630847993987591328101183812018708269717629971311831673753905189900211033011231449182608798617440689467692113323771632769843298314227680573251148410101837566609799120489909289502570443887750863770306278038808084682621826439008321362208046005817287649749210249507678412062942736831120147701119321511892560480203354995687043606517366330372436136385359958059345003456500284635894822637060866087181749767649594443832572959277477325012128136058175750408753102635253061294605938561007366110946170352731863353565977737024564879890381110566999572855117421274288342852937263112593417045680584175895789895877180019795410925856839206188345632802742960752301243908112028148707684935724623088217369948231916888288754599671583892211511638981639899321466778022074015620582146370906154470811685224159381753087150747458722140779439721392922495764796235152307777636812651963494103585249897486688362930545041368956565484010174256819133195326452425674396675943003820696638666941527295973229969714309020991209566626126075947519643516863388732064363466536110624972857105841457307906948990370108317815837469910103381373693967880968655239696909387953326444322726284534711508363016494036740969758105630753974662812588742486593564071082160523591041533661480932644835475143913256228191148615270878944705470032235962287540390774479690221928348566689615016876952383734173427257819719315749337574097530037009645100342506516894177333578112514085177181072089979339792403247921050056910987894682836901311751554905435553787641799564982475293414047018002560241073550108578873188866142092096744444717609075348624513720097642725410336814419229136757861614746149904636399184560491719652186339085081774283663688953934783524385427557313475362835800724253083543682723417651833817659015055427559500476381997902472259841857670874853498780463240362931469947104971974169603486679262425804135724970277244826487674022638375092497907423165707965862761102667593953447595356382175625188765123996708495172513430356467834672419043089514255230403806725331479599652158401466781437201516665870350360498691532810895953115133921132250781669230841746283114187226441171090864456492816934950714776661789889398754119316350523335018034636611636575072047956688496941358047199055353875945015664063579614407546900073922091175989546877726285789676675116366884927718362018026742862372043918714487550543574853314510986435099198105575056673092119935802657892092200907522543347862845607348032827049529400937769926662262157257027855345426531532681076550512445333116484071239449348073960248365105155369650916875787295188480823384320574531754177967935520129571889895068763136860301685162552764695262884228891366545562721007446815731500518521730601889385769444305766252209842829869746444236669501081650348755617054164967154544324572789694888648300638399385755589963472117222555212115892693200040261758185632166137753993213864715772730639866058021152178162543396385996644059533657438791860717575968617194034844595366397019202453263831044553262293977418949882430690190691910280613296926053239665693958121263178060354581936389032425346854853666380599400531960561719861672828888533684864712624690842482047109799536692299221961409618328012066859492460528104814234603497228768072976326256571488182946681738411214954307450032868407390880689977991487053869021117814842986309454646936582682374370639348090875433322788230611342356337285311204232716972810234450129555953133091578528936927884450148217219595677875143871451833891706160333009373693839584780042147691758705067231717211561380523565354782511449882750262507101246265070556605588791798755639160980725275091731002417585947134101536795914975253510987919639380216943900092981962039316511172337162560996733142160830660775005434416033378347998018691485360387154527716337224719135874918958318063476141045918754446086914282054505127510755206318079765642058299648027670349430805891489231188411077438841193527496994769439597128015046031069966724797036571185374788843260990924441860989618735974549725796816377489895845499414918508989364911229738844957428520223898198686996045198870821417558632704811482111423040121315353103292767556250035626117831006826823915655264427256917052491134051357367859854688952652622487976524405842947848238659579226883600458291472828453256921726787440351018987003506860729706065041788358098054943484222807586907847424274117128497890544537110719006998918913890587119970809885020505376328473868776708347934266142854446631045213525777219202149176322098122339284300737603044783463223538039306570650829861871189518953853127404623295231786079226659955410821365341482367563217599313129212054139469560534692863071967505139117741735739090107327328078956519492981880898793367212051067037548000564910230184868894458952807482094831176415459042016791884841413297073486686675656466725755173963039286165019349144341679644538097286820856670851003823205475479941482433712760394323982727647345662870367958147559901568185594046911546586679962109364172839510162708151993883915973985436571250005040750194332409814456266431997387060544747822026142683017197362032718710977636103580003769184116393204292312661959709829883778105114212555292236790785545490143845598451219196867581159211949135150677506914232172903119861970826123239927678678290784095355135960081716690771276553007376329533192412482324163107271049238222712548999905290475080989606517927136416682501344213752909210906216614506029496450300959082606897513992804403735101741918465485315474461098491974883197311959366071968181756250666030725600306086074735276978136790315358151807328493890726087705766786866126839239377758949993511356801137068663874843032303412129208601360452383431980070312695913191718903956572988899452833282964128120140281062127142309659469286821901594465405883601950096090180657198323317598010767132892761168730460632780207297935744823022448843670904650712656467759323875764947055958131908041369553432562768287948088284927058423502084519278347469574098299183529983615562484757558999858399376977218522703036657331573828865075114073892589136441689893346396082433945142001890829538223608816564456288651055541995319069238059455094802535610739175069234215301666104433833911742550664213130534413082301606998861313549694607611314220529179613411387543645175175712908672206751728287202926868916574387548532551582767870157283696503611426298470086136216579546073950895734443133188177594946741013014272576933685333207406657410566938075025696597775241385770505952407627245180200388929220153417281491574140214489271633043891093200240356497155311455072831271237930167646433178355288017630930895865110061900986075114962983863563579111002842888322849765817300384990765519644701557072611978127684074592561695729087671766079956492495296526446395743547610797888556176082920903873678924645944650021620000290277088589305892903412420826768291008973102803365261069525590756836487181936332613291665246537623457871082414266800390491838780472233101084575964367129512292716819547127555824915967024029863477905039777878107418648903500854916518843525770970599584825422550271421215545048754856192330877015604207294961796631930400787479549750384298193277226892980922428366524862645399232309846556377921062876600669718193987094112582424761871246222361954190259365383416208013326149257124553976551080588433093235662747632431342327138619182360795810331795034434857876798797785182114081645516709205024338705058398719101497574529355626615654971910504266614444141568264978893557766009665198561945930418912417706553360683865479481083925343328512634017611511034332608472638387315138870617918894414417577825966302874726939801893324167465333239642652135559876675283035756263298979753175034884415938303561904672416908398370922746651337414086103884007044629988659047871376648206109000932217820997830112966766934177535678885952226320677372105936503446259233529851168906092610987442653826745608346102258733211361946716938377638593749910629076059630284514392617730496577367489077575022060399187848906358898231132102974853471925849092014461747715077854846907092184141441290379657207734071447659194992617389929309290021253474042705692067587813214277495775464517466055302283827222078732847579081493166684384231307359949950201799655566467285986271162204239406960726295929553598073214195108813576172104205614581503402041783319074840957733819855312871352333452602159183025805858619742283130660604602273651618333506498002670023974607225485151256666389244912382947738115963817671729140653394379539667988845494695027235478951760100357853901413551038098679867611054917429936442256583064868575938857735294140965969719410445463785438389929892431781528868108092693229151594825010888602574377747798093600785042966435190507952599792078444638018376838458805867036779608844622927693454697603166824594664464486747890421165215485124978957819279194120189539437018733090162848025327108364044980920731795945162397428986999516834029238739299006114672029517615263545082046832207256160834308133266091222707431030153521498638559164385024292134496426780443337429047501047660173651362179729232297699767048310592468677291670016763174637372651861052175132392841124131452623141781014511918073081572002442252500640150465474395313582571326053682727075409333711354727415496858164872452420320828493602948080858816457304244509437655826752979943398919579730511289677803451702791321274928009802303957031386429549083846649785531081709955683839655285737287667193015918562098170751737819526185402111341151518199749131233483506038957606144163685269209784382602867597480734790820333676250545514485143004682900847121757938333977741159794349558876385998222489523046047959847691526634819149677684618046822323787365727242908496069423357908478484796032917324015409097880043895279867567841934219379541565561825657177005727060294874392045246839913651572600221011374249492432321362439341738904054324213505581890462973757223270192339866143874266295551099100917280496607800871906710612937168748686450146417066890167944215717529509870263330110163840332524883122170342802617555752107443381463300045044357525699014652535498778904396057856310383687343550091613925472066965399869457429477934437974392615406893551512004275302160936067730660838687079534011610788665192741094850773724135266390586597969979618799959993912825069153849063556246260595531998004629571200031209134770641908027922213736328899833945477362415170983304177899036454790126106294779894055936473171477556496861187857501773421776176495850340425489847136951106172456306588410692865335375508056873768538341863879087272824484487879457591388534294944873672556709862710346181884669025288088999389700579768167205977232602691060708318630879926128858363901243516932326700432365623698278686253059451110014498001772436894040896087568700029622869341733927619338428090761158801955876586399060529919564458782768821573665540135011845552775949896422382688640263343924363501651901152918871382370321065491204838698514623463896132458935267662457338560086153660624005366518928924150860374768148776974000029535337875898046560181115377623056681356489691863882342128921494820913131931007945615278034342243026958665799503751770146686871231344837820202179654353809807635698384745549072412669786349377221083572829780468384314330272140706740534318936194717428706937626343637922304476657008129914181126119355639076251519269233459725417171761947818283468951378841838791790164524460471623848074334529655313956602659661690219960175987215649761692838208744014750165203771865903884678025563340057010929837745207007135769659332665610062879040585223131777352213781910966329914020176682411409462794657583709126242590128805986984303986319209945715952458998779389864255550670480882384235964865213035464407810797425603955557134229904126332384731434563272801315668296799584281348585200978486644452301278137240197055825945177559325036945311618430093088372041629132388116122221225507046393176886752635327976092256134106969933123819795256647008948692476638533226844104382645895511011709796448904016241433954338457474034196374358293577490988081778123930892881588825993940975856809769757664470064128682120288267598708481587880548957263925094428820480897194409689389072433728119257531237475756778463762085221552669117024546643350804153116092792667238593162023347441136779407780491457992686618882341657091561208554520107165962978509073398943689593538500604131667755398491062213167139985825432784215940783275096357744755137561204262764737615723869604807824683403198989997071503914780284349190607133689872883031398291141574879340958327303800180153345096442056999581371488518252112803941716683914851548854145631464304499116946707060645513131960892997203605493918422073702297015585096760024257656026798511140758229364663099724032355927991947389352970957752275529349354065079685350436274928542154883181177611735934632545084320975872983663492305767435758437462534101078496891028538418452069367403889587253884443202432716808152053571113195683865191406728363231888666822588412527815233428692264940973738522368525179322409674809903268923234155574743678514414218657309325090913248086270185643158056329177687930216668924624271206302192900195653217082115776315477515943840583652637979865093833142012512256534859908370908056077209889582830974600455832419510214354975723573241805020143292258740853429203476080771758509146869801950880771078383741872382354436587102676443691081244075735519589106223563412727787309982311804119845683363179417834551040571347808915003742803315108626828989567546492541627504448058196542710962479424900400485831865552565530395315706043963142240057584793222077586850027207411329571770653324224166596153640125936454913278940573706268413657892301148527507648690249952193848042768886901958998264868731236695653206211728255793876123448152990560981782949937661419367378522838575978489315866773339717603913089933888705222950864770074102302590300406372942498725313513632680028542904156458520600914614110529866653697880792558037945879427150568769761666211732222059153875429121993971403278946246595548204315840029102891191078784771980598696003604204224814055146561411721026124843289226854322117347434106767817472737863845268897357285567191981052043252736847834311906624430326661821902485495921819695166408364361967498350246451397839510802384743367959325833882071532179311648675204408149358431722410895373312230800813909121225947202074152376456200289990129040019989036711215893307310296420044572753935449060012850013229683231690403104840415949310218087544934596586311686423456027371633343044656464419359878923512958597309626472255925969198543886501415799941393965998443035701761802394934691994453786865482094577187957638131710326518493758122705324002369398983013158213629457893129453019242305949409291792305649760376412633542261341333006374512331288014592309945327282576038066342109909888760796402010385707834152563921233137062901979569627532631780808818582552169774059141284602567477264693175086449901732437281734310200251147346494869067644377878945779229228427279406151320574986725435473242039994942399520297419070826564636235963644764190910158669848998666122159769388655330751734335319233796123647061743359967155826884376796417327571381390981657509267774501202776523963081558746009531737692037738877518371375425402503349180822259752923186454712302982551643638915220737563057619921558006455505519112504174966815316979410153699876272701128921089903447392548025809868808678786737575582643095945737238427574783771987202702102392842624841116211588106122507181377643371835746978439171152236925056372206863242434835987401834757352160767796466688150076628978790084848383007098847935597459651374525207375851053547172356507665068203986760262019111236943727721230942773777670652685166867146587347957399781142282633795915506817381808243240966008753261396651275402192683083320538561596187114243204258488479336158004023089672472676762324068097940929565258858425831628134165468380664540437699254732030726727110180461565814550869799678284463285106749856966204378625045791419892865898774143952702078496221841443005054376789994892368693156261494142892167628717660027353040419939210968204024074025954364563421602736218947094325751273916652922569165752897741131723392317586133841228530939802118683042255549415315065525358921076626056379203909488500378382910564938026366928320713405388726716848314392715141319836682254367468515819653624341434905157015299148376122361906755598160099961792396639701507559029797491572320554316780300422902699074240251194929885982399856036810513809847259747923685177292501919628714405276453426269565780586220725940712853520801672214318221431785516166967374204870084110384854392631954879293162762158322795017620237193495454524950050812781230366516712038615427083068570420438952676759521759937411363439054382764533539315037665748822743803032448755294023650039839475605522020238525379980729067432511194112856925125259461189344529459418847182709432094923823186279579800129308986297480442816182548695815740464254159431435154007850504195086838721986024602638862856619479361348853664168472625971781287542117633839213305029937015527568171895443958466482730577385411689974231485214453278572821015078128064800868178070730215154610567628023356401322385037681989539235862620998632651681598141953478206606881102313596877304780028917753957394941507850226328808485203985368596469307697493217896306595593910672321171027717059677710768264690083746106269437775566047850607870377317453382153455970178396022763950580063566841606530999710279609757627162364163781911817805384072816946542187138855747100743313716758517004767150496881635485639515633074177852123258306543033116161229217919221643635205518998926818803163408895529995869160597172571389032552314239654764903831208613189629555527330717305052329798847929382479096545747595407195232182595113028587796752672717875962613718503492930627848195592410263898428744368912091241728104729701223825301992271201729219533585641116435987938456722131219493767521495737268312678261954487496149483240080901750128610037434315760746917183155281649158368515548335218224430897525647153235109231527052483753814109535229933015146891456043546568779347381578243275376344102546870648627530815998203519697695159207047114614201728955748377294628443906749843798192940908043758137090861210826039580835567581879788670661253325334431926558907733904368611793958491566265837413084072396615718222971627916155632585608573292090534007678610276715190944014534864479044005635453248977469588292418883332269356553291310742578435628000589040603628702691061760216036073438129369427602366121626067037532478448172958354778994645139121209887506552499030579166616618363960454458402545466424109013404313616205815417193325836820114967203701682674271869480447085213230205525773096843290209317752797496599489952682426370675871571428148100983579797799773173058071336756263251479499644041320851816005580705442287103174739448014388820022531202743408513143663185852408284924918977000133300468367704599107579609563927497903662587429537377858134648075391911223396015893481153903748237526113420981606494874327143867046461640453082809319073799139708791747414794100178119475984714033802383465969416139921372430323046058165629584096566667061466785089809270787118559106273905100150918064316677986675656581482359358532568064189608361209200076880969973542582384522971572182630451531704302171731390280041794770306768099890640761531784493501006964504004049125248031096350942931278865467296897868042899177794176121930215506845574040159620694869038585042854713739525079613990163564995100432894932245412718481346980399485404917548145037044810650771695355523132272424259438433472904282420479880276059586209504719602098000743908044614405303440131476856385366735885223142455093939942345372652270661520621224975965058665293626899314224733580464818865935712812969972520359165496814456800573999121169947744136954858940395881770189195461247376958730010043023202322128259385147111919878413821968880708589635118976807035559144153236820431941157049795127312369071612960590351347941624958283530512470745058475156458807022350229889678590027717778195976966569518460570960446077209816402210305768113550983834818768294003166998320798378605717740432189895282470234345296165169438890056262657862494162276690479152725038828642553632307671794802633967989788401068911813422432611273847896998164132793642166486018570343381239937710524178556627515366155638443332844084207284051077420472978895918915062340224461818461500947307942993785100644520774014110033730866756889298090637716104972678648646370781179295192382701766562841041749067496948382824501468302697495014175733834920101645155914775101169026900807226655754836903724621650528825334035868188899676018151563631211447446529872309962004219676723418907892095962325348523989884459921834562123675546623908170872914943344672968566191766101765456169944207243014366991218452436692632178201985302346368068909559473182058864756038827090720054422637223435549390694600522929963588308053077857366306395394276853036822159842272804831546730430233535320060501757089560088983699645271262697180828823312251802926909439527295356413160877811645952010107397444731268789726906336344587281017152185812261620081103391811141706756472884629185103812480202188024587886653194093775342779677295154952703309348713355148939857832616651105112325245715483039244608360043338555259739901161444227524889445407181720103044393822037081209796317687387992398690984261103450779309799836393170694332780729590308498708412667780536853669340185616554142936393317199676018744476045260253057909711142470932557898724668193332987770647066425155022009763459461029512581361505430049228021287136170698857939044583373578936741037936719837107206355164120276573365373851735485187393961038509535343247749138902923317894536929157303795750771906080166398866276058654966938083971517218499051751751245628563541918454251338163571083099615911567798538270416682887106744503552073931394268332637928553579576004058370768905228266036542745835961024958079981929926257539636309941925776925720374216990257700654628923824208005909366394645013251636838382552833256977183068160443978217522094411152666454019457125272760381482230078126730574728464493741776213725155005496211304446967117130755332061595216095716320308863263538773141750571536368499329917977988247074731326586469890229379370830190044326677232346781477870148234431981572691277238399853660660092871794410373968067548986708760849321242683358609975429390513388860937935643519249757410826434565806015994713644192608867961955498567244215904668177940457260415148892471440312021537927532818196497966258745847296124903329401421173207844885542041897847409660412831235938278812299855121016000052245047023823248284891822295053347827434260062144686612044116934668386966169315356807482658675164501538343955626599841710219784205722367160326121030122732390711983096462004326470069208085756399043761291043692348348272630315943322412342334659385187202780063887988713364599308529466063592456481712537543265183712371664345484189332363704218542911517683518414268923440302750494190283733446305273210006881936308237319491779516108387510189944593981840491165206189551358070946720921090331866343558540429791173998748218473791131834803299413226211841905985852275160760549821703671457979460503591429911143960969845646366007082739978455068584167044881756582804160303824953576417999565488701182875709982297817327133597000611400671346084537318993920672474256120854950570986862834690785621422966167945714788850672981646427989670944143860804260091505316732947175454238004513908772494137264468583625662807062209865884937152456111208849304317689688923303688368177056679601726392835969595161893150871930201663935695790922307183324636444723659366609236759372500843058321044980279873626214224697863624723113481905025059661874280736144975546476627955258023630917697937357419930305547591621964032743082845319231766607871859464956025434064846496025120029373375184273458211790652530921586718014110361029155072427843634548907426471022550335213038753766030316004276383919308576879547352103984409319917575542260112500915062954367940174415001874968582523030292185357200784030853060290339513365427239297842703936856069431793280491340893284257266765746569928477901518209606534299844564869657565368643683315252202156683623964471386042912333430336868854197482692698182295903789976327378674576293110216298820596576873744993890461277238361611134046078420653657106975865989916248961785582773520684985382679510916609540822153705411696875223095815543209600633692925130389393418789530949595553337811004659006782249214930076043328093287585400717439413352487076810766509714323455193416481393547490644910987851384895737445313788222053742970684765847946852532906512153643734960018627576474484584295515587296959023167644950231944263064666679222488603430298514335961542671936218920519939786698008272335198253886391622061649538373989632212132514156511206884468519483807230714475977397291525297226689324659711523878466042719023354427591818162103723305827183829375131464811939671382581335367076233263962854582127984386207598301207610608594792993133163081286150841266686386627466454677205620981874089181730062981204621049897048315961531320327783617336107368247061367167085647463265471565544852949871814184512006991541375950520678581612953687141418468448055402670124471550443291582012129985229766993273611848126860966564867348706902490428251006413465282812979375481224518140197227653287881646178092309695044704425621092172287071755286980388653297017213323261290695521556801734333480111183456057772507666460333883708884563500705132628629612627757660932130248454696815497455128049017292571206453542378211924576405051484521622897053699516890863712596697536904174864325564234779586162717191270179236990171222692062351276896562831385497169309393749785528358223616978115868619798832357166079177657009641867977539001555758318754604121599811037489553578216393704201027881079305096886228311768451887663927362876950473919339201585007632237344097548804168609322052098635818730103384110280576641790903667498002249481789692543733682133417119010058959276458737426425381878864906466076104998398458523287688218709042781108177048572287705538043015277925760608466116142415789550042375023461774990365758754462192001110239735264462693367605230421174525550450911688934001904937476808357836919845511810022054997658224702066066827148747932873995985031098628788689423077039969198135161192809821962050202389279882385353908771004953268425632419977624664842679402481268553809281427001879086051514438201174947525566130317273055761017298621442861073930749407634879705119695217822070689444334291865120210263927867019721955964046493573753666761400125060426645081939314150511224415544553979697552785005644964441836226131240418815996878756224928148210777124813981561991448635386175067720292846037272202472309339363893945555926386203305097906753825746600075234415362000179966182090042687120094699755063053714430398063494773913094047267685198204321161495116425089930116979874312728769910006560593859872501314356025968282065976306254728735345395506325133278188101641342648003545125415337062296037611282135060179962925118245659643846382360891231827132192398217261675143866942533025849687638874252240899945246277443620229042378841211588911337176067553427812183341584631655198931923085372959998993089809562544754316861376004895283370788676564919004261825122067648377922000561396456727284397367042173322632775841548247928863103700878394653450316586377276826079798626097372926572455475959632972332069535979171060820168035433403950309887428372676687683146546357123633371326023404834538536896087823250238683777809321569969219342503584928870398211613613411314701074618164426078045097703658151529140383336231328505995071057173683754594787864984133106427665930583402091036096626012853206111112555395483185765901181753742534628915907409782883160626922567699017271942329988011184900063760724795576969928247465475298012033165789170111669148292527917372139276560219085474974763979940601856586817284517842458122277126355487602502003666010868525432096744663450127666723954789719719429989208808154019583795673286068776774825280349736854352985791879257584742474012838021637309770186238857930827578396202793066853137590631979874273464519608941853817825219653750423084969120465441952536211868811969342556317072222635551268270445612755543422560416166996331356956785465415530935896746429968138947844983234273367914113675731453239468150426499761132663037581939075336845013724901398748911373946774660915924982350411011168920259637910683252735997801196505917642762737784166736657874545003810472484690874079120393957383207534045335451271507453208817299233322696541953355998713924222670676428925136993539988006195327637703280445355140497073106288072641154730268471780747340431130848208358159904445816091764570802332925432640083477221320913192390750954435507674608180706870131830191727735036945035033167575641698094129504351116624155948200238312367328533972185193064408928800276282776599990746916862747254356219595059841838266460964810732834001351880039969089795018918590539036435725190634565164491978267662098253690774613351292719775189302109889272201526710612042241105672139764242074608989872558881171527083499180524560283509844166428553055644443350967862711484507833665578498098237002953966341521037485689128287004119601603089293160774426465759559170408776881042762141622494906506901325373898485387547903100338045712824439547139268899646319411497056175945129563579712368556550614477069412846913980315566999970169123263181031224571962910257128703692807388001561720936236569201046185327284699273268884853303349013382410041976493210087834087643353343173851038577616866334813547954963152327928753990282429751113478046974298781685867841615086944564144341777356975285605562484501569912569109985354400079951040706113819509125927896632614005417939319599232703320936208263536533898703570627200438323799893714548682256959089006591498811485607417645678885369074550754760862783926909494776750919459547550958486196424671905107692300749987764635279961767565235089064133104552952561135391085926159690911508437435543867111607036894086079111661134831567768763559638169336263207276164565057110747720039965962646875657277169212926924877115219914872693899841301612528782179211301917641597085589837683207723584148030558626002953942099652609398917607313276270556651594706523623572939037437500938004316070471622150903181106809032887410748423670379438427620170419257620087550798765747290562446760006474491698381190481699022366250692753368404824317857076409103566286449148010735319119544460731809189285336012781758832826452419602684510730961333712233746239903644953992071808852810811998264948542200132154773879755531731718615754249182961726656530137045779848052128978682182815604863959566699598388960934167791225055922622631773466881217218944978818227314192003697572715929343575849595617000697535109163519929748901639305550939720127915711874937802991290110762102185104137526031521649825312089810003702911217381955120236973334464532763334576136973483642404979096692163495002658432645398313907632058769543003966334906780159684701474170202843304407132854813551948636077337915314098543825092882032100257105252568185318092029957407805092496710562112085917380883078894155361031940934997292159334980758221060702906292271038324852945703647991576302171661107331085865816098863585116257880534236279180711178360548721020857396099335598684626311436832574314996967351100736406139748017430544202521577167307618775268288853795664979228265817140562640560643842181540284404247657610058893127836965855374695646837253785320484371485704196921034468215355343609502976069526982047090375152704192848885585569209552400841117083835801389016801845573423726103824220047004187120892465704640848959425516711119231522618283914634275900511440612568508584932033588078248397988774398232607727549926661122443097873226819296371078191444481157439309270132802919545613341424473602308151114612532996228413111479164608090963701552645488924438865725665155002479202927805965503979877662544601988162257284063202355487783625153321196637761144699250034469046762309327773704978500998304541250800901529426115999827313748257992262445162516278759341793438630175228547606187640417847231325037300080418527857825688022434815722744312519419355911404007606635745089021496130867908027117558233291491860311890602747335661180858207026386719214909261094364201075941078797706840004092958224052221939456640909699891182657461769682316319479227991950589886818089315402605192113137692202413367921897271631969657188147506730459395663375579143370732269789849890822312059704918204155862339215210422480464633338898388158777004348993166882729726412820635266819632890120768405161777582632040563026023433446569590726511235647967599191787556236861844035940389939294174571205948162713897600242098041081889533128423843105440671490767187409347416846057565495056588156487833625803972065704517842142097143907625258130677917687742660546452139545401846827173922618148685458069049640973102907085798918911839044175260618345015787796809527388689979965795956692878471560330785732101012138074100474010770244820312077229962745064557736062226658598863515399427122380523156675638055778437844989878800213426841130746937849360361969135933046797785051149314438631532222553715481223836986450870289546157056034885667010171058872478136555608836693910190241907220177785132739461069052466706533947537893158454887981412639956344587257082133959016928447474050363645790678608366448978319734868024324448258813186480838008547151321444088632569473557434207439637764333201574986219106490726303453989764269456628012047642804268580761049206206059175441192591140963534696397611058118110141812436058222744437263919525260642952291260179530873610751875656412894340384225988125372119475710931513686419565745923876017429898874199219066109286612518725116731925340610431504509839002442832584975854061427132696318610582430842925584046251993274995231100004411512266771800853297048552358235999536893168814437880314516712938152777631476983447121293911617415926984697423491623355076422811517762529712509388962830133137435582220404476887741285212830838457959932246642964852616115495124399661370463290804200682103896253806972057811121751463306272623508270682512440942979934553317627635257219905554765923668620259311564747928993441296917806202565194609026841594705809074165680445224790964558049632886411008023022731602638357996505108691016827135291281090904192248916964069736509309269136675640182142021867410618235474760918356258969163443150111581788828007868875530611627584285293434172823033856672638618767135684837291274107087495522955424970994111844781220450921011323657728667994893259255368522079272889812150801442652940123497485493642410281187575532367328813655486858855028427901863676729864993207541991453079312190515892667110438104028733628368072278126947142841345648800934289074756599625506754497474134396367822317231809654730565454607071232526516890669208835589674959703529790130868033948889516079382227687155508547609317038748389176795243888091021481768002159663095967365313628029171988298789866409800332535632095914182328840776876627835159441920501292168579207475683966432510592024843663986039879076314789075652276484091989883748948698714153459002674388882259235000764114596341054393992097460236763888010032345590130322256494603720707922851033485872136446564977559266942447001311560817955798766887128524976688670075812886113878589993025156553569810899173352311160982656302537650377760321100671366156722518244155146699178848650833928287388394550457296511424162654898800415705739636261753142995456846003565256082889612619068783917837048247013403208300048194943936452582848459323784017077419463150824902138608802670436502191355440497943340389446739449549726384781384474012309598224794488529607505368444547080238253491683770592806571448386404966761847806762541744587845543760816177331113087380037101527850836431883678726279277230904115227685651292325969673988294298907169485723224085928262480060155449434024823865161482274578859189728932868556845263006923166174432920192804284606113150249186503070812693544076603698528415042213594613440784176483304309439996702034244816739921124213063075509741879086300318257893516015916585502954684075145808451512874470161283752829294102536901433083009490412689627435048027175831637996682474235717572116519168149082700467060603389780454198597688089295830761183290971660663151897570093349615562421183305017857016213529420585862995146005711631311985652847311925937288860136863579887392688194197506792643920468346434290696167832633930463743803599672081050689989170167361356560640775737278300548439622769731610177796143148804753370428869019165547423436481005793018411870617387861771166398995524027229511358063169994995079723862301688146165078176810564898993289643233905608427916214837062119489638879789542374143530088689292541827983247483105649677876504164937721124514032717982458869881306058352547531105826355545494932489026923267852444236349982968844635884816533714857939348977136245577752649012603396735826384580423227303477462494409129442796067037269066766594288589293251014057247702571725671525226641870883585588071695740062284448953654557759882402549260601503293173906117919982939031188934376781725805452525157598141130413404272304687809329322069596700938455093947681973672838530690493305459150776320953990133270719463408300824811341548238694587920526831162462761899107031821691545551774203699890963379258125598130602226022101714639454504579905696109237493780412047897768541196320177577804578437393206289481508052846089785959791625587659460667291852231185167417653789302702821207604048468004200711060964805845144444625006007304030758768615113480476251249868105538214427776139689347578288741049167513028620266231271314542834672721426555856812609921863486096893772373128608502175578377814304118376743742410912628177150111387507798573714962207541378389542316759419309141695827617770786911104221380691367864964839671477017794704522747684917356268709968642539146001716116872290487046158443829107215382417675311156064053614306356753332400042730650708756116861654609147125620836444234361586636270938650959574492872563264577892360672430197265540032613705617176274172474995497671686014011659578761761778364297818719331342894245211294337645796320942625660378022279451491194375558058063434926849647933552986481254867180798660917972619918423147305697759395163675997917159182214342883765032628456529098289329374858474039544721580502484064453817173033480140612089171014459976422558741965187752517836374594831179147717201880109443474326603160017047089637930375185676684825751450768289665172029866051128865263333704024126351045799027514443148566876460518946528461740323342227240125792052901963171766097495062217039726379121121566904450620775611312809046211320195763394504886907440322489832295902525293120221090270246704068178560527243605252496810077141330030873324790569703251184808197216833681238888705617884481885881585548323386673826491076753054978109849762630391406034618004259434495755722159419998931788358652875912523467669727775140820159773985654132352474559651609004863253375821466202367165865815086487999932479973901371170853358951048899087432748621982240078871525838868217748914468566985978519045544565774306086442684267677256161054436793040154491057404413636993826919230963423391500257327544798054141314623085934811025807775722008925899899655001293409796579265490775489160226325355128023919998260309735733810710874946741054351576876909599105109053716717388339046042626939149913310439173843837278536386827455715274889130918545163948818427993446773806187831078586349682155943795845124048895446424792693422605636039250887237465197718537635808332650682067308262480337754738268664404200817095807112028161653114527726911576837169665089629388278665749903324594463356655115580179529295106204423113532545232749052852631891019639094123794684786654967528127433192203957673825347374216577724183117770831635630702035398609676974792763489478952701915581944457651271280294063177366323779875554462642389407734555719850042822580849310106297910337973955217081664740662972373612115997586523073242757791076531700224575434148392085664594395102920329412201162464514880714974534728329095367184045405896561801946573362868495451402599040466591448208509384816578635553815762419943171982824017014495543304997938586878496204304613103936624291075478162448606501826555930434755201851983021391549390534819030960603070823661323114883064217710497620047267501985474372544935358689908358196878673861683002988843687382032178832204969434686644181274478994164565174419916889750772995666114171179231639639542637365650178271160154947702115644073182224296338303238270361722214617495411620219233290276885231207559580562831617771512926486609611579865981366458026460417555109270204971447200633949300918859906543608488694992076178860816042315029556955385218884465451052928766003182708810226654595618516961035354891974275635991468585181609086295811707566979233120496676036914427545350535754586200326935145877474240129410482085364754881995272561142259564869941373316407633199072206265463630160232573438165847068361242355329549120800181045970715647841805888365317125075954090033349671238224418839066344912246930980264620243130128808236006543273046500407628962512299330881691946684924012463001020367237260212389625512176616166829666852332702739771496973261834367651396771819668721721770611555569859094958680670555753474995746130746351248792649564092725968262004615908836099487695846266606212213978656139563849419485253465474293607534037265502025065514133347951575552327403781575976404579562726586483549803770107859058191914889152242936118551428748039956839343455532482959233765938207365034551943346037002025888169095002937598860925402109945130838755951501903713854488862128695270562595461895249472110070407868153277515015745424130219301464737160404123163920102994074681986264319256815958285728719612077434809902404176431698836608708214558302173302253711209809627461587237119673351703799810718992900766565254681387437160676669956523800513662051658676743843457490114606332504510817768593450248362929072256977746245393837158235867028055507157818781737922924403976757575187946184160099297083513966642564443052583220205009585277338229044506801090562360797020174570231778243606766136910248012903399292506056375846817687482441217558461427322468831624743472050805303487422136181617351125040445271030601271527021449260097812903788565300663948765985440903828346351027331273102299050490714218512305363780148815667180965663035462407891310091797713497500863034094358543181080695546562383827826336301376318982138912951727100985868178006911652402100465900519556579999999390429956656453277346068904787870672311893138059905321608073501723685721712556554702991819446262935364435161895070483815344966966047564863154213735757491039858154251332139141897734555472251030026886922347958201168737181185286477232143530826881582884322381778674653842685198836245953643992260198460754963095122498450691378456910603906649348850726995064849867401504781407614671313269530522802858165875067323311964124607746177734561307623965286978192634244891889114101552122322717822836525372217092634322506580880128998367989058100406258446770639619168982925611950811400306778221605127794208866711337251027307041513977244928679407784188111186632863042446243500173988266606253648995557350815279526348077354667433627390269011922635072147824043146740309314797225033240410807111017165832658724332796901006905672631319593501203445930546934935827651499512325928179909178541645437101025715220536151920905258270803439364811756003918895868174076354596399766749425711270110305876064854780167921379391720935317947256986647174209455354239023978464478995736862349258868398955263863941620806111479985361178103339663644376190383682234632501640538957791213185951984266225176677405525830735045722621965092704090802451926906617373291746912555561714066252480869242981357987669610272917902194032900041908915825732418857415641732809736623755531397793447553815544900292190818354951321221203643063358335459454886041839288117007211708776162968199421770991022517111033540206876985525863325249323304526868215700888710256124214030921403612275841831489557664517841501485498289576606747738865015041297072161236366675535491325884349918235804302848690112728809144135934879346353665601259722812211391710347018463739567705531567258220507564113212548937912499939007974873011747970738474616338300778172555203624690114873050905966520215774653867076789355828096442235500068482480269225912390450935595929422982354300487734654257960943383133502690367717181483870175082644418758471021952856656635164363935674456341386713732981091575819481481764493153003414108330071787480804226167945560201936873899331302395515434101790607292519916655106432609350079461702618142341915597047820827559264875964796003484139191211847786902785500954977858445205504774692787407179879054699590380171041726765684801143612852863729610900309490508801799921891152389302738764435956046157113643080605248266481872301676912016956294137429846589209331789177186452001200315594763643404426728761857483904676704946297942262143343830145711403925183963342499195536418786581644529095201055309561844378155056092484896267731002241367827851862526000005443081803877037498446950200695960172474474919222605583117401570470321079979988103186906072978633872403946789948870708446275248252736375104566597242337547027551282485959372739053824330856231108688944937397236190450422348886386713954202382472520889506824120693897862589563928845474129323581324146341606965314104599273827695092827958853024626675371443275016413507617360056815052272860321196112498813011723286446902906681366444603037755014296376861613565253254193231355774383706997907769756676565222618524823229194290027916264636856904979855922807083547378072045604255829501313284246780371969912459290775626006994780638978574720943391927959875719301653324988931275916529202163906197957931963566988891747990673798005219816165799353075035563294754653203933163996614555813303014530890566125813639822297935770975701728541063148812683473111667355686283114472972256141845053335870330015659003955138618469619893027744743976828073250403810560118551042095279367616411088735311134492959073454598265763501381929623212242410740980158425527161999457369067026162931668450140151855853038980989870952546781049223212666458216761242836986981076783616162920876106599176658297545726887252860006661065513472445535582366034550715421707659816531670162234099089790012950543999605370305883718570824972652045837163410323420697339525421353193546836936884950386964368182935128410888359909651843284411154736460530954994689080832209315227320872802246160140459653569068153528483656122274829443865728612424981888115047715760342611758713981143701585236508551816284870181687603930130520287605253709321435728696704155734549341144645640033865713672539236326813281267873744802984497375884309447561462564093566075575276002171745241684798254040551918427878751129080888718890445653952406842175968506118434496820625541084374611341541981903636234906052120210157402243242224899820304360777369677815320322650305129555260998268148472629290529852323728509304705664896144622744737546707328575922115814415733566943685439753590501796347786871872298013295602810091063125667994424579839223899074903161528838888767627674909399271294297356562821028611900205371519468502485726168507462088372118448794343669254539652571727836620267031487870255647976272121977351049136552299457343363234370855025202437197092048989126712048817365937724056409946400518124919811364618779671319909586583241462199435541368454684935455560528293548669928443288231079794291540640341023176704553589432152830311494363304536747664521163600764255560857916701657192561233856358760564208038128302735828147021759006458483929462954501414247868659527342762109712633731499098756582452672434859144538096378370805832679893604809969461614662752672304518156187394922398294301114104948668703672749928140724318646053506356170670094391288113977838051753598339255041087634931368503241859136557648716487422490197709256713928714687035778851282718127275211612632687065064174273295696437696257038112566338319327612612589404180317412708111703709338181657255858139538741180377665774999525573193243233537653976147970770518740112506703056970579932646425262046274198493669235324700842986048970400296870528921092766744341961301971291640916724430706497866419624131379736964433610810450919111294192601381151255274869462334224797467485132302085493837369308243233339026026622902558221428033379782649882072311296798668299399096842780867273288514489002874148361079704826357862251476819010117348453979078620254124313681100055264734758141768214784379059405479887382132261219437189170427529775298451211003522744858554167945007478856311613429858110571992645381479747000746502809285778068645457663607216349004987768439756535052974682841473538038056263242946506512300349808489984733341501083775858988368155089306539719026390168383261959780701234671246397861761615223647041707677907380902331393932416466648615629788149852428357498624283326460672977903473563459264007198634083327895290826469769389682492116433387527543152042020635412671111809308516747115460779688674901921924762142464117033775958348131682237990490272469724291641768326945990302105931074246487613546313953730764878515028200368251091897548841262614650463006767342653617172788535396017383475961610705176418544646707588606848801535856012300648275729621168260136143547066596287344604150024853382147775289562891605557698340825570950823516714215217332079774727679242414423224764573379239079735904711588207760504976170873624753294558204002859595598664538675480747538795003154744515586501562450188077931922018239290492731970364792095377450991134255313743792602420450615554832521497659474365493107682964376316367793790157773065131652315804862733310356279227828473799267246661482019855862413610901316320733308251858825399771283047733843410796109494514237687441588047561700748434953127843540976124199399647775509842287060273020384379206041492804165052882983666276553444958867426891689829686329865145183776077859651464029039740839419613375285191623639303481642952017133092249971156257510204229146366661899795896442713386457759251867672902976120453725846355229630884654086670474658401470231333214268728145705237792179945531956949037272755944315358760565020540444790319081191350538079011080135058564025210772041684308181210263038640826904551220368212114708007761977721256848737759594578516208840265690534696810422829513636979506683312288195789720570428596905541503355657481451172558686114098475758925717081858918643976447833264279100162342870037485840958311673432197151982731463766980156692948786211085604465333086483185608823122027862624199853876789349232941176750825255730045604703780287269436037899847744132119361731910476220313099862117530285846658175277932764233415368281292124040594233147823773983180471371503615544178994658607345959934562000318209817860310929415625669751005872135859674677118444291582532745657337901675785714135023069375099659633196110369632691180300652578578477811047749884242399901797500692638778215149778863342233735695022019012768696023718939296033501819222824691702565815587234781425417688572516767974728398434376178561750315691518708189964325749294530634711692602671328808464556232269821789417528423965094458998577658105839079157789988034694032311531254555017948179757582794463029816961246625862836742098427542055338462982302187607814920116912054012745296304570814852692834160642299930664930515982662415080427247132871083493863835341135619749789460626355667793921771297570871683233244262469738547163147657905004216826374690801349136575497862305021485100456827373884683089812106030778702124498492185539911975510078059372270910121711860343125505877520255899702573554078206586166363092998661552753720300438847094415043152544930760524999109200079903506957042160169752500085732214162445121490417930766387636396916678855494172304099472354756200890047963165562247917270501948144794303594865539297709664867190174045397048568527754598764074085932757089617100521664355421478390183527169901852856473126878304842109281828321375437279377356043290236105651133146988411083354954565651206751668986269595472608362334102393068391566933041435306190883127388546532510034387270597754614936973799571645004673989593697080514513816461168263945036166894302311420152733384313204113553234486081212220467843001324552022835050384428133057238502623532504394911837902802404657131955276335877602226368728353369960519033288070771954529736691726529365099888877359642019376104130957663768657272775809318680441735535069515100378697480619266059002014381305506533551253770773641644369377603261421954703462898771644212251692113835975857721832046247663954082743322218344236231724773952901818656405040726446531547476901927122421077152840658002224532752919771378072782047234418947861060913083966996853542147520044345209671065051911179753314667902363333430502516262520401667057075707207839695511698409646129340629679355199409195837624399030980023087820767369805644210257773000797344746364732479146032564695313170418951107585836956519495068025339822960064198763332493207650737490117524470094428212282824137029208612474585981822651738812929903914353737458440892467787123648188432374351032311416113276151883488617594471049466963201015322303332421902935010902595709496137933228917410641326187349742838118119721604629987174586360583719134262413286136549271509621548967051708500080351822631706710595115868914215879589351869294957875397581610185830897580148764474809301385578248131771698262922974910905239397550855961716077979134710840576102525371569997159104464765062180859231887291404994723697852196435866831186139004891181289357944712544849581098398483395566855992036979583761405095678897968468493981539109583408724138602489367675946750152641348479998614869475391486678878854873239114957986676957146043173969818399675674901066396208913468726949380181083635811260859559747470352211438382165621131946417452698572057333699777806212574807472883375695215175726452404168482741166947881720343935055398409160641404942991327002050394232040743602387420580276513297203724118785825254786778602242338486346408960377825369601836404953912448957100244179609912134836751934004203125885878320838983151940789773704649471729233807912537678214793351862010402528010920948178451239011187876176028911827728448615300567092673331071865160808404985776145639385223905665153428000627116806980488948162304272443589180573640194295956436214169347424382950142941142891470114981389873990444743955498943591872273081220837254537851572327576600525076104989501437064798706109006468903215525287785953533504380734046356306718650345390584014830362054381317869999414750786967546430141679750170452224185367717363974672962569175465548825210697046632582553914819844805815444018879288631696185489646968650315575936184183927549220891643355718635532072365390282518205109873307479722208670196916503953959127812184436573864851506962131867724070212198564370633930751283346943889766311242436582202957202336875017450785592781612367009616087163154465029824078459281493720170431201188266828859888625982609971430515517235049191575838494275248918105498712269862777975397827624251021456640901065048969453486104704841508936439126417986501213324402373328470874825929394525763501638006788963324833994616064148276057503343680886066199350540625563843853923201499262409247411995214519122425023563950443603931662793951000275610988360827037991616010234016574767781566560848115879818444783225334187633626972781567037069519121462368086495305962143744733303500726514806229425046137048109552086134569002019135095863041700338141958767430850522287138784655726085642624766537886455032136567154918518495548901769185244846934222651334517334451390397169437923865698574649339434149674255216427615039106078306015065791678769860272289786439290226191458595934965213035808676425550760137396207832983885618474140586782845559808892631174388654273262381289860668632420278284200248777742177845239455083616338622865716476611816648412798036682757786160098997350864319421364099096944088993034891620095963923812721913172919490095741891065617400245758459049449192721319787354353822092182418524819711507807847034760583392719733468942499223001623817769629554520727772392340635555007146723634563774119508769726382179034053047293374312226105822135952926850608636385967688487391562732972676887230128970200222206166933545103688460099559539135042386930258178181090106745227675086117244845026863473207416904610837429941848009840464989935476760876597312418746271011862063728470702447609657708864567390833691149850718572729819618081764417012430769567894046252538942512889832093627689225316570496597975826746315311158131987469991260525431820280182142192751067844695557233966917995162379883214625559872161663866593022605075622607559764274293894802634950122025186408844257373600762294052009906999092261093162444262727316582680767598978597587909317379859165611849459781766327417836202909990881952296312192545117057670630586024065602649227148524442946449573103797220623200454181829009700393001964369340813439886246239727526983346071214943534399227121382924602349291608496259671095001465646319526785686562689104007199162475060482954048164937398157208163769884327394444450227868663712645066444078757509632356075555755524710584211274640834667176677951436348106653053054684274773024267528361172343525737517188000551001431260569268399999858088637930138347174399122436881952913226844935985719970969442858842415683224041340569713936864401115780489090766368890900185959366356552602562651455321142641398026993377364308826460062314320400604141549461088716912719233040498119187272506047800277702903941352053559123305601715844773686840141272423467805077810455166159290826520059035919344479083905679315969266506259752323965935735994164987385509600424353998046020087518655635741682081897698661651429120838789382997273555832507347849762524606771754221714734595194469211465134944904371449460175148350968122432149210097145215935829454931226050417843611102528631911420252061269655119551385143142305950157786950225205588276601373989820377130619819618489741201896857256250393119982032016466968224949119218724277749882468623132244981316882563941620508569084535222336511852850172103432337342173340132449148496330926909580464531685239467735147307982961035886389038837994094321246236010769798367582472735926906946677472024738647472601741064578763336438866083269934072045040925973316304929965048381305644177033071302610800324764790973544412743837318375728402818144948976448311842294592333361465757416973629354316426619311925071449058486813711241752893920283680264455081712944069318064919064470748052083983221102545540959722006072491261454941757021801916490524811844255426592292156640868968160017973898990498678814658722127491455141724145379077081316505765670036260794768589815991649403490138100303469160791400938199025876362697266013131152230306614635526185256451896114553565466873353280067821785983684073764251721895496694026514771067968196110580724030833164368850545080338705278154896480680609440801228116747630234518208271884254884723029566140701615842962764631863937158087290004368788891624663044774758208723448535517482959151735963790534166245817752333497207515470442549276734344252224709256572687838349248485879770007060946821787982383006589539299997038336435214527659783192203627229176441670177142463407119743759071949959380243836741125227213342826475276061406492119280707107001546585363441181328768749063604983402408278340725050205133593601885439831600424747487331257499745332464029887166224562741581458448990502543178264012768889767464301196457869076201962277686180225578432755963690554845461521061126442327891166885409737674249811671169423902358440032239230374598345398395146765286795132437433107922673661419631007568486410429785766538484492749865152609438751120872258959716684373019247842955358253226904124394257008755419732098259792153013455201341116096368086611763631382244293722528895204496086847928923907280619868415342253623163434178262002387986778179334618196014883091514909666279560042451892191030259099486267943730123182795663464178350687778619378983515979200544915881195152796741037273572538758698053391252158925902705051341286733207006359782116733651718734368034631346507416078981884675226399228884194169949796611726745197017978251642943080985375694239651576655009513035621929338401474770247722233712425550867162516963090232396692704373067574332967977995803292726857927284562828866693695288929133953163082130304037240150774617130349430777402634391857120335282491314973772897258582532998340969936796975732878190496373826382279707182657933894245792825566317060895529267858819422963138409342044601299313653655192227098200626562691031762838971984260473409196144929704947407367083277471223258203699684321145669128661667043752541353427842530928003548913324440804896584381747874310089862158090790289023397355258839235065031993452895275574779246864508889067738695476039852106369561003193571001216668637736638012901264092011095732399190675386585427740091892796850550516302936104044564533935852093103584240409181646292515351212955419192784725906403801755260598403583322802756444976744824490137642039181915334127512528951357873898022533474556013293960358507765350164754252897884171779108803327386407711399252562537128172012293133987638672642586176880263873616499680417333185531038103237536033877929180497784491161873010860486443764198249100684498022200287347834683005847927128481392709299049385462463348256398200266634280004416218776616061887993709794487222405825346354988966290232595429999580493943032021421631292934810797780113776824499924238305590962739597264113889217387219771653383481497354748044815378070126919822634440388921158237064940311436659559079831779020731299869676446537462711448228910217064917389651899566489689449168413223843095453655177771727469827110416648072805927950763956976903333736547558746765498673719566445157683063393772499355826282167160335483271718252574761035631608347607326427250810887210686915784000867158114822980628152947761764659483617635330888552006630793193225693981846977398416606667599134092560098773154994785885682081578274411426970395026664402527928302167135995510258400712108344549472438683227911221362908452690298027874575833572027934558106683099206505352012369506388690122137984707874932969514474427716642214360237790424973711942088068222969157987321356580912634050330161281337338223592480194126706580654549539987811212422991221269102366685288243156766088662559615541990736602103544114161461411528192373709971647777763439920787439344996459838772861168423995212334196190583228792822018734679219205251889289967282882787919326005772380500375261718007214784840930534634905211752679687673435739416012053702722309846896951111578213447217212416094647280234624170193660814247842757769847097463119380943196327586418406543636089825971195724390617515588477267744917768861354061115326913838493288317349147266339546799374576399213851235153705079589690116062146556850160730016801764080078499515850484406934126201919061983290025799970340717558468510528935108338489226245023463453660446716352107796839923367099354654252636441824928726764170664882122445967912760770797581049221903544314659232958953436829846928592216318068045446958396895759872895611517625141019733587250568127933926143801351975442101450385523405250649714851877433028756597936692581308995214876407510445435843819981841068709863806520567157144459098381296471242692831255179621869500260890733218709956403813385552002175527927701637876933370682411752665009751305684402042336111937581520234940759301563152640877038118903721386432340042791050735534465159030114568576589581327805553201815514538646564668405382960060552429296260137250180916703134170611231693541551574077984334142826789262267363993373183979569233074231271734237853245670840465452542760907185688101852684972324865085623861084782656627949029157960704543709557097525420190183080315495863905571261962732556965370101094440695177143962855881429374190661921404263357440774926045988811360067757414993662130197743266542451590875063410355120408475754572571762933324898078202686915227551681960477767743105911065810940173040413451774516609884022461755243222382323958192349379228742058292376088857304737108090541699215044579174374586362116280724907569381400851551513465291763081229637941291923772513940709510832652476319048812614447316106433945650486208387114075663348944717523906605568164961969426094830778170025735568307542999217915386909577411835420479676715735766550475619180984847143697689562070161710296233296760196105075316511012418455532263460436447605436103836157589450005713170315599635474870263022254991216834577324251858150410010189850102773428787996595984543221166319503280755635171827426027920077040749213057294581016345260847437237079884052960197882455507807494803107564517912394042998936703047378927920613139654606994688300272530050177602338212401959328188588210809436435290435495332973087910340428791727181382349457570017857135334853965057217843344757758522220019092151502351693130837912113453682917154143804465536801037210597285324908875968487648750374058861397724063850755281509113435265854945759801767908101252598926349167830947406778758175671409568438799501218236415735575948792544663709006963383455404149473485302078487032077229893446808740126672925699454621635949856244081813726801669191231313192926040821836312269240575746501613994274048984747285539144348472521398378410608520799226688743556726840481577198245964359690121551486769960268937547658510909546883982354926517169566640448703408278032566331119074914454117821934501909808008282610494786025134193251047291140505661430207427202783919257377364776027924915164345205738275115771430503933688082655558912505915808607133337668294978089185090174618815875370197299819099963748715897546338787713970841968615307487514758070436080955386226077574071358857687978136424820672419790626166817182289782000772628103946451445809620205863812822690135304702189172900002449088522741141581082164566749022078473123203979320619448607945952981612484192710325852026352485992090688758627933288996432593232800122426141668715443368364767537303427101667470283241805215897493846658938915720601480284092684656517819651957857644036919827512153249019446936511785318604025374596192068677040083322287284845307384849799291599834857070311941957238881529280824254155706475945552737458761345772769228315601659964818901161604673374784861668036987887688029906401211596336348647490037070944315344844765583958125087238260844586530378960193137285364582726787536785823392428584440036779326348616409538236314258961778674889562397451575339222150202416781798974953086754272620101746801857266023161250122247284988401319374137591396764605855722469616068083496597737091447308649450302062742795188404399244039598377702216314148739407244651282339972540616822371662406942811972007037512583484746668462933258146238407965542464654634849612979780456881441781208259595356216316129429026411188224470551803302156411192392319581850113317998159951942645269381837218652589066293177260451625548394409835248462461747555931562257104125358543249953146575292228977988601019251908634448813585105537259239928116405412728545488239171807670228549867661926634568847157154220570889814721201508486162847455534407629692374678886634790202975216244484460830616598159214050787048277344399829605087011728019465653321644501897943557078588345103798079502492587932878703170254679565764463696330849042616455837790650257262288523827691595171162240862012833347129821671756001301213966518397149061119456555816130881610396202166056608820717413624379558987742999737887844797510024443961233628030675629682168416549942863162222385035955080057348092465491848418969907660552157998862165490721182534614600943519812730855511941788686474313870040696961729985275851539038509983133068422877795221660671057908581248466715495371938127405442994043059077400293199302831031176138043507567266331241745684234249421551087320591002848766183270753263563307992795129423714001909215444101305911907094362429151713049889993876818145788398920173625620017833633347922976410254926968960610708297070765130317127722106527916570870073102947203427506502488270881269860639879950312660453872894216564973166189723074558571837582039184844909427159020255619530151533899573918476179323646047526466636031191558861323189309251130966177389523716486932753069852868019901875800597292340386648320739826503138210838019123186380631721792812105874405073314782506880700365135358634085561474852140825896639005966341490110146618421728098994180983018948223046035796052574682452620853163001008436792483220925942007601843566923520544548967847615683280896971127209159857013481062112533896826057509433734559575471765165150013415244482869260049072995878622944697977992347054695461452554579471182759947587998975560969895943381041088589800988249018163838073754654386430529491218815082082417056278127091016525342328053435423146191396681198580430693345560306189338710555739391213193791440095285257362835788300098718719654139470468881822468315824697651559524620387437354529698849357177935988195774081783408821890381658050252866459115692522512559173343922645749831473610059810655400415729134190517480748645983081582003323705259670693405350717190154501855215021935458751331862058608470605752672970874279919412639755033485757337546831708819185385944270502142655556343803869798797099425201118916324155598600627466805926407680804024206430147891858024860757020949262668276091254934932314222922118273424177736781175171555570507552725301095923359478768657127803878567699920749125171873184105135493043778738526019598437053623986561739566147044985634114366420364166394634874950069364948422893141611393686735513654005110584833667501209287464308964000235837232109425560461212438331551085419814669722493112128787683486117966955279824559790820327896594583226788692466599244738893642594796072743816645130281648169404447950368728139743292034401501540982033802071530279880191039186055131866767328595084896698271201343058972837696521455474399483702929537728789291458192806633184257605722535019628753298534961205553765125688737088196579025031034405191343074625949561120886774485393392752561252393513505071604571638402740918716701021864044649877258753109102263094410840443760319584847430683987657698804251546609431285919336425624258266264751860919306687239515524355575079291190499053470401425721219401856969912248178883935607538683257569069046981099377980630301397488616758846384310944299411386914466371062581001522043570665038718218755837741009917250840095533332389695573840122187018508099223496966638299297546396438273748885916076715195494674130189380342879233214135445875086185400430607692913100920363837865422821520652873770192834679752758182864948762608779150954264563975178008869340347730998670637716965637918272580149762831893742701002034983183322451191402644868753518141387037032728496651835476605921829733559606491457429757558788431687982623840761259758609860391574775397566322544668738253275365237692889284297052665085976255154049458772830580616559391610921933238504691824111158132375376063295791987068397245320433115154800478810737880837690845865401190454794229527514549430251031611484115363768214607072009382221189043467293069044957828680251725409295212629994893692232825487023638849509089946021768426647579646687661267816068262752232242941327423070286112319183831584937324222364478829595596064237818277790965700704747467773095124359160270328729086698832316170128675200514910305256696215867919258152294100279203927052510176294701443295446882657664386929580488728732575291341938970928117576509759154324517156161030036914267066175760029267569147861894679326853128868219614424212033981563973057284024832745019444542347029379648740407586962684335908178502887560649753232333745589706516069760028012153908864749086983208335268451856354124884480361927850180089639779464834264270101253634133570190832434820205394616406153542724118738803357839888171433445504454692594895824014277581020582539134499832691050002222943707089600705789816199762516105129955481772366850355079419540075148128360764744751825179240772816655714507948651736759399766864829082193605305472443617683912443240541839590981100318313184042140435993333253544119527777935101551830808063556067242485106094404505759141429033278553944843996873902449095058648288355948350054346241253299129922228562068051379633372851192654778547920240155915772243149316181004541446855117088036327460092670734341758484115015088059254042027888588557318256773844031726779799367330682529006371274516542779655242960426513674667440435244080520254795806687167347462985702569004578629346542939926992900179378477951254731545522774509223660166886016663251548564049721471333263438328114346037879042964493857498384960777339469539832692709781160102238667580350655328219461908562578828352332078385964973887367529092051294731306051508369678462807653635165547589437717434647970599499895455271383028243373000399507654219738973191467117500299385350708739539459565262979250714493372477419487287625878960750382727449538369612854330016375669650490017713528653194918654584757647319270295232012005398036336232098811915436846108636616103987523963414268092457579505602789103044079246651177310530015745597974979006930109321157817668830642845181657310345477949592454410303500900646386342892845710440585758943741699916124793619180465339839792959243835390931214042096986979495634624867779085467678560622518755550930037212657686585465930872816356246063659066296975027268370185948010384878808348087280203170203296391275618796630509355157104687322459718281765326563228069686241051583386469441925149212203380901153324446433424946083103635805150890830219877105573362496935842143032380906650255678722123400383233486818397023171062598724517294789170472857247718250250506935057323648150721290247167776822967241704211608718540604978047166226446756080768658632715165491835217388885899104178511700670277365850759601717070644447663684904585956912728581442321389237961215138790416260726776301162371886515277199222811381547489895361909071513562152836733995504364405179468290834426909288598366153078444679682361947959066821857670888869514960809242994051409254953322183407142576662944822549479004088615593903071174320671865993930250020592290036913164236882629346455796609798732536210536645322689487185766198246797631039603441259650056767992458210040964433169259505026581965637142990730778600906683524571363454061073966209710914709298434190340541701732190611814177739777652521622979700586895908363609810965692172431016905499357270229238422806090269333700445130072285031295375972887147253338236844707498528793844500900554338705133278636945786221073353006003731280115863266502787307298127899316876136538443984407425658393349136566789366609733575199778297360658765172755405453125853989743534394522034269079344901930887234119870726707415298633457474786354856536570884911287776551703944854673158584144720757240147413578239493538893608994352233133056288820316738556836686203810001764551560892871912544366878126517136805383928933141345533691387281420857750741023950169980690447592500214496941968611280583688329305752748986843686630172695262357046077472562921652198238229419856725879727792204619233305042717334439387375853117179940588782904021231534798928736616106850802134770048158824029190390027024241111468904179252919338393382275984442725600146249062532876356334833638188168726561130469524328497870771746797672635703093219616926438975764979485107829849288319857385995300842307194722019034218525215160328798527866744623463656131902964632427071060382209855233233152375029204277650380858146250592541634819140651580137740215956020142011230007808303314135613214071572821735740016807450314601310885683831967903517295594968496994814948807585863652364783153040385918109698321024853042354138313491935029289758023133920442757426291881428218643152628479005489346745268745527291176526682310544601616087099088213645775136979083036114602189738749917808712658900417752363290538076705277989001751763475370256316371216366806037043486164136989084705786236216179341207467116393369955371204082296961819655851644304940031182431443066799872065225324856623084589924515899074185600658332477447990107788877664536793993806025200352287999342837257772839646514905961640898062081073013727520026732671916297087592523919589121872975059064311776278316726672830346687839356852816118702784399282261059933418544723011834535603646371447071254533968871405588912260387929894104179903103067510964871429807171557674554993333525072757082805065334208983644560676726291627664954772602191095094206644030842725899242103337017212780354827241221530529192562993793497554244765430984421523086623381454911668998041630850678479552718410835981472956483385066493447645171930631117594108568003031183600876631961969455821963010262937998507039359677218795162514705046578765744799146643764342546046779768747004152415019815194869292122896882207946411889876453492985123861252368840078965259356000850696574419145473342658055294548720665724211835948977877277289507354427680928295997076932116127253678985733670667683280651016975511711070774521604766411707372524098267448181741572362120855102474701220232822318930854943347060861632854029346364191742178198798462743973500862418223915535631763407218897964946467846106048646812010894205577187980250760918398392871626889075019828457820850789404881503112766414734525019397897789673631270027595418929758575098458424630303174680665540896000049658517125453504695059828862459144980617553470898619807893362841502479275211108206368116921584162933697622320721204320402568095250079055934856049775064662501550043988894279122972814346702437633794496341978592833676739435076497421477549853844219699426044108305734278272246176423933886442319807911110903556252628459119606625112526312741974504514269258120160715503790625396918597809279890383593632317000619617542502817203206079312614132435589293323743359908728554227657170854109460078311828562501827828185764640090456720096832343815802971669540389840335382380937620700581389805266507476019995790855018205997156064110052261379290137585504100575598113038481179493089330210646885931926625015491627027849280087876711956620458583105511123656387024757944708968754274777367802660215607389511747801322289954958445653077961406088254559016584557045365231905002248535669404924582147611613485850632879371032817994055029263770758622678802920065193038232114339165654320479238270185685389047443314403020181507842697464710376778486829398907470410676711794443193382511872937501548579115963473555167277378682984876623283076793418688026495626871631423761962145730601701742571265509682582578716012558334174083830454487475073177833061892049726481368488288621515055523094763332219915655961237945877069590906608712851950245124264092230385975170926090776627463591507325219262831924311737443168000676506843575913369301647714867662494734831951513867320686398467189169163659202917308128717043005030965601292631196201440076155766509754412925425170236613854801002665831437617461174600063285082076084488603452740072228724094918702042181643379829276157785449430311526503349820983637923137699152992264193043294213084109078196049081806693540128866684087161913024828013493007462549377916814331395841916597416239345362107206242971809043153584674544803748475011975689282103026378118163512675231903751130787828548451986659869775406930061713343934853115492023791375808797672513186650461776830261778771296362792894127102651984722388277403930760260086685396875440740646034686893807019300387504616027165915485762508887545612406883735770498892270568777610505564579918158900108994906741430432304307533306836854785164373434105379576083579191204640928555690163177452088913215121786063423442367803740832198417087354274184632643014410797631303588548467030836907817568245052549330709321419354286901726517194089765345253299142942942645067117576917102395091308618092821643625679584518680345163457538838104824812831155968140691404446415015710924735619957956664516788676005914593359456622072917669545749007401950743710427631351355635207700313743449785204147198908217471432262550140251703828827930090820541197659947680508635228843309288634196179653176315217855669851815526154370435649505448437994028762495556554487633334806149210267836469679290017029919319732615505568704817999367187002130285538960574904982053211515838589642728582508365826998455409611340223553216359508330247160113196846904715662442026910420351280634604192979634897946222889516755684881160078547961683192787431989250748674328923141790222424865253814169946838811678494398752688482296745418450026510370806773131876905531546710737006390103689813586291314942673456384998537780289227758206133301866350258922611481190842374442965483719913925254988486803552648417694694982027254841445465781519251440526377606006943981993889912943487009323935017447901747594998497169574344038951609794070817708148673717559608286373138023952092026550524211924537778385985080410112412540429010422918219023816042248160906470001137453541835891960693417221130204510128432565551170654139213475254134333481475822034980749991519522567605916686001586129862510183607280904558502902314711566712858189553652645813993358233466640815669869019931720817978420015657860246928351581388447895629153724498296896661066433160701917992001182150024498927048848248736566518027534057115285399497545865858704198086119117211355230063665569971365547804729714795313648044144829221077482670692609819710553048614288228343340432741871370037978968014505374818291363799783343978183244402878158535460642123554763744791429369102137281843795689122498876765767545499026758709605318205803941255237594652834948164880133570942157558135794233390088596325160440579043008702002901480470008568530617028292849781718230852844791850910260142110091191167807442962525442785815472604133943517517212272653983713325448404251474994961322974824702454030633868913407872292195005438364498203361922471688713088729146736164113876979163528902368464166045978381369871319477331923411679683210786777368227431029977218073588150053841106993870761727714418845530734753827204618117098376626257546678694145997481863609991601983152707977678793575995752232237664140858304546846611698357916967171842145276759916686421591492930785706575368511353347231574991796100781733464391535057433168726775112545629504552351318128433084383702096425948789090547178679830107946032716121837860001690532656170339264417452286766706176872578312426837958028182898037467211876839630518804407851755959256541863768633565186115750823940948204443367279022828110053756512752449663290015150014159105366919232217515295748340682854481537869732731840462212808940466991551897452337567349222728251860433449245155073858702419902841203098303852616662375023760774248496020747289012926713319995168833537919331711562586374440819759431215733731904713936726019121127296872629715057096064799802949238766983175868315960129468551308629087858256468104958222909473147716482169143669460224789505498793021369717735166958612945927831784334970582262055025669726342436378187731046653044988037543394373514929676893128040220449070292888236068692891002998711499273853780439640396340327662889348528556847374324709621943420312154919536791340461393216223794874155501936148257160232878151387392307532931688839927967391484488509920807768410605199573316756550129450824002832752700900932409078592541144277519079158435318970982200868244735297246869747032935800266752014374785804777601176774510630196244333378632555425847000300899646111878559374669395044499454260855638579086803753792358035956205364586339827519686298947943648565181333502695679176231386658109399068750065877673057199291905886117343019872443227387510516048406322078038287132951560706285082340694257688177798002588238162351660630885817387512663030733137862010666042419945124763050797283931242164081580494621062164701619096350498174014457388876664172865288622501488194068665015240358028388055266281659547706822974714277181499582324388904008827750750462154546823558126299427530317718685502820843548076192115634391242283580951072508708078367570329961343176637724238723698374981777153096195432934232394918945500357913320432123806574637289781738946803537647330026627255394143501065746018805321743951183565448520280738565925839240438791419543187247419007218432532324773855482588160160146943713508158089936898443354255058390495900696532027183783065420859560976689283696170102530011081709278351731033616446274920761069075113089460272543185616850425598364357770151687185665718772527992926324651402599439427997830413681422780081129263932029770564766384277017092610466884891921351187768996421142691713032295153825195686217691776641887242656002681282020651257958050812541017255610205573911449345742071956323370784340928266043581684039000274946852510396251629286949515870533204574574931470959754978967466084077910348400467452552481599820748827521782399418596491557817167048248618815013813135040645033861168797270977084564092853772998386054372481149224784420458189178786247335762115394712149315351213117044835489602828534996396752370340555274786144630895088501812665867244674542025609178987501027029450157007756213703944872430020590024559123240666024713313240844130526502003982682677426166033136724585230180097366644788473206469482253987693359838726105973387528588019081441379275198722395705139104893542831446879151845849684907755851253776517014052292123884677802659050640879080519769686260734654874508059517673771107039825234678326741856749616401866128166990035654077848052436058118799471896508651505320975851833572324358239852845418464539092710465620078853494766505124506491634057222528919192199267537528932459713653343969931362730042292402122056449658797570655639878924896782446983886468256840099766135006181940056005507807213798177329869446969438693908729592684750515243700353608670151018774949425746890014884216160508931151484516360130549910605303279594423020899292629266256387892745273601334703171688771518062730195941248779497139088201019131129552508558637211236514359087837141752388860213474243105534313280322237968613400016305250973218585878850731015434812380283322209527499422536067247810867781149072670216767064396158519382836638807023695494125915522687390833970775658193618936011829441819372287249775849083492687200795183021142319572515225159898439443788745053345198746580194319555279005715159327682336022611767496926325469532533513135403978021734719384502532381738487513854063335624993927698011760103258463370529946654741275453595882697727326194934244269568950103932685047916872788029924056320070142798744764191287940198657088161905975472376295555127132347457935662277273822161704703577132044364922636069745788626428877822513260123476168952336916439052472222542064543688015796619721160826807930224213762218833808366897666138667074438395190049613273409935808976104486026737771189887179201964413601524168937267874817320506854986612105314834911781265482638395545583293351731639386712658812078265051320164644999453039778381159664867686954478997156147009690169776075740414029583881405240194012818674821582266518747400461024338105237307106108732515747271236179979251363030402167341984360835115515483902482393629090366038090793674854914794602349212594712184513001307405022607380277494451786951824478019760664191794670615247410530424872247202811437908773399108727769054038305561852521482751115223053157674222382462352001028539099957844581818164312741991494894927770422469962069245482001538256694991724815500738754711931535843390550737140191283786775950330215379636976632069081209834443336104857145389520110382552425434805311162197959446535434168225344530807067671889078445811307470543713684835711292848939106409555401706617917957803303719691235872211985032535738507569258761536870902798720338564996796824545552858805444068778769969798240360552763353103290382753362255975640997216264695730059474127703191096374600415562049554735533717036539951507580643139809713690563519869866532931831594494136422255595618522147216222956532181622261359242505207290044321201769416103112955372878379040339563881716858491983175743698322897166207974952191929976382616753132342267350580040767987311842316527454349970253045426658046578912358979992181323188901699527377077113606044338138918664693805835950080982022430821411163677485197078416547655404346390988964387273191193300801561992895603744024911259245999218729834236673965648069247274513834874514280168404442066390235203537662970001097910523806648388539381445258057056750639079020712724645521976911079859075107781533310392298141150290017861749402044123225312079628474245828332128116010543974569771792862461952906418544349045521913471485055680984136029902667061919882333977346520669496965456269496129628126525202881706917568490555824793971669859742132572230593909803560631170489548299203380343625827387526735831213272269503952212823413595656190481366360300305441858648958685920614236671603679508847120123012508417984910611298589665966060178385874486067153693925826294662613028217686258408333493540705989269203436690561221060132399320180952109557007607591952480364813539985994986196110897900864385137243744173992224697456014084395496069312430247340795502221763665580462061944227556328668210274309865354255863671891740306817922826884271501423326937809398479120893016653278339757294083887203502568525089610565975761672710263662665179181439038689570172148706157007973015015222944405125341698409076584918600196820140570850303677314140703488839727920209090715170870749012004929662685230707780576817700013993528827563251121612717179748755198776299330096017916615868196688240410902168330783192689196314599666691706119611259979771189387897575000994256331546934417848720734610999438237979084944886560176023218705294693685580053469057996473407827981721073710731992980062657154762318965544955418370189147196711391507992196681734578294372868986629655054857547450559320160839712305985692814636728303772735965693617168708812218131757983298520776601620840427206382359090229739826738869110484780966336811987372740824762340870464281291004071622864615859359621624346881073890803715081579279348164883342889315826123782940951941059156970744745752662806612841499603150010654712196754994177453414749726776526110822891430559210389454042726213195509323646698945872509828028460181225574740652703756408844759859976523992616429636592596306646813385130872936012440457431315793904704737010668616739244921342151630312946392175145468855115783315929545334263410084419246375431689550614140507479095384860627126947926966545400201262206218531194141088686372926376519167125050422829820140077394691756516765590163135218506441210277231406364027095031462767890988835433954171920305009907021506069354107518213228809796787745818545743007464665640136295538844982435781862020123442615292755596601273814057946487556571822401940520120724886445436235578030800513414488403355878089080981655682358325128588927088102676124444786549506150344964957955524268131575898506532248121307160432145145792371542531751183639995914920263536661717949270181282497874290476906508561398954070593199297932585449066694055163513073301953959388353219951386805349590792894058037126805342641942396457741360303762339818090272618019867086990230303210812800555145378934591716377667476061388931451224106851027386935194150908923820935332345949176132143529394795956756775191719515766653579930024895502479587169787353259615866876687849630168147800053683630455666670604158498352511565031702327419402577018296524832129326164030160947256515786060304245534707568136625293190085106408457217860624503100298392125691045177313406767128559132531605124335324070386056632089863974549760263989017556803332106135940316573174277493953623703871059286768896814628413709400834092331408159522905166585232250034875796257453858587874964683735003358738048112652891419545503816440187755488222015239062340527392141849779786374285321061993588898897765455128177661762274493656299013627988556283938760401327534438516806424194096156045782600898456122927921668516118149610159881444672224681943415251948971032994009282339617978497906272197635795493840851012558227127046278651831241002228925835607948153041633530427515595483685674162469126532473833718940841710598367946417444548145742114403533398487439089014899279587110249647428854378310109722031361699503200696486078867346453084592627523421988995723098780187057965394048339992168140248225998054069197417910805981125109447155764229780994162069223460676583994649291442691169820659360980263501231559846639945174003782663574042044882967712636931124816390606331744141043124080847883282017197238129355512769519579421315976894805678883138380095660840276443480523888167989458844348733643150023038144870755901420429361017089706142049932486808046341937346286770457553893851213790408202262053860665467294662780811828730032350048289646524009368551845231330363877212957839000996418091557258735010086618462943994304916799447542343785567081332884058717474442115561394922470876233195627214567482555878857050808655421057380250432289371349637768334029838397657082156478589460917955206994620319404338352936056595267913965215685854179895704674603243264028415520755605017259252980688617636366687616700418435938579120751899230097991633396007123348924150456128448426818961428094449586949518981741695210815282723671609946505053039598727854801706058975212601061340206052045143354929110419095981051963948025135407445439884143896675536779935667200426884292401586255998346954157120797567732730970996548897587578749856856015030568439585117368663334804866790494607842486789944293976493199761999223870147493437830955128990634326127369728284681917104869648600635890881746201418676667675089923177737481010894305537614441832162151186152965977382217778987981963793377586391961979389304393403670950849813658634128919257100241636072437982859134106332945276787206174070837770816760910022326327895790038990583904837517249220854419620451500447846257023023481021400635586881996252142971047660475643914117338621912999904478089944963775508196708130640017116241136501308526449821073808933209905844295080601453469053957964839298623573189592871399844944704531569897956462136249554191189105093711669200858198646327306978358032715913129061359620485842078702829095477730280317452663736867091774019848898363733523879875221921458134135711256797103586445031452686219802981730266120118032217318560957724313177608187769678718714742408731767958316301739861067241472499388009652683305578873310927124006276576427380483926384365994126324583744643523767314460030502577160451037189269675120646468529492706268133428991612190379249677523430333771089760193986734665181045242958589623373863335366341599841705690733843213641689672832662974588490329885970868605455178077655192474635544023784220910012062721138184640949316111989290662598037417999311733856785344084998872691934241824638514845768465996929405518469480755950563966578384202062606042892427563193292181302841272951927418337842151765827174724032551400549163166987947000897538651525708781671440396801594995444360427915897598273243165423211163497630929699505275162272438375504405996453085686374677812113000653681239736587117345640336213322139336994866583235407511068724785891385616854191886246879681342207518450795274075757249180353837452387811899413871540375146428415080832260083893586979692390238803480780702593412253161261821002642389152258611638435888990828169581882919070701378161328255888396806463120938136877508040269011285505711675311961611735133672587114914361264353109118967570784571237564765784350556023874691783429765870134913808020517655604889042761313438149678965629291164587069973801607480402616517382036020010180104454853312355776924277453227581702523978602677076528672231332543832748083907050516455396078140657357630950208868306146560286539654977162094756876502071550552312557662924518324536905700096380762272700506237966747850443355722982812043614961409852313268728241462252024856445127820999825900466943567966288970324802985643497743923928920092202458448226091959432779664032641431635766266978095117248994209018224656178398387279515112915436188683998723709686740219508432962439391380570823997011230071171619534328351025822709558733580462975524919912787915804353964681997540369995272639577779051854962801526102618085022272166884261868245981817308065564750514166980887660374341985958348315706125987081097452488515667550181741773730999092374554214433893578590253741643262916605953024653394766644040371448958887789356407145281843374614646616421976297764223967941893435350287345554914465892149097516738732228981469155476789955109531364162929007595963717421801460383987305977441085540686268222905765962831565440084025320279269469528310296564260676648071410358857585124061944811677159661715478356672391547035386196984022837735342421934173604663104034777140544950080061021650727361019125371305093362857725857402635311781198224384728095666607094172743096940388315516922490460559686505662550113411452811406331590480588870929285262301262304765120158270338126282780338684414557579575673001321803506757040511763688055416320717387178329230634813968666799987772819869630368149016743474763765258274233661993045783147718433526298667390347741633473937142654830538657261613001000893715834284320353939306245947305560904590217479090086650448729588336766130637974496213753117518000549095637152480583517039635276632039496849429609661555163833353883397900112769222827261769468315299187420665608243946712169792099430106109722383046706732783887694074447272400851983359489197651227402223829188334889935241966574382248667448018950170033694380709054335482628795239931985142149845697751132898906437238307768805272610449389004718070215665405088589499048894887425122966397026936903666909662885255859035149323090022652512739001888238361752632422010145314524832553615099234707227353543987866426004938936411047266260698951232260611722878028606759618169022327479115152032663996457272698472865123771429013788919834595875080800651697614052858841543120831409127354366670154978881823641133605910522230757223146919320306971655073677294352452246936241808813585787487439818106123736118722088415377903793089073165255962764003894076395078985308319201912966515259227523093321607029691640278813893235478820417856709781869811592479169729435836131828562972954223737011867930084513647184701245414498449236750540926724968656898031699817871967689534534574138082705715525518503376505347013297477980443685500314048170470841258555322450231470463301453258598937294353871274412669345397924452642359778037837173546163889222699417733707356436891247016167781198672252906305673245424522844439864858719706450825414316029393033779502639403433902497615411511183649792749170502381307237625862354961789941219945894184034636440669851012535080676040484686656542631466880781622854499360759729244434918173769634868188937639187804435195233546198995271048448451466046744154954794787746211261451105661066406520112621144975878654730548258113081926015100405663232585105336287423767434031816242119304609461484401231753635729062137032077917057638388705709920971889927722800395730893383103068173954626288154703083981533153433890538711850087736096581934829249494727129661148884800473431065385645915747806582496156052662463621024582817443379069549494515055707877379405507189731805546071367566128223138535790186739043105743068236554866767626367466198610983406655776358212987231608088443572876259933614286634011207719471718883467404736315354860428294733492032373694542396426695633146207281117274696252439188166151803322811407551297604811619904650769293733465556450152431453977571047157542374027519208932883565232826091626991015015739146068103208783199215965729944277567332215431158316313387082003937093362110387925186363789219000344288753360955538900440364540037245381558645156995934167348525588496216903948555959476149652977988590420686905747550828587461712453299263022074352774608093297851742224979160767116389328293627041211755465957132908508080287971252847475643678564137812952362068398903600888494879968870986204194221234161074948211421503708806015490357332905346339330973640040051401106352527535752768937122670012039269944241454646945348069658378795865042769490500053560851667493606923814972481071111541226839012650477457736551293282278571159881616113926166973241502937585585487973875467477371557325546622008605292187643203844776597006089871920283363593505225493640951994251588504893999312689060268980361645039023560253494859474818219926145417550279622833069518585150173387485251856988885093628678326612973593792646643843186731227435557786729621199557659678842721088847866698658019392259110647693262265963594024909534022829319809960000684342915740857386884802235889152759421351139605866729253769486408538540345426034948026411415336343792556611120499903962388173003794865175174420154716868038019847980994690655218522374782933987886348826849044196397517161320115628941812546052523540725561362284262318017849865317463480517826078953904232035682840434099151341736277348453525510933874960790787803628352170694086660200042917130778182038081525615947989710441376450633787881777110373640654796966090339305854651929301761973899150408852951861706547124197893002714909594171351153088463093241207300546602994188263330248192590999207445306691700730838550129311024551260124825622823124264369548640968908759895359552159796436371523642455607063984097846735059582336867686750578802567328882462688349506578180669917724969061837570910926689296999249281541868270932832580841865841948797531104630164631602973925968287526969896035960589869155980748626733436631619723877191392509206296887250019319904046083419952765594742181516571131177365502676999948945612185611708209941498281725159403721340212000786111488165328876236338859913428564133725153965336678588909762076867958152091228500266676914709362259482018815825876963851928344582611396252093647077217797652054946903684323551892827333666897434982696865392210464529553455602210749665413242018223637697443782136294533939982175401058513758702451057243175593826366304517925406951309628391465509861809706672801227986508938580515597046296124280190624509069210711205590403885159038095236284647899221825527102428655139237663657020749409100818874868659669945071679572738703416056779112446992384622098818965538427238965481770592573647783941863657384940828007940903925830647342107378116837613979956449070878027995872747060891800337957316451820810574656445441547630035266798824237904806087939515313980430324059057279965366813099983601862842371019003950635628351424253495017757878717767221466228133599652125575813519974304027158888324777447548286445615354686137889041201679373837751973636254430403349693371839080267939258470581519978344235403712677682891040228383313811128210188850176542453402571503306890351437893286219316250144586884280960744462646236673903132158920879929665252608001345116444065177573224057840349673233307554328842852359324110479627979295397972355177277448369201907302203284169404261707991923748085487268464595683062416241551383808332974076317838631246639180232124090462172051679655142310830305791603021418331562716655001453621954176139114270087364557695184715716829521797524816415644478117022197677229109052170876058540406482448671150030351210028856450450226653280570342405853821806019678706633118057908093122088432526911289494446191630991150389416595089562552266141039926786610361187543419553481887397859304173433233918900909679758373116352374670534847287278568855693631219450427245659687790817867003864934284196406071210576158810074241626704836779805397530903036024570431903211371164765576196524730311378209291012763503550734879969720661131315685470982720229404560490040284232502965133274912386253989727268053714686395469224615557440905588744182469652087769184248681744917912994752929334590322211239680869754408995932167323285636012610539732644768909237334162599748037107797411846830837695354077819260041748017307814262506241705006683910556649839006527306460834485637067253298993689953358734921492719957178293405345602318643324056179086236756026257711092157138429762904078294358067247449178304070298707098004981699028931791676018521884174296905788815832880172755173891689004339677884100618350807791454592433077327967761619951184255632605903507060778847217083721711153507883324748979855214591372502732950725614552511431000702148789045492889329409925479975983856231324815210390726829589868855746674246539177615933201050344486424634480609102272459034800763684127928538086613322116990169008250466711546307482544026418569513452581750545808036979983680367686624118128956074643095720581133434781230146520601300017386958139952338808663218217246187451587612241948334697912525509304852743416175334025180310769742830873540461738313484464197577925151980361497459903469859484801414824011292013478299807282443061008085823614255364383928111460643002638597087206616483069487680416737980171523968749880468819976685347392498319256591140891239465275520421920575228223570347775633213654485645057921334255995462235017731213507098754084551478202836017015640379675881419753692776001150115078482087933427917412130595561978552929097394048762398982261895041130845538909996561758660242118044556485817307699503654506830382396908747568158757732310718781692094339695795678223225242630402008464126862651164804532817211270659526649939804434204134652247703550414558071841689394476868003205043425600193020901330541487548088289189163979853583393968846814624902362309702574689410489901102193349036514723076243734958825056018279085920610025448873165619993425643156672783294746193109576420934934215282791808157767518151081730472311318309461887960510665327137462932628779297942926396858917257724013181055253510894426255022694747327221038851878396353196848852141051338093510293902968992134275093983957644615881063518066961366264843671460884260400992206155260028748754451781577110224761914561544514213934380464217581332426726243300356442719141130184474452246648781844660869902703977864472821270987976206630912630099820429506912530079308934701553345419721393303943250170149375455424250580189785538204557994355387480201676287389736053489400696417990007165685998362306656619139123331712910479036935126853548411069805745774666720569855550828677395735647774238584461910745704018466562766770243374333385525329933639257440660951399359675041892100614006884861243243944327504437281795107236686405484919660010652617897626676944745712005734641590315268786262782089277450803841771280874826032034990692467094512413662912378562904872630889839917230796369586236840008324169305507784491322497178096882824221614344191069422578252602892105736026262260795862097815289571463074362820475126776159154696130557033743262974858466423559834771560500054896400147736224862203641862978138392276072110293824424582922169845837933726999385303297957303648459045757257200602962598499820376137736063948996385570374476534803243011438460847652726953431810312908049188117674178762289209372837599834252584879078085144120252279004214159367908134203752187727451227429317695511898927163808518004627964219332104086488240728726492339384427488608605215596558180780073144720202368348669000313918962789927510436951992670636463213675685935355752284909744968317325954026208361144026221292700602160049065062560025520896010144627570646974885620495034034263259438247408119081805958974691006646734987122886986067479020022657562942570910368886312316988888195796126534102701684093020567748529928984225208484529777494284294836530388957798619620930838260664796634503077498440717133650495075944548818453961153564254800311596787293276664062452764270034544388597761204382339343977010070543701867075589219656141253060467845191996253600466490251812219477618332911920820875932102939135332086568393942598710769418143740076333184540054594212434889776221467460981337496956150881504361146153208818694884951283827526966937346235243906705265626815035343488484469523655911183058618367786481400750986516262090980916386867041316375929919650488780316556218349879503521833755160280264680909184467594904575147651166601116187539402725389719709666550817819299201025163929462027746098338411586359113643832818666432391774257698189492116962169579631204498426285882514649598824672113238751464007273717426902966292318488644966651496032098149964360871921447917006561663899956920061005163049323767425353421865398784138821502904851566146401683052962875678344005352036169255765619231582444023238665586826513235679712595102456274543484899784726574927685682933361714761558246687064957630123634883841395164827712727093317053335410884066214262434980270478831985238538359494073344732638278438041819786877226704434454992715804989273907962481961621141858169108100461724663758265921073105032851620599424253557534552465651654567246145439872033348759205626624627725669225357727588734113283469065706838623001427660481690069726435171744081803364465546769895281618215408519150370958810510147267233794369314783727981531881179175743825944178219695804863453082653021550039214485104155588974472632640538506183742444285778466491061705605877686063982297010310184864997052774746711696440248533482629533631350052338125500660565262773209416606192078565388133795370128245091605361536462896415368842904915334702514435742364711819672303518830292215897527822913144636921249918360442096376167696006578638280783086758624160324962340249046595083212932389056261639120030819506896927516356341538422832871677086458193210200117615086885181606303028813853698764974221516837475791729993606762783149392573235385590347102024835921489416580718242965502593880235200903576916265776665600137711286574165479466221938614923776548124811862736666862453374332498914702597591711415782861734919756535988752574796720048452902275697719210821473289130508182154529339655822281774812338771870054020709418905017756281105872599912657288082665677514517529090876458401389342907868742549854285579573370968212979478763357146292122736128603186811208244248761938099505971003141448320233653027052739833360222770369644321176925349330560235401766681794495675738783303024538186563291042081414234299838926469206299602871710901276084650754500666660163471890218363071511317246569280768666507846609469973501921038461883932976965719847640077195572538979630073925904677883721277701858268914813344035890040812241055202315690109742314644045440780510639760322571237659566017530004474810381006578545665353174669293223379783892790063824626659078401595521159931099824774018874806598148316410561271839098059599894612173417637484577989220789929890259128843200160912726985271628984413616088866876839412604338207271244021627247496310154831133959452020351250368598156303608671314509314955111719705748170549086894470331723599536684970348485687106920115268720376518704106180047567218765612539359755771979274940372456395491901279304741607033810580650313753420357174701835429985669489716693492119523443847292095081754340555279564796872579714965332825083081872311848358043371754323198411260758077796510911106208601821986060675838617056065751310396258455602689260805952088034719264034112320251870927925970948867243631442624409062249737691685674880985654903526106983345986258356607379693960282914050862139615204487322068271187663463872931304827430814697682318446284857639736319104045394155208879487166444178191959792127645638705150998157443776022779012254728441520650046340590380180915478157855852494857452394214035535425657769419459224368856747023811158943665333816043973509953543874046044244354490766150115376068668971072625782171822002464494417434711952969173690115787015855020309881128416978388809204426423841614166001609077430129758383761775793160194497356276586526276006647562062983843049593823487854084307037434224943300506459455115264773659624562555812838141745187022396418810876397248969479846586710208301203051776881765038842091481571864280597268407821572323746852973823649573617131145557363508759637993292026548217673554922465501941656021075242682003089949554722511285466231406897058930129855826516139799241829422557827448539375945660211010054765772631492143771801814260974636059681496514177798766956714971270279432905600070326587350072405464763693523693483241875710026393633808317697044172404661502289360942406724869135835922375983250213459191760214217671424097513779466631125473549645487151107446466664319333061296570422726765636494874815028677642911751701776186564717853045821198342781900349722229380695484257198336521810080133855693843303687259056422382782703871717636362144320471900478979408921683148788958985293939947194058381068491103785489871398824616713470822423081423487838491708503975597182588558878542858517605086904802191593592598462792920034101668898738659624314948501886685685987501152573335716107886283341857944617508705991218650823882479172261437226422559947040910506253460646371841178521053516194720515414450189649850647510463989687532410209404156308999541150049617358237893724351857798756848262699498324038139424301108466572343707443324329843856368824849015780985566922388740292486168256784926392527824916782830327622866835860344672882472552045435364778167539244487511038269179702310031487319845812555528225049043977269480679771525103681868391124538526146649298064715997138254648170180516382355579708812801728067841334267018950066311698761345712033180832983359367269483291667758462864355906747175779956042770711555848857670989908171689527524516532128239736837472410572467744779459575932866809000183374616143124225336685280111517650916784975864347112731534202302846064446629850052521484099840847158637881211617132909821813693630490173228998435479549753716982178939648558237498350660491563529392940535787809604437651550220936091757744137000091121094483839033818500223910146235815347714457136199565685641746073744486399962162696436172268563519532793460778406420899066405881270041366885815627425287757472470112268201681618043581685675170649838298913758120395889894687384642147359500669128063466574641062912368632506738791530275987471002897006962097890461789087174195406639836587135915270499637323814809322888426958146484603357709399793986775633599904113320745780268084079818238631859591040291346131585182164650684605091217183856787937657350462902723556188593274522873190203327462954590771268868695907980539886243481832834054044970482589371383920604284641453240860812551995060220755932196300541643268326000971679733068144565576914480196175147704355177434425789992904258285336659543529491523914502061548967599137018296771681752373465651078632907960569485495657153203450214738392825496124405175890008359602332446855462590970705946688753812226705487463776702162502197905516267175822935588047530192764506946047108387544797130758002981808531036230617855644527032289494412256437332814604771449726046513707911774138698153995385968585339112266761922601809812369406378228651165696646685231129951527109576751451337062916155194977485270417681427017165383488054225578978796637669833777402004110025324895453611197936550664383881656141735310572326872861160252768954409287255562477117724879723126500047517830443722973702459598329193639592111230794262175342426263645761655433157761462544568963570709733733019434554651562592223990914286637922992367421071830854831180603518017096601772252170571917477900107358479196042988083456606329173842194120817406438098921950845639924091107383609376832209976637428208206428661637125000701696978102224973965542491914365081651501285936160216454899758259066477317158024330492056629653453778284754784353764935578151758395720487651724658398150058396640683167067571675216322705764964050719872379155817568467836005322022147467679655579627806369951994080116343712837066786572879876461182023013382868597376610891010234749796629629692786200669397919718121842928113065181410328398352523406585839016353930356629507377668711448744167668051883216840519688985933369914203312296264302737972916744797372318549719602572615822791280896036024993251665256140883778079924370560872593469324554783842142804523822258654691882409956272433302352203308580101504474360710170325063057808157875618246544751805455838653431795397170856150362107954228249521435954495755424359498106569608961038510058087324564263293746251576531949968484563395318555622664689311584009538056960673557447271710465081238307701683941611200145454056170668307718265279974013130165190942461054718514003046817724352747625558793482834226716402837263682604738670513888082973628907596076264591152324496018256231793494191501127497486428241643472371377256739811545715643878395120160323769156631525819837070404919600962203352397915106475384912007991987050966596675861206911448093639447736370474243327469599099685635084335714096416741098151314338492744325105178353572120724142579710261993022718812960340196948145276440274102090637878950082806810849723980412975280397326139089008059379407593398697862010592981994738687361073719904439433456099754362776877401646407898782118144762570781581819097950117277382056563997511932318411578634004009117224279731304674795940954368939386523600544317475921275214973856314910641334336527836290513419493438921580661429986324059341449736427353597378281182427745883056472669514788949028849088472598863128168955810227268282947478110821964394495070299307709239358055736980407649625742045219812181273687861414697944061434005678102217430704751406484500352210682124988445063903741005605678042467802998981857921936697978232621150099928036398622092276727109282123774248053231266895516810111095501594376561638686751337364737204868320650504890669700335535369406428974185307198376884641112453381006812519333768704555105403925905201703838112704760336267745479220615073692595506557970653044337798627877933925670330189947394702086143961994641511085028020268703092033887640381348588112896609789696125224306177831522637210655395161390954759095417107584855327140072650755004901047313587417429295769012344495244685899199486183694986880220646099131070984039045801175293703531562872831654866901609675760863205506375688183364979805433334855598624335190354155739082486663657728984306993205856012226082507956729555626548038423013338435509822744788787545545046573057276955189340959301854236388648821686664770772494428456941112862515847175072539239944552002543127037266850284693939157561954706440850314878680109079661059027540458657870526308933411272976094611811387837276266545728978236957113195927100170991231163108990724378585312587118182389196025835355349849845609062997609083015826660524236426256411105162174850435305438117227456836035227140420014124515704631139685888074514960865503621218284368531048539555650817079603229494707019270717951626838925164510282605740592826394096539283681991935413306699936248947794820647122224565637687888726085043439181064065902469981636870599215004298443051390612159326140743034983800055946504026030269717449444998348740353841687688583806099683288752905707597143562148465355993342993501060436188618145131822082085733414626390436980294073765673010980361644268514907833084587131491301576469437490650919629751391422420665033079524779246592294215697555154207677472308934627017860363642061184895282435061353506090762015769154808290617139981223172838077009072189237951220089424199574265576964974705167807865641761400626320506931407257474542256877431481247252768817429016344123868164663690930002207257063729212971761235203883929965301625213282173296771101199764570354029006115884497033777538887798559138663634050940743749677771977360708856144571843271277243310198828499996030528136779823369808358584300416542326248336670063788466155970011865235231023329555057031039045038274644235064471537150875694183843320419609171540538526384651342840229141156670472269040941712025130351997224388988071506316542693992811058210413768568445167254526813249639958863215373647799210942094047878607595623724196652218481449233409437490293512884456799263412283693152503598827544556178327871107780713568652811153657304162153174781182759062654857242265251261305580890927657192968648863392489754675616071489303487743675542366143842271676325084744599486561183490241237918915495401371829646165855539289106488693414292972360200761268425020397243549195319897318083018030293687437784407404277921158787901667306841433125166697075185411619065361763414460953876617838353872291677133976773164178436714668025223066572543392463827101263734670295913394298233376588304486523836244328443275655590119679911387014337908992800756545922096992969787620448253672725860082327310698398140210647995968876221793392708198694833574521851327386964669279736591781864635382323637320512123048778944963892342871260409109548443158143067200042495481802036583783126466737374061436190094527094199097606294652402299948264397480537420469090539754986565242475590660974988411056596223347792611214087652262327626860114091959850251232272969081005504023038001078553314004142409032669468478873259120507278852564971997673307274253078432540848493806880176019764803799777179287269638853808094380457497851557589009583219276345672940789245065994742662067440333849553832204531214715467258530506672689880532399461071037333761812941119014660316711891541063566764757096737888832234860855672953782219455692699284234305999466716004732379714717649040096578104443535605902903402145312719924019138014600110493881497214636194135152155479722845253470296036204344679199508141954625662906630368064808250637566204587448983644249930313841033914210518846469530813253352431404982252844117494571664941742207132893272849971163308798629652028329275436145746663775658962478867016968793055840067472100863787514617860614134815120140215157040061634725700064082749744825175201988153854304033136904805879050339909010846309855722423058250451840872693225916919276732698733987986100553124126538286822130615054610780443198114320969085053779317569151132595568809504890441386122577737181070034351271547222547174673890857835161658947697806123572515926153505278647904718482451745091687839759566437392888890410011381919686512440245012574856537905402438450311597167976573376469703947996493034708791135897679926747458574363909233931778553930975094087516869585969593695311302502550444582902223931810984617394460755383755588708051326777669058538590657922219063308814675100981339928261052178165001822730013822997831577766100028468759821422839562453067416543488100436387378788770131390410937293137359526631252962583217998252996148081441870931245688439452759141079387719123694035435890454371771790775640396510790185791060098800152700366474442500743563998380087247523762935471548545066294151749112471307866712999839480942112477614774857549575787182466555017359138327492411841037181717159877575014646972917024626165270682165032057542688372448358424288471601196970148499768773383468824371837025335255166762692449283108196567306209487044212213718680471105281723412475786784780716622670513252342517574319140031436339472851842158368637494327259590825510813968763633941988794077752002236590501655476928504513250442313467683157860915411233134212975135171119165658960832676249980628078829421996653459219562196972638388986741391106018799725310171281296996668715426484071311856205864805917426940372340584165420160029403974136330701145852331082511866464737404959618867848457470177509505966936235852698094316918004796207602392901393713552550238815878306842854948026522582685901026055672529758193507594614154270870994956698234277972970819387506903551037897485283513440745684574145427675110767403273495228989652866810814461074374619149752872536323636002491455546125491251873458054697856561651849676625245538609593590789301093451358637978522234737470550633749670883369540859674697296850317113898398424253396787487941785290343070832079237373162563721219368156397539906575679265966698274225886382814407362863742242947051881406413213075832136792041644558492798213621419061871609266197150247978565968469164640827161957742510231823341620203039821675292244178045817460744448325562029903111051415162631823482651007485630395020129354403284056806828080872808403091337668108472847563314413752250716668440481244028919397263233722945116579616394519340532333153811356744136969075040838052101829612417147703058168416317627339716978786267149746246796966810102218884841193370537451016381258802401134088212948749541522001063604374269356856479738578133397186814269164384502567804939644057521986768542314996000847720212483492160129528893453214806307259170466371001922935970613735276881915919735492680139480509647126807577484849704388108107492405757873980869474950741577790131132435857857806476188265443298179229888164356091202668193613072632720887677032659206597309680556642445854672629415252586702669256854949211563640781429654600953478922148708202604814435921241108005055080612994355528826346661103382671406633485013963486165870303700190113558403452061428478199828471760405132240549521569800908783248924178396656047801951412017181351727216184515932121883306237210191058764381383262157426032632458701789453257069348984683078299605403536439543188131441159979434157447772516079164104713145450373213977673108759196916677443123184267182683996648140664104592494076242092127114030863062103932383273383106641581771733433754611819891368692603563390120713735858720590766064236243133918879936235483138518063494342010757004521346804690875593132383703979209154429404692860147474612454257049213066155323716618494649914370312897941920417219012795428298113488810130411687349584573671463471439067244273063901043559349457519858867851876011980347739041220394669447757766476731490104250762723479413460756669630956891022788036334336704589416411301220075309876422686740880211210993895102820784377121577772571359952965205220316587821537659662915477236497234047910001901151712991770158798532729870980945753901871868982541783848431591507386589622024049870152288624298963900701597497715012182148363769684691914981090029728376736269406273002124851341681157324607902332469152658310714147193715091918947604786803595323402560720218591733996091918907121782954240251335829164212873952505756027549510642356308844002394031302852488249534478043618133095490425296815202810553854890834780006993303724158562146061547821788997271299024836864101586653570769983158641114216432128683610943083370950249870360868053701282867083654689852320091779814229504935561624396310786082235593291444106583608215662352112187307735803915889118379667741919359234021452150348567690279098047890231630968559717290745324746806547153991878586002210646442030628878593364766754652255850884707459939293575703801795628184320267357598033496702244571286865514838355255304613174649500143455618558195080149515135449141629519242908447664278223497448863031151094611179671668918394571627598774420574335352497610021540975414162812359279877736599332805903765526584134244872271786173779887281293972001959505830802679379866061382780256358167111705562066719698891140202566991608449063286780378049872478572212258844579469661569078134558550684790513652939402363921280992221198701011748507014347800547503042593856606013259282609669269178664131956392517568797328133513891754378781613905709114530753138691341937294760307463673160107026577962743894450816576538777737999885345152618495437563898540301373248745740497114833477549016807362008175543629531726943964648511542520909779996018047196459945981546530683821633884689215640189701832950672940416384326280577085653915208919184126398854866181604104792148588779502760595042849015446064916783560868729417703004523120863812906828417716534623094570602662055427518823722525156514085342833644330127673074476088921826265406310307885671455481349012223256925076904906644653339028591753259578018126312925668496993041653404781045083908385686724631274824949578911262882943063298849063549619715148962784606938867701002196462837367105255406802010516493426996441039326320099085446491202885611676075185050363223117713552652390144060480925832103709435284546911944092731199290864332517371363625574320786043253766060814654935694113212768970338445086201531533261970131080218913320431963329441511305496875617736237131928973160786884777841617710050525246202469396767174121778617682673968859922262717010722294147840180079005442855446029428053274589577585018257071740146018440471176513900225258080834139610091923237265967022567772096790676765776382182474351417423292456118429736824984158042214457808910878407377812593219722291822078423765411029947960125307521337039602080185913939914221097382694309676850921236330590185636628110685817845358272151156159101002148803793159570785409745813380339816383978052925016836840597302602164401656820966407539576135024566787440249565236096703569856303926535959262887173398478040862343134863582536835076074745247888903718976339073481622265503752651251852943343770206288331971768900895857636923456861994757864194924009753064924906951763260044475520189508309147395405788777588865536892690248875995987067395265407022139225090481590095258641737092670789664470990579182547346218374321756744402880785722891736639836278664292238624198586738132384566122130059349087695965294815049532777950185447244230141667665167004091449655012312754405709972781428205677720413230208984842369473623801985775647102088893781646066474465699092270799377046742470590814904298347557995061605109427753911663890046160941145565294144037526052382890994024367825199772175766435608687768488061557396700407025559500845255088526014415462968493957349399416802327010342468349022956577475303768124769876581285304994020171030369500578677591918101275587453598279619776650559671057788134802792234376368210346804714191439893243996663649907957516839108199208603029930397881669346677306617609704137560544756631919809698905705055839557111575081773508986593884686104493064989276843528233168017258386647438950332149302006111581129832817393892614078624810406093848021446989323166648940958675761445963794895749737773492186480504777979394482281866878450907309831322800017827462309986360247675870084139673494259116963662846634214967474645843872390475309017858055512785204605226259844538524539331999386744471125036482417499792721921426467361306496331580366544290101551122468138052262368343469506551020937445963399885784377588672167883780299846032286817666097838597031994187425693232978073141507805466649349049694772750364824050181505146533073868902759687858421827684265981441626498698137557624273646936615164527229229037437355457778133917958550538430309872595812059596514552518062624869499860376401152701188427160006290738231538887014412075708118998872129839266966922840207800907335971144502926217217763617527482750364133277496952358591349299961759345853606230173146778467114574614317540702734794391509104537557984404571612348838168840270955060958111979106542551558799403521284438252994206760798729403311274557484704901107219215622128857681673198653469936726430174016781521878838679325825883410143206118364631880926623167847482563174675469834477372585831780923828443478508541988104416481810680620377225527232285994099591298794698233548073220619900124836386248856222070097027696541598837818582709890436954833214821266605317425800596660429961819082086791882652959207450656939189082162694459411908953570784605006672435459473427231152260105068725050531749871302614709365069559920762065074049749005531989373161233103792827131833920692477523733324240885318414730547395348773390279227440970823669472806847504982361305137443313463457154965156485476107255755196553768946549103925857862987231312719694566415092547635292647576550725522252664273493503012546627251560136196777102628973359031189585342127566186391804050120751083748109498628059232332758337748699168008022993914114202194463479922748356948369885562774264411068916101429876497587422257641249949438806521474173731879111581060496926624601657084880203477190744831735661589471284452754735565375083677919642768619344823294140053142159609393307650169979368045847212889616331329143899773553878561129083397868150701804796024015419407618425831162309140983170833960670388989944417975470941220229003854750299530082574205991852289167207992847931142858513028865556447810221390076205535383777892521551414714119631885817080085839519199081748837284055798673253971773659606079116617364274937913124886841519857578141104017451260245737962325648523572949762528623430599827322239371878800289790289697658171303562753945951139000333948624917980873954584562786013719658852976170542807470202363257258122956585410776420343234294537286979198925797542113096943098069543514202331047687067201795512389849525036038143026512701504121813326100604098004932154907510866165317816571014199417909258563211718722498733081628275556338910175290865834052015568512249169735561031980703409973947314149251267488079850325774185797359309677613368801034141850013477309338610831574800555680761262924044563722072454087759162764085315230360457987731921662081540511770462041827154275340742133240069525820589231256832990971356971536608269608385002069674791150562854516154417318020918533321929981553701963026909161045820077113092421226979216232085926246422819071037860276441750671989295916613032173666687402548990318343029848137044820256312738280311531663579074938321466507031398889454575800937358091222954563343266516487876029556017514193768366614828748869827663106607060420213849686297209875436027832716719267960916952556938741889628777514767692623427243027139958585585545226947341069765325579790665582461907113627102622460898790997319440566108465658278934486399638734061769361390631175112755756526445952602342231382356776556434265756690741400556585007950793021441003345894863772169602395270454820285621444833088786263081508912752019603987056314516196809947133851671192198391184702116268314568721966607984882658343950186560437816427451907670495048787504919256533946236604117732223548587842203154774100146205630813484552994996437266946224408718056781974965429239285125590679029451906914235580729927189245298410454332512528167753839435446738313404227097177003057074569253753750374519242126323178480919054837127846498975393103439485204282405100591084136890539181138730868296279365509811347847573575766557195790534047060907017691245290431021103948754425881661457170626192944239107020206707271791934559573485399200092811868197035748581514287619017414962930639892128325080614293353270551743704141550840928919143562259968662344984345616443160156734666383501947222861661694351962518671563681053751273111594311934881697973977030902103022516246766431100264572256789488013469625600162544042428035738004096127105613348325190006106560358908159890239523147907872904891649411560331978297521709948114106726429372121591606896112801434368185407030805806878725743130510867039871291752755494245221558939543429125206997735491171248949066759996312807499691547800900323547047411019421634830862995597252244701899653085108251419722035663287799177620864590863597024902178923613599035939065704558780657179558334435868995999824888568034964452258337206221914134556969017678386181993594767881475713790466473585225909061125202073057537450542048878218048771251661344681653699739798844005670156178878832802881958211420792532299460291813288826606253064329822386289512909265108789606636237728275599601271498933484820267879649163948314419392373533027063235102614530057720727661488867597720952055927246664812653805706071269028948474017237337395471654881030022068796039899562813475139161889302646803238065145165646355810856590334655818391683880511351873759011780862315283883051217742135080035331268371869746890293079108742724864775832005417879115996215125726000326812660899164017554657458017569785404370418646591784987043685046110137100787260577818179728056385078521923753593173022351243191207403608320018907032983703753521406803778557085708488367222882720742117534087227949104669742827151314871339817763282967665979936480567257447305280038940975053120895991048824643851410392479503495407362367470524134481691402839843655752907168279207533468096135698755494461220534118950347258086043592911360571377669242914326421540267890953536738633411807401389944370515107542107638119138626788909429216009322019895464416893283411330232768641025815423820647334647067248064865233451436288779375141703047466864523963892126294251194080175980569665503091790228674268240125893685599274659333878135383428188145936971580194744676765402866380867350924146485531933708897787363648082750363204179415575073353642198162470782291694403273715352664565229388824061283580811806697085822481878814467553244096532513845774613588150727799344103044091861136209183796198923763347202132636384768930437555728813210765634585126456369269936397632699250400927114580586237801380742330373008721279000503939757529713899615248827224264338649961648112094952869065143466937237928188980870672197728767982114325880671140120126595285939993014917722175792504878397250559187024088013401365204866325788283638821682721872603893595276812975998105380946036141564839353070279839354695670493487813805436975771205696656302369006018590483309679746368221873152824116609962715780897712687723360489497334450351267377784166782147540303969820938206769936134739841175459549025408534537833125315104860359069431152416927314230322613055767574789859733087610753665640508841274270923858227683661606732144839799720171367603017167819298425107059221654955704294623115007857165731389880338036953293250527209090317673077408857326634446659630637210617712126286631619316861993004939185497285607335089798841332452851826625325532790089644209970145097213632750332337896578886523250412100394783470652962155641986705241989521659658158047517299035153889848411933648276747200237888369161302618333738442598397753698637375401832592957453264547353741995756074607240038477399698680247217679950202805914504262415006578394155400203452015927911526653003982090503863120615118931651328129560162552792364207780823521154829779390940644001378767267604525359000772695482500907552031513136670676782168109453012585005727318736582805838027318137915371900414026276736523998025394643556664888076797673194263565057183391361012162263692865616632496780478824936459857170255307110924183855524103267033854785039290045160032195421234584310203311756991691981376112368819669662626932316878679619614317017921139064997568172032050846372848365732424707344799356633612586666393645605683315612863820577084621657102414749033749297610882951980885403685758034012728513865034873490782118958219267458064158647210036350092134771863669021065450180652715981587982273134044979395076287328927332421513404595861286602069107550902590789015414805224575591852559555139341238396069381017175975713528978772896244067006298545484633244774480616752482640260049646554426276645308333163933299298598313950942992747017313730614820637658984435217637421474577704481005290938451456261307814909919881228056200053087302072014302518960049257967480021420301430130616644854421956363317673860284786716087146604187175989600703353819053197066882422519945046932204315818308359200891270894548536198570461297431659263982316108247328152903542920054439661227757522091578307727936916907036573204025519986198082411182748260312146919267534747717354776697437154134936273968061213174680880684340251178625814034179222823096700537765230624830276787038961755274139860240533447236625277556342869584164389094467727665334505466622115698998365999706472343184528674598898976733750389209758118512330130046761267512356378042446382475930496502042392857934836678506311369842437775745089312801293218337182432056235109718347785662635251278010482615986131671590750274629857847416722773734793733191813238114686271643799641895255059222779126226951080887850960651951358909813892662993231136938931703527424128606717704211714893116896933862383249401694409987163496187855992768976501280354988988229583124479469975340851995791631327075849454021974886392885903053422765434870445245781018303790020532874530591967132999636453409902356653464890721349334961954653503662377140122808954766708580692447985373755691361373243773590790805621886548215068597760889472980987834828648859833539600447397341929903923949463707959857646880581421253544586962346804741792330117672124090815747459650118084420283671783996733002475325788995189970386285484200788901637181836036542908863021720109131282704693619502011069329124675634777671651707883679618694230383593935765319896561717111524669534467515793183961905889103549126854980535429451479629664582609049927521171212242470543409497772969514840397971089662108103388536690604975232858710146901494252847846572378709722413562788739756324012562609245534366758716322401981252656496500105830014747394161299506847474415406584921237252021305199665859265479103685889383886261212196196394544644742790728387366715798716487388760606924535178511493004085413234563116559435128805974676044059886513640612089521024130828969212126974144490620244227127602837716354196453971513811179903038108623474470585500013801305238705228276876940532057871434695278857542284171216808733068932032840103977136761368012572678254458575994895068602122928227468493296477884263439527865559049983796269819795510399998949058362642649643782757051452924638481376150351758266281980106404613373659783115012598057494816567207087340827346060837361431619903119239776332188898011178852048733191341027316455765419415342517097551144616833564234285322274843939948621112512106373124072063059097601683032923698450287794165816079385353383622259040846816660905021796031533911631202977091061279417489369087345410295024060304051492383325588847657650906135650538827038869359432011196437587060322293583129710769239690827271097884023256532768503173575733229479890015020589868977262782792099110423261700458212673047397217902250445278850944913340899056943151565864551716290412988791412944651357151206611333757285133434567463100973653245453367990213863560184574342018482860762642879008614296136629330934569224123044753838858624543459527038356827749790264929477900306389305955658507888088995323786134926954440207953411520469327479610880693835628852469168593351389061943046042708616918944273929782514173039498162178291011537153058238322584080525335753163702226527744860792536496243782792997433258768692057131688729829580170835533895206308649218768223795563056208875215397107619052410402411881288482652799570397191640141725983351929349560308691309519912629832260575139963927917344344934389411939061100785047570058312857178004996238179710181581117489644557332150048478318290476506419799767079833697739914896056613745920622202994782095631295985755312766830016608097351780995903401580081481488539225034817566749205227371055304433486421839544011981811039267436025473181713111591868942816721029409783845101642672979157339577151474863154045539453257370291056912714656868620841736675071850651294354770992759772553249877800300714628837940096422373270985833858409533577248143110140224323577166663875317158759636719358917572742079165190702058479409979547597032902407771963359195057025880505839731935185031526873198668627605813096387134404448126928123974733315255318531647916006281754742222952648436751411893564501271114922309802095641378158224468561066258469975057263463627088595712739431436190641038926408537705052231830573559483128166591934858348372427273835509339185509459586369560848127167476484536192503255271155973073917299065817370899001821935511364637167144943468563906545307420836552835304263170930226343970482662926019468515336332691592577053240729942337464979697811397149777720434556558974094087260296848839237942590190532176960420384655616985073119413063550572919800928058519372024878142559233163505165175481568552747896449177835443390283715175388346172835720190622589340631998298527693938512673144278740776408475716290316037681497931874461510175394020068701215566860807487767216812475036623425632494254054123053902011637695778626693516908832858243650877129358893410637652096411605053990760584021268453518507887354829625516443175677747308536277066998871074279642136747272477132968579932759312396851799020530119179363657002789938930481597881895449336574329972087534265738164996109306613506849082562922534782629794389617920810977227265643979389156867606174040499964594081391718585721550527119347746893883922832466239364988044804587866014981105351188819093480443518537422700842194498378575393737171505147712647806095461826569919482791278530872696879339252004769638081406851446643031259115412022763443075359769393438361642102777187852119917411867568603689604260038347122224416812146335299291738603010334879911352188423760163116102025999733444159893871741557828482652632503593268109967081025851024076092830032729881093749610173699751300910586862506739227387269211730738485253407100060562740365954350066636774395911943503661083494089693551808471163841448181964888361723939751045051738013021689301453078759906309930563686263508842870836573825428454642001557414423195920502866493685491333471571728630402111789065241974195682627175293079622833853519239999974380600402184045628938572075892044332164930093523241591933050621667975781338243657009957807019908671386777205026465379606553785375362516632839342424594432933459461011106897685926100842904556062528058188293863044923198716011595430567216756702031657163228655821632080976198164846672201022239474744626998585568460695198921482900129883280670502899514436741510585847928586235873012453244810894628320751472689877398466974262136988405236633842643164930260799204216351166279788256154779755734149871996460498948525019292131012281085914268159578728105264953949319066818638802173841829602248939269022329363520858189941704529328747567690208522041546650154654797049391045549929130101682603859868975599181723929470045866699967531300399163993772958307940665435038135164335570506273691790822320566676766218962167790408386790151077123625317958530828017680436491353670508366456111864060826739174586115997020487668960270470877471670857606895696651411964878782387577131571021173395240641852854068013277497509336705691600462975309370998803130269951373578983944925904375792912701069267416717310863104648995936882355427886930709038693324025496995025091207290520422183288150044004392251412403099504929450678134762995685345794256112982662316391931515056172531508056648488052677103296545335774168693079850396383456177900773512401471544096975252760132478122927502043252361047394352801359130757430575364156404383508096453496812200448965189284600627731404550879385691669349868435811290876046548931068066109746709119811148296725727770647587051098173113878724809436342599424737397944211035927585673633360633388712345758092929957482310487274587948860186272507868676331170945289406522707729252754871190125132426210553964488605020114849290182220990879033424942239352477563990061414936019604606537176486939049339578031933532064789116709223702992705958824485718521303210025839383935391823889871368874600495128355784231116103913686263789494822342941178242672278325476700608156978264193347041079147606721534112389626487003808085905598125021470822044354090975031667843964355570952505891313198258922762772072892816186229223616932339880989082777846210315044516997855004387844096242186313621078125281843157399892342854785692233492327090217023437033845744175848841860999357703212493973792179276872932560697586738505277967508125916625939661731167007476023152436211370664451521443493508096041696487848039150216938605281818164017016234730307775229602273937514871398611572303643233667719113236401398784806985209345796160541751078905758413228915429540795489852516715476770183343313982844605394246061905805081299388634425983574112526991609068588495989148984977840682419549701891281714842400805709597278670297179539551321065756392773943580296733063769936325007708170459971789247520800945796584852894162099454833258320702064924483275939202884622135307700677008360712060602572933491732908369611389046216585671409083896117590336556406570361124547198631839633211129748700509307668731161974914922518413512849423933193219984599609447132053339374283681446304248265006839678333406290491133121392174307567062672975523394729129130737795070550370247200653280260294633269076952448098334240929560273286328565629197856343412728606315339314019245410990364503468677494929116346136268404152470804219489914138315318301643125690864816860774841960401237632394711935333214800507626412596743318818380988219501262480616872589522360707935182298432902573671834134096601205345115639614386453611615634675975239810368780364440221526200683893341339291573976563070935196309021475170196323952539229966311553939256205569343135996320581257955032904652633319169681936892461022795252770024654589030265577693306596283297312283805397694208880956996447410582335021268572655248593750922947345222824082252395857943899478014964279064923539315839795871811057377610755834495936064271203773175154879647953699549224337890725996752314071422462028711885063006415624890862750713681312842229152622224941991081227373884230281524139357923208984772230256792548102886749400295039232061890231567055544217643920697627394441056842785214551241884503243125323913149519949234838639055056274549089386739809288883805285138932492941096166837340821204100940126572394785607953785527524270455909437965423492848518041842007746354664934008647199780774510601735388027102027070327240757026071463753648163866166438502215156931413715935714585056056438445831471796539543029382840886351372467450165444322530260078422661527486498607822537675814598939862854674420032022033590027913323582088865719550762147591827338965593820003359524230651351287337454223748320537258620607803014567357807607668576711499044216970009257480789062179131559047783137548803740547204184457305686305546599529137286992157536352579190106302891124798462491105127220798588351551039704033882347582448424038585253211650449636645685480387273161147292654162289583197137884631145085047364734380836514304308158151554569960590774101187280420267260565894057598232557660313051804719893198890296917371777141396290825292176596076468861231657419043147896460210694531463280037303263785213191679140394336033634129760442484991110939476918473717441434731259284140721466602745328747842651998821631033402123381269952905475684117293991418959675119172996311733797582481933692709246804787748879414331654421871034681078465489461651849034353864006265555449868899143647892784876546011555259776628531964853296917237350123592487620093560072076460669266518908623424503741132664148820401773702630810872309667705852449545743353383731413231659518882705433950506654838369954770117957558057458935490787596513980620923797679360519498146356416157566521276669109574481173541790017140558409889425796023887607063678881881986692814680991927650252269112925623627030924515195400083627614729029553351617234248500049273407242708617454441255251814253708515238537364452580873853953577000151251240568606627991105681080764027018005474642050515012352782271868440663469275775159163820025556597091066500289861840506606734348978265980460532350026463757485355504440940598642811239045433220523750118684439241564093626439616122639679232226506188841926376926786334559831507370058057298055133899566253359150870192553048210414585205712760279404630077596677992820728057584225343878300699643225385527302153634067357862859225139697945011911211505434010413196693760098736375562400210876463779985302258551406329466453670335766062888605448513479692347293305681524112563560491326856539006976871190680027124929669955981644923260967590365830645973115676028252929839603943065361442316424975001475648227911726197465635564086774433097752713963990175259650234230915476438463493667539901270395202338247075784482772142096885523140547632488688326557275233651730402244155664466133636368545866257926497879271257522090237625889321556088217817071035344534236400619479500935510402348627671065187292564358305753626366190679045831439439846106411788284549861341312530349720590152323433280181800327914604276962668193980502953119213160549164454323188734218837718748887422218299124335208939535517831007647134310666033903217514919750249124276490920880432565114424137721608778256133934812556072821673421073753113385300002315397559378478383904150526218253151801023273031078062867325537497458026490447836110717735188960720113751162066217888285927330368577294714849029884659405365159592197165368659589202578534778517842829905046183441842467320625041592425312536602126095088867780825343498615224425935511023093080534894550085384678467010212072180569871361843054905934982537094123691117278154760634329706387856434747716391360046510532935818693379585892973204305873972595126822683413654004054306966766242457661431516714513054807003786969891345302761666533440561030689753516404776595264886092566934420169227507706627010218709749029473962723223867131646239094468817970726363059813918064307342367909090811843099260208751687368290821063758430440656050651582347391963979014309043578288492664865749721917406889217800585338307990830613811332302440803675935152437558732027464806587650692760445026849677650149872550119373751828191057398396353217427966386839767217173802347902423957184313672430721500040067250988712368680278748053606892863552437871635505118759194465496390372532589750674193315141440585106441545151463615041693910340695979141834348773183325546790656875011559774230283382510881748635596028648281288530614408262729922172173980875092745512542412808503036298460355211728160718526719969246059401679874614942841521535065417279935816190849469269616951842078774138677744084344169682950305045350853632561022199729798827258482778498039725128065221545791480255350522573189434992432620645799669463065059639427166149641354546676330503802631908360361523601419948555394638643484473962109225393108593900093376580074456964108715616974683131878100828207978547010538503995775951055468206895931482577979825419298025935257951470738731353254679059276852546989132105120731189518026833275826473923724090347041174955602240103679115832308127417532937168889716355643609760150717450782069213016065376209331329294080927168858069569373502121783977810178204668117380902122946495303516172672607938343104998944329730236587774215356864425688529623544802230809518956032410391368083808811095673159438830875309916144213011483325047361432622466210046291217913587243898126834759287740451764512484255619420661092111560928092679170310343226965022122183273224576422859827297602004106267851715514325319648306869792572488559290633970057737292055634679796335355917182103696800550603517516092456513924987995678566281753340485408048072294122879973618910127889775659345268447503475285134420319737235157238000355699007498390093484163673343664989211918217257857489631835540696978634846011857189933901309708991094000421139761907648397964206432650897768151134657930915464408371975407108473022185818466978026032626646081083327641932645229633674332261324942739236945516017313601591206760140693269955062413550729964500901294876739598154125345120576542187706437059904171368629434976755868060044971059607142754466335304244535435243210778668484960023132014879019559339311120102242137615133539285803145772766657184356463275607509776970520488040159038305608015853872025343140150823903999213623110700667166427297845544686406284594552465297332933452942511933330755760097402846834278889935345693778270161233032544516147169125337519884030707232214702944091165524092124969771225031642971685493571886523774017715160429915283859719660858191657896034337485676266905153538936690367178471896976255264404359482765208032566338802385049021478434636164699929030374529108117478188415260884289496620620371752198509231154120717294384283855047765634725577377097053789684939645276747296733656698406482204654451788561797489895621842097625896758317079937426653735358025968384234537565244203432154968051977319857322850290699869805068054467537918379391923017481982748838700319591389629854761327340484340058264996426868217508089810652460930166014285848729792471265819739892555237946777812930849829928709399499021513292285536654365662890998679539610224662061462705589351360779940126144761595721653301234915842007941680518081302811078804700566159057316025652065078390480554624287838090461191235199073699066817616023641572376243144559138192886619366711299379869799477622687122543941779553446289680866641400597495983369836816648047945876196107720661482878923084412499364502900703783473991617605797854216900780566493931734950251381909837125017013599384463784651622488313563540706377969887976105300726660177142900782840722968481345166924574823082894513325416453840072773124572008568794982067659585112380376121900953695475897785994851089537008885810660688874959515996420037895275123997354541049710603820344286719737780892369222641174318365435605875979541218518139837189682244848043557384230436266729299143433901197437083232971797976605662708581179091685971068012246429185111905433486094098810598362159178782229152171347842425180905894641840568970965249278658168701032977068716602340769170251645000419745119736042379346201708004788781307653569631625475497711149334173115346634173650823894945557509011393760074984633837381364513763688893903958508088352273824010869981448936241382419113876248911745956140353716082689562099119179810967578352749672452246904666044087407271481253695174761093037471851760484350572092849356771457872181486347030523739568481191460134724424256965320021008438886135726735946409783177148611722012275121772119880336087194732824498820064837197340650497701057530998030259913565141719900668174873539230525003891074617226994363917838012139607048493747144143240380510820386258705919298749936909772522471215067146251855130507181685103066484745984872905565067619798653094395460050468348775919086166863139170373202746841724596674726029317554357765093262484171373180190830122583550966341059992778828127171503249389616290495921028034221021300170395629371327195748493964945754544661006509492191841312567228164901365374147891599424410342007305699611091175142087107904380050506673858223104207044457606428079155021372029612188862173684185039407220132371216642739070875516712080764034518940208522973796947002560762273721634746782855242007623369517930588119778029495484722325783759109323123843722475608332455796528739977574890646372584705722181751784812259365897562597566851203289545454737603108775562276713385392109222871572625118546198420252384172021734289018354746368330484033452741546119911834552344176610857957809451896398533474476878958493047278640456802376399506097339312441458844505130216108972006137168468562381521498111748766620703851704653809524545012385006532033041506813977354952695955837277917862496050921271847624611750781459570866107779941723404844191202510881307668818810628586310431534850692752336582707411838156519598765672487836770445216206922547802275588940873980851193912581458992709881568508807709483046511649747448461906542797790133905981430352102851250671004779456081550744745060141424470355710892042202914792016255804419127157814853725005848477561036948099987769813458787400866821826459245355011151157951241677089508001046967946302552410637109298174105715236521721508167362768835481193339001899273727351922961476961391531023052532415857825039039138221653861831920457394293113517741358835183766562635497969799500663534152923841717895663885916148765696154792583395746367007448918557428438981361623196879717521535709340922111223375707705318636213335107834059425094543751299081822947062382622959333406788070220870491596233141823518947958238977609437460635595110603953243477849275730367052273899794385841163091884656114530925039805175604723785217219710056621673595492575183254929385096237755047648508254592356109694556603518864815276529806884340842796589228948618554573023771211575482477893282438933249180622981698640757055660561372925062920655509083687293829994024603372871361605548521034400382686157273190378344864680748383588640269670601209228291960014051090336302725243892990072220257853586134891027532559172487732080944586920180863894077719285860543389781511764860269455295635125616859015426502200806537680338774656942218528079943742613266880347375871153594465225592516644057825490297701901083914263711252262699910138629046540091367346052117160291262126031805560628149174740465065577542334030952710624771347044431149863287052079278068388203467624659779473801458235908344142663235361468492135910355636156091099426864390486010333743660860061712420809472257346348649319936943482224953956381432497774624076534207504210096568717317701521353538017834551162150317570460155127360718495678957617765106067275595498557704335840945725135901122785088425478397918691563101900116861855558736381702709437524250664053405487455084911557268246577929896325638856133982295031309623154342526919655525871377669475097584659460565093853643683273766370162810905326935108998772587554896331525334070119745234794383861314575393565571395226418926962640099236484512049046453377825893266034168869385460276470682498064925095934842795931743475110027117807778961778340077569791488023965230765035677899430668485687769014164532972680048690427742963452767854902596293720387126753257232597268857739518267454488643657938049627974652589460581868449858629611249535716025370530004478386054528459569499201656426272898640308734605024065116947252515029864364380256398017715224514549292925718206857235227197186900716177504645993367370484981701890356530252877414853567314174399135551022588578711400326221363909283994811762415980727400367057554578818467212004819839967977759129599552257544220161081071187901604351216906475699300844797949284573592737985129835972495409397518567054632657443136200217793991048447217115842202616246579182502275561044555368090516585323229216437330079242550303303017396120827444382575063436177752529325097974674494782232237003976227750483193420602187300907769063899314404457136520135702157489825556925153271111826094707673357939947146551394972010174976968981871643941988606652668284758055162257767834749412412067643224083146512365716486156262157651955044648732548347623902835619386051914076286827021194914165912136474181997289509679945608052578123546489756472766517868169289534068126157636746109596765034338819130091119009381068972127859147973633492794265781316605053707397859695732169678532653529150523911307142734818117789389714551552933687003408897112077118387211778377652898046425429196486798497488119235143653085257725374044706590976601706809736676015882395506612227220521326345127674951692267036064345731204403373967473945335611158783383844967664083349717709440826768577167030929593137619119836430768666655872759662976777404097264627860197315869100850767423515353345929387660697369084005453805578212530429314964168122626350666475251008339761803095760284321037887853873360298059476388747769644911849695537820593121410717951982428900959203779952532304858220817366013408435487419860557452347861662876617137221552472180968560438149497113741806963355311175174515239530044183671273847693158589077965961449387098871326610762448031023501924862097533537191803507910815333647220533913701084808309237669091322707822375190506873901211958558100326689213295215246916297002984379821896750759554300792840327269173438430110471255773941930511877505171357352513587637100922870916387143672797247145073934229284324010447436945666774205259895897788191361892085249837341410575319453963473648698762091756609245066387248009476947970550259764900673459033811609587744285790326711553133688642896737781833259155455838469317016486860457994331258036351482943265687200904594671841702344124513286538493897408169950600247161544609027875290903928165156106188705821585279737865963451543215737457567149701847516624031954765779034519950784420650364023532166646905096876687982370582301959147097880499948660709309956393413717167343753058206347061362702854343235474776287899116684202147412416902687969606361977650853413351274111768516999734800737364010494781114817530081227839124291360159155534102315181170193763105899924829433863095981159520350753310244078066585451442965882628370482677679440485640277112287095831705849072785329762985888544018975587349496021666181250018446651238038147388727886868618117809770796517724449149441202194378226235013156193546766200498826787920232460526695642571579451061124401765132328010683145688012593847537949741420531475575061469775638919166417899298860053501999751973186918112512516845401131355589599426561597084580636269602240480531960382764294149409642870443372216667933083056099649263753030243467669810166081456784776553452308410712209773114141649682676884200826071641094739510921238391424526936300055505182270054963456286405666599027672048736912932410838349635825262974149186165608711143764138187500659169397997141192421118466171644582529408562225894391372659767272224049781867884425801335381475858332055692763207982322586958392320937989526318388873732443051419255341421209555856581593118698816474722757171186618595575572398230773800129421472187589992028140597320389356019895886311094201963778762237069641719085026417414593390847485802755513432779090708333839483229465916180013390445555579757335563180736811643324012160293892144393360490452889065870170366181981197290472599000657096298128139650734916059451834347642022397479995691966123751116669590964133694634014657637752472430645846801692827218065872997976895142035052356628669192640489370362230844966507952884906156846677197090637218690498863362633890586714848740692059219915684311851387941980515661466390429218425253325948802582888484592183413398851099658036417869448393017332523483344900367055228915990603816955669989760552475960114411517557231113156638082756728857041239267199161080640890360172756469689751360619916364942978433544869991553905153353123641140012358347445668146631011080433494120712710416179625338827039969723008712267260669569629748586644543043411775616894747388219493155900730111181472350790264758305670386201396750065416809669588682401406796229123217422004144124366480969488253431070724476450595657280528174667193046608430553882315935628559988143509528146681696676083470413171913537016478764829607078245215578905189372680970954799463750493619956141204103952307172806202075130484603556186063340228629373907303871699846343647426488520787590156697179913479354292856163863215495811971175017153446882238296064216816916174912489835806472680663989441091861463125285316456806909528812108091197220648090500101580063749923413268906624506864235826234433924512365942403136839492261264948344904097675400428074436345211950015704662871641709872568499205289720101200406341306931326645888625032644091213645351131939430014713466760867932768055557346633821315695932702231035467051175577850687407102327009655556725350607384796064770458362418177136098732338034980048972581048699742964908611190013537732775409097892780995763688634331654358718977422461183826801802134230259532148536297582148248662585768012182753595611124828543955196441963903343752875020015949510041585109561400544428170547694391054807022651521798823502533790230345920149230018570181954527940656948389479676738238983401776329237503774404287648506493459096737936945832566834119646802069589802619848571823021752944518567225078132522996742277571849637176590337143484701333232378286948000537576606587647279109323723401721036963839213673910746714430961134765326230874011125395068099221093852772687117398200412107393532034977166748701824844936741117415617323773306511727246291213390449570571496192305415574130102013528399567261817749080430377988223546754854497901916675942142019464256894875230827764830090417385063400541505465652176454678053331039077753686974290232590213970499333373324891921800620926578513534287566206312092783960720001596038682755790346316528064973842962292908818377798971772376950219294206731909324227259069416556573723637732503402918221509708602851631000434549556919121830690005207857255023355901017107342221336336222548309477930522665797025706482971428490655335997590659440448248511058495052214278239085703688645190438404400907315228940812582917200350142496496532574803634498611986831648155316043905652500428173740491137682120384846780249824223751777804012129398672680114608490272725951061023366940867175821572071698997386447717203857724576842223651847517435026311966988021012053917832165475559116794476704145313242780881675216907341628872589064642290220874687078912450730211537773107014459903336818018064758273237578957114599987918814955407946937462429622798311194670070348230806598967805789629217349754205146242634046698782533672240979100913771636690387323277918918446927746189707722978384139348870853663373378227586262301096632000085404792330319120354793253470473376332981629394418965323136443263798956622778717872542469318796034945820611517943571416726253660375921122819620396027414915656462538285109088087271568684550309717688628596969138489714555990237299927986947110799101619802554399037899806449712020910310962373351833548279786768388455915185648750362444198523838787361323675773887353232970223280170053418545954895792297330503807267630494669142404949687519957880549537043245961448774420379079551295890401531031228716617483662889570483292726673215482465459343341965020598285803127868388453301783922084689095553114059459006548180456358933759526901294220862212132818516263676058323841986707218824611340254426754409701037534213068011102928167750821368117456503714726276059211498837075920101895205891107863641181449936393715573148487316769954600395979825003291732557457357574267813613706826804894155701004303420974940706873921938675866039112706600435424224378636454931790949270488244608838972148885460253995982121079290333947062751132567671462908244523245756869030811789819822132528778685982350805073655679358573500855907864908719767532568184129272701752585120268319206882707527012194161630330821782274165897332103546226974022641546924211727178320511489195553493257852767960284605571631873733919891022956877843327811286316469966246880364077373553013617438406423628208645150824494820430450909007204525294513073863174264299080433276930036212732244144569672513583817875626417638794638349553127699620928807734551446437222216165268327692832397699158359958692566605965981860005732373514043241684794108428308341310565450779475851614909928798058679189455258845008698336546572038484309546057550508905795298318829145361237081581375003130632125658099980746086090268986174381127364190585222088330025341348278930486000685082389191709580530731097703759830521319631530185265967441216836143025190746702162417623865883919124612460387780704637567191749473433958798489684277383422940058697463132843276205711713972810921907606208084572808259159475975481023099446451614217171876753936873915997969998715383813740671130404742002242811919104305092125943890493196992157846448928279755951741454392559813770028299714099389434558862781050027562142102780696245275441848125419654329389857343690790604488540029833108811393452535044915431259462057119364452026938982989011808959052439595488433160822224030884093249163212065062974600884637456148931169592705554254280401565548060540788917816429613602793211854848887676229501415754408913999725292174790054552647359907364274780520080266759317644722447925282800293058610152126274874133707570854396285765107583829727563354534082228011815955021874382223152763304028893359144018015242537092423269125638749408933354313046601500919205371329732016084208227068198450392261559320505016632982467411896794868074704481888533874646458172619399493110140702173133365306880578743161556728450230883900652331753557891009384429391219743551054751405734563690744640108155903591418835101282922137197299910729778781331911326802938565330567053058130653352433679542112613819805120264169799630083954856534453871179726283639212861311353045354692735957348280837263809528132939845477434572567601131684479237894882715669198512022389342002341713833536213806550517543573145502771261367492401253163703747921095812630689448823801894411883388060662080188606862620743169718745606247468778158226550618990340637323377933393818383482651082697352364047539980320853043283556184716168726913666506501795487811093921865509898614065394157005093486642315221471214624521123904844974308035782341949183494611289787815881521643299236721563538421461188188334402092596760427272618974105281382660228255855336259514628984691728540152566093229553574615855396854193515848765720840892157027074567021582938868812924855542171007944259120175676227485158609736420090072666555264426580466980450712936007898538726098036340101224808285467572377579024621948918468159809500215367270656748208469018825805552786233359626006095673685842470075164949459464854202911117940717207372498265080752792787659343175162894435483417174313541530687348936282913181366285997655568512222239253808658930612498150314050466725351348433499636832656647273262871672284289323777429344466555375099375021253193761052006715590457823193413160846726066646795554888454613960689387522844392465439521065994443513326432491481732308882754736920822668317364802568607615961780958860135394269068062056153953933472442025868658272158625714312245708141279700891335790539480418233716214205385970509543689046825832040022089610459166722417927894576577894991954723543868409372951623245122004227501747547758790417261804530576724375015256245749320631007193881801941370115344743137018253658771594445801508611035298279104830407173213073722171452020793667489929761517113464744416282716665670968524064926162523859630138598509766453645255159590281477151786445617768239738298436716722581157519370940171883961929008976961823538481920904953307592984742822389567629579396261527196951456919567917155467343054171735365257907895874733597226023643374155271678971246456183472821658608345871673871576278068767185821822389381247232450224537762157468563825607217622232037426995228568949886869405660712716750423252537545955077893463334918410622682841871188128370051444867340831366395318039239929022994382675921100548153910314334546690400082936444397492142892212077653276137109988085314194227499020907004852681535838001913181424052491135883837243649885650776844041964102808187057077234826314010781885502090252944363557919756683960237453485898792100685757192673282714901634715987860488835463887129128268860620520130732602423796457925201319053183144489494090946891515427352515109507653666732798428269070433572083660130891947547888969245981308730353362455898735403902205305072917478137604255839921723865576858177540339812218369272923468121329461301725172844642929254236893698604370311346114359069457445045353811559232908986472679113091460390933764896099843858096978808349237401678488473582799531327577134202845503982204156414361616162191491499568332772682987851486815804868836050928733595767228530564244429603650040110488743850866393150128928487035284741350672173316342360065631261491088885569658468207337207970415351350659675428677432332677539570799486406150719120214806229253039321784681557768186989412174320200631122275964734632916113512676925425579921161075574572368007543721113624597035594346910112690747707606657589630512760817127240915993023715990609028475966994584691251873994342086526472234796152090958466843960435881450228936804823461148015976420729191262549397875425320556208181340576205670063233819074286765636678566491333950793579270021282355454989980622050059695803007477839832259521930479622284268476941767310902502177470219297466239105898331849711846832488034998146496187763426776702439268466312482443824451181191120061225360240889449443490701284225841187738856548267104295375609500509395493302851523185722175247441370268835518654676735169727380627074954715579768244845780280078253026470407685959251225492489120438247299048187083520543120915273569569568321174977957406229501470426457461512301155805231282778874256224153158047147675655379210757050308364554651608839152936538331507493967365694344353277518802279322359044910658680079593104088577100342255579638347773130361893448640181308850472066212872524564375369402011907026818166249155212076822439180712127669082861646449161630645306019270852681018470804357504409140412062074698001547815228391666046957015228443116605147042189038381865965000500095997374834726817741067886948889695301646705725926121818753372349444873254259054151733059851156660153811842538433769147717268728317188577254430957082813192680324720637552278313084626864918344356383845090916567749166285614114757598152615393239450618429463986310625711613082321646359399768012146923282069287052069181657132714900492250030736987577427891322817641687044233896526826319583695407023666151697495278197343601646640830125222841521391913222889117374071328137212522592164932729336695456533156389969548217824681193382936393829919640623783459462233856752320854314227459559519676067507058199676298134551035941326982971295100955412693749248006798628455020878803570234476199660725487166887537334876718582817407056629359015714496788842663920350859360004336826851655378462606455792639277896554233626174445479050033125681823852588118350873337719668135633184028587068529184386102861239710757764787377626568898780974846007322381541007477213361217870647973893454756601291840385902586392059724627740704077694087002382061632833443415906292800999946509768971825084230929912250397404296453240204455227221700077692307629063022793456405201476380924138754177240566744402168867615469477666653632247859524923030188060007070925438830645434466933503086573634332063861140471107708989700471643652284985154816746719173490465672393778547333075444596917822166088771346417087205308587413953467694100564435888382638708014959905770619945260728065909888459614828737113973394427605959905169944173278629233656618575049079662975306422321351980717259951300902745808193526094265515876946069145602934314595985144129021787581212150214548284195434804324780953858852108423876698237157743941782523629156201927147422584633089558895740440784152926711201334554062416807594354970537623038893817185212912001470259917223477330716538141956726175636130682912159951052439112291790637052483062481297106323322926184725305862593382531533267871565162341564337298407641647964852595871867602147174817609636801769751342804300189712087141533576981364633593941574321806399353391932598806474677267453298841665528633538023438221973277424310155816774243808773844173010403497399645349387552358251834479044305769486959581956856179312612926560826584461257272518928932638740655278219456420925414282648916946701729903380740077523002562611229688518645925777062863007950091375775679224452579466427199717090516542583107166204639959828608723720782157468694992863918200802192475137970355257064298962247264472410047655575229113419942090849261197735542218540439663217506808241160666960997914599134784362984905655888429377817401037423356614666243121703310255087136378024115093621769954123186339502829702229699891469738543275558489572606367974700507574617133345160944554735334942072701284719128776508905241687035211387738542532708945932902549353065377983236878634588612169040712480133469607358209305078311370500973910824565486462858501356953214778603099149264818915712704613780281589099788556273131062548338865344032371419386555698687147827443314696241296242134475480072798943991343140705626514193837039962536461790954410660606731409630039509688380521085313220661927772200772829797170001941089606720131351489388431462288650818542150742953516509940795646417824264661532617986723736109205295866245830186825838661553740528189157416965973551136654750954265809196978192105746902629963464334762906674900484118535609371781618720073016750550192091159512222639896492774321399536327202676379115106096407501592714992349683342131430855468741524840905515883183004561557209485427773942198284416748567588754664202795435269880444864028521510834045441099554253469905046499504570396588789401429236801397718819158520415656956029462225543997803071344061792395307074119494901695556975213331024773493211241623770756135334921454055876179337217354304306662633339209557326207108258275084810448514692469708684204500664326024878581363470999014027532829987086864130817338330406129502685236135907668434164517890063665927504723470025800945181486292647093852794298774265338534094114369592888319195335965889766469473353830657808364069289944611307235400697307979018444931774192957118472570784466869329750327582743511762922041228039161931522854776639974509639495295335820988432744995960296727641449807124606198796468631921430814969368210139081230286840657534505671973401816702359212662222055846892635760895519538939257172588585094308242375754588121233549947844853649102228627652053216393417113034685788486711742751774878070580967036428771457095236005901384765584004465576530626936782874098265228285605416732397130010725991850611721635232243411034314926926463752544219447165258166126128308790736821469086327663846033957657256626694515367362962677560029072753930944095784307613153639163153737131230182804133750975795917070754330815307237134645505929868236311861159688213050632716802630885353574561762947944547166910250740736851161570270541752714076079676685567960163103492519278633623225944359723188612110722113810159240838446151814605442930618850804545836772137188769300410966935681241838763523480953231163865919077483701830579784291551595663799694647631615699910092679340813769148671462996370856431915412317178294519681297711558718985597058947216611448388240343230659018370742767369476692985396933705407261719755464101287209354810352517034573521807556694537222566692357234860102110965459225406180648256447029509605864341019631122928496614613652658323030490962157427965482689846766973304238192314419229569546257740366337038190809821626778297269689279019261837968606049681688718209768778232431090210254220930893828363258700196884007238745953484348280161280961325894505881120756314179017517565526437192963079589809568668397901552143792713125745138867952346327393850568331145473098503554224191865582955525962117843558833284184739230143953335032104104957011885589536308617899538643047018221179699920046817382724669420583689094515977107400962834411951684385297257540378159230588480580807499398406107297676032623510562587508682855406064938539059159769363772030924117859336385842227727668873786081973276760805976667031563918320681313871162494138304482421400256372642197505039389781866864355940934035274965449685752472961785392995281295262835081140827424426601966232834142973339616732194475188787800327629347715722717981101587010764166211212230163996777534539212892545778150421080644156773296242185323362914040020267870983736284730715740227907030889538772592753610774790986829705756662500690766135311763019235618269676503566885067881552451133851699468094145905679856526367064700238194656875693532549258156837896116177028044180700282840549228435831957846561701877052511251922090663007581134311976125586863382755046609688147611956765633855567407786154308047076370565690028898475314230860587462064719983086371817879169696174634430754455968461107200813754304592452980779090750910295715279357126095750871862649510516588611809130100217143932583616536591458735435983019131634489995467963761966125834921143610869564418863740169687090397381508905173529749192134710851064858084984989881042867237189841716563075993577486215959070795910239003199293870587379430647107892804032598414066034400556171278231894244523462372524882802527931400411237024127040813680728018810426536675507689329126205553657510581198791129497354441559576227337699287869930304196332791687767489838648160721950519658549116577498556809901491104377436010127770377799405901847785580015439375743096528388945662368133184991226127966039441098982066149506201995216840445977196266791783672822007242782462675462590754279632560703344404401977730247510907321255421676208060102737928850566775008115268248002243105389041164641274813917739962743694806047414695226704249360806234259272008877180826798842717089897016040331977517153823461864313014478777632578202137653986974059370283381276780745095921981542094461504914180972775829882633225845366216124966145994236821044280904269648679931626602390505251291980918751435739199701318911925928160338539517252235545578903711407626964963966467956531161989749057419001243317405269481330941768039933546404507266959140570284298237681419838631813195775460950068654744618708396395745362288835610185701172924744712171363675565900743587593527238893529159194216583647324673943222095008484641168294202987874997994413957102823386336394125827612773661228692967703727933067276590458515490239711411048932605999144748775189357716364993906405381847805841487043653380223256825789085836633202705053582243695488666680394257005980387878452829654614363974213691618504974055519423408259171742437356215357031984563805604232133432863780049346590187969448878764620873010884063025685678172737293090523835373742389066622649912159353292933075790143552911387590537851787215004423700556679136820404347490502304507458111553160970754951103839573055329257783989864980948710357314373215967515005374041864394895293948128959779889355615351075200368154633891472455131545448159719231580525447925512075788400475855068097822070033939082721370709583784467900908261538028018126548492109002162269182679244392039587847704704766593811139345061627893887333537465026025539027914364079274285011897492569284657597948680665272680194579915427977705116492265738401921143589121175516312794176249932434895329185154261468215436789655390081773491125853129939657000647350658060780639847236972073720279748136937174388969192058462229387360985916469702603331487369214135880408074276953220365279293880955113451568620727736198270122887846449172612398992741146187324645008182292772630793169357253001702482349619860826816978007647161193147652885652012837723932297693727337399862161200755559646422164422811334697544517056609558702745857380784870290611966206038519965114867008713639486261326342675599396800349262294700061846167081708650911659891236455813886020764932941302861955455958500769255552061832721273540013676595825029922368997476243546237841037621818459254905430689195417853543744724995069659162215280869897362321506837182274092287136324181818706500319667784588681919214521878198739654511900412552144372414309086813900911097647881469505400781408220301981308958365470429942503960906008109841921137019228786612997038581831198050071024868757432782704643790936200783564812167876826806635143485977564024845211724716978696954592271271986281911246498142299128613996878868115267094724702895521636211456874571764646524883126469987024241641747044346858510632896305158931755670965867394178214925279247353227345900984544851466827160162101682780203361953531300576617820489792748425669325773836066989050667419360301942501864041122331102270269242071101921125873627248314921620260126611248688048878279785640487886610127366786219507917509597779354214908942801120474969065476349570239329479794802043863488965470152401152695132066453947437449948400353386287818703589243624826294253311869861866792605975024157303108436759999301063855110810254819200831068447981494093684573287336915260805220487013468861444441737325460144399940964971059303941444719455180719868081644099759105022305544287497230993497099062616322830214761582956340238401197843045339809021612812364187936214850964094799711087305808568426382871068756751146935796251290458894307636718524866150670049131338768846298700484884224547365168828794165514158290464365224062009773318647526841457994094547214445046875564224608922039563784878080423357458783328395762028641102063744123385845063534073755085669646137634645881608882326996489267205302352464643982940724315025435406384817857041298271126773316894719609362565658501851416127657996542722316422451258707179637505995090143878697765302217411938603197321766545334941760581507624887087295207569661750564045180808953433217222781389209769900175711400904504949476775964946497338321095970500641731504576857297568470248983760947761296014309893234497278234939700800050042276179347784215669144818940319746741194840624498305803644687720345554770717552858844173106093662539238006628664724784059515069761988912632813500739702458389314210150647472268361684873117646345909431001841411067157472399691796452223812364815853685410764486344441866959905349107123367288575908103310405056853631103313760235922524088423309995328491052320763757196140270344483627927891005618827347049872685102175387152908815961099191468233278790043255048977948349560286526920799580814480650407971952209197707265702403985704052601718387240011380022489456583022186000465959053371296325947599321317741336556738651113569725073766291617395561413568627603265360235462772687633195364688378671314272689749199233270283951467525256214517767808961463514497541804115117757099821081914739956881482883821033651572530799477948873061632123114904177202936951797247663924556752154900255676371378042701770681780156786784346548153286650643654155076745999462663182677557921391417774638367266727082108512465278117988002169692809642165531289444540687689357754965294734661162120213433870500217053001086211262585342208918856282570637029127124815413795571520955841073423606618734358859870185339964748092129466876159333847137261600058615809643663554651862027714184694380187805236700137762126103920372271366323018478825239117953882375395666322298654562452909833606095105811765289174493768402212896896452996046305399303119724158573794280612535971715959969951008110192657641179640805434770174559965431409567342257277282283247660373515083492727352984054497590377297123708093323638683917498061519837311681324773901201604335114362856086535023636727073744802795310465363023976464909858287068257874778707253625836155773235571189327262057873455657056033655370679025566052954586884694892532594480589856284826386186512502070216159880116573624746781260258432973183354428809565220703106864705036657607531736687291349497408202563010272702442321337989549536608434211284057518704345689687940330049396686405706730527725385765720830373586858394976867384882195399582380967692747845789919822995724123419385145334319352315550010865085193860787753639761627732398684994615396353302131357820612826496499371733088464137895746822878747596961216509892141268304527046634212322267671933721997979193976104104233678477215831377601084339810312400943624938404115331746345815635450368954300286343957311694180576838422426589570405263909058941321976143933862122611006299512396815699823454983624433412891724400671702961677017947595481261278363201290467946863571536556724583784745704323681110788810899002625097219983217773882986826035327835617328157276829416258868777030380022057959796757862599114723077788577212611110002081473694104552633652524307918614729559615127702853431173631412552511355072064768687861666630952113743240346163111025179738039463590300711327778283547513521728128899173191738707040494952485813288256955395738172430539347300254574789051006602903107728359542223019414211002009942001482116225083897535122758684669977887898911457896853240619860575729089929580976895006853087563339471991669099107765228028005617363279933608016804976493009336464812613794030540152724183832677681415152013834312611390429391236976574493694074660603114332815116791176914708794692459259597374061333162407754867918009946060349836758869259692920956389376781352084886290467280034920351443695023512258533963712681235212203576072901832466020523250874394602934162893105516663693859846678611966125736122359367298305050566862627041446500557796188078991547429827773793068479510252658718564907345325699667347132722186304852201689835273867285539731208579275407027017526838442465712347732023469871959304158086674027248834876932775413955757250553537031374929863094123946642640872351138629225887409447660787843476528476355993440842716460339120834885279491093573194223867093880680529350911233225156105187384047039412740799577998631158977403188888980919738198595719267884073932680306779094799705843691633130381426026995936045490650618306086419611067448867206380943913476555385376603916111237676101636554678370856177368340806879298886119849982894338695721958132153292608222324029401785042910059984112338197990903460155525706419535812636050033172405594353880220342971824320831119171529928657967840412502192982362107185240280161636287626280933886992319706031977345232635804150439076094687368755696901100924091428726187332746847192109867985202395498785667934324339154653946226363924524481103029291233070551658239406290729654182752451070459070647184357879008050980593411313576575679533272859529462258253594839447848173722390782459402300949069166732294702624052545234694720060190744926970502404166321043748781129374348583215909093527920929539979123875059201411951712702545334103095826453726423129718140704954863583400062614907696833573371273998042231381463700768242074646882558593406779309713511322316727023799592109878780214565258037129091124074874736754550127407314439409159130322314261144717059242171366810620248331232204062111044381476849683428656685299122127884451817307977951333399401141951296780488780153701678332491702723445123091065471297439413508133442242107352322522894211867112950292187518648101257813296871784771364227642114134424324600542598061759356054321986993822579190728108386782988265323600402067649695268686529962318974602455172940144682764776002506747820299154852332563565922950064457792026909030236160547271319385435190448313055681827848054812673599506535225169124963464623929783751729623241282316925816553165111393011948233380264968250964566437318829223729142029646611473082612582012957758848930791585966915541810634690704800617274966556956259726772126359375893018148620940955145087133109863403483133107876405558770086868131776710343619850847089408410137717032160849830507083601762275231405044762394909477185158525760044032216698209213012819678493687353463685122053460502877283423154238703861483847944038903236998581237976260941595713734414763428255412174282136118748037626363920474730095614530237014901247651507561764519703198843865735401157930218929336391808064538025783731360737641896497238199620446220891816020798109905945662215567570996974084774527697079584778885733389449249710084371691201169283666420211765078991484212657550736599328208291516166592972494373387533379774148473598704154052483857810344142139966644092717371388277535047148738627371214041548993256182528966253488184937717920615088493764556460059859930850560174596272955271280893376017460110833691635622055118062361744730857526782896804598704420853976618046478079059226122838301118904844553164086644093988424645582796927886742123510053693317639086663136588666264948858774862178286452121986169319433269101331659475733147890279301779341275820064722479038595232934590100180252998477592701008920240619886148297563201253584481675555513512389722826202068837490738800292484508168358464916807224775550469545100828467517236633383229201038173795393989738674835620852234343343053494401848643755765396380638402274398372585183617352384236421473072993914177345406345943816276303818412437456695874562045968243622262772024124296113230568280275655142668106278707317353463894502967153464629319901221885099231768579592902928571587512264661242197022519471607636138102759901697725537967835909176125315751632109787333210178414612014372339123481413966830993846539097213752935009706408279617766848893531715310787371618031709052501524920098102098369103141985852764990952224405753333617681503953732688923402563429848947709789988948515718476921017644029716125315318709649682345330821536941957343374891444278243665331693884345188623416849263981058998276323669349642850260547847054865678352586149602423246784654350969848665144011274187517089423258431334503378670119142417157813661423550534267590953412437652923106517926131812868823339486223282770893209902825883878820708371494621499346898817995501143395668452262468721997701585539049420942097961210765608243143990524349712313328634048634775616862177043346059548779705919109968987092789960517107646814101205746340355662620352450593585593094937074963680054697995182076144515342311948981197699748483575976783179759757323434697350540005326060748985694683066141905346746966361423527572294946102088316198413328354941449350789792448227176059427952290130527412924202248893585010005955515798772134352279879888661507292708061642960039217082309842121209385321307619940633437391649839448171390462809419234532080353045952021956161223352793036770253976590017574454529033200030002397195508398007828864318795141729423235757156093201574833417683048538614694300693896751580960017272429184694449960244710796509930908991796936023861605266416747177295047628174066994072346165462581041586937599991961839163124875213122786432580371839448808972251123579931605491923880992152137689595866508133603086868896135965657324330534637905298043520600316000365182770723011881519617891719338380213450808068803110548083496164206023322198706622783341055351521047260068740379338787831783248109191479314653895062085744387351306782207977155927232412238226446913437034986136068309027679346715753810411809291271212219793422731675238752249231332700466451580124628288716675347525675095487472625864475901967690965153426740186685457357669166869813359793231218858976221392271454523404550315088587446351576063829808052771488772007609882559182141490104699340584102299586430928865747864812350956759686081994811600684142347596380050582763979728652956401011004399880849029754270269528044561804072542811935337134624270947170107730092624051566529504744354517065312157885289730575758470326882499736596673581383412749135360455051161935018976382088465366315670510311807870274350793498217931230152434062716871937641860682891150726831382269536975245430108832534273982112494057118366845779925091134947766975007781156702367728552993338123579999361228439474649072547081297597934218051082045195414494866096677110028051599135757948169818034797969351078789126416826801845568274230699295502195315336126282662288903113941327419356592559553615648618478520038997296116385753224981837135556126265289939515620821362168592799942765489787233073706131698504781652165540980597742920841261116776272137060420193157530506800318835659972747943720159692973861769567156459279642802560875996734997180768081031965549779462566863079367471004090801074401894940958560938649859281651720297436627830587452679711772120355631388489823679095576746991716321488877528714078414712352578484706366413267410744321410264552655316020564296543241666292233374816102448009050969912522446858735462173966997479512040110979194690064930695115788983055165882281768963365406112726436669709624679697061225218260723230418369631550979737050082808622741975270911923797919093303682019820797569299656632608619131784077775765249390316472838715730058164397685418884242530391538441911743137944340222665046357324571157760535167524557959638002619080526442213423755211934495954144687584549128468776847415174044314418281256616049400495498168615942907073238651282283643263946992187540352477457897345156421111973967635658038062714101629139844048397418937868214798235937152147823794381678244665364417872655451934775321249758868597209302866697519231206760182443137771837942456830192120883726329861174034078451573094788095809991844009411682230974592797480070774393047497289914256000090385397080357540947462137844671058861704782296930988393275891254395985838549928999756218709201979574489385994990095986254382128366474970356225974514748007491222717387806839606785653684831550475551253299303434181537898813892778703015769547692594384297633894740976260049521827728733455132311625331594320354492001462007186806624995836363526501397647438779599296439997235404408513145633368766607110952677715292350209700538781525404793737725697194103005709753367157105709797826000158925745823206669212867251768842789649223925237374806983077669472946073166839766951471072449912476552204385789984373087295252715776253314400226821098563002574068145245053013897546385060821479489822655605113284613640313587996863245426245770816754095946902101064477797964569475612407073433117243469547315787372545121382908848248457146330666648120995157254032296634645602614406828865030888842415932851506946085412607535104666351376272609562084104627087609197927235099390776847250034049070740091712509365353644924978507194146387870039139214242453877381316654837451691740923746237092949695161692332677491859348679853409227723277545564602286896048964330758456811348096278512322691305728081489869832772596847828473232315589363329899276596953562579944680568906849998055601291944263711885155343235122062925484566290178886103521091228695234174229994293109653371543513185018587766609228442320785572839589525372507789703825151585004809649851815915455478548057393512444594844844346544468667193549034177291759694523950660615681474128161865925226503644557728476683863361327870743380922707127390129036425737675053583066355294730009508489161024029010683819420326641773960318029527004558246753538572540277228591114637100116881053005467713578569301400985420855496247425763480034784570832622686707147796026096509530619448729182251138045392016792413684766687708417236259860172755798966797060765419521664893595210868711635902034150732191222885705237033946596844033106490261687970470598162727086279053771708195091120307619808954883610685002189759191614753231972408937153457403317814028681780115617064514325621889746776995289516158537638396228815391606939861665409125723758599097607812821208124035464769590455125567981175859718867749102488939950587151477158453575167450007743733877702948044148248201853695207043254463699676293767300683684344061006340231334743345822286373925460986699003520894941913745086244997949038571253520539265915377313356092374480743171556848812927659396672349026477990308139106793928332041769366757445670195893287174584754857355603228167759596150059230517557127408653682422476723087785439475507003745142161080777858121503615236777466634861429665270804598423859704058268591873352721936599298589559833075069933208592163676741156579799940182957200788592178025470812169590803691277580995515598959530578033208167403037170394156973563762123988474903348791750536528360555406948754255818459230146740089742875571090541635324276772028879220792194129397860060323125154852600314872158451548508405243859555407208225237027708664125629459056124001825842786423458148560615981867764505320730489147387392746064450002662654080454522411636028783981771971420192735964375893104399999610359024999901716672034725713510243629253182730011239582210098461190091124901227174457654300504925703418443302435303506412400241518129617931121558775554253072094273400351659505770771268973663258776286585735926682752390886518133879934784871905194279302197272801732108219818980214058063614800593841389434478886231667427604184614855285294419867924092349883874822175306015213730747379166407554586223432333724284101889500105228457144478375839339784466665784635129271436833478503098812839126638566867645679434499888655240458702109874540782240131850083199104577404134472874207787400588463372978829603874621503666473018723373764764085080457949376377335702818559040060518710637663036220400653090331243756881533250562595080954926787341542739409102179458058737773583711301639241308089105927785461966412045008308260883868048861111228941137302537273030956908177456106559510356697196941068441658212208250537182883211926659466479653465204822611958918694874273863108464265953901137309326978623175869816144649506493500291756049179694068569008355648740662285557279354773982776722624750995248287683941760026948793591044046744459082240169030823652404551918273316881636211005749668885998863098199782766750471005603566815475679244852861135303546670781285623785175068986183127259778194320328392756389022594112960521043588143459156121058930135930142688266239449765196133887794632929337721538347312074711579870306836948060644058986816828400173274731638215914723902311294654125066702012817256145489182253320653815360195185332188369143482446015740348867256067040024823703695534099177740115191003075572121671662072121970185317464223655659506905107367571214056775366972468198689724623956368552999004748733868017857299201631157777481828408816280503482124356486430713927529271861414620197062700466183009558110591402548150707933117877245168673077977520087370980400091254918091397109102332303919162130007544228338358293780225454984031656293731322094597357465262581419981274207254367797536705868941353749055326728858142817076658847167349061035712189388580015705686312585908328839182585668749393022749272766903231915902586442635961928586415909988732463790129071258696304900766365167753575994778433298794026790568002084703720784148669361686054084919629436328446265427070879806112829557423455236824306285134221157638036223937890032481388667061712811782317928402318184651252830235350872062384894043443172339696562940814708595822133361802558045940010561093399454700683986915696627747543335176481388118161051064078701169138609884301601431253763299214909917371623158944764553469764169103421511185833683896074757984819263011889653842316824068630753790593698895655687675163772687008252614155890550813347468676719631269063577424856843277246581948626344353456467080299617737953969873261823716119804809779704226183762955174374698907061278598895073332511883795838730038993150794312502805640518157562211642274514101869313207243796261832680934340139080065174853213737614727752154262392816072157672170076275415571377114889126261080532442764214672206733809746336652810762964452111080381390310344738704885507741963463075637900047339398732389717131656768328136524079007076074637680654450960577237399652148887832501035097523445487475030678702601744153383631842006279311122225458556053408906614940224606492012757789886559066447473932918912334689068558046172778226295783125997462042727448920908607625976730683133867902551340684731975380317999356657643777915815854051100177933352892530543111514884525297128017794884900728166503806478484867551817560833859081011308995073316565185840902743543034174209826496325087705148564751703044428708819647456940097935961520025760677512373869386305632175249105771152092604114115337918625520942178470906567177468397458318113043209260925868248739586755377845018507618684891539126294747328004164730184558049367295379731889390097612485064973810017397319107096202858333078496722942700985997496009348122180554215562278669762422672375810135235990306434700514429211326651611577470953136034539338402931300073896740173279140054578605403032259333362274815650686441716150831038397395405100726473184094693306146995251809685896417638678867716550007420972755447912905561008483102341190161627235697394140665432860341210192093969854728109785295698901045901458012824797098866133735675464899507661042839953789393050563850580026882864377776051026324113221275173050204704209564742960351381421806610218333010973025027869335937579505090109248904620423814437661494109970144104612762098031638955305225692577830039015214408780897310443563894049302188207223152145860691412951947391393525451729997872327168002061548809964730662451090285464103458142520406347458613613544504029477019984462932249770525777221978485603331539144808804178632389607900257473162531224237868647782846238020919564016089120260752626381017101639342875905608186845415771025326099316092523254378355249970216750151437694203044948964501399900130439609944688120576943381281588158714634666075284450830533767596392568431940465167503512560923531851360213318078549686906920340073895309004389874557284693847082539872962392646223832849830231299671188329218365395851525919306384882156144515381905680824278974792837642451856024598516945595081032570172437661775519965307815089410121924484773065507837855830083647104618142341244497346070389035872972182184222586289461127051969264303502302326565575762371292222946023154624584730273149994417054495439491108143876585700780914976371689957754381632294453249316353474738521426207698042876858746077677967553060555596706022519700456677780378886746708990947066980909438889034992835908276627617932504365488992282562905524859965751172149467060770291159574073909042154101217057809716796967691614592814208925841889172407683893155855052091923034451894814514080522427932191390200873441311786473389652624286054256931775960795324118202401267111953493744775124890779154735838604993980756336921112997420657768607953493310856988256604996068187407348960180341428008158182559814929687184928120381647837853004817882939848910077066841614542147716331010756593680370253872160917756794800258847738951943891516723463046499554045401739934544861379300568856677971098899023727664285464444811267598948399743008384715996458067275236211992952974908805045038588532778432903571588638366842213072802209111085603374543996262972929060193697209149598553229965699673263912246078770104065305210505877714199162983875401246309880574025736976704009601535845336214122218690623016506469327303395021368683302854379249514018440698728034334049450299688094893730411928168165330554191952016757691998956359058590017769731555933620111379638289587466860958111603087727220154991008472390660192232448188650516624689042166703236360681326757519122729625958965508505487292529982836713750991064541128378522424407905776665092893319885555984174399293993493558454099665813210783866819528168095857358490063971771706537774482368753290939488414686964033407480719457536928076339909248902477400113289309066059437961047054533117840573490554438523156730088718744440263187263387638703125465124170721994997339847146489962250727064739973972473786970767243090144288736453104663152077092285749618611508742885172813920169800714567041398349091996844404072114889524906090524469078732895965495779474147664901107579097860303942812220476032568471409511343504225899575397303544107648732973493240260843174996091610323374199464864021045445785661604155001546439996146668080195035370931275373737496531646669909697373090666181765788525158579844011443193854299262593514190438467065779360983423663558846466990709406480084097014545952129623440807385475098843692495783631969007097843937279067799742136477015439546855592022222970172331565464156084911706958371075123790187371258632086397916466341659439247475469031666732434559916904108211604061813169464991075937704573101892715475075667271730685706420262415625385059471175165496911055613402122768026415404583949509269627402517393680312838208261825736626366382277060073692240312263296120091525935469010684466442473711832592679747364822564399741340565212233577185262996328623219725585309208375387967901808895079086008297662009191435598855952295754790739470116217607654886953530778690149712505637432002144310560465213543291591500177406035055510287012242719830019386068994634096404188000333669609481664558352743509316555968586155373090612792797349935000622400442512125807126832919000500806955397158882690337883783002490527490409524681191696701670538682958715404564477484575597467703205321087904415109413991850618495823603680568563459778188325146356322225950523864243178537465094919044162877996481033934363265905426158612107122674586445988350576451457418283546191183826106426976749797294669909922460747759032561423471577959083590193842547717774488133398375143307887429428443638809869690803900317406444502738657515822054715065575777514497037436952880606267203274181951233532453609913441419266369689746015264168465816296295584327154468513248768024426002833512752667255531725944110405853853773234500929729958913818727627084417852243106566573108862018381473987668984248528650870332007865084878222712794857426123700330688644081983511788168430757708216732289206326226491561982864488387696211687863850053952974432825267126551476287437493980817563351532740239977184363613788285017324787073048387644211193037526368260588250259983289242241445771565658919202589624725466252407158194022123993838044094515000170607056610600192625716538455352240248361863256844052827843000449559925370520708520638764476486066759316369815810013754872078559222423138972307517083337634966466667666926176975776860907739549696681612386792605633048976625207953206985133914980071946021990464162968746578863095028112759537995263881950553742019095120239435842715848206230655050855380654983156712414337610019433499630779770559423544422377361408317411007391139051180574207447350299760934052511885119860185517155254299959446930014833051702528415200153173636564217135955992925647683994025048101407910766221657272114815469802032613227473944249656906628425356266987158924270270385513000000734119085362734807699333896240710688390879744465302495841299396974874543794072774834977866036408845219957208137149032366311590144488656567638332852131692983721226397586888042864075361365204743005597576326762771220628957431758513717809227603135419619246109188016567370609209546236011367801997013946637281739745027321859959335903268080008223049002681878702738475497988674445571897354266287303769125802644331880470080717666673093985628634707536214649331247390651203851977395561036302581867747934985900924351001658989587472570549535691946668016039191219032368835041249236210044415402407084789502548812930691817705022488125973912243241293269038808096955985372062603392505808378306933598978779459015751486904126561891858486162303747326929814001303610448030224057751900502101140871111370375869809909800529253763768809659518961831826084723587806075547725874277843501627555524933056701988655926531314983188492330080531480865294737085019316923138937304206054696191989360220693352627191514599796988228149055591354090452336293175949446206370016049993210158855461297396971271247800022256019937433645547739465839450977167468348801056889227760344745295817592588792150970052026674758628959945005203653876848258724871589135631492268935874611800018514541304628434707172915569527121996166128878795008186591137673071822870400947058139825485044529618191901767952456294110500741135000191114712511692609434788812740348982786263311952214760989574492712208420892508550432271714467254141156338028156013137171584057151359708154919685693394450629857498477551023608313542716400876087474875563685197650870194790063911823572246252688641147332676126641995279943701580210447006138552010591550047820529546284531915033498578736417159634079127400092898258315970735487308111449399406092954468697776095504109375083895005254489703769935582947185931694571349850150516450939242455051451584876032658951105613295163978248968937616602515610215054775708885380682510968439179657134947282209391976042988024657863148447860292572968604249597414684766713643117166687006716458116494945447450828037560870318911113607026728895206487590650705716170773780748199334796017733015158812488076175223241004028919347926023711973678400234949346375043148385833959760219799225070218786565201809016041126977449112395848649479332664295131823274305140515967499076749813714423098147025492316072494257132297166454765062063413581776714962278113714148821592195266545801509379394194882524802302603283152967652730407475441058016608937947787854202985042122100468771943236069609649423472264850192327270980920276175132571368541499039901385129316079894497195429848420793100985065196381083188318378041542067273719104414964593676982736228686918454379976857921789301430404269569477901525449886914790734272068232098923843117400112568077818613485074865368278074502322035041012455718658059496585869301241827920921808310797770598070684175255701793450667329084150564715849569030669211226683765691684753228067977418363951306137629167922786844432214172279718096793633104891085571078091204214745144149171656633906957619299738860044939509985700723305829699415029582365911441504332315247754091908667406690120016328294381362366166551182538049166032450754134885985616899739845697693024413024431940943004168038300267656830481699108920916722907044677116248103753112287111449174547726532890715570548573793101130282901991773034548609169044829310326450201824177157576443612679366555769893075146187270375551574989114220691341229667249249235067107887495389544412592657873300648604402560108917834144175400897227409859062835846476851953870367847683959259956086993693243267293361055144046780149973044544410704039885078906442164160040417704276384211921026578210426055372077408045459168955422231216050186637529933245691616995416777210599714185376584241470673603357640371035823522411353208563994828256952180889426675969543387920292077227576525919366702070673682258464638120559579173270697421349739154680824799292263396227928310278804485237931018958477705203287577800441589889491340383605956805217685892890870088808773199668740267436048958304543387421432828768768322614470070533544741895062352548415769024292059915262557913078457237913997685504718656139582045084425201496396021493988319414291811306956083469367269984347239967812890858239699824810185995102663731840491722527181183835347885899079476852399366532408047310444710892472751269161742483534496467136280106371241153641450664546560631567844896285850170177888565237556921804237068402872557816199122499717988993672142113598647621141624897504229446294109571031104226734793982279445781028142199364998710923866656716682807806994818304562016222217512479863752654826553810405837720819333507739881665944544685964210738094192539533837561133333415559410768493202229257032622099345516397484284553500640340944309459337974144898704505855786552527929868013798947126312062712624378485544393406294299106828235267998793729233708279536278192669539137695383650316160362826411599795310571154702548816528353130706962627980659798407711174109190168457124048619377427175408091130104221762354360550301989884086759389438726228861750528530432776184875508339521297591331693209451758693854552696845259910625957305213362679630103970704742793543964152124231365272501596106907478132149349163174089698635835779446753391589842775909243428136482540891729208255869143758099057144809723573297217822391203664602709840071788215806513554403096051017634971512424813289688078591368570078863625948881364248604083989522230846829752229834371894434437720916626916459596969069682838306636896390127679407506643039173607479163944218807685817639303543496804688691856474787390165978316613730743262667110723843334965010290357286834063911578894993553726340676337379834529021200532479012885613817048747549947035415777627111192952672088595270867118912016145575329492314782078197127301135931620003944123216665956653332801727136396161395302405880797206813490016537577168644935899657674297701516170650748804401170758304057361848372899728147966051894421760640577205545318804628390049914894588733833984373644302323732307144665023291184048042272468124089473358626366983862968188223097739186438881332868413927168515580203627896347258227913152923063822259070249492543726266205219466991689679757817115302143302189840339047749924884088193366738241611711702271583281451170339137272906917955392327157811944970882471389495531087721167944766174563495845299993041621017648311889752354080378278283662684748940764527528782115701317761138845425244440901193115301177874122985402848601127490251273533830268632034126334245491347319783446946736476262149241639371222489443353975311327414105636365357865613058589538340839504436465738403189994375283005272190149570990163757617517835021309284769150052260138940503261479730123820449530967256395004606503271292420177682944205229053347186115021159440599881440560996476726637473895683418996233539797253720338180698126753230960196511056075148508192646032648457668526912326382495141900817466352501140877576012537594142256422373669547899301029113815981890960420653131407776038255674612349225457985765467930570730292642089439770570048093330487113072812341328748663625724233808853090182353827186847665492033893086883554875669791686860984709935629928848899219017077218258055726404341658542037394782993055022463460785299262959054238791761035268203617150489011784902866540294932420930519515182953981631762957559846810548588326770228396957741305723937054204053337779852934807248949714026597372142420108461542335250090760909775542177988999564183230636258383391003927255626175999273228656113552040754496633253650034162613281094851375008482730846493566982937279983105283122744700825652483763207959792405439580999504428030694020136606111477037672395549447239534810519623810434384564829413609164646030052624345863999074222710638965502388166233270757216870440682248601030245426937932591051130268206267116866012289210011280358119673704856022073767866503946002462732247508628146937071122766091144334442995579994236153568495072328928183627528733086928764181796603519346838503153732830360022546100747108460057737381030020981573544327021321108048542699933147515551480403975197033873118266663893675592831086848626114122058343003051283243569627626550119156300323834066636142410369963975175570766428917756983274329732897748703896107424599299662981530545094108434223037305791982523251312114771706299703440761412154235085350947019403093379907959423233604781710188644512473214399596259726236532244996317795206276277348571149211432743183634302447920474883993328853064729061721746205172389332684539041016089712251410942157098825037018462560513199337422846146165730654352356320616225264948947058437506515776661029992679739197841134668415698741718050328770340241985075539612968455019463865406249158164319338092700524212116477094645602212938299613950801376544570888222997682304204745652557209142712067325877834982211818891780170777113319630728903138283397564564443024057232854731856875591284075454403988123651514201580288702386988624936721522189061350246449898899624759364670758708796689231147455690420087406459152634043501123433852706296729887232511996550478926864092482299671140269479457071154479175110444078183289143296557799226900213841399709392171287795570130840283402803806399486842456982500669303700178760294331994828124748163876990875677081007003828639606023776382445463644991737899680671291715803074547734231556323716738252765866575053916916869532459354251980274868459206416792928378068320965317989268724314973225801949788071574960123659228650027817008127962659810519391135836920911801824714616091158879681640799279317493125478792689852920327501741766500046575448832776502905487316059433384782907625164136921424217782325841296892609631966390149923272404555309360052580123219762953667766830760582526934962292899154891062008234461642650947216442677725436026283134682088731216818539504689681213040364115665030775241560072419999218066695840602629061622686407165206958025697212111757527866683498312940813444050501908239581275659881251618344029324474540681186179605867141755224859105347478487397778023181098204414350772108516464191447864391042720705824062567899257698706693070197572345384985665635642508628745466417670404640152430907357784738268682011494165135792170215592229404293751403336815206891268285534025876630334423807811445512619362197809295474303266202217027078456651327861109818080394490765186610715177793770274151993312862931469729601358370878244170093147694725036816231082045173694361536688444232301935197819527086889683695028897501546860165254611040175696246694776479036673223404381439492696628321690887203111313633205079974554179518509020329228505302436214763162474487536330636979370802578224515140315506022881321452117899937277269862553527557458847110868067924725842516561295012333449737477606261744745105551021220081773369509476903928597684883228838996476907906557619911478219344547105868102534448654920119080546021138739270146392162498755202690686429681952165641578092818711189513452462714658197782740321199861421872993912694794585333338522626167776991470764709986256117047481294751560272609541400786196590964783487794040369020703328312453720376909437570672564619977452997440217564809684462887159325580461654927540065965322599493547073624721215310238323210501756119934034165956147246731030474219690983443566679888951331979502564360530614041782108698465400236125220746961855236245165119354725259033105540152500450475081767454326442886254154422329477474479725018093588547744201091070829020800959439017443489930957610148160950369196532601418469150451708692678619773213828182217860003402993592193233463973903424999440275159789443413142153727990558672961904005374586015038904099386682929357822884965995947778791975576376179373139664395482085017822656559975345956529132368612071804301509267228471374896004842435947771357862289827148864156835935639519776152521553580910973032874802551191903527109573921708222145467414455907324348818538655562368171035855897327678310468601787937758770418165492024811350547049723280108064873483160470670590732869293973636429066949989333580299593084267474591685692297332692933237535753174772462656998432894517353269260848821971574944642816368351383150075273548299555471941562156002873687341146877111943450027197021811007100324911347174343265142795254482527861910531662190661596361888874054853634224768182663689292533880597441414345420472435885796670260769392252663262313109255078171960183681551690939324841871346015105376106620173316348541328394478654721329751387195797657368643410886394143370401194103444794102102788394056434151395112831396326167961147292997944622919985678470181455329668844391238400487160878848639971374344652740628886425005621262438884451613866512186990216798206303256867148934431158110733882993319444068372350949561765267820961773535310930559855727064289253473822061772087096706218761120723660434970775170282136925108230156011643626413113036179888000981814557190275765580578699048945803309800102142841883256559157995599283372769511726039905021182555560619657933568603810169893894211404892698629552313929428348178853927781965270235086009473883641354849262872180546852609700377613244504727651537562224041747226848197973739300236906445960657126953188297606754963477561451073928411346056353275791763750478762779114295675204560468646296717868429140400094274467992483411312048457141277453744741303417037194492060514513446669030216608697696935557171965156308893694574837916570360725044465978651395220434637663397021168942161248903536637281497568571886647232123509413336297030846383690975705751192559346189301396142957637906691282762483696473070703876590396954490195139781591692849689018800295697794606203930824062251606052611563299812682660060327715033059607377187503814880279668388448539899347082624861954020719151814103168637160106268050724016213147591709173846684585185067351986283178616731325133828814389800418975675428065741995210432042378560054652067193787232407439006062587626962288556799237683727467103870210497017829180902644974248303531397022637587057954492728933767494082403605388335606657545851960072091301043095272229512509472424321931149640142958212632865373260276257469719072653098499475179539933848263614268256052417102762409245181668929595020042015936477213229063964975716160605139200424269656007541356883090665940543585674069525822976709354302135866841669929558141277739895292809053499414253511668729536358676560835575047883929135684603450404609501876899879853465334651094710607581429966585130408371802102094485711795888448800427244576361706513945097151230092017362518806319922029216598260716486539944653031814803850598335759556990140375035972555277979837641098885485237847417799423978849790619409363380055199582695543009812135779124679568463053928219210511994210451264693389905346713181942004510620832804360475108289612945574056347432028800436553268634852233378803236659994880138944209987954206104037942549617760541648584920689678558435481650777818029122908026359294667025568512883150527428326747762880280931117477291152561837118155226677424813293942403764329758542574000818609678320700781243318138922499190518880764010116626779221794475585535200459715042139341162856261416297025259404419220542469890871827138651010128582753279192464816562115238122240785669513411746007313733071416927056003187468313565053604246007014640314648672165131694225332636152044251288843559041760711153003352554330041207822099758661269687654246166721125822312055883877714763788878517910210133950904013672336246764726956526037701472216090432757769198034167944588297411388806620094314981617208771351610709665477967354664830593367789457173000835562178564261283402252941988701562259278305810884286151002526043373121453258319531698452996193462428680035460378505457213891033978724789868880012863496341370150710363701562363232470055078065209440036724367022830112173273191624219108557119270157015997332097503087366912179145229866841404897802075196893358990925381241994235973493530635266259339125901137618306197534155179534433753682126058910079688001909410249293239980257682575653826704074785214041298723446201979047840482166303771260649801733122598500843922068095147156554979486196628982134143137090924088947871733756479599941745008381368170445715392779340855519887124955466947221874366866961289622332439156730729691004241689595389937269322119328730022617247142142104431781597143349140059176974670642188828818851616379332102223073174658186156844432629878900407617960694580772623543570732742713750978201805505655845179357235054821672382408950303222111960920122977641448815003091820024891909977760021340478912307627287246729115135836710076640372790300210999024780761828560207636011825341723971280625379003177390811557864873764859848815658455851527428098761976064565417287265164362149408566715472683124963193923520038465310271454382397948963995482792146154751994426305709614296989532196605263768497814632610563746156061127029681648312590983060626441568788604250055087158508879180564510003932483510497239781104784210678387709218568691905895879201446323763397102777133003945938577288935274089063310748546912676781712277244088713304665085068075943077426385510316114897703630615051508587875769437094485145195238323493633980741859124048972379685277250457296259757627803451722603347818593884314961128640013383480514050242090822429823964574233567986759427002678449417485754497410361930351846431878223854434488514279363683462967418486536818273315856613217557209672417080029796865022979620929580998768575558178155365796909855353301318173977169291228072170431333294056052248437947196577203607338322685341778009957128411073813587243411873991609072009293507510955056383248747199554390207933978279833763360216284993711778898397964869689408102580030475061555852130612903827574884011590621469899694563405204000303731277902130295728163187709030761291388532774522021209039830936197746419968598970064733865686380631724681720604564220979173933179615528294880446957652836481708078320763643474456293316611126259101303456158464624775141803160596475246122595949532114197792778775066602896143809842843876332645251812463893932459246824707707455452852219011358811440066274154264117054638426756525186901281486708335334416067965499782040628445825865450441906036564944442547906998404256905181140632516973564601356677488320264236818615431922542657197555941613390287076130585594313178024000584695974561651180970775445057349227053576241443310378095984358643347726777823979122199948815198067382210528633925360100409979148331886195801516309602532003578101928831972035020797608366779213526151525068690679640497422625670494724184238278855940272533914395823666729282272722182783846018656682135927721662920640983726469818162004967131362248597097862858515031779916345299079986698853992969014896000453960936944302141633110747900664469703777746775539094585313075265735944266145000112295717001636599189410328753635304765259936829466118404650893093486799233959329771808725150479361136346687913625153160373215053121314628563950089305311867796031648072698890463478857971064848758135675174103295279631151909434012750210790571240829191353912450620468872494434759316288308597873867033828006560988558056758225200630866818833524850030640009074891380897772101612253327985934754869437543369826899211768574752688986589401574532523448024718607850898249266454526913164321963662780801832975265426407364548869262776122705762474894277838409021034227360336900690556558371750077433862564079577451584980042751362005231774470119803699804349315200260197521154163158753733401946744137252344819111668896775750448498243719933332429462814776038510569576540474639210483714335575241036303034986720395230075656121334484593051314938965991358772565861588318639853476719029643518164674571728186968290875150339675810887266754240723387260079725421546941350435184185698324793741606077024391066428659290604622897911740116909470858992534437551114259207299648575952307825542240857613257486112833308858234163106473464769143676858003018890196838229709976073238613350441190606860247117419227561041878416221176783687905965701750320991788879090366568372587568627256434812310589250519551215734021689311176158166334687172348719429991965235100197836332887372626815319699649923066638406913603891185891896181255023498249920035000791777606272270481701449411766115901511172746427048608174691836239892009982568324192171481863328816011446899674994864637778202180116228597070243239836572317684551255635949713129216590589189418681500066676790742184781666803472697983973792581194396359054500658141563244342306449991715399198467967553200355627711936308532606771573660649957252859663028290684373323033667935869014812938601815957104227985322435266394483419868606152186217698382706513198741120599041135351938070888538886749570542591327794537585936645475008112256921988510905183032372983618019812071238485682620013734627899718236743106493014956815474440699006928004557121962644532693510795208860486822518932325962459924267191030043560033041998321551360799468349854662617670171739401052484609130364809013305761437024534589722958178198174859077070283584510536748333621206131571496206345403465769184828459956032035729234909401072669431336473485689971050101514282577236551736541712537020356859964900858647274181762016161896943248543977742541961906629892254547066471113181553428781001503222819440282223380081039582545678634303108624332117038857883471740870352515716328642636326939407722072610259652309801478674147965843247536900152989688851575732032886828862831152977817853236461418834752357516648343615931623266258675079555167526558779638887642828864697034014963266013325428877781072710607698991581135442031031755599324476259706944690092062411144017598816249341675340723480417661567352229833121243588417580406882979055155206625781143631867349836223950753309553576847514548594692072978053501665613122154914104673200887467874544901319110421194561322497100304737575980397360283704083180218394874576772063017078101139347855057668756443197685497924962561712923161391030160709538566136752774905271709361208806641422992695477881816943083627549556872189130386427541724177211867864973129482576998523896784362189469969186496390086641126990838074452566318151930707065734806366534626133147494415088735633694514289952115143721384530792599883256021243178282528639560634928633864836619532662794309402367562518254065369489139883111011556088972622945815173336030224964851713905523539280462404550205724990261946070431126818451228190537261015641493047726746611933109149120528690382936682731028656177694401366517834769846136552832390631220989363822508992219031504665098187314507840912981921620184954522019489466060632999038191780581924559403982946778450332241349931843211583134630420176357591017719445309511128169666122839465960245400105935877695062588485255365973915138280991625680606691173747073610864793254717075030704432009011795958492841777839792462303121890077363144635446972996917863133804799812721247173947814796115296280035712639547585606185391804042390123688595960262924186543200685416916810860432660391242580427608185950410112185259229773229402023255396226795296334030801015627590332837486686240371380398617689250938260543737409446629541364591140462254164498474787566523011302075837319047097267176145072500241324891846155699432375538464921153648068618985292176978376509484618330949814508062819185710001546711805835803642487793443363116062208140279525743349779262794298391479899217512759211102697331987764100825009042080055581863316276714540742406422529263672032889445107762551302235963959923428072132583180404199935911712248086597563835008829256687608318595719296040666317039982337326522399290918272727252000021218771116748554671623252574372321379746540354417221893521915775337512736742719611962076559140839095680266939580447373593786222816012797545327753099226245063393272040286037520808465600450889171501755826557052884338726438456288426020691339341566362133445501295092218844256405515515377477909879420454728733470568959512246202859476099314090561179039941233229911215090163627286755907899350680019391996003958702845546338146258224615473778244132833130129537941424005273140601477918796200760750442458497784631170076213351571055997394451740249552915231310681825919020680810960849973456466241609598608994094152298077112063668818179872115847819880977420149385725908222022533997757491426195354565172228658145234491972870347588837034178489654675085475617450381200776391422796438529373466823582470598447877352550632494767607467927662440645324785118092002393871154778981230639072772194844572125094159628445268039360394309155366542906145363129707426818127348063449943543193113179317737646109801544966006466174157694540286450916264815296918121623280604271381103242647294576321690748137184346888445265823352998728181389824342805527445926263157844755121817724259819181703977447740756544637059256045758297393012273888340639400824325800479182866874276709715964570917784343935100499302040306145746791697271929858600395063194473168652270819205891774663903727328254004943244687188227492787282440125211794729621802224833812157122567535012940547222791275874693693541227359028383477472875048218677713401296080145196606850373928831055931058907646203735553285106767161124554685219179896922373154625551815635326356508385210243140121202541827077785379674085334928036582829970217008235400335172119274467128081217186521506269234247872316909927012754828739192006602766160708889527539761990676069134254191199370088938400242584380014946024203653840590311980206017896332498983425873960104352703873021869170882501055253505408443907476139976618700855982540254323708559372178157797375222817854748615688221687439958197595471943624430089381192637080801347950586402029787635424598577238509374726331313192358848007189895515756256137885797446161284717613400666108202368247826810214096386325706187975519874060995765137468962315305312101399454683758432907792149764429474385884004876744551565732426621724934295242194569266951186224349118184031042046577533191440328436840426245492266213427033747155326382290471014036692794744490978154168476966012067067131148620686415463776676280348481613646617963654971703680700270397324820377049841335152440812548822520591691781439465777481185982400006883605640820122933448067579954600335763485165079356931233896605410181654971883582576906510997241290518151466014993637364341063498547887260663727873216451929849251135845143831270609914805081064807247671668640811774252828195399047393346135054646668154463353114290654481604406353244352714419930996663501582759698035358704985083841880556482066599461471057694788161602440313641391506621056367148256282014086556783227086217847892285555403242925939874446700162035249846400470676987321642893276413346824145382893180044915139885481364008095110035612639297288337088737800202403722651771115823688569243910426035108426245280594522294362056288110637970975479154229488259221151021908379419905197000926637632735121655811874380328802712490216538288089424649662905440948417698305917241220840995841783219730582881845778200267772783855687367595762949320676657319857437770458050747900006722470757558692897256018126528566949283671539635590679390301910528109425299691506055432346001015094741049974019174938699456329335270320349080063166350470510048403451876510746629754317444065985466738753768857320607702236013054602376120666699639370526352639270088755405573298470442242267784604455519641895874945214900990482011800448339041401713161508877091086802902120772707572765109664083228943989763021678413361561515619334840815869288384547639173541418378339849260714330778614575318902594688820815883544848434713743620452667679379070105393127853455994417872936945314636453709497537345134609412751856656466859944733826892607222930865629064420058169204327200823956216270699405591838853470471357272954674528358838971850489521137967578524825338734112854482135529304962031732337478194572619472728069415159016035352661430012574281199404892094636363278066918379620222850299882974948435682218483862524012588007995253142404706858488943861222689038126797199672950334531815044118774119356886595557470732101118910416810968686695945161106687786295211683084353169355560546411448958328258323308400647157712119515571909594738300565129741400213449560300382018712003468040403960207372831119404946979054086278532525318283557574975228013529048522023394891069422757299359380814247305705255152785503533127256747445227322193247105895194813961954826246830856593744265586150414534348667704028231404553921816885574787493086452216294674174044178062705802109108014521166446802649909595701755613211171477767917639223431726626485395092750910927122717792724780068179689161734809663797252887897508169287543099322008891120386589441588941742547484183546504974262674141842652349135219145752905221259771540567763347148922949449280946488732509546722015564908112691726953648711529294109906412688371900492378654507790998652879965027063903451350785291274416640508668254455565344695062306415628672837004953366618698691874285941887348561175323158138553349829879196715463410177494065319164613460416609173939854962124410567149867512011537060667894316503030131414716639025986605701912224914347904938276084083526082987614303305909854371518888738365764780548902113913865977574357230369745380432695239900039150726007004778634826364692212831234456587918645166339397989031365853064727721433894560858610774601428003650304468818101662931401205477084519184035034900695569018075194134057360407863250319316174732529685866121158372582075120715096895018826545445726273783265764428800598647149280321116520766092665551178131647259297209620814974073748364179828596558262648364725726073679078627212591666918933120600498717068468195208765427594400449308452463466293499862681819309155014330137629155031157048953664778364923305937260079288625706553496210483635092447721876038558970421818064343230398882197243263525488280020010504679603034458267197477500765564824518895703532950048373334777538502310600071109373833594933311914861094674584874988721714279547760850526025451667154427852888788605651094270368148400217941295101165324350580345083815425824037708194473808752116985534491027825394752174569773359635876539821513026788660505035629585332120584999379934858080620306279532703884238045100310434661745294054163227360831420628807822530347390920619944253288641623859220385803901854586153061215876558717111294268998255633582279974974869116695839940629516394551345087033316326128440103805371554279446967802912266330130275434161743795604580666199719709070041934501717473213096036844595066824577330610339651317166903986334768455721596026376554265562012501100304521365548705182333639942308645284367017807643819834308625719634648986463278587928186983144441077749103412328251819636090765730486771732370866508912803816658039219165724616923354104340677298520336663789593017438379756931292052886040130654164942801773281057623847181622399109636675618877815584408285818611966372642256529128264748661036173971432233148374661514187469029690267928735028234138976343937022800322488763018249116245080991428292777166235064546063063794734310526454962479213756644335212169279570592006591190114464640487519456632813476376308065005516806428555562245158014374755821207855092324712593201392507165528510593685543021723417645983892147681562273522666750195139969740822041657768787154840798506567504265542454774589887549639255610595737535921938228668207444311970009973207777257376054982345520507623626608885659138686755441828606690593893073798829195658859204921094942023748739736269317496944565256103796533156540493737992911057051213003671165558461319120141483107087122362952475234618090357216639953713830691260176955334800977913789720342860602709092381488150811026584000323423229801087434943126818514738688792991983036481500849689900372436642533590532088576368475701312961726258541999298699306968679344181071984906829895276145733072168199322155104456889441555874581792165816206846453836089697358246868083958175861454468372946349787343793271489112498607550505409388857695520022051563516857195469211727618427926899025464728728583284040137256357624976342295196284505858046907216396763562284096406006767647214844207215402675332307143153122114957713206986776928422108135093171335951312388062667892286436070136092317478712320082940710480857769800821272482555175660316594069204472111972953535879461571106090984554776052661233224282325458984892681887886385727473145723716593720781766787403212985584122028566741623237232017908417832927380416553248572483652844258217096898833154505734529577158335295056278410146215834950220589448671297318420081367951709452379960723549582960258277483931825614120975087337711145526294912723427410574896670485593915964751154375631830269638204444409414016053036879378052260934454538705326471911475570918187096143479379182505226134999465079099761104004478609279542583741256969046423472465914547770636478158887087499879528571209393291643119890529748019586512814264520908238696791111062818632851421516999964578673657626258174746964816957144279568708922762025261886952083166550240215456282631035483436773011705705672410824843745639892703984128568570962151958818270111373172957451588152070114193223572164867822389498338442496304152704145177685349754405413677965707868689347094019176900941144249378437580525715023175380771400560628935901713578891637057584950493039878041738055526333329281945880203870649372304512062786462023757388393074469779541421291332573732700507850976434065331397166075594247291678051651466508882475904191714783718670911523435122261984769525278490928107970741818739750302676258003836903853417087295172794717427554165886425891926607986861391175915739736988888821247958378254240537678883629782245385207560351791948880516438640627878342519087011786921551672461575326742363938328928278192634187594707730513428750700942729052211108599087939704200135184658576718955103385002894090817135800298688247282990402427098243129355212974051692268307964568053715299188311470941696797553738160877501803011674513243277416758143016684221304502981525140594192511541023568966802383839415070325281170328631741454175012104497818262193567933538709456674818798566064514118008516134580958597844850392244401268390226565393584715114964912386849156520517532302517889464763059351283336640838489570070325428277600568569508786859451928072780798465561856005089457778418530717932853507922429187084503440852762945656799583686292660935632588845306479590314098183316754592351816885869301492953568278412504852810568871144009178871074553093233942081691691312282170789394778572994475974257332061078541377848302072035716388935666139259205727237556168439252596435818095953783696378079313176243114248140134302837337465027097500270175209601834928830468136509719041247687754560728281734571782507616671044557977511215908465410636798651639309789271457733765136544211900763763385724059380626085990403924483938578719331356544156836427518459060362773630590880332356504338642797125282176925765116785774548480312475130847938579335574343516700464629943592099449565546649758951763081558317581080220482001592732959107946064855397455534524167685307701037684183166413906764081583416299821553347477093285520990929614693040693138212744614868905790875456219641091933759654781977064688869932819840358268694045795795899433432306897871183070651790432808696680573732438854977362507953275067017741563311258351743794049501766232203347780255759223198889976337610957514727790068205926999300911766461065513985691089570974702269976036923112328025086549229130889332673026037517237081930922550127412499968795248836366662048066012869077904241857472489624397694139877038300101875527700084060627841017243692139652537008814122173968488763642282177216294641143475284070580970014851479953411622719422281068852291716349898333341823440905154112241963414324002437445173423879485043962141479873659672514707521722390158042916284997353672387507691996087949135602275416093816540597163562031065820929961516251348764579472294873737333066666044189327654597520336612362539294315172746652516487022810085206017912972185914883910771185787238160578562080515545436712584960477952860674626783121037005178649350882675155105829151136387547723571469803027912063220344112088896785270866890819454280181771116881027176684665198123007551259746180108800379383872221994528296989055335742872941639675818993199959302022262231114676792911210420875714459636552051792387078410377905402491768956619174554183221929498547014469504331668990355487154894245288090689805450279784419279114845765035020567291342667899572287480909582694259231230264582067622025198041437361928980300006056728677376500103262608410373843763379469280342258541234715556007069537284059122449749185450151771542647746545618959475515303767767504041939845760055886930895496277040016891058008778018425005024497508474116410330526982799717146882361908767687835578289008379634799380869289427483242946370692182952370121512965126461949016569934266921889946411558123411573996702690764489688409053859551836182976998013165470744486318971457707240835452710890692126369073249173035925662502171594955687025619297811925052203564861038637697456288874445694631501496785310930836583893872741395961984609288097513403590555397318026475897216149948051826778536640432046492711369308658099491079960309221265360464149056829234611096532213196226924819211583128210953962226354208121191238447606114096600083829378399737420113028815575727793037410116165417662167391661361721903397680041464770831792361844939490413019613128826344601765684080640382731993167973263271207105861045717608145358162792050006069719360691850599897011462700035685555402800884201305546707766758529539366072092074133157730075224001150051503634826365384069055974604851109537886408627057071620760977544035459103717653659245209204822776174773202797632712141855992437841025210575203859523316964709693411484002609691193831223055861112583463733935946141058427045768008211864409668963445842065839709865135151054300676435434144901520248383913057821735319349246240671357542445752021775339022773715275585544652745191265171385125752554108535580428521284617479001655177453907425124684399485094831052703145831077827008606993973565360258990050320764887594408479152211741845736946013990758908871788620426940995354866211872455996049516851998400097644413082822280719131927942736739099749208671234672030865200524224100435303955040538309800233111011192381433147221343153772990503334891226279172700516056641815614786823378956103933395137174545657973721700405436492197983817169151509607794766718717061415249241966444136786982268953873649768543835504719514310698536633229442994263826033335918051691726360232892725461259183248815694951408749020348379233171814624181965300814875516120412196465575669500950172538378454829211313981011962892738149930578078085536447064420237310780040914632117897299165979195861953155193109512299268509296790500365841192808552862065475629372221070928269945348848270828357222746147579000601069602049241980524806575874808388063285192627388417213065026034005353382280351835027879181698722324700264249910672469020263586813594366268798648195148077980166530111713578782241368684798628571091928033770026279580367339082359711368293020060907712365673740476446321018445971075647160746945220430012933327270262128152861789101250337832553726600377240934360757332509353933673972803386179459229126352434979760733431317971603199526935967724349262078911774922863356688209363619262583217658761362458937890787418429595239259641465738081570078100141512370059828180576367919655734966821901748702285078725521451811013479246757629365376101838631087314455145407928633586702059110758885475594471238600525670310633532216531694145526057973811575595360020952282796081520253890301486392162430713805176912328490449187486251099485849735531193053957386456947542791443215914010322043417248223430590492555117044057855353999028480003389543467906873018750351208483320065306236523517665493055148551287360328669223813145452009844570618552030739824865989339066953665561301379267874518101319674698738610212612912233402116003328496464995362921795553013157173530161044171788967371023932963839864248358113321484393161433564868357577007034507251555952748878273654894412775695963955888958264914360624882705547161438376656964915308221672515424293623043959733310319548222521901042688524787232558778576039921612891979386447083834629987845550999833699837618303809233608129958073775833798212574956492726897459006190030486969728149566163895805029868021161874908565374657164170747940576053419531128151191695696618007499728722428143768363310608904524442262936508324721451076286998663207589687094461055008288113421532369569069392428433204801385950875616075051861965595089670503986352725727066746559546042186253117397275488533089831588543520854074183764657252654967646370079145088993463099221390817868348680744017691275649354060410185840038018598057458270712785452305765428330567285021981410035698305231264541012147866226564070169471999909662918358629791545010795839989927469064583963143759746819444440696781095261477689218400351507442656925394796320686118554181479682535789726451467273933255946534134535422056782886486381807885205749275319784315483924761427120242450287044072638284593839656614659479219366026602387177418207993562820323332363372852774493589710044361024392708083795644827139403836188339562311115041338875557836458535409099982360161070043626293210371523953860609575696364666359558838243111615731864225489876937589156396154499928671830704458465704467123122410874044727169985745026525803668608863852002453195144759612804993547508493328181765008948085004567324577265208780553922985188894577583673842113947546616226970634875055699118093022604331356225240913187930200693299193690310924841453714753810620951361942953843515840504769954887554202531595302617903993810644158187592139641022893646229641868148483724188132479091156923511348918400464812250642059600656213175994076310031424444560012157257538812561020751422535851254287597920729468277474275673093750896039467202275694883389259955128523788065932363232153899490542889455493328234693660158394895353719187891607492411801489102853981928412678596160706259339702179289452630289892419755890994581264313828991996328356785157561068100006451284015123034359734238343285795043216108963520706141182871711427432197048943188465092736445796682835082737522839963439578812708757872263293069259923331339134648091404056479047071613390706344747503449231248429278225021176099215454055024510658614852384811493866986828742494766702607238172658318112938304186463167927547104084509190291775620909804082931871902139887872989813312102159523892665444168338395124620758383285335832619726008485815387820761552323984752566736603476650622086817195431861782136483565862351566984865597817466208977128151259503671091508846750728605576574072036950175562804421600803598840429364597145437881230571844896839646526714436458975038956311273889249753463758235202020529970051803904237985266671742927657536053012846919186144218474398429416642606769513854953312528899140821088143921731061810997318390859419836514073423586940936311474520824126569495724380077845450232239174997770581937842120980294548123025678832426725677140332053596391445501263008877947548790056379624233512942798615168417381974007387256380605505188640313043751960879718568242057779951479835674943721696276086452429858293871687899033195530533640950882146231119432690234146393821906776887154187175050605494099337088357270870916544736405982486578897832834074220496209884965365294626208480619755011730895898404447516111250686321964322839774132977235982215531275232457303788621948592700913065283546075653392787323663359811265319712781771818969557173481401379897279326537190441462981838930108145518976525608509727436403861644530209421509975110197578466596907278081290563576461018661538680142069134299429783244894047406493647563171412790369269228371405043773313332994335207927506652332246510937886072328602821601264503050416834939220552149540400295155329931792810373557072732556736384675434127493325404179088865499012751410867413536853568562911858850580498599180825367612414553037890628923548992418627864444632623730021399082599564521314528881964960159860553958879496547339714676064519873837116115429914236885315986449869773958241482454037286288156097004900612005847304879992868053921712140259282790413040478442782379438939696236554820385498145364411318526523145736374205018254721145232434849969903509876138643491854372699500983303325311874339746577217538608677509141064472198777927686351284465873229555478734772781247681767569602779689213444721845598953317663208898079048408448856309322727245828639469735582117340800820786298784644675568517205910395882709900903986604142807620247202465704822481085425336009961357793175896299997491069865788380979330560341966984765764949586840197108534436444732802977115194563324746314022343352915947743500604614941829441453785054360462962883918637541203951727500513360789182303660242559001485101312327322648816264846836440611266963679621751419218182594515760609785086551419265778800501727627428438145980760921772780886750963250029896276413093989554800408556322976410560117543862505516232929411330443130518009461569015276002481142177664194376149698544918218623515838043833385999941862347277735646959903527368018317516674053784393764592137437842624594007185671885173901519141356358242915564639341898944052250622266639700595486048628783755153922434379991067666191218417730404695275769949812376820153290739362201193212514568234871451902268983856286447195130455216745078942332161061118417396966267804857090460259085909682847783003479957085225198028449938158978115275855853802703217387183916792685155999845306354018466429686185463988017570567631534040011992646101965751724899672313985395328163034941139410324754403132824307521356731170408895254800999488802729996832168428582148721391872849867974894802890014001341038283051403241610273960803336283609840884783052679520265543182791889737457164497284864922272523233518854936702661067516416886625382897992838250720120621351725329856226923787826101426498310595809625487531212874313397512536547087577364523682803529604665405019990086464293443188419958058769855716161699261402954757800609316494462342578497385636485213760843596769623279524213575560804488519588118673254682917358675610687122440496227820050482755097975385813753338776900954844313480178892687357993757976723563264014523661932042446833656579018999305812585925567277793569583348801593267165062131787469967720561201561386891467037219456273920411174768597050800841686660674665427877686300833226703152709740416556621774176531433910280095604490432946966253098560373716000018856483199117361362417828661436230934960559208895023932065018987850600943728862927159508663188535981255732596463608529925554039145812146554147066508501593265947785976936612893316076928421617424043086917779353849698390812399285991217576915790352497322400438034287788360445813112190440141942250688227317003866302080118678491723274216855870037679418970113289378909670088755559706272199755462765983030036932989382268282356416545798914547087438757614643044695449513479859481053775663231194587721980680493492494478414426008188596066137294860330823535956313019999028679923321446617671818397995340334359660529265335310470826593926766888390784770980296596321352249432863000716320469932660741097968291571749319783953774882992954670776691910591346909803925663786877890721588183683296184878471077078056949440098259990683507306673735024575259641797250679054743346666095799334711283724990467181821427848226878315228750532130426944959953855763998307241034241611507513638439464328313942777920763571709128963375165205786787213330287471110244634488320312590655045879400897881102764664416309430184358737420417506881188033408178713674583216273662602718054824387808718428402550056526862077845604071141024598135581535227599320184756915517190077663346432041885980297320095030296276585746224668115077054983462480380844153992003316111000915481891771909614369455247620748081543725510118713462876070655934070827436757615115742578879269826803887504048092148444105921143941448920250987174031059434943700123779411273755372487172788602480559089040717771294057266188814369866260483181218897790953928952164291104013661352049510138377836369330349925584336213189519127302779117555566812581567554912203106342084527552701373359931555800176229884191987518082313143708322632922567746692078081616146275460328974807630565872445614773720912469336334803603078743959055853423544537561369390481189432354574424454141581488305126687990423756180137621916964925641713440368461381042313458776349046735252597286680318480195239217940239425387476127403439374745940862856318136189390363852651636837238181996828616256696219505816323005693535353455151511058004226567263930130476256312657974822541021580010182261576729059890201815219462069363357634545327403879139825191974077994751046197684626915258813783127658179104485430232351825509373849432976631234404168539326111207696058735462239901628898700515709654524906747614566587660902829964954254739368003487835656503292065324959726484613605035152426829015339435715758821946454320839499524498799788953302550252854330810302694503407031697460656482259199712690973510679874806537579357095482718564095510414963786779763281173371392638986802445472079013341563928342969048747609752673659831086375944702153089561608288206716491788853674130689530511535810819607112812138674247676659626854487186785311630965075263933840060029458143163765321923099059331437698738995881533878673039959689278154775042355299759569684754026671620251553430843645146336610466691473579885401337252035955360223451679158033225198472997717312106328466982530651471618746286053346023059824260832510199590655708239808414724731697297531168762123457826616571912148796012962583948285030608670780161844614735560671044311662744937530333550690553808489817846477589020443035725578684716651635908312333085684385341238927088431665477915422369155248069025515030396566921603085409585013292619205313886242776255144599696959161168017363275816184081930512991317715044536827114773595816563486995324218596832175342908483976086332490634815483663965642205776505358294101718792009764084705096445343199669139520514246581683917855448825100199273138283228767941896579074328333039654288372146336093212372253812567827010243973381362027569889080221528659319437506447918725529954922732572351668420098415470981817793390151376688241999723129058192706622055344748755047041495543070010007385854715313247192950041953079553457946033943117089179442330359492987791785753570659665520071137717156228075561609463127480612771099424690056188030441954727352708414348741297176758551623318596139590849956199425182640181207035536809672094434972989868240331711319255830205278583526008160324375071118971951174858692609771303267723463034165339442960936330284651270643519518000741837336348204883937917479337824884472407566451052808034913363640354370108518071028805922364466264090555645077450822778072946094870312906496541472521078369212764986684427737465110963402657738354146217430367773298853790071712394980828328903479859512073697140680112625606974284374534786071213560025142392710882487692177382979078190955418138224886916103936521969949680300685931329961303935178942827912698889013355226572808031964485181411227761342437685427327091918891014569031363982434833469291778135894530075755498140143121029491785744144530180902233610362444262388979894765165337301163809569753168052157725307554679542578674517157553897715968142346236756903942663289937149926749469581937944728088038118232067652247976435467500733198043301661691398161093208711409047503805979165991787104733819729364159528854781207231027194394374261821577487955836137681065730178393752430417741519095826097768951804634874027829783466691956538029805621275261517372627271318077331525039504796121870995350167412372334391742777799287752134590156262390142252659416007952435749748885811962145010468698654180141573037482090145851912570081766612728501348249840300812851326799554279457219105865711136830192005904289914550464274687416867458792306408242549013261771644760591470546115317416213534987269549528437544488855519629583728057605571467320375758451772415114773454956829160011618061783105787381122513207684944022438351825543936746100729908398963661627129260650843194945932964451692867803243656869676084016081717923428797224773944949371356765386479346377728492725604699080277390721177611768018415994364868752891561154688596740979862818432733130053290349891662845894891348246501898150742820517707747351018734769676425108446999367816577647537686306696766034820531598493737924088146131350210466216961410534406170351815811423591701273631613857195874098847398486616971835159377798692477144871861950646030915297046743594838000706912030022484761745565309960930010843197230167006248996863765730674589983102568464249568915561636446501311911694429985285497189548757667848139714663328086894987638280826318442227255159893407354796793602035520068456715418873495662013399638660765472177049679141886580786000059295829922238379715916705111898516295127330319033096448925105203586382450482950611930977726505887679119118793949690767751714979216376033440346208698587262143163477713293740592162845906617239610215955612044255425655335468849965288168784479124596373950778432527915802926644117734204481504173874334249929763536721061867280391387207613330721603215947810762171411726357631623523180974319065972685462601743300271151595090631921280861122360937991653620120526767878872647090140745244587166201034383039996113392453759578141420024573615721692394940089406397929884924364542155674538938365933745172046855287021474950609354619547070088922002808070410029160400663115197770678184499688342393334751886836467827670195298211965260589600204058922051482087362983089028416610322431168875247545812347371639355486087763298743679929325932517229805648335771008494473312503436253803395376492541310728597197264375777402325205425735892759643509364686104511666606199325176416448189148225973942403903186610626156852305023117487957046236813685708131767581503513437065805128474361651755819506191824445874080953853257852728915393335751513925635836803169971244135556979651163340475286735958770646124602301329301058499806740947911334663331837282010892754068334164539535640062678950262403616330810179445814271600723715004684122238795002389423103492313514175473844217266032721343256079788145017686536844189673923667204588741583465255058755391856559280345526851364232018003474600363896142814331448714061676674175884016424673191023029422211418302809256951996630530144645986234116228587260192129792315609415283747631275309317788452276989792427236313686874826976142325249092804676080284566258241329263005354424589869663419656400581577339946206050439778847416164705810636928728150776472596233957831480010233875014911126110800424678920892332621390320618756209407822500859618822780472414026851738401605756674843253375486106608997465678101630134478910586900388971733384043056020264629327794826252599356625711985131215404654175555545843501770284655410982126814183437789239612892347485371445983163611376043840186394417480806518452023378872635508128196756381874184883256389860044318999192297769528419937392473620741501421717054904257984866530957907183674717842347447348610233459890933011139990716764928397022699852476509756376099666380561897989689298311501971361375682181365547658902925502345215704980567689193361437215208312189092066097906065291770266933335090148717890650800196981939514067404932142223257209829154209780422254229067581229753229316104633428677790505871320858354353115308865432219078049980407121492951492362610691996027064574761833974681263628691051424320747253420267833148134572325993215575378994590634756078703772790397503124187259055130541704468849159671336483054751366584922644417925603999944298079269989681672762535057984109384253821738999569842162099511184319413407433391646742868361287409106769790560248627409118804167802832484569767897124769986786486571398782929630192679234465948758651149421555758596914762281752104797257108616232883380506338770145858222345804675848932447620115520159874975033578825173344738419010097096260378689037530854436019426785860289510811482928757089371353963505805437861339923499736500735417315470778360715501884615687832869236798875268287414119765940231290370602234079375235827354387222191809468837130042464484189234157754466207884824820513800083747804851446949825623929467679965639478077529584534684826874223460375479998072163403655499597688307662100582140899172408342141497313287654239199374234704283510474371737730228589767501391230193956554119832892470127647681732773634500490537172857744687611162334922631464422522557645643570855348895908968506576935552341084402501443316627645931571283310003812259068636133419507587427551961750801708695767833780238479021779635579400481357825754923074760077847524527479937938688984128711844503370590879825612509260119628222137102569743440476979683172465254255556943999387220239128777842847896928544997001326034529421596650426765573420100843493242956802456413758674180049247170113983502551847694483144138929813937608087318408983297083366088739480441960509544477782496598479690795200725223080199650264938602785557225863143220048161275047479613264270926031729010177950225908470443052812084934082949697951088491706481229015278029608644607914065518139185681551448120012750604035763969178013451575791780153675152084581664537928188017887003908724385342787964418793789202209379634000504558129334424706847230103897145589810236689053404372162105238492319591694484467648358169328750762497791950275962589032086975580999862161221079310377062910783078862709892926079108531618190739443859063616702952509807447201346941135755047516279999026365652828653412099105008963801492521705442902282519716889349773274191041592747122974947296881632742273827981806812025957860205225126301285522811204165712150423268028381826206588588503923341929738525704812532559358703665086864786149659282313829310840537902059679238265198666805260397788672019896047242503935416786806678696708260565686539180247814910998092279137890693807867905521446569069485102328239181810085247102975221787772745405861602356898288260155292787655759196755693676200200869859937610699651506992256330327840436747613194764407524053940173671449523805880795804970779548225838297003511601776559585196707674714524979343848933772488994935848798112887619049610039790681653483318116158213420686704475474178172254740228046985748703486623481539817707331007780543035906723169698752101181053544353608261819157840882244234118539832651730405925744001386090852940307941017154849667896312933654387320251546123190582922720648770830691674148483624750490132416181589787614704348297490430451035775949222815333619894209638174385968951276747450669259972297116293893923987146113656988386992163220813374669447059359640861980851554207749824053479280366636396729061378730308181885308628313878830351456925337675597437502252462923617561659480880156890039680906520556436844717079015412842033753515868022573355412908096627936587727406193292384053715533251288410796766206360977874104806865420737635530460613480509521302907792549496491764058829904627800544863904361505924178404525719974970538045777504530755208173199554986275821008582827440903010445583618497990689175079204110142377224712140100053378436997094650155668007193396813227248387660745774796041135300827968161427294932047288747059462038369228219223375379846765737741724921600349702929313754040174856792606456338758203039566409663274348029098227762184729407128848328362924532929664799776169153780587879100622623215863499411199522950433539595225720015332221297022489426799205598931905058788565288636022790768683994380139784946697049183588255132251132845893837990230953571947532863701863930667416703413114188318807645188841715634294860970321647070261894527598402873683565096715823614772535097243381941858375355637758349963082063567369688426701443880734055070343764949136338108097533247813670876536208218834220622461457801882456508184906943764738469063110429526490502517270741103777225523333514389336134339955847959804812602904567413976103286401971774782669371865971336446078562907570730623264258366450261666230457077700411920065175881651363905210585959533542189229260144212183185236852970264423088884099991812711448620685024459367958269235099472844009216714923959333589696102997361606031529346745123558215368783976326270152518979248314176970170545987678792820505134707169512371764914036224531897585330723843626486875225541088780085095212589169451401846462374871582891509010611959124431109309231863014187946075163199959397827533239172584557966846165535392627513815947049452352779354590485869792516717885237701540220436626264202856758511725438530151794284215176627690377918745458589679384984094284731427075703639949064603025695465841665193143602474439709652546012185273501743298583509057761332139427473315201195443477898759466575995732667833270081049997456218977642017378404109831930898202213019428158235673691938693770938430779406693402080520764539245342177067257387946508580804164187325560026493500804065965533536961296536034850934645085912222332910291430904539072770580479257182853918595129623958209227000785641892419830054603264916450812696605034280387883814144439252118397789916812525978276171642024819111407515969955010801284990078759867025814205706241888716853746744878602923601482483690361183261676998307256121036316212777861038502352865427946282158342659115022990655342416255973262941407159535848982133817585815600807374323424742292065876147175811853828685891486926921363873423078817304016049182999229738422248979697415743641685903038120936634027845878391766956234951183578827241242662130538231163482431803087644411127307682619808622138350628346132781118780804406990893048533959675869384984784936965909851460214216506807928523524390342516665569157286128530811067571298119339881132406515463691308646957157529858886920050608868952898225577937962181308222628402158014129432639777094329439399380486865408254839110637117295479243106857276192437055826359869448302997558686182957372423214847231564979162780782485100754765087622988977772031166949882764595547746287735474271522081080329958546931867064007600510528262661533068498877042830403189268848372354152197649100099467875763953598347980582476696224998532981576101454832502835932232892569251891908239693457197433373588806128776100613357546129525003099957798912713122624406082228688771221861744517329118250936700418043382179594430580649974779250843000982660759369676636033540041317642355323948986842397482279465415274460638994640419042708843266579909207934709867570487690869052659795478658025753771308283467489239303905790912547059093370433642002949853561188008312811745706532004232414917602407538031983050548220206930724033856797259260405636172344641332334460285896906477895737805493689836422498908512038756451881176882000005032611756006842158033498637572956121019424795388252051167636226390320930747718457568354192397090648175610875416006237351168836015055500712776214039135043671110483445385100729062002484351083819151871510922711225626348353161534009143702305729130441179312098629922844804595198534901824269564630571787869249101859754237095174222446443092649170799110548343748387235598514700335679509675562745190726970564548202733029872132631752053495266815258490244336329518207116457248328450505865781393147267164455871613222181530978599439874159631925897959912372633655958326922570672158726336737303451896406422836873983198284828691506873477111761731143698532637206434152738497241212147049539570666384142029476471696879057163666414442424869010008147894618554552325562307809399804217360715364789735258838184373220419782496699358227715880251748581257095590848549106826472647414541425344150416191079077964128661430335290505701754623496647546357503380136819804685703459033710270836311142858415309398422220916429032827882430414114286207103467773443250906409033443825832611309261644517400174434356132684244458137765873315868467414688991637971578875133955042645317610050691338543058127457361279951403925563822365431170717375080951333966309887185828045638353095615262094728717333253278490761567938954949560512342753552278577646249241136664182192304935789866812659292668509596615453841315627110743340853921256853838978429552532020986076833928695212778074581094810764506685142325991971537369059217673595600038836911792338790147362355742384533688803494829301452485238325500860222876264792543533563998727999442857283995837496360844570604688778242273963555358047076829120734415516355412561685815053896232446990821993488719573072893905644246678173685211412856537064929538234678309740213545934374778364264996256344693914063891995447906229870321133634175557971617628476916941706807043344369535468190501444911368668446024344761186640364279778154907870416243871890911697123437980644374577308679784633017900935609871897527291172374195902730452804896300229750934332187851294586558317383213209350535013823383998792491526025678467306071042398720172714101676000665907430198825558948099183723084321817799573121399100756437539075721607037611977552025503808817890194581760917782853680320441139974163419640200528109402096312372268383749789670615504883035555499631724712117931206622588807573477188108934426192700893416423928974897343823417976480487186289130792581040115926921079741540118792933954771232559416644566005787026913384795616600901720650648952704087231211788213845930874733441359577531283624187313707873241081765391329604320102185966453645213213998256874057534502830860961645427941682422259840533539881865619989587373549117592177642440414591050628487312021556828532309122798668571557354202977580483408994689036985411670084775015788850568386816352556044063278149182303134850342693966051803897802263833950186408371103872271539090633792270541946224135366451704510276078715349399506138232839801679415239004789222234183975680454581353513661498809583744278904629171828721039415594848617198803737440863709978641469672374735699476824827086208915636991595846793773443043209666409191071506273816328545311883812079788874300204118781661266416572164918678049609627016175706141037592191627624898342661330076541537538709046117084600702146340423149127140806337143337144736028304688815860900165119703210473880711548819426470230366227819078466001706430634363182768457048721944028786341836728736948975039179591745829441614168938861753567396994031095704712032184199337882276445263195863106112021685550344760763091770142547094380662444769098460806593048387481868782362383033228569739649228595789128547386999495317944549961454940903917546915464419293454442529302055466603806472982711593957649979043578322288714024117420719905815349191101765046860912091632456102954635095050420612141576538537672731855618095745027408127329870477073104584416470508018058709902249716989846880252058696056655749631086279025474141063602521288690734471115979607870310967675762075345150810606671102903434190909792826028531094710741601801598159965910960401002949958132597970192729904465074394283794965371256862948665598926896115919814969170242018930724271732073872303292327081703141095235103001460353681285160557509130442562394528497921726542247968423293985399368648764244504984871896281507232600272895226378151074725807255732482736408697403216578396741402139553821272715782253905677739942467741929595013127812945219527255634026763748358999583876653848762509268533243460314224086900732321283235783374868500664635620062875811918130798399031689775145963148319683460730141969982925191252821973063439193023215235185847633213199097435813699725542734805124469137122589848421178840912855900743258270299977734769661102053050142896020747304720223114283003806562859132262931958909023381346454928892242547750550579838334896697282392321888552913780288011573071693342453249700148921539459233665278262152207959598935181357781622712918670890453729915141746981828871270377000989759290308311078032291812119065885855460086938423301248484127197946908779263820550805791207707543893919594263726092493202142067658946840888753965886293581755848544206769667806093412149522582384027805502992225605533883347984621201394326943830237886895380688785748810335920368687882732715348413643118613997470488559942712728854690137685284080419443945416174586641998691905044210855341076932725439854892491000036958154232589830856187569855317403869388900576431174624891382187063350628415798156863065313933279590272051919541325048317006933401544243238791954752442928863159183457640885916114537766485590471721373533393470354804827558325642164058249502672435362505479050706004687972189591474072258173021261328975504367576443537809217536529388963543242407002792089604368206735161635253854131809835167483653489045218453769313528327225355954914570694233243074046239327387892677287907580381761099931723195513231655583368339627364965761921316658871433100744035680563995857785319126218047851843046022865363479995122474482328199372747616808392105230029644127568717153612909558789576076069544796942899589172075378564693276888008590625845138622815841799040564329588504326491413177235737453576438687349815034172783377686535350098192489750998310753109930347081531734414251910138950715166889388114650209995935002171998179554734238231949469761429302554885558514844933671687080065965680850847493525062235469245950734785433128744045711231274214343960402363708465853920387206562756542771642423699595445936332463777065162923026064882490910658834982431226855664135122387561162125488330872596733945746174205623961971880273585207989423007235812438884059003633810110432085523525258663351862623890494492718243660343247035132784050015846053985424069300132729442903117885679195431568176480022942729949960502300025627709840792097149980326153672808913149952492462764538560006069856653538068658577726558281653771708322193341746957521877778015408862289088048357880061442010365554029105746742672164639913006000684949897883121981713412819650031240412711034621534857450447979906577761671150340758767450076501160918319341854546494403307625995582106009712499067523134538135655025868048492903839793357771246151830905708367270401678286885488712871921490276467150912727292284717739491581033484381684111689769808154488098989970573466490032970805845888749224486202697697934572846713326218937545541861452581577035812644970896556656071501300573685893576424225683345446966081293942772238879281651783049738550354287847370094324070785325789712401499831801162668051228043961979246171750404165825004714339246897474083588136123121710445895323312377082949114794506791639796334361063008744972786851525671308178249967676138819208464405245118536931672078636307463792515612329655585773355738819970725396316137381899460466176064996816917571669856119026566252804014607059650183601849112115467655706077975140167628209817287651113595017544593774436108761384608921543569871437150339947588620133459819867512144890190323479300901295247961294678696021480486968320279276419383430099772983963780850463363312834081245575278131219886628140818596692324619129213230151097852679462488675860271708756757291886194587671377047902860006459007015757323315888842059773417669477582253234253822365543935617044995075728783796892224722739209510235850422022624349489091566145255328803596607441405984894847550123129068103692976354862685460194956490446042680679117846302973437079827385412323320218592249930974481205962136105080804492955467748697028722557114762053548701709798810727814890649829688307670913156613530282668187646263424445605859076511443550263029441524886135487840508721110056572601249210092994817241083659581643136164399908298296349045593142219661221187211234293094747707857616817200792055187888175580963167605558650644727820164436974645406942088721961129454666803364050370280064478251377384298769359019980013096750932334454920616328422673037044399065671629706116141906740658602272081918058429722902317421534066331176664880249659604105220498295117405857774948446741116731006203334190082747670178019528618319987983482206620728487194043313419262915281054986702949143631332001208549192437625187628744662876069296170449241647681313688779945817052837187234983912162265473142522734037542633056886499270271529868926862850171352501654806889901217712816854854444855816110603532525781954744442233427680988958873055234672080514940754750176071220485161321619424364914633237510175288326589620961371023265373262207479280636334057898734339699641371358771788180040000059489367718040974942788736764204526218289160147102165275733965674742235716649412336305071479339185144127793251082539637883399832324483400357598502403996157486626854330650668895610290233457767534073139748328736124451737549824928220722803417832064637416725033806935336939632683764877908938171311173453939037805789953507039797194345707472676417010830963739042477214776609316641357854019676128783909862195858471031000613335359168186177031566127408481006031626852955718845476340339454497496135016485882249070412414090444980456905692956876323794182728701277150606137832259802395642796936968820960676035989653901515808035937598361171796595025668288998733556175619429019078678170871829968305629824710313478646978464209130787971533153414081914317501794229894339941829548293901568214786499469999508435951513189199201479162257209836352475021281122486446869010248053837552920732588306095299642180567083667260051683326623217179509476299118115659806920035062651345879494997076773649375646192890021424425598473769695904034068097236082115895865606690519705968446062378217065176529036305804089211717353915109256606663335585368834082980415069230275236483767112854118674512959865405946538908377930284184707444963661824274364840742391600836296488809934649788147814629322594994233527105003983541784178690130660543304634847487413044134372506897200431198942797235667412549427660730529885979101075005623837005119477660308119744966617350132562474945303778233450570960205301657828177067941297390617853597532927338878595376959567883121060894118125104925517324395286497224621261383135729023819207312616623267771677627507626210655391351154885881596979396343083163412774832704791828384324885062013010523905168365528835172532089800556702610981472126475302655307859368583284241221993179341454664699942270943014573783604449591311480937120776271840675138374924706147050654062694571098144171294977482732360638479415846683238037095532363996388586939412183749298389608990063400274670559044718997680697614639785061613455942992341531746390587190462626057360969004145320387623436903878791997593977247716273289498592114514976769643518158272885048160666453869053210087603634084202680328254665700332821628801432900643175127130737634592337690615253114449956615448085880113435795531523435002857674198399844024325036578232322124331870383986832839822756680619954369910177074618962151518713105356037979341669419405876565100387629231329885917913852077279049640352520092429991542220375797762750440608693555132222492402439778916100664000960295690484537382193945329351379573936829156958709230904927293033396119912924093452168989115099795578180083692351883779326089608276995358808916513713238410394910103300774548548845281800411154489107576973856110278196603573168622090591578892393247548632607052820303555700667713902953504533233418718483997593101008067755909330368956686061781274253588104735737178542449626330225857863090824875365726430322948158794886889613236501973924095017947543714937272988482768922024468121447790688806104346781242389435929400133239048843103395841515805863033893181991418613160767941411066014578276669587070411739478306328043191035845558057061544627633805444546893846547669321214454473056259409722755094029778975016504633297355287254856889210534995192719233551655315798051343737913303777094408368401271116503600491521875169377547705779193927793979127335630336008973746757460365456902118412251588848437550098671711770471380447187739659084531971110603011735809638222640950639256003445243552330656175039984208387373614321902249479006576793565084318364374920883538720058362191378930043022292628997424427607174550301162901883029429287511550830459692396754994480240649243969610883651928790587238245000907271102282149450685119214773428300967892161078658647891068066670561547536851326858092046452428828507673236348503732858845012452770205740434311349495014475741960854563756627831819141138785718140253985835537428587142843586600202604511439551235105705852830633249475423639214880593020353933346712838671059406981170300555145767356108139225180820320727291252988064607054508187052292131517510656289546033615317817646388432067886654109612756853515659654886080837604729746633596661962368067935998709588829115977353478500656073234683711845302469584133072860442057342064536484522426938231864696944607854985035565748726191875275000733445806613636581009874583519976142310639236131271705378095910455674309603330986644378126341192632757610355107598921009200608716928771666185812143961084960947554014661815702032666727149374768223441606237293290480740271007415012271263281384775790455561318252473290997308633072580866359161614064067826320613202112334637339265113271149591831523070046122658428111584904617515248946837271668683799787227051330459913090765428870290679976440170841106385777978387263853599616774602869946789234908152462435510444353031101950455724702907892202770151754705677189559068126757312687513622315218974152225944981150412799650403634580483583863412860691517735640405499684072650643163626927611533539716309423792606972715066685361843726268405312209839314142883708465175129637669835622674844525998204030625805953570538107637368839102880805613299235052809065440104937571005922133033648053863588995109210714107513563290053188480780557900889795502125192684869525683856586964572547447297466595058528264041322379814513391953227634988717057839383015316178300617438813219404535765638406199162947125251564915126473754557777149772148120018610741234094803857697477456007964093995710043062758181102877128716371905229917406507844530909141082598941077071700226809412814226743952497972983935598503239718811288969725366112352283632630582110343396993838528754676573606404900366056280547006360020497334964900862550417328851900647641270210740746281726372304171481328025786613214670894635509121597293918233173527397575706208579602049237538168944853577322228256701000564009655019058867634500321203235573371065791018442485496128436068664872904627066051632828310050673545204793363938912525540349268386749730239616478035365035022134728915361983786536898328728602683546570308057242084288349209710668762560659481921452102613063185682444493400770768153501726137469839655474150032341506123508195193043901054166545709821566601533141737283572721165023996911360503708068198775822770758635861041677043786139971366028267484576151570492420860822252533598388698544117575675927804470906952197024311453164050460832509516360220008382655641444566688515730540954112585807668409953078701706397843736242755599917946105351993959172294773907147443328771149943921043189732174673209415251899904504063098785424490076505873072972167215374558488814532700206426138227452767216234583930722573418350564799349146363258843102614137296893067003689749851375718228260788798397574102156426385325537185901870677397288783665040764632608181049471802915431317156155739502232674834765178240579349070978316275562072091343933195654177100711047829643152972992339992526966703610668867430715669781615622234407346643472917675048049852026303901967959729422487586047394769322860928067512734223249552968983586142749527279650859396437421701770692753395018290259829246385860493918189111073376678761214474716245696097075211602454555871792574634327056145986109676781751364738401252700696475662253061779018422788171173475497950679325415266443419227807901049584137221290287989213392775007225269512585288261102910103169043549650049158391992317535937689353943833762221985394757200094187871270419506415261737979825775496572639007948942231233412756464198268366011950611713800470210056113588093169654785349969252188438453085750097717407707129173550957114367814644640225294682673944720023969878360923146510771496409250684462307386008068084989322547497888956580194704491197668072132414676410464079665431593284529785431056937734173330660077354811459058989393524849851074010574856976672200749239590397122328784591266417384871955403037698955697392559851551791389659672118761896578370464456222278773005287512239451438290153141966240909437495642637136177706285227312382101950881259174307635084204160277372058547686908003325090609277158352502792776802948816540570210561355701009857263395005415794128418913420311118151392642691091822496796498126540685567191825114082903990558437622709819394482349789455649224611920660151233893252951726865263296946226172968276939109276464880631313614943481470763912935469270164050833300356656107393850031977728197738904113229831675333815287038166499702748535325188171176568206129464104173674404563926135434100517329988724195919200757743214809239915524211885224254798267269962110807357363700757828442139294854273658149790287265352588656625203203474006967677559976130796758914828835070188290468459702956034415489340834378872932684881327386194171203307190527341481951308873361540573783918132484137984241728918701315802534230154892500772533976883417094390010651541337142984019080904832327675078281368204583573604532399342310737184045538408296877335444236787458053958296497466488422537115812585958428017274776778734607383699108408222454892460725804359844861172097244175720449823565870512650158906788888487393309273002272747451893034783100184321410064348273681216638492171364141110232491931572374304207131173656722515897675089392073074776176049121618929740158150492462474390505927207144425874073251010395049342947380821967156563361788113082106298556890944643067745825347167086843279282873905502336517412095766560699573043197350597062073924421388567620937252609184202775105094999148201205342646092634723076607794992251297204077323781230257679389064516120959906742415692940672070533116881707823893113567355798676118017838586358252123304668090395393833607754466181599222758973974013028305906840689357730955657431733318255434073236685434075490354895227467147570766874584706215241983914760861915780678644358404343744718276547825634591054026613370832843701775612757510399477570116785290613516220592397500741370586231169205914339922260824999931360494528257431199166727263145595762844706957456927743457351386695381138374724657949559798034458004199523326711407873383185569509192550815996802282447966718372546379976929790032806303824588028357311281021879493424810668072332811474824731631986288478193179476455779240018947382356560074530249491535375722903663852185810891892921437009519296854894988991346341857813725330079286099741983462897161807280200062888916029617354242241779589460753506480704247033808613453451380039559694980896648853716391039353890056511573688746687582019656087591997461053993861881940844627606851659779355916804623462942780333708757725571989728388955812970312891677560048902831752812209537549096236704144493162249410948143011368881280726357639731665202915974024729541670683391104085732915803805646902601964831586553237332743150246497561344336500331573878631655866772829217773684058442730613069933694223765027141019995618292378943250349445671346768795262000170028443690514449527950233827527649926741061524723011542472483868875779487435356455396196913273910829828512266106591866468623140584716207546972271144615665297176092362002184035538555380665875491079807437362046854673574740149800494886136907972138579442257288316480936669975481901447204446291183621167224036106331751455962637492377415746775797234464110009195604588654581284228001084295943177313784233925079094437732340772417062938388728893692679608280500315712360482119642746308561497614695773728751281975178645440126658102095996991962174157210157790542892163892751040090943684053985987878188574882263888632224909265986316882018043081964970850099127058444376719945020983535464394632505364588875567927717056264493139655276588714968955475839492501163569034703645448599507095224848884453462271869744030548860785771192943676555892773335693304871301439791402930608937070225114230191643859481226207219675632427505228210420207053105483493317500593226041951905966206642215710045962827984918476560784984307834021143130702593169574185756957248159453840522683712258345373695901908726769678279077524302884675164899532975443168819492753808375169912189010194922159716080416495369305642550278410974669545863595746704850149094007827315774029177241653372014859352522470925601910736211211443058835185322398012448914890368111267893727711524116134257655875230260748370258212547895359309715379966380118048090822123062541274155961921730042911749175366098205545945773095085541418720080106869060185599563538927253825306760255918122984437500296136318216676210031363139662835947431985970986757122335905080887621187810257173495796050724155533772213302409198645055110395983833954138012969830297227343870036902235280123044045924192897470390137259804871555840276941776210791460351227304776489444671766498591140509881209279059993945842218390775438645235773199280538405522227619621183403101845164787462462762945099107609582631331081141101839214395558089208452064336813744509825676722651259579013519140645369710628183205306760488498317241103210428606020884603575584117115193472055967094908862141981540572985275372195304857468546475710820668752814455675284309806821164143241571706533859991418933307596034156599031213492522231892907001847799378778578181267263820160101064865681308691708646186159151277069740789459818596618573708096117584194024613813850954492804091931040853542214811452847596319241704368391429145629211368242260502070246012922205557780863906710309935317258011566558582096672449147385581218751369245929700083380439775731941669131776721226666876232012206374649623113451219336267415188129955932377828011616907138861706626285604995376174228067026401131665645548238897817486663638135425173039617568047575802815306133181226841916833777685908244776656361700565389791715925145211230970911780136974546621111486790460524707262957625694432458425828008415888359311470971832609035323567963573466098122769390011724339812432878997577546857642344854675146950547162566507824968533098053248378516131725794847561001394529344870890111538441992436552107818007111808222697163277689331746318089917357833461819808362629618562087744849914658326705650065710524987396016362185857958963265036307371104751424636657500845603632711726566658740820675058573143991258735296032866962878153150331434522252900935330867944678734972447616307199276287187030295714628882616722508218675818577166472407374463082470640403997956946646671808183942129565668938857959243514604915752891919343175678838523627727781632853249337614901829293745542266039361022446209586504458374773602025111483132855495817036560729553891754723345117267493978509060467014490208330722198370105791289508626701980127383390381263677485962738795766897703211475821795330649265689516622862095639984235170944824056769875025908172395275839223785629650362881626517354630960506372870970616923726784315774752888897768048867000577261495996391058095924025873968230200982773030761553232745004958517405633227011811643652214802561243374452144259529860083416648433378496181333924848327897090812199226920693399028093399718176240664522309597090245830941490387349726487950977022756880325447424171215959621956805047961412869039001289574432555584297077843469588998432511912398532741843748386888256840849820421071044321762422405313121446138629557110569718263440148524699046747112974842429186729135689044005992205291266136730518824245192247737533059916786439030927486542958571396004616220629460800318665181428345978374780134879655139531444016309529918549153154419824092413113884862827320139340321346413652632396685412795554826247484923660903772445268161523629389212378642538015959394313069033950932889203413713859868888871991239523580288885497836766350282489074707308235893567055131717428506673977757092213157619403639047885666151743883333138362918355700596752251803948106248726792986635539599208950134576782049401307071337535020265451723533442240358853305284794060732363065983270175382901209934845085295813881959036412865863868857629745010909333147897378902322388653881046123385102457124620503049293438667343365607237487089781300882321414827368899053167303207250846899760544894315615259638308035374363827585324789058038081779917880560282556666634835970199395776562567985151090589625034370602929593602222762704664581124891736658336746933202812345624676211980967966468510890348684726755455242426795922998708669506609726638918449681153727858758605006216941672483145093844272187016552656372879854607642527985810079664025621491804696477410801697174789586949314872992459827602443081359001783263754584490428621675799788848078178430916143629348226597398782639170538059594895739975656938111988751405898722978484469406172520911955243228050245809925209650072360599929821803575570563659715238074233174825398586234772485702155616760796262548304441227289139285592369117955915683540552346840351663654315987230202910231397736721296334229199281744880701005709017825929728580420396037318584440239258574981790735950838125229193245943789654705336443943905651691444622515207061665607673137966045227845462345457880902946310858524704552092461127368184540083370357300715040154051078775912343170559819922974989309253030272128307227366498528940589980161011387749842236158616202375790712778704132854678127007336896843953431822505118086467600444466187721990452367097630989206153999556294990244964432409042988837865694986163663556531881954379854562890687320792073296460155359854036351172903632831361182725360750399408735348010535566823288358806895788490597547741100256230666219377515811542806088380149437939448862483363482092391068091680792678708958772152839090093213391449479752035792133136102111544064047945734612295595902950220481771144540981378271683927573362973696777789993324586765632184713192491826928391784168189155845474068987356941655718437186981891052097488908232301205391931741801631429318401398436449572058366930225527620333624180755886933669105408163875779388450221495571093537279205714768166493706739287212413581121762680652381686281335429385743297850626534419097649653363964308593924168179449592166731074909685908599575167319116045253640508556358123075074689611186449605136178586457075403408982259557410291209189329897625737584949775848732846571506210000918369737819918847537819456718970030917784113130855515864200823215818831023783886717774626090296386148601863910154197343688787219393300749851419133222149169518107352481979766109066682361538368852984005718704072644452222791961205518886395498161795994986811674501540099713499102358245528205074247982078885706923567102881113048358555625082277734235039698769908187525239470558665230525142321765819152883787401378668470736314415294490267397965897776969194146677395639678894090281550195688753122920445060541784152655706355267031004284589791528425320878249200517064910572319879085069162231033630436089491496443162210619345399672268926308844507033678525285497948118338323714501333566074616994714302886345997392101684605747406917773606920330647511605148217473259952479341171364092856906783935219882348145490874911262886610718426524689366310400878581029291296654913666320195774191238795785726701993010556609212413609379960789605171067459240643433994080654024542542411654669604214809599860160778056625978466793178297779342816857505639164325087353868978017051685191629687834127573596250644420311642205782978669403845630921922195872646941519935954682405790337541209950049569050409264633187285067163987950766560572802168395308149413634660878178147932803296735253356489232085556959929665026226996511935146814580862559478348027943097551973353681738345203354456982502969458715655419920501267312088829993545582732376191183716850381263534824151600016767944669752185906713895265378150761222410573255845206041488988753545258782271233606900826670775440189341939551258579057437431274355524326550831363426982198656566324460795101016310983801000413575166967219124374538166863511105907628807570039210425814380106868731352772101890800775891988670657402044250833240450970511485007324128923589085389740196559884264575879050391568592432961677700953279476718469534154099702385934236817470868229948839332305407180981383387006417145630127097461780091297118465189565056350718145227783698458610728308644134736122036550242867129933349223889125865117977848726740005987517887717636653805589112290577367902699173772077566079644053593274094646122148411002570823313306515452975654243199331318741725386360305488456601563201250827947026895152184545240748456990981403723866422939099251480942396660606314910261508438719421911982132002475025505820868662421949302382733000023264443855459007404321292095551377997431177044895712479473302512246274432441331365430851949056146424749508113984642192234211318686551085150307169667288992267130176204181551390005383527210263375428987455841535376242229965172010325369006768608943196041464765765042280619116483192721683814866629826497057748454229460838619266572005236887214727977805066095342997563175624213231811538140214524719668166241716592003604977457310601168889917114160386050127762140573194320707259411155313504765650291142344367897234267154658479393359890648562363056296027021345533298595666573644511876847540677130784823489640184832312947615319470035644384592912207302719785988812465748804713090825291356365071381563668284434807937429400425852374341909608337783367727312523678152625346549239090207389233638825523146950157238113885787422542084404602529076016817876169475909618453067526754110743624727259919534824007010990319458568127628199200002029683163742992500871149389717352680493817466597323890422043051928135674219552491090290689211239978482004598501833653308867154582172261017384614783386377806045518188329902589113485714411529774912982356682316278031463624755460388789949851268181934752000747875625772485801575512654980436573843920348167289184536220503891000005843356251843150437410467036902507341938121184997137115671367755846826493705937730606906115995744439714470337069321116618208801934215991424489453117896370958348865201989993302233582967212669270723151485851738740551274019992272851780836276128508896350067335857282857450871721913941094246520611028757156265013151767947705201564346564692691634087442993026181700166475895214323343052805365763067790983610017523966329194766663139212571433165781110083088270364324800595314557605849796515554043184765504674280279592059373601537124248231034320630874540876762290950946546734006679684692212610855988825128701893314040714466754347175820960004883253337794483717815274277158324828320648752981071454132279592244608061936553818299472788808340158957747167435573556857011519110735208147453647212663039638724936077594977416844561202853592520571568033128075098535948845210852979998820345235224008467518802916116874970447286640986389829397341634158786079486670971878504226979779059000381607290051813344738136936024779789460831770130127651996282964825719971943624430561159465422050372109273303515248522790051590526689997687226823649125718098513144441508823296421895142915292975655027283495556342856326643642127013109990712111392049654731851545935187176013790356175013677827999510471458323398827573842556089131797232458539727078466468470364353291265181208444259206696300455913824902790274257211735436329405881195165693139278284780626053031677549081336178155165077971082518388845188205106094649085151956686720068606141845949668340481343215055152761708220817463069347157340362529769096583870742737566991620281842785530691705893911035608405853474882123651145996386375319221284064576558608417656405581153554863069438451031295663583503138420885893622300334090745731351531761046721310572994439173812042128984061290976747808495764901040622178939255898113373455085710693338095115216330883438484976052671566866572034178299643617696155626809905963378519379445773311599226331646024768231320790997968534096477980724051563753057027734756923078525818806886362310454723220403014227362172223572863551379412894860834730125823352888966624251515295895763029691513514543404766622127724842837442140032539051921128360494574269947209294546397767286234629040188795091545578377441224565275052855297132116143745882867491499654583767347020875895021961979361209915950800625674773394277905406298917969179744113254676503557070512976191998076606797049498389848969643790329945159206136520209587503823916984215094123618787166472146142317913228766218027447847599307126536775601514894894856941062872497167102699792746162542476363994012919359967341496648037883080092061698429597180413763807716870521064085050072645531689171056621932288090555715890914029015548904207340628389707461346269578255444698447427478153550240792687562711063061507355020835139370702923909400255746098248842595384949544995360959098163322866643543549282649040447549219679477072711877987400667523773110089566673489942729759401626144349110271167445052925561244422176006190713468570173233553713062473214837248563024685322599914094766658333924579544400047255095969693704000312989891787432751232322840038358988404757671441204957704165355744457204007772365562865567640098479747059553947744035265337339586854697819185702709861369995174039113716525947325461396930818736257031985436037685234193356735091625600996389795053396577035343477916186564647092080871539390098613882800158581053231630173285832660668057684932440542859530839839989987130000558481954444250164608273726033692216606084414761194843169007222504787426980251017018700397804892270780061022976182484567668217346130818698383379489319103567037477469826228496016665004219496502005115056224396290131906440912927731744824190549356619356830045228247167956828052672454326714172643839484731651209113946121159273485420262210354848532643627793496057152325885745818624151851365161103639358252520556548621923789791340199674425236797735848432840414898309080908253648763291935351381704850589080840840967917024973999870850472481916126702935724144904548558504350633063655634464027477055722799299396911170437002215823366273726867192573572074311790532407661641061182053582107861100227142486390674773450093153510398907403341572071552183474421223574436672931875553960541396383572788982077225464984221506037058474566751699006115388126376717163692628578588229342581239502644041005227426204366216725683021566083813980795923304817841899006216844324543227357169436641177735902055444274583874307214737187420616603979814518933936330836717866460083225693163195257077185311079134229056646064546680847032053231023209812954420144999931236321515967842821746621384582270292353261594748724422613374148271059887206405718469245864147540853370028191131007113272733009189163266047112000850202808424416573856908580770294487727756853610494096890266947606220809791629803535796672209907877070970820997568977134520043572883787293034905647216178658102549607887522229629046639876706405097610879592084603662628002274480357712686781138540619381128507089087786170999833448433135645380236221061779189016819768493984249073876994421012761200694437611692352361333800138308318232643577387811456890290123193028824753188834788836392385106106701807394242025153981374413824715892895091004839077943835146258507819418284149755285890498805045828619393648651643273965443930958466694931461757893921460173329532613498394694369397201403004162497373499695819017619629795921765106827030130985759510436113064788132517577010764953388242362093760782669332408637525978784171813305022092314728419208301651077069859133483378714370745302458515076988389803845890411451143227416834855811338375789503621151282232171381199434067264148928121676259874560113562895653708362399801654114906684509608998244573525552977261935253481942889498796731245783164416060626629428116302172252232759157938717846949307697036642233726996700631146397764115054377587792017747989727974113335317898296978579639620477466817881326470042533932369870491223838997625551403645935293790071333549230181779538048049431541818966031014805853066096781309560328884559717623289473818179687737130780056467964537792687133417690139999222431734278654469913601157755449429857307646058869325249463602271894904371838889626999320463695342465908167799602341688253489144660466175568507357015223994148449324495028379094016099852619270662756722648500667337934343687804905864601320103000946578226315071902581976915981630737439270249488227302422576537119409300099339009357832159105125004316799449443083801349786101095768727108756494941675491134950809127152101466119551047684242364027287885946645729748980877847423264911243641339806924239029750190260183314518346795812163833790282074519124004492454539023733101231755716741275733409385774070181272823586405446746555622740757936861259956971200681138180432632121414907262704933754256323902879038212266214561642039950134297926039181469053249934305866445107890736384194421501644079164616738322194916279761656989915089517179739493283864939530047916530138885994541989330046241076148276232516440032768987291814099371066166710329166544396949463935347191453422198263705217940750988296285029518231696326463416431837940337979474730261113594511975429501435051539974587956986224460652959339773657963319979085924060643868107727479114105720205124792633953884283323433342173784069235073820525838365562799176971837460389212267035009732850933894649755388967682139740389975173849182486500779692134207225553284888429314509973043756761428642938798231709770387997136522063348038808695927006369836076694706368286692401249610800274825531812744951957297602081249119499043304346395293070564360272099430948201310204499568418808765149835547998340146925047517173261935811221276544306560728621825775916979792220269255823389046057357140199967146161057103040092460135083869324874912560666816866466643479219741985183297592422699533217845758164231716015363294497045871474486771762522322363685261562749791264698676676475813491923785814660984076016129662845337617627473953008245323875251413149989403773486619461085532207910583921440903553610553634485877235544182037272544835625710179470895435937955177626652194058075733549104063176208676597261021404467900507751263155645288458715930224755655436203033978131245377334635915050195556376096254576227804808740086510893883365148865281076236852589607324558421568078576499866840813422233718383028265131713806436789731000395323170106703861126635328119668559740490760451790505119630617591322203424283973826804685822503238054544091552124883514356105375693453591295517816646483905043110119655076162596416332002787954459835695411092777782259506945185930635894337295744227192092257092273687850902882543196775024074047752902791904295195464651937407819115237406758634562735618161770697386498095677714196288739082407156139455598918547270533402001881309182490828578999686595821029913232569533147692944439082829952965411019527035424196405321423491405609602184148706676317872915923842034716176421615986123655317918261607243424737324224976199111680755586136595369626466052164884388228065481311909814290377750432768152909251176260116914221060786248050065635007533342775342958341006908906311511176730533431938869715128177983024737691290809570344039267239133911185165111729484491268113004907881572762084279596517425323886899323318800301104605329751839582135262508919430224782343239564884032163085898642960975485477861613410817594572782361725515555814871451866137005746503323641439648718638324369779754758560865987337030792736024345412954637685534949746567033509728164312520931678360864153654451198341989953273898700901110550939410209113636007119959923057399819307307997183737723144036890144605761086132329404096045971638743426836492098470510387624943837006377772671455881507197260474026459703309551927713652932354967183276303612134407803398591588570859128669592749611723900453753265432755358787189177510137037996757623427432743377878342929431916720237644418337511880406099888633598328355656064797528747738923606769263283907135944028139850700767550223122269808421788089633318829922467395715461736086915650003881090222661181755962645609971970236610790835131026965147061073045873613108334276038330236510342852557277123406443753392414831729937871574368989966704680217343657539209500948806023193783290488558370822107160080284481608441884309263243226454854147014879428769384565594736382734727282467743732579797668714532278951533207675198180722447359627379073889234494591340713141170849577949485007215707504301934552116077229825354549171870416197691590109449213335544305580070515228347567507559339232411475791858295905886988255064573518645146616614040651184755778638866437882900193505307111639613478165037735301496635470305534336650870284068635887942806312657557848559749394798364079574423650265429471923654652652532232090484659652318006952159951989011204174390166860607350200548253436642007911222823686577407024841311846996189137673670410095503318899837136048795794536091871483381193042383208436912822873861738917704192663414604137044960722890204507393262369624624724534167325607693877380373348589112176382097374119493871174471201049952953228176591521799057233730220444988758026297060855434261927819479715104466390539848433332900402443125597502186751087300282975707164292879519048356688327484215879381909548354656903058582673404902138477996642586093541162637205209240099523465391515311271290868513998708205075611039408793557466544542445699083819581061634983881036530690688804395838589808598820370020713972225226122792205435982426762226965296096267052678066851183495227815598521652016460460322374026887181747227342231587326964022114075823001471484771929891246276661139161637001105619512416287689444784855944751812801869133594488399363911988178915973069640820526960527462298926840241578421262641847579293213544908911555387218737048896327347842604185320178015940621491078270661064694294452925130054271480475066474230661416143226323445655665527774145564842315071929764493117836397839547239295025237898238886954267290602759828854539620590190122473807840060166203384432935367760264748420280561039591111503259834190789467824746165938951196149877065020402694650440004555951100838322994979905063902454609657008481183422901194083689545474010204446909111709478677589953174594749227580040237885606157130684063763669495890061264450526960817277707327613783607798603909540480350564712362147707236939631655466625997901042072447579870495727207732193948178929632063412083231943812804043342395215251258119448804506989666052144284279926339257731440513111804429275477796319429135981293531897569590143334600370379899763911761841145179492793473375766045461040650714624704194023155204646057603460271063342749441768594432969675025355753751020035225319342110667733962807208218306219875515918436564787581303813347259802503289495291616017784606631065564836451535956355319645639058678703492539125222564046124021743101787209732713297357981498844862249621816454579847673100523766419618010426074431539992788035315460644525443346777806287093358448284399246094949669176231105436272053925991358375195589698468638081500087637068970795457348739448862055481570321159913139299158704231252547046897152914265494667341898730012794217674184242544712680795186664272605602691279826125800847654972641659243376353913318191955684463839525421836726725508938919799522660899634160261573567314836115258138362875974048498047041581269254254119235662496478145166153858731921901168591206834070865870897686601369213929831837217584837039868535120701339478873806167547891387384119217201025378497271941658942324512524363954163248510794914731069523144194219711144155183991167357752370542054898100579238001714791508561306815961106299497060904545061109007060355812121007786325990613872379687948979761987531156984824093620662996801761896848317508114415593798211567293871635386748892006955009729944456142164748443583803668181355140110595923006027857247021662502366995809833550736433632895775617743643122801251600355848632071648761170910585755606599023074960859627754924551399782749256716021950553522613879103717308551619923948466117199486569653004919298418652397933546331455461037924862033549086524892738508695673018445777274892692827090837795437455294192622355513120008234599937927399076950278633378904712708942497577280031606010922002441606596143231855348778665898780020224847261599588234033849337192114130361205248119575474675669729763588128510468742256918505299756432651088269181353946350540116954454022675285549920503186735367353140906379651221406789016492291199406654684272826602950410539363643479833231219572385991079845795102096135489339536546470783739233132305034200384190457938733647860451524902518394543625104049365439903990950027439048165818454026972364966400710188157413488008402134247498888265936610110734984963856257771498353777526057754413735269393815471989149308055575820514936086737665938604445189082717692245963424520636296390793674797558815865669324890984801221167443571521479155072641042866112571630327410454838345536384140681477270608025432603360184478283354577542054237286862054469339785987724404236212973302995346985761655299250734759474357260784246907251088894343777446362517472059196989718683700430971543655346348640023084495886415827476503025216306123816644961122385630993980778387617786487314143993445767821654742361906026088740756367673793800806018853555831196338880228903816418583434000282386810721240309698281936303161987313368868703304071832207887983211641628724607975859674293506864214137095314071599379952238991061136416596826404879131557026672387550163315982813158020559971580947505789325434918688044337380227771523393666810124445910938577926238279992889062793219642068349156506856285767542226355580908862115497146694192445421870448780532866387723007817129397979601579888306109556552362997194780163783717929851120828856171068763129337609991958282750562791877569235668239708582836803381669640776291727305530915444346306766187322753973365338311429876317444656057902083650764676752554525289455295302968241434585720950813014991158920259444349764711812066741895475546362612068864711389561665841823028009951334015408196629779123928655677803949311155956356055432274649581752190389214236415856834411945441892853283187552586568265578111316578869715096398474515307129366811819288153196321215281783487138772467011933776725636969624667333574263819552687963713953565950533719080435695690186032426544632606030833194770297092483490658376274523065991220040729803052697756516703403794269647303463873770079813286579625300181833039543289526066073353651114926712461679180454452976041885634219850143506511146924837670898128265332987607446049701925242883493358170026859880624826195257836759328071501153137307671111807330900457568345914596488017035749284650216253162356202860368904956418912977167964819261464016789990545407035487206413469367125253888426387293506292873318492872427485368838919479890276393411009352699934113085961092364972025113110494464633372061849844701263854001476390847043309994784328288472251160842683726337715769584438318457827708051897925517519166853407545729939744622956424877005345340362385932982420818538448522578472087519682654795983180962355404408200253968489799437287662472552019414006821805022508633457696378280847806907483395479325111365536379078262645022587224404533442169605152036288589593082538586989462803499676218147599524935313408820353356403522199736506161671911791984671321520873700155539049016176886620039689846995232883242966746924608237665062208721780684009881304404140846019907040156095825653397105788871928056057408398444477542323671812265277966222276775267302108553201177543857126268605814546448446187477538474670342491966851949512448150165687531277401279483461533958811895031046849703208983137553007295922547023019897960785953238517067656347583328957005771644363847548280578490268136838293195157835217888276438988307441423282551189391234352672822972311241657915062859988292720465215103023679554736205836794784329763408589800915309272770548561353757732319649919719502494512097364132997583783139034523155465124887515800265163449661895429978543390230371679037832477010615694276296063363239914743595856908845705040063185221298175615345165091783445425659972177042414561369642646924458673450777440871133998848871786516956358972659107148125876562486175690643110189804896558662298252013984525949171789744299713557202440435810178673115877283879171595695942425135400742818535004440570965771869316023099969181306825790844004160961990791709404418534888182119547307967847702416474998364022674068307164427638434477939260093168979514004729931329475334534442882511902910684709145440838860711041794613285033252319608480429750201169874755330681389530404507966144874626547937223406502247661953567007740707448583650760963823318721518102790089017693359851517197398352931721265962281593820876457509348232070703599295460741164529833617643091191913371248398553425464766611298869621571444122995721211127189035806645552497280183968877893170183383848701383452362618739885019025775598496311782016125195129066048085837942574522418019632914273989978932755112457284391254255969008158644839744241278511205944839979453498282354904305498133308699621071850768781910831710127212367340926875791394286644667498016438919829182870472194514326863778959449002054562105859781767723532407276992997759695413735674287442100218385679878381455246862821992265987745090304737884545747107887966912255401673647392503863401967514958731705428534458298305953698933959520649823283489613081231415260498190304185864172022223309554236840254796058229106293335586873696881005796387176945502188148725042225025303665813105020066739921303474892448265607656865899358659130161672547173501226896628472096847785651434503940066843922278075252870093305039212661427951670347099672201119224960767458856361420992076520702414080815441084874271383208425503673749792725583396174347034573207728862531886720313796577457310585949623230786419722658190723836984483221247464800156289035389934775952911659521478761578695153935580412856732739418549159063568742016153968645142535607450490554541770671533262671237105917469810376598972495326423989418500824361386343033154604192195537595569269565137779265679502365439014490527896440887053960421083020488211478800162946394471409623512130776308882278611000728723510490729168504850170007640515453230833864759722088294376875450216571910680135644158511656559106139402662523609481335028858167875394690206799674204338813109554172310982271397812481876154159093954053304375611544498234963704495830703262461290789592659171463197069277899750895346745150831372264722715012356882990760563731489299400297329249895756855914973494555615632365240285868685809978404003935810058663548164635811520301073498568969662442493262294834517291236032344042793520422518972381101030273308533332640758480634677483782579975579632706171974722802714945252169765751073427059822134406183286008598769262058695674142822166699341513780090217982313547814964800077891849924006434884382959725837018258047536559220223097534439378790628415129407667009628850388331208580377312042476110500340979503784655760113348464904371700673322002928165603812620418681804736623391383048408277655966524653937383282585449174853038984197880061775527290063668508331769683569600477193005570370250236987693318105577216567655641723559849083702319934158365163753172661318671000263048543325087383185035584096882545162644037392051104143486073505235596052131953484862946810819943673414712551655197747050259465579541271966358021744669867080320734792105813345662529640483333870484661967102902376925449378319199320993022495864838282875812921564416526831340643070975573778636459720403743382698340144714994679781982148071925348712702607850239748448750810705708205322502633418226791970985766938815235803089628342837297717159643617853444919162467536325222739510335424670921318877428939817978918043179406993291771381613327277396178770638843052118005461456365736237419310398639673782941312773244990677929503312854740863806658593826390978640118240533809121838507967517879344286574444873729138802757506140395514433217519717048477310965965931580590615044996692787856956582128275350005631096288130438544776492288244990599526423691690687364557462321255083480772833469343494041604642004065859022663292598812353078664677388087745760383807614770921963889800106452281214302053371007409783953863182848000142832364166306751380951124991542244901890477527965170544153909993629605259353888226373118664588163763328042470049823064891379226788506972275454879467770316728496188114918976040204601106046799267388274794118982473465428174432614416648643951751768766060682231414460373431441461866438721347149202325159852650049796399695497078142921319163911222773875358745637304392418405654272311020872352763940910078647093722647730333747001880511371835101115521948784638594159707310496319643021828540677293532936494608083980739866488856052231900291001517529794257830509362782218022922610616121365296066037121886730911482932885346205883556990286235102904275799974419902297095754538186106032419699703823564998514996366975604237173383775756479681907926105654164754922379456150909597703579831096944076727915501895986595396214427911537697251074280234285777879288274820503066099768064915566526203716055392314092571334004839290221115955021785122734168520991211488944549577602306966945261182230370896004339444983333897996115106227906813590847357845664749955527071880088405797419137620841050159849909955684659803971741078877601803877025961873581370911073034852981502724147265534370829929221165838191560860860957555164637470072236837675562820127730868699210308868863935028510537805336542227093399726846863995801921217199086157162672871284321061892682728112071289181798941897682170219393487316064114889825607467344801562225975502553965371802784374521879722544302331904725406257839661609821700328234872991188974509169483289491800037004876614887221813907827831984308337869019877034659120751629892056772854449545935026545795368546484137341527602364899869380135005661019615627127500934859212109903890650918303080091221798875770874071509278174816077581331816205670932505458066401205125322675844497682827714840075302909917738826235849079541004858683185311808196797364474092337076829174763636267314205972810043312087140299742306116484109509301813546641593911833124086897786915533957469172800489380857410514520404041616920447328457015640174160972724165262968970661053687192088794665158070388543825121541360055416827527256483803338083668397892663494030414933464399097575805774409144524273861899629561063690999698865710957971994121027138922600966962333015823542383519981410592295758023834991745567398276506628313646636074933802234879288497339500179602629975609222959187689301337291905367866283299778692350737527294924506893040184077849311150551585972118750724966266949954846620881800655622870512128376000805528674136621537166739054004911156775344030425975606049984339419259905843895371601098469427608315669497016766826831375510603525008770504366237339308117879803068206816156554131926320233498523159198359190910874275798136428106312413017317081139006953412459792378685463402363398793817019772227388561324570488323656244032620821167233492928615109918814346822079307750189858240432556703090163565317244197041000347895242816670264586716616781369662692863614451093679989913728613982010006187005778341418766278485762998571739551986677563798441205850593620258297849817166525860329757077064446659391653519444141985737958770092869615324109928303505990962792041895892429061409532066493418785344371850533383026412260326359694555622102916926845894801020423209917601018660037727653572887397819678817057982758492713307281085184659051354105996136633449758286766942677241653577310071604488741949114481601713321589017331037268262471819894244140027833104162475122865419298228168934285452593790895479483637932250827346268034970342447042896394630490274379913654855180416685118710000561388580292385204956493378560794854578851812700232253161330005981987659643965290021256855451674394604890950788993661351497404457648144285645878585267794655655708789319649963339569115851522562778385876618407086070726377228916776068213819177180903059833013661515150971772623912301194811795468760092824479781454325275432722917660061770376254718339867893647373032510474139951077808027779529119096058594734184677069703357763243857382909053316493503430079647033224006915525189699290653082380616880428837734629561371626359550658111735871943320567076605392491153347744015995444397120657475414851411452292947220925605414595521132160206163966286360496045033031133271735549016641840739155667581044701825798792562085978166644736703481963413613904771496457503715390644750056078220128180099802663712334727122299152909757934833425655630814419161990432126976939648659247714136869026351635017549588598367662408592716000524021578562898637608308775322327636991580482566216371023638763474110517993471498203981881604156075420720999529240971476924956318546894570277981173509830268098015204354801376294345415030150857292087576476715533493518343774985907273262024440896132918057837407402581412240008015640224180242436608915795879948857830419636931532374451004620410183962759657965332598345782119808612144710917919660852640427382657312352206546193652216501500695613067233368707689203320385070548392863419125536146766683446663813062513368947341040758593367385752899451810313156706962000844426724360703059923987929568734734316873878404406384875991391609957859746925568977093966889750121696432996463703496751520709797401382357404163962259950680469812733103168049034216949495678129463524011950159069356764815128167941575832333298317928380144094222819212074866295358576924756484846866819245675729633768862648728506860133779446645939202819872638144827753143537967572675167362157604929478282515727729041574721451424128764606023344121682617995246497821541024171659846408992578822769052738388633821047384884414055774760568648715945505672111931268345429181267746498540187983829702225464273958424461142777571348759641760377287162799453595231365805098102954360420498171997909845857641498808588829278946230096886871445713500318413505734026319772868975639053815984991736717120021897922795104186103759517172744600527791380929726425626795937951392675367054713078775681774193984441478447162245370907716665808348943246871019096664978832705710129025257604618202236701641315285693435436878820583756475843076991005579737277540185038252322836333160317560996001268947184733251624803192456440921193295181197533343668234711634929822311386653843028148301781324969602074824219421235008457899881309752867207075398468052227460459193448342026426679094806336271267926049502363583868856808867580392828177967957694639618758249839076339580890532978737728195097040444709840986746913177022915686956953394334184264508503317411511256973303261501378506205835249747505031525901349617345088651329500358578880600577335382044589090298058719437935746577214800808022813974334388452296649957980156519930599983631941807386139476229153024688271659353198504495223559077551275839507821265852650323149322732776384318915848654700800842588408944004134178906917086482314563639723544751269393769898911286086347346689526016624781736312788930911451969108249694288323519396019635434973105364935897137902252788138056804503538576195761349897222691446627335665375609950332831426137696094933937540419281802913274781668163226825892802205309700414991208267963272002860744239496630595033133553437610832255160973996447598237252773465552210723647473196349302587647957053760132059200274529031951902244344365798270846413783888522605195993955772855802117787696683449194257544218448709609344323341357668399352767162376446408125180601450146469841711499597098457698915978780413109371039508355720795845292170287019432451429371087598817176007966349547212442132679254949235169170089311856582673820843701034691090149023622459721263738365508890211779886686183194038923592134794390039612311489713458662386969793446572622972950598506613841920751627780806768660704151860175551223494126665573778071834590998928080718980273192418250058590736359600995053185185201819406896995862080722327906249299052921665779128697038048657780472248913998327749973706335994373270790296305253514899057549040240435221468076407680167576115868124753947414365960483409809818066990655239009032234342961707881714417595345805856497336409982698932396176130024825134547232282273060570991875238444765978060657565329778839477994685322961322015330559085032953856196789841197428431531748362670698134060052045660369578079165370518563359509449327592233461780437293658592084013241145232777048382882053549272451546653812471835929109538905185074028772086289040256737449796150246444307360436523923871085067118091180527186303705510557169596082561518583184138201178294126600901675448480589294115413779242041618838099186976377568278142974409213804395673067327538080685161271384430428412031023664547650142955721529727558389361902330865698806585808595889456469714298136323812175495492607056202631185467904981854282623583348278303675757283733036851807781272854235385907944704379420143134328385291262914370305571260806003305345882643622620820731065287567970392473851436190315941715271512969137402160085953516461554877882661792447289024507098980210112687803378519022095804525423298864792361226511218502329118803234204626544008442864085884374296731420404844897456914414761521921422398555151603725629447340609631600702698938799237573984626864180726825338710917039125449354098859836466191312866614734033515352518887848318488372814397318346832202728097142888390774142884361531790547355900894293820684701338073789416350208488383199171545432063307205192291555798329074688141542811544085709198525638137990254334721188339836000163801640737897550325145484754153928850968553877705692867147657493114070373683665350281359731561104894987517220887737633244142507810528817604983444711394610543991489272924679555248333625882640808736997051041130370101437572239355831774836582703115136856183944184041629688815908317794632588851702481784156078125298317542008878958311093980350147675713983805747560463129648062265842416635805046175201941352803551068558502182167883591176939572944539884447094926252710937835795380341595380076310188827506606518690459475318248858681021174602098597636053274224344431541699075174249323357436235053481465821647212515420431694415957735015953093062676331243472803380609108739748138539581530661551167495757166367430733859061276560064339830273285059914388316463064395445617056134121654156830837077875709241790853364994212902787922211844256320021061721465405502656329025369853281425789329013716290775613897503465999649370173290080230087293654115854666943514078214450527708083428060130186689103629449330788151364326125433425901284930461643340401704414991295454289316724676371598533858274284298904822289536000109831491071565315222551584710411108594542839531076041733634675595135958858290953235796418586949362231824286175994793042636597586982923277312610629831257087221853576074049477037896632172045238612192674660913782293823473530300874026637407270884953811112570155005493740478614393700440419045806935487394831437016476940230201700784815299944182601016880256550773831605131832395199790548256078612606009812562362960227655007126483053957236213902871117652070256423294471741502392550160673754459883380360545546741932520091087394765517094367937930366018903109811692765134893473309985409183576655406321971070959302583106054884331379750393716556566965155359247218894399148817812079739663197618812415736155458399893942549469539954010232035707582883477890238669018517902935287703461625163480155510076624179060026495918762895743847225067342527778887726530655126427372557370155235415709408324850098755974906412877227285154098640127379562069284295890702732984392915393481017284773355096163676673037262007366538749048462039453302724795565118928250676119376767554496579458312703765304587152302343718419181825341835163994576863079033425121581692506466743433376662962602258945102878429900519886786926779011669737992233315720123918087306429128251092207961108471941320655369165458095275193887780827472512081121245514970762262816676382148751412716492093112767892182520821560303666853367334083033900585337433142525586000620422954662909588869073697745896520528119318911011980058717372592019175854647608633588986389467498481508679374551783512489291363583440440387514400948163476356339789737525954539119743842596105683860949692074032405368568508643804468698639290151988702261961186170628935018659206233552107798474398434057889234700636395552995868442069320109123894346695840890375136641845266752271656793404702410544803004338714625979863278126553433865008852718864037642998214957960174706544280496321338471338706304141943676375625575688627726141846912234800930880410552660454245324160365332862454916150496982978028859099718254527946124365686438378418461896465133119268295461964863916247220903947993246088038667552787358203608721170013255408435690253123322596325875654197464189464313241827197428649453938439443552442838080375611331049047051506243374584254999998229786122550323277197812367611341754811278400352120361414101643416169519739336147442065737556694330846418871791196010264724050630138063287633840887685081963004361378529535741264619201331554364351034338765163043731300353666158976605559266046743970758235615623646483094208316328616721048694015421265939474268775158361694820214832610064436133060291227514007551708495138264357740321104326272125089680762812959400245678322964143246517278813431750828963635177048921584346123876039719236299225969814604344378515238299483369483372447207028301731052874287581565059539136033098250533296557694922722243801414433690835390763298947203528969054119412734472893506939975410751034401548073843595521965669866993618514140229707936558333104533306631883056462026997453119413031201811806761082690091535964436870584697980860572329303562724420062914296289169495504645693456386302743445423093375721065840582103998824596174228711371670875452126302953760665990855616332970040664927326857709212112043311417648917345659275663906825338762683457575297264731365240440308351671292248712755043033087903686777490914023708843949333722966674288277650863643500771041579872990454423654152633390322276184396461221531554138989234317578372378398783102039620983599432655806868871256960156936790453011532618135210474474586673793548959745930771277782226642194750241119622605584303814197602884741967163948892037259234759187791363166223067764284342779562190219298422726808425586209132328441248940124853625412541816991890746331512109833410361517499518399805319831168970753549275718346131483774473532384996249682353953224086415190482495866649077540097978264026887467627169648068220355754777866331333155902931877077548623919786239313456103085171769372234201251636861961603456152910665625184871486530319897062330969802853471128015561195890629408515608557967025205509571990845566687342706885870762867259802266583581751743319289379873823879731594522088936455826529094129921940013061286907907184539918750848811747200038094968361650635138984043631233233102557401103380544792417496695047790280541967520754487866579778170517227555262987573939641220111685709975085179809800514798777364590216501907689672170416519461804866925431177592080346354796118171962267695333501256802846944157195429842520346040888802055836598581117489152942911325883464774042941327171742561464585347070598874584352851694397039957905106234770912792893046580753889275120611591152147632453013464551163733884629468985276853879814493338999952489737069994027752913723827933758589104102056865039169719446163243713561209233601684022473346364732961428173217472251170660291892970105590928219982860619716717572481169534350438335107704698787013389343925710009544101721989188143214011197011474071249698299813915561153220080918102970657932836626770584437228394422518430054839172237056205593291878609520719965633777734741074982298402631904424272627906504266746337354397433228052994996381709451669279224075135495724002424177179774619385760565812392548512732840851817665081037758519122922373215070552759344499987562535675425029705579583133997281748009096803379615020973933838977839377512992380561400016896076457349828142518464156041059031724894072116353446700240667987962817189800754159197302914574059708807635944586080263021418721573970047766758967533715795502160858517607623614399200171527713698528141683970850257203480711104451488864522254094774193425078110188624378092895712034022151692514475605591510824335016192963735697302159509312100480778520794948606920069839974175804717291045556470435213042238188486214879257623586329564725785512484508809285313001647318675243865691108715679734710594551776349524966072226784439475902310689763892454280132325563149039376637402653603992661872570502107798242076512488317683520577543754095532574053459921321718958326424009907422622653866251220368297392097845850418535681422742562182061547254223325905617516317004930511653624522473492203652602116764193217151500664967383473520425034537121892137734100429698284673324600361588727828634781353289735954180253563436776640096740078414443749016634620387570136400883596279585866085252996254290516956891408898937611192216010396736315404770948859813293166255030896905980031005795701520473810838587610518545150338743166113377438746287035083761778364408155752237522771573190266197229882747099568718943762856127009582162860830580546799564983308663101087738462871726435022414574093791247418103799685814234552730073342761981964230194926666108663279072733364500584319818037539004131483876890663650852730478727458715643310852134260210941123838594108133592156056585475888370311534718123462643010563129981720918296424247348340008349740528232334704644971870632793719129149776418711351867784935093225922513946368559901545730531673297779950237858913093236951206527814455673201592241632278647065499970028028931765165698674225978282196383246207765633962624629588253230125398156950660067108452196732419161609438405951660334385561993729749716910700156548808809932348836073348492766118328928244926781518499400507071211508787670216811972339962293682145664945420052141350031714360160369184312461291017185784676941216859809898120554090453223051821389391026776635775901943534127287389610325712738510195769192957689447149511739109312899402686311220474506759589297202184219020574907672878491651217214898071680201616014986059576158480246121485410059101174757221961369260739129910054776244777389988173993858520279466446612150695814988082182706207236803147085646613957797238964178055205547569128485503917877494862733340507788017864126953836614474669198376588178640132705128462672179699802677246785505852550087609403387359031724985017012277734420727101502266089775854532088176586314421046494394812612852073737423311751287080724726514819466270321396248552111964620129153257857556468399684317156117074534854591799580714784261786982455664228410537850033002076881571596166929723890997849422171850137733423126742287949700218879403795556101051424214255191866038944826498251104657651170912110354404140209703513546091995099366677402292345705854429975378760454548289048710620989553228224714562239446745409727425991213039456335628181927284071183038435815328975828260711074425900767898803691467447589384925507585010856315354462580980396035003895594884080416960703075772916618474169508824016498056541485079742686940669543262934965146184618005120529466368331567200365107869150235169409435933340112273982114008678938401611064779134365367509799079773789950826088253875479344526246318796926032502022781047206908441217807569191505499555754186449646320125048206645381548344627890753066462114129202973060424690370695841583514781320909299383755638877088310966167762703559941754099564600286518153661232883352321756412792110833860852398328429799705416782893491852990589932410395481583066893346255141451302306764882104574736686691694811397056919026683583508187245517679439207948978686845478934009204008207318169609274921098298262517849257268776975598146300163835657124917748512593801181502443258803452436201753586533052705838823594569788088943442566524200680001341866001391736437250911788059211527819698644664892996137532418714230099486032523774380562771497412743320074375065822028306335309977511562325549230973360988396973261919758091556914502797338675253168418430786759706891134370979162884460342909110911411870694079445643362454485891020203934729982247747079853456880808933231988360734949849314062961273130052558424059331319166014318791304106036147017511187017444593540259956035241088958616011672642328542893028667464533414019239092388704937515668866162164113853473144304668376799997241584681358734804605409138105714019185739401182778107155302325510558257482683413959450517925722414333329259333805242186771783927398440655449222716736626390134459736660659014695031698375206082714491852482604287494442186707593725308204110078429967289165695351538815083345643861376674925357496491165308410871117367624076247518140490354577718485514259574303072176441061116746633958691358906349380253360126951989036843435120646999619585792844188633298387077171676225532490406212027989832728050567328390876977540571789375504318409728027237421051981417252084705818944232418498032794142806296774405761451310710537482489934611287365301162100854820793377852824713755493651688996450926179483288529561698799422170953411030611033309514143796354100887079780166823194522688047269080533265992676344073736661861218375572953427506022073212647888461570154648943192652055062977134096989142661986186140326265083007443141341842048464582492039911496443025244175799779864358183706337067658347758046238823293053825012337935211166725457648635589270415930218893554969648586705340088667546142751525409875733564457029840834323666360553050581728071512204386355667828965767007748923888637729495754096961034898407080718004133849862571873046985169509735211400505091509835847324362793601725912743634277017206884215006773774325441532925333494060102481389101863015564281471119509367227721490666396435921027461692264938675467761470449885896752658436154099572742851983262318865295315195403264648136648340851831292565604385962554932353695979434483555240296634617469199199672568438947624239829061478921297452440174994488488056014698422119786677898991725225042843834533247116809661472560058871509275866726366773732814574365320682733343311423296021911880903618961070266241703874976572078327927312992660590329893773585711531410649251060519102286969419354416045058481885540988985628317988423285509271902711305616092786076820015267984109440330433973386824255312426113155619300325369448264197169286323366089910652223489275670951616835281256744345707217545384776219485298520718393930051078473214981200285729955103328900545410097393710230200279512149755008580501131462681974294796454848766362377052118499062727805904859061456214530094684763177617505127928500179296017701156315952884854835807336149173053142600402991707433528028062962327165389677650645484775825695941939542528286533201442659520204400550492692422485027781822623899980178836734767751692570140060816248134208486474306204099648093378542393254318192257516356580843532037205480596440128130515315361076275919527728625656058984997727424896280767755185236181304684838494644206363484824570582824209844374521715632657839524320203683815948988855811742573536676223760796843792951794341312859773921128525442515924938867113661637733300963726707493845400128467117495447984850132173382018238800238341969869728135380388175789889066786530402031452183553065132301321554417472538016118551999189564415021114066621831586373631649735661196878295336488850859112363179098384946206589444521765886470606547171019229533060500118025022735330393577151782432121276121383239708161272006897534371341610611319085543098907976890699789853520145603382283825381951098195694560759681127898204193760642682602040602277468048547741063881862735645464150080226766977492855318986823962038828967644090008732017212452463827376338570647584791452333255152388878889044925017862752874740038565283909755652364282839051460876066652602398019671398380707859508284932913442502770882585967442854331252822159942977617559316866433347614660593882149603269800376846541510215408924877699666716673848281700488466703145325760975389822055165492802673397842913118709688293157784509951671477696686046310281073875629852764312784576566527025496113089398790266055991875147482590687336740592289607095388279790963307639268439488026172323328377436373407417613600151780212020595345125409705556530213172613246367048702518059348354064352752523677030682222313265986021408459992412034415951924910718176354194273665932198380870697044504422650917815896453782636548055087227850712177690881482609205797157990040075166287139487853854867867742094326406874234138200716963634549794677089039893905403138713497949647763024748701547951259738931211037763073913065504597787579327918188989755639609458453117258507628142311173142500648088633507595111570437913464929004498443132169756942363584654892711993144298922654647280563214695787357097377328558391028388688399926375916082495398779125661397700219813949157853019243117394656256215556408618493687628137780262263060919342969987435482751487872293340779141166569173889252271691467387400397561535484526595737931104241820552588322792891840430103139002539111468375308097988161445037142024147693978748304471020155503073262274744858177523807338601061735612038115463063892448315745968718205861515155614779117141898043756125497814806918449606635128503469414724172101737241173277740044724147613603143772250279255417678937724015221581496348310755586159452292453103713003637091370502473173141000571850474153861978458559240440143188982481040030324358330099895440499083970563474069615820226087283807532379250777434024964538089867283154476657716340459898476206670114735919394982252661429724787877422846172704917584323959217199708323962960328212112966127257254913610596985526591719272536026149614302032348646199257208997907345379810564640709626095847243647131317988396644867343145213770454125824975503106357529234009295990791874315651825372567073574913685552791914458449475541452037533545986157374702460599286290361898073804117664116722549878319100857314071574229307815869087767387165123119305422950317253513947251917710441799448365398485576099974493415769137325039478129195036396822601889353274696014148722914851329419380847435056798846556304272379671240466340846603027565288871950949920208979152050072245577784179681077045234998524708708432056769448535919062586860959431710904044371228875571995774603375635232892160306625083700441094267352426808752383503917060185907163419393661992875405711299601828368193840130358960350414012163426492715248629872460202703406461605243037940567887793583910658589709561711474282551763391252751458050834210767005672570844434536317628540482297613323847619696756275990834518632194693001730072238579021523554447126707154287626385562271207605409748181295635191626961970117612352308662835367389360351306983067569886625988776269130322241295507423463261407572023915894865165043047640151206401817421414756458240126253726787209492567555637040346592474561054581050171620000917284642885513895514097424873536757688053412435864909186226945954725387099921472536572792289470001354013289913747481892533977662498355547653541336641972655747594927079266101001833036836754123609671662166864164335106716367875841271602470590628821111597986049985042064971113667566137217361869648021102689416747553931160073449259865262029479866490791211506328611825279773092243063913541043501309146720588592826992852303455775900321992796696046617116166761494110747107887120095598437654004431717696639419368903532467295570086989935439818911221074282130933642781216775471992176577145312142084913123958237904377429082513316921007231304720049424247517668552819589546517224637384329271147598127609457523953661683127354663594331827834779038090205175902740457652822102471449942901100470144866940609897445588029500063686143672672933795656423871109321532067554431878426480469773771050169466820560952640244319165937085060270297668171441509055566028545319138919022334982466445839288138779459252391603677453139724638971324609436355471530897233341425275872594541064772060735729203287131920920341969559543709609186477379526113144541498681972708898448349952938035952129865016809651531415130502633468887873144161646217546299286428410014192183631226722172647727943148718763648147853479087436844323303885117104976048029159071359046877656882136109515072598338202276550425962652833688723910286456338516243642785619105464177328699776493259697145926906139571483367289050988742596109799742890712129015926404548264956141208880707833980525175211789188673064648221140646345780770537749418685913263475669767794746533111483687763970538613580802446817413989639785596587313969786860443957395614664776202718787880958402067844315135070932583799188738160323767519692584974910498622044801340213335359083452583400431528290547469973533529738093372335334145319799969422887604641410112957288652321279076834978780279893524067888011801796522166250389588441099029371241061590557927891670578735863510838378430840254946520462046450243921621113749725016357847832515544244504154700789817194188837667897032675901984770941976900418590411440882000604284215238152818802270510635164970252232204140766914533121820456121932388729969571088170591128783765372235752914695346646693031575278557866458979490217522807700588848158885842536346314042783258145224349893889676654635051987978981472461219761340255819143643473161472365018365391047842175301571937460984031630284604636081613930874042375398284479796161186363278219342739057842298941260711096010564783646145402925373999161062745206627473010572154588295314223595025608452173512514602390893396271840819358446047584572272373380768682455899328793802800689078182624038036544278526599440932427233760360497903834036587876708949222137671058738984095526018264750674552694888283803390511579712119161526019020510114154721553195450333457578376292403586444777251584947889235285466784641332830542457602155387557843887090712718057996716586484247580074633469006484330003316255680006803056992708807946185007890000671074652989999899253368403578351511802295767133459705164591708595543940825621101602249641455140294353356094750534891753905372594594385516823997990777228819615430577146354977437100092286523537387914627982482703530275755913654541149273631339737550211191156670309248845155115206868468892568485393622518448070616103647245873965823565519050547297342323321424772385520530322154054468354960899021551444993235437163276027129880372235810355220164232606393893701455820811230504981005731897137261336859938749458852476340489150652278284715396690965052927363200983484882515754523233695583098878663328590476249288958239805493172131145619611394580075370539716500550724896112324276408158871748936128746379711329548047579156598956375027000919104598195146193241436386562295831929364343945716025424555941662889314738709518559674347854810250399059321743799083559836992545095399934449881707715449495773563859291019809993835661777404311967098623351128746142822505888927990675928451796212849793444110723895940738874141923271704883213541671067478463762537454409110402883124175069926859809290400557714323670695838592287444460047056992313490382491431821691103434445305325290948493917665791598951459155690831514031675755022134077525583615769243463855131864320637185198776130862425205601400363799292556385492743977743586288186508095138691296386098264704271228532246061372290070157561838578878314541687954185553275802155794421030333506122063607745560406392103143826641075419656834476757376800928488917616720754547590049886497706131599688641371495676476979005139137968750058312610714205189435671760818678224877628465770977401773096389639918065797920826097387813487934639894432172422748554592483637181972660546915263038596122059538735780886604688954750825209417457950566577660959810192058276642555404446152866279487264820593703554425125289711374800413780965602080005907534005597106285208680513429288436776245583262477175579704591582567510375975458997701744630889362813432244017114125889795068262064644549591943795011540086648301329582728711938371026410515655650379609401659379794115502028673435360142895513179877154985104212875172874934425948497728120813710330641006832030450571820258508752714406420952822101041791833537924921410263351414650247053212788798574164370378754401953240779526529457487225740611070811782218800878560979964523196574391219068651488722977513318682605264945504103881631842429700080620425702620924997614795572693130465962127226753998701743616112643417427160085817731355472393956261328312399416179896807637471990535631026013943637514346091362438175801425394456150202517554864011459372236012653895686279881780871311037207234689899467525138033459441040914818409695017400290235484375897118572806586670347688118967301385968904733334558818662641513078835006297797863088994243671607245758467960817667131322623803037108494628915975215381820746132496721884622140535332796431920159496119234774251121836065657393319891918576056136095140162325316667082934224227976047368408647815189374604450912180076863574061764262963652295293257910532837836415508882149888629074727506035025701762007017015277758099781374731152748238790137769505930308995029588575451421523444218327443277746462152718691779782464041513991670976244770996239825516962846239186861598681609032310773257751758726337965347197842744384092981148812740423654884034112042210000056550811189438269974820310446178962186420605058569439908600199423434611324243388964207284946046509367099771697386249574914974138583857299468174706906553883313921789669556658544213261694182419644404651985875685389960507601643792269996391425381239444310934385220082038728116797434970543693879287030254750918064097011535870872256108945653053161419440640502082172186817437607555110227709339420129884532042770296327293351577194215187395081596001875798694324693258057160147868770856108684939499637750704986059482132437043393029299302259589582826595405580967193988239390466600175179209980592600945196251350886502079730652587191523634130832053814266576536528565434930729745857075626308326112634533197466938635151183681651502677864882747505856679290149410312552503962856038735482171412244311766745514956910195975030457867740478426669558501826078164147941211613591207046675763997640750341524959485531678871083759525712948828710188181910731214298424942362828329767513238544978986742910229788037721301148246340631577169697954335854389240738412776638353950744336229344026963547616626115653579015673193461230207939097866905734117268432757717993191710852297990261139113895721600203139106447068744225176505231787396241104265281131989241192139488461312304088517265188982094512414772137007715333599549779626976475570896210804802787688949416054204159424036973461267148226429900174584733990599621484336249228109872831347991964451853665683416510508795783862028586920100304076005718133310816948818163519792632716118821179529631637830746537019676142877741876658343182296630633110984947551453184748947498941724595188876089980858583378165643331021776596176515874245113657497911738043196362311163828284160827801390094410704330581637044316272940624741553649242091491374145537365240744440886306619065879904221711753917953557770063952481176412463018268591171602649258077568927355908635584834768266366556319578749675125100553620311075288875377513882273591956406466534194964475852613330617776633738959089532824481323787006158868775282333235059737492038495143683355509200945191821340965529236508937404589234776480671076944340582586407798097730888774821025803816282942059251198271922614311600677948456881616961360103471105511068039323180217721512176563158278315928693710145301056431661652406144413035781440825090497557589156293146754468770250358872401129439657329388939149792919602407873935311243469225751873750357918864302722345313776831261394482709809275915644149553504829054880404534845529590981464959818431247843192209361042858345884173850145698710051495856185953000376834648393580158895684176024502309956072165646396463024726729417530676181705207648783859079108959865819028375410344253482759155244709264998794418411026735711009967636976153339660624625328735448393176821687600406903995173634543180297371327227007128137882673415096653181375380254050028216560550782365355783163547535977467600367764799819059285950116518393554942114176000638060174164083014458207213193269127161447798822067016797940097285104060058599307454899423697181340929112318131774573809138637152801530923731511041435661846025020987101171479432173719874976519776510782291821955896269545189841484671319404429507935222570569861555828534742593951882326123338477822428332302019229892318439953165225843960933648711599341884311740467290827979743269590910151270504357925984625363405616617143656643496378465852129554992152786586408493620197768053867218591395210908423220641825563170204145399965576685901012887007829169944982178523144965130430611816897063347678273658081987460160477445458844489620465967258924729198579772898271424279409678176057163833521218913739040830191069215918419508040339164078498966170953137816607881301277774682083913513884896631231423223966202976128813726284215319301773893411020237992908063025375445958825454033314532658790070290258378800853605574933198601005923626569028357800075788777639048216428646609722388339442216122215069356646669680011294970073714103902437855851174112625226066501158620003947055691888402284707045952333613630026749510314202866128463711422232769880361899948845940513525316617389499178872853858147103264422854997517797974261568514859169455101369376618674704031154508586957541326358128426871155383055029519674503283710154382349452720939211400817984459082495272463791050096796481214282913124590285597719679483134089310957014705313843943237716603530664684963226962094241394843543938862803125359424378422703928234550696321344431097299108763222991529279554195196073564929068002559670066391776190644647879325780345428558660105163718490839971574660810273520260480690012057937613909341761796487925456598446990253641836887309841365732253542284668922741574710537725029637808662464299061099129043710861438838622250319576951427929071150783272450649606000691333741280338931001638250919013637474557619074948406462822777999944497295920873877099963346721358717597604243860071777741712318710359974876163899452728667488676396371204526389075966547194733883395682224301440062517447063943387468833401322915264374982221232219612425962196965413296612787698863778538952362425149342979725821613315632720160383113660333736833763551690039844522574093552823455627514746302813418708480909953199844602227515368147711878913632905493943960434069735420795208903668088101732770325687712990637950302445476608248220111741827274812703550554867831630699506864837554109629434270851902519244419431444245485396410597327120342849155400578227640754741956362340735450241288844907930133400648063677960393055149768517967089156553087163482185294125868224266449269577162914884795072921012087625834378228956826066612080885010959959416756017802545408033052385931908990486868419896390317932008399632617693388005732663735968679493720952637238247616795764640250384833461456522392474502545970233258024929113988643204288422409799134306853275111211329321845426250760918517753318480318294109194565991269700144265002999948152864684396088042602792317053230325456225031493308634798323705608612807339244389912235444720638816880471126627629029271687259804103705250571964852480233336417775300518337345154538207368016783947929844047858894404522133015837796885168630389160754763531218594861409255411049894173502587735484543318694808352144542377017023331849037723075775414728687159620998165195499361628069925234361103302302742387635309512476649415273396033312527248925617434440256887191269806915475524346939434046133759167172115725351157048437066241054372404153533883355451414177596951380258196342917336359436827691757044698972977484234489223444160517500845727046090677998278637023259200703161872324739825057524069567070862640477281056638434092189697644171556930825086811580065020126521514162725817092252150180351038603941359846492168784712174793679757142837854827790843817319345606184281889880670159335768866634913773914279222070096420864167718079438574440833230690885742526271841567984516960744217147227514078659639662073712957876721978346716608085979624021179526342785256941869721909312824557872469414261187480823150535780610171300871399649172293187650283056013989676018154063960560540139722625844685173332883115951232205138919297900354817312934008455736945292871252490067375737342841371688375331418340546167498227256729777505442732841144857236718873710433652524383431137763788293413736649568247882041297720728693089787591704372076022101761125711712441641783447941014316068050932783024246298464360412093183721431459450613063587664962176190980125605961735279591766046547487811524035282388895470686968305243274362675776864569002983286588544832850526067997754576995868721047136322426890061135779725740706875469427225709271200409699113178207442590683475962041200593812663971818436412875809708246323930899217610282434286146858080901580677066154062693790342462982619081115732394435713000372122188062929754682849864198681762025855245410892651481705321233188770067248539909183010962988391623352306426543267439648750286606310286436403089115099696536134805695161645453121791481716409032271193123150466349999909633959120639661387679668439930268332596731069603604949521577444948422068702620412136437954261827500116755500834045965654391572419920171156424448463061653271348397462300742939166953172325314577687703444097175886822621987230669713746726813165092915837070524078328214160373183617033168062546910912250580552224647838007812579431503626369201990246424640483622878040025975757694992784520170966538713980343790627421860432571752651236234312894603284213943374300715020591345558486946522260578948014494952587416430906715278465615461946002544739607394423958185012394564458817118290981015831826510672385654624908077433541959152248571995291087458301477572653532524312712836856771205932717578644209479723959929760146652346464376884108622226506276856355892192089806221019300282127562033475023056166800338399122321312257412933606130665789386017119914539109798207183367780601304202692092647881389991096010059177818870883153584645828252230218825324687402213275077784294666634852977326169486187246095286742802471871375513408468074165780674988844445226120387177157872838298038344777163671810805027453466433071648530467140124709777972666432991764942187641853232030578189821662621068924939051877719959949464137784952399156601550088501002098610098667484587660659453048438467977846016126816893406682235876470420598223562871721063342440525571402252644539711143121896507071958371757620620576697973976633350426629096336711557026774998347903866992676817963562346386164244521488959939084757220253217263668967096991156321538278212140200901168081146217945865658724395033768557467200203346851616251256067463869077874902995121105785146662440142463550619740746578636129298445517718841663564464204126174982782430724275366408596245058940139035014800640781868963097026705751549225343920131233959297332945657675963351998131739588971864808842283886555887659714054648977575798620396692271076218168048619466582401416372835381384488187861276452205631330895145389209759415530935113778683855676637060660936871016955783426937443598880058597694184967162832469985455676598299875281116579393660143619580587868777505957931615262037450574923659304340409737817965172721315537253953567545999192612659577762953196018826046115042763969546335253124632646169848047633356277666395141415511932211025711306018438288680802211621301314678298717130178328789988379788408783516951046137267509469138603930946472262445978061744282239168541612178628101436079727172315305575671135915686239459106196250736533651825942841911208079911890229992774639082202398037171675979282502737816705130299035329184097667595585841131905008201042680935954532080165565717439526779784160323546809487759041019266017888205228529319485112455370706611699692586347342472623166820001695178782748630244503606484372714693886973145047002127291557317535230848958163128426643549907986072049342297665089931546025974335397131947850813900577944155107588654948157453491809270389249462107205649397890288116767966327860578827349690716102073152602289260770973460229873235731325224961219142613946583253347245247960048275976236831718425806332807553546751894051898006393299923608843433393270000294957695947908479120186965989724576573712273826479909139440772226802794020739837843930440138584275377580796886422689089450081000274582620960978751699919729361195956541131483536213121145346407383806696687011958838166057339943096202534783913787007897389707613340969547685183521466134474227511057454007827149863999214526748230019385958107374770257710463086887247903708766486983753115309753865515592797221327685741952148322015583507288820323754008236783144571795597794379043950761577905688664392829944892515312706475185752159355449499176329899011158453748223911788315620811448282948274631712696230164935302918496645108329805559443233875616523539154467240508097808972758318778047037883411077631170396394187470954175590677217195546330609262128488420283365244227339502124225841437055051556971065475010385940463911004098205689045458306600018091226901582407263644868561303248958237230182993346853867981958344112882202162558380609111924936193376439707432858816722519693178670677878496026835739002864201280500193012563355870157556972009039102075883117292551126536015779689911166787746752049398822423743851949651606880534204212502683334165982701898504172684452149896668824216591607896084048948984997216709308731864124630058219214402038030496727571282897505896024838176517856417536187842595114471036433388473275077571572990794511887402079903019229386941848235755391270176331922981617701271863062853279085386216026107856624408449824446764217788616956963033256624910059592089178502262391136393040903130674169860558782549258599494808718772894061271646317158311116266608540321702155953178439646480795811576943984015087705924116789695667081357947663037990168319464268512156336158854034412062678918975961569455465314981536105855384595248784041857460790427876959279836481460002660453093307539671786117543137714873910140206254109676981194565982724940273416442166086496157438367242813864722831389587849075777745023406336875662749932972261461356853167049868714590506704262442063742519192224651842004163723484699512149438986411795319469380559002309425112411721766798380938284163722679569823496898348214239455944763837034822209914629697200706504131734616915652892210898721598805331907786022879809987728956584250398455132616581865289097497499137400784458625707541115128277937978603429436842837897888478590515961997549335218879980188789316536026259410427701913523194150082423161056613529843765160428413365050138361358265899281461519154315255850527932724586338000162995678565038175269939896957549870987766437768269000310368414860258268532926783210813839768821702841755561804851031199802753660014331528675045245286854862481963806334444033490497106925180342925592928263716837694345731036678009176801766725385491451985902492618625576636756151818965075886982882931148135302882648926495192529566647225735011679021240670767691761776773185111044931979934228877971691981895695253563655544413165023732806124555739174960014776617323815938423007096523461156728830490436481550066239706246898753097715166347159637102400686025372483046150047168865057268139947314507961310326027157944935405611292829392778933862600811297008068225988121621627923620241823336381968581279259429285274129394261815404520804437097718604502016711247421190095704114635227700454571250568878309857480178294925793493723817200443647057526136287574614178715392303570894950995325260642028922511620217246886510815443931554245888826863725326885866392842950231163657539194689874189223114733330641547559609457230933674696901837079625041943918102465731390506841552128424142928825355825486034766697392200580990472054416572788671593218240987022748613365529755554020100138894077863485226265952829040316025027028329486126563503842403870892888853112526684493434900239910923250859362110438617471867847121842909994521607334757410783085875720093059508655742555224562351638952084466315579744121439766606834818380646161572302857272173161182990119258480916046474484227026837230736972045758243465357544342670053945065808737425274050654471144658182757890591494003949093353286597190285351308543352665146117122110687168318394421016071065937303131921858213628188678634778689928116879489515915682437843508415810250836182875022367856251025063714616029212924251987652972880467780838752007612874520922979822768530084359632462589830125172969476286885951720115713541820819726637512282901636711281428889310343625780021105968019635781081518635592245891342080802076084502015638635262332753255340874748968022077727841885643808019572820447035898866575201298138107256043732375220566189429558354843108825485533759932328239493558811783407493055904378624725409635449333505165367301898989377998176145749242874126779257905251208531148947924687959322739958095370296730059514483976202504883547289576480081011795702294499514699840961633172735246456286590670209112194716110304301335021732163823977046007384994064831720168684426626232312999040822808472192601317856000386482817898816026671564902864107224171732184608900423764160522340841117811842233852033960446520421615091092557098114260978372737599385969642451316446621176199168282370109833380410993697251815127517182314672112715708552051940889526943229462353535876431189936216767928021936057703159677319205899515195778279937653313519412065633194404040124343344281989142733806117574685985000144067067940051334951303792713909209524812404502890103384008306412898405961879757483700653959150953825072252768484656809538573509625018386210950429751853659726487720584457409016313868356238767292000087066878839716545894451992159663622870868635342044495338181641739587254640555758855420911198879940603044258475763328007339923739144066298993568887084760707586086629769078849768391073157496781152338250236529686287645700040236165924831035950279786380868361758790234526073972500332528423934746288832062318597334879574301246181286039206016777560185373136781892420414126689727830259251714960387321688065818382625725924921225731124159555608493149028050938370509626388891173664059503989235240441728675143728737204653225126449604784945908469520844493890568578168313754452371996330203020807030346669765599780014100232035145573026036570721300577267501341923460395538492114362005593616144086004479559561817721723962318006722337032780228490732089417538059988885448120796165735540663897676181430319775903060479659482264024947569530593811083416088173551502200761470990918969819842809670097574259838837469582435824885156096441794652168374333359967646981029051871644357368943362390279263807798272336839980735930314546989214387472819847074590024893116933995478338223607998696439133295422537241268802758708680735776217972583714615475734032466952143368466944624711791475327055283574566648065498275518151268453047265542968155682334952762775078015575847027696916623915921953251769547789662033518364861159412815719469344357860598765720730320645252351145749271081147451446892351990873217208280358325753562240727153194495919122764798098746589820931504308743969814961647998338010829756397934843889175280524337676028747885580850555757369161867919290688197998984415110474421379429100345067433967850242892432670459197084578750139653732709620873983067959985680997998631966278215795001839816484621424212135691657374387622063476121364733989656646340283028260158326452438786073553824109983979736941799573627965477707713695045699981744040872942042116797637108448797682894149634500233134984910853526407476300854376864179412576694641266334863061756536566131186507527622810183266809073738916666564458144226295725788568385664560569323779754755261507364730936533340013680124660060624960755417160064909628201353713527156854429563378317266432087481339765368190789954305115615615149880903599435514199750122029649826917271945586816225972414619223367756770456130781627631403540236040425961960011015007411564662264972796935598088467530121878542656327010104280029141347427671250494030269143537949413452402696800930559235894238125584317952024051326114470843485262806491121006011153017157946746467848115695928424876120242641010159691232498959928772072545211189965675072061033435005019075621001332596410741578946872779265907232704037811167200645292679456637022974715237304849461129392175584155511321091652074974667160574696595699205604537892979575822895142210009552781504596363751851761307680937441418948590772061614238666382026275604385431343398722334485531097794048334821364505891298339389797289309671267859833723500518063203730633152905817153751960218940887245661643754468006927158422547687060421605245118282864720895424254108207517477759036561660475110471766972228756386235111558557362796551216019606179626740604745304304881339269348397738897870212207274781011550738679196121036628393340570467714281384589583717248222440727609698037409499395783721915261802640586604923195518252286788239856026461438219725284530401173914748851167918447500134605843503846420560894187541181573370440878067721843807577238048095484389624154983828710174100726637653862571139260451855769896013384805428114870241107064588371511589347127774944197131382685515251901168025820647140399011530519246561281838391736687547902184420261271317752952064530342744160234017151271922458584970793889220254121436464361571184951832982986240049633844914888860025643552465867692320893761737936672587977091917109574396357816883894605786605864935937409511273803999896295155317029777163725921037169970518852157115709629831422388445896327936594575717840714924299882966942458244109885061259692834509996513728515524270497712351613634929311508219879045306770391053521859448012250252229075217339547437636105346304392789232860786627050087380246803828531185365574380550575138562135745870364592496840194540098853647179233630497803088073101209319133747466725579504118001464378163389767467043028029521462404580844935293022933065180523520124206625037056846382930833060512753736481956664920411067711512048116554181582409087344953135570090117317661269971266570844913913813954540436049061976153740389574924954068395470253443497777882514728956618598531441402249959456089152124608546660711847540512629036343811305438890595190576818395645359029015340568264457471927519523108484632123490413278200928180544938125590881411555577605790731838014225804608910809813797327723488065582281039928630525373013630550569431874038616564601296667951695745640380116781549423876037351166339050772646433378531155058703935474175489119407038284512257457473207571911889544789442433532977790462128992445366673940605383251446910459643372082519765801068301380092414379335051008185396068296794146765422947764068555385581866722807281894542585479899153477734845282947288184255288780280243179420442227032038252514130568222778854442313086653686975718750792060867827562943183982716569896874316785238666837454244867324065329765160536387862948024066736633401362899425255792812240907760629511204911973048875441810215414247872544500225985147800653075743893958175964529670322213252649642299317386699569845906564859246834403801025304485084536632160126946190978955993222278889397852618780782631216209619734972199513833724948748916785212755698645473373711766477100767442477073281520804849908276874655421668931319988210621805467095565707280455266567099674019390690355562091015457133493223207286096315239522506821962287722869681081001405986052516099922193079910715129998339621431781723943419547391810746027680359819767718630884393137755330625826935871125933581151158198573420104048288132663398045068443040423198202334145545613479277784442954469220056923479454281989889560014624503600900009463312988005689131109943846975031223620153859104452100725022742409087958710745648558631613692864952817912183491871008379547916820232948010612417391275368102830283003640550067486283753770358185229223977401467674983230427807170709620300043521800236612933880355530045889469333072238932219034472226108083069053418470482153472506999707197185900168790412687167670018931867803510539823113385028039501690666034015015260337447416968974814699170273399483302816836795934552095409217045896102340016661300355696135714399477756313874418909466012267399908271881546037972108703668407717217925764999374651229350245329013857386601561228872803059153194375539815031745084320576431448366863664769720800657752677171040817026385336551860053740132116008518644855672591222127263768849342706318341187534733681431642255245783566540391713728996824388854932561014651918755879925938052293783111335328597893616684803037220689734351368790406007839345402798435824824634016567284253450466591181169063729757322857278929177036871936812066152157068244883189201516539226293208237484089403115904617599579243310904989654562267964093037910049094319441380918627933931795900867226161488853583599534656431984713724691814414458279756945178057551709944712780996277589079947617528420118704851609085434881409810111800417363370593593249651508290166337544999688431032965208829971591764863186092520121556948038415874299107233761976475752795397357377064203029287258060789761727728422720159641928119299658573730488099855562263115656728501042909387727274641336072954483752130670040006132776837701495475822950277262657042894690574122789135350327394832998270799497892763858819224801578514444541170045754287799959298615430889420223580996021894585149583556277221538814382773478595352005072656718152894628916609771292458171696674967204135957166370911370229577635635251917840660486370653815502453698051084666508867490480919620064110411220608791093451066962493924588738533759993295086764702233423294867669422800256851532195527488378362742628239469291325145654661950125354428035191774410653552562305294839381328131042853696391968943146418791787572378369603189577011181609074848930055676633202612643275872098408682663498942026460912374339449622250841946474535820312235965480291928395864301873892935167277303407460542410401126697983349845570972747287505935902222159852410998641361349040271597594648632396326036606969819581933652225642485678222054338860415062829376748640827843693437964823242099663057327340083103105714863563641444291039163894816797602343575510076464595365887132553075443948869921228957014992328176468887198219521472025246925796192042639766773454775980907830030569270761097412839305705613897228675440100212565108517135748037956387333790919073203325363124739205408275686519781413439351515201862158704621821689026542036341374857542275989735924461727567123246681408688947470605461379755698275792164607950769438538010687022683568545849739268263879215802312567506744513691847863627605138715266668222907261645523200768396370061416671419824877343674299718737353838545171987919507118368486639207103573567700301989927113133468486151095905318039637891870944900989723025545801820163113566227319280336455765757067696844724476858507387677470533303569082905038566142750845517924998124343928060526295979499758964976316979636879347373895377909153301275658429280951685393931456889892072995953263242179304786689955141877124168602498909775553288446835595950747857290935642098778481711805431815800566284814698767486386902428149858197437624026013585691321874699028178439032931519809130722143370560752902641096533637406682024266336301221253948303771544009581950471464288174867770899949664825213016965594264701703844731083399418935487567741307904068243312145035543717233311240959067031534294885561560851551356210372034170383980022835344430144226607342960671227613223599431114756487619159301354276541428240418901579540330281612827850128807552999428776753691511424591672679316640927145403097556976695763287854576286272474884512964414066303916538917377589865790930572842858513533273752485572532149870936011829880687621811359710298537983695132952610255921619330970165266667309532348056550680912162059462085043804189386977097867986222125260955417949395084359567370848692938322134751494541660058306435701018207428954132325791432800330511771157957807418422301084743351611264585006266794894913962109049959578118740256034639996140396006086719507698497275996398214365934244214945415222909100776545710435054867961727361019745264176514442104634568337056185978818296627676693806201598134095742672212107964802783080736094114824198223927696462021153718854896817065735925432993192507688241520629264185171214129333197169559526097178217925688327014233975926839207311389649252653518345116860631455760628947943131964664891130712280990123274523696671269104838910209785556112023563620372571578669323072100202365541984225257045887179910759213176754335221293762177969835721558775595999693554750400080379711091048004137935491691810272351075648478708523095293662202487561602719962903828668040421240399349072976860876449833863601899233199087739219049868359800351833383407308469309505741947909516363823806823395088995732444252656398304865752970392613264721884242595357189639355799580967190164676914099947492245511553243788544972129834159343018398922186160065867921889537925375175163937942300227392014619952091780700697365380091252819501333484992966608589899912002461374218604722988007948748162813397102482981404201861294476129877158649251647895640635183262001272028244108582233736997554322662006200435289244515169173245728007703896521120574220170226132507240891667020720009730680939713560084454990147308062258827947066963461832948102837731734584209490207071378527259558233693045675781817293610993231877551639741351844325009642451345509403866605789234157015201030189285910241808159606367254442848129354257947576759801014079065662645525350708171142834883109595670066127513542343794063581150282483597436446582321855232355456037561799260081651708061059714533439861153699274493890981957001584139913728082118490220296750226568876659764113349036970844901754440541041277701217814502584600900737657385751854459866987194851448286083675011388517263831109321444696866696842196888385996660274262404983785080812207782251534101531370764536214201134003894891445910767472059613694518641298181186631046245999726642416976850272059110134640185674601879513279531705311815936600273382447433223674516319796361821768837485342912173329704877630730619791923618572575469765928609689272286729653909543582165760118149456608246449203099227646846547000396319440193408147258829923212861120012481870001581789637895440694099683433384514851639021036263421534757627768693782697221269208676428021797186037977996474924729915203582335106313270374202039085555007302842430055752534885916213505100345970755656080048620450163447460171699293023975844016149619825154402001966272256928566460301105288979497689490943026642206830472336683279527395157188209812344266783451695729996328371198226255036130385668907124731370327904371922752645140980338928269351245309061311927396762793187742414666706746065246164876449183047215580503265023126629733352764921836639354232067494110966352626551240706922623600505858532354102759056339076649099539065351751320998550251407186677963237196272951648603702128939470388544187519480793028883221030550721437987936837793199827569107419519427818490576489021843085792352006062877658799743081908789098013603181989035820291047831780450291989407755356844947113778565113382517955534892635857356746853387451733642369016041910702474228569314167344340482766123640492371237949037809013222207285893513632624224134611160219714037758384106258832023467164618633206154189023893572741553302215353776519693347276748815148695311017812677233182419793147011438503024441701073567788030435833071490928604530057051627609767073518345672162521618921642553698788307602419225222952981931337124773918364908792431342351749041429324653502529523506876390551815684691552877788692636336659748797990589850539134530377352067697352133937729573830511620658286222449596487669393738525576231563505403934125612148234177668857105565113843000451352716283697951650739206031347859109671986096496359496885044302387513969946683540505908015117325100558764714499026341769136071745517744272237656801835848845225053838173084854252197890494739163285881641093263720554997466147477164701745122917320028065247197617776926612742559404470535324921838724775560382794532249999351824124637134936304182972158371332383038108540436035947268666869925478590998885362526430824456473951872411709367063665459245511547185154752061421968534225915598832951862076242220816229758550601188280763983136626071364778169974950201609248753799339259746114818873854041776207435116863392132233626482010967905148414297579553630595256224702721231543913663693122666238342738160731956470134281038479395885749201271314306815080604055764640340218611677003857809054694758794411931484886635596112711098717992291634358989244856436826420109329885480368977642898754937640077665096745025114629779573412982460141768296441610856560895240300676815369971442679389216473018350533099610588684882189710030555391018206156881751924937010567321259269140572035594669225825095125020262083049918887269448493249778104426540821530005756174962454979814577371696766767776599559599992213076539362099265006163604100066183684463213319460847537835340892548871576424440475566552140914316586985608242728544775995509747910215266113788542426270286686234577756340353597192959758237134143857986822124199443476952981110313687069796145266218167789018767870007084319388826393470389855913899512575256547039718301922493270194633162955143155398029739961801121041120455658223478149723964937069742401566683277150073870423515235098134126786809883001536135909760970329160908392764741729222315252658625007216013224899475575067182941690464765313914609939442085567102560098865849973649504615023051160246157731671679976996970811558665278065191829221969604885698109888357239541855107555793450769775141741484763750570292796936229619990134505761289350116436584471917765723587116786973181239434690651578195760244669127102864290926148056454887140151625213300295885582164611753630487577469178271383814870373329393273634257067938349134712150628625256248920058239605638722294579150756517707155669813257118795612230912674149668653854519459361820359487836259517630989932279463861251514765616365274102840914101131880324046223630965886303363457137434306694392883660270050153900355238529834945468160484855017653453118729556971458035066783441055589336906923808390950662718967216355232471564884256947252426280562222317478745985197767325991717347302466581438243676570395685402059464907177514029074237762120227873897936902266935662466314388995909251870847020568918687032255536436422417351579941537771445168837015196331958167649112322571815900049013081431850492103045523424683624184208208043151840962824247568947945592372306497646686298364562444988574533387931043924678726391749299700198932711351986574129504476008725024407856461407618858235172262017347623973890326357457431937639337702869864732718111585037120157469256972417544043278809969653060706662233231715936403317377038347080610315424489924486151377196634621006876699076680303590155824203270069782480124461076926680769698599752735917159080109385980311877789724500526669254869177311923709069788358858983448504180053042296542074584285978263679069002119226244985605592730745735498510765977894412193729465732472486820996305508342013246642969662064015030701967655568766454330212834147973655448044196470981728498308387998167537957100529237392844423519729238491261547496118666629779321197047831378194714934182922110935166517834388816594993582630604423977677444633391691034790394925898899399115882276092218793774171233906104689634279521414611710260419543083818647772518007650303200383018633627673935436395638151207694483461479514977257518655705968744011651090526195872654518004403094549498688146473968599319947724300224065832457191699639497620017055853469633746527896780031438173826853509800719739227549821749525210513493447606684210948226601361253585036975799623932654396151024975775376065685424750249578124184470288025092513933044810586707040632126099819953408095568263221772210888319059645382457665738231949480987902234436328507561169469820007850868143165298872915690148820232288683223964381939299677342368393918598853084721920635528317664375651416570996778085596025091799042873053660349073044627715725371436791857668274240843108030910111717451587961042844360597656989020910982359631887124100123071860042460989459379788943108739424292866848215135394179567942652818491520520697762599795243912827212549909584632360048365040807665694220217796415532848390307164076619222404418085642940193629956476565346174967356370864366481487668764561863440138513767330384095431526754322415129794079342811299373188260873653634709324567715535391544390116050620244280066598537545634151233852575432751519171825389860094883481763469600810183478811641663822835472851772684887062191680885001902964933175220263835264641696843579555727862034154210438707188659219433710762676050505678975353084048111240870388582203358705488405932836099593248003625547406029021774391542160400800428024187038198871742284923890404671443031155760241009560934050206152095017022623928248645468743211442130530869227620987419733040913079897507102552643596430966344021839683978619952785446982369690128234396722956362537500892637341328160840939074558290416803119978832299683409538267065913698257345305860292981205947665395574896536852679245463309741964372672245013600690411922094447916647599100325250427636725957859016122191323324867040199883247543680322035973983720051596516174828472260681681836060501117184936766242626390590241410593843977884748483760884145974510721225423196432002852575037787370655538609408832345116172159592649924613853424501752347435072163501450623142811999779749101872178192721095282352725347877086120115212677718920862810924869716606739727206714771653150856513649448097529214198632965904517136917007596221086469107414259018233921288205635579692970459816120030908414110810193715947135367412864627323557970877713796677605924596235411385053794665657184881332869450681067313554491706076903949684259511525814371950998847129439191837090703144394271828735629778617265382409604979717186641197982513783615848458531376158821785346540843876600855148707831841666402716553376603000766864991858655954523619979579017425804552680235938682451767382028113061347034796691635207235887076402272926150002690972918644004141970630856770991838043341908068570836981586155805986139569589698816937752676429485992591040607854721996741955860763684470862129812446118229758885166773892911563959153519294925588660884501326989200553933417652394547314292399215305215566119441342815960864384906735782012791469147285527423035458974522643322619991635155556077185519564479073159996343371274282647765554850488151966004290513261651222507843104265308712701216296752068828070574773072466973478096662995109908765097105722903349597513822645189323333191368579774160638988676150690835400768488144667659517296919372381405397991031103264482582938259178423405317422006995052739326365475281637988637059682074044159235272143621844400005063702088931550937701968196355869001282116788170341383112080576056627704523594318869671470953780136957057525698659016420633352467324164554336088085622227904781346146553886317022907326146906000151698904860969753994197282392124903291984707081761605768443680096051542317920214185806501583221119430676720789199173487145271311511503758382639195109700540293869202561591637286377721364678059981544598655543755795223001088797644383727106005193049979791728122436829701024836202756212876674365465129732974976316624054014195083398872589301471296091961194468629625288443327477188406307967997097745269534902257273772631383051993439611758135373420026946883835986075472726928940262776867562798909175357183310479120115840092300512761067495938689315086755843515958325593481090953199458013687886789590705982483332563497263856756089395676481585178924977650522425571113234134863378505168317485472672806153927231455696860862250152788218702428927543478479696927463524409731252958991764154273538985559421553311790760794313139496311460048003880281705178323110848237891208701176307644658738709124310950350004010193989887929525210971674741751992580456488222019620175304105528752175706659062413779668401322177051297902423218164695043167542178150833631874046649086785351823840158688223630932497254324975970074500490228623712122430302376200018463423677182981172644802089390250477984214377278527077397079148994714048354963503761428265278361356688438481769214773062322494397887879571244487136216608647080213953896534876843875294739621683672140427431237320342476313395880766504572314978706352261181153886137173530454581685396087666663233865900831881612210461148369033993813664875838500500579632590355247127703162341417200892321360556991654034309247090267727070709136271848093572318801008718575548342844907510373541719165268525923015880611613837188521378000747881692313300989418730870601649822099648490686015546175841487042040054361392173291849916856022492506542696411221131914373923220545815976549364378389706271648746791412499940201907768061746261419057485534585185187125625614897165931673530712294757912737520031373729856346645108915949464774317152608086647626635209831161945156768526219868435802391158248808232793334604223728332635216931304465059931472994014241108703237122551869476917429523302450356860865424276702965877216551542952205153149858770755606143802703851434045235772392862649199683099765308993847794587527501841027480055907948773628572090831233630013497161951379960704974364468280640479315162530363351061517751960066308721326219211000601993420071986331456675096987054636906622960101599179116719227504576971523452711636901221063752545659921965854236817265995055969490228545878744968347048468623604110863591905417549925651178230061852612551930233063780404652740013092937779891840804612807072324043537013627178186160327722490348116712371440209543863230078424263328332292533699579521686264526356210811249434210708915028259367424880107863114529016665801431523956769864376571876622864617298611963484715799408725919728319110576623914782011572380955636246330819087442634874668014251540066198264563410482178644980505247968183322120866539211571443230174536701280964158828762498158328679836658265105170357655453214721110123804976824666426163722471771938946001309747252615899742779652961075653917515998394621132687445410640553974792691555382233769195184189806970800083464894605946275736178848790736338528373973816438373746755207440382300665944906648034532032941478590096973744078850445803536277376349627807313551018121982359763229678929965815734229014452875842940988492945252295941299282585349427922860256896494512434980732862946384635292562259003356185556288322270813741672044914079791149349390260176788256070228042678669868297835719392324025220968244087415568805007618043023839902842562225209103906353252600958128360145737886210471422562286733034102746149455373716245433574142251848331064945404609735984759277078673389591903243169034182939631340196830796340272813650778985496457875443348366555538523201388420129899514697507531112838756646814390634465965610531923198658185131105724305887381814990019978634630178795862680037471157821368843446866537064578194456583992787930319103878164310716370071921445047290081801604202171144027362946053143641169559674422232198287339400568154740980433409265649826372498182122466057885851471281259154458826249839665138253279147086921228992376608197267203983871981610342162347323249246994014140528290028654011545781298955847235831800841387788203428937446911516724961516802748578299279158223499486558573728458191837426587575377379707005902714651795136886383986399736311490235524037719475292427336935470848556548725506838838660200811503834100492385547375499779219205779703718938625959797401204867615497150687865170011344438020194038354274828628692980548555816143799206437625973416255152178487997410032023043980489690481465541504679881339271137467565537745295200737345078643638508823019127986663419899861367638301956503384265086371800959961023266756020924890216935398568913173824980307832498940585558130224550112490825407633077920750470166669793716182949810221897671094919717533574802018208416204611903548694732419339185002301157366607309052013058645438769009778086460782382717891438530868494527405914017901170782792735905508367260444854901158005994011061376978966938829586268217302548111627129639321563337321823725815785430593184977990895479837954350904066904586427439016329175507312513823878572650131590465165305715956131318340064030910151207850508540510730819828824339963613250980327410927260777886623837958400413755722852945785134411486114965634286845135529856086439894895693919740320954048176081510099732240715254435710027305879343592335667387840954965576399453300770930070625765263049383092458175011949491437041519169001948755184496624464669935752774336584953048835482333083631349946808356849721744669295306975742182118571484662092737514716820627640495101681366374795866814183925272515991694548465056010694933870554675430742147610810072643732517869239914135788130082712190581438259771937902841563770382616022501516555496886111342174843244492392350773427611960510442380847122608612591548828812842542181517601399154373150205567388054348558216653719826831717543923452835590996713469700246489777940743070934551216342347315258388876360027217950874257291249363275561485418879450068385270551863117364895988283181502422894439682461755997236372266854231222879438990453300126009394188320734850457895323612689396439941852676961652793554169385364769737403103269001710243283639070411417121893768600699132109482217870477945377123837024829204777940533266495078259418734452974724558729419306709367374704047384062628765292861221562377950372824979733193442507035270078389589393169459616820715339480031563772447833921017415366405312710290395355341564811328729739974284086614711977852841123011527424506395074000040550881616073804490614130710423161497245694680026394413986548812617881113899286542301727723155070011304660290613567189124864891563390478059562479083256042341667481088883457054087721667370434165555672360635401171084631450854584620954314220350833022700922839606151330254023598194890670887085209595679215811477979757526982499689999923607900710088782045963653344672585851734798286675032063583448474029657575524601390890333905394186371523820925617122865306359898409211522625954852890965784249124701218636242608482523596815662185067159798006113381041369101628041746149975031634021655211734363633279089455381692963168317842980909027752261112441683963615095043067706367771187428359305495984055495789014384181617230193333123578597599997073746800182063885579799293319826202767690930434075159905342684379714129626973507706596907311172215909219300876504458040252030063902471134670439641217948458480494419787566846806897538238923474820187413507319129529783447011256747436478437089176180422369829212089146799488417537633768760594338141800132716607452967610494174619059187631344715582953728651572209774980618455645269100673188821461073396542525223057471663321111793712837725831546648030061634612335156247498204066169898783730663312348987078982155368606174605448548449762908359063319522626735383106230259874655078522373780652263896957075189861226920229045872961898628326980754503583083221678281859658607244867054071099810718580751854558392506870179292810879068837727181912146829762134494991776166644627116227705637273076121157919055140867818477566199750019976226112196515065154783258410727586688466956916748794644854601552913177937168398354840196340658515886750105303675679564659544554691871494557202145518440955497224982208374939661582671417961059191918263478547664948673003419633247918651439742413042100158484002490941415982876342069851793264606452019238442728732365681523041232931002757413189809605191782415625036489649881641571058164435828147660091888821846468546180945537948821910679988501129396767125480029927804639602844573819628170853674706238852582553303239411700667713888753442601972815366366417080130989959835551157292574219270090342545147644087990130269777274684417145669380398664771173082199315136778703716100374634594557290458935522341953627232436186328336960564851282151284334152743926258923830138817344482192157372776484790004924285315705373123812758254630052344775698855745923478285961220769231962854148423946213048978902639585650320002664071207625703970508186865027770630789889868967654618896943439057725700358657880822841849308566214115461464814594714853804364626413517511899108103472440711264419671246216027181041184832954930384844027526836044566900928316007808845145544673591565289658216314923012956973325917567742340832607985882179800716113392637442766225705532359645488413604147266167469729588480003258669998295892980751340061176200765573527029429486565073741925148938162323018629497969548361293376377371763688380491688386321699514030514136191709569647111103667623435296121240913104725019051426545951668589168459540567352057110418730520942323508708962935661209538082432891703887149446963983043920273036519485382710265931444993858108427873876505553213264258646932360199965586265406747813113538164622310578337295681156919104769206653904152932321166905400771877092292355232450428918555964828930304422574478010708764284067747441741962493854251497718532040760662160170576358053669649945575631767112994737702486053124000322688558151319152788690819721383436412455752686150754368916106283397913634033620425752860842882411197135519833356657378868004265114823258082725302510352970896194587610869325773511430602993457679549658429168677062488672897213194068525561234746955705652052627860265434415335360515288526542731097023032919132528888163200987835119721593258781213644249761894877926997803231420745710467247224742873461044023491467759609830334324342923743388542169604826624456486770669950933635504808070635927922751918210503748655179724687047364415044245488270010103900044519427896710525193675941338627099735965465929319393908996726684106328612871056746039095573673338893145083575243948509735998636581563231958433016672857337401223982028283926944841765203594734490800862537492419951960709994661013622835432759840551281256420387871572777346811364261768684992633523034071747693615013638491840975690950521638489313324059949483334823326467935817264072818277476982417430236957394250418111832993952857679480186863871324243046374030980786737477822845490706675361372295657658920065826466051200361983569630105035068719597535449973328406703262279165758586169981365423420242927381889593868243572631331796543369085277442474051032007231497930720537407691853774010716168032693999221716145808741156989189746189749010548275403971869187027936771690529031864303174375463225083598255322888071444039997113793420133092920299273699035520896515243986785462545424305596068282467485155471470863683071935113322075428269374789636262322633274892483360576513214390051519397731827588186177197071235770269001667418962554271512818649544098670534631220557944996341968226996366605884269024791477056138027268824473447595006966537037320823422631789671552619110145686907359151390464276680628325737435907422721602364625448763779108849039954487745700146690205801894280641248781012883559689624391606422407593875424861177160787344013810918031835614043628148773633835075403536859532126071803774390087228565003762025221749197832406487863647491546651977002482840202400765688835849328272301403317950277575977472487943636745238128573813277312309143326586614582552955227871004782180759493534625059385646983105824511552713188145197670565929653314535291740797900058051785090167172757761224932007180180370984074834313848883957716344021262357752891665746067112227872828519779841375382275039809233225764258223843310403544568080868970748345291463266867511287604008082857586992375811946531464674886540079008597927260662070166539294855742802596254062149558497511338923218850367481177654259042739151764677832128750564761032989625536355549449594962000248109139279816925595909184696642604692386690963212241472736401932951497818343946331440001566123648980216395907544823056984999802192014191459555020046657165536000446635635544507598694707697731226320217656759905355289151326112558816720017389442869413542715421719868556590591798229940539334178311607657432993600988104990040378700456777967888380144725178291006749440374398535924671058946413405094189310070592685836462532937303155098098081649717226082771196823747324560141678077289527100624808385804428956365788822796539491568888525742431874012339452788146521801877374570317507585126355947657830566762720079311518207996847479135955988946989913951727862836270823970359793321652586360767783507281076100779994015803282165537821934893262431162078509499432174780424159706083894482236355706442053126104831941817889612787724124056360334955060033262175824515753816028852798711554699662479304280913418764712786567797820360921632295246815221493073754885440236364544260328767913105738964462716879295367107629579519113277790686708087800795969255203464472700881213029929100688992151148718122454440112776748500345092290830880654389425321840517897365003535686280866517933614234716522993871343275459495084107984140484907278639899459668407412408835232977039140594871544796778704500108311898569714434226874078462542366233465447857206638776859798392626288683890783380357293091861224230356164454466737191885800495938416262495537238074381016614418931241482964004697661679091001194230686719361093405735892893568469744657460342257918949981454525013315027366796761970598488703110164679051757930566476419936455896795559672945561391954812680755425236948698054712815504503843922189600667898055558397339282503004155567925774014759402005060896510162569882948917871207366192453302547137887164080603698920308403918542394990782451809283797301694278326985176179532754046098784073729512167727218382741485200003371470433184363953044363455890026384987167257804316391009363648252780795696795176527396020591046760267777204959450189361328637378672941603789399064947005793850331502354103821282587522767522280388397014966372073352918451640864664880015004782051343515419308007181251922070330979531363495222381607644342071791268404225715511802529984230640106625452110171880736696110334792820422197896244787070068910415281754869537310087055853750325519583049038644502522819699982656686815860013930944609165027949208171025238481373623435463598049325992678130462349863262382657426485160258837614758659268905958981407059082607689877068872284161009925488460577047879006044363923915371100010906519320703911263066757740879464236514673566851452935079936112514424476160570206381634362672121306750338180490908580548248534982991209063029832495425937840081007278421688085288932890400074054675579807093744205552695403427263806407118390343042793068338400747174984984932571752410108532577467736154329888041942797594177341100610389312938938419222870397247199611653574589669330772207791418065107297541653713084513005222856982765274377413770811321881864385736951356413545833837848142220773444947399511046699819054487292549047727936435993959481073529148233557702028751747764969066888209665183177186816878852692313592718052178042679720280918813157303094696538243500514034192266275698498526422666795742888663339667932739956350522486511602475804484489957812927919383498651470143981093960978564513824514050671762813787950875572665681146848287534020637328799307349510872565251729587566577754806875405045929961091056197627585940973481552643601672915148138622224326698938959972089037492677201807461979252778258400677306139836206276714920511176080077197321651140520313272831083755786923467809146360932153718765773702967179230501636105656425097826111772956264544759539066364652538145652932580229454749610504945391921470007926399580891811504940910921417419141154086686183793578403301705317814422359520528408091962062868491455410447390438728757684365513810995319542867623615754732417710003401259873532073715142355845123764453231218555980470049979706622762314001572890496724693227084929436743588195446148382129305253900361891516460674802616976010164793509280319050870157031489285148846277818882556715749895281007668500436472992741953134046313367658145623717354690873601929148687414047167261105554088572773240162738251024691295647779784641078316526690507183307440344990332172250380338191192821353052344847697144905677911158719289299976070237551197190128704810139770764893975282530786008106558088816482549599678557248631688259112966053512273346027867013174546034712526390877640300715862640166954852810815532443674611821567282239152607740619698623919077469153452326143434015814610738386806995278091095401696411132081873641878437658646197700105791317665091335150382643994432928675360555209837415815684416838352072214956935487725663277198074790416814190890410689934826552170209002703660484184583792062216745174050301641252083969843310732223211054179618165448166801011221605864579766007362099139513920365688893552069042640679424766459606946030113991403678491854737306049665134389852682611572120029425467665844759838358313045234184818723297684989714135987747568840741062120299362568871329890906961317655204389030753681463608355355863572916454391445017297422694471474645985702052033723869499844160581657810995135998594742205134671122725405028007111278891303252654462383756833051506797983175179140951356478471966733267581436601471003181741251915469755679435294175178504432365564848909127378343303368748928462649022384225036189238551625097594297952571368050965814946974596000558365253563304744883260349667777346132760569194111977849037652372762721162336240913077047551879519901992119659810707265127871430369949601979276422255747490337508531241142134329697665967528050605051395911636675365503115426548154599831371873955717678303613421286171367238874512587030837699808027555329607724771092589197306017542179319560943344469467442511892874000705818013969231777802977986273597332352652955799189951569959585592231913739904360727523218674521730601103310664864026974485421278988144871132479450922063664232137036534694551138482270171001805706058164123661838329271746776567071102522310389713411393171577261867833554516292724342386916724489121565926597660171262984578562103257819039980664783445525158725335626327807101554956803116329593998229400425812128642891372374819990862580451970616870575361348125647482841874824989801832852450769052340446230107758786290943256384062534246662444511681830144433833705439926801242049954265354434375316697369174070452228531923100968897555741079704699648710483206887552650115015698215384227007325950088322553486586488474210585230269961629162928295790561553632317781464505359769357116117675281933364563250593097589488546514026773446697682410249604391869716828355896392683287557952802357163502639146969638081156487585539250026509001444282061360190548075706620315102041738757791793586067998198426139172906241190190764438513014755716842461163947976273669621094553869336153204320627179635726851074625942373814127379407107820721187237955163723746727602307736096109949484516437810466355961127979020787236313222785688138634952016458391496309299335784306733663587013666903787109603740665161624521069843694377546312425928360843329514158075386372100274399308298396219425340863936707101897064133395271388647607716928069318905254187910461174957261790032213718732246216968791311038359443299486906001558662015176022325950356465530254096189206146888187527161522991358923764656953302331070283885266839112495389827121046227385301486924430790200784609648036796346896377698245179142347089673828165548668665334183867431470840934234969265784601284002546884296870078477126470101852247841775347126917386414032408338261983736750802768591812386325254714901478363084911565406419714267606962081316244113859014267363464169331701409499970964045114092476231915917203133988073693613511048108163290477157662041631196784345912277869244860953338028880389177101951188246274326462795630605291219002831866528134992663931767024251521278938670792335321759403309026144922202958842110890227417308897021880894545964568601168554223597249041815717890450312078661949105394056498028936344529745326755831133469453836235579038222563888638539142477646102016486271833825291288228326660278038211920787295618105660034139775856756683099909507394566195399951807676343318456855988307878849365495922082227705233236020840588605292150106753493919162422297721685379470408771598365374533432218729557160750237003066171269478174708534237620154647748068364633564585886377472297068029704384323506983354726457811032893463238960944233841161674206575446714040287996823285110395790503445000262312364527139637176416040130637606522763531806675532066518829243222905694847429195946519833980567250994514558381084257601657436872132644227243588264458923161189887282227257147124500583776757983193003473157057019875664237408116044524742359011438592878862289049176459638175831981677150940115781425895676486371031130760738508422536025029214705976952186863268653532960798840328971595458362490891283838453643937551519487331874027709458409005081897172263960828627477616945480662361357749344009250430025189221831875371701678969097693100810769200949868221615386333534058933333410916964975899581454109013138894288057431342750552958481450182828606678731949536424515119307781845904399642537933629022387286032798517574532906692526728719840404055456404110679074119337852475989479071548495884596275135643757426808255491524148642226299410253382633712226476427249514147285812954143757386176377971556964018666087605930625174908528838504923066851391036224802132996646616686091219320632216024848437204169521369644408954151840610383498435111002593146876968421433156693203091458915365503164588623385547987222254776586101552899535349097093385538303256433720928725759506794352450588024711027258483263379699129383207098028747575521069776266082341786175117278893644860839154244490511685405687487578380787732509950879400451105352707838122352884370968928503270888015314768752777844355615105454539687323056454222938140000365772191690260932923245320607670982404516341229461338746656051121327548450744691361483336422532371810266248264822576412165474309419647047317284155590436731023636568050647001990882563273875218249158126034967185364512048043036268857275295932173329548648502502465116016598656620847569317379852933080118751830809912093240122478240700786772317622704667478402418741691100563619723863504703195650195572095522858161424672973995158380253482634657364853099322225834123312083231176233065808366467425685916177586512954572242369407552865514667008477193647042621548889861217050506082576450950333761669955150647980319644951633561624421455867866091888326964562488433813125157817796690832088461149873601171883171869646106725456744781473120398909297981696748433533714972898103701522060224736319261606487186897660780993302247155878172127771568358038362608008671513177401689520122377401451417715474084571756043460179653034678929424640385678397505877957087484152514019477092718314852942613546488508775717143299295475070610158499167702102821000563570325085847279608236229570967251481267825979559983136797793721927637864024054578075209223035685401852539727447880416199286230057426012971468056468645371087305355845210511665163703429577588672526015702713703814825368402905452925518550909601523787359025635787107056569314004483148115754142536500394558111098956734843956624444825810330573178196372843658484521719894906154496856704770198973070380034139522248661121958265022883779674297370424551379076817162632181270564728017194840759637945725738973341912134263603567699689598856408152231906978073065268626332237695271380272507238489910449485354366443478663741671960968109922345673963098786530901018998087918245370808474161863881761113937478984574051381723133861166859653787465512132636555864600713772084869376409565396374145199989277928133096019323807074383996153047620448774214949111522705647093327890601157977300332462010177757215148644446456894949790323767821922046779749981495252688988849735959130556005431930478442975965966406622734036849963756385645662973292071852351155317908644041101530454625851183868663305599910658588661191485284260851145696796046662831528878235835406214241690454411469475333062907810405264144034904659604858645780038314369148363286627278522976517822475005709093456900856003843423208479265917092322770965838153701354303851941765427608921487188192588512217889459950317569952736590542733513580074321525374205618920061697738281561511711982095658569003961884940920333475364067529740310460167052821809728024407059383108689469345394062701948165008145288732376032329075110548178488685617545705101417878855970228083084706331483426822687517198629529303592663241046127546360256548685842253147949212289155024011159597357556920148975297836258459958553142914377713657604856981967317287250343048320546108644303833401238152141268361411852957771932550972232130003326151411562018783344867506240032975677514901007838560762911335029011797969512441366778113225328354241658515071035668681808025667421442114041689031637272669176294926953488073093927609002776396356615446239066349920072919557032142933325822822208411371058393081177790819132231614731800509035695969677572288969024489926703468868625706524829951312590153227535063446023919110564854773303895950895186639388470365259537282039229327284981157275633710691549935851215112546991449958676749289144614393515947385255252988808365570063987451774990854374766938935184581112580113101409883907382499735181839894516228281944194790592527912233585189476615937267305687671526127488987302598874942964494129301557674827394764793848094195585550056822700940993609200734955065629335986319258279077383047801782802073035837855648895679415947464644563599193045552411723036409859206715968030021907535456394146085728688690870664341993276805563467506410847286750202551407325064164385540132905267636720607940416019549764276992154624728384074818941147672389040164323162951891067283539364111959588441072470505470862881136927430679767916184480423334401526345193346046503329511784726195828308376726660828923692004293188501338530366312673548301754756249546678022272543492103588670707191945902839146349419673980033297848572151253618268292988421844666104493345572926116261251102975934341912688439111308096332364654998574429588880427085855937223083427439460050260568535555670860891352341086340546719570369813401794461681023903642037270252115939411826452214373962096722189949300765153323215167751762721544354416957683401865087019432562783884821747533423421847795561034494272475260269450975179806951810480639457995243106243653898089965632970641051187931040619943526494468470644558577769787681118481628538628094748853392970062531827949670394167459330628122819684678339882968265863166258567564665701916628408213731247750160323762793230887057229748155038578682773806583153362760727252231102299347458858808340087757488835577113740527266596054944848604295521695666864162714928731985817178136664157586430183522772751501005983965947985931936310186610028865124302207018498232372448484003028868283935501556670980482306986914247392113284525498151270623059416836000050916882954830514147749385863673679489506227948993956383169159644130167587744040349952312005060988096116419690582723446393352595735903497772104718370453381831634949680155070008669928267713206311097453959125994739443034237172487827389404274183114106681534903812273306728011513548146333494507578021651636255490212402637433657676046161830349643855962414841981682977047934023456794119925594823924967910663360515531667140666978470656261651543719242573103206605481223910571571700492756345854348405242985882303314558353183121190343304246828422856638886398050037130429532757405162468009917649310629928235263962822617458638420449867775576013456464226408811952827157947640322291178448780777601035995635512824023259234360616011525787450313314213845596201313744225883313005375023577817220018709659453734370210351179998829301645090695884153253633657659166353905973862404414390818583374728372979876170228515258560449261428641784229090423567010888131910644086315684455609671755269073648220917899864474294940556541634529124411718838043612564476453704099949705969805036939195735728796204464346102031019422390882508160712309665411803736134515357913409468959794039130028013693813267896326402516726981550928526625436213104058194783520061820134122385408124121574187107251282604877039170270364521653504677569883630372398185734262710775710798243035662130874802677390206150961166203632814803944357307291080569659712008237119477954721951853194455242438544152664698519355420786473935197827928161180092679459251612972118868489172096795206602065235926246315470342594499710953052895685997492569578068338079888915214720431709311471766478612248605904026308685764869360559957001261634801322472057676934748449114400578346840640623087228643073692792724956173567923050399507969816263648772239132425731829806090391773600832217220794134359408535872278719620266484159088252344895618374728501062089360601086608613698501150737140619597423400706461651248873011772251293999652571585972354236423191734681712137145793015786407513514132774779584549162432815234945360212991732430698367045342935404201958094419799282436846303756002986626571066092665408601932632062964794093479491959859157541547602786563612034614842938438703251848793012637465481517398473898680496659918876242376387570919708593990281611242165205048791556190361863630871407776306979064408055536315796393596532468959122213919367790581208054219107191251718459675833556159074955095715711593834390452740252255847046407975418038387790551477430453115715845689193936237132732386830339297745576432821703652922623256439238155190093553132700536570069661933007428057973833436349537147343563655931162942153889448090018521642260910348960293704234084337736353115648584686056730559528991152148266168713763613502618705256354781393318088553279591680792526124089294273187170581926576679725957379057572366141282051718503493613333264688255039332244111282496210300948105677560967446456711258506315528448299571693304197220330933655825200316697654496239880564153847876680840581224217409965847129071365190809091109546967825558274148307781254351736114678344684227519965477174662749023741895021798879569464550847068613426375966322214097878436463065804105125970608567987149008557502665323283380526482496396018821766580113400424188362832837341861243654533129718747484234978840494474492384067257840559514179347334765899183153274615311750854515000458196684194449354380808000677694377250728942098581605540735433866598291804157525092079980164099904617692795034338304709206282129829226046501524056944732045585051312665436667321314122817720717370711009747360397885804389728789820239267440410734319734313405439758652215486353450794435826372458696630377326508987427744778199834407973531455414809602055556117888352042965953794597486777815757072576628774018839477254892330734484700113731820762356759496055947417647848380870004528615017743683798704646095925246171078252686363233671915535407140699288862977716455955610839819908374092621020639677133563925005847267294171939793360471387091664876831278245343859794141923325640506689992622318532458434799764292109815601483641881188079850002229936125201284626946541707088188356500028620058003741610523261864344603323278053542582883729177398568471416754183909478903675290588871044581584473348031988562108384330694595952453663289864967347897490005835634443867980097484855243280814085035860853426117116138922124303089773107738285644853914366440209050014367157425905022123346027954201508742799528731801976190393738980521969900046441784287859870056286814745743200318250851304374333054842678160064780339789908372761068936842731362187391223324683999209657860605783774088824456768269785526871979919323917048644487745340013363299025923224306665911334478868878317498683763912615714331514395564959799293914237248383645805012445433020750543516743026380398373195001572800950489368838818316142706047925524031549490540499835808231033890388719261846409798983035612566424089359060049250362861514630984375343194366477113694613720363581267913495532973757818375973898435716979646336616174394003564292468291023400060954102809618824742287842112321813091938427624458857277313796793191355768074550736454686175806632573291038625702547363870833176453648523377952920615901272644656926694156337480253083600502013625560039431507597269878015857684450246506255109539980854365216412013395109759879567794880838585258450512275923937627427124138140215288596299712314846036216280606682237027355610816884144600029944747005048874706605176659861864458705796102580107358981765749200886549675421579422008016914731173969515835531170796809825622489555006089416893983252235995599527128482174924823232357819835902402204840674418590666062481966069183313927924440561311630467292006779714985501804359334878092506971933515716754765121529757747784573889945297273757736378618425124412734182996536540135878399126949943683413101783702509818628577642593842148452494967335070401454721619291405984167851233836864966145608486680206363773230115431542807355233255244441213492273093747714992591618099533298182359346109634776951893546667648025326949369040350786013802888563743796725997348569798103023559903214161035856885115161689498198051971523683656523243034905565023288937038181479934308980855701358633866169575936916259436926348809089255257802860851909410425941563940209962598771804743882402034573041633457353758405555681388971510726610227115640088639657085328722687617662884594750794636862512605405872392651560547873053531383747375987622474220239183085787898514438782600231099351071174340605366472672974334955451820559062691897439261540503146367207605881284704987230367514098659312309145237097723065440519683923501837752083386109076467641382981114525536192061617629289187811842880819778078188274673060935404132720153664248542961392944000573851933170714774982584115407183936526406006146711816522047674761463477587941969467196958675423126945433953048712790459110231933280284523370208972390938010083373562587502993533906892910782987083030125376212024136053655237305605564298466359334566839880016108333925308902226664250414939662025580254934987057063516516143832819742686784534528231290611363032548761280638822560321371824822341964348217483929600450244969706938250354857688284415348419714206263941410627231349815586784991269951640695777741690832622796515836560736555106015650357053251470825545928209124581702850095189734950254860832731386293761124343376189709604601948059039749199796488481409887150397657427990137751015036920363948199733544621648656807203367364398972931862728919669899858095004077105373509190074132514308562191668348760161932118518553042092558180154917847025410641800202724075964834637086349925585938640011733679981203254973148783211711862769505886277666372348794298856746200463537519011981106243421226033759351904619032168459122688153676704700820912474068783538790450956779812578577026855479273650375747422651537428959320788467616682263746188231182894886250684002914741881121672686758026628383001575682862542635045285215575248264112272287956135600865189083208736846165286045527432048195929391518716385297746554962653629882381279821383400164644414423432865125031644184204935920425286941084305463615334521652030383304386906568823755390636784634163917005094186878630236462165793958853842053176073146756516084891414381223453568481077825922615218037143590081162521224439264028337379924179846548758151641942683739286538512036546037263583954168861455788760092949193803773228907132775181217617935620191057327902389281936241028246653128318424579760339321145866790520577986368688157361047669607011635887173446332714005922267132980276783912493231726764260225128961748572058631573148298920889869340693156306569616230239571070742584154087133986966070773976631191563006934954577736062166333787832258200891627534092596897274218703754971579108008964257943142813616019241196980038505960536881314112342983672538251377063826573636809872644004920409947142414596221882665049425018451543868473245691880118532822846313135720487553554766029115168059156248694960081609246858364783244901931452027769532633725830419728545825298004986653442891801769682418949303605098642903909126484411443804726031202433557400882442398639892212829796358913071853165632063658365579924195562526406434737808400866826344798875530564504432755865921913412188558852455904486264404862174641633521763647222057638291859339420158159555605141565358269342541695697356802628325127374462054560496121894972930224546848254093696071997757248631263701420977669895140081244847486949090682365890107672221092255679655302266490678193135198386620455935370102324282441106948833703735373482043723013397370306272868518430578616431383281279452489585696615840104785589961386307536850043176032914691961964248118969684084788667166536458315721890850340560046041232478166203591807490928770012889902468022780763586202844508079592498157168367001314199214409772565213267462054732434955202129979401708887690902653776135717029860886160812018519898237414318874555372047554461003455076983236327752497694478699132849059362457271509332899938105595294215108775741534737440106314453242745336476766343129004846955000949629178063452007462821826928520915422261070644851041448650708064165963874607461893667526186505906165750860149184638313694814916370241675121259112550935501226127183672741375183962974999056453289775114541852668275136190895418692286492918418798381667570101600459203667265124527864036094189147387076363325017131398703769101777307659643974160678415235501396290734056731917158638397856913485446725987909279888969463426803430870333843586775392172628538246214006962928174511954214083458211365293265175144416643055703618769161398990834635477130502544283858708041846963368197634809819634042160135077516844568812665236794409454877557261848825509952987222155155992053197268701768113366976392160814450254835790147946364502794255331289600766205100089996392688202404139092851179971792535996120553820374762156380651216014309425754167374568985443289375007635318169734761354008159936599354350964841153857593511347303830740468740052448403316003135541426310146359328204088597325321923898419257338674936066204730725259177534826638471304501899430799610321299159919670967844121820857542754291133656888479417197458612084643185888578963965283410924493555041608938757440255715072875209449419769804740814717720180461666499288232737480138548320639142526133230294701686647184766492555808763867068853861506430890717467865322822487147810830713956777891092096680222531587104629080373503352763667111363604532043005423567131701892549238499035509354803434154466832866475689547921352222204951339118321610680693539123584883789876057788787672606493139656246676225404969323472411437128720057180324489822801161811191961063609124881190356266006892055037290684144128005207751598852986264701571470437507429321410846192567366517250713858447821955863537748388176894922018936595395787480107782469250751609642904399504297635833661770661494984517868568159003252933184671147258132784679865255314813638221793899974543758551025427437755456784098871564817026178690525717944143289336188476179961918759645550387696228445680122061188293953766991845445467746967932391357304256727950301072655025459590802971453758300979384447392954007579498718847726015490523800282605056337427828577902177742980498084032956518455305598178632932743834999414508773200308101331687188187886683081580701515961308034529677020705830338377618453257450192864657322360426233756486686880368048391529836071891623112225376546228797196630816801557439915501482803437100109490118028371665083635357086820737904673938351188698679235903982762943994961402272576337898507033152858100930194058541938535045903521325135265426761540572248693018087150957069743910007128396972952788373387964578257184512734317414679830646268795558596537075083796955061983942617057925984464246652634207844051020086242866541538677447090624016750549109273634294353689308565372051877838491338750847906208585229703542139074090413460183132892991045939067030598005996379873002687674985887260073790898826593658644942770691702518450494789710853897152326589257963605237561894618104587001314212105583384558497929056828046940954887093875499265891492950989096382607749154722679608772121993792955530194392499633672238693978249102062248569318083372323960384003508512162777359343615851820451863271565087147888487373090715360664006403432043146000741128272123346127176721847323244074688122548795614069045692050318325741758268440299081963433627647774489187487749824895958863916422546396637575430332262093897539868905111447384152400027675332329014119033807201971742055687955307384312267983553567084406581561142528892293174558073065984930414022292870568894241855714015341961890408687309159114506929417132731383406086197298563222606736934665283691748832637511882500013737483181272174957493334514440471424581350575711070757751371694765883573549423935293717731428092472139115113026898183083309330924733789874777483536919983126331743396602152102880144409769920120071567371673981995619607587283735015504007582189318615648394363510386240831418220766751496395283836266433655726677577288666075847062599083448953087870908210698756444943910652634549856271251017959568122640748772792143164792736003199810452809384616971544639249333642011917094544907140388835255055918749522371137590753863079742735735680692885357784047717999159629148152286771028276964482417087652613005082209569910826780275265933686813099788617402714965291750874569401967917163247840184844863662709562026466254661093973157888006371372252938599342586014597803188194401341163762649084718152899844885756705089261230354363180870791139541417818099110171583148751763075089433373879830080613581757742459279121909433365829674050378193365139096757671927162950462219387588741204580415929405273836562289983200847283272833546462728618812829266113018171030059233053834919551860474620013250591112885655548551843005394184269615652609823515351669056652280346889118309515347546858062692434463644318777127473483905134482869327796310709288811486237532897840554185224873551442517634254878919378480284243041772371675492728141526462032384445545499510189323674292293809832457737838476070953858533306007812666017784223289417440135782193162736729741118552724581538797443949908686786194359869851688980663912177786141815213132978587072681413047307584926937004884936285197557922627710639490852693136557284607561965306383829206591092259718684859042040454489439897770332814734606309572975650954188833523786396275685493297399635433534537879439534360202739250060098888908111864918284490940258713853694984848675138499905077776695509158844577518333241383288205018882609444710666731138121995803176457128368925513566295488715039581156995036510870135817876089301885421138406999270873303284661946620522542030818519385549780588618390831158317750275474265691069404956831491821155132821384152872335240440948882682363801365501157969548988286728507057755398032447996133249139050995249067594374876299353362504417942307576207228244750271981450938791182345973704684683523084991225012076650922293315103918733660900719046970224581074958937215833109168522851809866969730419565131969514699244754555087231275329781262712018524679042497608452690774469521110742888606168173288074264511540374157695995216655592142476153755275861424789598937525066809430858019680572724256315733999838001436934634802215802408276468464720376680677234083524993964583893224445277145489713499552761939393494161512502137808056942559902161039594406595279013023786290252539974089866991692499920750120872509959784732335758716746929537370904249461433624875886945621023470082205662048497205911880347321993013155374010728501629215898330035145035103290070778735844454688704576339842671862078539362282428689331126659343249203528805515499818845450229035929899438883373183231391117931545679843067146387628920728006378692040980096163591244470629471757874605110452299010802693938561519076468578362086116817926903485423971372147590881634908494573876468469264212173452987057435234796473042304270340958673385202306168186281071446079268002041468230950391569596939684162225017168236075570631056973662161747026196836269082722306937001366533595876743012506140389919747364362979874752805120303908076850873908068581948004282307859950895480061075768904241997617784572633689211577388173515442016311898875451168598712604096999432053509395634222171659740323486998608041492377434048482128996536558958867699979544323379325897593589740460750168435200056754429969949783136180835874582433415601885171943375137403903189475839305260962421302666606537323919201696658283739621026451406197565036554457436032576083026875282416464262999089808529794639393859619224751398837782539497101973164993069272013483064173379242423097952090385401480179198325761850800292486257697857347480160975891669374719349083030381663527302690741968791861597951100061028949413414742695253182977937217251218455569499017693706922817115111546283408086696426204856227352648052568687150738519048957785101684695752523867065510973668617546596235137535968526835542344314619991817673467071044526910218015251071860682458854169919295785689981262300167588873748546356499252853622399158031174570914720086578768908194929284062372943947136646038074584634040338518417182744340576726820647279491040061079253039025189269601738270104789790954286618099964007998626954652352143570099606238059029111170301010770635891064957943843875071347301220831278509067833496273296051838369715927506131774702736863157952527552138316869488494019279343061772254487842351110745212431429903988913699639116019884706352740705087095933978151283337654626045111129954117039398003287392884271744333851203248431951823456020194612297464390575729747249636706087443666386953088007967364816155673340386275027388373859641917405801365206284431106379651389595595735016226006634809446336817959782189710136814564791145358477321722786071568706686680400230879752257929691094608352468584038496918265634157986237212436269234479146283205672372893026212419953271782782622808106396563134621542312362577862256310443114917714852690440598590044391403579637522628558526766131400744338631935660252108161942893977554056865372493170213658526475679125634949514486671472858096137056126801075949480300803439809764655926434502300885673298999755609060393625506375289784284031275780348151014359617157596009733949418705394665554225577184499402566258890333877905542511135673148495811712695962361283378390680297812521340589267389795974396105155995646268353094181859777520885938970138395551957593345725956091097140245522086354606330926523721963228706249223584479700238771016734009319893935078335923196367821100546975577669620448661691434020240610686590526349629672503437454840112051486340262950976939071900680176651578320257167802056589103871936745839683272073396980744470747264315778892407241262526036866434137317113751272486092746357174716439210054708300325928495716438415721662275215660760378268415090165822148877892640664755224713669600560627827710326486700473459556404749094491172852024962533349211918634808403388328449798243785891990445658884855598178458151394143986927350732589542271693580217140367151692706209012357562138258131441218298917499402773401643581621928881658285726976415946962308947742743909033387490111160352336757442605061465670831112770843379230554373131211276339269572811455137145125362617944760351829508283215549749262397584815689375823672998435820039171422414509513319205274277896867404606881071520257432831673307240723014349651651606298458531282343759085074418796548666105882188473041433752871515627593966393962732938915756140080509275164226444427057744212197559055898671509526584779295059166098404579213070086817172485687971174146960658523441579342431526254897380076672957044827076235768611481927428352846177481744006594710046101816886644316503870703279944152835342397451251697136385122465246032823951040990280805741943357411964772119117403520322047759891863817823737945275326729941507507860775809415867279620498848214190694174591440848764345046986683225741727471123172234081247006262020770844954462062574976234149977266405827609406833328400539941104716591459325079614301040153106249083787530726200297343028251843301435998814993922472939168973103460230265436819164236211009350200134511708801028130362876759792991710948773724124468265767783972359559445718266816650517411635492116087594060062158964071047017620054137277525976927303325866104971783172198251193667229934425000032710597151220438239408740957571325532634350607756126408395496314002169888389020374070885589934673636495169725394249122555537664019262446808247870536183310269549718693044568155407869029678979499104119813713318029118799321751454141008391068683036817952329592606323568652765780310947046602776864422658785368568066829794408543442739874979476969142654838169655696267327928063345976574587487333523179245887364342992105423923461740734716882413854679857870596967908824285814189990328288218721464026051703971798858542217689466148562888893055936506304336589972793226698519844347052281458414095972339374158405255551100903577368448734114364742744020996327303473277472770679914942337242355220740200927596403127408385039518097151222262319794938183744278811152784938089146082986315305384213716129962688977938376194559887935436413505303508428135275909103285279007983508591527018704511199244442578810783650246909067034533446554508585938746026448487977351579504787095690574464913978669380346806761591490287011646808671463459902263005501035696128457078599427641368060027878292557453308248357578832235491321001812790982563861791113983123313936897089544626423978726595637457072488770010369022818708373715832014893944531986877672798844449540233261762435542447884997040698484768881433852970769170167210639164161095016851452075247866888752054787715138651737375335654339579284496462805517931457767150169206300134327454371342924702413436532134205846899028844602862012818140333563900738494674902986437938649308867588719919987819224476380296817476700560476170480819492181243317715098940491639829997610563969989040073112522430018661538906667288699081919485152640009748086859874016016351553062835250518797441346283089796776364269532197686131955083962096216379125119033894985504862657085893599347032415846119838449738975813883430644332729844052509630027189711264273461969203549665413507326028870915040757019672898361416472367298188983757389156619000076488464603973026319824337751107614385243413966292585873933793654091410900164501338817096640989165185753157258469123461235743854290397458215411721401688772413122610646187954963228794436631943757678860398245256748372610105863648248996877180586805144843068763140572839124633517484264669364934753756728217472348822807402592050840734117800315166208456580229119848805746942725390014094502981304344927237576747899763279887552194090271514083915812766087273308663241019222731398266323941700735115095720436291253011308026071522784531362936000316912047315225398797485091193358641365577554493920109574706324356310053989443812890281837734760169914276979792325809598442892745925908050126294956345738416831630408842019962017205338833658902912118828784746818663331308740744222662121906211117018640953353980655945521775828573235300165200154857591699381783548433401225029305446549792231394656963801005128661803753376525939059575172397531729435041624703118331429929364011269946758696556540789366892173129382703763224459874103910179508695048660111588675276163947892888978409125039708941061443953409858503988055118640120812627147072739771462990533110334434110615578662545759338936462036033006030412932280027453400116828371351776919365313965130754105980005176164773308199377836370489992603543182354294214662641750078710453199325517028158014368271857813496051277241404505370093166251877398048217789096733281909075591761798053389042798362083795440774542577874552099263650263509262271475302028719408285653505079550796815077581562271766579715626768801410071063370647227931843843141120282348938109563525271806155792833671209152725375734410003222659559865390813065849316627411779407994022740803790816976594019834841234992149177527558053991137754574355553752012968613841367140702761361638119299240792300244320836989143442085523761629428394504226771702794575773529203890713153036641446560744062206221149911649948544773202229071109035310976329009696748908186304635644518953364526479251948031151850073701222562939056288623591169199343382739974491121806761386855912420833764123983336987448198365093200821510597998859671446016063111743693377086816640376627068662565818644628754210154913726593332880946464945148968380161005597536893382291690442115865060770289140988586962292155728022416397718003758439964533154333354488923925810891491552017775401797662126388294981600852563917985018367048688207621533430954302636310094961098383421681595613313638559680734134679655753738515862105089992339895638699176651213392726048511427973953555646219131017328186657883562855392717602414017407614316608462286609427059148927500591572210430678083950360157204835880044749818162091852475056265237552474219358208578090131676218149883089701176606732028517549604745866289576632747756440275276106974511773935816135033375896010402860002261647633434607970375488077918636066298726405189068041166459255498208226424662268145158617631587771023600649445899844307285112808500603691475355397387309205949221711003876479475795693365826949927233436103119460231527901553159158105815028837017039322852088338572341161594774109722192294155774128043588032512990646556766365178036759662710324228604215431712586049155213900842451645343106003285039470205249135965939355724252164601408677921902791668312307676134380518756097637569226872928072616033488966895733606037995109094495493475960660120115721287581358217973072216903335878267439807987068579861994237626046603363762820289910202606384897476524138660556886964931873427260570674152781744307928976301929459079603456246067443480674814640807522380638694988992086680108568768893319974544526810874173251615435903815552883415761915953491148635388992770623318703896299870554355066387813800845190277578556804948349051586047558384305088402574274519995449445860970316219763375954161493777552973145513987249749539904616062885730013881690695516210146291575882823138550969477824287298265608841632945851386352864912368547999433033997033904977495285718461411976095222293256943767086778004700298572162228061855127140294402719155412651650308945913136229029445191205945531911199661392736998936525341195643057647400310682398218463208249697218033986428991858169409914292255511862665961078530015447685717667365592602373461896224584920129385228984003317796668469944639520026062884600989167995993631348098406408195796438698972010354082626963359717606326760352857752116705388449719995131200665042740684309681823685760871031090323904646948390627974624396509106292482981738373901020331450541156975346381527640324724126355986019775839456626518690789495494367892311711240540296300754127496080416457037541449843094766851047355517445798445659282542056054571874510608388963622324504093981072716011829317444684579294314051303794097011255058937848923190811558307994510224560380108458050548151209661321175213390796235219578421907802691536878610003478727509496806134898716501583286673860092545648940668151632317811290626128215679036446175697465865867720009269988474048396216078913996625275029104132717928407892790949509664166808119751577963966029699348606519133895022407363990896149838766063017025551491085351863482677733696379033994721252972276139362145575104792262529897223458425341383320740580850086001754482968171301835899445781180409794084336624672307610551349522803599265577544157326657806324525242636946940631075722853524266570937483813303499396032596182328811722121215131873086466308871721264044314256888861140341243780062556515149820972869507814057981297056510915224134193990951399589032406403725578255604720735465783020555546128946281213998155632906269018370112635969560193907723817471539062392532242737408429858625602868633222945110764546480139914169445849233396580004919256529932457661585975311523707742519686905403238350296970576214491779373508077127085572144280549839925569968533720800888665862622134852999693434235323603217304670202068086931608481269421016818452152908184113060013548090126203036128771667438077077297960661299038679056824082852112903266438269699692174504378000767103337668056874143615122732162505591572951956356731167399530252616725781488862576744168139764221535468841600328299924274887016247802468220228021069652172409035454379242541086809199726605829592424191214051595831542741425692296871280135357107133970627627815840846199884140812577756660753161456879354493014987138167051214220596571185703851479784364273007403692325066660946267806659097230343748790964934543895324669212716180951717964033657813681535799498802712300272256832427217162102757060386286073468281285604963424624852608647346762504227185597021821066154472354956417288436278048528535503966003594611402615399769745377769773327990357827696363263925882063857445640662835206096462189144265936181163104714464785391949482190301782648513910093282405231815148793727763212143062597342937794857772815749140059630282887381894465269939033590455537104458851538045236930463913710572961670892532482977672780587726113652911810008487646445123827939104147595347185972069111288709795717750240508653842103790302740844205371991049134778155586525632161820757976797761744108963099177770642364069664122210662766852740663140932441062318711256354518746556213432624300054532493588490627678814737109474385670682769090641414540531804293417705329851053389118531354904615452024559589079743065433839672932071056379428783489757312681434107715723504406926317589627485666342226241727487693998924644639979095101747565107719823307003045732341602705902092808590900633611218698852583537770260392142441415789729339920076853736468727065433255612662996886130511760809409523653678490824072383800668713177142144552577371469004876229490857536221119268512407156649706536223947397326183512096055850397472711167746802600546951042346691976991876506121107220748375467601388352996873617069394331317601067814050891824460980813274147252941805726482831567429723251282531269104385978881742717007930359401176377083192943223528475336092878589391685249070426377651258186038389817867989881080542482669351257826735041424376307059085110481216191376874069735660740077984940860168409939753208052946297595595900032347849386961343283546041781689696907148350622202313857210829241632900963207761425215633367825108842700265300429976468926365388932413121107478796060686160624409886861763383339683742412355281899612213034701534587001195401354607407064500276450544815131398756812138943845521335801188808329659355820575209293970220406836053314214585667019437346288609672837905639396692542673096762542560285418820763449793735118465553532208865173446852168067764070299030935748381747876250819628763796684945941478465450291757042772772364677807858366056505828604741655549576186834003462707670048460785631515920517192551980048568943305686318853572691822973558539592267798392337592184960217053374818365105221763771426542747845412302219167536703349071848502480305598426944084818995374989631414258370624126805301381156615941854176624565987937942534082846559874587902178799578430645854821931429087864440993720137694585063817158840447506323219471956524157116099683980059576436204266414195948814818255722692883773625957550568103381625100607936272756552268903388986000222182964885556222304218591753123025660690225733110962071685998189196882894649195362941412863123119827168372663770324569331771597229707615639940201116689229551172916495266913388946684453149599886792857174038724657501483146360894172304327198941429942820477434166251725207812095744949689991754863010760909087354000809751111467723886631571040732075812386930437747305064033625592042017434408067417622004386230163605243071533838871104349242981787073720407670160779919357360560724534148542232844963491658019337885806307470986259052001466241580393190913931589489262922863943864476075213485369481246783010305107666401146791953854809099739171923270415260791660726428667181629156607174725526871329205971185533116796034246411990817384538267816317617539685549655960440328344291580491361809127187667950760229540260202428580457058260408503617906954068963160341847994998531115853904628116825588438888310745861553836405650215149258903474002689023142017722137592776274602543081978615050916706343142507960774882461243599675240495303932214501792522163733852890441208861538790125100584328383332916131503385056999701378780970719239648162469197515964741242827703689936072310394811452613805617011107106057044067766570109438000709207898828871853316428128249933942305859282455106915480111697400811557014786362105411911272616684021975051059765747218578385209152092678371768709009428334412689880214207829339036929217027640358397078258719160608648249916008629474263474897549542474370930372752161330077335218409592323662613066123139343179890409086172660075684953873820040409446731624740795342854894412718359736006804586447646583076475308176300037712326115735793849183353773968059495609331823012425058908682369716185182365981293774692772202530265746318187906074355238247661073595984932134689610631827263428700511252875133159270058895297100479393059861447347613840000774833595705790000544457420401110861985998549250132213972489493939160325716959660594010656949012665254818900469065100247595958831502433035995760290055268027955583883544980018443498932413369317684623363394754697995564995718472063430386166410633831327081169969823399739033010045861371986656924450232850206989439788608170439761019102072122483887492805567289843662521273388447922174462002990117457627738437931731176444652468988272961301823469879501324570887357593925657574706032745325238745172388789716872275058411413316110584370782354635594198729837467529404566818956204361741212256205983097391022635061978062372431838585503057973199540989966165595113861755745642449914103505060983909841984714341567345704373290629985210155445772602624751554203395392416952404016611698576244061757437509810377245575397522850927770283166158910229136972000854966855326608367327908532629799521914165214907424451028978538273996924857812098892678360421370980738460078753731497932983358013752937007323805954683993982751014632007397975010633118771506474817201946918575567042291144393064887664997955558721102954957558333112366374327585586331381462299736586249254509285063858691593746149035001694392035462254132698157854913764918085984347120012407116271288559305656100777393779358844941960800186610463729553073448354575817198803940463119688549145481666188690619062426635597287014587177678692135518475417482822602833917895911464127041093676775719910471809212852200869143093385077870856158902704552283235378685563124716790409431733572588626012182070510806485790965340516785688683700351079951752060790886869096688084367057498893141398984884541294644203473807995151717246878578661733177833095792841796044349856049576874317737515652121281827882172390219155071078000538861695205749385022293108271643557280394342940170129839200734462852136970309744016465437754352222476752470327509880995451079756100997769711278172260003741571358001115439699748796861058879703484581798796312357349319238694651604191210276566174953194513076420617066067533375100222509110412529068626345432201853824654685140009549835418627055440745149385457202540280022626477980862298411562919139223508736036409698566668908996212988417405237390845360152350474836453690670008601852477954932036431827965217983801718256057622455852047540814716727647752187787236944338383615681982600864417837591476696848453026237866664977173014191401188569724189643666480737318019760117628591672917300749922306663936772560791044813226430384917546327876574709747338797180172850884512222556220367397272258480156330279629766201944391284811173803662928279650964348439547142473409484882672216492166424791555547615528968855071667010953962003248944779179954646176397241738699559319681065802051361299733384729895427919510891656814889716190428112105213617738309259391552699000623875356391897635589135337050819035521389066557843221145898833879961463084940278773979693799742763452808138893156038844096264947704794059122555739230665726773158855142614428710953920012742132188420329577579609460167280459531913739976233690772999647316691886466890173329572204745029599979762772866551862930544445053995208086734363544747165878677945258375057694236547917944127350326510807934864479495851630262558053157173803322836850833471104162916104824665951476710906889668918257308567126137520188859094039126450207300733874804439246715467908718831916234392065645015521961371295901775458353623161334258098047712047514357975232839173892779712847414191816194931927703000185878800120015974772655630626449146119659221965781821092025110660609031772841132757465878322658653396326404559052414992631971033603180518716031324463041162230246456203456660690494927569665616929796725751980098213365552796592825996415297692173265767602913377904084991212653737168241151932641293822802290913903865476760599622186309056962117934503528421396123608307124530522914379580414223799979818421450847132271201113631012116465543239898062627935996398634020886852136088660558207242527867800109861482193248390052790452243157954741943131106456243546570157261612023296514640749042142892165129658461363522411856706682402966657373493243053198724850135631627775788985180090809591547957931787455519421157736443496093180459211652768572411146785909219997366476184353389305736813996330512291709993215681176057483916232808298495910052478094729064044423711094198225892104588449266439473086678833546918274031081042673937645915205532765141520595842463984366356682290706534803453397111757686042905674688176183714344621658552363622670413367458572767606430765841858029876116472046959290991484788344993647114186234310360286808830249975371361099036731447540730879255701051695584121664500362380316893827871029619870483730074144957835319387946290611699031798798948933282956884783168639113155274418281872302149412116047494305199631428917999676354181011734147762583021299248519471460199750313634229738492740560339606106643308160544376614875802357664805535057438664054540239614827693428058043006217670707668022574682469647645010791118173926285491398354006809247596125085715308462771803219630497057486489662212756964553891809379789492468164846543466270581125015251900143646157061029036012950825617362305823701302950269409839916408209952198837308446045079236076812953958941116797683542304360925410229746976483756564898472666558266839926180632973254755194500083142925868073889026595418091695757386570843580401890472215362262577727556843123073661407174648266078617245235729485706903358515154235573602921661792137672272155315716666368845629112886378412586339504376398347334596241247750400091358570873213873161908593245529335390199100713204391827067466756676703281399291485421845295245392435257947602819254031400604016796871426054953023950518982916441203094927371779527906467396457390412672733955322098429157236247506836091459517193756780711658594870649728445899271245313321134810577178332159456566005479700845358793402733622715293399181318203469628296508574537367095057189405179870449460475052455801396292250981623035399950893757113763395349449991770695713316558182317563814982551979529349602440611166014674675461127318840938121854897897161997783397384622329410581280676047933507838711965252756809010629450713111302200398092298254635267305199700918266216614657021347841208909840350001808600630381654770093302930491601814790292239495279089119197535377377479137492168446116937530906662246036541141296087311735805279805109246184175836685248503240515676979973479654927350764234017592366614133911953349261878754106390836599181334638226322286422676811865552917208021627141731940608452418982434732838015387432381710188293535028499279525448740885560595103668542650650602036589055229392279427995273273184562800333519626397684503504057794176769078273487060592761716892064887903625846802939781023819370561953442368212496567352232821910864310868133474859884164178556880016573168200906624874287273942929365256286027813131887666583805924235120050859775789386280985872358331111043650837186718240618938099920048948566821226233067147277960487511435080309936401733139928982558996461107616157943588361706561150608871511343855746625104526458463494457471706741723073680152921488735317371209098327514079908838181439915210096011999567295877890178872154891855360607212376241037946590933716968769128338476066398181298639601927163453084288519013114035686918951711794941720894191652517981295747341800028919141206036264424958471244863022291312153271270842055990563758076685002625849976020959051303436964036150542111521558273299846287040969081660459437645144042414781436046198572505045787775497208341311275590371366046509897222128089842484700765569633165383259048632540315232523363423662573244633309919473235579475956040617921224432100161772455073600579975447313456752735751450648783227481904665669063965297801369954911706590240545349572402001305532567735607993200720087270499660030130528210107696913209229247674670787973475841948470174008885409186395944506762958606107453937920139626467143969036271436747160960466210999098684271592013760457407282586197585269930916405172089657815897384905130139145141788220470516507746870263432853219603622456730737610450708011360367479592585559731482360622206294536957448836994322597531844602185837315245432203435662683957031709548889958174718367104138265250541837558336081754796077597212833571819933818684006750667183506529894768988454816689144619279581069875930770464144941680488759816250301474309286374425284617475295047097433822111157824448505403409342638067022748319548489822604353660332241486504408863264981502267283361117243740666540013453925464317141373049795951101326826419988875696880358975548428557793563518249450080109549433462233889251005180334104287729161377135242592001449075120008815764594819322080571671285666299214940899063427435352250064928076217295224298701625938716127097273081161575745469088053393700832064564318059597364267255234846759290068020017364930809520856859059521662480958319398361117991544161713449249554276433607907905600671979393934608053438193450617863724939685596456736753842556940951520675302899223091709271885555127132354020181872120714081808920325889534129065916633662784054464718720164069894820051920478051882533641992509053751677911349410256860367540220172105214125085337718870690306628583483494319955294746764208471715788197077122611855390370736164174908889439128123466638537351839301952530648465564357525022248992330628226081263440091597786263183223943856192348810814721820044215469330375514943306162339345215674965996274042392125284192750965043318229209912193947981692506393952724140275045778232371103397100980504598169482298074641356620626341115064516644251490349167378322891463864121949385165821398424238395188178778128353957407210539964238217406706847628005342601924537197936258736019984845449316179588769082068989654088232788970223242770182418236329282183323914686027171800606835699759987827332611014047178687779401164347433323876871713976898094664303856339748335218236881650132955358970838591434807482249976748769141525963119059545146202594713464798283124757334834709562221239941153360374940571946116360749003268066487354539358615116548691179111286573025207769312268326736611445621900448041572402321291755463061251240018033859188389893481968774546782561674735303790615746067281686034625796949657359093588365274693455822464737536842201854789240877065100452425191411696581613764768627821317379475530970354829069177061635787949138381611922377702699230807239637457758324850425010618248929205078981097473581651184386022729178101273177080256991820259835262764186067519052411667737601510634213660195642297961776915357595392350121685223785166543114325414347570573399839297277274213890888703232031639386273359603375670269803793675657797160962932563837526376470460685407365360998091964704512334618706655170764481919643137954809917954779759575093520608968138534701785283756525865731401443304821774113174144633461518794378805791334172025442048981406595913795141110652695446066984920450287716066313555138023873930302628873100943299941049383425569501540246739133863869831610578809181449884252399586442160498389088135786551536529914686323664213733811341216493639376549802536053737956036202176465584192270793362880883810574986660041175325241995763966808432994144119059170602827336323285970931753654572383351522586473313486288450499031027371627146940965902182266645356996574261956835384108125783189052647152002114660265366178181246023035569772383097370356507551918877305082385290095692588830949657966880423364842858118626227186227912248454147218997843623926452902322124599772606319566505276036164680998643023471310327521054073567984533394718881953570414590052560603420071056752354866958724889751687563075151271119984667124623739897583021474741613643449258418517436666797388343538905806573976474361627250782722535473528538057174737993145373523310162715061713544476910800267741414853161529199548214085437660421138575854826638685367638395275228290436839791763665489310584224293249416431595936827257664836667891908412271853184903007058542180187859674582989255518577371965717767605621379491136982075719472214021254351674365357851562462915092506367498946383575311061244200563685040516482579373251118314999217845686178059161069443660318799760379509474578982135727466147966529359863088206588512909313022715909468981105805978598686421616728059413777457896010857242646894650724448996202332068796526327471577479773750703907620437737435756439479094936422200209549585400948028060563208518276669607257576400382758026054135130912262363635446267802178894386822181903612259640538408920175451597527015904991536972139027249318825007720777740484758502648336334153292125824653771236396630855377139738179973439177139428959563133993965819565444326309459803840382896227402641047226205376731055192612196938617034545892389323818926581119634540962333748547685276976129728744464321216022853379325673616745566848283089611642961610248980623903874114788873707756262605280229473887302276599687184722834522748458597527744759597526028812536008657280061980325675150162092920502683117801212007389096469028643742368197194009405810128352208616031800042483083591541712004375602191189548218260651319726898000238009939444594394732444077048538843532277778914530396364668205846496579668961814118612736385198120166091828377884635373884256666535475626580581370580734997475381171517853056357790184804218169287481066671365131451094670782565887979854170272496631828634472480820372914910376201975514389724210785840366134447127273156994144766556011440762014362969883818920787356423493168718540650667673725539138696746664301666862786079490910353305440294457145187460137346625672169418835398100020163040610046600531207804709742932498243750469482241314299020830690616304630322905414607271789168307022615509700911444292936056567058740553356100494998098985514256220347066355250954702275935511065601759313734788022520845077919369227924094854892546091618948972851915229035105388450553804643673843166004766587680154168422083552669922891075144205017679555867730051845495011148702869603128936454568284808425824689453455678382305358597264089335583155719636692334890447605593006287647174483952454658435552230184927340626879958361155827041299795399390478949479417719142943399702992879607638746240483408447416298780637807660039338121840764912709417129093936027734949479202923342338520490123953622672004696653617911587385557157323772081924349389160117061553598782393217599130771004815384883595303994854506311250253306426188935304839510837037775242928848857369253729285276847986545693348515899865480963266648983942696839348390663162118939548680146068494309157942410768936564143744274629941107741926008146358782487807316127846661886226494201543715379789624615196632009494757885379096226535803925562941454650595256084673272169564486178114392363806672251173016971082691342150437819596582148001405882429135738077557110047308092193892819488333169259319144882704963041184941855292117388325861661522717013479926481062682470227524485248551316084299999444007665550572249641875222474474564165398487102078364819458269449501009942963630206027354638192207355601621670259445982833856776903396149442617538002454274209296785714058984478891685712719424443223355592416551686419493666500987009938612044755317948947544874396925220245090307335823077573007588567501543563621881745925654614652441212500181175714654767678388166399741492484304046609499419933731868980582165246694546817481518920544475430816684460273211892647912694865941308727790901590380880787824968312797892674799043829196083451402441749999020506755842169900657684364689257010583000443906070918157449219135774491989396411844497716555518045038683500472915058739730845761573611342744880567429532593107688943518821642602131167711754711850051070733365771976253155274563796259083856960966169405478568575017021142711996094004588748521831431649134968148611681338636104726148245520798006885061358311270925191903051601476496989441578731482911147179413529287098576057820883042751762348538891298515089208595872592178754035582267187581711884068607895179297496285157252275484290204980918411932069653864953936678647741770479670248132625577565657161366405016065588124433578583218271526973637635510713088118714800687124234393103043805884727142735158688195440649719223827122234352961483732962230465620161949697617503187011283644280391838141385848843739144758621379325743330072832434129365660235962157265782619414202578353061451445163491056330194451982923699422931224424648028331566540671617742443653820651498399252045584577951347308607582749156168482616094338053530996036961565371516786776630021330419867350038290616539413570465341057584669010687960359089859882865847933883397190948716515645706756018562556689721443485218929162137641518839635970214702242857104170402784665236803998833620835056003291418358402951312301563275604485212676903537982424274678006718802763149031796104087186679224145392689381314705756957418834676102141291465678860678803947164469582507924688432235348349483681779753764580883934798164831389375654837240761065785811803675004889686962537842354365422051823706978188854144781955133197365482370084781222282280869021934910138230226041653705095822830885839947760249201418805729281571820379785075463530340054274168944373830178892964652422674229865226580919931210891796919127965661936119558547796689484727159507271619825613980354009416951328494199508495073465845534600509550155836110987782913073270932042346172074555977778804311089760140162104756989267104959974013150082602760607574739558301758263834502538095340438697632331508589175747758784928295460334303238803068731084827232647702318694044845961671073696305288539774745186349330058570517424150948336131256590888632657744499976736288214562158550988212205197116840824563649351637274371147721851363669785030803261682938256263252805362826461080269356829322501616859377359436196964529325052982076004000531533042526988287670409713392293268303041636656579159820680273377384142144791057027939947425910769917548633382506577457520503942397847844891490757004598582322490333604336351357729342657133517192239213256555283012201762929425184417494518800141542774289764572970837642704116763193804120169435619675256901790785111595849035337602762230840684211310488663270553875265929575121630974194948664565342506666477300144263936292402098321874565019217309106813053893811937465365990013489447151735631923071537673534061949197627034713039182145955405346417944892168144341956431950342360000538490745275038338601460713482484053036061563165947402918908809970493052422694194349189218625707348015750201986987807956560304729829269328713341554223753146123730671289691847533173541098988347850784671072083122183498938575929349298560420902672356448405681179340438685628902489907922325018700785474994321403578535634371956334449698303111589543696086318740230624910763639944235037620044139164367674529638388150279522226391321395113276341939169669525477424948547917229471444007595243369449165474381922788153304145609097687312903382967926909601286478863535395522936172917202625367489695902353016544581070065450391743847579639269542891277050685917934388449885070783105220436816755860460768788870496186606585039663214933926971267635745392716158878318496821359502102789269173560205903546273691083203718762429752769021304822600600296256288087662095638276616629941384868599192403423965696707965815397326713761065784352506539824452836301137682752678446446030678458967139712628411361360242809256228711788217504172053524653188289019881361807979408897901381379038924043708253662058265780607482907819117693774118560278082773282913187228814444205878822234634665046323687459799678471505161914032529418180106018910538310661514361556690767274494954884347338072635760768097066392486236449668331881404127969170861797934559522191334814335903686152798214983967328843766955441675784787866660762193568777238829462685436472873773558273599075850784671480651212260538832947955223239684112311627027350160915110334331167241969325988058733347653326022252101038672066979504313073430651886710628429531423281713040753235889163736858808819572567818413637261083394317005315588176723833234968919145312093178913744766350864884608893033077697912329837001963101353874143064049031152039821399204946633798745899727403337617970122262902916300405139353843660970188188543360915898620990533545350437060651057993629607487374127146920314918493792231597996241260691168732305809141477799416680419374334199581874719387798377879471204238065176617467975114167697370236321247839559053040513928201236655749923120881522484862429309229434581080546126293802262891957079061478143333020145803059304501457548348796136082956155560880831287101064795613169693032211229423813729876985404395796823530007326675065283045084124739474135116605812111052837423450719919723485749060769878390879179948614000257939177479554607265135582736552340509362745829266039746680546709308534407864512562634403258161481322751648263682654434788067279141863426582268531838583490779731693814352334268341203710580920492912927824061765807903248756610361461450664942742791976846078247748498044783998021783450464852538269493838877853908295266338852803456243557352001283497033429144521027551197895709310460020037979577446073669009854772425978798803192241939483831429781397567247649645352143548935823677262545383277927879967591178847650279145117473590393545838679104308374267172734162594567750569885983484905815520929807749564940789632984916738373934867815987972303452498526673339899078698808841200233785131271331370386398953841822811969889358817210471464546412277609226494838873350455883190321761834839783474555252968956654260570331394470797199541264116212099287002207941838009781620455783214171969922110799384531640009242189634574970943269472490348311762684407859033812427619713696404453580127639266656675530651114104022655501427984370945470735094063386567182132214462713174545657159896361740465873102729701345497618774132016440563293671630703901040615860780219715555797995269864209136206508490765918576056105755772327506900207836817425259780909813542764585459285498266591335748312615251779041526956725098094851427831273891222334339229262766945718146008686171062967970837565321499277925366041333369827501966705650129147398300009463541149620548535715595119869451650947567512492343733446661750642310962104159239966293846718200441598307262264095729379376041569613285362348601290501079221061364940747489420275971813897003285101779518506602705518046156463671708410517785448187715286137184720983657189683951384089935662602653875038723633430066497026784893383444186526530859833995990127475523975858543587481474675674462385328590905588485725219149557236042321671725170976174661365781405553184770339136698362377691059124922614249769723103900596267618849217418972132160562892183449448585601835217077847319155311906817882281034721219964040030819175001556347517576803775765585425326453876539699642093703217143509557486892109713133570008366363560202440292000783125154349091769847746020348822243856207287143069014355923221969040084855026054209418512881201919429884559602881893285677670145621018749649612753698137721539766472663771221526655365695434415692068388748612109731772686178419758840911538146021196335959973780225385989904057081084943607818630554141560649103841449337696413876806506254957673516782090697737444359676288789256592479455414956082651093456226678759934706723105230467418671054354280074636972940649653221303447144125557992999228587570383073053631786424850741939458993472114795253740623101438876150322109131989634280206239084484253132494022586161153736767710330450236260866591975837786913737338325111413566383748737175056006527845360724540542851337420199274764272435735389056015687823298112412056110973725795018015340902641663411148898933663050090940826670793646499634200849162646162234027930348051567505622752954127575304568814099840000515161342666924552225634162232359711334791802561424326353487896477643583496144255348476134840318778674332865130606347932465335027828121968371929126961511318680675566198452839751270176204785226587871794677334619772187548771353867952641154852970081666453973689699380727040635809507967323036948288627130333950947776547224391924667550035523847371460172965946377629864244246970880960498635306838885758479063886043659396571020633218148587204014132517956736309526435051141199775019020984061618233481892594545929565377590293108343453743596983299693555833920794728901110429352541437822289445045349155509852834048405413848225351732297205148784561062812304253157990316537477116728972905933138739929756824004703682844580464651363992200442211160680585260834493052085776097021928005820180032480871337015269018092545748751664037196214355058464398548485954923156574515726180593613309572730287526243563788239027038810940833861578381988692168911969731166218061244311895667345854533319642362551442957788436613576989623669034152432625888809665074882074230088999496379074878399719952087418106852515559722328594215726959859165809090186463987542581987713801850659402381655584683664005941771421927045691131809100418049066802776109361567373362734211022462996679774121605520528510022123920273885277783086986976737217752784938060249814267654777917883029291302817259823088712478183243843592045183020652918931925796818745541448093018625320083698863979018664598468020246365978374827472191889636376163889620045325376739786685693100578591975267826721693685667760008613395816823210230989798821490554990058333178231910765222976730319595623159025862769449130336321224879651304434760591802811019489848922352051009730517028945024845622618311775303955052915113683569712053882427387793062322873786782963414292369229760828427481814879947672101958958581320679018284146680794214668033393820448305902690374665379407389403525064727482118487154875583720804398194106852715630936308914033061858008663039749650854430061670354805906676843670282833108043823499326946899443784870744247791798190005600738310753742263576254348095913489563841825276902531202232651684006939412942909720167560488015950662566303330467699693140125453868644889941454866641004205293883628489382769764693206866370594449641415547484160952036870538683076967361292993038771087310656925202633790279937182234730288477587509068524444625414093818562771846689164390293049098792370159411343904008278555554682971707501057447113477629973418597471626878246252400285001686127362474582496972471216711267946230508678201938513546253298277664686970385003184996457346660842916196192437084559782531550804861086985890081785310527735526331371763834805828470334118636330389811603939288222469640941528157766167658591828421951632622407083860349657557989444397944192545611461661233646125724131866087952341318231965521791521501577768351195488701819014892273542724739589394952522924719696374040111718009580742068241144064612087607437316715792855953999495760962189021138717249508711315782397183285753847586769979059952284605161384220088236013610167092757578678892505739362138439212884619469502779204701088002298941248460516879861027680185573144900104123740240827374579019315936955858128777659969900805605144941087210677789305953061782473677532892829235758399057302709047301419576502395384501392450026014275987474525637287689536010320919389662789607984902644136975302173806156590415113747174392695823681046245986556183484231377607518609840861186947577537490852190869573761370991899330702239971205634887323819921594628840122140590604438790516181843513348372443595962644919601156158710395995409158228546562688095597841883706260999610611947327129710419200499041780220381503760603238579519017519718417705027916253577856261550795086181534686785792256082405657733515032533035995339788213421963365115075417190441052618542866211942579974992459829020233694899739449804926784784982265145016253941190039097394125788249610730984258673424167144145982380893034879006817424644273577064151331395273087440719919137972439501974056416231369887508162174536797622221711701011108039199287354307323249267433758338509293207424971472003604847923663369742993623569004301987184507455714884733225783681701987123647257088259476302034841682165690697422392789749392353166000863070503290007386010652954176656469177588872528528174734385437881187292048316141139421763821373605342369445843258648526259778853895593491441126869384565143130585639340868346869414937909588152442619843431670980517337552940457275611402292672427442589494830336037399776065618566615477155285531424489194839872931413762450532927906823868789327610249798022294846542761600365379560022348696265673402657745508730835389787508746480892964979057455361571868399856865744416758927394189227063477322448436880691978962610240600405482963868285496505943054554982369123398375753079414268342518429607256475743168868242189384504018392510140379476752687238310344602147882657025626888286400906265304936919750244487736321388123801639025033125800206301112292943650098803005867055246414052757588247685001756354039379701566573574675917393047144231868704740642819703608400987129951106444555168495029091957462934268215670228735038264108378784229872297067302758417165332199061581102847116864724880850007376295497251154046784190059092569593529768518847790526830411559442933280923533401221514578978924326315688360605498119059924656050398677371250546670503534266635162258904444488054795038861353648425635091768945200861812309606188042667483790288762497334390915165463830442941311982243880645034131482496119040427839222779816819818607961580333198920394692691394563973333937241079451424684676669309721787606712230870892921274234288460403937330067728620047801929664886029082074085781419512098836078947725729583641211150652645821397836759378315190800154048134550774253298017841394018926803573256303687402496123089804495857965184916478238868326763969062565180173921403871748371628269010585297584983107214960568265679301478516642192065982448431917611248076682971040519846989342296500759843442957994925117879886375182052826506375645740335897002207875087366384899683560208466528245173087109636315506718971340688220208056618168001678102630114382084485686505571731641652041233312151241764815812897722785458388683201967120801568585423728108716825209569626363887504407818889595196186143482437734437604509465961872590535054042347159997923457805557297733005131682757075894291600711248528001736256697524846102354944491425410643823132264372676335743518549916560425277270538206273266084567121089819352768359488142896011879102821931378212172172223025771953732350298881760761775984053757293428782618460286481471327727937524685163332668374282384986788136667921327981018285357367273444222506530077464817332043814533105521163524689153781355509045902626496772353430505278722053197941531907505892524226312050548799210093920272412660768273960633897193296022822314494927456609696181590667708020245609224828295768473041842551062725136735416750666116977324017031783103476562851094050364467874151332602891994587884243720667621671607247640089232122567542285455350122092015907628807323655441201298148047278519926345652188549584323017314589065284039629343844566905764183517237838452605295139987404006430020367822910085389499814396464905464535630183643818394510949191253057058838027001754372635768997653298765689196923847300990337759939920237081079894156956056911917711303049541171614770198657142829510848518458169767425002927962128699326912360914380731601301545120568410625585182929096649642390613943151569646948847639354298646232093495959686146235803030017239686452647472068165738572145601809043547753378792224345477711398841646968529805669297728617584230042201321798081214207165841607056497470490146763207911760696441360937159174715158632039379297760093712132676270646126484268549254138511006985359504537112914164554408494235443969256961996498705045226130682725829688755282140250818156028494602831320504268995780071126917894249461443866108938238626858836014456987767818367263424830883859655670813375231124968132466029583126179770522809951702365241915354611516323755814617111615557812978875643884449921381399717631255786529489733098919964289944134782402918851053416201372838794292762628235834664195664482621912624193250518150794330382859035895651964009010757375038674341115616567047351650162420706104647130979488439770176116129556568320812107927665924506595634261630307582950341634463349238011944499579132614947192983359760480447104059114787861381749624606416801934160895633153572028410297918019368116752266340759552736626122773184113445942761246246203638440644280167476851314838394822088507778032428957955056061979080129372465648018888094538907401215666862431263456247906613014803521999788419320008481848984446895490917674280706862136860328588605195033918337726269828688281805944636769853459563184009041498608483555055346437199328256000652415040156989224384076833078790061495357137670920680020732125344317812167263166253362076567997900816191436396358153363784571947379987004601418458797959509173927398782212540769773171241574804361893253537922990520854051916396066751222377816384619029437629796941442775858175714089806285532944725707121566651342717598064663967360660349067874393500094324017655786683471491626681207084548508785755991751261723178172434386896619971298230098904054329312738265477430711805451579744076160251420620740986312339654093416596795394875053315701928894508495607171524283505784139446710570739687600742829706491308606220114377494746287988530077604684823694512159467563619692514133564904712894510637871501133261876520383180283360034848823386102831629327097817208725220237906730356558167753457619711594870921229332212194385494624163795431441192681364276609717148725486737036471812997647493954974061213906064419461385673595105529798136382585493408060560464134949473797028347389692587028517015633117092183053368083658914004533407842720163847390903139957833377238676218748730194672742007314621310079071184282190268265894543042048711718768960113227678605315308798858361807058422089730814874229438844150478449846719442814336995542998339274112794337308021509826419945554526112267035815282231914470539221645805062025953964183193997560147572547870333200032743840706627606821058735621411448244837631261024960601992980012197203159301614519153253643980098157436619425821427086317651852844761506557085761479844555402334882776098560637921795782394282583608949164496490515570297958028829165615066413439355827313603606960719805669452340440533381992802179459204277273577269956312320770349639874236333395817617249312920919126321007074048712174442152406398085809795198759936901230226129685871934986396482911691569833383498924812957087025271277988009330750611096197176749084374434007945189071654871789723831983471967917224619186660021407102246721658910723074399930780824159736875439069852522431741717215280038146484914657402970839040861517772470504171330627829529259140638158842264961007864869915353314647640021686653907580427662255644339140500113108862417727155152838048191768308164499111706218390078048562587322984281014908279226333834317144181288210006255981983157903871655039204057325095614521689711151355575508855841018711793544293018835300419023760340663857621426280313775071144264184268286525609254970074355082407349352471820932797761188066325580658006166162680550773798237818603477202230974151207936276448233242304649759951500336315776914016107708977158851348465003006258819318041711551105722905176036656601777401770063997367574527865220464312246691876115247001941518930039031799464269221515504778999698254929212879643976794291057748937689282992080390836877104709101774925610402576510825029986624114610947289902362714939513467855933180055190813061062992926956815932548802506365976771551675313482385666432121363065537201637829359310673287435698448430746013638144427676882340185162395613005810939503716693934075538814575379482911067996286698231372225170178309712927198125076964332788132954312102540177642750310897333854310873929649942124689746211122334802695465476389468197206425938851051089313673443640958685489875032147299725654790821435490907930677014822321980114193480088481040819741977136367271944581169744106834962603796082426113083629775323654025466982425523323904628424435069297982125408065012836122515814469858295481338759261237028591288832181640998964893564392088873818706144994107997682792759029037643438233732535725126985220334341264176809374680653321496496069186644020380301384829568065891256223875018522575367825956038086417735196976685708974036626096509688257283092633219144228445701030604156922302671655645113707795826098853542917620986233287390997930450881648294840064572662456105472162706534000488077117550492255709697864293828268263273123027103358501047233673353465703778025342759936087542423414792770792788532295387174147231317587949428605594909182999585034526911390576156297694428845425943916927319008158093349553750440284919641521504592409751292899888435343949548322322905806938241012344392147781035209737417921559115221145528225031110969642399864557715112608686983916979805311575467785719447569524990339911328741713136980411156669343037804730377694176973075457437488809229218562502500718942526395759915009284158726910435036105207567761106759286395230935711188084036463823955623410841320461479201585635812950078922359542881695470776149228113469315893918758564214284878504861607807282399340419030289469317862583059465890393658089846255546017167879988587698918294603764326533842354698824468353489184714754565443006599470159740119482951866760108018386612376590840627246379623862255665583457756357744191637438499048040474327999189901955690037752996048929196723501555080043860297237890728865892580724316462193655240839341649936996968609393238353722733531790013181568464258043173408412079349745286785512693421907177708418167946070863444080052989861870851646541019515099096808961021782524309622352854980725491305974426125912740728744993024698290395827284816394509278393533426345905075807908904182260800863966593433087056160807542479706422567140252483661349548139015108702160638761873024520204807095890072315644424193216013873947981442218553749281785488656023065425949659270991540463784906540394001731972520767436522639464506679268007323799492626311637143358455217020065118042093926291314556470097767461836800424218462214383792464739346827091512186419290820706024988238443335666014180724964240669587745818432287591914443004848759285546846829650508251820545309041242514187787642373386067664291037518153432837250800217717283397613697943184319973318867109498054054695894902938925448898796334621161914845314906281829003258144564579539383309420727148500873464777206933187937095797030519550648097348592255025645809277067186999025301810292420984120339369135208724736764255058544300345152982683625569122757699871801972848454834178728499056732870289986653066378822808716179469979694750668271138372736912892681767576894762503209233058278551309410440978652864969845206141790839847117246647061870925880404221677009655286952960850881730920685316927124571720093791311216063048430209709921648408867237352945617755213763506865790398990654867332147071990993562921273024923792722616271073312771086722595634049380160482583672362944304298419558741332261431032901490919018480668395537096126806157981745687358321577778915123708901359912582827660639538685364202617725329009102824431442615169326461876895722634736725454772550385665428384992911162624635851145772846277920336758178087445447145183973125038907326112869884481816766073103350093303408787649747923647649709794795524856938975725014720722436932923173740141917718831422659887607913126932265609539004693204164734875084092528415224941945969856625419214011678777577381644263966139451094716935927827748208047305744680844345114246123872297662615013697124783550408099110585343837835890534858038409745168124851003627088967589143708020789971034439818241693256062242742951423125491010457101051592153847495298214090353203190618963624864481794873669966658551695165869073977051330082915094632777041975917166614503147018153070225775039645909865232230477887564579414497120371940237764596178411540442300780862544220046582626088952979588655373730487907961623986912627586033504533655233247137009464230088895653864307279507033466752999086491761801397360151195184456991656775940646902083252995826673269772580329348177170381722914218728260409601547200861566739929185015951465212545603045360391768235138984654223787461746812967764165744799221688842496598773324977676850338735503625926699127299724651356055628641303454305315610544362422448036717666635467778851983240279263195075333617300188195247204024627142301490725881527830214841892853729054351999483078296140669177550693461973798396023303597841382209878740446200878886519281519015625071549744427379502336580903523133291579325057855547153707321851991330449398617214792659736503565699973338241052395452790263587742364836370346819482034851060115271216551085472110902007350475573969326469871693488062817627731474588995321100904855980502859645910274412359975879760926885788935669166432849188596745517437314749513666667850260667687080137288071165708093942722513532965041920826408097023973287918837209401538331186163723664213752420142781046185084540438481040896673063616113899035286591556704956232381136206506511808800137729052961937610838939303226784825275102214394506636292610154841402425668925791751666675442032205938269265342346511650302952054560602626576284497066888835538854995784947144565912277670816914783997027120905839331809583251302957885433614886541762305100520807561672910288762398922191790166911316543677109544407626435881216138721836764443382711083152854596528645045399694669287852345467402568309609809139590561529339742651634008537125385586118995359335281842581779972932941520519355320217633004047078200513059455395101510032054622059566629061745890481190245201495292743636453342011401622546009455312101774977802118934251538162615570852715701729911300603856020600826568112234768092880367040940368962101940587971760081565603462490050775749182689152716802816737960142198975351979748447983935020553769991383372155636469296886710214251466809281408719736614702268115633150159199112057333835944334991905995386783452525171541516298691393740639107823165913671701702287269664327906077321216384422378704154871355069019466297010099973719784325241637812969625672918278756395764304609274765001658214107979682827422677002675808803505875978264462254012982960520876392866861507286669410280700452532029429949645135708482790031531001394560739186514311033786155642869004822713177492110667316643624290396269449860599993009107481484697863013962995332825656223666615697536329865621879168459494684828049540211738326361502670853541907394606677537766618726355339787786768322027947481188885876372989200396553402627461382598896116240209111414350753759672326092008694359558089370762022701006414102775908290975895528191072661263640432240679138102049770318735580319353586255106566220067920028123979269573138246420322815751029935657414444538434965601819920844456475905771119976732212497525091522736786018922382706526384558475580577456057430011328262967299717201191865823149423796290593005020094740867705499721907126025252011039742382310622734707688317471101976790322086565321865590500411797315549761835070496357741087062048180949509626167137906815281655688199370229174066108788716506612713711657187307663008609020146866558763757605026443614190499857027467200293737323263517816821454327595761844864742298441504494713242766615115084224661967528140273206598738816114869254420513280700454251281731189770674651449060321376007497528191443193272563923408546917470149538749341582263121390164228805506902297329868576073903100756674600071658255604217268164885747528469436435180202561193932375703254849690423471046837690378294398201426412971930082021499034896249822965513303107530638346897285279839785500841319895366016942363328959315280338237004180608738738985986587221826669232593382306354591008002871195338188656113589359665613916523222054706420859078041109228141196319397971686682978853392256782375877117151374505721169412642156285466084362680607862540476443707536662548719976094281899602870178107846045418491811811258072941653841022668796835073625619914881064095489058230236077946595646066426683475518988292508926871368350896560285126034269863974094118538605190171242794997747534410599123325249360190117721894051265746163743467309001521914271813554786413383888270950112905866758867090257934060516825446082287935517406390018358219823459658018813586760953224681384279368022792715549442113080041281081928555627799261107774131237478172752777957467754799773345654232807592317405727942165540601160229177515546055292884921650890020342914774390137395017895449166520863119448499774059124921892825871210593861842421044764686595794511442506473041456758007149945459995175813830146326088561440827311138507480585719498611498555159575435371066687049782513027001965167787494468565227412312709460410521589198181397734504915751457295094149458941723097901913846977878714171933943893078809441209699878694394978111133790561094282309912050973157998313904464109965955501703367065611374907325628673784688655275096126809056849875621895672717553375269912215647938728218375585015258501807739754482344291500568987858889481685704229497357795868854328736680353038760377804254060006789907130999223754029595982176080343652677953001610706238899133237233261595132993134862130024310361209730228066149265593706474162151713315696139895568059426761511997331641922410385867076110937401505493661247301806957598677099962521420972144277381322245968611013548058299565990559272604243576638270086244711410004186415923801737129648923527772084525943761550586356074662412689418000906288029525378717270403085115584407487443756181189047426428238570561813797016153061234112485519130426427007742421616931400847967904598576364349625134513775830230879419822063147235629305221127332606213767387444233426299223557668990403253078504321860960410429687382083038944840131904143743137080705346351832477486892344911258540597945421582519158058020014468398106610583085651935948333997446199485743988260509763312018120518389932212694706568203921835928021864324046714283152805914062564131679044638279064983606370805294326101852789158951347528952606948797954966207324102133775121655941937679743175016199495574195595246149702623157435506238642182152537137763723325350288248591088230011396047645288471977625456219937835653294802832586468160323485244348678885228157171988501105194656205025766414229088501002642924969022662806283976854227271758862834888593204712855331988484835657608130710403233326381064728566653240391043283845022382942931012130438908396589377368550603323040552486897914519821498016767556744085734770960225917754648809406141967429961367504957135531937154668732472721363539193659156077884239255412445211697383705525447258817485279973090629089249981739736742611284836749077700582021096481486894963909832690515448363348625102065850140554555934908284138082090923492375648046834732694587918446739104562647843912603499455936435711762490626973225531360184516219252566397922944263486071221095831931972051912640938132178406685963704251179066070431541521424381749477021662968437127110658820217959691029968014805187283571567832699682512975676716510959735847531904786726449686322414506266289843095821660499021761620174479729770777361515396319378078504708322070401508706692042180620105877038730698323691793593414261593289185089513727788136360496378160145117009448171407758674388598204706679963454961560084753513513390723061381135930311176881367907005829943830747462872253037630296319621994876812030652726700656857288799573141398687192377617535800502908428041993304838777701872306622903799603333694465854056289656132567436278194294183139901202079311411969134873284765807473902377090507383128385496616299455418207756735678037972809602770398033603698999805184878248232343736318029340673111725913284557831813463771662007532906729000804278221290703201229135955647907681039295241306059876300057587445023578996167774913491060557173774716617450022793285911167585743634588401346046577782471871563482803799913801738584109960312467642423947561581627886602878718976668649692798448121700719430983742745903096181010005508094668611485391726574936943473651647110225719596280830942897257519130375890054717803298980571740317981358973069360845010565489373724530520565616894778687352990370192220605161396157957989970101599012452489931290937459923727386759679255414308354348142165974251686271364550190349806099684761526379638333069694080453969137265607818174011057043436787398541748586074261600806360708883179829553219442627056552630211341954816415210500157965381511946013392620763794745185544747387167160035728631639560543777939563704883985526463933154674241132422601245867553187900013927723102107643899677253931658938253385581699072181485370455361324811491829330514085760777782449762354271393672125342723474821553920977477779144060104674215714226809017295482683190155902224876993727014287083897517692207574307104265934027168356949873238117957268834252640931883661377648339067895234176855267750316067094430112678469293937774403768893304812437636718652303509363635732773421050095220280325926850616334036638155316670685760790512906385765395086735497679152589473521030361126327562200194330426182028583294241302364761819819732106582467414560744936647557959508606015968733303831479831448267018554748220804545070143335648899346181056334188601032774055801196998737816913481192231298236685733098220735937889016188898583270914382509591819333322607719251675461989893834205157628595701827993147944120047125712772289360549704914279705798231449210253556291337671828830370487135007934673530336883397467340548297581988260971835788212787492158523259326454768010566929252643931895667648420417749785290733834758912670867494400763051896981012985023175447213615938656232622072445686355960891564264898874920023660971182811473903128369697927612077354890184983806091328904539172333082657730703631987812349316578448687194389070760319681761507503104416897774622476894957684411583979992875436033433118905810482674142420587541622689538923184192673209816674429284037711611095222123570994414195438635036526255640880003827482029446703809131583503677740887552761033203836577461726156741089788837535387436417118435020871154242473696703692141510667208799159126847074641979218180094676027919637424504298932514400161568780114334879017592939194635726103404938578697956622618152782619928311925309277364064726373518438947790234210710612636592436805627495338165342872221621229783751119839097319608462761716178252385403158971388066180012455687116064902762017469581741605157959043287294244245857088611113387540824396335464020896712023095291149566464383408149874743609989507467030779033119067158063050042105835893230211612901707090824757431558611563290124420214585265313389067896994505233187220543288822470981445885810569645970422726862531717257799276439268338641241575784883844268819499976209269100568552034076478959535032938447947603056776020393137846227078895225105565769210264924344813189422714834858103269502269240834285374650369864171655625494172045851950362496882867460837989169379474785312256155386509733903531190315812997187630186707253187137843105904772921455182744336249463840629838403900163413708416635437387307386542027007116940484728499546120163953784557189290958342214600041710902405786274392156431017069359485594368819020695517133061312312242534744308311321374478940864305870205529539050347901376320766986264419653274385731128189859689125479887695652659816714184337686245591479337079905768066488011968220030056547589424760083561691997036271511705413785965487524194609402327909680740788568317769901338678450764205292120076397445285545010576543520951795865627058586841151598804328174304802977130141079265442233671395226455318010168966994640787493071778974893426443752097446102770301087646167755864613466147212288243772503765217172578093229478843093513611319947964898159459202062478178007624956804452162130330321790804312522821570345211501763143637165232269431917715168278890695032941694203505448376848529721357043000611261336392709853726763378913219735098998572678335274975161476838382548350008678878059084733853809397990178005048264899153714603633785805359011363546805850561690693155459402893322731427644184581754408474540954510873784449144481532567892665721856280383742154956989669960170913722240146592638664509744132721707385761498768630049879775568580274864706044930990228365514563015054564125487173304696804983353813591238092492018345037986223262362695305670839695454047256240539603973103774954369887215483263506181743714269120503688559897855201429997874878034630886178677450367989802162351294635172744539980238691908687810279365298446086668567523221811843315266168041094073897938292599849411717429403847139258044047551190455371837655195190868963312617955144033288002133374169946618860346862741531673220855401445110949680397334603187708370152441671565717135804375220420641679867319490172936819003751253877567251366694814499349891542394209163661004338117755344319145385798595223346172571387127917888723868049135586570799270944281161792777126271349060060686277546484630506119522868859429720298039678694796707428091355575972231005732434784041573737947908080832129453344110672707240109233481179226822993746039838131288388952662303535821129486663011078154251814992836366411790162147234627447518373263927596679892882607188464721473134646205044518472513488791431926274212569632310243991742926014749220597108543420017238527740275869867808372139830727375134038245488324180437947024903475077688803132189942861529937008918708035477068125084071466755908233086048159335744776855486625203278861796778641833925081185267358206602972727883001266495246537827488854393219388401527051914382562247805764396479712602333452790523742827637219820961336117923265977979705011971833920916228929009517126328190735016977650790934097111171436633696308943462007310404280868696531329672459098974542795415701967684999698440229170847830120086134899632780923885042356085073615555815752700495755637717969723143828228743251292291970564321580114393884331065176470002539454346122849054719446305139468042364997827440726594028820532527373533643781584775430121532233928048151785088322261277669582887605724931065499477519399463672751126502777736042460452010846173534639106722170048676924233342147326831390555715123270014166803885910581162599927327889829609554982666230395455291514967172970073294505883998494220820843885075232492374600385267124724241508324598597803163228941332145700675521039198203071129956312119165982571136851949687386078944621274407904817933019717180221661017725016577349864857946012215448860128697180281912111644043138118683946949691099728859437492566552778634398874095221738686119924033894248903380777419605039437846469859503853378034911195955589573636527769419648728567104239751351603446886200640753901749726089037799156523563955513366156534990739317296750724904062469924739554977963059069323321783884052670426723515099666737455115644343784018639177285567225973576389816808561156850889021012402256256769649629673965065585251177866479782260652795836254367714947072809793969553377479711385416524995724283940082751700295933139371470434881346387770349524581766037577089539244350864659564870446461684142246734703842368775735865090071237093695622962607314808446430097728844077492126186160418799702218860902267299182091254083615177867554870489335406416898478953397179084568922744229205528287333785034246696486588432110118594179081850196569517601161775716387727246452444381619698479838363315434868967221664509078797420095419021706160217732314676327048131407683504524098073195324613168967237287768321852073557632210323447088060052301344748962896278708678552675273559918759250007843145708879415106023903983834726582235918009673495992139261705952966277402455949193989396845891073238053763661028396898631164154716879587570012827086821890433248925924213221100943006173993722786607076617449446442811710470103432813961178613382509305890098986448678832728047917638442645706548579114620565811721891709444240726684253848608803570515942984023213737508432563172485033096147302154227024032048278771669303584974728608320331784251827758818950836689737668834791239825574458678038466898865952275901472603570623571989168270315716653036104170244679629859598370613722573346985628102459951713910604842898701614197065756317053659804318198510340810319165774909700093317671660315773682146747580231698220140564830905350704962955471736868269436501837003424207169395519648484414064327597976779922067207640406245899495804079850140556579881793185846887380458858582426466430129854974918460171039683461411840387058443985161165869671563712370903017457377892544755772397912801759780903129836357029777571883223376610214026162403931881575374932427460106257828630209844457209521718506907372258856696147210403679385483647859594077108150474838025553631114747266583629257235702831904822151732626139014149805156381587357878261222091890688132429113327667574118443509307573132111874566514621083111106059181643746518717745109843400492911199678279030030055818886134855148317857137934644698684354473673991958192885595311666373625099723017487106052626309679279994024231697554391669086019941680480101281262444152269307154848305002772701474010487258053762333578629199870406911119809243757362881206523071695554292641964681852696072600505048329432331214504170954457097433740994700054012352042403089871542400041163493404860592275825232993724707636030336609662417551467698523647308650340209243001366253421961831211332685499145591061316137375685544470843972687316181891332846148438389884779044055565435308135506459913168377948848364304599552807926349878594015173207370479506236152630744384026086916484930530830946206791827486109496575092591225870927339045310243139211733415844928279063606229349593708345621165392591571978157242000172617042927930438482229895607046876866507526214279894929169648337216409030240267054900046768976289091002949753766241764460548946791493499036586912268946630527086085952456198435789978738454237820123139866767671641506142071563900697605081163452476729558503101723520450159956435439219467264770067711278832847331510810737678479183345211657283371305885241845832775466801382958175026596195119963531841015067112764985657794737683438776937928454186556845625420222264215645340410073541910259318632283105543753489055603366833505340408909816054264141875829768563519584693131903759981140952362479857497681222634101645028876658116048116805482460517541602024028625040504838823524617160598450585334896746730877418792086437435790897198062897374829844167396735811602596319142616779356353757805362720419059400203732796169581067276964145044967049013376859416255632252901320926414960245966242036673256585895464059361170156661024249185478234006373198823152699853431187101557183037226566949854143427210186108597887259719249851513730266735029758848306839728581091027844244864527800562345352625389673984943382030524252623563118059995963709220943322847280855167313544125536148927916586132149182039728087501231093458505850305777867693787055790902775978055409975301080433638320623523760974079703706292341320689045803705733642131231979369268304296267635168256051160139494180082955476120867672786226280966321509885168817885792408657296576965192556209259786721824660105719535248819675690264612991777822068654288086087441375038766556855290724930937268518934599565831522667677919359445288562989146974882070845692520827174788120848185761422745797173362582785652428395975959938742110348192071316577015362013607545371598010895554042186121966573199651237056571084240086825995180740461451836017179659832614651812008594685407541092473803411941368209411509956017440649513501486050282174701163760570073936134120116844353038442336272595869044309354995020271553505604625114947424334601837469346735704402398818980972429494926073382180936205199249215556333894456843765779844132341738907839546880300086650762587203476169116094403801885534379723440442507933440387327401078657465838192891735458326689240707952270312759887769229142113513562689754454796343529405712797140240173598829323529672230670450564104361243910370267321949790952374011190018032985251601476315323640681731614778690366782985616547796515509633494698983182470841834060279552097024634601308611195716389751854259442948229974391012406418855112766590288289236169929610213554081540632217636350813324686556959142751024941061513356488854923495302535451185707899956119296973486919261248474329521617226182225864712944790439490667630625153761038121370850497909498552169930007933593593124305435436352306890374749035083146918966369907906189171584776460377636542923430485524873665663682628848012357868809021277979967150739002583442862486503048393935766095247853713853501283437926272705923154725070605359243752519815662360120814532278177678158852373831395686698165925734993042241134125158306913786025507379339688821371473592575917000414685852153094209396232308556932127592056274851413780281444548549581490674845509646076050584014909512952730547372809813928448023872133615218701498327275164667722478852188437512595926858617259786858685784218678133329090664347474045765946198564836312256459435830755728485780697758042280759379208671898848525293334421514817803440711063850186893879224046771207372684842888301970418607008972844564760981123817963590844190015085026454881234630132105064436923324273050790629923171326403411747988588440466865447503004196652308785772887442917225642941898752265516045657481370459599363173811674309083706759425076381181523016206002933740191947042186817746168286727110750503721485969081340057528287937542584801323032308040375982366104549356145347015645543862225714483824642298005606801822651233896871202234490892389527672840547267020890300712008976110777201121436462616003211800240844226358436183877001962600250177659099374894460602778910856286494243319245498037654377238056010111530618112812594099843325033922148760282086866148700254231041071607029829695507441709468803691889519930337054445318917567144974461461418327388258214819561281628924049705471798979228715810710533793763189588665498415883056730368583391754894168646304097936142426326510619375916829495996712424656722217518317194722450943208222992645036237450026852839202666063611182973519036263221332592052122760214255948248253060701223792395557591029687226811026531646034022580680701098270080416548431585716099413188260473212796617260856716970391076935098674481697303437711548155244930978898909914158695287300261113015963210376737153539762916213490562938917236600775597850328570848654581689749798134365252202665769182200218096660106523407301225333238599023470882555180571846695657468726115341546090558151294219914003626302897889121122361084778066570351650071384076337397099666326154329990381602480227945359771001771854381263550797659454784827517591092841477829338830031410898127385095729294596340795125536261384975075710491533989001811198195798826283660350479941422365162045399170420318098896308406823341076316255593784144054460878280533169213780787113666351266183830720760399628312724781123748686342793448274021429062031235288040550696428801634002612664789898164840139540350061375134743521622007481714283371462383205927235628065257545629569339126635407118784497969512983361221121821017946658162317130051553486014580099796586803391167146980923536792705930956565259604494748656263544343760143402159223126141405945831572993991604199262153204496872986080051990819163862426936602002646336336837653337664872580136201178260908365603431322369271555086652501208201131334104728677027177974850135102998050897865502311535052697662404279786431057072193143269608133876139314325315139837967263816074924541431801442207956891153595629840117087819586220569052845053107372859953677329023815669089843191299277959343185903370628981205953345621945050634222423011532113151640318709265449569402088202640836990363452797828254818758694077077601219639642062656404757407749983802371246037149406141645259980395401582365018807437116871414870106908166621941670322878343216384921541783984894846385225371834260689009750172219174250425833521808398373269810360242105214266324579879812364002087364813848706170972653246266436360803522475956088685109222521187606457333454807358774187393794267255540677632885951465518720485614657166555716748686947437080408240372555322204817529354066993904706517031905543504090466981970204810621427050251597821350345346042819871972384425048886199826148346438862615699303801181352461144326063465062055549433635198822888853326250853719828388808033102249281578572616498754308978887287138029471822885112418478040434359215376445690377412903168987441608848499899702460984337428880247927407544583911052161425791430014977949390131106083992201729704178330401440283705192091037053486099557331056048799935672010356090954101488975681923085907124140906918726746048108135491336251007886875238341559734834156244232760979249774760437871515862666861735009322045507450504289408408327976829720518189693175673873346242054615784985050783590670834911072772939589993221152776869089064089441628619374050139906296279512419584835855807824087305577471020356059311121635980485120579894916205840508105661818406801933551765286081684669991192552040776914682472159361224310679161336398496496567770596526464338942209810818409037494303613341060423133997464298920451895377378319465413670227207949039906685717062125604501599104681157433216635427958754563587554388411486017165832565179127493482655418173322067191377411803974730164326465452264647645925113157094796377377373030525306988332259619367921729441497342085025496603484516342081701895438789878674748039485528649521931647230781141019122301478308964816419743465996507762805613726377933027669654800418932465406231531001227387797676601407855149147745154684706405225066670924698627816714363589174825487934592030628147182739237900278789582505175683650248215609341316920895454001959734794058747065809840446720271303913811541816549080549662796597825312380239656778350017920192862169451191140820816343634869604018530062865711370499761745178113116794904414080176914843717674745694014110367704166922687342935707213537692940126825028720649037511812270975982535851779710355297186526256815716072209860272555372230035084332733550122201690564254808507783749902502173902255410736719002724402133825383198696222245569163122375587618455324224152091792171905594945871716420402344941050553038350225045148677776049820251628194962629972668222870740242245192583038169144312591010402381272480704255717801365053379659206489885466986968719416095394163671793291321250390378894066389035055657678070406176765927618562741858412326916206774151961655234920541925316984323456391489779896209029391455957682571034232860917926249638556729970348144193942193737813293321673124230114013714396331469183276548556162332464322480120705865302939304996115535120849425959067158576050777491148469708868178518250417347574377231087964337784002759387479336157365267171452415677512473434598105116738007192069862104229004353789077051057915996767129495226597114644814590867325775240841108828584861426833580510490384727461564468772499429018236340402063946053177401635816610202449938783972369770107236912656266391584374781919177285239551639355744953117756986239512725766752982923330857398425821235643838795805232367861055763930994044735383256106507631734661555313837722482456453296513692762429814725950849875414402886607463042665266463267433801020642472865313906193073676067900507675845180496837143019019313865701190817926281472838863797036339547494398448615809524924434135408612464955540119103613692975982044162786285464950824302401991484922544390924988158001414303936075042699736674994424934602933374888219433634682601118982120596327816864459164996395077299699178996926677944829305170154900925246282440019320810366867998585905861363579990423034848721623408000022481586430769154128064976028962007154576106316273727072883952340028511093689819431181788698205197461954331982411756009262799875077446397299956571542526041865554483938695054335785443735329356517969593665817783085419275147511554135080088736340756932240838228648382445842407820092994844181898037725646505980467226614176868581964207144879698955791791077005184390386994120612734196967221503306425941190803963640903074798954089411318945220814567473715738831283449807649577532599913034521823065573749613171108962721560604777149552396982475552423975048784705959099874889466522884961196630058838754666460695232671867466439708571658670976402695566515936192371986928489793801367366069277297715936841686748507894396164511199383339212378814556940087439784637967876915198067139662746345883261362639653695616068256435484459435357684772129110250346114263652049084735847800662983561056735701922979892534443678898287022544415558978677349998767560763789770840465097370356141147519526691627210572972945012761681182272171977703994906015221612560430868931530196527024652843587996014167677846132674042204510079289635738443856199097649317913675857415423185219016760678721855179980731341350308610678336910869136495319114120518998103350161785887637395314642942103016288328463993683862122610013900710000183857573984124990098798103898922020272595877026836268763922927988572833331863333950333016460641365420953827110538814045419079515258809330171497817389510326541043163863020146834920167235391722837226970244573914082277274827753979596362002723622045940195881353806637824137312401606846404032823611756702516194133726663310160844979742514858610062713385110883165122505274079917238169239911192798052580427726266889571547049189676517390345680637830302194024681171259935549707183324296580658116223315177580429974488877415861071589170102140391412608415436085975705834783175531268359986408284659221666683642742549477827062741885422338302140750956770073973401720254178220943851013386851412356701910496380693107520368685648081357355763028149838858597558613418046280879666963024995537443936425841815056261473284602129961997629800185218551792631047837020104283655466679950485612968754267823438335820109725666180651721790753304127852977478439194231740305370015124687614865466200746602883732585892007603057196637995452896061166930076544784541947047877939704306407106866768292370983711064435133538414352514888670827557246651121603142678481241527009330027328298732059507784903340998444223131689486361735623400166116934383721425259608053500383902897057380166465870367541455642263463078012737730489623211885869310182013336083643129947791452135359196788619257807850290265756330590297522111131015760811983687988561680487462376315695410573473592174150480988650782995635761320872883739734321200898461553052393023140943273356767339950008058855642004987228986139111550876314676352446356947444445823380713782837611058559452321118476052737561240381560272718883821654136589645665442776790107575778170322313373168538174220306883089274729694641347695410553592466101168571385079555000773142909088803241626194805454270491456003761369509946843422060754024243547157604280234109734032667836691783677157292101109521829740365413654716051884386293229589733761857641572091058552906022818650184661113125759739075803226003597875204052953831317372409741464283037658112838733233240207353579602793331750791737592359786548256620038625196493691313396816689936783448407826796289958193010347600776729112561564166072278808140369402219558944462131479714101565768371187051079218772226562004154488180002101010160480609550072821881934440104585984054168473960363156043189574258637838061679292234731609878779344936950669234487876761620725761788347370823626399238084197210226737280933110414442814782672273114325990752472484347078206468494885708334912258142569890094559544585958817929427105082418798629512124830371843997348336593059370710760932991157136608544972065378289962836062700466278007957247572790652297035253615921270362973527804389296251915769891822481287606444729456574807454219017326099808541782852198042977505854088390953093005739497020677463494055121849325719044879462893214406536019476056823091042549662906324627206179198188860199219426158265282128389833155993041401472284332671453447989628029361710755976487151365483345950567636468624554772728486672504701861067179764521818028717499482722037975918488263331171839963037250323611896671150466426177666693406494969541623022563218492532410009921070841584877439530317185408981321103746011763837391075918359084358404498553285111615613043988653587221805359981606047361565763605518653782237352767389746845281311694875240438770647578079549862057090285991172442884009943667722169247100218808002080208565830298799817816394473424995565752111444696477335022974491141892347333061934891441334881851736058915557617679045363695717509007494040508794170493567559924955399357438729428919140597118313967787231408672580313890526402410103820774819409726849334593363753169882885546638014596990244066809262444097274968423526411591136194990560072657499321700650408979669006380606955444950951285496549818110464348656277931966682217728198479656770833412074538409029944925767059478428139952185428808354725974247086314435886036039196858578356270501185635075853198291992409335135389631925569801979791615940305208488964188546036360540566517143073517741301748683971405766367570859222282792352858518635893940644268863099807124968871804868090877050882132920089497469731677305973509115593427479148642627155657007602462019479055341432970198319835641754346170500813956253221789140204924733894522381090472533546277178352602336715055277093828590594240781698492803766615781695397204664203757967951973696763920879391765566368840938320439899362257614705555246397027636479839776566164746493181141890969949460418372708435343715085069112439355538837037503225923178485727016686690914369103428501567902819281113534266396258567456841749704147908927372609068933803664154290129227423330651207025893634158880595407327456036461843704373136335730555338875069606692263550788618083316911626036614158116572332067309617976883382081631454587173645905159755680298576208984277416211390094805120848671440691683137545903884918920757621028308084522261261224876512835580889936808002083143874095375286507678981636437052998727350565227322346012252231849505953706117631849852973763600059450759359011391311956511800494106472456410319182529528739749125484958763332484523246483350916228879414756347248834075027023397824220720132459686546637843587290534060945840525052529936851656284299981923033297411489506122997329251950643376922605932346619642168313399776156598980315560495030293865278073407040201345956923863330885564393736981494259493159660209046972034647686355837831156397220920864571840729888771731461565608403600672040491457209641163012578607785290630995015553841431253187297900415022576621756080337306452470828805034780932387769969153937400739234551507802059170468090636734822957791029166664514983292246642158345922739444827820174244745791671397178951339388512496449160288669635205883333051645393777982737099738867800620170013297218923747025138056084158726097799104477150520778297535068309115183185155627457170018193303834707798240685193900203384120077558185292194432225491355456265651547233966330658788327572092517357198201366895393845001459894304648067930947762667677306815348338689106334887291142535249840790267403824201126795311679326580450877182366833868691876096090965359766806713787684696123429156475460421703079926474674631925075344433884529026228048079418443293757979263365029532959706458970132603589037113261781183733919432358700499222187496410693058620147705727099919285273301255713072590731573104128748616980355052756323203325562273894293946010741410815339543556811571097215394247970396799993585385073120767891414972118682132250413233880116065274763402142770933540019279107550717071688364807332106024408966624521747499113047863755293177519863672850944705181610372631672872307089845043760643025638758430313157925103833170175332264370747096172100598871052997779271818722583307079362716472198416562932223331132710523260263036095261320042396987113172866516080290311486577108120214499165817229525322983306330867834601892515507676891823694177558617720210747121286109252097207195011943549443197090003983520084542950987921138857531348602959227557230997342808792263051461675246495109727420517326839868521732375805291410196308944379645199952922670890570891553748130413910641991477471287784227590799314759513257180090846775868351755463177389906877116330572555240465651813274192952736969467505511997605212813892669026156852802926373717041291491467138626038115346237890625987918922753643866522577409451849988229812116731506030427704112594222258428947614584593723516620252561848712308634795142136732361406492704089535151273045482113898393116437980897143744432197169952622564231919911890958801418356277590630003107823217944126521556266408223289821480475483459667877994463382047217921510050943878956251072434044681639060560498510739817808250684973988495800097325813769098505989188693928106965408223536046733002641598168465962455420271789672194294461780532805678010333799442641910863795101963859804616201220872676517631501444130419108376569556252573430340163448083213394806609376396022513902250265924266837625125023163165611047347076451623884190575195505352802187489392651163327489732914077886880443747042123634727015627392399580027505900336869188208146057454806225079955165059536719176625905940664724130675811113488236825160113730153245535299408242029781633264098777312379151651733642123695681210375015209965400112395282703617287397743062933622849351133748197696131408548161817480367862989056269896723442285913714357952940064862622432369439771713929955262893581149183250512729737643603363878396998513124674677985581831179654242459724067719087707933962212767775081445622398565533443036277991139099960051539955942586318488675178318620186208584151628876258530434519913383433449512239084290380377066781053948945166592735268919709503726352777994763483793451522887857441905847231277478411112969236910528901105874703418307491991300661059806095552555938351750609348858822916607112345476297737394590787282624356283464188760892289832317928300569313591836766642955956970920285585119661828056089407738575342469142973675615790242157050921447594448674666056404044476162806570992904033716037157167020934780028181164860794281296279373965989899015291358968554103443586126863638044797001375063628628547976069541679055045262150145328046384741203939748017027734152879279916066073587215454433394669688191080955194931201093998715739323086495228418317437555142077575123454679895957972896625084430986621729347083735926545724731082860612590942652922675875359013026843274145453540778929793007819690303302482194519158456746190574235726837736684230630088863324872901211353486697403128377392535404095313975360528823277335621428189774976286543495049901724739639678250197641229804686327088340300352630577542605823667656548021999444283253529036652498699374211350627074990647073524111962120177901271862230899979130894997606457566464466981738550572681767834691249711569548028760133896904948958452043167007909093955600177303581126735871669986902893253872095922114019084096872527291023649213453491205061111712203206315610826016314443240508253192781431667888274207706440924619407684777216188223724843225982814389230802389372106468440887372650491363119263956537497254109862195981051002131912301280615969842739019690526102151174206446910582353476957644791703890938206508491307111591914424821560997861364137221799484191626799879098593615050743292409430635149450249562561701886928809052550280966193969565819903330944951981015980706459266499507583986399122804092857800295664276779271185471464084280300838312478035553868454772524844316422517791693956914543665778411532571550709941090567054046049622888261512928365013589975248471830424264215705405052112933051120159711126986494334012561338664535605924520190798085134694403686091457613392988995118886787983399106233909897670768683789403349769804256886302778829497826296332406594575578479896461502229876313629067098546091580297437804896922894426351224570685803254953761500447622437627050188750967717687973124496300774088595860527538506371248348258162996430628503051806182461259483256887339250363698906865262712781792548013411817183330648095313944980204191731488375652538803568050436542977658213696780549051589311967176278523119455756351017005347481402426338910989527302544580432478111935889102539815247798000548724418374375332773508927221250053604186316382258087213009241151397908754309339147777876424194511106005008950482312827360027446401635371974052143919395499045989072481859872706638093396210761852462751493023213710610643977830743653571295533337105399233154480011404784862409502821587431991007000331694483774209116830287905225034667678363602941988183835215288990143297821740145909197527672480123308854837017984445318191452877059700102812320756083152697627555293739140239168341641414089456400046661421355310546328347491625858472711230011659674460520250110457248490347970824594608608303257220814143505341785207787554166374429090608039477366589910066785105541438727637073742536426624453964486414835737654895590082335383353340166400807247323282700787553016717989184773607296042498209830484574235573365317659418037533323425843576713365029607102494269609962075196582855093884285232694716559251965294522984735012621676832419245491448958179920337164143291741503791342639373312732410555511286986608054618864677352792858856006455984809632912076017529538512823061639873725732011179882479934555071046362072979113024806534635819615113962932153697426244220753846072842535026638249224837456758631073254518689823294951077101578100436119982533501474477526405053798202949153177262012478717494993497068177396086432923038897344175673029841756054764028485266906649220789768917375723137017555915299807071336565520053883085281473440629361266645350366721668487064133347540075269585386093232209933727528746836623560369367112083833051358669126265190950779721065172775243151943876293828332776765078582224309233784142329311260797261828232030764873545813267082679727206178442033017843320965083905130351475381152626730768616037366612091681322125324347008660414142167130844191778067626627969600077061259808196903699837328734519682549994051167449729700393187547548444442696148260254823515652920567161951168325597886108520971440033674187101009990142156769262276339968488896353003086125855016351410388982151192644936478619987559790810868827623291420124356785722703397821123100684840497768848280284923833650347457821733422212359980450306320918091466069265082717476566585851473505226615764760293884068324493583204394346738963180245678066670114438379861864323036126183525016658238286173411289418668702730051981550889606317573620675275997939285154650817849153611566720337141876908030424580401599368898253980302344281458015769120535109784795960797568436207996051724697153819442092811144223248717909907639976639119079168995612377849587632804034301093347144875080791342402800921775627377106311059912814128156347772026677872278641093512108716478731791038240852560017745927785813085304420796138983128056131453469626665974760847696673332727027353997104921898735280243388844327007258166052675976346400402215736302446794543105724526836505901924576779369228420768248758927806354135361351658156597446022125519666056525139411377087994705155795391108229305793550200148712192264206863043809531145899391449651812668278773452215250003524084472509750836984695389360445488110548780922471614504467574284870794558307619065234319300988157808324463021339743330870211183715405351493829072412549288756026762676956458093884871326060474641059324204062034794680365936960076123473203563833659519533229742931623429609608954559942772524999403920603159755226593161736753901730096961746901616341603140401513182387341772186434466626467318904335670650778930062168528790703331594261157237798763280090015315531818466750227738040672778611494856460362614658478275054720820225366902845105449720678418467511007715648637058167304493496533974086298203013634903498481609131214107809341061422739411038966704882109040264428077409919066285377224922183879114778067313617547711512410689933913185295338832336749000147687388288071720544740526676243059982553801743778664581522091366621556533535101126811910359756505986877846362713107426671959105098279000304669777416645211080059895828296783959645805479708011280056926371602723692378711302202454316247930673003967175563058673786530574268683954365513223759506838894562822810168980296607800353460000434895948218056516095775021458583750495786291828295787547554932216617731902372088845675287394040410567423974232204498958648843620725144247782927039502912415792203347548955356062737215523502503040777564913222851338095127755804747141096181634141300961457278634034843023048827595224496353531980467203446526052331661942602306614260215501287572824993287138496732143666937350886195655358731518458979445403354649287610458743795340915129241547561954692141560472467212586958890885645389735010358796085833015302940540376318288126380040952811254902239551325544359266627577554814214872101666214231063375800870466646541681455855810949130474635694600380910278136902928338319027679579309976327677319671303594057970180431302917388432503095360436782825054149908624253631887156823235854229975788824414775543734800855328793557018613858771303465088813222723077227837938797646245717317698160002942490900053165319800093895881657123232854101989210451750980601474482785705662829238935675130945403902795907498261827606622717614256464073125771942781448681972040607752844072497188550587673626979452085814344749655431342618389184581253566921119278284579925211438187289664710746150661571923639954264719533912089787104678791858056856949624626797141813202221818256214006982012583963986934129907215796632790840064653358450506390846482165512993235626215763735189842480860328411560620798415451838505840028834215367211682221549896030938981482881691517711853088359871583112698239224130183490979637539086362649382026859757055275725341248759362084945030907668478259933646614809164124580311438352408127352101897775706073917813334487685756325451130892392472084230091648812030269774049566665133614592401810138176490701822503533976389576485403590424673719763823419646280722933871226578148637654914963721557245972725428344678027856924268134623561014254529638011632718237650413372946911970212408439324331899032833941533707686634072477693108629712785493717614717477531872474500007597898293818440610414168816671121087796600813703075122424392425294062548705488384808518793280340716240670162150000211849089470839165838133541646556120578353303714702543471501357600737265367503537353533263244435017476249073589855586496248149941852254313506922901084870722448625486603211978118903757428137284951330283947790655531970860645160483258865309058862691186917227045529194099769594442685068667380884843068707728524648716485725862383343243494425261844378295421879516611368618592886269801158653194990272477733097936959767490528778431995916003853128119110910751296623441713162295892607104020344564339274743298738138218760059261348088019128437894767136114027105856667557207052679084869276978443685060759039990591751674688770986576813538763795910239071350729172541223036338539904952311127408029573712053917316618729855673772988655515150015221799698355806044752473133860160325296553523956374813904827759929744567691588456120199734627528194829656584391829162276848123929035167288774736224837866824159816103495221727575282469535247534381161673240019847261039469705253888917032291791733685514606362427305704069291886763286230512440790949169044640369705455249150227186043110627301743417577537408842475846794833365792931068899590469393834093391342062852096417263752108691490453057471804056337180887162171830942228821236438357413043550628563151341924316778362066110232667060838417789444617676035431660977174955630978451553792429343921529613884584114228566087642728475035247159306533699552088920822608766837457955861900640510941461363744657109125470074674783723410516578955354034112668081865675419086464733834278374784290047724871492908536756435116478469234851340873614144208850606722384909709384857902955795907254857015923544475030016625939380581585162777939248467870164172996624331363045808272669258474963566289115547770912741538234704143618920015545382179385307373384181464145742296958511416586783852881460711217015192280025587264511685108771514606766956864264065117183817694545201937615858313561525372137355337688465048803266426547274314410639459311190846215165519086792894180671368090321089308062487685326295862404322026650927283260901313962229533334095717487344591753513126105735865953535099280196568766914754589809585363831721375836514310360134843849176152334103050580871179575939911618084458207874278662832105210890161775016648089918269593103085213342519478494893897844766916815409183948155882928181413443704128853833095126479510255714149737489122780742821865468016547951713571847797961053073450846379330580133625690807538869099021018491958040735507911230152353271484790273894368437577100096906057368603740265720134495618205334026991776188772298992368969410777404717499695044407999023524214250357665977012190705035725748055065903366530797834778305975311795473509326071498150125373131479036352132105230715197833662045723640533792657254374356082602398275142298146421153652993261636911200510792211079961650338723370452187446123393140326021010311151723829480190837332640151154144066993715124592813586710969116043466172672360041342668336935217918886765334305106561339951223410527285321928997446528950395988776530612068163811498249735687491496372659746428497150236132988860402293569068419504461408005495226907431887446066935065972658918236790385701759962847218623697855659617919479633254895664818902959415938360636782058269422232688326481744865327439470983831304333652206269256761024619721584669921597615427615026368585170542314842606447290373658271052816882251726239697902313654259455819514254764147194969828874450366610946272756494558017373141995964201985146429689430848110461877696965036024197992219080749913891946143509082074568276771920471659939100503777476543496316456814112901270696444900392331856396991896859264507501576077407044688844588473096551709475818236362958831231234762232368330219608608331410004853753063170733019901886539770754324967832528776835905870051078002239911050361986041661444213996293458383080291271050771298427542247817463661634233007717197880456752513895799837813921858416547117552061473283904085136803791464488113405727079703206512450107773825766739162235560066276162263619208369968215406123233802464918592917288766119856888242015533255855720401863573146278622463740551202286147731702352426821138509687211528585830464072623786870256644685580348553860603101204659942305750808508091501472497608710836377581485832967578030031444235273135443169021978450811786895908656187038546045988245402045615037942896076024099333509738776998632127286378989208703547605215441741468725466216333517585390760069090774730108866436500830876094198636268517901458565444426214729556451398803869446108306456987054348991827836376789162920935578083935511169162741845232926563242390209665100118597896871113283239290148402703779915315626601165621982638890399429067194866056179480609939253259301353270006310118792587785400500699575781366350233099042239376720922688606344771849784537194998013100904736715769433248347341389556233524413585157736215152283393936360104708166895147107254724234422329096262530804691463583180636090365866757446925116095121280991804935328562884091806071464674341552916583171365173153698945471478412515996931360062964219291445824958694741112221199309092256260591412364490259560213650724187739338541682922736340627434311477130320914481467999648554785248797328675571311365282390776677623900063368962870006888113254675777312326139501018906228177668003887236316281814460252037261699241626291790159599754831001510509262361844988221894419645811911650965647671208826030131245101608031251525704707767341345441081243978024219288522813595231212406404855591342651034717951908167384128683896713468478054381997271710606073964355355877189914922002692993183718595538662980082847429576060897379395258419861380248819548249646898179770495207304288465767727678195333787671191698096108328867314704729390938220031743075633481061140030367443668671158945376612011794458343292891915894874555380962688811566929329787384851133527561088075991149033294554490945788301434629411976454101124041929580319002080574753237526996726190488755238308092484098281468500493650298244529468811490765683687414830381671280616949930191499159694813834059600866199903681998250722902140610751506838595394441413945170077910271561869543686566249551807016852026981655353387068649210991569906350839906952168189453839880602638008976556010249886436958859671483860449098654136810580660055900218396150756382359424201351583975892337397214952777778491383588492029952734084412526164835115261949324624643435220299788106044831669868440474489449279781861946557677057056146369847940451282277684312195386205225424535003656872362485517306410830107126585645117983576650205574430996521945412971324508833774350028048722054659365988330543844896601738492834753437020438965202079444504073652928014956484826722248514769699062056874926872125116233836054725081397000753300136634221090146676490153603909594472144684056162492663529386788770639297906858001864775273396209340087893771380546527363571775007193315171360865628550157386889058421814280074792322595267209827714613070842656807115882876678787437303794547801478349682889871769959094472309476360472124920468199791263373607707962290064501713938242066641897974641227007635584537056039877980033602617395140820989545393320359731709157186363270667054889395796686691628723212323786475386164051322530594531955395570824048033597961117771729638774335515128464552585527725160701662569032403185992350047453958956070371153797800052878870371139370840846842737799932642391169687758783424114974386236216630570398926804202936163404548346723581051922110223519915152657020114309964338614551745254668086933195997415515056658548621296231568832643006107298752279485371599772948096050619923957260787656619711683440211921306589796844659799253390800828492673853672996738301164080062595748132963531180674665012226968116178144412986427531292024406039418945800785109849648084944758688416939212023671629185073467774762853790953726732251953706806158574767856287840867930423166860457992371507521850245057822769794656294913170927292226695085538288590943704011816850792661466535486562525246649103624901642358356112648183143117060989837121833225754246926280070279415822440329520628508765324400666686329224194857456155373345725631527883275249032215242244137154720224104396041216438536631575907527834252608188306229105353093156895100383936990568969802149135358679464559930096612972041277567058274311255279636136983495839686456623117497244411487182648954854378363738280113630215246460448090600911680515332547531748770459268234657112724768396518674749373435029228537693375554021079145411610998830764198916997866239426472626073640472614378864259013462219277860456072866456826911488681309245115075659327375596680134681648032774123250693640488913467694820064675503741637810875931197379165264177590972370318045993645913879830380812340536678305064566288115884208881696820082999696998760533004112980291427969118139094257667015332019556712558714015038692631256520351335792090313070050085048760458233681678401729692013004630837043964992145789740229076467913232608066782137680313815244558296374093410314200543646769698518994302746976856586919326814809105670659354121526068971927231869596132204257137589327665253636780663294942805520265546428059484017353253317961386306415090000845958464706626178847476029531412455552827490280692210608685800495558921327146244406017314471292916094843069742913030120275481346402893071131319798791199910050579729516543384131581426237896547299732152418530999033012396282007690861094363564989047228517719812939544081032757400863517643928755003034127370456937493146170493506119874201194026596597599892000251543040223037797648366139840268896217098994945945070341409878990677480772431835633643217277842799801383192703740147209096302662482713597768078942968858712390214965682363121417083416617655931446904044425212371624166800931597736008709153298692649271677793159280239906047402219871101819986339992995981487304407826561785646295349146095138658269988830942360910215446033522165348729860260256527332309720298191126492516176149528321429726425629059422698347616461906736858939035063682919480388268351601990808636725820781692849900875297608679669068320222847776391455644988636825376665543718621221925443753588843176658102449863811182613296234986611839146583187013360309972603245237055432974579389077013640664401963843421269089998071976835961003299801877903398123589623248195625960904169036968651392911189413108138903531085041749846660788043827003397727453567055528478586751751981874259945394970363434885007312140152048175889641290308014174370032365532424836687056884062014777236155330991496197204073212809292223326006043305111777974861252123014492354170412828696578187602040700711777858843344359154494952815713802331171010563214577550222116491191332657185216769015298077044609621867397008975426985658158359060811756739523637586516992330056845683696192721305954744109693680262057031910114794796527218527267109977970780526757163788339202480690561072060735873910519108168842135254319089364997013310428586969309646802250293255555690704525630599124349429455589979411102821463182718388471614981987979579253892280991719268550724340768503322452454856183224573831448398193229674537834362699057263643121498107380894462217269152430129805039100632384272977941551519747752532023951565052255196238248536859128313701866076482397322603253106234659127794068560007764853424452610539186040399052844050397489232093971213977043054591784525793692517251758801023324567361839988622429250393672823961552087458598693998264724208393022506415649741824947668996512686436744129675354341035818162844412326005394109850449475193541782655468780899283577799497785510943454643234439779088785201189376843235163530751216149547696583137802103637577765123854512279892257995000676024010454907567237566731909672981133558469345672450198163285978245123215990097863855050662170017286655741764517104459406206241705888658179111356955777701672484928065430701672488726548503479648426745397319227370821459453802585994444687367381251110784675223275121885392048228361853849003073737227385262949263094367915581455681134140486995921662808165324105955572212709858119723131753753102874182413723381151102219026843033543400019476507326581227555455019594149192089697979501615153905127689139197652782028062632320332523827290632800917197911981867830810799291975093384465051092237778220223996833948321661272098692140580923018938779841363334899624996454369710284105567519753988171657837496587194339884685643603852998513484257421430909040192027992820525083832966391387099857965893352342414201643160621904592634149755220037242925604409094800264579427888981387572501021817938548215139526371339410900721577194842789775840516838211404106733399843705601542051474294065266228136578244529400916712762989100395159110072494526107102824675844168561049217398720248254728381412848883340883679899271996495112393453430028844476288867289802916952832499880513705648743297827577180436798013039383747214905708006694186732173594178741070684334029257356387849600947147856267696573288610451560190209933348228896897160581970243890299857450814854302337028951061607058907682635896738884791078048197517136890439385762459410673526025925829958593328937956866290673172525577883497462403880071462281380875792973858909211651420983639819489505403590052061276436733164059452964173672705306307554511052768972235552332549230188467112183376516941370574007472722863624242322904658316720583726796509295444419014773543926353053240714747914637280404557556121385361232021804707230884958434843094775567728300460954763576136590695779683928736744648270007227302189127269016166445515812891421895309481757384224573517485997282856081678130014838373249273194122086644137793766005210659896425931350787741619680974323392250651765717068807921938059356351285708495480394813021145516660835507256778952293062054931145278054721737334495898488808507948046265140785419447356770943693270863436712642518299195288083685801506558257879979910985800793563629908655168973746799679964671555587354470666451046240460201848664771076744918062285921854661438955393254071106128910134186476816569435941984981294647371968107932277223065284198550822508247362832957803415485793254829008597071862219081023838494334180297787152337925019875701212235772074906573579545725244116259183384050715149916965748183482685807547865377367693157977544546945054071810434893001833275218776725405620713527213813876348583952021692161409464407179663969110766648063816447577113198134575555251854945049294230183784237357758588740926074419804168609829455935898129102089815103444630387969177281110173960600787070878987248501359402296781526650609990398129313857880556606203560155279951692517889365004260782258076476500871994065316224974536104647945768526876189761664768820130977659227308942629579463391545023185790943277237095104525477356174754468313425807126093511234127614590173013229534255157362910593742255326189254540055884097380181868178057642420152909723283684120923246053240338070764749898051680914815147563837494694987195110707977599426284272995705148591094665765726559130037165079994440853993743929607697813720308748086634926638452408547318373911920268547448763560665459740167232388337007582587437010669130121004716394694709469238740457480152667478818926982297456491107973051123166116200817101056547572585267852475047999372085960102235383660606685172130427003886221607451337466907458955152885776817823607520289203506765281358910175928230295103364028649132745062773117153588439444575655655575472257794796764530779650130312279187800265383580166454203603484970457497628506819315935938091263681228756770978982998796997957904413245434706623779815452186972683681658622759301161125475590084285382178862386437096022239514170602446112876205255996402108306587050845637570598948835796151465861568615084995859443179406794744625551803311206218084788075922929847877674486595041951776197955563159633638271452042258296771584109024619028293165193401524180840344140572042359500437656703809570101666950586275533395248049173212155533102528334883141077349285600603766867342159366496243889032955613203714494498934965032282572356493198762345679949044213735313372012645217121531584449596723168106430947202968259874882095160255433222498762811363547424777627744440235294479995120397752359730411713550067284712700188567300105664899550039859942900209403025393807971097135919652575325355784900904406545585959951657107275536702239128613636151727629936328520245375167978906091827773860365193634038609772883121228554683051224078193191376634896576798972555306779718436771213166928294980938338585207278902300653596210225324545068568830242406649326476390622163094212383051186164764478131852102129325386483960603639891665693018288057161457196737391849835446095737405550702053608948337853118681760401146270396454725921460072713725103357873638807383822694940314601973981162010224782320258043685731132708317452472630329553677001121966431522803794134089882985751508571831044945179227043552813335121152438750334649689176725453840665774088187240444022490302095276156750240748256527626117170778265080560654282687353700135917301252186518955176820810704859655956819258319209013862172436086006795203060051670139564319083787200234285481023097091966789912156993059765294607046871042052724845317199541915294232704885048642788886523727798655007891418210790222212595838333727904911369280248500394404231850512871128127942410448915677937514580392976260744010166022366333095651707314363933531828203408061851931250135969997816714835516700144314265683600161862314505629483757740122156124464933162773425800393779678679379184014418405166298702831467098375275596212222085370817098962122938658964524609137471000974651117883649920032560473768749924041335653955911929744485132524720091052295779230919940726998333683362076515292420158740990210361802408447986894204922578634290189861774913746507044076157347375296208612702356062729168040738764277723639027817750721537530909446752277723974345303184467634101425957417845096266539350781840059360561787639905320115588888935996421016228769432950368416093472636259367641463147103821167396793628884527985893763586662369778086205611308180551177582297105006326330231251625181699468245724570360500699755335697202092203333102430719839245265775867554005106000149965054394107927034781307859631263769424853004115332864064540450974530884484148246068646066796404771131996459353173450401353911937845807721421380296734127138970124658570873521274483323518413689941891741639884549651073322905073850578200874805155373569864721691851600993162920538715624703689106075447921777606724502506331540592846252596043604225572246268919158050274907423620242058081306207524231422360991291006597718539219090403908106305655997245041487551841773148916379530530187391441903695428849419306644960572773310530103036037146054241982064226449572973175407458125008635347193165431712575654909790028634255871877860416552121929911066328803491829509285425148192435218191355414296185477216237674606957573267323714755041314755439510660997070074379766778909910012615116935445070526336783260239603146137636859101947766390009672678999225558469923561111473256434456431120923283084224419531059537886583783613607704509858788186597283480631415986445614194817227728181755741454861622385854296975695789873093928763102777422878824059082202281016372325587563087641864376646085111795125227208347952131139675416867673604895241744517083304862478219577265223562940870757916220698765530016983936318349235822021744783297792109958388271449976687521308912672568056087548523124883717773413644749817152657331908325189994835887203359925113831846643821917118841797381671774872994141168789652082749736852239021304603222675260065345226084812526714896172451372170059547560756480322215562245410120301253887711160610466251132158190730713843476616402365565372924118045419503363998187746917679467275937346778059989524658863774884035109734221923672421109320162027630953471196254374609961477693993979669059644463588070659003881853756598285386461134061421137115127919097984973959911712697950532276981513027319175748504291436094984724476818506642610256132357216862762770315911072969024910466495415727466495028546769912155619149338205795310485981830998079933433064112680812687945749958863003386590092826621663147877122178511638564477114289965499966926331516368669659430029415183581767831120734896670848911770033724078289360478172310598445717403377931665324425508889748727853629561889580590322779644959569776563366472006067103509937839003475139462651369614311505708376900687464060800024458496501295439604508442338323088561621671959400205200577057285700047609072430795998016618519903262404875986248337846871321418967344420308968744693322685287979847585711813596256000383827501563366185392832687537897304204239536754139997866682380340188163085348717078531918871141158708089466876446689531142970246749367656123971801008045168767548225847295430036637581327386734948495401295099074652991816965812741909508429638850041866237542736230940818799268000600668330934361039651145175883648331227137200140811557538944133182624057395547404698104668016249587536371412234985442667966097775341776651710118337283655331336874805210225239919042996795267271142480251570875877400185521500717699805312378780327720643695117897145300246966227653312169511445364808200420086238359545974795965946272484270635448825981824514904423523066388165397364775630767143545624685326380000334840705875481274597707043787521557018815225195134539764789866517688356275624737258504705964987672832181624701952814165570150104957170887900732880039535551720200079124430679360996319105614493977423216375917377373868669572018626552706142674173144353821545932829831085594579090968477931573519506862321552454960352331325179175425544536489564005233761518132895032296490330746682052361175708271289480275109753306718984365261632043657418738246501496247283509866798704731215899889419002987896065135618272491751425647797963319850286779637170333710631779575571356984561314051418624960606566244767521116212154707695563742953334461248495109786243928851249237678034965315659982528893549732174307919000130556381238729052988006686379737405983042350719669847745983687808593698595503382050492619452598697753418026575983913265853043048275448504773813209868826878462227913452414068031051810850153999669833967694684130599061528659776921481956468275192502104785821850530999004722335029322589818889011641306986484258075782883399957389443170448289056005932081214830472087169265797274606084792921323170424348002962255346058924664306208372781476388593120584758816045165864055830474622279696139422483705103342248191260057484233986529381404153507721190441753121196573687554196968858644144124109751705212040800104619117086029813054797129820638549074245575620178075528816850905574202573867941127123585646417738782340527959524935285829729446811867241657747697842905969997184831268560564997063318337033388973072942772755999811062384863288261172338329363487730850763055463842377625676829537217591883364452821001428876215317728838513970370537330814406795461168912740451068955802652148635744646024571448175593959316048943644548751147246001528111770259371250415384640046921298021641365998982378854946375846235296134728803886523888508643227475388522426836356888225817919024576201644216062784880716131545295404757378701889901802073393014299473252072653266152617239089363229503316934678451141171052986486572159895686341557511949904477835539438837934362611483607883755653269618675083483606335480066687390104574272947402061517072391176447275599054225969536419389357835115618849335659346327640264212424757660555924375791421847565145313288872883282631697677416719389346578398898647373020140900973306071614709658059486556818529561906556707414535963516798360690914255877038180968845690038649264023957789312129838567726399751243784454465624454746306411211835191538304790110945881334880568792338548161292568282704466532895973666261881270007599505749120248270646593382911580605463829981056720263437674493370143143595625905597116640885177592557180565253842605417138203884219888810469513294820209098346983430564518201545999574615883706803569579929040321543893308649443245349610377934184450333766914208454604798352787193751670339196276715419653300584282867330615745955621679092182209998651460304883861219738011534867433214755531393621011135367188711874544387615384111454291362335071783552394196794228906279592257148364233927667868884554890474195910858086291653496484683101411868749531580411498146732724476891037718665712599020077974701245795369784201005187205948265789484940895473003914483834791069194705042165100235337564130720825576471649510869389563768608348046222722896592925531039911322359422669894432968288790391565025214947076600614488134084787801039711709565126899427172775611981202990086396698858538254569904625472166143354253909812811537035558791206931393889957338379213389234558357414290427998709146531379610640633962732443003236056547040016714731037874247179494623507951035961411853678990302974696875110507804724765584031461994625842921591376139669648416976231592554316527365361708350315234770451122800269601461149039964225319371544862189987872714313183185598567984035750791554086225497347890390797425197732306329316978271802251578167843334391288789340154582051650430543151393237673375854736927215400800395046693717808491573565110804009612931912482217773939101064623930846399222002447559189918577505700196455695416514992750583472538875987146187132111861359866933259670472323129162545381250190000222815400660978132595572923709469268801618470255025288178713248073841290214683272152262129424287829484847551361800940099358484704697176622340075324917410184795699852690714681023668295240291112327444418575678152502008907502763088369320636123593596228848765875137388904863696042069112226842153482974283691397807996141111320616158496620754719620120865325685248111944856017580670966088687941630220994962926391391310700853962893842823111039384167605930419055304347625026993954254158119538588359201711388217943709289531197158460979842268787629515468510409381299927560784759296472379370375861385257372206482100818383489973573933114824213262654374842219548535687834736945109730313684792235030937702718357220570783979540620297108167444512492181765562266393354570025340733897131245143680313190106841795811854298628151704769963592004275086619506596923289478159121209135826227577612640924524336518856872840969845739484482686107274347902222214535797536852141893224406038105998760423606133464914346490698744829906355594236334040605484145211711325761842934546998595859198443243159077575287646855538445463568392549462569847721308145863912956581098591264817245105527926998239924774685336485960943437775057144865481458200743238356611515483885505260356484561750927171298530726262647851681634377788905189666725934406357588346317008054674177971823065410452163901924029347160083405435961390705140324841095874219671902217306753452336890074575045856788452757410795991258704043021988296941780395869474728492675607566786112934933281117161962994301228139714601563769224494294551450431842595460743498676180539589936246835969686757738464326641148881321097309819017147910287750544770620617321228776890975108168296329758916558896186827693830874685677712680629431860230594020853179475206244100637544335685565362640035001773710635119657680131826974679052396376551799761678792770958668117789286600223593553567238649703405383683885838922938600909723945439889340643639722818188078497891877997674876844542349745592888971375867932122359017808903116123879677390456966866509609329687225881515101146299610729929506189673723601357437405983268608752370456992031067290999837156722894889611267912793841964139430075727263846346548846230221997538495516206190735154371432702336304999084133972570211098737391368119391220561765331691424960884160020642416549422708531399536401030035119351339418661391673788481958249683498104772818209410047062148389168037403033972830669087038876684644283505996709313780718344681199927476743806910373986516708299324509068301473619348192756768785061727440310761413272280955360053180829366747008946341473378295944882549962211375577387218300829744150770323310117628270549586777836080853557316292999519361256688181927758955764665456672431884582945692511972653963550238402955407721694520806118455853428594951729974954804828010306920975246648202769059326056325635962178065137348776561259137176237350599508263797475231731399491558986795748450772206334248394874376672318791371531113365254822953373044170296180895565231670447558332598226977126165309264390535229954304081604512045590803730401073666427219627186511524287532788558497687659284415561230063553010910294589005654212008111649429806007016396377591433446178693316645326283792548187466236864051301960335972827637761991762085639864350042404570037518755949756276508007112352161770518279021075866190445554989345107448889074300469428650944611082435685374489206385385886214762800858934989676619101998437051144887584845703629821787387373012086279485659552637735807241790827786082542991258090611164255103339376375348834152368587311661600674512695984060380977063688063256652159048460080420843618988085305883729271041244341733668875860847904126577808980274430697296908654210646885214994767943348648684578107849230787767942957910161449099201857252344149870576920583241113517458195767956115137251510694223562521565139771612392242069078829358326472855229632280567580729644670135757230268014758988805718240690319818377771295693004139108759489262035064575012815499382712103812176200045961038211597262206674986889487912745340992452775889769627037809079865600238110629272454142822123096841051093648386484720520715207442338221265893070061362945312806342744434860024069380910469907847994714690988896157873341993922768255326939804033825273709646674870865479189182311839904241148130299837286598439891375947042363539693297786735164350282546800744503476424300414742899782493012159432252848911549648273437517691329309161890679740065016941751085213885235449998150815134938773287095845824363438657993571826028237088586280649397768800877243872784168241174078105772890113536050876157890356488427763052463824809604751542346237531107745340102203607992238787171442362198434410069655370657507282995347888756963499328045779096547245495441631020701475988346354713660572048630733638134228195613084551388165128351019393906130322047395560014454585180447783733346118293142543896660390952866697449603688999424886664736187122745634809059940352206224062313023203826706751669387063209986646877595473925802007286282287552318489535954288396789933645073466641880270177440057415231918486316790448940014241823075566552979447146624257915756950593734076216235686251069164771685021590609093427486653660611613226392892084712111068155565708331918362496300618431021504962036349160883791092129846809187841816421503621041192904393502539174563496258144947963334041446552434317730159797519095575285467813835489651685116325814880436033802740634606429542360225307584777761258376655816946510025911471055132530123741606963186634210873930956215538912786815789248757158695857156161980431794079351921121639114189553531182121881446217214723521677374785648081573298540950489164764978524079654997819659376938617304386008285533951837205096199543463765966349480575068685385511471773897350482838909786455859132786667520494050668408647258222072504912317744647335545107415888222300573495917689638233817105574849815375844475485632959693842907604877274337337923567888144022405892890018963064180166898199537321234185909032507842888353087992633972260431808748495653264962706217683806966541968069011071439279068574642085961557867875130869386328495741450663610105247897943859261982414641395084532481991258118235645785414975368069715713387790697207396219080300015767034766713832693718708566981616878943758617000919914821905108433242288010567008992561077376262212190728237403646133356632323785188089392649856240807349351908523927578807224253702694027756265531422785505253320924567062568983805343078035562949716201937837697851656909184561701033716897068673454511571724558698916189013639404208927392892027639551754876466735076994537528454919713922553314347593753952250648710903519145206263143452917122325109590523990865824657644495082841655711573898532638874936625734651281857543985591000542505659862001536948826181036589878955254073957640366471465687693977114129259029319671876045457851904471632309583151788375369434274704573462605138851810047295069240436349786027699148745223002484175165017954211460786023064024689061655931654926459168292833860065792110452471079016423705030994860180814388336420612300476077689282557879160138314587452275913029298067169237666494742842691255101711032619254736020623109865038347081594518278281250382484974744413153619398043864167257251376985467254868711544519785623046858669425195347536090293691242611422799592954220765240732495543470635688881018752050916380071097404917564640695132224314854885043319184440418023054835664748331254916225901532087591637612012547070620259683481906954100585139041042453449429796460270057442795307057411997831650158505070524241847896240672464331869816877653195517766132359598611685289942929486707767151694121670293334735397221498473209543622617932831159730578359764753019901466672643199376536922891984405651071883583100717405942932684363951486503635684700569810652853659255945489397975891904834843797293220669090255164158026272791922891721782660316391611939415059662874330531992111986557064973805615986165814522190075481587510037790700712377839450890890207551526275322136653933649513422482157732132652306291163718947103374548266672305160379974059741399210764716348625968328847555228330132929311503735032423487812048674176019950456433084282191132618659190071657906902416048761381552901093272266181080217765504859167732538995550503177796668638881020906305512396522740196479484055691022005709894757695690550391545805955970406828701622622500039168468915685638612424227918872176976131512831130940098933727261122788910676973508026450620804521677592177040975014408326646221177536535127622807953299005706118775036925136158148497601316448647281320717909763733475374277258989263086435339275894830984975511900045242381027437108097511652290177609411589997481784939369883579673152946436316287056070952643249807585565054027808933414672401678931687078886975978939146738756201313780153650535898967967935455255198094166193965558376780479026147511575978174231191791027076850088862251268916955469533884619218176487857501746486848647476788954107412581050023501309500563732113314993400895493336169624487050831092894460153699623783041769114391961211272644657822902215929838714042517872289289751500971076875624883657334706711918094460052502134560249434637167422188971992801143709300365481349015533268685269309255299006884213357558157248483154161077525037538886250717783732801358775490853586839662853387704900501574472436409024255515820985571870089590241759631395538563457384725267620814664267373823956354488136703425567467354527738107579381046905190285044015329999347578531670782719467604860754110209093410945438424469485800431062138403711304498945247275666807428624179375515403659337954812849365813436742787257634668591984715914790745093725827961437910939275723428302746439731178738746942369528400774792255042546653609263567361711698868150292762125991651531785924537940301716322816437509846931164472354508054084379877728284865198626667087293044585236969467524171127434635805447914632849458155497847185869390467588909524081706247054898206509270869296265665677220315082855191648285587381659387529474203847638445346177195298506219876788350770254949795510067584565866635333949307704466724445858472504544881045231586866133914115496453440715544423723159965552757212869667111260847989232514581119860163433203442892866637379947863787145259091344726734428209105788800073877871876756653284503224341646611684268849160761584488677005555694883818092480286145035605559263583768790199485987091893965397199535364996648904389401270565925021693528946485940909558648086353459070835116972978770379507875162484502549172576324723379696872610367050921930508687751588267741159316661394380261386178203903332091499531563837446192982788978906951757242805249432549426261892561554793075836399937969728955058279572630786661883346603874255936914190634629558511121366084017444481313306013854715773903034371218103362243959379470387951876059796178849293713241867114635520233414438805490100974919147495974395252140408108639522536782056207533402020910774318547233848334184620571870562646090825268784736225274662135626954100712580225544079729466837151860230649185641838491054647937291629751307183623343151942144413534729827944103172375637882757634433237535455476845541928587105158842603208106259078948537405821891501660146693377683792363806824969901613071421461355458034976895202878948728574124140987323725651009699933460500793820146174734764770739316029057865260141322193530944893319189522539413338932557418663903046739978760309557552466967064610967288177843854397148113812809006437566989101770080713747861807585021066269270172219132651750455697129032039305815031697934314818041256269671662946952732874284626038273572388301231103166013791207630051624295668824327584468806967046513438020612531790742599930203046534961422881124964765387334929227392280228542352008912924245426213239084189635008492224510541759382285277093022888417238871006108670358624315810221109821586603096707372027340676417407830797086844212415115933671769630915885609667050496718267073821198469177959367021701667647329289914402935096137347410679924256306611040580560007398867023595127383195617687766456559473786256566306191905035999514407695633121329863618540669492277706367349596713648590759621477042022737206697288989739683891699311317304133134901053756711979831638876635026161014751992388262407702239049575593146378785811831451546342300615495439906020751658064498293676570368691983456073070874892456817249420566971860895340172997092292253189805021589990714431776854796228784337589315771434698389757832167560869851817397343439333578885823724172070748518800735004452588556610492542528911560927551622423065819543792756233294901370236279018407173938233284973449924469980089320956818247246039514007258779430112400877147252813545561514469881903997672024317771544649530759239464513702032809902390167934791491860016878453186487458690207251417150361165380079831436679932884160453052324416865278381669494828311381254864319756534428039075091286895401213988113717469148725560231924302632943121774930250411842960296522624841524640349437309146507623237249998145260580109947440836237500636230643698697305285377860227261163171770349629437126313611587493195601170271159583104698172239268717797266127241525733916570286910753290766436568343103590689138594026264986569249721204508100652526223548402018442432942117524728046431302969772588135936348955670565196056835305056251932073797660887834879575165083546886350631188416055489897816243781571042937637920539780901876639844372525581291170035772203109992667069216924509554364118613188211509004599264517223076653790320608213125689832948401506091335461472094367866119222625590255652154430204991973214415026789490942708711166304085164973557877138682516702848703544007406472578187402443102758354111358448309319136753316873609812413189749825367724461136579338216287741611289872517106665042433523778788342295530535933244342079393534327522724892737477992519658858515383470167505536731642685558954808573173863162788080751124914819454346782545595623457043693956204900472258737318826378140415940155495305466453685128649424014870194211611490188784647514287974673783445689687476484786533775157717234359011407215803356755175537594023583591532307068427445515201799443150782127110995659813819261851813859165458316229402185184353738683205752705758271085183001978661448602039087288681034586087508575772869507327583928809393656760860363338428071543924666935437482537925410787718147677139805988236364080011581221863741083947253003453229358173030512427341832085868336919653141585786211855670187730483118670815286135424403788409556226782377506704584494084438452886578910772192159654616898378478208073209377059903091540180860875788507953922106900971982688511418150009159615127394114198608685355032240483924067477469935119259300673308890636945828590948472866082706502977272757910473072506417007527187267872470633193707371427325021527619031811021866435260857259178539452493342283948014989061703711283470634586845853787897064940407987030605584447546947687730478253201910046593836657982598316774074687516160352381069295625879053256294169956383578709210773497399678550725442907530372582492817870408201197003607683938212963959066293074471710886255534866262251055492212232023511414974759467364417234065059040290227915479502613617857830384077765553431006427153729219679705858799896019164789891542145102456939873826140965883550136474985455548194091290754694902122148579837118891672302674421739485540315817386608105005242318010627085116189460576910413337054460977282590960123000260672609820184155070829389924547725154397078075100036141300251665229202297608736161894658312343026746656594494023527979130417090775484269912654437239592063713007665443213834551220561661673449956025069147867935755293071199821647853857493263912733193597584001392658726163638109214903559518943834956077031731284136328415571995013836308838929698847950486054605680120267662977496666519600220890610487844969936335830565291566983762349836894031662176734156622514297510621927975520763718036607784713646534435063065667267642241022903131159618268185392540622174374403600028012480915246061170177140016779562937682154694230709907011552464370777483273068715428091529078527128536427848305441671415033145462629224773805301475384306298722185990417484817662134272017056046732210481431426981700232236821180177602488813051711015238650134057972205682499437898949019537699556788787709580632684356877136761701408124797219468320439153403579790590999116813843520553930415650301294171357586729384630175166677534572959705468540790660030992331309377634152227503965167632733125551994387757363956224469121186906833640174081746898012676638302661569994877326158550425371348131351114803825655239360972797622126393385611817932576401417887179357764173854323515082035371263476807519733245704081294177068756274758715411129000305172917503277065817397730803542888370581669528202372474501066179257885420304198225195124092815056468088119590014011319925991209005320382886360465711246675080176500358268443412677518140060885971934698331846926900007888913259401615093283811183273829896778583976391449802960531710774165055006035894501746511878264149317876070658926799305854735450658605624721784729638673658747927539034288933919350771022985630298057566051378206707851977034563834219033076277820305727059729677906395427545010896294196300481004952313994593991504906753027673333883847783579852392071262780455949644047948897416171330012079007189308137526092590730995415257050524210352292323546371724173495763853720219263819601502059999277558178605365322874262293959196588817577394739917557314204956242453067718503192172459915201005830649007738685691305707354057743122757257758530251657727060067536548817961757459033803750641258417369904047016427975353230924978312862654710781581959209899767167766605939468680682414900762432725027234045524557474764501030168565236639972514022883682599806063704618041578966653658471611855284726831524765030524134061796332485698986679867219217933657520164785334275203671648916928902937535311115073279524838932231324330411511758475471450573334989868071645607595740521454599393937569035595759889893841909262325018757534155448209084303058164798891342013031238404679292997331160631080034288531753082395781515584848857220275855411635765547269867886465774012173273523195519779535869748193790092312006010805881265991015490679406155508952836334674534812830334151573078267893293273289666820601543375821192766991233239105522797049097124446366798334245702281960537536105981198877869165114141664588048444467550794227298190578156282397076197773409660797100555768788141403319841140723864768438101913238870689676602079229400433153591645404519832286151440231715564582412324873882605351956189092861787414102700956196418209215228455642741845351419054020653730989643835291370175609041304362710670235901864236269619087433653578321032041063504435441536765295570219528503082198227005646871903326592056565232553878051061665380776056709230795990115352660453472945760857289779825986369526848634359981704621687714089578064208032766904217031605712281162959634417555727020291082256891351527615149549965310935641154718109426650558351562756488458968187151074022815049714846061344258985852390046458974867946327990312106993442349918535059657114678143932877110171399880797108366729640146591996116676240192039625201694516399866899739055557684880404868870950648689758169799759077227439169305421142559620912562111690037155834728206373192981813795753309917636933981122280815683300564228767984014121845452740360621396260635149035670067849493788806218489445470148734945995359531623216490260758711856536637256382047242066613236042913611388511291104114968897859405321603124674250802976726424633498036517341108052021248376435170419644022494862937040373256410510366301908010838820119985150968253258687771279474743139108368147041154466651264830745843690981527966303871134074818757552011824947928732074852467498404342574659508906251370225798018811569971327043439012666665345430738236376671884735163860942702784020637042277127126204374632940210408852134978890391781331098098825732797296204812607395366528466670125400138771719164649492737869079547657130691315233885475439503500924601360649640007163513871207685527325601533523468452826782354789071017049222315327477450963639621021102565736990800230741196911103543569363564787426810838133716103834398862946956446279359329546182644536459456269985681591503391138731319145277961251257149066287999524066884665192992153802776045225002925646116747234214587724769881738235929408700292371251139559028714791290580036731759105857596327252431281677300508029502105977893964930692233280669495482283265471316492397068828284058933918021887243411353257745764516973046705315888135505055607645861546576923093315850857257752878521016720464656851477395122638385046029618634171745942097880910132182418090175814038537009793526779086211157503191956026446840048146125927893744234021620969291865777175967320387850931049919430630586574915953370978139199120539669509048120650095653120623674779374669200564875980588264124143560671455961431826399401544564292700424283478513446248745733066059923353143323383948854426142258814991206124271298127885150824884112319204329248457886914455406022909001257866463768145181626579356109436953124489131638551388536610465883342037611639620256072134831794013425061255693688272575995805694859015148330688651813744506714536963302934623144196699615658722753701662016827776180106289180110312879224813079830671422850813108932662581546633419265530189244328436761714982149564987359613411866769811445651611000114254849296602583226198633456978054307802798438624898843814381181296073058626779988062877513256644611475262031640449022664632629802915288066290614439021288813093627736877267641789426598301975785732595472087673373360027903816241742359274958357191782100217002798754623992967083724092283670767576007131691357249937890769254782406739799065303132995218299730960800012226775770455153883218801731850269391836079958466383325905285070534016306095164790830577601643341397582147919786817460763420903114415212658743440675847498258618944477502244625150045392060599970122222491093123183387508998355176225818594128982136816884384237445031956292279223545559456932831451444256931567391448491022280263804501783643223002061206234362616165203565662252026973394473056673329061009179864282146748076211766829885499882254445781057055339040567169309513082612457180786326271012775526903111511801985684016944078507926446891498729368881070619208112776432722843904867027744216962851896846844838887495054943102008897113202217149725742825581427496833286257707011308371279133080521048173393006957901749861591530699715378388658899600619170519110027622338415556786512734564960220687388458376631827519371719730418750867545813341282963531663172792240056165169612258283633984645584913240988752319235189237734539123237399991122385469815918223090496070986190331888402217136876974990210283712558303169184998052958682410100563735102966112397749625342687431784735954432899686126282323831057323394833384868077217299899767539569255283616287471292913392659691853037202709825855439621206366716118475260770858240241854787572519778835625170882623712863565649862443232360989598830135014188455991276755918000127632463523559930846527549492669276422293335156361044684721223759758612519105634975983738438602626617429538038873880465138620245691185482446774206017004405898858158090629828867825402016106235671100442363910829788156821793280510389052905457621939582155449643970586889314756949077997062323944715877795159801583985010800826541518666103758934505386648658685701813845908631396989378704338443629950416747793191445799357637211376860116041498890044210229425753488454937442256251604909167804728547611918246720475161138590834427995632168143166386529375503348499455740270882014777437540690935378574728372065809380995626763173725143520371423262823427526103123606309843981975447342832855314154125642892989719296916805343496221198800914970196300425530927008858586557213401780996860183202296901925907882598125132179380284220974007107211782897939831052879302567346226546765254698678869358367107995640956519193700525570549883057479927356512869914674527562757168287221510152673202959497005823081331507359650336908750781660578939886413407460786102814322434387263204580095482201980854942220767466199663511868539398915478392093997761596706188167588522820248394834616276657307780756746094208264270906765703903042046395001179085488971143851158885801931050342369358460240954695002771350312379681867134653265773289395232089245731885273202535986677035807525054283736023436457505930520738356628498730634555462748726566158559732078549785275239386094422202063381749283493907483505779012897476942636625749712483219877846750088043975076587753074248167947999577378530928957617733921295352944358660511802551843286419453931825728404971435918280428752362647322723246201585139273456726137010405430703188377381322034162077799760901039401930319006288636038116544721193446400423135431527342223381647671050952321202488147812311417088623428972429259363576286049727814376921731406816266791124455900302182588214700121411221957142326643252099162126112962963476518791247973018374577758251500103272776216353016343137142411337139100640092375337003851736196377022777765014990522318013031681564855951507729289795411868535092211381711422743194414009856437615138662851393042089680003122853174558297158191130722099301784181957290162678368685672125229766056425645832052570422143294747796367520681676471062920451439853598142958266117094490473142702969073532640949042193398996381113508795084458296398107665029656466418877222487251571940920237219938386416201340451401850270548054226962994838124484201665524005599786155207700905301947602939312492230868282583648108621156720658602282024320674279499576242792687035990222252423513091360705198926011237899236898870659518291859321866863547054855022343467220831184061294809206257081779174592224960170935310345922540200339971817809427874294897242075699040688864419254266429808354168844346273029985304872114459482285608168631503426024512247631506651954278184563872300316199466705904050768499584338712828979725318452936345949663696263128857449320456296206820038127989155468507428520655046952859731164117663359621579433718532879152814463900451183201421133102540617549615279609755278869169245056993153005751688896624965499996756008799907433716033983385776243384839394854978203957234756329310806692100855166117151068736264403339852346508127336538084724736462141185191554726660135958782353657393584170667026072653800786457334271380653968032846201737086200381998872981003862626976038401542028241877500677915340701352259459616753731164234743548442727644340082976529725556008038953324096316229521573023128493321161973588117614016319517894227358468097104729058922374482429680203348133274408318276933608678513961773811002815017637785162578988058513930032353253825971985272787129862507840542846680902774974183936872986971262296794754866349833309775536512254699026620968358366074827269391973293246558590347907710913862890425390254379147075323869849273720090098830159212038494547521120873013935207298425882292920625255302361124376601586378446395372868880971705743421967288078713580495151300237065364509367042624305531173388477243113938201099522193106581713676603800455439863598696837626323837289773461892167925602208518177658089600621550695218497098669916688956678544517642127251709334988481647712255873678267320342969683898941046378638132414699554582856694740352497114474114867317670986799916894530816845244982196368099296898060651417688715961688993910801056170518095848208013418689508174800730962441857815518717833346328679421019300124913991751494764770921063571813503226350699954320731520419130487796361822861394619773884092864225927751998253707825823476641744595601701782872311832470768189454538540110723604747041593534546646081178903698758352510071321701879193283684780565518390005748443627498078062248410989998210027847157901123195921623561597213989962835104749502995566683012358603484512323160777518105488416187417443148721995392599563732488254863547306548870929440850968299998980702332513618744411511475266785092962412159255419113444184799317592488865105109514996755871014304588749518789768343748365864753644904919417002845915999439914573634482182806239722988747045698842279874631615354027623305322991373459658170690538309785418520790283580383430922737069595283093269192636869660929253371154601066703649101230141539359978906247410609444718112754211650727262856979460650039035908710543705487913695597659399609207802199339424390443906601913132304294707146535641429678747214321781939775682592318325838071589399023536547761544127186773584293812795632988473831620102109982067807521195027454688085207501110262290808811472581879704648427473240938705447456918678281137453101984613474865633157664697095582939829819410281683567235925984514236669582332409321346624402068209596215181591815946709657085502519094185135755464572152179477291866757400942894804222014301197799121758162345590273320812960291701285903013156384362129172816858569638728526474016634493802107831252250297842229109472529265080473215044239634133754173081825851716366394873622140499897002788437598525489274933642727859404316654759356189942606654436665932536305086988649169515450015210306433656110504793263745675799409740483567649621138763463900071186738169743273760205395839424725216699511054402048834833533411226153203674958431019582490126023231253327920802113084346089768843753695571599091434839646822388555209412567028752627350544517250397031591857011702409057834250719181722678459996889601268039088613472889028210314818819551513828187994099944051750863435728849736177157386516118716964983127283698031320934280096814753334297275716468537489513553516206991190578646821957638874466829301234909095679867621779800024656531379778338920015372527784881752069746612817165556708425405109241211144467063083323871591668596394359167521475225990043274617408016404288097072508688980339063619124950468115979763025020606451435192770768768252656866375784373625207492682866810710100054217995770233813354285514522745653652498172392421158941663783444708447417725162364053021649450811434854775644250352557616764021529078431994900929280620911009714604007945948471877331434963801212186956555435174455947697203002660477732416433041783364260559955883374929023516262809804874486488853126609726355012835548888411472795219147433649310493014522103511776021675180529377791251866990357971054107693727699177080681062439636784283083187426296962518463682139271878840308458580174203160342535988492631685908762723854521643596261870456999967259866964408957729415069785511895669204380226439580161298289412468034067657038904867587411580736765036161292373188773433771727161630254335655279939140754744351546261605717390034176276206762551622427575852135169575306202856967400505892273759729142793519842831348861618097606008402010148317393672548194637889023015549967499522075334312076319226060839720319058861737534677070490309685904068900470718735009357250269259601062939363559471347234523570420988623183647677998804706137543532338870650846170192583580329020773959551449723829604747171421368434431113225822475616606038257361933711035564914282006252529575052244810837523522806645914656966392603247707419236715973711668604807650955577615054136895830392519358046206203580754149125552376579735324259072235655428389611846693730769323667021099822176913977350654542718327355534857200423927403840604094434404688998486090560330820854556194900448971601514623151896476030873160062524740792635570044920720768135008966796619802294240234943152903917689338183624347352563916563711489400609856416638275773937091618962093099980146447297350011297212352845929606525243826969136781042113991013037579684354157845309666130202781398747488350409501842916082224724125706473777152639036343275438814246348894476447815311070841069736762284064761054132583032816344952422226874178952580481538426760190958786372626943336520230053972096998676713209032520566462521009346272729562386798694087535795422074996057293596132817788897210663800420454671494048876211666219435838297750442057041217001345134815838685129761908099660699206104432932206200209831722594026699980864922111752315351592992884811201102644343687011371206177062920612308826367010305237195211220327316883614926548536673706631891121418764747652808696814115927518053412494468376658086156433806976935109413063564791095795464332485231840645274415352556519381461468119642061213432085259553034561392675797822443977191428426547561882213397176812922806594059385213011093748672103766535564698039809433938323781968511472362832819376928970568230340821978307466850978019195768447930058680044240500556798911591093649879193055805404267495672867263218791925908096212914574573761385273366260320615628017277249505553896409805033899456380427338293342234039583225326869900847657478109796548241179351035686239134129576708995161806344141014579256792501404043671947048610675786713553490350774544587873354689572896042852649812943650425573601417774723471177484919473917300096632606093228117355243954361089784097630485686154420513218356433146372039680175780382183834668105088784401033047287469436149035692484157760118941154075452549437774028236567878588250467748556001108393009773201398596629168896171007377637059520789546975339433044480608598306706092130996496696061416131820181162240370273880093127351350903976486646458975854915204292700710965748320583877980327168548186901241550276313609019252928137566648860320703739601126054140009993802121094855910486492195835940604342508836200958570478881209273871823561988208230290879573312884255364612654418347723040684701800224021275545788105353286634470239510348549081040992136921441141192980085306408343780906369764998543712575462184045883762569880099982997900080473970354167811951111322989743944395714511954918884031554599975410425634322713478716156443381966840401775147890276623742124342708794883527072835336994346064858002418217456897849031093979607254208316716129571328900261604571230807469674782320313289592099020587416657331226942361852831462562687746890970186989506110257428900409155856857115227961755844429207388083791453084959242656652922961788854316956864995142899437012924155783549316514523067938718169086965304003828558454444835281549259488699029852548531350927297278370005895591050314774386062145449628423123853298398086049506034824765061430114260347176358845199419928373678609493728051770357986010801182458339957064577751860653998374124700374607769656341501852491045136395809174139893360522998711203451797741230072612353271786568353055794969309517964243998863159360022235048487427177249332692621215131661091276139762501317425750293553262475840598276301051079093885268549002394818927711737538257523636071932670945627963944544309956471781170382234365324469720874774750716687281661081228923732984296474089097309989091692258897891403417873908690277372286424998473267042667212924384376791170578694092944428185887019718399694282432718103870638109240446680545955535724249313272875185287374817894174182822127739359788402705522568280335479995140675548661383981367626772795152060207113787728906091570041857015852710378784977338577875649609566981375602546842465467838710060866612618309487669840560574883863714727005997472709019375982709201775695477240118316088658819574805657358197272038591748299325258769249965929027759605006369764525945541090000149877998979579504942457805156020990598743436392182795486895489672391338547252905775036176217702359728678847686432377689954133088268147561313002032416832445665727588309309757624491915636916963909859855948064331218956940745922931777114539857044445917166235470700796604627808742086791928463347869552594113036060170478786641434709555391096431541518071668914558718220496262619243861357548448278414799282654980894872433829382335135606983588941779294977774664338914088675693151496152563637926628214338707059576867808567604030624803411034856452745163251790579495806806013065118190118323012831755788539284054637769876355347692348223265082465851412064134656694919322027361459557205592241343086577745309160229422107746208825292013032838373348274777147208625985901517547980241612106121209412100561677555732891506396722461308411916333085481483455559376198689212331528389896871849993770728935265460881545517848150006615985708655690541867955763040411887564460912132780170310194056329188636663376513162485611612619307088371524648406234523709627206036116073749368148503055581091873309785565111708796981329863846772731184268275628736073639056639382726932236176326025550548514479710161079064181722296690172819108172672406687061018978346957238089320711142694538420856678163102769283857125122765591256131071579764747883804376404942976041197880696060485960055734114756437717584591795704762471728951477331516489775287236984300432761474151056961693017792535864089666224830701630175329750809540214641151605225165541840213021094433243957057154460750211460679973178941306371688938250972819503091763295099391860542316462850063902330337005992066262319104790640689912521823371657186179716213167518321415758309969494146634463004423663466695895939275356854684927865596485665008895711658155240843745478194763487675480955931781576214850002867070557253223107646861068011597990677953663222158463367558071692227841136660102154876578953469812917424148306218939928699819799301083212495733033151882397616285859680099954329608782102701186700057756602009921139671407322130021184520063832052449128406553182101331862938359659418634036359945315352858112985319232901371639825118514556467601049248412702136716610178107564724767543950707238143776027040886691395129461477885309483005734756540416569880254218270290358623189996055580380147459498224745485015749526768292433301179454007692535358616047087475349026405806494032055574695599153536606076220199973203737297696597751653705062298974891419511097533588240899501525274666592482330097295638919525689388572915088835639061405325937856986893767116491576722334399101139659180159553352496836211312986145808509196785539662413661449490390051469490581960346645319223446271939125219433406515457461255639297542790122273353959134587856820402925317288803139106733203616609634177148924938204468939249698785622058015549082557006716466596108599669323648521517035925525581046199986364377764794399751399895855082685813471241068563801655393600404282352340124512703873525172133333210623457908053232447476036933416140397162591666575356993853052222712321070598527722653178899263160549422808084366173339556492928125900510618302348419961049587150573258158752010047562076825405375715548112189569442245985925830898344412003181776678309447560372633816039134509258824280767802622919139345028201934604585782185073736177891154253709570709718806032989789831439027955932221848464082167639010365085528685298461887395719473483016645256910036115030008282820870255853554326691624808496585950316766741071280602771145583614319607468014790815661568082470874391694661691688464149855421731748811364783625092064445809240783988561048177868511896723923304799992120797348674590474218110969729498709039775816659144791388412611280838187272608276387091301180714230815818223955471728060035404796602832796810297831418503892431988165923105099479425807218844679723393999479487110562603650384243292571917136355687450985817650525140076533357545529240187860090424483261033874976509928884182218870582657239036865999388531134614995865194835898858337334615858265158862983255723441245945104459239355834345749555874522702947807186710843239547702914441200189225886169174106124899655626459158770893546278212616610478969439939096455089080864018762517786873571580709570112222630232434189126830739339871447960017965931624859299477383303850967979339409616172382743396971499361027701976653329829765117418630146384793867616907218870922613281464909406797806957677170898042582065907915426503124396560134080261145245123765158860242141057523960885125445379269366789004761692003665107439497152136902415802591287329956398775298113685962808917654129299697834312953780792802929163902674535125439811667594435346202246812098750196896531435386645887955079511245514280541924202015837581684296832769343940804575074945136620732363133208758086008295825063126018496201987203375479402064289505978280766350042496844234679619463285971995454785883835317035385625808306419525089470771224225159090132674298764052338037886640259457948507028301146045262207340443049849335792144747398882048243687923946066114204862775940031993423902288753135415865317504226063784198622450511830073251283577181459398884508751049219100475285557671433621026042156720913928488742787498313128985247760795937669281747113026923085731632425020818601138493882725517900586579881039058273174837752128695537877479101450269099765906538543445553962664415331062424838975315219693888919966194691582447792291063390383624064121074852213611827840966387281119479050397817225292579010603891242664361738409816512038656299709616024851214200598551139848828618022852492417985581578281913814789814267743806631914381606333192433097477979048996508118363870116949369091246312123215888672913018611900407973712117865875395762273320094896277796710944943462655286377926933238062951724983126435563380887698760065585678893966255140988345107159130570035166312141078187026312995533371807958046575957419837433797491091375079337030539227261961411611812294908858238680655183998025622890615698707021374771825909517553620160228016109273737315135162867434472819287222670878794652416761119491784715608918253390526191552233716300452866080551941954181308399873803794664658022303097867629814600543319129849085965135981623628739412960092767779328101143402752101012047383914176380365841432930483201164213149456310338067620606487399438894851530501945116740223597283304523024336676795783445200796370112394249333962855175901684960838573362838595661749477862567347523086949662007114914299952202880528521813838116570144422744328798944619716081875647031776802724715621236319618196038942139697653795542845999963330700867717466219459640175366974801298122917044190371692308713353640590690237905103236050696442382635085872873758220943567142555150434599236648818724735088747355970006327030664894212656790799524959797969979535732260347904444614429293180048659584716566638577738447607981149602817854242357703772976309836649262453072361698886448297242730880358543436206466446159448334581269017286425714181276218286248381441056048087223657542634170479135415948799619217594193136682227461464769647005340093242210463322653798822794779234921345361359290899845802977244537694062070037146668997365265162925515667849528091032013285739757400978586725087674463743965227063949337372611857627756115904249782349037762668724755171576644148329305281105007543037614197547969738071165273177851958148474443161808069355025360910505542416251028659589592008300575904374104470168765073828428305598761461938603796871900573694769252971619298036387791670793124000193971929395274005867133747867438266990465407181819582854940650868154288661379279149610145925271605841841980455656474989272839671794830822162071461573746510775625024091622865233673095811591816096585235436723287884318705259367423412575880619072986884963056335635944136804608778889919701118718290369484850298157346540792587123289161202550657254277726353981123206210385109644648904987980172424832356300120599250316686507992604029927448065745020018949831259164449644774258676578885300949789365796493115061381446248071083888962848829689913491804006801350133333654627102801325822857908410225256396177598571062965454504611280075959219259395933618965067912894424130591413776598317371532112471036759347802254950521255374833146518538093203099220562694527090771841195865988706141137757799491758700278902508260689648877991230837633949723447591889633792320845755954079725500192768907522799856863181704347503581848675257404436213139106650924337969833608462764071683259240529913967505924477886137491068273361123232728872868979786039325080466340789272204421061883687539412417387908481620897144491654248715670644127454158340568527358060229624878856224971529733145603819399055394913098484473281316625132038346653947570505034669055614095714163466606417544028775463628825917007973948118716149055558671145664189901886572217350196202205100485877384296788298355008867403698381638118101336869327343542206307024962085000151145342787977541818820567799787694191943513476222177128251663399916423287106453377255798372886841356532236044196094860840483526861242337821805708451558489018224303607308617932332554992451882132217369542003973562625562991706493731581802328270938422644319992301908890092041370368667222643428953816787701906578124993745851770779996311042908042516852832624439675085873811144493428095362369598099654483655809015010668788187171100403190293189243649479346168733972303738476415353507048005755922331831559702479303961588045898423943609637150913652390272988856085216651045674906295273217366728726161865540834981526332098646368317931744422171471578717545659201494276097019559115328339484236073645328885706695115979044685294754338252406048979936263023553878966375887401225503068961086228980620876769452161605100789660642366154303148475753318101037733295948534468189053568716041335470450210730106863771660223975768643223602114156516779565090208552535663763523831053380261605459326718321957421954011655975413259506096082019996121813101829195239741189225431938826995714730413564272783383384941128291467320873792598803461065424155940073815178251714704151190300558614139063339993483742288519692231952958277007606768990693274531005891580133824560078867973791369134897367257340969243097988395328246063925893440573112749058939343319646644039878637682058580214526899587777695476121836630273965177351788089333885250735771666006123338444270013746180541302687700187280137841314279181490058687641065674698006214448997304748652681663243861783984770097804128990462951135240265351798043950756680746817809887063571987243733905572867276093665371800816086238242487901880026826890354868497090123014055009716275519312254441969148199617599077912802173386136496473197785444409853527058420428694431562559811779676341230406294024719239970367372330134957582163470441121258256857168858016097058526219065435092428169473725922941057320258473529900361196650048451092847576636727273321981243682289459374694847832333258713645426227328413808413406810813398775891456797312561402449973979823916480858096718090242520660656995428023757760462047284627496307870611882939166563365616793192559413317529876003655545312347658109339526655128671529022306649430644989115806236206735893816413976549155525057302602259339838546589796249261188788505680821135493383097815815768289847079518713555088607014450791488167698169913845663539607309821268673796691122272510666684760645816294251260324197071471408535602785127777450801031267965372374516015992542193863031698487528429212850956595227814007942432787089031138969714813141919552819715362357894249646289218006902177460329231020080074371743635832178398816011368418994684388096191170520764555819392440040576737315574924618982792991687974806978235796550437844352905402758230525604925911174461439186020450577654615554302254304578056619857257598887544167898006969608680803221471494830010470733358407947489303489301986750746142431766150743501820039732666373247734564594154587327585291267633510967747897788908224839044711080306455443201522897868610178962216518768929418476786423004584899695516725502673077826841175466129715966311150926788601033745110053294679345962511455493851784806010219096598949584470258095295219295663019019078370065499247049126510918043489721675332720086475716686778746761984912632932452854037478963425999263914296965454560776507248734153496327613809637244949331780693620734363046463858132849286765032072118689004233326249661617858050002195176533067002318480982692174380518040497514674672835484461207041150002439226612287090342185559995723386626688117207230589681474000376866956183095700052255019914773021396038290088844704259926344080242671598422381808899600172420814700155853440753226546627607294178375420384508746294812674101684692747187452412618943355074334352872004144396489293057383709109151213546465642412466212058587416108211928907964486437502907195633433551133766454017707539155598454008799842019273116914275663220437847559200898799539758896140187448877630453094815739986826954051053734786197230533258440502527739092698227922887008058112972468773265571868124501497436096126461147420594335369689242077537626638134073379911556818090698592945787699521993331438094554439599828698998456425761025436895057091443375889243195887655780575828010018361287963248095583869992947792100988772804370729574356221542355976759798135963144647022058627158145482824149874693053830532090844544261486318475117095297597782241146677238344111210997066713026329909586855191362276234295559765520455391673100976127963785775756011689363974172000722070879553675638767203770784265079210366909065913676680185233336035006940298279741459154072940356720394647331073796457166350175219032680318459851972694082901653252363211810060109168929974025660601335598612501167461547073448819386714784304402116595325078346711279475019242626800692035824003785694175600189210840256566869805912459064571621145514857047807961954617128077590795034697453020612113976244033664269597912582304706896185297148207480981107208512774979713372949093102202244625202699121551478954124197804210709371353363637696712013242835050085092704356276420424345615463608248183710250471254168035496823751798110799980030402872906925738105997506067357140904403723254744851849037669790751522080039605924119493599271540541929989227240359949289909768978033276858454642880357616022466576222652026939108749054856282031810616728315528591376808059529411368162305368161047497196308853502359221069805589822277936253009994492647492575730454243875750761554682589298495386864945231315217703405263989276097059758853373023935126877456580680130665667514072743258400268798436218603010092892524219432435075225950439269394729858371764252998194634464696134023526427521412394084488837507366201835117030252465972207794253804288833220380091179956676364143812031736778449168185690920524494447477195808728384180433282137362703379633497209708915886970034411522545734606098625876226200389733696915906329477979591848755462770071802467297686822796347349565288272197935103462227114782457690497766983776445446076034826503667061409813148538009921754835253654130878717999375575226675755125014751584420630145817534387052574552483939224170721963560291388168807849851746640972125823250111784624895743161454568409526402949442614427457507998687335740175455323053275415979708896369695038832154010982463884788622182069249358333890705331280380593823087603154822061885213452563238465800088203004833219467594379222418938687397123756509052001401764208440159473752497839424990710189181311634605779826023002018564445586245197682089613771624010045764939515563379734105630872840343116541024789928305595289528082915776652290980988397805225537621353489172747886441606479802728420585241311071622592808537159786719075869190161344257562161047201131915437049121484696381997025754242423831960314705642119804631656730958702012956342603166566264724040617395180844851364817870605690968891472106315161783088831791240440723489986885968339819601709276905304439803436833436020478807605906975572307418290541657913120881961589250258305665503693732103732387507997104492555736260430330369238775373822010757690280378943538877602203378693515625070683410933690355948968108464052116762073920986149100616991175695139863482359060252147339848188311910902426949759550061104376315290869816548192812703055609652313050426634483962320565215467563785147547527691191730613651642576339317827166363538184516387414378251638267590954399343627861909828938353526842037407752965568944796025052374319008443940247030045159552247923438521172568199544771216276593765314990808614729772701315319991296687460248042472556799914422902068799536046749812759460309553688206522742093168172287066031013300768175239049400831179518225335407159923389070295843528353641105558453234893494131173876166974101285880409580813946232502228406100160335658496918653694837084904556344868395022777771414764753806514280394743743096856919218517647977760817399985570502513740411997027463155003968997678289957297653901366224964684420468238664818743883917011525104538932113765424588411074432510667130644431917672401725863717435803368258115246242056112731386161007091922508156624348338469193617691598020721702742201950755653525830736726106053018439873928484350130756226704441775251172320442632911292456052127350514216028088886088436981592676311336640590680929342554556279708836572671707772006258962327488189352137842984076382380405798213839967813630965121947790418000870372338719837572526177973202870698719772550998993402823340732493233526678317425405106166498711526825965542106788410938894946861476773371387766119072950006929028763824932909911899472536379205808877550341283500352835050607390626650545947398478226174713608168750092209127260014328743273909711157401988573032538427210976448887022347822623704731814754033574487012562587299856618477718440487741215184758491309632790623974060541585504148088250606781148721646929049061831992691947418561540392912720230073704674481985174579474595490379970877755391766168537649808717986192205228506780598274920720586680463585319841300206899692304967494597655854611560777952052475533387306534143263521474450708155361605137414591599782276020941705915697070721496785397464110967292454625181189451479002952180855148184738553273697311389378475509464641240590831758238956550078846887057310883833128571092905499870973576909798769291352144852941676317138437746708392816960383883315096721105203437254501373373170779329994589967008381030711568812376687184251677073390290103461602505208448286785208522271206670851283651765192489537189140284673614404941093536984567138741574669145141212903666530312838258353535213722914975020250232330075247633245143582897005367249931741904417976120552891468441508410855564217133385734954910311377034771120857422567880099425243533115543183855592285068206125999969249767933073783913139215853033801083534162568813435739573310508083795022982694158010686799054923724783894045555352444566993644211467471569621311832410370035040013115266375504092950085002084116787837039042986048837907270878912339192821434145446373551631991907229379829251644872331673137259797335108729644415697129071023495192475898581529412481918304235262127687147715618527199601447540446894093410512510838641725395410208116620105791265892665956741622219382412012223092561580946329516862208992273031998818386884857353821064160854351684894733735722429478182637673833072896707924483159254476661054111971651279000087541192073329257697543608510685871792213566871899459592726553146466701797995577030563116985333273744778864761710096470263920858293283834490049624945000217907023223374111970961997283985994887973537170935704439905241861797862347200908606368475037084362783337161900970607776196913120014547718253242679818031861344843420486896408874169016313755300207368723285001658904387716142467179857990958998906631493952897649487701389491845996617459719527745665523748324910982492850681396277958801868358436996184284871184643043296275560902496958147612369591284578240350727097958775602849002873979631310192413254530451019464300516900228476063593912061688232560996469365013666912078778698351710289824299665393709485922109587890405339065327891458044259280050864873515064829101267479511540707994014854028483630573817840577449654611237311904100455810046665055090407912578097507946495623430423549314704026893362859145609668461640373821524618328663227789135927233130788259599646022035302385724564284194301081024351673228907404369208268126186746141638047925522246777101166147882467670755639850839520948906939330770491559422511586613025616142806525564528244498706033562134511463410346253580591312252932372759663937319075655434014705952371959796225997254592928216281007487373972905609773303805520731938366943132246319057717521247081309203727998742070419502288869489999102116029941263531990590728398820788104137321781068750760964570072124821037636168052563783542832224555117058966657249593763394598875257829630428746855686915348601711181752963544730825131966301931733805658971469101986594298976771482992670167653636326281340940394963663307086479850909601179494085611927547803801821462535651975378722965217419621395845973339520815231953155218650020126154034638937498520939734296391800713280651251629206955026456727092633600312897257041217809797082559758235134658717416858370243136198167660232614641883762775417118247272380474176235197417533281875429262434236277631430494488885590397809567950406895963891455608038025408560142805500316470787435408649235514460735508313513792439961212120640557051701235691741461747377791599227537215226375560342565757344903369256701930213314369125836910981757723551450322031270000204212848535580902492412081674644338112098375994799559007469470631634033742739275520698857331217581226447810987012056984754506482772746921308145469089478652004918828133346972556492969314835970220008990398958352418766538837258237577711191362652384439996785884634173804151198903103045424886539839536396613014941875563106162851988580513861800432552536194983016064587694753049611700879297145970319654230708286627231701325922978886500467024015057957835767714270457851736015312240487093208614890136799686162088863051517363207672347340576653131256821266613555599148450081504299281827632982114947088863156442665408357133548896059741264666131153280785919874716023396023881318451445392869850472860677472534345465313006254008459667506665122422785891554453953571077697669721337430193456572937065548091964814476961997933220362567789861249567089562979394993366128692869849272911519081214189905321152666850924477802162902916713572627645671574986707289868194968688000610958328979073934478689412486885064638660019957190858144660559372293109923764977080775476191154982834951200938610798160686750193052505602572744006013369010026203209846818683491132371675492224401716272689637805728072521962184696220327153287141454098054996599026325412107212430953923039394577672349171294346781037864399923461086934659282889919202004381391574628402418416125881841494921852872320025556855177545234464257514426936143104037824529741416628037547775785315335865085782537771488476838435752562384946266842544919146198171070516012260433051683202732526601463762447955803339221568593409395761675772291257239499068355589190656737603814285663984422874773096578177735679779286809849195376478493507230131183643116446563639788288721900167427291024056085558659522932389876974798313497458053528815941812438942395214657315535724507061278394359827344166376470376326509109845915162642401714951733613257611043653532902280857353103040517312227417935672829347957476173427773581354124112683720021844948730578190775506711518238528112913775594959048239705152911148802494648159294388933268347120348236450238857746860495510642923830378016276227078882212702166742343107910855419214630221763586690429046690757969702535436011581436990673934839834969966461087659283246602349193514861176087433914233088612359890014771710193912709946627250147720352818540375701140337487307313461006077309551132543087427697753495788367200586831344100968748874433696099264777150914504048148891340976895606179595071347827728829172143176303357199301444426690247182977021014155976006115353838289191409388255919052460209203081256299295276930592723572286735057874596035215580163675434855100962607181537119943515578655316716419403510452775927092607916312905550311799909598963318308301068180024975743009793625448530703112263650930988151407785056730471263079073032634096503939613334062576039180484465035251816669797796053113746465065030070181009595829609807917029890316604914226303306201988872761642214367974697672821263036479043110824659536681147368251007972208969136274893890021014734038127168713113496470623080915550185908359405732395743096127478616590715993302958234676402606976268557754265646828560954573462481175954654913866352110792194777607475916168666825964021967392644700619498230955745767634674691491808079476906055782549703336866339238564875619531937679483682963721385307156314034976487170113061554970373007669791883465836225736032953911930741118697289887215822799182992661377043417593638916303002177437278139457361729244059301481458946853335092587606115399722400382039523858463924789576959950969938176916630679905470337316129213977129906072582413874035074247931890437345219218070204585076031382660423324753356357052997022398588925069096055431814021386279792289654467665632568298003080127302481756088626799734310877996379814344627069021479494173719124089313550191020335291037886649660179254523539937960647833618720667274786338069901887410930109639478724890177915743935000047417592324786602364607706767342677484741479086183580716390162740337924857778281792464442729626661887588302240050286998742092919913880468002125222017038174157837480742779570581038910016859146024794005520503703788713171453155274273116814303203166838058132666962550546243220029829344602371490804128261817488208608785915906747146055791685216338284957029232941100740215273018010939519763496643215271539440999485018940739556150301357555164880450834928792095572334604024321707901812775507365706884880255068689196021648886910090012876636118629683860539912128420745843488907351403894013455354807967795508270566178880485795302425252063778846227837176418060902056287966304269415681801699990907069668905722382891649364521835991051889159235216404613695570360085120460449860289388116718958012998768017416739922907601839085809479327033317809491364276807553372837458619075525429727365286682523150760666863609584353988853564404486795613115921539818931709810236031547056091686523688699617233241850358062368057539893476419483433385380662786958205601224916102784977939184658370437604794981762732890948724544081873002787891804829187203826701550097981973597446080245067432150521001848508533267812683159988929181681421416542986311632546951324596416979047813999536040393499582799838180508458836579722928969946697759148310227015828688623430332137126229170652927650153728355626455186875674372843002159254727586730963679163491610653000545985810323254292654507770264318126299774675004459924622934641195875808778880470550127952904831942380996667002721754411055459895059215033918802613595770580768535691115741111223625305814541315410123634921851011663261354341685680095051561222502946997233103582117236818385567541536566966824217055070992999963458859303488742797816587078244282871488325364335352334212886413073735714263848617336832130969510278038733726633896997149145548273402057819724369614467378829692665457096247511778737474026438674587117172198581402775564191544050595383331340236086231020752883215584768653695289736604686811095733864800016613134540202843710677322149313332810669792440290936014326283502027543735682181566570680028552195588434425136803090307421967702168117999153946632319134532823260750250238834985522177408017640847221563075061503938309874907385680882675431034818550347903474563197234857422605789805406402434089891071145362554595421592266962935533429135959518803653300386514015459282881999881340065739627630317349479844954047560725825144943694279342366393548094982028919869143990591778051030341481163151978906219710884756301169018992241069144867820096227202448128882437993938145524885963815296836506010944334927970259256632890680702925952887479697170435025440051165060980531972362090314430587075807112471977273584793455927138780994466822166286543929082657112478288373209699988821873196254916739950225472723665082636006916702765406780408827751444744140116076810854698785591434995171797648733511301367418948156251774713546115736607771466594164976406100416420213011470598811769919118411787161635308061751003819007722511191107344417558407936255705931209370176520288888942167892460164066666000848358075627519410325201219165538633117415331000231069211158106629134822149406656489106859085828889048605170020326824243387804527576046360705665558019473161148591953608804667217178640835267523339600930745506837562081564710892508380153107331407501527419541492862096503401312512485260044215245782715921492267636876727248723573121976678823394923363554961703829841351329784939700759020205766050361809027187560873395891554286383703440193149843184611687037927378504791176105536180710304449409541567656614868721698298126417270754516347998440597412814603692198241173351218804051879229924302421193799348355228864169461940127067580061118660802724617650666319414803360003065399318916316146923006631766534657104790336209167081848559826530698309057176689424998410908543982607818842256786599743238902923557833662007597261001311145330705032818337075836452761918231891959334084147470233302627263286356879400471077699315739025321897644441970910925956147787992138641525898367051472278581293760417129675628711531470895727176042757210705571189197485375906589770755579289342218591694832779109661924436660261400018111013053759164543296908280052007244979044136533523708421440802501901991046239750242524265004324192900291334559528569467482445974912896339603275680770780022965613972948887559936108999740812345238499339171442603011186793694652839301158781030119710320693023161137092688648376132444783026015252046885774688142077795367010401211570650739050425799624847495460280425266583267160388585513229054990757308480656241323641607757289688514510635845294862664599449566296652072869675228375965846396146049162784061579971128564202518155098903484984141359441422282362887400876287803246567332041367524900996480229278610070807226019381869515557644670937553270757866099604603271363484357305335211500131121795755270948803616258467139188278767009880390532149542874863521591512799237066421421734751316036825984215114020690966902524633780421068477600144220913081189403626997690928244882484882220319778182410954001935636675461097367104320118223277343347734558797342971615836180271433336082612502806911857133306924506081286105674742557668871869341934113615953677635581809735854410569387434855739535554261039897180926301268901775101804071312620640518703491443785230038537607987357893705300934998118611693633425725017177220028997037474298386182030752708468236679522937417916973686229405336252159653524383527978388746068245465536602593192554048416369147794462333037155646207390867416386732350673343675057035032378714662163203038533080601843104635792453274933169190450092749780869120550779860019359152895571069938833393484387796770671320858434561607719885757401562977191725200276160521476956581221205221631158549026408187028135192983691917376485033949882409930654600186727118402313078728658158837218695156011941368932821056909688638893549489834902077374177749227521701448830104460211336940520854253510218674177100686388215269882655853198499364309908649883985083847308401719947795692844069527011455442880863604064257843453221051658865809531865563084900618969908843235012361108716352821335873932965929637211742155876453643400396246792791584586691883787589983678922786552020804706600314323755123487484403744398802126542648085318247426740460151709446919747288135449600295007975821677007839234319496831234333218761887544449407232367257140701522853305516287918532722745251351383497246635354313657573031033644630070701729474124002088612568370308865358313501534496774021313072221393299139884437366862982540201450391312808817669511354050681775294925450024354729684281034027938542642943095070443150367609853363025408851301868165041582699564452947735324983026345007045405226893947693683873591462174047152327654403682188523446676271317530041094387169243692902590652164696390110330831959372785237012541484847406593252607450706950041471009691090419852395939617165992023190520167010200963819198795665886549785087403150039143958957436273198440447513200180609343587101940454285341270056216001319845359293112359730211257530519881235422129713137743453931703047400249935930169074169233803528647402350246014040133941443920346601628018879257932502130181892390317228962134479521610453206796307844199264201933497869858499638116299115587022857885847075749131607654645546158765033070990796992663318208284080401076873796420839194903148884345881834899722634617975306024046415022286085887022448487246153135097521620631447752528845470253125211530189033732529138559994790457177038657578918602331188437962297106139902739037972195517251963253536279000593120887738931414622785801586571155736374836784391050734504228546537464498643047072159357660929739918342808061314497109570902553775996509435187158621381994993758585117623291358929109382943450780245370035054523580277452512717304056922777894473283929214165928655434807174072605636679591604801616640819284395820486427173081279823876814369691213966463638067626059030606607216517803604567122761587793422439471896608460590364521543267613273383933591690209561313082759447269282072973044939992656147712796712549482705301275712308335260794900315011953470597211606761433975214095341387965404172993908831873683852996162213512153483773325714210647441648604741007533323046500354370143793807749066338684427546539519423050416734716288380257750980347969031513228286638515018696998676132661213119384885437067850018540287723681531903735473500767441004413774751846513387555279859359060100132990963382124182281527542595507222215756490335221937250580221311557673905201230738430973967324297832409591542939430871425527271289546216590665133979700192879031966817738285193358887670207560665697360377938795542803910482306663678001966454965185028039928337612675759885014242785444208897891048319077429947028697823789998345214872185388799172596992463659764151974994174240613322754191780639181315677550893395119242146414581092217441740984883374787988352903800514171658569862272969599186637441839354374008599642396782592841549572884953100059907900162186892540233603717757445633355880681337114798454281270390355209620390871127533388741628703484543366892764598990232191714969200535587092648440235310997696208066951721074223792061148356552068820288674315388298095991196089531157403034927275325750380574439703171578588220696653071587612875245460136716787018511056450548265507992777204937716116665802792666466948912484085144081882472734302718456335034753804245860698440183531521372456003750616448525981757762021321315667342121196223447046727380338947925577181331467209303321771482610108894686679997115522700519109346973907212608240255769909704719613037777757017364531885788020421567497384107788854315404078985770817347944018401846493561080824767612523039864297745045207440150697509941117011624445270053257234276079185446867496964501825246232226730863295371218577677805597918633016263302793370405720334817836807419690167383138391817686605653197327072075283329013201124243709259384031592653204506762955777931278282757238106224609442396077668243415302498613186630338398843753324375135322535314911254438674684828984921984134776646090759385599978179907813004117056904761038889780980375183143227076309234312147070263087658940766134979185989099025259409365114651357369550889414519181717248255719954709766918186226589041948677925516958031452882099344264317494509350405896098883842329225380443587655909901414025652925859388313256138306753685797081008208011818542442298833981819218049131965077139445904390666176744633337348001082370955281235809915655539847616664669313440919339413630417621282802257519795009636410322343288856559932911390555046847000146538223596634362009566367719946479454914049309794313870443702526173446189407637085801523385072986759956630857254757575195457969830218750809490638633808953945680034534787273882526547698718793152085892266219467627175592817021253425655382881516558010672163723731261451059337890281823772292385581242348596135953676743808390903607329608898506279328096105054099849941194177637390241691354609410190803218484402881731588423501375208721433321947828205832825484846953348864592966303690545196253611535874620557777856680394006049415822371623334534197547108243640877152403461811816031030340420330308762486941480232209043982088669034953745488487112460979560220163095468961920548547506043922872048647371698268934846527859707007173559460745015147647552723012489568046653047556011692781179327985387508365360068546047097804730280720413158743543880731650650075973477793542721849065247686707263557700653690018930528227556996615148753898042837734721596789514263400680877515360789656734125209236646877938165693400887741360918900111681476196736413341953336743516036471905038975964641263962535324636563664291262844583760687185241124630117589396852740997800085454908091056189589824171790736159960219146250208591274585691706278428662521399169763141298387469676394772919667836704766105220709150235307935633908901071078932504070984161267713709241984345063461878172436429618431413286791258674501247148709493736800530127938099360151542836232867598213086308699656547108734856983377888111255600660365946407894366880243343130269969976357517780677340406792633265149953712059627136935285072138471819679067836120496422562816743545514318271262515120763523665155152069783238927949774908692377268750250680313936441841038078074725126264788950938344668869410350094835429639069237787883338056183447432170804332915561198115901235683292181248404558945879009966674206506376062124962406612185749100118638566177174155374279426712815153398603511986743437395879225431742389054921065020035345002982230090697061751622099409843152462142282847241532435770185499034473548105285043803438554339478368290704903577085853008006333423455781300921290388880235881098179110961403395449944432947171424504653475249791093688364171169109219303310428220231134679953689021175879948605192325912157141085192518833741557633396111432148028135883850620069968326197379713447918776531199707634902409195820309748339822885568074034805477794311916452909023112379913585982634680567303585995480458022721129316375811737462051025842128570908293451469051324363080144049182217832858945638436632339947851793810277548468726896525907170334637728104260932382445608686388522820830182513438760536082719404941949320796082333619863294384005908071399957641089910460233807616734091054203212866967670068552536615780507294993929643140119801743324440784084927180651840052639302626663284556298537164543715007303115249175672955211492331434075253741854000496948515612204102138541277028406880032719048897375978831388356866726797256305717964752819779567027071217755281620482039786657089573754131831843838885174788337841547311877005737846881796741152686276613951910894215094832059535691874722796733137041618057762707297304326633946320627042230805531921770223874735973966317649757732509297329855445442353523332997524268704840239623104263296179780967924750674828610088406136290930311713725248413024553493649763079513650194287290635071371443218187806183933530983836243546146834491611031247727093942111080398384810493762830929008793940361794095611662339491806563018404474631560413843712954701195146862752866265702071839145202398463426312098991773475737999615955213957421820923037356787753371164162236604531850837615595890430274219853442274945164732028971271644007438662865624568990387765067007059163840055126132180366643455393519517929245395977495205857814362800296104259836019440981302349703799782644615845031243925752650135237024931964454951541088799472738114485600685215369348644776715385322688637421563397072868466343178341169884254965842000086123979841765355591614885145998724534228182693248270415152458304794028686179547730945512402239091319037118271769592916379701604296326936287038163507100317518423870605169007560157224671916444402441110304065442011932455025391058413146990945716562242402456459849053760693771062700947375978487473067716538501856864899956265655044885950019846369429155842361613184833750253244761443068999954203474653485100322111082960258455485856867319355111724232973025589218733435548974002594517785278356176399001990581146027058153409969838283099827011163703000722886943485387519873603680971068959380355054081408974778609935840648047946782154153340046797079357595367442530920293622612599327506894623051826869159571833393562380153084560798405970926705785635378860702554034225584017467969079619414312858479703940446726570139698345025393804979436795828786143841649590518994892240737662157107865200329653419560605241517286842199060265672672629179322759203455105009175764054259987553651730224006140531235279619245666420627739963794749802650950795657677730079170116020544392452139053326111508265772233916540321747708193551590440007693225301071973923607992277187625860919420059377238449704192480225832456803371085957723319154723206304362460730927057856461557389432323998107329630300414609687087571812647587966780901981778835226597863255868886647084077115090824707322578160495630743510867047245818319816957934291887002735381103377790112001306383434713935233472320630233750894453589374863841565912349162743148300718771891256942065712730408501967970957702624911393602014735555650087051134184678881466342360558479705946643027180246314271127712825218105194647832058426129886252959050355163772989902266908082710577975937614305688484925135417327230680323630559274751515103133835647681592271046351860566840173478739394203632435738169387026851594874069047508481156289420268137653276362429943012159711275091121068233528620908032934629741188963970903372654289122375076779469489635018022321590957376861671909785809686717447082501699929358839134274852561023332668387073330430545647199440852004396552561837310036704934691359358661179918428826174351996263637359416797045518249607390536806259318202558676333729938770992425251262069635311020568100997704569419057652861828022154774946113969019954532560024836714311289082116179019930412356637092439945706471664227097317488284496248238927082271570772251425500933176622608854335312145429974836633383309243024025117142334126203870830124100981591189316866735632303495047747770905525055076062684481336087355921698081925436920792367449373595068708748063857288204031823782321831154435057431870386344466596549232106133088211913187906360479464849449643956033252093712102357296535278663109028713061751424800504862077462702867090677579167458053504886223794647582706723067983508687058953257334534729311303599323445373262396122057551915698652759848766355253803246011562455053299132306597624921256130843977813994598661777231064712836426323766678332138632380425169326440748998915826680941649349833690523525625666004751660200884187719900893728088454677847743485936915898921486733048150095938059146554131601743557633806082614700456941270987621864027547181543097812848809950535500856362546207404350898055555106908016364210091307477494004038008450146241317614089900964003206689012566376675483140189672896405637343710306616552948157176875198831983650717098312842282471587581978835971843629664082317173111383971267910055689842666627240757698532002851069930893271108921612224940668985268665948002771799763288351760886114987956645172154905107243642807574788741210197698419264823319016476244045222210531346194346663861722301111952449246917013102725581215980764790363525847426111428257577148030733002415618208893541836733066277191124951171935789086927336519652773164850742961558634956995067277842802865777528691403169667352715449847114879288959558621289210348913297593831128553992196121142517891467307811025741220585756398157174275210506983770393411702718043681127036556285707393823577163914282583915299722370162587612447562180617468152667323065285902677574672147814743750027029124459489507221873696526101183278351697090224310242874542924286870932669271041561831286112440475047470611722727250581032036533609444753818271929880600111996000744063124365351363859965287286482808217200480082719289591620861861074559543993986179092098956260186107687621326568007695665245281637316652082944620624025078510794240594403759214760452108350116398895312206732396103782753412884740060589049307506949695077209263835335535921912406080202884857313051797326697506279839928768964832831099778498881966344863874820539984217193970755330644068978566269379224676910628974123562103669705449641267703718337517537875860024655627543104803470223596554646312073174563585379429584319201764506541402796526387102931698881351573477968198195717993284583037393263331101874550503590820789681795879814440142863542706451315847244960980469542879729494232529171969620735728225521533078515033577030862696986071603401511201232689804943381386698605795971049195411503053575960517323847514840996005956741763902720428237166344426621399831326349326182222364010125824619472570198906105752253356463069062258443075914552008448681201865607931052763665893281068110039229510232917701704785598832612079913467581899513616749196987842145658293466146117290666091053619029775264053938680664309889470557810291736827800437075955321647208251743517728969094468682866680247744738395937551884647422802316702631144228285097105478722552747148869202644499203853270497242892733350627184612306719404403596601312385785029730384900670843974839687643840673573872756620800721904321022017818664118960368535491986377098400896020000782220115583339026728345796124366089114210335190400047642578909675485363139176705961321884693434253905320221129571385211019080991031197210791612943981276447051861043232192714289189513348908490879935626012984851047839656365462388482456777768492088763834505578593887987278336792923543316490109241127149651383127226423103757485241361939039016673215010708656215837847482266449716748105898054619094786366057572392366663339214522511706249472370412983872691149403895521422496875797369938210490156991434150182574574121117992323356130928427641343609554190543474675844452811959520849692422730452625257919032001348210703331628054445209183947908751311715566334277805599911949781015012462266035513607680725248023709034806829174331246835701653128826933272186808582280004527957040079587129680692147906716582611787912454655861776416973524842174839863045421592128322646139030116682419697747930723514576976476790292029973881295771626293012462254316149581108081065069099633287268665924548424844600205885121576459575502290602136850748966620106704235913981480505530693468821205955219402049016178740457199015215362981051524635949792837198794697631700694768675296132546476880633554075578620235548938238815295375804241116181610112239103532408389022716002575368807454521778592335249234864125103382190915106511543672131346753178405840293669265376678149230848022083305767826431696289275228830731023738473919946041918672026859791757016924580258976613133007490539340453895474923260226316587686476852163584976557525905858634621836337879398235953140369314523368102255553590493026468548467197863545202883857164639538410815756143202753003112900807187658189719505528481402027181581330818145547569152906546331473556534646516579357065270390801250478722719801690569144025490512092267763925448795039886351613999063046991256631833739212807416995365565534024271910014058250783411475588570049124265420127019459648060678278643432176895041726526546488189481321064427508171777638429709865453089856663798669921819093368603867747158113552266936434748268856424153023708857779047539963058817639973651259503249254001113584587989052739850656277077129316724336132204417325753717707168767532575362431222458378587545909398928428741692858214843863609681491095419065500040644230419701868524004385070942835027088052681962926127480053383253098751676930363921438178575539395768838992394884901895207858518112011908095293416286601302630187109527841208144891809289937174110898852265295691111823371573218318907141262129341204192764276113921192907680106414639700019041030747044925770527031589888906499339842622318603781926009501522592296056276902587433079576528902636463459789951227995110132872326573172664088441463045937949024631849893518939027962010493003025007955299008360086110467981665912092710005075858276961639714138563671619209731536250428795874510529159241271675122615836998546972458887000613224073868534782996256613679463067635478251415508684093665587014017992559959700830875770180441631653466325090145945654207460745449194513923393426620110090880638894828488061051942134717519686711747900300045522678997685135480643767443683109003019477438986838173487767980698583674922951127644964817577358630153667356486963776960344084339730000313741637921168473907365645928037156932459273669700332404309943824595098380434574002019634691189724654443364279836158193405743591833680908780869196233918494516727561167851450811471541200349406387122146122012384984972548362703183818047303685694557315605720324412895284236832508126229099683395596473152680220148188380665262281600271370063626162633963664429453572526193790807742916510380371166502224401135396371469988693312244165645240015235496858556477612420444300480541974128722597825262361226022909903196369477659928351404150312266600503456598968688019040134776263789479471081669244787816930455200921942653013484354511342318204639560327983164277369579698052392366935679654244040865777070709385378095640859062590918371130261442247967470078371338407459737620706701851284023579816542761058320455072630941692218277457368460148511482301125369891575785732435898858784819786738069065834263629954078763657436425470948850686284022718485525164653351970659012211786924633066753278331296122455149736048816880740658215712334654843841151706290303784497819908627313543889325946666557933579808176258944276555095103218364527327176756170584881729697582092200554882960927418176123301315164724075507105939590627123962473972867092793836796779716839298360776663349780309026429209187705719260276401391686706671862365829572393879815273488289070079814361773863767915662162397135105358445696219608312026608124763514616642782366391006718582800067178790145618592197524730518664596409094093883024745513878875993445085974544300347735548554061094673445606584603306159153141149720186186845661070170443217970461350047831052475022058559847709931433361335520407082180723968865959080943242434975980173748357600819272926989921063405463803400965024931512141388491847794503048602716052705694244641960118149630921865977047094382276873991830683665811432484357100592276670049316747706562717538996196803894952217709911640569728590475726042183799441742341205762407558584635669972120204936685834679675039184881021593915022552046042856971401518889727896825385522557622106972094451510948476511571399903691318184491873314834119494232715665166844490243827157407859017030875405287378330665166712302420384489670000994080052969625933132901964459804101826364723336820148184307072249200362028319992927956325248221395838629296312791801225883879145127778133424417381011371814535829488747871877815887520103631782788805373635434353950609980793650717651619628226101305726116010345522975106275318137323737373070728789889664537098693566664086645708034108161348997912519430867228948308624126512309201232420273020720807920204027140140849927235386435026506454341542750340237700062753392642494860118248750794607158317587872030739531916352194802616647303770347891084543264662849202835154410339099090918101638166323944696060480589875747303915481450888621804802573008880502602206898401209122807348402480691126239066326034079894951834757421829499890302861657522524790982277241223189537428165790170448153544291844523010397266082844435853099785566532839011286239887150707190869960561024925032198875553564490769372331650551595101621931298193154830823456869767222798914568625604286953149562749743608661296186074935087805248940456600656435801506475374917403258956805811172397683655094232021858108157221911196571161286640868147313825052557478036377501294572547307760010047956040152169550136315439280920826601637539962507512915116086724513911590632631327869356884275208082902704521707815137924901816527854882211409858742201813554555196360435406121151550690868111685499577941710786219300876679045701810273191596487129688974617556199745184354139421529141429616487963065590845213991092901839298143376846960655540115851152087012679889172396003511378262376877106697510720059458739950309704719047824344791520568075423271035696353797569809779221230443318815087637222277955779251252429443633468020506803990636874202351221019827031949611868515912362028327325877220014741689156068572808923679357172864727895613014199340284980387187762116750367276398706783395134767296837362755565726022946007285630331664942732297555440974193692908768159175368370726456403613113903934648461355190390227558327026304256069123979408068590500938006289701180495305782112820271246203639549566340303417970232756263698905682206392593475925261735778021330679454848278567220437563223223941908183660617350887315464632020588699269833011082085690538112408707510525819704601884039136093756009107276446526681869264219836997861483841523563411608132327858621459672384244770275172793447786987528301151812742977398458747400227590879495728620549401970054918150122195859468411732422074357913833506245234287044980990778491996393590185688400151399653391386887329389921522451244568833917122888294105038537504893091731561431346392390354551308422031000197833064495151563160362774872125001098364092420366638438821512338095424922040047401439566247856790819440947165459019494651462002229269803157796449190363309262490882074380185527330335596626411322122751820585962607336894272318524060009644539605450352579087353910997900573533938773067057148239223402840114730350411935678134525529729828572089576016867840531773994091192867939163582084864675189923782787354128197126193684218840819611756013416971766587982199484150942424118073350053547276450994749347396539699491108636977109511465693228266839352154785863040475747719501340204897585898252596972966978739469827154150220538768309828587734087334302566330017581883851666172694177331579936601965786168189527963629736422930372329442497821462516626180475006881464437581688531175077376420119851769172115245287370531691475801520367788254156073064035703362529248079768776232257527513488740962569722317045192914262021337949562439064013748681378446163183397949135262818409243926582915515925852768576019984175501035519919603959207802937541191307652574282578554575155758811460657329694080755698745253886216990189087170851736473742069964720384297255748812085397960712205749642679506174972308708761759044971717085232040960031839783671619137190353384049163677227075450200332635993885808752859926997545011898306542686012559346343105816497785869529403950756566735475025672021673527086141068497997057742727739731528586324163129694864995186212340427799243205844281872652696572854375461606876712273231970903674199484765632233196568775876569626945106884717754211652360142457213451419695647799461952011765607146853604041438028807276113779955869821013089821908378454722102233819546557887523286905279099559416626146486014903476668940897574286301627017622664291137043670740690866204179596741206723304861560929171982496243682356046218573237962296111755853679435686178671552262877000302299516706425977019262990239760195803471384458445378426894166160095617079198793309909660159031038421008677727230609550539334934806841992640822134645135993451514247548967359345546757858584386302987181996510254364755933867551734067313629735243848586152867728871514634437157927470923328201278600304443228782862616731793574417644238754530814826567890760054774200517505218264931635476436515066963205499971706062260702829600572737792426292142434452205528292848592172860965415931779960091393027343181123496172919709847114255220172460975736806909221718750776544950110286822115634945658437872173283266012613273320340259900417303221307420003925973980802853978090013340403842560793089797087309834655019788135521462597796512434617273664772080386652764955482169343409201153511385418945936132750385865981512377509834238301699039331988302453894320495947131194140542136745805811210550322607222792168117424692855272485028543235926397788362203389584028257147895549401442796876598586115612169172201710496092365952456194442895388488842220280598016714345168847242622579351931899760352431955638292826874151200166769472881241232845791767027254639562211524079943236631457772961240748722680373677482103351507308420757732036783959037076693485231540202074716120564240761706459921039161496662049235631206192398153023485314326803563145602325556249050266105409166472314409617792627748733588065761597453829506642037116483239914228340358538964221406603991647737828514293914985163618536088068022829077575952890074689797317545177212043699150288234037520084746598494684253861899794664457582648486104779109436405615382500969625626318305419978924297281018594090644143477850213045447627430230870067048171749452588897075550987479305662697186025685322028202272571886628107383312021522456502928665593621656041779987255554186584162106575361571907790533538059168305814795785504921360335762865514915000642246406428777265654655484256443950571007661366235338374216900202242516421278935198416740656272560239507989443409155649150339199216033282829153746189092009141121808610960933366701909947226122339305064549416254646756633741437171399159483101581954380574625365798709240192849292806244849232641341383303112914106640211730495584865969563987053566933181442902745653880628579186523671345053604371029798772823673575370115391867502802919006320427691115147041214904841659924995837255106089335197013269885639770981766455650265818435440897901808302318812318540154138007836102465758618662221758298446108518156955829071137947674973041009122394914228505449697698894275858355548851515182220772174938365641292949397701997860498949274794451621004030495096077857866027958801117028007504078270485102140128446996912629730325675601116938441188376463205218007549590598003678755041787989334072648090257697783596747222206549214818147086855871073160696244782968504623790927499963489670303584860623411178162078575183978497591817234044415558976116349339328128783438918219090089904315550271265185687647553829720572056001043331499894321874561748818920414444662916263400559429315374134840859783709269550678273806316813379901676347178915676619446293082780925228042131630614720671798664791839087759442042173216623547849404810478941534845903452291934623559926010609224297522285312951338199491348445891984441198954515142493218745674926082003037992089550198524182906979400567232307186135673363974522555060835781570488419515381299326100117579824167634405635213239644686394056547855627079254791567788850901882443709034608493001160974688156546544049578006890432449097014899701552052908338284913263143780179122970837573072987538600268268496357648710469049831381939199691042535511848366459082777140495377989462761600224380908835418534398653798210813864744907127075160456678745049545093938634701992767977366762128720148216713528781803682525238441005640523455511145541743837681517435994714479951557634241422306266793955708785691872041220159161518086661883873534933623573100119312510934585051846596465379662519701384288533240848389883038172310559857693414881545359359586358238970121383462470174481777567370629385562078433444496623829665777007251153458007859353991626665638971081340367309900712026603263476257044957135617795748332974670243265245918957414457964445681842815855715023431193575753746942700161918053879713925725803572577034353603626636032764984926675813440266555160158728100096446938242418458121414392377848876359568484556005964381491782874022845525749597260357658982551880038928638533630410960728356119117314736332116285411051090864404271528436010478207097825373923264992835372129555623979973777970605588465635085452268224023270290623110873731603417413724993092013254067340266256812935386713160556796181094697037573382766266623854070378062978886910430588239123046607463189612530521468631670019472160622463074437598306182009815370067028008046858018731569492515594489529448368966249768865303288417060772848814350142054612179984601364533543952667902963808023062340171049356531448409480657853326686895282311002805254786063142729628656963928689337668583081214415203366894453183089224762481790643802552931964714959706295364631144983301929145604875740532061418514557628464302225693523969092136601996722531432744166539012027928776884328494292548042711424290445400858141055065299095347571231119254634888495842218876327209786067026457256705725735650781128939645986347882917660807210290129655773111110528672687820676734272694850849226589606375888265564592840664048380570725109301328691183770366885869375132612075181996348074150968018766075719139432204492503037235841383561718428783856857835516829872476569229411832953883279647721415782793728816822100911840654677875947961684053896528082384496311205895984633645946824308903169347679887706935889136086140159787399975428816563803511988091351208576230344138146928873709208819681269871868044993195054808486291259550655228115216476821498864047035321449635746246581394286657836276258327291449786092796290356051879792083174573490180455639501066023257914447045007607990315695570812848646774761832302708353342807997266051257610205130013699924129206981994486520157215791837740515746674792454752995302709884212557171586308087010742012752324655415561148088516925901120330623174312388918445113879088860523244434339349724834183221478710007886113272148641467231976254491636977302180878377604827752368980857321068960313353449036120114642380410344253192170541541588217594171716362255787439119956948262652258246831987323207234774837496299003221251686835806274682759749462904611439442097807389480408847207657210337402333239954398124034348103935592083530559227082514777154276323990679102826810933006811011366231361560387911619467380865291733122705652363626318600506421490481920465792936729466357022141671628936786043637952734215084474763111493849724040160312022259780140120474728266117060585049165021779245941097785282731971972638686078888586354219415075246235425713864307252408871043478295503304832176488773844008245166464550456906735749952769214617596651356939877344846267998380295493314243586606979339977518959446438210846088013712788222774704199093079839752588301044215100294900872194327508303681509406646223689927375926522964603198503117425034996968809845635284317770275308982077825117586949883815463171977383123005586199592864471361587113638244282487772216287371201885090259508879865401806383783895003746045549971679911560071094779471639233254695492056138397314746672867024219352564997043873753722380064651918191695587889888591222975632911278542220515717956370037644284201929549181827780124885490121244440560267802434014734259048872757344821294839543145907049047389619787868278026988332962000684557511259180187575678433369227212855426543825529463301017352508459553443086844047546603540678431888348207902337423158226149647117056522554050046019159995652709288260738474431031064943489722259700776867919336273400991636193171928105789374957243609413555642735586874647675172895882450997907666154394861761515920064956026411904017759949195098340916259631463521793447354267027841359033896178514466882246541615209901620856578563456214233383379432203035082483038332476171668278915953840547414402978750843035665778043833328876600084288613618031545451313208451464747127069880731411070630941407147181034306111061487965951205371467344901467714668624649577193903195564964396322212482524921071898492280085211965151299287763259224344993950451545636004505326101011052559392007779406905777432746053024784434967871278603912076186336726428726379477680139348268122848425877864550348133443216351427744548079689922760674262497316738943482413430138764963434145326490329927877576850274725035867494597956164985740698886155643304471701474912430224366119247245779404665105304620491366220026687643291783149258336901889747560761073844570140186758167066019273206397338328501441133333483173464785315243761819003607872404960778339604125640852218114522564592468607851058198806682667695190392840696693013866891712279989377390989132641264042363635429471852282247394700881729633071674503854095280440770051552419306694792832419710542461410760545752640327269576766276297585057201099166705961908332105332507127248163475511801399737055635702540745060614344954553206882168201687613016992686322327013181762892994719315978749051405839430784730961111271994116694505392529297007695183078840541134830780647845543771496664813901242106309921028347041156175322710456273660975390615102090121776886837878149478136660279511449791843376244776305251314791533911883300033899533558572834155957318211523993689249574307767787473857639967315223613572344212599283713569532247848175070708977244057280039165119413389561157120617187466340000206585598135517489367973546063917948226087759501546872543843512739511421797156359284298019352633865942457212777100981327425701416362804587796371526520373920715308730933668641020927056629080471397063883944637560905855162695633011056860379278128850702639482500949023905694601486331176801227699613841896166549110047202537416849762053187485379411051502601781025208668584036959451899402368725155000743651424334571355930741654330319865667929440895895930187384395593627426582719927919133659043565272644725748040931861101178930181352514832154978209234687307474777144898645123200349850229104390393408166188002423366128245607233224145416082059283544926413597132974265041496641386346510597907533175037456713257949830528733339706540995988734994364805069256317399177868239210472860139207579097744882273881621231890878861019148719415867909785706138088961875474285275554322356932059024476134850685660134064741983546022019935765932840256976207158178649011102314764990935171762784134804372903554706629325195268889722264632110320241142167226650795175606395701486810964500373468753149062059488142323315930217281004889669529002638354033778838199154845716671077855771001854801372813095696612085550141937786542808938875319369951576003601974211808083863863773436299433314282293888398895771185121078689840324439023917684830568673773643444744363759352397281385130785443838737190095467671715131927706370407768429612600968880709348290010898901616058640169377844090732005449881945572556735341991559563566226925619230756499504623434643582611201631934310335881093545932135470170846450805524111541398163655005150235551586102928135769648184002050545661183276011695693541625030716725924187026120681169602885315863157256910699967045631595782690314203477300895867841980268055734812939597430650584250015006770845257449600966963878324452082945699301993209564613460947083430313488659765001385423589009136681883034627716783585537542457495876646729283194734957620219622727441184201577627964856464426679946954171887016938152721547041014700702356739478111051616464605308388162909191869427672134461222805534569697752874097702722298434659918726197933459872912200801098383270296426835365203365234195491102623128767853816659408334236474744755704643640369707655519727474009390789135163186547481691979603781540896506340044454123166560558259248298598553475224586225284727104493724188497964655083563865154637549377100824242185969678533434364500380483329361685005911195044616733327293571274586228481850332705856097657338692792936570285447370037249528324975321902146866552221317264574097482370595276494822844905254220869527799107304457052424165549444535403700485022905656915540820086037471667704327468684587260787591046825776016659847124729955211565263089301156616116460636879126878859744670665356650833999008581866074939895193317217337583251013948172456257000494307257414510056891419999988182291839135806837355427617483582182540931394036939536519322089703385864673716683839025445494772072659154984029998284640500218988485189017251284374708048291668063154090916654028132412688997949924780013816845313786009409067077945178723462403730131438834610706072171600264745748339173584026505278385458825395290509927536407582946921611020402589432987420071498992490007459350783408484745913774812281095212587308806551282573338232521282762878530470643687369950568506072987738492689109667579148024902810057416611450628775054749058233270329382908822421314315288450980885121154134572371593909926312745377221809673783641671569383025709208049586174495727355507985573694039437428540226017557599565112936086727821669097018155317759384985172284717725885022403964968900459941975895987865819149973081706361310962669363089578371512753682947158489315775292584139652132293870139919875620776736811313936062532795378630087647977906379822271928172711680812106140435262817620417449582543703648689121935412429498714842480460914697868928831297070683603485842293807142280156080486674741014475722391168129166104593151493250601737826882704630789928913280731998767784315189521805512213167677751251676697319125454808321893090915066196410400845289522615159789367798252392549634443695348396094521188219406505129127626117887046872706066727678097592153076739123876196007410291022892762800709046739000961477373563377500668033743139007807966398849373850432111846035010995800843571627387798068819780146851743239857894441774890337071544785654830130262840673804043473035858251948684021512306153808853610660346096293942103316450730685492637974591881452567560103875432041733242266578393168169727871185761031232126753766109493909691884056118192609150897572934762912833294038596453139100616535851837278447946958560802217143768492110961484464626286105112675679558552052873026990812377700051619938712309770372375615075956020389944435439408784758837835926610568383051442541633447127674473813539841162141552801366574887060692212374645305916735440720370207541347282587200961736588342192190699549288671687161944905142547520667388360255531296737572248440228761538503389788233584450006875280403331456374459155191790262211813403322294482086997038676127355665547024649011206399371505297231056916303781482202941405822159689063672961519270519865494320543476402235371517751475616390246341637382598471856807740575294577311446385353769760775102608659729876090631269682039937267679587953015453932404858595135872383425287581198824900540767507330799404323065942023620913708955714417349685509781312373693005576817588303479476635027799006259400468074670751747862505945910166601714507781371082666208785685075688523203301069551702084056618431947974499078794983641319199063749628099589322271477711239893054041182521476109467781134328739655522063625586895896873118462825205959710731873478738345772473658212773091287799759306354198778800505968886814131954566340051958750491860561333038998017724837705382349374985513165452281855322168736728519263604978362040769775605992957083354870750447666596860387294412028575922254315720928429829879500268062156074858254510618884972546147429761628390540163296563267552026617175127904552662485642166452763018675879444660602443611504921936915164691364954674505612056355693017848602116187500243056827069408891620386529017501210804369606636350223886570473443330728975328989324814807420820965231455967275066705623519121979988531254223854428767018410704837757576899744521944875478640064516478193834502700475381710294149474174705593748988907970236923606625220544833104884250500039550911252076609678910621360510293220863996652825701454734447083083797677094238325065768150866740943629004627321723435207761683148013254913409236443265896928001352874166971765961323345799745673479597538493639271649939754834709138447724886186712472679626474587932448918141247453945721275861413604920281754882915590704555597354366147017951699818050525737003528631064230639208224316679036588210960456373918608399597650729190052669859188193067928099505343154610988067629801488874211972380222797854525779347843058283340292213274631045495018792694296846588906178554022187539412482319220549064702203553748504994091456284942663826178871599320489217379191985145094126438587706754847526876948393463774173233513584083536758210856621139533054500610861506547797102469346733492007100452262526968666730174814340900140564300045067259993906724520182321461202900921310981522907588327634330027584714533048816831460111925042051450611114793906489935998265304180799109271857890605465300949788207738576550978240829873171641003871351388350680598128131476606480212463374662950903363940369330239242051230991223937053702760242117597328936879926873300861461452290979784754563726278930741919703990254752541192989357044410467291516717217111416806898570100566698067831908425361087475653235282272727806040027700816232235021823942057826485551271105956378128094076845341178005265360587050282177974251521441441867634647633731485229651892175801349957097931853006943470365804316241118070669615365055805365668952650374970439062315051378093959301630916396131144856550546290022989421773026160275925967660902562326750508395557164162893871070716632067486424757407964220149376308065064788487799616059957354939247858520511361093078131042965053012948204126023616057845644536187073694152255932440325582977429817905345979670569665194917119414144267446695932790888330896779114747832727973396189396393845805528004711476014574161043683401141234564489817644715179799638105389043614472307301384439946179331060507017307167563305262907134366567177409453924504106968859297716922440423875422151704274132654106111352077320464788033922868502720666439573101221733093915653899094609214986124097671370147525535764955127704951038254791842692121486645008863266245371506683219693394567940750290082400910352740129645618007202650742773772863471985867909004956019827722209353300103281047090036900519054334046274553930845023866027227710951037341289830563814427960393940297921189722095426248194903600999685439989036108799698086030670861545293765171901642984729710095843716356913344289052716242888714270176641857154416970210640562121187626620212708957408419694991261343230382880777751530647194425627721400589370425618163550246687883228946682036654888291237214540334798639600309711951301413802422065861210254258910211486984912403276139170364516843055586595880845504656084780256759792297267046722545959478915170614353287310482927965748443075399599889131420832801551846209522722180752523168989475800577722246007967629779624542702967064966778004668934852251199483320784875727032777188781890759969349088272049494242284725053282582188171025469559298041480313821861649645021921789861793199891058003143822955083967436577133374379243338124189151736340593805431142652099950256360623429993993401840307229965347199210204752944528440824805349907038058159647148692186587947107791020906299203156603599265651619457820685182067007609168460048420672996483142792665022958707582613308983565297413999083805719346914263336934863756594579687553463649610121505090609881034797770487328273618276859799485638039308380244979687288768707884576975435772785157338527853557048160729085792780172558504907850525835258302026580369817411357190863867828491313911508705181570062211055695897136067306610866654078123161521480137778095418281549776985862939719026562436130260793805501230818406826607877139889880640657831377668318437039085076563368612972468362042734991620187294830866285067700354706489797744973131913376196169714413278071210279505382953566054207595910924697634600942708229143598428733195075941794816968913520694240360531640033065590558603078466978310316321096757526890145002584813808214103037193251340073896940831273134763384020174257642810130047256967592938481789865690567917084212683967742928101758512768018231216265417812217884383496550470994217114113506304755158335817479842958868954949753929978208774002201122919698015662855404250096244023758401074081419140268199518204362206109066608592296417283335870717461810437859161821335298456472948481967253802382139003357301963506032264051295288456417949248309011157457910852982961085034310971664831301155563495931688841265258283697120617088486636206656936427838580069131964773529962712338894292470816521611805662734351082316788723368153966779649967857997153567007216499604463736597413840709905409308288146340811879330052509115338664119804577932192521519886369228263864946839285134535543386279430184719741249202977310566003810143900044140541426507125814536593186339273537235586657227499430703079076836448641514896505682383122143713633516124868354040886394924880441163845124694201532300631907254241520517316261932307387998899013906891142472669419925865949073931788900597513901153624299405594455614570263050779413304568152748795171608250942028214700561444432230384785382626504033975631490212859506360237741250310246972221037165413112251766479655821553870917908662805157656368185710327358280814378121751254698159642949425647265829144290133578406459370382521498648211517532248414287153876337061680803485213231287485128887799554546649630797782120635992981243760306782481343461985541335938557756082483767446340075455798392645055445543493186163984871086494957156385106054635191705050042059826744977082110899995815311034140102010802656636681383851074051359661624584659390205819826105569247029445084606446901012631688033871938680969383391900515276597576296762934339016542735444289314314057914312103728609502422035241319810930578929649943146634632348072897514099707828733430102398358649947922864896674025426211830024920601843705935545263455118910202582078178003349769739963606111825362430579475203919139722378465710510162002300202138675303312590462098699330251128975774920963045416576721196328653257547673423632311174146770816088653472209452948271155054507061914955868974294658929299235038871170358878569619971430976104397488694274709270357602390440605138922950160012864554173377671738098874129269908924864009191925976055833629905184052559253846626320781215167216279813396343104102665420812613987571390777458768918335983082543336079386145480992823729669408902284314904066975311039285971819150890232005875894359172995480866463400493214487913601003922889268648275406540223412900683602579599791024131618977496447704701015131121474383834725132284665953411202805863975288420595311806414436460178731084946626298562993036694030950382360192790232117147224236387893064908467275171057289501685029555590323910545226830936997859954449102472020049565709825393712467493740484447534094604078037647904080702151710736600676336663167239718564964467232574990907817882275711606784206862606031828365816219449085562971796500433141240902791575441628408298554364220942431008835318574190630126111840616098945201549445049779728594619605121131565991202126314249309303562935513236525240361460034234733848274736085484149293635680664414761805042466876766275098053011287928929762704671756992860910503401933152192533062802793929086093375141890777702103390454887127779799009396927670695744453338498919234317077762044964156025658645737677391863549832376765410017994484117836485894212860196285642099166219433550002038381645213604914127122962721048400090213413185965270284788404201350264510297924631817013219154631052231757569773743323409216161231242309681645554304839651348174739310360095132626597605226200314681514333184759953630917727034952222652451598363472925139419152945002925754811407874010382309076724059983689634683240627390866994244154900647621022156443424795337696945668803666640196677724873891967441479405269351826766547599113845856959314951171531292832687458056395735718592811871941765846149002808735740998941090249151176339409895855303707115283724388078661519043195394614905565847502306241382891857536258449618567087427156126231349742254908772255062842386687930527576377027150558536605915589576474041190503646174177407015420835939627283440383773856275798063224600890029358437234598235361183822167658114061160054650897348181565675901992616850671358950246763334545877243615292958586100258911981569148066979030632917088852658787809442429212722764202259401447662675649794559594182908204285657127310618111344087639698849285728882591341442848175721339948632199407961989886495226451728610886329902614268686647071977423042804768315312424803897608975832263121590843235176603648183508706950843514550182357613137208250746097758109523746018755067337143815376258210249991049994105309962356213462008786100883574567284125281077567503732475877045818537586066024554425985375858341365434315361013017837582797577429365840950931127320962010498817511127184479192297487135190515037784786402606492662259920018856862493225299569447813609175464767386644483496471679921444769118390532006093705346400572164727888616497283689645818064230147482846713261646408598020839517689627719669803290285912937814382446224058368548964298152077596400354862211001072591464555345853097433486018662556420010343796453974774656809754344934237707580231685138005374993441173630422974008339926223691848698840049417219594559483899228495015094934977661003444476845912999660550823791499357963572628923377036032672897731472885506421607014760824665617815163413204823475679326852753267649848072908895203862468063667579199912420770925290055511003958735402892460293132809665803154973783252065541933205115473669683198436812864082564675683983804531448756090505844350216207747177583095207903628489400993460152991838275321372629596191451467652937382767697778399735916185042565890425879113802545787728256197591394800711250438812432237226145907208221357331072120093416515642431193113314395072752796432182483749527622458621580659997612585774706068169377177315659685099262108832699746578296955698241809289186396584404662423110063136971281181631878857356609920472807735794471262584424679563882948084494497645207300716734486049461419008560979724480199406909834525257023685501235671770980221045657369777362975734262833295325183217752507831895671450966875194916894667460998891002908795008406421656960101109002260946854669132137323619569549837544964814356987404844594684801054969867180756430544180160558506679371209294956349154393705008395328309074346670760803966574980491624186786039855794444786736619933291437372941327975172107178793265978033922417292132659564347394110601943644493310846336261404440957212461502358993294231956062794526117974499048306076618564364572196235364634347613661959841540341929278819071424881993342438381351284246205108603835350858105997778589745021573335820079592531392537074112690559280470770143088108990054615863801173680904814694509471327848616497711350085708230243095829767653543660738133728078287989640553084226903293076484854003829992922641918492816288978325019107030509414301012466294303842209761884751895346132331993978778571028738184760127362762546776806068336687538177372777036881209112607658334458108235636148048458336011048396851838182448330920936292462597466892264368945414951856230234006692115939633143492316580915627812552417218474344757796599594058860970701537108571585597252505508401790663974515036144683781359546026114216097194607847411056600988531184075679845182429018674441722296572404190316177920883184566384583276561252179948352540771475646623571545733620126005927990204191975405915087720806030826030982387435514190783699607018606873808196967443403992985783581401519706705930802860754820623967779567875624212812537995634361146587771804444596387152225752428300344063464379109554125122518630819511305893079963039611249248313312552479948817932477007479194772788342294694049293167069994870565360817273083597449724968463149499925756425284690820454059573770591803151666330599052462266046814583153635457326159554932420648934927016283289673805795410884759542759479078634062784561204146361039020214778088825650859221946143333409461502283184885016244350615641518758834784122732351743611355597090617286606868359711500001448198073774593773220790543408404348034795646861033742585046410472055271932638164412892903610397466056607789106836706738835904952184160177379551283883837536404402891168639043690797968961889281899967385076521497937276340606432924851001981208074171608805267099683074618257852843911479417964979577532070239726060601589168130420438689903828258649612098773631254692120482427891391982810437165499325727679473933617420124499417894438130852494108821163872485594286190082276596918062735659115961011585686542798634838519640249262578359039514070089854445233340556439295783864511251558208161446592515347745491708118318925780533382087180533318123177077150248738031424287585956327506040043717445130863053210639834133653200302045054444300477014408477809187351432663440119681013963405185283421869800701251043265435428163317283775045844505573585993694885770313540932935533324224661999520153565843887348308015236731882320035156638496614143282145340201597457361160433253132566621235846548935771924330832347828079279037444632952325493127724943800496913434732891746994485287415745871062472386075937417399083944132138684560937478229405797058175648907154715380456228480737958774416847236208571258635916222095280265079785590151448009321165129308579097550653618437345429617780567668383907311412477867940248540604147443587847373337371336971992908748848439776785342447318627761258455326103925819557320535223338845094887905972113103087840771010165317612082845685060955112962462352182547946818062528178077481721109514310082308421301300851532834907721973047087245156096580603849251441489630290357521482672667936275818876998697397841421396280080209403221871723663009440306985657289475741248297336091886033115757488353602389117734232735601712747446906799488059783734524226181348415909207175846358314769533101858418032158261183193334416271292444403916377549025947418246701329858286005378953367018054762625531124809505409626613147712414676215955389766514972508386394481904250032168798645847752869930478039883487054540770431042674275699523151062335928183512035101605921878404904981528253177720230195785954032097624107245093230413063905181783999512972733519030247663336505686597054503262783440739860432667200388346056108268718349175604093370173148623967318577660501763760458090324103814954542686651888089462792257262981823977995537538360116645684611410352778535464056700909799621306420498510177050627875049316746372354491391109386999683132085358134151272556019069682103496494679027169302015009074542591616403941330124987773939717227028567739668299775062945858495391002418139701897563696953031773634713378247741327240128287497338172039394296289738236733490061004103623981521365294351367116050871526767532964114625773840652257755048218759544917315757377807644652307891036997725625110394944946782159359803533247531790551650787496877333442918626969345966788980577431690842680559434421191373047616443022824040761023585548664402902641347776558973782159574350623762436789009515415952514040768000927101422246907916683302929800122585250434497702437594729240488849265786449886106443943694628181989158371897015527622880668728159330898431677634273936367735871842683506485698839812904898216105476931386983864601919419423638496279079237618142940237206074415241408512659758432985802769729724194336619838499676978705744619409188124366497567503296852207869697673771114704720093300061727645602543352121854919425715122668754655028941504818897522248357100524036611900388512891286777598975636461771905003314097987027456734787906792633573874305839178200095907654843384350669072213144716897049966204715473589585042816291749879860672032206832851592139439160047478611291903732497862918903477993069657058357946453133834686570938999202894797861322548475471727471272203770223525943272067411284244529119062647000698790678245398726089063899616274710877781388113132234326602123486919020324672986248058295049067070912583789915956258331009519067724166371694982133835256958557243429412373184859037720053521291233802649218005687007722554511550157263532257853277250100446716398825368124491601839783071455424592756122430217795018098561716048179396352909676993028857040773083338669513295755922074747262966489704070559188683041659736302716313718564944759466950355438847905619315018525294470077235124875018233759500483279308591058623154389839832675174909318307145708348750064835137315936621519029971511891430995170846233018883935404487541160433636004114120222859349276818121899935296377248748044605422941030175661224162142138591652495029808851692547420066250913616034354355092334262789236134373824492445906996664374345464924984641907147338281355433153936074005115807239062949635301513887610448144169039014605149863216473218081550520173300211831425001093652065165394219040631174121726949928615701862924773519571951086343653976690798302845121018604610643506630017605379369602106055637776149216452472701192711678635255791918178101809130442884891349010427212089308936766765595065336499724817564661777548816913157333891480052825716001585297978691443031733652591705106586979793492720454412986582179178190919418360279232137149000340612377446244733018423015844297180666023658631002949159260022102715428084060725135154677728304722075536618332613049526253816543963588620159946283695445273635719723367432840561961370751415858988382337462617376636852322730528687027730355249512438193378838453691985722474888935643855530613291600407376383118738872001982191148045290754405208801382159648755284239801078299822551172133130957465479902502790785527025431670581142214479201025350111190500683545831654658740149156683467364641847732144767470767386785396236675611829539965072860009518192528298923649151687929553591473628567315152890514312848025186030352505348006113094659152624747194854335511853841824363095999349975282556096007041418844743184534344044018771341437639599185968979579294235034241644647018355873940582362512353825687699358927315371828350813206897729119765347479001160743803983584582512015833449202553136086912623488129997924124700091182816509514002660652417572663393453743216677931735419731808672455402256657087664116147051216265320396785567485781293786867366582121443924056026357124661951521274974465536688058514356192984825462979832897532090710650193568896060848715668947877479888998954676858657441831014424980302878925862386263981621381865988958351792872148173761249743184334981324763323181164775616275906423756584112459757567168298997722878723227346649265334193559561537139457973352007140556024202622757386630401362779907901751355255992743918132763007529293284531011657788254122411203924138593138197307415401600376246984403075541937888759413008273606567971676640628442401095532741666533774286125037141174860220500524410051727352520250146996400325512883253821231481653680060849657933175815873603962254217608993764056339960187889831418963094791103987111641532305476900890763105331531269314036999124582759049452203657418292398935834759064577462422862339537715931197469038170402740486175617490096742347245987982308464666427206545315266323870593461851464021160304551862746218034828046824711090932973458917622320229182679951392112033287423104016411840379016649744298675588271300417430313125122295681788079503859604738054328090855335240516408747047072708214092186399902531239796001121568292245734673628937921763231219622600422649219931701789494238279764234440327523557439710663550505644919386276581837513278046502170228423811259632155873831409894443568647103935805371082311218648620571879166258502067634636333262127460945226497118989457154380145321453296134220053726710482394241763263134178552489617516189443057503551266060641001539907443368224550007776383509385575718153898435428580924889364134446678351695197472129113306949854716171767860368672409784145079894430231408616018563524640268919036648574784129135547209746627674543046152938665261514379692882031584658899422980442631024415619215163248340373430401144075197729727427844596643883915014351648911676442354988856007014988003470585946631923401016069470371933349815949654251892734935158965761328922020395577569881365605596757899242276881744385599127671757136948278586982096388080402055179260839456788189782153282847329909033399124187471699465473458227545503706762016482470612220516222651832367188684030259738601442641581160001854731959132772263031929000333615553543908899541600722331578596949578561177317116660836380560434889071579555678755974209579771641835215430430352937562994846264601333612269074715056774564113782118668834140468425144238971533831839764192121124012991936609796282084660359733043065509168199808534462420707411028123203794855167103124968788541611956627117245326345979677314069372031155643884192620478244053558877041361714779117464152864494503161453526508797386117829815540313284120896757654624166876829684228615730354699950510810413318305614129518320355085077617163712806833224109346153519538754582817234835248819857634378958133898299649239063399858390290056490624905866161248628167521770423021161954650287964144457238244197665281471557351378354617030063777050205818571988357609767707126901423229065772552102920097856549056155750375416575161824985100500018602708812107818186400604055867280129062740020800514596897476203668588168837761889986757093450879056917527189135219304907835024101144395995998472422695293760999603007382203869575752533755859836826450420677189138792232143730010351222561946575374113334279569134383306980724805254267362021685110035010637681571064548713801755942387577735702439293908104348031166256966103885835991756994161494547170417886847276455601773314592711427231133255005011209427627500121564330618675522623864603651202770926366150236102328666782364254402414036483823437050470783670529093308289493232651424887769173575586842535799837736036211622298603765841915787887736653567886730159575102499042681632840086324390570942909361555983334519355237855551746499158018815215388171437061557014737390776405269048555671220055130125170451990305445908730512166517650248156847713910776609874166594582509784459954859665776254750397835452250296357413683114215158172451162172715838475805414477613608537904305646169738001467601576899704116815963321647680377710942341992460215401329302328096534254063724290625675432913735636126120996870634479105077607173011628542835632488438890281870863888191417028962932662449635591202762913499879632879153759138425683763557457433810642712435013029127833941118292326400213066123342412939960103351802153289574094798343475338868827296496664232995179313626454890216461849105389719613676771144938782218500892946288555948395866475279138146972751556688305428826428990280694491546740035099873688608287703254401281995953170786315990499508162560226963426125918143318561718543093022756617783333160946623797291313096646862949941906875922469358635848996032684973178739942784739000905764856974744065931512008140514598475873052204785770767987236929675312434458459529696609051554932166132100558678437373330911546619862523742492218879905219879736211517371372043953263829129015404327937773462644479478239829645624843846009717611346817650644172499836448785192754517606165140600569847529480270341453679287049733825523979586567910259487909360238484390943325659323659514027927464031709623244003169936591247802453527635233670625974311399168276764055849843734686886530744634884518971977310032326687890967763305931926989897831605722183260023716662474308157821741636770735711063074378373638966892566547051934100758431195735304603647377144077540582690812360645937798373871423200922018177678650425941870580852160734870518189434281586491481406596771982285819437024105081975600414004985469647300036775037263305383914560914603527965830861183231742061332450113331919039903005163997982395493925836936598961205716352961566096646829687970835312439510443762734277552587420658448488213690108704897188789049208211477635938662676854721975401755524086384880452615923448487509789559149836813875533175484269225604154908767057918275945639125256883746349302639503072874949931693117980753418029130157800459989481393650268810347241184489050177672728034415123549935841830791253473730975463224031658558669233559651985116136346149327845187545994034873239871340320966433021610109215862806896254852607315592457392929373344804318844731090681959164014518945968452688845559802612169768154447078976108762242425970515918759564467702082957414802581330354394229240674797848357088529664452784384053621563981459540485695926062638192502358052032499655526418000369244606717680546579926496779494265318133837691064410114693512691861618009060552225937924906553944214931169875899504489177941457053951130660963795188495327259377994964370156233030073003105654247770572969363517212155653678804886536196852626966712948995808828368674769336614671600464217053582380503749971269466099064355614283730817957280476037953880753771599724145845860822459012167348456453243855219878991384858249594219986864534008582887943589617671197227273974800378307241516630681263382054342010355179555949463586657827160524139346992779898907521238103858763473493509423741752698406747027388605107243779968850860632468404868607625621429161397789780055601204671609060322927090960656069539588551426239171891141138779629591082872682241549410945254230654331473934664698868858230518196105801130994494180875055989853133715031290628050956709413162155800371779015764168744185344261440879297949264410967098067357085552117451236602627950360162276523073041828962777851915494880709040426492320992285914758897100892698841152660297067817007065160225669599805910176547904161342383561247250719354603967505219696522258057282095905896799098815608679215713543075434424980258565574791648686751827637689389095403604353086096819175487934610851628355194249864623065271654203896534435526184420092101308092466542102253625357129019617932309599285074173995950090684270971006805480103349845131489854983208297702421754213747885825955725763307021077627108252505463413950652705038632605083940267502237771794021075505712686282793097941279173934518152431340319467660410471844590355595586383388009623960023432333221550731214038855913864606189458141178058757999306465450170144027096612998560352998547936562892465737934418795251872922332229554464062945387738447684668689707254162387685046158727987060081053244649701833218974885732718618718375378147741116409486165513724188370010321090141206990648024326608883622870828496485947205670120626840797552830932744877571570119698453177618363494239321317045957060189274121153562468149433117628105742560001647005107736812593056075125915745186321551675504320974172806789660721588513260148224007014526014378737383055455311334562557226388977214999846246028231985348162933411725268047528733137819755097340260309734634404050102556990555281298147208680117125950344946078875261598309614761625290504044827236771317548594211933736824783638484101843440570193966926583106750800289115792939326718121020185081069598093692591982870939507323746728014829093255865332537757298972716115649076063140668335767309632214498767167035782794261289696543198082761839385561710810895912125066434926349260152029907897739897580757344402787257896636222664842337346917883882748750992586448535844757957104843656631971488705484121423638926509290291755640144075681980884348970715883860080882487930854846977152354261481952298365579872516088241588821280190936815807352772881445692842548009993802477441433798363297688573478867063794596619642930288451224176913695386602208770239135571811361655325758113950990433665922394602180006701057899060885649224607431226565994787342785838176643467896796028185167332281537278725578272557714131643278356310904839127753056283574081247653306137029005826131028604534936439116660609444348488397520349305112671252690652455042817006717734190617997632409739730375048815968587016036802035171781636061741212431047343778836508686064261976181959684880440877239291566701561584852912256788001769472321421013010773934905383864653211363024351706357460319514249920651233029772552615522198163176958720203903239161626579084405065119261798872679731971677277565078684415898620897604714768260325217579522296094116032083064250749509297361200899989839238826162454062529316832230650871231080829225029292615034974304070045066222966442007155830208404381312244291422129444285922706830927694013218104500553665140227075350020882836103441703585832016666246650329135075689734053542701333260075393279810224183028812623830129308941480364390707997867354823221668411703320070696483348223074346699182964182139660035756057787860179825281240690023061538177767905052928751962393713338133769815653414782013942523628300062693633385413077256547315622497561238441396026129305134503545452554233945371817693137265102984792296319927539490064130682859812234110973202191333374295208364706370189154845268578619275489928752825320945035327559026357023326331061648826417851729210612438575264469305244380593574344745863097341233354398115731939148013598760894676190166252043103050816070753913064849307105484106432444031176702626410519862276808597583272489813422307717328362174232658146753506212771224990978633164000209530947809943492707970859846369239290398401501524854443338977925423163434319435778250193951131488957645767841223353342034043357943116319882412222639232366500690172847307421890803797271282149231648782710022895984188873896064069053554586870384800422721425661746856325114226672665314259099680503965781512992275494880233496246942512471045540488004517435110943868700596119741321469257415497210412877312288598814864458937981949472623407987911870619505037834736250207885758736825121259769439613678087447890959880361184740943451910559040605198669957444973153233518745019834792897684796005521953521639404265663669951006792437677024193594199849872122621975840513734034515956361214411011616711182366772532195639494405737045601866179488042241356007357242167129923201653787254181672078558499982814368636588190868788126082615780526468501233757950353282931376503869600159523502392780806319002024886600901677385260145326267064362842738944723624812900670190891318375276371752876654649654744053529459715777952600744808886600905219231563694680438313688257870360517981361072566131186445919330823319643008605644711758325094388380543808698220985262296494474222612625554047069100458181020876890939244937269612107811021232623403674301223351842191041727164909054032241664259083382356726043574416513839039023292014902672774938377566331882363398115683824020674743355603294531419110024841460267739343979808120208430538661016294448867757959830041976611633737549593009941418416241982236278401294639463284428783379831369530006283457007977126962030114117446552913865042057331352856516146148922820840997132665319470085901988982019509105502007436440278383599652366311150038986900879456260112857076163220266279390441059031851601125694111861541818323514225622985584156241576183030345516075813530177760540350115277504546405996316893835756247791662444056897358148074199303933402229125252726635035874356261487629626748303151504846585949466083038092570693377695128989758513594204870389056726523469534961113929739237455448626526296133874602692539916050036117962056624832803613736501362385924687437401875802077371688907478977674797933984525616064484571276523652167863359129594416331431996800407630469097781480070912817929870279815261640202162329537602760272651193917110071377014932580585021445188510030027258264283697213505633509800258465570725831925549566366759963584178569052949186382677029506464076083460914666943310163349994783124509807876592711467062505166521373754787755460707403808952242847936130741428520437906390139349336544858477543006389451008860253329263159934731660202642598575308421995469063643321456547208306068116580851327298223467777721287037326694247333886830111690198693239081128099509777384315142357334738019384473055338861354272114988899276541712236761515366636456339075423396717177338282441998006987561399307251686245456402526623070549472424804686844540190432845158281583990887084918185373935649905770330785336747294391855494052152272271321090406237099246635646978066052159564316782667927402903110143879915262558926924058574291710104360580766795451348625586049692335678993881901402329232394789508338900442049085354806095042588716003479825690226776148850854356685901905799528379050878767441474537558333434982428394652961594023740249346332218807684503222907037191588414888163188623454660523543311733103590084967445714336738913045640883349707473893054519171520943686778969128858901977243902563060071895903872654036152009949819542691727620539692679428492839210584980996819150536008341355801774849629774613531504147221552077169956462372174611213083133091961204678571551383332981332351993937897103989146565205050819355898065066055093144275515282465218608431781586795085500432459208422593001248244933713572626396488324717625384759895179044947907728933612921685624992047769493909825318940876150135042634127493661225189129629103130631890606495598727368859046976234646230165800556961213905408620688112625834315080217465432293046279825857790015352797947067625142292229874626933305170867831735564204574199336666810640495973013112033731840643555731862094896524023439082377363857792311629389425670155612886638002698890676589691749382784103406935712039749160113793342882190713619117861826709339647556305287604912889678060639132789825290436484156147093018501147577089126668552468003615766452904055340143513914832911387186071032932240197858223003827428316686282902798355809231153751957880815124644678453297710558836988175755091499255032908194953314521482510222569004711172788119632360346307927089548270813432440515138498616909802132462346061270398664106068613551204527785882996880921842142844675622540971563642215936564225846667872467997592971461594840376614576225393883522512746212710708289561515255790700384267652618299045897316139908925696134205664876228795549642033296091759093917590386687524623793199832846938546270217069656237255182621311139556197696804602088018850049784715099157417579416258159145576305847515733217612814720754548833493033424283459403089879063485087847161564430237799939290183472342429868031209888021874186761889677952744133383243469585587293515751022700718219497684097711358022936076073264327694881818833704235734585739202236622406743371814752491934606083235174296592825314048505078126428745460718745579535749739858608651202353703774107844022690793267755119261363718703229535057491810261269070880516561711106876637986967162512306854715152546008120696345776261194553457824438710898978787118679917437666226166539889969555941811358972444428591982647012488685935773372549982923143432937323471723736696238579787515628173099662684711176391193961065469597658499985309098520384157935563791341734035126201311652919138128709966022777169843851904240389033150581350900857524068829707094926676825971237307809929425644292003605846304019390349003107785327336391901482860437472817857543198579581997465451833232202839744519604491154864502684454420951591033879916066230952291032313712646459239212247981150456702162438026116738922971472817492042991390512647395248240357098494579198287012258282406536661571155090222173424575923674441301914733892148689838414977180467522608142749302479601699804350109712859595039984586521958642463785792781083042573846800042004215003630402136407823356584218037708116974562884158944735569132166599787555934799238990182612675165121638993205247122302615531433647132891324330810383575760127744319422606587178743564193803795218168059234049965546156651722215144776454570001632365929743242851739161250767566387084107305014144182837375854236881564241428203465598282439604075615403632003434487702299013221466239251392932832539412449569609714506647088332568189827805684892710065186449803525224167759029149874937672691756152515793761497906507117562037080882056650703398764304519398882258163086404481387436484647225613220652934997836420144791024171424330414489726205255300400001358021340407515076558190869201518559309724481796727770792128450548596216184461387646365699873358254013907430249121139955574191147371864434185523826734722484115689710687917044318608469014631606609273893011506730800795529452093164798863192341315647328781439218366626235971879690496051456618196227855065871464483685037017416353440905754063947146586673630026737188857581516505808654306733563900188938455177696065588407274752535952935148764824314533717096427590108199254706259991361627926984319581837052952349767714719917528415207306127944739093205978083412960370285429552798982895516898943390812952421478732820254414869226380577332836232775527216942361135420637700830431770366811451018331354172398670930101384226085473352670750713487887644712184028046154797033141413911764581071786057026284029467893013691917322210453781518862677985224753168423050824602770569913399166340198866127032991355124743736561133411014345856767384055737391900139549368905214702409427825947583663358708170445947902630595691185040730372551286918261936862478459481915335172142514147965985038183481429142660412686629935164802355787720981669291986080057654524023964659821298707204122898317383545708938420311104376687647682322710352372711538292233186191571733390388334553332235683284886008904023374350951020668971759993650174479728874186188637179902617030579695902112563226775874469042499702370567479868526193153121909978858010502981330897151850227368006668540349505659915284666953910361128847547500125341885781500813835753011752441668917851616979112369722755337509067543903657264467243948074966030504795130297393568442527803820957374545865987094543819642881731246096802944069714183494325275928859917294343420676837931794159687228800819517096869799490162395847186816800800790849796589052776090266017656933183300074549691993044019096542998572026951451482107997496054748827172932197433590283960746397070011663501919603362773203355002600925307516119809531231300304503468704271299725250927588209394616761354188924393944626727715386132917284181493619996213186003470566275956973797526774996918908140740683183590637433361881835892769346136204244438134556507671595677635055817411486412317762977037657068022575110044367173203740749918257985635903424283737639824827116749085878404825245314151054554103709290879988796906495929183330370176109594146104808190626464875841569763442286295710163154772046797810619440281492714212284601604163296369515626598479163288494372254266848207197795262987687169281537508661378180822857728618040556952100655347077213799015792754725689164274823276659281983487410587578059590878637098794117537792129760851863776330018807846676341121508091891334087055320524912290751457401948795032145462627859423139622793259615502362538553476446386440272822645464262409353342394203184166625397384468305940845929391216376267753155552765859635573910555316827461882089503775935777252871500650001206454544454375936712747911510665563283326622129620243348424653917833912936318260542888265340827817728099284767284270017501294651211921367097955454179982295462277102576342555539254164602056978008072129394591735182413034292471300702356815559277216939374217993672148510423924863432114207501361280459635795337891653428383025625266323312126081089757078858381449698905435832151687339236820807294929317518359946133327390978702726984304653834678811579030896015716355294061412188645229747119586988020245467179100852624481334396746301124301436353349708953494767428821070444325297171549932517917218882363469386643601252171352667860111844054253321597022409306924883195003247925886326640866893724034023697411941923004990037200973463549779185932916971236987053617074525163190416006991164830037963176684044957570389321188039355838635308905881079165676248686012578991703850157719329398234118597659694641085235528570492670999406796839526567270368094361388535145795959991173786269290133600365574684331377004789820665639382383123347512707273747897715626920249025234293180287850068354677712732175404034237665213726977809475842086138454021397678477299717085278950941402308577918817687156344686323035823368254450633884450909952953998853648520466033560969285629031559032830510310957008680629937448835478360635749151046872662383364721921904947885509237901207838376592092137378143950398303094895835015305731171871968525837693316874558604553609275340330009141438027308324083633196385285349838766531949542626439777088373158844384108169674024638897155890583223976890790289368269914156111872862347857750768558493675504384996170054810651858090161560717093172655636399868670251402014253476564135160114473286886602253219148389935594151381877067403870817233296351128965518569199697148698492230887287725860227590807560278752376581573834226568318569399791252231378951444291685556154605050575801955666760501963575620162375693818635407617123000233529027326534918624724919213242551866094342425118644972570942581319411811175980530652571124048663910614819854326016119323122737099469256033207972689422425907196232319721176404599047438715529526176515587921402009898964740502678584444650465370932560586101254604257287200023764351832084928721160339350422470883633221575395613026087410661099849615958035929337155022113140994665086358449699114571728751115050520011931140388629173133615460267243884143411875630614058617698273257978239715023291451490057407188466070789088565650513241615911769293269723580635071917542215843267966016778460190360893127358634330288032734121245616123003506316631912212941232589335375571806728738018572972469296467507821365081213935572374050110193162648069513212505088599803522853718562306616316694056353617382783928457063245422248348130491469570544267401194279225425181603466270029857653807550797419404896493147831696555268698812575323310030988845164108981451367008240016846832997939623518450497779868582794595118911939238748792766576036393262218509112299376126851060631312075963467822663037954431074461446138343573606244567826138756229681888555724464910742167987319654567402563907366133819358189703775125594274130606691587210000342030585545438491813348303326950474861922189142319347993977705845597593534884554817498696986472188650860201932630063630860641586403605188513783292793738703255326945410875935857927082834555475586048691447997463920527902261565944046702740940102087585725955779545808455746636154332936886742548053623938547835132665442100839549952994325154112273439227244702827631799658988550108808505529089397694940385897643309782047548121831779216122298721816159016482852252436637840953436267757018923282153085458395308619249210203416668453934191458152428760802145757644046085556104401643618215600064218896182072452614967529313098163941658598580052471428973002875942388421803437751517274164045142101894220544584011534950708099751569149062265810702014546489707741432619960323603733562878933290533052903841448596829530367314577292957125309125864859599115013917588528967286861827431949366322681835990311480676068658362819675086442228481858919861596114374561027160248319260732628609705130315445151526513481722691941995406622455612182701942458139972999414881824331042718230084304967630704836084542865995583719472014173166586244848759265435521707393426431959118563218394325321833653086466495460506536854235919542322699139273248626182103218071866693028156500963909844043859095141503632662061421520838548349744212345886545475544443535015147932807613719117876569376456616673991907161129591493858138345213376080819649475732104409001150820312943710994258814821945683764627341509064126094453676588095933692594556373273812786797118766467191051652079267674526337634567737844873111738262249357362166707832022364028112619460676982496351275259213583544657908717192760355352529067027835682800620346286142298444271246295569739942910287914807620677257789223617439343624620079698074545197970176145772127766187836365885397610890390824091447413725113556398223022422679536394832549049013175827057800282959829571049435944250891791497890411824547108149211612500777641951662474096887916871016280902560477631805803526719529843930267282713602165993944094937941045966512949146079544688449363096842522974064359850083401510993830404723381145680908796484607888863041105815414021278495708401620492785309619077504351930436239444468735719409254072408943467929244914317499558195765888305472140811571091506733245750046859247714009053708626232393638478654966703561041154924296301725288243872009080452421958322087445527247208532107003887326456983041945109136476557788732496711340089854727475495655630138858317113673598793059183483086578585626729456180035424374418103815786756725072265693485094440832710939197930387717291023702108259275465946662088864223533547472556152905654618861086894296718774707471429186718398992463901299210972141580465966555499962892432187847726149995192352917565084682162244664665175400144832635459550316093750539908380707157372245117777361534510693555182241088427878670074417953311167091511155870012311220137742743521979442457867941628764699189752754169986854836578898665336131986091561617488651310422821474815217553875762081942762960855969866619963572231242795237988771626884917383943454956987313548123031989705822800771412549066466457168562700637932462408049246928054384274335807742412944067083026634140132478110015995077237118119619441595763770422866778175544318482038935471102003852848514719973513923028941039179318649533874500579765871661385919894891224238403792189685682643439846974452579205089007201235511330500118706639760225629535007796968809173642468194133816867021869375463596744639614654691278423310077769736650891121829032641098069796723094803543101688790297264440643268382017945993943606775914684525067163419146311573696201268815650672290981581087203758116116354929846226063578892632290085270117838375745334227302878731124357450296612161754658206673461529819678691519574554054030239584222290212316162476570002035164109854041932217381594575648920795676578299467871532242700030705186978787437413173694279347902859913198529238114626102891943952038233337828099366765391234153154582908632317427325772835316064379534084175190999319083655200426667985180930768015290677212177703828088444289499764849872748650455694736856060738408136574421629317879109612502661608436528959712327512230978326390139501638302055532673329001689344402722989755156731767191902869933096791092948640176183649619166138572112213801738899133997112534240242426842853108913750648403775433948662924389308920055068179531541058134046936923328808424695134127313110422012823629856471206581815531845554191336613046725349212127383075875723466531113657903363003459601612505398861261574583803023786673919164576304851769496649383263613222511395438262642591261648584490571711865581880044086705958655583164113670769878491201487372253880642638671812655279189283976926694152270972086565516245506666534291635138619483843145994370860869897309714517422778334649835581598108700963571842125293848209875720410929752031453533937760181162976305379048312151971066979143491668936683656832597195921903644230392799510854913022413932172654929999792997112665921114840909779325425876109735476509048129136562325147595174857410609073572321665871023199728910145669186323519444184741675036485465316671123680570295157964307396517071797105799337555628585778946771800897682007885291524617240089684087438195857420885023113828837091339282292715005732436534388350300199434385803225781794439828785008056603291816911819440123726356410219747076861381099589325188928968817189595132589567783919155452548796857354961293501771516444395993210575438739031062573429566155745677652442409230108397531506940791935072069864395560163695112831782065684944648640580063447465039557015120211345828926738463457351636086914668332394400462176672553112336901851166542138349823699436550355134944442243019556194131586471063121410327903935073444084303612406143266957948166679237386413041075716251503278967878703217962140784185115339322104142972176231758584002355787497009143745203655687833725820929493775380215549430954198856386812825690097241775252078202391775907397864236813318451384816664966093165449297007633439054062065937464391596576791169869027880797133250408491539964629016735909812404738560107086569305661855262837554580579558180508329998199313849352639589766218985987334444676644887928316035513885308343734596874944910182019864662092013560658231098525034550596481312600666268220665618503954048527192003804001969243066761316464144471987076667622622754970320672634023338623286936059163364758904685953108227838942627480311576218795128663568371868827235285066390146889859852211901345951023227994327720034857255588347973619087745027601075246273662225787182302815843079458543050533050070036723319077417480476062682638279285213252870283018156962809555623359159659126758256241349333820810501813535947390070086968823799928466603567359653994696717340630342301491985853220877896736102567769800172569748830522290552351607370809776548760189702443695194389759947175620861799058487208748304250311152258064576805143230157349348609226175607370208363099664372266437349765520055135102607056996572744877306381817023460357895611151441001798560231435779586357126429021044866214150336913406842931294243241862306285585122728780636226765713826250675996092625232495469522778816404359841183082888086948807350010332395244473315636091735749051771334507662207033468360970772082377498412593665784659289291125524579966931554256900870702013243215614181531375321532226580967228003287579199153476919747142426024864651917243321956971926326248504811780592237722180954984800180668685266646626081700211052836566579850168258145122775680972709105269172783340503857162817508553114673154022121813483743444655756855553690887394982340178712509859917851119965069540539752892080144439023427776782259306896031184458794788822059509341063268118310372310996060081528428810940993429435291863118951316298197921494966268291437559734189852465851448878348240830698932487797175640749319850155965048830043908262843543199079514846775325692249180105163937089139861294077256238598151872896278169258933694417854068927245424952902670414144136504408212988785393680956884395455310605165360008012743589254204897556599024373604902868052794892343267256727033150915882505895774584861084271403379905203967530428290901204716975270502698612620162080276849101413388692961511161109525655470278129586246965408181835381262868484673456818197252274247966407087919655530981468397890744030871680051891008652062372766115093336453516052847947496664584488971635478513788942084801119613546036306985309832194951914969212177547986363094376755406030772620589279520727564531685996430433891854244627378952150962623148119451332531897315799808338000734750432545032263841329258375001159377450840482474905070799195243769922363872530557319084089698460586553453957266403574424880244765380939694695838789712024879252784002910588305581940140615792733487970721734913765111868595713948567923690819077641821200544957823090443795995392476444147705442968110072071051720306759859362929282036093803603163479654451704651851261509818073046290134665472459784680468952648564717723118669558848273738082949942777034533133195945160949335560060015475537197099905025413897492631211748331043589577861889499928219440127450241330933493936758701683821925438801200256465984565928425502762918957926438853594937089615698625389811061773148056216647250667389873275681791893820454617906678367530878859032879745207034045614088067092739242294811998635850303869559793227520430604773005017492243493906931126541283921578266905714573741450728787567422222946219585465313882314976173712955332245926969544792390675363133639061859060341953987199868071663445145886304033086720788349807652914439488098307492225869467943403278322307291405341789935069300989944192676180554438586307654362691727427132139031916465801353047529001442511298327587037038298805280196108246489611460184507585656508304506078100794105661469881853525410861955057443924599677403686780416247344835613513370116623521515714732335615406884592589285589648578458511822471739032684623910411643763659593948185041024714646795208935342776702121285660318485236776359867527573441204876820969517265576804247050254574591518122846103920396321138395636455879239176559434704339293479525429330181920612028739572622674342837996188285432139659504939571376146304006874226819581311328350467793761800153142805369444363971614402403444523047357638648721068285594068317748261876378816118520937595541543927932254886603581988043494864347833767737767816692507533208035197548800941519416058293423873424062972254486941024408473149780676154282085046364214897064771259725015693543460306521479272653601447461110049904717959793598218640857977037510573871098918272138438049936669276026281058912031707928563203740334120810828569496154511822602730291529777810102395262780768650176063456160663553167904462363891301518700502142631875513580930320897051348798493257931232414522286337475858645194478931181432044030732318458474408937251136608740588096485453197227731551221813978483399442816556035243623730420894532474685976197217147197868198928962128318921698814777410547348819937049367876027152302588151769199379846276490788302772712516231223299808371498640021431264867766874523163005793766816450580634212154264595621013463026096625079369551663217100281893505975091964509298495160265405173553781094853139094197959535051966314186696352760841735530287577078434142638784465491844073717043297357703292877668085097689634260550739951099196807429590870372649968893130151941823477618945466003840437869338574852590127320847617244111215481164149512978437280499673436219943074195876462324271890479120891260814092103863515304526621874436180165420566821831560511427470528194738592055465625510239501546826993454290030911275930848217201352320206004167161240598659015084415588580249002553926282721817335636257507594946731421679156279200634588637589033925691367053801123457255914488749966004486573934283951570090417479418259665146487850397077025113694488201040280494632169629582810463244072389894166661983699642796885245904751305487829461727086549566300312806409147629877378614048884139235229002767704202724551137635663929719754204794891132931061815536116614223708596533570483271327330248082180583336885134994759637845180632840343066958954875173963850503467440985665548733895047787797509330780890193606954374980790795120158795202999376789867054691989888998957826789105262577930142010547524396853659909142853653889372065626455973897366492150016174380716526164677421985344642884936080494668058119903716787884499921087446955899477064044449829948243415703911580626783780733188104981038273721303232748515277480001090605971916066313601472227652412158506607651469730958316357039167434850065034571443740084826690418204431711952573822483480125118824046043681579075095462547958773470555071801246780180102741421158275930719751926327626856328549543042053067456835955248319630677529597193897745980984502403807970785856226553844511394801691379417550436028616965895255632632748063195944916744593921132606685628799596949588756896954817883952202236528686026686883907700853242123961040682819855275096661271865524216337127980567677554769941877816413074724985902502095426373891453339158051029311087752022039171233828388353454830593363721906920499821785375178113022348270957253123440863843998058742465942973700453485541389162844764976391556212852209825757277437298251845374672898645231935482267279567602588539247166091503037696260764164170913123631360943520438214753571862978535159233215728636841418808476508882378574200713800671848033767223789157699674433743171258093002316152933732805009760595254614600312398188526163995009899829965339733887500524683795377466591811943510484594832443056053192240397039299658349891949720495127847906376183817484474155943770021568656740483741220041069767145316242862673820539068093698801128955270342462840733191424096614874354991915720497742567664290825442718454276650288245539103035750617028486639818062613962204469219764752247812326845209332773252759663165401843954979715568749117297064265054729701006720056235818548589847683276620089471238782023040856624533392454741436960055275505796670212731468151666610495186193586410434447523791945342440455352168528826438367671407395057211605551236175233969954329047456121038307679403013232963012040677974817426627533714426628809839172770894791361359189174398064247395781734209390517034578753903214417366844747154135908408478112229943105928836855544189510133555168852569262799263287896694682611362077320741861682042443329582861077903213166669528733739440615083165528945153449658653226019344966999312426529893321832444071940589681895724172943668671029339819249554715095417079426872334013863585535789137006918319991774251840484932376666572140945525695783876369578508731234719033267089798977735641135123653818316938042955654869480088843111776347687820621203412994230710852052725138570706183189371621723055930817408180681679130843569589153238678962071155123783942502095923383949291192917632835754818684989540064040685989379994007873431614976261819214011882213362137304883049204419957362797539149322541324779703502631647762783750765826760989343976324788691602343107672740235835887213679951826624901346804702566332969778802930196424830229930278959503836260102379993072128314434443736653334291211901656754609325840698605188017981506627603391002370415335780473188495295394437469650273255556827767362948632843325551783399443516433257553973908993393803226286623817790409081155806115328625382888403594704907828826561714831812094891022417473179885246393738665041760215187874046981638673346726642970339172145580561545703202249442633274897548741350385226006986821883461283306025010749470237888084562574788921764209768891439237725643650815959409725395643586538735010332345836295678045052905689274985276554586055846866042101330692606813298856360095949872313393798072873083632130801866450577908684138254917772879956008618060950123358881398463753306832166089051082352323589927866630391448778775718793032149060196077158881332714520200730844097113637158891997966438149087757389128142253246195240879543212818402873703142305913163467887863098712320678950614619120765782102194877680830425112933838279653885527850173937959288195472094520801111921679940038935592669168794022541315706646869177733127406790995147722118688418035636026963801845268366656961315975484885121833169014049808454622850922403707342568309927404607565080853651091205863056235833889294226006978508385700921886957864329722464920623919412147538645145215884255021953836178358533605192023282814486234984987926039254765258361872400235337994420199143261791478250655128778738402442193060050711719119896940433674840389320564676660821353829708631248416068890472422683159603162574163065560434006002272767846632431234131684552622911058978551822301773240164309045953143461541294219083496418187327443446921882040361978538792260293908027947723338365956392915606079345763197570792147860220593667380355657975139737441407597930822790852459923861526481857674807362792427812029745642885445425268826602951339271765795787368434739564255266164618096103762404008269662290753717773073461758256434138708221725556684065743807673793745952791937247220392700829304446151223580700572898134917684088631566681169736072484708659889519805593949981564370456129716792151744649840079706746558861126686562116747794147800770121885115922519005632543463639577792470725610061182666472828808234710528721596487769036275931272638453007587470363015643774899502657986056511698050087220072904722589727985342508548747142703779281455738924831622382696028580149162805153849849520534005824745492546253718082317806434170139747571419687451514332313849562149983012428463633952525927805759644570538838618570696660446287534877055288827084462549569701185327432756847856362970724527417288388475794732278982541084394061314273981870780602144501151810045679597617941302972393891998902477443110859713457576759557770897598433080584237968692800362045521361624218549862841827571050716507799848838783902844379435740249348247272556221246069393201667588731345268682534006959222298697785193928101333037159566629524148637483663079832197866007272287726903755588497454430768450657860905710599520770558337047743315668209398964401443914077684637571346212367184788089737620116368987244166045697376605333003392127018243239650133685306282302745822826541014452406143220868479092142723327134180486223836256293019547174902221795996078028919577511309737238181138110868598501070960246758850958687186662507251749981813628917938775345896706477700571330825084365435699565687602832497714740124486427866953201884990200745155813576015168942736848263319873345256151697861753460760908697425808802371699577408533294530507559574825065018623103780221204827363535466519025327092758614877964998643205940224151771497353153823771460976290234597150998345800653871797937170349508586467801938244720753603639932738095313842326019618669341186296414561089537488624644491677668945590007906377105030574273057426309250690266047538604385226351014167448207938022393066344749602262975090574115353695122554544807411093471039576974233395302672272987448190670559011100907459006215584496870985249361247488279354754035556547342857071736359362204828680774629929587743751912370267349414711046759298859575767067928116491475018357668766920522494948381479747390367925629561917921112195010151375247074084158443529704655927868930715516609264604778553746653249057623552087604388255166817754627832762947063997704089087228726927648506507216494033386711098854138716818843859197792093028998133014314419742959597508220285794696188328457942809095100609033500660306525536553687787725856519684552455923702875021620259193805159721914950529251700985042850767536548598497517361354289153393413368030045158108128322695340491805846610275629122421417808047259173168155934289312020487037414930496565381145658487101780719671906924061375559410798801659232978554148020497434215353248660068815948398111484122680078047103418907325096342366624715403792971150552121134399496779659818108922853314321758383135777218469426244111403718741287261780140124332062595343717632539903116975230197873251948456289409429113864129028533336471654881431526192278918265375788182511361865195671682032675770490097100014123550139120726611173351638925453176932996906820621558385257726740556014643812780155828185839147008780299852112474549511732585328086115689685147094775859667774891479032362762475424679040839020552468670011402911145344387188916259873076512007654525363797243601713490427262887386598797591238188099439737074882771336183424096520645111265238314978123880150132876342133092401507634069902804012719472564227211101404724144576021165537403686511803723817165017144023861128160127723009233775593873144019051293230967425421964515776159890388189081762637504427283351307785129915859580150513341198926093350986637841696568366540721756485086212983026634590785934823921577545443321350997336884261887105697703722566721604671045693341769409819467063509129467562601433635317196830404775419180170537318255409411806531439205392404191171012627325433230867939189558532159772763225218067232374867586164736523732979159882935473714975347853049449175771093409911443550918274362835109210557011553871568624486465713494572925816136511723888579664777455284053060135044308976033866157743563583815400762101906167574517451015709565987764187088275616920273919696527530682796697311932790606223589928397641792266777837885543016495027572846436514391820358479312715539628374477240121294605087429055296454203108597811698526414765158026083934889381911720750508826035635631757064123776263219774098048938025029967710411707445982027713878028763004011898732845682416473370353970134524182051124662401403636248562173597435347802289499800554470926931552104737861421779504935428851591020781656074845435261891830479296253756086722980842986706669418929772405525761312643152145881049940497098403109679684059358210379182866003360014822221379896309817970000875139322570284061452528471308430802840746016795930082603419507617334716493175192619622209031965162108334012552298349719555033603066117249161098764429699142888718885756468440786358902765897863657932944238283822844001423480076643967230381949753683094344682086017165884764856528519550434058402997747580822038930848731877469160229729724452353080472996270308795127748837763024628177807517836434964052632804200689933115887731855990627368729853652291623527355347347756312781065518367676146849931484951257666993335808663865393957737727965629669151012311379638357870110499876978396625818793118328564759172220629248509814729323964951598669625963631518480926226952846062144676525486402054260379839666334408212134496031578104688471286917790507179106825199769075252793909175050163605984687451534364169556585490601065351046574352602158479320356330635948385489665721464995691491902735868186522309045216570685232134988734390008846408049937257105516278172458140217602817000498640415770096421029813801918515808875844990891020792996735432588519263550449111681834278124085592223818931359756659047722083011139596536183308330873924603946715424412754642022898398074989683662550376602998693413980116980793167333138770708425229608771720690728891892282329744988969780201039712650272918928443873843002976833719572293998449729617894191163391754709220093118148683947612213387963598441828216833342115469418799197318205382070407603487933823705698219547057562844740503891365184866695024073983701501543753320667452281299027981591697869054419095596613532695751634562606524287091716763633060903961253858889713728126874250886640314077236381052418961621039347964171455347758346828659098260351615752608773653364179265299376485321514465653796189734489493291950690207945690255559148067864867692511673002521514205509090084171922254815555591968636720205262821866140972714550321384787703023441161715949188541665300379666369099493483125098249460771345115297123926171851625169246997833063572145381837595400731401990958697107011483043481010267248217061202804001626132320512313584404552165543168923280718661635246528593065473825226153585887206636445892591332927594984954544557854812645562053022395000630475694792929756437206854267541464664620141231903782218874980784435388108685238440406189394475674561417556133320522388196422782952976046046904590778852243385548686875305885199269269098859843061612433192344123367464339914917877481155296844777488256065182469235885346251613162961274109845058026518097139117930211317864549456240019519338601749095084141029129101189537005058572961685455459268894883392725340209205155559606670495508030252232706116883115966931532587926050620706241590992211113376146635872192739513381412390129724447820989098215818124274569161217299444347904813949121821522927986454654824310327963176487296499924750305261520156292409385271737480221131201995219195601216669742610313821655770759404369179235249066766258630445605850787032479991485431035171776467355312855743196975972567371580516473901551356531074546029118174113222993858968170673657511936586877079629863311120460259659787027518347307774384394372401150813851134886824813605981216813787132213099491249873544955768123156561142305081218024413111874080505280305926426503249601149408289863617141576486160680135112739035906249747345055427538841403114522202251197058384641476243833224556360115660066990564601076399514152610988150340532697536126639214888323257050064120900662229242977305555061086650294915348740803293867897234065018265943999683402699317731031126805685911192243227765011621640665560910678799266570235651253901491807311141803889774988813973127674069586471394640302887997657175347626604196006114850609311089900436266179360795513027232465902135369897890691163304374148181736363268397630496776317092338189152797890424420042056608159626583914021283357498087031452673995582453428544964828137321564235332253233363903968374326908488514607501263113852494542026392938795712000010486947833019389206972843332253241480765861851234929892633277076865099184480461431535569799609699420248579270396055426325164838309677303378877227445470647038627061035268838329529785446889894280417065449494738630075930939916138880406050689039700807943768535492645063322837804999238920477143273272808865383384082418404994759251275413116220253653641652815510570303743554859617781607666606812981820335621984403799870252529767119043390244740191448580587287155916119751865047363073158003086171510764541305717093840816588710993689238372525567728077469236049707013030633337357991053112613669343058639277560176563950889886994491281230177912793330559402231544696464795113461642016612472059250201354783111074297577105125234165799049571672303841857732546666677960174737823102456033080107782287132712017361087383603956317045086139634285102541811126607867685147316008717361616239666580819358128385001164162832420657883944411923852108667899372615143135592292820427361877753139438244939688012814481061095776995520103346142739614946313387637800027980243061940719861529436218201894625089490776410528392714290667238888377811927412128011636960724600300704062270727786719379392958832068092405439269498062014133734087096196329434992421471137642798707717466451719199702939956456353775086844393595331557897602382727244413548438755817978880364036157908302939866259514144948165761629378795650707702533908655491905646316290598038897290248063711532431413939778789392580030109414375439903269796882832071539122499183339991293241581812892048685204471662204514954172073945649080174779789289431555463858410337814250926152331774031135131841861213717236727635206953411181083403756527021055629140552828546122878979178028648052700516836302933703694964694868682923546258141638100757340340387703738362238152433351798490871948981090867540548326256282387506160664019268734285582691628481724398461942402723212403366785360680846217545959266589054183015393113249264292520676350742613266912962278978259583943209213710963967583586601082543201575754510224816435323242672880092819210391803932641408740640700729839797118730443099334400051616644205102136679455472178568080427264649635434637985479991355777284488985990505238183075624019999562409171231078267171647332322545978547679061759780398241983297313920569903230136382220145513066505230638150216106321044857463247268092341837736223377503632194222095611161312090291162550812962831800178034015873130867863367382949592826318663798990404332015155141661425547634907586169017338862680193545559594602613980927708091841691704021859418069796270864514593244714493244952384379610267075240933195876365492574131087859116353263095261182911567265524261382454433762681232924254230068776347702329663184010880404414573476881674808333246337073289244596143618064147617498840340689083377131594661540198006521478869230826599080621866500248834381323753060540734890199702931833711934439992994633782939378351487987538038739471095016589589387503368718955029234092805324150704309683716323125662706117348619712336094208159255626352113676541951003938855695252509096623979119606288111065915694213551153859592916673226341411933519878312101141604472765692578709891293444730404566426529937614299164499831985664865892159407814150197420702182089400413430739723955844977748323908348010296206059883573547712181759715514322436902271363053773774340994358986505856105836860625574529207227739740715038687162023601929253091410089631168682872066194177336621725479506534147459851453042471188596820509717204588042504589632370840342885111700739316585072500953107405979759000147369338209133217592845745910119183866645473358983907732286512931291905464155459177809840454410897922336976117872716068686642728639139034939146885117764159757755223584494254893555079835726993999455654840315010494659144576551746035721059678426398127473569412704840109918610620398649845096509544058090757966384598426197665451632985951044682312096868794883135631595909710695724275654981180805378477902344148236128133510799034222381057884882184684407478158184985434928072053526290593976751239868477014309424818191557031815819350064059149620488795053066175273094511514919420651844304141667670218356556168463644667657122476449332980016033882687751874353607436386004085915943492113638092225690236142253530400244935015948282800241643147012589199658744514528518440222519000165450646407429914682777735618173860353359540099961300633298607373097444517766576018234319070245337417207547406863410188305167243000587452844709580448141056885540559801169211501827202877592520601084546680187071405863744346759323146679423106336232966303071124304186323937120481593525109110650221025281072260668114256236343338329157687976565270959611524269334783393664145961338207801095361355597674386798945535543381515942325698396248648210057533933198079131181305283139291583026864323792593878592120847200220938992960412921615012936585617169311035683346817963563507348101293003850268724993058890797939321500801366733927496979131418133698764894812376222033105733589855582335279039153694040413655993942405183237210583501684920687058977739719644773072854903581350623082042559863128667362127497856313428912402154905825638795555775452579231417124372492470092080053494573453812999355234406465785532906072378933425009456927905140213754713400344232037998916148813063679319128484821049878993193898032270234098925023668287544820381471284160903211810402355081052523316963776249767214613068968357677879763634041608359650014175059593066471695704116043818615513177739294587461153098500886153053140059225638043121482709478507000854474408291649924577481208691643841547962432834393495956846334615298383172232890668338405806540652148159100449791595489146450983676648513092410420712699693193075399857722538948049530576092776326684555349190489354787002651407724489547176154608415259298438900374676226277278652374503000647963023026493827868041949105620337834034186370561932864512121100928536364833355608388315154003223891898189445451917602638436520594918920309239946175705062589115976660069857659097227501726497725247024906840651975065660100312635151116997124060237145114332471920877377439378301625207787127035537744630868708210399569312236084001155197788889694259455025187038725439716570544557273726592160314348682033054426290157721227253430401795423287158291463322878022532363431287409534038236465409721492789638348813873221788127139313366809868010384627745210018450845022194735318925260088846705656612897185528914374916049121914504593106980462205995148481475209743987361345140886711835049722309162852433796091922601292632452214284536931271179956999027122728239730684947712644206667295390075532550148866872250085346101239108584892609993539243424274685189649180655556499165373847270563928617757680843471873736812965693699783844420385708848300878682855448009883079934531320351783720074415868428997124939627714659232502177169092042978770725118500407779133514774362032441147118475983401710907518005491454490913307446340275210536795108402271165841944878929293105228334592913842890690476869387417811287009772747681364946525929313254159567284281620548538387234562797476036986853029701814608607230943247446211923546119656769224983655605715649161132027051566949808959225194522282257254008400219015052431818222022807698074265599157076138037937077393270617883143799785554044441975344991826102850234787034114508144684538857718736408703418561745138243258577143118059706189938022082750139487460191228937174495193463289459770420070572819882126174625088276681018373684725490228823936181947725703213038119059759493080649147799611667536543339696517226141152953035726553086954689507349848616098972009665654640460143951500575014192826379578879810423661760128411529260406058740020866449418947739626906821142419852310354220092838592084086099178320139135200752526868672115730298101711873340813333257740560807269200875256621121292884667546088410152516832569319010288541140360202895302968644858357051867728632686637911970481997327811767765428517489367355597642965950651713066114106169127156136945804633464759044852511069268200337688380005862785487607945159882867399456749454568878898326004355160697837040975195744290375747802438486322926824705601059159532115607945716882591859244334470356423349225529168662331884665378399442200880494839381724402219248293955884068914185044338815302668726459634632210275618865088778861578072962868746193684722565672955427126364325711841981818286491250201056471059842410625264674070847442375908025188321137972149693793457414435603692706108511550472274487014292736362540963993815069211649003093415293817626470693177119865264198760557672006362120716809057484299416303140087536906920256840074970059668319895659276797648976698803244171936042032814990779768146010291776375914290759688420670517272206453095959986632563830064192314932565967113176583944061239106984700862809914810855004319405579048140609557406065302731518437025122173231359093062640106885223143551984242662720949994130816324129654576941213996480644627174627949046646410397782296721916497080372784586657762518877788124131481638308026789754091492933525239991953462747842570807162487153807858680519327017410078927967275337693144878491781269189902469233464792163032930774387134425491269800179403253355434343709239462024659463879988825552029261545773654640908440541529845884304931154143364561318628017343259335161247749839256129231905241194412549191236143998443559274829820260123514961537809096560131325061714132693347160903472020148434964861234825213875242301349022656627114991583170316759382715673114383291136222682331114493263495770656703579864657459891297598725023630810949791928519125758004714474061679048807991638892980058379270129056231685110671833379699935675860415198628458238765928265339859627854004265744986965253167813513094914893532406949737314703224738584908317307626957018354570795652632862088129832674814448435760597425838147564078499323663270864070166363352989648960111267166307993554545960219082699147121733969386833037223333765010102963500117302307549692402846126574013488687187400435236041392786453994632395460541346021054894268724574293419086532107963534293283005162427501163054408395598710510869019642675826970500827500017091294392860429166018009112315220740249932260086348735274539039312671763719998652531356216164613861606202847159652540300103622251928516026200686531049561453521710939623655899389572164045492528865162735831881756148051428183937285046746973527811908650017061236682449438515614875246399726864732875877377331656749371371383395937583919346426509129407486348961490381075178147196868968333099152252740655969903227233162340522647672450671329357769258259436182582925908857326285501883689923316456976062179557441626144918659430071621999982512822768858441880646719385985161346470637318060782612718932694030325510525576482364582008041125169738788243186969460659732504999364250762557133292526921388867873067672320903119771420642717522421010145854004214985270214905169881622871559493195517334738171662507882803780231746548121353167064661983383274483596123398772123169234901819856261310602901536179586395369961960834369584746370030071863045951761493800522377317719152770572472715238026231096461983526660053501164978806197926544600383483658478477378633350492147703789066831570930042626723441368330764159429430716891088850317398349844300293995998375123810815095088278994866269058211983854644203298140986754997151927640914225150761037443500249314320998337947232643724979245660630276653120444070231767619271229744198020610572729202886027470151231229273916850760895061150685282718947671517789285256430259374924498860323993552491348346252893785769138901963589745105117924051273589721257304503872839177782443168771919211827817998261985852489104529106478800488028276952099448443372651120260821476469581448047699770706263821593902698980279724566419450401694687701422800724275513657408200387581057358183823814629466321998197373433627561598440580440919532389697117277945504118508516768853761598050262553118152535133094901373791409379836802430921795838159863858008851345944077330546731355872998834898875269362816663946305059395936680717797109427410099838219309944673291820100960829631517802752506769873304819422581605526983935044256040446435756911657999615262237981314103948714290446994016551881061505992718132335218630503712778630355006318886689605327682113757397009028405622890670122764908468630604300520588117295634699690666126218230450969759736124586662910201716210573404887847903320855443190023811024750439688427174099426717292083121579068601796145099441232284461613989634559361979377538205584845167974543721022347759512734940792743873244763235166303718334054572079575001534708449126223450584318885699933941742509741270669059786196110022960614991669329263229684365097866052109000832634956851204792214904998254926062180142438059544608642174340646585396655061237113340150269745011307467535879673867244854021333200646457259375143620776316889635320287481276025999770051068028687709537224776154497967903057716239924226369188395990314150129046458349614893961417130636502782204831158489085194203025812219816555792768845427131038360566445987498626893594781238930544068559052238181235898337112643949096929531424161194476965162880423768048048653340321742948847855750852213012341817485442281491667489967770347630246994125930364814265955903756051108937603374025857196927787008578766766281343068217856516605290809436905772616185815433640281968108196049367306660802307919410226580818755672785754705286224019861957946019539580610104358427046783892323522100467770284244123614458537813644476710034923175971165192047873475324993850446861672068112434724288816959585335270936219972340832150308081935841734958385535223696293049613211738752249818187042485388361109292458354446666350810141960860848662269119072829986094435354964775518857671987555831934998610648343981826618942476899323576596632793913894453879298158635307973066611320401356151424569669868442535464681150570144406393486119296218633472015765536248336511759607562619445110623911972991760749667385770366513871610486267736068263772899176964382015587074301153373441617451586095356217731259392162614084494637613140555434358812017388189293633243122301167260141036103941293560854847391994558220081985097654823659382075523734577208615409788495190014557676011452231614195152548641897127207492763015387320982285956068307010443489539124243712041491016728707280744315179308160972832370274346728707958540645837012628506294544942035290773306437657893497225032362806694317349264516795445682046547897604436829910962232853900768682620608507274282203051380903071459429132148267926276346526870911370965062942355549193764361607495144912378647346944125839303344466329890276603182160458074792811089479518595423136947015342568876083869352829673689062700741493727808586600596201208361327874217430056561543134028503477498868933150115156900032698275638834754693022802292956530138258041233849813448618779964819318253297387964708868000249618711210729137646343794216783567351353793383210228838756507084013062725434953561952193289099794342587666736250925190232835483571864997864648028871187619155618402546511179945174656501456666517779563678065216216871804036054077635269435730540173691143369305163146630073527134508517909638525866700403593511915332442903769984401465245403261022144335608288004042748272890483132689330137455354460431610935571910940322479600825859513142466349510698285341542072462557590817138448627259532148553233025305281325861535010901246399836993049767635642504257429381466457711130537110163741719805173762483329031012144894099332070498813049018927225918636246680113006876643991165344133866648803968031270598753347294778262089167112177013134531391028337169902633722812649238781847410282373665118788788021372672919347776281152146456793823263382421595112108486876012839719870059353708195027104541742655544572807933590230080198529883634159095161663196488107289437140201882851386722893595882330888216825493756451394215648103251862090011589745650349799027743108452184810785217408828885326644012314739090807847053220589526557432661434682997187588770940507382239880724697275669612106770011412171813011369408648865782696832787920377857350955092102521724417245330729890957321099826983153853383345086207173209607226493947668412433237092744531530375965144451128265136558118700997329236170529447275075729161036909981828991775400816659922597044731319909067637054240591501994817346911456094589311979632500813821108822385858905155129452530623504200670144992706856915249501520005141252894812205443252331180243960442331154850537055503182313085714070085370415246369596957691406173499343684832962810899093195157934818187693758654836853535204704242809050509344534259478896829228919941392352903554265846483518235474170306919627061504994960871706058202651394563495231925727493688044853839828827280867588685198649446916914886123944693086200179326414040981450126484884821663598993061504636401737241076025303924512038956226536101431363350365820029631966045820010787776979293352252580935930085525888819689451506456547452311776433523370603954195648184849335027192690446364116821745918874683307712030934247316888850130138128905406588895694785594235260547868395265725509654348394392360590050742855036592047894000489765091554592954703441367080165809963432361579805986448954843412269640353545623215126681430652885153635769330960637683349455039872738442182291349908407119913598724036772920467953468307800129352007838854237388074030749599199536906805119984083220457837974654931299202301924851578266260899714657561308253515126386103517554763162692149605858966915813644344078726619711549429327072039467500332403236617293214305732395994022784288960289795435430395748065134115564278979706516405853645993277016842052180579355055929724793780537130180289285154184074775402382013750647384582993431145165765308948977405020849722381704783955126782730324642150827244210547304772322492522187200638099843762496433961806819172071237396485540535206938110562460394031993625275721774291688827051969497320761117566926612359324406231713648316063497819510576309543559257492185214493310167124142483047898056569547653588038958883241806771365574140192839673353336985711135510518960339689781400973163879703323897434936368486224685940384864244785140925681782458253066222293623372950464728601073498781939185061528445974070328190762645229589843331092381043917128585857744681833003015163777723619547295944494112594726367825210690726956575443516401548559304224087583011252796059086011852050700162592033593427813131799477192842348205405756195259723163717244646084076451608395497532296352235285727939757332776148088880248137580085614624875792402266641593844978442030782754718284540546882851308701072637573849615312494144942376948119785799593486293491064003104535366045464242450563976698556839817160270445627025898751720487305851000867133399705681968296476943084395993198322563097409413168578072990589528901590957867444967148424871503362336099990094707595339400311247164055972033639555199097927121177506985102802557104824373211209536290567114771375242803085452146989684152256050914864220384831325784352076868253666359636921509670854422470372370146508015067265807971065916627681882659805532808475929265325843702319927077293822612610630383828664214431025490751415487739425643708050860442031475240205389368877190840567795393974138344915482983850595225250891481968655131594335347999404421766575224632132833181007062700790690061851524128033878387255935531160285623800702052779249706882786659949126404964651534219692541793124945470919966116604597488356271551353799912173369046133384812713883327200647521658988625530031570340959088943981099737720905352411586894864471010638042204488171944586210174525290559110122251952686032207352819994528599859396495474922282285945114864393160696951832431421385505913293887485077079893768260103747654831239685587435535833874533864357731023183196720501136722506286438415195490616420367525236554512898992337737433985161774418379714926969593906517161694828640689527039750663176154793247854473079843861034496795555967047097330392251353705390518981888412508355745312155396445817229436055970092970259692379740426883763091335712565850073964163822454758075467690740069485640968780267832774290532556112316944866091650401985163489578126382979542125445592279494141701186632369492107920065372638452801679334953329273814090886745019793542646986701939556414043496629715569418162067572674248136281582118379164618462140247644197139110008657543425922041545630912732923765015404110983678746509670725305049170923435480259368106891914318378330507843633042038459427181865837141146324675490307043653785300721595829540002135181762353631228319260208658064116424961501373752274458598155035387154860687751638945165605283874260666313917284427163563901649204544311712215507987247375907314357270699284602335897894839570925676784313823443336088387808701360236195378424150130790133039285052260417328430892423291191168743782410685676124670835436261424666548458918670808918700078847680122736504682599628421135404577795181255326924366596372837311166939103461826473342212241265208002726968307314006893815656817076452360052080768016376468403811330394527052212260485461904499857140402176845719004396910347717097235227296537165947367636768892652271034122696665642395150838144619575982464681853258379249713956504112083709342562087388877148528508052361012677097583840076041061798974246177812209732555870398693848648710969883903203045860972740541149878827355178235223916142907302680380698713213364306548171908345007183601853814191459734519332756334152474105523868895448045661899310801718647224771811947307844700915256370726159091951255476362463789562895409260437975183963788002232094492739025437711491827342417633008466745271725787124201745207095656242291854030360757905619560075314066256508249473974555668988445359492659530684501837516977892147994777622242768800852119779226214770786520854674367698205462689068623621763271082120813339046755730889894819586972675574891462857742935738172122373512440062077653590016874640934564776011312572477489965410481122903875862029809412872184772921376543338280003056565775905311017363084812338383318058052107042469556421223985380673699013149927911727560393736487693908522598698677810696737072575824039589770889153344421122137507511412226737428939991574091606746180361825481597323756177350646089153539119362131966067747548765940795705534826093196224127724298256483594006667097331980019337987289463255475186206687288340446260506281759709603243123779277773412705031350502937164750094683310718661197943897124726745350199779276459189229413896667529935274999845852704741552938089964851287310122407570439396418946799201520621542515703237298882784820597300527809309634432131421562070794036557449564804868885534726323755348044281639539576647534502914664176436525847473201694527908943212881944846659776330658873286311313908015477065684604735080761709326496660840543909837709364957111120608535669624640462465873178535040937980869371779611385393851709271848502484944963404304950397784823339356654669267599933477280363239703474343246750832251720153399176619448438922797722245114598359133069908874942722529577600454381828609959625540347273266859733180598427984431982023553853343966414602144983769944298400865611724921366229164552988368025249521270639619606049691665265275520119466710206146332370722266906957351091371890922077223842023523201614662257520155335389515010548539778108992496519177572689184577022016244913535958850418663811428452792757380022175435033969646186816266506540972490422257912674401545533989943490695886942063384705916318472041049314731578033249581690489627364061589741019852926441093996210580805076456354056600305445378636649675858791810283593343450724060718615567701370048054999501259699341225578484819765940341707468359296426417160951911129418980022176830045487439623939024077775723132210258403953657508222659599810026666443900135653701274692442058734223146362337311821500105593942495866991659900579465229451633326303154818616440185223933932972237330372877281598328252019406583309225009277363953050944635291961882406091380580666062650975711777145384247898609953342707850289299407458949531894727666669432348339713336732679971323762660411713647239526592466876979810140093969540803063464786838792145109765517136015651850634246210708419749696431015702367937142481092627328786389471433936146024254470667899697615616568585752940983124676425908359841610363277082306647157945756966447211062697915002673130592436552954532782457988918433847283317661938841425720286849467720088755918212199296858675350226851492673828529550490633720113462774741437615521781941418892534853259196094116735074664335334886933959534330477158411317037883476655209930740427864820464579706066789522961685100071782523689446382425916743367630451310297822675847744974769487732637462724091320805295231302160341210376471895910027600738624474943298801810361703768052316415097252015708389279075152935216627012932620521222645706743498522844614150379811192362889940530499005786766865659934995550654045835795129797345676001978052081434089013830836673791401064368549017467202963734419209152940709487231901607290672901816147291444287272388407527689264317307071965461649531714616015054263956481369172829718353194414667510025937079235478585504447525920854934048381499572348580459888115779588876326761557821597190476820375033079720456950509078743598201023509605679684863149687416736323991941371834692084205830572875439415701922965422248539841856372575115156645568828943935886697387428365363414920977659002326512522602342736303500657641826850374991328666755675057013909203087644713701279329147868725075953870172437703876067761339047433870723643329606949327665723993485691188927992347708709304496970192003559569091094910282366283492849058164953739616517060986236414721015312970009259630200872294623196828558776266427343428808803195038577615909314805597071923737709570305398867066763921025362378633961852728519358638329294044022993914847346286826117114437517636310335960906915635988117631528663398791698936176242333255170800924235577296235459719019660199037914172718881639423728308138691467838128831791936604920546110792678211568925439766590585242777293228716989778886965204095481601692745965118233648645773325527137583388198449807356871896008475653571220679441365598128729692069424380199523152721525587954603073214207785687376661510074546427307694536652280925015589125173171183675828351960561164950612850689986293538302107754064520956621370931126160582395478273086469384912667853344673345707114445575201153262534693069978762060209305599294522629817010040328797388871176544059075907970385335170948379749251890161116192648933811925236969648877470492619223789915620029323073820048175403981540388278922129303687598610316543385561495943249167936628783384479576671245163955110943185324501107044808389527413281268532260053778284101869649335201321417430676345553305105940598730745458294212848080364447665945118204449665594144789468447770258113135637858311775222977477235820248472858732209834383812144316748739706458056759218697767288877470446232027970502173046397577793133829340380680798328686104687142691144787150955650782527888069115351152785026570761223647980010810012424545462988493427708269465310698853583965689812963542765785165152066741915369733816610783579098494962415585970586103953765929589677818723337481158716449602151024197205886710563753622794290962786057789290927022491915857572336792397359963925204663750955146601315580327780865046943737372851110206673273273946331055042791128530107073649340426107352700122844253249651664651430251691246779467879482790476477622563853316436783737419451674860046887852742179093740886453112834942036286212925108442350300539120706358211695367942432920347433863531722041296914050995353260044789621209956370374798855998770646572194425638740998854441269978816182508080137571864951976084669770137005642082943219209521302756812310493607492653926252564883439299004892432616783427755952766626152381604166350852842845925927529019471529020476302973584662350053145239904929354988651360323851810865343242475149324828948666168735218849012929460248983468176964627197206603497252967119261780949083811595563238236045688169732242729473755180037772188638522675516027785850581537596721090975170739422323041512994358262175373414905156831544213135132094557063791302155177853573082710059995749023437775385526585539594943293608093896962156132040328054073668540761265942722305577476161645124296530575682612508094974047100227169450648890776610579789600545729787319139281685135384569132128170327705932871457182549927035967306835104464634396435707500142290141853027956986050205875999554310632926958415734680488923588749643101787852371930645535090917514216043535916421290523146209834683261935974572739445124880563211973716604468968683320940501536887879348855585865393630608611703704907810733266813240709404828155926477170337767030728067810109451681173034477147299853699519958843505283588066534022676184465499791313307867186457182668986611641488838838343529665954176063307752207966834356365384027035015416741137851464864973090469172864608078543911875672880688833782886368512894415953631951278246563115184637246965080198794357552840851160401782952234202058233652641984200615036710092670371041997607872221976397946257698901671707991068434341130456604704510729040851325552365327068217292512662541265653106949381135804112986389093376582234418146544430229433513160330983832058583125744410278950653742848835423421350700829876785281523529107063136807021160974943446076270788459642822167508298770376042741925042531046176652028478086319500563178367314895005641260093963617443464799169717547790031812416718385630774265883212576187784999836772145867352445115435361866138393890333034456428547215693123599610919884052341714121487582059156416187376300157155243547114136865919353121779073087640684958339080813540987819356489641660712749237573978044080202791752677258116182817345263816073536764362652393546169875342003031214302627593745516770347326629099504241666359343266249310572911091943518780330034534446292289916138602415104676074379381273188964758065169131495978282349642154626764042411534767225680839387642192422185395066637659649232124692373868727274042124089318252513052943711139851044600369827614303590840159592887133552219487584953139719954162949176576229999332709320233577956136365913941368301879687599580159557062745577935660207303076044631833818265955651878113950061895155807235577341973907583014196523005254482454492715438476502947079993410007929271782765456999555345177665746871985132628932466381044258405137945557717426916458912303614938792563928134229287009748500301997059379979653002897323177867843019900223807954261809617111570240063159260759954217129242361176117219113384318179291629194216090783546979847163340347152016125566423984510672893852708617265347383357355774605470977827953087445648382100901032149120136313120448832938478668573577436536905557012233268609280311665214715642090248903446883431374739111390405716729704341448789431094826496654804397019182736687228121430184103972355916150945940089983607328673776609933030151638019743844986072569614207306681832886325009145443721278101511670399179000071376183704088136694801601331667325790864378948282017736673662399657838620653178118664663733985452830730852046883717829279017296324267679023563389862674894931394690740889834891629551402997345379484406922331306994252683158600030225385255739719655769801614033604914052588959170560902047651900971501266199050687577401380954014597514191819205761069906603311583083575919385067488264560258087438308037773099405700663355824199828455945051319389016721857015992389421003544050487304522537974126643701498621456172898027621496909180711578664034552534301103596012949278324215764120343176844651535494398192691846232960615897069837682304886778621229141012244087881930544075088221476158945041649533604484238621741607530263026441387305130418584553669579342934437112020299799011432208842732979192461198537120914095845832866049158783478505097472348393591370648747150871593455094414544123390025718039728497483877128685868492184004075252267099011130760672815273736124598633378496308047296309167327389948457423654703094604180218537187223437609501790630785203278022971078399103601515630527940919349479099954676918374104327606573475990782458436347778787810012641711753754386104031356732830810598287367340213758422101522818608203605362841644756540107197501663457588290906133188999863638717904419747035981956164795967564621189491979689254518080853762356331888546225589967757447991229228715523653579669201665480042195979442489039600303178842976869276581285281494784660201567750619883349031837108232098310258242152193322828390197153932632382013752769864817415833398690130799080143289089921095690047023888502702736948455486114720067991368610538892271451133745045185417349751876699858887031152022593715866966510032345508828173009106598343251806415438737293613776426313841632840859491548885043750651818302140610317420073131594707033959328578305725137103399726565184557650685965582256999338908424633269019258789259118341868643301245255870407484063419268477970115830584738057196880929693525916025715811592657514797294386916930901240785593196524909549862968618669248649506527693274182591248923947594184540121645865795501226660938215042710694856533619748708772933277096998201698812579241551393177236431105730101021498108875776539558592346938409028038070911089866500673856549709562400192832787270457132292764655019676804411061511872636941056810074050767086345378074147955625013109845038369757058800751477230309317763316183903120798924316806191810466163688922767724813873982756641105304876686760551942468725359753869356914416014449991787202487420234304085450518380922076562589008648276048366131396318722762317300240927272967993714918309136230480964311533091094954016211707391327049174042301059606635340468612994549933519809816154797870453806448629448447358070696761219079994981401070485940952375467362536361040619388072586517723261460424669795395981689661769529878833242153348672817576749405778660771552065795980862357635700922010431698182176724862212894760414876605438943604684522376998602899356136465764913738363195796305648538313201076588796354152897347966982707464094904229110691582324160593583749520370585575116709883149750220568834985601270738355812596088703341384553758386173240068169151578187279639293522348291961591348309429998592296362751151394940420035250868991377899938637078743778592328821438324788411018175885600783831998834785337459597238139889170300088080465256761793473906437116487750997817647808162288174884741743695059100283119385525933660978979127112063694343690081653150459535269090993548512847617175541891270509163508367401793846644063204108070296797999196239842712311481238231418618514729445308499695410400472351049386871653273090095080685376093214448977688577300661069463883027947132695889902259974635824306614931971321060924753323059214456646342320743037991202824396759404048584169852216746753191761912350678033938188962505314837921446428068562418652118387183842786848285694312097948453645448434106458030537320843969040664814184746220945249191785809880374019206695834846531551609002442927190504525436329191203401838718526212134043692909352096861976900336956120695954290330082691528489349731367948674489935345737138800089925448226213691683368906576586855783668555242598315183138976185471508644148711582713062016314148435756717530738872945459679022326400215568913644903029350607637273336368665282880111767208127778693664533432429645745620851104457575775007047304370979717915808141711787499551623111344426549822976546554003467325284625161957315313952111967629880039801603765633985896023071192318170618147144032230404224800217894421627995605954938936605290920168843732708088094676582620770306858123783357113460918359382306625923404487080684997612134504447458616007462771407714585123790085663930763197670859864312221915949459229262884343652086751837592388169113562142546224551264958312340596830118588479720251568100327603988047165479080415831306369962727517798095842178350436376073330116099821143176099049833585366797428003542625184743669877287069989904250327917264930719952862845197528984318030381612550116142932993571711716585768460602313791435025418378037738156369245113670627790600270930828517769230675120363911852405181241415271802509320565855747455299084194924304312794968022125571456452499133768686363727228024376983407590492075254651013645801090519601455062633462421194772089097929791746985887386459759437653434569129369883251189326250250218721184547757108949080185489744246156067319928266202579630936218838688219066637595556318229991384144739314196178171902051889477265335127284690020292909807677194984281912474186069221594365899167625319337602742020029178606133291170185414695051215209989042915319962115677374703502531989623739402984745429073775339407697998815447209117225020833950523746115175112553146114734791291103584915603966573698805379549414210089331103502287981428290376891347542816761563015915655493489856014472445017728399258362389511601037088530572411676516618932414452297899032038592777523567297051641032261735476837486027289316015761733349741357089881680301431145621146360851792630856509059601987839163779205948037866198469318842084034765580421333694942359446787994809967064634063241381934759527133638914980741718857857190551546216269860187535930353867455514692229874810073655777489917360964835091548689401422578633967610390747089278452218278914645324315158694912717542249143923244349965571594472951548670682590552262022158871945702882828873679849379462462362543997618463786507858405350834130739013759658995397347402310945074189870655393641811256236678689896235964237186972814118956810268011172184540504424611502548769983318543317322082818128495329090520463804543442701424641781336999264820204659727925568532040931135307306094407013359795566599627556068089052199980349272121338677859023356262262626639885095461516480752258560651628551221249408301060287777145120413646034379686995712446102213807648452744437656124932991567416124591217470521360659805348663325809890752271109127416315198686577578051062458833117391289465068358440410766468627519812279845481617581895436728910935341963703899051518932542567938450279652502892529837518468437786705201875833642278162051931363047370076782976367966654020351334717757580685210049678433009402062551859785075507947850981211362740018005356420018466125194739083361444903288470692847693757744679156207051926109118238274340965620410348307766934159179346132504667928660678730745062117526033472166320546290231773397144642352688761299653273101682645951397656024295446758247623491165678960234995593381226831868049656483165606643702304637763562060098684682995039186018021349957719542773561662609116954192843428256643169531735624503326206194978446350452926935201940977771545910234712806538792955873837841398157064036905337161751004717303549871110613041517324128291560736800614550068832836386162231293801081161303699434223396065478141744998074048338391745417015506026925070399377410856476095494753794250710595109123162502559049234836171469875274725256475917039578749558567092724892666642031917367674523559906048496660467806733353390923736532259582686574978284852532431489483923950564595189585949133500038472369303687683448954510702185667798818965573016070438586530200825957509098466594751087425049674348438454023886163932607980010179059781742169442125567745917148537907466669589382967854596415003327652809991408921064020460553725830090586616987154515118005997957939348927432143857298183154588459848586733022880876171604587570044903262350078184952706598677710267096299410425989308359073041704567826037156348689605754854705802243716710254986964890540475977901320081624336320570665280812670393876400511501957278225969431552228380273880601732885980772435503456269382516012422197413248661539978809277918025510564318782412761733747239506342775405243763222380592528146363218412445818937186818386888267178640335749373607254680008732328146473265180346853429681912522352627136056247182774196134098010232591613551041535481005626814517263426717796222591867608751306700275766195502832495065320657165288629753962925575481694050148397047990511776134008238991725725416762995767640349272886983140361638122601349265693385632703110782314164638057298511346399109776222375916181156232493475146008190076345255844216034056305054374353348340014266691307663911437870921837740885256189276728308095736532217906393165612889538978391600494763811674215984462758985462040630194207031289344655439717087545648945609768928992113407737065077318857378763466662270199210061058084726689872811455125768497271082415480630387445633391917338556092283876492941821731207067853559761728864503861608959124261100752073016015309480286378239956964982314891197499207920860018599272501169390476418001250653467015778180695695881555605863529347317764367656470034690782098026743436800872983507290778486891171835020285202437319965621387702407658445527953868958081939387382500200096140993416094645456179043947141043524397679209821194511302237775169371695475234183677785691334443511897402097630778881782130796867845199820761427574579542930080277139172547827248550559952809934380101787392177097520553612742800631400805997027070531411748814618200942815698818556609331420548251882318122702693057116035535078870719692638719405435098977079094563960764781169745548313156192089967356037893801010404703990589520482172024316218391557337252908759840834494805811013273997109178700165165979419387934701903687034553216711868090796804865461180646953851418120403893176731373634892051865109648346260077707022762500533911282053711881166039513148991174796784383167348447922393894088580812592645691228514010606858982257478519946281977017659079547471341775579753835688585248888393395507178987215574262621041624150446334278510466834381320563905310574205838683277551979751665426514654749208925862620653023732985554161097185696212789549608076436447788026656645037701279323985835003774987234763447882797459553565076500946305965524792033253875464009156413953417316424894649848855809139811149019139057138550947926171413505039975260411815021555897654515771497365480003218442306935883125493834844957018584167826815519385852044980280399722649960154746801501474264126817571721083457639578773894771016094569511780047551739675323902083268122257696144583237827877417028615402463335114916428527577603371706208262397745820739674078975740867109732798469347104576255288459716618848689110270452925780217198295621794952602898044455703392100594104493322349373844861186938904912046440291484771735808011645658800491050866071938306024718862342948799603346439767054803173995771832215397839754476918745430978204088775484716270587870257991724229864784751800609663927765989001401052166815332397021475114194159116182996585751837036873983858248055623004769969715554430858769247437731501008561324530060797075251459655452408535012756664739749834337877011071500438759501387017939545786714160618902784550202299111432278872994191387196606070234900571534090178810413819302664391351127473704045022140931055298626711949864388804557868677063382087906722580838155195465308517295794054425533305726413487091217027618418554223272194172781264304039512742389048099883122866292651617206438622182144363256755092636916846451989843829993661810697567086379379414299510273991808750230271590136084762676723546337084798825066256660364489484504597978933684534517450452296037862658120466759736100717767398143046014296883203617152082810040550056761288230436123266047929327359932332828868435018442095662028328654110694638951011375396793499161900039282470692358029964573108454250461313951529421996056528227841461922152041453546419539627081730997427094425870424398433970784010983084225192106582258054163879189037391064171975625553182498332909685707731919896542669962607603154761813982160940837065227194405578643642274037275756351589401216797202475843155890422446881352665468229220489100546871871069216895313900794957641997476934106516292487355594565521339409547940479241423430209314783312887344717831903157741126079989735321935840734212926922792432811022834690425162766452430247595644403110040835852317448345007236542940887874531101236455249346481596800948714524197573823571242074358806784327749602699968970661039967088879233690264906501493653341945236750520805454289984914844164326179980772594551493176551519281971351400709633170999665040836792494900758232025081490682251790883174171931571552238043166272869993302932049869608718381209765408232486935376326570433312229388668582136389038736651983146120242521846943260932830654235367543514160095389378385035050234672672246381907828714294641416442190732999576490281075474552392857677056255439414868079941809711859033816732681419976362057225637737651826362694679403581925326640153146320488513333456326864602204867569964447797988303753388397509205330390327772230716492390891003760094294842253177932563018653321536688562353157817897714973277139454307970972391850030164349091772645688555293130821054408692834341614471673817022430846403545984251187737964885306704276429101279547753475570575287095340839143769585840891357846820677077473360473668675747462588932100194130889543219170397056125038161288636076613461770178640342201765945510002719467076322991231222414588874717309710083488737629775665609470154166487613648355476130489744290158040980062654416408717830750419530455195803661395848375198510636601920021768491767672139172213178082190514597621876375199316497638117966431261419534970181062112262163022932651078024580680289166322045085066256990622996388058755546595431344883015343558325347730829348284575583957934187312508991732965075071121342459137074701505187306702363351262173426677764253265694177254119625754381129335235179157375364493533279750960892604264352954376875944048359591255600604214452017463135635202626717773800748736737227653381845846957323568796597776800900692940215240318659921725052845624042548711615697622823289256535471289893641703512760025004032378965211535490465060940600226276583750598441587255217723327394422940666009672925253414971669714359868415120160135003979823202445882251871705930752026355872506983188804681077076042889259737870585163431815497725206779764591689366179055348909620717370713526125308875621538818353896798702723069159980547046532132981794996836484999454506030610384132094364297457674492073254267400980409175232454091556135809269019335075046724626685982559878441541759887241159835902732266153249474303829008862399087027543389354289993115589942644513256963300832065338656895055691996653840542618358159284432267632399503098006578880658031732679636703886566736426278616953103729091621299211978644630917609307312784483686171024821678412086583173854930459695354690955684922339340454745753814928880031488627848295644716083899788173595249639755005279990079042498629530468203552231899624810112139871987882387363235441067230445461990861557207340286088496692758589300474679989969289669780093955488581415045691005827413492771546488894396146699162523840390299870199768386970784346887309902454980380577659520352837797878433675370500452674572189669028152563005466562031361963891721124493999473613987698910411717062108413172306235653650711195313789964824257303640733661656912678267977758106930538855197473516243838762750351588674198705180762019762442208573490959193632707424051121532785025947310028894125665044666382217903458564642004317391766269790392907702277984583485128890361298211711082676065424334450356832019862468904952700024908270944028838390651568644633795677881135335393342909474726114942993284623821312290843590001673221445145421383967326816681074330782391442052141652270200419260805649915195015336695330832912014059430129199617348951308729407251022582032567060398262473810718215888099871966278381878832935076114668409516965892329757197838425441664136528774532428239235189939471826118311624018410632267372369879854354412378644382538635170679513881230709964200290939438526268738751604929782351865596728805670869282011510580622113695031781019275799577174381184929008798711432913789598659580573584281069986345731291549603678478537971945680838527862472382780152583882049606147693219538051349413551560297499363398172742222389679121139512636124984338229431742028016521850753338651531699373353716308325979823237541727520546782512478754126028545698011408626182044923461648595856799212538622838422723002587084612688396908340544476921746132651381192207574853471202972504418648371518582029251060537672631335268955858699529309782366419622544733357848832971520247889004767470381322438287059300578574510642028380701900808034573044746909008241812969659838769450784411087583571884988151144787712364557952461728687525410434074731174273087010609951859646068346100842842992175428299074773053870509032148314620273316890466125251336352254366970537249317144417511196550339672098412963577599415136934417164326609042730148897614705681599908930914591256303181644697794968959820239394078507403680888403855630810245379502801377356970340841119542571211898520315142053239009088805577496571943796320771429631925826372178594036225313405420886185848458283328941799783148852143569843531840267282928447290544446985447484612794976343293338774105812539210145230342022722354378400893480242790978578705980930884104942710301890216611990007231850875288953086367679831933582992175952330189115328730800231008836903729184883963819044362232385134636719369021184751391247361217735024227548202447599103032807063010316646007522704377933903708891727107868783229830694138478426735047534112345014084807950144789556863304655209617389923453696132844649071927458115235436706783960249945405324726497424735847759618836090591845370945572469239360313318126149155409571897186302479768587659750863997958869084872792203923448714434235847844043243978947489292803872044825879230132181517172341152098107682171217817895351417278985668468463006694907787995375619281512516992099786154609941872128518360004444706445820132135917107364030045670705886987566321171209265500596851341998145868996915877552070449213807508509251805089582698396016280596006487477039699479158997445268311506720839641564476396399974067730812945851250423412809689066514393762485165237525647357357379404108798872797730544318947771995525064973940048381496079415029391211842216468769425206078749916693583271397992488069826981669403941224983232866194846565550855080555682267577449521364051664347581736519949418816887157580519778052132562698003467000094994973987829776127953888155776321727552444353891949974307788635933192879131016411077728183531487068134678950414217513901612508926829243310509253689714839799044988679608538069579169845855004143928776113964788626508809851357139752872281873934919906350597065779220668093021142881629985991514962520405966757167462346153593333767180691113711183328362465791639133511473722561882912115400180283892183727788437153857038005311062748591688383908953182179998444346333593321372899487807835722496304518734917632503091582116337384933000643917084343697189467125353284087000500894856816135429047445108531730926335137039376106551711476841170099875075908461199481391057636870875839512953231835583420631870197712132166771394781130918638460977951491393841839172572397515894376714708575201760464142576681031112563012653380532189442565906330502907306987291651667365149516559160629183267887932070170921375143566809027590052128717481805101039109559366651619177567723193050970152424714777466162718857317481856731420088775996658526314379671337097457724032645840211852463633668056052397735506002446489952610799666470301343801290212415268520313340327652932940526656656058128651628140742989707076335705631494286935356741902699218893975648773766522077672158772148638035291510763997009283281579604059609490727437951532766507633936316949126273430125317014001177842697419098157620360673719834982709729817400863808008128136998973994750525521995647977723023385264705185316719115268914997133140831848015429445152603826699431317704696972312084787158157926810482823657978462309279098786880728625712786899880966752947143714178579252197020095163456064834928906549246707243449202338091734426565289388439398267406992835547320186346548020164316943492069817248040669919296570725966637436165829279392268989925885968892965871240383700563059800163102744663419430308926086680090005375485005933212515837789747756849129956515786201451877471661582920267136431843925358380587218224858242790576957449938829914755666108692334359883606897229402286609387394930817747496936177957581383151664397370677650912790581237504494335063368831327035057417285763583892307849536478731324529382837493394816400402888343868860730943253081813493327823551952917776325873694574386597773319027766132679150505790398477983460884614937103894793190839698431305109049474432881874900216126452085361629100865976281716006111222964316110466555670863833228140783654281162274619351214614751506411992953971982441310556929387655363937099798551566232321700745023174441468758701234410106199434370303927993727683171505932656355912978184353603643145124996222556306159863232116738874690510761348605128753315978731258900776301736510715888021040059242076795151856910129997625976793657812844647707871048709931366363630627063051672290934157833825260543543739068014053877656808961657419013395001337903328868040843473259360334766787954464437573080318432662083146256055922747166788021862066395061339955663988910468759407972811223215260684495495879099896029031544997784255408964731177899417373364636899119672243520214659351151593323778307028474985521463672638453926129917982204158027705938203165141056732372198388568406628857057444549071587736451383212864000519520810046516793169546332568897771180080480501796439020309672845904935187447359739261572239798485263784524798296200282583244928739151023301459487979187403986988841019088743678552283560161941229428055217035163773832006600730408589593702549523140865810184087303347398901299614447297896479689024756620303057936977509914193301093287652937916479078978334493260242016542789506130041871768052229231231511173716873672941831185355339539251966236896702424022832046110544552130894389957636291702616840947818052421132164697911099468698996896334798416256783475922009331315964741830732841432002598638805665642607223136667951679554932439715489115171195116269382990579490011067080568141915515800729022398774289690800033917692307617838326735291448543725777787909124705460773218120936082727369019502684479775221561060362384853276257143028108062422133304632800611817234787102297546138789387290204023354405798381973599969076875319119820052176377907717918354948181649631417085079691415174850197132849417341693018693754425734648029909677953202643701653433568156694169056760178920175829012551917087663117282257983833985959464543089599507863081008926238702974456715779628520132429703857280479869068826780274842590708319561697464697709927477590798174191405147682593206274662529089281100991821264395860231728014288080249587748702657061911983197952634627214843627258344087456815791648346309837380802505086315183679632100058826490056742060592278465869218740014887405194555486862505249762167632841977822528376514959239639577649008158479524274944212231992990212897623291945732291465584316312668302166362218704668593482834416521317607124140845204240042382960055636502833741615191465532413911163009610998223863960888782422031042697890217297619004741757119304691400035197582397658451218800233764467653259843049990484655229281140240705552119722164031781818924660914593236312141893014688250607163111087356434995030278998155768824068278456102985368794465365172160968759446669866142308254230982792093867646482191467437046362968891273549809728498465810631109647559851210470420250487278529167378355297492433123005285775370080558065079369029115940880593575615561548886091068453178210516713697599762523137047494704682322350081339054455175698489059415983932611990868724486605230393156003069900160774410621104821028420172441006919955137735253953772166667360332666630294857809235771827061561019496616250793626524679050646125324983402894919552708640787559742239965656437273828597732432895309893882046699977121955224894165938084186653023084530743681765970193473108446970688864552087180257948473401334277180165855882770669434014521357665975522515687567771808583231693241299649538614153746619458852694769988124654316880646743021407069254046854921220549367956656264868821589848988860233541262018965206675957040126578932461953447480710946021640080781027691420214190239710696333865887376105402405856344253085216098361401793775720529786250511954670699457887927243688184817514616657215194270254560375427609651533544300083682583303900727017816683783113040103513739650130408149858643792922626742796614341250653357147888897978889093331279310187830987932357627877172169622757677117394709730392501919039059624775881329953632361433544747400041477015255903582993880978303893757356674328435478753729358568016309786750241946236907693917400996848036782251486801967768046188345236814495566161408682234449405980018233579615840384671904641099633397314569897839916600509958138859508930487834559975775045905174897867600930165009432195181828536263190367228798501072430474534613460547224462308073030659929594870180788159686041300759889309025389586816631298885134631402120935910496340077678747592421685186350109506391659896194283831835449891372175084853164003717476102112021496659541330123690181089618049827292638819506061979100107389505650022099822656533947558011173456826997911420047323525992744274023284942557811111107401874481531966143926282371773391143473240238375913779186872081381078726389101477566953593906754374776737384426883067794703852576725563375611104895891916612657882797308151595509642578027776219159712647188508062557888731935550861579128895432305976536981977868158019497693161431274991002178179847439302740762922805777263834135393481472134899100034685966526004647679316635908180931916215080555336969220364628266758640682124329082599876373576512741862862790228352600737740813538556146733943883090752579821573645019131090575920221452059923264634419173551018647353675342376075449796276689484602499629824563555414088669643356900931560410039467773483642318660932849795741861808062097657338838437651118859467844174720273863402486531965398524457586261660177894049991040981515730508756984598522307424743844087764850349646099778059844925970497179119671470495117098703200320551616449464967893701749643891427693709150265791541535687100948752385769158062052769168078383342573470586567217393905383393473883049594430912629602126489397684477118414724481301362395509100212525826515156233339017481455955052593305182674999967914670906952148658088355698868557450581651189852124325060583463688825011645602949692779485348915525743734673790391393039018744723439254222136109567128863749261826309998281104373402990887675386138911576224218005933626864013925602696069366409670922966769816929478934403552822906668064198225910000764525577883554898963339145657265787019371384181181707389339727032221266931691358748013969133208953992947449995975152314851898726773958073005097160711391218929175820673501041822100623111727017453138404158263871365700527526693297144822112628747675966954053042900059603438209312408501979890698076414382446143406953052871932994590483463023406316235823875251293515419738453132866027392186772685345313444233478736838189947808165226567495527149343798895931666738068745145775839720394163413042419381867741738921191360002944616930158063232353444672411140791702685011503534498550726862332829119289561088728314236656564072655791604159774160122079063969011235560292410299369540428851061806594028833946529223726663503940970307657012212036657139699269551279817220042003782308464885323321794879899093058968486092124177142207126761832017383796491422963775467598203411050947558466606914014882002990253112182270128104590958476234158702632002237373365576367630179365208489598692378220113905082097843749652587353868298513200544696009687495804113805730732575271243736262397400907306951347911529446824403985431247531265573797121274539285523889317012891870621736914589309336462730560950006252406741470322932851219883555593557462736681387734504590842552297709412252653076810484890050366091345964828579962957501348542056936394619471938169479257630563071186407848156742247937209141075246192672077542002593187952853005493894662382325844090036243363642817423580453061880849791805895009210043373844928418726504751800675336052628414629532735844451235172900104502436449099490878724345601059647423091667702870577634601488070608186093909531698271877946071653874441059688886504801748805845521543477880682333783593039874312978654825360069958115041601647641467299754996651302753294711579080412407560344651938884463388230308837242500503242661861788418863170724147906091894173061741718038309661261915065849692597465742534667344316195791708543214184917965550870483887926781103855888510031715013989636400289724713576199285642905338117372321650081725860273821925510830517517419110015908056427836362696039353447401519265577791507689410297681050833386049443858967349351140783115596446802596944169526418102565474079867116403041834017963668587032212975649442144838124231166801809026853462462090062821180698977704749640496043046066964267746794132929711118716688175628863203592473812011016679038472085618581787197146947355390152878038716962396099102352259531445561608839075790770853515799611765284293034497920392226199123200689593651733676784042190464791556754857300184609832687691028684212593594799088283811071187739654424702708904362246761685580450408699751723681787210748007771761355586388733179798562429702301598903364017480872489353407857652664170295049806015691534316543670576557813083258240303636734091199226267588068787419860159291471460165965424555320301455553550518703476299328820179610840619967249394979158121758485018942737014988679614144534845879141886826086956419949823920844981747683017029712266100316388563183446728653757039582605927489044067423163256450228173379257910915204569811870945257463632283806743986029487263558889297590389772434295847470436734056402419692428309975784489145499834387261103119041960651856659730390645840060561278692030832566725621239638572925962837932182237276263734229858328075500908141238029839521079539373738637683701224591194338967331054526628186337426645335841328246763119214640571038215051899352853631272941096982565663850429005422947296048255091494253689406531240966793852884109448238591412953671021713013465705800055605050833704529419135229301290476678885691263358259895665999885971539097628443659562222828884033336164139685543022375727844204934705782506982169378971459182611548985574517151293886204796151663220183975683870435318535759290830823316954840242549837893502024988442156913431390135831402455397994410329941672097155571420472814913142921471572887225000504048306819615638258092211276805739994707235966709890801668370616659604282601023391464966203695259554687187443329395153299820499781965021996609262049996239619546908176867336238794940674145232003029967409795209983402852857444882284494758067006189379792389332084104049821483338029470842848798552979413263448610266261301310081589287838277356983737822359863773253122913828863030834386634298159943455334537031450175227421831909386745492514484213309768839744488983755221473616131904721848209782209139382512671251367376827041014186949210311555008323808146283664720072016913033093968064131769910136396453309746705243465911761700050437924969688070933141541364252777922218218079137783521097189168658073442849667971347337609405223885331609380790531091295474592984375479404907888243317635193882094431275789072602565741148280895515879285104800026051064420445483931022513655689215086604849242876110468007946578794117409767789969523792854885878160703007240791826627853814685872839927825088404856492054448839766452487812136690591357341037422739150774974223541929522690920492344510126465110712695932278945705173613236878426351220683462025663738155007672956733002329716478763548848991134423042784571784677627676280188175687929839773557679130640344673265001508825660757225602737186565424225057402615649775702919124516476939872701958331949413002952957629717450400298574654187933749128004419939843241856305447033345172655231455549263044539731379481578861121494362601744235270250740746783890981478082360428987335761005537753219679240872009377660477495964493440922154300046923841868239348339000842708478514050494505208964991755224261777975971836209605079670096150516757989387454531453943286160233677961137380927564419750234773888034747591265650561596661418787919139519588659094311014946409342718427830454862831936975913451050457640593221530305945492038381156048696001628127746117497049698074763806365431621904495099501182412723150164822636812614900920660230918239768490143011287044818102958241782532269628813988385912323706562809249650778628921805300334995335344812743295621117486355771331893210249719326148536464932463750457049240908350175127837807706505518841813014130071405696606061499762506745225052552311575279356532921578789669344610753031967856709829064780735266181152076992200547141898590490306020603145866667476410344779384512419236097358368894110633489953785636900614579891983462871785388234641017660743525515606060125898536700495680475964923418765365061405120035925773904085480192513909909851995879254016839459539730008586589328105264389762016604355784965919156653334605553566318743504886572865540777840611945734120412184286810046591282621930508877624317695176425708189255514039019043015334114859768395713786169423131868721703149860020032376852309066202952159523835867876872821516722497361145676162478424783409733710992833638673188372656735822739503434714454488254411040016045927480393199736269695153653976889193019195459083066283628604708802736801423606248957344724977914112201160746528029768190115578637037794267271396602493732096809796543440169305151491769920842208684727570345390024548918914023772863018354058628274075132170034011430320480105928764801271936553512509525153669375509586653465857178853285339872043575209984759889952343329397014866933806381421075845855096078400994600799633003203127644547729707437422510403473560171721257596684655018399996970603860747512018915424823445998112765796439355023465304889074419796408326769940798577922988697528916515399322095666709070971869615484233201622843231367050107299531114675728516484757724710722519991862816115448593123432750311947976634669119533724249984219528653569159292415373710155441913321634274449523848161581293129406557611797998535253972420408217711873869945876453385735714583619981246733643156294270407787830981647851603465485705770077952066947347284513935975869396212196053767197538619996016504861982479196092547124120803043760709015451441629987767331489324686109653894789742800168386340203353161583133225586625025864169353336423404495248448198609315845948925100384320965890754383023911037870932956327975120181431227892687631467789112321971036462584392375228001260558606924952376515035880192634088714487925611148498333409240774977047122871604548056310459159907311771953317094477041616532788219775197663781185578704827020910784894344141232632772164621649513069985615690228714778184877616426505939875742438383888397235199550091735226260519233459089417737459833568573170408105825410974372345029560853073548893867011939930713560681968774785773415402459479671516422499210142790825838025827567339892388586414172356796107428611447810956075445192549345124007488636872366774459131962611437587937639739126905494859595227956996881183755773095257717163241725901665491470465912071131522018366182146735364375695400787733214262641141721432649520808599744034292733030412615362082469695061926338363933249038061734813867581264021409982861376764068924893080549606433803941640723652682012843787894160154984096352227461692765166584349849873713083961473550226133380691052500612714731428494068567446708346980449946188062004739386023939073595592482335285504227400483737794130208136693994553921466898291728371088612124037094006193878195438801549903336069409974884086407654864209752553675934749464513939116758064326727715121332578483253836607642909171579037629151520991556930935761988352107457432864719318374959070871839907189577456661407205006081476785937306484333468693902418820746639892357628097184152172724211212066448204265468918424242983619941009715851667312553800136661691612624032555757336632190511962925721694218518415041467964937545891851517233703552922631892290762090825492962595120556179266815981783616578154718085179954061428043730097383972913470949286425192341987892753449688330823136937265373119603255992315470071879386085445431884561117346963947434086378418649165936759830228271331576298709487070994553808587187646220504126345127435231224612951970044435996341369966955577948861593534052180557924393014421209850628595886110026738734015275055399318947396110889431491152355598772291458672476829274174640831234705877718733464704829100526203514240019572413725205083485522803017729234778144035746903131660494464164251320307787208025072372558650340306258515147760782621576104038901767436627167986322525165416917104294568893700601992965853419033144454529477055241954263094616000486889281389682594229825138399920089291278089245483096519204092400902398797811955448343313496706763026416559730546695465392934994422816013015139901985674205504409766323016131394327643904430936724269725465446297501317031675858183001525099762202778743793127186569437663185930875762893764346883799293271626336035191938667735516480886032322397773022993447702515926565470205729515595388848458918456673561134579653108589001893344405225155236597301158615330002567036293764373879209514078584316222489076296664595253128564621814998203759855882614484447028966556668813872331627689481015141361599662398584748090137411385096117753607539760203171869787369859323880716400914183723465624824187724387747581068814222814894703323994413163592417858341037781032427698612125511212109491100618091749424624083478305421969650810026719044943085324213110465924656782764816672098897977221406935321404899731303554443972450772402335897575710931726965786698439868514479279317628294950134226860429733365755933465059336991972072788660847820723221996034493471306869834136574733850543737220346642190909318364728608543774192327670533777816768499379069069183644411660817551001807610345676413739489407346998584976423173984074497304708229335082037218291395281603374856545398026317409032149694229561797811118497064227727130858737999729622264367902262713141662297300842872763712007667020845793042696442791791451439861737016371672270744952967173162736143828319657439031333350640719122186391943790330934370411240366925518264144900232527102566397180774227729501839926344794006455937995652002138246080764443528607625357440343082415743575284553595744924740867050955886030363281877334591249474428480201298095623750415878642367957436597302733172623866719807076729052792794139574309299705873725077121610537914277543572211826127641166862142103800425970156132217658791755423930738642318874048506655558648919959086341924992958690341245140642584888756422788852019021832746902972436073982649248704620584215072882210187409384799391131910070811859624520385227065398169605338344199144658847170548155282978127832940040779344419502397150235183650293840247802777545423004940008411953372767026699444848336076708813145777362915158389083959950734313436048786916524445577189679765157280798580219638957243147052337193007075233389981114717685346268767322275386549945331074883186609983817940033432666540328510234519171614451812580045002150845825423354539331004497099207181956265265947089105217598602519754526863859003551547241436870355577250656764972270630293375266617059669079716719080979212104942770486009212654112002564864322804295961559022724616455356297308588626693186843665761290977418150066789821093236753931718418602030148030561230129066489727703058552745298493714707365691981469516653445399740500330897637045828298805089812439239036069035856209638808275928807553407217237150655275997530521932017085155595370129208198708290779986554935741772331677342881179566947768536162121645869139509740528958857936035573094406863343444466829824587036256945934776456673787896214296192382825415678485838146169567526006280211743983957086602798278010706873511015804172662334938220432141689629791146025644993904080047437629271256354603448384011185958067120239981235607319368247126838756162430333235121665441308749928496989688349714269653941602011219000132455708195245121287964628210715978028533385306162581769524603998628164824943711579940727699307431597144584743294351463864808866327834922758792093115101775694485831262521560859235198929738860921286599453967129421297068320779906896614709307116772122754977471122966062997534671285061653412382410746840773009704817564686706836630883441167793511807438653764370207532586178322715070749928369714173908682191804760837205730029264248975757413518357266925291210776970462037837217778684060557690625172459140699278209147746393851355199684567576716974923106719077578425798118583127527552227238389360528588894966282150854497062206140144440588346135621576243493713954005890846338085805740014760023614059099912684800681126569965720348562548893318651147878652543370315114652288165846772009206704284115703462326550649546407942440408981304582126537295977400345942053038603253372114834187472962464095417667479289173814304889026195520289257610986401981985096279817825128240125602080208766655921789546609259520180354335904757023994865441128609855076008030724113901765008404019497060974446476338885794133625865538884106176949230281937322120955531897244223917532638225210011970175464919187870997150103335816490112206576513434332353606664870037569210612590161203044698513617190206588622651262035970573817078365570313684599926676781320040179744649344432981497052078851420955677101904869642823890773244259568865364016937074522707909004528739984190270357565614461252036842571744293518256497656907844180287515888317084219342141653673589744790485914900983249776276535795118193724584625135384215536684742743187349626540347022779340261787956732666986406591454806671278612004778954035218303163045855931460828566564548307526393261060495148955411518822809513839675903682424830892748338409029166848443033420009683662274909656388756307830318933679882222477024295458487644319885811629995061712001017000588842724214448940619098614625441739617577866819990097574421245170557816730266812929708286434473758064560756972857360284669489842092210477703269375830076945492785119163323788825408604872072372467418164302266487956680303817288111700944421508015497608671072219177116545879427902144380949017862193127299168748772082039851690359118989185556189424625396626551787412418263685643365521336712850033044045627665552701454074934361219955363136141259286801054110811125118534697307712701806837851653625340246697038901013983689809540696404104355583175178905179324226736587131239141046445995720929138059355362306942086601708431650663992754821953786404633796403630364152342509772270939422166116088549321430856101394179852085431422032519637669649182670802789123689015135873639523943770236291727404478203286246882572950308789790619234490622799192407255081541745851774548860173910763911131896059015419616439953891570907239934714394832824952761699706898973600294540155525698668367256645107484628349379352957676733621484351782503632702503282423122929365553645363401136672609517098148521646854106869067778978618599368563553491728912176681347082353674376976765636521295455574152873486710273909108354196919710731084214612653577300063550888624476159824631379533370171815423983039691632820178345829716010300549344864899353358099616039310864309079864419164263999824765811410848396480453276024096287396492721266585262269525777197699704273938169094610976538332582448825418249873023078844654622868474985414942734196220640868930257687380693077892886944759736016072364865771662433487742412306556453566212020393956147276057500846759385529223948904149459239194383967643380580845339559740325998627446110676955025920545492538840627485300158665496831311460940208110024583314602717634618242769272017196338054055245603875932385253113212695292847373755978759713145309894291448683430595120630967485984229213982789623140723103511046113048367355278987801115285516311801545946975145099449844533160985135871904061573733665129863763890721495436265508549459639528275018562341885670085517176752577180976443715299188434622036090834365139299965733045069284294437671287038844939647228859341691709137861948942432859974255320184066995949626418569711710300326121292517953775974624163642797724767853752765796356578780546345382713075147118861291397157749052362187114992063529587763785971144939241812012882453519990713385415718614434569692007024714254974375128103132392151058350815622424179585123893171737981902261113239275584465455153211515566968396995735046502998898648915538854006597140602149129675336495098583436735698582464040844743256752068797298586618940190087286877898281740850836620792376011880683124159270560688415166746777538654247557989086889766128138949341166680799788346872995725716623221844272106051471276549424545149818875573661192916678618671047753505206425389209557483593240455320350274097962341729205501554872994655139807862685356354467404603799602593497533785128415131538575980318363965313110357045401002271095030607171032139321593752053124071463429045798644543493958160383390871962847202780296910620345001601366484600197644164366480609702904624876643933051338189327721192090709354059731787604717031539703462979265164516382931015031072275308349481756486294303161055517611797970853495621241420078225014721698768739996180258680471278965467752579373388622397038353098529125725632750689606156881957486476483978510809512538392947018995146488528525399062784612252139734827649487302933786258875455156447023455561651183015826325732250800855554280493787192319290136212308915456786089747558539480772823156583405729417597689658079392001764081694441719123857093169679153239645583926462093040192192958611769174065326790434260650601283693501036782078247650942282089331002796703833834216740989159039553239236098348212789284131351757914895116144625264585249041216765991757555974979975764687722839294681943694328357677748196770791891822313855067163363928763088477898043406451924311580691008995189231743221255034172047783369132660072277806070389759233259604843314630706258738672943015594153283575650267614700075301998832910740404088500504556279614147974423580610128000902191566260692641302624530899726938615768750541105259199022436678783561556385575915821751905738403134933133281238531068795873183166130640619327224289450828672433275659876405208465628865825309080939914609326272195623274377683457743798311645526576837834529596681766702069548007149380941541107457044617119298464897690281551913279474408822294878158745087274672738448628389602584396609045907907168767150554308177291275704423238859194798580123700440494570907918531687418378530297365940040226065157999401414029189756776965904013934480119630147851472126935884688002060947832095713261175192358733855026911107127603942188814957996135607058484311133159760895000006322534833869209356759272092914634534224313021385686334394710509812701811404531480069616985921482621152543539330598410791763298153833454301753082006382776369142552974847706154322925940619995401356246892071482743647528828830148767803790062213298288384500876682498110735159101855321465343384459651622593731451353092592327370491526532893723759819482736739332476977065050162544815933741941277121788751087480152083696184364101710317586641629841695429575059879643721813602260574962923554476573060290565957521190439241506097636957074155701442762480172894510106070951987260731187769931913925273952644731427854018039176001146754120307845103852394125572580592045431480485071966018381513737416987579544234371034446145699554637430260086144345476222961396778842153621558125428576936777439135882872029553407339996388266578447385220402734041919814192111524029509232153892699470718120728194023657096639834967498362068676101923604525720524867883579346029460331458679849219210493735233295275274756801194763331811171630325068355884334303220075200511083714289417469792026561817371678212924388996637621730562271271610018900798912839526592381563120914919379434669701421574600702046315977934107974325758495451241718356749284167214538407561157173104232944034784281833879099778150402311343901162953738155487094195882876120643004522842901421681101610297935404566377795231457526366597969527361226930359688893559475710419243296019406633569871214141836281186466028442331257051558935449084048915051596400968346303127391650971072925563395147391683496362851905715635537546725606583279656016637737266058953812349037477279370719582012395347128189381921929357647036967345639214047324051160788728769246256978895289877032023593422976793421789301069816339172456879007371217623244950530053043040055647606337767078836572462759525141467384146525800080224192663729192734568301467026106290798478551262832314074675776316332236673788716953092912946966101826215933119933935448525020846417056880783817729980490719719298460143232242346995612191654765147821926230629641747988293171092539574330404115844033931982890397570882171295912586988836993962256919983564660445731669281104612327852798391824102217052633998653268403684753050294349115609591422570300643412929591235791333329760136129076927939221687946961388466496515142625586024691038682742581245467199550449671504683925725146066053580459428974548200551032659077056520332718176866256338066086083187352904307691701458065337727335166584113108552961625606188196245521414986063064136217823336089489095164185064912852371956927791304301808823719223255561750915067134424814437283834713146671135606502725501555881960555354622939736664585039357695580784651680101281392665966311735264468619264552488778775283976787609779497457528329506044177867980779307945732281784969546043703145438197857361089098000560770785037863697560810563440870844683833562211547822490316714048115423023112211409635729436360703884331343429781661382992548776225851492626561233977173198512558642308987224866325455205760936322379355899091111192256526863668234982096971797369759780469754781773544482706605350268599689492507082130666425925447835202604244409244852809268460069511779470273433953715417924311823778792380659717018039408859274450125152246425655129492629947172227810176091097830212579375746681407349095716768356815269764488120887288089157974977563331613491171796712535557967921028282302828868167322244999100252232983102978200132784220008858393375408750209201866983535231469178145511532056307499496579289911700014536467292703722130684366582328384053626870823465335192492043637028915803303590635246374152878996249394555374450453596292669611744259566138692297178200618565431217333417803798816195397631419167106929582732043064033817417205642509594313966243329587915513374135592906870418170519636811587020823878623926481871645031462963629181970705518315879680980631775591451127971270532381869142712067665678054192707939846952398111077180309892668391469252138929528584171716040033584462887591663337474308309277698711695355491260251624778158792553280943420121497553769886483375740562761822998276939205424985593023934013156816897933971141780434796712084324959791157820064796613022891972017246260515953403755398460945807471189515794980048408244912686419237736705383966801846829993996304646607927666421494088678982906079220922978160197993258730279813162902515908730207034143430505504571472180121952511751927559664089613605946152478681851067048071034813327427448452168148553041550452601439168990980563901476750195940288437496797126320784483017305222328616957482335375659738769137470945594197166381007604120084775999777297905006572701309615594362118359788979201170946832628155367897686873880744113444404425201338575181063917732655099446170891443773960950906793966424946564708525778916308830234394666754105837072014496374648742835244902379402422058888316291156255955671430120026330065481342590726391555809173648035305139718443505627663097752483798181947712743351923921087215268532182412266398696055440067543895507125847994911842195901121076496879114431679826537887669855021171288651774736733175866984068327099529130507029136233754757364261785989102354727082411023782082888542065055681163268567988234106658508307381859602984782025730353748811884016189133715038285093493175752774587090472454794832081544890388440997457524608321521680213328547552871846910662601375600996764040207297523309667078986328758832055607394655530377326433178330094576294593730720106846740471643408812970932419579800538652977306802652394962946767400230115892482432541614272381289411991131497478361536796311214069742075043768207611894643569921464128451825300351902232412772115347864530017327567562669013927333309609384512795963637177151971904887295844848330604823418780142275874831628317191946261622933629805219900009107050901375542819079140456400215328275553086041130340535151490748953287308644453534386283731651322886111290658146027657302769916740595181204777698096922153892137824850985303018890406037538608702551133340651884957671732287997063809612975145701946657152709627947677188168556588637293391485703774920373683241666242057096284753558746704716963421420849589955454049218317375321584834102254210167720835242342161584217547119958996099983091224107211135384238177548235621436977025448140501073868109293471741567440489070475980866524026371155844682827339180011311703949412354216867428147241584887444077621022840571461167940715735545103702822279198153660060621737452449236758475476923726320256100330651887857036655940815246792484053594319832452338354809284719982368460602366884398270167612446352113534799571084917507087269762204903833767039425465146606750103556773923437820484572176713779014563476144533174829071763417112332332651513432835043244242580685390642120559642355560335624934139456690085186021674711038857498866034907531004565988436045087967243474815052623392924528000551527659137512070202706140408933281107827232182630986957648217446739344294370831241347937814355470139587843420046880813607550719413397780167673280057003826684872164403536755121309649624821619823677985769627505359690597305332358006028141074140672995980393799565107422999405728329053380353993234162786696369974106372290410105824962622523051698337375776729310418039185914646790738591583287026531896704470652012003904658448942614583403846538575706924766685519830182194112156142691514247759907806849128639355606386288799315456842588739547602490915996576018681629215781898273860744281346107285421683084040270470164930678620997648387480832089683695120986335515946399329210171012749429068777227899573648561397471690051363146959161442114829805639315651374009926000133270918539429656509723094376056137536375816541439786956683267422286981708121709037099556871366817386133703728876344676975495424166195259244433671759678684364055076213569696565140292382297774428102682134405003752037747173219826203406215796712697916143376505145615294392811650976153914480772592230566064787284583343427914179297950612092922096838393900968432076791746185864928633400594490202562334695113021192638020610906290294295337120911149134741263639075114496403281275903598716745039739879899505273505034026853542640434214547014434701523445956134666186105245871854895635423532846417798755810426489642836228516068877946206510807981672610700026575560794842648099340087669687773539622328824705176337137038490203991702025614301483111083483731261864650418741183328509337974337627495324417918302944045698317401853478505750951314165713152584744897615111734885534586951608487904785720417920398639363955932930524783428856641723400504411979265805183868754382895330187343378841529801463947015157020328424210006426749690228704584763825786840355374649724492542616309207403191880057302132834176509706061880239971006688584271251793217883835056332575510147122644277775529296468876031020687968045262681640872716468883328509325508308160514002381135912761064398190626490153495417647863237794203944996177556103293814852953194354336089813426745865881727390952922330009709733984498955074378062024327131556167088427580777103064020513332794015258093309769890376218165709320160502785057035119586122564936888040387801632984481148820988997794054225812680701929846009317631674979815850309309380539777868668225761362498064481095221157874593748893894875337672137670459234356429723304525415480737394751197676379580726789681938328354505717721566893336613782867775419546914749803437613837675491216339028991581586757134863647383570139026445481990174391618127472072211508679928192040424840090176968520156308851472259706061237036685056307108249807225043675137007821594247382229624582393482409062118752664219058370971866687411295547758114808572378428981606289474753550187382445066777482935912160220307903682081592195917717438413145935717073772289894787176633490456078802260612778402941319053771994361699593691123725214732025231848176909651019775056825409848057433911469078370384277959450565685028174890932270608925733304523974135359714111328431262152753377397709878966647206175667034310069396718967188828509142001956183587246208207671539237383303892497097084654581873596767439079832498823441316138506453553823801657130597377732740693966054497334475743494374965990919558859006077578843096548322172379245075494622958820212323040290994910924031220267137394033655926988689879666733957969938407328366722437362066871453515650576279961625022926649476533614181435448958166831145981798859706261253256538056618347108932736024211327004993169997133653349441103993855060720193450484857903395079715525076536040122711568792692670165819361296866610718263708930524348521153584259064076309005732703598265844806174739772284302247055302677807031694086811177960177242415879959594651061853598427244894946403681081414270311646924956069048045658995983250303518462988256960325010532799119292047293755159806968910254349990715857257885101069747248825960535979502100630470707698640195797837151209294259454021500058733387941212951683482353169389596124116381861120342521209449726311602025494324098965288076161491258560783641609629810237005365733284157865773812689356077897157313051822823184509860769627110220472056286526091489407389767405505296366652825547395511495046690754186217443475049018149170054801072322485988310068651951323381488145516295658756354558333832241813494142460408087065940632382431546064386661017433865687434696560995745472153194884481269172048340444720356096116517767834331606768512439604324032581414138239577987910568164967194947937244780785046626740076793959973852689336988794621067589655184514721688532971975653260552106191956406597328735084816109457119474653443526060021960290940062582066062255251953937015922701775156046830440253154831338545541864716003292018230511904961726114226689414399779611913552105007631338901742697537512108471353821148734148579385777741803545424022429892393791416080208163389924401997211711798340793547720762968092962093121335509048062700752485145195757187570574464709261058403656795095469480620111015693718762017152910387572186243957685677683987476275264260677793873623165335738594331475750899674371047437946215053134626415713320513470489533012935141464900537064322779915447381750562036282666552395055452257354701569420967691492773749924887850349983723778151823119123894380620349811666749893992290223001739261731872763717123809807161039473516063246996840465467340996054703284305241875673757352108275687801227388060582106806704121657870871623397877950862650828541368352471142820600095932741200080145797553413702236503849867092044952007095775966630311568298975525409065746075199607043022283075760015800011508540205539232760811222536543182397649449307029421228730089627823189539261238447889357959035280248372270682096741192962651233363026030709957371390575185932322144324871396792094074101014976924323184337030776823842737380687635123869083599931903598637490866158398744636235877323633210344659408519132953817496990690826149259178635215160043134855784852993386456108786050130244850910652022385992715680791610195324339722317367981920165885124426804106166059587942513240609681304820281222045930364501787367466777164837439403732610002688671475489469683704926456871259608611252672965925076331142175853858363809411116406100099207949623539100493015583912707656102491174382268213382620147491759050841997887425043584829356327672124803466374413728626622649293537950799469049468552394328585130719704635798554820577219545089576625257854157120878890565749785735804870329029331632531756032724334453053453207924734072732659859183775670305270590840098966859379656079560098636732188113486550023027867080141253965116661543063500255622544870037548344380859343738921749351780001127511545923730501397667188669124392017197107837974772434586150423290384998791685143247924164274567380929513533150135720358289575198641708071486229622230858885539117021021227626794778031561305063584688872275053475896624255068551804696232234090663061705546507870075760343279493847657920511119608956259198190626574218804351451143827875679434476424908685150063798428052856699324929789515894365318111703751334478358210765956307560539805733185759578504461511168788317609182252513802833722121110424955110876662881517033980102421665551687452415367818080363989197109333802344686068599836188280398763852417767025527676976426999410780312386144257495110355728271783517765749500312039541720191562862119147636688373442182866478870872581589838361990564452276747614968907854714886199513397203879152640551302526989292344489722655756175230933501299615844793987873319996601646755289882960477920259312650722349485817687913304408800304707578832124582202710204497888503073642737702627530929048357357437487802380490694155880376718945349118101669619321378754337270334051231104240190513652687772476843333070122220693886889747263194990578965528413487534367539818417809558701634766421857697372309073509349465626714945432345815374024647740929757500987369594882147075213786931541261733211346947274111081634456199810864952704025505592528465186299610533548555276212603433886837860485914289280708649528569457065415983433857780405460462791407958322403516656977190200385144402799644033345512376271626806564066995265047175738470105788210880644691200746482728192954495341760377020334831858784921114617738689048697717950050120849766237912775253128697298764531199279182170691763051646185435875361596487823168914476320944740663151391854212328089978078965889873831414359830693909006944527825100639369927637190500528424553149849185482866499515106614763502656338236851563064358426001165998430332477716922436475346840433030368272174166865320870987972279338991671586746210228412766558896786898229113256768083342595654206649650203894169149712318145873370611931144727706928170705048636028960058238657026118354925966744418793922986981159870990056557597374172108144086231075992409576309286221618304148852411125690188757596534237098317845347262070809078047406436668262287177445000130143057618510131252137702197299921947953225035987372856321360143111352566356228645971346770383972907418197299999234285145701939725599915870664637797171968078186140102786297450315376967050237004365049696735064070382595789421348801977273562587812684159080949014672835200180600938546029186461127303724302160949783711832678066050357791564983364750285222966224984868412401237922291039641282143504035317851392741101303798916785448001267415804617385685544753410730167554692168445605819550242087540823936646864560141812051092382598025160343203660315827761293228457187810568533950290612019052085908705066124331436884953900739129425558391012993450866074666763283533415729600166795125781745037593117794347409993128016908843924509983220346298275631359824015160569571334385370779404926330151332303588974951200886507078552902474314001842485713429336600565757170505576539039113168219807172712650590738514942155479869871219315571294683161066760173551594552390427948493971972892359999394955819497848145408082123787354224694155810828553180943022877158776317802493419684991001632808517793239510467467533679677536176790052727486815378432992172924703646857384532050205073058501683122537907705649637055869427026936053477622666571035497124759479250401009499905971253611769005876566528265100372778338406038758455495007060093022909340581489040593878773544041580417586997920110698904904407483852415497935697100776445283441920599537278566961581581804872547272057276693940171019389983852502440142012157834999549787487144478273887722935683639514403405359557010115687495512601673137755939980430683567460730153358855904115168395415962193739085169186901727922238046909809587215923815675303930176746055728127819264268499956806979813394002476567693772124085043623329502628857953160052216368652628611151090687491860578350768638820046056186303448765839013151649741944500279669822971455320429603623359516262828993872877576107139314019065919969396542807016116378982073906197022032421647744215078745834315626127272655200414962254464141902698547323377304890556427621952776799246046848621192397704027160438168253592316999574089895627051909910660602265581840642418141205146677775917699816073741263250772521870691947247453674973359852389810449155795476571285562386231313135269223574881940835370998606891131099598959243947126125054016349871006742552226398482604440596872709709921649605008122572373682510166671497714152988870457002133455032566031654805456086842276512321316200080630991694525748017458885981459794951653100928610828554287357174901563272921435245476269322698194673230003319895700055013166096553376046124902380390614984016802637729624923339347133585432908383475122743882587307526291707702406496238935520313022641124363842189633477048621716963730193185312905011277365448012116885133995267317457504433336996661307575966129913558384750110735626876714638631198711973581351593491717679050786648350688546480079592221679652008043817857295199887918049405069299704963150467023630234159567919903533134355041643992042366572698933457751024487918313127753724339728863603668208110217175371535175034813431179797773317591792938031488132444416447767179729961175874414329645689438272654052593183183086686172379489345585092118677481608877817951616898151059140790041418131002491533403991993415642014106147578243382074321789089833536902659964598399559685284012006909086157455716040770338686528232844777135140248763839904037531456876623083968202895444466553792384540683561016215519537531470786037418865144255256438151322043213150498089703443878466823534301383451102595596379236201882720230490152156767284918114236296481428064433367354050344861118544133726757050899467384327386420229994084965829703621968466686109912358003817736288739743416679968291213478815011203289907861748002518875830663025491846705758385291073758464406635114746919276206129956193184217196505569231222051943369823826109175510716731682813444388425123727686726613653888482822062475763946943461952257721917520706578766920144233233698311478942667719622497440401449941847258768181182407173778289625983988089549689756795895736563739546387233478483120334324143232609126533962982606122353543561025947597250023514097344085266927089283902676596000219190912344487007447199179822817895367471016942472042418872040901989001090481194260954030894980171083647919922231317016490218472924005176721237210150061633474412662532874263422436825823168511869636452636339485807526663422530955872690126956130684219026114904191310735239002026924186723367706396285340378716428310953424339684042986954166950199948211317275744044939684681508752543717468644269249292215493175384547917881694949224805940884588347003928517298445955181809833758441723496320210568592461800969117137434388997233651129908299624835815977942430651601652605340928443813004566019510169560821545505022290659155783559761972228796793690934630606303274478038088745495545060604155627091465066621079864833235546986619773950125955424836839766579866417096969643526168662603256648690378848998855910163787005227476995219417253923950080591845855953648552956225434608420216875279428802487326267036707659706100098621807510960311047199715794373403006172723972145324550586668423504116111006143612072340218721730863829597115443736207548479924235591591767570177672322647959406234784573661528441058024115897189820916903464827960985318496255111884648427663544425815422453080448513068625367008881856853561927490537512244916752821371920123557803420959959654508381041717127770373190201985185291671998941987483377781948489040349841290718851715507156988589436581580727630720830399435366145591242545043846212318465837048456937189545922133497289863838114642856445735354997788302185442362944375082924495593656190227728873168023055005607602590446327080446180265163237110430029502672237881986138998205943711763145381700664723968441375936630950898756783610621220821245333069448019391203269775434512232131244979221064763322278716498476532387480220005690298318352127784691222460404915971949481344730087501127189958873792669163554120244630493823579492329439798011090023966059275787047749043178703396680498096558599254995393372781988322404937686351405721310151088580116487534912945267381321904051187057668944398238197302629057300270921541355588071363267473305226185535173410979021914014634474225764009878650550854144630780631259914159254476069906070986529107089578652805339592860438014161331286573629081485654921381432339440699092931380542760743735930376175319430347651754294172922627592970475687046863331382999208499554575786937418664758110818435553005440512760349823719108422710961245560296878530931081255004951719984137515832167974614127854464307413664206639805347967919935104585533060730570587792085224197846075337534688935391146121049368187277947533454963403000684081026027306807920549569890195412834859475596211918336616849391878307805636829768535131520647948711766944816815599243674323176428357106808086945707208730760155833540825136658286963183435335943489861053526159751636282465056798451866248161570221638008466461894480152894763190722557939052714235411075647243691425451221564059444637969119787185570968741781198242219075247979115767021050379899901111709837273608399295874092269476184662105215544894675900614797528922332984088430482721951257879453027885456475521001152496153547939266293177747580423592530728444103828259615108304328586420347361796374678912591595950663732349801880595942109239618602614701412275937040900586603281629237959652114114727378305566980251649417758113303395014265240633097663741513090200961695396222397087765291973117638322393211357193028800177410262326619486501351028444015541012046579041866590865760075956280757453335750155991308921845207861418849903431213905398132907792964776067631336701398562979104263782465607233336066621918968770615816674252833080742643479279016089540604540534038215963395133612625680156523036554864095646147844153502373183692738211916868297917782630364790016643613854491436314522947942214164875017545938970098179268870494490324247181320004960824746006097544371412879070767507969263751905301715842526671004295707141197357810573750701126851668722913497800497721733752249327227900202670801736124786288014515947925858124205708801102411512229552095250236141781675191430041400163999775188019889169636724531508104646939021287696663277916225463577416576220116367546488636708615303488167232868384891479175408586178812571463043449466713066062063289875390834416994191921345802385882515332190788708344902450097938611323240294762343566050956129544562675569874017630010362071588931241326652178630266249654650334507882627747049143018011583026936541856182471672145963119747240434799930774966632277647451265214069695328579857973829237362544688979620457537798777070011919269722210828921962586769611062282592436030440023310901346552922128005984074626417175595531945646675369371471524933920175748115459513312161888607852079931748851371951194514603063758832820573407191800113765115134846597256919094071114242531753010463986980448896909101981372941376952573276580258698960877054381766327047640917970368645249377003668750408531149870254104485890222971322004725409348432798937892895474691607206676577247545401656487812143252093800014395744572056609520265782646652482373207016836220935820185492640776123979690011038795512345033799965879121649513899519174192010397933467407465398299547642596242702054825656212089086003206786559852198296963290720938946022458404802391123807296530897227288982346273743319182795073555237601355436603332978511567763449398782433514698383549569241832386540250581792698363483435494635405321025133045174669522183613737502894577392262137757735344923168871672863289936173336418160700243453817430048300756890191005146111875951344604002012945441608336236914111735846665567852898462126255153709116231044969007373124805050881981935262497602740492371394737720696467186424229624090175801904800727030235403090056635985419321932828744265702602406567506597217421715358339165969760181827455522522239280086414011577467457726959248273882808766870804150981544244028977135148172638039359657844671796680908534486762233757582718355808142291146436297905620948445996067247429994281397809245015771010429411243398624621789479729759418098101387083994453011569831058151398477135361238902087171642944224384894953857658189363864838758094993811157979236088722771604977288531219408502823954464837063087978751505543745679269799391515923239364338868112119084153811622556976083093540115067473318405231810503167211470874377858304652679804730665315253740601226485205270328589737223310211269168515798142888700223950734004746170295003842928224654131062472458350524430405297295101586710192567789726455250678728872073258731035524751716205841950387039278917152057976992850435752820720192471489421977960230475420409446525615205459550132191500195815738681024368738976735411021999079511349749432198883772285757764729148437970008810702768474879776269283832577509939459981077824858094432162930632135446235444633418898078639766965680269407692735984394667875493215919410268888043964524017669688835474503788594511701857717647503329633049639383414133654961986914080705431570681893345032784870674437373300152098062047299146011297613699408162395053714510227716658584044062805972576476983459740807524138235424922896077062336973997163947484190776092041861193930805485824977421066409857565089423197868594288347376311258394297803970303730410463449478213057626601437078096470363067344143491956791462860518298192734298464652164220644818609137159878787009492182330666516028875466853038972546154539821623025994652833265596042089209827360821034072308556564025122436798746738312401872586974260657157136078815930079882422355523507104109603841032279039088043265810313583251257180376511096943130533808527088891769840955598968444471899758765070835695480535318623140224925229578818650034719588788772832070847410205753704020290240360672700044841739238266749322769710734507168853041419309639568497532615389233537464503745912267735575305145223635456152706656298632219162274729153693255543051511126951966106159534615668476089880632744867995355494534855927171670406062307052848941017845711534364020248906648551050374132468780568912730823879631906524401280195949044628714988572477908706985572038264985205593100737646280425621281009296953642001999786850050287665383579695505752293835690988107303150901412680553478592054212753421673127475641509096420212019961757955562151048259201634535627301997067929947051287633501558679953387710560157894726188108347878055220113180405022584891403109695262079410708049585865200207935922098723719306574398361614993325453183626367406376120233209865973719815750438623150071674521014683215201603370075560967957328823662092353311418227189353383712607512652501074611258844098591091152519547458679825102042970770600441953501277221704034634505273634241503629127418601807692846903687431847355283516092259411678478701128904324231220187030689647286445698550282759450299303799619217240275908458737874432335405864027966224442942724146268244324323880715608563405285588156583265938542190488612759085757061684063912169745806724642586999612490884094250395932831819539818724833831990339033725176102798132304905481909677789746854088921674831629813704186421883266120923132263317448940853625421250033440297108944735786061720167418763596537381490971741270182856161808597021502487009667257500507449066930547067513549978977467512766788232744645036259499558730029615548456667572798073598554908681317933646715963966434559511782669850055896090285013187169792472191878383350567825819878937628609001725757819751249393300785311854254468358109945710516490845214512320203045751366736243405346473007246892399572262038160823382077482060358419520632023713196292307423273575478587628856047036387194639980086975905883728547595321233249469812604293876515461156453812072160825788138045513192199565951445399687576500295847237152806195337615172241796973779439789650152248648162336603341874357335001426390999146954264213461717879143565405246294251858392327741905452085193870933325833527190222349512764215033692296444124747895254678191322304168636855337480706474823280344364731161493927553809298317740450004849237123404049227571920881930854367396722458452115571914181084580737171984356624951656692344246833357588666143927613031315709855172545548553577128079967450130237096731252097590345786229953529012846303558598754723258909394997205783116733751427402379827657117494987273139417930994519590739693163537712075379060652307092871814170006872627292203496084965612740905873797564883378523336505183858050020812535705499120266687298020570875258789773603025362726666868327644906303650143652413184379018216542800186215571805358148909967577090036188572549286648384218336394236547946841814224584239015857949268356797258594910549470958881380337187234902327572736044707335705300676565295202820755401751071273943433345777507406298595951304784480112213406950318920441611240423304304818116992750337846278612554697826726546683455706776393347709378531766063102824889200135252999497884108160858150606581149059037065939517870456214490375566051988327523571860237036936401548414801638338117690612752991408685328516382070483753582182829238635990778390027221479790633488647891646364399036109978314142668121940446385950226216621786431739689616818755610034027942928567732148813527902913799707444597884709855095411136534396795887672382012771335595666001085652729706341523971677304771386660344197323144583242224544982760765605069971916146074178547499712969441702350917155331977174449177092389748506877857397171511962960763921943427159380301053231307735523168927211587965525087048102409801343907687433997967643578616262304224775489109182842841937971654110718670182303394522804954148455087925042896591541073091677539686094398513190196100843165146548989749778320206196884224300065308349776454961472235621085648932849355768941091779836504173504056166805264403603140043869808021693759693061531746272446498180135106715941037047173339890362459267933295583899578112541704393858723473536280351270549907183463496699630059445508093846266742828064403336401953072433381514438110662840607270959507001380578892315587362645066600825046170515618268745843832671002514218731723814224987940176311648040260553732562500328742345724626046265308720160049810031445781419756388375447246950404057613355050884754783876071743705422954008803383184449248945911139118821479074155994286147099350649140777111912297965337873056867309669352066856244285571214556901805352671471836570845582283779542521481013003706729292066426862575363466809753381701763542545333285293594412081222074703578445495379572155036785407009963125114931070928260513496265759772538542238302344015749731450492279189724587635224799741375557071382781009819734308025710758481303000338335308266511880577074247955384454379914929574010358252870428800544437981529382917919993394985897847952626595947237473915685177093859754012480676568269615855039280229646760748302485345098569935166889866292699578219080178539420260793559016712593835907601537538357139979574830178202660081820717484167960602895742329462727617368846772517541020335204478174202581787016599907297716403404579317004227271632347872023664996523605792513274202077387184995992760504925282305061957905871864242290463051413570673794437175210114236998712607030017652084349586399655134489695218526326109954316192430979525196395123734780100755252611827479204629408718285265142127089563698231994293918172375449148369805326197995865531131365739721913843941017183629683584684709656204919442530923585733298622683486138901426319700482559254982733023799716161950375270686692226041215636617560104268152920038954681743852075415084748240412153234540227214996726033001037659134505640189665297163493588129914154643699336444837192527015758256709185942982420412921822828280114676703675112818288371662824291005586633760733124725617399097831284435440324645191566869527721538297807269753703428004253516704724311299683121981648355708833005989664410828382300267161079745590408415026294970387067491917752525275359054239057988481458099080219086039211623038837603200579614155915379949621241907045759829560859095460767451681976926423349815182816742467113614520560232528008348478759619713201035306415693427294865367819733914267585160751004045092784391665120553079159535764791667811396726571286486303098142915026779161788920925344292705566936734591606313189428187285770473584561657589776434546895388658677577671835237801126647852149602395091173851761757969637118587682343128202871915209169599646399534961619977109847377111981213271442286875937040357923646223048439784474705023301542659759686813541143562353682662073474024642654516148677300228950643972955045488190433653254829178203179799517192680924617843030607215438570763216938256435616278767822862272885705939176065102548612632431098522668764325436929506668760958053699753852294607013625594784403874080196976902779047825031192893260144833157718678965507465556571197628216947868273522521029544507504675298470354446828687630939672673390150523167854660302691972257576668966444148845386214609727418022868155568118972420532815450323060771990311422528090295924960000571766930585724063837001381436865129678220142845143461844086878003745279868174080139724234281461258894198461345791501811857010350378033674337683453139611421139553949276259050634091682726482635585335237224683290226360446969280323311482271022892426411680732811878465080978206559755460599696398260330858546257175866140146211638674236123206595761912541606708927507712881766673007625507624334644141502945182101733146238823949752592329368966930067008131355647825090505429130686836254207055952031926069579231926008733110277706197821161647097089355596834670585193652169737461451999702194090065589083515458563056517892282724382254708340207331357101910148431219122748725502510799755404716019936189644005511962389430205956317458652240410023899620215109505963021804317345881376277465809153092291536621673774409543618425274457339622961183654412111030595541098898496421951814756641567368123909715877911661080544804397244949957045675390061661539298959217753172320116725826027213283421608336457591157643380475935735646644553733327454394730643472858016821590767348782343152700592537452532922762498331580665387734958646679233238570971180916851752698537771953341095267090189706319503840089011396784600799403856611642652989031686880136456280122195489138792392174519932150521794837075498835791422386391363464747802629604994417412952519227432432952196253380848951808899723708338709517548509072881595835902391769653802922259735856203729310768963320518728070980108047454148080919451311246511981227490935900031275872158825085455916103526987213067420021259369280841990071620277946816794797410293461397463229266646972246928356844017527650987586713725347724957971213154388123218155961954982113546262726907917267084266203523019943481182620001362122520347291700275476437294752616999061258904080568152789095321802764373224499902946984337733883070168130673960836453427735133104991481656720302669178238200008675733578024965086666278642220497926124568750785485186584151370435796513790341554615098833165183900370129147614103938811886314044212345654386990416616069302180989566558645777827416946786615222110648111718418608422279540300926809550104294956551920797517006684373191616721899535576734133092952273894536623832133150254677111419858963926845856131607649473780491727571722328077057156365327372598105609759732858949145735681971494867196801256578444563943966675816704560090694675702252416999826531959688567875600770605334809931628015068223138015472476712524345065227708232051155545370849375136593594624119828418701492275109243284139250073115741155395162040449474077495294773189419089950414247831853877117534937870261422899753613512090345147681117912398728107362914442086141738218091346656589961378281474786489458146347973126433304771765389910304543657783068425733074684210592301087937942319833174701475237033293787450363966148645581053637986949598440682120954038902275051230873943015887290078095577272455651952737039828432814531184962953687434663662337752373081604989445763558428166274919981361231657787380732856136632244057705948182333934350960710246803096290419920887281550280330377456235885112652077827231296136913326677323142800050806529908639984223328675771837642984557363199645766560561456841000122232353223004396895138417605025433978453072705204242406944326212030842750908240944316865383106983889360723380724091912064960952914189827670540926213480140177545014826340147040597962484760934913708871037359200665852009884596287089030974300641370676638791065846152808471654817816707133473805495491862702738069435682287241249639660377613743333907225765127751424270438582951871995078979395619449351649769321644661342721636500986388873431486984477528418706659788280709940237702138433485650947589647138235337252665401711932536254890480346967315704516006816261216267508916590496022120361772569500196612412935388781412913343757802985029820773812445086033029004494852385249949336267843881275785519232176689435264782385665374820794369898380835952434750190935715258448034477555840701032924962410660140059732024647418037073250567047683057508153339045807665476110567169958118511007665966544074425955232298214340795368911308505470280117052513998053238666572031181880764979113666205006413723946456896041406518081184772804360206723590718647309143016840985026914227443382100705735123537077332568044024743170464365797672251940367350413743480726504107229110451649784595865193991176913729109980744246091915865166298692714233475636515842840789983900413995558818367381627961264518306510162459001026927187916351804383355267887302347417962701955422681503744011967799442476490556350877662257403358578645278155644761660130623966069258175445295396571587131266114077919986255346749343867049977922680800841728030838677667658960572399605300315350509792501846196553876212950744350044577082263109254937565417317868690794490437692816022923002794165103400506997447662963503072896273705388777683291689329851211888017447776581274769077619206246501364889655179553691870521049481434432212910995518923018656161576975959243817869214352171650243537166759735254431446410100935375465266136308389020139509391932133596508219791376490392078748451284520484848287417107682408416034046801650812297433221580194185616932659657153272901586352385906479519647394476128097886176145252103313241983976812580991553981180119029812615858653491116517873363421766912603059677014409597694243829747870976290899855866460494315589916683772124874557410187828544890799888968522154651320447458222164654159932971057075206719082590516501165378051370137439545424387591277921678863692046098931292397757132440678998697982599205940746559098322853323205645979729092771190157216290201172889353608120617873077805645730673482857184206577153084997037120389443122165569029991463574355571038957775815854399709586166008341888798174047227466498885773022635622460590998474945385197006825547424294167270083559824992350436445156586160269561445735583086430270634593100060691086330673238202428670142090766532386602315501606914062575602994419465379730956498114553656783904439395252443644432455124358420429463884822054885911633910154581626436621033132866682525783469382925360921854929322284274280363582441570878945791592405558451805047278744897096165100721868143774148005501734455546474410434338273767973219345288859066624113320347292037718952846306241355367403157818906857060004822971136297315610965514654083383524201668994789628072557309160721061455433322300440139061913198753585935783351383999872770295856400773756979826594959774345437463877454833568274800593239426120830075642292514063276058666763272098908367507937235644981738857169086802277868510157318849197213525717117538079801063479757648890338952950210334022920152034273735231993002618790305222165220204692562066049129233403437125918801595069960402514442517629543874482503739420428346915089788283282642524997645968336777303956704651028369139023982055335808782027516474193203232742014690649283112257824044990811165822107547391564033131395795595762288171566777049053087302507689930079220212536181194494206159607550224085571066989699013992681207541439691537167816221488028858273304124994074367801604177500511428202401631278154843620748975261938693411732740591964930194512951690680947088198390645224878141114027426903431263175928224233241546602699033201109398073676579493191735400398284786927432668659232063676721673841441930855252534402621768960558388840511591313735963569095748884192730054013019228449276664552428314783396393466269207070734644620379666110069727542629320095380197621031669738524313613968270759615230079134144633880983210465620847348130267521555195422210724328180269089922991259883267704960382959821598719953140896926054737992150772921247971206040398408511595211293494506093108374191118721378336622309751248533065210660096912681948517450090012956566616322081622391564299929189052613119975093161274368944225760219156248483823354077845924726504019596130908505954281791019048559246014421747340440751890612737916554944056892963531721805053554424330146214390629838927713508216685606295579581864636800519827510256705806996081048365224016943225534428654363276892884412348043618210316790517554358428403506978777986114831231901031906553612928448272255855936378676729605160693319668846875826833727211259427059736044145234728722452823619045390295462503685894395344118755855237053866468965631944950448173607335395387633758377370235735159560823700014920240553276998105049937164529205052088254648409805886669657225927474637783416122736372784741072074388923737117977409040335469460920836325666132467262133548785081225687334537271103306345556580305823455281262828379206657086501200396809674599689371276204791560454957832697738377580889115183978110710487015263703903603845381877295977613844471311282470918653487637139139826942755780162727673183730112430500297882216366250403874313729520515127491212711255031264026182469863337683614956547678746860237029002532916934761040111682235731969926642110623256183278392557185695299095393118221544657650174942209923001175146476445589491152014306331563276594252633974933532635629387668832231285587892163649496346181156206580366576638132277354044676692293730498626758134821903893490624670697958750884088573643066241370582898906794387980195543107373475557013578248310290588285266126503539142333750181480031965757236251151413090325598958588577456200555450356059219452939127894550234286382859834871709511054415431310562723885577887735475910299345540617754907926135889818087854867090133471969635480547390454608049913560353205583354135167961898260181451043389818794762185796260046506985939071027837632050965278226778622829740181277703721255905556078901782434540197869960383675225194058130776865179773992359830063137578015003205319837556984852251933229830309739823402124733988482780824958032927223234742407569844072711693008390861513489141923149272973557583583387058478121043493340830537427599351883320645505431545614164322056198991775662781211868503309332760386496055417898579483177993862233394022672123024692290729708828409987509024210085573570163771570713727421002727188407684896045448177938042622079434545525957861477182157400720691186657965511517065594373572374264045391125281908378283324441196806430655573829902451974080923221537259578124297049420174442531433320905070685738188670861467682188998042371929024241436428901432178173707689646705910066673073120840033207944992085125980972200834004537554887457158956770492768705755385023842450749451177319422655928339843294622194773911726135136297142605449045746917432319743043531102815700285795730209555569341873173825680823658919150957474988558254011849522095552651303379551629381872881793708911488200266118608241035869821531248814024905011831668277801250960964939936214035419527048112417266569163706971897419417077232137035230167255394435099889702287761443498456548264597387570403687776286487870609666294535318366497681730781657852755492419796420768931030462114509652613000171662228935236517561791343373081688156821081942429109600288021378670025530091854381116950695762952197949766446966750814712672454780701387872584814975952158146030004955945333549690860114096306681814646127658114036643845526883977777311325455876645355891151237334977671502405963203182870061004735135759876244266543441458733281808234009802811682714499427092307953723228520627738031143139571909769881262775745635092125260279676517519942784355698141462710979150247862739444198100787061861387963025820934095375521589896177824198292984877285256388073600112677307628135044878340072131433508509937383210684906392794978327555108186632974000812714377029782568346391068787112744657112181372609313063399678212716044222044867702586867254917518920766192947153700974958048596487281439044465416916681875346924595540827202575095406139016882988497184593807815219561719435082032035869782311643168186591750590157666963087991727285258637338376451872399167960914854670325103567689251574409103596607535024787204887969912697588570908509099434848267915510407988633405362596186185877796761564284802135158580384443464256930645577399202135188498689205086387404307953292583208267711281139569808530105994317693139099124173659661173289093640305748057823964968339194287066139991862022665452478407630550536008926585800893705123442276506215010482358123372297371205342646618090488450971142763723557066236487864967094851006012343929245060209435598671084660733359922127114100467878344130133383353644275543814047527233682475354297638034711385777966610659690186360194565078277941515107472893022463494047507400976257856923698575877016538672413432668871824027058147344059705348815708844159313831568679000043741346403065014306310956178073461029528945559588469625645218678232902155110453773918280795975099252523663042386689999681132107270018471668953614263477623289411272148219415805072426997194748077993378611821630675357427297402351549845123987517318213237905625462292743440107710998555157394261012613109423999400801533876691447079828753461858925188905328586183811903252724603364887641047992653519910044468764908811244335229325260516364679449153068276750022282178026581989588693109060368077310230537374913257614908087352434601307690622196554394273281305638944982186654296578737121563742969123801261911016687170720939429999057979358342363625265568714273020865568522525752689717830220802299318482550679746054228768220336883777924344867048985969253103897080308315819371886693969053741640486591541419016128835719718437958404948782550792997618956965398199719423495530171413288716574430053303156800638601077036910463808414931663674316864501333298960149990176630353763109899625042684890656710824112112611971961550912059875804698030250306310579351884058735395634302422491730847706191769869187084425858484254317717281045067207394772496481156352273004670207286051979704534476356282393823730593646083614464910310657972112353470388949470545278686225657694289693097790508516525411049424235061587824740384832994249395436148361941150890166245416963559841738073272852870414478980932644991607686498251197631099068257813010696871504616644970477905812410136413757679241834202672800930162074211543524565485086931866679241304458012407319321606638961932542759866578365128284590949260903561585545617732255632802176163226721734911728990927687092885124228652981704994307149440786697687160397997613909699473543050389841191049389692160346120621551899655153628113217513453739339776843682116706663307541956128876731734238485808360539442839837759062186387466724005662447989350881809638634984589754361953687269947017497323847738973505521816005467830211864875336947767860122378822919944197823089688939371817632881782794268647713377878435408735368677883006338311714044481805227240486462252388066631157649703925997834510869296799705172763040921021876591994303592486536729116782262282337263560426493924590043457598085238663957771996593073988937545445488324043133173122028923445575051344868124367090565458848443007896540653957436219418225585816440221960324103954135155241201098902376028524379147668591144032670954258850151073337260398289605953913746952596503650885914877201482219814758294256634796717767258316645962454834824411642742018849931753181368900095276656189495668392678095413714027626353265434689950847085437561970389525575382475667365426612812755658001818255232529046392444384033243269088980625300314067123265460702347538934053445675278033023636398616882143850373546750170673210530516596529592332173958269688693952142900678657529851891892713666608237209518642987015839877211764347125756137760889221190950453594706602186567613386605254942916951679241641804018589550523394568480285646827635948623510687335267240105300349698718687751274698627927877438165368518605213765419346949781885003968702303234053236829896158323309799080971943554062504640978329993989251229399424770446986860351615162287306704450976298619228695805533042940998153728503020690045035034987648970629805883188417039995336479765851057664201401901525968996594129882518142322032453402105552718638062270267297232407700267709420738221686578938749965902814188012052778514151008908570595491251687600286133780150658256107512923641870999719774688704888316519019880554325244705663246655925609114555030153986839031724640766545096923168093759738313673697904825665280928169805440860154151073152695861049540496298763065280479475731316202346280546718793679258177128504471831060830895018183004900669471119243741044969375641395212174038119147737143459523523298137656932008147551015569322352876052751851686024129378360871331735799619991810076291438310732539934238627193512639759676816204787629564416706950807812589668036165829172831265488562837276750466181978745127992700990354883774694864459969461068251281133397978291675148624794703938582425552978292460317871801004738126326178136899155863629718283273711451987431339903528771523221440319163817369731064517965936762971108511158807384414626884259533200816219726369329926346380311258152712683549840863098652554717507526163034197393735764579893699262564513073374547027397994981198391755837000048734486517750249986371313848554925031250033297033309611352581360307888727703881267735905358587616667478906851135938120370007391285575343356096543772230047616973929994275321247431674344256145067317270360514608557879390892625470575156980117784407242450894202061534925388269590494428463308638791539140064051099202791296055267508450356009446656097435886568047164017048941081223877172131387332595537435782135535991894667718907880859110023650947646969806713293206950107638385931016233540896953195473850970119597026608219054658469862582260144798361543349721047082079331647692009084964050881064460551507230051521631719877824358036394185773022542416944355326037412640114503596899033328529219956489937815220202160637281272695485042989700188210699048793023050892642000368297568775038547409050914854319551499338345819228658540115722409197107572140693608062718231553071990807438549462096553773629408230488284324465423710141082149836435681421037510274343103268822835809431363433113740806687127593238036917637862066014520572947117338857816637793699800516810668825001165143246713825269975754876220298388859713939529892856893284440973912075941380188214256234248437393734234010521618853755713376591852313912778454105619373543286030228240204012228510905719926749637974082108561969994035747158770679503791103882138632854174035701222431469640680984951774447391681280095644394904935978892741481371421955598329731561401161861680883320166043411170647755438562490082737222313559727493735554522609994547953249252227637345911555325467520608140880227599262851410270701319897366841371679543219751201846294070822059180589170318175353579117620505544780108477435609000004802321686447582503860140667185887865806490359318014207762211119820389731667060699462091966735160887673877567260403955989417298673869692691580102917704413544505079219100493928973292058484451038600115524745505060047442080486991786246953964854259845670841897296133043969177044874415974649237707012604124088814123225953147447742563581146340609315092211964380383723734218232713602740199148928840723706281973969555622435094001767853401931879378154114041338597308778815912224653935820807656425815938596032253695388970832994438141962861534235374997723488395411941711064351211697982199190092948597372620034297326548417975476557916200666577436569885024368269538463976140513266402264936714763704234600215116206816648445793535508229365627177089084860548134157768136964746613991713765690082833389697191330808189921170603043336269047249780795342115992459173241087515240580510636725138672376233275536956117868181849251298758413365661055497782313692245516029771229506155513278846897734139024655883534487385632500730436553836249552910395356409183149542607944349038793809743731938691232155860161901054389594494395312098516285783690627838368470020663073499481424030301721017526820528924101826418176407054875883959732183876471632403624824178935279808219077396761756888927708045562345539382676789760448913270576640817578668539484098359051205144531142660297776971328191241036071927874869752571105309916551171054800240168873134221023245532462443457153838003368503252137179250821767311631744035805856002667838379551599695972588530506765261216134760209449646817747726797230643737004499485793436898469367386012542975169846115383861052760120846131992823384262498245948173211813115071994198245207211573728895653839118187561122335000839726098835984751656934167314019572745119978411775043990183771683186807055063452350469843174988700711167868929126823937772454295579473097682184567916711538569595611809317251729915179876620505124670678627725378736713536173762354129140465697240541857512272334290258420258664962348571556343243149048070490712683268528788042727506547259937683818969861014927306838671510179169944593085476888112112165796802928238690798525816393480749716112504694286761704880908353998998221731692485621676471172811743234869337560585930538299926775193485822409494807076083331940085935431419836458640511670514471044134104937044498526818287063248778135628279533757560014005828944170943765382229060216329735280125037301034486571342550666817010402494428101401348103092154026441005894219064157979058060923484176635793138915177990062076577810353600273536240313690728963719556968681674513154367410540292969299027943148756969850631531037631920000697153152793268537539710989179947893007078032566722549283683656544173367561469099221306829418361605076806576449792039800831930971864659671617187739158056484197279441859094968610985343587312861316246088322391013250454196352247561495038989157642432692495440725464965469539938820436493772605870267551622009398720284402723334565471830461910045337504015890175735183386257938519888739739141619458863756916981541664938072007184491587581307285711122408353109806251022884190020225820011396595217743833593421280113426552962211235892746576362257467948460509354604316851083898790852761553926866549475001485093061978955089108385941317400468598353486078175695160941146409485581335260560211174429836426792342404228700454784190512932384874176029067974679708780099188446639652851985921233296755028218613579268736666784570371417455787249280115985854283229296220300197514665302217648823172332101930415633850343872009626639676723541748521200492659089223122677325526429119946768140339526905797744897216350837306662481473468679387329592518503590686935136484778813246631949397408957934433804898576692008112104421996334615509765051373146349803332426803253261541030631355622436518870954619971194111790516473314872219224699949128493916341354772400899183891481502600709553002960754125453155550302699598190919896461018908463688099489262266879834387547446384517018631205868103059719443947037761680439335035874737987722819757254971928864544486759981713290679352325675198424019126622059469565450282339966989767508057262636484462958234078683458840474049019748713621436094505195441230848054020595799235425018906195979231358930493704697576428385547196530219421173827460242566087096082963316339542751032764263597532755994292119451126172943407242944478777896979922468178631209944379383531906146522842316453307931915114398238315981359884482360537024351010591587545106140993709985258248640059663666629763333392786266961608609022375883399436726677076930923822042128336155514837150679704192998972250470835577008246578780054114626611529441711485021644221479023872740546586187320328226315109569912254454602273200719839703628405725707297170650423376276506924695090096676856420689065016519907717000497952523232706749367450462538745467607211234928507119172429310445917152974904098187610172467395235347708124226996316325199444881640856431556881051003316618406548681363532777343950430899865336547406582230188474642943722825724781433788801305126680884294285790249014001941037160565174030351795742430740034848888521455018961228919853586103755881225116405532849501332222745712555341750517173764892723770585048400240774550288902255325734024380710852410235788881244523211591576689549492401965706643018377774972378098406738551052756145525881134975611650493006856668532163036578432022971815251044199374873556172615210472165496290764077605204588886574982099004930493353172159325908005430106094725377717740782659702783818774316218959321037063477782553361576663505974159032544676105920479130499739051028556257934400867020006486916308933712525934368358719959142069088857441944136800321135665855578760786475225303480700300416674601387511110675991743964321405876430881053984013522609413978199507070209589703712111208295746107317497890764147481082241426708714041636602769634075048522128181022267794883830046301017948074947767254792156310534026220702781568936478384412149935042587932994417580184167152090897129539776640533339468843024811620288679878550767184578650106972458660379271694727399362606139630561225569102129899597558393610155881047250178944191275584374681680418184580980021485733321095604870340447012539914760331318734539132432505412593467959132048363615051925575988806593348112086944792391525466162635005665427924765711177726107653007205527972966468157364392285323411818104944459209130889180160777362136750109538259005656996600290080655959859508974888431170715532307330449864887466475958636445120767488246181013318492663178678684863198227937459094305427299038793343734109366684889416250410380336736230675928046741264117855210343007917172560687435090917817586930166981266919153237048621748465440819083502663873090482086366007179007285882764341861738488338258951569075092470167663427729445594413143448561054761996694052420648906596064038223436707934015702986729180898529587020544115338931080063150292695996440774834249254434339378031250710259265214874502972145806866452498425660454088488487113989828686872708908224261027956729916628312625449712885926760319951608002780400608529281122892739088602059847523223723365601341211855775839455962876194457913470686401711524364790618499603602962219283508127923243914301496120177088052092118813310115654141996728413190545519980661607060627996619022167712153698425763933905883016146618467713552949372079150842721482427829930977408265215032708969766937390548212210413833208607351246100792224695065828035873543443758582725767828672137758624087882388190130922489257378698349003575894172029097939675902420287883669453950567701938669729675058314658897913734965853634325431731458642211382902037525509334758365963449709672896712767498153673550173590195546084292530735109078315583283529389165438092453938168548420792758087294573150672054472836869456692918727979395148217546267745058255943252760491380319311773310995660413766976878267282886527337082220931539496920536161581635973105281616863552388349344795749852380020840427623412318583106691203371234198554203274204352569512881154290799846809041087829086696915865590577627836570267663619693714038534245714539056370265578139476927061053913851691577937869307191391023981359488558174690513198634514308719988310306543271439569562656364603313946256933918486990407244930234888622584966976405650894730535228113222809237564585374969570078534989258083199492659205455022645448366829082023527124037976479458625164959609177517386221400983038549146024372351652636926195636489757357567645448659034439504499489047458747471422762104851511307021006301635919864688120020905770333389780317091182514595832856864459029509891106526406277391742781612964781643723112237540309026087434360189632832271699135283269864940680390378712231859506589481657759942031361404625694114673134765983391787758795280200645995824844483451341929072667650540935941395403144247408615950446634772025970276035737339345344730985945156448256120038401890876298585835287325728738219740076262099828099826921185782321347329656867325292193052389344276107470362254316072899678404448556725056234839311364369479906020959359218968058929648303158126324877534963814472158114613335964826524471649677151662632694742110342553677262851730561503225887926572868616634938628507429566732101414667078668652671738559439035926709910213288888239190449526062455488206535018850554407347282838330220655053844993094593405329631236914373065105473942277177060460037718824354166936685427859134963469914303657923370480662238136751175884624409634637890220592862198289892797872424975997182655696101084262581584936154887945644722797209761576255421325491001341174707457323368912096635474960733001414920091693320035565262671895358768894032184915896027736837875294952612436999614453152673831379406015014247085220690562956160219533483043553786611525225428368134980320731933597401478534936265575041320958769812899317567344503555959160224578081502014188671151567045100880574218143985860340713035645937100275495229459626489743477631141962435590259318341267239522330369336195451639983032673232201080983436992770346579580288468236582118489386988164229114050814804917467639402160393989390616274905029629066517616922479188621843864358260041890447496069276711289107613411538686986630870395739506164608359294811789568263435877235153183338438885408136158340280335225197383300308226206055009672371395463317860628502386406685463432863656587953143390719184160994525330958328354039812516589066460978602699703826030039222097883780158129008730287065180152406968930527113920562666898501655645380580304499581082191565730317395299060166174119158931133512229300549744485458011595503104924477675186569929892201457793014943903353279782188515665288422972063312418019775210627982340189280880059598232716192776944218847715435074891178566335047918402062671337236550400190747929308407429552764014574838605009099707829358708577350979703606014035808773664034581857773175704236120309342976087546479750875561039302662799903772845710552804698298578510821241717878964501224983530246676225380623752787493566322744193325857677969146315939320257299068110742566422624304932270409841757894310567239607184321306469521444562549507937497606692548166015521758461713370180362575979624062487054737598731980021030933618841205323811184947722144728760631039168630995602029753837969974809002993620011675136112470006301089976585615249856267694822673168466910618281075235491189496110156998544367373574352976882851198476972989496657001058076518722321474931393771632765735906117994010456789858833326134667722189514056942431054491332567114974041691648499448148780837300769630161852648179471825132099506828181949080344163631504573007980162745372333156372101043081274425372850787871620403189116580341127113568537154609603730816753904801011244614172645623610085795833233895261360345602070277842663215794943462742505594445090410242363677718126703452953524469551169118855053281402023018710255680965175932845695952930487615886370350953549748091981556296843111504163991346790592071738238560287291558469408566536015163087674085065751084989812955522707020533545147842712629162573765147847685720998741138436275219431397039025368071251740348691917268843247156231752209540017685900609608766025860312017241054210334453553500271920239138597925556375442446730595418880074305060734679503651938714306023272658071299310672815251198121961526842812123602722722670707132926691607107525777831164758340953026730703388273390696849744788067528178621202518312006571540002183050841997676630030890428237699134214823324477925849984111896308823263518797094605487826448761283640653711009934448158609632503578440910521526103686491159917766877643760732445314797288083055170921474592146238937722439567611593489696893675292301054746687714231001589935155754514448511009613679027437052694204692238938763346698981526232330794573786492921006752093461006219165733191832890194431536222937876801323177143028258943130169593323323187188143881480724444787653130872561344519432689448170114871316763083336220175058969441522327332774557442799466640583692942453196735109984265294088276769871460605228680254810376613454034041712536528331747393712686397049445807963140400079440268392527654759819671894046800690268556551394813206024183494486523882924202844744752710656779185989987821217691016377305864985395131329802448449388325025703676861513905482011893641415341883117252762225415366323300005537882988367181642387335700649342266614438793317331447180297404772953841636663541582237455569950425961179679415239645793081783980860407933350966852187511540881453011249086346897035450382570180530800231830061994631762265811735312649519341449935039244444286786356291375308409482444823728323767705552407460174246362739217405994763987163341537755924603346353115859669931669983631910545808270909921001148790980908876219477607073278171291381049138188692335860963202484145855606117883277074688620825843359587832969751541894575494015091906005903377408968085173207396700008071885500343194153483214378543072040283920080815650156279252096779928079297182682968447994576811574899620191090703182445609354582041285236517247383803015169493919588514917138017621790949602681999531262111323720178378983807153979036971780952780405333919886889534676675308484378734718331342590857452050607973964304518099614824659201545216615667433742836642117468504272256697405862894473414986211568377324834882236294585219925906466597502540238512415656877421311657496833094996974891630328382416543168460627333901627671200940678546124177329118341867332704112999276474133620100875512170628305297310762503521385100701073644247335571406276708694184237406426869560016929501576613677630629072470310240142872069951384641759222708816997833659625866684700640777067951303600601413895728839454846354648348053499827880540593549886182230251379008546981113040277035983181142161077355224054632116317557076441141481809098129549710521709410436801118003772304355178259581266542752804509540392635257447481238156086817904979402107948117091151340280997398762797297575023092139343560343264145502468074491895777166091369074412847281609143179008650757162439825766197452698069059667828804660922360920746285825320655302350206177806622324093281217885643624219220814001730905989236128287406312642713429933132183790198561914258405970572813054892052441459622264315856684805719046193943643674298973812306826104934501339605130206408883490392881769965350195121578098037609291318117873018356134809007955693078835709340635901042469922650992525975927783632295891911071009921159850065262574983992975373495831081596764561849808571039401426746635244366187041049605963611745602352540252282336279214816490115726435703727505962927575773381629102915312147368250682553778010111950575679314154536395562536247070572263092429173651922056898736223898927607915688051515809165815375067240222183921516552055652007854479678465794149042343022874518305661742925374697120832513394879155419277750700175921408267178832527571314464633251381012114938787279343200665985687419746354063632114534227710161479303323914655707556848223543271254063818696752725179650432646583037904376359998678835479656542783528005583322328399421499362728058424900817547425531317316610134605637962482222651085388746434964786591428221397383331844008682274728884483125535740331144537999053498325541815601549183325753799080475062747298144069721174956721677920204190657736717660297283284158299646699766317765954679996287514771843157729924845612310061602849677911412395143373131075718177677748420280082176481469128393211416913954456078316290097642945066895781855693641693984257036031134894671315618649632737214289865743074311676659089589616723736225665768119252191029416374684759704327769364523216054249104529771936766123525758285387196483407787640465778333506038064807164835445931249005486783810732726372702947120265167402957390507690670295790584435940743470952025247566547962548641726476731861456347166972654859796447124170648298991468970621592619496710799753219612457114213634793590179704419098100747136280018336345043351650135181110221778060258227348706957514302081109152643061238983658944534032108397955031637883266695835733438162979956798187945269303515881079053395891398006644989488194957011409363642445916892932505040720700012607163294339085622713604980274884699812330416012709615714360745755585268683875249937073760568035654779694944435213997072556676305368240705033397951012452035740120674476912488452073922621469464335886238828990816540623917250799105582660996664580684847711374335317909708541507506892722991052676729136497257242431939087135554073860037458460760662632713783562073583129872738770320054065413250421577545358782778404851059569489322445111913153013231648152956789258747114779835279759812972702944405610824218176916873201208814532904935997179537421902482131769891057224155890590176231332638736931577589362145642394445012537181932336345299849243754669141336150172678158713115019625133418679876718691196083569219305706186768207602654906183518566882641420370038135568746446820004946834220049281179484214587795962414931835163839226259984123556782997220924226112587333468719571623936833352585145728750514306554783721129634829235436832249058721300754936216404562692761816144642508787940714164313186784436575876618002045109236290162864692574941095417704350627443756969976430829608288160844221000459979121323864897965747743486534477271311977134859859581049231400962256058488373805998516892753385545254225904961362454682528948825629028231398536875680269956897777412688310836739205685191469732349734021091054531992906217726415252726964345938934668227345765282771377540673816734635150950766084696496882695638580187496709912031266769137362160165561032026425981882321865204150374181471630227195042918400438925779195663171452422040001228331310315564803224406593845055486006923482507648835485303321221626372809609657247196368712532221461880969577425614937256204732169998368190025178387574757623196311445259622987499656420291287963591485039605413541332857166307336905989845924454443068793569272768404104794809817820688245440243178863431726908274728584941038113654665732446924783175062527548175961483223036235368970519880493602900476563544260607139418001602430567510742296610490324638870194801236363191958759705311943014007266437359608916404820994541070007487574774260555456095718461288386639630941340548549320740670030089969468185322463849913261514739179591596257448879320165413480814890807750978097409832814797205825097243266534721513414719390588258437606242404874283866160389786029878416771122099213440658618689437043191966163486241255380274869190821582740904507814034015306457461790371015343457256620640239303415720794735737554249169202320431616602473383189658441712242924301262728527446929094353611480413575638565470396279361744444439562658564861858692417077068814879695570971547911955790714886975373391260631355822702461991283788239323506714914750426918687197964181291188245481375508334611744553640829805764913180230074086085431720584417760727516340124106703191164758804431382975357173805119434344137871211995487514350349712954028532579195883505378438257493685144313456680195455763374086134135905290525923248210726606636917128878595362573937894960392823686554789579699529049933782176926794205700399748391137132178990151513715986981233575590195017323779877122844702069243653464417750044285852001359028801604825615123032200713477186319315241175713602755409267033293349538240124446194326689689213364489673729040105441929683111686869616812561076325807047339429764689880731448387030390649134636355154189366895446029175315626861430595795699887249809608014467229217999261065899863139018398634379340461150488288501097221783560804326580039720560487091452586846187647630561144803407141269094346956882945192598592431766703086120954458945033474838245796870353747200027859659406790846264644152034780614221715492126287449078612917958018256568200958465887607201632425281612664293734616532953328031875902175497619523659439364600648878720046494596060371907334670535968858133601531828433372345173733452863654084494812210776855489940351192063722444679188799416224724280588077334014391681844442930194288572873343613192860988102770069241272825604551688677038632711386793234462960376429250027497332574083007534946863825733248307746535496462491664984004905548914766648334625699700078354365100171768189490280133984343741109189299404356062126586178012512495777785587321148045849368562062447387296637625384787675480688804899534631799131455736638274220031448787990712349285603367570295974218311240468099115621706304557050810539796245535122521409015736777523767281793236276502937619143029886568045542068095794390878084370766655352344368370356086348886311298502042290617077425434542699968713606016127816791415707350202011997596200206616970734827328604918797315705238404045534500899698224316417755907040721910668158915160750685879864524663686881521320760833931597716742298108488889210435229937430941115083062637207474473685085896581585793031909246569454780120946898618307578125325022762915329613434278250663810857134660468048809734180341201810118338954190346614388700881623290626690007635578460279824793431776324270480591382416266890282027020404026636268001379679741768010623720498012957140909426033092722696555315324518373681161539550865847857606096730845046906286031026514443300757859314093007424215440171230646418488357515168922937431551579040107570707866431707991479754204310091547497143050944263790483196103184835338642978390435468751152283686427012099371383606546258370245434487332868225929069039597331101777023487397305872818826711266602494093999230447409495699591359192835877019038201952003200762472767235829164202625934870184885637829449417805598315611126209796592939916351102050101195890498613522645759849802167340362173586532110775665105956084354762178236399762028740426017734381501151377781597027224231547402913547121289167891081734079661006144959976448983494133138697902872290133053739996902293540727179424307523049111323625174635246870905822175975060965133200743112789179543961806960770572944223008339888203231494390111238364765865535289405937872474021942147191277615716612172321373952307236508634706633934161347441727366514059068329683385896739496484881551737870519624530522043673013649350047001351596631354860095470937236338015065242547033524017680566316895381306588898062303733364337881974121912749541388580058138476123691201600634920059418957286545114863610527715881891757359321347956111504808938753121178397717066882434157465006481836126747285465596161239126059099656281252443407560463273872991004876424180339564768359356466756045059243964235648700254256242634732769430549592217103772142322409696963403262127405490079825420205772101642615205237340177997529096941483292114113417542723105436422839175677537800315943888324766271492701772925331356132641189548131362433197693224513425773606916874782238168588645839391106352227973840899679682458804734418082683335444278332348616260932805002343225070422031191018004712450818908222666054737317522308782673222686175789171749544264629502424289533171170868918094731132814929829718736462343630949652697269641179148705432646436972019911693373852960541789854410621915958594575538322954520526203719754294364616863142427570421396293818765051541462028241258273128060615780137103366643286818340461467946358875643673277108170081915141525207287141044945859488388367253534825890371875067908970682871816146701108001570757779183114080255065175118308679735571261536630567077114320974267323362964311490845111884379469718687069514887378770094613859396085259409761019692960764376746301842207860255281775362129349569900910485889164478376393984498616390803419092706839894906706898472877746050158630249455051294751048544129997362138883209624214029203653261070186487625782501249747763870116965745503522102790691454204349915605510902998790600226343812767004331976485586280233065407985786508619298754777001173035795683337450371675066280056283331394365437021676678415785189335174076807064050487489262079196055505798835128414849262389701774856072711072322561048967020523125454022715126889400600784466489415767545785197502162571677498326390501145101414691250802052277650290363902791077225215965697598814753293501685111053006662530349133594948133849306457655242419787874728417696723514559491638313265815046479659667786588071471487961360741129005798534464297608932482021698651394727966629613397467335400066554771112258755069170088783350768589522809671822267333733461841075896293152987831160530915383520339647933861843101981168518390616168803620286515420994804669628070139227697774100590109037974715445035262537237773090132417289125382762182943024264995996092587851004453692855915821748654480681129011279445791641645512313023295093183093376180650808100563206978391544890707874169759212111085656369017606656643056624075948190663080572416537303274622749285829819606605523163755421334405934133684566733155223561316216943540690530218238392195721787524546124796837348152519031464735223566737904927576984398770785672230255930984997282184662311922608608542934912329693820154800456843781504895192382911388453097766608814402097980989932133642156800244432000772144579941493992345985668237856324109316995010212636696523767812894835741821640841778551702261355053419430153039696002136339588368700896548874258336203339345114687536429035643006874779605107945499563654040392963681147931102560791326317524728314609848414233044024497519742281314978281907251338685019435020697987478227522781261326263103813579094369614850224904878978872716007321265612678604804622798581271123460303833535254005767713849141701509578961143600646505974634203325770109907819758970656021783052279570960245514434180060312980805762244583859410940776914481715823063996395189531505974043214487455944321781256568351257006831028908012810315235193370335755596742822778233962311275901396908339698066612327280953037965420789035782199406875584867529867637468848058013811452247920740959870823377283287869430197716956996106258979529927704687338646279549773789580036483309172719089265337117259198691337899802543704314883098064214324936796219410960154606857304431391761072682242799225536741292355411208395081253130956120668197946352789494213118050357227217818649515592636934268147005011669743676796246505768346603847676807035938780153854278027157482189740783848091527017024522006770532354933378956778992304575545925037909387216531772392038563055799822464456519695833001950792808768827507198011709437939339093176985858030929319808588257606385756650361273534293559824991293016522003380398005940618147405507557091891322452396103399583523405900033987261499331427849937940764375080724161282985158989532235128308997678894967364867445070633627835861910712827193352687070123417049433686366082959899710780728244833583779902704953604218363182253748063071552516015730964094233916855439822840347194468318695234195731338524812801741307557243552370585783104784831142251109385397385499507865862954677985791476043467400761868142784806582378947030979991755803760440437209700931136895948085184737154269747300473569517945328538744814471748236351567337905671389922765239907558382764254508481802366659281415881059861295263569031605050880542480553463603853695387954782646419139316407082307978909583019528208968281782988523064425817938657200554993261865417939186645206649931489261929660631319438632448969842941081387380100182644470958146528148935374894647377673904861956551704983907111292877586112495812941512312521256748871861568384079055542930410598583183551646054246381122392848070509754461140271703460640160950409702909829772031971674808192080285391439728150949752870907520578710687272788350743304733249217387460392583722626665023288122045726280219074358886337405395213801667846972681979568085860915094231497671907995602829929139085770081286784118646943202806081329149662774328587161499605679775048548146485196199427006953386082061444186576648338200146752068331112336806024718416468881925181576942003387068288530404882619670511542215500153910405890523555238418911800415393230027628405943901781932832595433714058240924481388113839731479581713163468058605485908324935814742507806150384475283625101219115383093738111173707717851275882296658957443667152306892311296633980076458472494762189174323402127536155071850091628048337020997873459518925614628742644067686565879843533843373601760307689303830466348964946199169916232057113523160413264912560535007396183369195723236668476606691709515751460100057748545500635795579418104174964312361341872683635223080157753183991526022071813051502503398734917383880350786267106473357911804958583529988810327419737312832339272299586276707305990957785568571722638740881164173242560798036168282610348368901933113917856748697464504332881396818895589021749894421100241416493778433674604108694366309580413985798415344369559856244442887477478536713614766334127757425433187802181500827373454908297582803894719533159427794336815434885406034799057202604517421849165553855607882186203267007968135211792242309503680838785242039868263890822824225172245971590391671914670617059192256614608009726021149544722905288975443841439058030957198789908756741700370351478149036070940909753565704113747735608470640849311640114837319246929562035598970942930068807857876221100042692120517348537079744126800363593551839829275131502238536556790692845329971765125555331470818700043343856039706787942080758097572733336053728935843157109677326794841219445074717214776178512271619913928542558360249582781541342348523844693502879809245990323987762697855737739688946879714794128383522644221283859127581401705616415194848125088011800850903554358483024980365362428988664017603678098408632063614046517420274024019437738485563531799334086567096051948033645484981557574893146310610990756620008344162266205911350421529662370547980471206244590278106749877520496067556366360233686325548204143421387475214210167323408282454612774157309953495608876369316146236205829404142389194998082122417357126059193931790381217516681781707573437381403275293555291214372147468056754485256342399973003260174451468547461131413742240767577960096447449561433415953441746369334244776220061022259476949976889853874971919216788276924689886072226704547473863943085070639080246283303690153485538107751985791134234589434864950347751132659469935628987255150224908730349895381009813070982845365273371495355296940279167868521118657599434576522322984973824328962997988122912926653689420462948220410468297239871697651837157959911159909649119646364643819956300798924015293520866279355984047710114853727412317042009772156159636852832973302471290841189608582850171071620004354128547537538254632929132549363791957054290051780319883259966567350825358400232589790603930475102537168596439250554792391224890090068628997526606038661238635498766112418808582679295512298375178063648649344513457497954430281096470100974528949493485577949713239385548415267531019202431283266323135858962354407475081143178522741924154579273114793281317278156679900280241983890453899610776376583409709098884428998068240474568113997454666388817527485453197973922366416871783280488504390758884375364781386343869991709611289378133768553445220748273256235647670890331160752441239061449847496754861845901259677974053639059076460128868331574205655980736741968564776394087464857393771748368448638715226982127195055925454133844393973097047316642555770484550467260473687655061048584857205490464168521936802217593673071134828385745779769258962163399561531034120043505128423360603789536598762152558296588352073065629826594366779059371268048528816384604142958356924246648875695407328886392924601053763859476709607993333664220427661549521322850398199135364574477634670582738652064504706978941400787245642414671919855237178850763138605521333162188989205681546970573883163181547719115720283974874346332534039519250481977733388974854776596948902830281159316507732937471211009489311446781354795992464069965543857989614142854237743500052699062183150025293943089283063373993944780317225329719733520706657129449961127044487545042656501013759580482809102010489229306838437800640126920787190285594742969111135446664215029858103781728233644420631554688198321953873067343141961265614694580702113321666414732559763039961559971422892959160427730483360143524988772587690418018597957780290179097732975612228392638600711295026390876295824530241241657756423318447952542785773073531126470634185991819568532918382319248759301981935319443595179799691991506523441575979537926773869486358635398360180937316550380949707076336058533514125103789638670227872195989195161295942494249663349938667332726933844274254048767196587983530103899893906221414737546877981203590351726498263932382046747725187352984023421564459883562775049858264227522354829279557638910494878257916736961378385933760333574477062626391533963248845968312656789722825292784333717993324931208209269604622577841862266060473505518358377691418333557256057252131723275388499308259894762856027461030351503260943465351982431996150350505090837178061675042755259049266819042041584606554384175747276234737179891157179558723142199870425540551482926071061237098048746679498369831370535649937871423017333999266090676546125026774825440591294636743136530659260374049499710729772598183381326629207914623041348195259529612418233016914695207036173686954318273706594771269945038807910822245145361258402874455675342546773122657501121844456640426536783318003943785662322911703133199776710115287656856454438466796437763322402696662072714765685910157038319815567617622987730229672674201164243371838890988089816740374099640846511987461208004936876603716985603134169519632039597323565989400804152673075195028054098574769833114037050388075721999781156273992209882807320825866979827976843058794878414445839250355119163412211632208483421171767736070197409962988896546474862164925875208587319438678105580345999051475846868517939935346204616800411906362017967190870192161792769131604199840212893238337164369991744898691505093354584023979808012347276513305259009310397157729580052787029904053859881943152162905277820943911621104380591821105731324202132266304257943202874629505567922873936060848940187936513573118674238873835147156064592498188433280764369961728880172033768514877857944871763938254005049668612260658027619720953938257625300962524656562689659659592437946405021480848501236147952148407390304677452174589684863382759156496660578904267530918891651228045875738032363754413077889753352584790221256081687470015955074465688683076750455381205984067225222217551680106115584989515244016761218984993835771298528275577206648415305692494761971384798774987324543673420996359071349191522875305404667235052857533536177073900853559197956298638657292868519452793154191494050539309058472476392010930681645244653485372206778239811905888300330789721426908810047397484076001429824418542331762259706192891476629737465921932525664746484718267735771680577596872751597188580891920524771912231465188799801051621668440232979738853874939757742535985453806905994912515524753677586517361362077063007762825386602947196209266905298133099966240456288069608339219246630291428077962455158771822781193959071064783121219449269443993182203607138540277598442415099751881738699687929811267450029097206239573992136555787650589446791477815388386983357628800616151721164771867969681015139053987603649056487908548406872353283932960040111713606206435526194743213389331191541083859223748464386576318487562800796884703743827015116502420194706528314457132061077930017428473609095212923182277158177490220601950389376598332860211363197451041868144504498291111396333260706136435678781748471059476677717413880642496106160199777479150347226719873036419099328563279974384364245806853376342561857527637531392318094971948248552633001623117494108640199780191888118403781954313207040039584947496411302078395301810726108883292795666713929022806818275343561832270583817310759471076906293715553153864884063287025641132232642916874430866676711646332674714274296518627261215261788974673267522460749531688444302470343184963893916352355825720080160224950818289135777774025851921158482506689556821807749251657795004882245286485539504501744975396241311068720527262955034269691388220018962133299785273873336161609283740215000821961867072507537377539828939995399931922645113634082788717041220821856930582677666004144265143438880775871988241277745038321445434116064679591096500968486803104123184057147130787751756802991639430126704589913028557061513861043114074380130769769115592679669695679212401245602733378407825626537330118961399544817478355006854956075542404698302410766997409959509888641603405751495157305832390770640363243768012917031513781332420099231452278039513873837618611311707737954186754024187256906097299580816546164286671710860433059655425296782028564727419089882750078419931017698254364767668114018270028754285528860120152846670607184714679842578435843440045236805463793174582287146738761371325076744084880595423587118503699762070721391354527986098976691950161757639361045425836657291202666904960312219661652903088237978164175909654626537011057019700168659961794746154481536020331020475904175130716556631655979122802610038522481285331635068032715700801129415295290389380013906252574698244418307636288652125148450770972409368447259933176181892291015886650910590111901466674630580271258360882251430962550962224171493970885139292543024986092110509168261066052258466094899635613036371143243033529765135303251973839510867544837989002266319089567250505623634455999080523571664608398432479084193580774523122100669589841379315487246404899130282952982257544931926997382368794544381316767665335525774022010368609636216424321621851767336943354206856664379802978340034407558110764064946138514365065382122122747645206144399702854371703193548502599052536384357168504121212319477430758106086988568315727636845097121612136643466817708483814967707824491827911155490800116154881860567300503966483374036700138792999819775590229912538300211544728207116509033597891460119811274785018751501220364860369029035095384057896873368503034960133614188557390717688295779068356531562779876299356777862608915217702671096497379538178114878175371628188409493374063179081998168078876076827380288845693244984429364399355729375184993109312721282082377837668826726098483623661869993645969689310033530841511384366401857510761054851111405386761877532458854329517486770949026282319744996352866990638752807140875174457810584692346169639301425344012851246032005445887163401937953246709399767728376667016911910518754684214597110443988817068049394298915161367522066826737451340783932719853718584844236794716104677719817809942765415747192417260755608511090792103372869294125429815384102250029818150289888388245744284683307970286891833458822358227697033725711491562902976837105004494631070289658447078336123786530160723714239128042474685734585885201995441263994303827817986146623432961791943187290583923825535064342650439531195438918578691911902584414120545686664279545320610198174655075830522529980988783839980547179326736130437623334144053377329123797650657627187470694529403684165636102820762170287274962161888846985004512102750459134085453842234929925031485431371641359756898981267796473036883740350878183072614047690282598045246625146105323470960267659645175145979046252164531005467728749009502710127022388974732808704485693708903712182508010690447193918959164328892113559079841478656136734373065791633256290324738553554665404893312860063147131257484387624779507476624554124090897845232506493886446501418720413103675655188852362581770844497066885712814290662606136181221405699251342558384320165329412865235741246847841239647471682770468192263017808158905906027499071942392691853158828024179185902038777604326133113136280124986238669338935092495129938079674659144512926068652242355077562895288941730456117619316712776454893365266966457090120825975950666255451137711407376949659715499229116915496016454252654070868559895458294515438430455662676249806472933130393876527661098513289359644305510617153229994312627467373341374625823174410045721678011812207520789405855962138567697236620287243219554035945400626936750712870848713431317602920004272867529398410046677452676538139935619403037705286446795904428341511216624329511506641209193965075965225004701314796397878678696750758083974450378681416368239454508919971109003403301015889373345885394587590958151101596427398306326511086948769431072270235498947916395950571302081716243705749781628264912505340607533216636316442696736987886502481323968014841081701635819419615147213413560143900345657566373873109665199311485221856068023107035837830133228656598364015631926715066610310870680716813522953480567093521458491852794471602738321613389499104320429719956936101103854016504988877952323323115221160951695889087031573452359699690827186046722061384876612322131652010185815545285805523482110433305956357751811608135195749140199967908588966264705795360517980362388091035842672543771182267059801911238546889714058664717599878413150029047074182706755393382405012648511789297955492403037047186835258224212658803035268070686719191527552562800850765975859339582365744782497838644912895563702675852703511852337990034047640050178347526897615217094681200810257003473718074717924180737427852143735256995530023770071812976845244738390391929634979142112314979675116048793778815703499911515359003784131542776276483185285167396965530165803209167840695501283457181967541871446495961313172899042741192357120781047319371807260145910475965815682482288530986200628683996437365483534298261296539239163201150440612720188031414408430161027886995009357291043234698813875334737501416394925136398290854245192993737354042187073181275175803017738895356646106323900600358715027043173006558359080225096335534426045694305468067187993635949265433228889666414469694888397618937788133367305629540535146613154781260676431501629890304600408919570525009737403519361985759883589894905133571986186788111850025953696835369316322051819197149969098357907629476724540407383590169251886495895899673982722031959246475132130915709555461704043224162632337835949309784328973451052533468199811348587251310280340957014087959475860842994573227777993551926722937208062018825299576063857877989141316217913329141652436623223482225976110712690997582977104244247935191510175607143901469077707380644768456086210996630028578201456421463591337204168476388329498519429015209974774331925369441817143744722973160507960817975019645247201767602924546303514255619555472224757735563155846117201085778936367634406095716999788212635227672694772270912352184626179530924922535930207972847174774975272671476862796685191685591662023122408907870863293805056784355693118669273584539399883958137668494736602719344055477917770999449280291540601310826359699757654017721200748830387519278628705552619392827081227558623737372303930725235566898233902766754783072532038766058758947638653396430372581035706995663948767110659641161859226918894571199774737004966992450113958202729143022842797055417372454360283161267355216455396496959335007402152362981091397812682373465263184386180310452381275780090633468390260006591307269678973249809723127291804300112289394052400834364333108442761698395198929721676672197010968803053491875102103469126539770283773007763176588375855817521681482463811462847215051258098555774488032559426849413982770290194738021751728088810614447869771285579780883964834861850189946745143425711045028040380725997441493665672525039453252380273675099360799184879636534960568231759335982227979032784529481349073214810806246510195070548490921339369017766110675239348701425872811908388643878715301278082646687743752048504030694464343294233756522321433051358733491045955178857304814030128936737163857735716987867947163201543941679616617621309525919064420557825695757543264802388078008043346586750866529121173429315008594674851236862595228731358791207917103734203641272387083100099464676747860688251825675558267784406385587912109493569478157532087826421249134429377693940879163689200042879192459258702585565025506717965978850072841200949979588018556667982036064956336202707395974093282971527768728283793085280328149705271526551734360779513875627520112620247917286996656126282785811422173576843227535819836554265570785299672271835057970263804251061233751481850770629865650027272677971327158336803640994830933820192321045384656164406505937176516328084671828986074843747135842912301837638117218973129752479761494629482180037614169728989485494697963170367635076039494938102034499961560975105579840194133788483974040388334630355660393614115736943529373845184946063240693463478740950021799827319245386333221970743810720286106980951022058132910713728505995485182217396442786221842452189158388582426045563844450471384557406393313349459699513482784338993152869940392712665062254129787742039311168211331673693065737175418001474046203586193940840958802495530273634965424728336356690990624962285922089023896767973752998926876712880803808851006838631290343505680759777644849137094713336506020829221685328561078215504604606767895254732904067961866999542409999860011972105241097666600452624858150823984304608944475081803457129846560290048669797034535362860105957275767255431599681491229258623916715644846033438625761242143656079377129863626739044918510088711117751932864929803479391127645794204258784205196341233043752021102592882997517094728060617490548170271597947184352180280266956418930758784853515699448849611696639073495224856683112913242295077325654102156278069269843955882328399861838929955783603520831686320546905351177205300255612553397260013602503375489372302380928283268075365706911383227735500031701650554502070025156452668214177077895732886120999541509493867950610904026399210973289543746199917097953275529613643352219388533445212817036957888727507814826313265954287515151154441141574942582506673985265115289016571185714184052839824389707406057674741913118828251953825967496682850993773942999417641063212167541836306183573726858135327456779236145850711726490188697687690101156954463711258117078355838672991717269002195021953136537844659945955349928611735656677869736262894701895262401668753867744962098512602698894437704264101425231387788733246630140127509863295890397025841382248613191022115251902452920576657283889055975859211225294961798645974591530825612010092467755161515449884597718444082468144443888583505968665815619796835269134102915490950970687487026747288071000279864895663064422763338531607827016675692594957914533577923612175212785449757271768011250826698823871137392044011504571997991756671882655083697450061254444064915991558535816081726179956392816020843408078812757448247458060181274721960098884149561293918359412587869424473616424239297392054462699668119149315153235879531326945889381725814717200654952500991124441537890227690909530855126445104739420661630445407982388822952618039626920469975717044429172846635321928840887765183348527393911001746935054640613434115411945454166294533863728763740801530441016402980290394074562082222289672283852503653565060861302383541034262148114954767485018403226294946933930390671844076337526294445142229919715930428091108909102986899905904742157626019118168666609294971135090898365829811662645128140230346290562980421611331266537268189654805861679792821729762202019818253628967128336163521737024448553367291276357278199997721915103696060665628884436432424111846301629989358127735374602624289558393555064168425972821281925597734245354885392933671801373780923569797044946653503285138033229212487855696308396557816913729740205077120057631941504017290523380623254850072435513055938709784487872419230292959538354490957609919652467611956447437681810052485105802959453735637392025401357416989468747321076227276928383079853072172362109412599177738237960623442680308761744316295643490256278761830625756134692303680875061540828575112142993264850685240754948391017131858771551647055176103418518032385527953866088612834641772370591463422780626222176424232343525448549700135256079384657437466961916693101654607077750187229168007240144030642883183402160195019788597780577501169810463549798609350437944200017431770910682529619522135986162668005594240768780934515410795622573251908935233301568356382116485619246475276764921705242294375269780321030561676703786599820013414766540020977614777968076471227371963993882709041302691189077969580592713772750544091864924223646128593901157314620704478477263622994090909403909543433124420307572445670336261569391269983854560341379644650966825060329629120301856491229123305297805668944383345643413788778317913848642149177351289934323468648062121712091983112564111585365432929773427068068283924297268544781291005769164883519037861783170203482178933172801898151775273211759188583371577061529468044325291320136413377518525510648728360484314158861176623785971790928158961574488879353501372601241491145659265946729629931381236531310445482873176024721702660979800268542091807761822617138323153855323389049024242576874696090733777774134516968265402150204843717810923316056844157847602981011980216830266066397733025068301433307299473752631835074704494650741145251500016790943151903450584778161938531593242802426258526331829967982735970795763696782948304936331631699006767924798350336343909185756169784609121886243656690443864382399498709017689497407270383755364653044125781676400447280309995534790749851731192449462949174064198384262805566655416068081351172721296288638888640191763232439899648534526790273374552693980753872936155535598514991393758088017187953666572224392190837736480503596235847710016872377665573565519221532524271508378004001506660209598239578590777558942856711820413167268982205878672151118889767186176475247745912961355551505574498313114309701539243033195552886709453525948523121201072062498223655245040854874683320441930807088711477189965105032801685591197596029824662025743002110596992016860355674675254252347482807159815080840113289281088508658421019222878030426375712063355766508086491854639327217388645967530089794531544399597280956460115285517936885858785717099310975080406304312884335568059166619814358711979261107928213877993386404219191066047915130655545947568152421351579607398861984449594640656974719616381547621155374166406420275005510007354006989344542983163349173916747054850390059560125928223895762676287383235441075317201130205633781333668053165742371889192864112569891245373030534580918066848498391196098070528226475241332812941248352285979984346380766579399861298614088147746023101447254944056905893029006564400042671733236948860570654536046055249880927147012479136304426356108225129386781575087972064754104059883400612012695129085445993399785374743103807147047193108516343559422147476973713526387761010618384527734183373153923154910791251744877221148980750377265466552455026857904046634433649760520502773388147666517275794045674921024818549614854380850438802485547490710149338482942602642349232218170974229870031714442710014952431045468000625973056774383720810917050065106203636796998647071492335202202649701845469007400428050051183900567749398684817570660949507309683646403935904056594932791261341570827577333146125115635829156620025225936299902628698555121657587925773996861599331913230448172548753415350646913096778544714901927450269609132604643226690563448097586958121057982458532852320911519474407189090050192670422491169579615740031486101629890730357149120487177804741296999420182289291837294454122670949256246594903451385678983958064332197927696603904784709145989163338280823331873220536535305541919010116781525471780962029868377708772157660033996565649269133315680631128063972308992098473878264722961033950131683527592811790508195009658864735193011400257839812763138652037994864153249122188806252504434592878084543464339874531904760029612630047557392815693140458316385078660090892764496114750759818960835430267346522067351663165980187364114841184117842792113744532996426006755672419456928777860577418722766842445114249712741691602493013259176202505508296643503966646531146461044505687947353565470056575561308878182538429715064467775319181798656913996106983019428090483363095331099364662424937738796546136003754430602322292384567106728446947784264169965904661428501775438516638242897942067316199170110942310578786303216966720679181705005884741091747460752123782921037081156991109787630921871586856664894171785448072700729426814104760465684004441394820313411585706930563276512329864618615264017122063240266958811036498459089984896187392157842519451168506219022009712037170910134846831028946848343287189390566826669342046918113844724272682914908121729791654763176063294792596076700124997892764137493311247453914113500787674728330890623275105138242237324413241797381348095483799824975554417025116100543560006485217770529684831015812200678211699200310261707717681092440694041920908209593593332868085267588992750278253418794360201012142650170362519578399519184524410925889306037144370017279894172773845620500649483872676437324762512277669391999994348315176630522525032361927604649299027121680919888176868405412924109749510294252690020891759085773667081411260957005327171503585278573540018697155865506826567602844895721375356309067949300599731793557163303647531661595027182860766188807251347133850351337708376278295436598514886174635588254520903845854016426599585623256530637258864880748420777023527814565640970848125192092848868711064321163624247791910136966516628170592097614263848951511190969519721640715963149742496569267351174476622015158159559932188921023376375580293343291520633045784006929539049278616163176920624834361790129570617054184356049957114901498243787240249995713134445071377480001607033161810817270219849141386980978176377580986407511759285359891798130998413836294350834926577230931332936954762372776775402692640624347245022245494538126454367222163179451913517163904140926059283069544670381798087077107662422876003373821463730864072939166640285628999432557445716520747796278215864502645485541070406517494737404879532625793482043626603682936427288624489165955127333591753773711218983213953776890009284340280004295510010703435901068817279553821887436998225880667138481617161558965764248394676651960492288239911039769664102677363820934437514316487112440261598626614036155703027333742348717608226752576316263648542873182701927181775534212296825791595785825982846985555752146210905823316260904538107704774580239485137643829782578908246506182347189885966728917720256818355335242893202222404177902595204967295896462283233744625404670626617675550165408947980184223167207412532534053804924860739827935118107428944922358325700429616683942998320404792603671975986231701358145932289022531592201140303818601680306347103515750185830122114649108076846863075334552106199989960275584527931091838146657364703558576432385466280221058678450494406569642555456581739506035864696181225725254229244556007466443396448837495224810693355991631419224978979872090433817196457595673913110817180856366287588292157882810752765017169282084695590373756020660284775144296620479126963365448191376111250669281494471524629700633144496011684057830536791973203513791313039440850727809091584066374034506786837090457143430009292431212406012069932210437986742484681132768580196121354937346497375483194852652459677777206029615608938895617594772304229351106503383497624214004415746357021633922881352516042688499980650612038922409325202467251845665929900460870118470227656299773468596575113812839624046063304913765810838698427608633760187875601846986689406400662201859598506270955116018699400133905514499632360977350322304206132261508829991989194347667779239186262976799047531658038576830206127596541671461426029184719500048688991958089922207773798772643471660699768288293787716733645185850455388039229342537567132392587894231498207476405547344567364502243094133423255187132894725294323764508976242640909221694407385661061537686907878225040879352270404641487205245011057409771949000631398735154128306087806905801407583602903646058295001633001784244427140244641520722863202636640437226006763694148837143892585894911635722497597779598169041544332646463633855039543977299691856936350620452415330235461667960265956283237215480398395677356090014103135480273502813584855319782281474361545111802750716306329544693629283605419301841966645807132147463979106932679147465546069338577944681058863411182829055972117441378180050232373629859812179698006321860497049163269069112532753123511185000928507841981925577352785910892046938891937494719342409350878690465694641666784960448618561206110835870587214940381990980716853439685719990202515263605253683875436887864208714888958747006927990406456782678695255092006622219488610935167815833604564767197156048175415781036681595539497766789373157245977813805376411820178288100119216465829150957841997107112601076490857283943701117919826395911557600881865487511386555836244095279464884606569256174748677096703514186206743643616996301339726625590493052658330961421759739147627703594950016854990965589093623462363508596269942156107720445704835704852588377829487434987452352691087058848658596137868294926689860092014308596102256714476168838721203085771499530839504103923624799627462513101398077761533147177493077492543730104079875911151364938685865376549209768012843570629828291992903813813234403484743901845667008076181456618657916145661474736771008602801831063296448414964452202119743075070445478743172618133004434580281936807929020195776957035502142483796211293600207617088344702296603918870485154318628360196619904024456034136229401747288197742951319189382959389032361631927744741801720825647510958660073967643163227729350525425697382503661935367187002731972327410115632677363267738850834648459004246518501069745262302728927203104709499951356946553210269079503687250949183197621770253768847217515017190364085974252767129756595053296489263000971925623160683662986892758247184292212820820677709878217311755974572031313079823820406849215914427379329425660390939141789084585492059154368122715510377211642643094947133091954571480802681388755931883467141688472194058947365389217093464311264296773898917321819397243605446128660848263049467924181324752309039857486011327350015268671515123813379628032267830117343900452359725778967957511567750923704949776157989631847856821266801175718035338681427403391477714898740330666118910659616757273799131006756315669240949415101799673040195283360372310547688761646868042226769152643257446563259224729958649418920271635017295960005942536568393289403907990594306209479554805589172944006443472048722679792008892384626151184320101958955516568077128389186179214934396264010419705238191167953105260956289211381909680591914488140933013335832746469171157462774554958954028305455683202992020936485549404625061843117354165794836499700415764721883833671233111202344222720635549121841545927888654024169783188043163576406982912655570798194466628540793394963574690758774940457259909541696055787150977795669853369897474933606432865444947807235197244192865798325367630128236780073641022223285586786691089971286651887464014747704524947281945314039379711234747275611489677445492315759853042771169255296372508940407212927557426466913390689204888577428662779229535769835976812658895616116920177371879653746307274945221511093872482704888354503342319666743840892392275963879077661538439213290008123103170699150197343836700436237326806159078860775258633969478387048061886582365668817887208598464969876908143896859309812724176965619281959153239951928354812136254058788938295766319378670943764138081134391671265172170781284917140363023971501728173341148745231496151978022634533587802234345525986859618174912357169392840524756390456101983339730772602669913915696084752731028598766804916571228578006878887192765338297162429155977371727778235197158283425463009194743804049219303463592606656746489555065338443305210768176885628388461721219572176503572489924455858261664484565863409398243378436033551010037132434278504479658443530646047708920627491848848702498397879306437760344453065955157011483964620667198757438929488932102079018263916737807265357217488311922997643240898049625932168457346435480174442160441571901265745746218277829747352485555167655157553652744470569214233131903647372871034225943510177097278752470201381941934112099723869767628342796423966096762738409260997406542223509669355897112912320177975463733069299046817200852833703167045291775428123505372632783384705296842671250934369324729441300827602490815561404020787856695354105480925779120950375484248405009357321522784847761801069368180976522294939888077770501201889944849025724755076017249778316658800076783899187832064281286671670063844712802096571844900711334094957741130346928495515815689906182299626436857900886929250700963322583928300428041235887444963005281586253288834646553206405770130273614815315696936120824920313080481034477738296001392790360584087543570831596704182941131618623482471064656126275560548959818642019186763157789362125159727929184447219557166810936351874928661927473244935549994645404013880022633265789070746044692170522602487140189032734491145803068756000918695508144961846500930982598270469008674711260565199337872582360744341546892467458198005476383017807474629594926203602819842346874510661802361565657830397051266405844420237670352878577518082994584222526407036341365844216539067150514833186303062114793373984350024297092870249241919846837315407319382572507702190325659804281159402455802479496628515560230329500077857307540073376865630925496336335673077724471518407050056889998228626068857152776828452116069076744015914611799325776140695330385637026614180326897127137818532898554088897869446382595182057470417500596955449460641042996115490812091437431685252923470864591781245222456479793402753476164924471630235047670675594556047713725962944033283486246789367190079584197479483239058470420456483962207978631810976189848322005125732352543081522682502317504113254000027169254660451235235724792688035837814385567821122476003180131306648280825181731707217928643483472011421160849331667985240807036598081625676060113584099571595865918163177286025537409527420068961931788290720016861799920259209812921369243386326071155497798869802415907758673572326484818286627823182015289398521110209589196332513999287146930248687282510262809805996254491176283608814894617101663560972008903450602321175568913459645352031092366798881628763595870311368500149112780055007730242955385992175625493901679868786127845251614868528129199945614329956399252186824225429023743855904109180420079613406546119600983224248724629669441423715637896741525728440325944514271231584885737824217037153367585254207106911631092425494193696144010080534456948785480135052716270616137804250092584063605896893974175189024807638343675489806815616299114040782580818255016269897984798838648981689835054550470164993982997933207406622776626728636069471960242932221845478309347943376210654906743407502311778777913576855597826029361443719164302213098562446296976754720240504569214848113952647438281622817325057536966208352554745483838839320425084689673015024601564518809614637520376043278727400724122510951805387487008405751608141941602426042778851358476679000794606241880847682769080182001006332884769978788657661870326316262852079036903543468849628276940989817652870988851870565347149220276999932154985667312817053859745897281899933448608664243317598494569147712154641853655486096799963771303185865674680640358252324114112329259732793615539378264670761604630846408600934216844090961364231616866294573036609452646583294478625895856182969937348095618162376212979178241982559667177158232296768056317181531985040492846431789315314819983328742218901466968374048449970384400726807869233014044875654894873526190055159483877475528254403891948156130462326383669385768418517608651135836902304875497957682094041082723729175450579099593183060492262678451150220017169396797983905989867219478919153379270049771723165350059723826678546784112945968819249968719545320618336999011640563164311981457146552049893275156177183119372362453478010324441801790209978707881817927787397432377795989849555708064128006678248754172551377890128304475599172503479132841770800475381809772735523632179343111183439674206455907828751513823672262547091455070850387641279514232775446397842493759369252978701998396323143745631161942401949368416546070271784245362644022366940580596096662792161591685526269557344633344150035311721725657284727574138317158528727599986834300339974115333353395626309036813089528258429028681108324368002479231508688821794087155628083543509569152885772827375621126057360735219535526398429483812164640698359599783843774174288606715398595751645639825567829974078989586779767461177711947352385646787324111049145403124342315136508158178997333260741352485777264189510496960107580285347643909515031080720337163028663288916068934960330806847420124990030713668722410769851765300067575621932597516857114809220585277219772522439822599129389748499959306965928202096871471719586832658807375214832898312509895991109056125690005974994820930819563691643942779297321196186544448363567489305243853443048973969204700140598275158903858613857433929030897313723339095518379656054687915971562990967008373334796352535386911866751673305404488979127348148327797938902002261941875727430932837321295775675338018416340184518624305382519639937563405357800660885133079102495860295627844438039891894535987408673638259809927867148744033174783148288416362561331408994892218648901206263845525663220334342367544918939423314201585223528598381437299218991374875831112909481299033324863096215263383084115041315467259488031217984188709980858642418974564553198609792750321584248004185527542443203671527111768313339337103645857130947262553686862943849315263484559462468324912840582618565172100735996896079415032839640810748199060280539821639866203957109895197193761284360345411446298533468996261510824392379810954579380999327991710567973990986071799166181004659627245207066881825387974362246389036171640510507409004842923155581983400764292074144157198091550986235259116442210668456085381765745916063710255409124395920885555344412911429094907222810657481912885911329491821953253023133590514171115549001240365247750677167796910827463313800318168362019443656490656146212513513653929485075325526698089593127003278646344857892991587057183798883338536598648204389567165291281533008313563441781018010176777687712273877016809226419375382548893036159974078363847788562841188141080293882821834267696394339450822181641550634627760742901950968062957346684127558482116320346942305862642213924118586024712505303321000327297762680543675240955274525543052777784724311348446466541697510880547670554645882247870972839735727907435847135746167869723855693882916147500217124400813705463021253205135547175090399914406038608132739621003001711424507983321294194185892553781475121851592477046531029937326194555993904082498162190723066877394610455015125540114220412358252213983502855324925361330215304301440333714105737896287888193032239072702340519501478664707956146694581540384750762353977429981442131506334462650325453631651124889137410893135201232604060375032188864866302806380624414853716288595623207240319185440483075257625682214357442357361557541411803445759637726849081254871792390109946878017863399340758888498776773081403727496262803782548676072631993073709658315668301034089566604531131099269975174030521861071653425284782575596436255264176551462733117960960233977625510889012442034264313278590931017672890815825075843373646768418318423840888261137080226662379404912095377249183344102444550422640691681574678783328106642260248920333584285583250686449081732119228187721484196789990047979936962557318972168613839474678321200255905217808600534043311359115682185207829102490050064404868987585968850586028256377758359639235061132818650293641324245110734525916423176909927309497094099324595590790307132555710223680629002287354891819343504149753959257370086025168659635260377170112880198813098439162322654552976336422441835199513012706181493843745195602790375489359919912770186492114177662097342290796163402908301502724560073009933646678514823485668960932049775179174531011529342987181752424356294718170478530190019415479848854778968777471673481077435462146393128439747341560052191649224934658187292351920945114725866143539434051610059113852892390653607563657115310369828788453980232105165629387042731388480579237952927090486321593491350647060170074927566660068727526928231906496288386782423740801442677105382118799102834086641465043289114569003088700565999227862935491109641195579902482621049816658140510819056741854108821232361543117895313832345228420995536073080233822040178259409540504785084764069097166397546327812507792867951021878217539945529672963076303786925856317727992039140511564684207837138543703207870103368791410807577255634075437996414642000831515447453431886211446543232720165366192366972783051843223170893274633141643421974477587062790980010059801411381710519842583921825551748428072408587662434499073693232724350556732428853934471251331040949653443425620903438956786618133981750326797010065088902105932344659583224087808348885420061391630913204913033237069065113729739930054578912545164447990320868530732594309670090337214260734847687002203502988707827661068918561700506137685956134670065685710526023383018232825601166661284694122178891235417509314125489278470682955053106304068971840475627115114076880913212407318335863628729853318323187336940803530838752825749590272744345945568470408424882164673481927299863299599645264525101206239593653815159548396403000543632599065752408964027597057171170687833178643624487277687464829653964221100434508587570831820333428017332443926224927350696192575651463115768013496663874543036652477463264094308684894854339440332122734656884091720480496412281913583606018724055107050465007090964198545050161688310252765796528118761271150847055611156926660774996493609304492759378135329819201496456449980251204849605790578299725820178447187123226738571817397088392615863327557705532447387923122321271649091973779083452734267875796870534657877420241925252293627740383578904105020497756244070259440971617518975635481052672361556384849054432762780285192150881312491251481538707943706417623590096859506640406879851392995111268903462309160019196201279386906512190126971337212322356155314926477667741529567650209744637628024779295161062756354200810431906869539635403276885905250510551428520860048815720185042171236342750724034015165507741838953206179890363013095664781425150336539904619161589097777445976773341434071363054799593168145529638559966454551334035141919533828736909601741683576682868791858286418544648210669099601129123964688214186023784122077877491463190553810670728627052955261859877417110006123820191440254674313738014459454608159464398560935945906085153527722451264473081838813865686137128255944219868593815219697432317085748899700808971860386708765521229312927140428134878884786193339105483817103747538349002666404891615858577884728412971490287283512183735125512033542413732211751082124848725976979289070839637883149325198115519586176955879962231580440655197852447350714328097004026534960642957042023696361550581897185206756182418349952070617497786971820251753599361396067065626855274463074764985442068161917766202096449486447914154336285344781829688764315244020598100037966706631878718859884369358915701422852079537716891851480548012698467275609704621036285190349181555999182617422930042466336036722306402681437318354140974500938722255840993771515665073811802041534034573334311662486961666686421486213898012853648802232517391010136837488935629989168364080609721142560008057164076178660179479748251478729560366709665938979642688317200698204898551224933872448811865649824641961447666073065975651808597783284233233897582646087591143339542736342008346224695534350938514798047470740919724757575476663978420501145717785634995176577014035054680644705976680096573296761273353683393203063983566739436268213497749628054893504948875593728910507916152705666366427932510344888154348207727184151145425406578728640701942113820720761461344081204586020900608596515285328895372892183515138975323830287784910259136205278260219369268026710313219596453949836450235198195088395927353070737681840914899370182518596327907979578068046567041632373113732480140805967373938359657170653608249121447330635042629260455624160923149817079155026363089766700052657886731256086843546622996463890417499415243403346782573984834320478688898945450129940171410105541344774853035933087340764557356366979851870132517054377863867412054171622903134937921162834393116873334960015387871124822114937544413681190684030574053485457818097358848255450876962916288948474014987866126745546606339396885808632028542204879665617256537587772224722333581367288006168925791071618865796296805459336129018601289413740564126092955966644757340394777847946559056914898577566069278111966508029047709228838954301690273257862138543204343552698090829420597884368313926569313608469822967659180956062165726560692850017746776115981629649052362490104144133210980741114762713238217410737279998500001194145980838864313611656357544653104473022481140356940688491343459565535872769569216059856143226582621441790394014966142450771936193979932144926068144945097931616105251435222044178165589394297714975388205307760640724241088180005100323975165478486523930639638198623573356880166623213808624469416126536917337502522131663045710526350170582958831271927052731864454564275176527920138058007017225535412815382430873594031718960293905874119041950215788775326480422634085361060243484524208145132313346225836116582682038832993138592455515822133023922874637781133771438040248781743701935305839410078038130622067478742082321416920958725437112634544116386572621688814215196279374905140581726581431684691073390015474429847806156503106057816764834338592132452846930822970468982834490933359588084200666578888366902414418057923026871537620464491627441407470093602579928102591483081772925694735751167054581833182095575026595651154837124827874703201016703796853309506137991740296470935447460882449000994401359615681286814622218762823991211139296487479048897943246968237012777038097909026959060598523229056832175910455632813110479963454925750869886866785775045340258142781252599234531701054791748154233912584077831413166360922374812215708588414574080168849678521991627927379644521589544093932723837715218186083317985239949509126541559313184251857367073809053733165227295525058767541864624841709509500808054701809910806912508162111733478414563735947305529086969457827788598614144104142044062556132867119745371314238537939009968546419126818037941340021342367812224279597374145424586352064163109464998002932342509082479294525422593194478145386227079643940329520424199035106201602973072016754970121283440312568977872983700947701322491896904304542970214533124600209564823336742914162540895709611092205718395844541101036189580783995743706569724610206530801962109373076024977954104561338844251475574961977939635343393750942638188761472156937347628198374945311414200150241781938854637014597167005676548895489437884396537038782192599527813360254990770420233616616853056309514422978318270991976813696357268230427806174101091453076923380736990260639432672796536718000822717458188768344335653818232199214107786035465101655002008016266771610540850711534299217577331972094737551388115691659707579019779567260650656402448562321052951458336163987040660397238384028720496607237860137816568551283444454304014299422773578357076330356235031685541531628200103739158628508498005471596036583464122600620123903306796005993577148085429184967313025894760224304270378894652296160896322153681880894813161706228209313687121452232448792961092789204019493991216442135755153982356296002403298853579516988185536990681710520731718544761734266367427103358781480811355889924688025350867561418736366050765382067175494578823377563362829138946937211572631822367388970943833584541194780085042457104356494883669491994760794689496181889096869768876259020100181654095533329931815692094567353274541779503478656377799509825442018865858903456817766072190069252491808511920246776840189671632624420928987758595851451244729154596477948942422732213845837796861174838945906321942380815554486046968968231128834003754576051550788995594003301509394050275787794859235782298771713803583562211198603152241797995471036442645691220539551191336503048434210921194238200315277319428418260765831464654964961919173675999311762987769426852600745632153353216455538114253602557717746890363504224514008874354775659234801283273641054061700018029246284182853129650636049913647109054185416796959629534122262652152056380001660556482609800141937709727676955962552701779497314553384012174598378088886703384187373716479203044742269973112859162601424383253232285715855250858401740365530047220113980050800734295625428740645790111949037993736957260303679196892596623932427245731733005224241876890659927374485642306506039222512713612244881311972169726945323278751553446940827493516280144559516260338436169136590670319125196843760111829177653737344413509316704956535777053796685948750082602285612057405735235413867765292930045940329178688621325575902498414793918970875100641840173155827686153097054789686026103428932334431903754091095671961772004218894777066204884018710365088828818165833718758054783226271639870880951186589783157582616260641786080229941574648358739085229575322021626481165413841366369822531344682373247605358364948183165442438930870695107715471473491569602107683843305513520047102318301321985931766310841030731244651050003229195753574117182552530126858260756449307100146757543467492201316042834858533436912559598461069387153406280325067249187162646673899226412201943075832989110277650805386981981541219770498501766057155188336910186475914062851665346629614106496756865910410684289140997216095648897996321295661908483529683307518477419589307242676079749134394105253461178916243555712859351689332960810725702969064880106571007960235773216532525162277034375331288486654117816247174559304653422420052722229103920159236073947565234735886407778523893814249202764130879325263431469555275385915874524399401325752295903191584887692530232380771698565948894185295119416132973342925084748030217517962915354376508394823444759787836429533160656546079483281076254520692602765964415443202458705466255270111969670802993482798521436597070249390164111430090738444504168479387483275173029433170286231551453879394962016902155191381954817587544351511878144866402325156362738530590767526722557303772279433097231785411567473103348841961531672248770672374838794077228191372629917473170514048185868425915981427794331756682614840606808428051504325110683663813602427711309134390011589253803025472932276708131480210561389470747219188650936155684581527695034075897363110666786175209949379283776488434141344175980050687840202586225380981353017711366327612994315822336830440838244484068982152063726231373677631000605075762341483694816568284310479252668978085406271685049786632348534304460964397927346627926745852097804813449041382332636184519261219089799216510680106144384462516086483404045760515933104331449704704693961904375108231480442156668350080611231713444419194973221513543981802190769214163298221212485197616358002369214739951751071904731167218274443594898856405938446101382304535498453403479858346490551475531006185309413735158640044569154384016462003890786288760307247526304028528483650388142736750200079493839791228234009721851112000911238614001449157106638819491436844455250172814597766002698911572711384242036539852428285748444666994104950236768927992503492132422362746567307497533769400120172747532797493840623298602515315618888891957144184211797844955155700183904212736895316183555979194844687639207980743625928391905295466446192216536104450423746122692638196965145081451824995265321325191064172683639303630845205380949185993316168744127866737574995220105903308785868218537297833668881676691124049203480114505896081315546236318252715162457984046678758202986478659375910015365227971974941582845316537146273144273023386094872465484799088857984559800623683999455353740529531184038649542953825929244003135691559333502640310599309435008510291384980033167080317142972872641297352210053954039640456406767723485338869745740375841861190714580496547888711594424905068869373702951478699310000787290316358219730531369093223403834957022410573690853867378760372116801863803091908569475163993698187836211470817766705646704626854263077174480003096094499064236576862764368365375173974470501949697501006880710539683556166278242812114605163787324881469186189673769720307182312724832608803880610262340029637298444047017469577660735120984613008100650333548677356107906521056277076700311223373162432819189531219771688747410663913663610858376395868549925950670764793776798800763359534223218524205341768112305410924507042464181342531409881691672934509766891319844925800646959605600288422780495427269661650880559147491586288657045920199092546801942376355249320479807626418509406850432554512257987053915325921998462742321176631200871793894856995686848010424635631806081151633548037495064334466407358325885942967562436587140593197869903360929701878921665448214759017999061984097394189293367352232615742038351862063136661059096315819191374915586984936204076485004051845260140483281276586481669309497841699472441308145006274566749000855450000268882877587852515873045442893319887833524948912383519610408378395338414776005505761306230655618213222746098156982767763160109877688255757183035325086408267581299738358426066244917351226668094873539165822425567319058094018291283356369301008643166577948450430814361006989565727060885348148532168956581638111128684471860655114664765914043344201422835387097418366416734700795560354609406745141974023117999647020152401581978246998068648220485204559434165493252272001419436210512148025530084545831875810865285328420041468215035972879882228185358856979184396775836504469347855595705818377923230006039210204136937935208947577035818675985862830809557112801067336059450538243869309577957770442939867798829088153264436097708188815849035215194580414508083624401223413881670064490617635795153992575291113987419679157500975189044675743465342967763798912405411505766772107557763591055948786517320350314489683690854935787928531639501184470440029184238722160740193151802475923037251961661840146469292437613880058170517539825331017269913053105335041730007335576164775050028948577587211653754984775196333508811873934242570779596312306867653216400671960447800332636111071871569975814618331102807184114757007414411225281903097113626786826454496491157985992765353108689602773003290407595063883705559549996902564639842915943303800094149809606187573451363723949024207591219286476362238299531520755191421753470015587228243299472910473563648972486329611748409613073675875453471877307030876143772376331098641933488016173400695119486027430057228813088971106552669241471920224456170653219262188330577127487992447221006856139094145697747531950910884140314698924335801333897919275003018378117558995155400532394875031249931941432557640623627689170277432791396886077275088983472361972624523734686058354580048015242311427951452863266732974404168831097386038474410017712978194824430656687356795283069804523361060913263815150476192005482238202910381710150505350435237956975524115869086492204529542569956049767229112199722851443839561394391928788192008169213082517841414654661405135115450238886620263045479397686668541785784269970132375230193030324813513359801655481887667777898274845077484710862651277789049707205169565626325646435207036938231393421275801384832571137725098244962852036099700482716776912147774018548637661147815044777053376571162751704666468775776234001868975506079475449043923028915689948669902900740484851066291798739509906381780530802187739881922189149701352616221722618318208725976678542366818321859579339413149715529318340546379753116812350548750300567576087233823577801918704426372086783691191568203891102281750415110659555657012951900240260955827248891099517360837477833123558860984451896208142785427667417577838796694615537182705200378910307816849679032620845700773577724265480192858747545876140341107666301416659443497575621331751007648092838628709126186807682615216282984026263752413144389139406917551339529139576863986684113230681973723730642473637062379575669954261954948089061900266480572207359946941505889755759736617249846797404036066343699883247524111718485677802162045637853046261526816008295060633899017143935977791415642641909418577460979712724722324167641394261576170113075208894286406771040306395179944556053831740801333663703676549343901144811015330546182421174025039179485848615794558130585443858975005205793420691531094909373221957686425783287927199559020373595594852098543785556745601234106910028833650927863577596475659573322762516671912833070923830659579659173216557094074854999311472135539970788868758763666752905680267017454839843762582311796242178840985143806289455034974815130805858113221425969825116265018662104882798131217986323986917464411955665473547688523704059047873703401631733717659716824118627847482132732385757642681317716482953321340371634746337800374033271719510611499054304822682780453927699214786330228917797187137820177739902969222947215608688722660310877527351572513807753255527634146759858184161031966301050856911446514010757588827160197912309040028931663340123915805211616877037716156130559429875287391495667057285294143190113861382637555308379830315146100479024251043939147171394079578190330897433240602429099032217648486827695994006275932039318852015667655296164507596133296001376987950627704702827840661099327924110965633515446132969711585990467230952937116924083168696325102650502159471417686934456294799348871108861308279496964861182077946093668241965623847771062613083363962683135699442855052759912373373950863275426258599143510442828900976792849218410772703254459967103593229465812506599994678948144399973601449634542845581677237328483750674260503349840685663315536626975600173683556684457427944375430624637715718790248540460732894166580492390036726861093551452907495154225136283768921052970597277183108830089435237947102832351751021024612096087692770586188028147477944127943636673620761377858858066985214013656900542824142085351288202042164403811187820297096213812207287681262928715045752400704545862290478438593976128252767705250296401883942711561698332386996936431603162448088535726997822761181623873885712367575667686622291283959818160181271462962936313830234526259870195698434578121679653844462599710177815059099901913786079071735125865943019539135565281019783428855652219832299751612841277466391952184063065690240494026388438117438323387203130688371114906199111039462307309302349840755667599188800989543147364257894685957112195461691774573056995644048783067788697747920508071369820438412016115091083973190928003032636839701135323250589643813995221602982396426181190998273790150593198385210090885525941735574555142223836425756458616921736054026311933038714338614779279093259201649081152127150241306586671152245523698224102436394792677510057374550811857565131648573718753688677610667141345654065285531250387354042253474977240995688564118938626630501434144780309065493520755544530773660643581918405909101188049025918130000791594554927980123540198018466828119505327869558819872240457164961003635464564294998891906910265677493126609188840740433310507212126974363570127926523372744211415167977061597979075268611706402031101693045059221999127837654814055918607103028059237799140322510433283990926036967565506310191207280073300606995096213874975284821593202230668241173169111010880381977479414639494218181844655190330630092864595462540435355683670851545790385235816844907703534603085640266670534960074983501387475696454905884682690426320259973055103337920976757653313628796206679133606570238250069905705315453596779396240793790372990903351715754865305223786110671293400887085260398040426494366220238772111007434293062600377437606162682954663946223616597464740179083895212977681067760427231908403929083649888951452705096351305830114243480652518778907185685794204316967499574067108196397633141354771992691492578723514506490468153184707072508707202922147218570185680937527453614904178733330170256949364537078899951509297722646575842742172632544610921151592606239292616626217428190217617531947984222107566834498166116496610419074817776249419856215639033671986841589826934758143630759384358423188420773089030625735385792941371114944985740687190488652229879161811220062469362043732421538611197805504457542284895671828802240613720553256678622298699565998532262620451298805025310553821316308511779154754434924231663719086142596774818875764692641971840457065529002089407738164902895874854673858900561685205285376368481085848227339463708339460922007709277255255474996987129093439493645705505963528640090926828525664531768700135573188036143413257631282791235867114911916437322414370037932870008552987925590903438970155115973996160564158424375478178888069699865404776859119611431064973736855618574157467439205661334057755006404710106951991878776076822652483087786302003370407844898283123026064157018219458548578116103399566029621241655786069886171534787355889874729677492756836483313692273496124548465729117719934054351587847989260911519270302405364328631778216711652833887496823403755554424611702197924763487609917913447891864290038199417670079671393931602713169792897582679357968959182108168366909745019099061915411694354530823836529988384653533253655187131545357811291875581816018483838118095698844067545312994600160380275722964839452290052828855931952476359202558386635325106655979185503711580317102243534844358139405726568757486129734991425785780104850672142975651208096375810455140587348235500378537094084215895951026378232372030994023303054142848555787184999892796090183960684143514018326991956722421082788325954619729031949931874154315119479977680166776247288065298787035289542914397730123557073460972224606126798463566427370215180313212912915374164031656855808030206726653054255444942354923193885160594762827522728315354996940028929483437688478278575536788077871060388134544518330294136512307902963239523689683758854985142428594780723151513936296856217231553160570721078739009338017216808138048736063556203226535868729000266293692024538361403172208978533673094314710053976891608336306455769840922784882953933629501827345038722395207711601146901847594540265030009843178291411208673055644881307734763275969360893613035857793991354517374600176308725504394978415474932598286329696196904884285279827028650635152641264528601042726749497610411767313832321388996257768953487669198551844032730694504748220711656632499869344141238736940273402170779874379594844561304488306917428641030587810563683639255951053825207220342279741619768097939103961203088036599466004220833555495532047074524616487484431488198838927356890805831786190809869955105039968152131732894369000593207835583051481522320676463660824380665317095467358647823565190980397805266399935940201484000494131993382380858683201131440974052109379270550953760132296526546992760628789151102756250873803401000325229056469994856681566385915805942896749331325708852201461942525780044388549221092022897292111651497566398486566120691663098459818337330181034855279221785017776895974372220749389984342064515772222646027189754825856493448457735635083151219690970555531162869666197425163596049559289071406318927743417414859537741678771545980834696085549411238328518232346081727698125605701749155464495575405238724832529252001129339002994509855782848300817249189047709396167868299481042439214865270051705090694476399117843132350261732976899763594187763215710259929820330033599823129925065909847048517580999959299267278847338172321840730005132250305495145191062245353474417499015223495954900121788236403063352423643331118073920569198161289472685472919879006360288029712706022686882506689287488849534945333404877289177633304243521279119818418566736830067518381941463216200825799687760002336896440039794371901849101204950473532976362172256716362636507632106013611088101769097677113030904476090636167367972799933448620746822978078940871068734484239900918349210364694506229473550192070513432379946098849784665752726267691574135792983082754756076622946519755391487856748037275879293141417819187002820707609587685812063556247220073246609715269665578441072308741889654547596604484505320415636299139074590987831001959891108041849543088830010511883854247843096301358884902655612445614733605789739814264556689589070749620207692526993254127603710343537206707507057306520518251485459680720729092448614630865159406507539096941434833738552489181229197694566403620856581891583216747434071641772296607306272094850396552528799604317429162635812046562680466092745747168660669941824090860923091105132118610218857025124910743117178537188373232115880681280245337646563544119883977885034652250758692359629428124725545322112902816412146676527054622378309960459169088091011643555302890033519151391782710218794216690046441628106668353768641221947341710649455019827320167988836672784639895535017094306401977874220839465258879907660906076426504210448181131043498132816066668236479046308343034462643884331617278394172992740029242587575464014333951521144284103445499266223827942235306671207440551536441346866656842588873409091809551068341512186529980558359578181042170716036916283128862549366929138694189659463990061435669545649023247732276697611019126341737514693130255279516648275317197851699266121475781286195953402814371661367248320693731167562524558685879148114755619720609193771105272341780590061823886499591724605271736724150920678603288175144898773803244546411152227472439679137141790088550369058968611101745047751088380135082673801445108624581173252142780273899109843236025812496506897903007516484684344718506822388845600589621813856797795307685489180872015287389954033749403901738106112654485805181008164734900823994301316497658827077245110796160293752617703981971799558520629498579935199284987741061691735829071851290367103393051535801959941620038362934363090781330658527131911519658638759994232893796924958803185550583513272109781445492363204740140497346340520229858266246657698144817857202805722175930800859216819277259651741581890660499966344596264770374269560009934658256053694216670042545739561465143102417111913191521340530985727306517219389026702688022061352753661214254375019575752048954519521233793145248892964800736133787100065972547173282894809224287912345592824120746532465279156862651736564611304889931585172511155415911945914094948412490900941038318379842900663846405146780102380437940294143052511180012364093948438037885734407875812449061922472172422325455680958877312765679463347600107403246141162675028148846634152621150990010016160379960087463775578706066412595219550735776942409387424592781085023594087557642062296873901684990091217903562321594900627127794263746410239105467041296154552500708224811196299579101642690619305728555463702056864335670855474323505436811690893712494083872408105594917524182575847533209874610371815469735810331889873276504395563459222454113573845624119166838244555571072208483323056701157069530099129679054859954178565276947805904431573964771344253370375571509013695258919505898797936547172218768908187366345256802686337895748660723245120795489996264996439502828251438694797673280954298737664032129611354025106977819847838135802761234879906617768613095991561288500510145417942880426886860644968500313232838970937671395814625243082274022420823672595376437952624176542167131123138174866067857146896701492829454474866215538762611055916589574526010920604925140363497058154382223498111824567128967883459031704473315203646912333760525168414821036562599918726726084509225833011317059484077686679813422596442488603074698928688518788139280822750471001876562903492014730076933827694881613724567489265952020492986029473409523132269853657364373384822694797444713573616013395392702436383852822698351802513994070045764427867642502828288247042689595214779276914800376382765669544648570132307553038757974851310283272832376758522013230244801226897170430646505152859558206193307804779873764598341653316446714949139459900386445948810095377458967529820575704418571456197884164536255555066938794092047170071267711054194182781151360846335821188848355939736098496038676394725420847218929412197005420559127185349571619004189560300828507120711601872879709449208425194621912188891836877203837409035959717566202785590936542660155367099984161546693686495156703267628016646339800995856224148671257605487838493019358408036682137099562047169946683285764764818076818320746566148423744835129057222734924846139959470698270986870800268492805392191347433767561046204566492862761264290401474427982227307191972236014011154693908792201630308285774612096420456553607879112709127228827267228350510652652316907685055595498469396495261190324560239216118518240119826651339343171277217402316453657596449110446019904694965531312283582391875262980643874468006472809702386479535778154485107424225419996974092683607917082603834430987137578647528686528179795944073268643384666570800533401962604346357119032653444032670384416913412796568535455567031138472559975638030040698405133238814349822232471497259645481056590879425492938704372149325343496410876216593010592393816856311972778961864627202100635356255665852477671566987935506445001068565024220608972716554927880436612269652198808878697372683955156497857852147446230193820467663204096120218554833391990224906593506148657370398257134397139797550149823488230322447024910802395200829650767313080082080822022220653798973547940767657125711379251903477410157192244853630439653494222675885179506767608422664782306221781810203064561346159236456151726373194259483949030500762866905287405483250380835287714684694029382400280170198055151106296157466296037561123723221482658656076128686690446700139901900174007437853609317488521841227884821211381750457133820645340655497704522062451513185633208296647809716272993297691944395037783287346646794517470597840349555026932205630067847575220123077344143601124578444226142709409787141668757181573581779120699181575255954603878067690532714353725608624605251380753399955575903870692589453132507074184979769942273447051109099637537275912451354732833652073873751139518348519019702338022035373130696452530827322226315951015905155418871725312559714853436089741261145647548517583026645119718981108849340850539158745227227374416818693467961637438294125556088568744147044786552445842059647454748936782630292404652058198169360741003539698655943404080247630561930646439322685899721881897355954637903463618730001742381958806761487432405678316877081155277361218112645814475302593136403234234877365470245768153434123787357150186686114655058030107159472107163892204135437294315647223382941757675305067896385066061022655935673695943923198506882474780123686807087537400001620404266177343495973990671839044418492646137327253846100519683012364120549055123774706392635495977256861070012405577987079819823663797859490187829786907644547112117307371522489353377630743706611419169659545603053750883855438403845835287203240086916466675925629666175341069822914723763127454042255132111932772513621801377673474986894501354071746365102835014860104663193246748884955526471047763096354873942872893892327312317807337336584713662938177036408812093702547569855617756131490793450179401775299038586573745996182451095652467393471405084670461055949057206442130116083072154817167043566919232796232375710722642877629016643123325773440511925400722195254671591967119112342801901083424087106180027803375120222242395731047314471701670620974825075345045400619641060127203023494750692354890371566617862073171942461582587299703373106069644295353976783743362835440799951939048619887319063439176382412879472590205156527043592703980754805191078982116256638750556204236414761047981632899430004169676319490340733362521601027617846581163546428558818229599505477236883198257562841234610467538909696076600569589243297914212558871903093694745476692046485283315301464656394510855690616808570984055367743377825562594642153405301266248559953125664017357843148463757008947231135967719009377937265784791522030436122589115014553341637906950330368465990354627806897946535013939535922046837516278542243961101874080739132436998038553954552460365403009068737332071656243877848911568982910663262669486762138005148447732214176499690260384026951685351571797415790964240155618912372801631597237760714906115228606643366369490347545415905224399815356325738596085033052002149311330838557452284569855129506937904360590984343686086964326323227146963130973493531260877755507492115084212941656855797125402281839532782890599389304981326146445476527507062192771850204444150514406517700326878782111959504852167773213033127560595850097432695128568016146379210365611254933128188008117812127766636477259005160916939172616740963639202278832553908662129845465672146195711601267864597878336170012557655294287451989668654405324686682629046729344613904095272648570875010951130646280045136626223184896122542677824544428851536109845002963853735012108486228437978139523738828465732368747945872891937680250471006344461478594737347579588484976363875210278749264597549452783641686641251489144314919277575618578169608960479497839736480307598029298638994067320833498706063332726843962975181134265918761966576826891357123665592328906253305684351793387792091510501004907471073867794246118220712710490122149535579691110087354928994924048635299999494567011275852971782514263872300162961275124383338054502208904635971506708301539753050888576111370464719160905418781659194024488983288468762953644004307853007760763732491748135599024331648432080057957583332611053195710188648098501811624200655490950819137846509064716231429406075019536494099992289622857980700784116710191648538723907131072239771159892856167284878852588495119610162241516743426981700939897059788247668533006650063816173612486806194342008854837309308819447684708442469783902624946282018305235634601591377222404572872644624972280706241230366262541821334929518543399243286573144862683339146525643117579836268799669201326712672884142262335710879362909290543750745435456284909134603364162784461264952032343886051939698336485479234026884345826866376846482967930313304049909634653328117152412197179049297077522017328215944440139737540164812201035842871835657667638646749545858407087886611715820171034977152981050671701441517326912918079885398103083849806825423901617142281598444457576952339762340244096107709594132873230665162980392410741168961041429500704746867180536021842014982379966784792854029849198903508676608875407865183687812536011837772345388213475401016769275227585282630928686449468807142583604197370592986379613907317825376156175824701440116180597653280647775657031060560304626121804293647076147862428178224358697299604654835252393667215578070812676649091501790897200002925579742228861444702534852902200145428478085281644462585486504721561051746087137175259094848492494336099604831464509568870205982723137902365227414067767315686021704128199547985192147503177552027486910320046171701221853599181706761261978033469266402573336038970478408040560288300788290742363779250193694519870319096649284724685194163217796613935277395455517561853131461561108699936548439671015736943824565865071919901984739568589774918911072384051036271631091303693199352174113994887836043087944139017462075570557792341608572556419497056424412169595570137613412621684430721663080742012644256274545151564082643374837998944027645428918371946494000857051233957931148407619095842790734952242391757890517236489281606570272915701239978848099916142096744662411899686445570195791793629285254501377114652164226001673077534008532252244727912356077258592387348058593167143254914557298429919164338261745308973858086497777811878801523679170113764184015181793808570880740760310080459446946756724882635882969306362393380982881501006793907283367137363569509376588340785134348355810811468744428820547306554932009446627761514496621352796508874172529828636402532879514725659275745897950708201232804621384030330923786269699279353619363824412717188003251193562611584804005281721930187312262802202596875658100151919570820670630882523052362287585059409298999356521330554336462033996392271214488058562016609444677298540901760300340341287959522522757450999596237574905261799941895798118937570698888638700745206268329766162005435566134641541395242586366739840941807987417634176320132234805746280138774092803286875027346680046648497222875621596909307044717818259422690003861461391814288403770671676117035280685908139049029105266075317146355899639029299693611897598875179901647122305849498704381191740663185302554471642355945401034075888659078234077473585214382853907133962879433341606575751391111048317091281973002749042666193735171260499641636798365949138932104736690658582932235415679569150315230130421091919662522639322603448825336079725160330237989417465790108568457277761892629026022115276200207249163722900045074972858671799774733081976219896652008851700405484997877397449489272338273892216354767255698848003411216562862349757862915936693373874086562485208202129097307391413562971250333526393984456303798322380292506127483705902298239289092852462317410615099583660814610667095730142456624104115693359206819596315384889475397698447133649193102007686413878457295679195648154426537838650401356162377317676585488255398238806327764443589557960334992315708243447391272313184089393874905843699865092319875568383992394510057202923690559916720563089843902467541305634554316972972767476894821190534636597730301474845323370832811496088453593638608778471728492073001301696311106993044256572913938411134853664334032740568650165465554220533337847592143172327780211725779373151184128600055356962925668986546151192457449874755474854633441714645722260662156359362900683366028030502752712927860171910673913938879422093381500868885286886002133317719617504930921479346305249534885660012459877142900386297016581583856157126017588383666920769128421704165095720180017438328887330258051165958109425921999636553879887555068418338006871187249483226088543667724993275236399766171879631965423965145303845669807294235959709983317984553339330341234384094825586698617964281333407432324224744481535556450100215500314772911021766624210200296746448687822516466125691671341479144798365285793036034075452313185792463816029052421815352135194039196256579220970553161764998099588132731288654848240775270026328491706740906293244283226870422917453990217759641407798768197193306828522803125965400284297519208153310073411481788279918595819055568655704706448779503047338271690712460103334585942477841349685510981970537660815618291702103922120601044144673090829287132714614139994029997063885440696742998995560151602511356039775995461064320763221548587548012881795712102846235409354493908984874375630128084576795524741767349978405932019588335263730733559218467065442510668021705551441477767899829506720632497322274500359091789087675609923980074342526869420307737534651527424025983901941649591541732526080850480207587200035733560231392760682979609208291295845544522480137469028310049495807254233620815247432497700137934849366398620444108490603972757106021840677791517993993585370401415202152945440524078931571934821355941886831821589584594886744860799000259979960957054863781111756309853508109701186757060010289803801871055547654556884969065073824957701008508440903630847826736970152461959420260532603060410226570040868601043260920495886543488803885038917017989592886288007276454502818774335601730663689194404779396159132874031319354540273852094416898756563285564362672838893423211327725728710622135179663350846494541710945758217673521871831416539925915262843085391266873784270782267697001975760233653063495561314851280072663855825867611400944948856866030467467505577082182990364255654030024150859406738004652802808052937056314549221738190343715687601317849761609126943377559177134474963880869121375272772674293818756921790285139231093584910372277195246034886143139956907925449228816747093193935762348063433979997197140500550596203356425227902380756438430220311856544311435041297175837628793833702027008168152843548645228447462623392734287341447277300833178102483931892203641965691043417612543687100466177713797402143685760676969763088990852229825247008449595025453759938981618800165460622320549661889277843776709517594161641835900386856584730409019118878516369122843407270835492904810042480766045143451119935423975671963405124295085587184090334547638790807653964786769248856151199341319879173136767235027172189390351293249908915871321314224658600082606454159778076741012511045810145383059457100398909892030898779653680457956951894409709941639723028175865592630640119905197764589833858553408791120292611281815147973387068964654637381004891189644737154508085282839897249995274484167266986499945670516081066728340419885118916105732767083569459673787278390430093010542114196726613101654935801248645418980846308186752517643025283610991681450727808958678665991788641137388252272677983327069745589884809465776784520867625873509923945857056724174557217968221169540121024887541073819322707139636126055051982929289665520867121004509278463179195027294590171250686199120847933001329772993099908362464496301882607012136094004724087365400538949002232521119937365895803409345257113152431872791348027809674493393604764930102995406826401164023660681065789715911799779506905670140391593504816662728194847620594879535151672577831117905440719543820660864766006792573044080688895842169193550460079900198679958468814211556341685119809738621322963289497534192045175677757919497576382248255396050718375003248325696646690430094323217734046844704151046682199552042397107230163728386716017975983737168027424028021457708203820219831695900567206718124736418745160852543118244424529846849348926675842129938548067001391027405840154450574812302943944942811974395996839107577983748733057661777378251072056477497017189055993309834871588625028194886361309337782772359218128581401955247122694121225944856732583796007040933011026999949344851344846182882334138928552173867312988745670185146926226071301072572743770165044060097706725139896692622289469463453300978361178457351598237255067823928234368901731015768216778204544372224780626355951105559768010745635927430721889343184307531029290481780356867320568623335756623865882711985720289448461959167826633525948660898096956754523857755039498249085935261654694413101265532245671368736467551687918160892898863635965621539519202682206312124981328239736003245909095741251660375406447502830406226126714921755255967158345203672543815426948937538357013292061510407381960779098799728116226995317617846857939936176061779271653277106332532953600002904545816727371852922067700113072837710671887636555780024718638480058365156117889635965600674230151257655802372004979212745881305295151017134882733314139087875721994924949543408771103260570954338459801347401835325675577748976505025810223548554307113074692135223692748681925054794320218467798383149290637173407133329199417197981705183299086604282893568090103960893522208802071577890157613075953449619213506914005464607733673844526492420043121811465870926469943515020447744516727569288611023494261030653423573943657375708682593898484474494042819343671999822558060824173592641718779903530475694070976536024760622166868960602540070463508260854065072777050995924894525099091010130623628257381540831379470746385990831523862966789853151583149412534400206935372608760563266700272878853978531160537919246602400122026822930237740273243199045464817230817406833548591327653029503700922379705690208163752560669291620569594459435747022668541232322392590486245481613672490243115176089757631571818315023613314586876897068222545934669163484745679315822308332532418270601755237770349990756020948297073242927032056350937061678459953354148747705259198269311421106720978338461564888605040868736425540753791870476725605476870993629623015220501726685983361395188603793957463582055944987233137937655325902769598203750179464520253278358771533861832623352196708708647039180438083698010446266016935258142888484391675130247116956128800467573723685449331311126320461698644447316838667745674356798500983225413612763295280371828392013882241325791069906578548136476814110422436510920582619034570706987795091369215753891413204532327220778407485554109126384107878655424174868919882960245916770929431820172590115387247522493869755572447950967656335364119605649035197713360616424091177530101826074848435822344718535721816026321974108055581242507393488763787007279357461062850837971487856498414733238503635383766493087298120153976997439809565254729978156643562272562448810312503897974956440433741488362022091558156038632826810533518670212939967534352625198519279944471595866750431288206558299555153827302067318988339732610926288117869855808390819003600086634034637474782926839953613635354222916568202189835483797784509948775241932396099652773142657467830429746643538278628558775563050523052064153912585746488982974314672025003157463086980458013660954222081278357194936248647438360474750772322970818261908316824718211696160514647717608895096294188365543775424258168921132826009949951798015685760423417525847110458255340729548891742186912765120213703651139766268069726163020788924487643962884249003185046505231955080600182094680283720379636450365000671557297002273675657292951389175169946430530354627572407935933902495122988993388702808304843128105523534058008188285704815055761872090102793510948228619115152981071559944395169462313485718813791095986395021949992457712176572564434217408818888081027879744773668756692810622886554226876935077965415797679573708110786869697621121758460915540975048674531833434236265673570400861258293439869954410314581861129508961837257444180874520603999415303297799869710505053120564576577017110825100855279293685935014082666046483767465156471003993436893323669689333957419263640934844766218210698441819866701845334941607664411629180931835043624795645735741513484031596290812360638603114072623551690419995618212109583530802209204858640190250764716978879631260304893241249196283705745536494883881719050528562922257412484746955220280242636766941386274482714396253382182976592194118629287393035432976582979222800789712578312170799162814844532923164456548587520986462433677498120607416858747006857693201077036702711913406666506434790142155305915053572470141004914449635400642117169609950852424207761928181564116981421938193834637734491821492416002748195271573346153438290757575486558135684470304500074189149351231696983990341731146927817481430351791490898727423141939510068860620581537862324821745352339332086449434311808765410198476875398506540154780101531137623556653035630410641428178730767289286025897629705542762193969487926463641151867618823010445367210727522768518813314358740601743365921530845096904315628512845527318267737460879902371439428212840581309029545012797118787041882054179268852303531733568626984101375208155518232679001832692259323117452474256929858090369157179252186607220164842645446920517677614112812144581877641819054590861035227326363948076719845934702963934104863082955152685219999573712633299105539663760691925083985977171942687959269175526103334469030990412516793139872137678404168839609531875678710016224516829119206483579562110189846375633533874836858564370231179242318717612573967272919523098137421749313692128827477124586487256916724587789288514092864379711616369699018450810711291698747997779785725509190745552202431113740093002724723469010884494238330180694206282269265315008304459191402411032472006108623876330263673054971221688225107649067563367975087690152006019910202095301488679892245157009150249301999469767324898377881371184838938623928096812703416790898641064918880439339048339728705037136108119890798040979746596197442726750701777116829274228445139517163353041607522581363353812145902883329739015213981323225616471825884314175183811932061272599416409455608555216539027975661892799869302073207351968373124455762934365360069044955646648167509361036093775234619282735541677406843596823155941294846381019600564945774691045369875701807790025310629063267952678676721168635329757858617521794471951277633286390345744339215893480034297370945795071737966455595708957745026165530663925490973340697334414342533647130641407909768267806713084362297446807542846262903569962899218719425310844337821642016724354871508630386866758217492934498194908886540093892674294816515459929375193115298370574134696380271387107796781902559227919952895865144331967209078737496627868755347924886238281086924280293302712595765149038798152224667989046019347298489954404792613046111280912107985558624771486261198093237918082266365600844549971500321315645376054064637509858943082561628255553003121661899200053707494687147078714179939796793826804270844597672828420153808298027250583823779402987511012923716697645881897822716058193647096965240493805130609784750692408255300176015782594129571825612624565557618352934159610029479673061084128784066896910207328040398714055119063570046852395369150946605901199466361471698411975955725636071450531530774648332874228461196031920867162401901923244711412319759545408344893891137868567877934188187447753124938906913935125475775634094587161021222246840140522914809373934024942012495645972701405944614979844178201052700026269562021681723942278575236535368350145923598258716206216498903809936970250042993066460017483658421223009392528407951589587681698095574781565235215413933777632836716279523295839494668839365943024779686925677328982696532941747514738340317243618020218501009379553095011120511378485035118655623137759924800639924111121471069845058198920078179195076190933636846842185058010770733413973978707130618423299853804353350412495968625930481846187577555615505660033467053026047148484792289288647759748098995500594389643925118399376774243242466907323523460937808122368625492913706238436588190588396550791398676978141149811321445848213698542693527030342599871950821349474922608045528902094857689156970647738683831555643186418605253630217606072004720072728821986366194126012454278772217926818159096035212669696924923078582641831831059262389875937745452092312946413769246272354846074207118766270916332741218592492168740120637276014117513911452733208437060564208349722508584378635545200397781189095985553748659841273868241700763828716241960157438430994011421055123261088302393282377488764317272035410944641611104333239542888171434876828785531698057925059606022053369864142542115583625525004528143407300206257411838297799938863813092305224474124166866027673663067261115055635853896600906534325702048477004706594642282118682674132641960990470077564467809016825470626041414356658425097622475509500995609687797707697121148594944567910901591343690819012007722104861046065399326403475480909457361446332287088782381969949682730856829474234495330260687172190059073462364992697243496092179681244373144718077512890548042723081430219393254997153829261039975847706394057201385491160049016814617593138120654420083792832082564078807958880634746936470183026243873267306072824397505617198181695255936037912575433491423985579210232678614512444824044386541060305669763269536232833567201518289501561621254505956811861580045109844715670053348811068860620886167285330647861250989589987440737055545608434131195365685948274696093553892186987630820511962783662595934891480888299620937135227576017756637887234716783452217679546067105882583221661164800654468460497437886237277919452938496798016496353853457794874902004762807483891316584986414346736911684058276137483589783302133698014747718872705325964048246082955391230387630045084638561536917001339500396958586428004306917387944350507109198515731838021697637882187093157200934158316440018216359534864830687187978610393463516238349582297287212039647245356440107284052747694642741239007553263549587183930088926616960846179233631028817179235774886707944670631693404195299698920788700898964580551630134903672531572887859234904506403332860869859201744357302831690676979317879105644122511096793187341601987306467349754832103049938257770234332708185765585903591824892686332392591509942516573336318283331735972259517125336944568778189921375484950300698896603942493746360517882365349106317608928177630235984297364333235332849066238017627973943804536421319376415347747257506742667313426757938470974076145156235488688332739949997435946875167985099718844152521452746983342127154289296384001347853183054148699644678077494895344517559910856788502667917962890212033697062807846126886237969461849047464082201743923614795161800615034759733848942547306909842019032101955940008812939662384548805780855710412018131066938209191570174043926009395348560601964944581340406852418778631257931605833702402244279888588628174445255388078084563980269750708293949344656462092905812258145206639666133914311817092831211952890833833302294010833471136155371523716079123141480800175556425771462936342414723122016556124450395552740725485208764265521675469126709070627067502279737098753345727949208223451287405851867413541477287415108918689933883628505951969281054850499844837884882795726638562461936186904456293904312868342062626084153755596996786769850048104553033404208473721966463833359872341710664865768030308904517108065170778222073931252478786218626372174876464695038658979514682751089240491815533904171238163759669791173302405712087835026812806117693014967051562425498437354498304209127921541805384166798223141677943546166241258499883301851429835985686572657454978877730251611708625924463094658587923275092178628155094765273089939087144956255434537818503272925741155223607821620143278831725917252460462701025948803743132493107730855939830768599486502747605028759962845575371048999932796966090280587342518465490733176951200036650702656656680498781539222500783977874670093266861482653440265702270292421614829008602954072470601255375128454018232970623038518805250560287530452960986016319739483057004946228402564918666700217838915193886210843175754272425807955023636115389012075044894938310408334302289463321353270038439345993887439512638329537169871206989023817193029786311884362564915478473839356150602510787022317202614245632950513428418895049450356439114950276524446998469128250100173533567566578414156465459350998250503537505874629053641777168075400113520215867717038716482884238785205877004636142345487162772697103615804804249009900188403243513855922118937668015030957410796743413126347568248296927311346203732145727553792978731645239373742157923706030939708333929938247180775247337819150301184432088825684029168049772907791705345689518186770028773452052944444293892049071350613690204659730276375573083114918230740204798327884284001355351267506221237550142200069653040453792048306932142244003609114286535630735894392138739808257980327375093883467459486570697834052797343957394852425561037589639783741316690847794795007976671729630030647726475822011220029467595058621714893494300349924484972413013353282022553342802068556670093634699637829577897197191727465035933034178856027721355519176642931987141089222182757019706743042381439639423742221853361598783625838329404574542029431641365550755855981058151195068429934576620335674364860239872312729875246507736835655188106527901260862055889912362023028153964791394334840234274943830800781283941553929411158435823264754961386734415746529615982117064936054020734917475021035553559920390071706053729584298991838547433078009299667666969610576527778239555116196572080437238217594972607787937781390867772090225431648061844686563300363879110082865491553934731534578331781217981916711879735663846463126494315158976651716785729748308186719007620920279068068789515083882137691859656408827796368343783879230053318027946830266553294755525166690244121904836698729704545193110691727240832183693151494201646482691994323120913865194318368412436712426092678164840663155688435840073502860277764684776401570331737258296701721431164038785894152376735166605960336716963513923745806146426370636643345912610686686774637113381499584838111415164597343874762171006719740786406654270421972370584140994401991649059840520338721357697664481600026596079515886258853832465804004655394641762930803854916127222056636549483017638546375746972265876181405871988456970370198765928110912744824812977803485950082288365616566662096613123396891075957500188983703577094018813686403564357671120326153416974852927002844015896914110008127231290905427200393615176382524088962161071456920936507841775968299307418373106089264133637219434403075127646757151074791702558679230817722283770500349997461593518086814668142363460011710605871406093564807154401921151442662315399896078403004361103105387431996996427111089458736520286243324332150716659767058349282030911990212633514821080833087344734624249189356123253640030060857759747607282219531327002521535928606785871996870322459554278707023469415131216143882234762656673348054400297374296966467156826866132976638835468450750543223004180899099795573543587819101621808440638718315737264620581282783636229277880691269039285865676562434045242422597764835634480872541361036527726482606881253566154349069087347699872350987749233827001994032385885356017508439210999094652212394342485501205510227696291838184740257792013242515997584682777793091452350800507877770341121260239867321860223227023822071898330741799881657207685624948270289779790798258443169049917361590055579722639136444520436095507381086030549427908724695286911486051758219829376948369862465050367299428296552852786008322297599071304659747444368180791617255527000742223109658508919365821817072531222680462837615068403672908418786002272294283659386813316708955067792084739937005413409566449073607084197181658093176550628042176226534425811343749799315659840127773435200139930935560422214377175358910483940921107836501358985944210816068964798738814622644567269019628990529633714878467900831888975595455417211660892443845938116968454920919312091288095211588074585002576808858865886487215318303215761835335974260056018364363149920321251429204049489914363528759756554703479886938420364046639928779103709173889396439341641732088084112747975598651485792339683353178756654968800681258624658345206930145012886672085486377099117292759446121091317252615293859266622524464592419454090076740699739590260878785836168201587770506856872787090628650561067657596780277159508939405107789204697400729846796791574628101534726649071876209972611536369212315908347128883991611703754267922404645962161694409612095981093091916868427581954315558241228340953579858002102102590918958238553675896347345914958804599282670773899604522931749127036062221637467346370963748836130547065110140760493737348148015004585536039375174506929189935164004262285623491145278542686272540940288497922774908358160111585362884422791033194741928069960645237408789603286055261673862619604754248001127045240664424025821788993763916137180570266483331805122939691603845202900502893423502156862045430276802888632650593428823263782069288163690174655336540656388612849553243775248950438309242309391768568920027545951093623366963333437786755642030222596239735333816615930500499241394699097270127797916138978986100058319609166144004890655008752837063973944797896409513696930505059129429391584505307850012282699535053506914380779457029877929657861905590896636831600910657994959400823627366243501717294794843127943531410093345366701058203742719075098977014169090660304398968038382186794166884558942396858220074516272848265870849489532650748534235457501698272679620225957451997485627231972750238210486097954252898679861802358354157945841902742617035461798714200641028052578846600964485569089095703401429305872850956957010951224967609094522740672275364656640902798533527053905737102239312603333255404615677767064242971044345469782374747166636906436978350669895422554195968809675049548062020049137931225743876698295899580910331337954353279693087261803713349606022605240157067641138073085975964053730118408740004356031560698879995801384092876732227624766759277584506314735987006797613270797287993265435604451657276741966266420461497248260885968843014644434246210791274942670440981415973105116287411404384203399965065495411389915018691626997850195176317549423375800308245172645890002387638292740732223310030131625593582494560881325978055639295857352786578861363369186522621489446768003590620394120836231466780207544404680229435843826747428970359983490156967306465469188659812718493392764084272190416630726435488164354582963662959995128484622530108043752241085524268897521714135804907895160237218217834141648150208300547084910044476678207723828887815491830006750436436817060718387261011593016928288084682224985783658313485273185520524037026874699955975682979554903732597630825177492636590223140799036347120398002805196622082618649331215055727168980579066531334529507344428368772817873385702807472427828702168271058078960079714776009343623117862203703550153342945332785528271664063538196906062003291175557209934883236692599467880815974961934763257861710372175850581414104888888063303843828307416612109080146943136475552160968238822703360568472494329309049520688717149464011893774511729148378584502542212454432480853581264811281210693297418888554758918679180308870536423380824755227946977329574522644596175193139078384554738566433562833231473322305323674902262513345436305378660720606918010987697882484889095626408929638102318420726235643734807802264738611177469325956512998150962870328689138657543263821207713532999211561116263382820832689878696816257592654855697684642931538861670937420434989853883450736577118477826449416032590998524415469059544224722366242198101709851732044097066797322375729375984070238577186745209125571562761859208083682507605596850338005938546262656340360550062134448487505879440935135970342236299838063922074563043602554700276553130339307703504944351657846677998916251308792665890808029362648964409049201577964739784213551628830638836553144383015975968983015795529120858138331549892940082573378281858111898362174851149489453313356606668952133725710392020197501262864231033275615376295859440825938422931549825891465180299567790198770730554922981124496567157572521227043161440521604127315697021368891972146013758362454945407859754117203449422167936348214259663137322178137143986836089806237874146521740054801522986604739399426663324318100262001068316277173928810392067400565413186787385892833714595855972347606487618982996021941217495636458195217740970065949445953211643790365475300031227907860482609939788445628598402662362880832417804552418538036738429820102877761223089092525577096739034628697776101198899312640922238475523668532970967466775848410702187160002972886933440532093197467252295674527148402354787856951646712187308375197884230222019383538005459635750529020347896504807120941583951742898232657801017387178451303219884211860038254819573923231302454291304827033818736828152727690575983910426685810203105121600691991087595029052716732412350749028868207419066826753670942466137869656771455558923909833934203164852799445621754339022953448206830725442592252692736922741110344888743677792521458552655188910052844195582117644942568882399156301333426958792318013623623041498187776885725790559829897953394022829653662601890968281180326563505724129828031493568728553572873721822025864669293845063035446528765999632903586548803501178366998180989026211904496226903752932206216750829426604997950455447516774175020309216201207459616492602909695910409383529836397373477062878764960766740821812823316007837331046437246207327493624495303329109665769154162521511747392033251827326517061595873508254108016871963238484265670566625798928317323016510453795101075649294993387278867561065644484544294384487785115921580712643394458248202546044316851342442543995651236761092763432011080404800667313538772349703019829752307713370191155879832065840044541167164970046031664739243438891801015767249441588346528236575000169563764139110847978375618782408394847971174501558154980078286796382720022900272111672955975987198076973069098389839189505373779517933260357153540300310322244856356110400061555015543052063724919787142646106615006146660423761851860756033812539859513100342791717923994896244518810695768898916057271889373103399895864512503169253531036056657231862106425638529299842305520019858776170430537421740538813814622442602348752284930427580032874898616828488181522872712589035422434173946801773485274717872297107109858599267688642118419671697749647758230748949938491886743758693931058532838267073045806749945349692298014059776692305479225060108404880510218407787125364508319703555519989351270262022464774825607624597783565303216293321523109408579309271496046889532355198064453072956093364157111203095309244179299480494647470995552498872151904460432812663783357755536623580944905866788592004995791047418864660049977717562456552377106783291533710679643540846689722249838833043199832548290877484377720971975431515704704184210626057530898908315929520124760416825156572374044589135880517492836291663336692915434200237739373787731911560093004810208475320477733193526008409412647369524108321786355887598889010057935084601245148063980692709287224990449004503421422913287673167303303220031748432082413919418577238829042408969543028319172849449372479839715505904622162470525772422190507101388023991707706048523294455238615867611217141220553742097130354374761623371866541679169361455769829419164157135407431568435137211632984016960310322896208598062337274025367601332874216556633223798240468056621744920148478148471163247550123703548943358496170438449790145635800741273875698307556068575609627015095773832808047717877292778384449258164313243203511560350583010920726889588449606193687529276896448500813166526056295165489179608825842799615750919003683001912804604909584872589578064143745149407682325283797163604986469115485422104616212623901843852006260551358731578720432619516690653992678753098332373394062584160155443808696173954792897988717796214633523594285504879104815675505063075233788395740087102592820176835210018787194136079229386959743770068379660501613432149576819777495568703186936629926804277977089624861019550033195871740678323817921592336592156616362616962083337776519365305527971536664398320118340486323003616898019872329077626740996079903115359031741926762075812443720039996673198306179307042847882620970913433759974953496611523408190127927046865209425997262003277372175043864702604495223392695638691059889144950644034303703466557597804206602328576711055772898077600754432793662227757728212297609936354115050215858077692633134619503291331472477400284034124018495497716191821690316353375645557401168509118952824886866061643631781265335059477751625625951079687879737503723989738793233685471183520563312424904249081861649493342793900365246333140208073457184893603918890405392788261646622590564358860432473445210679787848274539199675966880182695565181753415071406481348506833891465359661349603180649059703224618022569660321277989772312670037647355631943565929191259037672812644526890820961734096584851755911268046017908511149121982856734414049055603385545086088342730432089220061160445272053493629241816857810876235403842663921664579172789928977419353336884917565572643554010851218667649416986666928706494795761604047259487881366630831170955171264513018931784881550409216987864465816488262400443963816407424946143264830483223268665920762316985517757309343262083866582556574710016620031838741340053742481728573203112566425790747283390120149643501946931264493018122067130386162447051422173742004281295221363948693668852759037873461760515791220857823557520457873388956701874685764301769940832575883214891371270762349895622534802517575657623678140246579410670045400105471505522878797010475755094709681078237084262877046530976639112162102426236755512387823128157806933042144660198193468298789885339810789804070944746359084960426409959327881189937791783349785147715856926827683734339065501001719210003576625659046298148133934491404878489597314930031309743121123556231802945999826394669645498546712142590882222620368589194497150261823939624297011059958668625936541019159646975718642432848352050145411192231181807926193550496136664689453354309029764730300498489380848115827697882792085785938597196659050714235634499535044958670353388139020060786271783225219696863440170426020251767439341017363352836807532234635756171353176875306352909627891597446643049854796824782605990033060591891160430700705320192669035681770430294761255537913553241237514310438436416540437519936155215035483433845734805873959004063808856892138490534853683572617377745787478796443402283656571421163545836719585001491543947961049798168130215726130685357391695567040660605958157575644416206497163158604592393371880076303132516894679545501177404542808807819084577122555020172771679586069252540395355569950505972252019380268147488068965426494478655127156571280754364326248424825181173410435235010439698809448691928471486821974152099727796430744621782478092352489346359149924754628788014118434938204497751772818371766566470071965553939586613112172741591461092516384020156232467720908912846959552214267905567608305440602888377279671422592135137413327553796944863720687005986910226306472179902018805835035149482653965346704258289663435572293214883524016870201686792513724213882369497188372976381268270374557570882885818518024615894487726732796815388051708980121636910176988211585283063194226689988749976183230915148031540996906853189581460675166733223375439976173739934832158713397908280362740618257122209966542405168991027313076984906279397123706284421012455254645379716148685404595833688385246965122829233527615872078457826974068336295944806305395380852771929239749621107028410523418846641399746129391083225902827141783415404113822219445791619890917417923366947782238611221816944208506723777051661984109646248510579082797118383922026950921255524606386555848732084309452372556761448652241060956614369992509560700546152857879498388689214484960559826078691491259557311818053380741843539600037640398633964991005076886401034053876562921201426724819657698254443383411999798367252714349217830759345368219034044108435135869816668560465460662786106282691180046169627591457722100967186400833373142959708559845078655717151030756654848650989088702382426739955502937205060876604361453958671931836258079771478820080306470213373122136001278051717229466609520089346168121446794389506563256527270285044479952941194194734689212220877309986279653795119248312124651946494232012844299886681707241029630131912925026198819415752974659042066751790106769979900911946765176216105355617029239544454551184875547534252008003872032329010654071031153980043708875602525504488105490229637641521749380004264848603139846993611625856979117202426570545711863651627769563129863231191378697373997401102647871069500732745412824966841181344515727945975763089305475692837767828393005178098926555247106512871113139128908524490458772975884502577863048278128377056302657297111104116736571078688517159050206660780374575089885594134482255244451155572481282832476601368080786863532781754545123488155808810096361416162649357196991806824208518356135583455689963330530202403269260839126792651672195358825295550861550555580223245279758035647192179545308171127895373719961321044425986184295095588147583954396994613498099094028029398685597052511391212441025606065845360281595781018138924288126778997073278504855543386940021014303487552849145699955739497085779080667743785709064378927007595108122582504477119437082691094263239310864081100384688340611631825470019402904909701806360195838169662510587315536355369701260022448459176362707308216322080455330363702734441407493109528578848059221115694074800605917756500082283823461356457171944487630978764247794848639455206405200629746658231956390304163631597722303034744236598323931570917253600104083977853135823021974196626493174598179888891117237623696012319776687432222922805232678739443513409533567674123381085249859030213712787751901359120657275093505129260801882733968341024832899545371619655238287636082323673570799971404031610668655457499994925793498374613463240129350086918004704229736883242570279545619333923832695848586075545549504376810510793552623122699673674520379876333202186749997413580269749777357122769215279544926071084422714367817027195501474113014264560123958751909940840285775474354171705500327692936121885412870656712753222940604755861444796182838556403009305976521834411149123445395369699663513571010702785591797822303587426337410681953270993767946916335664220043056015193237333888037579659239434997495494333734630244272376360449750085228038040958379037297317693812460910260072431792638105210317914045897758405234162601308701148056439980827300642094767730037743659969320576073060941356224595401008113235046283527083710684949587895691641445350332388896728336611215168964137482479205679525509736530751869278765082835019877298522770006578795203760709639551761760517464514439153886389281968689567748627477421164148547073819321538877497999620967260602613671970379524149938527703033323475294527327872328630550027420778675627264364833059058261766785194817833611626663448954280551540634171262808865832306531628301494629394800939344485146412920449828561534431245293458125779680563336322887464276310611942671418735495711787189006312236222642578851096370713357950094833308894428644460018552916877020756317452113556240861100196558335087683442119574694817455223482082543856424400529460214087700657091185141677061861901867174111166764451167452315917637211718426677759772916976101935800302895073210554861372452712522919232361545110383404707435440233978714496434004264608626637178727162813787784607731161283235447104066828965346256269132613036129751697175798796401778159428182690574133989582180987186821712645001687881853254808513129282931547955114478877784771898215015004257060125025276704776110877418413017736205310175181361677711207108584063141108214968307974588987764251219609738669733501888692760005760627437726670139679704403152315595146340124190240938762825297114565590403535288488448661155164968909086990074518007697870590131082428327305926219704249198583397243406309197830605470980656078131399242779745710117221642336525604566915838742188526223407266722350638375314465806267153148269763517976922743685290708269025062918923830683328601979432122110728012727730593808746124436592500770936858119242607196645562063954140847369526429065906210108421988684908343415533729666312686209705007484253188439493579619550472252328361433442849621751319445453865390911622562463020851968468845562630538343192131739267599844136536122143051543474273896242037835455323759564783291061839930931603074027269494768630850614844403011641744484409155374181661260157061588412415331923727086035821261012858164235306628156430602825124459362580666663447242914008061722918056478187495866425641546581588066566622721267859771672045888368449610787902522550609313560316931271089896036807944843802518981828839072767388054757087536450421130573245125941283951575344564735611389544951777937921372241438616762825092878449990581314509716440904811210466150887761010142101272006982360208987253208824136524426437007495881097971066127853407950316300390574086292656496268981213011076225841510626959854045674861176716810288916000290900512700876028988005118018829358193047058076375599637484342769476187493598103894498886993361605517567700491811309645458075373550577843694955189255591312627021264117160653912679193924780075808176835553201666746631661058999781896622621210603657081002349897914523982649153851903179736540229937131183889285212255639746260028995627073947936687744018122441623510024413269221531238842215510027840186513012709798104695462276145389485934737444127986796463857330342934721075075190140888066550515165105526403058869581296651779249971677682936886926453374434859501250033952196721444890451274153700089684227449644691184804041838619925311382328670234813367514843230439714691392601257041057746523551079242499709320723353582924426937100579303676137505848380483099285838965691268318827675702506663538054194243799845751878878826488855594799331809803818184885422155500301498809963975515922495049166525289304166784236533206067929480255308526719493819334986454347476937745822969396671277996726316538756907793086323420628337094382963771993011239003858211018637727606238286874125043490854972789528212087318852686016414819823032547043974715903131428570749340808762001660723169080460734421332819889454864171255104910255136462126930103223645450742532815614143384983292527303533999647882573774720229949321066170025033353774017207686787377709606770047589914668620726950563282189665321056405680004843797270263568906157861133116357573723224390216117586238505165389384907393516198677491811221816905225416228438213411818837463749339003256548433693261259089504661970534249769999715302276680406575916727652776247668512781908781466723178840477478080512202930206736638916489235887833285404503619087093352050288535697977782037002045582208895549856790632071883482744292012241543702444340009967992303910756621479468549402091673742405663045535807532729835065103119138649925806942565553184550508916430518906669472130655264337408703568600579171695728604041633507380718710446157902933776277591940421835622664754834862985749489821326155933150432798589213252655438194953152758938108171300295435630397648271093250750840780987120693645246551232730701983881047514049305505506272938869109995662205616481089435112786240683972301391060742309449698895435366999444375721722994931045606632208459255997855666037592391408357600239350641100997252082644045426900742160964019975036677970139405176893106344310541597581559361115325962046876077564914388480491974642999562953328505471815862273325077136072080901078002137319175232417522387918749387606286059478709751346194526024444509563160682855244269394263534439774308687180534760877374701926550885393369490862146784646185291784768224854044457954867706041654754481993911566748051255850027979042721201585887570822502909219161827565266501755221115679807505395176247830204344043385941302718352900055790570189742776073143388402631391350764867046959523011429318102883066759784239001435697489959626481029322628520357112149160500495560026276284733878710043937193272791549922372251250468352055231092382163807665638533088115872781498660866525281143115931401876915101246022575510322941659714015963699111047181461628264661703958537884463111789637176803166023357443515785308527251019484906132639396935350132427790103925740080594641700007010134829384759157384538141838332273129422140153070750588440055984618488447958764704258618416493407805540993647239876987866760420666640007792078392450319261203413205107305494407013879102707212955865417665981597567097570491186698246445280869585446330418953603131626988330945873453129820272808721724428094869074329647467178612303883245848067902372367813442430726269005010724859873300120290529155912587711674802698135622065330475720336586435491435721196698053263785668285423253413609644241791130218441542293516820079406241509611664810195380236023732746372673706892872667507232957989184125221699674895948597002978167084306812337489810869762864699457278056528459629219703475828664720387264114783308792572234264352755821295670483020382908693781991749767758016932978559588450569217702571105304171979593612942632770284505629284569098396988625424018372021981524736253967169842504581358267387508568430861941617712661920684703697028921885291598209928429935679252405874366758963827193245622594148531219266984430678796382918232221827247838295030586757516302200428706572380818515436247679934566018216302611229828601218110837057600394348982986059976475462508883726567367933890749631520218830716086624826474800982311119311771105649974376294513522971234984414810882635794263797724950601698959039704599121405901872620308224251259640720431245568275834349333324293057681695896370894417515730078427442642920376162011619836552281764610528428279826082812890382365480455686172574951107224154960459101200386317638584178943572155865611038101705060498505316101267079956388034896991551457103689436945406603680596344396133465846095563499251078602843591236513720294150522199165575608882411018983803208022578398677504346343335263090185949885488891867990449632413225407053868517902083268414861042437414822250995206043714745892870628689325759496190436235284854477556678945252226663093833989800441752412510927790129238458677674803175381566947030523040648341702585245322911640064874573525871429939474781412749567490922853098932016219127492119965584778601321682087749511686207313715686583568419767379755714439111498608346183182132807807190050938294852012649875515015081274152934142605223033715870410146552476086823420910179774768730460022129462001781170411613456981934367154143454359983527207080895706555146609486763223691325917386204181953201671443035152100892944445171011434391584657835754478272542989255293972463133947536479126787045126558540787283115644928438129703955114699118005654773214787541393041381385253021036217870503934227493174631785487913222406726365826058429389083365073763375407276637023300526196440848615486076447990227953707643212297107913002095474776757011144348370321130592464674479129760660957532850696049540214263276922604417354704656777629250730554606635926431312893798370148291085354275162190436276812513809882200889730150899708666194377091107067387756513054477084474592980674252675596831549677564255945962739069675873477880879677181427439831758575249261772674878330691135205934126114959893532734823359166096762454220189349767446675434878630509258613698873538618602474988289512010123701804068595042366077035385811783578601949341650980948659684807611656141096795816319666365531514323235073004335928450586007707332982491015904879971070907186158169993136716631337737285266600872605278461102853335440335289492220740871925979874998275050794171715034899810486631791063366437556722230290319108628255812932583348003277395944851678778434051992674444214271052492854894906570619530129350527177745547029108292869070784948110729597940307108658149496473919733286387889529676431250284005297619848833789856870844500804845054165951684315666179663051400872837678093532862711381765498286224115350888710448416767283622705539115617040999953246642346804934004867641856157755263972225211298937433061815330810635970903015869501860626112943265238849610943671884219238287974602098806890833130912591587816089949589655309736080018592640479381098323954568824942412631458007245206722945955641577251463531890675874330080517561521520918388636687936187428749694224824950043164842414937443144305550554158515923463508531566207419792300598778701451226648086298820383865308880038494615443644222692632950875638888595780540654937065833502267643824246001995412530311509614906451696708296869037327721423298349310594960284358787397170112386320862655023746539693154129021863468470702221118927543448898748239902808764885677930388967829294212927257610998013685375605459476279338224068875442563596027507572927646310766034514064977589371389756531536844174742305478430321972372398518928137748477631737483107591281684539603887600192003244731681306728534578836134260628531808964709726166577502129255030553967431426074046001489662625243784151014722893183687294547656657512952648985999274460037397101024248464747513368220028991117783123340424367868871015737736975795470497495929646458015072760737036200883092512105813367200497717710527489117869483069688834184703797831725895473126853207939267900938807958485527691522826933886525704032436554843425655330415078466750674802692903087654272207460064530427005783920785786433697880692725350383129211313972321141311791272797843146692988515976849015676775122372615673172311692968473764803500074590260357259985838604798986752792926637020888920302294833352110269349028701288496129840785055587246025873708114458624824985455943689926071290942443033917056139868304863318197470885245016716211621734338451685580308216287637649334074905414494575785777914313317939114229648356801147562451004108341316451838166987915051106530836273073196389087335427316749368172754291555401952256146851926673927741620276678077329812734217695343275083126815207068735061061279657182226492284622304021471069140034675978333763034997565418772315260096718388352740502971254271588268217043951700824930006045042636704664349152973011769655561022100832404092306080263135771972440086812653181346912769272145012303876375024465869261024149397617413578167353503664855883693188710508693602230566292430300792240792890368175353506048565985415776344893986315907641024661815589810019087012995056652479906027916998519376149504460825886449306785885206557121990572166270223347131786247757216620165344374879439641530239000377595871848048675812068638621727750159583754137774515654638911672234602564925636665241044717182523434344820425144347561665551605114318533774146711635352203511442021569607814048268436479267285990850730637533145872615854302117252343368445398354666247570805159435133180468602003581380420482797619333908865165485047256772833546536463408670777021162335247570962716741972530266277855366261770791075099534016880186848025608860411446524807295486712065295658061186219954218390412345747046267702844465581158586117160083291403733468417535042827671203966713869079610095912446246282430068435535960593206480035553020539186894113337467283751943305464444534065306236954536753272653735388372113793236346622535046453369145859690517547466829184900289783732384718654335763943530700522280236578085936251009959679456224986608595291878841326605784017446337965439779779066547682403307231231472391892087827170743900699332794812663510342760336860986484121572929920851508238368242104752861980525781690455993536168046045936965938091266714626436185797217261720466449355704439069023837580629080562562119956283761592655861486005830172859426101120818048807792659781077573752798848594360252521579266843311786651893071210685262639913582074825857857707917709615658628417297654750923893781494860788394702569899782235293871641876458191548767302204513849241075623360998784337512396630511859426763531949948820726361743261002692578449644621374020627422595567549033252186070792835333977074591713462954900220845669788146117726231459997456036527749557271628466329408772056871562111187396833934302369420517018291224327615178623864463022352261989306681536169816951432977262326268196689301284639014990602978800126074197736069158594034994970979937349989811755070117842865852354204431232407060928355271026107182530410569476909317674882876436256627915971753014642940959818575980482350453916348490876083353052887652209062455118416048489143921926939844130262382474288917458542031751746166373014028283235307065248176746718536600391304337391991027408982686721443461958140428835446115502131266746212484735739766703200957309168493151604844734721576543316836574400667502407758898315150657519455680738051590690513671468340382522757076586314305551895640176214265290873137725288982389228297347257947301101628384318593790411346204749653711821743395272563996231018463147102711106275141064711112741016988696797553806184664263459574972819803428314531095043862134827053193750013980645654720311097262640990033783593098795628009216619424929844914293133319826158615975130400977459294539445116632370677172905521374227000408553114084412217827615975600711650748474608435923915267941591379029535420907612176465920044883916381568702235781715284791799342212004770939667008735477895009697237975508046887877592040350188156728605926023572864109766310656505690690045269124097204543507490887303302672809765940601805989872247466897905915284636755635955981946099914238593848862028747055887727880803510113126305936015507501942290697913752196038110949768203823383290986950178183293867862441800230685749112143264826124672676391921001718969414705156696884639922547224758250800678616270357799356182096126147462438159808092723962914432608200656083371932581818836605539153753845021291357616907241599657531433456156974668529867652878564520899749458332181484247577338508249370280805078113334061484140907869765202568340981598910236658933478913066648182651296415468149532785525828426741083552555965485570316650614165603099778925907320946794471395684604693307143665376853366799681497964587642290510623690981720374145023565789829675273607579703502612889032179721264014362387086038019599306596926052152876386650041429508013979418294196177366545929979710027486508315943507105873326709535668568024515926055091253060048879796658212080489901491187645730468848776403749178805443199366935566094789885767461329587560114188285848210466746915131548764453562762610919758914004658761529490803045026568641901267359101118346363596306815198273937375068193655213746171881310063754845156128754542455264848363346735976224412758543087889390553735019854708963474464879870158220487659848968878362305136623881395465061351891843296381942095987719984466412076822118424275848956339609148787415817265729582712584632366099578763636667038686855266404296176193562819926683856656422660683735546251877444842912087182826667938652710940016728453244384656276255862903785860144708061006500093719673566325514139243011451085090807892246779983544246729968736440725128967659821560134699084897454285090434763504548233298571680028980175275849073756165144447039798497006166393954708327849724632536465268294220658224635006667463468274979541504555124138975245716210334981533526330423601831794190102985248098790413616671559423600101956948181281006578945094706413429004628262736402740147620769719994630831255633988228246056470940309476965718071320497357936881525432838642814367720434839898709239730761290963824250917099751794182214729848665999782572516747179440300876442794791824676555513683547018748096655429956918980873822675095561270379981364828392746375976784827348881342709219261454271694019541545882724636805445691628939686576520214040996869769994821907877794281661703269131990170164974853150887815370164760252458455180753209663051238326642347888835336939491655691148955453881866325284403307642916221710007718092228687846525509072878160860985839714940461633071684697883164480093269791441975899042700637707558281222582236873954512753230213558860117830183511006058711415762770301104679957422803990973322398539122876371056893364960681807586351841048921955411669648056667911767124884323643432788552489697423980015520797525047931175874562295270152833522686299387849272950831348784713368997512627427877070286482352300502834423884493235274791549972536503349348458634008061827779211732646020483178337895188101517369538067262136784744942729365445875029890194548833955960163359435542180750436428736201124116112106235989094510550573189193642953453862150447051349271359567536196737149564113991130072661357076608279020851061510324097928335214176901730386722442648448804593042957454084202945992963041894690684834668790727727129799234973474201968595048864560576263571046571746881495077120159696237517495794313888593920221382624204134031546849321250606855843601414702714065687416642084455114380331507106395748620730852292163402065413991975792764406542670882754467671949156708951173113565661319845495085121558040073116051448921623034265652442746890088596198946595684342751811494306360751188029988079024463465787187927119213649406494636517344980305832430374417007496298128102513558052608476344678438567073144300073295479429042660061199297970433087019940821475902272347814100529341565738154011441450289752114396859638106650654233679273892417794549299640508955178389244803640228463974699000438867374173196371654429811137043496289688924144634028110364270673102345757177946016827862871895022299380602495307473637365562739107062608569181923375887588469092859680162461032977030776688155066548683746668396625671579639590688714173274180669611190587265452282898293542318063374551420573623536471599300977889220737486573323498301374414074007404433998231980873275097906828246023810502965649108505285231520526123391977446913337712568611772424172702863878040845071637666670781880796707002306038324717883272873007858309134739823803006932785803120674848878557895776889877944550159042104824193609385470075100277870471362161330243510284726116217489169208865551190236594159334879258238010475973833684418158926844207946147308697287891656510879632725054121967804197816251661205835926700213718183842951416458811682875956616412376370598175536217743973652511838297872493728096365703854906553794402697933784150978884039009166236522222860661865951534150967542875950488075218565625112820123224302688894113901819453915387826976496262853222095691917159495410209836141690499393519398738323218096911644180503214601442374087287046378109057135058105438505705390068148740036224455867860521334782648011519344379708172674016176780439584679643476668972403693055243834500127149563449010690921801470221236728956030507918225154935594253049377015797630065941568769893646660349045629934135325403494832274923330298597112415691866589146847288763802497206399173279878263317663175443159441900830405783472076719780036319213034339548600824274916027695149009999200912180873509987286886475359599712238939714343260177823673353547753899893520214971410747628440972605733473688280017878678142119457996884729374335647852024382898726441296100282336605976164299704551488818425025667765807058823403406865277357521614040159951887781278759612814847205646592361684975732827751684399809210753528405996204599109950487405008319405936483922593505440148612408933505444074536786723866524899601367697587945533663939557413096156865574028958936374123526062678542810028919682341707881979747625161986715386961262499525202168013784581061442106390991769019713062273675256915769668966240292686885564946883248243786927744595190928839418329534540597360139602232383458849066591317258897741807736578782069880490105029004968216228767018889042334464299591229302683156204132192784175965294892140953942598860691769761762429422529355083814351789794946986231665744501908066104627100992489888068205741208779654219312754387160254824884044445198427527850965071275102266802608935162794669062011612823044459225191121339372262859482820179558520906141416639956556435477709764164499795151416123903418394615610409763371247359165403640730781189881015478414558643335438849488785301139801122053559626779485446530636311921063847052333672700867644647972256719384855613863907909944493057871769712039570730020528206584851511625648943741928441976295603695680679904533811150742870394086168265222075493248710218484085954783186107551888885422502715583399276177515099533684351157013404685802417767714290027681250795546087849389001833600533722023175099613770344859809597765252252052278978580614875147683168203093580935964507365738136195328245763244882194424829828468784533042539391339453122650830827573541747145679853476391604660149279139032716648262887425164472797793587983039120991224605236839247411225764602790048716579839683205569207792179561814135338419686542060648109449299041854472662487055999354931405387206246547336133701792559592278658852901778336311759763648445276647520993925342203785544291286369389481409429709579255472390948224754420291614447575801054248383530396787934693843269182776291570402789185310417666302464603091511219289026251761671911021426411680078361479445617743997692982376239318858819391860762764368494439495999541633104267265690810013214236855050394059818981093020032282806529882927756686678503805058182607683915903897237680216001940626817817218215895859954346244355372685594014551985487411043520990074376252841755505957330513728506961075902897433914090348504804967120097384722959519091985367791501088968355469419662497536232889585947560935270689323928621759188094016434515735397068378029662475968007076373683242801307241813087870745991873319439735977125335268534326066543722063126948841288368262948890011613952179364745020911650932768246042741170225621878470957473869676747902432815333868510173246353954936205998211217614981818017000268367334099411396601040006897672489751190236673186161977065937246141846177297438125793730804523198066491321570505063859634557646612244070100520007938020705440971703670588991596566050830363241649539859674517590867578495208793651829796982166516730195617505250173041171054019736688692822855983530997471255049758580746744679632652472729958841825241973169697626007966213421748766416750745172492791964318860121719099143359982684773233115505811009805476291552166469403819616756296111023475366883383688175073478604939572157026668439949810663321698377067747797942851203049633203194272540444202353684679075598793925485825258443965727500986119672182481692369114129459742943048615315693229628442048858436157715532936208977355529777584113475992300462067971746668314781272422867074748557196251488568879655141721481004417803029144342130292061439284704070623147073244583358988301857943809358315301513815630302138702087425652762072092479759823562066724879904751454612565070816439231882606766412359275511326548871267635638935833325226946122265864454377828133638976304377820066691875172009653859962089542791358255300527574440485753684328854194208146519557431173978543797998760516707070281904935204572996675375085257438193575508665128644636349400063372091683857256187683117036553117743188464133349697859410784369955851882076463401382421997567263254247206822100675657506239753700822365876491961317596859936746425801395157894620467494249380183434402044084776310584641640246034742070758391105394094891294168417268244684628450910502478627510869661931870619614613639811076631725710552177244251217477799895095929667954550997765861191403873306269224850423750402356413507709769440673677221098446044399198222004782563882239270424360266438343776758858559278427243380615884632668944232462936674859682996779855035014628355604140228768573081974233197001065180530969628369766332772737676214173960478015459455709843104056298946594333674071735106552931726461445027708227276897162215680576376135359289529655168498974340372784278575015728070746524324141628018396179984142298200018214168759098042271989904111027895703212308780321135639898335029817308678512793460003121782774463180630380931542235322670252618907798302717599478241304928604748485885224287415264514070111080996696769513419121231999386550948935331695238848394675000236144528996572963068980595628393293889578817187847924682934776201785652751589092917136977519462952253272940775325981911701831687342645939845124108035906875024011097900217783673333786825543573079590197130947771520551936439635925134157382277209805892954156003777639151669082092431787958125497113362056703169065500551702418180181685885429512254280193649676519694838995283073338753928962340347366688989819478682463754703081924135992722337468884831417348776813702147588650615961609441829750916075944103977142890043683203777664146112504984373969093019288983663351184807743001753906303748662107850711257419529744317516982310700441203741116143261815528370778992426810376580875819905317683641458132540473925944439032134487055115400483817053432730211806966200668706112966028682835713057070111364893780615228794893471583401572690418826202683648450506724125455081694980398330865000930818641661840814855725190815198353646108174716251453402788100085840100905307624925504682989367968300752418804878608743334639769519084599387496116844653980294427392953484309866283384946640236908049212344415171252508583449342164290800201010832830233448101958047206010641208777502327008891710160779390496475455168578978754793059619218651511751461412505464442050645832120434443872084732548382657979353112090851292725062727552925494792011369055341750720691592072211604099633103630415811372593165882050164046650256434689733961213787849923787557707257750478985831318028581055325854746372647570557473460614167894639425022844608634135447025699062471362537732899725631741106034474282766366989020673516283671646340517790697258031655641972637675566008847257540055647459306228653092997410907768775670531667221534671433232774256542383635159202991411172295328337246897710077703998586884280349312102829745472348212853047425887265655579362403075517147152867941284619026057682673142635850351598150235884068024179596860833042132146360009973657982809156843531487269649087900161071931795298666344372840558421315368562151882045031445579857939091197432873976513958208101858169343549991897251387120477094083038694244575601975804314835709807614943908514024869847656236308924821432338297537192499624762395404279869238368727450044240980834539811261304764434020020051607278365955325040989807138416162011674572161487596105976362183727110286259756490195130252830138609821670266487179804830413543238981829445629424827226237735980683800704236694628894835216254006075151489524858877797873094888834594399144367360929934844939446949448885084247659865371571840339623312948288537099224084325957322154126557975706660683542524734587549515771192554052169958839772211759700512122933019976827395101534301419430472243002641817278134228227942336581428491255612996472285532040195442605746750715443874804725644747338996914609778241361721615669721361213649166289536939322584238174372924469525318279208934167055273342971517212531082297698429234955534151887363122900462032024647608745261056996175341480784379599928634523293577788637928905420269659281469735038133893223315174398921553418229513336308744098913615418632141847653268862869210470516798248153574163355031182439891453209189382612906180137550593887055264280033490874493974195993402496920889836657397281160981820634931858632732264624800856061111933525387222347206524062945295543055716056215993372751865865192730557414366456209525145212847155186913851598416426764587024388598184899788365336578312018812674533044016512282837163542019221309361349413680107781664460698941563988794768636667113649549292251827415804646160450550356274218489532045560222863767852657448972608336490313157547471425639566346371312996878988223263610952837281913038338642079814465706485986311139894299305167795157260139143289440697213887827726824103070435739610893266934212064080470900705002471593095086799131882213183883766546220754186652231065830151607871095405354214521353019346330395679122711056774308525009208516672264139301027989089918497771897060623092306012803769929681126199609304847693146086324850672105801391971561894966076238633754950588325173266130478331910796629129550305510917871126489555026067942728809575046050739424217533550623771781612830748153616500129707527016195758701869221262561752566211610860013251082321108555592448077559567633501722830592153542565648253214275266253409800598351461173364942619977406002950831220836435248709779572024194171954386696072077059395213574149871355852636254041547027049376191516023375830370308536250271247515768463645203978382798203725262831411837193716104466122250141693606327016599219517063879305540893398302773511486717272763734708796640452308189484390261035411238572609821281242833200661254142911398390500964314604599718049560903489315827915213216751905003504650670195847589594161415315756799312756653777300516728246279185497848931336847654812320028982253044145498202912194538050551075764604518920974761750107357333681905207380770204207634732001883182693336626617143893174385583504237528848514729603723925892968821951045572288090507572047253055823230091581017567113575306716558534144656511503164427474457666280076017894981920364886443668077686104502195672466494041941508971037939270612925038001818339685352774261764533760956838502444261088958908965446261543486661923951291833577823704668257454777689885401897186337850209442387738074682379821866004061022534040727492073974757825327671730070638903894266324359059506148838991264330496170984306854440448789727167570955161894121467243320275697831850908805851913270354987828571600871234502466361389881183805796872869556157813278592570376165447513362024482546085935847763462216822254386729392008198323865112277733757023296090342728385110207837147570561760614596132273521739807278568051911531237610575707886523242650952555004902425658461409648045425293014892652871175669634271853203268485403602150136110118844467709680332041631589717984479824252350738229923663270376207810525329495455643294656202091423219753333966400874992203594567595795186236929802770362962416999291578108764317368156020087649256097454893946341113715813385863851478966460979210937883741957747818079435411646294646404274306637855229506006637768247598663974777448111892721460490373931851671619887700223657838969890893316445728181357685172286154526326404005649945897900554293556332227986852017444958873439497569794210244073397382331847654546951303337178441676702565539693075842535054803195051777922444127149032526302766858612500587254801851539477544440654872929535855052043350498019242160718026518382387585830027155978391975358828030780086458376846262249341222831469142108048197217894749793687266241723809511217416307834147436795118561552601461447171222491248502807552095321297566683190954134344158506098368016703034585402432476395893418861557607096140471372616533795943826626928584406857998277195220810792220778545168090757274579334383238571366850219912487676740206051201513162428467971180141564650430676112872635015820239733940459876407018500795782609830016886454678160031311781352919123167558413780653019636537208273567825561893929847721904566369006897155209311938261150926221444717775335931073619420048522762397105470412117352709696906654262241059385028570494643334571110695680481364298288785937224060169068737813419614015748304555228805785668639470843945817917634878006001804093118169157142031938280098395182592623851240602020628350727444403331019360648376869462528104387711345600496914676817356279599831926023914314215499644113810057699460405600729565291509480383717927618425112943481283295714741825911046160236719625899468166464089777578805015253799111218263723233158772492276942170827396726171806409905534510462768459874602086560148372402586758080093966992994790253962749689170694697278673716392032562983507974291472060828455861944568242962358066821620018698753045563816285564343347138951492248639314088744271071333409462342454256433094919093585384366332188138232102074281251582662229533463641981110895359486788168304196462507177360255543298114742878624009659279651514399784381072533944793082288505067151413436417014822283776862755569384163113598357000186810986747749220341601756745256586994651247836511604332309519522437718447716409767067656683732084025504605962025720355275219477621802242214417930721208344026988464556378879847583194038435248828923955200339556300543037754965333745885216131537286242944788124790453005474944804215789968657142474245726698351070773583433083578661481445598128430032403498976457669468663048139039804554915862430953941386563545025558420485390128708428213876031489784702214038841308063344627210079554609297372113188353163181108203840293935083840621203678559497607385548854037221159805499278724969062918046813250689660634590498847888677420768975491049492994395671847433966729159414258630075622583688936845207875694543986189532574192098753845519459115624437907436494284572157804193194232710797701505687344102863008541022552247154086640786475764398638476762941140906820384902417771387121848423713559063520439109878460633527982357791632611812359268056115048364050707229940431627724983803272220231186851484926839155849701931375259319511743606925509835318891075022555310798269096035336684500824724770468981170645630322792214991784125625373481251666975280457436226976594661513710614700543128036613994141136111434129190437605148785037350742625855344874806793098119705553339946324507363697604918868692012193650517278516247083491660854845472650038821701011125846956323480897539390865409135313991073477410675421376141425845495023794717593312434402300662886462329088652711505087401396496429158307673496625298831122037089456539260595051716482530760278848780816321458755370232941824534324755281904201200925871469185379870638604006161119493410465609531712742899920197423860637644305157972899405042354915622551247191912256648822943099409184983872220369645286513939246074779780012027249704159418941032265066645111412754562151228421085085970002058530443399414882165845003451620118796113816571795898531005897889515538747475669067521175791990094785241538426615365301275712588209642243323474517318819761691185633979486842615471539814662694989444410982539864684115531290790781533929624088477289015798615453783145849510842756494234721443657466543583941464865651027975366979682579961126455402404397218442154340116629724482378110613702294885391822642812641405740614877722295230665854451059158455775862250131155249222577737491229327926976353896253217085442096898359492550406596237550807634613761378537378993032698855586644853269600837328249306210066524126777011948526331175826742942017471379028931274503780457653588554564942526057341848185244851670133138089379672726196556063872789020880245044114932363727097796560119330175294754905548068549799013286805806200215680025786357665050044026098191636003767922004487568054182026440257385443406169345770621269310186640478881598717279452421594433691394027061649150808943520398905032268398133106404952044925286788979836256198885084224590426084883537005535623627364853658140509734761921618263929198019351727257619047358469385120020286862525323428515687115485803381825730050135974894487261474916798489883657942776692502793149593989174338032145736338127802836589455843890615024059291399331482930204324670454770767170187194889266025156308957062885559206833455033681520726753291875074659979084188928781886704819898978036287334716357297081588112769405454423959588163526837238728227049865360861683749884697539139676619272562685481523299336383919919968927225347176730924395630278936023517659485573703141813999063998480193070786620106722869453428267399767674882549633163202041394216140788841533314465819905749562683823068745596047999674886456028137844241767951957900910055668356505368638343797045352299527049037295113141052569357974073409446487960161603416078149678321772358960527234028899317886328936010339550988865201336389968524889334479774326009024241822045605065517813262126970845714569874092229733463122166281333382999557309002302442231593820847518013915336103701563453973900569988167930466841701923259674392341024217596385253386584851532397624372825803532879871490364412717016896867434438579218193454952100393911202655455233839486273728942444159551298223829690718498296873319479477960245062196308921896524852527362289934484894052125797149122059573950797809885308598061086032149613366855625083696241320228576750449255416023045549620654775662360666486230631629392349163550881837353192294227230387789879662090484406732243892691324008116012033558384518295050395440888029643285509963755454363757596422945544800017535206345549337932781656709423555070457397449500945490412857549597477518200584696345208952618414333112339212999190042538839084060633995773461910230840130273686644664035555759247824871784158607795546149673763116237279462635484593352239209519926122564426150147759101400317828881978045537834017731730331551927143680830993986944297328112025726460391955861980916964426963392046169517397288301687771876844619579742179753252539587978272964131242423016105495524214405440881336525426527447295147033998735191723558228908379419996121825604269040950241113463287360507499428282133395606695502379340835342741244933508536220164798228777869456443559604522018253562792272285934008688996056226387699273914169047964372667768257064671477275599675029044466995314553299368537698543534605494965245403190800339547652280073791749326383930091534086138592786416254640014975662661657180082678652607121435278545922830659800438723136107328430576073124060500932872467877998165625929210095801785702270840245078119204065548037109769784262494517241513120629638329131684304846347832570722476693615191550040846222215703938820073232412499718168704423052922072026374906327589889252947944534895850573562172884644361201944275936656270870433465114823248845119855929397389448979007023874381593921845977139913633233104148038277673779932396035307023710922533213684993976642960971802340704513324701161810519731644300920475043822608230065697061258086796886169942139965160951649249517211363978145407367219031756324561629508914911567511997768514377060503695429185756898390591241447807555606865160822192428392525183219500463871833657253167598333652349958226535376384788912813843042577290831300749152936658416089026014831521171095744536524878598960817658360945618347184808687299109386018946498950520082050824078576350375305339805704106391578218293038858031534850130343958734215655360163102918486398649297172280012786980704667397233925819805389081994003954119953929481071549151763073774561250511375786040969985947496938281930128303079570494362814542165645325916889632204079650056593993922891645120461919781295805483170620575028243082658684434350269655687561572847584958668074643244316409671250381667018390311789732491208790410110274397029801745534788080471184814833878963574830557163378403679458258603727920121884318679498789598069766803769631350872630772823372816199046852220976876179722835936275041025340013001998053727526424311737588539143858474185057538661206260771040557905547113527793717080345514895436555619751519666045016270474847893671525411415266643883720603857991117581203775933647823177615327944014995882371670383419867625899574001279846230865421457761095155733480606512182077532292605799824732981340535344676575464712602229787438452188233669286280958533575587856493697200579095444106901391695968445496726664656376374475600576920490592953388136002406100938448505940253449988364264607056826583905254599172507620844256110785726231047289515277122948424516710086555908380994954043826285326573384230472754011571700546130336005207241555845116092582528992515165798952550897060360636793008891218658718011978778059800655372683109719201051985645403726541666632598094712840541219158537975846899268236243380705421635955213502890459371999753272315072932714652859978883946722588423477697054231916448746205224359220563661402722747538949712316291210266780733659202814556305099643951523930682385336991938781254501566506994049557103782180978430434681848980593530106942083053891251574237820749099345522702119683475778021751467527737009862798288345240802721034330052209363071561616403699022532579497193254653738094237944766341263995339202124132694672498346912596524246539447698819041213826189516047535888701382490411816395504614563639093402364101021150055533185036101656278343556623157763056013139963814614963929583689324103446218465958057537682555176470627239376606876769026666038145141955880445583165374268149418463596979982198758673790296711364930222099598241182385928579776499794798131970083785072650057475882695086104861546607532198851212883790406229193133518641619627545611253654829200603677302500250616554613093607127570075285227170345662223184659443458874774574917865522248200061340478606920156064273651901159927690700544271645634807055790244266478220163531192615354078461478222743611864507966980019941587908844380543870542613986297180287882342824367777688477257920140127582878480585515408974987130892900965646737106721712056638731214566096942728846729907609598965688749173282866662370788258770447902631378431338568395892081032924699488934359393213365297458096712457709180433874572786901851767699880003084793888716871860303411410090003990665452119953350024072705967908488973271035048499092582349742911063631108371682145199066073546581543720719300938852768500647565520229881632327364851354992265948268571030436301466163351938996117205108932072283328696722809344899200479146642419977408782061874740305984242861686141599056947060248554192178326703753722029964337767270013885251299063945284809434322462323574325125262550204144185066016994321991288715755983979341227879881771356160909440768509615608987312319850306174558145878117548605542436765765788073302506517926386658373910977710269866187321563774692413659808952997673240188777423457387782815206693872437386342135384573120883577390897635557818539554736610167948255555675168388576001549693347130555143996308890906751050081081819030518193348611919634090975223384340132518876527544329915606550652684901946953602503471577197061262204591546999423546682773254794150157946719396489740619061064390639108521608814482395126118972833591639976427028680691138575101797859933588157157218767101407193362314409422399458064194459706785432752607764321161179500916098978091135727417761277704076702773002725368600940285467694521686654374291913769771497302491770972806472583186117608528196776576353870205712006358128329910732081614366177095334351184506086185438714595108463052222607030041998285325263451598253314256054837657865064253473966442148734382382804036872466609790312051220180925891622918920149476853713071962872765984060780145415412561461295100485362327070664355072515563372136312971491674731373491691770791833735876351986488086266238779062102163660266220577354344128948875062613606970561066196504188876015475069232864876812350590634800151493639135871831918390806914763059856156955275530418045894226878594961890819211937557672748803483592208119238368748891425093228222441925585783297571148602434381587074171510788613687683746319672261330090592560058919746969630074025957060183052198121576894742777760258812118523032426361663087122396418816655773812995985507105542269377417072169729547230605941051946039639874634887325867361422496722425961429616853936549797071444064881657786584973718540540241856200099087715132724946219375084420810377707014425697144182912861449620954404980166775132709947787973573525528373022689931213598082280636968750676205694063466817677254757384718393150469069091939663442240622661765584951888029532149970271353909239152774538520240392699239218926830285014567605646723770976471857396606248279055148812659264248213777469546650626706295757736652719557565286701442611235319555039676049760328328679540912699064968465271830273315021460232634573201335077970619958654561671633376944546093600017103424586628167965745874232848496158848323012512650921391635298315844241427310729320529522182764304530207843196134279929471947467148571150906782152793786129679029404670720181006587000741353163182398812432564542768700537249091218484949458137743658374723694169592282891150873573863415949613306851876498708282737429118607786820485626006533487285590314022228668818993259310405732483285423580284702963886150084981663879951550732560577196857756436659469223206619470151920890215077299501283211384284319988581009438850666828197786247178542947231308300939433983216952247307614184826941636554237634157026102345501264214365616881860913327574249218459949171674849351203367908960937006701457026029138149258076425171049586288990032237448355739472814787845072757720804740158327351478659239486335314829312868893474831325789045582364536797193184717934544562587938573041026259620165155056421672451512527388775210160971209626958445530336794701590024114665395408048139109398234833458663736187203073601923804568277100722964876693792573383520824349828700401433313492293746088133211707973151142521291745091157996698960126529269258096298773189046281158882650537883343466039226611859950471936786660594575573608883905884975434502089656833161115803438236620478349582414277017790073277491285831411141750003616480244518836505226567094761744254370085194328534495300453804525902305998358501487770534802461779910047113140841322546828984870215948976872543520748286860122095731585941557078827698513734477272949349752130821463557702157859566328637125739533638361195435282938618825048728380483855050833998181142776534876698495709617246884571330607695906065497222411906988254005142276204734501072195827467188349443605533505308058850863735708781060769684047803809485376222789206621459309231807783918438865148795885467377682649435460631042573980768337904149437974673729946632199972454696263797439677137459661970227536528997495162421541992386871132445942816178538236638864230340958087205310683157813314848782259894069028985683671977543242347254009639354698121032229318412742594464761477209278031258033579204869034991468866023485806202962490646615139891102914340445350226830155504627734212122371266261227745458362605697105799833193470265342158661595473100430581052960504766299351157075607657596269796936544838447049391881046719013838902847237750184462427542708197781902063423961024646281283436513777464383608432654865117199090691083447602654624495305446946193273680652184987142621292088427116688209002384646208391791682441636203433719676551978267723705496104354610363173785562565287873014108756478089306813748488102713477707857779201028394238911382873584443131291704266188874910200716485257156771418352998562106914751928848151126411701233258310318330175578078631288716008220941139523646230031456005976762514617618419091567277094096478767091762405128118942901334955958697084484686770890990733776400860372093650070843055971852894458961749831953499820914398580563357743027669883632395131569091468643080578171669060080507008748057216802097585851422807779047500920706987387867459720867861416470233794519725571396072472252168546551953898830291871058918416811946050776703021086762589440385054316924798508991226691886444535120566942749403385141233605025749449569139243418585047122625467803975502108274843057979767364751769000441149487051602793227053677757759005997659971463947243279815156024385502760632842305163692971991384027518202987896889422512803371487047677148054811095436926169949444703169869799481488854069929935938279525507596989671774383038701815278413150338263131456431705280055456085476595347942240797855379420012786953659822094400657562420964711088584771871936345794852958496578412681058873171453208744317876345242339497719788316738609173194270107279299288156157431410574427689085232061093917545441710742598182376798124596793024346205037381937706011073385082255599068412683362815134566286778601148317606142362804108213275276485792719727210842689992300117596555736526637685646273336830159561886162324623965869774588355096658331172918877945473968217288172236793326826588411579613968770040577997073585691569049810437829014317482949942865342979602113686620612488366850063134668247011250504320337511850564863966610507980739221007508087544729112021981104525671727380408399101336271269937194967028040861342345439459601174674657947323763533645201672431353516111715380505296978978655732446986549143860790753065570517621745631847745751940238113448479593361504782908761331872207001576064880773874098926773808617852677134373733027010854842952008742554113188175561661496386644592289532613781347216725831120969664423505480339035449866237556990622947465111269848629589461185909288138793687739324862195673038501021243384190375007220971492945412069443917676876533811235368523772428258742080747164654880130437707477917603139605216770700113714308119860753036937986465084841625277323230090178762463108449599659998467362697426078479528235324005143842890734529647327338482596063736662406481305072149667820061325238190813336679495674562657611813764212599709862799641807591622640279212917056814571483612762355082936046420006722439614385561349314596670208211001671716254373509926470167741882311187477811748769669275730576318818231465847190003947107013006165245729002102479337767306371676641192189467310493882418424927088633407324201123715981842836171971603766092551346584177370417460697638954910257435805233561441949149256908307433871993342479722349599678525861368945832099680785863441051956820293960246774715926786514418483576773413014844491374944824915847941756579849161751054285159150369136017450838429417022114018594425310886380128804944169038622216635320803746537624317532982104832628689772638481390186250717396329545245675882654894967798367486419822103170798426313636093970358557563929778373580662015799452411585599413190931365597983875288731409293435287793076345049512858235382777748291044443780047093286254741241490221135574497831487494777882233440647061203565508933715866152822198429470681681349367118389323650114179720986583221841510169147709737993705495964076068169700409172266758927386440728850490880684548114119717426404065318079443117734465319247784142728642223743179405485808707552335979042400319600741925818290002422682389563983575044841736246783239697378292187471109699962154051643469347241384994359603972874611550557221238617394678571257148122338878414161258983854988326341517846921048949023154692306251464399187220363146199128379354879035110251299372833773206475855844711643306840137232909001764149373881570328306143768054575039098059456423458853912586761041824889073461363565003914379887019176721910672402236900355326832170935948285761385796082837857046548091300393995426628302621540819848037392181704872841551541261026313777599881734371832866602202460460768294819429785840897723935010788887070312240626421487640463705359780921184063984650048624395940420920898581052417694897081873087085851900607629633914085474819183865260121829669359113978273609361486580297051396977612214042991235086364820221308245518991097469237822808314276494929605560556124446911972995540584660704135646684051617117964915794538409729835689165272530226062759813498198333304300357368334954935967856681813415290591297133306245653595508878249878929625183962146708326609492105839520026757380077043164718345995902445480660866293389307070215136223582518188339599656932940600500304541677437595735875015127709535042546056277796826234884200263683619643787464515827373842212526582042484226106334562602745410583971457312184017130737924594371980714161743246418626991449664364820193154330709484731820573406747961986277913250071876638145589654449279753295914085088327621363228627470213816048573253256925853788537353329308909648580235645040576933732653049612533290360179111703526945956190113457661125723580503409587353318303581407691537743016969114831396648609357036827763756829465373025392453132533582726782206827862991375808560971094722432803288646457247427348418993363625307758798427845902153358552099551904009066357498819981525980172798146071059370844080853584801343715683833167370238014523763344724184309535210983723977004755310419718917028713500826097007410849796084082865293101752303935352698825443676390392601548842068388600843217170924590835584593184866716088395825817227503556123685637898330958329863248640573144599907302812539383076348772451592663368983328429367819085692250998534010731957520195514860030763497367921591345990188689075109198161227542605244664721043627210242729650120925814815298446430464968972709525974548063500142870064311114176088340000203051606060279737681076589207670814472263266265801213422166035724969467268948972126637927934116572460668628803884238350531633836545497151524949491205622818937525594224209618428014015751211213595682924750203818848822746233181694860890554780456722688843493978022650091254211151256120085051962933514780637736067031713670968229537253770835922279143195780197901597698340285714564304794471933431306092256460761220884248869818671288836649236879513074008597453376672519765030104699860203795409902129744920739071042812181825354054891368654894247869995036299977798209611229254492520647769852335780063686186689633166367808283272924135932975643121822633986003976286912319464205615904971225852995387463253995323900892841848946105268740396981025886782380887296444495087111158807342629927488669362363584035586793334153001682426254365089517688850401559125236872169920587083361946242034091178686894532709128112469974518586870057285333734778615608224637929879467330279950155112170618685815281633399823239897071345882857087410549881793158776522972007061541338369907251178734071083578483979272720700586776435707719274793527318345407046099509651129196979794861481323743820206754521009846714414604063176670615683302261873113018123368441044731188198127682027672294715724390768901052891863164040347180263095044601306000788845894399014401272644920145040596350781578086830309183150190250755557992160305117066870726140203590256469940958019870850042940621969551329586029558460886415661675241191725549167916928755705034975029092004785103539656944040275289921019311639284075942574619689417916147156273497260607856076435688004366584122569658159867683092526068234072981326292083229863709114292986989042002013044164053603183722542310453813463316231572045712763479752277939344111513326404728158707058985606585363494885778131499287788210789004758288298575371187289897376698174415789228053958526988898086770649955382802124160022358036155773276676456587187773485233972358726877943330214323557201321247198180593029647993562178839780620057180390571101830146569340363652900955018598811431237673080434318794169242594561699992352513169446766029372953598160406806133282543776434003003408795163564229049318246713483782748630181015161688502969169827840161213475678113767277824126368553685298426036575067491204202632898026426661819034673742502074811494296809269022332628215156921687735529866137121208416877782468536724361281902544358892059518419555528054721572106010005093330321306072223962867357531721310025892782557318333467288436038369056317982048606595882145492906910799831753130327514204373277705516671480200617047759774108842891557787132264853200040173251597981193544648906657881206049689600930580063948572862269163344402057985300429560866407234614815882418396895339598975402841504030415021408071605704488147175431547845219358655255846026012312109293288178595195046204532207832140347663074204567543382631739702793047934362906031073167792614143897129889146394180440950947810243079848620893667925877532715071445898432153181538672603083126025948752229638787666973335750020268067579752137884315348594994822337287130526892299398208795833516493714770718542000537307693832407238584798835794206427632801475423766072590031263430018203118132979233570340929043233142696489496784961081616670908912563717435867646317533989886609724596999757680802030183946837840115378957828666172955739594714267872184519985735905209503143556097831250077087088748633449657651428356429459193240904829042840772451467522132422699385694030348305687311131420283405666898181105687418143373629574255572033832019052542198708164445111789566313135788118779147799488177555335737029513514753781919284291309091600093337005047720060726467119867221524342478860453185770902260444295788798981452257359287158822259634477264140658471892576351979890299065713821194682525727678684626104408770654549198172474224416192521876268608726164657511176927832440347172925013192350215971354054637143490514625432319699227997228509305554937430766580878249979060796892753114730476965762941568197574345363331866161892521263670009118448905558748652010791629249338427688355179687579941974111947982390012840538439626431783550881503881147023207535908817067902115255654670485122792118837593618655100942794533878243585995411744038609315903537337659280417896953749246171684407090270742809990366850711962681400593971618921792849822068542305070285092379039784865392603254059361780536481356059586130451664802658810224282407393332344966937100216743109255232815924937385704564055540640064213916580992586662705441530993571500199131559122939522920308903940423102781104006314866231037905458096440803490161751428136275970223798346796396962770700991330683119845975546495543655780852325449873760493827356329627926944947482384444236619210598970555522290892482635757633299234008077215047862249785749944733983182279104257162998507763243295589865986198060988724263514089691096869529763722031830385128137743716890002129158968833539246412495677850371346202783944395201645119932662496356453904443628885100437972783389554605376327732984587848174809226201439514649573690621875329656293506127610651857668523266202729995626123012147772071583815062313163162896975129176878949606799505948069623591819022215716580493501222556476371440938707037071228217393771785602104071259048792727132239608366628693609855301038459933437911811312783468019516422484015517762169878457848539891292016648306467832862293083459636988262113236352320311334392315298340728654037765508661321117556626096551829343294640365008240686450713665833149055997820655610628315435793276506193375948422056125047820491736625495810203062950375242167965421921538445846640279328013704991048649996551518733158483466787453829913414682454718902775450878404138658782452854281482598322468025948316513697135423931852345088378202652517647561685502425628384356144291506557100543674308342225129519254907528167768213876942979293922301389925875420210137891329746997691684851016157804190378414596273524818164904854942030599379701780305896991656213321947353964897898944588124302840566137799460378260915236243410422017233109373508293046884644137813452733674733709526496919385133480596436612970415655691384490681389836412671658653616750853678333736676687329347410485280451818462066354632443519789970725059476863683077058520457289951066101270119562170734859339145459140590176951916329724177076338165754438144243693183316172616840529452183147842211542078357614171798507985193988053539960792936039747948341497050430095548861908881422363658890213631272515145605445601278019137702902872609541319803763682269480554253300964173635037571913680697027067600507838234479365357751747449362491941601310916451395716802086620789343898693582686483030307137803133609455232189890336164237281303581477731300105696453878633358898914663098934701849621727877515547540254129452049435647965195005123108676606282905154023439114518810380361470733234558780882519915032989473908417418841896931944555203722628689811857296717301936507429489791835853271906900020380108879330856633695624965272699522658812776652495972254866697159942465679720252544944996383058546133958882338043657154543948017817005163379007621359891687175382736318072925722056225632702131505267531381248076303509854438253850942942085279631173342847221992217830325032525861610940047955019871922884961775512388013329391464329494109076680902017523368263759237080567832249916940768628046149520190602993385175013225798184344196205481236535026530247290576883966110020916887792959459547153604420958580583351121035664869583431561754752409412513967790169919599681093726995570378292957256400236009802522750413484772426128558209674002038647442730702717231339088447774065965100520538343451895789729884433395538339598221300667411376991980030472774036759149352731031008562412775099583729202613974875280734986145855935059025463900837336822577325814156946407129381154803531754326279917891211405318552235354287920311826762013793641348668798592131577956394333336391962439574948516160829099491974782584644187525001150544135831534443207361354993210940937552399744984649633839104872529854428515542290708840758557116175618115521595704576568227998155320537044348543053632385420687151341250747919602220811592616163056907794713293834836291548498165629947668573696787371125238154986886516532541606978955732569364142318435242512379460036026575169729318453663107475629014804272015613540551979096938637378377565347579078667451089036491184058633558030394741163714023168428792940764630693635072226277384900290471089196973239286956327406152342939668416497039102827223734774827182989089597979477306252007809640019315293204278130934326499951909994059095487332497473762839413672438255500730025600046846902753913212433543306620941123015530292894379088222377272565603571647238311334739978784239050636810283831828161295651816574025088731560534953588697866158061390084014692939827139444170397110186569363648952400321287339644512172272830332310340813620737119252300349300256573666554095177354373283463427922374421791140839377777653230373846559940111752032213257568826723729967825887930662034546387614100906939690179021423277728503347225905138002356360892235037291320227482370247956935084111928087873841765829121615065516044613284305726296334895917217339642095212125468033782878766492935896217519383009142984338546373741802372938645782105390378382050059265933255472156512282368286786206576222567243700734819244727762032529105315100250214041716671242873221807287294519570904651692028724478063238394151382860053635776774679104909056321474107977115651122401229137794405980937924211747091744878313442856237553161855947917118234376612076391199933920671379226960041908736472816711161595076767364484990296102115180608089960230558638485902561245241794246123837732094371543031159205573422994744426293415608908914188354696023837930811041007992163126472437256866722957133465306224195004071542460689821309814683353738268057851406676941875346510516171127817312134572409153900146125135249291772826555731464290219403341070201846263118633297846134874738251421309550546976674430384224837785883885221958538495152810760070934958551097809943494299002010404061842414277855911271741018471689092466233020167699001160722991705935254728266433286974179957713939974547794601993836979155162318573851495470985988677826050421137385782823319798416728522743204807973971508518678580353615150876404120489675797271229204364088778008828816323895426377754808723651111356138119153311673554709749766947008459849740731961489784907799493511551135345139865732476963485948242107973514986194365933417560062069113915793382771716172637434118574633832394995707826688234335324735870973252771217416182271340033483051545107249765853585536244139664281088333162488889615452460384710111233512760201869134170439938037762220272649228446706530771561527264378176614894348580392605735259697360540953224696046856138102041306949604465339427608940020572214215843178639004512610945570709745040846677841536539279301292155396066832950265564941733098095761915677490640413000033526838168509736985688474384863653548428402894915504895126227463153004637942099798603483737427830518312705769803769262907225313585741978053571957267540120077366722252502813191332291241392602467456788098780176363114937556556911434241745431064402707015639943917283682605575527202676282249717440830515603356623416664425611239835232712206024761293834046506148923045243927653556280183985817151757895368545739201302672142129080237717440996032890028338266570871612504409462394418591534664482842259214932348608863678083810803789592908627579990802971936611873720885987559690594610080334180088181603578657529394953619561597331424769750242685183996994504564196905059700305062649057707084687645897136658050389769447558090833999166436598621894609138023902417768034840251531737696582292878870031025593181714031665063265895399217018550406435122895872365230121318086266434339629250018580004552406391099622527617469879940103497627129368146286713812882715500749162145007304781060342056995940211118485688908902570761650074623376754347263378232577825204681265635762422543462477684899975357097347114670872117194762373220019386761297605252300698803847264422613979657262963780802926736273634133627849294672792933604124670845678043112649108517687273492853799053248621894724220273250349153929765720238747604757638431366425450253881787297447962652709947840664346647904286302295160061895195743481845133631300751967093143688046193347861487123403793552135974344256466834827783391304607839047995012710496498125951971834281154002176233609733269514719292551889808948994502982615902401879115079345293494160728252867061128676216986244814260128173132519671684101159754220518549199725531136870868493114610787182747423175111274365622386092123718656174622390419626563757751108970515976396842843221708919087409784808184978207125546403950138036067399013029116777784338373246644883779441625829577790032148957746921993995342595185835571339873318780901749313423605972141253300240797099658786052460446297429393063787322673523335227559088152820494227984054385432734614755490065118729534803753947654281553739877942977244575845437568644516525910706678736485900554819433756881508774379842507430911661663031778023688727881280123118553524628936990351252971447335701522836460492706982951965031345176971463414729061984152723871506570717570788516971723173272102788020723178524880703993405439566850907955800047670603816674915041886624018836147004001959281536318626154495155225503671132427499666009842807011831994114377161116102294525104991361879491553317969162598647807987535516435181526168171064957576103262749141044335553066223559969962683598985408659057061684643616957599758645245250207983140614567555612866358476616756167664873968258919289903766361034980122794327507472066483825482001680366411063403071218532562224143504867913787756374154805214993527767822453753571512876326164002828948248190828689525955084400340652336696008262991521956068625287613214061281171427351754603095721409138037034979613750701671161618784863501207816419063337762070134834528234518752861655481243479077324474702260045037392010205996533972896364656034743103857388460560362679300834969156299736292006834603168020724711661646315139203867642604616005278049706508542654781428576334865472138861329616223790283582763803132571847826473030817728030244169295136003923508767982611858704745071650451004810515232821563953241122064299498512722631001580101822535493532688859453031375275584217772575768662506987416794455790688850843239330814698917112166237582700978642649400735071195012827988300144666025872164424099888829322600789896434508061235365212541288775487403297892601459572895453587302766360416247726021069185676623999727261145958189003794737104981225067322893404512889615434587189940689731683492040555658060964341586032365342531095736903437930909077961686332350866074040038544980956693737892125600971873536071954076350051791105733070111320538634834209363525368096277325106595854296613409841733185762989649945782957048798094109720883737564484174394390770425053433003286984517857475681871071339442904066201128385235314579235438046587375893504679901813268602902056191735930890076543839818035367787645991710929944071814764439514227965623873843358673487767279940092656932384889175781589831749926787741563677726810707947098822170417056090896565381272456494323444313335656009822571461868087456101589835384247787649521847812430085605821160586970972864149229475948310095954990837074472175076631550117363081848971464650911978210225795137880837985203897964990074671419796050101198320415961152204963016172009231546912838744591300670176835865637485402862913927722991219532178151057230464454557406902973447244422100719290329622565013098435245339130217563749866520663234697614994831221624311349779273915755690968330037082441901757627951852421765189098102259973613774187832853849542142912276596332974565794808425605980501419314007933909033169710110509709419695088230047011043250348317828190841064192054189398877750659709793373199836161239198774930278365267177542938013379941402663715422675831417558295937980404827162730959164430147076443748652584735441502266584078640299444774759801291497772206082689772650477545345747139753405440911904418172442399793868589451537179584620323283343785925788668961175627600327431293899172757957790043428661363552205945761253282375510901690395823091646948928239506973093550645544725485467822316993954072769222956243961994659981324778027677492195853710898964117713237624017477836095908190047083146574165892945194621522137454366649409490246703620071652454135054770228757947136855199719858928437467130330540368751752829266271938248788164781632134399144527624059024834872678831570570435130137475734128565193198367313179078145527873280012381917967388938215659062104138027238283617113201893288419218926258696374181223180128173631340451335489416575118832552516282542598787921160339587405151610635909587661715630646428422922460402894935178127173729372640668240944350826996356183047070207230775207562258066430096196858182354676821058571399351907180559905946402784546748467490787805562360774782648994522101737557806761362653088241427678246132445871700048994394032117654346195064079529246882549801585222840291718053146039239726576664294143686181597015895162763943938455225480181046803082076152170703974779677530907208922916706383955214922485975842689547632672398831228059262714623819742062087984872037266224011589615248778424819128448624146788288617085144988506425947591174663703366508024165979298736618960304409451698000952209192309507104083433251907216702357536322207585880246046118487743073459786162930998927516262669334231874521660357996455323736910916938724181883240769707577161370600653356639413347344910764102850412088950517230525059751677232654390328537785176817178220698357628889028221419196230494910884598591499717103073742231406976542478948779052800210349416208189161170601158673464338422290871421076834983648284971027268394361376035964901777471222758579993894438297205952605922890900142727270881160009398494032703453098326080636929875681811881316800808320416699064204069127433255625134036162476790858166203217403444714671145775071913012842554008828392805312461783069694730168701581324603527207794209861451887240202283907726295680710584743083707346050175858484623828008845003566272782504781275918788077780469431321681061987055137812488737480796211997254291098965697090679171545040926159182312106250979338567206498603768170562792370216507801539863744877155984204373783977802340790740443864171674613629398169366051342857925946917228143459754547631907586186560828252219527718484847365594030518735222909917320609292502597488356101396681734684278729177661160924245495725270623428582994059687939071816931394446640135647198829090848843572894310443599800819478392333142266910761657766353416940319244148153636660476412265509634406897523318109722030451175715265740204442094920980455416120917392207724899382259921844621856179664383294877024958276380803370444293909394090285612815217586944701467779537707089777714994019906845031795033095487262716720375858940271129344740066734809289769162112281009595697037782276916358360298989386642398647456059449824144419996162876569544942156272771712389637288980434581831206627913600031099597390389274395456348959014034089753247512331010270347194210602342821991910870062101104469440661094280824963492363544962926863096961073971670063974829796497349703113964241515705542065036309698856091913150418999650902654285467898270657602186012152122753826172426907862414547830530034582813406090174797772971349631997638792570199471371142321949801866248776468046753262284798807368335402230379619156300138824031734839794276041694982199681460738945081072345744408249439758347169996658310526213192599686472676052309276387091661047515168097708983334833116251417071887348662661058788683056060873666783946488145751751096611764564547503274110741902592768838332008197716408875833446960288331225131614080127038848246188491451557863073696709200469833674031375937845844046979818447436220861650125523902701343019102602434246820483700692192035928248336231895723004176222877661735406009924999820770585901629426785092833439895290823494256521072479177667123052635235103190188800831471754534235825284142454933752135277842366084984786030236787132567160563000072602613697047130305165273014775375337863455752447370487840961540755924401767451869408570162475716312369142711705590618341436910928435747141297395198747796277466454724580648056601718188736437366632703881666049330181161745807657322865577343566676407083004249164829958631486613828399749769150290859013874753116859059509702500904300570066489871500567411402097402292643917201405838536877058275207484729282039661850565594143225032880389651287973183718178829854924268282069735423988025483333128982803539764253748819015514630202336133386766947086709986927459869841629961853042160087217018108039145615917970518941553384747483870429447662447487236907729169939633504938835784529436235087347523002381337096854660268339113442393688565308147415909044116705394022745597342437539524464856815591604012655784490831518306463432874704128276706080348969604222178364184369680795461898854006789333474223436949474915685222117500979437060410839799243832162059848298593306985802636479437713197490743121463694395651881581867442939611588622635605594247425118628652508840177103718019502332147451291178367183935119304363091047562799141721454316456757407236673760363987311568288387300718269038122679038186130733684474746848099774069427670926250263722763770024594211516379864262974389731430826155089615392525462086071928560746910465810153756168887094789466015473584705924516667250075860890494429393406861674068386988694056762938325231549728253283699607335316980878990350087501299990281168555020601520346612681939386946582368284371650978350732836290411919003312424401999108939372798705634675907186183510438390063956898397439504419336160505519981906276318144241279884093620165712856257159933626685756911316667088422575899531139414764283693512107539580706111402122283309236703957418340505114417642136544150054060421248046487955998868948766181572223427613813311538923576780156196827907866165407850840595665451256385709908895049679254594376555906773025272837384646418675171881505594810548463371538669394416942438249067728512473919543458277333528817483982076546473552404726925490875089930240191033558650935276206410125068244329945760091493059111858389200189221983467965318482013520372418251247446380226774191667769933277637254849055930857633891739478269063992686414076423012783453140912553767680667068352423326834843127855305843675999837973460598899058147338951431662278448166513955023689981365939810025425713365863654969989170648889349571670956664550284289658208811915526419675166130984286356445493142084131595990574320285772422552376347012717167703657619401784989585001296206343982717793129897833241829623859287219673358160939697998406672350296011917118828646171861737439156025271440179158229582568348761021844158125348528875084599990664347821895722709591859361111725794172165925644162906863190200764929424318538370651862657787633240452303299385987196841313154212539447724798696401260168913026868103126682475124734840742516427677362518463104509850152694201677927294602395625372411267902048198630601091218321431593325225787819905868739246471224328243733175684008426839059728697530484185156734100537168611102463850875062020018335026775321818419087703785688331904762573291589113307801440256439325491021930694128967350708055510505824444240882146362520051463086526995804443522238823609260333674553372775303308446606886127716545780114774624490974932188298346077409174653782190424040580191692946440516649258408314150826057046801652654601497806107026578195577411056210298693582277735709044203336303142901054789297004064179197506726768845531788147402264027070868564392456788480202190063209139358666217728325291185477061647053981039847896103018856370033863010403976460763720399894023280742288585692594433549031512304769843156741405035735151337086761949434136099440886776828230943090826982478585640501481998173650934619479445650413673345273861527677722222753803955549004406904301051785296094320665352719503992733498581408730035765180879023721204772505824963280792907192704567450815758374899106626446945888719270070367315992235868388770499809092109516617691297081292597400320954509823418937329702251009156045747433732186974656580550825360031045985779437953615588376733045489610008131037395250708232523228822801684050971092051719927693977278788896906477686340123096204351263647467407384741180320035331867289238769344541201963735345062358679922166346692813652449390517134250611994239187047346373741710054626067548528442460912958434280731477771657615933300730438408466668070401473199967842537909214053210300211107784952403593393107942411347127201093357822080663640291145223426907808315625794541834393533291611888025422323854509699194745065657438369113497102966962373969209261431865633815389339871215544397860470684687111679194721266502373676050913697655480428945238442656367094900405625246912826588154051134489354782047246838835637763552378424775437883121688827248836976333259875416973298729330869991702498512340254686857086568953216536254652504535817960977453357585815927901896359153700037044835252446851726936536757704546094114142089857983089900393931811727200167199146356708268032708547190948887553556036989488436386019651433950404781623232505948506940771202190242791110464573099944112857091168881987558358411647975549687867408896318175896843250565773205320191149992849385957846929898311647546343550768712947892417585069533763063895885861300470066156553744248827661346897585313857411915566188097665003407254451512936356129834573348041827211208604989587751326206778438624278054089837268165220084633631814605616278383237595183559438096305564999629190220120654078757352859202683242724910846143820351814232796390257077850501888496463331959088382974321660741625240608598300686170610917587177445076833386025768288142019917925832319012792216101382187401561358108551452969667443444335071961448241909117113541836522204654624968836403790241071954985089639998424459284818089657719275530305849897008027162657958724831379578731489046592630849259813312988943501437914904908330100293933821543082295713956827157845704856176923391587012028009196029583519159375361870935961125120514108031978978615395937547361794526691975230147493235918644966712320128405071109820874967985741378041717154740747556087173967587934714143210371615570285003887914106827915640815067209192842572406072613615514669212720457021787629484727555026446926038035866940658752017848370468429073870531292415948197726598911396422467258021287604004730893821585171897642857682679607144850202427278191291879156918117351479054723007412034273966572915323266844268562408928508556627305092917660808087402982621212894169470110676332327090717368428468308582548242410094936470408323704602727920130120394758565538232292317722567510773051881335770113491906571195321727267230687159470520631220442674795408455687649702015561004091695527353858807353581938847900795952468392951703635354750439833577729245625421608061142390409098180520694343906788748740566844535006423313915673086786296363444146350821325787477253224879885337318766379355929968332163526095016001920269601366129877075966971784307217559679055519745773744256058405038919930072829982925535664910451597790632893351766122359308817237648565365063159163003129812677485406878372342200423714939012938672426594877682390660477643679796321113012304596382688172452556287697048417917644331559102682311364094906662304632829342443531503381343458083305611997401958847120783207924798467079507740836095169984673173388365119315241867567676829227117894309593884611701388277241196713703894883163355941292450739024713210028244950641684727865018255000324548256990760293746994333802042603043720895974408891257517176401317338410591904457785107069022575170827857915884966237264526214546378924638038727452982083754112237722238107683923546206446240427087051706837645145919281119807055448209419867337696481390558108574413658954690288778219538289649677900405331923755129942637523378177546946082220560805507361544184885028450149532597162193478306723625826654441730770599703142404666274318863136567737496614333037710717070711981023765301634313209671846673755143436703402192133928321049251069122907916267914398784466542996576262462704014650592447388649383598712402638584802706903819361228097431461567663749537593219515669587368661838967474171543765552671653620144003620318162279589408370090543479871571769054460587721221644295571339085429865376766249311102856004338306366924770800498158077657028668524900846165437774592213968496298027008144288588310481900000515944360254088189198146448800144933955040257599808791767556515591685064933947578114892752907927510699774313194926560804215684275146665125689458204817997208904097858688145690004997144822932494418197905226367403508757670225102141441202948145822424493325573568682964831047367615011865942754975275897615020293918262588839299499123178361003492092553309632006319595640809692442881168360097484190935260273319707632197132863722542481998123806812391884620233078614575031902288908721787292632579524958396322389272666603753775739118929284193609906587121630640808981871740978879309583210928416289038475355460693002028434939970118732154982744452517311804409764455922596787690535959645101619279745761930350610470823415190525998367893003493177621869356610710277215050157237912363133407808717126016641357234649845140743995278295795732836783529917213131923594962345791358330165585425026934596964007178091873312664803305061492577703268816168066224024920974179252775629026571354123073360108407315066454821810862831548772600302168509314908594908371070808824001788406465063673850925877945434636915529114566828606838856552619825967148699345076096801733684122287183039421348379354075783114854505890383403466648682602195449264134412576610333453977495554765740778351657967529208283770406264386922596257514336980843840370930902066861075677335979503258240000534534906737379241162335935155818799423907689815800393489074439935022211197549645045016421115376167344384659765651953706894877176774360485592307134307675523548122771196938070216292166372351111501149815625114566089248236511873711429491173992402345256133502276135641843474450147504061883779551946773916599225966954041719844741359913714849474737650194169845423429485400346857325172620453832329639592784083991543035462188291921787701370010414378800775244438631888045039370462013000864587879642882708528855960627535104685830332044587349437347973329149315444598815266955708101691453854951612184200446546855297613478771645539517625131825058403649396856661498533067324505966708384560511949343294513961750968712146420262692870476543661083323628824832336083187494807052636041238548506308787743618926176884885013364472540462791337004713813218462821122373082166283023020947724927382617768357301116846971942700779107982009037696153365029461817992259772723047052235380792694029835224819476842735400615662148923016747424421243963619034284039374939358901642986131772637245212352078235146714348758827848379697875510529540498212519531299000033668060122621034138077723792210561399077854909284497397714101515293810326751956904559699900581529872297657019206112322677041862334270060970586654510613870921289039921186560420067051298667822998039583727603524463396954367790832919859522795676538252796464288780081321298003330330494469337850322464726299911451490800581837633933566826138143368805106133562487298620072020866040721695245827343700373941611114769786176171989183915669150300757600090299058842669592943345525760083617644579751916431104652051902789486080777900083370626153290927339940348590975169688887803983680617583308081858339634954140769050736063629921512123253967128729848928362784713106235824430842670588115992375015106249522140484531211297409071283437680014556934573545349357169796611459218081252715910086615818727040636558905655439150533138719663543256093713628431010504419296194824149561259232241478839490150417572466408640453381780736655188406924213384844800135061930289901079207829412870760969580697688457374600333121775779100167862457849833578712793468983108046018666066210028588266851420716846322045852874886341065445175325168181692819189969462275282972210609737777265294591092281671148253499404914883947371337263798040009417763981409769859367951271360423275318279787914218143189093556999989354330347213028298082827017340391587582146756690326559568868313947074047498392990506805500067949406148203185847889137794760519965327072819938079882596775935104635499710800030717637545816112808176789094023137018667282385961124241980497296541730989168667749497830604080857509142460893860921936972091221175102791064976790090701110463551243143235589172827734331517499043809048374705947263299656418182803438321070821839453529692114142257351845506858173221753252627887979063092100053567108683716789143673015747161347942204191269573982475368598511891716070385899315246835283618744727201940242222635055270167827076233580064588788293622070660180286950659764292134228396526559966633602406412697486931431766014002561872246313162131804969201640327201769602767255498479918182251426242129659729759275421536244466962079220469776987069311070179291403174603211945270903059930451493117682051863438084075995822697401990320898547498694496980863353097545578669439195639412807069240477389619994714864586277302287796317054322662178476989064959330175501800273538235612409951202964781572187546193384472698960944644754074669661154382819657613587463621178796618214876925741505615337522790203605345844604172295717737207693018905472337807761907580095643801298264091668330207508306075496684424833950997939800537877846474304148182185451257538461179372978689210278563168531167753263033819069304344436669221241321069219994304079978251239905054861389103557299630726198653463207316876508956226688859185538188995577877146511308571676966788800622127395943250995776534803928012519974276793636408278028365180828273072697638287409772364626942592129187005181747185647247191560381330642792563358347465207282468536553821801016955768902847370866455482343651101108486800839527985502900544856406577091819005948658762736515515440608264165592964603530835615358219615572963215768546939141226483137401462774955715600705588357594334015499857367736107174936360988959025283086817492293390403811897648382660060286428690675713588845824812442323665642247899496383592602480458683508595410527194591146446986160508159406712716981401277563068761300061302842971489764216579788022151021170725401264928249028498721593056014223658356370836876160736871657424405700943770367432567701572866113966957688075805559966720549043920337652964493754196033697610086056472582578437471338087266590658265178997483729174256412566165604925859108994599276945328700548223355422885242311423885653483294367613019766097124862220845290703711945034251418860039741949646239203917410853798417552166101410953377041061154831803472910608754848245563431842691379270203297100202600641986851095434719856272784893242600601384008779271530220866115746909371836025418012893641143306767801560414211693262232308381391784310674344976534791620184060684780348804565664005908123745141424000530587737597033389193870658924610306635365755876636959460200457540196961514812577478912386768427521427799125973512876291727122086678379390465800211873213489342975897774005214022057431161970354083629516417782761701555652035752482316205738019288458472270972185079543192128614682342896927827513713055313507789539356505316222895802321777783305775636455082502619785213175620532963427214872987303495003039916712085001562322612280680263535243781209132184520698096002443545028326291720204120522511623702681903240126251047779767059015796617028664639278211017484535571951666512734787163410004115730655518932123913102968160437972504686417570638229716229778802587041115472757005879220919330756821113405206233057581319953176101007095388216756360348685119034515331684131684473872868130053135624170474858128582973560423443477534057450380931010629300527553849103762657627787486287050197934132505059293249667183681404079883639451313663595796038043797421233639409096247311002881854908343428911552267156002868859187413118315390716412802863608520981903382338374538922331591017468593049395495077289373221169092185440969928573925778418897329739121474136121011380331781686074797271925667075727846672319438862804519006746682223603649079271610766146786457001999596459320635113775392441576217297732928467666237915050686648380809849366034389422131824553051035147489833023833377313600219652670164369623502331513487015858508576939424006248443975071367934491599924960719437348793378393265915068150173708147218224589741166577952190155474505207080153008947728508637774431926160162467661636903181225277571169213179339393099275755280476823892628689588598818393397053000285111661967439899204435509764574992501637909188034110040986347487658429788445524784007331742296427254940010705831535140839268799111615698881663379879120571561166883094629898005299797143679713679512421137178011638219191262582306330811979343645532314458123397973931208706006789780103313777853594239646963398710443963150193405508661984489388149966858082283170175320316036903790696955640562221484166719086565817841208038529184765480788421779425520808167373967253409688231654420492895765660924391266987779987180281074250519490789785627882004748050025454353073871734052689708558242985353455670661857045549315670593588080467716785456653319561057888765854631856255034438456359358288454929327711553833888596874072134106407644697804945751230890337604792628957082920826178746305570315523216676156842514494689028191631342207450424911606759117236481780207169372950579780151416788009815842798950522320706112543244901797279315595862114330851450766378584070359793362841507485406597673272819753561579662084966939594284293720890464493461409757420260870712656372561842206283456191105152393928777397844724336928973270914103077773094424326129202807415406545828201300465407294455506468046606144919203041681952681599172170226757535720012643658548172544094089724312923665009280124616000351971141480416389384023134832457039465612292337986859520086724048583085297580176352822681533947093656632016640427332767694237293933697229938300170521226491457459978526281269380833399554442708328347310938225717606186996781076614718036189534503729634454058105083071226280671263988165983112295049596223949021886258943082222953363223085607372079725331739591817894289452942576560815266938197694089049162263157592020258172578158984093038778053670162999637114746320709172038896036242517209090278036220518868743273734154721537545900908269842496552574306848373973943355757957220365453936687523660035476750122356690634542373014314372445670234433628199317142357616377983184104224145650784661222996957572150934130302895483274019353384233069952169914173312370776674837496367061141854301700493000598650378267302633784549461837732227401598193520028001488719782009253911974704778258306260231626779706802692223601980154785249516108354739703566868197149657274534045654275595974044545747323109708602533782607152654593370467218138808630818030116236267008577590949951289637936263353268459623943275562817677912069103150465835158476969253538379463334177984007692692465987234128991117994458592220542666506646278324636218671883338207638698719939367768795172186949622499791564172748218497997566920115326412683748405119164851973603048932171603499734500250902652779144712260213561595364260307323399786206443235219454476662383907990029504741146356511623855804919778498292450554507279611586886354986312428842959660287681184160400100670716617592053512492454542623925609580040943314668786647512948217856314450929951902993534300860943310614282912060067880644555126199246312711650828321671614941607970473494649860466888180774795531591263564628591016506239051571810923031133605065808692322037856179630497870406874999192942006175321605156006917728180076611624206984747978707132719508261378526778325164897480636654847549022553355549060846823808225617091028410101772785685556309368643442887872357280485142483042034833739356096807643012379620621336894140721381670767279938538941738239909500271885966686879863932349464236769542962814689248445646257875098608158398308734190157905526244740669338248855244690343150660293496538062420369245943534150769288789163889005986082701543618188197952974339049417342729557986609653346470722288926898608689256425336351204470622959789803443404398785920022912504465287224430297843049080641171842953272548094607910879483690581998101053682516396467986950062669307448707334796676817334894842491202254689727671230645237560485982948013461734558194297277903034482224243121612426956544545168629220711131517979308447789504155873483846197346537754531438601249224653722761731801374215178491884087088749654245797781653671912357986030044749671187589348941259110724339726722556632394844630359974635627748444056751939664315091073609053966646370740023545514533312054084582021694283954912883862860310060675273604210063839307013918938248196385982107166413739517141004010942078470516788452566376100905240660675289719356267553943602486928718279260497840874454738489793870284499322178263569813999394143309685031016668001196285133453844375022645168417747350897387119875389080838678721559518593066308496909235725198419619604761757534703922783542092888690808039914580097822726985830406880933276035410668901245702255965484951651770034417476644502308110723380596184906817217595794158508571520153234055059818204099129554980824078398177310498001264878813822232658225744523868659785120669037888514698718850093016499931313675383627598765957139928639176441375673657171681046631544555258730009325770898875054970057080476805249433624078099538470918975855189364517540728682833553898732379131255542421567700023158714240199602202902025179299666242129426993963795753993978779653720315571101174926261243914154597060699551967252322963118657088713535903178936040102921005322521652821939626771829103388897287069095284900881221723106273976485555422295858635511133596643395556372414689707263535284507839351934603295447991801769647657517666473855834877313108508750808999765313404926226329394330109122168121827266525077374356761977626389693882408020511209083078761435140909516844988385668963265419647745868716740069827258937068985408754783678526940619822926831692277424245213082168766863454016852666696616204744576367323897915213857488906060489864332422768132029517865768177978394511700198116681269181936578337320926009232543780843936404104958575799135277758367669962814898361023284243624060593992221730587057884736621193393149815551494600801491888858051716701426271793739602281096324815745376003535391194396509002238756843811304314136719738076881064718677908991635472594441725056648781128856663925586337423703112470511814459971517002799391852700912847812359009864905993325843709749839714857244459052962424046045836585757747253983105741958614272801252318699135062760196381800440301018905165456133898198366265808575275327264901788837969870746045090969929841249713658267265303328353540491538628277205171525517705951132055702132444273163158186335244893743115079524031955530749458578338961751062939861795688500465432082753890076199359839040677453515321953808854871250270950588281891560315791311047292616067935095203649064665134155700137074457157786164193846412954939208247075042598423451156123663428269188154661359951916350461536238670205650294765210944512958475443305826999540749428060297331948270789491724383259869973656297236432250632700646789585402711426364098314359401513518721705314805951831703959809826339832398289492147464627925961935432292427577885116293460233337631689675322809781683579265394036692504614886510171268124263589204668138079258248554317297575905961534384618759402519230177237350347229284683996115451268400509232801096116954166629761481365204533293205844057988024694207692672363674514952719173366521203308297669023033865260182195822172632491194665626541399936316097328017453683448404477713227202113782372648495545899728340331829140077221883603677260924331398439162718295572893276874866770639661260834624060625440794862112492699584047430722791850331169632906722413263825381172628044986773403294548140728699217782492961735709674518408048150740944789158715235894312288084011247687574983875545507403713511042372866880103589379782681155698751071429002329761670512507820034501433976799635877439020169566486637281883979445086031578869839018206691792524436321017212989696277512284364126294591139478950384260702558797484615470975315240045826499764083099257198947715354458634835436554362557630717383003599516807220622959123950003111622390468140066995178947404216107226152199398496538380796490087786961108264206482914228399631629428596764918608091194418974575299345986046325609180976212508650005636647389024562196474430669373137622278158259628573443364149576799588160644014297473172982047672368516207450141370708469740932468120093246689010084628548605568150176630301734788901587647747390556954390851027665478978567306327643802456779981446766598825205429228379197681215054797332982205435292347048695914932666649410902776802546022804428824741392796478451221827439374225459119112919864325918545296448817705832746890689904301134177194579775078033869421527678525311805083341326377766390730950673962500107948355223823943015923512671424290127465091135787516256302328320339618030357248281237930719176859225625274682397723920903098020341541340685224485424924002343919950772659076149782402864227086607301631117045083837599130164040267997419962649349313862325499829761715873577545313171950291042863607216340096230034714676793163038204475545106042677013441721351371967850906022293887592663496069906170515175386772872810691418180318772125179191376190215455755303479165605439560749483818634097679758236744071400626082487357894705662247414454734999842654144931808787572037326302149088147697270073425284866223984155710914888453030091178340925198729233466767067512368834363100455427223219893296614773503501370836004953799699984210736243466501877437397313764528493980534168861456640708177944498558800872607517632492955890409603505598721995989253179509404902864513236002817759573859919216035116025067411156894603148634210209464318677224950081561269128194991048234623996694288532125887844977342804346674285331447829327477209320626774325669216560153117579803088585416014257990853532270330728839855345317053671275472920853180904494888676526293979934126411709178568690183087226285595336379643990782406173345814352108827995246951949788141981882516785408757891313906269958446881055115273000084240115371386402366414784686765223253385580181756063599287374995816083733176611704044628374281260389668597403406812900926075872808007801589713883734443219556263037712874505699570957534674127244051216044322571150933111210556852183298928687216002914496990530693247180842499658997489473885101819833944735712930757581611589863098701856919331488200890734283297814187531483268891435171629692815721557322938788781509047048853483415057854758601208668160988843385581204643240920211063148016419649445473121116157085789460016165990964430822448068294697894451224851174467720243626688589394838844482234221056157526615030828060021852583684862451211085268111875479757227485923267223609114722953962537733840964001983249121255529883179169073622136465823493643806223172141210836042385912049724466461751094926917533405877152303207296050923094259492197077876771085554434265175550633812919671753150965213361522563660420526629174786551401599526975130451658459347824634749450387177789116904743464043446705392723090376377533175023135773086354104053066740552417668460327343131614267669990732398310620174891890252272749389599894170573475507880503205363662150434283456273820175775330732622793878645345388094355602530345537107288703283305350069434907977211252392682857063090092774553390239917245699488076878234203198725661132102466140435714413818606637788291487632590327452302930481170878893009814440785876806975306959423290945108222792757079487733033907354735692582224447489459654212988165203603794149865661152244301057233723765642946022359655403457359019511355342538409330348135037214753884834773786664751785172443397597426819711183885002029859887195706087731257173050197628913583779962351951312073202714416117621927048477281537962850776158466309894117789231636623744034678443530642229253370788622329352190928464920799613969635886395438413022537432722737379323470938205527978228612011621916285454459794873247944234262509489212264574545691983073141347782731742588580774856006083210440550849033569595626612984737646148108066884335506339348052203176282346768416251391714685014983411692518706006570076592729868856114656656952088599210551049963658025933897183166425567725199580174796430977308440056728358106835131709346983092248375013250889100375221713952477155542389702886790957495144553703617376412998699476931742938853341918122631065177658645037995663650793723975594972746439758075383744623988073739052517328194066440227324007593442805254779375611290903827802708376948554105826222298070401331220635351448301170987961859169671903978338742789784389763938081944585430265298691432742863379558325289921203809409565633730245773459649442256354293958932446847871396953842968228970268934821393179048235181307716610968944842274292796835807453202259347781194634053795770115122387196690708206361145898425437353254463129357911416322101240095364805412756228658374217620946111087394596370015337879952187500062423488464565132947304847376201187263743632526765150776317469446902072472668333177793782739294013506143154419818818883588235568166886527339677558958040988274026587033277755187560048912542371789391901187768661160237055380082881486228849693918292917434275612864141334224465076094448639446790387320025882708234569672883219728119982770304493112937931709132896373927032821400925921215398042569184136689274757516040236047848945020716470708438746520941266440064577130576240055979759788407648085269332671780269721740227924412565740990156116935785432643117118428726496319448994861416239545269523350304823681758746291155394296424330517448532834365580439527955839078313376656192629013622590466070388542775701158141243692575427473748342052867759217665965182295582325446236288774101433433601794062908703117052206205348529595153970617723476130084179683738382644067328825617303399733977072673337763673277493978733584951950195333381254897082910259310447466515086530375936473492375926085899312263453692160138866090920501883662448984368306229311012110786955963212735132023481509865991264242708043731651621360933335988238203848644219209850909245709026056213108725504893307594332384845876480559300011478420720038897395523148463711386024907171038985349614750913183001884289310465980160878987105350478797985244198225691199392575147911427611922770145220504448275900592532467612816955433109943081705373852587046453920075904547140981325973527453923865333997219943025653758705257119367524417536555283144967887145781005589567061734797963997423578676216857182552783249071307106130823910041016709861674653167711547989406367459483152911565003944224294900825029152826566628895769541573767060863022654490798817190922937193319554639527772711304367899930384608519285690577549429117809688441981623335516191485316116586908209531403194193891742613449602382972705086349999425318117901868188907584125344634682502711524333175271485747772874493541741420156571867597946326842693126583214408423183188604019799836236827196562782813943078807443765017871813315553352325501310848704325058006247458715050154913676296309281824187977967620778787151130746741627736040685885589836170233516882505567924864092490876046950349843830845522492642342203626823343275108758738467375933791407309847417376574748108406730351494739649608115057629087586808983708912853046690028509042825769833285782462169655705904182364168148578186239076075257570762412499973383900905115227078361850485865468707778063239630459134422027167152527132205064015173932318577078549302144020432551933719423924877089869887442214201197406134839443863608029914096707858064483700016418090887341544320758796091559257228267613444989847610722916439586541581066417335281544359579988262579024324133710078476708671071713699973004847641382111956578266773214796577105174768353310453668561165183499952110812553273043600566015538113804074001185660202254702857340077542915386153345021246555920619140773600305687466916756531601157816823819189381868050304577902917289094651739524599684451896529766159844872197603240248564347805907855499112259295081510247254586721795353043380355150757789449458099867336666161588043680761103766531240948412665520374922565010754695392358433237843242303236890931484651319759759785645868315225948098893496380272516478739122036786421965182528317328641140305251431513851658565160171304724392839141645994109154662906239348635858772287626815253050152087837765096697973942211894485320413229755389671125884882988645388319374822557499548564639847627165612413067682363034918989184137446671606439377155565885892735970804209411262124920522366601151906970140291762001349425994096646656381796866533083735464636376328304616214306199512430014795588845851219700067973172061541295209526225196801702648286895679347883676514320601802063049331574018901347285580984551184381754295125320958307715263489319411388615552721076593596814071143021580146289813344946799810018275181594509861712522254604372981490070328410386548188055673065112836651046569984265001798022375343488417364715353366267504593346794729657626675580809630056183647079387655069048663253224531559232862890063943558585261148476365754397385256361834331345870298344076236376611833530809203792168560239163742167784766995075431946035374415507633373546228315038329575251029328782336629332922672167893703895449087812136897635705003324660942143476927175605679451347638051536198380901983208430016999750728576182425161386898728932037709758961443797705806372352757666858624222498466186620238331029690493533226447294003235258532826051704039402415428248392431932209469415487041747975957775794405305497014572147497650973091604597557616244969408528206778214970836168831787144093113178236296727085126360241417395690750824268016255867969680233893439109211456349091512154695215997627528229208131712124032889720658322746293599725524448754799617215510150680657222734036998590923552865905002880829494221097388981776549692422250766913140557618560953179731860149226305940954871374155382337745056414460647069252708763442290004693021049204780342984040417842591842626743281891392740040120444284025071047543259904676814181306402869852957790737615862820478247282962106413291030409202613705513434781046043465273630624912686140276025885031540533706340165060783147201935556979887593870261583505121536735322972376358091459332690571811720524500971817119080835954362703590925203319288791654027249921432847749031482135138264598456669487629060396837188947021156556135758077883217856688418215369719444513301850708097768249435426831714854814792002038785524666929170875800312222063321966071724973307634644380541556082311306074459637977567835088193538501943206456350100047149195571200372710212891664229396823009547677207179435593582427647631740815983727912497133982104163356167302592706331812503279228370320315197452627310543962119431480739790878745960705773756706053465911458065116401783208169049583283223091397981019145816395683081962900213759014124037367791856442715544094117630637544291441717846305416465402819043311591288726694542558216991413985864264954400029514696577846462568573331832554178716215495402324197315736991227350317045967412641045137566359220772660361086530838538414222089379116112608271917116186745592643640164172102363445357148746995728353282134841267490543099874997215391006537910568504692266285818280138899890919734434554900308494241979238038665644515095633183257856972026213028453146609645338609936757011151883821337402420178692591541273959730837146202105616677956214680893133986578545284189078261808599464179737166910616443693974493727323704199771534157709673268328575947786026554827344897889165983861175642046046628355067316887379457654627789904036358439586125167318256547764574829941700653029507106197401150644003190916940532041802163278363017416230353210552941444962103731913284995966865364054647809316405691120486375725142813553775266166645488390405194450965685544388762682372756049956809644649790266390442421490341861046040319512910296347842802499379248580661630655360318913671355734364049441694150737203191607818096063944271698453157932874482018314663291150596690895661849396983292641871874066971013963094466940288644528501649992225556226920129346750131914284998086358622188945807937366533243220473605297412713248909532194367487150738648308941863723842311938950728650752609103810556892008483394048957411463159641207197382114307198093827837878509591701631749586679990144223496891734103672645309138140507843128844815016895826311578480430935937757953681759077189249417084686212592408345316178542751152170765391607673635368964194235621876728674426159208328606051063963019655444692438691368074061618534877017078682812511207264647035803566683017356869804068444167104409377112175914718133154966340949468571805098200542885794747169326711493053860875255404257778673008905420318885373906676041727680827668523528459877299368489966647850634311335634003070769091429777865778034182996004055700049001230759266127626372757541031376710675995485537730573137930894696779484859751092827103911634997006728564624614343550553970036535060556810952533006997724489748840051232435127470369160811043819468182607657256257821194746963799754473420266314171869058162518670195593034138600265689437282715777667031105101057103672357312300308000146091539250616849237755339568873859782694633242283407676618713346780144276477893917524292218115445118521333241133471712090063787150903312371718415455595846790661053295012977721560769584331261585902415824324467671171300228961670961928477461099159400944877928966817598243583508496938097892981779405921340738136334549456593529680787184314834541082466076616556075316303734856112202933740184656451564027759011156782749096740465043641353074482538228332969038244326020546918152432228209172451738934999448694947999249059768146497920134134748421204188506997883928531559306940685283580664954728132453155584740176522856843607509227664610144138058650813898562582584498293837328417131830632836625465094141279902487186772550345733680693658143253797966731132157158100047902542059095565906198125598321107400327008396760468670731174881255961492076061564756305134390801040620243100692688283935072124840051603812581577301593841668860082627272090610262844119627244560484151278147666399021852500178844298798248316454939477022393358430608174168446387127641181684887942261098969510113698788977929687035793331793053301094309001799439067989354409264723133887218475934571936129406137753039759623912926646313528110536748623420121653907171331926789440946738485311040772016403926916084432076329399759718341269218169964148580235449389534522076370776761841881491432798159126315928981170160619673957530522992332500181258870093947915614900046357861787024221139663733528086714466822847542901621681143248871138139927158435036201593452797152038468099197045004557940109467043335445802111089055053259375739902683229712450777561725776141457814306465268066075062666494028490003147832138658596323513456787010582604872628483898517761138828421670813875048874768938731461055326567620488100798092384758805540434548622263369033604115776433248198344206769155541865511159345883965446988529851217208923617631662124870180522965861945557039910889963488473628609441098983471289352551003788236073158619218248558266143951132616905142741494431170151452270953535684738957401089267764602377533084498238632150062205916957248209792857469188024276511249870940589125373992084806745209504524237674835603312536908658563003434220276377295955932508438966549963792398769817467955283980572536276035185902404627211019758391370858954671364578661281870718416474027085231205852382623586097471434468730469192799476575092471777143730693502680344649362818701441478799285926562879953167595879307524517119818285720633464116630835013846817790426113043432795093360049746421264297165174474826982568381968147528026333127119303181929581243056568292907772533447902636153858770937401878811597747785039869279012883955936146379579533575426373811025460040370732691823546064716870803596023394751530361110323360001498008287870372845725673766869881635429100227352835477570206554093480401732391485948792142066758036374559699451698658434268972601492986440979388067291472067970689161038231717248024648796399361607269291493243317016500075300268427960472102958600302103032227186072697892552845838102568039793975177982060031242037526876894829418858105546895963157713672931219727404557860787428560363479325826268094398834940675528062620867348823546621358412355564332235683262516512537794944719472164043654787490521413527469185312869880546376727854389158234887397384634890633040151802720740110875953278175799879080434555894457349308979682257537417062031180477692188738035857140151179757750368079906503625094747900724582335743565676359418269716049291605472334159316498903042692267766956091254653257133830986792269168633438489120806897539299243665769964636575013846146822766253648505390775585457523259968673431829610239263746156469497416178621960324043397709331380715923407487350949625404046458446884902814373011766831444731042059581780448787152412425107997068713518655222485665868939592156803450291790192859261481459591740069678601464335469906813068128515269261757017157138956213795841753877120764522166978127866798875182376098662659208722786964815768690219083132047848615290157142599433204015724527246821162764705918031409328781416453433661669660320852223143796465189098192268502850851766222459075415207245265156964483498222285135766922361529370689096541145968356101018136330875999458767210766678808326326607007285494245779834641202424824877110484817083128299600880185625119785466966679244231381145112241412921038390868394614764632191243948315968229400748829280471894716532331111394553529128699729834254427081288160116374761096584967330015655258290733781961972049619853234782990748453132989921219940856932758162384794673166718719266825722896105381471448777476144853554487481765313803649007726476514334117605297240800930664088404871227146187966246082592081635351203274336006308542111261794303437041458470931286474319385474921540102721822041895764143469924133477894765039716273547610450182333237168003741532504565914636946030142018704593796107729180394487135961294200719445324471096133202995128323159136191159100191139672257812321765053490637323125024997859554687668254629952752925540325732678776950486191176894398062124049124334854409035446220987033935052638656964416074472506886431279080139719090473955400101760837460022844839601978722271029665445922666621297353569230269145893656123072762775247860714456513200518647216181671744571150880390789283540152983503812109257804221741803555432035692929446964988550285987639286396332554984847742994921717866937768010199646278255308026222330031377274493025189252056665812266854110896393219126801841621159618405448048771568674669022236511205999435351388922645847557482576342559586443233012488887466740539632035402456382138343293726373716470445072118113245207007273623159122915997677169296922097236630874987960291141970847633054048340390498391852673028531344859252145070864519291140840870907137394026176920580243130185432828583052525776202686007353961560784775799710790761985681832505652235646507320042229788690691493361644106685154057470689089586543477035550906388115685509849147883144149256565934309302691421506038506320122875903195453077862749734796628606902428437672301100496304909590798774638963646390725808119160500807038124111507028607390427210077062202055131413746314272965480718465790632761241831549517329708602210026692463183655646172355423019328201657045614352353779235335169543266997768418555560198370887912112702886685846815777252532194854737343008441520782767709771515043810972874339382058972836652536022661906579377703398882531843889947173167004879874432578116296973497084997403365572443970683074571287586232179666252055123686528471019236960710748227527153149296242000790885621131346051290047967554126104046208903478011047909196684337946291796170636218791044184500195816702738003780111207528319804489370150592786350044527680317965960539373769614814405728000456222687081766956512154457988919491771002023047060170609785666517463007472787751705944097935326206484561854868940018761477372917190188101363597422324745170152391806741742245759215172671140928138813670463433268034693779833486108219926756816466145257170145492144354876313037378559544013796840077124854359366961777343850521409759802008907364255657191438634014593959273314407866466293437355909909215285083014261139678944995632260816286974085975467016849191788702575899809220627745641642362735217360304765576737101288918202401434436036067226855027231823904605279037061069213449286448696969819122838051823410411338294559352979508014063501214523427954594161540064768867873019754785518638232454062720596618581574070136395059042749204317690292086654426541789330880557073624061421271954393445365852208249393093135638714190340976259422377180769005815945161799724746914206120810167022712006179752917899830778728851876939308807739158430619129370274745556456879358204741302922630383033332592981120841297202830047008881940955984768918032386188672832743061454328477963136557719138258741324737983456731481470734721605026518117503653197116733388032689709493375469851598838585330348681954477822679336777124250231606082363832596076015072194241949345510970970793276124804899848059377370526177279809055190030167069374528252287365749976622535776513231062883658725286206000300441493935890791031485042897454805642500172312014479720864599034108994339384032817482431521779986552177004563311962964126161780957002031123318070760773496768978494238958114478472842070682440409210709844429800998426071026674395438765171657960546263627752240861899191190750130005909728120755326294325088657014467303167314298986420294936472133210832703184469778419477075459783136640774410145380645165951287161564825788111204067560984733518886260714254907783927513464128968372110867656632318140641613521461534958369375706403822791712822448530081126582585285273966601531084513886316259320749070332801643795669065032323605441080047284352870694682719292203450834770178626832028412027837342223326246258076393968486641761431494275074336978193661057655424493316464121716168492459148157802715478967506120545858208038459567829277198693866950139974175407843539718400676406103795824194088992611257236679821412867653562172888881455075914192309303526785557778564696408020037360160747229033143003634585824694732929019524251022834750031010338848345065548188784770279646143568082933381184330666434166509924767177324021638010809296939743649005500114616702315043341551125801852842598002583347937221788370049892115106249335621860287911716020934383149066212421147554667933652762718116341676312926749967431382602385217185356701936959014108666361343646139964667706347561504279004339947218940703084553741189648435647636038800477990879042370468288655693077505311278426250601611023885870382457749523645462288311471716573340740312969625538673863443596513084529155277006381258121665620373223819878213043034117031958519381429302661756045515218514672650509590431021282508977103333252725955804282212208304462538543566543015419676554123298780646610142966421319098782518881834561949070665474958841892063978928397579202616033842560794784292671757542616555684391904242577450179824791568472226975023587805509848107833890493213150470853128033784765930433666651717353900997744575521115379583964661266651963531208352142614682114334497775833719717620246329779357237549049354438748499652606431958301480943525188003610426463807164382437732433448250550883592964476380291541001743732118940383121259021085916901436488798368155341126965095887894837849347011054257270029659611885723485360370514800626265511315424600564445104333226660773901748802041056989579095237470098346302753518167885895295964626670028881177263347225456878433075343126052109454241001233083974941678791861219575809814445453345516583254288553573222520315169553866214417891586413263123100236601663852850014683857327486500531164727173258668932727029467419160309788091902773050764425569686922801727337470452652904215669305572205372036425896307364742455373445393782189492728708997263893565950133483207728689568699684761939513351148146505783240304556745236124528384322329124127916283047699268457778388491984360339760165590360270364483103176389954535641749723819625887261208428500283422621088087451408554585520146463976710295869605453063954795467149277670105519035590047587751857697482501375703255162740443778814339408130966044577782191967646664859238527930517002964048977410385762336266276644834902705652544648334423732039740683643068435911014547062202980888654373523196944367301494810239125629787280549229007164410140760455705336657950300775854014739051035430873746768976111819220460915939250004677889594221765515433050852142782143461679315758361723394718802155902794198089748295808842615175296166936099077473990770193307889373391020159411136942133806573719455084603659627735222126027728205301135472657723080695921944463198387594195992075198700880611466691559193915962690984703833316286130997637778370855767559747881496625232793743732626515925817085797098287616821783183860334733925769927618126984212980361223467673847883019420410296393602152946332867904260387024642743553720986396577516597368252294340440685127582603886063897064771359445388842611863716780562282693587918648474885984780775111681419869394454078463543699331439300142706149777379549179312728267453560036503632207463972493051570034459059689024309843390510829144224210980466186898954948685205190196987795755260270178465945397347565029202597616506635500482661981998392278535726601175348442475448231172411929689841725922481297428017191935564849799846277932892163608818680094600192059410890975555571851833331707912404727020938674563309755111858168994324786305554732116461827657509085535696244916767938517601864678715955133474206670186077880040801735055877948937671694710827300394768110617678277625172915808789681972814604519619613226304812517408090187960154834162475058769885047259824214138598542083238459074373708475842779869652745337351900793630799957319978020964407697483218909350059257477567117275757301640411798754573054648496649437759011394201801071059162997872810183862687199919144074046369300623432242266417103759736698668419586177299686903777953600600351057608917314603074346000354835205164923346560001673105801646976271345115946271741160563613066187342998832439785060369792914389510140125563668310082411014984294877761068566101819882746291810154827235677292856876045270411269684464252790598834246805442569964326468523228695725118875766846123800297868401103855660714863927537611337780322731383065306449208816435333700815284977742911583546968625749840809901966384035408619353974481897342741166712846719304369521739606924459724440252020617044603206539945649681242582167831573341524785789494668776222982684385554788945549201012808783422743148549196059327404095674790959728088474059814248597934169311559412197330607948908545193691255594750861223009335478257901628246304094195244565161242365045198874476384909297370846817123519994253021162060018321584605947963827251621169333091885203976118547720090278786089013927365913501887432709615781163501744199830989851301113370554493778558441015826589355942361785943801743178469690471484089176553066576584411046380093114495232349709115113555598686409867510354127574804044450444725357083168037494569548032889409273245192400880819221788984140343558211102968043742943916706941176099765609292567479479151454516118737813424954237820798715443569866842240496638240521278577235387014447649378446939308791934442670894799227716025445722888120985315899137945551207703323388951696679709199581848623739463118335870393326920160757020476157632543864190693360323769104153055042276013348959546848531215791510618304805298789725153164698378828104725163679770214115363572684275132611184725266277461268602437265295424835585170774572471706560285664752269245880132284340113525940586519822159038186091934202205155863389046274384487924639150774198615694641610259586595628494373317356993055268634075150517934377278019395921971206727472264741671798596192102645855951567994412441805064558386782149143075265989435943249161847389531837503980049775561867856278962302171696527881780695202236147093072681245405651372276987225909043383997673175967320421917092350801656204365503987090038028575283328948057282757433707645073275324290254091564395466366617086169810116830464817835166681877421344345205903250895674421536540701304069730970992396055043811592101947896566889185982549006393530998477626916943811660836473920065020175939446628305072221523341099690580012120930508317057829626261980282190791344927327455888761973259591679677260972108114731734284681012728939408335424492467532959457866919182090119930266472414956692252991994346056982578877469362856861318404686292165037063326199774756567377834217407031087390044850814217809009601346164678544947688207765199660247703088835754769870516201525081800398548962403905001257635917410854812847156582728018532991468888302509445254114995500629768486596237412138480605290622900384450190417947106929774800951935691262146766812093502285088679876305893349836817811263606839890391943297421426048991306139639774049409630533324504793818881396815023124898937515894940543469930083309358439687038493092001267751236682134838283950907923150046595233638679504728292148390624540327529793903052582348776619729838041611533953421750079281337722034857935368568919168263213916362430678427872209842654028644238454272596017013725663158600680435665198874621583541092214129707057281037773846548657706054168516901374497543426019441809496764073387033065599879350663564964417348761935582852908574709011448550269526296419152489682396603885560933338040322298823379758992079645431262470631359951316365036498237075073242696784215160870989430512621811011509678418781728206285489650554614943764741179466961571274102134347359683180753707553543775285597232503987631972370625542243066841864260876462289639583932313120516628744083311790975512852610419117391659695562091954973917598834786483249998720447080406619807093308664714793002201567034718238501545258932070008103775503900702902110981835508088418315454139045662046796612261958638787909474234006582478618304945771627252857345106271845929994433219781858397102692947173326898435371515774515239718290928441928877114328027603900209695588067353000932461377083592180926170293059813841027007796487006871152916088137841008075650860878032258299669778555483059347317866031313681506353556023025637151280649296502182761031972273345623527251228466042076445082458946617394534128640328688355293708058130059748006226997735315819648399361554452646673791109725602684004319173682312667613435784302676852415581788301388148072744080372506417755545376861144209130717632083671968259579325107821770064244463377228933020137494108183924605254727710571305202475770329691717918665990032612073823737141177412577749345286173902113662427085039698429479506983580863358438586281146998660332661407958720178492850324441887302843719003021841651140955792111674581414158474871133471073816638002402327117761537430605037325013790657302446029387709438733296798486535653801599948824152096922195328567931441374642715012255148645664220291831825518615345171296945169944576244565392204834586140686488121484319848266143214854238053272002485552506082231074962942602935631984613927631726577896438683663294403068475062689052818467561284459128543132027699875568557348103831095146192344275763975802618672635943219379597189318670102748494919573191274895979604820959254348358129007602367091367305320797457693132499857576777445171636477217839697446433095453731360034901246703628900590113683260313081352853042180156610161943713305059185644720452151341549481671587523966434547219595321179916958964457087671066066745503440407601733312870655163180385814393485340731570096605639714151735385878574978075477928246460257051959740531942718279749892448920342053121191607532383542386912135902675736767478261285749830892843475148886447009536689881776416683302554704830439289601223892262994559138914356098181763795817901007358425957646001547038513628978102498511074860600039372422518844113385278473815097750686968846150874360462703585283601389896640878548094998625877257125980332541131572282570109677777766439422259628048670313501220108076057068086791707963612790689703153240877511578721947726051963441693625781869476638130643069018520201290907279996233185459250885513835537204948316004024448328930476689233632183591552197036980491005415998418187946546360194437973365921633149528369774177784275002441522159230069390718091063802225532090858003762239748153712429161567266531549232815704944563062295786704585339628664757535638011393599989323995397358737023410964145639116380503584438817104095378882564895184651449859279239769616665407085458123551145027942319502863493008601118604834876407377549022236696806720159661790986548306435234784033189800322547396788671226268446941748365552618720975324010476530696377961209978312369195269486335527747815349409779785576264434692446501994777592588393437854621912510452392506337384062411674622303034346335070968364847382459251050200693982349230609176722615144091555320771586388343577608804276038747099497121930795494735988931266256594224110121250900447818764222130347370904547535294950642572800417174488541839711400549088653821544731689866244784852254658363357849078498998354394881626564629101082989676768894805294299364601343793017146268796980606524874748404757349853165908955619584740332927644766811312341809230349587962186796383512058829041790337809198227267859650198748325695601896586932581126974409763805995468056476041665412949008379464960322408094705087895993146271913633317005285974251568126867354394675039886497309594136833005675463095535340906581867024063928370965902521854590718760596829661044407285263503384167282762555414162556871376584571372085719624728651552762639629685621127729730062359760201178286107170470193694985825808184763133617097895125428241768539608456270726025058596048917207201433687449419218975367176754365818587925537408618496618828394646855995626956295375621602431912141876501148020609400741197344698221858454137530307837906796012183495073874609526672833901911959124093675633098213434507450270996655042244318875373040525055310242899346159195101318321293173158893230095848496582530623788816220776670433103607939872764257993109400606203411321837213957671378753987024541366118002350823878217132155513749000676280166883831146757433002361740982727792044083194126407472819786247578876432651019740278677290820817641766096730980521189564605206424892900136369739235241961738994260387754206511388741232046023930094825986802403138060036349282923387222214808099998992095448593790137582892096952711683890287603254090974763403919063453364630459638290166343229239712701752824470284548044219835877964351363102672241231139105443980897347682214773415039146227901503643168183704746477281892520726770278499043180782775052000394238212394937651776555061901065346681746480195632044637178162239433600712550824006339208625064426163373741824095058576056514465364510184758194427191023207795354284867981839672214305603781988413448945344123950826970034185007195631678276042018610931661835332694731511687882944360845601965785489108506417121141743122450311937520665971934339792153084037994015641371723345581798469367514338566711104677838790752886267930607470565453494263066807508137397442558493903841413585912246849594761685677787215230095787209761542393564963020896720717632017509660550815120883485239191329335770825549000200703499207399369343354294725655531014720437766951182774450049778270959646355445530837223192386201608648082460796899380015294461065047854592365196301874220675577699124036898670649857456158479299228957829581713494053665567357551960190575947597937514571767337113437530487808460624040951796230999465494978874942428856346200520089766780565565988665379833112177367895154744844512127713886700326134696848285338933468012763974398001298819775173760074740401389613382135925046385074067515353338930641423857897672904652789186526917637599770829035030822740189118700513109271152243000465824348216449527122001974489356509886029421985734028880853220060670919612360587698345774026107689313008705388359624580902145716431616615095913691346754113428930641565078315956882489432337916864702154947373073487942881718074904299166885957511717422195959966215573696102992660009662472821672212563699575726399563356184747811041708691069354889075204602255905339099642185983830026891873573799553818936878199891223989667056601678221195107346308023452187278702565391567599513698706949572098345988183500134756969220925683858434103570233384856223046639180176475691766942970128250733418797840419450981136652719484931216175804685364770833342831973922287708545454379877504157699487844138027283483708655171406178640971598964911413902553131477227946705131765158552516056376278850977114621313989085719760012997751293945548829171364628557787844573042229752018524592646041528766094144571785214195702336691744277136791158629195413187486353885327489328390577736156536392570424475366107340168008540883175651772169043766523846321939644239158697830077698235368185149475491642842403215364618620646548291145247743314260080182892147234416080670062029773510511515415609762374923772829137634106503488913927146167759204292981386535548748303444190014508303896103068262953879013875486724100447683560150372096877133467680397731749907144067256114973270767722092557082001713252399208278690268928409465899349697591859253027784347667595622779151246225269368463018674300959099572355683496785920942025906744024902754024544994510358264711490507625339041404207229552987262630843124748011328570856686146684339057304205025809968943524035998433932219892128388924209427095177960396027907112420934009195403216526981429995883728536323143304820402176298723245752958814229043987545836189244090792213664960986699133263277916508343031396296583561959825152538751889620654053031042037999641236777396279703437563754230407215537508897018000054049977848609354394857730794305650737295371540783112853386780173041198050929278495746233513391817982714291032688598423369525605192555302342123170217115850708920438466125523498932294738822758678330585160425697690904328878427378359823271489904522217887788410241606091120315346540143822947367888529122578023966707696073637287513076262392868681414715162038541785817242121069063759607349061134074754556370754841342899291480255586266498840307896316920896679684393092028236468543917001348009265807251395481787165817098748897826275520863333120664716923483312158599133237418492316916441023230635015717981149689768983996246368626272012160078215012175408745837217941377355845274663921870949432979556709380590991661202942391732855784026736005268838603917356084604872948202361336045626617475148370023566833931307511602026457671060021087619285161124972829710832766321300289399538606728135175528438018803893814024345842032968949380068048522074487079153287015037974871077094600937797236338814132433959213988368267556056614377967880991141106538703724941815577659204850037897409452649471085887459211035902714293562679714326783586824033723544396984248564300249456498767193034763453625852942708258400083763410502552979393817986354485137757784920495734701226093660687698721129310742066567714834776554134402689897280641527984077519988968057173857803073262224346484283866809984118860903357169295677373045988351536891463428270045036502918546739079090806486676086668557249100136635730322913272690251408514373735696214593065906712742037614457190370851113382909981373875202827760710338781373654132405156595102955598465076935187971423154711058260128929069797830838122030645245231383031142969723488597255208076800245134354502952142802203553385498533066170203863461086723128812942395132693340816453001612638207673228628687750526224525423993703095385604523574219887246568125525739916095979542282359656366507363543315652778641914469656080384871231942857091274588722310841365766656495950765189685371983166009803303901742340880161279048297064033892180811937842015938557482302327959236078466244638112191108890644806876761845911477842143816802171113251516720228221604786739947805706499634036423254475346714329584996527231313762006501424373037064893496245453277786165005123488291261457566073318282745318128548577704572623426950052594075174875208542536490707794773284203780302757812845074535306109042471144084499095748822113419028063595288203764905877822289929502540252982356699788704635696291279114507006384787773063915384960690323357953274357681358934197623260780659847749810781201906304029888417084969038674746106075149903375991637454589599118222853541598312003467044032518618427070270888963341644767399258636911106907332417032735874440505033207776754838889666600909178866789014835107139914262092898221482100827259200515793129822807370513773813918420883443877144149799382628027418308560988901162273017576469047065283797381661881022496754368750886506775565718252735564368252435793757730244282397418766329146273927854503115165245015638903926628934439542117343160927647539638967506459914561534732288190494093761623767425371720787655858629771357022846320720896614101976426091706373490065803192573102549757447416036635792165488494429101832228027405363473159201313374005219127168947595363831427594504601075237474238839658226362439179205511655278840028457480343270381808176175657008977524334476565211721625588805641572286615542609339293471301096804600172680105599921917712232598946101502418109517772220641300551835758288210842592091304305685035980491091509800413441593653536066312549699378752075493059833866212822944989160727115346352104588721976708555404920065371008324075153044701423322374958413550761950298501276249472154549473692061217462462741064809117888303173224576643086384089906628289279188270886572923609602190634642680645748702769470495039551409598883628842778538022954116542085064389239403499362060171601277574841471664112934729616308540619772976318782622331114059708197039618034197192545621671457687895619109904836842160261683459325115876495550740264650574124083650103702484746338337272960413095853407284675288779718587805511266111242652021711557424204718783715545156729475588543681797135495653042519401925227058563026768145258697416036500684716483156187624655802142224382593806744676996435691352549508684405334322958590562506906466107296151007634453351655755696203297443887200363698429936454996761647473937547789094432719928395093915850179560647471793662725817662365848141289541616575222251433817966601404518416727042462851642963488282478359082472060521218785314744646832160963652541310868835785245640960135106195406872389810899941049525419468959721860983722192679114213617348979529243949463943582166143396287936703830940397068322767781220262151328939976857092825119793319813163320754918186462916827457371320529756647349504373866474017888683072222679460039312558688974294682174170205826994336500153249406652090257044527177562531386455043943048959749348336055979991000286668948150932402460210256352763198370406466652049394241717471809730391834911663603278492482223298442007562550604962226510566247863939496211267524123639053849020904782228909134983612739080301805047591742270919180309256093588667272936523336172289886202394499618145435996670310126235679229025526381990833491183325351340355121461917604283302201799184664430770774108092217275197036852045101423924136034441801903696221744403793510174367582936113350400494492384172908239845824218983066955583860938719732202227050980725605243098352094629982534378433973337262715691633917951435854522309158204908554217181244794016829317173707877829837129894437105897551046866674445822338943253337596998869630908829562356795496239159230180579999323686218669951193837291275195439709838909255673971847501861795146675582716812912940331822224335616074295120063909906031783599748728569296563268494060552505846409379628121233426186207147148489385779190676389627965978090303371110138116355767396928511728574904166249001055108441383284577446502355695266570284559540035136643794326969874969786299548659057746932476989145019940765878519898220808130740271574505615256713752757369007190482966351055539103008079451758008017364196387157962455926842294760511762929092715549914882085539500829772945928167212857197026995123981215761779728754445281767880371824555673178322761847216150133616903768770821194174846145995996085678568336265244201481178189313953670970686801784881673176946667849550775205509913555546002698401556000341165904043352545391542702329265289141133141677744598167281205720578658279145095515554058275294181979872784282604007004149219559289556397964705456864984690335946133067414999493882609932858437855915831959267825200877241477043588926632924146614898364629740963796952628279549570116433935479951212152856133308485374740458393991743843954145615743219929171176574851380291528107600566383399856322585902295540582527541024914185871452844152649465517846528239256984873009744522863479561732431366541157174908146589070090194202731661156727432388052809512393069731745809860100795426537887610632311982334838959108076708711553136043333176915875762173415542243287052896019628162431944962609081867896069145407020966809602125888468522448871977756489872563877767969018414647694016074876870979724438473399465427956084726356868975362332581636291565755650244671296159777975591878131681672463875939277780475064682630391050009130024634862598832456631310858813432503021729135542615431238428049725552778358691795818156440979062696433644461770929739392066416863719417455036316164182955993817250933236136198066694557819124496095516860954374200269949171495941356817903428465115043917173678744994149174242572726841771118614562548400033520479481475859312054336990964240337826511257135083512267673742373128236486856658243196070561282266013494207262198904951751286566816126301221203539461815179448497973098899990693502735478301424189278919806430968990817117698581572351073540916559480165103846259658153730763825880477140046566085448219277765576525260086886890094709562826696808496437886786598914157628096367100666944985032717850947096439524042854073712729766923472051211798440543902892928506748819141952418328236483722363377601662127659401134802817852233949218090161863937116284602208934866924243068453358694683727638563574517490691073046871911465010371122013990199741817149090541088896473290190162167848495477535546526779526738704429184209580569449043599441913967308117069369904724247170058592714949199279340081323546365180364680488516550939838823723296813976905820030021666456107114624736284741742859970955590344492216069475362164828234839152332076788043943173827348936472209469351569496708725001022450160900258502910565704474128238953637079936119035183543657588644199199682670974194402711402140956142091180443124971193976458907403456486554223248464200115550757890840081989019194620251231111222698748129879129068846698237795132850689455512849600474726938094577812354166477993486878324149383422320393101934281890578322509348934536391339384133886162692799350206445930876145568712512750958011605765471604160653655165209797304259946586467781129805089136654489898774336595278135720011811040183348842122906155048084658315060055406202238176005856479769912637975613780333064518450541503419897944020249961429954823894313445559729285660003480658966934562650718527614072050884899244650997196709931234834934131158415013725983372710558780542079919593063496600963081457005283497488674350186565399862889599205191501067443407541806777349539674809183038299705457374795017375691601115022027169824468281062755153760562706461040311606414877551732447510604810588552754578769423918550286493861863492107096129119541498605431542704723669957830245948614001181980053309972654864496204678625637707046165385746253557328181095094790317275700679317065378688047468286674925265168106005808675466663669486417795373397977116154673544376658938480848949734815722899963091841072392166692654285758103096437764233009760806432578408313273431222464414027561376453422070399528726928133172852238511016394870972354704869044475395307294837874033471649840570530888820628308733105704772898018147818830141905876657280365788040965856163277829069081609711405013506983129628022954872715222211598961836378842157490454709805577643694016741848462449904755359393237571387079106410132210480582544487480336711761690877270824730398807903723669704029402822958736765857065850227070609784063215310646632190015147720952670034300610681683139507355717737181694952275225718302035664272106152608091096932428335366857923254580183555036365830549489376897532304070329391291049210286069211834134321710112260401271636513831498283388228355373525834685270009978555931973612282439091830296636766729873711508990205440440020280373053788757999660121313639504694518215470332189383174319776003637708423749347410718688133063969582680089087951140005632343480373635700435349249989323182598802206568271630313633413627966887532563411448843144869342066847991330117662256408967696029575574909480116651779571468268581218147255053206110960935306627439252836801173343625283682577757947949280695601021685070521148652461539261901947077258685549027278064344754072479771388776365501937934692925684371453502241924113022111594988777347181959965326300222363025019828953311654241488947228077221264124901522095476395727737240940128225027799214462682839645810949139321141447735789124909855970225210832710508587349872244254945268900725353055794071935969141497195319607095122754781198663826423728952006586719670690284308349710412388158846685694594071653445703603730136984961496700761079440106616344952225532327238685583245725474250673316445268541948782699130726071858691122115264633008614483604110408507789422413727919692514756612958452019899523038992217659473336877291816177218108935408001263398197850641197054601221362586410767023813865767698877525799966355573677525221658945919541738280983276047852368475489889986499950189789959805120579805691711174688401618151674926932304303967940413052253245380689764696569919722077795392755327429276451479123881710549724970233841998835729897194176818305118266929873489116956991873870047264831954273908134320603082185694897057705185180335687863112193085255677718267831919671752112808735766991003107039291678673596694247150286147650291832877050698822702326143446557409885412433571420882781072374910598984227624066483565619680601266634391957436132722467669976281477909017125072354389801259691928619575999402503738070621943977932970605461056782310656657815033033754739177232507495754697504510036078365507174592426007341390725701506848305967034792862871878125107303231845374482056413531491025152132019218467279842265885077733807269303151226983980755730010279168843385570941179423068312371885350655766530305225513298223675782681216516456190123074414203602765345068421662544166792155621461627940490368968341673735990266134388604439594258067300494104453227917153935348706090484248659154758811480963098626648935614504330863984229661926428029919524163902082679277861059141160826980011079779564439745836172672258862194685579699103269491099066937052268868544581617530310623629296345045383405385700023921406729752548730542927620125029412146910272999167015039604791229090697821120625750320373401761679717374078466160277245533182998951786773627595171539269033192687159372958534833434160635497151824558940642311049484842913740303299618760225105512354705436019630660899979173603075076392360671383347098808800246561609807115367722067536773587211967434265759964477370559069292779810618489415845247492296206635679386463992645619155463294370278214424786495423845021459464600481056870381102306998241931339257885618231968203627712036498389838085215874641934198440248629334288974429515540235724846706080812687796426770978126549851819053233196806606394448863067255894617997124965599686944884366859876753637404864898592731100519008794859351790640659914551715276612326497561764046409528125961340101876545840017098627334898188384688364016320150581013532319730535173535940107327312054012483308980543460432001585005268029910703005703339421883918639764776218723396678962090322019698210022868067446635520442687680930370816649836607485353655559870882520026612030668474436955478353516018074285578304014810428481371142407175774682274196712670708216562687405506565337595453773810788429781542753475662279418974913563074636051600043747215500703041477378808600211413605310375644363541577864267133953650788498578204499204806784251830237761321719079821898504413920481045787666759934005911481273723305530562674787656235053038688251819495518954482761741122530159570989557679570244358410926413639841074828305071347164702786665582313763812244224296359736083995687246653597704650313147820000652986906399890617352053167201802359426816956311722481490418003604265604734392640799184447996581496126763754185614664165067347718574448270730972482343922192615644444880791458213330254634442324089049549971264030498419158646804411858979414300816613439505645919539680633469959637300098014877165604105309754993708583190048402167031422899217533114461305935614496185145161084059384965742955469152766314604718987395930607814944443422074536329849020184855607054773050901825829022114538856769810475442971175620875904530383454849510980306797471046469311501344392363983504816183659970018306303961207125108020116265512283553172334002394186935099354109475135325170193537382678747015928359351423522184883032680416659031759853686980601704157317608329382339234774761817830565517090218951932295628317629720404774462616552335967780094152030826603809533646493231198490219239209244890899846402938894378388363800138570486827719122941211453333275452703268240932107717352010375741487612813360403130964218367063712148745446842606737748878232039071539582629439421491834493570669436001870620901994822969807231434706241743087192576659719571016915104612977814436635033717981052030374918676118451050815262834561982264508634362769550991999482714690618740466147040872705746972792686993072702463586223740012767975653882284361069308562411534116359786662233613844500082042840361282106197651079237047950896037734087099080684309262533284615153609728833608218088236485098336202782084227260323247844056784077815472292656678257188478826047059410452393873942119231299916474139346578378780639896644117714486542636628054418849449078621107083971027513448428910886337557827482208573562515866676960588359700999262911663797529930469469338358635736883239034645224106139509727803376500021539635770438557188624546090879020687707898318269743404896145944447209463167365729499893966822816079578802436609405217525479365223534692521909238395796043696980127271883916913772739779741129240316981436161377230769316365895247360299808366345705998672647412744864254220461308499271006258498706677266207582543334539725400346895389174587924425375538554350163959180623703952085045523720619491004272709045790204990164320530937749721847534166540377635829129501248247951176193169975734759688501725399431797809692163575533648388049232701879242106920925071488769402858431786695140865887820776988720521958978872282818234730133875921056254175115479979701736508113513158999912235969176767215743243694559968400734007434338820630483903831415867331774368704507144812352043728196159063657411192257952536258139685631530584089916288143646777975244228649105028757607164522563370656778193620160502090622984653748801313295246761946994245706551949566160225983929063055999813310026625249819775775644391352537176380386804290130915674448309943530490512715084052345850414631602456232267839092870243991326635015706730522884263282700674583207494061368106141152200291258562315343978245233777809180543459373813796819157527081592802866765082430763300665048151496416152536039179813668946173503537294249521845101239129472537371549065783415026326495145125103976273671976534702575477801643152317635089278260253076452388753452655272685349929830029820640321146493814396975484446018200162947633456771709738172877372483589429845745471435357195788173155144314625100046784903960588677869036089925402475106111211884990140397698755245201885616651404623006492295102239322214332353766950151889867989678359315691776460073257019991461976632467693514210191996653048621643052822170898448249013244576590995673179631688735992343414596815027494004430943536685262172511558387681095844445617449857716614829689037048085148624293961615459684964084045784019863603670765853985199025884506465083317678382557507303116649409655017080279112995040731472011498648577263792984481167214109946527318503108444496905673070792565426626000511544052156033025784680534405642993258298371257016838576243335150855744916728961265434759633004739281759021128079275342293606032720983516735293309370310088822547829571544190513073197331351377228016466410855205595593088043953553561890680164041341562879990886723748598510739538879733595698648855396909724239198964540901095164625887816207114921735259257309908476302720330255662874701387508977677545230847578599391086402760368763430284500275407777414205397038393621338954624506950730652797547450517658284495836022183260669424823724127746636593869295709971970309593583286849924114021252497236146067822676820848100770664979946296364914396731713754172515692803552614671177083844769003705298387577883190919557657452812499128534952089006610199881678460167390115531405838836102864706859299141042870636570730820977522311957379859845149520143382297484870518666448347372458225634573787004431773977420217534840556054765367432975301133961376922826824926831160524855014268919051906289945739864736210302316411964167414651988960191453519382417948120575132053630126526185810661697121496347078385968555912591730046084653788596740332076097598097683277261713832642659268607568981808479722809076795463775643744001035101698745130003975150087562423043497457169492289440841090421300438723048569590929859948709571171394246897552681734845614984773852686343681156271084572704547222582579135586130457967567002564650450076601256122041823237734497067607582206248021015677490337600806955775084791865385535117001357200626181627050051946206454243377822061756680037254870351946413807283749006789787303566662806667397604772842365638749028729807645682502100789862784291755288527356873535174314492991017229954249186699985328638116432615586579449769450230174534004700233817067810151726222571382734565144022319435416859183790338397653085198113451029692828788681820946513650691355010058924429316402532673709699450450113004650929497792297190815766682338217618839855906890501538190361380451076138043364857146495865999135292018207861289998227673732886607049619083643447085781396192500941906723513404496639111325213257515549247640224780395759584319451554229403784397091060172324371256390922552088913880668461442264273958755727399740447628718198630453205028773554129198759156079701445993200733630182084778610251053803459434465888889004844525323072567623065010472417183811160238085529929794946452675421896377753425461431365088757387166982899075191897552671373227855470758986959441110316528655584221533306588395257362060564480863179434376553739729137734940143992237101928059443736700364334039698552437107795271472418955533906428773858708534047286860572365090497944897770564711980435606307416947156128966949221911674224445958246122171735857683326267013430568561293375168844695074089244915297279073254784500983539093345177973472450150428498344172990176354005016513777586186409151191078395915369425854424085651409592933928405669103896467167136031856104723239815536149314736308815535400440164646645361526464644458100396517939117095473597963204698358164168427726627061698545905332377458287957253266350226458174988871347635929857719988315462383782651905069337245427685985416331933144301171214810274052966491750795102935335046008261488189496833577218625477784825664390914107635762970707119576741874827400527380671211283856886295855383247834578130299104159779274164664368243682422146212329166005914389620212679675089598516247278845601672666515484723912729772531159856982502148265253404681130163944011154967680973735116562325128507379858244589347165574664264145260379364719524110262339321557306618065407552022866468867491662199102648278070133822761784520852431120503286701718528570723192504965415477141896590670622597978384406807163257854278397766752209211103564146045374599326207866471295257061427563692883131132548257592118839622869152542362793123988308617852767235389097888008807385485389561237678779113871291867220366205751462592988169082834340305210668965619779947678718586958274065369212339500010162958392052956432584136417600882115484411636462722013203268306905548745695314091423481784316491205948559127182078382748933676754668547839913543730657302130757024751743650571963112484358597591094531862759531761428155498434430036651889439410415827793523717902734857687972194041160325374597688134222451147335637712697942992733242156492258454777942623943296824130224200379138566427538594239755099360346387573601934854258606876423840777532335576319707175972776212953579917565660858102358682732461313987773822073745706383036469383815765625233180490518812985373532200749608048215348565339483463641812880222446136800437626835812860677735760381011374142515907950346966939544544454092841139098974772263582156846975464555151578031769694345079548798966942644619850969142166371543308117496519315926669772140419406285183111175916606656672615873480942807769173069141008446061648957885063127377783269920209752626613799057843402453023526153177631079979097753941518164810393963005857180730090796646910203207010923047473419452212887393529924579727363031069487296463083747766302842614348829552919101767689789596669078511181432663289540325560361736667177031898586796772777274449335748409811428381735009210425262567311865794351009375808029719655500384034020532043645165926587616508221585793784651446945724767745617054775798021876348843905657211468763781955599526916602586141848987868503041576928978482962933784093746150537623404436895704265267519606764926445858189880068905047313872094652257860258537084238210543877778355714962745694548430838274822825397091028950713466247144505174331358447068308411161971470461758101881504272742490888951577193785186927671386034667208938462526679308646586002683320760108264967415687961079239029912864952391129260575514452884485527198426213304782833833055813671730819664296753415319894349873160083857732914505592310999044434677650676181254941931618546225392967748730766383162775269495155059042039410400597820325203965974358012629553779211498488742653831470445465341777098340773452684729622145935390263609559367734106106744221463332775439143718824012293852377200411923136646860220402936972295987223559813674780569596883271512816856836667217259765847775097295606788745615527533884450058491518342757065535588853870124254696501077138699760775481196841590302418925450418562580667043151745290916312041548495688643642856895245068750809508537207768131148509128857934934028294761813375626497308021512669455531583064161469869510411244387899911247447346206464088229136965746323201436136394111413312663003750640165245706299187336132085595905848736382477585323994858293415774182494339427637101982961077662780362420741456194753683718061627268441776574482995241926061188901360153697748248901091284645896910282863707056152039412607573713913962416888548883290320510905895601917080971589456527657360003382013713567628320353738203703422261650785025517512575624956227564367637400829387822186640419871567991582286776434399350937175886514071410717885191242611238307450236588594124712462949858172632839570924261520755619757046864836520633605754932755633842168930448137294181021525229486371854061893070171020370446406686938754363965674017592737074182665069432048976304640648452752283726440917556146434781861957630767380230564631660133639720611826733514821428221423606347900235302575369565085038060185072721799123739608249755425316474694828666302908264290868457047141711804558890403611377710441908974074092961255956505421867623686327732426945830683002322838019551938136938833956178379617362072078534948120639106396712824646223649521948880075492919667007417450689855210318023555604984614352131883254416211828052559153138151314636266418387469314884688993697314877207555295903615519355402809367733441529829059409572554033658775544170684331568076486554029348098022984736792143174910702698212106435296758228898585491760425388991402438579760502966848828415295920272339852210898701912453146689022774015125502070573891771757078068792766544193921406012127622955538316219773029760292959385495128198155109750178380989713277798698690862055413171280821020631872326777068120493808038677439367537128615920449651448732686178571780230967498673797345828642036972979928436885370151521609349403516344431893932776299217992862748247371684079558524996911685535467409312438438125973507616856972225865808300220593657524028969795976130491043128854107157893288398480569980275270153184731470818969934561815013928086368241372355821109360581179138064703987527687714477381742734172768495329732685695157545393768418586814372819226270345683135720277192369786761827431263412523154078521632166788128360423917514848303983163270328432370973321997565902901283804308139672107147780025548494188111088195757374805859614920521530412368559620955531952470154095425340802875610355491064730754009389287518314803317845835844462767812143889496160879700995548178355543869023294038815364523936985761965021715995250742289225981846159478775697361233163392629634164057721822090715720121103258930220914749954541823079298750789326263796059368702659204719987857175174201406572040039164621255213960993432919053623957791137668160897813912404940802227617319699964860305629248766979526926986734744256223299873245174368851411239593460379033605300904059216700620491536598333390874195289462836324896978717616580286829062796918624175008988058638036626834844655936261689140751612918397728625575673301352119623673291190325451038284909389421823463798063240276603539811053310090851000697565773775998493400014896839487354488781110814277607049478728306471015391443854176328320955448570184333398679179980157013122991942791844430293565873919318781132133188521721435972442067773914133684994144315703760461605991046380500512430555412118617865020096900780649530987538535524839699193305291071886181536438329394850145965187165729249829946570136419548207134576018414702629086444632614589601572904630238731215601732234726039611030106206800492546488422226738286406281957734362303568295222749958093210930531586884004149551974942650322924687920404539277321394172540687468207757912178317763146909184768969339954183821137768085956940197206049447094960268666345390012294697484590714648961730490616760366108314306134006794996522615035750819376245622486312454513905430260544686335161092620236924949327592377543025926145446025836396329970881526701413201237276299365134170672155154377831822993473635635708293926536121955877589240674475335352533580878954789249813536106626163935050363462300240870965151184064901789562111445370108217368053328200413292566545279138113088154788337434421850357492135866430938060573452687328752704381560792000890536289142073120653142567935745508042430830375377670765977249588556586902948104983856227952139007710437296479483658314376437377904885207324543293338002262264592145347152372100414074002297116152120476901124545818554036263307434408116767496972250053877782598002147424695108756860189845504271596665179968312655370342752967771318967930474170284421633472478018164467583216655781753199820245252048957006501925004346558435006754219156320321724181251438525177246932241743045002073770893144140245727228675752295868905367619591225819018404007686648845121912159548857546442148874809864465529522437606359911079649159458838395607716038178989452124842874179200661788635280206278402144838760139643972614404629096293769660210402874136384719814966520970771509860226470001932121602761599864378808977327695151354795622370955514763787995261270130777368244679693651592914524195820200095541044389387804003552035348428566109018910415984224056634240540397088639853003445670640932715108254044220687146574266320855051605698162295020518030132169393780069423015130290982290527575115548769948651592126798699191552896336599541002771775580895922533223863709148418226235854718703639135612605227812099672651587721535945220887713679273098252368840766046339007291471079184017141203792322331083274195465131173504621533201869783706577223924952241658744922990904359849248788075235262331777954920724819810722305764499624986272765908119427691901082540885037696456934322617934707514265526078599480100973766286108544463643908451190643212597015508384673908623619814073239239638789549389638819032900398952780793646466576870101218481362902136051090013819390504222385179616818463522006446453378592318689729823844638096505908137136961871642201437135323017503579786826022509353780855207699112368796998297417231061810287262702486715494998830107058189119651800069443322184374711492365444268148512860255533794544080109783117425447624211286120530984733845133144891182966125817530070792491085153325712636227388194228879679308962460114249521444662862171090260099114438480593687266080983577904598740246363945980886545315086811309325805427214538998325862242398819924355699861831037521554396871646644536561044021720755153443938707184273021497000340958004634417709261096001504149339610809304814207086266802891840578521246730207265989665657948449563655289772584426286128420452994860386797992279623369842354137522922972990656915213253877465221472697981578849464184556279866238341734584084951811726554512568500186698621668720756105357998433348703473761082749995167678322190246449541591815127430883356876358848629191317438012978155101725028038051802000663048453064369076060676542507797627288769678067227417883670055260200301047736993797671082513410288187017659831599906867529431620024725346256350615153043647477329743409426943059730717382453562089472776148187805185085687212649097439613755984311647343887365340237092441329705405262957976395580044350605036594697714811848013246058594877009791178955538006224121743323455019444049974952721004184929878466795533363734093777214966262081350901239316149620502399017997575521767152838964182931310932285072378321759504909410854668422995152254517222400215435100480043706472183190074129288821555685516594045568466850252020034980456635092553175984283726852843091234732435488957560748972919318526257822677403028245859315801458219704488583046520361537561526777454247538685293905662756408098783264306963904758588424017271550745628890387161639582804635353536908223274695075904358995469356319588052191547434755385699369025638717668375366649783921236099184628579212182880758759032417528200251534269840289845868434364127514153640720098229280561715715377253352516349476922759378330801060097715255184994625591005309712662648824482913301244072084286003907101345177130612012603216064021601866123152240706658484791724838462312197799803758822488790295590887470124430704052940711422021472416221099561154466310131787593670679647544071351825912852916545459237814304963937881032728406185169444887330657560374758086238000528050240050050372904427860261778992303813931775396069069564748519836236137409223288729364519507105739127453624230997775647827054391161389594614776100494369838991667994381170929889850766952817890011762082916107269669433543062774721680266186962927130457111453872212668702772343020488983934366274195202195688111551391944108082923904510687394678642108427212172810747912961277473805213541297644103548426082715722666235011820307757767931850997434320981905856727731381730798983433264931862032199176903527231013546132294082106103328195488463581441767163329074247152462978411348310629273127137405632411609683839292944117297739915991073755043528730966752697557233920017629122201591481761197416696255250033685799326939680420078356100968483812378741188403907588358344191071974229627389901465944292449025228746594618114922494722469508920344628599372169858220281362237165352664835208864651121164261182398301053242862457444336516787583164343614970507965768853331708841136910315275694486582364154558528438753330089379905343596096012335509101407012519807000306920511396654209140968325753283855968859870015706064023361801506719747601083440861516526812417490395397723494507659313921026436419455852232313798992558923735467469852592526681663014676563058932618173862877896724354530119930147711427795880813645739013195295365245242495073440750145809612977322434367649274922224903552589776942781439231830548655113832462781719728321066619982293773587419313390830042453622117917637790000083355736365725143462943871380337002343587812553388010253271645373010319425285209089623761172457220598659809634713619724792511055086826744935208935169627019234005826627562084577569576112354144055937447060411729189615482653848467249755737057841860780486596343015953727061340460775600067201276932581491046455225331608320309145198341816021760842061081013966864453553314176304822941003335499284229603759572284523044664120030629608615416507643007836539835171408533149486605651483320353387483450286180995422873111689086866945599873980853585560626440483636747225372256146534691334223714818074018264074861447336898061271063925707931202821672875762208163116592592030526624712130329362429210170717092641173390544973684368253000365590979246680033951699476599960311832523451159610856252083801177515642044434597399013452343077485230485685255536301834144522460514930640098389242006924181475967778318427488614955372357975050448096011476414076427156006084745900105071612356251669972462611772372486165129713733061925888966127814404944337175161468657251815257494975906959948741583291903361373039160108070774885306939467412805736319139509796778982706113475328215202019296638669607172515994839394116111941991828572985216880584957350489313649532541995997391435074693074167750323575117781090738751052605509758422737299317715419193020102616852384432024071773736665459395515730048856519149573023579423139376903711245160608834594648740377159003554448554838571712801352056373136367019822563916117352229426164610155748866127301219043268342341751493101118372066541297377753841853376179431650183607786679638277724959954007181656701710216132554215622270010277511713179588656520364849541549569404541439145417130099003853992324939022195462926784562726988290866523565852055913136908255523133922661446746501631595203873821177044952928199697161700945654812362068175092363863771378878796484001365604238215206918945875756624920728923908272097026889047205355024002548196023451143184640770796264599726304078479988167791960895367002307803307559615496020044222490485788355956969970565873445196613586487644264467574192612965986100604274912252032716018016724922910872221492997401236710147923445113291360686631226917963597852774424979409157217535820446473752061422470673493879902374333177427451805866956097649469781947339412022247482534323173144761976144656963958904009011769284811167970428532696045977121593421982968322550532322111205849388755825284052193432883850450322656508476228504777794714220059222599252551337936077484354405903089558320247935162472832963089133495614558191072727700181831752824331879738431764308466956720469762279557251934942376426962273832620702491466685503804396081605779641780126628171905046591184543755933760663927314035962321873688248508077012209135246801804141262328472071533367978485732913030026149582059467838126412836891656892864194949741695006413950894191815114402110386620127816266131467221060608826703586935694780902722879147932966106235993055899083093345701745772744900037703088435365934070780542282573528504797664212898771114334030236084189954409585961106497186925658456028344627536867466073128655945046755392852728822057635301941466699154142862908565224928349715895922850126588401328808566220373570454298585508136893140895601918475930470105610065614169808647298334026435239155410593616407317206801782730397636284303506850514613529532376646940738849390125667060649785358011787998061430973547491576020143612200598832923203150751956063011077165322137097602906409569133851330858025191973549663139537276370662473060070708761251611791161604900103489047822619381349804887576973684788275211868934380772953519418642376678172898894289844607266724933592295610671865252315646761659133807212132766131073004498186005706998740405921016223661709899125452428910794862683831810210060781535367623194074373328650288373480742968196909243688266596345977027758133939102101516868631480463130360981046728802444201413141422322873778190313894336349019384015773521556364915976988304012940289582344624649783156524232296633579568323672875597451144922695156029000014523830586469148657544264395239365434082010867301343740632557841815267775544687718775482093838258348787737559878068962828202193295877806372641470721078493877856981786151041677029831486427513748240526395112137080849402700263645388156425717380045234865554895614105915740282019309061716995897014679292765496938165027954268064439056823581039170398820293861431187060239951971059974334863288659239687067153885911577590122682739683331491954328906372670827935205960630485994529814235536871207802744858744872500231162366299261566896162578493620061613530475711345481449671129751417960270733652808615245815849924149852413852506392919534076658795889231372572296252726352195269977176207450993487255090869195759525008896518605142152754803033421091682789177956783204770724207962452130662762358802721571451252990443810903979162106852046460861320944630522686559224071753938867315030758378808591211720429918359900991978596212837695142755235495362919157861885915560982912683233203609908548448150734099077224842965725316723066308489014459173927722223736092488508685820693505968599075944043030123756030750781992013117060344009931696829663754760776886995762674598095969974104732066032979886021146680361492821352081601113941753642710664548435015687474460819671318216200814113695724762808360761239208609882163871786234792464968495191695340319802055989999752655183905634766174164456902406493160693667956248427575493386527559586210935674478364742324465079692069417472365058798537806108675897378020375634908661055277383813872567919755576559612249630535378678979240349541844091359325631333061689345522595884858823243093542268430203833264210870331942370562484665496884971919598420464557010633865426379750271739481938083475595224195044458945062577068931803014482282473369599502275824925865122432676156865726399035724151501934932984986696827840573531090265687779929263096590824097344847104586253070926921695635655274420302197959596734773425796732845327746861128334041364122878645716452498562404441647075799299625394155602485265920629147547829002582691531896120463715582090337045552178445083606188815106658028085528198350470277696768058107730065155273136445627898357995422131662010196852811850615637828636530062064845449446088409656354199284960818554047954787091073272045181009513719145449476772897344573722544025739274902592491758534853505713007318962766637710738734832211692426490647128331090153305440322130366049945625672020746102655312927136724633979905241861639676609893869867041292721365309331139642675923193411225666987412983096701331264677141989084630442916072298357565918117203082663005550198242469668008457891396410487663108458187704797155401635010303063662985470257569003660402747120964371564395900681952227427102721426301260523359428968104901831228469436592379675762790956200608963867179815302944035751701001645547007694958293571465259723549376319276301937477747351806329988683768510907703782079546260861009524616199001632409264738005532469754845411772480263249322967367566257057368974324314624495680537226930139820146110111616196579449273740802612174468804133581378300140246952383591570997873375538805352829671032081476031342213325457642086585539354965854292808866460169580968714673193919000306912529676745329369449296031084879026656958869786039434494066779490641182758673808315013924581759086167136974417019267456330111258181353617665734862487353937089919976413716232345229594494005184588745652420946300897388372124906199583685777959925538587029301937759538177461191654140440219914338215771039729909470262658790777756500265974075178788955968533314746134148901871862017994955389858622476751018057749083813920885164035368794313784614719521360721189116662963080288073735841403567216473258835289304374213454945025469043875267139079746335596887903682852259508509222902918379050033754373141510204327305641766045290165696916770657255493315753981611846993819527231287121866025697602967429832793485444918332046498888431461836306753651141473719603857095052013871568286109030719051980319927643562374245217508872857733634383970153137697565540842452047796464352504097922024284288628135629419838330762858117248485968096312325291714346596347768332368740358508696657003726820333132432062656981153308133676585807363616099202404335181348418851956856195769810693008446847504733008228363057303029321595207922857615017436689487852922840877065077265617278773717732458994191081681242500275099530673056951466400308690231302739686727313081140211022277317573505136513358287243138211797772524952506558848557282787985692649292507174355914840187753909453546822712275850438555309364416164802848729610777940765064665669529081885834682124527003967612332272402047450205835849373188578943669157956632089215182215486722707246522575659139894718046291658200413746890646364260479763069924987643424865289927194610401429418542041194181901204585603697339955240631801096128753546082659470083875691920882705501683703051344188663196558617691813218619663789504917722656147744585362641288413916074060932108398305446092426023845406028265831737458920750726163947219127266613437193654802581081483613043623298912358044844991464157139963032574519977403875068601445893039975143389099830028062936951655240672388885478143761794653194837300526237414859697946087700293360616545707545586417140161421367735711353137303067324437799702015529418693856561123503457950341981787375602465704594831525651137368036550289442705330395311262242215551161169769393150104678725136604874846402999064648884535390153165018836947707284100914806065535567967626674250107941479062887239674824276351405506012579664989285917624291366109651325639741787674421378406224142166227738900852716643355857114869193762926999929388874780954730714338926357310263343414672460392098432223483843424534711487572226037557197606959311615646181899466966920585066193472569377520610580918820503167402436948512924119142075274677310312473445636065558442722166099242954595526992445646461083998311082095896879224980727569693860043845874575028144248540440755695826259220174665968553488005332924324312990229368026057281005437580444878050811768092708140880955367934900450388447508752651280358055727206880462200391756162842880688149133884400724609971482825330579373164921599671287641240270315951306733174316422607318307127536388601038160454295033922726280610444487872217437612747654730849038458783534046296421041356181264023379004487388561207260892794258932237933778125408464594497781291657873584035163658336424157114956162952462467547098358549135381655433420556313765927436809973710247179621128669370798580468290768554029407656954812976036465814027224450955152939291704385818951549142812682549259934373352862103437074596209058964323366778890633864348280065255157846063038090765769952179492668387854045523344293846958284737259630307890699571895436015691193894626197196709613030717031806591280031752659989648008432289015768695735565771949059641565552712724309920630301550528840250008991054555217731608456454454560849379528292815139978381361846657876744038301642780400070766595468668097165371652451881931419664683982362385671704727564055676767667193590436752622371573340272660903734611375002607077406219932066463379917792036261933660284819284528475794850584076010445181378062069750461579899601728580018340435126911196464849410431029146386968355916966198120653361163481907291517555012088651999683097077466485868527597537911519774366818517966817052250026455075210406497415173836178328796180977461589042301277497303426100353498486787545281822851612067078876566977385206699595879176884371182178062978611177135780637691219642893658184545266791868654542618675605314311169959441927900056674444991490068590761876823907717944384900024234175984066286701614250900403369488904038376527141963400462118283336664195561840357444278801598273927679711393983196582768865602430106205444980696080401062916171828055990475087431393953899532540292451416936929641148732194543140316649405416013020779311222715468859997313171937329353982631224047613356317745431597218453819375426156458148107950555553482534676936554827818490123837847685427860354095528441220291079266028664754573716792554195795546325731869058123643249503353679478901771138847515780996453283403992693554661565958660682433524304241844496300837616294995242616544378307327887390909252530398924216547774680635266046656558721531525016525788999712082952821190875138892695335770096377570319933582717141698235041918327434928734691860744086150230925508697211800612546139250132430800844743881315448353525137616378839257193192986197280693594350908383774623458819249326141891657646315937757668781989562063407162187061238703315783505012431360694174781479678530475084241668993113514345800296457204405574199967619769054398007270936119821286060712096515543626835467720497206938298713246088915134702985960953697996976675933549085824284462299156134322830221200504336508168271427301800588123620975955217052009454925940697991046159733737768189781684393591944578961064664270106442373176406809783427706466821421802232865585084011996079819833586170083318685028721871501894182039152717230918493927646038454078088452908034640997317481067416179018355806909428098013284663892212847896504662386805665301750542626704583771631126388681904587519210170307855485158431746843150532664307856564096400346521198407793982760648566650237980631899899964747541743739108336378900020051452411941567646959830798906051340675374667434098449962507546471056976046434379170304793699567168606994543661070459274531762858465010655318376404667363640148079236260758520788371829686422747686781406152046446262357688919757599718106569775467871099069746673597219288468637183785410674477563936741178107274282876828719010296365691591147152660613497713269921662568822495279694118923824289126796341163208806295572311562664863425432486459092443015905324577696253273601405118042135440737692547364418115357836259791804170458745515148323028438120256183644205294676029874154499432433388039218966317068730475392100433886493748835741592393897437877899237913860265357305542847899214681717539937431570245929401782766719302187557226677109722408042788113016996401499070668421266054455277189827933260654690545516301349810014506830377198259698592912308174106290386159978979788216349189949817108732871609166695855575539333681051010691023324398402817243591652703189691912279446633331425426077851834073281470913712259740077229054674602436253701188623603043350246208667223489539935120734241864939598564138849156417139786790395543323317940712359273307402034465468427523743262582988105019458935910413066106471749706765125288565904959421160424644943804817637034009386235116142553763151651204263823513799458198554298390113240047225999254154725866915245790970379718940106627193086041912816600803935673953295380403823612523234256720281535166963996640148134116878830096413407970932563544521516516621057065145909019859624870642633921153285592283962015099306916151224937110339533574024560035565220593846310841707673938029744241266409896378240643871647869676982795771194998706939917776800549398564704885273821259729290126186712214295188514559154320383056648715930904349877540385880201668764922393122078498151065912364297315755041633531996780778219706597673502863019376162653275187293531313739319629854336606666930147192453356747329357882129917429994661844582495202722582421058896357297020048143006591840983109676168109078808109646628755577165377372087590600986012951734471893537194798820491097043584928346065014623882536513227206986716676133896500350203137010472784676261986773783452555213293082320620924496571063458206470314274556617163805625663295427355006005087507529762357427350162895872381758065760130215541898132130694382111492890156672243886634594631842081350911870544824332024133161477854412793238603103838447048267012570762607959094896696930778214744871657576730293668157704022004700000818189367159622291062133590197672091245165768698851576183141673716588623680978264187702232875221637780160223867782119983501461898238817784403492931129412562301973516615104137749742913690560110212359581679709490228621349346390370882797999175066443925508347492228930985362478211674711314153658607328761399845967065805924400805019821641642962620811121732575724728355064621965083117920700155750413649805105594232476549673464963982061351268761423143041427974221026761490429618135029164329610312643185300646317324674967937817776190623128727678349640174248527630856198045337113855406631365162744756105381976428319137197298782961670282065530903040994297691505567060042479263290554783597629674063856424654717986390647835083877677202454478855261011341792080663896068133872770082490465882647375015105754944914352511178376702735367929467737804432771798159514305368700235808830272883262358538746326526729811947067902420058764864849111387457217906254263514723373379009951053275371445227805822084172338929315846597224064090098672571168862716439462587445271949810551218623081403820937722868008931646580250234978837237999276587728708500640437933029623726629086205380817710415544576776372353270998168508016975858936160821341599673242051522933041693221328862484994579126757585672645055100933788853127305092320981894780154616393332907962897500029959703485420539365244086392539144268032618362802210706305031189142559816263471166485642705465894487885457785942147929044433989963025776375491238043668442720698075077642719823843241402704944828269411292800524080778623448057126225868614784154337539798230990484355206577984749634461814332938996803919949255363286853294880408062512683167247873456658040194525932137295309099972221076931851459822514906550935958170855055362607148399229905895763124937165152580633113927648001796415013193383235200716291728623698186945913259851036767617967120373275095899972550348918850605565776109416210035058871567355086592187155586633932505090060189693063297251907231767166358653797926122802128046571499928597309289081576855959690350272729940882310620546034226081358006025772784397939661290838792742217706910337927307413191825262821360347146968645089075440234417803212341465898592213098710659473439533763360417881452964348226443660293629235606984320840045566692136461975103793655408122936158307373967228185853153456610164731431393870168863862853264913528927833359950602989346711272722184071411250958161336103967980015254234855039725256813783502365850522381800652757989882537142236979077750530849245925425847789646640308942413974985994062565728836510004228528251749352298797162566840153276159643924121724391054943505130950298934627666560216358189600005067551141483954038790530067894586062697995993090805827835033442089440534406802669489935955882349186662499900207904533405640324855239201421964216655541443739221309076410019262431529614937616776223811365339015380023961154254106595231960352903999338593262605154119716433566508162164571359659302702432665139537123657014181507450494461297871199644879529322502735961841025420856999068941291394074118534903929673326449991092902755772722043575212649284479366997774159304048064810140680455715434970618365602293249530914312727447002459568046069370632751586044667868135943488729937063272935161176658531976863997771038017674955684601342957809229824973751306757214807812477898878975314101228868238872354991533760772195337142431110541520439092324907908335955725710560987774704246478434514581475435459765152642428997294583239844718880512012638460322952609030602340843429120886351161001681504192244541729335974576633578211702289473399510895861471150907625447436433154504202858733194668804584198366364463576447678210394737691521344570412464748626861830109449334542229487941150996334483427840057239978901382195184517147270908843090520268527258435761784822152165612097705596011890859641466863457605734878103484643747027639351036983576506151385267465882431687473289819532954398367584648359222642556190564066239594643531527960168464374936106101309145641369925126976483042023221341942795353536465497635329348444617456840483144181351186137559977199760360223187792092503667668581962421654261414872809049817771594428674456386324277553715885459227313945906994743125334541580101695279669134313520302272441928451522212481676088913768830542063043087800222823094465701920328476802344758089084199757854886459998058722605339823452144801888731655329501006568923130300164672350717500881073244211812964807695918453783965198918258187074986024187008393971578572502389424274139530153669867052754857137635462639460105132421187615187212219276075092347943418649878172325061741376175002352351155366769539945062080394133324796460255941558581679697472589170124790310691346123994043125223526878371104805656751498822861714422541997015970021862333962810012257829001037190290386300135039735225622463883250393791951117485893769983237084540032318292095476456270311179939207099211666540496674893735260334734087643322074092791890244155282793635761742892764772480607872919141334253912577427226829318719634576721682394445503894490738770481213272093394718104197160348722436976375889501406453350242778171211371872205320087958929233714788418922910469501161716442873270033095511298351159273706556882346899136591993283107100100303430224884215551048422842993404554963342026179920102387709236329902880954330616348355670250444180829138542794909784831539652866079288801757728395961688458156564541192313276903775624368518061089805191268324663806963636593900125212775553376468495476562728042040792102719911602535768804352281113584138666738005072287226129104276893604702272448688995217973611336651058874782519092548289983423891144872640458945433850034148126817794733858998580089532287182826218594651113370045863825263824379248135094920629852275425319704289391298777665580180810933314330039309302912264001941480996392034474756770842272190827375523316671871390248384075682986858533737436493462492066426950694937171009584853964742082280352434966489159198734802253766078084243649300633600824717206076856165223165987228889947760474319521125024201405496171593592836717608711405496647978917110228318157657072402628665185928392172501548300069079829072050202002472239032044365478282768095182576199233450462242668016483942691447725233456405969275368253288778328335378499385836782882329736810506127408019912804877389370797936765057041635515583673418075683731447980398520754196706291344529379208124643767331105374058831648320741252639477872760198801493784620321288472375335789320044458979358383652306578805779651984951275209043883636585048450766430051513576484484465174208103273267471801116376217664182492403926192153408142618908728279349949934809523771065198478723471079156799062626849110790172393838852667305276408953442315130430543928922672916375290239139903555265937166118389572564791462382273709064426642784366583301314821698151383826259448584171394285883378244162882872229045375744717268851552385801607676795893411750704005011165187986105022632600314652336590507973935618391633097397976454779865046565207739398515682802219310398469613887633528230239883210553794984027100342985598614065086274866651190230116705534331144084304148208368321301866146404480513206467271060824973097995816860953114575854970207291793665701348177955911622623596269569234761051924906798037401513054549902251618585572400287604401349118753311698673599291818572469834518713833420232992203375177889911003694724888190145119050844655256354282288832635375493375466892567499543150435515759057474181556899493669261647664860030138997904852763353972390510425220289169193305874653193275443484998214966433200938053991302934409908027265351977130490624405419975472329850969983601580361332004748307235560322971247200171292569734995262481635596308834747412284490807541447302869799065585387028595683270323177677691530805250521785448642678767930124211921603663113828665332909069488620288773376147333031654299786962875107144286913170552570587493823239451351752103974623239866049783210193310697996901021794205744791992727306965097018318295340887828067595990963942808981719502832994098184318279818936200823747061679208614054783157443565849303092597970329234261013471367624633268064834904161164519567663771176203093751587638945431284289634576721207206377496413635158877793065645107681153915616809275850065088100043963386172169686951772880557710583441008223147047491336768358128163462284419123891045593357479158716333160984425176642348811023923240275815641276441264569508700233717264267826184071303367843753238530734935728760014103494158657350035076775228458890705009455525536602657358008669921405504815840750120023321897304365910600237301182165024854759735755661395780937115022147223320002511266153352804858074672655676997503731222496652442910740050880384267548070259901662388370178030179400094890175220538751459974140129828858298147028911025329679079411694212259109588097247015845530256653502386765115595512551096511901516114267918865398574733732823397730797559504917755928285593160238409634709654559311583690471912999151480238740379761318243629512299464517932274159420271015586445313282729867172388719814782885009092070752846565532049412523083604030837667434562894010399248028415412744104255856223111121516711435659648858665878852412898535564199134964852323482925538787251952614620439382073013821329809808110673721932331750873509473983498488126624949033327948593388723673366376893822049799414557100966138326463412465746258269593201677493589278122455878782064603735598493809360209848674086616824917189543629751522724381683003256035533765682961504240747431373313957865999599951680116878076803449561395505864115968846678189868002730792928575953005167505275653325296481032675823579369893509198421357769313331898243492534178423760668535544084349444829256798118578657982938889098362590302590881335940774798109501069625199918503679576394735726065619190492426718016609570146464908627625752428592904313469928959185558525786997258671077751083900916771710373366879852142452469532910996911755184393963908680456954406882848971971135178267790408547099493917849060534029746294033230051049524486854340964532789610316806853449661428891951785568468640494845849996121773762594318989316150992450732656617959242606926776298820057215183286730716850886878830928726572399544125856492484062384722094304203657342644689919048017057733157094297298400438439599503808484257578289686873132393243546483833480236293458048383729013440842925522229669301656867651668959342146990815206769218693319972975525372996672702232295705713353593031257923213113887466062454091150599470561695715023103650935488585186766282848951735712615349152486409573751728753195598757126933357617536100359709448027209222666285860491626704309164320431544684294271514683050419709961408318558921283784838168955839877593055897806147762811231930672363587938505940084075358157517794744000345160208222595314855082208739034699785064369367706314737850568145635599531360020713879463418256278220617973649019392171303803187891137436146095394626488365807898184846776282563167637814085061351907707144286282208987271277171690431179768252452389230311114169841583924979144638759897606851589902536999249827910247190877491738674459575134063124289871920162978721480648314795550022018109558972642827742352627864148987430829785267978870210726042091246480788997510744804247825399765219684919917700129807248614358761517640293282822000051793841597859645816371045159045454375742876797386394794010377061135950413298899198188469027460121849440006441177125347873974502245156074589882511211596255745845084264444058698269994245351925676123709258864297567120900704913140354071817615930363622941361385522577588897283619194721193627123827293120362500696204064949337947005467140473805264881156122371111368239703244477841910762637944599533271615105751150424103569489033661932202297785970688300829660051527775026441260694659679019463903918319981474145234001076343286278962675484950353608522562597836206201277765306588143146289035290990241776541390494542137179512272744410771232680893009284885905306028285230890540315277643004393623227213592225579920033710488598152292071301784260608649918102753323437655861036580519879094398251963816559901202129085830573146947008508085182875119402459357836965408599972151044775598790004609453250716928701737439177836854608990373195820779069396775396540884129533571464276776859504730674442270845976422122920417953269128127110341313179054391441657539797472045027167837068859493835507569939463003385893390603349522665274449859253635826330323854272852868774467033655001765936647236810422407851224397027738593874396945920452511942532955842168914016182805229172940609122908185018534074815755212976161668376587680749395215955367634655334686372023094035338458090959832665655313021385572238297448628203424017446847297534267181298230384554076997115943019605644613709337022037130115813275414957296286524288533464406609342200105316254102135579689447619511895643348401891609058445766718382558076208779294685007411617894835540110801966925378135968155816863628429592047528210479905000735504221163984324191347354010389068453468851264367181712364077385046168142080680130177872855080789549555829764624368343566365754235661443410822133938669546827193856753932823304733182182402557571897803108268364989030120606819296606774976944977041758784842684963657737666618295758718370565729458204544124560482500502699154222256924842520203071802869546352076373633581614703037085214038673761430309702338116679367015210256484991250334041676374536985096884495976016198701481301507551634091509327661917375306657228674538497330906293384139771661340828879321827580573891931157295051345199330870467185360902597219277102460692331734150684554638925584118333284898524241703313644119286402317293591238484667897836128143909940989414117765943837343916494582329613920646999173322064665493598369610205403520651697162095605509317423008137772025022281717109706858723660829258625154658564491114784193570678498106411638908949414485212127551800591886328420967633821995791001702433227378253085276467018261165396561276889719992574774597945515725073636589194191656184865998691337553786777120350309378258315185227565318287687526209761490797518855222351313095889445395075298604182504387950694264124581737010352296568949457660393865260285706405120335047366361131844711145932314495367387417325392370532554093024366441975715029694744234967175346995952717663852378421644258329116221780792839926211484452298646561624832410638191483604876610638815172441962573690034882573646841189127018557471503734415451219076603979187593551313249425171125897663035920006575328298490483934691618419026370619141079283966740580395790578073453466630174158236124127342653809649209373290055410469717296215556208886573897719006681644774104613998612763813516257500245076470017002428585533905149617857298310282207971568202590091254610349413480459655235666579365098073350921148201397202581696275138935210605024622893544387025169740253013982195078339428244705093736839858889372115869937897580778871655383885343647484530781896814324245571915258052866132156362509291410944297243684640042163095339425083021454152539320568767682988655448850245054655746775383363347517147053059758564134411630560926127177981430071325640624425715933005458544846575953125590840953931502603779860533324664287863227419465219028844962486049271182513660117989623867927972065983901435812187091505878580240076504084728754363005054458949068227410492011182917118209655037664503817178315498395136396028461204963933686244315979574388378792452093679368855528727768261015836768063483291732824531787778989386505900350445301429395229462835101843537466672401194620868073308530890679354845876043496762997222564327991381482112430045468597814855806581823272449602706124488352702165784396343523158960409395763449808548395019703830412152066976809325302980134651924815052860758435608221478404804170013018514952941969164533680120120406138728414973841318221966101734079281933792474962880090324820067580460530737286653112087000639514864813786913153935195048414649567650063032254761743113008399050389250136147167182115857497454690595237271236158155159166666508824043713458652351768738636540790673131393529411026673539165998103903884099706802371411456715571236652965126038756155429000147817430221236739914727286855672030591272724227652119906265768620890324336458868496211092762267820966047759340967789895911110012220049630991831666355720860110695943470126511615960086202318586316575636072333377063696619625918485659415040773827367251244261577077525794695496281709396544595309599201741160311586796484842986911287704289656905657180367391585706672685668361342300655745822507049264159085389344225856095490632033486621719646716200874469245650638292099674059465119778834795144459342496287878734489332461500072567841930064523062196056069564640297545766593883587843086534010917508641319639331029423705181376758488069123120392061007641981737726181677176242189908253528512062549319516103807778144215082841775636326470822776124080030621542167780667585344716865434915800639997288790873348207781917663399252397669800433515975469363111913088650319028898290089844406461496253665345592867652386981408411948635032933673342286228068566918277480007207392187196450899762795158657907338626363799339709869583790048747797731317683270436612720258384587815190341033302150811065054398874082914485081603600868053590713381704670798409047543143746324621442772676867801347292504428547543753420441955558472630781347352612726615717044378200265674542871451525701600366453864461953708355981768549631626878056023196213662552333221635196293822587498080593201358781650939598361991849635835840858196588450510764978020049220342178534066245050960544253421711963533856526241057611188811515515988041785073488714582929589557893504028065487033005872847449928437983269355515400020766813717230784576044727438764702551401381969508707398116615544459722923824619999336466375359453611829274691240624729571324754768769714379011088802863157670631398912006486811105473487775798764274946665641488394177479619684030180461200066630652718187899088559258810567450649096844585770413650942630839435961506558483404130594632380182779921316104629412560764310114800655893385664499269913172047794610020474687953097830299438099383030061190440761728519308930654092880605563545629859036358520840114237811537951862874567494554433117213851553665626116856298032502254119456750505157240386748193789660223594930620436434475952018692016989632104409880169233731609699153937682954184930930257898675979422909953511262125738890424911328825954364217109615053885300472439068183651963260392942675813465044457540221103614020234210615280562617073759463762794143704925553982354321169680478110596296375580285833368840285248108948966520689806434833975551135587708216132614873347589108240037575491420204821171859581830902837001973540908224681186288900731555422604763051467882221636071617538432551724841815342893369040384017559221003982161585609994492496057110888615090050372201432285534553628673280432902408295798910691924076411027217956789129243019289420397583289032887987233551599021670060003616826684305680941192035672683959749326953033420535297127382793151268399454851886212153221552191754254373787195971748644922248904573253697756761076576413297850300743886845115115236971795333944270914752641213108664492412829573380997588943863139944450164627841936163849066363313292205119842018272822774485267515094994842980584780253260568257271800214073657188397483110152004665292365227658854025994110523271267946808790174654135562422548370836598164455639710166764475537564981872645461530275703326359036550390980327785353505412972751653155579222908160508091677060490318519091620539415001734780204092559551264101623447884794476905931685513447309998602797919651604714493134809332977458116208040237856546655405259484023079589869897593523562364982642730461574982278760196114630169266368182877815756177392956059731770663658154912632299300729602217092303973326120681235354784534612335406568684548933175831426470228529938220272386182653938016539015805618554421622203635842744795542001854292183969995454406058527406397981225786151483998850257242541061519381529005853555366267197802367659326570772536107515475380307822587383625135690738415239058871337022618430561000887553252595652286634501865073243763420868147210763395304175411418127643936565183406240748589611908532473434234936249345945039581866694594418966423003492016349656244089691861247650425023119071031047411758225832372094302388246156284159899106503927104462437626643401509886688106692321683488267003008690133584209650613813747765337699567410342160342133092715540967624324078566672297902200420835576936596821240323639706717411655770285201372205863408510142042991863671461463108212434416417481585442948250290683635155579556925469075252217488018562116153673917685305621405858592240982428692585414246114083593130277203489703343654821829811036287552815190023215541772820502131690536551395133918968579948135199487343338040026587448329975803048274287206912381017738722734147538772543905847415021870995960790220396857202422012059460020387001573939942585506349129735594401173665906178475263954380041824193844649582809925017221631688250576595369889428538213959294605110699475671841664881538124061020717441801217128748434266833988347435015393468194468338747369717218880465586086325452174405977804625111199759164700893699137073115454874411292914060635724784703254452932779087782070935365743930763809335549254573359225563863631122971981750757596549956393885475395091921739137178221687876121938103302970889034540570208856943854990882841955685778101088933668293074973768200263872081448261997907872232168573001507631247754064745437856158549544769152043435585141902656727728079857804352848966046365679785841572000956259469518893276877633290714413466347005381686068858989189102261643011585006292922616955771988485880570563498685469958583878779637637269227187543383105372627663069588264234634761907433289199538948815450298336267337211744067279053931804924695846007216765547823911877904301420887725409596922303345459145142745398209914099794567468527089582838484808148478162849858600962622681265193585217502465766476231498854469738911975136861270628990017646181400678299019582288542984578349374130682678642505786491824230512870878711350734656852712609397358660843109579956386793880438210165314178768244073368021201157571134278144447047915027318505672458971692541188827954671268471249345953181284191525860723560632498836966324124081578077649065702519518976534595989994742880936387572142391850844285211092134533220264889690461937996336723240931718506307465968927272279444625475474184929838885394824836064291199433881183326464051491804575607057077026672916207780408218357304532092722189573175883500093172218750602814041019358938164311174838754397523163381494514841540832792907247985219942753596486471400523915601275509638588859174062351556826062658414859289944889453446261433319837284836260291099351040717634398349461403938816993281524181924434224830836046831136463056332005768078089099609995220804354194090082652218589669136257924494419084426532305039196692015748550333673083185598718236287582436918331288647082119032776586223356136466168313253407700695556035857944508355012065582812759212820827783711790922033439769928740574595917960082855286773750923895121996723784642069009389131254530147450473204558507901057057488528260372015099077789212168526263762708785939226624847884665683225296254922269857784110033194770201523798483067941568290969958354023794123449954638815477914800050781927692442514552385733715971284824556083140126662869326092520685537551396635699021583917920862910424112265859213621719532295036229516840463676923595064576146261306354040182173116648904252410744502165284202711886741083508065038547987593630578191699884508350997388767601247645514009263547698949010548058712031683363553938286445875635033080643488862103326762816086586722952958420248890066629147564601831740570728777663466200136706164464111105259750949958256554569478427837148770453470416677750321722727582544187773099209179530549382847585726060780756279726038261492607356862530677337441625312771161467170797547207472382675995172178040690352929938406833669175738420896520519618245277749317581161508867189445921025562460537218110424302734655576269706561114782973722989778337000684679226086212736666099909775396581936734721417370711893792289309944817353246099674590451603149601092064784958357040669228506657636233124404978704355319735399463743001951750112230942225854636436738632738079459980095849692070498804488986001784186619746105860956754300892354922704912130251930610310518992057106397038988319597711666633824737804285498514094845199877925683335734164968856593014157252626186964309137709516289871254323231456840611812304707095354919345795898863947482829176158897495580509045447464271384026327908512453106085274316429339818340860614696293804361975906440711560367727400516048021620566581789311631258664071548788529714295599982408006148930742764653934758674146275596148984906852869553370857466526856344272556848130247722779920106306478802957699544985961084551239749427142165179824292385643444784135787435671482465467165892330318942940441832671924880353607779132527861097410901091266053090658491751740815283991590515536462052789788048344046746963185387083098486177098987169961475630166333512416546881220625121679002362050636287039896508037404349839184530459472571565251064773198926290337525265436328623517472926614818253707755930071852702852736348556301398935926009641306642339175182960031230230021376003068313757068671870590649749906601881765704015048707780536000034545435238149459743330573094451134209098341197123635799060677907639093121820679204863209480447282911589454143936424348837253947600358771615046985335692855527517701337012037024838109969268815708398533648701924937977962818884757673243060114604656894564061358441655566766144782029430374223342716617176609253146054976985689366340053648338937128666908847275313782512289082329155847111450377199643813012336220347381788032307778293903169655634117209622162951807083064483691109785143354417313288880683426344609711671221731270391758589860074294300175691889675228036154982498878154293966131016365763021447132232963452531959984582049301456643480009411195897106037446882953955328023635467013596098239156009011768603503662507743787980418582772043894002372992011708332640032851971110781437976793970626227160861385609886960743700448033072437976505413827806179442369617567212216052203580680204883889948936364260636743117357509357034808118265967147787944361342906112812186356899214266848715027218450754166817624900799928594111784930455276762928977313657474581203585218934333740753502734337477230365918427499142125380231968690352620525529466695351236957616099243306679949782525638858379386835353468207911092465726907054925327748771473530129000190468960342073261755589151992766691138583278290998959364251599074568735179294274965464672955230170504025946353184406343900666243129660814596794156398622759143581909193185952681168788223519269649685028418353110659704160689307676249465001088295049994885310502143228833066022397747452852949422562115085100590807142984423590871184991966485505208530643619672946945039887949949845879230276560032562726192282784556555552153884261269740198155030468378973857092227853821158445919785862122048129075535097800309363106122315844270108393490297921831907040831355371870386839761722430744381251175851765417570294725043668937849709038397882790475232249110843030573738935327919697053971128034501258986126075953396867110796948066743338611392699308122380122254477601747821539160115571387719099058038470454004914402681241894954123971135917669853065053548662151074932808337517086839694830561267809977122766895079874147174178490649920376475921764815422322835924837308085040824806266960049850842555378277489678280674322832518506722093657797755817252960853412731444862937505099434367163109300514923055921587716748073725171745524665446751878477980486091565800535956372167878809593114761176899451758010821037163857846697075703805058447057436091946170190787319711432057368606258916805451668782984745653242356147467670077077881808150548269972542271362628780776171906443435920425167655445073494248858684302137053138804876228536956210187479378225717179976707586810595212396559780543511930960272892594829638152535195328297334063903275758886649377434012793386596799067966872092210155774911872076401754969231996366413721977502754602046155769278068681576194111108877280272743487706047222329110101949753033684160319647166327029911935470055169732478175589881950831611245364947187236669039601403475640805093469501891282055049764664618804287556774490730655733568124840123780821458462340083531912721254321972103920833161267871720098476246045918964017759925369569090114525728106365357601281543559216974781843893722004038045434595011906186589528554771316375308335080091142233351136012392400357224767266036918842884802374749373594066939799200825644212309195998731244961113556181877748887347436609878036189544590047624515399971102557665665945297286477351012550235222619911258040616347222452216283897313175485472251047690471938343216988113776653179170970610169508634427928340726758053576540624945454900187117112925210655446606440635808840574636777242304136331398231487032975666359167083861551716254285930579126357081009317158681693767461675534519561033537237799488966440013047780964089356557662439033175522291555188744539857134968316473120262570369050030126764463974812830433763021073636620949087880344417732958361986462683524765868825323252815382831051473318028801892329451320949460506065895431516816454111102791364153328882676763788110748584543554178060638018120903833887918515012514397091785253866237514193175114708393982326546681539037297352039733166203800095100386543634906137528022817520937387920954189880762386619809579046266721750053842231211294914700070968935369453283679682490193163376304492994523780308417827624206225820504558340166645679633357286682517780062204877276832450523186030977807584881837439842787234400988246266698267652716295795672896332478464028259422140582709147294815110741590504154520051710098165968684238608655762573804309731548445580085853468682503834174352819706424883641804811558502325326969362668252387816174182274131362119706540355131998478939900816457452165252173576554211543361804505169041680772409593333992474476974224098300493006879803787505971985710297744166887957841728479819852808807068795358324208635591409130631275348655425367184770817503583225064443120292730244709108233157799811166936959655609509399060041358741100251800806968899771427231057881769847541885417475867037837016437368555793776388897578134003050442312997460878672620207883884917877085767684224960266587991154403886159430222525629734421958848284815160795439943844589004347919276287753281846680741522014557855795449888069444760480824536542612837735402162191301393539431746340728218670217096925547067919398150504377582643759747933202291563840265497840191975107350301792264170705510533335876053419685895200900651377559042157671497632094931208659105067794571578438656376899675463678477393175518219679864168300931045629520399693859579962681743504235487562014048908912306160570608291612601612470442631972107964533514032613226663189655340136523868897482220409583789657211250637046165275841055419375128764565806550167203899569798784640845690429544549493746502259836378560260770248918172846674310712763202472232240153073737701966455575471604924050231284681168564821651554684577402038645614586909714115458128806519206523645750033067288010536061212013357284710982476441668211178027979939146213523656655616849948764475435497316097696732547293847006126527804527727580416379686722648593286129443793834901485109704495477405251797316118291025003709169693379290387075196701136882225378036222031633225191175451333739667398824993325184003245917968135049097003670399311022672020409710876116933482526610772132684558129653374281668760923816983907092944559217849503237788429011621090163610576739662611956155107002941141714534566095221307791627665458416391366435505887941798213630921579559091461105148168156548125299667280841491193328924512718548282775305178492017555959677006805269822088955784431493258302672140246499004895081310978305817616276884659134456223079541974023602313533599381550600931230236075154720547000725409976863196509784358387305241035684448889758354577898923441787946407998905255358834548366130912435064069176364281592252199712723361661555680812966547601043633752565262298488413104685624878928091246311007318612495356327330364426012039908186048036411721858786029120515784583265550791363371085063017613773279983108874199108430588984291021989453160809134130590905743436311209993418910724783209658437028121925024027203228543336748172058214296647461576804940029335378937528735899807434217571350735487486510133827991950420280132702267656987690208027333179823538948805068644628416837871871832035955723628915372481497460691949311834969965694428464554239559342647721419658049523905130184669430085269125321195419113113311074154962987154335846136213072604377770661576348214850028773434556070431260267188765366460123040303277032055906809386419694998346484935137695003682328993824140201278640647433107357455008012497216954900157003321311201947518541554992027843800907240764269148375072448107057883741868655121784223161898369160903380876733358167783159682032999765187847599075004667474336009810368096516569462903957171528946908397017853264166770360780612446464182369936310318262806013591506035352931202808278661095923289133046105138691326565684245086782889988861277541201624513997069562439796148921679828376902308697986269377777484690265308362206586507903384293220485688155029106812136360612103153673521455196481439330248954517494119646392066755831928774492635506356844878996775187818995260457583968856003649918795803257551531749454962844648615278817951334031875761828361822160514618758141336034327907990361367741475918183556824664285694933016215051834659092033530140546730065248107407708354170934942197078904946759080145701700510582646964225263167737844236145539271805256033134232874627893062935832624550033307484932630364505359475444340260250574264687539926884024132241919362431345663563482858378690540205892616379350082410512288160599336222994796884304719823952527887855498091409459810103391090556084467458265559783553087773406975727448546520306628089867462648518375920596922810068609353073069243173366117151045738171848793773418835041957352303935844833422592848343265322866941328704668827302098880776884536469203902098295452207278089885245550342454267532124929084610876408314569415650094406546128030387980223269415444655698586001755963198156837437799761844034033336840487032194333782064217180078505567523770090335956480117777502526525378644496116612507954943117305887017565890382237368820097352633391440546142642254783939695034209371876332184182291694769980018275033072254219481486319222639657688904105649867474269356449163819804497542334536444518061283015412483061248019298901263029329484667456080709984847254882732956144247210438708376487303143443065139356860867599322740428466013684686800483143611966056448849887780788643000362716976361861816649368082568984860002588735180726541497924018210778750638513160036050502169224141335952876618802984113882958420374436414096064989801048921779004030467401210147932718113568632029093775365118664846665269379259388766440180563350241741633913706042080453904902730509411330018935125984146077488461144300999850582838594901482779820248826185211122913352235359851840831238242982397211510659614120110537742929523199533318433914600962266149953705037468509187550294703842376524280734321628680063846567861554352030076786360294958990101086428547518195807838875623287487941562119498336897482085256217586166020502825390543902547309842897337926965071717484961248970550634527171445742979480138981162573285084990938466579908618935181780389338442526005049854140598620957677458309883703562824395449675412784288948708075431954076259450944937092925276999803429356530603279935935964973786460406516610639495332379123034339665667935323029275880306584938122846898456928473923378872973446841691473830260100880303961279989293863602262394281445120001655554807242045337954158804692406399078040796209116308806032139217240746085123701413604602074947432104694280342440451122450839483140472908401164447082307428011867085552867969153415582439161153050841989630484257997777153395021147978293786493935804736638245543299359518694719447726551952567113228022682979540100312355420468727394725807933090256685719544747662412710966928003333456349511096311440120579998832489098505647149316186223289642710959859600214854961577697447784069468014458302574772393017074378683013033755565694470818817743548195493178388887970617181791212177096595331811686984567295489239390670924176481726947882769152194093788234849838478687668404752537767891059772267686857864812443489326916236340531843694136350563127446516138642403767422408674711749701118477974483346925403957660413808167982137434795671667120492206101776110964940713151149155362551989382938874947404596249954469991340102052191718932993148001252421237430298620704961259925085202549536502166623315398527373114330757978813552162481108505716065876385282901488053462954958808033602053611610631454070302254405231755023064220926017054503361735703477801293476654741937449735700202599071407971689496738004215722544691865837959228118932348906392762839950283605151388379190747462905607611459246245521700012001096088939524332906426036963072052460488281830932737637929141980323279038777215127984033373016299701974812959417205270660392367540367712315477480443306826711566276671174603446792550302840101579478945453123442619171796433178575702059079788289554436751155363055072867484501593585667056278342197012688085224645201794368086482185230606158459226923205479500533622143775672897542291537492325392296238977003230724054079994622689943741772087875007341091334104464061262044947839172501873130145396454372183733003590117452988050798224933270393647375188354681933796962188233024454774163134527450584017771317457005152617858509125371816814971871311632495503304153657028290055374226426863869921164662418925251644878416735904908912938800534446156959549284644194381829422815076092167210469393907871790003813385581628586623013576709137707102853367606777987125585574326482996240382991339611420241653255029312545141298998530872891245871099763129265838482418929498518230728619871788041169255938387024298010347931281834144185590368149241972458194995797122687847472881925575861099961681663343271024244872946307261401469197523150285677859291819346525664579060212240534161844952240785847213642600939869601192708801334379240227521049890315919327955831540097619848226593749760322515064689495154775793982759689876374930500715465707411765757344981165513898766682499590270993372775251768527496352387692819945791624350712443638759461385927600561928368259276773755765600498806651135436947922997946921464077473429419884164869301504904810059212924004469374335585801226332802058976562149091857848066778624708380810290338275524113862091760575395109947503242996804558672989355148421782577319654040502666928172339436894950590292325140307869919525979192017158440407113599342557984761446090520053587983335499131297473134222573637895961622207116719240954233625756173654961258442221404603730761583797688880450568816396419762554538735554656813145502202686838588305761771365435805963657782957901595049517014896302657884518933003936589940460813897325453226757812813112076909422697153882117677908497063952514309611330958236105514102815068033474195150252006020953028324256428633905588030720875313799466412731852455225326420286351578978261801120511184094372013717478168815007118788156700761049473958579251597532110230891494969316270038473304865071310576234801161624980169002236746972303531443403427574410221116990938351039301561682505862682848768262147530917597939129541526213467652632282155061565432453011426511632379980439204228498564786443833542267641710562950927187025661732982820298654034211042243006952590395195990119305352567729554603826750904011760013353817454756523232012831765181734556036105837158345658924081427610786827578523383697640835584624060826724828315807365253370795253132400806397891889392118249477645006665338572895590225509549931979270962933520811763250064277208762564615137893729426504986015815803399406224191064354328895854635390044100149527139031783204900250273897504888670292295271773813684445712593695142107874411819533762636394215854010150365786186955626103144499917719728938845111284256084201177168298215790994688420504901912021251914586895740701753727830524898972522528609246046417531482656209085721153847159833527482212219204650600881670545296104121614178537767626603929875040685295687300655866684755267621981688438559154595583689902688314108698044533372855106005361875869317111706692023580732381796315728266589484766974890104152507969479994618992602359912471563340911513452341643770758397421828057105262950139407962334388947480014143602191868133234645128416088195211471050670541849348159410766839278740772429179635260590243704710448960340563941732329215159212481641907257801293632333909552848631103581117575924358203414829175419863799258317953426939143006734070337276334271762067181320350744319373133558593464079581751422363509815881055670969053823847141674872907800129916486706766453344251330477921005195674972864076959047523735650211737756515776269355842531868132246658576282279887059077528449059161224639044539897269250672243399119221763248644063091452323087292380761855748382081973764351379601043161939308343913281747367686241697464507231369214792816140210977306409869694331224759248758917888440101840180016288061602614221961461452798425214425166995650361716382093786895090084939375362072389168480227057044061540300716627623186824636969686648291518516093117802998957765387691467747730710892294145113206174604612947967589072629478090085584260958838958890839331560937757843804687922538581517454124208673089820003377952486827308324975794647471177216836405251172075189041832124078764754905077898057033463291254601503314006142260654447996817723652167864920673847339578974310103869034443377400428083516360231339996342382639596934108525595117727234916936557040933225579332999359570390276695764738188295033686643111979215394659087492944739564403489502825332626737876078467117967145440730968007422536596310654024942943005257486054790110302402182288407085013848456056163915341642683816280368637534463605228374327542247793659513136009052258618593625751004998557280974629718300186866266257980119888510376898071862582814853571720316347295401583222136630374145041256879793324023846382135926444096636791637357128993900735424605137341961444447210747373284196532489404957828690201157624633014753231780755512398897564418935844490136798062732437103438352983280893265955035963352801916917769324189410652137894352579053810608961731808140326597366335283396113310193138394947561251018676826103301991929327332037630386304163109518158544604551130988383180631965409104046674312113463826902328657439158833474221235339322317954004768624973418420615835636492810149467921833510285118642482541650207889146124928612180750601199597806238593274820227579215994026071800418642347004262336283455820676735087403733189513759686252440841807860190462691399672150727329555328482863067654075273678385234237164210795116017580260744938487163569156995898278456265750877342722082726798554471872876478803789968413196781760398520528863861241503161897393634904910195269267037561425979184446244687581092925854594770735709520062327630235085770531965950324859747279746716381625674278903646367028440428153541221213330797098658679174752808064006414383997816499852991753861376436167873597172323548953622236532241751563697126281642535687340497208070289909338231308389185859803337091813641927004558025883206892735954134155836137715753881607093000742865496290508281888566764852138249866965972019297681778189179353374624940721739450296736708212695974802215734344700146208738684351979661754634158571331574217215065539847300256810180668242090597788335775667288076881590345042280243430048497506946890367502833888016446044524334348554398404752824728262199996761335020383799072685798888741628002999700979391849304513083064861930824923963873284487542419867543756636216597610885365866574970161190209563579031123451175369887054755001260858319842441203021904555210911704819609136764069487003726450130935024970528881695973437700946868926964637815112268238368164174704969699105230491307119596368099474951834920976978661265395542491960059927756110725011887947083001484745163220739284647538146320110498782178261091180150217939237001584169324754553674781873561968512122458951481774398720563027374535452549980362044152312704434327813060155099706306908689311711312370484633184228292538110859586266822408253987268284181700394374696608878082658236852820978000095760776292852006888863416145363358105876826245454486045494701495367611143350554863907638288072669954096547496332187080912108333679225059455289904952796023990617270469965306313266524987644114625857230019646496549118453587121727206719011566342887620124053778796201367077110469123019523537583983502712001777381813847442835668294788035756980731298989538737813380072377062790411050065227883725758621146524143681108163618691807898787641468260843428296177200726365702767506839963371433695113181170754747665259472583538330797509760412608989320179140803858991158637476003259205107785681755936826784233122641152244462716650717006137609832115003879277774068860982100836429429946739877621202144184970370351225977482291083239935367104194844378310203469264151862422183630720021846213318697689218161398827650507178496427072961224829722912337561097290112256222530977236261585134309355137109930965670840855981484984646325840788451498336524329669341141431444264249737773531108640151235909551369477956452714355708122657373455777271094194317975319330898203146681495660001049824218070835765420083956174531495320374368943811771050152283107125578245622108020515779898662655895197407824818795511283259854099219713039175495957161663067868867530152033910108103020138218506172850958866044352478842069383016721912635813452585585377362710532643599740151811793210640883252792861967884773258096779259270814611411170277747964070797042660577867309518261643353581325745607136281265643707489954854176226926460895637900025777767021036459922094586358123134882226489090144255066993227651366027779879466706960731759550129630239528641496422726995297627192482534050620068452863522257713558970018177953284196910249164963011591707822204230718350681949915355996299190883239321721843155966893389720285734615851438805104139147430015493363472007310305884140132781091093562522728530374750819887593075118863218546466150547225964626222396369311380145906159605080135949579569189738936912145382730340020688500014050826573658005788553075113872107621094690263990526858081122131445363754795621820299867304931494046116857751421119535506896998468687179233646524095398498689406223450198488364330006171150209032610110253321425929740613996416481500366138274075915747783922649131646685153577879212373153810815934872321051909175713331635949877857882627367965646437118310720232109989199126218128820247255263438826067019450817059738470031957555016902278682645441064575409255604404367363389895671620926029176148465811606385435957392717329735487564829024623640350310149266794082922612265949495021756056459916075868810577273984813507108360530734582254963788343531786421983293078783269263366213715315891820363309119254087492933581255293467542436841726212840897213157670761524166445788881738655620591300774354365892370159305260728233152658224305152130547843310005806920323392106819446854083142464111673260736075755518690183677956400207807200171347229462366325394848444249396453858778460143465406510738936564486609528992166836584347141088632670350263662687676281023736584906328479855554647455679199893385669840137798681222829027391035468274911529694324125533562976492871237753561673674814013207816376506147228302194945669601272932664179389162946169547378691755121268018663269380193868810918134273151664510060686172136784611787878049305870300444904028022823686837789024750697476883951399379479693216538905823164457479425490730932887099569859023356688723015217361997908415588099313725751678078723338049074340291746158330733782556430510004611942862542825987460858688236342990539903986240931564883200303089405228677313535993808677676964973730964368627347850910234029461938981562009333031625270219578096608400914959997147784146936067128806547703861780504490308336255158108800200207405563971709281101774071018351130777249105324839401000876099670349118679090155481174383501780205677984027793716174664307356960242180592245750513668376836535625819153096323906209123904807649482423724577731035885038276074754988805180125706468079564637207550771214777854533969723153738016882758655420829308220020292642092913974602754248559020261572944879351313183533157535639840089987486048536977353642340449198453107350811637485633573229776414093288888674617206502683658080895035772448512894020494144622393151483690745513628295829410167643962715690193466425571992068614752247197900899501145494072225421651591767335615867697738622893941071576234251462979094672071785595165154933290381523606392258473398711019675795922845248822416357391563444723863789732552225284664661022268419747466350497757187108995055573817153583873042741201358778894629914424080732541652671512917180862270788717280499330517693229790198399943175082209545445089402984936146703322829082765927916957943813226963979332320781958899379284364145471793780194380634496373323674318739046905017924274502994996601748120947120158016850430211160684662394567314389400849100975088680622136402308882815010719325923770182426514908791550677303901999667678447077217029343772137157958197565949763685110490641563583906315946121690310677681795632836652566122579208755268705888667486957143200983580617629079777491728069728846966516411095913749152134417816307496485354861523638288510468989441231637012286001290907064135652278098758136627608994825022000861442747079691604536617542440553906296994766048900545228622522753564954076957962507572280611487399747150526927919074128674765647525713426666639451518008927701887063348517469101176241726806738809409796354475433481520497361541171558393377217950002303308604871322037326802508586047772262489237627702422469038689867716105693721293244769260491189247255104043754604361743847772808531079054304019420616689612431203811878852848831283939138919151916306076031860979889652608683204075041465362355292285719781407296914807949056947589538076265951994064050363638911179395493903062219046814041820078279327606042514440685056083827847757220307267609389478965985381976358222391737667602760093353462665902209321062281557893925625640028389800264674627427900627321880909265350667232299475711718914114253667517719643440440477846986508903436654632012285745789382061499344776921571095987519093989382518547111025086437158039820106418843443246851106528504358066542739966280546491225412557410189614299032801561273009961564788352628666161275162010771842693882482479711838176626192770448230306265478489777388869328624835544750746742083560200087559395777830022802462326896978286102503344413765245212396132651578607365803199745975970545658404657899917903647974416205907155523913907970849848325327106012751466096176690131130051563909940390395128617364296231056106334215788876993245239190830390756000137277377328439139335644843717256332801141306744665779306326813086893130828360435144162260975886387300271873821048502530367239836052575141693853290092422637376517855121072284895528995845394363282847451067924245096052630759289497723140396004947825314383677465663864704490856522465103851125399572521880778627936643315551216463036347926418371218034634015894062033374741396669387955745023339413541716432910407080754582982340314739411417708256780550321538944601353622790926040824345334954764704143505406753528321906584272528970871511377674092062233336824918105216540285150540219695243832336420724705789909212470373680142085174628234490501397024970086624803890108160862328500392925175890482609394960280994612691154813737599711292095759614572892641884659346415746641736784251528578437529801611940796924128867477753404239788574998442099434922946244059262856611778000792114853504125461839658713839368317112497878399454878343818589117961353058435004915148893647359684995011614683361413479161508655963677556057749345836649664628107446720109661227776899328421448157603566383466377756913511982707853856054247599371429009670882372020459790737531859808295467649770386267555334690131459422144681164486242805233897018154895438438480487789863990361691114769704469525740696254971293066674474633619637044356858502640941187915273752239515107498365019340948638460829770767167011703529445691414197219350747530294776412715329626953724088035098615022037845272053150156263736928538423385622636786063019165726801672759961817372508502598314630846881943976972041686702841540758766367068021185423413713418090189347845861384670196839505487963090794819800868097266811662019962469186144815892415780187116513179722117291545417885136710618393420681367454288253084148856163869050052013061906838896718398969834349802305722523929205816447603620492877222520063476655033627802874993362695433950004551714808863025905899267599925295898824029679692652430095274367361837474961138532305571324597497224187229840247413376858812177717292458651754220876955008433287745113690238146264807860991562853343329082025771401967545076679369990583081955340116401921071881771006848129557169585547356999750730504353655629251502095863215616312795198274167014790048680258138796044749681307674216695921942339229645694531742734718711329527296588907238315115831621268370998306538083179819179671404825844968556053882355012890860555849062938883976234877314947657712696592952866202300426026665895092339076289241875216015310387756714969512468090166138620421499805193337533775916884529735362751864172274937719113142406613223252952599832117921310819782273996071611297154616803665194336051038442028591238092352979852504343120330861781060705528071100999383245855150320627113606384900029615263518043244916823629229733767950864804161984595869901652165557606284130188002577618064131254295999675128918803296162301332329742303875137336421198072143525302276814187063330560787419558553762665311732487500591560901319800692934257098494094496683242803128133331616412399777928699671089665730045716630042875833572956990540410642830860396172894456557659048911068349641535666956342613103659978829722407868722081622737605431752438211995243579078508778638565762266173205136335158379242507186376115127848477948159648930136110261348429665490522531257360118629530344587639158258078183130430544465100530942283551921304640283738121717121900012889784766236012167876689620376196896414603716264993729923005728444535824385325511136335086211438619599047220878245042522140720663902102727807748570799694279014203948234718851343087897479845764923579597285744406697518041210505566106905379052196127189114755421008091091594475096048388017578396374668000797375702691287376146562531257473154041865138592924805262845732061558802639484649697052115265698146187579346845094663272505139014337461407625437822249044067467163891546169790161068079809719314230344696897160016284139877166704290052882204651425063593430728961468845707436229388642716642460963982951785023707796902934685658315261206262678103736807566933101330661803695357412101641965782695154477781524383933621631154209487871389819907013998620010090892537783294375301281885193057591330908187267407053710831254643712847704663747941782228615234387275779762607763866656086490807502173910822584277845851992385972553122809213131126626181427215973239990495082371833582464109375979434800614005134108651072020451913308740696434905496117940156857363867299259645816125457398533933108969053230777607507059433377997382798279395648765607904393809886565936048938894996312135636201584499761585599654693880875642487034501335166556204446934384566616236704424185023692032815305930322250885970027969149528901322752276871936836480217884386242659021516514222731669047885875044537720532253158054111485217195554797500323242559766201786030620150809039419802128429448291703855044102188187894340977371907594310398271432063500670530960809266054974496578286524306293176010996181200033480363693151934048402176112214427894651086925510119976297728247405892098953754472422540028994409338705658773452189178347521114183830625717438918924189806302548161050498741790712859505247337311565061099886163695455321744438671920028440985672168451995839673526218016727666567431317203986668582733535003486692789403060564338548740521617304239816064701699649334494824447349875285976294084166104740874178798103670551028419751114111508316227897689108298605317534414685397486324475616688013239534816240545641980525997777212056714758561962677453206082146819807463142162783305209302067675756225182124179746376560545357305739960817757810263514048253530984146770359212571487339759520273873060665701159698567634049828241119492509263343160965342997607243518933250215262664410002750341478330313275718196391730742653582129495553821713061539102981837601508710689836063573677942422997692125900068181223853000180054136906447292015502001714522994200007438098856125292485428654272643617311640035271269372779032022728689048880005921752382573488748984270004230365092008302047735228407410362407361057035641309120110238464088974102476941087449877520773245575497851014975510844070517040443209950136618044930303841362335821396885651678246394663352452914839271929397024497655972679707139952296691217610547446065139852668739586727221545077571071384144022640406643021132011196065302214935943865838437115120175016153406477142277680146934875043745392108033541887223262988441428249552814802507951314259226575225414878665910819459376072133947047820607228114171623952575478449397522010242562173014530324636729271522173222518409161274618605422618648752202081938037798673232749056363445650055252232679777668832833973216968263265629926805800130795700738176557134687118695405705563911870745031424967270958726562322364241388426400087921211546713058729193500754011763568440223282386817423020103584155988887848477495863081811346270754299531436151777679201585352517410488891495714335619008017244716591924689131557653940184290168689461277920795472079264591203417299654575893103699506365147991774950359933835732249117657708969252120762981225357982329572423348882718538989809182951778914030217947262591428106493232776383094532433046602028392963354900688507493377250132951329958692750294833281642376914334625502012517693418446330876499822897374315344727039359665117994881862515007251752708477880697900579191802859450119155446364197024676157530422358298647655736034924311837535900644368930989611454680461185331099234530001563202269443085715248674280010190709153596945950237158371751608703828530919444589953313966029431447359506140253506232064381927911618841710772562613926874159052965676328017966745870731522421513442991255099606506704476516522946071580452121914821666873942006219508260249780953170667222110463743108621964140918837195101356346748108736767102695154666322777795740019739707897061627427480624057170282050697022499799956688330836680674846434639984361539131024904887429050935061970911966982400388045587162722462613420716719422291858202288804279572341703593398616633780698085324657762555016625851139196729134883372818166214069449248722414041084794478935618680424969334782655702373244693106507489619709421507478438172164802789129603271834347996298580385637098837534954555810050923775051126728710687143738138382772685268514395532597365401411818287038642338361623057477200151891601835001186778428951949080560388348640834602526194942595577635877405579581633548630050394255217749081156381810183700107908003205327630353945886207077858584301796800841420775165043555884968338316880273055025132887101879199895955893018757322251862996504057494608040888309656220027219117489196350126825003434120356108136765346254201439425205825440862499611031610755173124416549365161853623197384624419540298969746281366612660111302406299514064953122978055657250271152956408555802534487285242212754139948629042108743986550732604136239622888207275268829475042510534317478522089289221715356416252196123368295420802590389869663266894849790989938008119895345449777588241405279002986417670678751221346964108146503207209878371607902301833147425073327823282769124448043139527197038668985754606914289802007742449012268488937546029901350631277782394237375613426275672010396099611058404838893470608147475006512577174515799329815359590597960722448130498994075199762021304050454634421337308916140360973394827930047007946441792679554611769497750470406504609716321292400299804157998535191493934511836728727605450733505347538235891259935079085362151748766898824088402883656479802611443487678653115468558516611346217794498875981747080740066204401486476710115014896754298370797781261015557893510185729132127380861456321476165329531222945828852344666891381179566866547155973999965882268039960022630322973986499528780182480025346731590114235245093828999297984796209569943753326471256294415157646487213637200338319995850227237244337002419146985296422158000065408590765808979400802192492249096553523624698686782896398090327195993947984371861650902170180258480157503296993076753065034634502727073920944253031226283991114606686678839881016786892538949871469346296720868985195999450348520299951037699466585263214950655483276018683421014064390785749994599889872478799399325963538008677590971650684935238199508007136175910375493869943831932119137736343280768002765152180725822876026879417582110095463187433487787443646518957263794346412297703178242040917889388580828822986121765275453580162329303972766483145541653672304437017162228630281083853182297759355143314043080525785561986234128723002897405500286291042971057563596520458759856476079143427191612548372564231291375319590703023429718511105934963958383697116885708667556250938669285498174596669752548000352290183056008345252805475214270451729952228892576410515958641445681819197322831681429094018232186188831243881844987187002473902072730462771037088169515687905929073131037972763032132550667366915233951003868617491881745651892310049259319074029255000428482930459814649540010567810839784520916621507908686337097947560634168994920097247408283578671647382589784614396438197030289028646268282560644295742745603095129985483331115816177527217646020815544635155304329458955052695143812539183076778045120760443501058053637354011207470701170660677143746400766571537712990221567141991591375684969112704637419696223216887755699006986763951668641753924344219635242509856324813080349677115111385561043381085491602130343879126952259399619533169794939715071847550885958875430811980793632748596885416471956710913727525681679513870373443659117869690611523145330141503044384510014554497059217543578841780674063143077249828217342027105044575591128116175751997499795528791065816247892029084387277231687705285302441225896089850537508070633120327844411278263655515634938438996285367115832657233555804102657064236061620796631293448950029818331930693447339670386390728268694904634163803540442227791394005393266261024402745970093909359631683726013103719421038334688549284235508808313003298741399575103805663567477808558591643920171666016947512361627757989194858052473199884864880315680324639101507354283437994301169934486292907227980282961371541800398457754876426716064938939390427688553375211526254997482308091463226179067043326146041377044659952244957835138899840321238615930871521150605757479207844618325705927168711748916326837792580339378372532258779058022376003948106299320711031700211815440626771397634453285765638074993512401971325306095145717424876151150779475829706344375565596059802074277754519362855665504651762376605744429381226725323662134945202288674631545234056329362183131424669041824741983800339076769454842739411447055198212715202321966536751781399331090640694933003737351429805111630750120507487993783046078077596251533216176949385870383036611428698920807953175415180747101149337115609366776035555953327016438297269259194869490991951106336492462682783735845341865724645306050732862364272452847470877810862302782307408637259478029159151021174357646461603794225050612578883546096965297490421013626742359515160903360639173049179882631334288011105008209247803580270905516062585322102326267080301906097230056485502795937730020363857883345490418323891113599582654660299931436873591699816161718730246133150578007973669443954076873292605342486111474193868096072519374725313530208049587654289271462613470339259729923629031266777681709156902181855129436434675456347312379191176026456687586290184335766859435963992788385471967722612124039569044202007187493945457085179984031574887248138534352704408028582669113207283789103053713598379160897133019807487015015866167747613750554479510964050468065632621045394219314034439945411675556725086521249230140712707428907130980773632352048438785097098614672666605657465718611797274194938739543877575837995703965010332032767229284176951229517393052771710896934405273650663325840992895669794726985724622165250214518325597656714060612580843697206300054554956024002000214600393651743148307198902076059213658525606483262885645322145217768668913280971843229304130234606082902489137068090338017415093198079206793961585101972929713624122260316179722111025935624170429172218367365837360722968459980473736775924048305781757126454378020927227974882586732536678982192011491832256701991405788213774404161367179515101102014952129032410834477286516147868322796605866658490857677818800061174067609554370302235897165597874398202797582763672529415330341336961555464049371620888663554082701687665337193145323357373661600402492718490225526248294511428670980292940684381493960293321472225283481601401085493160090127757996193463110830974043224341919932225101474172494970059273844337668449245228654479671731610931601903797872754687258091247586097819231419268633911984764890443262139745588746929303628397105230077989034244509750176312684062632252947885095620382169380225642764398115987561327005696473430942540106527677574259960284413906602270308939338185816233206165760420504709469738874549073153812839462383440332563902494434028143917575084463857637318698351976693298542659269306341225164301348296289230809114450805979863630260876710735078801407428405442581388268802449917794058952834023478081437429790717938670389428609229909346268004637808443004546677051147256859720016473870295625058932987325768707538953832876564470002362470361103653540694157875617353149382146672242856960738200268394006915591601398045589257598253452327470406241061193728622214846161435766448812142766455079034755718257088077442664147094026144692574583903492260215048805260827298242148917745022013400141004294813698311445065525591326022398093704614928850186239000147620227106857439595468150938458148664568694226416474443085475614700751719697006367894827103934448611224947196807090446254294308065401899466171683578446107083278294851278107156406905074476695513801622823347232741145422257459909028500267252209560898462444262779026295816273360437464179056652506525614012598176152550943456020088366230715347696083056067152520500310935452125302572955341197446633789835644229830417724271031468501141212101306182226650742173944332213851868154112031978941974299710401853075611048942885186768828899766159440957696243238379257057689465453936738752902062278402496418402653716957577786096122362120450576153889951301703569463686023391158471913103522872878036732380219953929175655446658767264012799549713037617062765521190521050518262074156587302447171564030051173469277235062391256862651327370865051244399955677007515357589109317425223649473119686423978012566239668892125849385058335428071686884260311941659298160266066153460779313949274967517192974837524946548533865111170515884045621051752854437303664531221634704247111053908427607907046194360427524907891439389649404378012872284761407601114404979675889723193395807227480171442995557625624626674237651242318138544997527647701216764530511257990781787279278548647384186100658763080295264883005699279787811831577923041695068484354685942033944646129506879192482230705970320508321064304585482159507341539505954741946508242027896019430786288500221029142029868699120652351877171911076805313698296515444636027682597357019242781320504576870620745041906945742789952734863063877020312952228997474041771949516710705647128622948708551476846591931466678856229928281647498859945570743552213497663661098566509005994756582340822861808007050761171447918328810513298936229135633447406695759263003973344696162121254733647354174399213512732207238023103184599884976099656492137434439014166890128147225598403739720114954748558156320708294496684788809952091531919476556632500074441382221687336768096501819991519240134584548415333459182097455645546560478903168656542432674699987511509138048945844708261219661880508215470658973375834507898097818486963792005640639193642885759291498263170369661971596549383820593720958115983551215680769125482264292530017272661146727174759656542386362383986138543044612591590105605710378180295409890122968249772547516304148818149270642950415049221420089471133172037413122376616878772260722081903791820541767239607446611031878875582221519464258129110143748094483920811825425540509907596795533967493024065653479788215106499565378797502991875048466882456198512202075883236415766128510703473505624157714737317196276780875951919286712785748858150576258546548787767841923009300391980479150691394952358566425039606937426435863447672928577427713738903866503006967512814373694952526817593529538265344289423275207245161476682540486655150301307282294347143792883137142000729266187181805671379927840033646060715910644560384882184383589303104967155723653894220993381483740120289153601952384496206695519308522428800561064223180791233293310341894140742856594132985676025522590458983669678440440053823005727943562047309628201069841297767935764614773805467665354728760838030804303498076910899104820870979965551550338991592572711039681280146377576544793110985116973554490141316656324212779474657672221766286322158557997338812075847097568522152289235139063236915928671977703762676188254640339897102786839095740538527380181102539630129025802624006598454125571756538506718804215902019083094763264215591746495733251515252134491520669068537891368905922022128083663698255077622826060107027318027846933488161611840123229787192689096549258155779486248855439221392614907160404296400617965958587233182981922732942729144908754544858185355847807594971052176716896344597990710047981781930934704837879289502930757107735523564692974563317133769204594263563469365401936566264997447513096833309087699397198327547328619153671019017294679744047112338648960429743817826181845019539267972188512474730969546532552718561551270765487565298127671626561685530937930896483782028870702792306143145421355849327849415769105716439493813773156842254437800332842426949715871287822211351219846935882657009254136930147574057727633452974399399198133983842164126642396970246055183382499906446695193170954597375928830001994444111586685821505720113892451649172088489065701262855633325383230163903748856646826842618413400922744689835743714536031638156408986962856564072222671022431656953410853328260901360720835056149512509963197851565219129748686163826735007511994429405210698340740918306453615838103175416775469422639546573283860268499563006685840104733873867386391719988763947510881959361613302326333577050270652565043735237902277797257937550605793607198385925829802727113011117281948855100868416866895485238785573797082302677256245449713204724308822763777869946597749712148340003888209226017553058593027451161546136291028813507428056626737192613006613819910427458032935700896011150210608547116959486072503758844357638013756935628996781371678019260505898232815462451604227103047277721042456143680343940702504237996539515612907618971292279618420327971308021563913427753934630918584036090176176304654686030923843353087604042634339792299109990139027276717871579229421878520092661860469923009798189609140112071304745799377614376594193963302258182115305729320403732702240649454743377538810914190763461601154365437257197311767281177405159684199825880221422748096639973506576273005573636589238668555046073444121137270182863073515486369983943154831569270329438840510909455814813525679702366325371014707878332986614075399555839137440665739164581767908676036963160896959762903334188588951154798769111165879143918838138103136724729112421143596840041330616088535757639478410095233819025580156231640727494881454979535591204889805517829868965093924659328722915555074615934771663615197498981196761758704872805104014893019566003870090616155869226459117102587129936302620142105153068632472160812657492417400967241261760095911328640481745581912088604073414790215414529683760701671102223155632139443026471937554426714981140836288611448751421891487204082474339057598752026127967616313069124988055100442683643059012169294082323369633894705667303716082240564870151831934206094126207753012519733479762126785843350014532546787622791124980758908633789479919581661555959770240526553852147615104283727394480372160779726746997168229410298861232377604618613148643598727848877208254368015851395924815298945659727683265600595342552364125579935475684248762148384163240819911445013005814092630241432029200230884949018293465858470233221506552897221843580502668186166643946920973367375408409172877926163510089197952907142039749334300812560412554438956018715667833447738414681428609768935245180338262562662046679124271840799287957350995714765267427366521486469412200899837455761500984270525274938916066519350354592030713310854437487137129886778939276951633841626625690630368684301101388720875449854084739807898099172485047425013589137261522133288387124047982038429252471974943181613080567662977125338564004041353248282629772640915162768822392713752521059058464534266486094309352205403275110741949195274894542821639654250742246284212638693266182590735615714005340467945619103173794128850761489290564247429459550371028465147738697343861206641874460056675187396988907489028793890633356484792657664193725777115969045809114038149546626525783144763185855973550895704907043025986435609489279131318350285710859555886667771298349046666001115999635462080503892710252971507625089999970553594967619694091971408360920120815433997986078877224157821670185722826886132771979776718709061505842261779566337382957467738149631712779513868376817236482504475653774614184864557802125475893796942674837230336994820702739035535361630674604120836619680995165179038501232850182774161568371224984906068741283065869043451667912681212124985428069932718696729340001861458275499038288266481028115390997035845720643490031386899436506017595556315094251850516571676693572030898520310478054681366320218839173777363428753183700984217622784408437180533996207924848136920518513744017623781889854288761840102424381548036542918411406707905346469599814296131599459509209331266518076498807416790296731462719633889409473729122902074771760537166136517194991036509231877707387808170175310844112503292014212134762429802029093542457058994760645319774897501123909338858766005858960026534732460079049359740091963905441230772518102574673990254360796072017183125494599659124604310938313576657100724822438942014618593806169196810132162081548415059722188016577695865726097993211761913548280324360108495374204618661591879926974248940825500323160263066462052321306564567556528614741235749087676928766994217232422652029233336027163580063515850836778796389252678423766170822230711827274682433624599892254453524253594406106640067887192478069184373660783693919872923444597736124700199012585778061432542571802967644302090532511973984491254732465216930766512798899951988416336181866741720645087471453013402535104357908999818697866586104177462965702368345572827365014449894237125366572338795012802922866466311585424771300601430145761237078414668059126371538971398377099097908410162785644808200087794132038691419315289893254474695370856906901946016138831610183431019364298247139653989480913296836573705522173863294392784127488295160447564985034574956430713909073483649877305568511367365629827199537803434217196994172782497341282115048086752471663711787976418828578828355041666855591823583137896586340117919049265919723364888209809180084754078792779114243662947020131384730385562607732479577798574560529796024435558883564571732597795897850221959960460680780859765721560634705672457138283544891885744073085799827573180997542220050116657404052970509350457120096533504257112053951613739588822582122489077168306938924779471039307730175550215000088827371114564361623227168346371289493681580777818574403489586039472746591360915922538129984583507098890932883136578816051825831653797255525711722089842076869814827206391430248422465466343167681323994259662982521739342367374613982243447927914174620006113701919717538174542854037648735843430910403777559850221812293321623537910519177751915219437630665095357963624964168001820224889346018327717110231804001859715261617677427756072908599708769446170361339591162154913109489496796802144848999800732565442145071570213750984940645011840611899957576551167014679772136986176458987436064169332890864266276216649035535407181113228735296365126871894318365545349305155507522536482273371901005869690128286838056364161337184307995503426547551766042546064040489138748575406780841665583052419901885971405657920421641760455869620351377523970585216157665331064121244264056912486288764472326101469345508340195043088175048407659365694986891804558822376281357554746043237579926440479076545635032166815002159058630376307284124156299539749980800856676860494216946680248083730618349555162832791419517003073299113573217924545741070804262155874113714321523389463672511050104012956369007258187630316451751433650813851151471186634509955764555253573003218855306934575837514133011055244309701705559261229348959577614059370161314707780526136647575512790878171811615141762703769362618096673008238403461450352832357035036174864319853724469465203408440978033756763115053451534275325282483146713911539565583440962769476635987259172245956683066458485704618999722526296937990214683668062812796381676431144990114585365995035974769343095349608105178349367099643084679904151574960287628451916478224781679055956488103530123975294134423017639546744099366160729640743227799685756635248169799132850597845803007601859694547237782178578509656668796794748844927347776445104806121087042109401709068122329949636636850152179562193158823739632958115349403476458299942941313126578703118896397824838368536544246624543804399117206129761906415016585213957669194716020712767225854546550336390852146537275663535574781115640318327796178557657603571749377652959946669290888650753451802894637021320007520870956004554389813933117034106341559828837935601940984719802350718333331501171824255252343742653717882107521843662004650079203922290717479498698322144606186147810086550672614509317879576192163383119037470846521148425401317413044933641713886527621719089664757332415952366583432108724486886199040669611314785419650468558021963354474146053312382286313351307967025148549569232694404189031126440656519566540047004660030768710904254027330467170544725487774365291732988774678943349482057660572951283867723172556456494892268130499871191737373625646578423101326334527728855684530617317060677326204902906043043598338996543221640693450711824892371729058027894406768634403879924920677873468585518277917987947304917852927898849545871297084306251882579536498979019961346805912010423992133269657723744883310316882001239204565390248281578887165458720878216777159471671775506830298136145285142921795208911132486566779101827163913419730579834729330939720175929845290702012191606721563425308793608258972184714666094560206857378848601128068845022184933192756394067251066579686400389541569227768207695824841634905567295886309554391920575350356165664538364000929229489645850681615982872845924907931750135879635366263350807775302315914099815759642236548835705316963014941228239212194107850478773237477704762810893824024992808021817792189338945882393394846717319404515243373847655753029737495300263135108939726085592799827964288740549882811813373875232291445388192999139829488397448709962455291356213407679680105432614683599963696146098441213593915757716784076869561397934665220357456571937996256041334206170606620033882487107035694445252566800640449085745261721703279019841642879098679582606547574103083806407333469780648718529060518689326939352103452361171246922544979912514412431510592112467072668862905167284959910093358635266593959994113168577568228092406855372212180962653549978788974832295404513062266378554205485253277115216327428412447655485758590644050518552031193628637453370603277654457964269774890009305585989716122185976145712470344799171423770707500174006186966014328020911150033747448044184133937155469246519512838784992570256806984737797660205881348078814450191086681702655560474656449060917097870001744692083309308131790997457604896911702818940114386977933461712945220785839395021675822620002572354436341301622492578333861319200472329275247384956502091146589743367412492236819315158849926620377866390331060674597704491589393240389562976348659763867191107832187974102435003170141253802271085811860499861723325007750408628979491169574184916721369465223824727106479657383988231674014082754958890704916759637970481466318725986118506691908440640182712191693756211152761769347542835100183257706311476692495272175172936503113937107665505183660944841443193012775400613961735844825251420770955390865998939178644653569686045824869832988484373711111900701735554741805673228252476471132987250109268869078125232718932506221244427221458620914768198866082239225494736179613770384002197966961961709881706987472810152384602146394169455506949426379552003417909191631462468425682546274738677591185353063522585049466394802698070419986837887230534145474525955971865707429304428957880717598822777440025001557101528152974255629449536200937884463785057647208466436952626474478889989866059874020453617249711046764875662280930845927843235635809493766525394396631175127251306942636044129162088905255297039319903063565616898047003839927473148547866719488197812607557858508705579689587337538005212369006771754373846191133192104666190750968081560081721279718071724008258081389512170647323325643469748543785271806632495654721009781903378507272646493006362450836760691248871059518231972048670974520791461778591413614531748601975435277616690656979988751770164567135622908862716597986465730715242461613825788654752638605532626588433254884677340498535903218952827545991391194965745040518153058427036174778711156921678659708515686477651462629514187003361923346484187392763509037907698246600129289464048918251664887990270666819666726119392471665563629255943087549315679787405410034959048958930643786088517589687245921539467599492804049218040897943863732129717036740978897371036798003287638349905969043372945060777585386571392553852675705504557471432481809317296786950313889430232072579363296715744409856708263357460359163037065399966935737187625566360695244252754408078213273892980232200332264924690305993811163821210228496621804713429726188454781671715927235056143267133787426734319821242602869756122384375499323508021363061359978207080024320407204758960295199157406153370155078947209231798492677895712285505900978830744274136236535634102622588728717356627382458485077515161143054330845714936561608899481229176135097395703390539093723373553016691629627367515813687093408178304224132279460307023088976359802945444129376006485474657020588790612849640965593862400570683829727009226443067899907321045480427172376301567589085259949103705931321323480796567936717484974692537937643204031056731030125441932082630092925877201723217509309080132948494929087239809135390749392435093393445216343988102262713490577257694472613235199657168104373672447436558898046054197522780884200886939652852711157474215509786491651481685682048903551954198163641321106218344798316637224622195941094782674575184137641483159655724304011957773294713148583997464825446745842059675819687032248835909218834527300642609649693551372941627227728989487673040017258562934720311838244870568846553585729703204410921504651456992692026044043393791362678769621551151519093823367545733124923298881139650663506061041236994979225419473932771620655252431732127743488784043056856647972604759041843628305205178058147844276596342688604076364222609786317261587231248747793820969966737512216303839296205843165605267313408583359481430467671545186136622793916841551069906234109884894160754168144266611390327843006687265107617702572063748041651281235381171583002805994750022980486425247679767797638148584686736436157419623124679553474396990652728919404101444085333905884103709777178021407574901563735327754894068887785835044823055216538558906645885810497236988301268103669053074844648054563986008477305096190270571569912671013610568182058121758385319440036741196308041854693709191966323057010983953423153724119939981896478313360801549191243464197102818576361416200572890646566251926666878520954157891289033923171389104198308698915668796928998290098642424409446692964564538220386931933816204814269389033919555702328493956185452641375602885447853874493096256024419219302084516919467636613257881173244271516941752250235152095470250224740868432911399479975046353288131178743718264041101961748977300088916863959056041780831227832688418741732419534006674239654769444036249555931064888473687148732967897432793138466268904001330718550593590874238309521395524019732812705907624866359686683675507881622970106859619702736422523717449361534347585694454608207515831262526407607684141492269859825021531453538676711640394872825970329134553413362024583613216972260837708315842900619625863406400155776964893313506294604747697316297476475831242751653144272103502697242246516823633363831991601742086881449432030088369300887966872027009016132724109603029470429957865164967981373910446008853710123357564975615933723071654689367446457842244392699003149429258232940019514095347822150891227147230206517530669162009948551108897518713348899464329705219835040550478242934623206689245202872089494481057503775602625003392103184457100692322431188401068851381832240801717331237976079735144898534531241357507912560845461046422991786422104270433137763859224212540439893173127056015022989811225417428250026729474564950798036514197893499920498173036242735331881208442151318537980356397927034607391120360804297393257612518227399552354810612380971366631721017472074630619424754688611117961291488418890784497859715733039781199925407966499572285415208918361458213818083720473898812006352717100034513976607258332935872243312209968012625276452950733440372364309968055615224096858767222255787320597814887889921437751694371567064813670425459310688005469214846215433327481782711996317916302797160583539063090729923110793226151169074579553736897604914725750884607506042288702402023468811020096365871124492443896925481833237377284843972264807417389438655003635703995192587730622497238836634296058358852639772100820819982243681870685508429653331578977250372923423243269954972497569289530718236132351494254729427891439898392503641546838885494443427974391905451251156904609163529338146041549600045810152436924172778212466333083473441393970428232939219154689531730846428980679626547653050520892347588601296829217104334655712607588742118919766262951023700141775091041434246668191388312976842568245408016479404107574940343115224043290935864998684113455187430362639959776924583621897143632494393276315666890174811155966090689412210326140910867170665821060232041979421139132204684234762755312927929638295150926280371739199595120379092427094545829228179945794991308963672541751715666242217745394191696075983994473770447939486488160894541213549676479602131651821030492233499802244737872822613428755858386022883281571980430308500880748944275027846476166531265849222088836475336801640495460465929053559851586371425902918476329268690198900338192401328682305935282540992694120137312091490181192287255712970031513785068788774836881195628566263116189052564141633281144147579914015312346072245652793064535147049560450885495652630022116687030844416723029348828104613433627167812475589643411387448955257840008048846731905117875684192810545914405057472713741741661183582352575985318665702926706587072697888059515878809937742071408647118880057092086247714460670823937884365929582643492325861260515962086140012533251969013551470483484433269840638580958144960977609066568299576252355533519632350703429037053460051076267740286507202787330332020795548617285616202243069546537473691768686519222474406851843469107572189314234881828848877119265532141700406341032343494654950825891062223531128167837788472366604704179726066381146394264300208011913038809922917367468306271053836982643771524937253339002143711049827067312604860650297202666193177123718757166740768781587874590249455580263091038164625089296225207207768208209458712964721955231406637384864212999870015685853846528168553315497422463277168354019613028378732766956924038098113478434855965690082831656734603216687489919534721968051982341711777551606442588878825144437115047410491630081621296821064605513551015765971205921841797138703948869307398081140742947879022091020108607527729086827548158701536558840773696124699107651556822994504308211414933153876412850163712169918119783920798678061410496715551383707207014166475387657801859240118251861031180264539598111786737763356618264826586623220782520362396675438687328637790813350060814719448823110442968824305235001784700902571075967133057602760564117502497733318626221895668827973803885104490009894653801218359547753144535989372014353518471926973238766262421631700090147138365486616729246820487390572979514998552573405084495905878410851205589478167765327487887128289949978819951262724851922975132429757392203456849347638449758466816669175218617102376553397970466042987287507230456490516462670437763786500001509278786874341104639647420359514661898661817642346015932954669513744388507789571657858858069571675959623838140360360248155335788863904836742627748958588959914415106900161894768223945401099032056986391099564705914824806445767401117282648686293620232919812031985429033733152961877224114800006033663777389009349412893057546480454750555216068625409725110750499192019699727411476988555064318029486527829328281447134265693562878974798431964619481115402154181432575786974537695585675617486179609556154399129602482812030564363287885220602592672395507302067918717171936530646387649014878294153578701669313858818458720509944687440886819706564299058889188477173183001983417629480045054896198700597188445017438319893350065165100243671653906220265302137901774821115132713287522667103532848857463038604619060399512653394004711828762508345610559332764316993744315408358527844106739351347562835235824450552506065585484611344649746155183999459290763498331121050255030396479953083595679500050736977329432553801559763401580173424126965770868004498931247256213194157096258204518288097106189283738095643760786672611048025525351382501783145569242787488403565816704231577082070883911447610541448654468346101865028660475952108022464033398817720156353068616942349231248305460334213062892400318058651653662329630496125043721853019145821312201727686142990468605062556136765807553993832003080310755888367932287851839928360949514972995557712075700400414922359803417384789506518900514214052899275791598195471521781896095321678961798590641185749011040211254481784584469177060930445963695450616682707529741518188096013236053558362783861023707309184762982563611309217370425132555363291024366154369109764443867512987852086950035709352053529431106833502698169652605173553409733825965792825336327273280188123514926085490971128163352453668746064931819776919300500243438387062770765803655584305699451488923131225621713377362799411243383772070443954948133603851209440956059508797946747861573142003646055423493768370982917523471647675517328056154668943509412136505896747110026943389376750007806349106625698797644121841989398579248959798627378422604349701018189663015540643457741589868091643657602849053902256440283742764331388870476437232471216288968138619251764739237052288863636123239141549495410925500989826520908004890225533514835757954617362439048097062506187077134337202610464553551154534592301786693373732925672567032152284075777669129954968970827118996542182505169165517894926789189773708058396173038393939424450052910502908525094270489842807014191572499839845554475652794504226224514918658142146124786288112708532504596733264323537355534444061082601648350765361789739670187121333144121532490654214948144055892528626200811547773152331402692200683142628992424918897948557381333456217798769961115603881435769935430911139239981062636731457233501667696773268513688945321246542862385120898069375640641279932822374902978329404887595531793623317397704349267276980087693802284754245911523164244203876305594062103778276876542165371476577960554903242239542393713246836792231391835657236651212087508532483414198094499159359803068460260545818798793233517274408096159031626802901531856992493071412155312643695189757079555928770428349837364169322880059656001878551510660001745795578022525146488002747989288464643605162156163116214308157387902570439867304424832522374980949988887059225805919036724382201821532196804560409791528678495290725510015606546134014070990557593093244090773085711512205784932567056991567048845874449980197431982965148310360140192648781950001459118868462049143681119047605123179511068850444608486374466202260632180221960318462637509788751519265754610745305587779015429866967308854870938482387194453040569438535343291910712527415376185974517207278962139013912523819102061891702917545783665791062666148607312080758603135829069050368259828876589033261102933357961948129422082078902986751380981900609145709417487555502297611866723375344923326055580486403193441364655541445267066384469369203010121526853114085475170558462349825001884845430525453637861808592426395653867575719029050380005737593954429123691553869830352487771690987770194024368578159070112409173981294037936056325536709683344631206566110361819086736510583884942804853349309600177144849580229735730918388236772833344103223440880811943339148279404994362411803841609900276761977697850423281127931784466696006741878699838083160146806213830185080850010256593522821460455180833760757672527980267803625489504276096664932472496394077068884467052425089231229495123647278962232817224531257877304316461208770282387806746513520360257312533732814467903418901379909558882357863939059043282390853710767311236740578698009138041533513607900117641104320616762530159832876334743431417360947457377785083823341349689909765594585447217447076181204681546141138116749207213930747267429276126429846770892619844490597627143309004370598879558560969616496754853130301062316170385568627524800203754123472770623873167121832142393134102321933452112750899289843729906544302838528354099648644659854548402738832631650842053513902643983678555844651040484292105737340681156768499821501555905226471341828037368309101651636766309234580939375653546164883749465603285467023895941541488899073605131244538312376429855017945519718182798277657418143845321597204383013085687930699835336818010944688517180830636617597249823690519049196052884716405598335689194661641682163857675477379325143866848215869852210779796790158130529418756367866756091626490934378871131695727048302934516494353377973778149351966959893413710488778259175637671142563914222288997774430042686717865567355216289616284859019641217270072765519830520610505967781475753964680142162054440692305049177418628811329771833717275193229509036285993777017735928442820101980225922080285501924411619482141666230993698112227337254640627119938318450773823148105531149666212683166078683607867238666151051229842114523569883839145822048664548479290013138156265992208397625618035361113097276912143844413143525503675633690713395728247923651563467301490578442840432094813859157029332800936325295231783540423798902428632580604410413575053362394011705977294348231403410624602097313286315957896053637922410623998892072693936213726837203927042824639944193334858855342378649155815052487833309828952398868565555147131905955570220620871608638193286089680947516932956174927533546265729321903251414582860715838326233854635111200451780603923464201929941779119400446173582056592147644950575331962359548223184412604487603047340466931773125862513051268797064824985616309576489486801960273681987924915406098834430438655182093821954391160608401071270721595594147105714310169005870644905655997683739954275406365717784758280177385296516385973694688323068195672248016949588863898407946180106440143641065773580756244956436757686055558797680479860439518843687585491121677187124193212011821891742276756936066022960272253420029283085642664759607769150979161749678271423044392046433663380916623060420116206319075417059492622827891475878351951937626697157553346937913694451692101408108626050261218215011178650348290707684776760629434177527991644116004567569142557945216954357663662001164445248797743189086730374142632851856223230550568241044991288837077244060625501551396428241103680681836319285849391389190842792827697914069312074841209579292606393857317140123470167978134674101545944462268372517329371073343228520817072408729832153264105980862822579215998700212360868158657499386982547055582494110169384495383195805925831894501694400227192756255716707163010475473999540531620760397912434518788567361855230756749566368024962270840586574524936270111031842330359616385133440050107262761012067103796091771146174966207040127183576935255276258325285784489675237995377863590183198976817719070957578392532318888424806349643379229799622339681977721469238328356787960641097668995179747975435020843551525495071261585700013340001198857977407302623963146520459014177796960151055879408782578445768010876715609649665759913741789754904116562087662706347925306023596108290139028579795027855956297645354916555785487467283997201075209289705737583205190297326693908410494304955917117435510284118852599712462652369955527130371889627701605286653072719020674263802672263880215153386850121419227072068192059836061214113707290773774055551504096036720119670271861410053184969236277108415788589612440323072603296351107078838962297422005005526614408771226816289203629068144958872288838437368370242256637769260805900973655755702146513261054496330557863624158936875358431385190545127377877378159361594357559837750755342208891596492650112439726456337262433325561869294893137754710077122149915389464461704994153222197445555266941495884621861255269924498089499540334308074471881260544123041835164570138412830176878274298889681559273826963601355921806519081181134283843381589080878690004128072376118477018035419334440693825635471920299602235553142873595658627146529758462927293225129998250254901683990962086919116605483033760563806425436178211993196750152559538031472764636458995445262602641064671662994068694865357626660045350625570074258301062757307517659176164149939136723111302217426920409103641164873399728882475091413794163581609026348174711803030361302765299773826070682711930910332437828296207779873125738080873050103141464845391242639818358706243964311676680272653603663074323661116208719000535824590749889941489380570789938929073536821409096486549192119755069554557034241146691892268629515690834911316325830543038761341758749674668742761954173243063642490890664676098647057135605881520156018530775479082138845382683317849927672330269529325929913428959391819411490882943351394094061117001981895571018352558158534303313604144427482962433552563821990783972434425942307727684739766080935135811461608914540250814247647499170136887054569212429172787305298516939383315608196824856209917823193879270228251007073476276775356417948958205011524856953791104122006911705623979089822299686349623867601755428767188137047911366282416291752383677673410479270009392142483566883214951931447255643751356535538559798093912645054876438656373606615253589111861926536612790058480226623589123531532075189523424514749144259947526436383515511640090723400602672741127505585150100893807189725481570593836721577654297329259046952398715349546345618532242037350955301396496124977769640301745820447521144785420490039690814487825266131649511140758054018950606786729678755313035953038755926828202352860365262011731222407164122707442942102540338328361608282667868623596774907982366239045208265216372536560942635842892355815029562860881679546885216422333726878083853759962145335491997268826629662585350767718120605749658812613542183350737167173520695665867915300492428098880556419583240629017063685962301905618709955572390212061444588034553557003290829095042412981753281996149326143153449034321104225352351638810487207627980814855207758692049130319819886766462173322546272976496709515440226885721311493177940411560008058559953803087739066508063065978812458157807801826944052414224549554716562125417049266865745791041307327197069959333360228922869673988662341186555152740275772869537837952215164095123144477326424101218862320896911854188640438042148747510367507429157942390393019323805212722471156313017784364320219854664047100367177042636315067653686173474478687973828481917661569655019687351208062949258489717915251645898044428534471795324915172443760229407984086934723303051565585906077584557425913116940291288369059146448590628492685570696743172805377987104810715177747552330690635360338337309781109695808960578554211997139935014844566214664977680247152554041156720086749865772135114973024862445280570917890706217356572858605113729435846424926285859726353246612452601542467896186412768892033011292439880932735548864507591830203049857240818307620114677498995148905370228864527343598336341221964675486194635861382278203885741375639986920752493534343522156072104765495810340320181604307392482969379079472905458590744590440782588222596068602106949333671551583105245268322445193693095509160916087154619873098216842228638457441018659235731150012704213206531308675919250596706649528819474661602614983571344553819141279835349386984066162299136954727034000352368031489442119250306088349623180241015701876589327554086288146895222452614234832154785823510991696560015388228411036138646835702115190634322723082286433119941474135438891406354557378063099181675482916429385303029649468672290483461877861378638459024575221118173743026643305078118944704885023150948752242563577397091465899707568271208480373049966339821450859665493282909401707463578114342899258714521837391040353269460751847385733652269840180040088437125356489385337025148145855232401075138304097200377042918832537585054867800162843772463991305515073675621072014203436099581448646850399575821415362320677772531195081462235710337612464263744763269055047421578735395632841664056944202790612004447698616915042475600602746206213025880940560194630404504946195513844158565791582716949899077916282949661501708611391056412037095635607513170133707858703518779653015728470184520676426930352753769308843717087705354754953094844418798921199263411869101047877062390302845720392695113228506296704895266335028630642491270012926991294873586543185017255517938510263911163460623429343909152307513637103365300089486406042272659769543050696817435963487992450236549357205355086764148909841024027887236174468671485827523917202830820471434811805771802341214886794280730777381657988824317367609493403379254190349099402273074212562869885014378017580045115533285948211445985774547180026988710940288920998731262053712432996395323262681723996126271211077535020265983297857300854896850636117698946270131328645722896769425073731389663212136855932557533399533668715757419846807575125164410297280012171665154672910100822318719071633086325680024355055752121150365361929984595987051521327034419228101431181706410738362507440001448443060302277069033206169056661888992992617649387876672124755002105910479966947879168105393905316708895248883824729175741868385571646282218724836753313757519331161720598060329185859786592225526501792654622394326443423008760300459467039781255445441428109123373743642913116481658719559222459678200929389414708154909133227124620243507083369720370840397025872003056361593085305914308524527672063183333734214003858144483470066968377344233879581151086235414567549511304904084630219706416625735695425358337992990810873843683087029245251364383386359876983041794662584208531094118414068273939593152283673784129955395690535907099464536271271529529388594744545252592619887242916855325597388606128657410401635636526922084514114528214718008180899494890368812551891246198612900257124844552359556497485581041589128369055935061672379942311421917245946769353925246219261830928096203843395506278247475305339106761050526907707066407135693386266360345771992326592766231172230775744543220120865233327237487659211752745985197709217226476408725225689038456984910761630411890834211003400481240993095722597253662103415012331456447372715482444216215983989453079178241786740785740443376072081166844164393331699361279613934396965956446668176179150960274939224788958239658640851914049632627321143634996758354357543332328703999720854439858047263981964372323879255424262577913107935574308913656584092085473449151288827980911390322778535014581999138267248596019317226761487292049395146382128132695178138639027634770527291260019268533157850657655321029243765079002978888072975528071902871824813214041019823938067043715966096203793470229196945763361703066781476538463742511704643442407497610978978149821177072862158673655968201985042253323485677968833107497775171216354022141863731808385290669705586566259971039156371732296981345519208354367072726204668021750326337355149897305144562117497179882273126927599183505935952157087587744990954013442288908078083998854566031467690949555458956202254615458864193774762363107358397540209584382828225780244932313736480905812096548885761047879773514390595164703088301623281495286408329175833723410759386870815196676849092321259161365648953024130887685699778507087507112843284385575638691557261971774775167864930973352819192917122754806918530852839402494135816747297394624437352356196748213162648411386289533027455159733727387849000380958958505368666076069914263735949764831264033079495187226175999110483719455154303358045859669536612209224254021723454811300979312739440726750942301545744371044131929461558454972056356145325486082830915075450989277176579503954639681559354364341863193173351200265625533756866569795090670141712887002984013328827810865225019018636090584199232815878298648348286704320063210235096258665612382235552474475652946808459372702760204509070186356818481492815276673567775474889555560579702878627836170428965109535080146817212625808643309246358471821639887769389006183311479181700315513122711158530496037632320384057439733146797437096237897933628672429798462146485959259587375171448338300837557425026421914311837692168211147765677918190119013082819949729116985886239585479911162474362267080377605286755893753349137772804949887351587849002443270411431710108114617958180915871890081935821519911677478276871833742531935856868102245231345573025568928899821020729520967224912489048779501555101478668782040516862400003863061685805106522739272320643656313342722151708569692581948865823275564548445639004912762329877677675645421968060953167947019292642514818587990613830422470105973361358450876095897531027164870568160861683323709191963279272372041828412671014350227968420374295699770598422862258195881922712234110706372556945418001442816577132257005543021531761799444383331742593034949282697590713204481406961230885115350256834034310244205542833678447312258510734847346223007297178795099282069601342730419510923117033251441460215123476488854485441887973851596765732788730492094898841429951809989406501694905544869582996503195701454712837367128890514290413332985806213726368161288387244538975975287899489452009751803272300980156119014590176690317239013470670352826438199842457091876500004784975451189449788859131452836897546493199109400339092615968876140227588787643358169000729228461331237386646066848681224872422535254046158762560626766901920418389338718563016071072900802823149164530126021630886997572645329706036114807858863597096978575896353805762305409322060222079896052515886235150224100413273738111614876363158958869586727446832443029384936622466735211523819559248423364351242499923893555562205840220163451456652546086319769858910897668908267511021255986673372118979664891885514991628536412706454341234180116280531328916570848728461772935393838406243673847609188050434051348706728422006550014331975094118502646269069261578831716192267606878417465906747106304623174389044984559674257029200377294718123674766866735922590637640335503159901370505365411032154134447407788462433366826069796515934143575178066105425154121982939381395161221916285093348360352320707476758461220186179620200227548023308122038090214993219577512738427375928287920394576810275873163712981347332421013412853952806805566883196664791973741493176026617151611067738992422350004095609812675382986602481917093035548829853598996641619140803246038199284766503459306541035478175750235829240558633837428950935120096192172754548069544505376974317698947065418437616206387792827696127752570609741342866610429529644248927640494588650860649983819548182819582682155017812549502843673171169596546396281492106391045382518979827409640645112023892329361496820919780370418676890960882410325675727837724585258960162109556159929590296852208646001880889460916318766070622895611637762993459503410018561448936019143232137871838657591989088370782315780400139624735406373037146474189234963132700888349951080503104242754013239350534396298800396005641069663235896916491529588805832328157895801774048763379304986019562416707369240221059935260254331019127038528223362617876209488702133903769613939985191367592150334999743873741716611312758507179007167997689229219607626616255784888332177784660698404134518528683776491572869872496810223383764422954645493952168767358847339524996243020509897901211446950960741716375888352317786185125506235624704583749201151166682006803359506409317630883395658850324169526354698289126975421255762909512087944268252126542871530690166731988931139427943657353929354478258838150403132126753768391524741037404224395489092142536680125226240496459496201715160484141091455184081271665812253125327114104882993331371638826121628968351969758141869222635974842392060604289555535994201329435014814609375807225028924128078193572404323118710417250958517645858239343474342978797044237383713421991362739338524484530714518207481838683174632651735390462810041831069972848931817212171931991585583451828458462462719785534657822131623712802280762773658496773561938030109253440680552773497404397032228589719626843676085617394531917834242870017998957655021840251925434812214945287768428265956461537428080623994648212430884085214792932325245402847373776502238000172499287165661294208397463467186776098476408088791986149258513778933957708135651077980885239622429813298536910464241258257800050773985477300742865437424773917254840800269816706712437043315673667883696059254270810984409732159805646609517841568110979262860112546925726160620815978929008826612687877121524847393618605336514049061326539699346738321015782128074977394050167887459306802614757693767396526986279472226553161865237182473564501125030313388033300678674332696710105436220429505707737799161770861678960676421286841572389235024865686286361359250157176823836362748640629498861183799725115269377818318247992317515052127968939041566479946229252116963827474627212563442216308995303215389649785688377548722903623802930643025040930780276828304579053369088364488004429463987354259658689223190684368179193750190592201058243044123305613450341427346193302173953167881924437636180378774484717321985721266875519826765355817377628517264001865791159610240062370837671311027549429014902211636208543926590030455564416652773083567037731406058515778090880729170738119207159820150322510692849867494694948735693183990023253175736027219975204557701713373629988784554888500032403588764988285246967409759326489586685894114214182947062326002829724038298124223127763477134999318409143133152179915294992370696696364145796577491808993160866221870377304823460808465925655234618986280285188053351746579923335190402499562297746305723794941631066925079433306103987767805808435862268354132679756577200532339062481653642943371297379661025815757320585188469704526955477158421892810774830026585262265939498296004649520073479122889895637869553820022562499918682057335475274473218529106209594708925484328501792635646447491391026556692569000255340192494697058878899391030459726690644897316700875765782317459606300772844829315221857823454305691598408156274319517880290722456671664399422481321886861214248205770702357765041307625779501013848806381367109555797878744373708714347522112096315619694621950517191698186326120564055556603365342624254704246332611991811020704958513386768168650427070292711019894513824321575296482467321982387459025278879348721682341439589047145378911556336288000274883825232993782855428742128479552049992906351398465171813865970696655404278084760395271685662022441289416510735285006066747976222100793471398932466616194672174906537897009507891335869306637826329018290805742205560717641150361441298691770466698923943374250074500054756455338489360946487187431015515280786857571578449697955672203212074764004300415984080036040833645056074863899917291283516382945545571578808814248639087695936260843656329405981316418003862149774754892809748132476021957716993807089884815814901351257908306252339440122717994932287501003117949048511846099314861512946967565750621430472431623733820156121854092101268548699289002165340093182055861380951705306544030446372738477729138807521505978295096899714601858457466650607546543605641863768675934462262058735974921466057221097089806663450715914740949209545056178103500443255582788257543716640398693478057846874216786894471607175013828283155344020863770759880432984341022171558262178147050773405960522152555124735817605234062584616754823868895952641997323935201687732392511177712284330736247376678347174338704262499287097079372734224259962368824517580156971465435006507294589251745750883798689281600587808574716348603862561772701697053055604428024563061789230866891860611622478142748855853728472554758545942485997804228027176000695555738622061585776781059601080800431597479108579667262957418029861173039457397793279788003433705436057208491961495978639783439643479407546415568458727484176866828536430169006423358523226052526011961892827749007635601753723972994925491515365328443273276914865151071369258103267851288499593716546654863232848557684753011007660650561633794476284943095203379410832114798809885528071621470504792783038491295941615359567357479380893046448536351905008291539267401033983238453412995225963920559437243623576420214312547452025724093802421382075902581233590792853340702963772019148260994518236141556173826010509462676931398970960444842507560206136381609052807904183386545787987888360006573151616550168417634390894742277914709191925314482775220890787991078496956163914242958412531304916463514542099712612305088087548968156530424381065003503318965585648565968928805580782269013125333490457921040278933582855646755397363354486687297815362758776866574402862610926896882633135586012009835730370187635671301020676881329015855854589548221793714312499294881179204859267606856997771961396234191218566876938851743480985699712767905001396013604079599145332319085266868754976490015405136824410989016195942362462823023281021024108321634729978052805151821110640302135057588171152316330764676980539760201584855419486755312686007698223260455930786402084905661510913581053180976743616454926684088268932545791380328605215133561117295068056156936936811107092314963040082895882846417421893864502929745354440935769479415113688402048722507883278323254782917417213181005787109594690957544730608050790431639636287899523081155070278605098493378014279108098811501111907005738074329619900808037861333311939479102069370607415681536276220075907229383161134930613761703423197988769216058876684773784975095317455199566313639553285464759703697770075932997192764238350929244383481682779229671302084056109211829394878168676791642569456039251696789920487586647049296997682488879350619407344992579062731831135442915001837348970311311017408206928486482623250987721135362605339854161786139657992808673356895993389413510919494615815006446825763625171178072221362659908302979409975136170535815243026618366779517503213179451755572698628640352217478481333349103932531697394543835784842917601677284529761394569429895043802828403985626670713311557239963191523902451577048680466907374873367596722842230830090064761735714641807992479449222199204738958274423914346598353731192220931545463146429144843495972974516886706167136484387772280702605785576444806881451470588982709247296754418163219591849332300155813423413134346087899598147452346065515697631810403995011938438645565915201164306682536896164287561406454592308083232901654900543059020288887673020518652830436310598045850233115899086674383102477173625917150017748049453786850832824959799944518949015609387739989848405042010870436601605698301599961894601274839483269417967885835509853433044117880308803583535235807657677641181893707760875551388224080882978675006902727732984773654971050036015294059338076044587603761675549576864129392390384489479192064556995156698593157187578559898960580053489427422385475964149340209036104130710878427049021495389897315711369100922393850587862815699587718252441398565262451059388351961251794686680168820610577158728883301078370635181080115275359815447240138202594682955771045135056590080381003413224653523887638800708928588920953996089522382632843473473399827331531240052040689771880849630055591058581237122275822278640143836991853976063543795582766037936498354601362888023859725725182728011249347803729169485802531367928025115831076152916109685980549007727304432571747982206633654423416241967661568150369993174342134965859445913806761758620012461003736949516977111942233531357047443245061324204696033922669119522601131921589157099070581764327149952790521233602008788302981467375731560381394667899682428325301292278692513131623218167243589457365777926032448968975791984408130811226413229419346470961847600347652939746786476531969410699818369927999902936994401272265769115125403702124933411378702625265484980547345855787621958024274941080267522818650039291931878453284569570651242812479592483736697628768038236961435952953325986790093842457666170996954504316558516025567252074454637370403236173169861179793545011201080475798673227046009277057324307629473472080522325789301936149340525441226394732982526148752406135488110285174839016481808842110427208881789374162230101561016076441803550462944159291813457245825294717245572050774612812695725405640186592997007879479339098584091351082597796564200027910413303995192281532892522744749147241752613431916344054909775090490455569430693050406290233302621337958972401126274208694603680780220603229691368981893952754305608184184621388372409568169061132737345314906712089989064390960649850796646935057732333763426535751309575033710940621390881548527029014278851160997950572901912434723922818968479219601291045341121477901508849808018592392414917287430641811592295726786352524909334077877967878970593059988970475057040816047357268300975805151339356817045573041046143207857582475918004887909226101672765124300887043112824317960044471590208523781376549012653778760445184867990128777265438193976038833781921879748982939979363713298761260354908291397947455512478408683976981348782847081568921417487808038186591691844118261616137492346111360424868885757459819591866472485137572199435690244972028650027003709535213942795755030288375302652373836376246930037481008334121634237164354685391901464052497085218866627465071774795117053482357720940284015280957554558363043684275371905892154498093067931696767754108531084437743286980198777967654373259757067862484337177149485574636195230354880902822274805954851895794003215878614061230686653749833525947832208988314031681305142169335219521466240850933731653430886345341036047819950572860412146930361375440352351812977546870621575808148077880993825633974320666532758718550595373646606369010518451567301528182908124744160497268470023003987079002849393923761421994431994327260389894841496748120095947321315582988004527066369888588065855804243855560072815033225916934627055523943958941405810526781244953280919072724406178857791435225386663137719190498711513806126492722145042920629892345814667323700639889964279334074089806413636956613897429735392969573402596593189923906642111042822594119345465802174962618007379497992403629835947985471486758419263181274512844281836687635881430634176360934768401784257568294291299100718971082438305632835217544531056040743050849338904147057787423957376235258468939336440678257402194298274248867262529020943084331126943553375859362366727319668247752956829623745899375731774994067511515823856609541169178245020812718350258386229150858314194529967752671528019477274093794504380094708746606369875871698228638972613358378212698103476494862441113697333783578527451170226762039798253989490197877769701743140634481557095349905115103031113850975702287131460420642776106567321097901133348265024912754922942848473918467927181154364155224891162786238487750151965676171068069134868511284477427841509088665647170178275106250433146597090840689976404003695776162225205469766029018019916955258429223578474393095710713221790428948906611531817056613794109437997389934500065505816968374490760674625137715346011309517186884387635925436317614446785148570657583712504563398736133792591073840715587915517375157065384226267343457855231953128377660119119292849587536481842512959774327178970076807320930484461074470110098889914502368072547893199137725335444257714360339400364058127019294978791988173274578418017612871822170774352172797335285574651456070740877946032776409697695052243245216057026425358772717921060732746971231004667448115272858941043863284687199042408732598776933212952665040109507774023815143014381510668997425397876522512322078693983188780457287764290635962129615133040256481649722728296031842326844539281559195700921965702145417727520958199850653800595886188491486226470767532044534776275433014929071286997662804633712139428219874147757347076003966185598065392520793742275358857733138658333687023640027194386468519224144188995404312104885031141681721968029328863742773067523556521960103827714688849740126961961677086236657834100719511519177922150171950632794319103370264055714785028847510333081670961605212721596962519050706631314564937279128846054836174392836702710254783171214683050164446255121620769741390197554326791405603748374092701809360876987378273294823819371964551533276524214006662908330634940071656214454498309713233855885722313555884040341897509737029782410397698529924193750489285809336990631841583479852908103509505864007188212202782554935628390090892293788784313180987594897545733818980021181433892250651154453515600630163337172921867295268543416690403666981616170619686492831500215126729408768607657275577063269447101661278843234941232794185226439573463850323104166554263099949505663134288052519298412779575045131918978657799991554376847953527139455170356486143333809341925416337030640987371433349873133245680074629492018524054731647653938300860526681857699736921335142152624016015928262759010798000634213587365252008441704954388009857320567546126512197856764812743931968233455829186351844293188123052926010510791999645130107991240825005960177144822295833880777972397330120140602364981934699605514506118755369855151431459003974807249823383972044983827108456134117008610537427663941269001408823275690128322019388611073591704039167544464795023973542756861509439591787997137192099758234934427529579072972083819727220192618812066228755097508724392674484074922286982240261164127114722008066634195032645926714535274482141185887903594093750966909949940378281435785376525820924691670990818385449786020939642804558935460307698353719522050804250556220480874360324157213713684081317918057848853205144275786491886246584060727009168210213658086139377461759511192016108425151010596266349905482656341494454278912345208385780945844730662658337898683235042421198253046300063650226152431454918704909612044867741506768200656812335864556329419913022966003732621537114219422352138197493467746890539765172104075941791771733508031731907806731812421402822855311416789944509264802202796669683413723648517097365463176629022710442632323664827070337053145926697023892857109530596917995972815550790556559817554847688330924177695408677313832773789962097065898980051555034724753070703606525113401811918628542731799763712905192071774170434136069594576382594748793179729028251849949530712594306619875343255286074779359872551121897996197413856648911140982114185909247213323107124375321953618359525403319880270517353238776667493758937166384083622642799191688060460930493785910609368705869771165968021339288578456673393625081379441312566339714092437130634296856577034605452752902545027269948681729494730873249977348907115247217791035796435103347676640037688486079363297191419218201668115112588617758064020700414500471670822202064698697461329855867431635688791420685698463784472463544588350746424091742676480021975787909452074320203400478255815654650573228074195489237373041556768206936667729235484817138872853872517813652034384764541982515398511057512903103390735022638667310705475450108756304934721123084342719104807091116717352824808582556969063684283749459695521781407578431261305556642907307880626960402065818074329591830153665903713827119427632084611620902258504433774996851122866215179242403926268264384729151685357190738821598354475505279580760658622688859136038031344961680350809399806565491241134734099205104473376908904376512269121017924438195873567769095360780324810995529715922057257477432725615182266802310071242108184692351510976888601852333785578295725499185538363875456309437957202881237726913947512770495021788654071481563779178082941258473569172846040168914130683718572178222515650964657878156700815166451429017666741107636192630779931014337490991047757608899332076020267550019120211557524541472517396726860422796357916368647310623585101903955065533987181025927606943082803182704691854574848458667402059883081254238073029828891243986767332483340376344789942955743831385580064745593470316496368781361478164653727202501096218105254368895808331683087557982459735671357712962809051359708810070978465345081340776136077876843027996814641058817238674823489596720122275948334289450116040182156582686351143822967298842570356271820723152547213011717683420788098544100238910246512710516993656335527650392775160067637515788562537402660411355803758664493087680538147712382544376033770102757296936163445733783825132139863006650522027591632501729304260581713184524461529636141069847620302634312072739983585538137079737994140230624781729388328089604950168960451002650964840997222468722354459072714402665820404538704608872405524810642801170294679806685387587539899333081238552689766350795589295233046760780527421871610566792318819575418976187509400021189685620917943691887019702275267583376018463321352592319050697005826527648036861874642587041155559306516943195364002134850095173688265067404150790538315373376192616635836351690573383834219510446760523756462245011207905444249143971940344729184497397535352444642885485491534833273669968894808235425843632285938246939503475338390315456518430571602855326132711851331083515003481094892551475020642734944538349944348120104389628895942334153118279333313699043201907009999147682233766538276153219120029117005048890496736802109034532280650779383693910188450210781045704330198693052426940395479288225855109427244010163705312277672758848207864832169845872615980760720219149068036169906404999839255997073444549392027989204960965445730029092442319613847094090079764933957659150168066882494003438533055915828220715315957112124371969627639755257748644277942663974720740529643050989747583652962119912060042766940635709334039686885038105109420584219836288871341894865069285885967694298204688682622552532003321488946978904150062976590781240438982263089858991332124257243744197270741899271384680677259364922319350604264282070058657930672780575100074165704949934103534963896672611916664092815818060863455349094141791806694203389505963761279335975044289678057391951138358056700404221812297840395359559384361049281023727773671853995946847089891629812488631942379361110134558092427434975985879646959328556547335507080406149004064727529989487786920795566815405869741381665032623968457506318313693836434773488081069158890304594271938989092902648489678471313782055968633097198430736794824204428489906749313586592473748230689452247983838045864472096773259476899127572481284954713947794816439210492122350251702669303889823736364842922004405105623639674003394707188311891171911918375793459786972421575736923516354596053316129342499874341529401715511463009785125624306819191473132370262888858123753823692163684579194331637573169442895497240429101237333748993422475241484605258767208768475796700156027124782173284398458950324821186458669134284151716971173689695577717431868263529136859793926371893332821820287428645936448186663804661974701639333538148487754083231073284122568031801341647593651696220104643993786053680376668025886695644934832683931901383512322155158806603244458039972414091930991613339136793042300409221652839188803906215537892513455234124076540816991991961016218449545333147872090151384332965574817765818349056758779290127183357564318116142044634569427581582534291341987152765524901541139644610783980678595310208579051116025010498687657959983670358420647226240219870057469250236005490978602820065759816824909603843654911607035903659406571043414669467425825179906849007991624238514257306152953953650303206289728560382060522432460348502660055440226632677009688485562809571295412251642645653860752467685363034843539480406493258731431235305385912577553445998506071693091854087265596736423556635481368100021113480238452008385549137923055917231515894977865078651649874026665810655909236569898832087612370316021904753384993965797194857742019694257468809909566325868245901705257766567148003710714945161972797199836468076998032090470776156865390020753462040226876028780809923685722672895819880645210198909685945336567896887241895584002315536708131308341541181292075063933832462664169142164232431981714731870401783802484363698719778300991335397094636278361231763182798669550134275634016610473490800365133252801966588754783166513731195107051902472357280786579779338105763791766507643628797586175045314492765036339267738932258983823532920283373156420893429688064478754570322086899258834924157782334374387452301088656024465381931651452542376399480083984571356933735273442911693559954541648374343963516402718284658755507987782277158087065740164653507565819650578270978003900339715452803175544928352163916153417666234666604044063690389528998591380722795949085263852446882333663145297692084446714343879207038616789148240770645296527172744898749779103549020202583652079459325490117740934731399636454382693042684453037225396657194543267785201654944927609014776582081273199713223264544001255125600927092418755340644075986054659072978590792738127857649478116075598065482223391824836349983679804969391461409331389027799390826482530921446742603362876945663353890340845563799825763796286472467676579006150413160763317356803775974481558931114171366510043916005099456498953599472163342752119769615122292828764864082236467496867752695070902201271074035588327965799697438383243291336872315584760706529991658559725315824432201299263834812741206515493626996082541842651092786496844799627816950801791727985490243024162293656089070424438716381790717385415264880364375147269132080363696040681098766285112644702022634157741234044867399455669374292665975144256938587285754455550423935854235236764270750797993643913112381297783612849881400817491991120958155535242139256212623999586527272356814162221737125314660325230710466411930317522134802669959542566513999495986057168201199221019391325807212961039686047033088027174345147570502654806323464653555991756878789835498534810927944059154041746960628546829700221786605263398026449885381885916866907712846233156312403631278303646927803286127557909758074537520478034421406590670912152934203622303758405457027561918011183772587755849372232182622837292535439712109547300981979580021776996686893415405727245299476355840364936952542866189372886410582985616553513765092442981993672681757683523494823647067953448101286707370189177927392502455329199014088302339021950325542130008784865379778876445854315302286674933654333112487215912085444084210945872205212692652738447450512977109173947172814375943378304979725053093427201551465548212907465091046087954430499403037983215011572834039728812815570182329700903297744578371528507042659765326716078820629168781602270435631549224157700082659611372866853802205462818287530655080266348958532632149412535739738714033713085696809918925824468654106129021333671185989642362539030028394229067885543431292526743150345835028198235541841027789907108095948745336245386919490321191104534198547934416281719166439575476017339479869791681820081845312171250665318153433817403269746492028374832111447079668282764743240404089656589278336877029875900095673670015666143923483931850410074694433790467274470213879280363594126611629849599817949168381875368251325392481563155544114104829344088592530721195847594950786033492179780330946112489682355596641156293874994241053667767671953629644056136003356427645241502674466207196424454287216327212269684183979846432703365612443324176251698758670773690737378980129031224562707651459758390770586205567336485574714027447401283579110519860794358640257401811420421342624943556304796012922221850469660460757678065747712919581333399074114559507067522381904951402606138384112817797127193674682906708716839366411105080846932153959844309458629480309632796731794467710111518609708047801166895188272413348502283856286336506107221306902812843698251967766064411154436366852752645853782269813378584581417247765925508581470816304831795259279722877640100216762257324061241485859479854137543500315553898301224751155073963582391852577802809213195970843785355991308685820462056891495715523493562389951222820977675654065452858005077739102391168579843722154190954523572928150411504442438181106944743591461422889708077202704368982639775705038119277658556733209510510287287894879313424567190517197546627312039026513414505895413313190245297514198685646385748863631217050231924883263484834949375994021818507187049352018332059606671005705943610948936614274018284985047320218782173998813580184375713265972545696350806988201151971054218216911876045778058959065286600032221591280259819579443125567530461088944888869509066143200432960303514509905397449277899111497124268886046892572483195810263848950598605193561337325753128823964348109749820214533205955777003538382512519449925859206194424687503113149603828718020456905871279075011972512000076344374545369986007190387961219241227739371993093579638751913128793478315352462934628222079837622278735850256216125952390750304257612411299778938322971212763023211284310083534627166400299059211522615916839243913532101565979490311601909295899285820532723485555207899814751079970913765327531517960101972654041126963644113034866579485712818726364794832755162324322215291300328638021657485510510667755307629806795327840774196914766615637478908340923899451533574154205485337352369818132800547094150346778499511384142152925642247070362331199938297897404873348217770175268485457118705127569231176135824611374934250098548242631449456653965554393015087845599819329028673549665367611578128462327967182377159126053827818650804530580032712788374487796789989491242053722806650573090787124129633988121206324224822265814539872846939226391085148424599703238214591515647042016055676897257813925625254886527392759785011366978645272064730475619483745925570119970368845642420560575081780389858770119795770041802147587418660502593500163165574363886863685005148293908270988805522360691351022991600563173849350267513988502044089234652167345635419591446794065638430498125526617962759745440220715386800678467349687529398473086611956738911481933711911424724154187396007042950685461590791676623078402508128555933844597046837055839546751584204294618346976744017818358304863295728909612042769479523774198145161123451845626413367720709476217365102482187214145133097802947652537044969975873844581840801623420625967766908009326004007567002928654196288636945466653807499944069834135898548974068507816440870189485109541857083819400568999279235725788804866419583840814290469332746167886556840393253287378462451306501430995137961738652547967724402451026558515645910379796970155656205514160019470966344590369961020936515037973862562483585135183547267536645066932989785218342481695846819749755244661760776643201006534616356706591423743468107629088741829784823264853816243242450993248736446201506511779218445733146285696083903645157700319711899536573167362903670340771343217095517474890340220696488217859934338635460880385639363643851131208022525730477933113751662668940769018750945709432866342937403751382917182282089032952984150874014310495097067906652515365094615375855583042931739078893369227485104254037973044927538434461113960713516483599409488904327151438257810652725009283480585131046136547607815886618705855931073962633849563285391871303914859789610192791233768037740541828132474726446628790858625221779068969983999267184062703495785219228251369298725183550020065171441253117906227706476672933396487502134293619002784590250441965073066106037706038484903144034282955862316225206249252962504204069888811449085102231754487139987649579213328314957252825462779936408311140041246104723311551689444868705477653984514589077450249535762590726877787570662017899697287059048970310039247331372450456625361195411219367830112184301923059750768426631042729158403164715690169245113364242581711519561613893163767830156554425364185713338640865061808039635563738431391149128905699261617831074953018620254496196889746623033591605850430469953055654861501031179386457134866649142910272227071221961614585816329008908699034061908513086860709417669666165816452609098839784041751075203966983208022824597205780982410732795394824148836842869960998683050408893432683628622920812359810811767661820524077346638395889184599933454291510633366049105424758003550736214370039838137445934460127130844830735182714639239796659824848664323568317688282346788716847422741027712587080086475455460747348804999273682149803102465390595947877138980438891093456068441490848783807632312107232672513278261178202740375021977906999737371799224126301103824115725358445509831813979539672493557367709726542331197974369301865251092688038442686486321148832205465634080233005620318031349201281493684832676475199056762255297242764355469379339754959041648206649733536652412529178436499277071632705698708635608028814716651141258868368630721046369575179112725029102414026802047167801094607109889751086896059868140621924605861002129946649900193098458302737629041977435868042401022272311905160384130850659020412788283447265814396167005534226000783879275939207846102060926583374925943291662442724607802540693492690948990003708860216460735954966723177027440414028075673317652532639642952318954668419831596573426209652019479145842834164583690277828529089091255406475765501924581946770108009237889309121995871534225633056426561275413764671586134639708120357279689646562395784224690407565036526859860043797098918355702603598755375151731962054596291153186545544415100521601644109864830416714918377009680822726751935663040312604488634376119566588396484235940484403982826458943414697774210309050782687671932494463339626486054014217183803054146646149087547651534604246388128707600950041123836667971170313462515663847433384781200046241008577586427604396084472583616188464241833261466337817816936959282002220555539230957463995879587417418662560269250079342636580722572959800371940236384500901741586979950697129109683722209070436576441980841774191053449902815810739781549139731237602179721908784816682962925249810011606408779495416569897867850791076577503517374455402482156223085144008392178856061175714386394372722943119185034274445683221839674233466983300386413584289510931821835357796385509588341350043965160758142522300234749536370749823393255060228751344961512464500476360026773118940112515848924240885748484044722175005239036681017349931498841752306765722894428058471801763950672896808228346720545618008941321634986081366471356591482133800951312566524756601312771591606943376457920995607980325235015846779163625667964114515050801859140383057231513379668675277967438205602500803460740667017685566492919237653915475932977094556553786342515122895391218881250843309305860027146430831258146449125613616256310385359800226206702143056183768902399629935792471079719094825658395923937513494270667355432658736809393096445142520461401424040904115377629326894200360403617489422133294526065056980548165429697125814949410940817016659388623546647238142998083518315125914984944372671751478039940509180316993251410469872252415551938612493113952860025400981643263202270757526303921126120351461792803678551995002380225004079997192077850063073018692263558831246197327316307434685312277910194075781762466081605773552265840434454818522752221096536840984557718979915815883477839501653225018364329543923430594601510970561735179388184157752686850622561466463936962306702372910816255720315993507925963071729661584465522334435137748491971462686209111058876993128740474205171738925919917579156652839967537475004402403651309801476849856870872810554028694622659710825164922363087351122426967665727182125424630289520153839202361088497786137650165372736465894127596344586675962742599669383539991797677115251960522632386422685734572064087167941534652566999776244571772921372584120319782923108739898636305314199113053838512070364599546700877015952976005878177283273540998199832400057659529841245352751975807225811094416724379632116926495372376807186571860728990388108210073706308496150505344666678631554259994419836562778073788839089279254453541835405933945040878047789739285897821982702169860711456986518317485196173444907203880873745451143347639379664412623678470874708025053367071283488269077909454020128792246665926565795227753299179336822272934841485621149620707783382873808018164873795345506125397453537413976987727215572672046872515093390892942828456194769377527789185866009106989219659781124765987018292887223994644583090226872560510113825592686863244213204811640314021847070122239926026010511497382023659141412038298744391653858328525844783549425384966791370202099545412539933641253998394031471218397449469294053032988269627690727996000379526146885155202060346486805705624150258567324480307061240370029181326277790120567971411363430529113630612578780547868009300815977677669689859728746608410677550919778188127205078324268701862854809334204847180975906850203179538634286965540783390903526449329656002088204648033167065526076121090399676170393451930987437071101819519667801670170675127411856517528160643764373304027193681955841344076919628749803242108925716183972945530128591995619508538668098129014269585504699360346824774120233518236930766571118223786070072938452239205590339705853848068940615334387438927890213188040269617888680542503092539469753084430703042698673690319591410483261661795442841175771726537402629436052754695661872994506623353605844438452925809846469944466510123367667534132057996693642766362252845793947263850755920689754885479064541934476548430819991313077671959974893905618804220330277081022741874556945529722265266711168620735400588518231095164452546380415473453086138186549899561537355171366424524265103088731966115647522536944697839399383387467084519208922160942431422501409311885059001470873942366207142589408064459356464906291970309069826060436036569772357739537359274219953626302191626849019660185921296731387470454235599002333141752274674707020557618497873113009680923396784294916711831685358626847859801476053867854706024398342910901153420624607307004118190898932844060944942809723388945419013506735641300885975795537477374510351447475601593690827856596823249100924157648921757611167267332350545494386125328936064113642224250380035764867633536043492923949602651419968519998790291066561830709699367152649591811703404639174221129193997522752242332184255717138544094727665563515941399571645868839132888801300275932344361636146734554888935436381315297160247415624306043837301783689979722871918795636196638392671721992939758443479068627723898107208227891865994068348307934653464347958409306706834932909422546715450823577436901728345541270381398911455650198295222929171629293100873031768578527534132765122902475298804573556077537191626817844981119880853767807854541072386697807255801239983988625922667993818849323435190967924396233523320423109399198637328557750354160173425764405170595282761324279823004578556503392185138313218838567766241440840493740945123416577876239228976593866526986008609357783339737289748519087349572798593564425090749006424092969386599984427575790691560184948254021265010106325164308292297715487181133426095364982459532357274061404449213960872196813548345322932290014926212592507475081800422849931960080821493775006553462801322934059617067618910023734313383910206634611151682150047681928199266247678015884744747834711462879124135101522059915590204398715914908052234691720250009389704688067199596297464557700853046900737088781325636189271641557609051746911170515082242525549531810386281835910387002118280014508133501790673224153004144461846053350319278012852184048031034612814786220751168175617542359793802527090021900021942761747552066615445213998905244386485007612027206258382707553125975175450005764270982699334240329589612468369012795066767026510127073886774752889846562082570554563652724712675850672807359333797255745577127083666771051564374012522393712836869920920297820300740236150578974673336813575991763291577188794221765781834486004084743855696807415270977219611901488065388440223132723635790346706775539629278651637983079240146362550541846644183546666042573328591969513984416037166878253310586892603677716185219859992356091915845049765668156831256259848795564427789234275219580738215664387846229586621291246148472071818733925791035418227964045787157469589979529864673578462239549915164367275529419809622638632897663945631466445653878283461042927341072155578382570200955947677515924138717060945949359772417585428836119652067496766988038848634252434494246481062350321679931260080797507402667952815764102086138722867742367743385806530088267531520294830604037328868204100712158029221228094190879274017337309244672558542070793652896903387940542878326569555402903828166732234177881781222166662669393636067172326116609515414261427275705113018962013360515225832553403222497302146462321746390919903904701679643620816222672879138629443397861356035423849214691827023408533317300215026834714522655285903813566391441499405371345311996816038706984317257005251017894574839286420341519237118408391806233332703816698203963147758911533733242628672767382177756813577802974812387318927506718927537207853330659778853519834385309381020993075114540865426447810671530385375124770452185203021955478076364190569877689583628943148111702936719969499312188793917975528906396004550450817136561404701054828277031804305287702045608974303210466695544260949163526313936830597900808390668669032811623084612411548384507296096550265692981410798625308776101272818993399285201643813786358311412122762998780305757866403183901158895820112413835808278045515215052198808169559445151978108766518065951627556087909880483508864209362843052164918480229619411844142956525416124264095327251392438292109217724357789188536237536970446723723357158008944823882062170321592780229944771636452729758351183597496524192739076233318241971283889564486742048724935272802157179844011462661473436983933024026253707286914750694670805755144386109054537080220688878055835665076916876375078795970854851785180459637629731800024429521789232585998518446907608283813779951481543102314279638986383763850466507582777341037701914389595872897762161393282447882551853914852478859077151918684079670278906656645950045775351976178520972557298301004908987214009146845608442241450892293615727462711363682441017197258087204591679924161979722701127052189570685132686447958625233650042835333926796002247454098429303810006207658030291742616338808785352564790357366079538699637015152364553319573300386423349612135537870538028791553265913291293214135114139767467768379325672030453554874956726242861228486161331706146299323908016905283851966345478317413997787281377886210593033749559795731168325467457231358825070667192771464590629575410793683481341340484406424580222270347118984059668576915496733215827975361105788422936276989956914985896894401353284291816376167297865867918043946480839674498182917151080106314351437606270223249003914057303371480779195201938162298447128237165491924004816666449602316987310263267620024747820504502759055898014671816124465967506886499004762364011663857735184278177525445775650182315546951713131958578226926739942646818559975896221802334406072738619487080376235587653137015058686453391524264722285283927764752604761098447559950615256994312271096403385172212871568555055957612872337494033408840035751673331740389618346316680816850404594570531002113327067689539924034176964305103531413792363275694243624179068327601282499636535943140623433346023861707038019005490715322064175659131177146517411980399774242193028249334719625352331333366755583089523590985038414143144733008141074284118613016975809100083402264944431040815267355383269952223468986172613890815930021890610093350344563941659821612377495345035099436594749064968794659286671076894281052875993267551180949691950851986366036378699262278738030545553689927418395915184755586515640271407065150654731119492764541050857838707725780606849776873003464760499601326236744051660762586869094606888855573513461705593371835843722214358737705296319420642891860653843222702853293330546588917030132994199573259076728708265832293447470163039149568962048052577754913643306878080983346373831593691005547163503991065122306410823592264651464364653615893096026471683252873156678345238646634959683227551363718583845609431588602122775243739343201316628830097279617875728012052179914761786454660605676598132818769948455594707203882526415736070318710460864030520711101242927198000223455876323301522936303199527055749217121733030833060496089376366568217875967240687590733255633136443468740089623583068747262356052469829552557583449668673558574297416285732847562928947641396945156497580819514478202911049975841912526385230497289182804394662926010885780774805803848579255128383328707343188182065374130149864299711746743509638161219925466877196211275123876788819736955388809286466831315706260631095083900209375150991849293968779347142459223155532545059078154674211780943607643652119673378380270778770467867119856489130511586969900776880902618151873076099047999186257980871466153229328329797795369633505031269833348062356093135412868104393479845880348375292940396591967173390991424476431542040104652778443194536622270615953301284255708554270088942622465420838058082885924988118340274890304605897122168480062559850636364552139853387062110506979694209737913381974536712967815339542257515325051222286449558527961841296934559156129628774834837287822676731612991445291727968046275517524173094946984691758935825425568517160457435361857517234799381142178550814512124914107187427375173965133862700637754453616900972727983449189158219289568831738292158773895072979400155267554902959701949727504247093922001557934784466902037276911359446051128755911230491477142981377205284042208253468095798078201885794192302438898388492660745399404813487307300749730744107218142323968084601145263261620865851188183770196388281032466265301196048127097471784076562740926230828263615852688584479007325532424666012601591288441496742600760030447883560000532668478578196742312639638667781826501445149090036511773924012888508037567517378788625481865484279869065894229481052738593409343270991944853426689489902250972308837457585275918625088002603186243743115085045746935562805502082241686180498064159899077893048363815327236412457487630264456806511605986030654780061389162473065535092681814069126003593972905122335422935391170066071587246452318463487982211771727629654698870500915447259138077222114737924638888965362289611603781929805874493614765961976398435359970579281615099740257738185183485820319780612405612628988003034951743957059894167440737318731843363117111376133163628034871087808749780899785894684180530483660675819563663706513081093374240127304335588256137271087755823097705185042476039256089262337110261734659409543798033503717530867425606776766005841146017669576518433548199568137033927984680178021002462707255028607618261146954990649474780291940252944178125070495562504116558284269049842678365248969707442034589305893908056224139186162552646204187459265862736591897490571689833482029816269864536907553899713993323822064059214286107154907296703211472049542436145872212127094900933888760026903396357892653832862393692933888186268226923806716584764181868445469368151706833606884923571176676665908521267448908051116058623538038918155481192809364894280629726212775527149011000561019921714247377052023016509198041712277485776100779891977739640467692168699908118185728635884296259306938026542985096737906088203134314337056253279736146671623744514550075240446100961010787894141764774012308648691688134059986837837792292388286143132951539849340172921090842549303631965662606078832399340809017273891331477270232299959252668375002926276281213322949970236209676398108999468821598123834223140543429158963373215369209269040371757197215763406742021465123338085662305993861149712539472362381569502038513315058783182482420463464753799035753959145653427186971843782598052980456713607693734202854735702021096058734330983918901112066871048288961217176206941217637376372731999842715191234646384930922687335188562289545139327568581833871323983878579360631356092304572422888606956048771642528139465826481906242618478712433063676752643804103853375928686786481663651841988734611835173834237751688589076798101813212879354429445795786829864506918685086368364442705954836376580949124309614437436295067908740699810454775246996219874690612272884055438791792848062075660282412452514588079262074122029076755209902693019371924266869846793563775679147315339447670111228722032251044892712976637099415963656520317535673910012073574931304887756771223489469333298484941078497078628198829400698504048331643965340961979177260942776424109969041358438708642597172817035110966987020491013725102369763500356444459244632321118705388853644955455791083115432494483157179469882182493813502880235111458982915577762083292338798019586449416817180871324592566265964506801565191175289423428687654416999182402198791175169924574116315374122181800642689550282483151062012586362585372587546541202649066858106830837203877723452133019524217964157017346467490877893924635834144852956796987595354642394941867284557555942183281186369906635191395506348222922865728413605356928101420743537888113699988894011797086385151273318260846385742239549168938414937970846066540420656904248484736607051601956577430944290611432925731505556258134993979932221897029886947317730523285363329546875168856278982105441182936325302740334591114649683324350357683676342924354120074872601373576934942344098168629559871689109117648362090947553261735225238830141437484411651457400097438251344768011385181255675662662000219362929170163327091218198080545212249427813135542093151533678204997293224752733683941437422011501860760372170887841547513151371688024458721257330714123633793278007094911772078234072750780902068464023881128559633849418604608159026069742257188818388763503789955120105779682376386976053098271657095651246529521001746612976737974193865468736078436750653331534989700197814347931589229370659224114913821069922505026487653295249314648939294298484258871479599705267873088691255163751214466684574941421539612299656849879065466963727136668392493059189391880199164867674888367643614610244763188759560471272183049105735551799864027665168974715778325713703749570418523785207451527218066355206385582362710482647046120822785381248668868585515946574989776422941163198633157354866357346821520013034160689714632983167055851887070951102706234234456924203206245051525499501386226118194364877295586830720112488316954869493433718102289070226471228822656254248674369475238815533159916550755282164993581506439510283639220075206605129894595325278018596830644810420726358798795941983265016152079906201775401314221611038201996946440677430793448265366661807150264113905306060818659615244370182144066890259711003022006926034629737063776428845177598978393397508247164343050027612876759395540380470070440201609203887457801513665704388924374019874306194690812509808588115557521626013500464409695252571758675710699156011287176501497661038378421888254864548461197801474795501308647973292944824582128060942023819556606337365037915028450901829966447885845699397458161637339097025673623603758834216137230862437518755163719000840451015696682134628864917320282880701590958807161624122601708110459572151532022640406149919972872586316721317623374598066912154925657473117539050851864427138614428761703106128055738595331637062719505477486192427368192792183483975169925990361957843348220647121281454084341881018128806111964677610032732607139327985333168331147507751304267579688511438815126161206305115081709253028512854417989272206524408517125843812780598127067266465218832968036935691547730220030707071024726510519213859099213995557610735660247749364877744795213114286176045829744530476014658614315355616800624268541331641279150354852037643568128774845245957899676666201555175435582163599813763366552425540383271716039548758523274851134091798698009580030991998724993338778677811156686743570511372091614562160148290676044032254861556125955792689621457826955016656425086350729753559095601473019374250464328413770324246533452497836359649820449392354841496226673518085579505309938516826328753035833231572162551533265770268569015956160582969070299560389868690290016392535568176484843249842146659096557785757852734108336786531308770259863332538338309137593899374378307732279140418756623805171561830796155527484261152216786496488619251059143639617831032514599502096592394561562953900454975837874188719034456834422001092870665470459054787434765459300199163388006486169809770464510111982435457233523278642723700509238219865354484714968785185023076118294888837112247249902281599327860599559972711479242136289302114862955652022568611798208845989890985906026799923053935391202151069850547121307155741809249512232340201077797332765996967758814241661069488070102704644592405843911912713059489841089744329466447664508423390699940297080217526329871196045128168992071538567420425883316467103202968234623650190645394900104587461301263982469017947936897689708540310274287854038394015281083089405302800216568621610070660871017815514158608627389974043650195673388090536473248625795726499632160328423810069349884305517573818728460887483479226554930038749764658693169999807120778141763434376114900478909328826604107009818030839064056580397547783566696736870649542080663149985707350614477515560904167233066078203960475292018463968698569627947151001528829452485262903346787806379391096439908682781377880496132419098617377729373035105448888445250129160701868182316125922740834605640951281122747839560894573073933042870935103990572058563377325890692524828101824250002309037995924524788142651156135818185227278442234852586501551876101641114148998943911787949079469380875779947169708943485803453695597725105103751569522239096257244956095475235016581762697264880335598001274469021917316001437179057871782271636553609539354108959912792153463350434810417969522485008408523799279776659636527182765875762569803622236443339732453608967994236533126773690781392870684952627538492700617100722911252470558466700153673009010039620083925410350124713018161823100400087250504738109917578534721724852959786588555151276947374663228900631250879927107587837426738590293995839460939251538597189550261501333912143756124489346519613409154166640777179248947028750497515494451326925890289837726536510748354476460944694185180375947635900413593790538129637468524539812219466758728577440602010397182506447170106120332516651262456158271824264329346256700123304927768900315027260240297596120612436957695876067696067666969680833128376511754353156474274341705597989038693150271381428948708131830292912112505555263635191312948968702287480080736293819512788468554667832271410951752709299034676322440751964475835725607317903646529025331977940149803037333944675800726189263366021359102218077588629804166002661394021810259448243933557776116033911625720469858764417287448322953668600080763581213620707532882353956629331832896071523151261150915865724859614457778656169023611586203199848936928355326306514411066470629028594592248736075299545113362545155549310891963452567371668655039167507644472117615449232972115604917004233065406926625159334796578973000812114734358551122350870580576784752933429788885573267261520894271407484196351248107970465347945852854892981426306445354028523385651860791568170607932460016359437022274883959658787756954239884475413923201794242006696878916824541568110579742810048838015923805393514338331817326047804062151333487269975373372425829013740337386509368656524675942255915088466440325562063205989851341823933091868107516671898081305665330239922508535518541359750702690415006119712028938162438356577223652295078754080486928095168190268934403534553724307160082667567745631778918190975720579368132176599289335237971562461347831642814138909676535287690470968318341753539200687987754918853678561942235534421724302145162316896247729399555769824579770054960273260721851804866289681083333526969291992356351157731468760990785587165139155512906698725233703420701187972667612157931292032403800567926339341411089592067056150795548232315369813493929605796246381743719850543196088259075372728137755065943590495128439525808759779757666216239204989512435315977902486741441308405719966344327675038539838521117280045735066567561672540497063381498834972032242126895702047860775045392426976794464116660855380509697027800503812789747226272611608898813924469217118231150555481303927344657599159198676638529013811387034819882610401857463332410664550143442487169635911785934715487519601646777540178614091133976553142978594730552509050394544826713013340219211152993858513092134858349608856007234778763219989602975118276089553701725058563033550154823082575063819611155809201074177532289785876365872064869284659444724092183735758459547929763203523730561559186808439141383209072697075797992365365240791891667975146890932321814743848592160677685039274977678130430499231064677259673587494948165508613879580542030264992240904757744186985946042307697172546600791302520554803740254600713016557992902631995534567016061759244530119955564548528878059412946492432820951906620658252687189436855721116261164476396615576580485889045537230097431214126481546770873874336871480916252752449941525299986867716099787617766183401263753606583243118689740394568158305412540010275316574476376790025217465836362995223328743380243316433872356534512310693927299883119266613980366921041475877898726181109353690909397071935524921038686546775997692163882946917394524877882975473388102823132267981726970537051854430717113564321108147580226229232472600491231129363578447915619785949722392372414165044648603716110702115256492339924226449987566063118080298443079097099204687862081165241276612613496261676591055278306059560502697116288934705296343134959424157243169231174886949298247784418408983687231068935263304754942499409758601434690694372265492346906312783436340178920028135232493091818298351831971243266823184356219801683625174018672341065188459885068819999422641066084239584499189562368764288654370427624730684341537241885760375763054532041154847768422948768528486588623859224809598927142212758232098440911144358990728925100428987364366720457282680488114585018930884845564869249882777920633929004905780111147549172126773761471548173083474087586543830029741094475440684887185665569627501539853264434932268598463168302236932169477558467937865495183027334746098032139790475798667190122385192894581568408753511067394708170168379899968187340224731390929353058868129510474648558021258953900064788718526254691704219008741379100622094638873079743970412272645224727494514671246125938283723041200506746433552994642804586529292028722666329475906915505203889394782048752515872199115812593305805015450721059604544083157230541103630814618994800880129319609929938100703734850526386839973097894331499139264669981831467381243293896172880349633678539229935695514035376474119611750294043688900255001929244326020081903392147779813366612594171617473612504989029994460542262851416993331507248613996019138903313786919772849337349865414980509059930591406755293833792593912736785168959808092287818706157872101396514031767267359673713181527153055727185090373503057083234199673488967975664279983174574246253972858490562152217106120372057608583803693041986699116247024009536037972853577986572126835777014946535116851922802533184970341386214483100534569920190959138933981554713000586028520991270801672185827380981319604363763654703582609468300276594254733846041636939893898177713909823589163232840873884536718892005870457188556634156092605123834452572537024327544252578705947751347213685236201084493412156228647172676289357743103038539466455980551051078662929024329199713892954964376212090995770564331618566064541013374908150514605357864352163743233442398278070709261836273020432471077764642034838050484214722215208304597470805578489773169650472896355060356542931733039799922897174524176111883967887594934401725506431152010493162795329457910911972176863215495628591761791931395129760124494421165253181490926847725727088458136296852458455763742390382391508154451413270007544707046402006981162291597640364888036845391092654699377752483482401428017371436712742600581904829495943190982252842589389073063000557076136059001498427372029675399088990448639832712587041819950824127184729801741460584072504289112660786068388673644619243763163281782359696816314490155999341759834698127904855696913765834693640886690014862671838658947121277164696858622638954894726697603267391458596159052615092537297389415225269709865847353041265041309342781477555235681390319115253661838817536424408810375038178212543193060922723230165696819347067864356425182175632318864065364723079988311762932648370214307301440974656290081937783551881824335983067154750747567542509356555583274800375299599707906152958210488658035029606049643321161245949859206995591294621742646058559578797739419808952674571373035492257468689356320212357343107406440161162204381734111914650939870255891306910411689031414759567286822145493884716914336471422180076578112568712292762183264700963367871435337138112204895591704919842960596128321507041513899076525255864977893896713391352081101931664552338756891256874173858811639705830209080155116879299936611918766079579066241920218112763264990039125876294099397664726167800975960574483601685633617015382035741226179571215234499725972987740188975705305816735381494906751051216989785928493304827243726193864878200520737250287279538310640866761340501409428660109880049224521436935080799201912534474923712191746064904304588256334158534086796575846891806301482113840263940275157619542824972503940406062187356940611242238950733504617945883832059412197201014179600168993629534782325021904261707201395082194126992162365185572044084260178495594403330936396462412794831053008499018818341032400808564183881950846330821195119833758146933927970170473098317739611584187390644590617850114222845517994853558588636215971568239318993071718090625514355516697390690375359622939515863712790847025399086807883517184700871851687143299938407491363318244607656570824339312561572750703218948771292962565670153647324750471552751509500774098613698341009232753850527201909819437781181010673165931290581361965595366371817182644803760209997819132093971860413051275321986835803051318396613914104667931892755513913268198554974307869142401704935995684095211567233838594339927078639684276425812416713806091203145493775329358378836259846140980659076403347602859771510420214791520520140958468180809970235482273289483793328267113228639879966678290920524511726091555434207904858135021908394809985301839850673935518647653288048196693373880403562841368440509820908662515925979008746172402055432519081658034462629893553896071461878510497468794067853111889384111692878382962242235926118121995786010941805035090241363028817466066669207433418960463010158057480982163176386469835825709819978893141918301999403340738321876400360083908443284383779343259140530985746989768861981920429497349209781112366358870945234407313697406937880563913245202638422962707126439586676242903506740216768155373187520231277355100930730502279282099042354272814283491177817002230361253035971227172286942641970447831443593661960218427307952515715304388522308943088554061277222618763790292531459664620417963818063110961571091972698677075069972774485766075542331003837487541943742678519898192980677225322736804569610827279015448997054361098988712991127780182268479137341129091832765163381218444249509142206403494207517436343595648405501143767159426382235664631986953962609429244608563912875614788852997136118966533113237151914789533957206433595807329169488114119985028546690261530320034209368239671943823980169511619544428018345157003836050718910677294887587684591475551802851869130070105304200857844444393939992050637243118633439017749019872988667611794664807765998436484381118428118985775293965652346271975746755280057092242363882205020866489355674308789028387406699083146205453908807873913622662507536010286552481625294811637029650452970454381675748788297911757820605954518039331581407256916016665506769945519523728635290291600320127544264526734655814923138877581931390205558411849121715597251805542732491712465466773532485722513447684422801867161218276198231074036135328284030774146809354027649310187548097074451021811792937442956501187954562749700042439957693570614776133882938211352006603146032813334581573760154635308503381391817274190820871285846955296829674730492904065209700420930537137849443591324085547489344212860431979639732416900638354515083672678150503917628280768503319161200785116691350779716283670598662865827170742282971816844169007527043879015049487229764005385349822752888218706674671848201996566388356320672574296047238938010935239875136990811371685621570683287437360486836754874822786684783896518076938786648425067422079610100528905293713600986794075481165985500547276267011835039015244205914028437926518551496924805485899601538943162589424669335312759645547051412975060224387881942197199868909177009522704326941342210333190967738925127018465353029163478520213104989975810906649322812033210620334194857433751425427573263438184941668665477065327273373456662531280035821729733752817280726994250096843718899937495700815078612269110311284169887181318895169283025211261054822285277515376828776486095398930891269632937279880580042390721833271894001151333558465832597409573207505549616123480124438420260431412464579559121954637799700674615171927428651261271996136670670621726822574996005502217210630825912900520684310246390597911963242687402846544246273598972869263702588066648267643149567260299624152839905539929145818352737865096125475185895810009600807361410867774071504337668036229614120101667665496478070540422555609179830687578510637873791319390234091578425900959946356264934161569858230942256986908803159515335024353356597221608189260298812204393356442973273918085531065563915712388927188906205541327242370629117268749591072546815132311802809046494312413540473444967897412796516844401315341187083190092808009385956986380209333905316959866501958810503197679808024071455452645856622099554008304867284976891134543687587342731337274837200232344154207395118757142895338377639224103045563767372395109886923066885339751660675328776380397146362581948479561139638584572100394403197090035728082182964377318870904445159272793734893316010442057466607374285591410230434647019585199323320208089743276865959113795522050732756586321517892087070334908712731780700855429129706364839137341013086311158547730355190199413067905209733319442053194766000833059350573234317437254145948717855964838968337174689830461129558655808287675875154158493347520354602620311477223130312780202881096105424635350284642358658429799919817772990637994247085934771894011761527528122606156989482964216533183831059180134819081008323305603516808214437056540738381671402546318236432340019218200471581461509960934978503841602980282797249892982618121917563422849656515241686487347382738108228812595805018333908410965062063850889839749317198459620643294105716193967579330336464211601434959859069110006645731558296537287279447697506390916781008449910300778736824032909735231385993841248725325175079646516016079211275600489955408348316516700898340645042040301279639140002338964128210415224801488388996994158361266256879266515324130545770559888186305261658268561866173017814142165526616337262923443024528134840836352026868425763492550626421214570541143728571067174622778619216287951460665007124289683193129853430240515676941625839952125353032032762216311297922431237000290824972687778054315294040754176528732418498456285603285535268091313598701090703143805173245876244280929999070208812296966907872285099979911290592096253820850040565026990210959806869737325042563644843359495679472614395472530302783170644064411858369640667759897787342483701951760248593271677833988008284852580508609026171186996407842169093219581532651415024857990087341116193514783488145328614244931676640175975910712273779340584132752188248257273295157996664551843874310957285249712279405977634059665049020332318331874456630497503102684227358205587099042616238808127329477443522318655294163094480834384065418553779858110136119978777265821388745701877323193457913801415264403910485488736897761422883418809750888873936997234546656245071307196568928192984239898927171850066275480283896964292667888901767805887226708937353335773701099330364153796274940597893913508600273564644730597438256768254049722772939420529455854180785456091942672959906084673896940629513630276216620096681575361315912235612935171609694256220380104647449627277291187312053359262927003699955833216126529447268508267522299208670921547126184315312120990319068111914532830379731475257860428255875203312264683519226146981051904605322176160507203840069094327214357102350156358778685614885538922090816085759952303579108643248285282493908653620551797638079274894632582211553939143979120323898312608129522476860404811941018471824035319526000807051846904272101137006611504889232780194701237600410070958330024586295520254107040239065637497912933139472274221986544604435157427619699945954052844848652197363347338137501658489547397405151644836858561065042748299980350935449517511707298867249692725694276389779670759650693765091843033967279945761443410699267670033316124214914450280166641355412405202297737783334121906192618359587451291826283409961385556365280527939601567159894074782475831124932877855598813974684558978844708380393623452684416536197801778459242277835847000445815553684367021742757144603533555203467822156867227017036827823494142279740515665266976690562482993317267317632454093059741174691959703471234251240961493083359822219479049748586745012058771126518150217830658299825195311442564545264374070984413361991614734870880101624590600917818537821574798457705880446698839687865446819303386035458485940416460980263411791848823734784657029861881405557797513838431041830840871985286223697648795764224968989249525665485726229990273344695029210576468955274817747555631887693329349263963444381759293654011554734133209994890493211037423386232976521653148904481774283869107708431823149946194689420817838727833504766417054085789024013134695833374506714109131858403713417506385178096572642725664910630684151261778617772064160272792201329914122687689534473928587837157715906088069756491975725081568121182795590254434747967496425850089203301251553676587673518432236170724634053516723707713388333240486209177301096298561051877066860380577279275979205514070672048495501038809277240901563889094388605036646193594528653903575782403433062612212420506270492866963730480013159444356233613428341349059721214364369192412027483413529076687468911646582670304313339404633846582316379488474491116820666332304949580224009267584398535886356319689930521103393753330517529433921424050778443638858641432951324926108249393346593056052116340749907819088521910891502922324517152609794245309439956411128355846423995039423826605040878620068492675546162568416688837016187985566659427498771622344820228833949380357667137184980681396937321272232470565811932033604518869425321675750444884207035378193352777808247828410859682737587818254883327929489854508837770913637865470326032243249597467436447203286503705381493985610437606587894033965133092339173947892804274219334443436241480568281931392919234916402160150382620339653248447384341141089906461621742136025712498712882861109921720535195815831115577964272943373996074260750843815766454855359981840642248263391109645723782397611823766138609077770093147118635718091872991979982804629154235723861383520070596905304023380145358559126487454052800768252988320174361371567771151333804221217931800717308453446029454677552009584074746158426500198212957633427603315982225925772416392418928533837054375474737124983737834084531196921266280111503776296870876458966983514225624468740074498784121003660784883210633255001944461460270382240458650917135782977967200718425213928162196728070792143173394256300001057800029862183061634524519262442873035035473564617781787568690686410232114287203446388715045229094571199190651230802372095364645063833035867180685590063344543622313398925500128286074979305691460061378378748153757908652702828786503954016723377657271956581083932522869902006682832379177990336114068596435257187697276786314884042170533794447496564002855384009927830483168352917534775538037579510270866309412149831438576462072419142147132024671276241299466089789261288299295387824838707981256311148268744410783082631430080241999252245399378900809105469469270137535724975314368586289647277390419236970455369184684843870099458652259393645584454967954998914200836044656307726948357415250224290717480535253699817844778893545706473228571069941434725260450499052345559592895122272319256507381255286682169958938577004148532849867268893984422154796196142662478007314199426848372549051659260400842577920195708006185443082309116631138004815364690308451213676028612147370423079542733566543597607747077450599297747574250893385581803576052622234951324288480685786742822760575690245522820244084394128862904449637999058520552029094186232848477907855511715972287818243013584546376708403119345489246209525820208741793868342516378282848008308044773520115501175697206416561058875398850987032686063546008379306683373072176908959924978430523045312978264317669736705512653330892205500063119405564075947458240986956433009537394720279303144418226340964816475300232461861730765888514225556847435056476901636758930963160840496897219811238484932360639407115342355093978482412101594211918532058640471488582079016652886187789530559830366981033774329051246007916611385200978712481335941295626115634957935760082051508600115357832348079288450480343485508182593351693580386262931885307695864356434677379435506097833392928956221510365233204032463721124844219253553862756230563099494323620369497731630323148018761645176580167479731375691322561040567504811703849570255595429398306462224567653773590222542267876495941711494970806521144485614477289789220585953235201772326493158737605033874428332881364288192602105480887162576669405770501622616163545673533870764630795830213137228772162667414200299115786124267052194157016651575771387737506371892252388504142773197454235995625372983847362773781303136204911482436297296148455543443508595626075459148422391449234504974051079894820720394335355830115236741272238301282021550614870376253692120388456175180636490498508625115375796395113322756479508743423028166597064478889061505922397883516429763399138343654973536938175133964573277477149452096845344972038895754834162367527473306007033697320939725441621082233697834658887344736782706726615147468753182264229864987741976018261880501251513538948037730372649756939805043534125398255948439835099102217306097984756155714905085918021565383390858786012095751174812609449114808087764731697207604269011138547317475989344342879209402711484065204638494192477833598085498247550582610211096405234580456742915910599278632527116729652794746565333371735806761994336147961338089379486582255384566941724334593383479399198345818225519421825641478981322117942260188212255676407482004569089656407782676924834190923317842742439409777609779605043049633633651805003370826527746354111154033172868060276586033273279506240614131958829108821917329540612328246648573506786606502244531461220016138113297096291855669105495221971678351359623702756648513419098920801522211448367685873671995539704800885826037228922114790718269701650841444732121401747877934064037101572222404921022332779831395936866657311649854408551655828979636368323459180895152086813403551114233237072067534827147210155654288198659431156587155890998984376127732525625450186996089271142388513290647952325390942630820605622699229061310394995525046142847425082725404540536390320762671180868587818993501676582752232774640298859136268706597217280033987590411435512416063603338968808609396210044812565850106467295924222698480656094876033600628449992331246204271707403166547221421603735337464184442314488437049814497054054387251365860522107669383916886641047489238872247280364538514294875017909397475511336768356370008601194127753799194592743792386107457388159071784102610025435981235032699050108112480263784208287595027886611490353230020006832024780474787890244218910843208842017668137661647398394750396672508621245985636472420909244331253144064224097381302332688741486838178086457746653429980068420316954619154468209403317443685891018755966193399510447130387920633544039014558958823793854471796568898776560797525822031190002730595677585811380042448103462445937935601234524530092205848581155805613735827454894482674890875994355202438550504870991034859679790632819314950788185865743439678009051965073497615803533826479772182267666060188794789479921946983724578986372929580743337949928233207736082404167758412173305793161198542894723586510247347213799198300234981005965462540794542726276826676564463321598796083315552805020758875351186572824583367373334332152687400029192003832424498225219332414147480627367208425814197355050002736863710066253008436314535224791157393411225968754983438262236570362512726025011753540030555249072121605450280135029938880203186197353789858752180659054011502598500627099925005851030838681281425056321033899349394090666968615107629069411686388564544177321575258726430479014058150396494388700020058885530349177930027067791906902244741769945248230761033387009734639868770045327830034564448745669364201475469396713414106230269909835716876714950147519826109051622768737609670901765621916954455495225794841497109644151084154808182846164795430617761316904693406838328842568674505079815980236934015424477107560833116212124663946858361848591797144107773377420316510538810640234926296982539304054781383944401930360053995499157356523075675388876295427454637961034233224774654888847905281723923911321374961116167858258854840180860248798713299482186483476497706314954385814781457949335221496136631416728077900652917245747757380968250755072292505489408659458504068081442527913407377893498038006115330071793083544461096865947375231849326873577143276173776139525543838856472371379554114988170652824386626726784435562238190571590261617180388892155522573220277899351221340942981834582588067023246123351694284544555643703564284231400192638138622390962752118972271676214884897238430203759481376643611137255759115442745509809557807069233993841824357057382048086725086394589460127520336397310198913372032166953214481203551130607915007716430621013179716797248532332309525666808087445302382763354563305478243836390663364272473258062537626710690633090711756612803834314200068864674816052368994145434671505824579558845094742124486086884857205674253961129697838852132983515735675377384265578829146002035123686469713760989814827156825841126427399177849041940437744335151891948370140431754564980681165108090769946191857371012516363035839401162456248566953144919108308818674414719392263499750515835583258030317618685371309085948529675520602611809063628414077080673383006127955314971356556998496680909132468359121978894123894560030263854765411449012033471855587814712092169888690763426392548630791972682404816741012126175369462110431186225913932867347875304428834643143061614468792171856124088101263268209907326388706732018678774068714505492550941218265670192336313136627067990254350534271879112045703411393450753431910392340578889281473181187402658099860264651658881011551325190536135586002823303702653359351425311202929344244416839485182320207289961635607777204644530625541635895962089546302582239632891091654484242506831563802712360294051914692249958289439265150666612764363396350687617625481473133174583021585556430309083419002742103088535165580889296821365738640476756156692828943763405611499150884525707843052991994451940387667431324210667222556889535688590173044137238723458923825263382347812427320995756625886994334900524118434644355137100558868901139011761887748746515075156901959501521997053568032236951700509352994532332358595345301609957522082295448959256202298756231487867661207813320084729095527274543645437642992226431678883576953215983510090677015388894948987414055026454446029864074687893071374574022945722003515466028035655027890104845377551191964317842277127531915654278313234690966553585724816284040040724516558560176470325293711802136394628775831025060827623633732327392804422980505469849744040129724622923262523128655206149613566602493114598532021129144770337636876688017434070168134561884770288585780427780671233110525671074264343424949846015722300878902216400318340178423172273025429749395349650440404868468672572412326999619278320945408132933519278285925000746467813395345823054289318783011845630882794310535606136323182357847987833014192833741493286772502695643617729347521839126002622991113327283002901269566636208266689994719127190225320127962484851825753109248131059877907731858372314923491807064476452530452808355529065911038059601022989925264082659372352476828561770287808567548810983107916760212057762469602831069474409652732435956805319401518213360351216813710231673470349614024961556406724273505181515089506685291918487388818337279301156891528714222583285005789711608291206919238827414046271983045247591049105918362114887788792707729819423968802385400412942250966240603915931311975144872674912929030917941108740566115804895426310390102091647340175550785167484700862560714989706403868481605410232618518968178157598189564692250979726418416081347415273895097833299202086979110423788754655174125529361640370722171559105773343640188033225807551552294932048098377756709886852911904643657674152736366317757092405591351873192796683145094635189813981978810125011498206758110771768053576725915249679322610227448915347864325768653424855595594999271978077195070908645054503188642670513527421508067841827820955367057030331898389294112622324697929909772086460747358308632289934953825283791337783946518223617408536352794548309887478641937024236365437185701590160867949709149338487560029719426426588292783866297053009014341780257628136086758309747698833755247051793409310207531166055618451652272044595477756797941968194036027932699608282297031414958090527345253167487099768048135707227995333352780087355753530006267674913779847516035946617503733331164649731221604948573864959493456975736805919713753666401607718758489986243195868502282535180828953488438458018110358466083402368779627965835358787774173747435305362962308949554328589909313274967434920990462171426740342220317105613445206428544987412308690398615234585884480987003990198236807252879422021859548085004185473037145481267473222291978604659208710397414368347511756472457311398421741916321944384772050660442098395200243678957689197237684661215820582101400089510807895518177288585730071815205571905333551219189472658536488753045375220714514923541862106576950565981071603168713913178960919412371401515863774357643823695422486804813328671004881915462232612400108930182641640183581439588040015783293895762603551247167214791615354611186230987248903654705299975100040740485090464648422287404654251762564879195196374508085473063683042945305571265040154050978448398303677739659934848983343975485450798545966310634662518942669940878585372186034638093363224960538415583601136967300058901013991460398746559129732235229870139030151494411867357631053147073871049368681030479393859815666003495593803006228272369796753970179183182603697149001170469475393765618691625574537145174316736176202337323238191684580721541369933888421604228527435253469017135193818612481439085571360822656973417250162089623352247070386913366304523150041325144521027067095856580046318553382716937213932102237763588219085330760161116084550093574898624326307934534702669618132441243409819984090773656217795878215753172544439317164225783602899920070185151955542569022137868404978112174312322037631869199020171486712185315951948933838567746223904885357506543488395626010332353330508711537590581035355614013791374645270256706238907929529764312376613079775973231540020298261469401176807626559420580082422162289615790518779616815627439560500396762801930440631183466439810412800820447643901155329700705457593246171690549684142756121937431597432189714663081982204913756537238708219014984589429037753737151766905382852739290328375449820392638737496102577038244610362906758904858016511481424009016013623484707210548934700863881843929081621657627779562739648039529740084067966368304398497527283717234587572362255428844780181611542967281310173447243126559085360447391095902576006250175316935223241670054664598806910259176170969805726772350694898532042289318727721504927835952565794701668640808966110737080097981246369942643799816648793469677998508193808649271774488633155337277182457902769135242599131469379925504229602456053443865918232794850100304840784376935171241988086840421612083464244372293290217051333733042020568635043099726925947898244338217872868692163073533703651358042363944108894701385612559009602012683688575840298048330439752396068305538961488098933022351527020323389123145996437900906477644331917456269644502739956197970041852134057966818797840191772462896177321572206559520534111326063647037552426156812512112870571524124879064561496062580801033640212970374895289768577967591341362483541442773096971279161542049471202665952641744059364628673057233566782439034644707494462828301834425822916692368401904048590842386845096116098800507628692042173466231855669200308762966939367375993719174276466057452791776405122027318421963732990511522764570975102646683180687923500476077414216807183341594858176517458329149066844739258074626470324055104673794051528459496481577330112755610836302215201086626110789707057187411407457761624399313506312866479499933001976642207875128162061032992513360162486616959181418039552631488512721792973500588521422344887127231612206230504080636585563760436316005308067477760073741967343740601043828104741446657998139560373381202101602598728190860212180048492493322843731790426730679250605455979125048702754130378380058513381129575466295890785292655157009227990381480181905233155915472300845662631032207750438539174633155371281713494549970291121319470859417732040471855734111926062371261965349351228054938240760281595211492459526471614882837189522469862117282114941819923185910240743011259913450966133710167686661812017266679793406429168413716044485853398680298801737711403469017699940415167011485949048452745985735603532144164858030108856553254371059064904975777891098205875934546924629786589457240220924774428202562690873615961568779266971667506336710525889831840562577049941084023119768990130951165635662444226794573983105605119752160183785246888391621205981170039702308389836641979629819380859131291842270920858456263524000430915432101875102532276132535516036506146063505199895442362599705486153054435685946559118715724520587128274030764568031879257675963033190525723401393299044748160459515504299948372567780273634042443321875992180033794927026690061170801720211152303272941673402488654115716956842041020511654266418430750296330447667423909819512464721851082422652417669515347687670689976470338262155072253690638802303624947340437459510017596020601135773180889990320938314522530595732293560621694953807699352032449177633930694206034996954752057549077240639376681279175312758066854111239282843563174155061584140947771646034622642201222669661888288612417694445763404760648229801881920491560043434422922357757359092250164433867127738313045400570495468407015643416786452297795118905123128281372305287021481588681718136318596786122297640510275913651576599040944648759742048470105055922502768301030191762235535547883169747487592279517179826809889673471525608693580743417461085322827058764659842267683361929225826065213704478493782521349095516384625129765495967064407851029380578202890645075057588249451060543118866142528398180840727193253853856594174183816710667231997378899677481654009102771340915117250324460027490291058994770605968307910814452626135463741567032362754618277500380968110486926457930936940552813080185483660445355060250187925982872049635152056977371863182087884609211552407385027698545244173117660176929203610985613063650021809268077188347382914393495983693670522518105948850766344421143496670929420567745146257449827780451961429442018360231800208726259980621079120500517362923422379448209532256194900344443911700666897562006052296614218298809175777333102923685672771379582928083095311305790153643491917454767544748245315524793062910811398450443708194371891299731780142299115949351131484139301348806812506882238686653073096896011833137297433675813471227619488472264571387800085316454119913229346934643622855562503242766928987990394496743203122922066723810219903293552540211913068361694418851061646666233684992970055653148211204971314787663206047264677058200907519792205965601684896078039388265066739567462956903295236970113902728061737809718847094875319261571219581994342270303918631157600791793633128551994891899967690504037546927241931817602190055535155763746752434353786879087643088559514387601401816924459488861334089332094176881134899132981068324252502389559107217411549659110778177279015175769546772490265402901211444292491989934694882397985095727166802324326619618543687639249833414213723780245313651471924455701994512367900283826144821466966453491765899630998202080783191425302432303538026768765905878364804780850476055664871268849640689176280109597595013916080369977453600989617629080869120201230365957706101580982585018349279736079308751570854551771287202871695299251105173536789111306291482191864739268928921300761491754446722477441889679942917003810885135628000858908272982276125235848193564063932093490819855471440614977183782350104344156590772999521659178234723913132690530341726868477853023208871277769755883307186003806993436825395036988357600660743487082099673100370869959442815902719390980362246430303154829980216623173431492218690872992070468894231496227216449801912730763199295227683663098818049692846327919780919198679945323647958613428266816587544578712814623697330870983519690915943634990071413148603902772457124292890143708579372051275883530820571638650128347700752378184157042579942062207330071924217760104484984517729554701182051606824133117398263249819835030312198574420342614660443750901624821980246338396679295545138810762473829105811932330568547437810991982928160343862415785019962962091896118552738527683201603375716884634406335918246090352819342407469742060628611457216953745711179650361317091228993663446729977509311236384431912940846719049233904023363914451940599012463707854363371666926227033695678206122806476593879970211631690363864925001936421032723788035309447157436323909505200406304433383743541033310662930325741543341365343506670788145536133254025379190170938608471702121974999189581198320481948818271176163180502378962911509664311812938149891165002572566590080533788990956764953428918671167185509582732294086980578793921912812525711954955375996625859483781528469790498629082353283934458212890152987673667331677741861013586845836509421280563859779797245005143442316108451783531153447009989031629006383145155610177380455997682301825174684768147824391947061614241279827494728684286498961854386982397883201178629480279636170714503114554018604230260835449665134042278398980661509993034912752257276199860901431073795955325577518015969291870420553588130889146291183151406560802423347156669613121458362199312225206285852751145807822693731357292162965065204536396600801130199328490060625197812610501019378824249720711812098428876693112403525190615573397200727494235444778663345126860289604192796364939516308639480807724964069365801542382627537150258630283880161785908663026188308649634553756811922691489336020651883315490499692742082331926248268394827964918985154511462635430425447923695569628488698869567341185695510833833519588565201486548474175910240902912487316260335486496534682657693164168069650382924693859428318479519117649593335152755274997182020695839657487054909567631641795280246065133168932607945410555429740112676434450414699472668254011210627628606855300383734491839750086375067034237286035974004886862768101684820673095239685793237690131527826444747095257239171693994044296325649515042650338503108816565512826668164250288682562510647506945410178105760718062490403655114067914982282184249065125682530110134751352291188923461179688166194060193182537309173425501856090696168569349802574696942466301389634737714916171787955770994680502402534964099900357418524346441996997977398878546401098514644528753896111301280153177259953855546864303555011588587861967130433553992734132105764697966169710258485159742225260748167887240733180900880824120976209017111434268009487068571265017881811877332210621058522028152209370582794561771139451028118556844676268536986183497659142879006427487916911291565393910121861538487777532833393845817960998374905469934208896088439468329289160789625646465824837731338346145227604909781831464015166450865387433335141166065763424918715576413201755466016138659062680236804657899166173986492506926622387698605828326936291584854272178077460077094470509375455937445494224302631522783370783267778734931778535470888737477911597300620649372475266601778094314240358529402551084021581366992205249101964287141063588826630102865065175106408370577506027379061257253026913871177958720705523159344347656777249547114305756201084365869318026417312696914012951911642830790660480530341199951746137725610937761880458257227693444347326091003122172709149028372478400718779726609358651944141060650009279505845311011311485292895536897557549557596232351614545140873772976415068157440597463103958228066204871932724209197008197390749017867951099992291348249270620022162093153355374773899744839829734305699543437922269640622903192278474525372655952269293691720240824393359733711870850672850853674815212895786197216281828203533791166178970785099521521909389359727658359423177477166379175589361798818518584507937992765463835785499586770623501898117064253072718752737727564988490595813074671579952180022063545434421712209694885930908065516832198811766317382436110088735500865358517244955104805769832198032851381450590648278990121977084320492720307084307585159828144946144497328356016614775158493103897533518308596273871509804192600927274629888392642717826837933108608448089704298740712915822190814226205730677288364063454976935435740126553657072370935425235453533811055694823033462347270931879724534028939481911587819213817989856452513476888199286172804829785831976181550755754047011513530233449196726079972676020138853555545541668926625792847965448719420730042954132695892420001515080268912268580318458463370384107758692713657769648095557608407082753611530366079927388738651664238603439391110593822759341906970369040533423085552910316136383622971649316032597135188699329330495901632619815237726345969664200583851887377391144212265603159095670027001491740583027547012752095345076084483169277081581256604951637104491524623573193345388621615922712303507855079018200978600189563288347955342331288328529418517079796586419551072032244161791857932623109260334445490765129598056829375769553706745927131624186812716165658649328363138879761491352687303331311142611273975370854756995101140525587597698937759375671691970522885041541993374314983678894217704554968785999530176003928378886612740718895309372926416096597459481038989670602988860020284913397527972564863989321475447812363972886096314470953974153197416019832092982010628949011621235154365755822870412251356528477030542836044875187616640865450291414638095101850509377857286298822620246790234314127602413381345185459832426842810033494083790329899270271577697743254644502497025808496592715557516311448405750769219495438599391533523806935214689433919090553356217550198351410515259508616060528921884159364197069202062616052837481170152886915610448922476838811792018977701664119759529110398171027182840646574895444987855745975159303499731545708720220446015912997269342865411854715215996396066765398480071242036429770708182481404940071818948852072641947542310720250573696933099353448389520372380513506686049942535493685970974191459219235192879953216636210032545752884718878404956910356118589243928731862418416070336882885399703647889859425260175825137702470126618528482952639246646625818008911273839160099464244152147626942564004108324911971460159145322704959070604412014222746804413034711215097007479403695580159706977055074697069873193268867003134228102985816428065148655120650664053932967031594934111695153521746236575587998784732076569501390351855293060857460447304025655251245972340362595708122642630214675359286718894185104356021295170008527774840000553232258817616766691309237352183418338488764272361036822835915550064652932967002922384578181297087616564716382452965066472700106736344161790457274480824444888014455722734477544191321043623908823677013595398561526158294801282892901543288424314551025435431172654863663679955549699645761672112702151372237957884516323305534092945321770132783465126772054610488903769063757661289979518167845641734866084322726676108925503161449264791972493677070773654908862038196171832432616519955343046290057241997405498256921497499149204248501497701474711217676946281523000558579427187039177777290329760832330153840452563330562872900328900047600305885004620139026449534085869888680602519462294036531701543967802749762712768732998693265128199719690706367744434147774612877018990710557663426789406484287411643193017621364034944322479150937352374062966392761522657503235517259926318116369178355589281755206486062895723693381003141029954258038682715850997951475320968891695780040047526238733736136952660018668796169088982467915516944724260197400059546321991339419814480651572843905826404032934731108667956639871025947744444519173598747152817289167491731213696879712269679093598520389159614035600340387435511671501361863305441471252174279917074288611658109432934861603957920259087924943810159868924614520218896589855743237180591648312778932687026381935505709100790152711344959604801869172492076063492016781502093233279871103204277424517408786311666204178563182020645571590326047223084987358821980355275132287972170951766857077639331825793701712961843986514410136596794690111625151400959611681685596513622241016201942685886351713034809127789107446017225311232110027829135472883991850846108054606864765447101271939847813592650119424000801406233149780227131013091745964479119747426995473752464454731582424669033796202956217591158333147854002306357863374434922833594099724878303663605442203222385197797496601677696690740992513901915974115408652220894433464432550060409828198396301399081405199685087396824026908695880610474172706194453610257726700365212099234177315321048053734488359967213005909823463427501206145458240664009964665858550443653303596758438912940636148748016864999593514682142315267601342627477768281418674898523900092706075009333391958202113359458170460326177927832529843705490225510143563431376980656791790251519772985819098070848157535275794021119144281097651136376040613931775702881556665456352716603484088409275886538487518969592437000218502089309286991293331695807128297804178467482220382017453570066795993722744486436419755329216930828357573369441755691283212883939835925662496872936176505668170244042541485779856801020992479798830540753131588194474773271965521818597520416551789425318583823342734068796427067553947088186386208682211452209363693515904339005756375900504877203553542634068360970641738787145146638068754032579097648977268508256799767117142111639752399574342833179132024887314192430267189234596711733898173989487022915537272390623044063513547485076565463266123977029323640519185527139371012731523475437904926235824486932039285329833199342971750924651028702392437912153728647577606645860241632303780443630662734675138570198780005519347996047185838023782645560012455899353606334302378086964268450365359172555150025917331675047723597255525287383484890962594678203042576678639922922608383162077544050068655027635774787385522431889022884891716059062226219037871271033862675268447425585944822935163240281841401403656167319533893717395483345487813924896241147068465715324507305120535270987992432620815634503012498974368164321144319022587121429021751354903368746982091432902762751969387038382668474310781041232870187004103113479362268613453283679196339756302703279625394564756696680210880186505371038681561979217526171132275869639848317962028124961491986338799668256105709616313305796307129476378360876539605351757238450540240187689335501890811067167667468273483371073352393789292506129099821133790465361019766258861366754027750478460780415488216555465603403272671247105646477613275403739781731046236721101012347999458692913869840733969607567277742712706173943093160174632447891889319111409085031043733897958466661523140400464553603686358106379130836431386141637442758091610977667647360751132929033713545106492189470567128736462489115942085191217214976597710495582138765186443387001897891583611081555535739172677620485293909732722928548676322668532991347959407238976818841302634142537900324205100243293249281183022892608947952361002611997172309907559236758162740052184260095035256999827715940289848251391501699626385599710331242036597327281877915242366029801249044215421719672462452847223014128958154832260439402381799334676117487264826255339725943399694983201488970474608217975229160400216860875558278579688122665300255943405526103971548467043564459846381360821054399286289422440523898835035220235971854020561048791510912914593955650194412094259783079857805591572614720224562417843538091078279779185384902108196408772052583774954244294351916986579006135708530721730353008207492507375069917949517221426527206200380185716518035026815552926864281551225375920195145910966366125178014505791803125923947173681189090050140593305751027041085951309639914955464341352035722472144917047757753331919330054836879845130343177036027385935189684689908415129266301899111558541363264483087492895455455993258872166351415139429328125900277164294909598625877409949692931768104856197452886695990983474851804927602132066529487564388413287244637106726650560347529995870661513800038624293167788712900825857777441152242848147358478407467404316487109104640242542745198068493110036165977539786611052547628108060122620847984075052434362562321772819644293841562941461789112317911049680376141314721320357054241790207074308321546420615334995921996576264237827898078360251897998542741250595680192375204057484049180807064620114718298538377256348133322111024355679213619825607451818296444502413779687487275182015113011305091213513357279897002882604494314647067561542443436625013433047357829150294810163199067611230591225603998310814313755176306223851482722616895126067195454100160637425950920014041525905577676217988097359170191298398343654849068290611235682800916379958874782054575774046123286274885938860593465621744518835601133453972764329428966170118848895303527161992667385274498818504923453448973994008682728507226674479857956268149005421195065632349169845787121074868619769048104903278439821599029176841295964040180008528180839011079820629108560285695913302889450414637418254170420868507601822476150229945145474444911598748739146288034153288616370230732856780383877641506843251307438801785114274687620980069785655103324804044665185322983636316419821125656300326424099268320236740858453611573233061519788812671481645828929789517387794568130921293262910893509960046369601793137065840688558141085754317834226711703909452156849088124437028661462299328929155287349791630412409847797405215885423709261624672863331730809324036662578615391283823994232672729713465210360380746533462730295354806660309892595570296199559840955287583070128100562511685993567969511989162104247653954963322299040369221974974048721487581291988439619488497688036045856001817776090182518199580441383837032824705929042835658882341675586642676244860662840371215437004165063426847919349820725552432059301146289153233476892868921781243478125785597292128117260788321974245395815345149638781968390725976819633316378573741161246644992664952107215322124782104084432418253723372634526619804335093898152265345096122613453202060888997662236282307881093320712892705153185313318979779776099028953430681226504157651326382472933383083281314024837741530259381584833825216502693368257425151871232243003454685977271988229717414996447113639929738822834234729002293311577921862301979695526304205116573787204658114345322379912745402996387985669962660605253236395427867714061733622966623363849233811656552420028799437137685764381826595054505438043352157249680179715010875565423645768524832883087493600964947718595258552285902103150094139705895221277572840626886208549553068476549718677078706305325021022849454637930275285558681820541838919486168249152713918276957817706252645685261780096495003251149246447336442693275536919453584765372268068484737011340127527207453892035009725920789900936811017960486188068649776188805722993913586093353447763270640710236997566074087163352502466223848313191291789964053418175226920843119168081101593762682997552049626370871791417336971099326610681458027223330996960120308539313382487824494820886138749407169125350318187840332859933663338708476782474194907974593610143845259070008833986989191773799085626394426965782309162812278872274313672284186422696758462405778436446367992717981872343230876928221109948408525101127001581475568299534647591646882408063776527768640849553410415047480812103384947853944279919421198481756162858207880435213271625076722113987472000769641021187568924424131528484973788475905409614205774306663148144373582929609326417499378924466581667664732448041958355504864708907008856286498260794658076730880372740721653314049075065089140422353549825629333681563918543034041393451676199923882228647636714367588073678417186687706337041905317341614080627761791817691278933278797118978766514789051005467238368973297461787484324975447757706819789223847501705946169306361383087529738435584899369425791448833516326578029131900608170572223138001010667079144357719381281433465672713513945924652541600560360443054184624054240256817547587290439027944377273134126669755700590742578641610044302149097396685613916259670380491356100038775362344028213165828105527440672853029389416014488494988085721287722329992098858947015260699470363138153677281094248984387112276347944792710801176874257870816691241201627851697137354909764751129801745847300847769079143185259530765194312328050890206132517735408255007755107975368084476262883647932515149716027761038276130475420517422122545581593918629328619499156268526912343110614273662325853461529733409213983519742670841870068900644468129733419480536990032571150562053421988793379328522196582689055448590869095840468830651170341176019953563602939628248965929521644649526021943591950588650538207456839594901602772865006033510511447547925775936604507192117743702191853121568045580765421028178638763997611905807173684267571353552631029529834578411192897204528801151367193860906899538640483831541926261642314881190759391689189606348781192432733103258921989091059434789703056650554821977792007046016321026271440787194858298971661743600511580881765031272502267695285012023736289309815629697940563238874070487220816251342153082421514726678333276628945413831388471585775821081703294918834828444423421611571475426064090874134841898688067540813672682226820346254131056248966510472074098040319293291530997794850108905444777791263627767914404508710699014160112771197527658836433861241992549574585076848413927994579632318348981351978699364677716837459769303917235412627614230776129873956040710838281821559135586699019542477988712908446429024899531092767617805713720820770260148740414988281483721526929467029773484071751956499010961221586059358088582029160942252111783341261428171185757408107943792632594199443717859978134413355226278476618884307553428897746869157745423812533773550288758365342913044178694017675760110960805568518275315735527986455818593640970558503167840362765387772148130703587023451408519292991558584012700316955282602937964381081143177561749403753339567795506032868542449778731259361258973809068976453126509229597579462398269597091447106293715426258744831876806238103561048112886380725567792198644755239254776351197874906459574857590639892936110960402074854547021073337299226059087033302417105165028857479541969394889626182825540231798518653947687863781623511031739527329431796223659343921928608430452198881665772915206856731900199704242808705571985718273577353340753519308324197684349777481328338791130747197699610685233882392611045715009245613301568795227289368237448487713813272739659166501609836178617847528908332282718955947225710648934661825472386910642797681773662454717835913506444088935871176874545009226787196833750182084979569822949941710621138513425549170418896275489355928891393813871514782302233270476637808082035465775041349770320709764309826888336846198914198567037114681450848308360775678164038006444458710722692729741268399082005780037731761110538229536219230354684079913538338464618841750841523146469713481816525324992669409039335727862219085119968071979884423562840651415966368733228734303051314395570751256004543896937077806274948588248321624105995026549827863367012624316759497129198220730191087264196223631059292987472369316101996881932288455943091479035858997313815832663127518785195933814479761815616584424355166742372207620715550660117413858111097137827220703356479563835744223099131454952549457269173860315901568510017074890261692076222345911230815541709621585269657396837673770542938728151951297407534009187114627737260120748179500991812611693652684152343998142780841402984078842203649070239101144689347457457920248694895558639786271247889832984885533869845126955569767422993685320114092347284742505883793426731163305641389929284140939572627816413991378325330328684381645553519967585010683747733870003151520377736336055548411076224337774894824293277676846660793077514052420606199696026303106288217607794873108328642798075792107133339900796282285580007452160304719801319384186749434679905437495004817979339708336325661384878919445542215642856593294385519171309521093448116128462513925209561244638505556364680958874498835559158423689712062615908642761543298463556137528606576975780338543415572005589990484253739741268639637975826950177783419775906187746622608961912055610949194916251752060041435369472598871957807063463273586055721006117940914337401567859862802647576118718366633775827942243872267269564738325728030128783023542302414716944991713358704494472408900818525161405794784895239826979812675661428024851468546174940829612804394792422901807585887575740673184067094577408763763680331402615684499265002895087218262842153361488213276128823057555015457666421177701302224811499553974195943881960531976029315649160314879269307923700652526127930495981470423228376805297532655100938269484797209246762554834850870605296994945244561658204388310411177825334054787081106108436563888206109105919345850568091571891298565756175209079896102446440214456259128790599294045063756868829032001473973395742612048437021589311627036051720098447104297760743198981992963106960323984139698920545812147958157606517493919819335093706212305340274350347115015331895825116238334705791481955572498331731851108337250618394415771201328729060004573113287722740019841336759806626754577882391958505796846717289935103588706087700350661066596026139980684338423985538707002179354753490114153086569830192295788928338315500562765701520801669084972326978402772567220379578058095213367141964145688662950109618153829911934198440531438445612763190205533284568746508701983934693365963133936805961851502503308316252907446536837233568451880066572855591266253144232181905788974574624779289729200109978710499904479149822254879249452877560135316796516545250840641782487795820883780940377517176042717335491788365544667325710106425908207523553001605221523370219189620100711999458797975076458358027870063998015464540234350582203128813130371734791159477251208601310368599843389409272349220397319366248157250873897325050109678837274286824135207264474455645373543372888606974010889160566661882508061658392305834292571596477806692299793816868307087258435088200432558879389117120143167035147078424863761765328897551811119181732214440195570065091900944882896173641120699755764640873553880666301590663503775840511527085801015920564427313613003669757406658262474823868880655882241930258460629137039026901326871568431950959087777781422691445592520628285363294724906593885375852693958259776589392776872198267608420341941230367963964130945481720900048857392626875235346541249414884967544086839498955982580431877053713165086439933786084110913085422735424262618090902150645383914904966984847953288188036668070808351739250928833260446754821674097358612200501392590338508959915397545745210932395325454380605997475695149502870672534190233546294046017036790374014127259654944659767816809850417547430168024489660270735490682607850746901580610297859546018603508987809404761909332018370419540076359912042448580991972566696041745240002364114445848920617491453490050488455466529815253956513287607952455628825789489099879809113292010703379295437920672875655758566480826467283209678001051488201157769626382987734685874436956664145873559405112068216762005397337700436190565140891465347291620350277198847231169253393687734910740522667278751064880157882619361578751907024238225901774601716503568825928619400789249672601085573335675827411176999499928630754298733066656641800429548588100120294993254452729287401625110384896213941780821703640446191920595102780216215703880725469330806817282922263346139613182653168560779827927093418514961781049998149067469850443272695304606535938980345374567287121094036833476457066806365237410599501300579029580604703048239997344778081509405455062772787374925889714272358676616660116366094599576888167567840654546824372073704406908039452472234400509517194715790112600696679962888044199929480875270925959224888734438059210732345081781649187826972030530878334680207093561231604293598459291550599045705349310603954960915770024667597207814722762463109042498306243326304081404640448277774095628201282722370462220068935234920891082434627964440930424124021086414296620888277147533704167579285509667217396789134295448845094008977241902000287790787680428851536851477881199885277346422031292361991524911041285567569228175254754469788656284342177949851198066602610344781131001110600643867807974813310891011457168172506890647617990777176381330592704742639082083039523666286717253637644859836208751219114265921945629146125100632237623334182625787490937279992829077535068898635840911765596195777587397640013128144596442997160185444363056964805183845163368285250533448272984027676598101599402814512056208828774374800507800947434031003829638614106096845914245954961265065842603585277198907958754328862939998185901922390064706602548404463966172868712381432650012968621330265093593112037697820728123697059171803016266424692061214267449976341839613717232430615307648073347887139433727162830450140074451061665860606014872866878783438577990391304341114804179813596384131813428891828228920943773589796260039407755908476048080111160051619771036877023441067022801746656541713795617826557150844971306741924144931256006257937053729536124472219989626005337321508320146985830725530323404013252536281925737962976958375660704350060411531334868519338604123432718424128475813465281474484255120520995404163628447900580224227414710235211622011742886853599791300710033851553361969557668618360782402932595638590297683884408936938106340200562064457473113059578389453263331293791996471833604245406200730968826689377119341269306870870972249100266800759109315783715787008263370291201826453957921131652555447607970936647663623721607116950732068368443094822789565568632739879722289866022208244960377860591748645093718884606491618118580178493983705402384153186977362925479661344682027003393753659292476754559821702953926061451590400208774074959857042304399283548525684033361289993251121211065583550466152491490219424692551340255868604181061678467508202195161078586853460276250529684657992284354815850857800343156898569090418934240673821747511243029934909265140692598148905719692309183433794941823237128619955286069198079217977197720590604673966032084906930667964207877427446948284332769046671319574051745720272943934846590002767521089490467108778147430113385361139985117562882175038496620520027216395224629978266211128138904434073038386135319739643623675587733593805300933177218962639749867329300924940004716789731870923730658693840205721199755723068132363308145245151080243012881991678680714969224539491279885392205568655478757040657892782675844484760915800550453021769131580021526438990058538373730193940478007645640357811530507831725054693515118213860680977033239219098260517778248089100077093154207692379279933867874800578645080654681922186778238845073805560131894071975465401217328147545234395010546366795591524557020994120617662855011211332586990450922070102599703513453036308488500387326221597400343815095022129922649406879921438620291085790719880671505797306127902465193579335607077614492038669711119683830609417693576485924768385902189577099852024998727298903250194815862741014626611645676108612212421111048874975240904993272608835442701719550305587814616463346976997315532408282643073517482372597580619703799266097195779704710076099275311259169298968064456795924227746437911726798754531124579154727676603780232949037096380255454954719237961858014361147158492903608833190282484163987463549113709183700255616935996384225314672834065672755408085840473706366402031833901316167361996901013913417906727494264130255030089881157580527142712499513873765384275477171500462562608847369316876169125300335888894302617778410255120226915254323921012197378865426869995719394073450907011271261772132805946150804860239801825694230466584396510122424428365713863734811148276288129795302528981513806660397696868613750522054294629802783908644661213006499880329320938161968648436639025047937969153054053043872303468975063727748480358281031023516493467811176083640825268345414751499647006123444238107851604628157677586522656509548192243444194446253466882055484687801484554345820929598134507226294849387360566668256656692070134960449246359164755698153702422436106581414109506855637180540295732035161831741328183241835134725371795683398942876487041802323609581760718944540433069649441442984573792422872428287912417904997650093337384388640446566412239603925426910081176741073588608114656570688713100841653381547922619084172552873140443401711464116916732530572636296797796519115318978475297068316812490593121454703087607790831911992240893497382812345273891824585217804523625381608915366766800154829580544739620683593688337496205584952114286604509276942351728659930199470678179797775634623925741427884999680545403035924988125508177088038581531489322139217676528407274707181972735326808981632053348109778223190583504753176742712922787294579189828006170555419257926887883649090191309233695266970091408054368949845798604757684634623741441376502339408690046832740573219457382607546093877243418626817531906440379343855646646041441455465689646666781359892111328071823128352199876895711151883978134957898412138396062525061625353592422441431017717827613766830699303979585273257968210475122799316532264232508959464916384106833908382534109468506276275670183512091158054135223274865490784211212070308087717943523282495143601559427500452270788104740348567777399881992711068611274534001622718380844847378689028864924906379685711522935045475487863018641325325236505751103982674281293241069431702691265990486273689760098263612702565220983216389128722105352051596380622384710636971813237045477852497258194231899455644950619498121336156884660945458247599111815556182411326790263139477418474376464759021785193307978339721995527514367160098718376321896042876962617906242506983291241091626115134878714907154910014993542503735815551798837350432231831754791036677976003684647013555326235192844513971373529668411422416671462713426853847273891929699808172961959559071121236560651168071505377006646973120273946397102662208782794779999808632921598339997918406291738534652413186586942441238525413256579601286420031364300016845704579801500638919561141432977993808258654421648453648493863242996756293526528434587259460853782747156760171927668601397383881685709197091980633448609397874897106406240350230636244373424569811277804446903690054147463162882403539585169030096058766977150123308015849390992745936648969755185944487354516665594312394900709676468560857251759935354614815325071103209301189124577803915359805652917761636197790221329626745524193126956603993790692512998764781899986617108811875930980370446010987395130074934909887051933903671002769601033976018302718569299233155407682885273170617376075712976536130007123720257352341055143738141123417921733812665437364015475606666510633566048211038508193388474012843140289031748875328662915034664438931488839813873297442540535637030034036280746123844999098327445708114737298135917099761647281829721753743988923170418897330258718793212614066784391498528843182887949394066049272253346760638422341383449674703049974046937088830148080717372710881952413084607703794151127099503826849054107236037627670190539532160565825259456131960985758146378378491315761061523989814427739039835996157928844245051179746192833901563236828878712184761542742227094264212693873751585357538587867042552180726653940429701430995343356236565631044650183015498147091140957180168811385549550477895676359528109491921979165063783662385336056882384558395406244303107846168479519956509028787516867302113458795812123137830420465705593871379880039110738850180994825554591747084812652431672260114665007822181120159937375056896232562571460710088222172355029399972594063373315095410579863894818348885544733939864591678477724293252261523017105060800619476143490202676423654787391266425815286762504310884999808676931760099525967036099817321356877806013314573856929758447389786827658261030250523529996907768928699384561840505871744105599366705077046398586917948530142802406137432073150283880175118874666795751523382028861299731146775401682251118479059130694825983945105454480989559209256100559109184639715644884472210211984783720754167132497884182472544567539429440046850276712561331604775709979369076532623839327294087462898046535019254057057379629126490579031641186004401996461177582945408791696341889777730802554344236204672912625232066707249493270698905326701819772800451455966182831958637103770263487169742058186472568103494498803052193991835086926008633318960401170088472511270689799464768479086122916497509472639785019849293635805356030468578255340117140935011071031140536871096143272090168676605630038580307588003153919089156111014199147658319210890772367271750695390304527488142464044430904240291450729868935686970775708244382032319540404251067514252608660018237606410241383042112456598003796132882190979917372162495815639172833684096099036126002417542067868122202595651592011985553492254015950475952607689790371206989553823941394661158354240333036704019778499760432196575431351358107944584606499632765002390284787535509813963426773856190677526700624788794305994049085549170180270226412760621444337774703727770470862119639741664441102964083494154047111143509423537066023689475797551160045826946321054657698062515125715166643015631324879849110812006711041608337610838246761326800068937494182106620895757639083245267231660456239313624189694012592102202957866775807836104619845603301389698825625468445734556256654011176120086893797586223103327116160511016187025664280614175145787531589196407220601730640351572078485117319164629446112645274770245622763293389527751354652191644226702596534457562231021092514463474616454589177292047414302569309686859523842929856906440231329380571875145607856513537671218754024191225686310949708218778373582631057395978421724815705321384607145106785724700374384506619478956697886786320171059903273237900525804461161354442880144277819902627017703414134919981272840200270657328043879458252119865270356186055638151395377094106412441984011776212256303734254579002695383325959299995326545672891925486829343213988508090753375210219392462041678303057087909816777252370406276908411610794739559591469556305699660831684866048406723376863672233402169730404396692645295795409674111603676345103299745230894995067755291486634786656373711053001782861491515122231281882810835803560410999183142707659096961598895785222473750215459841054076563706264063861661279733343265105828494030886084463661901227955475283585471021222840226464080273238976475425748662792001401889221788338558608486521083250850202128188561598647803031848425959210793351873888984847987648735905771778659298709563022422424297879619933547164394617312041402015753024856084012451331498242786672439463201687358170028593990527851521050091532008453190594407951021681493687067170927094370015812667944107050634508842300323770238461052191008904259223647522502891720394780510107770079672274428651645877893079704982816261125757299261158699851960571688545579286429356076653143137157108622225469286238465729756379135603632494562317662152324640069827690514774763728873500078588674660493434782756076933119974881437193603863780906784206855437482361515631754340462499715108931641889583893607530074854384854478316737580706795625961094763714591504500164525140439605284744594085837135148247223424221066255760082124808636943650145809361806596087274763946215950021030278309196513226063448578707673016358120796214389575931960733706718291315892015524372954912793745239523704273855074177843995358109625371120397813968952277731980857989943571391578382273595806624898588139525839979302422997035156888088913791081381960198623177425773602621442899085539840258577231908420393535542897348808135511335045052158151674651208146139143531315897075547363156575125153281743452494549626603710777604098736832387881499626762639751023518396306779632302935011535244455833654667623025690636921030856473111467233445296387282262277995164172602184171611441883096076365771614660798387202484081545804136873813926855882563097470163048713989564609088965689450190990377619808896125132417873144822602979930248311129114913318096050650490098479537773792260791417239601642451370117872196108968241973567395616486368008836991354147379950060384240127932391357803487632594746896730569605403540965140993732248821180103002675720978057778391028485368389035874954841899992718899674389071036233626306887801922460469147334122303183196793860377684646088504919507025498352486266702025178427348190646312555551748580882318644050841038811564592050129114981161970645243899162459535643650572416020637181837748404804454336590172048916057612181058767037469345589849865505081494295312981458343801980269573755510039017734276401415868661620981173511518742443390118995449865425851557258532554350036151103135281089491998593429227482091111016470399326343856134136278501729339668452797797222494433258848417581667042393501271610444664274340605495379807537480505927285673849103491709275002839732044661345205731526705075797849597303713530019713910265481647844686288946631451304424437307472508021238094902544459729248294016563447339400443025957793302130525868515412533394849459239979942396910002889341911581837849851777814630592554615942731781281726512396322749194035228672081153899110089108415656660407898952986486930024745754343962782553982287034835192741719355477450440668207383885887619940863673394789412504076050674212180283528830086357929787623786613166865578880532507191065699627992763897836059627879008581195931057690884390896569703611578770919318250679936788448812992163883818088812925000937266382661125586038300302757488712653317527581379900351156954859457482970828989653921250735495123125627508643304159034847437255874168971545898145348553278208635917106069395336679230678919276189137152525420619289218863477621113959543392709114937528134082441241537904280219217379021032766945904796621900540661962625598219276782390193659915748406573701912365159501051451491868147157824242011499659353449240942477937969097973285021627435129701575401558290564037893366350787171894495241280194816409932609327280533295745850793832160686730219404908088056294500417115356279705454957546224295131892708506133957956936921774810988621771778073017027471646637138441595005744535767974102130197299765644488656185101156875798397144188072447649693756257672121835189509673703792935857058019679611611346529964780887503383583546756527314343045777051922433031739536151893176749115035010826805937450511215220688785992483893698671702830632688988855380092473552825987069637704184481867119786958904364254902692133578585481236879388932601431567818178356983106394553868569251405487174459702498361463852575351891333013178483437339517768866847056706204614112353932218372493437979020874291298736589338692247466651070596832058748176769667103429496238774102658203969927451080614736173857748489069524845564669707882599293950446133254912428754697508593562973782833632065157736670010991754882444442730274565307000943671918817969906350501076253308712545356975506186824454652742080058273063943116162953254723245705588990763655644456975623964778201110969230785391348757522348113289513632191878652383590939571931069359187956597526014098687327186673539211950528324835667253433509937035918139707927932160942617581398017306698882455345288012864488653242199451191941745947126168764841696599763971182102213347222359147312274113663505544490885729837524039928292479334443914026433118380971105904945134338706958246618813314214811339517728909379592419870189931553421521374068635972101306493685858172946352912730411654620416462602694753103358877079876027155827934316243267484127217869352368695305147688477127778859655982480604485035965091530384912136000769091630776977060086869674063489645591696920673003947787777090002526571721080678330761900244363647537988346044868660982402915421922256895836533786921902163907679272776011891844465172548725014400069488557062179626056832734684317427185364846262304082543839434072940100513365211058820854305777723100986318277074254316843293970050493936880963442595271512281041350824395431526677455658411326174269136857752858518162390352538320591887188322718082422181980214567019889530606351288770692002141149601745558692662645149258702961745722695788224086663391805446052959234487027303898146137106089841542917053767457673255672184417868893819083690518608369782585445647990315035112661916536542740794386979491741580493509306292370682754079843601148289696356508190943096007957277855628575607799579473042868012152745763190889374802785413336136175211956466343500584976704671357484644723090569900104695001383713813636572224861960636354843574395335068165125631099030155566610172687830460958487324227111593045002354533092886946292228093272983197153395370081987503371366965104685351489685784945611799705309569891064563098131301215956650364006207912670810091998168961842413289087003836837577455306598970078566630726576872537786517349249898625321543452903943505247020731749984785355474650507678243022921376845026299946294544725084113744361756442718435458545332089790919058161426466720050535978679620395762768873740635284496083128415317816920347767109528737808689814661017096006729095029382798137825466072528062520592125099978588711317301768097018842779033253651475696752313607323509859245431709638267653649930733584729954999395886646391428646988427243487625748308045326472141372030885967928780653950830312270319315829944137845161896381965213405381316774764320132157874505680147234301288540563711127766308449154871088828864531392102692967539344356122918363790157489444978412602420285335529367603383136959540248436740151685344501544006049109775590018955696461108060606887639279082947699934210457432027372915496370490217970991149568531301026223046261579426551243394268918043961912607895024004612324339803909050004591315517815930232601665017289286010148147376866748953106496833535422590919802230721910160331554243295145393687922372429081157605625038902720725152696290628565221649038095881559014170706463547207128885109386670055095850061113295387725951744783900665507829227903754722636643364410360135910483974388715886892308409915577213217269674210281918648100416309005987607337687124104419118857183354715330440066127148314757690619104686691390038649382546487462607694587330684159635104244523840793857665605590811386577600222483337764213565358643477381836884708212128603758643875960156990969068372503554838164420171266176071208909141849196559236506539181211547619068213107151946775564042825946001229586573466120994957055388526281621419018299891069164418962416420577808697412751185670711208394670956631357990462337464916612560162040848510702478054718016883137693236405925437790605583264212648035028654588548945077423504500968677844897424740335438693155156985163983318347989011978370461948385751384306513384260933081743252885040660471271191360008360818807351041568071276472504928362637784323002068571176306158796723837012942145377940987351836777602441766832904855921971277270550807191687060078020407589481494062604673036875768810749909792589956497547243506433817233716701521466320302544040053879083050806722610508086440536185193430194995618427475714990075270051827131662077041996883704009807098988832293451471272158031330229041794151024268046795835437758693395231894204825998788148840761293113951238176291144460373591913130803319840771840345133541428791547354714138203291262856145131047998704768270311721814487253690088727183550560646109395400125674890469800116937195461158415405005470609411880980383661415379645222467229236354380027728229313864347843188185089179624198288627067683396443327590965608278421895992941383792587577448126298219980022418281303016428064490288593553850633792915409431277895530125944610080383913990465992415686329360444268769187708723838814299417323739099249281550925512583158240347151872368864552099411437075422071407888594101365061025844324352666490423590955739154848663272804223914668720175424337083191450836454182269869542639281854407752521397621423821537307210408498624496899518997436877263997487866490015779841716634836730969579196350023681300673520977740788258060547670069126167765546308193210431347967151890672192162333690742849811893823232753031947854641674389049474315298480328377074098342776251268236393150155360979207140343068231579051106243411099055632063489531903013996649851128688704353245746822044349848119021050159288594030299938666187536169191959411964705932146082566235539843166355001598514025769061195753018781770034261547985904014492839539930642486089201378520170342772474151488447398268842443465131316112091040783793972600171004123328222285469832809148689796567422122399625407475742420346970047048373423715825888462353083225631274943677677233410185615640182593391467586954299976391628037415326686213994362013183218849477395509443032238387796363966620915330132737400368505856696902426100323190745895303087676988461399041928789684247085647250552612739602438967004167968486566562768589869941674825471808319973282014016720908406717007516662956096418729906812345507952127140674785872654453881559623259101006046983645604898692488368845296455138957085266150816146739330206542149817412005250446865606793084801869490032207759001754374796534937110122050734248401821577737664643479727078339172258786458327308330701482139371117845330655049477199754988819838122677856639520310777693102193221935810845341937640071015830063372040150959245319192184713681588901078974591385575083645841958351465052136490639236138824877183355339870457999465254304702210379049796352741417849455586005717686442431024837144297598239538654667410080978391341439625684215030201828602224337559276443137943693492750599922058881344329295347216665363961356701922724104004076704295417188599222979339043249392810852060917507543641717091343761038828402496358215221783825928759407360604856121134558800000273659071387103303023489516574106792486498583817794533675725201846126778954184959749771079744243276536249100483051596884955496690753371033231156886473496534068534003266949813987098671097482067276009726072048945948044212706985106156767442470842288025179334454398437029967128055024418016537914452719777532644700549185538582098828566627660712157678997214547281885495936584516050155768263380017526819915495103816070280375943741169604637138137689787282327725276316845359125876340631465080349050183134483326765124700163504326235510444819748028916423406765219144658150828336191863221012212614179359814932727328267590295561642040773745041622693668702504428522473945776176261819539577771064282987561423540273932859277970748185543717741528083798600633833268493815649508444870816791095871322425815936021570999312572746759426572057550596608842657846667944527571274918699045136907429117001973574031551789437562142578733586856675760883989153037534467498643056973682546366059383686159279292904575038536287118758297732443414817486090908459344804143970207802416075781719718538341684172020613056505776259138400710040966968295755027052732724692097607090512265511591133686440441287995515700361938988812887513044886361722685404053592798464070236377644549304548420844646769859786570801299551768687938002868724248198638892005494329219791017432001095253381526067399778097599082690436160842942251688774114482437703887003667620467723621403766643218837393660270094759816256195523338006713241706478827837735253976062814244162156057427991102453850444702903610795785819020126467096247541993852108568553323616397185177634593628592695601676544506778915430273882807285610835590971518864273935751269238784556246919899748839972072402185503191399571702961868413842345116855664469259964275955525711493579343588113294707924417282832043601603521995316844526341497925457348774557986025317495667611579575257638834078493515330363505195903544329435115731420382656301614199572487951087293068282749820186656320708956182991396519238457027455356913974247314047188482000029689320953863994274240606653879020178969358657016346024266209428135988014549623450925942949367138440691917508247409579264770562388249714252565179294108873934892002325750972604898209161252839566397522107431050136275128941386692750404944310292616936053031489180306154222747719831075828719651938838629044149067377439270589139081593359676223349688076032135912448982038578270088419432937971081585476606989507571643832163767840708246358443844411825279283237555633026607910206260080148403298681987665744992822682856956974741262104843001888409124429823266485480776103587313816674686328536997267555773531720975306844128953283670457080999773573199283297316355791618774972307001240380742289553843455181795986705906294833274057050603530504992258737005260348950013758750635632287667950321962674875150280105983879506308691873398287333445594809408866010915943952932906503529333074481100436884372581495215334448925971433656458140863835746504516878968348360121253051269704124623625936174079567631809152980241558360890401213327333954793605288337938462854980408888420160963939859423200790697192168489153553251624633177077379309973872866381701960309673028058420270680174138773425011749474887794440937938851639448983263415626647111826241550499488174994334430049030251293053065772364030194920631276742290548789596595211019688081419792813804024017116900847008232481399080594418971358231000401935346471450606273946167121192130821306163488253127006072719179628040253465241289016677507369767364109285421198861017114399697011595253918406545085786012631379273644778336820056224438855958439738793951056839982195148649996581113534110866135549918804773159593894322428967874025061751174364592687809245040594074259921506849406736883389450108585345341322991670396933341869340558276891737510035229506593449074831844808007155314020863150439010777162107332734838714442256019111608709350245361443777788431755071689321286194993230649247797337443844910797300429152333367386118553483994659070111258277018095973773350267988441491072430969843853799528915412645802927922194060716728836476607465602038839895738695106461237509351398739801006618688151658466698621553112116465733794347324697825239602039183630316562247064596707687538851373349972259345094575587692309286877329947477459113838993441662160327957244453142671968069464219139117201270664884206798063274018191223349431419936433092753925369676784350957000624966177713150015914167042118323202096132940159434336329552118180255148101535606004525423500719343441922183123293857711401458337373397417093765572240293013620936223046007133817270797551597046525065369616029853781781190350090644838201568743428320112259100387477900420656454500090762187885758059931884307648075502157684060587554083179871361477622311578713044743337707570257595456905283494380255718918449895459596499089063509145845311648738513633847332742136391600391678648083026500966506662742460780033087182813859441821692473247349403822177756895282760758129941095488283262612543676480435931611359190653509411148153607346602541063462945860257395036586107045708446907321147689977480521175879253763783489875304674272236419783878916329050378610210178062299574247407245965138438117728986219270761049062412178313610680751055292178463877428387669040729029676126471975630110903579663899175750512378333687152701746794723068944942684663544963519667601339020689307480372217540564797658779888176248757020878153749163789807903042145855874875176041342816412093058598082700129084730870416184152139325903256327507309968084697865506481903645658281891445883177568339297088019599116292428027819105947945875813367847469077358500468878932019701416425924637752612788057616764860991717715024219769133367529490143750869296879963226013139796655135080158366793544853904704265365889938437402462527427949747205004496494549134402239196739421097364510376183377207363858183833465921406929013216468926117369565175486304618396113438736457706008054221125464649633212322617318876648649884749250793369937452563528970853944912147510805648772466621972776340200251714215486305175591443486391570308940484246965966971525791846248592565705229279024627852039114045225881500019566804547543732568231963811103342913756243123024519266833413228010960474862555800246180861282998576463029154056560134482453531514455724974065495674187470168131682986122918505050963480894641411090365966424410131406283869040951160569448118354204103972471220242007550767738804011568146463454640263472589563884815589932500538050164840963858650353848576422203449474735993757462918366615275924404378039091308047288486442737880799726585669526929181567008940506689941452583745118503512722546731388474938619339930478715153750800734406871263304553880829987700439805240686433015698338133251564480907851033282678746737469261929796841161466800714055105355674910375481225348475880019476712727828032828745877641063907638737893600922424746178885919991735272664514811489713094768145978997118281189436450791487817028435075857800253078818615611647425719401980218375134535138788446963126029999155008083880974852615774421452451023620881010587076409689951203611733565221072876581491623569389376508417596330038465229801019412568329991375090339805507486338904084920996075783824722015802606552793804547706690357251162429342795278092787385419777270790167796829270174527678810490150525726695380056560706758535676094287280774267122394137653606686712859102978709333253908329016672182299453314688233203565082105075285556425603646940819660240198816963854907590151996465870170082459480630974503384717270892380614371694445422305817436046669163684655484307337804179228938460691149051612658564617990292351559117383055270468175531344752135867222643591350359119591773922821501338886944029616472673511298437395111094413595398913691619493848854277041570520109893540267195651673344415265216489238829833635011528175991177113387418029284203300378806769633044615241093121957518516575287944064834901929284539199614572586899324346250033159754934049176943961048171110953054751220713234060381384293870360410566650523583177074168390519020622326891937190863144992193945759438627551305823022321048350138909711897842661258769394909053187107301251863350667243256318172922701551310429783595079074297293992462297055981167591122384430271786452315118712882370134653144605398830262981454286598460112313853698534424538782260442209663684879603150322082765493563804213003642426535367791072215857458313087064444768770802875559406155641282808324586002737504380402058536504424863796397333128086888872079531492766487833136886692916898335415290635403265607492414290360225534131945126038447342299428711761472857103954746890086493610242560540869323654669907876605928877529920559902206809156381135250060869078325087780488039932785342783157572719429894657346579271790024438844096918725473721609676352659467809563138733768054603820170763802402474895382990144623044103441927398065392493542355313407480113415416103966513914112533822499511534372785347319835744250225186523335152945536649238227884622196190777360619743552558609056154534334204146191305469772196337589013522461165572879365080697703703282179735737969950670136678749865334944109402369636129279398742298288471601323514769937630479993949880264140369059470350537545419538171575611153542359350309710426675632183984340090641836217396860543298658327553825403897874686600963060807912039569328196776777761632138614337850093586493460180714716671120338614297962274319295845975606943487626735353295692502921466044075562197436040695332809749242332778633186698660078973279150810577600125915431388178212404758335447350310524028299964062398922063404838877819133824509071669789630778008151326794054675270891233565042539325226243336686706503032408954845560382698358992574563423244596858350983792563130993725686739022257438494238775793840492512885139286228029049743741226962366584811074418191458563771222097836428299282629965686793772103491394888311299842657432976143007027886636585137115626655777247682433166317179279308031424676407900499642966304916513751444007670638047531345682784528793531870764569069357457705054857624686408580706092111734623562042061329702983932942367872675608477749486796168485367713563278972895374431931061752966509933054851777553612482559583120475486745309454081209358316285994061649805996282972034587766116892968683089812096971074400890960908409453033824962682608874224643773164927309558445060062560392062311314544274344897302430417401959211622212144772098678594150456924438701186256764435129634712668085595468728652289383198657816213812734375383782639205945841526302146209276165492518104691525737514423700801688102978911363808643287019720725930461618648575420176291149332058730060353060595236911086243677145851660625063320471909641027850983883585148126453802973424470483696307674252756675054572380332221940057875697632480914080451352445734852899179312478902564432803897722329026314029252711874427532675886197516265105840401743937514478213948087710230589943197207385785192374075820944066037763283018383674375052014973153163592771718332809143037274674833763166519989613239705661120425537991070441408033314854325981229087991637216750404091664729917730904331822440338352188478525142525525811938931062298489599959075662139578142445204795534662659890399924672743233645066071706019003951142105235206581043148220318771941196160336626844610990933993726098316086544625711432221559325259575518543051528517605160604692801270714237002825398682034409296873238719257308618469677873043326594540064665412447327827401740373906334424433233465513799080216043075984164888316410844009362595442520865551258235574123410961274831915649628473516207111900076186757444337002343792706724892123248984858318122137455608106966825717680278361270515750643054325703445090337932975974594310147781934119979644156932179182181531128996078328102127775005466973356001525734541797629082668183868939500166700640818100900085054924431412960580086389428641709704588992738597997494940738670065539031266907330134022619616653355578131921934777858921831311970859728791528293515446056704559121805843352617480647171043740201048234231095281106814902786707938272385893385799557682896689039216370815532653937594499320504381992460416446850807779647138689528337104774246140569839582462733333820849783013045873668044154654607311643571352166879576430134651755300131663919800091495348536257983181545813920918228786244301207671419413215582098092121468150472620539404838736745804754203456340154411506593376669418643841807801750144399880291419656268801172480469728445885898812804010925945868587788423179542121517458714961167836629627564794897003551344340451121487668640343232737323123637420351503122250778186858066359347000674197512272142502222997037610238928125870190869233463517992500865916512552954876511622455801964623883875149380713521767965660516319240323516491968795162438508304004892496575278236440438432293217582613915449228474625593301696115066233676422527200650339405066162426432310178492398238983011857138796099005127519386904414592954021078886570176771662649856109090391894119466458010223921609082752390219772010142663821405313087797743301489953992336318293759756071347779487165054131025113074556942359101957209040681085533277093906289596187489960827297903022107575119734751125537814294360755677995021655123215200974536084950552730681527908972724626618665413062791274320243138345271508006906067365278884259704949773798102876102680547837369922758424156002022121258106453000402994828603101857145988145535302852463713444298246095675242549662904103970781953319815821315700076067885764994686308593128658860275780715836343041991753119380677650128653153371109429050319567264204460990593093910247845216485736371992079317917489923733263302165321727474428940058800841212291556564889922321326728257982736506585590471663729046504107706388713771658872231762892222966053345437121159743182656887066896467032519156331298101508990525805478414675142238437445349441078588035178691033195418443205294132666705812742391444900733115963544526060788134982774865676584652419101807977221736107200082796249168002509707869202292543267167642552155071899806815637132340314939229667530223869160313815402687036533153941580318290055411841818356948536270761373647583234764097130558054707949373153147096322359515998684676405548678363229933053959400402360025138840693941832672951656288617860791791067250266564257699857974805581082892348976070751415206368805822265341208287001049330440596482003394500524304524404956528242132402292537761194898568713934152316434095189531367427845929074246382313255749167029817608099263306806981700268441165622131563887380481672314242470345702509976333482874760201548941300240977621960177411721343824909576717660927442560355819520080230892722269880769201889379542668490674045117176884185453285855045268774665353911714555002406055690244219450895767180789304235565691674500778226796355920658655446180547716189733945479683133837025915375793715789056016527849176837516298868697970421089739735066072661639112056098190117274554861921640018775792268502979314183169955682688608710643347082563292275871496195738219838863092878153172631855983538175372544481338908664861721898246306481028748247976557158028038771536111514428163208184673399494197539450643244427106476931994091865012926559842574809942607151772139012717644595346013204778169305883863593099761090209372409210884573244881669072792167448591483957969553122175476651395149198636869900513377775558694322909006748832988346000106992885920930916407641813231944633404545563675771858074268326384289157222554651889623846910299747035909863441899310495908662254097704708804496980145179473578323810415943155615381989199942386912592981261558176138874061614839773598835695545975487972419596538307447427985055529978575999097969014962337053755972779517450668971761591727390675276878496016075730583050130891742020450953224278227528703297767540661124735910459358354026188765348862750270567915170909902421017333564709744313287573881089867279690203635871807245272855951318204620392934847776682555179584843574689026592711333927311500454088679118122246516857330739764307497435510300971085389710452685622762970231103870077350779801503215459120016388800329966987847133067879137685026892429735755520819696355166468544370281533684969434886914763046548297795419403261292895849765761283958227377587371664185998351697082329248732250944316210824981153097826141292468906415894027626021927759442909796408813810352474026725267441261219577361949232573593453821613524351380829879643595971126666755833651153074213517179497500747263452501364400930552382897941451391660972047253070009744416594511985829402692934732302513366175595903458158789734477339625287564587336672316413885026899126949287749828028283432658061230954146431676973117795184395705987860560731568130773498003426791166384946524730475331091211088473754510064451163780353169368546358091427006622158499663278581710330511946903497814094611175549862818142440048343168308590570407571915311799717270630876529322789207580833171918986493651876151155394670647276863982049462199334893001242665365690305569184599744453726646006575312406577053696637700068989924125661798529438352743911481413025214544309396785715695808175465831764834017941240232923847785876668081334086810948096856039757492279193135974868798869572961331697957995699889678107611854840437748713749216897585283780774774881209423558850724101212815416122143992342428971007259438566416105096254557455824321871631394977266588982956310180826635027250971436171397155013379970386196675774696815788471552629254500417167605577689308925606490570354090374545812942525452637897683664462341820577664691574589795152083723825196994779553396079667571579309983639059225162228734488984192062620046083171915348536631322523770298028217005033706805737195571048074173740720819810112160131520101727298233253989832160166519649724635883636717655753419703887069675993655216390196145002697115179702351514904811160988523098412158346413786064263963022914039571131742056597523542167489014125147573752529408543254185789082346648137009329396490088768035175662423199047883603596007975881422463539594875123825454312224238076070511217984582358642921667212153377949459626197736175693385614590281231693704445279286806235963517160863212361192272559019105520038135726642897969197567145182934019995865083018823331808180315327210410280471431387292367682399478504702442048158131789541827801298210309618786416654478473779048368138246686781321797598504721747020773323086778068854468881685203782273283949375583963016441491356190579570593210869999875771571824830347195832153005877907624067022754981094685404535018916017829296700383399001223613343708549261296643540813318163075346375098770282343792933351511701181824775516785716238933520635014355722243672339266132953663404225947208061444386393882026608588032562851935334015241035748913772250867552347235398799492382276884514252786357139488624510021766289401920945115873395093733528201113733644419938004696570243777109408131824496194080836101002905054814337332023586726913502448037128739261376061639793814088720430271134342992996819141920100418242990625566240926468627382369151023943273703836143888584629212252748114349902296855384476159545636157782952758165743408145061591901342993890185852414342595206717750725486032229320278854990534887493170816753128942763796916496183041645356368742006536309944358905114062141932630024425561600927172983566728140390947985387233201066113240083507972030266286179906261419468965004811701490610717704496044644808535749588325188141700537962479433531608959188276628219862854461055983685283881018109975347074922511795013263159285426744855340981252935642734451354263916335608823311687472353672784643313890203041712024554028638669181622249333142128855601719382398026322347513692969435979230011891714756183819285982007669786064637325778990098940192583474870438832233193000297782930469416393237525682467219731114394431247503826562188982784256928937743207062686150677037272328966361815695210521720408432996381281416912421516178473987399091807973687639480526615099860750791780968028251512497886568536131058525578699523073600214904987832087529997220448882974280458561061806327091486649836618391856728873655892553382129119096559287637583397620827633134240509851529173326839744935586724160031121130342104725328140986252452391519452679479549096293200836834310192544002095147820969811157347386167775392484966718648318136075482023666930993370893922829454686797876573463396512796680444061536401667368087839173849259569315272897045478976296979001171843185785304708461172634828274318530856256186938595751926325335722388799079637945208602779413692770198004450851394069099717165615928833386238820202074713123447028270660280936256033634597851915226288806952274390368267091752977225043355786779931244708363548769602606390614709362785968320413662583704741799620517138206906744494582551132325615637720171818704616636951074388881764481748634204071211990719684911360862186962044190815248195005657190358307217682482158787958286267386644829524223929108621630867936707190940710798194952262929049289552937408448066496128449645832311437788031664085663706013022381358687640182033479562805298033042774502702781557510496870439698840959706896977828301732323303522295098761658255985001359334973310055140185840829182544412977526086075525100926122367758844995056786590844516762834592401474611292556718832839977749733219530700524217782245215996714813047300164097818360104970911608364416220423355850969224289757736063994696958380532075526103945071515829873297522620503183163239030749992402124865603107547105227999841447881232425173076317262707635052010618779799718481349919825407848842999396305920455019262690212186132370894547078301318356745809563583717235680855163273064617951205488745544750927916995698074274063177950072379929089322801194951876580371538808517300640246774167156845910153585283015554498964978658412692075945525840754101130025115369330016311584795932334257121444899071411537792501842785346427468935335783653783426407376170393278926992541081967031019177647094403246100972140317931315396281326551554311322863385774824279263730393797613782126847507808145117415755165155917443493764214657203055832689202402852064540100631482710448098307023610982448967876491558149699828134491347525741588252265964803128355405584194370598733699047846884535741948634935893785867420198192980370215786128919872458702029849554369116871651795745110779275500079774068053082356268490382681236795717591167366406096040688563067708313924631945555303039683206495925354826983608668807930354158381664404317076573771311836738861972220946412675669387168670702357101304434396569440813421143019719415318410363322048056027686885616583839545901020507912043521587321777610500701318719184209172234861149415178219891804001913478025458587016277758885488080732978657557128836329041464877379483309329425535028633409038933078476711854009603726898822864349517003544724093505040416563384232719518214377176861382515325010217762427189660516873764359754008886055555510758170053233994398385574135936907990373836695105877995540411275525538237095479122794905968122810233108404659272859976128079489791835724279829003638365130927526153913095750565871744313826943604883054574312394946407942470755018780415038075085981386575914885888144535665570066793620119880778548870782535289257628717308965190709405990981502185467506534718449932810908979762141288315322565921971866482197149317461574338976847961395004126047338380280047225591064414424924494926218221698896375660911920356447994004176465680229224123267066286291288780769644056100463536369774115434412068059206855046438375955743227423694459625076664213942414431228552917557257698544326313452862390031150444094803196805418368209120892964255924609599830521094214713651461888754091708949622764459576948941187719175041709365349016020610925846355709675750601133481458560224217755475951266577079655591532687394529309156348732312708090650933426734894218246283221481820038287908213025623860996562066982628297138241801655984631357934891874105383601817046682031194651813472657633217990581945969395054475185855291195871007194420719156851718351168251426053637757010693457066890594174420139534348054195658696128800186860677277464488551814572958673738939654197817680342244284274583235019841037745163791238202227954594672146778697762109354838026639349711120040374416753020505213841134971567216303506416040093385584119370344266550463836748036678088538505726710255144554568628018313139984475651380941369234319180654969132382195253079523390260896228039650121067140965280065956910683794343640339309736333099547457693047591912090911074181035244702283149933867890291578201979465852914543089090387379212104214674266889383752908800001450418123389510976827186562193873571073054589305841442788490516895398453832114869807279665078234161313935810795660695491632573418484019499350779037203797100044702032344259294741691345184638499678877966889731582049888680319433873379492300621445830290553689826288390115181831347284475358364957626618023575849071280576639117635761704413381427630442933227281407555633059614799575165475129620603359371899545855548958698999882755832773688356704370645325628708446443772639077769134206339103840374065977528005760158649415186651226418359293415787194454412661267167499901014836416710266335776542443713576737964676377450005419556906759736523701435194086313011818490159809309124372144243803153094831326032534849022087241437887614913452731564003538918194969929381350225528546112678008003235979930830290248268348626405991279228413567896912748617031052041256667885012211325209004036754199429128165892033184545680718777625251930117726129696317954329900902794062665430207777468514661161955011315613201397137382082337473252535707896299105790207269383504838783105872507528555399406316674163387652250427050157628241156910407226313418111672876513108158732033509359576816963326359784820935175028340448882097143237074779465903185757736350622549594707122416855690459151439201412927924852042843652323333008295640423182060619978873333440798472066913526840906353063212978470419309002656939726436668144305169980404126999659157516663826875667584044172135174752112338772514935118433178931136754353230189805010342109060176717332785954611013704575321725789170047758546920713554968326007221478417816483924268824900541982803170515297857305860229561734098089793158225452786509193585101613194336832492154223825641325946766427674187124038621974138701672807289771796453705646119888749234908747330552705931188240803577044948665157961396225540405994104248014390968494112656772193372945973986988391431709241017969550188309001471511723038387752715180974381292534069363522810149771181754099501411729989037624905634313890409668449043601930590014469517851022311749407103031490252884209390430738379418543863748363283731380931535815354660888762895041174943568856540132381403088545424004127270058625374487477234949551995973332655085860681214259682571093706493162355114157507555563058968835430179886309365705560029592215813882970213543250194665535361574800404433627548391043293756426350432113690254422549777198174319208099586758645131634056966489866001423622737453821756164698230734542338756895831481691418285124545974971284022653830183176822101578984544376336551739823395226438774270676221420062837194201226432891496549387684809197866338892698497679337184351108804994213141378156033617849501619327311309097828370157116067196686193453926327562403335573421846828301219490034982260296176774505142979156225717633744433196482872933143016158937153127003437094976175988321950907618412083706858585805938400104664722638859513766475989237457184815946269245630816960373422528246547260333548408380524538112429049360355919336305848990012190303319284585858464273905401144814048644791586101814815796393537068979144951472885519375476761391974992276855273773136651387992593980206125193510758928235950262870058428458201060118626296438130364104003872296114803504252274744380565881937011736595070124403171232935388608926940355718693729982743718375357578024100780658699543488636070109396826047074498924572232925129039287784977369572166067738815157050794413570200119321700344033055844326613968036625601468632157626016243581399915175886312291831096213299396223086486315364785515451453488842293008970965064087167215370733319275785838642550929318218008189359155668757683793279898326756751896094088336982457098994501276988398416928653581548155331329435866448848101821168011402762647716801714868009146789139362206802670051136222518254789429511316561622557077672891436246518063568961650492184419866560729847603111128132931534341271023768169875712707516670961561234107048811927431812550167126755791651086795793933350867270251600012006638726300522763979924906968204311567824105539914516379448321062435385309823078898216569317539887506366719853826560806532215882849388350874950867578378415941100296263503999689328288151943513259873390927863616318759375527116387177049830051959646803771791753186113668184813420328019942738832759354331679020149488042225100589764706846604059270708264639920402455511519619409261388685610326982163880483890767799877949703099530497618406762599364962342351110683905985039647888394539876418803125902295693206870790059042074170918933316730279012953278573788552372025935785354906076916337851651716738534253384371731823009484355268015912418328896620557034115041288687397883325097883078734430281953201725448039855583791969854998447043166684361511918133044265666209890435725131902804521239459532382666477740321138336994296850210915925592664789112788330893084048006427835175132094824406590767440816190151752487172699766274682856014865500597300782154703666345144003026843544514542862007196601543778522686568414810960048556361893555723933151911354384238913239989563347233889037838263602777272048708897044698055376987479987432143829943374009047983180556937717974204284366153420372070633101113243513020547281432262136539567547721746711103655793177195970447578451717073680754442197927586848948562703960886178789477229211412252268559409223232276567420746361252746240621562189452886318599421563555951200923136426758111307808583315697254308687498429223922376974672702245594524204605848500966894872500031042632794417227760357407233431684342785784506706830554474217922873549028479527647609604502188694125770901718454637652437409173956147855872076988265570170981529553044253905127189637527789541560639193171224722563713981508882689853842237862825243433890550521202735793968762142284035183029542794039436299346327619183244500628067223352661949943149792461240855251208212442216944488443237356191368751266496081118201506448408329001582786856216452266922075938068575150914737168889330696419724732603160101415912335055151304646720511242031357994881312382673357516161537088226822969091194714650089426339078340496874821125264226471633258386832324054100798252708311406020508587328480408485950628983464960670728523259691948757252626293500538708528631499219415177907760865749054164868486138332297322378422286060134029538963922398087529997989080029850104309191347843497691333610686934773168584458674692156173310817804555045995932126403858944557207251411918152556756561959635484306667324917331387684933480656071212354124761114026870068373668510682380811319052168279291710199625146113582690283881008542426927342219089018073076003754123632232272876158708658379110669325444494494053911339363030986377421332259935258130193350709357238712800185134022126160194352232493123339097903646169802956413609213701957367349926435247846091254882984690897622640845010161265301734990099274553847010758455863140795987823289282572070566923779648125985517636861454634010875672492858650660609121501076951033711818147629781991065949341932160418156457939813630783604258831492832212607979987158855180761866477352854557830657018527766057190028160888988270470511301402698845339372484925777545636750988725023981885294722591895492358238408272549845080341307863011860129260837235269664790602602790614408513765363116608072369524107728211934067669199683680366910347827606660248906699681527122831887218523596588069572272487584442520667468529753028129405609679169167778684805719356427984181117775791141108152242126539474319498113286491808729519071577554107654190324393612460183978090727561914169063338873877650949559365872593022314081222322367927848529894153727504942117890374523930301286522160122195985748474391474474014639284943257896653980126066737657444670720678365138960859400179246764302263166613641275776896520347599135811221614375753180142949932215177826968092282546569841559512874933486834180570077109807888460070824929385867543320772667608337429184959069825416742864093260926735734713190727848582278583316683713927572467616166994382284711894265809447839944239968014355125231919831333889650550741168884325895333759825580135572884044670499210185032117172333065786630141586529323927103178424680208584781047793235626439207359714164480211361888760435588557873135198144793756666288387333181608940496215771686933374894780790993673057832909442018498150459817652949647035583978264250240392336615892976636202474539388936564396796300869525036398322901221037226019998442013442601376968629532856871744673443721547071979812338223413878583092287269550688488357609231564734407921897324365725304755330566046183336220686227453136484558938110363511821981748972401362285950474134763704101365775058297744396943815712544402536467927740213421651194013842480918138428820338983118729801598966824923202830834706062339666620087789380542991634720274941506396791118860734919099502791187244543173279602710624625400093622455622915485011399602881800322162909371138653036593600900014917073865757140490080990897790975835596936428798580492170888128469106127540822763397514409233895776672214542046735794527874578592388311300621196024454251957051841519513110000060315040307202217179517543463766940326366451233928329424703760545633410846037465224569077708155904205439453622511782497650547879598336812559590565010508612250300543530995010023352421689500988253595308426413362144847425530135697592491378636948292664934073450022011498861746641207103390605734554271581326646300828452883295668989622741677504032231787726242429551762015605154608700896849675323143961982434694747757676329709041883606293919695267754594730900424104574118992564813226490297643619197887143767198870625211047006547040432899269095578215866701714424527425625706726024471370358064541481207893136440309033081850798692422755107469927761281391030849828609961295561683992584776711797224542212622163496268119667074486627240977077784864206991668969214464140649745427283802301511032055626956717774792574355799207809854426944983225489725011422059360633338863509387401642899883252243327054737270513045332672400556525218986128852847330886612514752714242289159991626799317071489837931701299710284104837648411515343085654455982089686407644216974031538816472703645924608734203930249456811856343567334081869271342857443070423603156297488957528524636789498938873337286900209680054102256693209592977234870533584438992258303702178049111074204205932242801543232121081732071764179834980569333886629352637329417841985637548471506803979570495317502416942010699804682365863981959516500014134148454563372085272358706266131459049348156423783242759023807295221152272245721686659680570174234385426229749900513210120054075289077276856906950374364651970166343704532549095571925761690880225803532292690047870947244949026099378249735042125548687567005321176854296206846683636864904741382713578728319068572501082675794643757428422190065054299522960723965400577734129283371273294216764222019673666749284409537573509795074064232966030420818530584737058703764332218673251089823117801437619760372758639308330584868007590929764842051495297268093165464527209340110413572601845755809716460896867734928454695229526820703626497036820527389658844845549086513474509333839665492278439771014347519440660044629944629939869164626939667024995008263408462069342057742647352779501271912311745080125595789451155332929668044569136120616788731723406413463194408851442614437399307122338966521593343534409305739487760486832173232888830925648031549731769408482045049786080045775178659566659944443850908111573381009119070695355916370368735992781960236989589670041400961867573688651321844610423494329204662719138351812289819660325467417731487913209577805020402120409354170493299206686879306817968293971485869878674770774094996772536084182914310160092741410945611623887735429870882884142602353985083594520689006217794542847204405602819903702351105579124979229377826956900561307844427805228610107947714042163057026053773084218245496978173999378360133612771006405689739480843046450468370155041473592098158437175577611231163789244810924252466812427460969206179316101656972980838939504418854206150916836826076551672851437425882948458456449055811758300470780150393540944153119367970562445852713440890659800631982245138058069585515358670688728497435244738918889569621602819521549055076158099286355752364625426460105114478372050255408752429906222892722699535727358250609235320360896033124308754182418930077038622150417188888883899733855773733006345881790975865050897410432321049405148144037689039769993465447719244239997265015013593107178673512997299805319604374543654051630200901257825371264385840488453938514619182584846967238337721409349156481540510015673089487837556353796953165004990336596316873006438283676838447180867433428576988089074135098963291342818849714769295369444982563121794250091213632062409264690924657065776844234820369171064364572197599812218502843009880311441517383870181171859244950504529470554240608464049482730760258612193027639975425912881507798974855528629931563260897788474474229123850331360046075462355634747337367352384792067470085894281720061862200396186657842047916255083486155929174173047696180625417252487275129774976512594145827721509129189082859093174964721891569330790277392403765394218211420930603498892540820093891828323522057219366325170119001349922406146532327295228831531755526492710893165897081990441448878534989692541519673012254772035604112255465792970661320322564660710179301297584901200394724305829816740563942167911664501479567542164069218555180780134337014518048361131507949567017777469804236177822817373893056281617931629191753758384032951850540574063840980164550971840612127518582500768974156561108020539958139441015993638634480154398772061273533682144136361260283339671732618049356120310148870639251329328453271899771941297889541738270341869490340778858793264859020482031590662431494829832760700500064180756696905502716007765556456138853165991952726114804097608066290559020394903685920329469927778175894436399456059603727509847208457613381068994025547772043074738306947410239161734856082717403764728443699481771510452136431440660997748688940967985070242045123626144095719134473700519691425154489286542606925041845428944385558788564404236886056003521388094107192112389908662522731138182446616680590049878618994723073076072026039717284018936362249904859540286039291886275465436451376525576338925044818017370389703326042703476172733863401356248393713107603921182934699140806322932102495956509248759673188237645344468423771285869470981095245699179912082167823967260596489459568170665393043764438435786582840111154339780301449898065020009194864549410716969862188393624692560869963049718213641056539459835346650637602301687508621432196823395103221117456374194009570260479424898695740100024253142025249972925281922043362292457119556879487150400495596559636758167366115116960558867656708168773666524841104959111899948562104576147185749925494608579144150835542195529782643648358628130989581663642169098187842460504709960845974322386093882282646892207630063861528413849848881032321477706447257280925178218442184813862989281079307610905669989133074541690857985511408759643697569770070789949382145003794291028974947082156355401298082259055920994874657463056851947767215799595833948423463787780006938657216806608712028488790512731173437457987397940148287153064521224050125940686852573439528015271963438232719176820698652803024157489929220228560916202401103918497745221800182940965847825380290284489899849299649501250155498765919510712855419401704451883865405140771819724539962038799746401018368591311900643649727789616385159511769597994208665661952487222241950767038210850152322537869243745368013094625104663533592859251264306362824544419550534176392254642355142747434798904542837213298159756501630215939331241917718018310829841939671420140408649476268482110757559444803480627967483343939090594954667829262960749181947303489504246904023581126807707614283123425046354670243817497027668015641103692493307925436593772914280696701728101777027902809909154062200358031438385615253960755669695890027177239157812719472578880607502128064416768581331879427196706006478363348688738941644950805862827998464837812646405425600388143716754548167855676642783560383029711450748413876828909209486176920973774017794195449884565958774710594528565646420181677672937864510903012444693356316666605710176369360645643524721810439094579314395155227462195838859551953070621592909011793569862880079879932832015570431400051530886189926473236663882727155510802131138276945871282155913552805498879868463890992840461197426772692385416180679227909864488929805504571297068721305261432065023321883210077530276916875518382911953887722839062714543227395627583984691713605338109796702443954225923154954210392530733000484572504445367081233034679998801616231433524531344150595791612044721798405483152354244189731014306461322238635299439408819686370692503797484534298101970815734678161531323266868812584065926005343764030731146844324481650088085402219224084242305898980123559812997191266579051638717920830245918538244236333720649483812271826392658581093555497013708536598837483388798395523447788972418748605057971144851796703909488379899356194715302210686088392335937694148975009668173071111716172391750246820965823852313206039482629998277982779820883390311019669259084720853464419849213243631712387000337094649229832641404967344715091541405739365593193483986897957839163443758265545604790900124213592365636601399172637392062014976401776069774966450822082623262264345329907747760312156237492271974450477239759121293494149780568343775800861615642476405044981383526453247595956775444069104274360773146718146429449473321366441338984267654817036056447332701899646157768699733249015499256001296539975930888662199104015415592374688691705420208416979213422842634115000558748036791767452934135086823245008691541603697644838335917368523025103877336709336750457899415449158990566433060403015254482659863301346578124232510404466175834338829998916343170268878321240243944560214204862977456401284360307566422927537014721980741788378074661770577570519812741895000687288167326745131050367360780090804018964682283636560337264534576972878773148780736718555291097302166462101563066814684853063147433725690932652985747242556193579245597159848118948770321177791687330455372863084486991822808872924621490955784167476199135283872344837994724548165448011875435229373020303468217851091673150151651318280617314885761092402599828132373250405338062055897695875908027991525611663894664923389074354429698292358696743634160520240013609318734962068427807037986398567739226556861588492845165633426300164715688459595462922943489277959508222094071267680630186030731097723425503406913959724011492507890388389491226077659370432986613131998836127186144395217389094973545247120146508885955186189295585594773168362304242456114799933849047541521143998399722538117169782641670847823437007944741598406066579617124937158774544341709812261547182344899788132992176230299764331160455233685885326957783766087406292459654809939403479876354399908021089780178848138932472787095240927452692684421241181832255725834586978727902257285713161147151492453312537451067925932960484022119079532710694627748492374761850925108730712468032222341185894902235032634456764925601780477908464588205418262157453953706482546487484962923641701077871105749765441691858374219395224210450713597092818023881702865564921656893534522135849952432754701282486966051193298983773777988745165551770719728931282301631382186756428597833545558491335655960501084003497209990023054107514167529036904077786172124173430084356979260429141344096430925402673197579783383933911892979963347216511727280447928640802695059403669645705950170231023657561777782019689113055391079447774614174548232812948737313054028172277615131044127343806342920117503517831570260390087857434593798257737858767496750227312739933946087711276722649610051557500991035898047421817190468291797144379909843126645938471929425693540176316801213175145483914188594651389187318585077983028192365214232860860824793343576428516727225783938697898565208278250411365546757605929286672490098702835578012309674434517779814284725583194366796566786812828677753824835626486249624588012156640282951418270235689099204648583420917506594619807192113955771410071085289643127982805736956115485912368358884228976494702509125858409077825823911988874821445268426869267244942864805098463207932346484326883719894356475462691000925396196189378955456937340456127497688914615573764204075835154187177114517578902569275805653082616323711964762796187565217792858990499012901630582580743089723423196478149408884065827086861693210358225809578935507018180895765225995726104538268716559324567985634378207960287718938701758556235536268684484581063278004743116656321835428980365264857085496196429550726350370112541068659476168724810130020913806059941022876809528941792096389042930713687088985088700117239789727966350133874854649434315248050176452067603495725355905690587848475396872073109316812975124701286592108154323770052120040015699465479110014731194331190682064720202503230265263338624057864405128531421094781224947605654388406648221687609850096272376145661740445102950713388831607760590463165349757464653419695798123506340713495880030484704134163519151768974237818695430674130150740784713970390177068074020759663926379708367728169474597471944947225309415068443748139683731858112232241495306320039807427348328604914208458007486912704965419608381778379597186602641452711649867598302434117315654516220916236388297852954502105225895208894568603327262936784131052237635121102062473292627150715582153065070589803949174605436916132253732316559566503173028239133962628197557159110843395266444834881947422400966523634322710368692012275751871064258004802113031961264529060331900037034756501111240972453272461468508829863986165957587441486214851939688786850782834964184927770299865595577645459582257224957540348651130564362092272333029574280856399775397797721765542048685176023585154420057095576746758253723237538827923790963530683037790571513833055174443663823130409882307014259033469610352862339334135299843380191898472074817370826795972887818658688755642423053696213059257964825431274627016272143463203429000597957164491230147476562544549402073378955761137366802179551453184921103468912689535825713923868596707825193585886989564959518046001536198337215086332472601366773993646800935058823644322491510426259968954059759911156272764709098115166231198724333986523650030734424487021743799484313463267024548005309713870820131501421740446814547175627496693798087323000319532878501953987068022172294593670020026759042990272347687518332413860946827390876659935408636583825034123606670743241712250096799586565684501362777444858051867210374821380315441744848662553269313895834480422226427086578483153737271031281332148284917468236533026800309142827091863825034931049054305906866480145737878775489515574681055325169107458601444688196590985093326537723513015559467486277404666201965962316646515351480568163935528420598363725678290646558654394097348699686169616548441437980624942751491450121247223241522688905558564343055191201851072900173048909565457546861517622233543402123911107801404979757436098255757888620809767010402846408044420421750195845005629609393098961909128938221181720859923889796005245891834587926931478368536822048529623354930248543915529323563117683583687086818052040112808104299896882863110740703675929420461704197489503559382610112368238214508708257984695166067937442750541761519782514209458946596847229595911074379031068755343530523445061845490801985759136735956777850500691220799696585570640585654974164744963810906485870808393729998353508036919872754463037562218101765229949032605983913354948320136956781443633732783768758808919483201045786100851301351030664240437730059150418683106000119991034000131306440041430462513622451706411039931225948038367052240817611114313943738745742185164659387613868603663074575465499295121372769804492650794396291213353606937510891614243149732785409794792410710908329338121481644401794325586080585046162601457161700865263674767803546975964241312653700678549073953079668492941875052317568122445308633864808702426236528070360809896915731362063820226310868700661308731146386026040315388803958347980761959049543934225726046633686732619596684222987651694322714658478271123545571032343708252414009769129227305550197789685239488811938154213065598448143907755068855868094235291210845869524314995776909054463529118158073384279930543342384267961443532768588412200059261528979703331629050862102032684308991130759066091042698133461823099554480027848310967919122128475279868127780637211273292369070654817160511080270334340629906318550537697274160142827027721706228582989699997802078440146236107065206800899927128153309867795221972284574331414832736296537341465312300546615173200396052384060352435861510296250606444745854604371326320932079705745953727304248028076872177178448117270894298687670454860695686364404262934137244534824912830347114097396809099260185736735237741932841380050599804756717891581993385914979071035483546220999498783858251655286480431624755666322804968648205684982039613476785423586164287523346743060285692070717108694262736176246922964378564415342469018087984251606530856243175089682406165597770658036293050295303665455199661514267880640382563710823553956470623670092741127482493612150724101629086890954549863304474878033105065921655174646506927036498477471798870547007057723756296831677879755883251326772486980987974796323830199588049087755972026295995778323447652109323031042729904495727391240936173966311120092744177569186861509175090032836019795361809139765160457283038574244457296956525382731510536610511626147328716442662447413914257506142329978821933804573522894834599855750742510778847252141931075582855276125535563896280911860571160112083331932600941937023709539591384514303461087016315517105246404241478993845615120998095767324125720223285238417058339866459212049614803503515797481099540891741193434708860099843812507713330890411987291044143950341134913438741419033432950056610784342663462141339354349486210982628692272300805113763963797325220800295200093302269616878615315803983059395314073759753325668392444683363944943908169921164802116872756972734081012095941184175917702460029291634986984928394694813940593038133361677601020614687792910894804236769118966452288677799249100701674915474712623994046514365588777756312908253348139815042151584600583348254651112546801961820195807547705626056976828941717807337776195048345027015343690196005433296219234121015442544761898539745038283332611704512682331495179548049811704882902973814664637087625670246786167230033279093181900319041216312044501356288780867938710099589082241415818763161300906421646038524420195808513691516711909034419827935157980440074563054865759151863906402608611308310135508192675274108082394779204379016242443294829076285328704691898286201097546197592373774131786973603748479760673658453708874628444757034945485904638137033644189768172637893683305684992359232465707980091413775683297184687881039867902267959809487091483083202302774302856256587012418740654268851743830420656789573375601556891827718821511699696004694723245299213571351536432321563071318863905420367731130202291339911446312965099563159654206787675593123101618079473497631895192964604260776315469235295599290007576298363757017866947365091801675388244508910411978592512616501144588859051832948189788772519375673927228047492768531321203703572655771574890981859554816588940742818982700051897236337902341064974527745097515367633244502318743245823687974784102319472742538475658696783398404396103913003222988811043231966196927220004917797448267151622876909697947362298030882278670004285475428571741119185011607938437546313959185711341364291553497926629275658999324588450586921994553088088637890442991025631208264731004572501134450940237797320092339336976684121124273621006604896887404547910959516677566653066857377377472391551985862913045573621562955788993720892512164221294605560283914929238748723885967812257649521581290525602748105122394469772911181788861833308171040725626817896806234982530612988237978938276998640695449775778444878643242944377365912647673130402342609321814814903521846914190336556001287142157352659800762976179288808048031567825866181957944726919508757359649366091152971866322215220927236185572560365154509717893742255472489884061038705288178328622077530888467560688958480224029803762718925378658738170999942126556843698128094021480316643866433651099696485300025152153730086628192243733123403648905803736895878969703129477137138560988608703866611144313087657440693485896254802713949107172040070028758411544755467277338612499266642445542087722016608613572513983359727049340934365086623609969049219829875299739191983101334708723890571742937250515939483631662353023645319205783880615943763042937659481537635356346698867014153981175469223804730794485210792303272032882491415497370782520810284295849528341424437710647776468063418233924992609540807411132905991000056811926230815576192540671302167876969199663799204679073542442632043854981643808400007259000139562980659367709245931615591716451372023237041029593472938905465361557814133644493553900786789542031617861950761494680614317727127623024545164980029478630852918465922718366154517001497588805149795904523370341286637987327898977860842107908802023119040302610799508912390049562128910070359398419696370397136372422011719506422396978977252221542994744633797191817789362151061783202206037696208896987978085908978198549725388749717576983103589817960260200013610017125489789556379807684033329046343632239480250974730750585085993174023155086751687467798801396371747027432738614985308459886781905387619878349195878846311438286947076317412652154226761795729918321634217911011315939768587739087241595872659966340966055144017653662239741806394957329957459173489864850286478605594774838694209909554026925671108482978783550914032666077797765030409856649813717145928621546693830494839775285239767659430416990857413973903919158242137071095980053297188162353320054944873195497593236217674295377578017936662728388166631546618168150877008379638530458981935620872808840209912354515420384046571439168717988379828459714357824321169984190748470898300113997703937073601534155570984324050788532012703524152841349660119134217155029558879688046322290039829614326803836335942787710884063942657320971141336223429555706009951730721919200645834565737619721717916185410433085482779322617502566411700972787568214768250127267727051754363007078214747390936326453625292627011957636246658422367900030537154526504870580859324894256051035413638287141708684953639776740914162211538256203741156873572805891804082869998931905735254074271415773198623195987899828328138660309097086089198010892149097574304124987210152573198305317899373578450582670378579405519409740756500362056938162663027109558092944143410610902163197269513751338025723753522410607130314371591200950793829432064263997589493389945789144883083288039452230153792227920885092728335727490151569868889894241659231120760379008664537311820760499273134266052173062812932102703262199701536824393331516917552475682719968779436023859196598453119374836665232124866332343385648240447510238979202291027548450077450911471897132050713403771417571342747109151234649619833775166702943028261265841673837563952728049076128846922871199731364248647349349655021127194587042499665667124661450820738882144389293647212753628167979508775201132221889752938220397762617099169651561371632531200805076939075208186405765168808663417180000554240299354029167115909003444613855929095484265074845268628383815826537167787872392063663963819471442795010832464354937524205859266421391786193067165666076781185026394651247256985859285005062986260347299960501600464753452794551602303335138789813226861675826339085496949128376068671870700965081768688030184624390061179518828871699398469995931091305868303965343165454066854284837965291017923212324735692764055661876740847245958796484559020166517768036573102592609295660153545864620598260919408701666787486227717013808139292326094185044541299714651509398608891304449243036168130243943475856290335083872038374084466934856859957284231484567530010134365256791929510289158295592490945085359845809799607289129538458398484687362186768274707552360038053729461105598965214349409047870913232911371864511087873347247982021540502534332065357903757269741832895949166091799714779770395187327241799414383466809380840347743816006677398466875939719006389215634649911608774820156028660319405121762041400386137508118238859775268208513733687651463418366912938172552742004799199033624517976999047966698707871210535589852885083555143238592142315610787524312084131635921196426030402553687940978042804380091412929457765035743097116641569471046601581084362150499573564098939244220830247575891429086671933807436620869093628568354517528881432073956218935848207027017461275377570591673915318898043077544327306300626999226658621629104989448415388432508051912507934720797482916657365973733006527846296186345525396770391176161207896547041520758748242686622596078326221967764666028872480305781121355226545186410089213813844771196053794627391075722871684125707390073112758166041213725682687344904011068618944526873275889649579545140784793344397013820335743513963674248865971690823371333216047774145958499935956519938379877201425945405242230975900411138583949250590960939321989623283121835478781849979510984734935450066061728204855325283036971652062695432806767693471420482226659511911081699833027014634286878382235843969809092618416778350540218359541364274646285546876545263249469805274237782529216466848355643212129515371262714438710332648176484853193738793645450370747401351971725288226923604673912141192266704934720221387376121216522633898414798948664627752485729120778626586631740420048915165780853243923070601476529900423311238069321636748488846431690110559538701437541274145237713724769068459167024586810510518331444422422600547133551435138952859567289402354683055017576350714530518308967958811608091517868451998571776568453145789680122475292176229991835446224988899631672934033531451861893478261733629153416476155801361021450526757228697460910182536186525758291627277354177085983854215352214237763857781560885576144803952647328869382851827360549116785059975694846539278239544542762010235059293839245776759970161199645929826687502983390469937978738883316353300952474380606119402452618491907587165695588839581581842965349006892864833492979406189934601562303851663503997127518316993785591798514215607709154378685501987585155502028303741460419626358886151348248932962540393650675553662526094481321479004260266920807123890888984751668971810723994040790800595751105454391695291937569920199370151758154014696472828862886673565172938478733059319300628008617711107548279672018881595242082662693298771195411290896987648286930949124434148176517899496747758456260064666361425503921986488631361448111909706618143279047603976666554065963129257170997189767745733013948458004652362323951353517050617893658183186042265865341211607727120805318157154037521745899696357803699033723771468340823646944912506371072146939439524427822433798827582352706689079555861282589891140389986775797727841926192393996310327347439321226341276872507137162374837401165070669735903193521793294300619252695013021311165829402928248986767091216090388271752845177075892732042259139970567288986157016820385470049409968194636513887560987941540909785369944948239363400707307905449711754484363448762671946158095915484908906556880893835090486864145381689911602265544317699958728777003706027530041064494070840828629213255464014961416604239002672858860564084938386714828633809668087847086131340235571411282068447956631172818901216626778838655620443600011774156357526792571474223139837894739813576015079713849911219619980273423770976891816193825879282490863246337095482527504587239866669365702483267426308416604869383109753510514584358448638729011690236808004054475469941281691692175717773097106072728017502986902578107201997236320967677032831310572263535573778838592751227666107990565485828832368171463755268392328735010664779798093475381417593139464926074096868690496639998189024352616068066289694655184232268361143583239969854949355840605658013998704523157131212634734598379249369363068232218625546556696290734788667631591912107027714588104659583690926406871629461752972263263316138294466262328123962180941235894397313608932381684997861393872300776731284848570107633272873607211489806944245750520645914104380859518834680616815897469765141468639943858565074512836166547344749911729553861343978517694491269428502709615282100462281513667045428899704044677482054318972060059590432619126450279491962276644929787146963528488078447376128142502852815977761041763148800157199925453603340303606289411471040623717292841045254830561576174022774941902731275120658774314055027127097659465258414238798569082929016501999682068707850720172881428717347075923553574151668084561019679654759358964842909145076819219557283718304214184864867970421217357372539209489795089848299633046184849464686446570715292671413630649299208896103203493857467160789105188281613999291797662236825257568043301490492630761868794004309098590848695847121540481752616101443813543130834436983726626359683288270551137521763755787989847498196540852479240471068536745769619094997583982178198077354034348224727467858972738251899643384308057145704722097917785860087504905116754611209580219047898534537704342775709113353720883723529633588054501745203550338443458260151573837929997194149176057375426227806960003993227244600966737684985839450064915250314413177776798359169090693125285774314756180420582305837761414127478439385358640709392524895741634697950328849237697832970802448470435141529897217479012339507666275310831176798085793560783152243591779120366762028382755372168627219704466670272757647721271332034080551543916135245489445334150197881729140579077448740849387695264448665272817144222751701873068659983882098191271763367249345350841907472778579694349174600247270220555601120565411707573905857247858955058004135793171272388946334497093443150855127103533205205684436016336231103049452848860910257305927074462018468911263977201419894190777479293122240543379530206764947753802110627854668924149183835095281298877146429365441512934948230446662072615171233030966932914387044069874347299215361462674735062619377836055646482672518699532480514232340097583132034475573276153396235559395117099769533558894748987689534042939000797531172780261137879388043215040567559215917435041018813171293647821886143825412892542864932223808590975265106240434710163743423824379571772824802845245747684471323712289659146471237507138104990105097386152761766267418075785062695669508374268374855249557663834754907614162744699640533022294960378014751106627849440043233891921574724854945562076268136013698327886080733821197064746594820778715334181468296695868991865207176456828746132736151031582351199146483562747842553657281610565727917952540007382241390773454885692952997241160989736842185844319262156571258490985607133276825274807189300982387403485748828693132830695679766692158559478772771490477357976520005960704680427030495372919661412830956794668643644236496971386241416454322424749190336157064659035099174691074764970819214465841613239060814162813072213145488780545365580514827234597211424185733056292885689701462301747604932522274022207094962336635079044757560081497483755462546624818266144917299179426068015011736083900598232287602379214708292976573678555595528920210944743175753638217992744483022702612807515544132921557457154899867825375821011162927043342781557620210396256241495713762446259316862743898197784546826009698892854160864443244607524465114628536158818491646642727260206811400107604559927541960110810467775346109384674286635527905669332282890439207777564567054846105966925811506588488985811550507104117378170577767857905158563355410239523386046436517257843283674129608930595753317804428067100713775647611915402577542740234335445028268964729035906879133681587792774352031907600279828775446133222421512231556296793516920957518185034812065396050106396804837484929986639231221058664049822589183664523274943918090051582774177676444972272193184845013135326875831127817272838059512565997093305138900041975098140674428128894349881925365284765855524446102612530339427566856118300721216954234262267631290732614823787517097163982864893015156411377279245356278829065918534507519093281601375213828341351996569902418940691903386073364696074721652568407856954436164910500344051846990732648504828443250010522596838730305129579833799462682413040494387929781010932926322327593772991813691343287461562532739631345470622411668079935958107735733651342069147743390427306344817587290803098139482372552666501253740974802132265425487386025193675693955318558652576699542934391786524126610947447103318692982984494013895471831566505445336802275429953897391053588327249398313218663246502082890553208936365897197192767117392898158970652590614954703549036130052900705137659950976495654098097657324087095034369527830503865384308176588035934968474610587507607290919655551439514252475016722442907976063545701056787234206332167601992708045003740196623861363538346990082906357326509480846096187542350954891870236918310034257979318151181043547573842215122037846237503993944134350654467310374850434333555289378359823111283006670189552233113095817107473663366949513965035718163913513163305939505708374386564852910645640254451304472853427774037081010051255277891171957944946396634601340620206271864279717425755270539329077331396488251036557387507121464046927201189188578612221926920720140067383688200690750278810618918468527473028118541015319087128272366289150958616730861083172169636717656702563826431360869013086658955220643170356582049158765181228075434061447898641437926483916813483198463852873567212503892101526702025906229698691980028966814590225601295916485541704314542339473714277923539555168099476391453732250940244775860874097011555351241819314778166826886829587202722729555587081820010848289940690830913900028683958311070360082786433367081033661723791739414619845874562536351435415437287955582007472048030043799593993956575547196470733276623354174461762649781678343203158737709608990369677031483510063471019506286992604012318429578363207885720137474384526227215822385261470040399056331802813845756007046262768550269640583738169657769842086144850261045476468041523144294541831601795953853675308449171965565390986189876886730999605113896434050562799579705720089209032389097476692668757188536513693106795784652622820647301816215955728754248186591411539515153150133871299146821305594840165050398891047074972181352161639055065230800193739694280948022375763324048672155021215539058256152552606841664302705526468561647650690607834246895488283053910310437331411401411762168273987792020293519003692699685699346933445423132925861500813533423439886203070632591986930651330834457655257302702328270849934801776389762359240407563629727929692467763259282683650185773125335086470038124206550267674168042785880268211562494394980972698181420004795898551956562620621041941592752375049434488452355622107285166661487250695305158396071287058343198892525381207857260604214603967206475732829904166566320575335759453950861004132337741863874134055891340938156017546455120376044239289188902819041997452882937304429963937229923079058043008847105809629554263079483487001400244851565542171554119209079999153583077553403865619640964419051010501838605266216280881424311137719425603552309501443889041269210655614842902735430826288139984938009867809906494020973348412007780285689146793872561120681667220509426728700454699032922405557146928777821126329786897118134647772030696922665222909446688332733878806873317229304355533915780688755701932309545523750176564040663148166153158877350790432999098616041531755147571609967685186328157746175435328085057462800922351387489381764535858736277076637839265153549739705002423614032657705566543921594129836083113996157325898504350438889147523616512421779215646858070566472513513877411366820304589856071965512485697573395686279061598245670195424928049702031903723791132383682598450666685502227817568099577536247385067567055778916936182988324661792518853420482944602557314926521719868856187405553761633540573649377650750062662846277460073561656446717643335792504469419204175599976540732966722105197774406291790535474210998652067380706784220475218005715506218885956728436418406298927319518019460890585809598253267620703614238651410980775300607558516026700683318398089025672001384077114607519618102776766009035829067303555604726931478855671340746721185883734714559036718316829470730808594450269444422781184355008386761651508917537335621818390908992710089479041357376758624442961828931615203788203753689323814162933838779894263310935615041054171379670450200376018603377512580941805912496685888153151737225137958715652930138806703621340891079014187164103526675950687732742415932757368803454488926252366205354501036165650824807297802234340472253353522455618539219198851889749326004023902688951345934719518770312450886651310797279684612152787399343787426820172119136950681548490716681936210800667611557617051835057245791358556754261260156221429010889088088148671629865161586608312119140342793235174713672128044893411913091211807364704164891013485919323001852966201566318316632127445479904599714853360488262934917801407456804081661793727420636641402397641006846466162558142603381371831533148490844662108647968190341378981917647592188450993321228418158171615455798657431673600986179633715697976899141637335776139633432349529501793597183661669409995804645244480501038457018865538009352809108840495671934586726538367500132596128141838889735775193674554787957460590994058078155210399815702603837531996851266127667397322945519775835306015943617981112710933114943082183770012407351522027731888956211549237857991640082698054022157132811470460314448591852035536210731783918275643930035444632278213922520923503937411774070750696676005404254993436248758861562352329182259325330009006259195269688587139517429462652489489039859563254831217936218608675457513348034403866383636090528374397837831282299693796166510750596062976525765105987781561811971223032155604790045428485649910261494878765498566724382053644127336671237011124730575646396099364759809124986271984882915187446477591693324376771004131079275206830694368512323096369530259966657722260885122255021096320926326432982331193373734524711408423711537960501454496883071145466867645892064853314103850051293494651127345591381341592432950193671084209517103579512907200289914655917085876883516548123140739486950909073493528469104940100983296123300995437570473691501847895424024709759673084170740702264366894558236365441520353548889959743272703035015721533497545351932312564235285470085680052346793455227785867892965872594661648037984959259962227055588299880499657268434959151774608098845746680931561523921385033866334974649339823151063992655237987230648032865250775832043869036943680354498144716716658315411752494104606428457422268289887176402809421323546768672505379165448403182414482419743443299269090091301261164933920371755264689068108163959011018702227927014271891555597438083747514752937394709578940952324280207046197950397777626654417092030302049325532941889674180012734216463075533237669819481560917744217658566680077206861683805650248702144366274788499547183724653279708178959853563511229909580544958912901464825188133046365396969201324074497338924880459669258075135360868055541847779909397835126522973865777001304689480071100806741234334185174915921211539315126339032287928063725106567919209251353098014524912682949616817633204363974015620827225176974928084796790735153802669377559735058110789429870261143997211139447375791509496055065380568886815437999690944918790637457130709642396341571226619984091923443226704748811034737467940825972679344272142789783944422813653175500718698943999434542964040745297739926470399586820838037265171106935211891966591214002574397661842545348783127159961490022479823403921775880704935390056731095591411243041761724893833953009123078791397081184634906892854890167201460768632569512651287180551488846404865920821008535772953592805509892056876300600283125596565586856675421363610888145131862459417935394011900395645270560140837307651330506349809456820142445561627277517054133114132833360528702978097099188001974852322961455216622069616489422443334667649007962861264588582174236991469428197109595408102958865242993055086220827956823761549203018991534773013043631986972870973189561146434287787102888944177601709012342357869509401718603069370835889627485328041727777286383920297518636555812041844126774300878799922222761495727394539367523909929457474444743928545609933318206050875662038905827525776939464766816627943158425261505009938734435870648212816285078538708277937167983980065558534614260550845874419618604336769630606249358842666349599081305208549151122494627799905898592553562709968487702317652994284481463587009039062942888947323181804662794144935973363127790033704210277319588977989934893869691345659580100486148785714357204441213801251693477759461476937879830764556753139149149118411813554456913349083188569012049773457808262111986460037690452532727219350967116587701286391980841668976638949841847722036366741838615733175363621132242518874555543325230636368051124277454065963395746096803448526001233994617954697687587367087189158435342473961083298891136363523503867952997803079722920609759061220432116346809586407434139356889838881878363201962859592917189692946276709504010668161588296933134616038659245683292643815239930363337266923968213207578284943028857368011336129880187431024723483628422934364177169904541556855705696763122322590477547125904543421377091438808265883920818775200128146438719613806239858922122930791781725706206151672494841260756209105244223237551542027454000756957375483939636064944540689143175565355411557175742742387016403360084445995332177222760960986687910002877062674747306025780439977919605491390382803619619235343876204621475078302012662366587715883353458814476114397213873880591726701567002875335796729591062577296102561513911906173365411831563467215946124465578494756685337239430215870944077680255517269816304777020362864482024337540962857379945441563968105163207241679410702448838609805217162157185413870467247110375206854416762486797147260947092875302049949522830068370295723285995459313345818400078997847249137377975415417335163772940421572714285485071731109137620027165644740617290030716490475474828185153396795332314949581378153074300632476343900428631289034125856410624435709304736230960330726873329347305013166308480584189344970770378469118624585226363075954199274927463226485508914132825807951746152271056018142604042637043552116183856378672548166762229285782714344495976319864018410040197069865500597838458704677858032001127532660717732882111126971909637542643702554190641990948434457070344811851869493182086864592691262998030879879326096843341918778124433170075532300890891400865852097207724426883986016071189337881931260425334148610727716420963984785702231470170079053240654957132547883167146327266496946694329439400672072051309669899664543392748533693780356691896129205460402122206482721990707023716567651867337226620223317828329637755359982991184787182336021627395066131890717071004829874776299524507426624813194347168051574421062815734220840312173396526905841138362099841226306824353681678600062652527723852126476874189100071936498834152558205594183619459525755132414196818875437481837551649406458883049697500528211708546009604153271040518363485467078722042079367851846107780149658393028891536615331723150850785187069091711116088981352278902852186527827860657317567466147439228639799802937205358364580301823883326382122924807460488808469488410761281708423621690318729636071523270846498953013650752690030253991018843915209340500765820582380051118505431519865222451775719608496118505689125369626762769783433773326201422016112674409338041146000982039830065356327654882781474047237353537323894681235252742645018797033049641937531297507329980236005601723509949453953157942567209384061739449351209434550722013468336691067337193615749545772358640396571848347837984802518182841226824448379094265648841234403953062746894214143123824379899264836527164279333523781586070752656605182138353495390807212631674715786413740728224380316977151786872844321104387080111738986624675977536284146438628382438587188947758535467982886836614965238756469781567370425102867601185804328881759007556192514792397963654501411362756511218978142612067481898809952952464308630126322663990451445896396656370430946311530389734523498356484502875117110523382332897265809281883865563118326681759528794255580943425623574119378109592895628290150078414510623819369802445687174472721093792280523945255887835748807518606139771144046670865692347196362167950919927199445039546613862513101350857650004936066817846657354689423039530000616529411802824477459483909388533525128848361845129294731769232161075661998689634147232575961699436050032312372321553930996955190967757866661163730862204462141384944193459297041451032743982491095074334313381131393933412040440634274900890871812813649839698753524546648499422706149056413431576111318652649540429699332119344670543317912561037715863161641453426374480914501198428395888378476452989529997747383760358933638703637118986699530390538286672627433680767987828678807086870540657039282231947137519156583789405071633686505715442191875040244917767119381933303329188819281854475949517632481897419583938466227532951586321390562375873035726372778725666510974228960776280452853223434490955298140701218644160399544973546670224933101329330930624673674181051045124484332182131645842568782540191214734135397470981224378410367452136981263259026163632012919868782764311092445309433164129426130820695115638152596871687479260040608124515868457185412051656563477474709894870677466399227851769391387984012825865294901818399180774531346972040108080049662874357319362917609679265004233584783438508091365360926846537719255781595529500221342138184411834387645959335771932227630237326646708335911398916865194781308527122602732244858961919175882627466577645041435100867073731212398322877854956790616262776231789229761118840008583645657329331645844786464695023730218077716514510137579800008873185852059613325201965185064596644609208800214483082853714740009603660989850808481452710314822975323608483356860451573236398150610351028697256775864090501775803705497303245157634512235636193262582203547936727967033229104626117752664494949875760296024559964547725364966922163900290247681577857869836146199374029537070876827028486092248450627692095199321179457323479973963536361053024086334207035652098984402873198691115886941559790982900318226740000054172078861972504724635799623256241560881468042595077057837729096920693713984760052405246235970042140604228153277522850357689011980590985226959307933040017737819578492891402599944411663399083591235086752868209054957835239176094519883347085647219803673577285713387564937481688207445670064474888188210540753905435408004382316334078124196017035104468191022090996666222937996768804352294951599848692033249996993682363106775101440659462737291385080798220624971056562587877581644792739411809463106080226453758386361204995525779947002626541142964813061374536974340268341290055929970597043358548345972600539694077563368458937019078359086473789629856262535962512950511923512253089252004506540520615292727116319508724747279434707820641505525805561841836653696406207731189853407473047412194937954746916526559372175299581116522128500877028051931106409364242676258843681695193757677769395479926421521983715710652625194657527042967978075646818183857926657381077081529327745659314785898579944078810561249112465194644099430263219584162527679600307681489450307667651361714673994102530286023237724364817576167410229107189063152872777471278013104117414318943623989531928637034839161632319521634319078171382274611782606066426763993017820499729092737571586475671330167413285011099049358494224901166554468413935310754352854834911995093096834116733363866866452980229727549836863771193759974840065976606630013251862537305040794709854258455654977238760328780718581576094766706552890102337503021407836303369828035605541350279851080694106817614368633166802736063890661607639265130628470393108779135690317347471103483912233523785045204566208436528076940975595049441653477500028455613730519595678991911779832697169763347409412197960118598015957789066852919776260336410430501728188876805157833704013208704233164936723903006697274471605917302885748121333282320895524673681341930592382160739968615939216808215767898495149776123386063017787044742099590171983764691805484706300980690654968210912575058721525662263739908817521576620898725840924045660259804550634811385138865785367101165732117618021268953983901915389206792705546915049153062820947710711799758567105457773049972255159911449592451625302831854399501330732705366107353751000160474840635178871410687327175692989143290857360518986304166659808774985344356269116696673107448217686106664342554338795791261935029763291286656143187282648732827355242926814677856762557125063712397884687049246628869396939076734500421228071711548871472081413246485911071005809048802616534739589501366405088464040863538155793322047874961991963660555189842374946906967176974069340069292903251381185528638059348589424268051467858292778790874674898880734057961927729904626607579688643852370870187669465224615932552450128687086858013730016336367212938013351319608330183582736794942769184312257777059592771333510611539122791837431193957900514362002277494247329698726698447264410037386226794695796754607157086096931329208097358741002824786758394631896713496281252007131596980424066203838644052035793011128097100642180103120174188353521660997545702910260416592008335766094644235742855227787606135317347754463336071011356986086394553394210351341071887045301764840637432735217780943731942444841007301359143328835580539034388907939457281180290684055801100712070021229692944329090993986944642065351306766501206636992878294256226162374755264908779069003056359449810837778431452610423849735696906964874644925086320048245893001799697761319781895806602622756746956495956342661856711450916416340664022282407747469514366053529511173351161023335105809263830614293617239769995275968079381720408940001518058617794526761940717543940360958505718624342860146792627123668485984310479675380354249840569357365624130573005086133652909370631503535296017595240034566533019271003146975426698198574726466426935564195663172596550573939459268043903130728384360738375036588819792441071396225692840124056630287329887671287472954448849281959324594687927072722283643899783715851772608714670877543104357012287610079118369423380618099449717884822522124908263038530622785022514496829457058776322077800871094850156982595219567874353414629374024902426178639073338017330879850724935021178339066945571052928410021103021999613522324046712178176248650893506259997713760165380268767926311805602074624979924336518325129130865917779473498529003249882124335918260699071718923595894998777983321168464928727148693987723013637618251817388715489868447736112876839409920066115906916145789392252307089487333347645223424782063351322548556918737810672645795478543749928470747384268922812455716477698219201733375093493075631356843973418524691550836506547712882541597229008520457244129239489346753887157815329797017008523225671648609573360644452091191905439637512353253089034856370005725780556094559152938279886790441499963867498192101341739704103768036333906063422847766690428281152991948372047548940670012174128908350918876035683327559285839685691324173749523862318178577911855163508444233871023075011036560467771937334540775397593111021682099662197881506797716767656631827568126409562667490393033545995653838205099516395427017231865618583748742893311068292908632566368690747915349123229510374622264743671837531555889551522048954179185438334022149559529598522140548339335980858167451792661338568824608347698561081933057632801152371873762629792346910769689901869021202185962243997980778556872360920835682021775259235739637978063745468350785430446795560799076678008833756531106658265553665992425364336732825494728500091099959441701685393149209043247624564527248434439437619985919534876589994503963309630765830223964494303666754533346402834087940077479737947575398727875222835956417884893995374591825299431951873009286164694149662437866977487154308189443033055843962564370445108096887267435291625662583005818905609143594369901650343164587875950555426930217421728765243301795278699640847150699448516159157984394853969667753084579879766332117084246092680111119178395869771817387945932870243180677306200083307711390320159204898887833131800435789565478485205048219972929651693449463622031040065921797877016974804004430590312192709567983075319762833867618621595551848273153727994429296745120810497022829986202239350233860865766736544734398507646064447944691174588046317914862161025700016786698560491584700447772593929335982383930832058823508306555906252682258261412377378644274057818083520852297091442604809021621960947570702905143758908267670806998561703103093530179597695095509382644969391475262771236906859542937915611352088465359413237436618061282307890729740528002691982010350374729821401828556448077683554185808223520557581692977668521719219167701970849144709062140875568860837893947971330288919016786096072525703425916382730493929708991597886791044442114588322699578568395995089189074096973994679097204970987014240611262787833547941288931833383917274875797995633808113040225178223243947950820187697567290480486828145394761391355422085625809817899325205002688996244097121072871513980361386210934927357570896875627394728167854963267905250263579563856053715557790012253248765433785589595638315884682251021115980010587645066513199169567080140175018222905854815175799185854155310300206115300132556264729004701587114150486867834740336646048009131795865939361798925878155031363464189413137503468637732580954668028071827571011968398138791892055740133126607605754839826148935856055505804851330312498753372444083216863903223524027896229549560370372262390295986743875152938807202867327521245903699785993512608310839206059107805521702759436990338041047898004898760313880297493725934275992344170173511117993616978145629345999587735457051510776062913294211880063373725484466920915679627913399714257111599582957247552383725648161175496754095210755508054600462499083725852983186827609704302759367845614610563380856451353921009438710291911721739601346164253960404425722072344758434977714962496269676515162382933797190262932780241130804111672194460662497660759600281804014864705750344337979682189206124908531141361667952113998381942262023989876295593535382260692248294843814159157192441299975440749080450339998628422038016123353721502974234850545149801428412822423646824093694901154073355372833200744432839271582710465365363316684397225502297070108775987246768111761637668555650831788740523332812566510113078841032805817859846018237720561987383224017679439909291742435327898731608610867958957657435961262999929053108319456803414820084182631845923626783574111992737462595910495504493578312750351105396220460515204425480615647770584685766418748377883045123895723021425132284974918103354313338392427036982625296908969622100730778017839796129598544668047405171686738745579333389855607336460412429565701427466670325452847340978888802005960784569747570956310526806965689148083424761578910283244212621593290908363774587107775525762441039615601911813095816494667778533343272664399900950193762178094204823693994773903733463462568066275715371025038124627680240020070227838060469157223000828285013296449327708168339199141842892626574953829799282589230450724491104882384393656204371851107024748382229693932095438029226809767723235263827538521779873631143939825085163371512221442977186495003078923933606843663023573241973328826933806197532209660357438432538924906993107896430238544860672260804800551351179021296558281255782688335756505379737928457488576390489702183089602493301780456829736174596776036916936069237788032496919180495750949034786772613762383272239062825259293774192303949720260564138293826131546648628403555601867545693686324771317273021629542854524027067599315333791912329532109724315469272229008960011445578247413792157393274072609573741211551612250928001409265347484091077527920883878182005175888656997965094669216954624420665739850290179334202259126397595861205727002585702708104886647765895964380179156628876237846853512351737464154801099748418021821450186875243967614332997362209119180893040372495644044081160318353471204265183295261599545922049339296802542146749961864340796651054874897422770310894477198708832312013885576081659705616233264189661108749963519901359885482518578636459902790531788218122368039293068996220622795661114209292976026389802458254765381094900417605244822143939000162885563277648389946333572757587747216916291651296504572283821248012210842939818895187816236367889693837047007201736265852475060856256957806933167039330099087815929173353083602945400409980672962851701620455185733656827990686440051802093975912332588931286474537047004399895379343049669031079737927469905514233883516206252437800687979119042679912275041073904581740031357375103245430719448535998716435474717746870028591757534182162399925948027699876866264810325520565035367972459716181971415111593057287963703287649476897139282700910233622378969817025713085135850438305996368360793815932032532510734404303432877505695090180495988157491795240481033650894737310519072137335105161347073411580651714847285168203520915458294192572603445195305649409123253469033278178052092309336129235943415903024687392030933842439836145784237610996917116543566656300577923571324119322597587214037949235290947503843949055409768611740802702655771963761937511402724506399934623193949844096907717160109371952943946335948724950421193743727578057627947816013477519470710142482716801101706317829988555101246361381356920128162261608290258364186571612790482084576326059533201512562240634790268055491810395432019731556489114475305175063437802006517098516072022686689268026865867262804107972813351988402402926745426963317465733656671297321952627857555844302487932161850050074955082116005581592033953102949499951478761690476480072539223401378395709976703071648903904868453922146936172084007793492168317982868784778764770781094026492751773457050838310049006485674533441451268556045583639765525718835442205080214567058563812597802225863146897947465230829069392522528184439508215062042023912651150405807154666818216181695437388253460404479053396665062401683317155837206819398291669882655481173944251830232501522351435536770829233212037016970845039186221140649458584901959306493534132601358140689913871814285776657049018600824784791146012271102904549825119295983937711428141521932535488721008594215957407222545402478026243819657820151764284069048900455969625603257692377426219110293041829274440549941807973519829306710960147736689064561218011104900393145184829576602673162992231526588246038367379044867993716980985806624468379906883026254546033823666366367754294979493341530970733371837937911373959215713241029389587339285712582192152534005199798379121695510840877592346807231735473082049371564936660271654752511401905097183709252387364476540462519871937074989606585885997799842197680013499111243464305917184854192940325266025431956970984932741965750477265453118630933591671112425509533940869894545032916594618626687913874419143935440870349557507808443362201025166056689424073897061042831714063697784725203872491462870930284995366907827725807734423973225785822734877745718073648553085624830100699762485451063403600603997056621302318013253773964725614543141880333199227386801246738743470744876956380821620169338992058481512049856298326984988895757180234571941802195463237383872000356323427191774588562233496173831841067217167375557283743158032158185435487532820762781393025691067065566191480726778854949719715122151785364411663257904199642013044608108104130406921733513235549038526260911222037737278389249672359056938638715220434796908094130675216284228720179881637053285677684526966975611206967983699924212522892900345288781652466116180498170501061056896000926953418230546198921113449891487602002194959077518931669764424460443384761936514630492794290888722468864284868471726627108712095883718254533272299088131300861324903593658619089906384986529816698102900987981338919016767031849620517046638990992077707380248872322643683806321120772457824829320869382587551933595030149789552931713114861759540027785997156728417064857421672083850422055014308766571285366885860975326679707916235938599429976173284030963957606166404611259687762897895205236260135298678341529850779383524241896614299516843915079014874525797731519545344887590845689724860941665705149141901133866654679695139630765063570142295917321487576860163866691620915303086648490157126649711356135450402250555861784778196508661231125299490203517568255778172792763104849924045080277354979617209491917478996670640186499802748596820877449969137161491968302725296481430581105541272642210334002650012315604298340839327012924199460455118983733477053473442718882068872961207066539086939033328632025699164310929245039457104844864010508374540082296679323891388669164079990767161306023007758350287953369835514027485643661018589282702436384028651596348173064848732069007435361594062690642785169947803680755391952396051145009111223426606286689782508414572525316713513452832798461633968892334344055994099847334016818566155659139542079863832771778473273757982004488598325401989003944075465294287651675154752054187117371967526252015172230285825043016871724891008396220374354166017642692316127169139306065678613734023241621021763924827936581146510037352415881150823492854312538270392351138008547672910539333313943412610661189737622761388888554459826377763978147849337328521781287247593681376613945857135709232325448304264248503947285083737389106537152978508579986700399227057624873540446230726955234389262894203535518934300349342446175549357801086938868449127537362314563003552650564471642179746694044788453164389040271820126249342388718269098837610984252912999126205368786534870200456152426403761408081273000746354632728854096101735911654984016600232416338356190951525793205679697626253123252118030813793658734176401676163801994494625925926984358692048573605622423322530485095771528110942574182903031010100248715728361872205140698076944545723690988664083352488118058430070819512540128355161341888614231340080383348641078847224521923785427655953268482950693893686079325001095804050964105743785062075087931743456066110811117059840614279653384943421932075796008719953634929287920388267065843004953805577585473423966402765145669844494914868570113490570961291639697430876610326004933885995658871489655338309431675988927946436269110525199497547448765184266919491950697902498435744547647635516372299240554331690185946966223841950562109747685651970715198973571516012516397828729666030667360441819854896739180586033173477995868712706841167451844889136919664696264437734681270214676069252466292195031328538244601412578461947707809590788442464213192881497269841570743060675371154344717587373497744717668157525440395999817582687797273068050715369193666077095129272331042893235432294949508548964063272775916936184330933415471844409817958284005454282053197364117676939920891099710847089627442011580807322893334477261993491201831461809946543195286397954110285693223306462654059809468367780191468648468434276283933390201790095500818628924368263544894327928437474258097540806460341736292645316829477677191807038416208159456159504151615938718294783484814752640069607959938131968343421070132524446021919989087714998611349007252623945279419340020562349989659465928911885427097903438081516617367190664477763816995605273269618913057158990453983404643841638273107296378537546686196964357045812371363917181666903633557835284208862184911471498714029273253401401220073787257951481630022770873986412640156478716344634103975106665231201079156286354880711575005393143518600272694198817822086414141208130840043898573832293915801370354918939510970461186046417861803249174829616804066581357184520656003867880002175662849455900088964851247918902118448320544845487262922229313398668879820602628447217795528443997281994165386759352145793809715039995831997614320076243786023340303835448046630612528735208485415162845869480823607754103611754414361271097011443415786073809820703590813874886567127443273101424290829158551097639686037888977801418990029409284745933482698341254514658206320427630703916501868658638228217916112066614077325792578387919844238393055858624355659773847381735322817131087408779669230718261129730275259926370812767441462399872493471000352102984708381027841200851231788550373300597882246028381808399049155930948851485384069093568393404795157604211895756597906155184669439099631867513340191470613852990530550205208175170448438167752490122181795145585332088359815168760118130307163054930778979755443252803506589599968433567254172205342775776863129565783521711460504896053968082413482035173136828969048746497557083517911716514094781984442154067906884639589222539870197322418906462526682503297286764041328649200754830650057251711301350545871954456926219420943595355948493559405124829760136114269677144655570933178727708125312956560690338481890190863692442110031712295710192362307137794582909958203518200101266034643587063016757213492114096106794763760594926363630001635541891446591047702500444714539813668240594339542267507459812042455203857081084261144456527138611982338536599589456538158398235969790395685080490996397277350646697353500681791823882743188049105139979632472510064083886971950804708081022287197324880899521824894487163439806432578526097812851069531903972870717399201395671780434748008456586391411072557203065934602986933868736345636136360728132569826445387276046479841293593060267249613977662298073998017820552722021634195827419970728689961099716629754173449388605968848930013283181671346613706871574582904594463261335573459253934338484971733186201313774591890621101128592678961808657627176607339087969198601593129013130451180272744363605142285178520746194975817413467527292307752299243837143400113994489634083629513248087773051671617874885174376985962444456370273068386044912043235260745016741648928113869569344387438379132586444616603997653708717773470556562578397089920810321151320280394478195699863091008424170514076317159077427864588117582678597490893329649351876926897101255014370932148188679433311896138583588868723669076849134797529397341083042020163583035003364456393315988832821890347304282000704527529189364416495459201978007521630524987193755908423994488173932570261115554810042863609962544240075814939165743949942857289409368794537438901483895342557651680396559182599605337370838691048524932717997203672514544380835103997935133900188258475974919113302181975707842430332338864912811656520177308059502203707849064524925969056005070091231152595548462512468011033892036891551163851847058454059132835980481021912745017651489912051835993695564003672418387843639781089611123229978342324525853510419343917898402432282940006808797428944501871274433925115069424514281898531643495815843867498472191099826755416439181667116419255761897627122056785102739772511765679573956684097388264523373468233195428103372685847176156088982017260915789014236802742947034570597342573819626505346617359431449359020427073710440224906642694007849043458013021334721833878455746148700795521322844093689249784618203207187254182493542739122989677949798628615914133868096373455580631276297863367083707016537335649299297773547102108762226328966759683421381725499112984934707727484493369436629235524074022409829843712741530090178166471750208857137222066359216361173214124610649698593205210728484098629201834510571005299867217297023979443661616535855892386355477510222536853941114613867716845790184170682150683963355459621967973078561398417209201330064820461945012401930496632806477145725354448125231656631568070742310817751365095923857110638226475276637984452149947406010727874338758609366547012973797908020125623682594595020143473807793040787084888102751422560064763918410481332902287658675067608209442505113696142540231832037008961854965136389654553981426348828822230391858694402832226149208806958915697675503891510651451041464346832388869100369331216721172629961146391627561819722555715295839145131154177725497807521300685410761236390984068802066381506746977928803315632362702149485962863044905673114128395290407939109743473796552874245504373400386565583062988658288205102957426292766932824771600472479329227196169129883340722978497531444094337945042082234984017674057930850422399263654219476655758352607457223675507374529295434695526756933919797735907501544126818009022624948495742662511688233694885295107106196357336549353081550233535467948833880814367698511118598040818572828073106621237137213908743910409330172889900245196685386330354454951749794425517628524530012010275406932116318650978788300565791201821585417437259430465623060347814511862686051236470749983113043101310325943423531651261786218534718379406002466488679935117648404903522611741410772519630431563983099555110082006674891070601269163910995535948834796932551711134603903210637623984352632088107417862533328119018429227149910554106380116733148876360100842761595108374795112992514817502347755260080731111991400556560555645388835679007047463639041464631639879047897754917982077932181718081226759753781875120293151802903783415038512913735011078162997436914366720070339315960363368930134623898453206266287349390972851829458884036667871868923394520292857590286231791206914184746000479345574328733195050263232278051913687338491725066478247850350185876718484732423375027235687621579389437593125112938609286039692104749419728106344291367246796744464320678330484350671767091781416762441081986724182527019383897002936874526607129763521694220823148936326123257736909544076371189726842802850131139102955956449223096969871913270123716820636873408088840717502951572423908725334663910506813623244605212805794685609832810031511484888464702644685057001816963683617597320547697577305716322514420178292825826233168559539212017775832631648763770063180454464691838782440180486350785046341231726912147430776504084974465122725740947381416640440339037487734935586946551205879752047722219875322304857083207164298537086596718065491384630430226760412859990425089519052634561270579923224455953452709611777012464029358794255838412805778215341800137490566963712967441757784463399733840761654023888211250135321747343553171674051825552023906477390086198097977290162813514424978155100617528685863717734266085661048570221758394507595994932714086513810149239411320064669855140736430792792359300494399300738221062032533856345341428264180469154805718191216318352705364908006023137326598867348144555510528426623243114624748877641624491032268496288752103112764996161205643265123520618397905737801720722885690595570666793622136678454798677637536190231143323300383949901061152521807284004013986523582805958291651548957022774233456663442227830484052232213855217746640709322894553923713019547573412451928962271134758017758611307647140777259174263712856620270968188494031702403968886238839781104755484577158105112852399248763462715203369793904804194524283140142144660790886895923389867065201882611449208284163045305182654042596168890622830062078628610101171186181006595763636266295005665188281401297464600238697166213864644124269259165874283181879292111121055490627050644473448047876046084519924345219201153313759086381610939801853165933951279959495467865081348593704595749526802234290339843911260459123173722247758715984024889088783968282200550658729390196846741440926970824760188847651724315053543802162468064877855010101852673923594345066096301919845227027804845607690562205204015081280574642044585509223217201354553959045546699702228193350264841220684901268563585052368850420749702295731683049572142749918043595407186325037345809524570722787050493558241686827233357283810775697393706321852250210725183336135520335864262970925979130985964693347346030428958727749996474728175608289000915970307985800758510130616586945912809392323836870936616518984121743381676363446756859647081231037272349727452559344234855740812207158547310116764925461141522709182276063295106323910410967389661075536817070766875612273378316545057040909251126487870357718237514428069484873132416584375558385244315199231802621721216666835785410737006673741269680904577909192819472139567188148373923880410150963302312314020675682380620327668590041366972768578324411326606367312928305640490362134137479301666027093673085311632463827262657659818186289076006679289439299544230563397683650447490316331355369290549956435809246855239247550170926568241729717124583425956296787846534913087754676692876244834477243726259459136479443529648380446956535194389574214135000699707409791390126981752806326440583403489640727266804934292939051529182790901017183793669945293539122811750793205659442931847919616231400503769507389028114661953257264759253248282442087992424916813104614541882958247618201731581090871870578799965245709222102102679451606549406595997490287934379507620178447620100718628743212584088656250332322233538325220876082050152744205118089623354773424712880679322625353820490136033997257341771556722495775137383293838897999107011296036657207562320144964805354300107704605644384195097751810348092842558901888158158478681335962309139963572403318256828680221221767608355842238260055481441680907340564397339544075046108256025294138570298153616825674357024397363536178830902704909319267997439866548143049212501286871165836395410752107227080036668696032856595088343658162796866847780817341229537854522212346471672468248951034053269922896528672964297002715284724334297679562460015954684532758617470136749448701216490127498030037377804181278617852495835166790933662149194362832162092161449830584600194931832682948687939356314140964289917337822962951228645457749823870274598787628455143134810229836703558503726860999648429643121732355023309976717673977720941148319691791928704477589489546738286481936249869487079753060427565232472353193563708310759527998836893671378789045334863134673175803782212191821572240757788193715831679220883202345666904162978280348766733937259628688370173587111891219060859467691585419022729120252647350201697037815442126326158481964553422694844390292513420338576443578760380324032779037909514230251357415570429402673855423358645902603120560770190433778002059883366230413983597732420163815005753078199054095960771318012486804484079476930526175511744288622320938759893174799902362502804659546472672213106051872384317453236615753177810199932377000458541519913742213498580100277629149806422652241211791558280097517338542184013452265769177734502352307783090515048935807356921125509909851053820853836589993242851337976460848713225087860351114017753911306296849859904294082611202207235089023080868657946892492449733340272305917752603581145608985090972297373643615699688076468305043063723248427828446856373555116693873840911282596575688826389846808093900954271862535081165710414196049125340480258890823528475927250419366293268035328732943869170462588640194009595448438622243930773155322125222883051929604537197866177195430821077675829128102591330161561172871030015382326033884861012038740029209180910629965600459687835161467146440988934330565906632549708611887491341909924113553856432274045797107570796353835885364237663695762140444734984395556617339110749707084494032112166915950672840435328702758465057767981594955063548728839007792092958846841641620049513302276076016823772712330920930312960642146541229161876601620370310021990551607274716797389041976802205347464015582028095100720216598074242521092384730815187940020763350187288388993643250050201618593997411175947102084060610880033045140335381914132680191290527230314514510379241262466285323487914044781662394529599531207792671640170419352829679643949454187019103958290901160907765865423229604808421276346614214525915058175634146237510234025962350663326741273951208969053269591740834814472114502207107468688107819387004937964596241619116976082261418949694262279144803099444625549554247368336731832947746987565644851440524655111379942549568969642785372315465190875541982955683363652311699716803506773775022549356186477952197122514025271300263727639904731001410373440784857375730989432871849214694119659931782888294600988070741920658395000640357045698617817875449764393693389340183331659936564218913307971405777900829739845936436468961247877223659467529970515849826591283793654661475636710086817203622577038351617369543469781715466498859412752231786673963816969804807703012347160280238531298688511683002248852742046787346819569126223157618444209267919362988752048601481060495702046365115049908606466054231956926975400810057998951271111506176911634041726674931992748350643832628810908124589114374036436096801409316178509590023724880361223674830287931794668144906692789719199426043547767291558341616246806420686463017726805331468362100686873695886533001858666296951203851275073387817231455179043538263370661420702078665650411007479962744203335466297939799319232073701849657645794021633171198229515380379887728982882105097287660986037176786309193222668773339587144164042147096574263458809754385609961042342971773455426570500834241028987548810351742387355058730701052141298821773569106724432088759080601724272637685143879474058792326759014476661022112895212114646654209391105588674094367436829207902305606613815067049990774715311812538155712095202822854620308331991304248151783372670518759459980455944265603421680749324584959325467418822315521405563854280832205383751291456534499549840531883894756911150347796918948011440074084829248054016919675544982372977407975397648698228176644016088593079859984272497432173274513182223570670957566534862752298150686153620476163651023163371035657373928502515670243999303926621729872905628745101331306695982960319470230984122330077119491579560845236896973564680900884378934401019775209492243391190379908386593313978402542678890557194382857198419468635228655054079921328292878091982759220157071944458976822401821778462937128930864002275000749538708824327656270036601029683757797545890040813378239684754442153616511065016280761975538219615262948815786572779922243457715750912336504838827109269093452418993238155194005847445248943844175101876731416551631053751008143103993647742786545778609907645487779853482515549184666716599369935463361227321063779519730567118409415076993597087766119200364120760673866735715492076913208932142614636428709686990551916944451336427206811457745517421380377478454341711069422724916899044801108252592918778805116281212290424863040889118963689956157791792015451256402867930788784940952140343118154805738712329962575795817664967900618267771507138466174937328618550591389494343829835003084749389213872837335584094096825812966088443429313939598797166792810351530442677299850873375030771185739343319459940347930302627973314963419477787187488034535958052924132565025887816810701691496576311852849197538527157825136329135063280483396120618626329986594976172934701095337521123576032222697167703833854119690368735200263206514967454191887088756590517586203782770988362711731296113719835013091782158398674804566817742085246455610925612395213979611946749852553892282778026503376369274001672463983563252066590035486736910317035719776669970969129353525015307736174406222892111426949095692816518865809293470197353316067963623429401077142213444169399254523792474653498868065009643866218084079460306367982000458213229864291948637471537266511536464401436338908762882858769842765021417385270101757557963501119370562531691328943934729121738182333086885197423120657818151932960273489481993927916469545587839947534188522629201565574444929122548147363347478765795492407229452077351107516488244913373803851285196856243698522171952400527305162581497311457121123608935803399070001834657875442292687873674284762514116308441308292655137728671861069207273583753247577646714809315165788943985074136809487933152766944025061452416128224990141393443555304098806932242562898126512954586995394906124381973821376472063451187729497627053849667926217122783055884394142478546350461706684840489686436288830115099048278234245567149838445873311051463562808064234169571975893181932317235627361282504628748871835746038713172516081372999215397941330518480398994531719456620288986612971947398969025004473074867705424885028744964040966322678306186862107900103745841475617897760217176027013505367462041150953586865028985125356280603702247130824765872124244098573093998487448863209077787861546088121440913427012885016281993486146061480271426863111752780922804996137841690673010829833124568361690982613329960711519791552032839721866500991086169318144145029928138042283245052525770401029992796747378626032630385844707579097688552548865457581219493046224305344825113179646994171760375411807947212229373782563926429086444533919687256368470271924296874605292476689351795619329649075621618605944242075908472725629381873153125216645763918388410504004922851948216145438919514753090886526315271775373543124987113565094651666964481656312728882735369236342169374411850297915626809099404583020246735547483760855372234580120297048004871638772364933800649537927335234553621321128619067997182734091838193979907343518035456311155993590001147396118391087462368105886117641496794983946560154941587135536196983748480236789265497993597577357830277468716529668421484546967228300741048676308556884067799919519347925271800285015381575846798419826979229289281850477505940363910362959874254547310375900702188157274406237683237520074121689454005150644826155722809329477261266968611483662693075725210447705700121157079488830228501282728025782659470541931439162937259516793810667987228742388432597959767695280934750729093335298723184112032967113990269387922000728387499033584497330806063957520156004410105099068467446944248743164861492773357684961808621723608286573296546922525388269505479007610234921757940028766600202856360067165738251072371812638647901484075421933557751305512195163468011627895039716994463526779736579569104341486412424854199976146931019627004469669500705823514428626283138824499344165525923322273259646258120382145114226935402214561389903719266747358201730528763548558893091491311686920562339052631726839892985688130855364374251388207459074594829849987998544621960245016759553118881560951200569820099287201140558719735255614778158415744055162939110086932853150279251746965181403848320818300533483592960747225075189584104382411738268521972720735636815889675209649279278190631562155738302211416956737889912173991096473416002270400550895119261417885674715955385395895756012220916792915248153875780370800821019194587305755510313893653892810795426305329391434633095008373511124736646306539128191121739348767513407337730581302925856353423072127378262259548147292125908067236068801490361394034376275021191433249160479697856170982052693849713387955212617603726143457639669047016427350181755475535365396544651920704177858393140493558601764067684476800321319090091952084235439454615988518101298944211414631645318124679338598662434014945479033986903543477655597755485091776583869796322210489576847008881544963586544234307132095490205730338220338811292901492440474189998431982533837313971696799376430055515751891998299906848163367985951814917514790498766498155082810020103017577286297121637001668111763450097472483261836278239239506466905978760907083347389112203521395391367610125521088645871547811244061897207006504586371279049732320974257916755181900288475746064604370109042899188647539224605187397711568624348485274390755976278706370200941310674326884938549422884461424167940817247242168306889431314714927322387258181738150103348129311862585731879146430605144385729224076368259901245878146801024573505105980019194006923850342825224163094882226955402186575846282516540913816263736494189036473694477075341307275468692200874644547025669618780251848285923566915157910213701687733543950183681598510898489862731704254406802167587058122093465172801506816178041742284646102782032588703709966427978670192415103725300705591698050298182596463899023018592020510145517258005388501570071680092791583403811148113142076988593999488606626951939456107295237596607920889855721363659954719600649000955866995729994976063943788494920613430515320489151083720007218112176397428797191041019355902083715374312094988845394603503718875963576987888059827769933546909875807390768441856528779927848348526786047311966066078758567069179797433879316044945978440624543822893646273844370117410548457310020232442340458360991219759464320409724308282959968926436286579257235844270795759656122968745824666080635079126841158310960348657645078640746434273295286968776889252526439491870066259550151045240964704695603047640041795131346900375292722070941086719471656922155811500676453354755499589843901885115626981046238013685410183710247497699153100682033078472892565652801736325045064313122730033309868916388415347629566025338277282132601482494188756775597340800275111321145638360681724971337410272648214820106550570835530348372126890634028810760772090698731845271829166611995257912587956063009634447135318119472724209865124539065296866681071092772636614550464128756001435068127657696396168960270523473286836449615288665982026787162563984462265869270432897423317463411598290307704348692874355091551389438186234637483256740902798809968149757626663113119563701410705967754577983468206471638187590960581963941128041977805529429784156855662367965116180524757972145648416197439832925688164503576654084623315979606207830441324697171616940938841636703786994596140621642656147802034626047143306280712738117566664980852867111500289575356569145764042017834674096227098291860962968676665083217088253776673016507780160431748698332306512834365882367928842064115825340812974404427963264917669436269911450727340022746552368314744007191897684044156027230380122198852578526791799012548447563193221487165090458579656754108243786156606691371503777174316032405931139703644118324039077561106934479955925937337474140098311003142646093098304111208962657986325516515372717230487342795953896656703196961095334343221609540398138607885519405826756684009644883512893583878114488582414267870636057139491612097579431945821047427849559102094341275433379658625522621371780510587772320448856544772428544380926346190928862586304066992281715094539558389556016345927502295908425487568505576879029578844060126076425209836735880335053656797856871765578243604636750142507842691375896378677967214472715846486375741311809237823398343188147087199137207255815822866903865146611357853006778730020326429073790952573633371411090842749237044302572695399940097733725930818121721434609374673349084715784675048102886681383631187338685528808773165065085428509319422614358976453007414734829665820505261824053304270665065480801954173381058716395037127742262298178520229288535872412007307156910690754262004686086430905465382708912800209401117155226202401119914808457646744530884735520679893929266166504733075390201102351453181355573119068931118265912459208379505796705371815425017101321172708096856686499429629635563676293401222232851640688377764106351387469031040181065170059990528080471714842814714052541512419332356372568668168480290288575821829227301847663680061335952453775584766519093743564791328447741224118864811885771396208692400782303376931853874136371857367777389133449562319679159433616682564727791997663230144093740977281722626009253229118057071705425887997409443287700015803843773380114198872094142511229811504828730573144101019832939387924282527498704587007709039163212758530425786918032341774709058032141055263436652238112150515756645175602169172450786005439510008141146046545347111250261246930171613932531595785540462951589957080142734983869269620375213952735228667746021364179846420307717866505511223287498610102325848609289945627518799418227317238764037493607569398636337489761001203136580927640365169837715969405093583708923433986294947519135966130649009212112286942916082340072883113449705202232388519878091679720048863492634635811691038079276124577541573325484100017961205241461204078952018628498001552022001385850830670597276540692778128818421231242375999131686197516823233146014791975828233356410728538789763197579886747977268566627833636942681744796015797328398460936656150052437804014519526165130090498643912234835007790344808633312511361066981385785863312852595385786505050113946077507326267723847063566140355040425143136330328211623884232026396275878417138822315974132039191809813876930581168070642807526409449404338965938743505055933898701461550573107881073524581283565520169943340043111695417467380330661967134270861682588257573464888345600604200627540232806331735821394300523058177650295220030690777275566334803788262785485025555099551968469217264106832861341509961140701784890749426802830063673651529340308429981001063246649024629770548954890374430759833048685449956839993417820138409950882330611435364320189090627608624851859978685837153837074436281531072975764824009999193282648778568676222521639236870676936778237334913773964402589940990401336740679666225130677224648047338502523749336032252395648767331194074632066166735123381483080151988152126461658852227848812567425057832663679156275929430580819944575429673167929248665872831536284755894610366988480909536612600791976572873049155696533149808928832152733990010894483253789506042288508180547391181869067686104778104937508593843488950583955983748547923199659523272955740472428806542930145107283082338658013641517269123557724209292492500963042353446250691990933511738724933458104122943099319806627448941449109878772642393722085433755588991895898621898986637859201857014099237580164974877467879712883178566737464613108000018962129575247314027460433110438516546397157681055226757910504625502300880421210151597099841270557217460669775657967224888612732497179316454805276759216439221680725963597330488455472947133091575256237946434258916853386834848159825243478405879375045960968644164792427647190785643196780698932755313164039675241861673396975690368969613906862739572486604459569371462689635887943294721140244290761717804010634713180437331651214657254366328546953175864527233025004014040246051784585471061694267486926540055390987396091457705006309263428660642756183247936228268693183666732738317404640759899602261234151250310025361908933437458327253157553896617952871236213016158378325475730888836481134989244498763788189984629190834468017945460351937164400635417607846205314347959713680100920187105503205636516979638598979952875091125422572851084790712009447122853235253871759632352448993604580228674310716243288457285489994988820559404518846277834516978911386864861450990575860101985874378779850884482976494831078880176119065109963452301643249861236796174471763834671185714096849244159095707789156392461436957805140956844875976604201025319739524884054581813833554031512915420053634825117990085336656827630405125309540981480226509469141150746986802768157312738578249298104233913797285754990528167010463600493546567383508705462930705399767201624499114420127952969369895629797094581598033540879181490522224356722483288601098460422220712091975121000214297018472509205206769118433469157323100932712915976367203215107876912159586964401282169189508792345089684109452928565055686019747973191800946294456008096888920573432513171195622000102468518556945032481594337606646995722280823876945889235804250875181652287261023516752471900974080557574986000679831595679555828344292990087706452100894502985154078731873052244489417451246080004017529310116098261214556643894147565601306639583809221360029941003707007329060466780369927308069623466738598721970540122288048948262657690812879373406548572230794350366660785224960607925408421179545496227679354334579248986280982265221801428845806705233802600705465300607428782332285560741959948330842098336517288076218144021538179483560642350868443746637672255591205020141787029594849928655909153265710565510989767362829202564806085590859363447539714237096125093034563034072934317120874693944575983274949020209513959498682419847515434842169781436521731163901333271047159466425767228279801727861540682121892717604322742299291790366794331565621240094506928367005362176093994442912367260760505597734195090859227814214554795310294098783775825505617367466458484687334356100463825061204916241820341528664671802132593091972936425763035352133294125160867142544504464908859026592390250484201586380370413173378786248052731200802868676751417234500258040654015031451671573684799741011694151377146708936232846017444759127317452251539648452008757712112209783141393981531744275246819824108016006956064671685703541999063524268833811985596478429661301948919963521869922777279538116888634293461402306933434994602225564485819588651884891314218125347818626025079571799367343243237623680821576718745038776644171589301248906143597094741936704751728238576851723400052278889366644322587456036545189924649366706416389195598440559501640716473900684459243997898695024604947321056119673960098462554575356129638588405335465083894180851945639626877825497744895908899626694367530716998302410041563989827413352246391177858914957443841227716999014716039947979960366921301410207651429052258120800830627449629912141414671731908201157956870837270118160141080936452665012584191089612349898589282389992597204035990800482206419011511789259675621062187711895964156596046157696158489392884165684317810337332000600181127110576434184771813070974909182439911504298361283868437288756026268718225286187494187993261144242721283974261016301456756957656193923377819241621049460797013815972155993814254865305841679608303456980484883360134345748610805488548293627727067985829780739748119983176332879499381339879226789533562088983138492194366884212478011304384440212818139451296082962558755140321073881295212749710358198725777547754700684427191697463822523560614366259120342043071470698811923573324946949419754585219243029902171137445327405701348378514291164199668418213009245004382356493599938613806684098209251684367469524816360995029157482610384352919081373340120329165187713224906871588169936601912793111297018487851604743281707196527220917324176150855532987439008957751163483033693325583023244999314176955698820761152057267878850366259152882701444483726008528963210334531857005754494346409173456285055307244414855190401381135298720291798469545996097555328101807308252078628318915850888200052930791064597220569598295676812590754262437696814726632935179760835364436411109382408200027596252384734416794799178203249814844863315392860743173729358249769480926040218244406519506507477753656300890886933625596985141386967595700212163178927835644116449829413726040323381824176729076857876251893138453528630000389320653629815037380491807333709945732729553891008778274380054967863591040896899961167957416786331122727457752836837115201712906979944900506505714263500401531804155589051105452449232969529986783173464304440808808764498408020266482328062411997866816657025369263305147067356750494906672012614633786621207386168883031255114757008053101096705277783020203344815638124680823383133074377556491496448551762565802295699290020709156662646081793223423921428485394290194041926925132424172012673783303426662777299431562686037301201792508343177173427621606714676797694613940168593418157751153173314801639212112214704903702630359006123961729536338216730760608018516254103305801356002142309566624729636489464316895642216310342563434105571922151478794448072563258156229308562357041008277513457825929772789331196303047861335830154607171812329899751697026529677434026895064693217362668738293052454711583365091776193649236285677594022538854829838632748104127574431310477417820093433875668951469991143346113287999757443949615626086423420397695503202748754051496592920419020241371613950648527115095401436191525320235253728066921000024525689810349255216538092009990390815761873284887998529807514648691115100887797801116412508071672425480694986467936454502897392679296980743358032937875884807873336746689889747480352044071582505322288949807919913594922464053620219340895529677762096224018684184233723600386845689899685344863635980403744863681137184464271888291904668282242194038635321205988208486500178551104221225016971425735598594031746094672046020537218672447007534388263073227518198939019275287516156646401487642018089284062415939357000561247910740258273807752076215678426676199638393441991373949554572837733601427973106042489396124847058608871864476910556172729433551774872951803013623224570810903990352017799672628482994853590290857437099519389826121209292203981213647792781688095639240668221757917534139388519832630170039315184921987512645613798936574992043105205159007474151047330364056384944378213352424699636214378912066829083180384190883748549284724247507534831110658804783037809200751590090194712143913212463559456179360464443518100470393151419189329796223448847368588721132047266654768211343388242391577543239944075174041281898123374055271683991055817932254360821852145714522078086023599360696732514663638591665869485189942503613850032124344476628644020420207192297205661965517173015098056860433388485581789506758537086370041833913479792157709381044201720669652327804383267976423243463114211209380634846443490370330684567037759604880123253824568443334697513545484061518029749034502160797620278305539757289770277944768813565079576725477324600256043868151086274472178655613926473366502974548185019884568926975407858282491880067705709004455157640011534470347567096987252817493776558011557748128865731278702953533540057962954546313332723294810563677656997870161127335863482494960133853777539924759670996131486028258565404800992204951732492292696524219126008751058909947328384931914347516032316410295378975793140908582792476463883740983585880867633057950169765692126406384252609149957397819361082753371079382455916402853380462340321340602406892781979621435055811309334108443248253300916352348734537203998658718368055648118313568998012785358672508185658133599873041068513611922289066862888396805073187858138775223441710735004620224916885772602132909335652076834465933951430772221832509107379272555859416856128639955605874127584446580718261915011801983823948311584601736167051673014019348894167868818393344607556423037809686606480267175307985924028161213426755967268321055980315365262387384734283389876604459530057656405309318720838022962629961387672852751282029060560479982781605023949960756811873280252255355182201608887838832076042025689918297052115034306296668319446500919891567954639787594472794932899887821461334661535867771407313245382267227581861017407318066137690587149743922475440092984248148793559908274612448294888493942770286706457907176317770966910456229046345294151621887756618879100993242430356013048702851296352156701433515799925958658741517808747777927517081775420717282209225251110555312288430562198259221532217526971466043356711903949278004358228803045180781854462006657235563944870228546073748871068981101881834306080933539637752959488731554642846465141410627325403165078913744760635544972909601696744377302341024468669222735048694909542024449854121502895595511795155481294466824995969316861559059928352482882195568946196380954153208964325651946311689766387948274490060253236387872664644334693748581576176094915856579380988870797500836625145002652124262336428870989526209151303852767182045866340402933817116601875766946038435943506215619228795128143437908682125404320344101606442082322036196911851596174994066240665371418760494667189133808865795013467445743156318127090729673606074098500062460739557623357803832440040051963562278473767180017858188100979014849070264441792934944934432486846986359823635608357568093361852152837161832434168906670307114256974897043897978959078430679158199375542109892287099739615890788253293244285836928753427040278016428365151972976576234654810974536515726143288252092966991174933136335918513881036288893651444996269755431821395394990748747597655412162940286412156555301952183564863327889832162973908276754178245573429657458862099725621377350858383965893635218069871159248157476085192529354686211078121944520004471480558938712866094200988266527940925676131331613778943865816969860775782775789789198829797040465750972710687089687133660536092609645333574504944159604407282368120955454442223836193682950902745602513610633561775612524268565415869917391563366674024734995882860343841856867133320958752102053989120490811371208237570845593273684358945266482052519262256480841882014703541109999574878804423699891529158160224043938593300507303566442336347742519494297839979800093012343284023582786787515201628930107149916980923229447719345678049983564969771673787532184607896978515610363541448110745299186495301248439418711491910430445412894392675890068958060325431860648810496714253145561874438224109069466776814292775543094647053631404916749267231164413573987470477823099441267992539061588067778801152369847049324215974565192235297885138963244809015093373717281026073207917601173193628437888418753245164589022379306895102393073105483399647500701311971263013938167191731917091409433313374917809230741221305665383237700933399504168523523444866903230917504120112541367704567322175243571850034130545199516495971257010439425159869560687913051684063106203404899391994271853589791354478684028779471742345129724881549408100147116408800576572008356449668298762468088969581409331963665303305797740798954557193078263032627743908815112105757883525619168293022581645962676988730129629023356016628928415345779470146611127696337556717790906881606984995064880720677297203240254609783382549167227639349610067851208116396113779274156290733032927182609048043112576802760169047150283062682733005448292278452889621505679527511608401563786221384091600960071759497587954054405619754055352480981880568546932226044892985426891569573205399094113645401701887606157942550920151980993475002899745903679352423935179753672050461196364506838890551399766361083600295386970831039561609045823745081195801587244456367552679927826183982984100415560484395292119961815842087120829102290212128274278549784070995009080589491184960824433247561688062763061453212317233059945372830861456475888067418124078010095831992617309351069179492757880744750327983485631505780046235107199496645732346651478357952523407927428094907282180700538651929885479238407439473748609589636422004716617861320047451504141476138894584434342756688674253051441770491326654767183596767715301706532659160907276800449495360263130939003741094502234195639728953208971679612959663400996104366584324641769972363614697337035669619301654868837691149782060486801564544101572130207260375035092216120258406287671219920064109414266882279763645951059795407015248038223293148839511725194463506227420302344202950331737512534060306023011661640162339571780907858116301825688034278138105453524658266907329814648718881349541040162712801955567907432059645956010729988145210494751823337659921260547058678341941736585111562596663064261381399067621327890412825251429077642262115640141071219822455807302230055555163623613363065415780779763064633716996011896671800211901823215675319813705539916806928107694584500954458481739890748644195604819232873405756673708347354354599704544438438678305527358066678865104982693412042387260229466272914840457806547074944570630375984966833042439796078168542569822409531656248179285389269711497655690635385186999630274023401569570082909257421775189004490266256149485468620754623053501401231939101001488989808887466724179147998262457242385927553089026932393796597485633173575002517667550532241167121143665732709633205599267462215715031178960627205412507212498022463940827067347139617266209337129081200610522807771479893625506562711118483463633396543527286678943010632628294055329394825003034756512881736017918808422211608568001510080693477574225961006983156633478021492535842243736316056994356567908098224476661139482086504107731931724056933594557263895966023332034868135469829744401917550154412062452888195225441328509762883279955358153801826501323472617321553358126270641886334570025302572150472826047079087727731902169832208695616315214864834942379781862790610616229373503240052295557111859070746272647841962821933864000186432596061782011983349679885923324921226986674192643277194776474482867603191386131293702326998694633556268918237887086778657753235813636731682200549802792583031762981258922474782864373040967496917876467987923925856203388109306620955504035306753946697380837252529759206985929306627814924899032518549370255394690901853131986731559256417283228384661515263426393764414486944022847269653934455326002997728519082333984577140168460509365772609831177938512341407767583601914117481777534395241689654108741440987491533449561605132622345661658075431706218580443453880427941236719816497372437963970756495367568856803287369615828804853111423280781546586238921159151896284594805814552059587325187364954260506706760929381539818273208195255942917636068638748191738320604177065510537126281372051781429572094743556946572044864849464978172785904824315016046991906051680104262539466733438289795845345534381738303480179500447333394250346789109319036785990001150305417559367959851565752470134640301092662599445035029674463933960809826311735774215125344386425346704046275613801614182637783044369090921582918928760141144560123555244205418205206875814860738428275168288159089720357146597313179479376680202594000125971840689977804089252254496340331699992200279987112349084426567992193472539829916312964998600523240716584156443411498948053022538844830571008065163555709693578708779598428304680115319505914515474170577333768040044492307435566490837509133726475622064053738738444521688736169802366669462417793740700184483344827087763567791373691261671150827654471721292255652238221077584599763813344484720760588656187787717041379194247078028152408947298740497393580680560487726556325930755632219306807099579532611839665072690828144612157124676616061814743701654713301787550071218699308053935449685244792866800853250552024460931494126429998117902496466062364114903659551705158987793363502719220538958847471766708516909245792371660046277334982429322390257643862492267553744360486045244223724550904332456669758455201412194249809524312710121128130580595380234774897752325712287437796489942223191810856825106036487427037046794536669553634039250562307933188935049648563828151297567806851065993423184553179305773142547117167944495719442953531458127512886828212287841194613298202503079409807358803627534225179070680619757222854274397432476348346377841882437020392807460785053245782569096567954099134950487338852705372136027502953524067907522989530267788495831146125971886565818080603967979193637834125994910122615166657604946108356938928031066596193924543699551719895732645967227982274640475335851482500629321340163779452795950629687315302791541112620566338481538890008594112738745327583258862248848525965607632028825801891966413840948262565861572140342622673070491724130380339857710874521199382880772560282754973729411792039345669407811333318858744774442333468963965494404170823916814732049116208562075702791037085351165180301846449440857867607714314550443600260486212338946428746635674378430713747173532740289998728298839561933712295837870123386485451741795854538139527047651924935760966726595418512825758497316255807426639479661638710554238987397065530595463457098484460329135910332736788890810836466350407632528683416228695740672350224499246369705331022605950669950647864417425113118174949941006805535418731514635861221982178714607754119980635403310900717852142290720611495548692736282395642112849752691199239103195362756035397524259184385361937953482175674372276041299297458126461264236345056430094044388854980398796167699320400357060718262999730123720600524178377597805552776799383781880393780057783420609432787205242796613924971092941269995555635938719932798230627122968606039073099143060012905385811375856462219330924016815546909703264100653033011142701461614334314108714773323140520422509916443581993706466517296479682078323593189773146642080765385304647520917903625728352647027007575174593430472486684890104096236280150764682084735720396681964085844179609730864875653213544284259735498568751616870754945917017724312687602912799271236458460363631579779843514577133323679563952100603892385124591235764577892051517256744529723980364541160049578933365727629820827485152511445456780064093448695294923626166618557821435414076593944588557391811843626764272742684200160029390293415528509180908859722111531964291422512254722040668444459970274602552503800009284911317726148432607412100487864495842599886638706558272119198206556880836239953918829154782676304332381520577258152229913562803157117485159965275977828761542633625548739084332931798451743386476244194397098184199612524836996934045363216296351788393041903033779672056997577424120386749549611461385513716639090645622140954600688847136309709394653995065216010652035032896862464964035646311516413337466308199414444258015649739973370311466626195701964757358445281564593707207125294786293690063653018335015277509975092041572799336720448053927143479614791267967246741705510896087891970813523802435774150925464149932676617370247540219745169770704186584626370339980951956312247612629465388912914231278172932363258136985431708737606723170906724773530615873580803853573387158854125239557466132167960542888396084550650261196952912284914870404471227911504320051856966523125763431866161269749151492358210845874730183340127623842877339224912527681856696011650424710829679438447123216082331287602348444416845893548133334758956576907264536260371791117926278014848730200018088508584682995929797329247876053446294248602638054421543728371252821983920634696113472555615562930304367822168727378998956924277169637751888672605904286362688947431740955521714237906014168121508209199584197869817202619383335486535376055252709698451100520486218221083175596275898057098199171303449652439804577897163937886985572217014118050830883737131328002529288151434097123290965975801871589816596673169144111709593856413917672755063257953386753082442666061731510502333441629732958460455241327373879024598776729261534029095730070881669373140260090480963248432016667153015986082367288442009791998765380913057275054107817593536484874280437866738128549017087486548353447664270379386854263370331794340089903888441694796401986919863199381398671910125487995314991389679604427229510999046917660108517917721485568829686502480860737812924427711205234610278336212997667597063850187711225205107153040289490989981676424942312964144235953666164906560325325877658307077736434036504460119512001370034325137595678654429660840784557926488817608470657780187017266690174159738991595325788196843853025215568449533694199373439751016741037154609796783905791419596603009608319103508992629686595123414936870083078515003947491185672317764820712480970910934255484212272837817678415354121963836952768634932336276270438628660758154365755410882609864881397924377551116018616648025711813298541775571478787774305231299471759151414985130550201261148340968876134692053017167987833580260303576637814320696879551680033176561880487838933727241113300271046571353722027801661879999067858623378864890732482623450456142629591143627934375803426221491154865423384858680419108692662974537376665242723496775670686982382593907343010109445727024304531268523168725887887269497990107636051119278324224777803713351027082565614418638279942134370257522341924288802846351198959414407234221879120137665736493081980915291724075692929609836043500139963466796166404016781565818385160879298888012246397164868192235754879657413022470159223120346778247796778601031329777500670064625136368099487112496338729638006381699948840356942158436927087326236108676808790982059793020393592498141584368156263534792348190853711604585718438114019504754075220376797988959707880106555446928668867754697959283085460628431805715738435092474601792381004341052629418002509738362114588300009273420257513208568948228285774985068772135735335798575153890390373579978464692772415615589476978072754917906915415588734006772591476152374667264578544985708252091217715623687566192452234742729631673783224221619793095957900350070625629500087392904717227496243451178430432527803361081376562768678862582560390576832384930694159347009799162215017725258857328618839323344208452579355140823586298547442668322200807806552824907192581375962016242349728096403507826516517623883116116207617464993683794304703229576914715182949384780906119324428092023482781901354430229596301308433594017596781089604488812904086721336736969331876946699460831103524707224690603870304000436962997566564348984793908833241594870637707620841449025497408388153818642472804350616771263341495806118155940415360162998013522236448981061942089347985307048102567361325058820225557848010453490732708563249207981842499783718325107808355423724287234736031095465490932861977405223586936301507270849125489646535148584022749987392557073608072079829661841210564234313201143820629802373996675681615384037870091036377094763671803113272892090061075947727666084191321734695991877041166913030677907558351522532562513012592072352576686603364512453951014091957431875402495403756836828796946084777104243648909156067880541386193124363197412742639479018192623457714283675092873291852253852460147970589157484297769062742832402164478456759553340374169581568921605319759457681144822445941200841726314578175645653234533680815697633257451185858717921646660965598426396574127998473673008306604236547041708669597958489979495473885402108209370927613824323798812355378897596728025843343433437742307482813646991723875712051315401619464964891621441788174057155527558139960501288739261674840738332962055098845301340297223875259799549971015035989044484513330941828172554567532147233052516462960255476084169592732093540015826139109006645458741774891063819849665171615255364740404239673045262811535229805461717779889272437192495741633472996251606299121018882707035168488808109887210591532173846806232854817397014203356589811721740314136218602589943000223759829132365238574092475258318283674680309729422137978597196021287069292575233267978099273024283028158241214114342986078798808032072617612544487247378054225623376059528185783347939270403108579170148897243398757730687785123040432941484783585496025754678133538287011856958804008019406676894271276190024090563808807749196450745675261508601551568047856423494101540583428899781576728918570837870720515369245985159518866880006768754867895375058542868413440789166178787532764496690825355507485479946303665031702757219047908701436457634033988665378383464823377536938909699297326987325817769983123966547274648261369725627970901984520579681888943125795135169144156479631529842143605671216914859906286288001297396143941304426175556559045841568857666006429050947707435614219474500469500988668622897485418282558245671432947237258593189976279838548306015774110227136927546093988170709946280571657646620881243770306267438826642136192975769655947913357432925800179824167119696248706909970217061481186391108953175832940609113416303710952950807913489953919867849458472104251629296226685129308444455274465565992095694795090678303210817019669750315229863676502490339497141709344468753912018487454081770337530475828977068433410017884591881228930267372616950871102832352957739186282315227558601231208585157286101854963475444772591823064309489647046208609046606683762909476984991840384868364273659699331690155929847248843720866025276428379741034836701180943540451000688819765839596371074420869719549578657811534589022239441272612784854210287011912597638585286438375567262969727234868057235079859546283926030784767336776495615832325540345162838024134527052379631740239839924910140912567773037706931271218104125575586961712932944270395105541662430299461695547790981248254531031150396089981453591368260354475945530612131539789857195398539585899268246854623965031560483584649422212557928888678422712956803125062891496079076200751933258676336698108897641631284957157886432374013930989991598289940027730773105986538195058313379060896350623000018315285893716990030307216276621702675321895820916658386494806413602186901384991271020222913826783700882004421707527343259521725569631810101148310686820824051186060077955058999849388448357286331909211768141375336765463569352963825044193671787673472569511074583163038025249491607663705031471763414382760960014327579939443962470685876371455241249608457360213244216483742121366236355473142835497337182278309425463147833481578883772756537625056946885542663542495914183079272395007536000602097632670830866629096582321069472975322593363787934761472959402986693859699621512071529610069309242685474715206414681845863057348559443336378825935347462458678007860228900738666525673266650587641346264834577963925450466245467266707426505868349031994885452987373350232424557414397309777476489473750445757177566023041549328666399023401629149232731458164963462041736865007526390815180582675088071667293570136142268248091322769357059959935627268758631030231373072224224831221561179047630566313180112392164924670773227540153793873806973698066604491130890459286616975492943427163353608557704986022690139259612740577424491105906026712328055495677481867798794104572461163732441742446406247255658264558408228523946351946531842115907832986992429854059531019828839413545424162743904772929959874300635099590664759221444775167524014010442454208641461432226032379930969670157054850761049229784501084306748626763782153630164852691047956525555887795238886262465265698819704634901976953090800911295907729331704080441983204180465564652120351335514567688781701598792351818489020994981852528433247436262241663948841106160029744797876254254663528660449973601027498103291927690600397719234818116936259557072814892174589872128143798305804537769964050646824442702871584454138855396268581271148699869059761693703108169337936094872838137489593553820776526958021942114065072489046284411802958979313141453299824565788216084400544498938723267592221851193554030090127597582963399371054882057777298790984944630311824646785652292944260607331374170784040079796318372168066839848651910045202668783333940065642018519110801484737348492182243951943697870016942576560880000872521690770973497049237880468746306650022268338249167180321074519410261133273178324222832304766863650171918164051527888584819839681388380161034506492982692402138223148923120610628150014570335116776869784312795031813258289820315213433678363074797877303287954487693219999672638483755928951096973878412446724084319963761518377865679278070967994550795477638814009374965695375667215720892625282453654758596665652522269315283170159882999252184002365045497395304876509307700310587594847082930845829728906272233914857199198239471860177711340138267588469497321634790498094395549871332305460983946946197208321474380922684366738743677312604391472692893158351281620666895932029410947215117523217650238010238195136088309080673728105707532493524678391488635338616696163618784581412630627045527354102591112620244424651860587970125385579575073894078700601415498448243069488877478634414005495306460455391634107761501607865427767507315513516964023989586158736036253153949002213162659485770432396364983042318192291097800400858266541572730994910394808056551833705261225668066780885969971593844449093430172991505225253559675211907227287193535607521919052060411576009983767127994417413014461565837663783792086180865203369820887843509680373729715782012059674071394670748672172841045476311300704758263048707283935151525339333277474522201649388455381478679446758863912599301054743361734512139064441256773616965698786989077654408868241426956028075144017362759418681007955188284774973366040853421533290884119767727555468840066846293209837252501965539250069290395225550854880061250294190757430414568977545391412683481818338634927257699593913106463917742870440070004530369543772327245449390545925539067569344570229603673860727396625618505695656639438020189447707407562627157291953093273178059706701011715252659115432041274793463856566867859011743361907600870289604258618700204208061950526958453733342451371815462633035028753021253260321754102558618653659617462073053902449623892034957642242640994191194647515489180180547904627480545444758809826242619451781275198545333291308660871376349379027086967051484320484375152306991756371295313451265688197544840505207723320894114106718515946208381469078926342430781560055632873320801800863968918960689391540807908373672232631830658878534723375805524923346813024822861038184242160959515187007428572610979323643701699696595924303807009724879968936756841958847834216905359964571931357202393968845031545586189560679604279882582458071375589038393266672312537655268010813726320542232722171317518301528009904555155210691826373749905042266584980432225736576518067682050508020717744732772923578751585881582903381406055552042736256180426481094106688918363604068827500644513387554083241521186358963647588814008387530872673125733414317071886485659862461014548994482148934740156199748133040694617119650837242793568139928346424654387509625294678751301191426225925634967217084192631606565548123217660711351740844836381233324533840274097705906567299263436723746759753303755934293443871162251562992044303559948323786030881308088687445496467102077172572129095934781625066753530388254897512277556001664564960643824368987751050152542887882115151960116155810114639536012844451315186026034014440401362789412047572912813753780711731225112438311049509679151479989973948736239134319946233469636362790621880423871626312718135393120735895598616575542758672427456752878348242243153169965874661220545947237949408578518599078899793849205428515923828862965519817519333342418642174636023975643527660979366309671691772293518965281452679049299046395305454372292758021472218494153687539641153651013375321843914541961865838775634982112575787567482329698584814434959878305736384147556895510649710159231579372185210022861586684498846445058636882914386278795043130411211028163448303377003547221215238594251470537185489781895685337179984194383365752817023716862012550353660982696730897085674122138117541628181298618986378086101267316952060885608969802583118016797752238923910045302676493159045500576251216856761612259858004735610966315213959187956588885385676490494470140570656951954977448448017588356168931765675109785545093406488120617498918141078800930555686336667110576951811395531852694835237521979135047110939781063962278930697678634740498472872315945595190739274246090052086703150253885123344316435001975417080579884206414360182298009251107395832213003419108530870110755431003783720969348379696585766126586330770533775628619415447059815577881569052995429056472810538536989601983534831082703946817975761847052153590147845961052994979583108291024301943253077991544871921457136161522480927422595759721558610306211935978790501540232138521015221446738603369165498369855700959710367646904199068581538023315796167490369347895653069502362111706696765378829394572057075055369068436368381941953115727217902533314753321257970934733281490691591719595466307249988312893230401327585296852302231451133262235330477965262595358918274524482926462459576913591330517389825354611966333228610254546821864625336136692843385131756430405861568980789401598336438190363579757458199392439761189958568608121222761530518448084034896199074334760379886310236543883898250389186281322895141066020036844997837208774833515410103580619610768016166022904386516824019078146913554468426560806315395316720211268033276641694657505040456947358246233417135341234618157201566885890665036235156801301971047184538168025012342703860174831608066290048060010438653918109066582945085929986844398651877786221168095028563338957402997157389939979068803360448358000866895162605057860096479262370616374078563398941840577281525844433310054902012306104082006740375659598507128673456632943999820315699256075794317622931947643422694520543496466883167266453057959803326055017019709718501863431249131727426397948363272149954023395485349337674733401769357894698219133432354826506735465795858357479665878648489150342201248907371428476112997926808478310013186921532317150988053364542919042078702272821181304464968031535273283146834698650823655940593377634311291623840717514532162042796106553605230473731932466239044159010619797523587696797975099560231288387990579372644040743306418331461190334085842148681425440073730215135390876468440132880739491261269765238359924396980057231172199520415154508805370274229896000227332904908735278091709166254463393007005855287599944647854437447011608121245960856663908959470751896489993936726741121892911183382300875101112048347246487971292915765073433993924057259266052708881098796326662650259453548573323544211279009432367584251653146672821448033025675123031269427164326427256322624279224037227832309131129251061309561936961605002219707779088817751192517877540817193754376584835873156247352681389433659146165686711535168169844082812981658885563652660937316804886212406170646019109895651921122679914346028470996997302117255817813246558400363658724693030555605017869492380075103114672822370004777451169226868167225394453961191984724658329762057029342148538681751398031168862258292829299726426365871546750000643810658133595353452846923663336888546917344521269994752151376827263128250036974319134559731039136675532851639283670605103710147003786674105425252365831088831084812888300168129432937387346841405857395999150048083656045059018883280537634575552030454798222462705256407203939149661677387980569822811674522560011346032991402884393882053138318956507088866032958213019489888978820880258061826846885047334950581549805952995512437270018782867808771835522906312298320792288308229409293417860093072386086821652227745197665310380177065947056918558608076337417130821376550514577851116478702867297390843462185056009990949417252272198325862792324441871716032153723504524709049511944027618659809824824934005444081210368064110910516477335013565200763184401900243777634696197950891297475764727650748597354340554146518397163823868289954113870640529520119693013379390184618977781728391532517435927070758817554377157951685910134191282941324524467940737953843424699842833386774252336119174346595280873333962440137584252573122694232020025353321477658624097730771777655138213943252454679404921822106589740157194347259454616863156609030611293705782459127860971960942510922157568549859282789319215804971548304949241489206785848806433349308461406648366653315507726621227671855355670709323022489756577346204054946712215954581469812856455991270650029923516675366762930031882571562737493049984505493532500055504856589684510924944658289340006791680877189375278158283927717870515165339200954551589572354002478630717953997804139298806417850611502994924690270620468704284348101731385994007494827552586589584935931845725116918954593613058263297130772022172045569595222438447262548606604790896865791079854549191473479666577042036347378594597231408731462546087115319229348025918242595801808000969270726645150552078669180486612679247193963344732692123475061268719769758474013529136308150900865450173678257865398710733537908951073161081881345890665213866712777600284739446647099141255926920084671091064832048277502707484408084668179492139386393720801277065965033636211695649513717654370735806735651091751802694413004982534932596311676869856763024470612553096518739837748380177854129476544055488258670346914056280315688417103355341186094890224662965036010764271897047098565357469734873755892705579611151501704333724621513001445580211506521117283033138531860368601440897719552751271442011098327243479040192629815806186153869596635372043446652213659522978555007087861943757796294293340521862429601580626888322656365947643541568691539137824419014874772523512495456091159738527063528242797043900478797974044234530481461285923940122420656449499868911249767253461435931439800341960153116477700285463073841489413557485727513148182729933154035178011940096533435684424450667225368411074241618111629608417255502458706831293806256810125028935509618617341790335081901281778385161847056188900452931523176210433920233895298885675374734244228753472040233024112115550286484369287816865744278403749753909346510791748694792029322691001410890759498503532441376755217629884389958335585860531634918667875747966409908943825028711146200460003955682984145527302514071085732874072906253240327603089438718553450020607801971606753233209252896167603970434096372213577149178883862073454731957759812592746145905319177178296725815953110545431361917947206187472653679325502350579098503320136932118439137383507637132414033620082747808249274552616841357774354726040551136463610532727482800462273035279951007901248032009142215215582407781391158775022491743632495955903204007987951248903026967731509842558869847271208549971680682378776793435895008034341273768380977095166437745388501709192617137866312400956415708183293698206143169877177842384998412540420804810830736835591600599208781831750932809808109259092291001212348516447599643632241570745955893240117296971719481219454727529327811920559649466059286893966872450893484118019077595495426671143237129882954028009655127128492823124077704984081035256502146806645414759355878173841899988986847010734227742221240261189445132407108471953865186432625372583521926117461942337074746851530305952670599989301845483823595113178805186549057189874813473094767107192466615909384379178662456842288782619112747251928983285042162782829665437325290173860262292776280288846267164126440117592527275185012013517410140699114712424739243297168526799466233225852196866556201683330398908919282780227157287209471762290435466519841121127835088562427305866470356464725045055172357992249737802550696886472744056943446863685623053117693556398419567311634549676900891125898045926922787543297967444682427093430957595581395975783201633716060058523610928066815293925450913831583918100693347107536270607711834960611524836710783402163409340308590233561548036536112765823983658307627551834661209861724476192428134622635034118906192299491109360254221383241284917086941400508386757862075386444807078792615924367522409903772700450354449469003680454223956383117352170089938176748518884573381338018631156358780561606347354216801429397223368117886983746733237563374109650834081993870751903209296380307688977236762596626625691683261429391333564832996023386522533175578552458868083638307807860148832031793846068708683613573709530482317277987081124708214245289093840672666825036596254924569521328933919515802850507209064775779158943049314174716777591331160720837440081369070141540855722219984340550834051064690705725012857655900723879759080303102165018118587737211445207405766878267257635420100217713094599387518624844113043949373567276559336545593213298283468170040121603770475900590042261623318758008215375042064324806448380048454258003260999070530526379669561157763366800698525840596450379999698216745663745133597304791212495100434282691351489289493330762528022051423440772337993968786193051965548110145863800858858919795452561959894743892800787137294928640303915664914182804713322507752307384586523545802248196198137028612841983536496947041657255279441516316847311346216184468428661361741901202967617561354539223274666012310016104738004124130485998898987607586108512997190081501087918204799426780339554586296316097267659148491332050332497454788936579754289983725110361866600263360978842824260498496530874703785294191920322305751909692159752997611789569459337178585146421807387237596681507241394747975412531691860800366585943976537332425652233682823438218043982731791080186299732045017179733562462034440512807303629383821656398235894607417209785106270742788241630922071679523416667035519485758897638877162154169096093576749295834880117759851913142742735865536472753303783035740904510964170285712179502485020426277105971160005262176394645259185528136455809092033471809944652018894146708696636657436693826266522480623524199551181759214881173296750642729903326200038840773331578480551508713353397162607262430713753889361966829341461954364625969438704369704069366247795663215953264315457360903226291274408203777689147889405696192143404220286266076374722366401680938472944561126767793191359447241203349794594158344656051641578968544196077129975308298169061115005079207824555336042019928453208910843787944137265943849220308485937604452823356178786135733852386184835095298591627056905801114390944791565704462420957041776976391132326462060155189010198094094869205067476110559977734623343482130848888991206473490474624996980422338373743071771716355078859595504004039278674423053211579995069819106940806850097362543096603453239021548946443014016375681472049805060475720330490957706109136434647191257698927851165346582346187677668167335704176052805437846226359998083957985072885598778671914312944128080870740327004812278446823403407663351526812692953117565265769000146534670646058797119340059892372933611517572858262015517722479856149471249767616623552275851768556407433414736384767370116457385277158826824176065373685351544989786628674477055909833591136252808242970495698170154070288214383420580456752232835440193845375747724257923143981354220055019871537631387393099023141850619298101322567880841433675332228318743095280448999620312190954494076291443743372864240918711276791339124152745615774838636776067676419608636254988469405470432769954427711551080311987088366527314694727824884936380961458394223493073020991389501691188860095701130459251406382542509758361297408426645564131281498801975418513759208262140743875114450492505920565668904713171368495567353400648297661831819076278264610290160137185758593947515133575687223758297401722401013942754105686214038653332263641574017099603079698943410198149116640701217839527190536674171463880823283485572143255879497398952054461069938295374229075548012554440354096874713971780296381277251218497294943299704804363238366664505822591020983593809073804759135865170924510150519235273615295219313084145754135882617234189268449965728779054681230799426051531624611746578708335915034654038324776384391523758248960862379563166079435700559355882462747632702698056007521579396554092496227953698205300399289331269881648332200789847916771509656082981896640536395486045755245704646817615574219456687813219529215703469810772037246490227473147649492040990704696676081664631996383819634818809238104765950685458590813787736562069234180038108632056286616742774499302151712351945331310808502056430781428377022755490176068057727034490216548377198388777760852260093019951822068842543472086669582980215340255254656496235398497669229325686059429473439076823683810397351792922414226979033037786446942313834054910146354968311144454289373908684900174106021575824351226746401875951364958302194485480977708615130855853924093607540215239239509363799159767490676694214027703240874899357341676094515876930270808791478147243816279686062121238880377999515599075653488891025776846196233303539523670440344712717189223094400695085965288034852633578105628463518156081934180135845033237036494050233728070305236352983994109731273707169331387821041715515355363915354163639611898775689785890991041598116129132208082943827145622449131179830796645944563417412372684815760288358473871577551747393498338130400467679030391517016251000016867702783356092231302047785224937824908916669744307940145535523480549646313941518638509094199407720683544367508156046750136912557918124034220115756137823614805909471192028381107171473748789153772011099856034339167762064877082908493450463226147366704198299762027782972293859320307376562370605475788814084136341542067402272136240262481815316910131229277964052602889345754164561236066466585290081040326260409771150744298594318632118235495105431061179327053081082885634921223595927462290488508037274912983962227670741033143033833122030296304893874523735706305159056602498456894922270973283897072282924586640594582949880863705937683337970748166513654176548140706554173216518246001763560718049800577591203507776521383637904631273419287226601622982273933307050395347660649186620153236695687884630655534886439575116782379380082734977066486974177260555472181270803995051707767694628548562873337011559025195560092721402074938825057275532703771522579199174573433979312053432972683545419846843688497441024619915344855537360589797791248125621858011591076729718457579016828479344896690344879452826110660900372281644762176467876791614491139658452695226337860552137579678634344896438118933911338577189084429770894516090188668275190945306603799564589266566995084367211721215249750123471596633248769765421101657991927047370726748877134990812041824448260326746024779487525017008821142290887564034337464535820260470176819364754528836307745071661045480587397312673573352393159359050122354477008518963165057842056965769518456198984745238780680682729795520458675502284574808836332349547900675256482039036505597950446689109342014608494832733484781282355671897713292316249780825474641835987047503651018744374417258009427779110014638593124702577895849498590805267628562680895490010724054343076733578422506606950310131253807459159865693936274069816866555056637712767508684862020620620159799679126046613942721836602007139325210722899823855868829181962302194938012038492301038857224746177036212168756486284179106126861443917141288583330116435925491830326961962462429122971462046549798761986786153281132878490915317411088565282066717302977411488752110373463300594466929869321232410829380261336196091176609350279287217634950288134617924500997422151748918501764259450326349812993543205206338588497821042261742166731785560393210256027881532743024391872355096004891697494646254535589703520453120714742349283149176715004451465375041776514265827611875046459815673377361282265548544973467637187226219437757225517996703446253042221885591782637326962427346175010414551140653595547385272105369621054128258578369171780841396919931172210663517616781764905657900835972547604918127960630715142194533584524850048174376976610730579236571346911163100901165010759084052782105007662756832969308828381098251276449153924531900705171076185352118381656467752075201267804729036031370755072142490604005656585845318301373800444187331968540166590048605191179289362888061993353057809028835900906807461484341922357227562348476650243753443819981655476592565195199640932433689252431300052352677976143766965646453787461260713799028685239418610231695388049193103326721091672514695633348596721148781210181819734747569706307490287639261775979549689783514228923369777286983469523637841263424773596507475444764640125942404290689232556305036685102761665386035889295099188236747850243056592725711635597407922356959277467062733512153911806135834010308135702566142350580815172663576516670586058173123048526874254060483383851511705349416045495498223996954030020635605038656726785257394844193096889672216068108552589240528337436352758331417778788371155775341820395501847653536495674780374845226891962995383257766251410420252837028750089001045051236073888000763043967490258757677440487859510523727436808618649753172717882638995789773863163382366565463647922289781283708680104647449122009097420025147797728041802151938936976618457929509037578742378029692613647848409262778636665538133979778191620151970742614080772986139328405535891747858781460662322391800250317642534282463017050699490443764598529541209485890845258007833537098100722556117831866434860015040249994846618218711018508933221678954456950680680651194022651799757489039464495956128680493174534311268102940367029371584995010114257223473416364094283380912584788611849189481007391288190814172162054871368244849687651864630246377820935654928475708034753463307289667599240149401671953329461433614892212009795748514673090223491676624404113041154769109890756271194487288220930753432963368399957115149367322714044468731391000861919465883510003111274269558123603629915213948543006737816867077223806051039343185635716253778406770849675888698850791917309892627925544316141389994531791383598635598208578703737090655144507706659763585417278601600497179758931614154739665317298173359653718794334862188783515382488538003493466002514821343228595516429943499120758774385857329303240691480686520134206647443205618056384948407590486156268894268599938500057980263585735279796922928137441203582220038816589012920755625974995232197568276435064146329649444306841906511623131776280618112777593466637547976381740492120801747765118049472193763408615222860040327508843338053345722167972376084392980453803092136442123758414387527343971977173233333021020045374905647270797819709528790215915406461381652796893220737218048028226877881482314129955430326646094235741360251297194009117512695103325411462537452879625959647399645192283665758508257028822109187056263470411368403920473224274492861313307215588944068722012717905780449128788987556130019820581096199653766436746835852656255819062328420226110098198587312751565417392996161412334807895852773400013466648594499249093217760263632799186353053260227142915660921386725375503908933642183595466951790734949571423164322108648577924407631202123469491041283719074608823863700276522390747835345214335422958081008096917644226009717623013660911286182996461212743301949607129220885257743795268914952873873572784936391134359665123893385441767244592827535906260995144238130427323123174679484299917604631125582271136730461019927039867726370785028861670244422891780918435476326817892326094057867312333919101229253174319926081425391542771307106979018197123916393438670920799096272532912417660287528624903028703990891704170423616821965616037167786193977842313758268475725196661751804290961171198391373282599621620037999478844159009605947960515068807192415432273038326937197303068755501605423014797305926476281984209055731820601978887317177810286513858757628332996057755383481399697016362616273952046339077369356916848830337971949915054745724736306529504373994271396310885652050775006230348573612235506511525407626778566638925362696631490864965465199549584911846601942646526350979882049971797178402996984588341700041077999962391782153760425209097312415336659858984961820518076389363905087974675171390206912143390219036384017744909197180850525872614980979247821683717361519257127710709040664558725257578055234794272327085850964604456234599900930630281579414195029725006966066545161966555491447847286309999506459256250314778612791696929750562733053822650739049246040055151013592846763618576025044419105668394705339498345159447156130303606924156441886217448155859973237630810441713719792573477983854175642383750379275976478101636165914529210611867097540942110504692498800488913328176224075875296943093680011692745821784836579790839515103141614705517543315053517123880600662630358587777039879713356695608181397110341466591041540291155306448393640196858402283563924464671026669037426815394646627878040206764298883478274783085970979166502815971803501316536772164509731314392660804230766946437397230855841741425759279781235645793682537921345914824997603712893164686483498765960805275124291683073494248953308751879028787088975716994450402348665448470730141235431631457839720309765986561585993319496702198794992107301255055414109817622717302396992910147128634170167224641152431034366871415452783617876754508604408725891055014570164432403916397857292672475344228481138932903134115219564062936994041896762021148578705823580006848563292678595588438310686264417209267220703620969686624303411866125237309745125996336414822632554917061171305259060356554301195442745599998160685023928683728645517493852013054428460647679849490017244283771443550002076705713231335750204022370173245730776236426709680130008206921793225820995392186941177139091198686332723090091262783558716700740535607946178033509163625470287252943367662561731143784876615668364549220242295904106902196105335931320754894369434314636812601751284619174460005582803619523201080909152573832692940540289961306405415528296769489770610702163489246450401376082557480588030941549235900803840261513479148076991671957330408346803045512193420481062838390972188765984551789897811748136420997264313157687032448342997528700241661594643820433965206039966549970744774625114007070805443438416380401128945552163836407713424634219598406259398290251940503547628111264590738615005019928487445441211779936807004696103109782227463084527563541919808201941367143895985807275593445255991300747646522695583418515109293778100238241707403881870461865925028402028626119186440030720141005614058306536388955845274487134390699487555775734136609370790711214962030557180460624569031184972351394210530746889860853207741952900173375423927463257924607639919305396092947903338030783449191525173785723441514935000030419285514584367675419412659502716478614854207635911924070354228479099876343083607216640905461447976560038786938059902631367581400113575471030732977668238177805709690003596945465276110278813312387283962730302289168088605725941975924142989800969531535204766122465917059281406986913208228252577442542763765205042094544135758390542040541464904201589272954017358801378047971423338071417126031953019152844298450742431293549100535033619918498239954695175923838002087616883788373326381539295878942179675954780317051587106657367733839728320190307410600782257920238335085121921236561769714042521397703797868832611334616348299463284250195590822533805779279944020076767075467286514057714345167006662582598943633344362846419331320672232802751168944903256403574974935412283212206482648607772229596529873446274254225893096139875418533573878595599363325467969678313987157056856910835632798619012506724946724963138488197232089655580883182385992014282685641174692370474821658526611115610354076857536859263681929686423969953108677215399698121364720226598178477934597011613840721879746811892507296461204467498637472803092052315165898548632026496530362536205089063112848491212186785962389757592172119012860072773216370760340853520699863021250376800844427190998384860575083996775574402550254971904767597827609450182254559179325388827266118052274412505448872586790647895068995896041263305134957792491682665157774659012632056928161259021992640569898528277080983502928437841414654917272658969046460316074334675494013472201805027241068173366098477790107727095103695356762298358000182348897649985312630368587204505827570763490707185432536259184482710396372113839278849928225416533494448082483434707135222790293361609629819869414618913318740404298748741353244852935961800371843150519525460604835970241641165801849351508037020273318809209287384735141679885746135854112815827145276063913602157019075884119845294649947129414568058717373522723658361363342165877829089127673451974789347615042259185611513155739132300040780860088286246892461798357972637181237274956494590615249275600044608633709807648110266051493054319981637286830792836098295644138680999535732921407388764269220478697179680818818299615377238864226870311959207333129281389270862943486003052261667087970299284037472770647132926439655687800186785726480169031514901171450608137530546461021121805810043220709082324943790500616089888078061409054719194683812701884617310781831939781713791448386103023723136162266165431332332401322537009674417228562588884828096924265894889375148604074357063673726670418533218568632031159895789821944774222830134515561761965562660572628939888130560117282225583655580976488590076287461282129345153948344310169123001586283144185425517578920459480975489249444050205465062439305296027811621445113133463702222037396085721987120861491519475917769090381914142823272599522088880756948565809030937920325986776419695251185044365730137371940042185057536130471406529363430826208435964305232301730511141311930978046570641715393200809794672698432219197801744047897682494154326152459920640328492075291399484171116108389364530631062890924107267029871400217433194967065622101298129627461125508996986894030756554266615242206079865996709439307684004299247075007109963313127229054833218097759281376575082996713421561824898227839561484017379827592623614777042302904172231146713202749377097495075036803787052218268289205890586422262463225871849747394871734488524143527349166437332254140989687134228188409260718649870357802966311726482482031160013390014945905418761053297732980029129299280091334830395144615953640204876962669055231795266822727550103189574799976600229332512712986805363492243850266396418098345374765506973215783562030291127340963962305506122954620009376115682560043677732603089359464058494918931318662819052154321375744328115232284724870271134540042947680706348729085099452189176053115230451204699280240250136852214039412710462125138351183893847532646764098953248494080329665038391916663616243792400936518951959696517355468971697062042820782817731152103802329181302781457383309059329340324499371397215969310343534057112417977173380580772932248714325838072974173428808498592627576830781642005995937192041524752011269310645155446521113286910214797091902760333968672821714850814755270877531315984564413006397114178190546472817330601866798068660843830157485204671382837090325039425917274737971446018840684687195876805702983381684801720776758638229867745100643277417091105490497312795624303350233293067320176974077362113392586608444604841414636210809854395243516350399211905975094436224715971799560021614008051392208863627851550086029760382461383209011221811831972815256809769766965881388503758862757540421112711875595562536727256470361659898927446161337899249957832079825638796324020198415258658513162998648282606201671593497529363540377144210721579242108468897173612527363849692580976844740132307437092815235849958823071926428852680182622794002384185130451891809187604345130700125004981300111635076023770971513603138019338598647822073985113311876837797113106259125907383272937707066398802873211442290545483985764173998675434207248666903611193423085423785618763216315982793904363308478757147558378310666160388232929069441498734909409672241734763718504667094091559354827402097724992033242117097047225814263319321256276008716654749323282241088910836143740363530812419797381681243275582244417722858361534408463852457290092225930407434492807060506315482679283313674634268247257053929573322018510670364111613353012165443068944754181758421610553570019431183588100162549448302757037448532823365492422226997734879370751063448864915999910945809109440154428042562167579301681998889732706679628637108787274483760834246820123045371094151060811081740776978238969142698783485473293160509924941420281147138372032067462276908004372710935542605537307827365612616718152389174951178529153584194841679514370138900338000434651140939880713491979035470727382077026301519139061995439214870057425600338304290596633578717834555503833052617384606515795653988827478661705706259994294583907331918598660961826958991674277103720725618330591937638563540842503373221325261852137396161434425088901039599381241369496729613149285664075641979202859165331795256005388800384875680290222395019588847118143981267318196974925322645537621790669759231636311237272722388617592707466884201845759127535606965925237490111671193951539852405927672907445548939150709730988705402103375164229211153044060936291556287094103357348739647083014249052353754873170286595227075393980684764782536630252289067833894377517056780225543648224393427271004529411176359358875994262652022729832218422229486776353597717491495186233783406720556465112065506347835150508582509415539880342521486534219891700587698963709374537484635673411243308389020383719595003564851544485524698356932814826082060611408862922914091608594205635203149556292340035026053666088689855825295708822721157708592268684251553927209203145588777847975646255765255364059099911828263584784368120467890067896030005671848168961008760272592868030379583789671660610442882570404865407793138467992978171578044596222565786396604725118851172159880299455487688720314440113093382307154990747016819320643432092169013583303307463884601386975808040988671251393093463396180548652699600054639596654111482694988643249350670601094018487966789079034600929701575548944735812464610516364587413551925496284780747664648627992285218165052478539361028743657613621613666063228753656162151793931469114513067704039229765659170312183402887706296166241923318360156165610578391185937651523811963581669540223069227213346182155536804542319117882925027108034615793533394719910990739705790674242607180866733799359246487738511946964683637419354476223528605645819373686015450433801823500999240306460246896411769775066594692899475494558176111559377224227973789667865934773266959650789031610772732125817991571640261793361106942321600311621819954225905340613244557770217845770984915078840899948261754943797414911769553319050380273311545315035667839086264411888392174317037459897563553619723934550901353502552281965794372822605060546784321336643646018259429114832077944929122828706196790110950440726476633071045068879126046792030147819969142098706935189236727367361876105902113167424420618812266423107614136919437998601642212954609890906484337697455179396437512819317321241449211982184011247881019679181192946097915455489847983313016812850448015863319565439257118512336715228684042390522494448789053048810100237067829096651734157616561514098999409120676118181403572926309884348138756567381922629647731019219773615247235977911597666038954324522991984849523287586091994100597156605231498975684949435804811088265015131658972030969546767297158500852349276597388657056306102601590219528044376237563917688895461074032849670112275564080195532301326094476885297949185990454026941399936279999788052822036570350302735458241709788814569741096731364029675809124186615087137317327550620994112038836408842778064605644397195673644011192553561322742408781314269136115591729286006815894046346364272550862543276716935841961269310281876201992253485079432929103351006696157673918121679548448513178061716489307560605856525159870567698981176114428278315039218886857129860668424008034280860309031569623957954851098402857030359913308350720665064360446454965926414498423521995093418628870380803060498209100398059239683788790742857742361251342682271368178717825875980573225698814905197263781767379087035077029795832225102330989701272049249962058222407626477526450479974793235866497254192393887163062369750173702096316118666037984497214175481427745827678075112619266206066046862089829833820239244782460925224057955780456184252561556136206585898149801324535929425421863819352831526596237276502160723316153782179205275768591112911093040451060563928193119620456427248077671439514133802035092741453806259745367711551508730248096846308929358153952696122431392615657591911092166646013259514995803121564596591730751636275151831705442256988697345097200138060212533752631127665767429243040456001349970186848114485376328954370532582145321924127019164936333874143722745197988598242226614696520050020609238932099705984399114575018765763670407738939231501321394927472919683034560709255682353160664783220009587980295948648893151377130861754947815991637599396128218337505100483608337943926329568162474151808826673902147097699429201068895098468112512538701085591417539748051692249311276211497621272301985920959249850266559898885926218781665843745214312234171060102388480207054201988044283834360449649793033140564553892394351582813830092935283762388488208522270538206780670544382729859942784689283726183025636227387843041314588463541857959987464313427022385920167159843745940391142881685011297092669472096165610904122955877053307549314151522203383986482358265588726911222375464463977437263745577915080781689227336507254047418412522441913584626320843157428323841061881439927556478241258185057945769375009017422892855077317498707564183249199760557624294541455767967163081731444342992348506177713465082566435373472051380251367603131883234471534886969524697627544680467388031158461834659836494486541130746454456016307845278089172723061478054535589494507910065955978420627588603634083278981070289656637479942223312019023728323319672095403242825777865771606530018176216016875290542074503150058671997237448343546961165641774606537153452374356238273225193533285156534844904725162786174611395240626795516840592226643884531777987880975829893356436953224908640013207856481438084546371364696054112539622106979324842287877836812140982835881757648434094986932615043048287060788194876228527293275968674153075403443658148277638384443342298743468099153437568529047569042782090914602234832261600677237880371367435562209901044896805392667123732580331080941460159289122821408100826777978555648609796445607403425498867068246466436950036226594458821339742981201319764361799212621693505987448030423746200329238560475165802001284601128029879658798747102965842174422695796753860145260833084761509738954742696804944698651020055309276768685481645673213889344440218229386663762792823257112958620901637630028500020411483162744971929881103201742440780451066517685844818867727995010315522952867767395341017866862299636246555543093789658332834373978307549713592049671952807495655613687879895304449531162530252909729345132362191384099898508868248316701063424095171120074661720490305128375316999361951621856620884778146478015650526050487548423712715618646386833763112228775783383764593742652780905324705108889275768027236045993852491911965419533486065762074526858693536917034117558588262585198819653787781874974831492529955692484063246408798917869464282362012283658143803316422632416670046871832150401100727747151781032175166095937532075150328100815315982474701531137776443130965966706072004255403512798994886930842005785036199663199240100443780345456042127397340775580374668792976362096604200685368587411701416858453209958773695060779174362734439698672000889971163210223172863288329270984031855715645538059231471952343988606285474376375662847299424695070305447344735777506414156727360429170444954287824273682564171550457358454329629345840264044673384283506233678696971336881907036343078954364331213862930286362139287443863745083418775104057536261677622916725674677004274891680045596766657968194015736099959499897744870190139420026778340122770324972956542672409577957898107704972568118339798756956809263936685174192800662569252771907434329270117391456657871514830669998316274275465022749288686979446998028632164244938626431298381073581288693371928318246997728160379747404036064158036692760270256594187220752967812676530875963848805884370058862849518461380823809861707785953618597195844999414571205078907062174612281052791540785763071968927857297415410064031764885239246765612786195036429058123538040385340138397152910023964099225356779422008722127653569315976982127374638563828790355382354151265371213542341323148768828825421893123070804566661160803350066732817238744343793517314116885463167999027004800101600567492212402857674182739037322308842072002120929838996551300539038909232480507354703396408074556431454682239118402141739620172738456193177501975841570459328776163481167881389719918536011674734849286000965962892170001818940433383818326476516912840412375565031267933824111457694371362608545230097707899082917280333128913037563502625327153658261160744182708739406700408504823211481831268595464300557365960058200415266922917120008315735240007677263884695543223290824241166103689119685124823589071766721870917636553019692740353603127086243866282816562346483032672656170133556894845390215908939062943077846844296427504693582130326568407989946190932533055678177844453029151345587284157282802708797028376318719131403492810464390245664225049963769877736326942746991870354013728350820230403967116335683682822282288869539795621293207657825537557922758703281872317259685961416886560670432122400008827876306558107315966592292416090465006450928448815407035436934860571178605953257624848861454056231794478607428160448272702359240828100438770105464193872505193893675648028636965057736535285311275932892563540632447864849792775961821777484141545587288583694663956554858740077885621097263597014972835641530031817916123675429529072612194928945375812456018281372845551602422946979109164760697407435201363700232881137344680421349629021438088134412624432182228541013882095444373401716669197554309330117564281978108519832501536608013025262835250205022102403691465725266993459779443139449121481564319942717500759934335658430850056534997378351889638740134338296948284431006884205206511085811122289509533035713463900672124322004657481929862763790720296759554882123008339617801746912724456128701582784799385529121942036080307731853772926484995432480570972543639958014307026344603689425173068187505265373245306842151579808640912146189728675857406023287072265175627981690049628721655911131958550770643170546123745894831904356417128200661843270647773866826707652343240555170026582160002774872425049083016240344557033550837979963749840798141987241536988628445862150641194615312533257398196136798626614471460242420779706518073487260333304435488781901760839476856242823094004022261458014811231513524688988927655776814434812624892427422614283110877456616473372355452027957768429215683894581169625575648184025819151203458165122523017068684149098685824872241841372326544474695981111030802928236053416184568370373857228003508131644083572420565197763764851082944924888069353856219469546267176493760615910581060879600582676206174995838381955308828541449804098923120327808266570593062200606653614250195557756542016600987717476886869690002104713876420074091914194580499212974010705942864545954752386551305940418096917439081760559531609707480457914142562246958805271512868643438041424531028972580949184128776627200173401790772385809683770053000287371768789953874473482385758497897121815008707951308288895334821557788438021309647176994309917210967093340689531671826999097084944942693247698920488569740962911444440911470830082552305717687403858256546459850190908056055631616172508557393877417864036694895367154885721470743846443563361108910400854142156921451867291712325957061281371157788056734840205568733855463550790293019335389911943957496236833944095689057277311718436929911183332811404221947985020871549304800957328241725162644059017985739576410241271813587601190366661313096959869071436395056993539748856985139624898393134620632431221008496416644429890920511054032404986903093186363795966674763000199226561689945171584976061543553621429268870484882156175591900828239708434942533099773534349740821963955674901929347753977524886126646794062187895857158997275079463546207925441203866901087966536369131151481363880384048863042058589548747158786675175937399221868030446199877306392852481617685684488622424641672854535697649489940849099621608861537216187023412120174619120314530813157115144270390832485405967698310962140418624124534460749842970774800835423142120768606152045893096386041616870096131720329630458587729386420826458004710938542726080811263845808389544854310203415215886431812404038392512436538165812330809166240195129707945851827010577838269931761022143214722363800149189840840445200530232837463972182455714355694667481412303888590480811246804434823762817760637398302093327656232412404005314796811535531710698971043191928338117769353689293837599180367895863325183304259278094178292875080563816692407391368686176025521837238203965021713526367329653851943226990246167909551442177483918028420558264646937796333438010350755116028887091522362574659399032731671042294975141850408744365858275427161895677910956955574838058241188001861769241830544568614106728199351396048306349547224608510280502330356499877540420388779896037391615871432538852384940168922234549252457043370060993403643419306537818600070852354281837504511070919316934833292380176018436624015644003421568796318078107968653640965567061193645007267202247012411480252420191375497859831054362094756405316753861740999211805530917988022126469885185170732300286020681174731355228668265371685087456906670374741359154366474662159197169677934093527221825485328913837645705227298716869099116604746986354688308980095394873806583009158337664160401955417003284494646634017036083636177772420513864038869868983012908295975853237297691920467959961353599003365316733454932923918836616132266604944505027447022021841553635448221863493220753403103384786813844649981111838570806186153156910622863356959408744801595140752966983764754302580001693890984080523597363646254248285069286962502681891074848150568034507857365501558011381391856935454788016007116807617265134300638478952376212136174077656728441646940376187208232385800587310825189343945526051754145527716370839697222072519628438161226681070989411254472581517815096866429863035338430783697060027724951013071104937090117583455005552214882846529538750018061460372042568405575329865623816631115849982082837001175928534402345233730490460995890901914777418940126454619408078702193256803986547751247182082821676026186938906064044159000563730834557430410802692396850328240974966451632444820488770856181295341204616055799571951854664025903002345636529675054075828741599647252382719790036843409701244949402932163520715799824750198108905224135285110489007457956008920792001178234506456125973340042058004581742574545125234945389118655740505939618017203440625688122397425657347537609896543106150942105543573623098390999036330943616750761767580667579519677325731400144887342862156650160712561199519565892840732264545471521780042318559518655868193521743252823343863371245900546044364900293557682063958698456377927566403781033226474630542687641934185472758746972119534353823414692589509309337712677417093783011358502561668222683563333114327105287254929416944654837616651775473016722782662162991398088096562700290711964851766903686252887233850480422737370483354518123530011395765562560453988686654346831086799235794124322196578496583396113419839490287546601025243019738389916612531529215142119619143540906081547766670690412434400223997884913175633305111211954775224287537812696065311696648910542211482433770027605851761205792979216680698275115991412897029148726749529642320915810621258277635894691821945168907056313324036486813442305066785221989258371913706798939773205751624748031042231635902463368503889269462895288539960544521233189784443389326410824021408017655999982486161977128862569917097035048099891686751972069917120165278969580616055039084971995808856983764025951419844251652133753880521118455590674211981055721004202774024822735163153586245748656374286703599376752796360431007108735396846302218068954994153618813716616407044734042591235190587752794188535691028202271290888910033588991630750985147970449115959099901911098305704830035043287648538828729303204979705834784566139255922672804548792140373494956893683656006816164699029157037084554866885331167010571299464569967606966846865576370071094787098487956116433778591357707332013722346574568467077833467215692735682804291126296965960336990532476738610142970560704962151949513777381839668990819491585854546044188175507701070894691913497914053421816640724251208151779633049388376432555049871420506316846162806126310350191954791205140764450357198429364366886088901925152677549321761144825161551000055775386672452052363444219933061263541731594989571026853007042336468040573740134832542068812058934235000632553273268915062727536621797618273491274267210914537376625633793665244369878092774505349904978212593785454923655675953673748256257051086296062743721510301291743354512940692374876824410299573014587803229024230348176426743219483322434848310103977081191876285088850331615634739667124142973467797653110318298348081174199650117435433091614419884616476006794253310255121126135064637916150503047936561295679699428420244285043278269184493707629799408934957502056467371817050287341877141996504110500033736973603716646541722311461169432296280951242186267906106975945482912758065601607611641895862850882567100445406743206595002682364903871708969187016605610344274851753342351140933309875950620572237313152027914040882046752910008062843916308554781148999393524985305929315567846840678158936452868176087192284069140998029873702855601528529476017018272446199441403208645008746925542187434081261001262029255580279796991026749231021139192618257522610004106053304669433153029771622638364752437570767250204864868006359624041259487598345265211278222383034920107792100628623949793269570216657991386911195964362234055467344171273106253791122756644727965937533983653483284256548106033081571334516827674774380768099182845658526273061339667777400065984152593764047199497975160486282076756677926935858934159187998923765279866357480135770890200421623369394158808348812229526834482056122248062084516817829442129802697452473998602540308554960777360985255495151935233640994609083182866665212027450866042453854916588313369782934772088517695124840115821902241595128181890327774292649141814725084883608468879636028744223612695744540993465581702731128313242539593467166606071315796035593115217376691102525618607901002797273039613487285211728007499430341582917552490774460243477577802290909100231602827019238634887854059393421364130994776559890158985382474727107143127812090279414926983126067952385297028323764229670322393300453863841063299573733587462350958545403293691202741212588986016065396368915239880339463909035232653561253077983691703173339814708815774119174125568739485917244834253101909807403305620166308956290029113830819289262955142411285036554108464335578204615159209376695803087072893044414060887704441082455502127316856738791994346060873029794495298567677315700234835958215468899396728995618338522565845451525175128381766505222575159321182199590173871569543610885750977396807159607998476019797634090577975283251557055330606666710697624412767423815495600099619993871678702169600335429276860307954412945143964224842938787908515312016165422914735756369081800780188733059272418755202883283253101869064598798486695340981355505664996934489680656409594070779220469266684440249958276253794578761677935385704279292576019837160831110796420083790849596867030585186987479641351461455975668668926750176904006251137062829790446500323548069926057998913484731671111169214575898148729912253946803987684319483794180003074288033744614174973115514243535432600541929681940375062384844671965868137383348468148346395904291960386759589301715749331222935664854889369527197835243674051189688015988988155234988507857843461504727063469260165674530794003814257908049199805913655704044231515808799289660581068566653551980557006494098665912073330691830117531615662448671866928004159551470013649553527206606321807005244055924259456099058592369964781319110219544004835937165223343194612494923386882499611800475890181414736353000729550443762352740081169400067348435933383760133745431506237275656721239012416981434229507669057856109879022971661082192602725346261721189277256828659957377927073137809937136259412484155456257206345791521317533552756086772150117096429301526090387995965021515246114609049055310970510599290547650112092920661471531916294812288038004989142568161506995949904633341918190365155551834925646144630556762059692953295170532624957344280604173524512605324961825481228404154305000397155130868677207724534930844761943829828683332591538740516513927882357727738645841844060520359348851230329732780887261394648839932453072521714082835141245628121523127232422891077559006169986355683244350998449481205448314225337084774232966466249719567953579091987294882429423216370604400039089083126616592027845182712895860974582974150580649258763810882489433979155240894252967220523988016420078147285947929712468376762190902479548397526647057467632833466482308771568830580856589661334050147878088977626111726072268039078844043567131346572670023096133909014906610958857731952335383527801737542319705502843603296620055402750817556449059460767860048468861186462534214821038254813991154250079782126615399776192199468198093934226361270980768669190577969213581909805434689721849886753340156843756705668960788265089358012250794013020707858078410795654621347913985877356150522401566210998138856425927143722212347582408158273612172850058226929390586673456303695207942341982532515244228200891500714462209938698356196365192470122668357100892516122937820845383766157821239163734720176049886748938925672773628267425414271396918777990683264808294652091700544863452924258766416086945542193544335610490854171939681068439968540955919061735580150313135368778816371821783879919066353503781574973695422307187081373583139666294352834775408225366946336975724334702650470418898653189699682303610345569059864753390386717215937889489549254999055316121118283465829338849818425655324401753314192725929032905139980403164140563475956006358311535664494143310756560468439873709065857758464425887645679252962266786069774022514843450157121962957565582442807714650271601315833118652990967132194347378462629567034090384494811400542081517534394467090867903500632213467588357690620163190460419709741218515990756531472319952589753131136757380629415710013723809213525325733882118072468597746374008800847603863434652427007275243292225872439660127837997910589378462770733159157921601555305935492581793866814758548043746034442867480647558263286972328955433838553719439471790653964363863152629342888913759689024163014355636855787114164722266869215555845938897774296805594789974360165716619961523290313665343353449153755717540948572511704640366315426469680839418668771940889170867250713872933560789404942861368388811413480542087686585447530889095376732907905136041954842050595873954583792729286446273863232183532573331137596515816141479893170363734113796102914201107272408745922307873971257786109605777471539624715682134575208716205217109943441557535355617696058052108423222382067360343274860767029504240506783044675989161342813384835087594187590026331749486138462898951136114537345897107006117471209860341409362057961945549740015005551124763051915984279723142115671353644620385551237975868442939924231905467824852090040180202889330088921320636702633023853065389065922463837150294202986606801720973755343438706836127201991255285453143063209060854239284788755220499316598589523295711802474106607914412723787985992566052873771541841177638704001171451836372552447696985292973384271192499087353133160896370554372365255183161400059414893362218131959814213812430764172187535426628965991848418490402678382363412553420433480443251608949657552027566720620492380795206164016801392117206939079414653071522632488803306128232870273315619555592593998628132771240870752581619970271044908826369452479377504795249304420505564189346784167185217777553580771869269103674284719340839009452681629991861249615380396925157046094508465251644362922036582244446559494500869498490530050292717836419514047394631216176912594768220756686666295913160045453076943688782391626499230413258784150904554503545346343671767270995761443162973203380182755074925690419806594611634377266924501357124174121503033217488506611168084400731856563126354755479725065043442155132005833920968594636747352485069848053981923261274866144621605091476570674784880634613527967962333599403221564384605457734553449159498137933816505481139465790558050728296955277127773315291527975540549068186519260908228596439979000120752908153356217462175771869645886633086558550906549239207373289232273370653645070131083478396459177538407279680373500909553285894146630036617178969559158159356238888251961316276653215849037530687978880294071907727854335995379938138412200705770335336158929309445831173560867589254758260731438271657028017849453817370601740341535961535022965168873722550344905850066754142268486278933980475353586979442555616217093932943235594644342337369913855621547858581721403539389017898458736353965865365298040200348505363320479128615113444918077653899159136239122833991229568533483819007176515852198805886887213634496615570431826528060820346025001226794595513946730223733514523788526663625802567976228831421353411341677005296186243108658585635791288345264988669431119831476020908401705850409764766647896048679837191667900060445004646219973681980242931738889013462313874629954450262298574502077888397376810823678430275633045690447645295334767308520389440336962682031728981217823361239557765974602601904639596787774387328333511933793200718017399404286649813013071980392492944472050748838799093843328793407817061771168588495463603672243973808379828067325843495814875389959293232512052409314436820187712456488873957356596506575232302025413463432116983232641473754842529741401593677896448787669880528462713723792317301275300161782905913778690038035800446823845082633469315473901989170470512969764141306849294886599075127839680107081381675090099269941759842467941652789941594445664833755788635700138854607962898185489309402205447830826360795031581575706900748096169544972576420562382213223999629016521189377943423010380286499469619093810788874168219698527577388422030428598690475423394252975436005517328622753449511440915877039544425465056493729002769018443920051046464047484298720550950170032047707105005350018414615013082729266295627174106265241479836112986546150859160507715938811350246687396857161330880246371315362790267474799300385216521568380147135020192072353862301659335726997455462973145495806694034270311551884297992920907798177564492862781891713245007933275892237452995086688407331970266858690275130253688523954290626922015056648857701187059515102945136682717416283131108427509494343965627915864225239330767978643708678624592178667432472071953442791111589419178795793732728106340402509254479612380720881254051291667162342472847718550075501845467491242392727579013410589389710900214892033360949118468426249163270678449310008901184595790963246714621677221846452740877896113875325026631132563051324888998311194889861152981079610951988017352093409706959348087816876254078898523378951549204000665690875151417199465733912107112385441413108959648030115022783743075160686273079009763044941706681731667155014085622884864591884845441708631206094211306810692869596951739990648415137400560627592502094739580996044891829174999009767551584603552853601381292788542919778875578248573266591102024468601586406257543322218786950995971120053418533766978332153583527319011732828741892828067831977418297959674536677943991924691400948533383084669641786081370941013524532031689212676418617900946714343185469543840755918842549453027690964870913986182273692241935630096318191384972843359157655864762268940616929192894033201435845021192266132272310323749295387177486647515077826987323875389189395661490827329845077396053053084512827540975021088609378562736423960456903194664851280227862915822943795761381384383357134784049766989232520680706452436573616612301087964885391832002985864255714412148126145185122138378237956472028036342465737898887461083295499266491381316370556365423765884847992131946833050671695218344557299623472310135535096967246501087040879920179916703168779705371351960338537716849180618262784324396445389481080447284431331157532637693494805307685570205156214748473966915477380969737941607028036005223405937601714959737041414428117540884456243596682046918613961073776828270363444590376670212527507067254113341174218563143495914942762266535211947112544984101490384495868357500127927730952617873126152729534263323871128450321901529688214436750711901035646149267192826148147939997809865845723764320938975994556182401699918406503070492221419286961885750221288816164267193308492877530455321730778862772436708193704011752169022402994985191837983947886557481502715190667717412219678153464654771350992214347436712068381225477548494219073288433284227069869452911541142527225712452807167527036787593517485480254442848260376914559482927973445154403041069207407940688603212904565282135446724067517335655051825637869815343684872723614012629165693593278765610671498283380442875409384250238481125524766230785814723254746590799870270206886789368025334327676080368832423607782819304778432826404359828450901715868768290976559179196729454227847052380446214257016004041256872807276810960524252223139351533294986522671338448705785983578107894939556044562055791989509683094423548770223289066780336090156036438221838408857920333064187609650539386880273490572043894448564174735767129425565379214334539810671567037750537122397029690520707957726489473431133450393114327759215618333304474992123637317215525355815870921637896083246277564242012619965995620231728044387658157813757571976001722778933692488375092828445405481175700026998804204262424942030266284677057496349650378061809476509200665867401533169864076560368028038642151895793571709600757658955043327299384103143327807048539070362458824105949080824495049528949039544287079798482804447830020692787940927466387071394845567744515103696968684537845949931800852841545744068183256111683878640145146931212870731976405604582113031704389969886234040450072486618534534866368663217339483706237914648975506953655670300551042440631673239108482310648734808269485962661823883057124450674409150287090800036201687961831302878570520904896918286910749542738204505222738617611575732747001405228070445429153052904095795098231518094196210328392451360953069312242919769585801856138814168019435685915856417973356109150612771725636083431089460651228667620676217067096384589751599229893364571241434551577450060948744590983499262083562035732273738098293534093245076367228911493129112766004110015365782084952778676236758650734016558825381217989238115921276371945680751219773519542337904834340406438133933181379509464949480212504861762389828386302207715686888357181850321893649670516849397419040747375595272480632268959854314543714033020809289793298116490266971879705872960675619491427093876918605348662488236710358818069260684686031631518081210035658344758901741654202042240255670136670373052233730342682676704884849041224225778302938442013426020306627032485561423439825920699968924073337185719433464781631920062963969207619872925581771918889241337422220110497372064560196474951997153840069372312395460632170611285469155012046023063224832171838772354138537011295279594632852003420342380829186776102891393429177532429815252216859883739196886191962515285522872415177999599867063603893706008542519898629993322414686484639827752269390678672489847301060168382969053729285629035156434125345125585364544018147787936144770065339829121742251598898918152573382540258147292675724206034819211807572862265393298357382276644811578562527631336474192016254067124211676273791368480843069633076739832539440487957218781219502010067151991074527286365625087039702851184263792115539277142347836872636388498227447663987395827308823009854103354046932978650796505652027141828725121743476578945803051796401447460974453701334510040825120721716594825641308316649698560551734082757336270822925644392129925073326298516139326410654004310570949189932808776525337258773023352119657475965643272212972079358937861887838665463737537387470070135168509492843668122423012956774735244976506063019851045524935556655465427173189900219892960023733830827925785511935206927042671530170148128369171176517842308064142071361404741363942275324134816889133653665750650710050855108308992576344799655353503070790428585777645994705873999539535018968708952281755218517468444073831216036183264524721626972085433002632191206882493443428121308905499413435890180223596730494327670612222445051273661103858234989504352971460354556601695675759242956638818803280829997220013609453151699293384239721700545454399923838506228441745819212596233895023509274783181445469210013979005223824988731605216739311541068224550369274903343742943989649323807429334163713789945173076535325879341127770648200275100256036438339954466158177718683291502524924549781526834503116522787020311335457334917148986544223880991484954287023276059552842360787024635163279697897639060185383641429071957368385957841977853936120458727718426411388463304256869516024875302941621155675498631415260796970509579374580174258914137226621325257804596534379583899069828893383001801172211613637397032508409297776632844058365413186677451761599639551118088270139263287116981426450935187468183821225032402982873868581585652456549106011197056555880345045813065453308756115998232727118667184483169746755925577526022534730786028438784837254044105706377306045834775231257842693442270042035054708426099664372317664861304975876256427925296104128219157372100458292204995659811568794562712619145696921495941558069768734610360775002119843315020581090937830322890944486583526052054742481927207271844263441371742480318347376727980804651931295144309985494994434976769383684366098231546760216632238394683854563883694859023339257945407140511295489241211085033534749217954060218221143487546947824179851180637985249352505463201609732142990984274202247472572716867575778019893928420820941359220618715904683179390096806659706923645526764953154070059989987640666916567063511514248412435888427118840327669384962245115985005271873460469332284532306507128857868741133202350031078182994708923377581914947541324226985699248012833215011184546075568497597986067755264905687659721963092715096493237846094018132885766383202976089872656066071378637457440976776665599152887905835409987366544185238327506629932485922897816016835533107546950823251222621188750256594814222261469961579794925261833596828448196993512249750973084778558156577480362366220384188171311019089073279666468196412588056674774195214292470743450672967965347393595970327672572456096034268871452276244918876669228829182787075401815067245490457894399604923270045785522199235188591234314419503317723458119520606008112898148868374959440449567653860551871492047840572652660033959249512925500649829196077428215339591633693735139258869507425669659334166538779918780613954167391429868338334582596148763920969473078836649982191966313298349696767192710556874398189127190426179706594988439442040777657939988376583886504916466394867399892141015111315181374969896268402670837897261790282377322527486171271723471655482070178172212866908038539361035661857075736743699260778113804039909405672762084774660978424904097602495952594546591227845471555312286765641018529095056732417284953688655826608558267791818854937913507578319571873634251769984287717016731427906680178121006410805373953018047422957724509312163663254682679850631509884527036302291387988998752131255428566458807367804758548273876496488673651292998172333971581559206556382486828529314953884463540806921675039280492793445007646020587759466584109916468755972601016842974880793126129933559927358107167149129933541508511391499911464431512628427948902292204023015284794363620920692934831788669023514332709487636171843049830413462522211610132424675256250963804840604430830274622589298698127937338584968367479560922825166714070058601740721729522745860221427378237925427247826355044243771745302125553062697882734146942718090787567010774519600585962748294689985416801069885777351931518715274235170963074345675592467005163792734231168116382724350446034776194861725993567041496530263242740590357201160287364778767202209385246988228757745845897322922680376969402175066608589399913246036646184446962881848146782972154940287350643540585882983075691131065080107903291181839373575723777276788572987443489255914800640770617936394202755784798603797683694516002969142382264167840151290296559595240378313383103824359044273914148725042580961061326803582826754371277059136839667785853260777861125122970918873599021038234919418291468275464470123422424088211984748811908746420955305660099635673103760484958229181218164710604764498181443437236594869575471472940516341883202378392354369584523534665678831406844348567777062243368880060303876895786048076059679235461058906732445301473051893261319425163139921031234063271420690179725434629894069256040149236977240222636551110281574018512058274552241866091868929675359461158349513205141704462142678496803777797063792968703550984117798104357286087163586793069251198860796014079663878423917399607225312393755755373178023424519183814919286991568616407567144377673709627313283362744766265594092916448486230558227780110682908749644620014015001992683193799389585844889226987171372599241665340752187661405069309529787174261647376275371194948634950214718844833508565932163808862935073962391061431022871423216502598866650172958442326454092076758922292855551742293044442981435001028376044721956485449903826249994205661786329124198883271883548704832625738032282394981608425518012125093805714558893515645229212262182252098233530153937711236721690436750899179888723259005940081276393201427446618308939663321128344624438780217442681458085464074821691095490027084970853888590825314280347565759962131029382879246722165740691448152118037821761023735917714370997530501198153928297120487998238413548274929766587525511939942608515978040525012638224787665289271827296366084022210131581274524679309141144104160474790294103156741904234083435288945123430264992482224800032063632253324008251470281246204108297883163658670260225600556618507086440816324162242520816298999717189632774806036507520320222240271969653323859306299855472193681884630697808460922178886471322443669141262007350713950278944112946309594845794484402997177025814779283804464777075520893440850007052856030676752863615435844210987036799432219643956779029332227106963423001321889404914986229574837035212038488196910230233027141128738445638844358507493512259359977841814794974326147339653991843772221317992492731535307337687219308522466829483913426850497712526536055315200384566263469307813556707985576180744517639881019218635358160484341167229877142272979695818220182633689111168269609826866901685800228601018785501117397917945546627448506974084712516132234342341432024336339213343675106234484465230118833667910295902160001782800067524394274135335863765600932096103657318615149849297213826064744732552906256678855169842100981917988818251719930670885906227132113112165952910994588707712092479258180741233256995996301820632333102111350609102018210958462409244532651599650791750541205554739304942204094342639051338201361586958232593028631059873343969342711359045532923757599374721461104372306212701177809457801934249154618517225163404024175110708731513677441392154800758627119212396699078266467505921748602823664554724819251513267708622223989623649288938335204185691296873707759494832763603842002495549311060884628249062633662931941764340786932869343595691205489820174501449660345708240523747530347387896954091810303726109398834159633240067524145277782413388552197846075222980524576817276775426804417733568037938722065556503855409086806181278354575991292498602922407436554898319268413052006754275532247643992276804741103757436689249937840553778032073355840766170068182944775343221533415641227827549384323725849092442790216298762183384847091634913768014068908443478910770360587108591120953022888850871906543984123826268031854307381361266262304221455785179000188864524921150402245799532381130437214274963402024331803753057795301080225895566761321075315218331668850835208907083740574237752414906323526157184347287081071151219492215822150772300270595154232214409269115985887280315125211767422138121981403423867602530554822200408844009261175858223848527242415515414615056628531149039630620621697101543190492685628731679206399473533508412190423469653439490563901692686126921964476101970468204261853507426564961815649300298877660764307874415031593617647274179834475919111869350663573042404625986571448328968202711281375583260230259541643051520312231493597374560027839602901305783269974429320812492695766370198914463649494015790913935573327021173877520088233903702892030354157752612699892669906461065281467064721018792279502147589976620271886887020223164890093256550373267431161665442357328700500799073324982091445466317810914094957376188559881105003669424057846586705240063355720119974514047252410658235790934622985894223082283264037052326060727078452322670861931281550643275583067148187528933833740096082582289778930184446983482967725112935862761062358475119242324183104077144779599134440223828203313895709754663687857830929237579735816262989358646578613601678756561011304141725150465430937672044285830788456060646445679881315851760818037460764510743600377469625783750688397692787565745329197174721212505129367716458903150894399005542441128557322449322441822242966929906560802549840007719623682652735196539611351984348214407892595755601751041892677788096413529434315303440998212964895674619664011318428981157033045149781366389331556425994603730648392824288369148703395263019957586354620973961105253083239795570270385479546045898168656004081924340754198873595747426025233242655193968681568347072470013867156952942713692355178179633766611374247618135714607747385405800628068736675835195968919280010547535070156942198874212771494601513708951952844488420297958202729716919752508379501874445256975889707567118405800249779966821435006357818529825746293798979366144971519308838544651299193648108321504701157655332108981544411377805459617623236734027092269735080695712440723672542799306845749530546565433985551372503858857450433992739776463289994625636144167836406978099456054327072528964307436371977615786339338390208787241669275329442468298563269067350160584971995341440924195305703898442400971117397224242760525868655452512214990654407220168048531930114717922490294216768906188694728126687562581417581541060915693122870265681510594030019125715879472897548601404685077301277186852885221195094081232435852547865375038557564997867558865889054818027852196888478949485410916221733340417761620091105817923154327903959639784130807388453333761568548631372467971208120819751434320605198186258540102635385019209224841159933444935090137581426036653707901457803173283238043200334347216734200201646571542766172433283648930348797243885898711400063380744547626620493199403274582483793834892860805090485757042887198740935254653221846638273840671163557196956445204806012138329018344162162284423751561575057494065762632401242753134648983865084462487933840116471075833231358941532125163248362435307164991125544887777529561690204266187064370723405260891812809331086221070339988217978645735160460452182511976561164509586582896929586070606085973155380650553495104082220001817442563634689235893365115879479703242020961142851265768107167854833140114085823674178040280011238178515748860000674132886203969097864174799993937130000047251974893847580378113348919336393318446892191922600258532409422040108949967771342478920362442174458469482143273562056748838627008509678287212281563755370520053375792237517680050778248801188280272183404670937115410922413345112318930155183344516196081995234742220540621517888123731758716127387670918681335349970818224891221248962645409906759913538821790484499756999374170726854945862508189712502987418538757266204132084136755925106278985618234654848946757332788950757531047756003810838293740332322544761595854728510802702509649681172887278652490227243636641632184526649818896043075694509400077527074777224691720052455284232194993802597777293245788699288520288268705597823916736703014656743894341306598792910616237768476034962401432136694941400150918038059999912457245517054648563091690012445935463282410175489499255451879918371755697116015157832213534066847965142189840465926222623289953570372020830204702844648455562771133992516111979675079319968885542108097556828653470128637844296309748051957807554115603391164659011163718917772749649852308023132525558292857009923636857543670407052371253754675043929829895769936473591590636547274862478269903864859472857006662855736593802226604199666667892540086140098878733963937675151594542306863778563735717793497990182818353610567381137765729643519341718443712810334540341500389268466527147190074674831760556890930613983776546360641327010428938489088368747616808958423252730403843513682688013170463417230259327840266137462268107539066387207789277774325900843397006719005868289525826739916620207492399888948850995229917440380092982183909663406898338455298913190082523808143151237785622483699868290506409628205761728448263861254800459183754574761463183801289100951897368064652106145360920503859761545643602100498373205330698364728941948459440642376868908584147282346031167060200838714986865166191573238664403715297865356828698013356654958167340646013425658107409715453760157930382353321212272856067004090428916406500589825186321742440462515469236856784157431442722959234808121727364336908785258384606447200654635848637252556196675040197931975325718197183435696140909840504027340804366671885677158400911705025452230212905421282043219971585007241334048557067836918017537795392120587271997480935357935222694542398241332041199957391607292470909479425050876633036671619639010186865095438816339276898303490274062990765440713745357528579629480991006156828855194206649055979542690430094232245025496875082979429191619378576325469777809685654818368540229580716963371742709560782186214442109488067085216446709031035095189612437381182597919599835864108473350358735176353818389430000057923395804649457250325758902235216079330938137425968257461469415858544773662923259080036934239672069478359393016673618730827986786897122881779723434657746298940731074256381393011452137618463053218600353019580993644262140364562844208776868999146822641532259056912870361910284601609820878328984025300389941015844252781686968486802741419540048084397196945498089048501368615919865491565442245716698284167518254203090635033590286621113362903978765144772526263937398557003137509700688471304790204838923351008577004464482638378233775599538397042082736473746073603051820926004697703843715981082423929418774377218832877134549523019319897229339861626282528909244114188279323074134978793043110805473258725103914342502055898650532438194923382519891698819509915026114653052780424821074558157489939249297423626294482523609154635758832445526349476229845480924030090453046035033564314057115805127396079791703134288644949876669973886193042417522723288434494149654215758359709398579216785286169866309861961779161852506413928864444091607071642047056520650301559328260492595676119009557198782459796888659034101232211908913709579779923307859759608400910290879410037219301152499136043399306707534005903599792527758751870902854124488764337533050170930518014932103720749784008825344661247800831838413518831517676164734751036006776585798932242959748783340031275625597721379271643792200201373344135550123844885552819062294286141762864188922874560160290289037878849687745376073010468408356832790917344919970248973843361657555288883376597098922964861506287857524413780038990886473818291482038942927876444194688067373795607675622742647000610509614667001959211291970596778599144321785033357687102426382677807063734207978775831286783646408902166418771065122123033640663229524781246000246817524525209281994919315714087494188012045105798931603034237845283793342931235914327394927330365496901619647770958064013309577220379840354458602315469131078240633579798242434710834430111816997757733282213730659601472046769162311102499686128407348798404965975227147829877675731070839489310466180290698575380477355242797081952738710266511365096327232458731120623794276653225967307642113325214676286657275305169463131203699888824640684040684276059357081993816116989955925205333927434103901478415444545931022831595843110696741414244394497500791742430912653279862978671929510023553494582528175583009886618451272339523915143878360800927239539862134288973392088687541718781223519404687284782199088217870849124147743649719022910036871642847333088591022448733175645088233088351661066506346638627196106535516336534429148463049247366339855836298465651934078726265720690098475353798930782585565909329080541073150032501269318328331063689244778745167196771152429755888851067217424416038683237008695372934473791784745229950392507217914974209230422355908642180955616896970451875931735604671914600482911379515746750971816310311601894281214357062370634461994757993117304427426229835420531736460140241882991735331876051357218103745435518001030093584727097006883511143839355053519633026397587006893273871361981633627256927862233692808612270185072340201612009710127551595626362090645869319958261555577915298852240216133433206191770868819984443764988690375568650337541366083748553138530704132568722432945731856375847006569319529885484789029179381953415373017593471111212465803174025168994376971147226243016524396359545641188564434274950114109138687100206109558207193713262828198134924798665046867432010992523948329709919977266025051569527381291652574187552034915951317110871448826112357927796814906631103377368541565563028705229779131745087671260857926289751215942597587982415140309448573613453008750111148221334018457687205183158036951564076713022759242301454161740909085077054310482292327512958700056123980643277572322135557311655057655161003841075955829792545637909497836471317241506218542168990800436804969993367558520014579701871528442459372476703141087066038139475942168724086907914667484923865902567325524732370143858482002495617546374521728434991929394458657535511953686897436077187236525458387150094367855149230178479231868116143373759917623797944963433526697011324844209831591672370483270297629148462632721978284025172509200527398785580559435137336276226758213954340135468719409134117092234697953862029262140828838465349020558006159980295733924383284496528686582295050431811397083250599516491936449230180927412309917184040444406102953743911070971235234476021556544204712490886435760169040909783695452691645229436631394486732173831858504528479157858896082307019357480421973214410455240525955682212556218829215160468335754047714632184968065725081139998931554205723197895691412546132166185623831733273162074350605491305323895921223370799434382247318873179830269909857534130204890740706081110585583744807293409743243167155326631886249866217426171027615939255125738545733897961551346904590174021797894401981299450525630752257381147644967751924139443418094824258840580768471005650345754045646523524810032425342201907206877634026357498265322063035794575894850637865862832227367468027841477271867035051256959696550549429412834693035026379199326911315607375914748192871716149424835287176498070437620019527223615786405096486307041210754829245247390204603526402322891103432802361627971712056070684912883907632217435228495834576786658758108783663027134933531386288861252140540370647421894887537954291958922433250814441733512810957979279416305060560241380523847515391687869999662304458644430513002978316997280825463290329508978886892909810548364430397011094737819373048552224821319947527377601688242861896192156352951196293835406556162123644272128575352246907173729670825380595188049559598386816652703405331305851097276739445623527746148769707779002364985242806074126310420577192961238832883701792618659910666436245126876867811645145255797993425919347198905764097856081045489174346162628032347504697460907586499116706237232038392920080530654233498748032556645685243980023560341925264199681403383657776817384541592142419608286922390845898823269594488050128892688435677397627696222418162397235596944013428742675890701946736275371240639629431893365435465449251709696949979066060801742445602836304896354186029978565941936896563204397211351910440740573197602726320975379196891729622157981239450170244516548244672861672286618778474273332105831430619269764441049505841906269390114309671671883539368439509459201720094863996605277685571117210270897311863682022766621939108864143692212027207751411627308891322769365640321798988720808251545006354543603928374021827283904703623608014245536411389859022354740585006109464380825131298779536688944243239392759339241479368929014652649974237113600149092898043554523803615897646492028668973988744055813603416065672937237840133441858326284643268964045471670406686503496923788671577688587430405223538332403219378301860818769057340349667815130862273040160550964345798108340538541583939671348051061796436073984983240698675475372745996730039513211354386614769590101529204845138674307373660509515196399102224319846907240430515806478256680273423992540229889985120567497227101024435610990808688301733248105749811840897604399538355114516186409918508659104814847339002294516731744322975748209186951710035754261171353889821702359616997226264264335164054569279592838433842614275416663197110479707956491866777733686613201727752138424904599599127766907607651683872494769580010616107232703769924529364827409505905886362790870824419387643339839828990669259346769263932387321897871773327349301369752802428561202519023482159903863398333068324611486428989424334986184815323535007951863060979129959835766292238005966727087988516633699538296092149437731799501477716883496893525118303781131191897361364994036728280283659475549723567763953075415815858838726301632640953724267623020350378452688481952071921056109202438628897819237143370687599167850910810987232235235384192645191459129417525781238545966246893892590988933680206839464400255135527427572600710328653713199948689684374775352825271340826036855716065292224713055635666976561122592579880180589187921093601020884766455022311310325089254232583508574888822833114669292058191273696531250940899031551976224026514282769611104025261503615875131704840035851186203213863697799914480743045046500923056873693351273507730677160912410001066294935615098082215420589008133607005608951420610186607948088908662359587023381155789726599910292179421249468446002371836042508800433931903110913381406568800916891280947327131561347386531558108499901567842501587249270340978102819496435570373338422432558245421829574433244653342947810102649391241701840269188427763834860993049723241160467368404911724901700235832645475490717174582453677869662220043017655406294326793962132337303946464843092523171160698811325133278775091152232196779890221471027753971072386877628346300396181907735221272304340495921464926565263393675768227826459033454902530070609288202370174167544902862110556083361236818956403820772895267847067926823876695353142193577001359313267192923879127838642699722817177976948290730555945412092898939107712115762160307366949605645880100331806277337610549854956608852140920072047314360084296391901738019898044134643386992920786870335766847953331070870759546796130522594750503892792277459199749367276274562512814934341921535664208493320031884112964675534313528595098213715948539411933808685594049439015202449946521170780216224795020989098252212064260974963022650179716110048427730884946765849175861028955068474501506478624496813580803611792172229942784491318780835025640573061570802331288855460798969341137293528578838414011674615013124651013795215137668136796885064157475610688039605409443836804826828594368714407011934136677254929963482561699685203552001781635599252395005813752067086282134716223866530616274037188377517778447268736733491181693271185448158508447290218131533793002859192397040426514532609891900416816074958394901230185508753265785005468134303027355361716329933340786426446447372051916851292187114313240201798814329182758538345538251574918485726461452535256382835806367793738812560552238936695832862741964508274556961179297849914984809785797619325425354617487311482602779437385662542393420583419038957238833295969326617165159665191251864831994891580801989309586644735421035328879858504940937218441451924907315971706728578684968662010991172657560400946241452485153687438698977676172926557830098121377159854601507780098292102751353303199330588281636550144798237078268923312225135052530730389979087464418633238480384205978051958928608583366673550815103978077157596837029570356300318086658831750886829003233998704173042391714928999674553882467707648077952556483337691866070167783773718647156159291854101434892515359159215845771034272610264537105966536167205405240122525254083088171176780266580743076818663367668391928020890390631344077362748156843432701038202464465325120913004127536010465666152405079787234768728504393376262780591574418444750300556305242321991356773392453084892226457405421412704902646877446995724292782673919266786457820583489129917525217346628651999891918747866751904880269397679228235674196611735397800273962248228395334667383441895501501642899370151899542423749678193560519960383981939114282418864826736733722175264864958927933706166013356129479593124859867113176191571572292268742540842966166685352880099035762009906301732548505420425023790563255520070348990051961221053648987163139844906209630469369422900833674032230986956131475411683854262298369461188360096088365363172300026784699341400271242125058928089637567879424632847869709460071172867747809398217142074019086461366867237726678537273051365900397795215391387491089958439094690682080212623060109825647979207579090854707930598931490291482719946929821829093197980685881917573866188489418721714645872641932973624341090762996282473603245437568613415647374815142292761953182246011516132058590473236849553016849183296584962208799999965398107763169970522654763266729342676800985272145945339976990875006020598209212287422774313440299753728110444035423425116016446427597729306614652469315894435360395418953578691082284286037618075442655533706475021076105849933906599726559769199904849200966559128086395733196416199655686506544068038228278493540077662987687431874020164807244453425776189261646077950813437793076146621526363440669660914415479182006880548226531972872175512588131855258012549453531502926953269072775900926254876613322452260071296750947196798472651806783732801197390990022126214259657133287125373626925522010781370630949340831946567874367681699702497932244442122902211693300603293951874309969228433692931203680128591531544858525488998860612500119189660968373557970564154629813430303457175923511730018618501144973578821849915277307257659057496260813257713036324745567940352094034451816285410833162398558723008992910996764188386825777501359451212807113226775527746883751060539515753312362646911785063170501184108023623259735865437792150596528873379088871331389209579265051972745242071038415316728360858243559954838424055453509099707475600145817379965074505156827680270090578345322035376722134691723102028819316877538122487072243700549566086291756327785277181021792527996372057248458713011529339298394869693550909150834044425833496823589067950678526483687424720399605317363057894819990178823550976065545820684605890425355843548890769944066722639205376510462004222078905997976427683049768009889242647574586717818460477478696202381434442494018159114892255751817820160509217265522384502600941749450819535598718187730458634268702663096519955324186795657418672391779642868319529128899541566727918713809465418810256943699886273619145199785612415364038637465587582018025019718657898811172028274396142963999965558309516542955416213276571913390045603521097667310366442251895242699725863859227808543463293299163309341840796857467732909136565285224665467067194081886832467366134836961156375285188553678610768017912664548256827136931603647049025477198793780756143404410024931321958102169438497221281017956109272297922104191001062357437542315022594399309774128805419532170014460294253692239373440120570416738980742719811319160556020321054193871810450328955361537881051682641416442080569455084851332686847930259396110136410878001880020838865630432793547029147902044979717925443878656298978131825692244695547371169444045131637702313403875188008759112846750274494596370598672750661783828129406148290637693344588264505441616813606195475975268314303506248491757346273357483029934325901581802903121101000702390475728851030378505026141291555890314807950836679455511347565324936607166831160145627362566193500847150897420513106222939496370199540196902098340192321634896456002029266074004358726647117239654187360495948915339207077392124472562154389221189025598664196008656643282006939742041913396100533663103705428648552343511840330938314822024641447233564734253313402198168062485476321385626145033356022092709142755640936603812973014356629413474936108947460662784871050381893865875687658303540438004998367400522059463985591117440933712845476193906706511996846180510965322221807561522405232225645736577569461464597188588510591864640460862294824602254446162077887044100013085551563786268340640578207450307236246972878185189261361837333281332973723893168693306758111392308500682636455640909725829383081897024573950110492728638320371908410802577146796761665307351832234876658028738251818865481604632616726829135407483239965066347153617622653244495997620397416726211184764270920142703825180673582513782207141998862928244168881804733127228615706051801574141811839744148669612793631222436226233142918388250679090662202599297884666662590802464861150451400853514915794063083597812655924789932348354384874420218332632604005814772087435455638208217245898271285551966068373068006403801586124199519383203372079058973957208152541261236450896563377642179032598248522387262077774162198288618084333040933286269261783716841256550353556333913667365444046864092133265880529961628513240974574185338787573373272349176490648020016078719766588771233750544444938782151351651181246148966370957156033571271643667028006056000789684487829738497025126314240910459840286980515925622322554859207613198265356910832135009194723632160797617861605714660670190536613503100612793704875830421609021144914898299237617446885212087181257923731456019253253219116651859882470228143788033659906353826726500576460114552056451311541410214503477927560194660119989314726189880011316178689436335788902354710206499356572779077236491100744607884249407728182541373818622901717707692132141888965915717101812581033000513446111730582650708857476594368028505699117427830977360214525324773389482434057992116495495142046186756190765105184624277668486560161287792718807577308728368421238651420784002496683971669247404864603979524461823523034904768664836819603775814603069895376255922380180256588648950863349796952254024298812154644917573398505498257593537397991015382717482700410557790885280698679748596351397756567404601743791512528823705739517135148576826334998731066339208112973399258963725291824813333806065045205064225517059965977244071292180863749549288018044798953594170597183105630511300402410527887418385133045770734610766353871830547424149947368622187160177681248576834008382315178544894936829337829218424010179784435785871685200403713326134847508985055051783395004641728470626885709661980944463763099851850124227045904303518000030502037778303484796908423553944989782818161817504650213317843568509226798807163025755281395988185839812677017599947946658186205324451246565793942167079762242249271923921731772447344932871881011112225671858497846802556614361906608571556260323245216002112174519929283595220870502134689915589838659006079084068266663250220304038998891762091836006667720056664250539977582261853748390457424928095104348416994052194095320172008545055178825376271702793774333666405636107780755936266139031750903860506891214365256816089994510372051608763368507438244777315784721150120468859278509776152780988815518952793584696558171824202048418669882745765085242639322271524275355621325325570017052615563535725033053460575725289639903679344460893604544487094884061873901632435869513523143746906551705396873930297363627266133074626058307334077092450977961295027389554145168151732452235374555268555594492704316313966812224832400529725716181967761804646929135750509475533068130956109834365488655594703812182829372557262503204070577072341760208626511670233987116883423681788705045462597792237781954314381616382763152262560033571532335897503489691386128041047282137341727293445673852260708471814479378985398872486485665348573934390035189679692088724062206242786051508005987048849583899350023597263442620234180907475631564827686183137304536932405999577198707675584904615403664951764068687170385149665169236485842853991095471755493110235657937831197062425825172605719272637035427472843629664174521690041386987392072660537573863888696731760216702489141975060360209572999225860846262182671783463953384572115896302210499162705031061992477044060639540694540720858880305312404223640485285957739841694495071055641295009268593737145760790135708328799556728117344189195421665562019120161390572605836785327287358184540194713355245543443373591252422923384625076457134582887692256655692846277147999488204994874120298431464363286971032175813888608107877076874800912870284790569197232912108965548337869020760192565332822331847022675775589637508794130266009050808472829098139507605155232644482641088915614240482495513677136113418252612780394531549880824134929803308556773695269662662447516358485008460493516326182305483490255051142391581290324762522429257315235952489343003141865341339144703573356809215497930391151639320431476509254369805740703005949854915040493412635830879030715736005824605323612625792486139538811030719457497028246979877251915593874608515362781422399397949855951880289954046482414966335778124485097434239874494460987393985117289268539833630890117363657847416309307517196363562555571433596904126997887255038727010131588471627158951236308245705723450104398438168955768069460588708519328178292779155783576811910594635615414920492315639678924648224383496313216994772009991734130465339744781895892788245559075893107743493542345708579553854405666675989890820034355963568714601947513163113446426307737495078814058034923703905748204408911516599961190140531196267083668537083028441559955607230831135133604073223565414119544005810422572167390481164146788409939903010954067855277868604907780672191698304766096057936475419848399825574112539879463157801859889750772118727493865958549418513069863269714645636356148128755015137791557012022559429008051788496077976891869797516159052061463102173972626178826886046287478808658876628458690900097430961731358029488178297849564308875607027557101369572766927669462906233234842020495790254253847939473984539902607052075588469478047201476642496947091254706723309702174780281058090646821585049801957576625533834205689561442516043322127299944714081098538329792789240468247936437848696916100883548194782295892749620571098563482506510049314992914067266055361790395682666204720921676332914569890592006190313922285092794889056970347365933411534636877019034078773711817537005834427549834403063532682772288603909428926289149618539282179042578425525268438939071415156141597679403684645853128862012016528968722359127960853325962098562576460414428846676476528318458276598591534529735478946365905886860188200249915586366937698361280599880783482040972783571686246531119368124043114827260301744553975429117254911288611708895014351982949789598808006849804806119593728235277024153116632238154820426001680770591189701545223013626071286169250656268740623303042336750517596984729331231551506335936091328391219775007931220143617819439978761255919028227684112000568981328149745267712473698907015490215404485771775151726571212479487432592124862550683304339567411465544514254470688440270197812515122224857070089059730612888844717931547680351888083056121165647197476816032603873185791466922693886873900101029266586172805258089090790716787803584415228703992788438693757437565753950234579571361696146388400061372780794855229406090906046769764747438366377369178024246584854374516852847681197311598704589647733572157994788827291745752260975836772325595604128894023216099903377424367981047947753784951171068237889877307811506043558754035089248766840183802886415958524061451027253834087900737348931841424440995035912744997105117414856674733976525870475548468077474886682979031330222667723604688655866405212584265520239240579018319069233496681927032187136625829029952935622536715095944376739330541291938127918510026218414260891471433357806084827695486045595358252410551109811252154072867298730691743267847242366443155247559052533559406260953297869035782388545944290503214453542045168413471986958732369406574239819376288211024761312815035980584069491344140785806573715581367886146827070406672830247886817461766561777634293136807378309790531119893644872256957271580129758653028982632913745778060904740681823808425031473124428221379327149558618668277288653066451994841128609625308564509974441436736299492631011491540371092081118051793051750285687279215363929754735921459282703944594954425866315535513463211826925258798412305292681647506541863169984123424441624522796621577379144000546774419849592979615498902925742946571227914623154593029736472365009148051651402659214968926612667369556838915314934665479219226068808272976261344634141388431688359427269363210565551059844891709041493953791265590147368506906360869287359834422435379471209808139700590280827417783564989168772232206657094344620331454650296383582982500275378524216121002484929481347180107206256554403522832571257336465393572684470835068770516138645480833225845291625846182787136748487505789480290121935855217668544551524574897200126964462931547496119896795116733586406506329942840813922990211169120979403065420210103177407150105860215790938506003144785048864217773064823846560734810111896248496356651920216385862683845969639135601662498003242515750029757172167844039986834172866257038084887859241933705000707070760099753824886453984404184725180494425101182945198398521588593955738858622512889474554901804506915406939968071595677312575315437073769070766783693222065988514841125704933770192588161731520021648240168678520605488762185054547087190307671985011087161643967510479428486244691035600636912138680343118266596362785354368415411972734620292190981397489271361722929397286071863284507619085501967057846012130897762281315538584103043342859409673679577187687820546834381673623768264281015833649491913205295874464627924691280195720223406632050476914473983079660208109234788308122719272831433143146705186739986366530356960126594853220512518278093237581373997845642355009039317491288150607189662918126040643629944466094880567480632282463610273994272102919964411772297051975960385985749042857257147578920463702674395073646103899978231104271449747054810840923303871036270274938554612681738081007600550136095298051822763586948849320145044964316761659136673961986043387566086362978584779946791160894422639843788733790571683532457907213900315022921459608996893543234908713956758432236415703202536334696352895945371437113630024276047631751526853592791597071333630465287373966081416577423563212493021706607471297424122311175983295629282030476608564889410940982726538028722600499007374649323047188638585703605137270060666444351907132877590799064962148753151115147720401007856231622455604621114385360227635978296176801921862420537496746981438208159283192359907555342668293544575461339308751060790572701071440347732614414603146647354461733873549210023493736908659228364709655932904257397712473429110053676142346789347518547101532703617825160037698656406471706961377585042683951725924039538871030308980459781651219030352817961497652984526759870131471067526047296263863361644611107120296794072994548708846596163201471312989397805120667298592861070046799075706036807583492608318736094478997193325382777953016679190734717165004664914745015116288898540500350798737737667065901454968919086210742489089370100793895920426547972942835126107527211670758196024667641825283339940849323957566869518885969070251113022210262258424204182909636694397053332798218870938294669340126159200021496076629244970536729613244383782056844655149430213309151165434354400714407634177016678061432614454656612762324930653253596194382115816223236432122491363394184207879924255953545821990618851007016992684910808128777037466521736513691160702792045334647271117732806497738684763011179998594741197702503391879240491128697563742830526269987098943221873900932550055913524816514561953335280648722714922227524272846755811274598620660568062576695328909703917712284817882928661586043147858047699244058229214732196103048315830278380702548055761729730667492382467134595812499858150537728164621469264922455193095538200275817450602668255480039431093294474251692437271221919040560572057642285198440903691056926809898051439841571563785018537547674996517190634846430401039147452941466829504051944210487635018344791201172880531704461890805336999378332703246122645583250019414144632355228382764603133469225608892631017871294172574786500131104372069549393359918666320061049185874837625729905736671343550107408163665970623621496955038525412872049366859537947034421806841745334962800293062721693924186804956761134308434377444336208793576368161918465887886978932211483496377972958960446661686623323633229394657131865211166646610965776516238376920221414020232595716901168673970153671829521738251889202778719457363854794887251690736434889427580046985963908758231089467049365196356098089210521228122309554598128377977893234652835759128164865496329699568467518185711234401785747590664083386770836310575319304632691253816492877122085500516202461200496184435140204430349727736694961577579535871641649253459425197719852515369138194745912430368475650985023537796485666001274670525913827868822671254924051329288603116120338985248236739189426602818078686395346366018027350745723610646002682220319975438675850864464841939174463639866252606154258761791602675925707694615602030301745294274759442037079126305786932915214292103461481118801833473874612692051655069253600431170393933748965516887330433657290628988843313435152100789099230895357584702015946738732767595134796040176551360283445031748100830217227833022292641998316362957775700506405366646333432620653284966611761103420873566077919214583212585433899323906410958822378095891658411325875580226801675364825601466885782328296014877885390331073627743600561259642219347763903874416589377994753873944111121318253897448215130156234574729877329813353715007628149195065318574349218200741013934268853347486192635414860211736199570839774390792949213557069194952630007756437440000003951864875142734032586936543018466708578139733783982761196649153426911675411042138051464598886614804407144720207628856847328597031685584740308923215714474194628903777247718751443921264852152809194216841152387203789709083540509057714349964998902836655786657004230960973749394046700445042615698461785170109212463015719887032670272033678389770310106092894408117112979878235565546168177770130198646167037713107044680851811036099510228342450015756851317346285361476513305911241043720710050031133273123617401942739375300174617770993249423560400861263352565520636551909548573566467823319869735716856449997740412941346354303078223616190033735844939646458303543011017071758267105181614947084797054399737940494026019355413483091563351540961774154364906604025417631163648917670977417229148429872623777307948770829747617757653195202563411005975336535763368109479307360043433870835366152877352515907112567736875466562396696213236363060051850724812562270792174032540734077428181454384013117582579679082584030745885292954591102311120931370947994256070855143204713181985877506738945249673464520058540208569885278919279123052552057199074795531444475049130068331063101410726914969435977384924754616594780738290122644432543013529616268108894903665609889953003118291816784718155952578287518071176397752947588713631903697615744149076423571916319462061990400021428942824477291177054015202328938476292684673645495591747833460594318932924794401334569861175848190904011090584751352471008210251486717662404157755350618151011108971854059798021426959046336368400611139397660541261473550373456166976987605560919031430274563730909209206587389180166918286616666408772221895295685357045609559835714723213644946872836843592910946855944210582148453277440640584371578753543077328341533110540345462078062784953042084745273643720947614076882379869039301817317076729326166343882903098599037354785046879755499238048154121625730235649428987667334770831989660000826363325821975275512919487600610936166827145991305006458611181069495488608860821501857361631443326993595287307191676280267165933004680775450715159230496335558441540236040881809952368689528848180306477358786599867640698571696873140929798003638981114220919961032251508345346114097069860614105657274509366543136932153267283352478327626201269492713782373624927784761672324971275520801392262760176770950863902236466307953056284353855537369056963984432028019934030912792245465443773256360454584697957838313631045385824958796327172242379237629038674165230674692091939571613782880678953481481395520828949310177019920187044676800452565574202583376782895733427876805584561316104505697427429370938364612364573414110274130051672178377286727130382021510145024983504017934619068493085831741392674002920384508735324094685138779141129327465879825528085202551019069824044792111169406497178698742581879028349770169883306969654733269556767276626365920635228597933710729991070439172166699725759191446071599311227274870427227753687689472004149471492915142754115748664401857612221345193845455791531288375550254822088618301750841191866576961401461905137696666010138373726741559614493990788774160647623665681285385415844619318118565438321178806877176169075407391632690968655314771520397629098742065315299054881739078866282773751899028533468477659390785675455711509145859085893895048557156652275321917367482513761105112429802757146932148507185985761954818834809257007934692950452992980891093769785294722147124423739621245574304073392972696916860011273935354075726286262100650691157475764513341464170423399293992967384343446877357033003230914881216692739728593316509731381056334062000609829193804226751112943065523940191098992620652392523075723536338310520062286572061439566865196186232490260701968286291126684791961119104353065228298349894702318323685916421810790180710715818609793624995415410724615785124215278863955021993167753663368035644948575887710974283213771902959342773909892549116269476244813631606376936400387845418071440781825221317969136870678509508085214665795600731916208067919845184761727835126132254651343069250440968617499682053758524055194267660986517834589058839533206998366331554304709577517458778793744576188334915702135729819403940310446393257224170030771970991614141005359161595795033550182324401544018391165905365289290158368162736921607933379835409142510535230781803138041160134942016956761430213745779312189012484696451278482005183633823194363833936062548377323322558629953818938740225053497080496578890342937109720701520216991447703806912469914779147956408784338019837186881821128273942989166783765688058823598658306720608756528219065042334236556111734431581182097554968612855949217272545706745981093350852408783853804058805281537843697753824226506846624953320985436862841827167516270273360371557581010917885152863701257672264761109989768098988959715760379852531373789521706204737419310999022168680809425793121294715399267873366323027031656375126070170391075865288085212305318262258593511280131179085061125519963247373381033609275901854262900763849961485922262881107558295775635884698204282124227804233586070314507454178929657800962890027866339329192847888828508208650882408722102031316178521810094184659283222032963088266751536418578022561131943298087621733829999786035995463871767117346060225786681795706134360750503384154612484816150554019036542360436497228563698240732826403089812378766982684132086515117655234297962525507565964063885127241352596352778531793475830678376405544890790715165622805642067249965545370578188704525535434466845962868791752849708778034673590829566071452526330644556870170458007996849621295562955591588724603787857701600765779031649524397125699492782173215522416400859087893910105694192038224331076743913533381810026078365691918632178287035467440019958068405151972936752097715212411562151275492970340372180038527320178471480885192955343561608839548562305532067093361347550753408234324643904175464513318629438759889384486104776014150655279788234425962620996490933693448811215013918500372711669878174649594645306662704189248462277949779451787372855885344309072588814944141914557229253388406585730392455409389055340017288479652392791181709619197248580719196176516610977323904727149393674323376500529515684370536724675285625727692369088290866415356563013159528923923976400655591218071883656685811749941215323778552227110495480629845621107170942317771467545528274820098710709133781779982367634822564808674118102681662844816944649180130502779284199033060316657966716204810821346296503556982708416876826072645984284696860668693558608002425994316378822055486978327232197034734684350999459032362043277908395051019503227760730561710603554991331019853579278566175211562960788898603160816199152594242488682420080171678918326741065115589566007484598747957814846539360492914137231613478666562699217216276852300842847025239876058917789022254212521676800790645887996967125482691368994753089550735973980489269835115553072574917234125368032093595197498612986718020827969549082860665209900092979436956174982865502612403689307100646867456875361156012662951347987418665504384197999767010827243342111924332730467298101406210329483633019652027356414850835870826449519917689985015424332626957853383027091536669168962158726149984187054432742254637878630651117016116005534040746517021042760358431805738977222594621638786075956199119334351272403257692784358349595477750997536354064978254376950010188605866024271461722105690226850152046103097840714826984839919370761389613089440544847157689185426294415647902992847533560475385752575025641543251478733939619289680432643625909257122106810538801892035526824576244508119828958950114920153386238467859781376021475527891139956057463073337072247995933281297065106796546663184178423776955530877796759497848317687866869923353043911928466894767503005308697211047691491110279905437496986991450500035216131729992046776593522179706770447975138644952271860739788536662793182773896232574644087488103765581871180460573377099866745748740026345744632464848782569008307884096754819485471615244074982386846721062758835096939812738475128348613252308287314724627138902798571080160811610514457436609988999900680210988634724889776653099785736612203064691936654171582905911465956511444410889217123909911095400269603790650821023771788143753014186815402256396973633889102160626219073885669010339964366555072685054719854571880650865360397814913247880238831363926412433176266983229422458151010591991304102148948881174287292444561827370436171692547840737058125846018284685414687904130827736199614577644089027219714347057155741298010032021279516912994447650216409047456521876052983291254610226635761895557321675631981104584993186375495230430794714343718468369882256140049597728518763431232663441219839080015646570955524986765841536373251059912247978658091854376093351276734595189101589759915491653434694025460895206327886653602111357402959371342810136037887499580218309199962989951949083817326879036171241637386897244001090340480063673298605308015651888082285192653336407372406657110139501856191505543836535538828544225996278564401016777585848057179409818469296651178850921952222754157922688631045291257281373168684916091074642248877354756270533731371756048921777018218496337897769467968077002181542628084498898465237204132560164749269702459697046991792097432674125132865871466623921440206696587175712250495523700447999190176742132626883700488050359186544435104120249905695724788356578621152368853047918580324083395974843039080192821996619998396304155871247848315355674557541414463927100114614207775517927251743249429247651359045284010427243116582900859786511245196188056796442524070261243471390051938483550572265169826687373790263655422609199323206696903910086799926802061352803414263855395412006537088981059249048257018014005674457970065564002174269104044928220587419413298875181900192025620245354936173807124011470828758866795160723242136771554508900000203378904031965660592076619656107721415406617982317313920174192461463363699050455011803945648472689328215519784699490021238867429496627231478008783170933407089364679930600218100320421015759681622207766591206598446415166436858245089317401513173765733273587782058552074319016266017133728215463900445757457785652492395969148764019881959838748532707613477188091870479209816033015053027158046602459595067297116197722183505578592845829856729045417856270991892122223296350418105372987682436839557986905054628818047418254125031173241283701793170591554865334038368583734952337649011638909387694753124524075802267360326801873200867183782694138935490754381837580471007769751589641534627080615965729978884318459888123213780433816355544050051515496191463398495072089640697012437826812451828407318017970413558469363494117371162173825601399848804904636405421386674315451167639930303048642723031444223328591428699801779368581852664248976235094446955401497900611471562448282882500188026963149913147585662178786773331200275926038652716880669996894985962587790905160481893166801575516951494280134080761262831620334991733735589331397266142447388266605430128204648761744535056985183587395581313776111604023614876294261620096707875564367456964337165101083492528109129612300962406364540596332366972899090755854645387056898892511770117144122743064825396526613703822932574667116159766238323062888721032580561086330765456265698790038650633087181066821298028286393980094410710314347379446923815100423966273153184454496525548266382027971606142557760258595134027835897174452964728060053340806543929975796225765720987365753236880401331774218662627339364008356219745480760902444573806373648191634712228852520063230305792758864812971995271956030671760304099964881951511066486617826662215233906704251550935183553242468369130673930670552979379166515556707591593765826714213997247244986408774829992095443894073975064073367379204109473219471464322743506986658091761641308745445828713773547508646367437538819529921404203938504901219706436037775944731561544645580862950891679502493249264258971321655728367805357486668860490961142202640894226918235074027341062972522245412823484576207152845736950317569235413207125886919542887776458964523273003827641975876154625474496442670387496436290431286567364111153304432430964400284851879283942260512454033407756508418911354847067259498987645301994316220003761202291308284921302949258246949590308452297683989390098315823788227781650273776578472921560541961533759244361759667296869955418401291415811790865734484809688293892233235000171579388002003749573292801021952519390332473545819893186500320693525098827444139596407210437538472266458369157366446000657169491105621756520643859650921234000962744368753314841073538630536774928795706611687506847027382759671791516372641260414501433817811686970322427020416999419685419485089778528311001578979708604625496261830639080755575740885229866633457492135317798608033637114578029018814266062141691165636665022624950667281327083280315047657353758404660877347637337241012397578336452330506219756503786129784484103636223661700257689636771354996320506011005225633140745402404621707129931492264396358691423202333770519780044595556900672719256135020430660399756572544376551408430275105873491457418756694094620621554836480019785704767902289171323081084749324356221396305227236592876658814659305931344494025023660640179916149984476584485407775178874971515593805593139380893488899076245748753613553405325457344895803063750825353508969574083485114247601190526321086711697902872785950158537951879155060163267356096806535847988208658358930381113872881651988296803321222161723534775309298364585754673427472816074518530991504896049574809510158970452449070661618959730672887240841581659164221588944403269259883865472876871086509734885436807010622780060008715287680299213425699223135328643852631119377468299371367799968267789386736961552041828334331385800054809341658393112773843859708954658817183163858195657804508024577805159286495974661971176173268416466474537386214806109532116815667810455367738272464279279642863819070402786649360420108887994090119371105248386728725959302492597425419283709089409781132708427195817817557467010933814006981188338534442589313209625366602129036001274352291062399446972256305336333146357024450933381216053793595569659125039318576741923849290390526550891977638887083741749572290074781129134301459072338723892688858911050768125498472924016342057898795983417274082193880685297027829002290342612906934757241445706585848700854098334931826495226606635355671591224761387587082734323849388735288781371395873295330577104234258807257087067815011654071410038518332108031932746886084821454891998057619749456308722215016846514544715220036419152004552908017736393771026685032195351336491345080156716742815411529901407401404397643689674568122794039576886552881091767287355294357536078869651102834987507344616511309761700416215618481571751447424384643540727777465358362997331115363026337758857165799472441153941618254976007234025513087316256043059878682173623690198820442341730859996790678884372233185349702520799857171454774709911650659064677742152244336691315660244991915608422684207320514530601636132162999292042655640922312508393720875583760585531437894852785453688464336870067263071565136713216784939351961296712446919065107140158462423093108772956461482926680068706356411428852748924330760690733893831630972410114652227718592416752518712433202131242746654609167583032702678896833775699162033981525692633412067141454636426203325646897771116315115809636003443080631357215057344670092490247446530228746917944063257100913860408435106147981874812490065128955952341992742568480030302117947426317585823628742690308861131937287789080399526446226430771634793998845112357243994194815043857180175160851352650147544634324204621253124629240906843392788579423740063996336379617749317418854057495834050856428500792232343798840363472783468661724344799190706528885892589302675326467518262405598981087647617075693175787031641064595573018044452441266717009754320261406551048893392819366065054724586338397488581098246460559674252153302716557015922377620458372695986203667267226548884246000160828032542047696138570364696583119614624279701656267692083935434958715311937756281537217378264427737811580557346201063180136876613660105725405148208786613467509017203141095572539942551147944829430139049710668064619431020070209366521735649754479656339796516801672522597234413341585789373084094283817730904815250334266107569644415227839028903052335809543997821378473158306819118425460769666956286000505449889668666486720809104910051052027793142588186831604422032804664679800981964378446695043505390967382896400629238173237225918032356223976704604328864924914818166196558775891138016908010960942165315303630885791379446507871865908084667359297276154375651780169420600323060912116165123113339964885362162839889784751493908560661268330412756675539114065676358263906036920520551585134085810213720192130431456972051202217350589928398768252921626586864183402223435542444233624258101256866615946206342110044934811401891283103491869398005635359688897843082855200477997931920506170536832029355871216785347697960243451658963228460025927344536055682003307162030457141177272891552482548443880568283648131954035165136141668643993350356152128217446911015824994703805967413362260862638840893841279967374561972220773243150396906743015664211802505000408798936688308585347443560906019070506603294968810412664980606346659333694993942030754301960022871446152343180925331293334356340093715662505487377658185056891747934583408815921191812874286344798786798298100731798469163744025157531952738953717329998382762646289925775479727206612340302490478697806715721879418295107704342617982858610959163994680664911041602870481097201951608706804339771832676124431394122247564468802283073877309153064153886277817885174610781547552539234124842417653804628534936905692376632350307594436394337529558210994963481909610881861559664685804816534521846430926668984044848877560936433253647042671270938377996084399622084445130693027781746059391661963157749774493265307557417753807034690815285912060528105237079046127289667082641487331474184932952904614455549850366740061042063995717334342157163781453526559686151252993453181604153934186871252283195804423653365644299323699026118518308332192517030462011839524449554159793295434765140844731037000828662122415335858570623906022234930919893540202596133018391841242424652283413876253497885242586378715633470502353932451721451824570238487604108662886535026001078967800996006365889883929920455564381107211729682576553656779782062422327715248139178113784559061073972474101070669689387802975303741583907792698624527572939890043547495750203893821742705585651303179979579297428227778623893052905317529313706433779315346790234158656489297249471746344782426812872622563079745559918492157767699068272029083893612126885825362686027549884099804084632438055188928181352938255429328599122381483858747466792467889797034640996101497895245023669347347212574877187494118788503172780528626197235526165367818541053860394594649085769501280364196062629567249726111762471189152999680144632562418408467505594791018011344218109578014992822400375537422972299032748072892598945669567374078490932562474099926002907306861337407108438995550437299685005091650853334038923582678038888083775291237516673089199053118254337270295850661560461897155913295390372851730104272299677243178268275103726162823603369014881578674425632982271966382023424284831000581050038649483722767690429686993211928758512561427980772799765236530938534237079167724845023108532676056698969087210419722401183067620501707750294842876393084708369453527106191943358244268505633640687134196715365420714209928047236303063655858827068126620770036975897388890201424430852791692172140636231709750985656460270017987868265499527966197205654481929094822408674088853068838192059820304059583962459104958085314258200960599728584247992257902870131638812388488647810997422623716951434997860037485382436985522434718647538114232398779374971809291177675965223564089353080229902942954754609207371714579505909557042087412355440504466989268174290178047986663256811766998199548405588872286948675270191641396800201422519360824262799929767866406438411505745618524601743291981254897941939878338610749303190743249883061579311815638675084901363288325408732623105073613279079075314672148872371096780302223805690509731378835276222664163481405608349072590653780653586705762517608185042231818161921799493699807693382513976979037940538577426404092971078500846665870294699842154275499814073861710657868993065530389967025938033126572009819366900919648283213491203083515728164852800070110520774648371889029669458239767902648278626173301270632328537580506098515875351442433936707593249641232389138749308172134875401419973909666116943986638658246880514124192545704968965907948005645439269639975719735584327950785076228384059362793254238280352477828175192109308377804959508241755601862648231663292280896720098918725105471739242206093156210736013060149158458273780419637564890346066320540937190318827720509419779665046418582008369159152296449227662346211766539355299233976805813044317702108040812420679793738669709621621375310478623425009343984183375940479185317745923624363507455491175296403664929850900142119712414708606829543444536918115839011108916056134042572456065993874409323093343536981293244196610841253056098838370231121027653775635795201477190053034780270686779759444582857456510112981249677440851016591011706494656883844990478585560124703728253771991239590081733062740237235111458875893664677335249740769248627364630183399497840124115923838940933734733968563226654769804154007965461480628284493627670674292735201264120005335280972388467324833093141583501046744047928076973492079049064179708716767910077908417192708122217098348691417649559523351269021078504508204976947840323319680860447565868410536432018043470790883079914653643027653581059032723138967700179137776193943442056767923977267537607304444946621628804194055161332689050633712197505290435688153966435469093154269568724621955065182983109168560277140026375835094445866259212443510773976071417108599982895442462011480405310607080856328682192092022369281901622548814072842329680596019456330935402803352250311204309467468637310924003071567181607864777467617672895277812459814222311522866059715247563447742690572217518403174142092047804809817356936599661167242150128184194612973019288799721580189515668312496414903624475603907555151434369762804940235808523792163885464634107303803630615194470373250533609806545825603535122261206373851245129315444107149843194807539908882619915583974493986101167171165894011132412944549641552055478489352805454174090853224136286676716286955826903079623489677648681500494134987532728779977554452292846788559401236988070086165921261477938288971792701165035376945529038593890579512191805212137213720806031416288392874973944341970348016464398289049939458917743875212378576176932205655342989942419919357033455216490694648094586038541079825546247849686413374896722994736181503653807554236602265235663329817648444124971938668744776297885728324706580964125327306238772153223803026011284842403539872690562457238195945791941569270168377997406556430298948566644455459517900422008918154687845897073633571117105359777585863557164110216174883327791949792350366473393200495575283625533711073537239733928946895283662755029701196739728239939610333033183921869359303445412686104070082766894272212148732605845423288522684579784304677891233752619076657925075232116051562277162324145649661471074835841766453891855594743334441542440590264881389148132011724233423338899682929207030066478417299903486399534136936556028905497481507541174990724866117894826514555706216665875527228328905794741158176857041061158620316108090646857439982972356071770642605553461328870848143326340323350599447518826243791184535688785208209646460291965555552274374175451340906791995600569878974375767764673897022325817430140400347650456105805380906032706056624141637312152212336978975919147552772166058005907537262049246266348015725593416146857069621697296400315902300472205678719694878816230303821382917656947810379113717232881550219948914758025348608579544888260922558075476860324208438786453463989193683647813564733765324513997903888724332118754423702420064560480698908961161737781212808108487714105739291587598004582655180288880792376693971916208361697319820699309453888431242059651874432395752542709756857621112818597937338164861919061663312383408520291291226818823365680002264744458858861449168793764277640324601205699161255567350648403768362078735242313579786930006477105069899420223622287309613938608468800220397630445192194959516761644642230044156549693877081805011554142468416764885595905777326992266716641978299806679309653540939914648699033251198279529282444613594898243968535881947167273126507434100524259381192054809692215409186275744817413332239645308793331599051717527592123057695165265255865739305186955201715794974372699792558399697809087657764788314855050351594674509517761726198187025122915029703479274007166899528209320243394247832950602415560509722367443836335211472878925602706504059796088411407738216326363685075006783149509127071513384658433306332543964217654735056144894514633852315169185484340649908940479209069489886008479429242095121654182504418993586898858463560273649552765439800194429775452502793575114444693278578294969871305605843550659786905352434219696383474142204197619223502154477173367416126392466092853992269610985545842486520870180952681520481862056745083303536408589330548708046971772328035306528591963317842285526876720700185392289712186431368622659449794911207498608340797206754354706459537541960836080263687488314733362146517852959289301329358690478107100388503103188068929390067928514189155140121738093340548061420962012767212280733578173300047875865865173566393084959284396461207372632533557689422584063901197586701305770534535437549748986022510117229978148541721149120204628986170553434537562240762165277751709193150222993097115756804272928882290540428062388805338234407942074831888637710761628106290172424372054313642274347823763906393285394794301302364110917118520610190390664097815026788257266696153469772681603598138853012111635016544074902337020492435069606228257685124836811507741416831534742712570365932805486000428922932485217008860233838876282646560242912403923716241301612101901685715752504064877069917828206942568647902901779334837150881020530711933443055990387244129181300403751363888988209696168835440578418008516799510310219776523531251669263492679390282046782407379115520331660504235502748679933186044361896386980421072265400405943644031087756026594496172362085056207947498827658921356668194256488576100422503295090947141462045451270615159537066034539189198964443743903325582005739839882471396757917618574201759068268529102973334549863487784955733037987028168090327945459050934490021661546738465092570024188334456152608881984667498441139326130118663928133180633140727579676653066458362564086657466869436610127298699425064443421346490208085553209622547301159985486023986021464615268660508573736710716795352598274737841846049865510411509115626351806192823672771388685464616946126378891425979645610881039180896449941207426866305338013157041439003923215574770247866240506370687947270202456902732143960215416636829552858621196089514350179083476134606068373427883065299508857939221993946174831694805299319614313502868218563086878952914537753735588612887475244412658571173764522578864126822675029745521369719589056089833417226687371647557385879669504990994366980739800315248551283767195741854695741154448655926695818401015739939818315432602636762376660140761566852166715464388025760054587534793784540201128540472609257641896799632239900359314277793334879515662132046619092236173930767797775729399058033962496849394752932129132050489040069215152401626856150473310814426128750314103952882229819700336690042838074582595432869542364138346602078080890764448310624790408681302383008767844688042293846439778755941221154076543043220668768759485368930113130865075034177856899686293209667681656811434624962296114364985536615979330368454205720035155387218890369072392522560815575535862598984897342358979095466156596819834387756076311874929723254369079150576690784793207173596780220709448352766895731178109199697028841772722711113208052839867524194073493604974851297420341910742511613205219146257279627509856096909886275939783185354827953395489234817512120643375895570847326920447664055011854693259522325184989070027442128366015737853341490597824238231662768782424019679592296271983512357177715388847930936384187360870082581586156413549928394794121321293147470410222333032729840509863068502491104461790831675418097560705711616716384844725332376495623426527886692805942491957259076629645260725250514203702639590967267354986829654556803107490644511186009162448934083770476127198783357029326296190604630179796793317406551429633975795082270018388851070057041252961245911456238339721909793037752122594685767694374287545771560481559114567168603282609684971064491789249552998128822954701645655457493996352601643705590731012874491510931180424396752283492188749984171453972098394266447088046279892560359380834698303622590735559899206963899757377170795880428762732287464982213186442676712079370864282620497312954762824268417235564885669059135029435155339026736823799414278957746223204349781722884006198871518781143084697778490662925323046476816182807091856326813920714211763642836096032498022883434999301762530943241057612173220474105656351094609331507119147011710044188919190939428439616375709463312829124148450354984831005552560175238054962826306448802328028017234022112315128301304412417780186953690337689491494067763184108072747338620204717076225174226595906737329167850449734592397087397467467661361570636462231191952772303622979556974333524100853143152888403038398231516696477169214108524198747594041586354384050726753121500695566547169264622012465125873979127131950355534640599704258632784088738305260982585876769183803878570035267282770525896577051031262376408521609569690030252308843390808480640890407027707705852019988685786417604835677977521605130537280266711331879629626515175916044408755329615018683466442141250441947219099426135061764528216700429969456037123730044425566038398304959198368658384046140051300278019165528897423163810707277680965906231435120895445498567249968101427496491409019578258454159355655298721596189431286104499899530425896595572035768955755846625063083647443159006234097979511280881929994914386289424164876142655211705844788491056814678206751727052718452401982277547179708256700044487957911318095545731476578940365069912620456837896742027854739727189534276582832582110907249362858766403778431243123754498756492260409645944191937524041074923347811322672752034718637045946039157935704491884187502893867448050682261709712579273537910312381228129290433543938702716638531726554991649847780526028459352954659241913289330369825362862462947691317475662817230984705233619913868630011146283396200649148124560905393369612219614882629717495126677547328853885156546722442481840637416463683392070948506346185676784083832181279931864842331343782093172990028442440263286561725904665693876397899525486905940719485485029619268363733616786246588162679629289437175182196274692643051742146428851064018493496027944730132238129231873666108176927031090173957367407856522247335401592285472393678768146057413149845393564798421147097964808502051732937078670887820348827083100461833007977107135347280532561764509237628508886776227268435748402423522533532082010839005046522542305711773521802446849379973304380539093508306739429226694651406075058509141116322869829890858838815748029432656887569453033329399527290415693917675768100862207003661965216468110067050076713855621778446988331197907881798162781272336286794738375515298533801881625008157742310079720684497395448291747433558648568547184429919020984728311679080708377392405357317435988253929399011260629483798648195568619129175515285086768260222403349812153641627334608624496317763153994113295577599319520199326535156849390067030591073928745071203556980519296068031364550945062169022241232783969393136404721330197284097863113862344127547268418295280964076565526569945955015061979822477237657207299084504678094539672749219596216669077330953834005126219760674578165912971937680291574798076273939167511531955512135358841542710360788628879169079953542911808626011462383053847852115755653999673941278405301242594677078709352525910885613297788359580463246317305051102852070110315257792693839884082165205266066142132137853516479566612512585572336946122465897761210073952019623795192246564328624482746492177056357804099338385249238236421067517929115452617690703184898046808783317401818255792210712799940124333827350891341593084680340978531255579934197166923320992921465713469196313163470311914130884639889322239253717620401605407050515271900451777456049654495606191536360668625320519425980878494200603718617842314405181244071546578284118380662684123437932091831249403343849746569544809097450807360732602698074189232087696631973439783619344512484612159551446655074395857581140047169384637140442237152816178283633792739767380955222091578516656670459372285327744812437972981163951931392132764265630064644051425546948606904553972531807543492250381345803489197826422392843996228052655970572214247921833378039698982168549496759257752957005962182528736445139844112447910655815577694131331534999425364470029527379003541511674551450070615021649353328094398643867590200948613836893487126044157135930453756434122644776670516025814942625008176504567443921830101088009815486818035807855339643511041602479670379852813426482338231002508184209899176813192832610090755054264214341353756507514313171829049305329822436927450247592280078347889977359468532320549695413576062965305903845664797504874910133988229493433936639040216929355512388792143095914748166170274818578354608736006595564442774451009519131624959573361444657637471900590752394644277981691020756995760538116070992197115548408133218699144756036711077166546836506511702476381934358918939809788900211105230896728948957805622469965286706652322109410366584186145561730968720045991773303943605203213079317974787223325472819135936447725784450676705579239619505870325013269696369053973906385060223386256286602660420607726425104612700281721630161625046727122084208770489893419233888631443342608047534003112878708071414632956195244899323097204946460641005839117209177455561765070340112642721191801807175829836138454183442241368953648460036270941333089596564029535295567461415621589334253628411354968252602065172129266263497674341356113352087536116095286866351560790419375017940385580955408766098012209566671477072846244796938365574044594415497641410801050087839500523465808924891029256635881886847493759808592445615726279591489691647795278047523564576138859940448590968856920586461792391404430655257442269030863900691611573499905429005698093944743711253939667560189158308267334108879015614039267961974103918222508575973614042783649000224922269041348676448610059595126756087362962271127160318574015249718913217798677681515435711826371638842413034327699916180009013715921780628224264034525646958082275318813594565162978278340572834238808026091961169640961635677424575153738594208806501004110213745737038453957917953746760000399136271436505168347625449326355277478144261922759674877271332136511799032676351454963590908822479802812000427465429538297725275739980861981276450190065024952127780313453004706214742200277923460925683740746057374060502726508020191116087384077357490385919932725024932916991378809942402154465835387557219611144434746702375880530012987530810164867292518416087221526075005205016926790925098349646528137143792825996955672789809434708292257231154401665246708017962149186751860642455520766206722118968543073770138701114718181821102416576138882301213528514995019504500064820318355950120137864457662481798288304676205521969995651406937012328393128272338187604595746883661120523616900180692433686642371794496587634997359317802521415591847904804750503867517225426671808907535269300787806772020885555807057065995775501570769827940486727388392159223548806375707614898420103038437650031825932480396270509646899356354617617396210625649984498864723317999848145234949499282190760281563017859230592667297045490793105296315711313904262272971900090821248381208351445918740749466342337470328017935191739712956882690330122823467262589840172456519986004917841387444278714193880450607939978008225286281276010069802610153944185390209646798295327266376406948309415312627937179722534416047432452737715374901844268760661049058461605246853025130990263330893409966329144540942011531114630386157502156124134890981797241650467219485016656376860554069586550642539755201415065507722978253513041383661579434594216817604323562730744646597369195974952805523285346488967230797253880027898424500469233737211969399867344278193833050029818974012635154455871831994485637964072528324890686050692706221664462494063828749178882656379444779929849356837193185141183958064529060504053088902204622291774542726762362082988228069849349248027323692235176751472442436668656475296387666275460657184542820209111273220341333375964211585717050694633958957374132311838476590600285956716839540981651141806497137639588530193737635485939558559758558697385503835361399765685042879755983676781513296742729942100449147032468429602593104389132516929910112112645894885898491162372933382093435250994007837553626555072880140533739326586987377735263301871722105927927506598551780441297729119237708331883275510055974262591806928369585738721179299285720082795227650847726409334119276461416957459416081799549553085349660310403477208116364924941753664364425038795738309339468785275021397992523854637637034865146039590282776103739274467474311709177932434559912945667111232403227385615476784094220937293500534863048202203229242045425312746683108809418141915492296524148201697134282472798094572806068999842290657532316344122017809226380977875524224239285265962756859674943318632899653390901999198835322143744169733570085302648410752796610906588242933952786609670038849872208384005244757885363745951914289423698612053967129309296069889996133071902506471053685312919144092488408787779768750169456172107301001927500694875777163359722478109441625223453174749616673326676736810267398166828369576817656050050090293059084417016563252988887699867517779183059294668324785872546284704332954502096069802148775474520933172707318468274981572847683396278612146589935325096302566340513218373759486243090687708147325688941136886972461679914567411245848890958805139835040119994129496707043917489768861872050947373749523666380836393629184673941204244899441825800626775865431745616090296291812312932057708049103000866268953108983792121607120311697622770423009858822017882154437977600361114995142011731375669262062298601291423990463420789927739128498377100291715573218211325466355516720137498408869059823902313413172418975615629309390384176954792440680103405284007495258010066115657297368608546711748868433535684722858553207857721584819718026356383273942068384739054720398046004107050789171436043142033642425184327562485071416367831630235895443933650990037880327711466620383265168248067185001867995276419421978242693629891199918402303011081144175171155417898516352197846583275022260688220972439020292272007372431719717687601617028599944603899726243495338017454226669319277648656794136428958761997867651380133718357258199537785067896155562320488419853527239130656937908028329582634962257285402748986356912342796316152159113857006891791122503140649947713904695908402356849262518887938226976279485809774860751760238360290156538225935952427132098197286081299504845322587193772734907317550345493940846849538313535060563968206451537243562434294288926134723738680452766268894441537619643248835329759334315295125942256522002381155332817114788002016806603848778417644288351456921536997369813930774379204566106927646726116458638540614402765274458258952571369209507550262110042279121920979181539232264026968111253914813705387776006891169519509590180416962720703816345510420974974647632976739188223205475061969379454285607070596065301422892893824453590759577359289837150157122617551383509468836270801303982377949297325027683519852728787221522571375670836331174404379820553016049284027087792753089538524731040516516822883121878141869368753098952424973743422215329602496687197424708865717613544946451939647950928276938899414892233542997087199438378687938483210707837692762553746142740455555355865667607837203986040605761469164385701952948049138348284288143689917693788153114905719850116664999825486953183431301880872959406577483233017745166342823863217279290194590405365609183342643773321471922571165666010987676691832616257045371040395306130578293911288704601662585683028527886371660147724273960571123887041256873173303622417580396428689172422415541344877722670192018048105658915428738595836836522456756157019819467627145166004142274665578927229640834730453586311391957591878787378627266082975409299788874869795965349295716004094540075495314566594532921219791789082825572853998530379867947445678824787375598327327783470763427335098903378133365534426980729999646603647666057635825282206490008091539906972030625903073241060696066319351784318961440856519315304516491356811823054817791326720413479449977008648423962171751189420827334889796392593185123369717820069103932250850402783311479892054236172509859765145730396293461533793701555853826450954354407519022531559767151833285718812323952067623055052491612897753314676104088892735487412095777569334616183680621651831125565941641363548343889644422568791115837718833817923532210424382553779566522054014209990116292099173487368941300814630942489643536188131813354880026157100918843608578981222902182188428572099763124617912177061719534258732342961744189596744296366343535378787537448147342944939029146969411926191923140359178771648269268463282695592497820145262302250844983007514051394305084472382221259620680618011788502420182710413502104236573933053979095071886866573402642762919141752130078634496885136602007577653769374296704517193622074631919948619205259765333848807187071348020778670545712289184046024255559178719313275013205770961003441698270699232820893023618115283486493461074227688150345595254862442967198285358640167997435421238225730111947760471001141751284107624127874643866570632673659656834731859135321191874414400910799610096719130095614555504046629889215500696964563459936486756996851170710121950653142230116388813598509244394240472231616881768917933123024370982918939249982950224680714552868416896460206069951230624902869267068905115543592122815655831455228625953165405850099485987576205300774348122914509070209647410003842087890561051651022864762252384965646202388541696832121101634133517228937254728152972940777609331683864541404319545719077206143962960705251824162948569234725839995235133182971681665633487176184625530648819779499405687064512114623744690956504838677210156095372608812057554444519219475426514936387332005374154122708772500045853977984843110874001369289177393019496029938102648639180543865834358754944880320351215743883913111757350046284006066928422305632507018785502343207220394404620428722209821477298762859269523469690964709242991132263031410599930172576799379045535361102044652497052522427113679942992598379664867461302091669161450800564203470180059201101419068537213101338072327458120713863739324721374011023166332799643960320234181403680366777627551325820179390701432230018404333436852357215442861500476303762237841862189758953563252318291167079451796124251479703759554133398142260212716027820697372661669297752798540572432447673483802633085790191301941690831568009052525024055651022419954061598940938876588279561713484633282936774954040398722929990637411880727933664464844909584899023559892463277032887981041957515192630351122876276138782977741889050565632684610352533647464712538509788938835113969775815298514600556642973663673991683290592589783543087908814428768217541927343139577053080834727840037793865345919816023678181121073221804196836794205892618526780198135409703942438413870377736116182965678988290852755067656957554929522682572205020695553440412183106904020366892094819882235858811489065691589721458496143383548352478703573409361471417669144456439068035067475996021562321848563584122642279290914554898635623753863183349251035946850625677372909871651986726205279115508915781996596272918710197778303316515766445458655460261916346301506981639139288792699234778481333847035844442494761361220133643830669673802417306114193995810453270731308247638896970306853879415663992279965758900535019704455599752647736575052524506929250332162985503045448104225505993547509031310549423704184650966524479132376814532535609102193995711431775247824968281165296492576122412106936037494840671838506965694023922982035948731116295413307451861577763291739611004438712509346004858411417687177893959272597381780749564750772229696630195671165056926370682002512462395713119110999392245962859212320642214360623210158559299928164258238581065409854840296802190882993649989121645677053944995602318179801479939043998004456155977194245390525285271863188619920020991032013479004414707263616377281922725287883010343026940936283496256335586121974933513251830030458632408869091483271485358105932570735075561684270853154289480048753932041812352506829762778052775372115718230357857333159166533317122567680634158892384382778431453870573219097929941885665433149100620853884412773662480752074743775600813239250372420149697848306786997535498814553842469411269688759462440359647919991241999721786181290985675547588218591963102088796579796410092303774345291442314881518016873148219286936516638766736841167368082114521181842675448465411648687954263876433907647604456356589029836378815872951020334906666433898946289325269731744907326580948871996544076893626728495883713128966537445043267683257845148792855232763850802534426518661709752807703031763483777238455729304032213958051367408121663100574382983939198044833211318727817370529505877746226403443922432232742771606659997910096909860581688698583592159598101251187707986927565504471531299301546971830727443790994061223057737183697497603747248509653602574273765583883261193789832378706811091881095714764402864731758768168214609431223520434648635389890771483295028227265680876244198624756057009596106895275312371101834598331424829636994484466044194751957353037463549432000731955869822297105460892851768851856724811303376153850923242492510103760429311651915176662587349103532736740507841183573460753353716222926277775449527556419410382806986522888398349650113161103766504988215580979923530633709814171632644062430458304416214297078506308993528599619452548360505132590137729459219094701259243666111879454927123836297863206361029238194783704323145450172743696817957516432472717551936010994510003088615427354211396471945387904608421693975693723257377694061893805929133052394898965826467741794260126667500290817843674478980303121409852655398073249192662874966069280580522052113837306511498509568136582537869643708735638808106244432198329316578956101369179877666853757167859291843463998194754646721614595836656023327870578856037339217717282733046680125942475104054704604861863108502575352516461354030823638384830311250871582432312221370738142227152396785746432680975243364462514247162879142244399010403502669661092013864754247013619087928689915386179457577966806285124376356917936930570400720800430309753014302850818022155758442243601605686265304224985758332432626600076041999023894242391150513988274631651799326665406408804921713869064239394202068460397787927798397942627004387700305516315121465223738038230649892859050764422878263634536436155617580350584638151878447814621322028176756609619747669433314481773360050809574409574212435918008584696759732694215004545424475740138183972584648212616226452307115217749145643797161079613997073901119668430177655807313086810554072178183880288466767764943337940662606108008747330821011253945137640198680502534138255342016497307017637577916291569486900093859324680335957521277606879619645350326866783215925582587579212032744819328445551833284018833516142622176668891687131050148045082585396620037151608945572623863534685903644047033019408086132764528349119935504183026452303007321590083166259016958901935477804083876458357874834948781583900977528150231186205221677111043468251802205983489732823831166997511206827836166680541363810172016954511367052910227428278510280196991386202953719778848526196315729389941927361503831176915748695127350267089235299506670595858454691271498352830063471308089189830489867350337411340543220212547199129647936253423343437654288392776035366038966254873306644375758004490480748575524376767791344000762828914803093792415227037722953613144122058777433620684755652211146407494322122150142741413327280642374369215942331312196826973844968083180728138707015295142716552537838716130101024137194424236051238288052833081664654994852721721409369346789807328484165409304606085725723947043355392707475878038057870005247238569697229289604416792135798013621572014331774876146268792354716561157488645441275291474453270557004359391527162354557364540864741134994254711887931527708782842850351775676422367285044505565357359487832422039325432569989147604557302712175601669056030559565115167845219024631291694177102515457984927243006329809511013567338259639189974040088889322755138736691290677406273805600333185214529959695036948788385096681346515099031702713090627672083881718924057675512930785690768509948017745611385094727244458523136032221885232608414569105548308895812821586695158956682575024596202870313473548179344898597878215902533640144719383975844370502233233709360123105935305399299452292092506509936578427571394633960583806425486422495556088033932881853835201839387377407761514712037005572360118123690904934268680545298598302282529839363591496066207888215706677191336297718130263300621440135563364861617877799207896511416869126774224481384905246590652443998422586135376905760848747693971583439914912556150918708954586202894209676147964400974151009384913699195757591883109328252943510015366250378393179319174104405160789230876563598586505319355516357131179568920485871622090258520371870791641151838939181040692771684422892862371726731331601700741777295869401331569375445029102786512199860183267223014692925111820421125730588284817186041907887470889834831170593810351896495992499622808425029827350620384911108972387956041192532821874126484039362289877256901593576472961228128610037014987198678945533676797533623973605084927489707458162221449829512307806195630531933864185133913976032971616675254419186798180672486220551637165091158198307325968851356197468908021339124872800753995197986464555328591493726535477958733426078245436581478499878399718260345988375245669094204323898532458799694313291025935161158608111086674115329381813723001464363336272117029739053458146593814553949829146052437546365285873737914702626386937496804309791793356404213109490853596037088883546745190005174108574177697111766957713934818805196063241903900728252486683698862799194821244431525518001330496150244737103199965147808543701528472404483804677721353548004706893337689936965695907910313091828046486215044114807459363645922554212020813597506487917805858480708535501980929043230551149331542210151021825533002179878587165599674205014182007070112363244738670736380219378566465189599135254854205064551435175328157898742059726690357307311864902259288919076809979716805878801685151492518144106759600030884638829208250968553725675198675052221711243179728152948326604627134021452740651056612970631686502178115113192036757772155595871285468481846838965146747603113226994450884519990422707621280645075371280272892611996871917949402817226766472353561586978389644351569106060620094020565231906470147321816039651748725759261051999947775853011455499999338358150835192414048352540449613338524980961473300696711643492588698589065446894390766201878935729680418868699062315255173341103065846430580099883550683417979391861932387495081005666601786334121343038578045978462632555986996841544135084870060962214081273770166025425959822503003663212893571317583269422267712302339757503746182633134212508627294753114490726477034875511035441361596112891164168784534615276164544718626352576244865882667304755588047232419781963675382370555782819153787051641058541948624529957285860232284072945413005610524914123342179015270305960259225148560421909719082684008228133642461638139859118901629057067752449062512454545579147684560874249616660791497507310130972890522196147031437281016283245858142648432839833804370188737475640314224537592267270370657756777859614931831191854662820021149849000950506606932149749553592189978301943019077766708558339488889318851697714140842966028486716951554265070259347068452990584908020140468437178893056356802164437691539034252265409434446172796259113414732887116491404249590128643080325373956573826637699588395904790183425763517509639131761354116613063496236829123817680281285547612931070280485163944571853590800441437369149264093286047396304065691865104879347668744701729008381465358470625999687833227141229286752355787468312769995841493542501250377092207010173582057024711309055475517909223187002991066090779632194031279131442557430829996078581313834407610001662127618341493272935383357872032542724995077441261070917387365907424434573368222217481847402602740547812425022370984348354604808028167521516441562656079504497710377439194107006083088588316334565391125352703351672075840025197108770997639757390891244150437734788031994411424145186887514322967249916083578831753795291697452239149889597393479047168676204916603478731099933990104071792737295236408165782889225235049707571824625665414676382165949788834311866559529047593253285610990980985292229728818911752405334276603204928329216171739689319957373884779604904402432716886508231916042684091320634179718951475489264949640925300647634260339508579869613268567905183044364904271930792652110772578789718035261152766747453802326477355240336124404588894236825507578263457233984043021109968073020703022608374777311889192299726532166132968437503441520819022481503625769279649043850961133931920719216290932902217511887675561900538274077219028560144018103099230621926123573446488816204983395285855515253058618087964419603447394919404811771782150139442397643498295481603334528166912439128577686211986839349363705929346682767845136807112438041316148666937363762635752397071581240517550624177369672861296735119191782956908759626261727775187830553918626856202610952794558179977321832117490269639129558693148658053482446021273974937785661783585550702693077469464283965191705720746912537506052839121056786202261676539348574842068893319279998052150947512320068474759860782591089933168655749079511869737839372944148678975388686687688882137706316112831657826747667326096397637354085907382863230134803399700871175687356371010814490604200557662469574936902844563059678072370008654298486483203141441594297238726474280718036097684446476118721269927509830051056417721741393880918637115773055817252059980019461844424920817086639269442957062484440650534994124753907390630201884514928822500516029721105400263428575630033714296263980815933252991669738634427871545937244421147047693829984732941517029558137526630077668968639118141517573102127711703408987318666641742213514722661572818213211718037559164518382337323204633909783811092381385033261586740931424277676490304181045862126305442281167198934431103583590464676760956782214871154901976651961003799399722613811033603435858043781666893175504320719206061976247458885312995578668470781946460491837258061356287232515829603817350305435945474722719497331172787016710696878419512683998060813813188050906360010908511587837544541595374927895098963220646505915187434175898105766071449130630266393458816381741629150871223281857648771214745868514888625509889183981005805191585170956707285641638698622076122213785953541225686634395720825424527445833835222995641215878230302600543604475795151689451677760068778996438521515400983113583489219984473677797416543161920031111404059196377514985431663733094963905311290705181426744636651739105702477745756475097513665966176045030330986864009844865701208026610894374142087311306369098845233570747184157286790670194530209292055212033149368845560472895316837433987108062998334897657017221384973667356953408745571680667343943345158230852977054909749730853842507535722750721716375465381966284811000525508671965759236245897262727901585712332610244461727566501059616284313645460534763445046128531783973291892202533916849194355396882647370656925426815267628867816387192192420171628634494136244822785346520045807999842612770976162439094816782705942727120020929873709518132313806303000041542370061808172034091220910666992233102654512254077875535080645454121576121874874463521640329094271806091879328474976974043947735671823523224459979039213172729562518063896503271500442226994767734854915717016841815456700612053768160959326637419163336683495730459838111181951349579871857095017838995560345740077677855923681560832588677381778867498790349142421446113505945909961497297408681761126033113149843043270322561854704276399115151231582405211667030654305673659929340548544182787457956000738779932634785930432734806124828125350104008956280841511860015914684964247911992067055792701520508128020424136649648224786307954489634303313790470326487927948597191890319556137533976047268054606347541125925991070768972408883130973817882345371995787613747911160169620685429086350647924192565766932492900821062899114161295863965452500380644757083385682031316634678843079466293350404909005553057019694580289984564108611028405566260771754161723676293708651467204523300602880868613639229433947320705362788739664086560166988889693863462283254978162822919293400046724415754802786165676283925187900842245888954333829575474874820751251892593946235382121824419801053965367659085582833756593371339467881417486575006349929559939877397804242818966621255815636634011920302271900746089353779428340695841031062885762497388626679131725903958439003124066905789499031155074720981930359015657840014635029202891387629970652440713813187732590531898548364882830038641715531418250904341291730207447788527015506595526849390177975531156240855539281617382702758055434451521898308362086100660211066966093258414958396562198738574256665167053861707826535116717259229089236112159512599842270010119951998984628464553019270963449194351009293664949786154671184171975513194549995879903102397867550038148003801334002708941979826901783875198345232317889510335954375118407582715646565848111044706242347537394043319398591721380709589778341322687588380708802064937899903511764097340795042858119013192563183844792269878215943668387244130735432691189619386263663232733858209272790535145695789486301553129643405729299313307345016448766916911014041562043883687672570260505173745768163491845412981106291027766323761511538112498872530252781331849778678118194125756275818483759588113887566555623610566750078114973581051091438525958088349862868704874530774208368829099341307453544984316618433450855889685878289527378125177623348226274250918908721950843625235018928996321385954146793074269646993126002690268901994524674663551501082744427852871650952122906139303469801773803571787388727105546286288031618614501864110446873039864858940335886764124003802610156308809429081554591705364489462346027125351293959335299139113383767216885187042292873936104180996532793404130469922061058170732678148377527477186284081021436670548665537367434601741498769893013627741640828318861768589263552205574987299945381786381509972435425777534411055650058219612178410301614407348243659119511304892967322647244610368781407445416494759172693123123807338063384105124546596263289932785558818400548813199052728494531306199077453876721524748031804542298292119724771954697345673769705964243896055675924623125513512658502059727160673693042947680202814801765794729618620678022290565811695543620943929460718614102247407591262775531567093370020410630518564688932358333389130344925561028808144990464392397776227398602133408191727879228104721708802156713768556991785826827511389053625637895097979403805342740659901138843699940730221553004734930760836780157882153621400901905655898646899342973484178352979736952773889061803270756982657240595578294395587577947441010436038951444217307623888636096128285602897626785105381571791444873104512131666406052745402305218184306416016228721208726983334266664295037796948403878409687878648977754584156601731446195096569949249728203179585672251077076185043258890681726856939252534197820813626968673274736242726403909872077879181587738162761612539386994640199039891928861000840759000096985196002648262637953501968409701805143702434249452309832942266046931175022397078716626385891506284530660724629859854795283178211578712768309184885551850220777186232911308843659005330691414557364571229991646616647404050548837709075640422009324043951441873208520280460665733054303677852887502484872373720271602114312991306572984055934656777110946061282614252139710347740896665787802271990661339448032744417707515568662844944998021672007690044703295039569242390659023039145648620470455666742305052814149737548341775777317901261333224001779624528877666691368368265283919480692202520291001458090928401829291466179210471458899914277191558418849482229585532158902991160097317639415973943667289235015476971737654576684761851983111747182458594015937131584793906406388449798695266716227261536976424942643660960719778338347354858885402160987432899531681779702545813776389675338525722008005897826627236731371307720378295924420847995467537387733402606138271239124553476637373142597944495796130508433358836816533424500948624816337171045750343576000825394764108558761576596004278081489007442067621559516194849098020219041944734043728625878493539397775833360308076009452462641553047648470127317334426078587722856945421269582185640985501705956795583065262510768428974430140215907808620093960205301431106796531849995410433897419382207727179271307353780725424766613302339747240454032568487587567854140597102687814062861825426940422533337018722220867903753949039270616586939545132410839259409142412258284096003957327703709487235824465275661849734604929052444528992937688579380109048062081611617575679447433154142771843001276549672729360894447955291489574940776098938201119952832415395291324561878400783858485217864218462731204254787574716830893612800757920713913618774278727101375743586524607726017456615335837533112025581547319487443151558290206849531340802622059339411960539191360744272032367099395887318320777195797767863701874957470971555045636945705433728805677359870476252916552861638311920466175526971671237575288410223777622643071775588427235821420038460426624539924153742274410448565087854445537892783477945592403991787574702335174236358307126097539402939545250109577921437717018167087514333775116735403105227702878389837636786207857515189907775783942674702806065505267425624040789251588307585511109463011571878064212476652454553466820255425294182315249854710749393897498714466005343189736562596464050537617670403775969384609407139489192823728272450899201577286685232907883315554010688318121499472482785269355014218632395275347922536290355476896544324044624398784566848769232036908684843917895872290127908222417620538178484636186845520750554053083768847606290646863879707629701477260763910777787544510661309826434031897768145309592564548883648305970403383113361607401066600847536915093123205331913770217373908167272211280729613680453703678071704858763572005582779835391575984368070454050274012648771403125145720663327692798210585133163161924877374216513536995255492661403043179550044237580460873747491166693885309988119981192540368283830682273869740259619033302788763737112352998453385072849224831206936354906384809893647767797910365816912628476602825616177373601969127119576647645064536256041844697008405505838382286475003343008541503036164542654334695999164121811324166671848921359020561275599698816483324706818939545163414928775329091473126832421113844611493992386408831541898606194682873161590968465889916048882110808627865713804410395852719480627182091852413444866028490180525075983072612329398236770545765786805957445972075022587714945868479136883743447971114448967757711796602087109231973046237669716322414725318294275063233315093750059229493373643025838086382016835431512708539562760998497502727133328906681112461666639129552141576185533253828965955063013732752158401184311459571267650250796683241857897327262660429114754566067463522048310998641983160331897111509932800947549772339812861638668805537238848873305964318724670740771534959570433945665614992034039818900846568061519562100454758587042597714580934969362306433393764793982651559733999463624645456280942326698351149728931408964117540831677488176338408840015621935098970580477829828046169901244664329152920650792619123897700435916152363843245557859676117157191786389403124637255649814738090074766304811162907334545316933377257496449235687018051726162042513040396797208834572175581898645209712970545714217793433844344522168324568112438194843280735578478685272967597465278996910088610118645541925508071784288545534900929435010697203066683391310854270335260856586075847103301112993863067185639995123696993468088199652850988779009702977709868270259388596410490784248092880633207100878881670962419037932126714124534819190991314799869446135254798258389595566784737364159356259647225368274925267585867364941111658972425411065827459774781167350528474511405170521291889425230932479585343444118019778463805566654423638831507029005415035373027648837535273713963245645170235135113413580518281412905562940298151353177590886958806230953416491034806697615464254214970264507440167725808291564449078725516166196229784086626092135394229169092377647876511931718860537588491485778838758415582711001483919669191284836983839206510916367327734720903415492301727921643523143487854524696510023370499976928385160807793384297477863443044834427137873853858731191727730459682084475173517557691276847871436109678250963462965363985555727953617063649020665850611412562403935127296705536566588468156923537546447668477231171187381430849434039920793920982917026729279753162245587927380414580012889661967381602780200115918257794628624991293292845451301978229669544075186724235872566513481926650332848315168061625891636822169086917053429703603413710348615800256587323479873332194137508325286957297988308489446490943208775461674769447698273131127645743616331170563559692562705804328005588874241105978194520075798384904046654545842734919917866034180861903875140174310326558348706352988724687623034209608228494215210103572596813450629777433427569223136704725289395631026458708327500984629964883558190503110548400235583213604820846189842447737542348943533443607176094002363723755881514291247671595631463490688508396134520476026666679985359341000983351255600952388769071539191497122625443252321043596833283810980929984201828712091670649974571425732167968394290875749249710856693606353689009834862898586008076916365890761648946569274454186658588975279075752335276297025751292976826737249993884222336417713672643492676006925475561689497792332455009753504161563671566063542004323160593826898836465189043441273942540955517985570545155354679168966320071646201874548803312189926166317891550907307077920248093668010978860162022624033682566237231503904638510003280030043008333468867721303039764099820066288388974332029047866325937761997216247148449287396177445197617964258211658226131331698014683468569312559322883218663263216116091416828401859278485139177892739653920973740711591742521430325289187334589214769049242667999290481780320279817819804810315762220782151993884792168551841336763100664863362549202358776453130114936612516870589944900860188004688578763519373659841422243374336135850964109548571116812704640804580927719060064024434975857483530464445478052395557954725642752953223434299716264382177571800906468467207555139589518986259674040825997920631794698877348428558377535704577272145266923804442921753608924590607844599008811943838852955274993454835105965031809536544913341763386309817353133365398023510052977904899364381915143639615769191157824547391479920993254633558251948042671035912036729874108981036267811664653349721827613391853301146372988102537885646141422464290030061018304279249487197209588011400547791933290430519374094107275998594168331363140831727999258782242878406329577887232979780863539853116857690659514692028813475748693009851888669613482829955428240094142667313064007764390124014327194572109118644488930410354841293741792302752871649672184751222448954044245159666421410189970791647524155478092134033476385334571093078571432648121430700312653129820828149869182895764149180481981891630452992441131576976609389059005541617780891013444653655385397269015498578357299062812960087411203885910801441489679222754966873361602551248211529820769932817849751505023565840428791296046974046106562041949933900022116742043732901608082883137719563971083565446218824617527061115420975869543533874645180003872792753446466327458260463547296249505829030081951105717149238559597523704984225646965714509798618810916021224364259978687165388956986923114845062229940249857630640678134271764107601525503265016639640447334618412226323302102482552157625557914272755887642176579010344816547159383881219487679922261891862665139353957650358392476806569264264313057759307790942127343438961649413361292774470520115478348541314139510076620395566043235629974816147701867733882971721870851512324371651875135709168939003476770734852829672552271643736046050884007736152884496759558086940523457399834757513992724501674235542024140410985979059977557090522778733860609324665180244163121058828888042772122727343082406960443181045230892932026440411114155624079438414185586351113891130591639615496704511227060334351387570432978223069603440179229780275723884910611286489857841315425615307826581235375193722137570333375863960725348098505836465524180259436569587237616932649824250938870092953028690631520074138493978302232432779930135874002115171138659558591176998531183660950577148610737015904372994338374015073391212091058080071631724886511777480110507953166645399707360573241593286412702171721090169723551516835766053689572019215696882894259503570900250295734110694469488474240049530064087761972819415163585376037111705784677395962287720941586399704753667954825098524936703565973475146595495636559033071482361680761087942493937243625732130163237805967353860812285944796559657440187162185630254764241500696731188734444997188466236424377714148023731104768287639943015767686101532400634608893186889023938954647734618149333494742588061730605048401906337332946758282893909181052955437967849952854780077324731946047584937679685341398204078101620722275875530792796829360203363969188561510497203627453987134570572060718456699292189930817894187879747809242756016237941594802594667631540016452923871261597034184595199151752624629953891114198161729256283368110466943846131409988356617973198773983455100350824894116783248439595990780452269791732874784785275991059118396246263164849894804088524781325128218494032536662200071993963459229943411562216182549912008521887272471049367134996261327307789419086026296623948929827187542165454753927840422710057661210526924668038685023613060776631571035067929359178624308506731033654463842266236266429842927795097186018613601513411282879739523805240049165197949242661412046379472411501253616755013724504961699726378832452182863006906177419764620116525522506232835336568230571965473898943547568760099003529694295155994941765297209150374517253848224492038954692361610617259757746914100261025445050811994735741398849180641533569017166988051676878273887885867552664105970613059205138283951043511150585452554911857226122648927877246303177266867651857236872160842989409943888177273804478658254374036720117414374199818901374085857920029582558250879848568902558272854398421850708511062191757639948218104871090942887254719458490498324134563881424678597718854595210895255781315014906346361340063218169566211822889225156651269120471397395162097381705734492373525044347228659542912445977726369220620618350134569127105796747188899688505524663930272355332910676329072279886045562440923633645158766570451428442707933272805538725491502398867333750712135086353625677942921507526810464661118496181093182804993298362888115061921097124933659601759283259348587505147977259596818695171925780417745587689702427310607073784940411998882964478867137404229356306038686058223964724227703186322043012577270845552441445807125354819564681101183842124212164245599321219000572624881655941913855731315016809077212488861612108986153665971150086533514107245329823080073119479509411906450439013138544517005808897993438978650466158447595816273800346053402901144538238595792883326095900565596482883492057178194945765383762801843126609893806171555217761332618911952075414575815934906719329837018492202112078603103427630527630106084550695602987754165989564393099721084182746872263065724960458591543942771850437377934214147438363112337324670969574260852422930409336520677830188743922357536050841879394914712716994355254990820046813550156143078067438703042627933741654770100585365672356305168508061411374993694359584822133412794135280508127386347299141258890419556993885675354569378680159603007048831796392561761340298048989446800222023517507986795596779105574436527182158367761502629316733862687031600435540386104670433828259598498903981767453812989525444808536461107060635394554838678497154171839169829151411519723691106713671626090588060349082003854434910184005448553586854271095752649952902973575277760142928605545790307977231752980634760518945450482522286200052492456568907862866014114670530093463443282834513078874874513819798440999905943241001734572811290251096677317540882052586340218521067087141299307502151603733429668492584484002404529525264767166851105149039087273839538583447216394885106741033129849792547065427994619367539165260119405741993275127826444987154055840334038868973561076012573543347015038242732521948499795743724936266350196274998644480701463000153137900816933836258206922757670261025807674259894680056947339344448448158408029301538523961758926899879761996864565704432829077856987865805893537669588447128372394111572575530731029569425014729754098086146027117966401530654576052461717263375336882311013733529424710402041038781539616689156650535480194371232984896365495299876096422506754061826033900519717670272997138711210685131200512958527036899696685103642176260740537789848221593711685056216772590446241548336953934783789652157935487063177999760778084845609468377491520132991378364927328139715876124231731607913540811188558104551600612519886818965324637445787454202507656953226497698525999405951645398620839575379240725311616288025441625938618649545215020384729008863400418018824221173436654074800115721356463919570033772341051844997119738539875146396892736773711267183781510737148082416493026903980528713406183853787896551824448439517965099716074574818425716656870430198443768132916645812180136342759227452149796965847263505469365172341877677614516032870159472066632446134260417472523117736182132117519334898689226559833474176385610318267565150457329377602581003684827280232157051323242187816119202907349514443644705977888665247052983561636743712220200825524526740196741142071430477408442436210554291881430969837371214839177421847321556394818374245919619049553265700942880143832641404017546018455621560466395695138817755224459393299945592428605447896175441447561723154568673921700650651764791607533607385333801188461982791006084947957358127359845470068014918293261428565638411629746201416227027033551428370971998476996424380125337077025470450013239555532615151520019526101470387828829690814758660633107295622015574681927283838545121707881628386234433644144126787211203390949843322094795082954568216685255097453366372203151317899095155354144987521973137396548614293354363021651717209259649179781353613000557995521623398973844104006064893750872045886798347622699108203021328795993634816826078636953990720287272890296255607235313492726800052953065606655175466176105933455213062215259034819781001527536558084023739570669349397584786429597637554308655925555521331820843732795594940477634780174357932062494728028617261133386181482164428817837124714983055649061276478422064219116352733189220750312712655650581382338901006669366201608110130112428319528271688937716772171568404307373057957387771843619995774848708514056388767036369429905815590666307748691016901979099761798545387127129011270366880153666661382941231621916494900274980669247845178221101932553512259728967017716998676076423998831923614266101003189650727692187685912182817098275193660997010472826522077054390327429043088057932155402448348677166704994046260533049917820182772047431219027662767784740706990592172435128498536800834828404299884305767993860949829177704262618854161495237752480194433142865042816183949863666775108763408673011079670597596876633741635276802483576177702599292791707319246134669294920298719583643316583274905278502687368318210684213148728570159665526770528929071668667189504536628852137075163695926610521646397828727132783358870703387565573560199182819181280150239448996582352782942230970896205714237914559211486831914721108548574760246796663695527003598427474022096242824976591312416106508360468190648499913970662799319489667505278760898387915527283936472602435833720957708076483888007497868720977916379834551177104601093191614507127646814035166546626230603389644576078899231757056273597653006682434278305632566729640340012555022214592720085211146402668716085946905575067786416261402208091810576599588460143968197789181340039795441127564670365883416825117694884156763935990549995298286059983468729589153465056878933646513112631011410695775676624051733598640604168784160918721293516635778139828743499064070403122071747495340006683390521973594498461207245194158537050765692318161292008246353141178972663432675768042438554015195456536385543024436649587925178290629059940775676714733402937245118905558450585759679711504380628214029129076703261262387037292128607568701782153315728970822407056787685538850247175048124459234197690402680400453574309261030018684520069280749167040345232980649783697093917790543693265483958045818021055150031957408464607332832251292373715373584814574439693746895962376986111096559861031702884061453358183335383481701700773680715657311358531949780221022083721752991638664044903758447132468448534190270206777320825967467038072250237350701441621396923168873600136890467658658628021310928472256044906173543000598463406897285657594918556587032543073017251496212021807353435251476747197924622493542766307188530586443416822116983508895712910370152486195313183390022769325345154816866003105556537443634810560577880616039977956778366338383454216766476477885666079859513539533323762723046469700458215468328619120437292958454200266525230833462085342021818078702487176296877953614366450781796448186094539326306250546819382090832160969332199686818079635416292710222740275393406293656182473062909780887187034690614883118782499155789807247991821556543881127802023726835594413963455405280861498980087349582915828372798499884067015178507760848606400992984573764885385271638584837872909384045643763555202206966890519634213637563160692831546326075232900243187795631499861407369604298981162233916498665507281272959367379480504651550637457578984232768674392807292885628917302182823770597993792574203090840164838682394744339355704289230524975861983986377713209188607178021163236674113910549412079411496581822125175311714718616527232632660619848205372639500338303512568738299567706244294099890322162924244154345747951118736748693658580929524328130085542410567613204786762711885441605942639913268085675076915985403346479365097698984231658006499217379377990456963816048976211706973684628544257264944453097700566066395919366779497766558551660123024868628134173320277452536654315586197535621990039922347278387907385388963137161433527995419963479933298930346851823150478455216879779782744719486820881735040403466688281065318057338427760358556961554763288582397063120680142081862964550960773832463891879154577103196967865754797144015018130537942421497336152122236993463578131303232201780466098731437347143211746027048680537301197977318917478276295925536112268727007094109028729302561177663594966572566573161749906889975452021789025492171627373863014503021318467622427957180124330765775066602300212063531924040654288251168143563728263499013047610942585348437244518542486683511847996151929706857696196912837560907951986752866411027329928958263094288382267003320923189542488176202112591049478005229229779537990573427156972298714471062611387124679121066208724656942571285201274494792066383275056970760962834434822845640981720327389908814420608233814480958186459957055992375689109470038822642701260015314481006150849524932790435289593367835108273812402937718232678851775326654344108612483064485366165128033310084085494719969837524099717332826825859892936447885981164863537718910151427720747474164603529338374411875807842619780018175402720427391029341530701962417451040974903953307402535422208674203846812867062781872097138428789880808652114067182913332329517762408211603564048130860196646834256443299869416284706709248085032296284118289226384920727348395476946649712561445536879367160524239119717191518154902873148057402887917789007682313052130624445241527155708726895198162211142538665940202255975611140520239541053967485389413015341763628075135273773630186464518308485612658870713966589348644007994712425646112294388801571463864414246202707454703017030243543443959186034506252935653649780140806884593643167685391916367001321495280742357443306983618035096782547704930243258780446724098940504215819840512554403507635452059529461337342346768230513054004718187034735012696037520145629475087999845646867925557412216049536986292214264381097619713658052897729875193674627302755279106676225744658880885833888066482821103300682058739737949054602073867232748529654170629561324326305007428568639928345927030099509352359776559319880395010497824186179483383840422040794939338974195917790284924782537853786517954021779919417789686528958738948353872910458100920151357149936918939250980123376268267648551215405390997768411923535785505596509672056382201709742821391015252914305863133767391796459808242026672273901922803708892883805236652938753427968418761846723791850700656861681734739760801202678145105869161893677626364448383237452747146118251091574028533057178135635469171171615942009892255877360040612801045537398748257236868127998762226211266718293367565149693205171895831327559245330692924247769006047976865624363867673212690056945085094684840840092750967499853248897814718644548860003626089564240708473359116345636157895897141954369135454055117748128623217117254279657902314882783929065963199142553076680152708670959126517049624316784620300177396550359354290706830872648653089718711350597180305703351349208710373823537036403465751756728674158863960870660932493002340937139948149866404676912321527781383537604688533779116703127759426476964277802997271499517805513807609826712238366683830786007349317079589074790848825774562245035431530572274218925852568988341004976762084495658093979912955618000866277908867159249431069988068819460434040361681807503818918560274012658736320832348240910837826675986926786113747764183850140450472220718079448979505135821464130135894158271894101361269924655559942781453482886172071055333981387495842822527556726446845045727515473133297404943589962995682726918290674854876225667292897005082238948293584380573350663518255329647567960254173416191912376331585443574534487271340570433873284870820467732284743077180798159630552360419378419798159572718915553443968416481631411566436292569836920663891904796316413189269360039080262558199700476310846320015415952367938859303581215033493255526057523513501691746862423223604480299876629212088294384110176384818287913402463173791896172648946941668229975534729347504950882407017802862263948164127013852937530285871284995214862685649003847564612408459463242713592019358225749499031712967772950556742997300110175772660675385179235746788381942328359875811062052873182389574800192185423196027524060968651264746438829728161595965766559777432998249323434155549532420084635532905623695503072159318656505410171335758636593669746619569570978892664958988955043803718464200090726892746922377723022507444589348255617942008367674122567656614217584905600172031934422837525598747039508974941522431750914762649020921125793619750220804868352335434359527976370074818844657196057394096932557616201796719208412839914280730366073314169767360689104322570094441245249305355922699798923230160942993199915735167578819720769090586353823719666318061181037150831036837186225912692052701570666166896326885645096396701578683952505733162991913597028719579467048278567744954250509147650497151507221020169064142926877648664752376257980393784892912252186536216326745534179611860249587118297899648306718377012423095434166486096798525277832450437492712118777315217496991332580926696131602100276106581621550792865179817917726208217414671234622752542684121079686005799224849234919864743677466502383991318989786935451360735536675051396080060581893735188182441079018239583450882874597089178290490879581748781339306562130589523703328291984354510149090656580939795292952714542984535859933026597807280601795845094444618776414338453627922126861810008100630798135646860820046776884627493452469446247223492212616744409538833920174786123062058587890959453123422064282009855231684978798298936881605131096761541531612351586373149545853284203737644845257740764260576436182960037608875276186949096774369876206485805113098865008715700660495308337109968541432716629901608332179814423627806375905276639890276146095007150369243407425426011829141725858917254056298553908407934293295894680497227704656045201826464579468116320532693995740590098952820786482029211430674190069271252207134174869655516200683673810946917934765685372658465546344924461124540396452292312506854069783714715144116055517552379951681234408258646869317252485217709244733778287803032152585755509731890630709159974294236286822449828494391424618133910777220593818594457840521229437492642221123877690047726369084432244223996527337182904722672784611510075960751882274650378080977936452775027250688759033746929608412226741662888318179323106501087194236481867147737867789870482455473104901891799896921923041502890999153715754217852127562258462224495916812823279866202446692547177897149857254026165350094439682963238869741541926130619782568202257517797686396145824186120709494766145900274335950855433380695654359984793187176309815814815233829739842969399276193620111239620343494671511193013322662144206278860387891885575444613228017546683320805869687180530729652383491387977541692137067125928004542551467752612927078319512344660809116881427803409112777567111723867267335406323383019439547807177110714008860722879268721802026222866809707912477372448655011591489847815303497629627748633094777304182616402908621037592518090866422065303518214529683284170336083667600859970926989313232302801560690209925464966111847148459844769167803694815673417937886721495877429684117943677442951873848263599949548188437162291531468611520377837556508413395455736220678658280138283440303480325645965206022807893210619077457994686081176778336994472804972454790572280368522295394355071884736346516525876255521935182225951523363252698813368758417914948738628534329416287137069633410152482703417332264793641253628049378218602209684019516918526230226625228060514240998455424979520257506065950492794234239419534855415488707315729750451966904671490568621105305502027212122569302212598638496301324703832725841929049447172903006466762436605073879864212117708586313400104704969992606713445865189497730837787907427542679221010755399269832542602422148961214745002305629852359132925123075446282860963734103000592223577107310276314367789143218780738037121113870296278167386588633776024611354258818941586698605804841908580443367584677959131446939864799345381612631524903366979208023478141592992145010779852381945879390505580316649892834163257935908695395933817348264059566534088100357604629895556470128336507626484134144537899360110084686714660699734466115489533543924909249365867040509687593235103244272089248751264865041839471780155895219989492743687213997638115818132104655335739112959189363838969001203350644623016016912803200747165122209201310250820387114923310677306560885892691509430395754770892132631236814789019129125146034523673736008394221273902428374297118153264802178332630206381400082636230267099795576033710902156180435744953043248488996705467370261800931733898730240475045489947672757971888559171658625943059705310271538803565657183395452903119816416162956342945354566613377179143625614713730220637509537330279548957367511694290951833291937849410757760037580549278448495941300436587864028188998949348589602628370903354712433423203097753651963981124414052528040558078073406561153167626524183869433980231385585383556210881376867179582807383239294324741331046099043896100790818822144802479569134051733581789857747758429858427770542433745577131632180647234836573997360728573747316649576944383671288178492888728179231920124902227736356792898503399731439785433952906948828866264813577969339907531176660876404265575973743692515041210730851831547916626632066885009836044512463139997590987971400033544620757549139781023082819024480194999178903983056969359495350846937172846791963982327718791703298197245300575244855157342383928272080541322284942572218016306064516499855031602814894551754047158394389534932198866718491588981955208255313943042741408649137416856331687401816982179469323595134263310141653837134477652275927350889857035699400898817200353663747282422165963412392143073142402655654830369316423826988317587340118268545664400836138140119073169605302059811118397141827594999123851089295511292323881020719456407941547062140561221535908365538038290694444570353890373183997284864808192099879889327427450059941784138172104918364834935720373212389726655400387917555312768791354128530488597825567797922226922948552100652340904839883833971806250067222304163128998219869624080611688422221829952684880985702176924116798866219727039583754376380129296922785739142615286647821803165365595570453988281469700799211057076212429346036697315940473140309010431606896494106527426906447348314929295538987093784225091301132673088459118113162810657269475690169818039059800317039237070286556825025331920598340415305996792419712019941305443252054094957265952783246511215709668276183081428794263112824757151528035078877223084109120489908491658473366502635350133729350029432019377834868656426309093707459393545786354865337044980499838624013324943426538793660328005629089471913389354646894508508153033091321342952759478932464004655163606068340375619364496924084750914220754662147173459646282844068814895086717942248809607766957642267551861600418680258522565352893448575387381251622391858408525915489756938492067302205475126000494331140409484414792979124649466023491450057705097424793117002897004043904669931325988651206265123694799841662693347427166701188834866638315229034274174406376917568004826350595810525503412343756222051025560666579424039325101341647406436882886693235439869187355502577216693245187522449976477384731823260248864024134234524927228691694214698742651349513433382260970504292907852323609024492811722532405998430412101252564500287915327785702754322329159920519951681207537120462494368563676212658670621979189384658771771337517522390952169669469450741228644508827140594024096394725481346313629170916258826952239966585523039793688392337909814436335166410467661219835373937526220864039101492104700227898538506194304915826747431142769005556122226953753040749280060392746674476604208800786318308402620675617947515664081192256755098279110614898047851249921321413507964607852213433584743598649506005157175687142115792987725763881970205525334805402376586244561595598833017623128183578772571082469076274025029255214316110169980611596469859814294066279221524824151295531260560192605277399524243811093970442016180216320899439158504192460568194408496446517857700397142506393467490975325424971284808473214860378655225720283914944271026858780547360385247694583344266427779920611388162609788732172121460188281419292493892911534133093348980196304683514984214408512636076091870916128921713527008686244050572887753627481057464298544595386338244822875167722411944379059292126547301987672635753862364855435887822324219800299088891187371476720223771046629703853091859463130567456941534809021802833226177966626316536166706137550130994659153774597562247889854326374748771977654558042079057255894959516153949904375475983669959726604525081948704323060603904285898558948758670234779811393134828095427215356098894467171007776694955397658332751826281865657630949099477930574491872893621031264536986288403328355184705456853906759109949765595866065162513031802002940102959719230146773694939390890128228776043864947480919430538465198897940239848302869754816768674810269908400143486137536751897596799056866551662830670715439824955162362392664582059193177057728660757875957908935565253732345696172135996285416467999889877516173656869809842583042493195441232386944711962597926304203578658796801038755494406547471505533179325820570492269541631224337140334932895700353138827832869462033521866953776573734900937359697927714396654050266702842695614179783588546002356833321471632273391118187898270978916605765789153876686275813617260687388061017242987354981326503516532370285083523865963397719745081732112359184431525792792063777790154295394795637732504771963411050331854640637343172013952479460386165092205129702015492478756940066923616436986527120018536754006539610899440319631660577298178902878531682612702873511695369522499058235320767107003096294378606896850513332648299539336208014306501889111198955200979031034552910800443212564100082320399243827838461769244550375225962832311119620112672401064246067030662137637326907697691452033101643722988187903891787021970680032701579240592041913572370429849994747147217346154669285064909688345628303014667928716179481417416524095987069700879408331166942383871332973380415721730749818970634174737701968588099774308733531520702102224457008722790270051048481242610971563115595223206604014361849518222073393769314964435919375865582654207535016404493107000195648390128241954434859866351394168762060311823853634963190079926431489452956252158673674311879394492948027066014343244975075460387696133543641224085911316899132794525452962998652640448370419276531488127181412786894811641578703760854664755776574263405264201175559577900823204691460717707306232215859008207009513943910960720040162986852835668153811741553568416627913319388605268448616312943668135280914180223508454787752160998166365605821615426334131618854935948220429869082436272010761850762005441367281129537377207761400388745155767054885377623921541550360242305195604881653779164311116618181000355658388657402970481789801911125660451211871899510134437283682202782992900802974283948002073710187087459631977494492481378880894957718893135512709541926676679185376432741740130231758094196432438506795064019478762126021576077956049689981946519256202692597265636168524163717513553790498244437734691373115199532474223003558504913037374871889409789245716885713010670989724049448405156546811672674535988762097459883985005112695452384937632330727367342040061073388537527578715567048636211409579698168326047184749583720183075889804052685624440473839245682744076722399276959642411790215410678236939602076637005642867775857271299076575992223032371149529018491889139335089967354274940950265884594867427411297887002909568428874360481949029598890413105194475809899418107917908266410913980606929710296489531820559708293847614523146645118548422586032090504126985507721599638421396219143808920828190562641096798716415423742704758509977022104059959017401850570207900089760340533142705025673433955438335626307302656275672943287469300183106759581332700112450612019154422082501352524596552473704544172130674499581663921059233121030564337826910123456688561752010793597679298084433841603351406054815998748991815949490751666122104915454180219452664115023542822633399673629627853382288992064341256063856594767320818153397717093182974270096894545216919080551156341862711420692415085876416412228419247106941509447251246572320137993100654029766047749422766319086979454234309764090086732345793763228088230466951902039492947837675567741886199577366846582316839124319905918117016437926341242648067790259048240585552195525673636529588682861391542314329838866102137791016190128821443685245195158397481880200223724266143825903285436647826401291108151040754989582576335447902665870598818403402022052874426106526360109761103290393085531817501347278081169860552786758760819904997956099545326122625157697910405310859607600836048059242395234724119360623812492648501133804891822547420194853372588392784413651564172998077367454789313359784475344388145134136052815417357625991157093431997709142463767131688954873780471427312467476170958004946920759874307957926321197129586904476013023734512952467423164401993793164567469393175465704142556625632544991352497568884373459039853882683001568960129476137004885954947502253433325642485053948157118255699558218165144936487389165215257123039144653488426005934242969215822838456051703060908478795103914112135338942657432187732564975866976824047679846207161700792834497648031759635035751665082018937484787820318321145476634162917382836533007188368216815440464788456426470994340413839151469755545084113311943341440034640323172999021408349175065875158029222689569076154180562569538057735227164999942415686643431562499855952556704503617197076063948718485026094709798106630368625787649097554918619138367227205095325176381026141994301659634969196289358875347081304496382159712038664453132697862605834959270266248239933663032963743387442854953999616559732837602201930297709448081142541411395674251221768366106566171567321386140434407132336065786356964197809833895616423947355800645497362910246873114984125734792073722686276588300933720178507776537244387501341583747466875729531134904968481711404467360045970941855657521705230393644694625146589057361175606963227117588589924094845485570096639435796635035760971583500631922505223738793707234017360589262045645799046505764927536275503908005776035409580689757504975054258047186045135388512949589391998913661644227502778123523919264896137247237876848207248214624008361190417609657212569229090878831465926129359980401347967110904647046840260229439946585835798916672035285395615161220724121204603649251353488217169865271853131614625085744094869306667323598813320101720186466974809166773055911599682456290745814649170800654232514974413064631631390060200916432106364164329744396429286681045560188806180871532126954746877685829458173156796053448027343001197222608106611795980946736378169587795144255136852283630822084656841840641998052408604627577574391552489982636665662071006409787213049151773514762709566198290436096866635540683722689794023676925491523598156384537940395453917526212844302507750055222030871487019779204082551999571627169867415497466066426018407386854188100736988299436711497058358005781094512092383615259415055930235009710588061982871331600231230920101022586025950018384258379933769064563109612618376377275742297861065313698971611441584747170632037263414840037002187031490464892587372035157244173195584261319698063100114035430572491299192602194019947119427288596284226069138843280232552787173033508684704303004150392264560196150101332019981005697405785585975626019825402859868056274925102561236690117321720648697395270269565165129450096637999394256785239923445125584634265558526520341231229264228281815857868372710071902261792335020683721220282583000181130710956527520849366157620793891986347619644736319214935456141442283060592638122768489705463814256816397831176091819034176363251516698971677199103919387418830036614536099968910400120010562679179762479509768706517144827187741583448874039945690652131797855181472888922646907876932649261101652728540370198831211368659483624940990283250907652558299909245623172312160831019981698911736897285398041840527459689602431299712760621427867869534220552647476343629660724526271870594687325404123556306982724477796084732170209071906134750307368027504232660203086746961757836298290445662990647645252616849644121675208913852328856976776031322051749984172850351318984524718021009849032356363037172786854514864200403029527171242853708806088253360081545452123124770747213986157128100232011537291640485276524659655590968817119195216948489386799555833703329870560365165497099845417228084160785945686108404253347001765988442972235046918481265290200679318957479096053903895283826104769970224021784864363539886845728617004017511152397996512866749415970693019259683800153156399502217235413783578096896622587281830142119550206354996520627770490403884279951432011156443200225690867045014850861630872017272528739000810835073096384231942813827148081545618729038615993714449367955634374755909614460445273517860733353526353687543070750449018719841149287057379247355203893749759025495199539984002468630919131234727879571459065953113770183909335501086519625448926911788692581996040016078353044037116373700190047419559872064193792454204168923701137616510684621073790897964136307312638993055022996852401887754450456624322177723099339304373842442990366091282778440763056583224263356245889084069204775119085110909124768216077245858280411532215096084540103405608603715028222969757200540306186332345309009243587672954034567834027567478974096633129634554118128440119755842648958125016754962456005997980293878183275209106059653999509372948386838962206317934105967631214315100786747906643294781960856852369351907343370395146357297977585423771346913729612176974835022991471649754087715577685670020733563470305871780674073623570013147941672583539809868679132244755424193372586399198839217332551722155250419109067035482909952957694432164448526981916580540879777877085790324145010725888023079307233477598856611886959636950830314130123514146413110023440947151881313828665493541043521719398045443715217787329952319076059216022305217934331189447336728340511745565234345047979807189298023953645029430411804511986630575718674710463895891573517541226186838385730720962965495301221264885450979585118195941288969623321038525716177065453689944239502956390086260852507856492806660123952303059226289593154501202299146247279103531073666379030439315099035367783609588790152497645093046366260155126882682996018092843838554398432384669329129506256125258437786001249137258616941967201972482777804630547060084562301499994561138819317224865656518843288379847096028887630843172007397848027550269454519441326642582148286639715544589217716295306761743754658251770441169400642239659095564383046767213529211372566844349731751822547630249701427515516206752732578200785659227914065700113091777761385364931055399548849451217897542368555696501900638150041161643494766422895101654633747320764532706276511161223739372769639284772694133040740000098172165782104081691405438352590950733302689008776344763454133314304393615988293373086275755869084947995326425999573221095371794158759317896748464422900226108683137304019969026208133374052094515145199889801012167956242710442521457787521954963040453900938689008594273297206601237272852934427030214769988836806365866347120895313982587837291192327594912220787530706393221444838289123596181420756993988901381796393574211349719467514542262720731687919299145380329469235325404022257056598160966032855033597270130411763189093095107204053227276726039172504568402038234536381440533049509635521502554390693536524869643436509695466830921129966049900710194387603484506428195998754813036207390179392447814748279825954928539728424090037649192333865509742381122211044347139012982410532473058352824282190640252664648708268695579850587102006413110457138294496727182946425647174015041114931383123528534244489114745030859895475173630155929662725215932592580873375070496786498262148624735794859616174051913459157969133082869539853788112698480965636173596102807823970593768393964191333460663034834911508512180107803009246203012430492715324214118158225689827252662579818729866684112107577619797981961627494688296440552414096595632543088145669560043362362099469510930461042257066585276952865313595208259465202851424842385653929182671534338844777630302609896982558024957524155062229751369872500769047004107596294055294775597876292034221556412478978286795915868415653574703196465151134394484385660541227755859974058785935573248044030625741749920891281264967877001178449957533693509627321425491073532379336574084836798888677655607567475901484064097946480038879958491180210934851317792680467876722274676681122946376360097783243907338072279295281429238702122841804047383358703406572583025400173069420968320790555616659221215121879466538907853742760840539800927159292576161673207061839485204793995985228840295224932497798605559791280626055587308326109324541461868042132884692526332615373824823702274614671193433160793969210884317259184123021623876455299820168611379250232328862267335681576544520585693968706160960006675058161008879982152742259976794488205856178281584939357196469655742103037130554088183219530832018056887123652902085807175328499413660438287920735607286340362261273198009285062983020577784440102354283439191330632672064822240350755123370469121784174376881129645447706489037785557244370263399377200193861744022099433388066836230295447617707515239507566006038485223136602258980213682263955846219590085165306935900477450066966659926550562047999965741601317754940213449645422079469098452272931429220534997596545936952733827924118031349334898006620588778653437571150900012303372597737235472455603479202206871129563167634769130173091283110026704477181511275193271905438992111460544340769773662442230898846002105133251145545722983603582427174430636452852946944124654189086032688692949125987936365535436659113588787327021489320488778388221457263234931818572424276903737127818543349133513750429235456582136119035336794073876511044166094364478462913717476428776841433534022399924924352271379725106665315551043974716876754155432379404063652951449937048188062186059309847679399751650563827167597327742153772189963184057635672302631903327795887791807870085484082700477049090949249969373841922820518460436088786223741258272296075929835618694646938623515441898329533028107741041057062979755668388057455537318970690656394870829051914871352704057418063699115604097508075805395050608096820823953945594125271725791040605524492231697158189060431073589201775793991994082978612508753590522436242700681177591876406885711525496549098403549335986448256093725554874135626632713557774000063899677838279744179689449355168334620030520041351437666264199406103231617228851370906354209531059818201083992019289351050029454162182921269538827426207096672568292089481527761775244305610513001862910071334703561366936058225365871106317808952506027901818089385509974896858787303470271422780241667213294761148770619941421449851197688372863967368146939275102997794161940560119398745550707800726560466327518096817960650369270234775700002347909166289967392601230796482094535136381716008561076721665074713125944296756063430105011264951236723435039944515743170790257734794724894719812172365598447914203372529695834617474710274386275176155117948173670409620251585069070268387067026211767082895566351514112707759002891588328086043746029551693384934777431245057259020778841299819251473252696591579659340908868303730622749594033363527728136278592074467260955781484131230882588936143975111790888066189815845932856074665592147160957524937048155967602923360819347182283825770016501197508022636084903694535522074510065067702573511716158832748973770533030285469538590021369643597824358463990965643965315993285580324224079967199145151065333518831072766214141528167094360591783727422481437346950123893057341879926261364411203826827838173835263274534147492396571341520252808215657300763648756197086848674984133720433366149537770560354089395848348671499687251992303738299307891946661264937562192778112099127057748030624699382275259253691991320002759859351299075320831233969345585902788511761577058876778999472409264930846898104461022841315652194147492482528822493277707788341296720048002023525173766556100238348714736208542651436487713906957856181924076862257698225588480903037499788133200310347162473077245130328987797732205085067856726173905816104041450866994802946215807184604694277998648972522981182733229817853879045664218107404264690129499470643227608006985339897665963203850495633329303110647085110304019606377587916042731560607948577649771567424202798893225319885201445812345763128197145470714205887610472187719875746066871744086452865954510536844391174608836959780840826436950667156495437330020806927957485497134355822697530596242263528667373563401155548986923869919983501345758130056313576804696479020015308353419792114847387161007113259209794519187045443346292380065008100061893940688080461919033529772477638285308815526262738839089878791464132121479617543496589795182601439395304403281334308940457008372684750466228782256878780163291979827102791723704236906487002150806725076991135901639699371302565917449860207186588762144548308281904431669563522587607700748591684953787990687685522264134462972354749046526171043708750135913250847844519496148185704743304206222844093656353095164331712789772602581374093838029196235922046620258847062585370908982517592776642843111231452463631775847202055512315368418442160188481735224723207347078960791879131233697486496792436263968376119392536193197428652975247875442019334841235908115494886947435211777388826668911348949520890329491242652769583196931642894388393537299855735263890612647547762017847243211968186442868688793853710338345154916327654126975982057184418548640851673990869102497124131336202899058088176219370107431719672934105289907119980697579269125733591503601426678391751133649562809596398641445635345140856710677633166655600484944147757014980896069788203258506826524668649977125728643899417141383093559236453092375901236136615840142348853276209540082523358948744012160277297607138189808902752977369981445086028235480667343738385569299064257488814421360225057910537532659095538909199213069591206086408814872387584752664222691182160900935730463620846230172105388066104273854097911912589693581588307840110491196075021847825637876831421276541006020042717962452903711147331760016146042411783937695527358507422995778445455807164664073770581839971161975333205643702688045587660328097271459522785060459964294295947203503920925102240681524556428556323910256718782482944669803218238395933015236406449993581366046339938218244839922813583052743603964278000842726543440114119474698018014801907435969258287670127268241614661244630526327368015852499384240607840029059123793120271480749292893983302141335541961486350417750885294359444905844677827160669050053091229543355952934567709963143062269580315940308521190944036868626426162610538419867485859004298880257385875778958654414601930077325949726430368601889841295867255939305881579273610347267800544535520187836486662765188515113854580026232965322005664936264573096752356430126536857033959420224706093240448942817348866861747298744243013379039078789062698831089385497078695834579344087352506170217637301141158879760694603433634853553831219142438951538176341771388007186491107862976373053893359737502301797446028818855522382482487333002211002484636095243808558857603182443021422818369789894841631810284181960923045403477252523110269778100926941224409768869342302974249199780067698730300981223049821054279540253834762734905462871479297883785135312576943118344031497220004344318562059668890779746309579235662454494264221251092330329029345798839162434943651022890387976940285305201702863406567635649782162977371172347819079953748057923600753964304739024275510955515731330807759615644062112755889476156044167981790327634867100846419521140553801024687398151515752799358866412350121197289497986292540222090760579702346799490617937671434485053256414725529805928715997237721728963496676960579610535058381244442246467165443183822481328375493776572265111318073365479500384097253914595852179919110813010809751536517165382719122054071806598706228362161999362831458568310870982182992992356796530173578693060431525047907432589934817823189217130797605010986772184352797719026996318683823329699628414742372135166693155478575449754686042603489878665032565031031122393639303194208518204514159536373499854918992571957316083632241008243104413687596430131542395680295999479020080526381009283426834260043268381635132727336392344710785923521101426979434080991429894402628728221090764721912442007803064409864107408398559190670224513941980462637214505914024832035353148904687536236461411759158573019743336223972129859347664605817545920261184767715958202307203697699313174063373276511802906424451326365324512011656234416488877016082285594654752451029315931620351074680055466402788230655697312341108266475563599344657620440562118104070417654156241944780957190704009479672966523727452867382188398111715751834128856862562120194757578054694114867735257511940130676706520392309243716155820178649158235084721747774632605398400840940831038658768403554843940346807565902165610067848501712292858563282259623288679691749226905349473895540637182265720898492668158497323062256317592097369230659400684495075675573275042414913348355005203555916909926376505505007734633711000340953622827076985921015372596472416899399977235952977014612215445201927119773801010221623241744500256460448700203995304673233996458923771506415842507971383214212259218539736963197098292211081741905563173472700541625329369531247874775505699407667650584581195351958212724780587859663602953772916636224438660509106589907135738304269166507876221542806798107953656898745243674955676496687387044060561903038529730535639534610659061454311833776868531507444619160848807577755251406062560879365429848748799766291972371651667593489895486776724206375596869133286034008917171685398354422954392922077876804983176700526137785967564179448777412082103753156485413958954270208129892075641570915408101024909595963398265868127648892008903260775092629503117729269443060810851283212454998838398439453240228125929652260184140625793426421475760500765243553283265276552309032388622088589862389565832211156850710850320800936315119502211999848013731158203740101092605611518968942662384867139939125420774662188646293194713932998675581864394146655720153312824352733384936678896408061223341048548873672291619968574640867400931199739495252122475178382542361159785479071289016337881419519468164107854158986527280072708863576846496725752321496166329542220627715523956203309616946952515734042462915453269417603729245872862863859460256674351253982037300927323540128149103419523102624204688604303123991643107421645981242090344656793655268120439279836915271318945395727239065345310732032703385181313608895179716665838843168593056949026710549917096848240443670477515006475030358868771636320537608575172701203619458789151023779799731368066803690307423633053439624807693110717821460751405630448897622662364442599812996498674818002513555688011987949565179076612063427858724525750433252753294034182922023862465891321120319798121728997566097538251052962644995687902021544746973740633964362827953689768058975520858170303536727132476264870850279216330506561067455205874296780937815900599743436138700140413634213779200954811599186092063596001760474330682720256457991623235172630073577416960202444893736597410191711612364956324299152691973596641167510764706653328026336693711680439320331780886413148958921662799431699658529002077724012688106418634236475816834441101099760016458909499076207793702773171261843470135694284975000504827603796737052136671380180010815858278048133240242146122219552054485773408530732134573702304866916014851715936275292656823751769682490309276935157492092624037997938226627385693481676105926218946695439067629905019151263734094813920580475512830082402770832245224191337618137379215780980479235624155537371414952115330537101583642094955538695416213806441052028825154032337212084852499851170406952013302343727913388578236985838097288675887090093386434742013175434023341488435076515400284939785121319403598590540606129974061586235961972543540898833793669185866062968880891306180139582653595020564344504307169922975773972766729067089014620914279626473440175904544968480012466956050667995196368740330690973832701281980367691415149336585193568933295289885173145118643075024835309881231089766574715465324310495535955743266045589669253218612005494897837108023357519946794349030963229968787729455147800518889151357186079043925353425005003738217081523041738881914119325374447280238283173265187399392731299860153149356943618943160990642933046503408004651201940252669371496162101494232686928436982488525947549157027117497695379278936089090363485582835313052109258512039024897962970668235117094791176960306273906917927462152231833314023793081059616262703706269362956667673424348868500795204213788640856658403490874510381084618066747089144703237840267891596989725997293490984982944506001345957581733817928190251314978903877687248163573651927445767074820718982833195594120785673959237651087055279774900844740896618100168191804524282773500052580343090555917053928383138481255814162408891274385011967802471392221022593642557859075005951308940510951741352460610564129933438761714079703840028513722658305620585951525967651611815733422489896486494567065862503037915596744838700279300968035834172779777531597526090005285120560415619959798763656144315851582824943447230552029439912842678380016138888704348339439341964926811662596859787329526523962815735827895981939642414071494603788862918400934842697693925648754588724253401303453255959951504331465526212945660812346211821955294214030664969319082127397554903355007865199053604050655451197815574141321539048927741765728365391212562379697328269582547685811733751407898676586354434757248691493539662758833252087752358102327609850087577831638281870202538496459085076077216879426613882254199014803128409459348123825142216772390721971064432975703770245466746374505133345860905965816282957848158805713149898564672686035366839558250861668296793269870005626222287715390892362151336150606354887589348072505838647048242150831887920914471841377600231364483036170763335087024972418808407029380254592900278973716444696991161689838545211708120926606681245980953325934856320366531048927498016051939307017557317536757288551592272476560359799883294357064815403415837035060041466182073389292774085972547696477042285189604355105723450796445814681518538756880962100140442051028566926829477136156200812037871883593988478358792346499885014560764464551758980169347799299998518724561507104548314639335238430965570326584470470624150742768380591090989305027471314890575014150880666897920158098269047195228042825258202255560814429818014605096537061259836618106108305876157421333408714189859739324520866560065445008629790255435339895647810552649515755584150763257654598852635526696694364637894688009783119395783889771764792665389498057046247848738621093309070722135281610960722963392775472159335742653381905506566935372163401609419303262039085425604130062138696191536254950165577432856176879451401976605283055256167021601804388910288207261385848477116565545633686770990268655013101195438024187041106763281595744411817175462158163660245542834079246836808079836229018287230862491719615765477746140292494904265976387468095033170609868313873040582836894683858346786445891795532475562269082903794403539934317547020708555646024689893263085533834820674581106855163020825770164848284509051150537566383491455393631207182308070956833651538349035766649992344622985675832206448581005977280641692307273479148833486253317144663149920726085082710261615178450050647246136207440799243093022423560520116649902796112799639024201150652376961898234437005360869691995117626197097033250097763132881082141216389861937859980817996909460395609218321018796173823765147063851911199370558936365741334671040697996470353971953387158988361924318534765188526942394573591335631809388679545754510970225848304341009994860164643493160726747793541423320265799984139856860359594838535199331324627678714393665672878419992573246508722920326329823925193310804456332052893794654557675141853120396370295110151961017850447085370046285716597369562688790950330557848824170659133458010361789291607580442913854662496473315150018676457406832910478044477566063385120457861507293584675994090623567907095994245107738540064897101680896221560067606079299651197643378840378742911658836731833293150869782833530057457186031088393395535543958420770736257029404946717369122312941544735674385319143811560346068277324390890375913760742464759069900688109846547050380920507465945716718422116315197776348633228283179409685986329752343192822105836096633871694106421879009208477793842233933050873313954876158205358672429804377803905339508649823579919576612776095889470398543142431502135742910320581892381973265329541658727166404184976295016526369816112419975136264832989192361283614523777062763770116451249038107845475850256274134357819867555164598030315548863003866222173251005599699297669151767773553914452941097482109028176932647484919237844264540368093940849893223987257087899865942101446173738448533954420118531128062674614380570894449091989078059169616833412104309270368392030376611587364687255930120945432372159908748979558840789819228946912271190678158482797964810077255015888122299650167073545244503694188460635621422227006066381243207323290935260203860232342511723260122413764864029329884674258186399435066181405291165244679349901486339304748759092970365687523438136754398120509188577550174240212143473702155136023995552079813023012086901149191180506022329608304630330280710909270952795859716322985958894186382555555893291074269330806717583717103081786074364264167447485605448049366919756671080440117519277516205558040276481532615261493586793699726021181419283031385284107532494944434140213152803712926586845862280603649837969319947733424263135359102832560693451308872279827918074719888133119828824356907373091328594016206674359355885667977676150236445061449873962113005440430898716348454880598306984258035391722407940894038197649347501786489985644669767911101875616344619396962988058971458824704180959105535679290167886249245329204656145159364856369281334190600264134602164257158458407253635315115498948010204539288382991535799275087191538275046471017934231004660401414409910761172799633148878322562502679870136700542922517865461754451571299726813775704142505747266950561346856438110525246263090596267673324211220247205034093917902415787478061962313486501640398566423865357962269279714008523605465534706402602759423613200507494350915959973415452832264747706562056551909950954198598549659178109787777923342507947733977921290831874527684441967548338260569939402072525165178736696970351243791138945132235977498573317897381000667578635291897847294834014871563869611651564937118329822953106137239912266580992607367088974354668685565015757611648920069519970675531719208959356766579187417132835124495831563422870328798042466436147816026551118618394659621151208201163252056899656675423307495514448700675765682893592254677593470797424087763588078309095599693463504807043786855044520143048368806266032317317283075871830956302852267639867188331413105562752098193391055153354665350265024267119614110734081304429721016986008477980112072866527759244180300852402193551139503712898524463529119590726545955063811376210953523297287295139088549412585825060960966956323585797062489830950699255169754733952504362066934732721051536968554476258312804717120630478814066062517386506801789400979645803978420138904859407295053139430988534164261821400495677177688682820896618644716016480725902304281421470840958062421159954934842281928025921670926064598848779845602667987841806602535448636820904185637136227949938434485037982107617509808002824991893653261849042062157131142586713759984944444193476415111981042330644155157877675952059154069349786910303114978330532194454751529803720287289616376141570893880789020622046705137023816580220176871675617749304783352605423977630066355762832617392787620203174151304283686473065715663940589914999185730209298496868787576032225991368460376914947545866198056792474891042766322350352449876149712008440137156477452506441035631146459255476368983075552606249872273122229691548863593367776156525384746532559994760298534663003867373451885331900544781821832677211484219305630045359456433976719646161845160229060718721548530803095136368168929131670314444453378733033863772796790119434501212584455546706556604200753580087927686593874162047165604562508716462940358598498914668692557307817872536995154660696411930076655217822880012691864773138583401751390872282691992521858448272392225306654465295818966389241045629493139664008153324175449488546258755264291993441135830127237397724634397641392953964952072665814125333136263164011137153181175173956699589685064007297297833836722676050202289935192097511485625206538546886372351689224909754507418954563864085996914702756123469486350593252160995572172556881103186958508010997008405085373155821808546421763285028222019537290599740250097253420548612945175020120598482934890139716734251439033007777155704861753739769026138699242834819153130758900197869113526896672781283096389946454378427923193176356099220937329861063520369046697499087694917490541556796500683622545656010143304156081990744317310225549759284644899755017974197582406042363010498600922891124718843653666509245717665731452607441146311348029319504099714034503433627856546709908922183089489226110644455993315946352955656714067677760282983433427699908602141277399782239484399900387572375399949711370872859482176783966930255220466921473666201745834001198157575533709263074780835223404151299155200278073730713957539984914756388099758905431665790003450698364234064063879983892794094145280941708527686527995082708768059703882118253174598813186916107035785569717380334397423282719629237957514848927888690720703190089441577030013291348848885248551299158544651370621679528765606855414664817971893793196714737389262311923001195871206042639979818878316436875053824687236034863060696959736495745823503084483929624002030868540098051926932102265137909924309643973404226579452686377552141960738786384951732212759317149222582411293321183905014310719627258441542145512864106285160675924209714183393215772558764773124464897524124667372187545334912120625834055642670832104948021794786624423127177741545076095230252331716814461946814399973940325874076121077142927295712900525109142637494241758590272255095648169072376883834787106200261380875241829903803663071310181140659388568903569762453009282873749544150906229533533268049292732856043622358551230878596013815718721713461655117512293214610353802868877111543765377169823012692778148717776970516361385947275304062457166259490964670825628080568288258637940053892805178279398439252090438011848501159199473751872249405527472226795259837235286547463643438997317153037661871054581457890245778739745240164869234321255158036745408686450495742067703494650230272967932144631300171991043239075847037532231451112134857127842215924046383835117344723664631097633425405228865261235619937248000807434220635992872276203478294249353624864770949076263375855095269695394329874425426575730051955527806489344392257453606850257772214278004216505094945103607694518909652545901079623141624566239955815994585772895476569146842168031823964643947098630099396106737834647090494171199434433020735804053982434952375990908741264051916732555038240748767597037534881991685472038351584582097614502699409789862713325931154551278284058644332858446700675644284541217750706828222829636400864692422440689566054544162978436060261083105484310480424966303754663926038870682855402950534137514653169105767041522139673076665134910005101537913290016864643861343720820560477604048155938948272555704516705656521489486729262270216617953203848897130503994288475378193910436582123814567654403473280753941617770992764138541397843903833391823047980330691172562808920127805026724195273170371621597550105020326555374126791246030626521773241697431974671706007022975926751045159073750142968996274498310057707715252569212172839366145662531760165178340812384409619509078650130054994505747967376401985521208165668455516398122649978836382416518039051553213263206772457473902931843686504153601248539103235601984526539401650319940628526385217167853961904573439959656999389260138526576645242516261073909938098734141597318795485784269841953734818921238051493826346445874453772184784391483493981781129077332929897479877016877282575170393915778689011967007327207511353194264360821214871890469574110461401335471122949944455464737282146428343755569499403612531121609432127911444685145278493431451568717283606962043513070135116831936027288193529459986383134550543797915011577731213236979267647778941605742712577634110876649347544845898935867813000646579032703635342971942997282641158387004310349252440027790734508663362978729275243879475856045016107635225633258348620490912903908410152229696840162006492281190544713391872836911234648616107639002954955470569313962797262999992393859251370419772445318471575250689756985586757621573649784252963455977618290014282200229145370793095374780061277519404790715180618165752028862720607361577816598784764588482245188464379013750323461994257501457651095123642963243930513231034275565394169374143526554925964641860850078322828366254552310191613762016943559374735431488414817464139992736731132630540043559558575992323826490656140994668307602524914813037500726655892891778888142828928137859197978991724784837091158800360721346366321601050480817364014098726623031792727231763107636288697059489255504421406954647912736943560919568307216927983733045031848163610506765094983593905565238050996388604368733079427761376316084463977359184974438422421685272316250645593836797690847896028975073944306340629389643538667099415628063781060601207837091929735986144084445348236543083993480410574012429798350262706914190982868903300811271815525116701377976593697242364357342454479407064817541641307511786079643258574785481958575881074132643666955366976723248282245361937537811483686301096448715632243347205633273946624520195159431129876628148142596787814548509782966335051558838924824058542956211211431266148650741911296164614204409324550660919518514754538282429513955930568704085778482070355722504000250145426953329464949591470699025474415246337764832894070873198879006505860290149239411968380565111868477711836920624487325093924238143039602828371973210093333250339421831366531049264178886508220741681834470598907445419170020614492893666733958395236683435765400964017441061318131940563716851298732259776759039150471831947645048141225424659097887136481342216622708735994580693606378835456871612252193478994083053523167912921073492461750260004318090367804017222468833461389731802110126851776198794394480466171876059362580700702912894500784493593274327832544420673598682247195994919227190107263295143674022585626599982484633554858733013066748507601373344650130717606176245056306238949304562904872923700339449207225750016084530592655472460383591453718679608422531916716574200556909353466444118483942718193925130161701235777884762239842891235626245769682991959404897471753480050107099825213681269239154624139621447240986613974397719020140365412805449822430631120402149660065276084892091641560239743144204451915595768186260373474352428781374158347204016639963199098429993851241191762380632697571344670537712216858538285019254934929749823606286777186210289554760923775634119281394555507331348951407600860015352232269047208817984346651297105458334064544113931448126641721739907160580385427071776564206023446870068770045512922555542946630528376870318041487374796033069406015560621845617424637451770904274429699606075126613741792504824603408155510661101616205852880767829655835650825437244542291187012992520979283486511231287886546623933077505087830060296855845100584482603940585899942205371469954035431349285757061415245947312011280108319311120991767594646368140530180093041775979591267588625291431646408571368477151289624557862644271696659596937218478781257628248341615436565045599607372507387164329036990455017944927891986638616729393951091821499493819719431811149744077627932758187103837749761943634264598952961099089620417355001061234892553569590530030253411356868383666297724620602963398076685622141821087398401057411958386938019779672580698702752197601309972827027549785334354076096945935752081934557802851393414594353216315256338791137920489521177266991583170119228291788910725151099097018131252490378470143410982860609324042356251015114123493648998899673403512300065390376789351019632760331001778455617856281923552699513709436155138360382930155175231077719417396343908923161594489869984434410551628027086159189342415210449284481521381601214595161390306902034342428103700360943492540821312141188632586085950016981201755671586515560237616414554651728040038827474829166615417002109850385946312815268546096917973035507578095462880261168961371608539113542129316451661712403958879981531633715185576795995269145956469382070482365748356711426474686369728137043948379742438928066522292316342972892585461572409338522911628200361155346612370228348741938160672393699846092287634511997569289525524392476138447014353702662733796219533864986407315817494516360728825209757816776305813530265011976328341371914840934804634121576735643741350017619083916502023806863844965472624888977635187917979671610074517007236151818728139124871102818737150651300111726234393228824753404818400406235482838294583230081134364733014019163747853937650925517632544100658416589484944648469294175446325026504326367617000643708337948102331029043419511117021584772963404713504923324763333756364332576660977171334431880127838204720049360224701912182790417861650859570656653111615862031108830492558594240304332518758430622230349845767591048636354488221072836690886144418838652675767405778857572322452568304774763886752116194853275776562439897803949743836905413071804498458468998826824618356696543995667611040190788777675640208509674360075647298900829672749185360288409636929851529186240101351210172616657706140433677755703294986031874832244824626194916594514745521300927454866434582519288365109477130394615813593059952349454718371837424705642596153013909312173400092773833866610216122053270226925383336407804115962297368872930261015539875604342912638635468523517523920850198437076465918254037148028173189524985228604822145222907952321849829628646228051571034659196625625445686156091497512159237974019965031513790087500052436554716971335275872334050709135175015433207512807422308019645434396998500615130170762499165977354264721010006251436292788000326335437227783447126072237426678238344322275911552628643259161297835132006117089569204428714844797565193551202944756693037362970886174525210490932334118759902690932740723083989073061341238787775746411477831601980295263596619588611915111138119010169273636700986141568483212802201539417884495525815635411765699153456505802701567306489699856446036086354553493144814267033431040381073978382547281775093189565073077332874482651145591563929880409625652750415206264511331094758956590311983135503291885063828844025529701117455260960934387201075599264491357371198842875685642707876813761453679381132084490850489465479770446130366643415095618558880891660690526840869350955456223190880615986950225280856416652569153651061945166115316969293390653884887677239561877384356922911125943127506860084781759442512575075145831274693886104418464920166835102227705533605643649857920710012465852080160702383540263049769294704059979182148252912295626754854458257989539893146212632405363087999346167988940417004244415759306183186544845383923773364122131325836034397127758963504271012456655098818932220702335423702066000300618648438297701189405745811675454741920156129966804701160451368006718835327781608547404792402750938889547574139262899298843869820327359950487484462455323854266043537891773292183111012830390612113088885945816628970305696971551774055786576414730065343876620303303886042369958876319373479900886431415768677585061610096694806098612501174458009522249450908424174645165806136022138036475432459115406385052579727773383491513831270131141079907898177474478275036754028279079046792393143763156955381378590860704128156604612499429893994042399878869091494245655258958794746798534098032009601472721415595146435521610144348938697772465528205685858088535850122935631379687454751238669841053332343770813706378545689970780075621811335161253666984904525087587467172911198784858858652776174211068615553789740191430013975746375431418414072964607835420617419775180398753538837053276730249399104756370034909371285357486801150272522058879512436854835221969002844450111309912879282919487412995851141974995417669132548133559688531698692951213388233267107243197292628424243923171103544870708044220720777476729885090541601062707676597005490581290431688686093758228220828261284695144809436318481180415844495424525793196009472676345622367935372366266380832256235292880312801537979352769792007509260006700332139104875610547445395112476799972351991957398664958924605241842102060660133583381078880043867465568841788333253226416301554611456613873785420375616394807624238617599779277581489350752426189179833100681173613651339112701387674288399459936950331036182976700813362393454234499242905159007197191550318067949638123308871858159121846839149110677820877725043673160028712699538197375581780405606852786605366854764215132431666204493731535121807511778840990652324728007722262362870860171209219058645791883285604995736225348734017527925219730865325518956970300409660154669304347048774143284635760019648859918830825929473421005693232924347476835542403348171890156367601340786530555803222761436455724003403997946523862283048448248378897394436161786415206201556026365539550218031181533699998118562688919892224364676079092683543933745480258409923088444435468770199009962009314396671978255040744020624303389449365181589278582597758060000940784835464307871467335042386683492212760409811668587448753425762277134420546157540496040856676496551376937294854438616794227210699921572192839860451893294657435057528397383885688443771939407696394046902713111205111076565778327022424220984390443273107007508870331656013642336593641180306030004680543411380209858659013369648836526527751040171676565212728630922660547805416902301142103649634390522541345085981363838996168776954178115067175528773963754473246933566068059630728941691115253593315794435652075594427020130992311244747080566800733182942652503491970205179397609403592833789042699979235281561669795059809226550887192599594608514683836295002724217855726391513857401026455804805483149733078349375636345311785815688018146783773671039550706179789736426492302015149984809425952197041805069501793327044754757696277128826453071769560476797713503188860685332926163472038956382555812473392411633603833696303642034697177561449261629532593756740250447623847736887195895031860439047789421341442018850461992129539983740980567713086499570702014711674065450358574841431041601750487928260564754909442540022694422954928852405242289965131352664782327960016234993438529982151220398977113549565590662578313220548943827958265271117631256595047629715267488145615422098108477584808185323310702443361330337989908944028562884869951061707686237373975117897335514484841497441977782306087322363305891211594443931193596635152861413714396313084353156911167773386112940653346586550886166675796590685719876436090557141391549136580532554116564425911857170194627580859820944291301599861628062691403387599951502600896039766083208850213312491970675239927226919309656139350731490255976569370221278506730751592429756798707768929772371403010754166746131866519701988241160937753219325199227589369509442760245415615852660504905554938401619804339420014080871203833570954279038835402442504484385607937021717757721083955157119065733736897777099968770849467750121520856373808843569635506409711765054780608039506661475676166553523003146540138514659981744449453334025149899825505226755945829460909276929576622639509325563207755024426961839228326743138994519509476996383084855662012438038576179672475251928125257583046012793378837301039376996389156931207767224291033674168618812608547358773313045524578504126518899353500633622047718427099205146100084908992864969581561627099620548217098640232261005255073469400322389513090992682535807760098702845138320284670492189173905883916180020236538292414692037336494592048253821345195258957172062183053483862029024389329245203851542997427650533205219670314708541768583649746861275328932235708067421030642844184264763581180501564211005601643480030684699315908777131952326789308564622322746153128449602984164009096556441361286579211843894400708812900911165713791030365004214333770963484779283917899264116777048351411498096821558897181766113240113104571365413615093222564692889773113972601038639601301385202235028336034149356620231288432772863925901667745651867853662351508713296327313306556128462863816479019323781453656365873988142596576830714178546504064683644742122234785134484755947702748718333800849097998164286031291229556247070737688282175611621891965034302838468348338743550194028862571494911287497206090822582964765731400048017123878371853233768714449686417219486438852515391236484322130561678677693738573291828455677241557780994511477659325313335420550918505349463823808961935750950438383389179129457813588401768266520162009220726024086403902718752279597814844385927287087809335579275291719042919043281750145828043467431968031174230179372191212506672926937268439632820723534188472549713032965309642086415999976430241561159149074743037440495136285003689133133502915630431243734220117335891306507823009132037519763725268410188753462522090014490811008952719895625348408547576991949161487541602902676519318916532488579639350399653964913844614854902388918841730860490353534959629441768820389810117598575570503759556999559466423989195966839918239505394747834834472111613577641177626217382526484168023602001535293690123891472773213106438871984819910341172019677805896056688200446894847245659664813171636990581964553837004842807071124496278622705830708675481162639601698132862177600218056390365821704174266448184025069617668715613019369826379425094066173841753251664560405968455410548454988790696339649944103006166675983558125510270464587013732742146603426303048471783485069577156783358715163242564680707839435418806813833605090083576326125872746174383892397782964516907934164006550877795128049856743656465590140931792838593755837590754606259995327008585129114678010817404704815598411226966391559522388825477759184645390900936198399419508322593140790952834602767402167769281980166509979004725907567129140877873404788707625878272204520535795084705523184080277610240509302150013643914620679116324260784867706849589140747323391985936060376851883632917638300533910537893820383983063101072242360758973351837762994390451189338201407306222294038253534304027886670518327726091731687711206123402678940009444687727244886758607521946469828781664004373317068502489323553999064514025426856128179707713411128968624573242870905008878796303125822203189527300408355136644526307543213284379041954906550157679556871334910811076750833670906182116295527881363486824499556498110953592784044203701598605384136242096956254602413231786794427934473451913936664283931123751164824480856927620026878094874048903999981061466230250007244884077865007411722752616193643709449674251678396625183723388800790707439046855381220302769793977149673550113850753298382074631100129492623323728578462277388917920805839109612335750113858697373167965546764189841437680618145849914450084154847842906553713486897328479837720198718756131158709198099418849839499985597460192196701952055241844122100478795365756667734803082238621619589151290804742622178285024351072972412132051654357135953317431382672454779720602669654945137845910195576601499429012909899423704869299542452301208813706900360518891949156268541561569337408476374105662055884531612751467125643506935111288103513991722095240727464032512700786827820956412223659111940629584945380170377757319871919314325423237670435148868424842622314461658838868328732662606076098604404735717593283174374656462929467979525354838474360265062544135937919381444057993680109469954893650315745357139442739341108824746177652183748326395842512855435601704973754131697032324971468763852693679647215403704142107740612251407931353866514820510594475689765946385466042457801733609835968048674112218935752073157329197518241632969457075418934334551082842524602052755608749263570008629599262958309631478155969415566257207817077754527673683269860228866199572094096819816367933432003815133307701142366762558923800745911001633972802524199922521592411829561084121319409554959341345729185419494397563976694622361669798925273921518122318140539418355795351383575480602173012330669386201827889471265952914023454560458813637844678837731849232828218117056894045996916454321432225800285466776017164779321798255198010912285562977353421510107579872283671252728477762380299228020979567270406330654256624243034288158132688722553934415950328656111046771165598790853081392305238009977444793425034781920409691339918177650343262236420228219212356953092576941557744809938609436050368654779391954001693255765204728587682062217773584615680106438361608012207984054331246548999795783654690120746229190112399305777163424938824585483341357167238122571995053932250873829134443076098638390044609069558230764071979007031743207755526578263440460836131318118561448200561647338770678231710660978453768093770171866536262633138752312186785765160773254654778653193323210552401591983678523153566978234129591973485468189095437919942613456598781513204876520438125925467243193005272623122432379499560102816033940655283419390052566481207652636974941815087751642154639489292910215251646361781665075838482051997646189681457609987309458496780836973946755541529998892899199186761888651451772612996663415702741116625356195125303417109259422431691560704412427570162648068198387333845789933860785288776751023076107552958497957638607805976059234048894872487417654035234948835440825819885299913832776793688875191451476139457416985156651079721104440976031984686219425455306646035145113704623687030389841239363754755593586839046277266060706941287579568998862444940818786542554647145516924349409226910421261061352593189857813050197220204285410322621369743862466736516581561273489269349643375790963982673710911347826114777020128429237788361672654159027947897703796455072963027880741437693831060584264962278782903669799839138078949854104235076381382152259871962150031653484329154022926671349714378280730971423004976313950294072147907325690305915654286803966976827410492373650024962288126714441599186552022019307564754308997427560767058821459721897088158451782865853596947428223384220863015169264399082459182860839339804318516439999474985403789501947270562346187355284746927743275631731205347748084133310155201669339362656504031645529024451044993396794014588404670907858198696464319032072801422091447715837635222903244379148950192526441107813922553879834312129563189345683778484291571768816573998692157826481582975484948987635323346936037480168372025673342089589503113569591376190207982159288664003743372926820038846144522698548226403344883458174783460658551703385902876999664355316899170872778495337405448277010647978077085860840526611776196073379559373015967810041697433262954039312977180062255389930443981406911190832461307979729701643922199959012647164490360751668792764980527967987481409427453238904066224424992201390482010651379702135583735315060139609882987396311412055413097415076402590827553333351819669773046002443239907766693555962213441666375282882047300442340632751137980042608349661822474218579395434589215351813962039970544372362698225854162544743575718571040188318347751029289797090983517536759119407712280749221278157217734777236609798987637512021608277146649341656934208515310377394279687629038319415935245950719448493890898591953044506958951070336644116448066947134191947508077353789649682713377549337384241876485462418462638289040819934786190126129848998390301734866337546200937669163657071827552571795665421424717448684225212631101645135346572994609838270729262416319260399688715561998195305317336669518309391774884928342916269464256130334627226042725742727148422394533964808887890639570848632083983503094107429056419286295281368176103978919304900465356611759133367561194133286289251460042575057937189997268194788493771858256663611762756139166034714563322505800045495990014312301442273336767506824489762319314551812071520839809328424181195922083296883813125501642943755637719159812052566387681359666287379374646814525473841170610952079474401871629405512894948054849016094968243240409383884400549799378463691758806461246860636756206038852167294679625448725991669791401773474247273462814186991272478031490469512073398404287946425750293182057658738954609398025429978668546469958394377445531301821971853083414880045081144362878442438235831654122837771221977149367532429825966167448047777314569543204271328510499359740741114248479353667092180194353698839273031640666228876931470632476894828396717627969276817714650744612977825770044586001713237902226962241888436722206711382956066598094614071234403739450523884206545404305487499076002208845740012191980582646945228464619409955704542102189465887526072459116831869518278342389002273872752713819535147840917354230508217091848093320753780093693642942724753542883570921220371461854409867013886372349353984942542458086712370078456208350721173889989334860598826210927452528346429081865530179997460029264131548582096520835575932435567962576566554167198347918620421918041499560952840377286557216163668233075234907192378239684034466997335430996170656438260747337722679013410122402567711114139834529504560262983444127339811465072310810497877514964892667226391537606116841072556182708474773299949379040916270136490730614342902464634882110467139284942375274366406183503053871599232514707661062578315144135145226078677369035640284242712040278085132557992201690380649227097828621856079792471339413510659420130075544553397274080204714964497427147646893951498486115776348808302094340040975864269451801650577393320003949462065748760518843132896111779589366445631847544830323365023934509443347198767859537209779538420141911640461969385965653041581883696255887357931670953210515868968503904137999949382029257113765876852990706991314739930130904443207654887795083657751889778342065266738935539418760500873027411376733258114973037765856490308476582873547442148923077292770832393375674259607069867328791316602703981556690693533930632270111202617017766660846704001576082120715265040640750847471421004584570728901764277952887505678043436554515249582167707584954760339220851929729315908552177100800562890990315839326145880799583229021622148018990778592532020944862508904998715341875216614602243074076819639821627448793462374013922762122969775523834619036042614728176475010312287522879341717577960153193226711618896744100530002011431445992598212516408736313040863475949909668731113863673439949014978694523785847359619000843184213626499436242702015611988645419704116944548011249010499682948726564206274881336869667678799274152739971201481963087476361799199257437989987274618346719215482653682359995672592020994601223988043988853482437115047927905858716095009748906539308245536855587182607065941942861846617245409193673458879805668221964105612715023032816505587286065113850985813367116360617798218938752567452821118622278614923576815894210381458088677761948716787581768676621334014324072381215148683409910299613278969848131345307756020267389246256396996715861498206999535106927872049809215093439669947260668895762283979504541587113247741198191872815603088274871413050631947305740947982010637185234751787631489960145563832292965891775855026699680016262720988563006189616716420695063791911557920888806622103304550780999505339184866583959752003739788752543675945720095523313287245409799030446363037151933697475342690538156018301426224930479161005785855498938650738680767278191830712397887367917908517701642284166265844355078459482444768903127819831986909850181339993705367843614341536181793294239062789355915184517385178947726000149430453105124090930174876302403743832080346375543814242920198924651136000243040176303327718695662376393441320727800942403496191983933247699577913834861688280590975257991911303892282752218894324053261562329404191200342297942202693456980619567944249423210498801601710676707389549116183988345789631975923261067108907264231545732266393588603457835670889669539650417269740823548661789948188090678632538878024207010098136936576770905489125616895081920827466308399860123078494015617510333069957527111631250870676607248578332723921064094625172393769817121577612772782048466265887986601599159294452238673027296562766730623092551214046798202630331671540640937142588535093409386951378672282115148528209608032601122876288170851734973636188353312347765322984229135989206681632042861583506466483922985815781640630757786480420865582063826521615461629671241617361085459936638553402106637827334809024264234062204900048029606497449860053632392061086590721902341862294140772223766407938934551036220646361946891498324866832734409953354613390491973869154379732396116441337729235338012165387443078258015741047991836761799818718865735480527754931431222176348324794910049225072808085111686888702038750921743903562753615593931972912587550620578480310206703592936010305928528943082756653299698726111905121894688942011750187754432899253382512736631761748947990208982422874308931771288741239766768474408430976843479201966352793032792741012622401204254935810224489268030909737733758233260360525747689372529046568716895054398221264760371898077522120547489858445128044111318219416785536841735746751997784272864511275599185599886569056044345836865390896364729185378757668612877347219106668368741455765234501503050056867910154570377890469360409658965119911805592170659267766441017093047523901965301689919940087656454145180701943500659579836674902123431876601981010361342589455338484095355327447730069487147303201017455418538137611139392265680456219197796917883627672089280623644889791135925737245948973984751787424810816236151130363484906801534007298084946672220038198568334059745567722928232341522724325205656303095849813283395383263832450324538816522899035220337052483464336348985287857755212839845434336513073302899382398889702237439670164082536251288072257672399523537988078555326424376120274619342023921465601725621798666216273839438855677209680919816615221034450740382751282993367219716940980688372968985116499677233674692671342008185390879169717447834598735090751437175181930931307880750500928983110616479487851426453320894532750165118753839525157217425261890349579365219169138278976225514163063014916819582530188398193570382622312340273522344878796153484067469817442183954556806077432790184094512040562026036068548139595750266792057167128956297109897399601537087338448991644874047102733286238879928664104915838103003038989142105129903740217503084251374595297320770926106097515469026349382355931877222644127200600653607979392311312033733924508386886499274361073161198175825919242255347088612161518696171926859125995719483078975605620830580403115104357080727859471532566218102703404317228383905223446853514260485991593678534309400028090066823224174211156777583207938219916648406017266851426983644210583145019008535663986799204314201843260124621935168880593261685614206437547932914149785611379622846990832237051230003928417965178175590876866561668056224391612719725037866754590193186778406019523810121850687918958765760761344275657618838854393920520629412844918025095461401657183324302106686634980789810684551503060932575129083683915939113461502074368803359579172166377605746956559814918133482337604353187954559355746641173024061493134206862163942710935239575405591342477175538336856820144021083058839189918424645732593741135336428028469114893300085289693189577206273735381917478715462932176871127406924020717511924568809326675142577401877256546743151487090257003674732154510215916856286257923468826360931775568622681623200013206586679007933494750219373803852139603333174181173587289735535513994563137730254456962662707927754552196625734484982157135878112148262153564485406244896928013677970631377823184885904910411451869837160010803483709251367242061629123490243275187233450152677121464625086873252950266612658734930962333833415901246127843324223198859285587140195709243637338901421385628627262452136241926548596031189676665627765623951486519540209450335741969234994130697303065401078745310440120884573741635213918858671001564039318894673079141853399602266596861546662787200119844012743405351838228835359531097806938724806323179778955493145914576416575043652823795968494558495647583042439151048270659700537718222648442815974277656805225810167145653982815930129955288330418834569710279006568943965626153388776458646117963729179995651268800347640506382222148040124057844151158453000059597565893186143131780630958178580455754544432946627256134856553072687850977556525827455736406023784615718909748205094804935158511685701392687622202109824122627600502912446715106301868240676834405758791577266376482042396282807983058472304709055208135242718382246558621458370465627294882475603144156261006348865285935275468436800114469339304123958472732671375099521974428643773296768486459526439376621956466906536971428511251974129039206768979984687597561915843552632159901732521953854540191285526210792687738578048894916074553827669569687568437339972771016231029551377454872859870505853986694485362982181667928201656920077789014294473387457998308279158696959658308422969093394661732390532857704009938615233795417781487464210962655028542883298459263965152731713940388826603715610640388810918236230151872928294408435344459273984373174903830931157377650765073201857796680264848741891969286862191730211083437188774824104204455003306131921361876711547008143681611490299786161318270708215802992324781044789260394207572768003798852019521210092501300280055910627573624331920540279009181500845807704768769716865384218202882740907974056369230918151367873916461200426267839950273508227082441217520940745966567071821376032585775556469351766252139355455560386463639639852147100790752744803805464430741746754242902759398587335157404826319396198671207232473717601661047863893919081377038646249441459031760345519429157511513013063931936321843949631047619489605899467401276984799500248561040910655240646998178988975903452358297455351624603622550258154072984607904042172737187228132218186729129271630127611091199643041602684797033193022965147189816972264233652629869743773273235359188613566502162363007729916248188704273222699633731490541802378532094338182737509864660949380450284823040668864316135650095886071869905226826675282942850910712248386636573965403326999755807322762192708404995585457479418478706954861968521657757515454120279248151391937626797523495162276646470666419034113642684363147197875502629336335268268251661531012256508670679732257141285478725785901215482673574595573232541551499943621532051154958567866824447577647293721009242914484599458284988879749248970866740746040044148033539758846857849782988135284508305626647366109003353778645043128443464640978563673280199143769459278963912354070348073807592888325569526528661967665448535689421806575628691660804758640233557957561074161481648103485383706642018923106563452253242324537102063363195735399827570526137803468162576810803264898022765687143503613380923170591123907905022991458225518895958456320991512508098905614625517757095147568192422029565333127479713355647950466438714334174141531294833749866809031539440574324780875399031985481810686928132542872946501908413100143617845310439919592767515148322776306154621577817513079141388184765944805717530041292752712632944625624139297189623102587630317844934874825494888396640031864382086635608499702835854823920540115933006715090013994166216312703029251034948089733091852017602416952489964844005490879048157355915774993880090159752127555961661443660184758422327674984791957435906873834764407990002249887584207822890064425686801446422413836878563058154050701473297410575477388665586729649811471917568042205164322280208630768059254307911958688147311754228758744980722534547712300613021509554488576032520750063380309792528126493498855551332065254704548139709751618928722803343952080609715841348621765837679742373933935325758973388806897447597052328555308546579993470128134899002836049577971047633227088390255773134548143744305300869045668075040990028210757471756696564167195646931614253462140205962004033322944660185917601485256146633688914405670432872035656161173906489451916876406716666361027538000906240711535391410901481215342503343559599541134050530143341720685978107806834184291540197192239078302475591621866109433000533181223144032205255334356101150242323469472376401940975694208763570360537164667585362389641949328113432458564723423472934149903221700096122177967342386491772274971744728274767973144404098590213110350900732290180575880572651742017909232622249519795777129747748825649717229083090179994024742057922037348754447688046038108196774070330211662071924303971374978616681840054028711480302630577040022063984945535865288627024814447533671604010713715409341613380153575106283540695687880497633479168989740898477090069757961619468783520154479992360704381318365827245090398905061509020857537768009131658419158317108605160485003606304161311014939095810089123003587996662520560342605864772548174701078113082676383960179033892589464185997821181109767918852290376267067786045267717601874498969930159158807740587999034238113972439622065243950995976545851992743419879508662669320898649154773147208270592385245350684139036388722026530680106617523889006671193914877486381540763877447091363689511369527586186473524256845595031797380779895911633079938511528040718487133419491466381588874527201855301412287299461571518975066149824103492624549110968929488268996934938265253566855703105935878459891970876571404595549973808414885390816367813320006619353748506866231492311421831070427331056924769330197007896082769205031188564175707883938128608554748294727077852395799274961852287322568433275831160218112111190402516606253908302114521526765097633736963158435107907092998925662684050900445457301840583367687751182751445856757491789550996616125858655935511121477641526333386492751312214747223433916236816258913343062223562945355392303097589004083367083568637595116793376323377487196971492586800583495704967617869995288573333941039835426129696276321964528724497518847974288774489394374682748289865596203949731952754685044926836964858806263276746015040033852940795646965903711289426390212940593107556110556419691903895816922290177263095479668025449319259138496977655674916667625972437342509924114848360583384007570594784606832162024608253088919699532412815123226130526360306956909298650288253926667407655739320550420324859815049737900008093553245456368767192213266201828948004469594867198944887350388612401486924605088404772100473034256566969438165320926585765810877721175570601021642540782122452810494761163276416033365788143281000461409724469701893898863318235169693591443382073460774140836302072853584634110290837062197507724057873615598442090899296093345483663361194315258348426828820645375012005311137040573579054415050503266945343398516333246840299877925127497535365392537705638311814888318734287300567483099303352125025646967166657151227849902376603665051760565131502379842697520303896645872280462343164773221435242817132157473798670625775752359545870774300069379157797187095013489250734044626512885560848263012232605514275461904712117225931769714233676152879266275732219546075309261833833077814080828192035103616993778497968826320360670968969081581226523643541268780428023819442210256536662482192100899277667017044108761157474494809978117686767532352466440908864578104806923361230214405198575332478773654680440038130876453434219709028427577975057694275198706627488873148001440683224542561429531012325090721755525360659984489400228380560216089533931663952072460257333016890361871127542876991131931305924275504707825986169706386559716352085634236100536450033822032368532608790098433489047326079665798070499809884296029043591033602024667410518386809499399745834233817438584988261265814201957040529513601151177183061234442341319089087769675367101577567032845219157267782992404821147082845319812080802424101968740056886356833406907311310903696377288909515691546175694644598786736003702113637800572823567236883315426549976246370262272265118644908883576871895805257672899626109003739458210889524552632518747599505439707104655121867133586141231660924546413931971585765851620459692479380420333787538965732149771185363536475328149843500765345815718177598440226279501874609076722175863501348029821028397548313083212427149006010759443789482595734645554303602885576651053192011225237652835037570054330823491571273804111533244722602687412257475176213626032759018502049262692799250427681677085461866313710804360861355086297223303826698397808065405676086288100163349365082167837514996324032961497730274241086638343725430261342202335470077230666542912645496944705224954950417031309399801180970568727577755516744737027078602924283867539486756922384822096208030388765645451960430840652908897648529948416442775318552737084967559404236698379527598361876576435446682474911938874480883071437425453549936217741198535465207805954248535934534489577164931041940188998589467146487409177925282606322372265414697950318410449387300869638613234041890678858136925203117091414185308908068775740085226247681123924047558093553497685918894204695849996803575292668668894315241419012372525298387290155582196790699572529297964792654508896254085732338184377473018572035768650885781352784334834963945205941252108157787010699303905693386963540129443644340150656069658919533638746197674220722353821544189630336947016666251495419233789408280122709149034807282791704125575620862996836290090611257248158899879429177652990209787463231883525544780225645084367205018592878346420572610263576918732189050427756835133372013220406130024112947505270119900330368876935574659129433411289240142785585036842920130569877804741408857409398095095239475484970062796483903585385492411267080456808649695565812863261375572181118955501317015062374118175563890523929365754499498490278736440080062912984901294755972708857962464426006303840854355035677597535249816578508816238556534890564721847107770481909974452801161995070001777447227977089485300592831957146239122435170390504232442955170810582799618644507614655587584632891337643987349858996058916228379297496688719545353975457318944888469638698428879638968678583595693379240288401961316191746735187994272347315577445621722255377102763172493869629613965528726252696882456461315988735193988773774106582590189918033438595423033197952551030166220030502684815335056641538105648615094888346279120748879739356535268776350780224884571782455698074484569755074598611221510139015778616097715432980674888110095311579203737347268041469455991608150955111917555683858072375132060408011554550941561447254194454384441582174003093956115318060578649760753227141527519219936487611170535609121835292093604090771003607711312542240053193102196486755489645598101810634452157635497592837116445988763221006099639353563341413767735918345823983935315192656032566161506557245874704459404904548697468320846824143722158031123163356786718272626007192169076730317784675061370437415040450878466803235214562794015252144144392551240498526477085504532334652496605396603225242723352609595952668281707308660281524809988420207478382503824654582776634483870620667671116342465271427348117755986856227238403446909439182448580760858407303198618074418227554086470713682334608392824876264943838752691385374472336523887621539687477697826499144479133178388823155064763019279521112524771637411203698368877742496183852367309947804544371458723287674057059759686437357838782710894372227357620178755409628494802807372528000508945526007791226395860803717877425088751667767842824672645958306666475322376739285186517928039912741271213116345781617045836537091057621647124028427777106804174152101671792851112301642195299634334861977536688538524264925587836459409953476152170542000599436494759564672087964064768967328710712929886551766139402036534766736893260144522347550810870259550961059569317746738670595084687314754664740674783730371327044125057701582295880996617290331943801223105929145268183424938155769016354628716888054174952063602902665044602568582228295006756590150770189871016720185155506989020476153147781590437376152637998016803626065548642764775719908055755187480685576324318271671755714725798147147710714715358982625839852833223679223697994248650174863874398981217174544245050044800570296991533602694754921964017530178350887818123517674525209227067355428935254812455085094943657702437102546298653313544678645171039708941451950631682567475841501461325671631242482224566339170781578221615387374179979365347512101527418703842492173223457295284577985656749636318743268210443609172884764356854465569697541018339961009538790145323269366208111221940070355339343444211007863476613378308235320173475312570624866042894686669394590537045891500423399246902959369283767986972570132871969442309418133264947896432931469148531945180496429959715011940882617033129666552932296604597937379357808332324764868309411292399918965633237063706824311522347083360553422422398010128617688357273874831192617445992397310172497821728226452379975722061783602000464686330793755560654965348426175188827531311332766039162069546986910175713838008159011065453285756152748140380236411219446845228904665139138745587825195565998199332144816512716172104581332770193321940233842685503295629075355139981494606634953627000252506616586432582368646759951070747779946745218498612773823142952092773204387508364674677458261559052707148178509528155286393291111235742444568873308235305537479141144085782932249820252721144756661206125566126913770203912633970550551211133014298336236576476662836030568343672601358053236278478093012457525171260339752840836349663035792627771288622502591322110997031321104226678119082501692370770880020185340321218243771025489531849469193289912787782345432520714768351200078488258423775364777584279161774114667213997456823573293720248276743754694354145901623912728692193099459987373186222452914224605685314531249046996852717848747014776031665764264749550695752838286433421337817851247866310885274726100941227879560372722052361084227854443351775175855145649908862211981794626202427123161451142529383552574964015200068076530142788888349824358930294959622907363209657059043168740365391371657948672473393653124833477713002967936951273763495104506433381332583282929316505833665518324558724525205860960936955290079775808840066521903038763898065201013557921161426289602595414278647838201160276522988178384203265390414026637035829060187295313403212301220035370863626680084311326338024459418452824440841546459483227598502444970057523197614707946321425012203126515487909177278802879313183519757219956684909753950663635956994356524442852578035857344858591498477765232981571050861771536676947145666687462128471793723183296749241859385746841201216851546684377947821554055752127432889975441471746864452081808298830397215929428395432271278983912902700512435642807252438229391534769794380982333691299258227874375000850638043544345955242288782900636337056273378384161995176131316794474922894369896517084756914288546756320352309437953062595936841749126371007646262071217804868306115715670918185108440141133220802810150203653014808612883814118227929251805898399040626886657863170283483919768991285202986796965502890457430815413898313202926225988247785986444433461415017254523157016537755198167403842097199309977855517682719700704307988048828643348853667290163672635204763830448480037853999511191478091207607742972799503985477115252054500246031535650776877302256530631610009851443307151082762390427106661559174911157862379006289107069820445402182411809314962527422341155238134369320050798614809934893033909372095460502988432858767099973550677971788561248199562544994192384308124107749408003089953056354059472175604649114241445333148093356040238392435012229296875970773448606732867842101688607014494475772904444208483758191111631962920060161906003360196846484105988015362216100858334216376169024930101398955396385411513080546409769407922317557095963339468524583949833525219297179208723575226847676746976357160553189178112218201578641231455037205857003070376423220343045367765805175770255840011242006828398137878756758145809311392724260300148268433184552066520834489168169648598768782969992477168727128526760480062697202831062806901416469270911955436550480788887840328745118201856221327355171453871774273112444055810181406308854342152483722187864341580440109881190485181214621663889058164721208453433571077381660954115866771400539477815079288794365960938677644309790372313421034931717499391642253007305769341871893397154333779637413994166268790747875873331577976690560413196960087267085481892267333547952225741201434588959981021276973105069961338191648592227978796391336356793105407323182057996782404751136671435294351101439042939090599829855124256430900259014856187653155771917609503516603263940086583562706401160325746619040217516828237262830686810817959024262411315663042082494203081310409051116362243633768691973655918633400999338263786043011721664842500918023090607962789726949854119926551238725251376205765002058381028948932855935670476495388234375308218858553795854597507205209436079974010319059417436407279059810445871315094797520314317148432223177799750315225498430879824783642118490490280509477721913530795367151908280461133407260751530272285905863454211751118862810069419945314601706604893762995509484251249972463958571715145112433417564906865256694639297171343971645937775585329639917156556170092687930456064263242393546019900577075733905473233618485190282676239202835139137141784511165798207454047294400752837112161837100027927747851641339039865073514590995790117016629123750866468353327939814902447344112639081179814168139385516459116651058310493465470617109258362561396227548434819381017329035484553899736941355600965990405388837562637577954305580969093043955830229973101685817139615388613678247829534380189873818834837667102840894788602542958218672434715770829689536087395248529106757700992188589250405072945765733490792708814666570599745099576156903969713519514186126423972501807798333301768392676129302767346643656199797721028425931616302122799726498953661508217264435828067164176855566850896705449602334001522861017785921196817829980440986581654862592927274215638166953622203628951312010070638674521645870968335982433221512172931155541372762974041132765955116951624563392884282010768159461492264751831286315648595826472499619991210111212944726581842256312403534096710707844502774133843589094031045798808959669992333661550267675242864255780011746562308269524659582245581357804674420869435993362520844878971449159825548448730377609384271861483744046035401777014445694005199890792523984974909303860156415429109933432287341312683266869154145650180340309748240719551470153173645406871424217685425690529104635185867461048359023756882606223594809371925826433185845548403629793717469587984302874359612656825107248854381701306456137119683426019876889651688343698162287890337810625900455489693858043973954635025311890568646610007921502051213798583037249882670181225097172324435048926986935870047303731631096519238638127390921992681885544611910462345626912973654216723537292345443216230177334494399305903283789236100857964660007614171823544197257106299385661388065075369272257197738807180563698961060403815271197059010051262329305188127127847994309344858597041844814562282440316396875464609539629220291713086428512252270663004846367949431091119940461497683328359780615109814429358629251799228557818346603731744779864847819043174989297674893674995749570972511321082456162171198411706964690027354928951412517992223059631181393851752267502381702278912800239291516789874549089129810363053036459865368903952060412216735023948055120546197905312314450073249673666439740657014516624266752100302056075427456899470344921975839362761341292290442235258752435283068468175160078263253169075851098971230977451677667794225271670078469925412342725800468377472082493309595693137216197254281659348651866746919660415407775886509427866675722874877063437986980918016820616264222448326227162646505605843812604436569098167383016835617787678430617560041996894820230991266288945452383746981311107337116423352083080396908703868574897268350949572706323451887396069177689933556525271107930797071627852207022343379662179255855675989348926559965803604270808611556063581701543338875652407500314386969365413103920384315759176551185777177611781446846793759306353532626309260199551723356053365646572891956364192868770826399539339688258687762364328258539111244773346200393271662405364024846610627981414865984667031121769944099630229495755592723928051580714501731613263392110356754322740321724211475748824819529912757203527762573684552951548654917062726524477248769379092400292486346050158444232020779178232492881813579723483859452929341249807635248757776552499202196153763061863012308013643023167624358820103603493932312430354391100883318170456907717572287114191856839228489957793985067336946757277120195561780472472476518443015692879415379259639302626746053282496371048150771853525382948899182833891930557298794811201734784812545757621630165968267507227938408542448111824232712818146702006677722222402246470289893404047666770903706456485463616618850862095137606722178943460863640615832573335088738711776325133785116620154477998400922957624737555212485764049162506291426477966726035592304246031013309938058310428543327688521565731877960539031006813754812091245381329872441181518790851456022970409989490323942466949320680256647689565097495614775580001336865147638956082449998869077689232349631532644701869866097417063691226706034934533662884403619647620957502110007285844964715677818188560911325343691566037027494664492554136373356016126357465197053683819899594522972096520668010416459883107980585336348919651673060802532794383894958327516673342683442792849566055899374474553056407957965293214781449194041633730290389319955379595110105427411474496700193573849425809975538717644243553947982779084311115863551538502909722879621286421222012399904989008743066535776322179194881207207819380793945269440068962722049758200345023199927060259867557916359679831178028935651794747957059885862413265079533765419442174929750539158373936216284661510743307861304514716331285631497307370658835483518106198403553933809047903588203004687912807110035694829427661067297819303166174918069944847153905746280545212959851957871276989677858417066986048264198563465384933981904547684736239044921996479888678246634967904744086373624981108923659596057907090631399021651428213262636036101269731866708353569413614506381233459365861081364308283407056985758350525249602928216039241364887434425328366632010137550830848698853199612736918322349351227771780500740003976031740218820509736311748013806798356226425124766740413570428678091016142998158023414139395185735520652532825906656963459053043888788184772229828762634083598563517101641568409462082210026556123623927535070397308575576184189421341025812028578103177320773564201107132556069256415740410347754767413629941607265103692356273340217045483307394910847856870013396057309289646981128951114303137246202152791125571872741943497271972437435660505147441561158585036642915954542364851761453179643626649970482381490332617930270103095707661021769760075184309885236342971135784908176555722760669646270843485917024586575657857939655336891724719237920773162052983305975919233948591823694197763116943285657197561230249247473420077335809862221228351043475786109303668403387210926468497476705128591996727168267619015142927887242393276123134049568335129979954710970870554319679798816028328136347123921031159242893672483290687927771696262888597762755095331902327033175224317610715710713432907494623576278544802017984339467651434255922113596133319303796405779640026008749843851748964089793434993675374565435612014059489450481640315070857728869203274215320582491421522379801635911150880984890514730760102567296034133604467013719223322724372898978571503580300206162942530205197877749680192908879486866655764964340793497602316089080671508717116968843873672597327328944670515579903494697945003686140276236159309113779541044569863000551851667003226267465990021987505643336577655506200946954785913437349541458072792570926063734694803389289741746624352448644975916357321318776726541349171874508536148565365866812967293798544610580295758258576691559520310663405949106004929829555800219327754034086822556659451016532402713095083849270358312389511459839868194912700005560328065174084032133641770063519153656293953735244745639788148100427866760928959345429146643686948990086151759255192972483331157111532239133057731909634455695770130201757930398755332844637195013350527222500019409169266200753667829291881732690271514004048510404301372478921015403957975002636956286254930008041888302036573212584386040007437169288166280140904079975938555625458833506714915857052053372831161553916473730290293373344634762049775377486440755081417944688650395840427782816525110353141383016148173728800745262350896108683429742544550242452048446052045092459316776451442108103309154633057175185765697912151868251521298758113627270211749257476397071849509116227609853669898984766443187876846237573544751608631597422976519416325089088176702928973936025024621486416815678329878563679947758105538668370511183160201983227333362874629804456274220842981815391509285347164489017338107123968819029381047926810101052097897131128791510684471850083928247751160803204644398213610510149010476281501237122462952109595536622107946244985719362362636116841699879291055015210146990978986986026693222154884344366812402941543394720577596626902265849321475199592766352748799147830113938136822691859431387864455131004873563199386594693204809097113925673578061339901217727669952857875872493608294313397421732130083406620550265923852198166035260543312810452823924743652792109694978974262905750968982322462269434399987924606574302525141895527512249793133938361061616488299466784510488828341577498442938886136229589663306620309627681573950824981900187853387068805192343557860678775329450484330687572666027135623920006408176648413206541698443434794274074892492332367081356217825408644803184226703518136364965454261952817524437398534343383064769655411660949113694359815237637600461201802092264625894060571973176941322817278049909557259590600691739513162968882772423778471190100578557171881745682603893865453782226773368060505436362834636033337991419830281946237480856194850979144935222713274884532339301444923877600357124185395258767346719398793284904328717476485330593276645385041425928266128002856581684643201264724887324811570537385859482828674035481474087887525767079588758167249259324537447901448219778719393130693545691496603172349471054081062379113959512519986523259032567244567690224001088393150263678894595763236960110917475016505515459072880690859316377755153728446377249576033178834893570009015142549139238339315693737428784390113011077433474209982809193484180350168785874410075632013571978614375533655727331920175580515506580087461672720541953108633822674825612103600528433669548271602392145704807470324410878120310819978591736675448855973370435708606059936300569731940791103536166102392291880973751203530790108362852832887534982331549527268580701296449192725604364468136430536814324852093171576380949668212283888960856643656001868076565351998209815479463114283863569451205093187372381351051175773437046469670731558946681172269176240558099888698606973770349228817191822283150819108934488145696914719505124956221515621413430739724337094453130340545534858630159964798116374172011169762989185967690331101310941966592474360682301915865056703561369214860526961171483045026822857915651931800192144647798573972622369457074375692263836118885537253694480726516512464192513867919631022576617341728272771629146843261230485159071259452220352865496838577079232809990302588330076289323815499097221628468110068663286303832508180161943610778901440283695684306605656466029970114000421983249807551390518677863472887655853305241800887043974861597065771921399818457580025406333087710477855280322223304068396134376235719098341832832679613890551312040128088176428746336696720522794300876825810744382037590416165419577949239968116806712833470212828474286014979718292146760269871756600719350794845946077156675748489343663874917846265993372076806367787065670461049097652303169289928483147829077408612105241881225605139107257787746631629767219397589926659714835072722823925080544624210585559479637504907725237065611727220408845345614456650950006455071572665774317613834469234975232927807038189705098748630734163730449823961214221867644374256060093337095079332764250264924084610258363059680718453120141265817283634110677683831381881887009146712670049115756342580525518227366286020018917587705348115390228743234166867960240959145809105984946929630039935039548042069721329899959614665304807479273356728559576122062240190576179858750905251115552103111993283191813308308958442216493733498097714812209114556547214627527642820190356055164732351267724175163007446645514301144137628246306822713047071391635117635024475343966931187113894286496315442473208690445573330827501456561065703252639877822424862441399421817334503162067377224392200546149411646114087021024156345166915326922889939984505885891303670093795337523444192315220789195147808375668555524864099526911886028268397482136727605902324016811634859384923962435476968065179435942428723359194902958285018662037536446994336493980373137592406198327072599513741470758453169981587897470829467436708174145377628406862302614299909926695245293281308835308673203183998147977290038338757573198317078421255823141104372786382632303530283980279634818855901043957241585870800229270190655668204277048424032056865233686839630998854036476213807658003780005701491520154242958463581999898048233445918792604289870650448999982491984399816902736529953191834223968914212917697812705369962283437674988899105282899794065914969110486968415601269987062068425589358868635993531483137931997627894253175933545143801321733924261539865507303550553587599173458667430121196484723138417788303816781122329176518245900962367318721753537856649179202099675950031563856104330691508544405825677704052363846968393888496658504394892013884694922741585362238470074984922558114562616196451591178332900383389399327584132056021711657250317151888015533428051336924744755140656046791768834339236476830029591577578672844815772291202629173772933488738151911718506202035780135719226431853924241066367805987820630866320839278022146932962053154207414315697736516104389250917536718413897306244257743498990964974805683737630870447150018503813865500698183915863767900098644654195133643011968400893358872184236114239159735338516399215232873081836261109013148324062955653921559354849585424074018696078092964008903085192088225777770449669486712588267278751392625136940583157570060575398870116631018674240436339698075723183892928936005567239518029566849848968280500056201902748700053755962332181453277964638234402660576915986836166206597554865761043120290497418707153839441188745646878808068345722129042086325956496328005397830334557426888174610684330707800776104793235181140651018817304569282654178960653966967857336318082407703837754168232061534255027410410366828588353048795622750501097657629096609105072003151266386067448030377650772326728933446073044843710167732412096417756446712281016799513770673569973616492796135698488889806098273429527247312257195453218640761935302637127477678967571669467001180519317621982501553737805991090463404191977010250486778062269782143699767064976938298201453651723289867312996301381409054470106232921260850051449420457301154476307390923484451063869504967311519944753899844625857566704171661604088981599293794264877718279872293066293933515777525859313086044641194808182403347526474979130755885681980150266881624329469877966726696798897472481315824712540231604201365328180206583231650574290024937208366031266412928677628082013218690471003180947498726854488523068180232977513681660106659698536950223248919513007676290961944458617597288890489748484791964392378818251285073303511743404853741867348385716165269214237521034249120745043523579676524037299660912902755812285282443893879085321381989101499719301865105851535678396125568854752337048048018879834876311457801354609528206858579743854653076627798819853255275842791713794123370976482445373594619578359000426525571872206574210628790225824691430970465769812636970680620114335116203759016130096600434658725882387888809466858690677537030036944765812676177988108387575820212792508953294212370223474060781891838812032880305642005586788287030235264287788451094608930893766721521178425389658145790412997495784214514566064851399250075610570392196527702755955892946161899529829864926408236359358920367709881723546263464595526451358092216872272407717048566729132369002340674505630150867125900822112377255782705802626433205537329826128045928765854770577591980297743535863354951104685335564929703793697001971842842387352430151999753025873173873895077729122565336804009441110831451000295405646149930659891306937352574594329396898419323017734469520594469669117789275560115623493966841003433325451941827942566599803370597697044903794599757729352736235085703569959639811903197980586868751756282386366171084095419419576467869917509748040914346631338039041930603474491044306572416549731150349779206907312316502074189032613323594044121294825702066337155866149147484580290636373384065287946622681882902398685091881450815133370440994853041905059078921557599504480737982709359258080659850787454154346915890075645921314725235805189905994341105840820569346918940999509494245677889929605627927179279006145457408119750937423068215794808325416902403106186629985350071689898009976560686987474225784418141359547436906026595211349809679623779866717065978599315661173912869473556749987984186709977481718887470647629434994212632561503154218414002351967254223336393652611601680426162128756348386577999027921963018133573679273547110271518716770601123184247010317845235084645077703071610897627832583794491209206233688574216645397648533538293664331040177338867384540970637364572595692505726576689194939100454309187609214347995310504195474611253682383560914854179324542932349309266720437521196904329887391225384752277271501258119381843712576812588867263780433659465315303201134285739511001251070677629182462071259671520020966336330495431693932378755670126247695579237412590462647751631882693638877359346169996699006414809307865716112810618995269401834977459629588576546429297744329932652406909682350216274242241304367853633154512171104170881898712633789397069003127150670553217014210682490642690873906399692108050796630312487250718022687695312664678138500709632202829754896687509121317611557667311017656253724385877911297180123833829076689559621551771453310253933577526740304499479311965406720293344252108179917077682817667349540073195970128927602999465296546379043027860055192282583619878700762900063794594690964896054319464274650107024444122868161669215564390585631897040788736168574126175319288095874227428185527564408572995688119894626783875588252271029667144303055723742200248618186878572491843435751616645308814485643814235693291355717714042882847983298181945217087502435615241813574865604239182417533448242838034107415700961612599208239110365369859976498712588522259159708637424749516197991074121503856304522251958344475772370939609024129450983703327092480283316333791475249875461116612275118950582819596411642341834703568099192776044397297335872551526930758096660771635437219812632904837826964147161565358839704662374802476458034620876123689730130551412946398568738938524007502752637891716084177570775045656897093209906228931806538802873855821141482721262582468269587146602111242748626744493668102063628310768236368708123949534074349348825801922543773538261952204077045040438414742157765983119894328853909172092102312114373156544348053930128137598942121338562265954986418346276916482846515944174447895146185393570393024526761241226401324938603597281602968971273884926721490100343903379195263203961896092071288960243111829088221426215020376115242259854364636437580380528160695221822141871287014845534609327848530158778566784172855421729100396117772156226120139517062581678775898859084285300549059856655014493933387169655690629328757591113685761920097706000453561979846141789690289397509828337985124455343230201430385810749539924700810280291742106347059160866449709037917281472071795570252736888933798887172606537836298388208869379927426531353977600778658572323674328274060164625270230674528024541033239614259747548540436389375951174232832795306319333608787916131560582040460048609565147556904592025878902187589633305985148433076968912645334076699828708207039390618398746569922709984736566805784975451567742152138315092107316032236349969612991716606743561492692231923940368771010696247581838217726935243455261448334433583821134147097838472294544177537379404630464193329003215036999454303877435230374959418340911138895702907782389492421256612764261679694275458035776382045953246912809547682272578479566754748833257096168399717228686276047733495269465669413985849354452945334908270034631328558195828192831685493303865884284366076514351954445607006138748231294991607295071010559823464199471981469589752182302184028187988698137219461388384579318323239227236224652318891533196502251660597514577474917143639097391503504103692039348385626490800744912925787210966516277543810990447799573282182247144068558041244369740533526805312212044234311989425409183183206948559557152545280188635388799880549652139150994610594400149649672739809531425995559801132712610071068815086799467048125048941718474702411635013059118134007770707962855474330098185930325084775613669005335496315171202218626380807259767893438657333173614192986881218333632470993178529572838528523019949812424700476979929561938398938451707553713888511757151866684557697111638659134463862224085485164205155398073153385578672431512230957159249929319534574313420321947501540249962656952763654635890599399700842220475454537710897719581842390061106393191621011818579424951629872850196897116944515160685920387113558239822316148707611494973878127841280407750370317188954502503497045737752436933797008829112509358091386351899432431935518681177144998358367425201907591552524508712288746937646111226493359379063008285866176156984274383372747154503103505013953409065817245646339005756868064888270367308922392276722088054237310555393453395745708379674230325474888400351637734814050670982002680890835722999282457849116441569870517547007015871894291207801219302651917207716569613764632794044816405788398869475123699312205248528752485235365699667628033867128951011019419257585587783696843312307045200732494299112820625803492139834205065377475797912271493901671555363945008879026786277843657411295418604528399464245126251315190804042053462912570960258586881313420213185300920939443126071162514862286567827656803674275584583981587825274054948806533469578254550215107072682779497545722550455895193369115162015197444084907155685883488457471763658015340841596850343228322551362230818921494442391675347974449666557336275916097787077799080798357615484063298383065827026596868336955889280217693147481805797337818170108384087903855471853714966451898712091463883000552997498786941844186033910321322263776698037064950045587585241414085827853244386067671905213618790644736227526148066133520658204829647390537033130779752220611210108010423063155557763802626221116366088092055724826866794482648856812100291294475397511987940603706883411674689071699450823838505637403225653072740489678549872254007047679392516266611769887954355423421729729562138656107572985787342378749985554302619171963848069502292697420754182534824492743239596883282227812799382085475445737806262289718836808075019870298940743908466795596300475931446449177392673141561094657480630868579392936354979823767900209490085083964056965261827768919548768568947809973572980742096378477108176095817635919840739200826302814601861587842521041359368095084108333346930227672442522717719796406833092560900528650240769831976393655821359738650232436022554139101130442616473011027342505787151179368911194932909220228841313812819779185440467435441181653045498401647715645488729798528866533238886127908802800690784637309834246183237908719149074278744116985666337513936332229406919824762540551774071603427274679763532314083743584887089233010710730161488157710275954666655376664453957959445688429601338429150581463773737389755796682483913307000745341749280485811312719672060769894278905910683263537050767273970968685247324501267069299392239119854290408879577594668405738565899491368366338319073099056940714683659629572302331332506084902253793204872540166488711341290553483281448097867139157224896225259884785219232485754386106675267216425232020174940040452123929018426967286360540719516932942124276587820188971497147409395744698990536144772992650662436859069681650242515556938668487410852085074109034664208161888953419821611940765722579751413888976258723045649422545068863026063281834041220882224939463812685930594701752869780002822830443510380862506767284713616262631037916471040700602148060596443540693533833758275505028686172904043225245458761256323645208165422781367417399849857398903946615921496126754513751205111592166708550570397442565235532348561117174951060579190832009719881614628166331138285619578949846106800743584722853177861517248269826344772037659424304799425617584285649882665711300620914325493043026713212770817369559122603594573313193902243451353170713333796760246373069655229723573974525947028793282268621968679539103257068319543909937588120437819849444368553877981672091132701694890990107411952155547021416765072051486990940832332674249887075231586356243511802141492374914863580935553415633720992261822231217719398489410359790333642174092895538320416625526589791024020657652005866694023388453219947736232770640119326278634800713396000783233465488212459636784563346894322147470745336927389688846838083783303097725147023272677167615679782386675593722406706238949754312412030541144751029612125353841496386188860628517428326262837348877512051840867808826389083896683260246636158105999490633825644481127277530314196750983653786740311841435676148151390490615007076804593467926029865612511886743656952126211558006430808236126026718890044007662403779373802800632759750764241693603376323409954060067275023660143367756893594248868380137642395860913794476406768356984005621716811136332290118693509545614060413854911677192751116354724717294869634574293939809369716552757787199787596492831355592367222382905035340438934240871897973783912861632095124049946726047662406988119212675509458976717167731180557025178271384907948348119678174341382673457914950950845266292727903999145238630663799623074433060885508470949124694207994052036513528045308911987260438345492800625180304775465683112320222056191895354171906264432042233865028191366659725037675562992790400449210015438236877751139216571070932892636512237362014807198406475193568552848147638323478279713607996677909805240874613846681126288088877113864169941837225747422671800519723073321700198519974446382188423067404746277122442979439190932725290098369346397751671153774942212676860631730647579477967302332849731771735056538612040035376272475901372739805806613239721587528197297485367828318453176296975251626992971091226375455391104577121483890745497776496699556885649867939107490526148048048156464569862034423328831677829931638298633624882946885452460262590294569339118790793980502289263719584489745535754740621573019787662376739951219466398804776809058911891211290013120801132832265096494779393762258407691135193544422007772945999592842409307692709528141618032359930775537596407571748500178294041836763012724912533384659814642026402415998203991230507189205656786433688603029259042096380545128317309182688884433821551251061640565811116551502840132395571862756051187496329484320910069346670116184125542413533306657894071959159933141668751650776645913998649910638143334655097567765448537754236241685090138852750783407986459179396824620002413414628346229958506610321701245557710373132471672749493455483382766024182123572019181874083099786017752857490600024785986108245826408331347777602543783429810219344772828386140844061747529472326204113960845782097211724955409516536138875086883878112133512881814518218562825668952259526621448168228892501219123664977577874435049361877174239975876313492826833599675374560310592887670942582672828863916643499677512197799510851713823952436920820947060998701886529324401944741281472066192849450514078602847039348536534253069213556678257734405765095079229230443974635188469520829453896325675822476393195073871627929189012475421635349316451290798615628282651293123106124502977467069922049509145859882130955856930066139537537085746692509814597829764446010839461607425478156525527328231814964201688908108163443701840907807113270139462156229611986430655249969601060136073228120766667831327962324333325528380772130472202492703274515811617653116178379764715905767021481752579915510570325259982865753863390236432693195425715220884830285605176961014242393981681331330246500057713066742995207800857446387150094110453856522442370415506815458977520110609649617931747423572087310301420611011663781578948978381414658382263636923326807096551203962895953556115014713402652000514260721681497348820369715742282628840417150425338823044206524569400335925377991302483570555677444453674455911723879063349187323347052668526592808175787742381515483717017133050775093491951707355270220018246333112753250759725655134481841022850278505478410492439514849224300876194128015603924832867660281731106675509241428903552103059796196469417348222422833050296076390154796942530450752680793511475249962130258971771453658883507875418574593335513746418648754885235541636833202165427476898064559864762814498752784263956313803941624315448627689139689173175720364751694317951386578317185586154400214138032177935528519239172591958104099413608401173921734151227513249209955019880122519996997349664570861348382626527825515672871363221225170191852909080882637400511388226225209558146747860187331345092181421558129925500037834636329366270579361367510513717319414293745426199378893774898427797913749543912788171591260039402778553562057978292701947210942764430991137574946566388901437999054983578601401156718855942744638919102330592502338682852388937323927008782229302590449936912077958280881748047094253972904522903904400070344216365620417980474425113063277014615242803534468278514996764027965599751541945958922624717585032965016354612230298028125600036469372087113221748326697571801946018056685534079631232711680050148444747081782876848866807584896462115826640355580051521506982407912821014118452103359030657763177132670255782277658750036377382239332162306849963590221706403184665320103034251658511221620321866856758357961221122175230519680664405270366256448217022553475889502234792191846048831889305598019147568616997388741807722196807888712923578317914513570474420779515021819030397088331639600608536637328500972154866536986059577076225389891604432057073171690478036956610630141721333724980376597650121528829809354276788003656169970101339367445086228779442180198188456529208331054745905956409545753028317573708820145489755049738183237430916043289155651472393965620021404302357024372288577455390176218377822003368678390714134744040037720798455128765532706440567108108665088296540572384255648702566581714189659303220651327497390327075200614528146776753679348593870001742671018714897491558874098420969047503550830672905240335348452494738948731143372880999097363851969236092632616500932680668350640526934884215269334597462899693844898993236354979149555312724903974574413894488416884234418019399695690405848386834741055521371310979774376570541538918420892297580874628771916827751290457080905714080337413774737836156776007767774065197071451213868587904767813243629257444496155169257881937609144569376552284942891795835794984406476994638792381170418016768519915721928272602440341953411474343191345515899306993111638011880937177477499704974676723597996246810190309607805535649170237437902473868723535849945558017710621206368912453931673751823568521786506097283714884197722807100037966559813493127169021835430676192028407944039084704334414173134014039633545573186401577782852274050002908192978156420110036687496622136522394848273539871156712518813156399732193831435076314487827958936119945026644056734815356541868511403842876658002694969792789140233222573733038836110898543191210285142862585243695617782579694171325528862283792284826103219530603574580763706653747740001092641974693772318289136057073196580655748511268457241793102216558579117439538961462353927664899521991187629678922750094493507100060878964127972308183011942313373898767431827624344173485776665435149655639661756818126053434454630395239387888396353324873543015171691765967868515562502830686453503867026630661910378407220358339534979154214871448935556852047942289999554631624418379965637695489197693586874018393263853440487108578500910756709056379801203637181240601425865813997154577471612975688985173159616413896798138887716213833890302255477409623188387399672470787707635077486932716386459932053951908410807118888490390562397294547847661095959979502884468991482614869626304227178977482132651484140528924405724596310236945151364793710813044737085015862008013824153269996939084115771746767088524536716232141572670813703550456734301438222725157658511213391587454052349973778737791310274859650964974493730368114229222159433885297306348823695729913979249451958617297592017635859706865179181041116749137077189093846682293497099508011053295675870438491430178472625100989011225446249128218203122022990432595908198689695780367832521870105758927196915753622868899351771222904608555298927631456382132830859675968107419541625168948522052079754012621670843791318342531128852235885245437973977988088450464430651235282572608604058750222398857396438874667553470166138522876619811367946894991419540515085221284513516427570056834606050654131280939453254647561100209307372899772708085043027005017648355354456319636402924127920738460344442561091266684397378577293466439996503568882638185584713357883766018066766082654768166272954204992955285600943628075664593601914106041311531250979709922062253235952189727442664632895391049012885138129939569704477686479951915265545633706705213005411837720383629347226748446042721023856761324755740620884780358036870841129330342159339022709165984665142924712938463156976359347407163503988236426759261641129926003981476996468934953170527170629396592180303685202589607558799745225016574655520092248445716599320775812437353936708238767603764332459866728608018388562172991230434883470976850502987691453545265432371624175419646366232200202944534296302990131644436341162051891500338755503806693254315545966877689146886927803947429287523895151245543431046618056155499821817260067372769118435205287205834073593508629476924953889380809596098036994123556097839522348758786717226140343865991898398836970813216130897548834859538448616659509014817914981483280350154708837093644733544331431561510896841936551736638196521385547890511182651710791117415595337950914725162465928570742325237416853384780350771537300821130330773215801319001015452957275545280629887248945034544918689993856827166706810997636711653076898568562600011726202001539292558259409686145789346166848405063070977901804118786112658336091943504361841877089721334752674522910293160857289375774727693180439018895602056186273803388160363924271437862003852798556880008819366882448031208728453592786854721850094337678624692562543897192326924735434841349098323653005338305551362122936385090966175233369848492578739403723872215806289140875145341883062824893735679935441847707989155113377075505550430947910266326745451206147165548970416568196315164719789389124604124831065071503042197319937374293514718484298576263450232234683259358089492165973420354626930576157884928797255350911607502352685917119165645251668512685749595508024675188534463548481865684520816700869969036622649147343443005224915620329600746138571820909044218237634274356165807409002845151890097801910949561549181657548054790691419898264121590991869337953842471358309493076078130101148212729474212547210307347359909809095256546750114184495008227890401598735175831350079514188459842115069176620632406600592002234912631690353018331285879222217508024152726931050374166543587047649502609531037756852192204300720375882740854134551107242895726720871044683563066849408743627331646549073892471943319832145181781977480172444960117148959626194029944810899122181376997979902858218259761159113595304419881176832114288491069735523936612989599381333415966215345311634575664773031518265724420848971897880896775120204674715405940330713911520634605867783008632925971062767256062332483395003895026596398856120613494485401484001602608047074400114678921310534665117892335517979192249952038959309294053975260002510618187281311214129308660165898809877276010792961393730964445675750170313763327950291296270104702072374519490606762804831020282581796940668956409768493770324482726710001231344461967678851865094922071912676361435492974594555367497437735994316927388090540518921285699609923281521601993418458098481712087148460408752066499415983004699699313181438777327042977547427012363598924328274500244863909722932909210256615614295117932056027732362677782351165383225141260537498206380453242921196880660356803238779043857388262815067991793515955950884677894729112708978546746359761842383097838124089536442275659294095769015378599237612543317042542497258335517736240588281312106958320596936657295860791847096190758208775358021912597891670671610555611150472809074238262423456199761976431511786985769032006501780230647154833263957232775474961504164902645518931561316535052631814444429960439932463008307734575574333642833669061951777899833893291805975568038859071186304824757952050519733851020253007526529321027016650088269327877693084190483014935193696348841145360724019166821974924417283418621080574987919798519207714486709762625399022101252908676651241283138571310702739805066479515733655649848130801356541652794732785382165530224300198447238863241444239758386495203173488866852711853810928920873764056400828615560020549713388758549580901964936054026716802653096129088696408528229236906560169043143981139054108407599060450412498933051006832687066950953812228101227129332822749005175920957682882000281446846173291753985244948298940239890487264152851144094430226635983260992734703438946889125775136001151608017115534748269257980668870517794905397215372604686575761274241263065553640702715376638216404253608405346080829031639092452825253117110531445845205275925650690201543639896633000569544203297171248353907754412810985911769412946136167467491288517042679903911133990546088373579692842772044604074304915606803585082261509652052942857255068088341346456796594172918067294342599719063671327226071838062531440198200366765147396233551599974595493530709792394998113465391829352250247520662028618921485102212151214600664642700880255007545876519553218899368812422878684541492858257276963060527606138011581225037458180273703638045554013043604929114958176340913350548473701114654553750915756342378146058458323697452616781115117920717877154724382280890313223934331677772293041909086679215043690321255915638703086430746510743369607511398293308557906643075652895633673161682141198729687646344437169432584006485657017961799989006021713632108047116393121827771821136909275673249988408322366621754846263236749093574465418435200011010719326199269187783082569017093074819264457697936687693353254101393151163180187495429927859622557783669592229491057080588830039536588705924664935876520105002083133655838315417140225694964827002338550488818219635685149380750696865839424879343287409036888759250014131640953073055251389884070380160152189509009381470100829678275840945820748227018367442730534318970302578207944013352217111705808954268082181074195512603422030633619482308130456654478918066676922633362067789969453394595753262987708201654334294937417884755916139534526825088036499580376510691313724526458878872672404999640119146036604551935117600585117307659726577765013119779218384167498672810426535306672413662306516418357397149362262694826040705348694310244045450693907842883368964282479095957422685039117536259479460326590151467178510296069234254588315919347387480583065214766255424789075104443979667362506414463583131510303148449565171362093728125032346176807880188761782472273288066931341771612774184540472454875443435924629531605753285964503134260844057670509996980218733771716512872455343429538097002291964549471941452783265871727989706946946775166299283034281431946922365347835671684347204078178815717433118873525848627356062697895678812253459525639555332401803425434276973133470036005781034448080648833389745279998774319787132145476831664078218322541261520125499463977917156550306245312401724128278390394917198264463018795723963801702058293886016203692829224549736305940787541896122472402083918348647783356097545493469414203744359760767281502970064674981475126212294323152449887129752852792974528890472547608631491177549231557232709854899573324540941561137743500559550437681839906053187488082137041610545221562770398402509967596358238969373695107976671241537296984740449479458081635581599335020090064993879980577161945183725152978994816752232845341174345002303930600234411988800691457415710866776862835414592239792662730851343659439942857514548640041369320898229476051859583862472338317396529907029690647513108437841047566363759597040532678533947586952759195116857460521603485768593009513411452838007918275766031922397253728836375061959907499038411680752326998517470243698466487366205065685680307353027102159011526854917734519918699514518774417936492798755061495816613855711615420858463697508273995449221641027572613740122022500729230366401236125505832621179153808592060205857571147025294667276269673841930706111294971153439719917257295010578629942754869251309440003563283713432207188593038279706689882687181478307685068912668391065315164367664577712889627729295671215658526785741770029876106243415787591386966530405394713730843090285844977516135132870348647976311451622565899259076682415751306389536170796142109737432840818628471855801637226202360260803676229677276789169803111355211668381792094163522052449315229162902013716152007643413783037979365966557611093045668598152924886048345939666693410889444440945322218063150620317392615246335117075148932798069404838273256543104472398098087415126893906982658000519054306010436130221428614789067641035990216986241272074786888729372978134459745761926213555687251493215567617508782845070713158749627717845293146171657152010727143240947726102242175012628644679194167246701614960444408893658305019167385458382947729437795348277535885289800376773425799579133424590554350761660453437646411409510947313369846541402342990531007388381388158630263675058769303597887836460867236485771539128111669433034799002117799712408195522102502941750632910242688366288245093211605231145553191340021223862227323310516588129834321887688518606594666143346731628906426624556167077419848813718738354586363574190233482549559918538448820012264338786675860903011916712679470253527842375375807410860527623280801197562422072714797689009726142625292349786950855745217560877586354497778574993708815721303264347607941730141160568684040786652023493949553124191608077052535597921161011492987056885512057078662542085565838060755321226390377659981421200764915370919053573227421622537223858802713063594959702544602975896827034442176589335451739844911584689633370037731484950420445999142362113622873831860046133284684098358868211110962629327727409019480772521185118430397299792905973748653926944568632796209063997008765358344841821867135808030999492404259674175348839843421090716782530542183336906564628674728843051423238860073924486083262538376047283636611189906756749592526139456076552273884938728067549807857234238096123237386379002589882469223958231252477516035272838834243489608865079702211801755216864756268458716699956923748934798095865183700283472658130855206546156917378739744766410255042608029929990788072737730207285008637841378651609784707453594837087884976349289256713624698426767788411134613629384946059662865593677707650474905395243252519970340345884498624243442361950155259547307761642836721348203509551727353073264509189809132315541757832886308534543140694348505980081292762747227210222692336060474894286068394791180829625827326920430049487010292105201592941429353013288969603945405688017361510953084757334730806254026336618132308206849427604239932731674789443455705723905611317896928345305761666635387459990400085601710844494295530355675265005339856444161967143549980294860834333202181444081075143243294962311589116437039258571480207569244931521725480530658247199652978846510553314951361957587333907618666589148908633298246019255296990197449070347331555627536684207039206262259704406415728627317109776897182934141365107802380129310496816571399546253310701949858138658254533632020418808010829109040878294034337702307969599338086726956087586563828801678423936601339642682032600050660470703819270440371712162331061528769453141518746733071063855404586130330542671553909299800136634820744436729131524998712492573223289950265260156790813584465352953966459673636160977664181143642282986967211961869996575280475350620369528791335702738174066689605310287261143081142807368541480020819447327197522800112725599269798008210551594425687520869120039280871162928483956515690474313886839348230286341583917733744726271761581412146456323292974604149374500963630600360708867290800853879573037246889205410187742525522824829816777068481918606727244677679759868445530989881316822694007164836447964405156536549665743054620036101081378116237114076391901310039144815189446994039742516226263412849317898709911898979622812731952105289241078471382933024022227572821745829602984771832436527646063062649928082543524692116167532482732716568962891827537006181653042145552534469999555061438640665904059941552569823323371243112848169816694258286966100216415473665354066166982046082435659174581326789861770863454319338962267106371845879625230950634403306621349801617008147502568222697584697500998242352397778633091278005552428456264007356605414371755332307268905327892014713130505738256867683497091476973971476182900355428950222962014803052852932292782374618482596761676172487341937272195932132627220620904305402485970858689822899009090970439790988872421393438745036499250713537041977817680129938417935055715971911999223015844414883166212739906773823022583162056095015722174401244243760587504556381879431447157329105339780276768763509735472668362498971386748305718867235250673082337630593694259057321273696199537667939781529098052209114191000506193058792533868529207303005145804383624859678544677765573872838947387186773759729362391803998369141345824835176103530093271725628577502113882713476596094279929646807265164228826085331101362129769074069392484086918007023640021273329012101894703457402279897235077737326337500043056695699655936777763083089144407916615982641930018042328058725167310074697157494186946798570770334591867680673476008607693748109854063542124680362605517620546677470403950475098712098284863349643883923484693983273827352267089028219051757085867759213344112576232294998269076238406681577478274483503425835503861801875515149963514244664401267546969379071656728532878970984136746998877847567802912192114495717527490197871374944917294097218790144997725490874326107049067596847577295319674223284096853580251911777602398550176077289667834153530506193012100303993389606518129844110092914447988300681797475324702150652333161701726838703598937934510908453723143586480284092991185480769350331252955661216966711571098678363985286872212269591400226276149190336410329166590378716730159252263601608934876464404513344679828843537613061655520443593979659079680624079551017275565519932979090832587909987420668576626585789228628416733576934698242189716054514528696768849549258264255928561717863258267507089619956877716349959982527901544656078559387891864537169897052295042960089363736035770200710737239926966923443278523938412133048505099628637745266142690372409825840583880711769841413381626061514699722282305894926079473963303770434383136838851131694797020870307749917579689173522831002962779355820325545538761694046430833955649313090172217951530428853459958600705123379194346105255172670613332357999067124907173537708897964489050530871423857912952364078882027768178084349208404865754876739644175415210331267332436889931972407850084957866370348017635209956862020096532467654106774520467089740000462944015539450778338461772045363780586112274358265172340717377751509987285446227349931771446955115103898767939177946648837243464182480577269458751535783996329755885739010914946958570257132953469077506869134136521155800583100160362915582230497052581350710837194882964764455895384822108497695440849965935728884221486369826873843934703606212263188722474000832512697070958802763420584262132738695709260607107517184928092731837844092262281390945422424260557324306192353622286372041822052471468044201059726930045437383656869794631614705002615294752920677139691216765046557118083477097936882185441977881073669198021726916710086628621631893069329510388335542259061449940437963064247565224243851619909706544047139353679099313348473396970345849563679244814480846229429581585443746941096106355505368434914545819254515486804898770647777202349499224152937291077477308770426597311784086704030344168249995084888939468984012287181660126297812244643310397743003779524190388352256020253460281523058204764577683122343988280731589161756373248682119826965845745393384028861888488021763877422186799652904879875494936198660520017629755860418861678018512279657592332675356196199221397898805464058431178316882289365428610806465311368988952200423823540769800504915724610278488287905608451665379857448674579547522149310682303846835305451101933526460929166678824026144054115790841477998585802093312786258441511836231768282245760092019594784533277633901577138395730669604730103764987106911483155916477183936560456872047087462928362711630364507121690155621866350184587425603092242298430335207469452062360870114426248991761892795639700624210668606153613554153592904104707145719665651515187339244833121576144962431987119507786641203982695746275986791236549528063941221776080850103696996846541124596291375424839792489819734741587354771799066551992515405210172005360042771206300361747022471605857950799508268682105534186750147720953773281858940609933066279439248865541466935555470008929847872795742609984156687782243349133610310426736977092669944896198258138146363837760499810940970134054003642608157112128930628086107104804015476349724861225985197262667110281548233752252663166956529479841360517998210008679439800479807753314844739047336307365609951748198685391106492244956502752233134806030918913756383414946696034270770869312359853333143209482419278839937355844281637626930310184440118324435701696740428581899841530787592091539274876287856021961073340621864737158782651047869033688461370528621131993177044839049190061426386957574545311087022651111759193470107077609920069461823936107253799847686311279581834716146975213965421155108879859892547762463351068294240477524427282337128510857149126265303603409114572503319653599209799752850344514400733747488318977691015093220554662722704018312856548933730414194156608055003239734518600531377032550160637432063156598010531386087037609080350287347579033164202528097668391207436828308112957253832635302515858775403133131544981770477434971789331708947989643985169939904341000938800458001804836515057004002933587241986298939631792729701677652898855858626599871226066459850002004149802658541249660525398635332366472796924015735853159572678458829245770797960898894199065761073330953798086615704904594244671709531733347137992832512449748824008617584104704736436959817588292374271108569443101684926687805478951254552550934110728407866215685667748011227605973059285050605352481031554070309981864249833818333893293255159807012609002064405357927769545109769593763786278572337007159275368594528077586797513441495329792904740080120115139652372689868903821027551444885234010931128972356635522456665880282497433682566860015501999477840557018799860245077926246979218045128668579726780100245480626351813624381847009316688393404780967170493416410433866655752119905387302750341343591457673017967110463455170917281383457873624884214999790243129401356070150227585628593650628471141703397664201332455864041116059526072150673418156329660148813444927709716448408452396936398647676195350495885458990488200294925501892827239675079313882542387561310169127257703347070158970475122119500116201119068998945586690517300744300810272198454166403241016768302733078358764657641789886930415025243404063698561998011981784238757150965633246526481754353394351077898517160716764781617736934824337191647762117226202196360106667885415501795459762305010596398366617479185429213104673584356249306874491498622729708525100153755311363809583642345944507078515985777883775629642983213029767770498350349672590455029108384510238638618127467478448268507225773219538866974374418871715614749240891105718302302853440852517836765164885630689220245055389804686460021768383821334371613354291490100970435570917654069443709310798680929942602231888568642110650670140129256096305706173825571250997104188115376187317834179933793194823871369369165032912289236430858541519413987219732563561473235692731906921389803794838806283123405739663928922713700491572640379965263162998827835218244742318392475500655235356720851741623976179010079026157912704098831636876480525350219005510329528257359094096029465449905106499684126055042047054165160836306496054330883415537216937854593445663282580701589579488089058817312891172221060988687449189727641802347170057599734127851932028214289132300516418579723134492598737206160494930883407161053997676032766172304071017375326851992284459784899508087771489996459916097727451933277174103286081629674794254134231563715484503582376795456910677784126862736582945345606534929385286619584055835527592341494698049465983206809399934206038791162199975408137740218545464127895190321917310496489918036258099897295619123909762545027974301293120312998216407898959457699967010049182248155217156061290553547191171950323051987294670011941706661310043872406824931440943797666658673580581163968904045080615695699112144236644680184709750441677331195447211382568584134595687756342308822171257928981885110106757256164177263622451896658208412305747835788650486209115001343778845045014404745585982262719251081533575734512836648267196731603482380227619341238713216971255048766499626735383272592142403022457548255694117362937927446815907259024105569640518031684163700347850402167810490588026874461413770587899606203438428246592038363858641353112559794943931158188659787526684945800728590675732600427310902018518093165654113478363254245648064128600969766451092486007348756453549011683071249787404536529962488566658318049013863072711673855835123688167296714860117038555782265174541520257428225884708989157768009692870052063756057232517276849616315433541262939788357861684435485596106397444650097068694157242117196587103508195059441447804692501254238284112561911446292183819148076293442127749629370893210859521606492087206620358903566071765573723930027588997191571378788361826020932275393684037161694883310759948080780573174549550265379402964060441623256574108066750430844356566509160344957996473758340042196291118867933354452917477936659861230654592811795645093935209180952376289632060327752748893493802762869180213467110102417732699891868732993066050321152626209445628595882275381144858120852813742945508163815110237277365302119206617971371069537458792300581187351533321958846541849271477113475984240642856788614816444815256996867652257363700620224310846737299289047605811222949884927745104157426435138180398876494462829824025934235529354429860856870561903494559539793062071445899785417491375721550506424089826927960597342255911058779558547442910691555319683714786280921454438016888007521514985786215210925052520262693303464709714215831795616802591074775441976459178996002918486498813985614268588766300975786851977155162236035463705671353602904752536359593053456183907509774807801342787350199018559335083314652189480602262232199427234009596680667903713212667074097040218094364734740010210398892303509257010208483370559929427413708739540708864573272817324303874040483218481492000676465828665033867329619689515920235280078402087534092960750395753230699668979730331901257007899865727691336783604709637480310423648855856410278163753803660518391728521414947245364507977060686267067181044240530445724578771796250068123402602744899585764158302750455285900302597618114237281460523433921745969546410524834389080549644207095818654644349694471537703198674041969941613475225988981678474904729245764710153930451363299893524808868489256874108615910645838890158503146404833300640378317727741889771683669188403153037874414097685279601645965874925846781262228638456299322591401112597645003366860476359418290485702706286149429110904301482774229509102605124471868720659342575516797081112711705839106354462295397907276340539980813674744838081319321448025960602175032164958598772588750628098930748281285082795851509939365054764412613383627831520803819017404287656257860800480374965052414626128363497710362142145197100920988035385408478176934738527911340192674904041980019005792784764747191524130250903459192076038364226075885871598106211032918637319932787211367667755948750046128461027528123428457237079030764989630292336058736578607322882603797606112572546448801960228134507041075326506917403440248312614147201310622155231905582984557656718407906930090682595123120594438172276502617961145631358199404697521891055989460958452805914149641794114316866571951117973994691403505003165162656806523172788890608767661455547399228082419367279034239902800324950633703954083968812748860809348737809621522860468149622197971962105045353228953202424832723010579777074579739424713651078767132987023308990320676707567363426031204955157632973421921146934236767745723534916910400721542623400546403159804199164335114525859989423366887929879721071502441087771658994072689946722297181364580464106439989721887192161697875135676002071484715065660291188724787105265310001810764029874317207787137800411776599867690498631692625505137744587569826383735681853602535115934289672038070602257226225627776184496511736648450208014496515061932313074388532794602598141245598715200634800570994189571204244440216995539305848131089494107302945830801205441006603302650406261294994906171446568199623373342802891038364370964258071974403875549139876107518450205606212711982547836606512367345465677148762859713722335880475945443192343961556578710873421054462171517388823589972444496016683865412068361861893963507724832330345006561209653926204789572317946046821787039890743543578730931428138972835689324503027717219902994698439493173580957381377112146681193416495489947196489805056276999860943360773981844381640634415561039025693683718649001106411345661727968258594221504767935247338659835820621780697796985533409667418854765618135784627544580672929996804243604381666262826590953483981803687934726222574031258176784246598521647654384093014993043011021500759290082608567021140594072339162004859915304614000588237197033864895253171867066550122523044931499825322838491915817319736887040921610404297967979906123713767107692983710725316300497546569835942615022394695424826617093174050405853206702158605071362955052200056597244562828031217379161320195034561531481168701694058379855422047625913922362691612706530848547841362936415284334345834866278110335688996912618182027114056516846819874470309715816558514881815818306428958875071757455979921161552566307846855026923581546740665282164732304452774103783384407848113597014616556460680113521883543913774233472130108710533825953338970843912148760904707141385504070111908472623266753546515287693439435753866363354152248214184391620882117874554805387130355215732059458628309970274584863844336061054602208316864756581037050284571158192248991921211778974992342216758188433741154756811822445646591346131585538340940613701202156326477206573850439933149847361285211564333467608975345094763381789998689229553863040117351157094092397728774625966725956021199200703845483968653315714732543864913473820184330886400260262184943289373535594763303356179905080247555701945272873198361372977347445724679130619921123074127027842882708284273029468340599748109392519301346464642944605564920168704482009713916907692416398017251757927995685593574996836187681720931634070295939300094354070330363076907113598739148728153498214239052069855148979767133713493172313915266186746686649540987098497936533524893710941473030731332855553395259431977774531114744726267780676425861837298648238157428815403199251896007468464535959352515245244218661460142088990763345451641721224842151340932846871696292785877551606807813495805913735169890117022337083149444972524132060410590377339113669666765395878828014353287095952176026603742872537668138959963922000852823700515964290892628085408732509004141568310178396605627515434609605863684455811821198939413775827074336398823563849392449623565018801888727413852031173499905494173428338100541732074909360741398720001087945784944441422091780606591748017845877872046024013098900683160788426799890351618168426242114479206053274143578690040753286361270110554201341507652558267147241135035582144562452312424208124023374286587509471161726968765065769364434871966304342974832016717142429247315653915517887018653683344179186528469710026722946606811245450891824448102494287990865383175539401651022359316873497197093792764961762532827584439011960254483285323187387930346646031708326741644040464819304946042152541898041675499914660160160497489140693387962274904387229246732132357629770106533409348393974158547232996660765151399701988901893913067261422664464735205151317093746536673182015254460840585662823109026214298221106142036514967296457471312616293478057305463851793794035705722350196819866145905581672201938142103943443852588445646533484516336523261859683388818976142911106108624084228286403715798309582996251849088872406244424827790811549809598732213838156765767677466875705280097106560438620468731753396014199373470977732530371932495636142207412810756106435403697760124714759335012105567924201461373070663985229458829582831941715804137559895536807899463926355044109339360772497892777460658651558518168174738145951509751870782123603963161432513530213949883976231720565328835110429031294554548922950868505377712344571965310544936998010304321449141378956337280689352950687321781937282498788961388543111832188598301121313976666826702911662822017977238968549848893706394164301097936231444112438628582084325629990073346210958771933020858301304607968211319881324149103604888755664356067803218922966273241375276989389944620125940006712917676738496868092078418763545297989259780174369071095124225692279325240219451923692743952633763643572691385999402362960824099541481205693285958165455761786399736755604997530134589728845499662776989860990679125298539736449878869277895905533303612458981200798035252056992080901933302486782797693850348696735084467471602377902553605494943653489465080493831304341758488161393426651574444069802358900956128861005598971966439497593060908340302131148263920470376818970896884996583259987571470120558547585047173079983604382831454819292802019602426283552111224150558619126460214117192802678693063728708231152426371707828147071266283303995403051538788911613679171097708313986224963295908653054002552769671122599072243094175997313661719383422727564200855057284859053042943961677930920817843697009941162540141061416929450199957589895189902326404573192285981559266931952255400774396059989498864076712812141245918360656844952265805945619191271216164439635361864827883133657268986428587642645497865245717760299862057715708726617384349833183389609737094304754846831370647796341390755259364633087401646045439913317197757089482588230733420998897697415645059166510053187567115414507591304223942349177099616536603426277864654809817473372541846820683651850055399590127176795061258067546520125470261004266212021670667986565534141243924513757144983881033223267237974944543687778939631812913187542862887499093027822886536767495959016054119222396158060782305288776762352759794610707766293263217160592084684324830110318586548631853755701029648518634815416517491659982713556468842146122015424615928457498694870832435923082076080576067235466544382041497020389106413453549975632617367425781454265790035924368956659667720872174651508517793888814374734686841294459755818333327028026742910669070249254786997151976489981620955831437584523039917725257161149205616587428865580590541097854173125255065226538905246934782981449462784060200613287379238943731746764241327565396366778837332613969831102074941020020039906065482554569599501635417629756662235318223756121118399170994157140847825882309023573180343168610225092504802644170660753318844710658064590009707473802804374134774044464680691481200484320193858193607209982929086649321206613137357575153326087968562482529139640044680549866242159504465695058868443891692977113967799407558009160668031364385036071951232409071029272879434796758414112532491018349304078186455953944179225442739294808927682428341069061974150523637444224123155644767579090678418877859540165171330627602097295219059537041226028859035073441769658959677120557792770563933175932959170814545264121544792350124572181114980496777855219551081321474886012902329530361647433960561938773853863404128587140548882007521641236346265233539268695053759738494579621426419977887243497539981063480454516572570422513413498996442049315092274265424688995255048800066841106816136807427555960802146500963529446411675732585387242127050924343911105383669736196323983055735606385220077876083569183046228566495633053807276211543037619183809010663539683188072040321559240086337611560360420104504374801428280672684475532861072100389137065233371559618987374851842430434559402310469589021001676950831848267859100466208324469245399695622319172383205925329323489872540151719656829114960387049046094331514627717260299246735238234311470109884454740492998002876032007945174647592149584827485520550313289980736544151354603824494246031892086908716228152388958552076652906456234211824952825192375226858747786814428821354658834989427530463169551949185517146834568658972790313375088178390831010883975720590596963947992316259706896507957359534793600275027555492016867982959602047097390688666618380088884541438676927841336386890314898134311473256488424746280718370579412757276828032455199983752275013861983268170293903279041113031293470056608402891907568302093981715536789281282046758106607541799714398767437781963124383221482902444702553400361154222421111432839255961591222546370892571209419312260469119819697422145255959224040160746009202290754956587925191952658187999350034916389388473132451776584956804784876497066973802269793091460633465650543819453215021968649608299225586495629671357583129683257763561131069452644202730630563152986733052371534258713768917538738870584580753537445232359173047522335915393672404578955713469885386127425654105679551338833199795793041928270961338845266655562344811297669913950684279491781483979298720645381147705490218383600998440889065249044634388524653477224791851803837384021715251733245344166552219564559665366778374834923583753351796475770519592973453219142799790248536340759191362372248686990088449752033732890422130804250114058713762017515476459148125681260065538239299310209635733473393522468207856142938275439482000634483134302130749602947676481148756241118548102648385189315467225954893281272379798267353830185354036101719976185025954477259814731884669823487024186694391319851316206617894738503264484912265567144827425092906547258130375295941238402037963264455062097699380941574032859722269220556584030090041910953103111179640953667970603549095031593173841486626235865576314759416433081181975075221914263789287351755411189262293962845954771422203339193696634621250823830209795396460307547212192316268037799816346144911182637104727965616852676739949951832023937944116350921333646138754756857855009061865752464808821119555743484474186289584560399670702166302053870609323297988339126192691751225329177253926803813918007087611765613321010543574081964026379086212818900325524837756152208157508750030924495525720053916444935616456370200706178453366476708183012234387827963564982641240809104712127370116639427374091909552329975341915730410552059149166937220166881884366080284920846596575029442988079130273999211752492086531182920419190932339485720724347208543074654954387655059810106368518328583909115739732476265926399265871820195123544044511143826699978823071000435117030219696545573129468737910327411674373950014775988053359701876445412996526017606365620226531857363235144411600068288260181234161378882880455214296221905472261703418313811385469107637952063868112293195554773304829612375615625945705726709319905402556565786007937116690476745660417311780128466612448486117025870674594433539143095506198435742669266565903440713154570607985824544546968699166926347463387787961588780371022888084035044672878281772032140106113202175348958510035279864428291119348274912562665026130125100834288600838127082590171641434821965968043638200891387206483150047728091294025527495142766438941674247943778650702921131188125910246208586062161984102443268649533306858142686539366372088428810394628547999227057697268501545847703394196388022567394896932997906717047593972076826985239369353277577858087641417385434541934388188038556007150329708361535418702956131003579809510698139150332324246998003191017707330123339539073722335833201974177158713109039152533611809678798648399512969806846422340967621504419017502131851802345440636699732320082183410338351659248598753516641477831819912706078747875579427187305055895276515530170598025691308213331291015454971374851422901801303189715150213904315442287218443686064225987821673364377422217461431408557053776370496614766335159626373797549884812027378737090444823647569950914243436901680992279479984517603640779594270833345031281320300161020271732013348302029051069733904304733858636427496636291861284473475719955505080498628250494249270679909952711169233293477272728731564173694048280253757215855292041712355135510851700796932407466430403607551150764918079719344303148832158484450814341126305780329844867029455664605110725755283818926048679065088595894495370125981662745914136374456816090835031600586155698396735681169999106010127163008709531777872033008267892300991112683435544194416987135736442262754807608862296053788772196342150493902822155968908640886682187634049780983029602856387134436690768682433783819231722365048024284376864930068856334656526147418698593885052653542861821400061652157151363564156030776083349424420534095767186359231677311363108884543183654401847060813547669961117658909661144759591478893288438283817195785313862642406392705039501103141427144728693809345163728144893794788046103712238773658718378725238623478500403724974623481610436239786557243213019069111303255748532628224139318686343067062948483037400438675260393688158693529524266024388689394524207574101148001209033977840271118787937846813242086933371700807107209367250153582572299301241631588426580427920547142186145631099049206777351698143701421062009595478702318224001744491634999614453889381194059621776567171840883117341573883894536076337557265235950397728897991420621875566656759742834021497263662024702863065466469214839967662828688316959676993045151594964536000423530878165634337406167387634778891529019703349627710528799872986284916877977480612132272731096748869094210332777556972898237897937352175176787902953105397898868122709923494817421349851875949310158232420665551709446627536495289913541124099140872762712305273574301903020414822161542664991685236685749598679558288203654756246382788588311925697085246002700579958955466319994769928959456091935338277327604582648782409579384584276851790847958297893183664809088658625370375070011841296268999095579140584440196962449451022044898176122795231938327616287132994723236266819289342666568364239386194350889233215473535438972431115809756724700340309550782499686475449867687837030908617186401787991621707678603919555483888714340429323116500724884178284051822278861319634032896699049976574248204021764486154762736785865212168186836352472663284279177799775147756396878523167623908033896836306494104838861145231675166637956967389162561475328653163086662053564503658555387591193120905839598670569638735956088013966188246224206311414070364081681033939473680684544264342230782748159245333887840840374031677974150048598748864948634836793821071491873954716458437110633612112891023744974880628586313139848061532874033241630783577910337470608726352543836001801870299574153899009729235894748719112289533461306817693751331050800148324225795244931137322421440437713373275839173364635053865573766826129155822151059658325948157121978530318072124885485035531243959263912109192738030331630764928571787793363784263004026776387649887020266509085580436692284851663764960219682048687083129139267043247031563035596774039771498366736688896961334422973347390391597167460787658429880829077701828205475154401394435542404380627248828865100348315696599201306234873328214235837499681719801515018566559594911392440307156840001987768782080690026827797028552771017951354014701974482997325465680404435837641560688794916306580236858082506738812849314217339087422680585793234054057602918866435321636275203678996510066210778713457294568015643599650523677088348414934114756626941967711887200273312062809353475113740966266554747643273820953317436868041623666755806331209493487563475142935948614329220008843005298062909991747395356123701355038816837680765502088392020387725608407824801490413765520383206737182740306946216630651137558044320097710599849676407224272464643160822204089829537355461298301685535769874806934681518504987291962308328507228819237997000393171076034402620155360645401164687975682838780517753183306698040571351950701793210867245655331839826913652775008537954579669870919265568190029783986860115021668760128907867207468165137749436163896727079468464689098475894917084408856819419868539472773092888989012510193332300531150263812582331159828594534452534211402515413622203531496073315490317212685924971566045687070570888309500876156391086561984950870085696106739709470310114469331621849190065807658946579825982330183964320660166863911710375523244641737038006477183227295367464876105714458131499304638993651390378438739355383792243375777310670223459638518633557883747076189722364436489783905871929112643688382794248099268790068365170180098562682293101092510310511693047878123329707187080148879341392805644844470519289958308749141540174537899522657548150632705554941447556115425419069287884418015961745085636884818273795707258765739594642371436573693167524364896886657347129129420120766603654362258269936764109064478081119840155792395810542209437477430664710420964198491568213146676094841272736231550999483577886414658927196016022509762790876610517946554492486451698624422305300514682681952827397976948646597035531638731462097623990385610484675973908276501783554985788384903194416930226351132961738039954503627565339167683560685399271386261091948509532017717332694813092192254985981552117964065465294695365641060658745018854420980242028136641499754023312697170170970028146869039447357603796576582850572660026210137126741959974325459491638701121883641086153840110423239415426874114830164657049624792566644348153434329825613336666226954450695477298465923474126656805339589128549730485028742763571734873681255680025081815093955903022111480796198611189088280493021523425467394109770652744041137422385502638479475332549881374655565879360613997584811461982047991379279632840441699628420651664407768391185597209426392040469162349708823152568160704547884804263269264243554552697229574361497945632554359345818829407975485191401815918160227805628949613760770944594357683973749235170620298309783818282776381492552281941208058232532211798734843904632725730676198233582766031611176629859895913768173058546930066395585770853727273852496639013448849875538295942310353487559307784082816165626787804172242179465748120829192573214802108727594107102048340109567092936673131221002372070490184678610088568589653168917042405057862267160400049168982090362528144832876204833249512638854734574027108573407013280216259167296111408667470498874188412419876305400966344890353903502808094510133296219143091575340235149002262899459457526980026697926135911361861913273301659519320750054945504532619826492389443940987359053348716942861165433633653738043360259663752850915342902263525845592355349871200599795185349126761589301927736132884018271426866533313950348813038258989622662974580230810271610531242468627900283826768936993746647489734669226268278020775109854895915944271868760623555009595508683568690657032912596580726758226778372341488342316070541626168882449143794113878894071846352112823250423875005580496903154094390723431434657274137057174546846189549727539067573293755124461308032560556873111849904842731416081939495822658662164939160634922253405928170358094408168105898256738508391454704221413113641150565218220166626281253721880977290023130280565477114731876397256047852172435903194236641819227410840784969318158133455099542531863143458906870526963647414692872817704407909004146910103705606487488149152627867420224824920823773758271935493394070160428778530368718078970765332640905314046372725794553965819461631412437895338070869092672129165216501058951234757511843506700714610612176699943490846290868534374541922931931247285907140156899196044703878154131471057206765084190769676843614223922777980415661605076533098355547446897734350622876867818618415239769160423838281351011383772672785262555171611791739704802399302012451024578938930757455245339030068883076122063525372428031601338647535217314184940102966010270373877912512655981035571749746987977292599970137181411258966920548808386487464365893626073035645351248728163817742229702055548568416119909709117283739252806876410539555973965845766413360500309734452221369975639020054301356545870127072045194791863743105903561739727075513492375950169908139819193245768096143197864093567868282010545389906281732027973922046475898997561174074295737253895142309150635165386672955392855139733195546033270650185315527083159433639431018389096302717855323758870485238507339397190607292071484209512740168114911213380319478315072369790947425486232410505891845879883715208987985559250328079778093012063368163046217485023737213672766369157748188662711761450913768254325378937997882327775122179482164139180389339641572199409498363199522916184275427351221438635486226729820154843049217992504303536244733037071949563213948215897282444295499471129590286855604460609968792155013054434912495107158787318566835101649598339474218801877737667948949176304126318205605375327238707087102424647401624820316503117868956687578706774523110060220380855362286483059147481068192395798189110216997795486281339496267930180405754144401176394083605990827282669021420784029495309031855395930945425090813672488056797468634789808595264874489652441377280746491569634251706799431983850170960519666890483264363418070410600281020735051461476895877555056162359775660686208522099578250035534099638582737786911786552154612905905491160386277428750942058390143377451839032150053122346868236850508583156975726765339918169395166224296124452919266633447852661488119880959315056052295444626500458715767771912738240703194190714607463078284534408547731512182982188762079894028886123942879783752907077480321944599384199125324661285809296795266706485473007794793122691003702952213996937020048236911901565638452658116062351482710896844511086238640350915149142271699440441658956066119542005865075450511743121508493032529171337059122049684554906331718375019279713848107917709643152255949721713772406503643052995121617343317917063149305719637482550886951567343263637482710874008464098815921922406326179820374878228691250641336943171562875901127768205240752646006028370513334589153235662184327749959051681713808448491072509212749446171286241118078222966038622286150174381851197965200319790635114565133891221342241453035419323618522919396265706720457460937418263307163116771914015497721683953294907993460374124926413843669460016577510826625356817426480823068401270762955350014517543519547719482635297470788729191304196665476195133872104984377043247962332906121192503003150846588164003774982223767838612817476047167703783813627242541652191780648156794192276866830123209173171130699164277622939663850892281790279167406433460511870671780919457181440719068286889260858945493841454527650684699911172867173010068774022384802364049959453495058265697028781316705700956467052843543893773455017683705203172458051407298527460626798043764286419756485038928970858527293236830126821383251632609956429979314158614185187681877476636787392536698567504908808759142044105077439623452863972995559321286362436160487215450852639730151900877027971335458115890335806011350710919158348798887042028081486100863649903508693835218806315198078853156814053996299864521035563906806170585273117418549904966650085248430332842340145852595581359081771498217347145221006880391860425513517549368179170501316130260729161952302689134079448213054098316129282893631804484542921468312602508399180967758424162464169613070252229931686385564897407761247971028567167650098381605791096730301079194009375146505603655062564668612674307184195355245843359569682717127637723662181678737428899520979943771648098336503855824976338703058292125198370919179576131030670619105552048610297947580517496925912990654135653114358483519102794492728899653793902635346511860427718678675771555137228814461335011069272184548514229531329483994306935585418487871820012102823434069241312667063349974379147193636368621909325262923304639036637817361159976084376550846499064117857361288028595210510622907248482448667735192430490294624165466504279347816712349354884979176181730058164870302444981986851448324552065179158317959033082135052368181366688000006551249491076137377884710086401222860244926917809162245353340441156116046776309886339268439838540992559713417904264401495622458356833840211974629945276268986670332702589100032265228815460362446634773163848184301055697503689705618117626783013543061946370246093835521402285621191183530631259683126918239995846514612594183068975420803985799832517950533358832268701637151731996064595854048491617900195057318092193287658781761523866050803294562395707404385738302812437592500129488190485353721712775151437523692919745639758292604134089128639079873110623021287845225912198983008740933619545293980126425057028322338281539400347538242757788437785317700035693937163318306607702888144626820357547383004392024378233651206481959757932259994222544122870444687943496666132645016885230112053250354058842983398422654921026822604235550992659038467341538983532866486935607691398232156888109996152335256521503811233503334737666020974405766102353769017152747595915560665679611985473069967285929817678028553208476739683909896069934365929660544742805675167651221115312975943765441913663690654964377523168816963103494789730735687284592715105858869561638100163402137249317882967943250799813585711615614317401624660899199205748915179696995559893667850072835005137764029278727000788379206201576700953889654753971430277778034082910659856951916235542040414903425150337668769949261838926073528130667237216543722149215144323875785472997812661583495833924369862342539889932135176585884620371070121513788754858734005950407182135771721694631179025116353483936746811477161618580578499598702011473904031080651091607381486033107616304136404319727838985844932111314373233183198682354065664101342664568634723994130235649220451745472262981095119437030586946217415239778378755284945223931480799901776306473476106131734029464797211795956861924656518017397469090441297038221012784151241840254070999356908452249328712009300418872288216000969762020935168919428556823737852578981088122857920225684008011596182090541018791182139003600642828190593949089562991566910906213426421406587853379842388696225311008369307853669024682803681199134526687903064891285384449093987179197779681212034086888702724089089444353646149766985617470639020143252167734330001908673397695411805299212781914504165105163552546735033579023405661178319624342872511444826980131768192700182381620587810920866371868943568380737449212498881572308458191679563702605329824391614034978178031127736134504096216457296822822742053741722667853095383507194304316743973447492033920257504026689508538226381402567297428486924357941078196734617054359454443407729740643633720215481470051656503187352410901447792767162857367895211566093687671956967319329446684185492247720378808131457683515018227999808551677768179142220362173301588638305291604356702115395175219135924640799070435842220232756504851725019782804398953646433583691257224166181498957354181037998650749047966074912546520058095504346082054975304095989668785018226698302472309479961983878710976896952023693585000670919939926040189924276842083854660473252762972110083814075829355748766211291081547331459050768765618201549695691540770808164122594236538699020811244659412304293455845595121906997205734269205222455451663815745883018432543724420467664854295184332654942422975387347687018807739246219657685489446015680609384988614455211457540350262055040152853043265487524618961213159814668023039097553169260501526261836692248337005617076709961344041628865450665533326081491056549565721479382895795843752959968612616331506526312345008255358894825720261604197575150792576645720495722048954924333235458260175892416146953869202546165807560388260498067243503827814799621996682973902033979328762594474280506565417431526789428000262692934273577609068743411506239743905593577550336399464408795407696303617941177175645003870087771067907037948666838428526342525401878376514706825516919811564796535726900453652588773923177484782654195190371556879087392708356895155610376996192667720573228891729515903360762103538634843246514424889609970619086299756674146769504512019589595726042146137602761287712524696919477205148168425897367189493696591525309530527476592726371571838039910349119168042302508849041107670944683857726515059554203159077278389194892977097077975843528756015085415775004212813480144171977371374323619712645993496150561104793045394865224566472599950744199983198926455210359375827473412265519279722840757120170506817724232855224218241512178510590172308610808083931707710617189829595308956507581567910164861445314631965716072646185869144466453034400228118592782663036161585585699069269028354118954910190506679856878942497066333508899119790015440546456409547356652782767098233278378908877368099441416118258559832984214180527110970524981733455872828152184718781066515484443381646495704545682960680106022092632827617430675704266777295884741198242854640370457496607413060040850247770277312299285847649311640869893806067713804643587905478660170569009410953924322747088374610178318461304030106777878764060143073255509368254508642153887105507424958683461650621268562952397336545806908409110967612229929861205674170783108954573400840752005354107723304398290340053537560866411347580783496802128151878942664330072382627603817973511485880319266946840127688160784606224344950516977061457244869990472105313962575086265366289388409404850475269185745757736922400791106213198999248856853247499972069988448208449513184848280106489878391795192668924190607708150145852514928749859536671926389446626778899552279785753887943554761520528900226702113130001834469856714420136412330961187270078077713704855938114292697953204014875827484254344278319470054305709119664644628879014189405109455963982360189089688790306954351203219445443138377508515212211201581046694157046590576921792121023175245638982889490329516851316672315018185547032969510384294263183108327736779762928090241091420204564572908701046700105310443387837939465040235086485919170259619666302239521466250938344279697566948795374694201977322906127961797141588519661804740010134039008764472570379963427567722978193490817645494644467510308245731890091604215492683668286724437887221718725857523846428842515512271075930138183307209752341158249729617743996399290100628959117534182331422724321708752384980686127416743519370587447049461709707737509479622281997275505109860755948496758545174305049965728568463889635851508623209218577556285285262223116047183900139312344427021250687144847226278850646197506185093282106994703026624465983203387083551773841217166825832026674564854963947030596440852714701711111716213922152857347977515406637085219564465940594927318454722177807943185812687815136903701193310713920142300579046576663966101710809164595108422030548317256742030444779948346852180020027671993107291700987936695197818982313798402154973248127495362710570388425494596417163149370006434515802447477044533684560554633867816959551915698514521268836284710833189683886156406248345897299545226354929804278759752766195345222096299129641233767152958861817606326920192348791170005866207458058558636933050738273624392157797179431064290462464409995988525713368119169428471802259541070363153472557849177598735639777685862834341819332186941799305369681232009447286749864999570159918091969341634535189492602734854843597579897664941554715375080065910640312599471595152904090440230162517916078608515777986868865561733560934458579038703522332919745260999740435027449507738243214606056345814196596642237244549628985662830190850182845423322144974579541542727704281241249548685389108330059586464446574220964620960118344280962603727629998893181672389642724140045712568044884650517512861052502089833093161528132889907399655064011503371411957237398312427145863833368933801303103086487622494857073867045773276116375805283933376835290079489242282805826110956678409756827493283907824743228070819270713053951710047661109349870408146741167882601933169518970560517148941290406049049665962003270960034248366311859145389282055761115903676127027630539685410249640554641235985334065219268682921379949926866988755215330426187263760529691940014659279766931027399367891505009277205104208071967679482766806784171602493524999900578791663085773377524844161430501745058728100860825799779806589792075407070290318717066311204245593926740251065541043459750047462558005262289618661197807926155426316842194364876279817664918419291754171540941950092298788036796757958895370890846855887754681803793409179029798705896859296829600677779594784066643790247121502544502109634737887921448103744503854307817826892247128347713934836435765659845865574693859237715411184744614382944827080362552467524129515475538147594095548549543716456817940923291399163729455802266759822374451859558271055264438068149754954017893832487638627184694985177709795224803290552441977863617000321201401933382537602458252865091860782484431349768268728905116212560498539739638779578917491793853262770205284729803579834255520314176550737505849931885685791871031856245919065159024700210193834261398636372297332263221332504138332890836667251256585676264167459384388466340242291053754072017031975979152563945612305835846614608394439835020786977560732873338637583066023591196001084661435639159169641738670295589305648856082795323407423873042662836047910943348285509335573147367340433341956296985703397651123732625282784934798310064739747264464032772713423677259693587355737009500405069971179118565398753784251970803729184748297696868933629615284285807733167470661544494314170736995894314989042738384203421516106626557203150312780391882457945674129253700473775005894910230665896205455113212585143882964655287556398607207561506710614121627290102514478062522605394642183738098879820242654904336806360606935526637017757410323626141965094923586383422363157949907294008124250421193533800566411245559247111246586430071301362518740015517703180833516428440337055037959369537721347881070787993886055492418478487011896158331116804469047062800119698240872242916578134242429041839670397496032830464419572513032354139451205454809335410889922966182154069631250992068823446759338633142756247011661613396159314181399527555399286853277771253013476889017323259693175274846234990686001848533908758552680688440227903579573723753430685183896363877712897117751219198169612811917589898959715660919531627821117890087353850901071236231618512691298360772037883721981833105130372279187651564249156853970186181509654942175125748903091502741456502779789421527296797416327083202846593110956856914825524182709804601521546819252421942287967386448801833107756646244269615436699208898731841994417112108297975758207887960746174755401617964549443422029457266374755495005870187932937126590100752524685905158811625065883103963601356849224714208105852260977934128653485920846913990778875061314589330524882241328862304854541030838339395367694610513674128436811747105299894015695992923557066579744336933343403894190988297390687329058959269865758992818359168628294366019104780364531482770888370023533614091556283161078092071972091087525854981206194137123445050123965104341804684815541363836773368310874174464067839247478225613960997918613605679538754171220831585194293915914350197705480830267414838390901125372291076720315264250949288319562078177001530689574738208390124505734212701880165169778825166402314847015886403294364304287649198593158204979695525913407583021024045522084531184162511032755590295143836085394124545921305411483020825261952644727870432074612866741290739747566214455868223232773692043545432932433186669190783429295318683249131919808985996617604430638005246513292653638136250356106259213542703916968362178993209039833128600879111611593939308438287990369637953909661907911488058274085790746599465215372689348248904018422538493520700248291457301162907025203819376857626559801323730764790570905215837358248823279884624648933559726775864353523385824259028219072724516371766954008744630392193502484219301485344961456733018970164499652957554756445779079370685934453977521596488175392152455144256318787099268826498035976476239663078839706254694425266463619187874668941771176835144588435294519864835051506838815204121151446389380786084995257925550256233918247110859238216748383103143252110913837695616241835189140647128070457619087924884017717728137195438314370146882837050489721304971108645128728936947330965799635677586919392797761072979530444994383798715893266039082590214956149208409897514730345884821054407165250356682335448418652256862162343850668412412009139957367311644610162014760100837909706938577085553617243465061026326627636119417192039145964812742879907545073822540198612630211637622032814314236543725433336339861797746646551519325914734127478012296426154975079121586130235819588551818888612000191037981082636757778466284436268454535499110159199460468110116822288196265776477334144194046444584652409596739171136716875804396154183955424709300733895256842540735194645794132281516181276786010298069863077568400733003316623202984431743950401443955480909509820462206460490235504671257391893655678786261046178008062480025631420206895975302908860185120061400628140970824520009694688562569233364132213586234289547676080872481088208901124311939116281037285808793192842583573883539121977674666963701176631223185823555220227958524201825926725483029082040662302976025822463659221099361743058331322029067771074540271938752390708853466191131529028428808927914434934650841984509309503229153501728094496892684622614648554990801101626830447321903238259205578464661666104132161015382048428810559105537957534660054751053045717181399618610447212399503559663392465618150042237521070116735002885052959248669856664969054302608305497152555296279829907229685717116531023303279745199614109294562766815196605678893158554663055406256813305082001784457282574643708352953244585934677635051689106646776773417824825083364144178319366134296983357065307993867596520088703842629939721941890715592862926290112691282804813500384669997718577478612584129843596737469092183159403733289473592940947877530265611504306906092253965638056696597477228673445875400313726725098062882803047454665732329486849212416005938263172752922092221127090380195952646558749534402213440159893258373941962603264730305730841545380906778512012692774283400462600118971067689838290593860005120625543721569911626567580037870391909246819880226279663280778712790379085888468162702957639680461634386438657859617519351084218074146567378358948586377957954096454978927823107092573102738536913121689799390481102950033739077628355045496470894370592647932070353438799282789766343281595839306925937319756108815789619687806756219808030055861905191911533184294572282886685976136482719930026484950626446397161146601122322643675399992751558409548415948658828861489022249582135835171699396035723629127980719601337110127690283677086858562904719610708402429169728086311450351426983131471545952407586584638554630581678441781983519971403433468689451968313197477284551689179743867622131554537029559504650269267789888123530677669564222569858462930863839316158601220949292205729236176944397353247414056376699026887840495475219256964531128273489501246863138154423057098212593072000390226595087781247637074048463457499659706797683120344035032773192902741485446751414839296822987793545556367638132956054792999288323074449532274251111778745107542798357423959248857154527357160655454117819219768842044897693072905118951824743040224671062121538520642102782470294502853005939189132820455182050698865293310432328255999323645742611041729690067514644126097285667731901130439481063894514755190037063009108825823158915783137575364296877105681239501386996356340973684118201599721544149226867939953226434103423514639352517616191738854371163272044116238961945856210683183511598402865179425601803665134986198956642972292768055517114899160317619279482817638885640358343606667367474803196136308275255023149353172351198336664524892827862779063291780064786038338193422859749925874571540563647757310549305084499380607221674002280274612700772042870283121033397257155311175847779872768242792121035931762473715585150769185141012929558678133656390106276959098039379912667182036884467166179959102568707732291578569643146053916688672538943488183462085705208788361256857108272446248007217090878149817387317965976826928251683405481594355563847350411814170934848160968635183938020512494262816705505931647138091796811221626232460146984271651908419935289350474162500916124188514060870304232459798150528685844729961039560329124608027867224215050208979747974013925017632238067775746442445089982961470544360239692604434589903707534662231854193008116778369251376434953749098552945525825742621674540180249610123527777716904521619262128679917571320514409626595366846781133002225572019627922012682535114507321399636863101842549120627247663317059754685229617523371344437607168022729165388346017997202857013220333763285707305906455796700647056557950619475423251826009984954472945681583839108990729899582410758900064003608141266753593995686914523560853131489303021562660295718460927870233059500661691292919132678173984585552186950548031899357127599903231245013851903456177993962632973281619497578221171203549790285240342333222556222460744919109405851522483141389417277847445117333844547266940356215580859314403251057441569841419792298169059449171813380579048256557380057526794903195284443201857299170901879417154185340302439766379012202928224212287286029243856934983408347069832352548124956196810830160321586305850141724942376464808927385531458898455410361750032703143164993752784503811155858256979081096185791682465616623405790329277894004542621677283612552285378466667191918018089352404337379050348606689449773488551243084449776490177657311363444009064639766016875658721812829770215982419062656814299976891968149017029603273583116760634894500155013425415419828020640914503691611328110834960594445346215336770339899280644059665220890203737321235492854803609205881077288015058849337293922732736141794089851221241850360957979750198111754709823990141546758274769763382218923283274812918166095703438466416344349486792652521352512165166700248169670129396004143822466668188553885892211780668857273228155876202248774982066330604848192976285900365674681921251743542863211837699311514677876482115274229194448850819234324175688671652971810848640596292262809175213195249556233591567204875183979186218792848402212844213262985826363213700180245207629451535473064282517326320307764116843195172415253732261853136972218335378311435007945118820196539640367502982484441379623149712495045644295364316053822558661012169040174627937143239649521617544225482818557678590611457575961126590487343047297683137704406102427990075806077936919296290318828295477632179168854827160541314316061563061422764180960397035437254243487705040930398404698998469245752789613765732989323436248802303327988008292862253948551699801290209050066464272801863910912399399837731133807456702543970010975216356873854552453883022821814944463691052474286195015171550749593339898283957225675752175487689086348204948626240458183491894114918002265323173250073976135401972960022071541186287511890111057036091363816650078649527081790050287514142520656686226446666437883760123749510100288794064338788220881215131293720320422318301661743584416226338786396518108311836243391519382875135034499191330927850728794023912367625546743956351857985262477626770693724972027561486966719704531463097218101521370446329076790946345297233290831002492094794483605036043703927420207715604213345108719333483434111368886269151166253664511940044642877105659939379131112480757330058851580344704840975121173813765139101971548451541631443694449526943812228180061813220529545281278848313784687083699415692687947573297407489727671911507783057979093811778296388586061130321387004151381101643639558148372366356305562321697694689740043508122157122727276945939258379761801294208632563021428464002995328700181806460103369484037969531725932676604638085424821412551533660644018309105084012906246289496201938885902145792395543856650841742124340671778425852729506419232652709104106130574148138360499482732584136479349247524286083824728096353683324991314800612501713596640988938625653308725100137267126349933011045444288585899671558354934652971313099225781505900480832360682523304006053811241532155953052144123562299457101853508518492573911169024317332211324945253867544065460867417722882625613204454417150894031106226252601546454547699195062055408009373416178315748920356577934689254914285985118619225588280914549686406389690990566168124625649903409315068712935614011733542725344632116145511161338434681639819821120451812573737204413847576744327464864130741790646159872528458387935973228052202417364813362036754723885903314670134131146399125219912944259009760863448334915028559925937099113403647947754030805347140609300945033072304760278080636749908749101559385872205234856868949070063528095734192403918403146134589803728364803826976243339057223729878562833237473597390149925129791849745977150739985788332426355291610962420210129065854095637102051994720984578711316497975082222103578108599282762895178619050287450032476222230654177665409038442710156927213284628472226062506412072539571873650573596536092990457138092454043959207931914245344707732203974252962203372234051749397055554122979350365057735578398419933633452230676000393269496832235790240378327246875375853611851705321620267037094510070710600952326607959892996730210273133758453451254093551117127152079256989829626483292061673036646469782756790329152417622357419461894152509690582321953019122898094540057208583684407028047669037993056749732511721843252681203647701671493234379918353016848951819760744515240301719673183210575214179014624975890402132299344885330283073283608490057540887031226265291564434862240422803549338107149237883426753261260790649104935995491324073258618005876424210747114524175229555303724268801257890949019990879113486996669537638312680447954723914939563917831494264883261604006586974108291924856384715614197441324340897569012626862539870247609548555505650764548227932389358135769681509068463267865515197861843471650021654313331881330570946171518914333971809430235585635432440799601933860243528712867946125399899825444423022835486266262940864270807355826337156122793570692878927465777239180580709948080319100014322693009155461760318581766451383117707989029058053423993463565764496089520314830932578375224469768244374607761093371479743420373742421278806356363731325883806170381022041736395824578931619632512406019702494734885486858705540736285515308547990916186390660036182265668445318033867922193562312252064442659417290865950814023842863839831173623179952600673654986035632694530268981569038360147819631507365849105315562106653818913334372627495912200602670894312282634161189861736102767833035795299973706061454387410496008233353076136505988093041386052738169865324492164419663453461504826767046786623695261819492499210372866795414596467285646619882978488678079031599000183111612172464544638269172853225246917070262482087603125872218624287846005794191113818221017751648753601892859273233613521819821836018121700012533045784155389827123810598037694793464998253082724355830249354618030309925013463022006941288989741229577137793973098640521995501126118162573062630612198178765647609085363989552835431395711606927542112462452880498866199965950732637880983556825163900133022644123914936523232224925505985268722550977619873148445306112653375380601565604623530963466886345626412154182903338643644972204957677428340768594090556560177073362806993892550075923373285465030703707067171699411721670123820054693043225562079947483642508906398877711773477955851607229386952721974918461397595985402136478617885893841966885445386567686150715837196144927278593918429273658956613209495068761183665122159013567317563980645499762353241742834417168702082409377877517028744443770852848799789978110317212776460681032676916696766980267316059046690618442402057837251973177343180999293049760526949533011626988043619600077277217840411503228529662013303043013670228150417653944783965943084458332435394040252823002342666214916323334954814363574143062018015826657373413247893900916142222512470596220913502391561944629185227574330095211363424758355835208899329925639877717380872517283198881949728076038891922360572892818750671263971812219713754216645060309221048588992112198976593162834883935098224912996308828299680513171297834990552114267280289582912544164722133187576382722088358598844217688258169038615878422988259258406055204333344667831938395236451017909079020212696455235798757787983085634594300443558398761922572794348278923121445695569385847057454048567324803058293183501716608168121289521950247390893281409066338858036707750722052800403067708922508985747650914139891642032498010856783731261372177226727482810053519542783699355662058184274130387284947806350732665393868837905054888767862780634313080833719275534548415044336586527502288834517754681722770053237768751654547914251991408369418837182326440385537285972793188244243461788014383034550323576236929780730789727140094456844408436886118882214006292062976531579245923925967060461546576182421622553799580770273826521520556774054219197825934883581147139452512394585624228992314561258816206051992849422988717903186652224581080681574589452938787023346418712191676605201246977497905206552669930978204096570503631107499069215290926667184169443099371098176441560571111873852286136255210872569935000161136512480177709114896859580174157878127211917672047710159296383068140949478076932222243755389763786558970377869149813546779968464034619249828378820223282872397425882198669424137881531264965666304444415002392115997317511311498312355275771891861242910985473270411882605223481833253063323778643032000686628638730689390617836777723745227644307554594416543613567487391859960964956907126309216865517381975599215865872187996577286755687679715156616818452271717546945635034774389703298397745235726262663623775946703313024258949978467135858186265556027965336727380125077188842031199953328874610788230442662972562364471088533110242090646250231443042934121068682453204501137192408845449224111546197742781213725213010211467491409859360254927139063557302196983159254948624263752159918530403516218723366327262618396326422836748482628664552590097637401243066949441599035942425925775381791066462523379639289719228198447865283186396697432452432812650336036135878522433796313688541694616191626042219628224989381802880399954099327992622937596656521834358364268338057755616447638215607513298077827424197883232958835677655972234284358523372454329207981693470260331407422130062628294728888445478612909328868823394931672238887427941413478316964175254146027988676749156207547667529252651383617572921428373127666042123889907280586964643511735120078195907910922362220445775229853541049979293570794621179988894345477637331758311928337241496387750034335001099381025920278488442256433129355209390190372653302498806133774976888786853940548480433914453485044591900448111064462870773778846345554868092713727351197965077207684393079397888029805223975549067358855509167229662594541084421092802837357716522846856700591034609535354304208915866265656761006229471799440221265545685645472784510058552298737215816263460977944253394105685271347239071136266633617194039198832442387161453831969674981073832159906203645329747823041639934316209647201178716937683284763071330555726311472242872198736496650839553325161628049524408477286058871063527711916657350192364037011636804477128135714252553185581438325447846542258730808473568202874090710371790123117222470011041349089768367768253619578871354165947245659517585867832128805023343598311587421016703653481256831536401191799609523581983400773450353293336954801291288968277464376936639133959101935692829614098741008905085661696194429050583717258653906489574890731031148476683658698112169973462720788564818541011444943581061205724068069879847983026656039502213460515019480886341593742160958365199991505659004023280722583623325637752319351578994281586430743290021912081780421476084089957868091490915592803665566495906320355853691529176181440775928699734807873477591723770744269877739930547120525881974278132478096345227362786324152346496326350461431554066467170018771178195679192767785750160549835364569568359272858899149259229495264042048014371761387908098682589246580732353765072857869340119769428255897562399480701478812928196453278100271920791283369465519451649234135984665481569552798619967874015074716396712305053069746786092098641430469878454084264541242656401693170679966316020972282710165010647340969840327212498796080695093298566302752595868724291265693612670828175744016567675739068724840356854757082089780895211057370360984451239039008923553889875442751702248672020479504142744178142857480939965239078674140527832787688724558696581041508934644790992907665761457232966292665006501333790231432400652722811380818689570696855506210278486772978299612054927248166468107846652293805723368216060006375778717222569623604586514046918527615493715128168432209735483581263433256054174338524370838979568079421052071687800010665582049791263500485400546578671485858605531239195562377238179179027421888879374955308350756843227142739880244080725243833001947383129137681291751657537718618000955156331516537885437832110069806076408344729434860408644366704552297617767948336591398074308445482151054616914946659403500459459785604472573867579500988948517743326416289294371815304213086323246207270260448488061228601039915824461085874898680974259204234474381121623667928817841332039055325730810340735754004286988260354584586256492325987553442367451564641018319415946611325614608096555661940791265081382715131699718098260650227349367116609746206811051999427184538115940626482130396593906721572446334580695007783519279301673145408391827480710921722098237068511414163699638121770479974857468397244241851537393980381067790384008959057481674591898575131491150811965423139564595158788403330716845752411889262642982995542456128060670926438830477351176966844122572840500186235883351980186737915610659039490861403717566380000763528976087992558344847157494807991397620552661364516460503515185724241075442458982650818230408173449276434284174386041398155956596130539288693467778972017832017376714500503780612033628365457905713243753020165420549105349772910655629043061784426549321573594069422653332503210336801229273162754858158336750098454580237091045465156603136224325261159771490368031330977112637498412455027745555179267795480809775470167463492947854588091383017217861777036835793873634675685115912183206368923826494470339625818577246821789194605610902756548653376196752056613535434256021148161695837472210781696057399613587577765071385892685852419345117380944840206263954027947908596406150954820693034456153651816937859143097461547080137633295338471047313827686305349385975117630158796843612307769577123084454287079461776319288556959979597349822478724546223324727635981149075029681958749264022739062150168384401283945537988146741937522176312682882469039074254757387793035962236996244790546940044737840045099215942032371252624554720574171527893864538991913999703192582429413716337079272804091973371593306854186643638457645388477284000729114202729461457507252914428773212716114518762123384035112436024475704123661690926583142818375785569390085868280598364136519491258382261223523305077883371927191866111859778632986364190936838943486274756471756503221657353593821952411157938857319000428800174492634429686279304298244312612440353372167651256269077925454231086955087532785380092081592171822410666838881020863223063448372356170459696224124011382544137115013071229646927949334843445502770849611444434747257567245234171226857321096422722413462287846553147202015228973138864869904177574504479349838942264286769923108807249129610296415274453482527738294992928600856932933792299266085903421653001307746333704787895863067387224333839322173428501889300026145654529066577667693883031246315809365995292721321862173187402846346840530912542393962712483968616158422519083158261989368509090389313746348636583979397493373550462887162998292671731173817728200908358071704096369534308084294839964268415001305851988443856582993048582711023411143912534254784757592906396294501484002390828591309247317464359999986533254523179363513360856042305088888590050818296003088282466481444541135478064355602255251623878039628041251642042938936746643830831363841598269981691169610038563494661583964020008772638136786454875600182949668943528771300698655714994255735991138735363207111762913518842942600555888110865456280305309572615366786063173370880421701187101660731985262668224502479997174280429761122275846293077452855345372560706518016917535392194124422276926915964503314665306332400965262861041396658855626236926910551527580054731655864665584405167388208008783099384132728582026831674008461518043874166141948681947631259693105388053061341266565245482099195444929546277305096815516786766380490909403387186898815340606547331043186697998289969770528338201603593205823568266888961775799883049237390633047781922933849005855708062954972926228793718017935382550839079055069528637864946062248610454257314667446942668657293770488631246068689957121325081714002202686333636413454129783818632381084047825765795513810511450029005976476045024125223502636386673247895844766812257093553414144351486428617242260117170066918555929388569915040043622443073225858169133852643530119930733120611180865446267368896310889928012136021710633283839043145375970624604323364937215674310554670802323305647908377360165414758270303709961147130315024429267804113078214971268473683879484145171731628171813683465130531172377046310481641682553597316700555818753981224332232150371454377012218048963400869352160553709196229546240749044359179943294582175278864778509271679878274662935415261086799097861707655258708198479706976312243611269024241225131208337109573111153573495936520239338547121498874939181845936726977783531678120677280256397272689007313074696141713351206822913056944353941145687585087634643016828860193795298516362876306491988120893344328833670646105867218418067725466975856064539077008710213711237490400443270008965570339460816002297054840851069193570099414148027103795662915910415824376231398446700511196870207968608425768768158495683018075105234967860774566863621076526605991835268300835185417301040318991290965000698265197311713710251646308552955746411667037151450478463807907366370112856490527101307237225025304849703866876445954352971370726663643889809774492487505450687082021994982936782353164941294140134136398041097002306863844637781064849360225837325490352972726576759593659105701912987254074400481056220581070184123933776840191238866609741262620017721517893793820671793367169752880485735888705371620527803096969664460780868924586019407459532757288000601804279085722229821661815724892583772049227461784248139151426576045671168311449886812706352658956541167568039922239321109779153857915866793280824013333949568393929272425985859024484673735212073729701718580349311459486329688847678797613468693440633751291314786244698269599511909727980482251428780765027058154604996918681042311789193881136600056645876081376954281001768234648281969934605045850874978437761678940579858197640682053205389602834796978481973627411727650049386615132954599690954878367372854683732328831804728858097996491959100118374864990667084862320621162281208932939628935845615827209675648524208796792685080323467014593303012062297397096015051691803865884134536361341777096500154080147624098075163999743708289718750202242229965350274779147468082329968834525971313299349982647972553886603655296378817947881803823241164730913042743653333603447060937015873664710681695495616936344743709834961357717317904803968168151262884356846699212259847136801747006354868835175792867659064246632521468342180843017304478655077960489219144678612333123521591698287685428837930608856921121090235774646002403378107077022017067336550775198144004784831761192683576840362972918370728377911249911708061713629339457249707825189004768768674083578830397068098831398164986409316587496082167960041208724147892796377120993000745328526956879383730514261978468771734035879367936535674907406127265515717624788038770041793356730266664518889682158421528829192048334380531636895105261829806042948136792882855395632764153511018423428012652883822042415827311513616725265816894861039788440092476690482421147453229778330101710093768449155318689721413637159045461982538941531974417613237905064199725272611123166092456232390490136938221852433288435905103860127799010028685899271760611709264672467768739080706223775241066010866889110062700093548620156531838359882068326309477511270133761073941038571997938872100242281521625829188675213505206197392526316800191540361028549505136221316421147384672621459042836513677657034150265895672298209534371403364158396600288547104623733747705061326643546146934312455640841870867764827653045553594596066281873753438628768175174424064222965934925687205259273079825220208808243111021162402738971117556880166411490480243944891706954390777878383451815948007586558205466572221229464069247395153416959075548365742348831118396250932594363519141974433556437032885797339437250383867494944418052713561449220481471074168450845114818688729601089692409424407568227036800719237553361400173525520561323567682240400814660676875382606556818467060714986109284091527080974305038557694803342924287589670658767265171241703727080196293808095376621670932325951158199069384967416507856296384753866520613909353179090358749747201245406971406264392100504488430465737779219325597991378680751859239056122162065207858109343053366939974380106551609798505756295137155941261659922882313910619588486537525764774772363874474893212404940577291154420269962219462024348291848011942808153225323089264488133375761743044634661957200795752205924853558002834395437026032095916515013956519177474746718630266683693187008759068753766099493150068377343293250394253878263775195247767627615967359842419467512147492990579036829095134785989048794280342559306287683253025511347773345795655864607863488156256568431216982789168155155443926782148528451309787464371123946855373586413866759985965428333634471155044524171173250036176512136550932367647710113925730705193605035075956490908778168230605137858496818509003671308454524607572902198208159107563477711181472339289874708559408592073658786423879723975585268676831917619164600949468854830971529521569632396523467903842050374184156417291713859784479930820169123002322576141955993019931862783373946757902759806619327242341890662166323351595097325409228454718745298838822189140706746641098448271263280399860045710464581928814072577825622174775220622849448102553685010428924058803707438306681860992989879787375114426639244185912321631117699148676274115517656410389169364538991364703001282954898571677519277613952702809029630171649077151440438302158585336325726273393494969456483918782896531456416864164103800351039600897816196438527697511687000238846956175464205256967584262508438233134020557185832549110587983650541316847019507032909971749518601677097011477764674171930636149766393698256759215534024190891778541822369607226323478270200618999297682827660439379175039327050095962313537765705928175868218750063252325877480506752866984497273600139473387366620272593095195630571081405271281956670303020484141765379584379507523248638603698415040361701091100397310291343208920338145563593192605687578597528562164743417981844901599769926055420617973583116252797999691311104065977983411462663485686061322089265212064646227533766339911831872759633327068087185381638244315433955432290189300922402246543621600807130670647349023624620871681961185329791520269045588689405624772435768627555246625222772453512013500517372342631982821508843812629828176933870254845849510693930805612205568153199379923030828927321503192014405017650373345724870322678500968561322837730696516356496979589883513001496130132758459838515606003822837368320808455595198575055700846271753381055148630239623225191147051126555364498709394152703945855120982887035856956013149186152151211393347569260553216788336991340150005501425212994808008063893382963654310240383602443237016799882867709337066389811165748029666816922591653169684374435328633355867936758891074055200264117737793759409302224853851326261191351351569026201846071348756987876848782540122730007312862155632598096458558795575012099844375645427116101671700716227275031838707795152770106680764112392973531752698487238480546911698861627300481360394652348694586879617935908402681188082357298048594376805413429508653142730391999746774094776478512279690866136868557341386306914852537320436011330720383083510304826112788703221576343176224745547708306866445952027552414211430967550265942890144251180068838019541381354198980335434951372618117862395324479228492855154064300204108821612791232907009632643358693469637824132300722797949319774374775789695569779521580300156178483840555349101155426029244194841804653748401792405461167843805312749237119904441399034035384822453324950552992838834859938107042786563107024121318879244618499734338900559985412120746455153246415275396453811342890355498001092779427366820225337432318709231878388399881073669106034964581057657267100060413861341112817799677287010311840833098253312533501218048319699669550761558489542031184185735963261354786879961648656393043996284672536485083024661442437390817527505315998599945345980185546904032751393128891597289759480158971744790428034620638687699648489676359351204001281066408641627621813401262144049329376945267746364086592993146308318990429490557702719146457834461962777031325279385403111999088427904483692537076634255301137722815952651142359257695336536621269250525385402469112916412527048382235550782296466049233485170941288252990076666441519042125217240116272343293614099928955391589764375052918904183831627304676717712264450739242919551900880086448716649686639441897339047878802533763528166930638754016119763912501932861810684113401447939145689985525141455646939140405352691786417908766272279122505052734192569438702905348033550724773597996020796488017983054166007965546146710177766412465924004051159869353687000930328469406647742771361012627320753099506162422217446146604614698179288657449009650324344824744550161766842726541574375368561988683755641185208367015892760666600143790395314546286109063311478092581746173223269923345919549206209929620676303350756508271329935886496133631063591236827480676328922862068160102698507845208097198936978674067041302202614314036336342507953188634880113299015740081698379443689937115534355834082061768783466955758382621971342820489859681972963449384097959703943811901075400645825910974204869831731133025266137089065758018774057180262159338522401142317606193775328358931563064141136980099230551561002209284047267276942954257953517850759932125469098404425677255471194065534554581916459333548144206861889074632174025689376554414785598403890966892712289813983391284673578600095481335628802505613621821012037287491399258493117723438421649162007078767534188965180339390894307802114794101709023234206160576695266757033648131169463321854961040911536796767232513809966457661328741449718166954120268209827094338604777011063312564342971009876130706505428714663308301659471951457418788111002002018510324057123412462394849886393395583606033367233057977170411624853151340381434649090888922806747567201895455647680813890012988924559341128229552956826829650853675638775475147047982861683505184807214013878948638251579576322916257940541511179800651552503975148525990578567192556245416053086585477249932209773331995501195952715146457961985525192951439474587769379633510490533445550777401706981209901306848670395197001131967429828064931836278039037409032794975330884402606570184964120245050125695067886525739982937463632745552573654869371184542698819267924247257373906846822855379460346852088778267288327358120489376298749288429419743813760027581422567313637173195194381236193730724768717433208984745040221054627185857526365573728681529776268892380267226166683872124223742068624182960666572566128384824189299381429996573683966413783453335151799920149941796709078744537310902532312222877620664226924577014734110128423143349315389024311419742503002769252694032211514989772123871406958192557912930774531448356376909428477212438185308839409339971822062243184249019302495403532246587598197777908086253504200794589575316860553618850101932007284057207182102432430708642990959212452046873415441364099768880389798265847376140570166441130659606533948491377177955081463562138979651466442027246350278853096679007352633981365455478693686507828648577814884137089412815110192034818296444698576685339453748938551939037930512112292702916051326668236702110148025162641508943487200662438467365105067190849734066848757380148809770865294777935487608057736784253361305308856958081531969400164327677105009824441928650686275603398790083181046659632891226172626873889712744002470766560952080329021349429684438918731906514106804248941782962849783157190490179684208493816145506789769179337790592213190886520668598910746314486930048556409886740109615057301495737663727691986453491906450663583251133064358513946803655217279341849765735005354858539999282652177464572359274461906833885146655760658976797954874594358908051025136949226795124352241691286382175139758889557935845935495452380658322077396717196511416347772931257687970795147745900744541271366116346374781097783643932582084197769849533203630991761078310505058349186946252105189358868615259302432655931440952987503613567276662179379523771830718369369378780372101056464779504033147623145040321623830658956584990794315963740798198892069861254429361240223055936542452870382131152184299726423652328649517792124028947958841535169358600113201024512081407721455461321067474831297381955306118825306290869149179872009227707075671540636672335104399389457802083889773687173502878056039998972892643433803409387979367042767916501942555251468983856886784242915558155601289293846288161431689036081372737545765982081211102543697230921050520246728056948903300529566530688815197147611119033870882641879592698127201509143019365090220250917835884461670257313705784783447638552645503636727229306202837206862028883129536477220781100396221393140971871878148817463349079198946987446419149991766608388429893752526079992952396925649031839286534379517344329865154047431320896037251500811875135140602564461637222430470737524633542640298283805376152331548850279157595424033141712755292246416916765332888588882476291828061735668842244350417212609800552357814712954871971781457666718358110790342050970836431400214068863437613211372453336403710902306718604570750554894565567423580052572627068859093513144872426367367370967765820293051041269364559883027116868060649145834223877383419967516828722005419273609965249150572716988435791511550387179142964740071382277413179687228798769878377356653421328237681965521216391773006296218202837935952186262375837782209470444093640475811176282266080115208011909856219359231594138859426293261049169142842992686958794981332530730100286282743705739675639401333718131203919260422576679490762264471775269766477366849508631558001329462019485110922436026621417823959141927197877602373221093783822805734387468335836559298951307877017073945069804798277043808220992577247085333296909120949243515842819871549602987839872975838383874567606473706932166143512529976797006849114112526723492119281412708137558979341326639157919248989656095516966720433805501562052209205303092830520197791026351278548798581282696073351619114747658884100628164809901974599644624044371606296212707043517079088721208419662687402427638305128932929783522209438724228383200672487296948616237603965204524238050710438705219884186211957657043956088501552196593747494094884388832363749204542608673442531128000663579455328414722748157498423443631495753143600489543249604140666045149751791162193359084191267967881565749532821646823649449092386928298334338178557619044126600846626382408247911256797143261767391264090166280550413502151005405416858028131508909026087597006010092093342085504602856481963353123178907048410267365149359086973219116779559280220422655367683005845579732897939854344821633954761093806022166858081913570604900391359237064537270760753139416905395460642899919490406941494196543200250863651982744681051439638888784331931069976969430672859751548750434318594467663539169652373567043487091852326879228721335695376453924881607923096844301985077885704791539781951891532654609333893667085937311026333903650112391369911591957849300093058016091947124066794541675763560974665799081051922487116617644447923070238225288070394676376117323166781323021370940690825335646143156040535929103127405038899879300149158712204468395176745566231068100552655160375605262796492764454003779675346745926875583238439186377021115760885515697555196967988863471662741944076145469944273941917662964294888080794877221591488671571894952729882596236487547697705683670552649312751325193872300533093364799027754004608125143477371699532266752880167133550291150213218294666458113117742852949261491487495904242955701770435324047282140678538051732758049890745500965358027969257787345945904218639383984535291719758476310444605264192984920028886365981842315868055339076325432337519027606418963069403447568955454500317166806411467891994777295100575564598583086197663260870254648042233455735025822861506469261118325064284656823879858683205392856285158535319667333483559852313180805789094740893388064171751289854786795870560221833230825538995058726867016020558993914519764054509000287216348270567698391419359284041749217104957578373952122364394636302743170230140794449816763128041458976364133800525573391746233020638051291705523577551426663864305484124703897043376219598088089001176695263818071731536663363973882653298296113193195329583333626367262505629764920155903862686679626823605478374139083623791141799426218974598414536622953378139862071936886473823569602662611314254695119843743870105500438200729892146456164951146356235485257282836290139114519979892790280357431396399359193173654365125545210970942534094479898176769585805819893270331164975304629793614412608298017708616053528053595697179302635505083472681440367756028290384331344734358157039945778463130713142254592550113704410364330650182748067735362866292664468974594131113171833880241897123936474801786166113205189168148755908239472663913640351850107950131155175229209265483311038531316696934463039213254383304434207348532092852188846418696219499833512865136767013903437628725313107487917151187817322619187468087307308553236920409482756189321680008854477710384617862956823238206892664590114805581355840194758056934418000545529085915341835811502000359822578899458003454413732030173251221354724368939881454796844467022266492436206158693253725566407180766969423288422756043497410654671255485687634644972292065849576046748077421082758429383808099639326563648877882074298581135700202567227357479757883865669625600345682485182409633920972445580292657062837646274471176136140336288302281060807947388096961850812530954448025973868355440253414667164098711149107116608377637237178430574793289100363107868334069983094852367360307715058288839647630604921930087105411370479611061469029862276706149976768160166827104334245455015282438721287903976486050568126125161584195245073310793504594807200466072657660721501182205303908332301651009460176278713160646037926428405572839148206608863934005165305451471546998519662446771770377863023062404929623527298471649848660882214925044136037777163110298380390796700711591889249431519592978806357541415185254648026317822467347013878747226690689908711635616364644688954628205846586073514825773420220708193450708474077112023034618899384730417820047218029419109377900305729335715038091486685907640689618954958560640695161863966353294120001074567916062371502547478146108724995361298723580571582087767669412936159645551342184550791360851295051474644384171578691193784692846617048159110129815788090207597138106057572957854418333311812785324047767686124046529353008466286141934910613936082313657751040219625505996888459487724080021681401395564117379865410683574539019510109630984075627182683043706730557222928213160529055552235662183550657051083468366361568535079471609771564150280356434868597259108374992096072951084247262431846910049472028264984782396696231005298353438662645293303967695627120730900702403509513082898017083943679475733890587416880048491957120575046732950958497185957871876435436400236527628227135960305679243934105141855555440891217156130366176163977139697251532331781873788745646363169916824051056229819985709844892909993149981620706918986992888033915904551200465117340676476081928792796132160115642119982719955007534430668216051784158018134672356548885079580406020288027664684014126484863289023077616597669086937867358525892119303267036194547442316575412991832568653900786510753761389113217022650510662124731602133142684913808028797843099498926202929944730406651393895606467825384904465514890547131184564013987612348627340920445298788197377893399960945914771686132785723288680328810690788999050742281929136098014277514102580971615156619347976904540548435152548117890290704561861528152904575513699753365060920933059483881968849870235324960520770563789409229198706694003889307676841980752964959043441324290104906005436229787877200975751104071690592758497065434889922890865003243737416959850703815477135735794775837265618681316149482472499410165827383549458079067527077572053656356539620721678126502234381275267241588639102605437871666442381477771709530312014043986740867585908221378424283507733100609280275758653098676039459945813327521692092426880955689619418034934479524514033374538090026152658237561050798004807261221296617820820939622007546020937052739893742284995795540470571634547796466284759202997009822377874569371007902875455744636484463683967441475014375827137898550138556371284467836024725321315680947882562426841101100922689070211934638956365432454967373250334234433693564850524491677775992416728469683836314231532106319264814646642258728969004352184873104356461517297137601424475200403377308111015579178848926849525013346314739665327117543024912257328356935587097969658734575045130067623169827439944341551062561556378720360352653360077189430091529009021346667578616017859666829653310607447752696302346485059227166179065119306000359749431559588474474974791347013434861314699853856118386740443504310010269876955469506120019536067358271349870475409607860607803449914928984937919003781840613812203619192432403671855285352400342390134460785713052931660652914384844034871198311278568124973755142671605324291292608734017230049763848219099629455952090261541132079969471719148429081000209513005479541382473217469665682803106387018618869626806114037644657754310916590075340486493190326408931760027230178453285235249544040163381985283558531880178811858261695778896765326971253816847159352532903139861485238322039767258303082680856480297827807226824610634449604560684764167251656200190570921505603165204167428964185534492709353232135755048738655671919051649752773373756788824639343605005800939959775719197454474292687499383067284008950334045671912173068887522307970698739350604991654135228412112966076890593256965049918379718763075151081826630512264092996968416072806088556793412577391198504124130026420901770375652611531687984152544043252821399731683015812365096001930407459900126314562940440624052045820765857549975951776021611116558088929456661195238914614704969184295222607917596466847832221605893327445160658811151010396248169788575784224927999116430662943896545278004454628276991985071272143980485138710551637728544275265449271525830933296119730019565864394960537146549483233284216073051389123809128301018596357688403666737619336330147299321481118835437723878483406642294844528223090095987007149084718302194636497139010373527159715677538319802571609222222414609481013514744995966821024901848934231387840170937524463610947388570486356327079517894833832842961704351850822615988417474513842556645480049963562086223195750937785134952621263306679240747234533464139670651373911271384275587686937350186038649251994058903036555190474892074258159336020869508073893715115723977200660290091642469919780172702842780619863899851373818321584545523012394283275314754032083079477270172555510966069144516414659039083888802837306731554344636328971932869751382081739928738672159960877617344249243101320372414716174196332253115238011822011884030716932077788521564663635587855787796263494976769357613207333391072916545012752359275389686072577482717071528552748714403516842439182206364274955680786148738973764343055330599243062250593029070474946253834693478273840486770300519759273458419235696215503047887202015154369542795986125519622827838058731522369784603127977357297616152418440047535775152908159549359039506268701311888337849327459209659542964245902682043933697661952804177821811450141854124276222001537796462974814045002744528062847587778628214866184121992401493714420285761853505794610786328104214247739928575623746966052151781138220298790807285855557009204457878668476320410203800351322128014260220828846746134485460678948669444425649380619309997826423177245086723757574246342001803630433874860264382839813525637630495392457677935179541522117024365467923141492935626011524333508739103937707022346795475029107518090280921926810555020167270772701331162943012826562570183704659620260669988228152812339481897333030406027667615477796005074244556640815165973176824091166002757743114012959756523886729212727131794991481590754887302886253815680828489843809376256464687992970691429149792380265256010977625638757680812114633538829019380920277261315363242065391266147863505728967127198497836352567672300210580356682735964571984827979366647953555040347233016077800383405098859974812120858857610766017559699937780474387184343782059145908957082132219241418476477050605615033307983631260901910628430368177973543731622492264484425691046083005358666972800479730599714944611368780414609019289709697233713451909854180642924325493997875146428569121320307435200623047533404568341737500037655940302815369350942095879582283757518268781899217722296066245124797415315455663810879722752150712202039400793858025353267401840170719228579383455821034501053784965277505979371350665841651023341287952299237068125394604736907294946899939437243328680629634766868686869961759684767386329603941066058720921706255567077757265806164836626333865505430795278597368888244237446774392387753736202040722391189699813950563832320642896011301852681773320858418102375328355943059704089587676331460624719447520086928395128333615680378368234922694599119339431099567115188750652551177060352758811329890130499531466167722422653040446110278665715539953562097423963149009952079957900860738303802331839090190691201560719751559625682263004069150938267239984582386577487353922356287147267924089035891898273938358404420037762668044057770634912140370634410331960217672724820782581793613324261537587174419929307500764464996885288925123261806795532137772696508977053109223173923855788178368613960103338102030733850928814096466219766588775787756658124415899825981856761893602544400087637273734301401966479857760651930302369428549340143356961888967715877429361254326281583247965293075878834186057297405663529540075614667470385749016892934997553076113542937615503121919917003849979168464897698555964234296499286821656952626954323377503533581664477462605869213837820694281085723762332631915534496658174895754594516585178799097835280622823023149125679659348193672439152004072013478694230512456407286108190266834534010273812522433164124193089354911576118614658327984480650789568512095182735197410431006398946017490606143850355353766667631126934997240254215019484737965359838351434783311396820772179286148674526360214690744001557612320652474705251201415825393866496158294722046078242466190645292701909071818246210989769217452265120413069127814894429457252130845706134748923739174241696026893008580412850027991743151877804362583336045970254717495325371355124098046274375558962144836941747325726104873812985155469443701787614262507512634354480517511176485928419293332229373705766818551777924455111378124127911614794605803294030179269051539504131571791335668100251134773380907812819538705554066181597831355302653862470698408893549568015070197147278177369030438454776961922004558893665620150150914609394777730694882782774690472068686242801096139287668323410071662126065865301259013805219361337328402204899909131934595508146517535429085071511237070632649568482944968518149693912396394412420145368827375943988102120563036111091451783064267976171274469804320643693008801074163009331875020159699513083616983370560339314919595007765098422048751746924961543274099669563760429287729355607509369511772572850967374585983735456110103015720018363696288252938447931669175268480872644619620334190271575340238792694204411611812690735494289471025348619318990454017446182668597653027891674799410754139385142814535766177478369367177681169655693019935135109925140577526318932213844895056718168669539080438812796814906515826418835641326422848349160926909633005063395629507055377512238311436358284962571073774673271556690966113045007788055893578412937578299818594844065600751101796469455185838722901049792442335060022691114043629113697592294363669859752178395023007096690795330902247766683815824085394979974597457887006389810615486532848977351697511376876819220363632937135919875576359145580165980204970201515927971756188541135341989294091984118505370314976320358138370471995629844253258498268582145294421759718126346993077785332580587949312957142576780674228233011026372529917627656190150692562041189457854682626514332955029893902537631400525576839762034442405492542733076929177832951636220928257027786747364977002567607383344416464804053235966583142619094963667458594377218391938205550902370821547586594358599909052941545354013039237984392191352850373197733325417653730593543053388375381224613499808179934339986637906777496948197731152940486474128766872218904408564151784495962120529999883753460808829974256763502037530311837938214927077698422811936736597710512090329848537995082376052727192837763918998996948156264227636936235578226265151676482510355118322263559215312475132471547065912599008782903681791218085798141939743177062345526774458431307148059976185684400120249835681900678491022643036840562257873554140690881185443780474736760959808503272018446439889142253066392174052043742553472408174997625714599802812645198609526556795103646391431212559099691366632809793159404708232088658043556530019555906173644608468691084456653780681188841793228174599087471623582126940974409496818045120901840898025946862436879414008562762995742436569643263374930530764627639482447655525829280964463173723171349912298461556680337838458945701380103821594056694864820579004677019757459261192067471474188520299512796738995262832470333833401722180635584783089383418540852125900793455504967741153271948089653726928779544009791496477368652737665606491827344846283119746534883292094975339544591325267645768236973188602838767124302485425520698680210312366610957484291893900334894687587411411120540874634334151673188318614220707983341294783308331517356267432505512732313596816075195049648623148439215286316383808441092507661637246135431893826570854038202902986826133416200794317117112471334575233936582300106183105822458234046178152097018290147870733431752794306000376252926168810143856835523408008568023465492423302662551120016695831076007850943227816008928637876324812115706980947969146816307771981102240438752587488324376449571500537285138768919238488171208308975526354902053182715462314664127814459014719768188797610799812354565984706424837430702281086612163368316327923618701451569764201633675202212256166128946904144269539410915559507401051580655765373851084038699834739200977909869249757074908716303122766450819975948197995123902761880771591725591477386611453079967917672140790709955440324558810045476606610705694433443470855238461394215369391168472436946738866748902130254247006025972993023224966770070085533206190089624878229525413844522560719177175636569510983128251159899169908890741884472608211261916220386784824947021573453742115881385758677658455587440075294879972132027720047724722200728964150456277121162789967376641233639193030898131256748423529373255597919012957568862208396197406730038642954714485670016489750045849585476747387758142946277002647042504215906515898024889642316341509385694636268842374908671094371639010010182202567907205823244725317357377284673458181026603390445547137654152008155727401563356733820904133894021606423936825510149108424182208760924445704889710066711032664347701747851467370194412931213463662620403623744314869120687665905588777435458743838305047805943175524014043366980144307987143406789717798385853314925976444126115961946070340737843898845094144916790869629963284371841260537701786020726947300106615145217940897735895861632184865636184888545541413913861511675746828949123761479662177749787578045782271619591487591330120093046052923222910833186001158462116116736929523186044206908358896979137493856997716283171774893315958134307878150339810054487750637811408881950858465027317500538178439074835988913979666853246725914317651048368879751304106799100024701991546072979757993210943238659752626134175130654739904432507431138067929331227882287234289468920177341738335561504935244516867182049492029938002262468033382643497939329796944768738010854537051745747444919634241980325931062640918829961405525942492775068281646296926149031816269343741198713227930775218472916722264538198309575836721583831151895045084333990167300482111819965057960829771742943984022159818502593350072030182308839543771537210917832307835478174755602201332058425611957198023029721213563564403175360010801373850278046834299642430823197049821464779006488221178175872893848883783872668751831245261659551446260144290468338190362153160911850528070606679900416344815426864185844570317017834599040804309014381291180969235375753802829798461070569093862354106202082868245088502024249151738970775415517331991297938222549041541928070527267766445737295674136789052691879286626853568179641061403247791442090161547035756172168258901889151479275100487527905143271905846855060870221326269135145224066597293862601931531430390891514449626221843341808286027852867356887598093617498446238674563262601953906226458012420969674680703689327709459125499558595461702734616054509382212515740215787151653046659627899989712989763621631800252122380308836832406414635033993476293333555793861535944164904174977965033000604723273198264639282850172217903271649590759921649533358147011498896299203622194907108246788976892666153575952831786299058560887641457018228636541552519127104157402584957940729402103149763658413815632925645731861657007671348671297172402141763726658794319854227873049474822801842150539501750875646107098119011088315370784171411807993963070806218358234213470996239272902342759223822558832751452597637069250351704258028229518101945516246261618042003264389527640694668417937720448099457933682941990146621943425786243715349240239221760764275873946645446737358809304523462477000597847587863624696557725784128794468502223570018269672798111475553474112409382006828337857340941162310435903760830522121934999639296416249543892870761897445090180418588355452413716466269346622459024847808061189873525555878817506801513051087336038849708314628275709147845524868740799596635409490214905051844122687518672198456309423043276932803239368255619019674786268339723907821238673522363189081033863058541719179618537800106995729453791310477455965272938163777786503176621497066090202970221384780890442857897854640338337475127906379645338499258986789316426536983448670379457155002448845709961256630613650025709427082242960775082040893359028772294921216823669201497585819148048086873317175042189708291481007797856133240402136450062783495047843187406120822665401275125043781916991033866182651162103159175124277922048211679730463086330226742776477556753892345740336601673763605892053270412780589350286791059187599721457120943273940618061221289469730895427876636265241231270367898143039406674738704852357310420271978965805573051232228388019241207285997859298428464817110303662512475406999902007942538613846941320115429500779695148925070631008798324919687973244346198527143143708077753356076766375969819669523575570489420493262276191769182428092085573524828324326069321920640054356017888083794056300415484019226407755399862420386593437792825952982409556055355812318649983907764037179439864673225015829801845542963660680572778127885428015201789389780204675168386045643253148516112270155111277570946431110694624057258433550308526551883364558747110977575813834076703367116655278374624982130958041093971439220997140254067299519680582671548335356088008525176465208961056362678770372375257494160245695925492862828546196061943894596476368990693266935675693686593030102254825442473762462652095909929642067955057668688373424730162592276291399713679075744179951827787020737294052201985818044374702605457014945106367870694938207802825219207379358209930151181360604752305198706718761038554421513782796110309615172974437654848078503148941312172805176339756668295287562712658071645476217928314426149562594429960660370953660397798308104616416485175014266154832476267277185449285319221044914148731325518668077340102563191733565947954556518881306772844681145422539860335744033414874929461172998002969746178108568972612996825321483350412793319632131895706170782344283041861233791117635925313095853460982202519388312549764910711419110897750151216262518815177307676275371197708020666851237149955570490791708177850789574960273013805775713830259689557319565235946823248816969045629825089556186754029229687461251066802542964131475025360342145431258651183800254616345314552225805458038166342950609592621400399402033183473797373941738227569715022058210806584723033189023332116129200303372045232379404961078564861911312336108166515995056530553984156259602715836016231793408180840827113785927588766883248111212958621731814728533072769659917282305323404105997094483532633469841749316140835217218176519414479006157720088513187767421746003423223076682830025116146467678347787201470613329355933560680166611244471343621293606270653095472171303881748602310399815552466914944895787419468866640795340057926470762778333120410552914153191514369574186720130260169526122888105134742796162443423232675868667468059341080554348357334531469041077552794575533278725586656156559494468727227359165180911927683583586596162719658541272679004309195239177722999146380034895967976811981288419658970291924275538466004009795322858655509925516640126826376115767767512456129689732316031177396038705597603334986872429987091314696776281849678873375956278579974896758978039974471497755781791635778395276132779702319780583809278488015274384470894048007810197636217010244054117675009893085353715414736370315927671116050485597079112958703557478700543511098939466042605299065653982385673773745092700636721049901918592692036018962247714797393607205737877689506048523512805370677572956964557717697127158101955317978326397424312620896940960931665238330838563427188135415021062918606027607828028570858633898829981784726794790432552841291159002566027449939052218359220249205694483748612271926918179900156965364380621781569304470399436498393510958342169934079622758129493005262873692840642706916286805389781717751923472925933781570776784273414224473392835574230613814921492547534339997695566421657348948894896997907472159358359912360315679758540239540645580682425010523756230402257890560618878264769488999532827113471098526724351728463344222384204455824917366289385360066751857543910067779845302905894550517222912444056181747460850708729811465218471571633630175981660472519302069563146274469735471060340815314235832367376162106450645612055311265441856956885095807516063940650641556187477961174451446401894735495440635719003197997642404290546282959390522020710382963434446794751253784178599101911993216372374057132197114462001021239168987176248948820734440655786131137378418634170313135070811468518340903496697053597489079056758349021751313550845794114737709698243852118842259533743745861992425995407977358269122270417762807225727133723911890032816881954771605120874227985179849452340298296798373329587996840545906466878869019164834344170447293671617190761854541773565257974428468733933422562124192975734166730399044931298409891362201750666693785864995558722370333259204011686207483046029852578403333534394841409299291217038928444608875226603641860544946709273118242748651523201166913189706340709322689575137463228692302818752942430396847199333578031946760458868262473041298482807964160199161198585067493025932153976422911752612385950120426475176611892515157512067440793902985580714764300164639100998590767131242560970616643209241131414732080226361947085181157505331396312015951373999376847355986935099801661105877419697781697187795542688819522116279541760744544631231574660025698301055925945900658110051790522382872553739203668165176694032554717078584857582660543354396015923838645686347896922952601655343054469530023518422106607379876389702684699627960522216681843054679317089157352673593628392310670306398960814360414860128565462245242040273482931686389054859669190885325769581108013588006890746094222880127557830304761332851628938080770790460795530590650101398412048268439781768315509543017272900037541865192322445535450678006102222757387175331538024831914658625413124669619336305873642970789154253758076025628706736083030438959571058266410972820852235877064726493313149636103462727789550307205396151111857260327297603781502378291795192633777337352052985313591026601812733449213411032635573929541207382371505357348909547275575411448053615972468791920676125730250610925586957596803174701490924478158633719697131435326478715831100724057351828245235112522569635578522230276084081560100763643850439428972205746534215958889846800649912512256444495117718812177548121477618869485210780846397596707006360887059259418725155557813148791582090080768990389492783035172327184247321566116167051611379662231723592114654329601265793766474097654862633753911022398343673994467071865219533182122080910017722746158609979667506046175734435353776423583912266383906419714430023857074840932698876602741304234551678084160003751434911765078579227339478429359947385225464270686577909958016218622742876884423837480150500781573029496062308574494276479529528472701759294333073117607723910767079057025266775383715002226273434135892450481099914969924137902589020417934751588894179257204236583163158528460607563627182270278884979115618371353706180836811318725925086008074759588623973183213262768657538028208854560436652822111322600821922273718097838654932321926845151208230494408064414851531816179404990274619574488020533183557368762791314574761877507629998331980719146947524222639305990456386413870732607051221171385243771605977750088980749257263922409317989998705298735127956993802310682160961973713218796338399175897483154483236767461401024334473016084931492209414093357389315740467042588101944872631184329781796293487251129344598798547898922582007212693740377092142704198957687762977369548976284873916360881550526812116205038490761993363493715441858917391399405065631385178504942177432418951048877454862121813459783877550132518255416171574013449107433678826305111683219647486972030689582156521027843288883163157587669894550820356020052894133578175611746240343858575948377299986074946207883784871526228678484738765330385911821157594745553227879903747995936093765485709455889814797451584525821210024026323438729925633176414360030077402122200185780345391892193973272289702788291547155453276150066310444851821806099794695016148550147238488562116344263219206285892309428530888544063505143363983725217230275673931638726586500578938676194981007979026192402973542343200356844015150456937033135633204560745835332122090538699268626928958797360946596762579297321930715579005488998203797061813105115923928581526555187456413377270920336911175333016827652178083582159187111203714660496758591971048223189021955674534199964723845061992872366624201445505557470100338773911545985057395537643086206310154551912547171177498691057806358443326585913017210445137314610114707343150903941894459182717297170624737431691278922651663921815988568037994793069984650236927808434555296465166383966230107742257737686794745486779800441577847446683869896608898842311897418526644836456128883357954378074327724050730358821208072223461913323235721283381959647315409532201647294335760570657495339464710523275187700153871508258827290220227240463248392749138115104172958337398906562011967012992319512883835227211258750406388666098146677246214171686725285929277189394073682111819226473689049124830120955372784222044714391472255270392083932827007466947323009697164936412286502288779105516648215397919206817471915871891057182459102643812124912142904413626190401894780184655009825300195347003886946715821003222467441250685960134004862889353185871778406706632487349350615946233582920235610326975293182075355880954425589787852290505765820116395447604263333082284966322465698332926422663703623481360201812421457644831760032674299355958886772776446272264538314377031557436583595048873578346183648832899915711114157879538182313731957842012661689005354810753361561259603654612880249107827715498355310136624299206492607546388510280875652976049117447178585390373694870019748735635149625130734488060803353834255554452094334982635942880590330941194337050487184204174658745233003774787999839923950464054838208585574236948868440976967569497283179655244687446434620991341302804963959227505377783628062794778147556361553973143896243226347584202503502443228807811099235903318805426277284220720615618312182677789478873792996696479343159017455629196810270139080601468978807905907710213464293380069671524813616909999797482313235662260803790516668426816601180093172090903407164464989054143089668619482441454937375229250744625863846365456215069846748189270968135711536539602896659051682779579117808183042197619572153445385953210656841684005550023688826673828976128488697343507463077886081014683779134862650490255117161377820360362617371354095025573577676439559985870443492810043615028905643015486160450126834368711081581349255926386537254155849919656220411388506584721797930533849156717425506472831254313966429161117821410131490682620096909414972908364452778145785699649179565189222605477109199627722230357298998404935289735165845283870656315910674002832338750662192627839300962799424769783035440447883004900729745034161462725860760907663425373845977302447878669274024763466426021579885633851335145166910605395257105943858564784197561962365403807824432905822996788361099877166687403023260865495809252225337293656870067703573345987170857814706752793972419543661825872993987391115361008316931412332402569189385012413446607964467855672199669707858436209520138695046023402639290193780236255911548591633999396197419001117740619200483581765506255061664045565073842501241138755807901265138064181340976322895854617471130287522578830509780914746375926118970076893312998486611680374020523123152339608912273390448892219961036008717857925302498382865701883442758446098622631569855490573888125335633212960031285571132735278617213681032054014080784515627141337713865676501426830378850339773845630229029917571695322941206315411289597726294778028894212710499404556936498338202288825125798728909522122342638533670068628261059019636206612069118381106823375664829201487122032993559861689259265542374538196289676579117030981555658499048169437468874185755269769615770022524222211213834779663334571625819558328367035013220022217010649113544356534338103521147104171697954294403482805455618430770757956252419397076547400369238374076444922497722148722549238969098331087744472189701370329352164394378326679558678809343580665713032697931347398961573010187773526375815217043016713136381174972702130245740593475425093253805864409427286173729280752731362882646064887333137615504379978731530588852491093624638632839347731615879093898428341033185301209351587454923907999827573618839947857510504861119935632705610758507488721431795514805218169795696871459737433437568304421390394952363090746473333778187324293113556018079197047360649648573694046851328263588628799011421698722475128038655871324647379052109535793796547885983455350917921520146866264795897945619032673746478009779968966780293593256714804354166402877036950763869611026380595189952671779675527135346091893644405657864868811544502546517603434758509060406665813529088429883157730143928122495607025945865486878646956385523851709489030515447689640970249182260368468191099698411138327130612417369160907949966021016492809803643394754089287667289864921416795827121294063948584949932197599467516617737207056406983057456488411385953152117063360628184081012628486322556709662798855312668068882647874836076400147114585114870397192912625429642673424449712016237359036756366209717273502822239964545501368181813917551264798071223583913358551092937692130657518542469448486795190371102141251976788315160085673181484523837147895934540313037075431256032585697214102955246515042255766538314098720197253729454978921322606255247514474300892454207790669676685431318573220139865143223060234616792068052774871392813787886383132637864917069707538198393938664020798293139838182888586442848713068936379296600695398007157381804844737118186856883737451278322319295936999811289968049269176745264137528454474130572629013229560012648307913017089194674122124122505937179590404996308457974314398223908218947909721154004740823655237866747129149445926310083950097218954352757314296030918467062410706793362267261780109119549136789207216456241804889170840949959299129304552849418876322121071845570800728745973224628485315663449825665450182309585147497962965999310535628648211651743085667419178064792497467314773877330725912214592809179135789322495532794746754390161097006931868003010060725056758576583679233903560280568976841172547341193597107264482995995529153866529280366619066715995927505299854529001504210764526125737750439010174709891825385449473171818092544660240801251396052054385718194999114772240686739975672996928741938329459554822291427099983337167292014458901431450757583688694456181494679629014667310388047148082923820283678564222629320681847913915086890162781914397318803394952644739619609559255308229532314428485002656455872721355903523522280601300943462965329152337033069749753447204256265830920674855005052290730528504115808363358470244517486435106708536694759050734058862906730274212995164991657835000698948100719848451844104610221115736976094161407550770406016908279593411841954813919716256589623451306442158822608526749653292540501136551802735398318585473115988761660262390343679132391174816777083774925107676453535196914777210258097729619652337857486727279986736446798717027649616425690246333011478194294838511372648822849836017163975028614082243021265459965801419340861683377585643529807536277397824349731575350727682926603307504062862736167402166354615222730051136213169186422487583192368603006842236662722552552706203374494387105760934502731870394605615285404011779975816686496786696306129884768035181620928751860591586434720693948509628444180781302603611027957433461610536796155535733869056069120580757311111219074028394471007223437896709074178281606790195692618985631734123813601972984359464331733685442624145367889234379434704923152515281131291717632801206147896518849973715536877145296710516583229899692762902734731782509726369328255751653014915757382258469417846268998174345122276536909558763019089536452459540923886137078297815732697359528898025471964713608519589533540291551116267390767176932486170608083027957492572275104201177688115775698195044492302859860389476053212918851324445365417063643149772006698159291965826380635606874157668630575634155816029812313398072562343312442967037477790567029699754101996133947535501329761668825931262107463470194795535191571903624627083135420078169639574762411836864041755538720933447462789109973193034144254769391215118554347890930820768808616785619179630116149211731221802131016524222774866603206462420985735624278981277020526480043560294731107090712487130924746522731574039383338003367318280163731020609658438994115235987470514872767112833674946932643620185492460479865985576738106478173826742651314120130651522131429093015658899843834605517229927414341741842921764593442267332542125432430332542154116181151542498092820467642715141679933762761470393122923419500406913178525513967410391828202854639740353248888111748471338865438799323461966868015440517456875848300938801500694975940482536318365237328861895840465829270671040606246197842029104686626746969669050033582036304036491275225677153937691774852872389846268693985190362748318788076822361673820754738324847958639210473262885403177852348804384807393455348547413537635556783649513769618233251137977808513198988465660537880447518368812800706169534562325278731327492771081884405200363737191180120154784459200283070170102985442222853270004726447146114036251513830217280805695526918086583799398837980855952354406343301986173587778280154881342065916315818376487930460943050095606063710519416765320846707527412405306274682780932930958978187427645546439767390843325678778773772671298886796585474907088485312164778629033996213534121510233350035191669316141807807847079113432879658125479285516406055443945967742368782889591349471573109447307867057764696676239751940469477952769914327624096341512913771514062305608555029830991373406112707195550907366778918829086258795732868644339751789526491278658216503251384967246597350095561863904267789421570580363660689381393098331983599514068456820541106597034403754016675314449500527602630284045507112058414073435867630407246424039297761591507223983916610584772715687939857371566974486384305089341982457073386353183609803242820798760528550130748594775238446602906992494327189787619953050864901571950608886892656254987254299081094067462797240165847471639171662730682037863929253731373784562018410717627285433585339350209558526119565386544499926064177680253428991777122900978580762380155954850825047354991730415085521047491937271072003258108090217493452204818784873470971373985627488001276879399135190379686898282043458815670716656528777995042686990633460907129480945803292454668213995450770338412789914706137140971735815707035802416886905618652306527949616382523415070667001939378014632460273505905363377162595764945055825549812963911371483182276535308698035608306112936421463252638325177820764249792671105476009054148190214903263263317738581407113771768381818232347002316533514799281378658557046934547073337945956315953755567501092935589195866260088123972960217367616112207041926484978248361877691530261716847048973832212935267077282457639318573109802603795491839744711365296401618393946937456218798404696231992489031714133272366700280108834485631785096049333175251557790136063360916673966516361273441417101505591690767026484309910267447778093383196147184716757066167411906306743139407093216699603580007831853520337845494048482548582486172835513978625416766391948789138067941652294330293404643463511620784279233643028555066670341754082093469063990542821683864029317730999668689344364995196307245568708263155786290398751922582138724865201085394191997355719211249076056494238332164216491709930435586833225778738856748966067110143875006350023874784646233709553089856057122435621879924975472306385292825353047579307565434987701487642127719007817812366857539770139882225491911268794139538656402575179287480534762192625736990898074449229427321425890058006671471364304068208167588278181560545226397271440268179840864030873989503690199013698760361909342155580518745861623744243797894004457204153711103354539954674518470001135076207762350811152608130002976093685659700521961867684671253750085899113570596957414113708235707915658269636294073160318356106058658828462822505164889973548600728846959123513292506139167164009152138264081710493543384393659921930648807638883244828094083651113971160607980174089872161882690861837554259272926103903749549241636956666831850949765866801449945851018660948877688925879434452680627738302565610057011847175756808465028941200994490891945524437067153364583003368958555482562528884260750096405951258237703493108331985540174996946508757294717027055723447996856385055105900172612285386457973627314705267092309821099865820730891242685217611690319100397107677648103629892121408458345286849605529473705241582555178913839698104753130080926755653706166220708003181141622079560310198136894949363570303373275951635501473337259915818743341194593950526484102626343893915009899378896576102816573051631543880184899647255983819518422241459202533399716548525022107094405754052629783195203941952593227238471697800099676064491891873982214259634916133669747668562043738433281208533008314331045691250171250126231156813727956973669423871750373945309819798870940221083015436383359077225487808075983921913473209830301590057306043742274444451255550396507503209358191571882607599902607518748008536480713190606034261987117114484934373076344498879163824861268052116800507386047840237870221226023253440766090695910690510802026153729282734131019577400924723553743370086367102698878098150580286693700881424172937410252456332215269350876759389727288620530861146635185399184394857222444397821223288402545789851528473384703054197886488103532687282808334759075154530316379211870532355553666263211685570981562686342737143548299488705558606318084359462701072099021624312150055190842498635797914823843452483980588748598286438075218453800748983337447016687598696201477858056533894386069524785433903554110947509452279487653513653841637652514308925029564041050969394481004973387826185006412502089651346010504037607405818708325220616288355050276530103128890773911034534729395130098760408411110833712773405035403565647422889090721410592613544766848265824202007166127199516546963585836666346984513487391793965245562983921951316767894942713675664832282207376260126295810305581628353050906325099721844843283301938529461361926781687088186177907689863526598210812243538208991920619067613818687350343320417263486724052022735823759272316724166524834889722091073014928008241092656100349686222236483220246745948198904641143202319838425908545027238352839809940398470415871316712142214345590707076825273101095454131131593537661446450524634810606633993761760514567535466568983958441013659020430919140190093587197418248920206649486986113558404560169397770658516089503323309783897620748361345183240294456759985134581279610019254070930418197687651446023420079427759281884666179357164865000897261170817792192812597960094822153802384079767697387901873957891743326822471943183564458780358727503951185408068385178581898356447748641634026210235952480131682855479528427131935879879337729782944679702708953512174433647709736477418290291071061690205057003317536622062500058285893181723979314229287510322081120805922954839610281194611906181457654871017656258621665539216431178807098623688184192863944403453007335740307275359184045435701612282166622455930122122006846530737505535137041467319203966321734059460916979801020573164612016022415417731076173620309489358970542874656490058764580542080608893384930009693061633836635982793664385298235174359721999994757861474225480006611317588492374358330944925394154517335393218694100869694369324820083776378714105339545102600316447726921382782888489247522353289056673155728215088825403271394219779104498108097991261186364428048209096210574676224310488002187871549544032572054320772090118235074824077814784844490265458296265900328166665275888989426002984265247802499841256442110152183389315335571881765336778914712325439257217570472042154868562499357231861700929724057962366172160309825452616514277977992781317061427327945698249148560580606827156500521448968018036306840379898768426943627169401347019600127045603098030828843558663132170370232345626684604846597473266368281973246949071745076343700194257084131530470765271389945250306753478210470670579125601023769137723280948502870255369845300646626805277659817816531533826105930797294066892797765985207521098759389665745052983659388432506882900056147566328597063927164237177246753790352924196374787668845049806794766558453717432208592757868930069702668511644197980834186624249213709020552840693519925148959646215110314057657310176546593099486377487869641486108030988899690568985763567497809711972220376062657587005505019185146297467983525933713632389833026107682241738690834206393042314947954905396795370690638173695219310003753725869815886457344736112464453907430192810519728086232328194400118897821935539386273249872937661424131053102389744121229732791523197754510224754627885433038298134609828784137674882124149563730371623348926594181517095570315632412453328041681838021797354080057186022585532656806486109381378274946901140974036166674388249603761312300256937934643619848947392438440098739527686538683555203069506178309371623680178104245656280160973145914987948077642223346640758763109375306042336671746755664554955737663839854505608023913305489854497272246844031586458509037887978599272698148383401086105583373097504660906403711216063069169396672393082097250833344377219437627812167825436109538405038794642366495558766050418690913570111353090808205925649504351050488888756670552781949063746784872323092474661239576481418844186566734913389218154252026292529760517976156661111283866679048651591846880247439995798535938019751272068289617567074541469611196564294538941902344969973681392284003872815790021322344783645677418184841623349584324182236814568337342255397352074395276751404458146210710000575491730187833737185147635052891313570974942982285339246569545046361060394890495459376483485963114296277670274593386828450402109274056492429826119433054422868174754208988849420106368904095552155364887421022246938657510416868597821188957202053916251100671858854304467596654515155460774947213008313851989414456251036872078616050470713459554391801930810759548011835470115846587084070256495974407840359084603010993526962347911111753468273588974033932940330253768244069527892431079144830683309474103534852867409985788465755710674175865205070427864893850580824041016609719971715875005110288373359995642581998324285655876418586185793766955723839518272814880304523620996140477610753626641428233987994090135174812072564962111120941060299241191903478434868106699263220754010739644962045170912846640155060137411381357043820051856231346950015988223643383475059170407673819416811379517537567186199483728012568652989476348219899349921640909893121642941233912643268704187626679715567646134704872691625240202375916103432465635881181671424374828224544090027204386886405482028233955559072351860009112478604890334029190706826436177202425049043265358680862769941275004042894832542760218335365335014243778089934112380924374948663509893750592116279780480140856304195072098490118711918688438356819677482355186900207304114277332331046975234372991165394766632596763248933410735859426437325590033774841740662256931633849059187584332751360082141082828933026189797136802682420716098001633238766608960682178856224537223765085952407710364245002618653653005426130169434587297331214375887023945797937250953467401622423223625370078718201098315588657749441081937828761925489065356013202647974512180500999730487076342311070634950334527839400909090817586116594876021798964694602501005181187336195740504154469287795092252528647322848948142563955103482067023617467716256315692901721561420753188809112256277424977473114258433145320807221072269752593936413758101673902760245430268203199538164919558113540826124679684473676473725743476479230637540610528999532734026781601533829911810133066839883797614829886931230601770235297915845688546714380873767737575826695517965170210933530405752728131328777508249692157019936006141986462850170768055351281850972699814913428463910319846226556182556353344237495331025987874786621420627359247882383074616515309260068575721144372727124357618051576122911696396928072118015797502584807384699465784814328337405398721642430551714146315444109916694285997190475336035084912323495359918495924200792967022464314978078543973548143025364671261772855897961529552144520285052400743673042294011489846887413829854215600158561075555275243961021463652659236527042250472063463128667994468469541561061408882135521229826039655860557040043277240586994884785576951129929851721384351775483959028178906242132651704873620298650515221000867397716247380477162778133287704385405410571652044011366371387267527695811413667378112213063271875856907094419249142393617057051420812001475292713210034402308840140277869206901693832029576551087463678694325061957401536472969495172932518148594726777114553597038987729323965330431918464828945635431887620877201744012895677323648425641854209892575885667636891328500248929703448558529500533942195391037550915774031641241445029113225859773935652648965467617445456275859739200750577690848373735491666274168023203095955005645471805994533793339286278789192244578388033431958353193198376531509944628836913367038931840862179015967577023874256180851385542148306045172816766955154316475355467119092190581950495861446423899329933637292194750905223749287786778879666569166789981602383970682326705707159806513782748988764015919978909237807099828439942161707779911430253766985534867397300665105571041686608691777037038906021459469012345239181828715097085178182311711126263958878590906801614260106737225215645216060865552606876366870648843613633279271041805678712938769461313934408758426346205637669364341469035201071061429361817314229121935249200020794685064363541610967889155125005746180745999343464515843525494598117208745801529888099530977722318387707564531771188947764408463348316950524308212613829329524588975808960667062041613962830871280197588861126791720318332915969659765552387058352931299348359538158636519973496696815981017150243428603472562180418581691684659517952862911234332866656481877900202697861397267759530639265673771087491182870235924582424044133299136882233062647605619025239171799728541808332677143818121986397495890363932669253986084145593975495296194253271132231577830960867128601369416582878338124417883752248365419482580692062916095997092493562900177685022387483448711931874836952272723998421099022955733659273687827699179056156076329352320163803143805997197047532211716226611349873119556115102944059789684329328334217705934176862831684087060804644832386876840352813958953513219766707682695719254885423528662456329319046495181906193944560190912770045755621688056735827956052507973231295737544138669561232743732944728568111214399992092012631515777003467829234265570147244516396652430012900237782129596549424913261477089891218370774345364928359967636780094548408771087525620299822301117599305632330588306048393369923495889382018797084838021059568371157369263004597194877607429330552058628276613910488782626630852791308510047886782748331342128301338589813114389002055776559538887204292579206135855752849886704223073914410525952790134493971743101603175001967519839142507445437273173198540419421713988634606311178384866083787656925467266886964769641129968612408322854832468686350930460494001249950781627899784934615505996898132240161103274174675138899122382938289737115306394502062843325111755741882049394200008057303493718884668567519609533879333271234824419876389681185503351192753290338899064069372040250624893370670712252059796200409053703701865038889141556997490499990168397126168976096805579889654265651211691368888861124769206074470469364657108036900722429857115886340388143109836273388491955425470358746796405582091744026844779434163082717971729882595486815175437457990194700292253538363155498716203306158307780962746960047199680741729483972386136460404253603695928877285713324987434909014139626420892718769123234389378841185825274454363917344126113113392175264018275724660759526524537520208255050791366539332353650699938195626402678129683506687852203546726084352368722676944284005370354379682372523343895415342952583870942469784059050634182883842270499441043634852206832605629010137170896103018788826088030519997317033946478347601349275999040176639386931763398603556975479395681438734931943103734323914948508399782238842258985637056319348404060351452172195069588429510117963684487414555299051557995832595681155417893513697621155303657643274766220722733201258023013656528488186723121341340074066405230481621951707393386995979357426337661303767627736660923158655683466107991431255533300780135673969783045724952215518931786782591631690036964446352763685416504741591809743306801242553063183740459002739191296566876485765184652728066756400998143338872335826961348050598039264689094946218474250945076815835342662592973409619654733441048177867559421498640934953310671876220300878864732928026526627482687677276013499925071650019553792575754435008909357158426398151559430296009592246632285092792283638143083138157002464850245769836589956327306054593883853734577067630213589403841868969324201243629965298404431952781690315045163787837305902484073538738809569282675326332108448411974032352979581411955923407672921019095287816447888197819147043284359859588031020871222360065439026320909161626359815730843679320478400560090454008154980524741728945011161604426133324748108025056994321510048217196277763641109048339206796761335158063085417539716429759209032972596518443933593562891921838536391813150136826763798961413481526120015286248178377749867286823126983309735227363174610185216857338372148861866635337353756931800641543664960728670229961565884552574406825978151005637132524815147465407926016915816161395169707282447675690021822501224198957659017088268289387026598223401876175120860118224271287829491333997456378645151282295955769008510359348125855415892622996712141048492817134167060098215465229104360501507786288501562017797483499169474031050935813675868677222637612919258197751210592353116338479981013050562325074941941664001179278543665290757664743141529419930108330649611749642623618852684888386544576292237182085665541534182147712818425805593216793411670468164527282841592948240591773632453944522858836047679616592690759425675348050928668401072771423134601000906174236613529197162635714214688409196044498268529913354916534954263880514911599292587892765950254847387796283217979740508757078033425577073572780361240408429027459186150505549768427252324732173838380660125903570580811614627506115318469576018783942530330738145067940826037302572893503953171289306682266349622520095852152052805550291513945295903923892940399150490598037552901629735729171201705710284903163379830997955174214081582252930713978958419912738121635103074100000454741527708723552560984551183440183249482274705966237282312047634495298387290650184047591424201558170889745703602554977471908635651470504633655340451006552374083430093185453418536134492215163353279148432305470497946134417228598742501945889143715627585109294052502485464516066466641559954730360799509538070088661561203756041991453328641334615742866417368172152458736563828608473589625047993077692350660648002872070952882779747097422872680737960808284660818958820841445693362858608273837451841205556163636267362498456513140073910366699283659231605829694263772090011688671838129161076514244913722207571707179605463499822459605035001612772819348020481300768048917675572644496057070347466757792749842098316447013408584438371270524238519109459237125500410789314091608900913111752705033155761827666126075874903356820479427736511997826145788660690884362136509860784502799332995449864614471408106280588343308888159114433411193610956972088353013478292524568585100287231147140091423674301037681114565809438326745743684690622885627693023227886385362502277863731684120030962175123097039373812010984322939904971994593297276786936125752165871665622004944653832752937950013815905498731564441730153364601402000623856505670860690140436776291565889522947159964072037315369985210586970858371192731383898676364832219680674680663895633513074137277795008086341872929103824151918817147782845542488805490202788437520573433927993348427136853900107176346072963224073414919261907593477851992065417920033730417501014689917352441803448521205993274248870130631235069773078902074954251606403973798074692726001461227696219136134282307893276477077256693774010198977954919998568343550540895241504470132143202578413420371642351053096467301700732203705846816566300114037140658517008514163986857917926209866609541541996160291430464790388444847810320923283859923901656539066593400133307983984378222242642558293629893925925625900747853718877755107330160825450085824947607247588260388484682280564732215978892126281675634620843334231769785674983777553833055207264219992297163942535199889692100790628106693919191525873321990024058681909696640629600337563481188059228892144320850858186770370182370176075512487193627747676253845082125998626852888439472971294075515654488698290702796429028916528857981638125645976222801439907169088300643735437072574645726490517669228092429546159392423291948773919690154252116779387956496369707247853608598590951311846788483180717191509985390156625972707230114989001187223690122390036233558514882986026600886083581111370028707175980677923615568492464088292129860463916934814125336200160315662553521898010634162302378588590602364670484199578456875950266857789332172381697415907582449078484839360168742896044379202842220261924211300669206780143895250265794234000958250446868843964050262884727083800427678646350421995834421527073161678680311765544835499832551633124880855187754159260904195964224211131437285443323665921544599567653018647847539244727705176228249069231409759634994227555350589046664726830859399746928830788970659365819233172922681819429510479212363069190492191088324133989398928320028060230955954644014599788482487283627897485332097867971472843783195677388533448989390003714825731571022743942658955336085085184452361938817068422348845213320487542068424998401450712661680391408901045923642325505922569182508597062055217297222572277389550503314973316627547704089969269750472231465232535215092201906022129904062130072601087381899483632006983958355970874471612683919692093579471910446039771261844580175992032457667777160485504726159995193122572853400475209322920143599736560719592409650891250376149513882518253764768047404075283652346569754331724185900707962395402819485948902687452628449967503793985338260790207452331334387593989388927061685243703739762350291869977527281432968505015714604335416593827250731525102462247075082764773459292127833646131821813920060278064760806600539623291569577813739458027689310289400418754535101144734865843416556383796846803837786701296194272365356325368619683432708722529398118056886917569337754691427163237956528784677561227185928871732965993173245766185278964103863782698122201599376445916170559443319016547793186558035531325313497090825136480831523098170319809616277696626965296564171033465740481112554182651078283015092840188744052009320159855383642372305046975879339762353881924397223131243896804883517910202054141151058694120081249713080527428475178241484919484682351018596119796128586248073042837055565049408653730609525763664707948716065872906822410231360879686957786858324421907208565831302293102661910010915783864726141536576155046253477753144821155388535484616855440193891671076755442566573167814839437229509734928617703384907890671818556044400080007930111433398804563420578424519585336199680200323477146178434749004739756630790113352868529440417517229635402724879372858849584791336924194552566425861393364274334163878485530293310034830713072418906653606241528769942068865465868760739095675819993008134224391400152486231122343618236983431264099662848662022910975923239882635248088107127563457466482388720175730333758576611830680720677928261150644814169328348225742866151084261271084744482114623985943122322872568423065617799655660034638549279067708340968381799181694089470913097932536807775692137253584172966963773235416748662320290683593357114976856603302447682308383663813466350764451954926195065154767996190803050585870479739793695724982742818680159436205288241395905850114337722630029758313629249270353691078208687711295399312334803670662653587391398285860175011370989251904170490888869825865350939986105672132343662457341743718874615122236541860853311436267660166898550965740552193632569924790968612752809395968807600919340325296772646782170882034975251967913335084298555911660662390151774135832969834277559987154353856125721785400533995024324259588781399652872658166727639380676467257684949239365258815836890217684635063578799576748276009352838313082019632532800711768040155376262421073827073821622750845798733427414066643175710188663342553793973904547925081688239387302420330134318635312217214061012014205705173161829250451139091820699600753867356776071037402974462934101285179821413954107191128022122729231827463004213796277473540977135492749173293675817297771482207425701566371649938852313162635838249568501759531254982000287812707202896378537613651888657439396603117538515422301069603102393438286553065076259329541447423103692317686661728837510558100586546492624640541808348805903419797546110857239038367150771087688010950833528256468806686620173240840392077283375743183949074453538091521608565631195456081957744616897448323347632638304299169730899078077495284309498269444818764348893914176533998133913224420786247819816665880514694153687341144768657029830451921175369217747206454982737041318347979378304927539135030156916205781141448005304399708844517239253290372112185403373151311913779577847569389462749638974720892630990567216666797149459748240741754424612495022798130342915148567099580651088770556151458271005376246673771954082758286036693033793825273589804767776126983216351395746175992853342054840529833777592026673348023474832453887206640536421139122317334871640150085630363738764675600908857063971057288396442672081827913462240389443812671996744824945069006741992586302732383751520350673245238788800115707892071822336573867133988498797147459517152840814605581025757938982294956382004419958008291890456950320072972430299070130999978556453829895087178781894225219481172006916500909472783824585731625550970236926657294516585705449934387389266550091570564453979317204640519576530241427656567598661942856406548407561692699599755916717387933746060879113258421486368676256395094675557050267337091838543344460118091285324797317400074328623201469738706983112271985518491462022750424459932909610331304961674365192926613083933245873120065362610330449976869073009750945465035437915607753337058130553192635330737081388179314727815597618893390167929865944190819510365357765553719580861987436863619381968134484950483727777701627037296048130612761837713809592915124695011692375895490091922766737466844082871218004259629496739238212665667408997536971912284277575543979317767075194632501029740831184161547535733912619897198984164467748775900554727145329165495804390568324094883976078811103121961035667761260364760129967770716451767836943043778452269178449843708514427533907978541817737794699423565176866743899857099466025554004472431284086843784827251730920923358273363029398448002124120627109353811182812604227174764552622261157571797219293188395979022284585510726616570156395345273091483715406264807685055046345267668577373867981428817228334446803011567576122153903286946194171398692000158277141279439503194826907861067489866974369062443078922465516857100773496010958153127828045510078915417409719913787018272818322129761610661752887989070880335605415333106393779557372411893946685628742519305811506624657830125131409287075167147270489539912254068681941846769694080855722446915573351701730113619968673415409973002819246840161422284322747535888642786215728452420479555177858432012261502551295967864398946628577971822394667891970202941414886724288829572619456074770559783882168714781369363387177441305193623376270067328168332269733225768401070197644162508072546304300970430727925784842561594502211677413847644031969950017847654016836955078726513329351511924783203656197248976011529055057943647621281832318250079533207166435050458406194983993358640111486925484590288317638633130496018153105674517164858882827378393395220245646881695579896117928966593275633400282470764344450435923880242356095678606407911174529490135327787890643833118844077100829827791155159699046597779575840647065592658011607039434305889440919638080612773045021661740666691777405367865373708244020607095161181086104934431716396726483322508506197814853895921924047000471077836434449818340749625916300091008437237065301449381073485299951744915711528911103147394575519999255373727176458774130492392562007883560240915579323717589068492134964800924332989226189108240405676043805856756858268722708125089186316684466995818358557348528280333694964901220595857500955306416315606811905450361218352707220166458076047345180195317091367495560897000268231767783905243904525164797608288737687804690941999355522192988983638552044610707654770616739324345811624773025962944100294958136084876597063880726222352302732368424645912972319377652759548042246418272967642099988010682664467661651733695476749107044024003562298814794062138375667699499152573078965166667278463744903269980349291249009487143298693748167365295378285758284583975900258980309204527517375246326157778609905371815715675671487069999402861396246467197309603946620920750293748193324290957710535756992190123640092133802030214217786769318126066121133883546954973255406187100573992187020276934997930069926022512905385578843484841812182321252765936355762540459869502789531346782337558382348285066244267807535892405988384823937804027366878700476982063323420201241726699668874526646089238649744856172424625063551668359440606948320760137405889896643533301656309949253867965882486149925559253292698714569027431802658248301096080205435703933352471521502944394657303065834671349135944287593316083749784617731160124549000198411881877516925071875056016600144871174062681731668926614684933302360914154554583646522505276125236823180403210623528260120804613851167917933394832036419161429839343116991352758313079800574853577203793084307378319226085260066627808258935065114789060646061859376216683307924973186434986525528474308145539988245347812226393360152049833628359114090854285309684767102875287925755922021553209613663636976974645594766296662534349675069496491469803689840130779662968909555527109577026796183579073235883552401164132154231471801309148482475114117843306223267535175089317787535534411475274402617096349608683271156682211917133936871142351813095503592159456371532193466861482538547549161383475329519319972801126749597267458712533307377156822785519546243949817507885103458187158717932268993994431975687821896127616351476772487175867269108289729160997927638735823405846077983242463132889524687969615106763968251217080797422473093223150173333183547464327532732846811891608260830339536779896405109424673101800194835132465048557839597675229918969165148058174585279779545385549576718534303062125377517432833556949416507086019244918411426925889668860634723920213190071445390581581976923815854478341421048747619087026747706105194605045973035983656333308390542092654605676780334881986291601378330129835138387669733082709468340281941588883285676922348770769785543157268843550889049286139951150372171399631769335649770200030861275435332261929716086164170171827934537447375982772284180347434334092286832219356201159102360775757341867439297604268610260451043442376138676950864307100490501419578528790722727083627920603680985709313533674505481137443004788800955565140618653773935364846728297777350029987983658207099598273432337089036568607732101071962510089918215193395019715099888449425833217937996833693958143520983177124890409157868937675664126591719716895243047412770336330439011660210850539770071562921030666071145733471207142527313790601066269013532016351582809548911408525657228471242655504220716576362633876842422489838788773282999907732096559793926799545889960446288107846878698191952856909700022453800558088730344212484987576646369117709606785692970317317073012298376181730170318162323056688313218058420871066744033810974411548938515856790772629787176411202490359131715912614868843367025170579422954792311900626864434811750977298832738374497746846060663141386558628031286057687256803929180143554755795297298575920653345726553255129709784792446281893941204468323187745512827052953979212480266903950210916924953125964077301681712056190896359319557575678088071989770842948027658169002960733180807522028595371972884545354105365081462139336101252645253792857907118653083503597963576943377836930727174919895795473999097084589481535078538471024237456737265281944175344810049628264146693466449071280782404880209678463673482609685129118916374394947716330502497057375578910367472938394547236622144065228135191210954219723768836223826436576016066151664818825037292448119697697269824889008190948060868337399099398655216285913197495186587233682683612154790002561517728420550745788245292638152354039582606458047620489554293427891224766813175155223362725439307819266653772996619282679310608951744101412333078031204923855409190568055942952685333018189728096455478432085960792822766859548329779567076924022093750815315616427698829089723427522236347241261450474502923146969204175483514146948341668106684937164649794331295812377431805137917931255848988848011480995434039333676283915568772052348958899213504973603057181914181868331627234199040195647698071196604661113359755436926006431061646166003990923887419022119519633836947976786915145750949462785560198468724019811008570787879340343215749742956921794123616588007800649999761400937916796608848969369484813728218920900646926374201877188876557200207504215652235484368735412380582514068626202527679436377331545719322236556044255132562907335974489695074982203202966249728298582541301045113065280625384276969889324313065720333296155977123633344530719252226967246008801555569159281205744243427732329024206568712883302652342428708967112643106321248575421594614832845544826450880685413421159220267953610613440199374455494700522344752397408075557462682432957814161708622813122870660345032739553814107187592067223361952026255369997242806040093402006925065109674339581038988673735376128740427475551027620770320969338216535364878866416633045092803815138545577624303330056775037063274248508799509920212100327305959826310672438921746791762804460858491295718851061203699293979457333689229385012948001679808552508824359425619047211913008889683891621635974183253989041463300654399791154628030486033654057853589809265891035281977098033784625342836798414557690222465048172685581151276077443825039101153051876245332261990385923881137419298887586743285989084597534502137970053266568168634408730325644081573744501814056939088239081473513021011342678672999010909910379985763499465932205346575746437961930838937163535482687846709372283550571940718104053373823631938607101188563678511019117850105555340109599776547417561570562618571961397438895709400780896246528169846633678611174852954543087438981753844983882110791321158469405231530469377414199586952901010912428324305720303365689581991147472842795464410445349498156313610652935939461592938227423065237242067429014022559045557572879079862927407539865006469750681298383200811835283926355228917405765783808364946412390236238254116911279926857587970736958538122061369272659259439596574262128624002156623804618422737983969656978885631521296210323899681043267489845212533983747867341474987671076613103916348762806761766162968082153318073992196406345868679449067819124470223556494979809859487772013153777682181020864432120186914149949790935423085572569526199863392237830729826530448559368061038252787045916554477399573744721772582987730507298509376129393727367072375407557008568328135199682963324289751484139087668841193904203289188907378990108666935102257349372042796366715371141633161639482211846763084374475670445990845741695846941783307401544739677254677745607971780379080441670376210871693956949347770759590007474310344069832442938030158442181551750902189186312294426874756017223872080272594278676254946196168694754160762299980496429411395713583177856426259318983523289410134174935441804227404406536027506784853612684592478084236066986884601102041691929905629473942126191608515809918513197348027123422211635124069397065673144444586107403514291837603896354198822415364065017497905680021913418118808143352125840250276921540577600890135797222965151285592476596975147850181229900439839397540208330116314847444267098262543949460441437532060801893353930494842220700162739707431233288096749941829228575816885274873645205540864531653250628830332754412128184808369293112311927421261379753753482883199273281243349654068679069554745180798698663609219689752744275916812741786571358337841863777120529573321788296168508737267029980770748514809084178459768674258245372016292611738556143674426025406797900040101079481249907235490371738795564832127349968897917359827683794897753299218041248346684479446059246729984455414289542981112977702012065611686789399867094690254934057281466948921365158906759679576163240009876226423686511444075278161289388123466378987404573278056719352985447923141575856239756084154289696297842474664766257403047350199588483678563339833568737476235344550366638889763436120396380371105474396106095008329380190802731672966496116652250354683057439065730037638074909908886436460654872991202376718739561876554791771940601063271205072530637181294595278825233335524695448441771681814665663009940706488607914770114284056970186705401975989538689960039675644025422706214067156259597644116261007352412281174604289764901606585306150501438202370674069735259494672214781667173156250444024417818118272202642018813937288255386632397515273820595530540014688460685084498398522245648515504110936622259832129758745118316065876070095843142821688790620927739359035461637998355198923664741548920976052223807559372470559489864942659787092339686741151839404442544968092834701916555790844329415641864820044424905190150171983431994425250104239143110450147902116826431026625269004883550542418961970967441442748137448049539334951015296330304730657827851473624923829980076311972776993467898560293910046154889369150285713469418620028256002460885188755318027207173159711994142576547532679506365782786408559624545464792343641053696439398147715936264315446221655471031803113466304414304346817619780156495164511453926646205181071710524691912702464683004939270232955546495265800367854828512329400597741966627492702168387473971769533691780409133740161562828190530536103819753454533167307299829213622859043572117041427026424520684930716519770766217915936258978859876872206637032525941949493311795443509648510617946816782107434402199831285142937490594482721920668952966142828162800189021437098231834212709308621725182487860678871128595925351251923363379290760937156012795180063504384369022985155409607310614435228570436272636469232566233969715616791663681774620037741066913865341225184089265406729432818307023470068697486115935594337706477007049424027525952538328183825733048837045381947053430095969384179558309468677284178374058300796372022099085503362383442632706779254336060449951837167913898732124615698746186833288595907835125981543934378730168729400470163953351452510609197966413966851090572403635396677693736683253009719506244529598930567613489557349757499325767009535157742678989237289460293313132047028671637609556211864588663817871929383318406816825166301250271122157599638112817774611888930489393327568695899838068357384431324244454931915916755015390270739744911417966546202780429253016546353523676702975084992605479394939479676391024117098746124796183540804284893037359866416933239491838949018279020616606654725621391920619714867309199782285572640115860581683056643126105123662317313991970224998099693587997182493450014151844226074933619147436897129448234709895297381361078566951997287065891577784806141075579364447498558487408946355104353008655243151686526641498729341438433481527109709472957574667848390220632733133140123899859000210184327508790353305312369690016516196686051610765652427462367958408671791171300397248180303490700756305075051891556919319721027964783769667761750023529506431649118877819090194368120142191623278123659735740923226061373429299842976632045596224013655080037107333220896713763981520444961826390001153945887607223191620004624217524129170701797126073715456997931057286678585679872833773559132886798389194100283105772974358293561805756616773382511217391909488958176756826134764909661692520627664450890548166689582733461048478474401888256342239858618679616469989486521740326918979836015738424747314798087036494956191084564476784179804418913987144498454198804355728875251952594733668684778164044445845281381701028635397556993198768602223680697655707208334929585844880092206329069080825472972478050045306619048201659074935498341281714286701118753837330606903225326291587377036094316351342928450600410315868641538769376663329384567249217625577071871117510797691054504174356270718659498138296086573710232744444569284191581631121763087893144835644170086330439391949855479234989180512665607978137742314483170256661240119375371949682070990764110429387718903881984710364521373049599447552826546992741166389979341814539715040005897363532860100936062837960017780873279519335961861950038769995870348843392738811984704241725879431229707565887346296326808996678472015699687069983978847630328762093339712317426109426406918250881352063434712187031525156473395351951125668988934284131705088047699541754239214792578968859214695411371165391974465105626753526825258650775605255757828685613222502579421519570117911178882068954721706102462567134412954101301689529293836402852508621585810977221326790619788804129632581454364280613134351911607299752163550402896773648404485973179838896556940543225729748039708340694775834558923977525438894008435829494355867001130758398626926622022136339000086467681721954030257755518022319979560894778077390964421483096898077750308026500056584751187788645820161717951289961800068639166881102302863920009594066992815671780003108443808134385007049170443472820428659364124088595788367596911851556997721381554974731748028523643598053001152689200581976366299166112470025613733088925191780532332263372164078179841341360406470528409709386421288640344765024549725106910258816050288350020635850717103581562840108941178042465344677115726847245850899861894964582899988152179956029815484308310257431288338647611598812977805583572793825863275762740437495647280983246385467667813530362878082848022188227866115368102793038365576179111626070537746927795841478530415743560489977288213601502229923609991914563287553305537637296757480083033736405084716974862267812524436764116369778610530885024269659618199546690199538580346628643699354508304785750196928133536992576880873017607723809371890402226507119798410449071429534064649669760378438619517956081284660358617701979691302219314856556065818388623195318328054776897293012439601557622521755414293026599946505217144102856918375468795940612160090555508760825861875694473778091676786338184739394111652588014840130242695001106450156784390317588036632219528126780245785422371633503942253732443196891151383013758564051169591667242255721592837127496042991975698607890875073344977491553554611344808404011387094134276243560670769791210278099957079676265144502712447762329824523308939395145239319792556724854714737111729975843260471589689483675279518199953730864366808243086638818808834810817028664890783667164928730161208200899445624274828845963274151986472797092730478100618204517480466670405101442778789506730702361058269391748176079319639763962064315524408264515409888267732310617879091420448085008099099102624087254240857082963058071875185277131763028192096333054677500160063254632014893575706992518319346264086148801304046800010158621763711891421445676503248794133439575288680493811766499700784571362132454233503450810747265287261667282077316580552212927765532478980265441184052119029145301907770738257272063457879752029017977071245425735577265834653841796321825821558262544192333702872981849192384066614717174195864812272509315680013306643393222410227192291147105546964249417908523128293922464061433709459035320953976257543464766923103365803743700997142842960577184533183102906997032320661234483149859758679678441487794668293770780241339865426239742020439462275831486365451225424957314462127340183899750000975683050823910264050222047925141231569100595966677688941532755277803956944104799350656908191776384921063531898014207678749797728413382333665861423051423793350775684431075832733941866890647114906674104132902314360463771580802018986426002344307404538842546582308119117084098606667201224149450500299431282485326610214405279802484371307353725546560420845293052172323250392000621732596219083811130486586497007327780220220075865382550145545602346044056342325758453207188736850926522837553027043070824086771471607291356431089773760261664157731129774480552467185005884063386156879823509652231076960038090230527913267687812219083518363713091554486944663744928803282739316855850479889081883594439312330645073180807880216461308805588855777683847298319747770956707219626817160643487935923270298044109610690515908643366059252031345376656692514951617881973655906088402217004925719980865182917385689038241701509853157062804375875636268541200158958499408745543364741713147960744544100265850806556596120415114439883256207461467360025845330851006189494758172436244932031761593864409894612176049759554781400656150833667233341130086182574263598378495708936271519303639111675652795100425194029200335183694411718549013557171229896743136984835901007445714443598079901664746499043216723614226182711035355256311360908883731556756116870464611226394556287626562541945725592747757946429774975091011677876496896909985456650393910719006681712441797603926823896836911206980628205650166716660619886865193061537521161677105912643296396778743116812697854702120820399946370793805330931588563988132688081370501446230414817438716626682574931638264113125325769581724266861299250533144432793308394461521132011082136639582257137775258332956436371684964298360070282845341562453050070026043073826639875112040994743274508358956378269542400452214366045644348255312723118441605914313463033044374430500596399056629282310182640721987732550614354994871940100906464527994701828529445336260172438096547586468860466187493500001611056209073068246556604300738977636445904296619582226433394705966798591079532346778582171759063016762884164565240655786057234219002773292609044239364469977442895723933361235701180725539107312035311774106236918512694669456554296221334412406526708406787142076461899731354151752326241292424508252881571599348089938524022346496825587031560142192195619990090548102671017709243899287817790330809852970518118628299469956419825791914839707624356649885418411892018830696105417266075737041699193537779914052064260828281233861291658148707852942281375169195113011371576497953339986292557906468756069338981128627719822445568519890657184518389228157165385305210346514535564149076326361347952719316360170585259228232304154349513258564925765199824953637550237847170064199391902992919542061996531570638950130543453179263062681470944103005746202492985021025878877054120776871084642972384765049123575582671201232809023658062095737530023980279701341682139060200373454809544534061645217116930746302232196265374509498392673715139267809747765447088891370396926372682322917295971377767554075604554653375656499168524783204458173382573748395116053472090911928692891909558273510026800258576462841681528930447972445537932075386068868451496399229727825099488171396436181908240677468426181256132074929351867872810024427980214134254066749263925769167348787469323921160587057014217398396098883904842314407998937599238586041967502730645416023409757323034377372406962775244485922001167151644643958693288940936697890383767683043879201255021900703293491034849376018370541649395714516031143800868325153064474652777473605968618089413369788864037711515324073549122081243710315503406910039644019316146485024933312032079800289201047173745501833955667823486469184103391848241066547524552492756356911801738172443640852317116243336098361953855881954966190388495658189707931750433275708848895768607885016834525714305698473292610646798387797284726810737117111181723383784789046795839010946880499845072107551184097084840150500906179129082216720600737307309898887835540050706736867103351342249252153328130381298885991342595195190252792472688642222414698750902141733419797877405178133403698766478957950172467137859973448632117610373753579265597476160760386018943401826183701239982814595942513072378607996228677053274933133849972251711914017418501179199874087658168335602353392145010078883642565906523138334653345775605511331357514268874820915903570995988783915990726655264303504007951156441887798692863826346440449987471517382281677203733678483626521064637620475917454165697380227769185397990851425586005929026749183309357726411307519912653860162072345547553228837511337449488626918689852726191738469660934052947728150843417667618193480904705814102081942360865439142175837025585912438683865795071993977570719666317883665422018072322005328942849343450934425393972027205702650308789046416935115477560002631065898384903091188360242438769060071975721119208075061377689303504829618761686714882031100503637855474228744467936010801772436517244925652254490808471549123852404300131146819408475579649246330839392097888502820786132406536242699948687010638282091047085109885915239670317727786331961047311259379393405344804985602682408282189007465599598858184014495399061187779840668685705539213909032393064403345075119156713723766331405197565120332198769240791329273469579735527747944122770061937390684176612001982412889556512998357268620527861964846002076775371231382782947250777412564562231300236864525758951852229712369610805080026397398405853073497443099102273401949188211768039836500708167147940850462171537506125463906641745466905932786580744044026089646610522090957053770590859506416439538234452698730802540793510535006732963798049915046036752576524689872869289099879391096199039798529262618365377748565136297001132016756658003561979443027270756044710033323448563582240567979478461477757230107995646175482524175690151042304443269710740991620969377125186584608285989566611146000209029532346669136783349100610223229157861702875278867350698242138682673915452649349219468968380790595782483904273105643905781165149462003434380403675608000798796329131041513421710922251117782152299465412029277468818780659006972099485668453002811397371298149648914669327059442419197859799942372688682712711225379397108122268135787738461034876099950001859142842907539019911795257467417748442531370216431250923882650274820520835097811363028681228850585052680549808701226339097667581068348313562734101533774414263040766626416448839160003500087879909221310665626703852895625892848446238206847113570798142611017697723169167897707969010006358408985924390606940269709592910699957486855835012796056043615839604448273339255657000098150901173271848812614338341002320023235996089185595464495626520162762948628422895934824256627510490728855420578155195032343616201661233950563621224400485086142476944796491599944202164203097075158423365059179744380496161631053323537277176342937544554245673887013435289143471952951739779271697914949298673291796487877591345006416291943579650722822964647810691154426636127942896795809750947579872234097581846483544580877928861219493220573754427533326583500312851675803240919843820399389433813178164433177349887011046419239375695828383990409556803565498378645268859525725043611368477502074103206726597095799752980424113210710750939197120461395360894235291834396241885673687818345593060461850231926215441250001826248955070422893452576180787563344544001871029167434431277270956470370007964789218423969138342329172294513321363151034611929301882631543717336413655935909958910444674643812896170317973984110018906402031343977859891923751940459755783911065427124162363713665175016305625496876363028641773265158104048428569379956455438082930958138843152573231755268536654425803353348444368054978945821652485334898405179819186887215590181370259091619974953856088861237021730089269916528286246582746147566260104393703045453202219787668676133845388263071515187984857521711159413573354827096835048256470321063861489418325660546609525085207783170008548495649865952645531389649953454491369758350179354901710525457592465655106454849480102176523387399023108953963106991062815380767890303587209655498435494929871682281926664079812134523807688967347671806513463948250432109641760991161752480075420438140560718319888942832006345827853934143817961005840192453595470881681104482979689764851604885837892181332425715597942517096060659359650325746475291357943684640433259335683181421982238563310651521798478549299924772992061397113220775163507393319273894265922263627797501599222721813591561157026454081906992000041941837057969726021949324988987884707524860100338550201421378133217037847645035491684832834982568279347537079440837482918717332970805652974184291565786052817693060685618385285903165943350890806227871897308231134388863083586818618163166999703416854904465436387453235740010217922045913432135943333766818771783800675385007182992511443316425622783394433817725134303159696180016265464800875591715249676132420136611179233528150337947119484268499291555915908472949846878464224315498881184945118081235773854726159649646798115702487179332726350472076386091573314264431266761996481542525839529905962239167704454115507098654919101460524624307808201873515432000630938010246668830172370212042893735864458996348225486969339348220095421052944889327732320143548946340745720294796546634614195510644186050170314767806030532873054984811136037384421826146871729660186701648177385205731650245788063407929994460457381138597026325370353976820013939717832008533168783929239815095602176235709678522028770014184551375741633595600750539971538979371833889100895641071961727804360172990801355390835186781192826095041046667367647753291960516644204244900474032685008366634711578197266660265478552225385973562484458472008824959635268130551413560653383757636429882920385640911975286447528101028279163917847338610427152079226333830669626090347082425294020651478764249070762613698712123744392401204790425098495845944861066977274786911225059529741620974667858735460523082946201846944841808189321877186759759823484215488328905637505633483211718123019528882551252814797065953492070328797009574839168865514050830843526824247984532453224025200167517543831250758255420516944336772691788787814423023643029027255582967743228439914013193398921268737014911406856356559295092400005450388871218170873119033923743901818635419382956324398779449527244138458908598530984115264148109853819567163232715309987266390341321302658764469714960796230867638543023136789115580961768300459640205684401065790207324495060332243836018991424443213203561674259404535971565394307154926300518350106941365428590137815661542430158155712563947143692454629310143865497831095847726096255984582656818306849948414931470341713317404652682073066953562031885243054071772260955233673029516351776736029359134977117057527962790334309368362278918428249789918387447441204111180546166085467830684303100340003916079339519154386825514542794335951822165193081826553426386533663169081662633995268788217677171804736034612961245873328816832926529589544906529621722299582474480615283538792427501363876491685269912577427489963063740437608946853396847879037452154494246481567445553665697337366162357037758072211568928511676022885996485216964132092312058301428958401955822695541348752823727737845063494120574544457424767164052939025595518581671364676511659512148820693002829276910528413202616013529757817651132358358490528994897724807085324426096729968714036508989210481105157262528315821954380641171456079483979041577256232142110982033437930669423754278687838987580208353548936315376311294813923656761732059822773690744945083246831128518051559294145531821822929401136306952967480895233550339533656620674508957390546087235466039582879021121112050492755302200048183664200334993845518777887646271283107326920908925708221634705760661065792352353537790418368367645135214399432430579957861031822909297978589391623765850530248515780548854175529020158675831548277035997248237607019937882323464690449703994411950057132814299208303145813822000224246271733887396648680381062672143183486410856312021021266982037298477814754664616894910626501268821962773043117712999888478993775379189408633571799743932268435904032965619957155658631207627185377986669972646798568041130351939808228955870245005634682487718373194746334357389043171469460984117573127576979243976930043116766423607548998793377614403623117203535682446566927659509341589223305160295112461033659152492747952157871162504619089477963266300363458695413700098726654903463307863730767017641789631967156459932478076618059736211762704046259081249259566092112832614714426618453048400885356637807858965596295154779575294557451829809864242589168655934245770003571126637802679376314350650182094409940939077072328339071499143903240215022792150639106751600076467390874041625900517614355555192643221587753552316588687936337367530184338172191658145908517621331744225412575979600740896897298411752601554700102328846302043569370018606895480129275956342134013298305739631458161580893442787356061962989625771156360561664127757328561641889975536899586700285958486923788475611584190215464138479143198430710368998284823366258566080488523111350351275648210587967674809919207414552659986730505243153788686779651452082991257144794494648356476187717213703419690150738753167682406833329838640364367644958202123607703418580448411454605379030549084435659310203264709021352073510459679415952724095600162083406529276941826138303767650181051180436548463301388835787569065786815401487434420196301207542039234129135802671359613521096845527015515729225345380560010501838998466624515734404716478611470037707273114502650923182133879328875777192700783970976988513290934435843754765684063732110360931111222047261509503519393364998793972050334508272059633130130048925212800050976403086915921766533938327268194528490925211401228100185714966775235482142934644393088137833340949926485017097701445848759566513307196383393010053732257558450601461299887178982966832594705093811411786613221762214600801388920340950521107629415129924771530845601040435071966566626247104532293071418191393965166801295083976554372571753954504359340072280387527647817703335518055119092236962640026735844869058962426329481123194841779120869028580610450149009456432596442691273946524589874098267147554882808070370014969961520004482837435924140283842550529808133635617201391597722047733048979577399270372815930979941881054591599965757107023603039042477408834730055784562498891320635926875443832288038438023487463258111812303195885815756577679416053243723195114002460863021570930257331253657064394666972380888811308143114803864626239199674552059349380587579563751498809221490295492731518034176256967731458087506362961502920396056233715726568007295112001476133893683012641929888492428683691405361968088382721343808629544729844160776967698127029633025383213346550736277333539275825060615801321213825566091401314975211968544402399792656727367202307534610406958912405115067501761939737562420190990104957248086617253493666769062459104917547189827142369549095570072707148643789165671447883485113205279160379272169497926550479378964627162753104988349226427242624032514430857792712750810680739778428334412354182731830780604288873891780168479252736474260227256219045764446775438512932306868591502351777053843688046369764981378423918855178704091636983924076000876350844346671056611297535836711386942357865842165708778684540689954664666558824299295131961781349562204311771431182458509953854799434668049405753621975207265684831594556800369232057218661310160853833847730214574853744293164570756455659040491351820479267802876606888095886690574591829130396002726736206113154147393208303725118522738152129148416435554950938600644433693583767969865931088228223513074093129466917682913766838902423163069019713045644716938416247356068661065508821986809611196771435579919785689946712566167572987408146106654728753379659935239781006638384693427229872334356788545386824794242409518675718559368948946982608733452387168780400328100350356166389948633730736666001737157456071938689524166336051994890217962512344074770150286925626021630253329601478322021625920944933364933770890284176158891201972703141800170461840023629140318107555743593971370132796374346346625853963073692754827449538172622283146613446384228688011340794367255809837087959039186412341518582328512692980456126221385150377944685736945759532280285185994019978406057894639097151808943773506423826389339562443446089598590655353175164803549004441048918229296936606512268255534924064115397383144978320699102173539466750198822977089027574572832291374841242816858524883938706678973870160981848842894926252763726936863680279868239907261099876122395122750428759989224314223402564578989365982713153243821617636094026178136371917569058005577969751898906020058281034722909552911324244569712807351641208881436887868290663290765227934513943310095623308533034784547725700857627361403572649286801464152112961270753920234614766019064414322051426412642220410526818350501837273777680737699572848728520493854474915533998044524587950284031426897732644091861841708339758957290419742829885303977988845689766859465720137952027061754781266144912633819430080099332956704142619846552670108869958843138305584459060093705621075634192335530000873524250427828032455339432047515641509099830108954783683177456644230501547961248249295136512317883321705480028993812853993607520033904619282572220977134712704577952509252302296029400710497587735790961414795260844308943390464472662141902497826265045588457129088080477959978820352169450376086974916724560671248283029693382244662532951585761784897280647786308517602499720734015099692941775121068515424141144881014661488106684873622744494975439652751000063888716105473561381539673292675869076827199305073371471541406545531706691471104751167728411034583083596248156605982481626144672251025554109342572232652025869913564553966856602717546625224826585691569635210007814411296725773920341546947743048388358783432885068759577675534554245809809660314423686266010622582021398919537727704851076955237902543085396397742309055503454956492139924137721235827384403148094291401954521596425265632826867356071093030819462020142580917770311719934919654943320724399437604885072711745625960019708361027936408247242215462606767035968347913511049570438985178829224357056490647497775003651462913507153678178154728180761149835623093490726871293287918991688934107982597597037134542528483715314427751840706556214437388338626911396478577496550834910610985036002808986383985562528788584447446992545492046463449072786087212887734466901180418790170923405737093849742327749500459482494828895525651187826665928983624920889626287420004583955161368135955410991589719329780022729368004147708302232698468112770359326059202927027291284228210634190448496047588475600170704178729093905627054094589779200087185196779928859610030631044115185263275581614053394549919792014792597726895301538093774946853305885400430257164943943481298675064987578490318459209212581387257770606545470939019335553156299502204030428388209774663153340696629218238584490605257011471170593448118735148194863305640227307840380360113828153824869301712644401854568791658023729014820169936785209194218758771582112809416897309039964738897286411465317655798086269008744711053696112672144889846925172677828667077227124932368291489735926767384739078691598401425006958193547751737741589666673517813424315642192251259538238570375329734855075942555704767837390657962767813307939790205947046273075023363681205007373684756425339799298576145368602676814618624915650726826254000974668841729651709800732880644786068130225228889087158023692293468991865840083425881294508234945163216430709648526354274086169770022088025768543375893175459860047268484954225287323111121057025626847880266733568342253279522197887271145402648911762502854604061563537275766243035936961254067090334414657472791697935999860449354587306334628495579176847197665052478611193647783308928801288826236141009778365467998978445710451533221952199936641646325408811797918928949665169424450947827891920238492973896024378785721446197562931753537933833047521529423723887223288966003484235895024905714503528848801744771435591414928244847669738733828151222704870031517861838197928934083552367975280837568625014692981569853476568079209275243236054450393196675043938077470888136993296503712954057157757098091573214360431213770705509955663029345561054431515912029497958141497184953258330143920494222856462454027030045604576934832591735232785897900973000177508285809922766182027840825546222440452761649987330358328393168992911805259412074967283911488220233915002687466415385874953804797056660832487893263290876221043658616991329381188073759197107479502416588407610785794270782539885247496512536265982675927859712431366473743031870406191801342876777118994592121944456229073850974626632428513328425341466525231346322285124663284281834937254342009335001108595252292229358521376424649001956279575214044743696102938687935215695466874095013734078894102625157894991214571349650770668037700758032129531828240003108203354258267030482679290967660193882478627125534110310566341605110103191334932273111336177770255713044003816642818244684347046907630035237192623314247109210105053692645357605019094594967493599400160142205563972948852625142582044132593398187093611695086140497873297452326856514779381229373940459864694374967879019415465025362035052525686269960240032181064171900974782815086286622640241148276564057498153915424834401141544425189995952262082441918902729346136849840962737746801850292623760016380154431256780355324804520030713948784779743803102768256628077036514549920106700265499022798553546154260033949454155483421831013943511097856359364451942424149018444003847205568313022511510723976763556088589960152016037494141930382118898628743105290690384570757599869352606271383641328372246673465737397576321711783126274331857631709502199711694218396294268343892939067809225105327925225163000281861028005486738202959539280418915196288927958126306587924005071129304649181872629250751563427617859312483305090036043466372537200444359941707572840842165470093911872816435048265527469526070898343624098621201204282010063600125389631829413075940244006109162328779156611477261932339751479819769322603055053593831313368668343593313444112399879869884817978122767749594611241909487924480250057976049533529128878450658375981159724864681254309418891311053442268144627511235271224593327967821738770262274826289377574749856895178890034472921146893518013403812444081030911885449775266509029240596610195628237643745571829816209225107468733754618737586524886554583212600801683339273356228839184957199374541927762954289113074936879678353497908428277290766504921061709948780325118295817309301264774473249856659182966297953143945276643845994512955239491566352422216001486874863385452077523042761276268165013502332616272891387794281100887570369285528769995115082613833203420412335826488549775631098355583153475940596985018102459171976860226094259055097203822147510336766544866414600919436723121519723184125601328813863572758966333063997569741878272193111802317139297405962906904082750874400654999851814246286876500927129101517438396229479547804598529257874032352593693510649018285682668650832287492225119103721092675085223926658865289792313858085559109880368590535668432343469661601115660506067040858198454820608206833041184630875197680772026129955386795960845503050325090530862989939786201612375903516075625777020077317606988606798711889511678112512698704155570265330416545682814718426574321421059215367317658872614765484364426648833259068010209568974064175340363714272508551568907021384299808664374353703581791290074803311832418588991599683342473643474956223784568840737997716408334903140508706512599601246089092014205920337544369227240490029806466300015612370274549701592529695869946420974055069369634108954408913440534262941237500171289208509624227285845748530592802918198715872122618952901569380044784950122229571013038941201689999350287682634245158703704879470855311277688552778407925224559199607647394812447049345389396547458861898211559835878243418220657022672340890950265812778820519711741545044893673378502229800403479288523900646868768035862048723277825987549731639765527501556525967785906265768346634325368393022979692874378461972302971229824499246719354615911933488114019861007767636442160297065756213153981516169103081925290916059332625589140332496263195326855841499872783992840125047238824936024495590985308566269850340774787393249388569243423020413542815559604613181609074525088548771903550703223154910065214981481595595213778333002171831637499219940804063923082112219772862344686093369909140837091618405911690264856985625723855311608971270903220211527063181454114554266107289319265315586981722544923006715079166334596176647086423049814859015471810702871016081460490925261272657732649815547127334135764175195628306844513380226746803869841588459290107849516180152970853916315172583535943095997064539319449945596100571744746430126845930255405049767936666313684087657560149957980757742132516397413313847719029505829567608969639337367026042707299404929537077981644359863775081131385413615986353571765639630875711948806452065497717328926743342431425262575874076858420870483910992589473758841329934392874573818340927686789896359754174860484472884622189581713593618240940422844039664879659697292350347315331039316963750485278954008282486468028096273292427297949287770049747389026022379574153342421878735621305580633956281825870869837914678933551971211571564971195089303101895685968033498926890089937965702954799611313722249154604104638053425410257068406312834260235345833339161028302466581941680869237567762133034765928118874959675981333188069361772893486305535614566677415408592405245338938894521264858363267540567387665319202031884179646499678177733210686218854206589369061178450345833588848562867186235585085034005335926584857834407600749744490580055196416504204196630252122019041465150866244262744204636102674627522689968629247966033826811281117091330973339764358324882867017772558135353133405909507786199301125966078551165617551169452518516020504274925001326163924022200239541805400641301915587802359467722260047056546859979698617729176702618829648104950323413797541560716654233867056516442370493680545459554358991360605019337314222990302202935953554145395086039856815972680934964845468955717638594598237497377465851990971537275554771938352786545807498312682288437553683689468329667050229535037439214400390155504287794333011644909144913888400324638596952685085679609431623445813795080947634025687197553661995322417131699448800476104614257631484865157472392279371694704812421977485255798523935004109295460665871028143869242892287826759070724026564913616509616316006884560081070457477290009521265261793454259060158221333018703690482270060285851461693087528009922974436959442779888662540858933223126612978942313367276660890171897857193954186781713013897358910210180145107598115954368121504387807124716813540320757960754069447067426173200378944717670741694152468388874876034850975898434385268008348984990049489219475642154773193931417860780032309330103646715618547513768137262028027457892200016517813366479747084531551599241244009570311309940545405687755080499930459181814632035083405910423454952566593544964845345916275035631707251323146428551940057538887868093026292716378717431398067664796937494293809005150151030945791429375299068783688556911611498239480273124271080255619945336994816937207508269993045436006962157381011323180718724751087932466176034617524235931021444565185681112169575318800341696486448343250861159231358896025471304963748573829139680615260942367052743830874177255208607158180336701027556852208186870023261850437270481408865237153426663305175412364201842793510386497396364026053337533800871887236404252208100563248737462714489883341029350154222436946556258775628666474801230306647995965042306042012026362398032901803329276634294809203639623873973765178675415435213748212253352292888896529036367800089797300114705934171756106110210829194227720532117699971930095904496130269370822306754153993973107815212242204136828521457896118228529645563885894554542386296048208253327887368704162834561156558354841964967416030372733914214682466411043166868168174823708419475205887327712603251186177823679613820362797696971805197959803251384603057411766976246549993433051922548141925527573654140331744889937999523338765570847978767686196161211747725499595069393838085066403221275639778549460766738044107833897422989493408334614880384956763172223797606828226850091802135047026161258214801751571942453643748896118385988144707650183037388595638175504781053357896481686635392562273329963321501091021279792285912533872735837604288585042697184646547038483425930373878744338382681984797598148531106188306187531001886835902142066265248234220453551567393534758588159367299873030641720835592988252056033498603645401959885994902550520795763454249499518452612512155573160209089078504562056573886016867866760953359870953379565487417805264397024003463479302956605782991501316823327754426582736863880372224959067027128155579629416581062121406224573067205903696341161889388269735233236403151998021123960894002630098491772279043321139882739945796266014586961890436713377544866955946681416726891085036056969554888628413590664422720719161930510838100417316510219553493677606978057790708486050653393369392188257639331467406149640034219860617180157364708246482868930137912811747347345783718030611951021157640656867840788084730909004524143291248356188848326245924365332354534867569664556786744520283394389383862552526675086714473959627830350172004126438865922220317471340495002539122867192230668272612039129335277145986239795593533161138203984350926401261098515839000025725306508550260809824929395126105035661316793735490781991677563101284703257768420201193104469804653509486305321467504907505306504206346802643607340091608952079376952329358742698001306002016081648279368512460654239869842706304050681295492001236667034664244510332967681869037360071883342069571463935350515989135376149291272176315408530797390503248305068635143178314815106363777621903498037013464256179036324253868573980899215496945413994719061381893922644014357113037008096056333551664910789111138585274444265447175585481919922449010049169178231214994229424737760543531801572210098232881313197639898111961726854885589987512399252440913028375843281187374425883242332236011871130437921971503158437327064116538133453122016227993015361160489313307669688489192982335333826405247192161667314779693274550175850849676892007320917804842488586903437062273773288220332849975320026273767035274181853614889143807360733278398988956046969865966967830044375262310971405908322192839620176321597505499724321320933835772570138888060490799666210966671999898445507989205290728416855733624933963859421172696882198381745986933001285150555882809422936818226031344008862518071718450649970265749450087626102372900697090085542013548723576015409535868863623609682443228487867897945714071436925827781867317294847342968404245989050469614239097592906921217070945185502060401647519239798340423291047322023902046541812380027651731473264638919852943337729409820773906428763721348944779686888557784373452028215106743319845137344883733601600011988654411786142532273610675127493645317943600579883614157571262591971760286117289240828592324398879574287714344064002596645878274691970391259225270162814749748122617385743207233384995446873554762737008780921925781258524666597291665535947406712399128323438059825589609285026724161038211691697664934510060488379750351276060561939401513211522708293911861070411622874404428875933526140286679535640261409652456571318886464032589391346976725026941020547692645062396694611263963481384876357916766998290958002082412637888460590066366950704680163287087720873207695654041059250943395805194459418066772790660792039799577257234982614485761521703121349112769407239718630741644742629615090356837757747386680954046474827507721059622580160861081185531081353318546461385798355241425561691164685020974519490032420125274721449305512958073434953358304346571103462587029862507023152093109440836184660779972571782974335130394704986570117213553582884655635154267692864671724705218443670010809646062212715832307969552198110901111882062435058594340664434743182358607183521955009674071227596001771114321554144563637513458379886061869502194899763131683369348810303910637709256739979338185362459238190950474787872491804588670441817788460543849398440324148980489487614642781044275748234325867539915394259213235479104000986670946524076527707193761001367759513224512775169655969905467349908371267441848624939152577924408965134952483904543268609608818253507674375820960427585346584592352708624435640993016819881166879047846232173661826492608419402888369494513796390258334215771751339923139033637372744835382140090187692982722566886023733156987870399980644891179495601088953796331158862551570818205639593651683490019630944431784184381489614093784443362972220025663275401626019149046931347418836314155856657414604120423994785085903138889982162637979476920301417059579821320190236283941260452723753141497081740514121729379501213430961244106096195304284866280857243489421191862528276660604722020252221943749286796366242035047137824212280994999526668293461491520861710721230513165462002557704888877391166653776973973542690344952701534490639990695487834313513872728180980101226464683898950294057091379532458401144959090928574976867876468420570000378734969483978152403855989119007797232213187261245112286073395128722422623907943520739379050774294254268603765497294644486209045474687191663842644540909658492686492233085814886247857004503602381394994994074416206044795830253261544706431110087914960786808309141148202538435174642904746868932155665156339289005095510597362394589089670248284277660061159111566104751739094080816484549494664600125501738398860603482258211177924285102804454754469945530185442078645674852501360884574739495985908674364769941204300799358897236634271241672195822349915508439884793198937478145381568879587794433811177375355174362810128609275491248927933135467042581796234426671922935479889997592205692902037056400658450710405860095082904275984335842615058474309315856525516232397187275609194125340782481627312857205609884625297482782973809032052679048648335247302779329261724119458500835163393632283577779751221333632759332257648242145721084787382592074680937827773445922579504055582121447749306243640309175699717005448037399746005008646362803264672212466877118621148460941433316408015220998141603535989787698850680392087629546566736414943233041420305642779857329151848469280404066832499906204769029008072792389038773550082133796367589047543754918619246198072897454764471271226085242974489047013144273287601318717049997024570501059868454436891888240782261166383953368577142154218315274789568855620778970080371459032906822954416643679003700799847371545956184924720702262270979204784940071218193548629448151463281260402943760444592710316596598866398385779821610796673547309896974569563648006223902105265580915490902395804805517791578407647799396312028882845275815382433541708810693573653805848210858030971309527884496737996497811105120592228533526351270453964846350102660925438643681930387828014241526667489315544556289616133366576689836575852190348142666830793275492135324383193821169829605205520927332605537732627381823407408030186280105822428108941343536654937331517905117560500555653090216051858097934420592074209008713377637367709760484897502044975653268001818886378687900905115200761153135091138495143971947373306876042694837811095829088127969742452187151604437468568845250458965666740462530010725428008089144945592862613630465399123828033596045874933157965244695589932182756820404881722078979092098403869371458932970951489264332395490672744078566419550279604575112494365847179830510311605336126509458376305775518051439252569283564436589522027252073663569900517033083432078529803747693560321104171387555055115679744191270073965850914829514262147232302226126187218199634277890947446647949062062728116024533129717194903682486357960138292752066132126640504797194976792751748896885029083718588749539784889046875021305166748552148973408089753975506237359282989556974531896263025101328390236141302166493423499022588217923641783153089714899402448882706454666453828437552414558103635071121655515071080446796056645800203113702825539092392019982548372153982217581503083768685201530426656871578917278750334265746538707802724456060297946814408897339544721965572471080431991269418482125731918899761883693158407933847296651586158679119477904795870345302633936576024040168787863468249826439056934442735883545624676264693733051045514528874397123274382725246669048113092499828576172213893096760316502638104410128986855247843730614104447286898236744369247161648015447351158798150101612696457111358107504452885453248323838479755788796977714931255202896863306099148935290421035444211769921481049380721472902749430129761815665019473314341566911324041262381657629690126388663106181957938474738574155357526912502379210359106330462713403217533614977404231435603370550016590892353427179408439499152953757852555299475473943109831948836377351906298763753439686621971512767477953557869968823523683825331560830829872787323463199113856364258687455257067036587043405849906691572977360926139134296250902188652503120750727186517092876138146578944015648316516060570556447884051790514919828920468948669673113595364434441657014305317189558413755975255446556368575480783844224617917026827653747741277084728570942702100991225963905703556393576123977183883676161397536333938312715207761941736697361778163875278082546404922680167836533702358578141072655850742392107983492526063442058192044819207454978031828154815488065808347439348152410666231706715772896632082257285748978247929188233330430761041829777775842483881008398751129716741646551721729079150851445920466521543926317376554321748059950557238691992318019437739501683738513978039767380128862633721697987689171323159344813070066233747149983337176938137039139788597021214482272938460542322700345215234316603555695091328909111437111009867695465071268036722921676091117786860714133381215948061053839268794029612600310604301398484423739720559684923609334705167427722437256776665025097684859059083749862211854116895409815333505847939335072292104892386072793926107902142807460948967677373886718491979946058193252305050440457754883319251911504193887178363418240184946638977264805827691941454063861244839639448902368248142099434156888233206110840645954897847344646974342112093546524872100262365407118418536051597234925448732312081205816784281190296903910598380577092162499410243712857650645320073749852213412241764436478960674879103214502158286205582034060926895856835378991282644931307972257215706636157859251207487252312612089447610195261130890983933324818794233027212267714885065678345268252283698279105230635971629240431435849238708943188537582761265185911981508498960171919375624787089338647478023558251954011402581385424876862284761237484255554544921106717204073486305969171498347725118863929602950224805067059476214252117298528654026195794016818950753362958344337463247862514412793812815966879345030184090239196848581073254617998085230930737501017474879476162034459194042935345109572778273880922660339505388730636826168250384794417635803743598029382921773393053293523399548870550659238616980107720224268980002169069193710022274564670051763163018319459164603453947764619029967921835315209755387099082976459133478697995016460175463747192867759404383585694042782371259718579711564617135969094354128515751208590482794590596921071138156199702834442402036540680730132199602661069045405057676275105607317801643000060177297026187745531076262199531017467659461650853616905213219076573765688226116986655090361920766594222947318997660857855021919761604890737785190949331967316742342108821808472826642676109392432186549619368638210052182487454003313641530572044887495513093603634840282406362096031788251058822724545159231604435989694725449962608015793243318539533761128890607051510406106494752362036238287798234128391241238819167978754751339401825175850908509534612626415984397257122547030101914919825913430296111391935140694930583670219369441597010901173465427726981854587476309444366715498400019993233609738210559918140635985703522268210668287398398064922069345357485578293814706535958766879239462054334480341775924344313775225655641035915851691994690363092024224916313483887110707505306167732480290113119770218229376249919672160525964664172640970315577646133435749298324485338130858011342571414761321371179609714490813308894585039558188995957770316585827589740882960967994032418227597824118076690448548988587173396262009743909723353186310685341585692310101616227774669159109535011343285187590982867617903191096214132866278609827407746833870694178500186178703200642843545174434856158554831260582035073482597474842811184562650841837156662118560793823303187693275612687082352251454737889466046001131856438663477709272907353251366724606572222392757993357420388997803144309676024591436764389349410581337302965321007100254316572512573333433802476689177059199092146776386366409666639825635489577268169082323560867119474594954478682588462218882171254025334590948221666189306023056023054963830739415360462938927974312115974397735995662032549978417243107642228028123707585359595411115332310527669300809845861812249390196898037595777101624777416996369841935252296181693027976983475538124219293201159735750396696680985379111508960329833062270513485456141068490172702728563956782115079681765130559176558043143233417143491920537458744308649006664330064348464340369926282086897263973474922494683773235445862091625971166544121361132922442284988463063892600187871057185637013285987396071943425023738048381180623538881599578907139700795457658116811084225360939483914888128327916542194307531624290419870344435781513012627525818196102303618501970613300081081668705085151241309370614445918894740744092961388811109051385137017136004146944612336039024387264721130724595283977098082604228509985833693162734474281809230211354561018647046949632621765351764794118147829309365215799425096052931616068261320134023823950596227754560789845718408117889975634169718396348985115877405983763839419101937264966979721490652236132271517862351040588435026975490660181906591119934660124609292192068285100217616009989883968835695070491188416352277019807066522632332758945260593363331663597021919553028692547721840112261779609106634522822799505051530783441654191096269262035089997577241097956666834312310729925706111143684919680150921051140624506380119962704407352964840367135390105924188750833604400611369941344210543753293412222711875452258745383895915960625920341702462933324331007882138959014336804789446183575383190450542913693799415323910057180235217770638883780911527271987643925229650049764139503631532334898281931486523545547342001034596894954649839603684781505459698779416234931018491824999187563732465201194327750488842452511831120010986094312409664995707151986154750475935321171637063106464604637706006112104924159897308134991999719981999331089084362828403136013062484668320581109973247109763871759033006954563615556164870063588647073444598445375984996884582706155927386094332103083720447533527181101099963536764991809931470812480630106671288336593113719307550089793617377908697145360983752697327756704952635241285682560490966217505381067146123992368195252793374351622104527189989942117472025566700274935035752685567184331762855513022839819872067058106114637796380116733491293016053525174209216153951699260730393889835151744458366273426822589778192480572074229544842034892692871322002660391316415683129939978694027198116509470188759635015491104277613914215464968558171424486490416237664775862098157535652292057536695099886219091038229091501352249976051999412494800497551850234913987237341993803797369747946708226614855812406200683086677244579112696516671012227697246558234326864017913777904993218490770415253060338794177809771243145554960985050284840969075345668519639483492841390975590842956389858938172340632384916452340366012605951386016311721239486546825968910653426823128796523461749922367678274106555861147083131878359091477852563961535975613400437965008991514268534718246140129204549585965812184293345757961814669438539751940620665935504002766359665350310412998400902532058439053269411213188974472609621102735873977645738120955654156559466361669192823924388371150950482135256620836172681053711796924762018263126659583125359823810796621303212244418547510333281791156020711689623989904600478958646960373916091643797147324542960310793140928338563997394159340906909571367410942742699332440176720738864708472184513032337518490630318007094541201428520837023982878493563089765623962985173192633628264871594814236742590724849744734535108208768050779306192930468007326687499638906401903861893688042991084963610673650817764032227925598195654842916148853767218111105104202036983349342820211653502757972086750468245752556548909165236458708531723427325255027917746244221515148675904961000383866429815760537211477970983709434844825742572229298551829702552743637989070042792851986731849175315529328883739225700108499548265560204648802956295917492053355289585822585845040362792802400056089075035287083778372754430147380166623327812692774428044162480226729457844067713972182389539735091240477814373284369236796332819776314645244960283990832718844879151303338652765901963791176637920050968031038338814387343707924893495876843893220335414093114950366576561017598254225081079710086510243179349763089279206591183345660144866931913579971285559760457016690364816725906806603211070306383163540087256759931052779354723878252769681588702711985854930097628000542476018365743091482479533437685913448425538209160661685719391711123090613916446469760194908822420985245708257627706561530227953421109894264020308318857378352498644796001865086933241318488580017479935596693435659716147598727116025108615396631245126951868348787305005460556399254774814902018739895463060925685293290278300919033091971080091255939072056906067916500882487393660324733482833119148406531325873173368020942035211378953488456091776847830687348808444817542774564672161104392069283668599511428184889228877172961321743241520671930432533410258335366586617031049366673688151636341614849985663285965748963949230823505357805758181365815265500437426243961550179132625041723520748052565481196517645804094671451630666517624229218710976119248597922382706746442712273823972914607081909778341175593224403836281693685585405307582019707028715759701911040350791509736461654142423748537698212478431654496066678106883019289175916666919274862702106227237732118068074871014019734771357088476071768038543224643020638281026416083317641183812338871602236165665004310602714228385104275416358191346219915470131888782488469337357081365187856878949247540618290811943330512370065084978285272647593624491409245943747479405454035127718319461887256061481038404690935746897026589728867722949026905692524644176777912151197370308210956868848238039735881734622201655235652969972463109726389950901269584865667058359985501361305584938088116136000863559920612740262064364422017700099319542154010521312205126394389562680712391088909622667586889313734397425279618997581515794816129692870624754843308030594360256292390418435596557342836979050154518714803580038661763944060420467064734541723453689165917739928654298305891310130201779676807056599297492506562426089342404319344149397144039156360931536296512430747647579260307605779958215158081185061787776973534563489852164689949180942767006466641773423778042273344620163555327400355624575960024719196054587434759252535863145400258983565455831971858048905444634871613956010181422933720700963071556259991896066169412785920496958170372001490410728381960016283251819668812615019671468487981990942259553406480167049411348116681460804032354605077274985738453773638153372875218328413761558447156388421731583390428944690849163709242351731597619725828461960442243786521358967111325242615987391050934540653574052359253505745010621566225381409274001322924477362845317985596771588541400622090363968407575615223238780311613051464556512817107489080548954404949541569726200417357747331770751240268279620194563997820544131148530011879499806505992100365196375259094864394765448512763290092804037929381792965181815544636883985233566595949680492527762217243237637685436068905292384060595220521853996799419268344022461660751788041771540151266469499080094030724447726640653164749161735837918995552446625497639234015034113744200529431551721948917970083049825755138451764111711107855571629018730824954025728492776248400658876065897997302253557835488831913004297089678655708387427292457186088897699510932775647070644117056179901036087138366264383145383938017544254759915791945469954775194541881910581635665004624289064654185512646582820360217929497597791441775536168135820180163188019680563871189124622829986416179802531737748863746773842093443851608729968361218017519750916846858235052046921741168516718805866821128779920932840669424832387821555651292064413232205867723011123545431027494056135940743518692055271617822337163880407572662632924074259379549198955289617290913540133165714797172002645674754168703351556806176875868298910949996670874472112938060820339703412785315623968819588132348974238942151126662057960297639550755894473772943337591096224444634071242918233097952906601342280199221524272719592208317965923566364095726263000268613605420578939203400795540930459558000121869140473285164628910696839529641581905347250164725539856262293563157985137637060784199017680848782410030754597969781804324311280523321779074768221741345464035041080660714004549508765953054107312103399846202084464142010717611180702556821257864269296846432289324664062406339733017114890120528223279230832886990601286484174668442148276335920841160309729710851352042248958705603413989920328146570046696992823202538659491812809630887694146767469524405717498411506712187052782143133721467377851000947311720430022270743356886224493647687091179418180855115819294372469797417513696442422809678138460506601123355591616356826536755977845443770543098640186474601820985327862907948924796776253403270484734544285588340338086696957658743392245869764243447472702532423282578495286162358718184018000870872294102785600970145927494843388909038468328510463350359327704545537487079770467636724198416889548621574123467133648501680833423602500678821136294077557383941171252347660851944423049583093419896694376490829240835653315652693351153029197219856949844921944208116915996889483815668410031101928426860275160082899184838702555882511599398010916171962072850436981732373670854499150171949287161916889636530114777743223033599914972441952653797769443402220487452217557786068044537102123669082856450420790667492812945842458972148045265745008875961171965534611391244833334866649547869270315052501366956197347621670487045961187235157978792637811749881476322639124582568432064397949075707283573895947617232207663094249992983228389345369240897091547734599079032555687638722820237167192055407191282260471805552289126757541713555027789753408785378909576306794212004697686578586923665605975828713519467383768788400593912773755585158190714211033321362758406347915090372589398462519918482387689578667216642373203644709654859555380463691625532013479271234822566709506200430573301041272580968976380898710983548361058075309237786668064894326329168302494424779132325691348529417557611137898293303711210539356169381287660999967590009066406428487852885137580098738606276405824587817241158876653239763013672800723261199809636502147550205966358594521286330009131548237728295531471384177967736556700673611767311005135117402138089493727068364519922847952219410524633010298719848136587826987759701830561521258379709936639418219320822064387354607137876642654882160254864844381059465536994734543152047691490849439833112146299229520746127830867668854793974446954051537482476790238128280007697197517797251905804454863009183585481762067105172742256583904264734910087584172760813716298029120664651534698527121757361300454833333688286581730363111025764875749951803300203336341879380806673507910649559075303722181613734826037175945606454826810539944594580201523375999671616552320107265068731846219051205392996343938168729077151287845329154243947155294431157192416164408249903429841749155727730806687964817593876751729928270741432131488882903939470742387977197971021242898591028926739656559548720643520261888076643319037668871108926092606549913029001234624783358927787645720125356637863071772054039643789612799679491545095994336143198564116773928737004074335699354221142464909589749687471248311966975078443529729070319083250515951197892882092580614373130352020926091093068936712535179891439645394729565672734150751124763997921769472304996381685225648591759601453004965878074395118706052810814125201716192350701816390227924055946697411962503124766630788573657302892423511204385033580629271567986000124934760817253741302604163497707409253638713797859785355606447396889042304127640587882998563088265909819409359663073032946521906770762877917566824873557813811214397484520034088689856308821414699588737834150459000109517944239714703601295559145446728071247956873222666020268011082530667056374158432390372008294863772313504292793656903493422414813452300283502802330485339700996877338513149653658007284915823974695599228122933740591062076076628881413205811417545258035069877149990643510712339251040498589736132480129259108315260105899635376625462235731590551351314768672619419272392239527185187437145675440185679657634054021136839863046494619579636616188802845916356873265854898882335911819146515723980339181115301376149441218671142603396079301812049089999632656778313469402167044642843084474813260169424347251393175623594149722938074179266659080475892723997017673514444170754198810077682096915592170214592693544262035819735551306461182352226957761462664528758198577054948512189884873843991654648396556927948016355352625680442143570722095541215521993514596120381277970340402437022831288209640945300123337713774402618313603780204149748748630426722310842391506868602046673969466407685862933777473694963342084104601111167574425751985352226512766105947442839593818266838246594294798922305559309838407554381457771607611276913194110267433638022147947015825954002704525532093622719601505461158024831637226554575702336640351656712401897707744315311957955726135544003299576562466864449783395892310505238500494517547506551372011085033556498590285394342086636501061331702913431552940747836698352170723327714996847547464960504513265263558320519903901806435999981765154297489922082965983136665834801749736052237926072430128013200312205733707816540373715385115588946934088858453670389041563370212840923715121540810175871018796968410873331885693947618904192114812576799217430146485088098766407842215280472937330286311342540899798949313991749000268368529182704838705666851285699905627248157946583076979115550010494251612757437383493210876792212818638579455414913609432133415696543842299435628729108659638803197820300860349471426894740578494840737192726959446960803028015324981007053743944037226580928491157915107613361258701149902949401783755891045739357388964231406215823021807702561291967146827579774073201160361987010246113375497034743154648231462460876917603414123145576688597069017800232758456271047077975776919593257487602107537225300404156566155442409731472605409452052858588408975850646306978902069569448866281410770487812054463278751885337044484387541687172640700538433045464879848337527846142685545191605950509819976560704985796569481286970682596559608297865734637361255191469228471599332066017840662996700114932414664778637005992856386495467724307501213590212866264765965622013905096558623490069390376768599269779399722972919150004772181381521387206902987938016472587503870538799534845922044057706327017331014231227276800682030033724558574925221142840757187797282270850325953737155352443963101428344995980237564151482164399658462723536744185228344716549407131417384992972926563295989266575187760269399350097979158676978705954630823361228437035460424861106394782470459932911733118676964397556501797280079308571076252110910854946598437690693782760329301921543492709859118908216700180072552419105000481651597800401808916567271112298178774804958904339385726689489240992167677882362160756180929577186819585799149785237998930703241478502889090380222725242235270189203213269231508513042346488808778528614590953200428282886230612864803201621715236925701530535623554945126614358098245133075226521281803405707189491117414674053569200707046353253350410150452840172877948467187391999062186110119648590443869398464338898364704189636544860684318532173592855859051835959680452969285612086549422835285822775394697453179451742274827525013434934332056295623548759952043742743492863149350911925870494363593943923791694502993484391608404898691557972007398056088359953103377590909399239794931563383030390343709769534975155617678346976030427058403556774524003556713445759053692757906150826245904313836456600147430453437149296577479029474520090309935700235861779047047573969400497586614914744638693297044095070548387210406336664547049434081676334269640214548421273787141360686036445116527717708833339180102012006151428717570934019752652632588460654539354219621232348409060500817239217017531316118079556757752702022430080301017807782336281174634494675444898641796941424502404921125188582539156370597419556993182604482053772458993752774450758314012912603731357906277951949577881093815229999469092631061218968329839721638932806377773136467475698152953330486523591024155721880679165246922914237459337729194629824189035084761985497227993967474252228014915897071877853972642843838735880964942302542305901810217797110875544072918107822902127072245354090772079148151491149893730541464132065644904209736835520120676092209803796953141708526876224510122255152980648855882707265295497321050857942045573547387532369187294366064915297771392172418751112205265305934498201486016741302298400193544230497287294138545446092639027014484783801534512141861670960543951920339309525104725250022241561068910219070493817341017778185172749835120517997827100548842396120716603152421489565117558002789136497572811362043121353642568638938340242450415451316060585771617246591587796970332750996055216834951549514600665800843493544146679991509968067536826073737005261961606642050421254197116656373880061341080161909233527863222470815270111013832462398508790052543405821459431887309003724528326417801468965449879291137485257125162351828029752118839873172419002600457765134610744951827819798169214676614080963299394533922065676503201867694600112104900038461369448531969366493556225688819461860589043450944656093526061784398077673098727354574123185158474389096005348619932294442760324401222355651650044554908299662639271608026191898567049241271000948207725565298519317822800099358412538285926289991667211948758851782089424679522973295467820681877812883496656974861337753580448011465579359338130230414133600187538043258786046969530146620312159010809387015707958810208404071442818129519185361382417992616925498977788501720833929463312158818367489702348275361004890664295942463269463592112825828763966531985027920724141289268499059625100275562621847950891032424286900110458315724799491354396282314670283832261277232510692683351697659592369292421618513866664562608524334706795472370122275096535145657506020561937769608073108195367450173191425016601971269923411192054433424631962508026706649065229968004332814439901227423750210309196763378761797116241904436915867473293662864545290075196709260406851811183544498213285847040441906369991329429853134038982859961737179973951098938725927846203628635637796298405784461254210471507318438130424987240894372634923872087564450516908007930887620924107034653391297999679268966274554329606949365481045526225598582885305510068194245149013936185395523509423829762364784814994107014477383571850890591215612175378313791696738279984524494515616827444793431344674128130599103832883842469743471111139814342856962048017983879478285661899815357280488455615009582216714953973183081444155620228021219433685689073530103177020883675971479199905754241262647970804763232505286904438814088382602621763845193236878995981885864158521489673939416980396922792732007089907900263696836527364131934926756682782178391431891395030254387023428934687367732082784951832611129036042287246037738561827418772055331963116953608616526402750593485176325981388079348846806152297486789772474328683477979823872599326516595664023368981569318651129280797827500942614262160055460623712409939266372666820033658294313867467567058106790276082247116290090716841657657903736038680100175957687941574718989945107229155205716418961143007241459907297541896416309940533541935559188784757133488433706169544188668804492237130291045076321797076284643275053591504745553648083156078833731655028831886704773005540842279211665084397237486467105941469679396560522314461161290936019129715404700420568338861211924605468102707936235636773587191837670679187059818431946850843576831768856372161961352706575448885032344634905695413086534219715702492676580848846840595025264098317497327803037886333889366783320476508591334750039471582873482982615702425664947449410496108024658190466419905095122270488826318065161886363706130421457513113251542065482804575846932521271292797232998698941377968549021359902452767703988138087305212111410831895800777549348399471017242131108498885685816968942420625772007118288184936942569736915842374687601612121541231238180931811061009204755049105188353303618584908099744062741249802812732293862396675072495078236469617535324184419876013141847598961178950737143928674116725855425392013684901069716027567589658232787316468445481139900080055458311838916456883098250737103884944510452263057197171997641169835528054873684840794447983658602293813468807078856516131895797155143128203037021815541409754819890531482432052269192356102050116242765902706603383976557941447309549893042672974670760605268852902773415585808563572114633153833497676821260503515237093928226285068867136858336345295755797188169802324470946712027720404347643312109417373064078892720970530933001910534607345010127629054782094401548745233537157285520960472575185124413476198049293309177662014808309908901128539466394020429240995211795442005247801685334298172515035921606635450433763817082638742119232793251400003449753337703670285352496111855817703957243258760283217088147369626363790337168733114187654500977764314725574510964341140110795147406521169990697188500648773634441912182593168746369230653578132208050994732001823627243393718028412666728376133147974511305773053736854651528149982394077633040307918880829007392261243963119173130930096412364667538692984289892003247485575091727571030269214983389333767786885529851636081368760295063763338335976275547289621857083181010457496425685001225725281316814289849372348414185893307420032968465618474661229645024240231019642103457000004336615087615788339981612807798130635903986242000978170905795886360098505407775298491880364426279258275400942187797769863669033179367405616985255629643458529983532992378249570496920233268998271157465214703716767059108543157387804310463498766086023580026709055700348189208782365771840760635577043145657929409396270018296918193801550106642647635209791173695052580193349669354338012674414115894361334740328735520566884017822399752943342351575311337113756165721716466908907498884122595728873509073681122774985101295028877366209703098562889122455638608239628460301198433993875223982847436804463443763349476670338636365048025275537638264355815057265371067493654917558314199683213489105490828830036255224237248710853780919566516794819920462624910160999688375899921844094579167520707755772436758255650933972305473000122600800572651986881820527412591072371593848051916034964722687118585841280628461062080884038791092516822602474918057968596296544932720975631328850889065622152704195587063610321814448190091504304003736931965158004286104271828347358416972086070015951592457011446668951015675197874111166651199048776951870256714656717336650987497584093941652114292210305035591851280322214309163591787733656237886094270761968412282863346805891381342900627471741906994397508213757576971497918617311774555576987700762466076898721145047927838398282397719043582147732116997189622511788847722862604482020213672727988445591821913623055006545649639502650391376191336935776541168748680659825052697718056462100879495982348226770287431118248378810159278904454475570314322049471090068789024649732995198890369499883268093738989458925226191847587764508765015054894281174456418322019662194168240249454716698133421895453526151724162575391708133141950790416830239058886749000734483659324842027208527872116968967278623888723344534786624681904778990977855264788654073858991187970311873287277481558918436718927432097159055598461195052607978968390597443603251092018584339428052786636640832551212112504504320032690050282186581560108036774474612625190206528654256547650102764004485038759558069073230167850402393283865340862012665579758275858637621641769677407938845007574722530470068739491238386322751329448443599550286735041081646558231734925089796413475567236323443412990586391357622082835021657359840404034554446434657622942457190132722235109773979316105729772053077343524071624692132729117166853840554126675350681869685949988761950304053669999140582239167566283713602232553415998091391665567814696981221946643439665385953735905739408795251866802128812316918719574965865850998207125675437386261530587263292895546360789839314683727959860753963186857565903328376744565039220575302396126762364217103189059536266293475591395842670275888481108829011882799675306913501582720918776969778890090744884224793182235914432922080553538836381434427557525381402693134574822355831041694162931912012700798950629424785424121725353207845901633300758475278265936972144497205259516900375652287752130486625736354007903818646667013362395973607268278143486690535004428256942597781378252174305451881713496599424581248313906030363842723938544583660935471777451071079256474460235492602379363689173985841925675172626720040751285771676844498772386717171292805643914573120482269002509192296536027591849652667177133408691233119023060409389556577649803977364927996456169844942745838680708740300881463556606784867826984036703713753585162507687520689615140552153724038709577227905775514213988186600502173548643018488008098378812558038397178857701825867510279707951392767193750340861782265132361551075584147897835881849426973971662513101673235241057015922123759584129356778085073025083068694830013249771239116617195949940946578117709191001435873849477125111832455056745450065440040215428361256432133223284179724187661897605175755992348273394277001299797784978566500122207232444000425062653077801453322055986047851634602013294632059203609064396421152104989317729307016515692994393084829549550560007816167445311429264750792701871612388273314783230723417615058505325929110510580091731237255041604521945300880362858009425368952625500659651037417983083053009811367892582779544061950392545280903654970447163360422754508101409532046011965117779300800464157410916163198627397749055803072243122224635529905655583574738705761234777459706547135254021239027318249839502097899275223370582405178796123233373191459583146435301775679337155627147093708250542074472983217370021923554623007626432503769775497295771881248309294372051058889123093186224333184631155035886403084709737672302198534112434789804605421375772082619164392966895158649259724060850224635414029197910261820509843735252370757403913377150225026913904723238786676259739004348109280314506539293155917801671803887648515977099665450863107547428984978832227200865742913466239142372040752519335113014647658790314814939181445732104146639769437456721266416197812419459913500778305053646264480255385465974028787179677121942282264559390844284403590126587446852720028401597631219192813096141630989086300217663771950887415462602334592941341016448314707030415988844838668816494910638517848830332840311997452535228065516063311638541604955037825550836502182422853057140488919066921110663109668111839048517471961298728389297358151327330395582254130191158112125166963041175404173406028390350498488087424799868559413117447733371018047293550586967568072552795866883136996225990302085200075303992178460152575882897399413420275745928374245675453916495693172983649130015458390186628533796408934150999772440392246044691649618534761856511139161930595808143816217581638802209200460336765976631297483289961375350558630227549410377975527510236968004290865939364343935320938961164047219939703036317846447261164401658926887959910044070558368506970060412490592294718056096347836968516623494414423187494095914622433910621719481987074052388188120889900242329710881370561674619108380632130247984201880563000493505740789329597898765596875851936226129431228437940395655758681920777527938682265388448829858015558034458870152789844987912770272424836178502410590225549249352762996652177487023665634639448578414319133117400574531667827536643049709390131842342111045029897619914863615472991304834100565828287607520602812978404252698856822441481719549923409813326489028694982195979970162688177911740451872270428696181788089910389916003956610445131277189970741146791834584419467295644549856929245601987431047935883904541923578496481531861502341858046315981220709940859753561698958481714826109696992356300230718674344746668155995029111572870450333049249062833181512368484377966549859588623007708061662862214279625254540918881601385779151381408394530709794376137016918834294206729555753736957551956480566022781235277880920514804958979107574685100636108252855562278637603936164141428596093895278889603656199226322992696283425454732334747368942370160962809068361572529767450978733310106091582426435708065317175764161166933251756927278441352099607833943377909887388095614451735353644147603091972417919931875429367608724176590906716667555762527056863552929047695519516261306141584838599445364777180535324165520349352756083544031254931078178308379572162286829240712780360249446052783909965999946768530600023963446233425223049139993999291404415007242673437886990502942588587423077395612702585355109996845503036796444699396507680585969303357347775592751247366424675079936262550982942514460954363753745643878276179818623805757528734721701475038247376381378188025667701943570815450173939961853999032033037921486443896193301690360351258916312645197438345209641877772337982626473087588366766048887784895047036881248852303917174716821495159458119751152916651137064697373818875109867743140579065765659103198067815016686515441572014918698812206477480207753669550037147800579228328040802091554770041322582136946254045418722756752816638741308668702841361829026972527654510614964407350709134237294110252416778050390559341329888885944783692727966451365370445637536607930627342163052170647324044183685704055618900934977113466980764892738791783520126364017949276072677740240296153095482331928440943722939319320766878615556517781216830302403084341073902207589266036566892279901898818839703272768984198644106129737771773794389155074738537371655418657060131484575659541932741593676187758778403970212771691000668394894256280014910143778818707179935620856674540460490563714036131666536568088121638217887369737066560967860274028567484403353776879771968997455407941683322743508607511574551712101756638937902862465714753604521546691401866741594322863395590788940625980143216073526724689675875466036948959902526491882493663973454185653359373298505714604835317708111713674417477918916724511557892316160113974797648521217417637538276540066062495388161407092143975152784553510327148506304079089642721244765397502188038150973955362942665199206291611940316271934502020397221254725630551542343634071380241099382333635022310890310055236985503270925271565061227396673616888853304817431078744765373418392110141570302483777404397027709629935180591736671167809671088183246343144462867885509679102508195905158719708571551598939969768282270456077045766173867561200304988548914002124803928881212413870591700967495993221916933163394318106729014150145183193641688316746346078553782222868250637199192949719545310831331689016356614636917133576822666318272566245276620928980419307850060823170102549209819201238250784290657025831047661862622035063903923065880577767051375742551007142419655547480012985612643172726996662368349072147963043534535839698930749576600764296265827788309094087255526614711416753942227722898703114515244280757787289900556945382453312829733630480004144888399589540847036540666703979220243489652436844012615212251674118375445766971379300664660963161827773539471580121447800135911824494414464941498686692969671171185466906743095702023792398221123858889721172711210669385726902805716621018704301124669944871050811025700382318117654828393792849578965378991596594451628700121580836495190898521704551789682459943895997671692516090287736109227822260686165260421001071551986767329644657630838290963604553397800615882954669828411399296883897932616049115897764535286331515008704114825610721268214785860407885467022274894975435630426355625454843593779752388664008939546170205697859410834126626223259937922002404656932594506147596319096539261515666954556091621046928481809514718631584898480710023961051987373198281790315767379214743448978024330216722857349344227398866870075710075467672474408746733235509995292356255302444557087523680581778663114551809463982603482206772433756257403575656088945977946869648956005113186014613927010998972343142257535412730919884481970738961963509110804201754772299145037428830963031320072113061875599133364522069729955822107876312937281057231412755131248863232908121718439508974461381124712838084584484582913449005682126873811057605188055994712852324512525145373336568502484321460087562095405819282771241855332888961501495902111345019516958181153171872879961704095259495437685678785582356848501295914779155902603399967988177526768202546050946407214809680772441621518047352259548621985000250158778347797898997966091199121533866215861318027940618333014400975235559860669441732272724328552281143187973222609296838085182468816236824991203329854044306617517791824833929337390986924616992942583180178025090413852415471534477510346252162822972978896853848234234221356321232684221286781145896539568343071083043659992893384384727933324779242670568088524824332895147134070797028807948400390492641801083632470545770715325912738019702137384039542879386758505106344607673385311492025927134177427517507434080755056291630960581892052245334113592435431259945876842740582107515694689644104572069527098813909077426146931639175653318696642656925780568907143472998520779149181875399395214963483000182481868405990709288710206226455788704741512718862075622258059677849885672336328051535270285882521637747182363053224140520413620720956003083005652035688263035344296406716532886618289792428816469008273768579105323242162531380344071449681680361662422515467970223248228374450824677805878765249768683224256360848220589603934871729196411909514598914719805531528063738274857559065695034657383281501511343682323230983432120774330188877622100562652152727301137378082639434016196838788881994265098934810696921996422188738588361780032083435375672940766118365363611053003590930676918833166865818417743140574143186025217445688437655152716635552729779046516210432983928920552909351729566758735500014622067546596685449751010264556989568206050599612647310048341663230311175127150706344266620576573347406373047617760910344694893322633582203997488512070935404563341578491662202143901405270352688189283366437279956230770114492615885296066155011079840465369219800769079844655863471556159695140159030090757291010898950796951202704383371665031583344360921782302599775765468105097611210646662350410118046029270224567160333973341179986617916788964056263008621218094273195406866364010046154296314083915759152056511971693978958199068800912021229903215717636899604510881595369297187413636542922660790716810164264661642393553213958484994929373110940378370814737708573114383405459121108161570250719588362183595123152785899702372070092632754493385977361891707641164457652927280459670613106250922501301509344862803674465347612374392820425673391827548862387895276896966447802316184294501108942937608720856410265669463000491318089405834642374945054196314715694029220204268358924882179925684325005464209028152940778937109353839431682506311529124176107276978241959592698019332284510220866273317793150890160252876904264162486468189598594639428385807091326542819828971955354630444943394575704190786482581264876166178824989800092412627203503762180834019836327644464250795908558563403545005374578085048030890588413458799595403179825826460455315055493996406628637233161909936966427381527277156446893482261257596360970441419134922089923966217395901164295414239822355496528977819143997128698401716462314376665058683916240685104161934775769087988652660165540158328319306076711622833209220596208752948984868095382935880687644789082932258496320484941087343221038345711525192514258725635896829286343193031723021964250189431421455717448848085548664903232474389637061365282308701570247998018279507108486408997907359805195879277637162933589236555139596171651261146267251628295584782185601523882124309142997946462815959253940436166842166256995649867955250934149928762221067075565479198953001026078079556159791051400112766207871906822745649632408823046521577551880188102248057052943000773951875718932965118439512142013448848295601282716944244004972184578352911590478248060914418989371113227022635834218615004495504080502105902027439415619541027775782535995065383751959435226831242597050034525587855788163654434246798096060546970884721382632565741986133076762345239226151586886390440894307056463699760571055913896491733107298167231283265929210438694627849609140042448279488987050103140029914787454648731139672103052682603993416886318538147386549976849298802898029469050761437657604987247732030964073036783819328603133928197943137282695527833282709688415557055856003534118805242616507957196633531827091954728304537842190779425062629136118046286338539539009013441832098723762388536277669380867419471255917438504186771311215811378199507622435099180366532651824152895382567372969085156269611152805190381499263150195205338681756874200814981155695112131546128749250205615286057123776922039788567587452731533982155948603756170464343083515129704377002308315745884686900709642308953158153222373455750543454479992854772344085592702565924505259003063268876970207861715044063631222193143066946274715102690263260893447302883464853459223394031505428328820549055224496925498457234569080871770417010884294027131845674144265041367155248100304129480392783311108610803595829658935655769406173112455864143542907910791902644410795433523045117647865176311958922741906143593107398006708469052898477880415526079147733513075070393547610795097372273338174558299840319169953127244416649444146741560907663630427796181255493922831995452906277577380918236423416081100779945598036232564137425178291454282697549750982950856942172192217061083744861732643694721024052294396836750339225151840457867241887504806026426162501341004189132112656874069275331849900689342954987744671256909278655160575899877499917158076331734390460847251601904555265615019808625285115677991561586833002029120668658958768240438510210248637182007077468816264692356023020385874870570956693419209567353739803315105639997062308976780960867020263287303847584544934338543623284486913222409121614909855841921648046171974142048940070694462992107126601016057192933096683912816697225063252449912709938652457007643706208097938930827761880420324336353665602139204446603480314743556122893433017619569377376592736910277168330602429835532312950295485324647395240088031206251368915207392683249138785782686208892000252055669898534829222238390396117861763631249496946648975943505125331458228807665586131873573710514312066039043569664298369534597465298691597293165340378705324712562853486355340131451519938583580977148897909391739390282964768496173367621824133368699023301857737124866457022175534651146997664944157614174331299764602540288850328848621036748233649274010692205813495218830630620422654985344742384063456235040971728858408272333000321633154556684102163443934290398427283491361598812136616993140538510921719278172575297687116753775328787376103109888160973703607227496699105526162447325726820884793805264397894817770219688511314236309051621183478421109462321879059877996580470899332042755584472811503028699421400889117956344872664369431272275700839809302612486138900404812743863109699530612250391916909572102377640852416756150588946094596772777915793519780723296451005360449685403857088355638468477158291737609799950693018212109577785819094027137393589789023079483503867544177574575492571140735359418691348434449736093233941618633637594390146756544949540491553369980408755550064174992581389760942911707758447795828199409015011501729203479882836719900529767324013081957627225560100212326641604361174003295809132567541074809647724283505264672591809376797237861594617769788963326763439442547481231416446109531935891072272627055714592492890184088470758312038088454046923519568380469369503367956616735756976200270762021987545126783045634306485500927309728463346021043575171703274408464434090787168847236245779030999050056926186360842812828396265676634801639270063270380199102309577425721585095500830398515405752344796317218145834471973413568285987372989253304057685079722987853548746084932416149307725127010100064569062257239836727457685013312147823489883887586975529883777552599530105842366686477335565599239456688119877641007865985875871408077598826294264633886823152431416691248196504404475479507747717394100914465271905032530302325694142296470690231172347445646357769901930977201542933255765383275410033867743385315216868961006849780874923141311803787212658718111375969706053999867180784578082289051275873897265435242040574085140824101731315653098060858617972062134050446303679171750826183298405321419541143712631333186337101260207377777985977775286974084954340520865591355465121394240131931829526938060636641067451377463070702463101316267691163863028777917020748343299490145361884076210632300611992766755228952340886758857511343172996928537781509478460854475819621299910639267025226498945856990036950375922677657993002447277908740917733793793318780463844919635673054189280410139407057484075833106349801551903945544711330992924912172619688612655206142695946711201509719037285692093775038565786057274541388646288658192233772600139621814316487058989937796214857212395413448397429032222277423730603236572485251207828261220762864868052226800001784391819526625724012451967703829393344271238269983320429764325895538093177477022004385943484224564826410710963144900548053401242834021215317205993609002197821773378766963416952621293200382980053195139870097198169996690284440224908646345043397967727870254102566482387574609615734018487140753053887501229248317348386309480766550387338545521329104147311266510459902173731806733533443169853894131537989741777899336293063077412247223195872033989113883952648961738899816090346536156789611114316445307582812457043168894729041780266490020586644812441990922498923490480858606569738930241717438931394486159227916350539041963136358034873878957366662860845006891591973358791734573183933102706141621562075367837008670264489508206534706148041384655070633461983624121290176743733113161699911436411657122326178519187635939138099053291152196259941188207073256301546491074155085309106920804228010962480324527118273282543991304133161851288043350151978923700019459097931242772885335299082133464573850453012043374498116419835433741275969344349360229912980449412071852035806013927046021139800259200734454909709376616029584217022627012799279923341202897279090889360481337897418564068006284960288251567895559781700911950509611227519266044299438681410743502604156793640164711048292643010399366621061079221542319581509037436990415433051488015256559098597852952154053119474665905826510597079002494645115292339792996268356164947840867597575808620794893189327936020805766832752977221774342672889417572648328269124002237859038239229611604689585218021791305689426850632177218346470369245471868576199169127569308974094989396036615722996659335894645358729585231760870486998188658946313842624229620479937094344102764692285070250894956765694526622619522120108665404682941768377392865829480537605420849617547793693695861563746561655529512933315054386333603140877733719771960265766731325063705253951358662529199048490467578986388213838425559659501474597484909299211614149694126982945386316708165930510391526460824083030120769322423449172847328087859443673912296061198800936619318609729342989518535546012700843235075260751454011961201340922837813659591263204089752741010858426110404991555065178495521587430983005942430282326941202618029935221883203645435855455821445469162646416190673662675570574936463958437115963097022114358191634622452699626222017143936481417260847015091883716028316659612883295163081186299258664084962320368594397139939193032797829177798416065919930874961930637210960096398878341822958710892921123764603527341489320915473661241244254367401781546693135064223079865464803357530361778859456070370410362679513111184312804560125258555134343926059760566575260628255509560042084254846402902856720783353930177192838762471182746280255887074803345598165178711855345127294542112505880035605088966980620538507833508403806330532498203254369709394939027341812705482158317140681233719923191772340058398373786029776526454620984331741214376278995448546557911613349542833348273173212127398794911546215622017136521506136122190610805773938061959577137591992360612128252557137592478199167823266557055013788226888287329701706458098837466006361944253896707611943367887136275218809543232375777050290895760360273351322981961970338870387221438440835538575356632093755889252692907419583648336066732004957607366920666797754517637610042268599790874791063163603119563970074490497600070604340190699335122205960830327447635944683521674461125026013014475696664331806441764811486242174451696479145002470761834336375755621346577269642655678968117933850751821469348757185389629752219924639606289511881817309875374063694617970798183047055956722048570099925339915830933089489749823804413583926521608802582122317557255590316827471528182519264261421566916273981495190571825139223422847846499341226306680419011213261861852731993588233614374221483425105788531949418640951549149940882306302216198593600438753499801824279772425262959136824947456954336027275455760017134163876562843102593126967241587402978306377617642759638947356938484504016321005867737845660239141471258391007877292202784054004825079075954662612619307930103677659591947526861913793277101933825286862281555891423211323290922325127090776302981561224453484272690690629727856655611356951202510013982445908257850051485990426953988643291522418396361305956763574782981932109715317065038102803666291349004774999448942011289995553368404229969159962361424772088647337824686652302835909455602864222275401620041549635444333347565473303925629598828811301587743493883909854583038101535406651311800804404214375356933920514557730629264335704880709670044528247880003190329454852914452358951172138562914303323398979965077296767061280206311421133251398344858093055376883167188478952953509570635307473270211085408781944960967947232048894164862869812729489674865189717414525732379420155108451401136838473805858240120869159749984868542826074709721978939751195217349411120054597868570419542177457948574911680331774037046327394540093367354075555542373462111026813475170993518649281905763840899567241273825473662239609738288633114118077629659646113640655069858062503067749387601862269540819864931033469752695040686853587568637215597033586641882734037373468063800287249049126652922393720037120680214038540085120587060026530893850538575906383909001437998258367180898227280925930933429764692998199703877876403111698292031695757504054400302148949260131181850332646555167687853910079363864936868653235120578476147222115969513304357142205505656880248050476075736487232202542450947507326816397321964275390609688754081675210044074455302637138094666702647701251429696859115245975009282730638933295321127996312389333551221306118867006408541505798447276266507831114702485146060128651620306718177237267331077550423636146501069139655466979434775298460269148932992393255031589130325864754777371383700703503123026073233359172444506443752601688745304748894986934687622012460730259175861171931155023545222207177517187899839589364941442058705714268361839895300396203785295045848713173677303806273340152279954805398796333303879150197630140732622148888618200721514797623178856183266404008727364151930084638990975043229215017900291881233146688868859785970360410479540811308199843781838977484462705191383510556440176129220166420108430460041995311672454667532927064197369796358106461175489834479393211946007882416489961952014022350523693795642435625149097318343034140067693612790068088716347945717829042810969952785873179833117829107241676531764059290854769940656693324721906202691199576316543961421903371159587936645349400222429087616218770853539546323994542867670455797427314067367655149432783475970269764255121460217137815754779657172061960015944099149531814495095087923754114047167853326916919579081745696174823909106972024636255842504583244151490053616867184495288339143089604124682942360748017424677825020601051262798856415730630503467742719855465394827665905208424023213987123260487023674087654411052577153090168574747890768401023559774892848419475168699055640930261046227376711638690366358266737624187163462416444472214419544360393375587636972959708480025471018225546416048491124204425612270613972270791764639857514297848385783160859713322729552002784888631288015367217108306148706739245486935269149240261632307618825075517293110372087040246489980714687615429378199134506301198859104262139056994540815367587986875039184261776938121994094560200836929980975447789533542660228293539534934796370298414877966398853520013114951899130040363823323199199687447622618870121888164642379345634206721657998150232014230914402189383157909428875173977177149024629746896661391007494462153837207297755714981403743430863157276511298338658718901172164203288791073197059579851557627336363982855678078499872144794783622587711752030034498924882607231084166721831296128818779031893186031633551997482229778463224530405318318309589577058324407089978903125176987076523528314826005214619771135502706423856300312415797504159122731314185488184616110394660565570628568014635735082971832070332271884374199808092051699408017785779559219654208372702323620657143727391829708346219817886726324130694776834042467348603469363360312902940270270157268986657014825900680423104144607460294721503282316487571963782947642935977547112321466711407033781984780832549688564477814065885579987622242680553564088547789036625156691701919966254979567832005961004641430147551944990799941152912324883334435006984563775726086352246738797091898012040710563413431769825721057558973028554026260967226365777137106686702098505098393732857504218093926805334170669301490697787348808483906839097451683699262527156564943433165873657067364675354217971580089298336395063605305833559088844946302173784640048558025099319264806528493817390823834689654976948528111967703041227475173076727977375808634875975116771596092489805868326254979752590389254767813560104806800681892145354192843124885824954956491118490495767348590795705631797586725586528321313297916522871575867295857401613874883380882818013869218621672762794346906621839444519815026657090082254411625289626249052338963431171755106423620642696395316185920641062011768179052458570767737134919346836941404166899014489072114536019811409275317612952413437795490938427787703411122239018346522268121212392001454672368352264762030346058115056800997640772963729327282569801042635384611589875818475684189740758524694591752618196735796454135857323596171534598127062850989089207575634638838554479484937624220727223856899479261040285306302220045796636835396547887281237260063255474201738564247469977199431261302836537804135140389016633373009718200287397241632222228222194003502733879026842052575720373501173470179526599890555573828886803179660422618687494848364759806977350919154100101398689329947219059879249841884371432939176150913914230148477148351005229069871212736295711108693402947490243720353862487387060762704736142366439163043614554608865590704118686637843824436302467579629580541224732649491599746911760911980604445168676441157219936905555942472934575087886103994549931637524532693303243754604112417580380402697715003869751478375062112978487361348138583718854961431390936069258910985932736477081406813157791512283557349297954058826046288312171282848032959039958029398302237331176717925444071330674683745108560549509728675149867987338301211523689579396473139395096154382445089042447326692267233203216754854545662817168769570003185049561666964461658310977138802355359061065372625102930021411916203415968876729143587068933317743660436534625300298441144386139554146361781680182296700213271477332381751987613488148689819880191888754486123965732103988437259447721717452901789928709977157642518195160028330156419521757737376300562013538961466350683024130631487517909408985882740964190556363550464937278214602468458421520023025869633473663146298061061781038663442705567423511668024949983931662129906175279522561078253186700479494152080067651252539825030811671313698511455153426602543825121451086437069805726490955045566183102112192344354267530821240151531444263822575545685740594415453109721500153175749945862071650804737146522326175364719856099759548436256054902482085978885258641563758354611348560042723034777702981487276216937632934963928708157884205418388430451041305191742399688680614604632275840532199891671265234628307699690361282333083222950060030174085581130090243923868879592454036380911302918040103018750357346077477662966154416845781383649373981535306344901806268783705353540207388832109226573612146547641764201211583323571320652845518852169134979662703465825122782407752032691680687228873106679402898615304231239407045329796684755238003991492133743418214034873325271843014548597517643681343820373381436600962427501979168896180272830165105393156919374976090360424547471470375395198980254149233557966574601089213764473088390660213844137368499851662238690532893631742294199425225487489792102981333122193155648655118909834034037244549494328540457890116150699643164703387996362021131242522047238341376647723612387262398682144428971071265051589130025473455844821407604517657273222863664689200639051142520491263915740308621288713759078961679507427128574135163296974424555219283566199125546398260989704964352148774171457962659165226843087929702685606670320938013394915054943382354077677048184502187395910726941075181153626631233550702587806901166373842129652608659734195720612815172052064838030577887787727356258496349030662210613290716264346971759372342562476652041538548812694122802020641778525679011962897826171423772387446936094269673484292391377736679261098322311803161611027536093141157764652188130613304184529130524309638611154931881176662218803653368766691605252958419867997242802279025868291138264060067541975199493978336629183293878299429103429549994879863480885295693929489571637066508595081015202909319701379368213520060406115163190999794575849583598760091083709503336982632373763226956876161013247505988252835203883739164966146643701583782253733193083324555100687988780330628237668109851312974573299568339945722472752820320687032964820099416877369801987995794594462487066986019045634042746888783944408417915273699065910715853748457421630190314334048432905131400798608773980150377661627862540562461300194298742203516480467128250283153646902308469104764772772718627561454537943061602247729006266614794959492894872575747598411978265343917899565751785185160068188660784113684816956924998389523161947132229405094135560818896628549188859875200033664736071514417334558691294094455159533299784693600560891960568096926104519208734435859498415253328527089156853001957407652669538050246659246453130046507992408587669223099519867046201750058207746621828135829446683104981031116460784835074388136984480985295668761498248595145204508606022208351614773423227741623889798669265981911937152879716391707716590434006527526775524281577501950100505922046524950433635291837315379614315097956215100587311092431889926656061651840456042646122596875521275248161313842000628090579845989163877752690546442985284666544329296686102328024129353866744578282224687651009099439788109691605415782639521104404381009844012011065545744247420369552069568692802362763739229994347323679866440208293846713875385685933629853740390056098733929310069862638929519819398125801408068603786913408267782231472957323543556677159571625924391646102809791468335909016615772678601718071616108110569971469605602063111200063155930508793255419121535961030375540559053631260172502855806731323187933512911006685485689703016532020523489241818319632668707039543845376790544508844055997337917315471506699930432555428363117028905937595489272006234022615326288432950397962281668990776566682398807283892676672509575281917818501405018270841162332200144984878576390450549878418383264113810453359003553822792568915703600885746825094015705687745240533118612521350533500980733481455964865982815350270258649483807090705414035763424635381222518832943435694462484084931677028051443237484240503101524884504610834550432911278303833833772691028675116061181880988677584368258919317391050143434234516726512872872063103860436180130662555556578355944529498943218313393900692287856569355045162489981211524651148018546597190738651400068561389243050750837204671582792079026350861419202547115627833149807473824193403925123631829895958865283216427878162640418929914067932353644811448203193240719891564874553549217422639858268356327929285342923061432127246034962177685740757093165011879643951944308544783026514621195050298159871773715120098964971863646732986183030271208803888229225921055021285254137689062364995306764135008812405394021950124403469282903356459187097424503430052262966966566685446952571955917639891513354159423115990918256081630213987096059785489848233232908588650720641351488861705494272680265132262799021671479557613574290846295192686578229116258349055853558344405419882120242536142251980582438439786389575799797433904484379403075347158277582367957288038882912800441669206112493393045249486954911023772334050859480243509532988627098673975202971437082056397008999046106802985512654397346004198055743387568001756702543579039390281339106646021858699672251419694409037858126491611591784707559215299824113554902718166683217040325030907972158053515963735057982183125016517779682018050595443720598375116216014425710972611078908788516246403763473987828342882648600200095319627705554969142285989232362337237683417290158225984985019051430289615498960867867298854713352673036464734851068515097606761106103156020963878112637821519510152315147564092614173216989294886840207026769144555808828055010146884485038696479334820060211228269855982518558990348428187423102880424933796824175379897668147118280745483379401132754586315155833990487807281750028444288434812934841297288739852502465962359872911045842630829770017924876966918119462813560431420954063510351312261779639859050571594784181832039144469812337560087448746389709505461151311546455354622852770217254410672971668056264000382993348133922510031534342071891112777044717168302339702351649701874364170054510354065254139305387406337503373732072846560584870854257120786790749909915347140703029263687269256394304023791151589108475070666437893502880031289236602355679101010355095053200330741426327489622566853292867253147348294107624145098950028576837049159877324762796561286361257220987188083135025181215288935272850779632756274105005486708580082570116285071074508736941351980722198526948910060365861420146272788021047835380801444448588873960832200581920206330907522616837874293932743559861788052576035116364948850958480677126888457725445483860414178274275385856804545210252279704151950264180152541979202359350205994719775176567730461945106433737462683924747791279300276243688235852102808598251864808628941597041941767846608688009620781238774532492489056020046884864956786971823859780664934831731577610906913960329904415993992619510627438433038330257742983956004988213881476129037884235892400455289435137462190932554401160361663204370935816631979463481144308169244645449049459148871094328415978808463632408705498036090128730704714650385728462387015114267099767462680198922321827333682595636178570383945807674104268775835691735418415735403967978449570198633095545011661301094983991996589233316500374628790937951492530459418742989407293768597444585551510963197197103508443422248014736331578479446862971997239062005370115249462372132754763265670131818036197265249954671269269234150322314178911233404371800211264130127301690599187892444336576147438499314014384673421077104512657830976145823726533019516105142628355625511321877996978739407392306063299602202822688339778788318078884668311859104503965606383004782644929989452631277339278686606131708283409491899995865783620551412094736565899044773491826868421915487691398046852289062922912945406157072304119077114949605563835455247959367527921494156665602773086362972359664033588813377285558799640482651376366232690874427469471443145624816576876778957836046919386300530152415694338018123110342888433326969049400320100217803424209781657322778474928252114504945286956517579580362120647555760259272571828052053960454289584807870702868350888717973525101625194409556181035392585510427244199109277792612315651513580852286991029816862421258776628236802705031549225529628860824716714813579842335202982686053092862334523331452848967038858266105413410298998690819354244520217427170946140678407453316317834057105498622889869886533457315472637361608015284647136654257467050971201791236180683702632154497775423063696926511831598304858188319122121544249982315941543226753482162574685827544076139275348442920672235522877568979226835685459247073581797396780539685752753163564947952026640797437766333517446413326683242288726379011006375963827002219155836553081692124617046511587229441498938485892112840999278963062104020696619661705555087676819179575501283550949881980244262653848893626890123393388975854014521166224556847764643661148160586155978084602522113431023186382601349973309075823861744741381974628610703964126342544228689276697385294840021241740720164589412060728174538089126183865834608911428072209760391242952310524308852510860594527786864722363373439930209062673688203671186111550137585134634317813654270875477929060001207213910334645632795456124257168204352043933518002693749230981876108881265658809230129851888240638208754116278985745990817108825933492719687036354248728771895815745830237487940852679894736867098810596909976619555697734607419301274459880529978319528471695178972977795736713140180424888018505450076825440699927499572863246528478456103066660198112992522971427770793760500176457672175957195911933815755521853038129127543377557300705347866993067774145281665469049118462139159358432479709798366764440695862105440611328967605143804522191339792764231893306774168440374968817760288911132483943692872890012638419265003959684865136745666164549109525363548028639298898370348079036864099461077307876907653546831699762967942899655182963132782567496878927968663455313110226483925483533410340806526687287150786354912349453692244849079363258719377522506863626644657058959585396158354030238768949816700291555543201041970172038717903538943039411697770985529568342698040531377387316277681312168738770553491629047198421405523619564648018886626918223263121368154662439523604189623879698065429801681811519793000670968147340634091287803846060460414237009412765755075057528221711365319486121805825459622132733904654733534241350949285417147156658136866462522816779924745568364879314750526007763603546939368919652793311157553186354135306111260217962197721206485642908198654014496834172914005571987309603457196886823394823063601930139521282830278947100040981253046898527611930053472171580755850956779541930853256569776373145315352287504730730833685304521750102679408190476631020987158556549186298091010901088580596414850487301197881966965701154297390803404435593966164783182736703200481054757284335547445823936481062887165629195398768744936061024489562626931970728902835227095915051779318279349450428333573881079209513706886857999443730731670628917588996401692830268048282374266195662079357427555381367274040596820772572051409084945419185036841963707607676557131894473829653269145793634494924042657594613456764977584128829998857423833187792302196413733918200711353803894317897165338718414356244172310218371680153647632562821086488993395420183243753418577604608089233573226633392074884117378101569995749026187541892784576818508206836058624188715162788102329672251964261554130968607753662351073454269514394827792808456001616262839566748169619998200894083833809286444502603131902025010060512472864635922265817216867767007121831318393592082163671558651196766498036170809324336180884668837499662394326824115637888322499879423178373047136398758623767235557313302022021460650087244622686440189469385042508602717263326023422564472651887019678680922376989286174998593164058530694726555865663969694253455869034325106863659598220041335772390633582429260196075055397778416653739305119370822509234921539592680580278761209835368849741165248937353937744712122703247945676091833429694720699795480476507534422356291390892587259682282966718170933727838989524403409161019868193405422680234537398470610874355692645508749947830162740925543024718669930189827280584403127721625553107125448535878142816470153193776765541751742811721128452153946310072038579315340085299144270606740069389034694957192979703935039329854846787763961899342836663344561232803418093516729471353113190020090016436723526886889247944066926879588949301292694100076866771369012990698858652158655328157685682021470424947875055873057820720528859179587450820791659360313525950655531501128895344077826957008283589727376063342029816737180284593001268540364771996860742236499790610193395036584001065138332083438972810161532444198771163204609467488738286804509656245875654928765316234124434586216552597710635220277185209631495596703551709664904148215798135203518629832553641589171947464101047083245435579991425009313698033352747793582043791904027418363098250974488552764663602289947697387712221808849829721327760119819702113366942149135654548569586833846647261002765110556898381573938317081472873001043754874318788021938812563664467522817273504023662091169723194158506948181724671834227716112340467284212443861677881043036671465617703691922238251644243180344226890199884612091031272742557836335211158784091610029092053543632394411049563954703497995533379282196616079332865162444708568035886047544463990312156742649651248052515578599642698880560001609530813100625954875732372168138569829700131015556441869153656011511862983783757836137278784763782295411834433027777495358354479125875037427555613215983728834134545650116506635935981486860403951526041577036706771648472515489513262749482756370105681772086178211479013713903353219599247962379372090774399685095131955647944984740841306562643017427240692588271621203102203301600566239374792299901089918521197725591265963260483562576897158082893734097968840544374687524897824775668580654348495153327515831518746652988677231560292051392295999782310082781625370877207147040028129331676889634683075349464387272672554067411203224044187989621134679265877740350143069217536613740406157212440055370047988367596101112534253613203354836375128435459500626021144506644625530139716530003654017459948732719886534400787623983228135050494934505475069414155624314663138090750036526252844530926400997302946760092984052086446814588747795079060844330448013488052556908439311658344467613552229973959328745235980768805039533917744824453286302004126388535595842797943436758523570947818114688082866731582442329812369815632036767582554532853310493937880083291073165076907465434260357120986484275603564008006891902504706797247609767717509490825198088315762106177348279500786701687736672084733713548013833143761270885752154871652346226176941354364888528228282484906933182826273490940226379746952405060795346071103778171477819486225307806409148176928861471592479734477458113757410483572358936330337202506330679766153125628510859511350065332341331927158821941446771670450580163181803771079233232060881484362377448981960683409899306111736381449130678919441016550763119164371922803673538750167644572087238389841182287939725818009680516457479314399537601583277366523940625761193143077758697265814044075521166364280886534355786156588746432511485917906866361228985584269278665241834693969223843855813655859093202472931841057748075372871024098811824143712192366947201541541845309715129997026983857096572207970273836767632608610919748681095694264552146209638724590920754774304244727685383757294954154537112388842803615827570771158232114474543122431098271829233918034849261407315880794641508638231547885990491443526333331927776214729184938749183828774809133653128013965654355488222032106356756165023206126638502101858615701345957542428095220789069313119578051464054313347323758728584060425833662551271628001356468616376873330886707194684169751326537816190840166240003869171790459259657463832475578487080169042150003176508052428656340489398372506561721731757509264109679949544316363444932381547623398178750849498194356438770356147726116791137757459790923469787029143243571763615378769592043584038652159987341993760745635567435043293419981067586356244510602590074915006553832306438674261348965465067572497813341517893610632019173165527354080189413507075510346824513283862983957821504052914886993112839381735504530877628381578225860718795068617917790540567361562816163816076485187876300151441521906662568491393547862610151221881376250165066995776727953708386057169975949887602806666050455842225998396368038411800568470179613179443099218689147745380307246573521486136514378278710067638197651999658941521566195635113903821504482989315225200816995035801553238328268153374451528193209356994746379898939858390301718538328937996470046391858473258347948208960215184141744001116503012697886815709159089884605378254063839007601029322615047952689221222371216419043605789681541304095720054831970776952463681804896798179324450158997560842226587943861564257867142432275417364415168073528731575819808914533259212470792963321334540740625405906761294310535174350128692806185825925758093709787016444470811029101511058679522748092591183927848753076805654350295208398197664544660213454875353800407206295747574382656676165886991624319727783986456649304831199709596373567681145999586793587917331866270254533813695075103515722953086141696787609875406301070734670504819424652158476473597678860054420714585139763235920193716254650032581961739326134068799695512693934675810374443729012018716346451103766892260502693478032554024248927425999457562845058338879846972105343240395591997811537841267232269167430988255120659337139463776425951670508512319600703020696974260490605219734866441435326594770945153461005457033541340917260902721885788833596411466993615604290123559390833948423640402480448425466274399501135274525265673449611817886553333492160950070763977755539092678093652187758313473678273737385613433917852686019370483872033825744809278041887131825580712472790150774620016420200015770845822634925183437359613641241532748004307118043714372572618226625312208677046633924206501681087468418581149514086695922486821446041871765085634264276578248523942724740773732908170871185194953953266151906633066825201753273794903770517632922133086193279492923195065454564265343999132591195448320878379789502136077866155256165330453897386847573654613576475973215062046130791531153676117641461826602866285865197837841545875533095607098115711932664609471597541093462574469698903633425351658166135549382283041770698057354663923682085961452691444684049513729026728759696896965312330201052799597214206144240765986687600203502281479117980779813736931141073842860771358328382429236458281606741695889345806983477193875399859430990344138905731164575952694767408053580370200192544009839803556115769767703166747515647220351660812249929652417103624630010482661769403194230907966879847780592334754116650863042103790687782839138611776652054002267701422598270597925655446268134375501663588886201608208901241749563364092012077207620213414324733750478806059038024927016415426893250475546254292995060561391733541497191819102849289555834711071526808106802903949661369889477413629083540774388776410555645790796191557532041819081138017921800068480125480344269025516535694592723673601688378385932418649275438839919567182949509253783564190661840222000503309948546466362206117635222252260618252108829721488647691064438823234198129987878179518709213458732783985135520149973064229400631435489760375919800749691680635734455692919479926559981661420807860074569867489244328763001371030975688863481059769589596573223542329598848816002982017576474991157426695719593653423911977712921096003385201298973026323361833300743816992517033879547704269100768882404388675175523665328997639207578987358354102168373433322853814652752651497204394738131578839022538481410910266043804048644317993190405845048824680817127431720757609926957782151294273929008901333185278021517952682042720362543075189221094614272670670188266685323887638263982864334657624087046584725588986248779421308905244627283232808951602902455252233093147988774231229317778338847193948703504342277871558201409493578828344797473588868294142556081049120685187975995700873600461192814137086537231250607257525753809548474650886195103740971593812246749079996586179854119680985098231743335605630292459931762226476234571546998314086262437498167370357344957190885038256925089473918491014678232977582795474564416221883920791176766149577961151204460022274553640185223713283735887213926813008815135269987760333538533085094034247589606290201506806903827643974055367517357317074927137859236279544698848409186476408439374247963956825501854510104120433988547868656505092936895282374142000571587214536012271287534550250739332487821194187458900649725668206344713283430087015453933240021745199798417714406239052354904263058393996257417995179731238746945974935418361041142431518563899852240605863577380796258607778964737386704811722705065944707412744055465515161091662945444262303989387298144572346365168454782017730649324167731761598988917543265787124736226062929177724930275160573704273762884574438438377599319996606890411497492622655611496839360694892418943721653814917274619500914641563082197313883691702939973511799051370407382607150833371959209312649976495238576463305991455029982412857627708448649713329108879818605524738442953217073762883390912015423417120529683424206164742760922855122980145945758842525785541408376692257799207904800675121655216161263444871470603025675898644181733604252196602604046750148515338647651103035101300091898947683974627573148447451861724806124497185957484744303737800345109209290042427472842995023912241459765734524250110628889365914061372188453231292269562807026116039852432669125189776750015212828460628404895638000311378178916675270527464195990409775965606696987985951650602128687159253206824903030545692063365102468174015535823147380533583235001945028968160069162226302732015449638654824958645704160460056137618534520226305815921696638028343526225758503867707946086463697567233542388177792026129971895039673968791856241905814329548193953479144373041446241730511035269895071287594082329593270471561228129896748317151296109610617962652128796395246069002682337165172364274509863398167641888140930690070889727079570653831090690213885121177309592862545166784227947425367034239158517958163408175566337244288709934669248086635219728493702024243180545913120499231297822140872565265328735698818852357399769446763747898922150984675568447543108230099615727505873697485137775375724161076799577259659105636785620127180628601640107943097565613868702021324596298512391603877795786593967314356729675865560771806002165924443224502756151755534273468060346163615153620669873004732429859162777384793007289781632308399459786532906911342148036847694299893710746354884584644403823850925420166057784306320841741224058401907779939597471138392297279195414212747546679210146995640901421021134765152875200940875041601928491869268277579349409129784976810096745968139225963517466740289289667930270559513898682807536298604063933199005109025626588211154707265220604427866026366828192669750629469696370759812220061558168013219258242703816645344346313061756636058518747493174660591373486848148260694629591216004862874447653822783714791346158159877464607541032321369782666793617867531122607668533684052536344978071047958465253091175336106843740457717153275443130759943925415255830375528087694102417058067313369601291367844619603090778164689155774781890924097748334689629698560823959017706580499567910866671303556141450211392945982471615477121111059736030039739508895928098873615900917511291361101211818650500894854382405451409796845564514145272526179739356955739576056300819276464560558568663041729041888484697468467036532574427001728716963102217651681982066542917102022486291829825966503438605217871130881961468205089928338026397670346219764834474730154742691227332411843238436917662479185064727333563231022904879717205078438199294881101514012937686570289737958476811879428446600552133535584778440741311848972757476191235119975021509415768218243745756011202369161500942774613606899669748778264157226056702938590901504610232048766124549973517308267649409974820807146971205048801795716041703958812481096644063263962443488457675216377666610621088365101600840338530346737826761064346533865895148222405997957021069075686401950920123374783672361794746556133991935050098268100090534309642507375453754030693430757455183540894274511414477930472746272563730348283743299375275212703747185262029476806403108724270862741140273115755961754172524895612966041428159626180135603537170186701811312943757020520444270181965248305449221320840198572177984324702550728488481853683729727155305442104884994165783016876598037128297359087507206323054036185031937342508056409153492693054364902924356549895542899793347016991578494818237304028157141969720212177533434043625487785876575225830649235287729024387879407509330107756936260493584245193726794852922799895333703853326862616787812327134554120045777294040390237383687397044619236107607924634852917842033775484458164447833718757303137040390552289080605084733213842405505471195318523232784694597866644209133785569457197276872165151239875721165685812258587039911199484960632115652205306035920836124410013492198037780610003687669734455069632830179781569733223530763649381598427985724112376085019274281470870975850779958052384616686263380078071492739541562644987630680189944645407147499512396842671178650919659247572779892094659162302205442343718603210061646419763760809373044615239696739043840718218711144949127501055197854042684137830786055717560969949618527455098541950804215735366075976527636948436277822939076959272371053942272002834256144325912353944222542806414838454255050168432545071103141613226971757356997321225431748037505483905907807435306423572734528719883646889820806960772726231163263769479659857744261557438957670168831875599918204588990435009269235294204386568988999506922426157844027553316391364036162483544803272022194571907390453673859068657197253671289293488521295068446497748224948353479579626698922411671086197043318557968882706318339894996374712701643523567014784030985370689497051106112517770258345441932697276510573219284669394561973262068506443430269412740887616798528004022881613829759973634668994137818417255413596950165345451215385926059200931608048123499277049960000376825278659976391573118487445636269084212630510468355289483457942104195829503134125172214928781152899079185921948177739017524670142274309811362539045342193789261262590374417831386106108051975403719361278544304101782416842050378923616515274975203673030016090389105210248991025314484790109789481683967561131382342114387167757532867921670233880357662068876182696018688123548255681105547780655576609839229813517020341319627153000354835682354494284421050911305766186280869995533084209928703833037607367251568269638484914095466902777342413923405742688890865055614995763750380233673033531246316256652918018660722183696924242683849953416195596073121141752574406425166736853672085391950898136142174867563583134962432055672149967673650678086761983686242598557239751014017241730441668983864313879685188189286846041146616647789066163048672896226544727607259041481540612562809921091843811809031674380999198261970718295455887804831395408559837696598867790775974886874801215710923329244344711896857133259002337543937986006817964537846482578447338581917819047918421903080604598942480829838306837002119353514526621330756127707036784268356354607594184823763203243377674922715986914753639487567153728205015217401508575643348943720931345904834376812339062909126797111980956980028528597767420532068803013280574174028011489791590607119747366104628108879165318404717825138692433965592224668168475722219304604900259207281800924145170447935615869837244929670562364564031908125379544874038812100676739755853195263032249222839310813498221773638332671831369716090903125718198775053832457014392563734160936964477103244664185688592111903615024924409268566708991963268132729765514903997773491585482896206638569413728162327735279464986237041742747324605195017374812872475699536032400563951646270540682381793726304183490078433494951440467940459639850712320193778223763138621640658551350105172836648948716627338293313174592363282294364655294048850259585800293198060124091449328960028290398466607468852756347998077517291537555915201181275221104582671377617250718040026973430556898033526464829371629423469099411473020710682022846777071905090309867554905029701235575020691065347247262332564178755074115558977127403779646563010158563520858431390080263100803743150422882436460113297905200120191300802286391700654531667079535915246597202486548852912865203707386896359675494601267185967908146877087939457772219382200671692118640080604407981800550925867861046282299939408126915437545691385643036851313526557435240586136261320851324254773865257774954095279364201428360166341634088635832311766057077192632725846393596100196614179371355784082587171470134759791066526624933659907000198517362803365808083981542592256863033810065984212569659842689569298019752258919239983336977411762752947526578100920114538660940819633874952540502773934256731155171868762340695054009644215163685113287453933891738209179085899813354379502545233807767174317772055759407799301399943338824976888141982208024154496380410774988187902526319515414016909186201653856060467968175863448751695730072374687587051338729659078183258601222951734596005815641179114673279423850199784630363357339711485989746890954137833596743497902116937987893139875283074172235338301367991307218814079341221880117759634341957149540787513846356582690085903517047812235558491025580365790291166004959031306278968741664753583241347961917971848331157355396298973375610188616323414728499167271836018432412898640228386236068294542608415581632008785192321361863306703345422605688192943719862148489849768700271536431210765061031382071036682513684940167449403970569855799142996797324745787098969661898746365789537800450978658705904444814099182149311106864139253128385488244335092081610759238581351743152260091362349480033397589058514929792412210630176705993229141973841516692588832121449678494880102311340956003758544749119774954751665087679248431403399533643993437209281293550011991843751120709638339767329403993929863525979731855575018697998722943036914189124290387635407561068745882312522992100048780428394707879248218297093646500011448008746169822694405212439778441213271898690908890481239939403727292014367246214025905785098358588135700705301163511154866815109768475784441707347958326020253886205930039146123597952752140300317534249959426047599725337850223015445987697011346253415481266768589963822152464895009722241467313243690001466622032358411079848705716158708441440455913290172289788635822014218970236721622220939945569310343455117593130172936177117676668946750609416791095717515009958015786110121454081840718808218140975900278255584861694374839290212151633299758070998806991721348949609171269507459829947796435903464678787547205786579633440370993173307598223708690225023896054774668203433049347783144154259371001141588600593651239793353331672032694205784548876143718501214838105121106262708009491767528552575279482297698634374006843811937730126242031513921095852896746231002340479107562646237222298081235008109722754341385665134908901492713307373498668411778501574431576177446123387838265839297798268650599317798279582941513003600086651810260545337528261460710422958641108951350528032078169821260816882563964346321988638560761811777017812178663905379073499924452319046131418218129508109275011132154109903773026020210905667347688747649609080708231814007481853285529578845508047968694221890556281132659145855101672450433404543673506752061408946616528116266463119409624018228246941418728680008434055583914048812010248312580329851722278084688786084905784292142409175118443982681523235536180268801180148836975125712163516525936796169793673210290851268396400545967719863101503401768721742558550907326996888382058171173629248419404897916747619337665323303100778322642974519383821770914050271432042500053034308180612380435817969820757043865521006213736513135174443099601721382463036142171451561196824846780566292519468106469648238907838465485453490037993717607378786175193601557275845704467561385764475880769723917819541821779412355393215944823277362937556779141372606181210301313013655750824939356761714463384618941585163687461975458766295819686930155773646928852186278932581877333727965210038568826526222580615907723855017634870850661774286040945053202441079084812331088352716476006732960402236578545108326596086137639619298593574331326415476075077440088530391881755505438009074745142077397664711177789172772145893725026616295867699828553704456298848352623648598967266919802231176892053573424738287455807834972999380901079727886819637936258326208310972997720519242944067782848172605498515237979158243474421305469962779397913875718468128427423008561851994521068042416378970269958098046875253452847709148060352189488447911640105067981644120058304376468316313762822749681437227824509374828696940182983703086303385311876313848746849664107448516584996841779683889322946067008975498452327941205112528635058420461998067126722467746651985355623109455674286400791231433667902092308406094260106627141243661370901310152371011907112892309439367202373039829418972800003736976666235473181794548889733809557456997695804165457981921083678005333583739869535561366511266769955658377393832505386812748679065308017955968196715342885987275093292319784950543129021627305472337728462634275770407577932185459089229886034004586281803602559696515829778472967545127711800092211366124221192180934510524908116013114096948099490799403467982626494598019222810774391204338389536415974072051934614674332313246343519813286950387571496403498682841515281470375307298763837023838744120763899272633978385385166589134823301500763897193451924234971892562303016952242028196826701127406516469019797775927378021963373937230964889197206534941173642715887635386125512731059369134495056940615148582684630091604595294024283019764547785941288640737942674432794676756886585026281641368963696627743484513986123057082364006148894549889451106188192137017854935621176767161088331162512905015686972978508032520292147621658452657096950118415844379949559152009020008968308876199123906186510523149376602869475235611521678860662150757581966694578948540424199445369537735219818567514779183652511878570637654641887370578146335747289213011272107629836819760982888682975339150855966852999173903557481833769145859985310522016378562522535878121734431510432960249639167826989326064920854089445531782138296621939545376690523913250398234218868835314261872450875057911218917600515550401296008023076528715943273270861758040108908174245342618786160430304308266747817725527450156089989116809943686070744607074927219885098048179641604881847913446348743631317603914855368250239237612682412763474513904140266922346108895997946017548624244978799668050458658027695249387138479903488092626547018559532168259095170946157039521648042519683591706632803770321533190522374332551444379208792189804889972347479356125276934933740272337377523492126226882872473303093265245262425793269660652743111354078864637839303727144340983508800412805055669275579814158896175746874478351778885455440652285481612058783311089677961153548311722571600020065042862248818263407043625400397600646717474184850727735365258243576167432527043487553886276013080346424833997607404707154806591492705850507696660238551866854604486448359874442587821514245351940072654272261948830069658967915027450368577395100387740501448910975252316769143428188541954575745090706686426068762090662497860288434658107988722464134749354023052939744311733738931710518685659558503608373196699125877614447181391186375441284185829046481468433127826818217217706202487402960300942875267902561481604969438714052804717531206385644866376460088603649723710942830595699390255805016629205983791063420923129385082497740767471879364158977462892404104702396899003640640838163808458446527416411484392562471569093912096055222763432976011401270230582977218148694231589789948232418042626800215463100199431853945998666477176861943837517233889599726142457571457119558014340643065827968207087505148934921134269588750257397726183459067999023469969284060042018252301735301143757162046128805375929055461546155087459286431371895220534262968570316238371643869547512813371993873680318980302697304516784563381931131274189447286587824076474566992720242558698662040180209223506518757335772583474023790343218520083411949934548036048959675635179123251287976044420530553399059413899350877398478664972498937541714248094746144410632716918135284729421616483620740339559728347104297124789032249159519233160803436886918899690042965382014823008619445765711340908549171500125512479059379824886519400167433333685728855183557710855626419415067161348209769474774472040858750035756479335396820280894541794270636349876694583248093858385359430186051818212445979956554486575167492530354855642015446702482028332154208008448427727105153242153379302975102199259978399314244287173927015834396692177492575861140814597938813304119010211369937691076248385547441511058817474179194411596790047327206843959921726194443349721623524423285393855063711020589718630472878673526910404046456868200767713393021699917887978449301984477899818835531412301055739801234308969970756914558693915982290409228123814991539857493235335540248266937784803773049250930161862276954619416067308959661521224667570268470469484574076778586288163872330315280595248779783310623572845852412689029447065884788735440626069658387401888717733315330101108276314645956895763988208664032202114979229346913711101073558543918488383107385459430184321024090696982874215952442164135338133528382410689659556147065339696953424042335538517949609320344780507872813897583645211079033007797279098965700448417169760195707070610185586486247062615580089826955346338165812558246676714090979485297328280281485488936645459286291834761240062011099530709288741310778650841491129806118004697645223292072666569951508847423007760129064795756147437326511199519768209890591868765855542761978605856389066479598910294984057624498718638601042372095068785394849617439795491202359438488200636646867969519963647039165717243175402295211998326607812418701688753194466587657753210014690439436115114527953655049801673826621550328791979859389898042554169064111106908187200841339282159108519876361596932422666857534424429294999165776153031653963112566985536099518855118477692004903606774753034402683271928983948927600824653208040323202900247798109336204476743377696833163885480549126061138379295425257386933245784110832852050188931727314394083929771457040365694440720648170017205937109786241481801651673326701941940174152963619256117378494185904623696537932704021842228231190998686581381870248152536595655751424298478099111874078206614525872819850602153081164120996721086697747535405171057252536349722363079454363962243952130417768960663558789862032652928329506673001720178537347277075722314906762941444590855965046383893095867024926365270505566663335118589786417843835402417593151316454660273226433014477244889260319179307838363204350603733203092246360515999095392315979413408691183293466893210539778347005641126997091791254601588269792352308528731266649157341330113274792084664148021583558200490880081122896546699130752789820954411439673252211144853321125319341609070329593340647354206281550953076749849719413134498204533328118893033892384374304671891747538999185823073085743455726950474548375677001196718124899587974462892243649515793215279198460179871020122512549475535507525095876154695373810948942735650812162304613910494390901450493095527173372225457407469397344667983061719579502961350257241410910315932726570999641978044369419749063991406161775836352609617341183133559692878936052210917837305838932816336159486938321805893535870874188165508007895415567862550321525823869618586136674623263132597607819961616560895459207639693926187898850187876596335529236209393899176966361390224660750813888084221919117521255004437821723620783776275095575765566819517210481984297877053855981452191091627863684721147145775671715029599216814905081285659187994381906848139991523661892001778032290738653247881057359588688805992460822336740677706759274388090917291701688633426685478479456657267968254571876106047642843770513256398644233149613139198823652680098420137446902685204378259739743279978084396961499866952018843894354845418524485687273460394810619394238774420183290289378981074831557147613551610317738717914704116533798729608659793152882539317798282597831534475519383471060558466904147758583238672542112530671592426204815694389392453753404930861148883188645464992326985488124251898811546673133728290589880384754905439408229570363813742774439257244174822675878968059924816384611119127704112908709867247680836977351407949237285182913887196825838894846775717952716559887027391826514312273628702511088295628938030893363760031202992579247587559748105955940133659032730516609207338216873680106426118876092541594417723761377522266971073269597460823133974545279987599266038762503033375368103975492659544750154600588213397166599781408205703273290599709179709839275006024531501095222698166952658616902692603811257666956033997535117635300377192590173821020370587733294420249364607028785285724715353974994858281344598333451278632184687591949671783569579615075975406086670025096496315761562228524142109756615095210468453532061050528768764026543490647765337881826764365987295934500469494151552085130063357167256466554743494366145257946582181566015475445151667320422820216091742385107615189219895395681842898785972168850070513813079269357115880159020520667098089793624002769681646112530562409054101575953586663098002566706541942787455138934503290800384136182831977254439021072519657074928990296805314727295527176247384561694667015735647323081625384293590204338826934335963107492837091524164597575095603006448467556900496916378274476544637844328817246682959629455622197347588666742481154099361491085908449722722308094047321202412432366810477340807209948461646894639973518586349547007192987690193308521235542604831299973245528622134526934809487684125096109948503150209476133613620709094287172208103000207853372202722349805000812421343311162288287316666564311594738789744476178982966430746448848136354757858310601796909906474614046928367481104155029181504807363070263670332542827311752171975356598927863023485465823259285553908119756379282062985813750449631300260118554435553890097488931910477162406128537299129768551606436569416230392450068192955483330507272691312510875801512420182585466773075747212186909069294028448349263781441445004976605631922932667631246295898915807397187533812059954282445390392230399153857843563388252112163475030126491062956427195975015828984723406365826112599328603253758963565497417429885641075484947438758279041601483675911728092814852931154823329677556366365899717748805945698191136748284750254743101658523974610213342259986709265981431624727788429828944587459750536601347280239664688485264433421599295323967419660289604620036529318379471916975509485529097840178766212331957895558646811866945139850273277949912682625903226115316347518049623049547376084306635154283645359035635991809348910206516816670353973768686912174498159298366673476775997205982927820662421665290036771044649858150640837965653241774552290313121634734733640288569013012175484493734395738595377673849586640361152560470572117339056633912333723730634654460138475496759312383577295071891736306788439821275541964156076768145102822913372014180366625703995436722521774881577067273688694751083501409530679056864624189017348899218539311830886775246702473006823489222791926306218597712007428575094200230541057592962170143274239321167710823865122486804051575912012271634402150123072432758960456885735496248833905232569607747360176533311908794676040747467642248967411814719206677313121136697796952048142759181871975404524568515178229925079306953155998249966240398263233067036557461930998933710936691722803834738053914671835684535770322820730870588145840131950553603886363849436686235656207562063142367898996075195207655577582781391967486136978537244544571518534566014638057732126786847012977811660347731185394851948111033762857404676215669585943688722866041816422544191688012405044031818254574178168486421728518614686064547951923945042123383077645931541246885838531547407613366899619346106550237529736302376753625024462610755453288172953213397187369995720384372895824792284543065251467159702320212742013652218862983604481334850805029457227036715278532197673442638751657036735427893401121028556293538803299150654471693670873919171823315321295352420517093572052983272631473721121789469353064451534322392751049273487637282020772097768361159247190417448082827453526337672626991931480652111365122465458883471309930951871172364524872244403175264702863594361846812800661886101352517937688802212637446775346608505153711829268692769333110268561110843454187742039291894322487783132049625248444724594020504162590410833151935596668411179216509898464102643998552288530654260289287990980719946143390274391929669516222424378867803594579575252096822661484325451823669197461468609513924683870630106177914322331953458787778859358571746805258801214390662434459040111163583049035847281381880538118058228082668405167835084206144329908459231712013756519598222344793799455130442539432337046122106120193447069943504417617386482873331296757010631858501735233169655022555127026931640974137475684736194888392378973299967207733778575002933637267420963254259712628766846631934975857373309885203548805135589354954334997243746859110242706294937689939548101421217805615976152264630535312442815326555177511564791509361662398354510616052309963982557564000053385651529162375940443769394481633746257421605632836526267401705681332275343602328822593017804736231867986984205935965591860248090399313353089566125324008602493293741389166289548690403678635433609243831762082792825331260940857746651723460733060393099232272289377093535389946600163186709986499274979985105070829901669110032235083837736534289927851903499137037365407914994322125059869153355191273823914223918624970938106710251879627662247181528949402635899687882477496108512724025791204129717233828021528346003908573423076119770301506096376050284524333516852747414695681602249425207501782717320259324966401601951855490678275130365509240096530072538383904594542224322885875272629913884592646897476028772719679831410675652283523369470164510555056681413205984360849248856288807511806941103484659585945875562279746845486397695787777247865250996776193974795432452280949110888975133021641820764283435855472145072596020647906038044704183563058347261064327932990099888259641459550400914243037439932320759683578393450088557301723342577772764218252001465283582941725346403194183256998100867369562756841411000735073720074231115707430799486887066522017634760976261446208430311100088017133059671221976109423470844903093016693690380099010191233970304499169860644995808891106392118891172083672249036840429762688463486300627719734610690355253017490739657480863284076515888843478143903019816755463138851977495673724891497641451170494670061905152479619825080765876027551641878460075946448040168822312970810825163389786112379514852502472497124054782909917455425310533242169839355962830382317188419576695127335911405373713367002279288439060875658922566746082980639054457415925407414102096136173205340504121683011920473031195732173270412008797678231240025295210686640159264706114694195592817356827948779950334487848525900829054747707615820784258437821967773070284559474620665818227310702954026839171474670040184284642112529174359748821724018042875536686862333223275845090403352743110429976506201169273838164400509734955994076259295386966895516396363312707073289592097162882997464177943562306557767177650916158160849753294924145243966626107532742042838654877359747133124737793216648184035422597305699193639556147338607359729362116930110709839607829365954746815979878297161990489584122010368654204999400802306961431483564717645755689390289089429685391197235032785631317437904380616705089880532913253367044555048587270918048013155749736191640449331893492420356127263215237785485652853894574235827029539383036217917184437991586146649411126473327214284226262493315247654411036537207134024389546578519023931911049126426806871632443408162895604763499745447525020267321108245700900151715553201669189562198458985394924118699273608672533875491562468875359441226732481073555495372024129884451307245142297826804502024873626875233874470771465895478532288678127911340216623530267492508579454554884823260770936104532257890255351288418344620355687992720057899401811323299890512313697911935516956558236059061800732230210673907343393294915804785653820721904958551750555443457445175654987877331470188140221806790739487739907197776410399825492267978692754034104863421193123059106201424672995241714886418775697303475052594050780147864858842882231146705444827876655928465951812287968808732371833336431790414825190784496992945986376067127797443835947719732477065919150865640528547626226497905868519360953094531180583949602957411610181891053562896865018606071429921166370202575830843637270135449055843555976155909590661559948855533296916285597552990535016238580111414876228160053494002244268447674872808437646988492912758945960242981020476711245956698716421564081570835665201330118802691202618367178895479303076215280171651645217018042051075759618698385516811189146200235335976346408487351924427790160574796521314356410077228962305906602382987670699014652032267216736524832593698386639629626103551284340729469683563881744094151436232368017128446154975547710360533056266341916944101079057062683337230211190914361227862101821720519404822873013590230437827407197375937503482468877480557638725096092483285721293245147194420901119603032391852348958731310515855543099087134885805264700988266484181426527776881346061547752668856757247899754300568113624411424081025595200314078949262219442391227609495134062178318777741654958118904573539931580980999338853207792244552220168859343936047211647404127054706381135715010465536720798228746904871767892510728282222821241114899334035997580727925517666237713171572660671866801608816826916775568251486215429156686326424944227054257604673960015640944767948943257556154499964247386565194639849809398357922569762483771305452456262150969854194812193843239213792568718387002255380534077744305755142416522344816775343216753793392839220142003620133129772646100864938026802118087707613623846518801976697328963395635642845059830229915111709504888110556710467500882760432917653729495410471497671088056925149152736440371148361609044770298127808186938800282081629018389323689030373241683839150871182380569894575104893244062213046869829945123033289879563735877115726034881206273007192566087049379111162243792938269936484159864563828292203182487669408781405785841774601328934392969862831071060379419126956045308661955108851585335866110427961643374368203568043839083446870267862255809452353933055008070371403777209824006357633771174973822241637739251415801582353942521184330661814801169404356639249357094576663658982799703428303539927352634832732450350711725538096025067476275860772672329746817382549416097524477014351554251331433062699693229952387823784547657535738570667241681079847471978750470525330885466809730704707120385259715865430859823983502435602182803706364757458200534679533570383721374056578596369720197742754157246860106371337744890386461616660017935718008747481633349098653742340606586542107750081197356828896730209231707987568471663319951153441108985686437715093901152377455246498393245716859134959977536921429745049333506825303833877512030961148041721474395354754189640334814656517088769805410720764886066831119170569950947328729079171385622917615290861138102266378092226613835084754735479124835682202662646943734365800198785789671063955161961062581280916072049131318130898130420156315745068538748458777287756482833720141084175367520233068185912814480833299598968032557902470442853815718642167257707363526132956460357186792902449773855590274903003032679407133471083484713228499040282939154839774347470841417398288336586182832997367592260781323952847338571812721721464814069138276104016063731947301740508173482779813242656201192575157088010422338471713173050594108524457310683635505550187162279489591116548475017302265933755575738960486239658071376776233352389338443352821178155388703381201380107367740738524217673974689082042926261088132123118106585320325592556344903815820281473255086341317922407219715816566729676040306412230642301177580206683359708909316923862042283571238423179150987906057984239602356558052467508716576687417386471263717222247947638557630068404512858538288313472255753223919533555361342507867767383613830740950524323325890142217541149373627221966426510783994088513028661629801504434612135060210927580362182402082194175219260083273968768973326925966688818302439018116047776344784070106995710051229193536475559514366820913237330009972568001181966743623194219826936389467902760247870088855658778444162889614369679698105512304299082365820817935997269802267602195727966574802544465594520236640385352006513226533496302008584691670134669787739574652998002803330546330402486996553089635071094059253089873433888977966200427504673525155993067552405227480522208892442284017112264966062088355358898667453991016883756244010619931038988177164300243557478597856516600548759900177406495400655505412525214584293993076779518344176891502317626533701549469853246720812396538692975955107819994380914155890443512780221454205209210105455012664701048105912040585423634050893593456119389719837597986879784410016026468917812720667512499666028629300036452332308965928624699172532018784299890631889960465182387280697855771722489399766547248733513494221556623612564558316786299115993247607039849622616421979448717797216221786548119030245961055187733009144818948318652511710438172298229257070989223907584852285964925739168478754706540069108110475219462314526925584069679245385507801633872663673350503613228936167894309743656613821262961216092623743116352427259863173608345297924041626103848635949784871320774053112341515594684531349358705351989478966054741223900499294429671459281369048335093911597860333533008738205747273667931301083071140384171888864969263654127850283197920704970162598860978548201852878454591140249628504078526903787351000485357656102708374078773277318879411807812593192753651699253154228544953390575968609933475808367225592886752670307058333014411286578285743323609307716698886700093102132982637990491059340149938977571375265601575032632950192229234398268827163108987105149784208455602331180254182552373527241145522355324891430930718706850440882458225597715448529346726326081011815220011703121542349625624462797691713921370414861287454402292724191944712924493087715935882002077820095274251510936455344215510761131172058540294450496331567964256109049923255485652286161075035949647112898882124233158665758441287182215176759219690754224411428172369174739554455334007139928513002338984989720142952891188507263108498712636875768661206406671083025996648077642287213527092539870964468433292645288218423659994429514053684610142318727309272192385780525376534290592260187692045131135481620881275858150343333115977617765045375775237852861929568342891349490673121977705039307705749613040468771885615960158804903360605599405126350078870304437300272712540829307144418439611707201255121483321960587422118414856535402215064433851093562118888027556020850880303884077386261863835378319030527920502699850437848245570530582388606647024409476343874557856685206368865725143702040408503869391370836750091183788841798290052296309812810705066723963173098009867993391143300697419009088712561469466150942959123492913100790621842137518945709326066834128391162489572166292477854207813689411672757234649183410090549606527665258782367087129147969534208877320275977326103734689166490327718446548660668505640575097873426859469411439349391549112150746781318658624078579408466080106066407163819427933580635287702250268355243601773401078542188501241520149229838784560195109652062550565113578376034718241667707980288915275197510297161106953507498652171037407776202137226620813175071150610629326360141788987847580427856294160836228537909589581590833165885412039752301065796876171808892105534701086439440633377444122300812674009216090056692930980820814663312756426512825347740127420535055769689623957947380348773233046156051320115015276007743199604060021335921239258557844783836897519102051825913788542250946538936039040253831994097947456747620421695100605928961227588687183769809443565962989735089866901444141669774695859650864617221308367350312220147364662368272708168719654772443592431341602183769674666506863593631609109217682150481217930896238275403228644689401946310692805915945844392668857141814599919172008391408912562309815689661500624027004711152874800483036342944754955438824535749135976004626864697087515060562040789961634505601621522555433804746670841271872074193359551867183688862910364647418979259272914791447456227471062441231086311182340081964641528580562630369267686908069357627861365291091965936345026802439322565139364833156943167629052813092046346329060306610870928113270798689040259133777069804139075610931379299064405395853547625273673073119004516925259460316604616532924080998631345420312400385104751529899301728478892692154742815103986674470784338462572373186361733745482963512589598368608312492282788436235467725062954640673965216719094568725492165367266823231599707481723271172517060211556820730434259412824215155272410994771797329927036808115663557212068664121813511940974833020226523215531304212407539687888054145338366486043241782712254474527312231764946725436834742721779393097477394240885366491786555178164508257081386743827630283003548709431421962725656591570800780309955199216417085102667412021891854712182331444400093185357308656506733205623639724181525143754051916478211153678993080993894274495053206520471057523193974013127281328204120855179723491549419305203401951366620699015333390722277498144558830616463601808274957794118023574016708398061199389244866913781332278258296547802607108620476914297072889585139828437052908758503049789618134430702724325683335907816938422522657507191746823657206291653945775927548779959076844374063516316915205038570757415071937458558137943425010898839938414020145665027984468179172666951682493630369419537119845494055786706609704289467556536785831618495928992591816372983376364858299975718102404330091574375716138551359839583744975399200822933877915160069081772216656153188568512150405511851030666833212482616676287380130615425313615295748592889225318945078191710497230163502716076603705579338535484251498804350301025919917131919193229040995463742664468520478786160931087914120042690636928072817878381683126614298561341826519970864065476708540218133424702039217985042874177497941492177029802504341048069927786517104626296129747580077008585149608288397329024851292331118853846213838336363213746107813079761855740950554418776483790486442130289477400875360497779799131250029480221959092460700724059327006751050291840107935836867480883355136605638836952907889657685716176368776994101904233667061329415038937073795270548491124162329652366255179498552691448119279910834429418359846924866998942478473377585221584838083239730268744471460099163111122288201909828872935117682676049098351778867751799757099587528257491682450566691713720387101672226587506233206191116472282263001825409021495715245734607233540690533439342134602007045246428053643805306554650487704500934256824906650626905333294981075471170365524872099211465102521689809666362340328630067109947013020010928396484014019927492893607707190862711287163142150883585952501591566337304301301342383476347588083943841349057016454392596370633172980797618332686749466899601265289521249728177205096393782074697488488793782007352552495005640660890544926780339898853392548286013257928461729571036625752985372989359243489655964832962933031498847863666262980821652972016263540495421999410573145039099075731359750584197607971713456535005782274096240553608728730160529977154636275646470245619066143617544098904456624556648738325631271916440116679093737979756910112976116384621537582019173459560438012286296983603059323535369029567072316508440330374880427366918849588094624442862715508948578433614561117412186896457854200217876038268014404976112850807613678223365302112851504833330357571946156944991936177141228200737625133460044812499493650855551248186729905221100994507742643728164412932806664501062823201781420981732340691787850708483864906939119679101737735706692857296146279942074801235009365718199356644584904470584337157589008503199633226080994545504116747241252126716134556330552384538434313030923015790476601719535096372112121501999569018156791295174175618204999873937268614584518993991964474263792762685559955971055103968561862011049110427686191176029142770417234047789145050561143643373915167516797319053876497002840104160630498599687898446431659719500465519069438717653338772768713595406031788603751478098651753358652824794123105177927390773390110052542471724989650093983142051891120111077366559349062838862582071540774525423819625778143920121583211652387927628938129219623998895244040601662860962048448855351641342918055953401151130871406725853449888062071518116845211732463776726861231435322101625087446983647866514303009911753841230459532036431319841532133737300367573457834713879895312788579531548545081480599939182970607612120390904181388810627052027169095935439080007085761588141279618533752030760835253114475819966482822633772596042647596118229048795901084624174618768608625095641560603093851395037298908687415083836102875088627805376380384940482674114949276939779850505178222493076494869092645669032499162669837531413096753170492886533183842810423549643029692754088139387337420338868010541648629284742337181800299149081901149908600140688570778707773427979274085237467901176562851568163357261073264811550200258930999094902258851882726629926501722503317501630267622359114393045895959236038426628746023371600978568185727793605872043849560888722392363445058452164532582036998894679894301897544434194943455617059865383193745011472365487497076663577420422573059912113520371942040522090814542439562825530959844191717378091900108378836221249575506305919325733817732024971238275527124566577897334003561498374564164115150612616592441573219330473878234894779930331674939548128642820972363745714517534351843081055115743491713145992654960958917544783758775961579334187000002056412829717741576645857076559902341577497541983722551307146660532957553814991394188100237300699670044898241789047319894553090063383711288482164856151608105038454811979720292936828764327376251956261621555297842014658227190142586467157999481449312054091686379472678676160937341361635526393574199759650636920014408435911810584445352456290363206585245985206322734748781254946430686681366819230993306419411269974257183406979180099992355538269459579737347416630891129875374467864644716174883375033036166797503906364090991551433929754742559457344323995433384706190854864307802573585603255468298674850985776881436478607016065520748846198504248558464061834049923351116928990117818868044132434484224553989422768155015451082824610424343707665784973700495958008552610767819019527381540686967748389172342939548849588021078665438499879527691542106041957875167171502198529980193639558965900956568050058795861001587817222890920003257645492267639404391213942114739694049336340249587343911122186432124209617199282795835060085075554828517046169753400575456875620259451219898731048519865218985282782893283236683269509553009118933223180300469903456936881481542519634359676000292295692374796769483113748104484138558564259790257770325662725680305015692164197150219664178207556644704916754320400191953274952241559743822366853309768100644305895317408361902920961007191089011658078254204413406910653939004401422233478727510002891181428658842296703886553079682636672904291460653407587106454957024943252971035008566159289348834514217685230382899771502145066918161159341353517923505997909222112824654258719617454466905544565604651259726479090842965174433808407322913918650476268106289037218406912251726726820604089641605190528348994633719716681166617931814274183619992863953642474273128822964920649965746777611697977701701672971861429609807786713496851822216468380336819678117355721952799333339193815541614918230564984752596890513469987608782341959927653712311277181017319764596636816201193485601491195720136377231052612835583262088849960315613187583676681349881863465699039374528421848563487248125810068636585232337316647535515130947083739353806261909696511942557691882321777016361937584840768084344636371771478682569008953321656906266168773973993257973391671165914416933064135939283887916802285871541163178712576688484208418875308503766028524508499375588211456471113831508313872286566946718517969907805833260532856377686525499780897419841513102224764521380996444472922206005544790469989715356681169705031515204375505492559399585482976672302974831334115583300238202904117510531044578105292623414714903332376671017318323746885687348391837629980857473058342503265980914048417865622323669266369046477920940178675450860098705330660326677561845502662743734667988632320781594446230234756454417835801873521466961094764568207392654643555879636270086429189055096487672700936160795361976760265909376204597188448876393777603293582476527185671544664244765113741507542303241486342245389728066425220788554821048163361762781951299159147729739713082221025334714061530843763598296748727005571315733462376758425140148365504448912883389237848345914152551469116637416079500576303040466589670312368378993996143475745248591367041757464036494995315341790995959365004078167830186992741632934863742403237605621234923864566269716324127079059803218589699528330465556210111309657429253797071099950611576907532950611144021651960021044307957780629335858286849683971243726385340484914137307191383157523944207437814816222916026798464737712546863103575950279872359784729264263201939221769796100829955923064544385940171202365259469824812850822209896703607719827436634585941908985328584256929425246046005544533517324390983198564415187615127111186717024567668292007810169991524743925169234263149083033909279816369755263877067607653423761096416036791346320652571777163510100213046768682718356923841427353489709784595437025426578825879698435598318174099654845950372002035818461711247742981679594718745364638262341863659991180440801471950383919088668332919235111359104617054006114464175511232239629040356467335480472705864317173423302634608564062217285987026849951264478788891618800560575347677559845574198715077738228416243704670697343725593465628400940428033021548114163273767922639450251155598750820216037625128907695928890844559005321963611505510292159736781224944396114797413080602044232552069956729400555735971760848368195655432159453361922186666163457028723018449437845937932841888857156788934744407878813972234819389262883330654609236432106377312517032326634474919719282276497874335932324540747776361855289752540507934983161344136182690981291962079679460413570189630582219253529390249691512704124039850164594072799228632152180175297418655500681328493896766365484024312785762654973747989246186182340915160240807243258476809449748796385876902492794052347603128173301518472938063401823809611264068820967713905863062304254998555859890525640220938070782974127593547629023635869170046060755683143386412874729934553362458816320883552684596467212298174277725366980184733526717039368366383418371860604023729925766968375371697222154745503554074559977634763099136269988300041039068051550858608571393959575506855825177657860582562658514327786018538608032320444658292641647236675491279738689080844876309944031966729088215796592336794016860822562615169299202709100184838085164909063024279384159510878294397548927225000015989754491752727102733088575271094784043251333294461252481074983969365164089635771484960129932228448043988796431552441739046385431943545576567391567462376957736228877285046832372117904380112978423532430479813022969794363140229984490892307731916280778602057353681415316567092404811431036227656693790232136586666153184926181016276112470990671219375177506664942618286147290847145955484640140679248310536407240838169798307414015926112868823451977827518344060159635256531771172680469377998260121009227610382416176750900986800655864393266414676468107021314453284586317959231358070891837462523445722135535970900392345334456832634794916667026733490546322474448193882982701889181451721210750450278998058249218542508280506038825020024539131373437062196880655545191484642414564335866281612092880155120924723778479956328485821808638739712054584277209420319598378683834063407234052560268004578738422135356394419006018122508788762318043413066369888547286755777260457489628777826931970753163037131388159239948294872951696878501209685042242688138890460140216716132187230092931978674890883824463058042399006479299128244632409630806297623256872248960223145354293315969950312976851547985091142640539946332640314382566847829490710856815471684647122231514575339792737536267076940866866011942789813235107359379501980984139127924761867507281042957214738060099281499409813164707142055111744825826195355665277336810342517110181320313388090953513590710191098834049997464444300104260686815499150726943541875695451356175725763874996904063080549469351579125645189021222767492254640892626015587309890678086694974929117973090576880431448445245110969973606122343284291638006642681703746509385259842520516676933302374986815086609377745700111887788541337189543173992672086635272863644331116932034608144407851954336285580646307669231801227301445782745084217410701099758693091799443208561390859648494598999963029105621278843666668593749975532417357060318497580472819721230510455716584672484254786420569146589034756100535531163337663725577705020662535146899875484838875259911108644686630404337681851315332935368693760036644285978763593614381518375495097228298920078341393966203263043734364259759392433889266739625314732681788448966362150727425692291122547390356087315309261131107792696947002094154551030858953255444712162603023509586945455204308938701067546709145061804035897057398213416975406490165513841599193210426168294419696152376729466174830287850883290120369753019879280083840490674100307505151218071301222293202610078204403456308021707130097325546088659540011597350458509678549192248055238937961805742777299915738704443387602500575236870689161063680543934434563728739731859059949566999818619984952583047124710012809930641913659817821856978547755071858183307642141658992579349042008555427136963074172099582417628533186700534122386267085888763110573570293863338251167738705807979298685074261259369127429129996888348692052677683027323021743593404878417737774183987958455745176684732443568649086462411764719251432756174441853654285966666724158079729489877738943391661216273268033449468393734406856281564006954117630316175895796504102152583993649263691505345156654206741040764956799007540504943391005236887220161035965677345141069793979012729247230563633348601740237017322608263689817167527300501835149958068251901127101045359220173315195636760771382490821080117420449092322825723234576799303794005620418194545381707708473792355228500978150982754964969213341624901098290524370398581931945124320551515477165847220857891412296465681608905621566136393442207845538170693631264991154531219507224099950966003974486586391429183000268163957412779910494774918630166578871575038700523618669056666421439274924557386783295890649100009175508233320731278375904835055795693675974997163939980603631858334395735106049723570809629306220505394087864784169925279170650275852079866337758902377735018705779691439697860931824658903644612882580575811982370090710244977370910122355202796157067294227960621278942022698459760797958334230550433465819361782216021457003863447515275330845547020980490993480857697311582917354014831076203516463588661610155797963035619510323313332938307710200584261159492508808173716659723641847626519870767824330352242652788986115558494218716913480055946278763761542742639890019050859875317967436439455146336334537450002847733419085993743451057102893629386101429045428710946549190493880943434986040532725850194218874516451147042708865657759835963140605544470031677945366034156462117861905940384332931122630856392979421570913953147615169016792002390665726883056640334347231740817878506883143750526761287948714806301904052166357283926382565308170277409944016820223852707711518146790052189333817274690875962920202963544332664781558432317586028215333929056344011391794377882442675344509339367704925021083139500698215846412072115885017228289357883664239666278433934548769616230099829911089408718785499065634939620463246321600677921814312564926639977167973299020556482266342583690201018060727053570688832345064762159804093607691590459132763259360537233063332898144891064392968038002299072661723298050488244385985725686710937894313537181819601421956376053917128236201241621559947738808822537613276635241682087661653748575848068379614321053541984497867418880387103813835030267789060354609614350490342286980353309248656831483586343170202220229652176851246147693601720122926602358058984306902770288157940017142680085220341291270051930228340217512475449742904112174608980868322347271684383695517121181229908347169888709492566117841392790528537259877345743694103002111026308832686349109859255734827507268845252575696108042154453597432972779094422833699606352454477106403467807070097803976561772826345377971878233928644683777191541447183299817920683262412591927904471191977614955698502648602005651702112989666701155596970393418361749460139295334038298221516439491023762028165790369420500140312648079749641728889438972951739683142803346522905505961833117815585928824402049645224880562610325057749480211689160989064654580364111927298266263020686936376735231992532514177218314212902332393190380418319956125887392604665404252827700719662572737366604760718224380760219864104338215502377857914322879928633463338726528773335958422675526167419215175397362039820181703228210221131703053765151981124717744297436122678472341432739062511669260451745849315173688693148207775198723450049677074919727509374579964715599162115626821074898790914886191925356307805531592373057074660841248516166247937083655829465698263062363229131447994341227913656964060103205796113027462273400755428784086762042828207118607907902698711302988006448786891210900821472792251992587466819335294282494443772117553453747713198383788377939095119648114701038578866376323797405970645596406790783722113148247728368978685675876371411597335038952161606755780509106079684388077855631464801688302938226840704095374226401773448986007998980087375615518026834625405109880564783789287997350911706290278225847845666046130604982537738403559110828265336869998018676386832341705422670360476566790247046798086363788141087435672471483326157319592707786684939231281356635745315895603957505609590328954311952890476467994911865000417029217754275512588671205383966643509668231431136822604902444862631754506614719148402919895875763703754278455937962804701129259367664663373897013043569058973849450530817769943348993143595415337664571978333820655479101990083788083270903136438730135872471108395877173764672337314961594314228793130305186490436036999209376193503693098342619758842987962163751157595672010754440555447361590646124300642264434467893197811310196692021632264953778356285924196754145561751524591798295805489745161935291890200438332132441936779801090455797904496743620270446615277862563206989224998036169206872858168936773029274531867461386068457602747007946500432443882154321209461741069275836423964112830902032874110637821013996162179271188985818302833998392527818827228976232620619674138609771869447940127180350132215484571626880381065327684886066304181420449527582248228233939596046920185218713535084176163240688490477964816623645785637331387151625331039460892051236616900891998860017673904300595091337187545268642916040596864367489899817771452181495455628783751398679930800746843810802411594053387226413398777501779686780273304782021322041920042150719113741710010235179434529794850195891137751900258387421793543744265689503746391210995919065604724243556891271077769145779864623634432113022814292740544553425304100322733453185032963676926917712768914548403689465830738816745227369766259431389025135362274523715424157254129598106114089202563413433054868439487677241702607215536557609853776365157635521868755243498451359260813434792716382263467483040162199688889421149087866274762594512894532911153469021214979886085035278761302582575898284049288204569979721098510349558911069371023485433411089377404887883072150578781837436211091024716933891629366093543873031774314730708656019159927210513554304106170351572052078466357273076907384378911227851278536275037122142130998755221690533654963253261700839248146412077273661857683351032475435231090412833510348274005000545632332951149543964293363497290031178349550329970074327943426729983064158329299822017408129869566875186831066414787891035204618494751226198372522803278126634626489453445036490751064245164863260816096857813683500802960841454017865034761514793879448040040006072019087473972924721825859722526683850082577409972637162691256588336572406153156879539197722775354952345994535141538984996755649003821269211731218183174112232646527291504860742903777218139880836349715442922051072262487122767130886086771363883469488711829364138808200762562519424803685897223427189545002538731664983248790535820198866285116820324755123370384713234980096893884602239917824985101138260615507281019812179025475890568367826373052002890241540237355217268189326734782704327728560200306573340974894727782158001344372479985235119551045424578415099594022550766197168947978662437046867664295892078913815889153108822470078224963388619132377977777600357467149889279777977766819920237361494844838297951703479014518967285651183359093535203994894629961407129104785383963688360446234180474695581089797553896281101771759694626393973538797782133421660377871433005263490676185305224739463459342695610869769208061185287148858135108921649296241743785565844198164124329823857903687000730968399972351805079010254703755014884028203411028427316443924175578522209902953733876682476295253964274636254846064683595892032035205297327115091829023758213510314400662511365563140631585947871306966309582347523929207271165374418471456099667827318245701755667177043952178960207066902090692102578479416611101330330962502535156347921515459879601812779239509302738375684362819685693606472206568996571296599726823370311823886244867980065355935095575666360017034204339357374041126254522883799799909034986869346843089455153996129079567657298570480797509425629811503481223729411152573563180804242450355939535269832092728130357234678512803916968345019444738341491371340949178090579229477484392444882024102120280730123260576352191515744086754463416377192456056935511078316872022949470498711139468680869532379985564798978119806031018013154275239776066442939893877862911071760436483394026741971311982679135042825435970705683439292954713689287353540275718920421700758165987079611848254595526546651561040522491429096631833057147413820617925684816529471119610684462844705285290750974834460252216963530805585917278182758620662479329655347766729250901798984009486927207899580881257548301274954865943701620884449330196547529755614837976605261431019353338975154640376744191587373306008431191602724724695774731670942815104112393798495780686525596138533134556400036667396788137893537741485828477393499333577835976976334151548512277498103020608566047558795717342313732136983379333569390259148764345330028172347726561626223740038867663477295063835029839385065673227193869087433894140130874318663794584834597144418333786580651986589529274467525842515267436543438855880053908622673483255262095633161693443479729802889476455090631579029638311792950056477152490785357129977265867173806068759238149689098582385249738144693473405634360991143465408830582537024444783420078290251504407259276278507543916970232303235379945301911082991179555655599140791753996645324121445104495584218893163374664342205377279986779575252627223954066813336689571678622399856770783953095560792004467485611062016829932546602132417594861965546213974286724650020608709814525085444002829198135167311920264209293862992195764016116002706943968758443191592643166078736104174717630440716663096023488569541031987500976958972013112341701907287591676896208785570559785081003549604034613048182826724009442663980119966052305671169428570899267784555859488921554021289602082375875745417849017961455202688387484222042322016655207686353581864744979794001340193274407290715042041261280088702289609443075145667619774580722627409872365558409375112769096250468546222781407962001181967844733879378738039346570425883421670473794301264391596043671479538498703657625787377251342686261648173931287814767055617982683217624561881581489436741184571346042502589648509047749286148065377251747915580287782159947263255155045753236706187545300887098408760577677484438007572655283303598543137238119328973997835934608527917284784910531117208471248510846069882335092402109791406427158506700578574808543866747531832558868641680440003635974785384652873567923122587210699207757228915423593925301588508936943307837317526155205566840306093816696473728020678771576610712753384597273238464321046163862034049909527015890763061201157502057764621123741591080177809338696599567625785310586850452560366907505893983167348242621441503075561755437466954079850073674385321049244518104007453819850341928020799155322532972796444558459252903119251819184089429109166307902388172267720848208935450219059313167964381969141204937787701678633060749725803440011435870335254980807673530442647945963016380532558118315944910120186515721027160200884807396728978513922059971757876012556374774633701230471474589236437505813936457462756447274638096422729763547852816657933065172063725690639953728933923388175907404665147148816529030227488972313175303783598638928704918558361100589086661074150127368796990939284738832817161803345658776965213583583515847260355256762177660058148070074742297862555686769006072328579343110257925760502254754577888367537696562895656781022404431929831791179964477986342228871485693211830380830253129685815106115268242827720829523444918530771090051735463055567275063334698908160887507569407238210521593403652994716717890753486119270851612543001599876277782247014587518305246355262888333635889891410046726981205845043204160540941091655912793337886530856756195657127005585674451304667412343433708288144660756367094092467321164656985792502863019921386276175971295020940956834478992177307567847859833087719549042332063005439103729934041740653253916771574873783073714599990172373189882327511788385604176053592010206977678922573199061298017816134438535937593487989072307982393347630136453970074532313367298147956371188945224350841825318615419258960534886685282282749529887097714035732255575032197752663227750672977893173839501710623347891328026947396193210171273200022232148206773464970197350421201035062009808892451489191960010706531834396630527959613703901976245380235806589483112001645158378361173598044167343690708212081459218434639932574355218018860118311763979207651049144689934311332652666781869871399976526402687680333068155655344358639755594880549621531039098659381568486792685870747658454413675887356085777984470211231522987080481967073887298376069013421060340264029426893540076013566782286345187190881969241256758100505409161131448050800222913130535690232830094011465490545143195580126467467822070421881108412726903297738584689846996530570732183243348202087336044447119054797815137872719495905026831557172156212807281296564929518531491977723109734734214165542488190171847508746886279910990602354909211810505298095569709142671720531407201506896698421251636401467144462989262943590809872972416868819540476933023287097252183552013613200605884473526265797253007919163228546029725466542828217553690377229197383204861283433913423171075291262471551506220407995183069410816214871819752506346073196891316413109340169141692519609218898010216105327109918558535223860054273112198508545459975744386819723447655731092242577856335506884316525804194632279615340983862071007422018364879106948740193684324211269759636446782122310967483407155593120038118479835272399200889651292730732411798053793781153064933013489219332872587035317195156144346246170594800028332843549256777085620831797274774527502861820858156768253664179925414103473712977847397317232789423450955305572483046443305725947755869511908539695810316157893145549272226812088228686835261094192679494015323075520946027536346507607932976164133558690011646698913841898271332736439898484861354405080949762665033673189842008403709993471645383113436151017097788198519182849531419370306335436648270146927491343710312082318200415414687211800887105122373937084152042397690803464064671677021450488450694662465960709029589661429208377167722141987445235431082826250808963596586763214161050139943904252529689737765591764627484265040939069434759663327787978316294262429378623307705578406348640111160288758636130632950907920938238707115244778962420209397004716211153431607722961052910672984895878189046681088080064054069817211736729345348477153408129619437389400264058801614451960750691474789754304049201805453948536582652192052584873477073658773413430368269991083941806123592163216198778673839524419151116954761068040318037504619735073753946672505828137754870491346141271440027933250831347401891607389216334458484386248943235903081901768996366070873464035977779607339647525361214604204113607259009149718382878475566248708883714007217410290655131192133157315314329640046126239349710828993162548523042925506638849029729123356621793569477354086490927883120759538596978411952635390248637170451834403520893564226166210793304682352081512795516197445297340374711514343323290173153672061428060181238988304102583390799521510010754959517330759116105913426503199647843578141060356795284521030346272651363130889324504393619233382529141034901465667398592807326776417276562848482135309702107940206206307315567783250065204230672908329602310660481318820172685261010206213075797454652704175379346247154040690952910274380635526615586530669849913477312187752886829188161066534327360840528828687774324331119600641416542884952402367631142813369436776473323894189410800618428102680778251654443026476887410744834616472028322458340112511545723457565321520356963602227852330559231527595846185432780768250337535600461183143533198603582504830919502424732495769925971715944335047977442689656955659979520554453845583587653339139048078067362494083905170119233739058298219201030632156145877076418964389504802450995618331469066593580745119070615142462165013343563285971504222243802242749873954782123810145434792947603888866541344956528285011952588886537428100024921804269734548719831745306614755343944174671636598141949516857747672527575763368280073647499087051412584104444726504452972581867482300242399565041293725134966263546938041238143636940866815791542532646863140907818212417181338406092665074066893949807431585442321998634093892676182964495105839411754210899614445574186332803210487798808337729813050814538136191356787581767689610703866897302988392099527044142853382931752468367418574298911237194311559954953250443824782900927062376360020478933584312180700293257678022299818050555022212050699208903074394774837899650538705397058618438213584761045311798314735466337378333077510331725028494249290990497864612489151643647715806061252970397063272135050080418260014042509802898049022964965309668682526168045613842888129985897067631152638211819735990631247384588982435507761077212241471694200504726435494224419075229750548209737979249844976161299980992343839366524324753074167394427751595471417747345039879552939992229514713052433822018745347613067121860455883210625119371962488048594353889630484595968603462511476837657806232001342849196532408153825091860082260385216568599844067684304520219343363378751335473750143039840967036199038420477017599722122369500529439149413625758113760859760888621336071832119528539703355388354067610173699205476891062440255833116180702015985074552371636614164784293690912052744043501994611656839528961067920706205755678294159337283553995636748118018627664711476465561728718102632852189346070506952371998963822663973410976437602711077438387519072731970358636381614063830173973125881987854344626911534388550471847449086580579179362071807740396344486735643533687396959491979082514272202534977256272094294711534175894264101585457532958420975344532910155948829799799228775619012694496439980912926837240854833395363915360395453396651421644092772294171839820272706904087714124126338780515287632445548513304393379177353309160041642544424930139500906053721892019363122397909444967894917720047557193180204055080600190859195026195425882050338683249900935473990440929735766632415422057136951565682696606129830814467677581988039483795331260578833612274830372351584413236301105431083510787125701003492604068815432649389185147247769287114358395183547901519383830830848106694156836776204966161697076735414810868537567294509477889108534781760015524728944513845283706542204280951917554674057710654653966325277662560891988954249507862530812562678701029107274051590657811378501122475820373530971437505226341717755680687119248768490335601154722395346178170195827679133148255482037807434771251535192021492910196732349102486283278520077807019220167443815630717486450518077345082639146135453988505881511203629229347531738623576105574715243183339643816568921969505002852788609133220925909178894482004120777982133478874520749905905429334752635209949055606623366923719155455291017467782542299665480060427145981885894398811503295768852294430577858865009767911253523533536274599474854760855541483308469631335364527372664671621410966772337718782691732289350423795071669822082193229988288282613194483044667052814697608010867708139850654703019180892540134773818417239778621032055535643269718906837916258417171788387977967535286018455190728278265162478614288609512374351983549744784324155580247332631954660817191591807855668289891734161542462768700637131850383074732295755119071879029152698689262879217508073873019458508879545042866625955118786094496390437432027997617341079190595374692806984127327435011624093494034723529213830030775550581633073715979756109252032647815448056569658215786301419983626433555665932014019064689754401879050477536549643369009049573866204117988353259650076981830708954492907808203265382513069853275148864409319107352178006472157875875204301226612677446440153124509508323976600696878824652410216099664604944941885906131881981963159716875811346583980790287508527333741359815275191888293028433203952358743881678219808308845058389098109350561212897651330439814962543044357042589697390178495938256955726843447546026380689746369332503869449804292180231681688240036333408883903803609964091886759800957963306337476975904474781698979134533858528566681192233969513367267038146316923011655965999028902463323764386896327500905254136047084078117873596361071020581242566977851757714053827299926034653638744081646362778166850311335899464416622222973578441594589024273355203253540474102944775913666682928436533540012831735351587744002050666158409115532350882987045262770783191590873755847920636344500823643260281582118087081068569647925298470518490564990734840935835439689391389439512492959704761037482776734219754599703450748791399976536636471307041407251370367950202442951881744994846475230522905538789983165883911876939964661327730582416545264516534092616788177801176128434072882123789518947160502764052575177631123862271819002804991819754896604186642079016273259260075556213900949190616329929352448293997357513593158042242918724720932515583604474148309057199692344630550179172460541763606890173434362941976267654561551915748235041232390189023723285046435042116921470015115836676490443018465472574007259844691973147419158501007690092020079669302813004065545480785401941023612103931985175335120852925583453844742021687869234030142328252767167092480893368120841268449145265070299463968996871763225513952413311934325980402385231506872766629128115205975749630051521265193499933189733692933361280809550323331489538128515804124181156007330111155498216327037689826806629092477848018607123264783706829601118896275449242506164141026828285231223697238495930743161091796166673965989447378280904548657566103998733052446322446141096193272319312853891342573121300919311475596519799177403300774899939596545844477732832613502984793586586553483940120197707458400468289795532281121655263896237889085927313981127893959254552689635280776840750349242528781683540818327852085989645889044672785540085392165582554518687083832210853334218340041623019900002352085602078984439151780714074418904145666599473609901161940354743275066323432098055462120183306605624326514155559655096203519564025863486663649707317376927606513987083589063818034815481822298688047581034040778550082158379836179709380494474736131408641000905436414935018908556724628603678351970463375396403617448287335896027169962555865070533476267431428365409622740708301920127096310259097679198751345827943320912532630592161395063504430221860877855893311707387071067733164765858923936385769917011530421815962406973852221300751755738527746033312600035217694290336299507888254402032478096870950401136515720932864650508763841500477978638976798276275954311156088561623210718238235310116217796740611181622917506950869354473339933275159274741236557719007170526609069411090236978919262670555198856894621474901909731346519512307250066103208900093834015672610348416021009165534497299287307536545100727418196777632388834249283086379429296534472016810297019681642067915483418820657927094149748280504697246441602507867339704155175836630513822529516567309838085220778676732865359465712560190036543537782839862614392929125541460382527969492173261418235199670665405531004950152693970922203031314939826015361919509648829390339298261985376945057418483384475164626707572428396778592487312803559366846751689746429363870228986034183637803392404157065387971940848098806988568392049369222339398714747077529896784392133807061357619243601209966244050451907902910033699624816121836381572989275221029747926202304489848529062984264383779071630970000533813742029645732763276092609441025036794798719747873689313388876131533282525369851943624737538446213701462011749660375792910823409382309178609024255329268975258177911687291187280621832774064049299341503848606318465747391273238216020355611213493753030237047661636481520258147532862091351136525346579598178587545159038787319542716365265501187094453514286051965806412376669448190152484087755753598190865738689064251325319865166638920338815945576703695255225114151244241352944529458616984088487766622121934176802696226647873502883304031284776986081000339068739946269795290249108647965072906913564060619868836690833398497721825885267536814247819789610326687127139040890537338584076848652396670500292752316234777115103327319149620940539624160828233041725822378784187693119533035408164474983886838191106560844601743939759434967883912541099761042934210432189790302866767009542039356939783614973342887469260525191831259943084745930884721555794407868308916520422324449992960031592007643870087703650573817566986888826962402805539811337271744958066636506942443116207662547543782573464672146895340083339874688158725459927397853247813795582464859035107772167223057677632106721422371404126500228843931794485274877754602419107928112244290515850955066311431724335566113319558414263435188148235732079474661917928533461802761892962825585625195932863875977345525670815460283695850116681989031831005742436244406677045889139209831332501985577953909961176102502908021840374970597601292215177382244786229735971936973902097619402902136281709274695219924712968898777545615933698398133389262746630082963804827332866531627573893208927359519229414328817605875455972913883892637863875988475051664664209173651116454290403952279725775604108216551367663319758178594817334528024873610980643339602929811364914296246237276899225147387550544266121311022110469454623570117684910349616937221851340583464265097878226790582549139413189630781929343306364992601237078089071086826729706800127294229127734472706789874770743929915383476750752339303286973850444729315304124999526188037637748621287286416182744473127880314144301041715765688977741209338129777061960629393599773067746939155951396307108164033040022202360639044058094929357451475191920434175216249813318753228885313613312439835205225921876823214143657605378649185426323031173201201024030961181569184445818681897437939124966656694157029715133807044247774789462388507622660411131789906586814279599298244093439887293367372638740544039424570682109395792175320089742821413508767790890477421354851573319820710257888003110804601833475412427333384856622886574924729787793016893615588305197417856949515467859559695932411954410529956754076006636919593214172457004824765113518166191593533620850644863875221102641480823209655183155644218827582988439906809499403339118399418753919028310812375434015028597557567765433993298552212311729343602760603939965572935643074962586361312673005375225574890852786558906568304678298475625565994195732128572333274772752956145956464638569117721432841009311050101677157719560167758198790096727200991473534736910059655791305459799878463056554749595322416243404024505476602099777988690912229917233471293924397313407233527707069104630021554090170531925484214455780274493434176805309939320655945801149639951160169245243854901605875319578561334003053937449497073231620131241930335715340232124631396420442158947424481176607457856195506330605775197400852156275414842666143132377342175038258753452106824637026394932947148159775943354432964771109563873217464967718335441731371761019281445957174458333442726899062123674550450697310922249532963707225452931453997362794269890469293661542170441126665069480035891439969043272647111374635329905678130453135260371651466427367771153402425530574190366611027473745927380503180578659066788551914948653428154289319006301950679407958742300367994560592022860266889332506890903570157021947676210572637927887599690386731649483155847282283957637860325189054585104335516304133615818037051829366526348534625537173017040244631643402575742411650580531310469707891449386937755000714035903159631798764251004459326091288259311653638503313238068768323046166472115480078276420834655662444740951574074128679336973293461208096115769049740820286542448772054993824269946721776254440019210208930807526335401092957201676148477564202031450347782409720087581052761461695967729526395462847186012876382906378048204678371466492727296232219932715646373456591294373952841377057323407135605977001682126616078160866961397041126930656486379991263532615468104844783051139527132345514571521946665870874156729384811014497595547180905178286936669150557254281464983147696422353248172771140386503277898137274107581177339567500092584670522123865066539497724429862858389473008005402746354620843376251369960520629264658742695467511780345773411403366227981676316412651757048255017835152550432397752168020507024622475862421834125984955615454211993677292228865738119611398268870172010292109163499868227842000502794776633126907298805506313762878209806734216447472567544650555980604724528642743860623910352252629681388327262778267042980357907033144890748874843056591536071094431494366297057387385937513046886042035523198649463795241599595885881735969723190908671592994839773529541355036372852552408920850120799542094242902665222083243296256614540376733111609289387826522394370424180005011629461659023741634476598869767060901236986333530549683468380073901484921114665103331335213932878218798542327145975248522233746105489539577992713984588602384513514457686586993176414841673696189691578495470358136760668883483489229950644256557163123528244686689468894744088490965783121901864583115717729262567720652190165231215227328791742816856083966215338817287928723625475077713244306360882705179634636118374066855595166437119759629922994719401673999001871121997722697955797450172510733050143475730968098315385611096474035139252684597115927621151786931075953000486568570577176940156227266136318938226825140350287136872359241385001913761004229470925157592029799119357575907951720710159552088469830729492698065462985849429780629119883024371959117464533746792390775357919083343237234649434697389178840561315289434669588925087071212444145359426026780560943939772182458395516837373938255108427720272299092805047395786492910792677573034946214173169677503085986971245736678400062080681353968123143165870595839737992064262572868938757347921463905825554698158722014829341340764552829468500623893221347879503504709449481577552339418388789239054226409142448164582817348531307659146787541274760422701168320202477733746939609543482248643263906638298562115719883886826105108409089859547515589001046005719142879553274687782649306622122411798712090476850542489325489738378900915893951456515608091342578346272325751243945225050911772145253561458476379334246513768645321073933830873643333936401464977530295800453891321561317123622524167192348411897239620093102304791253110536483547728234961476003113073088247977304127369352752433574400454022852329346158415351281003209408195142738133466807251457802815290752476124573161395704546551588437306497261326427549440000800488275864310867458484314268050605961027904629890023556803320188804411984029104717993707553554217240680629145388916982953211886230812797398756438432865397163108237620729904655057150817905613963298597829193204097630229724538416182894294575889146242965993121283238660157129208033448578842091085677955819038636960839354994327470235639061268251765194759790198672812026389472252298786698314342597775221762427822407257978330300233653933377870344758208403636056865792200742353536685331333635492688397717426863991215195116759676911547782761842034094427662550601869284984725747641689964349457654504083557943297116578290384001747153659660639413679395639491774095135488108754664243975072964960679173301117519780163539303274243429879367054473550286700870655345091121141477928145543168619180709305048811345751799643470556380058618462653885848536034007667710230750992847171951098797210474214447071033042563057936323848723444499837265021307092029305680803334360599221021447502341845404989864149197252193556285955469399071085597937955814440699869542154335238378831578659925634719766605006413527601597833605089583915325971171129903385381078333263641457303152535378688378862176473340992962358501396988103292558971554471728884281742317206053807109043665916650996349225401338930039043975287012795122541482166365805859481625389455644200324113476906704840457162448054781807049874846424582773319729492003375537601241361138263985098972601221755558531121097590380756531448483474968867091541407193959837166976510671581409402529891531502336207747443162321741444565745475161702038430512816640933194362955761043145490092857880958175064011740608332809189154669713276912119236287719348143303600500785090630580147296812528121109043243456732032606589587346273886218181110195146423843831972086017068752255315550255382643122300017817653895901683253604070603757994866347462569366132822276974686838977311851362654516780284512897293042135725693814608232362707254915236098163598329793458895263388947356564721734189816377507204393350463263774293509438732382706216637792028213510325040657180579724976381357763611943422536297422529254766939168161456413207044375003858455933651230092141853185932215639485445964247159408775180631171041714617313415198498895420303433131291470451885613957215206307803398881085526981975041557517730334644567425768576420834511995189555935161916957769717819815601494449458430400999557872954870817846069969294327957785514296530532323766463438004479390811630963329399045452195955187736214706691885304982683926612794898925047703408214920919392860990411932330592304941974814181216499811090460483061728589718841686844701778144280096739244870278090190547763376950537100740632683466230920565141297782043689965581488088945278753370160773393965328595134462140377970641055844512527124145756020885118184219861673761576516718082662641915174952659630341384627805723020947661930258051457558758032270754102269489344782028104355625610788720933663277832712858594328016740210938211969850488947472161271793953029983574825550987509140825267003236454193789458092109641711109049644499197255774307423866266722815131588215562911110280288549252898926848127595635622049055991022939239097311466954611433786629745442092857163636107472027068507403310277036622073912096726767795946093709395117815311731078200196831771911898312447466828849883196037956682470741552397761967422921862319714056590688045012814997561023057753902174474041353403290058821132093593960373511287284241141301740515313244172847296393446888767845015889830963089985573370895725910669192234080680787724146130596514665080433085167667933287920172788128282872926629386231814591062351499448982041440792667415538404127005495648298421985079266082028345949290279234112423475803168919547349472790970699707241478622618059099204977905397637210775127117034840933389425473273713112888441974406520154769988326739507161783516060659075801001805643594891685708903930898249897771294519381096790982789428227679378569610091201407410840517890513081456868441278302284729451953051909594340850570449701946312385651607014325496499223206461314304905184540662815018286542672386880182098132043774944181995772308275580940153625229976458845259969744250146427266088601520844880852762071656495000294854201935583375308072146418949938310459854020835404158329473245548620626815303509148017630018291000772862330077095459317129203729573446483719180027140404361699007664215956787656903824036226861956396506648724345137627689152931061950075561577182646734310695320194397527231319063535735341001875236794235938559621472377926890876873698718149900393686836729895573048707653696622925895434375167401088279086349023297829650009196261054736487818782197247104775976717269253939767545695132536372031076930523385388410991129122741279530316290922662478343099327007639346085328689646363922052952694999817010680925736153626910512333418076915782116779677706978998043442963620524934639454550621504511098131780073823185255340381947755414996890133563934039676306267366995051848812388225625834006192232356542350636856519656641105230993685922771323489707820842041578589019125744017584432484320583102328485614782398301483783224379727728230334976877080722957894264435937880326918885053291157892778176259620419855126632193420751101938610353183424033964398528845925158417310102874230222686175887382245115774782699691189527634829940963686719874304107620514409548235357572115816072816515196686616521682432386154018084275562381579071051943679313358946849200132050544740352194931558150157716632362494858364145755405422408929176256113711647983200264153376405964255482316952501604670925143951623055881584354210717765746282938654747942836446966414011820773780515720691872992233945957830950380570581226663349507128125597000938802709361024647218290346036517364694089388353153879849591311699210799331328659732979155664728104967813488611303153771201623301290569688337384846485973159682822481217622070663748635359584953421559897943791452390669291392624315361473708528965457376185289603710146992190022246090701691397250875692520055831015111017701831676428637114019378941114685774637709444102302722956489357405252352282275682866665757427284118434455595791641675886344608457456247280771106856490683008319617502751621231201368836473113753826891455006984064113179209195258733048701815256759385670780783560931757235869753110308999998571165135457825261489408133156760539429721293786587741548703267590378944662996548967099211743873785177688301697589807640168502048115389143303492431102523237860505056188539046546012083520318534052602749364303663225854919363066543504372640215291337239247115546358422095206138436184606377947806752901089854264118556740277712719619953392007914383888577358785239433493240811130858337784399954065051464816012362866442391919332000341175441802798061265814530089783138927911269013236842324987843945817574798151388395650884851792191895208907295275010894795001185013682832805147429492881331987398802976495792363184504577776576419362096218987557484927557308818997109361202861162484119837079319355952865785060735615461814048363349019019273254486972675052092776309000023385393377363697576271826799181939692074707844559920744805085851781099895201234757148998318562804513229615949629871201542723840381337749709209207987576486496251332203930679529608768774542033442032354710908069735954270238475974024025270741684954368912191381467532883608956527581646300370421932664497715671753833847343813867916999095047733274874512833952826959862800929119255176602911537705793166164657496874006403332170788726984309052250228736480886214507169966630767570526680470405235180522367187415472301677346700982364933724017832520741281341058774972458645196553577192307597458751492669602808727913187689095408683640305472261940586892922486100464057005898832933099857618368478200957164779270548801987309561985604320260424576296329798946938623595502325528383602741987781700589209911907811000256476401702680666463477432197529894466155448531035024812490449526220902442092247207021527265096538072272396627868950524039156079887839630853641015420538097516272208423986886658233301001915346013030748844368709642741696449873716312110569429823145800403883605034026598527557784538019201172273797316848902571693010539282612077951231053427578251804911811715175586721865107960102863603585800170311936044031304893663387052004947846709005165627793582106547023138325271748584719493464757920463876087886053232255814040574038927812961293219900218595887630426433575936238478574506176093984581872990419475009096700769640918596049550998666057033863206275628773304741929181749457468011989044472475091051388311142322814840925722236783847747966156622090223739203177551942120881689014074070339549306046441307620272214447603129396071698051151198984090752050095964036352551870503703000733209464459545727931357391024432679268707962511123417338212196972135328193765127180098009571093112773838144306205384511321011931335066648027695160506145224377639137819244980564000702533077105045620323278669336655533326878002038049701789214308563647851279461517075520504099878663905622249024271864938253955984029125614047249840278753640862787071105709859416480967155556692370586635132186976780120923816925385740903329535841199721066753521850283659966073377022584207008552711416141031059274918530065081948677845447142635768734724376943880741782854504702970927324913727574253483006791123641350768728528115929693051908630272927456908884186728924514027236186859030098779696694224383200715612396478860611870153702631748778592783130484411473316371121260270068584611881461091461408089371802152385637267408952752970141020155949041396462632882669340274670041153269288312635567653697899867620714745000694518329147293597509016438983519126747173104576065837461508242732172935437316110565936118456773697781457939487110734678821038373517254241613036115123777716055855612128631538700527066030998837889442547661056366937562729093308464844054946415144583527073252353665476200323754864073281848015220393981817077890878694565108616565431960827782206635713388503995997084341889009236851430814191253080359938269535214591122587060018643321371140324744145480457778010357929782993068057126810726578613314241093772937612450680059243787156633470868769252678636611863418740930394472062522095810440057003016718806497660911588227068597474427320942264218683453090403267489600958356895957624262639869560101836441721648223007901799796687812873988401522480790278914486882178194678019000691162465794978491814914679021354133236709872982674193887562668548848497149377425401601914422651718752077744956987589973477156542038871877662359268871621728992981542908265116894719963079359106642547513854546470578183660430383874893405451890890388719559329445436911463622415190184921700957691659594943718584969960975044830185906071143076202882444151564218456877106249071484449585753378029551633582696660687447818420817023467797800650468836418816598091910293117460266822238638272699538844262715250533582676314865599594594209839817245083947874237532529700525809797576934433925223616480997768100634123447954581600701387176158299154958998995097236534249342744591918918991066943580814794293954736042433841581569487014197820198042457907168142955831402670587267482441994874639460901177818123836691398083239858471878584525488415272472224782195742405883819848575659922642585809390338864266540048337277111508825068650344828919241525493564499359763178351453898193231943347945561874812997264398297432547686716268073661627086807706653537358011341289142120234733476355431796240969100349045973622635392387634285581803937593651504646526345351753658894373112570969565029488980143900308457057000047658179853201973840282906001025152203816393931474664326658307191274361142015212816899287745622393429057292243852465875559024233936973699877007729477453726590250827703853093124768620280465785801240391113265885745665729225464388319966481381750905086979039463121768651825654774832741294787299884063408406122207643968292860401114667509788737976471394799324574289376919894978958113154010357005160992630053599415768474973932453461782455007466962826401197046807225652262133690309394491171041047368850339927098473246917504958633908653302654748750561636439605382989287642433532962007371705634883753082276039709597933975987801671217993536537086821029657623822416954552811865007598424308826385921796009620529207807763074851159584403205552856556144043693011730379448558852868138522863276123128347482503053054072267324836231430458535153497126576717213120742923317618689154661572888683412991458029802779463059409879044843284485342463339962885851108514954348524831217308121593826723618962614667326514196022380355921695225675680406368455424835853906796101141598454996662628582614818529997528988523114204070363258684564721378718786945242606577130925359378414616975325531739689928434470168345417579175748435460619276727617234993730055872929563919695065439057913538128274922923879459486642460765227271252721389373000199034933258791183047622090560080198843752650826489709673687046744138787645507548187235565361828218447499127256294829150091945164780746415743155605359699165781537657177029716229321328371262198562156195328741628617426380307340150163508386328177281033125776632386947762971708783932683385773084617653094164048437371598618017136685187320557787016632847613840285432697710572575664444471657380578361521495543404654494804353126635643029307028779310006247879185348126262908161959300191104811904890511957639009159114611373405308500804133666060099909927474768236753833866386224312839731298274582898607704201242110661706548764788255381935327840196712149248367631972032394961879509350289928124926352978831069406512325116857061719102243644397605772235769051542015449391451472541728156313445412920522388927283014793533282107899080994696946931967854213368838685736309290709129017035903554994864655501331444778698114581440073444498829185009126978144376369461344472020535377901197547964698083851640231459975525612037645450347364361962441898149276249110269298885574779559002859958568427305062133094742381424280573492173546312488290426604969894429081425457406185081629285639893505459015237231803070228120669686385469065171609999423837378964009256903250138768959396387948959625416400778716366904507648953954606283514812726120588384459876899478618163670355801332523028802750261683464675428955761803940888849390004168107948515396750304296615003478575201458381222777176332670477750284725135166288360557269487950930423859263733693803900698113203663521457338609382989513187607295064292010858794106235173179836332127572235200157709151780821504426294253643460739404796876981914255788983174321395094438103473667808985417757152278211782722236794059969458452876024201116398068578637637375111368079016294524521252459293762145518968876104795671104146194856476072053753013060831398852577417471576361752444117922620025612156077702825164345954726558562365093752240496381368499338283608970328685988504532817064121671184130910374158709345524376377483513243278672966588987934822047060329796178513284624306085867187610151531142862639342773761990261894229432063517644204969984083288671708579128238071412706190975753146693912291112699398360967315943323142360890825106312324157576424314865450088600229689330631697961472296848301187159075083197694286885212696355729925418928469843345073330275418637351238820475383292834054847974447205545675359844038270007261494731875309069261351723624801583144223660071897677378681297379739297635944625504955306674501472216192541503703513937221205502729204837820319855717040958146833670609320178695224592928713411681501897048947928427639181406615863117836078098871649657429249330976571944857672519149040474605020897786571343038673102188069598012774384682075050525364261893911599392299884108392533635583451124386199445193027537359298821547551197500727226895509502836298237151096380208249799712970222203071649154967402963403810183827629541744566521401710160566005291406563829381949473746736994149508755869272554233373560568732714168381015132245564854332005031152354052939056964461818760580805645362309144580743473370912147944525030766206357248597934808112798158023520234260137039424732179489474589392589185792690351961844206063822941560586373867650664429168611878595751301946619763755771170965536847693841877174151098915855229844987860017886247742204293598756852918172430008902996628499455707602198270571347069291282526530186214371288480857314381610836545240240529505608367588587831550043685613516674149506191733707640757503696194995426032000507176362055147040341026397413927126302514680129938021191519897640880450833145045327428570592802512593547676413944403005814537310130220240877289471319365544065957998331797510541937205216440341676691435880154084363613260598440398166605883823823658515127812482973292100152806640677923039916621487081779958903473818384576351143078493608558861454768951450723188641350504747708933811293508914056961881852383550414832367688723226299451193705761450908099270554447710568641418134451889809842607404835706084404499293522395806843537756575002126579369237933924458797879323426322224874076274435708688426815377427189378001802024408632019692364125901128661731608324417861954836165278718053646877116452865735841909354355458923143530021004797842185805536544170286315938982977672804282342299830722792736907946215143739207881313913098132526988412813690085559467119164662364515027577380137683180894514514073842888956033900099923553304519736954632002032666198651439229580767639486717022021886716147039457568823232839918544688656017418756691114927087197173161155166882565140301401680634042133441255745821730758080907546838694682956543227392143799291776439980811583957796842432166786136156096951050116163507304082152419838308478458570485711462912347183569226525571972770361524625300682941585356935796450811024589229469268927832521911888408601548957662855297858474560199630391936164687218975032171923131199661428324438332195631259439775351773662833763825944873270931041182740589618056565731386925330010504310572610535296360639014805043034613578501528102250178318484959562966596803487314014129667618705574536362922021267842209153205664008513062424540386163044583160440860078328207126275091512444194649673301058123257311967475473275855741819596998077386476764504834133282202564356202479768793804009214159019760841195343079911020161711893598946769558339664530553452121630023712669544471555821486275854005040600530157583419137303788459290242324046941246314010227289992172351347259531411913559061338321388452614465569402141019742530436567094103512906163584791621845039814251656242122456829204102845989526933241412948206484443896023144460749580258950208588244883741356287385460790163540331758051933864498142822222986569188511996400380486174196001366499358903061554361561632315143844190182045226863419296250170889068534384800234944651196568046215728557249987903428238072096845808229673145161707415555017541441235677813375982280716410410048802136883133598029531460089334999085848267132933006661147724460555626781094459075287010791609485131920778938258309911434068398289453837870050379216597372760309536078092433347554941090940150169156002813691589754346950032484737728793242019255467032762994694776821683721446141370494718350147066816257445460309800540679273876535516210080177837461670372970577500842996087024045094230191870565422380826558033400248782594665372960951430202330572296782022461908668516271436336046135834579885581176663692738948224509201501194482229378006548034857420713045591804542375416300600183699045828416355919019029993378196005283955076899156397542227079905548006387612690582243271201782320845903184050253002035024289448815348420465658605694849971483689622889374042632853121034203162267187471727676864276817785688312378322558550799215268402800822778021419176367140226686139158675659245497177228347612160067532490313233421223930110637947207208317402099122903238571435694803690777228094690337230584654687746037975170486317670303375617897732557536972544300913914718590399091963126590399436141885371079786941060058127436648217379178427451393693516151556106911874703370664863144133564850962093001060542823699972924106143225941510332574638202428892490936199388738085182461370899380076790227561448516947161324407141602050238068820025593631228000926012482570351404473847781463980318556113297840030595356906056766784165734809615296646708547677621305571509215501610845281988067739668907843967891079079300032803264692029801315070121063993691438689412063704421815734426741620931867210486039806135432557038326507273422694094994234790689219769123803763229427643407068657376324263350636407246871990055963970243692962353865487071295109425720618064194678649104851056236549885085737536120008162903177416166077417987204670764632876898512353707844290255587047416026842463656918844925671187231392585709107363512797043265581276807519427664900794468570702520621997090073445695408795612078869670640010340784808579535437078982735422400084411243219863039633886082992374387032806191401310042741607455743943475789390330335009095559893903199104906390186870018772807446190779123732941131221243226516999777974980466049234374494042301789582931485914849934418868153008187315245722494022582735964732080276912320874035599644428926549147759054490505061655179518460352827943404893533711937924323013993757392918190960715205598771848649353581960535172823964269413998554810950587836840788496507032420658000372463448335216130181013445988719502003644191018519348278689635005014135494672935295590764590830877028336985158244229809867791417179147227245717219568797197413768555103872625446098909660752460126930070663616160164824788803743423903003250688608984224670487980491735157896960964425695834582644070838540849429815386071002097678904316638624375176209706669808062898436555699228273363923636667561343568855018361483672914339918703164470520868096710935455863246059386152164369294896009003230948730326411280508274203419403357596707420557630693856221996708893987211402686322327578810404178702971527589232089870705585126227481884601597323173981126492423672240706036460289168775540213143840578265422798550883156759907144342054917850365246259106477755305303026156118792574502618266583946857874745384246690189359212971486550738105779139913668043049755779757543663256613804655263805277418454760203455106261482418342501778779647069673341613375358936605222292032547606770355013649628722542608560813867618684714857545611610877174072985088124608335664793746809872270226779577101282508943584671239770915892240657678280647051187904577142503482735549191033804034269040850176183031070550046575237578054596688795877485494300129951933929483529961358181147184369219931879100327582873093614700428013740534448644696751138764409793520612280692465190574094905186812070221499516263094680700048285311983555525742385442084371907776856219691548786490265981421076141007977577147954093136227354001566666052572885791609458021318437868074434480197183886488946651419718947984539288505855854966349127739133550739999400942247839788438302041265470705625767791384715676671490065547471369238340260672318095180406267681628943888496306812628800043811733242783891812715172744478097742422676734160264370596830767628679778497997670911761488364452541164072993692909456930229982448790924069689190277638812631472093007045110390188323353396859757744664817232176187567628734381967070477545053005049162819694525744590603723603645883282421933106230867989762195522731953005681092457398008081597961157985850673619920708346540080169560634505776717249962492563324544027157999459407628434864894857126553336682173596041402372838972657440017511484313264746284910414149500988947330419530316808662445704364741505613081289192246718252829943723318661503548908391971621429293323047916449245936111665789011735768155521749447483512308777584777909975627383020711684771758391152134363605795501033252075873509834882145252927344486883330616766523817305875251550415980402745862559963760629387028843083006205213340539281681446035102894227337086049273132476881746088058487089936132260872367736661111780057534476238491918335307761631552364983663064098146077714013660636505689394178367612255153827985809849406131241312206689068916336895190429229007130466206540604046691221873872262047592813762787501809722404930709546932522884875949518130221466350829546674573004189909226483352097521676073846359374486482943774512241265447934371760145277728129672119968220535548284253186925606302265482001357594316295327050786289610084914101718152277790358800325589568687042840028703696285024824607385618453305931392459212626306303064204000030922932284283049811048842106632921043363591333991166593131294282897890931987730108643462768970619242387195022158941266760570172548855611759754979509172058989889756454837101493057684295505716986963472659425644182282331220079416039910937229805357095438622882768435583976568588733346452712712270377047476661845954360768219612056503611492304162263532072121438065093883364069574180610720580427510031179445379708024873107694327552282388610448738965567018750330670957354665015509785578559625153151813325136005157346685134978602835158414790683326809731893080981769247462605706357100560549636209072397797554948897702260190663680450034562175055957409019741258447647116853356589140120982662207084909888770713283470890697746404377018138556996664206615620224165920962651597648304819237149350515003183248700032644397150817892159210582365689444796707254631790766972880222013811816548381492255351253157392870274467065188784463318479516799686501207184640751715814993893512040784963255563940932554906150738573944005916621440460040755834856309620315301265721074604290734306708073255648206328037756860176717112462523218876968393691688703598204879935569674693825617207335493084006795618688765253956516337134385174676270543005852271102955554043218183599198423035810980891946172625358576102875258284574455301225155056008342188436636007265126187534311481578972912202473614226927491522313433391456053905070674779496878550512519822918321037717055271280808777437497018966014635858519583448831026498467197738800755752276203394215481950792919843479418342075418241892556314338702919662953688921055184495932064376970672272728162772248647970339264802808350581933922775358282274623050072843431355886249783495699290324376831897677933497651253416331961968104591514935986852777232158884632850076508948953110875424794129745133786708047936402241545840782670344048140814898795663161179061222164489310792830154965467616734063147037081180628196973960199726114344041930261144919064401893229100784276364762654447987717889305613010608873250107167786777629424719812926488172302712792171326487931640577206155690570783516938836249815439253164680299201127477479941245308085814372154955589786473515558014862027970804074766669943371342956586775436895482327422768853999971003507338087617901675743197915132234127059422237930899618314089495831821818352152656736037201103429678391152400163775340137119066692251672468380026372533650883769489930286989356411023753107629052904401982990317855086786521352508692874727266927533287111064666781533295661533667667658939592602088889474859211770941210245605088576171249985182344153762227444184453862677353925840310731916095087980896950895520310340185378848684500865065516470154455059617773514841133239057142381869806260283876894506151243181555333216229258505470050247744587269757869199589502248341806122893199346054059604304597875809971817671663219803144909654915383684951466115051505768962185892143288023417526180632044037331510384881556392840170880195812877633160116101552488356157938034038712752720921499571268995580123464018338878901347253369430246679384348118630141170825411905303051278193158285203889651337411627922066367960036435095937202909970167408235975966160531722492010438181456474481319757194136249366527485556076413534129963610644937065157146090162171255264422259232027373968322404164409862471202051064222983661447083514474420862607271938731956302573630456915474389756032329746091916385221779204354531387022123016210175832773146834622020061463413713395871060934260262169669637295011515738832627142122585298354725290369375924308770170963812799180412410802370842444503604617545795162751285498668844960399066703265499398588067095884205090056870248629084068607152568992329081204485991010908733539202420032639626467319129477520165520651283189122308877287174701805185354661796611338418156658891030331112487534351201324921023395505145899586413513630399886272368710864394693703066416182222748141783092832776619420818621099231786494438291471784537325738471484468670239848016274727991015162888214595231027671021603400474534279708178056555316231954709145288812251672550534966468225838210303925003898461366985257754880360639655445264528623044418596956342879460147613230645422733772031477920830940815477649087146055033067638060317134314162325197481418502435356497546929809597586851456412920340783322165656870023365869911613741575190184973964216026523972170509997453580990130082635831861742955590496363125265674214048804656278247150795419618906347426438538191408921846326196144277624564173065317678206466151227773722241880695079526340811133367645818703408718149827134027956075603444409629377568769223396625624726435284739847357491037211874565907749999617506478366706457691741138559570101356875011985146683191814497018543492456491266129104961762575043384302735019288599643340217398359039736785489011951569775454822656369391347446388843917528913285845961672602690375615870816916470233020938871772473813230955967960810628624360511328414594332125150762081899277136586705689731371696265835931903234869185396940642560516159149661112871907206158958033651259555548568476079428689753846526985201380680538466544322342445142795833268673076748341335259922471335621431689717868860170725717318442698314970769657599498320862319639248784173152331915313807053353508934523000681993858784682066783433242801626151505603832100524591995498255979167403312252927911063591586350787960200155572161824504393540407623315948661797737871803827060359698961940067769548085564093319073935059528921711537905408999131716220958992119332307515842417989151408507470438479451204116113133888438114908448047650941150844948800889626041002811837647457088296471547950746298391726888082040561226702305937504862206685761496499812672605848504196511735248917848595445978877440190136598762897085377644369388552294658561446693613106888758224115225708046950083597702961628180003431389079349300368592525349502524253650123587337751892909425514174975005365263138021764530925970234814175740050036401613644117955319258447575547661042782831876093092030925158615736580976911079604922160545554910659621464190710820210588905127452020038950838874965209015789553413141082100134449048622087356505318605463114912093941455430471210375639919471163541451244966017741845974878574172135643150270860082311788262659549265553049172085797400519353035394181042425564380896619308989006740137029391056285350223628074067437209493210314091583773720456598797412768078813330305057104303185544224304049433317133223930866175273190826435083069151525384033800432796415428683162816453279059424001484112768179517423605303456859434420558360507423059938090653633579430660004971649816544188192849275886276933508778516030692753042881531975183110969096384055475338544298149132536810495329716748002663648766326875288029534364965725697405496289161339352252292505218407553812407963516743031683752542204642387747655383334564835795855465981412848064379204233370135148241598662354613640861302884307400281756292272903565387114281157368502960549803332106749100729622913446336813380512911705877103495930917295687908211872732626253434684313127837208698469355162601418826867932242420028248811430880130567443169862963536681883787299892069808599999450780348430853372652911572983478443155855440732459541203777508707753128635637415219735984309206434149924532151941512081551303527757209104602214366894630098763370579405212649410568220176757311427589885729968305716601524609467386572678242198852968452397828753761861476362601584064344771027620463061450571652168146282743435230878993521415664054491734200977291640228973506385128457970175799195588310356384256884001317889958612568915614790911872506491995420870563198071139184928077313077517923359014366629966592413105427294643736021244899117144060591161216101599694024554290501129248822439545997691391974151349170308914401869280089742722889840679845803702737843942633505647368551726347303217843589791964317617019635704929526528146742303988193802923677708038399145515213619302609061434374161436722451394095014883446966125685988060680550474254552409998146559468747030150195208954789826148505239051793209264243778303141308657256419034669272504192741252494148880093523572210657159472302287953336870905417335340108707562946548837488198176057588479858618794162369538420723526647584425514966154546736094342359382275020417905836541082135482787759885911098589837286670299338527272594721995123457343244625463527744251745669327319778420734828147470678764320429738500975453957854909494060789114770276592126940245792145371224645813938014655622949560049966314001342408876063335601833406846852035991244542856442915716845641308055113254281690582163983038915678229058908205889529812143279740753887089024809142350132272090321634081083576169363114764712561716085788233006458617694559117459125955107706542475571964552918431375085749546439781900015126264075450756875520388567610617176546460973520339269809497552843702236402186465544933235892792241539390384224232032157984865991042239022165682106406878882765291888498260557284142666700042918593724018506355304917946335569647761888157833633070453359228143703928358443150824319809560949600718591647203439590437979778397926341634038052895100870747793250350423620897109134018957939710579924799007777974864203450070009632318400735547740226557083096401247366595766789259449772870492440792521815824739160568270123660920354895896283792342975773167369786096086665074672316152559969700127781930198481425004163766470481216369260311640509875067169857591137031102612437417421670332237234537343502145862479443037859075694917109038891661448016711065088961820028597949262521685720613084959481694671315903020961485686746227008853517988157501208258975424281485801990440637356305220543632060152335403372674886144805631105923175412219073881378607759133008784513988299736782098356550447527430796787694641594427533851292343648208806191733252745842123736327862729649810678694215740427644068080045139894605020549278550856505685840190359849611984648733462888954347296637025314102587171299272564780850729549231707557043667174452309037805461641017616354936620371245864780351836312329758937243554177201433586545774047960084495610463974259917310989518746773876973815712623026108011307440107056154950213673347473303340152583632190746555798684477796050461805127070996126929537570856344662499182737139051323205818719992854649351512596536214288117806231587853350606279678664489181513600620115210664656504285608102711536019997447987382694532669425044100101710625125402285071757267035264118594698908155906256526716132949586085716058852469337426183697636291507464417913696989469473121419983878799142175583803717911955663461507446806164584888516485274932135700302214598429621448892139859350949751958287367003369240326486044050990481505663477246898149470993686383467792810434908540760282397482015659092256629087617371935105424992740763982899894182290014211189548347223740192241128269965766190475494181490399727896421684152126952619921900803938448839767003268565949866858150301369631312912450560590167998154867476850218865485694838844902460647302573981527941900909196942523954512662803095926188018132383040420510857386472544985573837934199219680136362916233872235196425253874511811229658572602140040830399048528855886061826344859654431176623026627915882262314071518517683146302205431358676124595898473732517427216469136588802502559496072262228230723219759268061794764999572572250672886499707343214368906608693803118781568459388241155776992573625987508711572471991672840084678356530088791517454390348128384594999438663092939295058861309691888908288650014662792709988538524456265288165938866316645196674283461917761622583287934726867805983135447901204841185013792350148182671778348239971699694883534982866744669197421259002891366443089349150671336421067265953845218438505582202186162658674094779444598225904976992118544068021060186358405974074123500698479533037854105707792104874984642846759122121357427614945229169637212439666432010798712197147275870186082735237507837228580698803555782885611899683672934340315991289428263882808992059000572770815276501135610458123904723496322024432851069825658893248899408985635576471322809243809308948926907562707427762427466064141244795193011746423416102713542888476951611269552597878850622127611968782328283236326535319283289842108587696526387531094337101988375451496251330447120915338509179417428709011344429207000158875386054235708834993184490104959050714958545749330681738086573610204633503104961479622070171727726664500909031815845583807180506433335378328288725894842444313846120694229559016957855290857818118393884365493422717716846252851477467818622617915182214635521413269652461075429399012526882460162296247110900012450826078929830319700537250034463860323731283855210243706503245680433535940716054205033388599170131816633226366992162322800635152072769602640341023943359906328150173702252104920252625315649120107233649228808031582462446300002660676593462875648930965669107747662382964534453495871578624354015006837799312977162344425661006154184433555227888943967801005709680759337264175183222619060900777545844140267957378654394813730700152675750212085655049540010529998203115139920573924511728938401027992904916975511317452840606087725415960190182289897025525205374311666376798789108845500387014632547144351375957958639575133779433191580568607606231064186150584584400849096716570020119274075670781810700901993026994193673865080475950262199743042024796314348202992802661197555072767905028967092787809798274094814957749184008469829834671851131369654354875419878949990766105638428437809642804273737130691616919902245147585550380434424974867516592106137800370556804985198246071651355756317409932615646724944979907222933716420424817814642994038121435977908543344840703288837419061276045912492087973683430894661538476342448378566904378499085110200494707121588364817912909258608825734183470626629951200997199419142607049680890319631539720993321840213351133647021755930323800493698721285791375831149410988152935055361933656002975772497861830648080956796651387460510185609798415807004972479179514429137078933772250039080047923515537972776180669394321089956337524404597724378129572193188934015219449763368767058908470655734562165336736802929853341659514070460643158687640322164234829986161284313001512373048945418336141755186994389672576932193753937929646568338871128290278620133035147368229863531111021013560007742156365004623969662815206918545446921029985289867930705668112778810599939717616173473696731628230622607586664093279666333450657750470176467701664021198148643615716438519616473808513524485630916545074958032961678474038085121077905751991027439204094365090022867102798081699048116238921234067810407479663293298881574678158064039327664213669709740823110971147160680532844903652059859939372672798556937426248817251512064058184011471522760340055284276482350965525577432405375481304225298579900181317308232983297797817263547798557292257311969958016881039447502929369659221208370985051157015969530267109411674546308252282098104389734160842135584257810556103904740460976590789986369758644129314540183003582373176771373029559363547050431694489490127286471901249218068145821680587661665797089447617682562098089894462639552571991693770939892666073197324568037064951799499012600838056678562944089737730863235922458920815393912391981187123952684038654047840094862118158967604895856171756146247993752452758328923213743018809514890781425492453768717033283081795957899347270822289475211559555050449864577904126734508003521518157809716736850798627278184208321940311074128076680904806328953941659059384591419585345253814409455612320544599684127628572717820235819603997104384416499243902814849222716973826941665459065942276077933113793609155476461269656696117112349378622327025256646364856323507460976445123767821939087648104671540278330432018944644793806162695599163487779623842808195323854627743981591694109391818420431730482173304648721461817794526666220781865684644593798265529796852874216023925149626292781951037635892207631816346197750635653395710332039017496860913515871021128591241889550291056018898896771417445982768741091969650397979443210449123359401851018033319617150742179040772747846930244274150369920226012492166023699021891963856580067639380362172753865759721989112638401383645742031656679335986546700104229992929231827260243807867474055435510328156181291560554453850554767724854008913833544975503249153362543164301185514039927951295162033610462760109751546772566649542876053993757000865041032476032055985257102719743432154866093390049569121882858533761874374102115473005972040698107645360041776666235700090008409502815137650686059846872514425118483650863139962737583421286383131638651993699164916042410263470084076360549719354388872939366440941920497306144804884217352118260209870621577293813393610165647753204365548342136032203296780763533552488928495061873116692835537548937345801399098689327393064376174520944573766397361520502312054017754227808200088342230433268212418035012797511664026320527868657736729118948586787326040028666036661919708809087336685410283396086750907456600117807708767680534487635282729559639949737225432246975653504950438871145406012407741374538882006624945004886656785550266875038062054002563474992973558240491755795914122642361565386296169835222364265699168165438847362712901409879639840316235426214450281236016281711781727519251368650179091775117590913191501686654059421757917270667281596992439605094025747199013680519376672138351728138332989597505612508458574468310729663769357934154188211919544573773066103668138305642761346145557641184066849315417976553718552723633732374557145903977360283522954506348699138437177309533187615960933438087006450895019210228022247032951714441900071545499977168964596241939240358462641644938230850686680647347467880409418251097470729195771793955019181805414436880784087123691854409640871289484353515896424796776951555827650752197759019181678218838066690259821485970750423950890776277938496784469987419610984547153151242232806948409639612009723778731833915623408598627674097903654512448569397464595714693627145936291523909241260703468135742376472659044343036276375386663104170853942927381324819113582588268791955429914766746959516600274472091137495486278259106408424564609267413474331103258945908695425970681149691194697963193510622495129806294881508025393239568431314936001304714609730814988622451887305570282695787825282211444840395977277649403235785712355370646848185554348598876430811528817480990726188491835924626979474234460353500176426907745966163863664107056981336904832929534788966680146382851161652612522727572213934409426170044468046571937033520521115790597093517892100252440161513500479865882466339888393535156206902046232009137859035428124073919372445777742440402514422980621925257243519711077311616776645602400011366168901405582075262205319002302216589590965985199523968220831647649057761968255172359729455979299468070990798607924818838197265899786606651699238880166817395022314196841455253374222747498684857282557125004858432979389440760994040627919430414859427957287822818006081074226875863110914805933894187318093524327558149378778761876489890718014643556788047899435505993773061727062526590948101419549944149130155597128153382653031617686912261936309917939645513383138434457181673391894847275391867707674926377974459166614007678521402928134052963656918616734522583137548476141001356134321101592989472475283658498023124595190217333027169507172963787006829879126511274386955568276799629699010680511647689663384302739962830266493508439794193237041526338808342986666518888304345339237504372640735260608409726022378901850176333547152712113763346321484432608100251306393250329168649643300667287192001673936065363867082360814223798412975042733834442434078998610892980610991760775472966367440146620294962922060886375784153355761310618928881410350173574637137088412027107942877985594536131842375601802321040303079857126630965610131993263590162108627422741880755431916819722872028524645042751464667611603309266165444854787668801163267482469701781166700343269977943622659021106828564297624412516478939273495931746029377976277726580538473387390304534164345874606915271821502106863016150481756402068260212034954590924176617096294391087997146226812872820737650143386924281661354995858202810812280726056505570992104159822026945575050316894810766318891000486657464013666798022967820627749057403868818044602729550063058165589961169107846366084792555907155546399531895608848960918678996959228961715508228799749766615386182628972791380136063126721792302487534313478743620359434707587505916477662894776388107646830144034368710038979228017613264847882431203430381191997057300243629221411897022885194558189907187600874575041580008546390655051855301017412026673953593743508551236822067641328129809054571785442733653481498641439558484914231951142945740317377797938210293757091887078568583920811067257608358194845963240433436284230658972527268691288733126745681965359812921495632548685946969098790274612162158423155676029055839382379052307846954329815414749567051377260829491855153551305056785726285185852089497721062079849913838894527153611410668266996818428227249724334334741620264456143080351117969226405686091846231597116627373844467805275963889070244856147889220666178439918025074489749626876848619876437535237066800786004972498649084092177528611805876142777874257779853556490462727563846353363302811035450685582166654501027108446977074071271085879542336548134153645029401524867507174557643809306156152707576736295259219250411816366956516624345310222917293587593572616668447756498467904450003410055090035943322096024293728917784521504502307452923616875178747226766213041747381594321811708419541847292171648162346450632785069529827179701181357352533099111535822432074648644398856001551239804121177293292503028303792280786831227798259078740783568938976859666198712291741323491586562055400383690308482610938377467524496944140699350916845731748227079914264126029613379099342620381573049351456881195360586555381061201821409811160106825033513228153511637449157717738771117258895069619570364028990810625311354478670741574770760088145400063781872212791070007126305800205767536079023895652520876089581686487257462327926949930640367258504060257334302409328048604789401441555108146237011246209190079484901774088278356714687086955958768497530396457759161550406606191873340921653211519983813662762790972901273519490553221693782302472316992122309584045640003830966711121808541687586449487266874915501992090472620742299782324280221381346529847128334797850552609432533076013340863355686084998360276624835886497154088789556509512711733236633959640448065954559183945269526754249122201082385111776616312841548316941458004735127956503034306032946018353822988188641839400990264795626401357250895554944016217193948124313277689887553778455318495067832656224299262578263551184148863902572047621102840359558045479425162574109972053020451690055662998703884848762172840095952945325189609226983723085817704052480514564305828710155470132985528811395434234608336765300285913273835060144222547610284713963314421153272642415568695896965754024893511790333357173626466868165427964911854670302549196407449043429420204395841403578757174890587670895856413112686431988101712775074815289861034230397002890166836488212592722020927772440387312177855592965376892744326159673612884827307344103470977713894238622603838653202145446546570447547886088643871470564079250521584904628418925747171465630872598512442117304849359151338048436937785653589506023321540863033222730106169854617985875326310373143994692352138124254386062281579158255831249287221764933685180248330171644961967146174631324164416664759757063510242482651730409238776803528012386639633392787561385646733170500036103096370975326526290271120321343832753698123658797311160253249754786330798290573504942379464078961411341958841669380576287743699378217656862282044394990467834269794368824306083791212864973149879877721903258010492232931511513619200735732920829909145085598069354918077440269615655468284396422839999701373687727662884782613820579199287107494026466550258991122410226484163461878962039026490495391788107386141557524435599659155909971531087341741367006294364227103081702254247023462213863869880160637287044027084965266900384505420479483079994176192346361074995534999346137234724947162335588244393783138733427615153049852140596658896582892648027323187872387106802651011047918076214488836202297880377828958754041145433084041672422507224253286882456196113167971317453711496717155360143476275281637385651572058291894326853340352869046256057820396388449290743775412800189116169140913446330770510936888978546690772700753776166974867476638912640884343144677707882055183181751888364987656882268825522565305568081380788135347880487389832295657008271128705573564305407773598850181939284389081014132238339155608406666989131259359116771445280432848049028458224651883244900953950220205508200758608367381538174913248427510301271771961153051144587934697771154868148027232655671316237827365339352632636173805605702541383337801675883951607599379401046941263435283645910026291656664222048074134215799138785681730859198431488418366385063615371556166709805255168345225295910532363089997791675208422662831154798472874713845624421597131735541937168569824736783446471474017524519455027512915128183795913436402864281496886849453115764653053198787010590034537060163044045489335421048048881105164882415019626450972442960437729259476436418282035904052274483822469723514148208353769263438833955593443411246417180366067027123510958989585182702175300356887392522202894958476086389474563718578789640496357345072267541100549244715889830743194824471909368614624686629678504664587694861863114592767529300187708381436393300288805931396686671031188256619888500185579805386297754707205590987807041433369623652640794515766235992558226277396534597960687121794579556131118501431846979937981279794361769311854138951578620369901704695399698263499930756688831404686602552542884634597051069080444704599072800684309047121261195878160446458509407950799392988077969039426673692256057129965290966316518775719120108101268652133050299258402040092375496413932031972336425438178986482375739465413120495523699154873387506598349985613343980870855241936758059704115286917638586889458619434592337513735918600748516432652783045843969611037392694425292158026241252625460319264143421342820403155772175091294358497688801428681177137866807889085241979497406721686350784537322953979077203549503052247046866124980807199496376193488579641169183293121603163243641385574906231157422671238530883315398521160932501650865084324601240170278298195330679603003743429720978262970008329283169608090815545414036801758982536904162504420291496194871987972665978502729781077027946282335264646522807023605559941725314613300234132062990305725980774951664201340263392676247411874408595188059526658892554920019560807850117641121150114903013028497953923319009169718976318319395485101623622624283082563496138670786847390515531393765983743048936450870551917511360891271084793572397800325247004084120617877497139041403227240396698783249003282472506801081215965357113552868488376452187693158978286918201478482451070014860156364731899940845768113319530892059457195739260818591894637440666550116210127683090192114229675703789178728737054818264432719849158503547508537577190744898975070417099436947435088673881333903176643290009620756105151858882740369653776165093165176457816385464126936758695520631759884417004932807061158468498712223441698897824894665734882690565223885362611812306382549491173768253093013463337800602925260138029838867832313668352945496908492132239563697044072887518538124308381864403646351806700257058421270133882493590516723613462379121946509413756830347729247490226150740433320595760060508969740223746143070863735297800037968684284872304834513881943826904383767209692701559603320242859975880330226083953948684097352930898503333250721684214165678005733107055367369596872070130886684630730589584235279338965310721148592594183120541203494704855005391117503506706681224318800565524489687321870088187701264050102192264663452851109113173047543878769262786638752868222967630749347814812883476131731320814079533587880048324944136056209341757894497584965486531654516609085807299189929325843687925344864943917389179624822230832493114924871065794152613673572044413302723103369218900341505161762985681747276892770998512084668982218393837247176854067969288550108292350600446027656988487887145099446543375358683409275526761769328422660121727385198469103235407017647976194164020945376067508030385855067888775165911446945349574604431437742788099796716290865438582446674848859759524344094606999610772475782163623248816240448133432108567858167221790001036497202270195438184714208643299567262024415318790748066216068287909969805708410674347748572955279381268686212934637871591421003957804328245879377186602893322719397997299089034686852001076381942079423647241227934666877883309917601320849101553938442093260530125276842931693641542442873339393423580052415889080153124455421169743331956121438753531763483116685348383477703025493304517367517092348800572153964319806670338060842017732076523286917223500382575716547410939330049226476582099760644544498485827135486420145541451996614625314261720012903975580495339618922747351284240366080201015269322788197815231717155199686047602111568258851698192381333478693668442110817478788350140349793937177081877120351666012958662142489264023893898361853281566584595400191688086498798401809677000530419168412642713041011686643761577295746545127127979572578551513449613095839171399388267116537058509706436204280855789261662290407004284760547314950210416011481565313537300148373178238398652071507227156639456317463614812671055620434675655611091692940076885004248504600002712841714914829440482794193119034579114502581201358049168582171312534958554156323436430099929913767567704228067500309391786554875145869000169347375315766845328992504479166886718082576562838343164905288204616459549099452068526277779712496602148506059638539889236485359519027109367077571566829952029651541687416684613499685616924837167024545672757426208172730383318042842453366321714247123107605674245223549899292757395525044529574213758213523292252326551546181235807853195429599464781414899497268695875512112604825051398106777325878049152703055882901676928384504417452822432308923283504990401959887053184581447244288289493073184707479662200729525815172739394402025577515616195876274924967513724329185829648242301957950495906189406508920132327705374196751038208826287082832079607183911038841250069694262025316518280496695448899029114532909579670614698827612650205000278224497391048915090612969689493329132172736166524917101674876479919535053957690964996623379120700089855586860677824694413142639596434122376809290028593013221469804283840852389122349378410060746648292741186041680535679721775111569838967928631250709975461107578227481914317693723817493259236809206122822942690304330811087837892042091726689895727471102684371874133260099175574797413708451751768528037435903610339556928849309688140529957501691386163068311181834523990590298884519393893108129734656571079013304502301895770497935624277014223946359655902017955035163572246400452161996000050505283684735886928310553516880129954016525041971386835561671055048159382077344558753721820840639889290510156547392389198399103103506640875339352115976508495088563388274851392825361418406831660777909428816683667531610541035495548796290492523249258327193644712003057651058474668506494913490652706858658649858639223791232912991040717562490737077013086719388178478275411067497446130639019147224662627256701725099425991917441035108959938032561075928915315035241572366014163208380452391336852188060585431762932279842442595408760192141854357565821917207228452533873652687918604684861019638141069883575708691530595685495048031198135266176653648230129145276910148899513390970241544098763433076424030535688964839459928502793304793869684079272069382997438655622807649839716596149492609761754091468060884648324786312801262231861524591141366974965083301053223581186953046821142373557732833547712293615621856789777976489065837598633395247473093146036133707312778327099499569447131728649854324569370368793012491751238623344484892394741432470415343204169307437298626600006215074459998766737948545289628199859275540473411486434041072772961486793648911593131725074616405605569616838730681909360553185774860275754862123173496455032607973314385307953979264811923663332682034013959695398078660985066144205814173689601086769764969734695838570558928540845579911909328306737442031998293778834610558236702906067107984498722241272548048794854000249269218907654948774136275533618412775542851332653547228127955203877288114089934418948760482237857136405388134937856943740412199052092257871233745894397958463146362260933859905061716318738335449074037354356018158121380820707951420627022830341179394305987370631674168770325634264662369704348283402965345228420057758170987474288285531887297466679841478944578251429718433885692966194920310418891578244961884535279076363553106791376493218151044571015935272712869220244432330369554643247096546159174596645481648202351891516362146669935312874017992953887791725637097512723338983204247626795151700459894168724652826515209992714488262541931411895036819258597387692848991603182753169022864683985629082238325804311375029890691289670883920477897218835811313569332030535733742954442305743448883851896610451961127081892505114433969950892379488858020818680916590535040790124695108159233108140193357618578020808974693888460584045407987295999928925952919496191777040630460030653668015697184857147538097027321618584374546592883584979987137769767019831864172687185083397292397476209617093255901256451366305747776548484925619908903765942284133819441995146958424903278037525539986656386047908612415975558181037292696710708136695468909173507014679333968971516470141036558037045848716074977813424046846538208288963572608835619395021795451235335302667648726893538159695485069509048748148348423456734129400766782610454865988173062152270140914636984276864476123889525971015114031113246435151472507781307996702460750850990991632025675934144340284301424965455906592159727510837564829014575261896978189230417948494223263202905726670647538888654393457670320520228772563671722964467573884679748814393586132985756172520326117663730074551531900800161459067710812831989038347854554257503688957609501012964278579109630673640082119720436276777777778815423542569757286979069065631298365606158353175377642906339271965169563409415451702511884405838502446834333780417531263186766972415878779030555244987934812375019039071300392743413731008790283570025746003596273525782022947479415565632027947440994429112307411325923106036108402550583413028350079140982747629105382955438687143326472556317224931958877757765916036699962891179853259965976081189136434049847365302499463845251080371711035498282202912452007902329287977040937022083572468810617852905090558851187118369681146829282190777836869437548312147663428120576581360598116655730931829434464445605668239505551740977433056480892368382367649118545662642929449583859990847700543636145326845371924745502131501638334053497806094632868774943878216510553960276944632516366734076226006266539734103624272003636924306052935091613744227282111874502812137777978625135158404960206626804124079580886220315259665744258860827644518612978237568057221129768901848918394095060748036078871598328987386351761937957470412079333682931373530579546546461617339407993790652337029812356162649337506920223409874510579425608623843471265230209567267409462151890227868110430889410358575162886300960070017411999209432344130000344439245684882932683838567567169902097446159064939551571363647556333957057769669829736637433400890733550433406478321954363096043052099995499060639361531481227760680508028065137982635512212357344250207455584290773465634966652055224955584539227503880144141200636431978917381383429134731050323289277259756315608073605680787515888909857155554155804274688211278074196491205894264936669052832824058829910237066251539368370012091029619956535232890066406027688608230850903104480156406552625855613838937159177224020643382512368492699367153018281390110802724906410767479287589090880857271006945055300440672775055347053567236045825774138718440822495441780155638239414394655286025068865182923440734559381870267686932475363752593519076390347843606252613558012658076143131245299082307739788500874696973896732496086627923373764964900269482250770936301664601895909846322988916195336480346730660739559705788219639235779908991202291666779160477905389595463370671448273235995450391396988758980586294704156189802164624562863894535641565528893375966039404818573070786001232554216141943793595584045988131527069547078527689355966834380172432567577200950736887498875259209949256167347297319740463185514563766560950159001443700341554468183571528239988463560832734030322266757084477103269516312778766792959273063226625966031188239462505254935403254478999247533050078708588170062228404764823291808131015805586112187705673380977730680640514778427733418172238270001701523096236987738205848438219811288665395338043295862102218826073553151391566950220985119811162314812391444105962461433099668204569417883968027912501934197015765294907028981792203677625669153197351993247350482977534601584071809302840016026820077579948483666727013112272385069728783790954520439529867488022465988018188124965766951644997523124357532806918175541266435712983357371729156631408472575255290767695164385011352992792315772036034129469128216205556354088403208612555085407415101364141707997131495576770087864717471463396023955968122217327010982731689391298836718464194398321210105441267402087692800831556089087145538038465140853657625510818468569312308843020023040863527700563607958630868946961894479500873245972778523163333070632058118240316587168953062245395571563974086983453171942036406165288016121618726733315452175450553397532963226386780233358264151243239585879213406077237761549489740143667583859743300202523715525111182675951167465393373805493249107995328378964061241296118324472090536518707974803399346893585907924490219429322341515649712251530675746742706802520058738197132196470193099338199100683241232657908688789436669222270076425876796823840816108111342136938897279668145437581472055069976705170320968482070506766610493480731119494551744450187167365922514255903716398410153322246987244379337852430323757062830924290146145429407164500568389729093145714031917881166055363420955883217974074859744620490701738286758091005821469920302639804776055833283844134760383051943228154496619701588913640919673639649755293041083446187819381921497232674102695095195977712621577131308524225586010296284502744872905948830931566269213733835694036286719211228798869484418385265053800357177635266645806784286051328906236417915300762357855376311465576623589407342933303550942014158752777764553571026108114850337007242298665454874362934546196561458665177553308022379151983363542407456707570937488086592343045857255360089040023653196243221020422524853547859423662293236714172382700524542600843705567575665779775772951207528131052085049656523600065448728384130490648701480223987325159686705819092058313634917957068652193504739019412486675095753487221677932492531699554936045314102273037708764017338606959669151814472638271439993345663085606811278778563991560077871252479111392175726125389014162138006716085176267037586206844233931563806278526614491486781127779679535859632232078072598530544045752911797689954422517490693598276514385128937730932676078305553145346476724166861422584276282357874325262815368583444801060132380878282487846313542071815264619009367902990760510437389882855918633767671108706129117270720438020763507592733172275687540874465295860473416142968618005431978228657744162733099757702290960984325345060129757385295700407573543809501807291794389824151619783499669430838888761201200942184880833623737274590630846532552951960702540403573832176154146108241411022400228005402788881127280403580906595451886188104070800729593201456886409378044089623719699044001738330321688616760069629301884422755570326009082227585823512708988962039440703322164447229386127009276482788295308316817983242026922821642340270801981710851267029835038492495017998052824439576585181575090263444976386860190656090794505005182371864336295461773267171015360779610521463345969849923129708091933602674372056741708775122518527156742323729092781472474631583635114394106186440943604385934310978882434824211831684154460623409399094551148771509013391500448066330074821202570129908335534760407537229747447447103018301341541271692739361143652122667919291176722595044401889668029216987429422902099774784078299572546902099833498619198167305069529275098650217135962588405509021539633308963967374971334908271397883080452343203650011912318348879087227254384316249695052759136929303660700660070657738744852717816911783242832180225424574708675143515880643507988416753635342760293326028260300644275744530597723629138497285011446760013372433642857614075983133336510142483290706298598881914261483312339320368407876555979166364462430435200743973753974370230796188305129014098218157033692557217088853322812265814561009800057102790143167138635740308264892906746169949520472641763955368980416550924867473697409054588179874613709358947200734252635242048473111486548194481031181970848500217194509565239608068069627031565998190417797053299118434842412163974796793729906112030295680174083110348405901269789080712136670897757113586804753231703324754414287443207688203554944953739088609487203350753621612531628164724885562873921612425581706319490061278465671071591736780730505612538057070617274149389002772793393888799346356947598673814383148077380527449788592069263987802709715294616260445986986305974431656759127383358589711045084930781213475679533572264092185515785591440482165914048819079071544797821899342684972957095242533947039345880516243426326911445325467841912223893918918159366421772925203593799840372983372301054836265429315211913769681643896975332793613762132824486461647886181566003098416664797581859443276017825897668442029762120254756186844603968680731993942033661625665410076979558214721934117550707596089904134909897774059401435752684258351560984200788190508390550006631144622586688144712497895646765074757507221641638563998131486598348720820219545318853125885634757870003057467857992730457880962085770748786292926383097158521834353605492086505850815091335032532001755165464770610407411245404565690164552804771371821364059835401722721332306958941812117886864374424120159930667221318723638462249588265705056418243532831589533287113085786421037864761440019872154667482749060578322473669601221868799177982807154033115819086650169104230724818453234698781818767965780733009499721709330757720383631614681839677838821851214864545688950027051966122090549333951950692432148496177677501059297960990143170997761505254059273304227473188437411260913153435615495432574629209587519877449737279163142226119611535385020396322652300981000811134275407574601552647713044624212252474525702775724698731769910446123905164949084953474242014905874847263148397474367610519800779646145050548059966933989623523039147459132638755497926755533837922982197579319823760567932761409250986087882404183823799125036945947626921604219798043626769429847273950048143659643413007868647424310175958060877263478873743826143667975777068053504782489283212255885975592468649797367325580798384934954803283596015155903021109898444767905312551677902506719762190032010509286347098450377836742116978325288551498340773538148634742866245815265169834248095429102830600711152985305318603170007918681171625061278707669368402698219106501558933698763053549189622842874277000937072032831622559396899391487735115705860592449886382326953205179123113378830824209302448431501065418538190001677589361891310608315565287091684581129403748147358265557409173287546241135451570341407015846706797473670973107563866316227411953288564150822451710650719011294534313153388807868723780248309996670568639988542906994762388393456060855505298976895832806695722111494071041945385079096464708273622457400141977667849007286086384406541790649833817746857270658240896146736290540429787218868392348660232764817463963841847158623303155869804563498950848896861552905192313793339312664276779524593623546567729617381005600850044828981676640841674076302018729255528124297651582886240747465981824498828007322158951335103069244400979793444821061708717526736301493017147494847140387144695548703248061055458650612303750147904541865203873080243232878907998721536217940271240094900982608488941893209779192600969311986099416505498233050192817155742176715858188410954086789965789343911751534365836285711835425150257057554351829518546634354405200220596597744585123689042556289923294146790639938752611603552353271653528185492602825564744013881544939829439662529300675534617549967819816160207215952110913977091919680129133688975194977418633042661273452790528251028434179961912891917298370514074999760326350904643857950875437814575012231475674737671709235067010172146971071416357683676203558052638903367765076503064712810374549183914302704185847722397407360674902148834982525865847949718066726558766634493038421430181675006766998215304697114247771669240876099280609995332219840297068113654865431941298507040632528088751206857721893053730372139851093845795103508076277705379536265548762437728882957640839666913302956051782313397649446565176752712734564207401846300139697391090767751732451350775119654265049172938448053205304026547585844147000666496173643877567705323900078142228740477469341466907079875725169625368044573906739883235465968201790930410543026455385893915660229216854836426118599083984750915104726179007098245019776379431148050930113940269649081647907432604417771875004149184161082447505279231534858575425378169988402994211194691313717027174186454513730473488929596655394441873493836478818771231936371043716859595024169907863166438023951996917618085688085458583205164863373691203978942369598116234559411699381755789938301901512688783409588859538417707795716482396780276354522222470359997238677892629977537188574855532099261018923002313361335953230866903383471789657421094026018041228747294730257506704318866407908233809568339528276041735640022085874513903054514057547605733926838062518117846645603262484042762121577952867955764904843709087836539593564637963737471155765370208519018025011137814724769824379124771073646004664967060639513726958250513307191450755527117595241006688253088008611175166889263746674990341522819493870737770922269517891693691012024704537691743681803741859217330616071023585262848743662473501690264417038255169907404334734725674475237243021606238667854742767535285377506400353399589888359097450013992103410601933750922516348736326426594416256695370414001527506409648320601482169393669113300020826166887900145628381142637177150565366649585325923209767777164853105589034843015509867450137830419907598490083249300116675329153469824700176023436188888118288643383245441423004385715733836414727062368216383945758353918584301862493158765960954120029182972277822538040093197321182262806428276134968868983710197512400376872403718578576359056775166876184172625829963445268119560156410139748405942569457670333455079142777162799875266348672316384843606046804179411759787705167454500560146398033320240719103660916972496876648918780266107933076587609560225073238656985187062440825833047569284219934161061641988338154773678354456901057801771633063609827326750116270021243973125955039673057819566080829572145573063062099444550566305005339355391913667492769038562714652069445721981499254620040016727458127273550332050552240679127068923649667314449873266969043959719059236363403157267658823820200501633671709338032930844804499650398604222068476353800448582769937297807258206609096878769174175297937517597062051873571139251127559045071249192145731044446773762988827414843910820025133498688768701824948595685847961118388357518005622809576862632635810557404968423454657598304115798648628578262378408707540418514377399680789169526656758168502636482683351487083662460651420828151790788629325331530252316077793975512250665935066350154441329593856810683892502367956500345810171470080638183716412443499084224366956037085175374791181919421500535916150537289163741983071537488023497059306851868972689583769921111493656296970058044280828054723345510231038230004467549665079569438526207582634983173306133435978815746094176030614243620826790801715465780709254364317693332415712467710017446041738220817198777083155572301851588163535415164613669591212472969359489915100067292963662192084204075351623783918371990157454511338933246328711540740068073283405059388888361611457176013954330151713341034546793274552629006366857900159829331481912010774425286415388850266581734533090318628529956453425758260378857890714045497389169701262933709548457230857545170934163631977098149314687038130798986693137564777440819094827790632511208624310990088782725005631450177953584397808651942837639480915554398746468064715982775018374628292693199868250433047901454824843706197939032911182489229726660152541375615894945620223247826351223174360647222252269441251754087432860090975145483581830570422079647159030325486686762459258714364870620183146464804968572490634603407713473503859755106348953032578856987150808122340327180578534526389355353223354518426907806378656201240634437643369069628323733847280638004737554791000980430133031397474254869478018724638656900506895817948076054205503187519248075876986110903141255814312050335422925335730746263915496781197440926981542308363519577492358529531463054897209506794406981782105343963008161584600528573170500572690716090238706962417050942968067342088543714986134810185702360695575162382761222259200466234573803347070161647744273455986647184947435048637904508265444440611461278130362573568221834472715306443710668130036659115398237104589419682633300791922500126187584681953930428461166924440775168884544146785339430531582258448906145379644449349234295338086332339679437364030023405188487554008311649905843821257877409586373333719335244550443797383419390995465549480972631739288779202991737869838559375961269964801575719161127067771140294494072234486255437648867239410010120580863079724904126975776772942095513341214510769650625776797784905257965566721186709233314427647024359963049997979966150872417014625402549426082514880715910319051715791352031785010569794937060079241621953831632960441609956191851688059568638466178985503317167257560081359679928200953817696974446570187749958761071823203972323015554641220221919962263643896010319954859917293459413520497801474447796781593332512476237932861015215171774225479274966484912397955158226011834669596200191361069704478214607191761364535338177971923860258622661063651190459217064079367525601848080267397741955516340787284021020057868296292826333410555587596032828463718549857556237063036834080952026626441794802143949858252347260901355965093692797512813788992352146863398463740662646119489183992456479545943701716071177023937430149663525046468760985971155104698705725804492030841492405668331408274322109891229729913723132053978843274272425009715753952388101679755994287593406098160781085015178309232781147508009928859807269691469001489614619037990535087084728293414209561843327937005591552483270015323423127634501819535772765359307623172945649022833904683902541821113431748782877296589098313344120048579125714423086603099569307230043022203845786581403314164104371544486677247251823556184039292782301722817583467919931825480542641321788868410630022910810524363261971241641906736420052124677229752382965696118349380045754816348481356878466722095802383724525311870351489047797249283816131583441454040503112244084983874863586196360722127226180628670896882546224859465603718452073799428192259987127745239176806859006242579120724224092236982784988694202875833049788466616189226768504917949606056478380368901174348146275643554416573730485024190394903189822882221325719996577765049944485355233854904947333898017032336253977576954393647399953618189545628142035240708138942776348832909985722871823922424488590102120538284473422972185482986330711648622390102077182281849151031013745766318195521075377152652405082686262432080731761856209338877597361524518964816927112611155455104674712065014038094345527578458265663508877833350266381341214910107051827131991141915018137837477729870051055420301733518085823183961043226641329487493991495736641542236855039997224995148090427460876330961880635559554885906143858201858326512685462578407043298470951982975925969934053905505544750838507915879360275401213222872881423728279573269141798779186882430179775148343080310025624997753315956993266831597498626285198350869206854899418970444059971282111546768521681729422562376367282211185183070188760307886510347134928210366836474351057122770106348497571866151142666594620885504212313033534879749129092117996149461623937487640945541167051731031874530488788609339253763256169241168154668524200661324393870227764369979392642461459872250934415064208409530922364996742500422166731731645110543003545381149515532930962597320040094726882743555400669243308368931957155464286603307177765096769275502380242882057063901651712613251413647589270879324540072716452333502400747904476233847581267091449576741805032222436491742520948142846350077795212658817926569149885315961858764811447716455774488347858764897370122610207686177138125869488312210540261752423907460857771203121751542674667497749582493838974242665218355239274204155358365241080899979136578542922340261185651111885810463632498424793824522775496234108736570875784937577763046522033250280120742135765149814657456619048112584238146505837184902226468412003906591567852459931665144746391813789319143624914395854701614924160834306776518595379911177583618101876403502883226102189734258168057412513149448220991648584640595481007718472232690721390886208389870070439303805448196761819619702978832277944718437257391668249385562841308651116891994863011776159563677812967999085808393735778018541430400574148817280642897994636793806525823171085521801213205309996080113277401888227296932100406985195859813345287254855965691831792113916926282242760601625816982228472514481264421236216813417095842870331049031299282481560823841491680196093431479603944944962969540839848833190786839269244212601158953726489376895551868364458825140152514442572930642941240068233904175184348444633622487618272421540324977580364808901216379565835036499826256013829774355237886835337244926035563379230123449703646413614522642516059724948562591642590568295671128547952269960817425273509360746880055263390310926592041961786309779004741741464890802801010148318266093331213714254432673976323324368826523599068680080419832661576400236585586475811757333894494681552744348678548758688186776132183157200188922472094771935761565450334030588559516057962075655030113894313040104817887227871507195679635138509602074280600543784613648232218095961826002276830140494027388695884019147384641537350917130116183999233069137810179513850722389231137656058937226534896596298433227428346371582994596160545475250971516176945665014695195481504952448069788262942068404565540809228961694278133883402331853879259721106634074947864897094206171735620710664709153591199714986043078379161773582643889753572029456099932300567600164313764306147734450372377632523967965103209501537595042746271223088953723946219163017112459347449467464335527552665970643133422943655422590355648483798071597459740036178793788500342234639174358182164475768951462603842072775205514043243057574261324538912124041467269457008722069025590855221261466611195731926583395301678603701831303866546174451688413248917347050139411606669996908208944574059179841262478750837531397249161507857202884718409685745079680891847100437776795280461549386328795876605705059895562366327969626341741156361494680250874367631085924040898028321917690871172750832496734568283951518674697875796724966206217525533552048240341156849674578442301511300121786856447109616302476787220586717777862309166443880651099548313486394299457301463438062630125762251523586474778119994040787461549413003196784459496866590897364084952728992163587179214206316181824729696325585033545632162530311346409940561034828228701368169661709949625171965515252234668978625218744380795977783786745801567748533417504493142751807578660468571215302356035804170218572455959041758343789582508901659459201787407313230611821842483850593053889844030673030563796327090788534279534619507111458710802535998130387554039899515977188251401837633280704779022159955703686150114370678015621557871806042627732528948982947922998153930831483094730916748651149207322652633599221646711187825462648252476921241640678804707989715036108548743212916002505173575369018160846851434674880214153540600766253837098212245805035317828836151911619794743768125079574299059394682781206014268487265261391748486243971619526566928356342874547046708999170349779139332634042521372043336042322326934845489806995903246682186079221993280401755305482577370688710026459346230511700451739032319324332684527044406440661749558761007876370670344923254252430812993688437198045933072106656719219170244884820621860165093365398388328675512863830228304940050110385972457970675296915023709060205599293784019773497093422212024152520219543224094833769589212298696642821998730930226847033839485031316101215938570873402426618243603322164803652637630790723503932666608043695039092843424577206268521221753932016420452119980498168248096324847592025545903446868967149657617562113605965925191769183613558041239212763654681986385232344785468049130828186615009692159873449228483079422453760694485137389231042120304326810325378414753528988348936283603848636391807519002762121804417365349958140620499286084538038335616285208339444503240582014756511467448230932909233726181932054257917842331891048175886567273899292165544834287213646080477710204886215624982444902021143559192549849695608118666679605766241369732225877778705157332917378025102167634202643445712868969631084203855205150355331350605285427975517246933972199322307000480356742161483659181977153202083930769992036773663268072152016460920814161637811286131940216793969844613417936344688618471581812297004383197168353257871641033294579797996980394108866251504409309686857087839900627452173659964414194716118707046888410903787468023728446298353024773125787860974235650005085345208701032312592747344115980278234723827050466807115756375045914905536197795173144079847975128597427430058521453830556989694991558399182386089468295879924184868622134252157222957279749229321422426374056886399897633533620343133847633680906896749020540654375928839155496923155461342338570932354907526907429968203209835077190383705051092541332562674530610931279042876567415574189516887284844405126323417533462379533013649140270228775829791323426430703081722250677549460242407444559410522077858198261453523770625387297403642633910083490605149699453080743274181552776681220358374875735570174736963289278556446974245401289822011245300565527625069218027844786620745595214136910769773990188188714683704713567229602664344032445678822371351464193473332096205714823856948671468081662436824256392082477751068839926028844014741545744036418872585632708226995377761197841239849818238250565635362074792615888527866832354403913061970942001545484947838030725674091542682396560226053172092326272951312799283834040503298654477886483460104590258336652661965359662917051507392988840754089221424010222287163571408612406304484140933668289456310417752974956917505741137411744673170814552986121989617409132819893300787860929011149460425000871054522202992320128839437751758032433474357989167283116867373788323315125173004411418058118692116058646498755630742582919648775910142416645446753716002040814547832866419297875289507072087455930313244513796296949206659729144845400497777462296821115950554983817809842981412201056053443773229498381317174643946098567428196857174857531002578449359799603831288671327688515647693938882683259052656212728065119857051983677108076141361677196772734937836851049170475278949881762961207200906932705421009489774176916343170259752011110900597256744751836143538640942292145713159368917560489939274092748176415779029908177849197885189781518179316573067767135978579589771243002999934502642075604878016463852194050716385474679619583799512677156047984740377540589144636321394538862889956849239574089710497993198117670793465103017210605677202571847900772670905478823883664416485063485610941300338715969867700215697445233151857320869708737594777057955767594037027768489826778343077451280989368907942591087038626048444868744329586122371480293524899068840758349279346320109239450632529539279481988537148368589949422059409194058891899169913758526899327032340364536117795304771799522944723397250989938115485523466783977009105391476940035755892967291723757962462288598024603645772035504943158130611484596513859154062448734299430174816497751968490047923716560732814985476121072297838524767142298665941121587051537550901397611323110887729690794438028624590897564977480685802628401950444785025772447205309486651220953318128495471474055109958950203220023912925527678967716163760387187493701415221324240489319319461129694665336660025697770373093901931655690887197925320132123181303157300421726908668641301689246922506543697215186508081946648249807910775840862300586905470425950561102330051815571404011528636501665729028605084298399871117159294988494133431913506750574493758729848745978565560954872855650438844878302564557317184730545263051028286036740791897289249065036986394373744035964692270443283744550524135409912918888897358086392764161274260604178507475473287565749236776586686912948105645042904647010328859415749094542001282527955203414914115426059793148925641391845532631247785685640738975081579943715224560616435031253691679891165608814926257996649576013906453241676073873575410787311976574679564331188600071142822310003099359507076112740054933431677110803547670397139294452936181186580037075971747570678475201808169339061444045439271463149472722748655107817100515010085090605996631234247473173804559743426144659518075568481917020526506392070114551142097857821359028541682582850150963554408640931725600792904833049280433037760921289974947783213853852377127784272657754395106663787571454277581000389205740426449219961536150093537955313727105957674207336397259696123427188004548952929010650282565009399079463626548341992847519857944874401015232667841115270537576933480923504099343533769709148676818214920539513437005689228930096962816626439629296364304860605272013175943062515373467580169617905069469287692770898306994375910977324278701281515228668368351585964016836233673371931031918691493499836888325937349560628630009008625721275768952701451427596624498922904955683097099927592843868397595331227797709418032615710115374715831722530757331235285150828142677832664892899763303330655114937908839069218096877841633967179184245117121657170054140378868738444414177989947196588364770858073387726697545971181674629937873282533354638711975447714365912839772573066956725682840565493515836842959603273272221883195028677671284303225473835453981953200949674196998422165934715583567819389102992991997110676306289057897559703708514849177836654814844111444338846494120111452514946568744679972265762690767512669661552536625626361628560901580090196492699380208455037105825942189596319643734866443949912329224576911394488191214908300738738174850951265979325428131348838756240683413846204412801781790416881908030529673662078965246454374640983827112095902646583736436872088435875707857919261631510078279933727958838824904991675386771067960809502041503890698175658275836281986019048551924824408408767991804886924559105989194436026888009528210361837649307153316489982554479517966726815362380505638568591366043794282965572672202675431558653213422100624186793762759040398921362241215852344821285669611965870117108280279765409384033861932859925416834321099791534631609217555288768058648045902391962608441563682091154273247386928193478902025445981141638171247648719281069536956814399219277091888021948718594360425852437052119331808004925271241550480134388967632112510123577648767754539238437651493590196362893712736947154242899394549801620340352673038122101984705377901903343269582429069286630333999238443547245852079980353150216805771926853874376613216069013442711997727152161289427415553731567082654039360756085313905459770221943929027314512351409490008572550083963293588791611401284415577987201651663735953985223126768189991058892798392421078278855702010667661851030629822003778951765498423794625786148695872066940264016698953452120278158658525238431558517292953051125346956990974334991405855986121197117985913410562943570130212404895707316260552793729303534475871452165723571653536160325217366748148972052785367175315064028608623940149936966818561737049062059649868701350316978685120273124488376878891952975912501758689814911150442242864947933023172390085708863374923433947640896479950106955252209982850862269937389226863503719703490916155648921656609278546312603357467572029603032647015096851525144864167516508604865136061425345656565844368552150659630492541100962048438988961998646345794065780672759325389813983696181870742533383078333208430368445048898823045335351001623858851073908448710759511609485985445074211556895286072514998794144562530853609181727511986410126691220983652866557105685510443024424828352104922261123979918767933491674767324737561569913701532825335974326520288847005656847098988165418903553315363730529155242281793714056723425334636933745239886548712203060673620014923081178611076675651243494654473209833200942578499975158015442206172895304633381348504203136119615050807520494358737693257043102090878690432489571755556396621130209610705075943603876459636218249400942133521388885184582972721731864208254147454193285968993720817506007804157546318691440861988766488259467840939978706463406994140339720357338478055398161470620863621680434476807502530952942142675340687000350924693899204376226214814225342808558671025906848464257121376923587417291058310853982143833553273498218544354404260460098501392662954492385583861143466836858372613189378909110618635616303527652714202451446072819868763123174882661699520468276731711788775203170171615742088434862579924743567102375581097901719050154177864681369676327066334034833385770588296324593875225728010457044607147123623401671277291626412436722856938558546197824041297546361377965621854469283852325537093168674790243031198702791085911377398139764448744328557634264622198164107999380931857052012979950781984053479067160165871273969322070376320247513199155737795290732854168404765136705152700191467804937804223697660772707148982279737530915180498056030408118451007017856824622061545501663894007593437285600441093866503117102135916075588545431500033014187794624431657734492652320886468016548993239815826194712418880809039078028162872656466206227444069251286755138096383195761029917979091678525084333193897541253634981991400614350461233930314907305467111267490671020107674942800766174127308840397970262187655903184318744326743386482290188072599624970184858685621998233215640267833771765000806479461076197947870451235081247235418306913045591239761079197368091782387179665198129533819003001315178441659829739116501989510812544401386189891070258312790169305067016252353903030243598209562965277413314322419738131682759033534890727306494872689640468400408928167900474504673726947512145434048168744382303568233481416877673470824774447455404348149290178820956292382064276240852651982259857617709952382465406895216066489762238173530479143039997788054396835633014838851724899010533515318044936977046224347853137954401561307959449415202099012401624811407844897915203071482852678789850165478036870723249940453368339529909647920830927518051768535371326741846634803979249624688855701968405104628624116475355999353114178426926693547013568087878019217148366185793749955068260162270674004097069012997323294265003247324065105242842928491805889917131116289032227448373484140087837529759393442832119575191829040295019651278629527366308423137107833762572348788886661737860061397558103001586431545305719962063303025219260890033925083736571875137304589522622831584736460138326401892113858490455680362580176994356092476030884914608169867105272158095840566917468797934887872071935517318508448864437425013272082662594596734116004196261602749394649657577401456776325756389144765704262714459231115849891849659181348480688641253778546966986447335806087246105220077922804522576412781939296930760709735483744104785327707463247630773717455966321053928499324612942689191098509877255675308538192456344034841254587160226869074223681136517790919715961638701352493925379566439730388128576527024484455332562479978309848678842458114184670960730698022707531867381496937101828291901711945396670470691405327662504183997517621904284722811980048493124272074835199534027172632534466749377067794286169632556733024166655852346147297851765942015676948640502325121063376840736623972649228321727617221619186864366484085350795114687808817727444235244261215635875082658043769930886722145698018667185076167610543534416700999354635462190166624218374254098074557920196917868579960689059336326237200287835043251927805635734186861931422987344121341743326016493906730566412973277491742417334701738991514655165739937649648021332222228254443872904140252733088202539011767141326415843039718238781164648827387532184733115430949390150608606970156844716024034791588852057534884415661038824531979838865942063047253412356350633832561570981013346073743499565979401454252961474075936933274965449587970353943308915874134497163313320766237949690371312428070132882464089636353309422091535451414470322268455771395148988640649797166929624494451582616184351974062733466292471140692466513817949789238656892649829191816425173773164100775558774095643650444390936078472588402261702670313299425936427347681642935274943301568618473613324968610531000962272147636176877881499790176315989478293792378505140803806506432357149932603188486479494480329298668217453150387165038381043974767557160495938761233180422596394277230579382794353942593281025396207703228941617415103775454856466574417115293639130332598782546329820397282791750836613476000567125328075265171955299686066663373100759300288479724991210522794015833521745188789685579309554311345986062372641336498502186545453254627792610445518276007691163646517747251919772676763726670016623098939514276611369257896657485538178802476794884736973756086993032252240894165318774608010890163992971312089297216931722616517006896867248540264002010390123437440634753165657137082405991353246116203074628124607056324617739662973138298635762727839685893107000952472923053488731514651702104827992083537884182188927862205866864912065288975622876640651091059116684418740789707838207459946629339612145940474051004811229078410054805603770167187899291396333620856472027382496494579434322864699586960354621060879362209948195962167135096103322733606714565842074186567369414970882856188032439295563974871761370767914243088801673949776437483846419145804961780626941517735716833421188879615934174565183578639568269910967784359889278936474955274481461689492882583846222244787803186186056937962236959222307134827727561658761472841753460728482127532794677658139023725536423620278501655430667348066431787651735992869746055543850454460215155857938375113707997675556089431470440229259696367563636789632139323164791029590731577260859805645113753405501237121852932453165561544148348592659152112362819969765003242110811526561340404677655858350273220384070793122006091971239788333162210810207632987575221383008626351695020346972980763677720800799288190365307334602197293066706662151628652917487232889355302446968185776080623329416960635998500774197826858329359586338047765924531563303088701012292054116084256172601297158948676096465576565783776532005240667596721296005304713475541615473791958054357214606066279291381554542767667425866320215326299077780202039474575530462883555713474078385822900473388327689016946471389625572475990316809920684905382237002898371727342081369981115513750530944886006207880343101505926568887442316772568037064262459320599120344986044456780135134448701172912518392458537381754552950038024423835871505603051051276232822938235613848854358749096245470401043647302031698115487641969692321265137560736794170198168477922499365641824171839332936163280531162050350415755923327309480664094662063197662275022646332326892737408392604985108442891989898723740094658317097199211451044552934259260786880754632306608632993762610923002704597071966825664054379780876277567011282507062428594675944450354117280658734492223859259425632815527442659342517793239177641016512135541468371923174895197438953890927804552254443735374980847604015008679210518036262221216282676260487850428837137903733404001361400869131741877805037068983440957889317103571787351088843449872104097473330495350501427776155218695633272649888913537109309255050037132028229461097951990669923121329488443857427925588396724685794110337211887284837168076628598028585801000960463499973706893864200678078024455030346145451532559139702176451543473281467646139287566512120449654154584264554092969103648495216634262389338594096443392175986177493272124286664651347008901410828256272219729305898151687218515136371711362128381357121056560322339446506095901498179871356529831671126921895736410534277620371120684283362190414854331830721762653891777658821553282392933349229194324544787102790084645004659385717064725978931434511714474484809437247163291518105709055073751166570778872800842846697941261509695601858960527684425652508705853658337756988270160015716939900881649280985953954276633097567724244610168172947172551878589733688010573185709655402170560316285439422129992439718709938072896866684058475683023868500280662141092601247909421712232025989392871089896986923462451433254171584634624869265510086616459185812185338803874775517246207733451537386678737137925054517929062055585605655058849960700359899660802662356395551840615014044519576351908816611349868696489831477727124440215777765427140905846460586595772631357078544995323354267058440992339806767143404634459256263062614781115405093988474111897968362664667840828505436547566514303934600753926239837236144080966086434853402010786270507762442655348409087788195334447293254134842462750798054420614110826968950652666789543424336749231108603806306492014964598858330509052693551044174739089374792298315544487517884523796292677744424936583921681064055798593382424791808306984132769032375752401576021882922424482984804015191175776373221941854465857339584646762094745310879453786183087433931329850461263373630859653359912809130510791503408427844225808985068781054280040124372046702794935961397095018298189929306514187952766933219308032344184775772534425810455791207576777047636982051590922871372196596270182696506208134311533563641441741119321723066397820004258418250624114963316892231289116312149332765819240069646560469588063938944519152193078639395119884394950514449904139086122564342533027830783594263717480837705810804168755767305492866033576661417867308826337061727676601149678013947830895189625200778611765271236737765617973967816547549553963776486038626342233519673315201022206848472867740014057219906623166245183336804035757184229012318449561930102050754088455299442782199366869989114175356857899334292798507023521936004570055100774305485986241899574473652526500000610483762921585663014852475043252189936970414834701161646606751567170960005396651874834000499212858250350267348386529788161251376564633053990749621933818726324673950771845548631437008642471447625921080338389224557005332834414536922145369118825333087695342062303296860084353959088950626703182968925252306654981145427636870295151763753111687778012891807921477316417181225540460418612916200417460220209298201114476407556198882818789595566722416378737916239978193561754982880993084056217754326554535848492774167967725301752452252203598805237046511025836480632506619849052067048487109276041590545930692182806251868057458089023744979799157136818123086088404410848824527524568504568166286311267742198103702035333539992863693785460833508762557536238272430633490345425676725758317352469053851640267789355062265282718448853296347162149661330655143164382331340855705340368646893458049314676139678689486048540407371443416022298466981752741488919088685009549245168057709067704202908589651029563967947525937408165027237072824156223770246206395198987425805681490559691208062410927689278657568049920721631769987432052717033644523805402288782876937073379887246895647480317532357000431001449453317106148392311571195651682985936182935015213716473952455006044450375688822923956905306648913800002440335324919763587655859580514534782030833380873671240899774584824849328530629342762524965029889316669215649172030064301820292849919899239272673704733070007575871154446874314150913348851593865992419727732090216572554294808383941797105297354784644903607764726120821145489363019971446654418385015790348212487014442630977605803152978966111461037630074192136305405909780563269385109647189746230552155689622848738636613626550379945982395947569389199425811427846424279712680966641029663921934653746364173687919625772883756654764665154198059628984714706846276373165229276821630564764741959186867455864393465980719412682335849521975049626312679985697368242868821965717997937277368066260072969092989446997090981740777934304823435751344375281554150420641759442128767389237244911672671396740146981565146336357428278929157881437954632737100665560831606156782767824357570873008315551809913724453907361339924991198018038382800775714386041916431195827558168726344565256334970066349830152127347604180883122016753330311474136962539124325820999102702932097804084755889738252008144169858654933748839909901664168390572628540972022947373971930108498984534657824026262127082244653810256046631232501038259047276477614691598147686306481125326524747229576783933049414283642015618552210660282055311052432085320496866245167432782417205703207782282194787103294069127541922582410329309058610731166492898442647283614562413695205807265686306240712996987499206428121499520210464792375034340253928002947937124018750715552236084244164224338749782937828658478619159476254915790524637009098515691292403868062802599500343481883860677898934416182182478005867427484783834594776024851586456692392357665290914608340833706960428935269133946358440055386077331204773647623451412944100550026744228011790591363089461382430516426226782554451636487107648590837158693179802308922777712053938954084550690562981237447884954424809032182401397866402914443857170983200061571774192125526197450823917669387909737590656930718323223260247368846559090482368108949966693786625861220667777972297046644159246901349432377351410467251776408782497726218153614450138138382067537291365595317346006525100304961476287119433377625273336256626407057677870927901612205328826795213582941327848066763881230778877860449630040967777927949887188431606798614590870310861128750598428306880750813267870855728192849011365874622838140055438322450625510137088548777256859372970675005110570753606503919260250201999072890979726428751230138040014768787833006583221316253619787661615033746011346527452181364435026615579328068804981947069341619146113385454488288043652695903949920447135610190381310013385034894190048476266909963954524910707603624447014091207506387914667545040516617913100607144339423586636409165845750742517806809977948926954262087705209736173630143852392128467911502162725946181660382545653156249515198568713374091464441877463975973318778609411014544650693474869065353001902852240358810837723178504612009070512240294300003151657752747354606636823529991770277912775454326646566032572705233074917551912339727780271686978498048049400655425456138437807135444360484021917823256135837246476130493607495997748805132739875267185887655081194341698925130034982943999911313788247091977968735028312291593480379895909697289750337780947193030359951912976809748493451728553338030528771706978464331480730315952303802711481667083241970698009293652640143269867737839445223056425389174858078289789008850041604784943366407967487283607313362303386561612137727989831952030579306482107209753222773267434574743708596450799298666949204505934146381452205006525176416706009440940275232184924998588122642750494761828747198742279645786870394350829830493403507473933414104210421305526245592953719395875298029995231272811776166348324161556947565818165938048376749476286032005503858492499262285207885766276266559972899104229947753582440900502854172885329467607155121861952121391971460656676591985326020805149512270132050785824553136536543624487420830970565416752836294578659104552507555803809471857889579946471155433525166462285237985070295925079449303655089353560146439476251608197250978213585065221175943602078942941347913624588736155430239418578986361314814693209858620616302722316548576932479857519158045255527501351071371132728366004084473860977854643865773508086256926353605729941602398739855910440751537289302169763750681951148742550139539965228382486429894900726941818342459258186729462120533925678020229053948315300059017130509530395018210807276192236426350795398170932094694257436690956305231117827953488432439506742536398398005690585611517662420941909490408183255055195201028602726496148083461072799730498944539571821768673318028991339323725698699915232082041903254031352588888296871565485843656095969262889262619431828332101755658429527028336590468335863527949870618697714044575820988290413428544819820817886855583856071580351855646858383978467556965162509428868408129207291055282487225625327857124374607483113430891567929947861204881217488025515450220352364739235592395563708266908767629047160796685116466232737769043314867329847970745746036930919619594564609463786671991510052663393571006320630497574471291576723392460890594152780852201864248262203999869105250789844154416331327249176115083104213543771137515895026102895257988387195592644975189453719125209406242123810992148983589960393391206878412188580368750840130622017735151333296269355249844644854541787615437388110852004435600157885259111192325528732087077153977769357250694393541356961427723582527057664004854429895592605836480585668006025547419533268694557061116631466712333710169508823711809934620797667259346597385271841566904447577179367774299656212642820019567258704339182642993925985671439982204792748203322447776656313596508463976760883169491755825061834482996537311945402696314381650607520343926343742118095268866866925588974854093843956156422144198479504302279176731179959776676612075518641360620327604990860029614544366067308846114090416785244845206269907568458140667023500530510610815305170499659708360275338839955602340201902626692308324268371512447765034071155299063204108762873288917979077211012891711411862001746920707205035501493333736711446433817290428395166736554874084702906622596068767076671321717637310681248444829299645890770421994577400553580769732315876705154331621975259599656299519221402155116711599551630954443764850286897683391560252137519115976004471932002970750372013206345508986146272396864597498853323006203197761690116306779179258775061883024423375813193277714169723762578005449367433216919446058473557985457488497225330026085702564433788484857423398232054967201431585850247667405137956663938655572182584202354232245261408948334467718049566469312295365158502853138264151395712138373629108472010179968975294207582032851613933394169232957894732685887970088136225705100496610279377740992354155717405008115097122741592425050947401861213664360406485461126617647258106527174328976661799384343519048795463087917759924158027620497620539678403063104888844764260433160427845878979510018351576180443232410028040406452815315925898335786991039905683122538313961390366207808036239221103259420372944991828456395351932992458271823461868217810894169841117053003027572046185572039900987332874111595574766763668946347061149150450812057646016466739656114685821406799022850656130260957323468411754009281672995664881965938018580900910199163690928869389748911919402902128557271553728506185963600617238730496340703489444085614494680940351118426235868050819616794234714294943278495219555356459020932655446734946223142016206697442722091225618365951057332123112540992069702695869248630433334323758401524226411707543828019842375283651382391254481182526585914908157055387458176325028685459320149332868747929002067946010858651032898951175398300007745088503545899798654574066304754663292646788553249370672847576824760978261358521456031279355094491468563621056157898438362902677668923120214529037920871260739810151548256131306724124119146818889181114425266438197029629715867955210880053613617621716728049917073743563617129617311160254728585167539205786497015987456537192233855913187060724556392520089947991333958199026952671927360266244966735253496866274876005515827789129646195158592452746261456895498682063558293234424678877102348033481272708648871079118923244454852536865675501419311147623158089419502111140990012700343680740960165100347694488092936957300728323370477840133070737270362581138546424414173692812724518323901429252572337999555108991659390442845440218976064146559948562596373455097123660796090386809444781910908888335924476195261483655334343226232230313479703942517742840420966862024350959065069662197327113525746403086160984386392637797342792837993000490391860319569464069923959386367109449915774900969821544267298738946638760116352405033276903060399047687141931310258357681972724425507713293688961338198825934548481802669045989457507148160384932681139982892193433205376148971607795495063248223852717059782098288089088951812942658312025828454982435216342884186440939202633439422557584601732975475302682748830341043722683844206164444225510515982210268167176507604462568627178062965678443004396453419627594214720765239105018345482246356692808013563962963347303908908925069394719227341681395014932857205481661520306504014544375367612767460756689357429077442906389095063954343347394048940738094817774829428432399269456809041184162767594700139595850121529753391445892361441486395661977021169321496503901658373899004119543659808144515145241822106175535395850871631954898097310334128000605115960326320626005416742693470757509838210665473084776980354071119762954442836172973606091091658228285776472910511796143443667710188976380792470083799821556322976792196735318564664309700180926539333158191877282953163431035330736123349169181760556350896375680287752273087622945225143632525213565004202215180590697101962230599132763396756998167398800348626941414194488417560426326148189424555250768913819844707859404118020293312230880706458945326403247431506567170470159974239861574652501062308503401593276579766266115456163004806132467255364090316510278460042554376182541304199289121833786515994554370253643790265647380760808481928270173571566290138510084878156399462899094307735933203896337220666636778685267130202216325805503198812412263501970198904982869408010210508970615080201517802274643485674637626778769371149493601426391105275916437852752999227716560185679124717370948675560740432688434936898854280039821863906894632382639971305172923264727391453153340810134563238917035874888247765906541946950454254589243583668916610453769981750382190654610576834814050597722801025606531600228004683945999655762859141502129412132194951384666929636063902821008079631605174205298300310572033373203818662584565750809217280064996102875337495102241375504247342799926905319320880082472521560009620826362677295294730426207125360644245815298512490342331795746846271144329522470858563591855138967071807641565463081574987946209079004637893063866443229308740819829694735936230150160974182819021513195285424855616308428570651163307373467843108861466776936010837592546260092254522726550384127309599481691066596188114047278372409141868287228991695162567370045990489699327643468738706187053737798559362617612868838081608281281466243187147307888027424257964466259503196337421270042007963954403940760212954815614169195441798601201306660529594875419059425628650788868370875792482229835558991804202327990919211565480361551606790561457093473201676374959782994955807010078312458779069628332330286279096695436889093023275556018281165375246240304059610480926431826855351205998165040128102103981343570337817657436938050958426263365548077351890295709583607316743051182800344355824291273195874224227865763141634301105137905148599804889476454496811525785543989824193494552076018222822661793340578205246930332958912977662092714125342075477199752926385242227880371118341337318789266116952904311901656621845618184771730443819524886673111169275978868915560483383283169902008412289984355051828805825280305725792025509578661217719003089071772933981779347094346540739423621104271426842513897504005688363020406546936759917002361851890050746658805291824231167335399378295732449382573762629555252310211287756760741301209757451987203154293538039382093559017391473878912812435105021218903695146831056458675521367599327731933113244717896038913577825578799397660932811291534710176777097220357585349842201323975078463737113597656905725622257332994758296402843856390120384136196249747279482708093012744590923052425564816242384513338830761344556880861619804814662602075303551063555638398754089718887975078137101324203872000672530710221054881903336926565475138906112470696991213654703248895282102769267680010870459374434507175667164405079005524663130377529306458980558034328054702617707022616871686926592947436611670247179397725175909034130756339946436731338297655710255443659676982554977096744003382873614387599959706255696327927391223503093912470176286050465703070578821720403957483184990687913289994297421210328557274154569565748268287546091597254058420619675638501746936506528467484016779597649371876469808633951034170710666361231794125867061333779235517000412497356386513825865318239250817186335055874812836854203103927011472574138998471148968316697855009432997784975916761122344323794528351330823137150586868089892829676688153564401544491175070269225329303338156886154794857793600753929963114743084161213055010425414563349979870065295716836389640069414037894278266685421068898675180482752684653716936975393055108266264585829443359528512164671609499915797295715026718775650547886012732416561444274133862541439538685650113946352564625540036216704262727474126242198209795757194777164037971024087131831444949583676390524304637574574753610309297628931415454423948126016394110944171453035422773160340632298790648969455396814736697311087748214820553203135096871187626392768703535105283159501982181982161363265968838057997384273373983471636367370547840089211931226622694730736044916554153532908772555189126360324686944509834655391623210941216213083828656860097772419630699621267839051984599364137551788677088777151203024659210851503137359307917905715124365468156874392690618351215026696694891088152545923029398224461759714391539525379219284909469594815304994539503593265390332428551604901009930748366879656823159218921279933618614956432786770969751313361503546524365210727122460728756292726077787224831136563981074815968690840686126256189201396278041362915625042021370431799299363100581273337165435577247364929623741377949373610906812634068893054261797102556440037538026493634274700396195436930364241654109507831323660477331999033235550398450958978015590838855123175618040740848416040325211521379433233088089593559331740149700823262434724080168055408959767239704373845793773141616313980994170714495811284670532801597263319710544781738638296231908774861035478887033076203073914351681173992545744316022085914214492142998702570747780120290614222448001153943672832391283671430117045834677369338145867884806476541000529263051771558287178425406385004903654792986393162928109139135975620544372005300061828073282929118252003164788770458456043176038464748004247451111839531047957925335082122149493530407617685681631335616269607292626617708546918405956066311019097777744727862932599201314481146097735831755355275087120113358849899954493810280629676970610341731512980523195907863963037093982894375762508805939305076345552044454213167284251982437393288841885811394719616448469677791434693462245802054799259746173869370575751096492366790213823091588163809651636713417223894625659847083546107376816156918631610088927050044559067340272589637372753761770314367623849102100326632397567239525587280382181267893888773419087805007434414552297899361681176938996109144202646601849556203528395410551399516039740040094045790698727496922103057457435343290758530367449729237029727320916906813580957508653404647063675379097172705136899229292079131357841880802907577275432547980661367614388867247751995407801449610637721125968016271522487030239559376223803139729997874744437002821083851185111463743814205381457767357496409597185189909812139539973481583733464922675003125534025392124091474788889261009463090418270344917864869270902017615092589784057441196770533097102911851883253264492229549871926712553705192479547473381675565700862091468083108204433874712142109435790526108481204010117565479176311791967516980387440163005458125826970008228755794248700296951974996070373786161372200464795814516001205829488874468296630552439663777083530594413929753642931294425674935956152434190999487722229319356244173365149888419454567944028227421759822329875523345423436888260243682929840536634504151978114167673129152881704986392648018030630894630730378862298955190412309726363917094445225371139149872636946014103713810499021569541573686221279062684105035226829727001232114993213189403056250619843147962157653166516480046812177849485804061327122673952422736558980319189605318317410002855307578820175472435868965459428723470438481596116326902534215416215138502723205692472423945145983910281699141580559237296610441313717445727434530817741471353325541483345244672148964301493301896287300157553259375143295206694648728051838134618671630002393364706052248986071404444819774758354656804088774385143461550091005989103780744355807138221487461392427236479625423195009189780863059642177695627319243947899198309350003003396700426837678272561140327681249196668784908771935500541085298471609174426569343203080931588488737349170225812225161347492915377087981682351461714271960583667654000337653044417795684102119316071162911601207251357401621037476091726483776125523952897889636277134457814229253901521323532324758292960643002820454355623729847835523941088722390070273829359138108255711686089974401201864389075075306065277054512113841755780027499869070665693161898909588114917318435542554168610154882880712988769556015995611539593149358408740527573990008104892363361616377506759164133976570168105556469917975403965763534764953638765455555155569646997257903647438688199421467305751518453615567340382204676017143100285478903872302104063740158676548305195647501613297445276477792313366794233679060963463428391336947792663639088153155521389846076242754038584171933311653302026997856007513751925380805857629732483345780120770417429446503492023624801554254651310735409410662082008215194516887995530399034567309092940441652610078784629022207233456937904777042704856158970393514764574265385872432326482183679017759324756859111771731463797868462171053355759825585702377128441969078942556162488178360465340334741661513499411599737074074439350904381217391115194351085569045278428823260227622394159382521456299899822876346890495967115936729305283443452024797636774034377332472994101186710929348640364125830504749951476877544793798158287758511448392358093101399436683764651160434527503707710786507241193386819509798066455544099101758938993804529002369564986188047213239860472984131475381728926807281864230415509494775200374115987637541355517497454465348312247776020706628809522367209782379257148435624449927253624103129197058159527667908191072951557403229145314360739668249654181871728336943974409648924212301051856502003452556100451399091989607377288198546164436570906040212133635109336658814506404266657757406151550028920077095894866022414637996201054322155269058871947512114158785664899288507236566281160189694095152534652890993190576257194720183504117742622176885519233957486247046740340056085328432239676243944829150658198795567695961712844949254464233410588848362265977120439312011852803101311526122188871840381569155961719916434104348826276472725064877996396188707548340520083059207881419873410367869230141572621123501767211098393611070889463410504737981812891970888237253324004220127203107228130771156211205999648347522501585446480672636646060927807674564035832727284370655776751373909126591524663013116301187786521896315279739125495449493783588244664484312139457748533531997429632305278040536326456507473707392633537717763436424477657576766990466151959158611882870035555564123986480530152488599202491340043828085941395012677003467626205039910956775234822674681622145761509611185301865567378383173963451345355968621428762701619316358958230659497018599106652789284459821602841576224688219791335683241129982027044131570488439800287891956762806991829236516303998153220714339088350308878857131026218642502448816774154533863487821440001406270380532361532677339266056811098833911735404334366112858199998362073671622397027342167188974634568921293058825358336424967271026025165343425854427034891410615710664874728377614206195065927111032350607828015648141100460495003077323887893037135565931473631009669413597813044681175811921227148372794549881602643047935320102235193548759024712431944919301850059653797205449561607020169133786961269089504630122815298191362685690763564134141188741322985704945059448977560395366495968502326553313794058778961986997722546576686050459837367945303867655265273815354676606218554404833330790070592440584974806876013327605456605636819194759916585354458788908088299816343672070221630940561958578551929756579991192613089459874286165419821062101739749442743421090918845176444036908902712943338287964033549209389923045076221525029587076709204933641856568497393810946452429138514606784471897583092974601622265595190229944867320615449080181942885376419978204224776598313659332695712316080936552420014961200357037078766875582814826784347394686452272242085890751699654058018434818520484264091968647942851139176410249329381434095519771772672281473570785241425183486798649773238497735005011449451803271007474151499408196666613270288803672134807934467197292136955466235150275418310597515800062467506013008828538606729374634574466756006124237093297509414502326442782725956772519230942085227549437129507291388840398700638694897901772230303680183388247305828044785783102381673942252107033791403277795522971481822485891592146733825319662165742323832087241018033555032743028630285063547112764511336704804023502758465444704741267866756333377187714110143735060352026544786091176410349376595270870937763020906789090168801363660452127112271839059219751002150878977606162427862260614826646750959733231786005548966246217492755678578660508958548980139298546388447550063075461162652032752515046046860005927991335929091747345028686553193823055672107944619368574790058439832197729340608749089566030548098666086803512084305012580745607784156124790337092722995449160203861388866349453799771699002352622073150463577375367194656965459344112668376462122895986716672679209615131496419284052560493515965661138204483646558225375640260449390365486647171856761652890476438921571345859535717041903973530912460357188174788338840866401989794130963439044618151094833926164572592398088204379305317126369996694006469078732388719545624630621131753849272014985572247319133148870748998655002159375383418851954264117751488433666355076282676769940993128788389336954185792521756790565745002972866128972665161729489599644314095030126568111451759030086122170543334007163196810577186677551371595997080313819560271338229738573600355508599478578452064367977220949197515819837710188610528589807160089285342336642957345223898246240274561321782069609746371710064517533917524269987859481881368714733931145720585778140956573252011639869775686947669295520925749844222532395469332605004790885562550788072586962438162964123940584870424991907794200378912113097079433763709112493149891938609204484507241186812570707814971463822070532304665039295451930179493262078885019202515976433917286386752876329645088978942167940375873809337696526049898814546723577660389428278571136033058536758876300759821879349074265641463275071255165437053825486656434167692292025000273539926446004694302558310863879219426936170901578483562433592259414000179080869177668689777352665860036228067769127753311036881818013098903783074703167509981819979853014930675339649502764080159360251330992048932041436364804279002208145610319753579376064743450886366585113707813930225481705927741687753399038219677280264019356398020157581360402873827179557643531428916548453949151929784312685036279284381925800028844090984076649903144850317427883332596494051486596745475729535137129279332382228602801299962241316681036912516713353190230418269304282197282956661345503108365264152165672582119294483450247256548817370213525653186146743694757881276091225707164592431513927640797820378031979753295916816051495167117756742911304699228892285016268060302547165793436656114813678596489167772808603583560652390530390636267432242905595635205624429614718722150275839418357796807911798330347257012631766858547320145563802512858783940704194893829035640943696024033281756975746990937764313163656729819347598869665810590612521501238226519453116495609284504711688220411750040647872974565179190330017501491599389416378561518162340367363691632129477493472336775782472033279449549974508632794907322014013909602119438787705810126735691814345776534550379978048210059370707078636561475778379090573657201306474441429501249214079219840062361738297403765908704023248589265238949752454531502644815350888804969973044381082273772514834572681889980411636025860206223993143633812755296231752552208514680241769852089685072946620807381634945056610161010051718095353852909431223050271645575651950330687005352127946036203605677210420135981243403737058300268236181647079131266258394719210606897810819247371569109587654676419075304148243349629427171784256263079224185126294609959891909518216971252321113959406278493561187367925605259159734456950645927288989010858912524418334634267230847007241759384016597278522640027090352420325056595469104134648851952691139365146510954223766953405654746653606694636506386914011820509358859613936536544471851463389782501062719848038453233273782864866332908510500877626129263247843251206830873626882288730854195622855547151792872788741099166463799523098888439023423530860290055072411304563269777245204574792060219457023711422455404589722795017236434380569684113522416333732488573284172682759436398077683249472031112225488194124055801410912342495395699938280405843643515367151871034237559743036059803929944355614971500347505981163830839546310093300987051891152607941765695618842524007398912434587805371711292969300206805640260680528717260066164723776215139565489017479426523906946728946031040825113416182437644527690602603572084367452896734578456225225036398910276255140973273914489798389441065709814954116149427606718482111291473214266444060204357410238124466907904958026006727028380468717682093361347884827405399679490092973625950483958589553824410818130226330567798361911663598032168612246695321387600415499984435152920542625821024254048467076841203131535386187417544092769609377625407314808977281977776036262938790077850702090935591224290990792475262453780873074474098470680748460796811296697908069592377728083216429291161249271271813717595101641711019686253791202318519543542303891817593714397485832946201890799286186311251478423508383051954443291736975069487943048685583803760104787007521186988254978209606074104261641994123743097085367241275984419191736506068003010133923502656578211759286139739839332614886440654732175555646623527868471199773867806532551358470775755697890160524498463240477370123532662394933100087722696838499617509643948194529997470140561433817761277834229231534420563002642764168506977754852362052851862367714775686425456293912803479473455356072041352944620764269035471667223320744105155716392529900962116028462662809390136130487111586198264444706321700207992609671082295184534696797484095573722911817606132684273281064056964924851363285450619504757852429996317199079364254435727890244506441403049719321220688957748533651236480783449840134458726836770938760354673459018027392560670732845340593739499498984379156737216969504320043283971920434084750416655580007234257835719732581772658962758484724202962062316995084934783127805023175063192471396249775285490620512266015624284103125684241234676011575934748514018851030350821064739754989004310549359717274121064184246838095878982713108941171944124818095673322902876896354690820294240713189106123432285078632318734951466248094547134471954848510251345596146258090420324237270007262653673522924117920754344676044577891822591136644388222285016115913368687452576396837109155955516903310483030656213374444076961929838512673753378535528223256620493128766870224799304885868310979570670293543718428198077340671089827177592837671074323334825592689423174932797342057332722432774542166715620689022294859197649594903235807925575339438656988689285799882335689797160761528819880153060732913520164409548960065461462388455499883197687443329692791613048903949415072357264516101039097513159583382321833164701743847786918676877752345630438204885914699174444938584397207989453514766040217869360341096473836896498688614127338993657744328687764782652015341280633039964856689478199810055924777448876083877955479615795932218091326222094325344044495111523283924455600168294219742102789364418793124598963555054948823030858614055315860599094476731897575274961978999966175568070119363719257120564953176514008158147913904479545036200173851122253547646711431399786295299308955864155784313566223219511794219727311717857390039041299452586058048059611612365434318299581915204217424224785233794000392477304864666714588566456818868777882024706208935868522848954397916501144911810025747929806460668954520030303074162290652687971612289328468669785567197243838368698166582779048365715414525816915623187800867264028770003662299321992048481483003311041721821849135404854111902222081068917315525318969541784256207631814368922672495476181338772058330717083628614496801714906731768402185657621782807496730310873659048807720078459362880789155398209010106681666560509336205408553818856268309712293432488521171934418530682443185315246146819119554917655879798098229476991069470250803633905544095137553383532911245417913066056508409950700065049792808564484081415099462199485023566767359138976848397732208440238226506297181453502068216019513680017953734841823743835137919154872572238438694784032791639905394648776331445515454349235855849708904617477664249259760603094521909165813262319383104983615014424171879687143497254453621998243309235213336424197554814648266752058819798019095749452676508875945393914763429188468864166834038505589528240509893539768927131510940083910869930102888629572065356650676927627253128017855569308761356546889170597186805331902611541273192835469747182633583812179133860406755607214460845409600509428344407339712785895044471253054764998754312373891413315476653717689870208097770036551644234449456143678861744005377065859683155294824686541580739280289925346750877419144211202741426100852178677208951994573304391493935435401213872404984158121928606961717106843272400688266385161327798012415461545424881197090650863895212890215657126511136921557898448689543227386842811107585292241859496348716605057515832458195215528473887650706053386805283169151602125444260486735755100020094307193985118857666617235146288681169918623738317590070676815445958889532294545110465304438735579004448853599634099918474171168007679356661839119744407794687320742157972777755250724660694572546931789843377000541474443992618229075826881076061505983006045741630081556032864969060367009429601063157041394640215265745344500350975609965925641248556705248758836530457865178651496144728890738556555322588609937202811513410638364057670109161574483845990449971375195064943282512773517962781961473190972529284049453954985467806823642226826243206090723791069723744110582204369826086587797178896653392824475006107134093540202869699140071320511750882245897673623059433348210904805638680985261886251077040496794097971956695333700776058941824573463558720179334367282600963088839163970238901172515986622863535424251072119468067829924829255137236238021849240634079705922283937007125896120301288551390416594009850186348338501010528318370641156793946610910653253679123716260107948885709270578953617050674590232380714023610643302682252480176264710196388716674494319505196399689254036059523266747191888948340004437731425755773553062937484286872737652833664886088441581665017934563214667265471298989956850067977578665985612495749265404204644728920560943579566847748405258494095581613438445777434469070042807499532014678404601203015245901563024897655302931453645449628532596676546048461997989924331048608996292305872725290913191201865502379707856652130467862820443709808699152550846800136465673607705614520693813197468176028577521819506421304601388364273308870802149985695543532132721653828386575307187828453737730817800516316250914698658193759475518406275065014462615435780418247801647451248121476944792234697410680104315386918618970131131597011245503408120429710218535425682598597458105539936003374295649487123306082062164370027553852470488804872069529683516794236456079124679357410315008514154909673390168527028716325809801036419950315798283430241093284097465719575322654193929125158273721774479302113498645471942234252339567620812140563406574656904735856002374194955244972016416200136752901993226223671212394251247356699658547706025630683446539185970837912057055678142420394494257754947714731875844477928247122193316789983597721828362704275613352807965926695254051136735792222650865925989710504302197001665751080740148078570434334789980885128993800023980002238261075859310431564901075733878653256246786863257082067725907605715069227821594451648309966658933510695152688812071596459890735863594523578632229222191939259726659531311324205732759170526043176969247898130593429225263115757960065251058584720510817628450191638743395553597125151404394776633519760078798489774234534234867162545110535184120049862786258574524191814871139778748138460041385367342967308563607478455208134431558503315534952751633247229077552751888113498872795649586409173312608900191688246297344107134080191760342624340122179468201281536655324739940494958864710517985419796317590385041474521475233741427387820155954406563696367565986142765912129720692830156811821905223481173375391005622820223151195713108399863586242635147303970388008505965205967043989187984959957203611123023153592246198249186008929473587949142633322730650460177599387448106275155411109834966277797911144192362167835830194648336614054933577632245745841800296163782426403091922043479374289426275297255378692900386629603786682696652530739368502836901251072010621835086963469056006370065085262256791342162367830550983361671546030244739446631465929061336597760565508283499106656042160647691131171983236505991921612653686194447188506267327868552300315584558240287328040712873991206540559879940628178945275013849729101405582468252587723040554382059647660446065993641872485616684776371989770479894954385121088450948392034571991426547860015420261803728028843359296746329058159076627281472967257144860093678831085306288788847923536071793205639864748912226490678241612486701090706043029084882761504545340969621307823252533111319033208124910455821709439676698106635530366186800918012692968795759304880220224440979960428482165590590776926635329074313921520149695240504614701080537809217761160367210106175880444001497693324814268737353049140799631431209460260950464859417861927042658080212643491183288728225237757940583196838226869619869955286492689089598050229681214852726483036697110238618956589987878147349364568135360220400682741881630190401826524549109956064729803935490069485951964223709204417132699670253440094385366926700392426591160493415010536211150302420695976242544845242399709972879368892307474717579240075698266684017904279493882013830064367529345244510613822934977129223232734804498523005128123075210703364423609337649379180240583590266175629041620389709924313454921464331066375898174847480185792053020514345756278309125847932895563682090983847792089372943349934779975372804039730669845341556422435749022258945693334702238009765764499170330978483397817677885643960656848917076212102517767802715565146836095112652533013380370548902210366265117899804229896951660143917267868677203105092324769307874519520742502324551701736992797332988426514789524171363155307372392557757113445986760566820995458249822442291889048288912517542051088660777966435281704257044837013359298430408353516023516061735443820110440627698643714066526604240975401418490185203519852249756419547149237960525575133756515810879958715443536922302562773745288713237012973923451434591655245024248137877665136090841993706319607424860434655794689286276319352593613536049828606206868922201115130728783269720935278076785993397986414974343799435667400719034136437092912158262785769680099880118627588558224892931774433739101032201766779537298259108708553906904162989353674744316778276414972500302454292911107291808334460251033381474379755981940115005842138222302794336949283650604217067271534065808015068710418150585091657199998960459891198353864170942130688496945040701563637179226104444252801562120371786735906198543028451684028167335987475498525160271910745875926894790215007749709536971209716973558759927329549582272695632881720715822511635929230517838111232635803021885863055656173266494124717545070655153234767079741650371148029064519707507235202727491175133267230107839058582592731099477455282009371119295211056814049923096443875015832808296453699380879261469186962098253909413903805461281269533770260535865697433681723264090585722312078271242228781932721632689726834985907841257016655548017020470703493657802484332949174805845878848631935901132332761935723796407086157325923062810394208175509235524506166335558469219941455465753942370423956481522189041110694975755094369910412065464628798576930999609755847046566064571213671903995116412214116957813270221974358182108578836461226914632330071667072783477831376023119015747423557873313987496197337632337444568143717295481682696121365886242761789151609916584720086757801009814719352250464891025874593699772622395215355817431867703684435411474214237937966525691357370764735871745985255083329265499307734746714357427480033217413017813137543066326562004817557354314402165063701355250126436137002568382385794064862535781825821721176833895438141123058365000352865305690894350914454171766468171353001791591612201291918784076592569464170763828696024682858260082098632349271297694469592901959337970926345554196296379344008872940575434078882518680218491659888367906944475830531682912001635592941081130517180199473519672867554491743732876208782604443652693031179893429827998231220169241330883336412671859840469049934235964644429334656763925362225481563690136833754262975427246462284129977207458577213980899206050137309521626313196857668377067089474872917043904708994584560844774790410426198265133725910223623023297635862897110010558596854242475071532275921544989155248729401730649786936042328017290590744870668251669231800898703257646615392722990299662172009766079066872799088074847951462209803919582610017420965346918839674042073188332644335058913542290033818830862518506422270466209741168494358138485819577264005134220816169800367234497208514458705983883663982458965219578413204175324289286822937257997445966711328886071122804230509314594394847456455301818846326783418271554096705728594117813484408766082674391382717610450612043827476110330658390324909618657031902425498694754996762235617730662615598225938929304068794666295132698939622838876922906007688615533327657054144208433700869032804514248222533348421421439972509552447549634289471490585775550437784169907701309273562211780896121919880677194467098815753861086089382967861919076263522869496160479742470431227004131564694944582043579779504955641603141859160413944420367506338213998618163140894750210114823674580328331682009294546977270510350811010412734397811906032143272112295015552395497525570143093534253195517851037587094937694766934100277955119644939599353771393820390171010499816402794341466024709432403262844253379279843375255001134033881197172707934758763198268142651688686576454354819749857241296433555696063484481845666446093558756370253346728106320105150496765582715169224879373082732466995516528312011418419202266566318941518168081621061731079756205531794427031618505949250435608140683482865051805658739643364953073479732882923629349258350672557710352177725692016243539823792300351757880423757072099689115292756820047649537476995307711946547601537342452096729647407081721796954392835502992494559369189109392879353093456051675367821550111280385534914470514283304600396443215138669917015550966044267235944570794912984355345429306739730876977898686778528814819621332760868121114030521790554100091591498053958873541284190145423074156975634199169959816896698111321470068566085801276577176307767911628285806996962653144429386580957319680549540788734304476216033558543759769549131859244832018070449185589488589137189739788044121689576006363523226889267898203159351129918809410789720098119944735870672476526327005679050859665053672807817618136212012555755341033380417662465904220979872277796649551209843280486203875530932212689699970385957083537058272663341349810214159388677461063510617340717556360542442953789093313305773789282470663442774506504419473846843042278870841284736634611680657509027906671388330532574510457624724298907791091432583512863067476262304602412003945508174508380982832188301357663773157788998105201360301374913995288492291506165437183017532563081071140423955280645751546236579228377207287300469398225497923442515076443515106196550480329961077796402150908355820758937544501459199854923545291055115908731513216080150537956550321302567004954476786422283355070393856252065261298808211704017591137926704722679548098193646928208232950873356104975141804702650038349263218866214372103346365093077177837592254267849311819314466230984507618290623103608882927247892686251879616025852708657419574034600205389367756725613607610993629650105855238213859284441498857975055230130190388636722354636959129610511721411977733601013785404612717366791053788282280908168148912031996115688772206451516151273799089930248140282761454513636854290137777430995029708450725572252347699742907188275707293123345772198822611198888123588445651219631985209224077843962801965848708571107115398252449226740826623877613018554301365090643405219339704255514894977114243616065827515044098672259639281805124661714132001127739397589209370796740441378464812203691199919299952577416556776347916480784278000955231919702959580046705091291379400009952554040105170690413534165413678340568715485510989367897287802227857837554738383167291540319668170783786010599005511140087960338589300118932103111939865383508852110162351557400036001517357258895360300990455905138049469334671351200726818638429564731766808221989798152822086542681611236247888904735361626876890559606428844935265594448152075742127191166341134718213304221460605181539541945721434035884852904304176748689042548846619131892395442306363533983987598537995694948527856130875369708704294969339659868289311905646193247248372367223387562098677714957350303853004858826829203350531282174203697541356715047448882312701506539833861625372722707061449674786076932450919678355866530061489100287841914023277411033347975325537416336974032510010101510653063297863656444282170666873645371309147015189435981819230339796082775028040826268474647678072612410582087743765155761242631445049079876481508369901885039724437495119994781943968771248590504801265305315394441435355682372949148505626343306931487271298835225600335483687037331850971244114932773714805327041797656120086416713764434740996714985833890898192462289710799149115295103423755231560304627335573312931058045585721955998697484728141858507620053467890283651667788797436814181655215996067993393238610596300223838304097833107917859932439684959835012409254451163448005570271136420471991352392466741920416134016070743347365594793412275720561746657144874609356577558800551787615365595193882947661503875507938013734544429834254130153170418282321676590991642211608616544683647083328688064789550128360158821023415440622138632553276624425618645414865649823782623521183214320417955364752705719530868906420010901577342830628967597637471697910079534684259503883713596203278399811879195530157203040316126438140077468834727626214107863455795497887211743234093636642873152908170078736108715279701395902965949905625811552413833316572914467871317370234756615022603158472432882273821111091789050474001942179706511569773348501261804415010714997572540435305252515031534504319990015807830842834236060608720389526918561638221146072634851282904474655663129009388914123540978553606343971354072617723949480209249803220251383418639026860229758428852499359828684747654967765466027551978033913011281454390176557322282297746538930303361359576877347366947283661987612720392243776942888852994817280788939588198168587929547181257792793446692999136875751818962545573362016401780703873990977101643182871504491173561816589998451432818624151038796042988154737547057543600570030848188364912463442052541471280882003804337310469880304048627670864308668825826583530859384049948172951395831984834037653420448382981208880331264877873568162998684934370715746854134273986275023423171734618805937618139839547268690415572801545344777602284820097629342963320301076873168168221603361476084550941754614806554378073548258297463485628731144071556050914706715848855575590232280645363853544253176195814979931631578237239846789188173259905722984220635536286881407974338232638759992454246416118273910930076880889579735972418496369038595631733275883648059286551277870278660416009261348158919266552698465434820591079716691117093973156813285800123936717460575244116670864345204573220273551734009648425472889612601469606466417334918763149821054157974930681027543079496769655182690800342047158764232298029360605040326374690797856881636550466131844256889610459601724148179483487769811105576750302253009840216299046753183786205506277455953289120842230418087507662594495255551366821859014554507081407355754163030342857419493956472111653421753051923985804148556039101654719310130191549727208781830753780046768871016651854500094391125704027027715128771787996564918569361668040497010814400218471195262771501838875128853593213984537119641034501084574165283184649906999225322601715645864655119621994995745633910628303389025723361299814827175560870549163569666683782788637131667969129365401595829830551203765006337365006250885703938700434514628519760792893333569581371947393009101248009400990931353409296960115887923935969682806555517285947446604457928172111015220082633957320038202116091719110378386516735547283811050752950029907599563157630707687671479298971379789703623152393503846202123528099737132209667432131451359693783028890548780899034370752001637395212533481083526649747660093619563294806109379345952282430837712092579464896113407324074645515985053948163509178398519860332265406788114662269927092657231300116380546201455431871827200938710436629225099646716143477720578442074516511641557398434276519741207411840582017681189191321816399148644152382230401507489398145310790551269564949567288912757374383405728334339144681480923619621071469123683782746769759537999085323933819946030409631411503880992783595894450070142258996075181060676252873597582624426267714859221592330387000544740976418084692345124007944972979761847778205433941535282042544636481394943983203962127162864133415663954617839735000866619834916559141511555492524175550788330069938075228720067136659735325689137981913259789221118413874738892344283401777201188178612546065594071726584846014674770911299338262621411871839175881055951520014528148774913993777402723905387564986332295691640100851860933798037834532300869044475997893136217519764921266991343623125584809323595653637310953255074391447416775752148613333674283743233290548764902695328119858993494826866532352816649661569241804426296302225042382835309641336115046090281241392239938613382354103147401639492553095853005263422647593891914366092359470944826374401472357462379411543627476434909758808177154257586719014774228994635381258002711919209851936400512285043596486157666513282748132171477773585960158520692525065233361156960243490678121301821940275296754165685514484725796092488717700969583046183036777973019969831691767016380569220451518774382397516798362672788934102922163987111196864927728101360981483987456818917518343780712456334690514874126335884077547760308320565164495119698648961239459558900879415629126231860366059846484714429071015784216271110219360276955317909198232830621145742040368085003359996432539009386936611962722786697718028072430508528774995758695343601099357375550703559934129102376352545497662964443466203381064071419990460614287554186604456613712549501046555205374909923181073981573688830915999159134907002587060969645301234864410347037206851135643147365936254744442672806876141409925265071590341439934938604268151613177421800129103879693326325138250116794352175828618369053993851254939792603806679018594156544505261911322701016455367513331460124780382278494897732273886234815674051084139745387553964954423139455696202782351033906098411014129898929804782482342998369330918779333659083667025556096796089802998470015876676842365415721202179235811085509996047498550282441233202299484527432309108824022170407850815183672039229601618896917458848564799428535835220666643180647404931761147630595362358808034957938899601986261837074882376708805186899896798090294172437264399477524998990479380498934100579807278598893856336443892412481156900881026649943017544378128528849548958039553239197609469007765962665211034040399712804653471938620392257190462226610157633770721473935637080957115217736442812294759258635335775092248625458311511413080749316557530598456333769677853902548983525556149943788860040887542824493589881389362866998534615898754223237051024142408364075492946987806785444060654863673398326501209539548300817399805888947716673040810298998137476839703665795265511073976694263775178901699486102631018688460274679138853668304840432681341343421150926584359927459902341952624660412528939054239117009254604730933848128805251073792333298260082040322357104224231683699896335530019939849357079038265138593185594232246661086261801706575826916184180168427031321287124515666678808213458103327037212520848683566725504342561816972031237472398125420742370821350317817891774640234751835811218636278416176609041764887947792192639449985453604033563738965653555555169748949395335401889387163966029875479002358286818469581172632302377991815927035387167686562984528274913946689800923411001785589262349904162913404596419713561434665129407097574454232416818618538136992034752855120368991980298248830852347131307719150694854699017400296820698181252928467975183242122249517773721587109793434058312848895926250807202540016609694934806354665037962801815116419997320660494570714041031235266637307230165993331042990836969112573884972083935556218312145214152146760659446866677017257367864736913024305410992436879967910948973986923871548428138283430135203741895030233584187857840097488873929673481865303429089594110141622964434976901222415636408192522184690441468400787016805980654578389790072371733588585615880240626300341505555919966142509718213908389330235323803327513258186705137350799034690843588206685294882784186632642577555040988218815681683365967314718814759116563860632108682219194448082921704790114224455625631748331323840092974864102749491546746851964778981342095052385110525195763468626353159157820083065242038137477789780110378752206718601636595672400435170812978583635843393633555430492772258107017173287566324175593463395247691140472372607030784341274181241025528412768999923785631458392030346943676264046675807529088477509511921299683643914246553140185579894410520883416606659953842926871929426506159599475382954987113994268599396682086089115578737951549961239655456740979968788983816719224062878227264923589768489560619948898249593843235078289899426522576720939148821704753302468332295390258778426202083049091536711582904918701022684935558816948673688284606756993772879982546562839318228098285392023839200998657946828563114628429142137857790057658548785294200194480094332690135433008590294613245781846826582475858697374550656052866260830962616845150630752719324873038865293495137007789338070849599329091309024053247819721049346670926701936314316187489138110117766002995214700767638535703028305359164611113016899419762360729143785896665806732468695618953092539548950144816338017329725310496665274655999866587836925566395945547461602415130792191148047688938907832503109016044931928878834252222566293368350038822799562782596205838299498895447144600861734595937171204343909233651251599643282819168073866325747972694956592641031605591509183488864698330200874387594171601036344380336144306624382242096772224143267342632042556647968602422087152881296030718199790940146554401767476540593896958386738576159241557119796943263736613937496132924608885951287446995558671818119994605706210841295982316520929196039764794992333889897614044732426477674755916586607840159634585390174996237702227136520397242162964915245899227489025426082363417243044163850843802152969484037399209754657147293354252756702520877324761641846751074923754583838920923328516328271317051330955685485903374487078800079849703430138609929775924590223543187139068732527025724757268492078398607250785163332815424056789826380836633380696289215429734128122410157533725370969504439546285445170684508492080395510724937163504579459327629236851737752416523468903345442611908410821509213012348950600022275847660630873370167669466505955300083341488312248482481420977883578414955890109346036000623353104950848808105680714495503158974253834791203594300769368721764678295018894449663876904985306036152747208137809357144778924997850013605664165465175208639578643391451350486553779503436975720256050869405459730816104398059627933464671176554813948035465909875684105926200047314654161613069251318169975028441033418811624773785464734982981935507661846746006062504545488636723466178581267335507286838750950144233996315925243754038659653005832645544277008779670371145802112999817821417699033342094885829407142807605857409570646464266644679221101882286803803515046769240689875214254260630188909417188649693627544025790721979113197074059539532291920267988215999007203270711070627865809325865222280485789372442530840063680833550174377734054514590339897983208939135180389727516079981450114934192805028874618026264301501795154558840614554241330180162309283980216811072082000100314562006274933521348127654682524867130005868827768059097561423978140389153114016636522398850795350738960716782995750459460185833040145272805494123814851388679240761559691528084092008756557417657068693608361206518876477558672661318008737707113913565414261350563177975374419505057827526166601521879939781139018021223310996073009479377946635433838355786130798933727039818433575075930557328690060607833428111307236868613476658164947662864480133618238633753935679810176512354191491290957293504986585505320015759992923715235444674598043321456542322485347715948877519424711723185746430241963168026861406335612721783639635867276623591418885135835009349032178819654283185814462381123192831712990286727391241717926838733578284269033449384833846018075870465699963479065627277475358071681732222310918930798474074785196213927555276693851090518631314657630348418053973294331851996459532311275947731017767789007062951881004479599327874867052298601261872111438469946621308409820987825338243076206658670796243156449110561944176275770145663667330087280803186005496789619991927417246406621892364707526035588679295328852179470520070098673451683103375513361825569295146610095487454897874068719599081582110764979486482935451705215308301995248860332618930629998009332009806157014718441543127027541883286611437276976466672225652637538526714323050451386733889208268272854554481664144108408175406330926939998797814361793480566726753841364854409855458889724727070730137115611927533891699480757872728511245180210593316301661125098772347851701696896463115805753309116399882119648424058110880113843365155543254032096160173677502227072869243054245982110825319132868708892557327994684529321056713088464964679127036953284055603551059547051827099550703188868007325954963834996670657898848614935680852666041547642706865851768820385734730755336240864735898285822013217642806906432608719550058784491558088349587939053394597426343219637445515898831745379414244274529373449280967464038529362311937947228844297815779930986924909351573255616796490848720754341501819714032608573380792992762178403746505583314823871403198440283800509618238352082840200890917561113031081886789293941433672930323224813668490544399358260365374623163125797208780864168914785825429693032601798596314215168213563955423201728842538509368760476116770650028772423803623824099902082218366132317809949606064182650285229716152537247106688625757022992476704026538520209329205871774717514351880418344654934123235813314243202037272104161619518949087339514704887324341994622027113635758223549728664460497314963498276375473170642413251824162982850426694530860321420729937683570222561927017092126649145948169962793598735610191845695283347978941471303126670949696778843390840375591294349242116130524496399427833372203383254456381126836049027321151608793588865540518437617868127882338440653880440487004356962480896494227869080604918955352003267980553958000893789923791597058689099071904051434967597856532766939454250930753690737590576380567185577170821618017186853665018244886494499145373427398384454633137918886548187221605748393754079278240040984427954004502832792714398622797518676391160017711873543979447602159994851900671783557526180873917224815521342667014866264271535706301239005542597379701256574193133818407742380952527011591013666021264115787285781439415810656803125756916097555053242739997887921704002776577679590506420521048944544909567432243469093263213888041825388489819758636030377819980838819110558540967443201415466407125558842331103379800412413993582518139220588299919990958789232618644994245043790155255242920343707818347643991469900080041433940618538575411122048969012129035477153811540967699863273210140690646149799056870314535259239667684374570898924441499700277346873352619477322579368445777799055244029122056377291650477449652830631264837659124244809791207728982746578210826684444417254766609206207230789916198804861263972998618711606154778546458091160323587945391453765442675456457850658590633127185059451013597122468739811747270115673583124775533937192550414093618085399772466440948061118605162587918808542122197511482008795786068688254049216923825276161316311685108451846404736041048320834705470011944063596751240011596221652353040624627798372816603108591325805396422786367879016854119096597908270125065143878930981794021106941798111773833662390851573957317037395733565978418722035993246497739127690367458106561719202279082407513709183521011296959760020049625085966189207519512750788203268226061297540999801775030903179024784278583445996044115758753222218518274850731077324022484977301652703724311799444672537643577882344822150368980740303679615045803387628714663030551327427579786707971032938949199495059626524089816215839438749049147262408752966139898310325453198420886011951641920428449731110633103705660755106975335358749707917841070473580686625603667741200070684223642382970350618234869766906735183856255193444303874053292508183172827341396594971973413647043542755597968761473856962311520626995142279001605642010559937778213573538546765042557319133702984804112824284686764520746841479989697231377457903256632522713385225203255653315352856286431244672562574935087764895759245232875050203247449935145797461141365531480969291319240005827659252248411449024395209544217883697501735013139699362146080933976093554239805755459245461248033639566269247216570050170544826788521326342110071641140679709409536547279642537453207235796927589390182439384676965622510138377606817198311664798608541003661758439605150622606162364849817523959451780580233521346943717284720193522283468433494749275606783162404512444589061610987651218681279111568652260996801320296185791298636224268364603322372458732252766145498312756843401466818930804955636834454785015983481706303426822064430857537131301728856658614997172179558448339228819819546356023459710581893447725435313822430784431483769457268642168463104618088341872743596094903501811327814581736273041107998482984798596676423741587235560257061065936640002520516610147385483110775118836023066521405488194298460225676696522255079949255461988798793416239164361470117100929989605614475597950534071714938500728320903438576638505029532654845773562869018013258988216722006794971242688377285717648862070086738623925065098620668764891053366544039545018502657730428655063327100146941663859033606515111685544845440931483763853375298380859285379593809432431639766216107661183624944058961873057330139201087200945774727989933948137171667513724363413891180807600747400892208734987378205678811141980356946258930795129916378636200396790107804744180431209270980620233399055172999107199317945656382581024436812733132574861367979676357907727793142777700320756077618039660581785393486254671258789026194466238348552782549687280286892391750746255749722248361020925537193719252358581242204491407759507752124754010277466204751669903924089052500206279132586872375653075317479290085728999959152625677215546510840244652017668854604059113253336117675952031906167657339492300519201671412947843137566260614206575142099925314439520148855037654462763985106810187742584385542557576825673723904906267693087266942861498685157497989974737108244940671407618484329708435358922131299742534172548632072358272056116489012036598082602224861565466716356470012829935136918640955518462902308543720700080900815834467838607626976101811456938420847410159433400688595608351917806291454795211716244584097979020762228543010619339395357587354115770813364340589080330380690790215895768941227984290691693201323029719547137726726496647888870475325729144803429771524877380011044861367911897376880998324307527455629214137326359344587170023401630865685355021210855752767700556543287346699365328726132670382559078837231874933160101345571251324537715743767020653620970130122386142493646299076870379496960644727183629312988918465536375835840743263336737860477773983047134787624117909424329776010571652254046727025630296914583884064517675845598771752621341634743329277970916463561050367236440443965041483991767628016291644706702734536042373535476581584678480658211833579779454816934497106167748516091942149636791776274453113055502491732826838849631943262795384057036152453136679103428376274130376581798634240049479561655744057819192290073277023767983642833632967370306733327303291779637828241075541154316126916583777965084533248359621255992048385831417977547910539293709985378996769238896975090246042284084612518695330912232184450304109080903311158636948207967264013616353155499749319184851516836282957629192579805422778222737368317913358670427188810784063556099212586558175499776842972392276515445224161600849325656513799676909848577822235615226426584697936719925098037949549276970722464798130361577131885622268492626931643370563553613252754330188268999128180317686048566996980589998196162711211796629440642357418259672242899474714022781443061389843116397459659606345525125786744121054540351303978912650868939980457494281267524451729402213121575320751375716031086070055150178619521926399389376964493977715476005595275966436597770373481752084599971896666171903001112760152984058592798363038452071143138593957811500761657292224005028081329008424825761400099368165873817829447543338733660752204486941583768056974084935391465649132263623399568149923060378234918694779077291936754757410824818674724636900811250949402780432252656602147657966961512376515896407573281163378240207562535373060988504688065655015227230034021659655032147973618415201543228069177757075450487789572473743522013562886186035040432674598027326491729068321147743790500037273189945852934028436631905364133870786375323327046943608400050802945369412125581671857138716862609654537282642050482990334573733202482920776827563619300604301130713983708433339869406646077300329418548527014113444519530479159145673596485454015162891023797550860332931971471697093183875109816111206959030908174252246187264967965336163748627005707573481961979854656514329751378115776731520227423009242963028801140487894436001123898299731600520528559774831366165008888292146137586220004043790285168839864422228644548600304821907230991857646511882979541469643966153405532534990321924729459832340020728457211658927621781296270344993714332092308488224942809662021454720514561165571221557988911514328149513837141036452653543832706330034238064181232530700912123551113592757263349659865326656207332703367375217786477197681962282667790744279287287074393027438588079954093434082532466724919123281731361470935780859263678956110168147114925845268132718391872364289833003203487524111926973735616112300795536042773636022197402347076774065319246627757798028899315142245638679537333841367179986622635020709667874904387821670138222949130139284973602547652800103298882064158308035604959571239820137353074586485285397983215093350336370014188346926616728540879951182765742880692481380523287561661421464080122908916285577134723603407999136428878325630406737574611443367781874026221037945538907317004118418963761500920510469610651206037046260523039365273899440644573307284721633839451523069116796598040167328119125646861864910188718969548900142706295894609022832610098088326687095652877821403239747096520205801600341150170384216441931089170928990133569935510561542840397162647075697333965243109133661802194282263036594083770516946724379021377782973971316621996030123835830472413935116038156089243566901109264570575130826169636004245243426766861841214683990374045025867516074497642130490883634841817454500588491181617606075762106607407884864643150584352868378440363744273114990024545912909890280150717916377844159437983688134566418875050329201086272006810000606811598944624317385839050193931883915701394411878456865685153893691069261010931341058635970811691493935516001313304604326290229888608576259073935139128694630477541313471174130928215194133363941476924956904373104430855233490867706201370264851824941982571536766270146136225231199626630727240800978838489861675746004104104585996733785101946603359526383601699692294367434805380376685601185433122503711718624479679580620211508112814368279056871383929302440972614600891376490019382740809664569112527717726287719103537151849576037936769329853913844913042354087965767842499072482665684071600213240222699305984236022609816588243207663388881685889314390870922932401972756033180221292471323382934302185926358833430369304695297227929218724915533593477441090325547683924998439602106064054316212878597995749068753507448584544430711404597184157292879462333962750068868350416305147535513681399706131609247922131446654210605961237535614699215992550902708848867772203411819336742206556435285373392080790031969426733956513217395355864484445024687327893782470760893771676431367373586976133071804386322718372664225639494716439592485865409106455868223724131435474379411955178285404173532734761568052929776752800138168195883154888230509792422778426345599916661895259041283823149624956648706800462029131795707845841181977727453025354790073551353030311893822183156841038300940033547987391955353068258468969500958602062087865630767173225916015859588341537860936098151643414617360526515338158684346649543711978897991168952925646196625530454409988852389737148098666842666194059818887898472907035541537197001167086077029036237728559865268524160342203821753285391277789670973956252791360762174065261724540713077702458456132932943127815079015717855559803111919725987874520538815145526083156674157661705384580639428511487317462175758593126775938469140808851395614399994081406959296112521816630763171289012740906548176239824200653737726305750335881668871336803370601574068404673236115457873512627048463183792051479640154554337721521464635765506027766767722415073318742401527999264872130916010133315983915208325754652686211586513003961772139253591317090575948880780529932709050551523967515877640433235691406778866784599246342994443582493789050735940285974507578041791391360493937112002598077752498947742974863197685003275023036822786991211891101664457249179044961042534706161906698565649122491844007007559667885941194187050044963284325928386619162255191822697166133639492347148696731064256476344829525025366104267997434455424050842032020423240945578935093176074809127144997604965706421180298579681865994968141581052160378506291205368503580032458094254445321682614289256839342214117158873411930055661671882687717727335861454517632175032216079314594291808987107373243017055572042107153885155452292275792191301717972611667251731681347971027911516502566454087162085865889879032722341006526006774954885791196032606356015004154709007300408945925408654328712921777763495003840050981951225097791999945024535198818411996976290764015215873300670640284312544231564781346560365105011949544417002263336603728209344384269252144965494229367967392776208374139496563671265821780507786913091014615494674098853213155400668275601504963346498493228156696059942834633116015491158839991876350928041937229155852612311281479676444523378355724595037813371246050126410348920552092831561489141782951173656725728456066711104510979480309429381079614556398886912362315640014287340008085034194751074246612016622735961551744146403886168846061338809512664738806279836321467000230435414666093116453287561467949559894904855245565353784218091352700802819337736369778212095103669240731275382538505805899691767606697834125393521927076083343750344907080926770141647447854675297759460970679715305309642735206538904485893264664960433077986388224317234068737829040185041358855024648619427882478402274910534783979248739667104677814415464148270371576037611414268324831485927600326121256978406797750555752356998322744464834047249124188190347674112538081201084850094321321299901075141203756770640685490719043766518447802197552252728939347012649142217026318201273736534231014510762895549740095379317273593691207898700100449922283307779138314255146896088763072744621705697162935274960430450673830030486001435793710469435841113434480459853631381677677468094569828465843106957098819773889322070182608508235475896170130519180021070217248874603381925892329180679320450938255405494540674464147116400177310427025275438855810356835103584472242158513761857773242668266604505532722939640087846922132651410770608745456651986499189053678054781428783127355187371709244765107378210386649396224465853965902842493566326746940578798609557256655335307389206516261815382883380426052403862762096809994238913185408898358867096790163475830847072502268118522472787043480535949327871181824516033463649688878622275216430456710409883839123188775450012073503183135866421135896780185993883012619201875357637530820175254781356876645457226480770068864441132174038902346462749675207314032227678256619274272698646580280289988888835551186823277284743897341451454626443702004365940149193853783190090170843682784206149808377969895808084294266812010659354165437062233903851650084890161700834075741539160782314775788362365713076746881551264607042478543000492058190975590647647803724532855859345151830393417321394038841771629395454744989742768872365672250805403920271713255437434331911883005462024715087781056550538227299044603113893318551873949011325067264645198913370623825880534065669084977471143082665730362894027251732276477462532846399878770755648875091908122528885464109347599222194444421294761932861794189442230527404710580578341239157899767774899073867848606102545515983311917993652236504623255735051862599551976011631928352670872350283567511679732453962766641877119660289705726013812147932099283404453297946071190426045626284770166979991185264938325943600127267224621031567105638541504237244321617562528217606149452988596389229547329677898730544122779910485725463732451873050732111687766479569259451221210953637638970672081792800714282542796448679351968500195036353916621667319781019212090492949723535055190713560659199041708532995340246401278362759930925680044281585310040809667161348066906282484675518242619572323950419170497512867499544217076092504761406555325425732480112379563834611682189815293161519897989285808827373711433888471835458572554143649755305142536365535637381950330617748771458333326806927095476860463806982612015966805783912927841405280340652425305282981735526594619364939143004360710272413588778898240340767104037157666525507668061123388856319621406320938676741958853195698588348792102972698450920758734797342823620130737307743536566620118029430824494099433037222544200507776548116525411756170873578422918781758157441920001854927855983554418001629763518185290169607767698369511295797066699759693534151920271441444714772151681224484016284223302360708732339009736186588242852438874936629471938739102561846643614618186933453936449482182336679522716503992153474380953571536880002616908923188163678433735433294522415634218503458451397371356917527245072763008954138149238465926645201297892021830101026008160226207118502209806732637338644309796894972844220560501260326984381397303253518837970650498496146555088292019063240224757441389552284051769775046634797381892245083468625329676734212555101268142948851541021032862673709149774452121544331165271830948120424204012952375933362544051445989468612533499530043382364096180196982542661560488815735948578472741108184813608566760157794819359094763825698741137076595142544348008717726366123445236723758814349133471366680871536648445198565166860162918420797614084969200567363990209868211016150259413997673449830926318039099383884174118789459808488345180225414510312048435087286670138264863223643004978636395200887901122126443398596178029895350802625881074658605472797543194834699689084076445960661915134223617813265007031426630961421634283301517442478742004157320410727359710788815929072821955876030803838003981812856345576702218546631439366997245494919192504820174133091177389702855865872480858089576027786654639477751443028216364725948593467708607095052655048538558993166415450917548630614557919962189692245248039907034707215218563738575847482423316380107367173660910020676934779399012857737916802286839458549363127333437948724562496130390195038382542117112588585206023817577842988115357864958987979551867388487592688649222925451908708317131849357604244872337075347198339521667764013146896258177353682167487797588230401789264658794640920170612499756148656419547021334335119085160396370205751808366214781757583121106253512560412314345926132857537520732163391883468830740405246837784375731284511743264128987202293392323899933064165846093233237662025631940080250424578434072518355034526097667952929243761124235638012372126384745406720359420680279072006630638665704157916384624412069287797028251067085677181137471979455708057814138869828275402007554816845464705893476251418462559724731930633759224850702121067122528027429260005109916893539109695166591288060634218567706199580963839460567816579677231109640362244557024615465250205089108527144019267156426705612565758363175652627867618809589070766509190976212280979500746653872719799719633587224911759847430929091021716113605259366553941856868350807827238585219006370401899743466731544038589823549309702185272688461894366023173201539793183675293394475814702534894235557340386441100551566716190258582400498244585626609431036945155513182865947648484666029845847133329901865078393353949566352487535836462623832767389449095062365263541159562226474978844941726718421030232228740158707458013755848663773223265741237565244608761545674704472812054760662164798344487746567450114879640151834690343576313473382511138323931047933385035607301007148737060268674157166319499635902434379562131658999989401990808768427161818319914077866379478547495128411789744260718105010520374503514611986430146648444451978690775436784596656434412299640034293106149711361532610832147666966999179791220978470520622554996393313378678238662759673313964085240576121178333396527510961912865478185521967865111755801435397218325001698166790961327475385742809728482226778244928930643028441505725392425900363544137084027708382090082941034371719036024194208220717595279012932998315065254194938595170965891683563314711481787324767584271133397462947075866300719794583324601325898867062316928416713824639944668130322708275222586726945231526817762113824430474385136199505236847546265710725815376109400707529154854678632876409941856330370804075299421190234042922342253545936578404668288574995229501167380323124203523631290378324492703725187173806865794171345091800852448189813353323346789091234793737434561732946598392751895478414714221037843733645803373092260141053793301051261399628889892247975847464929830788380677083718292897521785623688936467810757866584265655847641044073459435867279871305338800578493594059482993228117566382039331971440804985342197789227724657037214312317036906130606785222964980242716662815314259081936117884885252917596537390257850573753317780456350862975696796921376569286575025791322241941198065864538662355729985569620723805632079781193598669681900558343954796826586742132103972555920834730016747907841002043769170502886721510087905953047821244250678781137747622152307262145685406928754347847955598392016730686217782536732827341174666791447347930796190148094829081358464903933193773153078475768920870979933287782988124157584172354583418663239378385721557606849150174635366158689367381736064667262810115781605271201116284100833512267885902783944596420649361236990086363866442102801514501937098391571648331128698355908483725947718446902682482543693306247088487882341836204206492592252577530578241228314051880303211487069188589613313992206089149188495245365877172966114609304925391824494425340223652212493962688191512786205472727362221178081308836334755835685541975871776831561494367730491520807826726478389577821147022417783998769694718508786682961555595481870969340689949421700981744953481476146893807433833790256557653580661833085892017161019518928751073485953344031449860762687602006662194576621107542333736703437465958897516433915660512197025997456568988996387274484747755973547101960767962385582652951097481063829935463752137223237436398988985348961625709573234937148077060588145380113273007761922952661516186996156793260362989994116238144930633726499647558051475530285456876654332067487121075817310862087801389610738437911649027232423805775083149815946764930419688118085062258758365222658501918240048538103599967424021945150542900016102226454640830009124837655780645542505078193709321381367334080250918433269832754731964049687307838376254514461544280856448724482107973464077391489041311351293609241475706815526451366692255486814998668783055586758712978854231114573313909997753732423185458837218616213412285465020761407514444688756499086261107489003770696781200329604633190625822196185048218414714825441744347453752172640834039507938068075234652222587621274088606098869102616901249872681277873094621334290267335712775964931125411226000568790124424844204738413099532916660088158139357368477657436180997662345946050063900509826211151151705189186998426054388190079055516191813392921198079070901183641204072259930097403010048120930509858879885440674782294171927010357923952022788679768165889393090286135446377272716179181191348349140257010435573736038624215464844287767326915345212912542017726904161904290394275839270303879904696888727045577531836074366704134122996263166060799240025060783456213712325803915522778297563200838207422734320667744588987690724198631369275597558928385973093654485325751600283336844630506621614320644377362794085334536244024300043303614508370036599132234020665606562936377328779969843207513649312951688018028275291670070125161965086439747461383950428649569299079847887042378745205958543070649798194715504759551679227332506076284493070552457932796063583884956609885272656233196648390891575048298636800997040686735359421919026982709080012551745115975555275721377980817999338569557894236623418043874993252336202506737214387806048112779419810709679762767668974312367398079884824118949610953211823120745437562042484301884337997511498908071206389289746789575759648063276583386159806335572904518227639315325597138570322328664558282316629844885173223694845185579005022485952818628809166696758888642620450998009832748826497661641310589340001668878156066085036465084661049678016489674919977867211159977182049961155574757618121910971450416896726866576293727016649688584359250262388638374135655542309214146093688685900219513526416808626534007638713413401027750982447255680911310002610496578211206671907840838617391409351179549518099268011823288015736772729572565019507444544646278956526821181670743362375173108083216324463141364097341159499721129466353965495082920064709850384098109342922495107365499188152884707279469651146086664003521311212108848389747888052278014093422924083402666168238134135444742676703162874194783534610693070612328868435018986782610958233567277361722994803807690799283411919073321561763436835636461282105789485278596265618717947807283494684478784009383762981612053983289728101414539480511205524549732393129090047269250876040999930036995108282946005750493659401964843911640499214259441375160780270301380779464194135584061475135261026178487757175534828376954304063903803421424935196143951678274324923604001411527990197848871292631968605360272290536515626777054594332989131651231473607248839735075903368326733540728129907193608140619709870129459219006245456488236224884572776573840559434813325958895433961524008661155129380751888955479096793855139218915552671634289292465612768373064852453576096505895163032163227051228225220461071378251469015480612465562663128001231379378266697426798749533649614439079931176106263691038032352463136115718629413023444667875860246567842535562158656501491208121799260776467892761346714643965354098869301746368286579940778004561490529619628894388461330225189136331168536970241281747480609255437564733613326987174099094933561550995179016559165086482050227204928915408523033161393695812581622037630225223094607344614122962509480609948228990837110241851602372910602336259941389488806976913646105033400611534280821061735281139922724659685649450625638947740431061461282026512959096110204967811147496781787852017463429061320583799670654827463422958629482795246395462975416098613955324020554071830072170570649532634674940122731869437689042688650354561217367987073415087542371607569350913209508887231675655075907658730966859108330250976859705172584430257297783829223620755673281993088869297341385519838662867987644185385741872234206231199335491157617097251757458071997988452226612362304357865726727818866025336341150106823156767268248994537550992218394651965214531696193139588964767010849444289619819035055553701917370724159641690421289088789375551515624648597894879758508335699548613942708528273575299870383677932305773860623796750674073923826996809400969927184229166085965022980712992473333856089098436681534231180140390851134852586783631142187089976924999605088709155198220352210094910156352530746734779548994964082026209110243808785379784047749237054892900072718570500005185512733648158177415606443095177409393783189209198771000073573962052848185872496353238768768848494053915690963333276248852966202583683698558280943753045751083860153852781106260429504552362523573303483496958433214150823741739370885359829514741145622348630241985014101162302326389117593649712154157444741059333997885246607447453958356507060323520885771821757687507289017138272771131867304268945006874104081966597993065388211002968898789540000312449418167533673391931819034586410167976771382517308942087711602830451401093337636116173040320847128596654198145779628681299641912051564279212690383821785557367760617143999445401749824374491430765242493113280694753892768235966907984839123046253414700255728876155447877866643009786897202762673624479197185181860345468964166776074339994028298879093767505355716578828462483109146114532441439948581566402438311594861990953507053676774315587836211511725301070480878080375273895132300229761489863092334652512683217637103454497461069473727170297568526730321302582935093960526731544064571713332673206861487980764099428184581330856673567577088972023574513029999183998768057678264136785336808009216018420186035623990169769015831393939532536801108644184489199881221137024499236308426480590286302816669746433997364587943517988798718716151791723830976245546761894795916770605721603542793413486228871711088850110304349598823088693844357825070238682285258412587431994375644887950615517458202064910958129508961772299073037897858683580505008870479831622217340714702416428345707157123099223126007671126353286886386783195050195635959089722902536949093011186024628195471377090910737833480180166496170116388329762351996217751958886868487594254985818181504761659420228398859196860096378498960897688500664614058267123625889085230292643272113526689612505516057891082102717432529923766801801920098999160627871970705285199354112626944568825951961361435491106631110978373695494926881208920416340171518295791124937137669749537334921404372776391756234538181919278381436906683433995473393373237526443334241550675411195249990898299993000980339381368839874441760124767261997607313842036952285059418386985703048780265290545093719900547094492919618933742941340100107624149132500750944993577522783156325564279462681941189316765468453306452773263085002652637715218786978793173858854999969747498645433887706843864577629847773329138844110527790959928433701633658562225075356208292108571116443668880858399544015343322676990609080614372600657946957070610019888121240974435887015558419123214163523924985213631345985062833351386315946867881025062081775199261062666977458021233615352811640130913687145275015844686339045697121290504474888613288728022038372782948646932443726813610375733045906483333285371595656199742452768336427665877647201788839865742618395999948795531081536227343529825327580867305254900056943975186069022099430987037932788214693476749284589320705630691111142643987587352242068420493824154406599654471911994283358822155707946518528362811482350829298926555002460347251063919164082670339342192984478519013572113681524499353823791885119143955364915971026829835977550399981928294210752388820367237363639163844941546150296289339601219878515459283613993775844886008538303850705692290562032254869608423512015795396212315203281372362886909233742613320432149197515715783638804059728554433988894318326256381024788401966444767382067598843860250011238061762103630710020867274055469578502164058179318757640283565046365239917177595491208830691399932009925378489671467856349432582573418883808497397396499155579369224226197445171101271648677242668330340749181146604570869476907653091021676268202391827295907525758501355598888229085612530127888022395820427625913285113885149657178415496300710914476003701124285757942088865129268049305174844028045310001399033518373016817477413279410710227602844799606113671802091290841678296493763136030761864784920365948265265046552270428909254258012986892527240605432135534082846714626425338537556294523364717469234809586932102912567286922032287358828806507803980522234114074592421506363617116845030789059102649740680029801908695959483416376742518517902556248232912459103959353945799184988803597405775562998724022447286331386210096668436272246995908953507211849923398483596027680766737967897983214657923700377972994401531039001740949421468927673121385578196547777625263936191244412382690795342402567585381454959685337090786640567816589278712010733884147352156719281911904111340062577880976221369563337542641392688084745901042858840390873034862310949559368490875371694253602747283503628541266811533956514111384681125246238584860505835887761772186163076943271774605242012731632611924252798587637565173172312374199729047135522495189564595856782888017481503064525973222254012523341859063633039547992125885493501978067902375607288644304113076946904677674867461964686492593104807606823465644563955984213456786541417621607100100265390371808237137099436504264059185568405570577869199385851251678326090395559499393037504755495960267539978039904226415093957586288834281956473894542319175458066978341519411608447174168367145796519758256775605816753532029027675675316417843863973859766653616359404402198373423370439580913948495987818828146000452820904789160007831247412383611061033323757723448876480974970092298372290112086787936228317354821603435409051010463643975895358669883419310264641063951681095114360338664520583654447408644602143355185784680970917874231678216713434618681049011632613662024317478900815628903399655800474989339117937722369569622428618913579500473182326884093521353740394135523130860437383652688702925280735492789647489267891384811882515816136922803324614142015736675323568401689424547495389839582338771088629409277151120712408441853846949394411227610258698935216530369523358021176929128162639808574156241993066063261296629841471209143106316817879816657695933308996782523287532900635663134578624203079266824266422148467817542149970419123404662615726070514426657638028136669604637183297666570355366227907066869516189270806293042729597441437810249286180107332925162048065655080249724954343024194749827661610798808765647482625576139145007206876511852983616298531202776210119954320982097640134831671901544016006097395607722829301223295203604021072898992753748718063059418667104514439019891446897958625285297513065069593978499201973214100628364567778525781704930201686180086371837398374784727889910564398322578422283637398302673145415716671798188106842983470596768994318869779629593616270134100607962543625951145365743903509763760179131023722787198085180682683462823350854997337080408565856623430560417829324103452517000641858239964062281116204480244711278516478334850743432092335624140496653219693350961513141006375872246472745963732966694550144872295830360943733128516870187568145704806555486716697478945462857800265350889186851657688403809169633571740368986965688558516267725813126120687984410966431182714302282079938514480443087074193660079169480895469502854145365803710857940091926669269231204551969439106050909419542899209878567281587445392439991700209866890257942103584187024840406632537870556314044785918080725980195232837952476516981822414567867841550402406117418301140401637559280884099152113903976779466754197757375186179309171508197779868832882773351184935730339153929118256794023671001953899067393631930428833919427541661254358947092832630862625678578688334408782702937317230496216647793633581750691047092728432253960949309791954183860626800718120876059640547856457575671985386867953584920146248230742832550299876118957101702728109625620520106812645084455698433457180496105373430327013335690410108344752367592314120748240274201157636024240096390327289558246984430914591280126519823781117390059697566250194213054539706783861743530479650877915649446683032156471256600973272294144205886496455277050054233312564533137100869237211320251490940721932526608529418599870116470241435475351157735608643309851511115958675970022841633595531844016585639444344106827179547911405041546359703407421065225429584099447949721991493774541655489270235246404744859444820477154860962387824446748688054563764262134675481578939249980991779649663263498702556211181657065945674352624226830308082609175210130059205870147488142910253870069168868569692653537566422086227846609775703668461455046044753914270716321405506575508869422517281809704067988331873867269493656110340286153358734167342238775271779119111259990457173221763327996005154040544580980955215362040539423894287696949827468820778312257375081332266572920086815215952690548543491880677165859942185305485523913601527135475963827779896492441032811511062707034781130106010904365548408218175521748588660623479691672539399415921442411201370305524713041032894320263430725189048920312622042718392058264540348832936344945515175573778468978528667731702048393461446307389012914944652717972171785594919139315665621440774232687338845873937116215174101129112722227586495268877330023814912656622744429992471242013642119930085523598262996763093145415079275924803820638567504346114812948883701831636132067679168997380067797266316110777280864110795312783944913839006152580935029230173739158196355424983652396859909719407538171469695383474954414618545868465124799371134609261430373922185603615449013498201310859096348047740971404801279454296030846969352162416228350353975332198592054331662113533926444392245568220372830879500093557656225929748644472192358149525110082398155067404222017039386882162410669046968645601979035885796269078298431833079964329756229032386061025419328950564206479946094214056986062266811871428005672735449058169095886051103699847101270019003530309888513062084858411447310833110820503192421647441549859513720279109145573811610701033499877603186036048284627235905615680773159549206133376796708700501336927574997562021953516642935593162244781213316067903585880617379008447963281962713276766807792118494891400036559648477478410069646102325532914424559223248825483712068591915421536635139094908220443382688118513787842711960225298454720162773274173445596631160519613576959124374532919976290921003833494487548481883139004003901925551878472170560333509035876038032386772871187155003491974384326402868403521723933928232658877158963424549916087914476846459837247820383245091722672856164855203763286706866269590755060742763340204946677301411681111867939072335497486115455588129378344795675625091793933198829355386631802203276055013947592831977797339345259983707830771370317514204097273671087990683551114600965846028562414990058232350729578352368646245660638984211788762594110230666625038437972218099362502450059764379262057567110735774119041145128944923801003232476509458664489013431604937262741096090118753982597822400037937241674530097272296503298745184737306308084649457925462451428197763607066173285895481913370033568318348986666276507368910666303581354859464808440026116625974128872009306255840012445309253487034499355843446796866153102940032032607712176163095793350773447627447153640274231077973200178610820074279443153240127735383555585794539048882503941852062966890858726306536204864392910038784676893242403674742823165996689004242343055654309738391022292432072668755465787419787054468702762577030869780201369681026306347572160813027832511280393382299285544454046489105458291692455665287460337750040790600236573273735660772055510179809563102599968462595236611575284402885736623896175111072452450533289627610223372056832971088569450592142905830298527388760523321999402579102776551488551631445998261858844251527972719077035674706088859546341138458593918736986608953514998690037812758221735185839223272582153646179803122302501032582675889827637660984434505027591970565138931753872302787763024290461238712252390873164418257190718920697140090892082119458868131320675732979080637632289158671357468152519683065397217939186630855559618441458634592621925612861698286608043604619876525518414976026544902923755470778949926879083048048654902648497348769100306073548636608177342502999277629404841648104077272140798974364466067850933739514957390863984793817007963759362252649881339137154731041340235717810497993162085975748863131422022950579417932356820327103716369534985065991806554604852095802991408339155436604020106516383742209436252496584959999643086865395389828060031688506015870486189125603648613556122710888241838319202017265703765423204503577903957649567782173751545170282818369995012867418166403068044716188016680465242249851140134128270025408781197085389880047122311344998646207951456068765120988835814728445026664082831764916860178651663127694502727254972701309435467850162205103049285600378332590767230014891103351781632994585348359067660031028909105042454144607410818596062845468614577383596976945253769367908734028772716598814698873561061710959186362020588224393295490305050797683817292825373448635389512460311071546174094929351059252659686150471669017225031551483584129465153477444898504094838218420836487725719109221739768803320056197469361778649095534067635409947397559003024104264110519559864128716111744459880173152026767669460548864560830651304955180073487764883696992070284764089645494307810028359686372020107623807070695790299626413511885196823458603557764430604809736161235396075248857169057757342519812331384227841690757487670140007293378690248712138264767904802178279877123240302492674092187700829095378979791557476473357296546241577341029020568528719846786641649557965165635157206586181730539825517360484874946392898475909533074502483684726290383684290116095606005410939378667325719996642898986395701502874040701544062256482418921811324151843718545359539468454290274063637316164617316581554157520839723443093112079975415645192564389919605993925842384328942372191543852505719792402672700942274850507794965537685734435845339673331446964587390542657715154930114961079720437649752896265998810386033286011274307760283435758043557526845976487361336125123375539582630819639611993022781540831423539665127986063201238338580850230934885113151700479168328775165634040300911265573670296171988611420831512095190064171498010123031721756546704986195660367534463586104785850901985290358790067008867106558205845727101168835566061130593936527778234912189616004753231524056439974785422137838690146417029398838453897252456531308746225096081828673844061763242632111178846069485685541055126129325376166480613730131592153367503478647963104386226674806960766218413598216296727132797150813395674135436483778997109903580232962728739522740944316622428911385775488671960725768047382456343002263708363912884610268510606177267927027687468390219736319526288317842051555230693516226889353228050359902635096073934929181672201910494006158732871313225336309961649380599426910898427509784543996525871501856414436463479915629249221171005134395386822708700628167070679844582305806679066124437584475195144961164691997862432232283343301554230998651418359271026657105697682176486955527778201798379456083445284292776950883053291777496574086206392776180411137948276849583466232209866847794928745918310352062617203001898281792186016837713882501898293566780991364673619266458237889616544242188038456596296768021368561427395379280879201278050898912735424823152921439804484702902510891694981641207734211836794395484250664231089427001891927447147208885744446095639610529455105822294722624145848250190793589123256573006385689573937392098060943032823264351532361281116248913019693136734728215429130270477357990757581258787513638519970898339964468828635983780879474862347054740262268853181278640533563436365761908345789942974276660443330255386698830769865778910806500074698422800099402726369439047057353612308227405019220307590995104924682067853557987433848214656549614265158991403316618561956078132148834152845596922681559348985880707860866350297902423778362196590598906247346409647526687363067693745557465541766662393563552499508809365450427200483580766864882205069660617477106208932520774766533254831727179952221940521049561548113141587894446232965768155105062330505778886256411056749171154833676665322922805278838019648501888771522037281700560380503260167038120852985411504466000590599407158882689038265009794065630367300189980965039575045615837897727190245588419638178163350847129192372306456375283821887914911030732402851552165856964465520134242566098306201727255019042250938012077003672331626979917004750906150682582442313944795545369711415244411907131225974615836564060072524680354570767693850879627761190435886726598383319639656240068634123505273603101855749974745813932560532837488928167183107481758511609105582407928369917092210709472405253391304193399621187031291171797381617286476216568723369577461175334768966864040956377807390532456150284682031921714359506052142713094769835955362810138033314165191762264771027873222518685008955539057841780444989492355485058767115722830675299975798904043025351548217173046142470440984474273715358656751901684673685392604055712743514207476961092968238767116037695496412651088770239031423987281809828067628070432560699828914974617641008205475312303176583055588136711577840098871077473594943416297801192252010026539907417230409442753065554536146555065357757210628780824790080120650371153198162416044415169058879045645847021073953738806815934348579095125262285162205175379282253874567177435032480888772065997029857513173755984627343768976333564632416127881353610332236415727906783576615644980826158920942919775582109636930878155097348591927918479058015717013535502103424713898348264034693976582177515508773353136641558372507683010493729805922937220611093125034802156100415692865312005748326452248716134936430564586394136663704598781059326244138960132509802468816708618572453410407267041751526479358250870540753744118923405848487922747315331385671900093922597411449741119047588334249322117318989475746596508936004656715461357101085263740774196324642745335703184044332020017276134533878798498319841147047544915049668692729392603195672687221497856108780744346019275083582522883886495704199316922749729299901887068346241526580766778014411027024334037261056970478217349308899938137405708026855290625209862697855198711369374046268362758241219619989246249159985480234694304523988432051827405116791106729081938451731676597278980405923859292392334461434880285374911346621146369764459551640435628367800147072360384616359887132899628133926324134279639280827259346770041892739935953483625234779234423038153193902444038076660530906973751330311888615168728505489868849502341492853378942033681655327292974853268229627689579831090669963713606615215919033721113637938892006129540036175364208408868960630930363331196429778081163587650083136542719044855706343241941906634920910061429030001261414032136031254039913820624731723372592391184281895554821505825682239985844043945583768186516646952100353787530835157182479865306917080624051089417900238297514056350327972448197852125687066428544917970159768357898567778717358988559583619711888568933839489455524511284039388588156191769727007322977267293517570055942162446770573932606636577289414330358302087497133790001759506579547997425374869438384766070798470719626190713636920150780198673490589488776038377223992573864404298629206052818848193560552701231691164953146147861171861878657998588353876323726243526860043193543943263614733783894733252267658910102571366030266702127689913309200719917950558589856242326771110818983513890108603033262876549012093002914070473111855328665131869006943747426088060242649676683739917590055270163253326963366991144222389242449577135342488680106964757360523089867318121360036202708667592254161458505131640287477470633389908820143233073409620876838056040136809126189390844744670887389861308675462688172290335665153830322008376697495788178186635994642319357628185297287905770099589404819489375592237225017973592213913382011578433158792152633225216284645038754216997529873327130656885496574562357257968505666885693708752214246586937663981717798219984291058088958554078987376224698860380123545936688132998228723218241175773536658384434115190556539690528574612195806977974274389541451804135668208783186216197674584417079619534008633061897420696522298063302887999462466311199339343178672908444940985001169463610555750632223322614100449632315382871595657956109620917512077057845438495254063318659851432491659539578553897010086334152274941062663351981558235159164811058604965146445431029846955687126326099036806933668049561856165548132144450076007773006171355343439804270696518739047543083973360610942540559613265203906377407782684132203579545578126825152292892754524234918544564914319166032004327463512755525221534764309087641710930692769664044622415659708857301329915821916770958268839488899174310034408381416577755712232285384859501747702467233776348305788921674501008348660892570596938267686066188200442102788620955921648809514018934996502294200664457947520522848317506894334409937159588734412801647258555030503070674211194676569602793060371015926010850649553692084442610074631297988089082224800674871063093907945510781386168068594912361369900585101945625631695872296686787168431570929491390802779587417710349979016614878917712209187455905740826365223191343544082833992577153425237422859358696234452220266995639392651272681726039036734994698691385912630023170118892573114139115017835735720237175431524630872747620300693344723712719302120908223602469705598612681825216230382095499118540505066992519845857020719058078639783688835969479946436645789279552520104467813105435807880299782888577246854512849271842601510105583142960445914188083996190942900140422790761117414067641954624112015014475323048394354105637241546220412760946790766210345229152360184127977118505640764170365922892029641422615396725841577263846969943916263501122062799297661672509564990398193141500427165124215028537545484443479434016085736516916578350980328178184397996343614933159642402944426418848217164106666860289945401963581681322563010387818948374286383999242139791569767260941447707976584927097916943789448015296948234910752644281000933331750534422506421303861363500730167755184825083506045748857412364715838811804324381053989562757950213871819026265004081627838042244779454332189501370434628478652652777734427142693591221839398705925597344630218972703418734606025547111289973293688757770296072590524731801855897420458500003764494922919185419689717495827732573216047887974620350119383173626667240339251169406156314695357914389857879076074461397311382382547155715794726919205446929163544619340734023576533575401403768243631275105164780427953137432438756700435050053757174285078371720287810143012542449425638047326068215119098736257321238966729852001506406307005714952556307186119748023427057334060211695571865567720227502201652643471709408257105339227607736534507121848786516467897056600086679676911382259411056475350122284537849086898717202923621899013469521451572773811378521233241214986939844037047371005840516328143997206252342687665775007512822180208049701638498413208843971444674687920363722506760995697133592530180310965045955518209812098454032774871874302336707848608464606246250914338812347755095231670549460798675664362885931544415615063009663388213936725652664772970998739180548046533121105493571455094301272771293733135939150934612928615139130352213019878854940562666155819282353953898126604453737211630669110861171651116549474666114169846280398604085363070090783063972987940104917311132208083864312202343060816958440857711772960344323463125472921867928668058102664643754452927545865643768154482461091471576715568594318699947315052681226273893101692472833911386731595023663272860392464616816278999925597980808737094941038039123061648571362007750393772008758976506447909406375901921485164038443633402406020745172180593666451138651682595966366506827903332939786087943218106033524729403290265274571475260862795278017011009874266312047224229391713270442398507710774784263022628652031265557141132208450075640594708229291448738693397682724232045012490057353059426982487477999503610277366344918217493347816071289410669001959657790705835393711428699674786284165651532433174776429307085583022570348420871069888206505073050787408120138472272018534114514753831169087291083585585398500500399140416267896233044347492222099252430492942121641673459719284333344130489652709019086883126827925730181885940504345231203956610040706043658772023313531644430246479220583808486352017899917315462528160046325037130049697866090786313113128509758598677081834624962767338499240616349248792442157445461405088449144635340683213835172232009059560189909612255210901952495372871030307740445102684697419059307827372054601066425242658404042751314703479657913636812945141296798733732290809024485234566899213388687001544480421132239397288608113106228898396476774684194032916716140447122506212066103776813803327886146295369727229025441204580579674520511035537012210997867796766026622887752215640235213879666465468889646718008951422104317600428659159735693091959125905781222256584490882602433313671570764155776187831904027249500299775630439582735787401758318466118510289811636845184373494957046972341881087670557718217078602024196749598386614910163868964068565704949367926420872200862395056159809293603399486672644427535928479104197974392802557528838294019932428395546048739536109586676001639278537279068929947443646078669020588331660340459120197044620501996503474469096905017322833028012842891250477375196466939084310351705946019860139681606346398928201850984951667211881441116088241562938168087564737599776804848542734329980555302193889773218121784136942051645402631930468794946068037691304719510218366533648495262178283083351293395376137277931651351412470147808503743870721523360210222360418167572965150118203124137454300738301853548642273864147598388995136757556437311840230367763821628429918930341355854831744719313141191402079723070669105473514581014149617043843717796541542865655715746399423763636438329454544760015185932721918719385632979882101523792907343002718970429877227021990018728505380188613039304277891031250674843640978941032865679788152597053494586809649103608265800738295128973751316087246567838407630952384706284138200460391481446015144254961236607393470753827443677831821260119838236636135737943815344316672852709362119623988129739590367056717580524305590504202143125065220694074447528261838125368188921571144626801440668290964270595193984646234675243518095401614746477801678990687288763731510529887798071045058161498199612077565715938345173945281505902525947818738952163548525123108605326028577824860813525696488318521665114727525037024990978531298199052987215861666542135879509306892182805124448655617835770704790781795362531237136664755411063106491133524250335974737440140751452144678158025389641928607498886746872329804878533349623293332344673422400858996047692248520909224260479325819229859043642003874253408910995963158789944515298627281894945320252471620483910287001282787147168219004709527352505186040504979719512638046857392428259464771532077602987700015387335410308749872315145758464344430149290775723058282522137733036065026837451353120828524676079884764445440145092016902093256338924058608944855003702019511372626129813494533564702963511382486311978974003449823891132229020620721271207665573538002964320426896808502547038444531498213369498967000250998968911746393380910914805832535736625289324329880460570825517043248159275477770781435948805187676281877926436911781547501005148617891772894444058524035305162405574269126949452925190740050704268014753641351450568830305126562526905941905925939040344930992106583001776636122398460858476281276593960353694558968456707499400059092467960955301853608640508651704755641157676819370046009311954826871262163748232852872224841661011788957557955195502280403503418719589608736246209563246294431694445604846364830335607400516582927874042746426149346361483501368940482192424498609193665375781483749834406719860617899731018352146476338249641407434005957729073071234441495495080312338238182233362664336331111371131270684482589423291814562985772119408304859852014476646550518743663660767001744926796472027707285121775978261143478237300523736529706031515479863580522882250233095168435874328680389208226463559685194788987782488325989558279629197613494924598928620590225386874772116064044401055471682880309719355877482069562172774623623788248295369745925217593356132981144244352209248498952105013997948052449064285136726313003627352389648345834740000086867545376992523297253585240857922668800153418331784001686624188817847851766200890480368273832730133664452066266055518700516671369911628676922402481900156057949797739495935378898941680387226333511823284939855100390822492444888516134859540182551696018956520186396825017561834875967360463063054261089397318389451151567725956608195635374589698081093745332626823865875482944137355529092593699478720517940419614482108729744624779563273087915593954651810628852741235406152197350746520713206654121618847215606051235221828061189987401321102821622887989693324174520165182345754767733734038927602379577326105465868085575160391064347918939266313929243994972265447058721506712057951513362061702489362760233858023114973628080016499061742195842046805390938213982648943275190977785440777779110696470607338956539842098293543081330713140920875238513276113443685511424027934437360768567479954227016251158242061085378986457040911568413583930223359033617777212689696123601045879658017657270771225713817589902048923331453450308335419205413612009836110133281818473898214598243571414694443845880208226155206465456465918116735053148823409426150144005464174603040909904103979551585232010382375853830536056493169342217319097005018147342063633564814879833650616721446863746524883213873799144232006714810179773187976752497285686640760839201079252835605220664168478775916780196300940968217997857008008845668152189146332221312195456673013128505298003794348573629984239648548980177073466705487659122203947440124286818478841389033802308242622749525145785749240953153354815033979028595278446972131274882813681488347606430685600234405116268055660475942785803027034977024355087843404671183774131417958407557684855421866646476492374742618937499559893105082893120657938436346364935996301764793982082008310041099244272815474365990173989133497076487471199127037024491045626593792948211457595755804345942019529029257730941284699767511854639953928375547100000484224789773056412902901539599447249359498533887865039505728380620458373170958286533875189763371581563039658331818437135728313313008426380941614897019582704732319221553942663345110779547918026431135536449721286156568783230876962318080146538971620330438151086545248677306188750403650185863033540894791062461155315969968771305776644251336516538999971990990061552830448452213760547586870181640465985489155808930806139001453174181789181195994932089908966330053752790832269234819625784247583241135447692287857505588730674196592883926006293741768223328868709976903355342069293132380647081491987939467528761930721572606107493664184858781114270009094978776810560856437920004442181401339105263837444522882216762260989913510218691268429842590272736430732545767110319926047288054644209749201953459137464724760384820783685145720005698249443494623431280915264294914295131472267999139951482061744282243825892458145738313477933591969529167798556590352637948634025035328200072996205841148707931952314426580324328104866660776189930440863811401910044383324733558380766262589573034420836340005562929814045604974654051211272222570584204004546277306927619732372606249228857996551087813449917017350586226897112702274672699458335019220434226893621996931662922957277620254908531570287795576799422225235162176277813150850212046347575120326371059045857783906837574821338239862689126477270056783501013828563620161070190033639145505635880465552216144298465970224768369327911096641232553902190692372497207524548143446565392095966462923884157858052038688396167063437201036411482568172111306835627705042170427239215442674392501109769380911261264867732463882319986685653559919558145945128420604824991854408983635365336712882862144875136212472919516478615929217582015307914625613108430681603500911066654915196866662995063387696539334478335968122469039671641647060063852116886907242745208432287648144822874386238710538845232116622011945040046787475118019386218218658323890598566661693903099067434441776834721996133536751080534765635042401362878994658935718176645205017671566580026820612906821121357177521587226571471534856035411496935407799139547497284276717433821596819486773454224540602115657751730350217613320860254110503502799022999756179305770474278934417861035228594518961969707679243796183248121237518306469330101473891631315393148377320914436879697190922151052165269218310568216538721957024455539249795893655000677516720733850026472691967336292496290660131961016979256604997517978829510000395324703955683201501318498423785421320428378929546929526392853309307764684258413254690296328351930897646418678602139190173533864177173826601352583874282097206290088514949726687519103707166663228409467627850966119609119008493843484693371416001171646597997141365270159560656842398906703965767035195344914548549764336362470266055727013845579635455417744543943916409912943753639530869211346170645893862882199043514641915008699856981975898284434757226576493475023629569207842661853946063249217391103589334254120261499322892554512291586259359426526490917845518261474718370512921226936141561046792799111865619131145774314721572519020524833820344547051336783000118251067625694773306579021783662527820221133585714044969787412896122515608415956806011512119699161080572227400753840475491633430070661826138019333771639961066251076272519507054091645222522260642764097419266679623023709820670234762355225029304442887776806509612873151343736206650685306668196451407537188628155733800909192982843989980379101232018493166326332467189102837048302463590181008880952036509025468774923052561831625446640628150409590625278137755599611532089868783138676764312977333776055236765195506197336844628515283547609772766357155529148323355012048484311629732842338144651187501062328180252185192229328530547999410998716660451953609764149980173119230943047160504318607395085400626698213404799578942805359648087895282954182965194586186897080976476933134133418232054146415901780803604876902819766566870394954233032502505273227627902501434259818142275105534897854298103157838493095651674952962393580116466250015924920615051014632386033942178287582509054504743216561338904007928304466125622241730215112349171642627896636591785733372346203078973179242927559996568488458290689946027730715592393798642420176831429626836148005216329760762287253521976210508937110759624143191390714438794957556533217005992118690419189949272898287815572490802048243106281040076759210464393781388322630461897376972704484356549309932150422554993031674816542435525036416725028356685290981390873330697871577899297330226950249407257226261690237470852804671272562410458428518197543077255363541383553664320021151321482331520768008941420932636696655302815745009916501532120890071513606352416531100987948052394714499386082373500370372538714630608143156457433564647681767934715553139240863367665850076003602901954276729573160968678426520462277179201292324189023900576578070867962119467676636322673131326717204870940018088732242116373653953580179348480168370433885190832645491772619424872849954845095027276403331955816203731812367287174500048869902584924090169939465276780727157110876877752217280204798122052566496076805764389701539996973753454174045191894594032839487468881130581998739082416935196147335018609435483466871752424104382295864783483009769691600409209467427978507143923058765742835639924877950014943075525245483358755543252047175650627317588730873584628414020352517105288330635549278622863835615275382704649797191258297433441146369822560140036206341454061005166088398890810064179021634346855367487187493069252120336674162244449614018574057221875719267458953079186053307979117338843256140195153005906258401593927270411449814797082888803738398197417522936708896516327995709697111444950210798465847894630723919729424538913933371087722016228465891017790531025443368054535009488669073033324556847829781147961166570398830477136162270911884580777037662369177439788564761428786866588750773177065572459643068364682224593320948414499991460969751936644898849840492449112743203735363204899760418661539426987147796610609602364229499081851283916842558656712003395432816324237744604781168059741955630619366737587221151365020122335849224180381407666722841242910076471769253031501083794154355501260569468231250818816065882499814474809808585102357730357698930695228433184918032208349092026433110930607926308918150693917417815074855006019007261480277105872342238666176705787085994383532519851058190850409060186331232411604645480113805702837098721807458135389126045315627760076793306216742633665718839338931077544777598762567011217645632046204505116958360334309775776204122510738172692437488301182984803477198106036686350641406170947598000767369430675470182702851442162970379004943976501469707882115284860742672206949909766682559635843895471253568349568015200806557661170909804151160783155201263974607075834680053047769219613325271672867475070785381708847402282511909253876189781101183361274222866949373249560994679978606230296907535920594775360252860394624836210492467001863398550229494053728099464509957762990785570863941215364543879518927112341747214878683417982342785636426421609881171593700037390900089588648541611274716439901471337299055955639244409452050712801533707594342157336007366946417286856647921838094068427413823753363825661421272995740522405175766927922008529945311563297405313580323192619540187632566863911069958251201922211231968993522616701416700748713487775781069547465084458612183057901309881492658635797244216379533043361067811459834249064740822874696685564550744258373315256435159841528412695678968525360322830645179405504023256674511202014102572819710409668852737157832379811016348506519794627321283242167070420833905285113829056656572059559224530748172741141430079444478885633570743420338043767628115655408201799282146490919551234536762065737863907222798508271481793172232588793731358883009031990886396971621938269236848290797919324802748100994348023240510467183411603194170715822919029406580780818710822575059497678918116353082352540920477949704379035813062648274876429642747695552174546450722473645368723921273785495808070434444200151765599174406152692476303553383637638648687376002400133024166960366931444870808929771173795476986170543178293158071458439790852281949567317574269718655396416779526123153074433291882930639230394761926749532638189135447722185763288722336932167871386818229150800810002359429090851336743910987511277481939854696416611889220091098689337960374903927149792950267173963480791648180271931524621337520243962430429850501096593072997544551833299352975342226089489959946090361348117614540051273971679121450373166881993711163152086262239336819862891272750230271865200237947305801104581408789335635939032349488413346717882182086071899453294232758082157149510312746392570306465646019627995893761638593997804147387578658975227067771180378077211183909618861965870324969076106992251377826545540600116190169449389966415216919563783074625962073266348470323287498508051745995744946390611871432466331535996727849720687282328502958677838740193558506355340001947175066419394390336455817690768775379209069988757848319776942079053106084065226006297058626996868139285017607493943009642799049344211319195460383902962975879925692873536582063907018297435473247519490758434686220662594791985173879140933400665105927304165828185660570490098395874515748394228471862201477419789027842752499318569941622781199637233176869749863268514301467611071708420954783289272459535790906376613213284354213192783736884901763913815931878708733854406100335033764726008709867003376552488242311085905852765076515372177945581355463331047208461222051482483402636738988704282059722453494306861232542421029889503253547288585733740064401341693220436450649872513179809348662561064573706013739292083088958252103154288874361536563568936156149275814306354800969889777426138125399428052161017289009040159075824716727379647119420395397469419790664800208222624590983395383605672075790516759554348874297645575737158689916456696846138188375640929483249918677568795793096978416360545081598349244778200548428893885904820318209052736646204919536010645215250575582867261175537277031898588820137055454170713081998793414510634055354577882173553791195478349648276348968806065174031510377939269588927432810419330918948080407101051543447744263961787262914757053445194951151221147087908302396921320967340944381486405459387011180454368617510746368478631754360892943037645997970750163956286428373826386736284481658028058741317948584788855853264419342729172927129386202315019718920312984360778337376923824453059250081915583792343956965813290560645653171154130471313869616657498082144681550284653703012186277777083609272475005118292383741648830570824083533453604297647995494077696641784087894145455848943321018365810792070700015556446001753970722225463945848220820759545822941582463561263756100634454264033266109188624812192539100730914296525260947561031819452034470423333066092888485977178009651844221719817767874017525853465099550125018938843724347552397493545127171877763072738626845068919482813382513168865647925080004727485302392043631412776213110074860149130397724558966416272419663432378509175369306016694616303998702207276286736502469706832955251413468260638858693158616663651395779393735504704228177503230860849197579608485711991632283213852459366146767807501433760737699125937655583005078523659820249698370260544202064502896420386806796767262585817111308081658127826088059409082235293142930251903095008359884520322650432596878383834125205961107142607883440462791374332430283981543672619151755405181950004977287029702125406247829614568747588646065805908623363051899094169514312519996811223121931138364463639197713440228303413598498836041541400951969096696057230934231820327758874248567707396407633622307113856902394435339185495621310829872508782502849009071951057839678543692335069793127627148371903489759629660500707203495915442168396250861647212291328402802513623362417902878947293840320755450056815671148657280523869229248274583826904385119835077468449661798232847479331072776175481240254929702247909461205948184906224984219278699592824402325809993773643887940978940327175780430645938097845964134439114536699942796729671219487527699901097857875509983009031659383195998440602498184248647324938733912868150476454459507622550333737224468007488727100210555081687699279419741728710458627347972337130301332733875020505503683571533709296469548758587991583632312442285024337611806780849116819844281971952313759801542114858181461352324743874865962939135117702164005772881409664101072599059597110594626600625273213923436358049929872908000806904989223626425082911468130400209948216297937497634506670439053702189843794459746779152306141750866547566481636892925793026056124180431113069141287882991813662772585860953571071945881676061645594530701757073470934188137303735053819099343978253030541131952709850454801503368395634433305514558946304008538728901383652553540027147417596324652659959227338358380113383600992253334898310933279694970080026231868092299623326805274967063832115123619909112291828020346793033207620377085466989173477255306774385493590187045221348370649749690611245112414905985757834856157077774979886873749805463979488657960816800847508227138665132454616285836595492481118271275598888653277431660475124282740850507388839754696906783028655736167740642105201612092865803779502907047876429481222526860030214972600227966914425781721794484385599540120345387326640845661161936118832787311813818589802880345543992888529961442194029850526754069543845383294460067735548856308173649375194322755681340508775639780243785592634467338633058803138391319031657131611358321599872310643100549667354298818359457734875640897380830171907591915305106191459306015102242794048844788233367968578923361962121553610041785520207028765008329895901972675564838067227665041977909404828629455820295410653542420939764913970895850039440635805472327315792285249088713155249889059523476818991979147351022316998901032260210431885696260516776370042079550523394046786482235695854796532121130718234492512849106790695707833319276837953969882868517810370961087790629314216578052612875279623088970120884932639032449042269011340876014147324159364899218046513433584529874079183969438409099644701260188465228360468175692274293514011975201329248500982480160928782954484540937552661793161684751549942666833615744577126937059473797714527476086926986115699881767617343189799122568398512809203166590495942538163408752724290730579318663567610211681811727454240219172245941434902769490480599407998985903773968493366465617554110955300192199384663707356225170579513045234900486520193235974408997897336688220007628255978879211184650519469353324882553035895195328186648793035044756875004759498371591707839449707797083618423444164914827396121497560702439530481913287762119762161205534002618281626910248569360243239519464078534796930069863740705578877340076830051698259197230164081860223691176221938466320505578061755691650703040023680948853885962067200811657918881654884905582739294316201718029703574889421281972234066984292879239464626884616944840751960723114965390637588884857850739090286102764610771005379402903950495670989444935732208733401814454933949049789834993039281300195248833804903600806820263392243113647064386892525642315330697674523824011576491349191541958634500859165424632877809044002097751647117326908333981397117391748830074030815161555932502422483973038391174953810267916101497643814194411710613735569368244077181929133282610888549084266091085606915844337647515339661250602895717885736031523185493256019028047761421888581807152684594353599525890962427552083562054035951283015143259678198786292973863459519257966561266175209430945019336488885502851064316373910353890863699561790367944306003332576593780443561441154664290584097362740170792893187233213575688795603606518847309252915799361613248729957489159602599345501963042345696041673010804757948600697210894860839808327381592058833306454840289699818180671257701610698151367340640282100486983022718839381250754201521590174337439942329847718246049879567494797122008587720919729339819995059115029762921776969404239103140747956480275017688939206983332706420681661806821956577352097501433879939085328940404938958135006730140409278547853398434642151443059573233536233086291562198658703277232599591901994956350754950312717472541108509960436646638639202457270311231062952867799447123980009264866368886551932382739516264910214573325201110603612379404958556196639696236683244980098192981953678372258816309410916935339052385585532671746661877964188990270165581762089565190554709214914332385032480710154429610872853026684763771505938063310723871749916346833053721911296676577394258319279098007659362764701514925692070433578583647647493537433186998343014492555922549704761955014605351393537760826689462700399442290640736290772539934027021471549552774573848902455839612477599954236980796019184408197351865570516289957653113905613123949427214749267752323604917453487376362482952821840499964180503963017458513884098687101090057995422482228852807756247860213970989334319821236533882833740149060901675813830441667974835026969781724853425045490712253887738329154795335659812213401602890618247750249591679207350044690506519732163722673849384555976081913860628299074332880688210255660745675498822526369025787761170832754688530680872665330347483336637944292986557185614342342308090293587810398857509421631045606624658427869704001391017440106113481743547088614762462110786156055646154989167739685112065562118705144481419307531980923540436380868174108365781956700646354376619179170648661989645197297074513467178597881391464001499136684696476421623505486147538397993931828533047522549326443051941521125628945088524996670266294344078717169642422981815410740353449243520637304177895926648724251723923708058469991455018029306639482091100672585136847586927053129059310836996580008075326385976650696697967060356491061039362213974255143501437737652259887030429841252091620398783821413549492761323224465954588000933976456327600772325462329138190277679187050775866356895404668917830757185277890028278814135037550346916814208639104153784779248506237733979161185710578012539731202778006958661750385810497003926820998779342845655601162000807487656146066177022563177885384266737661489783635999532398630503678101029786484894509772981450108157198378803643607193520742899032388857353559263570466750391710569305340681126090363730048990313854361942383629188162520968298508400154468103132824500404470340193968232674697797699828677755720570620677332070544934847265901899678192492071207519685870245663332222526969527059341217209275437041835394053861742689761228337798604827177721609350486223400109977283981625214644754746839976586154074752686746277069649537790983375065305018599342290167454184777590792535067214115956865299426286122138559033303823043234819854260799895825988340480730152159030723831212608599851520227662034881320230848970989731520318933791781965488291100038505352619134307743972811983365013688721165176184625921725429738525340985164961786935747351389350284198968606645360413825387547028890667169907372812158769572715220535239494703999940679554658476603347790802717832038902235703733757382273300035370207728051672307705167778621547893025563850207842356627921822583846510271706020781462769585635749668445377430995870565446391641577571509546127374198528719886403570267137934519169152430116558795065660460804406843446253961869237058768944647246159123994614671639122725482491617331906283911362527182984535237934702160430320582881446800498103929480382075029047368019199407121890471843716961165680276839297223613580628519510167545984143791156206835380259089435726460837668930555767408541538829766372261912500429256389624552213823094307246164343731962028163345767543210778767812978929659061477577433938340644205195384460707663217359120723740115628834426938588093580740870906771137125645904907763607732349667494828854810000197012814534831737008859337165805494535834741253568948937554544128062124650158341650028503075158552052618649914965003553334568747543780649057949509987293589738093587083060428130430355906920989831030911790934452107952996867727294350038078193227137436774202470018413308773769753456143431586459028450067797393136560214936236249478172293310058350840478320444510220434760302062050961373513221699139360486184458004552975263890538089418860656114129298574947498867117997419235609514415705523312952915508579282860675208955498729630693310906518170723748178200063219927391558469441150198844667340345040535387019065976422803970778102733441078987990508068182469091977522150175610200457934350555908663970740614056264527800886398281195388011407956887473214640338543353967906199863251726471158152437367094610934295313201087234769517872986822123513600908336116522316770615463917976810707295810298334410739222667829254204013613188098363718790948063642667140792299132974714232927373205147175062177185533173663465712011837485012464140987698996326641638833202115720712587517789045268154938044519997347532067770320714505487389877764693703523933591471241194347649257475197845394036109059467242486672692231710025806106947365119694475864549725222602994317779082537369233311774746600715300985017134094049081863207641856818624997240299014786519876729782252849396906106720478843200594659836040060402858972764723026830896309844524311330499657596580560004566055402792180840157570910519344200563771543543105610106293416665635749432448764985077046393787544329819094292149161207102503785723958738035948415358643433292986990670778541724232760310248286477868437950335363099747626951059115385624468227053513774344003655443013181717881216293744051399979913437339654321083507597539037089100606996645016685770922240556029895374973299571732710468173369079812168647314279934320822054960043303515803541695684525738003558930379188123993734156068475904480201258490617480990877066739034533570782400673490418315280202511605423487669920725673443937788177358234041169049721542570775399375866957552553972694096115868367871857096182211593773823254402042740880249193119064713951001097374032370548844702254653008166767827085637854715462534081603458947806984184181788057907199708147655316013111471918596303898254843280941905917518055026982204169521715678470160044789385066298247319601573110980179293458021262349467512604914180693614197456080466595783193819548413096535695527261200107880730218628918649754121616690213106300979773397301937954583091783216940215495420683548331605889217582357211849694794165916674395545756417710535354688053157158923641555662266325794386728784594384347469981514820485379018877866182374609785688730766145758909971082435303660413373902186470251455044844685715995611844629553936023516343020272150162569398895097669481727392913652551713235723060109694395808676774370675740973901221914174115154028842576506751700091510814071183461350503698411272206780380097424205864015223825533716624961952924440065954065582677045741077123549843648473999384526395324285310969141478916316216113410165086267870416784158078052663070676753233830635794025745900505244075355139714283011744381083349254283008250536696113410919876372590182780860894007405656152919093951254219379904475319027126030897266737389915382481112719581862017201837092449796576330521727916367330579640089425389700757931617373139113882657849901143204935439889925754322027552357526421906892750790478975664181306050630132886156308807283359826809198630347585826189788370737045034148012520817059535964374988637848009793981450935763485499558189787299733187563742360109822952579345694106800152837915739268878715103731839620528849379608512290108578470759310947244567225650784567046266487766928818797307356916177859068001163520487733242327836354240187531727544447143830841944020089898174154532358801503574261873753304033551877716657375540972237976553616722786033465137334887437807804638111044212763551354177810081506803500855095273181228624127871761555417122375232364010977563617962977786113816662411736606781450017809237816376527583740018302372147880278493393357120109701089162058640217152445870688346525419682968473544874187108927756608518941536535848538112956615667086630444233839194954152382368077342826033214417152728147972715744676977475862438456941118317102065938638515566552260801423095702412436215561529991110545132492388474578622504929660020620479381803728485065533965666096915054803125291865892990481026862871649766439553290556023444205059886802159993947981185969781801966500386465641836370718952783721052428488613048897898204928974031941917754159480915248023921255554592526938725669523150914360263353755488359046558930714842131319816888153207390181022956263472397246343261112259541268642801388061062788152904171745077888023991165905453644531759929266019205900286450229101057225571577180100629361334086440023362328890617245796685810273931211108804910556599477439855983238127173162535058737431018567737615902564938816490950911028858628911500636855023180882826606592913227883673241787234603263677769240926968913508427432496650417779283205236344277398427729854196735462376040618507055847122399442244277106739275087184241339365049635134151064137225481864652152357487531922461363550189330621361881875615325112791098502139811461803734895360042215476994148515039572223069480030509834344964748222156006486816546581042063260665527600269960677060016067195384995268203901428679363763363909177023622539451521006962858676003131138261706922160919673156964817021043635884958781352563448095589702077386629161302245935803509579507615707449295792545082375618986160360037274276166226878951629665761788534677737248441130785260815384382417637038911913923782540208968508528585877394806252706116979966791628497428428279194005329448723674276421484746281816016510788304779157695936470410226247675418415865375590026496361776792698554929127548694002029089127741830037158056178994192926111450787934456515747426269119664373661978522637921040997479666933662807380860155238251137864145201566968357120676672858075404365955837112237699478659317280317334371943891779728003091977692478218678910297851875005054683006028267585455089201829184900534050084963175986756956513316377935989490279670234413170102957427781970497777711105167086810878319407626862399019353095631437494292365502155447791618731606515499083815449137166658456638419501814899848159136678399446085774556712274822511997173767582055070313298625888960935523556236546056650153607354879944285448232194010553262098579240476901214499918192664430583182748875542186922122703373365199866694484646123450294622266677694164084220201398053454812503430402357907832728340904062924978850623151317467125720573176656192481324302644300680737364820524703438759158302609280123421100909878508281993997734920325728631854507192268692075755446913030615568255633767237008541279623756755545995969478913334668791482664524335793132368925561426515551293556874632248855011360092761382699493232951486532245959011933455917347014723688810391482622838648831350553987383391349659258699394802511996154362665040749248239977475189197344499521429350377763734264895863075666605306723216289033505921607790300019443128726344487588249737513442538519299220634127147639369689617041564365427070264772588540821255089331251689035610761441314971577068412876282733954727103366950451781977324175963837740124210351415823105909027443957455919974811675091120044036973530325298870920506145136046288553777890336606078381587187104606537781448746212412205809631257928318779520813701689836779147163666674274117039803267140711559576409439083604837467784946694718093141560428855901137367095382297661274081843982432524016284713548307617942952628465198743230802213088766009968737625911973241697116554114773808179372352996545119550058682132946292514833263627928394768712181496858151501119768167771987550828989782929731756834033394698753803320331156759206527078218524154177855192652446750456405898353273306817581754600071243339561037959309547493343123223499697988862600426944945567359939540237891798623154507294056215099321259361064664379907667696884653368873640562413346066633576643903373960419824580265505088810446997310783394136654171946260700481012534062737566568208663582664062683677962857976158368043706358346975503799618612891823868168816652479926102761431241014745008666204601572726262010502208955784397491981625200339158718603986120078730321972585782460825804353764927385815177815812229600765396329680010819034159198091538662587303483494665925612329583522407807462558881050997183300243855589772576623690949007905230869292719569935258615258260174307242334306575400520326601511797724230676167551290787115289697626858321170709468614339725516230838944011233497308103184202012716724162718853810765784255635370914339160281918135943545688314006382570482899289951971242748655813203449041226428968419755360632862443215930963056673458309521285501293162141593599003201238401131654721298182246256958499641010200024610483093534473388687811068461957545016457710472164543353394702253565617863109900702520017390904729354180120245307891872080627567379655563966120940446524476521739411960017384521430251275966571266460785123627761389338893728738517760119323937507126275726585180466209727516465105615808003156936158289897274197919988330011348008645556506570762382099070612420471101976977175658046608029258580161552799912609643857444078498142952585458233238824992562073743269749192938513626557113491542675277267220547381608138697372454119037723624892186893394829746678202715805538598381663751906836437118060162004413025566395954855360045210392644262613031948011310203669528773075022111792539986288884427996419820680257180556729090861539377295498394934078170494832397048782029980521157546142409996262509339536768060458588012368564073637618370943930462601201764624761701479813867203392568446906508946357570935503199660310109559463005833634359706675509074114569939753541060983246385728198465480224688501246727985611648300002749351576248230773545291506042847528072752510980459068300419359245020048887499745407433378768764616967491992128320603759159852250426569287637226905147854176272777780330655254744762939942795660240984237798690294150883583634204758828370361192747384280349751652656458250985048534899987492594163239048249505248455729100096902048237824354798184594889468821719401786755623826599691142934876679572026547852601201196270678609122584527991409421396941956822354499816476743565578852204978718776827837804843800218916753089505524577444297391735845312315264645845239280800032293364549572052308933829974731025355860489844656409716641609254030885077097164373306379747534740731013070634001364848222469444635888246354461473506806087835459720582472702251601087700414610636750283503611013068255342420075143526570959032240766434578853344331173716624471988577646668076132128953538180382936337136026760170361914753785467139061687698836797885953665822545597787482970820544073662433774224715635970972323611578361555099002623676743449232474375499263359366729109386714920023573031169436584547432584276276601655477311199061615494406203472623212894294451482806146867842653948091920321733065883164755179983819873959652341484675653498010559618214485980922953967866716656003455208945000172337266868026777849088656046748214758340531257265950703572167037230397941028830474493329562281292070820559415622173995875832964019630132333450494253977863920063226499648105565626436895316661524360805269974088296049529571981517461212580329393821666587110712835981907222714067404438917765960777563063731312909079491691347394455383762698788668840461243296511630832276146130394395221711930523806930423325954729003629244543646580875738639626877035188556411710512885597834816357782869658876801224060521550224789238239526275649010373986285633941192565358108705635142996530029255415335626024207767871749567794955302650256392630912162471346023568389157591275020869864827091949605464211070541157005029699739723868781846551450029170864952480798803909461618390848371327640755326131990417247179255087266941840171649602343031154402641033969312673439282381441522153327169881787693012907893297421649620979295294768710227463071685526980142670103071834087670397144670354183190772832521070172266764988137991868147765783783582457594700794098548618130732574450561388642128753091128595356985088805148830014315306165980273914739971226910876529084712323227039634109866305057018010082478900199799515885165760073656293663755788453397759983116966113377924912928896429663608580116382744117332344735670230262256042396729177683789507490714620027301817761713873742157872094027160863520619185484985782084948831880056146853161256236989824851703026039151301829685375911526576212641851093560340733697000238536607374352056317656709891799638386283161649863848496188019030448339113664717464123461495169022894251075991782660648742694649746666984439703945627165699724795977516994172211741652419838594379618104626786213599193493928102495931478262059040505870743636848775508471303019628205017453930460783062945693124793382747864879932562294937170686842344069200398985560541555234020868581253016044673303323172469961881069713188819269091704843412717030347651492124722217639312213048592077704822327807040459620133919566028340886860250587752768054746359933044038393923309254117492439675496717558294269226614532220768074495979179352569278745291717401386855834819289574138445212742235605244449847529474929097711715956202582438171424286390504235706386424253420889895094228486373542561159781130037083015208023478172986923195770024059915403230961445720629120387740258321313245362226416172050211680415354836514924259941389517062524084107962073376023187017198959597127496286723088564793043590212298240710207808120939439693078618721220749120478930038132897104990078630264398156248889704557641444601913018772103298494759292991295955098334545260635198247042054291248043721997664889255782485816222197272851379889265248267488587022212304123438774508608896769358714575506395760137787224128326409487624858211331874141873840597300394094052065972693215633344422088387333469782982331601269796929690791124635427289084669274123657249471311515196597731063077740341891477655239207449975579827512050466609353808313587899917210353170227068031779678520252536883957891276521525907369311989361183506955531467759526289903451927139576253867494830116259903986585201378321950501040275362697912658649423997811456311040402893010286240401098887853393065697295604577691532355345942085724951044858858528807692505405118528068580883682478428123742113493868027825776807930358920732285368747259130123001598655397650550754384013682953874493610618935220267842819728674675349752698845196133014127777356462270270461142350361295636549482093297050459255528572949524064225072280896247239157513468485926766386814875795922985498530137491362639864554032086058327491914759496314613365261366525236191643721542276104047725881655880895754031827981671420922503405706938122420816935262908019037265569773659726365037428398075562220931583889386419366657631294566747455918277271475167827231216202303428485653718111011807459512804997703176650023143395460153897401694386309163041417220307025451446494917120511194712727108261567737830292872414537157612160306295346607067284854712869200770134691095189291669822721412736010042433986021325119796658966262658783051544513074572430527144404497841534984208246047362447562395144708809300520384320651409711377779334189340324637674539492295970848974425959363337080216027069240593043925113165214576631268120989609046435555416105088336619660268586555436920749051862589730877401882481574776730579218092818774740514962475670596010810741937380119243474400434032701847608454144139529030677688505324893891666219479317084595479058288801126981912386703018665145291795074465787708639529981732020158121220608062482952951296121080392296295842002402303766850586299873016210014916948207404461775292819536134703739039735746082576285761505543873628244725352100030467507689320032065354173717694584984481060892684184754801403608475359258217427243735032621175325415246667013801763957423620700844069415783177848813619038805288812718472148695087433869500086797540092592228001831006548918916123563678216279664589700194800052158003409957960723794793798001279958265962017901016223035663910121401018093312311420684650054340368720479623710692879749417436348139839307414063655216109962771311800857672173419518617456251768364502948970657843829801719057617730586758926455171861608987754540640423437627988487020780959842717603154756087959115820128038825794934078532356215875650407942219244106816316065921099450130853536989126953436231476000502010623456616128506960456841256313296087536189307293542235015628373028955125617988424641039328681838565942602080360708001159330963776979315752020173530988956497126670355676438910885794436780923432074216519205348213198774950479139141479829607689260950550297642167027393570307652828175448797119569092728906276885969369156506619219856394536683308194756300528134743568619354259647116549436887168112392737845985966223871040086520672985727955105098640722104895424859082964600640773596121968327058227209310517116505425895986034425924341354498068830550569471348850477610165027953611944148262189608741748826358641497470473185334137911299566801799381867070063155123309298425378553830456466516278111320554161270831240251946715900764679779159555194254682451261434119297609267262508598285171282475124635634559429170528425533252422785994620594940076341030799472561095192922915817289951938029873038955790076542842094604088359636425603910825159232303402046157260367759706699506342109261897625926791942943852224518742969103072227376009266800122670095467476688640753771746354521065643740190092213324040306618677769076443889008936230325243448769025080407661310418072800365355950735409472257125719172661560223113940089775177147479313514152364032228908446884529988571406534644721910280305983101409453420550940728564969795603224412356168160893572407093415608340864869963265260763266104832518624728246434215530341398552802721055865937445180357046245432971313032701027923393127331501918447621524366461379360161180223936560350085719053508613441388458294376399304582550698198545047216917656414656421234279819763420005635860644409995200494465135778336953530534013531283678664793800745338341800502881739416397805876276993902435171072029049152891620023823363503952603773700087850517605371876517723835316694736972101741987820730892198682328180988426887400407484269046451927236358608422546266329477872606985502440795476454461499652193915078688113038837431293431405369481748561951720121700422157458363343749555094248498425601812791292525025450708982205883264519156134475042134869231370009606608413485827135157791113586536193042729192840373230645056481627404543377616019193567615316097676248304836804891584861434085730909471821908518439978491795562338716945693420624165137918342166800201740281972577910762984489148580596803475913228095202297853264369600307905080230119164025805692826679164778304843502144580389191167030517504755242602849076095731383042311993803603732440536247311939798079348734354887374189820387283186423280816458149289485394199000623344870775010036760085824450013582938627817884300779799966513690116054835111597676397688960261905897711216482343769845560257459246457671909454446819334974855195729366351638758131101823707422695864183979931533749484244071365634571498271778805029826133937470699813594482028479114071768434774804112555019094707886265514119485840988185146646966321484718885328954402416817187059631624132344611692054613605730262676140543751492760606801779206276634518287929510395078250143528820526285990535611981962803633879935031694266465612526906024530606700153030021360329951147640795951417473701580202974479060149517709115121484332237396731025470428443455289036691271156438600217559931583997696109770446363380855361191005513285570854302495887635199466118942475758134698004464883170844110110220776622515974774255436888002080925901313117805459272454112137138346424569175883596621495006956705603898022996379200946139779564066919750469186958755924447550782717599645583682484925258220880017738590552236877715986189449599291805680679550982800638739669029601152283227559004422934808252377476979133856438234560825993591116645898224785628317314517613632134500467182239887985767182975676643914944237374629556957542376352278327299602267967888739579290628326603185171579776981005193926079199870626412582737773075901063520599454677980766597638405350038889815619459508114180767074649458459317814583590117280566319680224306457590019733003123634712325282344128228443676313925875550910519586526130745834770650248792632826720586832964636211155601372500449767515040908485337644562401237592810032941376355216328701919562049360085034087101541938114463680161643152093402307853921636358856130832370203217917076198209990727554142889083885689104813841151635318239558659755729232598491951209859125986955860464632810168127335583715199313818507289194875254036453324932234223753806054052389767735939586864809689802155470916074408612741595627985610891114932290879029975139072664455423701600325648419501168271925367645735733523397259573541018176295720402692165179788631219288101216761247390208376898250739524828694822586797684119991938294657354572812615050442835839621042886351509600974494136743920624912350598551489272732540541472617433985009030364901076724141901832329658659345833054731442915794227205247594922312381362940461482595171112354969483636029459087191767921327437601575960133206805135267680126916307075525593976209329749201805285782569762412152476462483539914738545611247681491153788799888693415811875049221423643299995234662933072741636350961291961875233111057175873642566416099859235487978308030573522506098412962897455202239997871860113908169533998941110787678842365447056398043120304385067591428903684131076324234667142018201747357842186319177213741706183581029928979246316713691466052612411389900302509406906036657019065463088546264020221207599515961064528853149063816666396142081354729048326227586374092476543196817620301502905844425309102817295949793823785062278957568478244053399769497680188038955386367654102743769763411346554750061883315246072246367280523662409252279268009136855606090035098961575798414082404334232234904405558618336792868209606908867579744857105149122504628417917567106487180265654530721663658643273264199409686351631715620687084771169093981512833895478323227969104927228372511660347769793715930820364213460447252681379186908274855321969250025953742077669723988490808333198771975525863747353067421584755626306964523601081432742832008314022930718267502458237808172312047642085799834406144791549195185014738897532915083597128494732314591830613381849042521860618284454422689207209619652741942271550358184851626026023645635492498703411711722904783769537964450598291327608431833579501691825914926014861869529489274451665515761677770232861753848412056171085599672390401180860069843963962436914153410207039169866414684053417281049602278714010293648482730016308532719218966269331771942967375638305293876028598251376669488645911202773475568185376228222852921543872992232613691824199589297755464978774073572978652907560592552257854023029059077394836670126495916566683500546698883359402384005975408367912928294477546382081879469018634753942879770034835055706582150899647827728298017195048563734981572987171387311766366130582897910604172477841788861483057537342596161650070158278354480737196222744022656476505176206814799089193884005652302788879119963467863954689961146521299028641288371492039755056827513378202672264887030562254023384133222603954404203584090577643069540863151802293174493706097757513638696360767487817026009262015079872489170278208731256711049197364124969097578657134282017809647128661328039027225520959020944613909713096428516019741199133538192136578410949639225208096654932612812486094683004267288807206322544120871965938787620517025643880558934708311422640537591561384866077793275429150936697245790981724003549945089994398662585872532506603410509910253107818490641915472144801874898545245912141299851128736125311718529007901491545931016494674934947351339560456257083360545501092132473806770023761548076197089288823278085625071444407858873798282810399002231521248727433536136606260111316606386669874452837658914264212405272325565747013691785822531722381456188824825990043106836663280716556039427420802403335440171382866183160762750457833727647055264917409672152331976950061035688264037816174481827634886068778657034804679642639738792350764860815867366339158432786964705246212306949328091437575149564802695938583262313586327769154793557075638138145943173557290797672979649963390078837118359646639514761726034020373660869399435601351498247076888141289961107253525050068239679906265714881794628735098357301065806044461229884705820093299370372435624515647247567890174738821514916575797090668363725945863770580901994424862994577760270248612125959493915459610265559928001302787062660948233596954481846663998422957264340154494122469738303630769068835636255096704210214614091513381626555589638392506854015766838395868880818947106268742616662435116587050327236799042781735872094437327262576695133113301382130087171538699328589047863174429456112876387274474294352858981423714163912760739891906375132458361983844495940834232034025327603535142828705897624941424315059811754910454151642857280984252234184785522901528369686157633632757823380614456671633823143387176067640296331509268775083584771386063561713848128766759945423529249349116067171137067482573075368932075696336219652849058334155225318046641996815156373195984528365763167033683277995823832539308793552844049366782211157297729472088402290084634285966192012495306431161777694303564881336825902846581798006864432995542818609927629773873033834108366837931468494969506931291593439711692110425329038660537718776698971774379409335888735047395195451441752422915102452085502256718596215202036197000566430231811476977601055521793070658858943446261290641774916623782703891297891628224003756183859368229526643777172634741552686645592508777499859590558850119649416927795304636513631219887181961040274076135220735481286096522729829478678088834415025983491769735127941291337866153918778219269128690962431872020813349856865803725405373822273415360802432475274366486115459999258435141162099268022292080374060447179938099464633018661777245825212976000139804680178281729571919450802727990681398279319495770302254385516191462705988466331263370430519473286649202112660352705716388982692361676839809481563607058655965239305760958524821837126307728475775902725243780496196817093310663626198078578675468727748737789223700335429438401758388446551006262621183997976642003494008135733558108489358727465495577922251912405466129537297968498927521040743195872797220302449636963073312434139472913100240850863885566613882711507575949593090595527429060302553538795293251468506390464564454303463241509696583970596295309952378239928281852317343107347548578456968351759714917121151555054981606540743634651735780327804280466995629740429009081650348834958192941134260619266076127643280466421133260674019371104665585000957065604676681413091525317072342141045054599500441034071200804798077901891591401821146345470892596518309485553195469791764951194536039148303234330072944385512866414315406551635367291733369129161248187617244096098589506553773164372282393311545446466310541516061995507682004226875621760531628955599651372331397552903348121612383727273804666752773382561025400389953218630713783577344042066434916907112221826068502797136416558101041199827517276132619523509958416207630041987558808862364579810131046371379753667390639708212977038087193557209697241155439873099385124482503967305714293785305057475029607704264172336036438684937958793607684709954882179021972479600953160151902661444353545798148732151091940856722243476543860829323441325116578548989014310273482246242554420977790572502377187649962690458531835103492102937580846286293496510759635095141815177840239735258273148400491506249606432900972307068045775925185253088132586009065615542549158553116583405763271219402930055319721172683865593732844651354727161280172377202967978427489879504762310936554200285176875987488973853203582774978113942342111002739636694311350783683566591555766966709169254341059493416221420359122222733360050941631528369197557813744061819645706204820559386944573049408403860168919938980399523186740195026148312425798181186456794448184214041655298968366886189716233457773363027913177109495888120361002717307981351539419082699045217278406106161776252802345071569782863949174098448835956810120766463058915794677394893513295265271700297352852396839895084112775155338891584375688485780381477388112075543966654300956708361897215586157456414148707834348133604630681181435985631495921504462047695315810086514043490854751893531652947531965275846098908732187759325173022351206464257889581592314378426500979855631113944385081540509444087071779318256166122126517253844494723871288099040291157355716065624229747619867189393821569308645304495916567838476039225080002100995855375693004074591154331457058833817092410748267411539969829545120169151075962179855696456326172535393183429327699299621405185257729339795751275919892550346699395430251768753167101689013549680406746302037496617982569125699858430977894962192341918878213302803162383000576539375173683469628813952106738697576802226613342174299114854534236800308122125041990120765861412896064527630058639978752168356723589171303873962980421762599967301371199734474509966707846387492810338698763146735849565297195012714616871193547089510801013723503981009565230928294169318053808609275860098598887190973549495955533411383839314092753496835287952749912876032409488158892662408853753450531588292712930252991279313176547509277371090140902661061964136582113157754500459386284624582559582791799337246016421473216801886757406917098434158538142418072299241789579363603723868824883827898830882217043389053266313022753700150841763677863854882018432316823832214315934747392071816644998253330797609590663870229580209736886040094812333460332599728168983252435200989190694929081192766449480308295315222018024703655625707778164753960372835276921248886643222007195880414219198408997371986889828279319810489171769995377354129965924126157323204078627298204230202324738720539667062168693935510399151501152475463654314347201186616519558055095128782739718260281723875740360928568024314772549662275867831847380891577334487680369151863266353809264910572860558815896634751914478967034187734588145848302860891166545425898667499341399992753062275827713301867102132161700237073529150142875796790786801883553255139002022809429625572545198800143338146046155162742769236505572186570227754822412708944414665063334436809996119066853487777336304440255620330056747034187277409732152927657332199742114097165820366931029007942948772536728984589423139061861814533693727981899572255145810004702734892832596284528215448261538758783061837503748535370993044598204967077035724815833786022744237652144023021062776958668134881473733776708082510352224060647846855698446686811703272127278219838476331797399398506751638786297058430100286041463099977886732857164168833224433621778434680492719456785655241155184983149722526104667016584685762469118228264242346424792787269089798329021789077688447287058193233936739580957739556719108761010340062763884966330229116395249168890965057443218794559678187584931652047527212484086225754083270263223048588894682058230647081643766852700362267858764476147767519880239364886769286322751919832997774313648833831054027939850366202600363269406213094909758204488415886069920028639336759813878700606400512841754306788311376494356787296215352781734222361465579378824009576559666179463468902415278382223626110313784498002244231796776535202374400762291335208144204750091649581194476815803109742144477587574678575869458923824169593885119893371681729701237361502544818453557284278159903294720974224334551240189764477954299598748023608245386350230904816651235762692549188427270400857345858458965904077661744158739802765265927164549406904919930457999711723513565002502758349915310651975291696004184065315645057986990918451519497482270526728524559794902494281679719197791831682998006004672730816071120457611875695059906506547104788517282486551590900232556123629706278467404406119581833711703393838025544510705079716133043713052905782628328192015027776976608902431407954610889984430534033106343343322925611953316478463127445801516481517724364834350876683063421781253270976120032257429427223615797504926018070547695619836233378792044856059034786282269413496227816163611734289472686039187190028002920030268433403824186049128611907063127641380389850852848075889539447317064585666179702443841399068611030886620451099831088625754117452088776859450087465439122548189955232062080369682506298420984682730924399105141214280319758683267133906876250926970735585575532476155286055734084409635433026157735415761137667255447265517435874660684075088331942275080660670927751845389052488194459964771919810433356298207954722303045248569384769371249070119187143429690163226033627801557062318005998783038594602844028862748744637469888342099563605749739329691141107308972016958513550660998212881327958972819630374535776035541509328357069484571790415046930814349042670372441404845194053488907078696683670102787685113932179445653671521017928842316410727690596288972386321393832158928023422407289731394052316466919123696286740530087609541154008281338088781342851281734021180314025942277953740564429047363719663170879706219767955636639664080134134860864170715374779509208156737375022618887038628105655799081404563057918213028390601003476824187144172740481236241499994074143307600327909614520226116644253651900456104329918686433246645133690600325957279822621502243472519923076702142586906822217058860653249739036185807288957901831872595844834595379382376670898945520428758369469627012855010196928212539679548237391837824528762584351474166200943513534150044323988288475740504230772204479540047572886761521327777762457950371866647999881755040877721959829663517397963798936531975461884484792903606009003840550180562797936228402498865207399284753741022407651836146486094475286177177991190664117246428195303809122191435861646226952354088091811600389728214841296313271413018381706327576807437578251076764765715342819007333599192191358157328130319914141361960744184844399540842059022907691740218216855924389358157177997853587678949089592879948964336274364754137840712537283910632831774907225982436529896611255497440293557651326415284302143254855626940178505859684377079685453149876220901993610974509947838892172770888682602515259271881326657435715513120152021839847480938041371094510366772687124985475902622188156168597119035821727137765154679054947988719377640796160564247304588527923255798920346979757397796316462932654426867300986341497612145056331258904221892410876387098193308671549975187726877468324859989908731587580985348784343563986661011445617543529459692309163476359464069179618399640506293727979789998341582649774664674470100742483123400162864079026670021492869574141122298005824401849682090116783024201932262068878780406191273523978651253401950536655466499180595769356392527960790179484226608580597312072623195736105533390603609719414257123870518399097069706830580628423273757669534946519641951251715346877798233514429973344116755599268332600147710900717936571118371711235038658807850845492083433711419584209982232106383750314015492102082092242286828797660940462974524145289690187606355994161708291096594819378680384410715595767059527903131393471216722292967892698018687145625688113918511587675570102366038070173616583951365755048955335190096778494108745444691739318479452003633811753982087439828598647643100351360092124152498050171468217689514817146998496183707196965587502211611149172662355026577881725137285275501841032681015466600251590246584491075288696379658814270167993638772061312654334218851620163722516428993552004586598172427258671504944096045922864428548749386540033797202050145999296029894168618467304431471803698572064905147652140232090760398749584868051341249101890059557256498285732150002986342243423928573280578530188913290977246779439622334480542606581765028853233881186316137182224419730025349572074924868115840776798115449008272844630390124352813183193836984313228038656293246842522442362965527366737100509971748760464129528525482834241854141895662463896492501400549490854019807342218890369047545023808688029765477852856184654884611442871847591558225926684969722067832686431987073488116160761809572064478413319982060166514092462352550115654494392536727490536070041199487981455353327090294431849023748197487629739382559135814406536199150488294410459038187075188826699625435385959383635069732912299649147582653534818358563754596352155474595089180563071940552831673913033413707484007002874361067421440125851832564740774713111503887274951049635483373297421959891659011784542196799914927347047416608379976711213336067148590287223141337351855695240888846008015229152341100514776770813775302950447547145390814947732671738696229868009419080641707396166250746419061810135129451324364147449113910525582955433545626258781131903889932957402981127205045766108592677663449172748862172168709024430161143578017818071018728673198931592563141697103218907887460408508316082228309037556108744099956870835584977369855017959709399417687462329514652472704559217908645694774001761406492699704399198453335782542716718897730273411330506451169085238295348460144275727878807968000689550495019885442670622778909758070628969739927318321558019979667636662951537375625032052678496872111178271413982360114776260215053855473254008779759773132919737425830242518305314003728686526055069343325738957651443111030184317911148080281786089435999198844909187902670649238337800974904166785616109277983507865252215462734010799899135355355899741716178235831211766851903690545944718965255915748353138112307171232450238700592321985252075169879551905199069211319149848807739574275794447552160412237212703258699718890150988471176577544252498610308816623863669757971658162569251742576719678137539850779381711141420098325380147360506939043795487734854821198729064700740708113425972050079763694234607158313882359526034934505561997445564793634263765986959670791884150296383607218440047004498722072831480458129870051458144285839799234393086587856043730955884774000240249868557878692593052588423973245264819918847144882192320057586941238969832655883164112173094012819420044385292845059578258156792285946186603501822332131867624547069768642404350052888149452140147112800604663228688384495859786950754688716312190314194436789812770889089794689292627893131596030959954619872801847910068526102830722886207545291166747684516398073405155878362655410983281268316984713101499769587265016054685005468573788905270867498870539514469595823401073270243760888428639426010394272969221629922790547992026336082344420195972671806090773968384269587348334147542766990327974146891919430447427063776070195688356568877803272735094758672786764399868534725157705563208781574752183162569244782993765146402721845911987478814837935722978021371732889360917087756135494085848077583236215532205532409529499823393563052055114765082488381126794863853621696242940263137062019062867690284297134756542141300439819720565114184589533743755007511098927968924534973443467535664418856466308144336249163908264551117688399600098297400266998668758036996942575672567430376711469017528587123304354657634819737077018628857529049721183154803557669599136386439569369546806974948352133115964144092622736132856460025385780837549883729307513664382874019899131122031192511281164383396284270472564117066485779343593051764103445582957466995997624527447238092426398860654392877887182582337644782993059330294875886813367182444752364531902345351141329212888573323055229511745611510306721312574025733662237395726447318737310509047077632920947920271119510440039526694849928381292877008485526114138245236659364095108518473658162131274018423078515925093690201549695789979784222744916295821565077177771181461941876946259304312698557200821964846189105157477234552239849282406904007643690776201349225186737592986716450098837123996934613032112325245144306166069236439043808608322351180026502362112613583335568613077263100263969880920826290022697688762152978694128780845257866983190607028146123532975097516322139533795113931106528715287133819330128097101410052490482218921008750368813913944331558155674949619555804272063222194620416870122264745410866266875445364896257111687060543103676958121633097949957396667097543695392196391675546080541865223288177936879598642414713899487230856248945496142656092948478008240569793179610552764493942368129461707789458661076227238050113072504014497125468159342633711181398838662355514915200433675715890264398056682983980943142238198439351872973773077771318008204770390896759074470072625424721734016177754559489103760859667015171802764542016725653983107720644825416893744884372916093446474563373823449013311728677114512634436633081157695890341663872328572742588380371430050869792356826288866658503121253558793394612547329195214860796293937248531662961525487909071892221922165456285128872337350720291879177365746377640088384408634222233863156717553459894300734337025937088059727214544609186068636816084147640621988904999703278830567792526900983920780166790929882072447254396668561942071148623322043332037557790859939293817549758243151579939413907892756296633522761124298947482749072989275930459117592315351781411985071290971656568895963348008343721049393188250119468548907275365580903563425820973302638623762161440335298981536816455309321711992890520741965893034959125313320082009350135128629517970992214891692586062652909942895451606960777633556753907497832994382874957023021204627363383151021283168355150125872734194647370132647843574162878451925306593639840808680021133421362222393238099508513443998642775227782135388143730606462758366908204806777712329545489212386292770430735940010886833170752574603347040997663992172141054399217717455110033422409232091339818762243403012504092077475609532590460010883425262627215896741898628754310173033160622241430403748133880384081643928853591480731500243972221350107020958983532077591631743506448768467312872182068482055427023252827231183445944810379796959634985556103655288739509277244896087121557662845955994643077317030560046391792285917412363226375411831818998193218914894452433316615001774600618028183259964715636516763594463798234445453312218458588093920041662557803426215898519997466075429953383947456446325507535511314678495531712978083897978639731527316559954984801768628733270451483167670372358444076478922790542085935278408146683568831718613576696520167904626808812399942818241181176039575409120309565220392167346463881578090544108622883967431865535320609679909342839333702222885043915162570364038687717183296168369231939095769930029905476120153724262759614989393453799218067104431221986120188311959148772020986607759230754484782149043395166252589581340515416067093853186680381554769804734950299526866899537710293278508596183376891625415367869447838977966799822209125909763177991657726711213896735113384883475264181884987182366216133390957500581752307500073628178676071337939982844943599264490451453988856705777422668289680066980236909371158514531999892911875825570531032853523651215642337640115402928051790322823257809601179983207866388394736417682530286252804916563252920135137015114256856241683531632159439869510454166311137044052253791133831229986170845100968915318972300899683149279039268195854358433484837584818973341906033262587440827955455449909366481037340514560787920364356590438780745244707334902997090203776482961461394713874566124713121830592958757734394111797978008261825102079506423744773488220130981459055795791408782565194521041864544511081679274452938699665313374775151279656158710099455258205777163347338305895262647708937090122272557208764331696040321309036433570984142088341520867517636907680145319869477001306653811210382648606883346732504270749395692234438187690353743900377589945640753227528922742631017655266187861635733754871804386712826701047335759971079355465341757758280577412996451837776168644453094459510486763948099000885891210772527061858209923309952296934173495527528499318998280142811878214992278401101653530995597286458860251490324941484019256157194713706481339086414931819045399131469881338544329005894744597593549132183725108070119353230253141677359936183978503624510799374737591329288448416286850013762340584808299049623254668628517095746588432153330615555119064760173000967238217983294588305315091176016640575892487771438785553584296082396281521212952468734645422864922377212986434073964182074694022994991794977958836826300314632561235944903703438951432562803155410996027836949377525690064154192622152029441757563361277001185952629376603538774118073627339138020607003776513503734968040422201909710266526828768110327377478580538213942493186713077824207355043273699184612961190261966757485131870538312721612682461523604930687487152613999858662836569964067934280354341272529158974610381753938438049026803406881738539921128163999255875324363971324714784844362170852996474226366095871867268416736803179355235923326351024144934714376847674164718046628065130972063649704874046892552106853308691486618411837988039547817166259509814165484592061556265999931117432612210318089471889735076394411605720629592981843626910005646062711596988662709328109968786962043349678374292220776213982080310181638638854041297504514743493188771273143614238224854938810348362201401870881001563499570875828808802643677576184149848705306822896676718840348689651101742005114355007103756646633289043841756712964844511394576057336530797822348089402872104177621137248659072661992539976454540924920853914440825245340809750546598243116444633473396457554583470164624127708454693925535853158155417459005675015928318502591572280666696232322002047906890750760379103607017525907072402609361550555990307530536049763734899644922864398179537032982142368651734204634109507453998929388093075543420817006257874068224872147104975552237513665343371893972862995451745001861087875332365241383235376316204826657889130285189250905924340933159143200655486497425033020200418602163984807456360720561950427674256550150808693849191711881552215733385601916914518573682396226081256916545927806647414747005587726110045864368292764144141051003780751862734909302257007539990842766835558073512508877370819773274116623483659526350726697160037102961621696685541146447030167814314237105510183012223489011392523017992022664484651297854076310696277942233309682686599352142562943677155905899718401754896396620547688865710630130511564049128596908131210500254042014574241863925170976027939609164720972296585492833282904199778434158354211347069230071030585407710891075904578016188084630819175388578328899875261490611052918658698294231330177418457184344469876123472127872704698652128493148276032054006738387347113592816437991719028124998958095845844314997275658171094994894882037262326014798039057827489311556217339433340611163620568161555934387490058917640714296612050786952337310249732220624567313176582738606971723743708777385034469145915682779767676590341148039934452457270760785688838392995229827225181862524294325775233228035973045280429881412918959781456728966210216816584183935423247316674453519840254139176507703994347707473229373615291553195630114293464544041966517551254993014262570698196311040748997109752189450307060822018394424968185024081113365993810460149105202488655607808567812450631195278857282264998758343674447881783410831281391318042002811000846868192957977339833394514115799341148910573052371105399437800395424041835992862020911705267119165921310122804458321959025682348063681669933404321507013775657090081622193266292347021698450548563815037076869728555696222605727742006710407656607076087808287465705422714452778157747757940148671300314986403036690287964267189691957858588572839635636475197727339948289658382207987366755399020583746273557986850433187430327134134557938754889569740453693868953680260884423886246140293999740400386000781564230084167534866562820043790851261940306967054527019534245501402438131923423933516789414919372359576430855971012274016858426946587593403603495927329620656664041509866969542617827682531165118402240607100808449267658869978140016775833165377175508307778261652790922607504704503700933049211926143821286247027153726361761771839023791537472386189902577991214016559103944507864006030840001891765586103015792755208660929018933079873385167923942484866030891055375084226019651154688893601440012744222343715355138141760056367156496623546794192634824355096056378164813352553226622919926119459056566925588521049941532165381080189209980512238046745171409019690185152834190205219512197200552358478583056805449392574467577981112137729421066529491409273605497479397799832861722790272828512337090908018551578656567595502158391882501608263537200938661403994107133094087139463369339167264072284112199624641234616557314581140168611211694636873702882999754342219643081313721385028252793763501533151457170771681508994781874882122912466857573515015739683754392270176323989029086070373579742943044426809490311511084820517193882509906684938059484608482648651583633333439009489878749134692867719032616860051428010239088521122345990340897546651315227925997898580947620369497507344993135363536376461040003726940069887469118491108078083664105666304969343477214863101680464478801897410489905369435419699847346970575789903477808141778173010269574911090576286434831151555251514109141509165350061979199921090845215476954958406647610442221892756934587886527255201385716679185743582771913870780066769808345194221360721033480002369505785493857830704386330822257790968151227561480597657012906451827318597044968983514867665200109051784603504955809540038087050220238686387132159965168287975270187347164260880921496399698949811345646268211604612644152198807694372509929955116844899813376980768783255518044600170299173968035615036512943075330896037642577456286325774941324434083075970918539241573518279903334011045107728649587107437728793538261520403993955235866103973390512618920289991765568077017876749483461128789197052651891839088424724898986148095035678388582936495759181176255290694330195862656685818308220752982031357602935605428900251501178722622683374133882179362536615030292693457258478768287280023173663093968896239349989167845749533575309516931036202218923578702829575506654914371573757442585078251719488438367935073201026477689892722866309587469470818816918439189060799137264509517975765606846331810357663317249054589787157528580000509877285837716082148500986272179216201775765892359591160699580147481946325900104605212940958904703050595344228270487693907643857054139125904816600492805845728469974619460624781586873092719317043397546764301142517305094778091415504512092693800439306971295105249571023267464481197573128811408699835751352292505695087178279262054736139459668835363141246982203945850781106878784485494273934495327063260215964847476860868400537385514860281015626634451625130279549872280734032512341711725769321672340130232405033178622125852966711928778204571426442388920808460668029371132538599739340970905199670857149468205530909820806975562601865508127383228978977996842534483792219620456998959667418790725109459805320140096547153875325188324826303640690089269472196122344305962026168730099951459757125156854111682310329789718610491300306637339170150321326053452410595398149602126166595477822601804563459339313648368040857221189233260790178598754944758809991126274681875925516091065454165250320917141765529887979555140862560080828253877642128015154501192496769673635504107612344570720146843299857601946778211693642612666329613128973659064363063663033688925898839931384546095823835488004139468448834396542428786022584292921049326534805460636068136396903821920551944120111414413149082433108314687351327234509296448560124951894660130114650648525282056556068298633789588418901753395326734285110339651395825394614598356809908694452725185287144923180231894223002785674614619031075250989344315966523983526764147239168643354940386976975174072368432067941005437976132972533606483378778601143899551100705749141391764025936916034010705280976136404555804919478221530840728293821535928359314256756807470114047899350681188524334346844347438267679743871475032098556533346649671029426290143542051168369327951365847807786834595302657886970089364221330291386201777843178087851919726790119309189042039497991476331424088279395120563525297595962249446119163522461224185439751795985728110418143570717798960430454424826114772895932123623096666289274659836785812218501246358832523326889186345695799086750629398177850403493988733865981974985719267520397513290684634010661770144831054391954090487214639608144953902007676751472079528925648555888551723104884577315930449209937762670167467884500904885079814423173209931493802456327178896672502848876735812409873551621459942230906137335846994065144171747555906522549158016978538661090826824050600257125699600750559538551188646214931033109993241234073730379433794233477449121516941056622632437941845994048839832547927483129948393995694316191329578087817722075515172928055166655360858825312316526184180986524015477602243296683955055716554086921361599789629786620736965445205977613530761831245983726024674938528846953554966278421033867054632722581369988417687802359906894098365170889064047960356552241527712064413567190123331785367658951362845384488176566556146239138377890260440935351703599045546060556219656319736181819090510029535908599442253046371625023813548239953742971181427129108735436441084640311448472158179726850620001984806833645963961965992193517237513414589297610266897940403608438253232227683351740160472749234949259885951843550002119266436296960164504549212227257972904565908310745362795084972239044540652360839881472472124842023211129080548181638939064320234185786296607967533671018491546472207170932700284098775836014533759023341347493971663923296366265957289709534624026653558726592328490731750341232412011292024631064991414309107990418272228526538260498322933204600871694718441883930994689289288448149948949110753666970863419223357397513031342208804617960857631037846648865085807073032812957441567205593106095627162298936075975725601261538548805088181165667933664703451626513458910836338086868043744688445803136295143463197006864604171947150381550063520515698759957823856911564721757102789227049012892173961482361675223517792495747196173775543328141738778778032643834857074541246559450055449345422841196916464063686272643518505171497509936212982999226617457901907541416100582271407494252698787351483707581799994542917466456462755160533039097463598644318108411903042556266728197478482264807292088268534650819786641890895576933818620197660179503860540230823954554501325578901531665714369828896835394029811626500964752701541177474449833329094613243593738824703029907543923490474468762180585776636795252957818033947793081763874184645954628059045469588442348828879408809386580563874089491042760425410798408693156043844921321694131879109667755277249978798435541147786619968154239943371415887128812315763015122344424573716023922782028059149700820619910298856003256191688759732385247954635381160973845004282716490781140322103125451532287335864807241110983841508245133738917194599033288597337717542925176038005942442096730608443071560670080839763675120144197381424976213337834682886763838708803217839678646929583191055632858803439001784941272187719817062823894602943042381566159639686087426106912297429587209302712553024193149629229270161642767432712278347254947814719781033959060327350475895942407602764989326335549426260793557663052532508585830576333169922634131829667211789776866017274863996538476430571604872355638667016004775979828805399655121159387397588453408635586134235036670130032863801851411816883221753141186531289494386243054749533778586414436796685256648651513535050580953564751159250610030770430503799165758805247058810017046769523260486291493065837719697307715998596685985063172661102011419155437702363867260199504289685339264144822610787381220741614207573216693300244464292908975928686620483572973812188821757788787612629265886596370844927785491068123142927391627611430766782005422788795142697377366068528183268538209831722203683426815166650543806227800781444215462800073672631912332637059919143431708252598021033371981843745741177990870670428739934824864349015841166878284168705493125074671519135502365616197281407023997505990313881731968494279301577476804351150204385129834329125140301391091438551400766956354278598122743140650122580109090114950350691793543965718038117786537634102158223332805051481900087203723582083867937805676930556133832508133230719984844656471858648233975913343629984288866708597433971692232106656343713151185785067504403828353959626246376784275168243087671904624989062953051345056070241021620064821751477724950551617776589838012863800827553743959377425297103396770130314314357279515605466474565332328486536426076985562319465923903365919084043719439794421427329899548677955394245996087675856248300082550196338708644923917172669098987085768640055303945857169530743289946598130248375412699314416184652484166428943896356688528477256668639861285325574563312017536767986072078108273917036495066161543607985809284217875155551992863637075307336912873253822341670773389219480525640713726686698522812078924294321266698311618012082614768902307018118619000305097320955526850836658006055798229708040806919808861104777083764756097420436374441120240807757553427700445587274989713023448736024664817948680450324029739380933439912574427634373974463226701639236866946040986308005713924602104497982098126141745626084552977114569203967679602079026290331750814408032644315575334862624373095263517467987233026272577524721620271961718267117986843865456972311061963331093868564172313711496092633114287191538832107951035053535833027025577362455001715678344383712150062887528630767899472545271972227526052836471550325245186826709785415193892553017367357701949252149306303360550812936905635997135009406859078469559814412403125918134335029391463259436549148247323022386714139182501343104964323935927364592900709247876871664179559234661303011088761868041025095732334857554972037647159588819387674259374042539199413167031804414421373585539523022725589968734942566344472199837052698073390651809452032723376996818077048797640809895824072910326319883657146374389853114704940394936804767025119312659012536665241008380793911757238805393855054743072416262022583917494409548686349492554539318654090043013190388735291407131194513568522455346937214000730004940384068813727878096463280909427023162592931101034531348074027839630400518916309649211141916464238223438085543469062128778674683218072220793698375012123682360014034243161666492454212111834690449450590470256628906298991635515069002207826696632599977053172668202703980438452908882011250204739322116576258726525325370779535802445207331401291802780354652029554744076843780123605817807663435097650581588761316754761800103295635172433876177487450885012901504216967793494381964824345105899547974158081315777083838361390693331787864535091938558329744510795347768134687222577815008012356140799482221766221628669615428436544650374110208664150934623514431771092764484132840512439075288754210561452237532457637949312605914386456469199518645942456501544356970583361337542647284017732845668525871318215001755013052326962218585971645587813207220851174298281569687119431078581655689735994186576286510673155425414017537431176357220266944784540527574799254465888340835313586732285942313302871634831858924908879123804157602693686337538637791738525443443626724869111692376333533141205562242185280923522831904216567072252161902462710772399907237817921779888384215168277663013562583580986408644194250978547978092598376798883983617972408656817188033710582483102914074465414642557132159585403978132950347448156620270984192368661722931694956207886181786132007799109161064142860852076567053590767624220704247076457773260139264798529837991904278357655617332749837555287397521914244376168649959094576404533359736294549133865076239282417825543746704368645035540594748213629755244379116574185899919050968723992994562688733537111345650094132148508786976533014745114646489387110313808755192118932022016546530581402380170811418618250084141797288006663997653591662415523276271494979514214113772261932309657640701105928736138560408763384644679578694367292206529019363595281258641106446314232206531245624942969143459579020723140556390685496790039237869678983104301360490457121141641396656875746718692868386927540294158607739414799003301797094742638330473630548244356971199206915428481826911635601376508274367989537922402485878924548514602041074596199347418430671993364865768459045759381251238360993548714736575207372117925084103257133429009793665495727639067010345492603674003085847875964295637221896069999966911146835433348666121277890007894953204567973370441249375544398229352087507663231822305918365800350223512019091625839499986715510969649541200139521243922719291972701894206848630548291378912980840473081608395841820507786648037434949361389698979805663230062431356562513676317657668658621317145839897603481216027150984207689603878509700425307958754690744820736012657306043055001683025909197666184673980549566986434551036562722288354936075353559866173413978550844906653344320786215911817075158706310868055429075327401892027408498118732660999717780511586231006706320539006660736772111097000826874608270585629944254994973926974260009378469488986205274075822868551071460428005759773786868151075913021682511003639887004046810078407072726243191243096935854505563507544294102302935096707610658947568864894496232275591653998735527058212082992885692054667648320830766456310862034947339719085207380140062989765646401494893943632115121291512681345531804567781107267703543179622521606007819208907746048262750150382012378610209141944394931772036365113660660250061619358278624053641790246895735161022668044645662819382020844709317281737659184280955631150708058309128885381006475838601810831890409112917173456480384207650396950468728671541005914666625140759285576361001549094172065426985150613809623833595332867142782946498608849158789160049813396257168020368080058782767625096864448509158359273219336406918136824557597592427533736701555908725273466247757064043643374601887057248246004518475025840266851250347923994515744802621531601365238952539226788421722796615571472871955482534855169574711591628152920608661209930385586340283470211433014887937856621578722953594441890981902539118144267734476868316269667998701597997105791854676905783475742204014038126578721254374462115795732235865816178232160090104677824125457832168314489383955633134807967536183031306007605053637012024456572613877780387574949323522791714929920108847633114190206411842898760246644925507161827725317662015151873784162093131463495298532966543901503640902609731996652101948655915829693250003161151098227801574021153426359517791321645585335216580837437735710860372428300719892550862048326444477062709791712291908326522777281121203824572789321966144041241654334342888986791763996500364844593717520889278029678741000771304934689801784498039914573778913678901355581891360348374263665125470718439351002994872588937232920986428633976671270582061303467569896599323404416906414288932674289430594839317755300226341073523307460402284364881939331683432948644317764019543083618334596548111784719037917618611947859440592436419080507918725982268648321081639879330652939719060998369031663199707964245179406079741875300922107079128912259221179310020597894032841911481866976341510031707930954148332907719225252944953174774939559565162305157198099407364556762904799883615148419116404013732623085772181644445446580244477157375222515421153698232781560863650955084887907200411692434542512336811425209287161745686264194580297465062189304914636723856478553944901719544516354320919320870783771144766160471036725273614261538916960955292465173752030899160958280141831690654793014035837724316084431329146330776863325345438076468693941305881235500580201167210465280410378852251912540395988949265781200516548865202557858847420104965674978751534088845413725804376055900896830171220167520093806847539560038407131435828948993037252808034322062607122916713662010478339577021786461038672500155552240133877786178445201924559708613575457342672704321147327098545651995959568820551807968947272360187129614863053391141164880314017713082426252926418180903437850558415641001325034550099232557717491906974273191135011660003276053706678551504271903077886449500871653095159643942889991066255610241967428325642371885007260889730120068842885380625359359547651211428993692564684829648554998901976343354543461349435454848987324285862924250427200981710132780779188572764445640853804855072714883055371081628282192270205707909908988175197084074924821428682341619626831021082783877298407765339537274957579098538642301453751911365041572146137980329404295383805950917021984356359626054291972083786334641276582467268408867111922865026119264341268627594412819441479381922812364191398069107559940366565363920920638880230118326301079408210929273494048420879621479351339010246542212561882718120740106451545334995064169115427275043593383093616109818139083458439468166853737026488749834801158606209693370533752001420048107190604409928952765757239788056433527717906970004732744691901936475072850597127908735034461893790999908297722344706088370631348604635064954581109848087174705338838936511512570888628105894083995197043905192479083614010843680075037848178179121700599052509819768738052630893785556064070951445004188143437903517384422331842331060441202485115590198367736740794691521438070392540783063976551240844038299175326962554654889920264241634846007476369254007343935692391733982796462234259343582011871562202608671959065869698248613721357715710203143927987931957274211356580426349312765928021382870038745111293539590245507123473811815800212398758319194751900021558108816517091028887715481436031992805467186018496111922802670902887449596353681281515303717729138326110448801296288964678845566623120336264673861459362391221039001534055029416081180278562649544247008273587061603863698617042133911916255915420106499454613919126884783491240974822597719450142397323916924736648629922854267435063097022533530327946290095508771349946089545840158172313538058694411786775174075975734671680301520148273619972055258833684842960963679821617899812289444209173566514135695858438747004551196151871802619389771115146150095631383738915809500541478743009361714110623893734047028512462572144772527010840237207124247252125039584384664737256134105721983282961161839076673834915640943216670710504824708840542237695670891778337833334976428853119168476911374585081229603771946671776610644240487822738656983747259238004191116632624179157692972408788941100950884577754017289216253259093653482459201524940890552271713209732525006149679093082243953549545523162793294542108655662124783698066076994230619307996129944665481175955317590527507254262739457490959452514910228767693629649793527249550753440535111458609411860876451308836635780976322235732387580859682873865674944865605242406018390972364927459709498950840061513111732201368126780231200985610568254995238542833087557520000598012133580635908903195169700619495070337275447880810888257926690359429767139468602559504255263526627778383706401972828027872836451336075375703688651338418059960158366527571190659365058718668599115778380738189994565721513342049230128920619148850634812835301320889709646226884736445347357509883933629765657218035486081902361095307671265385843241825480390392347215878398166874937134180379424053608455623445365814059744210384162939684754035087527324028805225644420666708784542475073726075561812585053013718418523889690679083931051848736164394819732437236286920716002860076524099308527189685238264276416519317612343298083395212372882747366808225947773564718569245755367274029498951351743317833477998304702149428459203194869954237271541726936786013427495771870856158999400699197664060062459487981588424011296677257742243270931491842075485135307497300776280295075732140951163713056238843461777923233432193147478521433783393109810999105339246477758697121012085373383720378523430706327404830262862171503589060908243661781020040784303849624049596577882045995721101542490117084372605705983024431837487161481535106525367983632649349052971113626713869991109874145460480234447697486814142992559695314513449542906978879544395215437980154134517604209409581532502314318657873262160450380626629998152905644967492785131464379711581744602748439243603032783324197323760703278453284860554705007833063920660142061602940337672352195749661082203707293642982785037441104917245660745705182750608294817796422446437801473426861477372839404047603315741991646269136555097065805529577476618641512661887902282101905242714831793719893851261755970223080887326194973093271876800334399804639237113693744492225957812337733847482824316656924420358371835386520597316850470694104848859439399512508546579224278015651373768898282079793421076831946304056297156226767780072051019093667464148047897399290906546078502337473949190017774592257894358888311567872363472142422195422437961525266792793210312882384163649435927467022698975066635872225021657749916712987591761728798035825113620910095224139030888261708984104345083400878354344227250109743843859520426775929675480747835426263439539395742220926352569430844708241351990684768441811968250248076842749690310686953159487353420869214992708526521010041541993293983278356587649910395614088841171138477080385756231435389293259520318626369526462087401078690942893252661149911920058260348668232243019093855702761787854305879243930084256914323853730491088444243813284669264802647577338293861467739217383383672609812710937485448674355424263635830144064530273111800760656428683181219630832805646770144044748128035643346739210147532896439267344681185803789323942376261676094504547062484398855832565987505445886788355996081447415425425157241888902933227116819005710612270753261959338464170592421552694758216640799090709191678606494647484296302992540885364476916485473397535837996813196648110272570920153029293843796459205805632853143818908878669622175337399750736023202610607058384506349969457256423677595562278991672019387085121787779030332323095906179269254871885514143565570379738463884750439443356641135975329366846653638650840420071070072100366911562348334237224158348561449261317068569673001933231946855488543826020941310958641089267970176576799989280827876218168688242279555453095790562494577334457915648864210711023167024128084541619874671586682190248189303337079500675574605448716216679591363342783186218359524085940867204773887541803341612727732701226886111202275505907789050874991437990275979839094204758233771690836800520324771597376037103322254666649944232431450967878013737418107208281543288582435857085700918723223796002894286540782425771646715293926962454790884651135282570518339900881806171607849210191571616548444302849004573071152422693554070739605456830324586519360074844203853320655732235163423708626061562148490607044085841281006508883434457204858314675920480381646289748527274566463365976162840107339700080102685112075857586798767877182141390559561267443772036142740136567869454150136898810867459224630822955759339760209932848438230790664378747974788946880786919505578099552812766900657955814741574418786958104670715490408651683130533104876135532579935199028913523818051002592930342916763502496395638060851408614697341963920960117458052184330512119223806968105382372163705037948648656004152141282111925233004092705335347360504132213954976004683152826586495824096748043759651841317211447696417743209166156591780303744930006831916349747175704353260274711327530962482789907251266671253732966594230131108776471671049446356313512774173044675167803064747797064136564935771933352419671630912008159011864906122221665040491113094326010710952338242683168918150896626378205922331606582839573013539391381184694785724458064113926584555524275343132188459815417911515047402038998006594898642463858402604875212326127192600439127084145489317396881008384266390030810064604218574552145831367937131970610917711162406555575443544124149994168489911385489468155464860013993351906651865652613806300621692701746237323423739756626123086800761738016443996469587324170356350367417134439756740474399293727287894584918840900362824818885357797592232100107509241175679744223786849030927843716548033412899940355724477464920446057103020750768807930154085432901000235629147147445513090331953135922818805785486254861377371158048693536707732929748484362779110878705501336362929180956824578079937607829860384190387323285023076682325850586635267335283599104308826472235636301892450183600495440707276870923108203148674775063065545533304561099796793720748324489436907666736757322194647130038231908509312455833047630221252897203544386645293128940603834965615862187923046141956613451640973753526977477325440269109764227093314061040551831154413322339116401690120377245483922445713920293031371516632273084594541295447693141310832011251810886971426576866512832328268479159630114136790528390065889725934520663793329085289554451597301221173488375099655110077490544555219845385124287214164532407369858353410317487544482634612963803192222812067905126131477183375636675376758816316493901757101231058437092576157901328734382796888391910097810066769285929400262492947618381969253224408519304800819870378398280126877185113515534312527618579849603207080943229264177523583955606976047091482560589965840992474216749441207304216731451677617192684657595437398238683539162745460640893169618697426553955152809850317396547784106102405713261009290621873627489299597671823869373815793283557647275833421912911423564584441397293248175571354627100961374285697400623905645729759075858247447781319384611289631904875578862628860063985410995481422503281113664779435254792337492683317511773943635359473312040581921549638869706293366975081734218817579258193977372830718511119621611071646958955323863258472922277932849321343595372717821465611791546994683339460266618879019108810090103936954930825791151303607592508786808793276329255142173865926063015740064379431704494224988571823031120285326251666976160063595134359699800732121460860024732263149436695643931423833661200960933949712869890863178087287780189139220764141239761522709627143179497824460351196750706607626792224202495820525718903134167827889053666344426496376015827203241619331641842517757025440039178839775866604806009289372006981316311727244774691306359937416358292375101651595034785682810543821928253972730341793978129056960986963535061050030331314515127721266101638643322203101481385629214822205474605201411226073142644543737796568632345791379186889023965111861074716335358748785795601214207819192354555251033175178490852463830572146563091469833833042050554003267212526106611117077011414670187751851970698401085634882087371088369691592887525021769494101653532610261592046058067545604016994840949267590795118462134430490771713805042097535989489482627103797927251557586937411615042086598721870297452436313591390052339971966217734125391454369744584361815372852587354100773564331077794104990634777685022528145891679552525581421560287457483590237058913746268217643255220414675174617584299823160962663835552692838941316102095631504110816672562881792453266115001762352588034726872483780199924490002412325565420691810505785050567505692797057300720452690181558595902272461671038827449686947233886041979690491728056133106833660273797521535073912540069265478046111486532615858634165511597986948563800004447138645744020692508353445465576056105753167643076450416013619189540758053779696328753694123974077687331056254020143890419006532980156015216810387167826973483965703391360263384339811542222329916080230667660612374540406618554779254870385484846890863003251850887086466210484412352822795872490766480735750099911979522083696096386745712602039562735211732510488396873119641517839887555064805995296523187320806121440846129296191757552281546722262575645615564393905045120332408950243227525108063834821042302681225779629703659956102652298131301403771453604546645559417841358738482311096137329908695154948880665734705460560022411284066485271978142676266961763378601042096881672450493778997104966752348416567036549947461145913141048833693722022569166040486627693060795236189772048032140957836572922843477418385573076237601932783477692325777304039639210037571384188225845040797684338197172211664576853204064293216190493165685374293983153324125722563874058664052461450409305183092386337542075296229456602330103537413222061746598987795953482555296907472225253576761732276210951367854461374151658065812635461247048720816066455207149562659550661212065584900613678096720817829990905799172704902322858363895633502715578134949047603157795960166277843974431379414012625286488032880709556548017065151988321562556087141571307923979193554426505369121053602692544738902413166980760343022315562413161401285096415967806965737469778212326153253457950603115107186929579917338144227033747681342398151888436248361591290866311048764924662490400087541436541164317247537537434086235228968749084989250932670737399586574974869909437322502659750462393528199950565366687718239701510995233494683362702705509409190375665067426037904308807390884329616284146848512150175610356343119046086534714081342912737907676901174189673391714870121194309719799627476544933630442178803605360976587624256038572717922141191610514195394467633949475824628640331479497689897033243359535307758974373245183310218504553280391151180271739287155373718703521359190696493767164803951551426160823968108043892959104044067379238208960016014550667322983581755331576807277517205790824706876547911655333802260617055657325951348676184887634379798923091942301260505687759615945012312317406540217036627371931710999443612063632362671949214997992153007204910063607116567170135556093783659272587700237113548870694632642689954067324107801916286396194510098506900100894282265842074346038804038961383586399135509458456748539497968773243977495618738320558636395046610377167350463909249515577318192869488424697250746818184525403659611112207881641395167501226451408277540119471235903901802685976071391175206709701590110717107794495553457963658562207861365025805302563296054627320592357597649030328101259651154541681357671123932418410991886623512106283837645369577670916703897682753429509181739381497270538948084348109068516755382987649683123022375968653783883507609381686657583028487201713041416479237747276802274101048156161918945517745033393617669711467715558241499108459127125854797548022282558242100297897570321321541592069236785041815659772494476318777342066401553166687765068032466057780463623964868953034841100161531413255168371963015650079856271420911932246208527148717847181422049695976481546886206137730286978550650130178399329127889703142655234225898526840283018249376298959242834895245252710421258144868829684650055239824554518418110720484016114367197198466276749106503683141149965632557682437465686739530051497314843002217526104475873535188781393742964188997426539664559795647530696204250932016632623189657799949313632349794876228452480182941068880444185676169126206655505615976275821024238059702410726517147369512762154981980272394130046704926573348386075540369619429475781811558678715935933711943997666170021196560675851189348140197087744189619649942915278822328600390965955845664052608224242908190683986943218928963786136400192229494348580214397023867164837920799881889747104094351929205202574471506376289024022854112751192731286205986890397522580454723709842921586723336587699577242499246443896684507765742944950010772504374540779721098190697962229970353326335390210265111129993193839436202235440339238054334433931586919152178152099607445526938714135441157885126768362340935155982216230098841349306477308565894570141723163514962696773765390014480534774193459574934297158890511193090245984269474417963911612404255953651534987580847685617777492114983155610077490075620697680487955739200421189689496171187031070940342086859694400108026222433432343470284417482504642503772356801409161146998396867385057731596170942797020679335661893128900319656709131942073058328306417319192230210472056781871108319205254864697232262823169991186698601161600643632781075438588617155030341250466530690865224185110554892675007715612282070945745715276850431212661118692827492460773239767391804414985877204788732213386691368413280776143863488498377356090874508298935759544836085678012435367625375021636702852098881334969796806325331875169251769128426537233316980703721672402145059652422641056787718946105690005327400017001401448695194340011427725275168299846852885713756701970113241201010698562414642057127944600923716876521517711412392818589812207433289725576921775499463133273292356693243147167833554726306694566381595673878310309656781463195987686461621639593866570640287341497591307892802559498527397635071813950362413500419339722685046576358550542205124902540426316067473777682927713177749711657163851131503870281244516249238624673556165522080032054468556416512832897781765304660780227196451000789523272066015625707754212493840292874448921155482131571258092731631225163019706890142201509064015478234792123192393628854418267273531978624073140675186167113053960139535777944610824910738877568928713156597370831598812095434204516142348153932743051851264903560505005092308281068738356336264751228993817653829789373130411231395312685125398542539671777623469916242626720818099716099972533111974782307898893020677232141232604783333317803931589970798006123161922539255954080686740551230153618763826037016499955639317110053568175243064622385768320729366165471702152555449308461070778444819551949999773666559152532291457163018787446096117144019055886267945842976084352328060319765744496327127139927218815996946480943316199569385347418497966965902436315263983251456183157318816081235909678295427231613364695314989608922191475085864547577738302861848733640133075463448579295054029506760115411698492576868405523681365174087908174243927293333446381819617315402159330449914317082491192092845546054411797583721890702482592642840146332615375358718685054284201332021024021653942547736319566332956523431082549329925970291657915238296206228954920790165632125431007526214514128972578506885260958139192412490411592577497804246039461811135963339200038803130725781633729230053856725019854076637186208252230337321267335388686670596456856842814582895159309697373773857067652540966160940996375501720103542588497300850068338378608379381745692445351056827860920682828360467711771469302289653060885985427224053249400068327712237312854853826003057735622354509595051402315491668139656543170134571233236334248984049647416456527906098690441689657660204486216188660465961333637528655965981443712183989637734409165082423029646358838276036420231285865470739178779252256167882515157798361186209566174161273290191776493842541636087130404192287352600774116249203788089481004448300004059535404633110786947141001885996261026747361511976101877292721820795367277097369323113006141276885725184843719173882731563131244839817311429563275079584782613081261289783866760456188781600921743843077298612961313634636819986923524403648214403101999866490475265378354833489260609517346652384500640140588430097884115133293463815225348540934822171828331088005349520265375687220434179877706418584510738518966115802242726653950319676124505456492124995224537275425000922404035249666173632932000988966134062166703423275003185663844925058156217569124438344269357162445158256074769788261724638526291105288586508176898954732054459628732860258578179153837223009633836493543617841284595573198869192754037845400386695252478495197357843901489361491033385206525817136151856128811311391399573457805759116214575694367523956425618157194608878868191642254755856425040789739549710109004239909441038256303126590630733047225673322141237329517110989948373273444440067061633625708989972435511040979465224834583403783948261334133929299619824522077006729708076316553404832172102506799613213135158697059691127515087597531412050832138715222948992131373861880454864776861385679639010667838476855263255727546969841826734489157717951869002326481185737582542105003472997720884109533399748136279605101136547177155688641966580409678104943019805200270732258955678555240478301093590369888230151033976216088643152093290269168246623640263876531003587307406282769062301905685676621340553874537742080931895051030975817393051770178008103420875939703016854489832285883903953079097289979520854601842799535497175140765325471633301803565727111029204661134333370400832690470229979721622094022022331447485108521340672531236867813817123562466744488984352755951766007894345059391133777760245170061532177897214473222253654652431201318742237717515402721149275487458702471162606195800395609195946027264085860009178639705859681120371190335974757847658252780455766958424806990596128214348795019535096234498719078517067646455812207651379425316318440935325909914338716934039735702858925214848339647048520665426212127023227702620863480559755427508254111950993785073895502525887854733973487944946049053450635912837574215125290855198434056498918603346599002219585147938636218095322778238989539117921024550551352089949525418059917627079836576089975639060657947428306160704509186744469485604243917107915673472754724216159082378695051553289363224546282070138608610577569216680514729961096630725985137537827053062272798333935774115103432124464223598697965487459470909722509345944975006030199112196004357926524988275322250105796310236481351724256687318518487053403271841835700633610164303701071174564780718673492622805945019202846387249040597023208510275799431333717235042128906455863891336887826662755996327835096659583701795490682827837370822674700551506942747777007159041199408210657940614950499077261351635319858926875593546076446798109786112328735182615564145693486957791132427830120190455667598417735437119277045402941742096086536656371224088469802394134173642045478295031138793941844600515259123155366568724396160719066662873666989424592638635255390744932487158014001245171883892004303620390075371421363218543004130125290268040369134268515124558137059595297284573621583036881662415042584506416725222931769939651802143686869291138546080284288847455237380635582044462955491566086619279821712407848852907164640675611878027639152360368259415679485488614410215614537366114364033995915595039773474241294215082313261079653391466614809135114201011113936174870568594619486703114945292682951505741433524410760563139477079865180272749519403934474259737204696631403013230418598462961886793440712533959016330911375527418420427116820086075499399406740641139420198391926900160407402909272839427959369040276855804237108143995360096638617305295608146031436101887271107949391028243988245308926775283896992327359257995816257808296352882927628926767257031814569457545797989083527259211011477213478704788474651620256316440721182049844931863705190244187926911877343654907285208463421027132674522566928353560439863832613755116807929276262097821058731121767390810973293932716110028396634723502201076551636755044412005609255388125387371170693564165744583515623385957680178879887932476600240187021798050234602600986793525469762448433000483486685130235187022641829329665368923767636811191937082165405109988778498970227572719662049660262241450596383347283310093740385933212451717557188528460430084927108412657886982633971977982033556666483824491821139230420512672527990948569027811001550659673599094347236950457635580055732145991878692839164373939061820212641364868843423229801061361266713386422529233148967782858543833947134280417910845733988652248383129369292109834651522547284813596212924811317753176702818115638411248594169512057401145707439244365651995914076442558536215746182843779552157214604682132378719078560099269581923725638558656988492944577405705573176926411403496074976780453230921562931530486041523175216462816493911392484828274836651909040842851955878938078347171530623221422141325330261318608735312958914262419660107726777801016909143237812861033296440357803613516430192146549461698697484987729335144210306680542457807222806186949294346548872465303542337505178941847936040166075827842090096489043152728691020283024252658606667245413562406653623653659333875296922008200332563999118738152056436513332133315171620899238011324528154624406336553464543627320661403025265193201314010217852733168208678118777936815390274575416545901999868932842637336957012877728898133573298748627130354101709803655527867975639664504566843454519899437319646133547400206030207680459950451730491240975605850377800223927954606657046246428415090712418321949389426232270049811781561493190213001454990777687111010537908000703608747018014348449066330857006146572625054565975468987279533578324337454830319749561650663603087966004026769713320168864831955505809578011824947677414675607196580310454830475706046287038656229774856756147022300172963493184288697445536969261710504153190355562740473593662987295739669191834542135885846239918851703965035636823030868539016887900550114486220796574935127971184267637901576401666924486168082329666794788217002904752839477397844468137610623115997495409041646973320562657255591403280535033207416962505111360433749439528494995854910522750502680570476933167454640321075408467141729280625760720079584672113859708725631043509244406924000649062766334987869454925097540590504591789286744276364093918982821640943163793130006896224172498650486121779016082092324720841289739278717699150400499905431011383662872310806481747476082101772798266330194333569351933815773519567575196887288148005254578748838390359945081929710178243004374332080195845201823767216898317586709835610612734326760547843040120595673167297437366503071965945991448678928168504990205422145364889461912768238207741959590597217129466596113508443109448404283769356174676355387196530544603889027437970436882004550515479657652702428427312793136223304018808888963390956820329458088478119185640172548382810773266284099753856907744434215801417258927817238121730781657697154411299114107183160400560158490069173304586098380583148522509225371502987566841957163810980777457239403507628193091515417416729410186352650799113480161905812199416079504820933754871195018977281538723179001023073115505622843014411236131501781049451916642407810605396113815620660086255732961746280011328992048888285449461947466897299359148184868206635964837743511310702823683626319072675516994611447132277527727066570834551605441887761738570465759112237430541571977295566690872029464796630516510278508193587809133881192363056996725059792401519715552893623444205213111997106992421769608717997568906151898990279602376193364165339370857806387504443636002372784328207923690297525576173265379589435803472285686548292426659911470843696176894844546631842028599597835732293168339393784061340183875549737618269940308546637529365529676785328388245475906040666104808273795138664509673333890274688137044774794096165809579902733708339794420838151822366030077336762652141547685942292396817835016837358431720280683406181697643260415728078938309774164668136088980676259001168360957544510780675126999912455516821957752158977730135693126321221136256290270084749827840264968839229171994149589337457259255338707940344650553900461664496606990036604618204682482966659552215496904564689193372597594434338633941863085735882734943670908352358809861112684638830907380882334269827034541302640382285317448885878615543497531737199766271427481553931138674132161385565188736335214326662761863955530021835303361930584592398575495689465636840789674998428220580714425434545804682983209396227294138132664599542349665704151413684879336533817106106757646921059182708947212946697853518795685395352984984920769939694811520652809781341485990581352784136879450806709225431510615373165408252992752769616680286017679406450007260199836426846370767449637304349212961605301871374349511042189882803650367219013659526195962012035755380300483732501128714761438153985100099208372099173675095568666488648379221317926644381128188504252985620494130771908924757845612710392549363271613209768377113821759278371958145800222944719378498296803279976834943199208021248941852153617342275221040088494144758166065657679660262253863032971927320460934392954704564726566758859076052752614867650291711567154432416268472241716885915573090867020030734093721430072874842409335335100708764781883533747337801523836731685454089995253831162784864673018467134722982840480647723350767570825234435284077179679052528885228758765515230435372783203961913933368488865508019352347632005539213413239743854659333679940877033841162529463057523003907813570009633069241367108669612639791382654958545170474092484946813180092969135856527264262737524619292343928684086753702104176194776245031789906560708397834423670113072300638288360673457375142595262297725230074027903207389652635078394196421896020024621585391823196067938843947367708320962253485463526627007172893168143545439250041439014528477964690019980472148434845037902360907048676576922622073232625954658500050879780645612030027537281530009279679290327514187488360443369753869538590398995633024431676694167575076785561571936929056097198014711296016347806188750166469649825568511918242059039018160285765321851294127802901197411022049563123352540151638105360296487567890126037194581237146829335582697652342489739883873303238211838305789000258747564768867162425472274704450672539263982989199905591977795968296960076157849694422040064356751666497772382366708339974016453828869053009128757174489488450339507895764727831381306111445703630159369726560942002615313938386656710933406344171244608110490599452568916042526364680632996574854930975855537003040146025928332834927242515466319446418334504525115535475001039802736476455233183475739515749934395029180348633780925401166483302912743751134449549697194223925569342535063668087828476552297319875333174382026989691814271274019113337622257872286728671548355164653993969485741507041484176522979276011129782880562015855995452229920342817639205265932821889916521313513754444119126016807392239697284797451898747980601737383181336016192701260368576177404287174004318444445122239547090337978983840501392861276651381104329299427259252091417810944617067419870787031770019114204174538898648576325300077244340255189300576440340925207397860280598810215541097435150216518838468257349478680520304896895561442287625934493036842053256190797380302924903232620946892710782454409291370596120221641205388040221885731174047070280930074616425087510257234724295608625114171857684778093447984228677276345454875575891439548642295381473568251987461877626731916910892456255039448085544257117856419593472408209137394434793206548674369874666902324923397793057141815903986735496187764641046543689411061558262802884791857474645719937447798698524375954234442661784183716446882447090325438540910696640753062085956317749211943785587225954158044747341192941472077079259797694813188908241613491518144001513220621458074657115796755800948127184878651181413879540812460083284865762458861504189213223792066514205342067142654733930832808749187463484098543908316334764575005028867077538491014828075520864740785159690313048383818864987882651160511368310468393514004520637720664168644040821776945127730632848118218023431821416639970646854477860372707330523166311373057427291228001368407634156280630014372516930062820105925653943682352865726217913892624174088597208776435381674758540743612156268463666395364717727843093246149073214316397552035685495847418538086036377269913609615123272987510707886003444289590530634906590216542860477069246240504918662871423719533537987843762092234943845304709090170312216682429372534641636389520178363912629419961432633578833784802866008712855294146334924116496458123656636485651577649963125466330714177439659738144208456050325868046345371796824314660713678477335146470478859726028256122830966912826501273071581393684497174329035930199977471861877539048215041493789094333197965403820518749024253431449748618280818249253020354638682733211986149292725236888122563346363183277393322977560984941658553233453511868217855978318703313732097819322296079976868961438181392649545283078535532509228289064004553257032510601614791009361589153493609392705834165720717023464921004562013055756558930952330190084524060034060820853439062013064044711522474086757634121678785837311860725314217430062387981575535373016958087891370215316411386358895589830965913023234122118303534338062183205921969823663748529889615164459421045979891417561353964469196360670932908748134283663533919208395300016363908881827069121488222226643867387148417879037514670158133987219023553171889917045376499015943080867764965075087709592171515291669952448733976270468160795181355938639211311369027138211357426726623257292114047971806245632996961634623497198929029495647830199284800258557857235733659996152290422118866441574928159669386696648784295624064664953355871246599237111677851630489930037608934770129605349490302449768845617588797900223408133991232721890552530132480493577551449985425900643691788022088994265227487328880314887943226078210823894539672632457040669675144039054066441909337922171625681990275435152757438710381237996801697075691903622732101500412562608729208260900629334653380976279900099667219019632593056281566990299807998225420111996755063490304324582391443433106692147382505821199367054008648335893121657876388714086446843627499350048481653228941753005733268950693558206963387779100101514984287209127175966405143530977434646159107561116724019155886998428843411742797001873104985376656523544185875263945521202521925173914386456000299958765874764667726666895946167729546440404066258472504582006181416666376663336596818136136305694936423127255821856520874185980446258612731647076646092361259471789754484630037292173475195810131686957025689587739142735248331206414453054449267545736415311298330309313220014228678647971803542531639554773325338170336222425056484929589716405374977537341238058182482027352433641608110263920980514292900129320963842708014002551673149313089440256565425528214200044810570883321170867595127234361627410309752011187601173207909411885915920039511895318691047995736879167426523046126502471734436308418059018008756735395889106576831920418339646955755939288915546613097042233832375290288115273986844986208760479964652882975788499443304980425870937013262759748193567204259659451860521911282702172529197618747756438601467044388870035890138124647449052165998325887826000537846536712597995576669466972745383210862398015101128060781998365602094874134571697861049100996444414166963442614070679482034703639649140713783099731160927963355132886821319967041805316120467333995529147694549212936590390018334226515360746918177366977988698079924850922370960828303839195091842925496279329695101662975709383776499895085936805823352340818032459112453954478558965100619093053937219878366005043233617050050704896388827780801956301982138229128375256888038785257199747394128088318615176001317137372049097300415821183324291129505471065480077352334674322562775545480958897202164591704695080246567842305693505591003375953981683207185028068271782685503215163598136964375821861896588401391764425389489251381734711792500746538335543788794275074156197096688648838587628958214538053111567307341629405834139724993042247679082949342128245792682846523562285183693564117176756118068264991485437214403032486658118581149975754449892787988536431689279138778233038131552113191760260795139634815664223543426253107666836928363894760064332831695229572439090348687656470936176214937129546927566767217580033202847569586597980486045339520753231336932040876872395076794935795462465914640167400789932125435140508948361376283155630248789793706990122560660337470627449733992840898024169829932277174884388678675081563699616713822005102719724962479073241568307647298050486422437505346255750009023716004061716677417967266753557930538997930363632642292450418136670734637861526126684651771551729207355880498120079841881657456217247133101868201341107203824106696540206781823018522335775346824726309830034391554774660305215149397949191045635969108221976775864651135864153075751644712934257899067564304399315671159755545231088205400734136000236136917282577591114594055628321791183188928969649967350729781022563049783363963583276025980720474190562495515505774995691950536691833347422502223107771584326708646344471366701045280113049552023392899265342723526845991999737472558422852420880854971344371201047896322720122973295427093212907920395044375272591264682319749453391153172686035160832919651414942999606475218861606027579522887597258499362836558347988281292632635427002509005065950895819029550075417993019680061177065773561793100867478350901877932996203139947191216900306624748729776750099335962178307922422691698183584033398758424345965257941012244928354030581564698764758027965904674073865856566085033370344358838096852116329200572437142230340840269028691655356952396936952127442083573004136952200883155401361318481101938602694916126691608308229299692608120482358639129766458720401260713839419225663537602101616224529334786566104586507867343909331334684195961944611773533688800621523730569298024618945685910111086182725064915401751656572469871667029610179910256219681924065219225169777014450091903607075299545413655978395802969695307829764448765249397400972699750656788620526202884521047138256632825730468883471150319403212328448232825936429990367056851886281245653042611306337741837389925256762353251259055598669879573456122470868477879122476420970371215347156193797819094288896939546751208953802583699429994623508296728557740989153942438495010338890751575959552819106914452390809377428994873106120448094948426767089055924694780945046697050975104515041992226783853800677972507472208383534850271824440808384614829600185100571060132724893280521863561798377517004772600642816163802991821725320047289611922352887426374838594479855043293698350984489230043490264945911693768043856474986015667637174843474920562369592195373459754548038038002833700223853089627635651778377361621071172051085264456627150337286111179047727185149220495214609132850762720346394814437584735398312973262394571100602123131830728743121036671462552229518395409605076138953619779145699945540498769828057948673820108690879530833049156052779344524650227754953710935935034659248865519352928529878436178841006755498809977327151811832266456799685755003589108238534807176594862299115325955905694587990369958067761285668193168819688017480042657404008464882493196515650324109405671493663764909080773778042344818333662679248415060088614367912551788231243502236294536059644268936903284523044428147225208665755232622507715215153240726528540572561260015657948564090916589361903654306472217444491007132493103309922400377875367099318049692848386724216114852075317826044686962718258346423682229141105031527402979979956354683988064762977524979075622713507599654335974297303074624472818833359652217837758312211489826978362697464319928221420873894310223568396799286974990427728494146163483887804548691830039074282307815753696812639655383283790438142949807993765709460672743123308521849914558483773823314513371454286039047169809197244531789272602424504678771490867391250973457747513769059786010786791033665783072001514473548547493657650031221867449784760377467462111949198539478568061656935934893798001918802838378540130266358291572693805687192091808201066262334517396720365921149774944034987093459837176882011086760651388259344070487920526873775905771572214011392485140962812395248394501172869347573960949420266910871691867239378284667148911121709182956826732561523783854049974020648966183331668080695261761257215216604650391855933999363614198288353067347279651439690995357070225781347366803406939590733491614506383019758383631385832254786582691371306180333219554068527914037893153517717857888662280373562431607473819379152850264827771790865158979064177159854642557636274627321513338016717458363097883441074327380605573202271330765536233906792260293498954365893227441838446207794238131156375275236141098901250702264696417325680646013998527443367083578628368977759917347732092430088251951399005168679378751828314695303523836952494053701581875058228558077028177245970538878113710726234447712248162048643451625319173220563181146725247110212446913963664308624276346512395396305384306031461883451642510928239606007620463004279379898911731408999929530928502742558424192801866341538814851379532421595227728582977075324616772694245348508590390464575394498253136927745348389748126975437117202469518058567762202969387381390065806532451760301992984645229664893128097342259165653715894247223951768219420593536693915063172871025449452571618403338154960348366490000736989658686233656301957520481632800620466689548783631979847092876685841383397697151462138672241836503653489175228398509812215856664889414218944133010998846516384817411922356159723876919841916134596540723907233189734951732153958460079088039796694518261611093000849459416652864986037649943076842206313422345861994742846673500900338556582185363806055164377541731880156882243937950603504418607852848756308584253794884443012156081786063817529787240111607507626159213417678327812915592034655481311161197980227997469414493206886844220714963906280495104389568155411768351545977934356540858162292827899729789476990780670948869916081865632882580241098343696230972344554550534871840089599810227833134826102799571424600229897162115497940539023177533912718253855561588866629375706817622657377547152229414276513520358649698821475015690215500725284973335064903451615420221043918853144753124590269579071205849888579821202384592522085740701454320837226103543012124714815200398039221315544016108019434020487272679380140767106702221711214602995870701429953045985200669108172896714731110206341492975680294666150129106769391457445626863216958857564559728103819801682069189530559884132068836107451229695750545280119494542762512841327943693183444001138458714049850294374465987115107810368242559875356027864049045398216526555778280853818920508577838700111072992960315785303031206777581869588333702136180735667629805481705187066443343008830536444818974114287078811587972909112125738668843985667616176883388147490350376522087190512428190160153567955210787482882239048356400590491662086365120543206638569258630889976045694183940957517543526419776015009376200345854660587512698737661994882912445013591135235640009251045233971576447011130469740580981462170007665746985024352577506121763774200531539080327476058315250225173937176501871470306224060526677504976554791139927571029867441097519760642414548451143939768434405228903492892352295612439131960853487877983271029438727188758934396543317298282930230653834477311017818212612669949007928507782232795829071539808520537650499267122064113730696401873751217538130122303910216551643889365348611707165589049323577902145580061882742351995251796620107905261050955423498962964798617332182757180322864971297273002543371983820457718245350407732451834401749309951369765542463516767578585297444638177169889461937800588717721978299167161488234495887127921617778968615563874970424938332498300832926466296255497313074349785002254621975010939750897310661075614462112648387327176612811865430932777151561088425727839058965830207846299390487018067232107360718822943390822022925043293787949484705611865262905930961114797102482890509091779623173148694212798255364440919103428751233296805935140464128491571631975008441555085127112770192304946788635107661901092583028222291869097554032837488903326017427132702307854267354334088674749678711954211918759249608380407112477765017668022309668124934108953059361310802728565978543578536422264204763205239149852776292657276889165089495824552959710230823687556875793437998934607207860852770413518148678100384756481501167616464329301606812069589910178386101801720729109970118920720825770387207115240939090541753520933011419406423621002552191230385354652190601243391573460881431652151612942040014030814651306179638871343196699783662968728020840547960603353483379414386997357577095390803963657621848861298247384232815769594270524664487604331315774091580753479439788810510839156054054921888359670733226142628456718196656970714684609771621959460911307554264898715471917859013465932048422540880736051461694402758101140681594296227124094288250326220198819715926236025435315801826803899532002140813039171252431382975584888963067100561183440994433396791436283863603977854608957069725437576824607455832890417609200110995856789069036319957949567291729027726128961637829545498874867212391951298638650601399203343894576055174849807170109137067968989720913731413097450081191158331043042287767374266501525447658527412903295866430347159058398574037481827926552919854547919390032514827641146442867333937473382752007859558687521845087001178621730700541411168355912508016575248363407319964848043309702876184186468474240725494080055365671959330156111425805639933386362088625567185832987633753214543125598252246830002975568072655461362147382501217174246760545285846221565830609011502912293680491873320887150565445680069118967009449083749503327692652467649672639142030506316763877558114312239120036817846978108498319961998568752761215399392600204474955633460992184648902612521207273976713556286138647206925880824991377003272093765871368972365851956382220915375905164116368365489700835538409384367938620632402446116986997732951953361221252693675739148670237171034045140009881118167187145394376911805485088292332853300183156677486172780618303953209665789136628118246140345736148310813890103761480747298663771585599814672427408535308769897262516250452648794315038247366273538555148687847746233330499339500118982556288029918637373577930897911107969405595369510999636207052918741394287570563768905683919795472756737439834333490781729184635170008968098334584128760180228332349788734533939792854647790841433293204360238308723526997925074231630544175747664684176537485520099826469874842588029610738182426921030995413657482313473526586629572709736271427905367756428303929868002366664309115977320901751095870962814823719281359689774465572129440152425831739886929252377522977504714211093923593354095222965353231419865998833218853720383873324864794585363971597395779075925108116239600992013128393700147379244713948359470313898679388680330923001649850302026092102402805298506520720457548360512023028419683496206007671195972976405854902805000071241634531865756546346977110270925813904894353583318243733144192203663070420731287798102259177687169971360835269418636677056491586246418110544426255084724896079851431560194772375172708396258863903544590106132633988528178974165462714836416012594617063245316160455090017449587742541412492759851085247826663979390118956315558093241319882052531216773791012072088979278476793890158433164330040653101198714864413435634613166116552652314279458699752655105500314543963592319233178712212381946984612156163387432266975888488460082247505760464043240735149959854249541504332449007464738636193868943860186450705168232489852848968221339543053721431404308564106837580984199529170015102289099185955340416776074135432087692092600095773662281257469963384404907508565047152345517564327484036831895353193313448152845886347808186169859077776486285832325347375398311003909249815145265993341945124977759341787018536854994909076253154654089284176215616461206109469741069662782814213394926714324700056690364934543437312131859918695540317103371200711863783247187176772674778854550674981442712156504051799546100446879044856373507890376256154701344498298723845773138506261553370676428231412096487218200166523063181814061619304205438151520889720237473097443393889907364311447218011085121393556209897373436946445595864400557273870557009580487128272798647865439703567428161704396353169812334990379889462334722755847707664274805842661367768397109483495059551319865488572924659580641351467364510126870957712143006934304094642006828778448645864436207116451943524604350978659051921169871211287484572591047249040557062775245210115960548569752020293778769047449415875360735401660117960248868901194224418297597224730495389303084885896994560010460115114762399953246638518783841959467142456504459870574890384437139696381765649170983062523396126359365399903757398087350535405811587383590566071666227286610091291373032752401447689812034985921557386421162936034449765819880053953557383137398045257675326771505271868033612526179150757843561535117805310063024285426257339410645121732531063057612976276554683711915485938762226122510711568061347945490619265052671620523376132884801980747312872176528558922636634558853707764431207995757851007051024319949720596832090695843669268503176841316439974312571207573368171623638638581146915732222482961229031183643310689142114171679827094047834839011912820269290163941559035236285581803067669686627551298684744397699597915348567483299011993360465330971952545330591019147252540730097863295419012188712670887158468631237342221552500639005237756556543533509613950640005341550434009619833238687676075132891329782112019463120230748360864210757768562196481453371607324244118382746604162190638186322426899720946772287653775306893763239508819627706978825985798960787796042416885449654663192202435312976212672447915863810585256708629148244591109561068359438871508417902452629061953107044976304024205245648913590451034666199595327663972842375080227335157570441431863353376826533096614538130388669582154436018069238712620484888948958144650301789131398170746269735604170091598301828605157672872239268295305212263615481746663559470686704483486792643654900522957578866011852933085379142879892272976837807620949724545797682656937693642459693646330957550143940287691263235459158554106885875189135219426538349267351098922749542244624614622936695581533972146341246089844390730018235619993498793333014367925261678772528282520425658078759510929608180926444469738144053096881292175593446342422976832672230262745420664923731200875043648464451245760620259075107367971462495666048309300407997300882971190126698635309549257364426415475518616966458355005668072707424531793868614498733554475389501508134531858227752393851108957892883980565656865047173139771798333756819986440574220156285041623939493302678311478699536193722996928351717347606759153277125792100291422910385123414121691770551221495474826980094167411018275672614090674482424278496813438401474696419528856083241866760150838091642353134641878424908944179580006924281085696742974990565408041677729197113007193029737627645126664399299572936507569081225242543884388102441302787913182836522884248577039676424162618783676416466534253611670651155401353657695384083627641396112062525510061185436060051812753829462643648575566232550353814795614091972952294879518795688627722506987220785901018987662997100207383135824766198305539981486024824026568131316348785384543950626429590319115472650718810148251305689623962222324918822289738433974122362478987533421972682432307600052993537801566274213491083705387687354639391175064609711734907457049195478707863651581177529595523590760228065229102688541684357859236152585434722246537426086371637657662101120157088340447444507144473795626458150180814179645244741365433044273906872032406941619124279320120290075380208188117533147218066451092567410932546134561454901243360341760133866874530346104180494449500747846810075545965011328701178848425948309777114944621448330428581710236313722434854589574895308291905774427423988045151818457376681524620304354054648304999309978268989558269601619093016721987030364882796406037764560876218213742732593463644933570495289914727406477405071836746884458544632717696260181222899430496865043542760863666392725690965633596760879965235466099125108029618903806009807334849132040315063479465208247775138719346808790976778902870571235973650289021291647880943026422662755736061403902036949218704240644568037745810538212739018589255870021574759967710970946286063791850148873562933281678028627642770985390084989231621304107041613304479726964113184987662966374540812991941363121207006691415309521877976812095708850421327743158734933780962563819028684611655653487263000466606027569582081731101414000478514283254012766945204154108564954069778432583468849073992905460529256509369402524822411767760245159971758763031375889757962358329775571525762699525265409768464689508799393686119800862492520779815623288358994622906482296707478734640880918587929031984378593810231791679809488888178658361336623742505949568049774387386492582225247992424350992096879452333681922165493246726782818669205021828063700296428995293931913896046850848773882195665338885292687941191183253921555861240647567923578573533185179940059452421858797305248367271573889689874356292798659280685869996511327160557644563232831835450503395220625146471550669070231899162390026755265120285650483293832747511076979882001754097539655087384194799382487815269857181290807899067481481381613669788790412742817537735148185952471817330160118998241143086192826726443541469132232133753762865790226490389968112113917846503624541995757114133000074837531694512383543044632755970066810629807002890172601587974543836668572275920174879803247478695952978512594882976325860805218663536446189025582989600003060835100959956385663151900369321016559206051865297091924421351236552721015209572377636240337875649775216419617846921761703632847602855773715286631220763458252680027748260516292716862034104001425411441777369429869864508185482143570432087718636143649065968617140107195311727305583933942651834183024098953910019362867767781747703208161075889507035350072197116529946695817011692042093905890069367978199626323828565238065714479361741286067401518325587560749729494863720949800860863212570271215525718901589995166910042683586580662832197479732823486478309451394270271980882246713565797944228354562827245277490901678236183211998761392060936035997404400969548738381296897014664515586303485155636251531104379593826516142451976278019460005092612303014381153595802262533588965538298111467547944499754343213601644526231194571651146637178239715505656249503063855669314051411666236604014954633116843893366288502003043100372390718853132387582928857742793454319779396563949728822497190793713640252106412877575553094595561238474765177057187551919819767529710817505110046303620908412036149826327494239584193647892553535453088903201772256861776291902178228420282143399790834455102627458496468191063304202173042365112953694012548614606496712650588558715020465829120255695616814087094036471085904112159072595475411014006174612444718644044536948199716004048359174454182545859228278644161924121478181300158104701553562034264205836018119068951258980036941014910414082164918551414653532161978429213569276194748683304945139119751975121067429128112644923584406572680902189213183196825543713930463019285633447597590502130485645499472387504466358870000673270428734016280133624741102510183156180990308726124092270520518061215117555409440046369149832669263631460278194255703779135524439667179410959559953729433856710434159467115649770518968958124080262723179626406401095201940143493311808457647161703236926668947728981972784962423579471846623737439031373488960346103738550593484129957273075378484294643646095106559498212812110911096995159427904112220730458988037717700403240953206979173262736775489266613566361377394570404672519010129430532540573056879707341408491677246105797657787832425396789652245484412319943630493620934261172040704891630840548858390872766786003209417780960337743252175885892523022064479797895642342685672996836998471119915268689452117919548431741927050209942058175613184719090031073168392412186459133212841769101876594742233209449704351039620095619124355310133036715542197324943177733457369204330831770209445316547435049414768633741258804406770485930861227126966896818603752412443026838124050326008882320795158435871878230204480379793829496582585242943974008786981410080421665790932943575179365137043963520654727514736794550219397665108903881640647926108775244315624679062095917728966684790919538397515450727908406250378943134851181801819695920568692594751083537944864919770323608529107048923716011957446040598193656362517487986776306049916060986690676344771007901484140511794285877979834266323120394037454156712313924019288921085832261230128758327098432082348974132585740327968970428466745241109805767296139119698658696383687909017562925237835875821974996821286257163681290828438321472932445797820589478045247502153080169726041871356945379895309741369901023304537594955303675487136733406355053632299610642475705228006407523018163007715023641985454765603224628038510021394091511791441941323092193745543186741483498100505378314483167889123373090574601122808394183880170900688420096224223821125939100241555878556695317603197153319278685824940170999837202450723416617421549521134151360587398929699429591429064027277114468266506247661901633223497201578619956703849526406623917157174227237753154345832946479941559614111607865788845345424980103394726583077245751248793128960394635333053341430118013081995630678880936586175076651383014204575360369506876834126423852787700852197355405839995708292893317739412044149274904020358686039126326123394024355235533516593942110639509785221275156629413657981945709818579184897227198392438892794782187404990506587309965496240965843768791654667132179203878873762521305387141039560699053901456072907256287782956969573009188080298533435442860362814730273868635237632168841706799609510446480449910127405677232899283677765397746973129318943437696437144235492799149181939291452151018508804888228930009714614116916302222631078068690318655650389921575437334097655033963957801618819486508568590442133334205683722625675528398981071647523953136519244890650917641425776263834316307738731403868624989510729052481104719562325183238725829067143159207583332920030423105682563449731711013432427315536608288784520510244334867143804176076666557716288948756963963583128092126088154392801795250656196979849764952345402813560896411437916150401574446754436475041973970815009271157033414473244888668697730569935495909321196512270932462361746202367921221529027922619520241279727753449114437228572613282076177628578584354614634541338358423244101163119263444159490649391342249942238502203853961291029703836336270896855877965392886321966857792096262739616853197407847305440739870279444909837059468184704045402301133765812602356125023188060041256755483170025994835758690015461664115276889260739795425093189122391435543321490914438397492526718228677723881644459679839066832063221676343866442221338402442580705600725737621028955647165084083745955755885745639612631120071827038834409654161282174189339334460077802224273697838905993447334956876430819414024951288523819441014176367977496785598780595362365062569537958552286068266799217938314422078131283784551023354532592822121443790893758043450971579915367617260032676340026530255010497276179511944707437420852451150885772999931532156469320078877198752100050891941174174000804046410859364584183264147629578479132871685735317802683167394054461174354570000859342922645213015745408951040058078445807454543667942071097256300243132909047888401965495208495671951845234141472914131822476099864400771498393246092128144482314041382713989288142016195220731125397465851516486483067876638932804959287777136638991350726859473465553486512984602311308059350433682337729282966406798749011331662424097481769709591003691542437840942170932506532190221824831855678336185672253405027371059811551293943687823019458542039367004462146835150952502000073564547830750674472573397681700433506567588119751319075617618640129497834675926281908561519988450808302796797859631478870396458678520981123491178240313934613908782232245586295601594419943864019761286778950402575037524014441018151437216363804137114338875412802778067599516342037175749283597559672720392472543491772245027383637940448436266885742768077068900014106334290032189041110823610431852518445570840292102392699652583800169414458736852874127492049472599079077376488131885967023843753157913256133290305767484862700108447376153240265783151581295812567222330755255760087414271219795700177748433728145891516510277688947527055922965267869593893642759595062813238639824187401538815810389866881293563572113351229638870371230904005177571947518240316422845713669739748533991351268622419933124504190985202995879346842332166224302218026650160671762642652742711904483400479167917239856352476463119414745716986760507978220224363867419115136583242874233242386810064546435944044547405204442204288730187480169044912836520938740653432831586271492740090603092417323838058648553166813768548508215961110446876657435992145570211621370755041537178776059058828927744029277851052548592333233565781171325029170920227980294920232251628401659035478652739329793025617905308103494893750197080196350916476949153470314845579180629066403267526661047307231171963302499162587148016238648898995239664491349091733703087071121181389356592686438634396042627532516441993276497265581997034983889557822460296196125835129066022272371702226251839493548699929611957560586683130945235892035769628315425456535199188951007713577161659607311337341408038670513796998718724766912225141109399750601383489436751686094075336989968696751148939153615293764603765589464223680676012854738049124914207968472736853277804948671072757850693347828046616043767933583191783124396985659252456737543900188861599504757339362142032364820835531175399259058964130024372766864741589047180128575138925013034618698091174914883251643172740032399174580962413084166286314524546632327538423043265291341477863207831148966903251950297868027353754211792337179696626193569673316710619921668366445228386496158867495578436344130124409574616211823836896057563167062951831227975414221685880870118445809756032354015263114123303466024085432491604753892579355431118841960363243122133615743504664496910909229484491567037418115149888830493359216741579765512604985949773890674419768310873041625525612116601744520268306118221261394199415530833121684124317093079928430694921305102333135253814213846390965139556068548705882873027731078491064240705168362973787264796375798281396376859289108576855185792450028095186157454469728263247665010626094721525305720337638222761141172161140734549132505536227039511993347920731038752012541357879948599766531057343076628031957442370045012904753617026578238364148027193616811324857548341445872318982197382637772364099290628663746299378610416116737301940863133094460065139753981031098726852951920917090407716676244912039972429309717429143060524882764882886997521302549583123141402452138710447220829088337244424130292894318975788023926362754304798277567555196780396589248853315218750535816674304677866734611638947007001288594415235069001313230851197810092944052036149876894719560875422967670557181554846958984091600917876147617496116693929897829418203122783705391910065838702919149468034321605188102879732322265375416162179056721535054681271095340271108982574453947812151602944618533409875539629223611690375298502243325369956899470996608074226608331111393725392474226842184612369647151460423069123824363342946328564162947467516952044383782958861720758175054897070156091688822698573300720526925599757335441535038062952667471205626521783282224110491929661421088426786785979161843332718104213134908476577630209791673293071178557649896962476192959874641951078683742031457219696605923508841078939901230308126313321345222784132395452224406665553409873200560745614284212771492525395135138947659377596312155308168168913006879232118883156056807495948464432357516475543931933246364347191377985590606799015733783921769407604231401840868907865431904532736900383365331293710921052469452130917735623127473318681995179561372954671930842639973466618282498731287836836701424084633421358768779424647417791877399579195358794489961240506137334402211419959025284312830371264548038048817395685814575016422599702032864481800411588353327021729062323255929796530092561147467588210505639972583030836583415937529175887161240440264777231706264919210840252017036511740994950434594193704495456436407436329473344283066301337827752995805039504861896844744530407184975950625069375468301192318688248979875691314624442397862833931582272325446734439116199815101131292166929017009412400160930942580960880318111508119854370186576379448818636419256195860251311817797806576552319452152171236701197825493761973428535082676020714187778678489627891948640501955908100332850748709142624617529896996144854357185813541103343811030549510165392484962698285423919481743479651236596588707408420141212967128295064125419729886778619951175686966954797176664343568724375559118117300745778577498433754057721797389160690371642664159573929495794925928917541215763636196099452598921045272253055734079999668574269882493951874022472865880121597702008433520495893749977259785595046995773512084614159768802717654204273759097552471001759396164038198347433559723033819489437348259392280048502231653546981145801342710506595697795658737775342490528772427054345249940171628406605669402557821588227113264139597846990761685080040744724859737960024337718652957480176406163001613541857581904697573183878393610956047030791470344370430793832871671181646102267369241566242080469506963300127022221080328037347591694980240104009353369699104409696664810455763151772778399093535275371731912872349029236321741612170083014174140460237322624589161079937461851435212990565488120819679127561462731529252565896799742454136932577121735121944769463791497709253020783227361705539856291594063562559715924856635509128821841949188094675708586391780569396765333414164629094738091471779989235631621373833516988020290278632467736848956022080329140626544537943225376213483979816051640557321557469111783232164976154835676309460210981117496015497272149723072738388035341246758428707670061817439693487274193161186303553638529174322565083364968889901167620194110902172799482256024623139935628689834139278576417042697434493168538837139639876029238617487034787490961525207703659291565857109593437128528596690556658484030567495524954188567693326337250895037045248867813497376023400024388397839025968942134698005947724106592355045232845350705412938862714532615868639771817851677012038733617031372061628994589560469183245512907689903975763222079051762061746472412929298701230769845287610165438008745880014034482774070404689485635093445913644999714499615703617927674008530470012252345074491069708228028613580042662652312914825529570795500710334021489940520857050327273388587814775914756907499059796479712147560488163264548374009739388860789847930622764427066514642631860686636443573338133949224434371569610979603064205425253777900037099584225670115701945056899371937255963712249829862141599715271307809623557690850890383750656058897747387339649578494153193065086211003201052104330267050888132325032833730170599568339403180649689739052290315629095271754182016179660732701241258174096587588106248804632653741397359205196653959067152564345026837870218368343953707960909325742266570557487029600577053494195019734679119639997873015476057589745126161938762448700192935081857166865500309631779811226832552210833792875459121687978604631738099461063379272255383732770853062448909258415292204831947845124349793913066916886769120286012767215784217253425503548783734037328821067547699753766327211055218027060669175549919092518647920994864913680093645683294113042453197093111915262776328143059607008011452474556466613463270128578931067447859612610621173649148267219142416612605876425312296963347128012280551502448698516015851069684904146968941522078860972935677443205970182132868946868932477673199215909856405212384665212776338244425324202835561866514739667915222959842912835850336408456453751542945315269972017183576014918247954732880609835153587420725552587312973346423239600853537703842515488686278372638378559953467843292423420335067502839512368542473993775772473091025408631421608684262677121102761614754489292610025701563457319490319745100732720944373957129810508647148217175174506277341312924039591677297381127594140825427476880998650399727821841157955278011860511844267689093665020705344774692649651004172543454712805629643553607940397431104053370707010741013338217376282961824059915878658265740076092916351906028475158185909337723898341361670700993167410442283421105710646886748209786737174616862474990517333881262830027866034081665632970366798870268441279876091620948232634456520266188746894162734620682417025774379121636147475006355628691730398968058344896593365589297051364385125818423932990562346415736922054524232734351348456373195842867258420037500588875225804820752968300282185362123259922014630470073173165249261408155957059860338730165444810691599327268397846383007667076324522987304865047702794424690874554100499120975152687032493242191550512922432756396303441225058431125667326936233907098220922323671418759599450758656541926847913322109010495994158693566631826121397423049831317728981435873962642284121205101889725354660026419671656301594510830914289635024669334291949021246702073472150423190372590656412001582193399638187411965377993550644347342731265042521520359079263223161760090254982461839206179931662375805516906158043207203560070097043436481022548423736007159574905201279618398344719542226043369022501612560382775785183126163487557205779826075227702604821520264611568826986341374574691755103997011827146945201232310761431736455002766616342495156023050603626345213041803586970912695023021121288652938201943649542676092671978977705250606985855336604029535577387293645744788497762593026456745849160045905678665284175728434932177201007085146077416174658611593836799757356282818794870101030113785869795788717329155518820978469132634181849625449861070696678439310263801483198889941945096025908677803155201206415495266033337952283652720651203042379657170083427617149587382538808189224459950728638646472446181552399598644431587274804088449833410519839373350631894381704008556067172863099825880210315070416036952725982664571222967030235946383133874250542484201097002246022262590778103196672665725062199595390959380889648848797027121892568684039864488263024362257362768602652787870990981782117719838770766503260737128759060402442982889956368579800924675257465270913111433423473428119390721438331718965614669263240830767566853419648219998028263923876215139610027164132921650518446162228193386840990257866153489745416554633369055168825643056465887069835685062869288225487406558548090210334256338373120474853314189269512565529086721577921918170570627156728669191923660711248713652808940449802798551138679965004474088916413070886489097181577548076807356536516305100429351478223667765335262428849769111219562554222338839550747279336469241574988340859095114516830027622033855059087944082982575790065716194202976933973802741303255318395840695659127870403166607555369755212086376656897608473335290681187762168882251448297275068603165164986077069065987353805845107740021926410582492399650026111670058778241644373760018179092681875486762382883916341384943357388796220749111104586081204778571255768999397558470737591254505322308531308894643054380286541201114012804759661530497801566084287475812204851738566549020515088736109333276193938575213109408816476831338021044773169653602879143356907569461637278290090298356301887746220648846798178540619034510598447311503639775050579311505307722521771343408322615275528542154175735234436358092165460777883361560028227558344281932555933509267771537514806896343278292528460455095426522592567522034932765272328387422388009045369268359667052793999638548964947313393580992765393569655880510205297863243116306602228958956731919458627079881646331447613648767013899297974406646343298461839940566823022914884948683906065875726425447696555295257015031611320988141242430881923408392985879639088733308999979641794204131787475304128831061042672333672652415012144976535885186471632214926022362295295516799997693748165043265208415235807230364912355294520666906366486623162994462835701771245097144735852899910259903361628454975960492664957043594763738149699496622647075399095159902374542757781317493409052769760966359875001250234043636383110527852059213619576834779295411664560081017130180012298666172033687974150453596550481292790391158212004313188162243003712189536089473872646182721817601134158432184693956327167730090797729727633440661082616504818887321780610037324163194658464008963167174396961390540929685868372532804150641998118105024586019309674117545925005457266286760340096679084391148902134198628922270091043770223674060313387590476829925706561574400960637313192693402232722527795436418705934548283445303755785305247945541544595257549195938976081218393659493268691706439285914426878847527844836315807487971253409023524256117628004756813740704667692474274797986495562425151032481490995086262023225207274854136830654421900532231863544138791050873510458395866129176274722572480105532237356212958437846039140772046161566199842304824247339908533256372673347607345801557964555767483551909545792472637852957356830192314639512176533749226105508234272600129760712875749530428650859323655576935602183345707526376143955020328299283252135904233923646582562559414806561284981045397579356770405837183100907014761140128232281949592792279780893854638772705448152206179178572244396317892139353078978318042684849646503586449121277870035438194440138322227873938120168381579073102378625740819059565589906702237711723977546837967295401343861129817352016499257389029473313347540040199689029243616884658233446941548691541399979100666823866063111281845941315467918918560665883381158379154933499993214206172459004906742838819281166585274020556390110596004391864112269661381894510478257484837844710879249781609653768933898576530248373959353138312957385718084367458730607104373363837559183552203374628744881732674639146553102645315845927882127004320209217426034813584344395110558413434758065183569335052703426637731024304857672743869189470421972602975022488081474651076243938319452085599143928155329435385154985588975082417807690297729911280598283746740810083280320111424385868068647116960401151735998330343291847108314052742433743488051753304959908234637562066902512114765633517901012772094588843967082684781110935375414007170332398639075060958981833876315272487461496675035419804074222869688612169008036781427032019444081965959500262407484790024918561039013893414593936934461520560953642369039418481789861942461359258529295405374485178621685785123747736952105363716316728369365370631285567117713075335881003046062322457509768692708296687027815091693757682268008815496900374941346966171259425247470064188952881221615850556297637122215545917959544083459809672416944029283105903833647861852976565295933070611317629699703809169557720177317237406578271900434221342110583883956873286580469042352885461746397767559652422111415882973889289793171185502191654353261427704845453586032364505466295108557870876751959606537637467242656255166723751691676813400523213929026189952313483641422825470010857948409642985138034813666368669017477268274839397644821456169393031062825399068768367707608693531966286647570048446787163389347809108533030537623241370996449896353216981758690457386339896520738028778056375518938646872957582350837550062137665495941117646271777590755624379598824366178451239080184827838328222304976343630331147178248600007264060162275723057496452545728750220339449328869981946560720106477026997886103128512982715766692330491521463362103707055895387931632021553569479042628858908137031868580299584736778172537729283163274082393687836956290711276360397949302789028180171617299159162358418386737671443912788182457071137044190875830148093152688002286511327646670762568703922292839544207657055309557304503122192001281764322638103389125571461612224978224650237627652559214073793556914219922395621019610871923635728971144775940731847925150935088836475095522497752926067251369863931759522024512831245888121251769668542038975201569256250494247562639985497543334552023862090773547311860295991623055421037159668547692136389139762464603000894554759575836190455332783403266390021693265789826208003065618880940177373782117767532865395454327979065372475034732968964877271724649921549819956530590013812585564317738187948055349432118321985024209650014311338933573103478128165238574807439414841645430451799033475052894616288491295705647760921662837390759039822474570648121891730635770693179811632429150644376915252492025802185826169065772093862998533630665800459369877738738030623408601791832366324947551163740461634919691590310846854415017918238165613832920758008042398347001558478703016724494683391587095599816962785145350696720296742094183399445066801007897033861366658996577708575416933957762205445332224021532226059195598272852430012296977187825383088301132710076306156372217194812645677707570526733934608190189804177170882870091577156750252141322834202881333252693648982301583772124033512069991206361891104151502234623171866942256117028761693597264561316814996453856795534258586965316573576651851389001452768197010422425325246087235485721900845395349952219066532461869869453481175548364218964150174495905946472748909041228481618457323753737091752204758225164099401086728631697758418714539117717459734132038188666210726033047086018603287269068865140637070807238479019911387913477199328784557261361227681931866257071729505360760342350664039213649433561567965361943793952509633464944905332637947144699864628476403788340959378734352889572558046525291727723255416631284236800903278798802645055611680387674564423983033187744051558534349375583191545828699421491041241379538206568565227933258588449502568626024991966393476125234198739331208327136930131227322725721692029137223295454204679793943446753660363628741607731213044760564726978062930515424417793579882092877847349965926060683001488108629377408125261207156098469145330546700013734742337813164581473710818507625647018001003227014319693592365805535651164691388665280496574897968345138517396625523968435881374396177210066559618585866560259878306887908689059856155334269035844987474245824271466866545331932158335935875119443048877786182223464033355970668510009910447347163261432764453450055066015585934353938753501927956749174621426804608114946536982367176508971982918580375552392041367334771712886858784232696379478546302594954896231040066044537322296065582514790126111609662842344688895605001902859337205342549489015073164291065720271071289254754632302527104301399562568041965392863804531099742863458792508656722884206939474739777157352203920893274035611650836504486783469589137436504059178884721040913573642746129415870375565418725050549214917744040282598807590391700093088567945317378565338907028454177083810766146759742019498151360831678446047420291758717894519305021262600428536470002751181831270685707918519171125041777675610078180719155612111674361378052100123200781179226354571933039079881137261820940458443392383212405862477417854498051625481720624320201117671366996859175595544219941144622403587271235912198305650454873902233741476363020909011925975489309151347585092269954298652452857530537863202836579758227911619986353513971158252134895908212915784993448893626791991740339743573005912710477967085939955741076646700057177249079244264167548834432449510275948796345685470756327282241370301157892773183346292857674169559511317232992711671167710949621604462805577831372882240663536804999556501811452995053401157050293073403561328429559229129267795734920888564468968612727639527601291916980408772293944635666504605663699271113786025413727887851963661111764796251873029972728743642096288320874132429808331807576624184543397834440627314940844642812501704737171528649377817733131929015984475625679444156554018580065142856351812721812854525497793354655475875114737145703797782076394980208102104843873544623719305578515810018574175115292478854097808512201048172676588807402593560419184323181591936636804208665444498696877671811048352550888587284371900558310842518864042292675377622342304962944061511722509126030967141365666879465767979367141476781035131923232961562234578069408178819367833936157169177231265414124524641848397885853549719854834614864093087507788461012366492294224164948631864490582067407737567501208614710235121558864273446162057177682194029122558354429095548586022253192742681486379343229047982412875145585151511927015542047397140689144771306816896692979476368167660772986679372759946125441445165865639704334900295420801281084829062258268765223343396480089037651089005044078825508779046121790749185503483856592277149344630074015806733759587776267447103525770461693694109676688244223909329898328822300042389360725734384764107209244689078970346212148372948649725972951544449968909502980622168226541177537535028427200069302768292273914504133507191235030766436310258763346907436677599462558063091964428267066013950005942568104783672023643798481920452252412782749779581678061155255976343518697946428202264036374364792943437267573765919341498541429525824708059945852090675303058877378138172867574788449503385517331928453648746862098320471116764546644932083059701281193015381199498468869318559943345672141803778594923962835114152995089473532344702140094716122391908966664253123464431297506787318680657047874327679795678036153151294798166192902182452201826354205796807290176451210682058753447922418184807220428254741528042376434871054878472694383485960568943225896436766742123909694652991376788769865748532783068981876788141854307687987931915728854240079944663379920764359450418909298445773716879153471014558975591890145106422309220813542694085154865993781173900678739153282798149359212607063747467852950059084777785598992731301053500151819508720551218564110088835590308628741421014394050858032108390684092855122386090458365990410909447261481812144321555015130591859307090784862506948197599684628204375591742878373965210082856872898194150600145234290107690404233750965167588045908373563982820254196127706258953669591438703616378595557347274554435122451967008013210757982542201326378066996397538625514830490427616639754691685997371505824656290079808688629190962665133681837545898372350629016651223812422946560978310765302086670982380819094289721013773962363811572321165955512955972743073693025590433800042105095697536041018793178819197805288030636332004361887583377975604947759592025762252844279983794738795001980204695954304033258383599930121387134799593210301815424325292631752817937010411547330796504769077914014500424356780919943184151021134447697933001704010524243689319021551790809415821377134505932149358196950654449844131207575758085820135873829283382477853022477849787315985019796708179680642850297298065285440503083359946813602943481484835950042016364082291980046806261909317555451719560312305511652185757654121866579421607470519968222407359832589187583890346094688262898789605104167193453748328900246888568982369359578186632296195304271324456565246542017445646453509921836319898484467609111934734747289619827352692267239863892668958522292525868825358948785685619882012207824811482454368361389883734832233964713013751253989442943477661077047382698773602697969592319980159415920795264557333690278926295680865092551904583007237857427269724339526091258915302599293326257409937682980560049343888682480023162640372659753672242077476203122728803916123368460726944063704942818561013017151169229387296831915057855631808293979253893451808997941551668137683780505739150179348466410678401632778167318686939881363125925154877164005321500588882174803047308049467082226624602574234494942961757257495440749295665073278731433135440877088054563001812885992365962102250453579785860179301498153069828700185602920824153375210438232983999991667761189077195666085043624705130803244103108126083719229086578254034682352887743848256147234576487210088245232348247575677785768396320111852459620602677043870710166592786613354111533003415610175144687006054666552841349216100773259179375677194132665499177140305558350319138454741287992541001023903587870817362774634251844404299001213689621816330314614977045389852540201365992928775730227350086864269966874628230992869168070619640982036285202266629646292841949665794151591093185096881394539042311289557162376754030880160444733847202223740775619308585577277355420778425340103047710629030353400841132550028012125690651643552498181406847790835458889625245464958281428070373763757569116279971808783313444070564142698747227976567092852327476700016430911994316271957474111010333645065780941376498445022351911186137832962636313550404471646046270259919393506818400210203373379790558347801873977507338455195736759641888857069708344508441923918993609873703125165715146804502125163382768570467902845265983780833178131874677006141224187430564211338152004816126422463744812293042959054055744193708559086119969160798335461184983203789569209568955368107882846974373167477290338743201687489950703131596633476225998028575707942329266507062381239757659349273146225068916309471184559135983835627372171096566596980396749888965746346677409657118283339038693252340192680865433567577655320664576219865566236180448338666489466094869753676228338636496304025786197800856153704498612046329079231374796313947911153247057652872379917882836660334959930000628521878074007011182067774499520065801297360986086397230672118565957901239907858715249947940918580417497885118446280169299421271224180087888143828024756262993103495964038797832977317493088719213486236519757927413868191386620756457870969731363904822176168004691468817065354049144093874032373723414187629252238831791037914393051493301115509933846187528050502997252928045451204962175967709399069223223448329339903332106416998623607779267349299541079571595088202874171022882389140834045279891530125374083851327093141054499165281884152089275485866895789088429185789902541868304107304720132106808693780638062789434742436920067915689262314082074807739916957860287334873262160770742625028133752315850780859014579092024669307596605572340640469562992015206413845769309184090721961236492415796231117421751586974242990935911981086729063575035463232239749718054305694681011380965684147402347027508993612611400619617583106421650511716558148605929744553574217614269996809048647195123054374655016757234886056057553717407652339695443159364306096339425661919936664193820772475841312801804433515955560287248405413382488021019365552408491989009804178500482268778495079488008542396407719663500197373434662179004936379408146213043047545404050492586434452766951876176655704923273159010676850774988398498595018453981412210767236090771056099193257644688186954856857657572325563419528361268413978118910382699690155332496266369433278619692252115283262592765101191773455283671622599985063542806532469817726015399605758121303506159361663985791883174142738312078595596483603525827424176393559205376363050646806298515248809260958855171649985587502713387103802500987740872361883063468030230409381293438794832925529344555293773704507705735522013391344462365974249171764218711696451927903654146266881272114697024687721293677038154509250058553021073659776857680116411498397247886386129749947746913703343482684296676989861122214847996346452975257940475856971748563625531544550562267254904679797882416053860181963176747126383155134574975650679933058451239825179289552002459230293340927174463909362545713736876104012349495089561096129570668432189697111278323104417481310325019664133165843707482989652208588498127362378383853794347878555951596187094514832498428008265655572787948039194789589475715396488064824796943062031447303943964115077922677586555439926180833117301334998401970731222833209645695882290700804325673995579801593529173828293137203709306971300468423231265602033832972938879062722457517317356516418733463841053179813969353354786410014641988083107276384001951578003783107851703231545117319314292056398615621944704306084086665553128184209338412845609865229343044156333371976494320041971324138646511414907596798331900708883445094115210968251596672464153024215298010796757353833039235691470442150141866739392892707207114841550848239761081341292309877349816180228666731320662839468014026442985122987725834864609215698578344506355915852257977845779714811736091615462540929176156794962315380531553054430509672415811753322512024838282182547530164062630013570698139334216044581272743835934930883964061097855885468176217947154792892983804395978570567662013069672139907116528342022260958167850078304875909067110386788506684523690897734605179387647869578826138669509036502025564013422731322840991689948264330730891228966133387140621590455904372912137396127539272803564021746561410772785154440013954087274768794712171708591890240091896312933048075990564894316762754807008484052743779006435566140040399539024002696796778311929279380087895298558295695518233472729953300580687195626749300014029219165316760381285414830153975654315636018634807010948095567122086259311291250507696523901187330861854229343369738615970487768242220772039168272663963508889309219905569043374680358802574889348200294453103297249091123931958933113165433355332737475243501046474818626731753492673507111306508499510331938380774295979434947600017066847582272654997021609846152285491892104130670657749463384539884858705314336333718551744266334415191418214329149395829443107652237088968617690311642409914693769801738976974822208567574513893342016698887984871033984738370497984415917139161274873129760030933249731108853796213447316560761685595087865982750272353250159843035936984288472213067708458966630724167518958613014804322066592681820330648461693188159091243999241609583507687279203566948718054275660397432353347336275143002099701191776068571464925031504232361465231043672475815833216456000005226399430309648435573364323966753394679364194074104606141519189168383801273643404701269981877314942574346191010502258782052798219960490824760923403940043709896416133665855617334088557885342248058720684452153354221103348414658201010431522731058899525122020084513048295364968634644742305864760308703862352231837817392925218923762525871421183181766543010873034688251221120503018198531527669770304392611059511984089980141038754468973390921532770639233173978528092258365421024431137535527284140148862806496209967833720502529363867335215221400203261202688461785112740981316969736170411251826565075376151748131696551592704296413241778818843028407093739939027335213231839709739941625882903209103105997024832880689477837666626613844395687164394467522426975523920226547090207012521947654896187689414170220720621301196831437432707861214935053496368089521243832704966186126070577390709451817051042514117550306548863990917662220131126807698506554710037854511446063828092078183886624479457272915834681796470641422439753332014066651079817585339547566208286189365982522498742381504968623479103684896444055697133430607935464255060416898014893349081346554424512168903686264678904674060281768958235741097419551137522755034502146744220923307322012176811470491829509916701777336613339248946499073874946832721445745308360016279520273625097701714816037023772789774079310145114730977151879027881665061915482337051792136942730581510022758594084233983495272364604270122602292951670495376637759785241610438979360014686352771237049643202239736970604106829286079089313298258370877754585771816109789843625167271920628376079307123834265384310167193401588201744327018167779705090485556833399809426970380940288474357729850281560413142759393560449477364918231989520070903813361247739760775825231797639516214424456086476869158318924952793569103732721377671800289329809047390937658087402736838611212764473117489053175547712878254600507466396698210766444299671503884001070697001588283881035338635813611363517894817019645297205874820841527842336258819755219139953178032961363467363126322542752706919181652071608217593369963702315957498909806361536381348868502378008806174458647158133907880427459866719335810872975961716779884716131775771656695553675360104537353997154938018627707433812042704672827493441222483128809184651212368844078147442641465722645692369518925834706752396465860155135715331221437957028986105524081752333047822177276834688996690009229854337456929391345643703235360984174602062946250442882933776333351566595534629141543806777684338793742516164237894649598135285005289950012254615837002511087065709842913204279978676114849406618361892742729362177749199514418797581374207865314654713498828205949658326616395134753380487820207913094477322268399897103930342490811771848423069292170884484457082302120072845201016347727117013992155039009005276793801590325216244082301049617169420121633146903858923681408793465518280793554921508222871821881111297577609707834508621741931172423861559236569602996894368809158342405558472419943607400061560826555737011887914471547608123053460051441495668572817162012331602726621131247217365985782068451338988345051559361327983316483353901905677811243330286228803533812480068704467023698922066778727977311265202974688194390576253745496096626213671384770749549118839736314925982427405939314294203357153292803271184990386861317414749291188790896279229230918086150391192612154918700718929746116299836608616036958813571116402099002684026580479090338314628106338386791093907366948737967757089122709201920164953141774065080327662304744297313662481915588495788266771973266591007290643871244977257921063757932106923463288294448236590780355442084226859547223649564120218685361633375634385008085895889215852700266012395146508281317449211619797688095140995536038328360309340682249457350797398353837530764066221860207212499372283002631826051522231504980932359310646259912105178705111500548098553835037322777914231527259236441238792584605293274477290258568525148173561335821280224237522111987579018147226282323419522137695780147077949901818112457740676379755906955108165080715957103620851721978465938439638811223920740625555641374032720848098084331952057292783870615607603260820172346016549411703497655075200355965968090115296991540839524674742751450660701333983606848461016870154552235929315660984235668342660827610442130125558389048615807415474888707744040847137311318573299489338992549663616485901858223931581871112528099892484406889101339031406500876743450658830311511014718020652865321843021467323479860630483469335958080188718236558612489214258299777133431495582281841668944882292797595465956837759999382604607624938370065825754965168794956203916599070168953712334898980982895514711441274118203781287933893765184218918591228272001357750288383867159931510694956496673950546766926596343484759778467803944081921622412313175636767770625914880638837332971499567109965171452087792169753956118674776223397419177417947803605787219523246420700498041956333700779992560690845193638214885924216907230984764469147575983347547885719645859073777904364048182307870898369159492231852394089964323594507396346326641326334456614406806661776282143402448260281432991020947914317085911728128642457117709893823128739577901515986182571234371463172943327208538815722908008277540896468352600379893018219661687084139789418262242769158935353288099500662224457569095467171034138246011572112981891268221922061357538134998506409372936165350174222436948431373886070311332115811302921791324140801050619980764302250925528518381529406360357855641585125288029803161388318049185576505543114020853350908166904493919464409739971955365841660980995388402661143853058005606690525435544231531013581504890775700724337518755030950678710749020452731970023896789829275126319939368734265273425767844797188151011189672758350832629593660135801972403675563744965629830264451443503293665452993082375385264161779457436152529275690773395667360332127609026640617459359548039484546068972273579022480390109549331655808310370580260742726973712387564607277666366529964624255120498566748422928330037331870839243940905479149987576963277104034328552075589307793127515801963920835806232565794854715802415374019641036285319594296299817248885344821722400157495596525355227758378902051369750537904165940260767375162258517009298918441672372384876865560841827996722354102342352339764741044408541470898659681607261783976888329111297599538158261411228238758212297817775825699728624280916163345914952525900015378730875466309574852906031969944687961524943011131012403715911623512876918805785783237031790305104827086241323645849919330807931208081897831770055622868673706079264270606794971425309107509831277713993785556584203685735620076343467081007512849572888976889881444350785924527118408376047331399922533011808718585113183307969830279512253350024082204470900326179514956291070529660592877431767173496052516908616302137220265192249257814732153040966942605374828786949570605024860190211582509335052062672498935399327210281701268369261302598043945250323766869102699043421199201162737230370893086203575334625742813873458213243937888252757331213119618482213672905165419257542296350426322390011159958314723484792825763486905441622500875325336458432600307670157611651717228788340696211657902113250213350624819246564759514601543432759667135960399515146226656720410879283636080494789789037072834605982674875186878830182986974294021977155955082216245982298623594367455790366372355857894776730143426535939242864362298978759002423184257663077830596120632107530143346349268328980894003691415684982081305814323203342126619994982884705962408719978930245398898680651864535621759656565883543292736282930832447388289746550136976909131079957578188985894588520357867652651448527558999315106138613304108498334041823626702797561072564546613245155446964066013681382991532287258461973977946628870716688088001163833951584039198977007773177805284691350805931625371647440118755230018392696119833658556485214691602892671629488483978444080122854423972809798530123924672929512697972412096298233588732523803107283025534765737738570863870201302543003329399666884397214805270204292398695995929740485756565861270279547137754687408916493425122405503999327701703900475381144908071975002699073594415842154465214809549781159961622781424833568726822203436516597420919184128493366846783439412364212456729764843245899612374777630448198748320852329772741110632161275846968277525071600986004782466724217409781098711012304305935168796561090055279527442349206225156555690255908228475320449935623348495267163593695306918388509614263137122650710268400181882764138625898802186695073801290565952889169601630077492169065285518175863825599483586452178154668734615027254800995114849294886206367342015770274477971500386453012711479843456574961499486044130311869832647430231043584862662354793415446595709824140302008397199252628793805294484757737885353695870537453125768930638783464684275867933074179746912312146852695142230645158348871676649796842123883871139881505320483793321629631085442871493254118444901741314698107164830103495245215450756259858514913382367463815121616652545546919376558458851715299047582380238986694304844751101134358624789874299982440171456670732483704952630058879113898117494972413747910781373268122099123688775867716579667504549281387512389822075999599986541686096772002688601288305018795905807223415289488062790504999110766060500378261758008255808445413962906022985559161179282508598211095614123673383140198217931484949128299009658548461380722831071868349269007033081490734962970207657947417025053236200203963929269243117236045272676560843885884391567827521724003676142861424848189868241454219734164020016230640906433298907190536486208360804965312002283160546044928104613395670727564092808567859648781846095216173378700019857073247813365361296602691115664057487791997685739100940809866389799187887567773365581339701436628130306106338174070189634998929477432293391278064724908895816775572772378129843995393457039343897469224923327334811818930136172672014753613897304356312796721529700580229870813706935625036307484063605029173918834550726000156472008373177055042877705368881217438136964037962256425160672851144848851591831242154019721984101129899502800835178528655411496962656465581024919912415277741347056393130956914449764279427394229820838165271240220519048657699426828111356717325589332340868724835198511359429423281290497028338154124619624141138836924425680829124514897983658449431392516693832436959733734316052912618239834972840845195343414314224782911789904893963711986099718751939656285121169838633510678806978230967040750784814219797488256900314715137579494174546861893180487527936187512785767683771028429863505357161216038136258152878073121309127939515585916596020998292408586935693727180696550169483797905489299927825848211114274835997383491495978127775347841208244925006558313091584423186188204450706389490472870318222222552844077369107775369433384004172119667848927630446604567267593433590439842622762128991326137678914030095704288300942171333211660323022655411823160656243931150195229306629321846405446818261590856095116627066138596718273374426652631775302410379459035008437104764306873190023719861561596096950186892057414526570188683536180489435920716810909049988560554423009394892912788609746227045713659474844468609482262254515344092831661688961939595314913637860651607456129780086424949913936859751935881279581427369649987974413151004033785639622574749319653127942907599293120444102345039510914512323854206547880976291912510555188002813765173801514883638696338482499901379732215678835176512351448940425026883262471160693550809494146431182819392687905343063112989650959558226598028167873629842619333289940986638581115884492677157769662704537571353444524913074509679732240024118588569316864953228741577282502482707393597536358021168016213507893888465327213380945763131940095577954151078272471754290811867606138946407177367226616331103711274676029902871966178088904307954643028002001724323040448156947854630869066420371296962436416068319523311707652934410241441324337481897105086000070409929513352443598567817180008361719466523351823006655191487909152456757682722913588784650198272947277514430030684147954502386103549919480439717048594871724694010975231182401992980150732389533193800019868353117531139292826185277973685362981526161764592474131577796531383232330407950624867211521843873675532082905269593653498344915066782378340880841231183491726750403018165634263652608553081490591922707343790094244798124871254428879774008975266164902121917760667114719213137390772250645548183712190189603034281985283211775808816900736937755414314241767304794105026790572876735689532736284338463300045562197511160577637680565325010880813262519601042466024671730911007120112204224634436504510008973232698556901235259859994026753717726989758830898293157345225044912414195079238110475784023903809377315168901079534510268995852506438573432783987803812572743118214951162560024375529212980963379462484112676214237150473090862411530639034401846597863064184046162889999852180052307550149747593190224303068931426559941679125893886890609334644525159022295817646047666950776773242616068963336571957324968779404677542872691778134042788661147496953054571574526023219072347015497081903227890944134280574832171824596143340408043563386004556023427614849210564910206219526801478525583922714966657357417996082001090790269454879364362659129149524188409641120408555981770559462167939508197908898019714677590088730589463621106924434707444233193464808099041627123200441094544225405567699369173552959556772072078457244019432723718016568515745654170215733667432133417065609877788717460145842422331479137906478977949651081205526068720939173838249605565609381838007183326009288074924186549042532520729770419234074011085302431727447311999929965828788362002145842868267094566126803287156130635055546006734626482582489465081865196242026793832585834499750446089180500951059384798576777032530962469625801453998988128860232944288700834865767473708017177618723817914936119568441040625020198027540751640432564534807328967138134976767309408440853992498718220199959756515397255779303223080947467820849066658924790637527216559001694300927473292904953992734456551448926056051304072202033478875308561684276922404531532149932525180551897366823869148916026789734356090953509805406084675080058451940467522236286102971613074192275085171532167463892169335678212236199884204431758638353339743797121438875233187293621979483354920068179316343550432507750621727892351207787154120797211929070504389551131835051227531982033657630100106193405953556687221060982879537091730130258524986688341299200528049925194474750231680078282140638078134333901015470563641676004828232084826612559084936806742644007138818575647845910948523158122709817745989135510590405483847332606876367438013707855090975985553726093981270309432898173191276589461855705791084809654200903291530638447195415981688216187760661341483446551054292493673799813107915174144975896148877154860977967598452399085104369983477985292389436328175515789960819764404051177442351573132194066662849776613034757324743554361950819238062280515077395396230823855868227570131747778633489620817339663008907595293228944798140375308194193936103094453468562771882909016642140720799854990790659540624212373300511578319981532085309979199429657068326129520058005554276144624347526530956148060086553486118614855569319137907037740771951729048546024113949145222898238553229991021996523908623700134990201628569165582582738753153405960733468486207429420847148999191032226932699364112932489330158326793971987951189286144595203744734720718683471703575940328102844508325906503872339608976966296779660627570732511315914102891420355333794184183967891103766228980118423244529367207688341892509484434128870376202538387051767865521828498652998803987322883204593281427793814087083847551010494986603312086466107635920621810988467576337090275031933512196025590492275442678543298293422689524615423863585412583552476422617572113752185784295102757345319161486879183155554635868893749782495334853990539822774723890648742289637790334430004972281992816103009188407657691550260290770230129228484328017884774415882744989748496991221200242272830112833486346770069639913088962454704847476045237682836779653076943837335522944230348512884999060893137607893421605818913612421079002292932605867437103320599724024130544760934494066135159950173923772236180500343149424859060983782905696816861718605237318730895312159951869183514478511818561691574735651371134260250655583306522678134883349823574060735482445462606166550831126737496483616995280993763538128086830626940600309253414799792879165698677460238149556495515818263054497727888429032603362186388887839418363848469420268222118364952672816605134291326193999228055484651698767267642836395604247555380725344502102755655250212256793889288770522537320417032839396667944837638415964894203130135085273033601547044472346492906111247910388631257672851126670455115616608161597232695845141810883104703427260157401638453882624107323422883621839085794065229038012220062929458385193336126674070050569754805542172901306154493476970465650886245224371095883669662890358965569048904841899471573419188688955827880929544722537506080133377486723961362261163465792066586437978113843085688345458673401596021459997482218716907185664464809733524813613390532399999915372556016397098913670046379251195501436053550199748077503648619598517132980910952519072240477136923131611327393019012274654072491548822883838244652138203645127739844086472213097907634128069892593691172789459295580799038607625424275876743624236643897762646352816586422109586225894383316473818070287486209536641465730976317766110784667747661926736756926027231714698766019686112316130843830537381392556280243559318251227854064833699393697494371912571187590537621034165937725562133776718894451263520916934124516675659422075006717908922106813832461482431114243614189962052772852978958743606039272706483874961326572290728137626915786948214012288589062437074586821495176371222366274114847832763901813209337009639849663342690536612377821367073293644199188554670383162518192510172114231289884036053072915700037339824726173813200385941760850049126179944064915453210578705567055232415727682628551286631502138018748133362569029775373005520081152148909378254398134692138853093444410526378851156121374017824595362708091991299298816842082787372884833963117976556392478248806148494995147189003607111848632526536254915415102343079920920123889918720039967134675954331493653301474304891129086254262428358608333326651811672048344467576306940576171048866557462677580662735430760358344105736105127896691059220042126142991707793477483896140146247089029055472615547841742902162223461181275505040002063335418066186994410775783144738034738292367446752938328430167494064300881415381786627442514445291354828762449594689416586566537930213111700364377061786742765423411666587939182008564997843250022732891130069175863675606308582300405261892607177571921402098747270447656923707672125408321710547888842506726230907290366342792720075406893631598791516934636287021718553144977108145257811261262378031802092467483653410259715240811549522641380500527449225040732997821441868227532341241933477651896522865486390511015693615946564672067695455614640878494423135320365812876146950172055481590520890106722593824525990550901315075409510998225573997943906510343652919731248462407824277370144508118618315431596015932223239056635566070664758742232423353549266872081758520771653227776696997424056320117047933428498833466233636226696483718094266891641510882989257270732112097596976199820696115115865935884071270526088737778744357146099429666399790350200266394993531975880492361992330017371422785688098164712230899331611459828817486585557548718596256635592138679371753160304189908796801508425620767585729884267906521674875190695472859149594150844353431678780555301728347669552009976329137672621065807858954079237576300351673630735385649003970627704618783632278780580712267661525671440597549349980586216082696789653653460403796693008775867574227138417409742847783652429431558220230113944280593016171402331994507904379232474641464798006832515974382100922487796042612839054139733291838930407312277808516715273833905359603186253717273332621871966270765212889726569524616468274530823603340052261001409227583829610013505994135331247854562415119059639471734333429726220606977497346964982320201547325670882086160807040243744996425489376236734400591040748042097348736637780836943994557032044992882825230815927911314151319453146528562291606269491519598692148530053859091735214338863624196728832957530803861502981251574584266860297984593825129069551383051118826319691241593696809489518407635290997044838623469625079272361615994508715547398410879907202520140913206100628440072522926235514829446326248559196259329113720683524966891992815019624250326266904625094008966408878703292704173907994693432162521684052658803575113888478474290575089638662552051786253570706670435072909684186860463391958906670545231811408487545737380729829490841386612098242364596290828742381102981651721441521299724370739327934743136564871733659524750786791213650179419052839101206648028240868217783903268623388643513436987175621442639726215576435101927711149368513475266382124736433734524173522457465212559728916336414364001480664539108159142662736141876280651032083956813362692769716703776826307313427194325382645685206667445585925924765284732576286011022113288483000526121151553490782162484277469099066002444944135978483990992073881799689849594335129843664362329032204119541772522041332171195417589198919257285995507712026182125546839919478914837518893226110002061604267459203343948021351883124775973264591415801257722180515853130637252295014903489285041607556868953588116358742699009523783591637050040233140508483802348875448218792489551984852034412617596465222315095433587123312466779851174218180226392747460381954222386801579829205023216676866315853740419290773579649298667211714230846800944289455435464293606427381399619514540009997179620014340398802537126993632065702947458964183425252018135122012447714243538689590560105080306336159538026360324693694492098986562888475298573941695332081744525856725460888955211567401347589992765515367177867292913077730357599103634348089992547711511794158409601926340991612767961349141741000886180970081811692549641869751902669258556623133108044956869256574857192469627405386813987035408765016812202953235041839228288680364882300607010943356705707852202686622064114391918073863510962803195386215919457199225355800109451832480137798596550731429407941178199190398203133364991356938739028401481492244945399847127854470428430227795041650922336959004795744212900603386634431024298314673613688837857739581098015433984473828879400397884387262885977026731371376389178048304796519818092062721575830764474570807389237036092063092034957358071277885947040718985427709588600992806817549233964382958541190310199269925639239975785498594121557779688876967283855217077272645543722610326317960906531607598586537318405303846315698204682284296963707029590516274811817175357001794872997424633632570970378446214720829519413505880404052911278513545880797867068642743854196424586661377047017231278983092591342699180754216322625215318300137972426990622639745722070262707438588237605071924299201705285970261943214693405230949201847822905929736720881283574863441129099354414074839507071385076932474148460605787177483602440161074309654285389080481346242426766347429387392423686262479949641617073918249343401547204496666361877785192411065339659751159519339401356012356920012002901327945531299738973607956733800234795506786950597949635919030785157217309970687446223767542941965679719215826758219887394941011037298258174761228154081474779720707934122288854571003500101793192620774666423287585117864675128886313366422868643640622793905953039700083376061476776956257485228808071616712281692986291390428508624942547351313421187319942726201142391922721925507676003616857135685785731364459688534465092922932845493618349631210386991280915089347213726386510827503679751034234785928994663098908859928785731517297346152055471667381024091183908653496113874992127669071440474648908444483454520619278026267734168596744460996847003392719789338730629110057969568284953611362421111010481016971424971162184822333823401635805353384348326577471842969813521906673144732505556928378442148746212920620483317570241200261420046258628061449059113382375112228308360897264606789609755856931168055921882913089717295744119356238029359975165897996777864130847988752342362243639765606530382907593446147903503021640143769385674331325879092113528225125025110979797245853925501673432340520329521374196596604208353647511732537380191183074465862995177273133454400196555412441660291793421762517477816660461977650904745463301943655088517918450046279647602931242663124106521043252633511026768599353770028885162104796469412943505735522767978107901464735048688980409440107770922104739638558316769736060898894815860174656034462828030045700522045712608742576160169366798169217409624688467472471559557131860016681473810905629371675359452807771375445418489676598249574706127885893005940119900997114396065340310557480252295105138368096077107894480637177167162266308786368407969330839026012306430629569931931564618663147061846478978353903914994331342427073107483134537897161565719695671153646574248320604205469518365837182860416310524854648177651666461233067953866957898748390533990023567932590711595407848191674229187941090029965038172898022072497720950136035070553813180321835769064086833384036793535857948102009003460063839317952130694145070658631618433123721902989151983495535404056322732981950777457529761817052122614423738618851462039378162316150227804032599914974937267627965537370217725434502134914795910028934602763093841391885730121512362708967989801670074386916231476183328078502324655715713493658260982463759121112901133804208359977060317437995285870233963001601929602392173594176094080729525354897090928704281927161946149048017910957440630370630458937721660178027497420855517621851658816854099608192937564840842848010244745418539602436603862355143397476794089109181007281333580826204384392641335213845978287952887425022353890267687438373856466478240613936150126805140406843430223393580904182883576520523265139301696964860637938250001167710324045907464735890696971958737536595865318353745582335305279232130444122949607228950625430856147291521725648374017178225139798753749076020884099358077255497436988271253406642846743279521467023724381869175997087708944648382169039969114491041649009515696382365209511206139929124928111400574282378498999209169865224649302774377251452463586828187148087540767321996741391113451822610999566107882959318309051629112608872721601253710853237227275071697871389030655101081884458012024979524691057146433797886359544661576351614784316734399719799884556721913699477968531676668144805888281941710450472855272178852158903834810360995597723348875750887717488368359023394065522227861069625997624976039020534914944798602135529701173507983888538046715988106941333665701106222018666299216652921506362423378904638156897696348994904101295572735483774574231457807229857294796364226818845871343014058261838862408632852203746400862839017738554431362069319427937419156804960145213454306902440368036206250253991116449851201645333360867144132489247019139715381550207861164120993162498014415954023463358268626794984893452856171315656531437678275544859272317941824824330147069658564733898254776032652291365842754915276432848713252089641083536383601749661023310287520044230364155387796153152306454878702941356047116644483421677164731365039612263896040780759871987855409800795138978450182646553729124879667293940965558382443987158092933666774177954649109199160524606100143507352788601617615262002521666695490462407717694980601142527263276272244348182477569620482898520551107655719772329744796811846629585921892652817284198967365279235895174178539265319347178706389479370925993273647187666476226680039415179808954663695497917789937476527009144773481416661676941949931460526446834677015556582243956058323369205291383949788380031498494303017908608547966848929215322196462085960899949236814339026842752461544092930367623627414808110625899259052921818058567052855348307434205808736403686492276777907127482718431586719077825221619928784710945832559523343764645966382715286666590924697592594834995429512510919787783290005106634592249030928437104199002195027812706670452781546053182031658855192257949396957862969423007227755951941463930062539126783927644807948011697654804926218908080940647485325035414388065674939668654996467219712287410873236761940169638634581292224268102440487733256327880573099616883077612061854584915647081764539491134914800518380121810663066024543726906997437741707183168328592820927114720316903283678686807410667063815970152160771021649558862038854616440235233278051072441979186783504249016866711044526928937456484442629736979766093261283387435935120129448514021087973601394856312573427350623026704365429991316816207116647362909147377828280018305457416007623901428031503263257329590287700078522961162423938773237412021941796822424021882811184245724346694351331431233800862274285181370310492490898971590726766099443044226120616463737781630940836856564564075083825221023375532342564991576855186978624431131403384792989980081712090851210644422430012257415521663105700526657607783793972748684227136972695032521758835164074637123165734184872868593594485246844875249516236936533384048409946577722465954007793473684114332122629978795491839591443619090987442484286497639304420556822395719733965394762272647490256036344581244129833956827549816975932063205337601412864935080364565372584243024875048874798353768564950235134377020036448021323559363800190190522874528825763224729082702358208457810437268149182825899614714406868887050152264089622294344695422201136892992281635656248294270324970808893009700272059778485745556272813033475162718573144730552862432211672774258081086417390378997705157915637547974565925143679664245649127727988738016760634848544085543114581580712965250571396954226559186824108970854121500542460351369136813385962493870869388981934225236928776888436515609917958264225264239404165955998307007868420627630976977997664624205046589196321905946876546598360521200089101242879038860371860554509665000302891444261574908167328658251793181728884994724304802202183350844927602040677985898638886759084253157661455632329992580070787860152983843922409030923078758700885126155804643410414241100014705305450015156733404151914549981914637132221319839793610551731188183605307654594608000296886293502237987061078058595316284982137841699442796239683869408389290278101953089653282889596758219306276423916669111934626957177668698732765753182158746470069385405252444052944385478924203319488493734470711739842627998302357717308203742434567791208645982291834021813868563876452566285488151385568426193361442989023987854424081597317162677168166465995916477684414702384231063469044888466752179749329247437177373962074070245351652801972135894465794131981082010061623958419927568795838263385604612644340712211549680850236265758882089725632918362356172477191196695056488406432269936118801083494074657985488771764725157618181125199763905549535302970824255577013853182276235021245936129369230816887219399638065480814316218354762695830899223453801691070789558079820031012348179170703982311081287017899546860902923410476224553314685208074807968167899967136614260515341656359554026503965566164044057654527921348229653283962866633894807823851379252901771905680951690775021740584075868683787057726492594139824319339542263216312275434370191276649036929667120616712431093557473853822007526120626129174465363940364159364536461128807867563629074770907279108263412653604715594768148978388391723254619185584655398753720704201764231424288335274959061435945718977226928703446851680502955423213068595351993671563143561926159853170417702287412255106678072816040183534780471176390427760607015125636090447666889722345290646563407488494177660784921949789797836469770625055603463659455510447269216529620948260942386417158666451886385955849926251322313713192096849371338223495669295862049727236209101966396278737672971538231919713932682945079584930994944130901406883824814039086646859013849038196247038930880432528613840561473562089836329640728761158585105661047994411863766910044718711589988344723374655180047493774314632043467630898847328233929048625347457592968901727941632089873850396075521144193710027883550609474021893857809560515406248145387043030013840427613451177613903560197119564875502531361424662802334429423687041297911410811021716715725107228211227570899629426081107903544491416029995429060897175209205324610014519854744348674093941499859835120723248575917889998203403793211822208325028820426219359579480823963440766755587322454004033591161378769640079798142880439037762205413351958155717146761833299509091450595479809495433329004739880887483083142892470736153564194950297394006217831699019517364220220095563403149789450939750484365786934239426357455707218661752714210841577336740849857686862459550920249757790825079592737350477986545461114006095667485086001764112011474744334544686932134580725802172803351393564625564915181670797325380158230612231151358340770740584005267646954324014889543695631915090751624668315934422577865220559713742744470339679506394055707166125060515894127829946737626589276643504483729624518817707623439015377988707235702397931831578955209282303923968650676856400083784816574428356227000156905442230719388014338918025970392405048892941755814200701196378990116390851866096199205326648003402676381948823860326007237003238008053150512351716909545147322290532077164746453405615888590554542120362437652281507927807939921326648403262317393240047198849618578741765552490896008842800632434074138733583753080906537747658490083618809199103861212542776421556651388333589888473417818834184899417294394097718050759629952497742864565973151482666472267281011025788636286144428445447945710295036367575154256881608010115365315288050309170549123211572415327814950545219623093356099265248878409351804955897444968462728561533932212680690647818282077452140740617645053825748511375800290112448691528651595163810968889912047704877121076830121897456873001631415285673017624090538053220513727854464987774974858328283775457896260693359968293850980060167976349384590196348524868072359119632431590216677564613475704423925638157211638041455249173547992955662624146883305259595930478541981628526610298122645453855020666195427109926606611298374532009872821216475569790113787035113499095429425522474032423929762737058130624957836704783953933871733062320233919185866077743461030369878017854570187099808900550114047032837300620986302692143766996268723415642131924819821577389429046697812345130390903043907926749370073360725554687780648577896311930965939672306832812882025257238751314212266912410832183096051760971093203129317684575253891526076396737741688510746678843871860225377879308116604813873295020272714376704373318375624049500238772323862210463436746945096030621469425623300308453217023224375485923008144262444055886323239659295339623061103289280016981455939432840467043066532510778844916347099000612465100273441617923212832837220567392911547034519604341782686313164497781665459986755693805209435674420061568069111750064889910289175647509633315129500501188960542766482688908766752046450279717807708672026393343287824426094645012469903848129514177383114090996558869245743937506295445840163417465592484216295482311743184184827407648743977231227057199214765579294608255435667984616895300027036277283218678619604286588519260682178761777779166031090415097242598218959453496522105947254799639827356712875866591786064448283918128080204319848958564501586457370596910498312431876622684833235822424286778056853322682257363347771982387519067934393480774516231212282019664520888952307142705549509355312036671463801526772457630870352014308782165413663044311181987208090392260455214244771402883855532220897798963766190853449934084476938569029332756917510182558600557006099847938690974879743644372781429748359232251553136774484754229653563094086220735513642136012432104951291719230526259431803927101799838835093311430999580432580973777242025793585876662958153775124117917633720006458533891099792697297111201917248504880111909641981102064045967150665457086763163987918888418039364849809179149889807828406288631073863824600172693209009568413098401350540873146670097002510582804933164394172627792634621381952983756285497578250673872993690169079358954602448971733439921576545783386432307673204950783522427628053910367402889498490820204234932225260064290890107935012396181942635743148259656286278277368095671734698068153483826319042067466943015214825209707513004095460017169119068288328888325038421482302480810395281792482658588210623752292706960945612148614562920293694192913088406164485911518020042360350153861369487254944024760124618238561500626485991769169235431502643584877902433218738263564013651630169015866590896060391861607374553664158126090239220111440817694433372344210544320485346832524551914991558414025172390764192049099745430566376543553745365480550355962122385147101075769600840537552854675726746605674856876747212014828595752492915781346239559974123016250332022216880796466201033698537458000212970832053419226878676807600869103034322535890581762618028124625791094403529901056617788503998677591029136455152850850222343975267320265519033638989264596464865013879360900821540790512291686094737088958778138819040323377325493097030808057072145773189409438864783939127065514563514752363147614162802193897139229374249837475316593736912562844002912059587949357110211515905804532085343973303377860623577450700130669621533807121867955846709174871487378610091965482923360878858029349708488012668454005972294263082273132536910899707693953684365185279816462304090185993682831838095695529440274727684969420149304152758548498577402859511541641490973893806910645488610241504301151587911920748053960484457310047493730095593078726816118485666702642950540407953680886575701899511425172216215873209319193777254316100268638982905951555042037727802671547132185319885915840020059209113969032931475417805587675369125118604176834628604553539004698375581191134971474157708456911616971474516001452862015857267142378378550308873116757959938293154375388523537112411131766859436738708939344386331119912604935418491555767253084956967057818991691007276936394326335369325656570278834484511185744066509122409308696180303058170676548905356293338515700069827428911261699335217108784770077560746884584880539519127525996646561062893131682855160889253529107118951548644707041190164669274665637511685440117069975266318246772369480391981018798730556607920055123932100657915256267988710676567596480038950931548513727517150728713869594402242778652856746531024498948130958020736267978487815520653445410597703626044118481507371739598065521420323491732682314917563339305314569827457807358304457029323336963764719113515164765382294545369981396562721468733888183300665205093950639804824102374056325360985250936357308110568664791009604832308751244093061958815097577954586671400426049543150595085354592691579599094283691316879197648482508500643316456550464374782517122480574427555620121088077260118881941696998092719644576916173252000200397530988437992907010992992809755093869253678805409635244133978811989861338752672410689969728071146654627790704740786628333887888296702875478476909771955871847786865781078876643486002005920833109139114820476731374755773980024774001293225171274010211629533804144847758490850675338848662776600949523178501784686579461253776068682356773938868197055204750531640061185386884094545618914015871952614074207413214088053240255753635930067415142067484881817108830420163827763058021039713569169598487086632050767042177004118538610389664344852550364006045944681493799171502410990172526758918725404009907722000717085330908473284437510981659525455450234592006468775021975074801745150096955988400895998073750690439355634861845249037485904542848598997743412324400435291483603591562523884773232334466995406595639968667562608001155085963382546289064404403469160691572509974317672684726898396586186021488052429650064914811196872233935258588781379654031783488093452886946693085132455051162366258206708442027624660481277408880796233488668542856694649517094099423369063872334803244507383770955339890112526790346406507652377123556337651521058745162048561416349064788365334153726316489735251566750831622332115685586141550971774543863719350409476680872837683352715730769254994923125159680131803740098492138993079560605303872879862791628685637901143028704932927290742162193335694347525816723524314270119446170810334616429521427814177674474831405713874287632535563313538537920578347958243827805792154459401461840843095159406436885206130235763765076804490169827365075640058558815418443422731421339967973612978166361984915866061604076382330119285740401776546239580797168895081040135372602165077790350128358886378828180930434830315156037315570904467909824253011956355471831648135629058937072598275426584732386889469192506121163272448876973063386347401838945777938070570391876053715735045141218312172923776349408368940637245527907341174053579725043922721800389512820331299530743118100015148623880921578808225656994602951588192412788769614348227868566728596450076289417208906469407100910911687769854942953419034373698631994502751589520245301638260183698093339129595529513112490563586163658788863930442724079217828567567582199933882706143768235493600907157671307936964956453466801690338853756415499601996809110224321049954421941747072408085707381233213395508952611260673089609872711202557183110415011620308066045956732412873802577028885732728637413359675849128482831008623299974927113938471589186534689283760023620331635152643835228831493552088117164017489432309950802703738318574072553442904034255931345069939220894887725271010449875950321210446452952456856986335725805811828600779942796939445054513841771233517092849121241944201120384056947882784516165030650548649898374206611870624755401655299699905701507430105507830142485574849320865371053457988411775508018706889017191655959623212432024546407560773052657027367296430943198586528959670853834070684248830718518683582631992301244418598315495001375878116094830242947826693748162895966150862442638615245001750615067106468303743349401345254709431459078924556767128188292138871713558401481608392647101962339530928911064607144642606891553817811130859625674482229419738638793560385330259903881779282564052978016764165940401065515356338297813048594577415836382928539684652409803617855911350174873369316391112881088713300892816841343253977356012939382422433397101686582485882623358853475244910310229232220918198899377662996660244804311050683938906831315651224621076998281148951820695868582269033769211983976950376451151452463458561286932683408064389774323394335902236816790495205606514161101610592335018841973158174985622248841318185583427736410809388139770290721206487568388817616700008885184808004232304630799417646957413464175117608415813434537368834413530598066186463601834624050990037994468265994237802820678251771971629014210953494861501188315749765407903400529964935200555077437174957452735359248498201787516204036557859669579214614788348732414486259886398699545859567423455334932213971424256811850515994968776781785139953515657666462479699800819737535644409952464608957875384168980393843140615242309036476323938711817986159481610004557884967791098180611787830176253614344756920323161741882545399610051377306002501284681009266324384945073554476173698341977323608467776952417024500032152798631106662454548448497710762505981997037741440449650356572961002651178142019193871139964276344169011674632129189139213186131286784273125963387661863973899887018763479157718739196920700612146041887757509986243331106687540737195152631298605358340401149971163303688017546382141942356449649474264301411543047135127719765048302212767082162271731211798671218958455368318887254184602687100638526627275795926153299717678769078883096024760104162551237363045836406049509987993172746054218223288201162291280226916089783542132107619063480044610097542469971714408019100230922599479055940652894039327663093855528005368946134021315162764532121448844822327494217936864120250322329857158266055971462504897660209538101735217246214438211626902281935920582502712000295392293829475148768197046663834064334221435456213851678089183462050060294759294617341349580306955990663743473124865931880885290963071538358869548061099137888639921945338796927565380042545442031534086885951895301797991757619557652842723868237542391258372030322871492019366693808164095254215293847987824154203008474953495126987419209809529600015847817793374677160787413571071178807970161737438788701428353002401930415772919760494512846025070554510047328010937540181734275652023597235603618416080453643835643008659229534191957181172053920551328410662365199977321042638146296888247236188648915045471202981158154854213197735829320714165741511759942072985006875675296132116551979743371383297614822902725155604742232394602910833169188984224505154778166794620565862195293911051343106736418968819804409897121758512845731740183889818511927808572700286787247606064681916848466245748977835095637537167704650020306740059722136530882894533692943648861602146206433856473867519752882290876458748128854404429695146559742089205598652475171639807401560614609618472375299553942585869778059279088035438439325329654377100893735515762139839347759166971275975636752156451134530149990831682325256223323185419818156670622278179855045749852379273364708581225134677800619823832658021820855404997757425547249904893507261869654726111264332644040999249059604417895170101450771156892494258960299032450084051771048331702548392650867734659596212465658558966188423094974751288573732165414374093458196339227029950385913132628214878831738583115389197303018936077570805708525495033432399182923034658978593879591624890784416348287873527888017525967629302390617823964312799064741011698154416606431502053123232653225254080568384706550972343215090029083867578340984097293060522835851275159276072014560674070042303861462468651211354444053565472809966948552358075080315164431075745333412302546941394395554673315647802197893809785476466768774597871277391497456211593749164374023157882809116489032102283070885822915222255764081440657031978493952166289192281343488217447095085335252877035510227684582689501289549425738322618939110889735376917384680229679651705408711897956160815356565482118681605813701225933811832446125566210073550570622931963202125092812637717051744536567902863566833040876257206267511818995380786703612437860416239576170214768184053422195086623854788996257653509910705089360243376065023153341774289808765718444498871094585845670927075694434414071213299077979966232935758233636366158166402168736129786819436804829593633482354364572530892856740775918301499159300249157701793732245410488289508293991935521142978199712398515556811359907096440508840299154549852890732786468769867579868354321009838435334474572694758108963456951852664768397772129003770955730115254832712151816154978937092890384301967949656050224718652352445207694879867133606744728847805834095633274062683934810534582654251470151073150262320676672547736218648492752785507258550631228629256130129026300319102938985738966856842401750198983322663149947908154463072777919323590850560422852420656681282936708625740353239718352227024236450393227660928583786543375991395593822227491223719906348229881425909430282189362181123136588000265287608737972079008284564841975930863167820703178203712306730706910893026208717542141605136212475198468175433608483360599981283392835814491943164532771165991833515664405182420420437146310606101760675501976543332172356646977734603768944613110083688594144281255778251545568483340611054675534888276171696579485651044060072296548498335773142559475213356156991257635546959442717292131939584005226305965351447836772709888999160023728029279509777028555756079788561791133540605208595934997347176532656179096482544106466959054882271188782622001289303812173797263664758020971718340172342848085101927023918723089353853469353673133975005627113466346550419245011117227910380228678745973464664904817414951127176663022988557725353422905949618689958368206147038296858504748223556586436746341914630723752933480795480833914313994221969042893313836570998406225593605481040004614639197774292213780466338618711627868813312070702314186546870665745069492085013126002172373929168327415826060120957523060500695728303430912384800483935715694731131298874407165741611666851991949714515127664623657508391789185046868521195920107695042064997358312220638813034248215426800731463673068507406199026566552432844803987406883956347859748866510072311221093561684473838463834551693820696581601736413592557758625319438845680608379564695134122994418455331674082241414327554849716259266929793829320039805676447935397107357234722192743163206558342381101084478480418337812701586772539309253001548475401249712709390098881301720641789102939008575692394589884899012859388260861088527652897526964761014275085193037683698532070876390160166439981043423777196170565031371770782116854758735994781125081297895110888717909020707532006465718432315847444401256608167015614663473932927882572841241757564564558223253954079373460408226288091529639298291851117446358371088593611278913349602929282610347777685462892552454364575613438773508492276131127571707105873006907633588046550372874514228895350159023537413055626051628657927645498143666989819210714621084116789056850985020263226147393145248250426868709958444604683888695037012224130453813271183507855322898097590874523573984593794942574395403685985032994461697872322847205038526576969288152458183571413285844012791812110406973673135486805627754992846072134387695425171465204927686455494504845545819556432807360529676178221215237463294520639967761838838316885747444896291502556084213938663232490801748180323356913268321920736974438181673196070622649334201706979824542219243622658566232576411048026850455530782669999055539518087466787510205289507741715514400087733563254953047597730562183964917306447543201954312167660086004103143146026138058032688564605728437302346795972782206316161080049016437578567801182573246061259908264735499919408944451023458443483976588140511394197190166694312243369581699062532757870216789392712552158835644259841926917188648513659758199615835213885913441757188471020325164873449474906602352451687933732494876104795150042706544282864116061703516548047251007660292528790024900561947943790879395821894229741980420115925233780120314328018153554548054751702829675194781522640932651136882680596214195291974857225988576239714559043363526479922386274565152933273361200183186250277820570441705272128800703975261349405097627176777068948284506185321759968523440394831026628136063178169311522599340474810869515386594897183346366700128179906447254295498594286115111230883778833176783514634838484133324854498518457252746931192144430660955382695141293842255358315754026718726826572729967373945622622478580307110476078513932150506233487504087330723822441512848295409661846226741283190482133907297499780527185266450387795795936453979049816082720304841882564557535024644566644925589452410978292362722737377147384766047018516925804769898845669993674906019238539262402291313694403544123827024402521370091329088158055400787897032377943885755492267652264687374549203143072254128357157732192734129211671001005639948939085195604048305557508921514892670844522822072853467325966012150503151894486881995468654597053625045507664376809907793266691788730472897896621627932980930147115450563293599136409323919150234213772122107336388551531066176631567801843773262803096289250549206372411383370103884696830398512931565139835116548545510859850043280195169404783486656557701362493311699687981079262603492677879522711544182104405464583286334621768248402161350413701308092860392976109438940590095535446834190519250336672511163716052443048325563341096275066779751352326518992214483163800605735251189917392894200048320890476717478595710811236867518710267320262717392400815727946596099669960512597168936228671843755220625794963949058879325591487387523780072599618943138138913643244725191764454502251366806970310409545722501986508176303456160283563625530861571040547487094100422580203208808000372552096125451598978578088122537494442932065732016673234641083186314965251823007124121062367000056236861050786894184818881432216266675784007972212879579309141738480564769695196740803756113126093905376571302723507560766040347778920955994739315652931403379098260352604348346472553968444404815073343095334613573996575652658167930141949165633889930725469034708181256998893818856895979068823007164728468924158061828125611706755345948807018660899033810894069094322552604506990553119768529819551091624290369709674788080146848236736554723495334220045911414394622993251802356338271685001330300461003589097581412145662130124499811949031791273522286028774544592813648471789577431724854455937632825938820144298129962919218180283403638691856220363130079532983686330863811330804772181802493470124462509858791363575968222375651889835510563012047209635050362925317016560838734511690859117893203342462475041967430090098661655959930194844969309155360687504637678582728059861662494399296174812086539562440354027241101530784731030630679492990366360563063311309484520197094718160836944930847823013553132520061686148580743266680473324797304317551161615706810768308600415061867271000138410355708400188321573094080453092795226343951622580575000565789508466912327083487485069284993213179915929694296043049022230071235067676486531836496688050820625826803606741980748644173251916241075956579152165607090962924813760234586816927395986745011415032840906065406513428168514305537411431747317983028914784388137256554433861863325201517544681763661748459068882137024529074212723903170701140507549136487823436187581250266962268590541856139024919612126326160676960761081377710852213489935450968897207436907423202991741253730596086675606305808439623341339866987408927962168047838410377615768851901938662529777981637093227432115496653019236551384212444647216116432813480589818839588201224939697812618762194563062551598475742852842684416030365708497740850712782196464272605929005649531686527908588320552374562242119182052212126573601420441483751907455587428023147775850306518111371910130622209931919821211492665104227906914553221437455125429232612799840119287461529684214198768041331258809646834535441412343138700532380285896429091148009016978280576082503211027282537709615370186438123460949516027611991094564058720770000600151955042463331783939276858021050903629261521242265913697431248560258315635814225854492295511677673947549282202990626379757950661875716244148799786379721156832808222948211534208195192952209786766963520220609657919002472856595639473117634863533057688910009052335648526704147381152490793864871245558505977031149906236688303106872750368482070959509069208988388988826627920108714842133951267804702084908307586956559438782531635532575729133222313891893859029440663464934044982110619340138818959143556122650532993834382777912128226978016576121239995364798167293214219071402427268868284260872404000904750855826300620743560200140506088802190121455026411619066386442331569673165051146106501190795305486980422607414272010461007200584685675658361859104303592726736883643117637672403491499112284729323358552005645210928682155449772962519437980273292232517515917192316210214701548322929149553667664873639997240025977223806962322913834539370239387181889399586138770872518356571854924896753364870946398365405589865785609148303283683565384030685653564887661287013962938059740497921819820768840372247822316635177198809329917641524107440877176508297669114840160920645640132354149550536676279745437251333661858117712700469993065320160481228572025043276640691981491768422579214329343627460177883879641539014008688089661275267114187576259044572929629956398858602385992569128502170874935082724939035017151929025413089228963618822380849370006069002075836404689628879999808189803409959743233437803147098968374184468480679521264702571127323751438077073680752887898931719387164861890089705630194940604412127053125854455206257501710330541141072012446575036113437349354916371824764540669268452348486782873197569638328162671272355757413792187416081749673357976419888539564050385185708406283904279506868899912143239767070048846207734602649378279140282224332878196156641272711042419637210644520434379315363514007367460897404135409623333966254178562686511105770136115384456053465699627057594802071095855993784604158316312902681979774894484147543082764199671412664479712622613199153850188230392085625613453867026656499280432652674950716162898239094898613626035193751394086375160326184978345103235185516083229167110335599270269958935379446726028820144388061321319379059883758755427643849032415990521137548796204138786394264196310862202436842204099345391473874969413678016403624603878586416175345676803913139728332104033252479215199715919230742073478098973815972458438946366208974936059061676690179246883684881501447770963167743748216802189702211938410042496481621836331773902303019353622330272615612506666838894158246472695946927933037866065276229103294694770975571040600134187182137201851369075069488931110229018144859905079413358979907786149456186585972442404444958675073206117361576199903040898139953854323983797040636296771600039633404708472852114817786565869857830542916286499630035375519698919444161969891885520459008745624890649261340963666623228616247408530169505870239100821749638969597885274407750368582361324598088102667702090769496738415418359899588953343325887262208790274937552372632767103400748363577689726201145997054727841672770277904805322386044970703810998271577485622733387292552649670546785496526296403048474617675308079529253233187949720545024507810218470819300329053357039112964620739998310444071013881088987306213412767731901298721590787006464732151533192919378131280656688337871753188127373593231844929295465386190292626607865027724420293884819905008003277287659083277268274655176564708200398310679268200976761444628128207575061702612775980121818418716071944021665759160970432794304824745793704626843113310773832002802440035536022619120980681120343803202247070006279627671409668937699549123693711292145657634256733707804939147951534140571478469981098808722655769819173511975102489024791762997907568910861023081127695675385424905658320530840576075492379497220595329538392354952212599278724173568135197134596254097295493166106898296297185103017216226603160417678903196676416527036095498487616977540402590182983150315586874795947947547644697542018665366542398767427996499102337917663299244968385491659827729618391859616953287302080026080855192415585884857418007385044052668242708321305052725728105045134957571849739283777373385896053148931194445708890709724156708139018667013537639821356897733988596568242099264167187403154662151942037175402094801292796549587332611201477378329798765353000999834803806678367561916133453035216897207113446004963670320623245042672268035124822438373881953380100646000472931905845632362263188829894609678004697774171535307245709889076749348286581779632618129507797501372909944054426086316466746868408720069752977483002345493893207660526717066488213183746175879049824096789485811908937607255115243580672460667177173067265118974836634403102793563158229189173004634269868429425695830466541691347920158537135802543786737926518045150625795287969025751455534774419262449783135668620948184125237376355310937895493016031570832639185388754928211218428657946906916004725323248241098006464372457850595603586903828971362768371594249224799716378442585080734422002797184707838394770768610388777960875307502857671115103015753663985301104351667995746904647244318379560189238258715528946348667964761860522397568614107348152909935399988780690291683414272018496713814974977260498871035796398089225248314168183642659636662846352657695719740203893891591788360392547351266901421967435207678205251501987590212524473768482141220465597531138837862657486692040139911336026837657719664373126985376558444273782233654197311084076801074541131744058259386629121941446281148741945632096632752388133574489755656476332145354309887159373019771292007931772161866913720650238297464219966087045559108456464125710013566448237006628850050727743341328478281138610081711519771645740155063545693400553348353671129891372373010512288571277951081912091952202141708910675342185776820511212302511632715156181039306987699880852375624084151001516266951848884300337673885376515450232864873666026481388623193493183972717782363909446922505839043197244336318604630790825017112763898909711267713248997872327101105771904959375751570137142552214721474949388920215241545158760585069158500761081690056893571885698500181864557310258072240289435744027740347359375216363945940152933173827680895898989031246714654186679712649066813537390270512798404991512445389745766649643719594014370277775672623375482730623631900727578163392238839619080479443679257660094300117711290565303298648352381232549302522208853326654592216490327154302513897006884509811304527434771085854380694797858061976774784476331587068307551222902604659428742683658143471288756942892195716529216792354853450836269742818288024598774929557683713700452595081714292994344448599132262747576127304484634784276830892697280755525887129394579329868883655136808161282789750403706048447893650341593039988752491352997307943619572376691555209429022317704898510791977035290909891513360629752752822256555619539720914069220504005238812673418336633390963283043213393829728154713079693575185302551993498297427815100779827527230446822749105409591099834241684562792883309374648694597596509765388876541869067163766837204091001984699093598053564915608429711584071569037609515305915719799120827117257767732022741113909669377664419995087157352807405585683817477975161082869636973064089580523574392371911590019607171732331991118039765515278195514313741447316788077841967680337891387493168553403350359150373076265513313678247162122148767738436050157982342542890986070549828649649654089082681078431173666693139941636011189221045074545818156923944493839241017415625284481403691494723497573901425867520537418442692192589815452231969290967093251711064123977642019742488344709558364774645323060067446370524732107841627140769611278859422046845519053021424858213452666017633249183859043270329840048304520101103639102844989162670834026708820000246259273966570166741876822077936157085431579401340173403708830193197073842863417970763614125418843021249346776426796133226447314130481592069573446969356904008510285132036287349489069272291871163038885096480538865030507045219804555645533803091720502031936375493552662720930630827193441319244817307404619928178315167235259534714087363767462352506889588328549205701506363495033114681983431424349806268508526176497239655150986602368454506780802433525984970441994982429524573231746696011793076671318588962518659665631826914518375084967862048823735963477673788604984329603788596251548909095461242649875293361696496887656882174872087171882738740942226966171634265402085369014102959485468031239723309895533564534069450518521975403294409222459800383422366375443650531321451066601916498025561398152582081454107184133896624854837461280682858680715373604713073953426795989876462294037494078966028342278863055685904880152834953208142226966011578771958863939427423744842302873674848252820858240854707525039469805610735989206902479626142044779473526163134462835512124918839543029720724859756019321174485213211827923377295489285467351204541680255235225460872798082960824418404454547282278636903832055419153254977221498702934001788244479697488678843955510215627800285922317411150473427242849324125656909823877697075150717977644769591593215185676084339009534189789549605910809176861087121921244617830928062705887463412826857783889694777793380539449296153986953199012570392646690908084654984318993509412202565769658086310982658440010879239999353053461095512342160351783171638730417876818623293301709901914211320628404554773992849406757655659938621592139725771542555010398053037173835347578239620746752834867309270058685821112871653330478045783262610871295979573701478100499568244263761036920403765040968539803981801937143166744509675754435404927118552585636742663317791026685523198385065870984052641550708242183749780641023694849356462803707453524239495047279259809252667796741411131085121998759623523429456671468815046253192453813499537846114504911344364431307297504017545813414965492136453809447152761579011062498941280645503648279513873554438746842103571547177159045898203221995102209589461382482429090813781845773783354720128663163602797061362685303195154787353324500723265117897272033772946138520692729228017835590491774189980582665900867772424338458973928843921900998130174572283339178336808940651873551643059034118079908073230652431095186594610309394443923387109404342019569756523884444210736344039871760805077851316538861659146768553686230488816549242301214137834227957345699270745624417760756558278018217169855970824048058629858541524891900783506563910992031639892045006990439770568938452381476954336416869346795219887123597533648757721997160424417980886872686580993334774907332448894001867078567247944557466685455447297160723161769250036319775162129142019585897157172827881195753924841297461598100794574763389385707704675671343775493420751368505246974233584226673172524246177981612427916176798900772661904596773295238197815617500607370550617429248939437633570598513984655507608770596687147122773643780001052570168298811615909420598895217189405274559023022295451136428976844797848212314040039351683955701468977082247840191721830728324085134528169868946887705353170973851395225278376035133993362933737759742939862241846925809747243920516898074763582802131482607588928907383701002916014754130538698828498780914723285038942017204463756634691975943495291313284558218533805788038932865061172360333018290423862210037216936409246812162774546137856440125394936169231941191957193351243102892728674594402634258171021695846910666373739768592110626893811413357636944241612988896833915797378529657155167844312654129993339266374694493145628816196636825571430082985015968820521068911630298101433820461700185083771627032694164448462454942113122699606732963051929004231373702246905316993810108647998221390298414429273977324028117661478672190102069958330310101935231655502991196456224572496303308465032287412251596147817277035287921920135297687198987626892563507244171076679792425867734286072384770670294057467263280246580307867722291685335968474150327083735525733189539957463777744069559712749276316623395100021330506036456267584874140593393928857758908428860969523780529951688960798400690538110727540083988785376593545299518926466390960701313929833614725230763469497712472930161301338937073601770487735054311279498009592678968485861875007996927139102027373226724732489058937500214156244106700841947979126620800350744814456684834174679585368004657748299190843998010722514607494028918446832535575467837779911301744117062994695847209206559031900370809927623368799973392261013664848716716170139343976025996874526778910583777811270952659632029499186986828114525033236675532807370049514019103160368349772026575863962482861825691999466656093134922304070737021987138605973651114495960974346337403803410861928223158910583526590621666912861040169610600463060159601041674241977920261772221774780909842752838079920039466092093437166095308137796748967362753931841852931861538797263088862494078701928762283005552149271637780147985389452385664412233784577880037126686786850946662031683726287629842424838389282767185416009145014785266476375569186609996498374706696260256650773074316042662084519011958663700371364109709946660000534198596879645016490177095803807493341462239864575357238149009322883702757932967265388066624710473344137161703539026048841891710393176710675754629905321392993022502723438534014554886491927194679729920931109075931569232205636943245293239342223928827038713970155527800013911978454757381685498057301822894989945409843284639995011182890041075930759943273316965025167456088852200964307514634243575895078364085170069019098667777903935505576999222695498154020295407953969347735855480987896818231959794642007232015718999055771146961656192836962186988653507236067449913578063425236414212254570029314853307704582335302249495335355796266826302943765590197231365780588814215406698920148038945645942353225130694214577417969840731180699769944557831973320152826458415312075252876139815410400640662794310845466178625940210080656638731640075712379778902831241616109489517263525558027979476731306034007303724705789769596900397078058957319336893210645539125774953319723649567339348925715986581040215482797600787310249847840369339813431644465300459362914000508173508406768148767477121291356912737565244184595124124150916729006776990879986481252615715266071736043552452923025873130571050084311494067545598579853135235062497789283821580426961581146886397769753109802693772750981445334279837108060524224259490938038526408828664125222325142466625768820387148066056709837386440505584585651378420175992034946162270076436702509537791397323866593951027425056899604241680221173008404046469267170083460637884874385478443969134673508096124510737178445357384936042914323259504873653280782398411313200718254563664870411438978215755524076235181916600819771328136728352987525336662250045343577164168335117746141275264278335019437176511835411135628366167004642750391071445726938350923731156554674954596713568636520203856101669813449720539810074716324594763853848314958012803114441715566616045203096744512289038822868736823111795618885347050194754617250938788606218624692137824158893307323137085959734575425846808467446151340816551311528204330817692503173697153857295999774072537225710887012521825448505120316649703488108202880098858410265336775101572749267081193000731989244092769081461024866931945730354333117146258756969275645686924251136991534705648870628402060189519470837067420086221761402893349287962471929948552235870058110896262167829358165946433438882516948099297271570614923626693211342756081600087015376991283291473130105265526827908746012573411108309462265846836301237202378146808957144887216080090990935468101793665017175969804301709070032124180463970548224094898063808809398905360795682815268368709048205928160762187449233207020530771447580337688683285976376299854024289470892640344824840857297668311414383618215035546413699537865864626738927988071752627402901305211417697271901210042434587288001678404172129855948540280129105081946263323139874673124232442914323371925106876669609990100359565113979734048814506567152330660387627034697371827780561759578436142023046743931209271338238131761440559484410649353405464248459570372242059631876418326267674829598688698228631365208084665443509020945552742792779281342100797606782985935998316634405463453635192145265006157021789991982776675522648585481356892647470373909771933868754360431771563165440164083982717848381860457062237328303566388046502566997767811205098205338299069231588826200705833745799034641668862921361337529466400579861707732260170481968977952717203523512511147222817476587603244194345333146079643694428705230481357599376822524163559482219367941528238818719871317182273123062708831693181706350370679303403813923147274055419122911411121303603599480239071590955560684165738282501986812091276419878523364983089227914190224005981622559830979016585599882964864056444496134444155783256049471902620607213646899375938818797194792153985047576326771645181817043398920107426005979020144849194435932861613294997570344419780871021386406318475936030099144923027248092998226566814885692382961267254111429514951639247417578722065476926742539281564880798713998174904486520786967358700878319282646480763944536788710319111583938534312966022051189682192157841835510565379345310484105822064858406045411568988133210662388689797244188740423510216185735592892310051902863350407165448362986503414602870765757867283958683603593630683586252724242917861198582994884280002835033422332266814638712676874016788105672239096752214126113843819418820437200856784764611629875179384164076685018387769914955019544290470750018351109662460452720699916589221918669274550115696029202048758005683029784423202113129887423559351310821684227821612452952155270898661133054921528838905427470155073690243553856922939615588027864706711027483855177160438832804409716102296518222858050805538954326799916212432642820228152729534562488138630055920887827136238718211658478938521911210215299272095688079970642091863392673207569565945789825555496502753495950785701255325783457667505291446523151719433010805905962778442774923970127775216942531633137022813870904356808791795456832759451717515684893507501789512815778564951854402284061955962513803216467178914703628103407367638737518656371156931312934328384150566582964019262663349466368864027171189799803661482050663004892838646245352964262912888869077369959577444947489014748879846547125841248036618786579326325873793091843908412477123871522006610770293125527492532624610968519472813539413964817784902922886803774282149755846100481870727252349490930271928427431023861682555454635823404058565512693404768074323811808912389010206460349630363025808912248581780916631222626041144159990266103938080175499194953346906770978814949920855117804704247725597228644812897560147325007449963053680959685160315680096222312499471064183410393382042426902784901659237128345722068947498740950395949906879881922256590725318919728878227223348887402379215406695781760309283934600661630111780878403933293380889598469846009871500773999460030754426858726129137557503081227748763444143794269899132301989516708291884982860732585060421951947339041081512139286776679601933459209865616091784694078016942852932822679266853399796561450243823199078477287203016201964355534099025276098149764017964136464852846588925641404988676160209767162640526180448712679039483065512400250414815552073598462643547026050027484081686745370035322240123905910357238157082342965484277574669804609623704724280172759488370098341600515797320733667435916715664023335616675574151755574928933371220456682542399070224663937631647232901571030306640018551897580989992287514474838401000102982267521718959305826787254185693825403487930091287557637210415139909350185914806010829888177636682270732344023339470310132907703590403571622411178744867039227271164081843005620677579319806034153115060502242281087324985654889770772102278291345492358956282954978019146758593502937702075129668872628505317449700077297784194277894983796730860076715485212420711814919020787979409740246522961517073359077780524077809635712154767625882614794519683245571945471899764665763582264281126615229522323520533878265765095217140781826829949502339364794122514633276715051922642096116749551993120656130881160388910201196892395019710896164951095725000528811731823167041024035667255136201573113795642520547966568935450096465637879088281230898767316523469269663942533376584647918277434746768971442295663847503882891856956891490094854588846154440307603994827355305583658354322415784933554953515717715326036079032325214164503174926299922148291765610624247831046120134962652046242680968286837780326956289745961156988731149729484836391678504117467656384405276649436489698843884387509562223050367093576791456123999061557245038937315386006591186828754350679590168210508370045989354597284900756412546204671216455621740513919808337733086480074095579927336244377148381212775340783753500460144449009336930539592302678673434634925045780858555464706529183554202962316644271893338923198480863207596086885348584283021395272378707458812150290247822341319766962392736193654483990403383032895379990877353056103785949549195296686246269634665863611541655937400406312892211567465140760406371927024116274209393532663705739892292198038008239074918977285687511840711489192976968680907175730809213528835759672811311043373056900952290057775470348568116009196072308875162068842326967266750226720750795248136221304759848090607879538611959776906866090733693739984986281669412655739942783641023511231128097696376208694109917559948726949407662564424574556626455954603435939921422013241997639058177819044220136086591704373401687530402696684887692472451626346044153332745169203571054593529972608973307716843097073701173175518117891136890286838775375941273113067033271315313094615408202177803217069485184525802668310349010921044409601480085320178729872300708689670475870217104158188089080473362443684029995543556176236321998237322714452342090910149087417769878086045950259215155136501988143865017139135833731658771880040613047598207067323388632833486125276718948955673559210049578056223151107792248066990145111388052040411762574026637561690875814101381504434492718048442896084595375729917539664252052690216729656946090411066782803252284060221802897881828779178177653744487932259038372292697365252348137765683548121412084203133734634512349978952687072973591562323861588352289537954211117688856248584740030557188578403092923523265322123756410985899737763967680803161692994032718653757554510886634036823053138785448293746993150818157648272586059233224410853456051789027188820620394686981569737617321050521309523116218839510290711230095707222063632370940616845423034557315033757089837190461853899749521982857265522874323625222332325074370568945986377548177795090386998427555780585434860679967393479286849515135153825456604709335228579699202926038205926631886318690607826042370760871091365763123028398706710284248830000866162389567397553773174911633643486457730642721346260473078557772159441952706350370337322167700544128310369867314983444603008622851955443149099192573817273039426515106180533825832323452398179148246213400907687687115467128294055983411269156473250643778548518780888377464610802935029717076573344716845598546268953892027432234718137120056228634095650484481231140401626838283335491922222227782034007397437768619623508368540513028562935442207361085235702706599738627758215917890672138593573035427873264474332368444645494187303682946560266340513192646696873446409982998815018509834798322513807112789211386320965612976249877068248977659039300347048385234479027087032427217580989302343065091948964544735703854368681510508317226106400445819416048175033988118524709140020119927559153207829443647320618242319327889291048211072959238725689014605569484039908268395967966823007399301818695225121018138144035403056806304932132009113867228811776453029843160243425391348656132267051638737540074374082509727670926114717973828604930277981765495633602577681870012563508523881972360378832638632769314842922308967301600373120529649074740480352151634888500604669115031082528738531540443211535692015245780383204809239045901816835310249990398981823148029577142869614422816985945124908581411798153513040659278135742745320845765779642457600199802382529100187989395820330618848088747221761670982903357725035092307859472642583549961891891941818753840139957161135521355429913540953113220047410683545458862190085087331356682810061021946691073837637593207864756587041805085068226350250315013587770045627678697958036437471075267852599218725050263499868503462748825670918475714283619904304948367675347548087049489997004022389005185734555816752486834661562654220058627036749801725752540816136379265360537870588490650069374193173497466349138847573335351166597741144372012032019047023157092749765355887167855942625317306427137510118969761254074291781206654486439068672178482247687824764928597333034300951870266186205559123253618723918571849739297299677005122641606334067877684702948937167086711435312007889673648248903161069897476631190064308070620358543542899342347555486935403849524265302077162425882669082752699586649728462658541799633597194793540395209890360331547519797919972005106388324806773313123349067960862133199455339461760788749640890410898037168461145572584048835604964714460681184616221314612714157618174650293578574325497204331853676720419976736978920489665475567837231730936652523452688935318586040517981099315669380824139214874596950710578057816834828715574850554895927020903714143191010675673038784211684622723021922164079378607998561817677883732573509701531036268624811534873677202642942796588289273025443442372716601306441700561706769942278611134182355877275775618196741149893908249540722605804519838838269264297133891516992540438422381943055081467298205589713090794856404852756120883418811222093740869502858987129867054290511014674102956280685856971515107240315356628524447993801419471617887503043337091843504644710268449538029219304143142145537582777953380808287610415630880215530157389503899943332340377741232832101931236219762063605193772605794770767200409361455221126924676044434405021929482096076406955310463372825030695517631472960032247522928987687799748135949987047683785953169621414288582322457903957967705482822925298829141813171400530043068122793188992280999065363956902585537983210061780930619664782726420723127250054209908022715367758142910477531316897569002596552494433499044639397580379721587936274491440536432142717535621890965814622530377124251524121598412795911817821469102712461450934699707920986282189740007031735911243501950986083887625854290990466060896037250221181647566145764595704118171631464214259379863380031926853511207180918770086395836061184490229612379094888617356621189588600895981950612242426050434171539446295797034944168009238674210866681007635017640902807318853125948868586377374203732353072090266848466975180583163926243236214695919049109899374052075953719899451805276881661799406950144039388654226506149151566816945367978334644061406795701628380821787271242510630425300763821429392295123343367237715392136009870829139610036888317735866730448971589624562612478286523319658066844558002400068654881617110510895100921691160295715738156754281080142210128795052748610779678768000250709736144551171559037512103053491017546409904701066945107056588870601209608636781082778061842519652341612250927640057498446986436242582821172466482734023881583047255595741761974002020759985080849043283448212521210238641176772034929881434131971699030806604922262759040373042391232568359172227381351486163616603513205965708519075652101195313325679856180934448260228515827942034755994317615447605918140337742208901880109009714311591053773673270043338531467567786130097692847648359312917955181474803871444818373316407783561350362360826811063772710370420157660407889106865855961152253533307991986213788595024374303897651672675717878618774696731143737971061608351780833189708197482786086448131903682986907311572190059556099928297277206422883296663348434091599803403661620865842167688181308934130131166296821074914061686175398891164198202663194805989592027608495694279680252726758242194630111136837618114881065546863912145760591870697373116484623559526234265576293540898185901708486704405801388099895262241324078277710556267887369587334081490684117577641607647371167129321029065006524011488037403266396457828880965984214641488000978717250547664845530407005879508092291302498866925014581689065451718002915579787157884488131450708882540174427687212697525807337309418078935348701814416312140599556506353800803155762808365684174118200553292536852990534606077634209857358269383236162784035458210091431569014076528079297922833915103492825890085548259064331230686035826444503929641757794068692172424163669375244960843892094663244847320951113809055102946107379604595459796348857413045428604598171070705787906691546782217264369164121708127032062922508068058110224017380436847288472063059232946704646835282091486093263633869514064427071537226415180792490728807921528986761222758160287471269680154669446145424053252885760771150760765343376533310139136203709526908105567026256793300780136670272397096098322631209811463475513721911869905267833519835809342044941267840402405279162676828830433652978111405493682130932688528055144680254324529901204481181821333085671707160147332023938211671861006792908639501496729085440948729920436563032711706657917575201972844002165014669415209177589688358086655840060063227674198536849684880815912518949221009182123451398302690244640923184449039439755823633960179174088281785536659635743576201498920192757685062092435569543505363908052012822306525108091785864071315719580411041681581863995483884116006036346236817617607104571977763831174891840676022746357345632824719911485294495078463137897170079856772030894213868585501431495347284654780990423163000886459808214679479590945510922969510201615167821974859320983627670198506984028069042005979440870336624382297278177758326012292227440815714295682954079819054832911210336005395201057969190278814343177169148273054845277813698583780845436834463143600902107242986407189527647416944362375865022075623092060752001628043284742191200214152634640909132816661344230905803691593260786003989246155304943672709191247810744880338148966714646914090753009981054174016967436006869511446730685496039643246556542435864249447669718071799501167916923494700494626468271306106921111051934462797791063971225967081378306233275650646893607344485657225767180559911410822203936844893389345759430899500835619238523927697047989330397066560522159656075935919451055640022005670497352461028516548679425042747582268394230837849270982390758296366244586310887651803781219722010678781260149778661594159737169166397254562300322360048330583338427912087445554761703097416591843900088322463169623775211067303606236414903797994857665044921236498889582526984756827740276174138111495413861010533819217146076700359587417514550131732864832492122432143202432742905918054186041522731853569246923082148404735474441353819732002535189160630441490964111381057730922943676337300479552024688107063769193072763523889224673353490288513020715359911305633800224524946647707128976853073853007393276835584671607156312823664638775983953973145079924277555722568674705732061510535909923870840267719837634188163909959702394699623172943411840811209319780951936202933379847580134762521903457388837045690756403519447000051241410337809562177404771183187754167931314983857759856440915759931678789390294503561026085003921415947372909618597071357576236410154231726249270275230016668314874048443215444776367850569893508273520404697814043894863499764593351560182913361454581540047032020129769828284363748920262681573300420044023764179109979406893515386902774270900147975770826212989250241737699243149243931918391344472954193459660189695378850860120231910943785938843463628041537287188269849923214142088188373622081152161165152787417495400873736691949009879312887951440630814205701195237240340398686904109870046063517086503141475729851407937334472209819879027567813272985086030193358765801883709487418127924625123225110987461574177475729715403175493875592783533739238335362631199799595774776175544694179428588162158330075777185909707557971221447249316868469771054975690849646843898542136231894919548967579961179871456156120743957742042714230710264766053018505006773114557951491903980762620863034361504293060632141419286967695042057863152540733445933469818379247580169015754296866883313384455381918970685694566338346928736341998399991718628598311012087474423972283088524755080660724282711766679067065380175209500443416731168644871942490174493820319114688491430119986434703900106999235384180367081412721488226026261469813931186307389631922283876171492097828278409529889407454986697737312835543088106517613373067429399834120641192799830405570954908979745846024524532345542894188165883208475537149081324740253999382780872955241518384145323983396689737514658892842084615028866875031491907635245956747057935847192214703288782978470803832800776459891639464171521575573071825162289003485294041178170053469989395343588600812001705987231572093219516586112165560505381677751327713477471407453730369742229842956200548577103403631365406188106368705923426140621613773305315816261507324713562024461362712643351696792266399152791197319604402642205537782776329215139207898119153431198805254687128104554522853966144241975608327295919163166899597420643075052613159615151221712344469964907119888001275320381131370902946121935534618042836082043743573993732997015224788699207920782809816596003247462215723606299916194676779762718700281506597888745776688340643417109020262563247442631633422870167545158541196949314649185811002174268795359366048888982047874548280149806857578727363742276528751467158567702457036395075675535502290820458996492301995107515839825232858891395817044765511145433117834264237519835503845358311263950352057090721183208221021396370567757081926614853513248788279014969851110440007627742623706070357825129351536406163382085537797471034291980209895489584012687244760048062565219656777666337773437888844728134738892726394373976249405308531740311602987248587948948591417591967797568975270618784033664007749715159566698325221360557882406906751167046559502522581822861675973218561156313306251748985898111631334335412053128229700224997416542178004304042335884814980238487789453103309097953400378970285646829209746946175628365557072202255113559449495692912482870458973039242688498655864559135492614748646627092350636698174911237458996962934929748081559774082485719840953446659606481452668364947952863686365021269866744926698468395427572391974117553493613935035818865530793335796383691316025698929926718763012059424844624696780119361137772367799855469242857555650671804294223204973567246635584343874590197217042864169070435027632647896735826977425536006887099685650323258398905444091283251597652826740152082651576863323478564448832577162751774681787394951598075432248500861363277453381328842241941512232153979060801504717835714750907700853363768949812938400255642964412937462824488636287561429903020934149757383245854328265143368383051923240134915718767709939759932860683152215503128166752849184702751111380419778706039308490388216582327934032456067704372470453589107401353206157059252577868855358280155088133127932663467811458023181861794950629975674130166973257784958911547526121766668535473864895158073983370385665470821993870393658392975577199529530074267544523627299809572371478790685748982096066232640061582136827382173737403241082073673790464195460379974772864483821852634724647480119827420245878555340109138288148081755005368310020697730308716605228401870321657269099440052570866750172552945878014566337443266913683059972778390150139141996439817968580863232468581653285775428326616541780543558684740729830456711761029814327676047529864564642402063741313782891016692597184241517168891295345460554961988351864399387217913087350652190297795442327215637385313691658768997990018859223854796618198413955401113678914917771725700997289605471601410263473759400123910159588944752888170188363530678491185642230698667225066836520779205322340650843091188796695696743003582257813351030181603026842268348711049476490618837521452421335691406023331253792977253971142296375184175733256924120061652636482562794433992846209221909375652890550337119187700013677504213977454478568967073197430598589040771879812975357468115085281814180532210459491821969744763348805494738872180176213277564425132829388642937103312559445797868833367517343233163411889203954466135972870459964761350537076236715166656279028030360817922089256396089974779931907902599219495391275149800896633351555069305579323170518544312165341376780597355103763683710089915407443428360649767877246132450801077678658834629482411103524636987779176502328288678152105561384927064910036010537893587551871332036459516920401693066316740707524638809383837402107853383797248692126902218736339813623284563045942823031113869812304357492915683868498930699287201591490409940537990435216642688418477440631856514549451852302828394434279742942866466858367361931640450160907371303626521000195470718973744047209661946728916965320312745061440655322791298915090359141130277350969328861842646164124874291328875382650994135643730345292848351567432920346582614178532147408342713304775179020261862963919748386289472587727547061252857819431552702622399186131641384776031292396272201618630765673346225431963357195137903882550393645929660987181465189487935860681451469130511737460857058053814003052054078806964904092611546549318098516431517842197793700488523854914444377167695191101405274463053328484763477510779755679654426025362157228662982263223166387296980049269259303229796807772294025718328740283952782327156973667435304607137237820681806598646116241207999454845728908504890348796017138125803860804999651261428183322441985273593504747134109300905502337473401016478658719439289673394917453850278910982667520785779252203041590801710337052829929701637831509704383886587509409950931607593246619436113683141748211433020940864210696379737355760280155127694792560417882215245319040287228533119599162611449011112596511316433247988965233563024702974003474144439953827484617395722867380530913746974531117103582904037880896708504684503573825750988720812266199509176725083145435770386074533199939093262798879998046236471223011081718001961396860393929891682395677363568113058533223875971261416900520266394751927482305617447193834413576695711248601367521438704193325511951594818855111983352390197994604778775026061892384336273845195534630871179708023832846285224188074446969197494645139527661991808433676381712275757494737580863840518329795231101204529669757193815423399529201094261159455468601726813440157474493780617796741872400675746129320594443537162656198659257315447439713033347116486349470581236348966294184466778429728570385875324897808243689838316117888104372666052888538398689138165689740412074834272977332740157947939958809365989954464172084690865464132388360513640984988661035616503261026820797102951102513581706093212064353558873788980126594789862557993738284591346603671781547202925424928225817159153074510288466345127734921040083386131691245020033717857894498704349724283513976245063155735688744824868976579839614420892316457691046059094802367797010956488278968171619065167892479952806955584964190641546900867868148396140964126124268361424255754792804945632116076831093056209704988328045246866677014176217105400388406742570672716387570177467625033546956527892040062809864036665609670577249185456508883837973356199252305854720622352783819009995828222026634288623361032310282308151287600721534544947623705393274086429874989114335361721136699114621516237546154645975228606377708876618384517720966297805675241201309507112992319945421145872978843386476774170744201467049693680555303900742649432608398372279391755439037393020041524418856129028842451745339058528437779176336651204607913869291123509082947544972411447264920701759921186619236963737832774260864887538448398545014494743906408546153027555012187124850957027191095482193413385753977430955045391516158967420489683879558245680876942321456897307252702279428463945500805667592143863783011423836407074137418408469528918416582065557874262752869403916657956377275061251163400726546395152095882711456801020844712438974671590377389259386493624690854349481679606610924263785491978714879359705027315752891105902609958757871409924496102549012354491345881478815223898318624026770611911439870755516969940986491440709549960755793064126597802267135811685790415699444118702742986943091822482819188656286971734615507951358574808283452997877203036061093968148641446765758608414934413419027442349861285683260858271850834331318515319435540164982935415504995033131256943489615241764092613176286440743620916659086667859557387146929019724938751357053340061391627981124988359279307889857266527870307195791799331610683808402787881730835307666161202969218335281003073549110316113018569617038491503796691571622742786878203388348899027982469302860567976906832509763031802179899273471260139774947723235525765804868321624132264991540665421835278899780630679255655756791413925421480904757662366578532379334084734062839336915352198368320325770747692817560580233873188958889775903501498206673087811488520874760112529505436468072828236032020377196111204773934037329716021676467114983166672566887443135450942292369232774041274146914727817762421678860347620098456475748910633273447164062117789904521261309691781088043665122545866734945883657619650396753166429047023696171191975293338876926496813472341054888046498231812345759694333332194156225518194782823072077090351102987398043945485466584288606218167264689699326597797209717425496043370679793959383795421049180379062609588083766684298458949449809042195499282328299760514210159311415574248349572515939525919487339615165349937198669398125484193312329103510063866266159973351652594497537021366435154823991386160223309653876232514905114299773085391333984548031272485772205977258858859815988152889147483718970708625356157259627427524221192035893857742688641060685170134013218070537075350298924655424368321437943817058572366361240650938993928537578098487574404705224177368433683908826892691355361530361075110799521259538540364309230191682051918421826238823660756481481298576344556158060314759579140610845935683519654568141279870924417363012673800154388358269312048253646429830427711677683660229913645135546944199222334273764487314088202092870482214651536964574820041880147121651270556202657056225873969868513502593646405251337752391262100838216422548030304691496417920253013652596355821161122298237460733307538168536636550132467122456272712860844061371990148337372340796229615822883836752735449100269744813360333104590532325298989119641043322928412527193418643474216502972493475709003229292630386593374660157454157649409406328694758460093991699756825926156618364613155943002901907478649029084831235033811979648924230419402844583168196108526523277223805223865906891298843513168900538178115867663795374008158483516718258189261516266736902663051089486612543998796938784361671995505988188169643645070753395065425640187206968962073682327792291530351664930021747150647605911745407158749365984940068139947645054851583518803483182717047868729183175961948931497487733917341987430290977664400807656642349283925199901358108533137353205985266053965608956052646704214307022766898373377802957063879805991140665924317581355053641193183950930250925744048167444571604483957644076914542547076419283517686362361066797735015325476242649685799368739658734224218812181452611938946838446005119550997794940466325532944094141265705726889808165786210612149051307712485120801484409157935641909440744611096457367055281545306534926027101183651477143171031733790313901230041606266338779049612392887915851175763662791988052083631512299157410787053792892335815741529664760314527932816161674724508783458647440842734490221079841138430028221568469455987200507336167485348234616702352447334338822472015267096533146447487506557050185372607924487651704530768394015394444092880591772247700727050436390461076822767106686945076202321511757888920476958916422494994988196205368432839630093998088395339802743696352970904926019481728784932423098346229223827486007491594079195429977971091140956723623447067528583825580020318058535550029694483289612457269446235567377689876487280670277772087440323307913375362165445478793351504421345097571667069596702528343708940905435630963170716352186095666328956307462722018421116164070556261834047134788445933588476251017742640482256849318980090714718647920163929507183650689480644859671286806677043844248012970144367539058181885735401746232666146879767898749377021312355682210249689420703681058808854324508594595454425736667871153604571285792770880226904939012000294002520775723093633270171978768666945784642239564188788717285526655176494902349331768068257067237364731087202044218539794251868402931338053224098347416820905666542493476179367281322356816860327278331984010497447319132818603248183552721871734579635232203144184113309878856817906113623884757600233538920541834641062206209496164619224926271791032637091034731221219487413414413665413830420447611666698163534749267333774802189382110782220167037660516386825827912909736065736005563584496971178397360800393806184739463074091129390396540994207866728660212962691176949752233510707732624023506851167038858106786332309281668671513940271179261741641472706391739244689971691472337925422889167304437489039042649858559423131479328880371068986253077393582166624792217980993151139833760754482950166307438593713166563835431023379335181171183837925337380128992413647443310427343112052158014433572436469323276236661946583786456635237609758835204461930946061927814303423127974472733472956418712080192202744345283432571058815768526685588598406538824691300513298254824210808970060340535859087166498635257725550239074802523613712650592174832762537376011843740506046803720301671946721763518539259571487566209578861498499009999219427401094232352086911132948907191294943127949288960878735820191842822637765633074984134027665001645249610105585899429333234537091808805778240670192811382766090109352634439648005847384474357540977874331362418075066462700158666107090302245267571084794441272798900291069746217420247383975507557943860352567389705760698545090065086964872970321132746125961215841202257795192172242910109864794399186748567444967177667412602451524371227280962029266016705728439966206559266883996731032692835341433904572346054284747307145744376143371590733621438897994730412768784065233785125823714631627799896935215735041797708506308907473249908047246577404577945514173029747794492920747105506387368660245146131942392324181442131206128920495049601983600957325332154450681297700883957212062488153013488889931428848220031947351831182033390292858175745357151592578482117800753727859669445639318086676217624621529170159357624946608424565836452627943972418496168155960208642902605568664833611690949194757116579766359443760283137260189368227678915339578909375132663383430893931850203617266777887278185347925430170131541270308023876313337216723797344076742771068024428293886268885035878214547967565065406492446724760937138092848348166059672534641352465119251638869205569158556282735918178255442276342388319535474154269594819374123530702156992407761143799704581610470162513008570408900483680189827848502152619670458441306391067316175959275118914063570598496937471631708191186431909056532353719378688802837360438203362158499873300582430288197653049109268506577798621855458176624670784951400454133828468661414722391108193728370988232984126076484646794844871635709304540433957851249330478413684553848476302005786416858412170909012541457691296075489634524187507148677515053824501826804901924904442585701362754104392570331962951739128557735670215182789147561029892992924214129528894397636350376010413407931498293003545439358197088392675639036305339042030028802238657899914200117316135488834730910571597226350953074199508880512405230396333339819379179652571747585406292368477106091536504570535315118089636676016421027169579053307769563029075365724452921927157793633952686797147656405980941976692207507574755533953709939632883757054238773054427781561343210559231545669568953423143274009441238659304904267535713941694525066790706836942436259179376703371987129050959615954677694761020173766537031360433772089074733564182723864775064933624282931399612882754073845517500258184312725116864038250819103875013578588727653373212999124869067040633346307954725685256529352721784186338568086995958139074069316566633257754229380781343067524092570060763894636996296391756322924244644331437632308947784495386032355513337308173098288343883596699343705857142823379527653780135916813259385802001764787183010045274028511799690541477156202130961799580031293637686585074572297268462260873957508743150953183478005879354319530180605451051317722277745332029769419668875732283964864312524745258631566846011527692589070285223192127851878713481605197454932002544671211868976491537336554907478186702616100860910299248747312757160655806779092026486782744465051011365575283838958041975456833084387959324352310623331950999125438893338484702776144286859402921852502079438655582086984880631187181645923961083818591069704825586678708303711968892130209311431606048750493098100675164441764650027923275416730907802145458858198870903749902728632296791081590016564265124921769532445560879947521598996305536335156397433587241807518270922028151741936366204314871619322320343441382921204507106118219698544019745317422231481013942937784037777266261410549649037070200730859787933549091915423890134292868641961475790949148504420207434126864126345921552226017526344956488313416084882829194059771007658679289794105400530258213835950209470081293555942507662450714039187227413443440988170755818261635059512860664159475733098684587544884860211728792581205905121417370581207913460673512624026973611357046841082586081862061906451803264985822954884231480252847955005411152834711502661057970651231552268945939110704253618125999433000776843507716345175565142071357551163270453882289042512673911748794498669469427070447978015842998728652362200321099950554820564518651254271584729891379211427728103080846095980820924675377516604146768746378743003633871352707286200486814328421022868152015811018089706184407699625547446225718715513941135223017383656456193874208988134616672501732358663216127464894231441163519789332278945959922542710619425642434696174875008511473570031471719080679045987973720027283176635256558169995289892270859970499991117524501300770203727108693684008720075261732422633342197963816538010320822019605505907780415199115449575141250127671204015684561680136131424955724220528072489750620965762117381621847556563284822892727007820519913322786025613851914109362194551951188462832811666503427794992082853567938546351815541308544906726849925583881694128746265707222222363412668095186570527280179902856119149844836940618367573172560495516127360786943267337300231200941575418059192983935549729858011869563292662642452541631772136781030203304807523150441424357531821743341334884868669912497237171717656833126973589184054964494144353564899399388841197520790620069928362052049001048655204837946118223902105652910386080626145722883463596905061855132328144209705260448854433361715535472576400542570853186502172211996817737901270988301852075351158159802348083041170121889051857232700852544530867039665862646701699902303797851399440397047329950915836750209954059221518788067466043228197152310400397602177878264428462133316887263678046728905376615170828780415477370101338605633392432265688115958640729899353323469047966100254898129438108004772253887424148155882767590188340738911174603944853566486839008295693838366674829943732023409410025137893612027359867467395970500991398982134652566697145688472695421396173569905731556158208553090218539646637272240887723912011474128498902400969469661167547146080087851874923450542468337554019425305141795017245112444931090244095692761367824875192052109272076415612393573920245978511044918070521349932997614011039650636809820376709219627695425881615692508015372225767526226295243105882760292904882911827783094749147292767556701956959588933138812323100709680604943329595793453973384474808821105962271610620276640951297420387207874235198712134033853752780681633099298220303301162451654027241240747226772015025493208645858962312222878302299480454070538729615954800978594365386474583885492892452147858553175831012077115165391585170150607738953307881378764128886278616016773033807441663849301164702029564768017090125907896617908850870478697738554446234155797677093109143101170189839266094549304074993380852390731147552654800517120568649203061421416638949459126343580236713551034852725095155580166433986337754173624305348844867013827568628490690112077075791253881398004636208156016749660319337649532504951563061983328011320664643852020101509496246364802341641236018368759238681955569581387995053920148569879379494520684317345021173850653247810230589923092738676220479349980301624322758700771563281790794449124028472566919072891346822658463587500899763431781785514730641452870217208068688782600852051253326306306940279063683464718037889392446756037383065398873431883691730825392256681606140137254927921023709763663433025037434851024986975473164674629825812875874992810112586222582901246108071012998569356325275640693029508996278969071416831539762604323931135286024772387755426610401859130731175490243391301709851896344667558084620872231871623966315753578932172536933775494948638161778004050849561536611043083758635804874915786645633669609182789641817556572595952844286965103232880033959363930170507484613686472087492812011000399628691475231297511549074543920904154307768309243707937223113189091660742316407943673245662192270489157200193126744953254900774854163744413457129767326932074677884617007214992764641448270093107506799439357116374253781332100981406644542254536741174670935426624951530727055234317991864615348296168861538381340133735371032127329040208504469815470984972395200521918196236690203195657530396360064752579364006021504080811731327322779618596694391433715757040655624520311209723602143208098245168012873747169105943606757910934107100926052525100625050391033656344598485420089968833537416903098003600738053422705069724390410253932030915458453761063037808939510255092194695142466437300075696540789256424071362177222028409313964165732682068389306539481305098600152078820272352609667460853053263947827356058949635187181519064565154012886897901769431876767642282722661281644076797769719062534539198704661432249561752408546540963680687920727133919067441932415073580596150874432343313114308699233515100707672807376969847414253580916290833222370964781421998691734637305804740473546250583014854520877141393862755590706122133958378245067643820789024646254722237951434213763452143064767614182063108462614171559366801234594750654500914175439202845521325312909259575639080910689932393594364860960021818689201015738488493499747462580818284469811714021244022623635995979535429646708290044141121502378415572302901508147504746134333762043987865503465676899272173371264697488942662453547302355811721673111452549140184363452420128149401061136414185683768793935150475744343883915701561422525054203377995550061112457427351551534017384493788758001422983049684334810837463510260974066985461298739022220421832749210008477680026295100489818335452674913778235805318941591633535318107217748996609332728988633761866951245458531586070813041912573799590913685104781552165959276151926085032666115634356314096247675907228506414503452259811898032479956280937109278518729785564613883062519535767787400059838881022605535664126037031505402757098689636668059053444053614408342842917281469938546047934478050626266418764418109230440181664057910813849365829423249951942247507177410425340036019661642568273920143206892634391094089776386782862058479083907333693213662444047503961765000142311146888002183283505903484732686979083062413854387497807242983059015858463736941630069672445329971321430123189507672201939876156611368257799051505193346522511496041737931911252322409401385575399680992579618838016061381184291847036209415571159252289787261109793435494030844157744373822195100847024984158538911468666824024586562141973109381181272795346029156632000445557015844444004190195250895484532081816351881413994645124035318604242659674287412154188731086588263540216302309051016959122915483272289155588835194268063743020143418524266651225304619208380801577376477836501930788325616646749174223828811212299297990580394183637121131420090645138307690763072674401096363283778582312767117471893171874333584918069062809908607620584384737769479132178715869528608873970119859594411970758921564197705052232930473666309890624705436303684274653520511576488790456428625530367416440831340354940108567531468375630128927364168147762450511371200269398147605836356650622227488997369085313177013705991308524547049243617412947358654233975302376987003127942373363377473423439101401282822284820631636462219656437251493150699401497079458441708923465667132755367170408020174549021197332937360899389615194299863514934357862052936238410241930033551006593348832453130633136717429379939917007693930975345890899426382879099109185584670137023253478250906812375643372074768320116417971551142953044420586589000229741152039604654632898239713527407250482187857749933716343088292344378359376500179291053135031325937240739390337674384118979948440652206391732890133975802504190715337471677770714148050642719199577718834257479870206102944682785595311599741781457214106001445766072787711379160496332768220689117315697618292571837276416134582288699871504808388993247259119054857609257160172355470711807882204728927692912432884236365447466706324737537052623236042544744558579925080659361796183737382809121264731960037697489430760095354446575177110479179955776106612047877904663431665440408840619668670045448733923413481338658750114329771292575070798958841402380013676656578058672653769112243403056571984760802935977600027897912732131077692887237257167289398418403466243261070222049468012905376154392597351655891047805090994271354973420269203907181353051711416887096474261702338890986233543475841183318676204214839842074722455502974434582165511499989638842858881500817870891242824097343697025544807457391281494839521376794273573097066819849333794554378039412201918398217009970586077293467147054403400055932575309074607313104992252877447638119336406400341257965002677345604321004538116021440575073041396726425919099322789993436834718217862078910018237797131839677409154937786916454767362434048982512624895748954182604916135102407669495929438369443658166557228062005949537597474166726924876131763340350753367561401418299618351308878677366327059062393871423643934855987363853216257195582758657370916073173590071815240542800021733514833114712933231613180018178922985937688614513121523730247529341518412462433521914674834806969053456304234750271985386334231618838732323397145135898866800880552014362813772612561438168200205707683549980493908175979794694430345605389244197492352966747646937641538969815404402795986297938505928067563432759388748688963262520561603588910042463211411748066606937756575147750272900688379640955814221654835074535585677181212666542740891267833964578258174267622288737046925024341835689108383679302635700493227942167554067286881445020494825853865173209511717545900951349621773877601085424552987149311848487926424648187362078240718754642847949506226546360203820558331302012933688290580714953338967373742068075581945769572490396843215322316793908050865204064501414984944527552217878081296787296067042941228909369554905844652964923520239505111855468206565698997399411703803997079017482085675546615575591553246880204680277445006602654461247049799264561754752584760848097375944324503589977159697644942438477827261032054298882928146086089211375533167949717647150746460273549898452228175777690224264790226611561782482842670314349748779591428788910116750478365756075653156994045618530137472554894250755097214986814202859610915327827332314211742234643653017198661440225842611668816858109527129801480920359114383809749239237432710158952940133225912600021999704068149848227197208593143584401137506566489086446126018173166360298120212758302375611797986681531470755270879023840694048517394137683599332211240358300984166546514585264214422005899429563470175142008394530989538747755573013874558598688489677731004974314240703256746550500064414825271692511349221618358852046241834784935300243577030552501847361884575560030628233816376072677949389561886095606821418930533700400609861656129167576025057679197162140855641889300607126742663422270865987538264190583034568796792352194276277407875244879608959267645018205990185236114686790231566945002487731618151113755798608679650416909130455789656220304179161596877671849367743356031496033640053211473441225621586340894435196363145734659653337713152750543320613551147270148999419914933786635922428174046116767757174908969072995437803625980076563716193938113254325783421219833222668461639274835580960286742388610192552503400914958688965363220371301945590234367601876435883433242877429238884171055501388807510525111051555395687762770792714723021847752801374690707807917846295599148593028616829890306425045075700626916885002916920064228507876395032834397461882715298984082254256824050588472147224884512458001557254972383275210222078758555590325598218419754784127027624157173397994935215494910141365421828986703022937526967818803694350089605618706033591300908522247248885897996177384043838471166292953042156070159341555933476845157181247930831762915321109420781381611869778286840669379732727448955294742850546120053225542851853200625926078290537683649788727781654348609918299797610541101206074494862788537359647266916241854839428405764332676529575168608189769111911677401900683997418353452355588070616728361291428119292402944394770787009018431418316989865608641875967864917655791598996509409330472397684775890552042981832811539936038683961134200298977341841680449069887146693790169091549153670546591049747587466727948276817643295027599342791310882997544592885546911745425911792413367930112533831300937465071636571310524875492384136544611340930023226469377023038262970443361656883153586185775473694402997077625053975638674518170221968956416062300632751854793400671560490814787077495760713125324040047932390652246085749346569281869799758381152201391517970926522743277408252001728244719799424918616976026432666644910112892585793320636123365521702048194158861738826527572695200501125208072372344357266977476103848019213573203871595678669369360195542524155903704387977578079701667109647954148778193756159327405887309117676776998355203669268216140679311470514319467123732006527470234561423769855886182932705366299629792910310815814998465739510046577408893249784270170632470633981083902496567266420056811689232193009620899112940035091505412928621305294730198889252641714787602432767694740110274820858723781081064023799080294902706412059792727226423271603341697479790553532537465726308698964082551728920331392970219695034323600946473804161657098644044864655192753195779900168471693252815023802836450702116381129410460974865612974818295708183897457902973888215863952446270588147128295108451390002173963427261272288408143424870506188351793735634020037128075242438519622786600896953364793430172856973509226226059655828277472396541873036660689177265584326826476409685788598133333529509452951547847559183028168424083493405427631464951001481874242461529299193532589488762477468595883857443681463511329812781735468327577579248619563115058294878305332425692469173916842162032232500933169431704509245034947357653669812259194211077556251180582559773599804501384165350333351212768025801789032446898294485982272016128600585706620900466049885658093952529211319855361076562791998344584010417031990090270713873330362435415081006351323053301025690224588809945366596627763851275447137308161015256224084505004500498095544383733033532457400596456350317109405677794238592049241392502067502098279982385359014869603712018012709770681924037701519786800707101302904737490327282502729543767317160747068511599338373088737768416629862249141194728784679786865656123324964329032966953144749924028683955101603986931663193731514148965119700904382740480911936762745423335972271789846513229984696979781947573025502818175945601820422517447544567105203616548596588359786535050819856315970591996701885210408746721091365221165964233110398039367698326771604812123691039540693623534037307072054262964827365721625639249034038020957017731659540527274484679345763121368912033521433847140167681078486704000246675817384210757226301608695302931398174207825486795939875882040371651658677525464895744423239266730837712434719014021097335293989325261356664074770528818156137746290415484523956899653800139481880153795231399442497646084290250098852829535249141154299673738911886916676379837881471845783447789341182385921301316891529943382961843338605700742111298481613412977423863811510675465588311406042155235510297822516415897201951934956973811893208031956602550466532460543144237054847188579003939427792367894445759536817875522123895228921266819076326678149754044833113866458019848352831872752568572007169130051283711613342053208018353922962309794057866022756569790628502123371978696132879953521883646841414342125355415566250437246033680111676715651116699648415561842422140967289287707930157132567388563026141898641045887156553897762566257393744255608545275671688192700347835556101887313897592743188627658672938832526373219025599756227638243821065885505388487137740991710616398988329806808201437657504513386595334536408563469762862011945143318189607392686378811879755207966725704055478291721081249149647061634609162606585601838467190079617310377335131091305184951415671729701732353427623543362402740555672568616471018975824710016851182116154546898565768645789804499369603138345838835667028920039018560311350251546560792312130093369695763838247022669634205715972170978387856471996755408644736342092572275981728667391462349258454058890348859396068971770115365557759109438354750544164862004522865484673886475388385933029788017922812837066320481223267431035166524736719234492478517288296369760002123563717741947915640851931255737619535832067091091404070952338528424028490675455932911505451240155957683254916946530675678220353682361570309753082569814873251728024560372991747098981948732935768958485060048531131729341732335696878436307845716412700018204043355706540129009503948479404534795281278802539628110855585218468376593283130597331384572998988790713127351194853945618907543291353780672860561934696693187492079189894410932525830369548686899252282196293341683630806061857724474259123757864656036821470831552259929843543144789355105072460994061401680278403959047434957040343898203353952939644179287870153616757647505613389210109239167050596912163828939105870854312198927055410137659441139674873667815640596121544677541055393974729622249769050847204815925044123567933246132152332788905620144554250479732949024971864562796898277978510826536590159504066477030986555071283760969191013113039240466390356624864734562804710396048027340244449624463733153685495278297640996457367044422551463039099372303013954591066107694437853471507343520795257642188404985422111460239748516560142264186378087288187145814734094297928509308462878647304266065115360535233859291758982589825780408429892169580282855671528998558578621196364403788384121416892325746136921083470923544363861634616602677204258520435701188727776894704815728226717230624263615827292732156933973277406507901591291062030794938182668563160661381796696472212411375926911612737214701906838313858555542233702602564298294123941784499640920451041918798249448036863830410653695220791844589879582477894598243189203612287750605072355922979794997767532467592005285936612501198982873939266690467636587042329952557883476119218665803009135836706004445971345117216887160276509064549915563011167729538488491233390432898960586492336368363502398256816916233036776981995948623587961621709187127159566781626667619150754080253564996987073594650438527338072932800297043564158624484138934746060050660315774183686148383007555587971105433507560387866152497441939814875662097164448645424094474244604478201651416317877507167896313223409566786230043908345888873565445891126975341756283000647565870607602091396895339775659251613525733100772980175625760422343543287799087275764222117460386202756602233298155212907042821787787862168393760062360526132390181844453680277247142681745222268886187965215630346242726076000196046934639710517171584219450357058588763716274190262781764849185337347850085304475182098893742963654890383668334017982171699352920598861036779834666436322583901859881945541553617266481628464018693628888098193594110606682231780379415937136677692579376350355362667456897995528466354421445805015589342335317704831031209640273398321322159318521662933855353037737781879229308563879207937471074468229291787120145578284278024312059929734360899948295017241410675273395754889293633503257077549115398502111802678935292828890771019435838321529091725119398478284063606456721186564048616004819628062886606868193757832432945363224445739329832880317570688089139651105291202312958029785489283384900160820630134529877616927941540970943291648688052328092123379207050451250082378349982512186981086305282188137178540624153246767275512578838639235532852919782768478248421034817690907541365550718535166372739087487274704773744881877995431417628925430630451075135540797027886381668289920890207283564900982439313711342331278665612351102229527390355841855704161359983564078938852718164453646432273154968339981285060816312920826887125776668189054612844265921697880207339878203112027588396665579538484044241923015032937166814038086228154940207856679958653992625120354661575810622889230725927197502296903914240041312747990974048888514342972462726797226575163244905874949445731250893232914893015893778789633532764196901122939726863837149428654305873110026330641650891834084396301939489106822957394527125839699550411435912075489429488383519540187108676144367827782299732832179694266226389770858554599233248136060065016028000946704928370189709339673485102992105247372815703451252206911301969804432642389519733923594018974499098337211157523391479208499472699794603894386003121433778895641703903778497880625466671939045462283711227612262350352324290890979037162265454241993040316265094294188473913419038999442313152854238101266295235679808960291280873329502304795495704806319898093411198399401118904622723827890762128256389038657576781046264924486475488124137157344807816204246031150465943874840813048701247406063019806460077280619779387362741989211173225570303694438038601708214559410475895016037158531499154129569832206659433090602883245816821081943871210550416506599663180454107029163944436911046133764231779804570208602566059990231958875096163916213561493814570917779950829258047218200712551301685223851926784862128917259769548451868795372453183804049900817722768098918355985295215650404354112628509470681220625077922921059633686182204345766747628844442960096953727766186474422164400256265144156704106776487901038269458390424464879460010806581797724122195989484745719858122443034191040902503190063010593641828848755954985871290570890373075372956157285273251870265069522126655075160123661129162823533208197813020563269622191015244532960317029273241127889762570964712019110242389986110023474894015994675986738365867302682106526225752788016599405523641743517478878972304594243970670598892330298200542955718056905108146800418085062438357627559543322912609551285536753807059248416960362666167023085952777908333089644314719006326188993773902438113419440079012414480415663016366126754803050050080401098538649821388775245378118503023530081296631640176832268626194532253118348838944945884780491261034732478097359989578135004599992348052995380713765690911402201106897024949141117801182888919049428606777503639912246225321091826842782507561649705023628301209401049074029785083886614089803570710432070396828564125139567979778025904144857143664770421934626915543506043617908121476790007019496223202881243695645066106338070306887433498198246886626990217828914642639804028171810252452064379411318361493053334802256146089492246952201753248532128787495156132033930380261516105418893485127933075248880652378528980628611412277016268397681300605996602882225924511603758955243973313509992291667007193094888268197389117799358458168200475177789857333613267420967552215628604623244577397883317928591910716660975951372917859150039691009559208825736596551021907759549004318834103082463666858765948646235860117629113758600904606562933516120856994276259479201141726230668596667480003026228260725712796200915379958203153034673658069841624184836962841525455174975378221266901281295128734402808073989572152418762580207934270569855623404403054230054897998667259117473144123472619952489286098843248260419495799794143915242621846894675782602245868123735535542883572166846368595255965348749135660071686211727186857560269678832105058696052963102087138996228390094656374470790471245770266855298793281425633338737083540936095014726345168020238529018523114965478496753350642932357901626430938436468102582764302372732203131933617599172238921856037917532364231502889957968675722906897583013018119300511774044550824566560648924137801492182065741354075687078991723695123282857676641079285245036476221484157769800411638497377669745840714864508809652941561369672365710697246153403534100104108718831105673618371738352545919863859474721473774243992497026888026320932705999241447512277123895533084985395860502252179701609085967167712888163606276962961123956694641567545484155065102369435087819481497474390446927180280889678007910744559241634674117364414113630557832779023228024896085725941006526369811798328506243805743773310730285627824565013958658750435392827778439953762967111328943360566462229739897744614964119918812484281386307951378788429760357130693541211310281314766141148835888117672083349459181550171855265101115789585390548346341678808504187255283046085250121057091449941805197852497817724026324411984854593309074499783645206283501381479177666312496177295606630880715240201935995499610037506841890367127334501889799400828575356951250227355181247069196166850620812151749195642247977511000806478079779020514793385827416476251337950030119631023977475751399800285268121012325663388673436217369545641388449223518721060646908066481451371091364432085367741749979110289595797993749048677422584852222858021681979820206684223352192775139736527634345756762169225479367768545314055170005574647465431932562249130386368024561395726916769419403819017763994029886774926630177623482129096974946120669042661348325662978206216666044897560146234293093195704822126889261053655407998397797988249849049975938160215810166155777878995750121251033646738801732441447380540020685554224898793889059527059525814064873869760790762035616226175275221079131693899509002370329574700650071486367952218996128775179351007053499626071169098418738492670407189175647042063768367240954970820786305538632520340617703998942147940348138070714458857103399927168820396518319785826468443805867807389189214451126646038206579406152430260265517815868263085480132872031499100793996198500260820271120843193465060394118737894734740710484926793843811713443615452526913822170269779674490178701158389554922459631591772499245632301439754863993432482710151859253323955493779597871309223107981982608776818381824711353961593636673816585945646179871521528922078576872576084111417970556845891250700900625820171026730743753080013885722181727165688803523726519868890623022293534235418088911269953396233712648690662240347612823033302939063904404320709779218680656487275179779156995251985678673819395409450308185351173066846134569182170777207384324272613690384714364370569492299219687290849527806680328611764893463272822581465810492733426517148011110091336186099915833435343613735489804415596072843053030812919341442032325652543480891861957616064772143287178913560346687044713087005603047311919839516183640277750998819436021874606182564113487004171183236884530693815806268594421889397574494687245533147478330019658809071828785204277717989132305025323851857231920728816127253986017851907193207185451716107778528231786450598817492520715682412715998750618411906645210912427960230503864391630888511884512630037695450997107518868591569343810620534249202322491618909452571388158247003342345445329499166905534276701799749041124515455765033165556861216932866690912613643017462793232859923015525854271312940374209561789333925041705220425305055218589817343401214753719645080147341186565230095590522023298672362136127664163232832063979805170537533216933774974558027667194412435590825952122320677319384873626151275128851108153131336116144907979345831438581723712669663447962211159574097202875682499744411218141956109180531415587848399682875388345066203262650028985510432175688791291886559965247957391393037690241259551425318370197779101785095006665654280838815029612952873065870845598417853318742726037339532006708220250588521667217382135592480959263732508940507676058851261669943705720864962997784506158629764056023084480503527829675761056109843158344727435926736624144870208461109830679230229702763446020777611035848974673813215433312707003272599009809455579553104932517386732091499647740512339631726335659215424057668177857228798972329154080258758800454755708445516480813001085233464027649843427840382145502252602322113589375464574492011083593936275078549811385352639463679044051388617887937371963810072491024872168543157997401126308277452945565536250554444075056009434072349944127091934145087749898609087928440461861819930098806658244084753555709496319919068193863074847978999420309719881312092613479090639151517466333260848810635621211880573712670020379482463316102543923613679606341895542748038469716715723698266308302778379446502819476044139945150166900303418097404321047669026933793926862229526476212266702029403369551666415335879394636179418175015443631051595770970092393279175604410931435905203808612083728940836563680708215341782244358211327089407042282654878512418345628222028776531035287943400960285598030137176565718001488506314985409843074004337887073811940206623879091563576822814066673499597261657204357888162134123446774930781991041541113749999496335422768911221554202120330922179969059362253387800309746531949365734815524759723962082946474714163339963906001936181743868321772543569032757671490009938304436783952623595061415804569679393548170896150942634054453250192367672814197737709117747612648399279753798011629963172936270999677451496924649230859954224691644484562237796119967191098373660307059115437059564184817979055672254535513749959054316796890417719855539040746563050513626102507957893132355961059293582635691123224471790757412127373012060392524005420643195368206443415976825533420356615416555473327101213722583622924272966874903171907563590348404750240177151481192680778448944207555798847968491993519703635180714179740246897250251326797026169865423917049912409534908165733527619125273897235508211597981661972189427865538945493470193633680953429698321861560202921434175725891357080474808718195019775900041720576753735772248051388394863566504313778711932197068763691319045398934454269121560848988372934717470021295492621815671646333164541192546155636091373525666339064081448130741319662338695574562102949131937964598842218039038264050372377945805520261848037037207810708989903151584027751868537320189892030779443808879343368742869342399368551540608219279184086328006772384147466942227648500694889860636429005866090623534521894693918340126120165308247181733729748317899766927987353614556742184738004679138988941613580561307386883153314865601324860763455261315074073794878996557069208621089167126084964350711699599468142975989831777971023181949762024090213627038918416138723236800889738369738622305386187019694478527216419202076995691659325724765564364400298193977402930624006470807423985405446062329740196671894200495351870966022208278908287446809735833156017690799291094842807531079944566363396759973260217485546757142139499945404248571778452702322907087998417151230870875909053283595928443080999931875232381585214305612449214702455699568046342682757857686731539118044042689572082549079469683438621793266322261403833753383408485096350073576259587436022877076185259849652517239253860482244741534964079615983660553356653897704099598632184547382423634202445453444097576674786875560227839424487414116589212134543114764115020826090398081997061639828468639930660770141507446422930776257946028838309479605733332380325853115149405500418693543025462732697736688886596684923065865038585349347295477830671732684032954906745570980157171284308014721804823778726866717401327444583500273414810494753451982208871891710099736408137009099206111802910963610122994671777559035814889725780094372677385511456567075639489133415834012644502733283036831725794151124277296351911026248861197006586383314328267542172359051044575167048573444299951790117872852223954951129779701152387668780320315268671792111807456034179456475322681225554229594912490855651025924271498208637725793207124657738695597643184270839038798872241136907192235700658296043980022902114277949932436271386466009404718831362257987354232742141349753388677070956319399776413573921447514305386868203340631523272613348710566747139878944817487508371988390229487479885825408202322096749403003656689899413458694197718972169798736195602461224755258655545262974189621080717646814102037753472573334242479340615903946818049024736734633411320711155092278658920335283208435257199228314372500930291337598402852381288726953465415180642067662429564485105700785239796286689262953647548615861769937737587735231523073791172331165098306947819505201104508460156379517304570063094581940569890198397726989915679637971286024132016279999907629414143608594703737996372686711394510907787715414111625355284828089215803652382567037541427805722372455941120567377547180166813488038799369817101835961145283587057001852941141516379610657621737584228201320129010816968885181883837703925723408581385577987194151034622729142510008076239683779500987826885129195849584429332007759921074984942015382029444791596999733795008410634102336239049798010070545630328132597955631158710411775070353717344262424165809033886128450076109642232367512040326528423324637706277152371752803746787392510739546945562665579873974760752383544389299994224824056685772227828562523324093253878142789545660822202960071774602733503812591153402952303457104259548903036870530553597369691112070288693762346756443833175047415429686816101502252727118735471001410740462829708714308162921683116448871933629232332318335927717724196204376969079001516197808404748434434789160959688294156823240401544573751333984836249337231266235118958329028334614787017227045670473891711643311415025294189775976857687661531858363322674448036460775519908510313383364904709515180733908927544388109425807848539740446481175042132986109523104323357745710841474250926000947837385498450197698158477722551924061162377032815379268297978368266519308172671960531401276384548926136097058141662140993782157548839169615969259211889771081806443205300481338526621223375457493378185119057610036941682941655699750958151506152156718243627259634144714999053554808942943911356353503114190036293501988675784585738659690240938984062172804414274107930513710590995086019206087446216180925891401697940268685188765605578597032299319129936523729957051293121712199506301821958512502662470087447099673246312352978449791271291338457336632606893567711633099490014092645321894856366486267809111768449636818056724002874431011912421544431370536165964437607519686156001036738354249514871543124095763720545138487487656613478667503822512683193396818805973010690848285486244406608838506646456797449901792781626863589436230566182772383531988474117763160693907854594167364299526474724163586873956302518766766936080943753283089413890418509364827074640587161823103123764039166145334373797281504703627951267118894881184933202908999819354117063414443080686327076431725696599300597317883590503057761276024428175289461879237486159256999631888664258350835305621809677130242207464097766719863343905511790488051274162206373284952985815655868698362890024753317394816921918463985044916998015550155055183362492701047524342843016527276976950491000882257388381122647425900155703797160869302561354659583794522307609546148082905739355806409465798679253994048803323435953759964373531053172104822000946955994496528856680624957352261146394152575728078079479929163814034876359373283417290624052594016032126139098574635678639447200565976593595317500587517421026057889445174477786083833110166700413935807362327584048078888080206369471279350371693313788314923655917428698807480944042574798578877774617269256918936152258307869483462297971853367699473221421981901953796258830023496391521548440451121906514789257051611310697313437344608429686960965979775800271723208963816127727453769490612736699624224916851555028333758617509894764405478120235013638329846577394263047435680907250517405818027181852883144307379363874352114724605411149983943215088844148757758835461175354181154825283389589911950100711862768560337752759812523664746342913758154669402664569536810543077674601060728038843445337123348942961397632661798129537774631946271406687254678462934934127204430468799211034907926478651839210730520238043912458627295004558563802860487118033647863498737090059846500783449305502328286626802315158472723117003513025902737235862832983280748639833933325954841961080547841965096466714340073246558556051611652579988353818298858112059154018368853178712144463154534723745437048781384910290470897366600259088788170378870914559006255716031098853470018467805837315391738158018984271496222697657625891728899184176242769007597502478762947148351166102359030145304491010712139308088182822737150335559161839360056515386710806551395512493194890148439917426490937891840790799334352464372091853294305454597103258987044866116588258941722542659500349336226709102430619112186918970620726306597370300479870199560219477608351912184977765306436816893009982431202523504084008994780515485284706694355195474912058826169444565592124048425783018406967798955891706904070179411109727358781739785089211732695068729641416266218777774771088115426913656808495956499349229229878994257487034319700655385990335535577777726661182457226825988208873711932941489571763030330026542150166165907097661463983808768634839298988334109322767629479365316922457433879935343327154223677646289838574852467843904186141902753687517013995559776881311261507301114839993690330495404266685609023954821406642860373463282309406387203851290472640121916575370257802594447845313591703545549503342343579729180166474890879034908463433107469887990968771872306739263816592588829982792164601058352110457147672451433166246706801800024041183919631541462789106005007105499202649643547841914620990547653598585599005605592818605178950085177877924166417205909284799596939074798861615284922428728647343009563183817491012179483369571124367181186313628757826030964134111488537389164812960446490750476286489164307177809229088073224671390480459494401403445418097706006853697066766181559173309769018262635479967709459366988361655945968181616240936021624553171033753297775335076435692348808836454067151246058913561135576253548211224134832754065078564686359290179210933477520500875334044298719974970883577240890323998008605338009401256015643819998058640589709024400511731283829359066111466191255358950687247802073736670838037038432332746556957152876232295569978732742049719925718397719101732369771652510244080937054175849653541998352991262047637574892793236961722216324342313329185207374390258356761621593212414063982748401739430762065204900060745422861880642403155061981380502969012041836412012579491348710151991574623060194825613554007614496749292933010975273090633185142942887864343384074132354060593016430760994542353584664597063535679793915331016902310128722828447215568220216944670465952517190279184698376999069834466530925458354045362108139826193121389865036529674532205416933160767457729694330958531922078673865298101797314244663932426082088142935428644944419463252942104326197036249690972915513551715147282512184318004214921312900267882206291228186974813762012687671149617653612850476011774035329607617875862647905992268268840690257400781557879963329486507798752304206200216688365770509391820376374026701927711433146935180013713575476080125447431950749503212561172304897485398853958045703577144356490634544805081238873208084992087334053354067689134490473246219155558348863458149845400197718329919039582757956324021506414712526997166280380384179614675357781912009676129195106202197857142235408415682981085472319511215753947908388752233275491246177603114386721412091307907593566977871811867193768553918465846726717033127632477235268099780392236065924216185230129541952126067152017042469922305014547963174731375415698176253153850396476789811925253453618782568846936732159860032735995262047803701367778473462368066378089768708190158614323259504302220355588327964448926215086327326126489071397065376261145231599379215044966185214251439503129802562202380193457328705063592449238829438415459167822228474395730429168965065903032829084230799291776868774820174546023054757278697333023786339993883194554730791721684832311213114839332794172526499477721757384052804478355182619333179487616600338554795480210315402424154013900423334349198504568766732613839724015924054367282823537953457738641652544913237860234704350227685183346468931679628990538828201160984955222787928958670878597330134254137954897540961344175559766261409134294954878263473536772301488559418520631248577049423913798673173771087598502087189855519694251993263171251743058019935268764825944406868763132746668442923707363970705183593277114687753553742212603070248984312467185466717206707827416625956646597129227808042703627449241789129192508617925372119598133724472288777451610843127053286723668505274209603524218792477787532991964129130609699940648660351001323832694727177600059268970643470273447039329477962904354021718206200478301584619066112647008216576847740408569537861741957803418522310262376243883469778657071826643639534394627473071883205720724732657803384801937543857661826299091929484571021114944499656750322941893688007853188417148849127575157590770746667914997229462940483929856043032578890605591943553982059153498098734591028751153286762916910391057962501651641966566600996509410966336563829660419279249733044966478253141401227470423436546242118333809117431879129948257307697646822089854831791434796464273668866223603555914040398639991347918517151145404625350498380458684641723859379505882372021812143863309079535488599086572580163031899897657979114496593603843168266535730855846205576169888268687050716192442848481618092214320229790939489913204370758802007111710058546992126842385404648254790761766416142369806383889705113627734843770541462778810437559797322403112356330462313863565985276805867148103020586213712251750759544414186120551658459093008523351433584121164682535397556789486358951575496186598470946131597773735703991317650779374203457037081006285460692336047956705680247616311424333098357547430195778478992181074473638424904867894682054154891971059211812524024139290071928088477721071599246218506886327237271634252166348856736396379933189068799538049833533882758310210880824874991128468221685033964027790211359191515845720451215991625416480829472003678329873020754115720059061829160214251727505580317180186844399785036912973722600986058143784914683942301474999830078069961218386984267951758733034455640096791416052543252039150997025056281727735251208504172708024570791743645680821250907988169630736409687004678366334283503776566787417126835412357946082402893251992626655840854638569844645324796256872402867182624898271518327770148140706296674729114233870346350408064917516765697417099694849122517156539622840140817325969590418314959148426105688255042598891373718529773492150942680044393058054145857972248954451087126429886308100102165767833683003189195795957412628663453042378195861810769221958764907997876464777438756160946599592762981413215513171213548970275443275301973071267653388220427301865524447325484900938066649252462083346970293751296850224481785623416999107134528809924732577003526959961582132183590750648398980196354520096998042098512337063618282755668270255483210637566605853614002498086581927030260808199907378600452676317892720410702311598638441928611354462867566208787867482958600702456730791382314260593921441560567460977925882590231812986655558202106762095286071795608421937879204561849520943605779423974310647712210811184495096958639664107647036472962326284897411916293515876670677903998704241493232521932114813771425230987829026692566434455006948361211837477202966201840281004329234259375576692602649785576701866918469048136183830387015161063948961168748022151276266530724181935612510254766212922090393883282491665724925870979434375818084560490488055574519808084533473746119565001810323077033057435391594012871149126982128876944486627788446106197002460042652425956660246022581404483843686532976114002275571681541834738505804879886718628280657408641690386263512979537860650576220253995368579007428976903296747480872671345076368810435495268442324111279405196364249798617925293578150135376746774919378616169070916067631914026324391449200866723061848365581343232857597508425093330957906124759053490203245027531365446365226396239273681097366112393910018522040649583409447095560211890245550459841153799185829955831422765092376658922676773010202018623147951070905934644011426942032808284588540198805254010656636656892322497522957406272161285083839700423792869868872529910123053865711604173515872403735146485351103867548188728786782994498655714080222666955185998557193063285261759957960381796190875323107431877106690006969947498888511564087646012628601707335918159922481450285048773411118091891206233679617510850420439809318881964350438935880292572382563556330631857953506437429499780228901210388760779022861016241077266901211694006776743577041174459418189624602090231803350288847429498927641068999466069428485012185741111553712164375204107522328666691018264395173064656671054289780406835442461456104503430475835741179654121981192698671809037890942951086370658088240276738507338509199377798022782483800126464067274483049312826442559144635113634838950660435252075484968999967641080141153003959103442801706777014342874805720366613492001476444867419583058197228126167576235334513749333836736759530343279059951272989004072025774561828402033154866449359600345880534576293131544631488549021809919765819070918920290953817547845933600003597139702950310525426863913076973961759065898256442379663055103333134022238469858556416660187205749962547136799903106795411491083027549999105416783646711969062875597710224402679097753728811240505696941245240196333988770483670737365347601452612820479188987878576770260253704626873222140355938998144213156883546306577647440417266844039314950374179855382376445707678698210674118378546007649311896557542700205363495898806908073461355044099796381695237041300197214182514864627283455695693505162443446131727937121831249983933054556387395083745306692806364500709472883002532908652708268916127696033860473052481629788715012188303980821007765506791993348288276306066630541017264946173169546296287349338521560279826333796884855289027105498094962097559451330299660460062101044257843179276614621136322269589728463639221319697240001087723609765787427327221278889111788296812783157630818518108033987117218167689515699231720409092196944936181975907178162521727675868546756028045065133429302090930893203246543622599469822337072970823207661544924083008754125713102621170115926870876166357082399100038355285978841050001572585334038670888310214209641799095514526539314225475712605922462824297184985524559009875584563610146857473478420399290095876867386210113754128645685138829348733098486621088269011784298949262307975284169040007193023200765582129011512527857786208173267045725750467956693948141315084013334695986802347162201031854867989687651040988074889476319347857691996879233897980997809250138004672858970876650869789029729603271282475003501109328690907127993844992854311791980141899274285693831608173314475559988820743886834131661769985411295330044049893824612125309795389612246003273876855538443378061975990704309927628575353991237714841435677684297886253525171257611821721232848460375975620616048600002998470609369068677154463435152443055746217076209155244015398457435141750190816965435347313685561979504904584100909932298526067281319845497278034291163165375203037463109655313879073143885809722596046140923471361056670719076662619371847983612968731400367323169380060301133166508583342433070028088397291025645740465470921727109881248989290255677359955039779421808866808558010575843857219863709423261950050106752863808341713909201380802392445488066250040885767928229904898711890201722911337261945798510248794280719409538109472076085623141089045145964232919678912629292224997247770169200501956218098408050500004635676796381557805361926966629776134613895506891618590026402489101438692833068981301813406173735161264408953589950090935302480125948879715429684600187303493663080392862002056646102389864482845284707641877891035807448033002319667218569528082638533040970016072320570402738506681227688078344520641378705519101407259299119788751268536970973744924919417444836924168531776498335286913742452971018959473076271762400156301856413224243301145053776795050288037356420544736587577323829811776449452578418260386047894746473244183073728337783182784587912931162262012054619183033089369417480605969613244762049434344393977204113345668360063604311994524539872571983759709099545254526930732498554346236377224370302032587933536955935131560292739315283913392452547917257823655541970743270331464918876055888337801343186696336643096775167926366229362624629369206654553463839736263136405414867021296695301180987312729510936297818202746881539625512341914324278652667936419083821949414900257834781486826370381765202888497536410102343016546991209765935696047571297531662467196912636330654495602218300332514844628798019604782149223008495562989101944143905340086894989279551555418769950325978985844760228484331342669566538290598817488169626359123660769500797452781830719290297587273095190811592075731518064916613379456269861815352690980806401004939609817297329130011584006186850319549913576798457660498139429803498166317413515049190595663921137561539883849806588881519686573456364136419232215705425119472181243147900584011752387429632008165575051013977548620435634759637415263875115194814509250885323869923814129387169574336990235011125938966171042986908467760784208379145433234840271074836851286823158295813669344101720939757092160156691016203438623726268868219453078456391642097559459392292203067586966828522039319640265354833282531045064752647374735233430559013324538589271555307704083121953917692098045538105664868043378170716017767675006954051508682291281400877415513760562569017557520511798576380679306241393729868357842322420393630146175625024664755700144259358889787095036274365844360148442123393592366978502234104233604743072163959346075482178936154389793154955182613386262139937588104153737891042509201998207959780897016564777046707394602755875740344330062684224922772348934251380271545211823957478123084243355978710114946304826912763413662351312671664030570335820701702617926033033662103730307939688737555686553183067655366988859884299876411681314625123266132961699087475010068835844795370117464934492208305978115589176752017581227660834910063616782176732176322408809454622267386589873513522258887854661585769857023247437382321581063635289861837049173412875674080064615817631102466877312669126632553923792382489829135312863143429378709351274395611532218946914954111705903492954937962438081418619985928562328656269483561562126805983265134283265299013390177946695117718671491815471689818936751650846747404339635057353414698157015117970829978733332396572689626299665409186307715587417366916459944419168757601343430592773630999187705312868666872874188174399994472134954800686714006921975421480565073756680771711072004971043782549847951265544390738443656512363266450056963784757316207811659427979922526152486783068812374958150632931938255907000376397608382917855937794514697781069869224356840923174483147568383561565352334859451651355997731362912632072341485465656925566287041780766365904428354010993850972658596089039044332962493058293754108721462578211584236323491742384360839406964399649423188843440273154629872669753239495962342563924423509697845254689165330146446291919020549966982846419820266029326872719099337055643977309022214163736483182084614744756889427651747597666101445083716695776701553827062223468953760125324451898640811876964166674113339595023279743231662435010283697019223753121861825669708083721372096126022162972068861970072811998968046294337571905267176758200908245195734082450582538196360009241302774490409025039592687912452790452175933584831850881287477165289977458587136715134475917384202590281971784218972969467603487314675741844702235031994165161225275177259994841661345504653766985557976489733833623014025009139898862714737206324367059353135483931317022488863938930109360413818528858003172401537812189477730629346442581384820236295023601279906259641800556663411771709030883427119096475533865434393140232733208492794496843439883608036631780506869385300534214911119579111163283707604052016018125647381890106004555414206798678213867078652345135044494782748610932937699613012541067592586394246972838788384764013861781378517807763640953905187810057287482994092544690307683196315485758407009396211915305038830802877501752850012551655975287818640319805449917943027737141362409600602811823462924797061106650121714336567708416796762505198960668993078975436809299363787333896606898471232664869647599066042407371700993838782123459149182422818406499464152531155677290637589866236568431330103898327008395634896918415480936871031044364264128912448253167029695978679328412078730217095424931354934026254893589129994799495588392012963206416262278056201343224029070123233449107139682660980777455763626818018007124741478601560492604360160810995717019356861349831755393020703717403944706861469423533687093959483011720441919502009845001386436540529598102947230313777031625344411910160351020421728770548192567025192143696166285761852138175047118034575445210977900136618376629241060450648184816498277943991080375745937730943067369548604515095867361880946677895192359441344667346571575973997970943514539206028989452088131814943989850511570250902495890839970147674077179425481673137430876333602667342039832908501118803350605212449343985246112103721936805985937151687225080195839068098162177430020158609858027520539977503879070383552944668281539395356022403127184740880606265294072827935088037803306981738576630446638479114319865878134044290180399635123910038068490603926635286485860042058596504758181330971250572571585305007293019832814116996751237987046576862521160952353355289116126435142846825206101951054640800123692068232336592125508647586512421656530294958025349407641355991010032853391882128793571821612108746879600410684631982730979942015020773308068940887602948490158792862678660558982284975931048893757379751591417590766814327945706752932080759000470566909075502543976385175594109569551879315956073590389349212876982741332384883896026381982904291510856756546493167518666787659296718088126201424382147692980020297052258799408452003890477688235246087972844876405565300756290563466751505847105307861176434634408546104830670844871781708066004963742442894512163183864462620125680148831882145451325455040079681545757444418493825299372464962055774018252420014073426931562297917611755646565494706761015183553369515885507477931821895008558295497778076485615021761810884505574135519667115623452403231256136901743653508159897193739160036056256760079291321358379866859826316495990424925537577283789045503545223976190649334962253267838627367763477269990633398296416273823129141518934958335354407884693311070673841496821086231401648680502635976468943608263504184159315975318903539570639556638095465010456314668999301580134611859957723834952672550132026796206887869903170251876423988563547408802014421467055879763752900474513388137434739444100609890341168820654863649863343986227150646216516740325497794209264491607704610318845287397434509884230433705719548611349461995225415688566640325982678644577700616993444300536480704696989380835094350700787400184723736146348661732113143686010707097571546849601342087228497333931064376152283733047038560569228451522054832453147432773811121688240675923730912917042984570361028066149252330656371526821818565321927230305793707107727315919030348079757052156346599184700581211033652255920743159894391865012248568739817910055515826512542958762218214721527568963204395208720371189272515964925297819690104808211519118624234324669830213405035943469355159150740246861500620064917008409379636070472188020397858861080757683268522544566245637697767804619043664986365873762222093305792715032815185824474928270255681689634686693475479838373203678547733770870053083760553596368157778582291614760314240808158530782987167097559743716254304243559063846855306914323938530023415471267372481456846707547627310208196144797172420507551821292334420753149827665134577190617366403041228007369617422270881820966544747687528759329419008669928745370410611044944260603999327916554275108333730938646606271494349802283268866361393553158560962016379300137303599193217048891482745587972252951889521368398820187487846341544573628637794054017940533126438506416368961325329999676469716140709609163349586031409837067000956473784303203325139374163667657085685687976060366055108849562929421364786356231686857442355041961154675143920019889228684497599169867227960599126789996073118992433375426041912870700485742259353715512169402053525767265710259908508069469147527898016140938005308280495133012861288815851125081528366903905719907314592269672105843464074874401798007247467363904796069718896847537030401240801586375968775118119621589852877971936322271344153983289161804766335515261331750205778382775445071726834732921113125560193501269561192366449683441991604007068174879067760092720896487554026620541943023607149943614520801930968487061804153371047499635269408318857394126153005180878829165339133949510442715957453158839329550542939951417476948832876536430745839963311778134912161965564372275133524902052806134850626922260201395101930729252813659848113857033136131383807025024769850764150180096911120730391368899746436281069530025852046250107979561827633125120247611983449910206398500716897399195639493498807568552486473486972385093434414880269463051156661029464394829588699789806934878369160961165207671885700623509740093559986840845052447491850173158959347352956540140441479327941317784970182675503641481790625733939370333978672597618491995371962173993275857179327083254992244727349307418585614080511560550844761952025230684894000341730343336473915264324406764489446513195372663481477353607443920076769646925523742341282713171014579061748171024452733184506826829468772692193582114412790769984871057866515121072281585126504484992865809983231181228008571975261891446311795123026860969346450717780600655044615297577025203944683552509591681884142894903167398829722494473741054155701895135443100434923384462877027700360360372277337744675737318992051275810420790240195376386786818442639333896909725725178129651157108414483573608665474059143534295761692850246196087193556317891361515567165734981477704165538520131653935916261740294642247664437611420545496809344432150159002317110008466347743032121435733759869434360689954211179600659373257696522673897345179434210551276433255091903273609860533498574589954489908758789761421139435148753817177491617520236683084769881775454572202030184202131022697818823160868856400951151453307824829871326708651031004928151175008328653618190289032979483998905824354012079011970663310506633326495583466904185334512908888140916889868669927438380269867469224760529906336399493427890949696156146879954886569469338711871461368745041893499537665450600542872395847747013992273611369791953404081658274107010116188896682202112155129006450421399325838669391380234964724335915212044078616018285001424960546208915761005672220280178040626924627443746198436626401683528746649762161159896467303103731344250433099004973047150670985539197474298825458317007886378318171188016276137967420088741670342912810021135829454178702680593791674124830363098165932593924576016125538201885871884389896449520930331330929503557315702500376039631324029238204175906770101094582932730145211330375113683761495330725218550960412598346981810137139662195465517040079653856535624708121698468356672532564612339899981287498918674486801155178294966525226905466765381951067140890815751174988558221034637918134174636959453969020506871790735796453864464723582879558331894141540950135963311462117523005160038985651710045298007709056827794214722608180100694380683847874137236495805230534733622224532268452322351194780682357268143025241107798495412334279342290775642196900517675105009171740389514902601756476801811624281011280182399355072920164138386425446864318534819250484438549699834547050260818139811979173665833850454277468325195544881906104455195044982885760744106673226506650119620079606490057483334089980722739951510487374479756771221092945453222849076727278769363647256453106205989364463161342994505316064784308769383881089038103385790459294229494132841611871269704408600092659800090647053680317159591824787039394667289902166619809681850752929433106178343774635450984300435981958853602135660687383399372226841114795940445253706445125156367659322236361221514519723294546725646090031787517151999643547862737401537407531893906255348693097536164665692796706415044524292836227521262915239131282151259893551073030515071001561190958426519850908030136951499364654029161558808097368641594535657700421357508789743746862780773673495032889907780341225048873128170623047417074006713114608251683355866987496068714872812692962046400334775341264992317516874972061252534613720192375974047487466170251283735683362737389668020095434519128414117426843638798451497292923338449372311954589430166606336380905379588783962532782295042557857365922807116531325134617520043466832079839434404831914102747004613228124169140478818695228691145350780772932318621878878460889125333268878524223714282067099898729097445252731857639868130707773518498544414050954391482235533009501834221641596335661642919268451635545472942343169143427878380388829287980409930248997852578867166559144276626032560397071117597147641177577405036493922704736200070241148969481793294160998163640956490939560952582984112998499523845979641520711270725582265685251897235333749973062956017977550884642428390900633251980841073727829105287426313581839510426233497631604185938677886546387615392249567301995459844683175662160934353261127343533086371432498651049902279959919777813422039450236060875092311828697001961800563764579049885288075126322196275005916496446858711353407292209489797186613030937912883958432436894690689059805804753130051648799378610746616145274325004070132904657585609683803076573615944303226811639836649888012095982807347529667259601986640753594230494211895514213974800739900441314818510749825169762095525740827191249773591271392685008404008745576098918742037127880802978817178262605309296037467472216470231340973705507886152218803257566673291197633951506741192062550747763632875108219181324836065832538476955178157086586742200751341956039700007869633738021880359092331421567626276166850448692812795061856319968124504741988768975343933016913398352492942764987047903701906777540159675636332312609098414311639829185120944045895199273558500523260865732655666077259151399398513606761253404866079634828955010450474428272227676352005834547255152600340833260864470319462934886435739623915088027320665960143391570878047685721558799820443330248291925616871493326535620132608456486169164942535061598058340598130453021813092143783299817646673688391087361100526990333606003583878227411598439658275822593714156567791131554889142498608425456141357871485901743924891830402743161957699915947689994208398690641865409529107903620918160461796357746363185292469461315395192102463848638529923413886554519023136101212180923604515079573390290991351913939399405840899881534159681115860493063353877271908315632000181697045174958333330866456949655368667530068851781821203665019241651298260346345504031599470898354498315084066186272141487417111743168348859784616393455562751595893608956261089038562739481539989726320790586839496328860255805036300617111089788154091062655865445327580729768961033432188758493669934079304244102193939573802764480755333716227383243257712434625083123512111036130971881766806349565196947997671203899140659487988742140101505647771838516433926272264513054759132060037895127538347249791926566364624165116737501209925825968246656348820684593452460804083586394133357995326847551709442585818454481895367922078385187833656050392020835138739403341531774911426332371293487997157748963700977208913160269146184366743639536316248725305146556236663281216079245447956626492026222884262586119727759977526425306461929140616521023852853412785526481806562962367282076581179493313968987481504390474676975248457323141051033684197955702688285463308685930739967445064934936023464126557353761721434010236618510906019064773478611647873157638259666075055949304996256831398271936929960225196042442104751961449992951400862523946590572364557194864387883212043505716931408532476518182726022133849472182012035367989349271027743060990363756816132910956542635295819188969953457223215394845536159003035758694648658460577075072114749414515344090301699967752151672663500085011912185906360677911961077552622580535227659429325488826434883369841201965434466837413425498947591256494525468238763327653233402565459706552319228085840662284395249682389843820870303699878110476793626582639283622294994081775333162162120373710691998943263676190577985662599908517057867550643712730272681288366495865486815754668656180477170761018262670197355481223703634945371195970026377585027554169713975642698322581071000667358507267083268506072102012570652100356968271035077359298534897712777603954113693793934040366269678032157315608742970530641702611400905889242482448814431997945489485071455101821257644276770654800285803719484349134577945970055678412771992331815637216957890289152740296460575708445790836280928508216931529388092731038927333423246633505869994311459734160776867147746355948916905086081771959388278403634258426178029610140354874849446046037163860014173319357243893027822494187117942779887692270829977003998764855909958133883196203484041929957649530427756975604534466536696615224459604158211675784197388967859848460487435223231729581480285619573822238047630634472490323009085649309029405716583395251536173333584322265199668911052820960871160002360125935663261002938175418588835626705055027806908282088959179277865925929678193581264881391023984580137691933476341014226518785417196590210023750487855533872002077263992311938525975839259230414643671030289483161376372291596293062842976766415815054454841135733649909946916936112916289608926638039230381431076833189324884459009972165224452568664388523456292194098528680733216896379973851776023549825454359229685619128711439876418765193622057645409828572662830197726326347189750565980880048133818153484222357176049131910627878027476462770828053741878933837228792460779503087081546415826344507033285159471953869824793890011163301915565958442792386452400899855257428853790169573571520161917036397334307675614660614757648069266280317575944678353417510288411005508302740506454911676563709665593642023091766355966331607966151012898414832855803237522539787890034880346731649736093330984780440181403802959794813490625918134210187915959718734625717329863640327877895760658514591427114710174511270561750750451742806353342122766517775077241679010089280152495625636416846417925082047938871040925366195494767887349162957313251367132941656290759926356504174020134579526436517706734490487745728430700409175969209633620360726843413712689698575636389600715667473840171595268911570920613419103609532427098101517265783124964324465068480198541008757568741694034859152934072621674259853565967195593959068106696686386146070058072996315030669917325374300519636078488846721174710724102650867777581448181678975600818927366632478160908915383103595829956442757800710105619652838437405804336337126979119054362282520330593795542064687375015166103905234977009840889972429690650981041823801406157187466645485014716621916948376957084199880075689608052475604926377572781559636693620160557077156733586425050862371513680480295238121669631746226226731548381800056247458862553528213297956942402887600529883196347494134748801579148792521233111874164184814108162746078707927857454770808118849944995764662608887040840273397984681640929624183400690430777075320064131477631789663379103655606832555695099694588751861286467953001839260919966669449658641927748046697952353009228097247370184084431375851299264327742566619324865297218671617107762821544522249769804874220017897949006013123273436111829012553209856843269596567894633064855728035732443066202810587002684983557439164272136320197338362173434795185646669549030067644980600599647221691334438095162618742475701430652098619559249324341738345322859956060964975615832837763942763257930635019644622939055448383037025486816269492666302333935166994775940448440422201492369773703590760977765797767918454777357635350908157208409470907981677269179782310970269800410387896497059183276250760097710453217803690495449899858677583946160225282718690620388469171662077210783618896875510428786460733558895067654427751841640754638305560555048593348648574968056316615910170697808519863887988724546038819926746580966397478635250505746809055009579747321231387801320907571068314260945431353625439012413613041442418642485282984383027212627275337083944281633927621471515703572718787355383905501680836139876783229304039244424358354049892042630365821970324811563281126471497236451616457124069510649476211866608810299004821805430259056554225348695314890306577432564904863873645843600429688188793368029480695585179278135805042466554449240382227440565533887036888648582725564817623430808485492889754103418060641924583636870346301984808900973961621182969874206550473052904922258060318312041371158053945035423576495719375464602762548636417232793886819752463922681057239535444408422492710230383624696218841143608912024605735716401546195568179163309725850730321149520539758875680352579696213893050592012625530677341323336387362341131799460901413161644892754049353238712509183142129545593048238761276609457226405563639658577257150387155457835897664938202409848538690855444721552907948528836966612833979811072456010195778209449106132652062493091489517322646152997240829293627903905129333280128139984700414620487799633088592316968393392822257848172023492063366594977349501771177389511784704712684336861171718896111228219614122120812470720841596860142969946221017479302812376348020324794373201356093775591918078812488966865367624001885012692828007052829064256434143614653610771988976566751182734593509937096536318702095824118253473665843414577091130835705545723061743582629456790837481474957996417246880048566137662066269979415471574260477124636324489718383240360515500974012912038443619901816130919729220911345005264163016672516710602822705672430512154128609192805573489353569783824655270703532185180146444159053938136702371121341303839797894800387241266742691334499803361240643820853528107285171868796728593238845604734375114750957168414075593274559423128886989419125402841652639888676163290580152795482032945055593264350444989435446321179410598323355359363826339277268927284670143234489714570488603266023503406919215599873959289174209845377783979735428386961889513448776616922229865165073560883737369408805369654484443365513494546113316461440047691364966587706166412440012896067428408067252627313682131754040725588613636922020034654449470242474773017701579970932547323071510945423295116214962205114796181046697996996669452927826389724861278682757467304713056769182414950861399374808745846131662766698708251308243868517574912149159314806338002162158951455304883493330208608193548215493310673396366018287324989115552921379430914783712125902781042382008024228642732229866954880354423697086776403616497331553402233370459301787286683181927940911756003789834147808608160985630811252792544202576663553564583972728386418421666889711443701526337604416835181470895060225886378101228396435260899145209398537453322589728582124311898791537548060492654665395232269711428602000039795513652235877495626329612301077731890892098321194076267571188720299047974013161530763761669345901854494963365174247618033556887233717253969881005195853797456830345249264208926420922244095579528634148418722002583572179867246764248991958209932839194216964393483001602400860943549543487110238470860723289509430573855977885721722680692978415355782337669916845314346896941490327942954073858107426689299714869278609111516584134157849482676363599762192087569484970408714587280376298870484109875456059823404483221722341844082962866418420604204247130824054675596333657518024814241438855405877481819136806618044300840425415141866434008454909368418320102703248823001304921924914652269217261389471577083023703381665810155697592968240792738385727032900399449436755336640801256062105874824475293805509439735907818472882229737685083702022972592954858991308258907212102182398418274333734135700826885535514696978703960962886949842378051242420777470779845967947044158041454040891061671070137554493938942914247002145639049962327649436140632252275135293487152132521613118840787393638115208380024614525216023526705813771064306897825622966696644550912980817006313222501057264389623206638838687347241458027966710985148033370478148269651627913774615664772591841713341986998724339287261132015551354594456001913263314799464110715734131902428785521054051978624789437706309243384061711742637593708641133601072982966299405949226999400207380719754743435399905466258394742409196460894757387502133901685506474936452388337972501038846463762094096661229237524041466684421541623533559688986240709224282080396474695229772030172945541500930633994192229781760935991702876424697755105909984169745039273153353694816866406597157491752213940704236967786616267341241260342506401629744318632465864461256258510577032037082773257837454638309229368610156405975409095093438743173792678998646782819882103326545779430982379636347541471730651328989240883191829935838153620589328864624818322765601711467516775658257437798423318928325663130613893390452696183631073571462242846983044810166191362823816666630954810594224339514505003258802841465496443769204320162356442905014419363404290104199932773560569260265336308578013797853500213776238826177578128391333629379986960166888204799671845198874179376678296712411535673057310697197222380602893630183600900307446566369751958719923171381237312971525388819916543153932189900066302056499904956879829653694683517514117007835410952313160343608091190549133770363681285102021603216511274052042757907125607072984466914585508160146949552866654992148588977893371455925410013973788500314316168754813822508947671497141047922326239564650456958358455217048173386118002101404333397372123177274407754084284890395313647886827045413158282818041085647724333607350370703799442671225373532254696394455381192565278375301457232079675857491107727458111392379878506746861249180053929016118920966582472789302915515002842128904492667396002718153968971847146648234947613691354804088674828729051153622531884760128128586287642411743708927681715210299756788374829940097138423703950079652648140843194667992038780190898412461739533962582275507789611144190122529686016383192031259946188775833338873797192740634627636430210736191044867472486476520425466574164777605108026477221073171043034778520285088598708285572206159968992985311648413682653308879141454364086265745227619677578554503106756365989390965940113906583638186352581977182414397951666375709640235624013220644076908887692038003768139285531606522187631949208600672566234799166787736495303871376995376240248406051666857347091584046664557800787332082400931801260095732014879595623213668802229010273991872832472167230896499037748478456393040315561579671560814910326923775787237058588441298551784338472553584839963292764710236675458740347309475206853207513869529409634065569420320617089470230520439342972227664259839915865692280789919301804343847181048643163405464349007837963994356002962930258365607738538671715386659657684458432497720645873140366751027775113598984908451544507490678635454870684032772126140984989487693792074430706736348461429087601694066542228570209432332920160491025766202535710911158900781709765584050430413290194875476237935633302011826891671961052181668701224125866111933106027695770385343909540410002022892033490344864357259360372368265521774545943132741967813134775092629171258998890183996064129269850276977198315732949973393886225531395650960398522610337568675125462206074280567695825852304518968996432107068448162024080337437258419927020675405388532647685832403135509656338693195651521247893492166664596178523240521806727334259993607654627715700615914280132370996188887943256771734667802527868658012903361547996529129016072933362805239219363883318870388377608014835913383047055128822813675873779406710639323202072704218577624558291359057858007382017450035795403822049911973962680689883646628048386754373841237075417089908030108132164369183792276542965984826662965294347775815874545730747526493114195864023935784171540253245662665955478723843882278446304677258745156576360708811355108083097781611349076603751592908746431118621608254934621868690516241628868445335495920021424588529476181432031680907393467292187606840698918125552333281601826526362431816449177377080160607543397239145962498683281423055235120181474191603921646451175911698351739740873612354590584699683363369921810330093076782017326793634264968619749663764991972519572179164177054823114684607805809445167535740719376678750380973941373082769058041762184060341285419249206038894929139927789922899253027115041998604121125064362021433675713488382708518867632965988920677197241287613627130235063935247270734538400632594122523366054829796158296427056323496159223049998620546629182232076179087759561961650581085166347709133903948849054685717651047799642734753134702056747638989936790148330728496715935828403407826387429128841988585829015413321395075696398845666596354090737331616381460474694612496075038945124706832074084617160011435370983597648615527500841265112621215509826212152816804914025653209901421654462466370117388462025604720160647874162384662762910401841939053531989330823152641301327129188869426829761556486933408565454096342684829163553410451401009138901098918091138278525041160215270405252177988417761450145080388964631850398682883348192344380530301070581570212294910382921639153879684680556780439085328767891367964486479623928710366239368915446188111181261820432952760945943946560430530170964603210996688526195407890469257044199807936402126922116837340990826631839090424022185484991011458053793517431595287229836504376262769374855866298357748240822864522030393530508331970546739365606224225749118053380544386762154594773670450329183703226921835357471218521294902927842031822259540744853411886406624157092900135760029563862018231528820546271607360327767064602209058371648708461950974641972283884335775507638917640293368639670459999461129678823729743317695080191095034211500109804528488857983915868775982721064378668119030367652317078650000821592019912099345322508741398497811963974511070206073541861813048095928350435761977542294305654095927221359278182159401828412045641624871540449815937869198681624706595741864502215252454371663424491900829063511487588486325164448806103101146693963920301802091272533916300567829825811755244111356045768342717121521601726380311789893342393180596492054743846626083747693108229169703937015099527280377072678408767684621938427785653096165212414576948141863690819027004883721128572615495047467032603740971532820044335875181482155724331347286528218727653427232419942604950858322386541597716297729926567038102723734141197049491644091337657938449150861897949144765594373418524874352283996177310510666058092978971268554171360249698238781867967371417115719283444137440189161574087422281108585013262044030975732243957834274292537088581274969449926454385678765068933937137469107122601714547072356521554293175462138918653169259619496180565758361559149417268074667347545908476490888787882167326325860530849649718337998109733927742522758121208365923339760011543725166418898881991184509866170663036159337198099517827068256721441757025462171590146010488296785274287879182976172491612116835304730499818219503934082231504608237565625613361217309128017949343590041476057280127190769693854357329144732132677255844694673458158993034826181392389933777944531593769506176986445367386575646323399192775741501137799704787061264628385764096728624716163371274062231791696371352113264151823481928804799848999549510606746114041596843112305448404638614632192809460434353477070390272269879788762006019989383761856557372195044255816382811897012746399584906340679879249825279292768381726007833686773886856611715881204919881988847317246476113422505428324095105474323274191709394974720631439636897639407049595406330647010963794427802235748160538313756394714671984256915933557441573475959844787442212374770766408008201000690113342468013976506188354977155390090233119145400170609399163361362977181854410388436265313887197606138654011681914488460095906220003020044261974329487760107660014098002289120927765575868256473002849640358140009617496490155720641646631944291505563551371263814919287864527724552237520081932953992764024143406933013059453494769213888778931263723929604019708309449557239622165147634269371185462772856907148112395381213300759839045487364056968259690229760084382995601746905672540141716673204367808546812561448191032760437307457641573914753414399802521212269888533667876679595954000543725787638500230082160804281937973765817539688688733022676039940892162798075271546973680960435671476659867971351593628571465685040905916192463236711163186476576184407300642438373368419663310631269896063602967594732075108414616822324992902221963865674723389751260159387987313010494038245813813619460293652239530963413578664907750634768540619484396407137679245793690673881082154112350810793817223982004934013739408217253776239377251358892789686241501782825701420621895773680712670904261332555726981668703451592978737916687076426699036155237349419454985125221720705126329838819298304468885427030889609923883585929407972463824149510099096131131822395202553790529340755775030177727533323479829785265973208412979628064381285560308229577364811044176649860891168863654139062595387049839890204123733620190820297621561032085794650814979868904463253698464789249831351934060067947650121353334218043923916345459557129964418830897430804615824448761763640858287042019419121490807228090221564390908640276429094478847351733201275594919190020684946579506465758728226091374286862438781217399250189150957150297751508148373670802555690159989231714772540172640268900364589751450820005863844315847483887598381668475295828220395133616072905680509233308954080162708682942853040860079625940601761812119876322444200961574939690205035384332694485310994599670690912431301110740755134416236350133420842432345410018272197687550333628490076309649998010646244749430808939764823510355035276062252178347427016027606595472240227147668583610711344371251347255708904890905364388908278335738907222102938784841531722565071081710594523365223815969167796240790122229452938147035851087635613105888197828327037499279301992701372437934870265747833952931883250787923674893629436405806427910472683347641966085754031688288497707739360818516094249206436818501658265401890761370359223794296504180644792157684004169074934299633386310396694167815975663349791624486816648215406716784222277450044401362090153222210293082982723343852403606896646470015476298082648230926624208438115225080087617606586748508296800674233327939214389178744332820058562811125513085740607644841230850141292521057007863275438128278737716539589033075073392173848206673864943202324176448278811863967224951936069223780020381801060588025945203396642952309613585643660464199867516267206555165608752326136413371773788653645316313383751940971558477211953668454791752331594801519027296487900990619779715311028855659882279684091354012747792730583325911781659866460371382433447822962057500426362918524818431982700525478762564939358020052354108407462169300037375171236617332890152001029763713747871707481131725588821938348508407083748566111131528532571554779599082228003314370300494497196440662679598203838652556716096339145183022264408212924108749199732588569907981440690649244511488449302983433445954157971296362471966530236140320359745042599206153864446553824116727581560484303284244577368327119638489320776854323747561777167799992986192466661431466263658506202305603462465756611962490032599724916575089556340348162076786722115944483969210832519741546133364207036224038342742247503936075145882308322790449490749814676431220538102212720862551637982789997850294822990592361282010280597500464383073478206610624888431423985658826265194076764055660061471935707854297991000755736147329596107297053730785507510433468720956636685647553052748107125397574817738591382136110385161022482778754792837217240550383114205431523158248796066545304832430190101296975031376650602296636832512413169865990635540695093530828452789334674115515830749995383297340194873814427090371738449338854191447182849380064557905074823902580098022810543196833401846287973323248472522076482961841022530465460720214492924581104337114128038664031968599316567327788410667683892800776455280589893591193100610933667990478808755519225498416420096612310151587465237490469769671287232866922618914560706449957149372210720297169986740051665687162654583447868078200772804641645574262865445965141551126648764769658271209676756724355572959437397814084029920787795878381524583362152575462927272106979115212084712728805306434079565221759624371947475894284979366770773143725667825440981802713643726704084120973327169797745969999391480677205215364750747743698333905363757418432445548552201133732797181726622425332567739461122136231255569360411987051663792089642713404296743395176948371473855372850333602111045479586583608224010890617049529960358299260972837854855215639207128228926771834961430287207255558607340263053485198941885447619946623140598269187022423670002720031327676598166978658769316566638517550565920299538677197497070895862403855230860643719846517822768764588478939211225486951357486666507839573627144422155317685018401235899869680722300148018256758888698314612953126106813309892214751233673165387148793182533627698538984721628482483476549991944660304516660415292835388806302957919202266394805185396225879929351676674454050828479182821079414530812060792013466507845744401671458131232462032194907763715674636887402430812131820007980642109327794737374114645099738420739646569016813862351188214353041288064828705212221436972278976006597298256214379877289525015119660955117403205994941968142905685187735894098842415536335510887455954785835696917250185515446253964038768166125619655310572510361523174143781352934481808382665508578729589130382169498502296014151619651914750801200264045641358912141515015125066154405142755763343036353736532731686257470806153298819625577398623833417410083411638425369968572286909107809968207134908541685999453821844481993202233174178819799911633204565898915657647841450417429675029749686077782043370581973321990072127724228291786958818269020567646040958980925590063612438456130189519646012762169588303790925249823471860593959361833688031997055930533984427231884967714991302036037754729613856535955872133461923246077798209184089068152398658680990204200393935930399930182049036995346365789951208972449554975161003562562020505126462765360125578519040436095232607989098389577376615568653493773437656160928346757585840593582252323300812636433886756441785271426638929585081532561668510492646231883375694094790546379375295483056757302816047303905998892735840572667269020116471994318409558576221320659700653477558691513890918627100878538529064777636247859591241722424509640500674985532584515991638776757188542770198190550731942425238024582442924626188240088935657556342147057483238636657130060317364405784495211753605624399110901072366892844873818707904045151410700598606972453976813704145991835634894119579288881061269031393310271887036723251634091501339578632053060940316085998873700515667157553600551370435147394153484122368729936944124945946026836068901660652092537014721076117017801855846757267694870607375985586161070161323521779836163056295468608339858942648593733979417153521530052774153680785097255148904468254071679592173191682278808347408217523508784853758324905179311576650616422024235716528799772123447104941519603100377103862499244809125110696066848540050883295516732221462949997921747716646638541023511222790414568959068050691884191160077180918623718837928923997631797134946894593285471853137360500990804835423960592096471690342750903925365512473867473819113330489358229745562442871362142160457616809053033775680179759330422997075915398159156386751782398291761377069897498480033992161213860615949889006850982381189483513126867059516381464805216263667482762841376312380664301544532848123026609035183854252948241109354215321799064304330242206254851413957468060412850949470941706092320126831599396277016069431914400610468956722847463927676075421667277738508874043722176735892515591844937494510928296089918581233779206181347106131632811465451936514955122457243221141787176874259967089907663596541843638063144233660595752021571438829822932734325457176062580164736514298263419990538234295048102467379741809114373104297733792459948178934293786518518408216792690742036970662638515876933767245902519519965945133024922551028217731147525784989807511773960681886512454740596753085105752662301946184431946159787607703062554785493416878195022171756224367162464124156061330057776864418919116733818501011283087385563989721015243729279296259004814609253675020410955101471774221117317565480149692166295103950877011102123517994716330803667749261545317880041846204723643416148540281362854979700814597416876328462088957617059919153625397427097382895349726048772130773947603799391277560196595449341802532616464524013276396112679524364289295321042709377096857836711906060737478732829372530449226937538292676844653637785585820948516649258595616809229572443676448578175764204325026456840503425459296691496375482956902321864040883830867266726446353727380413766721365709371676353736247899922181188309213938260440615201825921585540673224587921536102889559773839165962834786956226844517549153502326311929932871840169888497167340559552247795819628844001064581050128740839708461909663813609559888459552811738386760236181585210012789634932033791645536661197714860608592547966666169482560895219488542377017935684045136536136852203196633416720734435019319917380287542287127824387398650836171961421859056450903118675922887373306977022210312445552840672680303646151740879813484766108449207719640335999880073367325533756692529601198840409147192064990919711554740665467620066298108617375183932457490895448447379968417331951318376636539216212884635513314023271356407424221420654527204152577644393398094045536561696019215219717985411753850775592514857174337018991717729898479378001660907967809926879731832709999561226130258516615305570481393595289232480969301279088971729985650235062902606656139184491281968556699441799831189362422135900012266291255789850526797674555342016768104515458560325542784992417965712703279320685601985030119500482258103963645234954004820393220795302120415298128575372570606251984373215599979066342839249938489732665441490608018801076414438756226248872954142408843458992430593933512542478609614287007418508328586618421490127101566282294917987276436908714767724089783645230162876943167051867674636923610197384796275047299665250765166665532851815610545063385124046351685138490550683356053184352416717858495377385790062211847009517991182647540013513549742406135691974689124957457082602065877147474108614559037931520802501255621543462125689263430846360992729849003214545595343019234890486425443433406501309571202147835929890356366184577230793909138706449783213299136841628140892173157235953123706251910876071414866813271537687021485000772108700821148714474978459725598393201567908335226920385722733209913718535989542661267786446194219758115221625497249499475249454269803856956252755665708472263686790292000258500400699342257371527791449245044102882155507745298721706363587658437188763408894057121463682560148874986346370099791648194759511911740018893661578287740241347930257527073105536546633501807271039806518078702415690601134903052214960635683589856773570985785883705731201040678965644539053545100890245206056224124297619964005369972724887604156676700438986593430894854148863232598914382501854998649937945347815186835292211468328762668303130957770296883048419006760701751676616456047656020309789728254298006347772621654880883754922171185511066354223295348956136605757634869811050895817395916937671203881233698040628571502594610608950802496535275319515500156929327598334049658436695122179977798571473515585633196721441387425523204069614657108082847478134642226683236790753633241400572958642680275190831101349049802628166596146574275203648756804421521221904875288236440510780479536745068764947566437802992225108215434504893878519693461663227955533117896436889869487511015295702562737182177906909109465488599011572090574562871780904349172287205149586283748526259705924901982144454945046024490207697389875414595701877071643317898132746390639179801923837440214341234844644769644254702301255900795666170591183034041900959649681860106676122303001663657150173303309034880993723439617528310721932961163752219071364802575037432278666323924169598590624785925384230348299214623729942666629961638442196333042375325325867874467614464775039174878395180506441217782053723346886395859690620798622240143225136892248214222393674336276672862331992033594390749830875122760399390063929274558345911197644750262803534412208838441962135747858864812945176287865481090317461998887739126870941493445390169564072501811796579444704601245466929469923226915394912505062562551899116762356638073660478750774201018732292364037169600523731488469400846690950277030335567986009487822662500365584481589704757639052295186770495193226168732696180061986800098605829295541271815777479059706952033000030482283748435658074188465771775884492945847213953891340589824369658469913231707311233087865823852844342159153956943220392788472451234779116780650961194226040794652592724387608704485126044601244665181224674421146839486986749220682841738351675614794298533217321754294155372124628805700553301696944739522117996525955351155396971463028545116038550587198978728549023693107344010639602478677546497527732238777311221747614713627031581454794550114409276453256209012002149228103939339072265598675566189828469582201706246791873624558954199666195244892151922319334794226268347213968400566827338944468220052201200293054239389368637177399847902637934674822726973011849784122639832016948394693521093976131812994295209527976242047886938666263287983778141455604462156166801445453882403451005843157496207034607905246293723948261609667937720409038512992012608078759457179830004039590334267555034870494544353455319482710944758851956584207149009521818475014616114147740264688230407652421975079036623784522356972036659912108201803667098452401457366152626316913442110174582920282988161777635758567652965620212672244078599256301480263662827514112612047451276224404392254339450110318496804843318957516029568908817035369399627291473980339505287995881925847050980404867397639293172760931987689024124508810918729571195088696372752034002502870476365090976727829138030462194403997427446257520472894439392487286976209857045923784925862133895379452543793524479368782793124986544539959788162045313256429899707363766536781169582652080443192575722355648313511761037346198922071262299218895835692647740884580907187686235126355491757194047616171914136682509896608119097235303771579931226475246214869188756842647839172181604903606002812865130080879377862439829078100043824009981959143818699192765408631563302670273967582130655845015187876275677903305000530097276468908240210100667209772245408136161664625097640529533383480491732036723152159954100805145138979650169167092741051352708048226542796781755973785547559940418025428991516245117423646358453482337186264961796779831175389424671944208782423228633888288345908571449670929438476493138388413924215987274271595878051902818564101571419379401020562941128836880166166790235653058487338832739857459043614773252562169663613778902368050743306524648172631847036306699259540837192486695314982964115231959502316936011741861869416739955369792214249865985732537529359988346130125969325976366558044504231982600118463312963227577068534556831815104966842591978204281618537193897079539814886273332445468567876581428108324309091374054316207165840932244072183762804031490094594884152189257551441076430368184637129583141749518300010930772059320677438195456220480907714198454942274105381658212160902037167190265765028360038329949810802283315210424257991699706352570780915190934804244088955822129585036811080828201141325944951838889561180637045197164480917671017304166243335317507503053589667555414961557692316068681703560012974146312105945749646480005936634248120332141701519262323349819993381153608075091553568004968461549862954354387161974644963329509915203477476808922021562511615534404854652747311284264542330190718927720109464905524165131730813320323374795826124091496863911342242026397575697692800203284818814871368448015529986527530514247063509216637742735062681555472958642485118415734365738795044888974624263859866637332203126063422971955536229192375574329345515425689072527329583838758265070420006471411904997925228382618082771686117193545477395555789491064802663743860577694477636062208656251717893486168481129016007115365832620031625525718454513428789829628517539815357161363438533073101697911775248151438601855310583620898780931706443503057616583399849192512823027672990631923221355277505604692501267178754112534091545605797083967872459927390334536381674678603194377687453009009982916952419411570343947153814917669892011082202784531085181424474026576894870029613801278227341136011314924251969985559540631238621380310482901550294820346488443689852664073338180827407367894875031584177103810080010345441056952189448179669164498945976102885222183686604901533872695997923410380669124670730046279382808498768029310693526470768506908875071033823348919490774324147861529033394070851964652351183673916062902064662002522825403392164575826867823642639932881649441854421221912841817400111235020846160527527734132656125839979782667937528863200544379473029733501487381475768181885268780010222422300533302168744213153863172739870319229096833507572088602311568012662669588833376401487954653200909424365693128121855664317500114848990857870718742803585674033065621902559274246773437603045345361637160737403245593069703940498254274932759703885724510350212250889019985021912006879181668654378733771044052061106772083795314345696626096045310433141807067719025981531130427468879828144528198093869036904264479660329284869601227758157292739094081355111124837393216013640948229187300373110385616753836086949412019266202477430539227464890723860172492808616200223074616257877926582861528962983219500097652299161920140169904684732212398157213048856872288347806259372530950280882961431243403193239115592464602503279506276597438330837984100448247261701464660840424710790491897599489263850849802110832458367796109710187941362314447686383017954882115334853311981131676640092342174246812327482006474655389055725196516952280087727849563459105837026817053778056423047164088373746792005131788053803819917395392352583198625866636631441529149644114552901421286913524569816948066222003546798179641233918469489331871162253426026351105547842521629288442364351710461371868480465736112506071116953292232265405877547411636429520621768272681911073158064157070945314596843054667482575454315866122079793690881027844039867393237694124192679889278948991071538811946793119522980441070333435418409629641242579002221955274730297305261069052985836049569732806848194841232199422775882664201969893692922074369626402201876555099582558598401328857373710720266640093809890279848775715851575489190713793868016734598683991945856907811053569479650496010946009337865357185466243765999921929401856605544131501763107155861027275828838263490849165224912807463556337082149874338294900480849018769826354732929167431222366245989966792724676338034784048968461264271308863528357952879240578080918591873328198489046547547955281360010710806387395496845258770458251271962746862379303965911602567022811287597621360125029048858373068282578724997011710552820859177552268786733125822511190434426728163127577117406613729065534916391601565241118907746522694354418793738999091361411918635110689221740152279271320993379655120636497180037537711601638283323091086185379382617374778896992095620149958811525577024868502673770821030066021428539912350591434682494026706654359595525066877224679925280014310804906094357164213980169771041690808267853892484650319380699551647316378875558605926592274769599733277272382584251794973883045216965771472105488345611471761739213950855900573807147199552106837708115059202796318653359552671272112796928877415506916183375294397278646114343285304724938790376895681654768777721805687586900274393166464764674876747670663020057356116044943187796063745588001658421211460585959294734923088742246601111548501881392747317827600265574165291667224175865352185935702923033378691628187593374058454206954971521369550529793474467087997243656975070897484371406386276362126424574836489452142733498177388907760649056993237010147973097743003593410195020903806377223125061557360369300023404674388997699023452523009679925911983819780055398825046880004735388612387392293788629518720730328117161404099719257851318783622223894921763291088138697559160648923423014778517957175583795726811514127707504844018278998991927896483079525699691102863820946036490154471184841638686592899913275491254207828277313611483842768834674989838073383656924871631990085310267221926771944592309363975889070540186607342749784706814017666639580810743012254805148838029457995837698446240862549180320918954920322401608368916626997094754342311731037134721010089341390506000996524812601296968023293429661360720003209008813656260872378439739049535717597626576999550407058007213574516535403538577505293236172108424836439825853254938940469501617752130601286170153983864884632277244585833581668077760615753835298587131346990697566065835706291504053428203865675402016170547503064314460774261380341150785036154719101348134688939809733525109268481255719397611574016877723858113561010968733794609377051053199597713698465455501383619559659225596830489906548992608316665922855274991516596343505113741432117071192032564168789917780081686830207056229973211000989060044560377112345059717455816709545563650181017965909945621486793008098224919556427799293207188092285239074412880040523035945043996576842834902956228241373320279491618067196271459834502088786939305991508452829978624877436806360425357271960383274494712791413514617959643181888370477165197989428784424962605518865192700066822082287422448723572560030534915855011180743442756544905500598093046991644072531396786697084276516160985215760509459820960359366936603533521168248641953301550952241230360660398527457540777012009401027813207587935851893358388805488735812491768482228803103590818249614961361648914082114003323097231807849172150353541324392709556642974881671810690781438608604540435155125065396972264278395510540127914763695266847094902183383208993985344539648630723990077165693750354440202334854921733343429393357446774119736938520473272248993796148469928866877611528093480001681850699323072399537819384438863501132817316450083054591606581435183640252850884199528275959760765420212365963370071924472141384952262258786808901100008783692914215856499451976828526491055698572098686708745276032623065786208636657782234205073776882480275172917597370994444355549840613944018067502153681431022857791900587684769305180039970951024006052075985513733225387486163621597829289362688848191098553876576895769769335254617047707696122198258780454783239549070548528216116706620402735501008490797759412752129581946066007423483407938962475782706457085648628771917384554345356672280089513823630540254091336245016062196941746489434286453378380928523605970459691579021909866267484644397588463675445722529525121187726078096500348233998200039019176470406749902159186423992076085954155803412658734127438251824009308556411362501891321358152895440150498043848705035216281545266357879476096941301705779529070773663359679385505234540349760766363459744681249514319715393139730370606676844148621725110819723692546249730613085445828962952269122475227467588915920528919155218074270657566580552130102706781420320119622574008875880440803616211486044126461428120292769489894618348877190952343390140202118904623722960699399827447158447917232240242800822115887845819217331181009647396056025140853177666614986830185391378104971135838528410927532969999322769842527939081053132936853380343317300451686233079443977139346282662641640296699897724981799733470419703569950397767636719760906710552369525251543833608618705776148809527746632822230224613413165128305316952957650785988146517466449503683312062011263708579077112517152644167044316827630654255169646832945178686732666065714545597194440022255949973318855477484469512091894509498935259580510263999636065203248507713471122730032099929303135793004817473272795448802154850595494554759263592001463284498577407132571904447876783617970909168139512963115834650303082924655128707550199288714722429588344566925461906384259865010496144246438361579520611335775507002035315554019970740432934042196016351606456105328864615908915941293280741902186889739488619105076664281605362675038653889539343527031464377044553047620372524688874409906954446094446017062434988954550909200802884533250967315600949177539972046710706548967229952252800621002648299561359081585706611282539476402047485065873433663740201518138872900975796849111144691460106225305334387769551911168342902658868376892302130116759326157499111312130482839820371420230995256032452775370688987115720548779904591189997715348874263220920762543082479608447032686771795926585696294601706257760371998341275584736347417330345842171084443255476851225233017507192523227086692211316521805946391104908795747956958083025247485674301148594524183560138023369701376612428080968559853926630945315239638089443681011604791559677760804701240331369624899033156519472327155129600517291290305254884186784090290736835171112436588499478558894242874453559277295916080960452965497555943119499089863656171487906495954592092036276845597991957522439241674455531061188932764018365984898963044832202998494274956915109904613034791228600617433502433746420372441723791521727843582916757702653277764487850192260518428914586980421599986856900817741348684647655732127479304337507993838437093835594234053612179644291623001617310466434310447011804827941110818364531936886248383192200430899566091466338381800616963281320266469396806351077941646832936646193617125323410933731995970946360418380270752773588978981980797234655051105271099664583393958071413330208090566570811010683714030228157679187863041191144190534951589168588821276751077881863156393237049383761339578279812294159697004180868639205923905259916560143331136232477889749573995672930885494532121463146724824677278339690567959337179693292249173839818808393310191898209687239257693193189658860651401972560912955951665905744053967639389748968647479959229117857693238690164191403326668480206490069353793689952627621686349838478804797450321018443008747171056439283157744303910273063959802141079832374120725108777764610705084090754531155104324142773521552508091616318156137392282236603174555939168455350487902178719285148458610339879897767766749204552853376275328655040584011663272747902968675706356695170396264478478013341840755018923742525469195969066859528517561092166056116329687284968440213267229053350343580535463465143574459493914839586486787083907610619374210551189754170392674747126907773624085961366762580776108854636537706856100173340126365820587801103031832673291550637024600640064211444222466416861152934119348793723782761935858630794970794445308994557040962160839460125444587781493881824462124149405736302548906886847738962943496530002107853586998302575427245612364015910518886065413182314986253361948291476631043689462050865293647429886488260275631950136670905380651461173904084484279098450928654828036903952926886973872219718013073874193699317832449294405200439728489643186556060873601955178529652170625205655636344995324245009300611816403251642784712133994052781785618410748782201665844787643366155479203441395018353793792568842976105942802895090232631643604749939618562418378614328428471862988310965869903196730244941967562224922447122218853114772941360493747046442146621182345003752072738805514157935442797203920748030048979183433125283709464127664988267629450880136129051880254079464365905875311541611455176367826103678445581856765574936592269223802782811191070125279550107316165875858604621907087496151821929613892040643690442487276124852717050003659945469380539001389468518674049901251597569734414288086270872162289885410004748747017618990992994797109401127691596671140141696914156618014483880796869437874614329662475423183730702795750724186919217797454922314244464651893620290038340901396383323010023553530124223207314992969150921534705811802774720234582052266031193749711876489647343476217697693535842080743661674077467986199353211057070549168288330879985490768043383259551485094137024891823890061338169983832838348519130370073388375255870009552849778099508010165634593185406915317553566185266243567944139359175576974011059839840269910603971014329294078276196530622279948772131752988244479283028382043810884545975645603598601655832601870256495234251524076529523002394851123199136363307538678193261695205874937324027783912558823196063405325746622380343534166876155214762861996555116091402013776856938860180689951709902873800618628130893740655816435390753768010174868069018066272750217037505472217630439432176269657973830637270475910431335758775597794338518413682484676185701620783175723241596166329179927208877939953738978865876270182278233828857987996973996096156606232132777768898392912207942699585424973033396140914574179580618806428142669138571561138570658516109844917425214569292405559103452613694183930274010466037815139582796752521448880025415270107455009502709270025058448029544420799952648267043590401528565782899916103151922492886263091951173762149828403126038665494493669165299673658329696069273494229897066846095004596297582034211830322399041960961056370235175432619207567586591901938311572400805725018054142693487477143904819730835448054843203562031072554748217302509446997669730738414049913327739419414107916341123138693611045274901941898882733146724074109286552513480874221835627592964575033560894593292736351978967373224522218905384376458883146333149436892435418671185907413244514162191960418512315352740525239200629174904759251715340700235006745477229132925628474140672003951743811647022918821102430078689749083365696943176468965866340224036624908624329229394928417927210859974740727877896645463381276716684851262884479080366763125175557620772090995586146967240915632557236953868524225249199888738525624388584531492343862590124117749123865604901152056940284445841304653934509055705456643495116141345209718137205578012865532453990578817060156282214441687836339410329419506727881691831083029586397485838394736386938280753516351222198953251799506751530601729618645771042576511170460904926337804949018802130019410079130145674097391729010588206798232526247671129967293329426439137058753760503393371125311133831617113622506639441521002641402007499679040811504792311998980610369249519180999255827936305333009559593327268652970758376135329314176679653726533116128364258735016436416467432427702652589814227638345695006364755788771728254823952647859501601970619825198147803329999552503389641401412580966110352636674608768830317986403014674229672377774101265116626562819166929307390072631175532408869692023472996975661338407783668104356891470861611978057216894207948716118835460585802014643638245686765210836540172242391433405214939953325891510247531629769906414038254730048314145287923629409108814852965248106626181427508526006905702899713923096643076925727711377333053456641606480244735394759473115670718979090641685504843366986858517396525435967881762753283626375470963499084697185832238605292409964944230711424226674083088419678437771605455727888298323003108218193631507339218523712118884561492555047044411294747850932586346967717436225065245853721755910556995475137202104290306002489775779773031917010749478324049702540207688828952454151375100721038170353602482537799525746835848456088718842003009276566210383039426125378965884994670520998544410080322551235380079710094299527346666450619729148705893336251308479329200628598694644327181816527722301103254271779542554416541612658544278950413256229609167898090179509144719912676814445156623843747539970928261510730296339779027946145935099777325239225143181349614788827236320732315527373069848367007314470152229964418477149817931555913673550376391545159093470328378740412420432172703628086243989125542067970134791513436884458081004539570318673060128781968280569477625160969590172622775671593243733300169537458138357754354758271716781291139566017200037774335719673158803181201979776917097620958577618535119454965247941708105570610560899450642434954437204270496515432156456808732051557857525904992568802685407800315821770020227022331968066436326351805441331002295961448735153052816394162286801402509528982665251942891127569865196935360828742823452429760334081657653452429549260763368441596479406401860776196988012549932172107492531186886398790585380311363189382811864911273382012830154808863120908179113569545904479895035826692568193010313726880941277331167113653089871822667150235020680488870522887115951755566251736855340884110465405115267992232468873887183391928120929443376955816535295173611624285916289395230653557618651820785130165949224628495043084075961383639496383071371237439066060445962588703331736701457389885153296553112023113300045022915021221260754378861984350792363994051759339226681047187665101069262914946214756998412957167607916045258270842398052016585905057801738801680026368066810768013738847697191586712623798574286532852959271810858497349815037613753704552439839246080438637242969481663430036330280751722720032704609845944453977830695215576436035307345647546748765912297381388728981531997533326653405293137318403022538653009287673143049876627837082201371429892335805157648235504392874384553865415848699059027113349647249242145087319768331593901601599743374432618343427668188992199049665541660385402629584840951770029786395893879957056677285979826052101212893495044528323382384540441034978149834372573891751858325439631262921876220677848865102381826985767227693830409943504700557803768201587049061434411125162218182851387982334127457230737099481979353223889532720835707761217634646661575729083575250102444313699484001687717023817276672498199288899205508703430774186271570152694759159927849068935820914025417701674240550991032936308891193499852187332119335306873269515725433128983408300131806944692189377880114577653159076007909053093849199146914722742057762692779176863240450853026564941406599319622890049227212677860045767553319777800361376256963049094029923899677617991425743068862639570264945824158341214509179938065620160885476569020861145088767745962028003434497130671227680833127224295861384705971769722546274719283624837416613863600708825207765166315140152778836116122421613523980869320669149961529007316245564894027975447425962659060974277986361206977711414510123975873255661319245244304532242742442603884085307391472376982746095731014294654689528522999696303568701230436165995094765864443409917805139771558616969471097788269690509038403344196321860592598218136673575801084880863680244586745758198465010236800467115153832827577568900704742595771596373556739683124948007690167712356406349711713850031783498679144968382992931430495729268835328941518094680696413018506199065424893394292006829041752261813001342955276451856740666621136914545012937380597580382641379456787354170253000450713788114773246610446554568311176231876266262782343251790154995207188109909524556379534726964289078661200149248683820113412572893583148013446011262965258953282460951637750645261226790643294769137341415585643532015148363040410263525007197976625010063989965867549813993331289325945728407586090073194094020566325702859697338182523893909206650824666676894020813133147287080581378143646908368196450799930191032493868153321207387801354450234597053016388567285437062116623876590336200849631020726740910612419072171272932473471931191806967465246573343703778249403577077532495368034043492156523749700523679410369574096785090679540363795987034888661302024091363621641657493061979725426756403966580097274156476945508276007369647568299473195421499410461678944363152164951743071521559596548853946922551587142617920193144102186292341342662738782172198800335751437253082038216541020881622500797067865807774537792476997670639709046171352030927880866723737655601417266917227444737706114240872897581616815687324074199638104868843768403474777551765754734348079846329068641289652409669158312498960719225572042523948186297155835107947214490432738651904763343625214176855643845301342146660380647492746569551897282754734063942338611125747934490383910595689797821008671970410618391525195357389578027219838355418212469918334375347054099006005740173934944895491370848720772234895472983798676212327113790658291843344755263551141029895589805023671570909235949402590149393190743316058199448825523467821896208633585624506938404629574193167998605035532202797438925513674475124600713983275151457488995365690472067009835286027007130702930163283382972284666622157416854221505208623037516045951045277028176828357434362982645909559150210807927957457357095866465709906404312607152540038848530217830798050998893125565592151253755338938930359893982956356323163407772572557226735759106130092181236473419853593568068148231513753156671923192245202168123900158914244504688253438462041360139659251119312441249673168530552866713700066704217981809877017432169965711937913102107045512840088156199879488946335117311468284333036626285144015804944717954334601748183803002023359509971195854993061719051221795110246145652003571126414875235522759420715908737456561253529484687205225296841322976375663258041824522270256480907511502132875575987356706112964795063818244919585868351941322616728746059640887367103276426362589750395475573746569457133803597380042848235316955993066901975672065204239569470927506334807914190069028294630238621587593992659512062092167168251314207643765314672708631579570581431385091342312148982529329304081099997541350660537642534914502663477015007299255447472703345534578707668830049678182216648380058914447770658700885946884766546377795003205419893421845155325488146355599585510462314106947499256201284479403212679610980351863927856041004774664400957400882914673957336397220011570660007690672268261124592957546221335600422231489303303948621338847859536605506967553007788122540070613671737048690647953872541106050166101069267968845782768022895181652327429562645749916229289481406536693479427477089509293725537751218999286206043158367439663255871147525047871026163175321693052681054710951733675178055256771162848314908032063617450642629214096116158731411207674844798051472357792097948781835517930156794598497117564105004684409565237576696929646755859295803864813470778734992617463477547563377398240964980854608391217397972034007426075444432618540131463584607556482113597008817732357490019092083379299888894297914124026429778472061107120936525599955173088512597583707384620758811737888611966755114775743651471834962593613508593126968896629450140818270707126721576118502257536643602624907733563601043714994452772972175068719287005238954540080448435687969501872701149146417036295468614461532399662527344845841963556165593441149727902661392284685652713740741061755337219467143084182381296694484873037192713692756870857261526486956265022502263880184240066791525279059623165123986152514221505485733858233805382010059238065535707694407685429364717080346563392607187733374924571624219486042803268401499452333234576941654717969299743917321338421158654678652430056738897203096382264145507892315048875789724216662561196992516832259976440889656020841973221376326001584734696685890991033475284835082248879088969929628850853698954628530673827102563811387783064191933160493045417029040580015074984256349534753224762860255548649313980623191933578418222672201594767498946106926530480442362843889696472573147134727198941847195733225470537385096836735264389746896371572286851697295415505706031206199332124570070575960533303403390540865033084237034441917952507135997653468570916566480137576452276966011731878585638831063029696996587049533960457519675221321850874990057959506893639579573746602034198053824799164936664540539168847314477793752275702202142569615880916184031439972875986996536691750148087823832203831448779993911709529314760810899352511461013284535568428853612928326936700604577181787911674423242397832722704577140405755260934009819453701843316123019613758960652804232877321736800900921407125859313705753423873104174018609403474004825433599606632742108157825928853359306050554528919015846380598837859532767073677788753393163656770821989503744865146093004083099131778962859316598340077813967122069855564044654870647334518429373341102023775659734353449979717585510431078024421981709785477704164117730966882189270497010548157872142588117045434887322720074168234376916061247845398437953078958768908758890628317129545066448989891324057373422986768714514473971846480190426887583738987039304628462793736357904024456720447264731873629374506516498155225797683305894246976318352274491600983318059746727530876378140576866216601621207261590753750661479064005438554436570711144984021515996817171605938674322006265045759226869165685106004741001739845721622322268964063074569058179655195821037083283338587973231320312509353864588297978957395657920960553259342823074106754768336520585395944485556835079273842314614478145695104419709164941933484663163089659470928310783742997928688364603654806688074881712945838384646014032157890917309523613976127665639567885387459698036553672818669759622237072334023651107918896488687946414682389342773200341110071118266091372016036343383571495334478772200362094658047047096562158518329875308987379219620690205236858328778016018466198714724961824789454033132318343235147044207536567346612711160752536633354362938140060348299142253957717057868466330294564929091670177356795040895847955850578583202131482525004940445324551029298489242237422921208167771010184481599386157695478863726279752610127053253018168309727593110353743909154978442725566622867528451276147061074233983279477838299204348677455406859406618681146558306807542047614267475330665837431836434047718554640807924922250046844381581770540037489716691778326987898220676963893539094048265824522910490552606590200978167672124283272041961656877330876526215467956816490336975230101246184534994030403496075747552589897309250304362954700258627334415952273834853237639582027582501568045744938467701422911854310027391303422580390776625690223692407606461372185791217919614770208287592918811503885293182887442354510685661909408427535066166363536705541756795873597951260186447137374018410369108138438570860784607083407676548358487199079273894676053491734313263872844835844178138596825812345330770419855608453108823650168683805629115930431132343431880675090263291176750929353531384234348281105283342496565285727476531719183785276140551407819967288290030619415666181167057369524357876971797900643467410372786561414164012019452714385651544121161241002779676660390826933800936660624188942334261897240113410715990245807785440083207479088370064364551329222409004781570900647097321090319372540033600368606232415273896348055644368365249012985118497341056015911958924934262481610990177977576932676860822228908100654495387510483973995187629564993615544885704841744920048623316299571801055895487050208751352714576023324626243951144222810898546569853495417515860576887111258749921940584082105979065749334793885717580021291066228301226084479945990221287808098764631839640059833410002912856635469653452555299148575963967611994976918784648143435231165595102874279395256682502091492633018530327850161954123379144756189317646280286242610501808680679425410684263960105671196319525473851817348104621767849617603215945305707716860741297911032520514967773143337742104549092330345458575085953398247466862656663914615786858873886585685220977756508126008065592064941714880132723088449527863128374790314809111302066366911053150593651402746970506130712264051878030459691228368548392128557604031456210221232430913398013080596743122405747717496756073945958462810116467022855114814486060168133870271024868608286852075149133613860865713001740025924574125024246770405601962135620440758959462773592784176151089110533181594247246562927456566350689643785317487464880144809506341202136567832008354336280650446987684884429879458791423512266924781308810693574679375301804818934750909883995132788607750840877430108445645601648037080444216034186458173415686400279966294915910551607698318312983976588948081709662378795404929986403752695289713529550792959388710671518520689341038044474225328269597810767007550595249390010786275724404504308799606707569463158876694271042236395995040861991438603249861554375440961355258712747859691070037710522526131602974473136162629786385810077056610503187136969265771989709589084577285855918232947501451065070358374712639091121602230575700640317103667763793506474326610562740890360080622410952903487870061513738044446118728959672959572507119070900586906726770501502027896672183278445342864005697370847231729036641979967445577150992045568010271354416719355668044277725291717658030578412715233630161141112302738989598452840550924931249106702773779305997273129208685967567368475307144942188203210744318042450823200621955076854410748398656501544215485537635443103347676402531604651286141442303173176051242330519267505875554847878417447110325309671740116635366034742903894854107151660929158673130442062600656433942623337463197184860974313847878671812804217790039950593020436225156118197751754470337715415019686416425386343292384810210606617728272198867820293885121242658230982782449888527887694994491195745089683931321831792784172190723666983375750951422505175027428125159779008343053488002317500844787146744506868725518761690715604200694532886662372771818857358584724254289874051384617517976928770686015684697567964907115584180348021447816670655739511070477730504024401366329679506357795951977074053441106222390622906909380693217353821741422987310164108968807003151252509382619521818330959645914708466780681260463745884512557100876364403560828363923030632987850422996538103340928347593332481327325004833014776516615912930135054514914489435822538918894584322004950192139253416466603374930964250047026379513530407811363622495936453373261684112330575222632597476582202805273674087596693010173035239740388867529262282745782575521357681431726765841358290341278416562992165523083951894346482771224074543770508315334648607874428365733624764349172139091158421031892360853795681056432103934278249798434934329116085638332687014282770587143849986407917731330513507529203998779887542681945808420960267575885264653003750827496794208998701551058900268832993310311142856101882848315040471079646266656173568807046574535242927794618465810089805944086399931564969338352911064699981475083543176209102197188881465945392053691497692990107079058177169461863092189718694318885673836539938824038117376062917510991493201125153248061460314947240589426282128074851847459349348244214744700216700006328110298308643074903644022536959992253494545199296574827940604884990387034048659460891859015379964258656531785847402714441023926485552857605381427561943266404692736983355535483591433411289539694879952332545024811416024494224987387430276377936352568196774753362045576234024858497790220610240549228626629931866771235414542887744963995100092553726049344445255018229119408632908464672299005129797182917865018274322524436874868491956760020749139097322218473120671308345386305281307677008993992381894007371047230337081502436112614714948462732047173979865733770963410215936669290814111430502218702293323621304143073613443143305711612501760346550755509959386667142685417447485429747971571065458477480051235547460080561641971908635235430050686726143482380870571259673448700192107066295542097944606687264993989563533574468160115284301646462383863681461906775314367246193494104759819025481614888882581632149551570277055049037267384460649699653404916102214199804627948960452699202667044277679466146532689049406488427298538775723885139681559872243839199746233997109472448634770303029639345662576566838797505942633945825783328302485033477836954556892595762687673037091531672819973963254029948224867881615740930767243384916651839034981627294733863431727502388515327092225360112799841397331292377672961908660973249569197385474820499065695886189676950726323224008343356663342931775399919758793730192164364933678677726259924561166105482305853653181747323124824959694938710055555602588956010969278087046774603565345041407731217823422054617786526185096842087203525646744741663555142076858309870060198342077922100519242042104940455684225678924630133399259114491616128375162241718587109850439401880443624780242109937980731536998285163602270914590140919489699449559019117641377486039320206779783854259990217447971273543529189783671693471842284136463881510847647976242699372841056352788827958099972003101003757100264726605589336752752696144267678873399109742539873196555584085132156267970126702102702055859767312229358311122213504529747882704341370849324644523712885276607844830761807620021394427798835854576055938082876617324110616156658316785582471938885981785330525140697436822740946020520268953054014979868582382782989275275900637869015150276831992918789676907017463180881526059836075162936597015763827719196340749685307745573931261967706187854499465116415477837713315884845429304909397820651586095208361777028089225220146581262256758728238728756548909062925462752388485527145112581410862791383410359588242385401069928500508266540909758796131465148446986021420662081170258860012403519231490402140246043573674516206908427778786590389923785231188000353761513674760023808504136101818125495939838641307245574242355060352319551871032385689321676557081991038484071410511237666419084601591067289707598369920209492061439967838627422818769282327903883831509283072984363311711143711703682099590709789605159503857868279262635103396022118866858635327982148994620509467934572139394855270683569290164014067346647643075245516245785791824362900743872615141824566491980086178276117187288116562689604982590209128282348360144672908873971054407804863944970454205737468461607614005862454761086920410806122311848089427535450337624875356938887037033525520794291338064209532140979607696305898151909158468702597632637425125419957397153726806127132420955791506026952908318486858358493335881906244283524106297008829055613595263386974915774212872566847492756341581689119085852087758360276142607271497924321329907656072581630059998909673877360735158696042193799653945164199455573121468285362300084598981853087409903672621633303742029224767888107150014242310240664015589150149310974311833478741600711834481320595733364697496893156722435785098615277568829826871844689339389190400298121199187187334042664521621746442970814006352090810433027827263148297073974999474330189375229466273624359594944160215701063797413848477095835845127068660638364152159255004721726784939449096157407499962039148684118077875397103015236312256330165397357142088569530021385020537773851184977307327881817472560978352632334674493545205609578800102808067990359687030636378042247705781333251925704210712402783149295420195587959481544744776644185178415885644703462093123853296906023718185840671071242595734190563978106068093865918432622658129046635482280239364161275256956444138070437060651261587966899537775391863726203418678778930151792163902376778993889835071156912087817936866778969901895189290954642033024663438353768576119990958651829180040807445379632318123362576819989827084978044055073245375982268312221434309216103143645429648805329448479501878664488137131242581383160744769228252624244614422294951909629109669047769078560141990448143479531195593726278174222266538825886736677794686511017289581258821505109480281373755959827707397256720812360238015739859507412884938827747561559584577856962639791722734973439108899702953519223526925962648631354051817570509301326194751563113988307892940429564353269503667340979364415055406517982585450551448328183329761016570331511062327184093795429078098984327328841273679364987629525656986076354938046150916704467032478895917347662486913864848799997738763142311250093564544549862702122485291773385062907830977149768736028764152015237850521839060493153912504963475796517540014797615553759563053631906762223446192188211434613669277425191449098803585835722266366496884536931141174944635290590633475932314637170723042493289352083749765638851942364901257152987538226335880848652428779625902005525428980595680351514131647809385835648614188057865572727180033189678556372055424421873617208424943809178327098620196031280497988143188975385770791873726575273077198638419326312249679540407590546369410664794894857598363178332107631632389219678951280593993925884249739350259141365155087273431276333826980581882786834758880669287427983010121264435424791712460652911550916769352818971229879888699107508790517636906795780591308576030073939443152789555606076653379375011382914635328746151239694160805889281062382971578006325513705062617409540395679811678913429782624408771854912306722258609166642978773693668183420405559803350678594542514574790000521626192933745884308057327968047607401549393877339298144086088221353852011197770024205620219089981357708707942474268647161784964939542965814340349347436654280987162657509690064351441557789640938997739131159754972305959728348472082067077711764519993241000273685187663754034568350606378375027384010129355716690619020378059058749246269509592944994602090960708988610492056624790075598628203765996494734993054606283462082988909090833101887690937770327912147938274117924225204700808637322564060251119267277541406046474663045149657008685715629826436521330273801213667713114303447884915947896665522267218282424568155590134531235390203221756207739338103054058362241956158822731009365459394045406220298901363399705642215246115732441751511807559813307315966769567472144575348491895185425321781613300310756932866794285103777261781264769054127422592442553883855911199553286737944296163105558405950955598510199685257370445321266131887792624023438604540795641223750729201839146836261304793965893153707094097363992086161527851262308372919423270422794632437879157665626790192040686797035973488134434353117434935777911239711080269239070060744450898721115489048472456138861625526539561217026829988532434488535515959654620608738511218669896518951909126115640082378547231433887750656426117145156414943487637316346199387833764399769826620794965754161786976169447101146901903376697614172113986201688601060526745727947501354391535178100866941237878419267767649850916348465242858675556880151750439884774883428497297542706440595535524264143084340245788943060137017907687232725330544811279689075245643913256242095050886762174226652362115443880345965123027275301242834816383584106676453647908593379478054518403900692783121315726630357407808278687428978723422950309373271055380284014146554953049719904917563379485487648731743615204546846985942214644267173248396790877543492757940106826954525273949665641324659907625370421762033123119448427216445563949764481365855699836641118751611524245128338202057759739862921629545749203840260793367366345718493357597968261808926555885184956988665853907960152786206752811601685017623018949235242443315942359728965614050930878929606725227805863916252206863089067381135847400889608870522895425951864020614577651180318665192928349517927367120482534948565408655390782747136995966072302745364153270434578928225049534926707054196016624798741823059822666436638678007236786123047313509883980309354611940408462783063096470127806816841349573310278468203393510716231347203156430167973403275630545966129670924751095282276148480418635678142992483632755297577913492563232926136428130135110391181034131361668692107588560434048685214963132882769280980716504630725792257839664872671089579045338922136923906732045865835511252067781307728916494265534484203791793414922945817289148261363035908491444715842962705182796564210113886377366896412054030149900850680587748894253702653503650133668842716636621360035599321248433773119896972377950398207624019810505040343382064441778769139774056420371722606419515277862269914810265299872070087545680231267339132933622305803202589297729976385271961030826264982099404593356180225740412543345375316471467147864680230640916650808844356848748105030010460465319918767476752378303687760052833550427276033344560266928867167344780896738237416991750649976601086085290128336744815883474281003366996912859595158184387352389849796419711590788335964894127271227798828791659960658074094659312948696802991303045703255392153009928574248944956070635412864312310119504442361627890830499177078781503088781076856814763870054464454368880713731204091663837651580388048948636694039543477979423564808045250613932232201167163144643343708171715744146268536537591352238948623471194154951980685947075292403439847535017314360452478084643556791622269058668133582467499167514376336951033093971505538633683060943807979594953576946808409361186459055978646108896316659598767181838136141786854480949909302746457106044447353496981588342528908836883549239407028002694629251421138250788433148844382834084670425814740204802340762639960244053012473320936555201054419439968603727486975947670599581115795005495230806009600019890074844372719926695825440023562505965866834278625219808156106708180039949012471991602007129656660455091312681312395996799534062716375465203601647319568712813290481400088655907064909910803585578502399777834523560378344941356320040315563664813061705468576520569003801993073806178953359324896101521634043207117774671377593094516994915479159391260539792140649850096078834000672354449190334100489879895976906766432779749939334694347953299117148326972913142590266793303197705051744749125853664050315065010762453903344684860443574640983723975443855740049544774328361355253764909402580378820585171529395777584959045934328490937869076488668245160306115786130721999046487330980782481005707444735887737633186118854138464750401214406659573360737008480465883888541740728580884654831277747101099957149993465454306573617823767868010786194350846429745130129819856166499317976762454246032081413073663188160505679414169829170135669910649562473281216075875844589588159151478307906798874329292898976236451942982851510785631498090744864228748260134228346330777833714246369041968314589158443351396063632412974296110766561516663518960808143555673642717918065534097041608494111949557420430495697042563985389890040917761374949397405085232980672940848225157801038923197542515865928994558868044221953004338584084374291728093945538105410761344638003642001181034954957327739406842825684715044594431079931329357083930861557659992255175197037853122055946221748390274198819854984906393570664709941806243517022211623111006145462503274728358112393389041772407033635664696593397313316576053804038574033271958410779010537764960586860097410098933394825732315823549758283539447761030364042537206710728328626060808251814594722437089398422651994108787093201327317258448313156258788058009115010340008952567476949310465518269808505167796258068307612207372755262770307193117304411915587794473012688408824756473217066739529230455696553741078544968233788843240595016036831178286869474610842402803899717571009582658405134749516340040731305955237668351133992716775073443945347669074309943182472541115300991662937391139901466069909218227277528654864943850155583126455589647736243863539439545340277294536380853062916819051264677936012863976359977246812352756205842087141584002190336881487946409168746427660918564836148395867223723026379661319510379166054452181173026268347122379481999746843313910304491412190463870136724520467753045698367655755996762525935929030259356079973134359863662661983517352621705121228399629750263071534640203790581717583441451824262753341252454513876208779195704470055418737167777216690843218851036317904908089418408947871651574948793814629515693925137856171200280007781267331930041261179702909140972654101795558901003788145717837606482384187147801990323609171325135536242422888057475365092317016196985440612442469768417276942682109727299337816754661770356517509937373848532521298825049752809631554304057308996484621160251239777171303141997783602458355101053777026813411087238046255812139187368177040947150095058991173945465150766876033880870075346191575388166850230541336738642807563334407467373868389829074562542447280142000189638298231323307888413416191380515443118983246221178903084621082594371527015570281682824301655017182504973834804718288682183855526215446056522780048927928058326084629105970349139276366439733769933452595226711673780281188839513131741078751239478856109955184511623238601930920149402642340461325728224099945949323615276964962739850700329076091694745417835730921485431399909464987166470718123804062786545827536641479603725375064927585275092587994851272209550083147569700290224154313302280402706465712026349425301829188605873578291209918060336263403725811590090296307485279529035599387311942365427640379031773425243703159801301993466264523971051411358376870669156703493578709326727317219495461467765979318479084872193649414793513665886636340310806542797608884083392650310557440433491801982967610196420157512522163979718836572664592644177933692897185244972478365713162177506203818937070548933213275203934754293165244961040139319802783609440778339419000142516695262879187750824118861026657555059819601943555976748526672851820221491084046929015224836253347759812989348855477207423750949453110325941552506431002687806575672678279719945584919086378815427859115757448538612204272809211812352908221722571201148745816185563937637732404074980383280837242750659254257995511862051099612606178030676810930600400373542317089474879971429924545249265503122799069963477870057715198584210472597085113337055916771559329702488341145045179955192328635918908680282538089457996545814807209692933789338093543282250025446611013735045830701677487966005019111240937318594750904595610201059156732206112106561462250951668016018291622714190385201417281167023281518836012330341006823795808825882943015455967975523857181972204217702993668628608874704177757051811296711222590375578783641479459446880592632593673427309982394791447109423882082613836915437965546710274227064442425284219157640010254943023278883273226534742280917423104970002282962676783852835235709593903671980267683918060148982197390250505744993278123225105204208622686022864486717363736546468743061712699441095511200789335621933056533774591047559874607941817669859139443399289728719405938180296566662645669932695269754833629572259330999941488051997914996747779310235353075144860119922157173613494529036010670072148136152147697477733998655157600920123719599117162598186767853456356352766241099875730045723469909072680159509658297901778872580880536331932785345249714925489407087154651545058008707050998160938774177609755796953852316958528133970175918226156288918808222205458363321618894552568257748762387815236671395287068624251995883445057342547600166908813203609801143520701793346113750506011046858345686520893100869222219697845739253993914209511356439069605551468746094266876555936518680863998310365408338710173118559146313920951403953670725758520996655798954289850959492846049649077619125327318443678108269597989042294927189379120417275416920481736281937489442959807245006745872100946493275906039268857478446013572965137035659548362710634840087238621420942303946161700159422471396886359554598525478738701731803069335735325254632378138042029129246042179802834605002953800791163848133120946443506058650456700797842371486307989056685074940486655764897176860570600501723299343431145283450771636246776753942452650417352554234318754559523741740876607187395273820655595901065000665559408689046934517718454072694720011930310468518952528531429566387183839169582273918753109455504174986736034423371418356544268508952821462035540277060914842532562756666236224025073235489841633900044265188263954966917235750187216074407626076324742776917162737484897351991243917838360836653145580631087263102049367673751413908474621160266241280931319008369340233669092687873307715245683459686138562602074725145652877704800959110003257720549439359577096445889992463762985296522115475641127256937611836684109380170227860648933118609170998306858359440292360350374660028095310291689071794567274917817547466029946500833474966148968290107533944743244254262866274108487132099209106359713994096153687312547185651177559173052110557051236079953806558886828125598701386080118371839775977544632695647836673639742110266803373637028535056514828162106280497564073454918574987596727590689331735872831517806242522964563481460730299308522994770993140313932607136716549521024516145851226091594577884609650418891068194050413948737628638634624010143202211202551867966544293307331026321943029293833184817818004253387756565860369755256764231689944011808911112938475713884563427116598635489934663095959868019900093789105733709292783542414512595416054899812871491861966803112659396848176425685184236732374987535557981680788018240699656296137789516054972271861934393507520320099935340438040016924290485600880811564988854376841984460097267221476670416731582572955582210992323232420976870561726117378693498809917307579797655478289188987610241322153975074211778291454814087502021712220762429776348600308377458539594066262481639209371092599282424291290022020609478511348488279428822804682348323167700785429553223586853768209801021666548193895586339670113303394051767342108630850560450004304290990448194820434975441052311742535920054750757686480158337039179108166595469593324864291196809518353800078208842227994106180924822303797639152430757921629623776660314523204254084450209395093625201490946288270868794314515169854023205263372683907621206152219792924540607652940951893660123491343129673782358910727969836307293557984277627780676887803265214777286765000323330201882305607294620401156928545296723536522033588307321064123709768972748395773523669740293481564165920122482726091148475464081920801693350942211156644650776444955648205441262179584537478045007883421401781169384663582213825684045682537826395192635626460957783428784209879798189242952129518503901051859279910649762791661668042539830587791785820264062983873990241025773977690403985283815711636546258468301234008680046442242896188532129637941587703225148752309458613480045794160307179960079216777675730768525449737486901058165367508719217717145675001346536455952613217177876163887206203874716226516149833053592913246909832600701871201915530620245020315449991792350512589979861054793747858259563117387900422754776107579307454072433022217737856558330631957227795863623802389708409302971385253175927401427737401576285827723155929962645191937255170133650002984038916830165560992031319382997536957467651091980363362552609120115723722262103247224688911944219346699734448247434830954089207358688181522526474372595486803346315815293574080722147295409276487912097598929856510277279322191700269910643997764742243376387884976707376798590828128774778192958157871795221927675613775266280119412407667406942841900553726982527902060359776087175496780703131459351284744899091032373095930047000786903349465627852049609893291923307480320108647870507553306851697915656162491887550922590346742811114079267512185020156705900574713384948027905785444651598906884986605528922365196325854472928642308517393758859928929256807214778562016113567026398843524260969717635549413890877064315164605005498029617813683675569402408572319106276524660302481593836458693434377116685789077528634746994912606178921791084312439732709521139937416825535089594580014640138201710089185631664826365814630063332072273339305978184574566555298443531949490220346066280596591410870553226373513340978090714113811497305215817705543590872099718333874002740511627145030647964652803472920066848554599814750394290666191847434466137825733095441838640266490088233798309826003312055764452054299124035541331879118739941758276320128714717253480432912553465683667771931830854645221143995327676958289224335435210472307139694930948133303498250486186434680722337338279577406794411779275850456151265117398317667002298107327006178861323401181650676322883332727080373794309117911375154728269343804241853545608340915879366543347603048097792778776634721441223383401033027163130030705477439232851555583795241449383298588486189873391373564787042454101941808922066912382078226542525873937041420010895968283819666249961102661424059343429995103324453452904856795949467093406740714383401855233435884820909629281331045216533585226047258371899192737703797049710750454827103135921373701978342209583358815685182949810521906875135453305698125302384361802377858863633439912971831796856271593041810455194076245444122924585108798030350933201206357501844776329378989650477629520373105530965454026334482920394851795927126370382646452307371679409107484909279621385566390903269564484086357397565322442126821381248446065454230494130494886678284339807499885238699637875158115549538250642183142633701228859117270521274143106714477151314938621084448373672112337147858383772723602685043646740565407923245529758023325152006664774493717541032206677320679967490552994458834908699339171307463734247514074016449829664113114298494786440092921438635966852590139798881951354071822053261432639863669965748152353176283585213060711371033193940651193429360622140573217477398701999586622389915123706652056615305538424959717405681132367916166801304400702147033518780319068977377976794843777084256002708432465491756396992997622589026308500855383054570995371204463742293022991650835073550055299799173939750459940122159289547365131172203117105399169264852924464522552595681022131029345970048891669241858777497840074201084374623714559205173110615780965444943854823499434981161816534200275925385028138428344426500068761957508226735634143273998356384668202457804961837191325387908935557691793111149538538266475750586765523981245156920489606866977922989098780293807743570082907456419618940209069231209291945143903582574917561421877106984740360904405642122618097111285507767492482575245312610618939200449771921370305400971878555385209783877065775709000006316105282996258962228021271451646604457939902000821699591277552738044125247041982641015438316152146121177960092331392368083288755294676276249555278265335637764538485790324252964883617841390417859263392922310952428198325380188359458801243593850218948225492031186494103859421700976597068031391100784021747733138363046128990366601687111760182753263708361432066626214760242000006443726842496432257250297372719206232482643814819260467079590508284105675340192405835763855073023125260252483816982285397686339560047468308363420938838006934147859364651831230874816810432516585566694720505815112928340867261380766531393233637363037108547294970379304623261239524589556018711753299127912943009179485359850118085301725926666604715161597407087744085545582178767578748342240491810197022490254865890987907496218652729443086785551027775202784134592324839272065237497747981062557492728539051501259893350938384957498233890995125151488005211960963899074663080305954089579401793143248070289724869374708067763157508778685760819399419630467144502194592851949421632168874970703927021291479823424736290128337698667656859958252829687531098888723727216172414431262885142373410765393830682362272372322905384757001841973508849480353434989124545847752299099373325941296525899991545654655648026041333369231547168485225966392170409754960252263690166276976696473856984105403518153391015580987459726966151236350484830901717573939621210630425009318696699464105748124494702705842613020959095352297155541520101976926090177016254783055250203753278465870985333961908580467889472850866173311374200198664863093369080579481510374174585909806962619760009638639574644169653744755921370889305731727596379352678009995266969240245198965317800585329001718015773817306454117492127357378811889211692447690264555036156271400243224653455532783476774441663324017213560773060921849919393547350681028794113923319037169291610706461821768612239445103661173882123408794053302451236109334551631205010734523348697637229234076958385581591690385087932812856900930572422581796705775915589314535188817181391279143414112170643022725475205570180728962418898483723373946434940140288367134658880722462225467118578084751259637882236559075046583115900619711993333028597457336337784799165371852195865433932501763142859983228015234985917958861469984057564325840943083064442747219457936323969938742582526027944640039706630985031107486503788046334559848344734923312968934985647862359042525134916100694517249931523502178427385602142603159752887420108586454855966484385042351747970207951483527615765288415663292281665230380241163825252041202241854654444228682220352362605189330662286427550614847579648802873484938176554841798285658715883329710319386824855142574124506364910039756144761490772790954772325574771385344729737632137019408869632327440744489297743490093815389208045565595027061433212978956601355838294300757488380256218670615757394457089538885589203351235570210145827044601272864150688778586197074348638606320783624652087273737480380044754834217185053616250695559630314017974113999530302659570557080217594369694818043477037210329335494367746516476094962740395811278399986708261903375723081489111796042300385807913584673429598049072178172915439083535980150930429787240864655991351730629193066824132245267541604487260260868323174158702887901820790158494937575988593452182546351283594292497045077667935779389051882271494616617360592910446459042314512110992400904862169081438887820715841067777848215793605613337668140432066243241547836990550226918394828908440309454112790133084461696152435668524253432198513852484505094764601501388646456852468978407025234922975363094530283812787187637667322676214292388079567525286936604843723020652296564965557268308236134128103055213738412832294625829568847893196290198908903413585378337006908760456885320477731443941476842714755730984906587325870158778680980543891311097911255582144144216195617792577902910801355243446954350595174026689547797120959661090988777764426940603726706188878556665617042629850844580680130009055077105498924299444832073281670918864244567998267325009371528484322101762246439849818162629046011180008595318167791375747203027933093314449201124113918777135669413752541327777765234825964660507272990428598922688765637810706891912320909882577760670499943239149186135267942891930960577571302114894868548491175649416410914034455827401038487301338137703918202304147873654289771437286609680183901451781142686818777933361813933598775184695462677776329668936113320593273087651419040170660695065366154769295434689182895890472266052082889775622562428308777419418514194461415730780807251097436548762691267761580677105449633168194674326013579504547698366790075877782935315795328021844678692716265321185331142132885617603137749566432656490180598954487186617148916477260977237615768114600807620001356233580705609102913880184092495068580221168372652635198539323792574005262191661932505214842461133060110619632249847121123486123816594698240955247724354768212899528707500866356442419483346910201516048317846938728304262891370934609998750148485758115686604417718970744679127254026801234059135870130558656713636800625122406099156558629047895340830241308553556398862041933366091092932246417307448799777132208109668378456489128091721631927255783470928545571361167223187090861112726880554693121627168281091770496468315878104196263880980447724717989626385135114815818069907892467484381729967335226050002290675649681167247259617309513003236004641909602469943260249311866743658490815302834337265158264004758658236305536321291277577708906511338103855723826199949445976088093338659836670332192614464270123270197522080824548187940760732695944890300837534612293364408557728670098761003612075551587710646509187916361148788804176327331787486762974093932459223800577479555201481492682440851850594318004139697062928555677823176686521705548536288549593761345203941604165865036022661837667854620635915524083423204357487671664132975338330785790093618967454186459311137864295549841897949810517334764782190873945197833523435776157306149877488006555721412504963962108691664933660531902048470944891513670840102407701482927943317675717234507655338896852169492023110837719595034946501868984874946743397669805522169642017789338902945952137952890702463635972244524559046094619400778515083312912064828288469009874008219414695417102666015231558502825004948046139479647906469242845331813731024902012931498762663131665673956482216748228668826783443764145037992769218087059405307521567595644497608901648484296065238599428037957384008647884403052122540689585197319419420461942076661030602376930308882745199708234679855652529516626092884125006823047042499514921547715648995162562410033009520510515946234377114488696758311887286448447189164281316305995781295274713175697959115370576364673754710746098152746328496017785597834186410203880855784298916413428132418121555798736683757779531384051615225262326459514000495694945400644611979742858896071955541443474968529547394033303544985090836026351590734176004451178287243240393313970526092481713739533771123549605756431042339776542351251193056154948691580021942051837100140130958743708106213229223721010286056274821986983713895704550802396123697853087199952040422736528063635303173863326480392008370163247434733608435158190576547977667100290945228751711770486494020492571548741196927469926717344080693232953406484395472295693258517002163514858756672117586791888272572376196901676991185762528706348659589858619914350032402348965307760135378645642111065371754018819679451579788694590633782901509625062704934455620474230218898614913060180550033831751763499017972717094564174566785977711885067928941821745063595287745319461826705001243826675210424133337277559571891242482824766079722975644770684842523712814820920556982899852971045269721495961518060345862574517905280710781607696525391064660527340829411021052055741075358729334755688335163861885125656169557356542517043446658823175705800537185163755172900732033089746179624182743920659989208659520673857855252261011891217654918757860719794940736620971110534909578461253667415337305340335898225467799111656214887152751688763955580382502036645639409216229592591788749732657971350183288704669118642162569622874441375306125424097277845161242211423731021429383467920812727835292661100690249186947729254978310935224239830248874622853122114870095258459457630130431513110735860023273046575311462732858374132593338636916477799801580076474865264087107430740531589578257702165946414303547103487652344573915765276810918992820937040232606479256841476775464554941152363188391427989570855759320835512553030649868995672644587289862042717136833924166593432018153491185863005832415095139050544389029344232054132390554087639744726649603444510186020138707194920575881821613102477859078169761197893350352980017407333956533860482951335501189825002374543826391537178404906651275648884152625751640251135384823509014624462002699106618241195451577679831086190506686616243063132524590498014978457725885136191257494245604193294832899835085094474097926449444705618141160769397771482398011801513701118879356359893636812238131317011770673417014246174608632213255666627069922494371885273629499565539713628560935750589400598824527927006896548741911050598417838258471551569793508345757021761193478154632792956790478860026525199678144590980795293884281070580426913036158794504567531532829245671557676733968574877932837001346333717988821245150144164376517268368702202093421109825475811148237055652390280646589369877424943512058707608586126753787094235346513717553671082589654810875784835589036453304211931625728058188069180487744912886222334321098748686882252896070127201383605469231802688757797983840322001483482571879030669638788885373698215944882225317844592231948755075966056931188595712273471629746037549054510163349783321740111992615309817748864724870431280413626848478718702786705820013122577556712490209580965836587398128624027614631462567143669300170333571707392400860278976622807662268953734161460838635029203404666314284237774130161439883733550548935357823541224790227072704219202475661149334674660585839812445166750935129640970499688936661603273376058134862014717483407499941143291087550389660318747372166180944230344476744310223061731294239985881712615387600467568811013765820819399820746138904265888272704221403421168941141910468042580843295581095032771365672584744465285266459578575447669975561645727144783425687573358505418104934626197288770629559911410277264561563342635057458615228568938047671102624150869237661370702388672547431519102243526254813875822569483350132413149409535666034176875585506314148276628155168070375337960562517584942892557055044875264945759034624224630414707123742229416491284794761281054361045677212776386894200763316047137628491235170116428821495152133418698256132625993753054433925300394124107963915598452093046067818696090417463054787810618173110981473843544602416900091323822331767995709568552892698336698461261419329351870118615080177320551039635546176055742049675174220475904626903963654902987247156045181889467429010547396541268930861336217433041978104548929058673995417864868024198457273753503207134052039654545419640587159031203049864391911655670223710579683481198889802898376905065312681654440460085504053109101119371492013757728956656856158478473817622756937028254912764197752865133180125671259950572349423565177221801115452451212888870697502663883219126909570671083995678031510965455956888592702839399060478552440159821980097100301246039263547092085821231448454565299805817863985081529477141731836687731213639202520505254678744619891234556088710548658458237787185447816384602863193231052326015360684970775243568494015916449192157376188793778659642932577810985576739445292761769342498224084599775578065812544666769681848295104907356030341241376648891180587129229740438726730024707897468077741163667315204876435488834172383823859220370103846015705790058480501442668977682277174231426824388072377769926293473999677591659879828278357656772746616464223027651432057256473481588633544245020217753723033147621422007563192384304815548877446735724874228158327181750479604468991767646711298564339886974205446733598514086312095590216474964085185304060937856278753772652056084065494856455765912574870771563334726839821685699049759190320104830833929562189609738357136135279458661314730360190682523828978876328435107394694781301337187453100572990321192347198499769833280003025149087169756895688397025194905522187672046064296032053758403511480226137634611294777032942789017293009787549721955035281040010748106558346367604309139355507145412411287065499966691347720766873132228182038783666653642246875408551530956114194097178430022871984949697860914588992071189485343188816202317707491691022379490614884612309368425558905563212549592659125298512085426759990276922686604685595932612686959082874803532522376448231800268445520086724839508892185999903798139088240245450508404539887876836793299366236660679216038620394374871604868459841918791023052897456624145677357402811245637014714087448400165825568332987755254519256473396459897885731938458129782995470089371764532523377925277134030887661118810886639504413047474238531634303137802153948010407764274601598267803631005249871659875084082705120658413129982610255324729372524367806079452642382413071902273157245098852447223068822960484879598109502387174651148735745094575712465039980066087425597117404341314203315386961812947940116739145458519840689851390062924609422819427123408719827744235994598056146678829479210377947231345323200643303725584918529333715174941350670012638824361509350833774112696742025290659058986942768294601693674207368224229954509165329689756912744063089217570949638675917644743574981998317150802249398990542284377604418329142726109312144260614397184122828773577221075364828534588379030306487228678627413588588310942823824711108441520948992365499593562032246978694398916255735014975476537254323886572839673346340246111263636904590911893273224425962703244752715910684602553586345244281206174073528646489392683154266983914238007768352491733558952307143268483170439978720314795566920924169974035011690349405716815733423490162161807430995155285881176079703249900369246393665627380655626482981611671001151813830055103281709988780933004744221876992123350103895960945737670223976288866269223085323028747355925429927226816845150150277820593956893722307485994554372763232965322656648518723390645013773634704512008546499736246408578332904961508131982764656181292125486625308062127809708674783493639469811333029883318453999151504118957493113370145114543012847673924593803909256261035097177321209486547265456056759763882013836903563434405147537086330740708501942641343296875222917760970086853383051907871228044083065259693879004345679248312562271407899798602424296558314987910460277374372648810930834230465157666303372294257339825599412939142718360769881773672244847408537359473467388976250237786625903213227239742984053659375002107177529534150459498221243316536112957241880525947273280174348688005008111055470475220154728088833353554152705625342845989747046911471762302609742212276297114951428111343519963931397689082757660560945475026606100613427054523798508607050331776384471239480310067721420893084030045823433783597994327523857241864214270049801490678683240953519303623645496534751029867399001038227304596407300019688779623648148158417275923206214387279700426486709805924820994693668524488362594307534037405692268427051501030638369459733839869527235206796020831854030047379940506221685732394514776563953918111931663017427770333513597320131318080843236273131138214786868856400849907525947862153091986220327528137913039910931287503869326985792956675990862206274965579571768256103765080896519397575720525870655421920298748032344922480119527236269226376764701221469276276403828882229923372224644635055994871677280490483946677447814613161263164860902873064368383403435260994005779601983811831661959544627668226149073829060993689712484160820395607651329644884833558160791249034402939051433102784910288293250875324848301005026695169532813000498622536655321989443575456207699220285280462781130352400841154060656651404959670105419893342301841314849704742388337923814169257955698476689501370195811686451290608457793489521200344761453522884213882968245498250386129686204190174904749910503938802253291220701439351398838884621311115686466111786271636355979430633515363400824681532052057874712155447471719261905320200774039053131519012984264843393902271511248567467922567485622578136723462574508136229435118629075746809987744788600583706302215952147232895943485504403430796438793286418866657875380514793379317883930399218653349081119478345731052795677039354003529869420425616373426743280936460563589583367433208803497926207584024182672158769471780151870237471441968085471751486842647218031743626608279565395871163686094577054344549819881551299641753406710787697549222905395873534429995316217854123372421283167139954280277771158038784830560950835652429082482399300260196948643527510347169504188296370148582397946098708407947045572481961944048295854886130998117154493241255570752455854478244815432426942649258543182296647731456190291232321655492018031813221997897639206709481758746155343811620198097015060951509675270812811047688006796922541472214745063063231694145250753006666788162377625558440518835697877579993935158459568550408631124948358738099700442157134806424276731258893406795377152641417078751184633209516527526983584375050843422885162981101895409404584115054610392717210536049696834319966526745197496711627968467465052781615368324246524074422114333620947006075495926589790043793765240548147854416754726899641107765708405700445920645263997103989699635076423454864789621969499831174144125672224881848753353083348508430830166618523761417789692914442431357269481473465978666963785469994931928574163261336416374943438740742662122042933639038335005419570100567695643521483338487201529557453225775759853784262464864047660665950472306017088944135002998166921330345136609075442016962220128865836740925804687150211187734658152370854071977851758550422833653583140580106167726219695777407675100310915404450185761125465526354554589680454429966837253240684889243785531900816476739163119054806942741957068863474208105664166861312452858864535136888086971091421122407628354708862417582919496949393684217312580162895631709954029226611321685192700405098383858948845528587329251008025635082745174375974054923505682276307461118278907344909577820185114768114548918339793290399616607640492467308218572644226414865469485857175328233298339844802994239699654311308042728140250574303579026700086176812527380246931213276445183549262919355523123225664751783116451354461049804960778552379961245906784743126957420186191551533975393142106514203259706502468516714104891727552663121657407777103384049065064146374721573222683395312091176699950841260803300019987474280009946979011010754915254192513092182940142475970037555418694267398970626087081547084960958768362234563252983968321692923670258391614252757462338684751053859913919216893524032303115678232761717730128872431023879765346044427667645172541532210471177575431384982558183531526528947768216178245424786024558102641149164835898466788581447872069745008870345303094375868876736598541510413526579669245993801822760557302903474421063036413672504280524481657869699347266527094081744522360974573044176193083364985245931921892237913203416879241057258937520233939694546883837923728464797943900762919346945585944902799297062426231683812568901380251824038255622496147409489119371686040463986239831740586556600755864361141979183890173657539924093664483106832301642154573993258054080750488645586421351395426323475370501937882227662874305201963208021747608970402129033721544434013534672137390573632982035165407810742414442654518396557610264686127888253064119395691844517530332231220903895559800379186945058215290094230964004794910992342801439195306030661084133912168923875970374945670677154719507744735548440122723800245556474398046161209584472180702225377544446465045048136672511508011965889187680031679689063857565611671544809387379370176704056802819056495038375203756132856382137249393207568260920116429951445277738550875704928280350750473023557235204828941586538542166439413679356716132375034184549278794905111790631563376620990035377251609666926808137608751582961266469520340433401412566166637924841584582319208095400114449776257181175995005576215272816531727124416075105439822419190836689205200573278012221430380167770129835474209353489173203085834862078567352932496894003670706634113181053281012752059376154764538927806744952051525148566910094306298480556859182626418979354019690478076214717518884291948175677162489556519493772442733707040862496413519718016468492694841537125243180991931802902804766583379915713867837662695714101257044593941178304987449772784580025456139808133712836527909714885517801395842413351728177797946615533084874468745206641666477598239928493205236806632051593143367884702311647489755469556919712251753705274598825016182944590969130367024675179560802036143193934069391645676463004956704641488114145424186366450687222500897311152477658775064699412908252395877176379379690725260012292423905589508875066158146641847016496728350614195597464215598111432330332476733841947242934894040032839578464332240742609763280470414357243159755982953291420194881689928138555359892075041672315514610774172149330981555151468414592535940312770435318805753723551384740575930659266454672734234479424895159363965419273682735348306800816921412017307714409137460795597258055335543351601907025686311793890821565794460463013102356440035817533768146489406729366597694326439463951612250505016511493229196520555058508243457472453082147535094366972121836170450143840643547700506848818655975233287109318838828316891933845935221873228191313817768629055604788327091109814062446115264627987767002764750368706387655487274425801150554476922051822073348414270512215679122882770733775607071565775911476383633864630268735873961728566526650119820849118945406125378064525730073097769602635660969118310416341386520024019526247925411627055252829675198502847250747417653172709819268143150965985417705426651758420420860371770707993816158800086445232024634847549383664044871760569533744761903820561552593693470564320203271679748263468707367114879131345128456838375639119924748481556621287128261012562576997745363450062133487286000771575195113184693871798681496404438254443075333307704849517462492585763536606733148515309885961988841822202890569537525160695938455812165050141163091601249859074529964344445202784065808397798139742795487695231631769207258297412410329138370535612715247646710185742009151678318001546255815759335538883338595871233024925987182994916208231899819673592182216540886008023535250516533807102857303904542537010780430335868324995440518594727165095465697107966378473619390914753297401103657293550998110151842638940044283396446484125026942600015561930029737653142505744219294238678156046416598470802151807466960356825858013916197197177662883406027510939185077822275497445705258477253006155738081266849291879608957961293511559339332833991230927411188100675597163390157168183567291607112671942554110187357324216401868716456074953543283286799916054328365801882517525860779757646832144575449591101485431918243674675816345870593465455520837364629769912009694936099996308466382297407832651134933461955323363486716883167390208502673248507287850022844442614564782170294468873430893846837032656449456270176004690137647912266259240120824959456926975535608680724759379659479757417115711618726878956049806057510093412907600498892457852039313777791653611583370992346861021956211767872843735062585915928966942942384484993552593073762040562162376156893539366494562827286823856376377595421620827732374857004198200696231995291476573667214315274690595114887222369095561675477172434488086747397120520644612014376226650833610184641257045793090398161938856082854008803648256831990486725479004509816062074570447535633147087063678755364668063273729944840023768934962431044893735259551447886470175435469734546087692875580106387320977373710593725240728043982484323028566928877674785229888839373832592405579804906688574740154953281054712677828961647554457270007883642531659813819076025326059174720783413321785677074808732430736202280624253344280858492516692318933440727273472595905322779713289836971527543199276506880465097111994738808656449543942498760730269256635593765710782842046216251520087749967814396001157250615034445997417398406768669445909857886976372528258486044388955580011385855012281846402930429483027958767027774989714485285422174135882767181162610914775304751927558666934379823472812029565229791185853142239225784532666043254993592734821145531138299506612816518560447768723932304703512245105473878622321146287681902690766549701793738426165907987873757042040219199369689163482398436889967032902663802509634175451370086463681372122204640207148855078911611057156513983203652036167900760515050193329371363848194781353335164610014733502935581660048902138691123292373123787294870418923218572227655487585665518926132371113936025257544494949628544983669147329358942199068740312643579379849702462786156943374727471073817833142674421863183710181199389279157086671414819857325993013978490022909408050215232191607211045011474736214414574216349346781246823618322545227275975035880053384235364054574020378769316302809620089655915656461640908442291912219666287999938900303343232080588393441729482667393154657997353438122482163357555177269991510720605054574264401316891999117618068772614693908304757625962944709248919026023105627250242207496876393155354175430333715675775011392975261295658813559403391548160591065005877469832207706451695205389022485595852124524079563138483504864010998017933740284068863915841225118849238121505743161049841790822059267884544142254604026857559748166651092045396748763189330206022034558632963254119258202199721641463174123220291413247961822250751936167650327877564888804386964309598324135939849587478997251016886322878766976204920508417402666810960845541085611515504730723077534336467020193079763791442399182779983820252231420326739183954643369413963755747989374787048433391155138356611241473884317284220904803548169685767546722936194838506535806944207615712810377326793966938771828831930776344882774117101937044993555493609160911432366387834892248982355997798732309936415654259515547333772153833466579083038471221355879031271629622136081692505911178428282276212526640373356993845122237302497841459311220740544863156439740181885857747568870905189607012094098230188905756744397736373451315216325136291122867839402493712572942691121941234368015668377879538700593061555521568953055789746862681492183605079762599731645137333332433041823469529671147073019313600575538672699079442614290959999668947738928655307341305836055189441060104377664484909535515123885761527717972883409244736516087912936848273321839255889346125486221610038283900982942965564930491201768033775726085817659714592850898017564695707928869167315821204796036768808130556416902436000138577878921763247237777799547746649350979456496363742040036710865382271565951172259009187724077352622017789432689157931284211449990188811510490327093211813350212961504210862496456988548097235057814862944833735424445398652060616593066603559094262200604991435347696549518191122815177284795043931528036767037908539369847333766844652006190334763657857515938771840642973684902097907243838490934248012808754996072982557482113503006581945003952689890397898884836551041580973947997419747141565284166072075432083191547189266030360413126261261693323284061795075763044704029478666724362138366054132209178473485203530212124267094331445686355738754120838570506251236169426420172864696508252855407445010276649729073841356646656659555162193476724040019017059404518704283127861012734140324602630206252921263117226736141839838378709049152330409938870609086785608921946169716355827663266163808575034509110223351271747699960780683063939061269544985320860297246246483832626529050109695054292619490832889986390091531705031506171957521299546665148942062327395049414883043261724113401365691971445747843016279015698839759603880366907162782985353595990685569212516727211296064459767723770238511510214384379957149896744034899739676829027349104122225985291613408781326957631602986986042521962869827098503645752328379729681793920065756697750812657162851251647817324147521947907874464810738342258715258996112104991351796657854930686536803493543526737887240295147304008831204489643824443698437512560130796956764417210384777985898342877584186193720484346446698156232754041877207241187453571726094963789990795924910714951321456817804482477438832327354203783791306926130334391189678999985817504983117223675290931739765546583440631187388234934043257158914409281951483703059092153836256989222076008067170506709755526037963505969341408933008091728147809162366722871699479477424343000120811517623443309182114302910695106646209205436121830802512225638710284522690657164988445482486393463961222848549446350698567157514044404868330353217236123423390756610494126852908775381088476914602560280595907320865441443070542320633457676120031523507447866336853477753750569403147985601637549639585629787714679924834762395750870491045804824282894232620864031887543815675580213912663140368822271725476829731462717087618835471444344658893468018732236692021534019002580138819426132776530731470820807956615227922973159537800519797636793875356333023703123067652335691054231628703232051306283524461190864177870568767232359392924403406272068004434125194605229101322159358978304960735783468614714804754251093461285320650066211681348796036462419269301740998659709459214928493732680095214717656330766761165650526331711507434970070064435809695947470877457744008031732165797018481461604445578885063799132369269631406910675381554966208406166255400306615089419010330036264722673842598916431744611230065930837461165192330197155615866062628364608442950190106151508712833404926143848530712500316507153772807807509767558677369146182237836426853678680232018843422532835499105360860391070489055688627809470141005234763737147951054397599132379410549871641722432541918049163037091863177056713538120546267087134265564213274341498308844313377675774733966039922714992344050132791784774379488213898065160813724267232006663475251256689113749458595459640383268926986659649884007481782793841162887959852762284421608488812613110400755205095100316832725096277906857349348135579897035238898627792679620949226599962017249250325288691102843197691726149098066367488741175516514250176597157815217844464108984856177623438730364588363885553049506829098109488883801894815738821743975609944442009790278168035690437752532923782977312983915266152182588894948418245991478964463037467705430286242430559916809616823046793703533799732577918911092633850856191027611459511979409119083340172823457072657099920547526108531169445989369134605410176612721936786042472456868975833271803402910493838884134744261160633670404066906199307683776885131392405261842852453796252977607907611089793501902804569284457224401990734312001268143329133372589613620248416189192494962710205701776443802046591029037009346694714112633191174194495161857909682192179963772359967269710636344808553593149729336196046954753751022078886990923309715264326458584810463294054452348861839520923500393573857487916278252407562432683585486535913304483731627228237855811819334086394873589922181950415885619278480275264593292102781200738964738692768190116684727844240118299863212984012032135794929552332537893743785607512785007964908142985308562710226197450901934246186584788959860204162807324709749683782382536824936698770095759499673440358594700521306447964243362231639614119265274244197563620164781275982152245578676531602987491371169020394350705822854867224411371189062267279207258344529740541465203225789318754985029053899234528889581136053722405392539465080636257300911322487061666706450424196739882090717988999589326223623417016155465153148955997039855462000759739422219128083334308462765669056009385481541883484330285824336027484302277156163400725665086236787942320848373107697257758415562243364109855787071455217303446530350158003513148808928773858458676339798878109980646400526241554018771709131496816264271075583868335534187347539847098734390332127284204961928023994106613812146517130098931802177633938738664297587254386334106201402978928517843142612166398152234004467266743252318664519658263759319696663102286017004490050717632796823736052101213985260786962015826097192250310039497264760877780125649932848488625802735166974563374737648337528321351927086912317237350293225132791150788592417792651441956235583739127096404372973279413524248849630361378562709318273841423090340967096447346767962720785180921840512358285541065395720436908433515062313823924262877626108039729056076889502538072231058382449380815186410729820362945842096575657631893109254972924159010562498473997691739073556001820449299066446972051691274455487775424614916222161701343467977894097548712985659456664560963880571259197568551574781565261476567792133340900809390041193345047851096051776962136206828153719003871035368720092431497434666866049387840544145545496161199171896495263736640409052788655392721623202144777916988510423703038868075865039521271348897974670935821265593022102613414062729646141955963022545998969841302633143843142397180714948632790226947650156981076448647330630244090432458328788279915395125961162433700844038746951308634414227466901578925174408447118976409483278775185303870754275131432966424276915333693120859111977014604100913218596517853216917203187342924446192044818801178196849688514464300629484169607546313885575201459057547293376303223418457534428850124266809238985159422963797084744807933657333794701871922888217516716903318179635559267287975200001012333256207775292181576382740650298392246231864675949753179054042165941957152730303884645065484755580468344668853836421455686286506659084137536607522770781146708938521324553660065988952493930017543417734892571936220370987276623360832966561350556863263071513612283162046819928977577506523321818734931931743150585225821607718558946120801280816691574210082269002177530898055086823068891073396094137458707921882394482237472873435285012272664257033432041570514543989537366582654170129396519961327980537603219656076036226222304736128140500545299674258661616975045477132780437243132796204608752348317674814963947584919524123374313352683989919529130730549041150833892128361777669873526404897676834146534963007102939746555602122461433920614155791092289211732489935217154990240268943190156082836431639102381959183498168763193827793605231516436544380842009139612891090650032387090961728193835175194939619707227520874633335205204603366553945438004801445490056188476578117448457756420642880986078456270894806347666588827586006480653093463049110784768172228126975285668051677707790543616614406330408984806023660981195169517316605842132044662051330032957170996602670180411043057506767234568120594829082150138215585619952847173125973735824397829242886092698923088600946896906997897297928999525322442812460238342144613441014342211061611193372682620717226019778429783086013536242399129920429079980426283390009146847481329360290322510911113436649094098280288442314340177267335655035506222847846132002084242069685209429599717551107930668269706095789828072057422113633244928393765956957399947550450390237117993293011431973309950104185836042018967590754142719837242363240468530119962680288746074475774607458381996082509700177223407159701076695399038799275627276126160134360570502639253925669859069725636879924361686600915435010407460616779138824872250084236295321268342800402540286206781200441546693032628718596295993836119018087317848651221656476006218767296155461765145794818261493416290795166791074618282174001205198857798064844326324648204393630886969983837010692654855889049474559811905042326238051200859349555527430420998489106451682555291368450606464265387803470493856796062605130468856140223921084389851082862874140882480653668880016946923966771555241629425989967800444253215340170574098944525124015185158796536794024718905927084727248434432581536779976548078751218289383275347380521353294874917330593781629933667164870390349699703749668645306251331871073049196850043482840473089876636476442689341488983409636981878394602316399285546624179161186630868842543396866848865368781671701284896075306548804678354757234093859439172555202880877906878975077920987458810582261392655871633547614094131746489745389707983225330867862378228831745849714851249780101647630192175712835654634584880471400780942175973582282212566195567920081204166949920786787964852930284026496597012417007416779663062411640882779591741974751696287883652998777625116356663517317384630721178087710667132288395110322691810738532411465490133996289386055603132362253321337057231564973159008087935635828252174109757159516808870373428669740224427776407500298478396776220303681029672801657352568634860113344458715405076156259593230323334445186391382291739633250676276579681238376201471225073834984577447413435667373300815348502126864719755695436659550744575868981418629438072858183933189342053535672542791739428170894669194095681172397545336138865661547278520891925059726475092530538373226711768109278743020410393466334046544433192413314030418265118726940280078887495623166759839821246248244104149594276908203391873907288887477443710755074627553926486100212812778587469766736907207986047763128054442484479226830983362486087418654522478560817225716807602937119122019993033503428463415057862948709304585498204156324814939943692538707251615782342211041830824102906877664717855927041290486608551048192640890889087211855853024388167421822701238639406878627171074847011432417742420200104678371166564383173405831000271438235393010747247089979242488384931707627629930080530415417504304942780404443684609115311940836823375287020799290058295814153539843732083475516874601591068242261894194636414300894888398136828350833770698182392755660463104911755115259644081314881780193420545811427995116103079538374386929081411935795229972050524111837829601628229344307324857648795963943718434257411862546418861303396903816950900886631204592388487568376487216300934158864225199535491577647256084463767036117274883296445348723104156331178180144533204338556324729297581664905882491256124381597261770241504986460065438692832805511097300515595204756039954821180791621926393332472483292424729860172474771594897694143033951221872373788869866898929932306076374742459660534776073983079495623552173898773994708027522460202388990694340863578693782489643585319538357567019632678544197446160731012262423119721313973150399604773482322684994714558613655249972131298659803934843127092642150668279460715183227249410471088215551361820828547367821511870573401932993463482114925232711064114135311085404184885425067439224403750492927847543610379358967784705674268455863486849825923314131190845782851224184084364803629446207975034772874837804695569597881714155192803191794554008454978605847993500587305317299548298889586496857071584647870485136271902592576043316967586724661795130007233245581794359696938486555806419561400799949039585877382467017242229544209381727219616057376452849159966237980219240282850479386233631887834458178692910436399237506287682423050221243046298308770681975599767099737570414294862971170329058881061355865294000755851108165434822879831352683012342379213595916349694060073543163081605156452321475066724894715314240802423442367012980605660786123556095870206229987697779663747378901678991556714298801021889830099715902942565451987920863405997933096309431023234648719287459655293119575579264160411660070442801905181031060459657552307104521097383719689616681545437321659768599530277740071339819463546149123623031932565384891050007638191185834140247169709512883048926227369159966178243211334191976600576716144204934536194386972051093954528037519088501412373112547252990226529234644513337061268333923669983981844547813911188123562819757554587755516512187019286959114286124274229051511262203766781967588116824923216461983730813446809313863162024626298262091276063399626458059056397771112327337999460614708114172034030255810354805702476428581748258136784643793232990435492538781920468714303065967401800892407876682038051909651483413794588364135587212895740334824720806752960885423121999529837369190961188764934167516282427655902142062675334192819992326362690851478196419826428323191331647038891909456946306247737072622177064869020428566059139129203063708547654653409431570864919791662713738458816793122236938369835886530664678930244286629864936129788123083636807116424274942724016026195823439245006957998174788719890601277080490413293479233623030391923155091087057607183740060001104772993668680627763410396996649476751837940668725886142242369967681815693921990618159554837810802563941015424873447489706152941290486410164389648065653226281986638828747137071255197945068856422061649842237513770023739536756360842332961435379317853571130669700431486397242651974688397518240165545072558324896826418435089605222020834926179038701167835888940837685355616685399863002606855451506297498671638566346034416667238104007314847138638373675042797623768737360568963241353671227841637495576062714204365661707975764619227898642541654678615719114452225775419481371976310435308281286584174203449914260118575871409918517531254041638656558746077202156148247296058443491057862350068267143419999363409899561456703232019667277940425815533854035487491592916205353267973898098233944660195981726512379054832759304570285679969986977285083172827316273508355755458365075396902119192510386046062754905317310658865866919165915894164876750632371274840359499929871552060676575748023579757829072184811723471357796156378615566682498205420325026011788986645567918272498385061547258204138382531790251478987070549478014292392213127082795845115014565158508001203107835322112547675827876837171221832568257399682405671870355194997298627165489065055116763074901446843336520069822962900393798744631968145954495653225056408218142431987543383902984147260724168466309406063236435830712212559075983100542817120512915597687494686163267873913536677325235802162362036336690650944566453507023697606840873558683071180056191433657901399434544483302010448623753479072630335927231277775561079227713107255945795017813083262233439141314517508798647074977446412554373636497435323364749958442752576278961127768906795322747553939229719537250995592933961216343152765583569874709192603219200860170606115925728609044828772124973584379431451288955012918122593505935455916362768593913599869267178815711813264943673059233395240612100119468783108926239534253705095346620576085761814507793070257970585306489372446081573944021558638444148417245590445564962496678314782169919395004168755327705691375904871550783816892491965200810940316910289428192599861967668198317259034878501128719864553518916493874740017505277693710386029978342753036816171937559271077552645715730858406228007212075270651097024759383435574495248225401754288330949885491644855362745285461526954678842198457227505950868571524149096052041762562008513514552571328326671993061469143475028448577428639456192085703796513797911398605334413827205690213217807398269596990918570536502618204912162248210295647754390305787463983707142178646728915572821427685090066999533486621139050126804823384375019887001972792388427297853094580889364980223761136225366296507552355811330189374183199109413589293113627846763761689843000135931807632422053929287526862236317415959197899052235796786487371537657508158685465333623026976424856694256603139692896286770037209689530677958532699882970287376938150154168190638905896846115724109303046595931380399814882237329014117054913332158522053914001179220409770989176801650107768610827609938312727425720401853178908195293071445496057086319580393066533832822930160640003012769158999667398582899792003497248318411644064590640095839057298439484135613345182040497763278361654681032956383236735735699167425496509799028619540406796535200416469925378156248121327144245311533767209089049371372120273221472231972556559347877936608496490344423293253017970524256230993942812181331575772114718992522256800641853331767049337555863374659106986385558991470008058720772682975832972569235758316521699530552434531599152818882286168377060239590204180556852984678099022319226116917017192367438463154553707692124361978001556013612497261791820788023040321872546930048368973913517186794461737161553814797431027192639588752057036182478174478123651718169274322412504800479892674548580736503894579920647838827642359293281192017373054750900108956496220377614733286853210617762829389420061480502458900130199011957115204061919974215959872725320581944641771073195030122143412115030932487069071844202724812660967452778420088780443091355079260835450877238891542684660665864361894568814590712622647098119414109309080567861050702764859645733818411997258328045178247377418227385519385029647729408525894431069666530668468208952876973477642162540454703617955354466758665536239994489512204984430310239519810536733394982298187751380916336061296572012873889523658255392429453353920394943119904439649154278911073243615650887985241891538259771602097590165294434584230730234279662371967460750103704639365180078786721663386260626620233525835709243456124730703784866440136101061405532865253287855715255991430438468317191330420592847719808993851247816848675262711823436948842207475543528937141355565626376854720931375884198641637461687227271499768193783309183448770478180380095549861431566895066187024399319681482155809575166314000309676795687019717577301367206672778087705734070654937267742655586607356009370764690432047307864906059848295748951957365517733396121406041308633829821735682944662709819232410328112485952862289568199035990067564877380489828760957371305559805404139518320414636101295219170901808627098998289589564816075826189841465664773595113053257040297830042144951191903309063615667834859158498716972443822901930140951991252564389954312100313904907938959528281655768523125352116051374743353903208955515889771649083986650910210076974818487093121215162956853791745704181764288281831695648240535997378207077694571550510413672283436439731482189944861249917574293841720776312374587534507478605966745444014115316216056659028775039869711322458224873570155050878267735719986977865661894729200229188598229222032043171039798570640303524953047019788210616416113176347369926174757181839676922705720098344128080532108271521634554464900919089534695253431585847581936923604793229501137879428055451983847236401179094136440459184646077707716709906654370206685611236522566463799153023823910181991928431924049405377539851060758172648499559178095738920502990285329855862416505572601704998139461296353659136735824647768986923508870256386311411167437575222718981876077878464254007196760856612362837554789139739971730885566958956596519283182077701010382996265272234049266276251555821378481614957586337493470900606469923344561951303557060549577966009829888518423489234225765502829867466383378337355755177973495213613451846410592814085244304568554124436311694798424621995553135975276250995951256766873035987454810515667075100198376577506468789003811509563604376525968609704180670091093308767449747535872928958507709761614603649722350271881858021586579960938756201290503336703098715829054113077572525465670047257651191714525427295183808710464960813960186080881103160131843143626258827754537758963876886850328011651925728982618178063770077230583340271956116595519139353648003331224001401513944523893995890512252139105822020972424538730868570797918616665807643298756130420190551797080122618308209170211184032893108594066379832970830341340863382023761866119957952799411898793325979725729300679984434331478236408343752668934069230347160740581951997211002004385125950757773652632821380883478621932094213924418431186092122872472529255824713739241861648931848152446350496040285995225620511489973115050042036194348377243201709209117095853434489866667095584847469779409039435966224320938913228926136069520007153406998050182518536752095788486894502266151738911131076290963574680173378535681611312124703584922986015007100549973083286422277270396716958082304454199945144256227147271133046607799355482864367699667781612602964372201258302148235629187634024681995870617204824070147458711543196100905303836238940723099458988551083176889088401404782464838598770105075788493138662986243766878855214201229121693155851446181030618447025530192547931856688073995533319305783126509800364934315982165023216580229919577252217583012620106012299442830190288060036394740924394828213926912859929280185368774739733309579725541825642599503708580409998614879314679808521140694206336966152730927836823398710139166103884991370473562151445362113714775298774525116134842304024640877346607640283517584985809906942358704934556227866889344074543190208751142978593110284936036529679723796426899077968167765413324963060914916122348220109471084399932365139171924191400574850045725783294639405981630195179278062892635842880466314867947707561214200545297840867726590125846486322864372517510921902033258370786227133457174072520501599177517436143176642165469948591644410185265045465106375745459573087190525992285121431197207932670142688774135783598317716060028184278496582107790230425550870321158647765882590570119868327321758702721738893754117895294705720837831835403789372846993099967798579553177421151674011496324075249973678166082165844188858306779910848659881060045168377263530988815283708308832634744646666919241973744904458048587384188892717411403302143352722451434967297486152772347570534192401529963806569812007151332634236151986489083286293223286781432816543972939208059121072063701779372929617239420378346315718968872879528446949191444134715035707737254119866665222815452258240842622009771210405887500419854148896658586724739214688692749675179338988133991089761737387380901926834722552040614605457326063354178708359625145350713855683796261602554490470557925500449162471335682267592542649196329939243387802513702565029788245559088068419743530503950508431360274757425458287810141587202312804899933710174967492157420702933775934760086355099684761048788297855809656229534522476329859414560436099014741081879587076629665528195574505900918784623779159948927436812107039170186060756008470781321944633941224059644808545438069036441714024288893266568628094173613602468197373868610257089376830459669223037235812601884518643276267571559419218589393202971054809036127471594897663823652804944366294265425491769906445370867178266919730482244368512484415786517688189514428278383548351836702611075315904276076117151799630764691661686637595019680526876623356131702255444384150378638064368825118432109678171924256806355506724414254290390586950121882094526261168062326788479763152133023671017984288421903091830706544085554537978365106823337530831967235137623085069840152629593720550451884770492771672601080082163782139794391447150769035271495387824705055419712765241634258462615214589596688442250327890144224556233660622482626479867327434442778349156345255817670060321573677271077732388403895784060844310876321308011993004294848484209308008930353788839164438416163073995568358512928554786198269726881358141162458512106842693867954963378365019566025401895642360340217841935640007670273110007689968371885072598280882259923793051790316718975190747412983602664022379275508109333078792152712681716103788051052743121380101458605834046649951480714819476738855048889906297876286783129757775186264889368878083339207449102645827913984329547169719169298559408396338656334413925467743740533680784416284112037842172358109952028757468724564414383852264368966791017004015051883318840256760497500977385986330240212926903120432312749733506427218225346174073106124851121488444680602702699000938383774316952939959750069783269189691493234983442281191984975778983381092494918638710633570737037819343249732282697302360467796574814940796116894606838775902136822940807616378519584110239792993890178368176593842011263796139105899595288686931719824052005395198308677726076444982783385591182300826786685547833772855407760482955956142955220248031553677916449665296824192649143716301951010708818864854894384405047901148118820138274921911859356581251827074886483052343239095467635245833044762095772567996877914928693929968855550988143029940947866180495526822215489663697889384539351037933653211485168441297815773532038827647478599657704847045446926226652855966739517715919308809892948657211878561997088475137016362021079227459967654413500528618397736371192958865288589305581060411939620659228991739120329024163692175953790399117747295653194656957090715481669099302826918254322827083337611553252236860310358690643697636447211452966381016174787833005029234354998386911914491414410939365605540028652274682686469471969929099675417424418713519833305597082859679453573357816891546180869130759747879219222447586339450822096895077859177854883969480323434914644127328702175492704981694254245065107617850479682503472212504248514992487500594231977028940764541803378964134500253823057567949285758415106430750050304000301049090707162308808638606176409540694359989015075337765872310582291661022198154384713942616357071868926342290998424704808290938513204990128205001078687508576955934222765100271789436175597448340108108393873407457548290178628734670847223148233676234938078173273765677113335744880472925529009027848835840591940150143505362710562938630782946422376722817083087755558167663192035895907037511753576955766093307310151836107511134777833092940645684642125615398138863364627929609420543167370429649904576376458482675496605379152929227706679738599544636010344717113224943168070286227971528652073465412086309045712205226216683515189617738696295366908947346875331232690951163107832044144820465753260641660849121126764860749104935778472896414047359292874463758663588924133928159073475991758182927999121702494147585815638278753794785401503503930179397039926872718182752379400950107860515435534658225064630442879182416873740228082579261105660382727086356291556149253113093358882304762511836568097878026893960917361306844906647892704388680015611219522035830869813279405406375260579984939852165274960966341713538329881417285654361687249126315961129701741642776604280897686788460868440541182320002701585508629684375548206503874401143242304474012532960661101153977449233270406415674244773797741124791937101123067392846126173731025957006046055812867125065807122197130726011124234739328108215259829166461773344159089055115960793294757518323863752310804076798515476418354106849613744884971999962834506169415049918721185896271889396868286784546349070852634860408266614102575148058981701032601136975468722865631754133087270353692481041558704088129139237116933987909894248618844693740466695610646196842849184791907287978611684876239616991993644995525895909432323706115992624530811948168669055813670820531255115602022277939433866228325638461846338245492337982160149877847076430585370411418939650523432402122646985918179439718804810907566617725134344945606915871212290965444943861945938961647836986629040097791588228229289635140183800777072087281287673130250738023060615164065269789072601494504204381058075020825407991217759538959094635520079116651248862263384242176370346834045798558015165026273610141143104051089389196653353460739546346861412657423878845776789479377675807149930781408957895770381003268299774634580509899889508925256011923467951731836296340953571208705751448462077397753842092431792256701167379540641840781067649394777999788491100671428623996350819451064535028747270252265930253226384438438555503981400073835563430947730431546890083875173240327302993741502764726986148742622046251132458634965468240973156496934254869661791752578867711811239787912129262102695431966244401218086998117693244993675129376870210674992108144687173195807608893696299888956913083799856466761430018938938364050762750957502358570985692521410283114693289154348086507555677215229988199830776657716552558895667979251587545381851923793878319784519233617292114893883410407104205897737959392574404894541793864853668108065051340199206009241316840689346140618038251904140939135676913511513313538195253131495205010751501339000588976556678967114715286971924615791730705024469516214851240380842636336733939656055809916865684311069651369322036526806944807130574233338858434198698941821337986807560289228924206734053635808624963977512301979343090706860069286336195381762373475605095499755771323325935451530874112954855918776871553032428117259433198625667637557284096893882596880474459091249667187064929534553487073917223320837853660276069804792322620590333973763717497846566076891492371504386170385494747231572356673881301619381858870186697170415508322323644386772795937488384420252010932485682782931998483413787021432957518149163355280484212794628790743254546109790604027044752903425178604439744676328244443582921048659976019960406762156177343407381639942348630500608800881533346443051553081728324885750869318190948055630112528302735698672094519869763931914395302010296163496248111946866006008675173508373811997472024176435129453095258062324074379816235114549268963030894662697513050315818922332284805076550380878806345649006791764867180147865193173634797558970801879419447520027007048222056510971229168808414848714546717018250213799422986870859057358996023830832307259597996439804693154356362319673059902930407985801674415587815266127952789024285161336339974224193302904500430232908295822320291979240500780541551960881986390593649305614754897279029892944929540890605994220440715822993359435348294631828580681957816435779196071862471764299043475852617264772431917529357738663593295769904801789891784080719949346043130153079180302823294472053498895214136207139698146897210207124433086436200419818553949439476751793427617280598911306470314791185741534769595747386441898913547255549174926829003643252278248489560347728468729457114814905147473564192171230964642837574426985346091138128068929073818954001199582806768194709491657922761476757046649304498256731115525902441624691536366106900540389694215941065555168437597275493448779204449517734449353183855463783138946620470237727475408828175059536336473599713988218321379031190354668515666496382374629787437132767559171471392136246597577585598831331861189135362487511431466087729061239354716448909774248919479912800432939706120099353221508756230869684479043482761590348207758833457212901769267731195401310966012929683818855285779374761827067576232966896693844477822847324867705604641988233196664636085072961849577856848386976017283508321273227547192542868121669858933263282329038493701757573085807263943142722008610018438769465577175020751346254261698330955352398016318728373265249536249721143435684816784092709061058662349727426634832160246240985713996791203945820932915473998939055351779011606828569973157933667608800703617903618765856491886029187556155889019902822527325625868390497577827625290849465402219967895415735657217516048810956312204819444799416109995353493947391073033527731229642856377947522242448288251848183240544652137982626053680089071007945713051005610994403809288093196952115152800464976390387645794348273629567870538857733192094116528032473234042571009921247757039875579275968136018024330879948916373211434299805768054547190107974654237832238410699044922489220592967551250730755542006381622796888590107853682508807853973671691198192708887561615321183491973191941757815050486636014919037024509138543018439648163503203274047325291162613123006399106233335784897763122649148368994523005360743288549022012633502190162707065124106436441468309975920601189386650738325534997316223017152431334965235296360626281159039809248885593672157902524745693118392683294191564423419082362990875148024549573519330261123669816733865752523816090376500349092067539826624690322390100383646022789866474775750849906952124281049134400725962791345619515176522750835098806952852542771864463307579691689598781755123643194326015545242382147966449970999935832679417881877368088241246240955381513337777480556592434470204463581235156399225261363122502783593120570421543006045137187433269166887935079461315725582076446373455541375186509308171122723349449302652336146336309805690992215597926133533564563292487327337765532648700561905359893098985091438289126412510329217036020998935071263648439488570305532737918832989456076210510094220699904844212770493804192888611721508731914392551420170729388586944653028660111434064700703112540805824845691173368881502972114405915057972626472835246898923386624846939265865025213124133995316534247950141308065674762334685631475852345204128403141446950584488679516867433831624347568117563720170043333157991998144881277582066207534227666387646094174973497230342514803489320662439388814061201800248058179176307706695546615671962215846250253096874774508817320674519470982141546399838059722950275472581628897705240895313953399532449159066223106760238405099244090441562593877077837364101273670636129332944668757386127649283870536599374306180496778791467160468092734806489283085224561319431785210427232482243840015591550849774429230385783496134891475698240812867113769209858539349529966855772259445423559991292742575972695955036119334153227905091839062849595213501878827014807940794939124011046228762338818670145858445656251268680082119807923708138121857286030767658599557627741266851105202962651273887552327196987670924625108962436513970298101198646833163178830054475362388420051604695349476130597288690994830399349749827157895617761027323212117153865910073195125524737500579462877730732038532593013376223772902824343170307213077409397550130848142127636041556339299509381229796088161473357685346920439482970575007792861065355150100912463783760897434177341814336177742490272659123671328774404065074917199403714279292117605884673273502582289794015294693341783255923950039748131389473219028853614369410037665407720715332457742776642134222391172917618972382007470400190526049936422295652579629537152220686217093395194316332433655820254583368575859434188670661460887932226727161344351698040929294774699571625570397369691752676438755173399657297951931901587910687401937247910260829946102734500979828153309990479387626755688194918413494665000362954265443687990842547268946009650279889365234978168127275464676226686725610026297211104953570430406133354766704178994445740705850749358673937631928442853228906041028962653428604063602808126840470350118059584951289150479844352261024039791182507993919284107950205116984110672710787951419565141300300401196131733687323605059800244372116462662322125151028707908720048926834949182597617549145921330474815417341716923602530388289361086613987279417443704920348536076121969054835834936981243087106147556032783917414849381873753543941645945016917658675231234724760573717835290989858924383026357688647773821127020426022654560539298136954354493913440797540612317367199357529428996803063003259064552081970845502311237141597080704813212153309239825581110953649330466501159014957822431590877069105435905516362626854491887414678632997885481988980825137427812202005183826985181889260100946496945887764539684636176056208425448109956285979927380901706952014069121973565273973642467875154086625026651738964860925946701509580709398120389634654973214577334506631565731811085538910088538268357366779884231939453821378274528015158188935047452031218752277563053248921785889386474459680365260056134593710166021069886380239346590164222804200002973254015897062893023236394408968350308439561116303238810378178857451888099903666662506889512575395427018944844259043906174062658251750547577141730177333290154192415499137942582827023184854934250901621901976070649006044505309344410644339974201475082056969191024609560728673324199393816600413149964566981904020612729094445700841472824575845164164482683750552265875842867860547951904203359374461544070083969722664078120119707935107488940887643355639011949700583464002787817171695024562346969479912555726372267365386958756944137772760778508982432382636563715544440056822232948314680276586667100565367965906591298879578746127734124817794498621391062040982202961698735359173887945076848240080940822446663772406938104389708253219446067287078223724945036524669071728097207380498652141351654701777928651083475404223056430135816391416536664927841421912305793488303119174796464930160463262336415403637990100510779275652224683611503718336572652740428107530131780150191001160888350665802842558609067135914637197252740748874690728681405710381853716880037256441715434881549728910762680033993211198457587134582118919710129759313595758705421896218380360315349486320487325350206399456049357154754550304332652493540061326370040754373396459303017954942681207944562320740096883985543105578365880550348923463327183932430405083459950856160491075526171489880919235736210511500774280052682013320116421627557454928953136406426870648332563894651372194122263085041700494891229070205880839222990040775170458910697631167396710430771519107886709950704873049899504612728649551563461265708619238974874579602183689543785088173127832316915522733835562244638737621187791298652460202570087874227221234428384623557641225931394958091864658922460450329514705626701398587134880788228021363887528207072653468118335599597469655443705161773166233861152857038860327250282083958533951200433229089956555047698260871927924780806611620830339162163992619665594095389854331693367622076769055005733428708462982342755457929085810774466154491000694530330563032154682221768004041451467963585587433096178738815447672916073877985703326506423088606353049147768448009762680258172816749157143666190787302077317133337181901170941092949621666373461487411300541213686740416082416562146846785970054997975342577111350275233524483549739057036628520947065349369570374314937116562726727740861634989977563453853754929258830325923718246148040511590568799525047641294013976933740397474245952919179373457826021951578190504166832129018193693309444179369392502192661017011899780271346288418579840519042012793266979917497631316771563772705995162616318785597910015948982579949423287947965844786988993231441589002127697781219503716316564554931858654279835489207376686833630846629366987211637993091905439269878261421948997346582649945335701363307599408654804617591239583339344478640053570253072454991222490953881310130319308465046295437237138069380997569154079805748411205495778736150588287202270556180655908567339814661072006389489532610195343547996944452602682556887479648389114599953676738139634725926678503230701755552773282570277862028930460189960421039843540883469861717701043665494504159148120821371826273135139296351549395113935800126180486493574708265984599393198152404768770977058269953663264985816444567014191536694193274280002890701278067098532540261618390369140213487241030243945764796968402802985531068245926617367317554894368805318612385636072617397459241243897249250231087977333816921356461174602405264395823800384662065972584294739246749700441620087590422258981957910657825089421381192876145721224612980662904409341488491899775008559003445012077632227684323621608253841015844759669232344414597171725041939526035539630388125755576096547594627151522754106325865717266820495459698010014025738425580045483636351282062075755287352312592039843712193799904077916356639472471595909126106988137559293964437550426247806664289023142353428391274264176243513964406105822284350890804329048883913731306361553907434532761902626335799023258779845798295524009763114954199053960002417395378915313407394196286776935932128961386517481476285276236303109229670293639790656127982141301144456974233340962213689335709749381090384498498329739931385550442633543906304059562469284601353516171909415029584951990958451421746245694951365984341025674370091080293650196727321932047730001458732753844475094240325533202205356434853018195096403569951544235652630364743181289818776321313356156866506452036088920019613189503078733232891570006626883547660553317424390767861751836407792125405804793324301674370707222721451012786917740820769078900536110447669531654834060447488838958877162190144225948253718013070998107691524225753670840930036806630032562285970702061969169930001414446395420547348960104115984412151244555087305568530141211011776174692232467848735218794415998630113922274356795133068201638840426462144014556115492541027301389241105911390355463468887911674712464107684797574835447774295324975074037360488051994545611302224876779035483713154007670228463442266249583840609669732631098054551741446940678555101902284189318356329054976116020693702830442149953655912894444946628005771726899615715527024164060003767296111542176652929845256142431813756778007702189975510936226371634721218387905160382527199618092470749867134612867386267424532905943779679916085002914649383746812698737725273058755114388045515564717707313848029078877030409449504235706177337446163130502321280999119255011968083212674458629931776369826059667581410159803961708903303943758002724394112688558653566888565134798236082552023067276237117132518240538935848777567931177113633608380096447786519751675008598635652220914155733757536210303143457929748420730290065160804153934125522424047429338780908691068906525115469976409226006670717352550501838888117392321592881238485903294544818798197079118481647218281428188999800950315159056413126588877092728748953018672994793533123991973602665678105308914341052951505742230182012086227665297751667826351660108873977372814391209848808427177331426179483837549872156065030481886140476882857312219554550770929028949689177369570186837501887048548522147432849374247168692310699270248870346108131636793820077101637819385191521262656166628177823881935985666979881626912406196311745896550455049926050360133927740095431284959893795284608283958861232987976305665430925034909505420416824717996226848278015085199933206135093511592059343482574328598518176717031837209771111261208799857372734922016394742301920698059002186214036436245556760331382439533025843662328019692204444649879168052403955833294859043260688745256176506894993096433651767526249597533049605753195956954212049586099683214123894419471741058057946467690889169963158386310143133278247078613635631842779314621827576380156111641398889518258962327557774479713562213651221570937397297059216326439020210600804304095467258130143666417563134212492653189037837131580695808963098312190392074248976276028132941757346053459451776258330869501541722750193415977236862798441685712597964683111391458116981007092559202925488602470529386143020466090818279739100112834084077127077300029866422102216677578810575622408360120994286426011590980911788750877700993007875008954622573834998664321480783386948324318146042361205463227448865764578274513546002907036114439115776895369584466520054181108576334694040984653315953421493147350323345180063439452379526789224584766405656534233425941479410667385497926046772034626803247776312904882885834750805288048752569448645884338508001819532444626313029379463039742692029284832332278215495336995660004178056787991789392684782449179237519071935137531983328481165809715858641922359843819667187415234095578036100244786137330675986150354906572864685665849090212367467622640133939116115086071173307662349862064331793947891414670071699428909538276119940246207585554521300592820634300863879973670083687996146310687722710211433881291023651842027417945898183919676393189206083513396820129554364995652272389858612985175179136150870895101855531004517602705171250840203610485753450940175764379525453987885639906342560521308492242687934011251120507194437957644623304234189933578096013882006138706598666202789620815018041330446734341394883919565812352477538501865628668303822078648594307515571154273656235669266378619512468206455945353636193952796017063825598383218516889336841827776051112937496874638498188990146913252968843186530140382724501648624420630383653454932303158703221136809265253451956445373001682171474180737128588973581132590022456621050075852285957768132358435138163328769199845430036424319467520516142901354518130108142511125932546258818961763469274460136324279441234115810809853426863769049404126018111366571759887808422578876484361637165027494504836151773966244897124311804349869160857682864497251599008769289969354331005638406287127683574286922486348416075517861145470516697555700541752105561507892196433761801648901616244788497296180897942873176859523722868625555219608044406977570786247700343069331081487084091853065295342405518979910573887006932231306032131627896743602336721913259978531113662552177937246884067994202710519166312295826472349692151534016059244356515614992773309781738076387792700462543284281336857137497132074272114021810644426858935109612294743578390122907385249814834017641258299869825122803674483998528916208883810882163400402116074719469782273666615215198985556339967177345046121474390148700432821899220032149848937579020341134205401384197184647174764551024086580893191267774545025509069798554330697835827520794222158234902373778651885679626624203684539840094476340074452591242179806561185096588130136202039438163335103539034413488924167974028299960687637710665951409418053732120718810889837532454205883247043448084345317652777726761333328932489594680226695676107241807764189253540277214265883000925616799930492938964476736489026274430211055171800776414105414108438424831013414700964574632509613092358945152675502584365524452124326131642562831625905783620522650925756803910026577752014925174029639834492819147062526857600184346796141935325527662694153972619683316358741778258600741195964035478219347103105564114850132658365288623208900121099852659345028978089693488192941987798823624870064304725026297038663631004365522629214515700812401537670703971949607972926428925548897398299780175545486726828961751397766607392127626521905104094321779995092895747313769460789068183141523075198562653270366649475119552141684483641838506686504505926972309562949362234247779077004973867942900579761247758764915965203369656987411216044438908455439521524871193141871543071444547991764237338447216583420221226367443992735198277152470993461798968847360433413731108765022462002069013354151840584548533156247960345483632698227672000973442666322274364815438303692558257291093875914571227081225404360821912209392583111750040695678227724484760512527622776662879778672956992716045103805523587475458072342608889633943080294382589083430949669789734525347855777491060646922856269336951848605491983289046844224011729904431395792059830530597303565966141980107538522679326059398822554082188769476549095887493960219629081558008698319581032034340198081779300360316142375479002678607046471866655237791015223073301617564142284207265236481751033494420098485422544072692559873090440983980657369429834613094367495282906392586455325935268993320896193281110821830730845682946969183596314418831619887664168856402233721009263835367514708820542499754054025020663800850356913698187914230737343952931191901387475653197813446838725387493928714550986119726316956790933895029136460400268742453337624288009114925536453472936547255718665873268773646567967403032205786716409928704731791637399186516408237711295146571304102488119214275152381633645416821818699061376717787643300262123077981646274716051108969874581394066199774524667685707827033018173445938036346233655807192905437415849065150684310406201693245502299745973171600504014412043165993180940639005605579981835237536947676841646461957122329173794911706046839047773794396092037102385145863941898274919436741615815617260910273998616601345925814598301464445370409876906632804143707668808227623501328496092999440663496989876169662313627529681213591911045136099756229077539931503621248982655314133452206210064118076083594314771686698893706979520318708978705047417092158650514613856870824565067494223224886855864622136946596070732377790703079318361603544686313242780868254105104813009324373100715067896081166871284549051314489090806958122063471162181226967602351418175402511027433185431846596803950865523471667392959882864435565429002777179859740304739308585389349727833295333387455128701772254580044809421114247278218449168823239304849487263242552886162329713669714714009109944930145343975371566127033871388790609666636877025693618009630531592128705980063415398058196566514556650632908527447180860029611171826290107645086053536858925160380861083316653725796808568875920417466289800771671862726804741128517003921096905681002391339868991001845594934307801951334942471621649213100754079922006186628607960981028678001702943000179361706628934616527152111765409460694678927682039254947147678523435229656645355631118108154052769428299507684502705987218542371180594176340233387383173447246417844783646655137248450626152846650242681111469017813803268564757411802641265477664101817221191800334224892613123542561255852800490006253557127947121790304487935642548404136437768228456853266325287589815039980461397393877606210018291774353372283509310833090879020211082117789055462113903382523191167240116222797500237039844298644982144547227958330071875415400495265848935112491425750953996214754375614925640226370849435409981946892487808398296300676450057523917014376378244487913392797661529603655854938876571668015192904650898327822260039448924139763122308136749478966622714388711529045122557671207779419253596081896257009539557687465685612482135908952376678343928911217640918152602866433807302421205160348722703775544829210114910289831855618250476102153673075333341064097412829359498035519090355221994573602508176640354813317445774021581259868388833891094593556090370112395828205340010452283935663824180656520201163883377848975031094626521025963061009152124204215525288004724862781351426211001969497934173796279109241216009958707207971715806896114972329793425961936199409747201190737062944358485492763532141017373866019520754779385025240332305977504583963473230517039443855070557417898951591838146891314462986615392621802608902789260522040504643175542902810247490546887401761385841277671774453200188775452165214214209126058909596301074005046801140871343558645995444496804442578452749410276323903777623870084332485336872188920597510977108192748335025398806561390650391602837780380717912886421130700434594608831125888485622838337925974014845330279062901530205087105861732262186092172641181730378735798879600111272700510982422754786559149321811356926179865303140767100968474462608858270422210191203215585779704580503786921783507911627247238653261640418224867942525023088055516146930095384542081786945105095441958184098009301983721426818883043465086131333245021461726510377919819266953775689901457073865545179408667929111561656918113091063703901948489002251192178033064145520863573219530891305077000999699179335006272616222093740338476776089709152726453135402001223399806220402770477568861671084495971626002607769975369718936322135358971722288418985159099062556280622946113971006120554919251451587742560000404235271452641269664747917708454607477584477877429346186149808290859058661083085281838443589627204563351823243757613045282825606122197756541528810599239759377590461815407350099425899686359077111377795152564868885133230298121236385465793647752415669077654383826686511038255881814090897226529477166862656965763514054783185931652821402122464842475292132853307357889567184075722680430697310391221768583163707530048779548573649679465671539993917289994737551453264281016030219452037013107940889301426166768115512190410021548199530809407443712343997131862200506496777642620627730312175903259416432460999768234227964187653941409564972306146348228001803139471205889524834402485323427019867032682806884180596434835118634264046942778084931069792783494388073920552888329137332267850050586851465494994043351892680163973625921709100814709145737854010202755372731127547812681493137203710746453828942665759679678499011732846014842954968457574610097964198644160015071149810013005433611905156162169018375643853361778226037410890263082512185128432113956602270908530570847724583850413566599058451960715835414203038473754226704927342394258108220241636916837750254137098457024622124131523131503780755174791540732745932360760824935939252762457069613651637340594071705254881785293449122630793720869904220355644838894059673883505487283310896811775746421112856341337412666309673527493100598049270186617006191052890576819906485769231913087140653599871146216340305764131294299050292974042228182648117422497949330326635649410368558657211862962194974156383552823599847801046304569754392922553002109299156044004136876756446908167248821999463435820030933832222254844476387654968176114295890983596859007615470742489518252184884944753641099298770871824171351485810075523512464667384363093172320581446640001789025290194442462509139841644772186817889445655486331562911686616367528782263402962846336219988440126497885002001231882015332091037365631688978534988183428960014460613984411506055995914338050397198806107840255382373142190169411615957711388861207747136434009585440026356249049535278246209779816495998735265746401323453721775780823085817499603901145992326383437173221133508720577477842333682642989880272450141923274935133635208330921709783597767274163931961686548539393709427406215207400577029732451740522998441270096702362977673310687633267967976409348434451280659901231171523636571970758612302567032911828815654270004717561265759935814232341963513746410257102062882101444969137833769358441064503971035547548128031602537916282581452691304600607644402179164544441533431481293977752125231715907799273513275030792897485285138540181786787574358039842054300933545999759005999691644842519189008541106357018049965751072682760993043105775806786371351207419251254781795211150795016127088745642218975390867061464667439866500099757079821421782812973676105224613823858566378069810677009399039048143006412009265847050754471175686911335787959217406122757953350128775965601114266403930271531484342324725577109612818048289466288872117905895714885036837167801083837279025870566359818346861144883800962217555507416590959036620538575948904695004684380139670193103291573246652227050081760294198810761570329366258485964138985394175390695479840355896737761811037899865578190939362932412483243906530968677771136498935766707649766381306800485347818901838702790881453639630311312090909125113726799372501303192771817124028655979306733936185765673254341671876102792536924448555302507185467021445103920932233309565472881774740031532788649476807386194479494955521480028328828293807948464659463191295527183141068454477928914243505509476284996651426440266648839534024542387093388590905373371259423006948443766944234923853351002928588686423551992704887310122912504553376174575479792064598833363696222700990958814818192606347490720018455782394454387309712125768074581609686662874666057385183742863499097342563993284849881786380207997927219166578063656655859216003351944831031074153533973199957865643889875753494863631953280856696546171583465733526071665765902784378274435838456696534472664588368193735211076839651320664883611411758603082215671089628455346423473762563544935639958631127761334435048553777309758380332062001514025376269383880765192245263865418378894814482185198834450031831593231432889526421917043367799640226225197360391781673004613033519915761291535171496721562282136137245504596224563604540107157106140188526892332882076568086197272785442853281453830097951560565295127944929000998675413973072614660518696940251694648078071784605530015664294025118061577799345257478450755018048868308406755700544290441485455284841129198357699087768514902355238401852456915601667202482630525992881282518959929534342997597407577214896248152161305305905231850699792584499480675996990891259174105968177750258363563306090709067893387202695580246064251171913339157474174940668391211148371389206895594544787402276643248289565750520327041134199696412372623421601873222221628918033322727207582419017928971542050696897293368637371007825480507157518630580773349257761352574336143513263102366177726941174501677705098274297521700304472203351864940012449172318304594289868441951568495056649778387310830851177680208793326018135379289653153172223727392167724957596734007570259717032666834535951647725981539695263137579694532958157786380213659743078489891564704490408099751157817136709789312973996871459352514681445946070183105949898292245268276711491559771726796955961819466538769482285896624658872745938227990979000465537518382729712914580181096398125429747206064902264033148636272203096020842306374361424265238947057671727583963833869771628770364418979493687591143349163703683417171257611971372434730066515391821992380885435929975642944037238342191116366650766846210917595226816269469383735311086416011952442088195500701965936448783183454955545761663549259642762754371462398055189242547917731893709507872353010852450502649379612600809447664796177382565568441199836898460698444383305821241620729440191111771191758795025180772611155120425476766883330679016693744042290599694113651862430873655632878101032093229046986211963706479861469783300814158114191121004534652414906276726940322821612396997831598455122975882438198049333423397142970365498690833516332246458585435884742441215757579057238250566175938981726389823776012946108602200125856280152163075246188547395012511652466059364255135731886840656737597374852155043933580390300183099574612509923163516370619710584276542608542376680744946551829256406821089576255915434369304148696877107121699971168756390122246286891204240440736971108056180765635971631684952614008983389102025795908401750247114541951754577100969093155260330729935005405361740680590965710641924262859516295547256853240534326160420615586067002688040955779291848141522749613324733039166834075558214517517309214339330725568165019954710519751575079535678371402352773506290734858514281076154203584129812676252334143720635735519338258432769435718364740389273091237503312440730788459445898852711303519788345380872488958082284644378785647768174360124406869326089233712375720501961390195938305348094390384356157154470635269186876048380862163326338886683842597767049941822256946798232386321291557066684721642997313612361790545567975723783939351737573795604519659850226702652820413126164693457357546322840131627682674282513922396821500369358157852172944839390890978493745144685638424138747051300364320944550551094849630140184108034272603027647100373885964655107538701926431760117046254676113219822831463243227677592819655538075132160141965741978519975772531457680127503197312716157943224113904870456419215434701882518425980910917986493329076579034872294584005362197018564813456957757820746840897088388984474974053309063316729376185834889512844137370777273667642306058990023958862935948071299825859861358824170904546269184744213788786327691783062929729743630076235153894093627076757213850078208149933611698424116901178451844420007191411753522942308653223252725925556576793131432104840793103180736062252978195093071834708451334060021730127261796899051841271023245478417836896888314743634885398911254637489824025889309405784777403006233226561317889449913570025772125698791661741020235515416529323769313290656735157481569715500687099294245333076772205963436136093596002137297661386319398830873528602616166272322289951608213459159672016772920111986007957834738573093685530975923496568852847481864068737266056539199330136972609168620552531321165464922072421743142772577095024705392233681944240330835303528014478271517344829271329755063814859307947124040985079484592338868260546884168802207118757980177755508509078321199166396659044714143098568011880510026533745148337709212755023005906120688379038134881928684340899445424391803682176368128055037482022876652655417389285425230971117290001352019697147979068587564822805809254889700352689488621551606435994642482684620217695275801731966684680773708372145335930371672478824198252172463452865863118412808877631953386219834429047433097945189039262220965279825620295259923634763265624509979652723193318267468674711151855280091655985967203128044479833930449829626405875412907038382474008755158128356111532162640023347536700292077630843771539105422832643625537583844795744773073871430306421448155439630981996390954705961428325625649335580765489317454945185168218630564871564509710638218437032933164063753507251001156858501094804736121013501267837601749525509911505918139765555239072458649159882804812629343897407092272284042224336529209327346734153951217087837564596067154506558995819913923980937731807490782666369217790472682531608118767026002896210376447496264729774216889817478470933209125218921757590633688843487079255565480859663736675062298668336049113788834932318915299963256205921753588947517629271876736523470162064136567773365224826160257569729301682668418501679800815540308662149230950839607475265716303494399207000126318025003645525158083801072858247203515144782743838153962295081989264574245321223462532328542568754875670910659350927950082871999268472454593335610730208618020277898624534234215629323236054774085206324349797167522315461668482727938003988212132221504500046725800825673494786234597203435966182066147674188693148511165431190545943693623470271800473005077246827518370613964818523828514768061811264712532463652103708614444426828587197701666020205410127727782257507769793250787846578234109975917369376526222413097226235189989795643259635094943370340208336160355131925939349642158281643033401983545914028577504522213325435338405200738591664606804106015848739574284427554218281677700418012441139409257623035246239883283593356647319369417912215519986081146033214859664767404712325601935439159016076180104701366985442637678485605759954420399668296914754152208821845523969715055077492438745626656778322557653972797454793204420442026162472107856136728126603519356014964431397178295697340653842718592438500800354924290131571568524685885546552398990069489280432442145446783739156785425347327864246628049655605689616089532809633047578977278154384929278307869009217654302737530906179705766907527466618207988961561944058031678715743091499882013846349093789813732275540525943210732935468082300493165193377451001770429035875307828489720923558204431919716000465760771382681080777223445182454914497139531103912953847401271957290202898034273434523233473112276236240683602193206389065961617952802821527440824271125089910916309692718215274767792441244977154917326707159746402901009501849178299795000133613061412897942313866664166437521597169805261300069242597339232825200098748133622767118158925596681272289915513609019705303562011405706653005898971889729205187823679051094419307609811607671999967964326997290369530882504999210235745065383938835784877796546101903450633016956898099029006994936652819593849305170426348288955162884148778305216570469016164417967687542371694951580325533358744040919054168139204805651452222580245891506501456728492513029770817748806344655740412780415163874940227373262123121944928974011050550806864907803895481226839696474422658843773544993653499635548222422724813413125530693968996709581765247186475888070142211646485576391053689260943346895064843735430532820417730483317884751017006415358974971185753538869292338423414209266836035363093439588466946727597524102781902091159642603219049362712494472927703251027384402217971439134363200188563036428498683376907264160938793238094711269695883482103519973824814314616835828203110719157934228763420064247829395519997223085852940106695942681850374085667183365185474021467336579447335143202490122968691780086165627800095852743275284313193572135801690574547611380613923719649636938111723678970444448071748964841318812351052887217525127751334632116215535283031609466587557322264770900329055402886956550672702216897146852343541225076551824494985444466315929020385711991438464458771471830152265220270313709721614250697654346229601801317117883981251579088469481887692389713987713565592085649319580220461356725216314752753596197356412824112398297686512183901734784443182976700844068444942433557360442666731276973727723263561102367817993619632362442948744225223860735288152459184606081401432976697707844413880416126348388699742006850220908216942423365689942152166928813852835959753153217077910702238629992447800138377944340850115525942365648495573733079882657249839822205717657456546962876049703547507106535080963527049633851647924653703336792830369668819184146542461686685234384687200266624873925623607613555457591621257130707727935823610653544813952066531380603732007343421334455313422014690004502739905832020421398903731719876698684748662061044092620044681817880527258232669078672963465202730983008170493405301711300461232261350122276082389976503645688347592388687086835035169886205616784364653807325825064832899315260758061210686738106686244616220386272389791272561475288402821854888286315306927434281140537953023005322910463174016567627643668576816283869101772966617564780853633068793956553363915317463490063041070594071157143467516521120754794176520196689748511635722660839711448442421204919727271481854197165098792209091784979928851890630628488382627471915432600940712671005886285357576686851915969018102239494720426416019347063273787850612061423091956965842382557099070324037015630973208527042160511972178072725102151752176635170546394971041200143178271680270747965524010143568483500091801996165776069477239307554166044438196100364037597223071448588335800068391585329411382370692702505426245185229275999262724013190355769087347997934301320737377469624143759327682815146559439100709907160729568581565104095173191586791105321974182597921840983462807691486707409762389357384729415760548259589122114742238494737750760969952868522048656197521852828877993761668757352750198989854024680359068195553874014800844465777029473933065370106801459057080744709417809782082027677413402474318507224724648110736714508646281901806549461477909001456577874676157333949727625324043899540825919082078784244612211613400557997400989177768370076130724487027685837634396478032290189330364812518934259227855388188113757041822382002143387554239431071072103739563376895741947145984562203485418642461112755547340085246571380516475957093423641749920031486946410157035946738447831944823977337526484877941398302192261293362249468708932824523210596782199181203303260898367319384619317925147979190911022135738924258865466321867759039729396155734553857938338131606690707304473454826034762378915600638182588158851576694829155200131284849592320002086535921651717220595316141264920498899255672837652654675889355528869776877518483979772210314183207237701766778606491400603257793202563341953169091956374960070876777198006816277466716777303854589527156315422198778119449665527512955998214421305159032887527266672005722180255178490661806215646781974320086246879324590708582957333260688118067503383430600658777993949590101435562312615583019901552771192050930875603850619618338491229063587725764307040377318563122380026901223930327421428422406049882023322564642729848512023942786903013558195741345200709667405279287263817206167903988695797905801551473394890338132552696200875455843523121032734054224194998845990101022387875480599056746548357506030482884342406568547055591651275461479551605175647324312618285503114766047177884524898843318966536048331039517084967776352988903214432457111409810528715811553279843575212235945361417939332773684701581922137375234255693538258856490913549969781928540423182348304835350781855989064675047684193303259936050097961803273256729766095196685190976729068880447916812518025749501580519074516695390658906029878081981203305480415975356977115475082123237644062782821205934215467898570647550793434061664603527569513313272419551841006702876649874877466472124197714351245880155452997140428213959643375843467698851518016127506029960427406216007211928196813357298994338928999056359835739458875673664195054651192045996738668347283950287607636303780594217054537218931186071804947662217727570787243860783705079723963831284802208361582891539479300804449376030599110260491525841914945040321270625873287972381186192142379908398705836226194347707007555393530395896633759580030081648984896249088055621011982487006573446960548044443420017829655785825963245460351295601011769146961089413630850821625506740924584802949668001774932471056590424900320146781863228070171077495450340816294770836980953084772760240260485227981681031579491481680383711183682533087820144429054626765554521783332326447477284672679844199626639868256636160320421798633540202070484361924225492172620177587240845770104171818164597629973888846509277465948760833162947998852919317693990975500728982059205329421459395110973612292663106993278646357712958040296227568578040842774978640716401311365801815743394256802766802271927387343789639002650827477476089778150004586535339722822884600234084666724978845218600578022985852884110998470420389499793105947435239731487114199594391583615189556918094146859373724375769137541643037970125669956001307482769716142408540998124242898408111716808372392070758847002806479134911446321631416309736574369338654734963498322405303976388629744028789024236808418007477538539263414508016154935442062386599788398744311174171675918458332864979346900480405367375988143906568520043526644560144792160173487649145510383973353427943670697224289361135373969497210234563135578253354165650362112352678487805974842909766047427478560219962601864460760547534961709622895092899633934834140561404618686899023766182823475199904833944323841671381650107150478387556299125919150426905900042013984546359799973270974932135438523216520191373962167971744837263109967357504941078216740404747137103739709317084202557838963017397957143038573654617210283216494025085552640769744394673814096098529548669231899501331533176593430024832173961710344193064930661210675155595258049758882197553614499336980873888543232964965598507068468562143266367926408743673024766886429420776247815813483199350088662734778391366188211727819671200381498596313632984850359042451316232182538172015277638172094662651161618866548460318146183134056097592289571249030094600257479373425446751024155238086111663019993691196255982035055576640584171077734128150314095604084265915359847122343123664505729650519449980282876738566631753117121004895177897295250744419101421606067342002747112994303547726356767702135086143938793581529002634972580917114533733911782922157635862413094419864530245787625443513102327044827833921679359028115628896041899367921751331830614647966768321717191426475720885933061219608563218842616447049838866099558822081951762267047511783139175673885730077039942531371249359324939512230166800434696010248631415441230619929712180242713834231192546075949432233727574194570187287379124797926766967484135176236090864630800983352953909324612028366673425101985246323408720956760995490185328835593539205877437967345951689477618821657801863420590536928270265417102417822046058988259721461047329607164120879003938387456838804709816288639215144963936878326710337038451254872931865501140545552964310459810595651052268449231431119474691243791745273306900752669898293775025738751841189967532043793872107129783949577094544847188303726885523596268076857326481178116258986401409476331025564744791943894237836484150207423701634713391244420691327049953689923385898375416274175205760726669555536994392588622602755344490063001051466067966442149366237669487719837666831327503422180224525271375947498554882128079509448045099665384624669451155597272860003181498713077264665450215502449061187152911401867369132116646932899245871716563984463461305659095415051324104679725788893174776803855612229165752963976887665768879695015877341445876689844940856878447104052083276336164748546926301827769909654167517127822847956448176001119442725876541070582653353781814473412571311126860112936554334389526856637697291354594458852237325139149002892888731510876416036638760178213300041498332594177392554650948433795144302301889693105183001371121021493141183820577197262287826920895178070856740289772711156838928093927152369834157197994729229036726139414350452690177831288488145322329997782083427300558739626566150954626810639414084898810551981709114846746542663045145289298050367976131316682515037187160868989517761099597679766777795347784046656143494586205225305672576905300076278644561232909547206490879049205705249892650747938191703753495324322291683095473467679839345499871121932141956109895157839504778502925202943182427322742865152721636986387456111190005407752921095455957269380482841715023729514135316230697910281296196952448512485093700625478352949028001728403747317114598439313967936664613417959315474220651122125982759117373828103849102535561187703556280943780504685865980389408867872610614059762311342201683645115122524203860457897304400076072601270261925003677486359501724430880727040048726269285460887005386333353254438678423462063616065188182029723290050853855170425913730877666152274217644834274943064532135533401117672543217476552944498475502049468293123930920908049509577294220488191307913702786638071860365135941693283115634778070412224195799004035994513952376237849238271425644228263786155695380982004703580436975909095283810508096961285342930970679971213617290871918856899054468281835990010330693203871891129162924070431488346672733984785985146388855720499713290844293735487040519438933123114740594499042001267343962649104021027264963102018927669614148921387386481303967974011071909819006021542593253169728383612160393655079128797850677473723846716286218686963289476388349569126695220317720484448581072349316873519514591431482279181875830381016489446048437685717782189408034959296970724353880576566546699570767963968727068464596481684370544631559951334489944571328383299398318645430055093827306266198158933724788867636305988412771937213830308011052795836448905533858893241051990514037566036252888441497831150356122606375553555361752159756923116461801576939614219589647041093920994801803989920965127986053231044201375236945153094692373595303127108097172726571664514910496138026856997156784451571400008880971737209624499018120426324860723803111544411754262931860322878686079245023868685880302407638188149669884572382377479974036339158350010596144927963269185988929355969589613027933740083138307111642393478643845219806010232060514045428784010774756769762022009419528316073752566225332799016485303243598276092779011400353078246366437676583622277527579568863371213231136916549485607263203598320904127679731170123618590326179890270205026726137949428213700902237344807899994491858256805775156938269018039398666381580609723540365024613891001033465258472301199459180669043424284865424610495851724400825127289354424223071048849372127176110575103440485064927681324478300752069796066075408670452072642658953826767019389611629985090847853962730211567387129612230759004141596375736682888928556783607588223519569870643424781830281984143030803956810350925165547093158088094355266866717935861266704225858772494364249001093321643718274081026215510039156552841475154296059625234977918143439366727632703318105069727535995097074417636617124537313807283099975340631820795600862399456601857675511551598066312094443350137322156066997732532763886197884371112341178418710068497289720785464586086478975728053563547401665469645935324870642310455999212571221367136752528902827148448056940691609503054430969102901905470914839541585105709736902049175476128661746771278395921900121103403720439161606305578112664270866603890148615943547300734093142021133349456710665521456912055743628568217408675580915820001030793465587212085787457608678594355755908170861832514293908029275905796225339063520676199144402160415466337150012655528692309627384024751530725300878449918054213911825415302033344198914954926980626263483581359821528437678587606906290671570805218282066644471237779191699484295591900240279201355150916848451981434827757789806318360306275669546653303900671741487512573808899546610277091257387084815214877677098631740678087238149148262709054782588886833712429745019254409090739253714959441921223106931405609839674044360553108653995116406224644739483853431482845040642878098259734512986042951384511109426578825633511260306783003278308374373956805836142771234375679602031763028921314715960161782141814127023538166420139580120920353618816745728529504903567376126967178679281252284371304746535674094920621348496755012585562033074530848711784825877675699106041764929112738897269053543478833756904495210600605465604584631125628355086778432360969919056021498625922661329663756859822630863664495347195288101135824628681146286120177367768935644988145389935263936719879080468374346941690460147693343839187344541348816998226375692508617840447954657925827566027879039596393877472869405516086601653586641639509080903897684139714941662261498259917412820592454135063876893458352965473324265445018018364025197251066195541638412081825767442879291356687717801573910122426264109545850885749118156686803308259596856489327503517153449755888528398836129221578202112164899536977416793964169427079553316736697631201713022486870441967938961093824028547613104276356474377420044325923013340576160251857084041755514518786880157601960709671971934517439012052092525744815681319283309756011491733886329235494571525907746056732334964821599719621885270287956729826078014453973961219210143281277655552308736141719741351812125626144444753812908641380126262034098883784944854339506719748872936910884062488749686483000241535329148013287540395136291810856917622557803774077194905870828115345439862367486841643179172935329977211525108708137014204643416216331749399617989061412300961840672791731514850810550615495739349719868888261873565427106403439389377654206395477945189504528783222368503118780109285859058295560436288312334270280512733262696730643486688480584302809532454051644850557891071379514338532038917543741887110874666978261373599137026333172092165197667751010051172849615687742814721005562452570738672030511667382706280495576623070367438279138033637600151988874942157960626943663513016679034405589690977734083816381255945827692101537249611634460760286387508454175073892547428742416591389142187138552577717410797431810810622838394255817281035933374882892803123479796264478539609540080520418196976864031100177463082558583263343983271025657620114813058136372866381643176709113483645897798592605949156532273720339234624536675067959285494590191445038540762780329175076859298090577311795787920332482987167518103885627292264809182334363915127707835069010338512897295797557277132071876699535980715895242924024722227811512413966985719009971538200200683434695479385859618116103809045763395455470402596181741231430256752026976492767109349646086594902066344291686113351333625278296550149346045706948050090276778983672030352424897498004834432132932897886573047462204855758941538246490156176489825214656232872086387074114259532207812376697438807701035082393728381185931400008049950238438087810699599119658583902672581804767592232337258931544200439273923081145419414288756474795288150352124359930618711436384129497216480627021600799575220154310439453714371046956386060081437638910330759853558456898800978879347663118548233095112763343958560820954686700017948133363215213634333774915806099599331941875502229390519140974349001043583431867676343528178921913947903420868196512321597467388333387296185548704303537344989920131320830430893600599779626514014894234469688448515623581896581141636486984124418622390502809721094510160850915934978378664654497756455581776711917499135172013760619178533819623432947222466465491385992503318968265397695902897588613581486817987447853827146626689210861561917549910081068258890222804558410241509803399795211469885526122896408283891828681392987792498003901410833576853673281496060580496975816900420678455863284627677787895596697931897444589785262146405447683016405894275963092277660169646047607098895234218991688552182432888258746230799343775728356412968129517117059975470089069868164182905592231267024633877059277662279154063479771646847456266934009568714214850494214596126864646638736797026556298516248586682583296371329220108681676571483322245392940525115673354054605346013767730396780089080217754879598686474547410456918983891967684401574907449995219311305496044064985916539624170440137884800379631431641315723973181391833434923462541337759684018005549739433923384675943493255382800457264935186810048146462726972823539424242038151656746807506141903119717280466004499198023123102002971609505678682461219376528040291592719224829833540099934728011314210719592676162323203196725749650247764124438014228551761553533663514096616943359719170021681720082986709685769296186277982862697652499059098769814375548787597404758972227245918598088312349004576281504783879046620623163463424922905604701419646146700698821029900021424387750962871212152378705582841458069487730323945444967782756075744609662668167990678383670177844548676103026120677436224189640047824725772403960070774625572873895020014557638275079814332175636904495163943849994417630656230026864362435728693711398811860738158328779856961915927215997737051701565783909017322183738877762156655476629511118770270645013395144628794818176658941650541407077479210621773022390237704300173945577476660794783258992570014490068183555617173588711649327759100814766359025115576605559271620440085733009184658116193570141534213410857907599983082744391536066331389943449137934109851795896764701742572910406950146910033637654502805063461314707347430886780152120516407065893828037542672409808880671400701249716186956065871354440028575304882968877223741398383245165430275704251765622127432803168589308082621405819974773232097751961387116792826788946399335963465272018243368688570686002629969456297613794350972977985409345237787151640282406420500264704924475747049789695669236240914303844832953269249024188323493975146133001437388332646556555974548611659137807736103646518806296503261111966632771003156836366631326657339833331107404715577547842492242244744188311176676305128220171694367694354781877847862267459223487321145758605631568942495123222727036746516832805005834895885398826510502093203426194198110277855422782515057140899729448391765053191541835227600354473901663811275137343075355562245663512177979015666582226639769601904736022104580051321169812764190309291715321464369950934807074828766277992379525076741276212186717988546561320636802872548205660176602189494096199810009151626484772940920382729541490144705924437949170003195012006494644816653314276970816050340704539761745269986410850161491105985690298734763548893654803594875001795038336163307472775914305482404956204299899680670033849499534863475105134855223241320348509838707581938066121319274352556426611694013580810476944615662552246712571144154841661322972985488821926182126861787007336885055214763503397840582872625587232612160739727431714151149046475933827804470814255059841776417537727454080991177595096290133362071713357745896620252785890831457957704513973441272676875864849495875140263913771287669666459544368200179941096582449080497706641696142759660884115487716798672317898294644434619465703379406826144989269501956133538501358298647673750085439821182246307033292293769394822830893917930509506030414863616302357295976665832313441191601564479587753155169923963862174164087822538814073923102135915502725685974435369016010595744699054154335185824856561215811962087257240859242974375356988056111379580359379383053132932190232373131470999073519174320636895392302600833853419882553088000561651800994595190865651830878898027977553988250403747851093452077447546290830726171288983061960902536153168209671697424431825788645833631920217001700688514882778991380828443280515449905062054779246233708093375500118611708848391812741830493342576761834484618107950240087549733818487505712323672542359826658210262212641828148417380265360147868211862961848742598079192650961522981483645795227901534521100961151664864733503563222933616781730655637058077106266006310383850317466664876467879706938636524922849006411957518626644345997659716383730749573952861622771081694116698978468755035926798976065489566356888820109851936296489324689594055684384738186073468555247352123132894503790550891832633260903351026151883764712065113458898463347832634831989313773352899093432929410794096609116064249350159540321474385724636584008383445243031140928549299542689276798963393631746837973316557093438736072465735920529678326809575002802247993856297460777786694762940474066344897727154700854864761995974438563741072425992468367808841729971160058829046517705987616894446689829013394443641653350423196444855432516464853585880799218499461472705234382979056997287715290348774551938762589735076925922320930448691294223889597048484561143531066774838516395568674109831453697095110328458977321272698449147536900129945422510364325924151855832108233712567470565730571485746831532201780567193005065770930782783686027503719251396560970609771380820067906777574079727934150953826945624776496505812650142778027273224496423210133788151173958214423464702066098559830388178939468058257985956119384676313379563937484848345864393431833134862415180471344990874962262678400311722877880322272626460020461532833047698684049957571205777070337674458229730335221280917672622203641903961265524263539852120875722683835968446242363087647847134401018469474971466264875461755374746881170613369030309429190150535693554140959007928100921522316646029334816361274546304694363419956101089055715263809729831722777480478151296175442341078241952489145458519037040240403433541175251266276924920896645846603202495264485214819558879026969392265379055343597448402295453171112691648804832470825779081827272729359208032808561817074326859865191882381487661123461557106593261243908569202237085867352661025121879631654083469865433358920140326147644050443196094875712717795493717001695408480808543371079522253593395068219799109154725246383483418724023316510581507835288936192757053205520903590651608359137277262361348845459598016670374758038258710001628882222933307534066997154313466510962795887821158452532191130800936373884235103878846000525637840126159276213461853282616213181001595460983223639552391431073584543006107875650876257588707324713289975434670830058588291096495693244477141063215488746270966576517765655632220822419747735492634082200079765193301191299574473167396618172500147941374614956645019307867120870915303190374264170181656647695699135419678456416353393165400419940533166156421528564354431017054054685958185358465999544058189894432228137572290894277494671957989112486272950746230210552453186013554239104405938227501347565957754035029038483061982995742056768146170013814262250515760125773953514245904693254150185231830222811130397968400935918473667205655113046838474446718072808144688046884090060220348511142748468929129185119783722730005506426151606814615565549264838830684943897747274804564061001594371795869273784026177907043327476396122906437713881597642205779482893729831613951258093423102742361977406777735611370608771888148453962939992558343276850338288780732904445551647597801132465972353584542296963537346042125609688664354170938693453108298464308658020866107214981847895321115539858597771062162105074201479618659736066108458312541845856500328534052078272003150248000365354422164486540017989701350814342229118078307860018069522073717905934739908950100563068848655049693375099794677472098093692486578259648440825983888242410227177102708879867066484175115722455834413111042810478293064956201910568115238604524705461921393816163365778482066382482761972380736855503020481969729354171856839814167249477305232207128902584748704304834140232671070738951769011714121639334469514680254342635100456982541494795900383773633240545990436586989129417595911068888517520806979866469325420349762589337563895045728894394722917324261281939498356406651824604734693784693929163970770496130855542867683300883908845127634817371683294966220827839283349411161543966554537794302422650797039337617164132751280958929976902925599625907582656178683206801227802177112985340569731294406699395724959040845700782403058159129320889692691720578024626745395686544203935058457759677766777516376364265179417319489490244052253449226861096679075830377046815119023760473975792370154426498420131141827844501155572430410873966390825236434106564144865925284729340871871941596887428949227793711561233990401121290693258039612954001723336807576408417958452287481399987954927744777014336017628016132727641840935999431631303299342823425153495355304837876851883739267865043624073433751972176495525192401190247471779441155890324550447395049873134193552240246329206033994376182523522526744673360806435353337835015663298017397934432318585962666142947080257319073336011370447708809765951610392585393740386392555066513187680880720972791851047899305297317977578876510157463971576571448814143087297355701150701482082344502624413394695390372794138074681365212847875805902720481368157942205942218372913970359262506020673122608301568388523246115879317391193805182900125332226330974358897796938209298485234699788075900495019449656917138780500603484356177390988895276315576722714323544417737510727436552112986245468538854971662024753579243338729484068343583218156659822281033390224236957649966575202186143011837187150942139907755569386212801009814910165793659431122653206256281604321464569229725957759703981185937134168307571675083722186747636367384520755607764734756928083133335465543802981542697016649282377299205194635580453701453727540098864765962695128545106239231953640351249435112572380895293300403018633180469152474770023698576569294553075669534208833934563704638898623306142027179526594145974063875240502232763318597293471699618319569289308912475390354467203644039395667732525450618001451058528967991038996121657900061076948325495182697215231407399319616924979279956360811165190025847987192101263449133829269970396785322670028329160318248666851795013534694710795060131999766692290141584659599000450917752653083331600613955245213831529339749194978842554092605821596071454224740332509137684566942799195922066109090123582358880380437419170471778124138923650361924011143287037410029334634927862176034019568646997098047280740929586420398293638743046795665652760613024715175860600201647050978586661907891863246286689043842378705064656565785043724399819636237369807051371053363467013435952049477271285909435222578397898291942553447617608767662581136824966113306121368161645111430010622406824240164522834789225766161654745798008172895752635041992595662183453428208026411034576155796316441913885976271181539509422442876256763814744333888213129604073430516973520275023901893457634724105624182245136692858922724734195704122425178965930028569429818395086365577818725752911795116326066971758290549532895903923993061522229210938611304331582961429650014631018379451102508101478490234581604236774493653849458257422133394023211354046711312670237269060965276539945615988197527064169309273411338213071956393654662062569939369246589735541121722812326862664930755733118638136821448085803780823607021269993552924165016557322243897749872574877856508796293573219536145589118932673676487069455196681204299844320710380045596601517835617440928890468783444052327921211945155788469516026217155357179828342442763116231742384912368482053737482182313740692431361565727845239766221248555705970910237370020446284798329744416384016553645218813883239736946746925313099637904876719747127799160746188858166241412927137075219963366155049123595148089384978484926596453835235962312410176730163681907278133878645058800260033954246616017904535463647077140000569827625087646028890296415326195283367589908320456314212533008685466415949340280078993676623032098701549147578865825962465665979021193238692295983043222573197767506832721713638007609712323849604924667470921243597204920751767307286409380427012857117877598116567211720544974884845160607341021552542204188625997900091257559769027010934592565916270722455675009268015334884693726188231962701563510390557095552536088732034640735497596353323825661659850885539419763975625077658401788362662201162876293427683078427792346107831864318144999903862439272601477820655248107633337945439806470356310393694882335064745447467108106779325752568582751089046960133321441120986835334214250933721815962088709441655095208804766166160268915062525773275941091603385934001564344821909838493170776235501656323253584905176719698649094280966508553123137888578756066390472181522710030498966617180618437550129857063076648726731140052009986258179385245016988177071621599378050193674953040286237702036251365339846717277981533016966451739268104248759713967612174890219886580180908635585553703555652416722236569916046201542972605853452768569953777969484068175921046289458613203720109591744597211579132647801419182014501911519550481979989937082966523586508310983822838617432543943366107519483184869872924609958173103515480968173077727212612946731668668746106466794026380212452653328326874550606043827099440690737159110966455516559779506276438633525035113527540106286308005899764043940827892685107379664770189407235166877593115883881334338628802423160789926312598124198893359750122454969463830973249538982066733091828037329426089327391065314104442194398612920738879856878424568488453298263849529676738420718686160383313621164792914207137841548630490092114349319408867308299071850299946815156540506113361607483231073110140421928886799941613450459494356167656365590814724719303093407265920069106860378338244060668046418320190746792630694243003049627844511189657176696096508465075828726068443145298950545318173384891034446636469356753670246471133249859011141781573100956029013606812602306404627092452025369910032548605731848160592042232211203134091304308122968840845914695232506167545513266665666385756262037074591045075794776592583462094469652481067341829185362555179612789308123030848745526082795830817960440567114731724559888147375455610703801025580430131812898056184520314713992852744673150381097869571199519218911541540036101823404782286994392853170245126326567598026765753279371687082941280024943879992363705062797875397036237694578426908410505838003989772562588071645706449384333054846417232020185235505417981089127181121168981502067452560117483134239958133999373244256753757427655928894629305927889473974762140993858238859519500967401022821233879946260893164636533246096930795939092905769051321438713301369063706753275427029466214301395287097388095111763250505552429110497297465027712576479164026372778514295657959452698237251316260404280907109547382670384805798098590222716556028058145875201052208589132672544864680689781754318552756203542980307032562811813300835183478903331147942450437119899973253462359122980636448206844554584314805606431192061043563292768848566457104632441853372928608381444973430846113696860074092523468289386026959903789137654016653568877133470126205294889045249709353138684370403522192315695712158039188507246200110559615796786100190983602730237997635820057454567301373805751007272206124862518939535326033766090253431449025107613721060412442319399885303395315363023881885951306692122804509511493439491959017472215149907918167592223323369437812076535398833467547671245990068665049787537238332359668181929704888129583384405359266366523625601663933127365199916381990363407481355158789263479062639178826974239969528817919105015540580260168147309897798203246009130406433939525052364932837367752064233318303431250149930392379115183112683350974764406424970618978792597468667276181201513525657238418865958581712795787041169072540657974575088519807574481455383550589957046495813086630948915271994127653784807987644758801039413336836005554636377386206005147421908224962928468810285084613765232103123344178313716504862910865323591631316855268507916699619940966784556447700784364360001938638850293253655296656559686325854877503196755367334424682037521366041033133196440532617747415997411686194147169171160883530001455636648735101730046519336974981776759815144080369952849910203972263963122757046274138768015538538805161930329765381048504565765796423804812955047558222364943728266679375136732316272398077207102395279980441730521118100027682014582238210288835121033301892357111032368428855328826525775135930038685303795017388771387461880597664412031573370196479214819054722044332121696639319918482127058098706407433788647863418296067858145954852191456760139976745684521274918341347201658588579462144268018972849714461787402693630546580687035756223703968239491265377231099318198216068513001830478051387327966023563672553300428535570811326715165126654351984366450093476672152813611550254278257578029140147259663651090738965366803420369848748255255390673207057283585888480781528241854993513576883549059152775168442751147689592566025509567460563574031636814409495350947126962116753779723743259146486942175713728328758230125428575151351152009275720525489437932896305221635894168116845540948695649143706661827735526547119295540553676284399025745367898267804530241228245970967466318024581583135189462033373844987644989361430290989032515286008203975631924518724199928874567405293891600073469386700040477640538793022789510734075883520002069679204430404885256419389123517692351763917609934116612402219154926779737626599898831323194131362108520888347268388331119100042947122861165610642093374346320853109573564770647013497706773593513342955682766054439717217460832607851997880508152935628600578231134432777803075897840017243225404556056774891225191688945715942186774719782160922513669646593995098343696116726695618569336697506591368436142894288974415854242896963802449590230402033081145523769500265192705600733431716450645245884765662419093572459980847752191653548869970478884214978328334855969231888544891337449189536091306407529614735451106540796278302399514600708558245728621694079196089359139786283612374207876847985922379892975744645044341424217157575606897079901994943674518431480368337061310447593102597064888734961999159749640873983856173152633655069562406221821756865279272915353712490177259808441755589631077543602269799023748772344341495624833772456214440909929846640005599712289457852263767975871467062065388648358246173755700943751997594758482143641486477376666182832878809606711488872230609200618519267852690098980612949476705131007664415967825842238694378143589870161260097581938350151146015288970855842044686957523257119046387476681205712585903586113802570949517462355532685492765466968695292529484985305862575115068287853146267090207949270197409714014752527247086146032810053001159372703271184894573902226960897534900499760621590378896802140099352177092574930622739946768232652030605684011492146676954421800344640365730540144351604556776666374859967894283389101044965881982239604516956340006944063463623996641396901672037748131257513872405996623644371359795070847961207960703825985886331981917491859491075844430681404278868582649561602451264331870400277759773427886786956730687905048206067082312271382697814493700358805420149106702220351183838393358289218279978056579820008600714061296612665591108134206370587290938170985083756810577976497876101700872805665508841931566690553430174488944084100649723169948094246995072886535353647504379658067068257000860023436384852616942900931975952261571456446028013821808093804171979750589489489669936063951480961083727901960701659870940585901094757483023339417001522460462398052762941840532311592208062899207008275547294830032930861977698153283419586145674336142574515320204759656949354389676904792870843498730991560691637371105702635237715853558498009264045460836082675511235305613145551050796241008924618058757597602592669292100996072368906548664102884106434371132350927765331052992959231099676687784143261281252657687200147213071451299519110332871193238118269585144308712954217118639967362388602527166358256029018779053122584290060941507708739565137195794061780974031871940459451904671263920088904825308029952304075005652870352062769956018966474961272825806829034256573891859520627399695615533027210295829551637793448636879255417074203512218204051380848589980633341099428525139490899169025214020669575389292343765631588160336738943223152793874152033006315531401217970501547926078794095467516139192359695082577344228608110361740422182841728467811268247491636634843712664241423792303937487471427459960123536416764524580518890420235664418304599139400776538324787608771008353306690087360800589313143872085080503471564356597113470805527979039888116250773309553275399641292070589500266825878415167765920210497649404492519517981413870575094084976091306171782793885042736970240640813173621951268845019005467540939924817441282386506848784362667791323590447379068737686377561829704323634821957116691778788241538827462329188657666638931363987246998689609058823331283663380821854665653207736525650652163449904973415132281049082204440016937015677677447275074713165655482165190967751202012962246215977548005935507911793958708456957113987821812496259458802251829110885712152940093642215321620012030005540101710331428398401036212267399486537163826476169804658679642694734844454304042893659530565979373420326635571861479528676770905776468880955361880866410452590464179803244419691593994782586918671961303912555670418597011713398813829976094504568013287108631354087509132495342327559193645068995047945300206296477636408694725821451299525564711609992566383864555265811698209268060114955659859882849721808185954630379632528798483238514239223708645238988277200010177896457479387951316803633456666578626414500724078976920728728755829692719053161189801926756928422254915492232929327100799101004672254169459900611611843487044166781943163972869242308588335122096698252920985978446665847010357078015406924115472741831593599171046007325878637696448562741230214029358441482594287674448113593718372967068785605011259561248273924121684327194436269181754957179967399273282125166452699250252428867415672118450900971860335309276787637740399293592872879968934214275916524122952346512617547944991735509109640462708933960110045464675653012472923499816724974357478622289758126881439067373461128137087939191349222072888904952344733538979922601380985038325774324961593926657284879400340517899625699509850210054109676284110643716603553832973801073897145412905663815560510303864868321126822374073775870133263063614050030422666055527754991122941310586413385201550583053489167275965172014216430697502113309723524450610246949856944585947461324686038292194048883955625709913505512026129018517501915101940781747877650195490497388003345929065509402532168005116420703219135651382739885473260160416051778570440620635585539289666383528454270775283611184124630750772111233463579499840197413680847422194640769571828625885156016489269024134030431097922567427828796305065249612802973632411218011255452925801904507383333135979982963183730561500735829328169885296684676608009675627889262200106646442640219057700122270596131732374625728231138268663407959328991180520092809129686519367443739226447513698347493365674309920594234393539467024523461315834702970164088510673798177953320499990985255809446935641089080206954975266476822086900942953573595338545352460617498389619403831383777983686787794368893704421858954847368349283735496497569767638384337627467291589089934501682252680701045038368911840398331241366430696221963521526625147180566525874965735669044043073477962566785328559694415285083019823185115733767253639128932056908915709059667517386353321978789001738147371647360644848783721108054400126535718594292709680027929499246959423854731747045722913939781548565706032179049593049894941623137907166881614349378378667158543856523970049841328459427457372605397179154646995822418485850850161523306903616296860214207876299545766005203324519123652001529382111797167708691396668278488314983008968629823438688761123456548098077855651703992871181342962377420949017714670064812924799260856206130842361692695164262595194980676330232608845329100511564581142823514454289825360569774809448244711794327817765507534631896032884967709812549065940905091150654716148852464739941314588763336625668579310738408604764698015735442412447729027109109141253285583217138369271931917204741713246654209505675821115394742271995059787399402458664350451911033215949279171514072214014402932187314529150551766958907672607732112553042948107677095431943035183457909027105011510186375421482537475322481685918469372115522973479166624122073386036273923137630127405660096717759587798956587207093214930677987775850486985542300475469672381008870526328240193444554654330779882107206705357044059349172054957828382874594092798185834521308272898210891369656747139997136319879222146038624080216813257171062351008157461680962459583619295768504130028745553896353538677943699334105152487628073089579001632470146604414987394515979331133994190517276369947449113159590167315936131859686330616377970372307537947798318992322783358748813378545576153425764640686076393181781238513032763063069185279915036027834279153979507024982906302807837504302821520021199237531346085198803996312730555861439956309653657194195841188232179954002787133605578198279731748424680886610108552452945781992918570920179091374702941008563288440088993541645785334771839732013793240842753809332576557509170582590000514515374467967160476025126406351424417972733045420168734219054402110148969502049434525578500355160015803449053799893405250119694434312425841133135566414862478868784691545206264946676238254332390367887688738788704813315479786748972249085971953831309825710077467710164886503316099728038002471753859585095958643367361810924341196105562291562865559129576635518176729637442998120495226017989415647603414675132740015991548376410850427642344507474315829743538309476610659763792981301926441384793778058084739933254027071822294693501146800865306280706106936553642226110082617358374836922345991533681745145808909555409756650134213387055233812077789017894380570969263190180372161706847059517923046467984245322337285477475043432026673844209775301586384080890984010545442813311670493849696743896958914068258733511502871043187507999916824566546716421180158141701909178132990530643231324545220043788851600539676641409737090829720555654820077177305239456271141630529777143218788411477968275814725499281982315880852132629907918581111785911924682970616025137298228676744995498678564649471012807232715945116022931845800972901740326077546572915321784600459389771377707720675244855506594767396267642716924504395385911334549518042894158881972108944822134779717997240535580723172775635395686581933360466846996016911139119364264408912259576325420691214827353371077494710549533651822250427449276913387201411959781860931151732219451772681536371251395853906220135453657029802946406525358946262398420235473544021247707025740223156549518814184548198298273172378509037604570072353045916965997173128527273206950096970123501972116064439202185151997342241356808846097485229948135978299911747578209908372089798678712151337567000370338147650615894518483425039148159174431295650868555290794452097300987224726725059135156290448040622106254012356742153048822566304470943147289574407594955738415357350583756656616287003640090406188679799814212609861602791708418351617070777918291121345298221860572039516884376924094052053668899613035937961112307557643268076013887496284861594899619506050241417818407420620710229539811452797818949782134372273265930437786881805489214806148010442588421605914137778906920029200778146641755499214346755494972119322841315700296887882076211523246794960811026698961565752503108351305126101297347036094977316807070243647513249751623533537569229092860240753136354653398315170477801558786465505531540863773918838842495905330973164708540514310267027664755618463616976351273800333305157043498845764313114963865662799143693606226128561199172697395816074710856286578138618230020965964296740356102905000779384971285665455279598908877446075341102239326794949363620779007401228521435188005753161962769015051858583636452261094626607812256400835760773995714317984539827794504213621954250890124284933136635607002037170244532900226193432486732507640372559332365903235624480649940896471375146638602523523273300311251110757695695756901762075594666151988179008154807751913508286350153587603345568505482668379598349863378865567187049071217000192535910727339950330459788797939508049683934446559973959721550134149827660825446475233418678889560043664416263173425961698385737319017094958662936092139652007336380780545386399788680447333389699018747284973944424849021731277242593699893851194123119622825342712531707387929574065964735794440004600267247592755843342167378702115501354068301499594059508904231319735811268523032836397697767277327414498265296411830416226566806395096399897322611131109542463452127321259205109065724815668803938432492742643923538433256860525115300235912692758682725761925245620764569527236280194461371510776460148236298147241901093712358632463841965071144843988099732662999989069584554504468621673351396811186926952962090970982718112517675923099718029544305508955004087906812586277709398455841743857105276212997963707795253840273404196507600422593171869972080578421753548878717136278730963191996333982408865571828374263742715148783191800361385768701444581756553794709036736660263128023736790924886587304102309237970979299330177962704506318194305034498992996561502673407974473313524613822772813487109900536316401975563980206441432183787014859812840447456078433171849356558802834801679693752399253072768808570103806879571277632916393989675931256595920312890054624975004772341345631078329045156686160054800261937038377543916987690738119687312766631722884516762728428231887018035006388713446108345862586009591569125283768352206972543664468514066821168281339080866906791252547821527877490973514246655558133228630571223721304433803582459113271206234628410677695594004435215164399529687251533312555296533321458345601170725038358582653565665952368211528951895553656615923333835102714772351017764195550335172691669126362605615929956283026254078685937452822908545520671057887373811745125855605127534857676429184122080856115970468774687637396617428937503457294092293123991129892302001343479513836276048753533021588822191512302400221992774265463268294871882939182615663265203934734193192483924392762695656473365419270140583436463750206804478107117372363885945749573028883653766677755127858418839908479974609088903075631009625692748869558997476675934055196645443496168475142287887149202093022234569797590460009087164299318572068006615214278142851455305767664240643446835334878966094222926059464165896953053903000141385700338940501594079151946467510204888572201640390794122781180078079528882797520495644137010873912358803499374463957806045657647723728809575656192284586779045655857685755394630135229847024936692655704241892860938295644849657641310429698956104279480697605491402590948724846202139612488666551858946155399750168372618517452431755979729992476141872785193161697558648774947840900562043952268288131115583692922711370444124728080838033943369188090832089311957608057056955343655745692246705519182929366494728557240848435279210718338641486499311184301676196331432099845108694788227757082403943930221838871702395043636010831146512062957588720430855335852450749719896819761696822294582427154733189339810728046199277953551897435766722257434411421540446997270031071021538902542861572755797985543581287854843099019313465612372061278676385538379045836471717146593834718734408532545318889607675183416023853054326602802660850260701791626470941816049770833815025141227196866935633542980350850389789040565412904178726596459544366998457705926982861190235272664198767677784335525171300579262050527633023407845967438665549235338306428267178141485337473680269015937449544899879309114144804806900049629970510056320051199971276959646536497560709678053897783568670419844760161733660740836146823022020205824430034984499463767455239840704531891879497374397643612719050276898056913593501612520749247625237231172728635694956043194509132948069378034787176180283057651466041972999106898738968163019172742588272450491002674727860073995982632983509665890392311106158953884257147088028642131120753986927129273805302565299091358714421233753578492177612511833273081682659739373751327289025607734975389853998933875220123042469500727281837539785696536503657670816978558511505024200592067967488125648952020836897979178138559338675125756731316219471493245542460769720785837113878318550573368878129047017986049205206899986270656107870316761561462890144037905047260851935904808586979780050510398460837083741665018101421892938306480998367718095404311130398994610787173869699517580496443686151335008942694318974488942316342071437656495061197006596261364604812611817569044022951840345208302900471138054601534470874029833397248151700443545255892715133334515739530913309472837606731156036606806273264612146548990952286352117766338968551480860911272341111443106856451841738394713884867586507761260525710806586683080408916509955833170888557141432297959435155716504596356593256893956159563219370414466519733875166840460972294374764265483914072157512377368056831662686041419267874119770818173850771455126358422882412445479327618196470891846128578914149468706945771708784708707988637716007124373031324385399455102860489230206219439263341198329034253349316197952914368920952924558557262452695672445279450460654193691405663024847280144928886235184421683732526432970048195893139326663343000990768011967083270878698217971250590425942939770744414941651853341141425042112098478201884024074354515245280910991586889474070866289771136683927566271967799794392948515887741487114983173672542136581588085911901014193274657712653831187840520630826659956601106021346974302144244628892603414579139476215590067519657120211177468273059440284559336246164460287666358322723280528022505505135434158825549074470818417049474991396488621516640290782838544770118827717006572223951969072593931629322159131355836143041146759098425591885811884002265244732076582697767964053763006228931904935658100147206589430790207183759000656953525350325454317515084016665686339875420209457054986998752740339745992931251263963110220914808919347830309928370869208703330098912989968401552041302486649038736307785478078357830170271142604900124421742679572387273213030895154535868955402221459902808814088098029632305635191474878260930230357288790002628919997351871585431895377342397396604124988220417532894153611857762920538146684181269092748964259426816306589559869927879454302965051643193744885683867065772347457463318902094276172313451784141225176672287655394444506097522577514676027865229706169295368263517649662390465053432665965643999611222323361947266162804296363606221187479442059823018638852360165382062442077056174274494023736765720679558280786881475173967082570434355045026855565822200480056753473839818680878202910582024182332214095134738769479275834711143474954281951074196626932206034338195710961635975465798245495751479696618419520265035103645143298498717145817972810164272348660339352250523923239901604162980521555487789593697548784998632240206558507638230770664313874538076174759978549161193361707379152176593555342292364593050808265136711197952072307086577150559453374589289306552741632911430364642005487966639312523808619260889171878119673682274461680133253612546366307059323048861429844200573906158530064547362673161181507115166758395151524266401022779687468808689237457991013051589471097561150087290796185038384163752434374395639137421526927371488322954255368773351172713719788173753942299370631715898282485922408553515503602578691669733418677005780938652766749177407301606764951002943671059485755879080692801138524366557591489107615394626922528659285140953725463563818232631394022848151945649145491735665036107925278800680480844539134574390510488884193781966295570474071553186262544554393796700213830468469761831357367810499182346959335519663827038091032763140068416404189938307245217991511494956219176513782618820702638459329713151430016955892934781962004284810964063379133575739316311766714986892809695844041489329876299425316619115460895797139564990038584340792158132328709256807393222284224285636735479585074411709413165807839613303833862285555617875129449889471158585795315946582916422105742902516414298248418468908991745132863553626554839619574326488140537953438414988968195564941437538763673665510992370585539180176333789190325899730539734608032106298630465655606457195364832352245018551881560167744168641536415876037258237248406963898492695951880245848891547605536562701032038944722714433888490965755797056646326947566925257497992064396934006078594081513783037384468931091000547201968231061185021263905864937101718050701204047801207733947901330280685182917854031043450460435270333083417449762449313228919908124907981919276929945319738854216594170452298706587841036859762556098088636929685358792273932317487841706782702427929059114372086312403230485799445341725249263208109267452164760857205243099447758581105032347660624764075831116480242272228608146689419078868751455418587216593695778358854075295179087086025401521841457716972306371566264698474538069192346127453091148076837515441463203843158035546705676958606070913523457716545147622037250395828204262865203225937584320582524329970301389930502783319330115966533773651951105155698242747409479344440255397198199259765394250635953583162208973794355788335697917802641437300028920185584956684091081921852307016932556804753681085197247604254944420988699383642851359125995039824461077443812886035348621674076817317633364786690610741049362909550509589881845627439834004227873637854481766623989015839322652670955675551364088300507889851177021395937985172219662790865965838223009196233226236747704675659667985948912571650648706143828821313577246190990650787790852775121715909309649139289601453372411011329663602641828281560393788868942110256338990976246295980724964840254473802506584396621817861380118996172636782475818006048102842026233637717623059416019980048491944544047598259997888226324716604419811114647362658070245050287631536716890303597172820200239921602984079248627103018907220825213486986641180381690966639310479604348326809755729974960976472335045252917339584235748464680581405871952209440514550099146280589380810438366784769602543543473125318835102901347704665902238026943348192199813092385001357815448328262521106287070765255813432616483361211126622618359445596783791117308487287579138364678628203968561916096468858624306999408901459930600877562294469047749702529362730320084222605944991786327813415556993343206003289910577782581310844255700175356111289026376240893838667689177704801149873451386425401036977234190215166327322845530117338311621228751161669865222658429805974736687481567010116516857832061854154020034952153879758644818888759237128130477922137093592888287976015427476810845052748779605969435500178134758998011751836567749811884038741970612765221836877367170188015433087739715062879254306055734692710888902601394025248703208676992641417590995668718095804816072371691825235027750779816941828727492616650339934584496914507743665507391705875460375882047350759433880598301171991952926561798334582703749795590907298323425161763632653301739526861513422395020960368136633297852530965345330486730200961787905033658209096129134599058266096283621314349810945234304499349833766982826009539682399177614107730730020660848020770588541983999961457209271451849574262994609228346824644175678426192981703300599553003778756238836568828680291609917178549038932068883020387218734321730372978176806123842508477057956292866626355494344247731314363024423080984831597908122833445207727122075130601183526205054724719516190034660617466692530783971904716651083090251639016939678892505842179289258815709928018112553616935448436802616069257408765249932939156921550808785071149667973680822271586970515940470681991064142774611954743839600985264836164057346119799657529063682069091429115768095049325794371938766889997013459432884953258751600398202421247821197316771058133179477131945990778484229806528335634958577137153574675666331738983238053786141365912804681325430199417974942874397995825774128795853792080623047741442224151627572957877993630034490745707764705460479328879473118703989453734361722168314936533053905057255372555080697812015389281131000794888570541694561146805650445098930902853176584769571759999666313570131594153597164485539307076906944125584173747186861510938239853974962902037607521221202093532130342071573895155528996047670983714440377185837705731634753926660674576313595808105035797549468300249775006693903029602529338703472890196287922512662820475911301730861695964114926338726253023644493764993404215746446015646519463500500590803734770232206610124267120591082004746068037416310877422515771915825319408186511742503407392125049328660933215552597430284523652661089513927778653132275498708953310724460199737778495608268462405031375748073070892434455761460775628956151909009150075056635251830289089566395982906916894743688861036848043562499976622096765047644395811390245549540398021204519668884947294910411301176629843076724405706582667460386676418654366924453838097346148838303741006515140995399278574912126677765808757777213020016730330049189828443368243328602931343594215466565749672939331567508269493796869498932227641837339900023901966170212634781286170783881127673376339454232657353774266765336594110016393542909551528738955476095429491804221049356116602043971880465188771973075541873447734021485107651657321104108943051819551870652635175117705693676097466687965613900412670572968183665709892972365772698961465668638100078852030149384365395279485712582438882078249453104599436520816187211517419885094808809653031799318223089713863419708186199549324386309301120831583234208456551748385807988160685303033369821207099022245998034279665786250412172844083675856395125646518638811181997391262930925410643723500175928175449501778674385251081607909154962059674149160759314303654127351295248247622354440098071349441661837579364426177330632377594595799282923519878620005540487201436411995577437093392699113191467290033131919887888530135960134048208648966910389323779516332975629829627678566982284448631282024887454852456511758011993339636801782535782959564595849863152940224565777897232483002604059597598478423908827149991833596268238782815179477391599040969332233729767017822835847662858254747502594250269756833462725251894354275165022727843527611399370192525424065069299036172572593299704083642964796611375375880155544539281842910626000403413727591069386514833122832760833003940594672762129508115659995274600628540215366655472241685899435274737971972326740420282793798035466118412900024473843383689219303079493809181691519364018039582538959958621393615737626546847177013465822378840974593173627780002255708426735424759897980593461494648505200466730723325688561673980786978579158170635861940270975929210709515455947512210991587313141515043601742380412212059482342590426228629973649278650118494892957210988383964735862162416290847346866596898965900567153888928002297849223560627571582023235264564735505666319321865331525985666674557074629182377452910290944778044810261788834284968794839633460173842836162550905514081200914895651398271964642689746303208678815553201197446791117809978228970867589098813113449168111084410648501570567072655536119762152023355266592358430024630450733401422788178104600542162776888398088182112011325832960042010243215768429912454854838246562037152459813126042733003529804846513336558170535030218488386785748667983327934667581240731841303681414560253347877665894011214576149149318058058308358427907329942953360274213710566708291601578256059187363337045704429510745199900658225237977259002612802166757888189711688806254469757680605995615044986728481193042360946651329721646261339879944510720622041042787677085128114997524436802036900392369431296432817266689457281164863705758090146163380252426601712832419634710224096704085704482609514386903878918494437866820293803222405190933974012915394403806629732167312194727739970570757519511778052078503436696172807354151862321075881001109550394669560336115497267170478083226710188863952940341864275869198544709356899326033412583164449196382558088429741464266679558772404564207036134212764791016189428400346586166449808277658483939169220349743960899057076627360966259214386108740386661157636638762700731606693144513539851471009779469588537454493757962966465511528355126590518580587294369622290481293244387434065620401218104936604028553946053318846107185681322480398725565419190335353933696639615215397947772565979174999909569550098213917335587340871768326317902583619730780173122998546761847775854598085473657121516754881193002702446619948075862051351993673386377179251013662810742861717558227702645639349323188497777551996038077126596091680263517603724633482079551587405101826976448281112887516935031424139344021046737888430838561081926333838507024549644705411288287987914532922737143804075436091580386103052003965350465671780529151391152388316845462106435615774491254819097402526705015914333353327249088161248928112146946180574156729902589092532354936089471904830265073556100718720381785652122782020541741957862867162149203704538351586093471438609468070096604482347590880747773538919578530944867438736064816455226074951477047582110972205376877145839774093231469804448507747421340658576607673514700905769046806906620311526682193708234078167624791486193752202209913846760385546540340070560796694766794227894423365769803771213763390839689070610843153531697264992622055445633028854369397923343324456181874886787302382947543363491846676477084400396672853116049893798215243825209577340347928492256643134748205850165365578720132548993774559200946122104588596400594741823728470245598389927278797965576592493914440104628104782459269327072880808748517043346123472184007243062557793895907080467875231607559988536181781132559236378660812094795166986977089506993943359458600813409471735978448290996138129383556483343922097597745517092510175463343225409704121163519867661562750511210066458737588775897012974734284931020902585377765449669629008307605710332020898340922281119290806023213581664951018581295239514518852443491445007071832823620106293486440440736956337424909636264912796478116833164356322353864556587927406703272207036697136704061569063007328313190714709975952526085148697852816111584453276778185964977808579571535895401595311694491016674653352888540146973952961776399719712462182955840884902632535571314553304542991101111810846392035667007101884552426871477743957575236389082902658309174839710804101517150483045121307051710473190783435689935142059698718798068126262737094600514281693559933488741056942038191843482939111688315270229468197689787316074459626687892885025755722174820761789140322811708134735741476320069835811131581436262458942260403042097097276715568551403020958374554111113236174054364432636071545720445329593509868775643790542469735543329419263936043825883043376388014505523343491285081573439802805756571365570507558818497378017303271308906488941336226052819879375937656859272779454822897523275261646193708600190130178948210604733660980424238158802252039997089878646551898677839673096917496496938852487329115765627694084649350431336368481135843389626842594980481544517976652319716785084629397392016427717995259821085835602497509238229852026367021518673203090028102015937542621320840088613830278394665792704501886738307605888197231510807150067509515634468727832610392783801421274579774507757992902546872667839614038495127165586266727504115252557950941094068288404669874986330694609114278607042894472937483385060271693778684583191515956132421639726527219776305921738681290746396660200935450504895582169541093473384177477933978188520674677463059813586576469393100049409573345060716545304859758394765670826544901704198964463735794429944294206671622721782916830462381718478432234234006539056736784930686885676482005940717857702496066852295156665756645880488189268767770099778815412485513603217349098136414033615223078354567955963233148765432641033334718046164030612688903095495341892609043497946638261301915071926041591542874757485280869113281005421020374573916356144042735409067389821864779716991580392061454425284586973190433308388856191606388705658081152020126403312668174958840457214976559250598630306720223551049675920961905954717626150366443761586049955070127913540878323911795376087962894041193395745691707290427378167265202641750048994756721603212258504488929498719194785093982810858842508597878741549486939367142392210420593205503922626088133674440724667076691962225090263610638857164535247489763386649999469041868135664961218858343839940950791835828553760950768993517200239062908884272991737394761418963703958551101520432648958139961008050675524124775692887438365312440259100232096893948816439594172851344625267162251933844809207098735943520426923177735879186921440007479652071751472798498243102143999146884302065439797091429912769594759793404661045680115546873979176096363190387312200810378565679631770750292782937814721788726495563519514292264243363414889564325044232302582857300736220397552614945534514314813483338505794564400513188811593144955794308646637797162085818252873393385623622618195978855026002491894172949524382669353249732938771254625798108395796910817486820361744785707373246887131499245864838802614853566231301440544257640802461884119373302257544615128594313114525454105357214891795068753856813500145276300037190478526707813711702964194391911286520788331366627836810825442441023021733343763174169349486266155789234468700682585106578451692794109288771359580023282321110715719374871456464937343923955266933279965641512140723417203683776953866598475741065091974197878972441911938698660720148702255895911249925852792791800806725562378281695085361757327087149039028731002406135480217387077322130911264948217782170936980060759340055207768069081013431333660200969438184712028635918041963104199323995192740519334075664385721829186550717741984933338812444320459702548814673422769129192252281901060371646339398776224169656604473097947558506318957547262843979766867102309828449409279684463914932820255725641047796221011158667643260991353006779742727466616748095236484470363857115530084524119130108225391230596042046261756545224835738341036712986258236393570118498744029947355760902031074196452600360661357878514482635148000996603193378841927938274488595076084796624006680468769069748286804233705993792683934900622759675191272307591996364373886626733875214718662905740997947080808042257818787578254795290249412411407008436893873792819339874066550575270199648319955532354665342341564912288847988291414207026376143546809410849137632140917262819407181670515241953375817331947380310453182965339939212792465128578010922234277630532970823260533974111123880034676005754229188522922835762882025843299822079640781406352104113297009385595333408311185367671317900003646606845166812422295794501702221419025840667210994439117711753781989387539671434705468021667497051170354159229667987194818882011238165010922498804882212423769474740218609364197927441128641337720454552065774890522227561899017251554614263252112092362314242664667263363752612130763742675562559072531687458666443630383020221985003291422962740893547202588404670535873191880220155658704783750632781146758308792202419853749735300878344324512505677461645306594695732313341138731107113199523047379098467031465252108280258403767856777435612387123178956870883829268685729310049735522103440197900224385161294231865303920492107540929297219977571717466957158468570776393802666778748685535438484185871278902971546525619829936151836076911872206099135175998078111946312397376173862901145206393800494611244298761400133173324580020797938118189195676595966015584871977320693231749477532128047920627103565290721046126532879306934432434744435622453370239074423820347060061016134434777960221146466742427745388794804012543207155683665642387373049498412035777519598372652485453516012107068093085411973043825356479294723466416615410508324378330408838544894290001066263156816010474965130950733220122669607866696731199351890945186135332872471139290604786893494250883238082393409445925824199137314013426929963695576651881320734295242904868332390817462248821290721784731293548625504632200231873659387816896153640059460792942527227958701508655271687968401527073703069964613913782708629669002884023948066310631183235183196324891679496345844822966379377828181006202346789790349649794968433621149901122569525345524223870165167371330389102724893971007544242434163692326693311914022216284138508659576960368354188982977710729553998559624700027061400415766327412165551493697164948235561298966620631562439285415251110713003771571204359909841104136905575795797962729597468098719936865848236818685341870209233930315447107649953349092051103598788405388080190360623979150784336522611756853541629741459542515112033125211918517683458974585379207260509413151303470596628620611644608063713048201394280423901657071727217638141755230024636612359819066816717010001228386337328604584003101324156096973686163539462634058614657934278190029999522058404005684565529804110795697717406694349962172511233466198584249962375409312382335721793971014800447986861102159490726850235995002121312551700227336054573970986030392557319642120768093035887734906302492802392351487420299994693871011378390949426344469513487659353313404468336091159897768096186151075731543598845335853948745670549365570846200570579070765499099359005681164597185446209540726942757234583892521100137339136740076778510656539877391532548599856462042269270167565795321010771925116791423496539793627187436794151584905071351632215168122882327596877252902011981468585424469375102168565226431909371140974977270509809734955022864569992798384307282507682642659879593946675988650094568763161033964884614723490363867241119946690439974638162092967110807455301781084980183880394299280337337262883602805674660050182222353531364615361393921163617126498574432791372118865664246684780927934850266811176442807580668396337367029048947243214703015803228043224465946380448722785077380403610508964918004139735997055401519036070904459109446658518523417308459671779619413674198874184988280104114849396989393284077777564954281607114774563574905616354964407702016879808337972913366432880194406073760972929045021150469129059425991123028869198860912412278970162575258323321480067052855473993155756397725047052990393316177830273421464319137430535815752779807383337257772701058360687097640432625902098538354894638558031557918599230909101292788431281270555432605557249046247819717418933042674887953522502496580858134310335650905530594923653076814915838977052768964939119416492320867598523554874774210996444088362503758940930971976487219834449323170528219993224706332439364851640768747425163824366230486252363373380566086468863967599829474666880618005268643877195735842910787279961295612003299037347772670886497318146432017145192463031172851381576278352567836524134655580067635902033211804624669285117349567130449765880503065381385957434759736567737298289859232669469411136242593069351130954796863607949836274928638774245585535622035480889967649896021317990732313827947853049453150800500246101521201040615767288980622523122962368349152168724192206408218445288842120010101835716980165845583920673084979868996173629845097425073193067561046066019549012123483246478251038380508936723004902466786647446841217186800534564362683802637753445683918955086395310301941463835154590963631345294469334431221824747044585029681253738968052499578660659412488529501817424766051471346346419341170302605511632509242998950800005585869049657584280071576933000689394520017091790044122101915804958538586173608701601381495319862260282197425137572299912021821939664765716630319935741152771699747357238764176256525928683929055792251608305360866447971230683921584365931100844753105287583000015369669815283813957587642355048282340846417920791616289372354546660347995441518222150034839096768001799512466925018797851208550362829353321768584143543697561131790769452567449887346577003423747707963779423637712781749984615898717213008697274092552003743491259640401773685514028117498716764484840385130306183312490645561636549178990836001469173990488684577320174748702097560106661320654294656152063435333735624057273586525334878690116170615409671021221302568038710734132647440448866037865133419847841893101389961672446865901629737419966564491391615400651098794801217039784717188734564440677815756813871045921520688591293235115336239308903923740232813924321353304686666331811849211400771487319208295897065903896260208968763669167803077325027637145872529484208604167504798860163252275326940870565591871295935386976155231144809890157133306135715881617731597152742222868664751610736902787239012186444838921991516880965331657848790841580260991961630968827584067241131976094881511515941154782553823332279823993165000972262968916159005132950193044085848719856163269904110043806106025979286477202160564796021272305379686994983024601701444307084721951527762903146573448229680774973151944845394161693171349172210698265493690873340679618041205797239789941402186178927714723893900698396558231191762714214859237338115108348478768251144081536014592171983362626382613441160411019403203769705114875852304579413420481586713485594847023763599210560957324295834221590140246479412399571535302213830207070726097889100525001129166920359249320645746272647012691565152942597506187339143177985822115613073811670784782430596326515841623579627921591100018501215439282037642216610488029940280795476644152986264522329775294732862503373527860911406258008007936313558820876567746974060257481782794957220169027129522430325714166286581311947736851776381891334408743185328278867263874374657347748735833096755598727490427320104842237123014829188845227753470965514586445544345664916211379552107533455928028600895068438732507198961646466276380041082510344941788670822456725522328174782247494839708806255301882002935623066335999665408876691379312744338974009225920201442305025147033463209591775844508400769699855057652993705237616916987331071026544214090241379362114324399490132137632997939219163738395436869316738543434110158987413811157081937019864952850815684001705540424917141025564229381885129949858768977152275941807183815060738312153724170969065247969384166133041985547646092239107439036431133259144710192873968579942534400429414319119039931070433557984577934081165830076246624809659105420597138332103051353723931327997970231543187618014400021935365063522882197516294810717670157150494023856572265820803124332064066539680203812790635035583431197627598446143575757493352378738124426943967470721734196093375178451406286316995193862358595251865283087379284098425934719931042763420936711717294573418081657430398559068810017384346848843739821209321690969644763495044117447657320067175824986650783520154806455926837946826535639700152812344135863180946444932953011396287853427613173544687985422138987520286812899461221734357603773820153381854079351752250696510728715419242369260252857549228506045853431955695063055380023013262540927571399136124061320696963924141249871448776733009388229873924535338391710584246700387010760417947401108468582354525024949752304797346407655528015343535573248273855489951098436739086788195801390427066969397383913592524796169414494136130411529680672261803755073445169696501757754965119441250266210310826165090612513596205295263178626400718057109340568291379281434288873141991433997221070485705167584978561238008401740964691940085179770213908553875937415910837446242787522365657316038952727646181801447968408798225728673864293580896826566786378638926389299633757420923932145831501331668987703373690165346928812690758584588589481076882942916690962311579738886597705288312311064190482654824231052025134922301660837302499401496159766163526414441694262571998448389636272406514767903540855801735935374522889897079143174754472391138278640505893649968729270747481213061743271860491068512071397900093401624106175739179761934834481123461831815061552635624048923076515151468697128347146574459549450191417864834596315942374417824915602111413257670778454908187965359271654749653572421016657000330345347516827655167209551037160173684094725689595730057973822571149169620002367015472781582037390664642876527229439826233376125503191305066110739137583449706334817548596511742016155350701799570375452139922146782616107753553407097927363661148923689241418289038129763782292461331264748788461365659528758446224989477125472126413995083279355762777308544446973579358852894200346028093553825768043291907742798957378283368809478506078784314918553739811619936022683585714493614441869792660620274193400745180000543586916644503492092585480903059767433568784704412354537130345374474744570017869699897087704349004725095604606562115888008328574633226094713311372342144373919791874639470522567833503211290761243781186553265268243020749162625879993800575420805920820032657290452304845317336544586378514505812504075727910428837482629424581088118833992939067487642983500646500362409606003848919104380913497479282240498060023928743434188504386932988665412475494952250689210289992770720170476524183354170809802402642674419170010015062211389308237570753571130806796941921781428878784132823414309415203700538270866014538071977640129475290947787067443937359590379993195335148385895029070379585591803636865608471895354410081200976378574215914281457151062733951010588490355631450444915750494651010130399776630448301372103386578802465316320553950362621520962670712937661723708043861833655240804082615664285829133851598478442128599405802692788722154675320266002879462058938336492867599710295567761302310448927131086069526443807613491962550046269405534443771211521519189387706274857528409459126763659774443017094876866005580641932168194116418725154736596059971999611203532174944952136404539868170451888955755160863916907252575842623188409548903404285658159773589521430875172502170410718577475848545119769820640728140749924309478712988878112936520591326617242451814516149193674853953207540627662644499440769147874069996817479320254352340248951027852961970840249016699346761541483239696607983909410051208416621214239453094894255890403705275293552975513745124134565689605579016815899800466296668938290222329420831872292979345557852368030380462158828286473344866477559502076674448529570388996894162172167977385205351139320610104130893336563289593591006162419090050064087863894017810665197114513177582503527897622683468697161858340159963503063946333105950764152413241147858836105957211635301642609459879251704659360667110684883558463277572815093784959754972130492842766418985573459373915797709301026538690764993135286152736296833919026015766991599336550003676623982868228653747062285645134240357947815044326029401651872193372937164318625043150540459142254409092996624748053995652186339206202568607175274143562521597007481490273949558739496164203031700678210842372719078196500920964090248990828703715105908070306083862010971553257666225827107077969689569080828021600380826287087828571687288081892573899972022761504443127432909619785827662284006598055097014264970094773981303965518949218567517933219869142989085234962591627012423039168131539002979678686851846591739660316429550694084818609111962720443480568803390507363754041023374082304143411658404412731798360902645330584396300620649463416728359357977571535322291331010897355423008014317797713496740419515812281176587549816326234742712851226515901176126910612783971831406780572628436949350986920531925454416776563384280157068619431128093396588330029785764654651034355158550621749395979057440342437993453713805374198295881010989767707601526179987621532802925252694838199110718236609963228885056470366614704823848834143549628516282547616477208499532187133517605268006638997561066579466587560536717659060839141621913738243754323648249586881725822969618508827024576769932403321666756727939608106114839707746693674555953026466678859232525447179489743372370595825398270923312376385368234051959096129027126308835193191243869564791602578437073801622801479935807151104304563037850980431174417946706646764056602945045997225107238472494292685918743851619064648724775552078051161799560067002896942539344485783855061269040512924661978920784678254684150174054708111771168017486078958685596225112535017879323245140185415427330180023011738531732630334285096269795411006720240689689767743744316972522097275462241954819609771074344493840627190828984004815422416217314098648267117955840968301426367511559083919265661742269333683054601258307545521238691372701081996748574160235897688187230397683490641244493710724406986198574128260549352721287040190512472312216139994754927353970139618162796598128609662205710692067646418472927702636769237720391358126734060402997843942728030929149589569536458590692942659492333461906289810925261853944054419816601246395468745559529908583128813658432845710811032127575564108294688312683945619441254263787607050727005227770314165817887973993163745201126111808022998309978915700622989970756118411836946735133507110245227803484604412149527699671003231453711619330508948336758115060338796074766987461531629816917458844694187369033341377463011672794681980142379170450533190072796056807583567426464986581003183623630466868448753040025907636552316418800236268004195427007082460099846075386918622820626902710100255115539205583722877780677722448341039753902888146673983475081536796146202432659316759223753216557557140672767273541044217219384355758433577249279665290092915310272820105549664423982316588392592174238990025024585512248918564559943317741582672395853280440017535174992009696165756491677076562292199727682840602273060785543127864240882580516156126995271207116967018775011634063734522181546251353462878262018824083441694475389021800374598912174248642965364063264311512205263197438130215593828041535312979190156036588868929080154520354436713625687714583579923102538319665939051991384887939394351078061986629809470116519715641407207956025622558589088815976777914538454559382862153977484383390375246456200725199180269836105501139002583997272746632474835576600179041251593942255770071749871637896634244216586481326781794046730681520256185304181538061907101125283225843964159973821021372586822226874123725687567810421332125557824993882227120377291808350390423265792213822874017383122933430121042817104713046652931556817064371439491276479007347620792104186901599702998788795862112669676687164673849629081699099952273013199618634334877964295100319639497001820779608987488558799045527354369708339907972292947606409212547157040027382271183715348415566128509933472838447273072953435583654192443820714681431948337825603672803521034609596897425244107638836914895433323207047501206178343279970309958763544830167433145327051393554675655407799947049645999992777821000863229374919152961201955235679673108318098338637083959086743612641690702101378214074461059012188467709301954519770435392337121146351124842997708410405857690167639722682083279531060918575808960433535266134867652620806334373808754195353647915887461576664918746671574686687288473260208667524705591790195420841203310647627583790700082991366381737007724256865555192284495884844375543359179507685697740550442840521598316203509138835634854950789806996238452695543691645678704947532481441738429835722037433621820602682812383473484476587956601255034624797561719265647215977907762464725820196611615326726940514359205619493440835516990270463315035590372672052351100060573590853472427366641525131801879639510136910159047478885067620674978357450849527587551876932337422940933408166781472988219589150118179178390664820028388097431050505780029454545574033720667328102093597115814028974808087812280375906671837396580478305660169607084374751224727719639433771670498348707009379514143862177245053049576377816319313051646338155802597104172845896106277815244637314534209038600918648745097070607058149239857234268439113117423972120437395143592179281981029421346375177189078798031363513358070159269535548902385742799485701687142104766914258305282072721498850583466378380610083004246427405019265380689378566038996933680627046690865124575985061738887667095458150362775797886849335530793197022818692660873901659339397646174278938080092952678667809782663553258462010789012487104423319332837242955731080239325173332949653085116955723259743630138756003192006498150174949788559212332210693433464219455875737903284471312114046443768841693458569783793079405397351607856294967078164673480241592041980415695352338656055217685439876716961044436191559396284160184201161221061148282307428919202436928731171923610081954952875357702921457823292157145694358339278169722493143859509083843841454920341667775329415876906344771090045168421585978486637589924623605646045489010860786693543729760487421645081266706625984592687042515389176863788932752064025279725307837322686595020712156808596604239333493326666331856565285935284929907974159665514689780487186267822780168699223968122578193179955995787287938160621603478810653300441168611548134561040067050159480087964290485366702336629584973137054912740492090236946724249317462106069905634804132175199321329852316334331109128535215271795059617878550109539344942112701225706726081287840022297232561838569488753891051240777399126835694245520555844525530053354631996793903563980332186209599328098673081042081530106658727537999562620158828479185221903288117831494067442148882765136781081633567523930273024472542476225545199696916756068506883413838609461588180020077240784164752052704373333574360146843733778638656773077260033542569872760929470574270816886800130319535995958255768634182362081652383355166092193046616798847569720477766769334409508999791136295613823732492517803148682849958531530279278585349953665929338890465181556514528993482991248444463180940923801441611610747388424592634514351336446150973570112970199570313436903992107674433192419162653674784051715221847706028521022103175724838998613139507218537891426621985746040274144483228997632856710254156726847411759202446446464727206515126133946088519884962040274125297362507407211513833647827121300371112368312883496979046409984295877327765150671979801753343971259829494070448052959225421203992850479851107455317630835929546369831084657399880093260649669577561489293673444375987668047491795685975755222881733476927137974191621652951979957335615982541146760427894807731976023497019917138515591053258644356085620728127836040416529212369631901957528119889276241496580186815433135367632459069768153497300926997725838057501050881299490596489542090391574663845065680963691458073185843234987893051356827326848483139728885597989457593326607023652459314364578537031853537438102227789239748568789925751364721237209874768434238020801682763056922825666151277242017086340981773701828584950471577530605751611459444031531805304864614598994177887331001864878875126704730918820085359759876981634148273101912256020256037222575795876167099596483715610872462517225991830266080040415833157480464651400821246575992262254544315403643146478459227040788357034320734442737451921552477307273076413649035372368155323744446725446622317985530664113177122406534213274216361273180707602365414100115046991468062575454024096790352496312839842257385793120566826914285992132763149932525957562887163214947047214721012195521210387418128749824537208592160421266175734350624921248236142969374480866801401709172248302259967024115340796333770831513842424745741954837727399486227859581060840013140177448506237844949461232286858834754173682886553114472457609016533088483429208774811166462979278728472732196730482370399447895341989519077805960874651217116638010110036955304524142768977493703875138183543233826618847634994961984606109150042927430349110949020835925615370010817581894835225318986826873003071409011857541268750996478215735681910637242146123608579691354382190863334652800644242104240181144308875346630180763642990629846201822330794443056649835151786843373627283784475204113292904428724895018936954225776885637159033009601090155618104801981703179375935059068555628727403583422442857746090676870634810632728875439470925345372257043188188635730550565053394346947299933000907388208486640773027173146801474369851834360273740213893101582892179860970530015869870348753819041057209785274117561628048576799896447963174175067882698214643375428499260357673416196020950430894761295551431416838457758707639923162963496725485738792356371268898568720077247709257948252228837466337081045485513603552848790011061554119015592743299113617788228093421551280650644624585392228288222049453615417194272264516396928956412057481641334510776489294154934012100610426597840662736085168062886408130560132994209259364728285039152023176778735662481393519226769096269707683984076026250048977254211431977204866192143688449056382072140842077079718871904822267624589188232960859617857072697497214566482122549892479248115337581163226047695241740846349641000141383963090999224659576128427970840088938632802856868076422044787944068865020149215442062674700926021430182600877282177248195778201049767922449524391441652528499849723821972446677992235780836353370026966814391591835525222586654772235384411635626654346085983201430256078643449508335617586970950525371000433216063173275865098943563715711220321424261483850652119650188065287637581613565248412250297992895646660392233739746556288592081901674923419485900894054444230923789976702830211224218018511131043885829950080505474526606598744008343723675315041307486735214938308197424582164581707593532980939418863851843657898590190597177990858430807876816386350242789784111606584863864263699492863984994793526677798743842219297935815935081531076801433796116355106453944650213331645638742633521792535527162226653448979985793405774534410764115654635210285124537560422999562995238181615842145690268376636319630046298137751756999358722509677568106148740628905373256245223795720132984619007083322996800782919522087103395230324993192618019044068272167871212207843613327774378614309272445273162600391961271964386435011994095679043258684293068882241543950014513039057392206203243276623886912068943336768449925424430660202310577997260202875752564910124115834442573641567818224916736127203043137350437043213031673572166732668442607681363500499971952663885174521131969551942671278928927229670047607455413374077310650024347725646023008922160481486901916758543152584926678922735406464342123374738851101285354754800438363974699932702311054269292942744558898862044235964864366899995104477270424760936209180284137192350282213212980859566837327733439465039711347484815542983265183603424091217335162439550155817139466580146807276973472155502681409406398456580649984827876385628692442004525145034828050156248409727043899536202402767356247686927175521222508115709150026258539932030923866588686717089331887646495859484928262375295849135245865619003830115006956124358837823950403592438754762268429034887828723133970851578051866465297673420956739050105642721815142734785060620899116389256200049218794344904039325635663737683373369900938115893755104993787363925696787187208978297029919424271125533511992752107724611880073894305559237531240507287812258664386383202066704002601688181061537359490484598324271088956277746711733676923413391534849164929932769298846735624539611277393490576482229454166064575877843138563672622109243498727856015151196636035994038394066613890950950992431651610879247564836790962892472850781720849971252060094314820042989381779626916538830424226141579214592003515059025365518365310611930022087955377748338142891439198956285853413635995367685750784947153385433265155199743011555009381177009850900911996990794671107861186069443687025434912713793482485731553064421309657762795826605853262178696308524236721252313012149322762931240583808141550106234422395253365483249595998762240707558477696955866457313467631455434164487709827162988149190508465252259095344250554278435070286768811493707179777338632636761008139385330758416551771012796885187378234352836325149541273537525921433937780823653839811317959001797449680092309412378031582801312705828023162615379224039826633405924349379461219385381527064552941707624201926114080900259649155199589556890517503840064492358488342899513030187405535997500779040322905735199454040721934355717145948709358945100088941394100877082746686447581108812934953771431324925101576989014419507826573685272458584773605150725988627414085432293521014005893913832258490270745878108738880824685955775680325729755483621097207410016408036750210367753217216519900187093021510273844580526933293120571344538477690786047278568654132457493510524873739218655758932146133390423575830795779406773763102960439031254603767806112287761709265880923509496882906186916519052347028093914938517321048364254767332742022565395210744577932208574001942219869704003057031777109139862742045959751090711462184702558815115877390428741706877102985582422220213316580026190358371395465523990881680924485947850517798011398670356490343986791678973432186164604909668623606209054472705627602534329487109751026762489128834845697828897719778535813901813178660216640086818864930224397206326616226481967455664316734729087455840701755681874741877468723802794006462704276787395330683063684017565473555042617098989286355003483329199597730672114485669285750255222296464218201391681903870791981892333786858696317047440725281185980151542881326318440377050866822197975810762531634979893583411365418808096618967641547523931397581960981854703833300653092227433912866120459288702569476236997084278338109992365498724051665316486261972765304258032460953581332408162500691601710906008606544540835367114599270775149365360487629540636483558627877101055804673432271924107206694481011698735261744250342537270726530868263010635563649551530761722927455914019159070593607645679381342509292819459833758806219289611448639920678596076472986031154723743951821904827531226413076372138205837919864567967727289195282291933990511708691231888658302985948919985489607471523217986970530302210847704122119297187322989607915892924374068952301558622221578915226806893103654916299913401439332683060239066033307339269689306483524693915074312520626870785986489313300131311373408877516944577872464729592835594136874462560793064565432326482952739592711965067809888073081479773545343191553507308433023078965226920096226601691845730349171869732848737049164012584589786493536313386662877353647380418539326236732494298426146976088694457212727905166719629661411937081479190787101540449121561472149001592692269469146268676466719726940508682473772586506465821580516469460498633127819268077693528087268973460601000842215782361098989479033520748764180825267368215373088831903555483027198992920823084305537420726269818877532322172173254736726316194993286435360126303321660242013552841140574971371052142217101715299222161952017054310747576345752099450070004348371130821499203109577844385245305373491525878977432162183196982965440924269479301958597213237439093192964302575024515238644915656691330204426508537758497770240426661208487808023844807320619764620272239337069333914670420889682593298697430780239578584276310024352909675306067873331991426013753749950720843705761598591353366607627167914391878710908126525322710613927418871188013943396908660230839925924387180798924425914170069161505946226602916267898350567492514172754671837203031660651214094800270822915928425645587696213207520272352547565174899643617734476422493386420643127581470325792757960792706524551024983876395601585104538952682114303381771131038918509700006798374111821283370805571860233608481735264147170064671323201677133797153142138860105662287267889113351718023736338519680961577672049170269288806778051748438057135993550223628109971120964225056180412034728698617235312359513588548242196354565800462877983606152592524966828791659849911231402795325890922153870746772251146783118212076054761296391220894392829001973930636805197862372608341381327203531053305700777452045135209307598950002770629329745906545559832839734290968302569036004482999872258962823481767559716522704836234125247981619722182024956542757214032908733170298263388969807707997521839383722302737702573678633490997403062042948871761549223790700747544735726791667487644386146121270457033096898820939314758514698573853753831548850424230315839932323064077301825793314980294972282082430725303409831678705360421736637907464639092512434204387973227043200588415383579835499713745067424374205822414162105944516467354433600829200886356205020284206479851222706131225998950178954423071875829503408449910690266659506478230497043723283176608271490402781657924089881023731445626223655032640370404466388239783852824306987468746560033759005943822829084771464398838191393459327561293989472531766355857096948695910696000455034021893123595401046010718131828069599247819060176696085261191057116449622176344324691008907492626400079476069497644895455631913133866922658739934783476392109577946249568609019719670797437128293247288179077981761608819005489945152718821136147505398730639374930668151284658244077544708754212815353243395320688119909366391463969259812148807610306391168070168798689306504548638158398176933370228554322408606140586490475467738904212269497668793664317537751555613508916587025015280348976094292562894395028751573799332058196616718030598141644705954942497651654823850660788115050553014929693041437184797258059817104945714352296998883585341932495469978406976615251727122786696965649172721366625644593332492776900128005578750483648894562434242857757211823639564266648539308735039205224865309922324281966780121330301203765545920740999717403183002606048016006402281564062824723935524113673243425729680969448930045090501172942363231077164551906162547533114075054737827117226624731291594626230149276012386808572603701667163273351415623499744367408742597070337994189593230562854622355044716138505547121403111098907227979852509458187503770990532612283185947256475666650121430760751891685419769273018422329664416789106177787465496563217297006969054958018024893352229617674027905342148457956653717912419093126686127674743390644794521671264341015059853043941907731844799686640418635503874346795761297382051480470752052039583296514563886772740630694980375983080579956519061111903397239525183689078470120202432988896268537154725405704096408938030825829831715787236924482164139892243566188736498817420139772634937952875393621700435196089771427050113709934323954754867030091365129918706414296153201429876388858835956514075907153509635135000579758316305959621499155526047841779170482101515891659405868146634190402644086159737010733402472047528598693433519865090072466354227309257144132771673771969241998677245830152321549057553065805213403233764276573982018122490424405502188357571801574704770617531487730774482034428217358721940483314083780929667521522759356167526922969343509442895403325226436968874143085563183732725703041458443080643278377165193913072183863042430021768011713560775235430148993647060545007144914610845086109861462282534846976373690246828596526147129534110238564708145710669811639291118983104462563580505000500008754082921307537199410759020151958339962779940925934674899219834672635118297623365587237611903509057547314607530294425842715423319393633173998164279602268261410017265051023679967028305497461169268191253896210101092425000330952656850326739194442699254521837693216036300998330513954463000824411896207529686077826477230237753668690717135862102442422079602652984756909021075029059291564953344351800624456165362180455753443335485730469944017391253355782352617489432553768949544727824331261175078260640313406756826467427091653779763152942338510969583871384571108819572161372729573002892528144986446880135095259016291290252428504924800301563985780631925711085539269356256660142077079527001784277728912716093363834554064575888966064819073087211323267130263287058318037409528886685416037086524178067838206322428439300826004043077267322759694135096471177471978019771102754255616750778704221829253413234951048722858832412881690664147066765760116777519765227789860986571279915243349047201661338699388764363693983467192169743395193412564551431972052391777066827127272304779814663263474670443194384890216468398421551727297109635675640934223681933563500885772209874955106590679228115460191679239462651722459167765146181902415135577572398377569581948534246141745501393163622418660203691176090692315722355554461986038786442533416633832255616238865373071702123681465009804118874138647883832453344283448426187336626479155339849427971464744344799680918163081198039221477747266352311949173099630276429064617779928067523611743171021487896511888126818440601752360131180343570838447393641357398143757576978049179412563418233062733746356195862925619002228479816997739766386922704253188396960819141167747419573333796883469715153676465802724708178962640769895321216639222951643794553637274618345756391619097626419825344322714347376586208386646074119793595297870491408642987267241730515558866687762339831912073395128899976503023189652045932501314737363351396588326739122962383211588086284603399815379025190616547096005422940549334526470244493416089568252550956914673410920879068535316905478217631687290878044826531508150575606542622462732447972510906560133769445474954061377113306852866462391852118282306561802874215730569860697927150808475918062587259234152049956829538822147199653151895917010408283515806871778412756989825044233051599421880826160451732508920241221891972300733507769334148444005690678641321083645446226211949856125850605606983308688808074152081789239252156356278223343869388770753287052234543913596728088256849590864710632169554089994268785711213384017396246229213134407299803078799639763660463112468039025767602687157688174379440758297696961045448700336995849202082868374319555904009349644448054647033912353645079675341578748718678755770415012722653324478975936325373778759436847787025361072274370475330963389135126965354273470288766347730386756633939242962542635981416898915414502414156485728710724430828147109297718059457574486606108819572491694295574016586624968440633165546483868550609955075316679083326479641637031511549015263546678472998413583521199551759759498285784812208890118088615808148674219875748502593797040838461300847071214094715366482657734403902288301128448547114549164248129827661683069022616864120323195743389024471149558354592222538921072467002895152802340899235532497544072155452283686970104777739194201776834255131085126208578716277136426014595208146924724586592201978031763935093360819247102475604384273190534772760713643549169279635686299481574171152515339714051945600394865585384406887825759480032607496318332820376722333274339787333639368322108655772850390095400521210901937812451149845038866032280792829833014001370383418635176699212652788942585578080525525970526133331274499868968403064723069651614079968537105048081866143878912215955964559261961961589613538062914229183756205534987008370150659073256704913263987279122698212902374486772915380666458859282140941770800088104479577026936122615426027888152506718007368256066687092895994881830235678728436406735695639070965080903850108837122795612247445657420346629614840120289880788753970299541750901268248624591670210192893528721724965153851468264900244980564845416770241059988667632332862460440078728598345668415738376331246173700732145463704154636213923821363157678589859715214904767730879339965844521004855658269152620451378930458583901534310792630495139291261859081892432838041644844801350648943270102706373326888367655330516416057712298728266771119426591682629449457416735685481972960468261149527533857265662691499256019213796537707585354914677065024993636895608134642826858751579470393505085290432800615669285348237935437141837559328149606515919522472054721514746541122448840483659051261103048742424793365493923318651440952863642697864411791637934840472301722977241471327991823155285684938932767532428199693990611012961547245249245963992301165907756121212161991253239065672848076032888058558351006798514220788640839170435714657694044902636701488970530711014828831513971914063599722727330602201845697725146503920557019095034818111382722813437276184969386408150853412010136628343475376754968594299745661146646164615384361085356595149220262258045808034537297017660659942678614631571767329213148141228663398330790415154804399110056376227719389706306044531174579216104854380388937980697084103641586186180027454891075677242191772574991374721109621124596152819428209747011116155321484452612031474897602934030515974747852657975687186286728476638239200138909074413669213409055766900252621318868227887520301191837826377493266032083674680868748124961238602645554034614013818960030432494704893435960209882337818082014841058547396297251097079250358549296203997268111797785520959326291313582127632931299837360151410134504597840076654833169624981551692480344503675936083196173967719879305349938994535686514221358120660102975196046207979213475995797424938919326057564006536157553397042072986698064330575550872755772370403038312386915507328512061858378390096860949796304601404524910441038721406598307251466850091186083976234233049923235548094073649405923228805049736290878545976722198019747112012170455521446639993578006797990174107896609775831229081835032739604265382535438531834846473231320908802479072187156064358242938769981042791961014847980363512047024346052570556759530016762430539935900053184596161680737307568092223733971870825891784042387872239182963606450574010814910549319031148295383815325313933914009692214923110672036379745644270588566097027029699743441756508508750749162723283028752168721533654460891708803063546192088736284385027166408229505548855076616175193972280731312125328823066871828786523533993325791779420406427624655660871327024433967266933111996599013692417473965992134846544239434126430856030203611560921470042719855543867243553467963539539841407025296506379776203541642007536645599744929529616790696687010192251272005745315939636585467468506935336600174268468317114737269032982346936750506395078561833863875205944181624959340677009814578247301637194958202773993708738110774788239946703864491756717133286804380542012862965654839069447566521670499974647299886166978181972587573869866186744491985834003493315379103991471773418009435154348042966436049706987807145949163779083126292334160547925822472026340141432252720239325326925743877592867686133865458950085546928266143384151530107554749085301004356548655111936157061563619699417031099159829853910996913279658433850008614266695308017601822095350411986762963618048986826841887872557167996130654478232840191693210129246381037134393614563450270376671186914323577111540051574821060746657221500584928455505001009740575585539128825390025958416589874576101758577275297538519002544656091960054682345405907570483959026013965758781422296719161790249447095403027531043757501528468844878291644313967827861822251327428970813018683974215808179623192562225359328678295123971650113911484295285249927201300169208135440814804738707510361453789367455338237635017480514117172989124475724544267157513660260177321825904051052092100543331041694442907379776996207583311523306215559862214513338376504845254124449822585227581333651422401143290796444751639523856162071570687774707201571230639715481431295385075698994908490622011323681114748873899346510175362624131258858540567068238381583089603156909316974087015793220232266931471511762215727736534518796959124242321785270095082220902023286433781157419044549321456155999483708131384587153802655683910685019402604583805743176731485289865377211211122315405998124170820417458945931445526512870655527107525537793811476130607292072299782476300771036024466940272473713178068216479180611470059203267251805706008340843926879532070117615305213334721010116373846712665116522534116220576867274140868529075406805197635551613929892637272498148902550116848596244897856943844969226104939246044641763219599492100189144647233804790097626465348620208156760644557988321182137299252885520939683333188111123993301605000427536355327932542822373282053841009376675950599730899871292553499542885413174857757447417012907103734434621001621363777180043660613297342638299591388834312609086267940328396223536818972925490970161093809416833659493258103383016817312458422944829527578789738243646498021011958847700904605927796574143949702548806181771826135691079952846756126999073710398007826282620794416609015219385314327065590760237942541284926032288770378637681317339118824970112585787376069654361253084012265915633651695788321601595360729423714284493763587142903358804587181610077089136852973625853792580126854558041590905324554020287960155493665184574230440112775137052727482266568476085729418496679174477947129074648457266481069243349625232796503798746430377425462564921922295485856962182251176201128250105106071676046765605180015918689554418403565872954769006193242634661343792964769620012740259503492354413228395165429956077501262439279126475168024587684082959281118903707611821974044610838913609959323512508725899998749409524003668503798050604017440790818333167733289358319406184960369252891339912355051515134664620794750288337780452090397002006111329543776058639424508057861235454350240355477086824891982960167624421577051765651932509554093134250955177387118527660216881017111020210901212005139477384394684566039912399644242612213256386761994909533965647412952710513209580981721445482858661005308160152154187897683152156427141272019032083982874119605115458613752237751370938797461274809290795633092429948575604897581320107883368315855848269369512152724371420032007003257450498817776581491707439877837319260641062302864214523160155589103335595826640874082731298329355425561909007269949060906267775101498426917468673154799938788640599171273247625926930060387303054591658184428724577300230112575483494548430105607344773417681984216155275391766130450896898188875152180800836039394080135619334675283303283238721482702365345283479860462592409311776738105107569268597184829807254499887965832240848236246037885546284285824013095963405065511928318471807889665501333073286878479118938744449286213594550106431368690741889330399691809147174131323239256070774858901606621967670125238965693699341259901295622621071638505442911362042583134383034640043196203226432320983349559708710336634559022886416449338701572664372535129840739231417844585979943784776989415438817894155357439265746602844012282369576302851493156368274544600098699545062484085464502335952133835396432401106558054077991201942213168427464538907850485365853608591321060847925385690047592133709779347932872634531546665347947366902304188396613676972188887856914762521621140898526253529589402486408552046770404169168942249830599736019476599346946511476019207153912556392086374250354250652154442576828942451258799455635408429229510770637515558998492795836624283896002225175565121043113743222731769966447942554347312519102655492122479270347475607433879029913537488396025636945625176830057634443205793708403259903498533041383592769057073704797794215848973120037300036595261885640261060712064824814498455406269427141608792825913167804274363113498853131258121670785433460795937486131304621140743864059778637947352208274941177105110217223766303154965242119143831461704802431754669473668141550881922088249353586356841226221783367237441145463851349494137668422265698781289517078252930075987240071129445402233248853759797944988527603348089345653856103651687711353536848103563353992870871333549947192912585727346761281029444516919486230072457698604132725341542925728033174522015094175355209450068337019665556451949873581492667426743410231258140897699374528053075717939086987975722606181272348775306047680978977667194965353198223623093885984313770265222650458326595988836919864839387831675659234442548204005328215983995909491759803189553730798344577519973791601017215969752602670850972849260141310240652120682822209920399968991212677646337932814449982559895191339699370866722560538557206317710298274470866246675074758509716796678267913894815618851863989518748859490542692720447464702151978510176946601019260395962284762397306000382667257225634903337963683401716523313596010669421555608960111642257179000433881232225127131251906631434203956821718440038861694256189067151385425226700056514315939624318160837352500101573864405046765235501036272665296216081778805337559073706355181979958509417090431504763925952128455455993636399907408951735250172215539169139109485348203228410880753771964584792298905350025293967450503995491269442664337816289200037007192441239251033631478420401006198445842992674464149426346504042870375668651907271610000417131620499123093709893913038054648775450473507428454482664819573714125801207567775858819484523223342227910815736173713952334997449607928999686467002411330087729217706071532654070996488358607503054390948988432754869558306521055754455286458642381736977364284816485434666354738260781597238335331724798056524599987678018835937045144403317771546654647180300061768896690946679820087184971566241462821206750189182222406388769392147305321421722981772244678095975454239541157933449267534809641278399439575240236983506727108816127532943961013415765972422081350689623501147406388371233156124445107470632132126239493136031771969973989962843203718058870730478155484845188849474213865155688688217541845701160624477925889773465360747599938567590649204497621522173906639230933660666495177677484502731912460867751144363788109567684276459643882758773559873306941880709757982854772103256309253285469272199620873271105923523451663384109221961064395340632361552002543020975601823100738824908035360268692020156419465567477260368379847744452834423216995235294633283169432027470482521164154086154900926099112910344099001074183906257773068620890442964346411677752935296099554016558531067012560547461572799524140275704280859790737344766022247467595922437027857101178088535864529961149139365684782401130980949270865372631525498156591689290370815712927172136509638289826380337648902060599214118168998231645113957133612050601709416133477744887173986742686244783420450933524400331492007431834952657294097182399278053268246865188606242969844560564796275512963445398661477834838471209597036731771470168712298861536465409890512588884138063741207406072447750908166444393504895180191658311795543611140984878143950321702231904736504616507588495951177815963744955647389794510993429888901211487896732840463305118870844466483389266856843673965974580703378370907008005053268452951160381826676190818587658052159440068503958086328182309614258871980762501350286007034990036813327513637727551507565264450407735774422425362400887304361671088043773866147127053094285913627739651119346885680064370003718056338893173765102211685269050920767105394767702596385186662701646665240415546777618382785222332778929876227342518711097845127616486942684106908731651698329944734354872054686120271802634329484582296335340884904688981652699884177077661691702607376064426768682760082171452463646499502141932741749935254046842081230183973806279212916026641509739455707516766202029851660135937866506490831162763348981852038230508094767948671792087314752176688304823923786581003063487141639607963268574770277976420604651839433894865346271856106023973048267725188830545682839487030717504991961226217961977684799368831288341027145689085403770422634159451885731966600001109221627924902603704774198172518718712678561314490455671799658032330252368503451402425235250977446821032457702268015827556119403199061663014490862817704200323179635403576687355278176164935066470329256159301781318212035108743266611930005782229133706492808590547843854683426030052264391166865272803228330170378969466069804612213978207297343192010164057168354887935407789165353243140148273564853843813408613354505688019257375726455281070974234072451603105244200350937145860341533170520391306216048287040889600306238741274990950342983464803595045988781980232504430815041972014001393300936301211532031001010711711892085055604236475279603648319225616815913556576323634150890184709930123401963411191319580073355105254793217343240541621169484529899827975195537910764665277152572152616902503721202962336452731971936124901901543403488067263072234099227946927287790106149488626133619375296007470856037505660509130742584632126146122978376634561782674742435995034327198905070365922552344595747792335130452451531872608603488879811677816384911597458361243027536901565264309740904750404592814501104086081444203309919870041410790071062819209620782875188041802545069462626656557235047758458010505479632633214125788473640158719883833747515810905702705082241191318489831053510395683018018979372419308186363535295095406117690502072661104764646857585841812116592818981849872243660086171145202183771339488119266299912144361458998948014153726688206783091782358942866614061331656696266396904178014922025328301843627213458780365303252808220824404849130627168670802697497268377396189362311010537090982890234993175175886102121900746776103673493558621328649957627938104828994202521801446636807157332516150053700604395163468351747478360574880534210886134053412766405539578260104883609150376557966209400426633985753932518245316517498983563557467122361337823045797709684615577436084402066280109448759834979637051460847936710317948679560710241565774489208434387277251013884741206935153733148560521315803176699439864314091870412385259566119775711942587303478034566671695929051392998036184983912342957984169624029625685111782640551814137526351594732793748715138243825203724095062154487247674884260104155337596702030308294383459311990119570000199056371358399346347245728493891552288042226444152198029101553510524090899559513080597701384836528300975697978120877934674158317941038773112554253235550439341376324090146430167154912516025926919048670496991463112118840335550362138558795104862432951977710553324289379507164503978081593090349945394856598422494351160573093012604831409142092436898192045684120429905922607533705329900629652400290657792577823764317711827166467451513632541967878460833830000288533864383896196264125167122241100706153041170814813708827180946084077734652514573781228616363925720201696709459757875627150299699186735933581551924934462131676736220638917450287157530705452258155630627626844705359538595947601883349656137598412066167237964853548829158653919087910930551091452271301862814993473623071679870820739877677474842254780715205342922398042210575582449415718442637586566574855801784979361386563568208506989236661624083445325357586667507684446502308082312589382378586257650198572850112078902014890904376419146485686896021330785525942499730662553136312340055193389892843627672985981457361441393412662790385142803978130057351109950141396078717020676981301313621862102916909358814245028490786221405318053064361986353274232958151368694421635564316877261401362450401194124132068114446714360049786411128502453843035737048757536464465846236257768442375913939878120253532760399654437273113770413704505930758699986224940184617024674788572973255633565980679419162286335105398009688496123413685951947083805728421425417756484450596328549450653935106472859327307784512845961604241629413303576987474994057894566732331656071049605315084505652756644485593683013891803236321809970954109924033819192479278582908103072630010756699672969148218041730461803873681942230270932632410895202957688964948525048135180429719327233183972844421631024675727397434501087504923140210434066440140290643505483688307210098445166038342819314288062931545392394293493157375175235283481903399335753719111614595805797111847951188852960175016094433160120494722070480792894855904952025029602985619913436049801474847382132486805689633087473502954298570632292559384122684669676976907000717503101487821756997293876188356761811817809721415680567710053179965016874035054883081393967134537240155530616620273259143599342276027629134195172991499722726871493313701587851597060579687315252679073226623186194580119523654072562056400375729334746229441314604705261014352018477333620651478330881025419533533535040469837114533426846043838442860853408388957891628490236660551476763455855134080853974434671036363621383385316201141918959685710025022310125432529979563217061834780399382318328646688395983890689475575933581680625358339043605489697959496906217738872096682297486824154539808089965496787785925715228088882132079218022049216451672148751295946024541536736803487057783764223760767349151235673719581048987553957071170609685622715821259230251476650499412841726398424378261677922659320160671500047277103755122536510235123785941200482616004029198050817259141772865880668769522197010642544020406340620460432071021084321491627144127857015059637219309755618445729894304480152105907039538640133526055321978492277707550779703704114560678416507427369984264203115848337397516499088232706108625555685196209933293411796359783077586340982985448215950206198077253085037928163579518966390496153402071598752697543849590367536685510276445500278774019261208538801363045452224249759820350051341470845555839501720947141578124606826829230066277384252906422927152163281139590396352314347022224080282773987854096576659372288599896687591955883939430170695188649891015116451165716849262394915489327101225627937072104248187436522925283404447946986542389563233885903177857531141867863920725500395086313303939715213677035383862984111696990471998796561671160661781427546625492026607143000601816003202796574628541309162203960461360471128378990966963297034941885640699290639873570193354432145833032864388780138804679018943048006269485204072605546649585532591572925266608653267963610406114674644987845970175362695934972880789623185973204424851322722327706655982027677219865496145577145254883531610291363556277254236397872098918563549476125147692129881724835517343264806614906016310303494159617625886365522516860894105322952461850872575038196505645318161478883918760591873420364339813440291899844628391859449107433339840616515791033141698023398202347261844781373063027976826378342212610341119552824165757438031587762948324540026871311758262538661082057926258653234645116673079461692254362915340117939182338893353650418852530161044149726906869339810773111417940829220166730425394630456712303570955718683854400298866771635656139770860446324691834222725582396427313258420436213658799198340939931118958068838544942445294916519423461304844195030542383230187699090092174661032306068801913235096861970231257312003780491635646011689228187891282383289949376164241963059504846281084229677043112776535642825266864274718632328346186147175895097464581933393661380989347738259252103812316283069813310620710422765033033049430059507386471424120358195720614986753379304345571127165519629051891554843927030837623643707631417322873475292524551588974397453577792358634691936142282657576554699808732756137669573493653346943943406039013300562969136978507629318952950941423270032990928849130990885201269710285586320005642787867201527943408013040529837496376411045288479312738804371275736816263184048737200532478330205513272609415276142644937205766838610103193654598988359776406615238656506246452168000685644799032148591873063277561625149615854354839510528997609004742606472104791716187754310004641490584529803559746377620425932224851227720255418273164831705376187667692675428311354311166929666340116873659083118112409443203250434917925508847715825131914211395474360915303671386785616511590785506654367341564118204538365956103906782649032017514145265091785697933272654461696084868629949763333121897596715888926662475108612570974867491886082713293638118527326391924253851244025592255312766139711156731720520157607996557231496174595931464907681065766231166969666644700776748682381283025809084409243368376971279539739923974589054014120054339809618154789075972820994012214856762719648108282318482010651721859411466194678831608552828393927070443729895720599648390900653691025756538511925136384658677997622819840447054532562902209683278545630442284696231405535949152806172765618748181226778403027123035787618280471141335776828709910954327155158757313505103018961657498586415771246163023742672401846820691151227257846314352007440178007627948748216498690031985960661236259957797397151075737429951798959009725885638559121155686334314884533589159309189639207290757387037836038001750896433064282533370478587892687214292392338006483621051610428928507467633840526659460503638986206449099932281435084598987397393593890364533257950992363132644005285560186623692740649211947395323523750460808318651944494472865993050047410798764974382406771950824745339441628265209764002626065384191865176218396977911429781362266835844704718755979176102649587332539724077126807932353913017824682574260097971898103648029177412491477847441218530499269432319662187028106428042180007711744601205787032758071156969985834310834895384387567886615168692453555633829523760746468507986714453271931348910495177610584947273599461108171385212056739026413589241677519404185721222850052408799834553160329103039434034381516667582801505520886696608227732431972518519492460365524805087742193930561166429687331012582597403601413408623091384041096116769765536016719587693349455806601194584545251067461091044036230215922281824671160843159271481457920182350912501787175245985051978377149817724136446185858757845407044928431426336793273151195715698862885252950700623997143075368018683426940943491339367102019523764020316148554857962232261388187517438246454543927755465985985188830951213535031606313576565194510638726677124754444290155659992240462108868925484818869051640026979881762405587694205229586891777195732908559381289837234832956801029947801745340041243780064157892765030388835065307225837932735859412410738711541119625820153856319736133422497059962266054396708767051648346794875244456927865616483326304021636444227090461185889047026733835020010343612981409546496389598319100135503537499133763483553673301839262155957012438780714401818888562736615620253839575699429728362282299805797070276057558468770108801368299156421143085522245934469660646685905437004250638330306200706343730723134566227742807554012813723637755890687448710134698411171750653878763293244789450691594733066644734321941604875535517978781187799729663612804849952730786680744577618267531184458172303778710453455370979144963775071871069232244141198410364473169123616576464233733919237397783580613814282997790799079098310701337490979373677585870394981567458087840523977627180620997237365951007847651598006182872429215247070688232486830702899669108390876159319094463485452122733274312926968273248369461513338787938049278309656038969038775843681980598828710280250420189257060142490780691011403873370672585571556319811286353322487931797640304624192170370955903230624335295707541250195017710429380118611481854399175033821744552630518445622311966653195787512308575026109408683689913555563606814682961935348088825082727812422096363027192685032819967318858688794503757226118462392836054532722546482879526882337040911625452993518661106217281815550188228628443151555022224316871372899742796141424178400439615675839660376760286834892442223708081349767125772606780742548838612624748860623264644162445257725903882885492151683796784498399462437580053295214663205051646753552644011492767635094086299414147806422544248676754767686421314366520460082711793058239496650182025206426844563727014688979107359086351047854741057384094948971864729436823171629977384694695390727520299226207108308707395736991022276370325583398115557869231835969040245644938429149221002194625704591665122091044255143848412884370767433855563732725567358095517588129906553695792540446082813728737461199309162720682420264340773123140760747015871948947616405556022784699161393450364652566489472574091787923595506356254511708787430841780371664843764920082893657093917817847982903320147270296155967856316138942145706566221336688793084519372868264273720510614564418242292427101619694947095552033814365262960755720984553829366734612045091191453554594584791782696208157250426038516441660224726665350787725611475723063074692791563894804331674882161020900008873403802064036964969059897877470620494568036101675577018814827567662353530454452766665255796253074049452028293542855643524943344736730853492770833806686108024585564560608726844015510033326721327031891234094257824371207974698380027976755981881310422215886626584463895142214540501333939353076534283013419389293352850771402520637762126412488788968825365947563171506733173314294513810802349507328285038962901686183505420432139413342404308579254317466225723044876221923347821673718944163200457810722659672102797716551173453569534823940887370795745880703731224692998740858612317654238542209394666777935284660244450743911925654846817275754134084837571359882779733634733902927495166496001885518098588677789533238735155865922496760169048095724859765915742117186750290318991496614309146885769845083098248567819700548613898653615496830597344099486474641688286420592290025623581912952671609932364928895785924283189492604050727716706381529730946426261604701763100074299251722089418281301338951140158111084440168374097425426604847866835640326274456068138766788236017796649745545604695882748363503433037964395366567718658976061598610285246664779058667201990036009759061199985441868375953649419654382207842634352013706080523127406672572375727239566459127856399109448481168365759829876114213687339829975676344465455886974683075686015486428133317210580893002145199463635644064227515629426411961158767446193614501115359312164776190029436771492221076702439791860843626348857902206289713442706005294256706055562364621549886555192381283811945457846411723751934360292507959432711959551696020214341902625161204861139775861060145607244300816332993770226366389534846917851266451168249266441147867795599626751223135809029088867666442513771731848634038747398633704397796490489699404118730844569532780768103398782212706793335331039599924204488711187310494969473605509042057912159702083213936406334299963907130986850163242382299627649983722743411797319266824218955139343082291247820723432866793272661533596180890151026378096087926543003177325205751790423701012155818573634012411225494002353941835836255692185199877185083693451710668804267155961541393191225849171073279459873175565178404271664928139139319369491898693287715243085290041205933022567444589197042552825971009760543895142553456823792058932212429987950989775191733552559551735714224173819595940480257637027031499953953873196072550695730106043690229467400932920938820781682303100139972012188301554930512779723063989150668208077235012808465849651469878131903602254972443446610258012897981496657418320073874286359979893972541612421669610021355502169030821525890499988273314055863450900219950826595100212184440199237121319992825887646811853120403046671343741029310404547229403466314301938771560002475650515296762534116061550346462007357233690764345637605165014973915260098285707218400180204569931813040064044715007033947932545867571510322063974731859330609970119527599057918658747252835135559778678989381209451376711972709690423950012902213164576277852834521511982031310363706868117318731579401365275291024966974892847210924079913042824124522855027967524376681597083828172859838275775086843626489739441884385900032392820736082585142227858843410388383404459396223660765829802528646930801088472730643758403000684058475434708308414468293790674690970409246972107779865702452743275837895027617332882013804675435124083473772985555810691313766597338217053521251570692216510284632613636936364658189503398496763901574847658390120157941754041228915679359974394306015456712471080974493610688783938600242758535142063744010432972806937429271909986848044832494401851620386622672818870418807945960149349602895999568719626739210570896610323317070417893028590278963244969989302315232673630889015672142581786904577187912981582431545986759794796549962702581877218553265515872067343466504671694605725159129310666874103119551083813526969127889135944082608694343878804364564021002301304360672749485326634842671620819447450987530798180513759712807517712257591102377428355216285918002846441474583711577407424704663507901507601857777663919829646219073918138063248156046765084915112698133164577383217199541447775254750165397915078033259665114952798543242883191936056654827200522629161093631925415455726500120234625494183267506395764062544729088528803265651884003084795560798501462195097928530374155504490348418148911852995911746406196495865760016084420085834261149580624932993431289710376655827601090973122088703889426821478675215653291575857874164352959167727493433812429744695719781158340597450310642993802016873624958230342213103652844365361160668088029258342360940704849588697609418344469253634910328250575742817550733104057005841170630803787461216140218687268527558860003105921403113945647374710119163037860711784604084529103606640914973477212782159006899948803782218464561122306002038428548536258652959850111109527842152261599291739336570105100588313681630398340018585857195141619523438173715524932036690185261865857760063010576282802905189907889482630529029174997166055994037656563194915780542699084093035723058657696632480652122410465621786015975282280287659859169424205160957423429470540065115881613226101638872827516834864535041392376635086874742794918271326506125140964433054139226567033296033755598600463828973310139408223258328012677884205353854168882092919597910689971336099956294040131923237486851818836566008774517639167791039602276413241764821876147489179370707205922636020220573910228874484993574866835884661671494465991861152254640619310584953108423722388837889702367967204116938063386684201499764207059909133078412232115334857816511750916011306756984623012762119642872568785734895608051272898729069521735275335896035194833079858204390755292022504196546912665543337415193511809520497494984586904937543079604473471280088771121387885164907689827286544570593171076711141231066624450124897496836543260645869467236659484695894557335758556485931203770822732854452338919450423034158788118438513223059350786006124353835101823814185233575232691756509849263959677861226072770263673076897565202293261747145376963036110791327364651275575148529377915345507950576789923229473449752498851212897475418277639604260030958053827147189838717049976453954589106346774212315518992100592601043144402305801757601046804896811109633085450799590807623726336974279068142607826566194591077427662656717023456557380283252048124974933700124230624323411224260188048631509005358770832453522977796870539836231711793832569083123709275681383960168166039987128345890852329029410137916088855519559660798986457530168208020464594147793714913574309891897743476582497774777196716439913940165611654766487440465098056147146023079466105733316573389743132835575241273960768024132304181193847710212103899309925127154651243570697742311023856769076840899177346916218591610309298773180643526722338567929461465289130293646969789207712793447326192820259917860283948294581736563077341349752879470536269821667354194766012497195742588696531319565012580155100319803289042293175321484885025025266714632431308166695955294896971570911756062465854354626964704015667539276442955005046851538718870613724545729908220388757717205916722474723094016256568181232738157513673015829805221066093196047148716061321247886799267391052217980448615065465987773832903893297761576321635617778743929720388670241865281688123409838537180288359574652266954572410254907083956531897137589246395330420994471360652016464458796096227552801491088683084124538060487387555214480452316633943894940987776333624024471324488281367020932423060875586343856522052604010789161469964097373730425529639295997207178746298434486610768866964734320289654561133459600502247200718875806181662982294024719217313151058604388441995437628482347571194883072925041875283386989470237894020870200544319178528652218301050903898925694671225119034130649940686253035414626776325869553266888872689527711150229670060908174749520555355985330664153332066111190216123204054933212353611619380788423299771026394104755840120269507396933119322890584647171067557690877815320391162490623415097402711174182025921065770656489329818403929392360442841455026042064489462688113331044566799874591805079548907338237142853466326743317174059471807846196123574793317554004447413020298284755386325376234497081484270400811556089723382161414327860601961880584128129322108428986386695550480812831988717776324780203419285703035972847283452247041535572585713975370177767811995355893748498252495976865990966822631757814640841641445819322657695125078434901872629225749391912263898005939691007498129299837209935544374467378729217535932843664184566571024252082125876361693307769221689563185666356484579638866041561147882949674599514184552080525207462648687976284644401027090784820087125267581100941459676283296161134080612684745243085214687171846811543712907115398388622138885799470166709763000340973145441590192448513446321939279268344821396699136796482470181226630399925534006389987416797693804901634888840865016882495064276231606552259815981806656341745792370729725371371111699336409483822707394971278080312035785942962940593522938924243173608514738428216489539695650069325478139680169953869341161313208182721111121480865983298628743873717205007530246812700257054165342798885780788770076348309559437965287848199444360880782949962484895363416064290480072446221424532870712739133860884604870030690240884813408795378659023063860288916826279594395119651529537660031200307864467047794098363269290535274715845881798590205771444980354261229337290989137586742743230966826002307960487512310441996819063216833964675442264903275998210410393605263148061304270009673487801721963330906440716004294047231531688220364352812615217526308985480096733185982024292699477727202575947058374337031056833808001290571436693876666684528468904010809435933947246531051890152499536660965532173268540659451188428345744124840589739659120272204834996895322695128009418020274294294904431443890342069983121166797896408528521686150384252762853026451751235544179808899114534263914923344509058145631901580350555508015723312593763177905303446741965894300741325156801384178372297223456664128000688846816847681147033317617107463083816602990550879704565286155709376643640164402304189320668063698427804997021705885943932328874037286777054328848451957977816574522947864092780602335265516496591063911355418172775174313592656113743396119404005786771549773919546142524579349537158405428053329275154371226863587783790377354145376775786701280742150093985645431034237470312487800733056912973441593078999287805150567947119017550310614181610754274779015768307374220409770108897955438473591076970606031752339958426554105237666704667243921918127413208060074937903582343237856990059274006995488515036717087594991340232771074740107295198886170524604404734146038683806814907533388928013134960562462135155003377537570502864011716981551960219033379761235115009928348565027593613089606646253007166690696859550588543605989199616844007971173442328108690726627939234958262104841692861900551556678255996976439420865817059592305476862743617108861594476086097656865029559476484568405835697511830576251377067454478392378160380513383565183623651718346990203978351963059705834900354949510927694351998026520182087701629567456258011807416761706528274327903699587330942777798343160300080803777881639371899426934840658583429043790855294679339737326431214877258450961413282916519491189835154445242437356324218751120635458719599213959561987926463100869157881219942124379088631343939540002490689081303550836629724858156734965295494399949990322898517977753394243097976427718138951494481190354495008394095071269295390997579293230658243506340448853515062334000426685061125785686301667124166204974470676696574048147370480658160658872434323919107108904211803900814509856653712079633816072758950719789007831374545622055410805028032041295365368196836750082119113416164231024345253734628267280994392596595607792455984266840097009382967808763477457175461823980263620135348649875909623956676109419435999360204203894772571308315350374187319237701003596090002103548594290392267489243002493470378009626488122058977188545868704133193787515345024605603511275867762341503085945407211196196688579609446674762599089115199507219791557855521059200684800398381553142108587399990315880650695565934936936585689086682997567289716082561707779019006895340512868133377933265653292673530238120139047565359222680888613810352614416249746870902098049917776157134691469279124341998182773506711931885272006288514935207284827549330353829069070599674440116557691221490680315028678095160747980158488779607193536721137053270597993018855892759093258083787679886067867574361174586446339222671902172212627887043001177746341780426928739638308123149471023204158508421471388156246291995114987862749575955781101764858305963102808244473027364508913363344249035291284422448087067204015647305777497379813392613679406949394946929213260678178272415000268835614365014454619294905427735490100655981817183803012313245301628032281407648163586361668701455459105160885808471406437330293649616195376681396754667079095141577008793777906619437421710570938599657372718821977625424337872452152459934898963089912573976380285814001581038358978775733647854376659609667255189782035785509464232861660778263297585183300819217935126903654948420725303918813629305910612948230690160016267411440516029915669276035522780380150820874856280610750516147722151352754791440361643788870061594602916732027945918731825232842008258531063223030254815141566851708411544453064371496528571677695460407033431046852458879744905201437934411156774672581777141947373767792600440217901846466708496743225704628567454336445225579271757748082963675532764243417423784291399774699093666118225341939367536685856320660462079029025923760838846242340680271361000180449952216780709265688166112712506136237052157564385216857828758611463012035856555196888526468217971361187959681982673735945528933636983405747174432904741936371544899599811579939116043600243835119996606695754259725680590793586563343240094712563762687924959208619577327425558754887136979013726977445996467176158513255395167200460743886259318225680322374591262912002686063792622324485691964849233443741623836895669323173734161721865633176689296837164585134422364566291685265851704554461430067183319773468705548715647404699129356945302417768218241702517529126170962115692769562460030570197031600594344372030011153212313170690537855035114927805772991775052968808051750835393130289620198896176165075847282234583718794119051337849411346749353902954276768663010431067113796869998614670396676308665674181365884104985690892783678159978084945482012944586054342339790012682891464184016228332947147507458735572444417399638035532609846375089705361313310637235101332589493358502107258849903636239446123892947038318292730387904069635328549979632982312529825742557080539292720994120892775676944327296496948491357055646820173648448566841803784185493674332548575277573927670765451807605841963721782575674651253322422661846300555221339116362058888479690565857349315896532903886534942647452563119370509496214361021262325049952535394619286230282838355750686096733079785728984544817021734120704822923264797453655371405113573986345280159712349972271579888967715340987543844765268040365736347694577893874768890913386739809907250954360014623069148267997218869684605977730551362173100166682318118871088781959307168793599725745876121544879499777369307604668859553017476359735635731797834297999589507887808920522641368944721745304474431872855241254132108388238190592945727175860493262205060291627897505823602209352164954849702313894645875371564833945224873388810577601595210975301008507077651687315820695720197427559900296012451584664277803431023238240836775023163018265302299688263634778408825801993027032305499757899310602830243437855593944645606076609456428165950312995852317047567331748326565732432819044322938025365968507355815577713606233979726967557645675510069288178650207060849868379775052324847001548256078534721043801580676623128606523011670659014330118856051912790380807132502146434324252459684047480065169678088895415716781390054501982903694801485908774396138185219007152756867170691530061488284796980858746722343899878197193748177556209509259856160411208408872371161146173294693684940817152056653896457953622672064332654452026460732380267232561588083909005243099751113972276099214392730635988175285441921301891465074301150883104264232424243984251680465635876695057026920975945230115809534036761945968494479342100817234181152589788463702602108887920555007302064712777267419121881421158063820233130153684000576061591004789398662687959702626914293186961505779971978575713674669045324356476222494181619932890659261459124198572364284527417437846768686298289209300397219792129397160255827242861245758025458573090890998887004753101522655960305201438377303010879219964189167210949604616148468865977891083615724728043445485774697947393878067795491639006885544395233188984487107701925256321682835202599942508441622694147302471620358768916332147726772772799643030963768729422997959129512944265278780365925961462509924900897180969130767480790179354052259582319997596600540295039443677900794739603093991678117975015719039431132399915693900977296813846714247595035044184718181720385506431354170543850019251154395345838636416438411908594208127299474945635393700961826532580786888068845807485760373677189583463507375022222193124121746110778329875099485701121221989336608638333932509503441116355926062846557080527491722957305850670235871019062473165798938255778949718543563990133633360217874280226311145536573922904932169348436089638359057538344643236646599544544560908431411298941630909557359330587116150631196722456615296952854464430416308776858414507200134460692820521200955831588928111509519914941276834762418254159416320143581954757024250602925959692391893284686724281373482833502226170560446474356410736616185514787675174590742574131397584004734854967027813501770610446695607676822585926458049440334677987349221326385874541443069603325366543963614944770897533617596316925029081803435133481263853425217347904282035976583788910574667949012158811591753038045142132997170725292219291861207676685854025882456771905082986710350743279049546333573303701454940967052277604209189483082001511903685887135771580388760636481891096807423376061091853460616543064916378168951895613361669423619773932631339391167110453813057095408306668850123959427850797665335827243155795732316993136184433829136224098514786506920150634592214686992303569557993678387720277104301225492449153376059970870882583453305759947512750193798108545182574512630725382980934145241995960452166046817845114658438170032356299180960674943718426447678643347638100335813575949436265823272396475601694899513098567284551436337949641644465748136397268930284771952158546678809613435149824542179157319480150503234678423506819202131481088935360988453315660001985110899976960944369221473728784007484364339650336800553254907760209541184316790326145802380600635761741076561268487240353532220390421098726158647165536387672205184718336702324730873488507439112980400212021891297593111264654418253895265362111516542293064482019050750599771377939031627946579400335914933022961514398570936701853933094036878833130349151223798992872078386706633222623685989492404339567949866425412560152504562194080420251420069531116005735353838920869183424727161237406842551910496002982248587674150788312202733037495558031577121984620498296356051206707035705527300080628301853108731160498139401224481002389916437685676765553193034905301718177674133205344045141888194608818555211236936580350150259267562405415908645965090072436690612032657931226864756764784673662002367233008171030478793240776909130803892698534433345820491834449677218460870740880585762828579587860070544290986451142014694484012466685717580772475017172142959612911623663324158771308949531546299538387168343977461339653703215833441119452740203480692059209580060291693411077222611766476135607882252109120312034782387220664022631590156740900544091003360179947538858728600807041614960358549934395661572896117942702695955420289022757027537958122100288978632214543907434915479934576801054401628851702574651032081721850891027864499112357402168949394525368464995245926669033644129408443496219519968797648656871309282591819785287138777027659052525177761811735404992742098575490712648642832307713202220058769350033952559596141498128818624611292747357941137459815383512169910817331863663236199764305852519503138490719654022097091690401742997929617621011625869674610626905198023722758647815935408668042264173696554163680552350093020598686854353501551683235444438974092340243995438211875810779503100249072660583942504842492304624595246753354158639826861049949157010239527197858183549108794328189213815577177396758424692513838984070673306033720514475392989340272050475610796918284617150602906275590293829006630571540107171554196917714443260058739513929227647554372508637329895792812455063464223944265372512355506505857859179732897258867378862236167209018032990115414334929209842551098566201733855186202036719563923779530966201506867501609741564659301719320781650838542886135822209280473303424560230036417585257870669850886174363051329283081035963818915234427226530401209992241227861445332820245547293398623638975484845497043149098042283878644133526279537505665126538283093768970120258576904204966305275640415833432051284258363131984999519433879130924863567690242624980052698606852900480977972682916605719724743852269833466832370883219388456672420220466604462616479668732112270366118286073058622225208882314998178943883573511408729019860077589152646878333466341960579225660377506190894352978429665536636482651370935849990722442622499837184911290130160122490156990221026615233748931987828101049310475518624897508008731642273724776187695479264499966869565178872371423677854169237319465047881545576366627939062252871827895475797069731568989593471322715252922365889104211284325612800837043137758829482562136608913747804345969427534838308506381820438446130890759951680902363309910907564081765348586044089342345061035631806259529586837744068276240269202776799607357612182492816149781735737750464278723386477472519449037379404901791810549373488019592408363857474594314058728692271432720059678520284966074359356002760165456555084510212973403088965944534982915857733804142778161575854424476345525492411825140173351300148695294888441799963281904962382224201011723436352995765017456879013452712632461588749112035313393793943722328355671232206314316258485946934844069260124185524454707931235626282222618843991107115142798445343999052910368966970365735904844416231729986425876081129219218008898959274805634453837950103480469341823683521922145649451867277212872318919654215534670691571148327650744492945359399910793497102483041882804611189961409964929067042214003573181322070209106529372083355800314521183383386731618438680687906445797692150550190714682495536115335758835035349679255686483465824344422198551217310626854610372614636190941484565333845121554044347568993471085149794786858040752963485188673783092857393028843155231976781443839442548776110230979565612473570667498446286304244686505822259349837715020494462384612662379191894111970707831647395635219262725542396513151847717099067101577410003894991055290206996490576382606191177400803577829383807182618710493086471186594358952858049032107150624966731653868565856661521508937314885829289989361339935658105844741155517009926907777210564345714220158740601562536694378681180930237211196045699209574477892706953960570913110316767226049360987625472081122662814271942352841487531735069252598593019449961587239235619339773483079736935203303135806254120269634394816706305004111543722948044355134946181058203613173934137809279989814960830840361083736270126713152591869299821267592349304692492206123818815947316519256901246022248959650980082644118160342450639889885151817847276098550904107349435564772728114922114121616974635086827675539552025964399724862601554710555969876395545768987537010224434372871608113559361455248697614134305889557111567681656932125999360019266208515554227974158273852659230438437823843551582381041774519980803390707040940242203249653480592576856593200996378571134622555133049161230129766971718334354208007536629400064716062067975296817799388228031351502421666826878351421649939201326845051101727133718791441558907929804818459297991811511270244246685630100597928690551589769566601492446147710660722531789591665921175188745922585493813107305061047220593652690070954891046464402802603755920574721094510186861509333960887940560035410845830818655329440054098145186757907834333610857438285689031341602113044651058255682764388752895295479357298006190797599410513837307915964403688923544852899165896776147907710764520281696864022718659674400832103188265433408368585897195055950155651119694264733090679879590053076712527814606107730653987282774915248344271559641076020637114741395905852177475069161973772142975460602311927441336887329385581507590958971349502714449217718520264894142798543282284239263827480490201940353335251403033697926458732446825272470312258413016903160530055809694888327699074980951291160632864120585742326841544840949723106184312783321061275675501462329507831681333878263672511544846364288202426369966961459669050688439610042610125520962524280679920505357206268372376326815454724030083004747557484233172854765572363455013511494732256179345535609554815453331069078803152645013558776834118639072954868557371931896551601945445966620043275161099995624485006809312203246574865775186342379263578880411308019830025459915340818750893527266457050122331812601457349798981707925926839925708941222044338406763952290333304862640542881726889167181223095361436884365674473553418694700617421668666747017484237677062149638209829834511016509975147829001531044420361038045624789858944520965539673932087738441201906108292132410610987360366750733079962645838811826112818037531237891861081548035957795719696466004758455767753533826504985625247789013399951535127488399552831868409931375533224048479865106485893194451090244904992560724751561026571168001628444909000214684971991627636342857754230768405743991865678538712624729345559661568262643422711794744361277576529619897375518699966077679831474855723413287522709075058907023793000059754457133091824500848021293284957679805827696338861314959072499404972276368855502597045799006705067086078732708591368655976141295475811173229680475635962364239054316348382195023406595363077997641668981161739179020584336105746186687211255250185923548018428621840133202779947711258504098766468879092439975879641225916545949411075663649673413946754864509569199856553779910607044405908174267407583214213709699399553219622647241309023902068068113863148237657219958050793325183914826909665092212794655969389754120072454677736054964308108434120356630196657427829819682688595901365742361878717400076676934993573801004683880753252516496750657375945207088050678005542137620251300496925010742037283284788410989977201777600124491454585391574364252722075433348387355965575545565644414351898555177186012583634667976433866536923994032800074575343873800265736524030194093558711736255925935023505330060889265265968731934038870464008763408057606792903116013256258043746212620497584636995092284297135431982252665956656259595088006179921991834117381582525033398259791218933985647620589210346571175184456706138858053850239559723910064461155671444112911675564051306006766543438108628134543552857942723980851687207434867712431039590841517791934721087538360489557940003039970624746351499730847677869830295521129109604951759831230630731466796214420577892387611057998651768507204215080887296981530152250621065780395733229503018481282387714068303920270253158265462351844356696900855627151726596758884355977117661185979328339941228886354296881475435624670505441135675296825319065629159987931561812451494217958409336996371014400235651606193180743918507032849817691228382403705601861427285194244536157928722674808588552123688046303625473644087421804152963250931219626729068067098399975416764964592743837121249296090222385264355528362467172906560021687337201371209614577656257725286602653673241565252343279976559807531851041966790132174318817141965071089207376483150250249943920387688099140701415773187806958715836043520964822564462016821317427158303477526686093012884059033418447448034126625385835410875303716382153253801384537148144704386743805527913510789869178967311155915013950655606722651264663846081490512870051683935306522536867985290386888833475249720699476507332706881904164839779035331629455024573704652014299496251228134606737574783373435702747869229668576790018080920473740926082494981458389183184332117999069942047204062227304326016703885396247968224533676354392304800990796827633455399783182058271711533576133102804385635837367265285645269187050009759457862218753192570997766650424241190603609287454772285003717335008756942710352122335269163909015065135621968141930036975858188388328689025896516231451277532661653855573680967598722967979100158298511954181520150536462782084365618700767850128836535179453539832100159811025812416625236010008013541808878946666094798510771404427812719372401400277235057699284484010511956990279621570098508263298382072045910480118012962830636447714976722820517713065794278256528075096072158525275765662445980261208026459461296457545786250480804408721928444885886003675151327960845450079891624904616537086847118925161837597849716344800219530742484560731136624570208557355808719192804817959001735483646833260549801214232736662796213090172214260949304590021766484515193611397530339676599099399521822844645657655473946403730841888832247371738751395364331051213896500727582419235715033498949667169991125522792253184325042044762835888691654974764916020631702047609936182669821750984439456085939239379711388943590138037625434911422215542077434839929969857425539896281475369707876442055198790285377040532907152832440187771872360977308957401425573563424347390836662213108559709107646528040718787843930728066759636332410490512554383154930801501128869091720213300636583535696703821982409571780941192118340875519688245306577310101415245529285854457177161598969031637047105896935883878737543006937932263616644286750565950927026598747308647309804321262972076625699592997493154163959846484699704182952254547295815160625226321937785694414709775465639934156802824838304302716394761497075104476352517486831424412725089086572700384535623329717958283636899415325767211667972776297904251940642155893539719094776328704428159163527684769890818725864769450970996073191314043784658216717815405021529262700940028577073752773971345269418408711536425538888341197595029598394038540847393958723320708146464999734672850434793650751027030913118125030768101243110004037873402079976759175850818312690623470827832475883397786607010639157090340454212358787784549356128604310678734160353767232574381313920587837538683322059644376591843135196697444741886153047097487410096463369697996890471513648495440834695601686626362244389151054160766339039072731375737208044938773391303462041600075042481973519508587053719273337013876140171649867980884081997400860344191146629492886166403145155854273863258960685998657019456932384112172656235488012909772825910674217774375149891565660873791444926380661993103015469212388183676682358359512467272875261146859872721540083358907983070102863750573034414664569887996026237595466726239508061817757891431906691765926352987736824438006692076941258139005292098212270704688314051156605842609031499945729160563825294497613016886373743274184546769301978476922475416912370117566651863213027879745238037164799836196650062114293541505777541851485794006507195400595223170722997751208660070771233420334338584434752969612905568953774108135377584467260986037037375227143265558847794152822150446671183219169217509104701593792534178905290969491609715292136037969169496123431459152746724217479080213643916778210199589424921268852388850432255020264093471425709228520754750108935783564113174097654573721128285475859280734362994854474778338081634943979126049681528802568068510269258427204437715439797240689451821630163900008641112902687859975602238353736993482026150207032896790852191947033508104962475371627138952128715224397888703496814641535881648459343342120296465009802240089139217937391134595996074734427312944110139437538349406197953902788728741503275058528372688418246964437115176995826453756967379059688797644686965928570039150741205958938722659102789466095098146278646446562585510133597229605390120296599861883263605470063423646419782959466347541881971422764722664674466789346132410718732639559510271650781127319776906807525654370917909538025334604214679714465211479700757499894893706844654300946590546326762590685186327684662609086903106108871061149413507692089945701352503416060726276227123736906672224980847994268449113268018590150377562201204112583400467683811770320133095924931221643498215365002113802788797754006623075482528912628527286632441159015701110146261741110301141141256708581141846115652124247679554250080753326673804979664435003775997166972261807964187545933923978020750934750648336899199165882433810148001792298171013187762734949547635266789011102775840963294647337897555016420684775639390673987941530149639535868900429934296953433651035968104331830475305106515080753748783239513833347625686804376548453210450499263266198447798696439953215666531489100870349167144640871396737875504518495889286622257597455407989241101068631014750896295441644536520616085295706353205631575965676899057284488489520310360585358390991646782897155175378956751709640474646492393362708485417997042635967949917408435471980702035543483757915827359374935736562372849049335040585281154041729005251933515619053702898706335020733797964325617604961389407577929091109762634315433651941764242597404545027677952200301403335731913137285846239103793645074196032363566842194805774327224791681195279258084442314024501357066548329364917410560273309397932219913099926213436099806802981133358839640624511179251391865041884586501820601229432755084563800394767639340636131230836593195160229370300593082257695756574305685786469781450799148187016479840670445951234458019628820302972564121880592316400458186181656823654136277547112852028231602633717712473433620804034171065469273311165691296358320111726942554569434009744146582920418357834284663155088864848102258792024416932283330041355640661531882498647923976355417313174031884396579038019590688178505502123142436117524630037260468171693095409151156434607024251264977011303842838483046905617588824312092798250942269187090728361439102786908240710680148678586757784078415398259993185710336453640555647134940852908088502359146479848807392148021614230968464755500603777374832841829884599256478839514179495297873577449142445519429164846932749435543088214438054805438467984730303009260676606717544156790959346530126794546460500560076681332838690592475205847928348617165765631555003538174068371103086023525392419957172323453035402286003540524127056427802645960592576585487596123730785674773599143579612653939619216830148028815650723668886119312700262151914155262932118476283603785243130964903764448207947985518544179603151621774108406833969344263348616729850882048530068253009065368289350584809245825002534025194327661455485835331118117882774906714843193534705129358574812307108459608344770589027030965758291488412900070450614027493229197905830616689965697896851463701681788307617999086570419845602948265002186165595104464183461604943981281340358249695738294064333805724539798852981331827183869989781272417936767322540083760945335774745811156395917399044437281642080174919519981811779841605771433508564780707757161678533963041914371780407917897022904642494589626062524795340778655831198602528894702577807566211058779434866590061940288643040481115854444637474343609403848395098588541230916033395883303022355011762117376221526306609212309894894953214498115139252019081832971952739429601734007827210669178331631921831384036622947804055358828633190164774447364830383493551603514428689668062464196098456708331917799793336809943997614790897839436928489700567048847271793909898293000480968214641220093662538746387362708820194755483808675531483271272882126372641043642111823576572872651048184664891360456064221534777286129370744358437187382935004453090544154795151481990668599448773510278494482561654746570288851541104107316528877114524719504041359316581656547111805098255539234108799369353654247270394489112881413646831712298634223462576668667057584994244657078447239009868472680610183745512929026921189928057496942105271929803540290739125233872970035161394775221771119272183398962537015184710144438587474548123921129066040383758614055799304488495396692178927490929680489269995515173286633263260349540304230673172506729659178629507499207515342013140173336518441592944321352919037965135160464435118601375132323672923771510590794581289812363368202674680974203029208625523923376350099801178626802930758589465088669377354806557084461496819856220646605991869342462979456013905331402280965876082704157311908606705552149699706101137295986029678798946004414235864271256260746302834448493320514812125599372758350976209413878494788917127626799739538421502214928897671452953750971357390310246176432611250705236098623122685334705226947124373290842317557148706691780172747687032720339196184799065442314962271851796482767890298677002314173929774664798789031579750981795463920572198774725214572624649082956963167320474351302448181738464150747672854309768485692251855010541888745191522392736327455844036868045897392941738952198348492962781192109913952566920686296896464648101257729043121695625500891966185775937368643470262524470813029350663806326616879276204542158334397591348618541135689847730312960025392945059481025953480930795980695194328658367307515141655838693571753501484528612148718382736224632964198127162244734280443798505340438968424481145385638260622140534856943720939511184184821560323567492384084824023074251567728194329319856905882808334183681061673242138426480941999018141392840003343940207986681681957097876061226550295449899506503823797616579794713263379528803883300506325178679178413724874677118762036225942962755421867246783739036559602344920821561964577133011808147277163887494277669722938301387008337833964323077479379449324814859993942280818431941450812401483696917297434141188215970706183539320396892038573835828310280254442278092541000233942454209683448557696207858919655586393201580272807418394412939061787582062617565657586595477247997566800919634508580358178732144720913047109473184010036884917455889456977013172697281688750410492290221155195322746663439943850835204749518146805798021659715825677983282826460979025718708879283939386439704996984230712828878564769514327506493139526123079415140483476306236642210994747640284691494472963418061111124046705156323794514449918750509949985383946787206548015453124037525811426626028859523726987435616292699483989264363691189603484846480635815540949626835157022810306737859603419626979048684818577641315409295207698673248071641142881478745939107761528292056009134025977268381054547862487213599913836404925141613170348280719425513112308707884821538675276195137557687868773382725928556034740950929922107682125859450472535340739312859235525066145964384110206325140627075663745257057871785258289535856576468098243418232684446636009043179663664969299304817433695065044159912004518143227269038014909736025501971354178726283447459376603625170728890276782959690514295458843423976656301353779881863562476002112297662780729293816657639049008566432546959683341985241502727052739712667851232750983833309263649758728107491736432985514838344945670120399097173068607092508666547224871920577030153749118234775293044170956441470009793365113012922793242775985426537953075348937530917402636320633185906152240143822057427584065494008934039142722815025268394862857054774019544112204233761887134949957775116910825767560987645173606944194951390379421680066925883168480343395279342906216212165624926188022958150740596195456262832094426346220714446516039451201733696792790473125618871412145695173000878753689728226463852372962123612253555561562054922868369101233711891409913301371550618011922556683659319985887605130717946153887268276605743137842479034505819339885722413947739884974722160661727089666095701204990791397270631976530136000986147840413508804781096004383378197273676852259656694425092565281488857330650583152276898649280274031827704880956478203619100159368328825457793252092967789179051660385634851515146133001369891596578543045174849087376878323825512157255863114151572995478108550512451233728436159780255627396329780177606369531040058305653770852640008716374071231025573562601761689552792759740369173226247469733136071338818812814229550782687119254599494030082089090699498086969525385271157860539067068931180094942454016458645988354157396405491992030550962113625208316030077716958258525775829503555180772613909148744976988195129070904224032721247712327484040897347341624182549802943330702395632499184916677402587008243014829275625679452588309134452071700611645295336521921458122925497335362008503987482501840084595211721104667256178226612075565271490387911667201333662851777604899976584381155107660089959913535390721392188114316950727045660861777266266657223433962197716125187033172837377022212580287329489181113818218528508518602162647039840019492024727385564683953353093406556720410118697170418485986600413722940591994002532459728602931363690039141299552584844971163412145970700638964592593391666283063671249950526669184544151907317739242658202727510792666100427986236597273172779841434584459997606537176376473933700299292583750963514161353566873494602761178183868975353479375167459191499911051916201867670429751192523237647081082992473248883206581774789590465354561241096586001735174577508138614692285628015842429715708036636403668374719575575881342915019503394382700185414139437873646213362425527737255510719752462612516896088866350684782969038439821590035938785170060928528066002392772325897945236877742736297547029116321003064013868552625281745591481109599123767450641713490786911380174361175492313048568720648578666665043470191023963164344429337970108692273892154655818602948675818853666753242967863084248442877454597734183328195517376965015683832272317966192073198386816268409914113730817870467687961839194018548905060001213194697433512227689679163561106695289500651509007034559152342971774855944640886382024077521720491753107968400551289834829291912592584188644049128724319408126140494120358753847677030875749037061030569118348873589588001623909652407930242892785973861566543744725736618157616388855937207206372390242940743419207316423832547883712105372343862350689941108655609224231858345545398981191042288283468646832910034096646565292603352395453035700404523403043049981976389785295289622471053894669679549007989737349096331911816367393128824306965702665186210783435065537546228019324377360816688738320633492729966643104809595429125723851347768429646116643796543582836235702210943639899387055953191286249607951087711453229390717351855170946304210260159950235261618531232629759044225200455900857064250440030061919019466252617134542171555017660651668498880321808505065471769728797612703253058960025247329388490154161361713644504447128932789036108993195124447094351048333925563600998721507250796674406606784542688439600912957923390444236321065433887657094317994558775624634911479646693918911530161413754515084151586503629769689378137719800899579365708705444940618723281737584159556155064582524996565782354993519269366954208054861503542439698921414779134117353104218689787983973049715677044816174376300303900532935917722040853200301018662818975524189378698749722736422693379523630879652358754134025339152756340783189398863654565406146974600494983554952682025223354942365702066240619844203735719807941288045406861150598395640731926738621682750396864385622867418699061263628785487678744227266726381814799398173327612002092414169839735477679613332801563999027053312074993585414485897423415979003430201786985426745393876304759448293193597283961088257077015970611935891928453095188027352373808504973224589320512163661884170606577045259818949401667091539130711022371352542253076403348520909718626107323748451529718903803998067995887883688993775855392670581819820523213872232012076903171253312581378976077266779188999349083998421076767058112883598841053792103903347313926091222193855782240185962240404179720720381172804392371798420373632385791941428354011319186083500474297558056492873050967948507102546245483740163143960882863413857217898344769119545497843541484063140592728382045136065349215223788394028525019869319651904959755754653411109441389327071174969604873721907283443023915710183490618351731342492294274499392879574422863810576155094677553235909698374719013264502729454442329171536607009671766780929593686375458907333910732160612854034732823163513295569125363744503549899522039393185207031940393656709901158805532189442129123838248210856786606917330988383763853302379596758273875166300247987720810314345366284829959833784154334176619334746887794331931611567542305527817569524346622364983728605794056425931515476933641460041120466387358856119650207343103098730403042865594220083271629949708553214822462102870858784266429761132770068253767929718793879695914905851667190204493674825376920352260966487631417892229039668735958255575423430701646658470838785076181474031883630587653953936576072528316107781669536629030894288609847661386813944103094597383616518206642449833924057281055237997527400233104264091780390697139118781945193586090844844081806110186069438909092560275882923332600921371501812389870569407314220677109712306068583607841580240998580343857818439565282958742422824494523497642665298305315800207312628341460037070563668824360315502746596066339420663761057539699535250400980845307095859163929192930368322270039412541279047217958481119068220775713833931186580640787201163927101964489318050402762148531618123139472937023123449597853204421685627134176698371786515385019242990341998172443780869937231181461499404020132271235114227571028010690625286676846156400460788250954295256778651487629533331906920535471703991524276533651330668269847007251106936912280040764062707384803865441849664243328331409148236765718599325545526548579946670496164355140668210737935486117232977098155634079063319371668629149395023727542888538125183025671800561718346733889825064292782100664636100001091520526769993284495331321853663432451103318386365563975513474451935141686852597494683661799548102216437818074984809943752315910595643607247071326618323801633235955013594734210497900268901354888699521792424750938534739898775420079485133210097847098045068315783593711688040675618481022351162459333094112985958163099172086316445167036488869864253295281239585869513047662775072954297165480607178363311044246326549340085098777601233523877634581152483467919301501617784725158887898379580971621593741907952772394971461593335780301213461603865281635736406106374787339410506034054223723711832721999272072674965104161189016133984663280118601204738834532572507092296887935809116069691452644113848806487572513262486090261734876667862930463942014571094335711603329280256119607956240381236909438374655252754466198960420665792435907624705474229986218472700643171878414065453068841860560265610402052290102013385297141993251805525693045311577506856002822860819664360519364974747815186095431184132791326335483808222336355448216696404690708943194128340052384191033899962121296632395717798834054143184777116775611743435484766450833375329388000539541556898775132180191337706503380774934474714851090571216385013823807480254606103151078549405221765592218102088720913745875837706706944730152136057982315548142336182256682492749704043191992370054968989163357801815613713690479113729232580222971971709592756615827502951242507501580232748967923727464088504511286196769058874011748513364291621922071947896363514562917266134807735422663824865936670179451391617154967241124092338994255116313703373583471386768586562997060288827348147457785493241278267686436535411628860482630933286745787660135775982352316627321521218502227004251538875999624140863250646498873904608452857499619035384422774413775912699316906666985389459028631552306436677121981029962201201847706111188328667025880847405918985034811836199783665730320522880438507505694329203301687376379198711765426196456032215396682255842955967209758127611405937460355398000623875576190191621292082025806089616807802354194312156970440858283756839957571750976019186163810811270185130464816740645799467714156703824517830884085578463462858284370563011076880199807417544470828819798200204167708837020535013611047269907153084457051551669151041799979820846017151951553958888055391086153842536280096174033166146651218946192567793718946246722492902140040922012730071645186362791733245345277909981761936827544365957051205479224034539428691712305166454468864170409910968440701993181631017177949882562006519140609932292061336859929153325972604008356981668829035516626142490556585663485246436272934201493721261726962256622494582034750980352280277156292044120922109650688954421569291171128210570446541959986897600706871783238928888828950981403457278813017734216736146202634775347951094345111607369358530800685975162257174403921730638688138923434207058976158451727832072532387631515491380299172949310219493588150279249470936263410241437140699922344107250105523733156153812944224692451611929229951511175683944008754826077683105074506923850090632829029685063809215899273537136777553787580410527298079525928259227915433864900902583994680035549737044305002142439468782497078867521446091319163798787736961940549335429128366257263729163280602070807830470389549362884697831827012502797349632280045868221975375898632129127655864577281103800503658075226243939557913200482036943072034912764535074018803220044377787067960535741613098463282132268081879277968870890382105850227421013190555172380639906449442240343682833318596183139515026774604170323972006353437983173091747310145043752435947328218287114265188258301005230398709329259584003423765354217358740757683740771190194007275811570021764753163939731274395592129006942587706611326956230089587263834182264669429862973742038914103891224059848453731018313465491948505411572654906487715984360704557783108413889663332449298544057371424553493817887269210960861158039379298898561534170110065448716542895286112771734118641711148280846913418276708909279908038032796642958513100710124620718322170417274461481750406542804482544344555418288757196246391521526396231724444218837847086222991300402039424131567319419743839234624466536970708547768097522180934939014746550720533922921273410792550859533729473083438497390171537615219397325841550431702293237974805524471434560113638750124990785056151261448297894090386227194368640201730079984629911230818170142677741509181062375545473239459350683977767257843897979996960584975679910424239466235173466447509247487494196354681510702518019969225602684533147017412332749164845087685638946194828642910982099990273986009272969495751779366716538889009414799243015749344532657047403420633792947071458608735963123499566303367679745551620366520463515452584583018932588032812756328881810524210798842937176222417922031843644658782204195677817837715530582013642256859567323643667406424466329564114946523600664040064536555789149169983603500196204027995311441646355133314447030768103844424830337503728881194894197485136322152999997932811597560849168588735674805728509548028884597463432315828586192021956262397252466044687799985870058061479373036049711870578349529283981416098665641672470575556053830767268323848528181352595123067305166069070847740586609885566258131796582744791648965828012465561522212255143018171993129298880802794218960070593665164463925766405933001468651094226469245589371389518207884895198177921912996467827632321514970236354808046401278006697690157288097860552738818240423790981698622322296799191769160019922263600559893966204462310037157806551616997236552539836312059034257272672243096007965127127736052776642101670543120765819600610097668887839652491905284149945756823828788046084088472895622169643256150364656850520769316756475311093395655616301444392814691242475324333988498084790605459336660689920593244444986583113356565531574848658239478847809162051816785872870302075896705626104669765752968386623866957963070490155324766902195504510231345513453665339233292649304769970491311320156906109107095096069598969268074052380878454805086789369638702175025992135976645151372090054888749848634283957047723036649025499943081022117629073628491315924119557300872538505126548783881948775582504912310130679168062041709791486276595937773748037380076856467700416651581481745759678581081922468694956817339135215643795425707014001867181390320224304213818854088662216251104790780193248866419462219271970268531168752853157371542407626813236737691140870175989713573936914342265500234571759721872916215729603990342153998554655898480074018946870999916824401127591450794005919717645323787053382012346882197171054921552850530151357874954733492001195674932796807454786303953613229543588228345347361984042501492823905758749826349003129332618776691402084719418994308079561836603123720305518680605566931185255765670599608291203364159529574429789226049829052914334205873882365480272731431751515500234962055716589394389168196760382364823957896128071287602134363435023096386813503577028301524678231938860686628467916630737779328047159187137820249876914674296300574894095516067824169312749273200762361674664966518022681349164645222305534502205538764031757412042819749315473470882581109657950416483450365540418021274578084298417983446193595393219942252602761166933089096971253629684670547656929668744253759085004217434504792080208837851393482935987319587666995109243359064321915263234147845360668756488538049066988539604531068404790937710952461413851549246146341402502168065796776314461031250499167585800660762472378966562432622310868028287138939901558694034022894804830925648545895802284623182516607347894170992568613363441215445666214364751182279814691719385330693185602364487235879886900462526357182821204631131588447439544200140933147503358383892990407610952498434549504417980914536377814455877498080730511006591405343656512231978428798735650737863306552384034393098066026718130760865927786932112248640435387134761889418223114896421736102631689728153887561655349260192018654653018403363301001274891178882609656676501461642592486348494175516586426414141227956319324835165746988342028005540022334995595303526593474395994883164784206347320993442764821109011279548453813975231248517132677067046801939329678865436954248980895559593801535849692162504063874183003254156278769733947110094136525575756909358455961575104738797599960244210442545276195212136075595467902923002412008076446094777335433533823596806561606977223529655471459017680985376241785037337323622855684167110362830919477212342882824396684426195036694464782456691430586509037710584805809165859922741227708714142535712617548344430582684533379257471727448657407350493154566879200667714213146285407614488811558658876671954371551776514037114274897489337274195172807505586030760945986114479247829797043710516111981499248895662023093826201287613126931115317925319576155320882072552700733236811902833410757695542173883371201514272598994036461547009940780565698678189299309395558920255104015665958549059640271083940877078833412710299138355260262988256001831368392687998856855409716243255212267484673530262183217991526385023643342773630954403963753295540681229340225005890155551246887049931862000295102249460867469622825299572610218168761768921792850413504205755015684566941278179438298593811244894216929614813217968971811845148292656272828034247918737633046548413182551425299117852050483802880692405547493468529975075715020440368765242536687931193772441309545498889118974207459245769868630447419011487225909713850217413773338313901539129845334811961078888108472518264821010448313114354834008111996595100515158596546533895206378317312856029275871257636471064580977272674831794923273138896568278151366446737760626702334897505781728359157354901045996026757065239875907525153634040470687734518147670928622563986459500015651555387192426720913143623743323423123614746009224151979212252835314018442516191954048587598240659111817632520698733421307194458207589592434505130689867191755988073855932447052626532285518770658046102600331912525147935309606942056471417145471016059553271829969188030110169719444050659245365908398879142231808426971228440142490516457225768314516381624860822841598756490894333065848764440309200067435329074003334579836937971914350567857442098151683855320425018774895120161227726480530202495674810642315926316173490422297742557222638708080760660510809073996437883980987253391948009576115713251932498255531928576154548507943362109603447897621925480713096657359209330131127174625687835744939876168681098957056003553333462579111637284435251345416456386588666385645713527750953115776387388447173840204059575053308066452443590663737855365379931700112619028473863114110899520536261580744125529973185130704130000196730393446958836354484280875518285778052099375853984589037060213490489689474845872658819373338318959487544222775772085889119130543051289506450933066342944196940777488946580194670046838705353816498871655283798650528926247863377886056792581598605546790087043852694423278907649287497698978061872650525101086573339021803624703549530763643495722581617269307260596483464559444709836162720008222426597240376058358185555783647710643129866913364455651610675783401003596774052940073376949440106806809595954264915189586512594639451952369930018611576891182214274960784350208334892106982176593040138575296919370473130728628975839990712612394628957263400513052971959727640734439367512882695776273556079516410004523690191372826780100052397972141371062927300275620048972402095210021369513573472200682156953457159764830369347208674622539257899639994310041193143110849729948861583657086212721665048222676233859489597290009611403160553830123193991306787920445056176185046651839756121936251377147806858749969175983566706607033855471890331902601431679949978429944497401618011310803119571975414116972854821925602455704201244588121883923121906707759048397993968478816064339313807983017665080491804441726470982360920044651994156312789910066118394627349333690694119296010090288853818122739747106512149177833522729423434247282121920377861365406722773458590205298082146175233608224124357986787251256193605417348475871350491187076328299067127247654859985776073002402027614733691029791861387180111026465179247514710642238946920487332169678001031050453852373871144082508928736182809234037688983737048213169874099669547976983685500759440982047082840754553653099725330756209187762038691169206706816263289585537154047577802615056193172186337895667469077457400751965987583988418252752306392432592349414931079730687167563716926956434369681386459365546724558063765040962805777226212767279109654313050642548928326684781129784002992958663401483641761503693338058382213858690321040750491798297628153336075687768895606554106021282087252571647278345487392668250315237628305505886509385996195206611441045539829025278888163318216108713368089828528370798392241941309135805908105635007629967364718836323480379495085702931831032365838960844331648648112141066391680440701162550291995283671324368621077507729370838775681860998941646566606797743329075533196746185343902919153094332774268144670521656704254952307321249926006446005274276662052232337063439770462202151320690937388526691142224565784405174079377263155504311126252009525610157066584283820626099316818176857341402428636340194224595195700924934634911568107150532538752633817533603140966358545849821609674599313726683062932507142427712097714100030150497804695401095393271660873101082853731771027009112690921368957482219885886749731853212498846589731604103490139887203419522217715795570857748859076346098252585565695690983063932955406477031094479059289675102142106698861398577194518725770376807221356630464316421885789897681106276705984527393307481029934273156128395992447456434652168700964523973033193365555123497220054495659997019206572168952580698114458458061134360004767217400225654526297025160996856420934182417045269173202495146847235843911338803404143731036433313141524809285905935551730421019015650941964858341774226232429772015134183745282130853454017372602658899125207521581430756616287431931163241287259053452995989124234673855896079403276480773100901987727746325743451962331720675627311889542017870275533909391928153591847667741121314790853973891901160170372238309226491554116848154084852506994196729447146840776722656199219866542686151056745395863143866059339323935533497894340689733294080239470945346708976137307187911874234668282076814555048453567700886878166999057962586450161611764192109181986841630328369384960969774841254688850049755827424629800425584033599343835062210679682873292650427522888132049111571984626143853497143515743933208132138805081318490567804510349166228255458242166653900067021888616022667409330880882316844128376718904395117027790281781824443581842203408684863619443251235196006892216496494046768750049396849345190172658755007699874817349526494262879291604864186158164002738962273178657262953209132687893471181608506648731311979238292046947317312462580936437769712640301532294320320588519811712398746667082138048446287921210867412089703878521102947893736105870912396103339794543542629333418288488308012930177745791370297630918090857649308407011265338153198328735335909706532372660334842765574472773396565943013888517705351486173054889166076505151591033637456290721301024025720942971196015743108511938381198053958444197442176744672323463079221977325513499535108458320725876497098120757771783633749939052343390785001761310296047152175271679778150167455302210250723721016676648563546911142228238391173024112247027870344999499634845267083558058986111976925305035719973984444082146364834238585421480544286019732601027182745967127047402291671802897678870046703069493422132230469594857218002528799870900029063859836722114113477987877822997576853770181320830182245064714211631734696579787210271948578204359213728440905127018094295568903262651354840284064529924265012121944324075234308699128743546310922540465463211267622685058315759071866757047247262259250990932703216815797780175010098756544128576901638055006038696169606246003950026831619309421433535293232674623099613122175567141819797388229346160880900729796088945218137445412554469114565290077697396897170176589740207745351813161084561866181681654769673234153996729265229488264288564780658824460167633988825848257474642994747696226736582204105951059347707135678657338804729413127604728108076924439442000533609849317940788199307830258249648243886285575814761856134215059329220206606707037402837477315121992397691132990370566377073318547479840607733791089794409458526364812615276738746259507330144292937063795015392450582293760396133563603390204924540031948215691988382984597211762768489056589297378292382687879590930660384281975579861312373668387790238487635065952931199183082357663895239997641467258331846536800412950990061509871621912561064090657856817920509637618052009553719049248902589123390824756075929653074033260467823537447990078129626993016782607314055131407003008263994675853515465513076560825323647341026595063809411420291251070407756996819524771401530944719515398974900129604421722413425234053824407935086864184764037830582422151885909481953540883034604286282125338733240935586133454370948957963851057033845428334805469221089684533053178841716489847143115526714680481766576264997546454424712790801506347602490651157405080690289193199025005344104770500059755739608662775010153588414080586963515568145686482140872264990181562644877346358079999381089195839714551907405727136310861060514651030675992712157805277101342718040561375138583885202510442360606849516906230864164750812266645776127855296009197034639695508510758129095048408562610860316224190923915134741974238626707394766944880865156963850573215749981756043955130226486979338314694519896256153556386505453378732529334891298246730545729373523205981663609059169392844618324708216142592753957221613170977150628357217967782019852008954111652785371660481724453885537854322722853103622811658313462469955061314608989182061676800167938477283959255361381013475227303282229593396575286797745260732913923191012960131484022726908835593571516658772577343013924152536911027933842612659422426820858335069846875341542687609263027282610008305843707273746437380413255312714693342584780089624619887438966574172253899610793194740991191970521574514547812829974636060221965617341127041428642932643460083063336773574994280677255425916557118856927103774269918543855134766752950459082289109058975458730118763347127545215406312683736495950643278484199078561260601579856321649138591711582293141629919499704015937116301201785056379548602296294893146216042267795661751604221495042594395928407985015959084452948862413905365894999217263949298700890475489917694620570923689173399576353599963534890091219034641028586835775928117905152504001786577989388106812075537160917828585675230678996731738623694454279774746934756626551994882726240209886048538377398880854029364391197667432536861874698136170127473094172304594914919134218132723664997993003660238782699748326473795647812935291602742629469600881775227377479847635163159504732364774471167019752059197910926735091874870355560314271963577077300470335780948064197106847678523467095526210808720451878319255134607846618642190268415441368797222793717379578490515217292161704888699908527124103455959421421234267591758726985046261947501252369531351560288070482611818670092215463271035154706618437943464706737951886922576294565392634498214735392090353008443032545414537648241044890829905965535000741585971765801143369417910077459133262321884552540409613214173084632327089975596493093360518973971922208655963370369653855425862359523017097252441535482086378931121361001894308402778171197226742888629100290038749365979926579443966966843549630397169857831099256716680607347788317233645440368776788169619756402891007611277808238100953946420878167060988759501288805890992336193731642708280309709539768981281799435443282499893672919587763100998590430999840761990926855991653545434219268078038526079175616838023641387547942809400495696429098891121190826034660352228958750241171813532531123088075152818366899293637712349923945576414563626906412907588525103841460393037165193590435236781486638031389965487852302393342405055333540333689308694748818150664289857854777843323723922082696791803999211739714242114865026903342093085138442374941456608311642202000070401251064886590780379324153817819159151053262684104599044239242261484337410449150011994920153429227802968606203172910390404885408917803990976439744762521815113954050127746239780675824395170314813294010437680293516351400767449637377164987319373669841414268623999760313804159354739798919254081342840110278697456707238671351820034969257104006815531644018706656726027877536583968268333153340529406612250309953870685084989187907397807776623576985490025925495763667451714393130023402425909027789100443706529852263996691752507861410460969922704045902917580373971150383362556844544115216804382783412620753623986293832892559703133621405234705412465932496843359004574190783307618426465064563827895746093948657169426053961595827161887520471405601252421613459747673744657474776161419988076913411295237485831709342636221682388404672574202835232925963419411294926379827656230156805617811790151802781798148091985058773774232183326233137383644654150429953023361362638988079342726646693018714358294171887504716744219961852505724032356323486742385837187623398204736821884117309243712188726098693090988911307608806183626304898655517333140740274004640922874673476821714749114047570856060136187862977006001919742685692820067234287803123876407976942597696118919115460436320640111100322584623152998894196785093835311010135517885900063934834314232554703586929096435240509363219633511534656947101660097468481244306585201239210239972498839079845976933891647197173573235006595635513683998482310792948961055268993920698183391877198450612192541542359179773089674237558598471854651747479425749069724627428627764121604104117129099380612234791762052139891845116287995648002931478846359296450232527252727465041938691956382470315526918558166637592424546980550502357632975323242678111336941236859655746636861842903234522627579752910876651088407391315499493345081957632998779380547161185996004287715883080885104759371179646839662160860221690383131820989904516992735649687387501646012967639306296046883218581737672885365343976620921653274862536808548365858129851405890585813785502887758470417791302605202262667675368975703556947079625727222145843933758886830118719052364926671406337940755580985627446119078714097854796208263812833963865954334976197017189019866156192690860855963668907506665721546152983795468829772536363967596687648963259775498542445855217792334690875693940976977020881730422564127004811556657755370678807527701262225557690558446518707568451403201973711071993034563016312481650417036576694924336025909112735253947171409724090397747797215945580596881769472676655412478183974956775624096942709212962203220525364161965808463782831428817821815444374363412719207148566436554803047178133569177456002103376565302489846991462134827981079872302696774993013735633271127422986051726771011748666946466557058909723619309835990897665606189541345585210477963508700244255379254367792594759178099558589605065096712705555809504028554518827436634984031283410298858905153542869271710162704798512112482935862963618189286941813746377873642749528888643727768344846782324702622884193583100715521581908555517057785652999208158704313834594967299641468852591318088986697979792833427069710950845102545860294447785816025886473867545498575309098798602895479652853238378492287872634008133366017057272447168390411847852372514693034171528123123410153329395925436919603421358085725119429560212943957525547862220580104409476971649962175487907168124286398577779101894603409254052985613281192440652503626746442370529987993273846792603868427281069357372404254081161597828443375085545788494298534153001748069251867566707479839908158167541335305191916175918978318256174456754653838390717014122792023420690124513312392487222905409902821227976392026254162723363215835918524008854968428740645081060495332016746566433960541365039767109607537035569098647555714969400629762048867561711815619749986078822836074710673806987813551438382465297855678218355637830548863195878964769155889532564891513892882435814402932088624900402635370989237734103288770456643530740380020213786681560812214372862120836101264134319405025657801349734401947175448737997772992250710420656885788911171593512568053063840168336977713270820572240328320755321359131096171862241018366627408989010410376829933287953450479594829394329662896921641096404066618940053837029333769318018859141191975289921882214313945889254355825280970123794767928243368530778313177226646961245031066999063057310919524077777794801354907687023516452898926503917295154724012334961474985294720799313458004999989204365490587350472045463611591670911088165013784840214565570518220761830788388280560890366836229981729197949306302976323351258678415776547303585911720009563660541368427941554669772614200123268940431581480010753867480747753935663610033511545339686648655457983127169158638717607633179949198565434742086631657804482425694145635089500574644546656688001474356929240832341372595774374323033481708741704127559485453090185557477792357421323025775197366485685392659248848057048437133326530078283892245477467573182921061203241036476458918941265842619680884388191789438753028489254821710089887787256317195586389467802338731549175824328191774662673309913863926725375792593466055698494282357285258353434509110232890510171818652708051111424622095448308246780687398576749277247506929424976791447591236479150912692804863703403379440016062024297145042378898772962220463875676946980095446827017434423539172512326842424499009265277145885415152484518511526878160528084650198386230900175346629517049885727727037620250777101100497772432012614894996316828204957653455703870964942285181748881062144319012781054314585194250476963870900543129606055313477092966632810327362556608931893187772853824535593452449908962928735693092758938230858709357744183849165181797306089595496165451147749595616758274267211454273395312478469188410789820662440441052580297486936081508177451160492112393685598686968766170154964585866974944523331619788085011465548347865192859915787786114348259537458099791391756904407389874726152920519313807181749327093771404468261877014472947075922886796829036049947963056026209851754226425984125143378048319488015013762469597686952558090078489553460983033669900356542397026060494685543449958094888346087015162045417369748685566066880657068927402379737382904517513256487435111041421077623052895560415643654881009149921913379307298330589631900039362581816542089186607402990068132876829230141952315191667344692320867040730232322819690974353746543122378716840518292647301596862267559918489883897479891135748726286848208446194123334407623519439194830597219092876827493681607975893581424470069405294906225415285997931793369078009251619245442810249646608833509118377189991293661716782010794968495703904258433242047912905480428335421948005125404390231461348161637779101853820429574118516963667502071764559198296042304131946681353421521208013664147883268862555634249632440566421799938348547537352268280884859004475638861684465600823393295234642288370663229635216111522383811007401630568268940214177046268409269492154719153683324541945457054725671959907585822042344028896379037333521109839933470859155785041915646181303625158771151998626816819830462466937916869788148762927936777368240651417131484708342823561545556027705496864935728922349871795094584000227656718424348722604476257575311690019735822215386171231637251144122643224709090346172769647853739023333714459989365941035710364553146185845550062153276012833096710653638706656985004162966717091377560540193437047371919403535060011424061983543433410671521305075696848014938832320076931336550614122319389738438822441044388342049284814146637047989290213864831118354905643114176813416364449820628858997772882171735491917072750124902892579133378920249965076655488568019612804175869556419430731616451900896104857379430306767365099565937198189868711948394328588639543427196080747834297291140796253236105168526036776059361399099658675820362981872927093825213202403793188284818553864276233079217026004099465219970794200741468375797799999423315824901901029355107098307816118274677622275878386238766188329088583333993143845191315609581728519534560404120595052495027428949768786309774672477322294623461956653742405764231661464702776926543604012117012894843922864784770674868628716782457677084269924368081309607450557130575699650472327420488537132851431198104732467873047377155750251142394701776827751893680618885578624723479499876553734177856047726258896966960259100243947115862238412360993036998266476538401000891836302616391251490853542211993321152336341232260407160160244480041593883426815788404093216610828603132310744382038403625709920732700466096830024330177754372822563576555024781841298411901611045610410285830238272688182527306840100543787393451918870271846902919059400779919827716964262919757262111569315540733877009199270242746007803085606315161132380014195751626214367573830431628389095187605717846599516063234358488603933727553181310385706417683961770932792339172012023502777991622678180436504684902753733867123918827325644924381963191309378922614229155061904285078258970122766829564918912522461432355157057747459127640967638053343639318894098776235168182069970552312461284985386751737312896721430369467843995632715337387667724563274082306443591176610549077565381933641584805766485090333965692246197448682036646019144120660488204574952575574874048283621669355594247683405799123022557351077878132945586224153670032333687261824549466542540182381194159435494699608053312406469266999911566106612863804370681949363189752777452068359900052013340755725719320629443554347398111927633574311541826534479802669889977513508318830254970035328043240967453862487037710579769588336674523531133430345792350035502476216319327785191085798147274203734544836537369519831159195388609006357681386089349225186784559161347684221880322609920464854588078489658702470401911526512066486479944034225037051860125356403837773118835517462740755380430404851413736170047264927865931012786289536447359312729364769857221160753886321368215465299172175448474721915903774326262747615098998185493573840050421928244261989734344599012699352893848796581992024984177132179463905643276786128631766108635765341261228841786324426772776042037611556036999711843734247085233983316445610612728908867003030884675189900386271498522173675128117142695827308146576357374301893473832138800097338475468555944380317677210737145008406387291745826676394148073055806462092824109132635932735139598216113406214753992777801750184994867437731631941927816167464329129310190573492131908101252298005917764653878672178939506315190769564552746754986983167832798999658911624328890070031252736139555617848868315881066188506583734045947630608473097315632280580479681580963242516746999104267663127207031663749054304142234484435243180128682395284676093558570907986888248076154703519380401748137870160071027965181464919950774479146025339118246493071802831145357905632433491941955459706803416135798818580363133337940680774907643495878435493415692517120864893029552925613673928904288457804099056079973724758860180575745240809703097701811043068860336110447810249280982723516651495567932425255952486833845664785403137882809541805139927490782054143864602575012569911566919395943486953108451919893269752706305290508372699443626428867266161389127266686672779222696517000269832928920840058431890156454678931487152869250788944207989214441697905420795876971982068143689339864485631613829248758342326772210434510962622566186496042689435231665631428461862463087034276380598618524241487387099554282538990570818047940634525942519863513474270882420615729510352386005198280903435894434262447034899962393147205653012161601203686592817171443418651779708832110196409101496823014107911422377334959271552802239295464243984979119622745880952211950895036118980194801155554307612084812330375249129548349444608221222452585438944481377334389613090790108247641889520499467709348222770290933508445885014236288463283279099766927836479514195427872847924174755217225311367410999435524910414626917246994567691687335492535716681620682493841628151052233864696337173002219254497891000323670617000066159876040561039824720844985050657171363481769662127857033898277381599562194036732488912008180773012441263560344012253116616390776570792265135080969892092622433179458552862663106525992407321435866615709027040647479744051587774480617025311434413644467777157878044165922224341617167482404464255278351946137586495209221861647010194172952265276505395086751136844736760984103352443014340406832613643555452031520031688519505793348897320666845119246955078292693080639974274607605669763301125386516032776335098292639289415852862938078221527670311794723432778779971676017158438960590786725143664793037313922306082057772032997768021994633467797639942555223073236932873317176038567644885883521399145996511727870874971923186261653730585433864121259474519991809756517636186994279729073789139495629584909936532165115196052983475402434511989687544178399169291395332450079346650345307278459857996542444294951925034835391109718192350281933609603195885357857086826988903950750346224626470044233018342282439666907087963294690024488667330218321684001205524062747792570972356892498347986503951664248428821922689091507468411899817025437628686375243343631919135102180498342647101536588708506502286881791124140287837316168896040217955639943261978087410060019176785070648470297127624867297037712418618843731020019452673498136963493426758336589908989612349545223506935083085262568109738777203117550603630348505567768999214493950151523518795291583127449716530772355215342085284893622143138961347809890945912034157263724632044831983669747497817432428448697761651091172749837020559135154980840972587880429907042869726798276664733793886628791923171121693637273208506726771012326441401335003083568646494539884471456594760490185168004681539701335487681650224960078266464542020024072060113976299939157135965444889122900163957867595680553198873516177533860746481667859323794060529949308329994283318938366682462717901562403957304820437928863703533113911280484185678613980539315437492424166648135878978934246088140837043595139094963247007267814793987900958253005911078817809561325298416881044824870957187126593325881253553309041610040301077654073881883234387304046211998660330377581736810153004740904986494733285598737919144674473560856552522878756707786483234694544890136913839725821607725013246701712283910495606295503775221894125382933753993524911367570539597396720849697733204844806914019272085972800954063379387690935888776575573033903715880917428285537463092430887084567303643281804429152513224538748728579185066287340683400172717935008603523338134591169150786146081814445277128035767397972992156625918050375767991004591115587892950946800866612190521686286510847724634907332541631645224022705380116181906542254942868454268764771989044320284076347641761547726731743087454665980149555994320959321750662575339439558795638470613968330919301211680508441951432197855008731083100404691451207330237816825945050150510826639678771462021303110767046003122334379728210710437301940725717554455655232632843646785472139877589190474057773982704681824176628953484552934126339499047799391697534043941617447356827980722035160727110136186874698968866045120223734585473834082941929421086598919157541875618170508756727501486912258658743963979475367667217711122155886893116268326275238752345268692712390745892601214473101709751156055567331325597566443024229490945094306290576232782665689388651950179718318284386824653794623969020264042815605705138828037784481057792405145033600003848260382635162125847195487943626929831884688402998063275197713462551056599302793752058808548492009491929323579298769158908241725314731107513008714157538118178956668692896882841153296994746812629137458594534813433004183544188161946250407640252863308147253793244182883725328187335457904542143155861882369290512289694037847459768448561909887515799502475232197962624051447015917914658702880285606552691882934708226442580016789495587674914685194780580830187681976688760290815536069989001489331646061016914731831667659557635393590975851569574872279593123335680085162427720238329822332011934117007749500316288313022162196235532777486332089759272216749169062157600878069275600237836447924904843586088242132941368562061258567592007511335835576316250987874345088826251548395589622573203814729168994293418068919923507043893603529444683729625439195415447630961897207137966069073982749291767098680129559847595628190632583152722351461794974859223556189758236037677070651309585759501031109113144501164689927813063059860841019490224307991015837760265092598337974177852683961313996557762605938537616942536063906086342928082422010063976117671852642628529486394180232121675291110866715468562922607811716387308225933564177884499244080284967574994242375383430217914381753443378067301455559802492829977278193373763257781293887741457400213268880588399108674929210161936165320337120243395839148816203537187409833343542096197410604176653142613435906621505811743598090016985215117962566325078546222552774614057421753827009052960468591624604693844806794867536544950502458933044803421155875285462850084845102229502056400058516774454943467803651347680340431350333904255897915447753867297275166275909598023925411734857473936357036198050881538965391201038911395394300337857841390726127267149937925590982267343415673985447563153035184060997056974664948743259125909684874109821364529074091036727671106826567608186550578590206964404014494350585749406382701114839648508515924172440639671892194117464080857121421640968479299131808424251046028248690717255340659853675081561266755618811947817034014517755424124773861058922566740155134385581453540215825437962701820854130969665234722094914556489334258848378041825238503148334128066425394819007353615176457457345878827586828865278772668668790566764405402908261871229835818564446164136172360622238832583360321529021784388294754517919903765279761871191168464071370365596423324718294134573966258662787243813191868958369952745530481647994354907942588771666701545550109054348237496250506207838507356145077027628280662034886371280368315970409395440649185738895099318522490367923725943813441018907686072032692360634983417742136155188881887584201664140075362749335101501796923690827771589401609324527323038331690196982674040294408893289313586996874203935855379449184465060431283584746108477063994096878960961842535085397274348497804738543934599084802228748209262166756122859299283090191203396926436231819078315621663839187708681643055581120017988923175079863628370776273621665283969669872894146910118270925797712479238146160915458436666268374722768559252887111121150575553786643139778283775730734382236682019977116085286586010149890298546593944902238130054890729075402972848231839985072135045875635259369690884734915392799147773715960145792713835669050924036725468849945148804056348715225566127852759064245428590207290965320843509956208885107616063241487298415618004025950866821655313997495223357085063640908055937324605769011361638106137693164284194465428693720536445209441579653447002986488300141312602884869364112034682726408488912698508466443711630014531028502466295006382907823220137751283144778945681896903322959979412726573282358121249491250027084773940037293209193044116334711641867596749277938541500419107826798106103739500200347376777214532812899591252317552391438453386282528115257032483145545631844045762802083828356588444785296264001932721447420923973634938204622110612214896686873854417390704860741532340699696125749938285625036829792077887800845371368221537928817210542675517248442792252216855700934691636183361429695506673869393595324390690695507387996662823853354939742039468138508230654962099646668582279975014697659429903824160744710123824859591110199072173787192769571520038638252535122206284203577849204719399106027206844121694209351610517360833788852153665520954919537989588183765627928424800030128986271286989111673281458776525037396764947833406431365992481082590234917391016297377976830949416312508144731757886805475996281442453865869585288796886024967440215173559423779631042185328038087092260655536191379157133088384876714117600699968166017059242142203543420059672958701717991077497716548248317650261358150296286980487241567730299138644822065209940343225501518274535421069022418288234221114511758284384671333813221111159993734762989637733237866932400311012834608316836796317890564341238444806009667078590947083490563193406105407078457801015977201142987676623765865790278642171485358505154191277870389366768074235148011572213736290577044886947127578845830180314191300227256681114762189557146188097177717693349850337111683138085369119112444005439402196868780194896599594971473769301299707561047045646961231425834797380626637447341800893173984022568479006991598621369193765042991822006648584856957294056520082350167862890932014693593818580772083373687721429050396000543241160954940719929834638548920762903814757749830351755798184817170756395766506596798087185981631005302570023294713866202177793110269228405808841378931534355152165786348287011272769248701259529772076246380141973025191865970831768220434527036952113772747734500265727379898550279314804401330579080940680291256062953765985717552258621876691660238112806869848245200446144299442532336122236687035022576076751432061900874517540825107659840174504110596345337021780157270704024102768191330368394998414463141052052352435842004152929129020885398676769894307058936631369027337466123756486687742770807202338106089618547879295763482937299995175639137786102364591195604491616285904954771749438304649539659442357972140306918714508034883580708494454436572463660140735863852754754839211030055763231747561433563919275991945370861824315836893488284761663492642463490053292549594627377018104425590078324063213114723547645822400526889309277531968614203558966239513911212871246472260597117833794216381459063696468532434155866112297320520560721509591284057052769373604380650034294655066657419506395169586699892621232379163086238477043808887840696769577400871609355954756429727724415572093534426659670815271729540903819076691896189093772978688153989612463937312025053857011573336636982786105244596446224013049832132043775332410471434913264848505399302393115632464025063224264133670570708015764394040271917728338632786279650667380839305583694121781852705633142387839000020636363096129232053729523714198930670018700065507449073512251353294790612180727450258919252571597378557972066249060184022443697499987587290927544868473590622393488446939990648857016683286910806725812507656530969880628258682159029737973375211085420851984841880443599027150181056692463058793206232858272062924957958481155347281192578203226490658213386975129782033783366514247765814803742444299371279438839369995067191920999200230290923922093055449135148676492474307974208555807265793946991929517546239618182543846153278880601561939667045876569573825841612138711411373540508856255152748571216519318756241165192289283590538275027947796783247013746455353022630991804624061223800803485439018319669706190143501116347380744500941430279729761110483137570266868253629974606799167814510980203956701987720870553768253175347769045125694376451482658492177233392221362507470000433885889125743437172379452737883787280017309094111426391908745217081601989979409542201896826994356734741199992881521051137467058679240457107774612536543923982758109765972908379068081399323353776276333757809275754990508745326153191422891639573021828151414375421954502918053468659690049327364451613369884946936818535663154662342751684793605334842626014221594764762019308848861421240786743944078031856326238326012130539507693036552880575380366022324383956031408535154162745065832643535620518793090114529573706334924684899882094753377759802648095310030230363158750134048574143350100411672857020022459413583884608932078948153943155516994734770518462853596838725310151636220952645164974797150017748287201403315980473447651665126851305982364842176276582535832237073638391832767377030407035407415984498418214650594679029880636051822935219193997483053434420400562115412786383440862116197293718201487064934965680460021334402847152752367276557826575947963792150276457548268638167168345393190153494835920278042202827974882404718880226005408071476350554846713925882129731864280288467710612940869572912611423787313324858832099171457545064035238597866425853064161975423095518305484254166018641625168263919416749071954528289392247897275612404675569682123818481327367718508500949626982675883709559232082546975590192485455292562760620057552418210828323102947644072088392537261450026250669278482661418230339913474060121855644223154895960344545823384524926387296218977565614728305758968047735835308012590539765766667738278811796869358547364349434831325752648574422674776033508665535246681309805549934218101947477360370429665236347456813190980092769494041610388044239750733986719423985808060436783641532535283370789027986430101432985720752564482543911432850571742021878882268193638028775057700516946692718678234866461523279743040807704488105636405349633923681219420730566452046240433382117352386457050854408033922967966760865321410654024785947543132423769323595294160518079574394706783468919391208461017188475877406361268475394155729419839941553988066789527102261962784201828769880784076766223101414319399908417084049523074684623675847603899594135811319080139735938237236042825459343890066819549347767143319846031442957801657659234611551508362343138995950271538129072315242525180429332110602522778966639382130228844777312708551777554690225937079933104807633132864117153990716443718795187518794623804922858166506214223098556646531900669291723731110469606776283446106286191937388998106791842811031172292674442081025473463921124306334858593082572688976986466175422307445544681081636133284509575520933002137934566644080315839478917516820813261311406088526282992822852234091349448137290405496525513447636442644311150819428046994415939754811211446760337648859982705234482868625117599226129840305568407467035021826803073305447497834494741998170631859914907213601414131180899216321462853890612994049919923166937489035822531664861553813784466107639304056022331432808557111774607923427186743140574153642774696063113532265881987980423250664158974894907717736418479480317728289496715641273780085549368592687927268320711827887618791209973923890091511898318984435479970094834555514353345676376313649292378475543239789985386121087054952042491039601108747020859700841405348636486131200381234772573351752882346910193020867735958190565286263535581265371955898665153419083664422771645924167964227766355065860860257567870694197711225917046046331922721878516836563905869526867607634950829840075298492038767631586071518353807859165414193289898451077376603279725872645889716101650541233012847948633153359971880829643987592223268522353833957363937042885058671622601624087307273371890476996545496757961700056245486320553824367321100510084598183161229791196979403571531508648388257905999897493934587856360602012246442965049522172783431711580589034972560463867009342186695096606711100690333032326384072532158324788372952344087502227806617656383733732575280030987928888870097729841448130429534991675009548589066970157748055523202859204433330559479081095406408143838012829885950505081979085898946820880470798685402462230988823805599709580452455532148876527407923908524835730332681817938505982581139588574849081541978061293353247376726952542533848078952020098976901335568858287893732496867118610907676825509676279199325299335157310214019962711819666272651213630658115420069886426822562117668852406433172699799738724383777724835857143602399570135737408881756539954302381588713728521174902754228828961473570397285914004685771449600664921410653180789464963078734611860545843292170092565822350070562358142207782707334625658858064900483201981147890440221422460740488384561571199399431378264476574127148305912165442498318350435924350949683818216375164864283429275194572886869568789536804204479582001542808002612605781162040651871778708665835513839954781688736606895070341149348218728788429397690556919312596802212596320770339693337385264723294039906488668313432494449168597083042972472098176521557486036954423054120219604516428381719033795225034679844442795519381244401371016953597394778373442740765611242614201526533553182859168882504758503298310192616025495248765148466098353033710182081481768470268059695853847770273115452594192879312915655033286175475413805508612985304206032712033584892691092244689505609160444270991639198659647467492323921861930005320203836771312525670295428904086810756602606567948381581688725563953359511957641724005789560584018243814306140561619848471716415695831255610293683039251275169071857940259123234873063576802632757039450099611828144297158481048913301914382927515137456645224275121937928674925088988435485658264742756509522888954070727816726499341569268718337725476485741908758225483324941579062236155683661923847286401280291675047547496758345206481719870248907770558464532143208633476926243952459372499999733720803821131713926874827157060960513912767114186980716620601299025375223633192264260617451697966688926025123898764857219229008228802216196863770540479171172425447703042970047407884005734079512355785208227570776655819458845783064632632444417480450587350805775435106927489925279219482261764915012320349678000188867537827507759814785010905433229838092031109552275754983924425858480076658188418717959356181599852964723309389456373536796208017733534498338038255890539480939091636995632736455780405187699644698902319352471766327599709872412786914576835335058758063075213043455619433468488577688505102575391065039821851327072672293085922711404162563156539332030577337460639923453786949913974838492734070843668332416645261212303452598470978184016481224907957392366471350396333774693309431762673071130689817092482471481935931468156070453641391359426913469526552649958631701648840358009124827120570196881836818133698762998796721093214587455095335536776285340604951126387278770692388982531363103197606317268886612011654888382604511840467122424951263969096529647244479573467204354519758766051824914142160391917656664295848658210061229674288897294501224782410025185350717667084982071313617624202339411821910402214870761417035091710439435858063935279724824365106580794367407332465160045348186665572981829749953309491463935358780071178802497382528033651865082663071814289899107503800912119242512967098223708920686864961411199075209155373648368996600101983841565415802101495940322322079329165826610719238657620056547371057446831173418462612251769103350267860159578246261423772283318439880870612768957132791438999206088288031802758230743992605617767505630398081775694570576661471970907144428855352562702462803432199199479423757574892930895499995104554874248487627364138488074685002493173842063198858223162311421039336629931428743566289945483270521054624068696249197561680666153353879704968283220108713503087442200563306844425742316021460230777211789920770355910127028858111049569682911906977640763939242699685111767175569021933044037041614580305411003803419000906552814974036727780803697240090618453418750242413542402286309664541322961577138443538192258310212767160776263643646403064080552562404407711666244557918497552113202407950316253573917090480098642790936299226731116356723647611505570820400135998078535882021229550317961580542468659188834386435297254964205988376084252853249569679862076455861832849484604037221811066540035939541795199591558921407360248799377300561883392621760025272368765570620684653691819785964783177474188086723639263413174864510428677171241559190611117602576045855120612732571344476155929151066239786236072063744497209807750053602984488878987504172141963498471249350272347202677848692082604319187430549259969341530279929316608355075700883781269818839403098367738391008629678581522799276824288478767187976780147126948019905249530136033438775404997523712375915222049529278672994986061891264711868594283201204044950423779023335258170270788411355621658891404722786132113025458494634339127347307560203076900073713095583612475909663567572562172011980844440419535988615926184913352242221169573617843015146966116087874091062046730375638629063057023605551723082277039223083274613544386040177563314008083459752684866864812206109149180220639188976755184137945995619031362735676784574766764497597672087980467026449392174299393031482697582516897521437311679628371409666254482660575186022330465729396928996238892582991119222184791839956578936031392849154290013983574315759826232387853383835591182959015635037937281101756575086182390887749680658339400349444221050070813994093976131105734252733500813374059719215033715809728571158041173988301986579768515275964335584994770341448546082636822849581276625581922423171099811946096872000288422452519149936022649237682249757383215467711546064935119882943964244918303384069855857062084347435116279606053283967441570922052581122729570133858253730586417872244598730563841460578479047753604943143428634570792707698594764407924365066429817949110834628157711281312808193525375663039498941800329895495258306028930459661141490078274472191941750048215638697868043322453732362859051512594063018180311182502524051530400032612917922761885407783185077942191144522311331959436771447480309894204303288989386147228455102299048089803766798142521250099783464823782610113557516544936493354661114361096842069617361347862594079973988488006258745183658231485903958664534415160508049225782541493414497370477465979576017592913279889131892466365315073169855775086716963220101526432574811317647583231788589340061008165633337663510966714477040798402240094160225441889749486752305294306783491916738881262518467256393286942851574697985085324155296208477135963040194499240987662886450453420851975583943611288388430942351341515773574666324607484733928677714590220516999573015034612812852696512619481503028774887802836231365726901317858550075241412080075602759305544388700399065941363738239875537440785511257374132795701950378776561325674807449210411807135885176764488929401939196762684739702836905151089033967403280993490970111137652678963285985419545989366611696215196534329488440598031115066345583068732254137157463617764012575079394766316016480184178345897510322038804045539096096856470242832390047929750711734520285955697435573021337222345679487270453082279268191376994646948327579233023088364429601510279177610088225503710501631589406634763604440849944111195128626429859897652093202583810039946724969685319330155841080898743405769025741388234105324874480805231008308018693924770936988125180692847833932420814207820121899954542546361595027694269693196502577785917465845401784942360540664017973003007155924828441212607067643255388994837574756648122380946753034487244513374014086061643550931256198063342335483603044228940360945219257397936088797422303212753213885003026956495230339613643727154187782827144318256199411457899374430916890087243118804996808224432274132920964678048401053140564373491153657427993839870754328279454342004388314110754280919240654572774395511303797476089390202919496929008079639279602858706402449464080315709174013847687573164197617091942072051849206496180443856926187723897289902804524139161650581088598038082261046568124886258602044159683792596081411361238270215615270685352612231979453959312617438368831659316925270652558772716396451726849764966295898973235656506828466791758344570335907740904997193311759036432858889371967795819638295107210337703095615886389810492325613076547235712862775211364500401160200292244480583190614925663933763333342644310904723275796005565273070013137984695789227319113899815895416049460766605948299406567028618859118949335037692297919183471874063444407663634641072180597166204642521203460714948724719498085832449627000923697301698710843838811507516091765708591319792031524098062062604863370870257479913543281542179084866383711958762222577876634827660960662210752125119092812177828137792246612662198585132894462203351567117913675284541040915718939090959074303074387703947269396364833496027173780635112074876259365785532969075463488309596239200836445065210260099000456660206402593081715830430957582542380749074787549254014373341071037913087206403383495087079753997126443110586247076914152045384625577467961586440506045577163315106902751315062325055031964383239705070296177167148196463966502681302308535487365136808484615025708816729717697077306161955860007830423193031307042254336318848908052504132011379671864220761854479426441500743335831802622740506198040705826951718779686891559266436087815956773457048934537817748445832000939796899415737167570879951353389585268177093158651828123853231268038944208518871764195765271239720571055249505340865920612665509390161295847855422935925735572392549199808931373911698365365012378818083325106250146876912029258038236793176558890053186426718424117440889908286793742324631141569387014440632703056930430169170362074692560824709894347711007355148601331861852052679151476143401438030833163535601767373304194676087794237332810672663614108554350755116672021489996097753993574788762111354045928966718788943047943242153575426432495382748263349548900358006952688370846793647327955316667260138068358119229382357088284018602630398795091314561955899355331925929750285337686730946608862335671363961271088085725260030568206905023801003268383295325088141003598604883245231325620075020349966474222087989265531384924450804404701423608987641571405923298122473867995234696184462750265232279681535708278450749331960416674118383903133792483653047656694837257320999616504627761896436333076946938999301867610140521562683243011136309323604494433188434994309867888825242707131702705249821291356903094664300037005275771174717311694314633195560529999693871964799352253017470714233990504304395217221291125722294922760847273857307922714820228331617160158059810275431804968601429285784522505503751052870603667100928904242574680000727103069306532491260413781614440740164455089629446954735913801431138766054605359046564321268175199583107426907059813260151311713250100387117469057393460321074728643529909131455242356439704083187583092140014020620023781969163886413484758998200159479814497992086962129672164537311242967971288265618149462657909091171963101660801806643630764295213194537800569474870902362657322559991801120008414029123852153775977021110521204252788419549090110504383821916937510939242802427440471231674932590342525655644311490843100368614299167232966645771155424605036230921737471380158146632009945374824308898762141044357828393724595224183250712537977689155015533671492725140071736394367248912035300870156808757065525343206549847408256451489834033207329035473229523723663678312825810297509093452293633401455777894292265320902910924969839975504269288760936114349319182979145142259061291861789373972277649240860535805643940695764841699866126779240456161998220131025839128389774905732838193539867733400601942128882717184915936574579031026076029628358773071190024807734835839360156941473823707860361324834317835980403886412141384131966990161427780148687805029510417787002283822337948644281988162181222550944969334776301282411299534365332032644568387011629120173272382811317181376679283628941903824102886424413235177533457695162212452865313296057596603941081997302195227876949199135547797686447151138854984917794166539093823141759805275629947711874870586361139744139971045557768947075700830871649820668436704586988776882987083402446756785565406664088998774524421397148603444636521265634205496296324242480596950005743886561692471776297570777685306713804688881974085137056844180606465452397066375113924347668342150248660784778493147208443975811398399376461709880139110781330060998054355391303954421060434705165481839131130578826504859702875225278580130384017037544499248055052727425640922015001690563165044588165187711992605896921430872637999029410496957516207845011294797464911657747415770517800161280148972462598393978054231946617029455223789828321916063824123490369658081508583968491843835397604189189757963809153219789816105440458252020472936457146141977171295571573565339847140438728089478889262561528753668632978216633145261860700933356167356143672481951048118156137553150068273092589724205835752524519882839185804161543085472900422637495484048912759964143092385815557675502152320682114316116693315479797992078320596961063542936508357795224899548499228974850666242474830531111173870358332837652327924800092297646199192815376750494411312280667304702198464089216919937693729077307685795028532374626407726042314590185311558895195951586676991812152761347243376620093657095133434397748161373338929229394234992017393435551645866768935376539662139281536542571172844803441074519280128645000681896353440777654851744766457452737497060161400938551557141251366613945759900973399665485784050582842382821876161574941853128198210297841108579041603817803530793622151832224160420255400895857319632912938207038120998803568961843668714002556982393501366164641162998721576887248634175899819896463593998479084825707318893415549594388671109624662748083038701956267799452260841960409381049946105887814505930012521764793315225869019284285719556706751513922928899393478099464679376019394226133557130472438878054994814891830706790211550347916967942013557621298168781100008136634126327904666865059278543130392163260205611405500850081096767826129613131777459458328336478828360450602386647344999086598463217542264629336277311934989061515383422504503718977687317744513574844035471256326249228079738172000729713801484622365312719630423075447484765454117971651646010512750204572191339745197155521635315476231469788037008498717196275554894214579151915358739201345378211087114834219881340886825713281051795184970963027116016834593361522796946853083045050687531084422134356470672623073378765779719597659972185344452167394789679123557872915722478550407035373825211107820914229284364870742400886911670566006430740395343015435227493972750006983459543536245150666887438935511052430150085678038611906902361994248613053782490843665869804034080085945185053773921197610321710152995705825201430655036708589179395600637900554021232222751931291827909059098232131003699887052553748031493083740062823502577684975693297508564268056979882168869661963312412496340864252706961427895551043671014679804610113155096135673083249559849088374274571728866076375588232716901404346345903674068029578247282554956916022137161944124356060832642698210614716512153647211576596693251773198012899959745516563668403732893306584981522097138902568358702653243143620900902177757161933840987362328676191522295764144784982252017238804787925655735378825166151526113718503358978315145588303110518956523800513076534537104641364319876889482410601048173151860494614221302559888556164699977520509890336441427093265526976893773638729042690706889983249311296444008126425572064831587181970561744903141987450776168676442933074580298407526288042620446895484905439175077926459520210386175006108528659001098553895127657122372638708650025383793340268618684103956659484048999850736198375981098842383165197749323079545444087609970003949417004985588911759130829707685628992523333706859904483252128491312334383800895618932958206185701765062571492749697760875209880097314672993467115629275875456217458568092074467734113498286926995159844959788454778104657946796458794258224167685139810694945448497216790269090753810169738859992241792225650279686370548765370480011036661367240140497520831244237867780299176541391228305208915044916595339801077068970053370174525877727815580806507548541453672833400551207385257323570466008590687356758756685178470502063266481668001264301637762404207584334699201726580038386601063089481895384805486811133609745739481373724964726920546195433328428524942558330629970827131788782291073218420268439978226536115433007321941243937263500699504835188549799339436974827094436695802358481217068477232664350452666532037817016447418817616954150416425602027480567834538795356703262149124446703909509397584097427679996467636200465262801577961896227076832649856853847656619331835827066899960539907269845212537258940355458343877124407312582421350727859318075693195740601068213816055089241545088862864764888135019881283650786981546325743560014916441650215162329355626205996881690400872894172488105071308633160522940321615328907441779218168029999730119224980682417829702553698444328764592296168983699326376218522247667882213273657559960462397056387097731701097848672336159519828530235692128684939781202843852630660003002087200705622484237234893178425495661913131283634408824422781451599216192079983366403517972240489538101407416258470039728451656001352141005343656366596941160740687531957151124655627405785846301679238100547284573301322011120412649582324591963712656900494843732518294244942212920537225514735713049330804426633020104065337566305550749438838304475633452623335616848047711357638698785926115160872979384184470106030605649277494497448461278236489262171550822760122172138451982547854752797887784447060190024469292677278654376736790350515910135380082909121716196614800547521354286043239559720650688941890310434158354594006149649916354642630471754827833999788711064964453228915859112111735519845747012729432896236938799757135426497292394741894397387227026469774572448317200504695478277611074091259610406193741530775500944799746049279381408916896709707975052635148228025144991185122187061095671315493747419880940971601172559304021352434763069710863965968507420153914993779987763553095184567400177316743385628593443933938547757748289988842652474975838480645088537826457923360254998754890930035268268702653209031011555822600026329236323165981848127106255167618785038872780342360971045944933619102265556244156849331304086580513024513294368300827761038428915940030383993348985929211033095002124417004908789698015147088864227839852702855436279544225840449112207830713684861881560536237773345792735868926837886410328207145054097969657583019926870287366356023605617756360225068494194359737355214106902408282154460275367971899583143636592468483761116926648924727632201130459636655338586571950971747440007400648305597343910302206398010864129628637662796287554043093126730805425484977161187468985503026683756094825674184468903976723245659804441027170849717740975079926647236255768649753747905621087853988226541414548486414450776196400839657712014828417911698685538739827461274072336317491236008563205200501568675767117476897225623039878836148829282680914317606078097966521578515785134842656751524054492265876367062410994523277160663659859530985997723092362441602492253060713347998177933781148995963967500773552968196079753158819476539689479939868980030768750597487279556826584944997102607382756069185727778734810360476331679240953767691188756381941978599771864129167337922003774493324565704172561721741735630231587447046219060520505070194099081299653511930437519131577543132274380850469062634247406881231399254152224160873900706329890601016552715790523260634024638357917368091239654281361851247208912315641966902657845607257385705450896504241138202150849075843836362841851143456324733093268392562252682666592684188659339378067780726267638322544788536233013834672525645123225814272320191835678413807351995366497759283677644285076897417142846847736347847939673380180040165723553322150681561221747594538655463365621865258496940681488033328369391497908317358652093656687501457846722704345667773261924444356181899395255177813753907309387054438163668064691466425304717215394524092768483522892894733641712264833357662148167251589673070045600056637493331265051615552205557104231860699774884620882755306408884971533150247155618784354688264421735752515562116220240375854175793534768177646764338570907141050393934395174557204506057942358682953374996524260283110991924915135817536872671299642009213128373198848719072987168205226789226719406574644953186732588399783880831053676659829816151146083081654094804682292642939960041675559891748430029833391105433339645496673793705478324991277045475659725629119285127316448222945921937407905929353178498274874670047696305952130505073175403681078302516396423962517960374589928809154985896587383766631203634814829723701082908890757722225433792073334774904319298563232172669199774486167712972009591823832908654634391529477699860082863092610810083137850466736846280220023998654237792160681770695499582523438202150980384051879905692094478775192632384142360589832561089121731364390780386454441742326879797401517231384422685674422601064369494327545519193873658263203520844256430489387443872079136544819488335714657910398762392520741330497292959461145493420145189780225118575880793949744348888057407362731418822457549198292160145548757113196548532656702113111657957521707135237593436582715650717136963712433311257955230438975996515194394183599260698471760887016181654940532492253807139773809599864859959767840398437800043268774576050776426662390069684996632686576806201654347130309476387216161702143520977708908528459620231224706737498288549523289754673835490122597444414884002357286893719396561631457013659679714486810004267858215577994314357541946047219108016131554929058402924168130730754956881798024643935462525875387539191199473960946222793263995386065790636345448635347490361829425712396537739374882731877457794821788461620965243002751923678440540080420377127983920967894903501438830703820827328119176400327441178530203955758848207627828025567571268416485201007611572004595446554036257174616587914707210596599350390487350689957224146668151376761165356748519709300324826125667036003224021452144465962698555406193677878052279093714919330000064650187074802512635879089215898071556534507739066198019647409369827398062047556798026854152965660688183428027400840381558852781823294856795691369072948076433578399515193373328437992165439087059687602433519265456965273817808503600267636658308555161444957130843102974015706187751872407169586250597799699937335626470207895555286639570949196546066518360436146890835481547524583801681326476983984446959031552648525773167887895261194323640477771422425257160405421497258909462470500468621619475356783311631626513298607837721516888984147091076814448024025217836736054733722655258168417656170965503068722180636454167749842319040111017082191608007656244820556091466167104790644784378549868378220252479218623031985953843842892134856019840672794247694186828753059716066014121026608853657843004902927086878990900377449964741996942025368103015380110995931547624241928504706811732816328554992098670578989102857737865959359458225454195710198348590431456002253653903363343345075786519291459035832519595400040866069815942659884670205197794247769931353470434133920133391698213104386919380606124866273047824299755979453241847801701183592905045449736780973919007555094583012827634567641435940767085500929699400266905355360537156132820901773733667634607792919102799600789113857761018380138062007626183958345190492865772569926975095314696618968631909394081155519764625033249266556843138700779669534637379513219081708752427020863485030648866612446838514683292256335760039518196244983687177372181222222594167469202980591831371665668182722011469599270275074999372529698697915399258173742902893343507796808234189142018017757731838713201129383516091390285818841552017925591387855192564912031315672332770283298246263618020205165276055409483573727301294337171747259866019102301946554496273099449026731045753346769559252048816003264974002074001911833017076615816442759726927219917163765543344508831330220638226482233075236183536902346440496200578269292867671046949040446889012146636094471900113843810634519596855254467494948924451987232815136174022669904233595166940135249360124949027015157813055261442875887078927070346900681511557588176504216795821230991883038704904762225922470737629283479994662209291568169554973351337748270319040072691086465692069310909069739472452833213174026752119232850551378761365888694343862134321103672148601482325069831928151282265598626508033070430286133743630984932717860286873127722931098844014685543453020505813832593185141749228019760409446966775637035295906900062970108655662692494855671648399994900212326623286555166632865932324002711027537239717434328703929113628215515150454622749796703505280609696344615594248068463601258787212602323522765312181274131847173868928969184223848626496489258253587645482735044841614288613181515746563072128172720937196202017792780258148710615074947374200891495099756942090957448818740958267145525355950167732025992950953338266671823329282748180227605489937741079596437512088491111061982173819148357014367382905114584583693297039192826976845079747964776588130366964446893923735086412121509641679026994016178412074239829906312699112806775245186225026989065698504250739843084517188200094289374743863170125528382336802810809435376074916516086496814291272501959595561686118256119214174012973513992931764152642403886897588060723847176209018294772901102912546998659414040922902651657247865770560398944766747551853121900723035163589846300241680225733445167099591398079096063150985440604058985676271534815942592753445627466220844296639706880930922585411322619092180735205587511983205407424421240735167065370996629956313388188980602395275261095767618015561673062824452113704565906943623814675353247391486809120220971331316514617955764773692657217246780959969044229700066376206196313980706522520710312217251243878776793302876453759798530857048984655519708563851990721373318322541244774932895271304051785322848510813075156832725374050455752722936690412810809319623843435023708907891549854348576874639045053456548187144776808019901733036174345251278979469464770935173497189665745520422296404298441768615104008651607704342774091496040186008449662649551431558110486891541806718213281306026449952097955734722667268539785595892041981168808549733064358970494355684964225183421379454218873426228250987686021292196529278817166092829303386181505895852005629336667442095716449509473319969406003086806778880209769847657946425980371863940852417965165199518363791668764392905557085986537081185810356286695944997407872749715492407751022703850263111361323791024393035201243536509690301937538564101327239050447383801070167485101059299310448600741154379984310061245995590359113147841121419398299343446643568533850648157240023961785071353099665541537459041294808595456969341009997561445436958171005012851132954399876375708429573128736715584080571715971474816903172857026422478010899736786741105800357923871692554019626393166053730132344927404728321222867517261046189489958922106583647865255623096594814278503629347306489632363740584349074539582765430243068477653120184928483347699765584892321645402021032954901480427071928431553803749729623350577038695933362795291222512960491623800298252301511912671281080676683772183966944698435042204282108135461587101196208172408661666796110859335427588271633437184955830026635119088550621186783327109183312383696423605636141331973662491303070937476663565778028064286838955117137773221553609380429605162448168784460607182361578794751374502810603457112711075180417766575254145803652456952393880288643589332477343919604460211563300605067513994818837356181701378190975415402497813375733968932607000444966848994741648725493731468181644091904762081415133876143385758046508178081605596186310861276989003984619939814563458051586617499380327352394418496147264992916348794641337308664859989576176619394035646837319834099408074897596389997783310123581454413168411349293461027022140428475690484798039279186677398251549416811218680880416113360039736947009492080456903120280125579236055691081082954585393513029128552835897924552341479034809520932036745695518396989839061084243444997422683135653931986374315655863269364097737855773387143052522388258217536806818630160098898916146178753826978411484982845598016502178345726282597562494744359020979497529035682172709312968988842984276753730105329505274320058178897176366425089294674537756747900668902918289711209947783756466785520638089093848551571083559206303152172442100417163840769397634276432878164929953838296602288175714647727032562668443020184671628258666123176424954619458129530380008028104705972662701655085407729453932633131631391402061731189106964154183111712602273443073048006443733642954551743433457275518893576943616850807579390467945784869552577933738518357728255782104374129317444790472961999824423546248105066412723920652097825555623578671925469145854913499565047669547222525469401257717834860273385960395653124281697665422571369853604064951519346040659962772577665049744825289319816823879794674409134140865639337610870895005378408842668803854836082310161609154913936753972500686940601595342039089701826627821221165791952498060559123359576676744510188280585026282530710118353116426089687970956419588895300445575606397356051304597769902398287376211811863866724451332382831410627405595064097852381173225880939284536355328218281490427159043705162570878870762533873898532113268231051545486461737857767652440515530074364670407321994909364157926497746078660209913676214836211872425114504436327179054157298261560875235567402544016053875258637302209142640825085932425451211072583338713286001149547623994573545741107606033016219400506934548561379916529910089263066038854004731122212489028360393702011729292805299332021536284754254287630490088120220269840429529421123261607226357564730219187949716500357347325548071853700844673690350557968826793069182532219881474478203971082945554806832928003548761359322531319720433163521391044233571706521396214814642694718513950216751534862807577921017345300538056617272152379412924841588945949701909526294395370801409501194808859919962393952338584167314190450178353332561531696003581405214200532065015266743061250316146966052403011079963405143685401753286939223272177218175557587543289663305502731194200985833954289306812658202077520619188892831344469870116446184272654723951308903355788484060052810044672970000456870822207353621881051805176422836148614798000298333666469716163423381495774419128759201916931980125736063802897269579450728752520585550797179762668538782198461642457364368982257308701832869425690453286707986294761913930680849518087240504052408232645508605160847973274860763930348808831455328975233011986439674783725615474203776601851513178058313736264963122062185222599652892141882026875950863908964042213459447342469303777537592440128958692399919413642307224817647718278611356605776019525870951876923913270557020545581833711755222440595208759107138380814257634225591799774536008009638143144489325876626609373960575958567078065309431095103427009276881328103095506775471804892571071876495151942343710313380029165544561073128809001580997250510776405332469938553676136529051264187407835920558190656753139688558282840938609230099564742860041096686892477452146635205592354277227926529035648153628608135540807261326725038003650250984812938936199458655630502073307472685870674551869532068088880030903262639368709144361422556109412889035853295488572180487515792573319157300781785002322235663169661423262445960796267979939860744723131313147272732550332161469592221570668498638069283273083503476398928444076660572360216330968029987803985445551431024329015081600687945431334530685027582569596810732233025987196469352844513889811995876593462345313275762738020945794881822063666434757418307427962756768497066355125011262639639150796064957507686187339646883863268640628236405272674752056721581957516195438877274470606700158797605078651477816806493153190003059765065908803400774588788801671149006947691386537804116488836358320506266501582236376098392380523918831378511062682046215219499547650223695872561120866184934009160346173400773973088985502456716617634370896696824769663751876233059875668108765032037062236724063608771982541544382856824286069499607905489728318513216522809372575065341665220479363756470119672623942676765009645768801496733096039798392184246473215862693742368698431233337585893450464199988105028562166710068568332185874466014169569935404796184447464567364342231205320405452542263489743969815124622563864792909169793599825301370495434593698215599272391074925139230924302398978263945320518320954013663812710770026900976030040918190192600055309624817016955066176743874180298091289264673923976621945516248270438463455863114634365078540255961590209282384805652453285172445511653315601706843016365783914751471928694128141138047079358787268232348678897730898168835031008240391049002362250196964303029408249766688758750284799153498529256892735701558980938038519438101834469683417982511436034692376743598426475754610049390540919043450863960911999072851846525315513016993771524972438059277480981277242247148369788589353471345009720068595508433316276382087740481106846492959867674266403406003643747438107853712879201995740184360484070195949181598627234836514701675593745826224022870151397716943123917928447425895352535518922025590088238711206306077461611825819482988515987637077073685209720337798124399029539469767612690426645093152640665087664276466596426802652220577327396313681006865809178417990812769307915111528641425409988342723119838734894354170573710739381361041980575656107698733860260312304803275355167903161485237825414749697010840349888158049252733150686218674937642860544281557385643020849417488286950565096055128971490090300672253266592691178480829524942424664727558565583099848343146026148984025360221578268229256661104745501249506918609843393713122042122998103798997302271088987635802228492399583151536554842178428348359426172210201238357900908510922409447211071853171314524604329943919132751511791523821742947678380692513553768455969695051912068642254449382208080017590253041649786543795249921903008200302700937291731045658559451031105022734636762649461811455944573786710977594788051582925321034350738759075742008166983844722588252760439891597896936158718912024747553752590570645892328841162230664165322099732841021167815978047815936475577227229303877765048521063851443395252732295265718836661290779178563635225372240834401232671369680158420340339823720923190185986321646338184112332112744899366656135358367438088690287950831055594186794740960168314036981278284071262720360855121962113973164040798296085389291232558324033857882043176293540464279655875964304632593141932616244275944043145599778656934059366706464294433530883551056217857989892379161715358312512704578979307183505856108966278801581839563572916796884142355931299185282909475329463703597789698720633671982065039680670155881044865768330212150420775531194462075407805024148797559304473559979758869203424036595270578594644698826865172857161566398907057810184430670487566509072972943933813697065317678140865588429286508947594050033865654723745129048448647195258426737297123227519163463613741680681593105818703367458438319549340848022388581609801113299417591082244931457295413638739242569486998647299543923580417530656275845414115033441959272424985233946737262134086541173472953012563564295090955489352268125925187775729441424400945358698205393591060821367255771380136721293056147858645101182456248534384903011579092743673389595736482263500766381419113863622543707594412796086170293693949326229686569772768626502909432759799610085598324197419621725544704551022235611363377035968851955087817680972198719664630440377756333240198547061710136223413680245414177297225477144617707001070977217291381094970982107927824556002188671875868491126866937763543896088215571241805674471481765293347962330143528128483943279896933683994532327853669668502371326266505046855209079462925869871178765243681219334319290364545635621585181828697090903844640756722289879653325857111345207848170978298877883138380723910544027461078545169112468027937800791531051055085531669329332511484375465765881924808503690229624912956476788747977102819351834983261935407918642485303711292454966294554491841045360211213277311136014456894952537188818252711489263714672319394007074400475985092960425671269034372511084890396648111442592260422744125457670982597653872726496112431472145458502867187468715977691468560436210536740533526859449372309010052252073491861782630351832745086922648939083554784458096060297197146143003891589064053618831878229395911801214959773427729901313410890918915973645576023969305452441402760330955718852856578974243065013705765405619221687400972442771257015321219828588896395720413590173780159934405275622495739861288645869294439063113238824678660079593406453814730120700571023462664501846021332402260302801953047336939175903286998098000057305009085810288612590917838249355344475300162954092290006483993814045786153082087144110544032365877681022337143607085802602661390441995818951773721983226936604483017899669719573928004261406900100684011007882013695653146857933031763949265071964352155887819338373100100374620418357801383514773476828523073188291455693095178604829912383017053883975028858485677293738006521001378946111944246357865963533433318394770489180992044952970740269262685060831068221328158435368937437080700777355353383300070739999380936846926479967735329100989849669709660548092608673724939175418853824341641071205327716322191613388881123608047339329265113161670716141832079317109865491434711816558590130024479629752716797087408488891900729585050246747200132273110409000954291808306164651809955933417385363932003068834722268115355234306356259077507511296222031148406104162838137262715933581132831467758183280662960708640118435046501270194471141144650486184506671129318422878069688057636787942749079353114012465808703590516519717531111356404016584036134617015768719637529152608450145293424170059263678760622492180416359081971038194014729320025295200939845381546107648256179306387526427881564134854669961509554371358644888835051983391879082107218150875952192194690975948635223408633027176467959898203789214761263874537771359846499628135896385375737187200668718035935147949367163164246574754053323188604484595157865272959887332283724902908856990448642950822731671697260167044770561358716977665477006788814662642992275945637887441438440166078638030662545472197443335236920242417563173193909923200952570490907275373376256330173912473087273997149454824631166522648866599893809869870449772986170483144893566849425642123998888922938082945971579604068146763025365326293241286962473470161190524764250185608508688032466173877405238716129511476343442334525093967424157005902932920476584874437701943776183463948373245553128982653375252380047882880333068943045996977975182324890060970195640435645980574869728529989587328917131330444084586545181489094211967277166307070257583831996664649135496562289067454371833821542161182170308940718570363636288838528709849085024504363965472870287888920431439038189618805911803889559568825095005461941624279785176323459332560121206775087276914736673298161686022355071813452871392799717930134271518279125200757486281856613121013815451722840775445601298817435686074492433346061902160748745330832204778944623573998204787995025384628233553256257680415185851140843937099213858209713801486747313341233718907071938966738096960157799499872489560002650510885166344887982741072657310169745441533529836966195091930719471315925640200716937058855135472969234472566004417677798117023885652609594024102534755151258184010804579947106270203771949534411550813575294155752749830592654177038122843525602412881825121338092755428114236685802855238277219730820282590720141710661362361530976679570247048979634649033164570769255545392913964331352429926869528706423801788112927153173244708645530936490907757262010602246104278589570263983986520804222605262548234734214750118332914537204956127145347493012782723303151662966512484838329209730304247820570043368254811914299434756344883953286185078409716155481374273987042000572374364164722818941723065632656529740093400359105846195989902146594488152179584583074291113065087021695323723687360211400061134676850601320049217033208301617880358175459035396238264067960507672596717437867243364854060202937105920093012798703814612040769194983026936445118785897005225464002776751345921030008611144573559297368259442250789769674835276306533542414024531506000500723565474103596484927593791826551235237188053600418815622337817996028243330544601496729127045205130021361498990754780439756437540167255889527729448892774651806155782927768782632020761375368705429714879351849532829204650407870663031241356854819373690870747530548283375993914495192410727746749702546554880163714157404085555152435534354114419258358202748457691358276155899700777626681273752989562277660110105600238255671631286756315084727713047575794560144849163894174204785977949053562533742168205871025682026323036163203890425697973679512431650432349315855733612529613925551423321762342484731893536588894700043921414723246511267166201533418356714165274500419117937026560743271534670158986711630744758412951352145762722324712237189211076549013256956218433582940217539036504501669122483751087738931286602043753038586017478650665421719508527053490213441245756019192211443634217495411523859581025202833632761061598608794076316104600844498637056816970111407475925148626887959309961118675805772395450990497007649712324888227015998951611992922977964308791304437176901164358011768334279824804210709300333332542207595821503952861977996502517647667820983515015949622474875970124472349879727249159604220319879784312867484477852411588841086964484990862252345186812687940900167030587817294646515350359533618478582486903553658161335811624005891732868131193983626019588464428907471197924886678598983107221218720040857257199864004479114180154777297555111210510583525196811157104404382134910350938831841247929480700585853675867777859465378403231464045583724664804340919527948582971057365294295349368580626925334886247586072194597716897489927220764789033120970644994824615298353443435064205685808973259715589661861050871703100715849183549477102670730204712756999133028952292952916038048650808577231250930312370493245726195024635627661342951975701210540654694700885722319636307421542632452340352726561036623068424159491874586306203817722602140140090791306245134446684530882048692348140828739781483629416416908144358004326891232901680672343027378665523616574719555313915254925158264074921223160019265846303677271404268924299245850423073775853734911321941562489654601204749764102341968281891576271733286990301874047393385651635731476082678785458520256942820023065931813936096171891295801881879329450670071683423772868608715366128109265331750106775187844784385548151663832951500614725601525088096138614271643929794010960255010758502324789312081405968378563659466117264444455731480070906818649067357815324318026480090810098197865942463222899359039229094671238754793414781573477860320814430045834537133415336144752336491221978490615738960080365523741066594225660063075734520337857883487309381233684452280471481640325601060716760018773121933109633661071659219872026863292836739222027769112156345174150006386246838236415975949113769734845021179759052057002689070262146936329270684069014323306519469346043476850774199632018693940078807081021815232185526472799903308156184548690947907785565815763912683813399858973449019974963005483141650291486890723664353890138840942655723534037348703893918320032320183159022645089739778988229883710415139032432131641497910389558535055981477024051899136798007470603491012464791929245790684380589031572014042155216732614267249643742933728283122439463312604036831855752142950539016008735885794549055141238243747482776729130625642481906934526168757143774628677243610368733801647085256890542245034026666804364090294018547434053780771462327016184180998513480238676279759867909618625998322775117139565346070651510517595734685353352678021392607541929047075559833165286591331138961362791229208142508854230755402568475157923132924656068420556824287957454481186566448399229465699054577839849672408949141286755483842359628859675161036801456288450881032336620213702113056113919581553600072550204833888709457864354028943624111668565271027231997087529374487533467263078205422234953559607927594963358345466595284095676223936082345646597291676534626707511107225475235752887442195217587338734081695674488711101525942734341487620477006444628569447323088347837718066258388916197698538703193989384755038023680819374202274549052292503195747498927232040656013296131952694986624496402169860200111877725799013485111704623929988816558163556430867561828723239403233576646128506970732623295603399764868402510874066908600310604890062847337749085223645851559413636456707102304324469501208782335937943164769204932801209893530952506809625626763625719027567607091969516447231031848591652510338004532851643542134261382832284990683158484633034387797136004650728427020688331228858372309097422173112955133858051193170112128691356657961156676540423794965769183525636269350219638238677231276509984985555811866929615899949517188752184210500450287323801746024279434050376316377073812225935320396729427900671183147544279665463502115489959875018404022753468004175230005247144726153060450723127034062770902335049602574782730145685284791965296698303133651676505427561946981645788889322286042597248142149983686225138565043937060690658698946849974056987648783547150653302460444740235179268004413607867084312945810306067072069167633965415948416597047671821509718790186469806568508027206337949250168868628806515775769221779942090486434002263700858265980924473679985302625570042143753213267301219319352561557974144706937865515408549194506387227990674078449087085804715789265124076895280177227820367603767223799234707739331600963995705476155023418603930954521227389876127673411480286560364225420461814665048334950582313119225303744995614366118624001615261245164523575147122784258383426651788900100386112184791915876578832502990113977965945337925260673464631955847926808228157762781827114329487560633775233703499163309790891182900340109270391328238778496498085378314608752501598258948646209217354928032289452081202037597596979128656573890868562177986570718970091032086448259029282511867785424442463147778416442937064466879391270460891667720785058155803884749817009896835534654322433854723858327025976943065952712390312449850392610670984946394298450750782354116705294949973242198406648486176099976890805166149094128055660698073812572752648905974816686048991146756422871415568868921527230846461516378231183723585089224711746207330381606190615279403616697377500392747970304875493442837329192438417936406185506772023812482379214929829417600855762788166049085524035636297811958611490525856862078199539554760787399013613160933804635365766861983205028478105159180152120370394373025186421498892711433750819298425308092748592153109280867312237685439928489412658145863125827724935953790335756692777186995800550818533526862079237812452590874200739652375247238777165152076222798963299337657459313065499454381184162687915417642589189587342483519552469385107588040008698291683305277256319784077322928585651196714875671979292005860608981742244371245571455256779161560304534777484325177939051652602567327742682176277923866738091392171582921602338408444731841507305328124052284518306929011582515574766532983982813319513546527843754786370160222350821082529101805661855423656969060566585674332058603803053662002657141350917991752822346854337309701256220427771690820967535346690761613910208876860356423456313369231426311550357745360469378470301190937910919973174735959929037352361262873897844709021322005564388800560390118141954700805341375358553522133188580885431213343539591672367757252792582053179013557251055127128637028747583456288261854038739345309641060418753297446690519188171574611953441950369458221405641531572241161104529606968282408999644465874967137927070078781341124936506096305859419646415513730351973736363194308235561977458494656113413178399468490867712127227990343917741613241628268465314613513857125834294829715884895478147164973011558820322863801526562871994501616633712681900992846549775114612363211913407631831272138551900822288097273550707456984616530873686193302458047770502114205359444506897636120459131245012661535763951081919199703135456928188938761767651935251935674738370947558217932685819762711182984498596914465276291688253723495240645550173642873617594208884253687524173711857124873679679874586684566011047230157515211432496955275043132381584022134360112292983065060234440531653390435130767152356185719791442092313740797399599301592444259231397307012946015088584934257456866798106671014022099897154713223292736992927524099006895569778632931237785839135002817791331217236608843986705069568912402469861778583884439240531352669157564020740764619563392961405283145440022757189711094601797949571933024702560914241871975372992154936902470588853124690952614625759313536294155706755417387131916413052007718317773276031606280362681274470932174511697051967375584165213623065028670324523164668774367740415112846794751751571120138477783262482319334734939125925308494137057124793842819632723925217652091350272787475779590735948104786941707883594339232294089880336850870526732900074395698472577760426452463654545067157323298244208930141685415292235043450622878267384895597661116180724077110052998637389263433291818252843616236147029617505949246115234210609165389649463092085449870815614520408395152407712618883972539866980156375085021824183476273820284159572944682468876788520067636314323986673548708752933664099227856632888339430223706628494252081976529063672097761922768182926090409334099848885734820626963507275311237428631192925642757726696337651773519351554936697752526355686590922743743531594435540586281836436852341331344612336451733451618065034731505032345314231838397335168596871292069868090939226150829348242127062700524791507644549061589726898156926207166932654163387735860300490284582531161678130196546457742335604069107005100947009592375626998637015149790357448709317630110460069080121424098662093739958678840902272575975984026188193190022044254060407681957056371309858537664305978374472358379967314094603181974279851286030421976468513662615898534085550858628081147932514509712781423832170960067176207386309218478163782263807188184844566819468795872493002929337703431399599677927984097243068804472098321480964687157853553633776342907222172532295015142177101488427661497020904623778050064788379014268158098760267445049077191632846834748204569878557320071764606442121414816533185556348443623772814120164488748048197803431226345642764559336770327966840929588826011575422397033019964174150409276489447853011747699697201137819048771448700004727106962146495924689467307321171251636871354078633388817214648057576307894280999470418875379566951811873670003959106564523523823938975876370511231438899784589439274648379181455340428906901939470091315622583231230155231715159434565903265429591723736733920468054981098533140442185419035276785145280146619400744876604063108269458264980718815201149013861520782764339311887581987033076427724908623132750029737206829307294802316759544233010026340494993884681051887411386274868066849991539399979807018258475280873537250782003369445367930618860089385195482648361273090332431218203931936797348410635223627904407061401323581286364283786801472121773627708290116864392197116346998143514193114297240932252003612022227749379181444218847081654579560453002172310644361772762868221257721132323662091373837347085740906987721933715782551287795236213652006585786154794973423652002286213377413316106920347709191355649708841810314420373175469422202597996164708181575165119569863185957510531833017402766317811517932347910173304715119977532140612270458266555809427148927962066837447286362835610015341725384273140820526497638065357576442000730790922779387484805816279202514065549035327094186543389019494149319625814047217208427791286470687357474074498183913921548773703909572550207313575892534096043741762770199791761662062076172807499202798552332517451915556870833453241424738312142649616221331332585644245262962643429853110189443685746892522906745566252530883648917959549939809010833056582106810406684327739493900154731252508799092456869769554673298418073553672552118914715188535967493153912249721302690262905333468078671641761842739438685898311929333343921185077914535158397744113397887011515938319687483759008618581375221767294070744767305441025194849561571730742748884250589238608595958604315282700642275890598095330470772829797331373307024693491657424648782616338898766545237123623474058203866166905797669640490295814593202545253804985609427433747916666302133021452552837841124365940051399306495116809675770565140554752394920981960756630053194867581203494895762818843901897583105773385265447771540153531139049609263355016265618667736968792431562599643425290593795165740528804026432687163246344126274668958637182441039448347711692229756787620149993175432677074179807141228336489133332351779549656883403343957830486398370484431550938454723397240174106484096995475653876456875945231108793862732943596272191374311598948278710232332094032347485024509739325490883230837437745023461730145168969079599115361884036382671692018458195052622270968664478131034684874872645243444076592295936545159168421362172689492687952766091678025451043666239944488825956908316716593483442480769238480979928394800681751023349191942667707997151101839963053030717690672459462930332820268554767607254010964198258484350873374750987312923366116675256005779328974838827826959099022285171172763439324300244529473129984681799353981797469039109690137565775682956670816461088280450150628238407855754308777574603103794268608019183097427715842630736367297842106566460148544252163115469690464651825963127015433967760636562428624359582985137947348883611724015394239933660930889496185846392306030446095950635055621420757091122256363015510073863424752095805198290754248395247152412959527162350666063761710337589255165726230910146407238284345445881697492334512696252489434411947819665090227726672715120809693354513752467450418060092070991104328701188907062818918475447446325221292270653406041808342409623758661581296798159382455363400774998865257546959657826542583176633821644338870864601606481420343391960182703627534735080547880143752109490492755572828948891234385316612138353064031761461427748609472954017390121174221476003292724512730220730586518560235039818676263768486376767652196262956100258458515956000736420231650783567531531435300098453422721093091654114314029557027205707757686616589900675640423643199489884896916091072839130136608240109731928912783006851734016177236481000944814027853264288608089337861608128206525791374338169729259704394922187357756316102108009703470176982808640425125463193295939925208270464586588153684291203439792249995071963123246766781671676201135516763027540702443132030357269345584953396963991438137555287175966361217169784391320856581570720655815516581273335573518322297848320493439480143022026978663320468203553089957405827957139945392522308002590362844351824669210494480630923451638819479280428820933916187923161899058380640686595599617078226693631090887777007002416698738759744914215375322227363322701706617882434995827919853201712285274030721098206627963946395377281269286661769188065335558811091426195055102016496836706809329282577217543087558640732805289163734901821698666559018320813133962571683666777388127076213533819274020335306287009426005639875425675746651576342746735326669162317714541257167937929770467387980650203995001643286380305871889200396915664135962781897325568528270389285798221549697074403066459860678508018176627622856337610573541249220011929654307771681524552895314962378873814557039555107866247210667971979963271159737267759503541437421568451131651831074984312871405370772389206864288765739206457694534629071708508147397789809357265351288820421970085754872852227158326402861602481570406672959566956491548547105661549484082689186234159634430731177953528960023761358368087536692942079437413062543867211245123049173486919400199480588141196350837780646901551176340451908261401373366108461316057716029117588585612460165811562976344329566129466176305253898754315412814761235187027416311055758507751197477918956939686693302601960674425977760717933498250735280061738026700387138129342037868987074379486508391956097225886451648586006297374023964717720045790031574917129086767401286465592160305549490421043897766368871353914741867946011401255102287938382224948378366239665014587323664415494748696950715836922335246940003820846638502660046294073481493832798458088021389601258827168411938483448516625522255793582978499273296422139018514175729072778207125938000334977546737536051745149945753587215508706743091372347308091735570733066152465663579390653120840899429901076055012440547762436570835395945710169733771707918895624209402447185733816624997320402348020707959290382497222460099243164948085203439692063058426776722170292834632122590832171550231483506698127030775143138034422112358342457500547952255434927209084607630640189535324363352877466917279398577824354580277613330780407747284654517330834487441883720030224955779908342635088307679034454968775033996094124147141606341817352849035846121650074588579673714692637368090015773548645161099925848529905071303519051396029984446149253138565192943704858569548427589250757722622436771446891158585458732152961873584349545833931941126101908949501641907482685918523493805781299701761144000267698555055243191126698659337440195697217889717747783654617991542378857886399604261485852131483255108977311285909376350896395189525264262965912198619737148746998415126378220574983732324793547472301848522555874885020582306592512293821347840856487967010386490339087069647227454332534342115657680123125479928451007960181062384083854917699980390397719163918943950752762993973274089453992896854047749955080702292146588292615376542347994084540034614533631625496818630135816046284642966186382499866499931982286020449678809874627187997475060226876321389546126755483947462421102550583944779556973194208800293073981748316065223036730346616290774281192979676443541413827560048961822795358420128935893452901503338951847915031016792574336730480985242100259763548359624628147235274971636677629981647610487095766869423520710953157786048555121610221451552475376668695984057755095351792225740762294957428937986697255781762447670089441514622316841164124348205437811168000059321561272778195135142331257938933684621767334332097020513172012205824650295888416726074040828371898549704363766456946375208765961739581728174501531903332948534869642872122412961992688145440939488559741467246259592708509440787955152239252439009967441628308891495687805390382888726745468079252851241508702344502664983945712285422509318016338338074788409487154758370950275818817798918186546082419950738851502148022407505467242344541501259278243558499628692661851108807083149749244066033476627023249298059977809727649448805711023300989526074717059186642076173137055543558394204339868149801114114431364401746910939429645320653805851514116563298166810586609310094362362406131917446230583032474596843810172042251742003393274782195769900803943575308720546478563915461202566036600691877179465899620369112100800763534121852688055368716239671859216913670324162683801071094175375756116237704797134073299865594936812692475080309710493157285901646498616787448081518296884690396144398505683519695537237956125761895277158639179504837700684881791817307803447210504262989753650582110848293984142177518785036430648527904124208088064891935415143258705307110693219274148703266638633692731093889842796407081889305729567205689874227017450538734850884541737881946527560022103779680076433093284858363022412846951451049586729130055460052104288770977983241447677216530123826734160679617784947566928455485342348853227462521924142232586142705141910847451558025735296870829474476007348026912942554534461897968644731521565572570413199006450369551848440259927102226799321281717970771556091059125997164416933740460840954378703807688794903333632967607006636091995245316210553342676867878039842188720312435252034257388156843410543947970609933294481664500099473793223750321126809034766932675570882042407964360026881293126283600280858368979644590732774927449568096042424337869256865202213970102764490351419003229524807014325814792548900526013583070194108011031407278632849768377981063986719727717278840281076820365754456180262971166443197010481379836842302975636045205855042140452220061332786870555181840859854505660010209410427257560384395554970210007777969253883330191917960678095952444654333872883482438182579769912787176243436152330843687244774010166885132172362708391172102542689708200971717230057624570894890898100111832988999245024289624155879236392626669866797173260481529921669594966552740086648510133249125057867480340361486375593547548153477776508521997050973911709038431098821430795462825494493378943014312529418145625171806091935530901477567952823883136237932330769965289146087655348951423281943643155835813143910768606558199526481827175706752962487170722513612751433670030063979948388742742127030879976934513833240706098912174518456701005568517016302045895967844324746592507060473541190886892535449697883083200901844350207370228482237358357034946160164904945337923697275562377917228436502994536093829075743517578230375886103129907916258619589770587249647392858818104772240942815775420992623481401235644376099826809803293356561046040825515810976721710194012804514109043425056398316278719270214462797764753686242873762544714825533776326154446235064843384182990977941488189579001242349321543163096617593896118468469326111259069006036431409387906404942427495143710053463439822168337795412845365228428824600481407284632565010710282694131213606114830784061409466467235485341984739078978556213974949968857623424049330352958610454814718870336489187811678841437316903256134630414638580836153460604368131708858578361067605820654666143214392279790567365780269130857936890088313464026906111615194890373602148164684417654100492800849379617873224680619676665592752511830932344807442032745769869029715277362793162205086346301654019170203202541819848444945847902223990582360291656962600070777768203845867885750425912871423721704748998430884428649750135656914127040904499857516276907975430370162217760415349773568339729235899465834623219465989393653481934131114044966774362124473172742087977524761640612223678794411528749493039267319219651826474357132155253899239745126236145615613188503521334836216172686932198456499390582356888385177795990895773546401895133802411320075207203365830191422858516676967155134737326776418698568177656766707471499759510437235230278273369644084511979165140208123966193557706686144661126749614360942275709091449257279624133547345158336706758747744189629339169055123242959264454548912859262432534471611275134076573912863118786105200359406326386367954682997394189720509052095146701792362930058670972936145650425679600419076953256225181635359424149982845173417018715273912427523628311078501642769091483903100009934068087332701411841817386172814191133567376835230071688798787016948582352182181188117896683303279761298612088613293826367866801570679148338330144753901955088735437791692402632613562200301653516664131593553644921496098922389608498473039505984084783050420523922569475584512153626064927479824927532185466199424859434014362869893444811403318616315271789120816325564687805853594918474155237797265760271724161230635718828167367423700703540603654347348880497752533759506011218981749651928445944082456709987699846502311295265964719903832012391062446629316837578493116116533215224857172961562587515157021169645334016452169625039760816384458938715016516447537470451926666828306680335691438495080313579484105491635004728199564915881342709983552813325120328823429744732197996513448765193203590894624210907322687927722387513019750764897246076418941415587598925455043590812279798638615726665614433668620441697677505360044963288451076265920687963601633241997405589995800973349541839643567171015455488596691997298503139313852387222137986756707201376409290385381819861070594516105943629375063863131785471841692558055514009325338820405116281797005409371656446165466750308081230411928253441012657603382334123318371091073924162628227698322041017985230859390493861214420186893481463967537911640519833483474655169540110611240999518315206935514129063224682182478166984003612164637308911735983936357114714769324655621920400519913550718770855413802557461068039089000337465404621052710483091750255640761898559162294414206389985668717571488331404537714122927498485617551445233786586778028143547150801889572715851201946678115942907625600961856313691281900507460197697411928579486255464806249035905375931665826366006565333128779734921773333446100729921880096739813538616393872463684480930546454150454959722673219492165197794877037268807314654644835144492136644530989395237781543815275969077987159800774402270213863821531003915366884604208812753684161839036356224714374357218620568657884954132066516086558425184100076245295478206543645214789617257263572740824501401121435448481068777868291878110305914139004062034192807735903594937674383242064820724082157713665360837454720828503043197973586654536016726940451691789307164344656315319289071514484119119088442900978191543093238050031563842240309914697881743061805503579066179562007235526164658355592352411867045424173156052287198483163636360010635164063113698546709277671441145211590861004344127620657301576481682413203380814165154364204137580408109337383508368730190305229229513525435469963121535818981645741287234370780511867139207526784442039698077239826722267811132677624335921502105319436569253414340641013556228430415005499933397280899289630472106104773181687182195457347087216389390565768859158284509912640433150091293940328003080800812410366606253598824423801774986157365619321546861968776115734699376315278069694446133797133538227448539250295857644381440290719117578010758926341564692739323858041314180840093599797159434895336887510020003140827242851693759478233898828792916642054602933371120400466974344621914131886978186551103935659423376042462875150081186052898036111460288455556008667510561402465091019937364814405431390117356994323024860209797901821382167792474140769853540510789258662329317912604470748347146535624657383231038030269489907098470016198052283321212168928560351505328802274057871487374869210338636745286937551134056893860268209331155733389677715866743950872880082699002768394141565988799193040315788972223993722909826075860781833513559980135136004968274496183167291260751921471066051093091784471657243252342873613152598906656141355624887506330017794096616378708221225578901881648530594186555149479471689510509186967896871856017508368524648524792331059810620988034916796786329467435157837197626176815361002495170988188115752863810515015021465509597756401763568894264173824411410659861014452044430210778754012195370179270558098007693188431595642218025195731513874472810052796480414148406835637348907333580283352634898244303489915101730881341716952388405231928426042559745727845025705695106213547812291760936135065552061783095330454831754679505149327577693778653735476877436507832502614569131846269857572224430179947003432820947817043569735132302065857549578272630101539768531124679683197430434637981497645583270100937058106564742052883259282052901134687897249833712438059268718210930721608983619403446589564060304511538250291323683235589436625012171458924828351876087426055083941552351106032254060220676149156726572898012427018065635642080333270123831244391043155035321133726789318686920911039260564596710926748699365902412095285151249904004975884219712622670606815581980427863736234207299183097825442348877781319883268825296104902766137632764603726148069817885443397904090732645060113884197695025010731089738608215552873793505335676160281954300699441155282526701770733253829937479351967111833854167462576383795604005635526866962131373451187567418686298870508573566290628847619730019845990933784774619085830404902101525289517696818903580254221348101383643717248876816960742229500523777710556484554774610533699201196792106747607217411276300668507052878865240135540497059177240330608394033541229085974289008363514995591979045450544949660356271160717092644190224495488489855327644061227604124214083009117578196328504113688313519994857191602732633852793472474982011174472273272485686458952180504263894325359540254776061171455036739859964615326097234325014712031270130287180198248926010486722855895366497087963342351091537064851057896466635855783045978259977503938740117137346308907870991388780524804146614326274826420052717011981049839850981034237164693954404281965770377866300023023861073514244083780445106053764307470534666474323830305742597684536474029851586982882066099235509234211629087602042808088553046080889775359994519142744262159656915338506071589666194250573885396760814612533881120401562768308379669655300386407532104697471875474276993409040777669334823508269754030858226280404130223653418569487345988928331345573601530840703213795931744513597662014119482528679651017684836006624770790203741744562768257428716981043638815041403905343132663574018321852852070826422965180473785808593981601540453291017778743891700293778741824263788859196394419265018111233739788695902497571617432042951732448783216368341591829724713829953597333659305288131061875871416760951617377855284691064766900399746166895978295404963105046160217966238030842073358795991041777525612639071462252843684275983378437024065304186105368761103769893542727382525424186245614391160967656622850507087617704769680205550069438889000490973100602637869137719748929476856593666604867164502290663833155974840056510497204212814044510922889917888806963310754999716441707845431948009636963443681554798194227412095944362230212332352843709253337665462661412827388505691355889905774529525194818310510533818148918450848886739565882391175190586188571184796134993078852945460251105383894284762869586521877749266309552217440038555668470681481258779006987769914497085144296561939842611258708575081762213710532369174936341430032629513368764745951700389947650506678325954765738040606638617693036844973738429495051988618521094781249636586144325315800570622764751960400619258965611445982360680378764606846875564057535901164196243902380927333377646181895930078424063566837820492965677998800556693233648038666823673871200551889931774326855306118001515167940548707897791149079393364204070039549994227485282578566871320126706044266303011455568042156904731275125853973014377444538603397703131963058642444738662640870835221610436857117877587815779242883964214891550633465804707536954306015920135665680412756532541146045021382422554953170142270108724025321062415590155139350172329786076232398763645713525826371992896274692812043547039179252034786253225652302426423186845244811340447802640700494317178451294348475522117328065436722212417497018825598888615572481021972406572993152685798361086448683636349348838951210096052551923806975537990149535695763139671970170357922367265125650316865129267160470660463289703936687975730616231490117547873103003682027978402896659379507211331474088728104775631986513717522604748309947493430959731212498196432065345151013559332954046875638337901108305126662782885467119606801206207082674090092243935630308905239363919952059942412599586173774756633361763194572579181681239144988337605903434448903499264821130465384290420714403787923815922983301115224171409034579373376246381068938725220685032417128895323727088596448333422738490523588466017448007772340851872823306886903173446229424774168103780234330986039982131780665553903104036013574420486067876865868211359316975167606305672416144885335748585388049931669201790794810860720483504495652052573229213824960751299205537751897916544741286733399601827115576877330989218696744863042277343038193806308390292962044932685605840124245963111433574111001436390358098105179904084165772088116826210671399497548219368953429622723854717238029596356998417981494993990539618589898747437414178525134119559314227863887997557933272478634531198412848404938165881274595240954094777810980144651942355414546661221645512553499501540793175331157644635581736593332577350288926197646507515384195587811348904208039053804887757507793922745074400284420916635607482635336357283842204339742274711012176955575415788377733630037611753432880940969195416034269087443854463188621971171757662807451525456390888748482197212489762822977887250053133724210651318711630885179036851228729188624687548679165435385858873242335266434030904255788131911749647297407592979498833303630027160711398530573345652199659237741989274835019209568698074590243235398660844153112369266967937988637397022634537059811002770777324949297240650451262913442312468586532307095604069738031841914406896410327848760774062813424630823635722677149659672281960586455828292131688175988339877607467074342735822340123749524054432145142284664980680974700256732469058235504285034006556730335320356217581380942489928118496780329852508190559563094635633619230763967626767258259587494723196681706588722155603272026288287236990087110854235368756112142676940133518268552161035691087892000297882513118806607908174847877816575252611835561938679881273595774959380173558211211578724026652797617934847465134138552146750198467853771561048362152187343476435940200773497968563470697668018385617550694293973579348503015263487617243949989817729742440589453787012576911427213379452787543253177560495063488867191789757878471900462557168772127947546428637715241662351736125019454719152867676050268666522428001770111397104003001714057354912758537131485392458786930710560589277677581719475436922302400207264855829449366626894667459765820799913323567430244367735553684314070122308177716580453370167115066403278842811365567927771544543948086038450827983436666673097558588505348864890715394390503552031378243972877197320198556025694662514438786236937787714267067513866855008217195638229149120903110973191226053322557573010194501941423800759612194628104042811668214353441983132953810361344340836737511379020955127812600157181482855450050369768899514961575233476560431205686515303773616803858473509686836186317718176578837996891964422757971943242263765697857058208051660163186195132800951008780262548877683144883343429622264667813224298896348715167996103980847579918559893723733357996660013949199495253322908635840908127421475525385448458710630271842342349261016560113076011039804486730545476967739954611938866214883801485416171568413865309995868074971716562320211176938884277982808394293525126056597451264700468622851980523822663089572276059419382982103519697090325632986695450009046672816692069740183013317087424525710089282661501580381794547057199441727804128133255230049382857026315423694548260070318881329578154893022058780594587283445902541351938304559695640029355881944057805141865260314844784623256528125802214568145177547993906719010514650305845222971418290969108289078421595461365716225726624309624612770851505895126131468967532352906691870125511906085235094283423576458364781611703710146796356674136383061206543617653465578059721653663680024089321170041740376539489246317575177622839156708342525905224192925766728277068554273923507202301982855078306060164239186553231619375449710112804726279682631268307944115710911496521631553645491163364426702270699231908296041996389861015745358749513427310263472973504208380136842321385953824286041658044428056576111545214072593717952055185605892017370236329803555921557586173851446949259642296867374600513754469650624209222869846392990130738575934813616340413099212110598982443851538557617400797203780062033616157153509407845815046076990651160237326539750984623430798615374364423131256092429755311656509104725746313986201402536804747366303421686057962363472658194488563172500527313383895280290984910245094565250422475109044335340382444533068714079383546099055810869755005455281736454479249934379821033606369723790150184577254679609252664310230276217075941886848515295830490551984455623244762959769634585029868469921777697614671261062903165156791696119262991451139161460140806087571463758782784072747584446241593601991196070945536902157362539861080466647473917311383829721519161399015471229500725269511877772510529324341170829491811927147643028488093505941460626586402257492232451231279417977285681164449028155645166688919011649264637162487385622875061037445980960470451070227673480388715226418955485058571287055128981611930455997315193439417798230530806849193020140834662702199113024618323921080117374557627147848509934880203122666073331714405542550909831903865267279583079666735142769821258315792441752078081830701556189535922498066627872862914956524156538131998549840948671209840357573744001481164970018188231229003159057599605905651291451756034802664773378342221337992645893003103589491301649396828662106485717077649912281072833433976963994970951006648650451732078189204884084451846810677799789478182976550574736345080474525095924434759054250600783001979823836361213867924001749035977048251545448303530360445220535239450862936507154020860592763167440845879741790032847497622428704023781036246149253570875542486048131837866872800574900282207122156126105671982782211073574275687373099151021171533302444639353287661662900808127264887380062328934042303446522629197256827305864459258508171540411012273763977862891416440858759544438572773361751320954494592495251682929295272375450971372347210852334059551269274295538947688931472456692386519852296125510840028825574873213474177386294880510978266530052588747691467231853450665286640243059804975284716491240587191103671200524197653159415502494737916137325357453853760384749463329926776915147468287233751176944780377273308367563590289889955379947897641932298682759073888314705972502710980541392753813818472888182631770567364347846354262287453529594729354969530425053868850491186264729074225439984591129387613537897123265711480718176569661442845609660998822674376173343860846389311464704062120214591876320408462291421464572073954732965763824728924573584321241272527865189338738090023205805819889647364941829789025209680764165443605979222633504256452341485743500531718750247194063204138668180829990111435380535093533169115334451096807116248773953707831489455795223253760964435092512016195919985477584215173500343295702228727963770760916388331317719401842212729290705427409326099616190646156502429453481637704273492606937728248522013355029057747134297841159973779864057834615281535781282952149930623795931844916750202368280850734064355752309653927209819209591601769270936036051666454028041304148069920083064384548096619750052286036561421245794480652130436601206714857381747276327331712179296199435704666823959279274074184401463313406669968306671726370731838492579743916384108024215350427005220537382108407802053651355326764563708552731820032820989713118306538391169777643797974365496490289177963181878303044427768750238663951815193857769621783009619699457269992484974948999540292855403510069721861762907094752545854685870773309748759035893223349010606876589825176506284810896130934629495620140581690099084241569911153015158033768049704087338452257242336410717151888570157409817563868520041426070075896155944139266293172256805711340325951391404114971520246158083280905906380287269458280993780403407774475195287983463681076650253680764587030292327566206606740292205873579603537970961549502336893529953148750111008897759145944094540971471984168058079269197858800487645469404800431577366118969820556260993170317493363544221710721425180863469424597910059146334889715114471072777537023278367808843173368053477463809384851544004957669991224643464666095194794712115553002656773506085655122062711576742126235654934898770541395353143610555822934075678818623278387185743474751855505084575322058634312131347974369762368099898866114063444424609487874733484763701459406036787223037934571296871643112953989244845385008219086987555354470613832512904710656942617054579327494570398277556171751082854503364401560999881262235498989528294196242857431827493270010432469901251485127370896937249661911025961222794192878025991629321911097353940007162002158475205415671014765899164903255018839836840254495268350402461910402736324824175311696534932264450092091078239693762281432264029438434877519307759588726275953875993398130418792539472098790263467323587961510123544381899832948583378933469069746095891431847155290198043143706088166685912976783432512146564370128794508773731496338463444371856341635546548419896069700036082164390416534755038119410964342647143445154269036864682185932351039636231957796662099362820635720130622499810433358133212809607147752246641847165058982281144860311562415992600359386380760082983895820298970952892786442065870051457269083823584649873304232944641452317932859675321150574419539655217587852834967637337785622501473843163011027015463093103848569535094220644476121226725107888093459687659681198353566131419070268264431628403842869418490225340309721034698057450717822937978229561803648933056284528063788110051062362490203168294764523052267636117612451466487732185215714160308658951048175023053381916206506408800703045854204764483854167842630462747273734289569122417410189414870660985260369751547910570101008675137626768756339461478515226314306862048034174306708778426432575104045009441629966331258911463068465111408163547425217454389802373421406101346659964232992341989238364785786084781380694926154328075416110634160928692563395689393605366999251756681979457379598959911267689495602643130740810421527800208411416303671790755516618231618537828691403998961825579480324276037487088556798114332402204261548771098057546001553814631176396015653249714794548362127202771038519824113231967587562311938314223265215382460753294389883341864211786571348899469279004050279750949513024296053198821431180067173991431353145089952990446250067475315327829258671918978223620260908707933193166186547964804278195739176164468615345936755012228489251756705408194655436586172989099936692111379475742285246455087064799271031102376601719499977832890226082427090115425688803555113595856331728271821219172721648144547180719223592836406562635152033670492051018414599123133395031071475700946825043831916802868891384161188451372904010926198364155503767118691072451757538893887433621242632207279659309424856120043871239359398919184106595699017924835325925261082627572286479353826456334640932099631787203689639146164223200134867728849252521322335663342407031491153736291887139315568313236776813101282570842604954132930724351469738530752848753036905314873469827424141492514755260084383209298161835501885959973696465492930225759505217475152320842542916557457729041732712199482509132443440664698672945326123154062618066530813808109024452814491690977068666236026101744395574793072692791831256045471726135763181299473767743672400311024812443415440780873743263623239789526527526728687645017000597042450812395395957548114821018485552874507033944905854593562258545255713594635681999989348939148646238038601816731200405554875026435559113944021606427708743121379677257168572931831103947730473678201780028027339498242739580426673927575827863267100018252645983925054524499533497886971804608161121698420269639011349777061905346982523963314366256609077038015679681977765210795435653289190718062559754562274054125624552891912364775909219816296476822724004833937909552416460777379577883468136758569351056741058588836777151547266199724428166525556270636949199805089438600462498992645784728452720481048212646395634168907734496381902365831216408825411817658043814798777798002901993566320853310468167743585672385037178621029567950962676050552201303088560875186293882547130524002461446373479213947703541079550247047556162707706203432738996571509838715161742218227507758576027990241675365226189092684730347104440379620842013056629227995124482099583484947809881807099473071837591922718679733258239285384077122972745071220642248716555308021868650713962060038551505499169469143411459450987718541293901258226162500228134820668953822176960022979796363095212208251153818107431067831792149839901226366346322902799208473424615837303754559149147022086925819238886860717957319939672306329686821446850294295680279297432866588242436326954348471250423418575478263094931880343969437826816903152016506923475643961930352141018075542269338340405061139318690917767328182904099810822343842076723980999827600588487549408578199996781635553246515463952588854429128231715945577471321189590576494861803689641031195831307302816239519278022478788732587673929078164451474486038364147542839948235528831834543839730548631980550649639458475097368046580815987999169268892381243087229791081405414195247617441623036150216670320303777785196823873751135913260895309853643532150065349956830062299645089047915168794284628929396991443987411726238652949759872399579942491214903453834370700161466757875262084413450132357095658175400850355933923866587034578833432553699941633596577699941586275116681131210105103085719127641713887036901409313466174946391750101401051197281346658032408679246173764021878826194701813549825458811516517108903086444486719276239552648275571760588539879539631642469212210250394825350358381580056591753058249051082155789535994953241114883799191623179437710862036395878727420185974242156300136413717344953141838998660726917741536337364110244808923397380820353497659284915492400033039910259611114169412221471444091371543595146240409802780789511082611760931119044515265345815642414076676017147137087944848157833686684143715089761192878484651932321624662491776620626790478552255543958843339447684217500162524341081006905648773294459939935043044069274657822416104217652659993496902121571179287472114718692473078536117513008133396668510081064064308138485095228302415961154772282328374745034099966025570109664390732260789488494650446201439394391168716216283040458831502821421147159400120003141023344164982245753014687082010212260095434751925908184539456121908450040417407012720570763153774276237103446703473684646874200175420757976386888375984431583167368192378492957255318120049540623346821544166901868220988775797007430237144475902035225442282304368317023790097992579250406273281265170820116481844234877900422523408127783139346976395642688832929135363483952506936674366602432693002008435391200605133165530426398610480957479906136290074448857759950752966095523294869007709141758939039228784305375204321307853105985521154430650242159072476998877313116008295818774981873580320459500950516544277579976221645579205561261592127869581502724190960037931578104655625212795473427024390155593662825750920227182402919025999255560048556997320240541662639921603636871943262827747212585365248775532077015350759156264946041073428677736688441764541683480422347242102279248160653263200939381942411667404487595863753215923052038105336397720011033450158781267342311646478856719119694581349853027132035493669777220991816895460140409863390106819635228796232039109748678601238590234979042093216230605732747873665319970087626663448107831815426285859948907035243945347505311377884804629038991976283385107597706680655646775196157984695458482582961461340894832454710748821425041180795255625054935177979611799195130292884484539710944744346622923030596179413207642132591520547706198317195435651979854768607046218143511102077063624355801367200590649170169038129909138743068499166958811373101823124143898774674750593839910560793799511087748472261730397210998543373510644242980267908674372396327770131336318124881007289047206072062648375078324754485732423276988501418938887663731423222845903466047860640520722226660404000521177862505277464630994792234702542766847064204795909049643544600069060621794441893339415703569853913686210648671257007995665492062093949466829148637738925880820927372229289421721232356425470702420093318167297021286391836943391121337811707151820916616903073536703717022991700563007260785560506535191194067367963354441592886137794100097508506405552459018429833100001519644936962518683311843904161934129582626911871637109363074246534842803220393238847684349064561365061018795596399006888409475618511909527506023266392238890991848457832221497735087361682685349265059053318480331717699726727304502810591510552959113330825724572443252656513810559045239862743802155891508073853719788908435446691859189289401247834452242084387843529199661633657765950317399114475602040757760038988900395801760342177190615667920923624186680171026130980055213665360554693258741173977444231614629067438369533981457805152552986863860102282805950264244862358785964881147614317173089235842428731122733343445421429845979067060996481929504688567425898710394977282306689881865859177777198650938272032125843009714040261062389355654011193377534748986816856685234315997354713122999885711792057668898137727650471728677191144693048895180611573286425058010422652062016465124177138363312185431443438822322090366163855009552130198357510059695176146615331990074870858394006892992838706643124435886934424523358785964099684999704815854643571945158846853012231587521533616888496599031703863306865048412271146054201914808984084924741754613794344209779922185999599692852684711087270869502324724254862434318386294567886636265683363704878037332572630138178008214441739149636233556119537127682298878820314193365734506651548383843954386135187047929409760270083550616748271911754702850227339434223605528412237343506219768356334703022742720353737767091455679403118632967322821039488620890790524412090835442144657740685633916458839838824614693582973867983367580797706422354353905309341774245034270853020267388856428369963943291826121222832153424804434042370175692922129249115302826770462279204201403250614892334702545019357941021235384990688069295613168549975506170388510046948358175625436775016673786811392677644341964792677069706781240972559164689332110856440046727880567549003109879992278578764479339178622203797561011567839309614183023930755398494823464868419198600883008538995082945752218877344690590644828763349606933900840927450941692475759987709720068405561610233634013299273566756281635715330541284362760024301082534687146890508956683339441786433816172145922508361282595204753912444871390905239966112126293832705971380153830340015031978030873778194243718234933956156285861841746447483328776286785857114332258175672986630607566470984137766261704950957604959366922040040397829421437495401533046767760713214914325323004857087333163738108352648750445557660613673669984344218084179479480753460826404938339080922723259314232575893900308302710100980138151456569190994273555848804763900925528229286144777094879064608981722418248843838643675796280269787577116222786237916072189101937699106677252858095020717235181362629937993534900834123335336744599454614922533450092178386383168013638240434668589529194826513745860107998641760699554723936950153706338228688688528880439860870042726574884841116371313911126953341297388502097637127560449716041831784424542190920548213772482225984679703768958226682900876795619433827210365515997031127761698707185743132642006104938070432777980098162363904877157086067242980485454267294213023995924645489819446042352840167276325748148696863428333726084317372601621331359857202191106808775272788733594915860534704825878940528299349290510925371584084280178635494407228099913879252302898232166850451216375357969776541814902046281977620011882672431800290421676962730129176855254647350803054008209475960595066315780180330174326601194939303354086393251827148991638900006537128223372476911556516861163380820867186633641317664868604255384960562311834434194838500987969843842005459321092085030796257711435473430142509435455723895881864658718893574117576460388799717391987641427001866016284471647655037643517361030399175469254924946337727706022327024530352294980331445324782488473781654641006272498553848773662838506523661654597818793149731203206283871318005416757344963140103909637629557251291440262613297703999841300679644098849102203813681004071232757205425688654564781815712491720796749769270587980673439177948016939643444513369797810645975178691283290402194475336715686959857655364773522288155872656014326623123406907864694259341475592005484614248999660510946973661275316298591736824471315273695182867543784387413414612853268135845138811908306361323578112737654668775464558518397938596778134407452378124705256151532554344082664828164631728344511612363850320904585855802231983141428544442681463857028769922931596362574475377869518147457511877604443934010258589165797124798894959529905765526005628827696619083488466723687797658016569864064418369865940132256088808152648142132686983640310114624264546198425782829404280911118210194999599071990347248210636127996291413955344737255198386951627310984919882006226511609450829700170314445979172874386362091004397763408318817380023400925651788024343307504123362954121844124731298258013616018975147139900252666222515590952421703215106773088940256711583811027644679268120247224118232873042455329750920404469068959498242402436070051649250013944648300525876335442387901302103238640867299448814674692977769723272573553474851577330024724676690902606597812991644146469019136344451501421340202596671421815429196800217578368663122787625914782878147195779627809168786865114596881637407825871897918320291964462428312709455266301029228177861807879893835582583173896692016840886739249074676709617048654623291716634471950766731684278249297871986988695576831173530188269305832453098284882188626332678415230061919161903496279744223682853395897105623531487059880572718120911611983417062636585568302555078529658037569129109749074398291271551011309855036399328902599233856095810051473975023357949245289652261793272100260568985373903443994641349773365833722247934691854869279416595953256902067886867526009450963726768760913930034173222814488190824036493634161139398423526204161377592571225546151607511419993728436471375472582515597403075389608658981004082928750716332827676308326073831868555694440578079362718528261255244750139672703402920916793559224812771759767086682485294903516782085150722930006236727170120102241048755608907955823256721137970130417757927722668235457205537382898675655283129898484444169617521820341946278886914415620366295304461567055712246759431170256855973021691980899563591357202686151374914272737965232507693339900532884478692700360506305660351886923509673904003815517906044648529316775238421963703518489808028781421512535532860593052040270209061800810795247944301491754529040972049753900298875012360310351760725017717413693392278421452234792172928359073462567924387411600979555053936662967893542338513278991471408880365654017703874897680413438438176352883493772516684398735391608713429210415237196444622019869580508228212469183229256358487289104422530884013903142730186364417580245413347671543879207086292798933064288166417225174617159320809784789393055934130401706188591041367501101952076817755311159332185348084998422263645825940043756525547292114411238599871774412793475347699153647786298206568845841476353742704178266442850788969619737204117217140582236623645404802485513081473273226073371540234199160608858564237880856865269399473877730611257791562570320957396914345384515565273329854384301335496267268141641670503846084174427455439731081516719714181541268987415455662396900089461298513881835572024273907645578761510838765232290074798583323762413609562852075040622987502234909223113741187144487609022819030914686564241264498184300770899906309105061364568746151805610201095889612744307031173811182302520991234947517507958205177237682721097313989963947033691211222608048813986714994446236860108788885352011935931733813677567237379333488275924403855117168116139629926975762832375207500126055938619143629622647690024071629183103783412847354616320840108109282266770086568587567759778118347677452078712245599084400174691791437565034230105567194460074734400223101776697351453507470520006776681719830431909196611540430586898228017829719093957894159252845374111091216005898907069844576332264311576284387833272213723647313543103240728268317962016735050163985967402670260780951198201926172482607594627594256957480273164237914263252029845437911653421535020951385075568804883479049664837214952859355384109698569102130159213978659452481886492649237707443510198747403572609441385515171108854886502004387442351534695865356897641451181274127922152751140180127867948378495499715158281000175624152181848634087679263234200398643741985798491376060493336433250423556048633978497458799943162337854353529005618670008871479886797569491673053627324070764992037217123546357215354909186125954808636218499809582481290992572123267668343592641327314070951662653282379108022464048674111199782406594764098629198537255955023611422876050323740127616566464908553719076774677563587709108728307702108211778623771030545975639032754324625902072864616439477646546152033525017843669276298797092775809943436477325202363454946746727066200677318293192900660960172435063592944192127363657826177203700344853567464938154491269559116311112018040679932527964258989267805113550794687997215453959483604127074086834656312830321629366981572219709772440303264170864651210555387627336821638232253337279126448975955547041189636826036433285785406371016129707925309621683630141074789084052246087458371278302345138454138437046737427374294084406578318517081723232570727683680037498191854703240944358786909708248651322554977024862958114420572624449564484547054579180379660902048759526986499655757015545045833362786167603731916455730911897062524293590926892354499955863525412333160542675644889019039043734438533939663852304811078843727945566349979285413085215154601920773541665290141032956222369196682424143141137249392617466437797287070533410458327924671276964240989528395413385538459928820595451619582457813181663524975988523661431726809077690159906941530556281824913584575232991341663810631589443385448098187159545771476930696150444547606777488306069402348412898264532208189585712560019531755737283502975325620291473674414171672571406769895281853058106750183598549789486028738334118802478468657651639559511206419912740292169272960985659965471572023126419391620539762302656905079763925276470789945959319447541563783118519454789195555439474770619251334205851989168612437388881047235367783289057534331927768520575207505999088412421812197841608873867227062018348351897563779050164190813193327603882680082965202196022897114076038496440707221506094116669210585276172632171825583319837879523748928752036019864509571176712508244026597779060862603668454228879664238457813935245375358870267338513477597074213334084369837716740238312711881637660731919671784191801096136533173799853758219570731447690498544816092505864416392251571068105419596748596503576302804036257441533884271698569627532691826818425881917506149437264924484529640265223062904654941029134828619671059793274102932593978223054582972007608320468447045746319736611153901995956458182076812105869414309250573748912462298810701317113494111291975185381395274422656098456868175630338733634536389636190497991922651218332150110908172325411661782879679510558817099518286603159498494344094154540095528172748057748535727066871280963172350497471162835882996006094406988369078083077099744420399811762948397659367153289114601490070732066361342998632032991897388495744557323917253345007537962644206670739455313219837788771061495790796727285593937331367777831937436667114398554551955845237805404762411793464995589040716551790141786764900566210786671114474382502497844670783947266501231134359440296710322132672746832139255850575813123607735063826906016731345508209623946338439542576694193139078079494491429866078083182466688482383500545058990716456497176116360296381189539388293697637456709825288173598277377826428218524686416664376934972848976323344931876032519033512619759831514049032092483490020049430994656634514070132669496985250366882169547145364733759751136254453655942153375613236409599172437410128841914660196885597508217708767087299736083181701556977753709407889463715195640549212876708223506605637458236966625131323971485132500019753881407027111890677650590583603748396784786830012083512908975664415960706190009093552340470112628376236442558036688814694363356879287670722737442389296421999068285406748848894113053979427867475578562413516454259996362383486187622597476920820001050963148205063888444136227418795417214859292061930679220290559081078622737936327970203100644154781948026246275906393419072285865984081542229719083724622985030082382923978082833374447030591079617354183103368643836011350788531541578349635507270169322775404250252107324542704790961937351455553165362415644462522511212178520564144012695396197499657745497803455128879139866600572257576444190956663690333367253363578934534513303696306786525893778185168275002696759204647341134116459808690956974363434352982097470384944732631021694005058303725295363394996896477899125338509857168773806301311425012700362755815462750686106917641906921759969724211048513851093484115706718031737217804481040182402344134641100180917371287290354002167678009949521710792808539748413564503250316068270601408381503854920151139315605271499456221803154302604207706378282361932611537542568999946540449862369299055087496990459272644653874627144276713521252413768425450040903904929684751143498647692900589181750915058711039992019190046140486610142825198853005211203562958110217239645665090939949033720998808649854131158052509046913204168668556751531351409930373472383731480332112673361746388819898324722524308545120482532598436575426049882717237241041759842396179581555322240475199366202767091722900596299949626740576846084817297073907952373547099165432239644916211246698692717926167279654357580123021443720728662890518778402232401811231832027638427150100550871111694244846274550595804078531322103015136390518191999739747367262893281721463029785165060704264155103862216557698179290214326024469583843893234560526115519299926833060086536467521815016337189641661583053692100223073949985675233337308717779056151849276722729936759901692648741278831775429524769054205479327713921564145851433389329455288557141850709265774442795525350415854463927681400524241238673771260162495810686177242061434283746444578411048303859991700533089101516830958016502156128788945906631276680734856604764723260246645600405356784650556360326409257519370431403390156839411264149915237466687640491653090524284209095957427070104328940028595284498688777582909274544051190970167557664562892070582113448802805740943786624239690384733655925820281206790517776441914840925159607817353272719731057832115862977794460688853348450254128458902665601278588667146655965088136949359463640486645523783620678667533620475346930167776107691280739736121427528656454583653412429663522773616542059945898452631163550675136339908413665763004720613185946526306188546340823937183094244463671116637831576039965163977989746047663668645794581649281658351274406423125841993847760281129765994403019797112224219340575890745842812030163181578796983691095542550443170547527504428200956382671359991436934527743906019992495163128406414369340634679370276589470650246711378869909511703317436413789179814740155514661094693054579476879118188090986206654193077995015810753393371967946784291105491557977418983873918276653317898069000995297015774353118765990454142048378362878719893813220423400829068330092883546329840170163904453355649148574062729778853936256746273518422364138618210206679032043963761441601909898906756933939279215487362638113592677364962919804408923013687504785030783421519496072505278854431316198915608898005983692351176288299116396037716979771127277191603731795438104843838751120802915756399681325573732941690987120419841131315654977424258269372102609175163021530615903146003328773971334284897910856597898129162880583167307332515092505296899015985397657074380022920065510071671631596147918108158188406594602687866439600582865372740692520026296828941309033428442413779181083495889147745835979630960183218135399855156420293527523113657139290396069293268154830983934349731361183992201565963155594231156794025092109298858355494181947432207137108697210085237660755273637367428356868617722859027672301040589976571631162832236736109881501453944144630933238923271606869761996135334688605114592293848557956812976086355132467306283777732051714601138881373306942183016237882520720826642559067365519297887487135180120449537020273243256696164997574051057408329709685296836435216303070391429182141504505948853523196350952615053742650137697208266169718321308207313324363646475330056923331255121733026652347407763329433549093432224748704606934994622272299985897154180828739574949695926516032335638520594332192634741747375695670896149475412460554220296800776355823343233566458613551106892514848731642109293567219487613881496240651785887007039224303174153581482598980440900042233777391019647229497961737865042064718070625282857242848258351365993486129066780447968998631576994949182668903850034895882148277994221983435860157926549708012139797675773602652657620358817944562969096509395499428988398498172844412397155754920406752316759382747904935570076786026550319257955707582498587736952968040913437329928678475981786588434266832666993529328146839786714582468459246303578533235735494552187900617079566380825504421113320157476652929681134643848390628222980331945732302926960429978487623447312700754945729526822344695311593522005872011226373446765935531329566861876941680956459433717280040477936378314102261548016745068041997847323126678179401225347087306498248343501360704832151595019441419877009607008765093750073951800645647041015672575257404168563541375792259691730885190249991717672837709457166949739694401066189305555147052689374430687106443149881312612776476580462264814176449029226303480283970227675774605985128321977494114493112643627173204532762486677575033845111712768051322153300156145446714678448900169261451672678666192629833659782112777665799887819443428107479372890976540933695372299719087892727811077702603161945480280054109909649529294246015559956923459412317803018696493383730325694880564464803947946018521455519071710605248559371657116912148893145429555425849195355924065913857342319656358449302720499239854329253831351328794133531814209405297052873969708202087391284434581318625136601448953437339501108679877151319553301516477329010942633713419003231565692641709506256616898852955960194052786901568470546016412153114936985950705907381060416621860030673648997666138311836323716143991482069371722767248172501404429223948435310954308746646187616760069159777090529316985501355556349088064605022310381774417006462493172447188089989890461735677508422811400708836668849741322984040257873117257068434151369879071377172147040716851772891617021735137764607875421245945502926213842084054283379013588718044845106415311821898598355616339601288931484266417099488008838441298109739445210862737609568581073281934291615891108370849204492059700359808279790796850252279773597345332525127964517782914434117056874795997637551035480415631407416705831682246613750460169287487842650021026841941591151935943469892167569672125309795038335813134624585395477850287948006794483936461909427174295934402342308080058443538277716002355544143490592650944926033023934263188880137155244956246337425242045738646996965452385289233561820912554856694404815901154161462730520423577634926829713357942108107886248626891719275320836469649460004747705252815504789038542740609181313955067403761504896300344196336265544152843243696595081413732523025293551646661207632239256508164208323766335683058009676642003770263311936469551892214013301924571423978454201514710195243437527156091271163358344873597997313333580884402393424259976142615876453787381099107423160129117541941313667927547463746524367746161421428822007370476006867869253180142327042944140969492458134131975458636629055200171448463003177442629417459042612590297751980559502476944366911936336116751453228691318758283720805298922194316114353201184235450130512423128839725498615257646747550364815465524762147250567215866666605814226308772311925980314109006579484792079739347845179209335915281721738878831111178013418936974504995001254297500391446619316792608470787516938404247998989602704178727040676816868885760826303321993537556321893899594765586942222821757104574295901430109141635886678823936060944304896359615078634434983906107836843693045711657136479287402690936392035405872361974593588279582018745522504458336493304903607205229208137058368363503585582096306794658706288367656802863162801177780455935638032763064382703361427549364254592947666212384659886083319283518034587132969584072909126941618010984946116441017735848343175598658157605335535057327775830216197821953847095926177734953446495840899727737465813038085767767027529051320527686912818472346188105120849349953991933846883191981663889646076510033604257179094580174097340051433911392243098695391112906768541906613955083791779406774368614253587622349258237077579846261478386495843066602187322905157295031706512965647077950742236564798868440748708977807170771566466815128997437874599408760293819299313529209515207008385366396098053256715744369296374766270410374138560515002513599872716959959418297174090207590894660592479166301315742721237989988335685308076731238639230489933588905410243936956456878249564186709439373148513363224203292835691439182567010572195799920158218079851109982337214935650253169609899956720822277965568856551037887605212392967376987149265240980281804027251321357017165160789042948886892576609744529158345202434768040612917153724767891082090014546159438473470945330131970877409445071183301193859408267473794905442047666851757927264795493595553891993997449306967115420126227311882181958357302640561948180192258554887535434613483979312804052351679593857109472561131660293944685261275297937561676567747045946969656543238175634249015152324314699539914570193013383031531801478603481378192178963133535959792175024634234933098774647443924309440089996567639864322168563596318238029380896909841865838131117110219169121164712793020669502862999357523235674038537508705037929646202398950891362395512225604665493767667730756441182359934453175060815049625066341875061581384744663180859019895118349814378887066913095852279959737151322155985319960686545022500933665991072795506928559816458986256749236793866553996653077633855760652183681505873489568638508497715604410242478884481025745495173036267546597219737312555891126005039795615816297497322420858897159107819518102383104226426450276057298041152077215512054163091716941287056274671284216752677479829847395018275731038825397958957874107582616204064473483999864188960507393624084429594421727359633513155363017604369006094569279920948886460163291949862690179320001376817199560922300834765820018527030391606565917959759666636006999467281053478404996580337443295773182834239773663563702686637776836462888946209302357376396793924592381305096975157080418850484283650392146556222447174400773907920235161101211413925746790604738172334046469223684273084345632947144373419584741731166217855559899343160264670177884488454657996962032112734895914787518269801372746736243001311946714906199949718656773836466522971070540812644613359532281783096785920100198240306566001242842660170260971192666036647065896328514360453610325157201581944562298123252397351079787166689863716791390286776876085825296904936494907962742886494942687581367206450800577342639372188952890853373238679031557949376279317046405226482820684756859950268444321863183738519961048601739694451783719020017137823985316373176640462540364538752336997521924105218306402162878945446847563888392299886919290384926663296803593250101991597997174896104288933183132474398705812144348734780201375679529688640631290399525007751579007926730124348709643196554261677833093571374019002375759050569921419151281231486485160624287389335088212587955996577356673831903279737248399239232792288364563428306703338869561204102376193586716884924423744003483132383299539885909004998137528042927206171592224251965880158537294838889342409672229809025418585176072944047425702334252237587465828283741391640461392284422087321323006406131301727949499563506532877265777913346349415099709771831829216098270627775045563621269246185821269329816503716490593560880944198855346635303602865350693219574965135756504999245992764205967381173011921510049898076554040027277449949799872688938986868147722067586217014678536097479472472144355574888892583780479226889392483148308885395201846724344245739818847146652183834717754776236688013005240511588417724467017185348371514730336801686043211066054901894974067771162653205110811010219223441693974295473663267599289500348196154049756184557877920983398265289595419867553937669835102602174502735522758237689008102565203110930135087670610050524824152888851399146494229485377148282954522119577068427290490636375184618188987792100113646353394389338059204290896329865882219514599612899866477783400095596546596923186202932663993823288575594140521759899566629911721872890617208128880965098603342217213471076673494925678981192399381675978111884403008753433766752479076568143555834210537478624849054629274374420246885620364710747458295804108338500344594261276283031761204265157247154577248285531190380097739950041657820144138359444491216454978798139445340713944412140269614267882309680595114851179923662068278676797336900744773548480022378754434081626848230345230426057696063942363845490532600509908168292103926887008410430965548182419695272875766564375795729007382762650959715192217905575037293372827128201417070869118453987462617620338658888432841689863792315911529208320939654849069521457287106322673200446885180690275069260953048690308014201078070993575620988869167171233586798770977186210098005489215714035937786635771561308504138849771428849740546564635893232984067644504110589162841215866608257321052609450337463583017905094372107193179658905942518292447002032770747754776802335899460996440490259316230682680423411828607372079044864894076125590126635633256449924517142584966583074249863895922751077381184543934963806827462706955225623863004263400832965903636254303296291907830009819010830162315910596280336949271405594414581702918912646066271061262170078267887788377421310915878583779332987442696549687480681418560363947642029167449253224861680818087832776866805915303634682910239840291605444188859698104258251597230463174360631968637751743098806728350812176691027268029833373001077748941235339185651864829165218087849509280390988976180862201575558860810070149500675959104806473973828567140311295061735565341172240353835753782115317858327195202346538985884932773496104813979086043564130772216531528402502718544241305016702684545466083270146082167648575076811031258587234260742667940213069192956013341809711644721738766692383361205928780303211631099593198366968132125041464615930337540558906829281049799718960986415832870071428593006697613259842167401011407408464322571247961987506778802037345832642996294761474282449181714934902958675149347848516506377238956591533074390344463225321274040211025197051999060714469905335799296000754198961684893922702012304970094742337658430325945379430999985439251833261628246649558180411372429951533066207753921077312597636889592399497448197307075765587354878607734313400655970832873205364703393757517681978079467556609731829537731895551380163396803435735860312716548163275934448110897092828684859280834264459301639655066161774013116985881779761232278331560558105157245043189188481485846175395875527004674966277748451223969260198535902975446069410422430967332778329468065279860421417108143875505338918274729549559038735116669546841481067768495374120462987252590562377345093522108628116129494748901323199871491110776370686523481782702334403534306489710143257341031385400536022331662637249654939207710726323276106031552245081411057562905903699914377635905276805030231010362042796329718316551604869759890878580811741963391078541965206611346724290954687748062684618272786128975410314817242692194649450237208353480983234200688169995203416679909323899829889836681982197678346267384827397052762903313853916168305335136607349446014114541542021381938326085952026380776967569298325214751452773943564310212160106633481398573653456937468936182334260212928749897102909502512837691253482087819312635818245718227666539927566888586402456159389289348021449531425649669370344448102627449180712745986705306475310662096933055624321782127864608296681083035220543302091017127432552255387518084724482967468425612464994185200312853757444199958279347104425104053119009822851636169124250999094783791138606210731487999869554383809588458481408850494165511710303549265554358293210092064629835464828486892120608175136348757127976023297213104062214990901630854930260172390417833869842843076503047436025285780181397202567526648397599085963641596700199860020728961870254434370056261974469149758495085963705803892914322045044211021242662922161307833224389235064091754544574394027789318968046517909566898748493105181707909775920411412193343616020339850738477211429897855815920992677492854142860893918007305561851423119903377033501723924509672439889616142584620684767960064010163348691476101267080897485068248433470823509425870611454417483476110661968821792426516096072857080208197082648314752738537532598015135809782234112393854737542922379341390373540271621380726569683269620390137337584820280353315035814997907898295153224131438888236698002275654342338012639640478511126765448784186081081293695753632572394303053798958775303714643355856267000395606913950966267065289737516540626216945370197920194412950390663612768386096864213314591165255856667296039199466998968155178095301234676148140894197510792736227239820087626731257761708299787680482924043643846231838122833368118156354185839947068036175763774567002949979010422067278548740235474283004214178672936290535645476299107196824569326855754869252137292123590432736895343014615852480600530601465851163863915449662962044636012899352771469040703708228139801968439887576321373428245017992438553124881162018559683139322617633706905167206821076463964006530286941664460877058976172682295365276811588632679727545407437329659024628853591719505639234221400986634820208416095487044012576381276368902582400232851912783620637865985030464204420007324127551840502177641056671549408624847955136983492416939524247501279649664360359164982631998419879212433938562885464154895608671819020635284832013293531033478324029005483550076415658338354105735497911846356320420997302039418631802323912648974523910558449441521345835962531066027385753708043599286240526212672184596553932451319941987830820039085691582546648448955810369342874565203680926919230061794271720807604044883237683590826040179982967746456259637443543123717086350722692378587148919592785132910297101608703330746825149083262035477701287070002960184335096581667956321813330185096217920325622847102147702482115707239489215387938786281498514525319490123864524943176073830116664051078705709994347672296786091908613865671766585461185091435773501923451124627637265220156299457562670403163123209773276633503488535145372372629263607970297926565236030422416397850953465124816629034933754859624410334077650294755503494589655838681769981100486186894599625727492662502536637032292238025549724455606670593055123296817473921485222600670349203281732742797863311262488698949834461701878850493051048939136666007896257574951399918355001386921300140040980254199652648524943654531556872908932675886092937226321455429292417865359024543025676234490951686267199958854250783344869255360901885352012762857012319414813771585806564874883050965916839851751312570912335527432036147041983108203294294731260891102428737627458290000474686235804221285088622690350770437652795787546330815162635412252711182977703613074163684865206292173147794026348429721140400719512136693060786234654722034501748978780763361571267386829437559979635565432480731704266830001584787337194102630110711897627215037064599725019643800434277684173482745144088895152853954202748469438946876651628364713011346329999039470885558978098832406685759057204402808732476001921213792334378302105255642156188678248014121774039647804198028915842761114544054127189812523629337249769652148512638787106144656582112852184564630444196578732412887236216656569051245422163065077025367538269224277177509362629792009290589723819443241418395699749307153524954908873278121768046501801626195243047580372173138234553818472419994508704910329036483892968258570456960550951586617267587976968627611365370841948446991545627744690709045579349713113852277918311799332112383033272915353084454845546961960432867551425046678072932477200598115186887182107036308167579533959432482431097638165842356882042762018969351928054466117624242244356223252657911984998966791398192402469110358767570249793802815338042022368428367183779080554464613733421320409457310604601556986417097558252521353050106945954101592881352494617305449379638988923005881824385252778487106071970298670685753476638392367161924608808499133102185761820565679871455098555648242381471172345655465864243774061663544600926883379164319349928078587048250797372071218306221266447711263645115690479577592426074705359352342430507719298810672745688499158375450308928074443819450004565448190778037814218048839531605481886855639497703761936838441097782637907321279259893474897275123188513719316894597341102425891227951215157798040195834159660527390157974334079662905630061826549319964722714011608712484347027871010532692399169204912105440222490396848443523909094214387683622680701052296295129509521708542711379239194997218834515550344491875639885334854020172801361351732503163550381765235713279310197317523259070697820070573818915838037196630943559876166417996185425980775986957543075376661657795693672995100812290043884598301994486315371023380148978449509202685492377046471199311490958767977723609358316049370110088448112040178964863563872131604139421906025724836732950053451202693696275684302045758345888332567064411895020103843182912078282734003059220395080378530164958362255689194190653555543813299567535400046368230786647169758477752469112069117689054069647272101957095465364646161778046246520577007016582697344625370623456565691438243912955186951021404850661596164579306658102442201885700827648485441456981721450935714589415163060953526478528328718986424512170595648983604855662195369907150813700701733192172210419292763508928737406347900334769606567966444543473013662554567720727385828664026747266559772241092487428858782724944096507524368178468989044795398328550835931188531651557130466994862408195634963430851845315585528674026780675412657679828433968336589514479530196769318596305207261946207926947784035736573594578777425668749883090589157014178187356224493588685346548777858586192646549392965581981076845103486090241493110715334931506692548274636826438555631504587507856108927118362074923352746702579699228419194152530535532181795566092585914397367358105773750383537878333896710432889136511797898182890987896537747840169381387928315710685029120823900400480254760694770246713218674910859123840081367876334938605319494338063723915876755496498836681713763254003875442226771556487702610144288300185401526591197236721821120354488389622151738366463859393589933714243160968766649192104075960711218881779308625816675204077161544417497087779151376889079079691018496670753565207451279546618033292761478447496920328556275480823978681763758844938616684596317793873379012012586214933489778747938717271199309023382934228707560945998067042249908037546849359039073553643946108848473940280921317844761562936848766635805799744239284294593000760429301583671101273434914931527424706253579584227570286390690967880925901763367619692725790019542383066496970053510375518205942468969248025149727804963576804404016616045801585596987850186424759913073194786822832158259617565968099331123680268477878855388417899362503854242344078828187176770514282484443349247709670911088888060181135869091495115749012514577595099318823236100853696112076947797122752229340910832313662785091882835351594795677911181788250972889409717791561428089371184865236932084942149417451279398002498607976288216855445671710663972668221345175230303713693621333046125777407624188170061113827444270834239584113445633784011082763880396054827088261265105755185424055082579906880281807570520592173402816713990791553330470093951259754241088036249369699454248570197644629158417756890833454765481357576092068948423387884935910471898222089896988821518745301567178989034155617537598434708279215080050730500924854116880652372766832002606731451413925654201444916060539173946025321579304730799743299136809679098886655693505742469370262722644801092391737921791404087299302717766211641454242457225688295861040860127610937262113838683228728955748365057212600719674756335157659499569070873768263150537600435093389498207148233913998234324296400347901566997780232209282273178543202493350643872361767888953807410695991446553915559773020220072577439395646165960540222552210862081690352228218333709082436919944006362347618495852595533811586297199506160487132013312989946076813160249366205340104635570286026284680912367379501497159253343028664044931823024413196717470528399669311209808370786018391336061824431982732921614963617331328519070340273303932179145475069682029631776546869270831486094438632747106845963510107993540706334848960503584349261027627686028083594716503685801960703636038973081168299972739320230158323100645942009262819417888899331465808745416819039086744795992252966768632186038419097479466840280501525708091291538389299122876159619952008623076141371618460422475966073643154370975060850949749954027297483614365914535868400415606177225665169681393813209321921060503281107727732989029009390227076394446656456991079251513131962157849501681288329145993442648800667595797463860115245287093380330207654422778710391559401811251535345523761795498027679286921428236344807595923210533018836586957914506513759474969592540905108722980890627590626418969240399803700840972229498937093943787916751865925573180461137962525060118014592814562418309620831514593993611923732355570900481220654586203283582765802187019675503164991175471083088636484656547698354989767645470642369949691122556165521233969453386129906017704007809282921695881545998965679506170686699488830708288679990681362937656114455069014180962793333455007471076275032014940040437112755432777364638366631443314160680887862570910197748315050976912405107749170102561560139280478701381965974540639438154353917304518914432044808055969576852887184287118635353123539109640537794683934117555114514702188608936334641945309511905321589526621672406358402362607849590684527943475862092963120348164893576942058585155676289471886182055386551047008874265644584703418453752343330278798426082305649615476260641901610771918278034975309935432861829676650539586645095901261444888406345564467161805796719595644102421847697465574568395624275765987121218094983313198604931135571960984937011464570531550392897355717260509966114475735935967545388515128987235145161336448555204932784909805876597308806837196311957305577567374793543044466888804168436543338905276239215816582345107430690595361252127429394990816749951075524473700008134590972993307850862606961597194846133387678127609252258238623872311991073406076411223017203604709887620700558322925362748411612734409093868667834576558581740578372555349005454966474960904013982070202708064542655613433862544844831434915125811732403717826624367520666110824565724737323199931955073262006284540078141198014862814512625133849269185442411859574496635365550156650426895669701743350198198297954439553092531126946075882348205474706942253732611942707404289586936951216679977272229676745834321785285785959380591211721550090897477847222169835900009111760029292590726543801909520641472760430417370894610190718682362195423322604003456772409087355063796887655177192472723211529106796210170775624951353123970509130919366910135572605632844971378743838621968972170571337483489848439065991131336378838845269038290557467259589732984311131107099120235273883893045158024082689442701491053462448415993584304443992603134623476307635337450270867458934108837326945431818915984048422864449304406290092334622784728826670743224034721693213336890817812533903545784710702304301515263925674147140288928008907833030501151044801089541254037142409763624201974079129214662695192812583441142161993387864331402912935709132139887439733118813847812197302480634128175150621021611620509325306274183426647014570572285658858442361448190965059931194554006469073153505661228226452853135229332091291130382495439082327381434744423150187957039070821072669304666534793982658908847167874632675498403382090669228125211903639888402927627170610325813500246667758373504790274154022665950056080984320921831150277667125922900850953085796801434188911022335680869855675174724489161285624740314328678565656593437096510992737902974714973071025412950312473228012541526550936820008599253433264685822581612979036955395162002296466546624464239425934361261302581553781543939586279978549999445245145867227708848068248333920014332675483040954493867608887376798094182563181639182508385621387965481787194217443292817967760834151756787102471812692001041086637373907472268711612449491688115999451059064566141156058898431743125419248130970948333034237406619021098761490288701707191904433654338335249920565782854457853736508971636501869863597597156726289178251186283871080654950949549817814831594814427809452246455497640407025032385931717156043507455500795132254927117422455084613557900564602880848092599902717386885620333282670623176157179980866889835146467588964121793523550574605625183236222637857279599897153133376577073364598456817738290498450009532121492723527679986998612346605346853389813287301423118003122686831551273396786222763582465630308056175518486127731714664942739044079920296181285294457310363572801922027090185926770236830601200255360724471826345982950153271474966154996829281123795150767273537491324970596684951366134813722454427272306785873494680927441506074017102745173999234379398596535860513945500127670387393193078041435448646335138863063059681037177714822484162384653184780817089573423936893895465938750630587116164975779329471147433718533789709784433941504693086656528980309983018509645854891827115377665012729026953588438496169413166792499547049693854745037161640992285744515179527176340403685440980184892888642237595274284186093175330612312023753860916329366007720417058168068805993173831265771628570147026313771149327487391194127648285726552763329980810978116039776731670230538399915694292284455781534639680571161004965954712836490974334632385586551186379179212749642043550868987683950301444551197386127970622730557372998813953006249490726779766884214506810984992731252012859649587634638425458241969137860463438344698974656584073090904618581710299554962962875760412998987843345944711001673130451881792511676974885990270554621839482056960230223691699757862148511930673610888722106024799812772643713966240086278458712032464925954693775098657042181981156323006289721867715078717466128455722708704086075210524662268892123399482833988202891070460880320609925931101661043249429193022249440621597681577628719479755811403277932001101146488472247204287810079928272882046278768795369425607245324065771578952879134127061560657985222639315862184662551857738648625365238544848824406951558509179614175439809760649284659695299589628862973373508559499550172258370771365536082703652258511926185814682338656061943639701900281825429402434723131480893301077952573129095947406062093386525784294267305846727334902283686818729057988765982566562492818987206460270698790857357834140063760549422715151437851961555173078435305455643354664503132453770269152506036269016952068260838360895963979959689886985704702066292297119500302350854752952384741133110478904068107595651308226136585047115676610408392658277926998082009584398267874906810029569058535839663892928209609721322996545622135103834370542140109790539017880503825826035425695287997879064059066230426415852960836184575955981755640563556369198153719700720199147493115067486338522799903538695446431563363416973954148206156443277357769943008776183617786980938538560564284567277216417987705766320013736989914221624562174302312167051885968131146982631866396697511352632618182820837280263627956226289962978625114436657861299300805039483289021463160211578514178236358956159784185962461875265154621835945245130783649135065415708851572430676290899950697398102509754244168881410440853045924229961149418010910829502463894135761186646500604247519094583516104271267952654680755932874459311713196414699174416222449365759122932410987170409248389429713745250423424300007811719769936028893634313523739196993782208021625063485977524283833309405468020062098548472026135423987692713182167020345624123289128294978067961615517440329291977065946521912804617856349348737242126612485237682944847900903602333167895519876423804603320958022706335924054504393077639667831471872140401432922385046011912820579500734310771171481241233576791079650011947948541210370845602844814492151274338754937419727728381050967325301962713203928394331337474733483505479611973812243279590235708543633828473264659025383038556660932329156729871917794143748088212357288522635886482206923814299081866508423769908126603101543609336970739845843954007193923545808040509287313206311914308543499202588896473795523887728348692845977686660197057807897669706609584795449188398824403323350702387815219113931797539483577480281789272427149467449569334812215473138733657749725408016110272716390756236374408420598034499780197211042039946694150637074354909205579728137422422813774244498784600427275705978127088842150117782200084923216984828899966825448945906958706768201262103141003707183005883123120696488994681252456644131974903690577916882526731753035879060485399202050808115781998081510089389968722195083840702662349188927272084907503067589287873542115779764933228488020799673613768840554428101494317030315877796198578351253458296737048286824053755929381439831835226410876685549907415266497716014331211345922328741994297507779899755960668126901713871666321374666734908791562423255540210623979027127499044744392321606794793372749834058226197191538624438334284455901914219669992670171830849627409891308860212094007207382724853476426804391243644472484587608107665218346862704622575999237665200597307399453762885695849768225662032235504750547849016041780585634096357689990725139428892743373437637743026445292282086806244125283894139032392859036318205196039562610115416066344822625651129600507317756561152662516331370192851064158511183079750528755162323484545206767961269469212259355101041884320709180018804663849028235412502219523925698861185486801827795781193765493267497406487421482569917732894462820710819234062546101681025110567778113965996962093347910278008877865197360233369102282168028367244724487233219946841020086844474545451415333652103994674855833906999663250928158793059919941868013070945670057630804360963160671367383410098870135887401831112700064003204735130652753823137724252152864225164492777243273015408296011735891305654744134166139246230900939319680649222555860183070408632672056369879453347194829976535259818906571343168393368189097898615826446066125443378177255029912252873960532689974722086195852939478392240774491706726420142297277630394126462474576444881518889965982292769103509596692077207798429188829908903493066077444192425354371970331722580353308668676228536853156596431751160524578156477992949931920578457733070461126162502355839629544367508089805321668207608842718260147013121717521556737559456537112643627675875698861772801368014582721200626080152277807651809608386534961128687594609620025968743885488666349367698264245112912340951073200096687815859881358277957946648540683811248469652495308239605862207937278836738652142076553703633756560564535143073168029518194825282837940530555202109725689053456304161296613995028435608152359240131257547603295943346741060295770241851105254587043678417568071469882990274137340922070421067974556359981437732415720177114408558583287588836280893130913133040298517234522544933840768259408104421612839248457820838851616500456268468389816708255035477004092968865197158680673410435933044712589194391835824360874972129236109871525310834686342119922952195306225881905513132091023862987613236504310999695474362089886559845106173002888556203719877055927788232176577810994277115501482673138124506912990192575563751860011028572626659103617769966717579972314521630611989735078898019324694559097965951777483180467013731905501508704891422408944761987550006134156594615050320801022006661278833932374699542394428891049996772362882327761729657128764331828695746684398784278318693091840082612569281848047279581540434247642294076200175699498864648694373722846318602077603152634930277142253604406396479656835114567905063098094237421715627779473920303507492196834055557596427501677602708579896026822228403279414688318015378910241237742633560205945113621357400700599985315650102086140908142857398671695534492835995511080169662017213967970763258717911805719550819984850468530336501342226600096914074456707608420519261425780348407840571498211943009983808269655061684972003639447369745288146589436959919404464341381868235184558086228409448260119021983262431504043086319641670279292499494988885378770261843249129852871947994032329000911439728258064624883575291216309174974880676359503597669389955118337244854552546419448020386076536241359056406619956823121790911760342722929870683602969362617335009332754095716916602376315123625265827280383355780734502121569914013363933881753964312888236208656462555357260911157244525403598506070275145167821499825904705658196667852356090887264525484819073541533089265080262414220220642178187197985254720744906295962741238566994151379702669739473484199787393382554409814624339510528442952909819078184911614714548046207876089511630923748821542722793372173012823642198126422358048147505068512473333006914001355810060126111669650879631184933298387792998662442791726061194473562700292427842132332652355249864674890362650545330782323598338231701233420366729230213947838850979100286904575154120813338644365600863446795460022851413478351376469050377834814924560044210667131973010520258441975934334290308873841878555799691892750805993438037529649616739206321665971727266138429627747779376875172555690693041679113660115775676234219317647102706266198362504631324505906045177089107537305608778667397967241852057923914910069040990263660986118293411209175991308817169028305132031945992156241864422292198771357056353183000850787445945146274799437877613550055474045635361035097943464514820830405082228399008822758264604036699619740729694999893351307316071947834158233098700117100346231419858994779385532674283468998284699729056908785147266902648098264172374578661398119967061116192832316679727594758893390226990447143538559533586036578386376583970173930890321264235937909355638822813172961312812258713628323391732088384763472267743532000766465544975840516869031865738156804838221481197087098392468646076754848943479283777791137132441464017527055857911848739754426573471988192307573727397509117475198556423231294755101470639136379072690012294008647200167975752031498386730478285435927594181415323788627041310539096495730758146935563745118440672572830009733971620144488481627982679690887065329557722143014902282633187113203905845972250093711636182876195926318492456269683604513169475398483329111046085212390858863201979892609099514682726203135118564878274501132444340009070971272130520718128016064665226742134477197932777687578560019500301874984131211250342525631184699911008059463542194328607296843800305150220413122286792139247452332395909117657862148728859354370947463412172951071198329527159594065153597793789471969392260121820805251874095712717574334857485554350593793276152304924268506490388485656893857487739544791603798717023689701761160992829108859127885537784627054820072690969910715084885194686883630375931148533181324941321786545575374129745720496244094714163096803143002715540790025120677850801742163560034462258876407158395779240997232160655167488596532448889796304699677526017802877142403700237602225202141429640947362637657769043200064568693415612337750936702681428134572566643984981942820696177461781189134536076039510064062218763781269559839870534309214992788171339526883605915781356376463117079256214299941629281714980342015798072222928310561642750680719705126722785621370441139467205871796014466263645179253629484465651830083499767404363442692620363539012949061160314772727126668496742758687898201592503633840832815990010044993274100920361540147001397612465921358250797422246728616652186579986467630291601616648716277517724397083859132971238926854960988361523482526400295188759482030305146798817316300833086007821829973355194697156338769468496029469933202850748703838294857241972911354190907412326682049120267483660873532839535798660194276091068622520149535481903919207074884634008906525325933679093644575347108364853595981739877781760940881423709992166576063069464321013159167437586213145635784252766241665802799961857774229972200619334859249809988720463872510840562697193372081639958096406413870520169789371434784634608891229020424668264558604825090343966538448939977249657604017625514856466054635639089570062339389331804078499377957973024545221675615918015374657486810893345050060234412453722700117096953404998314500340899625030202130946240996675077643768125691276284761425979620872931536480432318781229576956679061229045249664754635484650877084684116117907142569423712783156398436100251093522920400153813367251034463955106343978352773875056652188972070702382341965309487806383049761805532442528669210693170635578587932824979053659344444493364027432314257086680701812393193787076405306719610492140839660206706144274721226864669578098426948401159741203820571212899839884684529934977573315079643711292107388269764839812269154990894374488019585419613734019041959114213954403837306669923741667046153578414381434763919783449801269704976750915150943923630656641897605416951386364365341978230910433733085010326384814884270805721777932566644955273681022151989084560329491434675756047713363792957818550546912449633466859745381067955122919798191027013630325919941195662401175633917461519703306778642761563200026515287811728019232074042104452318952598403912800336201368180041591378050806205363434490712440146429609994933415507622111944187560784692734736796090366047394502216209382735167424977421481088392924463900842810980099327140780027398133251189601412214814450889162686046518030821837353558348072149947478107762775647714801155724613627294322649222274978723626092622201984420448685076181051617071359044004795047464840610155682563826029243560204964040628447194711733294868022244375091850494163279678372402516304840623678185920908376849460709677804097630976058355164558094639161633065796231608241359428119958065303556498600189669115812865803204774847238663793300364799507743812374021971301671996150039098099882866903745189862736032400859516947410795987462579497399119991088297945559288261743124069309510889857050833111647247029619713947619365066706703053889932965124948325414523631323123830449723837858369921787135610767780815804675861980759957289993575655741337353823981715432956035905115710744055812946947723810283363664182514163253515833933760168411954326487162025650314335875097674749694892621091943426606744342119614800615132848482297413459884189201948230086221315628493576854679600206336336871100381104336250996902887438083193519499989833435620077804200392092261116248055829091075413499949859113497868625697703680962762554428839852527817498735532132294139961283764535917760578819427801242223266935722994539636773165114178422668690809772152710901081295451064723047260775042157291533282243638409905733803086471929659415147778175578984295619634074060336636383310460439889615708285408208386326716032997694661196086505168408955515289326911770055866131327519499712456348013384846991063736659331955767846944671854311577477189232887084609027579993196459351059877487908568565673349380826335045827106088524153236113543180348463381501710958000165722263861243475668268166827748662335260000321603549386909833873652061075771606035491399742313407934202098498329140923801727854919957221779683768144857039280970359099638198311373851270516662637406984561371572659881623656389547806684863791577496382009675069790275286481811689934573662886324700506870783624822409352275980594588315661748928145520347427192541230539369186361431839076263024728442098469709625429858139298586091463875917909175811769376087980335943850932737734428268616777875117569287860259426343830568914286679512814258799924679290627292564456844197457491586881884392754284920403014661281280075224693396699185754678208784408745023364715027082302018879877203299757258452626325295618359561924524176353816310279888635682908276500053585350172961433403471050145363881163147596590481490205372703603393453059435142041880191257735130105649319228965850370520021505457061102798976261996003160977311486046498698214984654444236202296612615396787171780166552620647348624824949576974865049199265951007169004621209361202648355232684854201727224408128331521209351010911957284408817885074802568749792740332358988707658600537096900101461657736559222970184273060652719521911033682244817504236117528209377725537871044799229445253510654321977110389074139551160163699178833509435977173112891114173146083041190431472708607852481994920820000738830246441257721912094795857765087702909112808704511757699965514192557609874551924448976527878520471631527621518026690361077995183346807920695441722135925583450442676660793476540787984194674897881528833522392704898791522752114111713210378907211019232347092625680982213382827981338230851936222802081938395826452342666156458169198720150963030937280521508895192760723418064860033530761747757533535165553296206503780248357571100856170025207348767815664684887776418194038467561109569055180110532169947439181714551326445256651344433674154304608426662720569801400107927386176716520523370393679807926940868187267914159606426548839958361148165710340634341873890030946842574585309650510707425842736929487548279371624595211581673087868256974941710470142683376101714443349026042102653807232857548654311989883680458615223848442200803550537239837543019784887987721533575798955462307024237977471388726205364086012014878189004845028705078215837241539763606036509114938841386778910785283001452695135544920156782400875253090956577038720674664249280750168433209569349619009086134572849443075117306247419494373567768366811133389412377703355501615099160480478706500574166671644237377888090800713017422089942003533327563883451393717345237812408755470582081561099800870969215950536320708998399256963774295310840561083216899762226265197427895437996360253823008396873775399576324935590131664282009343846130278155049771770610570543988786635189184343759303167639582957614727679800670513550494726056010999242421462783147172348191588457998170703219077225203009084584424343412798595699669642513883453662157540363367810740559273435447272613384319066050558658842457111369708063345188398852214718080814412590411793061290327197977036199613366915617760735047975662458239170238650948535971890212585729967502980690313727393160503003151552850029080725756139888124464159196986624929684101429840794499306370289460774889913042967600808198535598385323274707597435412266110617849790871956196045262923101005019206158562994953980861479039750818334252205478617151732106038203323758657551579004817760981599597747530778618689073215596651226578873724084662859696011907425667741069331885979747002176305154094689592962857242166372382288945166123366954276925507233201561601155460129982618160964870663145752123367323836570089908172776279248603124456037200377335378943851170791227179490169744156977893277604361315059329019676016670554115275764172868505197989322071183639201666735934480478668747513587198760373812473332209444824533904405663118931028708782649709736613588968888153508736956810087897783079148063732886617335072341634186078975065873759903873801138391026549926090472128161166167956646023631191217554443118229766399518566425394814538850195753669985969029583741733321666648601247385648932370608097720176283501545323371455236051766530509969002042064989484759647852053285582065363944176527876381166936731299423226842507814934098760156410953368081073504509930356653292184172797398047353016933565598077667200591390189889695397658775519882967089271886451943220222116317918357160141181495745518082165587502405819025760428017456892680636562297432600665557454988126122373340727762593924707175905068964100668770789515104165903471228250203678404865610009749720450823446193974218335474126338386003555881301383416870752363895664690745735241151359131419373466533935922632080900915559892231676374202430269822479666736198185286332511594934911967347098513159396982737258665660849662592645590704622650080353036254996153012495882967134039041433570292837101476828974085264756809397624814317298446830227113397844646976331002775240150652489171918785508954315851511907871906079861718177039531747234076673996385811205694957115558509389270198827821663497740355053966324634954410848922233246071825159462030203541904160480303612066577835395226323174534956788109045459431182807611626545539792078262965484917594852431515324548458515117956338889841452731716085242985499158580544243105181730979069470136885798534754291460368573870656285082527195571642896420853287785633992827659536711414218466261673680204476017967651078810657308361171936681368272130147123495105850829808299085734746178589964697194520247052347028552147174696795636548122053618613997925762277299674247249400092346402613867405413152679111840971211933430831981649305438396938284682380667795786349475886333822456892868168942485273781824425952664099299083436673142143772849487505539236830975578504146202633879782872724260884110177394644888992633524281408740428265079455940710810545672571667619949586120696424909004682813674950594177489796596936233437366715944758781339032954364617437611873312151905531787451637854947363049059555130248748361996935544583979322441837395840685516716551985983120638593100384756839992897125020731662332460608120892000350127434975725833896218492241731171039169219169068548760136259624481347909005819276601434741198487207045784909751727541793797814283120234356871424164442558710183870123424950003127674685567832309459906697880022665852028082363883258458738901411720804608864466620244426664314340198841247970069074076962663585401441131991550305511719854365457342731440601768243205009938416026192654371890210215473635183953730344660466083777265432162676612239059614855816654158294612602822626535607649800427628203305216224330932011044076510670599102768962673293598888140096547810417583467423172411792400707194125415949024240269277096079733711020403784835475747710496261145546452994098403198034789803108167974826715767520545784369872580671961517795965154980388020453533902793664152122131425829710949259211451469859555666624590663640971029217024684766676262946374348430238428653784056477053920416266102110759515357753881204493224255102730362288363795820636098053846276361988330481077848188583687408665700783386964818682939026022751023422416237537203780367576319146878916158854833049598224883888336333436040419782544835708057358419181342576250717590368957291912188499058953787036256529340178415179937071358738653153819313789347752771728649179884611113805203166115484979130514045155708916448186544156037714633098831144170158148160612530924538197103126959948003876843989486105529739875866103665240682712364866564088016952293900192815232432258560829060464785595524909362260286608418409085919017171682399900553798531843124881227819429945001098832367588832286396339793801466050101180678118702564753686600381827782210565375266768528665369380029217458979783174686284164562389944514937088238094185243711507768891945415296937911791886794867772930834745176039856934822622831519107982455591669205033623940444224141570559798554517627872233407680597903275586231101406468852363316445513551116991741287812539341301070558463809921201632360420844447450743680323989026345960130655652196393013433262807034135011412263792697831339041532940649944323903748537549434205049466192582412557381384332521054757927577909861485520824092270140201742340129203669981156327196762426255071969731756015022291579734078943614031715154910187877778902869420999118358877301052059708270183121936941288013169590285496343122507978607999306023506502887513353202957480853983813961664460628098496430803064441773886109620306906052752756995730938659139749492126649605094840108767306250447661521001707958245404797319289173332637325415256366822040953843602780458003928508348786510552437355827232051058639471600557524625692936128426810216431936285222296556315947834952575609601287567986495110381750276532374810966271208955000454770745854638571149768830402442591531031580697425887166606728591112187366262757196698647857178968566849397332228430427911453919425257636955327879745117252149880210068788658163755969231136054602194204013719099185356073233361684243056182986536450909120130188911049553243662238633500818394487295497892902873018954363526634340814531379884315445164578439244383948214627131352359790005511087968910868595884449953582017266736978613370036959618499435407126587526280243873507386090011737341824944862389931794689411589284044839444402099419951507892289274234732143805335609663825843403731591051996871966046247727268560665689732869503570728657024244715325052297549552082445518035214431535179061082498655587355706159398058546461700317498716824873324685841885346773867186318587958360512727575777572606894147146937135501403614419285477789845449840354671597762751747925283641245193957702095959733618185237233957610839803281492399913851289591788542995072417647362497222809052345889454937539207875879643865723467742730691366993703243959798591829530040022211217317388486196260986812225693858748876207308885073915789636313125733812448660809303620520166331296845059214306713366773059944272831419632685334867904497610027075820166018682754525076244064927792550102956696249403609217894030764832647089469935780552481663913500211863549160050256913094111062414428406852547392634364068694157396982851612779939993984405908841043045252596353423709349769245591398980318461264341911820327800935837129497456786980889228985923502532698973077434005888464787311417095273201873460143489404271246062498210317418379506521092907053429734747348005794607100572576028784788048350600220619200976133836626760135780623475371201649796937431267553787208620598770692123114716648148323416674719687805481611137621365652480312701887455367821227646446606052096732780747427764106750755087361877427833171039777690767791059277650485589250254718253224391344775939633811004958239994991649248619554132617916719185423436471779268532257550777806607698472671498789546243384983474157968022756071655712953958449178418118952711046962586051032977523797621406632671641633199456972484736666910448949222065494735753165337313305437986685439633134032155919155499421228771226190617703381087179869855420411808730381301788764555830533020807092973071337468724243855846636397756267141986071417061183039779150659244361591897377392526613939846865052100806531995983214884053793077527950619882103700008329978624245767790166573779655536165395872413779476621022766419064599845447379348239658116904086087988172842590407525907436019955188214230874431284250791888814993328798712493983693935057924160154924617802089896102151460773921899577121314867863805909878639719857981286686469690501079277579751367115815155185176498855998520051099376368849035787190126531844569226961048582633093519235004271855010658814155939750749691090604234641295420109847014947098189502889672316857834423728860686000959887421076061130983465105713679376438203379561639619933251123491492777395882186204887208867595998929221337783213427963694211508416752854281902298907693160635826709049925442425684362923555049491173629081125496187516874113005921241902573015797259313343935148613087454604465676844670034718161107335482590880768234457650324259264607469684327986882416172455684809125330158703651461068100274535429105372983901299247208097332944514250683326773616001034003988281304961202767722020234647272088339729192105511483160068898601556780884336498064462192505760147968122098563717131255011386840635643755954526933419799820233546784049340130664936704245251551452333325637672901407684656361555812933036554059876688099733352370417485233773610465194621918186653847828871930818298111222380534941142362701124251121580014616821771737273977339827565806982014493151581790514310769193905373793106438917415695293799441911648905767067753900541487499762454902666996531643757842056146765243484350924611207348259879617172335202171244093931338094494140057357721248118393196989994293731783667199053041738139579009394442388591508514068203614940075438051133588666866109061067332794465337605401549970856003161130625127881020738879724746264513176493985125282648858970461670397374752387662916913459666588094785293046742954516254547567789527799388209168005846547128929141762333567589878910298642231900749891239772021574620547639585042105101748145516684076054748975506061866986051776347000015676163831135800655585433151565577069002869200546729957231854591437001635364828856458197855110373171975149228138551652558513371824788034444569674231625532133286050615118368303911183568718075077543998621739080334885556776573680324111513334144372233071004175295910930446444734015210641023643169031647522840773435602650969154483585494293501301342079000550976641012145396441284210278311188156957376911530626773615827556214857995956489680642086719494773725097148830366078636738253132557352016616966975815349622101918957275469562032082998558524510761462096071595345630256249167397273387094771463831419323493010688717664090920039157597088248192452734858523796048836934748632795152760730858176921636815826852363636538494198304859297043348276591664503053816203613986929180061503891302778867280542148676685350547679872587698386468952944135921015990166741197504770394151180852387442794134186299828459038349389686683462666431619115779424093228608238028988838126148541064606251401879295760817320750527191112157684923266138064603022259882452662088396922786868274882151508432915524473450397340731720074278007945708041069774639145006602115725955297197182579883973946159013952239216503575223306378647306800789248964409911004136331366066516855142678017072499983314726084870985288044944699239554200094203539056924597412240953843543687238861521128965629371659781492053884081559160027759580167080005169673037642652281450975278448104606719151262815711255288937299693432512809236502732820128632590736405034904803944943017945169445495395927427796256126239182664002941968059003034071306478786120810587558695009875039326991382939354551420903054817597878523971063460390835075771081476093615655422065818275933616047236263916251432048403609388737741791598816521227852018523022737335690426623358960241743058031410951650359672313827561777754715545355192997949026210661080489343015283275691016933825177621794572008640067690961043871369505098784453451832383210807609965187086939995798741643138110349316975740458511952301864654476930394706973355778670799264773967157262028770806504147370132844140591485055497445238416611504816536566264603426593940704804723842649835513326089715862426864414126276172201435377318979934038023653924954976476942369439613889325848302966487665492792910393608210392808867509753813683242029578298788551485166287756041841379710586034443763076165189239246865297045846303388817887328833684431027562245991617311913130641499530525315528072469758779090883810831376527812211277586640612350429917581091737142274992565087829384341543068907487572566723398079149159388766609013327640149276746296431770264164830002991939448079653738080319831469248119587302447662183034648486735841056758144892509979463980208174778712066667771944428369848324298932198507908429628924030034895190417073456720891781014371889885671860354855594897620674574337377858996178280315771209028620577460772920072808331296919864627525887337598273397119061833475429324970637368273789977784261786683230364489872549145610410585729640318655636604361577015641500386141514105574817380947301666721770535161247296113533899298780346834371366265309293370575073921778759427099022548946102905477952093988470616320628340920500939502871538585346072109792450245880358844082321482876984365778145078452718699563383625659279827309597548509888449449005522503251803347628402561189441530609649346893172313210655041098391170840995777646399258379463455467275432107856988979236221117661179647379550697736132651137924173326661645390536881604050057899671217363176585562170358242012540453751687456277094742579484305585181759215154411960288874133698317675979482520512832993967316235737011350602903555235909769490039338828369678715075123130096586427579550543796036212784745034628975299397204133133819811476135855109013168010754308878654233808158781316017941903351703028544394497519497042096698181755867868679517176143541222257460879076875537295838055293864534464478350441777310669823856390427015712980615364394131005475864689620294609694804235151001681017119548897499825971356233510368343387847923659974628649993755913097250619834545278269614239541925807091925467402559738863500197139500141514612983345810540914278473073644270692528269415249589639739205643120300182507148722594357665372182943748979589539431349880005910170448001514694279880512288686423771032866194032783364328018275552259899240681751138570141643879668971539109217586795591864533711337940994360450015301244839110766832045112716506196463440088024600698287471441865980931858780165540797163545036836113454380345342181203052614162378183374951910670944310862228342444203330395658827501516904179062883506019046676345487065031054795493227144526840998082527987333433170013949160254701971932461799121654499411526107477189859172960432617058156732211517421915654597212993992439506690020200973889563996873329995711238830602864345013107108628040314527806069400957086001251341640150598759438002175834038836254968895803338836063860156514723134271348846488395542509826705030779659712334000796448534314936304555482548363864575064432098006424900348416994712048132558826857292730664838068384335723524236571803335343196865740982368707489142142588522050323047426070832981482182157284844501009487294612114667355574458728181430921341342731757209124433988348032689263603431001784887740420038430244915682404449393822747173197222395742498948688820484410073449499680133224896300300541212311599346612694094428222895791849219946204453560471973381759937778093339136628276358962143574040580527561468648825455832780236240753664518621240180276312278799304319827036398244914933197055414242153866981265224625984177155190122314344569589153888079601514499139796659311369500375717709222143579967428575298705363898689000280481420309932357565056450621812251555610440054350688617698937870744069006834051697608732812088986722942522847609124423250218086060902587648546414316465513901437694716776940088902893533634836005092078727907566373961707906955546683355560550302396724946880054060917914569068593778982232643848217870637132846024986438671745996982391708087239874256217714394372408108930808454123949908190805035004283949764521790621199155712831678573085532762117930723631323622601632743388488198895223796567635721110679543119989919594072083333524637291864075296797981857372906884812144526229863319304057263357142044092922014818796573835019999842449196285083907438137603213022896676877964557140437541781807756267995529192755900126501319223886569590917074598670665143500649490367113769800086998011348351814668033888055044017326175100553101295024879263632462473321521367785833443964341807545911653947120126751225961261305736690406883084495965176442266372470790391354284027153700748682573496875162551337317693634974044827036738711919763971080887952621491898772017371669044037249895301174928636554912506942468482856547574434811661198753291697373228571757571645712900376760373661986217827513815614734730606554121679556422944270014255311286780521421467475255929972222583493796082785266442288470664520798072679998906650618293812842315832696410747128511934557902720813081482650313845108350807983045228521946103248040288404436555959340012416023560483878013279333290087912538113729462447080833509241691942547818152821487732434045156481098940864745247407592686071360260600743995148789431775983636113854106727459463661998929865564843483875661957494584676615754264908340748824286563346024315562709225413761909215755656895973336362435637477789279073639583741560818650337308007894317226189299426836526059056098485652823590229046431980575646939162957168830345943188737796938971954451736071228463178707923514766338120034807442419791863212130947807804153514621721533981602860091988575650818637541389143394614510435786079553797285184291268542957735030211643606560191638160144274415015463047698927496597766214859157250396352265453493375926959889765554626319502619717614641198655389794064263254312424776728182687496829351009842990576646498983484449668584642574747716383648357556888931039975381438401825784943116676530457268000237188395798006939061621001619098286723188136872180638930915573606517586410476968848508432001872148626857369591784734056305045166372937980290182162829736704504837829473496076825093776712334272541150054758525141042369370037580692941317035330936650523543865421207524391561721187422453076165877839449995818067623062469953308361991892923948984065401964234338514391196739513507420410707760749482934842412427080261363351116631049962314987333617049031407292025442723217400543085938554152173183326383657369051554746598239718750820730115363829759118370839905608421980330115871076986189506887067162993875494547989477164372092953784304956483906635138573595150554122140202375836166035994252357640170616868415282929643223699952328650240385617339013524498898950996682063715202614287625027187959654983116120321230652715027448194406580853578083934824763061842407859958514385345450191050141135071918815901276210666848148230515301491442318767885551514558408443566885297822432893055040915592105225154164418992231034567273310082628578844085497224857006498317139631880272054263721664194597080090597139444233488312103528573445269722902146548288482983801781325781113502571680197036017699076293898744343064782381131744100780871004213570499695162611838737587823524241494217576894324072209471977558651840891334592905722620345554780515875583033157533126693772263669643645651887951359256329604143233858900954958451830975161534067148298248383356930616852634668380875859592653514257213738118655248345632032128861459870124047256366503310700948607001325055170057639867327062874682556220993902791169488654817378302716738415990104080441789201769780748365859014789352073586488121353944294089569032390583374925247058370783227870829827101663338830374265699440405663687506224265345605074539748059969543187782021585270982454234133901870414946128348795742698106919048130838119543284496458943540838815210605929862974093911603225197956182767203164088539013307618378717154884327667256545000849226947876165135966697171903754713488550060857030166716633409267126934475648832088088197829409904292412775336591728856423860595450453339259102205132341023305131405874382451740344957107338154295077515288568879286638243011980546765114841720500859945871702164012209051852911450086698733552672666312331782075983773967983450387981494628865419779734301573874212175351257945289986254939759821027870644477271724517644482770906176848229830014835368795797564805509517757701738318492676332631195044443017652011866505846512198173805381705788368279040340459972860330670979030457141666361595599755289819725693235439252440636187409998600036509465145171837277479200009406047987208886248009374789745076690221450057194339929349279217075073931955613350021818670598254551450507681486560720172970517043980301011323709402612900377392715301353491201374501863990988461687967395118637698678833446062300846909398230910905272933979713394877771210787694167325398678481564766459829817018198492712923654826351196132419804376014332429548656191878636213209565347724943774132782875721703840381438343060299403954273029261773595617270481641418531993340934825922353827088990889313415372264428065253270335348341791426095580692888194100782152387172338778150317527089488072162442524540482420808979653301109854273682592028285963977587445443209715282416446276340395933351844003727371892543664943833518636755516787755483785467466718872543232073815648149694797930110677065337334363522404679569403099587271489853317658949352771978360954894215638944417718903906076671267576599294795742547936824539021938101220580789624657883164185374222531333164934646183824157909934856366458281930544405303995842749049586625265564630311987437272605142976835496918122415994472581917217163312869955134445353655153821885538779577152058514369380014078629257215011004377327649604756656726827400290426498738159086530986258192236268572631199387040755856060065481113962621566500067474910226609928582479235675713897065170098264524315353606530709453386697514824439365426838918519842378952916016600929515593835903118558921253497253991992144948603500758590125939445597821016449112260539353809495372360742542543304329590728712247155148720721658998702507230362452118456179412195926628846146651229795843110877955223737287981239944168338613351132111175244650693141195506743916717356723472300485441385701172726799781787579249466888808885055625046139313673839682687061790449653370621093810657003977311014570270930919559487770220736320403294692604220733236890913951169817662475711021731131442715041781416803938533969455366204155167833655620554391926196115078613714569179902135035588410855899400456617059835790523009510377826042406133581444895792498692683123856628749169746761900572599382218228572515524117050775942519919134782376776355791002960224265885615837324800345122504044732211008699434402148836479296996044449397375592007114758377213357640357997681305332171354175175047420607710370122218705723973568939797033913455949589145133803841130707954060143400075017713976171235428530072820622091804221760652049883010360836896138084298525320692452403070947735528719424791247092996716075677754097260385893085132015999323283737286050458613288540692964512440971110589724864353722639622228913343645851305046378852428914935933644893708738909053833484873521467501341494387795975866848812923968801978238983347792422434774949552155524432739343832143722248335984419343561967678763901200080893444980049510677379123707120845637415553520364553872127410449325717703675808044074533269734974750296900746937238379713743276827961338341850903617079149223985015409571828752028180491139852368393188313700481809737449194943271513150553513985843197179963291228705237165962779079125655740537334582408300469028066267524601583080713407550342244764856796255513035166388484808099084413759287018243918462048984939720188616633919180159317961518786083441323687948474683520421653416256821966353188235831735679674329637132981754848083222663214319904810014685539935119913912325252305493369627218167116429917203334902586040366468811613956952856328489475403817325340743856332131376072347329753967682146137903578300037797953483695614383331757920925281309022474755581520498615801349941973411566532754738257350175798724860934278606988947662690743741585956835259627130580679491471619767910739844663774260991368819324027776916730311077409943020448020970630310101762994109258834495956577489447166675942522451831416392628519717506565133380001862021320257682286270376413158807530418684980813542791006772093945591824230848240021463858589650666806416451211984860531151349204267351514946410529526485221360040510525151286498953822362989207366601331171158472501713568890881739209049267251273396874820136188594450458917571174703662726198003892857268043679798141761465106485426673535117324635162413732434572121458028211350792583936840662216382063657131017894382689550912844042570987630412752746377567980478943110920540981933354778292223286696744973801052607955211240078708374958582795854389851188500265444876214286417935213883806542526064366101543058160443429798238864004901199655736460019552197534306957018908635997519068112086084811367206935395122686414526109447854068688933957747514603259489731550644282217349676179538179306267578229122875071150433049169963184502328526780551599619374744196467863070415216922306732044910276609425479932138956533921172718490298503672429062893859724577565721507627660361059320739294067859418062293227258717908189513094931583669325908398334686753487530557271807841617959909933451736415931365306646491105362557689138346966412639126893860665138146524027000332471347076466603795205765376292079967242670338384460648265398399790199175680670168339135856015944203009097935604765493103918219895902813351438232041141431481153889562538364902142884082271626267248149487259086258904020453169276787568297051215512650920271111412808206491445503393955131857041535931339324178553949154371168056968246385321917785722925816643029276334933416773489212391126678608328767766065707631778748714080322784286228390802746112114124616440581597934995557985445685561241461344438698683851426656548429585900213120425132496022722291987760278110776317723130197042259204513992364123870648803146756382602654359175358599796982277244892840848572696234556963710195883720484177506683735952191654769053656657494909842614198979276640886017637624050196515950892126781600698579486076661580483320604269952594405840403251938163598193065932799864587210604640790710137009097796401541761238077542203744996510369266230728759675943795171067179882816234046618611802097487405245388815370619315080251916310251448181602158403169901651023924533665062975443351370217482630235878448145101881394280929152033573147302335160329325417332879940006892246456038874360529851649987502728356783083859262820835033255952061819896247778995726982857182480780787702349940665445296655481628584002458806644316558520342006387947305122116106446226603308409381231920164604141965680568323836633886315164112164425321964657589352718757597694242587228814971288780581396342591304313378132309645766225424331789023144147960474359288541973939499842501336304339835697974169611460971499330973824429272317938534478582913029809539684681487133549788292427471894237511736959542925543419550342318037934148405594519645653670917898719802557704813652030392515832100267405832803620837817255020373580297470046713859094900495789502311092746040137417453434146434150685217037946724695847876524733159351834462750306069732710952720344928408193458767864283475847944541986369456642839509119587390653115267483867201538767407845501932917449366667339554112486847637347683860355876464449441569944155067033291076704567419188851654101955837137031458723913083280897125819082046827457702481003557353560124563924178483802474043915808358659783180186895036689711117790764101558255850352601472645713580284613329188012982454383167209479050393371785700103885387502797849901423351112515628488403141675115586022556644510150101653323308102832242192939932348440351215650959226581507489568809118033884873689618297707382169112251998435018501407559099815317621444388300694814841150022715055012468134915893512528555258823226682178206063005521327213890877254061274118046785927622718988181351405958258080843598931524652508211729845534184284346806316833751057585473955231824775316803152618012952928594641424153834950294960185562795441358904718158645759406248394611684059780108164598560447284115294939480695138953203772293489235049105379121085672694613283658032477252253996588728669696931417057643378224764773572860783175876057228691453498050933771346270045390533460939457603115234999199904172181052752286482027963016040400585573812163240087037448838404076669615185498847013486571591917701066370696129279461045458537292354410023783950451832466907352739573145255774675140544633381137993697064104077442874954403358904290140944487563522849274393424507194694806929933935910554949614658300862554945217221482981673253250492449225398397527417269194332476289119083006788595613228802328800145236947613035992712665780383175168668487173289417417676395150817885080977827813728552123579499229356902176984730858143649921289242956476400358060079224788094610055861636505785237380928161397319351176449729271223260143275095550735938077246396176963437760602997413423265031708594568392098221171810707814275280419263060641540979713080483805050660864700658252468104695991148547399012993706388843905239699135125758097427611591563856856856419345489005632020338715250035129811832416048610552004603515356524784467249409372656803703034782032875440188114617483415302607941207097289408208646477476408819759264594808324178076649269802358003050099988511829206988359169377330638143488068006672025003534681966795296069003977535837205537404768900228224171290135877025568674531563944941791075801274943309833306371886547513952374700664513735379019699545945144711862509126882105745558797742668348029240904535575784085160040909467801778799193435986743887783168734643891717499996779913546003178318577741465665640236987040197909860991682699469072056222780955712517655022509394983382155319149230411512323927494279831049502440814760851733782979115148754444602791917264926151506892576218616171487735095482080713974781996391853344771207949028000712699569090844943652562173748198925696907409862856588679959520851753204575967976356235992472794317785376686198599438791258264899730168521678973613439537874563803150805332126425053972836031044164280912213102847808143745239421760118949755693235384740476840568439803359927700934376591620557026344604623878691321387553842881038825293229816412322438232411728243470539297636059041341002015329088363878671218973499813147230333951842121615269347514852515957087101418032171518057881807814688542400549105263673766444570186621859642580952618577199640051053477699268709952794272133397481117097398089506945068220040983650893431584729344495838709786746682474996422847168594111651656515161088760854668068984924890901956155882059543957977741828427370255723079624539787750791847283771601731273717164687431681867271914163388868484520139198253719940203647050120733331533812178374628980636483636532832312724495011013776165387339706349639325656954759484764461695243949559932741500523326517405168680430243950593448422583032915295606579946292493184206762603409442011202649464681804832137777473678885824050284138693627878182508997455276376801594282549066787142841914314518522024512866154347962702089898870388499864690639616808470373231663333268224042487727573105263958194264407091872923159989995628853252640603746567219220441623094643112936379841533864755357246626293601431414627617989897003716349539937449947376239078547506018655742796622983007672232646559984978186978444647765347736302586539121693273739660032323425093712717201873082098862844932840760003490458829976434022060957111563450865194814601867514125150123245625428369553835955216362589205520405799302061416676119010792132302223530651626092582695306719550066016277218910542753831648321018271804869101257561607917219561108299371210929050746457353652768422709628259618516256105779387231812392101379810677967186006885472922868753534633211628308581773372906939647726474959043927792636146114690761721582001888580778783567374778184322760739658265661291257790270309717425441560999543229769969475633172254965722555115921424280998095443660321504571344505190541839143608998652782675645680089731731640399038841879115977989338161824025680987292566482508515090231386560802203964449059411569229652769016944110763419384318666498186523781571401602353608544026016544101043909180049212670448449027434611382025052127527177417182880758269008294504625508320976711332901904715518140141458629474479543935753987386569398752644023345995798603527597280656040207038784877079216168487396324863605073910126767538310640038715523182545811311977383039037531503334910846639861028528133113861359626325566588438454543167630864684421392598564928114714014481699656247059882050198617880900516238293358610749043062025998381313092464023110093606772265397190520372517017958060361718061090118969018665396113291015236321658931593991623142518102611956515189684393369190887359566208365436402585547427192966871330852953660656741752912890161917058847806994660425382066852306908778051242224949629105074350900343363473025649072510704199625090470636023796453331708969731234819017743531224810083858378223581692447801066117945726467442922464461479458005639084431189022647973569002148172366438328731399426281376811551244872632465422544532937507712351430988241519318713019843422868110086210931779948359431020553499046194826055628892140186551249111489032841986360386108328600216255148613510424289737368493845991816288903872909092913540035869341016861333179504957205840170303490713087018242868322979089815372949601139639138137135899864895033134602898855845443718911829719213305423290648186268697120438410700100414623804389877949030721652386884713986927715367735386559195085443904483222102479214958149309301891899335283298939080022859345607027384136557273925025540415417846770164275321703708291183541069896849739845778650385019172301201449462210337818825158203267182392580013608546254707500605506275743424182062100036225535166860360771923145847198502657483564221317740521013434380793269341551157856361363481673385413730372758434665454811587337393182101598812721612329461166627475508646703844918017114274505449543764768194306732783834122232947149937304291223862957594499989157304766232080529311655006905638784283685150901170171795679208635242445096608613691378814971894210612177765395615763715333026719340488302046486225564935251341863439072138981556842488969416626124136216743840321813469252563574843510138560541167775195343137221966263272104951605841139460377367564172546850824127302379915038860535325275680308688554286293982709389507079645433703378597503962355647889990432738354727848873956599167637633030189582935105058266929283759321732790410221539070739808935264312600574255196011138795924857630376797720862578808218607202099274158454862609046023200120215180831318636152315762761378436279488340233909109104870733946916580297034476594891770511319269479580822647940334275126338361967667535766925212303653247134938774010323687975560157616034076974023839630506560517080010794222282071432298103671727340863318409464357966131140204931169842963262812446972408169606986321332674800827279153357325300613473509885192586708408431916962568951428580058519870316178180868176240041813000203405956942567931500261779525831793478538737109018655067620246444056633311780181607120270291391009153530933218269753155105589193303393765032692633577151627127159043927416475628067254125835606745729022149622650676828211843021231679149126524886928392970287819254218448335003403000962092724926450783106172900040079930857932248327401359824042384686024407811818908450054687577107951617433755317627432658638944413879348707037039399459565622495314965576348131995339921659917872924303006100430380196998197937786334898158639772423160142575741765445959798111738176975965547731832471673304248548025814927781344667262294644845349856154003525130377310493069786195291143669315877534170599190029825604167835504937349590223755541810342423503301828716425828362824790391486946369170212633909607804867997885669197776120425531183512039961168954484370190192072388065219932750522941286489399428129347115310603974656315767545093725700735429930994723829292620134397322848331004948623243430773485933355654402324501832234915852435872184389058980258281271238154448037061725969571275741722778539035427956964673420249983961264156960835757458927398817737785467725691937610430622984355440127263325052696408465620403314358691628503020902913445664985345698567932389285867403853503335243616402996433022023188374854839556649208914369968047574197478206994341381212298161990634865660804906361648194452026829414489244344978670972056519753952546727127073635615522171035116784638313893979259747936054034694851376801040063031611411026922680392252850425626271655961478907371786616001144108881467045319350065512915727698679419230625053080783230068077658972174963106476851098728987849460619523635243794528406335648263986996341146320661837756919221289082583763903255771214907977170217904961014169186607746160992294519671145163185990077505791292715955461694781673078124822080504504113317162642534278350378537454019474020369508870832043270292270520775198104325962721818398440617932472190230256076668644920580519213634430070105908408005433354649951371474730595056482904433099891066674876315884151091976729283758981566954136923548868934315022937155736227650178819617789999558856404156083820535647353140600080872380736845866469579448070629341501976074431501429904765658717773444349713141015731904507100197266684306478900646300411025127553352494662675927017682257824566317966823826705508846065341192473259385652554834674797148447492356729740656910944780178256310658403996178054376208132932496020260843131756354037275430706055054585123541076878484540406690356491393840595888684243360560667698259894750851863264297864400352976106949885058087476053622061688473352713282865852147806859359482136542012057470670505573339222675885620488972526521571537198772768505081777018960278889440283567671979482791990493120701690104084860213398700851436152320072201324635877568337601123333622617436408495350212940522199955167687001742416112766290898431164877142993893179009105237678030119852524505711741662479670087332516335784787135825163293846923563971282393147846779042775051170485309850926043216625526110825295040474330066623319636226594231207616685460930753943865086203229002118599557231372627737724023331293258542352705143966944514307453709116012860772950666805226256268601475134946614246185742412342539252627601071770410322598551650305178940441233621486758785932556546929342886180028978010114443901221981017281978412376718576384568062387973052572284678411107130544883369953799539760376326359515989556039682569992257756164145501397172238230326176980320646391845758015285185271347680854203044769286125619636870830376173218516222106982103868997954763514003684715704603455462381640378745278531712660249226181698217108708307825427710990502627083091779389742371400351697485944120516977170011021332664112036565742795627084737456220105194389039223521902515823646131211776044577666133319539099872501252749464245501576875988327916742681873685860118991953375856455485080317657379139746767560330104903513681543196275620992907083439634576217873995997221629291741579296735093340869264912360487887360690468877355643334645266660217860144553700271695927436067841414954499764595528683730088506582666175639989258471772027683360290628991674122249792160375813688990838030074752365362880767573079387210371207334500443863445593329484642670213668590248544203784368990626123752789978531940522867714542880798647953746628304073208799828513887222631561432480463264574012874846258063767341699499495157079427088074807017804415645393054381152237939630085265146639728952253788970647733154321259760650509121993871407584388919874337265194718158197739883589742040369486772424520090712209109523325078419908416126235671046523923341103716592334913443258271845610756663764383722792585623064130996702143080997570525511451090426625776530357546825924522882536876623936874802160801309380748133444393378160696528560494656614815835764753566672695940758891253795222284906764515362038196927761730115290263886664050588221431723059710560401931678329714312241969772396715700907522468309411257214366859225798515674920296707934519497764732899985858044725164018014553824287431149629731127435575116617910869081971989011332102842175251834011504119125650673276794653326689173841909602396942237060058884379831877281659109916360129040295293639763241437898105544834150204799074927232354477433889312501016348417969017941125002708268161764436935908255154837951998199562289558021429711464566366145051591814857934457829054187573214279370317674490876924737383520213878334790739326053171225821481884227316181813347143097083849667903911576258226224472531992385240240245170170699315203895247935429423204889432602598933393771181462430020630331267154273295761772856840487011377277610744640404491059336565422789785819254452033907711458345811479035336499382465010569718648112546498797389509154255506204906826765769606487449186908768989471120327253458851808937571844654681264172550783981501823259297573398144346896452356372224989243307326966685495939284565720868793567895915240656907876978146944464042998569285676286839427835616658212237427702650021661234928745204220575900756224034218189302798193919159646711828469666584860499640888631666812485247933673456747701950494982205658017214434405960525068658460915943406868037497125522688032598489077804865267748067083960406533664681614482585632376748140059055448820199039244215556140850093797782628392651038469447636828028521007143254638620760963389718973489949462343197033292106970279299181138824010826466353624089974735176468494033339979860681052405305012314366424168069221705297688848685862953578250315499557356813280952138535027022739094928966169738432269527899965326468377663666801362026923015884824397920359617157659498709555068330005273544316284823039656388828264944934011166137030420702738223313077151089239896738897912495604746436494290856394654334406349206870023567019053633200251304942204454759697161098339992177967598445816922864814256710561652315045856281090255988500248064854265360963358422542216687229453561186140130365424504137482054603219007323595602165387423735987114192996622946773670228297253309088286370410145007741546139705050536480666897692565243451141518411122186687966733301655566810531744902885780485834602939505632696178714241749353339084237421349889908097099689641994175598771873217581182929699261937595389064918057619931741262391848079475865895962703899737367091463606640358926901207889683151786997193314005093083366942793664781305909501748690786765160999932277709642222608467780271230926147829666160231785749242980761038095280394512956272215360581119548278249069505860921255300400248241813259979345373611769643927519145837945430618914778768469867084185227088370724169320892256515064719496507353710540879243994357818939857766830686683370258820489156310571345464755008691686609120166448779824432809187400396996924763212798575908849243738898585380510710675853956014104800463651627539758735553146234379930195196433698493428157360028482005963823290162948490309077528934092003374383113401253526573850401849750992294524348101219395190090703200076259890115865994825620510233165221759561361526375591194017106625836713078614824226418978746534093568942116956817925273582665985980806625395734024694704123213262829703826895380468033016451397271485319412563864057708410227824851397593038774494870120718421364366549109562359748008502308689949697126534791043786463237595548977475232529042337649935128430670908049616017764873245177990029520429904732013404309144119327284129080240260402382703877735636830022956468944091401045951747306404124197414984530275164910660007207445135571340645923645496142915987375003058837753734607745598840029842129290717737982166365757337646033044164828630212238121256869515116617568764589778349820749029301648452783087415264994505058557430618522003718466153851865876911077769104746869221225555160864107902803215418702655952522958999815095141197890664068047321121177256807265721735699482666696987129329673288611799654531308967676890894595119768975825740679738338054886713870118093212336722557874805556107733583712599215905402785896199234101892320146262572623273711837748876580612418631013579002959406939004647413348575269276260558204166896062264117134119638400208955833125896932123327450362960974135902447574412655432624408695321597102761185848717865736430004486060530121968317882508055125163198560605443062139326649983147960003112892749083693199529538953247223202666931487194732774158239043071375285277581683522567113213869698561088482637705549892274527673474108373294782839171647179112092691623524989389977931666819786767874896800035016254633844312668576161496019574845631666338494194319549653584501383322665286026363799904638562155249345802700062469812507874630819223450075515112935489533173274666679302626536524661508220737278826347245452743683380284201169982963835138489125665395331588349405044225845540333371379960367502917622028298704436493634733764093090313994295396419840583305660298874078224815105366136036476700264456728855274145160188271783592329531836562462262073315772306291420333046953533456201685483783189500225250737342940182035586903073385948476299027500084305724648801476191129322504906315783667851642215470309103489409151126425461163691117586162416803218169656095592668558372744371559619711911428564069531945198125554100831404363891965892737351561298253081911215270927164124392390252325151078618937651064580558885483776843194130075384252642608545646881675095120076153656022148129879712597210554361337956842999190371078112085103042002738747607729307260431180120756390415422981627126788376599176253489988598239564525523708422998981170022899666400226655843725497396070027748516171857980146262169704076124721180885381854129338642266510159019378039979008137033862369400444013320599549763745408550831298623386558814639962407530634734723279492893801648532915243167182780158294040238343717760189548127030073437814958140569845204328605987956364760238575187550806090264586905392206592308049760848790980297667685860464279031616329264222504415171697857996330869852564878063664849512173013681550589194637849401222029688302520836859830520020183465891549886903287984765019059309072788815893464907766237513354361150695193726112440760484093573545542635160082090204452456920331627744613367352362729401277050782275522355323883735072608241826134101927131449537486716753915987470213428208448732245708865382605064700717865349367377087092814797674695360161973041319512295248481533190071877099312900815870336923279103294015404290890163982254040711932961806040507963721891269546508296238796428967333259074597146112280425102504959000729824136367395338638297675296605669120761582777329308343819568464763930039354443451226590409402354635916850151395000817126134584697510870879360284215946234124138436563551148226493133071726398333018609382399399952408931704925317582323654840286755159955253977374088090854647338576550735308041239033682469627158349289056230091836105828751984695355883307580524243244404827720634985174708148390551330747197376500835187090373350470995920893916011713859976419042909061256206137906105696690255470664412846098963704144615934959653204050906651960891298462487331921979341460789301188219630969373867920841080623418936828414415000456363828082890862714962323322659514565053475136011851513570283867969618854947249752635523651400222155364933770883156612803809233254859602722743087679834462835491452834277396165627760050106758263687419461355051267914831358048799979864027804693343806531720661553919442708314176926981657444054198403894331821563628530287458376218496210710322044296257407570384908181273750543784818721359344741977058064018417538103307314698445679555127046440236759669183839362819201023304325617676364815842110888116161509971696596074575216358617569058702041008836102160907486943403710952778032446239873155403514992202922077648729079997214409453840554704031602156874221291824143895033153601051937541468057404274370455443061693682393888129052350550920814895273893325218990191946454985497956469091991443898323306410590571282324281073136410222379800040607719561050381970041416109542282918378982296914078811601113260341161089103250872159549687751783119749676662952196672174930561349596040810655859790168680054522747346255464211109426660081789754590732283892017913268247877017532314973591057437548098920764910348317427406229005202344711429988341604139267456500686258507448603718811800340692171691951937159448898408788461258224426221359425449714671840475511457489627205321194155148394548844639228454719197224377657692826383689134269426129565474796466880434939513336287276383051061772840331936685007243635446192421100741978890783120553441032504627075545520225150486805045159218576895532166307621461181870021120782091583811945348362883133513439311717877642944597429211213224453088383833310181596114023267015387314069657523891988475452164078984432556663392523413497414595849138633253199595919411421209805380284417680365477338620374604006991604264381636477879116750992335682981483342805779896568161510756929985608552169485270065717840421776527412177384232898971489281640231602845771699850381675464590200968016955144967087512184380639006794612770371176877006809517760381281196505970855946927912853158818516867733639858651301904905440086870501943995858583528482491691288163572183272684672312638970501513219548505744618412015079398845023052585057153158631433233840697876436954785837436540575772339302588033909915228884657175568425194160601521981111164432922901294816895161669833211472981996892771399700962874599116182254747764086821202635789053920191077405809955955641605280035450472585462560378264749215026997016348806875012385911925912525269423490969791671643797398711865623592093565277594183308171404470373167377802780079879396054658787918211399953981011299685461655939334274549711818185375451670907697229883477733926740929145417421417114855492761440172253096954308027035705590754239338850932585767330988984234124526102561514029342108122004567083370128558286932925957061541384059660436927651728751921943594327148092407090705926003835512023310282655463715548447412329486087808085658033004532783358211898878682769010265557583451948784142830373711734335433097896395299959348213553553413088776958153928572105094977987448172925668750612003117811207424986057569619451166324756133888726814541275844265432090396216081059138607755471264116520114585720804484442336582125601785303674051104782893643039245722478610007212555578050279039230098510703003350447488932578507398520703543291788211865393294135942985820837770522749200878112628355353858172734922677509068496217082491684562186027659505862789397297697069911607826292473566544321041517915510060124488131278713403866764092881932259270937141693165807726889714331431828716932172430108070529632336929339871128728657462240419586182644873850075952647419778291640759017671483593886874143061062678460072635307741194960353503412706318990556996270317369494904214574638168719812573433894804828992034100787233027731241136395813482699723977204116806917892615715883419338911900571967473055820735176834313008275480825300810401956120810499901999313224522483988200369855663909687100757625222157823002366861963187616708280924201659675910036219479145269222460523026449230860995369212664058225858094722876477707277563175428426552684440759463592491426270661779095441915306651691676123265025343836823479841185843988433768014804776298778558854836040638909190400469127359200698441730505131009344140292726869230873682295153358642167319827905306006354696280748913129156362747153398868264884674175544412212439001980066864672822395826373930673702992120414421552001282541106543277147307736737050808646456722570176920380267950109653120122643668345413371779320489140550548591344805379946016850692961273037319933092401643970136170668644116528586088873295505214002681716320255906469939428781586851185345273428097641541631943764572768112285421131681512478998317463621334878706673853265335828000126774110940400671964325777287467675951551000506791484470461101752325409659281081388343486438065472824310346532998734808148231323385890853291616055491161490623533622845055931572553554452158842788618663506137012295076494270024279356782920897617920436611566372962357853127689924583333148738697584932910461748925263010767057337335536625667098186623809291726366450055576067302860331482612219864929926891322479423987672327795542024911265922890537676769927706834616849175974993840372506521094494874485681441860338254280466579839805215682706221888600301407713494986331170382589169241656832924803123108299337152001719796777753295114895432811576493883762979992142845065308122634468267121996622311455545131337087641837701621049951780078843751893278875555793087982147967711009635969715402652611313406736157197273339387007504428767702043195264400668535829765384501351574655868245088199605153140313850408298356866379725344058447345739234221620976138983906029125254091182241149723961563349721722351651828427313579942383828611973127679466042780049039966455391002032856164430990650146880343034094399707463754304059397013268752070542663754343446236710002725247401807531309088377026352268316054250243034531411646564755870549917893981740261827995936474152782341399444083575367268422446911506231655398808911768263032163562114867810527965503247970177373052739933840993741476776991469151777777583291981765056097947315061034696680345975938015565044780070595016493404247664970520309893858257963766528846835913362814140967043816977247488815295393700764137884545735484740864709816449474719472802550657867591440359594739749931787769549080310723637376293311553553998548816608703616265456920113135256399662890512053602366482695676904344863876883403972582797675279530852376649382939848448227275308197652494694858555888682813859001701486464497501216535319798926665334612645950921941073749583774237638172101973633220628041430014188877794670940926479544002313684809151519942736364620701456366191052535518893216785732747141788893968801723338973659860813545122969184585056104297945166942219923038850671372138207665706610879148093563637891240487525605391022510126530657242553620306253355692938774435912864459477575093546253418045053531005214415475261507562199297503287561562801284276827244479403805135956333377901558778316999346678516768494874947861100946111931415574221002599442985316965114508427439877634772931718092687944985004948863803948014979796960162582893391913900363634550009573172341957063773409978701699973185654855420353869706240108402953996652129161370561169550084833855460610460720178455274387343066974313771506387451202673731488988691813581482436846440406161208491236698473736631651655375891371804685697501247411198095323047557537272008108255175357111271198891094977726178303688805491027162166793565310651558729019720290586148375326144928541666722659611729919333073708168197320223124910393642746448801287341219066751674220321099376485266681101278033155635260956333318070814191099747813698338190760392837554369972349205631531459113429398941383137401137827360342035981885971721762784528053219716580214104512030539283955254603607214016226261800400469970450730856561707849948681939909438004030804324268826529820723964150784003356563697529109447577657523849053409198229943823614284465512278287634929857850822307205439288602253884845873674678308452995319182710164797056481831763785442464699197575032559620815712964402832216535371535576244533143838558993420232311822709683104368520670868815542454283965906258629562422212874166908412455864366449677767537882414344650966064021810643529492102153694341225737869033979485217412193947819345938287179815819024663290548607101868734821472358781168830141245915181165808522820055476954999671391986896202799753285979200622470459619102830007001217192022979833682234314507127257732129541709407939876913002788987324485930837824248807541620091549348723891825567602717874151369040928562626310144553289836669321859543007440435077039904863150098962210140160262064236363529356899503162645503944382443149001667840515771748427468376551448841660201008721213920764494185074966061312237843133355387692192901505017477160335119005438728772496758599466642112652786397885694636904080983885438211225565290208276092295200606294674633954016517823462505445791983587519754382511699953363349230358227330503713310314879316525503650967036046413037836101265945397920909314539823487602626348853477451762918007612025698327212662210463421321177895093658025427778151797469688587085772532404791763298598062752500195867320463649702433454785550720300916239377383075457997282937959831215112389257257445163489726246451184014756670244950687426310183925494749614876406197821550261344957045892536734606716601402973208244569396000381269731438961830751860129584476273025308817087351202138215645466733183033711354952029601378795638739171329559169751664100162328141523663248263274444808848507201512446166812644579350688950200949469053649424209885312082579128442617354790765837034497498323295028261302354753126538390643639153901919795104952951713067899971404245098179578017054521327079145708135875724387154233226972608924398401909594873297177016478274742704389496305188680508726981751872574102254269296427991985268178281905644171283709663030909029679920047829165079318689847248921591854267210458407196632394004545654633987193797237925124885205178309787380115740519031676007865068055240776772822574065060990440584723186125624701393552510473636541571460699187798172934564322385607101244011781827565568202298000594495003895778246998641900213496813406914385243347583188719479947600830634650632310597499853965478550024525043049334003688704558992615790917788238461902017993982471797429214172030140305637407305485110454455094971211249898768038205975172629917746712736848766724887223394191616448398425301519467915684557219323146462673819321486678727665185625861208731649655145477878979118970878845677797803647895246279687006111503052710884200588957334681078276367323257775445813705850847716626590842778597621122172162667763417480289592753026691326465687761815940835794289004479269129954360851840004868763822128297897499238778059819390528598926423485172304173930703086825476539352442722962586186977053216392858542013699625285304571142749979508503691788815447067741288188907705916274984854389141753077480834829494653096510289937080233038135900364112513921399706831485976924711947272152553104449953046784272463447855568618198002654406945590899663581155729924133308219038124574763862665244518499165579736424399411981014022367574839442942593201044470977669727148998601801151140782760406114630817788121066314128497238518407366878482968406756304560486398037725143650242945107474697298091158995370530274529734499982316469327325934498959313580064164211775133997270742808031346670091093687218717011703401578353489862777079766376316266569088915821168664330267742135063349934125314190364624875468944222793418939989786847676923212363948148397155395293659447690652615777616897591878302651553545683513108509299022369673879689433292594331141540382838602735429844641407546406647256157960873709376958824314284126493295569661979190872284969866304971609130606819963393927348562886677856217299225708222742197392909037765963290355171889418560176132177726049281821555700703528619313572892296537087964153255295077663471312433555330765668226877833082279654024326021896101561875885794047203454706735251796312663774185704791511953274469564400133851635146960406739262122896318081634994380276319566775757436974202765122925748418687665151791510050577419750890860283076841370559854691719308789052283603282306223264944214245123992683971788542044514735032828381888456859713323176038226904358285280853114293348133207512564496777405735960174072317143257913083160245434941963636855822721558434435654849642794254201619733541510622660264102702832483067474827708681850393946442417905195136392950469401988503945074834456950324547233918671206590995576990840713178238489286426981285690002766127523432169646899393269756344273203226497299232334003701658828271567035935363229126260147012961475921672997251825277803815790131084992711671298598376207485575370494868458931525042740374733671960818804755532200311197718961218248094452447713686172091194489099898549262572813461885658436117744779655246424087048837593502660766793999788419497366992409713458361711106378652980433857176272900277294591450387914831998657889653224750265180994545299289606038814463514542737484341122186090692866783333024962345331025599438912326550314565229822873715572044323697637566074133018827180938162121329638532802237968320175446525685414785688219011216433430126141083471093538431981891036076313582637853369163657800128668342386105781478992459985823848253259444760633378177893191038263726111024740975516833349992674930601138555474404261761364038863977900880506852221617377543389192389342493542411552508642276924185783659005573344877829012040103163169270458134606309892860653054462409745177243286705733097286933126058600614928509656174661060602911830431150700021907945785116564162609411976274368440460904649380692534118056640971181630642978215960585055829859684733055174791425980044966011161729068360701622152144959393930487898455335865581446187584209823867107545176362624728547887148192879785572191285559323651401901683336124526020285726549754417747550014500680668426600538326380098565424923211467223757240494372448378591012122579821291645977639249979706457698296383134849154131940590744203429516692647745254237250077126199179722378628146473906856710222745226443690079544637798457548177321295260297102924221129578618870060485121547336150154771012604450976068665370959781815741294128067682057831684705018213447960949324254943976954964932613041393139014786100797063772923479071950821379003310237753055687513205596771962746929501113982084361199700396374513646146262846804347589033939175295590130447589920262915383487313682726913038821273555296820086662104022669808135194733462064454064301833262909568847132802629732729736866399463693980856452378105064345499115907637171138331899194560226825002031580320712495814430316124159903092119439693333512077032681727553197065386172997688050309486861612682210696540365000708696463102755979037132730288439086110898645438471437911282141850146927176973388154305876141295461500704999301583919880817001980135993749352674439261159433302025525724263132459415831670843187951996323086480309112061181349740386591423183663740649450663103383918402407329728190804508925721693035996218824200163141627085566226015674546916441742261922276972096426737893326072305915594780109106880451198376212759732314907904223859569551575450151586531999025893865708449759788923269570646632804876297927933334288008228099314163039658780150269275650993313928467994514171110633911451540848689310939232956062126380144256682561935469167538294881301496211887051011862701060201414005240642354703805524692958990556911792388710766746311274831440163333535029461924994680198189021586599714494152008034262215569398151239838614744338547444031336226934416890353507138482021492413306621535006282369970885486506663738854425218384682809585388629586509937741209926717927035062361164094320765270744596380934893253676254791136596405501431167895075722001732911061519697348705992537231616171521507863712228801839553658428274952975422680463813637920740741790847886519387655063524096925754851946740296294845616155639608235512769743390178302174580908765324367952655720032834128522510413708848869556367906039016763871570483266820137302338573254036752953826353494534729964004490418689614879060120772549987079592728402635319149577555289378775596518958455582346539043985608963099029633171914293672407078622628924542404949311188427213010709389012622893048718813746380873360635569888857824436601945308784341517053452512955530435621650685780315459766033519100955698703235890006229773221644193224243157538397682853766471677775391202053086232358851492171762422177273625947330358435139934565562832424728450302410011559182766090526370043776882373700500632333391855676921568226311694221335057972727220996852164481339229758486961802992356548344503519170501386227422436772791207702241687993888469760432447921841907559147316664354287863986634734829595679911235752924112341794493307564829569631162851245180129178144078335002442407034039608152432343098801497192564085901055584785028622070278436939165926835754414527306647363057401059489226994900668832377030129616806018049807193892500477746237159029740270536723225713707589497126456684551829199799684551789739169961021730740255645850711671412715644057533912639992993051710531759174689025625926199677889077827121901108823975668784672153783350608757851349597241334853619775669269791762115772448239039276909002363224669780403596844984664349798382413856438721522170102772916568037109506194442776604702625664614811387859048070716637056614119668562746346519013143542855663661125783324179978991071879725407601484297393684946578885758767465089266204201322908257563599583345835672977839691397577207227020946273562165408401069030746713461719882405084482143996834337416248044396043999082897267811849034030724305286538555884495536600838371111595462269925337865042796980365908374772739297570881510952508420720786069665724389044900357094689428463101847682421526618516006844279924985805485162884308944031972988818999994392039293572935997530145384959296210471670482873258449144639776681397049455164269928171158310355340284148548330553729439184221625430943920855119781054015085532827395480181841213943619203753636448333090082897522231741097437893559471013535401811063926810613685156929386478904165220748988426752030556354339684096732394493743449716108968251409458404733816291661365729596284682682173696046430449473558773961112535784297361278411855638879051898539434097288570023965662865767587631239495494261272139184392985060499074731187636639193540461629246344555029854440601973824962969851228976963819073547888006095766408057849134266132434897562937502143303524164717682057100686334241683563355182789710994211340381506003483520618591356255890637750662900155953113004266718854690679652329559836476669719285463453126855784175611864796116391580848001388805387406364433846232523165664571007007101417409716382298794144066483544891686118782898274546891943266436194736581198299936708340701039067310534817966212398020531902648965210593400828485180897153829064860391556633997352530964599120078128614157227776866948910346788006105268249614739582062856350052151919964589284170438602089186939742388841423447396237368587574024792301611273624661161032785685297168262845995619003432986589561908832980394987172155155027874651275201996835146059168593794878395119252116017612166690705227278210823956745610196317506050269957984959897209618023475898875403919040496052937413969500051663534325976891426761787105691599930554789840866217805166536154715714768842154845950869761147436336545587933116200375668491450363794663224028125526154211212049410423107629564897924994943331358986246256899355089553322194354189194749506158641426729206684828941594315292095543022961189802461571720156195528616893048138201049838799216744892942466059608040536411710570857956524550363789704558829415280232941230569036315668446203260634242152985531686188023714173858122554736263600015384448113410722681259905340159607939519155574594977254930763979476750890666714602169661582968878775826472488457886304139389718833652224729957838903355874223553693946113361981139680328645310357031792242506443870236964084161317200533011738397089308455847704969829419057370908091681751221901984373861489154485486699323002360383948686375676977688333717805457612931749370075887599275744237293584962071947254495236126460886597852068863083185261876325443454496198760691446154268070286268251691471755070036271923302391482792374313331403781531288303765787797010884684703636643166081730665599905839982710520520869412769709574161827874878825867207016886562768674986561994915255662648053053395488542394005608331823984523287360075406679789398735362271911812205247520882336528839618688661968692791733093992853336788571177011329548854108197763170318980347470739694201203235729582823577352018470477601846324022171183950675141255239377302741571282125798336425151020144600242319992305636451056388002273136350926170371731821929041666311046046715716134112933673458150283595841008397826537682831995759685956271586952320007273896281379616071559262060614739251681023894067622611897388115631369861149705470293523723214665564054542691703492125554403376471099379916156389511627332507524271628540673500953137326210812329576252027192534181738001714388677041034204182356288182968619424763072258425413456031546075412789069312691209695205103815113397262182208982686429878353243693906994486448335225383760463070608998677625891092590451113603591004296314378594926326176066540225184173170751412866366028235627154212565750002665282781829640222182468407419857178702265993371270943527788324408128992665894461397214408760194588914607569769213227988936197984957386469543156624210102912223068580681705264513925406195747032162869309022410855037309482741804046838732141062354985814047574867591202629421115305517494456151331946333885065983803381025901203952054829069248546149264208707024203282124505388745128184776112018778910105074235894937145872744457993226214592972868402967531274222800468352477925950412453484278773167947313762501474194816744910488305277239999031318470244583856583334208830451465750974787314053120429474970048840657352349096723750327630114442139512579443812396093979378223664520369834548823545750561323871166516625177573784099673997260389940315011935444224607025288621810086425103991565955528275584657774052552648245725478652742377896118467693500849001727004083935475911242861544259413712283733098530084162839789991359968733436133486875471900536343093608610701229815128431731646765516776905410499945566787811257304765424767917949330581106474049542707862580151172377210711975269386382174761952063261412470119471273447732992258422308633895212190362963684350271262616952784300398870718591811176807597937499936756238946765191594020174592109154397462152914897146001183969973615062163851894465104239652063840118915855265198204677600406466955826302713435723018233760253633681478239746981409684944730588060499711764179722298188661012836096087016034847245389973176001031532856072359876941473343008012737295190985051279708221692651676607418856390912521986686256051954722523644266967957355192289505594777425907720201051448100897806109718027205486017413231154709411280553969461049659286422169190485105810245049186251669683240326459352205864952858889075286627210791751226467923513476806590976413832288951740897807249652807999446789344041368283043569149123938910179176562966158203679297754137953673756659443290904926445896685285164690439448298834230902399028069565360712657132154507570009224470877476129928238076061768925828025561078901497986066846152795799036417926783596957938852910522756351353349830382528151856036175168453809631396112688910043397650316108879959963183232490662163002792166500729369867150893249178264953783975673381406983553847555885391151710512858087232147771390917179832342598742226199665032533286756090731131359476210805154252658148156151333265616483942392069205226596281679431290827593990899980799552773130690043064294369908278503204460424518745437840545571631867255148553573267739265478678830124231057475553568006133885522512492325483965161149880585827515530030410547373043825284264026457064565614596307813554655672009481566111538587287692546617245435811193763947223506805075121464071567050772432640073739006947282564397412805490323663711522441176003270614277926207900722826678801246031764072304695856277853954551979617190071242782545298224704123133240099514883934481771827806054239416507902524164157381845496056886770171335710105564641530270522384512199593086297933806101917492997834502775627681627888180714269674800242012314876555563049418990885459865303435869607261992630935758600104992879561952459430405705081499673241339403357166295057003950695246789019763327560234453496136405703927712718100556210520022008941406690194066714317281142298130124617487691094732268189772870932082444766171994455989494516091911329363149971486266144093659428159304058110058641280195174277329591827708986329190642929423956770448118245325577057891626807749241099413767460355750728413670068822873513490325488810179964363776909249195186871078089947894083683027985560142577299798086004727874494822023422130256534761884424609012126825024965022171246550951319835434897010155738568478781662501856335944384215369805466702240855601310027771093621197317208913925468169112404000060831096573553198269105814492183869790924478657409023864534603932036632954081453139037060459854249892080304162262137513357635959743300318978720889144582381802961339352159279764411059646503984366282216917227727825232888238349767821013980701785458168167530310853949022657538483416136357293065480906904113854883955439654485495589890794489211911087026185143884593131901462668430869533998711138848824996020644584331532557411817340932495509615882855137042610116176498378544620645521065222164350300498566121211696643097819091715873740522652221989547889136814520466231822841603002812902878409281488580834616691469928099999500369514147670787189310176074265953396054047878487958578913297973866656663069773953677809724337263254747497212027113468959510582891290830713336238150171097805172315628374055841432374092210660903406012270155566273004680268797338254211095779576026394454198742208674925928382468315401579343128973687080031113914672197969778154135077459287838048265075014843165255897777490710625126201314058636719891607881974126747651539063194577810458393791393885446858618547691297113369613462005709789671947822127460843697077775004514347282532179243108271480616209991445331871719351887155971257505594608370536271370063358952342243216505750881290474700635234018663324396885118475645713663411891530324655680281951421381767496468762393191198475417589101769608647640961312136450374270326637887869201065966091626561808835582420660709181653203187850243226437704258542700900645038146036772229999651808403711675837399898717559628319598410166540114049838267912196156345288897975453215114397888342599291332401695312398553344096004152703268672162528570331013395255914835033196134434644190019757586980292302874812362418756625493825319988163006573639579308439971646262085455632692454397846927206293989947580630369005462402695063372906298637533947138187973182546397919793482894082672286311836151210123684780086018074716381745757986087530590851732385498321535756071972041359875673714452147272774872305879146273867067469357860341596142564791825072382172897999285278466497731657524509123326716227793522547377200458483335740313511665062774941369767573630557869998073523038058357636235216469765990161455828244792679322549554501968633728559427003324141078866441777706614297201913377058972324627923779955485732199021153375371503547874238006058188706493295224262703029986750431354427344412986074566935238740415785901187518986041526656631962875719845165036677033748129008723064471022720927252220362651740275885388555793822360017108071249767429361681970675742878816645881939529254885373404690741505434234995182273293823063587310783344180763534298357652718639442942725683203911859689401061402060503617845560805947510480579863120426138069333365766737270959283009488366251648284100265110907278116543748333528321171560822143540154964026535937084755397812430623117488019150621813535379245046126745294358903077696052941653036677301523494931390363260893137218917509853009930693880648003880812672555436386428394872629237736664704533955867531961011317663641019184749016233534235149396553649990763765016923407704699633566302760930062259374920992180707833222227811522875013252909720206714746326708114604446370858478519727669954305474798679782285910903995528679919419676376621468373533077669556392339609228952742652427081048252553452254752913991037621374382881998926831935283584689924632051172910358985935608124567389607003032583172724752028555536397682669226880865781414464407425895199775688747305940740622503513352638580805415573265940274508302975956859952391494689089678843739700089022252615026487233410318945158306561098853849629435540226158017472080880130019558095379506075372680256593262427426497299832694176500152802637310388399213003150361919642560712324370860992814543148094042011004718465467142655989990406203404662365753950019849858832171529486142384163100657583872476077632924875431188418537845567657372638220556149911632123027376487292640203561447682920601767300712914141071808415220303590507000320964727531799627568668731599759069612624412477054976956486781392126175750806143410883009662147903802881376978956255387478870084892957887421459519406581423238143755775599320192537152331785491097038907549725922083896104155189432941505682864540450732228777434979703612572771609423271626733881204063277471983695731889223670750886454777939822141378836441653418996390031617623128865405585064087264970398377685692637538750167584515939586174697527264222416980580061248796655322034422360673836909818332706169140616800676489181710159952498994519100556738191061043510480546167946294486178591996286815909943741950420397771354100243497383856409767597751093008933379282246916277658834295753067748099082888209456936656249841546129118406286635356597785991447822576136857314652695832241186480118317122767589650776609227618418801168869919870893994542979263632294443926930358771641702797815213269340339802345308594774841903618596337748960211674531556564538640562287304388084934997075328649956818157623573966094996086105452434204467056421812379907232571148836048789877994544723679493984511654090690196617249881155249700609464920248636108142891396493014401466212506279287796804091953240880979098034391979317198395215813145836927400936382249974615470007832437398896621201775269061281266820969954885196785819861602960886339542672386529423319353677611257100403845302326954212965938427483227148263194970028270314090307514872601711438350713302311306972925865749987309066871736245033568585706526532669354122288750961672327391383614792537698205896531547544907596469559960072214207559784145297708092892156900852404133574199474919944406149573377615843199542305436932880100958199189699315558750903686732441884119244846307292205542577515894672722515985823349214643724535942383057656644453625216043032476972055394412579959663182785025391766739697136970070969965218713661364380801048388380548749375248204606630797846671667043176831925404303695825670229196789230044954610165795136070073745718436768985602851256554828381004097017289611198539769640645134781065568292137026120796490637947508981652874793214213870923853315491117206367222679619579765331383450234984541307127597694833742375740671876965212762100059999891138566674434556308662609209141602969623234065634627328438526068166646018227917276615922083262159774549431248299015163046172329113734639374451616610675943844460585923886276042505405940385023044285780186643726577294876532634075761541328458553069582442856713530153849805624307054027825653788274957857334577581675290898397898435871507909571416859322426014097165341529937505501483207656708456169494628840946602887750419550054853098919277404684114840197406382850193455443134763623486355649786347018259697408835278583119967319425131005132920400427786762452295260135954517579432516995774536921715633231643405150549306563874575871805452611040168362587071140939563925362146199011552122303388443528148468516033238538812183157229054861087689319788826651547334249887758273382050581809273662880204742909737011424931706037869679272539260257664871932888175233884273355847179939811694478753578544861497765461959291456080412039813505709552299047806648023912202784762672454801261443140755085819439852120230899517452125548514530274692019882919390582285202539532770093558992107148260253308270195961672432479554819374801851108509352113022419802985456876980141759828111669194664701086460122834555402564551599974170327224192331943642084094329655056680570995991168747569162312015675723229704643091692587238536733062502497241643214569436599173679518724755269089114600175610250937399294794595471344442785046516522396954759907173410150134365005514138347346673785334100556873709925531274483675458587069686091149973955242099341001636492198201322025467359597241846360040167645385362047049176882752197001620679648365623317368698204208736703949125589814117614351476517949829193014692603985493643054153442681075118780605491751171196295854964913270327043239807766308359279782523792309859292981526345687961450400223902018188181566860559402599949369195413647466899528585228796541712037361386335656978893764190350489329218867143737206732246781816195566016117120412734877735080790005115595070881207587801929601048019108245420571728045071593180076997557836894041352160928473097530413008021214783185831905311238937946587085807992578738538340046195305309882178189427263092186807516274554841969885738714198742542899675906888428232406136671068077012847330970466774326546071410302696703580680289480583629492674033278755368136227625186998521923282999652791232399800371238211863124826908970722982306163972120809811697302679916781593717001265019867985938591558520441401221990179714708166303714090322765148303427107140582574361694920172078566658589302851081687242627548269441858664995679298930432096610947864646752982985194896424276993550022582834198250078040014911307050571530638169538301519506527331917304343644808779534976441941272732069807047169074906230147094355602346752759671288367338430652467922433237509197914287462176338118857477041977644545360693888315366934674160731404844223889044406864778227259613383806562515052257002480110967797144136131520251957455452096018049531017336350903170392572004042813055092672659851741917395932837468441659821551189271889065986810125713799175899299308708071869858138267833795899750078284560686430922380040657947224149788924854600294834281790390622291685113297628595757044800191621179003810471488968606633039533352936975673750087391845970422002441839384404458450850264215903484783865273688272387458717284478259988576606405367258338529208055932192122324425018336461226180261275287889446532468761672375456488432050545819033793252913617659575312044620063058984310560115386976254813028566972677419589430359027613456991894443526219542592555819730428413240495754038999059792654270960348376932314003450851884122808506729423080252659748144068923267626116263151734087626896322567592793296037493563261540571827450878302443220267184416794779979531302259060409500431863549733869597571207838304019052789387491869247829205432020800786633218097971572641816164785379787881546548235666287795991569722808932442792298073718023324563802496428506103079656239852466084347756298935773156661124306359591548381973091713949335136563860453795484438698664962023669824333847558166397346382717469643405807091887018877118588514326353901380192133071722599158901922643831123068015868097391688955935242945686961541104499070852973542780073787706889463532497635011629300307814865056176015426376331573008485127491358956802208738144814937125979388622693940210174028952977434558761959856304657309318262919286606836881925549248034502564161702753338384519653608695088000865723726478321875122559007521505409309038687967966765277700196571504812638040453640927780880176705240616436923566911526313165889051379239068149280614774891798700489382762074821168596172660213815888070806310739833750703807436551019797212974811008134444541263889863367669418685146060484824573277134423030750482958272959564104744815872587910561438851132289590829551499525170159681607127903218183219190052681766445361515410725633378551597458351399434002391605679392623193770532594031059218259564141769912585194745503893501220726061345070758947340470405762551446227709973390466097306751022477623750312740505909402890579508451870389456034907827571878259458185786268193099362729238059148177771516224526566403359014391866266061686764337436779867916583259726192054925984659410647622239110522048854416508426402575363123674148542337847458835103125920021291814268209507145093233318326269027585705365437790209266207817798073963195902501995631256073095443893963700876726156819272779258144539997122630588767693462142721832646908946920156488203294813133415293355869665289362453935868946593403938742780686609632384571445449727882055310208857556346213777544454698332907259597344663405235606302970485650590610961264827593386371805435225202816915342935452787514948180245228139456017737433171080912286757588765775056037965500290523319223750872248887082645343272130347709985766233682284953299400878875473777461624724123536440353530810522591252497700196278809282689134399292487307207916538479136634977619602361054875466040440293601812124695059989554249588521181050475324668634487706651762493998947209607920006686767280561230190821293286246444654142719209584164777671784747438903404499566778955345180977493428626654148667534681861802659634472249589589973388147285305856711583429267141412787699948519919489964248391588534833898154439845196470748835098776566823719781145900620327995285368588779484916486504836235774619792309857017804124678941559470326494347709553821160814172765258028543521901555665490681531290821243016531306622842112961154621651476312564233299870642454710396483621370936163774249737997884516489036501336358762365721498872392898450302358900717998678527547957559215647195003527012434456801229453674442998962757886091201256413418023501586531547064038172884385271547648156922406026816584284030096202808091271797485782503259442736914503711062652364009995945312575246186914815469225222824637953076406506381481455397154297104338018772535835560923637064383919393834455566413455286274510392076731632932678646069311485693744628615209813217799053264661873125701722766983650482867450392486740545245943465914650141854622938206019974020138556793236477254923789226242548588154002313434450792384813957560125466181275317089766209321812024570759390780100980119659949615164944385321302013212222264835286144075326553325786716828303073518167711506415843914722981734941824331714066573523805975751704678483381022067117118246890869057185889537234611003102974110042285986230346097146441371111508422751851636868971445489235696193143401882126994366307939149130023389904029552600478475688712636779891235822610304209743650810215701271217965534648263849954612283363034750930744755491338996142235715199069194107410980485070797342697545059857892823794997820278808796950449222517537274602303022524748994155024823932314392384562627144238347707759128997500786504740847262032038776074520312195382189338816000563010528315293238997885055613123447827612268887511804228640358292093230977124938542097978126165034752114438689082788034626070246641978797019943213730699817631284256656154757804451034219873941999247082450142379697737798501290899666478874544861927981369795968123171045102593684855664563442871598316384261029580628497098852651381144816844187899807065048352265536406209644381262112208021523998559447741668004287129556185009715834115608780344976605529403232486973951729495316265066719400491582212461804300608687382939576326756284780461833606146523721296087077440722861225743845497601603138904218588871697065558866130812306485136789517765856581295260423430680982561411960921168130206200239749876525465287304125441475889922128121007606779736321999127274184879126633440885296751323262370779164606736143966342341480975716447111605437383126059270278488265338412340803186643957848316396033878261871340652436349468441147057387245833034873128121382687597007381936650135120716879924963421268796933011743745211231141476277791128352103064019073706511023074485804982769679024383259665569031030108238578799320717550684939614211187096644935311727737558459324250059466173731724512761150582042294740113272954558554375899439859528184218108898809274231735114241445728543430748600033686737797332820614160789305900040008893438147788825816297785530218198514893112668306609144424630564022005250664038397316814721833572498983215935579262431077149824921146649611934204109688935264707316191317592559456464729616564037832000697288350117223194645829605733642453184774467459592316474686471605261532014723024881354331843183021912992080508738571457773641644596725100787170128116715018896381716871303284983448843839637045067457890683264027135608054459252520538267113387133141613042116519348395427711587667916319500277126044431298706141852442986847760041526429108438285553290184995203328875239590556892848853178951015991641236021900039234666478503603859406634608724647235584676022033129582741349005284365383577934173124736472972996106765514104193221236859150807210791732131574000856239940637117597319917971122666606336315196696852633696903363038047476161428318188338451496103233330391093234132040843942133652359693375174396707628988342100448148699197083172169322726128114791944722300039980584798992404484486963413452448745003604128044952953397247763681272164872480741940266047187902051915385053245399471125843828996672098900396053411412623010585533340175598950743682654896809482202828830527898331326139722670554570032857526855155964341666652466095045388033150923135507270074845778537442853575739393829958287201670287593193144763633236440900852147794681601783638720408414621993553433945220108768607842803301537615553436575428128007828863969634630909406450369514978534702435043738290027511697196536927233066543780981725985560208109799361981130621497206574404428058926883950893581463166738672351500245540636924872056755161137697255766843653773087006950687828349764980674854353329391278482656995803898129223371268619289732380330226000975498658726032009221079289853922326256435700049379992541611666404309681697288667566777745222676748652675993171859420282258243715507875706582561614267928891724768485523452047843037311354074755362532581726431386513567625668257799583618507844124556153690285204383242940829719566101081452213101500975802062305235156484896689625020844287237957485537709565650597402631177495722905797760296699420860375255343885956416376406678322980597407889413071263886862686690565952659047113833393553632440516209619293966090185302914894942877716203446976006532158423858075032185997920315052954379301101101173224962617447366046022889144511667123933676509393767582801455113092263583617816288521829845116948434685750326063778636316620403580940471581103963384045678500921030483121289467568859283829934255397135161306775998548329420682605833248018066866612333002415416533528116113472117581452869453149358412396406536641386902449455226829206099909085519814375413116052105181908592094733135785377132725326514933426590419855674176834837432998048798384648495098388686489400502731383287583821002971917554227876694987380361322035854056832958955989688592564766965327395483629577058789499381614739982753444065933726511452816496523284641555501726417718417907234756070922608075150414004032606197454951988481653154745921188745421823287698238397415877879535383295622668913548521574739529801466208061423031531886224522161118285193799077257506388685613738668992989942600323628169127497232981398326752790292525538813707353474704485225128666138655581348030917627113108399290844602791372318572063040229222721267631977068844460970099278806972017883503141286104274239272773703380945952538478423354655600668073082756014606833145347954926222719026020944501696430242897918368021649660155637096290062775410027771795012534277888035478658623794088326759424131247919370774929704102343408271936858829149216324106221360724357467176787171104491285738908314562398902644293446551051238272277568583865707303933542077645648768855653810919375993659280090997995776802249112927758042174486407582553783797579286958512017049752956921989506701604542230077943606886982729440744174436630171117687972689671472815314747004024274505775375815619341733504570637311130566105056969445777625282975030197050731853063569955100707941874082071919298908396487845303204870235031301715978815362112548606420152930135389009019057205367670491065621286149823229055560700661747145100183806516765678098972970777588821851318371354908781191844100617268276995169006311081944616591802907891121122914745073240063047714277066094146397809126482182121251711321188418409915499085379154034383217703911693959353182419432632235961817603036148618163250051712997168806625892824249311805027183316428875265591515295047192791726935688793490275996229812324367805960413215188536012376953021363869603077484072128655107690760681473896985331701565353978110496912117383179392996701973505164334769384604402778244366433027299820241699009534463631043248241572186940931993860678138296498961533319031942694042374842469247470518917282729148046740121192822428930668714061782871992416761289739562330293794019942042276327203427801691642849790763558205775388901988944955578711679271850451832118490941259775769187481787953021256940880413290941759959123491143922671981139834685160581362924457826226872805626877658267821765499545790661077816797559547220808932433087632245901948807057512839678300098632818337827247025204027953171595827161305280766061850219612276681016436002734546515763604428185395026324578079993012783558323996180704482717900815465631834966698930658193475762740913350065331840682003755229544664135686709743078662604392732593699671578457496204898363553859287453837249577350019704909068295212689904592843370189649256839098610096389410439376873763381620123748524234522642170018534218441949604313630154640492867381575857185506671624137120660506011399906632221050519193294537595726511288151984771105495488905806181325946279758023699295100880634384778442926740783608423900135264913116680347081673884636268849028978890251576722498932163417903971288557864145880534527827265526072184826364123584647554494973058300454026875145779892966731616544457107263218956183316176776508404087997635678078050920937474844856806023979414414648022353189109528988938674319257914180682080780271958628831543240009193139480321770147193306846121799122916552112191373564965287757456061162601530071638711963686845840218061974530243653000735638686361625753918948345569355476927642096652653720423714711388995069258404573913625883319750865882356083020851050356628959925647095922226228965681746778391672229724365836455261043203032080442099330318700031315905996109115251300847328129287601674062886397008890449285484760583823044967197102356111653094893197333773819618820951789366305089190587038419758105796754874507831115105468656034816355260148101067115701305577277962028402608561704081159085530089006374554037417216289706689504255552920841284091965936062424817698267218588840969715412595933624505614646658971746181491347553992299885759002763856358431761452779470119111187455054557025639861668073568879027997574235540258440583122005865235875167671249408544573109862445770299159291589157335837249187337714956006940881472606632365395762739843918190272868905859293100475378130195385492560046815882961948806569335941118724510051200451429047886948212584584619802141623385656182705654950883736346591385079218146453525139494299999257464094191136173403534094191516930910206188940994540075815917985269726827574702574836412158034036312470015267813074107659759974635355677839650581627002812266189504131862401743458647652281190354496166284549283798169877587496068813529307726246308969047462037548872650979909691929738574413381761750647932858139348582023799837138884421592292281636558988990373800563924856950364749605620588221890071147213229195491461822536947815708623382959685550978627203205293794265216750584274463984627254904652135264101308874015699460809651155982270101385729755742877331648804009719240003679905460224112507814908862141103529108444011600143943217680560702983892119079397479906790008119678730005749403242440987494609520837818371366949606724245246417014643563264781586591506345847436813466636244730087299324644098400028633747831329604035880586076154109374246267624206792213699687804155902136634125534424752556009382563088080151497839466691630597045055023272799918584567661867848860436532026850520509174903199836282315748034166076353271168942089089309993365434043333602275642635675106399413862582203021725896133819529603943562568105239086156233709681525894550807948353953306034982503915810952278107975008040845952573872269010577280146816652653844148839469411513211139894752787012177694387435296636247957539402835496028356099710811433714839336857401227891867443199412955663167865913013833036956351871246517570769512061970096038240222444363032398141884203825637253050999151347366120149771177353631937007396698326037998804304043658711536683407055543567328746259215187901682776207171751237236957597332932530509611717796026714448975731222034467427191650778861639337312285983188597136219613185032506299804348604710186894690302445232797653174868881952443318418413043686189133538653634703579075049385434408910537170314965875827354666719272848942897736003543279951205004030391527921507032879392137470028129391356493549914149054482806797449305687642250212359126820021933634639347121581682289418416695953368890766984039142433478786921978494521004038423252405864076963279734636055701684451473987807339020754559636693080906107485791708459066841031114919744276160676890889684772574570564323865598242465599949758418788214493969222408185736698409637995769898924817652629535850214199004690436236115042587024928928693304494248621396887755147384174779178851551300130712663322745311946419768319328559779245517479598776896415044329296508045068754402522311104684207642483592294799524031564775099265758477493468837895248186307754961788918625919205595210364204537948890410461002977489094565409985456967456634902720749248330563074254678527845458731961416188381022476638973273384706972089861486383580101689210187216296419295604100559737210387103040654129054339083365555061824431136693840485434170406827278806410622027631806578349468262943267951373237543646578291391161650639171956527863920404489416711940350176260967502666889286808758521821470632259296008503778933511187432742344077826804729602721101529120750299406693253318674107237836933424441835344737301547332356725155285558800330606807590279884739324197689918370485026426550009843674305254180039256217528992268190326007438736019066643341431416319181488260795675302144897817739353431069686550207898704281521211831608770244086961341588379239460581137746874202031231085327950817007962350254572257956864351244386943396511796739405401329233436933543283837059743662843796123137944758819002890294311430248561130897749083870395639851759453118213473379480949353892662582333615674909413490805127137359614223192320481672001571893080071771873460293568101621026850544898493598999256768022130619403032552389171092693999723992112035099277785000232193749455649784414862770314109762728494486332785742596502901906378319556681937038269485659006529195968311997078456264487587488385562567671496478786232494127528326697953224005982693385302708071022291015362370002883695324903102926597918715685481478065550376284339506771213214496806840587155620572371966167713900539907661764089311686807897833262029536255300197111506845841996249914722555228181494081401507725335167173558175949494015182139424070081610184769168716962814556874817889415934237056183160165882202197716379797595937580620033423066098055960517318691031937305952159893898215197473513977623970227079608944275545881604310744289060256626899794941500441660975993973005376974690202835325278731736003839418178485280057809590294789804248231157962371630936046944219412624173544956896409977577678822407410891174010340206401629555900955161527441844605852469098396145316895710329758204438105825992470229480408851932954815355728728408800664446230873954712324066943745215411066997925560459285150640946374822909252718767706925007335223571907975479850223498050043293635840878024043082651057943712955632541856553382091857223802537066575506150932522788337251569169815656839407494894523527014398664791646040854868464216073800893309649623443633128553684098945897093132887328892005123174903174425692577348940356181382198599410374713448188169605466507425457736193931174599618305219683449320867377707331358314133387070729887600774081133301044211008522405561021127569363834448766448559613632067135521454737126035703746815924618666081038596988731243532973882178556915023930546610485568934352952289434455732181702284172377456139680747216370391233649174373475590275526416110972770566000820943017542535001977017197218476488484734733891885237935368167762033972021235106734556459751018517425542805786606851556570317422958361886414873878706726304436837283175020187614234258961266449074995583789337411569850707048716462793227682875714342838689508249908208142334033986746286502570269738040495383593325831372599142783448158543985752396679339820505949511781294183990335724996187892079464941351006996752311823531844749290395133783005423195227788437137999779946862794120100674532071425042139998214414486200466689735429943809431758856654497712945582779053945264335395254428780133686316010103589796027289497780481452035874272786041804525306586126011076377376519076847939499832665918311932346106200294003589490285830984824143900591940811778855583487200531613270531083112915579483792057088254977032288466165966505355425240595039196087967027400762215755935909976326938956759699981196525792541509268441381373672490872509793640913723511426542165772334719814429701188808474774489516473641458637810356010875034968871317591605210094431744550764248679342584914807565347540990730886673201882931778063028247940185628151759276657198264736003148659413335711402799156761239690180950435042245027041066140122832924115871381483687107255951362161802156936955067256608954947086608209763861972766282342887118120823372088421347725183749888297747169328098671699599827259496022307988618194322348695140796314332290192678130822051491199409089056878338882677278975390744350507711917441936912982211832662089342930088973100938714580446331035754245995108091302017986450708203461093788481411619329966234386514053566685379059835818463665142890114625691033200752868348026939578763900066698098816666425984433532368065080541197808741491553264348937328331046693539497727281468398122670298352331474358202289697664630339499006551300450195194816993577358347273621537883495724169695709588347516176769689249627701094006710264693532835807932526802337691344515366022103035243537883991935427709583846033104360858611517832608522876971326131860379547985072201321206295191615125677036926944980355568079445860338265528401088320145134170359499903728175868460533987939455982253877192609691589366116514132747013677265727358794375389986036056580968305284955402152493256240269604102329498495007812298453002031382614105990347691847479379310790950635106030809934445400741661397358074264924640988917870517706829357309939764087260625831462022990645305152310477018147951744236828352730506849429844287854354782067067540045704627150382937148460919536739488075527778806012053055227636759037602833721926135264893958811897940030458046454547927936967892908971345777331883722625707525592878816899681219557834683132958828937287539724393626475600252857188927877647418077429101319874535918377984705491631896241890155697338044031802189032960615021792781525085270400222788482639175902591156433777838150580929090849850447004064715345611419918103100932888945580219107216633596734267991941794163504124230733755286873408233315966876163622411179781049825753375658371828372584999410598111928150885341890990366287451291802652037663519833111994040079791062485030362364602595697365666103954030160086906131901306949098189584379607870304298849289750683863248146207960529208191995792109090532236522493438115930193039064978219149936856045608929076362339273130071194171721468583081010267078698320149780598921208406880607329786250419409273118422425654373206157011507179336977662720858254735433753037769426788124864206567597741084893665037952840375839322463836618820604067300442843933387431077879423943046773384981389208465715165754572462957954981021396815767299070264262550099005511722273762649972392183717021263567644366276933795173487707664166278276820371059650652455499614094666114319043957401585621273595788133170752162831456475565284931768278962098484857389539173392765082627541504893067496927129863105062356947374006748432048727256932807667376419164608772212078371324460143496927510853467642110318690062736718507852374586011760984085590628858997996402949605697248979452171411782454626111506993703641619709687477649900040878437039153729785216128232612601390970971185054751823483714078720906109140427991495771898240554832328518066244225225602847669213949098657914817674839860151284751903699741643472631985596549165544832822242391344238969925647009595200234949550493051359973929908618820689548519385139895943452700552983081896063924699258197299365107994254831946071855670970798931106141008912181604335540460892664945475232790980027100817280382308181124983505468277379107360253182594364023929797587530594313726885320662220119348861118356284593889245332407868324485425196351187234677558054238635440788888241769617647277135203602374896022526304769411223708948672610433319838589754518441459797272801608572245802787943285754377842046745048206141466173124433878820947526825208474607467801163348472494389131487608036067398093922054469091802107425519797916319154432305744552708707112484547862213302786914437649956435135277440041972213556268595670098435344849906099695419820833615655753051101854811790533604499504760918529751097425399768386071487557921963001138622491876900914860005237463999160331130539414138060510554206617856182688754587419822731236770665161135845794682044438988958361668354450245083825937482851188171246534702004490941675714681329627077218539532993743952278649603566209925639039311146691567963268810807930334576396710594463451635396184225610347438125094980636250933144704153151980540143962020744844979809801696340878814854443777514436369705406468905783200390259943575701194079257718018470180859515682807131460105817665269454808155093832502958591014213215425119608108773993470762720330319230157929308545866005757130809660555828965232846828605519972160517721342879533509761124631423497926486132194173777344197505858219744904493479358199008046800088262832400253123650007470314413762114997210394485363189781862048731121162389963287002377487667684651604629049477417861353163336181152467478109951149812464495881979688789928817070345502238109360360201528559647241869801340865721927450954022047531949226156839671824616322551597813613733629020129034801030939908027452952727675191087769955030153950156279836559445351410797427280851258947049232104368785183793210829063848067591315001461276614501133286913555093472564383791122858686164288194660888006725253768750445205655293075687579029853406524026022658497449908438750628914123921833244984504400676551151545243691921396395500321262298420370012033293012072939745438333854657160212723533703510360400331516560576945493592566569444296145492715864253771612602693612092802167605703064947989449178044265191634579486397725251824522372263820103658142567662067042162531418036635630698199000894828001110305983686145481002106355983861246638672413428082925194160834535278565193214422677653204249609801371058532424438595627178579810808193034724257649653712086352658647943475562430580980371313054737102679074389680113404722108796672885470487653935735852485460143154787693930675847681127588227090420547267673879488821171509932801600950153356447443489012650887907990994064497151717377823833764067901011936257229745860573978581214885878259696278562723774866391167474119502707828802176032871361581549968077004831249646513913526234525303825111661172743285182764587929534560194537712428672024724415889064271751902601553905283844135806547365312153271667156752352455719808836469529904493383413007791855323344006673431338799471153117586748163510143790681398915776002730064981488173367633410036606699893535171680699272018719507965065884180056013919028251063637744114828716049468010557436838524935312744990064472387937528103217319303095206883892511139974584394130671851575993232396435972029415566968889171457671877110871325960254232424472765758394059110708275382171948299597514172228909771428260515701957857498954588990514560097305601115663736184750692625184984087206278431746079604552147188110311396163271273013546551505505718919342272836970356817353631917243095860770895691522977244447805688149532871277442736121100907122176242388514326633840408033528049287646984945440042780531923803321219698325881582090942470126051989858797605298974026125957935759123301047877831767022550506141065043585522957993855245791388997629308548630630542334681607759040755274750470180807355357888778955808779474854806226227639214040143731433143810348104735058300277605763957438725420995072910675107563574599443782413895874345937545071316492092355658232610018997879538853106369463740048218339079231191012226162113403887766786189338596475586650015593803944612470723343814718856277395421351031073783234637503542682420565264846853914298211552526738457082549013806486374458252198490316646161709431104037585471604155709401155546442807614293459514944540838689420707805842645393485377232453973731037173929922592213318482594144684739830457209443881515323921951234032880748323207924811695553890429295188695294160055572414936343065945023879131825645904269091342965549817390754592457658341733211024847200730115189868873523378018300754126868021110063535191129202410030908427655649753349626985161524548373745650295241662099830179140191094416186168748546350635552333162763620207787642571659318566178355494789313216398576809909323357091363920303444677866971774914308013064166877634510820583607445443675180513187571335587525995990032918443401629043299728471395557229543292983600016379194674337236094075609759549916604067664416079198715130537778949810961518911403262866958095743809624440496520873452280430745403015290717666068094935533832847636073674585312446131361140126881194411627818851774955159706026836713976501799213606432963057236529400479980221897000898856463671473225139964011961063696148092402186342967560000033074837754362098456653896840305584392870077971633809850137092616337027510906494973721283136919427034110837266651458605201350989718470834870708327491074703077587447170652442861051003798133121410564889778162650024086813050483702248007429159588128526941045746740750189017011129526137826865290369329172402890802212165681105741602883260355133218700613728499378449250907088303075396048545492589202904659818632362740944840146161963798275587119346072190147809373376051937108668778443270117628164923366229193635887084891801100603397642756496238191809783046823490367542541243018450809969714595355367396998804964405116370622939957277604292087128111251302381542186207874961090333475979859764847983908452861147716395987618150110244365230945128117343671375233409673485138835713443827774079958093314679833340049867079734544441536501826149759867134838925198144120480874723126539857248123443570915102250428410464845774007990383150790711432069889073680977475365975533620136979977417879780976705717592945994776087345725895085520601988657846167403388004916295321883762722938807801799526228703145076714251188347388220972477481048820859867559013383546374545439834985384771015981085853275929852360897571582416284741490887316279045859757426761141413663053841651600534962870529654247878401453189130387061879828112303048025677500370036904640310579381404445456006323034655785243471768399941796280794515207312808419053743132603014916312786719175391620573550296180420707063579667732476939997898248630291865422469604042928041466709119795997479738534630170994482968099186571809171303960975253955101864203353207224332888014715376796279429450996396741227661649831084291188060596823890013908245825586847413607232401119102665881435419376180840074411694040664131601006639580470591232859806130224534218559330227067818264199661197948779505682538594088294454253426264636425340093574039613189368861436243718164332807568516218102367220524094083421267753852996167627026353343178141629712522106762769035635068885238410559208593709843542033835544427950429468611192617611840148732069499703451452363077196852731519066167811850869311264960767065227559119774737925831102028857530271020651261503859795808092921424878773635930084006193832938666481202235750302504736631879466289722794869355622881775180238618441745752436282323250363814825888771553309230529427682929702848209507337089340943875644933478369125132189209923620719319260650263472393684464537712433665829925605590716152937280919005493805235764851895643352981733382125658581464970706246420743078260396305451952054574580185962713109421224801590725715368113700374886666729250158593333475202776594775436696551296784031076971411663856577075474595609931069996918764756823543238574048010124500685501144502634066121186955502579483335247915614648870462360930470027360138420652239962099957113092242115034661400007717431805655904009839883000796132246106484607222301688569506013133594037929530372202854062183721738773017014530407497244540424115067019291667404880011602671248801432078499997044033094704584036210036007101731145983537562853153961322893657995334609744347814187611831895177887453626877269378366307550144836853848957255169358249400110318088822039912190678990142050651649237782929801872151191255602719796918521505967412509002967886412213608025105678538401457850425041977969832791418898272305651818133220810194072988410043457215393940402782473599790209430711959098521112607761533700200263028976164884853815096089389762556793600876091614989992251478765544949391488326844930697250927529697222969164886621880865391714428235989335243540708483659198495945479078241129048164479826245226896556247863655463964797831895947457852894172933030683030049402847624055672306505025219708568599664473197776082211390365574352697237944319177163762138002240168355574721833006664147964103585021650904456969467321870583403317648512371812622967986958720162778943223893625976362352528146652765827714402742568358710781595507887068222149908391883160397138970695354791416182170949027915138681162607742297547091678438199465086434989375290543197063624677912688814990440038434324052652723628109417455602162583517299713775601343273133190248013743714059440248192358154924162289450516415156256359442262566785756448569332736875029203990242291189702279232579647485818923184715866027263335265074853516926202398742241015816040277009555306829121410367525552242346393380985647662220819193629385786748886163385363728101007662816056569112254591772772147008646410517589190045805067222471720130553352886493680677051265572074132508895986353951697366831419958916480049713777749175109931673813050865218352877153760130561779917014835156331279968359814751246775069993065757255638633984618308014456789782756168096905848097840897601384862826782969435147982073970464196276534189811596522065259372933486278352483413683976769619367930481353441032219906980744545430804853904104302055101152747148271024801279860282240449210177922677886490707629988341773735561306820460442155182372222162332922937712703378643002773711305061664685902274804077156856269298264477100757546073134575491599984052764496999003760987368382213819339693698869473306642654857872201822242132035638160423789866924138535233795218588595965135389650025565946018772671666086563680642544305422396429770634612387614722750882978489707147422009459904884119441422009065899050612209678552037495349486997014262693093712505676763732427228019585334408133828943532134071115609547487562616715883224352582374826586894694747616264167329172531461941423542798068945598513462012102185367848117967344389856904146145049293922848775558422984950963560559710274878513290101892843219465874985045182075382202056614808286552428455217956678497940449979775176870663004488641518065745336761496994655098277699979692899330458712869510935352021832846944010029263395968948342548253267943380338840431274568642585792033959495851748171209677513695923224792820921793927730878031473829915940086021224525602832274533188252189933632339687115706276392618209283022186058027902817761889880152447504262638816552799471058848720645002164187798473745732748186439332320963000163927854899816083607011624620137243190263395012780553043283619726744384290639813014157143433580785525339486951174540828329067407013782506996009697393674748543525014841198800123978049979501570514393829179793568347561440152258960720991845838926321444983431408271546231124990991761648901284813517927815501894414221883668994223441599439955461810611057238186220847607563900955858726591546832432811636099040624502300484570494903870696178017396169029886039129371506401908385446071573900321120920045998239280294511155914242598631815288320741417358867305378484535429373953525346613440166164273452813661516512744552723634549802032688282121024780445266109731174656699981931145440887157921921844556695281422004176341939066381738909899581420778816816594453630124786909362382323078676339861737252754450632845134220238125331600887556825944366703914564990889730435169606562827421500454734041983390397621123087103507401795523650457371361934069168721452551428923075290338885651900918028379753942880451326131936488367972348467884040230726106717473582045379064072917772925868066365412229346770500794494327517599681821519574580565951400916725915029678431065112104937703559606105359288531271966803347254483091631226651806718051425797143116162135354859573599280127220175474271207990363967662675462866309527548554482661944846899429469179779476293283468899858383555627584227791456682951506409261840158398844688809409205848840071283744590639630321590360481338291780366499628129718091717271925332796050387084363459956341172786774347281157273548669550939757071008676711983151634489778656590695230279789047690259023550321330080807474706088278919280229636180674911312277455863696839933189875830086808133732767519048735540879003887664587591475426890796015230845572951239827690181901179086054575303588932367952553278811098246780588128533032872164499352800795253255505948074654524750612950297017897678716355001292297325566866132583448436380525029932025597669053453477835937467705319501014920692475449579271257928667075832402857964404832860494572316138602226999465073624738698666883335152303067294485579106926973586725234181201493321195963233596377409163046706895825032338358345069120999978101418007196909004447307725330791247723342583168028959521659115981116636169985778389800346280262520316401247137205029435770133115590718010168073947841669416039103808214205348597000724826577654183907357129893077778196894731929201125436578881272246760400445880215260638761198952647474279630939731296197593974254306825765093579284016210144988648289533413081379511802309405913761810201395636014783751570941405570071959058191079173499325811504037300798058430256145526831118105741387944533023283661941239351636480684321057369615726790818148716536260015815793050678212562192974787603685917195048680816328402753459944666999028363255694507952228674433297590368408776515982122654468103643312179724143548081155717227433918966937144560911683530555253277529503906296740004660645371819113310574599661146505294533787733709931963006240096596724846818491567367429243954865824699450302784155531365559690549697802282224947550791606958627098888577196383862287313813417979464650980158005903215262743647069241576407555492183636881456388165588367283194835033771559659089122006027672194631333699909876128767055821383055019741925403200538285851145095661513268681566639920589162344876018023749716445655671157748196890971933457610799122766273286072095984096082315235733560123813824280197508611747507782857749033027566132544838121197266963009300382881020273158048402224918645506085370717812661721535426375684970827133186961740169786121525072416776684992906893044061005823901985994163104585078154603768244256397973310809607062565644054352157098792265642238032076505748652561261463545271098759574669889582352053694944296195225699338604434060625387066044257699769586431633345005211718398528969392546580644788103966539073470341275313107643511300646468807564993862465316665510312025015035931940316239626335308708419016996730577814902362432966458606491797968355009649186832081752972011888326646615049177869394354824626261966936640888913186300715207090058004545201607570415659679236926661958189980285674343006950011837647458649293176126289302968414098409142123038304476333536519300253257528570748154523165483837514160283493953457573893420692555113321722851507053809305439538646476465195811293059747287176460547888341362015761961595976868169673500199183710682096681000884834859211685602619605009256722502294433551123663034193640038508502397971766119338260120919700024820592159299979226151331873885681140091294812089896388787711437998642320040095811848611431490238162898461144008292261807186792387572177720776245681539459700582109882835622834644806602870194772699106328316332288769025836967337998010299376418756785207802336953223549067769166412508637285298097513838473689727840871392523330744275008687958435111647962012119343180515737882585577220021506146273263181304625171182096963597197005816604435517439901072393919918924734769536192279937604306814010082836237463557588104129947871994919366026442215916900607835492163299521045806310949547891874205260043990261927907090830267011943728756568136844637228367669508345280169737365424479989267657355948589667667463992410603704204428600615152486415887097790521781127302345836084861402692786959440981179466071482890663772707838572329988010331877899015914901324150405047518399702387372188013133163412847447398296911542083131614953774696354763761854365457476370477335382794466491737172956602077526257742316655053474404740888792571827693774305355439401200202390095318016818637625367278326043683100076808503483781027501684648837073222635458587193383121106440157574672706636139353850318743033813461057309726448534697367841251280707112034096129182429678291871307935084161889667423269498695755098535058579217032501070055255059964106920128755250993244180424786369637019943202706988024931555179493205778257738042063113190812582552430964811414088906893331814012125155801933818376221580921755775764170254786460563835004913629403744610982989296472966982430320825291791633468754448538818207108180935115189671376071681123037679980583618958501982613457079100221845169032706904589658769824082776037154576459717236937747554335830105670871854538247857070280958039765169639012069054326972195340970782562429065891174935642881861135334681684316409883367409720286944208052777973741610649466951805927910444345525747634210038004646341331805700226613234579272891748281745214057739131586953224151498127174713962617032843708720008783544265010987499059157634425437147372693507923594756082240655019384078250899033193656037484712070375636005698287828593849372380365808419104255074792203816920851999749620212928514504409344438622028314327790079297174544811405345278247643185970833901894605662626414279218478050526134660023103620307359917527309429759560436897159258175892273036434697009427619456619637643248994039184340511545615362693349146291790505490250064170981897741029684478721673606752681819714664565863135355502261796412156381434030569678618217214109185498024179577590450105769965932911661903339429817565157187255969482823902495919019823776589411553169373448464659684836569222478066370415147072598052200660999740701367200210968228887414220256006826637482417400524930623534635674552266463113208494361645409706641470106330543696533125259850775042070843968130241922031944431749242756321070810021949552378138793077210339492321888339898294886506190843401051611380771425010309002210085299959675629702661998728908964189326733368623629030637404983020910673628718263442798584791075684660154441808804606436250971372635930229389316666781413598247927113352509017575952270071867786514761375748864565174697657642428937538891045816383289480245681121142556528914055899000745573354304567537822600142846916868280090356405690657815617800629618517266634852660702331462364520694310481228612900612571164675564105541336277800752161043593067491150658665707433255570593283135328719342761355559177371054671779190729531671054550838321650677971863797855952593804300024672927146951269720121107636314868198159860196593885877335560481861596933447067873417184606450066751836699084442827596444950034660108614146878400270280640703396486404475892330006497861946561134912403834450299376783009176026727287963986345219301455023937797421821973241640114038311027670634502320175102960102450335728339184802361122025357526456184924535194405323680691425728191652281751877515362020060010779205951752226186982017927794063114304417438743445252170759203100690336873387988998956131057481109284714525547018954787322189704882999043885254630920700644519714112970231831287765377489034649329940592410764157377129671829681417083213090592544416659859530159716911207337105410340935974538283350608982807053618359346397565520733500853645610938926276287493030936905981201353478228695467177825969016057618821288177070408053709439859085391038512019525343016823735950348490028506382082117469561661060393215778136843931573899402418596556704523737248021387129766682961227956319441369900920427316888443146070763807143246992668475871392916654345114825404146656166644987427021088968178577118249312868700290608063915024715986044959193252922596214066223041904270647243745096982568174537065428783058590800320757453872461357993886292047511839544263504034546249729551228881589881771454804123459032402812912045263880976906733676454822178917406725708071488354398478878268191360586399921877874065331206398429720825210023568804045312730362831743508063401054457282322031956492100862658539834689306870999423854065877321493940440636252662434665983729884643549675386381483209239406808514337987015058797945019869256025478834790225144626097087861621886166193981060322582983129654173961682083050072971379374164627926796382466769208533513725901932236319743129792641625460974637041444101343211397947458134268258638475875593208971442476643480890851888246673138390431463360968009796116380637855979546993083530018886983170261228455023736558843751833334978046669427830726183662275924534751604164236220554030844453297778150837333187703624191165405777403290466258661137622060915440876032647170455629780125872085927882837323415916562906139861616879665524108022740703770267811771430708757689055443890793040385815027601144915860508253516921761924492565146489564618006744125159017175513844246951456032493248619611724254773405217989251531577114844944606935595350643123966384623485649891385588963720001938527930578238756611624275026343267739987771117916611734729908129420309906284723704524161536026884424487512273249764183606032352262585730097722443231611847995215887351026215225698926993798158881261654684656113028045974429990206457562492217081770035559770003906912780656355324356844394085917236572935952529203036929521195893492184027244134685603668282856134644674054212756216729243508401005452107274016876418973023237106766343934227611029892894145109442548583325632306138011615737931273066161844448630054441919701018722106421544164009771966023240495324644918566932901828453939869129639270429791434784409009211275035778070200714446747862082560348232591014730292996920140676915633953360758824804430430031297094397278665754850644608770412902438514327018652444797513549580007309551356507862172187725217285891805425303068366664117669500620873317670784438368420746804558169712727130024931551348055138449516723299580523819836464109511318794356043261705759139012135888106927805343707567001477244179241445322596383229679649550138253603296973755402023455392255262381070587314740279418484123197625259504618820530745967630828208391756927895765890653892273925035972414341515615483899330521469220164996067564627468201758126115438322158376502801605072961443704258491138503176326011077829601634705963796885384671552701781605426079940995396438582803608302768983386555275389420611237397651322134884975287680214643944459394630656014944933659577609535233379625423793773780009699449081369868409722849741473255010665856655023189746959013076705100053741974382838242009735193783885049323810202272735668980141058418419357615135444776100138438094949583318927775028223350977248213084949560446989454152963306312046915019607292788783674237102867972796132030917017888827485946589887434425307369248444749844629649084563275150056563218304639878464109712246245946878739856531978542714399416708601068733184549333560760581922563775168213455428645928318610155680481878044360342969790207443862492203289459483628067391480405380949665955050439380238540820219894305124305564230970558385366111219834884015150222035247777050986693462564060845341172155785506171848073755709706509125712878621535670884117089273642570726498266722226529777065930838033056759551987945248843821450216418343021446508556595660951724840018799315841611987611130750271621803004647673169905306637318156260612465746218975124997654905731947373155715419224265725233062500411383976141640393599994380177177323585952567192803385205650744106160242053963390383477381913061830691109853918109846789307970263404424306756318859639607026578263398069142521255867872613786639021011076513219122106488568828619576158364653597140680757155411809391088250037046761070756718276942938901953480888380276791359579126807041089551700299101452715826427509588344467921548729253533692758253429441229794663420680798823057537733514408085359438596785766710423595071297125914115004605554712416421354441665704352858952865543033792944563649107728078404376459288793950832988633590183751087976744538152954140490033399951062542100308231659045743683691624259020744736137590978645104401773331809428555608526464088769447640417748835214158621489431888704580889331597714145098142253568583786135666112810352627738037621852352997100733984107195453399411785528126204508876267765315100748724469905559733889671350824619745731247996441187639807838741448027310671115662971083222303264861810617776605233468195022056043783281019578556340814770638517481936953050509701820020509718197197998881515821433828255940832009082873323495191093734889535110834236580663686556281152933980523832839287626073447214743145515517040125972069054491048329558761360145082397161822618550687733624962418225950208536806814806426102944554503631448438641889281086304625746590691381995473280506801119356425778231534931235720982437510009164906084664733437356251985158426899053670133288468867555214887280494039209635053088182681443022627415095268075195738945187361128138285895259388138593161465039100420778069588621778068095745769529125428919579783133732104100857841160156988529562554851315161979116842634503365439212231805398063876816159740787817836737892672156951578102504276162923372017230074674358755146122584633694584555027193650108367412006051168513508890322093448782655921147735227299152066930617022434927527704167567269296357460617878560219418998282938272925083489061015881668321810469021426223545879682053723983831713922214419324268801898205714599993303912392194357833674278598374029277889099598853739253305953065155928413168185560877722434261524933478905731746107352931997658153287090770315589568306634774132953162053011404600268922908808132318188707538741352189781692322166764173095256775099427454531409158894747833834148701382349420892858962483892652884936569661051910174378668936063135611524466027107911345352568619711894350236326273500155207853023892119186659418392888370224689362721329504491119994303489903673870037006278764612330181209303378511940725004369972072076690071240962274105911863250359815904240828663754393540182055703698622261300112381956178941157058248079684587726207098687543720620187961129015539487960232903671368824643463398856318711017159750697794421521585221232339865031789512386237537922784551018187982133812684288410174002256905014203420883230794114522130128579486349552874466879791166091744835690644055201868004350205666591119981027409698652250331482028060530840807406483642607276284606003415109585196607011742143256563869467613151348614974165112067524100621502746856057215078891232601460374353631215332484788111432157103460359236880329841767146124244943739301648329350223213066449336191917522873238767439626411599743576060464365336634229486607743760913458419128977335821181092638093386626724114753450912536798050116382858435352147345161696894722875742696966899357347859506397447489725211642010249423662968960688786772601830987934447465790251192734403329547371869375230703250545828530075724907432835139716415423825740491052306215435829310237604732269935327542959743762196276810909801808615336879895632780691710004123527364324311172523919107465911807000338165984794359541088526175431149443599309931208101597016428274196454628378567289538644403988371096067749471220834481602065250548376093234985511428312381094104976665800257108362596312931390605501799005833080027737807360836076677516763641826781852396340957617275779966487929627764697799734711666868958133748966018378921111674329241297766564873439411854245591599097303408562529824455397198647512162960691513858028352422670585497917466689946129098955894400412383704888532341476704362336068425186372889373457532176473782408377102415014609841624101999103900443471055800848874909093147342567212675261234688891269020125414639604588657856005835953629354601910453344698876290556085535073496265695579495487481304677965690737475673619935166529230479405687601211478415120879797353836600564113830872018684167418356485784166169526933363977826954225101797408755677855319396653814126280319021487781939890543015670089762474362599100754962953016216167257847674038399977763646752975111955268287892389882169127391955858035282150570295521345273472049504448341302098748425657733817792056692672708683533240199445569587607118997226502287708215783956684109139833778723791136434389501690464980996476176155902110404169166320242815396614725452219627970172032882761754819482109841367497114354362979974283499769278858903761933134161398208784361791552201870779684624817405440882700477815905354703398624028172145043133619616985162760989003980121849662979437005896913150466547620585221675409173866618981860103443748653770594781985314714740410254946042861326614037088352842023581421343172195484790637129800837736885665203007587401530628938520187910730191408822082302645379250803335478738448394586866303534034238404151186879506496131540036462568157707399068443271666399119165997423495723785493039185682821532235302450313758543828057670253185126833450861905672710882929374806030778579186179405183434839653926548386648848269828979513032668910606147209672029858347621486443355479209718000335744892361658515835573071467672362674860344503698618661979333376699365458941201206909322046188719725814508816085923691339920762329685694137169595500379153670731019632085786434400060367073094382342009163984542142790808266933144682740016780968281153004200055264585968205207864601988583623690574129865127624523846576261936218724630725159514200410103650631493669228331952838123381576326169366303001301828639514278295690450318082474311560126671136510518776719958744325380338167104459805580599597253223691350935717009188282946670962579440590863544000944275728788175703796727734562940563822922537588688426694644026207111229112850595531255224438912407520173152603643514494859700269947784938724646781111455849896893027429951815353615869616499381336092478678918152438691330812904321961708426515264810179166053304118818727875127756113247063195933050406733328598521390351091198514773280726556125994521575904257502402630394919143417268817996637912015235334136792321675356733018223276258121130369785288339999735718066289140560463162812390345358935597025746517779524676987242619295929670674093002934914185918732218747044445556995084233689407368872423538668464501253709579901219782542038702652373268252233931899846172257633087507384367208755789191032245446021392302228948181031668918606004410415401742194369287784873657468840841648012718291297954093574505611960399724722050186387889771380996112299376743841715578045911915736078769580003294196475988938365435526114408856445868006549446179877489376148298156284114181907479652053651031019905410073622898318040935662757146141920903229722291545946598695840902764028979888725831854587786234553341669340317423934864972324355255775247256361281017835451525238355850914243320684097311380173803144453683832052826691835904816043878020336392400829665143500731673357067578239443244182662451491826656087902038856245617477273548219645764152110429567190560390704020778591518876463713570608600541445991010494440811518388800799286892222956126612147854681244838053125789921217736025191361375147979486653190773010580580603395504161360559550148068223824663351868652580553440365508173508248976217747914963338891620602339125575571960208024301848481016097166228319527226081979176456812427202272036963538284375609273205554963028526100318602441084942501319481840505123215910380195786898611299695219417417936790871754617461933007772881160845732901443519332060391255961742025262899822360528414890294846166119007648521090821574152723178383538025421403536410548955384448712368975237199654418583669329380821208881719350193805705239703011188226161456923876784470801703359085438010771911051697805254532667526248972823883443452000351268152618446479800659601081857389742378142575451432685061303402497924341680985634395572625975123712062459649260920701816781051037995630546619031227218211019829329683315627910460056297649907246407194407466741976090675624363623850636548058993530833635596335812608936643599624777230262649663110660242063181614770266794501973652313655596951384683595118548518562218533176566137533100524095578300016816508388562868044713200681483372784540404039116337846819194571627865017701113709049152849286605907340737143218120585531758932657498597639702452239869195651350566260274713584889537767797730785884302521444248911516496696073204718678795438545866206086147216168644826262549824125233687318325804617015638865307346570271208006371080558669128296874919939621704671189197612031332758132777548757078835845331354677616195879790421268682263076633617309190458101804220258652825250417778459448716416077975319615139964062210986340222723165134409999978406135854402934103160917775137781589209007877654379878847328492286817594418696840166181734373667782005220276572837364075068504005776850365422419718596443153811470302195929562626282624337009911889467790982288717306041607350897817620599263760214994083172275865807598760400842463867302950155721958025271695185371522012094099712238035114486878244441805889830352198465221381840051455425697602361587349779285850952480283454448034048024348666486181241697311761258819256986614795841465080273288730091928353454001355698139631729534229902212347819942615764817263758223304312081402541461013456526115737804313897315919353329680852574740014225698419798920852075040952338211785137269580497277509735235166680230865630943988791632095214953792984204273989353130580181577791889057755089047693962833580828577682859834984686103651331010997718159061371872609510433349920562677773130590413115657696979775775590498622404750606156364382925094853876792309280215886289215850227858566107930854162665914117276476427996905010505096195892549919502148152009166586370131067461482538371434151385239827878510523978231465256258991341384334369766302685605987386915377411015240777030391589400930962282459947711432996693624246325284283039566845132725203001252031256868840571880615240882846183737301269705392276149632536471217880845985160807282666137441335493779690720069665469398631496354681328645425037472733135251874347585204554423205638715543949620559919876045828976864387036109982061641283979968316975663614206305871067130527542776136959295084661797872547325491707485333438660787368920769222655268173318213215388566331086508959113022734919290092708332041770807924390147361026893397250166511981470668310234915438556018731135379685766687373814096808780853884428433238634511125260561453543765637690548096491849615141576272668111697865702136887949593143563394604366941169189110575566835535349616461015448031260807703486578696641947672500561377427817852225543536058104806102487532710295181146649378313411218944975860366416293098385063505985046079596881507849664036429768188938894476138779040388341137010006290585976425519682901347506133290332852752514297107362703980832382591116711442891327031319177155675056731251148637430424144858169308169216543833955984900583961201450535327862258609681435398404417431230946374771538314627359256263455560524000259093632278114716399412297584194357281566963045775578673606788591618371674667238257385388523625126674113982686630143507822022107649343708338974063613804518973986267730456290669236161375619060292013351738117679413582903612755791988502169928789871087795232027860057739730186437590526901733501695366018083513877201437911577968398698306589752677896666228491118383159769907970897966103306339978830059102583866908543649924350990123943777850726864493645493638762549467459769442057555808688277923057967969210141507965203241938832285827247069538757937400813969347781314613730534950712138341947573941556153860767709814671926666700691929765793538230919282105080868850247670423653294823013827755889397260734020243505652235307602426225008706188899863300064587159291255683050478715609339542151470911409608665337322622251201742811028024359019400255343407998098238833299514184843739157399548288605705124979499872852942878086812058654192306431202044910827030142209900192917310630222043797906069978733027030724474626030390764305213088685701127549199888586434261954805481877599258720517351436907874589295265839325418589680845334349596887114408043629232093924776345405107696165914220454978189614114179454814974605813998294707046104231591812125573889998322129756327928500859541271453542196235781444036501339395452773980943107051806737180121241247765613753244329899902946988796167972314007451767404734988386243214424867321084074866987626144343508616931892111622003134212220562812402864429381873793329317936259136191798547973513592301377374501980146364824819886729268451539988019665052602299647448533920855521155879209055398395953654740031001719941378856332746875962338435080803495577957586112849565448337101043698901103586298445900234948066223230086760252791282115119405107247764789330290729160922157960557655441834455047297900838846668202718370698359646169509767550240585758267394995932684518987087316455420000744907020657665271281067508825834017189322314934235490405507752617578484015759836752382898564889969242516862093765234972217416319381981246860977178245449743141042913482783467042444376090316866446076496128918407663586036495151992733590284799782373971025434894577011352086787452068407004360287702496558298129573805857438806244462102910209101552849517001210187723932262247160036940286895408681291361804474380368457697470454483423195094142774017268062405447603675629297047832324073579263788295686245799537609290622398925047760477183876334068351200599239779161608130448935873492801804838253248087664062247862707088113866335303566901180897369771044597400995336939185037005199552201452210068569670047570769371680444556139913450950859121371804063736922365887423530451710351205554179288985399661642726924576431585912813472378501451408478354354282601763270793658494187355608129997367459294569070853344476714991557974637432307936947020787735617065049634135926613418446570265561573644808317629924308517528592199081589939015321327480579698958947972707169253392364690780143446422549664979375776471940343607554068423996312062794973146711148145749847603306712740127457757827488581377313171611006117114403099459779341110415760801375698133401135150859024892500061496002649446904867755724258848894529604378734804067087390326472905757671152872114134208770040560519060579244931071319556567386686763356588009545643102044571651762703406042241914943010302402760807057360216165584347988197775729357641620402336662648987699534253961838401454319402665369696081458685974133792121549308740213920206170138498822418470417412955342415421769315145032579460903405699742703477541215077676036031870994485831343368965238729932064625846753171854122770411772790145846903067848987331920764780461927496737671187611274714267480370069305598116009050097932973809226525601875004141796831485305351822962315418159515400288673151879486971811601410636552134788286754853040949378586590351344731893262462060208157404218510804941944277963384400380532661750214441670464296559498815249643535919701481978843530123956839694199812964219433049301746908881842655629757723073175418929998100686354566559452916570931289588502196502633444087358440250382496401843511491690082633825872866241519892943637820802277177405761713884061170206650795651745727695344157147855183571445841580507592648677279904489308403602254001368848426595079954203106892229843159752039722692482790847069127062736475081399193554881043385312333926352037009459969806004955910464531134947399479327738720036090840223613099229262457059206913231670995613363158175779801051863465131535998539181043019574550798553923407582120040948985919224572397691302907174243780655785230718716291446372668987527095397607841218935749914138236784384762784316160721182836261463998232875557842369379454165997258397995297871487548040138441400778443422974629167659666948948632624884794564937857579030983795731528462831493423084387008005415850618340930428585257086340239383576490322427330526095810524493561579199176937963492612789352999865758483593039833634497284475556708727820384382363681178888116602676341471530226757760961979128601206457527606284407658750429208940279680314018788845088564315554193748483077567338053020167918528556882899141841892254648859707043399833002188222780903888275954408164588674798232302935207673934440309134696522468234110824136836558474580611138051187370988843353509271007191238773821654182009575465385021039140232529855039237790686810434776389748950373375181225326229465451731311855390469207032501717008200305485177551112582621405738763687832515731894139029297657906238030185975059195813913017332440954126078786930532068892987972021715037216127527354034447457244175659038621452739006705292386938892108261989520575948914950794930559115877273537907532489758585885165371439845964501700266564371618919528134963746074747735642259531787436029469449315054426567185203405392585057492620113342035348336478741432573892626981107340758732339642960390391140858956413026284999520237506915532462786052447261529382705056372662273308365186074440197392720550601829771101922045833970099322266749863622159325599145006940038841502577422046928661745377994605923514665915241714223119680070943548180779273579998263583938700157060227357382100095304222172899608741647062724187940806163209566497419147810980414235108529352337717294671908894262416193283984115694783584993821307932369558036340316518841515600082428065314870397432748045448643743297419147115894063088079165878140345467825556716614301991284839328487018673316280463731686293320631367964674676157363460287619676459608478905153892661981293153303915126741728130061795672916159077669669323018280992953246957120470777590639707950643433674695545282886152474703781109645858827158633147993895339075493236890073951725311451130943291337928688925608163002018780509822944278548889849416184734113041577304680420955119121131338102665618398912612884500453572930729385369898723973032899985340728780036322755206697536224737147949315328664663038423914019530673561367896409802547816295461518670901656634935461059472775931165052054753878714634149038489075575978023753008363551996661813748128583147639627441000525455023920375722013925660085938050663234804256900715451579496234460778469514442574270393529399757737591862234440153674204615113941795409421338131092576229790268351269252256021698447530368086353936466918907393747351804380405709164310241104427273449864828506564482544353062611142645667860651643293930063613001621986714258814837065638547840063113675260667667678323295045086839381310245858281175467709190589317368413207852369958685348336003089107930376671741971672219092541165524218285870579533332453143383881722345489843166022256909737166453412669817426153827937262075261293682453687007062028383101791865414782495925335960243616596872972165881708893007721152157254159811125073123698161133291327645645443289493373445981278644980711526797725565070038179815185721913066324247383341020613692835384918174781637609458415703858018139183095383885272037610680572744234761288150955968474486655391157244491847622686292420991187504923079171603313691403175387096213774318175238053727064664163546498627592383192917253397364971272722365823107537372880625075712796889033552677246107240893611977534226698060960214485977229255430254259789070884971226043477389394103356284364456790977935740933766693568751749499211831212705336582907658905605067116460691831755671426431220825039364980985608563935924878959306657878936318892796702612706434053460929644961570734184561394224160193295760949975913863549601745639484872516353809039425091257984466379077307813422477472508795807894315334479897409584143432197732876292132069377935636511370882604640879845420421793184372821746444250384673798535798844200716771765978268853605536031923583948505052047372347198213493372966300083004763820429361606804812402816336149203176987778004394715849204527992649920027736291744381955791550326479159056694967250694745088689841313209951252711379151969832965964649875747167515902818425839719036490300153295760978187361605954377239662861896170857127434601414819693360447661905773569217109292786911393248182607693338822023629378179267648058567099145373493496520614707480296845301894421673531245935255428152195093727661640333270306289658959493102186370144032157311108638778828779076082813608081695578494457226690012424404941651633297351270838522429570400007567556183633171089108521733374623650426266034080396007184590001065083630866288527557825670297771513292701493734653329971135121381629933627904093186766397432361062208326741610384726379338067884618761232214527497562207332233604213556553456121022436051610400320822548939422502853049106867631805291685318920762036582142906797406588124712713188211732228112868726032199160387453579882031112799231401247490657068673438230075226302514586535752249752988738384645635937017379691550605238495235861201569521010426511766777990241628994325806936765228042317107833540944504283360395401915906375752683736565649748496730122028752620473258173482939800546587540160613115017847819843437578396885387846648627483073311283274786366587991970564721246061559785405605503829261697316794700411230769615792854099565734879764254915854322135039524396016440113184678991481304047968222505429309131503553885705121559830787329329489292065653434393004182951790958966164592853431646695904371595011972320627986414373885746570720813858795312545052220217686844039758634710072873871585201152532737677114197891295755797990863964847534947466033523495792346008006477130566777743718334244640384680600216891058639815552366884052754768318996458627997693173350125196918418486636295917297281004032577503619290312936584029569701170663420702419747077707402189342430966109330400434300166801422435444877552303161490438624655599585306922247719849063628018187548587515618060334136593337426509179401422644660986516053587961052541343168119486170507473529164681264039063036178406162535284898584821352758559372091577085805193893353692185234711580922955437527776574409042628256473535741223439520091217533971947634893659702373497974641241508029523025668673803064009244460536182870740086190719613823293688117248018516983375310213704995698427809191721543805491113158883169317523859859314088391916222181560959100802587085903329336857242371705552433931206159220596791431865863250610608468493760101555293576279988396876793803159830665649166801337175963694564319240093791491379660317074779254008842426220262909692750410019959855264262815608275739635767973318010837960076698080668835853892362300239892240821704403739401580684615974691713736281828421111893144589607505996359419520610579544725519516513681562725838473661037412028583760627365937228106061056261734466787425139269421137218430092137975887518956443127156453222708224956266237479247920339240958882352858598360714249552566209001243301360096255328400276605705798957494895867096343795154183237779212395173489698735910043721923707290017188829361628829682685305260550209328943384245722116222234262925970434150625550331706470658229960258063716289688484191196381063534296995789211383769837423929725567501910636935874384954482083107559384596025725568400432004700974399545877932809248971377413714417929016899805983905889294382193897951771747232501858102582761246833281653910983339956985199662294978776324921231977693544025908900139520298932604252671114166927864511090149483722188299714445874220100952218331693563104280920352372653331741152995107154565122179743704476196849967825937783896800690226097093654848000176352714943870115497700114525893788710758659324817790151470272401185264012606938816310596644983977521351028464577136533420020913303420864106394628207061943752268254135813138764297650578813762676073378400571361161774062013135147011105228312484899601738904684363830491949482733398908650350665864695497540498833124708480826247793289158341257424654562602618940705757421732112475337373848240411447163487542337792410800476730881190458314559552723437563980933288428625569351610305863885661572445115637634765062807108788442427659437749360267692041113854758003766894514289869317404951935764810855309033258047205220927757466030133046128435585489105339112605969758960167247338775820708027867058855258846644730850984405798983358800479809239381597261827353475655351180444259583911623378922379166686904142675264341160883141164797246258845192507950237867188792200754769313124487885195791658352300025690288036392173244707173074159226127686394941711905655113564788641724600589476161281565274879731798232407461767174326605272483779605948757774809962919593669404918788267013639994222147801522944329779306502346645559376824283586584553221371982300361829135294052415166874790103406230181640810000265252210111028766603297909440460388747633197929725841159521268118596513570735072574340070081353808872246620346718627229979211768270496777489088920211899310448756550549586863471520102192688148523468162412905253741308900142387664628138081730270738863477610620065994009528083283086807180515751485237735723772457103781513428146178307255878465374638876743024805368915874843263059120576355349160264045470630407267514955351714154405803492886230333345345249818086048358964541142225285132492443239174658659065908190379253532070509299791760300429490333859639268796764206865832094899958006169637049116146782440456625200278654854913784217815600164903155000810105958832811868883059585041098407763887732900108022761866307702140728313511396972074984150950000756927824195001511903646680994192810308103846181593131086668679537983263565770280275288842671508076853882441480763588442753948889739318416653662344178475625778098132409488607035216476860779597437096383982217331989782126485742040353866990838903392645441050143513117492987085570837332604553937088142861845774840083579871798187165903315806943831900039649562997066304299432018616183693354240251763927064939408335029389567618194571509822907896323458763400843228433095456674614114703166131396767763662400271664281588239002150338237557645471990485662821851590592230824606597642546241735122713176870797294759838963220691041308078343262964440362576459747871082253773286985838087815232614877554223356780175257994946572969475652785633463232467340664575873710528818789508858755123450579182845608812034439396799646538591837064818359360742579326602893710687496571699623132616016829131306524248089554554611375150462942674881785825579718587286201904880102519234674186465325048020743504502741922304805341815536163179968546098781187639929068376150524963966204814211777563247142462252704395541485251236695297756017790370110967272171115814774676205089750429529483998383374187237602916210833792784358675860770165370764348384605251502028820594456050180940902730828583506681134998836272141033608236791168578408803460297093038493111581914501801558777932922710380413367972500152099529361964922647431578548219760620768817264568542982247007005980144041498087362923391657882200957715974777498475285178260259040865795048746252524952675690897088750140124505861034046029435155898395015884332740208772841089082672820685754906712803278875768738147233958629807080482340821733519198804077514399944523132195225898004116722884783721221648345411469537850787091011478275636770365980649338562923899793171571862732984666506860234717673117314432243194828355707330429759147220895170258865864862453198930057277241078928583454115315884695673557062158649351591093087754531548079897684205853673362348650779583381769227307637932810350406226558670698002471378985000226059587563500321851988147851348734910828988191207837996922297070016526806714868921821010223092583106924173652173551696619478890562869661224505029957402851270268618036291721530126530522538678350804669965183307453542718482922928047450399698068854369449550903369202759072925634201146272797090838703382736455103344033981439363961906415230538643576231393016699124474266904106280639034167723907606688414501703406234154835123557572292287350193252910580854876107171702329820775842963750379978869771912392593533338460104251931658521770813303568425234667195886292902031556424359176981085254909000675335126018750604514665677962973466866255358254300453544549229753205817680395122832012444954354163116788560218828626127105580948923026211898663981282091204968546912066768697672584428772257725536747838260390742097370956982050273593974406847300883296859116986935359716809890147550371074105140097827827314027597398046897990737347506537826859963988563887366597012576733755445641196596762465225271469285418270326716555263325877687051407009587885349719741241365751025578023101156850010638295857435603535057881090450716655757520432346204913251780159338700081834995756958942500946923982083336820358106234738383263140540567409060976690480885133953900301335668485097118113333902502729594175206045900568917720873670518537007427810551642869528702121621447130662628144699161108057547845663212383693927451802119096277164781084753066503162943070835326989060756538400174642066024054238044907006681369237704093509684621423946602744206999946318403869594070707645470632780188179496294169817304841914081813009442480960117431629736546807998939999213114599073294027747243594548073403321533569793463364369514335073328816201652327621001165207584859199168039434501920485001710699387413395908050529623364027140005931200832575573845315838098466824191503941343607663957151619266550264052805614188071631142207318690142876296198880447988597256047753429337616995487530084049332959580426540162780201698865935867953789748251516791303992928293020716632055366702426772465935849225139314374307488599847754984356298189666688318688954879448454324544507154632625694080991795121927046025496924668156595897470529638616247313231605491979640015575226503713812729805982324008345744576480137475600698937824807550030535607764533214786316994506297431349198745647223832443943458426482072270655920555390182737877609461667610547419650259113985599751730818331849303537819928202614485976212599145822314771244326243908766965878837961143057654079852599214236160220625559058900207424481454802845441261530127531658841355835759198066536510617798433567559464812683605332460333083113904581703399197522836926284327636754453737275940697332632771063313280926823407107322406281013488972010125704732106146359620288883246875501727548253591364562833811433671086428702852296960887159257865396050007420838648851706273492252330783205426218509711933799114372640103742330190627149590401956232529769908211279760131162771397290089973497944124516747879931829996984319937853129234343044678345572978666541553097570243607383178434465451323367648157383912866305463246215335571889359560612552618196806991840926642292239869217170468973584383620895489193472281118012112401108760229956644624352836699801986946093667224019691651146063235200064959568405843863572252249192997545606856184482299026626483762358880718778824691161032019230134644397941012977677890366346501700895857157912424298956380317716958960163448512570999914620617396995421866266306341933659509627881133102316182694545650296806061435370208467177226206519989951488468546043535896182682185403893488611413175491321985805910556127897498498465228054610055289141823960805081685984092355240780871533421097049459471725646732074900462658937904074816236533075962607974769374199179071739864424346756484892410962374644707398612530507382569582137790986175494270326964291314179000782530309660337447893280762194941549919976000496393777817498779308009822732883456391581081256996154507521364993561761408472388478842815811264278463422578912958057736696310257289800061823745233137893844446253719074450266303529833180096055450369561299636938876533552794974671154564640357264417537629505216504227247542327831440485726806904311150269544850924301764296809209167466144555755181315126168583543020250955429690167612998560619580287736826898716086980085749343698155370437115828588830859747541120527328629621670638892844280511839508519080709829861070999220032771911115496659380041921339368268114832976473095014030055731354599895653598774522366679194110002527514584439526171801093380133001360434914265319088902108712412496733039700104556880994786493367092018568266405984451151510686357262714569425806521867308984895007951125389966033060249698235683622229826211970185406031371967836004951142247830936000523236386139990806081079883046046082186616336021027905451844151413295414482789622684227465683058699497576353952167974650488607355370104025524575772778482846333479565557026518413326959061531783925522154845418359381911676691893812562250045181517026020124640748578468037117416344155121159847789643562985743224603130858891163440467054870650405494308548478346952583309389425199972730324691861627439472953390202964863030100559921510844366125104394688931346360519020591896380208921479557552094885874426717334087332208769321395826018399507623138107651991498665850839528867386067928666199808587453512689056071262783417505268255139633875680518522264542206364984755270412967812000321732592867267542491832793234174789274557308966194205834810869922436576388318554419545269229242725111890263663623751214991347623715490210614183365463672725321244950392427537992103184299992277381650569519808581748817351875588736838701819596043206716173930660037188348907640586414930153109556686447783378125646069541566882840741953005723345689789848607075230505716216063181912587377594918687020868895742617675743544826532932739824108463118110712678501850581067320065114502934491716958042744046996519207207042745624532817242669364884780425229476763625426735097481607136132809272540900589385783067396885217228541575961212025077455560668371137120011350318223730865081927995026136684768245069023479503443429777111804622064498235032615657593895752367007636108002077128305048141023374541326713322620009506552441337600348210068267688842282202704463608461309191903362663563218240493878855186138449367422080898377271952445224108850613982843527092391949187481439163305175591555550901209728256279166876707320636933519904531790684009037275386416141085785074230872028537867037879179517382032004415390999091737796657171802703054791529768151361963084207742232217760080827958840923765522260108155977525858498181978511684763787859052563922548056326495416669281259962743886937427649887809964418779333413340676489164160425922727639448408176272908350280511977316142934960699283352304207641484416810325295368177096423851864106948308949008565109750997422927714805281265743999184719264136022514710723573453556208903486471393891713684882886256486084819174212084586335254795453207146508998341447613309552135664042874486310748926652452629932100054818132745128959857738414394457850344611863560338985389329236093441928684524348062527533022431916628122087275684104450162267447083372855936380678816065925568773213378276298356977593886589178355606832774239475546292364074680692388863362950600718237146323861667950380700174823934289489990757682693852564761017205014640028424302143435008488832454859350772693698195300249638377359452704970549835061395637597750583856804697732114939209849871569871991984606511407240662253716705697910064371350766575170536017209107964889601627179195362401813820393671772407218948543197162723006027076719377167653564420783777223956754245072350906041278028664669235234594496404145829948546485344699967700372758829761915006944185358685480325602029644529894381581162836445636387779276321591624062948263000805522601682352008171463587537309380698393732831449804452193360932216560048323535123949239056530047318984671404010683603932410339930842720998482169508196730304685084735619339681413147305261956376259266641791751636674173227342940054881344897595700896958877470245218197439878227315794710165139895764758692979748563319381150462053921260828138989468196056803611490352102826980619492920140749416625139767583479860793302735614864961224857935267792921213364429552009807201014174540974677186860598365755587789876354269922858404231015858773255886975517709702655933489706623805875617914573719108628807480331079190146531559068321643918501063213044713596340225447726463759950202638336245687377405053588650590232341836958063626292034779628303009321174635532757247022124967747057111531244823708666887641335017802522809447138116538758573555078359154819338144363274236705124958137797397236845934520799585135413087830611249379869146972710631215566167477548387009621701650366659065113668059187792317192953605666465838272926676015128556810865324476277813125916740582435648910259261528426897827764977373264520122845536242791760647808843709920143276114061700460305531085030198090871486768666906978135579580986389113005140692998149338847819131492084438598597370516615057602154178406647986473231905638795431787288803474951573371615295378299602649830309772849236910039045814805893532662358816766972999233605717215273728803929222344255393033732642196701576846629814842435174625024892571754637391992825974928061273425621237843230969505801706402333881102325760459342125031540248103463512868820070663630324750099597168975709766976096256767900842540707748459635654576989468132922953678407068387433782198483204177895827871372235583922609449730285409932113224165696763537744756521700526842586075173898460274991628135390072485738062554871671765134728521098972305379032892071234740748357149839800786988389412095101095711381617955391544790464551824661442275310329091003650398987027495774643759926809497267637035249456781927576237382835660205035227714979369870283585850987007113576039840577955332582077779225965899422746608215820320666341499197279560502464621305781272976409780138529011904682482476005483638814799469807897557369358396925875551071767299295372343215699895412955630263991281825387273354045803332129055626495803947214332437325325362403325912249209558668683338495585149128217686756259656558534641315466394857384670420603948532317797687389100413759184212960350779257217890436575770596883241113182404925877077343205170236467301889087646608262801522691015489107511106843002107878664505194426735744018367046663325874251644594691755257748986296154944248716622414580562974086312137460759144532196999194694229592854147229820898586117920961865278789786937990989815676369613464734751845680310733406904318827383910776250267596990785550459414126549976127962845289049800062057036225175250453057856628907133162769428020416962501544752085718803449649255939095819511124577103364490448328577502551190502889255390351774091089604070243884654013796399110979662651987656337444407449741716143375033448308197435304613828577078317943767338269106938024976620408409944176972419845839415691109265664727047284592175589936864348791510777770722038398820176998546389265571297083351142790546659059700910010388694044201575744654215995368493105624560937514552060134219538360099535141160001657020151482661608957336386772520784730306960130168430036591040641367211026679899848358182113977814105624139422016591446736398235712284387164507663851990992457451711322330777418479979018735356103859529327569941522670563946412594398125261939361476368459667632710844018852913824941580623024944328906621762289614109070779074205565307767121011576877150324298900687629878639613071828832200009929561201742370077292349599257336528666821004190283181987100671149295281839842431938305275541935676587049898311659827140371232744746935904999514675182876422933583198000587559251864636052959282896580593673124321864801757293268787842818122977307049012839524142328913774621320617349011030721984670968712161846813144809519919483024970446893788970571273926729481981082607278878186143055419822352614321859067057435787580125502326608214911863563140012320423024223987811309082684003248697870453753649039815658879526145296709118284026654269911036554143846322207528056819760139389390017479388335114600170290291783655579919335402640162990579073036690517739141688338339548816332188751021738918566147379761882381704844875904215049261034237713558261492394421342677038134725016241107431504896641749139505953970467241283160066628865109495514846017735989170155365220720184395513468103652679316828401823791918487043799799276341965037162365769749214920073864329109911054413809645342027381496262431288296255495620648157116413251813333922070433483738513380850043396706485831485490055620209640884933591922891309689734375989877700152435872909527401925434756141680958821275609662765614123794581187737865583409818914998718642430689075879816014610638243201792995599705133025399591614847778914760877506142882979088933548385234355225483968905133297877610840955832135898179107594248742359185286467642953759567551057208861855466790781960035576015022921867035170334798553485835178896094911038479862569678776461793636203870370346864373718222945044904185889189366627386989716582280715237131737098441024029695563149360959690044621278276241128499952215379642100365774695433891823445648225540989774994288812020697931738791425382523658647605349618557974745734322577354412477684150967979239164924983048829776899461589789503487726783400275666768937542694821836719497436857178076070287349021547896401555756910576007207236772378307444360754211436156630355237522295359199789563992692327008380576811396360842347095228693174226458714011825267619660670328652164293244724501690196482823352360645623188399732980265215374052495695025575045546129996207882552997507828727134333211113166703016102969532010825952883005283727163319698940456873048462707605133244344559520826922349539975362643942694673377152927772769152573408284147598134311547191751306548105163112425065994198864033537184817871682384440586121369631986456103102994744608245523532698332657051898816728850781483625977950842322397201458081939383701619809608404406667345829515764918630374479790275146753547805176620244470441853426374403403004151348640263914738354344103010191276969391763692411883359740201261226329796788773425606136801484632345750805991656973656081130628456204886357679091247585371313679977160645354269159949263567075141285896704774004088663334353495137748338437791616643965697735302784226663032398945636081599953576151363805933962001065047196391100613742726158920066445367056533096872589826011437841683266196533021880111720856564254774423805957622787139760284209065530136147211727478471519619554652491851888314737762721441102116499894555783717039005669644178182488238369932532982191565669573633827789218829856162629966483105425428798940079587566933190750304094441088512094768167279571270306562017354064304857284055387995346555527206674540001970819188078091880050363571963381381315828184514676847177654106340006032493373718248264953979144849696150869806625978489674333115355137002522202228075492654090605063256057178476224979460422850842629661288510151393922008296607742053151633276839027854906449576954779994987857097345715787784765029535362000966260063998493485801232340013999158190659704407921811270048465193771599504426734518476216111312657592944864125405697449234174732178933400401386967877564378230900526994277285768409025355756019880011966541864942850393929844780564986134759341005468819717864283516997853942825251239902119028958699158356650407878057415904925376656784799778855104188546768485617433935076244397782731102637018083122151576855548148518949775883353014156943937893403081212888583999135605520803858250782042262287005114843192532039050839555557653540096867368418870544395529991492193874135083518968887728598627408269082077800341319095233220023366033481375317667370469286026117353510921704855166580920459566298127527407694132078889581417817018226254249508004542841367947170325548783879424823942243329791399631421449805965522954157083689832740280957535617813416124281485795990435900273538459171925838601381488007752803575476395920798021812100884689934260877605450232646755255008597252762272729761619016660400620113207995136028652411902104025625933427081459003861073560504763718277408726587750066681446520519229552910716552180932040228503690898655507215148796888601437619038003784937979087515470998738983329250812458931649517185924287955249508050245198300721024111766374061289268331854619281166297914247411392959072915542294287516129606531916913282943964021718525964687211884688853517936034435709474857179218259126394791313699952122415098445056002880695711546820867304695173731690103252780806202444374328478474958205213313735219782360281375402808807904926708609231231088204788838806501178133752209111882633375711835089756641104950459624004015589101706394106127374757357755864056020794191681222996262289158902248623917133262342795821420069374923707748590240279082656626607344434577039786546618686272181240033166412318074430519885853798914878101556755682323570321723319737042861964754836846475647887736308038512977351055749779722371472081171105502118986118693070625208144631040757318656849442108788386305345198585986943101401420808767392003882019940644837224147681562120610467198238261792358016436356363625067398261911705915898642846856978757306479737191427883164418898284706941945259288663127373939182643430073758168371568952033290229244200111718357719919199948998228235333802014495704919102811133314402833677863968911642356897106692487897164604905871777208216728235814226537576953799040206235395555024393769643761421632940585423887998109548139349180988059726484288928679719904088501219517554136216501479529843098361571513106742208212715081427464868858367181186966721045490554224134493763627001270357366221459688739776187730625348361601401782205849112537619963934205523520942311455610859993920113172999458575042665166153821194976774301425131719203684978515478638141929983405825679104848300553652970594605235467343050006352963407883361824813772146055856641538847279874650237809966846009771847012709986035697778150300031923642148351453304462746665047350085394033424955167338504548478497585369995993024102888296963925736357063706191538993446505267215323310483994031398491140246883895392190374699971965290293420313127755044539402885886225629026151561687545736204388017681766900504036163332473003929868171942466896456973884878115426087061576909912927919112087990016619044366158834106373091692666158710309713381961587772498779828504534239292280044522747956347154017013809856189449868406423475480965772508992257208481180343128556851695273464804247039762355712417400095379838974055173473884897492254233430376906166712306290294145440432661426128938826655172164170352570079826866037889042887513723453347261741674604699556988646148830533866358514308719985604084837212425670392591296766165060996248330430440527935753796617109375606168545398461839672261503409305926957788542769294224293396235476657373911241127394844582715717124670620621684746338197218727684951568937328919193838784791988519381089025704247151024982898769427067085100782129465031416594420379918621270400936538342902627088512053973826251126520060550892282841953916741930960675893075876360019612231979025880047771643969899697046050303910917835139558789403671834782157122480162133502478180520151962167502183061149274399006982272992417099168847168629880790905307612716566226036659159482419858291503873185368221993891924699469935890845912390480848311250049999935871555304674735189470532392489859151002507149161269089245719193806153591803461756651653079545126367796991890199087465497246322084678694922598335828394193796221305634034020526240198448126211367845050265199830074756996594091337735088935646914263635560506894143256834517221982420876964586615466510640512419038713690881097293219138691570955436420795231039167318589884563154949904054153575222985359727320556953121818303856989481338436534494568459131496305893640031243788940275326448966830352377551552862139966894245558420467402782451854120150371559864432876147956205466274192397675281351608714196533397588475160337306098033002445843408480931200929730346366041867698528152131919356782830710010592692919400119098972456442661492927739343849065686285268586104365508971544356004740232994568330685135897121413108917298564730353185317058100579115450533079751615762095020482812124767117650114025460337712332433078682986188261579746027980845844997599442577687265856507686677008648778602284017083307345222719939149113443692444485866476676286798623517281711505970261934310786975371328482434235108653229718422220270077682479059953054780874565627958647264923651205859695029130864847594672492736679717333363387431675068714108561469391301322811864942383169736174193660397855058037172384828789464630122639780615750394535522806471031705938273379776105223906304116950176358191657194467187647326983241385897039511703466386547320548925970414984686053662742821529252413880357144611558304122446601770905604352569255119677163121991024120827760092998415929614747179915636822272634624086118554010824942216318397873171264652811560764609346302436083378250875077774313697589147722301538025663826222650844099647961075753740650895099154502893124348313526126302750768672534034660682288624234712633654686391614284720790665889870575921741366227769444887018857823305896006319041024393573626038651240497367917225502057256326085125750366794759956710602828680522035123876471964665927023414666409656879305424422514667314313951169329210808368406895420993917823380566796557658848463926536116652473218986861769465991799850697501315842603115319096968505346751896330593717132036449450380184747493021997616252164216601754771913664414102795109934381253111302246609352480391095424834651127154139015631175039602983868893127021045931748063615759366993992250857200320305929247220895032361450444696971455216824236402979350392440814208146392016831557414733465092393791373686384477528386766614771775443000662993401675281645364524002889979493653537226910118774603832923760501570754888299671979352514211863762945181222253214861363061435896487887795736339400209177525571141279528368720613728690541276339458855662582811414320720326219611360117666010421053304704958148697423495116383548150462651115759976721550158371648077266279518660418374116866694619872873732539506336220134048350995256738486167916872341688951178256701839800526445790169358764846685768518322235437238813703330874827722151624173927228934170889165016010477693056851877700861491964413130882090386442272166087750414001637626779391092820860525679361049820031081210622827454816553806664317535978670416267950192429380007156712700427935302313484842232650145234627568665238069544968541194043507493351316401327102123148403529041051388655443935902506097147222697764863125304409905521211636099284274208630504667298870941286231621543578301419118411834843294460777110649246878151881775585858271276632499399079961145783092917482076732498857170898769035095658255490961617204589132279010479956495626576987891273136292495419876108934481320633995669120690573468026033050285400086877787329467939147801717980756750843572020017178570142143066122920375955232258318323477936540603349987609949355068068763347057137046466119050863260548591706171643841851915352376270822954276339541936711410366232373539590472538296008538779674244655742997637878534653745560129495796353745608835754776066583687541860023947317910995120211941876498973660074886368371228281980106333623655432823648996285913354290060231310283173812982156189530516663463221700201280055689036120088437954725778328692636971772160228348980577476299511836085166511067870809112643758118803955430122613309609469986051412563972227289658926554099952291852873189071396819133025439354580654428111971359359518807738059920877083541913036656015347070453806737708890250852463196535650894537518174408183392402450238098020928988499969880431312225542687846052607056137944422226112338425883697139995349670254456226350081465398988945027035657138393373884148556020890252835725964762377723386521682460262656573920746135126647653717529372724241480021305333700437642012831137890085709513404953722960747147904388411354024351763061387087527925847150150631130473038349523702220588378796905179001297610562775977033736348073526350484763822742829920249740701721987622255279213077282352601741910441362993178833745926845306992994539742188255121565571931393400707530316870847863769374115069517672887372126649905042432252621117051093513053639763795887211643943317141783660754436550223216503857170167022453147093586948542277688780899234147861263674890662944122703958861217528388957358853094084062067717114427325443262245105588855536896713189814357249207880321706505472677754345884788066188585240324350116038780217740655256875601049157521068952515122401163012311526804133258736208890055712576781459371842072030837702545763610204070592627356699320091686849649291313553548449333708226358348551482375229676229587483533056629925267620598203455802401720744346116267428699197031462928412711620596193549495198686850899149438442266388997534958144797660102407112129597233199929320592963335417924524761062014623548810535680690834417481763474548935463834297986994346951618411574077635631751540449148312874700326654117340928489241731351064996162923048190293398417461293797663762446049451130897277511133382397545842746640505963746461094571688712457182128716250350407889516444680377822146519796254343441553532993040436453815563040851053487280874229459377151517708374089266193007399199851179821828895770742655705426734725353518698425633689083145971792238246707493732665875102014215562140882844450474944814578436277740026442855976141432637364647144010495412209540592164480475803789784445859757356783792403888999193740761214054559097509392725769957688972281138804656803802331051493997188536457587944067747996303554069445680645253808528018319745982400294133275104932929314444569066484432602164481818496073093249541392078564570296666609690366725612288676976332508663881654583806627507842384846121843711211951837635006210456168397752357921891233487602707394480471911691803323162583770620378335758745505942583666048710146495777675501086592230069837803959496363631970205860248452889389066739665661334334605681428366964016607253669312586338396334839150183361485056208202248537806157611420186211892183259401303137686195338292884666545510267925585948842803448645153826478333096856248339021341091438747781370547811105222777872011653249262900972349184654797709424758231878276108757392019726051804529754353637466737692402953629693802464713284047609697439012405643910664374421276048889611470152806705333679456735211601806905152490041540461295002584039237808860060951065202424254082360603330327880250390678533492422841503092925570493256009069705021343779106820641420985722665006074752579257161669769997214565328063715307532746204369801052623236041321879671878616502460716861849501241877758426968852958562518622083358946198609939942006855236239497187228644484554716846435209082890031176105927821344132236702856186442870220976260139064263973234822295737781908746888532963155023586142940673638552653213947696588749960528033151480674093592300061291321902671308140602538179702105411506878352052452498219935632584781538061208765237719848815990033708786222450558708099469702657059403679303192738359225606422765021487210563832345934108734015534118996804046798770248774049853730917820513655660018436191361735552174209835405663537576825028658522872867080526672170598111269491606646267141319565306117741911763070337972513453324945876387955862613214499731235608256217992543023707449383338716876140634018191947057160803902546124443797163646346039010182259634333295346445192025332154554478419611570607132624564191910155518623315785785212470171968630882179254758014997367948306603162475181859286309654938306242124472462387008468290652686553557447860406255351092881147211327767858031275528345709084357242305814135091276828852038288632204996350936642589645550037582215622285789158604901596436161683978521913902487036537594009787013546978745374767862170302781945032388427393478687842466954244860272104864951173955509524031911026724633380596489789568419432527119776004712442211488087774622070626549603458216680670259218654947952577485717419928695124472064550665957626556855993024653589454605757195093410939949377777211761649350240443671991384632963139001356821248262604621500747890495828091220577967532316501002513390125775301867335190706856514792978127341067099109557924228658974466400682003766205543573547495804166643960874022196934647711628233622417370812059890663493851904270489237079150169714819964155410269839198099613823469907865135331965542157876721865702500663812828593093931159568448966357509066555912408762922457956336554057493568852816741882915497652403408608448031953243909877094194175738310122547949947689503687316289361417270781193826950267337204012175840630104776518003957303281231367148263160965805141354343246471829068604873502918427758244674459384349257507036562508627289096804731328633265030720457713541582893885097836108912499494272903051615559779178504022514866876305105520553436465795737201964363995664013629598215258031856198066115914035711119263084070817045918896606884243505036820353756079786912565957975503429753916336496335477961240743477561826033370794148045529095518217920899107946102347332951186844775356809933002082191251850357903307093602130354399419661206809615205299388813022878565318350107050910154102240826303692914534042409609487870099911887114350207326100860574970161244566020586091044804878066354627375472252028032218753516414587413677111046374487370845932617743262683451935059396244968915636591712519888973728014814471209526261487523210058525206171553513886081868561755981790727008722654762140564824701687381229151892760391701747742322933840529329068534559648339713869599527054554765405507220652210228831202685566538930989637573623196179725207206241595919137641212262376038393058107815472767512804754382997417771879040347216645787098834302336384672690350333141426213983958379555363855188321139333999249238977350460028242816654845363480690160108633553626519797677562252661958168553549128648904209748384568579382168769450082793186752713011850710370968572068437095409721858421374851941694128043216752856335720856657365753176285597634532885316947335766849347271281655008101269706061788676995677650348959509917411477195289789860433014401761298555139829950577694735181551037081461231002599167889862101909078315405128120428459888050395406151094069747418313699242616117932286299926051465049946066635750602753649261660000000502029709354747087791432103660686086690725974993020738891684975920864665471128151333614678203562818177172014549037787512491854347271614713876855724373839261393225552963350496122770800704205795942164935325924118456384550716437365521216496266793681014029963122499470465764030209932882594545089760523563716216712503783280277559681297601275762462401006037618256050505878108514963809941735218947730959216746142655292780410865515992821215391431811725051414439250465623258218336973089145653391604416355704687119485004075562189007623713879918570620721864646715600832537937914199403930338829356534970804881345346064053562670087899344324423271266035793245904694387676667147955246385133363351640561991470685107592742043097634663585803672054123423147246795745519382861339014275088840852641152043094842456574232282962951474313008603707863007688734555853980723876299226082093239780594820267380061415525409466888811308144136022209952456150473968378247132084943889806672665308372370692286157369865270954623121542784190345295644796290841397575207547472005422035199170042986567824815199730134865376510036679553090868462774704478617721012010819832641559019821836257695415352325917220789432502789316268069716727381680020813723070428516455456389648098669172933499926130411779261147771131599752349337996557019888420714893686927052072364782201467023013643776183340345995816799702423847453252223643266305165234676919094852146509052341701406514460183064336638570689920898692549508064489819682847934177705079184292392636207430220178933213953890761622946889210055551555253543224629577885719233817806918232480946087953955469624593587651237785314035179109761958159779801957755738924223190983042841938150226591735423827751329353139118763980551920036835991157371483145141050369134973321846700179563433905327149331747976718975217010522869928929425971679588839600177172772515754201843780872352281486845264739971980494015588867450376206007835997305189205068903838850453810593911335871081565937920591377222068128027759187557558738399518752909619087226412989573253357785521461164477646082390903291444054758029007350042911852925389034833869634927797315717084558332322364703609696440972657766197272953287348369052230713286447514650306347193503081060271889361091801077873028647655719443354210204197465628485081873064509100637499589067674584097939681342178226141229692817103454219747180383727030247216215520537795904297737022017168682717680209622212480872912589967247170747726567652827927849655531682198071112457969656025531245642283002806721123849132535388739829996009171367689192942318962348184800481585995303927710899890683100491662695399977171271786138754623077114640348730916542602856471618860402427018422057468430339694390941380254616490979364519816184310775226554351833087344763702557276006846683383807397871450689135483165668738862345640551938878953922475544970966572868183912005112503271120327855730714287624518120949977263410158727867408624062513226964646913931973476909245628719105427311203716829199815965588026583476349544189571680243589837196633559917244877183908451907884614781023228310274573204137664619310240917168045533298247454853462604426800157127223787929276033307685036202655569903242955105803354969265492659218242574301892593585727082088028201182022096891863393736981692680755339489154312702001783997182854080232330396283521380962118853667825165973329097905224420094358539891653093570168265008890168804926894384481375819840023887885909768365200194928020056930755064206381652089870433507958166140958883494796715937014654691139601478834526522167730188513988519629066710763927026945370756526847739275555140334109342375212347629250811355143294753850243723779859439917709577198951041337060096971276896979819345038432130987059816924786493233835193904810887645109491416466472000768241930045562602467385684483008777398746246088779240991131975525989318595227532590425973181559273783957718648951859060623564950476071782481898831709175819376928616394025530343745985640696244859526250906887649460957109330058994087282785211878739667167808761813049239507078489143831881375574842078054294693064454471244665485929526780189649234936452425937816252595675610484887859888033808614553228045866952228863121172369718600717528582121778087356658422986619994049705773272956480267771854122138975043458796721307851494650154676534391627944093642930140387499614303676601886542578252101307317286086450136529581213483363745937413121634958351211252998139628533260625538225720772474543317020042310362331291516462659203575811798217987239313421362728584182013926325959259442567750241993745353973351959881560054399315179259196559374099225938914354697079070562154970070559191467065091055663377260735354071370360057374518844670102793332867638080839527761910976655184485273309543970700847609231692852196816870515479772264625187246497625409080173540691872951465532271858384681574927124658525925104040730777235063718657573480481621626378217367297352946263032916982272603613498247737238905441066214898691730308522847223655351644068346747486308280430149427109365232809167965677529279702273324885697227763635425994582742770635249425066282395919392179525354163594264209680437424999048415938535059357549548745189554211814742170412067518268888341947486917082489461030590119401984745186087020343679513457470143492053634205609042845567560802213096842673100619117843784883569303778591281327079747812478937058952630966684047865160084228218792489086046268618999684006735634384875615183579910058526450488116173064786201822171786700712619666421441370868221867624449945144170847158245381600074384495716270701176418180018367174200438362533736392753552373719701447261419534988123909670956826605034357402421137437291556131515090348136596279040272202747047378696822164766588379561548683374622065877607459678865369098931601186480013237921960841135963202117221193903473254611757014393934398379051154264920819768320853141210760945520730479662309913456201511919548031307596788817663787558261198409399315905525495006022928992280679940062149076054364206001457435092538169821810299987160494450935936522198019675707894963959192243588156518141507663639592506157255772372152418967567310769113723701456006240884337468837975684201924469122933706913921051127285428905535228905572595399982976040270206199770607757276138494666776889408023839730518555335505198416482338884021658043143886041451080317062236742134240885298274382074863548609104573792328746773070474592549242823801843835564007561724243838033251552560454875933038141231370849841179732277388042983225542528958474808389668632100475322534829424376560719245988212488291064317715097477095247860537494856639377610837705132142035159834546531942856838872457823765032418446485375199068836174254992023768270147593016431677973326400961182567209296615039514741522709991263727242258686032804728107782658981408525351639553381648282324603997621498995852192310983533049767856850797746032416552550606916986039077262479452490289618792382014011267029959772511850092655752644152367317828197876937207857904836373813031675945854472414335712355680604671453624971525570013448772320675180605750228739839621336474077643568809769852659318670894358451237906000465442016937927715830843317682039163166274471153465802175866216315495337615122206701693656759776096215030129872698046837210700463011810219655083183898761400288474144051349904277444130220375713725864077393615582076435352017862926956426358645959291248655590102469616757505607721789899469748528596058292775070101912453453654056983273754232594064227721593660448970618467828582391408122097200225109751693438188835241190956965963265514919488933438197790369196656570502440764434120605354265736939056861307275778766978717543722066849209523008846600931768690112920863665393765801002073009219873152839956739157885731911230662845999033751254190644931873260455529962057722051833464507863968009974731741103114001681253667380606682677145783589970318765105129229758454649126637522297149772780166759250173406148164858747168424665700022419820165171076207976762932118279789696536935152355117675192532633127918658273377695891599466862021425648788101552317274417409886461756145805565276964620185637210547803165631441973829810860370194468256484995716253687788880937303457027871584167222402036487671642610371120466356591795367913746099869838370650450190801409529748696202296703352994007942927575888762947112351060379290963959105693349646903081170822455303486750138002636087279933282063020829381929623219699437439852060274862139411725202842948543035080859533711974506868097741199294066550274980264250060765817003198913346117540947322781349720978794152485434585853684578567326501907905192450647483121870001815432854650965768467648256590373403301281583886035113318383016408312384175778512896702395194329997638432857341482282739631763425978196955935074540761110111804285299469133746027327367205977482144627248843861272633071843029529104054781996583680159615923377960077305058160228660448027817449878676805429715219863982147835104390223102024825209949544515833965467600517626649144849575450797682551104625304352358043885254130205808297738175362355266645721346382181969953707688513996507887015918549472247937520087520968221759525263477754007702347636988078125197843114859404776396131907902927677129113264793011736164316878290506760276236503941624025583186177002032232218974146743808592087570368373779386384056832566383115693183682491519603499536719470020984581044903100470372014245011475060223347369194869067734360369260592472691350010702522432678520541565873998442256023447010702717649189015349407334774068809027625513321813632133073185874689435697034336664780321401181204156529777780793483608162477882061722643277105446267353925281062039654519053237685058610326604392060823564667629786877203358317538753915804452791444947722361699820955870481599792103104439936575754589622977714855695979959956987638215862540310577512114587954961872707142010975663040158005149715157745693504287458618437115832880830930891287457412843965736011501719973428976642583563138607316581976501121379688866209187756836743721105285593486653921384439119805708770568149026832023109863095636232064703060871245480839691705301964800068056271068598289881911333735071704258001915350100496303443428015096038704069934266847258662589857638799157258993069066602672689906848791427238735081728399595476911075679268229014265697280064672142775861805440530248771599937365473328052072706777838587629885947860837730154281910236379490344539929362023553254483666854105235381997130123280396627303941501574591126549403570431662054368820953809808857472624102872775072657666318342344900267679139018125528421568796647136264894731879715444132456592257903040590942811570159876942840550219912620034588358436187991878710047080350856815174139583308064279465892213674318399800837917012981817391038315881162849979293587681118886948726680082690978673639201692743835515542317539891011861777320739587697650077783183708964180794583985683252595268009017249477686476313301101853382857052864985333594184780108224130004745930109940480080292903511251394440524969157467144688528094430269896999076603053063137173798871996897818944105168201155474487746217317696840153491924040681198787071424173032169227218324364984906860944170166075005186378557270848106096293464148596954791861156834943152527873603892259373631402246710150247750088296506150560878550052872630002430304278144765459495837743547687203448725829413854476816547396463201817772848739536553292670776596771820190646757399234946386726737759980722358277025868900198054005735109758445752833651082089876737767517411194861670948122500801336495338924477065924931377746513959987671691288748782920096438404694270379548430381566319198283564538324557949332050117031530017349558410134833403771963360239652980127334099072002249090016491256824218418281048242600448094112685116000935519627231677380858968325197782461472213377693100959463187771880486644846172551969428081220427592642963966430249688078375330424602135798134508966928038550655961889510613234308992552338665161945889366670647504024430932808001803443428831813582230710966677505016081739182690097757644834465214932102676668095308370147358035600447168332132387724730233329013452731159676309615239046465016925065465816961603894646611941311473776275212904791386813802986757483118845646322624492176567880619665166843570360346170447074093662022319169273383048720948360689448836496454931883342302478003106447539274616626778706688952928254119020206731873403100184320099481222424960251242949904323816670070124486109154264385424189538626598792835770819860962676058963065833730090060604726042443634406193007555376228229448641454931272137957804314596094035714893177501122185632426521713460359351889216513290815954206456980684497415853644751836845868366464359400979457244239503571278416795273688715843771256982321030335519422287513281257867357354675506398846186479361414385808431804163173393368466085322785139664817173545542847568067584563176760164428346295701133930066629896839005756923707635768184780212811744569489479300535887447960526216353989508501779854383042542427157109329590074431260770834821472397509284362374173013033364989934366648834825703838584251685600255235888372461883232490116654440375520120254922720290485044404130535944829380167097129419894516964784480385558298061145698628852114815572101059027113054616059867400402165307451855119907083887112932424095878946108847526488592099915963525640350891244521370090922812699181049918789782835072746818148365292734629170582484437863223744156241413326817573500513384581202477637800595129162926468664545070295124755125313496885633975359192916658362074432336018894858046046753934257036106665090283207332827383092163246617556844653281194690093649202450978654532102407466836931345351692236726662930610363636416300125558695339098498858865058498606782241524774224688980935613168570239765449019387890361834497826922196840588270036058487563414003761263523529040669586482806167593094564785492395470666059020599078854843634560731707064591034905148708926625162363343396264984592474552480522976051817161400635644681759172393593294904475368098350582742456536831873750300040621287327302140073866314748839627310807176204589199884897666997849429134112072187423648876618035320076098203812318080318960745863978577474757433703151861832803453235517381845623983481129859687065270204210947151030272042759053154014104441361346277745778202040080902289814768550418375538308481789888545352735811550552486202889571277573977349354510370823554474950884257761653218617923081217231697658604764997650128694332069976987506244604421376677174004617497574988440657083521342238660744237508585448887396087433668395905081044702010209539621585556702053851758774282401591942407529838374220897879117180133436663473435098277758431676894198008187082141101991723771739459665431385014388787630522584243170318992339340896873909045912945728673569890350409332440180361082080552903574197857377318261298251008932179450683795946384742306456181391344874100893740774451553188666976502058169582189027133361425251730097762478294567029596592683433630348424585316171384605292138331606377824386110042481543475290392271158292172138431615038473882890850472267359129956793610458747487633120775207991919230925473667645336548568977725403755266963485413098006558775839700767858184242519469429807346879602627624829804863720522638306955022044259702612159296094310476360918449219169193580581200844357004173108761103593348165490131475140381110049501307892678432060722950660305878812938030331463334262218545780082607179279705256856943817694613406482858037852008580524753867950667660297357855196581651678209417470726569536883764499437760834994131619964987347550915704318605047240766722699202400459338103111517952395271672970385431380090456826162585593253793421369049606972249798318877038259562505614830122062466975439722704955794538672998039887702265279364204281696348207029858315879322486767927024599069465384952000699547131497155287158731534341230887169433316318940858504343585850032505429426899514470173905964470407036397627913527781384985539990060303956014228700582627570412473442491778842527877146866577983527403471988666112245189258218166347843404095889380864803132656624699070469936798853734670387795171867249455406819091881118523418688535878031826355451646898777841586891826641383084997094494229124190084187142013389488579248702158969924355711863050753993771338389050900377451314814758363155685882609841281663658172920087591395534750660125691995919999980334164365037371917811006764957648370577892225403976643395416884175188698149782580000243320623068818927033393088794826515696605454828742851706095457812000975304067728064719027404806165594168817665146925073926394789721223306406985247913554053195130241337189663291083494645756248885989209193622130820075832892499943399868684874036173359713948264863797345864789316422828253759616435193786287309995472085691210395415513320168577971606087821419498889331356962241747132204273589795206222307968701795682020547296528240390346584429514246703883539771090310143042543525123982362567267076213464708810881517667738892754262841861458021429778927409835246358333240848803008086242606595522670906433414528041941462571141421221930776939412444278542273325089321595769522284805695586530049936816915384243827238711109075216586618816363487523125750288369470651542409391716419328559865466842583583451596730174076415021087653135637901397682186662050694577042818063287270360108466231267307517272063643868301084230324520996819351189946509925021889227476981374580943188516716257556474966703622534210713286497469206092744684756029034115846936108268154519554984743031546149718570451664617890546035966715700413458172692392383720619749200874427078849116091481918757089700282302484760645509794366140228778563304015313095130526721876180691142444197577913442125154910263527379065725956479921823046210688131343247229183293267969543541114748247468651283360387854580854349782448204110777436796643395630896025138793753813436739991052414449411439644715400090088730144768204358653349045027163080742504239837943777930780891481511553658175317646822869650475807085983034474814770165361429387528703488634973457449004766459026726023054872265054529738413732954814128012309117149490038694708158348931650419876955743113100990552413191387387616865852444957011371255189315441293103290767939001772117764469899210215528346922004419497589926036621488835250034198602538308193957461744415093715933128196511897678261900117408382209781503268135247826805216612441284661854003294740919541313201290771197270979973916777600180723490937728091732492433373009627212852383934569781817826206276421562506103543654056326841643353938404381852918234597743312314019250358532899831788081571048545543702288006764190789979712876322863803542207671009527664376277031453235327019772565252070448521706277352259315870269050497615806081878152572694213708531221356677019090219179413591773766448849080017643280795714462699222010903475454367170848472425819373193064384714683851847929028919339225717811713830761038080614150072623551783223325494180841773461339136873230837068487772364892560779032241853255214522806748647525630794631069217982450317322626409111323355206602679287479211629199928976158999982646798567162037691151129590331816391599272348617966321451990209458691504330549861726123900355272030809833163940471290043778121107915968875232241409537996098603239680358937615204315375342210694382539327847856571393731381126977524726201923752647043172195122819346351981198115754435581685796154212163172219215921499377408552480130253446057596108300805259359196040155673233939608522585188739778218014268079036110416037207546068109331604557230688666433479027222585533903149049843088258445932327891206129223068159096395675063996124886553069537027849223385827514670810396016536287432128591259746140905044177451417166406012041623408084490566645697196517611769013502279541671213921793853998269688766756213563474613523321378172185065003723966908671825952283655799876624424397571223469025198588807415920802877088240145035843028588705864613334721836876204536549183159496007858867485430696248456882067457760997556422128112438134142861990699331160857230673473845853208764009329045374200404375717832668165640498698339838814573097032448739356114325538569260411018155830446036207479136314772994892519517223687051819620583908455263985108707243108553676580279562444541043854101796461036760931302354491701279460331136312781226554993799922355165255336067867930297697880991506721754190856818667338136618221530660620081031187865169437615503375605190560103314423452358739784516967469368748523314915272138763881774000918349089049129049289525378440866538513277131796627518626211689011325636517607334369104863839646600798160766388145097425072049544735590941774691229637989561620646903040453534564606342085761206814690488379030078793909853013594147671458816496823899018466923020552008583432097364334802445619802943968956155427507989019951258024197191938809375631961885230517266592032798945894737443522806679557533473272254280071354175181898243067665415889415163040648437246605639374163318253774197844753602649124939850270704318770583609957882840942898664628168310138474181190512880837069197177958987777316124911550809785714665610341337964813967589523969562072644013030540181930921027057149510237385367566326971678765895156282148686360893803177493864161883947628839515138091982893951423917512895802321096907994643405390384450988512483198173795883284487953348130518375169364031349185769687567043986616268537477062192446636387615914858053605067997766734629090514954058042809508282400271589376691031871099489368413810884819771361844457342953872928551435117166566500586111337747379971957209388821587722408623777692206217354071252073210574544694636959415623494418149942932045693772619580458824110411750721755345845918934960597558312404866739522599841367628532967908595384347877940518998736121717191648341340320225441108623364906477562870293662248982469378070762001297585113951717800458673471935308089037849837640407165481861686898743759318303990244202798196419689304081362147167295068232942132853732135619432708808410233870876134776038693567068698182477507168176876647964559808668045012772144121964334742480037674329379849656966855874850817970082550192670422382286082176637867039980975603403697217841404855974020894568532958456155951698671272791455201609808402455218483675068029044694934882098324506309144884227997666597232430470383592327987650122807252133212734361614978432082952343120672364458650074156120016191284956193473202616891623306312758807689497460754093814526902408091441294814015763598555059426051458852356614472759178429529415799753106192724322993969823491332956876725549947129055814311845377425019024899602822990472280653406610497651953944888381841112104050674185424883672402487838312651536969894060372262184921686843210910427915518868529567396017642012697410019239938264601098507798014527354524406222525475447044233930868674422648817644063252086055734616706083325508480995469613562811842735943595512285980311790028271120930064979122345772290378930671011969353240590595774632240993124887446711166689892759752818877457606554186603217744372045156999451110950381495695626468088941758145902170248193365510679102612598489086508049757297116238865093385941057556813328241382902448429840001552228664302722801765715364097043988353480737550368999236145057708922832272044062769919772035416993441580184006988679485003169688519787682610426301939098244831056671972192579178332443417665340297106365517643807985859876382957148365567203931846653583472103368537645992079186127091835005678894847494911039129412387749625206298169327903252116573150776315686010911623411248239339718869686405742719572049369400216345415671300148988429615073937285545258717301405787617348099238742985535146138787731646062002144187563209693798612304083666304372690222742748781881869339978243795910253717985375677638130133732377864099694243256462517067119125499544593838814221884875930936337936019755362357145039184968295377962301970632471879148220319146141206931090622858802020826050608029239594551268794519799548574181174946073977794356688634688598703245858529420772467788308630317233862613376981471226538350713727196811074767968512724030795443364910797746468299132373504015918532821612966158007534699995187464890761579220215020766767710284607177655500440495100149271460841708121687173961034957041766661688984214272424145750015252561137710502778805787934907341890939390869695542619096174671603656951513908417264361577469483402030391260000295506724647881293862858500006317138016978351489884167033678433406837890071907713905056132651705195553322308185864374798258413157625413773515506478853366284579174310587698755966086959521108356392353358184324454304778541452739641362347962024434895344634955894486430404575309077256952777098277533895818697918619685226456859970018169329683298056285018299326550517463919841774669621052923595126373795047234654205745500418028938481024147106056954778039408914337428056293460634194747557740738141198404166553219574734231742453553328740407308380181426122875567827299938719104790387607676485887233498840425843992517043869472695433991746378189885295089324010967035544254853417695642402168351942809329318931155784606342360544308959400279701976939060543990854304635300259894512544296968185076503989702618918804809446077878184285602771856893654698016251011035597430288664389547911741720294485676334960865053214384919540361017472649920385368052614106050652495567159881485948384152973493860134850673827126522780132104220824948619600320892579815352257957329630877994617329276610123615892712889126985333723137586419119906902175257096528612685442716117332451951768925253134439868423268642598679262187980844096111634995938897226488785878625050255340432983369924430770237810597958355660407367877540719759274923816673324610534444556596233945479514120090271062310390148624935178949052469831402439529508977099573728410706004955892530613624264559526803694554459855824789956004938981968879838137373951276706775209246236934938998095863124251682913059479581397797724729954824290518866437812488517421909953652078223016958535191971168378146386223993932023569282037953666658630667216338966875784811072541605072523360362174507002062969880093616659665975067247328763134588687596322973011808161218789383232199307296082697474363227878061341017214577430817835534668226180257730575532019211269049320624897247487367390264342998953550490048680056768277003469901772853378389959701241731430813018221702673497815223997421951563388904084175235601916823358197966879811697487297367797748018309496257154640550240135729515124315491782987792951293675465713084998396797024025331654286715633614913777772666175447212831857997986984187615477020980233352926471774265908247360500613332879695068705022864690133727401801135239197452631910733792928440098294459935828606346745549701654040541190146369296599621960263957505384880192686520605830029870243696356534790501587245993986929935737403779547539800567928491745746450318549237486852191847255053416351465833004945446692759511912632253291744348384016623863505254311021796912054487147089558983666864360781939120846379812151702549676353145957046317547981068795506382427563954137845561229738119820230663649959895761322320799977579729293931612438916038627775532761660446596065933837998515661890962249661218227779085804558361218471605728306762577051322348134824205279882017424818387565102686553862737536887525818874479242541552433705882411568095465086196313550723169009425786996483875208401782008325101050882902786839553303033032940470520978009684128171833444310581884285696774623629601840917774137547206260069727404983781920871283049804347174737614998586465426989601567266888636467047711109160192911149238742432874288491955678069110106300601335880381107676270138436117561375338201396174031872321469155691369354831268938131522029101092726209736262462636155530039546115830452370225958357390959651369225389571954787623725033306630253699064776479386461173081146837591644300571872116088421301350650962430757011323866663674669059473944571184286131103817453812993594993378005900935254032326954490533868648372635054264733701906262442704797994069451810254337703369117225568380552879146383639358716926855350963050746957030313507861117692956694954863387589815573340097799253770013495510723616346204366283802747053610471206825031275199275323621142011957166051644399039879256777868459224143762220076260553425560093265917520833576425646737333140788440747804092869763010152895571037206003402232596303246311052094580295656355465186325705020427947198138013305078525142073208213655444852240664373503724221958221330792324919164599458639187802879636926366677247966432784000346422611891517817347856405909696682725912779513962369990613101116587788148484206337070761019334355160355748451892751388244690584707680779149658788839494919864404086298122431416113290380903181215411989695266172389475917230160255768628341864161648302413953964877458042493958876960449442325167037641677701139180630825754778512265325554184553000495356314622818993007405460894321912997225999648556768267516048892199395479180640964002228525972823913699676249060055301677155829954261886268628695125259478885519363571798057462311446020294251810293571126883467027192007798943689154555014904626022028246683705812689957779789973033032461684243165896410178320690012865477147384549226526471742744827333673210730720342829432078228815088538018435779057377888539216321804794145654178231228253643747308614469293222551032918142337685934099984583018596691706386010457908832057728036170995544660717516598305197699086863071634539881498815082214957412605732153656326323232138067624863569673945148995657542135095222048007353149872246646650430903308508008165573815300024830106668966834685578153548400496063377414660604120558047214628213985766346117354765552666652402376511996077624697424511673335596964402786812419219810161640810948979774943836755344751679976725848911272077259657597193196727650531541554216228870129848780780978672495594841499797906746502652616922978850820801083703699165839645570438804797315186430875846793502238191038100401627692902639320404017181872995553189700418349856946952082930034511074590354974338681391908561423586592401693061613220517281355884887452673432324207141627273470840991070442619535021744483910180940255948072476476775216272033772984861613257604706974230352671214799831916068013249524404866355774930390188924035963985467746383196253098234368668254257122468048243854300423402795680235998795486229526315655660209365548162898544955402365021599244584963930727836212941082270422439989608563951705735390861816526127189875073287452236510777776159380677824797055286574046901246880827186025109088294680088085622294109436496074670836040121144376254349881965978672370441455619576799843790589772458077844167258885324616597652786563880368288751584914917043054987087836293927126753669383684407313496225051110624482698426690290656779913457020847765019767729218175774634861716692111864784594288986870207321728992563252903786696302324653771670697896120178919748243702007833990758607991318792493249401443808616267007245992677996167256279733360083679712502974460412269458107701602111948889510277147570129099100161990442630019484917504610861501201657920212095961537582564541532475125239662240185320155672888805552249781685485802184925307175647152486098855281767296328778385169578505844076669066386276719634545406963633366889751807359363844537029384665510089470656747629386606441340546317006633195572707778869236051681489177815510609325354290591928019979693528990353105194244212751870751843889184301058574521925350668634613118592402255341574258942210258315799081311265010539970745375871487564380375010560410536479585396088953305078883881672535108001885285789431410562115214829233971926771236485047583485500347915499805299747533172882502555025794948601982792689978863763538869245238362206715753756017159805005854937069014976567046436610454245769450494704211244840090376848425757162498704596142592218586434181700178981774615586241649433531407285086775923978900927711571439774414493833696540964924987901171941265138185308522109660804474316244166490750469039121780917093085216146274218017045963734737098125880566579366042400612438638194762872052144746754686521947270806559488015176607507213222260807221398128099952179051849240113369679788682649806927791696667801545526868457637055115293319403624168264389979605634281794141740664784204093216194426570829007992183546877359982297594089396809645284699134954029045008396987924101481282480646748061469750945355820725294812996794010332893823679744334361812948747504755825247686364906455732843452396335167393110072857892876510226968345175692671718167328445887283073116440249973559624417088956204394729853526132323639198482349440856446686852337083799639904251724381448333416219096152864553277945486081003700454370909205076172003885769046416928487320386046222411430503015414426694001490710880434145825138143411675229034287854123275255546032185231203856669612957279464052282415958324865136505003824779820166581893861582337266730245813600525991617063343400607389806938386341434854083493818931777517319393347783807631675040624335258950085377776940508532106230082994194333240375829442845037226070189416958140870755741600775501700251122772473426580787119476615297725032850298886331981041727436531867582735606728675177484878371587423038356533869593429867519491836954512086196265618203671021795629169829204855723300502804305842859439253730076381084322035701964862371873098689601469351628206194163612452867741312001433358971687456718679375181250815217480843796431749633769692859452908331837543842951926985481506272130287211873153168195775840567710143201798297832029592629654070775785097025716759932623391673964459484409797740496136879327265729380308935000213622435621242050528712419546398283470032319832784405383350635185997122605548708673766301084100910122677485117059234522851642392896417899527460760544725803961532876656247753877712985275700369008202530718855387141559054518623478171168247390292044157275223930094971813250521055356016427051217031538859402278927468472445226626017013986666703628034079257992020534479499972799951681393253505843654456488179636832356059895950413237622039630228265315405774358060375738290676158383101814822059514304755894637435749282608758560521428915953368641493023562773456868899395023335131924943491301642390834337296986481327835724473918680297903172160271098523352169488452545801668619634266703816991073025099099427499152242948277303138613867974372955490147825938745531320674554941975255405902936240445628536405367468141127147319669401107013024108077695820302373372895893817165471815084854264665664401190288675802321220240459992979013439832320668486231995756457255548937207316358329916315935561202895120546757945459642899627469060090507536235692645930712050877755403210988176068769887420902773670706690250072932115017945397381273125986004178826080398140141549650903514784891725388894084046663565915850818022763833660711749007401482234479643159355475744481787302655137439772867366999574208879680632080474654514771729445438480578857440629515974995050524756045567324602985928452809051886779624790900094112598302678425871828797864431715667171967766727653312177662860600081971638703010093438626051771137079319304233300013236784328913143979182990032169249960041202457268025882333623078073358196997148169464191518727737672961035086346636754343820581428901544787974165724656981916398330087251542090172689076085939384795499629213993341266263062135654444900248728707650230102563525809762661771521554514805700050028350401141150597533527183739837309062653158593558351653342931697931245692269054415316896598865632207984628202055945408802790114025780199699467571644880377728485109103980340168682153426592179610945546752523489918018881876153296878948734127320186816649772500454760987889880971276499648076336181624603416179408571470142403732831631694358067793416101584840532046510334212949760463702800662781212477824170465058686308363970041657052559988150544441078045419772203566489906050164765775775327170853407823988989445186565084911861166459988393889739978244168452643042352937694675558943681362114143617873586245056354728104015036821581550921224332442969455209114121129961116544158975557538912141927131078664661993554923641871299931675679892206988347814473532526998204845906495454023384071288133305716744522705960630227517914036293592133287135284908462772080015998756402887864928199162507555950688557270020492426193343341979034681155021299612510078274329337531194036797131156416196502921471243807913550508061474234048342160596656785169968333316637393884654579201350834697045209615520883825711248638757966950695214958442233334108978515421748558379604121249496999249333593132323472089401655370749473025528534450239509077543008129720747611621268118114698143114431811785122421212104836557090143067305968863946552457844226166950971988026617601603527553711208049704562379008204571468497178326204773283810590035381341737985115404645527124923042901263867953225122250936676122969350497744871160463022131168856211688643680912143282252653426103867157238794825921658767865022583762240786636773004671401008657948260223448704873455815119477043866812921048404056853048001913533445404931172059668783132732744284896992684059388764253429774105626980768135748308141138344949253199667036737659229386863179311507157800536774003024792739072063463103822948958333213114271070244791089160593396007446720222045040662033634808825043320243779991831417934965536682700927136327340828661371282826406991312092371117538341596499871184601677809417788004982352822734764275156033380248459810975933265182175510627653528139620397281180978850470330144842154671638240044344796063944850761174929127629501006475115628701862484359114130998939239247173192866905496877209975005336732525499274595853222864316698958909109342840947739472725656822311217030521556405817880100065525073946402228964039706872976909746677813590811487693795406999248846516527939287744888852295699512132747234578215929184008271729127909891503404801235562332163016123486775386565810003232077241279091451291446937597761155602136546344434856971362015061431981084502853154145528698597361434178075181811211539678350736165618009892835628294239945016721273297183382453000634790870925058749354332457720941449519170819114047647326870669823253518194519971929020639101141950957275994221092603275239881589768867240814641335448159069982080801621961335733270047820705728045074123228392562582310485789798462988475021214438814510212671411255818212297425871875628274596311223784684483219944643969284583376144611375078069695246524540706116587592056790682235045875979300693038630755186988225138385848251406775878570449050155461779678841744534174696179493319216126097498740697370506019789124081408269669636595961404169179769915433453206954890275050158512390140706213453013892970776794715790332819702436331528697869189809822184597108664763737371438529797407078286081936676307438965627541302882280929376784767192539773788458861525655842280151014617599409597666412043552338549875461861153540782173737303513060072470044406825155748296907345148536936322488165978681411406497864871517827571862050244304111774255459875285844173059149518868224600395111741126198097716365996215263371616588030858385257333210165233734510265291304419146559864688433069567319674172731685430686162595467711521650961715982984448322473132784067434908923144108226016263502711951847038862381908896048846528831853522916349559865042947034027887590729954869623694039620479498005346869363692901622899966198533699968715067195721287612034670215904803078001867849959225654687734388454266069525860890452342018850075649838249961104801692172737331067840077765962762934101680701686035090103321760636101702667289013493635222997891639762146162850318010215775308046358454787022597918018053647423466431671843089618496131899312550019470533264395313216086910695990368404838005990023102121261840065021219453823712072594697525524225678078441001153481066331859308562927732512156891553679435879222022868433531092072234323209484810982905536906829094474516384391113407701759133525674689275079277901494445263842623681829892979720077195586376899496363661181011550253852493032675736988960160532253403147141204932963876694418644655251588616143101913580929323439965035373400273311488729450639327991134641445074723154836045979439598342296592958722369106199550502380552694693315884078924134529263392104291547440120190892111575815491074540619186731831844942783092553452946773866145364612696730652354235362422257797398100352802918723999118191520923970595267810216599550759292772412846317654278828283114210650309503233158610776811009963119745720422095092042574804836697886302935114667229357724723059607516862901436374464281347301116852814803435554521106430889146941600592403199275661668537959647571930844252006891893997960822448534960538477166808131030815568168027955864608921155248932845000014453110606870698214843485327569696828392699376686247975057904500155354282739901089603161833826856068010064430152904052647884584237545856102840026638656729266423071465174607523852093601565541153195529615050829704487758241549872736610291218780219550406512253602487462285048135512851629566216953892426831435704475571448239918156796816605321145434566296799214020248455202252649023645614351403963970120973290683201871591842477787944805520096128164321681787274969003249278588333239655665108118763369347623173483354168231832882953390241963686248253254686123420755712736796614980083474118543881028286912422672529082056334382296447943951786024129004029331703352644161292289921569457766808536111889767202881182006002101190974302383044348113707649964545711078181502749092192544410832150395326183262298330998148678765772655653584320202305265289818223982134801024010428941705946927809859466958295823786169806718728099104534894256408653914591026266015425576887885915015213326665632578987912633576250324488812571613199858364589470242097317659666114148087975426312945095409313254317176410130232263690082870868507633195085920031775119234316674570248994170612305613693310453871435955826074582315116215561821804120373592190639783324631714757059214067717197253728401434585779777539849628963845248408758228612863102622446160210926370730831822114411396887140923906409661788639474152252762881510944625354045182167763529491509404657629483647229427141650184779011514922605318373719836180156359455904384464691158048378457229132559672014203642050118264626198335635479777823376802098148534900374507273629193915353594788956677986346572756702317484091948803858997441565852305308656992975902974646010614504576762321470630608607807902829622778833192132112543073704077002015333886640301767109587290824397366392457151840479003643265746066803706904459342502374819591297063815826529083603391264626458327982063642964210889404685128512898759988864345031064634030076581016629470303398254134897075339252931419246929947316785165904303975544512526380523563052857386132656484196476885190659889885550931565682190726318005864765939450914488887566350206550618890549950595740154873484755231292733074715469795864333863026493797199837304996671657678637570203510061684559860850350784500815224156171795905654997263502350800357084323153157650647260951078192471949248850793080280586981608629584338494478775844807871393357380878436083446460246607179512217185070799619907867208950898291206993683487232605624224226563117444457634527626262883966111280549216126637442248498144029761088029944436239884593870889396407379134412106638859585581823228734755848020195504234280394672726534706721249253252239422080005485141604724448464726474459749394146438657781969904569516725438632722614369199076366852264348278209791365080577074927426007755234409965787044436632464761631295523911910244530477094184136464784649017944285269839852433945665123691483208446846388398693467429524993620076405267690785851353314194803317417850233930698142724073198919591741042092607142817852548247005788631594298983189001818067134094909196621842848710912033121590842860590570306215318901083598951546213285268614667944031559555946040168240079309179956815505562621221636314208050918910365564721475301511735524336545350681700470256627339726139074647251361861808105056385896430682410531268538989081156260292088456516408269001944998656793612198511023367952352090141385791645877723499399718986776408225595917555105447837347333223423932772061499983879613239722729855256812457107684395811092061994319578309219908166399248613326453539084434485000685141788811193048355695753027060975822082744776568428443405800336397959190102252515063755992785478603746849394022467586285641257828970150338526696730957226409385365571986334717840874060734380539011265858303737987960255551094697341093679888742369007760118397686206512242570628723340117356157233127812910671387150489754281928536412545661770384995200543560255383299653180934101369158094758459388148271249147296969324166507896783477479219131791693770919901664269744573339341791224506419893675145033873568437252440432057349425639900086762983805807082122659910377288531574430840116979205741972970995901762773358306885372932067839512758987663950485002021224509445160229608217694509498270551744995941738235665418512915445581589673222229239400206246611051445735867478466071999970351857753313922402551228541005379536304263963534681400068330237355634907582163945078447505984529084311958345171634818150925293832931962966762588744347264304902315239305520138796878492789073588156302981770183516900228424495340788485867333231164414343056452729142356547788862452181989292481796963131698331205812913208707761441095842863777067100618271351886440706227249125342893918095230218187620345344170637633375049657024328214430487241441716600495393574341690215116808556929103456514039929152355995213558472874759404294088879042934327485993478782050875612410303447614094160843758158413111654391492494892036274157894509579917116016364370809068417928192876885899979871833849712285644740591114645038298793849452411793203355016918666649973873135010198341656584010418392998649984752287798069567761376658909878187157847899595881174022276672304717753309526332128568815945330373614051654540424254224721731395202503639979759182829610915557181693190455400466327390315611130242605215309787816538320279325661588245528531915296119093387707281014211047644900617034652523634988409464847181943310488176736541746457550640129229327123546769878818117035626378030859744897442626507052914135606428252002445144169523033350987450605824882591424317088445781751087295523614578210929230950749668724244587959420450898865977780699085015391219897214616126075440856027582934670061930041737164700040555503372230504574302039329328650420774697305414020069286880132172737151709070592338250362298854443598123298412898549774714182430302664367827148271245437022480426575678805902439641087143463702571849258627294507387617667804623845469886115202418543002489564670662039541754440203101181570696303404943044408941472857391284307366895514135554730009583756392591327016293409930522511435615383791866692338256003187162387547135357490633031247903261476266691893135906764755338614047962741837067286874259300549204783065993714692893342899129944970201120395847533552842479127462261519514443429023660552428321882282960113920567495549242828295419328756581490470895735765116300461081183778270526909121308727496214067632268852720136611079917847752416758907297364232264220929310381438154744299594681184852427575248610631102313866612052532424619987079565131395443054188227471574239840596453777340352177436030967658962581242735073015844060483028223405179046478709539913445880293104346614035004107539448780815694776062941733720041348419072540415288870115046968915685852052664130964823833015013849862125440169508569610580099385617927760258793591877356639800144693945089830770382262273593826426682759690547661643709492953845292771543260689658294022404692832544653809138019950815367142646934259452924614492744704608316629246534004546319730431427779589216108034376843198152107542355731081085189977771081050416258755663244017488102631778104053668553918573891897409077199763627886881854826447786312548190485552830902891689213229514571975597959701389822066572699135164012904104536008575642568041159615088092493484904458104244215314831384759438439692184653444766586446505158458486442023018961341433780378611681560374744346741404639681502975781660835565010719999416477964096466913177181391769865027404970863464320813307732845662406201602198725662920307297096098511546852871366887940418197685328532339131749953220286682912749659951929028492657232661496695522877928291752553901102595741118626848013081821753241503698139887514981980486383937462509653900218269178085474824339350826826757038010921700962067714477214182040878350405708754488225491794947578746891256643313390742444198995231762980874758739711010119064963736367271890872264136935695026567673743943427704262710000111627242205855775608238536865164158425987800769810777643946205200729830921580513457958081783278885617607474441556568788748739288088188603605756963831225326497997267352056269671450097759457298003841275383525755055190675905406382808258091566702717910856484869857692180179320215130432974474536437798691172644157084223601340720594961814266082902148341552168043361192594892560852873614780378667939738046773370576919718092733298385489213942373287728664306392059313738901859368904258957587897136412877746398707003240465735604765382301420887775396995794046854993042892021119308377593045759457798954427055052867000896036533706028838621432967207759846093569163604038609811380968960645402534328149114939620832949074657699599369461129753182812004253869644524623166455924148916582697047202947718560350608801973560943103599629028299639694489590648793980041998554182869520315725222878112667752612497420542707523556421474570381230856730378459202009673099616069425906093778193209849327892200238661033580586854116590832159684470633577976209671001247654720229756649050399495950568754731485185064255380920944861879559154011170222195538924627958532054801187480109251684615757891416158637199671143661444312637774662137543774301621350701665772182414611577099959611030385900296525742456059628653417329227643740314908204281868162126457941378367924125644280468772931298861289014411276187432376077674380827876756690869640369728961164252871460607251394821522565020901620691937516810764492055997536454018944732949741498243336066084762863855093497977176003164978735510349722890835938746347830636038100724046713447493426401526697030718406426347351084695142836549747913231855772511030472548339680871603174943409370813253598239940712126399993590894250416897236347131861249262400009648706001853372884796834099509330209999012748346937818886954368568442398028025858798618787103014767774570568170283400559639034097114991797056103575518023765464343241758791678814320557403201987496254757321913673462944387766100279643060840328032190662946620763384227153335436157031933304805858683655367338217891557014427429682926732748323159803338781675243383949107043407500156969694284291678331651996876736897323798968171100017427229684356840730352019977861227359875710857328650907358474917607085978212446686538558154701408410993015620132413869418513209361392612858006297050916477677066358631801342213259735975651944892224436623706905788381439596971862360711779439821882622440285366789567776848037103924222228571479155453481910678624148027000871334271636333967749557094942524681037009032298909925821157240038982955185235099226909056935246063242673597988282468436531841747676021404240334508193527942465885701038039935951404429100759545313266601510395228841670973140113846933130742079669509429642463842705981424531499806301087653547046410358776287852481953842206880236262591239258994635386973998358983470234106243503342663074770502181167626042216059050970144272285329514194450131019388194920271281070083925091805831687731934724291473470127425167082775603563516700397013169039263640339966507556450957138761008650089612656714968360496774723202879298405779361341393526480073896256381673310103735729714867903709936569203536198058994990289759825900144541254698608783122771269534595803694303829884750604336300281970805931414908339782578050707523676181722926254245489095007085341820669220535817432651071906081174178253856415378902729478945691156395903934687956977918699492907568280434066306933368407875287595143721983393562150807734249607715888960740878560959647275273423697732624041778900925491122638548348223362049397779948984530701231878538567706039288512111837235305075467084302603768558425557710828298851273590956257194204289711729455737696691527951271022670595616056675066844180021684031100668524484893452507229320990525267422419411179701248062417632618462772017050695838829456826869073158919819127491922855844787748237042532325173679880619044258804562807289584198774520711600647697438311145309624429740555087312095977845543913773757132937886378248549172873289352651030776457062372357811194842201643333183502517932719773522069800597316901901206466461661708948662813552604045486963578036253573967311319414667836514688288664145884318854749655521898296490186452973082875502496107786289314584484278362544458585787749269042921124515492086882596322680137880274608750725227218361290087879638859095658123284992304333754041044628283012696721838999397097586154561178525446817697633199939451934721341418311334366859304541299238131244075848153160828598788982994679849312946942252344096730409951127075393422025193669346505633829201713085456339097101194036025526096382094628335844807206518773380851169143704894972880630945387446633488028543460134905747305971715949582059710292067492075552405870661086951958518364923904055082466205420152863866836346370590576378578381987773966004583965308493619517798229339196558089500248021185386698331600456640667555732537815341413096041036084514357320410733891430672857438242926367223121411734960304194339408529601928664547013871195107193792628860036975257666507560773002219496252548758140524688197454697946994292254384447206479032087311952237394477908729198638235698191816529272638951278874210333992333824176031442969445189168040579829202589862591277502148207411456563399260811621733614930461452367696078899415881411027365641553620900647350323349820572221213341898051331672660960095383734261944419263351247964672280705276982913578731739880484886447974276738676182706431370260050904774718272866851032983081380373954699153087034526151710819922526478507511959026101922784777028707841437912771036855779753001113437547355885777575810920017477249984549623582436553864943836684667057646124281960625997766343802600055222778691237142707484556767821532438161354475840886787258337161598964741723810872808792231316534013738361928804684197796262598188926570633898732175017506736997448413855743494412796971721441667674835996368131689122157205655943047302275659077289946733870893761158846211526849366173416412974993816947189331903877430711580558663133289080368127697532453529558594142791936465996289077210700750105794750909509404949263964945200404101753855133537916956949532686925587805982222102032633839941889814682291971027800161079795419780343335256904999147396297461770751436208878780028638229921058616108821513832868315340126114241932373038056528122595780315878520140810017209464572920388639982419953730390039487267057079250121944159370142680927373573545278877362717285192184672417526671209374724766258144450464160064655350939955636642769624360146852618022511141829571105852521556306789238631632534710314667153095958645950877099419537601327703554254921960017953724590106774525155575012584957192387703503980104146286864552547713051356616383793771320372289133527773769745819771925147117166809363741482049038527492002446797525236718250548534696314113693058690178773369667096715772982124538742051809007714227964868471070004628057521137223160912394445010180634997566443127614024604286442035215783768787131816858358733427386166607581278752884960058525472015019910031693015039986457272378005280725146941013161840412677644809365627281185505181910553743636298707955271057709308374927164208522205523097306257681954361785480856927596508435482730442057531762874604700465019281078992645665732137532833453738154293601486674497010346550431554256796470191842755748290163536903898783053289326312913381589436433749738738977502211737354123471844294628324485498371587685859805516592882031551679533629705657825599973241404190465925630908350565381257972292116112534747470026098221178048653515237803852434342162742106241273346007393061085891846207303412768555434593566153321911719087106253417817648731925429727842644847996812949823114959036857121118525409261593463722186528278270768194304872012044777427332194396477092270355818769392617450346582434047028384852354590162099144947853642130301940688986467331451345632195079359712751397887068662294015386391006076811249811988791673411621815525483663882382567143327702512324001519798385727218561276856268666820590134523718983861474054501752625948365468402548816566380665476085098283058659995646228289007802083976799352305209237620523792616627874778029616004057041861955702312292916248108184716851880226135107789719307265764399421681307590070015058518247745337047952229273315091745949971761637356704039215514456047084351134732554714168584190222465382557203762477909515921964232634740579756763600145630315664274618068521635274633555716090363042453690232793799909871054002433454909108750888169040137047863236870824039965710654193070396848973452815959160343325154791011468971991292078844051237593944040759319790860077654518821420189957544960736139445543980237743100426793732920278268985070768086984626509827237473413559350882531463931586624722858295928398185126340421770808878086161805354907127878263105904709781879038446866583758529395890229442334761836081093330311696306619042330258148317929003253343380252955621836575837855236265832387912649878806729081497554536515958287469356247860554298974377586526467333157713720008447214137070872199788602024393748228878040190178799768743124741664807161245426091520675418152126944906693089571499357935592500478130695204830503188851693021096198060457309633571377429355771869670267426186947533089456739469227219657729140343346543849956410086862115589817747904179763246814716499092426245917603269905902847523914897128706708115270821027514078587668141215195888077478903673266302445042747487495854867449475648365013528244423169086030155151650972943886263202130032872896191147964751861270778635772307356502244936670239895010636160805550409767618012325753621463806346957851802027532401718447041436306598335852331726748002158396779971690586694316442052064525073816291468125750564018661898895370648819372754216740444708760355448642904181708175099561462101688990853622404037098212026592186009737301457027135496227106545010907758067755853240411014936103889315554894215381620263478472154565427937253957741105702877342854361765538384372276635528639308430600924303373794723676910406218099365260796171953212977544423148361361703732984537451846837910863202983071759293549594111283995122301719297383024904651774829314016179953185510438921898351658069001863192708742888112859556367762250043826756259073968463866126288127551491697647278764552092723041388291151337418048514866773730820829738446701913408499125792270026405781755950559315112892592342627683136903250538447226728812114417497198884892019468914368009313088879716156899645416911509251693984826046804849100879588655886123012295531028609319894573697737979540309680772497103792201439693825572596591901192393891120588253930925635065347837065618283697246172719086868481962964246446468023710090564361772804768956209950743613124689441063075911018606933109182340424410391812992283514110465652299098412427309197928965782641224669819758593754357276298539103139373276002558491198319941270049052957461476123481146907027101583668905682068900092661451124343732090397801344013824207133796044066089383803720525772324326422417194743655650996130737189165447507319990632624094962259907546820599270578598945379829501294799552677682758104380123975688082001738740430359862362855637476915936976350033073528465658347160462027231707153567298563898334569872412086788708225924145076887182547176387872608338021581738235403181489451303658749702676233840753144981614389520572949713525121656231396990962090163797819677012122041625812964767756053408404542884638870092457327258071739152155993232409989389353536097098615001121893922806648013177769931138856925673067722713257713758632888824955850145571496447763862001128672062022785486410295507786571741419376134189304513010988202107485605462593828197192033718127771485720351542959291876256365246445312403320581489209119749189192849220098433611798990507626810893710117062694775864634887613954692182950780364113290242334428327786233417572797596770592908568488064369337226305511727847660690926327359282725750535378662542108854962320232126276744584388170282613610935129157845058338810324366872935842066545710536427092984495664567694983466125761202064830841019699186944937274733065881051226486910571026016257820469094201486184774245091685833572973076627435381842183261660792360890358682401183550996284545776603407667754466412893753002898410629892187295469269344423941700161861089749516822269128934879084829710938336215703168089612322201277104017954951811549784838778832597747096723286969002688469076283158047948557003150050448736852370308611889415955685966487566144947679445672052624651730328030870105013902780849564811964691131428111828508686247621152943055717703988816762601661226664923506544605994273587361065887053118977584063036889010386556991778789704301750164838021018382293890807808856597562996975620927744197375922219355375363486386916584563908088308274112919037586044482779624555224616882179015154020421696777875541282583693483187193477695193070015318798807766970357342005429590076783334632570668877022590015298955777819540009833870890725719512793438008188906973796713724752111331714667240025617560935440877233921585847965624371152825882821671817412885371141930351925389357667031726560570966240507860239643116085672568655632723359065862922961004758857261037084435432909865051198355256910735824313154811580391624638289688344424998785849368663413077561727949997940939307429238289125344573488309594095099683421868662826866017045965769220558540458011886997633755611311846075984093563386726243425021850791975908830383890173822224665946586192205825873807903374903945228480479333727868611741769333751755186171285209235810343726519631133028937100517572500199256014647101511976824665846937907606098817292552030361317391671317029858792230833896341247066335487240391138833578730088182537991727014497573026579724409573161475189242743701297543338097647781904740633463236888666161686694248882975094431998704961303807636851576932302098105806960105053572242462944473030413992527734978296896783132043096637140048731760613164543085532948771508316582629453706871776180833387583390255492449657225024328103314835302369225258114730953929457275670830096349186717203023241002530126984028075328589305682869963326611187318009403697573915797848975332120824366930858310820244588929933960008350994385274673711081004939615341938547968695592389643136207738200372503417771749783111020655457753410432471345792375615163262779979714176622163656293170067188137573658819517359050206276686423929718742699068420722936215154098330709915455548548073081747962908695401335759593828349061628162235451870079874391836905763720905717025469390312359278681580391699041510911001039984365530961759663841025315569976901324443713550535442834319575887643313758169803628536839457491919660318844783830674670154634306021575444929959308294147667097873546458128366090911942288929006481343439849741681143557524018033389156601029776017649152237421341339607357853597432015171304001825431369877314537632527928723462990874849117120733569570259639504745367196617845496669265071960319286207493387616762660872211858214399493724029230527170336458766704846523586281935478289788460030089493362021984491323162975170290713980543006991402399053360752153628676022386297853312542584536745354041090941460957074915345648741773825841871588372457394551655104174703626270905785179106908019272981402402398832992121241215596956098245223238516506821984032748301920009585898145131300160852941897237460680701922897591849938213787063139382404794963133980851030135627501138399684794993284852098524145787976314019782597005194269608772684768468498590670997549086166333203271050659814873642778961505897995971362207258153133932555868935060064911086170376512421921538837813067745382784865545970809766301659316417102799569876729104118163773789567965026291625737709621305028501796742431861845204953804197115654495861838505705003465440554993570061241224109928104854121242894211644622476525223041376658999284420090468328291676505032399075865645210081950705546271384988647303336559509027543085564025444895910152046416854405286161046284457735672610978730965865820645713928223588747766006908469581071394496825527263385494443540411092867776636897184586374409666757727553474545644509337881018017437146678331177557708885720842028736961655042644925295042991097673022655228219574942859678123728514121342494258122340379921093602592465711548769270476699965206687409037102194833761041246438935404374840832092984188984297255235733047882149430452630965827812617823529711580292742097054493949607431010112646725931670471219326062058754965739063670647942874533809651328260680434791054175806753667084915209736097284462228967451648634439036845972262251009274715715769298671979991958618672165828542232350840277704995655308624877171160781850360692124028291655035938835339729512555059371225992082828714388569872886407732856667504389235750475559780046197416377167182391125229254123487422109260779539828560639318609320908871479067174063950285196592393420819534004234322400487368885957221960915547491387628306000932126337169832027255606148653263855440574551770468640819519673869959302429149484759611632073013324831344789994921479940865517219339349683095399791115560142684457239317732392241585314636073946957794589795245534695018846942284118415918132655700027785210756786665920980528583342246262612457815626708642106388847184066201300366378715564950258812581279524605252107079184765444508741085078568408830423531673842300655417153765489286678170808692406388501519175760828854694132917139662507153391396465051124693228887569000491125186697909167216328070782736637499102532725169816563653386590150266316146725819481748694982436245643108286510558347402524393104669398169194244445401561107876025520408579319495813097087499584774945740416613266086474145355635414213503848583339413325156789911824896327659290353687355527611676943556440338755714232129537954964310952886380894100887207409410721456537016828706080555735097770293190126895875167027486825387190048241163334788161278510244554645301084659692468626957003270682268506201915269343680478601400435338075218777932459439854350044188751810974543501388802132769610275311260795259122248161022607883590705795189219585685353834281524754033764151393104427866143796818477857370055638319353455110553120432597952999380976486743654627036457149438690175044855320184218316502360807482036529304566145381286702622048394759975034952292340915713156167939264320396557851610957381077947223763163781881069484429913919817153801491905145380323736672279456241779741497210497244499732670740667609283477823389993336846900127156933678907861635372780905789702208241771455768001931193537391760116516534072363019114668024003032337763818560840630110511854915034072561901218419850762108960863574329686683239294051482857032463704271394556163846341719274970404334341383276569865736254432698727001194800632448116226805591348142158333660405222989921015330862762396778645442501408241378090201750785704121917394336666022497851677183174386330742229482035558375548346700290054538287825040025958890098514834678739232256121946360776954005173784456777036358044718469912565083034592107069709232888744513261244322092739108884253515486152520622449691652238078731604200878535286817136069910873088954746508683788996532583735854699742464282766225335633985844342764489059308959303719012274559264257211895270800888869324492324047247331871955542234835736065964270948345166311439904761828548457156965978806514200698999654653702910532934475510411592043909557135004130952675625689548620396821671240060193368296236306019611051713499978368233054375151296697833946692310039428044818166934527864988167557087931357434912894926052896297730852153734481887626443349231565411697627038119139474306498367387089433701100339877211300042036426961416667441415904784456191006079304227537631112081593087639695366992302394836084538641082097150602772908545796184263462426791720789495110880115294283134057179657567522709221833027941930889494571327909422872395875603450499876986881602868268590150003077596374458343834826780415455705204308248599486871623573966975714382896864418665754483493752833544468166811185841841369251693641708006061602921195158020308709534567770897335782741446635429600569888779062419931929696952343830535346598207241835794796570329732890987991293020594577198604556462984812785610346940788145525199218874621172560849585162533244305418666499021152297289956322869562433733799772730036888789239112649870571492009575386367479015020111038350842536682857239096942931846766273340465822236852012266420780270298816454143266549918931249159850315688373670094938857796952865134473864128557307560258749421236063634619507563513424497248933380752315621275861481590845476381025649883584095544907177202642418318669806511519161309754665486783283756461666868507654125753983857109328485011397021579355760029565302392658604140546003981316797286893160529482566303488657415032430953618273586511412742866349084804995854473397808106126276730704825383087478629658948936433900585855310002618055194585400016801838439088825406400607334765307332452283821232509003370417946855812788875160966625799887036759379042069086988960359832654202171233026201280042468039143398185837811525773734219091247866393790023176406798967132373277551054555729207811327452028069013254845314366017425820334914462980431768006727229544787982395697489705282092388780996059710642221979590950860968277475683029548009321423304012482271959924666754689345724809704775967614669784366239925718129428560815856589258670810755134542575227906760091457481934832075096461693543485270637864615095147370732179458170391107477360513437579289102449097186529758274155105639737106599598442991728621550885902012067948058905271892974096210424134730006257597763157405693430824025772103196230480660338400483679948285600114808606915019248059427616164464248049702608594897723413279790176518263137360783596512308896244419164619786786862460770855056591787434724222780058328306504077943443882516978358359863030166336453454950805629167737622552283488339078521692731890822507392389936569154950524073831051325386518087513377059927022848751199115648319511704041015776385406254052910736011867928605019304048915954221588807921580074825553253568948487031929213571651499883140656598444455521969288554675520803116050295652996483008467380700297391436921449651284042121692771354666659772836467972128981148405149724350061405282361309327201677032834580912096946546270389312046773171954633083342699301796737334917243976127205493782153019627049117527054548270903705429886099226344277994728710198516999426931421551094751878397298512520409212660037039105564612794551954908890011117563987751698397985027805645587095580811205281613651708602328967655457596580858891104340430040655033567289072916851928204537280082784438573208627204628518463373480385474303913845432055673422545639352864437100673462108960271981175784637230855637672560640362038971986512694059453866173428648872630958866578004076246537648478980735075945500301224729473813486771281224962150059044535359225401500926507988611830860849069669418240484289343418449727520139623368611063399133087973584304527042692090331243709752868959779530393621645337664024853918378612674081819645166903202710972810537596364376643835321184966232198470770192883256222144367358153192046925751625207631827520558200152242448778446264258770390409755204337107317081094033861475355159974856914090952332415642250798308454104739350488647714992640314041277923540949563851986129384567532124694271463957684622677653821735417519881577684309244098498212186422133078925472267694045722954349153639630124617419501847749152569948841248232069524299122632312489690665775847612845821790953011441645827375995421575440121244334520976404612452260670536620158716466567134602454788274379942324128193828702591217660097338022927002995523342106798990978391727364146092566421476537586078840155528293327947960998123093086345257653174963094719809937318777718284966973640526478801705325030429559545612775718404805666737006035523104698150430952545701204837873702343671402193252259207440730077678987108440198415531405975523402519341816098294788286287472342541560052474142507785963936582635767813537184060706517056998423290242164812549334476648445578195165840769787321703030386147193750362055519627630499148653981438251157600280477999030260652149040931561926856480715517692427127713220124097388542579782686937872348827891278314920100003871037466671200122786041423740027327319158817325290025999164008409974668692961186455142626868487055219666730685541551803705699002723776753132528106657774123336941114754064472596170881546242871543785612058686050597512731073336280894355202702392167066496589323415141304581401741358435646073528322840886693659288126520410017144903883904854237190672993723328564589555483700733787655318333193818595045555139870981903195120966502184137516934764106678010569674846165827271214021156827362501656586340784871002234349841931769407719546402386458613210469113734886260729615655109637315147243745605512989573564593197983243847572225811199283259991532623942958146653865677804601763312575100375625380197297693983017553548868831647458609117161741580920491165424925332406257769954681828594539873162924171104366107219110729722082784588417054664188253542142251984608148355498560619126211839898148587250750851508925593959599023085556137763424967348089910948939278521277640155839839538004286889203373094516657499699206155949132331127604250820177351700557120052183215853084181854097072721754224858375352961411394260355324548936713759099875760313142390269149324502225922517334745006818146698627234442467506955592690090737234451379728883254264171962067389345499014422116352100087549593015945219914103063601825620444023923874110952771813398004295793026659538023831952918723286881660826859924927853710501952861985453099944241403961156131922894414768345139984955571447576439736539476572310480879306365498851892893484793935601468404908163448448005583050350974047407868939550710502528175435088961000395233465865315368882110893137636981369990262290840745185632277344457033650995837631482025866427546012968155630449109735335672440717384840148040001867037623007175255869863241784059374180375967036271769685674261014841516999010589426439986024358743924949762089990592697371512781410184967218286616069408759919519841834704331522464131570753295515611502596385351978952866359717898369819826007793103276495229685258261577807952369628701597296518377092805698156436686338054557645106689013246318244465612818505666516028484041622907483830024654043012726759032989228815236473489783770901570170614550849075358495679593293233871096293277492044370301750227319556860111130232978955784001834152986126862626627779163765576614829048395288552255887999326598447813338071531436505777387906921089932276808764869654902077710737818161144372607803891825059437700456010531002963354028877979723695446509266343912017502941553711291551438006703256071765138852880078607099285810810191010495847433276056679112483960126099990523818906456793105352767876184275622088425771844738020933138037081535867059945038257562442874741831422544260047716613212343611691684741151605556411867619794181871895940871273260185062842396434724271792468279822809487360005964906980513915726930270650613439258487278810533063194339682732195346578151035366457167706291231072677762706082732524573289950810852384492930406700995818919503160990159512126194104956116686286972017719034596840194594700947427262324338682747786277645348639819984969408665259066210012614550878827832402839231157736708725250922045163089173640443619141859097016092872386268249441193208252120062974220432721891705464203419403730375647739240758577168434717109429633675448172714080966063616861891029194340173185374048780138454184631082420157407900009987651206453845892365741030232362190864585162740324746519614427219565075681522559085036295827170272002547694751794312453019486010492179600720867953845330976386700643578960249354270503153703439862395911620673369365417687109186051876564088326661818807212879968640949652171058000153047110089480552324410957631662472500653049977398245553795475632598532525672167767386828962685764733129126764429510432675525366651490566322688968412338755795752398788019748811637002407267286186734839251683409384808753243531305808189843526472646704577335312205929895693425641934617804729265116651740704000683806322963828504846842285657423968269143185380180372684963928356910043705911833020944911885712881363832487683138514051308501056869761959899987289210351839948364581097394112231085810751581022995333552088789139276358244438639546917984535633109636724247014651134691903908600780872901254757091178540524164984018792794565820416976164071441481322729737334712502161548067502717908214221791980944440252185509079930823588394847667334809625231025941911168646719531083929307249349706525173937537675534873630123876197363542857361877176635622191684907979749648084126874898836332940959401900881754294306170965433678311978945517413327141838410051889272236605589392975774520627134672492123105948920395089910865822879769476290708148119173483463594683246186407198709126382090502738945452333304128261877194419805581235289807477525910313458772255005419798189448791710983199170617764878707294393972125359545535630567745367761471408462819517645357090793801861156194909863191051737530518409997665235038632568226603964810761177546755229054187358056449441628867997985521224495872656901237534539326593017014784600328768256562446901643710994853301119795628303851315112083732685075893242001185614877615171061055264648499642588606795529194653855094831896343794598212159629587604944571896158491338901776464970949632072996896355224299865746780121161907387342610066664411844855400699147602242495255011150596397304884381697747677398913846316528220082640113840612122753585260891457374074676708937765794992929687181416714624537441651251242018782283477755327462541765893527238034325365877918308248534536759759814558505575173361799079052414944456307149070219415005029983205327910283399479298923443020321179211539991336963571684485518836192940843247286610301156696562623993243764573946553980304693459353235054949821936512068739417889192815102632643117023574269550097480933443372419519785787822110781155621404830781083325541584851000040635785859004027778877325248615431627650070032374933102259621854848284991130750260514206624518218508630999649832570155391807036982406753110066170729773835127942285427987060114721022618900360277993456272821540002116372031512783003881138633118729151251613194778431106794067082247615741723538644043353899773420890398763177420280253595452451376630508886467609523697132290382989147746075382054169092324601622568814886199781606888427247702137991622986037584110343089140208360626255752160391710590957116046774992385347357208626025785121803570430304735560636826063197589792146921765071237862111886832629201520085051805907848088148821050279342743996608764798375893862170641314877157697836291082551413542890440956836612511136834218950187754356548359023118878179685069755076441860468576568928397513056714710304786254011817812367813413975601982209222080763921944770231669990511085293771336334648401058840775836130750223824322103025902286773394182270446629242538859876941593754155928696879303434383543989590120724987586834488713299904656584693270431235878475165158899031917120478539423275646318397557620177993662672796857456967634692163287455237266950319761616972163338683516383960757826138655282688874577747338252685346346826701901126010962066393780588053873221116864241887419072478172307982940467077783486687943227859603595064233938786751642356785030444164439726784991544081110912321256013380521380319390582598173616521587509092218352387575574914547247539049361455374759385999201049971119663887877117361217926508924093124993242032280451669620240437808934034090643260192395777970807336351670832508821760361820878180799653088395368008693851248312020734286642906941877849175439886763382488527033581365614098897292978389862942035939730248092228185777946419810054829414435240782600981408898410395514352705477382014843621306755941504741274258070876161550940647199204224908016414900170556132755533870757609926724389019429990760822274950037375791186967883680207475425628227361245411075153760643867837121845741733268260696788672809349338814168184989480774281945521241951581389257898128174917354480821355189743766924943689137124732717273993454852818998116561208805712456255481251518484742806716318771751579605654117000204036316782891997904023525246378650205182704877696539081686696656943504866124699952054084842772412778735582733409226702687524131673403297812518113064574059391098502258145293873289134109746693997394539589750180786774201472950586389216064358472749494872259728083794731755160265457127783979341888203694284653205361800605920131337171708977419530804676209617236271980742448046896936047579982470507898099286678675510385716417470931931100434670670504355357433368799127772379777271826660130225630455034393078817331787568768421903825425970997791256385801380111825825919192545676019657882528667562789551274178018822766114688530504195488116149443031909503355687626699701468510051506844353314061431334603670921972966779052980420190340122727877513421508981451763629909762471674463135678213177440863484875681049671648007334005156306602277745246015871917016530181499941370217284987826273422003601954195242241098735232565041058683970291302834353112618214129780708780977234402279362473505239332276953130034643841501163782197320211959133248013514491005643291390137862968136801161234732131513612614449427967960127441569737757450678874861693954834195779936361586510086626823543426021643373878816895067530137280280377136655133655705374174713561470348377563173154883324479728134731610612296846193643966610043715076083057167092697522480585407596855342319501889671201861414324509576549796185507446604891483289852509356437984936788331665433912074349425248669105779306271697803365109820438678916179539048413153101391647261444939048921508276850258289139123004533168564163668540138405195813259027711281792856272526062401725187517879465906128752970051585549037471750769807275629675796703608124432527854278026197918652802891996989138797320992888630209525687203635298132625265207980898541942205702067268547557469964847313151621636006985429306222097416323182576457458502151371598540473982708145910882877101669598499506416596110785830084127625486073486954439435487377044344634036390663646117206910123791235041019071829405365983500518165536116303255411850426189682529389178575560078024725029099407129706600334641663806153143880148539952101503439048000960254584118693264349480086129782005169960654360331205654065889117510308433290031448242511820319752633884449156888394782988371145893876329735525953206788043955419825004167087203086420527170827428996559124032064657833861246014114341976437238107544588426034540228038378772800409766538598877960645119618011711152169718338191302830635666658140042423258863727347181818154323097749977388358845069086488844026157288747435081742350651652661078885923039122449249041560866167632752453407550304558455681149360885831128774300575664782527315445760460569706737949284920584527097510893591541300789294405267759319329976517318992205128842072673808327481594880437938556836347964481978370855003242573677690597685397838752719118031107250277298410904515059629385390175530730027762095520527646547880323310501393914600688833930974962050478110922509320164457802065714283598829345053092566503179102674811001491496173960268628289591359011282607662457668364120518637709654851604297043479620864460736893288302460683209703547366977543808128938998273198864911330536689234597381125460003553206743818139672821957622618308843254761852140434869479035858295479297675021231587027903695380343009155060322674397436288627294502099709620524487205078754405457123137907707913522123766088497567425194932958662335388097699096206291217937144454278850188827651702434188063391011043394494822354309177623219365501830211119033521906712957338862036553896896479846337202139142831526567625603603738566070970413311937086380095712480236889788725673805556121597496450471716186079561850691036885055011914668555325559834297546752404045608204505165361341538080816193416990696768109559970224511095706413510907261347626529692235124828599306310086542640342276120285425967082362591989479716095569252072531791520723361198236130284179111392764407873030368446866977106372166321848868684246366863764568961621525593663001357946387996160215128646718708344284571543897781996241938461385429736297380172573019928982414382112517221606575906937700376173527753683182949761283895049732326170902521993888792720224442217596972056533043035309240304188995152663121327870966852196209272916886101571246122497640863665632661995611056734546379759431774267355022648397053997196702488507803894249501047920177386964550870086214762391320590340992060950250463546186430051625292538004257084824921442495552393288415391113254502739087107638343836499216008419681447784283730501674998569354869413415040230633831497061549826974798204267082130634291813803644294398078441819766434769432419700083605958726962167862303232241069128433414762827660374765684680448842411528492889087794355906569717845194084543346694711179998919372681839286024806586467616082423214397340200272126995834906151288359068158659222209477331115725803951270668302239749394788991889610705098909548059179348835000270137131413156271868816594862335552549056442433934935253885239046319924083067430502376415612869588030745364457770362973477946788676518648914576604617601427152446718825227832019841701781703124452417673818277598925133316977027725316826912646824935600102370317165791192294788715619348278960827211985593508376009971694539743217413276513569247002292327688087103785984409648731934194550445018142908605658387141992432687862558472272672392315671948299246561576996334385991049958244441367431277891674269851625989162783416376867224150641631777010702212561723717610068896966357024860310299760561698796762687128969672471504404025474061722086708439479059690406457851295288442963861684872466029115863251095262245335974435128312695591260163163788252669646132968589960632696516281673554443520852945516170860672799086329008269246465668715562552819870091654647815321048576587807292436770601946444001355515918522429282321684242787118531855317282733621642472827099066067207540574554234270930015090487937319529387725144493682817820184089473004454570073576710520992559876364356108087207636253874680441951517617068468097282427272412045631854850366614334029916335747469144330926644925556181800666173638261391213791239294872721686045427391915281291252812462969127519791183327311960624567955401427708716691916680253151001245454058771118072025771279200131791838157657248449764267689246618644721437091367264536928116731926527270720625753589658194734866168258237350703693133471640521648286831675819609801097127692551562218180853727063781720895990983730395615980812454193578559253002136690722453301659467329363702588248537231021853843223142646618614383576908987143271779141946064196383995358131704966527793217381773653675217163281542595071877016319046307460529635230687342686459998108994805249465461897742242440009210391469254303747921945345472151908457367510240602567758396716560970985946788093468163187116383990362018495793944038775481888927771744804547904842932362071449187733771341261807800904623323149464426707521815908992305965538239719124672969919334864485250804495976105339960760580240134244753760568080053877548609983273249401011588193244666588367511887372587992000526482165249909344735738397743176037996335810457144250702212539582845453703551094741365336622088135970578796311405796860825078412951936745628995919856533609935568001013797880912930234055102096309454151933745101486969621675583434037836106360627332710253626351205560114602334289811025168201401510361769299532198117233265584937266957836385241412838696176507525671328785641068541009071967678637450184653763197140475989628808807874674670614851439028673209378258664624047096237021037697500270985391313099310943979437244414450623893990408696933627757899540737039264690826268458713074520583441010493562616785167558261380749193254648243206534573169110642812435607964703198012012557151946055200898562368994690909288914461765504443107427223854140626873546653368549553463455182307377796301433793893028349882344751050398838736919733455361691785226631059392127015279090524849050244061969838767268018504879989299185374436245480206916724265941504419778628547498495179980873999847836464043704704621003645430576666636208029653558754292956909759347798175167332147633450618962431420884237399437274553197868048154501254730702379213818733926533800534286422441433207026673586901556562129087749781718537694703656417114559094748022163665843151205621568045621581351176299377640054776311524086071010396644622781627896264816697979296499870458328546097489353170949386601649092471374826113274243574992957635334022106875099931494994860287467795123370371225971456707419106615219192747817738842457019833934534009114264120499682154205191893863470781148117265807007415606217028474717650242557300614273223512187259913883873103369576626631212205882874152806740081290711292553523373982788555825296628021998590201299297199603225054525706182642797223552140804079806877989370917832987637643221143923084163414713652438027104410504676325590219915403399227627047952502999706571373691631369240423265757918158241466378991848136780278194183216312110973424275402599803310014092413151580243186235737354821449562164457702125448345259529196011119215702574223213751591033611656266827339564988017610072712989011067217344664222244871775546769184730745910980655677551311442252865076831296607239276221856839718613449073670700254460343319029947518393614673061144483163754947522037098946866985981478777694288506865908900142623298140950258896356265547900934309327794704643849044095989926409681889558854723819274244831777892185644229816111792842383068142348229337554463430996896287529836343782398808404838936754123846640108562294526553564556903510573845318589872928739750327839759986495569983856154821528276149795908888538039260261946753744701323052680557380845248174607472251790974115246088924593418041571276527417402356445617654406958127261786445498249548637195735747592242537021115779472056801797566794768644942131199808912324666592155977021098934759166603696198231746264336613137706518249411756495611676654181799624633912997501046994932635234471349487747297925735853026145529876989827160353909240796312395712247822100522218303071671261164489669620507269243248623803518589873138770483338391978534293491241951549979490208474768293492250863331337531919803638343262166832202330240841782856474034464034862782667374323346748271748974907324570804179596728516212190424537647253372703608396290296756788924453714357896629694327582444799926001309948416011120341385738569567481255372432437000126835927733310026419905481226292696320176409501628149141092157100294096037041061382111960815223421154619842897194214163209685044847951775143303951349231279662421201845610332454146282731867663567445355234033481792498173037736593770819195821299379073455772587200318654200380813124386197258649244172491577480860626179261843148482926692226469167988015539154920239965763009779183838608026898744864483536109705739391596012226882840797826962620296816549847689925431250271278450117186919096512488233702887915914665202381863771423539790578621600661675990226308754276602201075322486188107641395217523780983241600079203506034962216393924884851470732528859205199681000509734086066473271405644415834230909582950987630700846143823925701516233127178874383223361594590149789877639506453986244822051627511655681188031005834238492630394237354496976690742352995573464175336652456027768862830054722051813086163033704243416115451773038406066259120552150873731172486579379673089112207700989280818258449725510407284872867545524177462276234253651859221066108390574092965158977554029463214887297339525443062970421970060381557975947366553436663256970783109205400962072902567442727545574724173255776300702309452379479323218927128324858719994701517450376316207989923055909840221709710011390077514399179416484586223097902701465996128410127448188988081120754878901157430570698531823544134924932149971507577364907889199558948188786253478363722147698389430097821764657793638434836663899081946078381071922335007598307840023450487509174171090985083095962504421990797006139170956022615971181635759427664351347089420447688255792642920285574614775931316847122994620618030546804564734106522883799129701125156327044597973236878641895334016538028250246714136678631254852851335966464093564375493712994166780339277590328231421157638563978174223788772589014179475212429618241865530062812063054128145406539480759276282889938613285173960851228535190755731220135136380789261466385598899803252595895665975097440246238610812437492641665532234186335466042437304190488870644970997042247074195873609359575637318061258084595215505551765803954144349506728191008594410238547517416790843004722612569475674298399304984917767239038145758090264011045171392037569229847599928474841336207807765733989784859120627755401794555034533175569196291039410892194469821242218161386226754080942932918551261035411841684042669000911573770680899726178353392909416642318815256246552498431304928405251531717983235713332100145963867660021249142614675257387362919311446595325044073252402841563880487111850621636829412018683098148717722688284733401127935835030004983965721397455093409959020066440538843243568981410334277513386997582686583136658165292737709978894476341444042103663078401032103789979559108629475188581180341483039078921255639997915454972859254727898996786358190553707134749899722984701104824878933954918484774886635300943420677969316324803890510332270136298717688381371365181145625205351923743772367200261383761459505633394301827835952184938827988178514361616357077612620522056522878646584913573602190291051235598275645954993870565491374720745810668564210888492123966206497132155478103013471685929624421394560469697325110719387253890548285779664809461377188531106422543569166271693848223436612202817576165452527378141481317234765176174560260228495323556038798024875192341290555685855172399835701438370334398057457074820658961652117450541996364173273449982073205171007215183707978794238494866382405011221507916817648423148916339615932364067330069734636369603586642681080111410630419163485965159575034046746215911039367056586643175378348399115941599211506313539482278025194179185810832805368706531515068936343938047807573783797062478142621025290292483778043233858346562508635814541561817123705861461302580180358165485399146149937592833463852358940136836208074723272771328747106150111870507065181698851518376071749012863389975321551662041112666837500226111834982547065763247038408490770465257983927947220028732253816288424186883244704926189050952060937673820866067041817879288918451756421179558845109862112778973263968957169192750323214867249938039109965716700904869707842570342724917757690502102131126523488452102775777565091308114208179851696998628601225402278490104279281282235703187884277605464350649947782513029306181635686258901437355872901585355077995837668071310746293563736789215283471708034140569067300291126888388023712720257849163347253766158532576034751599205103156440269987706094004488320251691278257332447778019615391162742383949883795581298173525588613690659940773485721582303818142139962105623154908950786466457494865215134328878737783687220072360868113907228590859475081605654533736401897373161767855758064103758682270612297590214019593250655964011058656373043144359291456766246454687948472805990935262195926773399250470168893296069283390425436391825102831457980831638017937688723130880527722524800077753245987707779889633102727103976007399107551180087578247986215510931545997075794374564525216551383917870028888874444373210699348985226486697868890355389598034005059640031803625945985060286412118311082909256965610148922450180471619389002039514399505676250949296026049374206126078924274929817785257432808951596007388094489694793288119148306514566000816669318158426187600433548071444010831900816933274120643752353219929736989664227047232677993792295206860995749261881411518594431433585355028012187106644132788260627499604337124635307293064343075778382216730476287905520365211833586221729695019677520674353506902101905128290577711942839458009311888841875695713565170988949165903774680794585258993771638485053103707946971139627522248428627607112285323300016308116194461728290215756894803437115218087318375493760670986027930152526203133268783694151420245250194518888882841793554026016372700752821053697596133002202283271524219647932141530864381659207447564049056654975268472588953954210386430489419251552172375319734768146374387854331748387111541289116323732134755284386540094707694267066176451646347749858791466114280032605740777748914985892023529465301979035707366409808644091362474278802296599697066494952946745437680618015489688994245604820884064085541134511787440751649965622586306152477650874515709891114656957157337141952839208858144398364327261400990293780570527944479067255343343213624282689127573021135274421934169892145623797962314396154166691256331886515584603837197690195962792049455501995898010818085464876453997947767835969439849622882784612669733589241880241167362642032858815765753628667186123202809782464015406833735553509250743031414888059528202430743750367715279139668213027458224105249084655947987996672011484627285459989891478278441751639142486631804956542084328378139183911843332283132633817303034795845404548518695547063959379719642498330376480142096413646318647702092302583314949523556766666283998368631178780014083061688211295262669772215295047408702395141859713786662480164985573591279557299248858787362535044857665705578247183496963459886131719247865709234338049700605977710970972439346874615217083739583175703012575309156486023405659755412519473937240998599788474239448231672746310865924143999880404295308126843405142971438215417727575559141985494744145437184644317494551180280595889834382133661432809803958908055232735097892475882898456887887074141697111958342045604834674578730212128399862875536078706322202651541002544429638745381809579638141056340862677195585830159230653765188847552631085148699162407027172822604348358529113173768622411265177835546254398088998106551716209088595738141654468480213150786020739352183379292384953592215511139535073344804465008640528869384651005997457371622364839912784968212246791368714641572114827489216913959397253454598031222012023016986397070762628545102619761448319270687966654767672873297901972526277949604884679467764638246806568400561393581075565125058673638313872553502338698513231818737849776233563433435352751998517498224271222493165623268389313438844585857316881048397484319860858520683870152815729386189037127258396902429909589753229459586163054905482172967698359264381453424837815458878182027515095150825113438739851759643297897603869301587928566684567270223850686422546171342951110952373312590694329303687224447455065822249523144700485933373447556474475126300600427404525530200032568620012271435012376316356757276840722713768832475969236491265370261694595417825302745969040273361688711399124995919272875872400033796255611654725694187931623430619126187995916810109478467585593797681451021921654206688646606838236491888833459464537508581639711757284646805233115001337845720815894735435226937698227276806966477710941649730525859388894143458222807053170504596092746652411776454986697153117283481792096655050533497309090841401782665206340895153960865296218655071058903459232885983330609283987073053597441569564192814052832109977383719324357560634632701275037156514542367121557354251997071865572680695316722841508630441409965917691316801797531628566383743986754685353972980154806600093920615213659339382776254056051486353949489027297560331663194453634930939760760762486318577000246569300431117780298982874318230855953456890681636809456424456614622849620209767941735795136711283250321762122522772351615187861169519789987779703290131525052617382001071961024487000535840755893626518043572084005711966567676144919281331203337786433247478150820459645719229055810295131549602515544358475346000537182851012942322174156360519835212006218540353681975582610377798556176741278287557929747650787097439931576362360860812245416069785185100810417187668803860480322271731472120803860712089849490889100158098492656271476536026105917738023275562957581930245920947798522715003220555987067151736958974010025836883950756904156508003036190789589629553241889731747199989311248349042063293097413937469133174899230310124431122959062109420501121419105804537236940360238943950220382022379523359715619491445927691298040790162060128075589934639190669026378684357262172182158627244346044242256530089883050741792067346730814904376453229670597703487866254893397074459053695758827001095724585400095218103469842501354796477919313220402841278298456011583130975940768075000032682218083163592792871796720352697192268242489146850847197045517158010517078566760481829475614626187058476013728427246749706866828991616386256814603142307176318656526052201069752861864849022926137421126534138176767846952162301315686581509449651179691372346043720759602670437555589216919693557368736858410440384284687219244248789821157165365327699326120019625868692930691694728826097263464679649558341176740552829967882132508918260419401103541872598664611096556969881865839789971390477620808219585123107417370144807879784523244128639300631403237203013204086526702910557480128144563571119173084321059583059427359607499980085370727079019345973627598857530738157780570061549500267870378602838275114930861366730438210083478176994863498333268862002290774495679329663219178545986909175996765744805917497017146339868869738871810151739660983861794726655308609878423299957440172098550969859368110452879625495563616617543327350926156194597465990261536677510241462801348163347244623628520458309764479691575298212793190628245679011676031230497285752434412824997307754760744247939266543968754651597818530538919784983333529157943603147587957749821574279378457065399204406234327683959507555084999563299485905261497752653488471673825863771487936071654839560091781631709157849683390714545847094530827399403952147130629615395392935342567512902054056927798172936035398475011602570036952740662010731506963755734310397782167050673815994105255699946627614706810279320209085074677950315032222222232178202405882043891894569587625571317304341715447038093422842982444893988421456039410090011861988663198893666834925473717176172852870919041029692387333968403073931351944284396715154498869112686601733732742064192256278576659282815867418852004703440643402784926095804316569288840625549983394940504867865656716540693556842624933058152871397878433277141484908326221774186780623411851082028341294517162100050213540537073183722213468022266599819778681618413070294945878897507577729919249772829792400997651287510437429938714117746961411216095761341871217013678133670372418317540890908822193015107767055749343803881760679827707871195285352880744059328184363317508993903375624477252315202778665536529490492671286276659717777205411661192775391046512393103609081157289612670414515423404025777334345519886750978616034586499292397734194681909285112102223721178210013463633522358905950890240036949608914087845044272214734519894144419311005843429809680154343320711112885258446503747561598786914269556539022107178248326029241586949007550340270623819093371292873427266819015353801325910698926640120820174347968515584277131724783414533596048239214548928857607961695739432824197657303084116297335407581524676510857920642307021887455764953838699736215406417275980351440051950382430982410937869131503922906034892701549709316435754385444189535411954724569671522018515334563580539609400984343148396299517666296935143063866820112955067027380170940209219901240250687072365605789204697516064423014805617509817291719973378008863202939215397907472581738354352882415323732118392078470362751051013441912803058862407370712979169633617590307200572888633914104181421950805438239513914256861321983842159597986909405423700896614908734250701315521606025095483417993308155907684309276454472785985342076033319753338061606279110050980424308658582337887742838614217430819800570688191339927008778570411165997195929335572326111077420117121639570600103091070357548152053186771117988622711279130022129323232559663651872287348580269372222586723605990147505225579789822434795368900160016771125580758698340183978458701713630833021001591753614078811881955262545083719572464950769784762776610388022411754434426357416025936347106381782535264297815832695039107233858864464263911916857407013492804136631545230015205054137563786199834165480023667339322031652360721698871599725503895084364168002239023341713618930865142597181941944106932315835284889494947505429647853900377130992780482094878348914567619256514528641227505102261236525365243421876571645612097166455887230820039851961742653518578622744877296665369824303088682460774117810210910717123734727215656093273320886839126611773880873911488788007849767064666875924001553996703146305123736718333722356642758716330035285588699428154648168817195524257707439136524148318187217311805535166088550194423636438846688520936291802012674999289861666925157499023842660130587600945876627929144206735215921917482572890398859361371212389079442393218620931851758753070640295265150101861028129021271635538831444471796541185639241056883120555892367194503272534960156984895039680809903294659598182794555339433592945336605210859907242627293275165356646371162912473801996410284746653181526655162728863441019014724920236651188660077399737128160268594592613073795304667543264265408217136956000722379479080772366878483650483623613712251706845234865807279800719119625973526443879453240288099185603703443334961409805363303073891177919579530147902671902824756426310049339864317767829994056717349151100955194455081906779601763479334728275757622035244938306297280478827197878710478772190494056671384805514917319275772982900490534740937345522957243726870737310061650319313848212404259379068775229944297188256232073500330741712821155883757268984817454267122969495788633317372765864419583529843887851781532681092886158747126834616451428575075745126179195221451818472497661567120244751998450069644196453216601808674247247901882724760886330880653258603060813089852723592183484847785449541233795443372210543309142179487887273873885832817402243550685266667771532869191997408067885006117224143012713652375582374912254513319839545359698783915966092721929337408697457527387245053854488549858770280901670113707543053365744969739561558658908375100084008750979029683844831001975085838388342421755578201098986390733146218611502220601527366397202862183987225057262274677923303471755383253060602630044907711253965337233144807822779937352045099003708877142799835050897971495783832765411055373057167216650244568322009048123712583314751157604309111174934941304840867335447827197271397359963340118153541306004418459824121071302327707669541193726484947827471723862741413235554944550068587625211381213163450587759176632187303967496941217691402809455740587137241360400146171857678461324889888892670502563873495912378457400071397706163247100202191688153832356647680943079996338495349440168136517319835816086009810154852818595581160839861930503762463602123168142742365783924634213337432774225255118773105521224364319400400613391277473525274902398108388653930004960908947972275418122711422240323173437534993329159100390789659592716641158408894737406350175102769365415957255160868974767973065766005523326126064233383787198955414832202337938297556594836068857406679592654328032520769921139709090817799239610199584501992897338664984561412275178372303397448487182776065783656729022757481345864783691700365411330957335469716286752299305364789790731574874948271423039781699174463121011720629058285932081669453393585878241668063408260951556204609001082122449699722815928721774897976158057664026541223810363632427782963535273700367056025702518323066712413652044174142858686360897322989033943419151274659224301225681627149592453666812151818131241385731377803132917521870512830311335893291131252737575661934287169768245744090856632452623516187921119347194811409398400829539188938520447430472046386913358862686470274821790308071582722044374116278120362094955711489439867786475050003942813969598305943924608438420060013768653258273102654963440149790527807537684808490165404418695112354236691958889082804442079704069614615826499625875699396318149089286781638538013847430973793743702702989587393826221699591180210543568724120676072844377834277366175499906757719957215150259891477533678205666257981972378109631578598110563558697776078539426859174759116032871631867637668574653408132645996187222295925184634442843501864983015526608361152844112588865188922164155117163154325137330063847115572083686810300947916467830569985431585995359295444096282061734920140079168683439593887878106534370853459594523139275422026881220259550034539215892773696386092289789083334882227966471581920082363737234971893171597885649090379553404385268047954179938673678935954778710054210305338866610337031583689356020113485384524021306922462191158549992088393989077673575773585636131888771343312947990718686780001422648637207572301273134539107684511369857345900231938812218748950792236117792323370185001845215077462761512965729420638965418006494483843108026258316376326826868988080002357586680815458825688937305800836256674005077170277081327310782010025797162723325517913397940757625407703519628276587221562437564605313611160442601368108660500721086184222042647482302014016821791901408757685386794990701688171187346963918295718407895732865439819088199851806496027384965389951400331308001335023272053603635992175158832025258216982596869007024422723374474050227004008218729494231880301636139820093102895175507919939428160767989880255776049580920979357788087732233868956087838520659909542884718116441844819671765193646728055264118341193445613520923880517895725069291236980641323182824088733849559390579198016444993818725509523290785316360578517019164226317460420445553815696650789991301540618566006901066706185241322404078738323289431951370721890208174861101100692949269340926507334101172146893841978903699649807675119226864269770231867756458054843512449187776320388771985945432763055750543272924280132606374301104492907059831007961673014343972981399451387401812002900881957610064452346835811348277171571854088776094017296034929984486009809598666634403006797688129232914130724457503663933542718185199842006543072166911076645569381262594185432393684716911409929759264910478063182452458497000815940018280013329182414801062946948684771365265555016580880008214063593663194452162200224460682782452424959162000337919778243887249226511884913256857029062245282547345730096589710129547355831261304191385546001638225844393847834084152300431440757136944996703796062839803047313137105745791724509354359390470832697608932997943553077240948084389255821787871247170080090109913113829825367065997944448340673884640637558082934275827599094186176894370155398655903305859966828920635316636083573594539699371994621142829180497450996908627359384872359743749558831098825947365411097897084762770534009505948039856717623906439373455286354420406601307950696374843574180646334941339479226652069331135156876751986328002648298501473424983901772246910346702872613456793252137260925850211232476318853497755212906552570240958342418839857471190005156588160320565783903221779767618536605279097303396898197528887767657083313278201702182341922078087371498870298563796966213956835069774561151675321876382856316772223681336720309161940176048464654165340811719879549151209333391418494790330916972664703068795386770948974153295360675189245665760088911237304672849748765196899353506422827250140422391780905508129827508238900747467957655373493101819902341367055879040435893759162305677151534478617761133608856124614690025370025202639855085502089409142695631791368962895905651710477534145600692317341635483652368933619065939399863917224546633036013360654582222324689136453567131654191390500415688415298068794479376755006317736222572181264971908594034165674439379642840080104389260869973129307889744167210586703879996311461423429272432970341805688122122283292973122759566722886275531513640186915211717266403506338442186398865173491807876702498315439516301012487266192394404301483328804000117877294800883082547542940449396467830209567191772236122847734709426526019628960066665903468602542916801223413250389564023473420007412787548906764449063155562574350185067888212975361773578583241341646062965452576383239620377504640777373936235181010156359718557583238069300010246985131614457569186998692409148660732598598014218802051196770131099649563473866303123981675803723685876553902684597933889964113573297083122437352210488727099998549498996788595244186961921778486359703627442886352034549678374340773396724785182514187705619206271965715293125533705544153003480547397489412534039327607409168038634589318810193439522131902110387591938920496871690576731401507959749245435359933954327778124454948439739900180450939962704473466367975015964751325430750420450555728232442569959283866194694340522764895522133005191387607138539755247606121016945994658629018101953907239338899618576488208661564490488405905122837175576843643600377486413375318830281308296267860976409915642111325848202520815084347586444843030166243691456453235954695262870335179435388342315841070842502552916179228314639699079248045292133633788144515791956137412659458050359920097895602387179390393561519052521487825148768279508816055445651157681094433139970188071438578649688588083561279076350040191834156094442919959896754813045718583119102112091567977344054339260789189633427139638496689737676679433970183616869411958018455921704089971558453863788004826607929322965020893922637898228561045890783164734110622171681743364033156481965232977818245310091989547111601177439938242727939294900631904439307019090278746637428008121490082840709600996041057354906772258097249428295373624577694916472942090267421061924307785504480728534950977938665693935669501763050496106800421024181471639771648371256584787779411305330146167229326076540184777064123773539012974991747060061578524155519760347575655647287156140698893148236836236248040746946144216500806097502828821921731054823382072957879219054482560665750538009515411714373729174465796421975933360859420410284436687554620539202232301846784767764097517853033532336618956148336686875280701867608409563699815614609178100073687709489026294991135695705724783369035214263599875126163893708774496657794911953456098668603274848812757577795058519367119644496359127934783233196416033547840422830201245013748290367454427695629849579300481698409735844211715504879685000232462990849293038443628859963832445933560688674661059774523846611617039143514208265540454844682620446051799724686305617652578781451674206325873542771578563599093394542658348591962235569170580697756876299740025835879167148428825223798532212123610689511891835558983129735657580316020907809833810737842822894072945797334397243201196931340430235939815400657352346519191869702998804768727056048914483091594355085948427302822212657199743796002551987576944069848944841595960196908380489198311416877893409708765520943934675775534290787447837323694338629497757634353149438966592813235492066829104486927159958668913567123981778936307627348033925815156271817211605698837366363482815634364142066295708706037537555742236508147269038112525603236691028216817852319548495359065929792672352183895020677738564098502733165491562466914804112335034471618289823059008143980695256923359695625267965427895838178530396431705827323389620518975173525315603568330883622765323415876716271626602844941863904540148496413661036927624130273031569933483046636175259930251653104886730832132399015671295661449440989625404774508646094038441213180214149810809699825454729430643098024656331156144907947264005620661606802447965388039316227662135162287985328251840330955262766739964164799333934441393298111656063259961165040939260178685055927245896136822357863003505256451337803126145888551253901000228802275360441984015022450153269046091392764339905178760834858034813649441499939716249107587893472061953509533682147619492441932591061170050357504564267364398786552984426744702349786705815452842936362380382404171125227664395007924059457598323180904438596276470978352272581500281315422372755557749417196204565681851372480104635047209256051707482134346396022651134024019979556028623644492623315451326181599093702214480647815762001766382519571868734795798558107946830242407701284036115957622372653159329806872429844572971526639313755975817601196282496838091807797148224129088167967088301162877458471187412674044091011932569743605155650188692957584265439490630651175235952757081924847681374527382132284866156195708233632734940796231959570389971982404609948541270873420675630493978926117003422333413293257028523167704658534249462029786606467690889621590154486449868813414948702127914216964163509585900384017943641058041082087144189640969798222646488856558352805944726760942560939766648503831050938259073526697217294880380240448401010439394098015988182121111027466886954916014142426408397566760062465248421433617769227546363338045160169304611987401279138146861953700803503045874575409988754668066965556842293172775932668708431604396333818613170055648190783278265665917547939009485892414845884144014892441078507795287497073863083127562960378221910009841575391483817289370198174689912009115112682733977168059999171089629493115576909034368450297427469223347655392957210789522380826981675030904600421598227272993722377052327040791255227889116933150279967091828936403591027754713781737150906570902956305037962281491429023696093779176579662076412224575285099508328610037928984941237940222117478040063019521341514355237998822630954026807562261843416129902303860003312050538111834996837060200137450642764316807507367416890861040212380121171178087854272491955394676458320857017589051158161032470567025027939021860508237929903427345958121059542251278375891316979604820168579216912590321455338819881919575668575604724437770009045446865109608906463854025587192735092149148926841214819289557805745248859256287681704020790349641913278145613747776000026920431940296097378344849521621812013837979150199779025537232656736829857490830444828725302501111069754501206855942131055393919952006377361014857797356675405394987355048871094474738743215397730948323505392475879754415161391077978488068700926085037475817221087513256094836801117297503927111023249527651200904344727234665819939014166757715782896235600753505262271435017646928547211126529002179170606393622207187375120982928163333261475838533641145515794950210699865656514164181465917880724948766628167280474685865029499668246538355357448088856063101443375714191670418637330875131194102953017250455728983444458452154974580274573785990974702874621019471745935813229483846437401860764847306263903172559484153630354573931634136037036949688555096534511339171999757636918161480029892804756027589618564083696910361566480498616235614433386457735473125817622215651723141123875308775765592227339334634511030145381285603263458207231334801854697625631779595548080260505197487638333177159135344914155794786139972127659322566044587751325910133078774905703580308879053904406538358897105435633086349488627092592234624862552931578141291189623899285229247289028410876198782744432739319681068761491550715624154641128433643582731277351158013438713139095572785450386869365767859530773367734115611754125098425986424340121827240154974436652023391611094278481422892108189107406763487812452026297375464332211618296905581305962318528318423066689902262060680270442688683445144597067684488323294349356206255364901014802213001706034316673573588907799635961085494589730941956380049769527818770714550734225941702857907680445197989311681493760753628286326570687694506825157844786056599885223401288013377369080578173860933947809651260947311999783006492397187672048371506751595363357086685917622435748392420293569480821157389514822654970456294546296002491171474526470009129316544545529727962375369895140181999052565362945482420806521686456737682586156742432824310825479665747091770767558189153595543308302229361719709021556112433256108786113283194657568517619039637389113237357789000175033802111052762196926690894344770882924689975052740753004100312467010930096316402853293975565358966588147840669609466130337064697698011869625800853791864749579183971606401543590873094409499401405483696280003789741239105574498844040633939508992798818879651602368943896497320190666768265476505177312590903352330680503916207343095537144372444351219052512537012149655340756529716883043673162379800980680584770750620752032048685946081244501480598873611489899135537933726659554947928174387962625565824779501911887388906205466404843798057157549450185187749723023717994115633896926300217304116558372099126049076966803279184178839292179082444928998891733305672725434102083168071347688569651857173183303101104308903680609951918164987239413844361427540444970862344959631343818806655377015377169248876583430100834364668771720297270489060515830877257375509938457320251301362279292042716960800047169710110509589795651350721020529222738315413358256871115146038218094221198953012053028249435144030303866353382486338144608042170195193472783918975849924439150466049693441987963896167242767177203450689653714336974851475868624111761791133589879316866451065158867521374302757503514316661474057552487699737592958826427323093064236997859208900863219006209327935844186137113908557158810373039178070166142433317020574112209195954310670949205327438166140273137820947703845916505675029387738058089839464917428137654066933189123443349072384905468511045565464957177980268729178376436879789209473554756312461514872165861390119665415506091532380174991009919719925596505662256643393780070756111448267359029278641467331817073275666779646854716809946256710714373382894045365215487409934416355350449245426160331594909022481217598425897960002889529641218586019131680986634870087771187930067361371480353192688939997426682796077524054477646663925761512992749096957607674503796665779835923662294877216498712083971850275648760930145801761234584644386459189275571741312295223384971337543918331774020631769621332197194042799614057150626077453724626992722728758595985055803021369109575072792106867083582677017302030395344819782306799115471632472369038749839168933918179545175628685961850684450334577384910874445389207668817688323268294925363218103113175969872463620390627670309330023427928409559662438712288702668216243558851472874609567047968104073869902794354294759832831520469543777229989670469585999751048382257741110179122608994530705223447839236729082852035920737063823195112307573234394712110805463919131518703441823637603395826677251099429236801827785751820629697645080006508247838275160461404859257658334584045517549550461474643017162822413385891053053019176329735084251667159442948875031462186519467625547199394457406081246174281528565210047101065803257049859592227042684424122073060823867418666127453979426329246025376555781422697556301475433309278910072276580500285311900521238213445084913822658490639755368521048749090973697111197856759635195074605919075637744261104828454196253102494062380054396075367604266498468442393173291321597511649417493803072618309540848911699194299469099642709715141418388571446120262327448776869283399873976753785539839461172759388408614623934157550322565674068323050102804205749002789867597410788835017354135206528430678311089018498083117560595558508964887006482317659906143912445758851388641839003488932047858343823729683432298189359086645695037418120190963846883432976256324599058105413233127250479600721307887764723375190016456701741661448608755686640209682567102728059130341139759466074590988515700710867653656964287629657292753411166184024018689882197526487317802764974325712393690389215214049220152901416347008797015896273955019652278471964851909800655942296182695680832727741685518947734401232732915680698717943152284030895942625761617640984300031424429856045253536775825833582559910461749042513600911234163215145000600067182315306650436260636901536514380336041898840734608684785458462367906060018386852221002694657557364486570620773342513948033862966587569655803559998375845018439490037921253542533660340150830778379475356870129459145281036209225023299138582659476639344742690032712786708485949480696363285940462825287860440750933325203066271217392564510428493151765824526517636022436749959356735040610135535852647911149072517739792930663387511779926323672968231593940795613370212477652223713719634544339371389412934479840318311866163779242677767547493013847804623977480132778836709241683287793928852399282805571780982358801669148321379331783494062288964992477496775606946390368654061975999527489466919978501591709511577179323306472823536159877109667597133287757750194880477430643623978582323429184820139956934244301077082507730766618243454569943418439679270788773517237310250559133628105662101141266000850881225247591262712309026732696164421340299052684132850079525981355163830451106222601188605160482247174208962554930671484920953722872639114006024321848284539255178915652475460742538755161509716045160930006225306525690121646840649239352249944725972070037002838628934835723734078905037434337588916874809407778735754207062336664987894939062554737926200940961508506690118062403442665603597202228031978534003081744401899951194563905415297370686293661597879257200366325410366582954675418047407133776826104310544062302434654056442511527291094887952924673914006245217291964151100745318957824888793442890546884910016388199562484115098944702489336545224439226088548111688603903773259384058592662086502933014793541057680496743075990382161627540649688376407660169656173453596793013612995731078610451523352144550695226485637925025981238731253609578713494979015203296318823361229335925174036443791081862517890056055876627310658322153415073100315599550758118588777997194034464023200180623187536348713371553189493495109800524223559425215082145782008753318595489088360624844679369606388695761869083100731519916648119411689816991919822071749316610511492366656263276154830533101948178995970930613461883625174013549383010963700398008060982252909960515707844761756599862541721864007668614137047678188692343249091349520100113635810798021907164607437095354410038416797001346610295962099466384219921593361893395611377204171059573347978898151534892746003608025761785464179840805510309786051788559433237595064465832518378491066921659657246867245549436504947791967362280266796378133015519532443649061654020019285577842801225999275077311739805637784311246068072003105830086377815205916924619454126804245009112325895488843868605343124702515123586001509543243717413768067455555516654770193141599810622953567832945196986212505153003412461275074946003152372472241594079243135389336073716734250161236287702347358141255465563241981700923549401917822627438510232225148760554543976983255276883615249885316579250044011822666696081161630585915681043438891619016128420962674343953923532819078900452569962047579860295885614156715182832647387541757491491861697315956784711886718194817971679899149565774360682941896965402347170543921144140828623205346940697967836585871695742549218479806751495607744435016063746294110738040401614615507835999595744104924849794227999349691809164029736886409688108626439917252451809432611349815245839607645085265821970710083874566783130665244862981778611894979432756086243010516678770795267931477780561443163621166652545767708170961916781814420799107490525453494620018247337148769714544197210622830240823906508734225313175268847898910088398474370165213344065912180019478268850393709470384281694643413255936313890033932700928513740929784171354897615571987260749051935336993805015388239460632362490359454753812687351630319061257360713392619865536159472357678803688568001322821779315199399220171120353383741721516768167732089799168678965075306955297538579087490025546069217990472076034871573716962818824951254464801285732243534759098760580324207553237608615866169263230957171301502125238582437219672511977594188305145248835732705381204354965369817827006079232846613015403113704888475041456433133450320414294167847269591945390813813308866129359920249808326990618355358417853389784869992153527925714805419380059215587401431385662911828492614796433019261291820629673115336406239223521066045714844211249139372184547112567380568805033649651531412064689076561578907692074168142541348560419643699526252500121514679119315475143127503199456350861493129941254172938157678741875784746905516143512625039851165325451659610049643474933005471067748478996833278992730875928262177863359129737066501202320960142941565202629890211591797691932200879188849235582935676289624262486828444986603073838876237144065709381097340619121392061517392129849485502888985826660097582755803829213564882844209824112421614259338275470329859767590478427967350641668875123087656761001249613853668053030348837167185054879569750421735442462857557219410856673284094872262854725258220543771846276210379445928879781246083028251322451301601640616534289053331323545575934212970763844306887133677464072670797177538935337669640909273680911721223894581975230035513649772601725229777898473640829750189141658311459773117335090396046371128473684052913230418245320439521868194344583649909839188458372987740747479109676758054976709193327977636728988902895087445214666005456530912944807053049774300622832257620267360746540161924799635533275968183923022259640912085156226649835679176637658638736790463340565659688407689455924788733811469457986637788351337964840525470689487906900127223729120716021011127402030330696962140347040827824230698563578540393528824939364328925853680985187320795327223526984946962751687708609856358130402200323000498027048602498213297809392621958604568120402886716851947780707766310272654319628215164732112785136816612504751037450210436505810195786550447061383270544349385515033125059651102531267208453068973877123961592944321074913244616140119625701642173526479268627541717714654891480405593776476973410758786937952234279881149471570362529849604735041170635312726006738250319009673860048076307532759871740724562502996379057116161258959868939911218088749430253843713118087875340545164811789759300380506489899108902032608169332776164895467872979698332488430494982648869389322222678726340193736984677945595716055165257429830202370485416069089537100448256209025299320496656482164220423657734491269545409703373630443114407140868961657448030538507810936902242296591111558771300342295364564976231532379409188324535554489037327394154638792654930122947275905170578283254825298801302330439244215789228901003813203445887707235701070539819936785948127819675652847344206835942143188972551737977351939600863850698544694798343470363842530038939862833107560099435283334927683243399352054985549471389655489333017280519677558603855961793664195477854380064282636179193294395019730020979848210005295947490375302524944402440790512230370037808790585366720006254371643288050472901166885596245142714926155842310625623305787164150894970247737085003461171445074774685292796027020768637178499250459773594047841818969837368390979639928768626840425636131900715555966678022364552274224092275835727252239197154030129536522343790404000429878489479826634420983366134596936808838668021579198939612262813334042888672670964799726049700905448939952867693007848780239225351596771842435696086955954118292860168056353262511422698365562639582120507883801200039002524844119926338814231851284438941067773732947340265622667744800616696443195708901802270685353500592526502924209347984013223315069395283133823260552266229259235436155111300839521498758209518738263208265931400292809614356221439020592783843852170947657548730013422626087460228088544110007481279458861463061168241248327666030938495247446970876680410067209349236663505908945334897971063960160743946874491705332202163387067300088277104641618143897928249409043848177368760959091283395583789063158794078475733058732761477381307038995462884589247100562769615197133922999428643522330999848902285899224034785611241656253930736953235273717866562082466035365369366333824027976039578070529499429742001208499866613762697453990768183289687323393656323198446465793691249344242452845669040494188363830343432888699891289154617731215887301831100177314639945198395083635452497388119656484197802046602595465934104577924705228204406080538833820279393267862480889597693145545354895527152075932455099932976980212503297600371470985105209445295627659242045942161396944097655345546679327134628523970030335572443575694176118800628748753201546006228073149970294580073237697355440038533324081235711035254913007511166608030091892952277653425913771164796610479512843928830182036587792185227155294057372419445659186225853959232436756713871959181228020831573601917634367241276835871934214973223287991549200080680038162771960370285773125093213737884446492986502184353862914878846561151500424871873278509292500737407749244082933763851985450539586412983580943911019507177124931093442996766770785811704228585332506173319315322235994025918676194693846119643233695989508921822905045836059331762824927518661340358888452087317522327117985537110690792017094659548668593486914652848323184027772227299034065423969172936393252289776050956690803730472304702403451249745660656237713336134916113332294387065794983937198215719135493992731391951886075771196097380677184011981121445921059559537883112392927680361428831519706417146084735314741202040662727048598651071181431222370581314158061816155650213099946596123972382308954826510119350419641875243027710598759865809819496517600372068196688474280477124040997142153771307978925220466934428685077879397180815325631142728379272979887705866420552703767572120516044515846973671854362356556870063369215957454365190606707192890103343377215012404134674217214475379653968172642882569684835414073774536804234863321090846925255643016897194323237189599619880290783239762339579816504598734817499702813065245465477896030235074626930089781132923285309322160329198584715382583756306005005958837278678354341092379974046299355770670014948573441965672974618416820641122735638869795608652310714050142027268107078599820538524155728959703617565536839870720879520647818040886250073402315268847597985438930754280219914696655660349880169178372059999114571897078817945496823357663433110487271107750950923609237445114566064296760296382195636264861467897476354530797114606781770600637248907792330710198989183677271436092542571359082587060121636419690080917476179169371133023730274015782706759417580140730943119247325032250207512315764563954291975024727268798462038281621266123341439830379735359104368560977054513124162511507503434336171705206047737044810626501177915659927931576981563580725976135614433947473305713530169041161379864778379087154358956005714940196369321478155584489034605182029876669960794031961458245117439773923758015692275953791375037715886782157123505037514932358442340877065601445154273743128941800575330270363525326038562358232016866165956261515496807785681822491929795804220780185186708155702595457982111510364191247019684333088634640579092267919529880471763394593788451295940726484353343652261061710183500986388386820983290007447583329243666267355255751705296401737726804718282440575353052128530420682208822292093374150621585042433720918390173911654730518919532883971692313929006999795496380092011172495743688871216356737508357745474690242549875134295842913576174016442566551980858413411069364313736980433870173354409111938638613186156274198157429696864789253705939807127721001767251729110030943534442237221355273209008434386945232125882972379994369857015571643875678840295581613940805449293022729439561463137913251546292663250398808600777453133378290357047442930261946079728778501459496595090369436624457279793609620319901164264373011745250714104486506727084019135284416634139450285294425210413835526200559932284379232922533623815982352478849821376467122710342345809864670545332915577292610289499209281937887375306022495651246378736588221539971456540294422626310346350031592789596875284131586393979482885359607159269142682206299282679564657246495925007715284493572960978287136053000012912100560525713868710812894512326131583545361745761660861162967996300398760150643761143014089500429818471704216981738429805728327908472512152528970208791368172579313654276804549822352170984009927207553637662676102457801034296651530576868054476678257846680719500140586744538827584586772933963403037626517403751779464839121042516206219711369088195605489947113036566268327772271943765122931615323287126071579356514090632272974688056625422175241506246838816521661703172268748065379621233203899012301792463267979949211186468871384355421176433822916874595239192865204361920095773060679516481568297423754291327270952802228195148701588505138927375108783095756732933583239595763230645881973425910046705167831739378595504279856826910609772372024227969046076543294467785813418852372172473429438932018812219656092672421132860931895996150737774039027093856107840809678082664768195300647065209035899325162058644781642007084121802355187100450067739490089075810218636060672657381535635488798251273397834049832511722153127327248899590697722296994511631372425038530499431905988636402708418104832804079124257680325685495710463935202271562856734144782821695309376098809514179088231866347280240625307221728094239078466755121692755077812447417280017998409900718141390706735557292067970422764783011773268557409729376833205892651423634085696870122370666157194820920399320626623913882931752227268325338705639357243515101475027439148958741947448753045951670452105401420522589350185670250345823224364621019318756715556767942458709760414672845770906446603268699313342467243462235221152821919968907023301615687174199435603389259699076479178562779409141813905951901880639730006515495971244200784728378697357093604273660507061597459185014089676272284296245784592878701943592510657383279748455592548415418955755012730904284633233059119291290341244986717722047947039484374636063397693237734029510843802337731009705505032939121516726021768831114220232600367238842436646658617923842753759342036794135243989174825309990113429343984349490278628705825367988414284494055844670158547526720456238514232523738828711864396036767345837397030576087266689559240845690059080989456937064608065115338181371246331065240024477664692546331524855903144682136896325253563022879912811361188087551787726603389420640156868393577177673809348025470984232941531368096872278695032988021084493183224250860139021247582535423018176529165104223792326441431401884717486877522452472781641545103404884623432623849674680322886203280697884621570614035888008692750196484699387197482803975821516783804267621467094273821602472564526473301867898805396343197948260442137294749162334710842495436044072166369115384289906773799252137794266274010642012362941193891967900434044915148984803502492497769896777046271800939634832555679540486895970652613094651550842548263403448957163863903377430538998630797420582023844403474416363713439005489831391013238110203523506654247789553588758677827429413845324178365570723429505512080150074233268961266540405756680658399162505209133381024175452560076152732163465615931720306229384662690883815870739392099444941511362201468055624078895846791325421677250474814809155049898706302286652072124238723352740762313069984906786134136039946300418909972255662245484544859364366454925890175825445698754725168773467129038359802263994120458260508813592372644860726444019749990095929135786515776111017099720634716640457247361787043257897474792765824387968160383774319641128510897234347522666749858055360353820177100276430539852596490617869341935589158151417497097624055040219879923917983200357790035348297658935432550494737786959891513393083899410541731266629581736817544325945799026313289602914097725188407904556212581995651676921396548036126033977785819324241264294949617670474550728098118444727407721483113225932065034156019537487935309324637716723508657098618830270956424336987134788541610294974211381487189197255087918388002945244271780941595657097819159612879935981219322359187597745110157079755591042806302883670260570839362934530084678860572930530630879761338141097426253081724022760472992468977533641509888913886595886339594109845131941646725830636199205412895566541894685014883353722015209167266329090682595837737952879729464488000791492565647292579055574093862891622653655223689426840843498466430018548198517098264852691411278603889294914549017186773456981243697215612552430218107408802234805528508142953264477100681849083463945278201938732203221411183310810733004351167601770159921267119470487952457431305460004790251744226906102816355347516719015795642756411838973880971340050142530768513961001197188250823993916614929146141483159642031767706600959210274732781248574122753231970587154505343200046538125957948384399303151980649451857279874391449010959687983352686953493081518882916044517074026967759892829265737493112382355768599380450851491853444309925067066606705956962147531853640712655450983130791498366163588662247599523906138612015270073052141252326262377120132264290473290606539168794225063509568506222584216434720267300424147628613598739440012246064588551601252677612565728035838682959030799820108283619379280789613393572861951201354120870896942700260051759415752699015569715661111572518885394750564837865660450341572086831310329968656907479584089575286799724166860172253383480433820351446245256765914635099090001098687194132451350621747817031661212073001778141397884487079866347557137283620066076126008731979262729071142201918303451551064072090291932513714128734222802946510451353822156446927852892771792893768446832913741438288299548294265981676705255589880220946033270001965032460553196592926594419917192875563559510792385362560390095746973284305090875881060348318810280530600845642314517037342165140931332013815089047844771657563373849378429590034669265151628553108613384820718543179116606974401162361148659021891050916904276712318569006772776394078896184846593601945202356763363901997735168238722260433524255550948648486186555951371211435969063423573788968943216286111259226123206856274585447315377937374726939751904936138941575565085791190570443626609790572940720100229453048917257428477399517049354970668579256541913265224131893646032138096397115851013024461788330789068872305522906671679008225774512804692235614038014910067859500747318137145813129177071949696188473081604689553076413753898280142485967634205458356984924522443259625410885109714586045889552614823771064641877306172378440650756172329009633848794900408353078816544260980479878832295517693354506254727041753860075721591974966401030842157923581054967216038654096076482807614982417251203476760927401911782864607430229718034229258171422938484165768496252576437785964234366594408823015904700441358250999524976330711991283318921982254377784107716967408756530893736501849180057604165901791025643957573827975592717780370761449115087496317468208855549467215798111409653950449739333621666088048067680258962622754226998163317600968842748142507900982118660382324460165245025893586058588692010982650763222583052029345246091582664495569975101105987169997430696496155542481185253109655829881350982594038940678391467779850926438695774790212237881285993967601738014009658684459443838336058593456929970972098080226219713087193872708141930364486809868338208220336227613109352685023850448527734391180219927266910054838832945385302672464178673115258630170883723990133197364683622413541284295237951052859757504474638164182586961666260063037159708786106802810037617870043477315426611208777559306727631679352726762675871227263443325997148764081374001658489889141130777387667039384681918146334042890855594910233261755201236457211407152032338366697584942296212790844485333813742430773310644678816576288709304587213161693882736120933545897692386359709814743586906811408820183549236069091009721357646220498753666187001908134211863715492638268763153484579643220800436907162526409139490735153784337879002604210799263472396527760829957129899213707580628516589175958657674324135236754244354874835034033986448482542496097025994381100143440755400176343836270246095195939551296262966079507770322608414814974228259276303702307834570819539862783757114839259093710837497918685807283409499925415610990605927563080040090388993235574969496759590342229668782566383505030975722837278262784899163817215922607688308703453643125950980900873882897644340668889368214936661375231729905850594603337193811299877512016638226233799701917868848061482562780136538013010591218079268475273298744317948283467133282543343320365648930188588316814833076050498053718355599305340396437172983755228592997335876867443583631529228981708064238119850444459440020749686017994639124146324499885399809902478438048458383450350662213960004183300895769568556276738092891946786104463011979722288683644556682146737498549163966964525830219447345026204561426805511147870118931660549454053176568972202511244918946015328862674859658920752906137497656679219599911700847684508580931262448698276111381150205278548394018167706878984632752275557926075796939464336696849431752502343590400682719472328114953521292259205850022224982728528749445492803962103951210425341579177612412942460231296237702806495235513970776258986384009866729786559465261438490721880430737030147526569098403670292893716983926871091607930807243795280413933831115097701854668493638353693157632166890588401360110481426740365476240692872301569101304296620359230630740674817811455332533140895163712637545251925576483034663502902593553516269445086499587959952596293427024662490198323976165199716237226243886503034377733159535283830710583400014942050989382418918456662268776346280382156101081856630306898129590359032825949782079769377449522489385566201072190420051282906873215883918554485654700365743157078610504189733332235987119678958068413294245462255299352669816116550422909678084220203902213030938421019524946356680013660135925263892065822327885734319083609671113878365842336160403068374272991702836480555696090785868695866248012403376934885800945062951312412387001516752694600519116222301673838923850913434571208958510921733429386113349868567231483853565295989992860905619277225443201153458051530927271163425059600700712366280599300920627826539236357275959157179207906603898767128309653674293552274104215243224097216941632706051787650542715761667951424936401452996222021110863167338671393037494652283021338162396431139836994737543671982615280840757977448900525401121214242393516802762221381319826797035940050150311924192007942295192860553822221818829524820614392066578599161490046029950006901682292866311140446843214828430015592549744672477884189935779351442761824887021806138255075729631333006876356368154407353383926453192481372249259596166267571903233512260905445722119486024642664342756486402644579820454350032726772168542106981845007819036436196626268488884323369720105048809595997917134732105338490939816867961540888763731697967655183734260882970450774701704220181469346253283423616207147904006522761977185196994526857944985602402152509155288390223750159606448745684501708510395895791299699389732044301570529278100532553878611629884064405827305226903041954028188997540446455352910180897736977388485484135115661146019290463879198957349522061990108709542762525090662216621837951676239701086772750292501858584874429186009528726964432522541417678634743734224304889026812850890124051427719574271188995733742170655497271089556295759819455938142368443205038122416811097036532971344869591133362979030924739051329803425399922418269017499272103452803444310308098936936052758942944574990860110205237153201658498927074698974104734490498799449643811980251630252635968545525364739001650674890172812928612606989257170149297631808320123381792807967937716828251983871030499519520471605471615151379813642455892899408365294348322087949162389625459273115208855660518934462654678920163262513854035983852197690279955205909895658779533050579205653554798378600966036618856580191880828185762942045097013797938198800998084481697878649472133106149013505421826704062788373800395289116493030408643358963425538925149825785180745336123906869201725244349829476538089702511245905116166791506612624959143124229126267913686799132736490909028061885623825027880805504411461351628846630435219042470213309918215693907300017151410385108949347917243710743553877778657606669632761791869926729699572749005477329784143820912718417556077571879610911063825624111629032495526586229109560399697594431359054385686376036849067733083772175661786838334614427269708554124045565177583338483001246614834755293405969938253535268780948418355046398106851990793197513977666836696696606997042870818973267035532931147340704474162488967041785880215475788541099514278568265800160029946337321500736789866789839621191249071752259085202634001898832052018915452280972604089443861694674419172578200636537891814550226022508020723700393807671969416763129676063406451546234648228174586836341117018371972600314059819283131905285366757965536993531010306648131705043743385079626401891171460417056347599355995957770255218023600683329187240340227303407631067236660813398764438275312837802791891213264808487792909079275772716036990443391640653203639664440639628431525205176384885349631345125803176205532090369449543152458801593385590756423832675735894679291053928964350757004001774886322213849071530889063060538159536273420891752766458354784758040309072837474910800188980193171694685333022708113183926756171930981864843021187785480173113680793954091091587700195821215744402455479991329108321494289905448870326862195172871959324760804830890115245674685111635267907220988695493434987992163058168194796276538942837642896252751735214731222889613548834448906488560099729386732651086773046784271506399811746247804455091170011772927518815643576357796250483305673514168994930946094460191771359331654890498167128106740298373004154044454895470438836897489716286656697618227444573278178047264347801794413373027787151265520395906257636476740659544235038871105271974656143575121343164511098719382664155643820182050185902277044575825731597761064274054712440503538492706816519082034794358574895169467840703575893519458603905780008691371668949787045036601733573480752954166250608344145708990060221354624160701818727338868480579462824172622260927699252993330908929960609180677303135869814904405318676307144185131332450178948243782321618166966189162627966620901689378322949845076195064498117403149089673096899777750519063575124667460600858440845845529692302537236857754221386028809502400442258466264162809176382912133382660508429819286557596113359274806469062850033620975465920646572200361656805085505931678995876802303123794661362944054647826696456165752990241413290315771004512561076056824598275905804918279555431535854593105759923140431001076846973275670402889768389618212994404141709030093713719827293153709848109650068598875386517250272692577883457335206529854636646619120426311517946359389122829461832858257932807533637772031714805813957306572586712598070669662379041724210873965768372949164600140360983436992940532994387253906891716987402742746983156091348360436168993578213503899018438717071046562843882997033696601689918995430628415171906609666615610497957686336199038617205249309214253735313815745356030818039714951470531977239017847922328855792844138430518706498890030854954542458359076115052153693313297717309620028014323313237035616628525054652824036177571216955760008596426052421752240435853168596962820583142601957573596974622852793795501330510883761427052618762070863533967405946072177076660336687047915510941069235722037174988516237626714808848605549579468417392910489043266023982875899065238386067243821014483490242502384401170420989164374700128602674541373911017167385925537985242430323710289709794080550614024751368856160019117636197361991226347875598703585219576731518950842791204889528863628166119014472600653891913367604959160548071683460295978598194625048408710222796368285207647687385768984677103376917633431175996948417732334863824966703688708650275677144852994987347418477725064499235607664562615242921458128972437478634225915760142439333868945491254533242332619699182868556552743898220138538119428330951108958081514856507766392757957105903477237485556699476882932521073038378019201641607889847317882702941277170291918094609353811850738556250952797180209910712493895991529587511594328594021277506316644355000206118795507953406604260985329400703359651358608468319493208058233351081589347128651241096865747044517655685248494746983601092513295519510070483921155877590896121884091088123786930427954514872232995295588556274654257524719260232775435398772080301946920660462862660319176647511841539777449952910967247560197199626815020926418955197623952608092692962532439105628143380978875888574752853675333975447121487190702201148614353559886046136188464554239192941833276389318972300176456591817914880949408112348806044808222442625183224770056597385241979212108113614047506944692505018347819664940869470433599148289926744801446079694871866995519261355362829217419738623781725556865531997049810660925794508816470056960920794231892903870251300693341011927716664698139524731946739144155164387610110763910536117607103072285805633883682332896957147122441006516111618871995586495062626233024197818732094119062110358180792340929088219003555646677064947979382075937053789985244219610280185678188262068183428745070090680973054120756718531516752686868275259125727571372930321452230959789952377768636520098739784891936514854409194114314942987242247892132295828968709853223840049317698288833545139821658433075376059337857585018531362856718924774520418011488502858832300208582878910016381835316244399546224138952688871282342221193626601153151276763313437779512364369940249889444367721824464680860386484814883749767714333846449411992144175093415941616450180183453077670969262886409951823609644192965695016652253834102796488490898173306561078522210074153422083632496043960730479177327038582743006728085309114221125252327819610230397748524721778705450169244984661672091474346693648996006911284728899282783586808323778814431611554169863982082576690909580830670713014945718804037658943860747783129407075610339214234824513484493325635504897860276045428925335560425508255306897652115735612939492482634715652218398982810665718942590624010826270006463006809327436773808319809256905063271330342710760750447425814973094034911331912690447842751124983589548287158608091631697544984023984683599803154426661459410144870652092163283161712033792710187160413889070371074220348392066935310575606242454649722439203945572054768381727924823348824276323084338807924753264782432387212363835391155989463064964585693337923700181530454824452190532850234433795325725016350772204730009955969283818868836699894665903052869091438748553302259782083273033401423842265680186959157136680431263270877065394615994179539314822623121128373546593934947772979707681994504590972580532324011821037731696995589205345250131482648054145690983081327010842679687125171322461822378124593787777652717412529438575657920982372593772805756608210235662173951334268744970686786349378585130141507165535831479948177472535501982613530927885209367830312250637297993898081409749140622243836953793211890216729728987940210527823313481880160673481133941094899251074034396698671836776237612462147569972578512988093631042654564137488197180038870861956175110952935350127192510205468948478871887751489090006145502080016837096912819266529727504892418553353063104567056610378396405605754518226911101458097227582398883416361077122763340859556170576909452287620947126821406815980188702008026335489119907746419133875247655516596680115410904025657048176616283900592800291824490091065025776819616009673059470878833485569803300388441965576572661860157932831692268565379158852284988583019396168219735010415852306955914916826393946866092926608257732074957640541436265171774940842551667753354579814881727629623466061905118087212292248702201559321348143228981119338345206357918946143774519253985722461420228375607128035405564588460782234781319334877512603806784452244817044586048895513190139307046753392531042930141439507840875406532382180468324741672592728189764887110089521619109878453179234507279339655676132759902332034393857860068744251778387457136487730762690393159953436426958774198414285769482325737604903763794415108636668709865784129996497358834295733432416811695255617803071947226802727831053887502018894096765919933508485286475470415664356154832380776030847670574854358793844645843669793423188588987727601693318459611406996185338526818057800043849095777311515330851262536734408503924939911223813662718185686440598369688367468032333526799063164296739058335101407715372658679098019553004163703902113826904717863247156021762397024636901758259311987537745208163799015633758621923591402964964995771263140965310567173502899936702348122494095434215938668476533887740043073457129632810712497999028288844331542950392368380032415720576586652890346649690095524992029103476502821678182518516880139908331969307063095737642864450959039791349263756787600462719579161512921719807153264967144760038322879038096296587026717005974173592710516249968563874549631094962221332816367718445621095543359284919890829330713526587197488664047813304091390425776638426020759022566462178367129718206869822668620581032145854896131836539345781878855518546157844782922981628296874963817345884723698699572501145194934902033171404018262299902095700245639256175438504224542573790970617368897762878195003770300625531060165447049445145010534090391953760034552553657743306418251675329010277780391378297799171287642092700868831381065334120971205901885402839114660456925608848525390915617188049304144515278521694388132181148278826919822046737163766550632868990852948831562158364961023442764369305506649932114444942689799144791222916841048563162029022777530246038738855297313261457353581937756204587084990962087648680721157229091398121243199007235666554243051047374488759769378341879520664288045079842187169032209243148557289639081086501947727615762392720845978518223200195210686200481805465748067528665423537950706530733750018348957918811268151836575424949060510191741407678913852174745563841321707238530315599821813962010717842200561761685535265095829483441293952620189607508206135822546404189892642878667414308629383395754422207849251744721756008493706182337164423189756139233354848897090174078935525051911457462769057366754039492626827708581042355887072439440640410810359922527610781672772571496545015173510353589417288610799850714345397933703514159329271795265665203482460177042796810459432984096855698259098309697057922501674924362966628916790574221607408045742346122729951825860095808738010278677656327105401613825993255525841584489327139826290443018245388699410029598601063114182111684696277561799580792145418393669691925604743767742558104547135120007495332861447890340997709239575153044534620117030554985519374261708694458215592949460857141427875916693162383135769534332644052501258520246148037869696648187372735456067852510123381966025515184868324529199232382930592997988854002462862461125016782527105128369437924049618393451162039773994041687567878710427539527174885981399070541360351845820899449317709436640946425755418021757693690078947154252031915396832119501532978996726866474980078460299424713525768438461542268520028584815182329738883994589234539369015435198320396069921297410600386956273465549584929738692135445124390847526343435097088558885220310673530112858075788788529052914282326740553594503862242411190249845323912373128076669820765536348911896186087033909941477652077852820676022830498381664595807754145758911007909799032463194913622694000680940568726333556788702353811702596211567384541015097973159606673680541963853233976198317271369830969124261546514491348723744912170409435321666410634630395028606494526292388284428077066061911915084917785460246923922315599574070890766074364565915206683460107057045214144951731244765871554858578226207022030137313779431871278449312392330699185303066945126265594889866549955319951139026024563046287844504713354427635460382226085560189775770619457083746847532167937347226109068109309794431639146963814292737084570928470182782609447475231612164525175684455297682343501121411274639227307261940833334205577648533625521445424058586190522824122250667866330195512534885046616103021164255483982342221319367420601898936938037237865779340170661255556937064885695654167079042453122130766514327888115322774828237568245238021294709989356102813841316801449775696656599072556663869952786532356413490222744399096050604364471580421742982240489534113396853155097725196424228351728631628380456721430987233401790231146538778648122255245061936402018608197375001479266613739231509082637732314648785535445723627700906590282778128061446297805404683324657379418028127881858203809960468283572170949133746954588982696486604344436108278655292793938342527375760036637595367859379157404585237030280531255038636599571518463458191644026174443427660879599339162705604836450039818854582566727450854662499077645861330771904028467709613189776952833443964008886724894591340643811670730627161879220763072386774364195239700954063982598621736799078941790203468989137637271806548372800727342877473605204984123994042071497052753377576448563934928769133322939446936352560998198251102869232170834748197700932040389580185281742855357153926962055344667723939310998665208352111934178765024890135701563940121994379607337549858512316869506547668356618750053266317711724735581477773642981409821098682373841550149540539506029550776301849450708587295343225982499516757422174128423418592783148599812304977966521126581789968396625424931194351614569371523707036227411400704208947929664508133504696566094800210467449375436976144231473482543070589607828115665264931987288087601564817495362874522302523310309926477440819272005181331969101472964769998735704406729782179112749491802213174151532931353866995240580143540524960923945922989298054947344829650373025332464215211565274805329252543363044142353662138220983130259367678412219695240656398566066713730808221643262280191666157376339288442829820533292886994699534967887228313700528759322096923622273648199139754044920074518933468931873409282802401352121123976898440274085165190224979703850276528683113848585524855003386557125922531715573786913141416443419264092204173988212415299584180460501524636685054733506357879042538427893801780113761143985980519070954802393995335211849250515690393399564103758282029376944013605388229861379033954438165793646990425438361763742617441888196012668419140430984889368260737715411280867739871251138859922429164248205918277756870509120120349781571233333839600151651698182434913194779621885023831647170042574904783732732614070754508181752658999812466930713230375698185424338905907084973050822935848122837183671730241359685826343902494994744351070767604341471815992160246184973187168791302947472849589813583318575874913550384112784609223087631836041360784845573744948715200763729571362170662393359731520654226538645825382772411065712870640213365074133445018563704822386585718789984323700258700871428366325530220480187191276932822327900643778567096147331254065274216485718175352405632699986696305649366097263090989313262742398190802505121196258002013674851025758440000114010791872068870864307926669416586318955962854349084838633355909647123956765294931700868557570634133718321026200546719087622186387703842122838286944479147905506120637451909677521255347692666428097626751395271428051905922271836954323456266042462333951181947665540538183244077030908777119735994169630484477557688966809850564443531722251743863937441779962121567888372262998645414349639648285496861843928254755280811626268309845713088444920179244515538891725342970452752364437134027765457394624929697278945716251723083258126434057282870516719952579751346386375710135775732826671865644201056423222060428629810235031528906512466413065841632964141863865623802156325625802637921108836434080378877182884458607103167260524789783002613017220933758629529730083185365031243504120498815350274826414958341507131572810794829737429427998217179986905354559066326732556459952175897727689533654978377040070282901231668321517505354729255916902406461009135985748005639107707998175902553836791781226341356295751349031472953821692652149858570876195138494446151704319519161677905802689780794639609241599522767059964327210730516050208622164173451234347481388373911831094987922350889037363754653747279552858896215581260856621781062171759901890746698950895130413816322070129031661488594236670706143065836214889766127859145170110982888493948303560942973749077216649541005037300321848273628352761579890934102672929315158015632458738272024464457192519325318717955711599496538309525914149749219658444819464090428926720516746602624299382867394926582970130631063254449377945932098345782778935949111963217052379960632656139094492476946108380686015348183969554629510400529836976022099173705868169105203775941143178729333844861793358615786547115091782952876081012970603098913246679230645353584299265096176310139574718038918494682918726668527073027509751873403623150268615868423799428125734208052775199814478659960089604149226256898874178006077082697476858455986642803716590922193968780159891228029253718449819987607734239182315966734471422560092189759795822283125740692967656848392259922611256104074174129149334239828714549335533053456543144595130407420358227908785501854197084097392815998659707771720268352712243384342546199609914684943609456442791842315968977433992841086622923405384511620537901519526417906816719666207087610015898397754726987433624802082694805418079599502224011721918278825057822485031010706551353670711944574555859973735498243154457241247024620189224603468906987929299292890289078293094428100295685925435130459409030566639350922017889191086756057339581540746824421671898228900674657622876874283162677988960193161689865691646360718102287511497664986026984560871030776501913382034937739455043780082216780710740211063970833789837787966086531670824118077094001653631248599923773764973821499598680365225981006490585713638190707762375162347228477116464750977017956672698167986815163662918179036167227551400040912754767638820189613418812467738483001922709939894432806729611295539801476276916319004998887389300981044779060218579589735981756246180880103251853981980572744656742080402879855974993411206957949360319748714175862307884146577719574943024142373659206821778851651550909596684396664783349912975209741960314780701672292565008082145820359719943743796981863239240782771287358348974462197614311670963748134946786203182682204099811776989834898919036061961709552886647690733524052437349571177208023586833536577270691073410118714233301151129936221956439440284718737580524132413195235057600020199710898027836155073685431597517905481490898325437881042642048423497612915185274018734422536659477205507294228818452238138854739883514287796756663351986552203384777458429357204124106302878336583384730364547885376836378208645916350596783677267219815073029499432576976633704553042441685492124656895874683012262921763870539036526450894547960903632178253744592205237561129093157152039495775671864374956062239714383728631289460250667588563480112643558710306155614898827809337800220588464277708002917119737033998605326910800144197839771980645005698431411324807617465564934109472057153276264951416579740037376123789438515613166528590293531003832098216538835477706168896461401364889684960977182542172077857491422053046339621373093178461221010052631220477162636825841070388557354390707838231200481963867473774320004369603335661765898074207328793626972620329947108161995815614348444966169927339840183199129396998643298200083430779356945051610992664815990115654274700806439793515115902093317305585852032739669072322815622755477052950567748378787165512573424986658215870289601374316622113195365154227627931836161806841494453179794677884126007612507406003794288443201953836872530752663453381906173147324805037151549702771657558092817100927017645612686473311028998896440318717418369173402666054181567683776786451512380583530809485449318839056498883815238468991175006651212786753836401275272517103691199057443642334419508809989599547929715519157147458442109896197790195376893839948858766701224063094936480225935454421571433810923183282218183966301434802503097159638215680033096913986612192872770658726080913711967842293844672743017222018732913757231282759147289401707357269895489382713715011637142042469736022696057813733084399103159644731581724434026779505944669244288223315250222397142838356034981237854620981574819703759660150722111013811301030426569734032156426378209725127093926940818787303944672832064622534526147648417519429881358339045378588515175698948451029287295997404093525120710683704376879886520241839986532983426655742398292132548434390206784124319766736293065209442644836483227455409777380243408171386555466744995642477507954083232244797613341688938373971034513952856550804429187262898481174272055570799445386673328943253757133663866802836356845412446032462658281148825107336959731622496870621630513615725611440218410166276530907504577872360880420835159847259542973038923489203714709816219064464475698465187004806624824378012228455052601331041674959912875347923483366237250911772506244038883866033863530481844642432334670692842974862273308193365949149686413956455873644144375227169662037835071111011906431284773770305528203433120951804834178860020451098772823396145428284219767915775334978723815480654544534596150050719387391188850666233948789898443991613050952443681867206855751573763894223785730707797813410314779640896091601474764517064049039452524174182595422025080441885130684743270744985584202904073784238250875364038757628109506090910358749393216224621560509683164960046792462836644764345721060790724255578086953534586810490878124671334834469004245383029863659856623734007628612341721297426859210816019407573453917485096265682525499327509199146861842539720597242570606358584230956854566493498348066250063368107541505839942518310563702739712127553874083599427793558460672423716463852012243256447225769354414441091256809684801029916224206040977610219117472616947923386866449787677838268129417764355120057377107071092993292544369201786855821683589611616473268376347854458925016514094701162147705290921417644044554891024085459736764911794723346151719945553846941277183272471622628373345563822656326572054137053397098896922600165854687783808618958698203300094251479752479193725376897722561613664021320689456081316897069058032546315615905733096660892270647333754716917526317897991879884063975206578484856892725052366673272977296713451055299647605526582016418994618925597713059030662271832233736817094805221654354312522028383159894928404145732381179761615902957916082258731504099610502622761297577973971096123187347608615887356876740230516091307492471611617603103844768261428922991157806974930508623408648906876500634741563575399163875926836495763002000812856983109872170418624034979586763476285791066081190072606547960943561073418107999174166542758797754953773882188042388355864195293283388112047727211190706024949325229139700438067989354749673014323399240233567114912164572597748950430837935978538423900135711474481738329164972566905615214805617911697523691165799619254111439046600633364475050679653310407656965624615851074554888275979599510672431367583587783311506499740080986413672991440949696178565558698392650030153671188435715346738892026966755708698557015493315819871096376998810321744442562845220576235106487218811353333787917372848744232443379597206272127610494992325403768905387090893477319541270189530748660216794840726167856851370618340486395690038128552902009908807294577918918581130108170580953472386469160042380937782252314515829223666233377225722198408692093038677486776855952700868525467654808232600028719514629317726342363336999693993660185372804838487201619610108480726747750259643185946375028618649906463819495843584593301815113227136007513681317933299147982461026301027871150815567891994103109173197856734137092962532774781519320445560216129521325305312571890277070227607995951626735616893299424738121171306878169780480570322739459119055370543901295693203813780079862171168136800430642594807550751686671904179890028510842066039489231665204510760596250639992855631319349282865570689845620003083400627617723928749599009792522117256332563920651699539576469422300785697879115027731741548636821140832436504757525530911839055485041653241121266022947195349336966201519105459539247338007808797641429822947044281928479843167404458803920827028743025718343944253068372296341467037403416808855539887647257689055400406935889462388009383410307290430796874594449606293572227442480780548199246852412760778415177140646031157357049652267253221928843540558674679220883333602928116444486263000543909035006213615897779400895065246595385671800017128961867431103822222536868185581080780436108055288927181877719181218779230084930289685973105621672833856523800785474355792419317794177527711808762098982984538980131913493066030692608514704407864955878302529434659755557878780727056307832275277053530041966428369025414145027624852543466438255116382186838622561090361589637194968289276937007131441023164681658634446607985743224133264946338169354934365368004618079572621661285364069918201011936600341060799423087602169354733526930873561580634624857524921428236630299994128238429713340006515971162222519463838906275500000351921000547028162523401474103618159785670996167898594801494528549968504892347677153037362021680882540487620349480466907843602930240436790949172972732145741734425962885504512760734681725171455028657420078272466982224134466854683405338171319915218494174728979686223306722801330265151095058407837021954555593826189423741986791689422189604861301761913452084268783354297760472374002998123589446364024631861118284955069530262432956987920175731369891943959016093515399126275614489893123699408167881351401296387146456024385825498494327397310163904725438860501119892331800390630564315808125790383661523110178260917724932595660378056643685528123440333159348511188940510978599423782418134048718288896656582024291699004571437987563261326766172971765122595085404081491165677782004686184244535640202899818116998103828489158664837092210586517012270108459837596346346080440674736061354354934457879781452191831334829849015614734836588771594417404953524434603819651585740563971448268260298012116049489997277672761882058335939138826774658597756803843368187160117944092792435570734629008390452008355988377167000725950694566042436340686456791927462205701663874356238006007376385542077287812162313420073990543200501139922885969563025536090304617996470792853252213748451195337725537516394758604538435694370529983417939713110785677675862322610824853602689894250409538237799063966671140804453060805604705697034803451319529562560521665901899242338498342509529452202720674124047035773112325100611423477265364501007439073510119580931983228176586318822568852715643788434134226323915285136589766460079131293009261350612396215763011692997755389699456754747585995288000857496820409689768354773079239291092851096286648245263630845650032323205841143706868643633057725029539529097894942293087298425888262756605586722656892620129447021645714718233169859723006823717291484577759963612089860010094240579624401324848893305727858380761533718672418252766361385777182375214041036972116881549196835790949049949767544070890514938509097532228573482616147007642077192089245584309548743859471782642297030869349330613333702567485020182551590185330312365101306469423391530527360125093214866474401635400517362454499562460873939218754521348884599059409944855572102035944425494635180989758017293755136050674699150385237942920385184473816256058056081297958097935619914499507596041655751407381033877932704476380884319276438180688224509136496336266187159639235539284537864281666146986729844044651494161371672200190439766828482545224781892156604192865524711814914485524653495520065670547170335690505796365404902171203188983018202303797262143502442734783588037584737365570889718012764468169650413266404441159675489922432760585196174084554592942600149915337459326843711243025138883571838494382587084459501937348608274276077790274693703474573901418581411300956518535953697001127134172781477787862262112222715746373531900062254175901537865670705620988096231802064189686236777265090669103983536506460095657538839132451092923306698712733564013917453535355844268448170524718194503325881249115921777641628658947236876019994277786527565962981304257769430458197471946776265873053133764974916284693430667824775755062661587726337579920160518514240091992790306302550800934758156797356681004036486428388581860961086401388717199181919355734416953116576695666533663376744368994649646411493164201051963465681051259366371771469148329248344500986771474407089189579293163216183302435466631667613317800199927205914083075779847549140077825163174284446101981752183693947515062921776821817333472643525770640631592516643072234016507978868757767003439053953266479926004989337465011020629992316641791119599099728914869822224149658947387361428184475613234851108009349372872398443782541282637971812619964167459618250449440467580704506219780405003301763682952209854821974348405565461564556389740671384247038953739060575418576808242293493660297242487774733594295064335057879838922828362856845783750694763494496925646377216828372272966165361392677176445915518798186086602053165818349120671328094812322563041169610182648524104772177403880787891683326205879583783387483083186436329415045769076675299597940360489584345406940023143701877881622863474288220030113653162899029355550762819886480927315296779476064072401036325581801243811001996631468015764189726159798929457822975349772573059242787379279892985377269745628053625201564471376891779123634520906668894880076492103206822517676376011446266013324907209657587038547633080584287576382730942253899835124837270900472726019579877850159791616973774103434626430617898238462319423547529383067673604444405244541442106779832915607874378909345831816136650656607153900466412906295361349572303141184607534889162958205657174195682643820304715895507558821715522837415770662603785892204562131639425303674066469144828646309457295411869805498271543704468190931799671282965889617432777099119778270710032487396417627827905219568170356112108218205731524906370275509046073477466147378972592138489903445024176823755423305613787832165175645139943188881283968316465606235515492009664371536652286133517801857368844552157460912891597821459178390432806887043099376414672235710250089642452710859225461772214635596060809724112672458447861305639228657101752664185609326778530183291885710834606319013470010425791843516035366829419288176758212920385178814087927188731516082377697182243523927971074686912951042310716425511201424805694886659612277767931347083700370838824879883629558986470724884789122853994328005875952292238094519039645217176935519270559299200188954804979997053135287922922250440167043498413217644210724169287814237050478936385155366568817060014560687424181376762162368993093041585314834616351390601927242667860053947343243902919940030575730316236584120694130845643539613444588104242852815575869474195396126670716869420677445047943753906354024687379498283539086113868696240597717665094136898629027364978185697918994767769111466993196783289551765166116724561536021643746881137974550438237156477189845869252333270179994023639981217429099993734269008954948155816994115764659543476743127296073029121588348017581972914914102458490871350825737253667613156742477087120497764628648189178884445869979788115205421711672283121533281241203164058325746552180450241557949902102596209192826537971029346043189164880084123703316548870825477186616388106074354071646804941418606471428440701296478324959520852763594246367584763194367405902314879037560197701992241018871459365261502881878027625117021362279278367906354203353148167206719323939577184238015521350845692276658987543735333586592655707509392586371494932363183565951105110080612765656919913341249959427307651612818412331595275421506606800319701240281160311981432180204449431860517677689839154951197049332924207017481576403643602024543122099099056632188490486213807892390040387830406358714318244436316496671442895214683442808673688656093085423800743896782999624061772935864428724957232070219092298994027742866144588854569930854992028055857251315769119412482359323370074408812347867306080041951216820005397490666658549801684563757880362633988872872053255311829154136945494579257544423480685301202853648305301209610866196462565027809184568390741439436981516824560908665236264986330520359373277408447648255105419862824232258102986817227302031311138173227903383379949491344134092231457050370903875675212033641733976172804415535281543839565257703356030056956738916852537396831081437360431805489731258306212809280662444814586852251746812380026078135262766536317272637981148993789234121353201922836558189950921368907861133756957525031854969296345248762040120505304877377505086524927426656887196679430046241854982922540469789533033472890083725099419661670621699623135958837505487352594868995002747146902406140597750681746825966151439834699204878959260121628260369744407351002533085201900090141238342547753437966800552646999756601497379112204071409716348331721215658889000584808394989492021857870952185852795126351473163129277708107393444122191715590687176478161145427718576752008383825364589474641048797864148976936691441154118778045670242359230183079392501361887261945782983019678655056871221365458048162068150317431744879070009654571765095355142905512567004500683145068290018682747477753605655844481374302309217221035739720637302890249507141562853737838843514321204181920215085477776570013317730209155880757509946319106973819209419742343506222472948044200136879005760518756692291775526713870007012151453597055186942815709247036111670634706700115913461476862996691845283024225546599005620963891569059762522573107681365638235510604847569936096397638054719547523163460284890620925648232835908609396321994782373853271441394327423736258914253238110892358466737242630694900745085550556307462813710014621637863428512693936041078287384310179850173230921829872210930837508793436112144132539648982694627855607813413261043927437391728687891107932301267315804854445715409433751248095932151197299868387112509113550537541454906850734087748189046495475847217855719276758818507410877956936285458711139897344578865901571921291007545869840597651306227538908049508406715333960891349423521306497926191731094397175596111136869781141876458325475477758067671527495668523648772385728156451455457033539901506378399998808353044550279957066480100512458534351925532199446777413053968840225632107835530519853464603070281596658412640266054791627117877347080891862302269784549498020228457279662232217895609402633798345648094132092556032779000724590148962398730419289389409560755615854464924969420994082930751781676579045215755130827786649088820109621732719719563347321588788137314719108165236857069260552065643785097712895708091935558930312537586352091504646080001016137246917647485357627944630139762695403967341183791403316240176257643352798592633245669876493159423107579057121914596489599209246496672245902498091665089753413148494908184128773309188408887737157051734018609803537609246590190309983167827371679514492155968045690074283912805033778841395915956184486684781565417375616367069173555051590802039053388367125475041667385348790962908613667789572906355429648026905203304240050902950621632414938606800597118770082791939374753982528646585268000092463402616941683763627823749571998960798025637038135985190343282807584736085733632465111519660240366992121479964344086457968221804192233211427710350894330239866562432301629493515776042126210254158810823280535898230539519970837731968586418558781280282680300057604214286374252650798136005989295516120562835639232181808232708766198062282866645530043503436724935709612475484919001363463475378435038734421623902807172269286598731690977263027928526211036565599175478767071624558890648827049428697383853036940190188831448557302632803448560930906951246554819195273965618733296049487584901299723741638561993953855077238073640807672888162844022594408919768591456365448059225507701178259363694112774247549862436202160205556376713066058555629585890918700813259125811450476801730484998303010671727132970766655328694167894157897197732795345705506076859781223704379046999634389447805700724506799762929106653041952940609476187547080738760157326455592134137810332036541738554683167830128085424674934632823996214150087617680108342128435930127210879926337044180747760720582159466276221323982098069089157730480210356785458120828661721537089680929502983975142105423687664466030436189461906613088778000346225741393074238713005659588685805540945392783338321751858369599770355414117150730679584692521147900495753836100760611029289651258101756710721571732918235864527108503544466878435759219254643880300418792118481509215172514798745689974565958324143499784277670042069309511273477445140352832356590756387248022632048374338291406264662750487967269964558422910259381148866872683283836795207331798300798323785303829912606500265148880672453140283938356157007139615283638200367916778741913292621032781353371890139912858222984618558716079892788691965331842692757886134996030620397810225108726494606401850761811212461991580601511807843353559812085796013589271666480009994115293724439531386033219754559651006183053593289412003078485145638117826689239870225153607515122420783024698063009701621403132768029432807920733916847820930239749755501192249658466167920729780843169723491880081985823616466578049196679225651385605643610386603013374608033096874093573449999408852374361548729330503745416268145209548526890615673641113444175905941684399924320293536196749947688391865844748602818149844680775778747795733069480882278064568705306040579310941272492534032241734515219451288529648357213653481711557141644137883514174765552424015695514695365916401377287166743857509880824845752741391305595358369920272048710423243054498729699207690131592575846449041999372486743550194260961672588345342569242187747901670237440146966982390795530238346145424533615394380194252410142016236267535820367680872169292921729700870060215379081202765325111634283429080054397198536038780880937112563588462572293607307183761389932617831409194897561056090585833993899296721875914713099704680989034802478426951170197382140348174066553384511698603717126000169231389649346000868234317039444676478066062955609383871006209505131237821661038927723930269948330229954444013103021927699984825567910615114357862122456679391608358417022109239650106664383794627427215454667880522445226720653963312082063354905331853769722427074515551514128221942377452197774764633925823705048169827224179484194732401938257713041168497350815403704693829583400499534112315470827580268624464881212740465389989574794577574889135660020806047166694144881093637954453466317487928340915777488079319682519433967650857156811867417102424752987115885435995859453433029079437993073622706987945546220784640471163681691885618429257233843802226190964147141198795368759499321512402953474691289329060332380070192281078100301848642822405096871474291781135840981557283568915234424066816732910530985697148404842211503535462981468272852992263289400671810376729936457842277190403144238332155760058227938862573016679586195070690595093134285924615364726583312331132849173399639733334191622434068618229668919082016948989312591541602487500907341376898204323417668089372176413440802845720802419308465898975113374724081141951666074366959817385675162479958076040940339049177134028819453005480928160434061102789943927518608464694997451228008139926897745680546709030790401796972952249188546029313645402781660167166333180186431766737649088131337389911205444279204423781769877998367896683125087714803704108512227754977095963113016858456362845655927090143152412131549329113811179513739816662763677689882898786394472950415924925612214832736902942874747809253999202692241329340483082311885949443452257803919974286238435264626604567773236807776837313228032294766920560099037041151238345785844503385418414404259342534069858935328603658488323934250978476754741409396558424888121277999433450064253891491661976300662406417452401448378684571672212061036207221644668582194970194064495232348385991530758878903394041838528328073223566283512387927124908478103915166628632623502046810489839375659267503020584805705119587547617897161720447597951332875541046462744657508368245265482889067239820693059872173465295775220673618817962523364642009977685452283024842925306049804524985096695755046386472081156213537978587509146342800771799127173797159111407032034805339300675654715126587420067204909520893081958396477823155801030509274997015182229986823089914122571724256104213514256811776685667422251211163061867565560360962317481398707237307412119520419618482994369240977745888969365799366964430833178436901433646732920353458725998571900121932648033211376651066133291086812183551840059400835734620096628453146059325369315882335097224422543661907846200986746327891130568108237580054362648265417557816117611459421205082274476664406051309652406069076941421021561829893256993035577451293052896501687565561364000708436870216027529264797385372044241284023752050060094463839996889854037708735152319517254319999880688049061056990610305098386506162106353275815445181859079414095208498625991082115868694328794388870746724968696318264690037228034687061193667045983768136457887682365333023126749431663773430268403559510757622330527707980072268545597808468516944177729412422926372679347930959985189122183339553911393866839177295091928714047514782901458404242804011198349377918661806573445182642923872882776519036481632162639010914660211870007120908394633471093905267583750889941130021824685718940732921985056158862427942906601684175656411921288307619682523800807270868434482184081636783490151938106463089456349875345273605457170215211582777444649141347398307315214190079091547585097888733251855650228956170504009795150729287563575691172345515965067032737418601616814661682774744111800412755066277331933386529552596636011156839129191516091816200937259081275288117755389716034190770206656691931099153771608616472215094014984460167385078996395426375514674480142032437072149200424568433872109722397832018399310477169579133917236080198612934593477989773244562355652352715870709088588397950007288655534660844899819160436399333106356347586948209689947688904644779202068385189689221270335556554273305356568596799925576328178358881893712529315734522372200882226924747719587342706362534612455573539629064914196635626419309995913877287915172952003198424903100505752733772143642996046474835019207201358930213183976425939544982151650247218353178309200993035641876808122167516458914485174588547577976829230761017875869363485613484223445038358406971017512090800666926057463307732250239456602396362807771412202412812155130234142094670034688208676605609277502090810002113021525228540248985136268710288781173934880791616746595549713033141948236962993276337007943864716466548618400945575838459115521247604432092814709223153162987840072158275443935211311772556146881954847333182971524718722926866802655762272234989881729391818568785758611208524610497336074109954104732058614456986009504554415509154072471445574338589245503153155065290243530562279489684836894756436841825470212023757034389853459539794615580611326910106271979279163293553502083039466307065859009452398255362455754544418551955883578710294461736359768568742360201350532856589236110697917772533338691379185920662032587553402819709702448336014896895570451901698003210671165571362175962264838815223727011688034247868588441419832365032107295779244993632037432418780137604185067901975021782613773152485661538754434989296813273738705380908371054080363221630959683217619185556901931164312700177328440720323948716561175496234008002365863115905672963354115006929935835509297945507467591417568203690931806857390762902530258197066311152627511641258363555390661018757690664244648058291491011961258809792009321465840038600535455854639798417929578920580168100469414789544675867485164988865748012298509304457140541269417135714883033192918108349133293035198195524267559552654497362973928709807345572468228792127638402033488822567320662508410161376123240528163472934615640602527132658151586584400013130793926711081001741598761474590895541336863249506671240283118923576874463626406696114008574985554834089365402363148775900771670204309698343113865944823632750700510772663320152619817244451556353670959374328288501861872481087596500552149181619691660631434961774982486813859365417662611190575125637365023561707209459633572874891278784287115090105860944843057042965532155000494045824408961371753322983258006768393653598479233946190332750727476763683474342642998273149870206700164111639697201668257032285977414886818847249268845364974682179832269510215867868798177435834255563307403011228808060212763334746721885865028525755591937847860168336039679905013941483981721858210316350299276253148473042218330133522492730546029536924726713377152358454198601459259586827997287537182717073640825296084157364969216203441196719658654085489118714330151090663296662577261882071715238641475292150308096308137690254019461850714991810084307816939277614189960118850985468206650972365511931789573817225618514129261795784981787604787104749503677838300403509445778490506829149822976202526222334545189719357332557528399078231073928945951460731350997792784197554161507120424884527226189627038991334979021875845068956298277186201273881954763406534006136619475645797713131836229124085858218446560106499880440639504577993715801181858515166770498921776095366974490494836633708202310804634093901172092639191697498967092598083477598248106749815263377415199917431600741442505260310092900261608862845157911446974898461778084391118225674936895048629965866445199394261192529249269914486701103769187362771084800774485972325362965846182163879676208817096074500135740777430749627642501836124983760770190236464614807991548030903987665869366193724982016253489722939754533835714569211424926433919398553329652160531678053330566025642634192632199052677834890400331502862894350590946088233040557110370387019446320228888019357660082519429645558323946945650189826021586011533161464631337143936044140276896406009093453521791780939121525787465285707304424504319266459146358080496356723126145971076308685054052139147649657244176646281742445680460381127261010118891423968058253533700324572335553848471309509837815623998177526954758674688342888077767586409418332396527755602253238408370808887537604685545687332809011233543953046188931577868910726415325853420927231871161961962505611663636851099926355586051954068866626124967611119821861332442974665256518188616929230633227520254581626633113950297321009641243529887356178385670716583632637963217434545259648553348742575548107799088063664481799317984274312828161758516550728758483244417054419662516944237889761200715771251852645623288960692526711181083945028382794578165134138978691602611240404149152543994153782053559732856304518264223419602150833151308288214743925855369013235708007897648059413850688161181831122108936860262268222216298295115998298837281564044609873939489778102344284919782555530779600914726282775929319983882472050201842164561454569921871094901509525938468581857016336789107067779440308644819131764642283067924713005125340968300916825655451301988698218636601625118433261022618929304675070669866400457565997072767446302219573176009233775385389062349472783953876822701036389744589197142174687577961360105925304956630954879018940258159968416544770808552035213276780472999800636519580232299488836050559413317856922319075430902272647076025035107714701161073069997329840090774826269438009508737058345800332852112494074801389018621755733644109873399130357346579194917340555920237658217219468477986234550550296000166542699594012333913870320459983785307112458211707749814652354990487512511782632530130188984779775646467894293324339531571809731690138351933855635231482753767303284158979128667675758070247680959053519195207757137285653626287868245282359736401495673686416817703064844054006340321325668917716971613443516128452686266576482854956515245787190262284435009698919630072721058249908231987392474433093206337058470261439378043805808665271596477846238126062945121644936966172974186357309670978822363105374896431653828876177631739101026776097328299650085312635146368633968213921490323339989782702616606925668435462197275934092078622837184465086210766795073386355090997474030134396992442589450843301285650944301547573019742524494550106741709608117345140071065678019912536952664840812392814047612170605132967321797159915678533395672229748623404090465759269134980415028992384153853808418832167409097663761080296441365269203505047810185793889701732561915038603512251892587765013990617694404830002152881562513618357436996906283907143069939208292482311152374344017724739578843792615621600878786252309818161099244999847879430245992842238542428172162453728619586845335515986400839537633695347690975948285399088745950247113131270645529949158544842833815500632986806834164200747749760586635570586289722454965301632485032888006233918865556452296727459084021470172094398271313243919952124007441368550454182608679632567281850472908404690349433651817568269233853042963746872599568013166074907434874824201234859012739365354661128224979435736066226467977861103431332731866240644385202400121895212513320414413891273944837966249869929656658969996870628786973387663265263036540260140310136173593224736854399384814402871384270735807410699052957684377069147521396765826753233988079279189535954896217072303356744437159572932840315406345227381476441108347327517122646505146887491924384728402109629050176699810012250226428311888468588803498704754746988543955799747785633263224938639401134484990989097401727005841223088331252708964152012774498041875289520689042732374058470318933478914367004877463872607507710957828377688485703990222363182347282817733356735368577348970310530156729288011242117428253139957938226618312731628590598286302696497225474470068399545664103179924452854754719896675390707838502464138314214329355824885770778223021569807827943980225697875823708870485793531080048757937076023925177984420761340637405471031403618534573350768988861989002598476852491302383258089128326065717612390885614580547694337412283395156924321684017652606006907868338951433654647807515110239600615901174948281187722986635049335187205306674219625598596118471928939028973625552956657605939178256549011306322515621669341585567137494201693796196076009773593267441562233342310079510591242791861902329819442037929481793314364547639987421469172802258203534226373840841269215585383487041835772808998325887834005852041501037668128041710715079339725476565301099252847593258690008636226823501313306645955792339211252801095771241839099708152057715135410731324091999332616107532891492796194225721270516531421019593676679185178829308856020392925616169159145887582125299206702666866447314184710596667630533051565326412213651661762552210935431340461128143675454585484955258069351556333726539134797755821534928135181346925034504723545811448412089416706927798310835682276233392675117753035671364094037095147322102797211050982853624654573392733644063030280507266990346331085958704048510498178671831265091796501250241494093756641645899249977537331018522639310957626792869495273529718423693145093975429275311376495137421512784731458680443411950364540568853446087785869455765309164054280448173968034681083474332007252960343726994375251447051960905008079782815265358253189324555156081818801131040907851204286794147841799367631118966512452770708885473969691566525595660108753992545795229500645905368004559111053364049329003611351911120556312098270104163704829480805728191581029402594361308338533586237903246893081320548654698157850185541313154038504864342217910119919908609531889495091847051741600030256597341567196201373198582728573151395639597118719068426558924591104401274469633647324841939071707047528609899856208927244074192594946442228312478584746652111108530387859019897179984246072567241210233787501345914906719433320996737202138168256521479667545164243211555132565664765196879605554049339867510700611997868008864724328267731136345137277096615243844765853940634640661438769669311141050478409539048233391783435959877789236444274459169070155469699564871181400685687177212778809194015487360153751980875349040633611271721531665774969525584825189131308555881422145313731327053366132354763817916437997207003120025675761049961368117831597701357384484025034675349319504622278866056058434026373125839015115334088511365661613268699430902792243007579327725531989947469368847697304652128543874845060523662274862003787728103708898304578584294660635416110218183043179126211774155442040279231150990388576922958405043705484187092274723857948378719939718610507022425840437792211960232522457387213534282627134035186959783123447183066965161144718176508249317931182211902526427430502520296368424199694415806736174197211559327597377474593566959615929500865691614688189944638590986103169442250836118593167888242703793250531210900312638723394794598856376240189184182128368739339058358188639221862698299940236254737230440334999053335988846390246927180663221770654629221314230116036621108264408572665457931375914055754012565555480216144658430516841020313879487013437074651378670561370817026490481666873634591190399145244552131809100649332710841570378797604395536382250414134977587207626558816186101098695962103577307935603501971995836315924277309315588646449033675171457648556307575777716592565120544132568245488228500804271812527583917953029612422082360383041203527541878478197561334957551999586353483398418743913414338344191414954507903514499304727568932866040792657926567643472559104124295609713712894848224566019725176425025495781551788058088844845726489388979996549017645117198088372536447314090267366930411261132971226018652802248895285414281727201848345617360086084379726730193943376425559473562403240185512722495290513295571120827537929534807451449586003115246864748446236455230280956277092603732953529751274211530727853289556045723987953380532000441581159319097096629581028560073949926105582120705971281651046470527747463486086549665310066099682961679400807131363655176555196549427464822577160437519291503271565375275821039463275537948647377611574255276090111321734125868556455075082848456566839011099199532631684279363059442723294508804046365840290533464654419509287786475142259747204463273891572297132856233183691806555005109006227741616010107607319749370158781975466816504426935423561495313772372615166591749655058792444757157055485476433936937648086106401292477740925965659657942688975593452132187191558108147071302702773236504169264803130355569575485476955590556351632012442901906902461781994306042272735480234416978657296368195339875482633019310804376005453913474506756961757100448968410944850758501115804546426552762883062789567791205194692671755660960735862893224853118323053999615882429358925149361538365658325583129619722470771784359484491415062242371299964991064806817982867232484385749304873066621301148024958793848950066113101876337282810775583825749271531943734656601691322555612223548824867136237272959420179025395488815585662652622317171561307414249628297718354942989504356107249204634536163190612974376085179110104571332841891631548696303732243592658821550946490158413524615196997460292177432595770013028977676664886074287374916364505224753026098858811042831283921166680465104456277092618620374970537952225898334991044605334543204482699499390231069580699071198445540998087938179904188045392873706777829354304479406155237083071277088408878358362847819004145039892259200538242809843695183976771019132110662912216780339347074900226632721467569527418134191739404483866055881398021114558621132999018345571769920591460280464007081716760908285822459431385108585347360268006258985812305196320920668689432179997014477726692602035534844590636429972431814336830501416428094837887342175849771053066216814283391916256015073702371910831169711620605757893640334540376635185347429979594713462462959323815864040288501550092654105535422596557706325578109155313425550101085694285518136576121582326162680213665569946545269836459636769229166867095326582986446502453293269365160009318245235127642870988105754417394301739300366223532355216758358347260706667716593313901146777189212695356709007073413654259252579364599570438212259119622626475687231312557218411719158089584750027608551749875930509149425931747592687262437399215980518739435861290986651131842025314129865231424830273375808356970364090473692778744418786647491235702377294638846716416403601868815712452345179760275691080774154499678072993820885353103223277775918537503126254068095149676396028715290198251684258105429180606489456377526383263013462794148804191677643772726561556174227254340075169218914971615499079255714576641543109154736150879643033791088625384394171777063906101933443988968525828529069537247280322969181187009595423754311906824507542905930675941259766728874673243412345460455747381729162996295348683631241012605151406377880629510862718245905733108393345143961554936493609514385033556629145737851778770547378287504351539868448325467501280606027336130130132286467997971384070459416720269195052751847542817304879778218037425570308778567939121661688173478193754146351510950778133006188295964091308748246492855310699386897586407900343311548021272953922120136087105150189885673731922018031232984961556378140329614185201906967220538714578294111238590845785398377094787710721115365252295009637257983753892230966861600971545998359482574164857341605560584567991183371113076680225452038319878959131383496127472259099432370354176413992038018009279580726870775029227611562717330404701714707353162731509740184052610718617717876686640502145067415036610590966151400025085792436623708906313752595282879741819871802539987423250016427533663083893352318985474593007307824485136724082842581552439236019278052932991916700183619026183441233640552992616085561059510592771127275909634067919431217869285589814716056389018681033577167803784649819583259109966884634247914466669659262029090007173631316669689784913639733020174624511792196206062512259650404489056229017447048024045667206797130700671927395765862600337288593307101038555867167872648412576804941967055478174031578159537450233111864636878160360850835714785180764074071536683811045338421383464933587463152134916208429545134600360603419011757763759311865422955165895726143985505859837816870770060850479905890767542302902712879533688525375431226881314462731758794371527638944205424396623770326214923932930794102738271283599664226004406264878074296440775510888184020292373400351960120413060341326087930939905683428629406575380617812762146546563303175672521118771677400819761743844419617070124147639474251241781758348082090914965624022183522624614446344788282463482439992217272790236023189583614114359158950657808161113456826890565616094945282754495857825198313436527838603860071904870823111103648458476455597723433755959433626663917453096094044225289759079105113309287864854492817399477419402122192879707839038166770394445684526696843836102261303226034481576021197105879753565612611111420803932195049254839047514075885880919844949787914416564204042881219045458503495986337384035576393524962170269723330489269701589023372317849424814746719708003465305490233938124284023356720341083102186130855568901498889206320061660304614585466047758719775461463708846124097731673025054335700632942954084319640905428839506616380390161974799376705481797996453815705045927138770275941796334946575919813682396847424015388969768048914680836533157346474394044055551561344060774605691173918869037238405210838242390181166327333669381213759330695218898793276692360594821074771474946494693731084086416269461164349298005772110831437615266760724174904812352233758912947635130345089523006546993242258824752293755100522482722378463379322302281349031986698972565572809653132430931159373344049923193632768871073986332556926895756972414754446259324920093070637778042798894573119610934719416159853323571802162084952066244450479354017145194606860406903645275508464040560185045344318627534932461672197784054655390802908812807376634075962412937924145663962001472298679532867487679633679359421112354181441824578061958049147126678799672131290596050356938818181958638734544744898462613682071110560612374162651128001754156225763943657760584205717390317221974763634891746668225146998343822611190945275652251293611133385938477078759228331143555239876406576399379573369678154310800883928893670021147926343443541257276891366582041009042628354466909369915224728305543347636923499719800095682041130306425538619827470066034356477780067631435232458234895588758369630620629328595918039685083316441813725914194821633620154598510796417073059295400113684537626676002626939420258302272660795677660652536311764271687215595518456494775440395061181626747657689837524576778860350246655454809092574656754350403404981434743994202404594356630974171537815872930987108530883335897387757107058642774685614786912490415608306817100740242191138258021621523540039042982741124516191970371737914877007478769502763653465933642866906656091141909995330617010158566674256300861402804661919440611477252833981446478939107505018367647229062024898239773852752305096405816204861744294641963519067488526328840575397403858418339093787948273635751264098342040889682933037481559723810102252240846079300402240301001096290223839937990753760491083857245290443545537205255260082054230019328676773686169486059284168540499935649394380061126826552181308851699298865316157706504633887110895530455904238290684110291447187549543788987381817019374198505849152552349415593150108971213078028805117846537933151783743796046611391818292928905834940068119530970817162404100317797640123418696283746745233320228587360349515571221006439173660908866051602487419616332053028680596955175505398957849311757354575128854464912296690580428767407868911486758818036953804785552366966943654732715110850885106580132156685958713500445320635091255010199851461076377546638294433471037748731618969946047313877817213428885480770126642320470717299651924254035484507210104780593438725241660622849594076345653078909599161810495146808766096026260304504188610652758978336032220211245330071951890678730705565980982437956908147887320370062862834174631174072685414518763891650648421798182656637005886835406567918785136307272503540738075253742468307460663408987915889785789587633473763806577566259377217980601648072308768107709016066773785768697357272456850480751444811357115567029952116540531112889089132877860435417006238835754115417103561605248302852435709170129217925760732723736699617378330278506036362027717087846696578754966007778016836752412952969671620724537503027951868247780840690219288195943174107317245360074177094696277529744787144776360054276720126255613334627952908634078371770174371148688310562527471015392216216857680375214533192835825296289503481200631154916700626070882783793781461827032410900203800670512069168599042041754968647191807204083506677574807163404501353176061994162807664768130005863095307130555944940964614841694299789748299808190994530817684574762686486597541803420338008060072366502688844646524735681887349121327760418853947500542353003549404944964369732342407408240804252394411270505721272382653745384090147801460972368199687043737306727627685975743408287928610213339036445396712495655772537635223381472885557619247284764086835785427397730446792751347971485002735760583885115384716729035036249154383937788846180313301442823911258391195650473461627103294007791328867220324016102095092170636825916931488468267380721965589107256042573681783411184308983045909853024252886993009330740584109257405323390104472820829288823306869760699281084275350611082193698942555521949570178420392695506698172681721374256730541888664207655111963174796760693234685214505705515584760268825837219089819709866171082989144445756325484585697947843256176218608650268451511798186790543557846777052531837789748428272784886104547518844421124144753572194259727708698561195300891634832271963899249496764193223938192940008722885870708703704829085503722387032973605094345122449442657540187845134270072881105587021881015531378844088999022524714538474880216802188053071435262265393759423858334517013445059642656431900972810684516355087844542089763630653516985241757965490523828261636479802385976842434470927246769869530474968376417979142494436108414666207722558219158824606405628345486687563275547412959162702836982626492022152471144425562093505393478914409711169341868602631330183033549882324273315704886060558961048908176791548131538506393211823507749765767093329229479029123906666894816761528296008429614117327849414956597464056294336817452087592744755883497393811059110248902622850549636754718707170974895413654302154729691811944405388389787054378565455030632052289614213635622350592121145802626222511216805140290667666092753436439920529409393340196886990305435128776954993944161320903677247003495671104337169069619060752426375432238269981323601885038971785658596377163971342201811054808726240161227845188785466572507678035102848811543835121168078088401508853128053756211333567004486505429619014475896569106145206586628501907290935468230807875530558461433265438289863445482922777651845846439099035653712912709550723346477751813946783887039615215423875068084248231679193606422237309181858869546989290271899079345252510210465819341724619168731800800280246955375603879623836528497065605094355288293246212852345170717749716255148672322591723802543212226979346579813894034224986088177825239819355775791725444620429507834442542932118832774603078246382210330275912097974057241905379305959605479962562574620997525727893812257465761085096103953719049463840665006548345627467707658217926136398568338171284383835555009858594498297292809900262156783606239857327205013442926652264642862501766639564175936485056382098200815937318630158796627950446323455030336291150475491111384776380612685544123678902900882767522646390241876742439618641132952672031031087327991230541681332783820879733559783376652039066479023105987643195001993355932832099344119264400065161972084900153540612132102851078111487334910433428206779702064504612837070026220328051165951841696761468261847642308023889415525769300714411522434272248018024475258046503189917596171093695645276402432739615231787107617452347935067540873740928701626146236294318556646907691664594565338964028448808477043793138494054845121826415084722477153638419083994365409197000409871472773844354249686813429359361381992955706378214436792041471066582774964474724489601889291375550962906553076329396093865251936483176588137122343843834045590951477469200416525273919577842959649123859341050348389003988489555821842004401073103055690198573531789910044273263197743695694856357198728230473727863046030528197609154253796707010567715994646098342710331633854922652099294185350727726943533072692356982061520253084153448702437276625160701268721259037800116536669425360030571372834342965233211272607027914431134752438031810882364346390723939573100222547981122404868498298798426028337735373621298901119887460430652841817703361261120280496366685234436558650094744729496962770258861794791279621207711936200490140418870063233281319482174607216906516153387714506877724295390014171820409352210227894719899082345244418812034227635021956264338886003808499794420133172503202378094149148646431456728063837479314494976937175892192368224951294665705064728069934099456951348443435893549633542283025692029782711516050535351671721851729494666173336285364503796778948153602271711080887834390040134996282854707834836631311103715022294225106832607137824251854533137379832486125142716850676515820553327005960995287393976288887501841610625051481390902148966713580719852840752674128212176476002676135539736269272561722468304539818096455804339056081106767008548739615257072381670858725848816011288686373931525293548842760083550317079225238452391625889298929197446276107000272544265163479705912400696670839219770952766887517362908978933499612632673661090795580025852721330521153502120340069315322251132817019738681581501133883950554034486680396221617444591070590126787114712242615520785991841863513470945554188340934448195451113343282220387044936791509405772781108257275262644268370195039076645065925103188662240926598215922950013179235797734292855149674656669154424715581436655503714386926347839674213342381003891073871076000353451879670078366858520425652047616017329065437236059846911820587190455368197259924195393751750479594449083762151239274206796509894631528740208935904969213016727313482759401553762788855581036708913871931194764885558524107239971010746666507530541087701458266312613332658478146782323924698335813690591191694225323601084841477774034004657366368970446786989265397607212808345458011838177985300355301590797917096587180212338734160654246872714544923486283385654992235532513285024588912970687701755091116904803792928174701769368708475183669288865867126505943872537946707193255126615647448044373265386056999306756609908990334889009120639966078538005689828578844731838599787687935443884784581801807917004907862937624878765630187497550366847900155134926999860121833367024569273212358299429174723589525633460517159792258587927918829064435831012740224013787607031195471782281029868921958316444222315234884687060187042888825077693121927156301762312249677907115950013634316548793356623639070238281144742850906121464373694201963774122422227814643371844114990102515226202375062864680639371603631272468434425321323939761008138721378117505978014587707200406562114346072240578877172226000019149296017902038803145352111071595919899789297987760357447189425819429304211834307662961922835770046831398292420329913986379215824046358687046896164430149343537301858031352614090822962824343995494849944163007711594750004611486823181976354345810756226674815502466567161255253258098431386817408561321887859665605461686051608362557988065205756276730980960273513307355343931239696957948826825949095366185977396545725367157460804240132829608998122745925223405490498594001511916494368665875166659723264874372062829647883653750523542586153438725330323502432640706745519288939693536548580453686191877427380171876876692302143296454259302986247688140214859899384265410877882164968321695343816096772124596366280095784630433665722370016348671903033606972478319979795167763741190975279023100976131224706861402624582772404224179070076869466540780606704970167855968701774104609700615843102250465537408395781743791860167720461918058781358004719977904958609717080989435035499029357889898675024729559791499750783474981094275223117833276633488530578261094606851952210498123501023959651739030442979878695475498944900907845068728859264367746625622513380193478856293668453670206575452091211281952010974506554916798914217327892424499030738779241345290206482329367849161275681595193636460596598562402023267061469224895843389037204112940895802693216952524360212770862904160821956112578184369618526185721587616992681233610656015373078589232571445290743038773820562339928026197589637194027081534185351618643386165861241107574698104382017766830732913156814501086214030995860334161586679998209585652067009056291308026904441302390052166781082167714662809876947694894307959706084063549086411537245743700671982540173713314582211684160837469889909962968576333616933240591777948512390089637556639100028567538393661842402599258710415054268655627300908417976277675217627545165592425012988207083063042197851121021222375150941029274493520157254345885885505858774880354731477788951301951877657663026184139903767834692232412641963436496504497128622754763672101064372510752937667886221238990724264650571600872702139321549016918984628944057325874071546693992561023022130167736788221660618763595904599595278294092289167947690636924869050645709371048010315645767310086157137881892670199093156030908068315944221034131258069402721481153553290238946162901425369743053269033016933443786945974169590848733668387344812199563774410612266797066396785816987656454020279991547189169146311179981227600809707159692891621030366003988395751288500403642919856591825487811815000665276844365768109882103004870387547098262408680746954404543604382564003580096274041108924318576851241971914957097430196533346495403762468113986727375894893009475909577504554005814445009216314636583340513079600147971751871587196946653615897706657568439073955192659275846629109611895807865233401601886354208184990205681841029582131921195354912677916237039259625332944670023222012904544888887938799234743537416609324163012067850816202509325889401542811084963827486275954208853697449393681231946901302340137743709982730398230541390107282875354415601835877914124341576230635481225768830095846803193345984032092248158831585299227063887578075468626431206916128009512392871615455207386966996301481198567301423083253672541408712941110655640215395611989774260412569909311944448661855447887914385342644444585498014120460344272341135153509047348624514549801426083720995808378847669208207518586412285534160574185276689128489748571553174138319917770563142743653957721489063242026499252715128714352738830354161741698744179436214049945588671335011165213599958105100973544044753133445317241811956228859189517382303495651559110486697216478655412703514974266005043951120932050471273705931450190262708185269902106958822874606175482900765294626219313844297149861894720235422920508653169700506119399510562254880156261529972980073413310401512314437929705879570596104614101454863481255489288692367140513977008294909517840836444182516881950442437452570284299052757054081435176475861240395988875350133360633309858894364107517855928916289998165389055797355884758212625978489493743251567165259173552752176106531171978215416781717269399615921247050057917122892214509943977519968488222708471690381178863889001583559172305744339395012385928608398143137054918746252746021540046674835933922115723127714497305848873027662820934439467533709242186952981395492732599967452043823539085219389420157092405228207103848226863643679612905578085950722682892108025509707967356815591220575371462149519491861592613226305713254323052895753301210595128449083523597600840271726495091686942907830284117065252372266664434714406090082184218152441177228394871164857091090382531358686998879801274971077389147593765355389896785850691859724852285658342979166936418909019658229640579227482422413475777854133269920284356678641124164304450301493963513898210220915550008402304463333028070807590692056759191974030087995363998226660955252663053660128972847483628312216413089975140695421841765449752365024406835232516538793092734661470299240582878998796311130544331259533714358827159482482780099981190421102937907835552517148290754903926386788346402957443380456141084500650340058949847098730512120961794270149168988685776793658730121104274668758859576928635761176900461241070136676342194263772380843871655268904134943128351120114611816088338248336128313113733164787325346227504186033696029696349981396697019463968545036656089555749215427196173442945380731843590444729633936996912095535584354256725190390923020130639616126398806973284664882401452255244520292238579872679697297767743660332709988230915019563649171071480487262167161634037044674157760971492972109933453750139072715361919687554798062075347766979700842903375079228359059539386195658499530408934989466310449269779305541194328749480330106861715815865097208259026003692733564909078082075060093769216294834260988024053190536984788084609645511277021905538615690473180577613047432132263627762919609417532156310073713686400886293320171586226406933423078010143063556649077285020375217182083228633609118579320929825959731412991581476934479501112422984648214334691182077063273035952476801599522367177133781417555154320412293187356367893204081331504639912015494906893289488050814426226887340662243549444207314053277034928369646193814284409010982916818267643953175594192189484659534126302372025535154511113591935257537888134097655936275163178581717970276987828817600617040808123497090183113725299670131414151359361194193336132291181655198196002421911325370075043441436341085588916113705086985942955436149627804516960210001072259852402078720814898607833906498492405889222639606714885739687426637974975121217176444460835862556231033367788690646365365109740973047792942586329500769718997531756344793720420759867018953464050504103314886139493234690403427104041266588400185891414270789811181025271719110174611055325761599795235211704995608847830082026540653632399008341361601841342052578445680033799539114031693722066466285919975429741827187721629247746132897671012025728611631025805279050956008406464231253839015564027386627372065607855816140829805303159978544811612586496430765571562455643867012577826726445933378019029356020894834455240716896152114145843143676046852376688322181534779238762706823989264335002019598501804512109539880770939428513295685008649866265177233122569004418886529442637688461107093573089751677015648914877939806530133800896431718500803487628094627593522154423624921522823595917063041803520983069993161462535308827436284197560447142112368004153324489805625494954230794138817841228651969051422742863743586848734595604569290687777132829149027677417930716342725310478949132435402076310249741659694220461450233635323494435758916761536869593764363710402098258230613228603366592921335472071878925269819257518308323790250910282365406035601683283853213771738269592288184463783709950809335323354563750598378504085679959415652534805375596944198828191282459447781558246104073333725844198633649279173171439101590084555156535134341332032315215427595411979970380239939215575576681093928818891848460679098600822271193892092759558933823250734944108796182020816623019911584717590070057551492193908416007690201173040855622225374567519065304469592982560631250078368206545280834170833587810015864733667772479005568601454592856887093504374499901520096381808373251495974051694936849546828406732096020754067667157944958204487630144183502473975712184556586938716534310562671354693804372721140141918709220821928302103661533543551725432984298491568614359824859740416548369627479798808297214740972235364013772646435793963801411041248105725340327599270479306161262285957187839577711217177428248470045802335081590400073763260873493112571406518195462670800879407685125873016647935857977479191141366310627097443667325393250623231335929708357710494410312508424050801519212690771000211496127537547663844427637723242511062523538947393832626603371460589275096618664497916434222397085659383911931431362049423608419803891465608474910125985695667150595465172569100488466011291494867920967478177709330112297333904883356087527586375402231466365555943401451368993184159975680821282237057337346772658028058821025966161865867860009928916846870778902817137232292533272205497883148349712233708714094462904882905348948092627769250680636516291641781948912320272355302044934388836845944344336582351387869927164815915996949971399348584132418542150386186945110894534531595359855401228755995050646277532934635569970711082592254849249872387967232541700438268613112465637578235121531904461865208669800801369135864875054860151883222578724462746292104654493346692833119883599304523318012497574441305804354625886999280179140397020336653057417421478229431132734072115163666716822922646087153785820162647703599237175508799117144149428380939768396285597036047166526414353041284375716864915140775313049713714755763354732238680905711560349551455407073740331904191538937013761856524294624524626940770371814335164428913276628969473908018400127038252760335389133814180441826921778497911740566986303488500190602829109760789943980000950335289880527974619306107743219028903942784785625391885759010355438769690931902144135099984350434111811367233897929141328762759321311762843904848675130944173284204778385140415807627677232895445156640390565439162816310614059025087412618898313949069312904979389573079331796338229419738382686459608473738305469388791334244296764516820220358606521006903377163487116746294735101249265649585422190833278085701542156555803404656034615843368724053988179318812787026454425951006636687022104465092415219565621742353833060410411757778028165702532748426690827322809332318967484795763552493440581190136703603869438275627803657236650325206191479254359216207800189290678377462541924776156122108838657151818036929429854785370923886199937680294723319925954908093568614090157728676798151399358006957505785961210839441352390809909768572952189196588712104573515585608487280746082658349934278514899147751033370018118525388631702744431167868580225123299948734501937822113142439800702303840838362789907077020555309440251111496827456481174086484161312013839429318142889938662014876197277972987152543266210386774427073077159063572301523742898487743875220013588884146952519828244849599958046377070510153353461828330769848990679810687693264677843309343958466543546499622368291960755427835243605937847089786912844491988199262943110086695718075960265259779668629899191583900363488220059180775830705802973089933988827982476621428529423013226450269715821245257079969803793143595938670923057136839520376408414294658725666667837330971561256591889072908746677797396291909550787693335499730894426461627915212741793775571126129335636947808646102000535207115677058557855613681800001027400001215617669939151482741468753995463241756052664835648969075931400079112451834894070327894455810223001186094404704498948882439561226670547769669235709261049828248559850316446406111887615174109835975882431434534810524527177356558603943576276402785373808476624018039230858157531273356865608574527777187496293676709688104434248800867341952003431303684114211778027640919804878487367236008951205095722990734589023887357066341447981263302116551499393223364359395863443768731466689174872810603051931817401947837195801697427393845367695479697103007007005555568598771915927486300564966823403306619709645859085697835815154037715454343068287507416214047017062124100669153044523502387163808331157960777585100108150756552194262862418127678854786302507937465289344833985940866911022114941180513348052729905324369035199903930199984961770062375016681196931506676725199596082922534529412136787539765573314410041250849466367484303349662203302133068775837332160899769063608792996464824440964649592919072483080360229174059155022912849556986111964585485204797979195454113236993855398027351377622057476063016014150234098276624869761871179516747046331668710118682282884686199336805076414250946571724699570805277956858304434713509824999395433340019517171900856762281736103958486840160129309749154411949074885478026466161275419904833154095278219268298466636746154012711547925537111829292070069871984068452040432572564769745036021613162200931329492919240544285751167242012274232921263855145388228897959120769940215754066608702914409781209262004397705605569777038725075010168170086311491255706102894648610444484608977769445399697392444512290022882565524105388292699167569976472675972565648004792815401437781110951054342544386814055974406498213621049775871218517662149508220263733381962504595701919798905344448345990407424143370870814439501534454269555540331330641358093240292554833398876713124465116570534336002511747239396292243150199626085387239429605907128503045888522977888475643485299239939311076557819220746181414252680348128623731418821103012384787177603609546922431607826438300907074812956917066737200618973892482510236077189279115084538068182615778298840826106256164191662617106771316862244520583256204942609129112471299908934395471396338730496280829649994213566048883240499177283491894335914530281542508820225972416499213254113340919125377489906223462335304024292303110828792197770227485225186248195667894538856710956870275382954746523267483010102897016545663846931830457414123922798175108489580121205188314511682344547112091686164529112560605718766339260111132747781147415498902652198129699775245600934526087914370662251164566442241019295914528565132623627580390740557836704811880356425986191102017048061974205867016052982594880859429980196067588867059618602824123487033624183034921454750233875659130830870287711602580172692952035486667165734351516411709490570578682874315747327620797252069350615373556958732353072358025499256430545780649990555563080665845989470075308012599718444014656300922097363648116051700879795958983798572824725181474967191888680276741626512652150663996197942974556858357476587604553546912484142144043152241808961294788415168949980555747163789876905805875500721278878327018417488654520425302003765465779363047274059147417823824432894607162334823871079333378105526465146374965600978963505776686501092921493723124671054789121526656213130764937198680542807615690292437722867909931735508363286722590014581804844653505243052620577338124467759001367150443086834956802194972984771873078026644889382592174798355773923165454464789930324775889207501138936652267421291364008325181963597860074273195274705330679637864609853136457458633076578079542871696411364223258564245765045266299680261922632770624813016854795738011140522834118076201702245688099759572106749081063632994949244650790227139367242666279682141408023640969418328444473708226407148316449285178338384886689085225066661046166124776558465564480235399963743387138968774493276039884147157105309121405413449522677034740727046083551093751731972522704562106587951149661858074945657906018471906130389373299962546086241987333177884198955669636826485099915483853079996464184095691535720181309128117175580345155949391680709596012206258111273482842810569567872714627295341656202655188575417491123855314554556375249321294462836502638248226588621990582857868196284749143106554324818163205998057895512318485228281937008718898732059109824032016554556043550286790306561128849966588314440443778286189788450055875808801530468053696445582784990701592942558836410446161323750580037663249529331538229557621090114915266819045360429916199343515681435773074930632359527614894818854499413255859175673350023758560387687110773917065055644455930963978924702544341825433233105961827544958983418427843485909246586935837699068418716170089192293359109430878355863462035937647765326940451341544986938907616945139218276670394485768640653206950552508510394110046505467688798967598431141450424153871833457812998157102285851777023650546082050983204297521920751829743763914749446871507978231287315897648825321697602944214292055036020168625455219718833810568033997671674765434328847913467532759338877733012277599319574453605684813707204471370194490626410333780172136193445168642682046077971451866425118280537491745348830930213002921291829902111613914075631087696076761632893623466792468266923615098196943757645386464779868884411504827216292995415313327287450424017636812533823308174061064062269177119158039941324616518650620709674012642133819674609837456625084664864385945044458946428185798118881256060852537986108090656329863503735100812363308292901764975817465805448428140632789339113568607921454603816641009594228097996729147652802173514030803910941814409968797456830830253092389281196408683577316929051362035182557575158404611666036793028009499878901373751418455821409818735114934250174297676124616381929510107642948151437598751455005071058361230912792805109900626460260645226777703303810507344857681803712704480159732371879532242412561628102613567615334071296615361069057883967507312776507497019653268991374339470868408575862969639426711870711552040084679188362153727673385838747768918731866045525465459319182110412085838008160299757823817302206421606916480796400870913108102191573834508028431429737150458817543384842100400389188773372687737356679187150955147070103686853710478180078994247458904522534641071992084625326137484399912770686357103780104873194410179487172721552103286076780220611877450097029281831574898002681041951397202370205478505414614766114537517477054730724330859595453517773520960689880169230968024493793709971549993693687197078404202264875958846341502901420123435494657462617792449619971932948056868169433477499564504402509289682214099294882112824369454207719310055652133774562113118343501903514948789757064217606940243493023164513071785868413430823160842816562971772511405965713586521385890181081552300055890813218971381590224464330836875571057593699593550449861721345523189574491481580993645204824384269172471763964975949750650244225726136975904441807740870986795962900386574924465749857087086033256566008717579311126895970713609854797022954186586048027028888827367847323857886514772765575685513249110194925464201339533330438202496912985150648897980719244211186445503865251230138226938616379349965742646403071772578823286349510412993091182368499428079435995225374225450137168663064635022614613704089849260873329058047192133900449247406918292528149755550522722235619144793782563038679258820974438765475890486461559249230291247437015059791174444916783599838306568866981074062787179674411784703092796431922986554511344259896736427035345768485317793613928118514346660797830952093192545500782160181197315855641663051610788952514047120135363152802718145954019591553975236071583120069629066377236911498781886834482391778180301311462583711738180624696723832792599636684778077442823823421489197750996510110262562921742092170297725443345706408986401054665010158382619935570917746280894402230576525550813621420788968814329694375801396779222967081081402930400187184247706663691675725494814088378368405342368728313816917698563701724712483448244488469379138312673140617636526531651810527253803723217588622388157637197688566257844578864298131595660966016342631737571567514600902699524671838461452524048860571878030987939681324761932672827370669516750983114411664511073011222410099444089810494100859164329008159597296252801271928636084398559569021109736914672383569299827816954844342301974710942014326096170391239127512758803799081271240006610531877584084240277046054595913946753897287912641882709554973527992110246150761893399630162057511468812236381777937246591887615578350881379309011394861028361285603093679174108348731683018942825282081931661819647061360325116383673701037850941053250302534473605681270690445464072659075888391140023144007379511950132390762837253642842733009558354306396111035296173025541393483141480501434097237339327158504783203016001576089012865492567848145303731892252323464446884236113402351780915806931027438728853042304209337512352423056542279165440706358717234557943833782447442784715091025989301581445314510426969860955457552909813757306032935940511774285045123265870345435402747679034193283753338624031095450153572321129273006205977703137982988801850380246152152146579035380417303453383050554854772201484020555770506661247386225018538672233455167235099320599363331691475159703870901904032401226115645298751110528813734152115386508628650441429751029322054362220367807783757160585122330938629313747996367045291396120043680809561832564952762601399600372885780831403812447813844828723105296052130136579702448033507355156240476121296513000898148419275927810144162222228396667181440963746186099287964724204409496050170944164412296531326795354055687990835793653016303844351261108059231722479865834257070225846343223990187384342150581513956368680588468433315278430275270670354356801996766744346854414344814312428819122486656654144398454264299839438242161432755467352030628654206809647457080178671118908593714738454419426007952946089214172480959011699508220139719252571903402310243115063498208313635151149356290124217435544342717677066448870714479462118453828191885217178321925095852898714848565085542961929914687278287781946882184441439874680023841666662356807915144724458877543145710235022511856381422837007583744822659826581990776131256449911999752787802155244008260482649836758933484032057839359246513434064416940691749988790299563648386949163895161205233236358196418376652123317667971064019060383715480073161011129739988297223741611694366537636820082554727251972035022074996274842094421195972193128452127070754441651372457848390148994198951337957249591195496755151150082133297738385578471378010041452374754126630319245303090681348372863558836230572244647614192604654421848932890487771326971819209413336611218050200695615147375460761077820246023284092366128543236419925762560933570763277969204053747197056034799178415743793202959194389252040238886818242985267525380355798157881896667182238148852619446416127071638810078870220827463413674295211475921619011104723113050262102801774053505912094157587503704547052784077640695272990811886318418604054477417008671703980039145510308134358460892223744396847553132403056172880925845752653662454785349412022362140673608905559237069355618288935051327395878221298169792286687870207407317351749084908792819264328077582598493802096957897007218818453467285523267131660568477815431605223765899382867291985497261982539204371249217073337578644602540125784346431430259262937857904993188612920405863079094840866492945920360526125847228926977910723299828815139985842384673859952193377296782480213892729124220359624129240791071889103157087365302955732901268963855828613869997242431650332436147695669633985807462423282838561213830547236966564788473432456913942579718274135606719280489886584392240234303657579755195356975210503884812069432577127194837792731493136945275961858106135688174533210153146410613976377932465537355318578966769626421212311437443390066008196297660678063029624001288955028986882637421161142562894583084892068037744970344429092822789517310524118746518572070846931950011526710782672636254420873003710747317716896767327560786716153280490186414016367885167653183997759961139701828922807239869066750780449039879132809982177473781410985162821564996615488694012609936756695085760242327642593294868677434515794194746101065085276158891854283032845207557451883117793064121619355514471331803499490603974974750194130334743865580008668432017645093811730717139511827783505170726453350962742872727416828119198681447251800052124267542793550354153402650269043254365321290705352649678812500801675344337458350803542033236937931596957302384400794914791599216555167251403059549443992920444066653176323234938649245590560488540117200248321456607358798014554151363346998835963262382644397847984908281559282477092245599035704651074420606873647377830214788012998294471062612951225791099839444311048494571421552826865806702849115470603308479935710168512105708697687104727920219617770412496174235702200904993673113279430296193508818321752997682537092081417654329318869848539101994861377483019139618483253829343123605499261498141420171069564750086168244579460684185970992641331080033725894772431170387517227004114054331563827398708633295353568928238399525107501650365885027083495441721348609589400116876838082952265098491464093142966788301439890660670278680101127574722413467379667918432610756185323097503258556379482068859714895528537001538155832658287039664846484789684555760229574818664646172505127349791823389360482256776127604000832673746993952457964626974912409966364376899119229026905763527906697668519579902685520733021142817965486994154060869803918146709086682946243963220493072522142940794722190090932297697271867005748116586550841644445014025159861036582743256855100526480059130318265478033932700242316766595534216020785435194911586006513393077815970618119878284810070319639372211313489753811418348706426097604091944742673749886836101656257400645840797836376238776794495141518992420013986269671234501829766487188460721527549406509639373445445335552602317117423533005693854754432413551172411471933665408571676624821820208134250352421169580039130506127437917868188959581001970854739116342970416163196304014593607139140913139166801531333873098021515809985800097606372162758420707619807150969022688098681068093126240144671699329343447072749141853625891478243858393651471459348045196343440060624716697105585127070645832979672083464060938713355937693354253873544358655389357965425711657626962713644849554144469804698067313670307194154047956548913141620892600171848515973078816561964944769344561144380424015059518856641125861323455850675720266436285205185148984222342386303334762474673813786309675530646834556728379380193560949190687655501836823139177096875410192856827371864049026335015954869546988612516109703047198007867273305514073348542645267087194920740945563271347585344652085429783232782042475885989712643305754763558045249200615624238564777973356806677596182885601964095526083327406639769003400260528617932986243369521325603767815434951415784964142505182695702532457841498151686919179590595259077428712618085573128415253063044535729608489096699222321404102916220302853203377930966319869405912090109844563330799530885003705179833656871235654008045601930759905350926471398555872831269058279973200132934382001318416870034076264157155155800257308908107063688461824199910226668978378866927957724771784218628888626981975317365814060849321097191093477034511879680038307996010343946623088291289496257141690066376831978779956375916763886831053235338636058709096459032446363417212112317950741687316949151853334101449172522917132459632014202172332008426890386842348089418492058650756983032109786413822470131153594385538488605596006309732882192324054004591840181958705983260377721668240464523065680840035719391591706387868934681736641158446886736617217741391290525335205177885460659913569115819832307156508889671506576326245637570275735760267544934605542279182126483692231140596073211280993836589884908492273159133894039341017291170829981082566807368228689267071296614594614511434450595957107392230909079612475809426283843928714572169124303564963769168944099610279865554914315328431415154741880742534083251681561127720709470043648168083251821286239474103801828993306583561350124780164667469668077539158810486180624420588057004142823735667530125876042353603170633247370097732011774931676210926666394127843116399010998462003953226324118670504948210758132691686881421105458560044592742439383565056296139295019221416869367956627414887687356572112760695470663949620259781658788494686172840148169581708510079355543905902668014792603717729453759011043023775920635768726684777015755143514846114729383908259546992146011585357461642600601011495515887435490499505841241533424213323548597806275517297472404102996823285449315613428050993122840759534451154104912387275780945942330647491723004297255159067760471093907943500272278645140658761787885279884793122790825288743767681514609930921486168696942860364889165933191545800966786992403296124543510983191430813848898949550826881036355714297312066934537155855323042738191903537970537259256580204880430816800142879043263334110125118972470764379402736429508773986446194816949667275624702090349470566921754013430142287958933329161109751549902322559166825358358858748020655769174484366494678863962446077779426879840530805804816629598586810299576797258701088390732199057977469086949959675470045113077326412261450508087639589214504729410235577749223329268040481193264515655785394724578448912502585887290020934545825063775447118208427787525819566700482801997646801393720225354859760902948510504183237656660663879884418806266432238941646046155959281607857301184619878792544925630565194746385539184703768520398099469507476077217490982839411501380106947487761618825246038555991389973998227847913499320875931418965573073099535383159035142910613867204678552544231024112544502385034673427327911167233152190900392197560064880376579621413429268545221719143120931302729409780842883995177419356999080116962183215279020574469536197462288710134383775421808387683134521819803950480431144262352199869564182517038696983021639910020255430152916958297811717930201464466781290157765481679173089710537246969162819746296324416889680861129104239005184315619725573849183711866230482391470483496685911008985587151281168717530781033729814725382691270905539333561570659698873106856732943086810985164180086984385966703237862825038513303219616140379424645460402004015025975624507628171684259635086445926285639120595544683818717715346379304510325412329244153006796361148718343416606483562633362585125016087504249076094252488083507021676735271676176710166184612433994238625215130038687494035805337464385131809340259472771462346937401261738451433376358884326602928148110942211489798113083221188265955701656914431074841262433203087457706339102471492683176447429492946210456985185966929972876444929732944624080895753441627631635635195180917010715459823627528768557049352567607282210220532820137006771608050775140542488377487341032101919109154005899979535601104696798454082040439370877813625000834836730400782289515744674849335389433999111685572006342262591047949836048354528700801873699824999749551792857026300179547614906414284012990791504347525793249347716195064512442768655532623983683373743522856692544284461269247595266796202597994482914304043641647286099439738041959111738286716405989906696126318581750438526263667072439656927344009274964486993537522249055435216605005399001783961103872496861042696272383064845235902047372608102675077178374103261467511555546716674229446075975187897607799561281925601200065174355286696054693659884322112896112581158391986550748247858353138146410975679969522757702672295495032533930021388774067382965157286405302777440666420385394599184763417782568862000536700857219884615182126340432060476234275172499322309836355832298391188142593347342586428809261375190736331544990699838866006072391093950562390506751938949310002335058459774977663162790755859998402726391097960653510089780537888988304264516314913146111919709986537986463803075449825162982501805192514364335151001132369597483765225692273385008810613902232021451010354754553321653731847425818067913704207034898582540379112183630424895056105446198839992220185949453241624554103155737641999527143358602971499031450676843128307552053850050036522483111614276171241840181671215307029985704179671573918608352864277753772105286677717075122106239532407394952311430341458816695506787146806910611867464498572816085591320436511987022604410796617719878832238507625358930526991367545887733768496205254841511662280728135045858633559566107680348734825829148719579345996399046419288164345207713136662025380414717209906056354918761690592163672848214296965477388434043520729212802045689670434099497707417475049963922628137124356536237753944372216737758398074611689847291485364029694219529213958059792148290770647136488425289568899083230900792951383491357242352702199757961032121238523156858484912365630352441403627860101934702632250582367477834753018889743099698572454314137712546675685803972486513828389298864890575346915305812291853971221547893097910789371761521807632261452543951198073457205180407103862099731505517511166925749292432729753147119899459758136693255918825297163893931591792456246977351883675372314032964003609274322865013813518974267412993927949062315387374844879461815477839595529638616373568001448380802898688528560759357924156853630434088679555443942772099195209622824076645110778948356999978459746697060149317507815688806692024057828580896724177784027166157840150605795496690580054925255635285902057168886487389167385057789496149751602206158927928870425560133764729921076823728681098683429168548442635604945827705175885100012566620713278301291083324600171601677557937095985092556081539967486820156925815238348952925234889285387633836346901248473742104019719471473901965173425196628652749089267853590364437075832458148831961865462586646925762034645283648668787521665200690199293183122195233135830046064749565084712143857377902613201146576736291225101321577620351865685707326942734738369754187101242703224602090379740616410403192626768356336031745036086828926722508760375635514037623175411819123354661746320426619180479857238023003782498060372108555443391250408384891901468256601601929841922301065324409783058517020876542901639943989933345392950160736007517188245179258520581989428648957623185201294853399432246674074995819169986261860902558208524102711427420640265122067115024740558191853808234586612234323975865734922260009652914048346123714898146248875209312538393839764458785385717528508817726565594499870172502474969265579972415261950621969631145838135890938639964565711033919887669292096276688184873666051261640274476631647958115002821208670750663764247361225318519931656615040441237701405166931405343294059715928806996244298837787313411636087211761472949308376126665845703081322661810325453858492871656603994803060902193279929254164247486764172288352485605893435010091162432332799234460623103384832023832110513535128825669839486700585687502642626898000146431095926517664687728832814229827075457166231022488198273945732587686169979176411425828027693961251233093520667601481075446931577002868316741818595455609881449939929019488123547426740127907833090458272546391740768800654255900766286566937474424946098187663004842272644869397851223157761909091790575742275780551422369827225984433700296821182153064568163248848543124268267626500305705835357776823268537809889413833149298587885948199339956032652237812721143638180080852309758560063819445115639023438510825919072366969549167602667891755901500518566161553432338375327643421735844560902330369494988690324283940624291356584285070489820158010163231337641875221448773649756311004966053923529025535365015025696378914894479601731926584089088267675241233027861303683410969381083166024635548523460873200572229277021870846294658718040936400703333506695282878297175097640299412261470384557035281733308473369280536598692993545028792658918553933850763491984869965929198733187368138163305367028957399931240561868696636715339332564883919268639084468998780780995899351586782292681745338148918728934031783472096989291756898640073084095781792407965409000073224785362157125433440371946444776407499458486061814669190196390228724071851618652595825612520760865906095626576864729888855208014107756500661633835434317714486760354858905062660049035027092289590250342383882170618850338144136041389528943708687693087293646200369691071849257418552657128184453923316994799143855555276566304607807137444331211861394647871457995858369957488792744655177353400199843344698659449386305600294228369796123123178730526714806678254825313717620988254385730443674511543844988443966291454058690765834253989100098391221254461303206362730267962824175254868182547078804561726547543828491504854899673188839972278875203289965891956987068469556718338752727938290562597442758838501472962805325621083336908509104722253066888986695027349539348390771605180819363949004753304565589325780907422776670587401145236990118002646914886791249024729153012211380597966195729571820446653450046969406103127631066899603787268767286010484934062055448115214303479342608574915033937156471058494425479147974720138101905480352394868533023623156671908567422829549029993707232963119019695550619633419371340957407680764577734336044274846215605144350462257362366252173970022622069350761244169247375156931230686793143461125332063668338689094414544748405737362376821611292805078301638729456782231358078645925567946168498469210459112820795336977543555042876994999534294630065035473334441914248219341726414993754485794376603465924740989825222323296771202538859955855069729642057635334097024941130836270609205205584498802380479170912340928051130175074313709119784696112753899909315979139389332385730289519280436582751855371913581088084824200558782612553188632247026346094530024681614522813464969941610801806162219190120698518839165931351344601948185427068639652744773786241825589938342425320105907212796850561295190693869836907977098423405545399584401721342686925773701154039226730814930126758687771849022277561049846403337008995221807668657806145353219680973589934259544138601093036324024284499465322122302743227407706879171191350812702879540876396386426658697884793082774827891520825669149376157031157180015480502839610371629137847619930975576544054679635554762221790591735259941009641986158673888788886858332551518828605677095066004985900201856193416144777964084337964078785673822783064355602550564006130601051110858871826947124510261019965867011613642305241874755212137748464506733063663699695735847858585037432645745856300862711258059407230100492288783409695791153106713105163225165374930001904401580739293729350287088510434543174069992035524032982187535278651316526120000032837942464826112360708102368658671314523165088892785215522690881818301239061388931973567914655890170136905711700866399047763503745598926758245728948582676589330770470431778888581727866605023076772766519674712566849267125440044620502771471546682472250827300865458864655962183922241071264856206182973441213319246887761734702952032818337082044124979279787257572223047729092867750684341763072456206104402117674329769246578583361548441477678634242569277998193312151488858533909030187910215851686934640622360203570442131368041551837045481555470073181954131455849777856538688596649157169272291664776928888779446773015850643495366661198947320473157988515292907123843773545593150939452351141888767866685978537997864825484460557645456894880652127541450780882049446261346378968939902828949564950604562425726329565505631643302465090488025293307617123795202936775386926843584444865790643241768698226138115149736698723194003300917469405326610296927441271945925993750624701088632118363146956361254509888055329388472653705822431552264115872998858563926646881649005365691244251690363480838810455698391196543678393890806665242371791186410815284220828695545447614819170231501002882717038671793528847100363714252223759868535349643499508335122526708884208477674967370642266226043877490810976646848671336671923705941756166429855879575114053644108283968164357825732857870408250871334621560041023736097857385121883947170312531661017358925504752111905317498197467036231248385359658298307362861106670612513346290579452445814246087791190579809836429753764196837319192628336173991431240523148100229262275812046880899700424413872162921665267355097424898867242197499446613007218925242657455131288660951614573522418968597595094940258829001963258742472418828996594320815287154991131776739456806018572334008311191910268250886249006743802725272150355655339226873870290076658505954885464033385119703338095442909195622944674483957781733080736555853420859954504033843513861880388913491606191577742621487696579968144856860626070868321991813077441420844163809007381859744529960333401251597109482540968097929130622616528115822096389094102252661475418303270066913597120267664780799626317714200339118272680439657751694247744949933844948469033154024901606115280478231307972231470735763797563469428663131321024466157622952177597723988318647048431209215449317403529217414714645859228361483673880559314579388388015298688328535649439027360949397154835473164083636665338838889069763844957723699145583840742038900872391952773591980979276987672222951706919930699895360411009763499249056575114731077394008976887535751807240307924841709025333256657991732029531840844782043216652631055245116571995677726484569266564641018610184816872376808766657895429523389097540366771426438271875425212035794050480046396035453534145800435350858112002929875095759155034579707579791856071909900647426652317584656873082902286462928121663878977111118461499225499754051691003906692231373537642683587931389320690831982357742767154547325521642788962089499663059121581491427849413013112975838132600634470029270104242750332029098774976619091377623855949012145202300177351168022051986640670167119409711388227108090935759737542700059459286111145425619172172359499241971589858308192863710857325192017285335581283136762728102484811966864595850524590234468014091582164167418630875073907543076508577878944993399220044053342847041078864144213763806526328057246989819113846559883723820890243481716470389305003418612370427165011705394614965267657099531337973889076716777170555980988461309687720797596641644767870610310299457798241241992839650096009433457080120247946897320219814365013245461249672732762085525035123686415863179415337112256374121264497804846931718997089003964600639454216631144020698131031830691712698110098282303064830326608468532301203524599530308122230918160865157199765580869259026173895050312156146667124642497558755711143848280787166029906912478633791559922185567578642249903329686966807337359690932974610027545697585189723431710417110480706870622158388786590194964847831354414181709401004900806075869600391978894456412217863144361770364938293076169687020596163876180377374672125150883622982488399971095409969347827209736612369010487427041195701982789669497561241280772606041713262124919156146031094665175863265911423258416810388540909002460655499436172886785774273349180702961972477004480480243638967865876035760352483340386165154103812230912015844074070752292235493052675160698744222921399168609132510501942367090282961455630929033525153952752136252924849855329603872509608309768007948691406016541453085199735965434627548502548288541417976187025629857118956469979806170297847552814012504803517746531140734654999408319045762776322025681201903283700422883167480450369833965860718741561738361556376732755075019861414336742362546096692653219157015093304346553997094553908334984323869783092492909600691140065898763850428015389336396253929390180026280732491491755319554945865026183308134038499760325370706086051337467519624593738003079225672587436712470020320775675488941041448400092894486370213862183848470786602169280304541405792483163471862000521544872343807776104078631026954938659139734784847534881395194532629718371152553676678684850976583896194328182729142833051028183238948756149102823561511713544139021818735652536406242213546106751549584901985466313561483029180492500054039528142563639609862335057400154796660149021131804436823875584058236141682527181831283866931869813599688788413368240346223511234418942155845066544165968513162237329181007921364131483566711990790066884001436977396256319423828249929812973886704614628059928056391845282983032176198080973600603700080641319178580721222151756658085646420526565940455581515289708758933833213785580857026939257578778159937471172952997116655409027770183135177127249882469041710650560638836629552394363455409600675271399262677110002156493605396035955203215204905823705465040583429844717864333537769105746617867825842451741156249409992720679456007832680655308638968877538188198308231180737491493220358837317631661941293244225723552103238816749079292278447803620542581017450207507294446431766584723663393596589989427533122576040808620353508976424186176693181882230802171282225021772724791110289055452245461752518772109399294325561665444343713563352441519291074095009866662617729715499066439814694272534139402186959905418381435083584382767220621697108176925629232431882315757831579360751590919737749842300259999497802459663728217338050320905144558071370291713902536744927647268903879681886607856920670547463717753408089137643680471769739046748661176095571361855127854996871355179118553790105909174600964954072181079942108738296440378020062893162333005906718319045489575881212460798311113592766980712500760587734054604666021723969785783755231375362695683644464174622303811938110507558432815040764924993283163678833276894050156793260994821384142005740190305219190832004220657377734177459763674468192382045247170741891560564259265649274510403597147949801681142381652507500807200764438714626808929265289519815152690033746962871167979245308947799851582524212771362341630737751364013667941153657552758459198070492151833986660944013767138912357929742677640174930019229471495155466910957482114676204398151269512951410343712642066077644053148032202772416064299034505637883791061962631736347441674273128317532787956530903242243686952989964906742487543709576717976064017562066880153271063632892241244416199172049072896364181185634039951326239548775350906248792889067103285384402536212422032237633706542670510509524144825264255345606500070269609833653435324846769200533011307457997262069263660759597796098048734229519403420589893533099155912132460173801306500727017394464994690608562850974667245271536809369470077810466742562408398798264697466952328410532506947850583174419636023898616725676900515435106625615047651324710677137378715825858580047726023890613535962052736717482262588527632521579870894939676240320884440212746002136366915482151191828438774322021583378723867982659583173042951209348616788681087821326871913393060889204692068854339134605808735287195193599021921486693882359340068959139325302756900719055200693840005013201638049909272155900207824295475989249336696284941063201154193541684880125905423837375040768163763664443939362366151128059994924120900057766170659295783710860034504009584298977275132688274654647689495247865381041759495378115623318279871239455651089142028593862194907045705538825777677348737413360091409225277684487199763671761308813283612285660968373889431587733764495843403073329109138826247091789395554791148958648385074018232910333535712593189969905857001619123304788231814350787601311381110321841238595616282998795308949268512739636570009425096341497713791746959098867587004883147559332226251717615207599797250178767396911709260247727807982722870328906661080595355976356921177236355559729297251428551877977304720713089591083906186353798022290066163770300976960478462505849526030631012551206311773510443512228828032291280316989455414772575329431598461712152078294946005582763539634756743642539307056432080776804165567586155768941488216101827137504554447133863186645610575128977224407283695958248366829568289968459319534580120422033953717701455847379270837127351804239646502418404848934876758271299625084158910382024796172747217492293206511196836858689008920188492323494273604276230121547315505971853034249907049053171852421312531643126127887158501979482376228036188882576347647694613133167555702645244893649051004438749844709419977511525173257910399022176240812891910144109945327269076947299316052254054281265056750960916254716565282316712805958212886784709379524367057725842753566758764694991140274611215635252416709954315837355124837982382252401678385077402777870660676403541259921475028279922426392601952947717498014760562010981373396650073424708772700028722493994886897208223229537438716116317971215957779984010388274359799619407397619230843243975956325209606439724581826632799566530159311135968187802130017968085956706456180806113857991932798514926515697010627792199322227339409002063900933905146915401865005199587817827591899224176387412680854896717570409636382468958283622303286685139552336949301783052194367870893404481977781473955748637713895893460620256927329829067638451486873345160381597624898678048847377052365519284978935325968085384386647999951726364336003710084027364854801763724492176736947227407269372665078904614763333611011098402398727495453070954685766071516806383319043359492390911641266640559379018347584637738282104088990606860811487436007501812842990511437409164972894388368890610745036731787565491162584338115043034336977634133055642754062912786178937990386690727837731137330219718691469298849004288895937391833351113308120842968445167707612849066595877930548312280413244519000847147444164694699371646270655271324503657840944909767797778474438395574130007050392463897056476006450245246722700171004956037109242027094020449596748176021047214979093940512151892094670062471339930337026056724293130314640005499607772741405359340317693145926012780964592288572864351145100757384274088849380873780906415610650159706752749206318293569650820397131362896935844273166093301518549145682073859628879823238360919401494882973407926175908007068996202457656188173897746809607930901608270357372204939684304313684972407027723240511381716285844979253383386081779977928734659096666098512643887962731086669095758495522077149832094506218042015868856469126121655294810503612224758634569641207445210146793476378221640054602303667759515397525460940593551801146014404092965443270893103361934059667578084044339818346998978010658404836526693699666212501586532919563325296762202027794886711456594820835974969277053949680843746174472636294755834287105767030976152444420601338586828119518911068085277486721199423670313436235950427515343348143147925692411016748099348692768024818931108985835327512131526924887541254356395553813168452361376510335917155803969693045839188965819280612794279230764828581669847886903048105299561463596153270304493984960470347971719289720450011137274543118870825644152254165281242174267503897212286866383393198362659478548329474473404659098565939610548157332104228204898957523890828986185973880104342231260705475167809302132081571469679402059689330044996893426500491904941176081980518108052959828335497303286000604422332947159940422159091965981509541902294511294690342879053566253682213279980255117588111660846465564640406486934982495134047653564151761691671687773403389940752477989362921774851000900801206724453819769310755445687072448241423419624645179841572512961895071593768979296889364071682885545586911253855830512138462889601530949944027548471209231105394570142117118996354779251403879968896242575473597349959523768842024443731143266250663130258840638954626941628359483816219230275866752402396499222759362497933878170554498474958395015426390433198271160259738077172757820462592269936572949793571552172637329890663519078714609350701976689023801379114766050725786387974278973209275917311887589667408040029275413897651716961134973017158656226850790576384904886902384216564556520686813579823748562050232496986418873950404271356326894299616975138551533246798860458082873233006811023710792868436736468373514904359498663219151265037182171308974156010423204456895938079885996493899389245024745362533393205534983482693168469479945093335296878597180336648823504869619914114158981618270797825968212838162286371270484313434003313304215043213690542139892012471311568330317023919499993141987664569201899588554395007521931524886887669419634135292774919617166466539917423921417618609378633883283750460394854260678786906835624364709911018552807021123796057709908715910748183701531625336347929037108127066748852169494622122378306249189842883405706220573154250845583678146041436458922167398179410191022319527229207856729372801334659763396041489197203663532231064529536015934457718748018660960130896293206755324702644825143407047418471481883302876201587702584983220937314731532853260740529129953537132419034357853355971521849552187823436783097914750357254256883501880977226168104732909735453112436735075446243817456206990660875870688874348721829279164893894535187461645371650671970672268044928000781722066402279657270094651157683018469230284788482342752456642745706560677861024600621898256812651525833230909244762056005238111729462322731303704985298297468095949351921701921392027864153770176586553618615125425494676937247885281751678736004056564692029228256760532493542293135238266341093083650791827380825743265258097628829834205826042016067867285949858173715569169361955297636930357562174352149225992499794503723161873562933152531962173677106124328273023595313605645196212709379839215141241343868182197072790227459064042071005535969342691511327786470805723405662524531722675681995529414107264328621127768387619719111208779635829626293887132723373920798531942193419236969125692055995715775277547649499088571770132692501774860078317985294629652109746648620154833479602619696013967956358329546385359703734901059600678061617121164719316978519047261478334128721686116236100622163613964249241786187288583224185236064497457279865879094054688033808901538596716017309439687391794434678946593376195903361185297505161805353262292553196522852794259099955371308429193845920720723985245759649802802583965165490266852859738733501186645121247159329606843804938741826442932795609457773571437447711092704545020229887332946370009079147971296144386633458178485421770033183397537786346528078651921835629266925542483785334576498642860283300707878866161243939330373883146301232817581782606268549116640108891063523204130417547323818511720164995338394443620664259881405602920377059454335702746048983215234213328491517181182562706552648741896789567123778570090216388638606230098407592473226679296688359765013486178394820731725519737346402649125325035613859891450148272923967041546991909644606091915108850395862142388082232074394375499151096342018369057557005046496762881469620468291640015953715603547937738141824695872197471631887431634637949290685198642039586509233026394737873535288966420229927895755936904313510981943682979749721995182748655423424174186116883181654128435906798883851167525422258420957698789004380776525406931743844086615640135094703765450893126137822339022397717588767772635449582723668167153918341235547376090053927259118504507787186996908910656893220282536028770780586058821964935255386040452412962243287873597215473071664427053928343226836968400551635478586482705962490303366880080217997014006607616736409253307685570958281561955938887040565991572395772816874775189315137778547084630791065309440407830033816711327241881914210066611506438711590267839406972333160830135684518586358758549624344418083091554594383739283898853759751806126204896973794718670153925460165018174603496751921588642541756789283814906436039777301828819813630356692342959705665738247593513268622188333683109071225366571191590006059849793670923477875939007185061723164264087396233606087283276954989223827934324595914711732370170895836222340033990616176979922066649166459012567285546111596707470780059013235108129520191945993340654890889687937600235235945437346936484755559623398991234246576501277633689926245364531512349506378640237242019160513696332091308062646986307415826349775149523370200230233822927041254080042397930012570741132331471056249927147296814851393731011213597290366096314172150435489445797148285649448950974525967610716113613595353211056268160508260004926293125868302339080209366224984013574571024573209014125094327944403331605801947717837429585647927811598194322028413083185739917072875720903955338404386237658477310673853513688192093396053336494907113783593695490875761368319006588219770585098942220443433910099586763400825912743603539710948768965439930600947577070046484501492044705956600089256659104521059446000127861987215506636772348753566339533186897470787267070654431878351809379912716407727949759579178072036124343081126527759743508737710792781346221033493246580883408923893513407857367153772665165503438775903709738026638634921377995514427436394924908256455227886778049567409064481010278708005609733105909529187590760660470325964443119641774238408684545313730880223049751493655740761948636638660238678929982795985621729296396887136879258953750309058878369435600779875102694469597099717048149765803352644713246836226773757579382093007263515795110837421823559148826941605292933862567258146741228156467324505082130664842336147580030085616681768066581923833352625979834894886867529058613088706599159378246048997367295341150278683668607084870528001752521199634187989024838357653772685416286816932765526373941195379128218078488389999501226569597253216248475184026558346088492557696588434085295842705900907759876416494008374779910825044757813357109720405827790878889130133775530858604036039783505636572051815381616460696150350435962869003407160207455489332321291316086748083545373093788613319371644213334696276643903201480422310827093326811696397065030092906647031561996504080124441168580711002691063576288408166673989532850751508468373828139084095373053658057585686102565168435311630743861395737946302656721961212793916616356077418686960860286774779286229000331376515188422888248230395326550831051644707920559346803629419311372758438368292750433062935350351218034881473735629471240438631165877157183774411647792103733779074703512578882988540073697976023095425839573309915619640176798533948383969833881110525737526976813516363304128885396765417482509301531535705947211783468964048129640295368967699234103386728913983027678834175564838372233651746076428597224723372598097105602214218049536161373673747005865664418219505219167847179354508058056408703708870094579770247874107391633742604625732577288730136920792987778556397853971115557791406271495184825595277843559867933660753985342779466521944065685532699872602116323347913898721456167034664115396137375296436859124677867791424645328296415883664992262588510205400387095294047079125570061981168359168623416794715190017925544236908372329237096127798254850122058967941909149239918466822386371880710951076296192471846819350727732712276593598156700636740804324558376600322216256273690679681073479844896380098281363726280340583240592215949177232486374251358626124477158276996356649775590490572022903631640103810716357900733401568882267308684346770547122482369767668884584567702746011325237629749926156744766119758567455351238152181255361920386378831826662513050298108590327229259532801431552306707191853035851261188032496398674748569451031713106404464868476079066078775202260762428067763927319284709310845701757932096656716328225445385761338363719942159852423205905011311251970385186017551320459611475503773143654233177038084522514804869099962872047287185245862415331371523161538800995112803098041202691101221449298531482672753613581251840294311271641727409340584115543557821093342680020167173117718814674031603338662300113733745335270463379335412610671854928438411187704887286179203608135135410920400509838539593547730855122888515819740005307167918050680707906657040943586096316711788077203229469190822069840844389101426847754092548996268223597533173421986641148150406571453488484900891266577124510359451980896365816091252539940910472692441941274612223704201683075173085177834705521420602442318327311201782869144337067901199311789272272786725116828513491378798109452898201440029449938153425694157543379448934716457744815137882946332585614569893716311542654924037947140022362513313950706174530083893871020988584395188166773316686533903406292007000866854140939462284237421561062166587794152636957861329124503778484472395431777029845607432033922303564652704079281471708646347854310539235785383638863966955341795743248509344485640564879913223874375405623657976893179315028389881955209611445537474236198714233373816317689927917528161927840677362000885579181272775074667695669885056981558115154633364365065160443880630615175148703807222309709255113029207908386440576079510940222092852996722129505098929015520905406905112736247157668440399950365839125182912801650610192007785427618583077753770930433860141716357802692214851970537688193881183388061116978883013341222856442707026413533454042345337305957994053459905877024595581746238588036311258141825581256254294030762732888247442005374297872727027350535972717285058004221720307584600381807126022311949145088696926413316664789736193678076255177608025134631754194187187857827130210376947462203004006506296437325718206475515829608489863829206790534783016682462286499637253657429145900331197216110213975591728559972073083626243941458461949374192877256909242545616422795001758555061797653860920656574850958476231433110597893935235167477538849181755040169368978550542219642933459290549927401611538398690289780269706670160710821960144822720779075271281492029753820053687829049594606327100008078090938418534101137345722120446809183001907284774450285465621529125395025475354839369282524701180543497231381244538233424465894727609697136269395130164668449637507783411800703986253509472412055049197851556275759463742146145241956799667009558008261035879028884901859773986778836211875621216491927262429120671857175916001177879258435060313780008842980124646103187644516931784601416841620017625752098707394556532273092624374241800623683603941874925181458717966692767915496946630319481721439813795488657259103388490563034032916529560882614146710614425107260240446938652776115159024059533639143405928953832507643685868518479536319804654846831726804470070412063273887751045936634140226016614401824255506565818224825401298920879872596917098709032779339642458745352913191974020087941638036378830181840182542080056270002703957653886032505607717481631878485672935346606886260086253152085443246155853308608157624567389277944712551787620901285248087765450937758039197413089899180046168124555558155820703977444565655388040056416152345978304975213427616277028222479914865916723700686400155344192960014751674361366639266578230913936485675885987993733476939170537501038109314334612345250070431764795152546522136090664462448272564075427346688971919118947332176859820145898824948165919619908752415569272074897307675900466210044158959323291305347432870149078933568150495472475404181958023701078023850283123039647244618442764247534957241249799132497720899214549024015463359126013265009047957437023021033324618736945944293815309573063231410155440694704998399477144966705188995255942623789887330125200301213240805279881700209878604896201907656820681170573855673985978426927492584761279644486193372353681165206325005283147296424021568497769581574037488581415590977681646825896720165747228857725758138156044863274666081364568352176379170346114320531821896551178860891482646037701789120391771006536297434832396206406783953008326335639889702392410135171163319271045439016003283072062136446408922702270306016893277027687739884715023176793696513731131109193005258058761006482952334408672246548756227017875174273527684758158296376912529353774134046135480714979371504977499894554542338457363643334691483302624777017190616558699096835995358121382705502641540112691207755988319553946701594787198650013316701580079830198980667290508286802406861487604669012084144601632085026679284828677585837942103198134180306439385256344157237023587919646499509463506039642334924485373762107335141976618145936659135693874196949786970966468592053017752781369616232692758489512347107970345741813016234034827602425383535683330573767086178273310151063305104641870570074948689670339889585123280193697095563659516620989829520157660738294400087535259083184400905187282958949800510958130894812380795357880905581644099337493356152962033545056757145252573222487179473307106599879138465148566789096276056233029171079711895727773001381637283427174934920285817279927565910509379704092378397079506098830966120739324028435362604838693697132098895633107172571250457186461834920092220139195832958723258030851553285008524511484093161638524562671685876369197901914339953666250529153398978807954513807716908103436955509238488487044685728245148694748204810975019028463795272773431917711939468946801070654264761352386563804663708309647672066067145597505973032946676622877280266456423553547591638540497437162257126650223043070506455418951562283642929954510922328504866245692799408687525276549817917222809925266779818124015661171798876893987952674687219272670223690867120173105636266287870440662828853340114585889311172598853249697653384514885448509623182376683784539453489477853984014791472030611191444393153679097941432094550805299567599529182166335915149044568491212159997500965388949443666614616154677769421296867114839682700743347091548899932586643087477331106628537708159013715450266774010313719603508604326915147459038051411279123463173051978312431188302173845768371526414646112251673149431946572602693763985879014091230490355518503412694568159807348850026376825161220907103397327045769896433445250530386250163654938155549244442236801171979679892394011900957362709516178572088537775551639727217926544397793245643544288847693086698256421664361242845582274201646415031041114062841697450070365177586958737085342750625913616511174414228100020782201750744894161981602240940276055647091931333403455361548973899678817042671235700312155176410769951649064610611328277754352711626470145755535660456661238298057586558864610808962826449472847262937595368560725714224314059738003758402922429288983594004351970280511747667191701905295440149106376770021183600604885726411146972480280877491929389697951143276200265865328701983293995880054488239951778684755674630434581330225524716268726311657616512936510408181853136142387060567164307700287792820717281069406695126969310575853797165368780968255305077115029617689668991317732827201853234453793063011498887469804867899485771406325610500813469652417224671939523223881421340128982615862266507609978602129625536132166055902908455499447615975638992032471467579454903535252771285242901255947151976008040851292795663447748982846192582801839341751903670290964180966620621212188655452787960669560465316690482903090225435540559244709057843368353556156589650238343221081496721208249285008321201750915068046634020658532822037418539019112583660891407018585687347350930504984704588635237508257943067596354801651847399686310957017014308415903450298716306592815911508728143977332791425666454809701091004860523247036304533528737549784765093063695619252934840750711837044414864261239449389917582936330107342800605975208938493897857045536456951308306156691347752689725801490863397635304139794953010040320649010782971951474158984944874170386429241646820647504240130385639637889127333235417105637327243389081561201088023361184389791626897274293655836390704547620356353867388798129715861093779740318123254321077887230694463760392434380958984212159751568025783236351317855270406312759270103506901232732027081697240417567010606740503639866004684315889732287912664610843276078719302650619389911639833368109230297764065607465851437811123069170111130714624897767843296138864050199634789242379325525604206235818500419308874712848118428338361204400789635120864761796147085299744218766891085408598123401631416716724409100177730574492824181341349896673420745610959159994759953076012566254849499004955192082500584838335400836961713006583628320742398444202951087208140023347891598329878486782048989237077201752069909746246590819390992115024584704662491173345039907051648964407546582724045094376045113740476803106950529492737919327696945470626735593001447466418753584748019087697326537305136140626680678336362024190355528595528769256685734498084504004337591012615531628753762629906120490725575374954192719515641501069232354623813682623726826138399706400264874230622159702513800190459281707813511486280459859670206342404657694445763328006170542119857068414140549773200141379196518435056732024620476408449315107892935220459456240018701735606832773562781124267385146281659351935987214603770810464376245952270328235974741283357186984894188735953409618536685530676683912228769879971469698649461233089195205695781603067456173529859843841888549345095107093493883813629523075890256836576357434619239560242169953706546218704374462237950181418334792891954629322708035285988576527763620867121165946891494484360753526623060165447336360984200496704328077425890473650107673410298300179348611859642852669387282234383540354994673691119740839729745438207746379202216472603918580701801103743448646658395584318282517796926192370920096726819350535823255993812997017619828893809452424680149468753632816506419678053700048098979697934126595437977913028152780619290660958514760111794484614822375528460552869272453190953219299005149344244511795439616454936545964530226458492433048210603757760946140593406313171762754847443184953124101687672239951982542909620748356257028970244167692204942442573014990596555231234487445882221580181612839998259993220827019234427153165064284539765120694662784436649043759569441307178300307991235708350714321138174522305588578095198859035422192619044972558226949309763216773808972303975711724807990713588093456982486834919698310401061721895017770154881255472122151517238649266980590524859088694173410093205029095289249507683760017878167141844162662514290202688965824333550940432501690668494041937737545714179281862808745088778177320410297280115515532465696307914456421341963853912633737763953166042479018337115137891354106605717883008068876466642798012278622950149383122877274855025727589187244012113410653250157778108701957160552018112038321519322241291149956354544582049058569027557414827151367594435933757952888903812234709024877280126405386450175191024983769853468657403325311852682395457979897139932238905940751124854287916074152659929361495215849272968752639076388928451694649777666334045171400577707347690033762700945054061496435933146397978048481572770500798032624517106316332508474490897872157767552026581282025424026214384190707090548781089335398272336302392452252895994539486864639098200288403617258230753583584969543007266929812172717761689327993599788709104193827999394347275696377608440289656979706563882528919810402521751761369698037642057323962778554086631630282277370375807644844608207533915477826560822425219553707532469707257416217306872982826554297609627317781495428698322184554126351879411513284293988728478322132548032371693983201459419694022719636144937894648817697231637899777824212093905468685116963415512944289827439320876739390950451098856943148076856319186060976531091495367883761547934498386513450715835639309758895697944341058852442838111948681290039155732982273726209229615117614039138029414228895695003700180996434855742643994966953051262357656754350781860612725887376184974150063859476853939953226355918794932853457373846686139395205254769966159430281340200495620795476243989500774302238527597437528766736871949374833270999570187194502699313997913567942814115282868767999102753806437806994290550976082350148670149806455971951223961146402710130204478519149332351673526612015425740882376327098656806846243081509791925283531252441125753308480359806259020564908697268722995094001621861140866708853194046416794251030852224095282289152625313094048523379992507226061789244698168068465148417285665150335571328074196982815480932784722510787151815465417648006103212173440199083597349162779960349499943966297115578232219854514903389490056267784810168777036050540970202840570270869782788770308381136009976983328830921868254331132228676055256329103688080164718192193296063213420891885849727630054495713311697507422140276368280593017173881877715202324712211216486355151773973722912198344953103987240244201950552843077346903416180102019089416021026939065412257779385085936602878767545923885619090376118919907638800442645419974346229393779086723733018084460049162974498974661056916049414418931400562312876871721727625258007233508501912422623257846268830671597355419136478064529176456625895654556051725045765319759233795764416400742137047051987730749317384361720859102846082680556105014299339318797330796449848660678417477238278034806748249144329266333648241499447344582907524914739530634272071379942865432861905566562686733292441516033140257870578525130851333464680628055115573262920773268055606875623608136848023448902688083770639065456017210160748995466574936434360582972254668725897014639015022065874015978872803354221994337903937127903225524595699123835613123686453712438858312686733734161352681791877233403179423707263511788101879203608540576615031895845934196123930424329749699523528622417009060108054921125488936288933192723423255348637162627929018853382621908284902032530415288898963556589628037372406126304231763040863581913477211322949407898594569637562401595159441423780736094263907959072802045066563028557521555330368460010174531051620466435134506522437491259095664372996530740098362105819081638909639474361653035302545915982862456475040376205948604131002765049865804508228612139307459588049862746206291738327874035882274340856130413122070995557337043269373953034168907022928206825618835177751393634473319724361561289601083980136230710150762932598220659901343316847086684253443251443901054372882913552584134447960501480282800317370863427880848429205853669521322704389273104110267543778007886041000084515491425114966691476340455604155614613198846302455923087055599989517602004967020585250926672912995677664861056212087788219886828229305042179141441933176339086343957051131959674470173748946746243992623534346654384384350265103196900327897433099518842622679033963423309318757033589220177662179091320966429745205440012686230369720268615680414467784339432775516554110179328564887095138236382389742262019624425490811525128647136981360818666488923102086218184499812855450553945015953271476448073235788326783212325547436986516379692236493368810317405169247974561752902097296297422495871975450357566175087521245722138668039407032166919471819145731697415069791465354489777297393081396825079394485487774793749698589290858631890574348340036364044244837877955448855617975357295865564410933199182656812714918211519550548636341327410649182316412873494844283612407911786670332357039926597521398961591275320998812336975807698907308061098903244421177526777023006511430382556282264820458814699160004021879822388827430359505041040893970931816292937838696485079251900664334256816741596046773213570007689437695042443078942905390270859931394585693553465659362915602005244443600696279264346523824316807193782630829481132216631664349980617530400725338097578057533599112810793769146967532303861218663900545618440462474076441459990565795838881355699501953397224612841898129274093110581908592705705747811087995208043591339676755988780619164392748580625088430007905617612990378750632454324625138858070159779343615658447633052275478331157722397066437871413177325210215510340008477808342929022106528304991461517431451280782680546561284127204071840758841103583924442204665740686492332875729669980802913924727955736457074215900718902114185687831182689580182720530296999418217606466809377648973316046631376828339659420991977241535561470802779490334168431660650228448425291174777269790392139021589416478847983224703499083783786823939588864858952810092851749640952575420461918202348980369905693389617722911706607080288055277427186948522588360036608799851964225252281436950567839623751323409287206373865694489251709405293496257766019376815679986153932580887372902920124192431147994714721514461159941282789291133947955999776245037605988481201555742480260374788087178887132222676436707635878135149615590341186098424351829805336916267530365032183244225240632439806323843525684430129497394497937487954888167660230918176883741913912250167581366294526229396624410664080775125467526084891145210880157154145610627899020086201710154697986505848720492497616502104286896394566689639032205798929199786982445441151629658019951954374552821396155336969615320873779320026849987782369218631098739885000650349066754371784012924470533303862592828037402239728090019857367668453993224977078118921138490228950775921731885416836078553686473570008811602581598650036766588472529712907268449244641113110803194846342570401803602087247510373264479839526874345333535305537005356906950505903984591331137088934921078280118435269395673654463467127359568931310825208889781537651949414678721746906625266607084643548426927166198353980235179231970764193439181267308928926785046421548465712963174724013017106932402473091713118400376205176949977137262941638708645551279957040088571759042207749900766419582288813875195238590615789341395460639259660448937475325606007917528675915011526213304708096057443071058382302216854267167952580661707464334974621918939700784498888832432609114150622499653180138835497125233961571226855856160788937111809911422835294457211417046709622016111781271366918253957652709849011438890460242139700881015708472935335633910408865075365381154450741799457150008593616919756798290067045636644062904446639241105290949270529529140365391841794678007096695356747053788758596746589005531113930699071464173740975066868280102061848921974788337423143919773840610450577826255439600270900534893146117505516295379091397173568672858815502070712906272316639053521182637237477354086834575423892251045764789930553339807619816022170386807882487845361780472558822495462665414974581413911555429777958855790564483872407958987313989397676066562121198368000963350773720630466731916807632305424711305520434492961290702862254431080979536321081593345368705958588558231730732262117284159292374777942090694801366459985970609073777648717163095703972803280652145417720991552024701934924088325519889596854812347430999965962567010058679812587823031791019733380171384313727000421705192449103882678515191068671616374546687974243807919124486947726902463602381652234872370791131157084961996676434925904366589778235824975755810339309306862392129557038134660658826009118276483116767706616994489236816656717382292922042270350808240007252370156313203010679538410447774041036107381722920015481472704537153092284527708572893648499093518977926265193709846878040264190429467252883104297688640766930789517560099355823533181426272521621194218191271517351920601331336338447435684763176972593643333975975467263033161039152345021758510806462989318775248216317696148003203098776913619944002227985317572709457596908097383717894015158289604394659889614314090967517093013169640192291290602422470298749235570878269316480416613927852839305156921709753752637714503389188411931523550415317148303470637149733755688409544057786406817287845901384472869825799101397990391634877882126897734903186172793114870670775511495368944957028792908980400610287981951451532094648697389027847027951507499292994084651279284182387098824528782629562578879350234319929792616343065389614802659577918746556934260964057828204198284054285735299515587731702433677062775549247180789189772856109084053825466695554674241736861096766229485570769606986600854177436332590796421133769899562114626242220448063309230214403301797762354344327280134319422785670249096537952379275675849804605524195473845221469063576517242593237715885445511719165956505481143439463708658080109944673407268062841120668533642143781920302423308350690800017351195540659363294446333928438779361548032388718686586261518134354005210201172572936083880504457769532078819159519828663347957538089926003077656048651128068520663425202534658392106416132673063006098586607783249812216330914819616612963027305736290578419102507613845610221335887050667293693732082467481956627926956794073331972872513637208153043069888053208358209138748304935717244205288674473881321202452349952286248566239709207116947691960320226311495615805074816023653118840412818199106553289042793395789893698471413228980727282592194431133874936063447347653310272275488494359803214440059556322178036801866939847369471131926477522980999868056228672298150528618066992732548237581662351908037765723141988283376323155224659970524577517542654533941401347410163830823363112292665809042769593990328511430838544418294972085894701076648498456658957462512307406878566277696773467617191995160850339429048202419376878658955420808159883035273333751717682388931309510553705982873402679227300791572934042781662374412475074821677488593594300194054331025143700721445530756659091301309825997351074844486237927777191520375973733116656072635285372331326654000921467849209291064347951881793309085890841023172528199486344241992762645787794225079727185471903517022390057067301861971076851085809397607406857080132361087945086448705302922029836042537233581086653737963759631929019027922012267287848827547061832625517545050011450759182258433727441767169961812368230278738242224699627213808041864192312812202212948313124371462782207106873822303595732474485149625027584523752115464640940912538176480010282108902952045795533898351589236768847648745920185935958649306657167168760694653870836063229094736025438623201004879265078332618512892604306996881788838148216208494573873424492477344782364138076852559063015509294101449997686641689686542006810035608680744272163373283321956160465352639420953266772732596593706634042096971383697564383692905753820656279168616108325155495910576238531186621479837556510666796398973794659199677554980865666059813269572086527331016297161420791823930761320921884705618092563284571304707518397018060690390548529625955252373105699019390774376000530300489043276276128326010181870005952502054608915507500283276384888770854587559818898205552770581159647891573568863779278034890707734196649864188145390102749378254799912316126158434887732512494195859202262701722856399627236789325228943393356476980611432220926229089990885172467444656691885394286315255937893398114731007195750681877702493380299286890924655651020524106543627886402739012826860289711303856526516473154097480165100180940481520049139684785897622243508305033473658576293702994992450595149515213515632831080242053368236111075636492099961844327948499142022686961516730003942900421262817726796101679181295651037347443310792552820616029603823248563610268683070920792561488329015033103953487618154847095692358141800868247930923931642922218252733331029232305583268276439006153630208507890176109886981322182608015835411466828553234832547573795997410316606795578908066486855918133394413736809376457920255203701031530943543909313278685442783669279253840976913129134557056755505434232382306349502238816718058784932792646288991891313318989714895703109834211204744846091114923042548589916534877521452225207038789607638278287408564658297923791446734973239300417763611170197124879117861886246910014414065870403135307398277515857373301430817736295628318263617823729065413714453609727255834813894478811766077187941973150069031594315217056387418414801597973476438441857038423646214604963496708549996704157144824837077836265987142037272360110832960662286223417903978156744746643432692445049739777555700494198145235644375099206117260926139644968544859086860324992260115418491189702700401827862212689397923929393700092129219932505600301849572590991340832613384070577279235463901103242165468690746706490765414262999933765057819702236689501860178853373296922011188740431831428947746939109372800785859007070057345128422445501638493395190994113812241434623847258598781306370501103269662143753742287960909360269020463432057729712441010980879414658499736502800741496667234276675834150228648568775062555205730638649891836926539940562209183326338144639770929714227371423619648850618494798569863558565249075559013006954571406819243732429000493892635311495434746905385731533880077369542685096791229108508739495146487208098140883005256439647384782001118997738507773751635522806084628161683098905983704887862641983239863231663056790991617314229626205942329968936014575524193060539802404747132143112528733169652301734409827839680416900785397477703054312215391071695172737825938873717254474942715540018861764721923137368057019340002798290918832996039799499657594837427353478759263929386333183936204694402713661461866930515958989627962798481887390259441320836836411441825214521934964846825874589594995919332799787408319905846954552222304242969143814866596058560482699835782706326061882367964320289597182149030630166055543888841682182751232540900715521798380728008342181388625580272036382194327896011891936269982480106320266486780351786449710215264420674871064571796728006122985131754425149553744701433466050267198951002753568451913923370341486429629167774949548719195162367955538452557715353646284105849471593814867751018452611983481907367510601788424922229551027232296963620074700606830238029946790892328078105823452403585140869708070495103943640023748831265460745326472881867161093745365769713428492758205921782815456220348813732996652096999303138153302959303319962322682598815277679243826379395352316257592317772709723055484363417462029089367039833526316317117012809433983166719251925709526015339440161678559212953880196501065401352900061259302039016804256014151523800314723554328035348465751934518501157020670543888440846100481664461005999986961886351192863168410214206094682274388070716871873232316834105148524379850337781098923541977934177309874698488212587498869404000409726187116354978638280729455949232431076502709009876004786363482142851921533661678571054869115339956710243699646578961856059786847794656935988241110400603675044871896367362865240987862302435306920268317596422966368959418185203400749590767817310882991666953386933800710148712319051212728897099474522551334055973209348477141659203853999422387773015573926385567026146479724633311183514840850159432438376466257592921840142077840111240677420870727836396995354824342073800556045573876815416809829615489570691807002103640427088142642031239931957974149978883804058781058419284714859229550415633263025495899916970586387125023704021825120138804426078541008732373448000593235665669517583171012944501876804723485930636204595829589873197187999441446380923609238172619862021582759815228994899752215444593237447015223610974380161184297147266843719094322107604776126783407982870072122331754501102784380642508728672759669022854934168069065939687594289086011722665566447816411213493026528914121074202386557112615729699550111229294385075829659619311546815250242013794313410118721683021245736994720428500237640546197313660735796534657405243184985117987103168441307026000652871641991310243040342698206171368713749190426439543996120797813832682569217364497657912231381284108776657966109947883863570452752587868245638879593373679106350498902111582058161540421687114127625471438234893074294231715344233249579774495567926933626500068818328836574317325324863802863167670924750118597149890564009827609252135152763218848714254019291556814946149460552014140157727909132540335925488391094627308876369305978054164732194751146965733211914090715021123945015143035909129843757587697403876627062462935054714348178788319644926605294950543653689901216844180669063700161027435002333777102714867222650398804651511130793847200217317425259319730759526777366201430444495735930661206532175234398787172232268972691807056135190406755562887856654155629218391639365825313082814403242010930381043927127130441639335715459050891311882858756438380885091150644018548455189430430484330566843542717046030392515436205329068050751177859659351185476286660574699170573319991228914713226557720346405496751593984478262430311537288011018043440224684228498287821189124861010757609276329769012273655605112660358971999483659528250095508780613934616954904881905445258732239487333877238595856727473860441442679340687218233729727038554756457422822479326127423714468972122636826831511796361437200099969431422214480470882514145561965023632166641989529859395690777810094133723529575742620288842112063922770747386173363394528177435344830178683993511224712590021597058526834522692803809793374526943692038184938053691602264728485177024908080613298458463374587102348076914125764659506111538434273771797255523991090882374717938864896404300384011078904648578752221039818915063021564499205242988706683471352683068807994445408031043638276567232248130391688478960000023985505236377327886592541789530297925999621815746494745020316764729613190704552190666239282713656142578440187891951410334626398323584527666299857500788620563382053438605920958618829018013197119216207987179705154831363308552294642091484328692216058663516691947303959691736267773609572285934270658354465847835000668661261552713788294444883614287801125093691192420551152703027105491481167913069356998304469452199128252733836588027825092002748938570902591592639081865804296637379090727488596044975720499738693322424569196124694636200357086698546822755664225921989418019111142871650259755432213376345172546734375904312499842851439583732182394613492334761042050709405269608760628858456207387632461468314797250760662390768649023429911276011777685535946053889033274985908414867544980820921661242018708312311594357453025045573648587481526835659544542769450035335218032072711067116692730446695273055409043322728813682404275131989317286809264597781260290759393422796791837738205766844486106643304084390907953187621405413789641019379285026790203656346611767642465239910657546954094919454892058464173367045099149072627161931335824429346118822014215765874082162718909232092619103782676369102593150027459219499957899706083574421429199926857144890129593691947553779628200218593871065999659307533460182195605463075510057454798120409465410950108796421850474829900427998882347281674673359063388873480106855528524898999376479873052387499245805553596929888997624710892862772458869055855412844211071167892644674816607287897756504084525926930275558262372150618258559132181788036299536656696997198342416993146981133909242762532036955006547857015184512093753865710360622850590246126353898611511916491739284453844892571444380323953647251878955054315222129191179567439202278788152727756949593469569297913709044950999574980275874708469997694820319369204173336546550125653106690007167455089758346700869771002826046982363693189861483799127572231293395431553803852028564781433473015437323531251064728352980222532595158086778316126386619986810764463968952575365127053851967150801931258095529468263986184124041694741390621145958979369559414995679355361584664947418100791831601871209040216228765040825907686185330228349198281193684584012915192820243128128572786574306125245424000865170708197332382836043699949991033585037346931242956403627875471547966727082279292025106157804906375404115969530634433063818088890688756580582887745952379906290417190418773468310383560794750603686689537449503913709910808918750124153326864598105183929766473134071456435169148961995378713103680478876080011313505852826124618714797587522122679620490176255827798746503622231200237773582894314801739547560544021428003998119520132956905099912259349455976376910252050953702405533374970608553232675620433757833329242972927360810564792466166108702310595281622355434164503284478168712424442549083654059409003271022127802861139220962798228771726195283266668918352237214384366976756557174722975959306641920269051742755466335148964232307111743763010690464849660577687782046116424321522723762636986765453720805418404738468204480787147810359591532793029877928249167431908520499815549268345009536241019067057078818723868497385944579758320343345841852193789441373243216038394976979819581543036420833663938646532974519857691920078322764644567391811484313226587489780824379817865577661215499178031603624081828733406314658844927438937245778023567407905135538476800255608076689068565344099322000693277389007940493177399527899478408818960268899034508217150563408508029910820817007538156826518895163524266942371457121027818171690170696640796179853545545380425250636678269272574706520730920242475455498432966789465595473032493675604919816395480606506782218750588792437205926051009101831518525304532043607334103406642319879333203182701499514412228639542828815582377806725020089652222627567462611423364803324250359854683769707910737139726482951818258591081343383900303829892951880096014199586326658152259033909663441173058590706920898706345635579621389799624886186013538774843369535695872581960887847557976376012464486318045741715300182213698740596572334660974721929680501395460532428808587316606069456052609429501509163830818244511859702855610440317343264209766869673393130343035262194068347401574022554917304093141565479683071704284944874402674633876870334992829478340361039725687464414761203279214359083049911196121790816307216520162996725803921881769982938191255418296325113359730908784407716582264181178436501375138912205897419395736918821338452850488704524844947962956450538018025110409631334802591289666160673247278926886238285306990183127396981494629768566372052904547223131742013269819367288639121141539883390275518198479642304016055665455868900114175931227006714523552248503531784823086546462682523800657748844977899229685409727764186303101790898079489118252634100828956308803146343889961377575526155051916273469819695497623347394898230223175793189923498719822945147327458003550152787854706053032107536594155077994327831683449020457842022383871457208866210168042460682121725815832855787838491027821060806309269300483551493933790834433392475994286412461799915396258726264731752413809062322571629910800487723096132862207993895477443766357561300547958841475198254953811636762693021205936483041891753358272505133693982976116621927058655075058367953612135967034700745736594053305383063558934822552929879365386402129262638086713228338153365039208307648400696411368661970570631769776464231984974696221146871608505600217861356960723382359115524300929018709723933097297387664288830695830227241078640519741478613374739483569581873908782362155536594360378733899451827640232456056891307286090255488877384828954444986004652530209099995448903598479116375618894725078574873471026928643995373420853116961674181744176741334250896964340129121795598601889067999020351359630208265025386204558742144559635553038107818054732034583473575015021467325197741327315780104317089452484765579671960498690966430996936614455807299277447233561737270234668832642534067665584407125671580394222019504563556839217107501603971638599722598430192914123602753661276745779490998320062555733343368019653969039546632918171657403843954979809791154146205022959708864874964779335094117599186409312683966936820299421968732982553461878800784751953790078738450719121475698917878640424153692077547123194886283120470722881818173484994225878117386179547915260113185208703800042736530886384542139479810909293529909065865623595293270628842100595618990074280891407275759088793400262869692099799448291203867187748454902075776516632802088764496203790729420239871185885159550945824322983288919218932978343737129527213292525994242391761271858455082215023672068777403877670805562969902826503784367514182463564160746279940711003727921413899235602114664105828394216584400911952876417965109487319812440949026345474819833682045720304633367982143626252531760579951464515997227112647140434755397479603471417742337324223815618910320504423079628360315076931520485985796445129465088678176309205597033303186172911991021378619763229574027037102836092500554798058547824336231002470394469601392852046415959899961742966526134335698774225681432547153804227230857875289269449212421952810249882479106881195439641671667621119251580390022840184468194401912222511508975086439691941092609908130194455809346816328119544493065100915504326463415126509391935196849998491312546251971903650700039078214487497189019881916773502972773620484098716443845486684911839498018350348485936655922353695976647708355112554480036494677013157544171117668941259184312452508821088942239854639674336768202701194152401466090047883630014601137885371249624579246623520864026795617079483582929893497568499654496257468164603606712964782068571527589732646144080166009086705890319314416394483217436370864320433229221662470298057309263446765726976880501449471972596550245287485752816058998495554258633978228428744156582020317841168940356852366014682243532012878188254985658067504971488557359272952684532005325075444649598747940703523058486997831621427317155760127465070195212669427155360758975108587955956007251275674115386267524010938058877631404455445769634307894827845208663548965814475172128335324401569251447957257048619570125080497738851222535471170502438220939390481038548153854351881868508151783474096544174549620976018103030574284369638654611620958352210808343364063565877659057241689194178901016872837851486729779733551051550985169734471469326248204069559045387491778041420030031245243887176740431935367737722379934528805178373140880115565748295107128003952504186874592057222893982819575798179943556169610426446307768516804700830235968073263044213522313283120862185452687325766669751324003246458297012649906509378201908576848125599340694306811657647902127866930430477421501412965427725610286978555364351262048201969265296972940185087887073663509927843596646303802479959931391531104869748045365251509948644676674004941731385417644479520577204686420560803275512481012181534882902522751021351374103607893031606880075608221668893334511840290211996724193821352192470980039841480698551319965193978021374261699478277103678016511028661248820459435065250365567511108970329772976896216577979722929197386583043764118137750277465485536314383962025103344735452360891231838935787384534047730479093928168034549705609845862435606753134508409305956635996689564286734257864952075910371863126911633076584051526963551511983815910004048827004788536623293294326936118899978689926789106412424467690770108489737359190166060589143715292822930035903718616996694527991259252031519675848313915169175176979158525222664315780322922552977958152205545143043239698070618180751093515021920150130168690108985145695113602849206619728024511860937780938835411355743186069679590144231253010885766521042546213415241035517919976299766838596404434192155411899243521055650677698778405752670659445744267293546810629582340031654787966219889296944057760141795707086220798359032656424948412814993943017580966078717485465303906646119418492910452599162144350220744248977559129946916205295745018714197448340301881200925377213814659916316589033991504305256500513458089741336023160938329726282942656026229575054820204843295385992387511407730820747716379210774030746739293804446262844755790602432394069475901381032573530467518292741818338048708910033104364815209116910798528913206529459412362019267121369474482536484276613910049972728921004206401030785757980591517053174682458901219104503793841821603214737070284169146147492969384172688255376991714967556096670958639780195106437998471258004370328740726021095414102131152504016738631172724196723636161991175932740354051568491016871544495561033330363547762655302554207131920525248168480096817232348870161951568060941265937893871282085943322715577555037079651909852987287867766787048639395475609558930353297939813336568845487132464573725451873793104647385904624901255401330780728961348264212749049399015560717658811058726392313516162760330425755389802790992669589799183286323310937245942176161642940606493382659763343500701435671574460537544070247712055077913178033404332058262987747601271451519474170729632599125893214249486425484899453092553638981961183784513993778236351367196835393981479576097486287193810138248534113603826564611684891923619792747977710016410055787871896115283676568423820431536195427368412369900191691899841718112311884685290121547525473574556884328674933194955768840917973844378862054759026366424206865375373122041119043448490106489251453629780784366281443556544570055550669307989837257279917649106669141748456571368092766152520020992467730792395554323590713292705670240751363976621441854296424429082189113798181152390126099871606417764080817926182669040959784828943680185439406568283151314863225974294869934170989447474286902463925377043017697908816505417699775217949084767888609481776106996915843114907350858476083973382334260365401542805519422462355853030521960771049317846064378772592311838521364843212560211455712169399647034712171837571542832079389097437602366340300552194051778343802976647405554052082015620171614965922305073118860129687918827392587895521005363003868407282048704200450756154311208836205652816784498911071351290483026479987672298139575064834214594666826159148614828663834746147710845574971463056761172989053140567208691461080177666366020630626589717181803618202868251097307926787995340749294419348356547084576836498504665247172733337949452264731836324310002812252006960535502052720113205228179165715172522262587104688039632549397550805042091881761869161271898405784076890341217893434065989341162336313912972652494249977342566180462625146864647031938013353539804911164252385166478772525953116970923753932764517569711934410759791283188459344609709780203676835293650905477806788319346599002897539273371272792975820296540156235877822005678905884600461560652638360893269299670557185748440138844856371014804117479915772230751976125776800570158622119593219080710656914775517619945478624826172615041786379759056494462701696059991963212723401306180774591622222273258826364343782510736587833601892763669822899123766456968670122364088585732131954368932461430516444864563314934311342739917630930194617022870745038204351270952606391162668437917996810600453777716755829540444651411641373115612260712913754044186058606026804709400985311880548396056298270288643168410491405320236541148416626695534627064082599587246091300836649229777642980147610733230116479971351029022652384587740565475387335652405178404638418193417679254148981726993918651358572167409621923236857183648880464756702591019557371361560012604142963408677589795339230665299965609037120974465042816350078344429946088114970026137597866760260418555135798589574184561779432322090170951223369103411135355021900926936948847740302943794137235899361788054227855452970326386689998038475400259491547241901048014636083951628001519136536321477990333024562660825416321565276894355037346636037476314767914612511757840324395571296799504590176337170278838989419176831519905332206764317497632937692720606393368227851243305408136699528002140022742963771456261628360376053163507700731992636955605105005988465499960687017050943778522285792106046573043750048637019510455735348960250290313384497960556721614637285247372800073078202403219799564472239277548737882692514023034776648434084710190734148287675103978167403219670787064598967885616848319344129844510549533297182408685893669286935437488991742519878211339104373260278069991705433031624303384990780375481900811644265395402847403362730048539686432396749714295608693209007870575523715542841510556176624842189165145468632082518890672324221740928479094825013493981347859433249551137311811134104309694098822767883430891254809130148806765109348881018723609973667447936021237497745350173344445706646027676594024712064016304856626410409534140821372118011793466225208030551187942105911168968354802891461311798061660742354563543248941747943278758735410221131328232820146332457732810521757704720873186890672299387234684182109794801919863296041498609002016937117592949689763159220294245140576999219593765985545137455431861125785864659697543184524804595643617719328338772655052052316898260516270546523942669396960256180364148557741082736117909619576035133014751292494946568850403444256559073399703320957340447941089783463088093292202417201179992549441172379891486144792292343968863246741074178676634202206436781507393042277920404088871268643641889996466894774519501135331714391754208635998182653932492008442605761146826560806216852003430080864977416318329213840037652765318431521924002240972722571077783065444882646694305920090823632328758418887725122113213351400506036534464059942431654742461478993166017107827442736997747805158213191890051552686261479445409218048507212302045849033070239631687265578852873939133155987075995416437414402986468816187036972235879730610269113591145916789264461821718315634515770034414873449426544255410224975435542620357542252082777490235466703482431393336937503559660862404191510674460331674145934683571606962005924275407841108044518714955551814025518399715526506380435582762014045063937834342791867788115429201385794571939017771941261564884367365328801178815125027857750334580412120265684351082406084775851653949901948544368537333056822871624904223514930190802862527869953878933862810901808225247478683771453995298371301922537741649934754553684893135864933510432149614706326131526530757703663889009958076876044916416074299080945516071274309881771954004932458480049054089220299182432351585126766334636142967458954301028929414693577018603818962955917910878057334610674648356237788686714337248618056044946904518748642530373944599907379070476681766628967557106645012800359275094076189371701893373620166369253242297096680435337177981293321974976757486279602984142662068504675101474449777149921274038125575772849879829644833705217366919385297899484869126183644893047584689686951599959656623997326092417080610250257467626394970081140688764793211098186386620941703393644219938686955221329908725895825840348139406683339615424515748278076077259292669922426434088168745621332837544926233659108616051746010976735202215513701643807081070068124899823351603409953314524264657203267571914739001332859803402733065432586457665820767194798061608289683042773934025541178241396165419447406518823947385752674022959868064872645813911994060486113610079886927106876857942615450876017755103061513854216584149325719513449688506027832272212080663351271385518604441820125179800398092152303265671783221663074740832368805968589337517198381859840606567394770689349950011502560416699033808815355108408852596081938666651759261389828493215262640178227878751034340182104367535204732443682074122760323085535111236354656462324268361930300279158235951429763842040290888112264803729967616205835904473611886565595021192224814143336054623773175280602710147232815754223550588744236765527363162195595435186032739276586710643182374985611352045191591667781760274799234238088918944470677867394158620404198554336989823040998045245680988096331020678511594795998280429473241800851639423560510835526063694696219362102821838307779580515524265719355734991825682405641563763878754192745651745569462373977132855703097372577503940845140185467028335529810510164113604610277500737070451735577031206433201999301361645628866766993553516042359092944407085931979509038383141271225473255466685358206885299141694922903733834086306637982217142948134974168502974731864029763712523142215980453750098099988687010443329983390682523641000352251144209446304722148381553393309957516028317851859133145837204183819798495235960714598031480657682099738855560960182838767044149512837592497058240328578321894321715857946233620180277969671503124718209948571479806503283377527631438676124953957244600912484204990134690149473318318175190425744786466220293815813764305525377268247127496075984382144617474240196161284767946233580169079722907138555375404441259066291887968296816859461609974693925299595711501275773705227427785646354284603941032051207020654190710075065445352381405624584873555874854456746019852006859856657760179518698670195632943136092070724218180708913088543224497204564490890380469757900845755378613162184964366913534485163882512022825757464922425323614238364606514739796541673641239511226544162553480984021645169782986460253206630075620889327977785444205851645740344043643693167102705805699389642097826348712242446561173175479903392394808228006642566522124937592557156205646751716821694255889687086563773840498786714504713499495868958169512124137279943143614334222873549821191525740048895523692624337629237078769706499685760014407097017191650164122801949402169460822666469245083513252418269504415490415614428352419233426131834488878128960606162223426678518849227507810991335176841894615999142577178674392370347251883342860420805711557279218693594660242789004076344229682622878792135372017548471805623112265181786102403852204443283816643584841434434833460500507801820991254347108683489091627524588462952092990923794237834653731452442509687176528278347585886166982980145151294333412366688876398675109566708499474512080976577666804083114517604886368701486871026246879127572578976575898802189071472299463990150652327964256572667272501876696032643765911207149377042347184445622476087366892392859039221445813437346310175635649248944889468913503677554852558305951467109952050019329711916462850319016157243199475708387441889995050272253254708351747277669217612114634907936040787719133141417026696317299335663553796881558819683312146646391501353974043876758403500359077632160901756647538778567643715703379556973529207135777087089234440031534062873449389458502021782928006016996117315776488589481264204432850372761821377375295157194972205380958850505075255793805024706019248142859806650011026452247915160743612297478866367087614178919326336499327376216185577097011510590474291415260629439096333229238801533136590523534569192006150409347215617696199020959973806422764018766397834033746962277255585943038048181099737227661309418047396515925853833199735308329247283493229454641393386348453238093878154379763814966816881502857192142253909816679648772925149785948512420761409204384991048000755342411673780011249255438348639234877249188233878527154884602998784040408628911042618733165723052058683065489494684182061648233644247156117641023602964432798475612337802648838518109378047081945380063295758104558954492506382306973323186713601392375440804098762475566978725083293972657553254362580242952612812991906423413038949435968725936440123161484097376784857806356751613523364601301274541155511306795471610709760631054820135744709505560756359256714985244256943993765766244265267293213510684707740816454229675336774309014461955265751723068358022506815930579600710608675846259229665007866219670384087971132688404330411773248039413144357172368458636165707452370719057630611662388780732929779291382296882858402742538629670807470056369335624422827978286846911347008962423659455558150367437579517694382083972880551478504965267414555250785374068684894423502442613761917425853839439924720045764278540356879746540839910639504636686743509038323224300475942750325298193537158134507354849741920817993105073544136179960255927779324276400356291438561785317373424683167674174411423754068262768448634337846073815005222210835076944806289558862426287557353324561864289770824290362263585345596801237271487963602903992429050044743812437698447442005105807199596938198806034810071276605032629225228499476065692710107025187249628294827037545102075887122254492454567746276833180365786302011254557834004215980921871882611371639038783481586993382838879915857755775815063295952114066032216280457666524773373034043445642348995864523915527595621111630789900568958218669065568669359685801399433877756534303767725240533775786165228183816287299778932181621162730135263200635044521040862958773123424504320369175467391010797506756995644459648449874555878102976722654643473426243098767538891495569671773712442843840505263541661394109094682803126837568063362696109411136431074806697743058155258981209149317133112817692358230140168631208984462046560537169459979425249129046405629056273544278416833090954955973463370844199703683302947002198162876274169897849483023023935807188260189528069098001797499677852391678129333735377764845274811580858677270403157999801369291147830530956751689731888166713763441577150229642546799226087264850743569060173427523848116171505723037754912305111200508469050987919972583732198902330088741998922379189157768229209752400538007851796448685783598521742693983846755602961107141790094650329995407977291018849654430219467477239219230512117154131185149682386153849067314904311152614001982373769408654683070083273024003470147635431287107854615838446058995092803704095282154638277585442992071355648989999808931118766556563683889131070586975828148001062479869397372244643076844757257467886788092138861875371837740031827212897017083665817787816213864026470905185175035563445482402402712329506940631894718999274745476898077960453616363641885559468927558464384107562280303100128300566056032757754390154304350726948866023845757293383443847785644307048088634152086423807778959849441090246028240604603570753800263698825496943285772984789782333562127543618383631912679291264695851075297201075726622588441417759128700404933189512571444831374153373865903830305447568502925160888913246758905831417217634399673400439940395044457772563080371982847044524469362421627327425854772282484260471469656604218367308784271313989264440396386991205920171132259038452450351613530359973956348352069981553695080446670220707300460267643516449797388242473430452052838233260737242175137636438772706333246894712703649812776527130550340217816344404599576109414961303040168639635236840606800362025546730390191588987079035225389063521275239532904802568331035171248720829388096697058344631683474337851535015519687335247036061736006059147052619589913024314773474633066267818196856403354150696033637806278531977550943817060471316165732052507885206587226003576619505368323894026130911348572560314917268763362134620888859767874510198556607504394315754596619101227168621667098532339114155666172617740275263832345099926899228891539757795570022923201281587365986858329708631984295712525596727912084699593137563769367122589265914444521049653668638098356874263184946569520392561541137956105712027017523231943833807247968138295242158779369481948987628628708199155431280726487138679639814791231512353558263102997566711480906951638092513857622277989478678811132185424611757239642656357225535830811521308177698054886915984083937100190667624614030010676252569739412074458188832892915616706675915374414805877294545779611746828063152300502301310270302901006296960686566123850424447287467068672289510964297416782698464585475247667841326100075644553354108908427851574420253389115275922694542473044009425161557146835236600294645425395421433021790027870488819729184331680724897784893067194469402436143517203801760732219139131835247233398907138153523821183253174077086613621050099385026147316853253849099146843442422171224169538920006449944719065892292357087644725815672191000922013208009164803533379325260042839227331556489173427338792151341251144769057767070500175746303646839183997932363677882053874169230521141726402678684348237878090625133487209658344013053164475869425984882404735781625264960555383597645311673175742865914651623097115240218952571660879912780301294416035594317491930438713359031813651288362330265172786542221187919404199366241089240582049486453529472101977928316968164488224431390136568721485658590233065954464856732618376812702305921038061025366172838866556399515674292161904275060569384173146792317540416604979414784462317387701767211506367993475831609948196883253679688764965947234318926147920751048079811108879224474630532225812257044008494278671293922287525431411484412063285257130159611269731077815217541131555673938743160830322765284166786597746912123098412988146783282587124765868097782070374462320429180554884587748496408891169637164997481082833549628488403142993322252509792968745062649667648550014197914159389832218714538316418820887496753332506659042821514261872833779682228159934620277357348372540926749720755152122620383464062875014512711964824179457061630208956152765916129518105710154817150019480736154943766799564650702865776351786901731947503975835549590751551083322814836371278217512465294284951096681024121026348706947302820690619461965276693031735663873413138990581469085959002553750190936930380371167367692669987135002297192013866276740843533678246976569462234328893699546404135145420472303046770599059736295433935474929640341233156449680407709443404452281854896630706255779972958403006531035123031813167768976851346525647175842041752385501128398807502135235248085545485903195489746068144752331931821667570230886104702762699977999855127674321702032951982091159631002444215609612448989254054458411188087809160312424043982131019533658678734575909905211068230875103070218538698758916451859046486993719242444250873835006982866602189406120772774631898017456419696828804498900211280924395477311997049991244354762710353869629495439460744085473932911581801140220818776178743235940335448743302875077988744701390564383899142139595271244863854069493753404282517199042701254465005919909663813282587151068078535737385117127669676914158805251138587797689682777370094611817650690604925145092904010832601728411887686768048229909871273149175629397068155095658607022406277563697250723878082157751810193203130420327759264496735568915062832954408091852020897039318585896047469682390016966841367656741914901695058295645695119355139546815660377455758261015073731712833124769365449204526609745492882289579257347904461273060087830969899394813775517533704997396243197326211834622323751639049102093289282630555814262724930452340467124652147461773207889703533274915507826784226337241282961348858040642580300168710021991835981065799351054551906139419879002996379672803583088902112900949836419797504420887473144691738923446252062440597890695429705021192652157736096670515643908475097157837507638877020001889003809424664296390203434523476340519095991461120029823681384175629911895644264928217879449344802325981917221516811424144192659705284544931769147861383862710503404506574573790805089648136155263622769756333942931791772038830998583352052716028631887394404022815024643701834734547707920568558228361403922637832830322435030110210674033067146784934920239919195501137219670258690136565546025904967702246785218636377601684646899699374217046954760776181825137596360099008823677452276489957301025383883031760987244962899319709336610574716834449573209970824608600348845234416793247450116692675640553277803559674954615902725480757010135889391222031743223852447393270784871563752486793954964355831591841434925415379333915678211217666792105521394437409730607150069523371354995284972773133868223522215263501359071116712484907545147231127716249587412991272489613287744431457318708815563681992871955304315607273936072607643988164889854994726527372084896000404239670944163475878714497831382516934728967642055269404281030753943089725309794443593581724600047122545820134694856451942825110725492348480783250573979208348249918555472071827638939931292126746404535534971367799442994024839201718642312335410136792032735867753372571817970205714304759431268457851412419505421128867878235422570567437077397442168205177976103317576373864170746054654162909950186886640270332883858812138336239659244125327432751954776248733412247176925066766815970417216896936151861535954931062420364570376165119845645900300686550004159574596097787612741484668637625323708754523464870930099705569959629453514225364640143778740529308353762443180673609040774273532221863413923327422427329218280035186606044414268274194899531091909701604629276220985328174868273597642726587237053080237688085276694340358478625140423292357333259147240858888978309252043369961776228407722122254245458524994665291724032966299510800037458307755341575739158474929896539530916348949450929291468181029873744060184944633932856255058947844876248870747962644035428010862142400667085905199602612032560717639644428777597881211005587064086725320636457214342451579684619378060174648059788766029767094879420236940699071088427662092250398226416469490793703753275746167422723085186774315222767573536415562543515006785046224834062016033393448448401848857563272148278722434370841118277491682323902305511063662807099134707400226344505183791866083825889453419967014947312718973987567027346753993167320652223124262618971354145368442733109466938397805055124206059710403865136865790007638892692120935069728880965055345962987994978964609000953212172853848246393319449590103459484218144305979398164394271899913602186188884939966066797301184056090659277076423685829731300374835855715659525901070227363483416346313157986163720240508613654523724427299220342852439131733333146108826038082846108721656099710791317426173771120571546322665489228670144811133889468035686531449321474274668207892095011579558505269163340733261832528630247047720362930347934896696876304295428595863794711789735375833838437054583469304166527131253518020069990441359996596602098288149290973070973760821033305696820523625509234422318176397498619213666419261981443249065579987152925658931077147016408719784097884600258234053764704550156629215523301757720772570354216909379363528978016896428260606133371056645829408773819809253164181555225759259535566094386316270613264802441183975815151779152563688830955033711258436282012480150734173721925197829279596063307259993156496866593654751309234218959896266196648451818172349939624249013572287995177863229089366782447704030084887907108836662518740569349435628017337019694984449677863254809439784640205787895682087209351122559857871726640052854833788489562377660155056373290881766730139401668809760723196200092559056744818672277116968835698260067825180478607374747279810164914621246246697124459171997533353746012220598159242700649188145132251791853229515767065624100428268479096038747897541907800871365490813298280335072007754311137896297983965436175454839706050233680979574386897039729210730980731552530327574890381338646894871957253472505191211534088539636529467522014974267826791535332263686805144617393782496139692899717842091229623322635887065676283597673157238737293522173601514247952040306813235853089926776670562528731305872584589584421867900351796185932605103204253967392211012215350121907588727700589139951137796319882648149816672291653020230474354082593071735976230439536312583292246405873202943837483529056934936766445470043865154122960575616111002769774711455960426261168389695423463407620447257103303626035470571489658695148516774027968209985379121539901650911465687154541825206468155123570525633512093593602192998308091721025868851480478502895391625089174830064921748680250278763661097065356260292014562230424435333655706381297458044411683376828257792035431502937679461777402144611351299723500255816909277557297980961649206636557731781023674960803707626669653565438500594275818979354221176572009252679638859727871344116728728776560077476490972733920224515146440419965816675098784507432505746608650124310150563352733609844073690416579023153134751511961926125146763433120943144233929428508421686034854411112051306088756488789506069788283590046610086126570461851025982595439196976884392277231785518491086168036873016816387172003381393069676415579784413774043011105445462192742376294525104225732227058628001204102616791539361916802914338371425823770224399457288838854166160634686325798099976594100951098079643951472029484022317789061978645536581565274445473627491202828406873092794219975227251437890565558032344586038119588725434588632015292485988414040212696875717052362644983664876364828307189424180700273193256306621609523881791944848701263917237731002227105507834945117039999413596946743542314709734652837076957816355145599015010169007090463384315316699559555704496657474136758626900624370434834893919060315705907049529374860405385526767007144716150259585798924226370137109910239999154552475982001487287176191243003502102207122906289291315052762962500164191683707171173044074574658884926200648550640719230217320981491027983538867075544071488470909104456510621112018020450990024226785172769682891366909137580723367159756121619351100146682717534304337143668903856384685552547399772586926285690646104506097063075340020639377497340891279448558258898040713219333396830434299450833529225158944409049698394727357881454031230971649334676994303271937946752473312106926958796735642767273686279240690287822013570481042592022011128321840095255092434240238297211339872589140721060821544414091439622943635467848365891918159174890897815873014702683975959679550399030878511529576239171728970165151687933274295332635028106388078962603823266667992152256029099883663252665089241024485826814322327870299676095268820031622889670340456766698658154043219398271089388648238936953709727416560315197004228280442848782007464890103977007681374198700472320288198117723578783021848709355912010039227855386965345632896810447250370922076876576708434841423323756133727318126723405069412432264584710529647692406881624087829077352293770923332627698449116375438218427962605198782933836075702596961403152916469110173030763756698981170445277588595642935005979681457519571016224560367896280936543678104798357173476233737677278477690469409593300654717130925932599243908888367334933273010041831180475139535105488637485469477574051868497648489421636975323895104666759751782808937959967857258681393954393559704306365734764925496337731940479861144086875453327705498789665819061255739205953576960265443836650924710284443814320712849141329075230835170291758047386045394124463826007260930381371449972370865857790135112769745942305613034253804890101541436392390616448154677120862602585658756484523064827285188145273882605157065722637133318166179714228306051840525133335771349978988848795535883297378661746941273962727914507737580745107737046471283076077083432833360905016752659745308139206485210713253357342235858082136981116681810136850806382597918627408686305234266725030721690364065701428781026272306387844827716717852775971215855067869216482886108323683979809342028542148615455827518352461870147933423414639097218932699447601377674632264933561234017085902775403279745298441279012699972208042331020262601666812287324129767995176607958309492149176151640785680163644974375023288051998725989945721869757436306010125055347406161245159259024383372048067752035978997336163317759606686823982635329337311228214366430553321791164083049601257580633602540667274810452436007108560554892277238224356638345341676449152044525084187438218192262616383108517437436366433959561077654363906155999360755085664412135362607879800811627305290263701509257563945880658387739013140227954056378386635330491348336251921145401221524930395769127211689259101265438540334459080236966181753897595747444553031037098004455681347955905276203814262774702968200296783879050536794261427552816443221721611041886705256432463706371187137106618632686500269219051060258322963329092772632315458216093312402379739988136391686893159663024278586066257930922969376930751572840568782262935000417353306795626791932402568586387103609102741044779466230507323518096536055824191287739796574335598302572847659034788753101076944459005151145907813313417521930617339195669612273304592156798671801411383306544627295262210312986310539987583673183857818415647589562751781941428169026319826951742058234366645357109107902073651595528142051925183721527558083072086019309679687784807414374963853319303033037474274415196704043890491624005229848768800272257156972116175205880467231546845132353891707642125141645902322856080297887319402008347585267592522150317162506271522708867610575853613983738497026694094905553439509642601092055265291604948606048384490981383832693544543552905965526051094165717877316120402168237733366259702872635647035427558314334885125686255521952771091776396539563535221023117737002693953017111014839660235380352740552123095813513818104269442216677876160345801036321718153118102401210581730930475767555940455157245545836307315429635247900305835436753907168833872292559985115874239817695507231600169169781055114815273415913687700784717104080032040087508059255641177435290144042984310857436141038904735247365025518777827471793472325684894494509548558120128531638084149107562130954528479446930803401684958524755586598283868224249508800178656902588206018513559888829114599936348291043931791743307943629946415208030311621535021731193286049274351436717154123601401533142426250695308333754841205092210869815520054909191360107602701129800178178760543152416768391088870222680726302960101000535818935491777270078922013652458937752332262120267115883514351747709848463544235272564321242337237237647404848491992710434347842926974889998986271921256147840900559837006570988324293905423348496750914067635054872173504309691884850152394893563449651950963880088265458109766427322040416888656346879172887424941998531083566329684151827350777364064750855118225593223285741023152030905067546506139950479985065433921017904576546651053539304589935195352679007325882197374901194061337269132134124655690755389366488170863381146847470235791144504599869947855755190708632199756859969459193245286470899778448675296299128909981873994956761527596009801882417123496442823693195137638993200308975075829167052724021710097114277394392444622158133494315666956976121184730792143201213020739235693242047664301248405809074876817505157684731170183554101177318555470077733050668400303838022940782116268460601018718880125247918134404500662336638655653377504047817682308601882121876915457379984719595108952866766658178096922829175243290434510229962215665897140356736510626505357672519430070959386162285554398784737523913961036645614079159031490574193181103737833147171250324820493906440263696130156370823803972938619799506622692360817517497131981126225397870111277596074123096234790839211000938812268197662002197342569447766119782616201337040657914595738793787950739532161409865259212371950398205385488323099353404415848046968125175958584684975351351701150612989527859381482263375627263250936803212970849232882261177102666951164345918145562127257381737638690267533481101674687957994378766089567906293326702683897680720053919978252069892726011632720781477677909524400074238211193679827788336308715160269724308890918846079840929579366172112813171600738398363579495142976818887858955637607899845728578431652134772545764023347419272395398454928049328114915706909140988354304960335618338195358449118500549101210952594369741726252436627689533271397971703312368082577024528137991781834187492990365866954504534478223449745780361108278743015814278666744171777949303129968745481810338411693379227251981816594341504743762121797652876968494555925728395144152430202245537788207715452191344190769986880430361443190085285898906247856400020491027763585186930832523560142661976977177303756555875454712468325368874353914344660969401517408642138425503074664020130342287782296802937868725827513163399116320372661000796574295215124445893384597093945988213367129566456803151305561000684161550460097638971239970901820870006996701860681279011171681528787928048433149405352603962296675485959356370672614381014891881217840338628600461191062790488798113906506392159199322537587169028478490160243788749170320139023069760644772183916598505528541532145174439819449745032269744121712477570553327577732931478199433018429200125419643288464605029786806421913057487730631609238065867514791407626718889837619008955809563124819914086571484069968548675824414046964528599512465468181135129417297867543606445883085713619125083348328859043619389958075773586725932268296721636824057772385683880302022902614496139377354604055542564589314647560367668615352904381569958222141093008089012124942721280695835718023532675961106472145180840435182694666794634673195803652360153882050786158207921900667794141424279624537351147253694163503913247568840970944036680260706623483624216509825817084440773820938644432504262488371147067904694540533262535681893613376743640374045215558123881590195609712735162431852843757971041951976502269186103225116379427249047017802356105636918857875238471587388572743022986310383028148513741223679219043027377987436650086948798244431307854531390941690878485402092427980138606900340873708287890135013104387311410090241542018205279789380137634581012022940448875925825688949717252519232853355049698231972276791987938868988415951979665031045942934782584874453177589156358773677028295731408938762620344066191395539497766258192167350001825630694368007491352573990175170309074259792311128024068118607821646711246484261547339404526017525478373544519844258022162937376194782130162116849875777675043550356597559190779040036712756728069708374170365439876474669113575619016414425454878030270282079650001371641972372386432074503207764330603014418001298387873978314460824384154363887860781052148682981826776295995039239146025728092261696822837396383728766921752438348503824303501327497253811806331072487025561978746698616332504935270566345447400744894149118913288616177070793844746949674228357559777203690615089233109137766509320588432280050688360145850067662910546644083612149084193095135949140116895306363784500887049379612012750431087223147034678609437268578331197780410861444783328021706549663915814015816427401573115081209575079674570812886381324590357375397794957513292886904275247407138886637874062462152440045639529298753971548955775746118675626476141579133642850240302020796656567712099670784795166300562740098832178397227901529376375231401186240916936414654142355696733352174668551510568147665200017898162366300174785369234567873827052956205837257981509248881148871197539900791817426979545087917807663953145150778344988351252323866855059248302051270679203647976491037970919334965395248858645271817023553406676223035690496890151092353770440344109308948296299528661425861205203368492590679115911821913848483825181374065354080087055346996159010634937175819431209197975623834292656707272775989653487183089882453530583296256529650129963685518642330375560427956162670044396991469027444746021669010100346028062000659237959514638080204116936462479893911396471422524641171372835247858909164069851606852935405751583146290601447327871071117337048396586579464819056719834709939129177364752141557018214522345462155486933839213497648122415794931170972513367213574599398498814794103511999612290816385463545584449423176405252494105736806407427240772107119365714835666377885466387419623133363120224131483066022615509073747500033250600701431892599997332820691970395904162607690785441169386087848972859083799557752876570521673652365185384494125831404957223927216962615969138624709602423317390919246173599072306741896500041249262322573843711467942020448158432622232562876039097452040796942450310687112248309371265287748833845486969426646999162283909718290533528297673203190053402318314287547522811169725175556086857986525436299486322232196904999341263427551754316428966398151857789148108811539436149667110329872436376965595653656958355657515602325359922764765417292516615447361866577736880709296492094266004861635329742710561372257850484180604013183428373428499925200119664039349518940679027707871820506461496756697322154119382976281089576905142797094425191915716657615109162478767934647097222444721901608377720853892326857536596451892136893091315869714008642468173986974828729837848244063759336467689810939418759357213897807209665142189194954536208841850797257526330259065915589334519336371878022584793174095239124791628171561931169306240845586348021080735747303604258996139634763103292033048172574248090216236861346788188391245590352425016607756261336207233279746830989861824823060330032198700187142395023085323852297320597281460835756911689849972345482408313504617653083229038472291468288310445334013313353099696165396179570814075034423811227105161726021422456552390647855995676491426493194720755554981486752699742436677473713144885181343864436889815879526954166615680533957890040948511949183005914001719987853243220978834819853954780793582450646384281969095438811561434682837800322331059225634704006196904286930862417948190391694847962999200868896285404820133718884972062689149971880884588496032366487431996471087968741685240539038532690244860244282157518905497893176548579873207353422585139922288871679531375925562946676862366008449671340269869824388051331502600723053934849494790123268676819076251511434970284470558074579027212052814335156268672797213377095942973952922559578303239603276248820289737255734619961495580516154893974261624039384421790838165582757861788995022486776044342506320265381166130195519701662040587782454951958375553613556084306190962063718308875732131890307309036327122072008257698811665950958933680107813130569759771363595339516566365049951677119097369008129734879538578127075796385131957301578417238365049880293592472568090126046417065799528678473166026830407472092095391763593793922557400952611886259980846938840411208774040284755452143711083640030958768996279365380719697407603294537233106228549004530225727931324424364476325255386878607986132528883310939213508173542347727207145588574520984103788122714119791799167956567247089542926995245263843265970237429590082902765962371222206567962254793133390755950867669998763620868084675570550832670113222290073097304519117543549433338081534182553209228873262227606402985184384299762311745322615386772287283056832511818202781734592111765903064529627587336647645548203448360165696569297199195858673106563017249217333745908091411708208839088849388835318175597757426847977157832883537832568816320844344069366504758671604395132438726922883557802320569402813653164599836528765490186929738482162560746040276491160415832719022494115433947558416850745203512168574189605131583214349914925578202188089655992303501330585968365606558477602160486480002422978898513660567093263283824297132849480696733607083492275909855455945154601799643139897549585061133602036282584872771026938641564864301212983511382278532998893910222257524962429017285592572379816884930890480056504336728428710577492655618247682343235329555672225327327572928084819754632088695884774743900751337729821179633106592548866227590824813495447444183178248878474705655148619407699416302119539287999673216998142462812458619245118519783269594729943972307431135463099407548335474052284496256255469382877624914152761804413260503884717641302095296375789060011551078507542136441159720088039327082722505603927692671351205789685270504394390475077578152901314108992304392226158779989527486247474033808313509117995276398864342766860246699873905151651477634024483487833772066697943932754781017694461978052604363318811267091706916575809268518830450509028717238690745036990246580598280275908175783857052808064155965530441193657987098292603834359590876895166825382565249713349244573660313390571830673098987841403052284850651386435612186077329948217077196311683164332683942435193022071455163541984218941084821260524958754524949988779888273147040000520467194933040415059348006942070099556233032726154263020014361418779468237061412047068816310736913837489944118300768638835027419833929645585199699444174576962652498721216760592759605511773801093397189473012427175449017091835649922949887155433038601858426215801746833853635890029012291030083472115918410539697131467963843450480873583412675894173520219796372536978136528681498937736200181169229545804058411013963552187117324416138461158564142393973337112508855930574275813854823865884523021265197394880876612075803571950570564208809394651301045331414796323994922976878511023049652156858049627566336138549828161386298477641025375072495513294154473878706186403237404837655448535036881720329768362803730562435889312107096242507987090253522204076734387639705505492481038873027625660669547284926605067949629163297967716749167976333831020665473861317996923829735512559877889136461673601274428529803695809607036058785278495610196660094074723172565814151179563384702181797873439094587709613423502654385344787140076593959620210159048769151029131227015009844167216842898591567138643450260214280232248385292304051346764297810000506339393713972889116391757188025405361996122248464929315642059211896870183480775993890932095456785289765047647834851392990662429582031434438142353938261702762757198394721757974529552762151815675002781550408303704040154426715070244480215556532797538977344535665838281941087456099958023664644999719683697024222583779518520854448432846915111410922679283726715093020718327411619088649069505747051009113894339155347124510129478872657211738188459932201713949339024864235582421650661324233634193753185131075423966779488664871460806736895045401954991724767387832207718004949017798841063547583597556786658691949832849958686257610294546853815150782203555347603591753536749199604405107932520445090497587837694452820902106532767537084876255568051143607956252126474552560726103132992363612131011385958572547470722078833065553987116175878268893109918220358253008060585649513292142968446176274487632217153618024978345989068705704868114871970189476171708740262055795675015886602783341662691896815336266192622021124938335082423216658320351803069932782647108764868198145058725232367960439042207503774113801188444347642244538533020249944785173851392497162276727531186467544651666623812692999837802399600135368467753206238152545411935561264252948088306780998233476293784198106463159830246876161426513589765938884493068211072947264992377573000386687291331158465943291611057706186792915912403257515424726392748782351957962838191677725298656596524778210871736511083283225042603842721288256729863583941692350745969098004615586056391006044970892664041260749025319704501656103604472770449506896009783669640986837205869238698971362933203399666591944573979056741195700183393509210295758255372551634959116382137631038267280607547581629625876926096693392551519879344838456883620252755525222702664908992563052194470576419985352562046064794072707890709948564801428294451598999737460591488724811202681101884156659301050933673784223689767564176722898419410681152222773419114805059257859072880287604366799819960868795879940357273511946421686077143972406042135690511988101522891029994728626202701097924789397777751157477882790451725420923419638285462882274317235212864516211474800063265628041337801605027033629697549137014482821492291717206522439068504764543124395709547070902331634278835296055695438854305232484773732356534360154712355418641142965129046133303781017029022043032373945732857351489507470329764026032608230145463069177066996553466418927958116094556517412604387831365928530276652453848565890426202008780319696479386575797705239349583586010357877633363184264949454724162674559038505504088305546623343169826459108972813495063514357509937246937542077640101067355103836064951786662222991555327006279026436318239323998017576214821906143338656617946133428476621243304553598529083671420794144699865216803826225124830082060939729837640257835826830829827102043563226998677971225231236672667339170558069053371007767964805736916419804226511247034653145488105703986935583595486780884337726741950226302484281827371177477158814643086488594032612574532649077599337877916278311641923604258098397241359815311819578938085899795397334850194175918018449442074180213925352822770347908413393781102274347587253559685642871203590221721046407403230085212758875999969190481439393840650684225077350949371548325433896520818333075785569984304413785286180226489030291894488515399688012869378460321794005410290906698234590442244241903833489742371351693059152165650307151666975280248405979103402904844271103612944271173302242490125385662167931091283637187394299565136138237060631077741143809343778317519544786064997464425709300120404220974322937508062145269874413100165586815435976927898219700251975613230855783179287680773517948430810285754593660938301813763573679478322335575552769909861947482048313088019094151636473588874537909550041693086982010176704128667140433924982576051781131099724885890708741136145724950277337955176454645835638149634289276697476220358827530862469605823079361368750423109896293454094836779567446545788034514037912998922445274939527314335226166670198104970002687937399517750607244859564481584796571187708672375169032064382995476956521084409923473659492311326992034835184901636048547893227434092210791406565827227136801823528037236700604217350137131789977623751782722121790021967808371134344462773110251292185643127136809380172428930987271724734158100989457881192880378999481826268814822702541219872544418226978266927194139749937408534458068799771442700759753879713014479519988545013812145815775901292406578200755588697260531363726638541541562927089297508958446584983979500387434275610658102208491134840072625386960070387698672745515869420281842315632966173328811473891558428193891834691180526929123684810137861259420064920162053986577919583189623628248185480365697097077456416987837718436538602199226577303311341513547791160570728853748222594105677314646781651979658828021274376820840599379768804766812686840527325828474410417842018822077800583747941039448660285072301814589925153268585180598419355502587877603030017670870042805953265117988205741917236390471107181188478720861592305201957628729021045455619156768647473846210338303530703620531134339757380032515642289898501559707380792669334846279003796717157186038541965604547213384666971221156297272214661097275319835791335573058131356318945060981062930921296487693695291598025878334222563108662022697531855240126194247926189559727335940442079330721512784594728987319174163546457055076222812263151242826603717768640523494068854854550446403060041373525693113133503444823345202562397893571322273654998330533450553851816686577668366350539247144464741341858307700077802369023733237325609183280296027070298467695167237714404899162193592337689715110594599157357803913489410640758292480165378879155510263294251197645397310379481075218708795503437533430464467564404652949470164363298812962819952178275813743458142141185205149004149450120077286976739952450595024938229443200244793001816889655732713881992510996846639950649398820242067687736346467714852928839620563767908185293673520240763945511455483047806795692859606480260185153674548004042943460818480731787450176386355418475638287755643257255990558935617478794921422563605025274874581367297267296572673381424108107668071941507536879958658718159845018086354698037236113216247333499334222847979315607475044761203256907491536968414847062990029058615665128099256772026769629449550860468925308303485290231291754581590385508581828643582202075518507798966493716073024637135003499289647337825131507102391410837888688204729005241312949862247371571798676102496629677243345987912290034530534518983795954818401446958547040183029294144278385999146888299952610844937381516156826577732181518261525469134725611320100586343680056207734308938810085946647461536371043122712615939116955228129264484367517319417415876235485099285991390219267417292294477294273666323520020621369252057964544816355239187111291303154283997933061356923425079336568872574307471557306371435131438194356451032839351791177847818388872205780308326248319976047047341893336899244855498030035365479276303053690053060090490379253514127095210127005016171589931226136832924785694938832772433425145320415556191896057475425416540660280868338239569687472023871337178517415561017800437663902618886231075272716042637307093471838725715643411681528684500865528627238608963110746892536749819019994294430307644529066920579096520985432993575165245301394017018931219453497049755806836776636383428562877134208245287542716210000917948887415161587746106059033080847577757210948315764349606643024167072532132666942086258346546848405349199698456517097992153272893264687328537000859000617603648718644019652204522543820161618317253051619352918917230197138918842529108500319210334632255261951326723785820709686463247283634265944753709948398750947766454696386073870937628755702389379040251624742880846155477440460774672114821766869872071554315729915952537920589153708420681915145099401105011828627784132763058070091222714509998295951103368458093468606320333493472857282363779333618085663248904082457242316449046609916091530979768660416737591000493912890882997241508028812960874929468442583999771022974984996013615637313983102162423061681961057118041639439778144393532572925221053876014475501285064354959385353519920502204586600965411438945941561765251218066241623354918394323738243663080938035241713453242936648657252448846898809873129933749920651030244249211584611851852412642623355426571611124496081387183051090217393751497036111526466720183035763402258936474123553839402727536987326293594603165722044104193080463405233363608381331257814563561281980994980409334083893527511285151156593396276402990320390660323635065704810537381393137077565765491635334410562131417892729664223227035570884310429145313916479702673861272684500128898430157870131123925466592026194302628608183131123686026584322159228628095686921719469545614113760360956367244354829967457829999418178384193367915797808195138568884043566007412345586533330708484452169229841134956674559235454381437648153733124928010726149451428576155656962019649775104878681152352149348950528993842677221136368729331366505146163785274701579685112438280477936796111814611060989088317304608866335926496328642801892154694533699839756368850956545493348810081667243569181174825979597721649106200648436182017428444066679222189428561438028162600711159526393784212376862023745579190011926369046287945853812884071507483885323698306973164554504856325969087661441431038470055248581543141094666925546233001772623214328822332613093746712225526289879920822940865223576174989486135178204490372089623977946831894286072995014744463493723112693058509275320325214270494384290307295595542369814476769386943906290127517024663408848205720679892967175080165292048385388897156661855891332356632816348509340935594681673745392122028396144004314358375819983356442346376795601602449633008002280701529809469871639062749298595478450571551916664204162444633497166756674400802328173214016241596942816215911010569386723001383511249729631065345617410383937217422252820641646067614497378488849652580339482044364080048002282421054056969276015965053107229709470941603025428307452451209014817812278348815630241232939103989919369856042552940575336232034680050912149532792507962293693380472425974845823913921825754358279819180382717495214957329332191902206498784425338144836920975758463987278795136319956920856717988598296851488961509340605833003005039109303296150949292702439670015098031856718665778970439417965176186734605570560718116130010477595979705021938795711066375161293934759058233795443592002705074777101126740236320138534709715992551250337012562559315938121884371507695303703906273620559328229550129752811050980901645437502862849817765855380997513767132125593926954592616172825312179084018452708754236203078096652060060982131687696526382167145542757983167176213694832374743870677794107351273249483941878411856186471202506937690918413004106325372372920419534831423254423898577271145492832798753041816989093102108138541875369691101148402915594190623639791655161734384229320934002042779938646707278807879324155258355368128702468783908713954209233546368108122092394806982858092882267092710142984640658944363265227169740024408422429555353617763881937620726455776694303072068975780540188748688151454885310213193045268843162476394963875290473197952266900386809283582866044651899517838196065022692425626583596749405843450787736938845232515807107601846902657839599036692824224426503097324508243598950525350661523388592538087650596379607917841284406748132191043545067325837804122581605438993008715531749788873142859488811198461860490288810798367178169656514474820314002642513991288063943747905585051577236151842076742097630895636449004732142462915073440937839290316888188563025390400689975327237566562752870807080740462258925054634762864942712711553864498216228764549843942183883337740624766157425075188775225919433971632804432553018567344060717061466798876321350658374074340388028977222644284310784523692134109086172710994912874904547690405283514795095326779591298106155116350185153791582074617323523608839158179039942303016637207373658023080156919174770358560643406409486621306415487522009907692606897442362985011161514243058814978755404563281178415677424855853577214846123980261738649162418066475814552900269481194700675603560238852529368728360765573849334388546908900418491223809565354292707649233262162027086144400584841198283506536572946341286915360309473726285235979788565543357968190355086708735086282038597001701677234688423652153106970923455658183762345771761739420474082249566492906465293203471475846272755460227789215841942408801263965014308939061174304759779592222461733902771006499883280566302511686759240630425654742661585006744634734683345415612167841411119405809755401592666907460358115640412204412175261820343159785879318883932126689832321645419797200194852737093725058723040070470132871637479927783218270252197579555497853272655082074868848452816309608829837182846152904868062736439767936668105983570219171578873214898858830979475215258430725968359671784756785797483533526130185244009651635904703987326356065465876836934988666006996884122283343056540409479175892115930693997435707610741880055003452731842489051028205006976443200532759317663558037719583957141844483662121855327307390161298212227902963559804180545104624270026754413818109207762802663228367426643431820590329924018456256515579533908621818078578985256337854917737515239312583435098246762555952012073244535430673721050939403806236411427902565091979464964241445116602746637200331695634926520048504650810869261553571602062195289847544380240647821996280719745621333359915225949413633777693387814937912198420131728537780266657134395077966070345057994597925835903791816114586166854576840804374072632452478743638799430294810489840283736061663275167136202721161183686344646916641388988973772065123800563275093417948628197152836529253840591006886732069787868393788375748141979404754993665701573367176775942528618929028341781146591599742308130629086559691438111423957495682956775594780201350592409204473165154064558394880007901262156649833508285963721240309313833095902681306059950534975825227312337121415544602258942722756300576189201376791334623120316225503801262148646582170069093517278949375830919894790359126045734285976818112804587760149035410654020402614465458789455656362713023108312773928442085472171048503997675284051274185838369562919420711398478292236520645151779502153879167115447355541987711738165482960595314468384424256528782040349477124094621488363953330345619810684257243845228671529239918851584531477642777416602046194755422602552599312084896194011598485229962027086073502045372940974824993414420193139448649474813367729425535313069897029264858977877299419112661455291559221188482408323186768752771310534083715260534504968804622585877712448030359159176175824198602004486248377111426528234451411717782110116288864584917912217136786608711869134250945219722032210192541426828624727600187923497617260666104105008590892678426709586014616223727569063889986838351059233737266586091145945336884871040960761762763172186093265164171429828185025984314921550341929983656557186365720981148068593854409673203711271897009219574894094841680520908400582110670605400680561623161477846961120290583862145619035258213130263403914676456464582267687594226305024957193314536100051697672643056464580723127594263006203838149137851965411367437611914050787663480555113976016505243027930191886626891373140875373920770296775816292961065779858623948710809895160540298973025853407130577429842334033817012972118964089771195641139473279276781128864802513215696778072673153501346731675101806022422263293294247395351659099524128500856830459137879705873898063838270001346643218667660439053080655906671213404964645295769354888852290790721864094264209128717652338973973331032317624864132911465237020785341114781779263227572296632619038722779309506790531673683754372880801815332692957688454045698516741431109117826890734899007130982358903856407740505629398235686021533752121158374106494325298044585491642772374892613131332042504976457474996405477014373672605482763296578691972496653508338698964146797102100572866783959454938792130171216767146212255246738117427201405458471576303921234952073144525380344699561111928785753104468559392085129142008995314330719839720648074483816996285086070314881372412577393859534319549355278232107836489286040560419350858648782664490487155063747529775343562738701938205221242206583352506363422871566070363594382416587116516719948804766944280858616182161701607696964425498315356408314468528470333563753674872036638338265351103285533890777446547544515570550391851203223846818689258094953800264776110152973654074741737314712053480850858335915433871093417275908826388278151238206739383507680072299017427514174710826115062200089082599567089767779144164071998949398701521616705215785957060225565028614002465606651135767203198287383427421469538224259836984834587250468912416709325918071707637057706265892038759201673645230557907110796687218217970803996945344624180682593644843043036847455634033246934747779570573284169264988382236074433540893788357512810794168670544151016163442682522357540518900161066557042060969368208369620589587723857168951237874538586317713830475482912849749505547520318047901279268221208480743166894477140684177049931592399999979363788388610121027075727386324169577332839582059566020989626019750377711607457524748867683725963196044078988397267660584317832293207340493830925483961011695092865150670212177044708453186834860311941313975521937553284611302828316509998918313544133754494964097483487066839683387015774371463574790504588054982789202574791253494353849657350433539995742618229022014110416397986468737167184095619949927057318963439565259608362120215742352586115111248672171957010150607805628343351983334948372493965824956829381496172590123032545742945487999091010143151861219601894453337768193066254497188044392409398010673592796081149152214081832892309660646089950267780985836508687390431439195429887198348266702382247728868775963167013666373380967918964254059071955408910682895733872828894030428761152165020162402334317888480533848075325454901521933755327794137323543621901722995459926911872270266764948348154044923779205787066681503908377151645496470626573524406607332842553582734357790943713244980838623127167246597266677852827166287877999088329608710109094236558372472225839104732958717304924292167272336952595818192985854443752180293877218273095648073695709480115040545476181592490746524730600984346166789040224982399167583142445856919082451982707045531818105918098959908909723090424980850399959027857170842236596106832463524066187671115657256678189223604282622253623832980874241094076707379434339814409187256974642160900549536366646700723858283046694730215158981164022698717229264706471436505986794633826265889969245730089833380409543684057751171400084338446825459593166666283644183328622533607582831353963650623478396312224480605902292620708963293661041224315111477807113033932996207775335152401512921732044365818713838862678231163241912933592890149587345747854410742896879452109513176873249624294036459269199710647232715651318660516275285041718429009947999753945406369081002757321317676909608238112705561741970165830597798404435884524018095435338009467881214463892776091660413163104499822724543457747123029167409412553059355396622972254455121496718862485101147733004081799925039773278422181735336860301013283569282288250543561363835116597635884194734663490066999760851148700468331417918202398188285112867848843611213941832813031209023468308914167504585403279921086026950111780271486449991489975575040988756719202689864969776481050221081741558830136818929862424047080460272555925067213540091089205762987974308741108802133142844242559048818543793830677382427863603419271588444483558777252813535984333740826037864895177379018507650445911706488126053480492968516322583388943691510090026921913427245888897817749186379718270410776079393902103445240290280686140919629213614444524432026683298781352693895180365185116015998769233254654414803785294360212261057766427354472312567910732009617126250880169556798596747136860212354131527995195782415733064157567831820106608545290016748503588092574908286913740862451881120212067318910815238826418012976364392496522308451004067280695332662116841150804391227335971384675042193421235051528809211664011912469593975097455200041378676772865068121325665907182164011022920397969243811821051228132260259743484035492437654960652735692425630264193151039320406456525954131054309654102471732779803884268681007200739502700365981440848074661172173681211948076915086654038119614845603862324681617071607008533323192030188674590581092233936415447200258121020080834830009058090304701301611087085026630566000934133912957591150026115182218798724720340744407661929124620678154152059807891636184209083637275383259222006637951190842490813590446279938565812122323134434954071280792665529878184696629131400091562448610524081439957006481333833784651455821557132252481293663333845171440422182974801740722619450173010763163325884410882843177317550747182735027637825430469441494972763801329514045464904894418915536364045877699755506184492463062101581977081969885331555008980374897848843804985563592788170529883791394093922825200657573784535980815060097371477738105238041215117357663220221941345779490205159680326127178372464138586595460112990273426349213412414505952276389899595241087022972020938672945901868486333223608614539432195763769371940463754405597505360741155668400324281826477231493827028245882840683869613026191510050955443541423228064799607018562638495012394528317547663269361793955653772606099625573764989153018563277169316319674257956211182380010986621543351897692846192635777126847392110286013905578378626820891162725820524386629836949883207710628310207781361210146642874444213022554889534975506365924144019849453800924576873016507412670103549778467702416302832760062100052041816336952290303436090154597601899857924879423366312472042879677348434648462359362333213601035085997122360911075633692894385721240441655899767923818233834504003567398344206453040323560274567766171881772662076743627195738979101960585624266694935142989880725770446909349747615747438979079669962714336544394814085153746212761834200316826086147742641765514708108519521884612612793454102919726024719048753333194802001771149413943241003533093604622881930058511497491660715897621127324027836331263123568218412684166504292913138611797104082217453193582830992865560547426004919596272069365724175167544026480736214760304116403478728680839124986469657486427896175803404166905367571950396792853216019427325246199353854779096807351056012727746107698394800554242627014956005212108204896142100161744418653324952853936148385220958633726570381749813371562839350771624661603308238979349375247317931932719014030412750060280332863852141234525640778498759480407576683664339689057344563216906695840796953569359862128601415520109440958132431999813397279863194581501798435693213775562361830900750053599927289405841360098281652466463039397877183125242588105052890206473210290887346382343868178868216823098971585506058134251832755120077675752525692730458391118170061087550909184792969460509618025324736081650974366207742191573665526165000944043450701278847160195120750140962105729667101380759905865855335592613456232542394699270544409426462596841124035588800387261369216246142388996630946439630120452947097425565170250221673434169603780791190888622101221368964503019922460773753603253410327327594804551970199287759446458439862351395789223999413538643964506763502791748523059504537981876947249898406858869227612834130347505048820535343903516000194271932548104701713865621522450283576364597854938124363958791192647965686191337747583353386239506668310468940216247350418353114166967649323749223060117461796198239214149950667265756988612078098104581942555890057864544508942065339178855016657673470762572544145480537333385758971857791310012115572878727005328029990220206793032201201135650475536840112236378091928210198807886114878753392166376386660033939374145594981039328908919885852495384195135584720599672589748832000538557897311964586233257739431635988556752963100824973115276580767334199369784176702093551556000190796796804122871026160797411821102608960776123764935765764919447498523149500803512006574700845839363338058297890978303127699714345327412436480910104354358557239666756761862717500785179216218075522858904290072209581171012530258551118321470258685569285665221189917733847698501139262210411028500621005298675812969883653371766674357506301848019404586388252268403692397967362291126633442119226490210036286474141360142957557691804116489084549603553786382394477475705207635309765915415470055563478411480876689114270829525416693331535634778364393351912826024139226104287030507580633729314914179797343334151846181611503235134565381386807824490946474044109328156856382191414908074788837147646040089536540352149932749686257934999528493437274606600791256982975302802187696721245488782949368432191323374461950301169155005301550553340626555390780555391494709705879594389192811207222687563726978702662972981508141138210631657853732937518782764011387503709112164433948725699934181998720894671160163065982458355667599538827415111685503553312597226746908145181551535839346816200547608709903661859549773845894489935335315247435762753114967724522103916307797021467861812687483439092086615240951356109315224126278639836476884082896132389196249183539272770169161909886262397630404610742188488581348141585372000611949576679635065548662976118179220706520181814667024054407870261601790525837220414579885796903815331884320800234449826054637303166982922549857560232621597897514672827026318045429460646019045191582379167510637630951143172202805670637203942617492589586777279935560649395961747086187236076638384281049435150979286397332009107572249280770584298984321850680172158660251724418914460948886295427602689955138223583399808445760681707984667990808802787779329952743165254019294059281025320777550632375513356870595567218951152911960709492782964389023883075762368659114537248739226959088319602668392640850374393534503843636259461466804330675409225022068904691836822120417499673368624390084191602182492733290588152731412381739436728025686011584288034462884327671578293929962651302620867141258377532959544430663006260630433782235803505957202149419249609353397426582065617187396940138542442634871575487424294178487012725804043250419060838532162917016438063746756606774074027949519092042500161507988789789603378741161033107335639507225211984657536619758768340552283706650119749948135714481784067052719575528611580344309793156336591404734914626016445329277163476926310129755372299008685563544484954023700683568223933193186719980753860980548232706797779265767032674331463659557409510202956526504112585336292412568961514664112542437653230451535108987270386717804811653187098559369673312264134779415042380806084156846451673846883084988552891177336537498403910244329570368612432496241463226712216794723283688478101152196019424507037433040362282498798756691864066531820324238876595390413254595790347091090951014725479155775244076049389707929980127383528219404465150031057752038091748200753007839651478560579782690596946432631189260962904452562887348992195823619333691581509727039326669633493930052366526824410128456911904518478583893279847642551802146723719233882320568817194063430635507570625627493473935066659057258559362632623420637964568922351592113720702074425756732488587287576954915324735922140470399053927442899989774096972941202642341188077115002208714511668689224529005255124155755178874533619572998585387291755347188316373981048566070636092352095651080997505765220875205924550480612186141824519746767853191602983451966677022792986903869239836118344818965680953216456450450450709312063194150889995045410871607941640047159256658852654971232991364929727728919805208702091639833023266039671174568376410701615293256175730440185345251525075622492098308956723973551328704696017473294125628605129980646840359805213854898675054323553465495425426032925155510976364828075545713071054334779473810551201743845564902859350532031031614029714923606096433849939425507404398833691539523555789122140355031773999729617046429057785909829480899316568790895953494205755785856965813276230224612644398292866283924828107705781643267173851366778283458502595432751030462662190162592172707439839192030026532900058767184673088877814014277098143783526553320634492899638496458391951852233785997210650043798841871062854859418522050028079111998974983326485488567527876581775642472846405698655619492277370475794741057580269148278668978881405075447800210682419973690526015682804548408607601249344528391828657837902361067793819047228903889533980623195866322107954641313130556547645525748214645219707071768418272121387671511390273173089518335923856199327585820960045458815979621908076527962406436605847190493890527468293443734617337586699614413625927110444226781016220164710994904022359772361232099476308608804890720732189344126599521656839997661618208688406055120367684875535408392451181679988862470601930753053151011521214756616093538850018244967947678238786069073954415254230728419660507412174949399631711868268470249565800161186265524458356829815379151254657524290750984043674993858631182588991356851821958243097474939584772400283265232652385222988515358394310643918735639488729918909109415500518925387418078204254175969439257714270088599459763087351497492026203416386531925496013587422371540497724040751783854286580423274535339750954797703082326650316682259077957099641709558043874755691979971853023006514013250605699209025670753189928404141393117149416371173299121169632367980544127668707959192019927836089102396278529940938632549010643652326947853717767671401450975915741262060859987934490144908198456906237583334379403035355945043682574891849118172293296297460805337146393298609136668296345684370360957389991075636402532926317457405107926800439347139935980690263370699094661942865740291735006318071001146465665561138640012774822984573991235695136958654470511603464743273961895514268316460257755451582038954909366821010261484342421957405936795999030172347801424744769333428251755141796094323352767073868716135867635227039046400336875845781076175086580685325274658158786472216946792376588588919538196189267039943009914071935382111247396944315990619396146933209113741057436486314687485934357309518049437592248912718698722886956313021576824214731901062576136403000898874036510882564330392165771430088092251756056074231438896263973678637341190649350450752888555103857691522665698094275535528019236609313171310025258230872770755827599457644722256244905270029131315752078171211124396296973700001280888857916569382146424194338944824045043170542746868401239158301475258916950253530835900808952885871486417173379171324679606342077265644787190849717816132539412864342607826539237712566732618059105220876794421183432672347636003011021928546697273936636403378946826974934665126130091040389104861984113739030538812448837923359364411373571149402920868139751068710142200580541391212823404584957408316360865298174259304521021602891538950461642435229121269532895541739434089273882297404006145347687961714028809355581997703886954784911011667749979160011386453441948631919168362548162506262885632727551167755292892944719439642120641672368614887932772832177286847756216591729249327526893201848588143340967081473498637770467778779941990674448754480133645369161994211554950784306849526031804768126506848586015492474169665867608243918595592057998565496610232070312401278238170891034388709155311099658269160577328089911565563795651906680054660614851337641898410965333957868997725086082935804875336766133375247039665997555038045461069231866126446547247811775414306369380502701212865939489009636309682515363746448598069364003597551247645641872699730736439240588750861515140140144965674630744975722443805685442020712697698695624163038187993235997608556238668482974943182053302578901560805768696757533429675107280274624831249595779727960483085134907039779195998132238520299206738676675047886994731661455537207698644973044108880677990643776907768752638688024301226677883572736572661719371201308510867989223601737339625366889006587234827050437524666328497122284396855701199328995351364456593966920735744019720009002808521428097311813876747797601346272014580085907252744600826546399540172833875980835644854789635598407113567350847236318062598777267786258829481969510612340236247223227957740343634817982284275277141330543183088959687209540708214750695092477953879975050138190549921861515905704135392567741654327782030485982044543400291424957238191677800512587894013390587334707020287993555924467535883648662236687467678542130737571182547006521749852915308229919919459917536286429330918349123073309306427672166445182826000065538747454046186927620588635907016995690678293970909910236606722780766130462586090777372791330029147795911289004828578855566360150752597715237421212471141847377702275521311287675469318210005208723195572190636624166756303234294473590618857220802142184568770264495087151312554198833006236570379522903187778994003228757217973748305425462147266899280613535935864244688028596802184594653696336157735509394337557281634695461155611880309515857848697949311334680140209916210603160060801568853402578147303043378856543587019771550272854492084207401100178146651041295260094938811582041677452270977117758609060374555698086519162238935169019679851794701664525129883892689027164705332585582614830945239491662097573552654459451970966836033710328740826166106807346009025409443938580110657201768203422633316738180084205743885466508184090592440542905194789939394657669655114903028800581987187630457864462707912411421237515880013956781934575283077416061046713773293162580086241899609473515885570479868088754807407366060111637578764449279564916285891865103263415288849401304477926876719005003970815961220815418708714065008429245898893683953253061660785581571798271462219166417814174080404829096328338261469055078711648723249581590550366772658152604618603625147822356495411334740436667641323619612594853657063920426225173100279775646517832066888968963480342825506482693861603921918731934434345012050376584700255297913370653952347769855300153803942244055960740963374050480121134176977889828674753495417707895207535907273008870217109289900647820355447741705095447486160182261858536515012672279658383724086520889626387397271692530695175814042990413707944237680933414627532199032103937522653425231419564452680829685545342320820937457947071927043936183977222319806990398813663479186587613604738568690162263707004673182715147833926791136812538658577295325348611674342135125439802717875390975285385697773132459175504526496502488146561339371077567508601674233178239683314069320825355402709368316581809848917222370072993290030444531373577966242215999607070385762940155126863206081426756797224174827772361645025456411794232313244409891827885242516475174460950394174879838918759373975179884720299588659024833342480893630398019755932843960257892026804704849149707305662378842091946028586325076463302398712335226713397232175178177085142968293497672445249286709207531287801757870188626221130460075624559434806509571602665871868237176516378450755910099312014016436100686983173532548899797009365976141866929054574313891849902808907622985955933563096709892679601985531841319329915902136411417334881490943733497842256039746997957636909740583508441133456312136159862391907303318648498919947639422985463847967085304748610917557621407138347253402231587171247555931893132579372179385944710615774435767070463961789480715874692914536118371799900535526669001098051511816784664869997257991963994648419663831198792521433524720077946046779352406364466737436551900407155113549375806168701124242548492940009978103083828759566553508466641944499898868148196010004616560727391639345122212420086275039653902166766502445537229283828755523896388212315538286001517018676087242302964553194397152225964151250657186224574571895251451652165026381990549943007177103863915247574171120487100914764885807963817746756214000905166262008713146054474811049866920012193850588033826283389651245539805367588315459716448781759051744132585379821731253594543330223631100906764622140579438187535332592497982364245882548056576581341179603315506283019439853376728070168408654713472199980850929313677961076417403020902818862505612137507734929434835730396659503411560057544285931136800829479306010394189901420396194837462742390480165111396744942385940021228066639498178030473152685155313922359429375532307916762126700468874957368557169139236339063040205332635991903499977410218077501302030686982244747096234824146487924914618737142578055980474600188547363248452749022416760719687054556930609526199676735356362705228136159455432867012338065542943396261318188011614043437115834342356547730995887967617384214924448639306175306635844511725482514511553397904604017346053421544520773617393493691662067772027895269673145894216481929902119597767855005543847888385212786196939873805654885888671874855845087028188335251239223297308079949130796392033594252303636332881695412404670085428966478841132674442023993977267035344834459886157978390008428245926693182802029782593935484339974082056497382180266808687608145162552075491177961436105263431254714066942484591313892998643437798563366554241936492432933843802123417146816803734685667115987820176051246871901333476441832879989703092728019887670519148595127850954934154397326730338899986639130424661199627735495031960285521507610632778109470393816927382378884471849375379446694926174755483344453703699811289247465033030582845900235588780326103408845040191991260968092389196471133808800244422607701891772078085900916844453685866113988001304005298097545481339153220314625720138719576257812880905180015001463720162096045486276990924055212364434990234693599978472805805504304046288022298929750467951693526739613127291652530633727580586116881083745911458039356985200825604860255454101992469888140332911995512128586470918635566874576874485351641574851384201333307404500997353082029821391994754304286433450812108272979964126047538798215835463480779947336398695532001897466160511278784493082032747390812030643043459056286849031795579063473122938638681289340463514231296803921248200532130119509216322499412110924260642720563189912359630545233585365410719332171154250262748926732314512227959782914708166942694012329007052544679113739502123972827980462541598401126306658078710049103755642967345616441447870209390487144168260939425596615249861285462618714741698460045393242775906152543298022111624497293343758531928574895561067885046722494169831777440698858701603026748918080774016519082411555941771011885858275008058998171150867999343238571919287815528853800512470559271704541653611631368616098964405991191906501208069309169150533079683685721139705062342930485932145394304166164251747835144627043336276741496458655058255848651767035589748512487342004721564796809437710381930757045131050867749276495996617581326652023183611504218495928386301101048762287201456133984182914996887524068083365910865847765199439885190619854324271418458730233790872046364997874765122935915753674038032497659728775824909853584174960095502455229251942527953777157161728376116404459825177433792632838435619843361172155275438648658786269032201911907202837324765702280167529782334987951852531669756692517095590102452143691157672213747915825149781689151031043005243169034761327491637734293922051616932900577596739526524553060190986789951472320671391380015940381946231132576818631608611340669154669112212354954147328925144173631567319978487583415640502007131630386675252687871497222608912251055789780667372665317531093634233413731187627228940890078317869082240151462883848268300132541725943099583389324027832956980576301923084502148665060910789183052242742322832941427099778494230005743637617932529884188483229902362659578153303572360072344123215556053982321349341632888319256978269756406089327151648939728430531917886010753659312356133286593238279190781615239259752900534697108061516796287513412406394256694319631562135169395614387808967423221807626299318248789974384850164271161025343918044406983301951899157727002047246006774299672892837965553150244160306707191898476224187812505844202021782032412061051871264525615265817942019474554684574634810563693657961817967944108044606568741729365163501730923275032933375829271042365165398584372468748755497733112938961494316604401494132670344562884864965024175212345100045126816226748715889294276258727925909147763481403302825047432549459023584992684643683617659323978631956413214314362825968979104029350891467209719111999090029399949225311548679199421444348552899993347185047983877953137522510515741644681510351118666085558407963090833352337270182285862991891774589229858225696231814438127219743472812914070436726278333944391189558099081237325296987562746293831567187492821299367639389784963380349287722650973965648999306077634852858710530664981428275035151159248146845784760134605607027566162103146181674635589345250118679068841869971257451751980469886749272016892095586560743200208792147886035567893544388206964026477708771505723822492195769785032825459119870199841245835759305787513003251685422165305247962603434156557417873902431466940631558843725340457134232193987259338558941215758191268348197610490348716179957782183449662082375962188645345199001013072510662388785933239653588570083490304092871147426763602228469612913335322509021500932541260134855876722452830095438640559811494383233536096073608340764617421641141694926491329809468429572020114531480938856553769011982229866144232737737704082557887001348118032481329567982408393098207181496523253298236646822380675813567814086232609840804029064240245050937732996607287935423934098201517359158002587882510974424712979263692064472274413796008310002721645180227718780017841247630765263274428957334698626321411223317283179041235911270804053345899121433002630487089477797969564079362889141147221716456475067022575712658379048462842597630396631205582649784093750510820921076709076680469258313084613366841604411743541737898722149650943947329070598449793261079079433818394614235502560546739222975687000098907082639604285494714743198812006294753138548567337942506608041214478077956575393381266020270050601663789227386376114253749714904311432256229146950151126886202326477966811217368276706464246094265836952772479446677201055439442377213823643197133939822721470967297288632115564936892320886626350980983805246825712206387738719060255707018337140298115765868122134646662341371953203488666603682209633940272013079305512600061115507231847455033671265668422659602167260592992903093214448420921424376840919493344062301327281785191485568033086072918756794297979531768834368450988117959215514846438711376401549073391977973343450527865358228414339850205170804933012658589603286338789801541050012536136473806749425181519081276649567505866663281594440680909123295490778367832577235427583940775286189223676110175068139662061790984009356577066511488218663152207478163584203141369094632144155205177378106791190308120757572187527401941860309554301578577434078750632457918993396359430339810961392343113397348604317612072252740353255072969326401896768931665161608081848967445962741983530374172675378341567340843030859965990440718070041152758191998906837335457922261035034965336325581263695923590765472734323295066621229144176246293208990068031725881475147846192009646608240455293804664937343632867295667845804288204530717133005946974090786188931641172207923542092942621170137841374733079059339906563812324703272044643596440799919872173744721905499719234831778151058930526245765929114331835095380291331202337932827533683261358545937612929005748579601943005238382859071707295913505583910772954216401999612288481852199362817962549556235920434639789265571875015183657041718097863779875838849603547173128243023858068685817344303102062800470839357259344215436859722487170735186961964192278485886799301043843079147455926537606123525427997618335511237831527957965061280104140020336540434364308634141553923434899947697068071891099481314309943419519806618676132002603045422105326533503162540468199305574292254056235874085352589716337224830678674886602212206288069050779495847279036081222837361135493902724281532394158385273368726348081899465345003601982860488187173744296808364413636375687955679895144349809575815863343876819366704230467542650015908029570917007691850532224964027271267799666012409367893534283728552022864000231756677302665477467334104712666805852473539988747171311594446006211194070966248111007476183937790807963392857327905686449090592399586810294223817682955682127258345092886395444990860428278812385300897321414070580406262344619799570971207407198270048640008279955759628999137447134909528150347959693207147409746685773156522612588576664764693018763878715984599375392959052685184564434898934977550908761665717315098294164069003394135795774293191957956090103820431409509876663925216116562371138308364291309787493787283466241089120180692010953521045480554425992758846771528026833358058424917110403887790552051834638167801732368789278731025136470300140382233587784456784522597531762036628408628944701392152345131470233379346649273287831428575453687992427430617809875302465492842114454624347741822632719415865902258250187984893460209768111024805952722942999786029691296832366059224731430787046220206726991085063660769214682341000122429434679667999318652309633069627877290072151781045015681393285138747011714649368949098874612574556670317153885429325553288088616531703469338989634902671049151051421249079363924768284121682405005088296498951570716409604846042387085157636491895805833579118499616609461800056199904197714267995879370923171465767913257968356812931878618432877186520275218075070712621131698315186372099213404370924113538947565087356453218818511380563284688499948642752223825910760539072778033534366114219547997020974407609767978448268101998803588620915468546115561736194077947714180239450680068674438303121239212777729273065707218937210858907634787762629961937824961289472040662119790435690527005393772580994051990057798668771145912871337432687332127412092931033935152755190636423112685029823040976583393919429347023900552892400727599022906354795889199483663745036641824312114461230058606431339029273262726997388056994009622098013228249254125002201770742130578107350886957115376916454050837934760511888168723073337316641507947297828344162300948031954962785728641260541504141799682150571878150811080538936110713938996598041091383115454532270369681783177180252110549122875911489259182560016312512075926310711041844635712351189964730325768132457059491234325510040520845708402460696927704472271880840044396379800938439409042340246709241974434332034441566470979027727912784933368275830874885625055543690196684833895636556672093658331124787915013593910386683311157941890200395658234337425307839072930444511993380243437813542424877095816176321216434978241588414926460499007728701001463754156791545509588678903239449728147876646484867121867984999626651192497846258023593217840766890344177682322282220291175811867973515260320451371654118827606559042668091228927459785410001447318029525956897170024546811108124550273076162523788148995830484532796905269246092608621489532091380238059762195461265410729888911903628734139404969674648642876257700119263127272345251003613578279330620729187255144935540859498068737460729915348647127415046207527635075422556676275581231936472527453181417950244991244099113079602048339109185310412183241164956210771038010669055124780185717966603091111006557460691604615697047099775228891823825535009386570041131876862984630352279689369755464950269920334853562081615678387479220401294991868134190897057297426609328183657114985112821040760379790022079267652227714771384706813076342987759027828797722550290938396218687957948926058538625544096497347898466921890068128540002770909057764339713015423373006345958440950309899147683645320706113353415993045702086592522684424324458783971889174130166400559485858431001407388493687789812601966672234477653990657241608089275123200562666957082264723633319480627446600349987955789379823485448356348765432578262513233403107723705273637823491475579616350094213939102614715070087455593223045126009763931839995987499967874235465010291896984730254030982665933555692216687873877780610293725158830295966946974333351229965041234411679258597051772815693105550155154633957914843842007320752185213568273382385311457380410496441849251684558974795605219053669629518711837217828900580109129348990803014916416296270854939048681360609319662852701533853906376708487944865221858445697664785569831165910778543101963356558848244740142020414446104633973490819449633599734135788287126211691225456662816632798749339723672134662707939199656013293446316590054446847702107621852153766128591969473160036085934528569564026091117048550191599930221968214032145232049448675035230797454627912378255307687224141320678571730985138398072497754980646848182485083180299914703155016651416512082001237250333011204889899708554462746390386756723749876835852005244532635727228563946350434095946377566721057281455662372729768759073424845148628867320001576865684847195888877473504497620983888091970933731339882960911563499181369143111910905619783219624980700516112649038327295168913073061929384182087084690810527385958348721306462615804624311753797523989752575539061882494356575212109881590230297699113493094977670062967449290003322017105402967689116146450993704516709442245809519685084872821281895132136695040726712591935336624778034164604909268557544990475161729879035937006408665490089233504359956053515385759571432950096283945404195806043485464530154345686743309498285560973622038968991985662925478533511031025253367676443071531778573783137009980489288988012193847518001954046382219262513325414919221689645414051627799636793517895299820138341813983378367506020167238059999339581709738560485396768279166470466254078513187092221928741602439344778270405177870804493331979525543722523642378118804447441481579489818103468696556821416777502339103147261635713534308863283049138296949322112809285993872827043272900674071028180357173498368446498915068836895058093626844695778712044960149996809451948652306073362423212226364994270715694097076448521456855218300776388812420012496114437503513242100298024759808533846046727722398110879076719509656477764638840764085636976709180007236281642301232336006235806997224035956754438532267918856592674033944458653555604886568000857744270803459123664560322362487988866309980548352613939856271898516611944457742953652589283145572861204777672953527048992263933664404814309839960212005776146378024992552886280230251204514736454924016847814238549799306304815936096155268399157678955860653582464180825450902907416199455222430204313322747888945643882436115997610650454730161239462938087450694463431561841918976844260817151990064560743506552553390934042472505635031305033201839283102251856236219555159055754239300849047559128259416011853486518813971412053890342324211985542672200648967985233734707525794513755532125966725744737020136117318408398575916943219868754833770228392966014047873880941349603495947449966268842022189249502335990469683864757961512859664268674153248313175891955363302582017883659458435732652776641644330516031683404833971266383562714760870109576904259713195704396431339011437227202904216756464710395269652052970104730093254824604424887407204005428076193413299469272287793570249012598829523803430950051970565937715003230089054034322956830744775566089583608085217585368671644841471920165393161559079317021555127306845771243892630951038953717721491282265639563146182125813243455047197483132661466717136904269756219419917997951955160169064932569796884458113215630291093231807698596471569815060455035583166021050036852040408370892139919217825627527727917510475727158008272158783771455316936296531217246650924105746890813863002801439116222448404432652027350655226768557301384564778603515164096719549270789033936220479540947675104894417397446794748375568826877971386192954678231784177198254774121408936833531505611633273674399047228813107616908666260274111997973694142868869168441117392803282953282376068666025476434478110510306472600914978760194494314202166928948928837524845351903659060950585262186678135687478194287908097387648490089405400657112065067808752438853823083779126807224935702510131572374974138582827542844782411198781937803644586803224746098608673719171492674278504658590989866981347225496560489857050734019090829140212950434336506384246355698674519761625654422412583612620757601747495262432796491795977543076216398000364823774163238579388145885124678198304573956232853940137774881034789416428394153214105300886002280422819684219703548563060554155346881526143240526729012298931911564971364506274681165016498097733573898113660072723936265870554382837969351548954096372769154910009302844805609842886326233185428547756117838751458324035573241064808206278784336094829734042368452801877776646558569425895264532162447456039711124040293428855793242895623685749130158992192883592420877806544031030119138462831695220914435315519758744934920959039665861395829922571967867121756172535031641229018938625178856884927302448391694426263995044421414666598338851489453710707563824471425384592363659634929733039328363492761142384370509736670987490350850428786194583071052469946529744243962904856828335872840015537610982677405791495983729645762187506368165118308968484964002333821585061144681774998162165496048718577170801094787639941360824385582926266512183623295667601814443808307335098861165212419127988113734691321757806897831603495954026453988354927239029426828843549846641832032627777864091547323110874041187655074601280115025547107974914834764735710490765862674505395813911218627605659664624157058746812107292442703159568809961820056072128939663219012424453272986793191901942645022335621600358614986334248140490985978226016817405600916310561492748111930583283095202632896908501859743971285791738575358502685270462128445046983377298666877187922900114126957182721655991837203726087337807728041881018278481047317564885467992477444800082909344694371144486727378974489648422684040751505832750311277613283644723849550437049177436553713184443590638134710796515463050995411924827441814359627435648884292675185154749589070664393809167242365839229380972248360054859272396268631132834390495098105382571216626293287470747277641421647047975463755515289561472677823945610333466187572958829772350649935163932975270684061559972968490927035729481280582964606474894079091795035968600058365387595822288152390471175954604866371584909620590108524833329583992470070003295315710325553676321666951164396082306355132923221652324906249176815497059581853922221717430351040140206142128495136433318001084235705239613022510569063621459540346033098232689911569503221887979274189621836458879074366033013456295855493184559772954433637371952550193092959489757425981130217788256676935240533733427687258847973453585517715297899296122941021121429289502927841816501692232669562378233131827204133350061001166528289867118863277273094082636953336773623953854319248124205879916063646426268582888406056925309416480313208421961449366615626381359005523863328403441643044233848248071499702416690389374904137265563877142780923200218388913549768436702378114450467880360303809295974336231944267462137152863294174032333108328365664365038695798149713303646978696470467539046336834741944904839448497531719901661988908763310128960973379312845885756181073194066780986378888003292407073992730650792361694207244599502737972374821557333579326341489770120755875124300763375638977613153663846372229451756903669942727584870906380247755965011836688863331659426317751079006559006036512349868567919972763496659323086440134172486800712878462576743418304474786247506387093154629604122822798615742617655247969060063134248891377642435112400773488810548647549556169407975527189589639000926504042165327348599860983983794427183652027504304503382602661540427614652178870442848521836386918761217641117684336515524887805994803495508148989691355191215479336779420120390760431954605538302107935714306879360047219996796135852951248709093834429547839683942065471784369681677057594628477920097582088540622687366494733579038862972583607278173620563838476711972175615566104167219946337181136509603168284920987518196455435018269459998591124436204216830946738971766378305168693210634277706886819305533463542747913103990639670210366731342653685051680052192171101639148989842955024659954837520499232719190236536227453465345062323231423544378320623229068156274737179001157683253470128646527707453516025096710353970818778667774857476151747543987744538863811256962781241304788880113118400245567721403951400859054536720252584201962741548691009162871030051722088057170055717633263893966541558407445265906832088580543428361916258202212331114238859156384767409043131719915597242749492019244264392002412518840945178092068448958315592562779906046837892350128109110790933561979612054299711827457695704822494081212055718921628465360727626287736232811002749761851183443073427972925076516873718170474372469713630790525145551524078042770574960368744490271647524059219894858942664855915346206083285665778448556129408005252060326253554926355372349046059199684818265154348595018223016814218219936439794910783391402172411902677961150390969573890835176827720311768551812620993215043594518047754890958585434968535378043784918957795649004303519803413625948587927887913111766213352634854243438810503963127596175665720258297036636444944765734077628019668920584739444727226679591526608121358076881885202323306223742478106139196992923109527290317866237956496784241995792106767600816841641461294144722921280714086425990990330026157095244455638668233073661612815470560602733992877283800032533107836905185741357898384287010837533131936361021516895789022149336805451589814046059484423715885865599958659314965599890485035863988797349010601571095508132452683451724886437005678316494755486528321784572029438070881321979701700182837566754122917786856878978779328631553356950863887565797101145054459628958381557710705495761801150147481648530253540679089864960412117684414558786927476206612106754874147775817903513596534693270605461071430367792707577580650510154341325140211270536873652733341420564027862201819404588415174577423705977397621036403173334180469490159348472031909521380913168714595622612478264106007295706960534029063515634397181378427557939571338710730463643696999453790630829461797155503179222482314041950253451595390612059409607949750973633949176688942770821844316363215722452610381897633504645176023051985230477324094713101082102811471521813615235760598261240480724362529659773238117563072379942750759954513918946927464346723851692156035113230220823824764551571873192252441056093922675435339420745165559352843059543706415957317499008280357898913581264171642480666920425330364321068699328444248841042067685683796291894832028347264060815026616216083296342336383866924536898277280731735594788575825821686509987556092730602955869357182131991375750238721337070369959287246911424167972684552482909209682579108895570440901039888537843132805577926466611041282986340020038296421833720008679622936471712848982645303301697891456518850329228024971065408001832973402053024816596066589482597011043049364961240179895728189453872606268721494854234375115641093637300406341349929350179367844872868973133224175099358292801718584957293418383061365464212625451267182830847363077001155537090781153403339060292940013862470292038055492801851285676394646080079296056010932022470415274953911022626843337158570167639378837604502028108316569125227589602504594710739403743239972743132140606277113682132533302566775679510951042151096075846406654189527128359378620559369780273128965843912360895472972198491146520320700236526539916425885049933867215387445109394283567339601512767239893013922023689218065727675617509029373109521115537559724691558804418613064328327323761002826237740254964520492448532733458590948995499089922232702464809379814800589484083085256815654405135312868694538122512189604825236230703356827216992641482873607388389717338905464111945192408665870814372314656439388347105825813849992055091108994568614291520630772242412376194910318707706238433288405711281430636619057701813924626651280600422171458380147592899689399118595100662441404406215362190536278422056726599510961986042060202183751417970244468270171413731726398816198728842795362678750465678323748419292743845644327115363565331597756648917231061980354517317112885922864934714504973366054148748005422624221149001732250051210022249680351417053695310787317393475921558306760908717264706767776355745553507110653289836439434899277232790946761490411119588162974439572776183240690474634735663284435484687535547851144895396054210663849091720487093821659463276759938339052830181295573472358587263216506992847682756019985067847994670565827384304748970414795657041179040899449089678031817929652576223176977725879879892934588711436644461216041651773358708022723798234409676681572908265129087125462933697434187568534187376534139895588490647500112030799351502120520473746927183629732101478140446134553273044064900544184862160799575787469167935394344271679906538675501950461507914737822431786710377173862123071280244360868714959702608304055650683465965971109985650881112284688274957945104104867211564909974734115768406905611875961444793755613371563238926559879422455567145511824809171409157757599279374950200306117945716762655427321727377056736629864865575379994175388734888586400097993328377331951062975885591399512704814309450139015814672515519211242884747231814081604333679833175101243500963145324970864839620199478223934105931162089876200233890593885055232863895221863911698818327324511596745976838442381931545943680007546072753716183380309718875803992958134420588043656348818480197884191694935133335921867655099797458218745161850666846668665812235241412748967356079900266481282736999968851476520257966051443222991195608573724362851830402479517484507148613627451275978499741282098255174605712784109155004368981628715940337307687897314828204770898422018859731848619499128725538302313059306187232403484284396477686282323477146336874040853434070956637705458422011822562744287855837301814460504297326371685619740859244813222671089765364072506489084339710790695607390989887943425089976471110293513920436722548313352100035549230533818591018169863120534291482126650128092125133296992038835961049126518543699662832191424100390934257154927500948179091816771879876058998609820584637346424710000892903773345313067087631100562408097017198956572135831293107147974380364212551107913042147904150272724567483480325232559998255985607075679879141472443737545950667666991619181747436182625184131843051625943602203954987753040652321975493357018594228700477296418628383544752800802775718764658376427303341415760411587317532100272248940885827698962919224386013138363439032267972704913510525799438726327407352935617526255991302845684447735334018867973438575841876187188602471404380035074449512717983979845936851913343823843928459326079582427434811698541853821821264159495298827412413663189402254823015052327734780169655505120585707706263395826477891209015706582661831121014095987700564241849416407418771701502078769939036404041272892967650125263233684287404861600805019455259365616272385599396269131191373567380525975490319420258677503187687551444982063909940308630552552565175779720363644675875346563726762484044799418071024065767292240057699620906395321387894253432694922967181882067536334260140128553978321169944998315948239659870886844251174698175729957367109680292934283561333425968518301087270834235127601089736750369256908933530848319925000672325378828649597751404153857714981711316579201749618360955004136823952879661094912679315875480105062368794389765850565115956410384909867749729492335461463688252091048215299741714861568412325415004829615795697054896710232982295818527596345405206518862423791072395939647042067377714403972651332327617583455789503053950812824115904029885925309380733142076659063606253631473411647506060438834432561220284264296212651159276420710176817380175256498342656213556089831289690769879870023179885716724560547595954825467351267272008571580581615219853609688537574375926702758883235452811203387979688180755160245091780552591367083372633534793613185505315213263248712520776682752559329596572067733676817196923512912555815968883368562131086358917167844846355282925695280188455465701982076643525716959009046451440152476897218522985089813684890839303003362075195573179878020191821025380310192394645708952896666340037256230806222185419584140225997311438279614140965125670332828003090726459432422424089136625127727428713710100289826907063140215401357241052760856960382314130579559383577692973033282045885373702632806403115744448362773027149087525614849738249630171893356118076845739031499496010785719807351745944211590084846447720550110946915991041393624010487455227050188834031523322897009380455294554078835689347925324945422903895579386811767620296918392565988262489574929081430388403594282306085733868572821370843988635342774504432960899530102790275434501317467938329184710349012009019292942361586556949948113986858577988368756654172318729675539365524544559300999430857867621520749302773227609487578354658459046638385542958836862043668313901674727337699626244097675015108185659183299948960913159050570319010941973721555101315111500795690353512885848038494808640900821919601609252266573343412098991385900061026502702257022589936333267341891271415758192987689852120577805313889910057258945308365649966187072792961104508523921436651755709498630943615184846461146056617349796460306670793861563187985924188298020804198215132557704044543788958483786227414597824480735864175739953790669386124563621393352476537645382457262578909364298803733881066240067607751438990113144592876175041185982822602615121802648840330292403009790944185374027862715962163823748757342913761288854161597738467461551375414743369459062420998632014936531909290142961735831495602646186785731480731989878229572099150447210578417004632647674123401830822667429396428802453894033227576219273897334376953486528196358760044249114664126396059320595795211550291611083232490971602690131632148752519693861398525924455450064524739992093425540328974228664149436397110057603981158352793974991409216949989968824255105582171780245410139322334923020804194851721470603748531739704152168820152064654479572844753239364539772682184013062388527711522779216648211287489655372137145859541200241712096573696764910690458929341996004411229688199374073673420158233317346568272192910449118896830204725579750009959981936743245597879362294826227747929255339723903601623267861149556196723118828822685209810248163648803666601929269467593981733765789917730372137414005276392252029076047254827455509256292912384909660412082453642779600216110055124955935816175495718781628377191141112548183169284077070901316862308042008942829441410018218360624996090095841385429235339239504647989291659585248562818388267240634195321408851426049709305530594254023674483942535018867247593421241308896005402893233987187034428093529120814291252653999645479854076688254011212843631184965417973774196600964787070508339972914282687315397893680273619116647925645752864918516757861159183649290751655974732533375152165490769702199679744606935331232797796533681812809092334834076109066091305774591782003201058112029797687151301359171128898795707975828155324371120560456432159205920800431863173510322691424709125859796364291499802760573247657626866383253608673470673746188160802991315046554191833187418747095728132959141676435474331623189729012611476038833267358068297588317042833995143534908657391476197705461982632419588900114781313988822597896594999933578834987970266361841330284957257989035490384944639518434152492879016298228720846896756289655884530133855887552660191695782424111035763730529322457211402633133578087289106291336034649372296059410213442054176627374509339987607651088470840589292885883446183948318595862276723601015614435972183002678239049538912046137248512925558500262694686747876301463897654306126912840032570874405218338891431230453162720190954450556262472677688269255743529725909796375678471093109975183635008470873729618111364462617810492209831231241332014664058459814940256993474396892077086506356157535719933092320012259983458371447456074560223160292002295442236267175304123758442702169715751337319766047462724192421741597946943165861296173779693990634349369805898716778851054597878602075043487355800669139958855699691839802517193527984823212879827368264380654210794176256244664904627716421718334715021167175560605631449331418047131464210560777640235170099084242391829907231244966746746137662249099350432992896409197138719988301793230069642945573367399381887257597518690023850129993846817738212072095166190094858369806240814522095808040523464694743594372857443018042130463067320976393854657308050022983128953229934328414310143394502923793127274982780549971042826491631430766973963366361878267275567394205035681315846137900362092158955227090950515145663021390938927890578008633199960027714708250110419589569996699776709395962288747118025612903802741169559262708272012791087249515812882502120256743210846486190065090768387886657162578878285672427491265547425052915417599986643885797911592776934326555350209686011127030293562742391941363594612126361060458407318174207492124453012281636283994644753465029280528681473200727272118154436277256189520145692529048195466091121190207267820473349195499486031407928207007807330122921854567654368603215887290423914271851140775572716325440965222401849097406114108779431674894051660855878923040868308460799116854103709157175411919460764934055318525702440255664884313100179218180908357102368387095474387064184745029123626607931942310219755011278598241745657712203434498451186608721064211166754035784924666301664124762027162348471209131628531813017417285325784213351697965930775252769667298655246951222800414952848785404580195140124867285111608277745142603548882895867711896562561768061863507129550458886729216985934360033826406658337120595317318040238208738633923348664917956848969281966579743587160235154776042888530330499313460549807372583881302706792351319699767998064449793000748082889918407144965682278884289499596745971254572973975974783914927752020894724370295699825559762068898642904568281968926682085805960286945310347157308307806231275072600101206059923677473967093099055398656850082133152215509392991999753509560504953435500459458096765684529078194264733122296001310077669447658199448772473226987841916007631249303655090545559339439249991365842268632380347647127118782788001358907866183763233421190189494670676726157124305109420909375486486212176198489984518672093501120926537773151165384198813404812796156675611862965232809385664611700824959689210373361714746298699920790982428735636549010970458394132721308180094402354182125447763738979739558156132634519505581864760020241217999135639367738223197458131238013614563799046647496659955638896320847643005366318292861263154519340868402017647791227129119787718200273668235351374311726928269402838787508513780086647460470063359495077472693197496956001328137326534627315112196588821116297667059422839753872136435308220182530300895291010111209797254760547339682059415385326846662970934122645353436129881224417843283715225514419947403119804583646708845517668830833821859151908454435229179069750750911876963111607614002733717032034862087278146490747574539368595196123123441732913069742473536396642060960166670993920939257125606960936521896327945619416905616862290623750432090427042732900581638261532989280710944132928203654105564950168043611962844460424293247863679791639110940884476232715674479650337814622643388035807484929106457133972587856892232470863850966933190995301025922555783700930914124848377528455807112098827521745947211516136997041182351067225233880154264994579813574672190848511175189705040720958018814955255293653590628920662127962705174960297893339084592642344456256326802014228166014369933463902912440526211378191211341937536791728099460890204607837683008927188560662279743065651841843373125382041830466532312935068555780479490681684672701558156947472216393797453510863857580703555624066629834995880849609826344701855570590985613217669841662321140041016996897086796936576919552428892543809794342635992323366877009120211352178996569758121057989410864816553070831647775610006755826430149278224000755876025195884547251892957944343121941789034133980768460368281425366459111232065160815981456375187088790888194293818596927538397457995626246582660911488459871109808652545389461476879281566404388826414510282545700754940051702470803201313191529578490996723311663262790265003240256728755426842360558845086314850350037798596563650509827786186673351621581328353599896642432371545628897039931583744943409538791973643913983442214747172898448845948260652673128474155148079565364387037298233586474371053518169544819126548894291071189114339333290892720045241866160481141742248739119473872437274716156685787371337728463495377068330295004201827392613859347498293432341721918082205047672011470562218772797867460084252953051083174636100293840852483130951028909150547652152848643794281827931108868105196166925034100176293191762079265783967445850488843885664918384023511351142652092964193529375986100232278032235469014678834416852838535423768411288377555829218944916122775526414036211520289338890703112446105884175364259792633471403972172476600678697594385021232922422423361511939445100411748814928170493195889819433439620463731412929144328838963650784062763744867104829842370958896882405942258247413664282691080790146146171683432088583492837114704922491646799840318517066059947552810238073218274392595822138747086919038211139315533742446150054490566712677253044533717234730554928071166080799352791001561516016801372063245706691242277026777790593928544816423319063193654293823958576647117639106700346956165077594421452834354559073944658473139920769214263021672318566150124962136280418389961084261402713841551294200319146911676434562676146173561469116249128436598995390086186175511528779573379067595315759803586857789496163322769085923976625089953445668662482998296271076744083096874242653226025358684215192671167526682610086758354451108337083464101910374103890475742255759582617841607752006049655537354489859186035178867752363185320018342517917056327114494064975287507243977247998167822969275113288163658320134543580444278923947722025890719037200711285635653157475651463324139061952134719305474597184068526254474110906336935223774950193009533969754447413128540103566828330677771171207062700128007739425080634048369521961693142104761758543682426716159544390014567044419784963708668471998644171442767903688777969793951082444046940652482234252558363533406666061164862860280832677123264892249000062864865853209116668315180424792918760991073123171137548007098648801255375697338416699162974307676043721530695807328507490876186086410012321215503621077122159741992982720386393903276328019176606887524030934713467315369625967754047033028303039618939221644161228311043520464959456319617467241177690650991543143675655519227410746045569178899378530414416636037783139490771305607366480272219465121674947920643700316416029537003428171117174208243023272226120772434089330188274965700623196636728569054664159971895354312522253609182917837060993328947221336977776361712807548636025900222900129475323924778996182577817849129352116732557730373388165028969117307843525408426203627267443693741211487604850283535157920965955400162617576043567881483870798018379762122310656698952122397329654298951235534678825389203412996581797369557332750361138268745107139048291911663728404424875373234323352977885780655679956428761638549288167975139535982203313008151124961316358573572660230248011096607938636909861005122088183696107943704559235675660694046468040391349122934577431940046434208952380037570756065545916734970892902335568952034106404826755963802864261874155558197012867125289842809183620900669154421488915269492143535280763318675028351371417109486172674704331997583471064556850791304233174701884604487368723496020481751598696466933046409863629431747577439033173404484001371007651903087066691965148641341869040365984851078721630732877239562960011144099424400551766076003844598199083125195439703311660541762411288595679936722970666426876321698163753800872388170448541780363560012868303856594936910226808788749312587768212166909289760556219121341076123017856472425723123435550707651658243847121697176980504122171537487911693761094351565321888511795516767109900212573356545741318858326371786801755535867901844742361326182340336901800506829763351378699025412157036695596339037079695024361997565325542145007595196374950301198664373082466390429386086916008425178648788913455652160302897522732883849735236555962751683475799426480188806473829498975459665910935271143657444982770499871813764150518756983201580685491730464200545873010724876512372637374297161077350153037932361303674130216144254843879388599936492888617786844957829682725304382678142848244363992037099131904375137826106492421420140210246089333223786957430608241354950962084423871876254351129240970638378357309919951249865766957487940564366152967327673801283567567978747048955301360705992927840717263449111176122197317487370431473136332898507200284149833912294450831855477392555707319407774304792121279724342574109808652600996336586612123294730883801172812447917483155146790853654704807489097535780196880897625273837198780170939434118190100004744816027881549260642948879446978270693175243243254974406246510568497916277787850458678026940683753104865477296267877200764766685005939181706646732416436902799500128125233464504552948159184712926931493753594331959372599249686941171221475039042567038869679007675614894576574461753034111011513749039140494164826078929299841720507821102692030304549562136342653400673265102570642645469849919370539850885235823696824047873278802865897421610641496950144301265640785224885573336673504658605364025179927312852878053346188224921243022463239692274327639709011164126685824031888458401865851337147035804264425111407295178475377784620127874917061968364736594519455316501908268515761355346930635556184750654892129905499781779486987910117871643046583288192691841131240429188918073614912564968384806522591245664596705689836112189438746175615073297157045819939081294717642086292126810760608879153460798105195427797512127026152246968198775223650319070644526223869190626460654896354223668331348583323038359245562381378484220519763984419553054225500941907047118431225782373337523299016024928141527311127608076187253958666984753290064415824186455576347515855436594964142795349366239148380595894161721211176413388148627811882822207895180850899848200808084130430610575974940875152537688416047320886371896182480866486990688874348592199486475761486954381496443781458531398763574193684111579879751244340448346045864761719054028595742654299677254658921556847036630289842441860168977178106760578320753416728211407188497575571384916909564127538548272666765962256197174524106552388585416899515412043299941564708214043000814494352814505930167085963281794550501366750839458756886307790184721091395834670778947291961405886442769815312387730490771065754212069675551659145665794461118677136194037298309740047209857101427409344618859210950023366857638005697324333532600197459315241190809023109722973934306829676396869024890194754641593646662030224513845557596669912460569267211807669866127423421052686203624519165995341877527522066169440286890299430205870121996798511636721414094958314896452627857217604607534414280275484590074643007011506570408103132706643756058117797223079946073676385492666305928857994683353465582054596465175315462578407236573028190280476256063095069901581570613164253761810682810698182974541278210774792518980490907558791667554642925989494099239630432261269849659147262394876001909028193109997407947217331082628925888683414825632386719503535211195360846757719710392621879433607255977535911357711941096040874827053306732207026486861665177259295411136232609837582018819013821959383079515548160384087420207798378280747295801080828779789279721484326416243199790928012315853057185345691693239113403928835079836734332883473414729659949313749084453584676769050788757716176646282776978174198299367588951983450279611013771168043298993936604479354671195416963077051953147683246659186792360814113356320817905406867159487370437915728775600926475685365364270478056573007128886950990033933600835593202449291719610857136588131799775184378960329798013563071638064017426643484706429038167518418190776748688063962769451002879255583044554760112355192270351575885511421504855410061118795644235273666801069199582335309805652900672065960966124826205552157296557504623630781891666941220852881233462157342538655843308813607813619970758300648483251074305152351509717516628163644574736758971525411551626479652323947097231503860112614968465429669896138469209893321215383946926692216873472510928260114600796206240945689314554154198725299139819930477115768545134996904433923636996007270874758693624185802786075754939120374946589440983279453409612198133764760414198612237841001070152276265803263425260870819155993232191859031691035644795106427772360115323835619774286356137121826194713162081230839637187295528874251765911178890902966698011590191660944324270631485463223598736408838219081603528191435894683257214385375098671544516275226178254977220360251101049849275168361994660907745645514318695370024897056311131413693477686235518433659640702765290380751585123708491537299241505753642804795791951031619950460862456804488578935673164822825766528003006323459621404301787762662437919419560365376057569919783127868608465247664142005941195253468977134676428714230943685166922322011065139111848550407754561451999582730062930125231017777945508573367105506184600521531267583311958638157493450357253215231432255378833096563461140806250187021599595852985752882579128648253550205524425980829705367739896364585365592701146542004393652410441307310330468465523758326123919872050075555282397655225981768441906216297845107948920087457949897139930760624208103163313998885580071515128050677113394443033756266535210599384287782836612355536241195797975847257439321391066377021845112546944433775284553586540580434162281279112854507858801325018512990072774867029485818909474460282567295748265199482840696747475550979514120235325724745895100663789075431177487264758994982267144088876347720349292766671971050710666273324576795269677298415884450051518551479036691648227214205941575686217700421074802469208357763813987819235834870441988753848705072446438857350359062280782773133735807319949389000391895754345535577474069288134594943037545567885692149012488204979448208840401742315981248423897878554153875696306042596192363877564728527676724151311037188781087454704206139579737272804154721276655111226045043711908992285406095239894192348968377398828243729995623478458001080369687607808055848565690368242185938711951479897672322671135103666478263379519025963483158022816164090461829948385110490791780933994505202993418139059718922555652183252505849494930360174641194289486699779537393379652628685096255191043253026702899627060376271463198959328817113251869954694487407327450554728143878510594740920324205210819904529391939765125811261952295002499702369471089535512219822621614395667358560474926220385708565237517326566544867125007625738669349423838328233129484694255912228449448996194552554524163108136826999536853972923956460271024728885216274888552932566250362525542851341534146277228566859438110431670364549883583271660453866991073118466508135798510448599560430078722400501343333909612545621339408625732873796883587366604767568931786129986504782179769711705342704673737274077247175650566122790068302546459287619673960089455302276821385148677038172835212650504505900445767913850365700746724826494844825494949871730742971953159199188742986954622141099600133873732457365508859842014059808495778311313958063569768129250034333666282394391391266977049584147336221644285639872901081320609373371155155616845722830131467783679939513815086506022245153660019329588367393265571360385457949796709290848372637088071588780646867092477316925730962458265128872076748792790076692467735788845060804339308041176620154869835612572606021419979342350645894101382553528683833800349076601565923387199025693177707402788430595993007077987832991672451649826968337644111241657640319887657069288914419685892548123704939368212814029101581446173436994596624096345824157658011456792358421865441855315591118651948762501686426257705620657109637354066411593127800079622734694043821417131359101275862745060845111025367953185444517313759333936560256356177489139054371263741397355502326223211999899566967987309508552905564164058135872012849689857751605337066722381789357079033528132582348866542372142690744237681366719919668928874546497816735902982113008524298716560833509307605551934726121010070083970707998927030576569159824915480911555146954318328368037645159398833966633513609502711332937438507982969332572378171997578368483458726626199080804043718881148881106493727218925635236275878985355954541001278188698026264194250197327870901604233963609685168557065778783491710455733737305713793993975282911062560255532212549805873914612614278909762766142193925691586644551409124364672491064991363411308388679484243563666082239583538482099460739432748756771729764732268844037721218383573275939545703124871019897815420454011748959426186383944976366317006185332161039233080164073274134387982548323545215124151315634316468630334777054132028524774200521208465054413029454295134278832648074426455634423833156331586916334770785352458973594616968884367020954257407726339040583057487565704557692505674233709786995620682569302802361745151111561401211306344467913978233867690067614971915263353171839442044983565096093136563682047305206605848344584282196627871382476765414520204050444077118934801187911032743036952549222164732983099405593692503833229611538108125151493938782656573777910671423608095497966029371370915624219915392335491338007879881651134478404293044300497489041940176228390640139991312867144619813723263810960174996615270458717623765840058778160459291016562937651123291324835412748058153942946532191923122175474095373346290971580722594941920120805192579285407981491219379258466175942340648779059930023940253868087805772653238917499704617781775971088810267955182227866934767819135496345411518331710867834919727630572155668732181182668008683328731818359110105679661865730243378175221794906165561051115289122988046851350981472591843384130593354699061149911280704725520854721172427405113498452265870912893911850002936623542921638067275577184204617067116687926929286993125975792211845423497154140287023000097583342351875046099380756163254854435319198879574403049665624013834318149154613189947987608463256280489707289607663026411409703779949222174170263767623828416272916834769218049451029902736618396159262836104861913505251817539367911293430627976529235960093315495483783719623265554160693611473158225294326974297815933808705697787477312311069530726386074204835068333376805615893978106335470802924533466937780724772085556498698668450529577292891643074241264728500057074148626821553110508046804009782187387280644861242363517575895387116939137582073818905529302621046880291092713547427888605550573744974014018404071632326250055611920840184781123091580285561188314758187751901106464370680945342188695820184860617436661841315241978375596076788060387275952707183943217395468008650722023126209781143872026209968362336360156309750792006436503496766430913244847467650036435970750773182408573139114553390962659884672089594427217268610589509224857621643179762930887666041826240601446044083906204439170344026959723519625693060163748175775638158704775531231060415557567799437040474218580220203590783206709194735150760573386206077077425053765607917797528840243274689850312007791014710349274984466201469734515531890528359912631138499798590984933646951351798441661914881271613864164232238159959461205341334935155251825431572594830678285420492149693245917311932368803507353242747347434533457554600739735901970944335123807588553031069943270148935596608769007846285178660368286845521526030163424111332001238496922163606166781384290077893519154068872175325400466541824265731046563898370147801409661594556989184201427289666430649381460731175626184515812952690412395034502409302406126586630868883993350329375437484675959874204582363169514407928451068942624785642527482533291181396787243518879572138414692946384618973049440150630700777400810019557833374995073642639566574424216814361237948256755862733625387372744998192674913987181010832043668035315847771509440655587229385336069866271860092228331492583057259183287835984447564058806947151405269190050481014985044351842819861402335165099883157293391476927181387016028054597689116981482085190374624664279534780063488270857915167860373913866733011648125313932149780729207056749336032591678928868202948414869704964062067811791778535283820125568648325587718439196519258561410196886916996643782492717620124846493754961757916209649387191201109452092029094710543671973872182533055465596584847715657431039791153428552391476951231932826961510285219211706102860706399811048577710603919854467623907701043130487882414604108516707252480945048393376972639361826794596368246767332159964998611674159525628143461103677387616746521753553160418762182706472239647443769259199041621446917005209801437001117950941878008780227592901383995760266209207953399150853911040993883811392360585444498996640851172375199857114496591350683478039004619519842711451744262318912510196545226495981612535865748317844138068330957096685923138589320974803713717345143040667153148874187180196865996212190905180418865567455644377503044737751614430078364165283457224415970246364727910924862804663268501704720788421572858883309828124731444868523845166264816225246164500269667366539736881927579766261619055432409600256232875561010415324160703208793689054655818386846177778029384629025430123573092769846106292914878038185250108807812554652609675411683587133971732805985496326492459692044873400232991426221160885787544632257884979055075973979713277735780112027907755219922453215876677246235034993617548989320444172345546782389930898755871146881415478732736264924975011189045482458255139578329337845601261268805886967886447477453086693876329093413351895233428750530474758422828744737441211280565361825384477223497706887139752873356935701582460789656395352957038227626650537821222855723918540661243738124054997481494053959417747366208171042827768284659208378790862126948607199965280210556747272173254920823401385280589603837097676526214215959047917634587076442178228240814591797724348849906446111189424023439307029272013701265053151677135245746809301230376709869585637312052661295473072074637461745484982647204619731803305995547145096633813230416669270129962085515214673518630401860599534127043091662748646022717452547524087436790601758324376003537410359114272823437728958891084979095702140529155129414830772748853453087735927482852176476868596246839935004165567793205140867397706897338546246023738369807269834199882860720702376803067106689140278118708947014545458421933351324206150344710166372285975872853332718301379309388384095695149918685790538986389844205675160868852859096378264707449639210292010015032344220913501745032648321374525332383594273152874743654507805406284401042325838436462196317921122267452415291022148915671500467228074087246004150878443558814474847246225725681990443389239607898663332893813463074753596491442138611270823059298232279809945254779417942628197936209408414062109552064169101084325746529768164312734388416431978343001692626229925384829591888293180381743866049588719104093019511940975116962999552915999039928076327392473289422310994496328494742384567401287593908860614171326330242211471338059453307217063782027161661977292064919192354961004161626435717903028126831955720553824473784542904969776399515071734083593000908544799977494073420892902784618265327350644646582483332236881736695705605921875344646259619778694549979572224637256050188054193889495726499023771915321767320227322245572593690297151907893207116978545181052773985268168926827053480462853994807927829918046165204755017456830872059916776755111717258883881478297703644092864879489786086348002346486021376833596564732527327536761161710634607434087134529187594876828620060281888762713871411488767324997349546342333360574995921185082145480290912365472228248058962456084747585524576352865564433872339271818666224011207673373739690922885679975250855109752623358495147580705486193810376521693476691684380005640818765832793326745915748650099539847887693833998901728399247028720101351576555335209554088749319381372312043324885900249754157408667727052934239629388128122284683995973061114406585323046038175123154031815479902787922212956907108815336178329232770161404609834349152688475853393374069639917467592752272814400849025236653529030082282979145903784665452792121700601180872278926704437915459476273668336706637315838606603460035326830958136030418174177813091582954367772393215188655356700024233268444215252150158226902484960123487499593813962098504466135633175126794806009497769293841524223447992315853685380596830134291872636374586311150401350844540358304449725470504006461612840129063937039037495292101000510537375937450713598812310230599997894119427781992616993440536574545087123178491756337080863703521667643918426612484632178658371536979594882766691240063017913014729156257707609053480148793549512101052903850878636336911305936525349497652269369755087862066129340375024386581898016205709373633522309056032409063212212534348554304554109836109226686968355376619463969870329254874382573772171809353908849067925381409036586655584327265395764241183986998179235484731745803537828977000698292857662508806430523675328045310679534199162594333211923559074617155332216896879531864738073142578324611528626154171970955691432498035645862118194920777348967938310841645641187666782521817051392385628030059412095445813668076057115112500636247661354470498423045292241522763292977216205993207168238082843808590913885044609044141114528523242587139462604210715755354432019608661193329999836767248837627481418878393214973350814249630050942197799736691839434006461934873786894431089458670858722682301586658984616454378792313420675049791389337804326723720820010801574003533391696687134105724396983101424226453907800208346801222592268487014144414941437880498986104734458890180781983393728772279591164163518173866889774925878473545630450714785521626998485442844671528501601914667034282095770513185133639037455789716366297322570474017202700720145329808809445182641401235877095160512441986320966324068048538312020205450016143186839130246030917755523572177917719188961989596980574557434481984114715833976414851086782592179091093992100222877925393272732059690690072362835709404184141517252442308523693013086557532431987353295436862660399465798752722276570251844577314639598244528083353512753068653908293885540167993216575139716233154738637297704269963357274577741209485657099661867235685877766779907695683163793984072595321396846898795595423747696422923329003961065898157781566931076554184748163493374431653751475803928613868922612212231238898754889885528286094968541259680944133658826341262077333951375850203260114590595728604908444891092384836315540955151612322099020786015855667705638405999228264538361161854549895713436631436995217960702992693402917940166295877400789123089917605721594919314589281880883628392809037357518208407622399926029698306793893239884811948091349219690910370365165776833973629084402880657152054158215972891397894685353114223990840904606310534101801023307417945747171848957306863379302814347270501629678975984530779506099745738979236756733917918406702554406966424826914616256326653131748597074703474553835167251442480924473891863169780224822975534402614541304564857590092799341129256056488505363156742319856173636660073239749214692630866455065214098728326376959844415116296159853827605858025111700246762160932434299986600641721109353783399381373511458153559888384636615986753380524315178315966272801489968078637120619874260625657032778678222893675548286901771893088583215950863290744743559873337876459485310970450704506963675680472279044426819734107019069661912038539001073325621725272310255641397898027635992200542182117354581876653075453733030936333020108480040812167569920589895230542616851788803058920017725285201062337908712245006476904102715106356631256093815872628220461329088781134584289949649307785571996650193856566134274606162661734841898504445643252427407096120622576481222130107724390095086651178138536877342695974295744636581056650481724392208031600231256592934231089088488981521039390019411700313301626425397845015689926127058805474057681144007410013747218902558322351654893178353923571382167825062431353569382666143375082628260130989518970616466178728329108134647087507977231030811857794582675138374665017273059680400868044356744950227050907712937078131280612078768438917520609540146437140288545283500939686951595997280693677655155630949370180523498445633502555172441723586394517633729997665534074477249987035201718707736401539218342831087939834529736206009117674648004996019704834468711000106227927617499671020193575174286557134669688301807854402844197047636051012660569150214502100461558978613934782910025293698328543195023648674848673105276200112218332302531913087560807548970031801670480083749624124625703696142588186767823650342440811673972739879691477347158317312793000555433141803356851563196883539585793298138872921199938719416386161730012308424746727178708285494555711199941168870531569776719529356887317618226824867692777241792337706317320849469703195832975305766790697784542251048610671111450900252876184956577253012033396258931241970446871671532161929987042824804250215719715305239788332387030859019457953137028054536418077435455335715146010072264381975074834946125011137147854456740611691387695111995763415425041537070908249268769771490808307647730332213279409157509048265877082818887795421648322642272695083967690107884532546428418318511934565614188373089516472524255197419757242353687627090035816537254791058449840684572238399999437160313889562380575823336094261384755615102398028317636414571966813116488885370098667855725813449189254894225637527705033517313286790453450115699435565471746830974819929845891503094495038796877708427062105735016823630142575281529804226051554827238713410054530787917039223501368322772295785422972489234571605040614431419536664730176517801811040965429784784220616272563765874811290277721572536892861754354331070799724780563011574167274074483535148949254868458852466246864036886989039921117990164580078865724639006207892840199467615815552310078847696542882750901402088167610537057501796279478491930619478587042763139671570566842377747167298494760123714671991711942014626011567001459645758128154766525464544636257565169998969820219612168592970347076284694208097715182628833622935199509680180261326871885296217954929908665372541177387339865888379449813496484138683037885516399868168629138195363949190311851219378869929914255821178713523709397489849086117825906734584848767348599656452489811893701785335421998164988732189144031667816672823606415305365174976290552804109042868644429749479014265257154930151583515535659519323441911259320942252797405300245388700085287896896505651844064752111901942580496337617384698658685803825921064875682013252463386700006016066909462103326035927719094575491660731053596556539909454185568216419229682040886994275605146979065747805571718088349929752656492869093950661557092191125414135948571700349256091857931592183610857903741353130663005576968320288944045084086665048241792210337529916490424328378655944961812343328723524566021520870480932292862780395580167081742359119185222040719146595485395927365182421732596075506474886112292542189406413533987141476279573529570366038902874542629623069227968298845421075445850037571513230042102837351736816409043139075285281225712302783719624497371555610513296355759829593100691206899709330293751446338416741592604669945544090959282607112257534951874167044280918719089573185366117736908247703434675752696346784077246433097512228563559727808551130922866149716762115848916565909645165154751074798549609558526701459834543757700078280105170186416971655591659924475653263281775561221013215627188437668872117912634259049420414820456507071589598222892220098734333948985195028624232111566435055614331089325506995404774086146028880587674362026418156718529921283574420093174333333248569465837493289463843379263077515007486966963791903916871278125392664421326922853348451725908950917718214490252019355634713722106122463578558644150592243922392609150488517332333489864238781525600489026345313385523078239317791672151984543434764466968952297385920337353730064516275560612953349857771711637872359129639603424470774172237751275223292856301594300035590527340229072574027190597500499582075045652043971191405432875850539826321203022057469134006701139634292296769472541875872165003550895553170362469330156709107278819861672946172918215243939038752704344974210249184894493830602857459239692664259413081627604101933615323974849160644360658707501105919452764599954585413654735735757743947591426135555605197135813507813769481084240810870523685740996985005638110846116229395148649057185388160913054440807881531673009319777566067025583502732029856052799811862067887823040801801233628264103579896811299957620549432275798626989876150842837832320884517153827584055606100385058074302771000076436306940853503856034929539700869468872865166825339388407512741421074280812520957487796780123000606580112258992640844576777441596595377517683260495585545120884485136039934681267455917857662782281137448108683718166440551033698577361074140860920222324051078097969318435084157707032466813542341242211464689544177325578180814572314886503566624533582337599290587018454824055709019683413099882089381534909846071037964007051265775458729745331267332000077427546216026285149436873582254609803512766443290075022569716186113452471512503691740427383660102954552084429157887441447535521012947415898708301708148567940492068707145282731566897163647692491500827503654207288563275333066290444278134325198262763809387385621123574780711446237261479825552343931298399345075363700811915694719972329364288800020134814395231171004145732579351389911243241633668663320124021781733836929804473874288539454205468954567666474840347451940200217039179224090550971695602480461725954097001703346872486084420248535818779512951773415720987962515576047924748808246377725877450480780855252239564982206468788794840647178695258132577638183293738539761220750936682118705173357400853878741033070339842411166883491308694200527964485578360486455134694525804076252350969382363097678860404232078695416660668089534664381765341212726922149754147278037774407580140973913964485772126124219198648225370775989207845434669859237167574359611109565049345137806523114464252525293117466773789164038287348446361868447701036657970138942011932315476703231130156803169625597496715238447027705220311041990654233876077635838249110984966928481847884118410868398510566892578517271583721091684319422685636475994247172095165497639352337660252649114475411605916212485662476076757859461050838853898139400904627821446063209891492127405246723158430006346952517415724644732678258432349547459176325202248597468168560367587521721268748531661626176783227086780671361819611156130775425647823764538956670456047435448454724543043890794608979189139656318595085163435005282161475852655030710572708336531826344114523698372560539886620946702428243058925326353296827266016483467418549054838331305045668972428539299414001047429622183977016408992686593372311834786104779171483555740011689461072287795245142134220079190447756388592655103353755290346759721497045313189081845118569728623506282453922689379113405943403611061879407633903159985104526449726131675668773642650224840305223703815062188775276812705818097140683374457859046595094958313960304947284578191431821370993044299821991806876144426838846249507406316617519704485036765829645101989433136242072466272837530340731187839086041229880522415095873709169137080967343805659635842815093562587959069492316333431821602006878350657726827680767478504584764288228245190662358683396381733795043834411736837230552325073958701203107071578252559037390732067119964314504741604761940681602240632387038336214977270939655946145519158710117271524001111391395361156726401886826073890877678667417027196976052717289064173654236425968599325847764762910815997675968249611512666653172488479996932907835508087960194477505571603476575613018376940521415485475262169293635279206953300158186434339447002252073757488400319050163435449087231922715284215008417206966321462801746117313773055312040458693412465011733699552346548074875194063740847674752096291835147841233878099012595407917720670745890303965871690424102562555686104636025989065610925943621157225228886411350809492324715601310069848978283199987233670789608735490744528177516963310217218255060416522859588687557273554137132916690882321162163121936430333754417647648542506508276545086084877852951157320325184402012014520605267652392286432878129160671397356965728868322060471804624693794221372775884900561496909554946905268282608784226113413789946975036665119088682962396553188004747832352339855487080311592823129290078743926637337457099802619158244226344359299490415977890376984266402836593694769486213991161617398416062895408506478322663693036299492896899332504197229418987623043408227237598580673395456465051269430370159439705743538272081217064118483338975815401997584357635692220357459289853227252149357747393107297904595124317260380380126362193472751491850988933489831574040428062930411991138819579864321059828747325120756661604277555235130676851810711842125222725562120700659690680170386153215276979532989536807035297362639815957333402927973847940238933818298281565686917555469699361855807156866608223676076436820767902025267190746455516435437464071551292018716312588797431958699692849746201628386546058721533854410071611973971795213144158787089888578495576558812844461379269471962896790616156946993033303738729235376036896204175604896476474357114529561832890358142575621468502512055434563871364752751358274367516581299049409835060876222639235645997643746290805074961186629093147258962018460943536859480420634904369608643982458824483249455577338699622956673765043585942801907697473105563937565371770633058289246807699268717003036031478513017793300689171753695021371760626646457382110556444139210289511390090932618157247129677782892668558482059187449215904642561030230311914385535942295332069876828690841011206039200835289219322091354657135049026919700941142436828349864197801266008116426971876261172055287407585717595921657509043728379974975253427271319006657878679836988049216245903015473049920124290961337649515843398298592950458287714341106886991367368893625046856518415659803835687752055878982114729826880944827164107207622381170855683609838788481192140049186077872006497305184790089970288994533079529256544933674757817575031402178179382586167271758905498781835855625044728338281472896462840297094883320915884286271909693695972108556259888009891597997332631685764860699860213683947269791794384399148864037604747030452696252633694937849908417765663626415846228608195156175162304273245523446401289175781475275708406021900659005845872246538383437499603935865318531725251843713694693149971626274713100431198188935801388433674556302786273735741513592062840684647723761092667873461378970595143354856592571911888754450678005130101606725540833440298119239674071019111408028888473085813757329461328269068228368726084260592610950843882379198543841553099029863230668319379644583861658417842653414976357449230124882711526091482385276531952006209204212357761738310870312552115469812962629932515843657235943789154816048165241319091962434235637219463032457423981731546162891937065187089558438418048369608164688259195588011511327804539840489782976995777857587740684663236243360442048494865913417298040578267297521772884206748384205108821971047271129460219491328318485935378745340179454935094685561370700531628468270080775847498656439138188597248804577355795678459277959520028881116424094746120369939784884528003812361011230668712830882464056705544267181252969900230863554943629152846323050403518050036342599843863199530099498355702168267503855191095301470367290510440881737807263240458610510194213814722913079341091061000340166644549594303948893871243619943113356979949363309838975373689358490512324010463569889087895865242517495768155486396028085939483270643560889585327536036592034034872962472814827654268730845270877469945797790240771318400426452995252010667514885968345779030083714669797773588258249874155699772604955906233802212026291310040099865991364905921535727644774838187853078530266148093612308770694483308630205296706059196775291192301678795038879929956624673007907265368550214980995360352078938985430844542477816221240529768745627674759865122113165320905780963440210646282046145411242396246519998740352752767725725472851463130482488435559783960675300527703509539584598057218396150211974715280688420799897684142132601234429161091628335148359238402051952157260367534193958321888472704030406599631222124908655243082778795150781983790054844418778645662973584342404764365290335489196988928132811232503671823274908712814304957437002062459854373766545688463630380666791003865458737535214859426388837504382873019625959132215315008145785431428323089146484709489718398858376035936394772032206435572835517825283349026628865880270648188523111633103632224545261841423458704932257398511488516146914969055001339069020565763141616935969845460931691213672168019150337844549249934861386269960624950171582426155799163400232634991447229027673475437144831475170580487345133256451215877424589798391305616781260905577725708752207953199611209898477262650144110783391055081943452270255290207395580792078942309333975110294747399511755564306581743687571621111775380333243076463857892378097522367026189851012724449587842303215043283163966252720047899098523731216979973036883069583724980149933351429517040428739521166874013914754613138335138165277958096826470443740429823464296931734468444994332301013159643154964216134170432036612719355393377942758721515085087580573571657642500461010123556714956100908387903632932589825425481517960878221538416727701033257245815502857064399692404304070086914611645081791528601280569422696344552035341765603592984114521073201699171459396892507507537308830743416238408218573788891194911743959084744971574524061174238529548757239553830795355327517841617634689134242342134861128480932250448980305938836498742724492050635278029148798757509830244069942394019190023062007366291731001189312723208879492842907141749630329720723871051739476335377870508737264728211141931111854905541505928942800839985068411032283298060857378036083331565151774271497991325705271215809810934872069089295069520155972133679308323878970534514087644088183612017466290758120085374251753626312168570732956263314128874544889477771970912929886747694539150761493676086538205688881096728143321779629620626616813120755848929214453677780830164510934120901377073011447630481141814676319706816123839477897886633624578945981282448739378679676926559815237804371641642183279102634912416276048396656946972759373609983418540194682571632478683269647021604134639231537028052700417228576580310761832740994192053775732223445654971094577297170462722416678922923835469585593980045569430924927468189779767119291838110167500566251502176737796940161724671438523110753058159472716854835885271427741850021027254269948504341109599039944131043499749591039079845066752127685910292920033786821995396153008149063671047117369967453699726840592919081410890836496031943579720740220546798351598835365109213111425166021011025170011336104602872898797790937967469671395499450615019841756671921530392743277505367685376325451028164979002324738046353629678461577401617021651884500612971311749134106563304253176840186542366214723078572595924445510239282944518865726657273291861806627229055150819892888373439093563244480856877830725449511867208479349184654950781053788848285508423469235022080502431329533354814469396547938257338632640994928252344315377115563819249691810012477034025751052335674723869102727546712900055324755685736978729335637801661709150640737092905983038876521638845165690840356349606711368632697668602422443045941536906507239437129880838263437212094061601715502965735546506403704589004891374153573851608708017069324041330905474772606226215117295105987218239112933857448430310029567500903234721735562035277014781066240229490443741142790275372556015683661980328449126204367873488554741906792378835257736988178219005704653276161740106836759411489403922411329794692309680754049059811940743731153462860857515705002104212653212055396505892117014787567592924184816050925560805151626704567227243616758833319971581782870071260917718570301522161284222880874719740725391725048555011854691967768027150974094786683908922246374006565024673661289920105475928149904462952253023881117117885355668781347313854915109433989697470847219671590651997491682616053644267758233924157940322191301418991526492353100286495493699326832889047072202964544364011401009372936884771998399840922505261935737477844063090172766931005360202148817940922213940951843533316759126142205699303691553643876907502724583519564481632168797020798620124011696266530653862231442043710938125883790108544078744309478183090317330967666021414926331225634617672117848539443682653096255655150264912660458664210043847394657505446163752306978679095700684938237291619897986829138590659776518441520367362693639714814687688134480458051785054651532058049846852772498551310176609382594988419412766949964908077392469478250571236726117790468818016474735833965958678926839268688791118119800217477736224193054070771555209861969378694996295731507193114256441022021425482860226541589200097403364111113808518290745131012073546212538576205480419716505456717098114988529997073675706240495156812847263168869092376457159617739876373959859732877380423833012111332441883356543715636587726405358162987190539964926675466939509046990658132552602437234402911189095075474031727630668903600438502390099065203514454678876197677394777523987263413990684036921213179947315996353333117993688693120813718628527784401335193556806748634123238685829359362904549788711014765377607515271288045764192892541557304235276025589103803476466544441282723731622217685279707726929048666713343528007400704963155481555835889622143204200408780262662419306430915568217692998549318312823003174738955107480593490631730994340689557182978153705182332928763318599417061897790790297634644592604475190532694419751212193462355124739480621162868746512215275254448543644945652036567122513650767781058509272606509364648534165284168878202509389469271919748680732057332050709841502652176332171749371197059230998845919474200742789325671689344248283995090158223230023113658875994935615215012941246014548273425153992078506696563200662731575571053281913672917348896942982023376945617774531778077404784975012400987627289019875800803919568877840389249270047830461696802000071542512175239444584974502186013388335648181798006419774197134607427746000656657003729821589995872459948387274570999602799871262538068858893103647989234150658669483746064425718093431766998366380768628457282864941351995099429583950029655521453040008090292584135218069508110765985606898379768327300044853214891159098273553110803463381687526399175695500978548615922014979957252036819925909721056761867456006957436451131368812861864449386589290574411965234165781745765514908465287826112814342252838701212698227671353025302809137904595998061859217778254468342551506313614759183793586343825781946521010965812950998080789619930322143244785604667237255482512926825621720722510708088587571532988738571118518305200985428843980687605929788165586287412168332332683607386927533113042555346673576108918842601802090207685340811997663734237500101350448531392582328421138506733895580561425650569505490196259073939152056103596909683804441309315512752638234041804001679409722080909634215304031348369851213287756330798943090409149128769598051261992380230248947781392488904089887234428113722382846326862491447152836737677471320871729882909550958204015563696702616869262299434061293549160868909314875494024196896802042309102615184318502107955861453174112581681367747058154529275124936308913931512765404418743388726915182943610304053621161139405446102982590313354954183285596865392824161954763079861769923145312438904747862637772107594216337591621033443232391529564166233973395763052308246579715119467671733730418666852194927271271399207842087516973301623090239303494146921374726885055776228847599130819997585303272690118621267410571028512954563494180042593454017303159780414440793278158769782588031351419268355213435080355148911900788167015738934814826445922182258404465858319111834087113097125147089174044574013487368361824047499631967400633221221690759017351544007243692446244932780973671615562567536343909577466944719837497631411403804542082748095071956519509585166422124514197234698438606586798383255428007481603315008864379660132243235813743462552617305383826287037933166582803342565642728436698250231379207298769480216209326875636912652478188678221217549750706809887596094417783458242378100090735289966412036681308497766008614145127980010938282326456796640884457185564698241063283364820903803536257595964498204318287443391359415155924985037152486719129424405476319454889420028400269308553306859208886894389898653703981367806876924362802786175628720301629148220001712122708204706282386804619838726503136794009949796409337622882870426542172600485478508324349555295912476149559489862732798159841232637549064451074069066741238163841330554852465008670249701373068372104429097476868789333209566427503823842073766397450567411735203702049796552866091229451908628415927959242188325886033331188172945659931086571044544732330708196359031641536303166991589220101104275539052991002372322168875499769815492920339580756890144420970152823095836621461747359775115454383453737736240516638591946993626291922048925375273657146812482272089454337510530243922353714605116541717345454617918042883341171771960841340568636148840503240694454327753824297077271582856205774506510091183788782790593196418956478583202295141872120762494975579147636386194776702319447372657166915533949451286971786362809185932911948276551170650628537339977058800540882719339301288456397676367758451514538399907773982320374369449139724537553933037313503066749698045443746505780660992016050775553197884876421200380229043475593621438296399039718948818260643795385891816058007506501595107552339774280837216693296264914247299843109663037179144082397361443027760866762547209703035029131706710767384829968320313214977299566432673951622439570803374014434976441907151719909286450220506124041463522695799459815430000386485364515128759723959168616190097485078076952993258318519387312619454775079393111909288687291486640869233768489750906050385625149765294153745160048619636437432753357453280643956851889577242254504865048823445065169713076037099143663356899884281709741431771300613990537281698397662052194535334719545907224930541333071223738737119669382496498021110469815911579492620691740607936956002390386589438471855727227959606090196466079560302650889009623658624174820180009350103331392660607739035784437015357471723473510274547294793675232928267548185026344593147392808289722125018644851895978151468767889109520245597394031296720515131444368426833151391868725332836913969685284302434049799967761590582975341404241638794910939498068833875822928438066202355266851179532868550485884054856693946280858592989925926254664802344810521969136051915377983666175696569810933372792016814831087476840220518080486344989113875245555294073539986874631674268428947551812582574683162002596988964370833325489381950302789846178594157627546908430859032530478596465397178160021400057368504847481642273537833626813584037049823302554352161990009669743551926266806312526932973965761590885728404672902236997730367740655058909820874962599235991648186072678760820290162417117772519149462677895350295609717528558354225203018185758674701881028150535651853508204410738366135987032339529715241412765771930461613551675223716168985842505947299060401362367068308475083676165521643974961621768358259084247844206161444015759219183540184113936629412803561609354646532465654830624958652890867129164566928091071039613814479712344751355958830990950806699222246765383564764137290870206465784412518095339304456829782399982790339835087083318159678657536522826418803789635124425393763476337935179373527318501960833646220422022869893472593450470900878984300539859124172096573067540836347706624500927064839066174897987506060278640043347167884783418999107283948877378528461569297414457891321640860178754353381177396556383145039639292086025792405393758347650716726333135338933552650520064010448301010907259026151024978922130171444118791062166331207219891567510266539440564903788981376622687674647210609424358847597390215415689599509201991672625341125309653281547602293960874880705381508604120584019748158215571846031200057743651388071635917215224327871063865088384180165158914677831810110242072344741932100510858054518926494256077209705469914989671529925747470557071110040294840354148278703333586578953114315995823591230871053097021823237573421623154047446416989977359034459988461899991003061726697391423865089660254647839029613264531087400418152819768046380603975048822799705919832630054547455719276558227364084053473644249270978944502915085410297009264423863569406981588003901984879724779263689941241828663410257132396502972861169173928645786571417907824316523275367139510606083982663694968988914628085705606796857809111942555147862659472727154895674309981404120571726640129858223048390964000682291488552452556767719947042095778382490369522545172892765432584579481920488927916493209634862083931213970373618679811684696547135821975176776788861838690379521008610929669835943925994302451262346577838898474785117910079185917896175589453940688940629069511275266881578834957523241348233991448522712871223869788717902552302648243956532559334274566480553277423904588700169339054250201819731525022830409234468897280401576909774350449112280226236456937795033715426328846026031952663112488340313315942239326660177584243790374939413839342832771373267636947818236732247480359083069688901097523247497023307062008640314481881391853707493795103258203162226734694021567307969330638818305511820456761336340847042976877127365168930550191434606431090916830036295931789024520650657279656298364422365480725985374908464344357019873371794653405020190988678124347765990128970594282310746378699287675337406113536742375282221056071911001550067038960172545114652337147502921929090091032044759644947206576202759377599805982773185804071594787893944473497693454996536479779126445415751921285684492976526396463461541960109657225830868916903956541609728935914339626142407880847799013593578275198706156677375175986509051238621648470724185045823057606634145455846962553946273437218570280394923749864698103505466238604611415343328066810852840710006124797164379505303049010944098053950149672222992960234485310229272521775786851860479813978978459373362277376112395479732008194170796925075902154636212887225418412847367315457316839403416799752737169133867755734518237789292536949099068567094405679330541002691593930393817837780521887418210005343735973518790725240115393649301681353173630169645937602997044601501775917529792720568523696866161356666857864557313628640776681506743274429252453818562181166015450434990347864128146446512006892213728065456813626051061902296632991465762994557823080726569628430790388027371244088072280963206214749152029905657910574772862829747530128944404169743219576463379715720133213777443693044128312673912005895690480254736929224327186096547619968865766567688169372096823050673126332818894509869951104731401261818921779045648735806082221341739151766019007910252277551264423975967485606584565487782199520113451563027754061945218627907588164797725364781376022646024960687629352344394634998337563427553352077546675688102465372237122010486141534753127355093782685517275483778809517851619012256720755633922418872099572512599888776917115696203950201363123217824089882711441764736976105019008173644913175679948388021120407775832173280038077753311873191612320659570301740402335952149636104296835570976417831879307741032672560954710046781890742425398722662095629482287195226584354399426245038847420417103929416909615678241723358858576975712773673904448876234507520516388271538036054114353076260916944988886412949673235590211882707437902853410862145206155804386760122371439137016329396593915777888376511648205241116957563810252485780519570157734344398169546845995288290535271785033463367325919084596380206207165990835486821568148931023755258570326116929038866351109461518016612184262618387572552265357338075240998833335774598375110646281207441916647730112164498207845644637044410716153788184405639083831533463340967398828999420069435651338525472052899144532082422570718740743794685857076701486785997117694759064014100906647625186194244803721338855573886209295521992284612612902736197280286386295853537607667175624916952680117287554801662392244101608004036862571936371654046816793633569513893978003478279390468668554883015197784900891975015058291385685053355296226933633111354039897102269065283223052307791953184369917001632360793864362219720988972998188406902722460328552344920375317260179264821670414383714164347338482812226743494321287405214343076236115298547430076534714865562294677602755878529213083939929194803032419640428040774677734502026466867176967517101788599650677962916257618443665858085659263265446796073412207476284912800013539952653172935602245173618047994480978223003795999923522712540544969649977824198203477791329009392447268082724906203884344191813569309522555369452473399709099328750603312137955063939391068789509972609793226036929528939039586707151917686038813901999262734308984143130160930631606426626875905275888317006655335343132760673014394018323970089449581622971503946981489660696303467018426340352699244457659918152336118512241794917218620344181022011109756871021915323899097992154504465712308076858560857773369830161896263811113151903882423023033313613951610512359854278860300748871844645615493932422905784689453449415621363978427041533366660003126944626252722454430198458361295344651395764873093508155612233136686112320982144343700068684838185152000189263440779609283673602198529545314913329034014954192342955396474651584940534610331415594170002428925430681406086807347490313661447838541883786365847578187378788571474863335307570735023784918592610882648479132138125370094975328650894358669065640471758919746237455910593754211578681693191207777658128265449591837125481281266408705484766984765550339242081189593097692959908913467332106682652861893204805953708447154250756983696844345081677687650217289527325068244113922685093426325146906386613947528011685925909163794620068826221455887264711468625426859035245456712386385571394618620891295528391714203174638499300441007237017283492679484913728109234071021589324221166541751149259303009261305071757578700891522137724668408977765915144932033638985767742986722856974532962038357148689318038709967844506812620861697542856241328974181160050291723463843651310476051346595755452483936536283330134824028426777081654039747907257616589579214817193195193470337857920533460309529382343615698926820538021154971497173213646082880236205567068322718725714624644119498743754474549605647012552477390061599181614366258050314977189351490369219767449340464473484372721969872002803737462200891493401548012481741342205607103854007394272264587200523151046698055615754936893123541994803644846387078408159814504114812641816501047662032184909408572379306891124216862976578447206753735773823542711546919827754505313558806808960129948072343048706237528156515693503207739843385331339788170337030930472595268916893714583819171917825413680713583950270691257454227161761481965239333138007642616708517029608129284692161293857049567756127996888645916663002714161653077393198302876892684650622205977311510395247765705424540358526855250241158215774230082796841381208182916332796447667172409920883667672541254322249679837864069033526666527720098885764204179952779260175247426789311110470941567637335934987091797648796773974565581058009136229974738773020808886422556321491386461211596092441513635854681687982687220258785909804908894256765524696554981775391571055807323785223114228696738405171185317860771350583539831944244775738110481193867713563492510754486177604206189069231488230590830374467518482362782178600363114321124157468363713297092292271405825751373757574713964097650253611403765854886807587419238963778952081633329481266821388826149455785401917198811287047938962530958190543104773543273130224356098412543858250067983582398399412663197434204623666880246478714940407199914619769137875146925273941801773796822375220692280369293708413248417380892575181677319852797527958433122951023290015800357524055026896098158409982872092423864197797316028875814173430363591044481870149534781564357966156385688158528643137995093821121076491182487232224422053305100269408034785513730385883951474605688544787169602083966553214726757990783958521752415076062978939077388736737664753049860864121344291574780601169463238713200872168661548505310750269456073329764843659603100554162243347016050962751507347731736621813235779180305258161343834248202015905652403973684653751168312384125971888714390199063892590976867972980377805228571296146564750968519383112841712537041743280972818617989272059445751396240882013338901241163385821630164902226112045297622700424440376252468856119654752102214549073548596800240231500727817273901672899102227324740208927938014825626480180699638582873748077146281516218118635439177530701827246393203256057990163895717114062583002648293452899366952966342743053468918404287812164168309046267263862997266484184481529693044811016919030966943152677221142304380911715119463416254108758399559341776684310250084842037829388922915394756000746714280968836339704146162629657584981836268557001436198454621830106765113566361711785608399810651889753119915154842031454335591977701708820434370372953251452974997102600914959108400777555903396449253627768661358449563547142681218830921225602411964382972127667602687095202680501356866180352387755404620626432516237170979777091987786319725506146736783829323676631423835270179032388399616591802783433213695101066956329435238391950871169863442392145955857825753264399144656299334472354748972939565304028736054017185642496632986809587733918224234952511078715674234207272431356823339918590737340199959718557821614706235554222966031168920405267936406272218449308857587305843000869187301499029967264771118297571950812152120364820520609667212117885940901708658771996512064108270518084739171855712657372358716275576578418025669194136326614688048702157408103472501094660530051885986027824321105130924024917789134286702221048791510181726213555356092119840336173954974634052642123381697846305234730490549612748710106901949235281672033539131822536504014598543173668108981925539073365445371373544907231537131040895006144058999966440238860849448731144256030977465666007323286503217175313140353808286523427206731817208146233968296222922530141929455134876488089730582553141174563059540175466295651059906983778174149087446947620148597907620634905869054428791774974609938977679403074631317879760728570601856249632800442689877324084229011091393761112045791886135725265801379741940238988656022796339765063642771325930034881378578683606451484113287225670608255303782708329656263778573971457005653251643404267736343198359103033973127233685343694199668577130676484310557476729916041818272913939726208649094252699575354332592404543181527364312083178309640860908066266392067117875344106544508069381296747611703375514147121363527418187244166964206812965396823332103340130617297301382389645349525279842691178191890469351290879827817562971575022090434035511849650008997137990795042947611439186495702997019799482310773804235629059427419596874539288827224653072826788422652813823504730274274394962382400976572187111462560797630396965335313363423097975994619725710344256649649397748635698405902131837702686783466525035227836306701693773692426683412545356474960016226530246312411016206507596990308989503519182956645451990690350365136273630581253081269464619132575736071383714651312603853528783112810296605717243662869762602537720109403182386871748239580106071429608873951448371021221299022695484890633339764546075201621287778468547503383740349231420434243243480555283861003234184936219583136639516971742219740626952968149777098235342865916444040262787692140592549288366747644322759777961919084449164874504261478222896441319954029647798703061030301422695813041992404496400828296874537579192443852364181969669024219145923845320110557912644946820962973993778111814253058459670135969451201208754080766154854926256092102613808784776804769060888670537182941234158404879288985825388790631364925807997091826530926259007693605660377678112405184960646708398501000923179684494433541723250869838460454422901705410926947842927377549224076229498368769287440515446310539810448640550465604553315257438285640511944737169405835679101587747555304234035311787245738184013979917188396862484789596844709163008892980180989564173867246172301670021239815866957314159240271667549070749589805727819448844014250772453831746840423353145665505015516166061530118611137658035355912115926137321986625404348413692252622585049197138679791037566970886375539222512788400457892616700335336419190728802460775730462696732328228640715187451552855364308126706124840476850152220380682872784184913155580035945900793505481228187841042514092954111763097868697738197503814070887018121309564803600272493322986963914848580524358121616047632070650818800771626694004159812266549727083909373705752139515258127299393194606350238037744596814171006841171528438315269674625593770249374984227499061332765884261009026725677905082101204392583056687151336306732558504778630249866675083848509574520511025351744235922469060797930675109683816581679112297376687140122246455460965880538462256162699407855396975565044081325449306610391419919855874678391772740882066422962620588440970449344722379870229870011314733773596241085717572954777093753513393106078286876077675232857089469798678994111066972776113112316018853118069440656464141493553912704700519432372520554598330389249291487165734622108521763096175173211062391537327935787719952193829786631803177073914878550135624783226547708551132723309565694057555688544799662676001871240545365043027852642410287239753563151704918181363457719318086468879494813666013107865054917310569277777977459035056093631394033979596929372734615565795872289813681521563578709822820515423345521589599222980965888969371119771988412769803462206612352966190255888628938038470325502953330618186117797964882319212217672010838296265628306386176812590353079583404108043289029607287680432284412439562739201680321298948140451113009155743512612909916230030877124519058735508729300436611754261025478600376777064411489615054533692605438554078213137967798020186131516955412312151918696085263619336870414766618163479122908202111002154615846120013194922364773885449079025065656595039519705072731765185576773829761654620701861331297844156126013669036238870990666947121741325950873773642289649941767585939340051063458834453143862889481632675662169559481397159879939384934317237822548987737947833718948281399676340505002973304098503539969652487916461556092129556638278453669114464407286290891269068906050400379087996599247801793210950935960822408128303797447194730304289143115719622042406957076437792066484999937524052819714345547289434045039007223227288258423175989264100482834205082291311574939008556310715238527956692253440119160995066355514398702523446786614304373008742869302763751185383462144893430027624711586905654795337957030970097578726818569456591173492944182609000712243763642620729617153440366232650401262486505833185716263715539891214414403312724612546065169899598662322226879004323308064947090374074255149730288492018431683887645821762912223332008271675539921979664833460613830701262896951398468754644254794091469829144317506808949413407318204466522189624222128513949229632521414854367136650407869076306064961770521633567753710335350833315881951465401825122752184648426822951339656748218529194716276727990764315785990187938767709745820444940563201635023125523058576152590961938128282982439424206523014987741815669299311610134557518644041522373026739036619159068129351302165556623428999894961036770944442481740622831272973430621648636605661504218722108891466481106883615250712682777637741954807136262897257285164227325300231974285505650851789619109030984241275084558752441594340579330068353221296202888503029241368328138921894772729879607211846094049846913465197858435911691199861674515833240004848899089991291173208167467369918999544498319254919681005372084243817383188249026738368067436003798375542403802282692244546519439863712855887171299212595886324169048780823643926530054717787208417112093424681462618877829754433113114387150705834865732205569031840135971104515442052337714469187208535059933910107857058584028972082189635114044167450167186204372419472202332698500446163700543881124162988402609190054487543382078858660020643327596365382570226719129119716201507171606635702705354217256806126807920090699329638012853020012615541192603891746219333245145716556972128863490657932777635018394990296415442114441958690059231673702348008680650789034249389403370441585876325243508910784117739776516778733394050404467324491725382101393759495561062229058930924076934301494983003916119545204130498347885344490990737852698992221677075521239401462874536996035455274071778791689828250351432913388209319832806251113648568150885558023343289036784907275557385787342366441417126477477011419953322194958206198365142433770153039108928962134598546523710099794995983982282230035540409504793571037945726237792853345120662787674415354433046137648617209760678414128454366321250875799263817064274255446962601718767258590362955179481427524782342159502179930075933263635078737122460156460113874098792923126519119154715598379890063515335211900673623083382825466896639568883820033421483370159631154667839338479589385730628486592786242149436788880962360470266100774157489346853957487421753902417922087005534421569690708207279458513047898453633118963752608622406784217825013613154654048644068725014581622320934903666846236769677094580908662570406244791753993542240079409676301593450351921454517980840685032608439722446929155637805420346097462109781179803269164060330827893896285854481875652166549596564967839484556333669449248290199725693218428069578657271117687305063047956711911168691420352503710449236555128344492706727457001440454873595587222067821264391760639487388097230624672813377714856538065310105822755141276642307473284258171548397400928775889237433455440542166798257363058748695423029977622741707812864062110795385548469487729362241252023763480841076939120875230087697921007737836538950139572110190509057640422860275962141364004939298291927363514694688317185112016621491776615479458888374789334552005590690612018123443532160746062346281871179150883332953587863497921830360951557289596531393274355476006457990339749879674392479166100476106680835380952871648335461490557222067741693310852538682116405142122502426592097959936889289438170232555115748973670646243049263143949774662441290789817121574929221051624073506901043403538130876489162212254069752429533045683810770407340481642427585787554253182833971036965758705209526557064456701527227784219150154126343150596016401190497788639789072515916689033430725948740244693451196154468815278745016804140021535844137484086961768231253874139792677765752708575999798749389590729033677257825941960263209233615170247521763230305407905932535259916209409909996053363227871549504460676890325179896807820863778611537669557241791150501099565690322617795303678515652782324412938066943533503424314825028350742349258844865438823766531181372898803487657425443753119114125708287959197019131197267307496140133595836780954694745737731798344847588500824965760920805959973615317520876815721962828571342498905464930569372710899112391887666002767974271481536328134514749128147707266074931584433650620697208050496563863258105740906991673261899865349240114264822524949339815245038644890529377111164733313553494252102068783705437350325632042277226715466778908937728216370934654631536316747242995476937648864137575517520568922551976747767632599493128006667885160628641372190845276769427859749407984050949825453233883625735019471887830849255781584162134805672260523007057257936856827689964653601916994087698559471093262566167890519334704891414202584900237585174642736967763084290970574960046374626471352080463542560009932440352439150125702583308262525557350056628963924557669481051119277227877184618096737912261870413482999728076023025783821929339190429530697252637757751569503942762490737645221911902833255204394562089028419042983078278901652901087863004738932483944380981804789245217591258468106354833987614366529859987953607701110086772079915063894758937866862988879506428042767230436488345232067241908105988151189503503009312323214336071494784867638047078141591538502294736762623137033052099481863129712809937131804317128036848019537720953354253248404423945472948391877717525544873056967339358098507854228766993350367395140253969051548966446040645642543589865772610791803047532249759770910317161846971159897750819485800755582534593550412938272599927142715896945982910719653385991554095424243146583408976554966947861282902521509633517788936263894241644057275051286966639674625919718668052246550300077396649909408323706784463897514628618694527868304149201565021666047862972222546444725548326665461498420416732185696586520995448926345005366737463612594945959048913209056797286677932629457160826114479118720486053928370306269765468477156420823601877427033831869762773695470368073399658749238195746520139268406105401618767586988132993931995311711685042845028598906857272128772987275163708322449815495425544344842585483675468285668647310811108192094914445446190669131588178702895672241120864636116226423120952511084983087841073232947220699086582995663237040354447616375967997387546514250247928610025257595993388473329706738761792523779853214258951041552184987140304438858378267885946964577763993871009978471167849715491537192329766893328598337361121143003257465484732172035346981034835247549204188977369737081964418603068071327199310374823638255139814371900507002608447898644264652038408137011659318412464395276094104828275008774874409150349579748012855412356455336934059407489358832461358128848432702579404678283717468414515489912863354571977529802748269917118025574600563464216060514272274961360497418174364760500299805300213513827864472246011900967228711774643963648634534619700946270982116972507538695501726234669137929060135108183277569158318660379102931103400069266713370099601622955666543896930249806426557693304344504330898260503280943846960525163412296958922324224066657911814212270242958302221370926756573035762523362219246921944921378000265227029681964163880863687827721167804513762262330390223941881891140626177316054621771697212843115313689699707613233873714565868159619350385506649002617549774046392892909748369897486463368991219660106252179090900504962316273692340571636282789903926220611983792774870626606219518487998492095652612755102972968636186632143262526981879989338561828984474303273393675973517078714850594082670193545158704193518840337913231586262567568275372732190293442792917848418720710717081767541968194029572128204958594368569980907305930362025364224129376809914153536738628299042910460733743226526723518771310737415977774180497204997135473313980633749880110943475501198275217974015183308436526702238851031272254028207703948531051194265940490203066113418179345249155804518166959025532852142877931032428403937588535437814810060448000164097417711201085742723619256905414174095017657636884556412926955358119854198595028647732122076839150932781141926737165358739309535925255855543591315984795460341834087272550801860952685313740541298327954717610003144965879316026639640806376642776638523456808928411907592751023117528516641949003364241802931086825019541039376494491762477732900685389486477605033070348036507319899998129949807714155503925189300653033879441931986798475566692077637437451561565744066273490833453561012856332878712624767625807226732211131919171265383901983262153238307906041446193528192553288652935926390195557143477911435797800520642646836386432216752852100790787343746153325395328517574003830889871062608083926716790864450785175705994737641386279269408033337279729813956367991552749690365620877813646544210923998250014783697048541607043752101410261340146520383682029983500354879075647914563046004874454503857169560514575159600338935821512667674726088233151343591486792679108592588497837116310112478859786260354768784912969451991497498073111213640540980409056314450947223188834409123338896884476692684295128598109408804682971825446734819244625185360386024633711197485383379647695956547352101836493878863400964357058321915521715248055212782252958138263275778198365661078197916748665940133195088576827726446469815590957997858301048350539007985622252733942382906248064747006106746132901743428161048988405251915048853076140979595417718604775076594440529222993457641640806225772394300838387221260238182850406710277125680576268735419861722292188452713615129896334794597070920302583871849049563453567086987523201488230623812093751784410241527417344359207646973615511901975187260479845667640783767229630323208964399760398696759568757568577771480322004247094480654664353747276398972452065160097240149499145049968910513327085750168274834422706429066584280249917931355216030414875190117952950477729182875493508226040237854083645364615594839862021922973990684968345939057165860829033065210647609126718029766466322841500124805697447385538394009401071832732378130647642431562555077943464463057511695647055458688272448908681001054072648817298318315692622006417829800009702414863536449877860329569787941304882548967172760133845096735138872984770661177183155201613212565232082567287558050324563394600099568358653594292197243830489175703160500787578531192911967643306924661357697210167544109070257759378103287110037883443710648696639958991708408105919713441289875195411728114434892464966004303061779388595307255588068370457331689642634941690282089066177354093905369595839224724824313720665727962557932748742097267829336802930808476159699083546792445267978570333637137045157023639676624567274207752956658668198507967808875941125622738890773185193399388584960836688954658759211524313441502855158189242328643672901691796676184394095384440714707938930113436111335708956102888841134769669719946649780963157660248588698617472453469040489017080014756156671246213507542510706039075342455144261505458180470044634199036109932789755380781523767010325057300181839277909733559089667927153723169547443058151432962751929372020459307460643606536067323146761323913057572221540012367673643888012858621000608335207338104448823154276236672688686188625867920426105628462237741157925346335239918607142355964502539207988083915878827638506403286914938811872318141478902618550830777662168401594658269735324402754106784456706099698300441983295434840301707972393778952483960559193611625130388730049562969417425766151529507474869248610637679389420016658495132663348373402891272387956207844648829243521426972907310419121620148791147695205758010982583519647236528743415441044573562339899189285618104555563414554541091963916253067876674365255115868675807622626909883358993182318423117917009529853514198079212170156339766902200203519014898118548190926232936777670638330183325569664998856815768968633610854565698214854906447413805451680121186363457284192255264145944933318822849309405248972914019320024844758861864005754484463731342894922014620884486619833039845114190749561417144120773682699208807086884669772705333155580029592827445928122614714062088314944476271297697153938343712286382950917306615978603555431133345376791567691565826131796343010199485585159109084571147288688671733773035206326878604813036782555069911412527078309793964561476180762104262918275131670624208871198091874415220926823363776058587691775955533906699727674491442291631626490218872882338483323535231039253215147042180807137729793941785406874863648598684671896362193215260551436789287075721904279802365710624225126800999587847299544720671204659681450423211720049113951540412958387847773394468765892359011696918261590773219358177832561013346416494426038983628553426708560614885700415794928203019733542757935638508590517777225843756973582065313626922046182829613409317193800807190144419263937024470787944317648702918713480450543031900293554293583263840822297297701183425729977313516482704682243295544163978025095774067026421723426820887101810976160973773742660391853417037214229164245764527540205555468255827119963356465926745964175097043878314469308403896674552387009396535537463145722212312506619876975878510335235757168731414554365061648606215897292950559308847614147020239300466625458131084392169177938210782207231680675318837932105785390784600092064323024908618810388702586489021681174871209010178942854157505686320533997914176670194271794194671074765439979868810016876104961333935317328957554958795622002839130409521490275624489338020765016668478966720267943705990549472556608210819946176714360043503465770221631154230977257290569758445083273547002921489618230538409091863002905735127154620966883543198285863678255114876894397437556634734516505022122889197236983842619062671124230436363739756575885555822171062695015505600520518425634619800802659288599388840956352156778857498304530125667673758542855239477190408410752333703971760136915375710292390715289045712240979193368590770817108114200377292782172224897964042348446142101263986792196250016951634148268365265799931517937697414306234184905124131656559878893355003660499388013622511223124351459294831459785184625764018793671629804140694271986986642324813718833297530435108056441933320480171216905898310029304981834486571388224887171684292426361699652097582540274540357801636335623451906577543581501544866967311059227476863014482045755566608315279468465699213168028751751787947609564812188427557020968026007548917760383278028251871035026442906792620019264592705571911814351882020865940456001149118669508860404980231498433394889101652353851098718729366231882263837408102688334329483166841350890042434219892539837372657768385710198168626885472625444052767890934640621429579271138105729170073116365774605937054373433857410939578882044439951207047648213606072200044831451631757005249400497097742616688053169834439544108933993235380899587534491675819631454531211313081165019027126177948785337860465589773879137555776071932054924526512949169480072480637907335184939163600310371033657887166060580875011984827875357953413946056365794970898245158032403140496365441343818558960975959179806535605532287444709152910192403877211168965097534122365938197182306425931330754658631059546122910434380361608477788216837997657553925034942746649686309356370907087808298915323323457712121069780841754306665222990886484976841358420915152968078453190666351257554726122531226005475281753166920494735129596292537228979657789759263405826471121398724960514575797925114575986699519436279550925703702718394296428491284354877866401413213596065620521474216969042242048957136251974145526885964743012562118894669642839883385009406601440387039862168456041753821519381299537286705452178115257998778822420238112186593897368810553992851555826884717859435719770865160977104842177775467804725014669861202510193673007215768014125408014038233213634075469508642837741376137103198775789234167394562720598515763711124062021617372102596020429671102234475482046711387555746349092509412955403047398895632637587366632387871027331325286551923083887248108617285691017312486571814939970529265469884571138211842600719829561816784897953096082815604363696857126999619826432740637303868144762697612196268694930516126537532192617020468669269508180257109896778692809226798145240354501345740386874306490797166161943254957281542948850881226490666148837766000198823406582541794313457618071916852588637097533276477572457238942637754383856344086160277374061334826624086855657525162408535672538632456436807817292238512222126589194051376100134432787716091189812583623174011993439744250208239803811769588420335680801869108345871531499213925075815773236897864686094908728807770694840034682115893862373491477563927571074068499769766788217136643066696130955882177667160241721622804802721761962140786191807116019523702006967169873284955336806253989726830576729296521034544057980438391172019122570048122065662713474965619513477051526044194750335252898438066540779046625425538988914613462098877272249175377980596608298789420595440727069184446249328743439766366347363386936818943623454789957626676143888279991898516674466578653701584103100913641484684833890068825798302415590042124982510534491779266954620868911957580668455720607949481284794318199395502644900346787300226801359378909362727148348082041297215753435402249084916718440912292139473582527104013174996205765146524320956428379380347272494644056987617881869519606852118396670410924050480353320239231284700128631130173990519955911543085644698347455634039100289614153901787570937906291584222617551044156808186450785920395457325689614942421318617060863785147587907209931220998135347500659628162195605781042111934608194520125245944155953861919214090450399896777286201213216817944865069160290156500109553939221663964920008205172793266174033525584074826016922400574601588056639513086933874877392821132302967443394416891778058660758936280468449112514898294637345105359712655693425011789194436241759057619631541529065521326408363120936032135081075886932230998375590152459773998611555143086429781482990679124237367594887053751800507447548379203345444506510381068055460838726660898394291836524517753481803964274906332483749833387409096091560063733177491247300848886375124388953881421770205821619271447466661261055390900266043629816455994345616221260783751236390017032386388592639473689134661884014846885828278310149432599702509449408717243181370501394313928346892114468560260836609803250579087525157943280250196859640062326236459426943713126212859229361407787648180793133341257756704024963920080532669609389848106440096449925781127222127866419247198684242775817370243907040874412481878801449940492976718705291474645228533676582859933318423076935372378916505736996178727766385101678747188962046930343682441940652627637560818913046953181560942044863454610323682150718855829995720901752685143452379209741395895631918447810620156714476056721108960627177334515258655661024919360213047272438530551370367986471071233825807536582457712043843368033693154071715629359468205033798243258072139573275003598423551061646514511255420654950497608029153750270992226203358227702378750394821896498997463167696590061513525415125349400196703442550375100360492695867670059007874750573346877540948232785326028334665554791366015348139357026007186159471801651910668263399777627158611513638591506638613525777878941116644473018766629979260349005534715081461166219736933214868987445187728281630177421447092746456699932313189160999644434398710029522795078426605210363287336011952621535745564336684996269432281737457359476741924035577996492014603241235070925900041360333031542813373413964009288595425003722576844821323928676329900165875084655111220178121553291285851837751504674391661688262372625162563612177235297856969646253238008750110055047592691089483201206701584581387934681148155720933723587262053194898704659834929649014126220728763727823409648483893303698486162407157740608477013983075154096454156389116555826988410984743044171239066429041074361154910486756594159088539873255594739219266219891078081045610195063047229311093333286377301371753778730291134341351511470913763645377217323115245947843854443123234416613326860787336177924072274567545518718242538600418983396011591682030241616508192275675393912411053670751110600313604701347739862993879898173627040897054576591085015881033769627033978422479852680814764314434990244064498604334450707484320430713124079986087532344783107069273180957346670631036842433251173594797283057212823187166092238825462487417392663997806403921945504022758580414671960546835221695173199972496356490306009578547880065270612240740499052893255378227414490044509892484591337074857086371604781383322863366624848257289459887275602457731938687159832632361831765373246243122672362259965511289482883383574237500698208617880190021249619841372983444556228919780512511193578696241480595065082539898803127456311452271906345259687352684278064217746496601359895274792977258756866057771227209738133061242109792076997551450336307699946658523060889020303517976987063003952609620796518552229995589935825834261290245638306167830115211701306598350636617966950078845133880150301693759864313050178075084835301759337995303866804300694538886992333151689081610112997528714207037345368508381927337735951583779837539375131778926947944442152276074417451341636886038022061969591662956146892496358110264745649196967550264387111715792118836369559701912071870013556234723603518034776489768659956640277533183074241589203794676486090862095172955069759252640802077203916336807502103390599546426209699821073405952113779688884083311366361563314553384182198281167798642714193818082418766800672425148011995852610846154083684804675339677972159708102933552108562083554483657765563349496287744639276952750899297601996236907332107379099145195079829622347187267910842455730845713154675906522512983132849641235964556479029197818391568651665371593072847984279678383139730539513064124615678587659345584159266647829307772810996775856243504115648293255429416040490819693171594442919121886807458391953868441451981602601338221648657126919953013985798880477656869242989128015514955674157099377292879478950129952351333989560425917797234900748946768213134655621798469129630446030489307980931995182196537401894987109644528767324902859344322511445982763672947937363264411374365723481283888942494108512327599868688393574181941300125267848399919636013423549667643769283583130982521259006372111011980662963374130128628356898600456506428155455446072071865442189104950416249518177932907614227471888976357729847261198518311424909466410626449741555134824420086797749829382136158964273686552766332557564749045912758262044851456150365748598200559754253176805818872856386229083472482624555264238062221963075818792202032297453225283929347786406358615252829841854733499421727547159273309827625435659360820287094049731676079675438378386515475114301784606794377531346711444022073758801932726060690003091696844604247686327237174725311518175256938156727700300890930617546397424757643022931847736898306512787838295962717697439260251746683817846849415491812702673286671685623743312155448504550145376365673168754302861274543678757054299152901197065746679715253861593634378473742407388823076127288651801238213727121904620358131283032946970794793771144040016829273199384362413423098350665394715174348558380087256807633599096762564645808108849442848100907686566890024968787346991421857409025754848297808026093636114112705100871007571050166422885815199348635815958138068281125537174347158261341445458626360489308715835608910885115110674156733020763946341829554283288704188635456486182888215995510111871859794648873518305646521697411752271462227859105119144628986581516808723128720024293245238167243874855166077111289328372566583370618043504783470384920642564672189204984484232511283243070897822312572568709152078653291006988038401594934835474701242519053917493456889384424604985936263393859733134457054154457051428747659006646084723802834381663404085922677215532348649142355138038572686734209582093251124154884671678041774665545917346333346126939250630439839378448837719371325335851127881359851479355523839502371856121167098050924936147955230283980226080966978092102644137140134913065854010693774279644053816894008078968900838490241356344738740680720050608648647666160669287150003497712980590382510612427699786860163579409711858629709425974770150760540402917328031254437981035773765755238608326553835495057432342638667595082600386909222192108581387003241636075552771068639125776628950943602415469228258264843718555044216268570383938980716393143385731116542701671160903232225671364934377220344811535519209777097347218497729223186973876681528872406882942513270004832302036493573434986840910777554462919194181009753713612081704425770508750904337977996477688160299813208949304328145599760093390199125650218719629150377560541880330194595352573361340068913436457281059792969556625267077460319470865432234396020919246669613535893221402862375439290025614434883302177525859951828048858536601924803453439543936882756840273967388999740976877026658783393722655030022002755651260164283486943336259315018370526706067159189447802914111848868472256958064655734049082547948453434348906239592096206152179909402833131143222314894356143036710459105552641698543811183344751663610343661634774361635332350008420378089261180590287381158058787267685379963225392091418631699259710464747191495461493592700627243516450013702245649977859577148219434904849478748639723001649768072623444460220343463233391959260512936887496345971016316397611467824035194298080010070729249623592506051812129740361510278003791690741911303177429112737397130467643306301655431682808588881491444827694228547906846504421726184725598338355874936356265846118997220307717042564024559545245043092007367754811808348086585737858157516223284755100644567781084690419241362590148619150500476971414459782017553341122786939276432102641700918769617996602623507303228106601664341018903478530840756868382225699702290059486821572189164441982617141536835967022600692807249256175278927102501992843414399911462758827403493477674713023199243695619795274199294501538032037873038164048701413104072918344249104591051710542408404349176053695442671860262019765653213459420059162470049247718656313649001485509207375567113443002389472218784768601438626333905711271671168558181168847379337136322540002742548420521239876044331492034887358055098041468990559770586528181658047694103207581628690287293339059310326929930999787360705325948873030757584841318086407954314198308768191855677953294894347587381063919504481315007799011103383519183413834246080279706692665906810376404821088931037575062113710302135030228676336073681874201096380598027839993230719730706895238750482380834242783089978228393846696497885599390206984371609220840747199415668418045124860008162769814365923486946373462196774156963596582162822054945181895904176631242160358735788499642815318068957191342165464744635308767179697043343240807218697610700528454268299432144679260850030603300021179535011538149791776654645773196868562745165784020241305853214691254273698948246925577019977808419001553845821919733446173935866808103603219547092337971259066721442974356979206060471643478487760829292137240755239870957734400551771666590481263232649106538174185786590686060687226766188414011247055486979869673903543983263905545354611794417752074484953200954045717426474421263720040795212135785097268471155442476888953535531308971214043410831804998032390974369573849457887190151605286375932729094030285632909014081973402666197262324724917805625416455787488882988997867587689722165746984582186066353248660043658387706114939540349728990008556301846181676171730070127014850256618390300346087112587460491273613918286322124948065838640761348046213281872021032552955696970445376001050311347143796210787897427070195686624523968644297806845583305371631529725115494859232182691271762604868364138492720019775582057903369547254910469133636936129844536192448568128790616628853065533923215806262941972599606786408439480985723978170644476640144755433813718844367077811031703463284716125970955854892509515701163612445876008324640294110595603253061913783587516194492417795971794659343467377933589055159218035775894304152657662387306885797282186572189145626783973409879106948846218090931400613767556046807778011920150372392025094962002513576391574630818670859107715181844182791493667185993940803326029404939490265539088239836296164844121788158817815959218670389751592036315920993484439252066382158223496104921751897508501808916775057357138002156993504801224293343914218335954548266768708473541239995693381939917981754077991223581688624320649701494118896503795270839681549841271265696944739115844212965653175713252548039020650126883678518713847140839842596170281763409811226720731021293529955307700928676824168324844245123424564398941100398835709292072908886264988994932388187614474834797815069785835097860327144038557283254922691384718275559277231813605665677778440925855285664841441886377845428633619923281892586193728106715119085627501688057286884410234117990643337448111143671368886593746141699220712735069501343585205514788590974096469605457342315193136704363535376618171699793471665992582303957509164228286051215302977772137951691914666060447442349231765542859350207719620119169342837454248569721655867342401590468396627450183058736646998649699584367816983077028474397728017987223983123686623553252572808016870978268606994589839579553767609966043181116222895369698435859523897936223431373763256223666147527555760579648769878281040837865696961079869864974953932837039581332896472189111435733804590374283876205120598099788972558924541604321072943942633913852455621124612725808025134168352242251193333805794985202108866592553523579738933615840900109852339535491451702492071274071979706997217588041298107938174567311888596593809549267952080396938888748344030627735264880265270803993330342131066105388694202310831534857820363870677550507623432686502468380925993994386136917687836111558353488891225760134395936557222198750390329364760744057755144885541562584847556966255122787314155790111244049198974680689893900585466139027940239537996667393157500339414315385319279066295996300410367482788516182137009028702004936750368070562610507543680466674986166495737008650995634615230358952016448731761075563536214734871339333088427096954025720064279505092565416618883259717481389714618668532663800280597252527990213093823185475276663728416657706877777975875319212698087730921159964310218615778601844612198386610196198231603560175560516655505153470042728464243137007538864249873226869005670224973777734771459993800281089557679534271368643092041403534308407500514571252495840397001689436702540993633786892274912800527490545169424431680858521542329163982515231420252064723287246659372409071558266783581412036646700159778037917895008091194608191664161009362347579508099212050014116605723516760094534461180558078079262899131473739293534825929351050608893520605191507331670535317131590239763972471512053224824877371751785423753614607384157211317246791728840165795840455793653508188046546941700773251678352793353803559370817061488381375456971838710322548783757414234185437392744969214138548498472630576694950216732979363157296096123026742564618325709974548605938002032563484660187451319457973540176326590040952709839315449182056576772861474039125960755432164194325038556252206955943084265208505136151974943668465144501479660419820340526432214311960513267363431511977715072682364630890395455256650059228472523582629722997908241038463249171941844542518047886817825702358183494021345523357651421490044287015533126226127236917573851484584637332524852970003997509743854961228130520347173490408181393166747751721451203035064020167319254149863782019612294149555704367605381362671684354744955342530410351458815189519214393471250246592565738193265393641288860829158781371591405490837190125212295578322833037192798095615776852800135263900418185640320731799199182703287230329990842466197936487856803327032162931000211811993776483988226459719708456799744186179105036769508692820225654215694188964682004990116644169900939881295533005388031337918557191125809982006950422779927795537745937736471519421086999026343104492835205621692228528172923159412073094466781682530619542096675933001458569782442245784705146336097570743919656849992510328333515504508803491045714950246755304084559288339296380187736986362356027682187014487997687332195558022871388455393794161054906363928735369079985572979465225669923530767208918248278752841381673665411084647716667792412344683189491848271064263233573919571919720359382490835445656271557296160990028762555348400275325273584567864736682126398081646204764487780265131018545893483834853433059419407613139274506573216372647256083243559098188750881713358015226868866384217117762162178575487119992404007187643463961926689266610627252058836750670554931617628352706440030936099911778275683947642114342654355776811073902843553343909476300787186826529897395438005872326956098750347084598777203187812868984354268499657008406771841662902294469022896615058138658803223269855692337025075212395863539964152137642534782956934858806136089263554446115547454435648296179951931579525893396354104306554610292967232543190849632350479365814220509747250655453823416671133509923332115912745853528442168307731683484991286262972282972593508902696225839604071227840655814310304379107208361196999070313799207964263559910595268211350651325344315781914776046649556592926285361280948942105128841220000997213474370886275836450908915687079494791143676813088215837524788917047691635602933048662605052170063326884865364685220948653579950385532163336992942122917134934648226651144162268283274018367295282994380341282977388926098281675468610503293364570872430613141160122246598610491271557254880759996646715451426715217403428734187991569756316760973759483483318925637967663028036527870441278355464775255016727352185226899567248595354578419578398006673559665934247610461300930677530871433614272472293043583055739616114632729848938368446943669119070060338410561019694595510862399751808735102195402917753700685482638566118874368174920939678583760775845048043077327118580556286454608356091968831874121556632702731401787066776937035934450131120103142887409459643195005329889450213039631081276697197679010576724895452975980440554606948960755526595290956106069781638967084533652026184102136780517315810853520284322581432889951955951968767977098894004052589695858258307577067359208132981709597862210749846280674833599787325531471227289641622847382048255027249316274166906044356756021477963636512669180324080827191778812668909215444195532560641777090594277343168550911272521788644289917329708086351027532131905270371980967299542487239878069797385985448295514890079327548193541116992304596212352846344700291136501307303425166525210787543945291681898307812479443259017064276874884644859734810887989570839685847617800814240393529243765155167458903387559169574453636806745017728375950811225681075147532610724657443793652070908967456256432628710395212584954062403106595264976548495162692603991253012163869916747863014956928143720485181293819422906727628358587362248737506257078670026258680006307140898504410101239992889625907558387589563935410314860013535247581482291639144829424828147603372971787621003431801742639559108577152974508828697019230426535828527604638955880471775170656379512277908947516675903050149686306063565676840328870156124682036517311987684156853547019805292213031046275548653642252072526204810837376477755470902995754883711372916299878065917821134999645534058931014630484931176195793689010927457109815155260703637499476990617884528696192584981714994917315842723871916170841500158318562994256524575337231768888314285533148619666118271378384439661598892218651756689308911820052169747225247007130147743634686286685499159646654119978910145787911469718817270917766215723977996661954296856362055356924762299902581424680905219611246592274191993098360835220735475964522903083665602784592561718012537975771919734710004572851382597376423919157369435365298729363350534310965444635387037508190760515002139635196612482103372255874194118667134561248656493627766195834679557691898316650436388526969606217546651760397481774467201681654606816460136995628022158720890451408020607318603156017331598889705593423373165193758511144973826714621851938814141757640927238236147274859871417799829095680577519220991893009589735648633882934389856658292057774830092846157790181864209014561772524695825178327912985461459613123736820835949844027331651251007674055430485165151611623281469243035089469792257747076971085022524505769767595399294919827104377934758551490245517746874884731027631261601974056989461237050229671330346338978813240584973828365037153075539524963924707874791897811530603425236856051021631849494431848334744155535372205963454259504983719043624712604324474866193974793685117661183104065890455285716481947809721813814175272326717916828123036042086932702177955386356805630510248914112978312628543182156722940868892414987496372241124548681083368311753748683496271763457569969053174826858650925766769128772179011942347271837424231786750940320396660569851149974462573186926684270350175104315299829020830251694955999115552046054776583170610151756201844142784759543988135991569847900829775349864690610063746259107813267004720251337568758905604494400892343137539257216876644161279311754403984781000117343507851314715751357012148426137788732256574266295947119500677620509045363309537414957848819465295506573647481207252851725806051754396211780042706926653468761722106740491504454307801077518890024398741263104792946429839392121805967509646960716334140146180301296978090167174460193383150581101801214526724569769882408809549901190919184752469305160142127299931627573319586997802051890397641905093604390766638679640733606698368065011456497667251295672916909125258515739784032541186957668833802837572517125405792716997684876522976111953985413422416942251728013386905184791024372772236267444747290603083300069642869383855218989277330832672412017350418905926308840890231748653323017282226962050226172845683795468234132768711865062682197164876043611969686919772402260168290056912542969071546461101689445788352457400302848617340018627550022467735250083834517638581837021580103015326446305978230638950790862382334236890491984253588055999255270032955903409560782452649303793330686457917761896387504092380616587395801758794050562025436481270048056931293558548308132061815043453558987835417109072430435631947655543855586120451689922868428638305629491100502037385235043154385935862963350808050435813940150129899141513173889951863611464851996628972909010216369861951163602081509443640519307060168916908314940136786814946765648492439949230866904862584642683272571821758542930825414227168170393428571341971637592842804414661140056143653256987376926084026857624968591555443794289937000375854115651259043874626827717296283191736416669759711844750705488953501859058611715651831345092100784859919893456568891298037986465064697558573476649195818286132684394692492507328074218475615496608035399956049561857590451269050236594630146081523137928657601565796515760367399412701308044254337551154132601485960896503160364288854715928871911907025722690343172370662646666716235106388715307167258173271606771387719993387680928158371159697031118111910408604141238457790836945604908294060503388367102492784022480875018462341587744966412045406203693120282389759167094641705541942860399433695404099185545831594343545948241871716677997584801519152334038518776938269190575563019691579234093741110152941060888948186777193490109531438324713504207807956924425300411355320496270645467345664583993730252814347228196670325343151903721140459778165604300302206587430926091283487260929296062182041650345028013738949018426260936631552191059919141801097568046417630517517305230593895215901657789815662372593315370558842162041684672314651001520936951440628896459358684346806826219320606205660134639260188789363018868134419051819643375958349806284191960126965649694257960886329810111028499046300846777814009231161160262514469002234353287045065829480760546421258223757816217377008723503507691453526861888796194734720719575127013940429292150445010351124771709400468997339976382214098735233871139139387117338880616001420281491276869919742904298084867503713202506906790611280237015008817624928640547832555632039435264799079612446625556812472172841978947457335993527671702913750757575884407894873252686506320566046128122298980629750499989124996365095138108194030873805783381491370101301834486032293308474034968802421130840822422162272704986390780508846449596230087503285158901142347166255943411287745112167023430531539026086184860049961006551512935342271684140727614009759847259009639294653303617549438832118328059146724638020595476736388772091335370974558713385913733483915123353255566730879868438086069846784364093290483539158809258394015304556149204788314743155901710490032969724872228187258696503054252060698563096178828001106127509467205976889470711203123789909134496581180248185800208922973851052993363789695494289995791069897930598619935366310619576319733161161605227105619370805670729967769256117833968657872505406594355917554236521517216290560878013183199553889710717874799816559810038241450799190405997511275278344125368818022882664843848763803477106990329541667937828789465299348227982922227489485132528221775093188761854902672316168366893928863957168239016163731012016383118501143060687319660014914675223768299979723212281409180966859781803389852142305629768696264501170332282545375489498726799773890011689902657612887265885429563351786439015679923182106070019065125369460768379963265739631652988101761714658565452992328317751842966642506111251246606609721496046988577032583560084676124383462093686020308546566909626077636673647425834559735405685828938707842401088934962903544420500156405003206833117925042033575645073875271810745441713591416326379249082950256952107497950484824116049014500111268723074721278904598638562314221431150210210450380821579013083353810691515008501384380992007238828438309482498018671446498465000617707244071114475442598005130821546409358430907949370633623122856575965376439653919452665750853226909136206513911057115112825722050952361953916971302416574936789990689148321221906630022305537015996228901791483531374083115910727551038191553963638585048538112534300758545880462690114243948679939482924639442091681363257300395174307554020573189247119753486794405426437129808460072316461631227654956861321055293524751186757779662751215299937325247898674290300571720565229300073365993735514604224216130613876484753515302478360242644639260178541704496744639063859553993768485932265173600258902467223586521347610376571061570557638402489075730758908087017971741538835817027982289711374437954450013438664569344806004131740953106647264496902706146545874957598124441473690203024461499187796461324546832036653858042502457010410577887126729687171035704813986468861843224846572966513339190200061829766476779794511624110990403480404120053184782310095720063968986214057287007019388595843067408361043822958733877968429001770170735177847016764825845922296824576485344562169881934836304353329589714099554728441971727540560535155578496504935094070917251682642938788758796105349888885927040556469104633566482339972612090410826267583668210663898082336145729408050947606245769441920750316100616405495194631134143278533756100597429294161687662340663055646806848736125902284673963629305396556710849334592883205021094222389134463193623872704471877100303784487659609884686976459037938230798513077767443378090139783493657263667734993012175726117204452815038689166409856393888745572828188547478864810538764701322701792296440120644055695743999645333284122962818075220304304483373460122102577158129773958256628071624677325924668659424451229839763493720757862257887757181508758325218168649132082746706234149666700304186726457340462457700537230027121690027427320913358614366874377994770738367427629193206998177919467727858823673350579241816087859307126646314835004314580402053807943391364689053311832052378802442268388938174913063765412868574073846124522707466202659684666234776153146502070744626487258793218970275030097881444251939119418158714670340942407844435027727978319442760463017234343569707853210301874912219027974610287547328539192428455603815212996656780255426387856762463076022741834252682670529483415945624195350840621984646061816737434522187709089434138924017344812921943478232952604421818701114560318738798087668461796990955098510870246123497382870984836689903395817965183312757473477539220734595865381988099710719183797531893651152143264775383652358723779871455711786319878610940666273216871560160712294390320622160776310686705289379593713464208049829882353035141592777337106404211359895995088598808816949273067333233279247891707004203641313395174909930755121013177745893247561646050223465140886895602808916351233290617411275351511920853456905385348933445715613232509690160480771076900591984626196786486861615551955314981538938821138775187392053744989117761843420497792322390109431936235012665995314090001993174543011209891615450363623347564001460690110236529983453253498161131779718068482199043278699317936744824912079332600827929509992665260770836665947185746466232906820494042256201672712114544309651110330831120591204256982172496193393827650738358463373222538029925554761812663711981375036891536493304337212463720912960477795113501436558064950830747194732739004390334558802433491238972094870761443318406711258307891750852559969515685806313671132497934764743083257861317989302198018153841726728705567166523426621612206489542556777161210571845701421340494596475514530107703510102267628144374705326260337983458539602867345718153555484009806468189309587295358528538220521118371470061708727032394848197898151280445540525092384604933949653435207445582766556445014837192848327191381570120168275576113135177944052172567300191122191724057446440948664482249111675234754183007140726197305486092498937205485090331396476473877875475859080115342233971059035809818062234199210310760621186486724624978004830632883684923929009144254686161646801527021704778209037183053196976164145012976296165244019838480497207356452200080816741158743243393908187474040828151656246214592925545992477310070702008914019712319986057766069295430476317145500866502629128061379989460969161912929900171512060206882201886096724967221024166668016990617929978213985317094971697260164043209655752044599256441453875788794768069646453515389265764188024226073675013997695449968894136230845204465764961396465588000527919165936346271780088798601789285860492365775250394133415884772586316528837921538583962184116959699002831166468434577788126409462422799793934423297507625672545627960794081464811329680639376104024770189264395246003360192376764477978039156364633409051679670715563689167904358902174438117023432618409944907341745357597138850100744975784873552422849689503045168860961682978715324474514934890694617463421343355299107189534114155099856243563678225322798197994256144839821457606378192285334123544163833391816544418793522156933833401945696882547434283089711424324761551191349971120761089248068564303105061009384510956027663369401933828087876088052761428440386967786390406248318467546765246472226060983749982912326142636206193791694736738679769782626733327116685142707957809477242056693175668283023886516617840883378794624382682661912113373014927616290392860773309530575343122128086781396450334877666950643342974708760675911275945395522714542706144348428271313162995397446769603495431889965574300261075039068987922428336758236772893470589165847049846261470574055114289306256844587205603173432612578842415832178532825794557292231610249460190485563999701781613350180557416255462710137538188978935884208471988442334597774530698184187258404865796193471239548733223326697776782413203067405841419028140066926616706148679567012148333734049859734654044697761458820418213869826910295144370913176482436958983997967332827174344328606032282000327965596674810110698925868253374855745173940901966932452324108096643028994593255072855449873902917686283613589641024805227992748551448007909076388846066448038525240715988088242353697327996303327966569096346063604861358337399971938828272705341040942899153746428422052187351988380936791895313011699504893553034608986737945680261504837763999887417907580978227207989810949484413136450728804238797680247531555235235292713358448969158046716559939513713506100223734783344683216700998762964789105776748858650865279473700399945592522228365278299380132184072889852581402860804410503486253912632759296149502124591745564837739369550028123859226289100764951359502802500534274779710441180611714674118797797450481422792540441429441608481779273306092398012781014792161674650284401565366592655534051418585385060459743068074437873458875739324490187490331611249763216330181793020940339233162759872128250403842562623980105706013417670678632471472003916108138072341271877511345744786040454531391084605071448663590786684663868875909471007803189584640264821052232811381720065795694051556010465304250142428582536409390992638139790742672162925916506807172532672085100990577819776335462678578646572382440104772999950895814437057286730985590526587378581758696899065202777014589148519895239879118891903478893428869859789620798458393477731799071995510543520811220414294458760360804485527987293622056390929181293656262951527783702425422597019906343439207903115926653470808694241810563214275234384025031686782087847411943968909075029806776647043161728139276183319851264820521847885586996016181683932561729054765622261738069574735123323062474505922700650065135986407701463060908546601471695467306449374182601012884486563308857088391693785140890580483864950635391813469723436178852385243116353536440092842760435146767013966061745912043551009190607139370587107984357489282785250481072382423268121818683636546952002222717662888406220977295972663984746308862047797623216192545406217634180949061038224788358738235481336021327176460736952911284001229022995246494958022517039078202578120452417806282128769178633801794150702115246352221139043964419876778933630236860223234157305051634435740469920739868284643587242144348934246265541088209393226603938520766643719201455806844825526866548176762567222701452860388379377065822237780675764090114936420547802636122792144742803179361294427697441606231138654250480374615958864139558555979011520100627374977951047500951502976584228646749089995042590918424304118696659360344710084684307940463524278077714916382911464013464456226452958847848781205077718731161610015532126674278177992118034069840572977251914455142953525763281779534717323718618065194729555877525131540357510143072906399458044387881493206833147037474042390521843636326237462918168168727032598490011194857202340138173528625231385506260490255168343941734844603046708660664781171588647765821089261940447898094210670790693994102153956137831447058558314950137925436784551127856502464949826436658281914589295280273598945361837853834077674521815844865208618478860132600785413835169887699347606512134577442128417795498820293259211297441706812831887976941076789661240572525489378761827198055695607978341525487384310393802624420354492033646116909491745878918642128505751625987856912807980351491849660954256452064226844186966590923037391864012786629822724397903269855516544957176245820944641989134130237237609702237669943763362601921990230804836768605772638031345510158626239968751910599416470234270723627963957507232612624233738865456597508191828374152220985163303850421184591197586000471933483692788456327645946413709407205967548352184298457986822299639633649531552174183990752451159781424253977094160149719283340341432453658370448122967315431812455612817939803617908376478495124000266474676599537781763127300847204571209769340967611497015513921296739624239433894480323427067714362663885687858577427335508891931536282469110385914548970666839199124544511082660028798693516431425864673493853942047384854098707151146618887294812297027256461357855280053251035592694428080449713432336178853357886332589290474382932298356320027040233354897200214108688032008328325099205201472341788271038640923066480395705369732587369668332791404711250797591653785574493459746462779645571231576839974657915102632004422531355994659345876954199294116496881927908333475397700749762048111937388296051062476843693022508652711664488950478983741048480818192522367140383150228822006576060229792224566568080865695366971311069459131702888934051761205778285520632350299119355152221974454455930390065081828835045871069348945624461854082990415028072597737035301082542074199890435647322752677864539516963138349458193433249363111999834616605956437313297355956974968316419310002329522207881596257531833006278784162271985400193214969677986433177454897750552350867893384647756081855714018213836085008644277535275871012314292432131730588693289014826899071206050156166434038470691729388366046446093776839049484874652259812593656656903522088043288266199035957778939799106508614941848052256678302009604400901444329576795980295728802624103986548709962646462869648473245303022311413451002577252164221223023068335742749079256931513709484078477027142118311355351263169823174294591431805561988670565731976948374527040749843666624224148178508721056354006996479924969623548949146680688873511473536463234955949775657785134422048134358315508145709338198802637180630123360138793749936629421237013011085659901576422377356846560778135242607980557904798049867770193421868253884000638411555252289088301857323504725585230817603980696068644465210957197621611146927207025849256500422957006962831534552405347557957206680629166037344163663364072618841075083129811484406721134344766280799535481608923403659492792463702863247873377208458699726091374002833027007255280111127614098234140857019853151221405135623418176211745387645351735209562403550283091013609959457696516791369684933375367009458543868022474330224032410177752963879052098716532317725630230708855363705070261268369481559137144378167851462424574959485848776022486347790223049971540994539277168802248515140254022645014839740319523949171126024601036518672714515865057818310838227266402720458999160511940586081394139583619399875525622338883603529606746856549825089954683902144703994192811213933198112200743700609009993508217430644770457621269226902395646067931224779276013517492777315970546621203415853864402743921467170621623785717984010425301206708211682026778572491415391599672652282030094364309136508186131359449812647395764962471492974836836388091670765134226318269147266273108963391583977434814018978172387960705816150418169501214323029285228791712048512472732553452753425677366180617679812159019057462774921059938540819210394038307983326615248335501673338085586090833232457935491365065903516915692280053784511021747904412436331388117126326154160585750044842006718620938525438313897307678022223664350604619299897162534623934447858135272976825662123531081496487414174390730385149011693974993955450536038766460855069931785914043426345840298983484945351895127970707012815364526214676912928505312572810504060551935537129603505661789206851450302000684587021345224536046654297237886735876156633316568469413846662027805970727099936326777869639049481045546190955054559479127350356356161366743567446311648167811115614103363699983068840174531295272348162855167061315004452697797022160079877995972687420752503164135889271092004673441617540639266828834865413105535531364305019804156761900254172773828398616952716435751174475530178685633532134081370164954745049988021267403752157438570425945549989917912410446066493031767808806013717509454320702392044929362873737805069910793082934910698671531359994863148749568925967583858867042415421777920046448883352893105334156353688267004448244829635450776499538577654719726197371596634640151017160400442971963413509610384607777100078116654753180828244813421696028973627843300332921333052354684046140536361872013798678203946664847135932609221077217643713378638667507025686703188836619057120275708588688470547540215384109832758980062231572899418461866543762693408446598244600267106989106179434599314052527926177125831931686108431354812332239291017251820346768324438631287280637098702938295490800629102547317438347646225118642311121030464027314098499298945057788973056608435054356054430372930894952061016168796666603362723739482866924729439096780590705513556807943758567453899798916347422267735957526673874940424223162074303267406584696547577717618615034235801232714106281306146368221788813071983522392076302134019101484077818097219523868023789801154320758185518703063785954000185895403319495887987740649525924335947989831451841475495310108488840222557649613889503558078226599965882554263932036877149923014305017183091402664746270543883960933468421642285706795591517067142968666147969880858253097479064010823954410878382133124107609193485593811227004220545310730686143350355390493388601079881435602760172289880119932950424624586415919584640976057857742374220538627336725921917056223392778154667980973503331893605956328127360730054912249776704053423121984753224473397629798062101608157942249340810587220711093680956671744370613106413006400253861854485434480723723612995676746646455217602100783475240613651512463420161571161697533369723448706961183701479032742510757259835021789646984318434643133091475323008668677646195384972695482808821698196919794394124441175184600756983465655164227564099950958596386116382960015813043279321043972878438025711511594475398050928171379134650703207977809826773493737326603804004387438643326878526751234403869032752208074600397620417328549216052041557974825726697766747122518015927209987765124100416666815561333077898937419409797107227063764067991181219760010606191606964076519369447547973357141848446045125849089992896561438570006271524813880556494116873565666015058985911331567585535273807421888604423894350183665701938052818087080028668241942741885458021838569203602030775370858698610904256645860547562714062695585774126454734974562137952779577777261181981978268941573365364186546005745243580183041212392783052000531945811304102631698257207236538600141234827368372275510315712205587127925682883415850434169659255907480984465541560432994402904687960582459194574618425207817803299948341687565213033514324734609996779881997593574654879798855501993605858522071057137603838965380181505798078040860718160453752560172527631446024351365675909227276255603341049312223771453221555134548972305171891464706351519739394674032070409427154903893275805970494957055273403284625327950081211629303007111295412968180522410800679288444796411898203932952851622180709972161318561543797315229140643484630759309696389241105874105989399163762565003182104641608759054922568317791583573263155681309890195534055232732447906009491638170829603729075865281066034633952097467705683772552300837610899297910890311400496188927973944085636444791927823081167281583542504436391563565714109644723102853348130837952450464821529506171650434472583169988532089217285098715315241297812739699526678956687417321272014438676031661441574275421685197154006860239041291011609116033452207634671627257969843489369657688147299971912241146330543885028905247712807559711104439900186187166203579641265338710365062920920258645499404430946291950381168627142303165201530957368790640603363953923009247709139065482272209145990423604400152236994377683991959731767745389174185440375617900782837656216201195918964301525472298524256328287526287260953036687309438939844623181547496164517419533088373888940526229252636472778860493000160200280984398249808420870947517858369791257112450047228802148306222199404612274332193355962249421717295789621841334769419143183266210432477556308623389257852521575914747975829833921863111388536103738622856174268558808255877889973773467543586206393313401121566257575888657377422841158719816268197852557709343864666463218419797332055933931119679070717916602777088652710402636728786379425370547325017399619242020353558347339038775561482924285773021610487593921192944179164927885907346463736514535143202274358542929308046716372835910809534210277231116710416379808521043412117173709437537623038479547387268528109022404446665634394128750621708111362084418348736412490593988313398714915608154246246914483249392262916724871693481956118863774817825205226939864969823746465282767084377276146337756823303448250669280341514352700085928031999104913880694276172980619412236732709958217083653990671226549359084816952238082200855380480328309276944158824622810416744158667000322490500668801241703609498355465034849328699420731675759518134205638023329162072601515708359564375454542352940068496422985516766207204616145679475102911890539693906156319884633701646512484341841457027166486277378179329120001588172452780632455183774441473435276033153689998903084418439511970052351954889313960377631130958435381143920081814171856571799681766685051797395817274284053922413033107198766461378721815037102918008425615517157573550802592912080938986774250147180829130143021659215689050284516969872648484866192918601864701847981680124710274787792201043691197558454938874738839632499597374741726273204479561543466847763439567871093872850914739134213986055162260861854821770390793365684001940811584217246989548453656904622501042071888919358831423658771831438313008198032941274532792884880187632265909708798719459213471929476469566488469110615271426340551388673853992969535278817308284713323061325625685261263142460766358545054012930581268592719260253800844653962474881561149428803175111001570066443050642941170792391965408310042286695774971487935188708288594372257503240646707574073169140236703707096683119818467484885082650326338445036112101760770456445869602624864225304349288551668344483779415366530719649547985487834021118796045482285118097704541350078665081108545033938426101624618286237919920474112055733752039595137446387381427862552209861701060577923499375716224537634229984397990061735631096298494152763124008470826913761396224190315237038633643882626898425265011547129257480884226631306120049937372601830446806884948773834964766785650477899679225156696121660785608464561171197378103670614020496670476953905171827394275164686772903185961214433702020433587840297854023302910597882152696773533099604397797217580512853416530071843697889923453100832106407544094341574102739600183693361812756666084287847321019405727558157327361660421547368689761667772454421813054939013350592694862979120543579892831834025845916978530183435190491279578204812202911779176927258556932258398565719888112315223550206368189032229219262913213291142515511455255291605692177552173339746113065366730881222941389484736545852319713437247382012439651914833035728137832298311175365406251427872857495372075516869585622552276858696401507880000693921488718980786801526671579568124466764358775221962346810166430999410069635593551194949297989255518934509072847195934736932752890294066116574930840717214388866239166550096979178750505124489456836108058039522765411001373330930548031468917450344353072218476449077803759549821912516073131815692303186054591423394601740495224972290932633992043348535669767102474193232587101946425828886885611580787727915568156205164079612945912378027218890832203541616576541846797410426734448802362605174039337548005738431672396787004023152512291643070414429240168376563946836544497758435590861630826584138003177531332391473449165645939641508637389825640812268947089386755589620605559787201954856839490139294596159539163690474286763238311658729232499230744181951410337893564293071318545655099381300406016482838788286059757485861257032999013314075395822686937173718850884639568496235424113656951702224022427349771483749442453317539553649326143920505701255639691489892833582501626168798398556263480772067585571269955847119782793145600245364004451643419019681708378901733696186261352402690662718037621333847189461411214371717530919191247081350022491644213316823293728904244774088966716222165817002751324857741235077460008419050080971249947731342764381620361525086249814841102838525476071088821235339330558719984061130635096978441590516107729743378386620263280053772618812264385919775527200813776299283222890864235691607313450637289352873248328189785817405724200054864602699579979592381492340177564989507205457680214750053868814669059527263149340218703362163363012199053074590293991922428384285248991776661904949043176483343459850983825512497836292974885714220617457529860981951587934372189555501929536670563673809174627804974759856077689416498533508715233007830807836237754640204655967110365125152282289191405840015252268124291682636455724755233870492766672805408389338000847478250500859381886233922805766559433151841631410881917021605927093430492453737951276503066487968933351080125014262726648943742881505693965079827356257482296595769347040380643850385976766974531264511375833988440055362430462186158824933188248597298597747320235310881680998433095553448943899323401581427834117528575993246440093431245496657448593490603778307986221007053385879091146947731530436416118842243016578957018985300723733916169265779704040765851304095024682177883267019880466286213217672606879656531040106673675794002447909292597372613251092212308725983485620266793998688087964334704079694114329009589655985868517630504739265447281578939385611349235103910369764367521376676259217509446907261311094885981652377777379123140003404001417723026730523176111712026208003318966819134137416941061954163337085801724328486883062227533832402394336012686991520977853890698883100384884003965568611724964778206294476515207774825676404150754022026257961495973963100146745638031303597382733780956601390555946833514856483011442901908664468256206636193972748885096261563345456896188845731392053126670944943276225152255616459737220543277603998105297216925964875290187313678863806793126702457518894875165235267576241269032537776999786152754007765488218477785927273395474900084926934103166392446989628848938597844537673184145839234303621402355870875081212971176783306351837374335602631113436288257959717100532441206605423077716834437788776585135692953530336853620764891096340728214018346770039786902755670516585821495459716546929741948517868140684654864359783091617214491837071842559657107932828656160229857257289050753173599442586684776928487640783509320688180372355285477711676634821126466017445746809328250372994769904028699005585671588478496767128792891807115494258140413064717747296081341372435472215324873691109284866490648336281830703038438352952047232253122671382885914988556188395313676577796491601393465459605833909509896362871243866031620763870797778924767195194386725840463486418243831354534336788436407997597595112077028880354617227683504672246551555961551675218133974930933613340265339313478138724436885172077984519647495803877580412112106982977024279982759334583956756673249075467334594267435000233712313670649821504842061131045262724556149581558206407616661634278874073151511618177221150089448631005695985213639390253942507036364755843340614071425638757313910272610139236299189451882508107947460387346836940487124322301711379401732679461885883845833880651008757190708410300091642189137903571629059885578360532636397774695699338040766687645639932148598017061107293274004676757995016836970627622844944281092846011081486050104638991029934928394590913503176630966090426770053942927120128421162331687665633748348924131036128188671519462256949953239760360298280918186169940758197544755024974583164195250808883902698212082176334189832337540104295963897444196177325722868580490127596784152648947998310347565032915189798335447797118066796336900599870985334185939657354419493782413993946618151452978882979915352581088889414717911861117715879419797284561613209151464840642538362329490778107833367283880982430841687940556946521598794504069538968219941188128743570073115579961203109499109409915876808189170931449428808525857831860453457017289103031792200064858786484607660710303343080223655774553582716523941474501972220857224529004685044425088312105995846452487187660427312269836393743114081741719278575935730975117961722789150101062994415237418317694167517917233822455828046873185616355509568521663583029501906217936886088145733432608672416727132678709075595532620049438390096210922544092671956076160499286549292209082372962660351248575705465520150824497402770816919035723310368066883243105883051802953525122955263156774703485082769393967966702238195390001809530778565853670814921386989066319919852640393369407218487850184763899242963037670267952543426864233519962358180527179997152348502696257106721640851846662058760638756642681323012842785367602985171156919454039978480349473713308723189942880699209585783363857111187530930572060772931016769744563737501290998946891083816621553924828023824770179800905256567543247321793041312531676843016372929838673919653643915562030983282926718092405128345130151354036411354206975493231507758235204854434146953394313644213060434659694763145348115384077322631002755845672075150556731414618562502693776243317362606983644851511178236452920186457392294516951054385074038462404547707226502592110335037182557311434874183914339371404519526366295601574715158468947295716023676847900623467845766508808526126465023520774567409695484213124898962120749480464776577479589371124116569853140627967056457674099886505350662316950709818921825698234644657792733293791874667777596719315782917620120665516846420080942238813429893353862791392504702200474919534032005208862752141179743595729605240035031232927894802957597932467731466751455942594186479869683839203709327062314419589010796977092759817944874231623763016316426563570460200395347779127415461994591897576555440167055019480222941965202099480826593278781733674924314746338943642507575538075575469909536814268656965600779752966296426020974767807685079650002889159906939640133434217325114066986994120025587792151853275700102196686262042797930590154150703409933043807669703762252241936769270089559139625114686728990133422746645566878664396721950807870881037598203667262837734647026932745505109630469773704871704846103303433916923871639438299830135608927668333313040517426350707699645361919230316246907799490636289994203438097997475134465852181224029711734766449475515541953415441826933593970425777681213548947655165340614128056198557404986571981832460821559123479397701781016466222772901526824916231865822304945709278164960346536951824156796817865274382212455424800338240966506612974548727338102575198515097009192383088970207163102403760536780370508360175926741115635786655600366611744841297660487856558103918975146851487425460102196042682837917915979323779358935742264038188877026066805997521882281778429198219021037136787023083990901793796820206485225905484183312964239053813333176128046679846384337562868793096149887172470003554773675131558434492168875204887011684813755861261262566321130957901742987807993641713960343679341799052177757937029074121073910113066789348322977583409370321772846737485196303696843557231756289583435385726645936354628307409611940534706761489629564653860895195872659228810921931781922552578526683966950825176396581456598340661230918911000237769059227454161254755403190931674670360584280278358720105893790539908390464204992543688059313140832479670778664452511690480017440555920422172994773636594034942497207026936278206433244530487028010348681789859796042954220094060045593891331633935137127239549567268761659323192841626003179032189738944880083698604053004337482547189554341128063801535291204353810867067776814476558434754979710559957490214471447350108516798572960968857163709055642047457326609739361264552077796305552789010515274162443801145191472287389752659189166646158775594367629529529740308427238703289124887335252959733333213366128014690458423182919377212899550222415610891812665927418627191804546836090642233668821849182610520817828411507173286293661160759105135617532049049740300301392500429662666587965037759092288093453137118261751547107276469004346640761981701852100784547581039643058072807340228704342051240932420197935196622070897181354199650319875336198688208510028657733641666327588745022150798339442371675987075659863815204877182283376845947676100296081020356367820234679843336385456360488826577000187382440747164752350989842605821590710895597897910895368519121583362159405651028831429851238402080965519388840282883763725344001830428164506586399252708564723944469197019915103130660926442335788457934864232243888131382410359382761645024372757956204973942820384135379035754337767140228302645604928360667241445120277694360527716043603025830667088063313055057551423751182028872791108074568871042372486128722613618827187060867285091107704175035408079601476753823139811722551769100439078035459605507957478948611034501930930988785680492418502349121642933032476876400393608385025904371971499793343602771363445152733768698071075467973473905990963792489165167165822777524302205790190916305891894514294190694499269431561432913046182811145368930406669972893836646757860874884739090215194015700684045893898808638134126261188375428508583053212645775090790895119222876949736124171106676060056469620246052061791747239707294206907892092294847453591110391326953770279979892306560053681235444040253218691883300029764350576443351849360400238977118601553620011944889167298656772066784860322317605665450135729058956557863784609745664352460268302220367456018662205387329897713362974233399154614921030128973712101248496897686339622238700005363529038647802493569520806066526273885884414467644213068186531284750564513030476866636041861449003258958651660744125360913531603377908641827440558192925242473206215360294897565170455459194538381978433010348215311345817668320102905993631570536956537232215581166812801269128021123065300368302103129213015275414199684267066966873528384840415550759190647692295566587398389180209277422562764800360098247061788247309851785141485160901707079791650803775598271758490071444771756375421354281024094777516448261690315812458138578235497779709105692501317442496572696902671493808035611217811900121740275245431591954518916413538963357936383325133113427822499774697001391540323923659419919974790914283950216203802099110852332018790448727080148997579538621204005165712089235877479188458197685449778122704134283220958392169728017967432952887412638379878863171107862483110163413394791565225662967006081311065577200588827459999120608995401900503385190744446590884812872342707564557833426371149344625448372081240005057403759030117963479456070436208737758562791537799410093607886815521853657609536122492849754789769467448928889975803060311093067465761536383010958180502388521688348871885486546996443057579487298303794994840719855001706811146869420834919888848515874493158442985643376596995833844882924708892045320710364830332339747732285333760870386662626309942968722301997534520300394901282563988470547078544874745604866662654272214823975371121997399770144611447658065868341091940981121835005182780521647044905685557657404805708410488606869836105396052987952394718569205509847558776556041746974020691522706970559714199805494552170624654510798178330818566382634660375367074059538917541675633143938935346508703861612328389149815846246376008445808272035641837405537806535721847492523872312744463905252228885465739134049900145822741939250772760721789948646811460493469589203531610705401617339645471633123062951570912163712792522844986506530107273049830761317504037080208789073813754138263622393843741062537013238396067245637518155748991178937203100180389447257994126457215132726361447310647470087996489986530465297979481281101100040943943470264486948788639809690312221922276255370658882084486836219529920609340061049276674504165992448017274429896736548494112687704307322369714204390914428195020648036956229251416657148089203361702289368568137258239136848202942235359258909879096818378331325299209065812312648450644586152761050203721603896282184600514334988798270693520140282885391060277576828741659945000556613499350129844756856725995625062835824620026999843310494606860282096767996095074539035166728336069323269288646112399395261800718678003959048679809342177841071164596553459733254998237654626496257379552229102520599850458233433211882711592438895151334543080972598318196757221887208907294083709709877852597105905938106561679314453645488202510367466554767714454496676632110012799434113754680574917665667656731919209181195046155527712871928963750930629360170000094668083819131356779400078318697717121813326516462745303479378758528583609089105431830587200391510365978119793655490812357360645797878232489505179489230689565953662773144762588043896651754813481020322956549338343591666533671397588700205592032427785256123465915925531728402463013113628621454806550922213623459380074807450668400186620189220174963264925415337176165994098397259399459932322604381865915048492867559493102544301033104413167861570566897716851085497571510589748628646203793074940436129562956264969292649846239062397880974279300175593132687829527631394371543600011119547771715409871383817939125847796196332477249907734153336890850170946208102102864589638257266877471777731949313381267281772767625326332128505180799078856045625244151341654436930433581918824038538933434996166964737692783376678525362014925000122153406480457647395597093201810995928095340143088894661803284544984667179732918057980572384279216133185944463032203974305259813945801300707576947089635475861266240562978434963864403110164264091890771262476867917443127710418644177751638663828883362938850395270651073585765449776788109448753825188771192280293106073320933233854927577134242196958609966249648579880143645885913478604917425287920036788765609960683119766780624944591246296789642623918447758327917721571000369244097734123964265473405419913395460325079049868323417554223184141963471766852979908913485022903224970942860270771472716816259067514352371504765590988565423459908530128509282187905382705144779590953866957161579200233723508681216665055807931404822435790020327938598738274766106082367775550040670611009543244017755744189843231493578336372037533055213654212571540707188243357377037995648911603639109130268999785597253711234959365596928491427091961827647743105524515630262828173511302264568730043874296383599637465898152431769279518419940339192961634994114455196258550191535245293171401889948849294450145448832914367024694212502435160978163568080739200058417514552441863501015516033706286802412687181418223900826468124557452775891240589600624138619540089770460428718492421519082092985128409604635345719375410149315723145354929110035239298723437052695367231717360078646084671004864021157019561187901035795313441800182042514338420525074245499148630549246307406989135268085707289311384751144202706296338054716845213783211754412343722748584673986706346411216051799113052606194097171602727732739567815084225633806335304801302248236715790982286947511808727467577233726519214031527951432645070802986492231590860402572012556056168759501319465488075447037794651048897099688748044516831220052443787820428706186844249703404533125045395998666159402177632100554875548621178247805071597669591629650524868377757415509470010943458664776556404338602010430546893351230374699716680572979645680839108385282288222093169805817424010143045083925947963479397650363865190254942056383247467125616774768531760089478963383010763113354234635162187645546851655751564346363558154950733159874634219465535090900192261963035525066062144662174944457646974503360939189259662221212845087034240181547638782991496766509139739569820250094336476982887691103490266701702121192698495280549567404358584713863820646916151856991783290652096107818376749165191020599717468926244081637524311152888264097439858457222662344088804119223471744366814363749661873640015786672938906369118990733166464706099892428763443931561775329391026516826959264041654664207458139124077208630669311883685391524874481756607292674384765463572646389252627322870958956877742789630901782526935561086194101764297610876567155712081532930118749160171925853355106745285382436512893556018014202054119719474894885049405819532466542569048685822058798343094471901825750953367081525024130750624169592141013091035324100124001199355617014631726285865546825434175977788011237044303460919549446875083791072323609828405746243680404554698999716275182202873337509026255108384319852815008770681099670571848523458217787101841579129271684348250775329286906802613097767667101332013391877116778501733579757086263238316452229052387475656930313566541127012067015223133114349893058523445138542681961445496314428205855755951306261403921981513302025162130060454917831379906049120838626069630060856386274742822607318954850273833511696468045351062392532617499945057336875553360104406818146246935971480638639472789321770536989186606232987655527543887945046244394333848863706894537625785296600220792484872546159638488294074207853453298345058192821817691495453199308023634215567251229799447025001339528140907623520007106336831559078840901436739275476328163879562134810640457099760168392057496124776861352425447685320685796228435971665339879338234397228337964516761723717496745379204829181643511693914930416591743861413589791556925715602789268025902881080910993327295052401930446796405517278056938396706484737192121074998981067913633654474758754684542062216444202038284809017554487114730388272067986838322727320956506941606157043235285081268278192353992526078361267210325572217238166595497952365551511806121585440633036688350933509121499770121313610344579748308877508695499776706055411353815265422250747367872907800102315418671228382051035860673605689926186572180229562665784436202539340532374934440156464829634517151193712971952353741726315160664923263078350186793706129605197550420778038312994806597585561246346606569963802597542336728371073363324708050999046387915963903067773101370924309840413404116476700329535841344840531396146410476418603857195944771042009161796419159893961876060844401294431856778604349391748965658776717219819174993778748755566534647387893173840151776651816875198942629043711456518527011745579645587273818360140144514963743778051647513261288818379811749178416542342642559864362546931952295643555796730549829176246910651414390246807291652833159426418616118816814886912150718663767147719817924576353542717241427551269089291337505899085394493647110843159107803689012303493883301592570858781266628678408997037775559027605984996443348711131810824229716022844234884796021658293108332931210892802435426079303853864412666913388015967674545151311553400252241989901900721282207322314757710495917488821205827332287844655822814158572996052293128940552137513469556325094909141969480046390493342207725119574272223254188230583691746192054989616869662784133097550519889068244077557076737593311960775098937392132554225637022380831153368821554156770039799429497524416123976566432463552228133394249453508215942356471109624993227589957537493365345678064118568640697152477427369472722562280207916334560721614812504704958795589633418037844817333042504169753279483090489856973364940487102342759763760923018755592195930446821706499575547273531489052063401541714178886011193496439128685376130991977012872894626688353057332712962923955960721888684503983431789143114520507429037190723880865035315998550442593310249699746845675056911011090478894673271222157483899064167897063402073440353681372397538867455157786604741615239937723803244435807913900250080548301464668830892689593419863086966844293360566872764294891268426654295048885871981688093587728854681852961726289469397264682644024549850094034457616645414497814667488944426014511120857429069987589958283282968321281221325038926798762675837618996430241441971000570865089905508416775151376471703626712430819052883100972145624853559030650618744532171150741520928383603191900357874007477969387437056055548334658708984087197988687198859265796932168947004501624972776720775642346792115135857158472239580508276650295314099369120582018901258477145840913999915181418845160538933271070428380606404201631320879979163496566161170908121886090106933126708920145935166512466671835159005624825001690996755319777305113974709350077908293067243868945089717981230607736371797987198335457136851565663295399692909854316655736854117698480257237445201983522671172466887858474417398033451587644199115556804460957837752798383133017001018171742498057142010288708975540344865335718879034101443706689247134676024274709871192581611540377990947163797545746346547032764507882214148609494244381348737205715850864541707817261790261727813323442906923468478106741309281439517429865084858475410423028107647661063271480535107061464684970195321727386136212019573707345061620829500888565801168014314257851236712076620637649800274593952891517686233948862381535434483692950788995541093856409897370783351078031338806752945752265900275600039784537156261275707941699685708190440633196974864057733121987739093300284206724750334536561260178990261776311619573729532577581218343602016479969786893210071687176805025141554256536072092788212702897126890733901991932134354936491645573815123492976663820164883273731889570105683287363407823158080616074209518603545414211055235358481438151907547981029291050285271565101282628653983649060658125182684281494010114302715903011705014627890768961410364193123327561273006437844499412272233902601934282600438950924839567558341647705504856676077898889828010267077278992154451071962128490042873898580638575586147924071107310512126942067718174293467827258622776978659064455498012239914053906379754538712877024582318644825651398504636213537519484120344669469445859138569878469805323976612030618492023065541101999888543474200191154069722541850604347744534913620499918151562126572246111304961576923986151794095729167709830674289116251479452981978042806568390710810113252018009823878906375900963248045809541018910962515214518256143009089310743856607802321112342975455223857050834600510684775990298293322489388166180725823841552705594430694816129982808583409061105833500137188325075285309072450793763792200160069354917677326151433415484629664963450025366390699518496153878933274436627121335192589242723453580135147974584361478590833777368281078237911611251502576303418661793053516612703279130533197625438441091928221661882800073415957679933990027005158258054916384957843790271789707528704211566754967721894041317108222682772717811428716655840671559709754904053369169552115536526874662845052814957512026580377567181237494421099706579693855858015344840884102235421469326848168695630071952985668802459184411933413575032248729532269844228773188191827485895275314725226025771183598281422942655611999122565996233996649368349658083078922407347789425554849828632200655193449832823018872610176778499510914966242931691730738635259729139941310167640837887836759205274247472998210227901108695297309340812513566489695255488629200538059565708775999199131159621657950302020611084158304262288191827732330394959244846675547542799504318469197097200233149412394922346316783551822827390897468226912716573925939803249120098969840784338852713305338392071913742413659829495427103949269336002596554698204166042710706059828763808851654900378789597932225116583064608954355199509178741501280465529149428096266403655316980723012668425640603803341341684945396700533635827893872534980131480069065677061773651291070544512461600718295384854336861492078813032238515446536392440574686686429411242361032693532147914946627753385185707727108363006009733799172112217431126663758812540093588417414697129272457226711747486184073495862984673755532818676431836007950988585137113047566745902226234439022900234851315665250523696734119840910656402026238987678850467173438364613972464496663561087717939261572025213931059111145031834841596001698426524078472269279237708749057415619434666620723837430918630568792382959300642861092286271304834875546427799022867934185832266895064828016199369440863632775141133828657650502324922079381894359768910615789582878447318738339272648960703706374858715223155582573768237380847875257722112984223585245658722830271271998035235191825433588566099660943844972067881605020883324710498155799727772395152905757121586591173462073031848346654968011221581272790160616642540479729948880885345010328606612117650108125470474200342297027319325527995281174680576775042862787869212852431323221548635847810739448053434903531336576822037194405964636499219028629540517264459435439792336873097769868742770841099060597965754190332768077275810063964228375077450791029158164881511301608877653333432188989718405963778387825307377669907101572624709227391681603486438459204332035415854225719855716060682485680710366199369168726962700342137782103229127109685337536456498090732903679442417891815167656779676573438929758856065716637391964273162591601763928201792554374771671219856634716753299164497312825429620197891691188829084372512958968474586229682613036367991264066962405496698731933685970048060486295251022636545367367006386283735560927232060637531384202308104953451857286624195598854009997897302107893988175414472239564213757367221551127702042681716205978699809405407235352175644473850997763172876211313516100617087721439293053262761527047965697251481297315456329694737570407524749142716045445752793781253050050040533568379593527788487776104914409491468052758067405357204524037552175997266055230572258821120900823187763942329226822869355908048543292825743503880945695039582020793888139173020362029026897991077461168758111630989387238450347571594139425402578307540230916813747725863869322183179779325008741920556552506708652494170130047023864649654962567820682316203330601827147579246713024048909928696775225020208200825994030311799614549518230711523435439739430071248457600222256634889706191001254082023099423982690557825627844692415249434752733875827538542937845126847074329894674075237509786463848317555983575348114627270855372054441958207071142295756574538026673786721356493627814451940892580722202095163063842146120684765799080001442106495835931326770585848092630682447488836092760158443756753138268217630023348078353608287537956819747335483311650283672186143192064418824518065739516111820732529441497538881798697533799542372847091276475143897224403646471373654490685992483837752725616017768012002940459419163554363008680020660259008365424738844766887657456755257338761527658881943459072606609873232440055924877833113698218236583935258403024802787452184084102007866641032822793179433704038161252980199746714634872362132589302467190127972625773992268041100149596994923142748559949832839312746817303193267397428230996950457362682949887547319955383689247529181554694436066562933292390752210772321638228088698039616489906843350761640967567555573604544120554737458871866822189190454499679815775321504754303139309590492139578674387973535270474048258176110385131470639457606136799992085661636163108565491807115124610048018441709216247484977330192612824102573188798770663490646603991768748195602046082073762190316084669031289489854653376064258467255365123182176222302661908042275164557785845880615239630747139858285765038620456499708357033929534292098645068132816163443164009167087540521407695226720459438678779848867919847628885374586371965863098077912391319967310781480378027915313968543270054159583620916289423169821595988486797963143167769739686850946915708095619338401052531033349385024396048807780629644914496737670243270085411555527078899708217611279246074571122751879924645528928913098801157531195496071720950398382535839883760948759054138608230289679278008638518137377605997615233843173579360910034197184302231855144153413997442974670771016782365248033909087035295802772248224792975070445972271736984472769035781764576746077356124967284634933721919908457186225501199155216310543432707411426718654766310269169298505312670499969736830853508613573167162152147589690377286176848664413306816090109833495359979920297294950412520154677040744716492824327811776067535745773050648183966039026568541799173181153943488992056683179881303388282669722994076561560464845145673452323811342689909782999199712809192831127237206654498673444825032281219734858909792839581999869484275620926459072557523089748518870134504327369353057181038445123630251693589978710099185727436668905397658264910919381274444158913812799276319689289301508515866121016191836937355960509772132555221823279086345818217146281865680792034608694779415770188644467140811842621337537638998590709574726877909351862616598742961698412651182989493002678059649034435195404705510804418940255304589589900366976996737147042622697268259110915167411902529197339644380877079823059869134661717658516812577535495385452357938933894909718730947007237990733738647012410829794617284389007531499268776598503899775701018991638933271348686733787884698493593946056422682168277789975059716816542227995946854979786628201337660945828033035741338265266675889067943022264411124600001248309226380499423030768281801042557524359498253078891682851568376122819507411695631829400751755139371390850797702443539540710559124532596483166636159560179036584989379186296887395798198047393323130682389025762256906211573217293847034562492519337384338917984058674907530388044587252367613750576038535915097907264275473224788434540051857476792675666811735609122465120207351177636080974229590181502582262083947973386884213032150109959547218947160244429560446102477099824949662319252043462448508477867534777718391897640587418683319844299108346149081416601178562515726820606573333090604778079664214128756487649643543273653421124458983517160624829372109665792369071676462971014997810432833555638300155288707763969994940879712422385092441451705028761950278588586468677369457748123222382749522388380751773443437296724822058414108711010356940708374372662560161344854795970690395720082206659658488935681643479721096451979655808406355052386212128518307761101364593030074434242891825180698930455570380801140778311348652131425096300480131374189810499452868883530138981335862496787725040983126121877134194047155225168353752562290665195520059642549098184496293277340513318969559204449692972412193884220796216045196129705385515166792543287828807431951466976534794674960452603685492144288660301953658233472101446114350197860776237671288488569052171958515277592546846443214148575195899034028937756285968563094570095862805465056735137580000658372093012642458844572827491277909555651434825553255372915301363696623773548684358353297270520956106350997380435170855059204681025752699101859700571459671620805061399761603813836306569866646131344212172387271165360528750050988098490889847265027983508374417224343288280946346673861270363383665573167024093023138403194340067538208520932962130328269444618875790253254457118349577061555948312153029002253285802777431723660201057609481097932639484891377820118010912144011900027928679979220755766572282581576585923283714206161016915577235406348130414112197458760696669756376421586864473766354245064005591812455735564249433913256734262102309946889203567528720195402586712990223749648073659669534722203925986715915020224716339681123167841952668717221338252120980566344268792267568995100814943382821207023479440778049291584402090447986466213747799219511940082602864831871247197624808436609849847910198886677999330383587110639770071817746217158234325343410108229537389075428377435074454335702056927357108780266921085606980546590854383530638308377517985113400894666768300712055544805239599580203459367426445458209731048692314520852283070062729292680259011986130396547465467342753543501725194410533273730877367692894559233290801145964304298206431885725929006801772411819044282148841253651276197682322639978982078238839319345691793796338637664799042681980891867554393866879873790983485194094009327855480535265286083556144011891728168456623853906085946055478947028763098332589620399099633404830361686517326033759834272345788936636978546392659212281602675228409795880087959267545588666722268856180467414328637823968672701882364345773104998442588818317663842885638560168448743533171526535171543481612187331535531442881149742060162783769899500275964781453030249279084339287816645594733976375935656766772520411737729328184614971207708134017078924418631373449967249240367106007981404167149060871648021252516158290156576420247126171604801904043731492771197087211473593215174038150779790105245816735610272200048621900522829300302402021059785309848650590019111989597854901583735987859522516911142201884156390071130065953273580467462914730338261713216986603955270381271573860253917557407586987981994624716101068559489906537046801611327819269016744936848141456635472733322987313545085072965365344985110616565759266991170634823509891826572480190760709309356522729411038005805736221091069968525248388860261809876267313918426377425909637600708499323899665521943738013987219190446368923872053689996359985989999218560273803756666205073190364752340185645726433752819942490923239981967085136238075247526070908135110601717624115451382977517141611539135012611912920589482119902222406923029228824126032341323686506937366673850995434642810154402952546680474533790950553509416737988511100006538802393177551683639286347001087654876179855022748495581809798622818724224328506160227177451146151754920415284616237249881377263497421741000112384094568363263744244789681845600108202126327637553837893443009122123213472524790864932250588317492717361652501743435340685258532494012775873508239060716253898054410162331269583307134187067436522267020205793423090923150359022574173915108537610881611292655965288627263229960012199626669089236144524628030834939592998163024094588604459721308127408268813202696503506411763779210705022394872146654337680265770040676530009810137532397209696372793002175314556726434422856753387043642938891542477345367164455610376091982015104112179600304616960955557405041388483709549588986190047572598163931438982009379381479791412971727072548613681962889969640486974149855297868353803956578968036716490598943964394010255256658558579703541931219976933828245516942873490247141418436696939045243677285321945676681349397712723887720479893298605840306976067734346091946703853454885989602981511402886526080383495314734254148290859288737907211485121413961548252182870733459293862945189464725866591029482379183366291895567151409287866256133645434062789675106312108734138781728755033451469274798395794824606214760805758150865973116150299606832933344905798710324259815472840119906272850828656006998438720032416643633188416754840678859291457288126318074436506836237740862499560530606558552936323749339079849857988318186020475471554946338367124046303065699155074762693507458653852748004858479880329412910149123326274926241943212753511120096636176167070233958982923224164064008241262814619004697256268410951794742341514717787189104892029641853953313512526514264490489594390166416702658873648256418807488227838955311782732887599235622526517606942312696989745913212836369828183982075451594021647567473803557825497844692212090934901947365932686100534753544556862441844780331969221473787133003315898772727216493720097529454098595159382228148986974111735948755689286302088091718848903910344224007578574516469983640924898621637694244061084477877736344978746828168992118727707552949115826587355520062593620921655654665420937587733390542031651341343721114924733629450297215707274962640587537035012749461700934751825834867363128165490331822569341026843846592523488194362191722157773746019954882232397984448122793524644422763433078065509976381923245515374298838621811177397471357103648762242837629515518136068693580418330424979446455811853442552595772057407818940676226791144021744298048368887056466647289529912374946254978002598865974937301462109314954902156545294961684090654946662730947828285506776573870484620225970400429856901686519240477584179544917232717942666115692705884527768985439461640189560732986978359919406445190340039332833068304611656981347381055227288053595527983909923421405009802638314266971245586431299000079377231037523908120550592008147662193897674519406313135574262826662613358457420857121873562677414769687572626316229416851248252593394768422005475235202463174091038333787593602318998985799881191342938333683423115074202890264437424907986877506318498125242345744726916884877933172081799422626197777099304362427748674878834667044446296994278042021348004985396796692319730513060091504044770418433932342412780519689771501418750056001952654707133166788480739987401864314650308335578432945490296609454913909219889258428375790473633555566789717783369403158934275758561866687452794058956342286385582848115000889638510355980616972316492173667806744195481722096659413748408323855831753930860629041188656820824312080488682565300810548547396524939203720645951572423321594020382353432659520111905937676854179767265209831274413538250713022286718184992815036008236514381655223840920947095666875052199933947303946389832430077556698864039148369932592903980860155749429432592278664759984075247485325886410172706196535774122704362027496317718247947662927390305246409482606606978583921082532528899661877992949856425701293401450239504118322739541348230361751355847871493277507344136695369116476431152143876438365857327747641581581728549875164962102032168981081887946453304471214353345588195203160316339889285112795012241324971077689956092133192773475478192474171478021513738666076704890417576652548574723778322892966800481469680763882560937549917236604539924040933585465155350284508101413184984924236993890203321411982951573693505706241290371514081635468146628878511947047277198553163724505888038845801673775666912739517308725233722660439016685616997464902187756403683802480250732755717196484698296297475318404334783469200521015465192823984472564590597963989997749584939868679317453896364154742292757043886971663922507409645451767224594747421828978685037458202367306232200581604402364098191491942714116223969628983729745449335733207804192778299635421832803129937051253590824927845539892402625915640512985138986332280244414893830806371015609745620848053503939983259563538919907059730993287321052731107100560733818298282891664459258085286981690773255356051846536386366097669994792635975562744296355767690357702719926556384132640942328579311682421093592432436584385343953231136429486939037249793867815753007175991092596390185085735234524983874615761920056233450189547236243050684379795718761400981825834977445835024309135789718724699155137050263545382177504561445591060639425174054930382641458255407261018969625598021974026331420634656152500266484068134522229866148288464762760106854892711653628297037656136744464029287799331258843190735918806990484440231610244583736026679839770527320164147614113033211265995060396068236882936425046517132242616377639743920475334792204345304468604636173421289487135613296146000842914123076204554650247562881975060122980564480146493983449907484264285533697612718179053231295867842622670513715748811626979654980478405380361763955428415334081835813841302235793234575408391799301175585432921852796424079810455888502307927417831935359228398739681789810664881617975670665750261190073200265072617883613885390371270544914188565268664422284142091257995752097557633350847180168480373116918777770690798663846201069642707651342033494527387900479119781152421894697932622417427659613863153173877216877387370438388929098088786324056401188937375801898367988105990966318752319921911445371059069703574742479364734315011059980947191807003262355286930911240057751177972307891962377888081693914415825834419120852498426435671449145650584390124567468858990169484487120887871536329024056533860066320599206440393164279442340805625631863921050559555026436401593285764764636446973084981978955713902488945483391393235301985927232662765516024266124248663323733423262277835075318255857042451650786546918140261020773176859928499802502001876848630220066566784852344235339343780797769533135374469504001693229512602115872424864446951549446141683637834960352709140800565278993802440973385010331015792910650332021385012692400320477688503946277814115779708533737524862621730010724753389267710951694785225706172781068783833483710390240757713377654489310770729527554519074901213944587608276448321570534482858028930619838529482940584963527506816467507420920217352066903911194235933391446129884885425777559226129640516135773501171191300544052331879527784036224018171735231718686636291378144535606497856432416324735461431612591563303988628698075623927419518165722324392627557498595005723186132287799575184747312604673553815187028544032464391593708724485198582849578869485315615080926242575647094980839339064139847154299441310318364384006553179750698582867458701639858590074526274556566451434250616018069597980231745218484119403539502180684156785964916655148273001070891437205510255791223056909828903670126706689184016962718961093187066914970525167561426832264141668201460748707836381436864466327241819164060636718321413306240249670805814512745953684678155874412255169282344259500398079103514071270358722968290810879028717785448127528870583797579772587479410867043823631993309306960717959524903036698879937948974286405744121303042079448292306764148413111455111677308313190900700367790735447333395794189939428928015571328933632967532600524419453740040867944234753399090248372463361893432714306358423521102765936487495897881161341838901044574708745192639448123566565603368340603879860006344245642775736460944121435320014922479921707169966548058799729079912589078489057875122214658868031240276434220803417563821911451031029731653970217661488254170513205024267602372480831679945258527356015809644577826948772557313636200564798626988221881032907070589511484227903113566758439523225265008451388162088063761082128564547213159556773285906018198706130189222469575339164379713993727251690895396103078406880730270157124803843291603462042774841286815755338033794930832077937562006484237880131602699659119802892590165132525282205863217327335967082883704753425585839112083404763757709451757964195196564557707708078166652209419983773012574118069280311763859231337570866726820707638943308348079440161240463761266447222163623227032015207816168150211473517687632474391184831253457375776594306328319127404100944898143626802819138882137309760732917934908471669880761556457851303895844211655973120119326757060126007769672844308093887405369925722094262848308331732368978520275709890474278068786840951117730432408304693073223498144608393453995992013211215244396481853427663367370562552374235371899754853321467394478796244942074710245816568752451844789561825962161810856809236390114205544769094106187702298288993505023201459875640439720852553070541082963020020165188302666995454513621437365819900362429037206592694313490634278506170672983903684791482327654455898605445491212351894974304132042404229521600256432902404164341502391941905240666847648118180016048109203348378426127378875969124298707008099221507131672994700479470250253559477235087294869199662567428958009880181759274565940419166751309278181755568443484364528440471138835604973368752585661239790989911359678621798120171769538447114422080444042521268516334996520312487205062823694360946157412490207718297619747176873074324639182355259812737610311564666676353203995830648006194965183085945083834916831107327223581351113229812432156740668122220824160049520293443219049099026148378770550208282781524736768565748627261897124637300870444763086310655844490541017771308756695053688374107395532413465438848451022456947294570328569392602702830729841324630061672642843949615082310803202900593568916927465039081118881170411890312200177916579134589387547455631104262022071448207601592765687850751062633359374457401888278992434899925170653396261292307312207205711083892147129198704103684126610258983258234265931318617171050743587758632886629126473561340605092084901298621008881070410350529673685758933393768087428799597074039664855338971420377325496829375801579504146740906074784730785711358845188068399187732815207819014407802280054831018566608601189766855660645980402266110814387206270044683895979161802750756813950226111591041179503289238941943822869545508735284561260445922367382259059379067085992729173036819456994737467509767898365125791286439304004709542447053975677108717882547254674470623101065949910103808986969298577753197664830012251787684785296025020017843568649597629456587216878418026109830503001447779771521607262646336290762617377199241103368342715431720447468868096793541223140775350362582098671268982409509337702337249980207729550800948425076644031809554463937535889747877803075769626457262438172808225664215153178776892636675642090405974956326510302290806082209211465352284047598831232343280384469123321498644822333138405359596741057597347350756301830015528953505166777677444659257017849469195011104698101994353886445935511572563402715368678767368895926382718226803606163232203683765203266618368468828067541480946949144481180628510686388127174104150524358427323486545091622483264209992769902304554485707598855712373564533568213205929037003765272034523979910434736641873031913842574314480725542015461909246258106832236927722221914962712997724736821518050361114533536434303977581823199729958158266022647315964430466299015350742566218372901498671721686687683062308485267217210973160653321261106566762947005287200394094751713235981665259760519198454025239205800447432377164116860373095432775886680634949948031642746422998906719154571456517148149703227135324076724612962858994281068745773306718502310911915553422316132405372210820077287726791390897900806437883896939888686971289680646484875523643205269863019778627689751950284473971935607598998669111227637762002868170277000186412478352825214311881965824996473795363803603917972457150601747956615637756624673980937626935080257897691018782168423886794431598235037364912928941081541758377905328357321950674905460825845465556207127492093851461029163476047652167663813851519399508798076544899418902528026391743735248736069407773845477182624191960845064240877034968417857928010893881595214172763578371877307701161347353868592994820116006138930174073834177396573764370813168206080098787570366496118281743507015718861046871985599438563307360391212398303255108693161637311192864662839015936204070001362922896079648361000917488214804112812759394015992613192633528899529791296120150222451970694761663937245225395639950512312543463982580706773009666901820356268160857280699744677199564232546807631847721126796608430492615828089246194813439119463067914981994402269326243217387695863394512650420701624757110190833176020513349762536013336719434687482540571831394836938760444126732792254446747465278892368447833398966438718416072357322258445066279041991176907631287928988927108261108077064514179960890872086198972526532801171171348629111564558806260864303902084078490496331693318201904240981639576250173360732840157985598631108128499007124983004659973546573172584077450161378338762535211199727537129262106565454337474877003730504201574899767566685907902891539597129916086870861545777747664236870131585916442842837429807053824201088738783257390170108447533952476264564868049146511532457161967884621185362628540062395069766599471551710623776387901898027935254355683617266322956228517308276974530602898068658755501496207316777736349389747879722692619829110917514855641225495886643569393389928363202817886655264745742574912049317309201967086175313738519697040604214220400467406553513040227661000766768246180024061476431761540487961202716110925691111685458257199197178626038608362850949740431444720989703744116458487474512405175291968970176348073667035929480646505806977114841785959586464765559188625496537233090790660894267047476498145587812821015723814339092870636850780509740316650266622673830134423951799172666099875878350981192681298999321462195577000835456931539431511238658118998708357076535135623644906803413211944847388893565621759625306515645409747967518770727083629963809812392723453531271585281012226107155388873476762943099016819556273224872855375789432313003424830514661778174028499388491873827023985160507898009767592810090818340754558299216972215251555893897738888638076591201323694510151576169543342221005354581131837705862820046935714237888944786598512871902637132344963044803671156588024351363734147907434433716023259534013559626584335793266586985241094663673983397856519251000587571177363043952404517929773453836337200500545806129793664202833133723041003461751114457809122172569028221208844788753911599662001927292055340411568806528930358385530103482083642063535208891755475064103798400047530357447785700219975993607626716962959083759535309439853555665631260596438397012248247514489833373582529861039861133215562362681425542329139085685324490358165208899278039039619963105108562455554817999563061834349876851458235016429744021445357308196409469550936706410990586234736205935012805407274173817165920402901600612190583052749286136166240084401945695244297212022273160193827315043759808586276442343590291997185597003650494277590972778273994542526658281108749711266624302151405489027973386896516562982343340236667015435266777077084136666588713050564731800386062535058151383797901485232793037337519614704305183010087899863221904560348224531461538250793771832055900971606347910941751809132012621383363705778289209127542163409713502993321913984396167406111956640498016434080200931762103907472241006325856156065724466272724972839264966540056543705858497343145465066529698611661622429306524739712361543778725022722499224538935579006420341474665213929418575125633603395180727561330031940643962918717082628254828743827808348736503044485567931007331029551461573052935891992128246495685331452696093164343267353305449878709475647782717785742377607381720523443741834315327767931332304410652059054663687740583042034990333006465753809878539931160425856665638939733199455186032949853770563170502479664531186624002723969759215215577432338530753265084498428079811459006646642594897202967450357345153354296995786765982081401995807074766173040240752960893953394930962495802850494315868881176104580460273077599831060969799643895919861762568752775848164512729760830133518780420977409628421216001581832333095939018520717862502056734063244780541084303106920769852863742868835304511956771801077744341090618434322332210328312910525002235256128817344116177660282854075909601458903598057645230687788261912310868175006107428198014520855510856903972625612255664264183705322929712630239327664618170850790799690655864542887333464604624841707872730714621932122164645765643792201491722719736705447356866328309182289463286630602223684223127371469434442240379476439310183031420901298296553935819804798741155219515034592624264353895770283949130580137076205301219005139834144370563186521353362119090968148197258949715497559834183940438624469500708164708504069415176457467329229802307464101799553433661135210045894659039505145683159272419967571382260298004476202820227042500393553905872604863111975296197819350154063070024494989998548481151378758675939505356194543015357351656997337203916865069837620183983620274865118111916391945190331707908941837990918253906782027590570595545268154949146063030048264642434307615897830525295730199608174101846324562850957841970972234203203464997090007024992472022651216011277924298532623255958954057431289870859668139968045216312792392117328803129542732765720463053000312294455076798745516494196110022255338716098421489274300113557570897026400829707197593499183789572521483621539633966901540433378817773619413984781862008427934943930057924570170854423371028523739177683332097574188949352293274860610843424070575005639557754892519736495743335721245138494405420974905490464050558536070734457974207575383616998306151485215245007831058740926588631389633256215049829638869087012375303789706408524853574751363474093529953521457816080430384209425263863355931519379378370700237021251033963837700315256391178561159368489483248769732677952161029080709055185067969876501258177870009560247298221466933815171047636010675779903385123025638442834408141352995346919925125874509677854461550569629102685278256925512134689794606846305616241746946280969916157701818155176900049565014874594284599332167225306793678387274840205822791988327782593311092044833591716428357455957592299210302842324865776734305135426099945371113988038896203321874402014355198459096513966483252982424991727924299892900672132814706177558208900430495514603886552747597894140078073586006723763770549392586041305246463927877617978226272854464264190066693593812096376633904437273198518709771074519525348346239357195563568895941427045202077597926649553931044800689398620490789119994347566436803823545989538439472651362821338637989253331075192843489758929996841889631052995819150540154248169318105156106958365333066700041970831420527265662735848208831566515816430395017003137958856256023865511041129489786661157989092677012930508377378566131118566133082198076914398782526248372632995544892515450403286081805731778102124008124370116001795081756065974485119557587126814654120007466626970824348253475877743871597697453848888622027165538431495571447655645658612360422168550762815475449012499143176748887973317998963437776254807780097951737713054991778998111869598220664067217512398781104958819895980360825612587545627777295792803926821578585888188666254382804352206429480708729587769650611055289461631713409986963697115430491877025302030410026147710280914810228395626577889372531796299041052681249660257357334505867454237181240988819345343805864622689229949172300627669792652582657294811729219881752372443999746633179002260773294399831190576327099963619478557370206779000591544451445632864269035606165672745957992923204237626120585968170151429208939930388348393209098431586147035271481677565584915394580947961384931961161617826831894211449470390906280343638779856585519648301523080500649935059539255855877650680444314999172717991522017138624075504054029145895082810405710268062895833133515188400055536786760905963836488937364972547673951586814669487589715300743800683728519959810524688661827288979746585539454803458161808892163996554247285408332202349838739593799506835338910000719728784645609137722707761515627058627247517856031775550931561401259178548178235816593845270030328745402748427298698047872116999049716997844361626502448490657043183512676504258302099042340797735594182503054271135394067404425601293731649201190816185454898104106209741137192853116328587036915764857468569975868088411426516382141886137794598506067072008822566736711832917621645398505911277936862164942685639870701075716185588785860546652153299392106574925922071933438889208906759154151568544839964780469143604132568043539748183811388723460434097686660371258772503603885355182999380800898334176519215471347532890313791379791668796379127432286884540913918625709329285951840945767764513607270542190396705047182193099413376375084199606410387402320056340822303839661867871456989941200983634572299967259767988692560358472947481606300172741206470686036171194482367876745758353096255988686124376174985650284893241939937739347334180375680671233486450812185499487852147579100544386606346802184564912751704568343448344505357930990354932039430290737858779657868470952182949120432345428309872554132257324186840903205173412479262749022430369613608806959033747773139779899452873723527006748360433273808032420978080234484050441724359534454114645295581701441260817858743102443700312020103009426241347251468096970594253647611353657796359673595205729161561770162085649903440125562187060215051700981057693956473535302971682997204516030967237614329860574329798360606965305655012605778527528068343804571863517089296677208992669903053582448329670761178683808534283020620120919421966961448161996724912364620698397915595596662738069529258339983024786955778497941748086808082827884635810293056521502797754597380531195822828109875042927029028098584174790222036324109251903047971115569477229214878553397192217460954995380664393709822034213217592149060537950019668291903428286583010432260548492540747039811602170661236290844910238745203204927893653758298038699281935177994348060014256364608570586343572379823443370613072899568834563349918909846526935661179950653931256350915386164420125337040414001439695121470283381133808465163181382520333033020491294190529032129384559782337601351650910609249594529625779466513754012648466947454799924659040352754363211586457523306190842096932972260889013719188739062614647808267837657161435887168571820684846246795690871140472788298467082063302929398855960408176831583555408455390757044428686477580446961670107369798031235633755409851709249000588307207306549590177141062709216287460363832359581848212070475689929794208584697075119936669608917484015552727606153873166692083578162044747132202458747266776058024587697128199768954072146062277974445734322713507639846555367145041004408929649436944060802852690193221021633402672069845601931213330433327515624298857119832880242551384818460642370141393726469239572873799619718480325954432792280583636882491941760285632876583586377455601960670046397118703286034695354781795480764933947149142314602215206257276217790861493760609310450916770591152093337773504144949086195030998456889002081241884416711190865630295159067117501654255412660654158599647662379858744199362802609722701376072097423699965875954893413357762940859663894449510021642772954618528661658270934465778078829605473489086254376330267043598261594859802564888684527590234686315110878968046468326100204377647379062233852285340404149839072382019906530691698015682089802463496646705130927593627035460774984326695165995645758685142141355662742995593834227714259374457923735370325945622012705179962467899935323304412362256172135545052284567371335200870200096064329530180224114588808317257800524844832657095231693255010643363311920777053029076159131629854616656184133176832482513097721233415704222880528629635942779074803918079425003046567767502407589693136045037931126654637205576397512006578554594132125507764115204086468679277945730094962959146377369922787136152025215634197102985648831340357832990801461177389171438665925534459855402565688882020646391819668389900731527484762834995201728110311305558979970830309175976623563897034236321567834158611450031957809746306899062662067120044896907164162118857855178835418507229622334766229115236086706311167938629404550346449492813242803320854970893186781436023146120856168759687092884401157499161906531053570917505532111719604731895528851546188875162874587662106611055302453038115952398769948667523040789458312510817064328845236266303159271703133143861550603347205783073826130281290201688746827732447520310647074579328479080744279996080864040895739911831924303192301207647751504053366979291701096316546501637331715214103093682581707131505126503056691721442744222068086844604040059080849454985853882908176956300220267853954867957545296540622150264230046984873874427702997394679432970862218693834837848134086677581133484218637651344460382362108349888816119410133709425496037970964564924052200932354798835878147809006953644002258281325633165211524612867594953785170533424272910582416868370440226792536371190605756286883704216985429158733115465850136272789348693467690293392375766322493746263632789519684932652422916703812249430384797303935970449641453073501056192099969021498057729092233546036170296080617155795941776382612177021949318881834790706344679256923326274353858382789318245015730274462954380239949014789835327044025956215875203274440439197537038301946005355103029413496823271117518702509048216375240596195059475087281892937648222804218268437745528453520828615362651380128535840160697174265066573627515299624281217043622246653600085833676179638557457568525671383266074114256485950572348583595699368341475957785057726207985356976115905228033023092918393914006152458076003732451018702516181537598034441283948512025036074815532288768644217914887724043598506621597117000820210893891099527960194164954042720759456327366098992144971280390533992002795183674458710272404410470292557177441935655209714126577132293320679882773874462845467615574277331998785393935665022378656177226520148574698393619568835576712171598162333531650746000842748792390798340391579576861198396709018328899514658023194156804915664278883604774700588946846828622356045658455265626370033879402455180522931401326977325069167508827938482721627138192198142448175948038271335083877608480505402196614133233086205939136091266977166400374171677958652678790071773755236743529908826996619734266518804538588573105530731696722239838284877832780782944422601117027413101320549897971634781987262204061132928388412262207873663831619200899939300991062014935946807737209363040541462413311311244308121627924395888296066521270141708277013376311810784708376650548321233255802872181387075409743904000607650232075981205267267221490577950134457049996288933678164935693096133073813993621595102203566327435164535167668766508476235792335406753580448448846411044570137324431154549281378091351083559948628212281034683985889493382411376025184167304458674864036801451222098149583807429143832338751262373947837884751146481883201880218815247376582344984041627240104360372696095655947916490908361805158833037445922595317548578716774126795996827986094948688291894320627343832150527661510394886336139811837236763671588444650873446065410091965734769553465708620844190636971935483849105562791781815683279651053439962326342671331288116530127253654269185346524241395065513963659818576540489279132711054880987662113794404811166150744636767104979784048695778527056126302743677705393218795917003553546085202944170875997318887390757145391724569973196927883116472047938202107508155653593438874031533093789220343133747246715103254646268101255862148977975263726126907760382722622044761289565379500714925392305703445032729846127251380067744155373821039498253759553893866036492396058336785332157241134652450915195116540336800726328577316330502863353792076666921951178677804419487626637995800025005786982182564554112979178482062837959355382228279927668575938529356125986126272700112214954980079495453909337215630014137328548006607049614382220561119147090875498587602173914852431391055121515947955343114413624762753739648480675048041155302372656722653871874290652756925874543282957739863768253829315414174381048732693701081827647029382060685062906964642145135534446884006585409531766819297723220633613739361325729210481711109026398059525060409509874597844509946225861278960505286640197834399499757869177501574863753631375133275709656265959701819396509693328630819604805035480300247502582225263433338091205369732468912437894181150051616884413470851868582714619771610685467817426133495578354861120142059627490485866401515778883235952364022689626215788738764606698084874520315494259611469633694690341868676899088685264220299369970905811115417916731169246821575722744558528766883052371998371694933854724790813827663227064183523111823345333159875575176730573703565723474400689558198077385053593517802902400849873029381431233566901022180232151548067946919209250222936826637064620480099441260424868703370673809950800424457902831170591097133255132824249905638976985834694262202328688704281325071339433113529350405261378182715581115844617688035648865057407589834629362121716883388452341985873843631675762494144109440268464253347621573222285945885149001511125456521559982671395228783917432029962542488129698050096033264305157063064001825366225500440431540205694679917960635956320882090097762953260303405204703238219315797289204138068333691130203948292164377936658158073793714297157628373120701841933439509115332593913589443302026378529268673670526901615248395290445935177004094348021596109420973145997223456700658117404964178684008944666239797694794800169679507726245022275081294752925246788059974710620352359257215123488063600087057054567451141987116121007173195397992425917722034052904574219240403857701095888134530730987525696111386605405489759243474857871047702328446267440352047573000825418334891753063874524388366644744882883512987756472073235460684897676231350904980199485710584387997141744883485647713583036223226168914983950932768131615637219372979775993927563607608844965117745554573666863313780960477852985197570607717421686873448422244188951433091225778684039071153219803939764938132387234777605093286923060439267956476416519937973016481121128661141869110837421684287466355002341313673704750988952473581852104872929196396745348202755038355680021918599270190749343666715374996136951340541253605172031178322891207228301775714174441655472272937806162922836474629731735347485028003732878702984796993015169877607840477925031444859685576990708901159246985276936431645901745838628837311556561080912037342913589170137467296479565301001255999295036258195587454880281867912130365495071710805337268374694435105306924865258827111878177007132955780573438434519398722105059658717648015766450250493653414918572558092857489443266296398442739061669357275716446467043953027015244132728323753823183903314523147486910441827135276779524309563127565462201366429665422596821989373573564126872813289674184495881973263022182547739354387470805305124675464578411869555961755090333534469880063292372895351973814891592844476587261442441987249685577122709048370434470714504130937969474645198590961847833998331178857824450642239208199038576095022353765542841633501534380523093088273780826637109498324547310948687116296042869169320657973884062652998688277879674302877190147492991552577972769404408744962439562895054068215680285965170867674105984405670513897054288074688899218982704019013163689729607776869015113624160796780559367432516245903454486593932699944146677133360449542074551124047848474862756518370029380163629588241375440215837531822626060648699462211378702131875610267206796808560141571652071507415437033912962512937406916682329455034630756652166679702774864322809665998883198339039909068448485362610454977940081313100832483083429732097943204552704144009116425577976826531034926230288521584641939880966877446731190225427161354592970304956737661482648180419346386784652734189436422220773993167742771076743963026015878713093178555904161343731500741694519623396854430918184850342889053750165362793191501532499738151964031992334432241424046403946354437660635753857645296224343056065514613105234165971020397675532323747054394367212686224927651243284590559099271550755384561389322255255549827238359492571139420013162002528166519619046906364403738927434280276249196107349266356104183626929175144491970209681832680847771301531810774661911687475068389628885865229200714127958616561771408234936460350386868174806276977985701889399238830095639061643927501000267190129467953121235756875252698205242448622058454637021310977724326685052160153431360041919290290416205591824399101536244220297342552257414085465507103574723220062345592765870361171573762649354667439371829898738891913248887934839561424862653303967506227107438204563142858878407619883447285942947312975805742974134140892995203596855569893541099581586864840336805075072102141468385495992427305503024787860870370588615271919483685928633157926460199526616604159841431646360376328531044407941843421009709269821053284577109069736411337822860910896176081398372722468945669304838606886445867915564385170040640914521102729397070474601121516737105397860457562234552758828491265282379077178386767403251548899312000014797150248874212286280239668152449067819406312361737621630551535201166711844874046473450911448197227406061878769774051679843926849981122404492836700019576152057750595888889636629767209732705338160008294116101472972646963138142701579975990385708288244308103575707650990277333644599925724312855603065724446785756178817286956698190490958689998210633428749873866794044017645136417258009174743788096854726067503520067674101467057596599854215017518027642391089142256678778287490915063857002912712395095139139795010994776783995791577177784810796423330525312649318124545331760501009346302439247542223364568418596374662921859417009244670374973380751557118976345998789705399676401489325370498325251333867796698102389277007753938465533036122878615941447249102696476863665896948267923201373409024873825902387821330366240464415941509622301129448846084139805429455553304818522335414819715304567829091403927227790842915041554233830456456724038877704307672315575793343305247397321480771478718864911165959741365489530288570353017328931814312670310386202760530971019001398630401904293061451184174188716557077987914675243924692290522099221182862294456132540957431157698626600997931753695040131686494737898578848658853283983019733209636129370902964733153491497457676254917656743992858919910080083585165865958773542588276903621261922542566436185728104559254429417015285227967748942160669829963484802250125145474444392089203585427244793839202954442174747794079107147414831549034227122060087265876721762026557627382295219893287986136499276188214611235943603897029103782576485184032864650003061649068713858120291768257071020452114109363388192550856832825445785968347514787735738480153778257382962696588595049615167066045757551208156505885875434819701158549552986904377742599495970892942890028961492341947650366703321170139933594070693138524016406697491236910990076963805038792413255178814753639494181649901723976380369610702316695970436681433073930938179327791305935808953715448565237430659423900419578793548079931660015962698213628722369196034338918137834343941599599303520301190242525382731466031071505730172142749250156112527999722796309755065502640482247902228224595346811184071542515759795321575814066576762978458718078108054888849796660626501480651243374317035348921665982448921406002423587023635095974100167030260569583054179201780666061452489955001501945326153200000425186049959368338238298378965936657369154423208831863225572347069382137258395574071173999902436383059843329416859470769465397972753364825851951341225992209244958776885470980521631510226345900952352632257388554328372874300240248360747471873575382108317459409071728424295365854235698999616513868695684156440106776829523246995227460502730636677682873207790238018720877785284125259128970080916485166317189202153718854102376261267418712272237474522588150516236882285143711168100795125788663852172921297579554123940120738862350281014199273314529739585266424741034942660184794570456705008879425465445426523590132955674977882071448537715819208400147073945782285456199336675296846397013008460757911724823673806452246725054180982802353511018789791338539752798970545190952034534614730383815226746783006027556249904397611478938979888869772774671512408772921238583554532556378434692117341376069117180576220656551664768690036606938647343973238529405040552648454188005445350470808245429727797380452764823602046674630063075509849168198609754789490847318597704781345559725222820206119175759166714354292257583860041613464979956707071923033522937917221343369812350741752179919031252302485675524100819230016678456313076566484556321253534728679635013265217654825301670771501226274179827056912492860817732746837097975117642026208463790335269807575585915502353079186261642375564590366909269742531639934358711591757107550984853222818548431041090888976435612584114951729309251594052378634351913472292235927867367175245288175778123559230903176718299038554958048022373538486542021664115139415580917357443950095915463820727989938422003093336037333165092829829627098586771212580647638904210998406320271244568821299429763880314267471277885982598005486241066591000954791473953532165996165515653070418683731610446171606644909056088607345239526235377219354280648483330317794904814563182542106097070922698310197751973762970165095536799621446580165620583967882167555577505372426970091649087673775178251039278187551050023209702142200322856705467038773905618499998690833988516996465276254014864800146085596969477722168004324387988485471524928136379992880475132794513252126532521050042275779060052478311785545474774872994777304543009528287225551723271395088614059769897788844311178247220180088636518348809053765181764383739489929870369194607688581518732190436279952611239253177777072581940859806233071942376691186457082805097027949515394725585883500191373593107266431841242622318636087541744703102698627414618373955112218798122281794623721505141707251650939385536028896988295452357565428139290027617179842774277176227499528667120942522629057335069373122547685202814156705786960534357920554415747545509830865515747973040838451152976432495236807507927775330832617614841989982299244134224019152289418151210592696589048074569340545985031114525897055667462371513007649218667459151407150323347814620349442997954272248454679039826780648705778849549937594121239816865309903605037269081730654036765819058792218410652085963124088286298551797693110012381898720780131623484761870015785605647815044285158470917253964962663246695932673643519738553128008625009370229995846351403173964620893424543860584277289983350943224286927027106176771591168421428688452153418830960407447565875586337307073053355985100188901901251043355470568593909183213936553371316943986798280931033525077895494772491156416760456434561121955593389272416890034959700136283772705461328036479561436482551691163039390754287507958713704951064899566108429640978571911970580841033594559566620444680859863288721855160906778507210415465281965885174089958775160440417298349276306772246440589360408796854939221514928877771192182413150322550713586465082396638574076998019383963439321711280789603671081451527417960188923149255391596716986339647712029375488923370569066199421012067054269418342363407616547445357803112570620177050961125353460674578160559642213089525044798503131286875958691639074311536617911357075241269985389946165907833636856488578274295768023932643122041150675270159043287162196610227088703505601431683358837791987360723212591870001633052192452371453462514161168928383128198839677817115297583273715763983785764821126762318075039762281974329190799534828102180159166854652231503071853560870781637597363588072074885792743906140604891921988590092314243627601364784757047423315943168305942951861068596827357594131861745933672024141252059584520035450610371385739338507154876706270519491419277216104134226039573980147726090637342979847402216330790788053043316462986524990649773640158117340512648553835257992668668219964525137327686525095644774344725469028568886228902550410156302550891944048238797926692501084510554387363356432027779985598776255112049738093005763936974464932815545616578119119504959229189957089344925248488567620254892940796006193656349202998829540038088849162998482766853390616511264384449113552476178783501696734282580100728239168176159022337154320687845934718356513855070015270710460997267948689517549050367242746255021982157133316660175399795156122670685172677337543909247344160737303935214465774767276815885625812217062249738863908820185671490664370654943607765162551263814804022951128962649179455690334860467407659742470890742360486963573486460476087066379122454252182430802720219363873956808555871899061573484337980245028588575881785456119471533311547052671458050196872290617335988967347907329193846131046662989933504303063852275195973210030355220218995623775585389534045357166367424616633630775253350891773911527649906516788439429548511372340347930698868316574943774588280644565459336737888227604507264544321070481695327881854018014742816875853255399826413089640045586892663506210372605113046431760340017400623327417941972455987886295677483054139710378972209233972175037667792684012706551409499674690373752869420828420462132735771161290377866770627132260320136806420009856212229093680403771536044271865543674057934108347770716290339201248357430147019616312789815395358087163779402014735146875815114600925259836364686354229838103757900857515719869420485507854826478282947337494620884925028704242708490186575723765026956356044828394912456395259647249735564440582890518719101793327655638040660148336206061956233678183060385861776833804549900410745591223456796872750577495110833123106424330736351923771400480822921393172778325701989328083637998128636874594329071250077632433392755947914240177890400186502618759345131592468516302954597135643426698010587612159332693442248080939190810636392747250537230562157678611131150336422605039329615641627407991337887930937054171510200846674024341489447875133680980307267126154932540405975083893443603753188021083338523863776194163346732330443738787518207050384033793843666160264440715956300868378160695676545124903077507778592549847303747541409381737962204148000390689955255953093795845359824397690073739839440608689185587002002366691856038242521194292664569166384038124294223410552671495563400182753549156170530070358675071873101163799619773884859015587828251352895994998028727876904336597041567403095531412517555560080985743862637738758390957451244636923515615658699640313261104705218397680238990905272988185874114614199780010140193546968126184831818844511597081197336669617702244526055177432322689226862558325128676607966588076161565346251794620967529144831019980773506292931232689524738972533251000555909839298854844595779927768142933189737351224838576740952270329517082612750282952436057506457738270338610543186938818776498904267225542227619131272502378732907992563831429612216361174347421432000953564541698721693562182790847757515208378825739719828208252277900614489443576140190966410806802419098786568536325693267889889111158909726038260160253533591746365226397938064922053925201301241075658741878115435080050494429169147267660248503173218194624891839155436361237303975105506088478197880389343030630310086049216859605736586164966282444364161239149670935314391066089813311685402707016083237310631637454966905710773807208728044953028883410850196147331906039322982109978889414059750043393088599421885793280175273158289832307759636156870236144425558529605735668716341026496781786948903997429871764303777634666482709419745409182680737099719066627060850761295053662814143253641496336281447400852352040466460006222190859995577558788728017546154006322971635396255062120958608557029827835753779596584055271002278767407017331250043263804235105609146417906806952114861207585371782703467758261162232232427572835352081394159145171089692574558206626524256614825779198648412652421549546807254864929457758775632993827639714717609280264348622826197435902050031197083437966821393695783227579686043723581405535582465508565547070518026502877709673882168716811876981657478105364685485540129904426883121089271748565116576595097537919536918807565227545705890419425911197566013717818308417749782480336576353137368998154290115251731927676947449818462810223038486736053904899045821246755354237692524955879659588547014336054737497120323214457796910306872674988992835043713531810648504470454876587036171568781081435660861476324402712930453139581003900978011764287537754580928619951072471398657100523155271761976241117208048155817900102870638176254482153048792570143310241324134532103336491116242832775734115065869054157110531343210754185345154229074118146206679696214266474789917215050889382217445894381152401880360449971693354930120238570392168793810027460286275183390109715619209882256442656903473897065757750233834122521176636504736117453643040632181359742790955855915621873812136730836062920659644104054388692190911440962232850211273791801621947274864554288095693223683155132529652257297851710494192774390603628619550919596399784758674962458257793445178941527789856342317640191717312444470281265848928869957345647434794611886685769852549662470897703863108487787415569450987983108660978758733979441201319974046048644140830736774601369162721429790888743006404261901814635224439985853990785185720844676176872634699932376473326755084264838667049031985518477522159432619813098284916453070445269848504184230399687314165106294269390216528030902194731643107506058882359537636015820926249648562751641373383530498280333590398798101201230690818125795348164526939787313129251022703115593196412102258941841146948074424845584862058209186159649630173028131194896650955697970357101046116380949148163272318444205576499584549871622332379688875949111622528041874510861826259834613804007811445786771850795821646604607176066517845458035019944076403297295146364564367601739628263409338589620800763808057693183857462980338973976734586199664176433402826013779715285076080190505221922026076579078790246230012756197153414269166773112520254309275722477604218945135821003543207597131681488249819441405414933687366036057994005135788731331127659922085336529249146018514657519065648663901711824817425950245332388403974000805396031838630081493106888536398436042547979919844990554782427597855323570791744116809942374002012679451580846820560613187869980368507055303981574625097840880618312592060712232953524419819756200222703022129722704861867925802846024424606493964296736659846615732411204305579968201608269703016568123265169400662939088948131486260942922889517110721380366375459251248327663753485554127073457982852922797577924916641585112217794090179350172441801439678548427855812673150543769095474761285473556112683024613421203640432990957488980004663015978557602537435344142430313826458279356511092476316204189242625486709595084312753901694298860119420466014084258591284717059321275616966032613465843332604460366468039508802179295059134538916921109935980836792696436150095266514294076353583711282939839897438632886761560705888399084423438666289190796433336714248704686957171742766031235607196158981014733045460532050648603756319390496013652381506362183728811333254613092117069342569383538515027164910964141546451313759676774086550655134353529480101271071724402575394479014250702140175889219738472340939527833960810784200475639399958802267792695992478493211487068617826303955757954004273555409231453675606468729038960753955062830435084696603765526653598877958292146716433043866483070735859568278928069660132034725664669289642410043768773689313220933973142009676919069288046100980408460733687514518771616388102067164015401406259611479597972727284725135782112237274576144332033273673577729922706963973775212940211929592357329253719500391076348018744697008286254698387709672474075381543953215306920876426837502235420305187336073299085752949310693596093275765470511947479532563641226811211692310769286173873076154076438520740466501774166714044217853166968864044089495413562084434889556762147404379232047754986701461806677411828204556698111436143373012283748985143705744609597645803925828006246011184986939127692750330034317026315579248235265619765387601570295326698765448638705055420631589726058573971032751151875565968041138437877508089786275654760133608514741876329758455383838772741382706070955779851863779025413035973266891968836644651906567589134130693268603287682229173845514868029382236264787217475538291491835951476588282916739843159057048624505824209258013902380312980223551524712560664613041500174719837750912720063885289964846579202585009466509871095900645446479865988595431930504311387789625175901455708719864284740942453804462811441143872798802990053483982378229377811337328693290274084327850113156390738866923297485300108170801436739273018036689892565279604238263262516319160179366794003238287225289158058705192441591823798498144696365249558597079137963198149592428941757402667182303224736768853026058137407073167789133655108491469762528886406808953752468124214473726459331300008155850997609492433592687570986859894260595930099084410080853668675613151661241896489312235299472424449291998320703860771153983300071223372675272601189858073628350143275184986213033190208410001682706559632537666821893956313626898686722652435130448122454732903314497018574096417096163370853285016208412296422829813050462422032102805225401491241554429372962937255975590411839632083461208943630368391953603580446518410890244094947763768746795988728847103959092632687125201725229788345831630802660127482576900264627121799327933365950553402493658889535429181783807204181224282096346809812135634859103725411685832025296351302466093472942058583831912689095420956920906186201705487213986983084845750188068284276824452119191120586470306690274198213559417846704654079971745011542444446130357193027344517748137204588389825128893393772919751909703684525232340349437409698177950199916268739209641647071266572734721969249180778262525789214746766332064926895204018866104094321445922720373615006824110717639724896830495663975220314393974061523841061992400811734390616950811313744399543064111132652603392245408661832672373581959781859831523500956649731971619914269293779478742845879310467501314838112522386249084259423128562076286035175914619519203245740434341493373310900525208966085979141702493388682216863906262110599250606345617303479070612159141106403990141381535616242620659429093409725757511060043688606818029564553160523897232280791483322098683646696046561502016334232789396840889319442157991534794304413686378336816252368700156538735842414907395280395256730259321376634169395721218821501238130998453757056304527072303537540496475673347817676242500599209048297128922976427650258463878329136583571585112447766189819624307279644712290637454473006031006150503927576320122794359184023125107426610378647044556448686530598726337091613490558868256463772897460200949399083876720185477158550933511893489088416866248251860447308855883620783501960239464903731285037482492342523678298751068400692012775151183133999315133302462167580231777592024105503559604507958891298164825110496903444440994064971539572246091465476702387170744876169988197049131971642653204476686425981407385289340387840382843755386520702127854354746751353361520054591555823598704836366339151662248444027969923226692058319857943806391784459297910277423124738007727543068902050293636285011517069196933021118301987450306790074053435426021066133802600269329746417862153112962856375030689846941837978992495221136718646190889617064276983900709342995816580069113006254009256939647194005610901927079971434027066040839562180627281137711630868403584888329679164899960899631216562389039652626993498157864481509538852494140857839701018379163716326165898909170171419203161559322352704923352785387940245166442460042450308027298153321728613618391097941939609019853582573423879574346051986624050197258791079466962686746964097350789158063177681383839095242133311840181308255124737346936120567223006527381858386356219873062622274461483604148296308407673178174171828824432382823906578165796864284464841449738441103247177593920192806857960076548201747514226923591706373697200234166753661256420507447994411434388935751109093573756244024514429121577407258539777789388547896552441433675142926913672038368200716869044690661565171019517091968925428743720837520344015032040910251061718475101580465844271901363687601797221291143178019867656062239623486220143903426853653094406535401775731500102040142598724711844533647350181527924265435530253432961713974607711171802959089166702608257624715142513892409703709297698946219672058530798223439593806530686356735796944750943812772064907346033800107672033722749873511068033557656743819899558179480730720889389100068572871699746425615117936344443026284685697083226500560033939155163648389318665301496542160692592598158811867581497238435232513437179820185145802047073566436575139890038562380552488224642332947948158379104737841545622908157406134475063515706552353827545415771536873123281483047225884333238067391245504431891378899891110911145935027142246491863859600609102364811434820265639507927616197515861990498046520825194659667676577816327586804575350823041811021877544562220025602956026910291371118750632828417489239356236237259121301182845097720464957853983713666140907278081383357074708071309721191630838758260679978557232791544250242274269117264986849158781410310328268443502955674095191561705017276357026382919237923726905174224952425104970995361372690103532561535152733270511485316822730803215543945034878635667740036346754675939463989723640676249989235955652582204288303641485570362141316004250091552504907400764278276521454236507696039473209426975755019789438835034683560954060354985640271879460831584097213742478684819615497331535279917575525929797784861790683400929897205624775994691408031622167129308119065393572601651076585749543497580443161259613402430999845560993731148424272686994581041840502254188462973712126954152269820594526280018512850704560237137220778445009021345966218932494644715085116411289001264475327492392278280538492371110787227845458741602954749084722122896929244396586386641689486263994211040514595305337661972182596211038589614212100137976380219224103238292952217986236177765738249036649150187064147338162695486833891120107751234035097643006090235613103088891954417245749483984380303503448317713802486865107937244086882149190630548154124069299923002889942874697173128019103660412565386243759364338881005519568772498736875284160829609849707028729598850097308568744182954857876813329511016653136529693064272687038917950946120562007858276412230064131574423809421768097989385092696603962139690913177001300773705605525917406351945406396656280220887761712892783965948562481241973743213742488048561006031434962269787273481818055891425259063697022678686575554664508794324687843819382447331014596431602951534426074866033114282852298327649937579445756225454850366210771014486728745542357270697383626696465955206101450031495755998200035129527383484889192850096619471604324974725262225900607484965274363560166266457832549390495314193921891047156844289419998479130466265475932537244326774856912087421568196638417488136994419654621506336786180760522521586404782683665342326449047252096135835140427385387601053919474221742339934196618565841928276388059582108128767012088768323380782351763058163798429756609531089246586988923803316500288278730780846430581314242636618231415601643606593839322632627517125036470649486484232008236293892522596266542945122713560555916953801564016989040673383401936006575043224168486649416545065293445376849564422461011833957157265561596198978172699923350912672309959587867858018434844615888766327137762319333610988879219965695163746130927495119243847100438256892316898845604881909379961444454044107615148195255974917382093965946666802749457338213436734127469033817847469383058048835559294882294023554960632920570977225386403446344826756454901653734791951393965083421118720143083324570022461719450013755956469854874378996271464467175300504803128081041237646282767203451464438929128393009634432922255829953515773690875641904329892998113528519626485828653155095603488298412021243887612912814082434908001716652876045178739083363611508019160710767889412633090020961005831825571692777959247244328564989428366484522631026338953984334820373227112015646580742346854403934718944557399294373626462414365644240961656069894520077836905399159564741908654123365634600766590709107584278676242156778373264113805891060121660390427356294948594512358862611756272940133667857196298623232906103787384336646709278150262860647969524852527421839325272102285427975691140024677363227942554107636647269611246117243851774912392700951922917647810046554494642461205230892343448415301078598497836751127805317781907767151696735334708278723583632193330084803433505060411473652505328874273063691204230784125152768918104346367366268028118333122523696134374551079843727773623804573196027815959696773715218348240782500784413549759774948275132261828090212285524350427621740489400877558833320026820028925761498196811213176881444856567162545349173395508921251051613057306748235362987297798714035072819003396436563156070012964561245795487001829839344938151778102912799094223951439928432589997578478681169936382592225685254818597466823004942549809186315709414400180315934976319090671974970970461469951162766248957438899148408842739089543371402847629504202200473300094548946215837309534196573993805013578579363696340005363402630612256179604352859255145505240078014182423169103605174890398234059454033313501999315929413078505750237259334936700259792713819269369367399691581592683700627027512809587003249845353266176692271449484586349660111216891682938156239203846959288446993686812422712192044772780494174052937901688622256240981710994000596319008508287954031098101579420516023730539283146163046299334036970831031124762822647391680210875203370690841088063541360345501657698433283630182174551214160809360379449089062997170923004282122008469678221591326254241277276854160642044377697475203439254903188296630138885510259521836370238494004528648963273229811818232668514465380255016712776555625643399724098495611158520353452553550986948797659479433697660636124556549007587450781623994843954619048755503554053046370275688681849479267040622999666648931807339455935886491049337537514097920021709943981118901522033896445382554231668701569287909772812740160567420312645732244479674911600440042380379126740079649813716320469891779734258045284173049004830500182809347460727619638279031219130994252517570201302578364787289522036209961986365795294576376274395527760723225556125187601487094756561782013562000707667951044071879653663485149738894522603156326335670827255308714452775934593989978929838841772641362917133570588816920644911120119447454354589124732366256755592040114179403716234232041849634122365042346182889367333581890905658767153629218573555671433889051710730719762811347543369430681129071041426116479598734679569516866867259000324686510415892204568307290939084635658459002418539058307861533090845110350727565042866708108071598634758281081554549593003554915060875832368739418792699090865286297480655433562815597741135839851555884417443236016468859510185299869641515730992877337052730774732299355572787417544913317359688643316361058470944748144625644702151694949548363583911432245807174446148884326187823309617254025769602483802348592471534669821294991113367476698376527144653150745487578581054292886116629931427507298800447156444169159797142056405588986058622794494305264047266722501994179603194249773329595063657538483039954918453603808339989633653205031537858497770601489680526488334780791915437464091762796427105950767513510405132319658181944725583405326562733482148721603639894779080417671953329752339865209214508337661305337801704597548669794465493230539489511680285407083059213268533739075148389960664028792589270173261697976907234815183176825271945788573485011347315364227973119262900339469230137853292402397619169346769262987915332004534427389221142833560301536147430528244361255458689931981656598355004561251779081710886811636536684505794774597496509677940916258641585135874298936672197107886481771974882448780389701077305133279424382179396707084649978689568952850556092940651789990593771606685255812799615090197284127809312944081136655823500221729734604862896755730037606147347925435279525297861891436288423595172202918439647734302859246495456405587606200209499082570361315873084029957215816367418117615494914908306357630305029033859963684686421967796047634985059460492994628099547661364101221263072088259434691803045410546048120487905441014601371612152933305073065676698540639843040015224887099776587729574812594403429059708831566615903805608634377756939561948664216943660163547358964558494281351676259440079895653750378988248167325359819512457375059775286691772777156981554905782336465376700940876443540972816909207303109460180612943161885494147676409423913159193496939241911810881976818990033696442513523166477843198043591419404606884499501357171575271114141962518254085537823354221092164749638567623191492920920698806277043106478761451233844078776236647136318077818155124344984414482381674687398825048743688293355993090480841825984901313463744267082175879880330671795435302477003631657705988567338666612273405695785352554065463774318280002673652127827162589658240046572858997555813166011895793812494333480974432332856058495369612582258102597410438345612805680041880430684002142604238542329146931065439631041411115500823253097571655885567212832985978015465790132582825023926282299686809822144100161420914633688837305661588834435352049913274295304176732935904162212940722284265194349430664671337190357383727684261272026430702457167044023209740694756953074247586312090333862754430850340202137382530068481273876971150281010758011433899556965454561581376642525550579924340717414997691443492456029980703898420822727177255967767787459392607498535887669323239331233379565373642554774886663610566940418765362913079684669396096364981469208186186254937662750419294059833473279565470845060637126911174376616674977130404418790540449811994954556394313617827885407702348309761738613851943515510812314885687487453346439747029026275370106785331360792909433377877202771989919764926701159266281874176916452786568977453255177992669416183873636815292996336092855800077613714835886554687646889309912314910279824683480869426213181793333882464683589787560243174462994708014982944543599638648610883975634095055360379853764543713706533491333663075438711460735964698779349297678442952905523479800229927717428903629416290608305149867440115909441458972349056794478089775938531635286647149649835394539216119540785412026692154435639472661870697536277894173994669927831685218078997720740521579313187116717755657109260007817460136160229411456672990139837151598090821363746352663315029088767721883231104711016998480670370122139336710509103804606107502016951141763206221310744929728472801885786733731141640553260414018618392340879162680101177487693843044180393859379266875450614070893741344653122356746167547606547149374746343646778439084826192701367967998696644653521484216957759025020270359718174135822335624875186520256995818164824155585299889047363538115939473974358164136478903709752445492162895923490022316205239719572646643126094557950147815601414931426698095279421649002255456143202793558006643304539768667914236439185149376496633804258410016376320368897480873834433950335013440270464682492532793372096782655389335034505949817460688562544863011477688531716832261694032844479445632712131786805584111790929824697128396183961677135511384924217929236289206044705204653061866380360443455312720873110337383297490086129099175294871835628019984018432101640096908972096968350603290697039081568169878758403199347155708997227012076252220465571522618386970518327273101019217041392041445504967381151016384522546334680460999184035919340666529460872692401898576725847498269206400618560755452452401646979705921845770920585959917254536044594591729850274174736518748444384532333001241776294949743496294798519036327940694994252199147470009118749212563118201992882848618309058387562861986505485489902962400498085894768132042363145688674357760461498408336343182014147042922892279308935573781268663292830402133524146513269245113240092000182888233722926215249771185889985001663129710052740397707868661298146719402406628473728978859471606365484816435186818204611672862246832025095623091040454058194156338488801058167213445736114173212101057192193243199955134054960062565192290230798031291815076330508221964823945795116998646116284849211661355362410856611346684256437733785566325452449360676154071996209278369931598139150481393081706629278763021313980951048209093241799563299740296032609700542591351229610993611385515953295089716649465243722920828414065389761459288139674291097966366509651616939082409974346105464210201597007463043855847245806260489263162352317372647937638648698600027437629312816149523876175887334260796221830889929847578092922618855973291417039463618129933707406902318411906540265872401370993591231917307603391075267660053259601212434851942887268610368962905119140450670369024132599013728961945724044346686467774055953966587466351299750465209484693876395189515610473367569790557487441133008068543796183493991213609055465887056295692013708541982510562640943333283357480145195207846655983733130238577073791841235593936877695761878525556511037484719394403996528101974560706646238622322696332453161603564454729686476277464376115490752624259057870929100189099989140441579464995260959365338581453190537877657397386403462597821765696095958661587436831857176085153903414628537767420532113494259151259696559369955759813856452151017986106517057670320930467818994232831921655772730435851330064592576701698505823580473306183170821615485078453387897896220743616049429320713781838720678007804967752537405191792495626910921161538129878530777510035895031619101919854915899214841025135169310373168490556726629179637605820345793036865582004603630309807818981427132149522359892608179258721597616231842694832344197891511121852085211463232612777362903054494411731156678167797535537524141591155013913784330082689253596959531053583106688742183093109076652636113877785506675630519097986240191337371922845559785414399555128863528869392744849984578123484496320926773948029710955475012392446621062985562658976755829234724312819626029108249001257501950865649966039410803469924760362373547768794086681592436482081974751197372740938463960785154130255152010525642669223320359381516883223288948617898329912254541908255711838093032675880310349153269636737967980014387307816783720622001374213182897180095865631020834065337362344633633797861514481981446618435269829664296027848811892187125887807167272177768013927824101649672493676699033233259344642232975460901322103849698316457417960457799112681628297537298257932589464984527193816449982322251686378210994612915234192818257208438963491347465717346955002102280302268748920845771484909350838312417631547121411600172731342931585159821374358614569358466990086209619432811003674428341335501017307885829818168213764091610127617888398191510605394016513581392026276068705837924427348935973799550588484793600603175774633549354767327638648957985411595042784876384055159550382007010188533432684776120323353945503022524834436808978392328017900095632660464457239402164634686310849780421675702102948576993830954183824078128261566459227521920521398082818713828427131731868910272205690004225942964857114079062843200848030123326423874367112923682503643168320974526723633548846478488915380528039325623513275532391672379461778054568296174259561619462977078810034533852617355751250210755584881343313255516406370677181725033955764204751659503359462099735095539215338059713706976740123526890069692724483336479348281182371984786468336563088739855247060215972247210690668447277406302129769762265929773838892123685222000596040333877960959416464381615274090873248678477297260989036937723850818340828891066131537532512978091697090281015504101230519891595259293633510202562015112387448958538943721837192714125771210552273002089944643929260143698000655816142807362943089530919342568353362250785758132671311608138993102210086797505445823728251471628435890114086718635008171739388560488770810476563661615700106022215128073973095296435332605516045622709694142820871263168317718839655618889719835484871087409504989789648629746312590980900116908232813441148509218527034017003606126214980271731822449733855459248931608087720941379193086145399448122887954760403120179472497930842995691530128291942659753271232233159075588875027470070156297725144857292686377501840844509239674596343438173190725868881815372105836862675091839433999505673390046685331107665422360774857466412665417401581563864488917538829614704507775294164341866933070985298365007975920174973160930036875840646323117286835711176927398761693228577862633678003570971472729733395144994163899302362822122855553792737030276357201099242784347031684853291708022702629596437780449949558562668495189043944461559329569146167308140144285514509682604840527634165263616962166329011864703668719110207554555125300236154269908011474050243929545541894735872828931332031036914220826844557632490874230185061503803903258959828132146913841807298093995319694498757713108962518365809507082170549614123897067158658772211160068171718002407166499306918743816437847977397150570544382667827125194290048267011157995324798283724199264556806332465230352332504302404116013102432523888402194274876705997621058739371605392210646749226709783864409616683434220279512012421907620298682106025531316670516053982937825421791046809680848075276197880011922496308739361563363485113555111640888457040163300815336334710064792174779569107733254969297190584317067257444595536687697350282380513331643099593127903811565070260461395922866544788216062654582815989452727155904595885220555362584017597227951842842667000908640070160869939379958491352215091649953925565402627097002154928795413012434504256830704965322960809036932597219145724234102694222492439513281939044064031488834369173755350211921215687113439945790679665871610097504096385839925347020093362483061790577435429318135561707186186319333339703567371351708076517013825301822811286734064440183762288853046313164594669367264866185132662215455781673314269545445970039562003033599610840431465581411559776026711414828742000048227899913822301215399059573324936993151672888457632312868444443943382899323961061687820446893171245639741273794503793062980845428982950514534071449952390239310504136009519670215770607187137622703338540662913636810636215575979262427914676342329496249547040913361606382030406707803656106233133937503360274731329336340009254458549136061215900258737372878820700133891519517622173291738905842101457654937416498656882597233928529276506856662736258024499786484270576179713705894832213903814513278185181370186719919364778200957007698141039715715770863834147785609401234127594055778403553327846047643779820774470967928039018774985265671048873850645216782802758768222849435500182912705812333572034324229401596287303405791919603233852528519477891260615000733261696395406527307394519516831592366091966919981458728183763112964206964360858217649001098475904863114023454410372530306241113171843690215226872975114239864149555180761194019931117539570566289758160540156934965795907226572955421064721434425619044232255046839280436943866623336558452431878936297382008002735843380382805248940288965736522577149732785576713460755931313332291930615148283138292371208367358154026603116287620078648921204046219257965264392012274421913395151164754070434623509039101788690056036730207407247089736861130024769917328131642294736495307189024592799081176100816578327708099258637763938908008898146516279223930409908346267760503899725918208899726082967310866104853429559169152995541571552138363577190976104910622424321620848524552417572359169183477810431244943448888101357066863966895944118604234723678236839057688345578211700619247984323357143553349215825362772111207404580718384142199237279110264899535584802682403255936870525338700812578082704949772267961735935708840743892891925383674692791132725162418337972622415339557023880752893780432400999712366859792743798901694324593503325044094757186707658135699138493322978183231085335536097451656651507820177148114681628469850253462117385809903217114217407222228514816507963640551296227350766788034222283274623404185229166727305059371528487109083898130325427643567619932099806321627169057754279553498933097578627636037719802652351650657849328240180516479276070166877142585830565246464961356321047319178390015674304803641247969616452698316220767416756788724677398950092919431521536783833675636670032690942595504772888282580100746045059353346933243190962037258977903134698390110605455688718109316276525833540384089881456619878093663618055888832142042222471838653743726967642080926649310648708472068111251764276009676350170006006579859296589486910376969682197023655974907084753981368274000801512617500394504081467319176983690063411660289520579769182482732498090634172798993402476028681980864878714540641785027431529865774912549353062335159165951510255591260582486950170048386674784593066909422860729397436254600387050310114440238439507057814111465162514513267177183185494732404974609611462991857509041872741556255233004061615694257765082207398031389410181672960206371911395886808123425751213251762059096731580070577929718184512093037094561174975578855556123566596157814040290275734014791362929393414993422973231017169191554812273464764445013487037560692060425330374805641424975182607259008257516314472681357899127462136302220834368481692912640508649418217733806650772134714330577454773579325468805553845950005178067988217224353226840591238732320607613727357065894676842567758493258103454543379084103465104451690477513962624057452782512183783402014932943243320988115031642018499444069455836928586183282915319313081760886253361242121750818727037604541517388635887564134656491201554071993107713039707149410118021738495835329139154157008151102292794911176634117213132483904708575937577260010981593477699129265971978496781392752438494932659186810638302611181413369905114409413777862343394558713706003030918050433404952222204914756156613413396177309907234867138650460293145670197482326355467380159597923212067599026032757401378796101170784072716116525901053591730106569689158601618477752703063760341956167852551757756110742751404850562206541582204785790909393365635079957022871148088554989942766965414448559683070075310594107713567841354391342778333565788674236987760217561083247817416211890398962622925760315193923989575841130264934706257045322676257792777964948870143705709596571336846895601559682609997726216132774951926782235566889601357230678006784259384353346107334135633096552945388237866359834930885054257584171097473255560424480218503657620794840793688532193073309601139399213045734079165040454482095541799043466126281389461165945966634925403426896255276623519217933916505193648939152251443812275487442280659103865026935218972807115317261499072284002519258728683199590131183094008944002560503513070028802532280040527653388555196056827752677584159021549301037365946286486692064026678302285631757093599826901049169290068712019827976870520508784208775062046756096216840479454457163442138459880878576329874273736630587919887301411581475328000574837259938849973594744809371661556722143355664862353986087376951949605554325382484122877540737738217814160508132842042600717684532280340398447978162030004648292284394517138553176485914807466766855574386667781931156134145290820879862178052018283573674548665357768256973825186466670739813122584465149720242195585800454285137851946880961422200434911883733936665173938991796060882236299604616240946887500334429149098624351532127248019528993929141434885298704903487456344164528129773673241163820878536003374513113936624525953824121896119165523867319270057768605089685920735599318249455078347097595631624624361871463688471873264370482119884885465490653488558056548113594056194378034456487867031844929281582164672336737952163857126344963034595037075928257249907621756273230379815241323351838225697764866236720281781375289968020295146611364959893206182200470140145049720293126169242216980353427655942570679170022598986708395809132352067374912176760746965056504535471195472820311472697067876079999625037636503555938293047920579308182153314202768906048597720380837413144206636287608523816117654862886942456059901432981187115689692890106375916411679472906156363763415227791350256444030324785021996449606164251785071271944847144547525464814472510402296522254421376453317899914064655802172291818240618127026956730360666806227303059756294611328917705812271445910461957551272313614483501444873900761540087830497734879660945113812041963078407066741143301453547635901576824373389689827495855577294195448492949401534162028769955656712713679456910153966595204338344748890292744778996471924608948304173832181269308278487711293135260482718977110270656015665846527015176563593855059856208292181791500696567782569350110572024358209203953721297391518582267846486150132920045841216202036328991979054595045420227753964547715503056690344211421614829384425771100776539918512599789860151000483291135569810504201393215422557017723714647617078919645812345756506333498799694400548903082736852607933586424823833193107542500342754390280276570447943175725451360753412155650920314707624836033550623177729548616548535597133319914309271782562430255384232074780150546560891201891143699272166664280982270887991425515329888494498938943981400134370601982752798046743765584018779104568855188526745454838958975737165292530286472369608754094200130415372757607650595231513915378388787406235741097487948485287878853590424326862549348466700618072503785849619790252504216731524465329897853617444105710066349274982363318969323023651491281980033668716126761144238888050222935042488100148851978120844648415050293850345141597154148309056963622120478693474489147426910710264666234929853595621860648615789214893536638043243764954507266594598460800531807326547154089435091876180706849307885406298499854347781072922973491579719396263973350518113243125418831192727682698789244310192593046354605610200459695579764172738078874876833935926317171783292830208606865904587708114256920704655486484986528918479766329285956185742170159757107602706246795948638988294062993725406038266072513483426150315933489046566949821736698543274855379991165079098189574596903147664152678169153140456207830218542511350077209849343763264104085880069363338941372442682289860271384279149888126285858932550694428278302264687438974284009088784882381632545124554104001862212623654046218726674355199370165638436566785091819128467998383160348600624896882323298925384625758338088352190598708445483668264307152779369162960295965122964218225592278459981105082536367416789007485277022662900060021794393707116956873002237218488218797742098226425964698636875853500296757553150442673647495757502061807175313787044625581144034015501763105919378873701240799247262551198496524055501173665012679773646042292849618831226310084550569289365303169648647776687807563185014820489661478948435056906832598353863578029614215128639874863962328505511198494855778770205732441643623542102147540593944720875856937023999992096228831210060559187487927756189534978709259829190376761793977624184154636129317047175194169338128661304411902019709742443029113007317465510834587795556432234860179840600673944754329590594663031534738702621544812209651385930303762771084936026094623750045922985101510124935142218563555647367889823359055633703096442816464039047169506098930028497431965168132651514171172481266686684198041047202075782805831064015912774617635975598681298253032640794308511823028184893281186432432676792698102929121327345254358168846244015231397065152261179851454977027585779488902941253059230720158804789131452965407814165025045746232495739373646366724525924747412586972806831651165256088658327264568357748008892645235958157652748752002678995167392504262403641426764069619213257024939866952484677882004981622615642784506874092994760896140133387390988920111159809790681925313703136154486178162434338027423196919535355482723830361057337768303228041736327734598665826855000342145546746250529827533431307531808630022152861120418820089428990418054814471306958520272201067079494023853653395338939835854615050313102083317381787003816789954240365288681211737222278221877917618339550720157214802397482967260622580626502532296160420110877700851634792665541769686232387164897407149274706154951403114635679967019975752944652331609319771560921373382701453668488090913769380114531214537284108771001950414256355408615512280622304081711794177450341113196181510970706253507266627941785484170569557744890977736006057134910117340922787081792488790832759332304275236523611140471535280598664424980231639846162836820390790649631824819597328697345242773833330206271215192027417142299288334428658130729046829549066242631870372339208314375994120642309561553225212077402275950029607061505023414783447376904260069729801898958606994968429594200774976456000648748152216399488413198576902814127637097183859512119812041208911713975868696913644579014418452846113366853634530651318769374181468034932563066396168780191916703971348570719259327227594920306015493149204139413548589528186180650534252995797291731026180676925394919673781506961351683999996713696015381702362710205689245837914712842429464753742642909220269122533000052031629000810195480313033217707795531806907054771931756616304822918733732807539817362731663528874194526191397383293495418879299047995813862587183095508891014172247094593078761378342037136913068861010808954896004548980917523656496190982988138731295471126876885998570562439905378055783218828121797251372444228788451435955391219010530573463830090781332541842650942388679035887127354538976340474320722312490957383416998567659071778594285442138922552189079604851210169207399459420585304570148761680115518363015330120793020241812307873288603146165348513778397170775025380760984407845999649641790734113410272853529581456877057996019262927674930321376903789321905153273427855573542572936842242721099871359425410601384893516521516456926080214577407500490582791878471241517406583289587833589116494759402502758951607506332684551177561437762309433246045848065405322296911018996928005742950301188249516518278896280476479103435701520188433673780719164370263191452422382765899505968241338650671595228925465336454177837588090214636729193247083431753321041565743627776065623495880637075538287472502939728554795644439928917214428829978292681801264612890617688919061797419898455074549657463056545965922832436021239607101650953572427512795568253236594497465079758265905970617117546151751181255392191546543970310900570393554386777130018973485641379732050030495777446854243541277434158929657353967698175106044024426715352787872035483297604177104059347416598712404052331360004254656227789237260949860065721318658746863611210584390421607794840369959738866107683558453622676546669821123233661856800788034790624238719558986957204828915103759954751884794977866516309371666451115046984873793721030323458372620491449633808376483341038054501247637323255500602700488515136927205904737962012187381617541647755405419931757257015315007826298088380661377174236201588053929921234870268787532249819613320529693985384937085622974584616781526808170806648424471923011286070158401450681477458756410059537958339944863307022467397337085495984316568406106076990494771290617804204563601923287421836384495577421931864739923555483821750995373714200873999906919880535774952271105833837568088934335027156081594626213889737345382648040949903292029309447874545043837003783450067096904009847868949720384314648489296171454247864900855146740027740299511496762610996053999855948286083895787157828099197880855376649575065936384199712048515153761270594578791075477799556960828051085656929853903600368534652234226849100569983898645881369221889871287807517199684334787252968066660133817954498778239557619472490345548875236176308814558130536521242568275330374213751981801095746009468641197309925373292465817546674431845521150315466943521075848281204319807667805246881030916070502935608844306093459969440878318492334639816683038781555379525220930893165063351877571153556752962823754140981631725731691088752020258535249205640077844254997089085921890791741012292753554948910878408146795079143509045598069977708987293797012387742439106682086323729357673452678392941704866788818718542381948522381828395119850817758200423064852567832371720527062970662975427669569673165141163451424989008491516024834286398362901400544997008677916669374128066156244359237213142037394640473808029286168219614769291611486283491787521473786792415067347255420043144216191221130328261696667799818732097395846344481257687921546055156402403909733895203939279317890653038185114511162294482690469236324927500077630569949732812940598894742083082427052727615866421751171442288716474196447148393004246108280119247957821844849920485159448755367490839714217820503907064341077095055993101368004992202426541326970915411709017085353935362756281685510559996322344039218728811027093458708661552866351751846443842685288866098105958292217807769291258479637433023595992365162155909845178165619288868708169922755160637749414312272811768076752373644125910981463683695389427354118597041576818978343047685022855209635695590558918788037545588733189303516665104786197874033316253480606025418499276242344340494934013810759444849815613502554980858013879236995959107374161654006452525538842261746864315660230975117206506698974652509023219972431794743719084416214786244412103786381604998681484047498384897702661064523231801024422274084780568022828902712440509090993445795695832613715133973657016884562680770171799974838041642721394883403463647065726006461245151918193242260775252430102945024158486478380782473369950029129883267357480217287654007499579539829852977247344814212328867804215070567354196696575426650965180950844585764290198642033460705958383807263919118766545601518781912380574307899784641097364335257835482394204705052825461792930349048991130590865617256403549118016791352142084883511550813106322892693833239443856623305584225835375734390573723560499430600779787133646501794615685350711860423318180118329338391266694093071918907259805528802010164608078672829761979484540332186866484193955804717338380957971745587837834780053038182042220610143413097591577630281223200613997355736235789075559031806138083022777963999081636393894747408086060122566323438863136330502003623609443398493156543031068053883531650671490339584404182903366334191225728305996234562126100940748760310037571916357177959934710556384186100541086597606468332321583642938366476253002531607141278514946020981390580008122910610617698462917570684565073834271316150146941737815284707019649924090214506923908056209136114415879369943203915798268065160014565765070965519073275441170639999979483156839748989927635825546000963269961378024339926691356915494836228228989788726639635472578622217890901688438616844595379072083236769180692675484830868022502639588894066679498049258033982718215895736210454521426895606743111312570656211826358087264972259387246739468955521826201287933775701836295892391859705843864795579533066884640788133231938353549122399326625064385628494537025458007650550333539427085641819625057821226495501784682562875627273903316777213629476333318023760960810624514996205678001463273084958178827453450158287913989699580258709799687252869752237902671409774739838342923733066106673090887595210937346114103216903462165501998290986172462320788318874586249761928404751035995530446816663613865587324321924082628841430801164118287730109364125278087224072977593475629291400245266015620619277336869967175864770625577607333831188262345965295387066741118010248690877884156503091395066091922400385806630138689856496582418165353617705263911348833810158150079634660057892295357356985157973553949732003023365100317881233925017956501644960192124858622043871865855922823792818394986152925781999018910411222110789633468629031132283501896265877669675478982876312066920407515377085795824604327589234924816794755742070256941740810956368596778662102898655005226255751203196155773513195259709457454101426414629466171123988127009961574072994377869021892659452194634237122942473980563497878054030251297130408994027634080788315799412795314085392039793201627940838111078547226070327675034952481095682381365183875428034998175525131699558926284415026382179055942364755610886752946800804876540286843555557603479399729788809723682128884313283485771146591862874295469108801972292681798172135349936656519451973136858065292833953100478214824048298953420990296399003760489936834455990244367553332151621073618264915904618052096028729975170833854363749143008622621259514322783556116149986385358729630478457651885844480113475972937384412549172671881767601784152574554748448912870057360904309279272099145465154824050011500546369152149415957991480653865890366111970087648698400876151496875366659840798215335447546105482424386900047729535267984212267342780145310692579581873699397187318634500667540765846228435568944585991419301856812471892927318447455190179606253481284345437827722167971564759615461772855400617025496499405964244252291896766647046199104733055568032244538598005751806743047555451872837542163385293982421347271521954743326137091009519333228888270782416690284580384430355280286800890228693569401779497978257547197074256450037986495560692983492209803665167168036361047996939023423912581062115715563103631508209404625386193791156002526096957944723939628428421803486760626230789266534336328101689672573994714176964759836831316564869668571163808773465343011050182054166338242764395210423017219671246690946630901998868765705398338074149383618382156493743040912706628218342167549333912072757480611434250063167734665551771701199354737595442042187506230726079149247827260791716707549120257353822895517369040998906220617159460378731380669124297374084205478333117632263601428706795963094764334160664588362067138788250440193233321128820091944350922849057908225671564055529811052438404585188318666207565122478211384549642165204387956008371699960017464620256384595470843002009610841469290891744974196693254826194941835501875256951646223417102278780650913454253544758239175781705634701733978499716514233981380407100139504856370942007981722784085590549018735894074069965747298720603865503189589416629494378285884511323667198987889921743107113950814717668357312233440733248436664498482338683875672140703652447885203746858027301991093836109652197051715531028341047585867982232812981016847596342349381247753120480578102002558227416450406142855516450721486506368117144385293191721631068347800555736674685149980058543386977736409535126619584322814169921280409569294599619543991548190458709838887413718987207404252922847827567530080079683819217013383844277050451494609570193086465240686759012956308353018735405970788277150629325721247114983377350866340116510213542170341525726098136483935209589752313609893470928187909926753252897322620440913743379548584522985636512425559315333668511792648001914979336888604348154052842121626134608782871452292023511086339251913453399081874141148186266443651572391158317854001411810794645748277521804014608157090323644199027524097901356079634952216521226732076738678535046546104556042146328255865603090758382396836774152558821264256680624242720525323568577387586290479176366236409946461307805342750969547847062522823511558957385050385385229080684145328850715136437443755653875395742737036375378582192138297014405877762806146180413391808795827731999075589312643382597045937041573205433057179150991974413635816405147215899678021458028796356710217665927147632860658915781867871652515334309573554818112035392462100133128040715277093692701283473193729556330156460472823423743491557995643415201904839777162357254826926972743691151834075393286810244085056242429875195867110060662908915627250593046763010411893036430017492182298227976250140122023524480581440352503741717571184432096771862403488318600256461946906929075005423563940707300725183934645027306288417946791545190305980931042499077372480675732528531882312724378636559903808559241747569061122092362278232153998373102597745759345536781690474623328186167776117157396518803120316163872324452772746828656481246962253429553714138074638222297125151636367012958556330828013014996222948311749769870923327942200818893448486878546742824745462136766751928036141294618369493719266425433769204300335344585663002215312278042986850730888752804198089469506540828393488847987550904273574170979657559804855998827542240694495412708966622738617461880821284158597926632565224728704654055291248277215925696413692634919295806184748991381630920001937121440759119457493366254104868129695523876245668414088313447153477980128794971958823728848842653541345177307420657275351280872954770979152935659601842028949434981336801685732978409531365541700500599733720129819504366496301360681462478928916421263479304330620941903761033081620443020055006693278378762335337315639844445930220274159264676625727945494786868364852107082688008056495606115236760972603590826443472129109600737658346303309753434886358066669401913087259613531757463358873673934723994142644857448473969199263054214399847402655958796244990738658584837992074184160532867475535886818392316070609629428727042542327678484879996427015824780821928980270488674290171326841337267140767626594551861825249192717332796043098000957916236160927965247002816562611703113338913367851734712327018096290763528131897007600340470435796358028841535478616724626962540299320325268135242187733795140611545903930470021422653759232028496137072490918690798348085625208243993004960208451947986062598624853932274921433781318328966941206676696283219776119011728437144230276340384545412721711265625451278604694504433415381231129622336250797619933690271709825660296613108820094169784798674961454313962136552500575080658084485367645969863646259496617473575548210578775866677221018179515833469791180891571845819938880986535160791800428001032084346926407356096842879810847199626988182746619856132441362705126307988487590193744026575959204789581727884118943780889323595160627707300427824879495218584846472163659583834219440569882568937192522765741569728580064367554425018892319744241274793033665460414758062235395418928735227525261064133251680528869759999398217100147588161473201073030343896050085653892671563608988418398496731553736366129959145731635834058502226983601410554814298940707354095603685875247601671452635641400692562847378705128375826278540539860383906315419968697886968537799375622430091593267330237501472245251515977395219348204648520056550299589545011801968857508040033395919316966934498994213693474047408535565606111295422061372635510274517144460192666504585098271086907099961070068241443146268570274628574557395747479497272834466272977493122077489007898666465968137575981126013827671752239326428663134420439881528910732764699501001586837028560954992606914869067242812526755100791571092766422712947140451679651314110308018889760679618822803303945011660871859264273466060908465141463866294463541997534694260076468804698539592340683652049616500150997178011086970712067948428210964605978472378259071263514722776678552166647985206089666879054996562053803522574722345701643156748834460593636863484470325136901281574723390064821910204524798619780150757157200031367618904067061220602269268378714945926654775962241034376480759423605558527928565269894033410341294269439768788671211133292144723609249318050019736728223095396258914153889706478264006055370650247297883320881343976400082695446279499137905989794646773731282824868525753154239688243065603993042827510294550746296765911076521573406108381654035852081208698622447229297337310912428894417162834818206665460598706829528949345801663797583370299622952165376939816453464824356506251483550424298235466352371395429138010091835957014039660289481443585010982371136877367232209475428854908198903453480400770519464526243296830135531136042397884358739122316298091721185265634786365440950884630961618879380675196075386561126659650395893207153960101863237015166065366619511042317635019806053418256190562668931442579155259961298081545349218234310765326242287038520822190620532597340236393990809657274542489832272375713977147826456033815011989600853147486149628098205266938699648241783872586081618549731240976502159414654809539678961381620202430324266613021457830039845136543364810824865525109045367272678068278509085465383188054669992908457999756122102172902884615460671175185444237963553252023721282875988558949194801887405626201027853443873754962983390414817774705672684155743407135469705612018384272884517061078831707842697910906643825887915313441578844233618228404240546208315426838507029275060888270359063087262786946047863100047148215144263351509909391537629368913964238290541473482143683145897721615473347088561696301743890389718223694912611358341104762339587842408436498831064392195485705390753930010285374095080062872473473792627466347223130464529864171699239182031218338931730875619089733192052347832823019992436727848747985320062734804090574352470932319348978830292560848917228734158313372131490832603879667128155319506348427147271243363148450555112443498932277951557009419959261081391393970600785669201482962800466155502516235501413241244669924263186485794201166963769862678292027915609578314758441831222205080874086230384915081327655338975663533544150702368714182780274449418457494641997078878570398146131032795698771066899850861239581032032583069138698003958954911717560556330027420517604590290344550964196630515431136160491654185208737216396185745537582314354487400697639945550930599829231153840500712563198297887386101139728225544165244923697888349485135160170701741797605530958835706344289144493539911379464514390363178885677001374152468271552615407264892981878952604351659633978250896693251947738349492997266974975812907794704060611480038386583639882123892261179903914323921325044633236649514855916273314385637649886082979024549841809684383614425683817688125014831396813743865795896759124041715616124700824402862453787823136217992053022447214319771212079276986151021289311348602730786935280256809745322939713159674446261777240024862256387122469327669663470242940040676273259527298396991432230876542958144787481478243043307267810285508681537359330279448780113057068491597619423168769659165948282402499100469250549126211878894769450456565269458699160892138847830659317802207226411085296367569276215102801487830240274674806347783090209810368973952077843248410695390149226086435350371728451344615613420570478922539253340711050032158653016910277653993081743467773944047504708261128515303940723152324155897361530903273766247045739899032975694215628893281631833193052577566771289049641261714566812762599725786537762125131508796114722665546157865590550391484685510280328617201682441541690096814257962990959770402544324368530033776825370574164476087036498982866525499391789261273158738026271597831879622428359796534068723343098542790133788498312534532658082485188000417087791842180303988942980692738350192126892484027925543217697909920435203461617654886310172348138361309437950357760918991221170337804435433660000653989509253488997664060584170414702015342812070365301386159046058332342555743469295058992911950121734539461148004099206727941843304232199502234787072674844332641109183022148005266145199833993298900823728935407361548418827523651767645426019802904141524816143506773021930888064900129933110698691735767270353559180556429790311505806354682681882350501333130482499414924142070254251221293866626554382200632219639093424497318754485758697839727750561090446542036854788732590218070056574338972499900736101158378771328705120895225034697979953491201423121698119456212357802500091006252016541102377116048727018227136251507266959012774877431453103199222387602568994235268373094459826532843041979470755608428568392739844144971813240720912104928245548476072430036280472089716757239453385770095888360658926703244679518182642178745718551268747882111606831753606423672619858142037346112564719849284328212495638441275654316417488911749721496520034946504041832407330231070762014156455322956930090336149984598849806407540535596205144858495742232221438353635254500660485481568268515388362430321915754130850412955894502354760149311045508460264993006547498170710601053529795485867267152043641975915065313675505483627230654916344398147894298793717120011871892573673717972016873849108449402507278774580101512192714527939956420572053157579500222288764941231648020373398575394888438329641533137558425482756692971010519418732574156394386921360629269442780894468881163803374347478123337755529225455114714722243904975642553386870263211322970593877607012890470231233606173756423033796226512547206490458300888452462346733652045190333818702827429373550235335139619540425377113889290270921796561599778174156917581742809217678993926244663821040688931105291296902984756159596186506644869896380107253422056373873369338464729339140238109890251118139154464695628339366611434791157728577555356778821880337991814873419010700861475903493329837620797406962559152221281585876762719503892587692500787184221195968223228044445814478739615036272218029229126944882372646929759464286096092815576525957693966326954996053309835171737348757169380916531832678891217745635975799634822801913578710357488575487297898073201760530674197461481749581113148147632505555124172781632094882889024940190116284905349491543009708599730477974503527026781699212113764503602547008398438038560175495948219238950982339427935810021088751391270226460066812732464361842172080862095510702124825721184602106927957635366419546800100384257691624523142115341123000006410693531282271894219491005974734390059419921420886626746015474968894518485532147820142780525522012834606260318533716176042387902445276237065590400819128629848248481110211891450413899644003433003747670443148435735891893613358835869084352404995948960008548935714949127304678012138082552853827865237683208661211213369247803365613090337704858992081316283789758884850743909823660456355050147550233191838000547777443056697208090121137158683323033061017118522105546104175318810298480330352637808695689522385894365686728796088892073039660016169681778767927149231693766019160155638739945474629039090709913772750213174152090809865431542383577760370306187009732854712428532925930724253219533194264938404224243405407228413303094580446877714001820384323260295310166756961679693664157242369388630068174839458156352423654270463156468485375805103983789977687901711218113107041324536898251975309107329014154631274869333056132510918773259765006784243958410372680127072303475975548734717088668974591874315956548359923632490847621064349004505458871751505744406871668882462489756895744719344124912159404631936494254831574636832939675084119885003797095948257549419006716673165989603494661530018128901241740150621466046061607708894046007980088793890086668602571045869320230645217516728879005127936357762408980580040528391860349843184141275878130827712938479066260622754954318231140145331173798104986769481656618591642228957335177056143357453146106983994293057199475296038907882956480091117911598860464026238719118970028674030701189186851574741045344894291128831637601322036737286748407158952460568913153610467730248215872524827084949609073900911835811753361175922724731661369047931776908517524436066479250179501671374484081145564086189689833053042577392008003776354091537818093689018810845316041011041093345385404667364900106194202495873572358684495371293463330334749236545234025139712410222151526500524984427741179174880382259926509282027924812134990106672746816804623591227603917875161272716338635345834336945728661056156817813125822083991903095390570393651418870564686972972756993685321691562730796121721596196946080826703842173742995266485308880330664301547776818566044282403836100508185105496147139519201646631031044391539798145214245478679722599116240768416671894079381369997397282332296258292510342883458049867757685431774183915596259353146703818283678702458029234542200949473597586955185081332613261677391613868145405394007619296846253773122578970844398438522141684971409702760609621335391625527016510877899612005497632087886604547198033295336899390341765906323847468329223078733231576534930131530811618345812904438540854815387274664040174886475681246684921501082103481419489889473083214278735938078024013714261225943785401254385370484729542233818463735576252049416172754792048131639306706453792865348264930586242526338654255801459060409882298263727477824509220609268839380247173664280450156733871742814769361975604773594982052759543779166466808091841635842548794319828409259108919303814819766706530245945780601711094117400262011810986399071977676473204780638209839543957221379720433935662275773062572661994037588730850880642504652249866192045655194968663852070135747994600575622668823318909244243684481484848846893986727169248386307857916256571108050259677051855606647405459398452057543517247352344869574895535877235645040707550247391222419095785131991051216124992444909489372394220228076715363574724871996566335114064550833035497210683076286093740349939949738824251405707246584500238636189783141640109462958845477918019663528379216962505719978850688241091610344107212953730621995416585991228391358734895677614187094773026157479124711937518561981386913331333708290940996830103137651806617791537596242742778572810655909231527541342171749439151839518458694290813987815376440154141474915124519584309459187840604932803716381431751250646266663504465120759489359672117663872091790744779370099826598015979055639159445896073197334319816984616593787287230045994711129553339682398537162708554090121625193476287963158461738774700424191816929232149146051509239024195140019358793048456861222498864932431610235797807266266408501868144226327530935971338052514204302889927886894796464462077749572092302535559125027773358393500509204232773288344137589094691980011771841108924701884450210812873575878164929604857252765627562960283776678401305298096578551139679978949230601774960270226305679070871059599512418739973287111868636400448348615731953631840625292189033665859556133623081675803770154815234435877945457495566284942926401212092892659405457874029593446298886615849018220017630246639051193696687361415605048603619950423303026119411601048576304944759048831213389683161476055227336375830277333880246932337609603096037094333020783421456757273902697940118575379852000164379068402853701502799411194721802178854531717681349456364303726330661768355868648514744145691933695364829516862728151813321446272047834108330824886521870358623069502903471426988110074373610373672578074719373123957218188428373355727136960235817820794639469725182448074973204822079981964504562692733673807023587620984679852080576619358167995238640150517187396815648112957839948433872060420887132098369621934934607139103536666340846959372273996054947389270709348180194159067553533975832970092086353365025549361031624735366381352239201239879004298718277406560284372216891251426793483501133349288705183040477001481004172475116002963528347021857426705420399147459062198880359234874462684224791635662547236113487468641297889213065921768139283306054711330217181942232655561512314819074340601333896766179972176687032876327744612127322803665016636898768916764239530412985222125215103773767588202471416027141913004022581458461935966810322396825486355273674932250107970780152025279389449477254803491499906809588073742378991086578041301555872142345083271039316262769266966019071111553653842879459906882078779011230482031111813813367432991908379103050768951565583565510325922711169287211350785135910463631445567831480433711287420831610072365675086295952991251742859033594707191012736070456724587248856703001901118713644670106845925760506513142393893490933727942883616691119860908396514768293180382682637057926827274658070506221223045713257351703497069294848344023605056376122698520773485173265861577588771393991451819907605824508334182453714880321553500516960340608584639874051346309815245357967944480804076831720550963429548041410796679534215654727135456328669897262177237996469127357078011276068922275168350010337622061179050328759533771530259810849253657901040035723162431374708391106583976583110808420883822676694093883002242925955791641358423649862016510211145090263503391133913624087039868448864610173505366302128932748742710104107139955760778020473125129254705982315835883841679890558129432168407688580527792962026715727160790226833813581734737425326847867682694257446030131129093579539619241155039485081843346291528051210891112459435175887573042041291691429340920848486422945209185402220212483156224091990962658873486013424705439199632666006591516886308051746822219749309180695596310629571070365793374891305264683478594814631365302837175491865213107204273613039306528813250122403848502027386129559553043708965658476590973956918029866013942648528235835927186689730257259278400517447595539768498094346770214684404870548316277879550428157161131944259707234616519902784746164827648504129573782582795028689417943129346268652967407608840320262485346922616735325834683544523844343987821503919719222650844576506493539563878446836193580867899694648866076849036540162404334122157197622173681319282004307519643019556731879141152609262454192442086704656414222440019958449885328395259694430966018180561207444465199174436654630972154835104377600832428274316756168280029144945340378434832792231128805195440890391669902194880730146223309956817020890948087559244957119643518211916984064113750482836920613328428570813673787032419540115415196380392826733441993727595155225755662698415149557755017568024696823633872916960766220683047414851603946711301747403166450462876681279061572406094792500173377216672621029682642405641827480571124197147203301792796626440348080858712597414558030421326189623164384109541644203115005300423676408755801425349778936506028604175260153413351309170656460193587729253735382087335744941744546384983668494728890409056397227569856039177709402786214862510112545861862909845706777800603672660133190233202890275556527266928524550404875389008553417361397291288047193714814367706760678070604751553035155315085992120865612277880682075760866622406965024578582742073794847957835813440524801239715490851440405723838653688309955824600238416232338456314479023239687451290022536933916682805723251203692623067854391855846807298314569587357890769219483423268906967341088310395990080466031026241850254862848493979916746166270633601980172344243821903879949061908473297893830922657332519710641185258434914124206914519561056572408389584717167829410194661306621166229080735029945389359617960739002775758470898703742774508149349226656964254896388194433279004318681900293844766462895091174796927998206243529749591012095432133868106824267537788006345333443976115543450708036350434382443788884152880101189053051752884421565875302132875324401781116152338487547374800572026830526302629276300323274672045797919442473433496200098132214046304891745327880737178474919494133076469089537496304783089921872146153259394617627267467154533962697027131794940900931462396171783625236722999424726949736938432376058667731548175942759385168745569094134736697988742384494740309369224711668256468727870862297895510407169252902836879432539705154444023359006227986982299862857960230194336393538194803928564392375743013050746970250592162514027638874614395463477710290237494890622417879249715305942224438568038023173412082884505138826613956900507501077221172608990206468430591374583450535035284161662195166208210743518485755956506238783438590659803161071565074316422127726753462000331801279398995352478524573905332767408061876659939658942186321599022768227569746252380567203167379741855098607875770329990888478928832622723875357579589218868565951019572382610346350285329869832882112159793780065655689172545325671680520802464546592454507462444921256208502442232032710528598572762278709208752746153956802080995238375917572785698294613141177742836497378554397792870063645605116378029078216000846546693721542188947434296239780364422600484829262584591563744737511758146350276883078388524981053159649878079379052020524780751887339858985526044188132783116594283702940272556345612881252448520606680418273878703257101947040278239979786653923171065197388219872232112757367201129194498763962006545190626956349021621022121096029494698639563890595959242445361220307524082398242648620617520657424618959559900405198571763699498240833551371073428578662546010477952549475656456279682583826293001431585392882924137202318875516376411985150726964423578004537660628883914497009142462356029927153227187691953392153744490455887965033228534561773779788179531810686642185820392916942133326069322998237000184492025658978450194233410550784897674902133346396463728023211418698339662936553048116564193630710043955686683076871232598120154274547911404175347005623949081557142621766339905828461544255245246337679756734781876930446698867975532731878308929643149174212994824304491392801365456480552663110201332371567037851558006434795839527796322169304396622758587857680905421874713255441825669532340894411321478675309322195865428953178345221923439100259692219331142554939092334424686963815641597429015812518134062953502851113126636447693788081025437625965306449427639756491770466082625567340755855832712866839868834866565529608571719623985388807800059208901895436018185559431934732808288107713589159745386583232201341367015632315052056267532009303231869539299229437689552162634380158873031024253127183150995988915855660112149579048805485236244098726945243540243119474300314104852262173044752269112663514151645573195649904371234326593588551294488118567414232111387285738876072295764053211717177552340767217496160620919751228264324020127539834969108774263292923188334087055104675098577195567297851516568581965997896814309513047681963252932854799992075530664321671890059949731905140552160228450170231155913783131144907968875584903114887211292867764168521067558984946055430196300887851650442203601730796385610866721278901030218873353726904882336983820088699545019873527924410083068636089980154929707847614698065203775918166894736587638406495369706329334368157597707806369081584896480468055647602771386768610233318265410109185425156081707317519090066974781154287627251814707208630383135378661189891282950464091560476331825142095435015324511274567461311536939302954851401914103379435704352147078238735811987943925323390048388966390943226335554518733067579637980506301385204571523239266729788583275731958748297486000833811302304839271965631583647680928155768346160322683647254130211423056680818630759902207101155412979224346564376303303926309212663720772134975204245331615352412631679780666655605943898306997516860198191332221737506641042338058144970387702297695108959337109673766003873926293628247843542302235592768959178234375209177425380101377071508816063279667571751765180715831569121367429272239989636568068255926707829065525026026905499514017271276186922274614405215802315275474500768310957037274779927809794044056008486316696696153523040198045959206198765438879651496143161145747145098286002900913134871379249273829340724136646452833196333066435871496578652896410082207182622734327851092963477818025894396125181051073425280030324695529351239520177294421006261616760159168984900086057650498057041338800457557042767829601249247607279184763674613262878241920406915345612809687885422493923211046095884246238139120246184762625010553596923783538229850717841804706794615595079043920721441066678402046833897591175945664884761442560016020576077632548393864442449127567027803610130928977436947738672663747789884681313194839281800832163770022828191462729891300027630638116542258077793317108725353072947400021143262489009847666903989855616080093601622003808011716650344104814366037602679293285552424625038297508662987781895006487595630194569136782307453316958630387490167680624693240980026044780088977011394923079996990687181424201623672616902396046835867028572394886664365774335136402688901870576575484524162295562018950137211071721162362115240037699720959839354861347577002866316808287541924087609214035174536257891931505493968689599391411384604732744584354992250274131785155500562158991716889769757084619380627694913409227110311723001437152147605122373244705277512304136119453216464892840020123428101531522751795749776281145424649132357957430033641146502665564680891651343235790748741717881044909360249640828258379136731020694395543947805438776189473936271021332246420095097764885260530449226422051800573907946484333415850341468196417692061367996562662453748171907880728276097973745806817878206529041418401878018844433792868557349039402019298447312430678358275857604240384856617360416148179584577155359958207493522807717360176957185043068968128349496787041223527278456058340225555545407995454329218107583602475031227518641904606232606421476004954465469044084544986190431252984060384096261220501558623740877022201248085414673748333730176233040829009553217556141072011266898350264327089546291720777732609458754487127547840542414972135224855881878164447704285450751099398829253898581953131336995557641256584448305595728608584363464747822313768229689604996924766058872461291086087396084596230603469711733070711328205243999805432436758525729241094661741590033595479528466293499479992224528782797991561062024267962986719760086654080097304662947336368840000145233386395241658643131234887868842914072471412527608935168989795435440444270327522455269315051340425429380672565286806435671168682382428173912125051007220576132534699672428541381289587773483969730745942162618397162094700856524796141215263624295124168103583055994542334338958024227697260722712007757105174093030513010931674703477286865207569632712235298423241274786689125706399816932556650102975668984720049131599280353103106875996184599290925643679407582212116456206292822854644217487686254042183139120545165806671982468957441038977413151250603590615365374387475814223271998480038786831619395094645116801350439729690453443572246350886874161395361420946495212476987421543837098648560924695236346004656006743453094581745926725838006951817695259148036370504390698343477107066627290194933168991193886187643917781981996568116743659518894864205630921782546784345417117500424400619077231291873340157764058364753194751907015432600864558522652650180959553957023023633364378786001492083043371834730897565216502468842476862939218906680781647815951188788704096187979393445198657706192555249292405423457318099456663297201331708007920453015125050867662640981581158861515800187083272824311425008454655571002921490597573671990731648684352936361637130684106772631352978487257507286943700460930596653760509392917624279082283133479696550059463211890249514729759538517942045875529270577258366846851152676553721988388369794852384110910708057393640140727551901092415948135539741516003244218523866323408429333328697022176155045697422896606644012026264082766360005484313301626228570886734820115778062719701900769901098907812273509535387988948047536518719756697466794985441358492011008843851902272320628951351318177481384123914079497761917362878515970824791230802066208683217049329141355477022104695253125878635180788820765498183426479607157899098748333890066243898287758821050589366849511081496237555582429113485700864175303434121092032136283709704003259331946595595148185535328219219429538872966986886944994068386649604701993354480952898069120752633423957715417864917525471052006261138687609364852920191008947268384431783243440371571544405375318134558541873874425436520372643046871086916145291599447596612809922299262154414114390998908818226058094807308030514484998876193216516442056677986700922438165409859203047678960713546486243378568798876200081454141922404756980097986493656882965776315662413398765462662333123410876103649140899761031650182109942628613980414581017812335824289671280364896737067395932741577846194392138666088277552908072925262513836875534392136160469035805556635796051200106393739755510147978535071531907888568747971492679780554783649526547723087734316317431754570357412254254012590687192700678201339485904641416871423455409169614352396263007852198440789016537293719147835578749822082619681037160173546761081193311187064697568620066081756173684785782954739414315678744637029448214096660961984894544812466059037557276253615760430322994990930158118521844557194271097414039311015912915787026447506496667070279137539797747694951422995668120431962999679870650386683116062517752138357359664399223632398456931554064201744327722498844042593272994641297447880554265157298876024106697366282413552924489186580200573752208025289451795765057697056097007883791120395979890873203140282057277102968856373944998291278450176281204569674216539100432268731358300193548333942369069611318977713757194171888943805299336314949675831618032318598953457868184830432629736082217521030981344688185875686073715755452127153645786732334730114790996363251037560885947828651408807248066790579421759941741596308224668765395838715174183491323892515519098775147517489717748225065231978762672014403358212485642559233747087101260162894127501793269671470337069711168672493639442954360925402589195994073969192269462420053835335527802477223722658040779786042899531215369766589345400109903544222242576684129057239920941282854095772357658617950215616502558873274960170034548664243938182543255016416959144002780442089567910451803653411357078172039250410436582579804114743731541594539390112143745548919389846749500786657703520368933935610896556862329125681275222733223995986450583310341517372283431068775032851118079797550283276190741248991538803671834883437230972620654902593302029020286608543061279379287156582665491451759427286724132359787017588016151526475877958447945391051414447835430279005200382117959584418662187799902182565037478381613364635278904747952427937119311848329014143339147918272126098277277606496589738976069381954869835646529426036743171263012184649652297839391261124892209473130181216778506229324597385105670360445838395817493453187914044863664522385023245644148493936017738105080371422244548355665870627420733914267699346381533159134332154970659012123584156710213858321841966910965247408890136102426880524111107354085473747108239079085458284477340221548973645663997759115736065981004828024704943208277138529863947095390572610592934738704814961377005254495786088889173388922805650173822954229332806671324241316826418811444501116876901964488552772605542434412308899109700740510968712398869313205615306427036557931079091612486906539988310018755969420997723300601728307736898149127213264446418335877391476801505132711600190539737823492109562487247244007642303306532020856415739054525604546323271901144646081318578755224704677507672012182983034588750855510717905490050199034719486200865695313258621762496723321185217367093514568098180407467650369746365279620438617449708983723980100313759509724695860997256149196081034397958149994653858558274122061923068381854660807553424501378435325590794176947775752021975209858580711631405652937493539086948280867888772698776192647468827101811212797701942722983113182007980827305370179005861596773778074449391289255993199007950813792913037877973278407258806895953299755289066593298512511741838263097489770087460351171624801446257923634759083210974074071795084683176606986518377674838768592267647139822144279315041618058016064175779712296243475041354161610004929059029425615509902977254674774809608343771645410967345333257759424318813602859579234541007134202361077397101102604100551673990518540690773011787408578383516417373147911512701556644055546557134570410002160993732931753979297132397093456722565844212958639796752112126175921152929174184538778660077684146803988012434760158080354624841320550245092481796381745224171375756345372542921921481917196400573405043477909380261356425095939776141007052800028887661729569224319916598345575692886213906228644334934696729894650318653591775789564913065914451563055022454944272735773295241839577715864584389133836808398113973533859280478525921368875261178914517732118068704952722028895519070111598017665597674330881085703539689910436811078499404475267323936268561777824006137370351870403662984244522010459467084875593735483617929691568971637317084179994328037672659857772144515196197335516835808932339176921443752104718484905537088171905032728212409377567748915785792710976177417889825958597169690495018078632650551603054592454151204733357427052339694307373889032136604444357280682709485878796487460028149866671852278512647608193079660879824864512672510906261798712566098258121818147091020596864717277462322379148013383588759415693461775869995800295693106544304212874183701749848104155749295491436240431308447441864651301430604417767002520567401585759143626141956888156514667760787296320621207870740991580514583480038001446826366864131304148796163397637108239926286041435144820737108165537960189145278380283773900574952796617671855228107721322374954698488970376685810590017736357632175339557544965131894579867251687862765011851071615432319725468775864330065191998414457414712256108565509199674697618529003141015052369838579515943666206975273969166143264321367529900499099233145900057967929308654161981764302590052084823626583787895438433917592627836116230838535800967726858028720492836560798679621892325151405791055804165593683264501213129573453314634200578293214097927018776935833944518534535853648151669115303575912605716642261910707464988338151872474842094500093614199442777306852154639495939720295255626747762157181394173099898202593601583909036075304963910846767071007972428163589103538253755131195962384951650913128539293486870787892293779820499495897317711892962319848079358256450478558023303293269085365553451712445243895870237632974208028843505672208262534708669025742286035206704476487256105376030956443970841429272924680035499289001692557172874223220024545302793795507741948413113474834391092092593389047870952403998512273113430006379636162232236847945890385308598139143297938446796955314502946612041118017811881566884852541761577967961278543130092954615510301021059814458053113373006023182367311637995656430817287098574582169316770414057704784128147053891725397587042410405340127509750051846861697250562604550085420318769175179670774570572632105426967399660000368700112167304626084340451288635441103030458036068512803056298717169428107139305958524273180760921675462073653768120454093646401109364287383910670624794732072750741808287641093794297281302900167568228317708965584886892047477373307719931561380628489276486543074055951209635852509571013965337258996343776391701804417052424340728927472179797023995658170771018034612597238838918398413406078942927748511279666558095924193336997435399727975660186085747388816526227177851891261587902695939056078058660750506381305743356827231038114133572106855111387544278478857455119363497499351493417411165989207406470640421130537860632216680602416084932002521234053141636580195311109187358220242484767071293570759755941687235205078931699372946815836437530928342824995812916248508300467630617872621337906789045146665726574522339657435311599120346349588622058599553673515138803227111898200295022580540426453617326421077834955439572957657964234124609236514782377602627098900609230654638388218357936579803421271657976166053131831946527069911281005607329114078777055401714813992028155633804066722291758759003473612458307742707734148468687982307911582860892288550816206464874882756108518188070519542404393543076416333186394773479009252217110954364688324431090601480195836488139158946617870655627338422243274144949752422071180722092506218309841918736025920722239350262334518689202140459356281407548505618364100840798407973446040655040673890111653776225485006018279025314129334712680590416095278687783097022976084334164751721942606439770830592603388473722937908156888573320401649393810949366923049315093017318174375434761533474554677797613143206712934170779102464401953900254153133430603011123390055943881610560330051539126591018918069597978182446966322024383783924386375165896452122693768625682390799195923890850114786630127102535190298798554585304468108710339798443645289423043069618012965676779810322080712100553041216047368609978351500924948559829514461353424772339707755545269592693026427482408626865728343019740177051466452724861026601262720054278136089597795988884433684206408467105253978978968350379279498410305487092564016599198604933740232367305866354209504225764844809336387791226220740129523736813853662669173528246485380105991288111573195668964939413464591553339291900598581949321972209376066484389482315765907129536002422433171629113717878476987009822975085380002925846685202217918778881684195019965166615381926693352357237507728316249285997493522364513553077250943992386628497980283589403306853174792667431467604450948401783685039865345282844303016066363308809491062169574508020905468143632705051401510096242976941450878008891880372214879751765657070502036899838524928014900929084350258541875819632181900659747956171701624332504873631624129495206741166288824384320050661301634600645758977887373916739888857719499774085419269265085184754145583578469539008118024481699514967678986305571710528688782738732519718263611554543091968047232335380096043882847841828707642076363788982388142833211636205356918413756330322568929965466624485973539154976452301188536026869507702855793491950410031705081853587099499435184239908945512632397100279771058270392689579059824979564108798292004407327787635054219781788726398048942796335886280476379550098818132102478078455744615463571790618451628355134463440297780770808761710658781920815247215598952216046999242528368090224558851985941275683675288786838492209253476708481301654933902796884433924786013013401865031953636955010615105989354645974231947003996872031777944981725092862902044508049908694409069956480548564367845095211320267567281945868640437341931159170366959991741673131140919121852224165262253586805526764797207894168640883350612678117054277053133983152371376299756573062051940208098891570597683055633644863724400761487178623715962397305972651067758684900644005750955718257423373433905919417315160603040847840838015619078738533656215334852536697358461803370745315139707942716954048841861480137814725876849930954118280553953118917007114959617883149883098463833179175023895903170430941808313195956642967271589804817638469454880113843337568804793656307682930108270071386604846819131353266574352542849152127801496584150045598751370118133538494046200598799402586587740270866777882867264372762629232893075023278297559440491456328911185898961372931999050212804038117097792043261008373719279420975230014058726092810279447703537587733749788677770395332057838805085288305454036683011634809805738653593722697339950472329549762189881290641450787083710141827449656888782479773469001957323223273757881868319608977793679536188685139661492791657406935410993591316224018631296304502907976079836164442600783447958320534783173411722334267936584827809639989265308671988593040502364462150559982636978908655414790651542473587253106274521925332937361537790543556277035579350188786080849331751750421727285813574622586848382674704244251420296140611275133678088623947456156589828656308983690335574240142033375521058548096221282329372856152533224590323772160320338613663243879732924379399403465030516455262522252484672889380172542875422274214062809292355270396640764675161384314402515520053919068865301062221127739199393521178587641179824887520766125496854255979448562961917828792957206480779060602637983410509276612495810408301200850331083721267356825933079726142412227529790436806327442736689407561770141081370694201948913186924369009125661477145834002436135220904675921530451041732083113756807010078526643807956818677888723563309773690434546573310306982181320546914604376198767286034001967821578651910520310606596366819458040187118526194438113459964486056584282097850620887569047103173507821319716595144843363540388310557214979184513976354815721220114262424957217971765426108453320787212204620378302564302598425417868818555235094155357187467625453349750250630764232021192250151857028455431616178102643822542187780109340083635884033994732135507789951584042318163242457458592855965984191814248721575727211864691020012264752426781675658256524676543834282146136168409585000592379649914967998097685448843512523303259711069434899227265586701873658165321854227527374343902254852204825105976165686573949789654518845424028525673961025692089194881675995360117761069446870316456220815790125194482127536737086785718387443631398966082821961254153698037436871309089732824425333381692049791638212640649991766947054159300764706995633381428632293269089226847511782707304926598276269389757201607866450025078252614683500574599370690214701170096805627922818818696406554726943640298106412021058983074045705171122944085749906104304465424278784907639091178470357759564252743063360176033853590332323799088325623328150496233113329928589017177630401683942778702845728719203866367335877104023213582047394117000566787428744088593818339369691722734879653025854094091211193984335681288253454376667913488188441387809388772937993851946225617467502058383965230871517007016526441627521186774388739976609173930407507582097889623712992175723508052164637983176145330104973126403006488827278075451937112657203855495326442243671318697873568279499461754139451484091111997351693447861107636044923849896473794302721615961183566884703923452384316646336241859671883955485544773485634456043091003546142612412778040567671867028165767325628275657399847052014378277025980649347112712972266059463379761472495781290623845172744035333249440753603892457144397426723637647857248066842576299542999650048298779447761080559989243187523739114567828270722484029527527822264438547023230745977389960521532845782766991608952957162659153299621631938214942509903770373648571428085998892472233003079062421714940796698520527278456408911326480038251356506687558404952901829652046019315684664892427183151523668297398907730624688023663295294417511680201154236236302144945893130301686599755885107603354641045905165391725349194210106242270934339508484260951017332776421775160323232570341329753729087730491170193144948622145457783224253701922006798890004038979433600971942110142248021074642253397985257539174114358495892217790079156455065137417775264795767555236557011904644990705166245316040761001309285466044617902443753383626969075225208998885623548049140339755287609522131528722592270050544680082229685725962182001981066962945996530081932170980187547630117767871831921099418440629190853862532552138840775862650546908938697251717885128882701204858029374995823108604075653385381920919149642427789111348787311557377550854464401310143139936323447047983173703770404757972931742839577400231418431398507141191901638704970250749939276723788120395726364302883390456156768131175544088936099337428949915997688405747702695812544657646935976630954847209925314105382944931080111974219304934543182290222939128676724753357731103074093596747413698535760820229947518981271068129679527890372669514507131039779828472726920266512588025760376490586789528229642505618553547610884290634570436017890783520466398046533360845271021349666530201311280021956881687009392383218952584491679595521688278532732637469416896203007854880550590751367068001803007188931180606796480898053595138761891181184967576702459705404828034231937556540208706073064733427545965215666265910842275190678112241881984629134871314148068655200501386207098668015682291983876861085454217093948266929890288942115193988810348508307032562775807713686472315403951959866203093973218755287264316029315406400488837813572876204529029438767975570506735204356873218713708719967242799823996793909166961093846731450299906279819967339189848976896546537841603644801696406637640029931134142580810521916468128115838939775427744290955098568324130055222162708404152205727638273293814752576650976664752668253364105465724813951495901405355785242877823065477783829414479296348403005638320135086131428318977196615248720294306178949358573815594147184317353528681436736241092338607524399877353434038903855704324082106977206162161603915093111670885070827327059911597234723192196143876578765238193056742474851477015054536346476394980018748319652860862711567125612962269898480631682358659622951918891988251442080475677681473042386678856190464009445213874630573839723488590910643698189815680947584746286382583003465897146087957478260519249795246282685801672710984645030602194547735731854890362911776041993846273382310835621176273243522470798496811131946718529534101100664039684704205800440345362493415336909798018172301345375262235544013536405501782678008039410061645961848233453165482456585344389915505952475773391910076248711321652431852745740906677817614673198666376519419413196561380099596747954658487220623249027583876724795984721730739352129186837792238774218747588610477275900069250689444268802302933052639931054220605545574424090238750885125144596617980173389646330761333190701304278475749356345377609630719891992187954762213181372904049444597007984315484796019856784508331303449307093805341136699827041326061065175293119510198564869709375728037795809353680470732329423293269934516048239686825339155093645705426388762726491687032122837586628003157004139643116653491203640253577993439753962779248058817162913022865123081920419870761943889530537438683793820921741604658917602831150593529092659147450215715543520644451230144727374756943759969147009314719427820300543611344709892763399290073846298398812182013683658904950095625870417769172940045683748545596183010563763073136677134654460713399164755614544261638484055148954838719376797829329865261580864857847485728307896403263233667073995295290220770288798372077317817963964610098907951971489126177372888625369128636769614846044793643325301836560554614114445253518886740471886898399898728945756409490947281811964952022585464388151293393581580447443208934407480768420909085729846900233769226844978594835431129319566019907150345905507778954202645241942384612692569134426723330937841804621624595136875516424531465906155671973145201526301557257366221108174146497447777623732855362955180882028416507674217809654766315950217076382302695291846973264412972715958453418996608883675464170982419094078729833892111791338789464757539197837264405266503900219845780642124109970877992429171052668161076003047681560712721651345456174811830981271913411021549320633250485833514208355091277020557384753707460582162560798749132946785527772348356158056091338105486152588338825309397333165906390795322459842627553218045693245012024797252165592665464875320595150162289147140806530999702675823355873834355819378113398636066722885120651404575356751261266349931350640743540343186967834397183558593080025250495672942129953242133754530100459792569682537797158811878385727121730353637991383178177300426448268104661374250495179548381133146937185321844302280147069393688741251463479398673599464357074287652018220223023907088652264720228499810535088991703444680702226252350635587850193975492588533568675983397720328081497907716643608703607870335791885504179496268966912590957997576957071069073205282145241304947025911185124015189209190258235747316687368287623310134776880500808162790096869687621318271131390625958018356401697241829949033353626075549107694302987864139721050159430338996227974132452205146629069263392129706377797591747608342019023064830720413882593199589771031266892670547386367834021113376555724038666806441377052153337298093590728921071965078998389669113371327408208597734890742600377228163469478423863966707908867363707573492970284431521360818382064651018491897498057248933442040120608212158765364563830640993391761187761959375331438045314972296541212686543301807126231576426904465540914739782471799813183868232190861970239132017961125790493699549285929791250385133976886880186862460769793166756940687469396809669034006370667851008486815189079693130693502868017289330935396372591944409287278086780494410028844294834879011556721479035825670196069731933066055336198286616699480203108524471213999940108960514560563961160729917414534743463452168175039920747979767897294625694550739532070699702135446012312136740839846750844382220339803234816450446450526778493771964471810997534586017958650538368147075818473777100235638643422555574659279648278338368262855688109958287679160538470530426199319803483728989197753516951607283148571289642750161560532972781702797697133132480975782159722817736025549826736381261911153724099363001422935867998483985835847149937568205989882133920226794906451520202492495944292550864239648735534845764576825911519752856902493204049958588033303831010949221208060081067561850828375723485544864279046016700599966754074557368565624544554354635920629337012220326425334225430276209232744506471372666282008921260380233588433882052322264570994705835315604642789230905663720254086724027601506355518044665893337889346446463758827900885660616857548811099124537393903513475354270694805919285594732723775681953666173025717973179186736904091958081157762716228102749206350090302527023942533464955210179422262175545915823300690854444135843818255032537727007498464819081253059511832202028726339245214165511115368358651749325005734356616960331847205765249368803387519597774131461756196318778582133635009468553802267467957591194566310402470160556622818729348921622961416563946718718391742471727660773505979429834585428723469766347981515615758624714485151677926684384376021555843497752581130126652607296327355631393847523401726949181846202302057304196515469967091074842974829000667359088563102652398415085870130354350575187011548874972978103504877937187385463235382470697753586300679158473267795270550565926755195642518941973869942569958669372408266201256833185365699682312888647815512815625003023184314322535607786217549250348322613831209817241066596727255028049150011462375952794457064352682862641732812549516464508817621925003780312364403192915112724482107696888523253856524978344725089671135035891787838857645580288896569756305036209788393375013470765944629192338432993114836897807322910656831313565447465965915601297515867302889385014686022534069095848040797737138184467428853818898095843516442184300304821538566241309238688776633343298186968361198190948671668148527556268571339711224434210715404222681819269546014820629455619116794634602087550803345461860521147838688133787310781963854568022217570883237884406573671611842653219051171556500634433972464886328635417721700625179835197318182815387520625006241559923683756244068728831597242041480033003609142618450469709205860642388836542709242900616096134761151537583817333198456067209848232520849234165932187013968594462373806727644557221847892227293973139081101127240082648868036430130888019868182256142970257599136515719513537692380554920417057880521639542256176382804707769591781031620377155712358854692539161616575072666547233382415854842218136852927523660715767658450438953833510520134515515741727713978374755682285941041772561307334256124654814789851893693128751122247323852879185592436728731603743054724179353935656120479570851871291774493760553228442280362208308263622186987593645433167220939550329190436270844350238931195913492937183584057327795516177978685582529356959670092543746240255933180329918145746081969703470245405708896600929627072739605386771252461269673526952987787284879327090668443903012693014074237252671199587360995265980601164543011763287552174758182597097869579076663421881866573966974773014936140446152265964084548860927129695909173034999364435516900311965533600278546363688113104072596248460684922459925926309801943448533971476151730498635097420244646580782823403354387400802602975638379630653270602027339419605694245910872765817435807806824650288419906871433837869840967879272758423927832600644067526491808849514909897410480058752554168135455471588795103519144693910414996554421168199837770623709236737114298623780619238984444913723298600863846764663669560089959902343795931777178176536527430039227117700297326863500790152840420037036591122233993337004100078572183136350279094434297581323967577367519857177901697152761360276641677413897868655429905344340822008731973303245138865054906960418639207151494629071226577729222927577014857226991720007701031794075585242130229906230782330955811361067678519729707277319620453689557765472057552848214707721304209444696249189091292712634290339953481839348020634824499580600307028603644764325302967901669935452659892160645659540300531238119276428894607378730748478384411010650925689930257371724875785260380287842983975844883552846462299175890922023371642969456046857413862337735514684118830397922216617189211291651638250132711540163575342726113465454065290685634999458892534567298889644958035736747914062423240944660286341700902954356379212946091197481485655663765990939097548012025652204046557802432933536430556446424014974928299890208431462910519500437845525932732790401733051143608506740181818136432551428178189450640890662629386273064267005232536619392400201874205735355998678040907819492732824485514259401109048590115376681219735247367120858566898581550872736137136716758444996403998750159426210939150098778789499101219906862202189039642126395215100897523337443051885837478960593404201864413401861764595810904008122847227258326160129985102669368831220055640827096561608304313998199485146175923090766083985121678610369648891640302052583957189209767189143963357255790910341628441864667970172213930920735476525647725219902677692155605437313704133240021611627078412803087358810168900672307455114792617272850377236800492096884098514483486240643750417044095239127347199821461404578643149049372776358109409703277250705879044057559872672531789112600517731403752627485094765901171074228176310120714006461491457584621662651217720566669437614965261514166817179951357568241817109753831714681670214241941181460102803335714827622494999015381173494364592753524320195176218206017812117583928291297842734039119204104445571555856910964712573993315698213293001181281464295111407482284737279798481243452878979065904147495093679467971271878539656874177668605252028541536277042668073979174405475495775202602607792387310124837385399278227090922009303916952527179157313090766183932116919245536225656111390761873537623886628250705475277000084857980606763096835719181227900765959190037335597889830682753489362534529109493920639322785950499284162870694947274937014223529032570153552424799857917433379121518435973020965433716026602134389070513590015113526177111338956607044881184415934713882374450159120376827046907206639072344079215301243893698401628033119676886988727314824429122129120459828616008418490238851739109174740441225033217873533166225612543349985244193614413589065261873274390124620268513170781119372573462285564122394724343088457186233869626838487131314648104760377872778508789185680741243607492001739752510915537717142734967746542872335879696881939290575388197560136149133831382518808920357908739009899277998552688399417181305737602601053888758529925249116874916559922810078594011840410733675319430537316964496936269770292648574024976964871047495433798361482031393097058302222775242316075085603255767015088105094433010371439671492293737600226610847300983332403318076989432163181485810133167288855511720188355823549587843454049710581965271668700072421601141069057659969517530730382371352136769414892627725566464707764489903434392304636597529119917039394093322275740246310820001675143499444571855099400517056417565169744124551354948909189392124162292914478903914753089686287851995554084656256424697440612487565338090014110188269424790440010761039053717775669573823172780379871120646108116411936069468828223846517655808879516437422297053032605118899136382477991042696418565484030398099987609089879005699253637237718862476492199699841960092111058431721028102511144972905301019277761296320601576197193746179852427475126408907847304703983334487590462839438462211402512052280969898056202747099579438529337191484323914984926466690079743192355684188748308144797597589247749867321905240308045966759430053206759227632691486660949434745037501892195058700466682799163577359690371815314171901963155511107196376215461076803969185624660973009646176288325940928938370959696049788672722656143985138203339325384617209270265351567666719011996638102745841419748497548049851597142132413178715393045165576173648847508387261923754582283018190488958754694011396125105479540201671951590398398334767697371821037710518149450029174092786604023236408397458165649590909567710999326800135047858895455846729061249841071469897510575407702222907695941798797819630386356554643810994643462997775503636763960007228853539204493889328815535113173061322501341195380160461562245790372779824642230170451647555030310015035732912810192144176431146564710745646869962902374662454252104227837340650799614555073015877668908128481181984150978248170392212722753079133530557410166568054683017734725756515876509109085538595607096920406938690804152061285691164867946948343537285486649585327402262877746057710281864239961936125106371687019837261871983333759061680857589055731801080959535849819999069792266315302268496922807323100627659028072803435646607894461124645561859092721629266146775012351153226893661420931856315529609807638500065546417580388686935927388312042601079375155972644655097763001081943631582651987824094272752474235009646067372686630206094245519780372906553520542996128044237319630401898959117338146305561880891917064431916557989267121530596049476708672953899695670727612103141397088045968369095659311399515702228845843840550324132234714013828556035267669467455126345666091792356561474692615728105292146691309079111781611347481260499736912345578388039237814974633629297733059380601278633799012363935273162330148883913453129017815333579416751847328273196688354465605090002939975280288940300521048847214187709904249300416720375121010850385870484637680383330005925232128333836792192842927734617162071241376137308368326847024875887494378427897320971132196012049802217928604258257074250156515808077828747312991370469899676817937563279273631758219096515185229736638603839718110989024460253094884468873187813061934044502546980630738751906137690623853258008431126379352896193820763609902092620821888228138649482408540838919539417780345281355457782200754572166570658906793225097599157981270263344664298910408716972508946530695981091708373865705098105872822643927103331011929677070546491030631812056888826515663572021981820584226449914695214446328725006811032276538656077148640674452815391430699759780933717447047783846842126318618817290621336321617277697004966175362372848113856914883404279656302897162208336226661977773067318109099242623909228856567758249163764797377627323587499421243702689332723387959049508408214303531627929243546404870527539671572432484212564771396779658596505739074960136532174684617653395905960062139489017775504441481041562036739375929118393894158260321736649592172656807218979454890390993413652062840968060316832148148446517089533259255233841313042347479514702863935226024082467499854306093697216387235267243494723054728275519285686875948615053581238262083682292073133730176357774516211064439410245197337644800787615934628797833958122053566305131060863124187907795882419683943415112444275607734141335249520810564139964185272163102976527758025561347331536389040999381857087999774451246788155209927482917079741294012859203813657241980587303612673625099696030931268565106661394327784427391733827644078168175045408757195670044071222068808201162582640549687874071209444173284251695458009222014935283762170489358536000943178227826438909905926050277244427166456209547684925456540820750398219943327258699432053140869253252800932641279641570784539459986727422541531149351400801146199393385214586172239736297957982493956080520906992827118415958794664407823754363887936482587853907040884911533766162536960058731177515655050487215707413423507156479388833935300661543584540469748589539227648393440885474330359107041906053701323045160802023657553039507559752183925969265269570738359400741242595355948634670270048336955531007104686445482029034457520910155049545558339027269959004907269787623698791045162403191370754890394208418683655542808941115123709273061794195764471883347707209576639396053331631861990237751137707829901191484112720279659445897884925000787503115394762738520772197241166650173778340375177596904251834053116214400445991333549432724727918734678195404222258667215028180180387739636947366146339130223529122153896501989796721761901949168924181681821269357330772785504855079617235064599578754699664860688429984704458263481541805762407237184076600246552401708160826092649120530356904980628567404674684618298305220503119617192227346741732072248308653256531115854003810127730459431522971877653984418038777604699230258687859613802928624903572034591657895585518794035869001890614246484059337946425732260041241403628983779727183927140614241140883548738187170330539777294419522184529486386155358178038059678742925585665556866680116227767694391747332281205307848174180484480099944519501126965040329890664324128105831431879670567340330426280732312119137101879308477730162941348789764708918180314397088361234286434199494987723007817378642020860991963233180499146647689939811395175029776621028899398014687668761260728992385723019011902972462882838511609752645708313594989486584283966416406398294211237552188862048193231427951113625399141851447324829257581190384009340812820487485701427891127350479562156226976844070539518655040348044863280065170519846258969285187748949383292204335424258895748195006801656710253025017485367465614585191860719255860035995983802360794780458211029170491954477302517384310131064177774608697180643400133583759616037279625627209866975781520835233634070582443108726724020571418158672105423426564239669905239295681296609165643928124559406178707404401983740062221916153021256819144327547286582227234874832569575274328247132327906848556353766296895618963465098003078306684399977946285202875716848368242198118952244846665493632735501536288696035069609391041707618147671462681162576835044717421708140514870691173874882012686561181362208868090867793440490752163547673644362919710177119636038930392689715209399403696441296236218841150224013186265787764418844743052353128371720447406632574801239932014282175985654898332058439307159537259590444771781680081318487807793720966755290450862621222140123588160219639339808752157443556179420072141556891278614896598161960889564481208207016923481867792729759459740760323365791793191212435945708387390895149924155953720740428289893055368893223573984146225507234187812796941397456046574004509764694104709383073803484231419648119945051291422387017363166815187249748607097557205313309483062618170357441782732947585668645822719100310696400724763173533655150366602376637729438901813541330860086492795476446456020831545950238006048371609094588547493168125345914041236990944762190693508889398781924899748378111371184174683673583851646960401798499031448440262314658721114389124668758048077000028485767467826270070732132967140745758836458403054184781073156162795950189372796961781073412619440009716818389141922055763873922874046589167592897326454937043782385983026925825554725221747189391697063560195756119630531174046690570552404176947944241981074324160257281320820396733891906357140213411475611753438429471037603595470785732923673593365871639735032315040895255253850954497165941663937581404802328402577299331910627212567001339795853707367831650306844554179507386987305436578264010924288444601517266370238194811311792406039019124104641727870870105518714390307988186032847662411416860254410188061861333186718627172129062981721233754296188683693149447060737136269498358309552513539315627012505560923199449310880478385468943250911018051849536285148337220667389061324058614690369974182403292270295258892122736457401526402708383977856196875023084201424400158815271576283076701199758641386887978083147284064601601030897987452680646551237399421043101750235615555490448839883426439587583052760892819505887992266349672943640942147559427335617887026507498692638506088784168475142895580914206841165453025093440389224278988446211055232972101755159756557042229055459256363877234195127043475783640443990341667692134117712888022592755869731386363733950447328897312384488533107714807847286876273186588463875344206217405473317575621886622328082741642178087902379670910939952100639171032908863212588828530373210540823322182033980651863111286294482515697928042881817268683870550317612000983227158737569464284316540821014877081602242928660943846826431425577490909419744554753753879067171667999438156215922347642346602807059739377829305248085259322175533231196106633070548376002628792939909128909284423673895208893642000169313745728999635523815996253368588043975346613937825005802893051103641101215695528673574635796932472690877068636102206076623942472166748135397851693412074956041365378518771528319628912658869218768065670175181113564379151244915175226782512251611953656214694495910427054906387429374262102742795754560284602765443589470367743139491995231415688249843068018894453193397986123853173843431689754783060729951461563611065271155826408774969912710531837010165560029116087389246848948401605616978932915636861488367597160289634536339433573844441140557542963439302772266409874514502788690033725842904578172727347927680502179768114917117825683992221737927576128356139579562942346474904510778483119865799550613974283319890153496636996443535509905264254377802486971181312557842119857792677799439365420181094120588330013844433844547499648410231770334162872537440940584028518243146586168904589071176930657795132629957053193349300582889179854606656051257698405213636122152490804117033623014300127486680614265844976762813162250313541029280661393947623053727843941764692384761148396024236523704918132134495915551615781530954680703155172749953745824961691822952905218254939501122694272187346081954512067022806159100729105629263043415091085509807177583608687455904659980751074899838249718669770377394363407584215872212189590348109734640341861664010446869535470754091904492309362177858228113592505149953678016988421478797359531675966612857434900973946645338711098389218599812242415024602292360037959185316016735156656822611912988006680408421583061935580528348611932576419800958059903212483356021269654979185427519192443344947035428342634962970376756048176419601474724648637196134128899554879572466670721538062359625050687509576655742819426172159011500418717145445999973166927650420279318127699379314379978278487094098460223432088270987328360451778305832870835566548731606698487889100603337780218668413043270129850058522719137531150061179435002841126690972577495835918610809281013536577334416126060328451462476354790357389414168297499196344682589736155604957006518793835591089186617267324400638905398737885316698982291319714576737750152293419896266000081272505503685426026508378605851219829131100145656934541737590933454305369136383047046695188052213382692402629144019549882370677877599661785383513532166504306875317226467056726463694631609133077278464875724954940714016207397668526494714894568586394243505535337921869511855454396822477903046122737309252695740392418240332718723101266057768675268363162980662037077511569545872989101388782145469111210751196255434849008972333101415732562078267025425074639565199688503121610305432643781264457622515197932588672949116835778641573087381337573772286340621647942782182077266751696564554826040943269222545326511406545167408071601834833239352663779233330563815099401198878975431087811488423440918276234505961559817482210419339103084667121551959801963567990216865837270066623425133679400816719587475219925768510927831681001890539151665954746864103658152315373944853569549433434158075146101279485968345496856258197542503841391233873275816165389182533977949516662722423501792738244271017543315541000705268522574948337032483390582442539074253976948380033758398351890458523344641044334151333688851497207833144044419169720389400125180655073523274941288841278183289546932281561132563341764735868779735704098801083084715299361068698802840626031165930537600429992213927374229639949717686671842062389899164682904090703473327337190800157524126695896122673062437864195838196053926354648546181085599422084112318973170224065807298194794438643303916240358380955129078125224110206092445354009647368764452076209086480978520831823516502826532689824122158596236584400940896466740908393758887084806727808737646260672827605094846962084342060261045402876740812386224627744030222868629084090485707834516667266506809684259672174158588331260428462855297858618323409182077850076921733461623285030284723151254421436900683104778785206448431807925159027839422319109396254624311551671855113178408620315678968848628031913958837240387872294996524990295689455997991474794178007993597136515127499660496171303946951606643042891563596757395102642965768396323098618761613936575432969569236557580838956374114372465998820480411221387350296570946989160521708096312008412111130536878276730046796242048684683096311143295501086582199390960944928719096929306202230445270053539402737079073741417686461946100973855767211085679157048782084616131558789493353944614060060711404561819981543281354705054760209608954814352510358370953554043599988746651873813373996007449797616302497836020380398211321454613123935035154034726208023783831953462919428024952671874192157558040501388623297519934162696696666205049647817835563780829456380230467000261108091676170376139297712533306805127184802954659234669694888450479153497121109422761826537481846459467291075978311730745736776847629613238209653692196466690933407433550653414628283632448724207555428089940048336069854574818685294503321010389558656328124613733576377277426878469371583344837730310274092298178407625304943284090501742703956632887185918144721593159469651146990356640800371134308485852949464545417232536524411349118768360932562510375277430523182331966785724494311395425154165084218285416591836456838746897910437089798941778475056404031649717523570942557751352831853509861194628457415587614987903037522641663618328900638855460053339255785193683631392603959765624838563678596032208146677363903155413221125238784256432202123082498087648277847395131563906794649105620388968022499314297565288694882849499027109962141896659934924455633272475266607973085554322526319351077883446370529041629559150048901998463467793403047948933970333063897984185764773073712179308984449312652603484458667937335083500052153541348560839280468031428875740299901496930305697495881958450480604030044405214224177052634085838879828381600316654163195138672396804850505515630036238703803106748177009951322245450263787430274194796231049143063128426911754594319814250391491776500139117068302370072610521680815727196824118299371148902831313430146144880895472311503697252416222959923731672019851257910160034215424252626731658707867470715270154003444488980892389587852155233912312284161469405422219367927931151139652476925962193101939893773889270470880754871686539182512426705627466486985297236950809088470651526529008440423159374678592850758397750935754248661963909667213243697044913423219862055965730647513926696584723967554217527540208613234682222490899672654395193362946240877761213643345416269225509203047458681804760987469572067500696721187023206477069764067117265664458267537985593666423825386649848956143460262878449624937482373759149140226402285735811312857100916017996677960899495328192697950308210579957959223977686328089358311338671395920541455265613334898448322482308697274843616774752671919965357292881189433480899059945829548241321754902184699921371447281415792207203773856140133166432252256470440718820462067879957188636928280554060363852554195011121090567206149987512876324615274707287431238367243391195524978833193431408744905162447074682751216412214783286427999295591602599088633913179849353076351521142306139459961507014511196652499590269375488190131398202338382043875681137005088133080017332950912683846598799686576244276925194904776726564155103760342930253387092002096865103348685015299256033843396889307365405711720513496547037198385429338805727376726578454772093935126461647659136819120544533277817226726358141339267788715334858405052171282656874601287235597371011299588941041427745451967873949787366903979845090280580071527186842918832370275827921016976370034101374256741872097455653407259570830140221557935082665872699998051138340422219479158733520399265686067810963740662777000830716512304679959932002442127872718277595204177959155729302171788561798549091247707519839152016182449669607576730110274298206537065730760010989465066998787219447904594216398135686711792779963400037495992013340079908130653358044333946687055107141939071658473906285363400404995610883705046899554001157805498718929637501008307767515565479925727341446684893457037538334497428520159777703421071711187172703525913068991664003114999189753580357794932467276618175162573810920345879349337192220887869103333622741182219660219958316297728341012362528221405591403496939828957860869388515229277960032105054401087644603672298510121675473767927447710147349142085488299078938073525221477880766223689698009703391392881953503273908171925964076707082078239328573385545302321942148074175432085779346527180396486432178985366741842353722179232945693469904573520202823773171974964816137031795868665200682420268513379398118207839518837331206119482917769823721785683231211128287209868235697477331168614621181584176727545284047969711107717088712826008786508465138128016990131263343262934999524267023769303880019606365067270346253113236809709840028118520059249849402544091157299796748884957589298390696852980752382794206789797106555476590987814245421115170373133791823238897326886721408915279852397619179087006984323644390447102573204095079063745533877608316988076898987981901037207780973413387089847152780758291930274172015835230728245814685280238426578039859165147187388350496091109452436832049865205314149387499075959905890705973898706346021721510518865327776366738701175339753158727281176589132175124930672990424083004806259409331860213304497985541154276255789506390368122737634188370335599904716045913528229712268455208378615091160527610110445606660445150429852957532282471088671295362038574854794563673420313044883426069032195991703178223726001003053289047155634756680789587035846557864531292376088142127878818139762834251016936646195113402291172361211193180679031021773392833303610094595014558385507093242809800947121292208131367389866117002521168000409983437133613478634445829253781045087341879917703608280968863477491793438904722857204743513951842917058864871058978299121880456909990561363769036927804945246163719338442046214920571969061117950093863133044202311326799892001891470237808408254001208412361892988387987000231393928783779923652619986663066161832803165872370867360981565060145670115754987407010015743843285437183501693653477746091905818078742605208742555374767496472138071921036680670980846415903564940576793944771706379724358999336450420746504642169732425660091726551210438556929519494415725803340350404741748536700394967446654736056507925743292993236697433683565816343070530283040598671353753284777440895213770547696989453737627102953455085932230893806396011855216414318074356908315095988539224987889001243163006550755605571140770662416877124601310037061048673239538552769487614115421430086478477330246326016138308772089232044636623556714463765619447662068273760975455557582709573180106522537936044417928220517389872908246943638558921951946925772986243076505419833328585253276292664217609474658802447508159687847396729691182480703599239834088212568010703029742997079921707342233682473937089396027508346141288586560345582233221022680800234444762733699965935595032633563841158571447612539660824190988820498850606699031259191065420899814789462254936732043845386554471367501265548477248344933712338020911880039884447191135667176525652793323867181039779059839013754490655474914342943405035713220570891219815820093584393511876328245061000927981638166620385521134675097019592551541304670834929507369667710294591758536052284204190364051844011062471948888788615830915477840746199019831145195004512938012521719559170349967606557810602860636257025082197390238366447592869566332165085738669960368568220197695790166042006543370588049675832815723921982098949018158390451492721894440533569640634708506684860634135593279996203290664051811123674995657240643986422483059035881800636656294504530271239302695137617877609287397761323945183311833552184245787682201437059278096158594874900154333834782052799875344309006324913559209929975598916653434445447138743102679770460776803791445167155897185829725845806838408101460555792317597872648686446366866523804383373849503232920893705638461625314896204039244062555482233100062961388522741894879569276315401695873987658355096411426364337884233835238630924245674092243385275911571253665261126612528199744551000838084549342124565561402022640585930378068888293498121854572173868830311634217585211307202504361293740468974932444602080762096194933501775395775398031121210742729124390054521300733613208091639148219540766960615518451300467064189436048127884750534739177842481256726851652397815108562769468257479565617190147424173280892906010074743374266254969230868925842651388061747851753724003680832163472934313711279274369931582644566137323845371143993994181730712981949866415708929468103564272271582904097717001611801608749187027494560588515578362457636914343285668504530664806626636800101977890100409917714189617025166646994532187097530519582016440313917531540757883305440142658345823138519830313038567405594724792325122064359363457423392501574468876269919924277118872166470855822099235092944875665611672720642453416156069293313875579538525489722477827559860092057326737710167233502306591286388013179430029462355713976449276340126647890298914023947324213949702133288430934223685361138882469388530690958400509500464744518762950337941983904818326153717531880208113681924155653285841815326434571063024969454187009621289465447907622867084284031918322032044659901218803421911848631390387543757284954103280964650111716476125353507631606947263551166445659855735397714761355996188671525901713454526752927547726360121279919362799397012941275725596815622830408443335155040537064333472142735898149861139261959520777664097825682865291205688747000648415359788571420732500364332223114410723570894260305946643755422317408379550005420130747677736959525107452110577668573686266745158309289071410546806106639166290817035630919626938922971415301560480678816693582789066547661518977932918208761886728499965467933549585245580090057366940203436147551881545956235694861066040470057608256661046544349597891999897344830727279406992511893956718730528816311741157933362876336234308095874588905062989955129282930477457737996253832895465087828158957710543251458999846545748063835332394016021737713875628915862637307000653071348040546501951170487686747710919667206044055246566627263859187835300305953617989079393438520285007302667003681002704858098636773919492937940404816623054571438278024372847903789218584776870832728806247942834921282590121161330123929228231639418375496446583652245404436245114960866295652435755108564497204073761183095048692027009940096131441652512702556396617635738552326944143952615366443298628048662781631048656689991657326083656401678989585510470819096949460799048861243948660184775919938970141839348609783005094347989085497249545569291230071585842278102969362348597946870098836029398377446580564980568567108414367079714971030614382038918807499170907894547241138983931147887682639480530717043933286753692467397568238313312600464274773891450702460804526145137115651568941695789728751717680928761008626559428120910479603709413722706637906630686558587282848049675850982700417485650964806475448928794461841260835968982538901789556866076407141578921991730620089250031068034879975036735278898443175606529247615772863261885757127130823704424580089886137294893224147492104276202663946121045312640367876648861535849625321953386652346103620437578474344728257633716404383675674214100241341812577543728096702797038330981642923647872810508031410883481693693626366118320829361965250773495511880774709180160897396882648083217607717037934640131504624027250185298894432279920016811519011299757707839761208480012712624970656132994088032715247308433474342237161878855796710142214863925238985250058001889465826045537799148654674215986107298090914183039763768596738648421588738530832571857114868729648507432820095856042168812162479329821535084991089674750079303228017267683053293198095993355686239363405344021298825882433625137480084209237627457750300382543716133209524268470180300000660088539442941277478190195934354626550549776771213828996565336989450916157468323440369600921381225688654409881107518295553021343240877462037281484650797800622644701640326694348522152787607529014190323010923405323001315809798844004889216947959244038181083498003750586943983735977224268067686574778026396999432916882619988693001187398792001201770501489096210576503909618936129017047534268083886393959281039881880215463888172852907506480091575220542341053645725323586194083684417012778490008893141924929033379451660332867798497239270322621458054801790703864780999022424538193443973350294650252485553322448422545208823773947471801051047498104690880556821218669861475677242332012561919096831367244863729316735696249618257577159618862913813030183908781575655798589082741991041328731622659859953821866317420838873153141612896149203423820664281334845874125146975960724975543714127965471991704252007744464591270152512370532242146856385032357325867392808007894212553616009088060212219808250841856550807654901671264686784473736740826730945275610075737889703020414314931304781234578889999473466742093577041274209485180992066396004446557692907245871467290472835099251691204045248614691073696304359076812786052717688234407122526299643308431011866724378970040535879604717480602720253633299305830828075080115791807441078211280099347221580901973158515289356336161859039235031843424086606715990804087209168628649728128889015234096317403751181107374020620154498777387075980391174273934872097009731562702911621052625753679993961578102415109618463116816365299053917580832420098457598649755125908483822511946457503056598253140058649511272184218492847199702641721769444602549586640812285439872773420624646844959247785561728929041421797788386198906984060516958577101473144015426449229604313164999511387631392507767750220364642152101829763794111394466981636229318093528983062268633095621495404414598594609926829659224822521395075097070632148699150539425467530332258810841045690004397503763443474902664713839179853924065566289997667005340612998233222670782674764067844027234219573833577366862822109546777474916188751782222974321334255879554603070529199190045676557927800109791065754864815300404862488152613669699488007081653071896016031845591198331535040854340461827814789331819268473281402952012955040800221593273291791175853466019387515092031752418394556420472308800232504196051487685501546163335125527481887709938608608460728343165349016530050241960208118327215810944394760154711848620610642597319375484014049918176546343113952926697278024226508151304574978600126059758647715215476263981444989399939625761126754927750814208596851249940507648204332530211217423487357921487260182024254012673815417106362582774507713113625718377079031144053391097501874932855918860403266102577399298144874507205804602323013076706163330829013234651439379272584017553247652394408259695243196400020086452633926418108044782503388742699494095259052504165322790611500576698195337201616283699589867307357949058987990274237220888764609236348349152484376818748671816214352031010091166170920032338991605065100168705907378810398211799969671180445722665196451092318743588271884931055838233076425100289403023506184621631582437302706024745651771926250250734423004092322818674773082132988143813923401902146706690442138154639416579742088311657650228460031918220473205603982021692191492481375959113111272796968849014584278136226258604983157562041806564952764615901392556377539183725842247984976275925999256152741148445242471435030720341978505738724713093606767711061149453509553655226947379717597692009035281172221738260856756661792466299568706424879622149789956669625925225531049647157993878286958647211730817012162925908753988553771345369160798910353475617766154760039540135818464590581541542794354099012094083894787604355593093321927624012390386131148747503319650320108510881072035655771859220705836629874673178379602783212832281181323248269105705406922848074125793724027117234013655371169736816808792345996133584256235788807306630623333056931032535081511669198345321832506111199957803598574097111856081768722399497028838280747917814578573376605290029129588265085089196872651289637425527148891104208463385002318888386535446859427933636832709851461089822407092403479130478276757569649307040080702161023093415861130365063546461102528811351224245741488190904181160856880352926668689172855070644893452525278440918445935125532265186136522932772730708714262916238512947878934429397150447393729056923345805129996888804745538711301687763949988842443710624435244435274118653867049275244991740743394250693050964279035433671332753256856368099653778171694607881506316535682527530585549763850827985530920554302003311270794181068016313406004304747503543942968312964016560256526916437851301816448161480891592619402246030339078593895353759449282742552131857842078517067096367229248989711909958938663962049905371005860798889838838265060588669912258353382798985761692526944581139650347862376588349102979301946093754598218263779716354265803655786603040648200590371103475691575086324214903038562967471484598542653002392992641352212528052400946072955047908712170972145634014291972591366971828300557123161576692766922526098800680576125770642098579026606575430490663781941860426722335046566607204546716060629679309573068299180318481770530621190165921406934560689378371654056966005797475251872939251212732465900622486488358748673737987482523193894055001847755122836301317834398174296019832863391160020047074892562052103796583202165701614689269135030908309404836426778683203399543416784275061913144894448446132669078771242980372333182728455536395078470215696252265444236078781029596345187556998220242817035273364441012046055531587609869929968327337599075191899221760595964483169860370354619662517038302597813485166081778512023182842076051156971136514706192688717993003207688306811532852911778585280178627523070897946701640925819221737479425219767014850502499195532273379872446866339536057978840561481833690238212666748751561609065392398861952317185269724026825327390435618403218873014616060844231485257706339631581967983625561577741199666023981768811456450306280588427282353060955143881331473311173061261324735093655674725725301452045883735784579303639236620178193078320203429379191971381727119750406404192203716464340903988684244553620985315542619082624572154004766169407786461007704156350453466173701039382510251463197268092794735950235414864481736567188006308196214558688347436221533823493434365377667980833174338034939363796222147076253410733478684408386435874920813353769162937135989344805812711356599400649009346697135384204092099586200308117660316462661080824633600152183322791196397578221641600020377004403939704867744012005254229873717124448531283575972380685664369124923736772954844515219880867577414513870812318343974057558733784523238859217473082235987600486244788908419587514214851525322695501103015766848940849258268896157009898410776503541365879038776690321174797877512709537685483947301528232691283482623118167291076892323229817899125931138522324937775442750756425231782653515771749114235093766234027032923485665819535502900547449547692475442761337345875604727429454881770437084619688080173794580695221332652017029662076654324439224383743004497831002288993258817896388514291527948693999743465853037233243780528189210069617864745949110712277615214371767907588041971711419863153191663190594276349348670883932869165428724641627619509296647395001849476598240874646980412291076422943493760475990444836748435887452636776398852656243766714831185800464500820207946864976034148940736905898465520427440842459752917999625248904053361520602409919344511905918930968636288093239489923721876530035081918220941914439861145237284659666095067974569498492182100882591036065879002862677498080741545898662214150544857144155818621389802067704089979745052224337763239385652597957953201962168103466677230006958801001698273562103348134465898895209528366857438997010987119838717893258065086141398157212301054531236785944443941908375748680422570727586312865814478086949870157777774174028764685971650149374567889440919912987626476895492088520572759351913900135791138622335950390437834460707220881264620921035670147439893818072009567588083113559639147217563464486143824399137814415635632386563354386225073540100558756812659184157098196463001926953520242899783794837762206169728048931180748029170174620646336801906711757439486167893234330294035699362749971479559112868122932599511754726888011578882697760624907395447783168401052088168347279608188826695242100673749492270948675443259488159825639405802686705835340037253366757017360630975458868456769914106054858880615387487305542636677915833185310488722356078552807930047026310747354741108936741861123902112223538507433790580330084854153431109706026147915682045856657029275372244080396582097510164493589426530661894992858207751823728733343981863520549401017112363383576472805436939756560936907860708992627191347421514993114892449478760554950958776446860698611643576358945237011091278067205532589278857435286522024856896186215563112360563085202118509256907162935020062168715139290530586785629161309963037001359953340482718265694870037122605501838424945490650487721918906587753637450817703689121279566783647106286715639872760300388037365189323093637156743537580466014556930105817125781255148553146832491994681816985177072466511466531546059722567786270516877085893881394321476419278524457530308675263994675896556958970985676378578762342304257400374346301803871890063279614563760923256664463471625228555787397008574256692147125860424218382213395890787798330049676595729641587255116831145934696723732118985142185192901558284454946842901413605409744913966171047376261001558916922661079788754556761393612803363928732123562568830121690568416921517176706474987432332550336212144456566355006069747033653446802489513758220282220964234442253903770084355469695073522885584340499725471492110686915261117114891147606873202746852612006159775910818179261380334751316810163478455588215663900912370177633280156171277417371993822550831250728014377106222860645506106227070763129778383661381315520294358604429716231090151157374613124303561230774888066423394692145805954534750241812460918881718705960664461999797620694290853224137390157539301180124415360563569592549347575555931987468116684891703776791607143101627585555709129074957832083148175266385690893350706964038420975738185676595041815880484660345912923236563558845821999298550748279260945013176442261791609679557946162351050233681202440358155947958804454055551697704345123379122992133434099423390772536363822227113484215840198045662975259330475296822526036497491962649056278183974296268368027146312102298399887952333793137624135031369377517106951381207850918209378365385898604556511725457709670364650852788919482806846861794609832168822641761258146652683883663438738709517022552100926372636953298438414724978287010415114498324255221572341951494866080560989448229220314650520234618781595154238018570560878276718593274964636882602392065131884344552109111585791510635954044541486955926633628770951145742877168856251224355361217150675898870486672090823764218229465837327325464692813096471709862542871995916478331589941559290319920328499310676905030993108217301196864086020138793134530683223815370905799832037640345094235614257893483315060323702816083615604044026073552296131685495415297287035256299719171145955097257495010143744594142757683468262466681580082969825149745596915181524057258578079740631127127964429424375300981167024938735936730029037219412230222769256749484891825930452534221863455608164238391917739339791870388442030914992905919303193850030592842765472336411200641785383186954237106610742876125117878743118476863739579705820314065538168276028053075968242866810872592018883237805849731783312146489632313677203010547866913091260924095152815516945471281680803120004424212512042989136556840937872693044341216987020982515984359083598950767894012718703310568900507865542899392918929529156671868944232134298178026212530696904145524017109187298287977985847560093052188990949352751733460656623616435344773548264299292757390171739966075982383773338245747228256934255241869488561259440494066846592142677815603992016745694819709949466421335730659651903894886155512847292564927384567729227181945711681103493790655014143196791099849765186471575220201243787278098617786696226693136900278870619556698860122105902143389415564229589963660354502461454687288893032576844350811594049586145042334223276856973212653651608575779054433481255621768784073651348906674531224038279781166115598779772359234564077413462925742720256779089204199892115498428092225385595477457016137233508555166767702966039249294333671041310679662288867470844209058370403936334153253988155279411256979958235077053987977985738268309291712180031110545856859900315890084217099268162208963964244928833597687099242032755911147306800350747177651909194957717006069853215067256593299330261399370464574008736267698620990652873159351473970810457252940773010607657044069222114524454365116564602408609992630722669322751596716357987858137612239916511478536785283199423196613810926501577224124863368712710003051423664104165534198541510359031535623445465371192821531764017134078369325942606060440537347077314692499489636643126803518714401124041742013185700794754978017958749392343667869952193247131581464483948393649369695957158736073847506500228460165752310415546902563985834937342756013150574680591359396206246118714355877936068937368298213164663638475485855859455442586637461057110087638099067047096995257930901940887205019460637134065223829648534607413817985628522406455604036672914625200118282803840723942617405503781722715731639062629901397973744056335733028672695714082281801450996534692980493137353056515680486780659587241583457899055528457789873188276425784531925816290281846902810654215705199153891315904501060250397665127348569825744270454029295101064137781157188701498483930796043220811225261613913555152900941384005637197031335202811711883373672324112039735658474161314999160735541440106880231718797044366308321825043140411282570352935904835603924635774629525074747772188924513953300517186457919041306579898108859215334045720690507687587334460591895478635665873295335187822814966287944876002646362251977712056659456259063817330467584772132071885075573599962872183915886404070225156056969898443178803364291090803536479579331576197471155645707248873743776219547644669084513389351063616229675296864777979713828294387323432394240242684637889621826694396936033963269692590764101100035300456811494168131682776637210441919768386089972135382208633423185622034361078898315906526702197027879592910168351716130752940820582565615203055717233524123547840797766860692177612588578688896153917232636919784694906111666452916190419463938520285018633141715150126107620815710345416523317986037230400543812451147463178166207802786463550493028962709092395043739909602832794150584228837425690510982708481674636538365380166359961892796686627559546604473861199732117179457059984847006631146301113118803533182790143827449096600077468652974331561697862836287012441417644271814655548822502267188972565189107151630824020673475083653715502514300022915224844035465580376806808510671901902887064287369010139850552380433508068098940821905743656961202478762022450617386538811663560547972227591027483424926491789130134690839554534956889806035963684435106670233237051376552083590809966264959120937433964881232302398772282236301314952202258441493973191235212323274489811405508788580629305327332530798142900940035112907058198492968218459044651455270648226980288645751620143661677363971775867016462646266573134729197395486259939305432459710314589850367943864674282200912644764616540599031282354066601383567390177940308614611332985734483492453418646154588790634740167060069210529481337187312881815855307276289157536582373027187357370723720513890361640627012646587662596442118874881603628629872179274368497190191045226824634477154752420004636107700819671828809217194516721734112667990354828336203309262946012108171335585787155613551369508167503887197638238818351677813562249336137508909280590612555228108467814571586251303202709928345563281424623823982929100851389612445663845177441136013764119255015513138758264648313054324984109540261814627175070152950559754653551740654382536473965030051653587211280435801039754356502322332792633995747308419584118784342162096760617522852608758004197198148685264065431807579220447696179749618734657962187533054678970809833341918445050281068566335890459657451376812066661900297690300127730349470032682893822755692158671204104771088619319313100025672817045311574088106360986597949152685921303067274981370649081510342192109776028765602334308300860194240199936815493244256947903021785889314077985067231430209274167937402636253830322333864063763082386876195977350481441634754207596410508110116800520993165120384458462113275778553090331339551857755738224706058002765002662810580049163491904506593683145207201789875163285158506495460017939226542266360915823933200963496059506272374246389591076572412098639513912801198653875328375446001805791159149717588609921394019707606626645958625849132096009935899137378645467954298106067626485161466923532957436938993203045493650936511235173775305580255355755226566463126282741218315812229314264622418331271531504019268072607518377590000261898575508460098943739168834385046016240152447245229290511953905450015754223306898384087578976298488497178755653914101170082463561194307607292437691680547222001389426789060040465429290876593011754322989782844594002037477488040982837151298151938426534567086830309857061628157053114600540232309406813349627602912136380781609375945722717174620967694378471229654851109236279209294704582271985644880935943457111578317001740322922211632206364309718637032606829461461487779967058508244583671033131344634279469122902312358140148023710662553671275020153795913573591447685445937279797696791646160970421923159037106074135216463517672365658104446394752560020148747056549489192454731699393159019096798636138973058593792211283333393354355786154478934351506358321694707719727702282849194965265930703956261445860443926534495076840036574241361179050515094995630425455577525041136436740135657960917859990979761841760318497586053490141255674060046742136816446735746889822120848909740880437288909312269578197693428293397991338453794792659380239959590932401218802599538262006929657823096519525783459535109435236600559057014401456122738409716952578149998623098572244787808190833914707841036854733954204624841206500098030810344625800530944785692353524844048777019228885983562129860050308212175352982356546321745725698976336053972212531875436366641280407319359022553061520724845526814718500008107470249269790266154677567709287751017918910478454298818217660916749308066532383550467871793870168726134569518603358678926261694780890596020019462966144822434567690492821554368846642284963337416855969384571776828237046532158135760507820319228518148478073854164820324413828335312169588557836006378566353810128948515438501361032799440984470668479404017338068720820241213188338149539248657656759700424646346727176388743447325727189346478312020160488504818313005314000897411272342458244352356595646848172898060187202794862232709259210428706942712182506360390159231502248284869130755690652517083790384742695705778865905306087165822556930169353992423174378095297089168641130295568201090842179014046509791790707322589802413146415940519294883319886001582827926128708189424619981086334021507166013397012311018123606970743832098918996517846104660058243773491579400529327954511211162474006671586585094391495176225349501195259400241334607246116257007695018873519712712981677303660704975201252321732446061351370502481324342881901059588358745266801843702126995111710364212542645335417990036422744040244850174552211734624051043795840644351201748263910316249036823348152161556778875114371980002559667207808301928212943419739024090519912290126524837642095448512947249901752595289489868609147589509200951830815028691441896402841113016564702957826245347288276875105592668601661509925955132881922268269843319124230248161880221345399172208430795631966702687725876729375586974212821822822159494383750352802765446165556112239977199353756292122936946578234764248964353758382791717040411980154966916982585665810812817127843511426957444567429410863414333348744462316601708715191505723220885378114001705490468765795821576022448699743894889898675069435243051548650255316617212621023016048551960833484502485855514385695461665273722986486957119872710226162209383183147756962484543579652544657016279306673560076220170887382699407934793029923015280264569477335464498341403165545531311036732805788590284705433059558971970809521974600502860423689759318917774269731635321019736144489423570703790356138663555110610120280849104608250642677619862085140246371275295267984170882546823469489919137257162891902257068292741453317994512510491596575201135743419286590095094028952591123232461319597540970632492335828309398266021042524737742741554044934794790031020552159298151433125521192867967130749848854590888887090520071373607844109488010221840135825092199222758508455424217210559375257382241645519533848085924254032823270290468685335944342708123676003680391089679982733886401300589793037741004077830160971750305947229933269114422539302943235560032979606836092553682317614219175956363469591447430400150154050440184858615669067709651423846082998227102943932257219546331707288472604119939465436088639744821761596448287679334966107316258124488568084860652670657357517828334841874609995329006965728529871836301672233749925710741463677613242256639210702592308336738829834822267204122396537056132651601449844534370391014214721999171731393879577836240349589355000466214703100064104243002320461038986438547761803196627809338613648408380847463251560730707385640978903690852563730610729866327136640475947133708622749666352025066425938322641711396654043163949176890089693238129973536550424609563368643690027321242426760026224412531017443353121802436076457344652408238359519414910461309462971391430829026982041194836355048779842578202587179004389459996548012218401710002380489443441985606552303145284581038894236087370613896724779422255304001856815260773851063091489345713909031457389964927974367799335924320105966337879504240080187064674318371696024487611099587879319141171277333248932021726792961688715077549528639582735458680402427796651445564464043429020598622807486868380402810505446229014245728244202149959606905092566642292008639640797134778838749207286942918659366398621864193258789073395397146304026727260399554259813144696772761219934972802822036142362325150678615948784935331360886483340373146221455653327966815530115993253152407408400796597469571760600737758112658409229988210938916794867166901600196159431920306560559408418448246837206086740857454055781492719936678724556721657845632902159764560952087887722625163747347926299437448316639278888647807619412034448818977694811152410362766937592151031037844075025200769537011012007753062731843166388316780993472502667572780461557567368584210594775136010546667788477771998952269700578305273190078288852183441067887204766711272105654342609157100789081454600841323459201807247712485044258687847579655105181548608837583608304257901701639900630407847011991486378164970714080721336479353340872021787664210557779620347100398416623100295867180225755174728966183790395410011636990605348700832166333195415974414268557968929763642897115506719637436054228689266346022549235046668987725512845752229156277855199003718680256942872294559182917859897626432136031099287388805512954310086786871501415769320617070059337976183914980070762368813137785182923032151210905735373097115586552801539272780202404063766935619649688635811823779743944838089733924360025757367390821629476682129800217794269397202125280912609214837168420826267218426947730161372629017339336467892953143548039773607843943806266398190249970015595868731811975540243458119941954258932890939708184668592154222013388864029879999998579326916801102503051338629500389088502717379110715934590930367683887200104424950036882291070557546878967180393306105846821464582895032351501044232456262920101871343736303029553499622529844879500325678815324092678782864018924146421821031517601420179621497088068990107818835772933794508224775857659229021619964460284078174049560742855237901724026757814973997947590120121166729112223416563391621691064158725833408481849935439516642780718541548350981635540480864144621815751886117082958174112601476012818516376128035107290464750050892260841592368964222013249989384736472057885339189971796430830750535197192215895362110900797934490858155272082500958431734010622620549075873924757704506473643406785218560296334699147124946968201454639175732973849699184322414193857960168775611831729757266176908052362517779831671147736033610477126560343404862975600776172884358627387401470241869500602408976851472478907888498148742527059440769395210937692979358596526584750762118900480157084212277226560889168156417349896749047826699436314562636057075183774014302172573005373318226518921340669159444681434728822857565552906347060281266244740509518842420932778623950051171126898407891459992192959067935139083424958241504190588534259815838994983599291347727905084924280928950791952465727277104566562499939809818080556940097986134292814929968314522659809028574581867128216803010925413152579326313527740729345624284041083238584059845225655234941996432391661119359119743437819921914557921239968061968531818438119822753203447390352024690043124729163159945241351824481890114221175168979176614973759474876878510365074253994501301995460784397807085148687512583028091253349886252341401756299039918435127657415013526142296766885045584968675578106624510703474397033298430987562827246942553509074576841637936070269076339992941574316708042302963165934238442509135272595200603223533994305773836638145191300155813667673413012171631164840729272563721777413046031874155044728722397898236042960448872520178591802992986745416968027757865984387655063059844439567867017330583297352127303591451899830507645192459099196618763689757819353391980647866713928906282358336973375313817022292014724648075285070860488242336954716513543291695005922910974979878208026965065193220322022964094514221771625991703292358587292504737275975046825952657484454985728973960488034814944167834459219473512069590280630628780126758193415562670662258928531542990330883065851462679825449730232492246888797949970923009461156823920593674187562251900894425112015024141127257169342497082943400565468616906875166063136469432056658881105321682187060992513609899246560860627767467497354755037466239986546873946443309624806186164717992272184885097278359226596265667817319456965409412694495195907947655687203564023815200057734677736947658604402882202682779324955926494416757335759466155750369780719544849086744733222133428930310494646573485358551818235706358867482702693218928390772540308853170492575701802806313542682521704196010314408593614860571801196544776224853333491614001976478987876056561720405118605286852384666465135409072066923783915313366891316122590078886843707471552619770762772023596412130728673445692548242118288156243400001904731236888505530400494125300154291428890642760837955855053487221662748237870762493392804271349149450959651488359161085082375175692434445455228844805874173905767392640866742843536265614613336885354586799839303281783864275175300198741190105991853968043816581435980718455656344756167487103289401706838496178005821095476633940583864986322117826872017598891843377485948677786389640413156570948079354769385876552163382649337588313538254990447207443829888194310116843798016057905338726649118238786936334364271312225028390798421060101500909637311643373365651526071533600717338355289156099457209541193767151938344858987798250707614349170230749816992286712537213606568930988956090307419267995776938701135354629392454676839620712319713091850811886033160769385142582774079065090390131626891594354964222775026176384895561655614114954556374986680673642386704259210672463335299670730624381753383069019645141176958726825531293356828254289756730041133824750297697755230969191072455978342607227300642636098326009512328436923462003852306265634024504073620673153381594523517934216065675125064831156009529669855023011014138708428769141238344848970828792124070172138860639646368951137659796555563878974079381085791205649835008445569949413412645819843832756026026368999927615591598319190081945351602687786527428387622887627559399174419231044494200431798503540184614217745490296398216176899765592864467281993986468788655072893300612579882131786737357136165315755189192632896813869880551110901860892639811365166403109875450828039029781390205468410682059466603516703944622585580577370023174829902485622393700435041999533331989291626249048568265340368700943506665185568992789736196091237815351533110036444949996584845213905397848784072023059636936388096341392942835773727149828388312120897210223144812241802010769267390904803064390412948927198621660002379726717709849721995727152414876755365374333893425126348124271767888189921465388407605331088678699029586408842889614731195349595874096227927386851481220200157389555286073510361073367231947321110540649126183270413595316645181960806834028380342090418034542773256857612887873111238757557995462500897384048239904706941299620062764279490272967397892368778925314972174375420527997020744058328226969048513983269563923085971531250305451542471277117231877542072845905401372275443093478322710671601027351537692303820215878989992348157729979581758636864010175747461322392605318783729311242948249202091692347137215419511370194585647832613643270864205598920175433606420102960561290001094083715826713200393364528143271495628221167487668932998375321835698525589883551837757873821324081884955112117083734273085964057959130750152732427264483691843690402222489100370300877687897076707831700727242259063925062826161574813613863928900121211826732143096569943296287110588247725179334681349699053852790355133197271269889983590124499536431888879389652031249720654332363602326225590597611139133531222216452551734762778844764026337962228940991034716710702034986449575257851292754325410232323462779951944067109354314325340234952357882375423630077647569724740282106050662190041622852314571499853785354364769307338490109508426834579404351471123473170741010736333769226726944375296654344231988688426244960933084182173146995225555241097521704862329200143652647168293693658058029214678629589236733194156287873730279214680209279032255807182827974909632990414526075102623489270698945881762863528210851712274287003936207723688860283475132091888200593101004379150382623609730045335409478967304758009806739576974949888777446199180558735284038775208046695653236339653762318526587058531832997978997235816978269322675599925063364167905063232816917503474847396441761649083981805996336623328143757606929099349477311233761465456663534126284873989203603287554700169769966495090154168831109570334496803998135179667836178543168948590580039127381952405881558410769723901889883221659644065558488669349505328958309443441145578666841155600564733388162045162610842157398859018717341574371992693334183137412835296944745058042395951227060970110548744026700702722959347451446851618000877929418728693675777680006789419514586518318101089930006856531979966688331439248501149337460724258087970097591371654795348992951910298384892244054737401953847015753262105561185056955211506341794333229600811048299655710367390542558880679393585200372011357616787376497507834863731450605103549915217511820678602606932510478472562460822537015843968755407892241853148900499377592773589959722203036979347619653773841999747315833642534517450605529315415027298347234847225507690949062892851565822752497315520987818596808091132229440004339295896032778220277529851648135066887069381343394638711638857610130513959455300597103833337679409200608304209584266445060545388473789721840121909792143213296813030105326638099063390644733485215011783195193058337632237529153447238732186152581268722061361370685328001735374811966907444395167323128929513779035113439491048609531008684145650483867327949438103372237661106384147696427929854673684423765349777448450741332891796594206926985258799553657770918779728473532242296625889377404131046296796567130762032234604998875192339226317497060634105354280177558505314354455882048143006276267330551156225653951321140563288976548502235385153114244705284898787201665041417945402885659963263445617834395632836256235939954215408104539388065445097860132614822397744431144344717746833663432575707068664874705541335612417024173879288088252396392392074937142686343349978380409584283976695935125778148660959173040968584363384048049962909048826641397151111412627295678989464565542654866730064723736945379734337039719186043096951481888007343399797004102366418129617132715872996378777380035233251003167218864677074298638103666175265769460594952997233952922958379123906724962119346690855888535267422118307477904413263394803918612615862984056880469445068759238903353823721458511086024348358408434318378920529203009222589776158005651201067631423618209523928610084883066947585624347828154675180099670217125833660769903242603613131783903150877945849395016842879483413929597540528519139580218205487727273684559300858160762843019656546278271217764014973552198545496995876578407890901116132506260686604800946131545032195703026636143795559444401859200692894913224448902573084700829561903855575826470623493144644540307926898085439734957502626109939864222868258794208158684466146939047693740897455433955249745547581103442778142279748698617430253242645096871388110305211527710903347610395150798528584590615999015159699867969469506091584171220862522395932053100236126097346768800928975239820425815472922863391273119288433951268694631443536474312286135295082451172214780211635303242299357548156499909724245602840938821129894193699119739398664789939684609145667249469197264045046211080731719240388537392284181074624193329731984601134801059108754169412109081228904365791001954360451138397200063827675914694934398069061434383667722520246345715915747252429248289513227986058754651971484153873875240336040284018937475509064320557542336467892521128122764322356693516518854435495596968682510331229610879893367445961099788300998488553923382382855661094715318902605118379164492270988677097288045944602602635179190849731070582831935713343990763793140863283072732174128772061585937916852118428946181487036239272389391404553818927506884983807685374303307041874891578293404991822999609538429083582555520716122142383426918393003830454756477998355507151355312981681240438486684876640275597077914504341366756241370397245541494054665347831154261914323038929385538811149632573494219157589598558870489410976284361295225843203673132983005099522375309042709702106459903583168954291265078862877471660816254577819111808445591985528824477817870411168581559100043110428206445173075535973693202458745478102814818903922733378664671621067178533069855493303078681544881005314720430811558231428214703516897557126420332833676733217861154323623114493663024925743146799568343265042396711173036718076152091169293489779804889686637673650740666470407715737204882200250430952998426071238214874484929539289657159886500170855110167654739345281421280670116557877574124218945167245081621381493598153691808627262833568685873800676822936311606330339252777490979996831992818010890684170935342343087356505180882746234298375604211890953070040349713628196839244991157048148727118398556268071661884699757523704697464003802660104891177813949521206308769363929608918413021920461138642341887431388468769299648115456164310854594922448872184749678188148491206821931480148912576912764053260549492384904479777343401037990610106072312473500487718545005842544680893725523385136515689059660160088204283483301510511745201518354429309398923113360720439234902107844603813614962515121677978509318884369038913158485808933937984009656223331340661702943306594084884517109713559343295922795586558720579047771335068849166034206664775524568974548902246754779150028711546425550090964853178408648691284019642107476094012117843466728642587063466733985470363319625824648964968137373155309787071114988337975705303870656668948755060842716774640624785384342863121314621554250995279028925419706514840892681300228739852170575346175637557772821817604257452225109415848163700721225844130346963572493601018121215057961768601363746019819094173086364768946083632575962745174309236525878075121720473837820342122516755656967688680152308647869172696756856960797309893474725707778484773373469490670358399969474857586111148693626758374677728438757193782293327414705101363629842075439758981456878843943539433606517603319701093675203565819801540083671102341140786114022728300460451280091784052674120840394365471793652523266696179288977702795089384157964642147333378888814894659411073555754027698102951765802787272631048097234730461813539713308452254155806399638768846328642486448453596398109184659766645734908039810257943623010528727501634390887234033664315579967486370322215200801455833464048846067732711306717934184589572492802255658253893976578292247989228129868518409979679158729359471524024428898209021818226003558569223149480654707149250826091329396632363262099911645699671622390889504157177541756509105935802602551868305493184991291430632415624549401731304252749378385850135016531960266702903197290479140602310043448470946573127368059341362020894340137849464772964673660935057599219442206885763902151549070365077062800800448673071924527071610160593213869190988501135749780815061990350792975031035363706373755033349378724739591872052313507432373984152898252498709070220643152884129519281700063968093915215666803339580154611435531954625133640465148155107766859190298424890283109234295747964726925234633135932602705932077083763756724885448306045295408485751334279114991233916360205850358153679614015089332854506521826562791588990489613399948846525772705701873596895899994965608318125001484489626800914780208534086724605660923168679006390854518753704095299783339602567974220604110432544239268356390176175384703676322595413060450440652462055191795878603591643353372308990696183924163973573942550515183025604072998643345483004166720518419245760739048042108192938744171864424323842088510749732108045926985907194610431445423219065155029984744773538842259243094517841203597482799854152804304640405829591653906557634035066619528819912003897658789998498700820299331743563926109391386196374386605919029324118956569241859786809320188922365307350523722041525343638795214374551429959584005957533142818070494507695112891556876506044634182107425473495343432897452406782053487905843355637327596615639684299072775080998313763164654638951170538983586441912354552924922326436611280515248209446611919500978273615512920640294389952716394583683984259063212781132183265739108216973488415302039411633449005142536045813361695520145975771446338840701759573593121684825698439002762678321509206119359811383876927772608047307010356172798063768384429875545784092324828315753649576422866088248972668805950385521316329945188081090745531142121305054824197129618931292727974802638484695846473866738514236247774243171875587598929624909611709735107947733590939529621960420993794603569990297119338863679778569132958995148358185646276377303668314091723899362629065837146514742408762229746637303336932017155846009586482628853550422133072184553424747285510290623462490674505598438776957339968808644022106305983005379262493155432238801430766956993730722531686013986128184745194338528711595477367831175199936948418386184176890644395493168806014340219669868505165058641998481502561896977278882323324319263378618038770807642868923562193046113559106973732175446971294613366531764417527446356872589670100998192412537832457937198640880050322309496623434654649722291245888048329844384062050555223121380019805463389723490651350387786154483365955809367311478877422191272830802442366967927505916301235456819115278555785874270617821240801352235824152642006717170499583267565810056640362151755684254814941712402718145451615902369829868201542670530365968087838051078331467393186535344119730117883058213460989394287628527705694185925170728434611589163727154923743677340854267163039817771679179863919106240752697514007362535661026339430615373681418924874042923565183652458668801984475463655828389791412321318440730832214331479820988709759693432321051092024286556330102590420859760379638009527992657016713550418383299977176187992806580062282640257605113979116062544355653962489877617161120009039124970331159184912866566115116854553392406072155991062379071463591019786340310111603672385486410257569698451595477092537380627054408116123992311593869043340951246882921740857154694155739109185355921199682081145529436319252556533454093142481807893846142765510256658109619514869752201639401559425120753860718586313461525408896221978849608728879764617596450628967613406688973570484218369043961037249947571915618731731995009537893795500197439296901694711635543269419726885013384010619423524307114765469232315387002315276336328846113469345191142367761163565109893946540001952047010228093433211640390091867927889287730885662265423257035166638439707805098832852495108639072654440016997799129458381158377189278855938451387889623518575507034200645476273027839636096913619002916088607317660812323697428270329696207677044239851106633745672875680904004879643295636328523796081777820264917304934299504154021147537169780580610270718008357602257599850481308044447302740710257990064714426431506066422664156665834258087542072524057680512126289389816241882096408134260807325660268907340709904272449785500426682101861265214902657624921745506283215259735517407020486190966741838565918976465707319635320205600755831430969747536226390253631170861884470944098669447387365103746676684678285011834314886802900122218560170004228092344942158546889673808738644140268182385255576396494279286138607927327784892291422181651672684451611276249806699228586312134703235570092942919791291013810103798456185972225392498172770400026190897128863123460832807311488840231477373592667943140350921569211137582455172454280984579664200617979592897793374020397967511304047864818492202280604434669233595546830150666016101652141326690995607244545065081194519263136328083641917030234517337457473345646792332327627395754293638836633639132421029831968986550029512096856383711212807719255966320582505262944434215550568875383547341220886095381955027854105342729485792641151176784625549607501273319721687933072311637201513716175469978124505284887125033120267142663955499118715717400244392316055316296551520202555764525147715079523764771795423561385747958345656380574193979925102411356868051271753920709191396560505145551683323909494611979433389205585677957091441559369337331767590446077019336332698428362301640359335417770657351372350131498903651942689282565875521611459340459278559962533910591983076681641764625428039711348337783443588007025786197914789880105694689183743819224788420520918622871174795786739687298379322733135330433677416807291419022595657937931286084157144229193826617523625876301952299216377671285267980785395505271174195530668634309784568186570294140859341871926037491696911044529140696199460699466835563418811871507593586595825633504878112563757292976569537962893004966596361360896365144080076230707898522311320839188723005447542652245684686187733438469036654635895820648857202908967592117091469702028685539959503405910501956117184358613372732556493279935005205365021410996068613518158094796999237429023889528246479231658388907791214737375151819133896523111962171992957614751201288070109429176540363947633015527137725436058337457980304243496588002197095027411488588286465505075661561787972474333522377792021332021672296685668784079865296801620239120282292545977680369590998143791463508759413360492158092930491992477599426758897774626521697684485883718633580093672651480748631434998862122734181289315724245948803372913931382100165666803756193795365374049635166262503593132069845119477432997020647925548888284185998036277192781058547657861989574222858715918860582570350289026221005995567512351004429826103751041234451907019372951084594290372982152814330205577127213945956880041240019005120140590559284807355322897175312546945189809216607314448740604127461564900161038286380129731665857358961425822617265144695698536581529502736752446787409227356464917913273804228311805885287145269074704724731707113371829685878341003866586637172411658613616124804746420729103404113591325050106605403198484107292895258576865166662258711911680679958111473884055509703816885626451776516128431057478616240948569983116992156840706918088717240656262320051404475716213858833460260092178883914622420339795998822565470984619159165592442973475260237694209172767551430941906785737653217552992359412235165219131460302766538958665362293075913801015962206916142978507101847722716991350525401349976288183990023448279265261711782098611586463226867536813712482293305006819198303439025598243024299994376488016638007879389449070963156129095252667879567103433807757685017630646030349507547880406030145745417552121287050237699867024091969913088263531651664317935792384640409722240506664340839088843750936673649379285869611967003841298428470566836331502457762988710937336907212119678357174593378875443577304699864367479120658542418969788305479779420374933329000508761257762321538958017345439450431493034376290807413372164703029539850542031917034267151319657855626721974661498430831594217312493738696117615163067300102393438993667781475685628319297158283895683723466598242181807802566765225112552374927645726017649664718448029495476638975141912517756411505956450410203370738683275467432244092693191784370206641443368617272636383947710857147103702426592832546815903774480663772134926486115205276190511348145220580850125349262390470679389674268954499501477100721960879487052865946815133220716092942380951933498924559282777625475385165140133769906453186022921537362663434776132859140819098272749328319789274851082806735713136671240915488321303239789468585822993312889803438634058406887601913369960485808478810874854364428099984166343894154039416782406316290126912621922164917394576043765671346889741058077338391700030090448331417430925351038379006163503512110898136689471980078782732067791445092929070462297479694496558182121704002618287707436322989440356697786682626266810650007012476239846863816270435200863472160420648431482545468410010122828862732835540475761031266037769807682367473542022124543863183533047340634216342750631701898452867012139730025047750380573498253543525713601402755007574523778289928562515326982413309879102861551841794126084501866081934312474151209502350803912338458597601689692612172831355469913888719829274835668204638634876715168766481272273364468592321356445883794232032499038531371415475102191415767345897026003284674514311213072572844339692019006368029708860689860200833830035201219835851831841667074908419771583643001151229244502110164626022199291150548746045728661461869149860226586322874898583149470319587222025669605825605403031310103937506494528132074529291705201484333098449963100625892601288302263701847373951380226759676786304888688997462178537584267017169742281322750001891816911073070929258671597830970968074288827344303551251559289721710730991791005208972927516278927407759126017218724332925520424154434467337959686510574743299712857514509123258280293493649438376321081489120297515374226622669100228881383084921888618210106665867480904198153924735711679028996150061909354158133251005834660242021449398028773542197728837147575999617844806927765482237672737835019738059280884697051544488025183951000072288442637819270287135849771188587194040614560728896941447850829844558570456734913308364969981126067065918361892183933344869585631982781876758234284696656590181100863222638412744650954732362206167389266269926886873293142773031227377597904098518114501214659342102458350687713876484309982336083375653441947879210109958121030210479539371112586865701745143505216982201464883551023825072956173963159284168340443647301959852570053922389197734027426516258120853938644744443829286818909806004251165126316430784066003850271145549200539882006982650383203866027623408858640998728112145718101806446400741665750279139652539876734217058212430515511156993666358166979329367494316122367640530155525334585824619370362001992696505257455947063658703734751625462970692138375441659617191317906133195888768220049758567585450333327823218080004417861813203580699333381404616656008547624355210252663320707305347115360765659425361729681196748159848776696412145524213101754952050251561238306956600627459536560325360363695692791309386712401430032583650286538445298390778671969593062124331630442223839257460476065943123083267632467034853017336136161386025445957627731459291897779864142088784805874673032777136050202796523744776575983433602248284719642148274759081335176921738302012682648132518988538441409372669127268716534596125045284660792648068312062153327805733268874675307840238277855583288634464434773414192917362206271455625647955488939492374175773987498011057322855109032948705022655599571857826052490017201279500746160641249176260373110350416341333450038786581307686401183681978726734648216186619168676212111307626325889976323810795035519981318888022881392972232424014513637788009347163939137207306315072029727134527142776438809390024693702916387347905051098728514649064328579772854122208046576118624692375702035701777018236987518035898963661867821304399548890112997084388774808938584839440442827885301359753764967042107446021774506227529251404125931812305347220802991332546822103000718104665688495579577110963315481902438821774985399070250832249010076730271626141740303242090442636089983845655883633509111835169609769349662521942774597294382283588610612533599160614154824273386890986585847733468336892998784549414385096466911502569496948443638798362036134963776573018540203379207300935096626103801495038988629039185913071690097628302371864666984050291929383064598994649839011116536137042206965988902141757588987116415031987958271352890064281841761678960987285892153900939653920613281245853906346140749596990045901485523470831438383719134511165207141077319649703742095620742758451769010717487283772607095379576749602258965628669005946515292998729131945262375341728742063206397231038095782238529456340415122000160758743724891988817721199443471590113886903524392457081246052142814772428043788186915987526448827148269990641553113119306750652415700650316647810259881617252561864419610053304927818387709205422695495221202997063049113844945496136522427235446435799313964520150443264142245050399008364029253765551634889294372464116458040355192962710421013313161691751639400008647253020489523407395824445101295572925285832296151836330540446924874614815942622169496113420584700566830532522426979085798869075640190916070726210010408504736674104058492216486957480174252010877890934070752221686588343681816823948257777381562184532755747905799583760305514576861426952637774787366832565629895100988931276236351276493646080112039699795946639092902501281530496181264800805197617261865602273894368109619854545038245938126035473942612388210662459081458286882637489881765198889840195073873914177192820845254537384302161161228291908052664816185595249290945697043336037375096015032641930445278418649923521664649189605150803104097505339966652913391688356249777455938198388410037459511622912329669621942597310327561515339868623366451162921505160997551804768455573336031987181944843482477908252190455666906490184486638062571524079196188924766066311460192448788733155322560616208041252813793311077023238409710931325083577101954480359323326531694048566487924470353897800815130804378908060235661135897974755314539847461750848707838847892458672437706662775396706922700090540593402209759813636352775205784330679432171132932885905381029019195333250362247618210600543649680690128488730277125751837537519980552288290603295421953813115302649748722715473532663646779052222839514035003671240686576579544483347818094736271401374275123001230376414134248974272083690322515886992465653651164738328951149631056961091506225466965911104729087688825741827387950707256809881208953401365893463949160281817591637537889040097480144894877775813645965748815076152472079822311549057642105067323713209182019538406514368946603059430717022092327066122570078243534458352387630786934729766119337925550896939808335619701988388531618058466964561697081650329024762477885151932958492318064364696729815796302791809299096864778485163234636928734994303946975616880143552192116485296179043573534725947800716717564944588224812572097230018978302179939046652411072610286685192597937937431433268499666976246251126217665952811491230898897576817993029545419044866658215448706663442529932460604512898507881893131513688289848758930180813297132287673980605309111151346773901027183400374784291116477298595223968280478943737893844397947385381862652134601867466804083367107087904029770838792792448291109827087517533031642832078672649856612752009674591885981822270851225721694035244097675395905573608116521849205236779959491327213764007188161373913238170447665538579433485205490105924708782543571924612876669069738477416908593048903996196182127178966783012162897767827001550325930897935328636999126662251061580700191738317871614085985775641752508441544001317433367324829184950587127743257077967524854309169540153647814455127203861582593098690720894434802242602087686559372497901035977703442636083351583851157001602174494693821300279050299627962212114360423261364956801665429830279747901557009691857743862955313485219098071785132145297304078710636020489944628277302744889763867145179528495749636707243110479062325485304458771639671755317340882509536288527069200604772979355677136064786311752683633545491974584213712478119615134278253210413298321570640163064063630500958440810686591346569363278772559126667604227422789096097454890378146790931624174670733528902813029128564180502812292720730034399769598757846629791244248799495356372935513250628994839612945551248648446759435167944966237202726852042132412899989050858757650643073755591987095944317586703492973767597940650241712451983512239853769352731944836151694063672377760156704104066851316862417894035198912531271935114414019198708763622386459004252061929657779728196265140647568920505424686794032616331133202267441289421505025577579062226139173889540058454781197468775423347562110821577255959340402359540013634648224593245031958846403492286083842505644700744207353041080230885143712724574295714487510193225166357953105291808860120904798993452215827347491840679187975656660309121317706417576936560212285303695634803822817932821485212827702097186916781337394760782974407871901991914939370350956079596674440627937217486569769318754724168387598119866675660099179126357463042437545082011051232063723479145124464266397914686210255058574143607669769610341336491750231088095675315175774204368526300036948978063767076997552026045903413809857972952849210350050002755769236187102686609516904095864581957535271991708413021031183142323308976143254249198331707560573447243223957837073059806180319510647377986059235718412164565097171506460771565885011141816477041049535022158904479927152111882600755637581559563580421816469528663126066116894457480458169237480856677440561653235215489378350545413223822429470154906999480979941485788671630286478528473121977837035062610854598952048424339341103629896602708348181506131264379551492973296041287528056205616814528966835729253978271885431455396161016609438578255460441340606091282255188992131084951255250974265603471878564450127310992632214310091056339876462698504594979376898049240192708718041425078000354689248061827506577865531383718057462884545142287197087955198208950147542531285189374419993194328057748180834400353447404339717361076971348867837938851445555894116802818510190061167506877826645126269535735000007507788354173409074942708961903504002792005217398895901251877951001298276041769284825569227547930490402420115180246297007388982440685175804676078437571572800698117716518689976293111445359833209306919986579396694416305969697450246084440566044961092930716279780344227035380907764141401449493818241663966289689105280906007918739885553613945315135787979644963907770628532641627967982671440681467859439430121558828321854453234951493696422811529560134217527444433307957299782609879792937231431568755746466886695152768888324187972141591480367107612486495543778174805100477330850330823677423696313992815804578234433535255036152288106716780962590787481963305781058313977870834319458826725531676069809607227493730171483867805479479530168858677894241735326206192497596220475442709523903885000020092389726604505297312007275196234061655910336724444347016922510683805694343108670465289056046233361000309123164662167222399177078158811917857679439934995235703446926973550177018246256197899086969446105228142189109825884671486325670641483059455813343164294658702681573448074132977917987644168417942904246474287883106083571413505903777415199293418574583044530340408308642299702729493691763475068173517827484358041375835370864339234455799345240763716190138963995340546266554492084142165452885469478075853289289707112187811622894756988496750594233773240876703858729822326970821037013849845750328793934328476020766586306469836837774068906546343191476092341865029375361666036998279870767455583382607239071774451768958785241972425346620217659474784545082699642226959328475420086481979322351769077598082781781502141036625448714705365301601971548273067752924788054306828442393956899152836797322609296717505067389351941531938004193812949904915957766245195996703787666233216943234444884469894884473384130941810165549264984889542503433144103444885076962496046038469308854554858178755540701140232585056610685216599533909635771072152246720437602787225916006713914095325258522038698118687710119036067041768252705059372159581487058955476543212798586479520818752062370044395426994805607575969330109976007174821423126773878376476987095733306201924406116926179884989199995222805165119145856223314863285458512150150426638623517434096310326487033403743928438372727623174462069365466482178332154687737588089218732030797947093711843926625314125306352786479922770470351467311566191424403146368437646349407380370137072091608703765736662095747876967794723258868845539533492032605863379498488054283456257511016473280183990704838365616402011863936942192001341506366606202803482643436399303960329336923690948337460904490831467698445710079765273684565370822321534817336970392095272140428068809168201818582839004950284607564949092926154613739127465282004140128955561310155985607029529845011415330300999040623321605649890168130044439695518016953955917840914654918842229709969999460710285788977883464200355951471095069360722363965162579042678993150113457214610424534703365278078063048256544999651843795079496634330182246435082393834765949165806809618695801555654536550966423677268009273587336661384724135240922587161944549720271439386278802899445601316746984910511610365122543059754445958984622705415941509962594385881805161779123530933377859489805535579667939386840014035082722785881307066995164664484127813079024380753521068918845535826679290696339548989101942791474906368996698096946419715808953982492566756783461303451174125275246937994513325733080216170062252043956905889427130712775454538748420907212733674435452192836539361270428289800434134662082552839267807391416340870738879599725561630149855657049728359050508417130178516584563912297601239663794236982376762509898849927855341996004401380212332935167571961382229842299778278624748196733985002781317614561755266708049714428382382146906089656182415491496731824708176128205486009474864975417763818334963569076905948598123516135396849103554259263289884626833801266267143384216111367737095186930248595098176576073086473976466343372641115934696430639479137881697828146495264564109498620116167394429300648981978250789344125352682274178165576576001720893866856034567738887886280051648287419494433333676150559020994973386009824534709769611340529295442678027363182074704339277700200154391966994956518297914052206739375979363231753014081251034127642157821737339898333838832525225730150841664895386952102755577961226396210929427709876506724055695483370292578650643798724840496383320803587043164491161222481624209036695441183195539561649151724997142808490761660768351812527278954711345759341295099694634210771886528665475699446706804014386405636161196343249045833110220326084030967941054576203353920360835868409241303924507584059232192243826764349271409962747232999431351125548614224340343632707334695595330184136300090592661946283486362412262215716708316359862003511846791685692570813878844075307892336463130644133382962898531434892883374062631583378168454755864556652320443444404354016338582807068833695731161145159913010224161902833323938762228531742679815873113924797367886030206727459884089868558750587593248183062947606148563638394984040873248993815594134402255699441985668217799510575932757534959708181704206082692248613890140232924232499036740898558515607761348279501559007118878221354159591747613662655165347041153746922615425621305452041529084273046522031496471859728496736630800122893612749747169837025468030269361897802599515345417447872015243409380504880281584110671805670359465788903562400876941994935749177593128521147571735646150293657638725152337996160928722868283132880115406068860954281662176793092238282269189091190972880865509735968373414656013253785343754246904753668853293008148199425614680413509380458992340544780149338138952605780977841979534564706037694909546048817908057349682555944772113371637846360208043100764700013541591468579607880495017195703089347547650264007377527705669968531496089147365046491973945668312038982560397754947712732530317760516076699333707368998137968021050055496161181950706291736129008040269403041847442247906810293293465084297793117200336329721044265547155761270063240669223327849664982562888608606509428126691044540107553530812085471299810305731918563717203534435123312396098621896915127666684627200591969824874652891380815992739106088687266878261044613412558725481301535687632947408327152439520531303668712503602453630565991807913123880634412598723504939874566932944305081695469122196214220489838026575856466658126140742940926747206346397378953974622588910256350809578385524671832896778970589555106478630505676773865122870535723545861301553942429925371253693121310928838911286409880708609716692233197042642370102532868883665383621863614951641762225735752832069967567226760399405346774554273029731061718306632792379544155960898709279103508677638012024179772582676621646522759756713542482301645418982590958122712266017686909998279847105874406776807947934310906280119207503212879029170936407708707594217536629918923399192303474692139477750350226191571192773270380636907997511082139229688378344568342607217594048124575025081235465962581139435058366026753751280055993177837356078133589599267184188108442475790362315008004487431050699062969371026793282300466136038601831185978645918106150707360211375851226728689487031653776490377350235845931559122029487491804818915259773329556741004604163436489683249468860887563344368118714291082463298619517714188748704877900556866361094874511331751511704023114789506187330848883621441560900167979045000010036485714378258671829413925589110861204648314976075480555179926870987967825174563267674216325668971776836550327888996451004227788692622738857886172890725460360563472312530655310423437808431396254942210145367584352789051609424143276622100640183210351340298099549136440042558756762706804221242011777064344597794421298818970703907572766738359699762843159131277012384111289488127853810759439457328804317645141634515174872565281501083796336771848152006374406922672942018136486226342783110835507722926173639732283755160070166040721296235440195168846658184668084376485696980100660238939411343828064135823418286742518791700486237336982530847435191415151408784723673526050552482184927534124563493192034293953863992711179806297681564792414573494137444232277568282286556812987342292894786572833354545985870000703939413254007180227995581332070168242063742018782214700064393852256939313773133012303646325184682627821126878516903946136586668403826023023726270362782037706290104956576976924641450906661213314726923109108569649014558028149409035726259337010847256337896214050282204320984712062053046913257090879119521692263108053504565350828749753516167274151194553362284138078008966961723695529914338054019384713145209354000481586290728658805316472027226426004233410508849414603412532510852258727635303017230084578557213607346705943417108334102331122991813739863656326074738206140162385727534375202977133634095373042538687362021234306601358981746459189275831279349689172258818245015526982598008706289416833507238743397037139372675052578626701168637873858534709070074243618490325319822239573443623583786763280753465746257859490551555485292752768540807596907587971718564977837982392129298517056740932207408409981854185911952263154616373188850535502328963877379058187651669938401977526189334674289449910413363025782002192922817186830910577420254257824780340841197067693786386109750944890489696051998515032902403837490065968671745023785384217199073982442011096399061201703785769263299471447747734464352758080805297071993914960666286422541189855155545908359222493058304888815214458662918362436450745993976089221992279100169703191828396497987113391765808480830041191387377024648056055386053153353266790910265239325866670693915536566768828386402668168027640882636004066587869579304513749931816675063524074077774417390255374175819668201494281594551381972639648519125601397024646472717205004851137138836670248680022829714291159405487137862189392940076249162420505536224370495489243967684411595871530067032475735900172389095060517064015239315444629220755016884987380722838708259005435312502221293754969601827321406042423691232584553968908730122263192516641873061183328583778723348184987553501162925285404500187401566704847154548045649885083155723710178562278284566890642503739541768041200712944657486141826598122788820572915239381574519037140003549321691243780855892454208857321124014473228958606891509891164322077261882977378088674811232205819959531908605549976028150314949007565414973138812930233901071683279552042852647995786570429585719688862224363152790713903035127013433261742494257689031152729942929488021576219347110955116756006233044124984061271662611467855307305816418145706840171563109637416160403798839798518710250513834824119119415944965160907644692847379435488140235933675552100675246356868832038295636096029086422556012660034636262288754885579278381373788118225577424637352802389679679179635727044623374732891395794008255473428403657766794210086302834598189838657159655634687931623202812374781194521533870726515019869991512033445732053336987777286419744368731267796146442672033239513236313120346688609990989163598488507831374036818065312028291426682542227895585539903545274937295057838526778546107583726551473985330652205380416033070999739133991234923234155266310663787162904430208839529057455114793089924129934938400903834767792068097607404580528695055736509486979111329505761303170733761334825964169399224745215034006537031187715552241348100218140466282510226388729133311931844979696774725758333318198339349219262284451189068849228552260578959669244284055159710202428241924800432575434616119550451755162303599696748339491941334539661018469959603428216666759546514441423042075802922321722349957628949972794722359902376106747535029904707368183974933836376045537154437625693797219286387714273363708802076432310788461714937175990900900241622150534457233063522484068992068749797337690601014857084439367462899764409028997724444875435828066306796000091498214394428919692263848785550759731953038308045359688282566813286196482229171548768789305086724834207606091086183206804942017935787372218418007510131522404998597295046024144534496475148061138632666528482899161078464188535965501409297541557256491796677167641862768295240650839610894407147129164207677538871882517961897432931825535125686521204112813768091122795236850368258138697995999928064928132432173419325259288957763681228149968378739783845096081388504722726553398978960645416419374031514699442821109192408610999242817264678258776968260376619494991688329833592746367060279028758086583509400564795003517620682855767064500517431435634348944628320074218996036364972559373403396266927852589723106465005091413290074639194192757669546553336359134670327683630110391311743745466797863806759696355992410958688542095962374783682195933462085159609907511429047393260013128161253968160079008698709666813809612952352131481994724297993638674423372054060998641711099464411575218139849857059332444668470181334422902127359468601729455171635611841638470236887819042123587966997842227062139762241375408513842801882582268012241901443868727158360168477575171127738268909643774820361326253946424634913253659980695712397134720435632758789881301892928312712217058830081751259866580735568936621843827429521491249867852302686624741733060123728817448448819562558131652390474662245932194349624820154880151246269167934243508809561791978491582071038123723884011943625952680092869275634947264954089322267920313458126419645725313326973172525503498950620406426941347405906783791225157035929378645809018490574129304046037019278412336436216652901019146152594806983599726006804660887829039807170490374238785774280982225316717721304018190390439908534158336453645673004394921411998086066539753037243292074357890219690331303004354083209332294200285569885297451607820214474971263112837451431150561274927415234450299572033892373932785314371526712251022108832175147518839859921752393038035771230150983569930241530121723630039777928365809073054749620560818190586767508218677187707302288920536265745513228247534115222363767244723484085586130426612136597091403856244702847690519347205871016213755327766527369537457534399554889304024649311412967414687483186806631290720078072111616021821246124630442261280904126581337286613248068875146348736362228426597850060373407090673943115329213385034307199400930432559688373792014980873314355170010166402132440501481869573470694651722414056075689695223691294261928761491017915298259424804210624294028030615208183670924835025246473268663162491260596592944803238382535413629878568957281562667354414592251542783014250750701882164668738098374175790645590356009754176920897520832443204783187489659935306260939206139930386775518108039771482071572707578909962927180190577164240909962121422610313652635483228905402400557826451855880828234096104603074536818661440499896997119070657883776856819275068682829580848168831501260626523401421673182644498395656140922587039965543442596814181975217058259299534795413211107448362172056987433652962967763597869139664166170602786313385056904133865675789526172957197688090772200437769646839857699780228302625499391845232016620513859222360931412532056575879706799247912120104869593046605224613095717206391669678691119299098136542592448345406500726968174573519425521703383293166325028282993623182521261990431727923672600315505050163396717603704777897106590438962627179095638097180314561178708688368994633409954644441099768031394027795429365712083121528015363939137436003725999302659500444987620886852084207653964469149844976218116001240603954576656548528242487586159519142893574580891170545100412481593123957882413467262366027492105130124213728773554886594036900173183551662543664197451753368486112822582507529880990665093571372340383262380617377208874397406097377891351266059019507875311308982469324205468000651394845521093585634550626397307667237820779767438509539877474454635747586896655976567480216857361065524881746373656662399251925904943363804441791106791902685321039614322571122870544878404755709246125613771900269029372355150782375960425048533208541163212946214930291417900744315397835671398469752562294980635801720590291459711393358830621539292545999830877285925576658147106791898937566229580541633010667912268232466973844671833658403890216131225252300775546675608539289874286910844308268959345608083319959432733814959055346105881475811165276855013321896476521221499308930733230059611256215984099850318262113553716993254288153453957568424341393248809264701046744914279996267665387592438051693961646872438484051271220425522399041522487991713905953847490620491687573008300136502637031954766756407138514809668172514779014727892340281343239656706856429690599479593652564490352113623778684510355290827862362975453727781605495457742585225766299538917142375908244712777394573108136805757648169701863870865877444837113264221205307790634655033952076491539795676159935325205466230459857331816846115687659892471137775499271729187508478933253342930368526682567450655530561790856221290801501324241211341208688334532129647768346601062023355151135630567560490654078021847867399877788212078357277422359513520958903147127094505288069163157234758375332866739091662629299718733547052528550070885088134874695358177908092143269053975494717607994844964372258995850094887710029322024495245026107915408208868106948439646847783127995598804048017228711304799156738373020348486232707830719408522702250954360676237847244787673973258823572639392113826857193269124255264781909321272013180001982040722119783255868761565822715117426142875717523008890035625677797918853772039883071597893957297997090613991147149262739217940279931904305053480891842998000736714159449844073257934015596782207841534061685006893363381269820305567981992448446181905206801805613393448404565805496347586073755835882623759029374039613744864520628004877523942344974141221315882840640345199554205022075030883669505265578217061494233713684539673382611573444332518155199123367322874375106072990522694583269500746298092617660460160745109981564029913711474585420814541156851572899549557615763968265879030444886515297060472561806928369570226965567431245828655787694464460487977872526148715506635956225761150423160366015478211528323479860106774796377245256672384365627753057998910461455137738923739936224289747058378116893972899475752199634961888223014180929932934003553457557261694960627407129143133470664315306478051219069295648393827077046872045615243035313519065989718447866756827626274170055738116041549656304752753732027258668660267382415928703735310894797423068019471497934014334071234648866021189230818652186379511059220113083526852468049338644063188000398506723627279734783805935636023871912228318661313082331068214671766205912091109298048378441065730082731734178108634340926109070243277573769650576887249318880506131953183543795779932677915801240641287591832847436676291833513675732789517322464311502946866023374500430259568669755093283368306143230288362949533864194895001120990614579029002472213985780605012889212153987701780426649912559902132653972156609784849834849469261588402265663465841216493108953539023966555774870853374339196222238738560989325978026630736205403577866700614160358086154478462175474971739224894499027155256610737432593694276666964630386004889660882610873591385362594091466366101901385591601245020881963919698314830844613230158774149623579690698348752726541840892068713246296207259659742218447415797103512590070055926775409993101110274637594043823129182370634648114963661526532606743161456591329133883999078005236492509807246376481416796592754932743321862915465796114955175202742695310277572608861826626961657433592788084257789042378782742829945899011138709248012591833972148647416876489887805182462754103178164447931255262736427264462036590944102198516190731929982110279956065766342777347867601911646294694747095602255523152464047875929308011993574695150682340680504326177983016778668197406559268051924793747938940704223537430493216242303004988416474957036860610107528229178785862959946737318817028323078920660696481719787244640894161306173729894066516655373747853564411056879486431909281292632857715742890083717002086550754958996298987832910418302220504999264396807232672096013694714874630674901066864307672122972899337689913665492771000285853502885476135492661144478824223834598617293933921183649890031610768417806604301343893844331803716293900436828230127537779491081781300927431111805565878212632662477874820452571665804162845615651224965132424614636421283731429263964262646742518654725161877901743327195336307859107083128504814322173227435653610705751018076629765330090692127657634268960816401316779327143936841982688545650508896077568950023040651273233841017882292633417067752948934798111534641980919138027062258574256080464071979279908168168235256843850998309482497152085705322829425276830473962192989567443043984259680429293635572538046220661129734862570253195983606970259785170424834655284771834848907015810135067218328952828148366239531546679929014575327868914203864310819529149210135742643007065817694600609607086907964122808481214981820807950215580054115608157373360495659644676530620987189261906651968426374027660487325757954316275351833557865811397188345194279014719157535001440043607620423356340970422616274720665135946569049103239676052754065908636972567368346400759674261693298571995352950225023073644049430655433343480178684476874482346345162430564583374994871503518482870689784839467070366854427981347874814291183257882589370242481720357150970838583453022192204236347260947712388904237166440888295307481063313995016021948433975137207259562193015758914816322006709469568588186980292029923924660318826599538033027078145576974466962516884904674830734909064714972946811946601484147805418921857462840553927343736526528211463490031416156681523718152117757304579372421714800549747423550596444672739682151810243903276241083766796155094943385207085048947695964366152443951153644508422704606010575138016142014730767594287505737486869747661394666040838240056461426940491424165020585410452075649157244990497637434734383782004152517551158020016756837191924119422992773181704824282925393031824116772703225349669832958491717485979702823456301583720611885146460412734909573800236384579057301000438587251477432589392055418517850080616252853569239535470365762939756629125394887522417742926915602714547868692524424468371557066393819473056217921386403818442112710043151460979670102100877845053422624839459011349533520779109028549695112389224745839397625008733615385631335984952431872761924133301347963534061152784071080084082306706278270412552401355210273733052983823490960992663370918402553668886067263628247420019725172710660799051920016880737174481243228293543903503326168744886019814016083609025331130034376446088381677127948391921186194835664328870006009433700401921992482023480106301875308167528115604361154070956496009926112885914371577703183326190853985822358180924778103393439930850484789339473006957946046824297692798242524462104356177552578186059059361865103517842970840831327245737674073262924056845028886179434681731606259360562955629959284564387002236565880964010838847904290896381508705460405923082580017372958447677915505655986309740194550556225747399064187280412956767320772806566610052028522493429330640500275251556061511586132909290385783075031594384660664797193262203495584702412985753336928819398403945031488608199477162554138382804767848028254995507072026775372967795335586720707332038851381922239282360456844015964186879157474073548511432120995188877450951985277980873953293778573947477865113719465073568690225419483170928008311013155965807846378578277180555119632110130679838296816482640817674503969622831485368837682556078324778449837918628451479275711597300967692558337663748336725099576020893451294645604815528564803368886259372730337668079409109710618039265572897191904847881894875197217063367404926141868131207505435002930001874908940795097081062054486441130959563726308240798083705312836686394154889213189605431907699299392895293774711088861366820964433263129595360375884196505939296242022142789208754863148305919171861149999418089486252754652315111898569056527658916715607530162966463968533917017226725270297391262776879757442789100403791340077547596437666318826474433080893040102103087399532703867705228413362998750529185570665211353128534008334419923920312390730197522211512119334360881069420320791608655579615063101864983481337087967578155232413966333345819807388167270603622758108439661080644338144099352146144583332665712707189380833095657948228527298498496782778234111218005244172372116366990739682339590793606066619001350633891051298164514598223620584992540262151070902050363842930443971998250472630029829031718927520054674677586270495632755745428402167707825865751465399885212054286929179461801550575885813379159625517574065139005577742154444705931698237054604325971279688008634578988614156396695828702642676396493972001178082308144605095514759670143360715319725968002925142327373774048191919003938743118798992170234751954949567180594868605368688155671749559288657860066713601642895416991716005517136560952309667410557758066953219466182143652884368411261773418422754502566195043210996271340623582604968878789229695999327726803269709431106965024558687604719672973649070206089127167441089624120345664004429588247911535450962880359136853983834572058812029362192332495586630023383453886212152380754230017200763670958505572987288939838224672435360647836359804282264111297216704869090184121918762604413474097935857153391384445754955865278524997540668748405626743618560363750804877072296358293992764127122825777494189083563770204305850142657293017595234189235556685615874876954815053161138183032500175940268341275142048061639157477764035679946307806240213953509814586954348873699644204314496582371154366690948874563968232371809411761919321460947953255627342899035713162281504674599811141366969833008536481776285865513386295099651418759197653910749756268388538945935634170681962936044972608270649341627233818409904292421700240104257184159994605749724569002122232359827097489331758642489592310667048587453771632683928212863826039788800139436013443226589446931027314952822765869620509138114776002764529561111147337252530042178878424309212002832520977213378310593145802757883559777129743358239965316784142533093323209937029478740992481909403662753626235297511663075875972434876678434572745049593009932131260228505376094665760285026212481138193133532617704743307755413968286360512506198365241568854654297418167426407034503591818632711523161699250232982747783428225069727572885161138713754357510739228275889985314638350831678202817753473472328042748764263928062713062953581628237736946755285567549351996679439277145103180633239165507083730302856054368969772230933146928119960470306037514967376331257771264864601439010126571401571898207385552406413837002761247040688335794257788030020909997398273858823435332239758420052868337612481675919953370409849384981153487757150337499860725975741052093237697657848409411450877018611468753629438908664117653659011512351539596299927701144940063816511118043771714358952371621595502797328430630975829144210683470674564227008272222720329508590606255815779072457357664872640285877840813579700187652735786180272419606610143430920501311580874724515943911274242742394477948824849053743919217391716183070920538101614770000117928572708936936754255696625509079128903975903051477177741377281752158714707824412691116277404678965615637884090734184634237751040400146718897822957500142594196308047201342080885604982478577074724916760253444347121158051688426982898083359483580604798059841545818224977092731664749885531966915049022390979654107424735165434276483472193562535803576287084613509991169707815772827542820539446754327195230105491373583347012068011028312142731410147521508641943471691973349860409435629217819603930783933030427869715560528472500299781406140304373389086515309767545973166365242336787971771292533850690080656931215694376591064809600511820091675708006275025053787986616719990965896919043663100225394943837583813959206048844065680634824458427079961447721050364552390078476031347995916586612539751155993024857435949386101514401296812478416950545705417400338605188631996595897083566067326680752228692299142473732607745411768649176594841181635813943066866692109559872967090929645303578456359108877317865879594959584750175316979376724637929971014255406775782548143236028074151716617657643708685021344063692858381094575473706772385391639765506036433556440374471980078636384143798424119602352131311344264313938464716816418517560582084951223736651381803958623849464787278218571744799260735076818298093957345354259171519417600183461898120543554763030719760270108503047276827234201029384425794431071885685697463912168186293245695820818910862583395460553932252579352938111565767030242410568503554369344640827735132527544522730229973096795631082274704066088893886495153055666008351547419047418975145818736096949612826347439824561274565511057141690930726759504707765079148291048051294610475835332712014520272936298545586807141483199476775860582649936396399851487771296671010666466116150070140374655961179294843705078460337583513363892991652698103672792020021922716206005007271765734940853968024527396958771305564160408443907087518318200217263613690048967543058892238370533118691898180839167870004939300094178225415225027312781958764947497180880701637892830769751109666952934081851469546358680851299962369021098792370091085714233753070313245995597717827987439750546199735783745534014342373655919606503413591338337958389167623576290155839293189324621950835349943702890486261117371576342947311084475686402515421401508038091565520694433236104628881191319757158203161911540986690874926598875356202299591847603929154975716945158840613704835438646703017422812724742509670809593380893923108825169992329384480392681845585658852687150692210846598650591811700368113643076956801356579318014066090436011693509179317415555730411581525547181652771088977261033188439098322661028677283782865575620519074684701463848056497926033701047951346470783294349985208237349431460060967067393522590948071689446115345630296053350746685382896803451466098640768094943051765974872990584962735828564154990874996405786488951808773171653507821719926798908590609444154553320108299644444866629216495243607384675508927269499348274981494583826890199174503649778743346141753433898715718689259306963840715518141631755899018446300992722153249322937065297242104986197824559603313246708495542462282511837904365545239733768565862010059284044655719239268792863301986714209058663723233609357816762739384474867260893336019909447781156589332440430476445294990439838650163059383525796788393006828784905804175462034410484888657648485302738637322034550166982945868950988447193261673827735153532274459416512246122212945762933430322237470454137881585115762473895238933805593331740027344632331523982306896255419223430289625432089770485493141335351814117055141078924954754613143443592220440152129457627585672737227793563354783132237967499513721863759368338459513648698891774391429144644935172155549794145869188408093243829185848605707126002592822742576109109050744654309020979190423472587351031989519845196604443599803278711388286703992799106905099208219514672727868018388048789506875663040406443009913163157090446121296732016870319242689315729935882220527621304180109317005058173358120636122635816790700479853700852066121262192409333580029539733707612206301317164629257312505839190582914615086183836308416923587210469964030537583159678703264841344364725024606459139118489847494184024440646911388197225408570351088162054020961260649323866159606240209333556750892361207613213535535378300734183860979817006398144680689555480154815264964323930814381687304766293192982842235388993198270774446926392037771846882498207184793292519341250635731684717156623709882495821665029482505877552194331815994562126515617700409973240964944477536268990699207486879937131897424714324787426938058151405459799273851324389752792553895285981323655699364547562976274100277599828882457478981370223831804097168428261842203715906467892733628319305756061385379340665154200148650157516191038771349389187969450656549349719966295645430922371187629593576473391782896245208590210101246194626504666665245206936919070292766409555408491302860600025606626174036622566465550909843707908596639967611589289870711924698225679713470767674741688473200134925420828207625348019284853790833027087384130298518664137172375218827851828696885509647649372428748298393446450621739913276966768714209216068828961434394789968109736201646759403321768152976594968728499442453354601062278146207419490881437097217002532238605564854902829140191109288552210901647779732176776059791194681311946345008625026253960059570862285029012051267246676646323716412758917912543682401408549136652867423020635912053198939407017583679731469760100901282280538012266181963616698823386627938624826469133932658087203288112013663641918114700984118303749149808829505229739836067913746292950725999655370039084961720104744207277529075546988181608022005488369889031345198057211753415684749716330485013552671031171794849930743825537748900010384624445245103768398661011305534708339994529785743810014791518091526913910665942413779654939732989845634253566617908566801774856126584197776233774628340768173436637577708515507715046490936490140431303210371665825153390648175520614323546587756992520832488441509749190288880059923095048406597580379541103796559417984942230925189988463732216342135784669161645838508321681664047040687753028634188414004576206631146864337536787155824833449027351654830315382116698664369372415023718374589818221542010036281889974174340865977020966086967242079075718237057671139547713015341942420885255807432395436778394166947294184567608112038371626608412318441525975944407208687123317765563239748821174074730150617700852041726171696134741049284210245836650806187364205864773249643754397054084514265024546087060904692120317095904686911759960400724464089215291905400797710195408876832650439568685897033799285265668578032039703162461848077215534726576139562629966960968237778304869424313646634876092153608671116840099984866745764870495373051771632831933216809897808040288220666984083183374143094194872342420080350455461284527926619029129348345264442353536694817541239131962327251582342320832962122810530522650469408973549719358949109874690278729131342222246883769246182126857712830347507221866149579681807782990602573550446834447282632846906349688047520367951365051252362901362286084229314199837000049997030002275670097672780335261439799213253204576972811421058635123094551407556209543127689810437268725214856696436532366794054057821279610654114557910157728120205744939150801766915315515215771949507311307420241133625080648982860817737394191360583671116919280032824306715046296052536614956850976762946934211887365907217430202786886759659423416623559635111061057163071595853705540800823966821692019573455511635804069331711750026406894640149111080523335521425933478624887906484980651925429816728343736707792800056053303072331074110016542049160750480852377099395913760942315155119955744468900712139675518997034814214933749401712580465209155706017720865263608816550172291065881359476868080027846276800989560295475437816264968384821579822163627386715781636799776957320223394811530613836068640642238017032001878194797092278339929121544807382765805343387148828182198931928491676191028406038925990809894206304248229002507197815854417972214626469927951795109377226629924908865522416450835359570765807734403722908029861293483039857690893008658886956487183881199973967680581541822370728149537968593692324364887336230334404445617342991338843081319111803686716834475093245694463287715833975199791454064840755525374455774408915715221508747768885268340116289343953182661029677786288727678522753735903114088142389492484955090724361439311561208809498266694429865900856430160269912266800880339663008105086664871263492714306929515146848899663109303719139710606595775573753576667608842181347813216322938481524765491047266895710362876445653408255902680518283654848546428964865203298596440532632366321159043681967021069886802182187769019189976058182504906206157343528419995873979946226627066775312307660043239093651495412198250887923497945958497564068125295029149414735737567988792484998853424283284394294660642720558164417626266138098811358236495996010274774986220983815764807367725592113170120657041470885784735705254900982783641860957776384915278351588724469670771275650496142854845202803730722633550706026218029463358054679127205001957779340820065149425049325966705342841452048335975630465434014344619055123772423340695875379486758606516116300793634287572993082900931835598096171256219146325971720580636369288997698797000180978155199818628128791265223482080967806077050686187352796627032683146607680963825075330334329689168039092846619629452233450452793493883038335339042610898164831887374607400342854979764021670515591563056164657822697998564411646760317211308066597011859426236396240168188856683322516997227035285710543446079281190987072929345271605013250527425325177867717321272420075530907303740988681993708021712623107670816522946986225164954471594343297955158189433130665071869703529325501352826660416729203268761804497907861835556727042136005749098021443768734778146212413605780094403831656597207576632536677690556918209959633150901076771269730946861874144025830669861534881696556219167304194094462108115814020430853801361469164648000231975582779439931894210653485963518411237009191549162674775258975107054361084848134446848243599951158101782095390864098206370927691360448413681084206788947033539107763009053797098831263533661642286530827653560344588741933398017034051008259467812864303634219382107262145213246202624915666330688513076407892013964493496361833078854918334287380654243475319452858588825181834439662708289281495455989070220114401926214780433261729498872478845699340413455286084727672348528747870780663613143252681811557471341506188798454338511543859097028994776023683864997865535544849400008624563042864075589301273667914114561498787991233481695512956912181134968065310242553599300373834188116752550931699078238174229139862621053417145485401413781207434078890350326373767813570457104979915778298294561850364416021434510091627845626533894195499795779231420886867076381934384577140766340523103781217010413198137545488157486761822382814651612736956996439379387780122606962715940380064562414563875633932309967957839767239924650124225367915198072042324520617998284498467645572953894655207382720184615144631398571267748853342722651405541211851023056301891946198789947850167262973554685153751677763565404226198060226872004189038042722246921473178257286307517756307652396127478958762826322955099050263665697683315270037362602820162779428751121508809629921386548054446298712236939313074249509722515298993849379464791204289402038681654190238268091746144763080258458550174408654104721165723717020699111477352051993970702329730077157966023291725950562300744815935575408890967859792869628428797780889276452083623671212484441413655633155342750157583862705746861064386792506202508886506339772324151321144771756738956742871256969848039456185656906749274812709748231232825679297404166977842833166456039134027206804228529848860877745011803803398029700187749435088185028007271316888884382003080582603080356008871922110524001497978406945141227144053896030228208992153559764060516134334879889313858391850999135253437681557697636269793613583338511949419260898506304667735210070536655687987735085531120434853333069224534983856287667890982744520836149548766671520357197338595835992532897792027415155928717039001608669508026524878376230182403987403158700763109669665866414746087508471873076385435415887838748425095959264850662221338127435782946892027596229708657883402480958260375601577139983224910627666381754634704987697833952769211688987717165613393888029174647980960396929487825634942581139115975862573289617046413324309506865520177018302881872038004344736113200262069676073391107912747897117947207076464590014322808134169510731118788759804305626617375740762700220091569849463793733626188509695249063205406238424452828901681646691599131970049174790912844582036284856475842914801248879168981951997408654330614229395511482933422818232842394447322913186168454772719279560944707238582266808821645290105720137518324693242778901219301498834060084940522223658142698839848152198939363110825319853941133951491558576887744474731527663829254039336003532195719762537508638631097274148928546128357730746732648816948981646254416454487914303842136006581901229658887949273145691897007148484021470777499170685861384146904257392153144308510768225109020822313544965100906885335646180971403206022583381809710038769139031720571984299775236843366806637246812161502076568507328057934320144555491289345262610399003507261125549218770198046846372056010119425774603441789717663884690662627951237734528587365246219720839362265066616492847192370603351912904084402612116219695690398680731931496013855358682623499756868190548482731640926319616567751074567032974066877827471963517214748601341597965699325992336518370096411157747242985791264777115667772969070008331681644737949168764295607700836116337117146587199065310692969139150131017947950297478375090856980944670395368054554941329706257146603636504161605303122906886346387232356165589803559872966187608099796550573416714569451976777413269811397498615679415393220711989583177291565256838628581683791326743315763624275239723911769292989521851985479675886436691743258306556338985960697612095358186981389930210892845784876772305057461460328920131988081053862929583155924953644203609062631786668024867886186669589432073101540266496725146425912719868161437936847163778687970173488670060215190451034480425720107984604338634745527402499490641705559228436437715177354804115790387864485518291400276008495570104316413737699408106463398635703620186134379022813191859243485255515690747471323320347325110672276144911270428754238410838410950344525895586585234301148070402413568337280993073582033459353756144672980428350631849579854251476101975274087423324574690324965274743609921814520744500204855507663127170462233428294701646989187526510246853363004375580888934938220661527236689398461659646131662375427517187604291541129261340996547434364202813669247995481918332836804213429100893179688489958493005461302235271222562585105765283050613139258884939003859435319157462106872957274632867370933712139633939831606232248831634213469233815645131724192673156406278318506290985605295624566163178066853056358054814158201377352399656586921754370732257256749997205462237914465642252573141606121975500028951551640980563678631840611231821354767996933527098194336201076047183020365843721708784404246842121401204455456684739843984477208973437779319694912019174783288563169217230164907885158676611299065802457022049006323472294687695703702764781915456945940035303479458606906470719546785393221678979102517638118428254635660139381350320858052569374461204308916383829589863066226172338855021516980791587883451917265154873981696473169849701841534682355620893058070371299099420793108513583963805461285497230342112218085424434614469412230322966697677427746439883568987708888649043816383535957143131478559486413412481101987028566030176134761160842498923634340567409435994673550479964249468819457719038223271666920406442177882272271427669430097957679543404245229963242054559980269842121187129904392942182511268484981402988473415415611962987087702800955731793542543895435555762378270286426689722399308183970621312175915701634652688298782460718914128410760041571414036873939437434569078172671107051808779159035813300545260595125327428563510722641973682815557562736184636812436698232053208461555131564358160300039248782881820751783193308788403151241380798685218093465157189913085615365021908890514464707685925968143276144186827632821823726620085997270543704098896122414195663139632158223835457736548504417131853520712150929507304047360562258152822509687557873598749655018181455936287633333810238826390086078751013991496875756784751183255152564233219799328399484783688593530814250148326180032774452933073886430942805862285512297596638447271412060717183156300976940847158607605287262826683735978436153394106649264996760522513021107479772667363300763559834299308279079460845055989117318377161084863634072222046403158166899408650297143530212842376604632385600179027231259795829992621220156028541841902830225166599051389128065471414475224942638344679173965830582350135286293155191752227846979648227127208754451905412037221848511942219619223284127216333955868882647190410004652382420072285751293647407449817475825923023359727168321338624430541397247622223779253350189359399063031278836990743391540165812148413632529212381366688396563614738921850251045682372564085382055955690645008361929289097894159682856824758348268947491897658329231261230746630801376954394258572381052688093543867937438859841882353604843839403018348204138903682666467472825591318196241387031361244211106834435438573613353870927329940404997441274436896783379102068444641192747708337894774601760231663972059566586804817533414515777148106947228281452447471258121293116192936934970073682551431327183330717537908257579061708930884177075165659045094853243616019159883156784513714021335184573933948203562180147196236165321071468819693011522584850788131192074995601208674742385984036281345241290151337418444494817021084744933611412951993411016537477228590663995962356801301720641336850284576589922258446552651230626501493580716051326045051270551425625585295217340384902924415984737176361899111833169928316515467496835058677328637348100095195855376850498036528511933397689148578699031252354230734757880912515318838653684727931214423948059590342476396005773242025829296296484688621041341378298615819877290196010382226647235984321038691406519845244517421343943921482239331051361785479007165570160761999351284872174651326174939724542814431371881761453189568516131070401623333176859715559649212100051721419832748929595200976682722730827339163206684435568031524228840073613281801511592950676267869838131141603061356825874271320509014721904411992732221504232286494693264934701061142371167327947794735748073890449262447904524721701231308259491118599735450203162076855800650789660483764318004435291287322888761455616031476529512908850543948551892279044616421045334593247002639540188930015659630421050107351659140481789631710823132982915393898778703633893773333288345279412643103844443422116687831031735345615420407187198619193081799010011311953261625412707972025444254253891733737892349632979475625497547126079144572082057344874405582096345257443787777644066252358684887363481957042923348111280944007702672263383405481395841500096353702728735208420460761862009800476198894140932795975186608163495151716721027411012100536404395228419631619215183189409375692646820870173811620045202064716506108431130580435551078247534378601975655169915795745070229825706035640765703144915946118246938674688646454101843486397022203882201278850347631651303201613211027423201281238017072378411047886390206488787417884150581912759961815432743323031198683335218433153158110873367499211266261961174033838700211214574153959128162451457959238371567906326912070048854253315132193173506789353867780691358667668827763608174891831085586397331738595490927770325262947765729416590448841441495847120517046496087758031407968381343348943828098886702380154246205200987117537889516143267451915576949958286399384456170517583113696025144185206485161704416994736011374502642604022457631616998966961626703412607417497357434262960399116011160199953178383150385168527267068246813528431647647436770051048750331022971412555777612535844408164345236492862357777273149199727037833304838241396121853998807265189405520157506117563838879332398331901354212658519410154826185498321519412175951222544396507320025406980996193913317742821805300790265220927824343381084857416671980988045566721732807443816198206891462816353474906992617529174326172970516002741146781672544892054851471958032734564547308933207934244647554134517154937477374529164479300672900649949495627845669820344272842311299873801553764429439203680844717515473809706667755263001507249947983527928217818006686491150231327772583938210222286852237856409174876761216235685255443433269340201248912386483136199180796192413211347381937868959305435218917637003824386120449561290557316886172741054117723175762642409886497015653749070911952967314638763919230301585934262412504558951740685831183376797406701136665408056279082127002218206370944128480431210497812411720160987205505494232902940081043124027707444613358188829789619812323301318682612536270035137682409136389264580116768646172211211278111813054961652775353673539853956616759808424685201782751877203990599838528345814146303401168158151802819591695795749864689723012683448543418489277911849780151635429086783953210493294890822352205931093604478047542357129958961725166464652336246613500633712412056334477468864173962607823767930695540916071070697739445553037343825533398727255815270891802164282203515553190272908188985903276562702384122623004603319057499525622371702380072724258761113319374092053567867744646749415117877092077529693976083073237774912359895661271719840017391152881440323451293139443339636809048896276012565695760559009200463882091504912998391186250688368979889311058957388283944043949972091445115406184779257172111316125325637893808060633793144869502330132797691912865362618243712545475122532741682983232391590890631696702155444535458891464778867238130464251493940739972071480344602870292471771242889279774367975286357949875225616132231146027273640459448805481239020107473785687277337148555062370621002021522257711714659417307961467774015447140408943027936022280525568585859733534188023071305250272477353731272611942020971990535832236524674600225504566233537224503023654876620490216082235906810353846946561803381562995957455397429415483962513675914490271062113718054785050539029035814188744902458917863433941183859423367929057541678751019822638865452376043849737509179794034146647717051652313932387860414140966839104970680416951527764122479502271927777119133434682827834198624506873121083815620428449719479353776092148901551525148908278800881391287474278002608103073591006732193876822013497666283013184305361663378613980442206729850883595564186357238653915076827730085973430292699271330120926341828918275209231288249148653345028503066153238653661265026369844414436321160970220912027366112006005612771900442032152160568229408787039803813177270372213414887540476648008259235264145904410310842753169812635334141906080996241707922494385534445009925534469068171669673948082118610102547630545523374064698361224863358740773811852252763828288859303331163352653636325267299638316126732726455833809968127130546747865520551578719944566437378745171501720028922881872619537659901782641919108447424402584467361944534006585715832073418910359206347275875851691381880894204161400054759396929830894029414198276646571382473356943748630636394990666068586912126426761140559680857594470555171729910312062697169629771574904612211819528130011910744519808911761379888378856259801579947671501380108307151002258658583317306534925446906053380353587512144904380275897852425101108343514440966889030275950941403546783737914099815184134331351325408730362121466412734085584909017140408843085812278529576249968939556356448098459579594496448921411619039588941767306800176562423094931790800030588816454968352799916089258854158713578137943375355618981006712131817239266308177597494135731894872485757272992542925720820109931169216062334893890755572313908990120541674804208226436730463154480105360280147394841470098394770814822877934394667723046556905844770013075932014963949016185604715976007041781241126188533126964091681045484251266054375830458231810466598281718213709757352324925170248681438298101765494648798635651176275010962679065407372391323153317090544649848915503389324627999175217808912775721916331555583661042470692804401514474142743847430612959361261307178279023503416118116776413427111820711730527677649152654908892092238276351301144597216071103318451003118682222760908366169296580357472257302660616074570199921885129849756782920131907846655909281636786413667734339987743258727769682056715422968282991293314507569391641232851108986926532082018587183474573188112904743063684623777109565361084616083888022028842873215164948715338278491499215761744338497049271792966462555348316371844352028816672828169253749407696951004753852973969784734488185540888936627374100985601960607178229982242414220047955345885159428688604084808053821389867279775268880220776717346595542016378480524889717460478519308215335539161996871742020895438014685156957571911745462154565330639701900966488752501181430813945327041192823612909063277992609594121378674016526152458869074045783021345313688904229485280359068584836197025201670088681009485069076217686155622075590098218572442442545698981307672587203849621475538961210380490932334376142996235234338813604248216714859571915158299558021924270433844194734577446961394564138236278015140399062208357884010322282416048098703274358157580370846297821940199383455917154714079413832874926355149946564862410518196331911175994030170348792071867162989993084868843000554373786747732170196734840968017753899544619614753258493308265893186949975888278971719323756501374064033034754091322812954370653271564355148780779790338425046768255989074677655365087698216513706607009844614446997800377656378769603083750419997861725656363214021291948283732597998560491838734300458264601130290917344869698782233702258044855375563517089536540852065317723080080785373882331871072923293587184330311556462725096412350516492324459907431266062318414929947142464660919754512927424785761527491672773619486274538851942251572086146419174976245429095318602059149460870616892838806742879999912354357316416553885478163735495018964379331520702518204602578227232979000934242258813091445259952951353373627059837376925957987269738741654725969583040533235825692777444155544096110784156126277938347697881983418636712732860488372168369533020755195441936978833799760580154864819248834798832249111614687348835630942457718002264053140300778622979847516676600867522362616110429972418183381409901398037384272765215668628781779374867946030006024014353871632070011219232683694769332408184318004908252259780511300251712002204362064762586892198520562504883982106840597022917300788819694705027890290221571583504485523457404613520904596857441005000255680091490888516606907104507975867736970818064647958305718904793161842668401516722696687648813261564146183100505563989219741209926453884575899285164040568087058146886196494869844659214262305855201101164385034781564204399320568681932393517513243638355544478352333977632018424141020525118468521595672367974198120963612333281993430239137790183627053084988179514253329227394717931829648031415691681340178501087566019446106139382204945495680811550412490746939904925595527855496935379241324003804193510154739224490374362116144106501325324914084755126309116945848753699821196400520341862107440649971066174849785711378802790480486785793308741190753403484420579305878407355272153659623283477087061863511296031649046582119201682522204668672376031705835026978280221582669048978750727720772189181801126763679030346056903502443793356101168760556856275841321117232685582562254991703895226988549211000117613126313530866531432607474819305283992416260412232902632841358922513660218204535531016052530952527655302436708527635612589956210052977579358559865456198636412263903027353200813333472752447348541377481562356273365155756519098132796802746163935834605172137205535901563547033353418334604974198993284901870593120978947936778846479052422548406888880678417285886886237658822254646762962108581165307923962149752523252306042593195893654018130210336886722014776283627708468057993082525887707281469160724417388348823646125225883851891247574283045101008223226978180693671764579726424988290821245928866698819380195270592297492152250296912382257882087509189583150646261443358462150686105388115315761641585226808814209018012094410005589431839799042388368786090236268571121933443917580129264762038747876941458427790268453741450626816748520099217074606933482446378449892904587237600226604742382765273086689953902870933133124858193811334938654648441964300875753810744935951029028798448171307254858212464742160737126928229751430223287111240236161980771644253457808207400418247338407718221812165557141517891625658731706079201738532123881549152367281807334248450636492044335384653044300495248624728999348868821665543892459266630053970959018987787748105276318939729949582930144475855556166607019196742359496304976648945090903951928166230470950982731865251719850171778428804745729261360600758260435368619642312725881644026605116789203774970360588745945793931478474383804825674598677141294012782916640798298175988389260945347864170744152004149355410505618274160531711328035424111181075203886233798836247237755274847259262560742352553592949005668457129690747351481984017958580024699380921057710361132555223039409113002792752656489634752767919294185179067866687125945138249005703963019364765151958382336049653262750448716785285170351455601850999705738562672550898419942674781903620167058337434184667047168407931665532045938748261688864524593523737908543972278250945488202429064449591902688037742096236032582453749646756731908576229504919486343063118557095048050830436490274700550966951267043127881769786965726336375340063267594736105431167802377847226460930470632750870221724819997099705569161474515721279719396703146877441358588713840914863761937306232889620980578672157885586130754909597429623901397713135310287775892793430660318572023238542907782769861356607817009636441681910109897452836753027111574021368012917226615004159152571122801387926445350047190077005511448431435582755691379762427599021166454793671385864458609972863138502276554576199623886445601305638884448734175506703115939441879526776327607344316410515911127806553721845657555585842885460238658055888744650379839549200815623052692475555403498776829405964027401213085629133883894921046498719371283457137107947931736412767431721828172562479466128225776601899063800315139997333538413615396556989964000309149731924619356995279329898142337586004525353986152952842967887951611966481216103433688475220178703863400172667989433997828135045774458609714766030640397336828407820268010808935199904880685023075581331220947312744470612947201576318547127205253036517453940103453794875874962572618408968356856344093327757324235630312203509467352556979059667295691891680150255779383495215629150875507674119505354292720997050356844232063702515600980480761159903851837958092538143570541280216889174202250720803280055222138468268474363959338037746540580081181873241933219101512544278676860596169331590861962419867022538768087029323894418326820685277895535154861791816391277482714036576460065113050063145305913981281807771746948905780490347601174377009530864072024498398681503276104810076692738410281879623559740799395412776944655396303538802206499287554050752432021078639100157090182358332088881536235069560572804738482290752071964344205506274279466382038028933912819030789911067680615118101310609076443380927355260230818434123852196783870125947121265265790537576435337158267333982727349479248121821474703596069684963878447735152095194810496607648823468799862913703486852482335516665814518443217080779041776193282798740977511703105460584267417859349443980121825026088380313997049842263606768987772016838371670390425965812249795830348564149479865924947048564949022422823334334893395723762572376843158384260301083963251760255082831412061535731003906659650947701505707519152516380862383636176471037059744279404495951541234091246124400997254964183662530804433132835101878452960694884714402893462078379161338284171624829383876093416795251116433786600694910122026994352843013792086682080354705329534822329524095797608914214063110664735315660515583788369278737874597054003200389812597033720452931289015316037960184167686150239283673050061857343829610033428532519198243612568641152416094021651665532997518877933672262957124577678085961835770704569000949662561220818515322460145376025065965337150604230916838726927788289866263711593750439545361738710926454973756527319999610968586998373285711606103381993231595351057841309056860375060098817625628032207165548536999839925379208104583429333644339919409499456105199577667580628419094630302664688119879720552630021471280291910150583621637614905661316926846565374233920604472608829176603052975558144204326112110448873660577589862752961693130443009777544703795406279473756979356517243804152970635147068717164491964085581427925690089446633046468389735418210891911221328677292375037062475543193507475368020614477500521398456617618281482872052812847662808155978767412473644303871461051787125388488225230576553185401099248730636847853826569829395992755268039171990577436591990218940218543722240657654698721899952140909635255344895892627190126889960689553686482980444539828148003168046996449016647993446550929321125918510804703717350056540972408423466142545402112876354611052028188291697269199326652403857874580726148473241260631318859581997131583114327377359772997189063674486955303770350234364838658123310274878854521863780632069920305280264770970243894347242258893282438594020209462675429391944396607245057344086435699053628420868037648998693779425013943788297981809874723862067781219102983632683984684613267956257378659649490276367964686771030067410503326146198605883815327699778031665764769703791789874653782716615105109625335280269103681819673720079504984740906068371494878961765565000932943130311656359828880577238941984285093135317242773142078887003875075195760722983221281862492654450174464418239505109943780162994620676772331503307247991635170023270733822710840237801940981388049228100547106934436607142983767189017907145887809104408364274039122159024561917364377331241901491046063397404091928724103160372536851187825525972399336136553308175468230614110913934808922162302525881269301498421704626791849538934863968767721251604240677993427213929421683082286297627295374354074642798297965143440776800270480235792986347473987342762184421930570561166731085037197471221447185796743524905592613832579195365617692496918863339205549477293494607300889270218554287687181217937174732327741738748920437944471494902390909380409129884273183156357921592171103716110939798083408219358435067072947546048624813365693363214128556099848488991502720164256114980540965472510962339713504722688807750988990425241865529890354616633059222051544866944549914301610267648936034090956870549746449364861149171785647579385882820141237771426759577344420269369869420763840815477947280714792011788906784516986723640499173343290976119620668109551159046309128906213620629683887154449602261878846671923371357554852357406084144338621309355107874609066050416936150354882785405060609246348933554220517279806421554810339228535667286017437619260931044148478747604032369294866650719108327778967419697609776555919627634386696935984042052587227427975127434830682095642824679845802211200121750096230375259398605142034238507656593286937716217827154296923019875180727085024214212681468908179410977762400153783977354118189725971391156500354557138136413724756124747078541579740006152616448157901189451106616245634978956736874926429820227391890069049636209994414966778906542583904456283730601609010481440518373939167480324362153467766767518438625503008390861587578240275498166628051294431251751912336704028443309763534729137866230405887387182024577496889916537052204717585240590047479855556612628137156699434404025048601782869223649540987563679491214807831319843162721325540152731966968903049192535854652458691557361201712877980881734708384115830796083231343906248422411830669210830170618173936168090002349207484469039573903197060336192249264150945774821157278762025240059283728450479268645718120020606114303797004469974186407266203014353393722447664660082679754543049501579675766348257871976034912627784833918694513844230271403341367694706009133042967616319063181151972853573920630159906701130955024987112152972905939922380809178635424033419816251852148517175849325211376024955155372356351188604020332406366561284608194576216406593831842899874423274233273358989699245584507034607087969715277613019051677408165370323716100785130079201558790831349362188065582622191421582557513598577844669259221072605755041716193058222589519312506070295450812985387405456307669726918330187917700761975855516511402269266776992469284818844700163580422273793572675836405362448472827671351310028725770725358763843907037057872473173624681544656739123263832991423589408249467414594164913188050458433096879647850362228935212584354438249195537742508605072587776246952985409592382343494006850296297473018258813407627705488154148303313375291960355191401001948690669039340186610025832647458907535251397360771857732112684429501837563647898445247295695288126649336709689819576607845985905090525713569024832867567418414787178681948315817847831338011322807286542328746838598485823614696197689292952440745128985342168890271330711286329746580971579885429574836288242714965367898820287060873806017301400618386764300616649173478190500788224328015502035302773227075936520624608732686151399617814499197877540233174280537774051023916377368299420694870269974477642343476614666156632333262821967624623885679732977487459387304831405264529297532272875043183780781434723324081715955274692931350114861081717607912512448546122612310396929025227066843576271820341678120808213921390389760529214844456878515278739283490470240937623594372144180631319377261631521078787238211988691607144666591578843266294954175115862898699422851895166012618083332665942687224393602741163242672845638645816182809554564386098385660994589841640584182035920712026143952937337035108991787682968158607635651541112889274296901939635069918354589694818308047190180627057860883863786294185409038613783466894345161351584264027436125819375782205113381638159224665949529803859177900953190149439448550106696581704029194484085675362707935799368563366583070869915274900227324366860103092920252164382787761522115591378533862682858972944905815779145506038936384333081896959984993661123627646624084628382305944876116724780110406133228475721906950188711707286551746568842299156666720853920927340656787746338412630974295045316748365945402954505421932688722037057571689451376922396259134087933615925698244029624886791030737094243939694469275778907140926222027903831538449603742327130992517432605464961110244508293673678948831892233569730486494714360405176100787083105125619538299660733953256177349674265502798829347715985643789421480806501032135232881326165334841850793057721554585981747223477923599448756508658726922784653098950043035003775678497239349567179726860713642310263552958074675117443329678304418615290634018611966008822625556305236037334626020833960966732369933390482804798531919205259886574203349445952283030412880703001349543249847018249343187669634150409186087890282078203496440466981200520049425889901523371643030038836006093943021989243633307586000732514416244407612553382888472833771827153512565727615018754674388325901338940003823243848590959147898940253255322960695361424425966527585008531776177741254976394907292878262478287560148666272651914013043157409700542322532318520286038216953023948293811271482138890103245537066242229407872620030971096219137286779913416264109475170537868477647154031528008011264399714068975337296628053578442678717930804706586105214378342795614450338645263769380206449537103952703576973290456942708978406407200011002630443625216862966019436368525614134778980687515567745390220077785556004145546463515401864261051130658221750822401204699142900455971716374123561594168631155676873802037091052808577127089240763906230171780554197354908059845978756547361093676890144367758285888977366177310807189487687298195946246261707341213734645267474044692622951210017705638522797747823637503507490638322507492835947674250333345016946314108340919059606016899150651317149798363099282966575439847240383028072996512066784962610199695928284672853366787309886942844775842003050728466772392339526701017274972644811036707375540390936279905987257652473075463490415198747052207571492143257389284433058144257178812581976927831581358722793660892506314751567517916091492868968555839028163627025375163025922490631819988475552055613454231526200572004375475443325961777274471359086105684859712313843990971043703754298367846347634500048523353055529143969805024048937451422490611561080482396647953912108732625298829994604889634776529229137506049286841584279570420172199432926836018476770057934731946494236191592490688691404661107615469257013729782903904250087675278277533101070188057837149366632785529954768804326805871482840475589353645538211170126956129394926389872739119024652435736442022433113694980674598993749090167375318010673327469909850774289257196672204939194401393849637886443273160715352226816094590893317914535762812720908443737983818808737168747947195910903873304353458168468377535698000493840006042175607702003111671301245141414094558950392028663508524564180911774547899193659880592011936344779787124197885352575404909593294960214287426841566376312674248462552142446376126936923435584057947256993624549701337996008969601107845758600736395757907912609649917225117034046277923251960179754050215178746357592283014080532546429311837228535006710788254809160379208043239180270467432627576456897348772709743934573003982483827785963141639218391869370304387343752782751068815228870757786616094907025587413641812920837255770903852329990130395810893330351873553611214325932279005294640676732317122069297908830348370002423714648104088154738669602668184924609780387836871529374540305571086212466696347083743960410711147984785806695772212809183085855097238399994216421129794821854217033734648833561636634859754650856684979335406508568954166809501047216108831065847902091747728695645341462525676780302073353091494732183608076952867347241924317121854951081727788985925015249964588613157011851060509862404365516753351245497393954536498376067323930997496764052504001695067991968637484297394605202623822236968195182545097776664189912868136487613865980276042573659309765531171965795565499178094117999900701730404217790310904000738368936528830789815390192493768780905560888310854777047892247881762964652705997262419208547409901427939617172736037548731399899688568556632883977514374771309840876498866704924715787391000797273924760633714082753046083430292297525626907734593369183781907512283861948885355693040053785989245908602420902149348847092118657436219625265550861384165196287864189856034876712139647419569149715343560246854337079025004382302684362034946179531544752880616499693731569058340489870214207145293618382467414848696324577521723928832691667863901162606145853776341579430524708218989223231679394085470917061506754883162595400131204412743955755144022691157564413950019812231001084266278365987489658149939574892087626646270870184716360945695476596513234922182034123056004886417159409744259690398431677421494955878576959416911083550509836067410020645149913733488634349680202345469350160804905737946643923635039201702446495730797457447967721278805141291363991201838506286104317403517482876965228395339602740759044213378776349076883407052699145495087645296532673652098981472656881109964093453269447054998677472071566193706358422475145558515952968273730520004034753468271715836144121240890457648172352874725467121010086192417791531149505065088175699093717065628195027044913004888165536683989444830454393352266440441860012839671747439908714398216664695456411933122746597618052428811230085634562817039548955074614264064188884423645325196210074147875413271925125657701240793019490777604336770346451973181411683064480342384843377428191331081319294171831857591266039981669108387544578188610746207753324119102987116095071150030300022470260066572265652916509144362233777490793055603537333884190527073779917949601963370507087718147699757066128290457011866986902187434550858387788324708299660194860606089422781017944670597302760067143298688820509895908416997343066019044776564489228136661099504469684069345987739248983374559341988916416933838041793441988405773945417445151761233598053556214169886111141960437211147168429566665646245820305808769252684964931270613966326831898330671100723675758499648629959452533915693849335339569648575249608336241400508191098807683597059308784325744967912215947775673495316172724551866103791053341403323149061053192334640074710256334969926466763164213332194708134087329903194680516561412274386911917951996770781994679235848127196464970678923796590379706529155856136879819141033342507029184536955411768436196482816478588125125240461695480298324003553524532878530856547601204307717790058496621835558358715946186208963388258142752559002742862527943216049561647683143700794153415775261901600922313086431765597779063839132814005020507315356655893038461244454649002772792704186905562107316402750946486750421055090453124109347358357732671053087917473371483965625837092230260111265454527331776097935457187944923579098963714960634453980281452209912450273529759263252515820923858790903453135234097667821774549042845171290106369706135095353762595137170198759106937054568848396051179414352321039898265846031367868008848741562846475346232713045872568541988739614133587136611622482673781354878158558135232512960169151293693936895472470542751153093428236536737633710266760694056705842945015431494967930261106548508734681306088970694018180022951016450442106965454866131841220048252730301748761367172677752690998128832038554436760053956546541654544451450911534701315864632599154640094118778250464241329620771076705820803412595846912101329452820707339543429611050781744494063137163328059257285959993520912228813824783277685389234505247723754483949230661760470684201449878579613765436563450271502061181549366434724040746874903583559680826675856546952477617036962961704425826971966553371462318860217539163465734166155380803800737753307728871935932333105007195971680001332601300177707001255595659935519432469650057630487371583504401796370683910207885032593888091781232028187544263864341090765891837416556583331416731033519013051332908500433948865253912751912151592953765532275868285107516662027543047918291269290681506736157695328620637904558530572031237021734240253118482172281732955601673346903776143470092542828485326733778284450351462107912552321207454087054128522252431814015380478376085126520534055505028452039487990703067276780543549394816877968962903567052289400960389056406452820465888560262578818651459521485546093443285464006366208299775833959240038554460065178217465685917521490303224029969913584364179238797767273306908530252583484250162230954106851062679765580928347382181888770405378454905385669235341620956083490028246309194184379015390629131729101903431054725952846235825939048596659571329933412293170550653382474629625396895989590986963746542579630388751751452295933005343441756460218717484326491653302942127976841135294222887299104785146889073137066918067934206320528069193000646728865032788170300139427785181168459735223439105824276079310442339347230717691662983949180498137469919941867693683822211108316479089006801972988135920972818083737986426424166764400108920954201499376608039721102750306647740067062444477517294950924866137937097969788487940975710847233968968495118099953138785737047556989836827457080799216841237560903487530440237805217464357065539308809709009983969182570855591297448205148131299159556374254323920619683755691363034611404596457554593510299713701700289166554363455881393466693872257742705669112971125263196039431781471837826320168946499049879362038912772930795996994132505768540150734343208878333528715344332069014342061507969450745810660447955073146161960972496862386693094507862643580651672814148836501476011534306397869018711373834792970993012049579568773616441092995132282815543535987773680940037121772540391747376920839803568418717680146556107328203043639893162187029220547572551990543313820625035864681620719274412195853569394465884891216705250010740991097790169038413476441858934684428823308307089993607518545313175994684608949331176620955506231040842845547005339436373525307644122250655392129644707670028776462700445345211990489473342574844108784061708235798097473078697126976294224003768415921350832206223935795832720186202213084715278872032420896413642332085979297933755573608519308895892843062064817181547998731883213096123978677438093358721986240273746086559450171020937567569513814626976357749797328627237085508043805304546851463449570105664127546050968726648842576092103548284291333874682368072125853712632469112085075818408150224357988484163700657864014001983455016323486165052152620144259106625760122359277572096186575968886052229337535324839437541188022112779407753660806289733136883921383389499690282149513186167050041133193320766634018762076797691090841658119010686162884282216394120123700763801323481250169000003476717348865793976764216609620818485013745638735306032853856072830108404165144290014792856544944028618045872489062997580222752727084670784830594898580923162917338633290489324523603531670244144873070774005336286432506165927354449649817636375248125879605166123444870708885397608242445974591251989700160609299150533171720267847012435056467614780540527965157539064438195167751898563076152158420316375511704528048170513504890540107614754346899146178663968001145523605509872271270352831883874647069249282949789138296130882970063440558146832870775958664612515920037467676020957101675520858067388931425327964649606846149320390938911250739287305467499630904190882466549886892285800102715809991091035475239513749459030591552731319218594476426616624333429881513623995774483093664722004579437848728245644899079158483427731994579199221710331333288583329869794255416958960893130742565358404258172902462632646447007875804483313022710656378407248384365426043881051182250797003807812132476968243337654989972869587485827719091148651294627010539440307342547400230224597006164031561449392555920066522343530385015217993869268994016215486147603477777759832676155580032510182973638829755556742716536130589425307765601972567431117782927188695658576339056061805680509069406434848788003594308312949687104471900321868930065802083423819802268742186144748922329555861204261594454391396540281251035437019788465702807101913052421480390077253540843227945752939464512999937705455620280324707507173530197154526439164516816173218709838728062795168128883746483827932999030556663336390424765826217005519804737089863013038895105810159725805849036069496704499876874237937031101899231829779225027485079809915651052459803228936468447252315327570358512489177176042628607650066075480742215608604049311512379327797799069419624583476893468223022617645607622237331982539584288075689873781208167642506311805849290204842947054748493928864226063455058662444298300630613041309965910404807182755209540042837386555493853683561024072057844141118526391552897821556224926294696967373173307737330679102280341265906456743627535936935670056506666103478739850840076775050978506268508215580805830506099892842273107694832747895916110476026038955176577595785513124995476005251636411910191298767860600082814394918329989473148356185900224225322201242660819423178912451705779348292183955518647382017751200280377330679095816805469196096096166898723395768642475699745021730146790227785878116319930181609636627959021213652113451673376745817187665695693356682489621687322319200083153924961997067317545013418941635052829516905405574824504766266537463689628797254111621735338154948397591258939455905614412562265521333740281623012310555092145420900612942899060686246404961363278384509967166933952956234480948253101454938395479766925105084501729989813614117263328467232992486499666811321429861392194009372126864876333497924351732516085960173855286746965543236733615949811192602015177791903286405494020508667514323880436576326663411289691919182596858512746737933837939833843258055577629347992374827175092326647727650917877280418790960081979899892525052174880622159095256328300038532972977449895870701775483346072302411850252692536656263245219264623794763370705897715917155351513610780292944856776092110390726683894562823773031768581195761001486421240154847655476323355102951189527836591121561354492248749268146386891839419617215097196700712385655718286145844972138885325764442698141478895412131274960866712646633761047887544226105737953398584146380844050823204238965246936582909971451522278480065609233622686340053845483399586847685205682164169114071233480083473880205886729236242555507409058717359076839393790821535462734716914355377337503415345757443360997755909694953704249989010791685507331728779706292107884370189854025166864698134337536632066133072666834138099201969875936766541223219233421433556727864058248783399013515043975227551254032620927182294309682212359645899187366090825145274734150621691321904097301914112560976502501003189275889078995542791193047533838116642492848175168115167147799728873996292536022517123524407650753347696802405276996502509114119902029361342423749496544633663798369531189974759193887190863971092611854339991607467279656251003637373527318937112899183022259583756523607091596376778945097600453942412302323874193112605045697518777108872687343138914377228762292704044956933106757286119494183095439523527969320832159694499638635218776247257882126672422959802029744854636469268661827462353061860331554208498803064765895088562292415103229705656524287815645926110333224319419528978198444273726588496549093905078445420591965793615926071986848258868762421147685229555366389398128213369722079768007032140972004651522889235591923555898368488684670524197593919469041238836287466641539819068771747288035087691126513321867247537277374372597201172380572493753464988249862541070660556589186925310015445606924699030177774411118346973889639126226007681442372202521279744997040598284698562181159241486458434551610291642900843375261893192448455702506252272369781195082250042766367117355265986544940564665518136643552713981426195707846184365647934994852500932507679425129904769261489594671916327347296844392101466411402633045606519158186393235231256292469850523361449955983327856691274740677283541735649802544248259746309610735923406312175921349594044370434791218499147156162787214354049917191290712723725552319218223442477062358946191448299887094809168834956625549558105031780431803274048811468053852192523372375346192695308836577632022309655142654412294311077193147653216384073267259267403305677874584348168888786521210106157498889730465501533250276009126291766783822835946066984010912987536599641399128365478953600356280672000839184039289011655206625718847984655807884027066866809440044982709012667271133922836385167329367701963481226014135974643649923586097389493582017977563524024539274038756812447554283999017757175735518354110472194283785426726352910308820030377179224372516807538125154808757771990768782482813030665895995870253585828632432615216918469556794758758487728895872194491022081305872560006753647151781156491677876455576056819148864672487270473240115835733147643345445088618273667836048275124371243969255836211093129407642030892322109545133648762747910591134245562842700843958107547642619004550119592529543011829984161508450192103492402476988448124853369957074418656725044922318647437900773003849472111771191487834699864047373382410698921398793171931863132774741877958532810446094020035533776027641987205320272773086698144654419987583093106261894523957491152798025444318903769950904900155428119677213630902372513184443199517705863292805380038761542357938356450426377337424620635966949263695267564927512433796970753779051435601158788578718317008680886577301306221183261061231607851271843670380151997078721691410920709127097206318769394576847659682736118083682313863420542572885838142531033504912666435297604302931470128613726477333752260975877843453218225828733047051294916186439781992545995969789199751824127245547456650640305655764853191099550431198738152311359547255619386166925191304743658702813397129990843836134140532298327914494975112410196449941702260165874713464820769935587357216712453125364842903982333569615839533694374225375116225078652199867860493072133833226702720227079454849192811846923545165864481307611169396376978644874340068630768990369553425444481966114491354185276715252416548047756756002437981964727543183017666921255080645551151769180389208691252015527841025826440716482523073016599111790946890687766723135291385654243564710140895839384153913561251305387410744486530143165882318744657053912645236468517416524357294731055037602209631312841014602845759301919188679047841854136088389015098524796148801465158523191664106724424355516921494682091384602198556166421045509465418936308495162533864206535066324482768678312017119272490351270952494376009430209471769365989754590070876368633488821828275157813257173586676326026572927911923468786518584027746887167936397963283449217881851763427719937695903633920773632735267523336159704511462844891588717275342817149544339741514152800099570588554393954138037172561271387200856905559414556201932392163742408800534275630416892174202659876737939547286296888846833288065116300958645100594154219086038429921733326813347305940539538177297650623159706992281242240581182392272832694357414554380413603929917428579776049303174986644518048214807525381055839261528870675164747466912284253787521550072683490454253659481722239308379240265103728579688527564656470460401613826750230192635744333562987790323670774549117062522069344257617196884200592987575130278254030792107982452649582039589278653415450784818850061843143598420265656070758954737489286878915942082462658793036845487498209360000294260827192026216668866640968960781488294032264440052861587190951839871080792763555638397898005109375336936135277324926788839581562670822187973483652094182290429080409630076078300653187928549261436733138635274046245804571952768925846957156398013734788413733195632573528932518088233811427949505605209288904549104038367311495358129775896881640707258925218512724601997580602078099240804949362971734580578998919797072518702890459083181555752059491845756870878053953058687675836287069958000063816690353357846292626252715621219118644352870434373002454949474095330656409750562629959290882725513348584867119595719602647349899619524051127075079477747393980664268623890117015426791464202060427160625404191608453752817156191978531877369622853348001593933851207565340637613852358403502832761678383005392182929959041440723208464098741062353142624385767538272148909741534725700725108559243555752765864201827343497670989681105879552489666786711439545635562509306192672517056332009381921584421609610267110544924135554601459303911261490498899315458098604461337722381100695236653626810605497386569784689249838171683107767627017247284026806582930168768647659768072564438222000123304097102621879876628662620010140617735472886826575194575295693568623629454660362741553252528354603995775829167741146129570278579646188586845756917262106968850499696527213678401628275825563040885868278304857293072650591732220416448128487185979828755247410084265621728169478839719516615745808613402010964821944531970644225016283070925511702914085651566345030188363745084231279892282299855608312073720383378224810582575139121521248710551643507924714484280263525813048004574810961709256504180388336005611329524089009170089709256910639830217581441985028114179498247559350292884169520688016985021963694623438756865158809885624747609875060520176987983847531181888965460330708432350696900479851440749177685608366898018737179105168419513379012576235543698202008400876940410312972290466822371299404907372155788949691242790245155285774592104291947983316766373982246033058354114809141433139765987268852621368611220535605768307446209197996717505852222151390108390466450132955716101037612410342198702580113663875551531370109237716316261926087269012542622977107719450523006678070226783227985943048545531762084778265957943167825534579461676271382597501864730194563885684822841142268472088874535273896571834655362626322359318512078653454794348873820272658053618410413618836630771653298565394161597796530986591682886208028305657491452189438183469125796848791079323762275071500504740618388696794922545079880834313213222485277359161126345601345406474029962714234842917049855170727444581234394514048890495849835823880001399312141825247153377878531685334955017860363166834432834501951025488517105686797607146470400028416342416160466427072426749871307138790371266174775833186795292360041796051320298273318001392184866084419753092093797874679913842215184800280428297154815844012805162969212613480902147444458974271850714386018822855336226493903637334731748338385585062810004457753392843978231755264105174134787526656946380043190508905539436074645013264854518106561679406091879847635640104277014878490611166840129926582371986070378278279725424674730489050152662107012055374632937199107496316329402040156993225403585348066297543695850839233077983269969407646826077230238888042467301678127755412448507755363267508177179814805168063254496092687419844245063183792192335873913402534953071117184864097275857521276713243327127918827021266613529601693743820049704837438289297703790257927856374720802988749795325548582643940675544426663264516126082362005197745364964199263507059255362340948718584063498393828698799597963491638406027602155122097425469081646743914505360403937809875280080791512954032798680855801054587663289839766833368238723281841548638936725736572059736482749106201915631555599655816193674527345507004569279447923533606238404386927961714886270406095439290725114880378006544824406478105432903099868163504633780461590847713870269793391751154867315784148634386744645170553980820282235621113146833552185791779693343594473315245149111283878661390812751649763219528188249566375039620145085994195347222384690591380914827099506493226688071075956806535180195445555955901270679061325318085372816317483008164145284751181375177460308984702433828606392249720001588722656132542597155340838448925165401041962722202122994172041652256608791093449150430781592484354733252173975615124394072223154377956710752901660448159424692477995489389321613159284756917277643113177397058195598167914804314396285994256245168893112248789987327795305121302217740859206701100334512814356703055467425375451621268554347435537171464236630049019709381958895152702264078581438813886399915801933465407353415253358560200176814644197859046461021908492049166359525792246785851817221349746520797130473182732865452205017980303510956967024058063195053263536974092360815810390002645185623001001163109913515340638681212425308350673510163364793250017285321431107606227769161450725595315531938711948895579557924214477067255343232947984506214608129099721334660661417485604325421903871040321011866711290996941374808923416642945371350442265089008586503663181872995259928088284119507507367909667109320538552620041576315204448830983642992882979712542281837474250507579126017042814002737440467830309188805266233532092465460434027653683815600562689581623033794415912109699020389056489613445540245332688055016980420047271312530684913609977852913579369465630297612516082225207389109313453090398175276776542307760800374629710124127588010530818084910304617688965045538658695118294638420037155026183439802895772675703885544397069793320227201137744729141594836314821008198943068094000279504919419397482780942891284697203177366540195366667977725892109393944568409916682201723336278752449723868780629518153733821795130038219642857765618516743323118647794554204697459833587775953905715483346828918659061966196725366171815368382707187281192806469334985478628635789817683037848326115230696728598624230765132845103020590451148462010151194891586030985594954534361868340675830928737293521002514300670899442801460327867543270635768630063179237113549543446779518014600050169429633208558646354810708787727729862155877323962792677316812554564640338630597530626214592411334944663891293633070876700190303664502804734975148071105535944734643591314658798752568099365993661076898145769182336427509474882565321378332459141759096346000869872052364172627866878011058102002410658952211964526204197491103320065568440458790726698163263000020327082809881861982617982138558484489713867160689945620975573870722537644195991196338663878926457221865016122815656834015605055788445045880278880262136627714290847796730023598287305402214363475179820261662900627187994127571661975725123663482278514560067943839821605409543908955578430212548061495449752127877947063498232116479410681817030113577583907425850452475154598132255825358773645595232816082013779867915448264080364666634522022122657775219455071777469618650094965249579275383000759719850344685516342257978953442438901620781571438066781863689938525812326578272752655325406853252750379367740035034642355867025217276893185894890443160271345377441608263590289401145305306915705583348492106896901020703976959262501299478574478885428376145180206414323246946187077929840575159886520706432225136455593979810990382147211358249439779331586485342328236219873605807583150080256969375671084096004507734115703723343419847537807009452355070547213476353955117681553162914347287772879673584079404979644844876077544213511887450726173343835241260221934789774449842289290727019159801254967802500821322649739685952567425063348405112026508612263105738599164529381370801400129238589464718714628925967633183939795931479263026826874368241842712293061574611159971630428309126541112967636037300427217537531269457257850991429713592026953150160116875648297687760675968079826227482497490461588353355070089278999593787392542405427405325484928285477401858101628366268393126793629577101361466973296406038978688806741690679484349374590915886678120603017112233563500750383372771146214942432175688749788991780093292405781860035867468825754677172664135969273730295006559605024230035016473237665210050675252853168962118391751069191474231674245896019572416133938031269695028456032997253653617097748475686274477206890108080457128801978132002824988856061559307420888940915330411693713657745505885489574142815218352582463039877173831549778341370173661637018005002659300925525282576359154927695061940740145809012883958800499630808515716823462988692933636408297530568100908024946887509770156595836545242397141119609708266123875016057020556605630622073323851878739772439321984165508574521794176980488149199266982707737391590365215904236417732096553294427467939914335548893086236527158049143339771619525437181603548848644404994211213875082296842967046055850588482453640283666190080731190447904196155886131441519197578904063846821002516373700528400490220594982530780648908847843049132907692340013753605853829704030454694740897773113162276282744109341904420977544826078526934384426640525354516947422112390838681806259136938373628996317875650629143846381841196199014899420519666199306670009557633765117387878431417876563941892182208558453215280438491253016827729517321926629100030431095843968461160514047244015004215206306784406899270996381962630765485703671901194799000978547033320137624284845780925825964209431511395276689962687388395270099808695671493342251102037699542224519172203879836828348705280083609714774014144904008739369171874674288982208441287667038506393564058015183852308308845487098899893375933790580354494868345655933355116073051887456756187055388111019568548555020643647629331118085583498005029252894000978581370907215208311391042692726346617159381074283855463301504987014909783204719069277565982756180652747289105603418476443930078208938187673582630580432789593106941662733209330143597724573614259242306374508923813288834144894334270442815914049586220438726698810769625334548525201357462976181801478571751739477977779413582490572401207694625091871677958071823111879898580758219786813873379906280630665572366271200682282183975404264991204746167935084980523220617007389982045124832374188612656229003220159500026374986322761963279786322746749998658865560021429033928631784558009275471499979173202926252443206597031816855646533057539993092644294534885684398661986271544927110442169438865891404034418910299386087867787555831158924345939922976910278151435407340890015548083674293737420968177045807140848925840527507753098940174488162307111406158741992484159829660934707183517239545184506050301858107341582457909821701745299137405038599634368766699093861181754349714677660888837010701533473914371381897054050796945908339726687858807107094792022017858554231930840879911235120675643235658726814040544722524300117440891391961308747993418527142381705835178563607819636802455555583243692692950274956292872154817455624449804387294478854170065069870526398846063419069940754623237033564659289682949336960892931316623764588121010269748638367647625533444853712940434712986064319688083719639841649814873689372690010853492718677126769553969109419532835520217548852717117770618124292131976379681801413137951788823865145560750067888970540070738881367080120547335338644260959195653138760832105825565025185484745297034519153918173340500141164663290900488342233157500125335708294120781924169915910437114353437183744344676145982489454354456662849244013813330262812591701625771720051547232940446701435789801177148953198537021259139621852957335303184271656041975595308036925652382003948347839950772656882556068711947799926105439094192746122944450935914150887195684372863128431584504482670711978064986761318235306385736542324325023532574831575334596978953977847644942463550892914880443337213140949904996361697128218405558400033536167777360118748926272440374211094574827152431594304447493486606538313560914991535831153976257568847125169053942980967108249166335351518638771649836172947212647472721525674409758967093524538467473551156691620927480976878204485231018166632574014283810805660143625916493789102200201786034908725550197059783732296110462072534098942385965934972403438082433184224666058432817096717139242462281431173092216333272641660876737641045042091198600135710279446186027204679524065957879583527938108286675941174919158920871952164914513597977890862762291608942840373895506538120004104291042142563539355843184344477132598422091124133302843180826537021492191356236564856404069084501104478216380534721986843946122809840834744662513570032979922291384161553729500640231267228135315956258211680486199491386569209014033352954750059322280223252767018815726943225254841172008533467891931303377904413921210316351996082070271748687161667757734844441644962300236263234265008728182788380175825821947487591940376500031799502363887788894749599800995296192337736552290697543963505001737742949972568329944534854190462737693780858330246085169569887448019440835349084528443692621462803055126268979639060045543709954999022769750002610039388023852969907906854094361465927748537866141834237371952708988652620124657244470745118745542775642212985955148464982995515983617983890280512414247199835271000816411806841782778061708353410438809329029997589797876203052223410260202657493952398630982838677056366044039815392985512270582933362108162443495343940959192626451359749903893294141040586003256657720365809117249639695711651757680095433448243109596120266002869994583592689597389401276137816215967580907509395691694873232114862188202639154228637323729285271349844973155786499200143048982695003468234177166942608266610989627224219584998081011225214011850265102850312118656240076200609422665996383231684464591225005403921415992628736579786668362233646084043936830044010773598120216819187369304753414349402756421737469375494439120338943360058350156208899274720939372356101123125419834967021948265423920656332030273887186625471439698644936283896238178594743286076704585732336362466982935976177382877130157725270414879352598704742024708751707175527493048782443239160597919219935552581148993359877926599854064580739705077986942077336042810489987679325068881540756308246832949121783746704408696102695584943091587217538263718121345947568086632889303575531313495119034750113435629863622329231176176934521919078132973013919330373673423182624840650789965459229447920815624416630275101611225481653017184060044932008625227968243886794104118519991389322565078127216875860844827046361269405055137694129645181728676259192541937659648958095805672342787711797565794514158840077977807227919890572808163572871260485720308637018045524794139503062886616481625596520395459615138727365385647578174245198896072445402802106673603281856516190537878059955084639556856915748319213714281294794148306732530569182795373402857742861921352661114480444674548615672398669319124356262958016957848362240882365095217218283922265928880441620175545698221028954817334697643851703617690397013608330452332780077577083731799779862373258524506161722049166458595821579923187059549320552586536757545434188495347179848547781989895965203593786324959689235128276276540958871598569787303625540476566260309591626144950924431240575852918149513031418074597527526425556226391634932791359294411120548341745320313713389656621236268882473543642339327437727156336387751781736502081225078973573193604158302060779375938423080465286697696284352824752340343049922433501819826827516936732731579897522061750190386294294847726260030735567536523630930813970807029637711035585576368335982392201565580378315740202645658925793443426089459305225895286049791294313808637055013310632069127926518767106158794387339989687348171048422154289239495225234733632910472429370631312032062145924378759342094662665463160261609479475996675951190724885505055058601354924408672008676524700706361756593131439625744808865574461747703202441862933219886538216297938716896662676474030317423316545616136708701240175857014488256975597848049093329916795532327361248399502484270287935695781585934900553168617568661559942346895633879668991370239542895186224368317458841329700329197875570428679966441964314050888159274796826915576885884318291316910288941377858525336989897681341238177940555900932016434826346772104455683366729889657410983503378419413779509140648104314520873708204440772034440392525502273223784520023559504469034311286595702864237870780419267772250289268486854435845181143405073827612727008362774622341504046674386766252946632800247762688861065503958938090615329149645085939210517247430800474433004557728055632552150492202376403058840354126194175072615391552314019234996443518920471069999093098204779680448247524917281650773406047924278356744204775193353144524067800949549110622026039866396731524976217581440614867609728537798016655751521221380335424924814454112913365853800415091415627983264424070934410763448768390652396694270355629304067344329881867817313900116486743730450783636793319525980507321704887884297618628888696715533819367803483039030805311641292798364472330929633268126085254760027225059407892222524006238920661417697429940443482777644417821947657938601093567448485888406791764775045065251788000543068057683865242107359685238169101240492849253236402393488614511433139432833221703038540126591614208892968940387289005659197109567443923056197525266862499745300505453131309275145189704245570876037991155595707240981869912094114638954796015907671787100039476375736520007673768556103278273313229921683540648317224707411714241979921448034078599744308103028195121766619763734277851995645522919443502126991861514838962669589732075532041244177285057120006748628010241390711150556843895126494702645037979616205578590052889201374795995455418108502715003378562294434245155033792383876435453679863224032509463068310710401021353094230262696999633709840701023038532251175182158832239011359229431526438371787087587642426768861393533560893168789602228573281259828471673394202038183893717529017510347766765699276935455987206788780189712801204545779526083428619682815922858018599539958545360614665967623681094127857539019209998463975897563336964408436101921707791636666196418984569781759167270062722088877120420360333511593724185019350602465322056839227661098298008065031477755865965427006020737902570713071596690488240555232524619389841735442170864490215794380128177219658113647844571151927919921370831428020157596513119094832168925888720784197312484146458672413254608273497247963941405151937462081988002098218524927981394579489270909601793278737853016448658544623966283195666472913617574796345688394345079160191170771392472716585137375604456557727823951666714338663733201305490674831262193453390954251683357811400544499358548723719845674934269749071016861071221255816643302445362074189688449892614530871674222505842163950420387273144464377110575719849848354648399503786688479729314085677919571491192170806217949292065731996158346728617334131673268541308323607451432586625559263173672786015117398365308778782386615884569003494246617348065280426028393063036216291818334995069842232746711127549715717022500945000018126466074061051688182097606363954037490160564147172461806495747011570359249446701822064008754084220057448004196106813416115401169821388881860769443492080900442926439909315348199343702569275501353296066131443354138613160079274911830851860285935200824639853158637618767354778477279460043151187511144629055093893757147971719407050411663609251816820746681901029554687946068561510410592919291486225054784445549230305932373679088518244865374294032822482536551022349346233472131432373014303587948990091268392074108460041968098636608563994680219953004368069781112503367629135508404447695615997359470310941517814633024161320742078589078125807327830524367525499101720593418589029811178524516261048643518842448184662594525584261198489239431025246898411998706175070479530249420260400337759481579045786831993315791744088771342762223411509944095730940907773463538641029083755166696710999610277204252195663280580115375619938320622238316219518823376859991140908210244865684002752416899860491374030957587533881752466346922949714275555351591948088424802332013689819928813351918311720973114372738876533695950817948446346771722051054018267904198109880682867323535281597409641591331088007053903522719375717164827858795570513359789580187542776189755017148937757213760219131151617385883652919312524448570301453200979936879880843376277838870876849930314029872475723757446171270886710449828909975354428336832206013100876491309030393135243087391066023333815221975311358792243831472976387720997713141827484343277518043511935012949452788795706545043292831815315249801326911168726796008935436381403922868356742914254173361849214523981401976390749658647444788691047786697902807143897098124997949714315208788237856077857106199491676406033762174806935324699749386784664151577023601032622741032889568454445153731804800256337141261102586941397717385915642263588576384347514245949831955139099933738101301245822014640410413717208214595465965191882125250105820141730071130907351418808129294995119659499886796248535491606261736590472063998622712252583799990042338339880845911626218198888315197664568966471297785794404731221320576633067740524735925379264905370923155313168676465960451594631698538131371017290411598217207923682394227295658171971141276594464423216142907231617310154857433206445162738150056632931620816036554811448354102598470508547545158288362213722887143083030640206734348295847791637983775880822759862926093022032741527179749096980275793729493415081067043674439601905042090851863678500440867222817334137494339610378475028290663690372102773431289191382050466939455636017396454110008376946082829650231222266706634541122771548225697511365381089545975827685027971648007527169532747357417819375982095219813459586319270749163080142000635102790575947910307903859969180899924063011952029963217839446679664476806897383539017267746090201337668338742021257432229826727690790232429018523613606753493019448151339660478192503672903622070247833176109558847372874428688227897536660095123407368447403487500783151703747093772820345198865203468772773160788485834203413531542386813620161451842163764410360935860867234034945039684143562555099179596728791274820908876095035978732906902232313677311216641805144982522978914881900683288419965717614562258374324067069960760939207453662962449718998503973940324695292503035333684101477206140641420445061893337698622397696971915561917740889126897971050607220721948189275807034820525388461727327443197335817004349939916501273470209271242342470335752910844186422872877216030574114405779551093382699380719409319850786287500600072011566105911234230769899793326364463325180297314356281369326505730036782331565888992018964440701029595031951989881175266434905211638839854072129095611435703702639787517516864183463684633786408846699239511657838127888461943697568132513419537924538971229401486171772506569140278056629589893856900688682925291628206105686048443274245710636036185380127608322179740612079440086046713898236135796281700265688376732317614778356792256204533254179762542632473058730288216578634863119186107691451006610097570515293998772838039263463685878045792150736155408639716834256504476336885433026022814187420102261765141330629700711011115860593680170279371276296410645417373877798464017291198160169445165651487935452699074727916794107132873349553628138241646472222689246972463914740164730519519072079164058998719194788182610959864823634893469914819936881630216791777403950188960405921579733918904183604175774564880588262020081135310837048573417631864240773834728276196746137864637390493675500794022642128288415608506394339314557539433706419135449602788912641674205530052914421470155713244114524286004219596348053867927559877631657268894465665082611190531417523872100022719798029931232626312689046251309606972468849655250636086470694471247299991480419605541458835614236891995713492970072430803731883498628690849189451606322621677987642252557691237218940274614539834787048905563753007047088495257521021198142411807159620600549714967553911418680264089186181633814344732343069561008197930130877103591052141072321006390342547357084669628540400630776948547082801273090915314511823919564999557854737477452543757782953560610840779287957551725604822760779475852420520280933607955896211491716584710445249289042743408004522649583870690686902395376884266377482508309486031009846958018781443661101394567610151545705292569879553519353347228962073803388242518295412515008032896804320673135412518148176561573946729447228609020161013492736419443093277574014952389991454850216132232952786788211623269515121448650218193213347477619884462627036597253522528131021504894145262976744526667617481996023170357961371575782178401565053290733389341282085181448915017826026278654878860316631163477420168592870173245210509258296544291321803009874594641669126534896867097701441027669846833110338533632368010929742978555924927482147867165110319307387767334934798294371553519406195217359972280766873505004279455022407393069966561137447252711891430886555978478540681947078373402462150366572099130282926137291219925102000119831663662796899794691475917514477598436284213755199015117731088824837355346105152568718921746370512242192399208512521586939172242217588104785563957187946324991807165096783540325243736605729116044407203827838430654087795085072136103863308130988294736141458725812467212826762048694802382057710224430313981678899889275816670818063304138035892696770739736713683698914065838344809830804918284699251964064457473582369529997479380024198222736797453011459082628606239091280941542087426327421603740712863469150553200110043459438405742957699863023685302626870196946716818140755544906283792928860620991091828803210447682583499527015274353431799745033628896715640084792764244657173512192752663359337614920224909675457305029098433769841827874384884481239629375423419186727676890514971684718311227747920241177106398428810392468679229288190556496924923881973619631007145371506708524809998021508716072585214485689849035985970810930126858628958235925137192614011400000412550391644314111700200086667526799393439110653772254326876334475917082095326740222894248090207151547626958530297926697681844682489266262953249001347578498994728805493755927267118636885337112994731993169444401421773982452844623345970470180116553488265046734683913249765373614978962804105028763608279934679452321016839915383913684410544401455986196717976812182621974234666290660758972404735481078261752132749780005149311914148672264197848034206602423177721144098921496129784182321126701893914659079701427814395224719695526879321588838406389569615417416650046825316369132772620355439213182688790599513163331077867413665929271425630362317443061850338742445661000033216025700112729155127103297977664220606676073531007751130969006188981066016897470758189223295655987753116343463824072807943568992101385981026768384853981610750071638216659986382586464480369476834643249142511582263847601713733716013914227285279339354561321395680049635561778799633770720216635690967190884859653326048109501072196606006740225576672229875191363259165392010891263305429244589036004865598500990593936167606440418246952445402488410384472741433127219088979513915644472270082454877858662288011580293245557195927732991048123543889031220869380961158111446636718374075100188901786564531756963618631451382808129463354442965179043761705275185317871210221080140969461095287301572714674883355480066528831444587150622030914980926049533342568551234094622946713489696601866669169114751237682915479178332278745288369544460431211376432997536216927572720540360008787731706534937824751288445914966129829304685642643147450171170437447365036092253268648049762590037452159936361973665494265562214160028492387688059782033605674478928657943174414637332725504586021784433087248461806509163072657959399768971196295338843926226377811988567715607466113674852685415118677364229195408473877541194370598012061691404756435617422306327408242732882634885187875027492461818057296551530589036956205029583801473594298995211120893877533341619102340189587352074695917008632947875333969364084475085455311550120302081616350930670733017534737991285984824157439760394403972131753244004764088311862391035411380618844935100703125261602160354517140562671441478640566947051203960031559725099701965088171238709963470047639398786934592719240565647494470888247719013317851906298757501026461720433102350327086662042197874904508617882386009184376396938234509907715364581603245913938738999211425324425802737960081274485473580113694090291388276734221448802163391886576540922407985532391617518622703592609571989098156440331363876175731381932926865291978346134059510591212974968162349378231251428478425095463765108407596915886389509706356126749118883847678264708210155961261430604478043998839546173419018880966056584318550992489170393693030779027918111078192074161151864768702759321785055948023615918217262139632686156142746359777631457250363143464290063279154137971734555702913109358628414559065840801871076101622634089611294093319757366788433924160017252266329264536114538836799165012600349730030989108727800925304980993467202297776391410440281018895097459139135831370937342523268940773015481987011562914595952742416645153539644343530259541233884921940718378278819764110803458275307154900846879117443010560488138777223393682926912206199622044462197842247468859396448563993848937523446937658868490540433585495732598703624728934833798704594603626374974635375077829609857843400829786712618267427858372063372746828163703927666098539444394920147450596069251370701431771906450027346809120656174175287279697372891660216584895161819268577054705212558475917290323857266214495598423102866550759954268553934021339627940464273288431427367804792620937490210460827721026567835029349395229495215927828708375758664385731436247937327638692309297047982113214749746645293424890121309658639188246280458648285047659787074747384973726687335613634079893172028912831123353322195233614476777771460685236137238859695052180650592094863953596562828000788983393924618573263117284641596057738462399185104139157473825303983653941359462415475968870085803417653309058487696449528869972077648318302325357485296013533923753541884470787448656356240477952591507571790441345361890669576794139530667572984651824827526896050031944195569659714885324371480858137602666501140072265079375972883429080670485982741005885244859090978875917041503890218046987399142492923119095561529326462434130595957969133266854536161884641719003004312903177328371226382423791116730113466328430024847745989396757492908459723839581793971193141147790263638260579907169185293591790109693219878132730318740809372453339735847800812059686352930453260276437867250812488599910543683381567236522518254185401958901451565386830569048292294283306677816769165641439775493116526024475279643442189283605284514561673593342384149810504811921267108160050241330466507233626207997693270578968218776831555609989169763670935822925142804591090922365479037751824447597753647256051650782941058731568986957280791842223739949671136810670753620005879266404689341678668371814298951937097230698607256710754669289116426497170538247773000059965857672202407391852277145583330787526306772452997067079885751034820117940882716697859581820051814180002286327845064878552549545070477647021196490820236274339475337897960310727135919948206346191185229127851604882608238021587656443921520099723424903640359910772525647987180654714875342907684358093265882698476754885971497416887333568994305725795136314166080697677833991451990812637979215724054414220958738356098580847333164763650290436708180237087613031281880721430785306381447337849282475912927500514627565054396053747293817492783707815922154942471673496680008158513620325281499223532647711489648598555699820745633543890652728038250072385593294603303845894032530180567560851100265305469639202004727053424016841083399002650120125040255392334390410428027899918455842776718519989519467621880402627464353892619139257409797787065666302583527134158187537439176773023078953425631216278286268557550706876442989096040238221666016091886411268210234613019136058603008721881119758628395312613690942600087987801034000867269823865017866878652813136346750829639262617537254991929978341617971351363769530879046465144567970874484370935890149934276134846967970498572602857662893465992653706371600439407548436259486715427953495002748435496664464804658642462399967584222086876441924969412033228091827897680644807119802441011139426360554126991919519068772843640851352518731592446591386965923958678899425373556302158379605796641751951846139621855424028744360831066665528138745287572230976837936272638499090579040958559008443684604388012190861334462186493468743044802707625071540404525071535617690922711176956790513537045065320355605607293275074933997977776564429207438423815081694635357933659696976950865111383656925425438885448552546942889960741152566336017709078044667103428194022633623596230393563235149076263852270774726491788230986976429101489285096289067983075203133364490558752930833553991184489801643442428587332187716725906064670409508719593424804414898011344918807583336893852456880543016986052623213075239431242937218683529129458497787255933956393382677476810685970491876201359491397767195301639173222923272035407639352764145982047198783158644404417871866700712550209695996744292572398463753536033320114132634854741092294840506963853365054413308173406065866619942301894840873117072639493976691055577017282458404509810029411179797153274452644696927978362846753634164750654130183243589562541401042207281134777308859065364200899177887781969689411361790103378319773168072255613509378550548131819599442512162044882528369884660879581564599268267858093765651506535671032435630647421555975767458288465909574333487491700233084367213601408997542267219640781918566757501509878259579686765340400963613295371061385999254922856945556536762124049834944684363788571536631711435502379579045747032243868267781836405696906788578853008520710018341609351046834495008872936115105691295202828012268438934287611570307898873094051062145724975592731139999025401028823091748963625391316210919294088464139741953254479603039947684382235251586447341775996889720993309364647664000434585578980629363706098204471338133576013391054554854417924485820085282900034838363623988977378744545059721157796644702066305916376044861135820216697843239083230072597076305139230088303040207372859969997584000048334342316054285861720395773702103809151784107853506605480589431316674426490468411310699766629802997646210744337675925129378490586134458755341733108504040850967809273306956108042485738995147654626701771400047292782947817000586288693811108436149492465930838830210556804513282880639558228944769955285965545223769429260678467133456863046535378592447553236489018795825022517296682385555483441340669116810833211516493361185174360612476402047323704212566535350638513662755088035244942937843214183181277393840460905892219571208679919878392303949445806849713424865451410586641550828386927517497434720024520605379327282200578298794534325367247760447015059482604509202428019869910566962631866359923146584657808482059130698041741450704367700917434775908786036959350788762186512653697472490026262047487708980246391281251644884352258870078921255153787821449818033734786865861600581412095723441286101958271281548784509069408924287343529294133095567066497135298188000211835192071688145631113462236835012532242740495748797057316687375117320997378682459043616989940054454155933302876338035843050859291014204445181787490754763907564312587596840918909978671210815258965845391425241258487776591551121775994452633849024592167615601123440466964548469693817635472281860301425681036068053017138061010446885922156268613913096403632179742930456261171996735615555502312869602602441415778850014547387912248710296077347274103285180040059650676701257383872503842888782082810560256288905334867849490255073348490985401781647312411352139913291976330303728998522806960309333475242565998174025109279433518259794557817858980145481694174137810609157562895750014221268791380910230319316032915597835863263165701647495438900220392838211091319576246523993979070400719348310634027476429553938746137247455809870417994048715015778872616915460132257801396148545374554818197182888676890168684199022054661426712469342337719816561129363949558234090467721004974996356958323404232663284211194275238897377108720809678688225374083620920304160282461942746105669956189287344795621133825084624091882525829431363678146036732665505996630475812771908376011995682513993642647626418282803677197652735397153898695577202456186466357540281220143071588745225362177024631490806392599374584318263290729627544881491100932856502903692668570144525253961655915066590052835593353949760269770337995461420996521174634224209484753041929946601782206891892264951097532804047528635241122223761935113956098089740820164217105398348134122107312636124586496006669591657371524386240410599188321950472309322306553323815397420325968430105740360352377140468072744044890961260494030340116766947923937410102286903837520490377978816644310596142861445041051641072573650919442118792674038642860313375112771823760495139657974942661603351447220966961617743701569705568961249780995740493250421134995314928963892657573865859063768638565334255979732836776104726513909697891303927229105518765607485579585993998875143810375653130010571862794967727254855981552161239914615158656458787000075192308500717166783248436840862903315039066082248131139470055480729297888268970851059590996656409063237587909798468854201811360955280942011778990609474784918283509774080001109612570454927014334504372485258248526603727085430061000425576046732806032382653621659033802043437495993852532041649352377466283159173269285724070877963645268235775120636702462550406281663453873843247050506162279281694892661109630623479992279166595574091226397083633189643410244927533814607581542302442448160062056748040133425246995546224756869787313218700735320769795813468330174709236177022031062649921586734931629062612063819482180494556341100723092848530339815597306919596191791832185458395201651079590122041387505649283962738245342538058644948281012507375614513265820494779345858479005862266873460818737053161646591298364162524577225369824499113991952872875451421414809301777659274890487405101584434812469675370157895611847511250958187728671528619550526190800524263858243765349836437440336139747598718195791871409385655616002325234490505999740500503483824631611807985627813645804438897674504674143223362567478709664208937936279721727993193590188422322016746787874978848911922627315890433946517606844535744318955673814277516624010661146503042358097392351408162887496927821623012958067774421159613146412010361371783631567847423639270769791631489381444416675120305124524635300191987992288311404098902396380561831813005236633348706543900649726639412736550449267836691466234709305103187434523590260931136416005791870177421238643303850861568676386641009107383167179428312796157382527149943725356412631485319747817577922814335688252340216365445743866504657259731335112337733213378755689498308515490475773849754392809186099002247821680300837775880971222950419996933506328957892961071413933014191193904348950266024253149121646035276007164722562296698600606519361155617696532360019957094613886613963074680972115661546436972455215578126344558851037818202514335216675454700903483799123245800712096665709374446406438269831691377915600237536395271130724917769044130730683614232417584834567413793747531157272747253290755837079897586956166703555740391233857060811157867188723433692961885197591664189804323289638471519258630951046211488432186228772074230271334196880616181725867578232821199651300394484744873393592364730238081575220657386560375395063540476905369979531890033014819346637819367943612315816894064250025170585019288903213109474219619903282979451246914780935678722451574869660043062674252705686495786638013087841078011901548547392822645758352637920422104973161257841795666674870634523045108448082695455091853138727971004939650212476911422686882598817523702758670992932552697382960789026101346466162436477520511036448266417042791881511658070458329633929399675367993203634186658933803179154626493917515439465779017651999987683086451998751832925442094650325431677527219844904094416646854305126571801251156238889246277872437769821236912989615329773719304906206411600301862305372202337006536719550484088434585801521934081784723303742297878667895452377349869282629454247425936134958797980148256815141663707528818519914822694000183218024198890191079931845530622555384090597704972643029244659050814155250466789051362879707695875591563374723257534065037885151680908748077180808619965411671364609380445978389316226115435561840468317798614992844497715323364034395861106285134566820276995344670622879237144219389618169795988564980764807324191323100162870219317540972466390304813929064584358317061235342720067712931893956656931800061778237043258206641572165260320210360203007546568222198511785460890181419223822208680265401367394269418332234520231392270037439095355356234080577545972770806418088753295822262816716853687496680623803668436701615834536023506217141369675857150558824151967168573597713723002091291332591972148589583515669069292400958657370558008263658742272108793150341764797640197985295415376505890408111936382001364537936640225827779807882704859734788360917848185927972439288322165787074069296734066466920498316414952570415738934563011218558522429195789122267334822214177616942465771578653878813128863391805557063843464828579553800447048578927538828922881893766451336003741134477784602601812993814618802037106819912815479022205696577112177431714535256509268589476287455289149998354173722088979799913357577577077296907733771461677937267487548719732200582207790204648918678729401396575753830752999662288956904238713493394633365389343795292013071340889478218780011571378031708029273889486424488819732423523954371727751525013694432316743724617418915997482797695278420333152664189421627938520397024589524725013812657759270147527005673701779335334231801012330493011985476836801898026740431983094698901319777198654914531177260042848395502941979841430003652096652291632936755723154656536993525134230348475691130707799179835872518653545002415461585321033990695379980702319310341131066480418550529379303646487853804960395979850262859538347328597786765931473472480480505794609349002642133839160299727541869862728202894362746492619599145345671115363302828633926459884977407596148086597649065131131436545220211858235440273820349228750922597949318243279116532860551623985406466085392758558393967945474799734829559944177715645383723710815356999713875078526001309711107024902362375181822985300754739164772340424778930269680611614281449169810063231779988916754225458335444785477049315267669683223195013495952397355202175485783634148338298738274385698402370094684076676760161073267813808845392563294008835633075259278776309160960627047813461156288778970270595978956849437836673799960015751682366254468745008164488229804661908580078531609692486476685267988401874241702818903952737969512914058668050847439924735035387539209511684513128763477017231725563100277043699802186535241400470916764786617376604762970245987376012320616446243927642359759257991972618455599560462289520144302028556992257600388968564471383706998087049153745863816656817743537675192865833553200479700449055777034931163581080194650164874193539447808956281622307321231315338012187608994598953541447725324760240889876511358889751261160199336782586500464970952567847783171177016825998320288114854337599866899570600325286996039478494441162767301351335278615182265378672794810665684609336532824263635997371007817448987724366879107327875571572144028284409150530181287993786142971602650775970049811757154868778476913141756488379131148088616304403765978538408781077824079620894200548603849794906654107124585233358590634911980920574139708981306276302163333301916817102694105109808933790224315100846557175146448718140135324428573826815712729778621411580776734958600722021711998526354704705303033333185091902125264772339933271244543908583711742041416478377673350002320724543296153867505546750306934233536694767917416956768231338009238535626698513062802486528342561930967843292769335007228060377377633812695674124542576704146601935803785817797049823104556077779926800591494275907559444575623846939011360772463344946010795201400351775904490795164704035601718059184167547334020730243791027857387413893743936332702571096980280470483641021471624235263714642761756988465618009525997610111629475000599775633480019330735597714590019014588192418892743062353119554461345363824213454101287744994963110811955546324572449090804116068038521156984118074792301896821420082875113210870929077168083924964033461626892965492863032094536756579993884808175923628778794390179870439825278771687351961219560796163890390795204037212154082519315376075615936438039510381527624246936115157000512523417198147256056410626757481106550134486556666529707591370446744194640049457214288397438685398811705391293292116572641972811256275928625458505900112627273892237265899543000697348347964364027952978193259601325171214712063532178443288713753278791556381064675073300652843205135830485708265352174961914150198480557992586602293711626462478048624560698102015686827082497602203160406206587123634127949979286186905123867914385278559028598903519591512706416056117560282530796327057175226459879213278495209005227869443918164155200776728402683761558541445405172694893942430902285342846935616766301806918986930062166552474455132873241918339176673922113254008195571121495704832334725204692903078072111422467098377612148491455526347157426313159923502332297015001495519349231461694707721294736188847816707212333009311751937628847691328797203769380097509820688721062438617852965611351491956956888361537470717013546592679613161761237887324617146743592165373144350571045232598117633860582547035371558174721568252135606006142838436038919505459886480912451152183861089878079657700224604249434232635279889043780639742344244054658076634586727716413229327781848236044211804146547368598082585757834554598532284806307954378187397980734011202991904627474957413982649575076857166359313628895050907931039646524553330412072998824137892755201500623681317889842352001988803677817318485162994583255659808582643793841211300506086944789992867311941394641994518328593288463826830429454704774862724329653960896421202246993808502187500740793762040138783688606477476549140679911675769543376149568513346343399939259480484267214973279369172107444418234084857851690628813177219350888696050816115627336084698715175159704119998221100979288524080514314250390073635397540569805040559484876496070218792078826294466958927483519327900837551929606308868294890254912110868400193130699914024934269251835868750292413000674960552459640040701721819927102249143266830098575584743393629328226341287044168479640788586430696762460470839161344881147494765668686790921984726614937308980089837918173980431996566713644454596223934313199725279669624074386838044461888679928589719141515550235718369316203502188678957699271872584234693910168122827554952894856208000505922644717312719261449676871243307743719319280017474646511491136706128801214330988461534551896060784368183762675102280567646268932272678830170760394845251442485708385622988297146779333282836474313963414641024684921155473793865660572484334947641387091419785372446642265432358018690758794733603462356012634402439080961479043219146450435163709301236893895937618507203611784209129934057404500641717847390438302485606990392456881483456970285698542315512665696418633866133569225872343939715747633092182146318329486143986183169742599085928330810643665486355764578136987350711013006630685865481345909483647930574943096380468408039407153181753111989562358242293582126052911145912943067006950120480607189711762785719946028938072662576757823009403828894833753232554038642362037794448433509586851620649007799949348377215007257873444328802635261025717557172853749371340182221783374412469536808060206138632499868387273553903037844614806583863595698584933296493928238237240995074620577892608575560744686108443832250923723405521250235615231933605516387209107340095477607638826088753926777505200148666057383100608502311342079010116868288554772345628823697156991194263715053602233550961927938396746581299688612388131207091494992480625173602223312711494776191811445146961170506859207042701157219724927968877867562518834993038614332658168973103612443985662055030415122378476791962449747242972377499005027952363630888768207257568147856206074478372290331679696690653433312850899369511437517763887898566555157728067538739065755551256848440789812480657767219101856478982219444151981922741403806639795524896888974898801714682700789935661480821561073760143043846289329495472782051008495916222026903989935901834282667330897771118901930544237157189738432759807869711834718468864202154721364744398761721398382528052444243438020579278778391153274320684868443449058498715390269886230696743564525042323874142104176977553934998469208727141289021580403603801988613729815608988434597478378358087446184306479925900656937231428566848286104170325249550530120357668748609279996364277171223632226256561389626497931997431413559506896582821259708044540881324935705144125509159700248831846321374653701297175142366608334726973070986787850012714482940319845879262675607185423663602259019026631362484618234840146904586448807787576314926791020623490530498316276766096354226168786871661849499603976519511828549694315138202593280517768136799585424966705675345739715000185409304829459694960219373472371988518552422459230694302000101396795714988967246147518903182134047239597198566829285868174961664562660133946204537716680440904356738725085226283288290757725312317632240430166509644181519151872719676194143578185932567486592477299038042722515853471224584278701023957321753524584009480745460772331495752463217539185024444800948757091808513918127977665268649432918765410891066382737063068980810399872572056748760087431380509469805789006408791514320335389308827725253706712226385039945975902566534281619198633775405668174206897262189638736275914035096881458267758089803190999244123383654411375345590322760594680877186049708738051106653132661785050635364522172919127577382840857346024115026124997403016144228325975124427494424011411523420192085697649706197582422775291093839245321184282300187730177114837518062435860800682077288447918753794695179694391468656232389006830445483013566198754269167227586080079365119820345501199013018089609388053347028501756676048059243621142423085563612011805289858046093803027378875738284772300886327010753603545778101330628611489946681891389882309616001062090302929051945898503314416965020340789402042367625173432636595225669186712050831958811380085390508521252021935144221435413754884891135429642597432969222670247510074722512659323859318667331123182627078182023167169227728127116213513360311817318004190440201955976487047807682935601581371576227504503897228859196623158880175308559779767359471969195660510749161311914150795334668387697861053338505406019466810203437459091171087215620948114549588158297673675524706124878912827875330178236694628789116776496451801833197273941583482765911304656429905018609731886819248708172988878597296822599969283140001373828778251907131600850242653366102817271149374745548358646890348365842511918812565432527806374190327215437154236005199064584512187505479812996441221509677136087909322039772831085672247668550568635610992612222633110804265628426380513635420398265484763721632989024152907135589171958180605635553200286181132904762153138561368924671967259564929558876888501333123075088678000728260857977245568658623773410123119393183560014473330286331349689706799793071753344652109776319377884870703302178430974660698157844285260350160505958708561928911140614753702617673514175387106872737308787958796848088702844175453344960802587125895798411341639303413008319627658605846366093946283372288779221482085376149762164478284694791256267898396312282284051960279911555488649680398149638014087795435089801277864115343188020485540152582090043039305401479228206487105256024681246173250707748767489766487736183398866087158961471648184043410387451853054076738013142806896592340114050123117153084585076277252216358790145985554812964730485466796399545115689051534371178752026467893359205915451559214784955640549052966965830811428114391336973454122957150767752469363891548427557588194679962839640669512127450958282494840120910103933391322570709256778205972959609226673443129181522731694021115839325867033806859552431674374230721739632305097060700268002872477362412811787955105911959036442317359203519769355020847020014603654627366859678649810779897124746043679129024375159195054230292527090443915285070690515965799401181593287237835176870848123535728575779899265566111542218812134817988675448336926469630830406868765711854352380816569431193310951079361547683545582506935029504641258321577564925109545644497746585573756502560664216493009033160362535020113508296708341919733091353975413271862321491943608778807666858186096003079221782025102560819033535999347561995043155612572095603670893832398241386438458943833530301659547231630627232388021720574142662091922754588993944045303083914947699294150786708571592297710949226823502939751498659781351199510671986592594444115051936584273247048170594375619425592135655901889801250008310248773164053070980598970290869587735976098644504020979451141739956364369401063729741057170640388247487880627002945759905523042338533220598479242559443932806730418729901050782064462379320834204510507546456712772951794739479999312334142663547593955684764413070926795277807727452344565385615350659944367829767937166955060900451123728744055142959765346712991790795217018768453871735378030357021626909277649810870001508193607172571647791332116187265599823839742911488834199449436912373682611672824538073647182166850815579803223344917412053607397516461489961426487730058903343766666661720340298628259084942290023142500054075178005737475189961629969451320188607572847229100406535373260630305132766290140213546782178421103215403860653107036355423708811613165131279830697755550799804484499209101643905296641536655745141120686258719875347547062027330089310319973099781471881265841013694682659468317133690835211918894074753698623302275070515873445809836493209768005826787208456788140566466910178236621804189604115474554082135298366189928625415447887054066419869548100092055554245325432242960988306793147903776001083391326942414827822936864910079912117767420125165542962019721447229874363849147186537575183184154813979783097220665852027599227575705856230900865900727891504052977573102612696969883666012592458626624323006148458327447842785873509449142063252415479218760078101973159394402174016204314511260616448366947208223167600748969887009845893593525796192178192260725829189413218365898844869938757008212384296517268658156426514837820860958591350435525182254480045930982587752839277819798258892068510718970811958590462225642526608826724785074100340997851368452860386986786099220081461807770388177139088994460369550377411342836447178331875623527024883541064787636003839724249852847123783722123648564022748339122078112094805224232982315557352065683777130086429399510798189925081027337783000947018449695337468731249025813960743862273500939337326335161534447940214302141261790879130437903627221099467169963016697448590448958374497303856364550194989600364074703427974280983567023238741785183423004763930581909746983119634688964348121456657392644957410349994934602287574617983628082466865890904809246776207362268921535701060703880828930375259031021458030176221668881558397853057385527650679534754471708014808762622206753336176311437830338572826241231152847180230765988549683935275845299750322435329433107878299666049655856910947511207860904290644338046199975554050461659356213746767635233391110782812278767640192210265119009477148180187665403834820683458573299160438684783065804127803372755558008542676895502696817549524364629500598114228245630096997708209549463817151724589089467738943940806902221747046803407363935555878179864965048951425568971046487000121974395041913025006728292305743838500920421892254676752506800628772095350815499419843321776000095708256224105277320051017875280012578324305686633057260767621333054521400929436397362748968667342833274750705034951322911878687564039884453304995654125260094432712374388231310941429908109544468369916904883859499681480725145968940769802414882920998850206200684569841354679491983918705623158592755425868278303842567882402519471580074169639172649589598616032356925448265964895750460407787692836178215323993214764815646645941765476302553177633713970998618540889754552825425330083622602758848552981653970416711695261466488101930508301013509632282981440875669080920910796533815127197582867057593179509286848182520719623506160210626056842265254091410573918949752152352757980124077141293266483568529590312075498357387379967337083677542631419771660674202695172616961428074671189914352538241954184990636549173206667421096345853739586106789521279074661783619716247605586773546338871704262267594772639412270593849817527554801792881752473596991942723147786279252506991807720044734798228032195646881964618786962531982153266793285808036568676266293345948403729602632012034838888436057716901316290404459824051939776838886725209235362575303062788142516181670863058555697555634079105394009824780935475190961436735668159929746818559980053562136379172257943581910987609366557139819711713813327136494389707877972379904591975615525358354980063486106059794314867810454351067165626796615303143213852918895298882398977469584007197168348553092230953888925555373029003361246652541631562197753859155653585140521718654916814370510626902635771757010777670579898595789403466485735723161811895158206635922293010659387165614234730432357796107304670609750160810763351966133632419935711210001244450538337674272149071511558826460515934815549432548886525261432809111446029960150266955456433806704939916854281676223931785975117004515525089197120948560597735236243317998628556382714064399930760923252597626192766976443399531046387445618353876701214817138440154049962935013591493013778792164199123032948610004544867817374645849313255359453066352884572024356377009606229700078020759719524834359284608501292893844469166480207439223128464577340398293150309613589836721961412614090512489177459742623837439554738265689899183502742748038396204210864351223406585424195439689382923204662488877574858291629931302741873606620297302941238652105624449116255889744586203729756884864677588910226519688759487734795824582085206573855222085757283917019959697819127556433116973241471536060781807584528207743235829861640666633408408320501274322362455073887084912721424923761745348048997269709777417603952999341258756815185590505420636742138381751251672616674404338420203353206602473521956596326601974448351679148021475426036171926590857261307289468366508227497720991527239830830382443749290762966085483072674221746254260994846059746823316518073013193126208654446454631618290954639403843895945573494809620406720424669231061192915589544629380527589525344489626316826559454578949299233050208764904058634530494160848472457006955173525486064821677514426331998404225875584426072922097706323312366261855309396390140002160224137675769541245200573941441934895412999472011952642216337600747480154109154048516028015099302299674109843464496643106476767835662393308940235410269322408773179126035948961307778413918087035051850036404500370285310700782356509450401844026443157267950494212284919624299187715732573464627057132012214587117736476284167661660607218017435759411313908425646552738436345495641640693188374167108827707236483935548832380274283463515716992179784653482681081450445705954010805299318814164069194698644626453839894299858635603180972441021133199527449916716113895756477152502587649178525687734417854712469114856426043224605057036624025569208638792154894668825580880997103605735765056767352055560013139448051525251145562573243365782958997271643483758290601307214761196446764772330330283254432897828305941398439907514839645941871803881112244163294854076154489301869354249345972176604181036929380702013100233065789110677461975652570005753734413862090786413968555830923538968561597984252364779016916660249177171324589738546125117277269126643485082700015929798228206585363001507848463028417057947368193750619609338473318621088412307636247090568476821805510063092368537936816872610799220066614810388244131809639394248362491081584224527894496919667867754006661788404786657497875575863175466310133568265483764256688911596521749597429925220941599681553620467436425565231056056716817854267097423732240083929421468544635214351833494581020291792567528481850532404616803487306161310184428183446546669749940481111590550292962058310160206381487675277678464153042700303558606983778112014055787496243079659638211069563982900101156403201920916993363716907075113635187306803918916663395104450163473218704726172234785497613350207920292651034378855668418590757884636033841464988767272990866401804945505883454782743288027628916157453112219207958171092807939935499345725548783499190041374577283465872624398419067417069134199826794433368525257464333790329596148486287969685397794195665913299335630614889569823435764838492629954245588353800904269551614423437787174458259334731479034168829092822412646791465091896195215467657452836936283684715814853259778753847226373081843425813862200010027894326715541094449370656665268855084667729801403945106523851457968652853223432103360990589240875736844165053678243451527312865290102974732052518616472554839977469590990817203816893822975198432103422423859125833977161922806001641278946691910991703469865758154080953498042868892618830898277438558660366626866660176579935975866593868212551076408987679085374001845901144349083635984968847844191183171975353531495175771870666070097213571693191540359177293566493802593905513438483308582464642044382130003514241714143748486201965829977368669510262698144342091613226572653411270578727215716795180516038057742139482813261788980054785400476776219003899424385850863401073610162518049901346560986558162393875164164747901788855422233325353865499748420646800286174826502652632339493123650614789417320646874012381263458866952511490913525632357087452216657794572561904664007954803977411615302363474052826899090693599972072930744332258910615017675238804166439010251131073605920026813064536669337794296511687802247279088385569914628661805349791796371686852672084968904028123392860954407221179260431173219814680921672158637827535207782939016794354603444705808418826427367600154336369408936109162458105135133934724281704793129139652273367095321007584102160188100783624114447911838681423281239713585230559242855462468449616129653554234273278461271162842240592403813417343307840956290988406154530206094578119121611343644914754693639883184767780713080238965886737780823577531440222953281759541498740320749293580643031439374408639641740187431206361008445141390134380148595183451910987516931767053828128440126923292622848728132010999809027141220496901268183173486270517341402802965225224213456798504148393161377012703643853007397520317107819698538440993627020900725585221912154319284178653596290852792894023720704235845535640338397948526080127540854323973511115034320499694236475628802525302522872792390873969944154330487651202232604975561633839285689550900196960013820791908466474637137088375217808700247376748035490196490965987512667299389743534696541252582472977191290393945951165276022303697097065691269684762823545181886720830531127129473366837590064614236348478220178506006280414621733891817273977562489597130205443138819635975234426140119129205762936152163739865027907890388682415001193022540935729613884171667275770602231741980291912490854308479987257890338855906948129949041453778378593005622873273765312750454528358899714117889634493465102621883917124667011237306680146084649149874321691929824375758878623886543404202331571135967874271956230393071727977122826493217579865341750108650591888341372276161070245718581888502125541466723299434928869023111813570592691441494886353268591761252097966348989636830477456745443093973624132754924335385557505432869359420254128730274858303402723169958727523242295910509285459755756567572663176654756294809851398911627167979977458105980382434989203015883246883327032393426497666465227999679065721926961596216651904918140335509586875911380831220183938746187114974052135708481650636109753320274900145379081876940406842658323905233129396354375557693009437333437362191929717797462029079111935623880682001336896241613889941097164757596595164934279168955235032923782082582753803303042748197440854729480182306432438398790233097816904537279789245474913691861797601580371451345321334702870389242427183412922444944543503677207168531972039775286572909754699936478805522290742938119551337061350923846641771328105078216871033691084558545904000759204840373623931252591946804373629553694852442826963652762241794121255891036093065649100359587864799161169315857793371902199809446582195827235249846460246102529975468580156814889401520538993745339564505122184916386803134824496065995705771596028179475554120525936511800618262193796987033459812077772553341175208161290247249601344351537142011774347997228123513348285349830147747484098179840100676659398876467865047002053846171287255199266936491759184483318910255330077288328570398518220284510018508785816348535330550049520254339830499187937501593451944679516201731132686043967856177247184867484895674403700797850228119678443582639308717774123057949005945145820139855218212193393576032229641587167753703127862882572877743312116125854305049383608610456464691825336071079234452564859420324513426948675061084499710358803633654186009014016438625625641464238768970533581537236856705120189517139567284331047140778302737880140712660755283499539157861839116010186951082924929808950593472455539031778219773560209697929122277405341631181328944168797651764703915364667981111978687224051232609337387685723454937609889435406275645090167238878264535989431138156493644254073030492747547367165661671992667909848011243213855466266488193799997697797762612840786468724161629525970229543741301319304418109145056463811183102550946013275762594089203108827934285543601817934874139124799831819533042336539466526963460038666880976032481167315334803395550792953047194102222157728848999247144197574753094551115379042800549426716445987095715579138135449491592599465319910552489086397107611207881295083813178107953386368686559593622803748855222800821823090087999532279101024910333474428687048149306603394013650972845112428202186398194568243607528914170618702005344390532458975222838222345781645115736296388707964727087943926474374910501721179922880393022368388299968778347284123847245188388130442312704104289406485100621432552479716992831519810157277087109489207463084577454528866786635561742223144001931259572466432675338220758388018667513979168321337867369298740221946057402166136029173280787335705936674401891477615735107643122753145029614878039377323075645645934624192832700198128924609940317427995505806257666041714596847730040064958873325095492062729990684963077917080380602193573559065689993934845679134577330650999410181560683941742583983020405352965460205107153291184211813738892636750733858756365800923214434678216467611046125739604072577882762257045088038198212477157617999867990245627140470787240232958623774311123602507963120947270614964137110974080979462052219271692051034104583828393014734373117317521596248760657776223418627082229094418336389436831263127318713299350622589737773358353045176530438047249036518992471618448915417687596099526290516641286554167022643245624797894124943616046500337293971422732490209343806096897807943458595518914397933208286090757110128808082313201853831469906314168296082689926269500872783333209545672381975497714707100216916631522927017012536260322292760008584212923848185146736778792905493034372356835301527567194118127059115563981628554002459497026612137133440467046690027020617846073847272360886472995462897080189508882459262344201848208398134812420809984657039934954304230967418018327826590103034232279923253733953811288185355945665674255412685734538616195362270337164145906271576783508894633193466832139093950219182331416190230492142342809240401089653670662118914423823561707502031346630345610255280302980470475849111755228351359012350271039309408830160869299074372111540398585834053005483910492130144428666380846954508109485367392890245901450975019168011291056369736430924633057351159911962198487504909292987679085330737500562876905247939792201681680164759872605551149408411844744560617133787513002132016501628828557877791880017899835007614898104137579899672604095546375359435092774783464958660796596114601858755342542812256073788740372959649419801499635292513163753074153794122220625657239692338937392362136209655200774485069365783410399197447187707461204076342971242323300334435435151520075329561274126916474859446361166341414599463820381817122132611970681648868404127726688704540021007847420059213170825156501843720952723200480454717998466067121789858281122257349829968170782754406807773347432405234828655480515556266859959078077456712534869716439563617544952763311140878133964378782409025434179865096604650057188602906050528779147854992592959239079644940549613253510553305059600310150786299752792960268570886514561141376740270218630481540336599292995990150513778718473304078833491319511842306105920025578741273095711404954226226788131191272626904116905041861026445307357854711566518083672763678413227453938413575010436037785297415371957843983451217677307695688858398707871546928790907113379218808718345042993715053431656174669630687127299231740360267559754910764681859904076064903192146516071795567944632672784893690107937618773124521783550578606403419400396459492831718411146838610715352986655033978247953229266787234439678828049964792766037795000294607008780886414069241715449246373139851074065347604766799044998963098843046724622156336999264828302088131309767496506054703212268271152479731865602303398426858020759677404360483172470621194956662395099036184722215008082066944527357314094290625308007857197596405619187725446835181856796772009314796423288369234055446765577286659728483060239645263373983461028230897570607674218264568957499808390576459980638192514335119422451185365309962489028792912368215831079915475439293286501220047025894517111251593228041401705188057703096510005009250075631683879387254316738326028554320740390284477147434388526253489586551136648257680851196827503367882258084088437504503267891633381322248858759434909635445143993740047862808424944402839356229818598381729737270050205130818522216519978732269010971447198263619610218708248990295677283360290522888943208581755862097300769812115862492099928692676250718201594909954659730792926624065061626667048494532228176012044902232608296478481534994751083937059560472879735147904208742881294946528304348763006736834784249010166756351581730917980741132743184000442117779077661170410959308108875001624242112204410223843506973816629847341002230275956397735394769910418181763765601886558092241418209702553250321904563010765971527890966892830604051548384167898625142308443857519883576786000818558057301478519039204128572288903895195755682376214750631373558499245778262427783515347022904867838978576266851113377691862567046508547331263961102968967413271764687004323001556027209861055730038893531779010476358088834921980187135074110690444833811487129527005996819180921014963861980663593576082296821239988039173518875399837763752675069449565212401845586139896679989524384013952789250152970510631087081030217672645562341865473093610244102168485831838946670644928096877560704087600729259919411802354912883116888541917021131237139177739581293136886016801738351624374277426777841329548351388771394585482719039522327291829420118973541736260192079018288043103199776061553873821922481386531039162670313863299190744140175236141126839419579367955746502424380381624433407192138089019626127945314887001461712292216258966257190527091508732041983895040661846197834784797378524759662866385332280120645601721431331023567731453211193999871542419311347885467895149135548257563549964901673490466983174124063516530912107885159878742103014751630850701133211386416202217189823873565518353951327014035831030055743583207241006898157619266320604826445045139666706919077744258862142543676469028612681929066665399440279016212401415333971120278991519093675848362537451801560059643721889474487445973155518195961804887626037153986627776156082028522460746621545767937475914339014288802041856576087941814653241793777528570594798694463090306092833964051564584800860121374991657842580961062750519516294652406621520653936102918567275902603983511145742161435842462414192408799223659249207115901553801631845820730580776320465701530362616318137636445182496774004768722611398164955951066375559130518985510777677596267383244308480756113530997546668109595146719266958175828888763778537443547126269425594801855418973083325887262369907854221941565254011798177328833906099410757798436936845688644760235399956802369038206837795195790621532196837360642409410223091866151817484227001502605227075290966024564576954441207562774181223226021014327503006344180810356921230093995484753814432895363789586918644172199057661611651332888092632244539152405469558606595821358624850284564818293922273207063388737720184184544211708650630109777243266756276757210542927182280367770052700046933113273765137299157921670952096583492888663260746456066899331575640563053988452969406163941077219562603315653147577180715462916611734428531998924157694284868804294730644704015196633082781302026711837402840152583119045525848730610221909081353150886376163283631366540738683553779880303128672370361968599198947927576902690841016347413282770840679179726093832297710692130554886346953627550733776185423943410932237077845688629490603124313520007559287092109989874134334200673115845737676279384810148005776223210609044239776844059226934119895103433537118275206173589442836390140160886020198564891106483309716926092332983485484975384825125987850716291672889829026904913416811899767237623910631318283164001092870763670778948388712560887832861555736420429252784446878381467189691024569128925530698475952659467928400107674553414366787255643523168129260560698328068674159550195636254548604662365706649160063515989022241124889798785556834737047811799431118766212687863327854267083901270051207783705427872274838936641872098035539034026697395319585494604448405457205606085828283490005439728241127888586457652589896850686339525913552654704798575946332654160920734379849236002015270780605870890284573187074588941464677679763352287020082076124879738795167049418753450908334269265100167635582942505340988007787004037097193572271337029394847916412797543013769977429727894260536098707215049908028343686857288231168072805027618274799146214331406144149024115022887580792156789146653913939027278967687915723813695622622707887741801730330627099181881454319671514252670790099289643841235634571209468405228408428574733956432433643994156622445022748659043248131110016749814866049377878455905207609738193993219745592663589567613483531709507229527365384681613202149231961186981994028810876575258301202172026605744966714591499341552930441401393173031547561948892702601556889200620016142817854683009442337184133362310380386456204157352514390811732693865261441740090991220143620845433836069558825888592953385254977659080107123981506666491853821512800897461569395733007597086878295249231075907455829175227830842926547892589284595884684655783777304952454514585236479387073712292407043629060604169078278472409967266554864526045675444348650571867554615740521146467461066621120510087416785112287297213052921848831174086823711332822138901871741103238656137273757258358146446601279822717472326684425934716238296282938594944342472579947893577485377175709029572342599478445420573119858595139160488456638792731323616139519928832185652305131831627472606008926407818125584788321396726556827965875054925747188774952751757841669395134355664847157365841501040143863672806045142402920732597663775561325572604153425126795234689281028829196095837385866735708729253120386444351063412590254580491100169928030059772092434146627382715712727851883706007220366418913786687063153670692854122958357945873403194503260558975111558641114020654419033630157639297050757925828112801092884839074801175376609244227603560338361865513434382657641035880004629387922325904280824898922927169029886460407476405121198506046366651944366294628067544021189808036031896680438529588982002066448863369168822552656594493101536362911216353742725744944023459137742700952651422019867923508984113632955983748532719296808348007989746786480268609552456707058010812191711477131969960367099746645296210115362867188442396592996296901872455743679982923592878244864543339794885006576313807168585788765272106819858114788162988510896033403169072882888142522970166902677895293115450698776671269181133599572887758113867981273021613575461081770029002439909953915091300350567490085577381734822363168920430099513194854294117325312899836996448819611993490610095475745016578056678928078722683439661006915579387263465484435773154447217850663393282031106338371617101562049602460691511931481136449264987831761755136289174650465468648425612388657502736495447521785113573542807184418661397189354494410806455796309723442797922124350244665230253456941461962809006456841105229856913844266514150853269176470582708290343840750349959366535348980283489296421240472025957062148967760532631598977798540168811631999227299992377771767563191730246987910996874340223735920223869220845043416262042750202455527239592286208557665505434240853454080309212097306224269930752474041920072635000865798230326342052222350654458884052066554626329706412372887829310494860427621285486193708115523336755481364930269453295456049718657650067559097669240800337915329325238748300085655805361629759526259676805677288251714877672438755106698308086311648990729480987221862391171811580334792161894940700435224770651726350226274643251133248039117873326492720805528393211836055717449420492986895036752678473299938877165975967136706533836895110632722912450187883028784140119468079811839681443862216693830800698831384255947012582439214785103470927964290561996603563147261677924096667953541264533978309997308990913517837685318446324371480135892548531085465423956938404565389606677752489944041369213397809713937677623007288070411118294482544568269439025503693144264605760860575226136026667389996866389530256289650967238762840383454679300488854475094041305756362600601730868555910411227569728187195340237790443958750181394929172200010606731754718235872496142744644198327677288853056002226397065012980875746048420774186188207545032506226945960814688911334069805836909471181908741155866873793204074086113761631331284186889093874785411305711066759074120740530397497966503428643096998264260253639476238891974916615591659449143931198807995701390336875496575478443478470561956588408661444699232381068167452341041853180598120394383560487663004318444059215622041489387781609170333474954429517351509826042915063300255644158259768156526311743731489901605603857439917178994020240580641481281991576082198516004559312240209340177434355044896594503040754977260758647398425111131735006237466544203012981445644705061788773469637576286162965517388140811854216254126039478063055226745140080027531741808652468564119371833508636710231428099006624716980973870326513307587533963469208539222570601320888251661195088516233984272666228495164370508848312928506014069462049119673696384507451219002732694261073641503871736654305744308974180327477656940605492026381361040043632526864886267927488200877408934726582266456253403577926359459009930452758856819832421406738327834797970447932740761366778950777153526788208447199806471203637814492046070439309144266571069887799576650604807866775941054497637344410691864678582449513829706638052514667864783465909293073073799255805367677504322502347376179951279005437521402393797287257097818211831564281611369059979568829094159012433679668471761774109623112043086938033955394541334438718081328423498620035377803972917677209321959531669576413554619287013682634115401320562907838883361970676012799346858100968627748320283748197875850520023367813205493706172960461221936486256933001819623767462592767768521678153511575557654571319917421873836026154563834585577009519979250926290468461266274524876164314532373075023507323940685926642150271535180867455839816276570035316154192754051359429429458775448618159028998257325103999690144969643473679049310411998228835054742994225459124565930185218333711464196876976836246928573221531203100191141607228562761520255604610753119799264953545509160159278613174701974512043093274371803205551145263384884779797841901206904619949694575852210116178214640331181051199212479067874778197586970439268932670894815629689577103409985759989708379868561529246292430268806678158122459854544659415535781070940689245361334001782585512223038236446581856995563211272128473078617619512042284694729395344859662155893396098560644968972193139193651662646470416337994482426232390851363916907756968653113904464284980991962574491920209255384093684081368227267907444154230484334966971058881040889907438180016977588441104522802714667740539389346025942185911475748870921845734114502913670588161655657425933926824900387199327575622582213417197747718938539497188025847615557012979470245667062954221302731728191437996444475520518246751151476426563476414125407290705895896350356374838359204395440871500108099800437668680781353248371388465402951875739683548427407131077156650536210891513560101968652165396950374693249600149348979973923936069836949012622694233897219165407660443063639727427842587356924318812707305457932585390504714193831489331311662287863640816238789723716422761702044655037683579737378676585273671806267129772161292273208945396075002890125942739941333576697892967172459485963538685937938062122945299237565784997720267111247025931028618705348373797504542293325293939044186134314867371116525695377561794961864472904828193721489951983712526829769677641730208351164349263491488285885410941628553427238714233184125347949864314774227199036098470123987847061259363828154680961374853421711623778389513800618291019451230427314237757359245690675370475128471798469438424945355241770413994705978189842325522851916087515563368335184162629785650077379635294616833419295644809002458566117691592127565679905902729313122825990336298661401442325159934400442866053719764527669895101059887034522568811045921107442896969661854052563910323202269204673921900107218649795841406247649746161495359809966588391444924667520161431279373749621167695423083192575933458077556695237771281395688388029821139946720253158050188854017050654765684389843258618148012525483998846901634599040825084590103312629548506135528845755004046062130548507459304146407940826715794670136173291274832618312327538984255959601312835531962638914585910717024094654776441275729419023198001495231603226332931366088774653066770173262434984528455406965910350496325653801646090101684489793060555707217194887794234286070607390940183851606558205012806051314215608174134399853012962585921598032582180246693846283667619062647854858762077439846403010741504639532697278214730680031585647729062989457172573542409450235113752622810193362156479294712426300824917536437201186567907940933621219871638516863253719713242172261067264150247208273973602139965992364588235507568307066560860718558011526140147594214583201669955526970710037629701247603647150672998126361545729485848835380305439241263606444778094166114174030884718448202594855323077250274070791425223393412946343255585150736474110077216774549213778040646243178948605477942092947268396275786635936971452345323668588724616097014490657324750307059767108423085450859140800405244952653127735948481115546448697316928099245985588439242514122510404400743930329393907181649731241593319133517857447614944390348367642756044645198762573090178318400092612353736989026849887378475882556392454266641105015341075609555608299582561176177329650158184717607007469643274784350671619406876345960873748803819346182965716353985130843797042527444322261654486503861514738183876480781141109602491684348935859772485818762178739094196578757914927525267287894396590722287107631550697267520137468549417099007048756533368065270475650897163805733672143246563158998422118188270755399664492631557956963912495738241462591845679857596195131167414413177441515033842518515547292109441573835321282315905242718130770513805601394283557920350820032060488138461559204532934785769220133637145177015103609726181595652553378292519592346995215487905400984391691746705433390115692875412580476646273436524002173196744459218034168131908230246563681009250630511283034356602068775682110405328946745223612218517895519532517360286969300646134985207033886420047312249596905265966000637073736806614761764447179965462747411106835847766524502436908273041708998978280349301344376078609430054223551361631480182131802738699435116249641132914035991486516444586187850784064281137061437105602981764383267386295220462742357204947077743751280664346321069374880980508934435203146764514432172689646148668176469773681287811105278889270173405697986514568989449943377810875952312487312182197647772298779967437473101911033414928328517656100082910709240676779582644833047646422697542989675945098556186686856314450677732365725298914405474929408338676730087309222503882953727311325450333160385924121755039310054593401039095549039711226701785015342623855541547382307627569161541653528501864874655739959782034484243969609217724703834217564719118713081549458982009854221588093917006125047402668516705082133796137921375399449928488151281988688450088754962565858560512269398760768329989234086073198403554643939096001879973660565770571265852507967349307679869293729900351724840923010927590759629892969011316998639943783964407944938323563383405710336407790834949817327582607041831398988699472912079307273788943961944294615043412163684367623016172971339225380058000519418977273024461935496702857011697669802263299631781929241450656233724997732464012786293882780393600437121408441350951127276890705483351058043331655678703514802984378239336507953211472035726997180340020899544998998359239831549496162497888752056972275697322065932993268170618691450101188045840647517758093550638376196697385846483919699395678972641437290943814464187369300339931497054226384947553914571980544897158161886347539764216431427849138007122283448978915376110811215830961184608352338702076033699934397075809376363948920508320149934846924127508734260405417309243380034570324845142345415243318582457127294663637739029780636925850476967781848756836173907586851175662157307621717792902540104921213073375698509172741214412614098603712432498508340066489719752974852009866460873509179918675137494514556142702559696231128468182402843019352593621681911774789471222050212291031697273990005522420411765375306978123295402971388184551006581147115339134161778560438170930101787096898653491405935681856639332538940982670939087611744767118654170452458095847891530440621146671034511900400223521367282680722365272584516317117020595732872684132550354786525663756327419872918282099789937782210842870673412185375832495710397778564922077258521619335180585303276435368491732886682452681693327807104617135664734266114281744632538834956740461888814403346643307481933494277224130516084998828613698127917256420033033722983938233255069682008228703723513157048452482157514958093338155112078056944518911702888333979120894528643163760209654787094695121420947228064332746748765990256726649873027848409784195736750054228629661762056722569213451464993741567379254284959488303657711619901717979588784224188865074465718862617355817660803191850029576609117583919575348276415621695979851337966545168608107931751011199400283369260228427160179331443964167592877697777351159447720745928770215411006486780549038224541335099108959566843752779946127744309875193835967292319059304872504900500282816895814253914429507506336631563722559337007023540339598110701151830627624913280504369724194646548138364544811981198345245958156639946531491116591788648663402638450508873857428701960919649950315271616552086260583275361888709420325702999111901848336517308436131122887966928579833219957735604736929501856637762944001160375647023825642977364188760710805640509713010736407495331302641934338794926574826641149510987515383393389260798849165243074571644470519063832486186648357945994929565697562623475069842805953356670483430736814171098195282133752136174976638663679013933012476771865238263192412138116029922130082976684948172741854421519152834440754226556256758103038664159911758682180119718383944743092574591352818630761685216514875080208469233789389979532043655250460518183493081614765721933878770676320407039825649711606798284614159707692084474581649985519243306085125036880616149691936284762734164690027667392545189216617923703514693898124583478841918441792168112949748165995560106403826327052498379086175423437599387542826314204677743392350520251277289326268859230935865870536180332641474472986073297710403986656514253250609574182150566816699478613678368868750954992549901922039827546979891476860859587037214416508432664280213074941069445652891404706999842287821609125783061317602245059903176388098691838793432588624724808217862062919838409013461566760403214128676529362974982016641543340651560492500269526119343906410349393994433719607330084015865294744256310137215650058891377847008595607578075173292682326300910977546249160643044973011269807590702744444098319028268593858709471031220984408601433145640759046911452037227488357672212107780102328605861527630376808130250489474409680081525036456285250497768928462283138997461925307993827264902971993114610024905836585175105849311657946180336677209346090597938700693599610525716127512745888170132101161001541383298901316502924293309092196735744705684236412440019797857368350194327403188705350130399115884852894645155610025736468868209823280695482745993822474024793253444037329586000352076083839262750877611083353004065608140939668177189640381081832820680068988247192703545122309471275947104752005456428955347465399573806206141228029892992732072173725941908070190368938596830049999406301773890096849306567964750874053102501863633794128317899040224666739062937172313771980896632375956028035060144763254444744018797708852185683505181549119518404933943023285932638315428047113670852128195626534270400940697842218413815988907461355019122900108500899088485121675800608331023871257063602617342100927268357934928558830390058477721751167992665743077226335254750338927730871331744692207478931459220765821376032036943002345777704166506897690576572097859619515456058528307968862203722767177899891973350883715097903736709332613498507342251628277189262495372826882665343156431332902617877282064630111018379712475890751399029256481803680875538258121840873165937081348909171900575890832284984183426144769754516467400356098486393097329722376690701508288546001710703473007505413430771822416860971361775481060047504574216679050717727235797438928736447149890339556403241449896647163425884472108791727083903339876612713267039133175007366893619880212508092227533769218653534609488610736905543642300248613671184586890998156469446770552437270840149117623737907321225061185277529092257086183539365668775040964948773157627523742699946018347867489082286130311901536739507584642459225719589819331475121810505210993670366440333017533519922830246063112233842941041005312023984256872762966189721765724232532144193812650593561470783797224392971355557932416101505355571833633132100459571961331823908616720272930348750802588023005349180200353031216794156045756912095489461338575094682240452035262745904403769118248466927806265724495215444346480394342416947859514911182713564509030270768973145349903709918167535740449678096053937442057348942104579853142317774294745169428795090026398615877466568249848076516482546784932735555018418086555913410559383765703903250724020608386860476869280456786037740257386783320665844831087874123187222225675358473635841571719384178105543606176601553085080030355010437826523737863384237168276652769293993053478778422607894506769521880230041248688891031095756055597350191765407490314504985497033671410411516474006062029928783625484832219477084342796844993925852543408696170815791118843056175871512345316133724948645768165404452890550996062007089281147689718715638127498808288738779183764573131549265049891861867009620629483610808352794606785719758836472800884323519004782618581735647830911562307403473822861517668767693040773431622682920838213494387518340858221646028320126348968618925754435472205587732340098077631467561803728140879786039514028413731129299397417341704908793001119837635169816926285639265856799434791923657409639052538787896805886944793955450534810105282112863965489941891707303748693070422463505376432502963845962059619943118540664581034076057327500255391768215234240145784093022386050645194783034028438341132540450653993531074806026925802675227808630469603417177446266787248981206090457797283676432495767948691676230559247705336841398355709369295325185870498600438701056409608546331289628547856661286486394283430769531013465950692329511302083240293634007681943735094779283974319494945195481200588223337749552387380925311228989885895344851361793992732208825911695832772781239551565767209774263390370562164055121234615131963964703413024406100964493233223557226465685532752053726046150357149498283229218235206215639850428768229891974884087775268530925203992338146739864638442281782548736767186897861879237360738935461272098337492375266627648353128113047781010996714546282887239606658225015747025819609383072735366136417039984037366626097816490428892673119904543588211480864246649853446363030746352291723275055170145554766413285592927183323164135081230997417212440083661227723346162349343623782402071862693726097631015153767709268418493386085915381851513288342645946914964787789592082442724711005878521750853776508163664196631058563053499608787915272469503521555976743367243267542524819960233547746334441710188351283407459735508882868848641281094152380399682542969402033179710861422679991722692402398525163322980384741897767860205079452931885959865426605755680821801139534178531999252459736458663239825345461321291159338147267316423813439998922911922498462018509346863292518694817368998309684149431653409798231687908145990481987067457039288242340521493619302516413512844352479767550836683893343248160037411757027486773725685454784957569502007283663011684833632536216045046901090953450330830501773289177965861147171928314399968964641089459675134520304937842616106533523932932099124915401452496340698893132343552920264101364690346767748605630876201595003177770365618823379119493619233024264024911919770641266002551767153817820079219315138268956380881539475645268650248574673591574992122892176440476353254240546099979208820099240012541427857964508468060862895347704428265150542151293063889201557502501656900544793082545969678990255125040850485856590372186144545010982716491415505943618255493490220012797609233750514548564937833242328484650457267921861253592974995598222357927570371717470990694358702475858418816165575500728563710024539003223618671228462598269180253587470284786354886769306273410509252815859051872499390812383130847446836204226792175993571626588109324936595835395100969473487244106120935735850181311316009658508989169244247894811128174497532507590100883785097968055555654325273598129638580161970799191822648373932677578174007860613015739790628656785641456073187108544600078461503122374550933554127453796213990702138822314947053152227624487944490840569073680402169643903368252217135524118265283024676947805446084527678594444157258262800158440537131208571078667142905812615163116930302309319571161543646525084203102332119682277007317977637014541423476357362649140641979371340111942152741444931244201495710276738802714894787344850381038672484159980774980910139703497941021116855393662481043197220499091631783639383151090296722420988637785203918904543201024132159845121376285045671376330795217501534274776722638534992600712328338905370577678255859764511033897016804201068617729597797280409737175037484296381912840020544548998760142460194813051788339178948700868269818616357988301608899629104650893825999857081008709531270298661237121934531123194944739233155347712527560270601222014411310770918849255086775367494773791082395703132723159919319824993603623260998801640685022316399827759136576406207810033331631717228732724521091649574554963362116934933431420656883651485528669102930329256910937732644076998854574000602629678225869765275642075437176573813194562868225272246698087760847149319544829534909524848337476872942294033368093384357389470697202915216064542675259458770057749965565579919963352412204468445026720469454362273249369761326028999567307517292019019137835634688778527162082382611851491249473450179821417750279569685751004368237069654057220543870899184073191185969105272712456570328123721753488044397193030799921423802333273563481603196689734121335115416144430340451869646648033815062950598503307824075778000851049023943878905192645603809249147822404844211576150310510535934492306286056149188055010736284423622264106929091369561658125704007443322663829030487936518722954773656867804473900746423266944162288449538808298484843920828744780203034084269746544628460034891325193560742120535244537312870517751275315853326322451615063191204476589255017370129593713689015350884092052205735468210142027512096801236716163101538430022483592451571769678199029770746655263745195890879472724002890786080706605135654223327055036219095463910226877353417735994217802691398444378611216980292942432612116627440334089679605676151898358253437968983734896246211646393457603712662485953357093040998682167693838466474870494162534153840183994816939915203659264972467612714663308660437459624732316009309598281330069287181762611144058268166774435898291773080629974565921240816313140199600630866020598047791957032117243515362878372271340307761363862087574075704780706753443751135402174442478712033925268758550904646143463099000529783423131620377348036508461364968529432788557558354847930575263327256025909258984418259505947877566085659025258269474629667016137151895594096515939069913452402182013185428329327115627876407620408851978223680522681474069083916302668603100184182423637404717131598647816193479346894082682883069131028811927923113242081936553084203544989026113138945332357376931492517799441021569164076978655753866791287995898215960829791062189762149234344375276573702857184299775330234806042675959382078615169044667963539750482543685766932187534833365114723110339501266293080781614220658140668844935548601269942591514342325733243926465345317146347058408886498391498331896124670299427960101184290775819685413730957917124849933811497610719573982207732268670765114255876275366354122213693958270887660802096698025213406238746891966802170307764927439970062664979996018363223612368209760723223246975103124933907105108648794703662847992076054141694887750947629570643303479696890604990506528904834644765271621795786627063195192629073467213113209674379443601975890863720038967495140014174357187741775253748456778250425445421617455433043530123859919312655635601456803352583364841227913178742365021899781659861544560686674477362356834560723152560868192954696720701545441835052760065882523625957717682034167930015679188954676978565191503225454911401602659005086862040622895310851011459541982278205594418781081498968432026387950016283467393067186649546798303210953052556150584052543323190034980358268338419262600564413776742744335705281948669739546797382239106463164679843060671859742909496793050732863197904120619592217692809145211535981872195948023417224151435242789960546117305551970395095342629926200844042982366069855267017808798064057631754692208303565886214794900422108448817534470401696227085233224387696899656435869150891630445204780275150560158437263598431090146032397947726966922707645627567298077743564218997572470659954637267831795468619568175931495756249147737627379338706925749707885042806107548194228725573887090700784814713221841798918385687428656663619550495035772476864142551675280355647080594663288244230649102188677732045101509192496708326838662481704877278335180407071813161930860985550448859823095351947456764370241585630165654166844836903421817397604088980060314330502024336688733307905950124681299078099457642702316116866362133321413264489077482381092848480917709688472469766271301770979664815245596105627742752073362792442138983496377704926651649705803070245216493137153239325762462726292395113911852517454418246160245058675507538977391207423972146500952982330784300491220219508937276595381120359343485543956090217618615794314574689020478662018326027155361472661913910824110607231761850944954580065227536316868539656591795463966981559163234817322442858335683606652264393154632266469923809971209137450954948975768005408903975365742601241561000639129180999127865840144516057186347766976530008790458921193120056878704863067627437620370083919309846552910153348812373316563307670863053484908075222886268009625039693489983718796641548401007506097486278206529192699436850315176138472883214116460707240907513555419057236230625746531539784331114274069603591126125545430309049635676191488388882997976872595101402655667029877583425729111210876242039360548168678094911133363522148138623003209194888512971961923872250999174887821810784294937842072032869595923187130843619300140413877907248883219660586110868116136140828587463086918356804529183585606372850843904172555804030163080449753830169196132675358441957697604991971534289232210531162746265857400480668724254070648057168589160537775025253635455571623261810772540068639309638391435073441498885066414247177518670585940031533716681889568787597104087564083923469607679398856186624175876754883741794713276398657144031210339545553239044484815947062155154280368777280286783376057049994044044422058098344959198025609485844204999069058630445847945652307975185038912913592662272633215695625693753984897922796486835929055806722772504564666838395157955995229927436060473190861040742991379669124180883444598749026828476551937483662251336191828688156261230389799321184168274949384084566508978913145559995478848044120986139236873404134182724290410362952475956291141142656026208288634182551639219691635055414919364599401817160942326702863068399708642251468277284805658536430970942614594003901426450369556314209913444795644088075263970096068476635913091997713014347516299483874629123769193042178240450309576301501852734716817912189119464855805447728866480023536512938223915777853432143347844313857197585360147635053515749895924587462202779390142841698489063537713153670705391728757391703337324309894755193326594222933675371928834574870094711175481427823342819104801555387710447028547762392926270078341283960702699935527319477545702589771412646976332486860178425255305298915513977343706312838205887796471299054253944795873773437980913287775802712418272273043243397751938926555389016045620627681386393889263329879630306376427239001926108805304825398164160071267071054232669314941386842252001334387218334735337943986410761508300035541115965681274563891320870008510885435782066839325370131980481962794148736466209092976522724323357057490443955327226197551987507346222915079411738209264631946547688241096124694903801768270635414112120256095917371167007990030248887458201985743995486955329494009854663796858052614529847791882003110972737540627357308517698683487386583877747675915605852253468236099960879324790773945131031049928165834028405522227421290586165375474847053672590184334993884744951085630167023888684947515811826387295373038495147987148439094323158274562111937983604764404658472128685277067434780907372390157709399097915610500559494632499129488303880588575262783020068837650291893721413562238194682590656855228175122490691460076782060515791448011154332784158603002173699640276686048804375652060317143737379789565507138144838391351364041364963434921030388751676396132152671412443250653608089302113111644450623328506843108416294106385568448029695972231949621283355378113433331512355876885922746051766222507569405648039643765784939164975429230882289804735961176101396893180930839893480607775918717778341397100447033239872099567223258540938890444839454009496835564410101182705388749835118351623326579305852917286839540715159033879457727155569356100003579026222792741342806084176718454478330503196174943639146617144199258268735268885013788447530284381786050617963683676850376595430067361371388947435520677383862892403460154719440114054682233545183851075879386604289627869208957919615152482546495375409881909977749695197689915244252871490313750812523083197579998374851345254472996779404870995367037704545612582669910255774640041095623399076224508436360951180284904234724010791176150596362956480678210777946252060443137990759855703142033443857278569578203301181277843830034994703522457779822296142520243995842718109724460525095096167423005017200203246781680910735348358308953648917560657717818128775418432081952242081362295023082115920070428179499804195204747900640677526160336644458827581814567338175255801763640516607233644501554279408788500014676358743240259408393662793901483256150254351568974511074850418568265316803379297652822799546001531971614030931161948412626842916144245849005987391370391179429124145685214249709166055365221722965812126277634891790346949543783941763469652026030001618480161170753808704952462284947546704635741886696273049619299484665373227060713991432157381054774694757757384190206804649553380560396235345609264626718976514001666214366704678299035206764683824705325343346258908146695829533162109566672562244458106121857610904767128714329356020337534516136536915197350539158059171971958848353413772755307288989505226556564714659587246520186953013692993907880770828962709275400024278920093974920071413023559061483843562648651989725744085108138416464046803444877980704430210083977993210174905407836564646554621031889423234730850518183813828244848279542517987661447631304030826726277829737868656214632852900249990919615568911499502117789634395276755099931728154216431403117308820135711027123862573263763083798786434550446383674660873631888813727164877817510174967038208270414205053982635256560071944199742184133520325452983403607070267246868324005843520541305041836885029064862804445870591710794919790551926807135284858924107396181996406829372736007452602813883299956858885506054484441602982235639738185416509337397410099898396924666953396032172320368658193366997217692222658346971952020473734914795885255076256539478637917116864109617066473979444198090889402796860025886711906546848949383642568426541842626667221092827716684071254365913891805601348915116695006957322102188712135387742489815799462082197706074162586834802427501754913369896739348665370047353272539267793853652178631805448627261730357286529910421546387426740672892213226818023953682441224032640938968485978665152332931613606569750167817964142138143287254606869225284366918021227505062357498324828216307495098992587272833594460493543567689811972581885838441917811543628908836181123631701472263218082258213850216777248317137481695468163519194414925749278972588834710723736314743448213069899465580491726374233719527636483738717166739172955385071397100002426625901362800892592381110470073884951758259444784427785867906525163664808656133138886774092977014282163018439753612163738358665966711882669250542851393664875114744443486574422788947671822107564078654385871774671709239943742640723770684900679706963252197963733178083492995087764565041293876239379786655524522585985566691311254779405778081291604825252377144674745288611136144053983422869296236744119657623344510130962534819700137329367379900858263701405450935585462243429459396184149125345438378161052879453285351569309868773568268872112633758572489969284437205302118623406999867637322297361142427236311142447728197140118459122706179559479287574458811305683209870715133817789705542496729801882883015609520791674930127913637086390285533245983069963015123044300409365632858375101007116957647616928737647143408037633517648538605555446845511173219237246755229895290100247209776987115701939635626025454219568097239307360493312852444343106191694755777164187978635940398509872769578218840543696373784087762887794548463953675940961966900207470735810371230093044449995674541555785454893929900367391819000730465236571689280392651241317985197831821774238441470478077600041473259455656414729043278957573459155895041868668716601616140563189811058230966924146513057969812016924965666114208615483760675306714550939119505392417660601049765306947370646864808150756852549467974469650380152052779029322696811635758870773239228291049416993960106397724205588258927505802382379960592231140657213016306386550799655549823854222353623209582992290089147196094099273204086683118656845811469745921336666520303324943691844578403351173909753975591778236204309468723888718454515323327632242469542083323845454664016135125330524006503803544704999267993787752098232200167153926612156694376628911507041926673361451034867917970873758403599606490746002760187637129104243070332867011713199618822707729229849886596497002677172757157005774157650376912805200280105384021671076470330915028549449209917096462451513528423424190353633735196766123747958401074604127688178717275092999320378960588946278946912050014705722880448857179630230834111994934897026820821226437042624384232527297051950715027280477862093925139664262283343996838069194102670760530599467734229990185352612549815880738591793064294138851400540585093205828778927559520468887491044252180949067624236744012241084829824753183821511443071709137640971108758111478207527116106473717226886422950821146418712939949139045811284524735608517033234423058547103112234100078541098614152103160584349147351181309281466561965958076966890074636989877419951868044301778840807963708038576842167977299395364562533743540710890189665399263208669289063323259686887624203596405864254547959376953314412323179264621241346901650820039280483262031267134947429562419070415234910602727660459478649863720050260683585591124401569048407650686805287314522852005826381668433036165070153135225692176118588078783563488060354913212970809092790238080917769170364913024269027606287272132536406307722980897340178304500109455155685024688360431118180801580877098839081261546537112119486153605536713360697431489131374386239528958807195658775116239032498130365412134464520018469625443861381194767583288255555686923704839690198108438006957793404266437950781837634064876088156046301085742761958727678928482566271381230369167035361685775649721500167819074449060223946753441124207149941479962250497432269926082930355857956421991333127992045541412323003932840684183197331654275861631811005118970198198788093157921414147413902368453358098469945390680065260641419322035382087207924208880713545102530254300695350469930327812204568144605462038530111504869774667239604569392365463233714225344523409247379393225723175568288222976894336650645651527259685029804645988318759543632257879305997308419016743197599349903493977300354945291002012264203332101825663402714593318830120459332530283867259512979736412875753143623797151504706898032621340209689184667401801479506011146888484556175136264130020709861543224189259427488656856751038814316475872630649978868322544552298986068338356640220172154057068922611327618486660854052689518596958584903609520122304251993157266998960190754676668487138129477818617017052878093181803574816625480898076082848809496174727550035455948081248711713978306152996212597068409750748002009315663593302802987021618242806300808412321218596777960646613823531564049985440615723127204633727975426221695449320726658707284444040425551689207704339805490932712898791387542688200410688396850696325047215321169271180612072833594734408173774586609655788944959340466923571780470779624307462283157400194120201694397471120267129741225065790653547880823994931027073905937831709655983052595764185543637865569995330070705719213279678550461683370079925986416251125262850867824776359620116473761568582115976107876223563232482028404305450815584928669982982623028007078373306936227821493940509262522192423398328392826428049448323932200083082617450398479912154402495005697047430921676105960252211627431862244936880842722510224324955229764038049536393193220549338352406178133656290902111676307090238369349354668086432041844631613975170315978822438328569986161086087400096063097327434517217475674942140758984346645231648204859905776097112744700555844179664028834077578344560125574941351698430033295337371309159095506839820604623757742771293863550281845089118438957767122111517326880024121473492423775125462914825264926890820425977277313735244790374086978094893288984040929331626291054941543445929910505577188284601940031078523268660769796921842717776289595744865153438411017986399283651805111311724921750298805110102445934612815949805635039881784645525378459572516668128835553618609692804921685154648305381763669337181409692706384491500604434526974198615066918911223745992298156098753532775356261789080350154695830754211683306249009104821949026360796870239147164785794148167752588221172084816507364091895922324543661335568371578014110722544307181258892591476708264624350315392690974079978401922327686183828545512845232931001796297366706232194593377364882877815789909916260981856431966474174609335249934179663641000973220317566943301547642327639673169366454815244940535721990632172603520371000689542608641746943677225080750266443789542149075868430131669740407672031098868449766664766333756453128035122285023347675449438836281615690102036854083396451780337964226485868549574458366800770901832599195911819433979954842858622421692533006295792555769329338538537097147517213369093303294143346666620692656563777454674893327279069217469105759348203293360043520905795523473554997532123201573143784607076745648266026875712637987445598224588411600022386533829431910701853651695940105149893161516816724541649425538058742108846999712774538867977055190365325120599222099123932369057418058851624628905027197203094321463275672476665168944883165554441319685067754114520350293096048436193385313717930349127303000654427440348857521074739214572494552220184804311935007694825482905783189660222643256044540291465639983189471169088499298503470768589980902262701550225560839465266223367029536933857854913966919115731851225311318066509339437275254890766205416678562413882661548288985333180976635685826722858715957685237754836441057722953178759239080576456475220708227057598760206655813291608980206005653642763890785529291465034524285972680748033518578190114313539055335129526552075113874822707970513463186842942189563778085954859580335264778805387965235371563242438272831363590000256700031737459332640920046805194965118229988388391518069685695868239394304039588170069790857366688245646937925351401217264398642126095800255146866492679057189104612896757122033504758232317704216792067812199019986307201340083049489902767321665936297179102560196920995255524161466057403545410925794029285324038649326703515204136059766237245910594283327928626229690716518320092293559204767069137621430279824930572386373731182060338139462464457283144902401799980517828438273744488986947925001178933599686214141217447807841190125072425674237994761063689051130007039599490464557295339147269500421378862989833956250063501557671429610948870971293722823298439551647203821955829194608326618879723764010562356699774871350348819812384383493412877273726039705214158486060412725972406230215776341813279774349406400594333702700167959305776759310135305460521703608623569016771112216721282663817181044827115796279402947842513668437301782798218484383810090114352371621394676583710682078693478964742893281986373166407394133968896354772569943044842914619133048143578986879094772518411468769693591713868484325823297557204657259104855502767509936576777393467066337702875102584603347706194868566030078659123701294930993774558650288245840563536929500349232178246559907982415102992025746724825996375230230928004257641124908712509474702200793695087835443395182474810112358654632802347107785756407127516657316878579730516375791506705510252235765161251746657611557557328260452149864088080537457855302433378104705532563840201625548096935855965612348581683155745994341024676443713177579905207331668578164834908372751526909985466049849743253466630085154444151547811146962388046052617484393094844314189659823556654431607865653785603124987150965864513944600088761452723287944336269645162899667506081009234329268273011437151169558111506381130439751073057846893234482026058063810408949168496108011194269604501898681743140533937533324775537289147210249039453008012816388249854465164407691298084137463967724440247582732290018449238279200367370375234184429339483027969333824252210709412106471492579081929713035228071317982889248957635899819915467608544139665577338291433767664194767794984492006166128097070337230471971393640055515575818573229842636323243762829943126744275965913134853029755835932782966190986529128968548623421822440443084811036482235040618204388281462594667930707451803266385889635550755902502670928088182641080366197881949970036136327836031213364287869692153430686265255926917334661331147765974460317920451913073675450931528472896324559412423290781074129302601665272314327832107166099975543436947051006093852834057678764201878346774150509261238994781753600825995153797957540263385377142013596141240332286232316375613518154640233153438884268186931804041639391598266646211787476052595659386460089119634666975230476770623371550655279243157368788129072797466807735928044272671836344361722625549394749201921566465925396465245646024310207150507172393901983513883304789139008296228076365427216891557176125045886828334521984047976490771596207849188238972486952349152619558726686546247402767303324143118509378488437163676341188024905326307233497160741651618193534447056601209376111378866486395172991037825477931878741873527319925563727511067042013222297950790769087241183279909896803463890554001847126835438954310421429772267705456796058145885274158719771473888161862920506157191210801759158971801295995241491596114248077108407987863104625599535707120713279160336007190572133151205279561435355668233456888076498845963007517088857855894205550554628793837017650513566613662370119134481361602629582138941624097735357542164990394723089239315834835384135346240381341235069087402691279461846619403164414384562360727663434444368382190923966286046815521853183491110992518231386786869304197119579974009081684150918707449317864743654581416105927434282755878252003294306609945653489174378081304851159889908228227199491440806599822651677893057250629443322139509007702493034516730904473232402783579387085206003578628078636192854938168770486340533200009764685368841610408949985478874162287200003886575284455705959150194676039224746654951822517260980206027862546848296399249090423558717662272939779159572257134100976184750356027730463982926430348288574363331845869446442080356659944882488824400771364325176245727601487518850600834106581504883749513891722578000837167475733022084786528772786043698386627758249287717507848335366915109671912488933392420727475046705628676651977887946204791115190292463457591404667617886116065117943367435714667741461398300826253922458490626236223033161615856174758062170481531593037143556709841344372699868287713546251688737914383251152844531236420279694954629149092907619715026579188672433805813720493428350466214120408403142336643033401833112098205306586100164075478213565423561923029694624925188042224022500365432973612154862171382763713137104910867706397504084805680461283455152324220226871663996278867018048207435918898260403495267945624262410211883383892838128749252209699755989908725640400753001128827171286159134919826070833701804486936613634808814214092217368147034719783620756625312520311498499195801098545175122484479956042229340526197196367883196520136513155651384947220605239243092865713216156656220633446753182566712224174603129554332154851517481835493150429578397956303386736248148786196497744989536401696947052157253560490455202258551375847845483398710230193453504983093020208510574164067641886096411298132200918693530520680071340205252262999119906088886739926580681485437050907639746632161700536249542710464037045047614300695003613918538948403836304679387770379176762891469549912102429788713685714039984502659760454059726259628207266630769392005086716982860096221643094493329442423610158709954799782415267301838138243832957540081911891861322290022741420720387741747087066769558198822061365338469914961597793816037887185200267209336733616674087047983426955913467995294136384770726302656001393288615109631987747297761023055572684522475787911194717200411473418620993304211552351722442332443038806606130949632310783313709422437729979487837311571792595742355388436140700970318989155956586092201196367482296876783171725136298211592321914967755121103365183671494226417229147823484291351298740846192940753888785330091622624708647442762219639103973019931074186219417842157455438249074664430510170593290075885999668965434126914849117798430946650320182727738197596721766721334158391107218612049985537784852106694940381887571465173405706683248125433601149448369858523123423546501952992416142751497254144027878828172808252457832458668786467476717031994787939430131878753593582230985329132272801600962910521678524638171148434133218899601494629582221428434373616299836490000612169251630239304545973952425347596971195159068746604711060226923597710313948802805457312105461829406298808122735056903743388313948332101469230576007836305253532986271620545465590831252150485829027975945579744203251453710332587980660411308738000551751801588168775217388708150957958010228688743721126109980493527244374286244064140325503980115971554384528582082949872336427589430567100747819468150393208402594180440294462589851525073903288822724585514274122354934889368948768701616129826624548361488720622537716670323664999778427868536329161649419002892410519524566976780109654228943591614612293975934081135687634273422253557550276147669805165826290008491875452112701213227513503853771542028869328083485509853584526430714171657524878085898348874658203601871582219977710587319430303523202969027185299052658857271443845363726328037341141000840123204442187128071948033896487201332541547447942107355341992460055872382414312090480250518737083055340278874453620104766825097312813529033759362802161691795705054559133541580031869731919964446141910762032823791906948698192609650087272941483092983965336221047737031711213506972221649469295206038084555939435701267397075459454630109947435901581047031780668993916554910532333868475049189351229349260474864389529580706018183467434059172777545957207149140889829668710996616020798696357368947377784651494093605261348182065893042797903412182376518992860473173909623133646026574543664810581108935515887927952106630113501438344286641959234119559509609647372481538380695774855592893908870469842847959792920405974000826462532989456386458478729374389763178715001187040329257003093503081117741602425616726674297112922976156691392502622098313343169868422862589613840643477073422456721016656640036762237180825919312134041104252140571895058092235931581841929380302738754577276079394150210776155431681258894025037629623503643361783790111078242481745075435657437350696691641275088100491111735956899365141146091119229334854776720362317152475333111255194631288297558544086262500593530102116258278950310393185247195306260207111247435242531855384620208720157386903117296050208390184851682678564887244636110490026310398278040868724489522800983343581519324448784305170927841196686887616186783624448754818029292412672067780677263247268713019779871710076899902185096970124585929363517946668458682791495557181726785020275838654793986266721113580708054167196627881711293074807810413195613168608272459953596682840335182971136374620155608572003652682116389127554343169443117003595433965650691271983535087018297107994043296845962667248204847322660473273882621398242389997855508812004042761397302552596058012947001400684484681809448721157294405768440423251691679156791613225041093226729323089642042259029982777016278606594884693361935178819495875657573666114384377621215323460933026994885689047570916713077051557653628893038574178781055891578275406911174822919242368563756469091990131592782277826334132573083563275664239571502532644354606071097372529391942758705656447524432520554454065375744151630965742663135874955852220575329404676804493606032465545754210552450976177438854815417854662165691349292090047453757582476332154673271525885183840320255775467251441889944722955748062096011812364313595094951401761226488377574367492658196709776349474246035410931152463361720931739495695626618505368596972975362212102082817742240222650852391108379510318772872458022100782551817501916580383199942687450462240568814642837824021111637871587533513657034736564549941376004810197958812074764583381379654327522744449488521442302433337614501138465661122104059902678634923042556656131844048031899109047139503099538699114913049608879448375415323227835347077002307972723032018779904791020331390717583557576022958636189744275044998896212902250487044465206288446474317967779798355470019053842493751093965189286077405495620372114890719345061614976282093342582686012494983856420889345047895042493735091921649514575845856245595168441954220488700332615960382798499727494901641268545772658889550895773285600415658056102099099881491884687657114021780482884598146743992209427029879631367740904810605244037390483321830645893700900872552668597114519120773302910951622703420583206043637719206190882763288167094571434590943934823335271230871417170697471867168937659239624433760444213955894593370471718273928781142047752155758127276143548754602958691724144105701953089974262319548103474140266770449944767804594635596673062415689558750021538710443422699834759679625806336464006787086256988144452564692013523750164513529808946591878149104843490726191587033989378249916626087546587893773241767000913985795865897825586304296923427787630442402951589308985833562040859997616107364821758766155468071734263430080465493533801519522032334576058547735921354246810781103850843788255732706054336842473449965430673942642810621591250841093236121834657541436285752133412227712890486326273119735865881899283632095157473575375508424807251946459649499927670904544946934046244127906841783252506920711894663134030784533514879619830829150480691441964605848475153323068980493113304773639504213872831004764477472997565330610959662765198043184907624579860811061584736273325283153352006357066888439369511263227918334227948566608786244839281050049698214344806823301616694458063868219194023372975034673870013287125044918441188167351282291306957588201675749587084301755890408854710517132746965325828461774096498873179008144588120923695127132416358463433454422160676339568923009834008196792252653429364174931785260925834814340245051559224361409376533343359977444447559938247933041209308095527489939037174665407769608638086879888888765075255320484403834523808428566138290580903455535520263088364881917738619734423246708536023258246307780611549180900953798609639570563724184992076628972529743262147712296336840813700106511104600957099911017370146131247011764166831038650583342020098059023970705107041205665797536969304194151404901071290313176246789432811806828661422649990006947704267975022805485335541712201698884832123824818813417828177816969816602046405107692151901137821625293612536883834486905159911470265821341862421459235037074352354676587317710900939807794518245202084366280595584186815737307970991618043028971839291606303383514238297133463591988007266964722564011684935220867712358864230406728038011970568808828416002479065561887676312881572192863300771624663089822835460045971211500383491503139360273432725779952651847846754138229126676467924527797952379600780268696764704426827467571250423702740938910404824272828957767256910286999973116641820636200864847363958745046311707874858327021929650862197923101970254104996526460270862576832667802181614181920654744118871251319331023151458826699810572474068827956613966301327440916047817953964117282027155298618887416309525870244956804885353090810872630159910739179284983504316795649360266279030820251819243668744389003061205527163841118153283444607028393238699437218103909776329306717388298888075112338554695410413687033045213898456773775309054094856523852464312691548831115392620333081705472271184479267291694495135563780476354116350301439614579465472567216190476772503378110141006802369731911197235672900029187152501403442540343339840973682219897534014931790363018270384799401365028518603920919367440576181812024320803145306781734404957563149666305251775357395686667925223124683824079150625267778688801426866633718568385087606107419076435887472568555198557706895174784915847573628911791286884919749234348719561405087987860464290637825816698190256108123167600251956792630385983161836652587870130146767642245248672927664949142748020948963476184254499840639247146697244863220079666894748780581351130734439614335446605403759272969522158576876049611627248285117663810304332296125825218327628547041779889466583585522777103087824124847965442056145211069942068601970110774833294618173878038447987709286978295009823350576174008236926645682647336135562126150171518241489812675481690324307750850755406903809632399136056160668071854164280039534015012263699947930130185821175995011403663757683939881717867919094260476071257931838324330007867218313396235800956643817738665048190529189493396078326644888852425488444720076286536145804608015604058846728965717810519980858593155797926286828434301835203489488195561899826288585681221668641107866064466850047833097291421390904689313393126841035554915329826721292989530353211996714455218611259269185017943208552893846658014096731360082434501174236092954953466168622714633960373225751808477522264541130400106008291784957111043832310903552604685355071555944592057382538580323148209186601768411532713394474294337249928392736196043735961537303284232978108624193632803741480814910899212327134157937752204925371777701949650706342997460025702288613063416645227338072017831698493690192171705441189173893062366643713624094498424680926957749849216709196267812837138270217463603975510842781759221217092989711972300989842996127599898748432265647431326146278348053707067826668655094467151789646834095241228637819499587768302196539730971393177555774985522294053000269019869826339304884907090745664665177296761157115732318458340385233421280886882956523267452183816655036083209923605005708847930007139893621059740436367114739587335486727423390389230030334596558981205702101703892833595415531924507325001164082472816358901469198972442253670242076799459757957902941223840190887563539868961500917208152360373719952011448244233509662770579063459076328318273535890783113811192366119134125651362389743437707250066642931642566322393201848641303672251025178757322348762907213951587367418195781268702795987560291510016042419482788779232944945776043234366771189993371224129293410107953368572318228010069291798067308366459450161921755936089504833652791818379369039617267535783724285072289764376277581457654304099821949266021161947077172272845846580760986199159809665721874319707534183415301297774514451213897936801061153665708844929670185125629318509748567535978454617061891355161045212001676797121401100872800193273027486008434887639603427042695100395106708381943123316401195081339727237871234880349458365206502899679868391174895307475619415035807202375636270446592571537208001661261061203865157760362400030648291797948429055270503001947750161367787964714516957535977497083360378973465718389653862303641715091704961637907755314616841647460219821261054922318092003637472435974259852248550509172418213652185139270456512659603614125778986280623170327638864962393372925785011617021268900601066946868658275104645348759863970719902728974103446091494717832788156093767562724189498413070715769088272242652783690187080462239788437536165287852945207502425319854553539208600371287371310618658522083152318801832030164356490068952304018701375166782154349499600082242687489169217458004248912952023650422801606441788305248021221015156995075508721439057802659917448300845098500802294400609327142304308663924992410305769585729354755945450196102782420014125645403339551482184281628120372750954539242254773563640223092732081100355517513382770563747269881111243868105603191355094586424016701199134963366550089430456663322662416683475721707625274558850760752818220186758907245003733087485816067653714472864967655908138614111707577450606034863882954383725782793809367190429519303233455526718960029082012912552248224353032014404138120190038689866758382052259763112839088454862534305457574240423564255629168349644313015394132574216911992699903135346567005878515164044751038588619925125993673528206283843331161514603922728652767350347664695700076152114529335614113300739373011712157469731889413349548947517829398518516872013750690267427159512055385322696859327568173260811405418524910804841738358286945858542650718730234918489146962874846993937983359558225544181771109411351192559666619746180236366907340149734313414943438590455706473337957167366651544145623242570890268837677121383671544684751849186119662196462724311224074906035120777117280784816930373482110500639938920814694383753682804724435213418459510884371901173406119773805524776498339579067823474334964171334517430942767661621709082856295353416407446923976427901275378598588394555440612205079173767058847037710993864401887358911841812672817961808087388171427998277961212149255304168015958760359277557995227871039807351360835177688469001304653979198094780683524024940421831199060893008764289212773777712218140979196161866226365261441835563549361541452352287893980393397351810852526011111690280266840287343272373896238972268788150623395789920053288662777598266626436123297859957732628256622254739771581740476930497291969994882497356786852567749432382167044612430236823319602822736850550604364323643595345214517679159624953095121247439902859241384635392454405929605680822029603983622625194040570796162228383478208307773082250400625550951951050624482274564623719416771158459480237976206829619427914726207677402816383481684729228237221870064898685230095203819273490517411333856630553520860646622707995143886876472216369302465144292445005282682954044790782687282610527077970372246392768383630521539899226148597340631617570372100367218234685018662398180756738623607816443056685724723102205699389707245620621814956229186258493606347071439918766564390569164927275093539355320886293912941827568901733689169612811070037275319954554281605139960225031424789616344999447896969904922849952037342230015942938701873425328276293429827185521111858976157465840171292512977720610853730312137647105895885441807166316556457272942506850340254837408419677314969710337769712852350919623976688726984044831286277770831218237322809440752421834343877714202292436383495265907437247838358438224317650565599467535601766893887242329723748224398324748264347551362597272689601452484989165373815189131443572646612697760161205001023160730650823792658241102085412171921169297138317939116946106421781346908365831759566772860817360194265244975713445445910037224755994026709158384576440971704827043718841501806465199243688062656054796916626021262184425855983921113837493535242176257325483771946668702508496890704698126097834355213490520686913468972686078188761743906903407773273381717891102407081972621562532466821444765306068854857493185043661188162907735033808041415750861990832687128694308575550304035097625471989068542951436340420159243126064199554916265313986631898700490316809959517706113830730498714896996114141319957903395863196461792454298371796528784153055197366046436926887990797902714660354833292813876373487094908010887701282751105899507732568533873565397639182596860024384744498088316487486713809015305860171941179911788269198923487377157937913851127649090343280662143827415319395027908909485308751672800042925176132250957413427528922871809975957476218373221839066533473496385498203729845619026235480384189166486955834953172184945091575098166258723378422504149363940676293963491672682158988581282664817578097183490290377461851540886795857161625161890761671810098066061117712393932587102028309166923332988159334059486561456056604107453662781456704189064806125431188821719662455237258682708831583181363684727965786207024099885347088913748751619764491912285790811516659054762843150517008128830383941243714618276335522354170661538673366498082654304005702713522388621780956887917415526475121106100329406769050240976828554902871900165107193200966933692076985376708775129593244950294622448379554096440020981942023311309962057695655658688300589030087662200045126390496410693301833368082678799106312865018665539132442473772896847083938587561378657867500136859597882458813147867368226846423269803492295193930232226475197669568248446148722348716865314618663591771580774198243762321707055168824754727258423839069413147286837008199946723175571724722617302986252104499133711769446680874435464750728202784155120388480103958465710828666722521219814990015965704956043024222518723417991088143379520530104747807161745443046459399848629775866277743420538209383349303355988228101676870846067801197915470919181365399990372605917234755355465097160477442786043810526705870917938868987486118855833920151897022662209337036848867294710901516476278925032397369893367043413125867848523647176544609573726180681427648567067421575133011535793617600923057467929686380958426728286198900973730692930592398215412577691932398793139966070383313466231142381836639893767011376422997994885461928617618555454297397784264930236863487363680285950463825326909586309562216481787149013081969703094484085730173836848598561042419801731381618315255295646571692900407862759974396492336189060914713272765568752549125191328130493870374468059974755771964593093710281244985059163302020144717540928808565086617883647103922754482657621988550212961821972851884097905632382046399452033017125063852882368494953582620954409421900124123351172768803146244245072293843089405839163434461918209996044466115340269307435557383845740176270921380112505335462702539397632657413076379106864106489820110356337833404146848548741193446111572784427815248931815397162765280290959474054690275517544126071976327289719938850664749008652287513091391277865588580397939782351672002432355258865639504710226345982333328714288726722053658106865288103978249949677595140929431713283286135283193530501883580809921678746936187255886349150693092182151329282566917830250416329638670258837335855366956705423279821780162676388112305834004491613174810504960489588171024203424555961383954118942157098581302947375828441570345929150034575877167209793515047933763057994408342997556329216781264350089694022932004236422114476743568465647564629609893591631854306688404478923045510566291537695852733176625134137052143205304724164382712321990598575041745142113527325374977974073639909164369977064558035157781038410482095328629309727008996150735175025879281944658025986541715371141882314184897113839334298543127995289199160899573658077873578789528580038359544709940242390659413451433512840153109263487626743109113814813984402597247585329871634530158676130736029651232915548264451802573582726168796238623101114037555586904882676495716862194951629846670533963968789013950283341891066639295228491569526915973378614839890708503136121915361406929276995184239614839622436844662603162702478209402258267711821696148809934586222640635251853307257376703077717961838537051366314555873574248155574896175648165750824666988439537769064015003465665303852557595957888519056352222904719661364879929870114886049254389992909987282683193512025979958530424807738998320488064579416545773436441928023468714205901934710980186804127305427697072551991428867898639730728233578280632585952237403772964729073833427659800648421946907174145659779554595272129323986196208113539184384377396496948243654247407601047589953372960925079550915680062767978861699799720149213198044639120761092970055148915201910288363350785455709067918237436853950619842069469196012834742797461264126712489565802445670557611999914134039976063773618983437149047526781656329653077600446213923645040481692607657655879164827075370772220549677191539770829950755366549424220461335552252229666483286930975070885791230862975262786559830850193813678254494104730368268494128413580272272611158910278190425938941768912284743465559211141018841748396191107420464746131085916599758090961894911255451535406536835761396708102458272038039736759477186372954001948021059762902912124784294335661071599323415252074572055886940803151047677425011884309778654487151958897387147586401353505481569236516277035732213731640497584404054459499127911759322917359076327996840647500732089476421552919682077377430092886529800943688058265192587476339510884038939992088131776579330343745565547775088518634223036906221227609466485994824856465224361880876299137638488805897691892558590049216085015949831145963046298322151902820663680344866288124554205164531030038337120190021721455009382578006106608107244138296165497887046178332011700506117705004157756465424674064159298907409944020182080521583724281122281469794882463773955811597975018526042648792743942994865489446522653253491865022672835226935425565672503636807637789174730292288820237571103200321183260802566507790744994182070304448334801218769991299770474585690518425869424522764464176511380882572699058000248244473961889572049287243737411362158054914267521268292588289919236490384577156521915955507444306729446170214088367325706681037828719105417181726314828172009514574942318037678679182754115039450789728536181986368984948728162216648883397457957717439510928944939639838865644601053326519175801961836326231883211635710495848586233402718447478348773625717703756482272432719864015102295265745698345381449855319918349070802113732096197863099431664908410224749495571649579542176830979910851716156610790889264922615824034926913740253358358986745198759706615938023001619821205133417529307448704395081842867445747014109845724585484451151599442988486943946183147390657104058449478459619938694042683678356011524472041261803441135069702597298828623673560070404656902595638663158041625760158738948892646689477886958001129192768497401614906263396625747284351677463008752501666200997600911803828792697047404383084424563601227342187290171503788568991673862193499362486394098154777363590358040463957374630339977213451998912231808755919994922008399145318315122323353346148968266287751907768334961534421542632647329054876781011370463309292320908025045684438616094267473087951243746169945148509988084666286084445977690827896087011825670611394390013176908654238092465389962204714403041570033981624710407991850866591496909692412439858894237107139773126199590635575521603038071498497125523086346261061212922105018194055253111802894549300195512271951132766094049242248808512583222959367274163219058197967654628730616853096573795763247204657181061939821535517626335153600666642023866719334750236785402987610194991276259713271752813955128316902523389281541663219755372338788833770262690090426764871952819924873988970354339475440998637659574463407675011881812857969385288236802993327282631453297151653662066436347239544380397148122084956333481115448383195814962121890889097700523635698366877381894591094605979625907691563872342968409310861916193033314594298923031111908475647684231435910700504127207926215695971987179008380026945673085839062886962220904523304380024358456832704920706858498548543711419270156728410601957169441835520588503941501465934041712079672208927191534849649759137534858995653002690038650306079123324395498035165671630675813081296368136759528751924662621037232197433575922822604882505682539186063703287630780449200033519230885611173625547610547438355903762860702411305895112686202570937000566337366381800311693167395534975394852644449239601505976936493399998796807559296459252500761231094526858358356540874719542348459318039655615156455262852871667410990389280019857864851037577841620363003897375336941773562528329995788638547606085184297334541248931716843203926283882506654095496181279439451491390135389401603832970614640125918485460679237012349772634932191279112598451699826452193257876433406342902944377423113069406657137005268274097349127050118635363191065990824665005740030467275011921157906100332838364572935201816631738090139493066021909410695072813407493856314217893198564225240094438303445526751908617672794445366828624216864943605439574092520097345027305293723086684499529676473722989588072336029482774764578747278551575952886907004500508990314930777926486096799892803615484709546885607462843347031633529241571882228503074099281649978710683006933248994505915248356680294105243378084857368589350969463664665090126157599340553879702720856467980824003684347667273946137606859772429178221400491643204369168444760687717369063518807406590088996179491629871701032095795709872625358978162645687444872889892662684937232225787188456745790882277163780230938959847958640879816484959731764771093383476226995559984525064601949320204570799014621665413928794624190097611004379455430916933877099754152915897770389906387254796535303276493074509411853081575726062581908108674707352120470162692026260804412552166515461878842729420182364841717149493890106169751219246552428520448155276717053739492275467868064901864386564665678514638763038427105167463330207821992625818695861587057877490949455199017894558225948935324724892887453249677743346967936613737535678088176862791713149121810965084061198791842929037569138935331303130905604697368762926377881189897901395839820165889901927392379482359676661927899555598613964481405813689696333743929491354524590945041537143490534790550685029979475172879152085485752576075618803161510301317518371561275068616650053763100953837203387187254632838946004656622237546057617865448601252047245513451410372537769961661537326401184891745258273154054588393396335147133448085191650309266011573817946612726852936283757409680824167275723214985765397256790363237189820885592638323565888019986138782474377679060059112154355467745076208636436701430995224252870606990035688904877835641301872243903513236400370373136143181917669789925476166534694511408874911874748748031427409746997116926348078629405511583748979133902931987392674654482140957819326986788157247433538029278315732100000783765593385722777893230726037250450135987370257001652184064321868060951105376889532552221097789388856603266026200736974356845513299226070221760891288573377745863615767501350788639446350860891784143242662286665787169521155178517677181552695340592447408253318703813689796189968150952603519726648696227439296344285703158226351924177665940258895598006482407458353180142333953826087672916322573277948325305620679833178740091554794925458658355292702401064808257816267882451529208045018186840507822414789100959960450238445975256079163592380229161475188451513837430275911168642561014132832170094102782620920324649490531594712334207393365337802004950990147257169987334434673181572223306263182135220178725275485079671764542037630928499710718436054394994749829073826757500345960066607912376012907340535809636848890638561190612549301273097727324485822783289921476063353377375511738285460978885836139018207515725529273113396836188593589669328391615258177778326769205645813174874410358252069601797127150295715256530046798228748632751007281459138704411449836021952342714653244607562222319753136310406356583178177352210401133422348665462940133438659929853285119751289620187898001090891072327299233944762322382845992766717734756069670434359965363535050669660463545214681796820966072456915318949971691587268589489826410112708514688188718556014192564178667402600939966674435779061852648816380929781801561620950969941476136804445917175160693358942276706018265391641288229579128634027802420717217025698318542233678468562807387743491672676223020352527577123308157573113092094634926285410872443524472590839175437120393615425658067033354062641010315374826798878119801275924286306740206562549407061547055474393728697275328986063262923455318833786779618274676338887816904232706528278615322296193772672688583168483485618319469728296889035546682859725779264603845187966753765291321509986463327839758050661143815512108426096112272396157923747194537642467016649830531126846444232387220793563579013050325940011937916354428850155954592975018768411096129496537592207661404392701889197795080619142052347206191822373509210290121264713061800486550197119267337038316384729914732520904338919096781879481055437288939472412316504180545066485864818310241154157148497693217117744032216319344290056619780190010348858910460703786247992517492959769364998428779294062512426117964107677800286384826445296218837629249915971302499966682300510209171397248771093195656252248547793402614667185925460256847255154884674333066501196296573176849712784523101346755953069323892039885587453871375253215723503638047980337971690781032430839941636203411441669426695985610925614662046712118927960169405345203951848598910133396601885969991715554595699810791138717413013532160189721442524826540122358722455667153068911756828391206486433911162664237279381238119254955584983685004285574170054522838661334081743393186260199312589563821108972755116173630351919153062335518324940494906927792528647140981535042565059283227562760961909768870596168193701842663899170554610980432665584176993760684779504805763224194891006915965726706583498685098727901871769542748570781129777999763237677781146243364993626594598605553494499687609774379281654160237908822689819457615444938026974216392685295712089767805754673391639244049213749383252617208697795193756051328232049532502402546757501828588149287541182146578956383680240097627198322124531717042430790500247133731715852479480549127139209502621936686536636905192403663288516731965627616035792754351380913742719507296101881310802699788388106479491755899965098003853753399795647412420277492034967886554142156635202674193610342394911552528269587540675374612150028292814136190996702708660822514193233284017020267267840148862674536084226964487703164262597177539081121725406169975579786782697950401231475486210898561215981452248228697237927586141830529761489313000925722222371010434009575595994985917202540695834385878858589905740983035960407289351821724471743551732342870996696528341495548169060690258786817313442795182502733657689761531276362389720793175648698399027002932920417945095218934972395604632625681719231172932018681542877593926333228621416014575667474170711103457293252960548279924250896590849095749752234581100388349373529140244081793456373750088416068880137917765262746719012127739509358188020449394220948968051760682238535389459960321400705717543787586124335773625124808558360437650837126663201322297456114426530966674352317626076416724432324053102646675308783834182819187579325945840857868672528948889671720004675614956018318344428285358522807267805304118689271745157041431896337935403451522755900277434352336139485523830599191842681816875659894911836545310742288404433272229586021370215984583564564835080378779805442851669487635281498413219080341924920336958622099882581980886367070066355158286646151078189998899538657192256139645011498792632422367188291781758924568966685164058878645037472845444682388512687606638868659411512513831357395149665941202243813629998545236475516918740483443345977703193881622817503923555258139292688133366872493612372005260719601507531866670069548454364974514791898316027569216616253071344240933465280042787242134103620318406835013294072114315532389466858071939520840671753039082406028880650754772163201897542276483442323855762308773625308084692338620961573974093093937074884123305226704985836000470772768533351220963919774790143985770310949502552473517790972976025014189106914253392963958092457917139460692945972235571973787562090904265993303602633396851041703285947577611426645964080036329466070849792884270895973491474554792498288014866407560943971426157450118587876042515736716874497452222131036720353450338107267554807330608040253131609812261419695882906757709652325640344886815935699232003830802866971954608228615510991613777998089919814038698270381462092394756352263022224446990649728916765922672549794735804190496691563748933739984285724474971968803413256490471930385061352755369822882855474427404498588546849899685014554351293801180819588876662417212905143136143933383907225606089629436776148893127284022959242647057141468617206229514701631566353986602905914225983942282460402437656001807247461022550239454431498345253261039115477009718177657771024743990830871395217475839289368288465838568438082656666844644562796076142069096784024171040537012213211971350882770601610533936195845099504313432503500621248493327413382901246810276882956047611138438673385095709572294692171023427755430556661359662734420485717807977233179249282838431439355039781354518188357158502632929628310342296520375445071422792013873029465553280558106287390784355702094453522114618669841339670921900979342520356264532775291889203910012685284164067399147185328147785054721001152644312692977088955793443378973699169738089335488808638518406882607423225484366994540652012453400958555484444227659054155341412325075925637360674189558404766922015643771578232285794328558201295822289919155382086962152236962564503445001576545165801839107707790704985481856812145394257732555906496659460465801221050715320577583666632244282100934932413458383778495015194990512276781500518539828729332907913957035483371368960454846614984293475897356392944639180046270280832106628386975660004742846230358656523023228051561624140597883383948129330937308212517701704695217868844567767891508257096787728540547044629314806320549195465165164907248285628452614560289262228537546292939393219666052236824714989552698363073666351729054223000813770542660634661189352860679750354888706921016834523613627228961093295747525826807912746044111177176131548461754762997018311712758361436746040561850426217231212100810308325888438011524589214535428811827697595163774769652997072317205278227347859636945293538242391056867747469617443183270877704398522037572663498390909080277852799379070509778799446249848893005821764747595244259015294309443101896971400874841547052427275406477359124959823934682754727809076592139752637844362297437932866030857970556757728314766500886296662102466730321979195333767482568236262312341239875521464699635287423901688939139421513509403341885232560926193276329780339894490153644899746751977558454583607425016626259411949370007458566395328796242475747902224786083071023522461151575585376838516969538348356108791755945535767508853578437931469464320110058470679339678767263480720060562519930179964744597379369680893597087271272320289469741775300800840172642369579371807187607122404333939582897667535173766367252629384864420299723996833890105381409924127439384942431135001517339277731771701617137913198008338308920251903487249951409923029812543800411234912622606231949677397739076192915955016699060625833968998912009951331918188351054568186027028097225657462732619069792566602877051371018620476102113433352389219828880068737927480197590318305206488961457669124415743692503976289970484414162991848127430669341750484122643720367652611044800292387668335486968372512923467342315277491461805046381478182071640545451956804977049243304721798828447329982925242830719138329523353915310803833465015083736659985649502439741214805759920779195682724826700792476438452136102895539089371962824866693276632059367777405836959339594982162738160318295158097060333599962012371483094084912043466864986409123448082285089468111441200840108132781668699095264762647751197659970608427165836596808939643759755198385000105369151467481380646249019277269417779401013811283511991193667558956650676951794431389731908705744854737413795529380846749396134249371249621025930149813603720373338304853509502010006937005166153777330495354827175345347993595872439483668393998979002275375345075651156998394725516121308641620079079432638215659489403629951740584718211816821285874914820854779184768932903157502968682917944573162596170139383540116961368164807869758974166860976840792318179677224871930703245116497378704453358867295338561645381466027854576974528738430924992260206974432138436865583929014555508286907211491655012764741233551209153357064389242272767862474028564341668572653802878141288233280840683133213979010970349027905730093244072465473109283961888292214929740941955092244391288788790617559845680687262532380032200554552615128299791983109425116513604378685154317863194501518671205649028888208865211958104559904458146592626713949222637316421061034991823081990556869448267477441894370107977949204889020849664825152123044645023770908439397465184952183550752911272064916061057325953031241467350555130073176776041398802341118375530353179669415407225576530272487675012637582193619280302236966763392594455801219471316435107397543048339396672556404543713295302383069256734374277284332939344032182102563900054259310917294435963114038732498533833057618546209849936476645597658193162154843054316732485879353599933237169543919180693129360077821176430962557265261459834145666961848386231235674164108957546563213567048349729347160462895483921693854752987871875518787989734922981015455255551371066942869301498185487125022296028512962301583563095488894652630868695511680047331072812183318156305629539064736645523835905915454990510077469667851288289295661961994784271113567079250771004825760644186004105417217425367635312750950433633688650480158271088164265228350814210988942986913987116747319606966708977427578498943206432234464007488216388871641622779129368259747186292806753262980396623336788888903272887180255342162772248688189363065183543922672394215315948662737887523922119242425877555865338572491258070365408696027928489736766571432588295043839939878134973221833481060620727201925899656553860772384490439505843564678648295330615049757967364205985831319030862597049940846069697838335183452547571976498284054588224709252471520235307257384098906726889606865939489720879639856031206288070803435219753663344386125725006494281846425611026276088697367624949902357525671760309553336107136478801579756757308129207891506230403733576714645964922588457958586490529833469440741537434326799138566815008306830911224909987378920956054926757689240456805932595849735113591088665058276597256242449206712524002381231162508904456800332176542788907780723275018536341918374566527612018621344017728286038325544184725148884454490451984898896724945310644147010625444802063141984091856638917117192477260334590552030626982380092311794358569359668772989057845028386377118908890418725268889866271053739741459095667476384542899452151163903514008504660990975427615791170378931028337810910142858073288250341516266991934463165522992100191818559182563609498039199847282689363885693104245103713325286129631422853731816296992387032060820317118829768293036386738311693998616706709933462567899246644463471083057980825724854528152809507600045722623740066647140038750402969348776098357651616246085312144665792728254634710052155511912138621013344731896130671009599993129619017515729937923249604394598984529674950407120275773241288277080961877935869448080087640152443420349705744299556510065016866340151745799766437396131910470923754838730098240061437813973798116302768668113635024238402785750020319045118391754794248998531998559189397838087514647262371969789095853350224079486374825641705906630695412065246847051082878433583520362048853142975691142417677085214448851718591038388230363020345855491953664634938458229341494149488840396735739110844549143931236700099549335312786304044684885452837386472660378436901446520112088106772926934111083954578784802044049597188868545496718872489026188456524841872508116521211977514253838741782449412771318928806986212797845526626907193823020095703087838790509321200177835684045295711927593784467693562940373861059848415990293224607053005864506729587555789269196192443032194441004600245630951054461664659954765819270505642320412848268169039501081990185987585269360155165182127486555125945589084888987208042779474614970074024561594957121704547192031730612646049311957619981856175477662778029509531955288256489704846545984484853311079215565122258851914995403488710892715467140796702419015300832514504665566478060421493300183557061703240841696486651987353447914750997708964864477818028576821427442861723294720483955661778421964884314281496321288663304001427597786670467135116277588183668093590945418157420449445105147748492366954716407273868618401351931276911300488728127193355488124098853131641922234967539737274260493156811945719125066140077146037181681955545131293478200786882661439770750777371772816434182703910417521235842770575387627263371928098652438968235220981246481909523984068667285754771591197836880937906121156650278000166080112559775729427857960840586574670617879721590466331554850782100063590143850181768799620436495989724587750181046998469299146321416232042510522264487157625987131020211052276337309907961557620913538430251962855478806980016985795835448468285277039911611946812425224994051276494444969216007291463751740974866134310260384157606439956980864898104922193914058394171437802784845752444079163390995134408158449669584516374808765185192303543800525910531232625387857060806880085187031816961662385609482638484702984968348459611808663456133653225740528350623962028745022657657120558160696958890473634003243734066269797541238715064707386535729006709587868107510614031141539698187359743138149832566107065600415292431536444321631664373178739118712581406962851189457388873624074493438904676560706284366442896902358543349503254137782220735931615434747523793253981646409504581784286068437885750709073249510480414429809609501287061942925283019563520064266330699466868615754032391889800657288977091740058340181761988816706706380660236264745724532873146712747217993771492535916851380367771759148317538896513171985992984367248523735997487497186067770753896972013724733779167743230763517633889037122343225776609573005347809362935720909356759498418936031585395860855954791126757227067504618288764774826119635629172298982233328698802204142778980408212206945256026266484554808586467724167684272267785757604158550029393165640293132403755539285631586797032038059393222458547258901678845356003149829572487234084955711405682947049035358544291444025203255728216984005305700988868609044095387058581490092118381552345417488841529933746387318624352088119632317386342667371910578329912184147842118275737823645803724110987427925221110595710995289119308091089779283900704691535191406468956181529684387271321635621089452553942359173110626153568967769840286600185508687943202981798594975066470739474772740585315902370933151665054076233404473104031937980422722289723733267906669042893339981773449117069375644424272191288159160971912636646343356525898321411863195335454466157529756324669087684828774485287650743668262280047620575895925084961920503781903760118266030326727839815786792633977621961849489973306932897168714907769790963128776094404349361053173044944145988512665772124168540794061718836127056317461536210923345481270032616507736215451252673620472274635631258611514189279737636709861527404087373941191651225635683822182324904841848080428521164286408724928537787959373130160535841262490810348789982813354516288529190219540983941328006094861956318049232936482337594397321471221417265833131835032184813976264107213282507621765199337497777463899494797936228611954055272490566219673773722174927611161374692979002976032193969462441113857476173984149929314228055446552132653261665320585259816878946445016537349853069049711435386623695186669094356122736091923860337963405328010356939196465568463780457657915468850649508270878290428960357519854766373912125986701488599559181343506266269074274498835810136740404896205605804007474250330869160978988230219881000396281516992212707747598368580372805409911501635426071789230269714855646720836657718038502514663146840807480291694734218024335684678321285860350375328856656113635862980369743576361709873929915254960741277693561559691232801350462523595788224452390163321959090441745637977650763430496783056017828381052807725719715713921718617645937782477474629800453739313801913353207152104103271708211060163413819676500118276103395430344568492505090316742459574596205459411474739085189599970382620138844273192032103916965681721516493930503567640338346831110717613605775938671382081130562842417012697323271407287186542561404192735828119436940405256134366122628296323801826985081744413037496192903040023814913620601658520342113099499201333026419158693734830714052568729702294071970486436259017037837943418042456141499818927435001976100367526306279128056552549389005964913067265731714819846626310079509566521330799663115372878421073472043653391343932220252363635058183269404605473726917910291825434713881344328465267963548974042848594921480817115351500118299752979821675359644389899022973565497028718739668729740076000715737950427188044684521916379942331952215591499826861903326575513823447762748444665096102456605478704355493210262844951972445947940750979902707141525506202053924734909417619540941841195171420132156226085562467483510327526473227897836889037039674975043905794278063861306795013319795588338646549751688953351494791896562924791842674137621764231541077807644842081839683683065464420462721740256868625063223897015387192177762874207394992322141876686772845656899583896512712147059590214295510142776890863683565780977044232937169487370877967971090671027805747543168501192527161256654668580346701892595380402742774544424259306367686304637336444573707345174325945329582313361279381855577691654152006682474942183406656852055107219450520384144061422880684116236140269559884294173918115548286032145855878345008502127133782713486082745197143562659602170844882375055917711709060532178212363818700441046233036265672534442123156717854546208941878195051184653569729352461268801647545375046135944218610819622467390630596849537126065116212602412047143706454136662812948779423191378323402835196625677783512277059161313470410296995199109810610209301660700827188803316895534239483222407925956260952015937989407939487083376129099019403241132468482462317501154954166174497651790396524250220898571228827482783635633621645094069322600992586653998172037115383332943254247293217476315781887348720492001352339524847827344083062128322372199897764698450333558943457885988820921826694229032174577555319068802141612567267977397941973999102379966161851266918559431943328177134788288794085201563847718573626793308187484684903984631462773634993825741300825517264119907887751298589193935780924657458368137930122069407117361520658905094721783930590512500234396332700802770114452932622783033105107483670686750613385191087861676565820701457579552412100207608818999966048233070421123127288655989455460668611491104412160878994547448994410997665370925466991094594118161137476485021126015918098877734649380738368273370449031619884737685013623202757815039619333918390498766590544599957083674817494322487509460202201246981071602221042995828967341413106710237760981915665696757349021436826615551323709815198685723521495811224990740974588944049082219485659724161304579101089882542891423928801874901976143342763172285025803886935119303814886208506205224523704288726305600095993993761258997395720925895655927769723755336329541928892866674929098572349680778483218463547254410382696166182607647418732087095225133251664506236862638202655915736132600405127807062326570687699445135025110780290996292851016193816368070955340534550696970310421023318650406117700795820653433850118381071899491397782811827995681423057043023832791362980239931505416589338427732886218920240501517224207943105392199580362945642624548255988209742179569636729470995274952311343352947563007314128401062642504358248503965279582556122351938511326354455478694438999233879606832175672420430987685755390729239000241179469422797215146220876325814643519305478682689339680766931227514401097431081970862632641769706501592183569418381431769050140484938039661726297132194325492633587072964660299396647603217159285332111464935605596838759894184906491245319062669331423622951184653524548900973161457897795153644250433850078067369229603813193970622438726730685612848472835603165988103741036114871603679472536507900529089784591176978835025867151375885509316121019152941542489912173412793920987641700995813664682305954164292639625009357664989154944276781183518385514600230867624182309468154434301915942455660676009956430600621128878759292674066385230665893940452244731798354989046504110397045478638485228582616982216053347304027234840484847675420673797894396899482120047887813417346891530458493039379705297546903319331103324297031748321780319014619828067229224200865206399045306443254316859791237699788144214286201351766779846600271671414836682353136105195102606269639921695913487754025304576793601059252934252748345501504071971894104210517078768735994576332742637050536778091901063699565418354156434715186471167282756713468843125292078168917016109400732663507974132491283779270489979683778007824519569801781395803636797924279772068599947091496712612888901796460235437724095335549059802862103053435173423114856307265270884958058451435907863205382986431553389209624363081902332870519662107733655304895376149008232431407758228279584265668522668006631530670660855319230370848499527945918364136321410405582013827039073467979310317354825705969294787162514371560173906148110501748212892965633757676680951363555368609346262117645783520326332387298678229413863813613206386867782379148318031904106112550629099845269376918761095759544515610082826668717892394350489474141234858225255936710832600055956988894392096265337430745596180259852162182044859167611464413559427923873110322861321869864360210505326050910025401271384653247415484230059981766746054919889759425549707107002573745490029555236861031320509388617916095921189268143501026997690899767414104953241587774918009198805394997478334643749852589660930368537083264553305245936472739846511221061725967846186327221630886428405435635918533697390785835350536991154688570114371207519317383378266399370147303325938545191833152278266117769551062347491845793193418148889259810535721401887328885188268948443940977478903248488823688087905482928913730423651306603284748235338717881394930322869820888057627197093642052973905253467898628543324247456903210376357449191191267217685064295544680456287993538270370313015470209815063832871462197278831010648550339144194457769652340185047371893122041612692011038154365908462649713158343758982185426996393124952727241203523989759809122237005620734711474032968756486894815144501772817515137167877177774754394683649160506956077022201319450519126956443379776085984759717383780249232775003095184201828117898970479822052593683380246334300483212042720694447992890708338283940899843695225527504462691143482490536516391606235422231340557657267258994738473508356458994183884414912396740548100325194342896521363876196853198896637909729027490001449374510670906208949151252610870758817512435609669316883177959127383101148575820688176576086285240066569239270052966332566678096841914428914875032721783352382371361599542201697963570383786625509078738279689702449932320910174756335770513510884425069816327806184888711482908410960402262681965221910552221562216330070024564163303455879902102516082381319620643072028519269624761272517869605926662639797878544547781865015084450542220757650462704144132778372929034346800673334876706638574167687714199767734663569821834237772779119398030389843826661773889251487882875047161378552857535452639518253664698569569076111704620783242119767504455327862191432065088591732478614429855754533562222396444499737866516963649767415112913047135289871462652554972695781329069730134869318014356958677973104838337606098230148869037652166674502963903353703019839967359031263483342380493953155016051075642781003407342682747868971445025556214735765461602899180481400739325894939273775930297639635285577109327779738778401332307027418101467325723986234567939864722016302855822659986276917322971041692036998689651156529103944024840794548184456579708881053610552291430389506887435939713717292717269560375963811702856378008071593121492661293386456297466556850946058136298508861315588833784233529088946502683002947585237501379615198618970386092358729595603432028682116790202295417395186002122401007744394957019246378985030778603047599595864605983343528163364047709150509277844672209245877247844319135167834203259131818938689482364162745782867976127982227452139200963140267387588981491002240681983497456275607432895351352474338339459452745421220810109207992495327097807661780302311032071702535629903109929139015939332640953279660709352212767509697069638570295778222089393124835270357979036074738088145463464562570386343024266530988379226187384236327960137975245443479507000061633174497840571896007739387298131344554303172755659143936804541980224122198811083321105674894933937199174268106802540807258917021199234508449600291782527994654707666205235586557495801363070620299727221205272034910188441569599625268495606559734300621015156699405027396298743089145055858766345612327114155757711368956376076308808632720632385275806659029802847831132509782372254586690907350153505682628477023104014482950180568123940707424279178965593030384968281790581749869440570941145848782021336741619434915430878868859313662207499369765556824909962306266072404100350959945847218159291151436243659606332603506995178802083483149866388941928053862313020577551005155705809442198570866490304570434814809446744803599489073410692352679679821265734219866965045593518617970840362987739011905489297427508263601887126602676576905055710801590014278145983843306414461133812577026288201977574607173524180157260186370595478450474367187746398079899969150948737354626512634522394970217568819871467565663356181367626426824969237862616542616983402153161998099665224188975948596144125819900215063827015083717784354743633696407296302811344403949733412813445396685596227990499187169126734226113515553312052080345105659422410234256936530959460158669755722303488908355590458525604263493926308272488105621365831430212517421407925559817892077650936166291065695150138989787514047468601657232654241276811490793533458650002111260924581825383074022384302412190480530631204577783428721128538725781807076539123094532960514469511204153112838071694127910685120317444177212476887961148414816930230406381649620275635968570728777506861659989703692562368758492720831169076213910733574661145017400768867637980180278410977950082900526274912580549779658314860501381764728595929085219551062098392139113699014855493365783096192705370836894447417578685489959563214750155044109937372397319821502458668207053338282146505374044092616029949428468038176288321563689065507631389229785384735325851426558687055230172985664698891214194885368888636648191576936556374377466963088204695455418804508368647425797365615107002951343253709765523729424631205379454909066912194375220829105930744388496914301242354330000250908858891182968350773104887887115397220645716469864180859267800570187135397609212172455332657249786149946730741137391453194241944134259684874689934018359516756897171298059286755196298836928128212009945639659014746559016369092958831992549866663411005678275137156588113645571182175386998615664889349821619358581704791997266777324786954414604330276319272284772025478198009884210447619033941023954174688877487095559941601129395607100683826258005061737963573739153425279033741369454251712357793096200998973863550264915004740357009198943984099029012775347992727017501873387346646868477401019827174336532581518168936932161898458590353214573795474906610883261542682721138976702173260682328780859731003567398206263300546208553351718706600364665780858555575138520303986938837222116414295960318411738524376187551175179164422943597063983742305681203682044013579452700083180549411368333245995623060169752771888752161128488447553467622452662794356227531767368404639651218983989448324417317668368520516839633407199018055127290802082846120935402582150378640427849019606841284099258305114431145802709953100643684437953854453218706998622601466958938403076428115514809671694163941988807558931548058942314686634628594351257288226974060851145429113334597701125071646088813136424070927793215143212798205728315012782184737150285958261485074148174052584270026482930761405427473468407102463057006491555083068543945660126411725888611585668543870332814870543574856835568604120794379758948376478967411826532185840752699773054326472171268740945341767669353756473765260599156641381046507774358043521736747620583609811979759189221744264749662402976927710450822416708544451245255590036046432838154288283376927493734088820420164334359341582078125244002082203610103277935654247522371591792029917570733948656110415714374987312194502990018205326988785705260031486427328209556868629194154414788792467794205881400889561684731771216683361808237368153906791623166662742453392251357341404512003331653200173802261384145949010366205447497694591922102227058856297174405262805326178516083897412977397246561315174549100421244046387574087098756274241814555691863527190522330837727535112882170162317474754491313140058166334243393820185017495129361055283129330061598535440141234559215090323174763756393402007354789104219244497039741670413517897987477569116554602223633618874478417454144490032164095724520320551235562126237854299588606497840974329073624386035637769349788639629139493516010919671935607517336775018141345735432842680555097170187003680714215330065941415809772382565798488380595823867124499843679626356648215178961080195427695850295472416079516347458902998973201963475706433707197388775011565483144753272076003683645780966929205106408185669496205658980741489025896798373669341643328839537203431023459685151215138581069589945821541029873799420006826457416195211199083696118261502475962496519226939965287930074007821181517107648577439887215850583544009051536689295515327520666879828530294995098788916154807609568761512573527601340073395273712305022263163597637400169138161168646762221414834654628504834811144355339114169332156597088874752629970041258226746140566832472410243464748327231780053006251976363371899452190185018238559552865174352578163920529324124890111617959747052429536127565395488808738958541882778471526603505072439583224620127447885202637683604158227330782752634913171302396889558895739333081290662292658779089071990103308018438375094695615844457469310230153219818977485760023295997332549031671694648027735596032753379813395938809036457646147586610986051090563488990437921529988489295757913159295850195246072315487521576911883462034013638624445247254811097551683774500813921380059712291893457651728748837748594280876468982004200216785352935137520665015572316577005033146259817626252699859836159291042154705048808761378052477134427204495629705050239066030458132500874351738833002214625629507220614848721680901041445363804358503780914100142090713905704720790540155038278890854767634883826005661282138740747183207132263588155905626293453102747177163984162979261914006743579836723969045595243775497647524840716729358537950267612181426423392394010990001154887557725018684885703035844854943168537094805461656233137560171200868167407562574778333266603695124075001024388329905118047782823451057794273295938310093250603273425340991397527757918323116511963582839082707828547225930689431667882298616870858523310839245080053678674651717035691740385703121994165771007135436903824239044355767398437177876100357734721924291750403130759671296478430282622357826511271395091977731167931050388635636308277221614791167218565336429827212204502215801656019237795242559284420897149624742193347102032283263886961445993405561789125692403163539016340248993146750268383167646064060366410198971491222536770214250185491187150321423178883497571087794376212800101984827439459001590167581129351964414620681928212856528944573009999299847209993177205246963742548532483585318346969463290517928903572960778436656397914710300616900235983478245541834414423845460471917032091078551854524703579389160902991775796252515792507396335355302980159122955101189286185799026099084894955084188968314935830659148444678108004246911220506389345827242563221888466136227246120783085929196375625277869385216601592616043915327853764531392729111780372867766898420796915319638711204286852911459837496326507464568129492025080900676745910579745770391101449010114622093426973694055224508529874826323517301845463787922432757278818869657367394975371011560515499908515275769166870809901133621194640791532872123895541037211188095708035860897685368164531172979014751408340240040994482510111557126891190509456277360559408851390885963875993133010115132175826264341470309912668361931307020894143258180669233036105466361668526807730111812764835649504383052446907935575685890521585272988123175226660515598365140682514837473727834306377736904024821406803371080930274318133783392695589026621482907166438779514615029516536581857326125091723179217134412326013832872699486180986138603007566142435584141053765307310605987010593513314924298285682533481801358000475850899458082095947479223077715358711852180941831635188536805033217428042257151748315122213719500851167722938328218966358804698200561883421878416597847051768515726108957425227337914001963355945452153560762473513239457721339963813635411684076831003856430651035022445960568543030903867990246827649149741956810148127947515115871111350569828135488506347104646865012277979517341320622810314102391175708431982489561688958217489692592112479625291439145764733733461844865788126242457421725256242987291740249738818751340181753056364616715410890124641800416289406553037907864672222895392823841502301658200958360082864582622535501242926558364177085375426826735060520118051059362196548297927245488925988269282817162898073873067052441389360912407756428357007999093126566606959992941121151693192771517481383823313398560251490677205218945563066183083637975927868206621573094112870600387911773500776517701208806092398525978718631797306907961551991475699789380756611395508243743270578352926046782433628789052318053908339949159158151909443875550784620418004660759742963128987672029482049346137943057364738148703822999914882621217182057630531840398507068970470923196211677880973339089604277876874536932730884473877850201923423008256786394566807078058529178125697407320696995741648526134531738800977328098865951086068312206052789312964195858530774261918396995410533965859148711724425975271797637603875262989724551533918864307615346635406685215059657085389837603058525641639716886660807538756645814649906466588729685794518233540303388155312768184633228406154123998945002989083019706064211411979053636938421833294317869494020604283933852414561428251408789660754982380780350702858192531026818582072736528283638745654047128859246354402048014172302894733605321554727955498817492125438119378106670965531304230400188438125037201501878207643187348336456977628811122355419899601845345584610681912878754139738626472516832416610091278297301390364836205154757181008455551544000836300039556670689281389802319059768918884365363613453207557367970915963162262227533739933411383753390903918210832865511024594098057858826357350355793620145497529047845546712213623416949900756898773072487591286125533077121577185271540366249113122724809956424024988789864668574044292796902119213095614680812321989643785893982359524238567705405984002332987260472551711473651877516021446875613596834356369081487827161789838076283875714139200951086254042705485281149334810665794606646554962850839227765297422518543972055403937330798791464539820673326830325507607674860672323593013493785461760812517413271337232341649228572895937435681085090300761558997678481163994786584973171215768122710956666490507469988712762996119902854736573165963838072125979258731729974605445758120415083186188151557864900470465854544178781191443556311275511325003540265947645878642155587543731477382777416120728278626533303823279168961815228441542640201662271549174794476119962021643891537091610317638559828145873678556158492635155770284920820501281296933744611793756337721886957985507339599803957777669339814158921761054634069482583921278964752183757876461656145702265118602817108333259487730391548602529020923104234204723608003827553076104627314947759616147062012307195651838338793133771936889895132723755005516585191282935936076406284160789769402196143163499701501411098047059752492986689355467477411270191423451586990439021165960190290044411070009476816638483582296496733669404622071898251453530272555053267728425719551121749655104920555071824357238233913620203491474646682087450275302460377723274391802957175357542931517944470217690042237885267049976721458865720673467740034195102026815382849423531568297520608737665651186999604937511960068287403110023688494712670008740035433052015469935949829787165924217017685035070385860426286959112218153086643881071904620854583499044573795870773019040315950459048695495460415127684457992483687174573327182742520136161030629747962048270721689097407833249997052382764715352703663417580005561662866136651191708011724531965358370842193478272509407127344438499738568201968774365275123688117274243444726875534434383920187052960197618805193979138954964259908485081016583274783055621411534705921396198547693331156366818220839974575409826025435883517257752387879706824747974149035020864535415257349846841874998145265106853724992481476573219922664118184192615560656221285705348457090997176052948310794202046350384485180944616826284977847203334525286038638491210206572780090765223279024890026675158740344566835953624746404463180434333525027474065353884408043346557940943291259277484395853114266628725796878669726554288285575977670736903094094401494408310092140974337594854706591076509491441317575030625733127682968171304817698728562178830453548383837779001301882190797379908632949324466603159537866099745989567114465260860155341803846802961828985473975718832061281648171331283052543374726254492460872861661012182451875033305287988072291121208937138964117633050225244325527903854255383220497132292352065850901222223351296514273906839757853640192562437571381189194913569102742871626036114361539120798479520528818682525258203789751627548733047237303509297644835896977499833297916145037162934466707551220394165312159220326936536960293911725159279483446867109207970774411585711648316602025531784061337894431491174072171887448351434379525735470357996225526981513907303971629862761978673283484725734011271638378842896399026030003473792316110391919061071494579131010676147715014059855553496958613527388537014577086161163789213267289540842962836973954400594165311314997573200049173297220089723346024157801311182171447603534332925327365525598012224966874335921303028837039171848186546674990990444548382163750969034957489535143325332746133585610814928895643102672948903144434832001703869137461254292443357910301865257174241104863487339692779103867997242373553383949116561923812161096922679504477916889283197659030109800871270234703253432887892822836995676543663605299257970845117052465817441652463105509937680437496094641752656838428074833876434892692719445344115677754675545144514869308559419643404541157970292446682841894723784132739452373583146008957448040567699556735134587229232979244439362626390776360995440017990030438539285873226171012173643684866593856457486062293103980561267965083133748597797174238177449763875526731039474824302863234012260844951324846738889852189933017302990166605838007895198994089513098413921589467932240343440556095034070144170053058095708720210411209969790608717026762494159300531598194977272083229561946400567022647361984038861222001523204252109365451700463498123762729825101102658727322440242532387550785177534860946761438379303464276030602382049447313533083904536992040098570188419012427984411306141082335760593949713187395834001630439218133132511388233071749166870478606762841661164286971292659860031957366623599978499379356257128200286345400517646775762523121093629358202181239157384059269916368933761161522851049788803505171595403451737005106277990131731672785196993437427156537234667440675719988908065220788497083537818735392981137703103229976057834131053484846602143645618418238811677281691228483861398229566440493936599596939667423767940548394824389565611110125794653397565997757130766503667854119709080437353668682526695595631194133447407846408989488134742445098201463164048330855353976796329151333075703954197016475091230983749059838312718310941595615067777590294823211544720481333243402424519722668338961602659645974310936410661851608396683961024737218877008555459210390910388418297245197185184279569859474585237187249143921365998357009580145994714796544327360764258259803938157403828078725867047429667982930781605312072809488948444312318559470442755501665466819093467567082254999324819215450099453663984204600570313470947562906379908443144626371281813060791570378158462262312564537418671460391926856456573512216313346808700766982642101772595208950902220548915725400156221190253459220352889951344871167442933549122460249473702468718531193954956994113811016023436809376739143645228058078110349541543772727425550001175141019274258225271053480130132991114460978619030700402816679265505813726689983981689996990627016757177579496876027469508121180270942997693811298910466097059565812992564101759906010849792225752591424933798286251713512385160968356272200162197472994560645182882793514261245289814666347496793730766648431105917431219791283399440647278302680072658826045069934786608300871541433827768713720091986116642088469633641730322565587085364741235086222343774261576457625092704013519286892074682960971330317583378583867144642184608009157513519486119969018424717350180647705335006504023367203278477444260560710246849183064287083284876727884675976255467348743101693332570506090132796415361791598614958523180914570435371205297546747898868630893198816714904733503574352019215760096821095156716918132339456929741089241308498445626138247239708125337386025681296652672389303119117153229507110209618875246942483646146476772667627061884708275403064257533184677325538867149849289475573989673380723851128472703150609539324488879357233705898666440389513332403960509260934410589216527877103124170544296751458151792085044685159649015303371643124165367197248052533059532825186989695523236721355130048330483655557313078671704570105749179314195093816960436769502053746753747802159257446259591936654001196769466164535044568892028921590084882139068083385442888145260415900783170436764758280099609273321464952088288678900797860716653174338928423830341053566094579242564805774655770091436810369119599185223407923930594234065649125379673684688395977271163899328281411554703164613114431995448647836678505695469904424938352362079861493338030864572326864444117276441184994987474300106968622388461089614625839121978237827874929012082933832566591738451428607231278542800693687053912933844955093247847019818479769298227688242949134914988487491517465414481480937701021596330959534692582575151503724226664275566262367870551340335024419492629280804948141506880376461428253502276681680358521604961158227784544736906565469151356291099021946123052543847017191366356711506218161381257411170492633767900601792747730376216940935216265939105743164031222607394732543477983838875211428207845408568256569512791226651318304430554867086846006283029095839907309463357888447260605401585645429583319815185744885155733252943794126357208635197751129692562679532955699959952960581367269675884736906290163393803381010663049537768609410330117528813054504434320198668013843473781573989323754164685210001693037566157088194825401784340666883341297401831693876494861868558935353791227524523495607242363435351828439109155570778256355610754814522579568182496222420242019530345186217094812117804949461771824596133069435822708615238500882824473214934297499286722418785211525205445107603123122143752020899723509621402579170281761271429491467875112013918356614958216524781173861638490480992407300602884871925306486802414614068187389650214064582745971816271346189360768384735113545373835538016530235480778908225058966579333694193319818516386523630319053163214115514536861464326843716882871168016159841702316968643300632935230869864270666455048736681107907837071265068405264411223283253146213515812013320649141963518226831714611902704093903389983576571033602237714139079945645167165626068040451549280872616857019088578135757458354703141606370122595612412238145287208496023803391884290543217333991737938941984143049142753158293960155950478836896592138746848050917388006935198507639381544001707174023961088677708647835838269448406461860484424555729571452892292157974015104200018925359181385199086042256506504896705525236129303559357708211638781928787921300187745111144275504873265446327097801637000266750438734724355147363480156929761250858674232301857068670758122009091599485376416877257447540173302504325045671527533471983336855909484056536363980789030299868417004327184661602570250794657478401009015549928817553496791062475881581445545065762986301036743891233387131683068249712859495248031023827266894012469504696181575297253882608545152073610165239576098790579346349195099319640626085328689684272754459221731357432050581655336410280434967217283634232216298913737184046175478475516294402338611197305604240246344987684483675879188297926290481979770129200004649201955632439757457327348369624993609335636828191082833968326364418818282375261190219287250056967539829583155899851255186575713696284571168099998000656023621036046167372149606657674685314408029602150978346229292070172506628339110461653711731217917141300916191440772639635864948873184154938008544662388641407306046012692784785241601808870571429614126037310662506833182116331677295849874949662812178688731080390716755934825386912108191456896203373588362411059098648453021407516181910911887427597779364056953315236605430406677386262154512340816345837860970653917627785898651807928815046378760811422759474929590922637371568590613436049503675310710424392884013371451952613354769634837722493261794122786943649534432313175772749029291808599476700285777385765143179803265554291504924613757420481372757401645348706939909734009297676471968208887698451382455445000317611680707666731395203556025719096502427155936406329909955269720296702672649418639783027290521706197587694356795298442810943732086322202249420871590097782300919893114647521322316093339741290583238862358152562562467649210811082085827047283924231128918879942271650442526208206205654631564228443462729243901184864172772486635355062405283605758708881506200523965807746889432365701949584673856734773253689034643353720283194870165920002693723919949887384416598658163080333203446499960599314044290709637172080570322788212587960663525196638859560055100219655143827907772929118887001580723107132061073643258370139325294909661575159198995126009211487657620509691673155863834755786687042414540125115036268129196650718921394111088605595051216386197809099312924242393608523062242118871851523792595915642869037187938424438083355150141006919817642089851945515991189356666951691803090943213275009552909656728750062348340265598606198921975936693511246704147399390505798120130307239909596904705270579322463566833596195305074936099763390573643670064909004989635440105529973711199826484882494771754446235886423923621220970851187432183788279090185910692895141003162965419604892980773661002661431423175655690955800278596332724940443127308181161846681133335680348424916237117706256376695151561344438437348420949245025506386643309166576020672411198663010806483407322241126663084210332988489989008252721980449893859745896650083750201234097946043134123015848550044803000773365638843170954648764450022976606114996436875609813819589078401327725210362925810899224293182641708861827276115448805107692892060695662257653222547461207818188271384104602750870496010186008552812355900933752855531339755884570159127759707951427088792823646421218155395924150007537699068086423300413569724180272876574847904579755160706933599427038965046181406556053979732209969558568536362741800370893178266946452471722100516043194242759741229860667115844364290672281388075491864346085227570611125943014751760515059634137804962040638603522850987972580046293097302676413692575811724429022323469677985124941245901090409046153832913323318549384476297511775126310836997772189556316033721879229056683660786598986088367114071889534672499978709612683171522945852340660237719327923768646454153821062491381855974599323503072221822640072485277783277667546473697006257183636590142951283723524286496731432694976864387011628516254563727563516569777470514848954934935877230756953040714049187034887798346964573940227260719182260387994336490293371430467659419625935682860122472033140790218876355755239492862330629949779441029442814247486721960715319286001254985408582037215825411661283859766116349117839949865429992282499661088947138963846756109713388792787640503767102721988295920989171182401077107339986803045010939129137013690589351048056409336988783689197476191102595989835816275624305032357661645384848170178533073404327190753666051150130943007209562087192447104036333128185956664977257657187798711070649300117207658585692375219546962891007590304382143592949155275542301293767583822883617390479668120873447545663525196981658354984412259000200710805635851695748580866938287686270883947247880389901148201583958842962575608164231144294319906540214509006755564897084980314538684153885760197838504241733100126781685428987378824363032599261103213102178918949914330911189695292732584811404112207196304777166820393285270544171839952880485821127292330904403010021549001061489472855744643000782334287409353388982803625463830009793947388633151861161009069978597984619177209300558240119485301101562167437767685503700007110492986350525639456151896979226715509156098542585203843763400698564331142853888857127835107325873373486358783194589487462845496788915520996117439549384103246987410975244029671994747234360854941112155611681080112904385790901931409369644724246435450034178845460043667282714943561485143625378101360549706997486336869306490942516492520135964485889934772727637232487272426011839946490892798994793350525202063903685606419232294467243894683623050973417959223199106078286454004559311046702542515055924091014179248835398474831596655321513446636965088393036185756236948181936524000675913538719570803141037660365636495461188796786412594249735916727953219753727198658436307209388469584522607569593538613721519402615521449948159221316365061152257609841106826010463947346459682710338811125934925112756560992638486052867263462213135389079525722123663395500105426906125646110854719876585626526606534222047552896497722815352639192817610519202289321806714405669713354308654282535418070993251165058167403306476612275939013961995012032617537178440899845953995040141360440596173340190186026161641412184644464606414117953438499618300573994091541377602304845062085745821831426752559873531162399377150946373965002789093679016672396848719433626410196358938858255671589679077828780937503934041252891227313046140387659691746718324700947199086817892742748725123126662854463154899135283976297714876041805183054160917328305372805424799026431055749052181269392136913242304447984021915640166236946408774969670861976805064466445930828885908748809705265738234744284065081966022559617925295631101797480011320906551282063157966716793406844685063449263155331964789655227450928525337949447167327790908727233365013818605700969086206459247295970547283910260001397207038184384444331801655543225981644204867854972980401773834798327740925333585139224139680494683987066560127670794725434197227934046797575378727055207138831330886307099608017509461662316566361575234173617629483564671872251172397457061154239900748192531114602754351714365323758831744800220124454752866650827485353527213512130566940781621789789698473217322016877674195606896111573020167837662815644523466403755220713353696206261521332703387389758866649124292920275951821908907000539533618203809551861705900903560951552255277892140516666192524898126726378606198914257020880714941672018530878759270706188329730662242957455049822626994296129867149471807137099015830498829606893280355668918697528670909055239060227521701126762925112499446555210535905804561122770830631259773970499688591946235266844459049011102623511777999226201478727702757978179511715639574021620017018139214449081363634842993192304240366884774407319464815575113849275449603580657356450904569452179998627499668741579279386726752238557174553989180236367851840644345062284615645520599422618412908983159241658023240646186560373164100158111352041359042730004827223994204433219862675243753091451365765319169318456090585410567965083868806008451536241788512670126801393387886994050290756891599775811587501896335651378427609644146052616488724665438690966376037231421949655104636692555977795991232319003464386328316497138486396283638388458009102326489384242489140925549894173420618656168408555413325573497504493386405258173723361094185952996229112066461731140300634671417789753703585365285937895734974692883071843738778561391355179162563694864200337809908999003694911521177711444207643688177065045008294763897683337727178636758750286466478283453930203178362627716907585372582304569931088703010695125825198421907480405995457202464225700448385089141032046864949616962686349700483091403156450315940536758406782476291340764633937348412341972331992620049287440984689526022160532734698815167669233374155437629472384865804145725715287403952779596083725552637042273899462807387538595286453194270158806740381647821201411888717360460305262332402380617782320537955424718368297638636441691726723458806702151900236562675749390145636535293095320725607306201049732487524627308729685889044812302578444563851171410119132855668789394509269476017107674156097226124990325247292625794816549856902087354320043954755207418413866922007311418509078173950526952315422885405388276305088310853042583711738606719822999762657897137970366993861449390383570011870436222848327743074544288952012887679575820532174277279975521903861711291450115948522851801463900684311627981978078682378766013852634044766021580766007513972545110205801903301703100152562400688716037679883850372539104205678320715888692092958496374041672887925998108207634778753499703104214905184973560678551965457197351038052378602924284301067406739106701156323392877166908239487561400189228211117719023572414567712614456426307821362271424343167576740521016798439382808987779192038857562910743723094639350746070642481533890821044333431660489375190867881329546241952996707512360448397944951508226914056282029406391466347297882419445326966832465147686884543973165817951879535759233175323048258192542900650024603444685779338787278294951000259260141359262294777897250541640655352822437641313250431572807232690935823027555119105902061776906460759137408418297068691424032275266190616691235458851926012252157329171571689485918597253515843827974917300514852854456907212634591031743661597669455876101011369227468611168903351689025187095046777180835822053285844339967541977264661975279983829512826368857814250606480038778391544316997953234673471749670633168279493448880236103011479396515262020771349409219402246220847382343603634922435234725319634974561991692041929607392297740544289366400167123443782659460149112230706773981103298387816315465179347162363418911831702622874055276060567247081150416710228186307937142040963470805017798161742858613029143577952351825225429843394441910000944121911768405249888178570217913687638928365011262778660666792082611778805389620034252434278208110439438590471599334408656658254180596949329131181787938398252890952631329666466811004978117934091074010980949220960034732093018904757125330647185430139514791900095407748547927031824525652833099999582423711751884812507489417507310734831298944069189889008106511907635859152936594389390807382442267890686551536701333912785915889009408110671358788615936183121342608253103734716469482758743995813493567679025589475361476934750703944318847614731484952892434652946915224017904492607376475115378879140123607546762393769527622521772159720615212295218361761323723645592851575693648493223706601893573136506937740974670562638906503126334908314336477863171208765195771165565799869629947823638941387444018120171465935148111285106582778898685637284573734361193192058805921720784495248495761226414155941017739581303692366123837745869230199521306887543766855312684417531772540127973284469590231908892516883974336706951377028300668055799863194608690396211617757819397962874383184453922872728033442838534784463744524337146638054458668395888989413827191245371065824148451244549313296308515457586838597775271260261057458283675993419213797592898102902043751615875502083697827169741868214405791242829744286929802904797281511697361873843981421190895651306271348152992850430023076187679308586046172999141487712095009286958584605596859787237660402906979282763907352441821693133668748881956413750188033543558505948356131191735483286880048198236698568112366879946554233772655206049834623266967017070416013265309746487519652213414502173171581922064961267159208591818900736417585820906241850524870908889676800442786712439276967716438415217986333501159765752719030156387537914057153052000825669942990018442304404603240343976610953647157311204168885640712061110887303158374536232264295229008905192575947815802206959876894346452632253506949056988744311003195034437231887402930523195348426411601477129160210120909310063008863767796162046019115963188597474346279968630490893301014126235124877619553795227081389983123802198454453428237117870044104571061038953168917759864866601220871644566027449770858209393044554338983224117637099570476097782756012064131994790982250283245491449184295882149833715945202383087215120466247406300185465324961496674489576704441334765768690316213967993739477939117908716904969560191650762691549802619691412896892778006785173181201030032015210141824541261666135697608259859843070213333065686386034706903000448456951656847648280588369024808569530017037496421315345120715393896132670415023941443078219952164808673716105869737108918912961775711555153979002521765476684784923732706757972932241089299314307527728015962283020580651191496753983611249842935145964294622496569754846760891467764322905308909548745267002140595120479605697465585390609017262567087116510763075181956110772199767293945197805182075578864136016780193861310429053832049340526135160558889474553114617730208341427660675745056582673283781273824811540070277346695979418048054119161939672210087816149766589393328557198136982556907770003917135975360477896533322332972268414058060749437813248488846615230631308672968733834927220506780421800241697204382714679876881216651609426781035634552269926280243628567845482559739322455671626179141307237644454774733829868153588701002038192105705410960742985247407875256742255593068055772651732376837548168812243356940414368418397996340870275942245923331895923422383737183198229345593186834767388048903459995805025904225642701480760376036494652037033010955027364184450252903113241475817674435169160342018771997471989820723083734056457694801904953444389744650891404265344910891439827376216544280684769533014385329055035320921031897824037116272333990955013989371482131304946275821409086524224255885942751517942607811325332466174600811098651970362959585653231558889022553866466905098410383550994226215307262421856317669043206902664504180936999508839612176437103349526720882590240616929054428917243273700417989409002542159061381407675317348225796411001362044676241445399976128656941546829112405121807543861957632221248961300616218933162371078115574300727911353221013577588101443751161939926192228974443804411972134904000270960508897268904671957743380139368280075580351868454093701012197236741147390588500953445855039120673896517828072815379358515086352116208708298489615982446995284296124824505785412525979707012709710044953326342090731671363962153249965323014776025686562596192224882102616906330124912868925677383827910222011205662843363082161050804021722231882335741645088836320218724183927353480280896607310620992742346427224189572022046293583786300852777912162659519251644702280286191118226367528706803195941733413652676237814637418189875466894850523719031332368220051124227086494657268981075451010614059463881012587271731061880227981571239932005865894591172849646834880130048594174342813520801083108554272736404460187697633795193302116612433494921956978311670895945441414896532813689379455451560490037233615475747375426632044065166308897077505248058437298668648170091446987021320076563761459299882450589758241006860379090968336685988221835883998441115614705399193131541238374519551522678477622125511873775272327726148506756980517912704302638377619038034999009749642886769878234991447822825638377269152489322793826024298678270503408578623479145930667783465647692812166243501008973255082707153747705779053725393350165744270283083244804129219884085507318971465276854007011307630107891535673577324853041488780645855012529754508429428059486647030809874890046583202374088687345667871025817614524497416356079464971426000869037313310918323806120248988636735909398783693932335675519502040764584633900099164195126365698487031754275264491441126538878150242929140651520399238598765148531536211172535155475837692409449096493560950214426248118610725972686732771264395031826391471084762964880702429493831711881292274049968805473064184086637881298550074981128869795691593561506175783610137020960972884242486770515000341583385128735407386550920290704129972157465241737778072038135797812533335739656847768367086496945845444476332604088104826902718906815662489055933518201508953419488903659088015260148361220700254175747596335295952041524702886505955085144638948470354694815586565847540007238500016220063523550222737229439593788647789748328443602010761352440961875648759278675655575756821042386136615388557590350028323462134903628956628257879516882518344456374119917326033037218191942881947288095002460909913541804737272363042205340944625438716621731334664433626640332909881849835531523660400353261937364672788890273443390882937581492789126399449137344056210549973837178303438976518445341149368514934713902126661567176142134672990416079770088866009213694079807467788157018211213370547347107826788964072406656359162509477188478728302936133071830111467383227428222403052233734050729441043302382379637850518993697507105333390780819283533449022344570492950495505944314903983514935844419065921427123928592391601712355516640362341258810580653540014253742391145017247400090285617949269452910462833884347538712468466594651705228251728306261450542441068756259049034475680349649602574735091730936816847787053808938773065213297746708320019255868109556272237677482257659365460539523305822217546834326808675546882474909587532665552475229945353383313811339046144510129556010880619949800173722250604730254804105395792106025673556321864568811436006928484862525912046062654947506346463268959467261632397618035792653470986046600587315768728291171392890208299123886408218462080659492422021176449437492821142203766845600670535548653877857584910330863238860638747065664682769686468758862681347533218393416519766186348516471131480812715122246720481675163118392257595849963863416961393178031157163761930298363474157789936179061743865844614637777315763450552106399454625677217855308814796959570033398528757659832201012248298131044996431389341904081374738876657176224594434099653053026548267768409159413614938037158950179880135027060114559903858451458177201559169823603805952069872578828652798937140757041829398598774022799792793712234165887878299851185190467880296910306665253431619747980602283770783117439897599722241668121929522603392132169973873043450490546275376092891275250913682139592771096831585662203607025371919508869792666679538387898350985093282966636764617843137039996200598542655506424414415392619956383878499706161393427828087946150197698265393845704794041907348435451730012050180015202836826134036212836641402719020918388822260513363581064311977685856566759353334819451986645819689974699199576221144666821447529243497553489893959268397691362497705296665691346123596076968547560372150894096347233552190877867345066655801553897725751530786600506342466169607762924488228950553335731627280401641805115895582448165769177053550087951415187161808606048403647461248359128296000298053161611996355071450341534555133629546976223094994516630612951278864032910770399597231405848340841890184784430008654348716679113789338070617493420820911186647147418367530674213021160347465322310476902961636173572003469695182570252254721313288963924615173738982887646624176969493550903248091801382612598781650297326444780519232191317031384518431888021767412998720532966657410938578310882589360226183522840488549954486375001667128559148771908103093559544700341498488148014860944277836775199090350998106744146366566181634071273776931350817122316967637138176678763867042951066826537488815305069077953622249595971204029294740549346576559991170959075430518029643252734804647492333611443708036646837031093616688458187920593717073048264392029854381653744587013127072253199108781862864569464251899849579536216759593261338389564361097240302602112138880978609119984319608078097882844412281591546662262858317740973517382924240040516907590698101274787900174937169037729279885972556872671746789016634880531798028486347617296297058578596983477415112843550619159928200663268666546541642861378712439467094484794245081245525619262901208960640058743910881415694849631632577080034362560193870396500306253963848621721148395146581603673297053270667384640093677728772158123678547266154578502994488131191189324612955949221220119613004973611061198983899525723622442802670201194622984064995345655489302892569984480188446469778666975786005277191385869796696699339937806404434860258760097035821132798882812439966143703131723375126473088777753424638232744318383779241481956457701555069735555637954228942882218822982168035085775518774775065517139526020977161305114414805842251909709657736840118343825462255386085695946186255236843394680298109523171519681758173344173924714928309240635998659953985140950031023725704707914784802914709608484881407370796263282318615265997023162091433112757809754375461845176484155302943765706623347363704141617906395472060958582313885078375065772868655244139413723871921203134709757775491792645773489237514557862762111248100896798799087085609228760930324587464081725742121294493829255802895568974356860880551920509739898142240793323761151837404759419949901824243193518254954994255547910818505687592117533115620768164297358518117664411162427459159455733883331979371055057478062464082959376285526964780319176416909272881857826151085120440517284242035956333772392763452843259584247060467531521768854644714834472100353803365992213349842423820983882200340124652573681529606809718013468264397223669853307394149760262333019771558046090425232506621653426802597985881297235435596886823549624100754013073538957138939502019621983034195063745368807821288386241867591529603065440354858203458711416758354910747418477285833893823315319512817680962783440951053535332214541249393885199858839583781000447651044568884569386984612378991551250242486005008601688664348066664478031327843100991337469063880760219633200873226444348789196491255417080505705426424434659375343148285331880551854714886141836579380091677591854679101236582496046804530958274582486262191976857165089407326849499777728066467502661630620403168742098637755222087184571477895143956619553259726880683274774074911376496878173523333424820323984259695259481303205800065822548561816616742541361389827511208391980998131080967099839471075616765225163503722718228259504837788353802859768482075859918972577415044756766112441780692148011215632205782234581303439916767535653371466321941706108524425462251034032382558285401969635087008248601085376572666919966547740155950378433960437858725372989768792860155927101824340521295333295472483565897172897989287787506498093131763943951562372928352419904174839139599326042721856316469038614208466411668146513873302674513008861285086301725152471167373725186535857749621362988624955818670448415449888635372862483488645875359100364260129450936531075578504070967296658701694945761034112735227116528756104749261855827707658475889177375113141099296645727356289833130620505751352298852082185315650099816242874593040971472623267641614064061594248269212993402119731698870470907631702385650962693230262550477287468257369011894191198802843269050213642084800041244462932529965594652422308137191793678303505933966265971123693147885999710421586790462289720064449593926720827622802708773249804621171651433900358253248873600605802654189040293824340287706522407648641166244863873800305665077656235699259968275308506281012649929297973470181855217613038888279105410645407601995910202059303545009032703226141963533385836107476431606510474899329925150330638721292949123701116845966411315200736507671846903651384548225082510084328925715069608088445848950138478887202338190520115933399711268800526504208245987763495951836606641270245520534703991780468958894086447466179020318999709602182156235856301125364622444777320034136705809653949605792018799381467015897869033855575294843450323709041198004803981955929465476450540446025750171891352911019856530974655319293303839341429404638506815543790026061947072802105734832941413949381727564046679875000316005166688783273751038650914410387410576423161515663626042878292701673299195319871786884953273935695545450136245039671466036315804819883651831075958111442857063292325360941867252653245738180612365399699390884927319241874283785013929507516282946177147696173013666188587130881799971114971118041771869742200316953652553194225773959354873407813323023710629442973600320243455455007536519915924959406742910695813711721954717646060213909475340537147666203246267448837317670448760859396303820369801286826391877307223204853398349458035312321101786883467079905327753780251952686986006026078984943670229275869801100151152224217080816549877367563095162448609068643472368323680778323518747760157856464052415829239034991010175662156132568702113047944872885048581993288641024436513755592642781298283064507417569805916314798668145143003599013763989400409965055051578609466152359890739087323291154021426451690171246948167460802956522251873221417631031168391023231737025131526476281698848916850094477631857982046756782002032784516060993389298970884150911493153250105570554493682963135112630219608007873210081231507204373798204085288906242432551863547816417747142608351774677204198489823037472866554869795745966354388969144585119527404147222661356418496890427359653047932186168798927869641130349576037960312492826017433325825581807886901826761573900023095770546368651731697349594876035477214254082109878028673035232283528490949734772949530531917844908463209945371390690339100884379391783615251707900256000359851492251861375131593232150924581251134396111196185181432526561188329812015729182094896127916168736300189230187259218339833376342286351710239580362089000511294672721044483813958117699944956139163133315110404703360607111143622084147214922002507040287866835589669099904996656705701444673540282346158609872192163968645355233951366525793095544597591324544750216275145769360702079951096931442272510541102374687168901164112055239292566547541263239830284221619583483789252346651893734827223597484789022722437352574676985919745634813748765589069706313458410613025732431658619277819058273326804685078791189186923893749564771619062516388583601824777479246762394495238630227944619438875320086283741777684255786939164586476133428396143666107293622882380765735287187428806235230577494163611591292223400615148832603694378206409191498563267421081533148277932303176424784241826586883519625101975788772953126898934371423900946871112411597243525925238939023132409600172974959211749568920981748458682607660513354417994737390138687866449059496850050805299957520605969676527064592616574278269443612175807484710077388615047321624258167466216420800707315208894415070034134498790556370136164229913489941170694753057085649501566182196560780297862623263344509480448070169599222898490469124615509365790706239811938526343307346134618734796861886628689358898938407529267906817739618264303476634381314721786717102202854792381174974559816260989260268513903590030496020128691130263077231154221476350216602920342793970122142147385366005723347333926183645745233085818276517376334752591878109280874956968095486113799276022465559663016377175229325881227200567111329827697180204672851337202362221465933855245873989358138293257771920065623261844720628713910041748947482765178182090228152005705349276983585678871734157909439655467836658688915676157708820601028110464502000490390923987464818727484069743111371819940664519178506900167940501190231253431221881047848917308047571674147409617883592120948948096476992312500650651232385486122479425681489921097974215480005501193970320626437731796784169494514626825273426760662050983344828296832488377184390944866054845963598610029848525258827005014156492555460370293418411073167087081295085753895626266210944828259896935350064396122637371596519780168417762694654178303507719548007998417857164309539894338217660960696153088266907401476014129659729080653777272772685013032456493030364845777431163614144054270913683988065888914158518220009847963978563896458448967815416684174793808369515770716874838977415178547667872653086298493979073722176920850010013790985818939258415938844718954780716782982699701252256358449801590067125643370891070114682968599195619106279720250866312338378661423272897639335740404527359618554017232106631780869987354308451203197145585068238623809489611466219651978161351491242105558466359784969946292351423351791758263465903815017308119100689924017130013332593743844525218117935040165599855260797743285027060836303104660350442953957047673422401889942386164281976865333791218301748017508265613372626796487704179218850241599102416935158096443783429111979317081368752133085678503238715794632080802110888226196948642029798912775769793205296596160650560621355401221292103965229623938047880886223070122659254173069726146827934283170411137188137941312095725596661143858745838046877384124835024327562875475249858068890002312152456847011532679148648194644408261054025115173318756329133444011966200634337438463960849170662037603945339431102614214405880471796486082908999104407781554638002975569620893119702190471200738633825706201938156659713433973186619681390772251935636430858121819814342696741622152685853695224862100522123923703776966641184444166441681149371792031512688684020327372974728747586108383675383953091314770351725581145809936067499747464435044518715364422177692592483082906463886428296263128647882448788841195183008076528083086003515053647535953179767523513584462629897127414773888778205177275361341167548499022916076970037297646757050843183992875473347947247764244549058863090458263060779829598322536250531132676767913785208727335770455530522670079693803852745179099300214951164815817391955218442242036643496964993725333830112620252554328547061878815162841668347983511075173424919711764825640710955687871019001889595307467677949826185276141842161179161015058300375112886110927067055000610015838166551552930754522841146655466098633488305236759539651052189541562442949631182179476596123772488631708876235163247417039000363372524463196257773914840781904852794489300805268651077197411525516502429437766272876377117847734167601524844939432332322436248168503751779143385064424484407593719089999094511243671267323447948587676442338135525793837220475963845980826502183358508910871276216936271295099886962122375575774605757099372328472850487049607988520771453902558836108853729570902993790773081605023508617603998684530152507886694486233372996762799807469334868489544250619060183316979815643736877079021972492678013546113895929806716132379639053548357164241998417410944325193576114195430554022673508760654067525861975162898156781387637061147365200889642913764974630907625466956896209314389968695601550940135954283940125033706129842510187093856521933944907062107918339993692498495658697861702622993033020618214635612389213529278893482656585325359376006892228142818024192414238464878711571124461521432162317076804468408268390302059243234653174987472353982381937174334946432272699243646891066910006722879826403221290697507225264557708353936965196446875554259352483004776702012413192529057674643580181987617021494823919566458232043124637499661995533083160763133307156244191580521368822035762597284085084453710448677341161874021965333772228568063696854394271676106349049685135463453249005960780792211083394481697932486431579047208827653386513934572351800124144224410050275693247865178632481975543894807097919173018877131097177599263714227354587459204486203656029748553595546088788281247620873836925123207979134322807194089872923589326165253421026657156895422204702311452440205988394641880370409985422890873362209805315026988610748156273265531587651005971528475026491725769414799904287139806553315748396718218240684282346031616839071130945262311757403005204013279181752358950718645477657158378313520528021122406009238289767551119468507821450768529793623974822352525151229922929476659155453004112929448656334139726370343862287625166814532080342778094553000692550731326011973147155388725347892057040716868232307212883296139411959170267538747965280110442916724035021526054797621461860686618599800339707366186183175520114269506267921914300636438929808448312350554264635599318967053855224001792267705697556200546781751317416149184722585714828137206858572413531093177852427947392088219443046585254613849699235016408977919277569113100362073787599256082401919361161043368962317360199933807715462378325110560268959833919478070798870102175178539139024550172166078171873390603986797201828141297962842486378075687318838612757401731366077963468020351676754704862717646965439170965327107074366865248117353275366506707636802466368620453820825239043048773166098119216915782073048292223253931187976026303194050280625741462244482698466530622744607575808574764052554367596958668848022366888757572169376343939137644741413828484561337721784131292554560469948234968758588988731475513579932103155379008739093475266763693427009279651153526927934637867113954361188201754770881218600103918293924759403536561217876871336408084545700101897943486340191443516734858537147500114542480306890981875704842995771482418041183333264402076325259589759555332974704319964264246420295611241862085852148611845937212401413701826829731756258784821889335339755235524541419968853902817766507204329696527046564893585986011514544763352346372707669175516266502870141906843236011973997787654313947442387230163403762502565058084655730939267757342657324175114305878583673341257856584852442596274271808399837193826461877909182622299562510565620198512137340491979379388095573668819734050810728914266322041091744794176345647566743597287928181826000050019069512010818131548471849807886941854357787077361204897934637077330008154652479111262852461872945439827154656120602185622522464410208843040762832717490878506429893259942592290110653956055860504046038285492665099325616020290617752622128550111558680071552993048050839112388821701677458854647965946053201140810569572172884264994774618307932783592749272298095475221475519091460934513904692662592436426037499867758094067973744087295483087644133369876813998724330352511934262457268965075335262812997016421002234140793551241351970009458031295886501391053306020865465206393713237731244048940662110398967763699264551371256265594716283764519579087921706709219292467671079443543136714602107495229325958035451416702675641364435733226236061041823626753553241033597961133990509198796862641949742648055189459859624400679616793048320922640404007031945097402974544260995176130090037347893159746481851687617878018752476373350371724363521785262142194627959613743168131930518849332044786077102575248162135301145063574924323233129672229462345551866354630959002557854590929534793409745743010030854186021850155886705426276059277220786240515769759662124703136353509376247015822353064710213015998220272999767833717833867604712388792726428073515226796475306679266026778893438678252998279023178282688063110500471742777528294299773361217759223556075198716271520339991434875503727001558933965926059506242400141775560377128848412767121699157341267749882842574503618840513437989749593015771720137557993581632428581657638895046041417582861338103448418385487077244847819487884208086060592444613433092654587925828020902888855181358575936439487200006870436592463799142639459208321455675235497844677445865115926208629329693419643422994167506507383145556106005680352595573564523930090119307913424210721671823997623663816355438125464841507336212559811028170989600762275708263282092397930325422229849703423366760061047272801560836383673907169992954222860779875444858007111149437629449618616024208637634805518912171946090585455898753131289477797732798966063291738359097281697761929775588518824757614884310753878179497360811022539165094720164571659185703729356615576433262425687502077211221735751445856921677259200819308515759799092432745838224645949114746228645259406927763033870171742204766280183653393376417027429669180976256959962200374266223405970670522205368619148993049400033592261409254387043983534214017578006324062574069329274550346442316381876799203728144443495759669431154676242784676598382677619318908571183783805965642869767112217419632267192787420105995199933662801413252765001233479779514479880921441831477217219861160021585331914823763832606799994266792835932210540159434423570696523480266582370618577627935847121475149459002862762798675889514474877644878023206593255451463418729385855615724655513074347272800765382030570012165871482399659377338518763047091892777323662853248379285465534521248908777740029259385708693352264258198041883207747483193141947326235272940837540949236553570731295148608576141646042167284098703427922364572552172724462484153441307276737511313287146710509322438052436502176575057419618809906495270561989049650834043202947777223735534878347042234014887786819102228291977643905511711029367453459240420313838878330184450590390330917808098826706856226929685212446325290516638660203851730726395726035422959171975507908299906404974277383291093355012499080519466484005021143829251430587469460237428717565727082471239662685279876761149085935735476165960591557806687802317614759895216216646620218380867436311322406371250927121373419771533288311699867154248553970015098726700323616299579213877564683955779370166617040438311416019223465626408517785467390879679861573822483136670611508804477841543479509028182251377371278499315413593348426331314345599831339880854895081858138693678947490636841033256714984530406960392236941142720089681854165571423329806246375614741582908820988354510153271706642937733517823511207080598016964860536075029598187776451077474001340412690586774023114376026635744848219491882763358387401839239278274509977318655464879288714668592209035383129986666100978735604129031879578002923446103391098483755154995561271956155921064694730572211107364387791599874521778380404019289764905865318744988905255859292195988436589888762641128088560997333176972246661050967310279133844828054808105763225404297519111949316180052796254672319436828185929313121225499987068505524250713232689487903665474951400348367956460260657726545282568869000917150053707607458890917604860565918684312381901610815079612015911661457813541757215724117402353220779857721538755928807458094161911193528585132700345393779620864408943669167687936872237169637400395344541080065207558841846480006957082486603456722304222744087412792368169809141312917346712607946933662117010254798668573064878323453416378538901533780412496765572415378599907203316149997230388253781499059980273078718701741240125128786625065148140787221000600896396384919226069566789841551150658973505158695867380690626821644447448438363006633011364785376736909756033489891596861865250222771051661167014345152631606117054955663369942614215497896668593026322312629049247789374209045002542398948615927681157977664187054538373130312285184431015991558174842822859936133956274441484822282693460767841439024453067069061523470957204103840312758867674157038315862765124216376924550574292021367639267775965373027942779365015502492524367400686660484078612932804353004196188219520421111375372262317503200072093047492103146616226542877463460169608089334460737154119133688703189289418707103109116552781328440377907356748784454517614947345689643347478305488362063621006823366728167271310479148904664820678596839966252149923632677816152969405123772116441480489482679552751904400189191888155524659656922246448636498716150716605348920549790277815392431603939677399764891463322891898290356499010542366279208107399486821085299396224035449282899625374307436968708984076040586756682956089814730388440599915645680414542358086230458406649440720594064262554126991115208372025747016354085362328930033450465762687103901706807046937192746498326140507345856386898703115805959860292649281223053446697762928561565455647353465762763735570706591460569578935644363139631090413222428487463836065037796151741379319943528698059423739842229903471138510672669026536752951796188115432259566674228318528680017578453223640964825038432294879381902785992412120196078350167378474210609871239167003123561648689016392938063603388142163502370600864450960454151976528622842445431486608784707450331347675478226863747491383206947891788312552907890999928667466946619129565367953557165925535154048659889480680393584914484716041532640834511790943500233075527870276570378166841959458922082008272160055648149821622330865598946691627054891655995561208311090643062519175960264012819788112444436376500496150253389346546655042687951757505477767204429961062453799313094035676330537655586429960633479257428186332787908099038526742407684581997542594905261197814890943920192549472041688002930786957159987430290120022052627069988783832875526392395554499224895493621873741259065873997610742837312914372485475102759883333174279136428136414499312906755547895607755290016867708807570843688433859688040644708340626225309744905191952080816065214043250832705677301721105911111206695927889680064808905763107300960515582176731598167337630211729442565913373916818840474764160663001444185335511271155133033860941935470982178782210150344318433727359133381112222667444743954789645308498050336637796020384831484897762020593550654166356227335254868982207637159687774301796620293990692453693402585885512854879985254480459044954044469553347559801295332498980526221428297464090878128192082575232701779410444830393576172014428718607465181685812659365560936272529379578598344894064164697249672838807179344552253639854636673512644320900937461461433317108333655865249516902261084738158657023710714075415333904608990552266043765518233707944210995541557193494888996226526877335363435473071105473464266166460434903231662858125438284216798215197226598744169902751180094015857460374525124894601750529526933986420335728612650098337131855827732345954650918578864927354799344501851053416281143173420040314932821022134899836984868388816774782106557446028091143538464120612301782958162598014003215538502097183647591071002487897706974203916781599029810502644002624151729772159257483085647719524649670129545989841411824450948246244907178651894989542134708806388455377750444822793591885396692956802729850334590369855485328892840196388468288054111332731939603749249314078186105648799559810118247667310083829820569920869792600059386915604945208996464011752080799614140678333353777737912871523765421451009588016009186770389443012138444345383998387466872497629541875750301685206166878604150617253509458575261069361760172926073115513218652541015898486241261141023538823026000331854838505466595110522522887887697816365481873890058656246808305553212209248765284879412014160165873525335566915782741410034691134127226634602135952537864815640182755285556529562953695575892848030545700267335204435439239426834179277145573793971100421640887290250391183409689660187197116639581192536489642693673828876658552839367286321307539109630427911365288961461142691763178244864859079080026774133805200554001597161715960248655471604343026822749968193549305183965448323697241381077789644016959077477914933676190691484558559610679349295487208785306821426526527929504500273194118229094768920470617591900124491524161072748634659362727227265046531980213938477783889264691575905784006562217171543664289564793427662676528699564195050370691928612762759599165827617126979759606823825682673269735960601747668321322118386080573893675239995230814633072865836829518261189429375170045717010028544510585683841593837533719433733874721173404212169367261295082039597642741566204947167018785707335525254326297854405801096363134854855521078253373737834184834457356223477010376555319032379557043389565729577197645165580943623019893124856612399938308561419993329224688323357337196122243988047156637613535522146712635617360812107882899170622681066753628523211035079817593420803154157890449119278305283168288652284970975135425471696379231304978677584700795092784122241385117219330303313593256699407626565836895250871077617277387770190001427499244613838464831798888255407005865931344049806143472308485862825951899128937023967930297719652074160944601904527474521170797303801579026707931884997384941718661399280780342144942334464873275110297660726634856423060063897735357969567335025594214541608472649287781291627747811601686394247915534379200466666321718665436285566428471867790621337566294264222681783522419528612393444892616146593261909676939433105326462493765823297872043495242981190066177103723169261076177555503808741164661732100120312372930759797228600708544498003083918069777890037338605192710537191912131307653460370910862768436824394771831997357103065593129669108828488127652120555706737002024178302501101007260484384005321725100435188985256839158372290787773464295877026263987660716407034402323199937751696139994444797973101077127652084139730812761348998881541784521844969046992091458772379246067985931415161457654670903341173374106301414387008711991061441934956449524380095642057432109161062868822723010363411341403481144872595083396991853896846645360882498006014259843728171624534761367022106040195714251123674593090580972734733371801258769281234402989327917243680659528981767868356382727902601002963542939357373141724564560844827014838230391153950585167184935279927900676171989014223750186185822384731427385902746616531095795171154528634265232153113594810279668590772888198264271784615163989642335042317529513929732880833924559074683375072259479566892487221273107035586439978865773016440261485586718116537569517129309811644429949359167553291720866200990945490012383202031926699093206561925371681189336697104925055622932803270996724086182648391347751018412112358095485637346538163318560287103974434950036594634695789921112857205809702285590489702852072243233952108413167510223694033498745597749176881278156116486165312561868476974560921357015072459402113706031174224450006922472669963252358731737942147483490642464912018872140392687279569762872624493226949488824374010070449645601506823436033695325958924684041408375505937657129236174669526432926116584101326032850604363706646672893519688773263650356434765301947023170988511321542145763390578018595470024882163455736007368306618050868741308648439190572592308596796248252250814312696354518637463744016151717762423384857041098613859005235567348034402554078954276774499818554827619654073256328734067725375564667276353469194530401272362247865441113559460685638927878799472511761672546970682339202993699012243301781654365076663624868997411382060714147074598100989519693368678788611757638412613666128862422354362371774373412960470473905500113741289794537496383799768807392551238608100307356628359459746913353300530008193207553895873260341373999707111360284357715961887863132544357551302499747797614766806710790134479417795203043914144759363385438328795070164702380140751104906721680007544643462937076037240585187300368022111943444402466227330791089096074498473269025124249904431250890932325821248993016208899291514719743409303207336827945618880201295179873020130785466920257745549577945800349375912505593152236609344105436714861983341995088133245819831677761409795601108119560042016230187040164949582181293449461940722743438810968834138787079533503874554753459313896142556249684540235799320520579646992483763180450764289874303217570846100847308109788446479426387481645224724249588936541567424154033197391036737668836375035324355785919665923207991388472976073429113332524363062822741182522994667228341761550622320652983599799593627601245768114360604409209985623682022474384453341171473230849660457309469559977957688684722595203738977742121501306826801356173251949512642170980025968970299762285504454940871402008044911646941936984777485477717374962031925940994552025213486754054485139522217098964118850958397086610333970941235612959706298554681938018817318402828418866419230877376737787614871549754928895447979024051644783105883825027230778795222615276301438042446971981864342356080995609121658980265242300924158650458187983113504070061506778085823066626505149730020464207473658384536697215424889263349864447150927159382198599215834569088879619942459472399970515538560856635037575077027742106734530645348463649881761793688880854257677299392487538239908430373066819646234775587678247144376010788481021913905148610743799165679966976405960843358447470809021061709642579592596543415013734572137518631612219044418484715249364544844648991431405116753412806647841013914683510082292160603202328255989765574948798431196987274983680303580722425401206086652017812243145653787151340937185378132378697244842721837670004600517132202119020736109234696534957337495805581138061542546167002077598580596929298319077346999608056530824429918711142069608530462843867570896846984243731539166312388413125202257679508312578528412779579530263310627456926275671500189844192702700210548943999877834786719822366648262968374088356216656089234359736103435577033539170355569670714410374460669365485055549037761795489656999640462060713631126680078174005129954160422659133175838224043431963228558782044655728424271380902510750300030508454190981429266827305750632105967194964862862045957096698692329240801784618750098203461428093774799888329576014874580921488094141924422889281029405646597496626826617773430589007824284859918737059662350772148827107407757837210194336260387488408556456608977858583431593728516607180142493048566121750802093689714910246663208414199526349500136572621007313249082892272293131801721114735202563031118740523783312810410286677188014717045986845825140511830008498675642457567542267453883834113666426450141041707879118067867280692673165516059207922899484189410342349155547061732998356207839918910870791906139467365917399066345553042428014167450539230455915055705291669035542907724837913413533151575665830224241474031082753666070574083030424547793408918506911600897225890187107604009686846688477700045890829467444655454041702209270744529273028290260851717111895194016350789087489215568810391897518575256012049579218413284564346254293948171371313187117523406835349491561130625733768099118149383504498057944074544086798304892779315892514870453330163674327491658259752110408864319328324887170960028495986883656834928997894942417489944100528912140794634620615401432312342948047527651415408853681091934804744881153487346502521472461522045707478894578622486270399696173632757733898785676722962374549972932852953016352379153962301611808760069950231974225868579469438359237660251641388859397382471743709380065641993247195181843961864567115618621806097441296392837260463620217252343426971935465562769034257092749391595457735347594379624641707740572136273717005032959446045359470249753551720466440723107671390551835784023125691269318327119255000494055417284456640198560594647937542838283560647545219220345268795574403053060938695403673768403611858104568942395028669767460659881831327538667431902609767309376476974635064287281944113754849288699471938504087176698279641141196478696887770548689272622228046285723451638246077439468935972091173468503599676329847437703664545373558880855106577003395435554267918981622295062946178311499355947402731268796797370088555995913465399419753957663610032620498458031589930890861954540318234614610392000520032560171659320918754011838599474846114643883664617278465710911155600053315190562586438486774466179919676785866498100392992460234187612328660965386809759675414872646856750544984480841729958139873409650369121202112226995173631969400950070379064331587870135043416767717725134486301389628027824021013049428717279725188774627016967432987102396581511024227065342896899061255764268607847256453744017665359240821880676868318759577523362116183651443036559434119642119390182504709760661508890471532770410383983138899181528552659787246941137597658069660801010548126561493329971900905717182235152105753656113270990801899664488970335774065738705573546314728036587335818057050756620546022987263553926837072289850247885928047253828708000110996580235751363239166726293059332336554518592794481341629898552779324718130713906656874744651332849309724748930109974422271750627012283146027886284089455829362790234688599957863951913110807034677144431243644013869406319990111122185466148488038866429961639526153752262873539421331907988967785797581568656516522174168954162677723385010369368809000209114785517761433385514758754887891847479550147469076483167754686838742466413652905414972346338535784064602048871602485118691107103630384028549620965170722273972090853985134020034037027919352604346747672196192745625368446526267767129281913830031499451371122460583555501859805802606945452383119514541756749545790925643241913379237937994664510964067733705728022262850235940267631256287523419122769582522017284592470639518004990144393578510311785238871738172848914741389942463971076105681069027672991992422466906387837057535365523550273276167251954883152123232959741543438033935822885815212254182508027587000607191454799025568299103590799034595153531605807848979258406836219671697704751248903716774145693694557788543937239893618994585699777010666791628232649913881035469938463349726504093894557209611953443350958273410510247884798372953340482483115214883986736935791397686115044618209520138571214774726241846833960331190482342909418492482225763356649728277385157497066686788403049452179996866935557865489876175590820495236220522578282314246024127202593319280042864048897743599517463973471483292372447740493701438391537397979817201640382767225918469839655342516237993036137435452564889148218786065288183529754959139848026430487835169120715083153738445061351821676304446890139857481328965896462507084632037025405677070050730367653187525050103910932853598774647946955507703689977199056235425059927818285914744498932407817698571815504241985970889179438961969263920480373844280472280853005220160975205295846239847022189595574251600161891393733535259558073679632743498748740649211646508720313844161909478427157032006621929368574152774553908483755298456935976796012332355993599588873945301475472712082188866465255319087959602961259453725022325030501720136881350085729336131925430750126340482803927053545661061003730415902073732386207740933421651646506376256860660293997882211133579198469669252262819845848723186344206732162643222160986676112390432890870830010375790332450331236284492830690745462174948673946063636884954511149136521102025143267108345439926150135366998254348444696751502706616845716126372204757172806945875118331330019810399362863141535471647674268222930156796351753455865653121672852346768882519178653278479549406236648618258203166238556092691276677175518338317584071175503720815972700834203302953571665443480884834886944889542373486072177666712438890387368249873000147819686420538040376487266845469908687186722980392829371691161893174498930914571691555053701163845465975972476635022750721937106367766523587736021001892432072615072735243367355263949399098774389395313251152892811334388140798504151300833192785902832521202887135674054551764666721822190931681223663130204186470001099860518576839295600226359181254853664413834177993784001732349272073982770235956293316142364345005324082681213142685049354018789090323090774446508334355045038862763269465188279749727057445608703415589294365087987264415078209485737539651365641996283013365769775195335624408253853998757059622302124317262524039807595047014879420890984556003982714975161210577692394024720100966980244881933731018906891135352863495106137582846468045586666706762150097982728010282312971315219700872438961563790723894666245834402804230705338069110955883794814433928328145633688534908014831711124907477485458773197347883934897194843901814583599004829755882079848249771100679673126832355601825158510444427581964668775944090451249545506197820761093547219038185529803279026183840710445968166575107704271272114903628268491981247372671679629075436299340446624817034753400595223451407665385831290707190450198014538192298890244295712367708402575301355588286357937953081531870896314257580812921915583866168441215189083622138611696625437889084523803023333918563908416799295022793223236320897040400122421040648311557852303875940245824743778339240145528591006402283170666927424626196655472423517035204425875223687040483114610584170404693297804509690106778144356380133360624105959838222352067225460365309579125220142585179776810093784272334454644557705831443451427896026814582304369931635493721990881162298730393868989597184169439589955093938441422702924920017413911774910200566642097999479932353320120155641032698814755063067372045142172957477427950802279240561059183607329198097695296800546688316282335033661225731293099063683790356068513478562082342797748377949345431173219058930098030761004632296483680363314993825967066081014894741658243931128821890672648195692139007753633771090437446099973608666951026500244387146421300672383405797888081991680993959171678421796303145980403430644989077406885388766292193413959293346658786466242200447748211982555754148203428477815234108995678625911264841595568930270841516891267907068050401451250552076346663476633004263448957006544581102852650349204842436647559603460218143002578790593809522838545706321959955802066600425156055867312827374463472954249874455556697511833455496501387450920012286449632647666946965758632108893128244722796035849718474448063754507068795233297962243909879404132475680826380850131303336100841914768945838723757825634290909804252474132002585981762360988281860024080720357462389242404853149652236347601699718687963723181145318830738346949399428563115394084295412496530211145371816701911153042541398644783704566946050552492535000927385720209291800590194411636419152684720986203834612225877831180725504128213714326971384874264688715644339386891504344633070737653481851339421956106540265182512970333101090400290869106768906846426815135874919221113185615031807180198714096189548498533232196140349006783324344296061831544584466487526109897487860582225750214019254265800432400083657985237335843776874340176603589713448512400654002219984517839297901404334530601648824928829018854248578469981537972067238864325520554413237765599669328949655495484998562618635567357208084749303604565425341774298575298294411796845221933816043158289844636916448620933861988040423563952376207735006735570072567244936349073755610876051432207841055327953510547641624611256880964406496652939124430384369158648799319935367942402453012236647450742366131938091240210786000008430717067750006750680138548920805743713339286362670927234016234608358458862461718141360742710203887472945010776291116485428547434136212059256731216460307047476297775056642858284115233630532889313172159924574138096560724949714274051882341858894123280499690376538242751578566546023561482982791627456111751243700415960916441649377481255435100972965249573326342055007136167280230226734297330000858180420068799843272562201291446457933551573489284513204292381178951842703728445020562803458602280945016778687728402263689482040637896983535699102255257733684377912836335823893786617014552720738289734223341465411186588098554509926788426188062103117054083321325373689922995920166971249270202450196907634358908974882790080889614462887218260616896155454888468380770162687888581589450650667699927812132399924340829871553371350164914227116574613924513187080095933018275870544265645402328663836195904114186907551869448715596740359883943903488006173178766849130110037956632275133387034725458260505593786014598539013045735976263759376176936915086696873370255890282205550549392156452001630920431151192106116052424320966934179133805256539759342885729258167262354579442444727393344438653658120126173824224225520876963647901187651124406584719281408917900322305494805410491685971999314383680750023533247215068308929394356125567841882026558608572986556053874794970293081389279266170013411654432756633950186387311846526941605589427566343978528763878229989617204419693648293212876152882462249438439956842276776472552315964275113964544545200064228654421378177284368333914961283496803855060568352595492331315199378111938027032772648498426919135476694290185214092161340532904357723739385718923555832404143318053935151888862547388776645973858227073019021403389249523593922055863637604125905569257769103946101621478090434176703606031105582219523222770951779500476356411031804928544249401781472676544292092392723144774934520606401282221556668336988112243179032486851283399050277059384258441836318292859266660940213611732025138539002829826475623647848185555816344836693511108792601664690633865055118486927584518757549521893589608558029404188537053016984196237252320135198892196549864441451482109001459049634218920096270565116840948701152592695915751798818337912699546552151271927954808641011511840472054553390357238463662028651426932614992211450742265358097069857632975348207064051932742629205624272541920968726090607863241803005179775162301646949847937214902758452416546062893265006366313555110118273722170277390767910388344285296511497755881305909422510975866499637204126534871353151231168641090718006837461153252427615005339425036705920907336071704558394133795196432850820967205488705945967246171140047235629088087632234568325797580567925569522409251540367212179838415575593288818473664150479210430396023625645545179025954416951557797272194482410102051110581444111488950110636559321849722754855856446243892917888167353455254488546821910361162929112630439027159802120711277735299311444617198357303346250477571973176576000815980460717267991833641542253034367143650914050026056772598477145137954717138328404151701330580300355516986011217015233692295919653388264756762416738560524987806078757956181828137718704761087081685669731630646398147751104282799616383893017970692765752167554852701583061902141211227159890518774272834119848117904600340682871965668373709680931113578862433359035206623835305811570200063872613519673165698280092356341598614237063265553510904441789025800937602322597008564497098605017913442406683974408567238116210591142302231888959972829233190493061981893170510916203745775665125058931039540111678919132356037197928635168963136332367200176325690583104371006844311947577588199461817961701216386683296473913210559204063444954439942485812184955116383173367329437464477488028159692059741324934411424883327955659819302622435148809717797466127041025573737043278646767876825561883891548312928158764114432959050738994909658557535595711839805457379263082903339072362686440582645469015022378824797744181712951729458447970638046693026670622337346359396849730539528524823433283624115842642174008531517957742739529836817292681852345502469243463415466404298705305316301185566402020401266247891903961571083651952345216638391422458823692693621291862883224489143944988790024083130016329651070487527496009940409014800712708794060403740854341689139572834867699289902622217045419950752422593945380824864799188190227974926377971176765158461619130440199098109098888463208544999141429980430634306683692093240419124393170361696373793832536177690339798949753653962937103762431919243854792738065504848611518530432957485162716378933650174841939575586989497284500580612645501499793948190072182334773841050521921713737465597551666957217835766088019014461907424515181422056035679277813129338303652217107632481082771139101111560631439365839594974702287123958757556883380041223884841173407757276394706515367490764444477788798455298999597017613226230075835792204820233103344510408202064219450531372650043055048009320049363518011826804960318442781267406586684768556524053455486069193841501091030881563118639997269123376767750854296297309907868847885102582144522210980381550502230024760140718968584219726534574905427405869390089013523620696203677903253358225497176348702532100930897523362234210675045900879412600693981234880769506803998024346960252080582104448281750055330176305012150262764546575965715827986991993431991847379283726325821263930909424889311268270496359804646622836696737177428762052266893866469115112227205236137454856978246959885669105678515742173793319512795013813360591840045284812135330715201077006625119853156909851524608209355232790063826296508109079109801097238797907933353752452768846503557815418144416470257726550034412145927214439612487872828734557078102750076774861369216451628890776106216331402999495579124817938746370319388073383063156532249929117563411318408631942559973396729647433849086876424007093029569210214490325803074136759894236550675053815817677315820190628900032972083477848502721358288689020697956358096829303226850011160025679268154179073971777602566834537706498466344344299979396771226361924746932778485395914534801791777579481593677741643728146274248935662274449781393046371336613393625671757311617388876601138409772483760020428980141487292199266667719794382687384094175986369935828017468276058629160526797082881090956223240761971817256552075150383647717382948576110142695825381061458547369053803940626322656988349201205437180003675579503683605711685591593756770533530819717908219956041765814095430955360921855492451769481653394978058444166584126611171853016396745954032390279660155810981961054769552312692503044237927470079477356590300125588132957925764143896702463043065605320508868353610658763284890403534002922229156967372660281331887113410278819633023995124729238063589008305722691546235313499160347705222223777173942233306419127380715121254475100165118286896262171534853041642157850003214954960216892077971863028180331840642176775400043196567448472742104535195186825408375070705107469863251660005687218760950903287223393101656219199566187307942588054771793635338041983187632937398117700201700270597376739552817120999887843035309897318705794101953182348852820275323514752373433672735785276692101267186748796618484518392149610622697103340080361914984862678592707323416069853183344004123991753883552688778459793394175676556058721861041282059339557896157566834728017150123683581192420034013235868931011660646356850967811184539497251688161155986697307668221686691193311432913203670789784965988033469237168926659604874668036384003751480344750835468878155925230261604278578106368596485874634363974705824898745923249416895162685391636786408569338564674323126758329296749452323790900214515115543326751328693579391785074762353476423181911339936037795680856882791727579236541378389895349224457804006618496649806114157848598685778031678146243373055424618214390970733682735147912809517968359303485809671370573245629850620454765043966820820986034653603583740651451209262891959114114596759614439395487919823635053911724160115683888392207681854733877831685123822995819520738160556534469998642979057538064004336147954158127221591046088578603882442968847623966076487875788884522315432208874267727705360885017851838642480780459574864146818019437368761184842013970687472515697054541945595993519243494610877385230626176431244794570585309128259911732580174264773400858509850572050783270343169032674228273694526045950918198503897633809493036928111551041904918145324033598034548934617478732138794338230098790871464078133572159249267095376903323217560169359071611661884840405111676123323742808741613265966814134573766806737248049951385699000547302304879385638499462534822833821718034231628149286860377009831598566237847716356492575072740152134221519322230065403072901188283505205870181733668427394548558860858843626308101538234875960866348309989717781368678484021606522393022194634001443064919250694164279571923735390197784696129505811790295497911120409537833972529794148387813896454666229984291520239075378794672512574171473428794273091387162759772868964483711108629869727342880161024607547636853695672073052114051869455719430217785709646421888762913919887969250012580220155997655529024295784434214557861972077057038266556243878136617927661125190018563553102687253449387541058725459973414435209738384442400924733163036595234815325989133904729900310953067302441214187880222241030571817824831238477673229792389432780064517834570582732228547707045958136673306911416473112958324460777937794689991183921906288168051286736429253011672172512355778175663104479837036127479222730065585628854731007796189688007248195068387103148534248097828572634456849517699409191123944605006891614549555185165039037821620075315384040619377776279041752901849177106630207959506284551531580650306814402442604163943891916531370899833671331796589480372903667321942718212448837719518116849207200822370263558969834244518071917165089354433217092390320639700210505172866700308453728121337270539691125270948493256291254026031284795060043214451528688130045832737342316899095247399891656916651071858230929488080874675080263688252265537072944264369337844782165917551193552043527497654172366054461971894361901691588819684160586364686405603994872782997429891126893210072993329223577150158471597962773161614726356087095350819859794487927691838573926418569874449412557985397941939022017215723192422362656394120263086245170977172944011960810867947216011151002156686046606493527151683486289668069982190836966810782416492648520869004689800571459725096051188461229679823705668582405665491392046408050598177502086929630551507054901885351946851431913723769026708502847040280685197456765188549912527391906250078544961157347872919567979730498312546978657862079455765867661085477155182137814613813131861112317684201956475215860938041536511622257986134409850417292806109658482991068992600753248543598227222263048957656421163915823403425562638642735184278965030954549115776737481697773186758824616196525409393824741009363384063468993970345075688947777205580450928998810865873345702327828319690870529815375504901276599182005414255434063776859091886206054872201531817390983179491844995962460040426077419204482034733764002081116620949319429696698805742411319120197557953526784687528554689781522578159135474219521860220718894576737680436782945009803397639733245567642854181813180884019293771760078417683369816119965137308257038793221398591928942466220218699296089295300057196777791230488582487394966609370418786619339943729142640863518217053557127927165595582877051482021100264035708306423596099781822310950252742219449793774073873126457600198068451247404497316023552637361169304873036269758207529462744738591596180095525658178918706554223880231094363360890063326585715565954587107314833761574622277872653386078549446704961497762882740308459393443210836908337331805184294741243985684290383467321318625124346676910088544965399137152321362085770094069423827922321202338687358473436934149817746925079049981991418818419673907367480064868527048158523215448029251081781066821027697669625256033272147440435158230922042706892361634673728919430855008332377290238413010301458935846841923943959922616204551025952452880103775095260537579214056124484870727743029539854796469029164060940188403445830752454693506151459364702970297634934323110496633589697647730926671283652779471585578033543304238050544519599917753937078485622631926802200928844574097237839925273287433672393824615050482388731793234833120512733139431500333479691373390994059722890535769786792540523515433644334540248762173466865672766863155178978455483917110002340126688856673058187188902945773180601093823428125138752709809455553845340408355005156942935521183938888024633921245700333205094307927747133759651555917905947463096465142114674637987086271570513976968597865536065525213837588878999689257332259550889446859987687765603009235958754790122272728209947918284832351710946559049382664542370959100967926164205272577901720870358628940585959453476293102894511644207145859049424980835961419272198293755055165727604770222403908078470788587392475403759598010499678368048038784867954893360742005412456715677495341098573788653505190576774679257700184412316831453859013703623206222749457661653147661005078975635506076681010301124700557705515195169423117100613180118575014138149839268596948015831156764122701966695723620494041386295996409124900770913779997924088594376803446686193481455533351960635884638273162732652622514243657003742947069204602182834105145099491028643828525922210213470229765104890038049771588567096165939936283855349139366817442988095809630058370965515197051687249029083996857751512803973727836021949299297198306338126395335197136284045507052036072935713562084796776149404091854270219592794865101087863230213921150765701315887041439712065522130755775335969693369654058845614250402626146251564291029187034521244336434993743069589755313489302597772846863658338033855567632632586008733247074153987414354213591531270772460685997370649502149171220671832849924772313687837676708265624368412121731054178789034014311326280541443116883423828816586728925308278248807622151736050455611583905126611280580897756158461154929410041666281539606941120159984726765023379737629206410727360647455543719596135975559652178080104751825906651259659999647253332684315868026470244738445335112966606781751652505521784449123266575764665884707257874711632987176444009579951707849029204528321773737472475860619129624470159338674446439215348286478302462822935237148610125019321720215243885965495779378045582946209404646737660175290094900900032597725662325285193229437519669801300713741931195789450167745297483320691824695019931053157749694260034266617905856161258576097927238196424670140208603805197632189471971807955629097340362181349404741342944394994932128047339710082069268922108837595529924609600264811727550929187829790838736047447364961272749585263700890603263519607347899898646315194317812551446940413003031706825293943166851011103475911621381850658675975124911843758542253421638857374289883729075201551688421729157948869123038383917819552363970094653008604404684309129468892875776123385372327765199839747775507821254927649094861319519775499660314282024748025805180252495568724359170312899777233928787749180331507946207282891764632025965760371598833473558442344176683041949164479508439038478694454463826257637707909586805856381027382887949984263105054895163313506398064538971096808716898128334605927392420203853560469069875657528664242694644311221554878882040825012846851231249333181650267061047156027528225340510398598068240530423397378123066040260570298694417074910753561658890151009355840927627109438798719252698575466291895092131986735858870231638937527925130369002792939279884663549105659914047363030490026329902183661593562483866368879260229912627388383998284148083212210785671556697280508616768125406551724408552016608259495729548612052225985579347839954628268513605053032230869359142856133326519106632817596334411041957500796655712568261155224801004812679493696749742093835731820800561277769890638246236497771877228286593753389718066140167322364187059973401929348133832863203815307841956032956153753774421021504938136105704718374339860120368905247179409375972946233405682281688197104295917253748745979403539652490412660149318119587536718031450422313554154822041942178942919714918818276027007240492155994445101703053353188248012615307651757591986155707413713882007476071898747997016141671510240592877033192639119802269472131393914389816208791864255628474744522518528547065217165168485882536933685073609941023098400127779781580748959191039635746884101714528738439205343928348000573492739377785050576232690563289901135554660488839299151319215467110314903900596553573718084120714957698395405953332324792766293530957048082144545034238871173391014851512291637992785198986762489195880013140162815130741305372364823077969361180899285061419950631122961367804490825452737197113187310365315374045239667276703581318482825309355084577639545637223350023135312940178888218083993520699022951021244269012834494890359214985378511959271508899721104547920967218634951672427154618238893284626842059012593026194720943863995000396202871068218396955159556121076722683287045224487094475864007524882307573187444308028421830358183003125069737343477718703653430296585479196674389475479334186010150121124561311452833043910904919055969456407622389855082613632671521993351311784232797833661537697400974690505665284245252935706569289201872595566161814665326179362797988111887551943785831095236838956293732686146631097386792712017885880400247535189045529538328132964247246380415973000365836373608430363228056139028008998960625826139724812145254864816223174009227032823850807303166331055796548891999716841697484562346985162372320574716388671977776552863841929146711970361847064976996317449451155201525527666405900315218402439986716865014944809596225325405672968238809807984148371013008114212059701216137273587837898182526464762025150197201083660275889395523922893999014661154241123337927939266626174084658562569592318838008558731507366756078367230960778294733710955680819990128204022053803489450802512697291587064928263975459929712920836681260533445213870054433167512056810040678582726341592242917649615474718394900227443206849651737915174312778970427037373001043653096206379163734986235401772060000497906789265218856119744154975191401697909995688453653173890635797386988896934902613605759378622637578326986514104763153158867220909127256232261646829812140639888460095779721415013610834719406952295264027606741669410184496088790126607491474017310956479186781269630701364037479052759824466576157843879416523952112153067736232773754075369891205507726274349113579796943170124126827395846371018323396361201072393141646446159037514287684530364922695689593785252999593149244944809796277698535058904586881466122648746671183974415776289122138128417379266494113175277432727744121095898110150487542139499825907344510944523715307453283684305329711201508000231102134883219320652130153498099828792939077327349717925103193793074370327764717086751422982544669458727785434610274285922285503374793629208444253867331138840423175535237438602184242011375921244212624065561143132440140250543560974558647074048193024492732299209253050858727825706911831201541678665065423314413298623081893722154195756804723336278227008457575420663083065891137130421307900870239378355866451737488079902029803466653215974894764972662675822994248823316231770786041655842352783012036870187223091298846434136297743905417901927411885955830496369553853006640679121959090777864749880922361487656797708833719426597843348877111923048240091812228988418081808593029486992790176081223530910471935319730938994851931807558584987743290605241799539414381243767001043284103346610143265758452058401570593227028459059660060195101057228998631521080780215911575909979526495288272227249765897496909631976401119540557923271289636859591517081507934505669609818457440541483000019248862153221286228583574630017991072121757811133921357994095298383646680928546258745455051297265494019732892597308338040081721054962384215602958338981678978196439311783580018442756435928333721673923558560141919482260410930802419831919810598065184455892421597807146905764229823024359006123093331193324538345339060907339332910675259954894639219730356796193829591499533710670956887031280491457121173973738227613183760333449536255091749038040770276094659044326264892011006483438033955758406000106755917110752889845068028761834375295144959791590874085976145876093283163997801858142849571407370268343019747588839397063179033519208078059764906272203660315619518394872106561801455281452884715592477390855205451939162743219317540514606093528610263534986774657083255608326577592029297781191628607616270619808520840683440631477985868245577653508070311018405140915694720644336759169865172936564885648102068895029023404323208320779535365645045212181817388047837536301610936658210558722065819468609940154096716113288590214139741799869436842000655842458558809068878260605899449957592639769593272610576207012535486906524666511051131451725038113000295918702424620140452500441353988558313999667503626758912681778786380890701731171665043968096765601053255452374695464249689894997327181282055848114227466924713380239939709114523585118263377484674053998758828699347160827015972602085348265267238888413287712815485585822030544764209853981485121964616068101899301995322582976889407793685085957383723550979911375655589556410993067195683861347197819838391846948851610911550606807445804781781281679715850380302635458583006590083173782769439668287464829830326145712225506225393398662976196273295733692766983390192629168395424884781823019906009817180708286821960692684713395374971547000917939456120016782190821009833891419556679859189605722171378342862205102267376963568348833344002865907176410395656087229690620693156430882733797476067142011045628806833333394920642419711041547527514981569869233210746658444972224440494833078887167032770850901161012848919872598718743926852029196557860654253877523826417386285051471913499385690829520652223861025442714877795042126761838922398193856100736625952815236252976214315780878183053591573226205483061125110328605804352789095795534430187366472866222756022617406124941296693676588359392942880821440123848449371503515445538158054941913609024359758291719995379429649907627183746046803365102436280407893656687801470270448734184076142923639356293882397738370213895572837062914784902465486115383560916888289401219427533349346823401394383933257585068103877115039943359373969290645592629452063898594125358691963842756508070664496923155206230031162641194043165737529196827301184070971597994328347388921896404144287101794256972130373683580416362486782921986387506800512460352316431350904827890946005172730443785649187226086478077886223825560291364793694644041758874706246924798712531112069289235394472839020083980369326223717929428537292874098861475777571619402345904000223951565962879083173169753705473689118290185857692302655861185205566738409626698072217299093921713392579158242436319300265306109990970091017273162338940290155949102821176298368788674000025095070912744416894134784544116646946733203625987844615121468934730749888941699578431117274124289558225512534975830885493378335073836173207252855844033649418297249655977777648324274772538396097509160895310255210661173041459131234859527589387146983220446198943030730662469589006175761475867383287718652272241714701861900919140367150114270085481944330950411408544766420817771874340349106841045063793569494738231419329438417074572992995073875693796353485970118507578754894031116955385041792230529590401896063773156120712664587832629688455104809830189906158468297096352373497423701684831336620807686278871361051307003789816282799995369141712411052055296710650741503245990891575378182147585291843357471367127898409957029035801198530074272970363288929678894864520907807687619385425201543225591779420040575681685874060711025851027842169308058897085220324937892608981013311199277777695175810477669558672451240274083324629820663147941609835801973290080935189804418538148083912008584275593404395717976565213403778993425697505020637077102419975643253564359020971124638632585279374110473698416597957678442811945891755324442211303888563519086745359957597750356330337736956828940799799132359589968913622024458393603679233111654788052398638862858357592779484125988753627231662201128752895840041451435189388672424080905799975173937116291605900547680696719355665465637009099060217190866521313960273694799944182561666508022596344470706467774381696135527700021256736019336882376576852041311855393062300185918581003669321353080767534303444864615043417453543172916982672100882693556366491174810960753426111035774546247713755981711762186118770782444289637031375582546596117177016387145009691798771394607824510911188450975437877753113156980346461374577693435286255775014870843372998266973006088179961725279349864662264486522584008569091228247403771792289779429472807860251342283460436841580852750974710960790947415036882470955438580420479661695539489554923732124156760492122148767322624491344525092254635333337271566459341496437383745489367427292581576935354394402245244551202256075947403383207572433164048509877152952688297873802800899745641770225050099426733552114083445817441636120927067254616758388287602791578873107036228082040993368627776222833229835234481951884024808826688991414179285992406429846246903383809028749898148364142810432058138950662015612873072737418782168976256149850122977367941847716450365262421480434255726386530126201734394318332880531914050099731298830969618973434173858739506343029480172169669166896322226535214171914610809712889108472008117339593164272221373383752909255536948930597679594882653485299526773195049684347973280514369508247124332520037207686007531765738430907380288624147289527449858699880859082258163780666618036654835358497047981516607965944145973007351264711430256390034520036328293606249638087241200715571835259387896165870618959001017808831434809905109343739127504834717533068996778956114704239851208776691800012713651684716007911198868617164053929308835436185932180804272910646504745629724907697171713533306088617225269073381025064171502473687208869103229639074509577923474909819638718524962997183662212472590204005540932461570216942097188038845533170198897302545731695312212494043048563695906459984405075413171370668773111996468992687486822983099884436039104558601218101395559812774558846322929794465486667554523225229141429649577917591622736748567808169141980636912222076581557718732854391458010835360731343670459440303698308446428944656305531505652765949280798447617475620895913622170315004431033320930895325812207150368797077208111010984033315066186644701430949359187794534493885034102856625448984739667501044006017468610153890347815884519690219055912244045211943550955334992102138836636928674314324208210584963442189954810226360712710299564347060364902430005514931734580463414164464524690155170635251951814344274050112288885769343525294450534175682004213513589366855499670446422305577082271415841846285007382306699104635793471983094767620825860251223227270251308689152689892021982924687634698675033496289950154813142503720387110738585268233997159096410190788597433383796938229690471502471948905774815190954330761410084872311943594287660143990323114684214177489104072237659843837074855313892645809835221126066918557638819372624596158597353944012974904131053976207011774933682328243983739429781685472795161887846808839764133880396096780256164031520403364520080317874599298701931060133181725275452245431354204830936332740716559540989483810049162169075030282133816566410643734830843535402256332991393662519163662950427848748198845793964974412221872553274164631289564470336501667489273418047781600489240503316899362654469837319035934450592690352244853474136270134462178461781504747164991617319416926583600653681355834185722658727945148939215488574766441474854264094539309671883622392512926851369937616646167752991249137041157368462412108798611171525213352076032765680744620782585178179581922782771784888468900685761468889919329255296572983739060861120861085880261662763693332259793713104946953927663176326584811692682386680539180001524557153077878491584707290800301071082145211893363314224183058279930453677843822038525529831712917784570448127172632115760840046485493671858565119303019965664075732555114080040792188483973854199717514058629468761740836212836045384021171129272448008278505407494616615053756556035804547153968536694523758551000423593956270588889500373298602065215065962585985252410279740184497122912370722332431456498129207529903476740101312201344801827801873546176506188371320563129421736889004038487477525277047067952486890121037987042262873454343020857320102872973781847552055597652809386498610103415201978759581329524927353755680632193473468619270877952066196939976078784725591033930564583810262843072640700211326938064665751719760343851819031893265541815006112791305830213933434611440724529103098423518695279126813714467727023282231858405332172017941327906600429559646476175578878652766642373581574634481591049052704162220134258272284149465864657818193529801976980533753710268985006260317511682608525567043721643690170098231100048422930621629798469467747449587373680639240399647803293957970059678092968486378183159198133014844672901058704769597235266652666538548775622484626655657445252908989497446258849985740039051274174932153744835887543256176276498586194230563589134297671628920811232933327874039632201645982636195137481385530243339068016212544847865697058797959742362499403236333578100180451651106888269942714034858826112985668698265119232266740688885678504312086587762878121151491125052089137808008107637609176359680265552734833343574067095272236291091480587941061123674468561147922449196402930676363092046420968304111644480831552287322664134209024137500153003500866529747563544436958793997308802739145654899019498554068026148921134215783920420175437735545275669305156327153398451499082485039483102160951108427498364420622205099052762328552037785291721761270417648778108080970261651550810997359860385999867067756122303497657939766722954046656897639582221936164921355903976282854991612746232617221664263548773788101459742681116922136996073083557530728758925554014273435391534439164301057353633509342960706167001619224089503942833458106893062105114335803664588802536125649518444318062171194355265482486968825712341207385689969725531296784681118903758258081301862221197566239398363508680691068124326484632217433142290886998255245150665243938025384403105153191056594909881899567171175853109775778176453432188312998392788396378256633069038340572947401556347613099311977094412295701332213011359592317444176452487391587396153197867650367995574722218449832576096376087882648845934087153948600369766941053839989302505674898811309812116651780301460237190792723865638060965657119774560697442342666159900159321906886239658290346425584796709375229517853902182056654915247741578070960590309811905712987059435466128542229630790404907595122618372990633827189110306076214933043064964078351299356678386152401619044226119956652523502494259421543779620526289186845765298158746678990710354155427033920258853857489874564771295342710955879710214126491352860847881407808628448324563557257641840534902270375497010696503808921504104746198712235127242231503372942782997373529438349369056237189672276534981302086513451944556030424714242815825257480023960048524906306445300002167233696391000343900425922630254202323129056247636233313422545713710251235162580741276430883605401846809608287458666009526864165380985560539973159245145350927321231205947191069424000810823720022338495172964397367587906528283422509511813764452913800812350900020881076926367276103721599339198333348471110179741922735146901908897645670649650309539681333330582178829032545787792951041029025166979367910046437998646045874989213988673446289998531392849011141632887314796491272317404859048939335595039230386667154721101530651378293322403491014187080606899346565765462524080816253398430944691295615973376791217720944852252848024171101346649728455955768732494222364701476665030725551182927336630109500446463230116943495884321463992975586804163329246806381111136012760880049596099043036804484618873561856290667023402127902026022224294033686610952276898040000666826925218038861323967310226348642968512685704979689776481971576268553488100089577101763528585989557490280220614784470654451278831169972394812389324194672941661693959258221537942733573344675726992766434640120189035595181417373203347144205237105575749469783185707855998346016601525730612573512989528916598117603900540759056435577089653344627975203405426464986342673178663257170530839425525124763227467472544087197024782507725628223262209086325847924604778379630482729603044662598401042462490569597362325136831314688024930402507005275618941488252668067359428787184297781575354801700545316507867566556670402815699987903338367082462793475480523860846598895818511541206706631616018330784281274643445554221413320803764989715146800302356575280403005483553993338497873074716101354948600084487228623966681688393339019799658546571334244410666419248622993500328029026691963333023327662296900599307669414053461806175665162755126987885361246214752688774353634082095355215271059494241760605588351784315124118167540835337707435710432800604343855418852705813257077870918602347715583379969482977871536110729143351121945489232512984211548612306371659200001427747255386017740736370347594418012830647051706997356658404287584712960928700041680764217683099709929398235925317902341351113244761922995713708168896790764067147254265307029717230973336583536926262502256760685445424291149571833773055236321286582340626213722617058842277258057724898740379428479706426086650811384693631576595875865845649911849823337130556376573508296135506171116537080047073868030217545920838674831466505577989417372990667570715403602557058082678052768757307852390747535743217887030795702520600220407367213688670743935873412126250941626346758927160649971537641851755853372660161544735187839115055656072437335102822707464668671863015870777863347651542050403146263449479751103399805924727863342251852832715794568516977139723736660657644896554100801467951751090435640062958928452558766937588371712875042650700416932072741239602401046019122110746761150923360335594883162459821358817125789281824133090445246752098376913713089739044746753172408807347640930529077448692133175478818153872844770840334112880339267395969806297738672783106281633642310475793210688274798475060849449336095691988075478183494322348164411852504020729033437227735503286661866736149865594326050373999014209676963919791783868698059661734365722168244756959690700160270096720163361207445836278904922777488838672765651836894900035024978956241694642693767842359874543728135121078303548333681431027309397122180114804156292852485803127499395578695349816768647178718579042645604552538691568269066723018199034580008660733155614780556875559178520677004368781878600865982832967857351570714520701311200511213158156998418096953491982653805433280426045973484927075376254258394027084040968696135020600586626921771099073029042468965419009403278118294907977823311279215735840918007274880638417817361294799974335472038445504164112024989805798571892280820496601416749349782255711099396150871812464749684188810766139290470904510986235084873204873850644443252113674341985355755072134368570330835007763480877440627212528588872657279304917967797588991695097560520723183415551481361465764666051511554239634655167659645321986694579592748995193342392348495175423308661263994309653529467594931659720229568680237445435144789389646964310102060135339413621363737804402834848170239234049834328335311489649033481229461689105612208038936073121712526688464582595064371649255115588956041316786073741927686922796737656230238192943175081317383340418320038142245586321418423985802823698072104425635812592102317656561735362069377201853990517090208556205258420126651350819980375424793553644538106314990262624196306778029340055709629947681598379680993616377187897089466393853020062982970465151978497371905835364874492631991731836283956246279250292606114574255808147576989984678308399396138751741916101480427804568650601699739932327893871508795662146320821309501873862844340616699305886883438739687562407701709867914942994216312939064320497640355043991342706531473227831317972083534318445524297608383431955313214590955489666044782202893984970025283467115764533355940426911543846879197722559616149350818413852318688023084477989623758797103611528343785911061532554444022861579841668834787425183548283009736035702448922060978431418711273783491688858523032218202170962012440786110683493887471771675258385404090360810197813387418695119500269298251420902809559051850291643274665931233690467005494912670396206337032331297869107984937108554740411790273536780737594722211831979626473927745397468833893371060233675503503200953333141756884237435118032047381209906457842821897239212248464910929094351137574675486721769967554195494275088167549892502066840266446670405791558686625258488122081369160447910520715207370000421946666108053489744792741139694988575854951788269639971607212279963296691391115985530015664717771857821065656477753331311689128275904073213691078366131595946874312138378412235132853826244910680618500041901283682154416216975394628204071654366707618705066377139083407129955979557676277724210230982720281799347973126820226470923295418290203940989368363125532368387447194944464531010529177993739929340434442628800815721741231141368156551921583815924559780165395688256747179619134821032114437507409337886767295667018907233416034544311548462310991185779256158104390920414724853221271227576825716632394047826652948486268390276222258063690356797378682492375839109050073379203095136455831872274142196055209133762564554689884517038151178387279423014081645621891525769679802954077435762839014419351677701726091278055904019001174975858307158832195348319558830809631741456504920583571881048226473812958943685462414997953195525666530952841824858317195840219880877618900220430176587599049432905280655942686201208062450171044897140847006472208078105001362778505747110007025463710702806369313751207662449028251232923433874227136318277189896634716894555041115150031102926971772760837245542661367148468450592649280588165928397536365979316148601770972200029128676510447018272033255215285651482090478746542985795833972252997909928714857047467567350253748927192233986237654306986074683297471873362108787035080431419566359035218250784184395938394720779368255392675680424001871754422799249653670121963759339960976649504261591565856514909358986521670565640653793878225181323945677636611257073243557217560392294037312605561177413532054398018900561133984006050542770841725015342911553358627074742763164759906741955124359412766412668703614350056122516586926988108643001586983302071639019712701438411520695289650099869409265327221436966042248285347264366728375381737276673852659416846228297761767591221659019799951185741947382574968596252995931187496596629424431953367545684946545591164573017903110315047373193810317887450205144342615644277628921419922765761017950115566686604328402996509271290234494242690633128618462617859504757711616529939921404168374253464773474437813426077877883934074219445383831240942359981097413785859871469612210589958990623106069545007646574279148400355839403985552065832887567276405003167148840383341244802504643108186141432647705630023120673919529857979569440425841463081468322422659541488455617175809638343297580614397268516050075110758207435569985292176795873483316497623085304180117936716258971243303334405988228882298707664556628211981239014696476920703527370681314238681341996314790306937617964563679461662032304550330110914192390864569331225914414602470992537899494487626650503583945510706782095345436055772338392680894874743387517392281827651211756442657879417157859043531358773397006325540288544612387710173728010879899644167667700826860838695569340915735573011501706629485111727077111356424633147813123482701648160320277040630090366284095206672629458477920273416987516250173578495121662225595509573427721148789045617371891696892014128402596967723971966908727202052243621664486420974508724092501468334057434263734420382748201422845204033262915911262533757173654960303515541386571857984824067872315880156940221756437137878911418887463482446949586749668884805926825233770757634108587426257830973619281924074096574057653988465917133757365177198837558255155957773224466574980374677920664634401691087360679484561361690941698106570780246391314544778682302579714862951604259357643134403186770536572071769615131458805690599595473936431584395839602145597864890238061640534064865308009944816560559100122254757379436701456800747374324897607326355945915248785586727340925032359226814965372047069688350089996367921413094267773842260576243332532411562426279284280602840502756940775445000895329932577701090790106432842897289344595980117060610815697348491487092696402453767724947888251233555375803667690811473057085943407025744251492030288092860753858131806048686643036964273502959118793063453419907703987360437071662970153442583327663289617610495844760311135089971164370876299848664984450201542262423170733701906071188535142729305596068846082414502690690150750410969118645739104107988316165384117968458509897406724631525793157861070984524805921975451762675590508598153898887186647953305923830400613479225629621229117718163502171653165317155725692982147143304817900950133956959104495622760609258147157366941538358189168983464092384930102651084453506460034202646565619098942310153868200607703402114408929404643795235076225246785563789177340429078531185578343360990824245360043843796971370760981412328475364048020209961904774651833293979300024639662841341889447170667563558077752884702417204905563489614427207763146789146294969267719573688762734586655807113723370021211916268495366105545895831531382474276491687608300029274935443345595126114767996356401586932484059527749328401993016544850075198389581709410942542454745823887627945568182035894939084990959097533583139454754934488758129117497429984056191411289492263755178114747955869707995425261679966811302158327633158205742138499205418228817134695677515580097106039775146595958346291363854623689532305680678332821996484880715282416831736399665460370419827913441766829243592166034430383376050584250637107457841786508524517295354486689345642402143572407247761214282580353830497280796443528037022251893486835997571278670205201846954553366431829442786392556419633078871177875577751446763541801702683199052912800155692839709389290948750654883083868754001902158741557251184859939792358636927002200413920876073634658102739295884912264845134652414170262477090805877587788245320834764461135946723260159828938326583585253479752736524988349767044432321089105808100002347103751925332339515783736543004344832863594064495359576414002959745040753375968803520521152560507855154908256266303755459828467580429641418896018446458972011562488596398390575914019617766418171318733204641172596339594680833585463731502065649986669278255823701151492760894387229905814942865299578020669471776712712780824375468070103663268079490210430912106679468325608351384847444734640473670253091050368189114336872954443960602966460828024959348167571383971440043440203194663821965988207937896694543363595316908409130888584257537890681563484479440909553555906785869508125513665106290514966722381456510532877498023155556924962892471506194397631576329936232855315938334575047561826253143879780616262020867721100139879835064311496851343693835374098662452469505911747072033435784178013296000252312978331589823545287888806801164635791511654183451760853195223006601078549886331444952775427337737044080385460639324182106159736860690578209199765360347453843182866264088176732051490723170753331521059847484303829876024583779032425144603195319229198915227589899792205441971877703305093417650384330282201549057370562397197231696511987753807973297527234981951214836495117560358039847313328568835774354454039473867177801680047542150557758398140115965148845111327455472969440119755301136139125754407384562918315872048367879026792116028679451998071793058539518151092001657000926591318431731687748626098479305893747757747508522207086061705560668052738489521674354386256841706807029241909357710667404411546566932551031710027450885187359099099188364095301033288994252567059976412847629667978658878386078877000732495147015572022699815811467933719756076870526517988353554592034004828443339530211906620696114089967279388077291223125169472147429596406536753212248446758927279834507580874407087258568910781711228816171943427392496796111607130356327004376295954737275106172282049098161050489293084069972880037828305873415493625453809073397277849746136872918194430968787570534401310412948670667078806489384380506282675036279864017047088500901970418280900246172806122942571712228732616002498997864298260221411239442048564994051020232477694182527550397504100423076137986530373694352740713357474845393503452657330282226505075448885079749745244041956998091609325360152310596272648961307528614363366935446394269170832192743460501101854898097198442554154498083828745234266326556995996466191513274750904221640425876361929596884734075521914743978943067402372722396839570832643292772867714177800767594280173975295152829091254088723685962126532793229043595635113027378625408772091130585361052577265625609377169716465609501978773371211278756435452491723086215121034239588106819835961684391696332430315229364473060204357986609076917738417842516231497996444539096752975199293688408809199103146199029356421164821770794576463609194385016594155040243486785243284217620042897737978332621561144210404308884155196467512277282524023762513638146768104174441137785007327678609519448288778131250450808679429386906396134980032537579851672844271538083704024135743874574814090049703311485905901546854391359592871504713192743959167907836935116319669917416222748518195340637955201168016019648824200830398101384960114297937270637894092716287635750370380337233327379730600162058845295672040562446690840206014916480792891127904716082909087801455671935510382531299771687932614390658219263984626068216925748653778374430008781747357709774147229500361850380060057692559241707863391461705753281364537071140099705876080602454446082374680151900892751370745699495522346430448992257362082069988776025044798868957017241880028190742151883278442102994307958482338736985117363167422648747827204975432545847395459124354615634460712463647793020491201484544207728790977906563747576723808519299895991698795308382313337412895960869414171237309904373681705204894109078574772257626454079713190245232149087803002298191787490948372643887684579041666992669253770132312985839354578499944783266367453929314131544935467115115004060778739784580405041124910030451659120269569446989639174539632641376563354107296494454236692902988564579193271939001645096702733516164756451082984207190314904387549217497141613975605497233613720638969744266588851856246793644664305274511712903190212833999278149125442642255158672702481249101262119278204064109307538449695841217154501466283615905299998990929849566794759242476093130163839194024672889553854838235282724931477829511039942033023161482970739902738918632345890539090519023080417995529463900926898707855352196345352040125953270876620006692081234764207614886360450387525299965042059665276947362352898219797730499935096740595223992416244718636015641272249650789013544050071053775476426011852160271731064090413231977712003524188596479285658969386857403990672180608311203261885647310621500460739523865049146126926662148663595655768881666837528607809004921719890707228528064569478644125274858680572808396220366880359561286965087265132118048361826434819159092657743292890504092720037689829316910113524583127669689841457489830160259838684287414658903527516928372406619720067264656339018282027604465484592173989191958960156611344853733409631989680327567641438328368855735206748628483081671051833379360281469573964646208589912324362109632612882640385004217974064435391037003417964321012776044337356125410218400532393583261947889989295700224218193149693802306460762695169943864106250573410259422091017318022341918949154654738346554498111161136475883059067824870704682981845975739986836710379107956163272514116901364119411113025844185355083360492209546835397845486150483066901010638112185190559326236647734598092468180717346515358845099933725001543482957525363048909538053517619719232204882283524275733313435647719527025796696019788181587245586477836331675661505623479167513779812983430126272134169184764735846385275181802625721301275456765732727253546258739188380714071538630494089154610260929125346663290926730337914454873368319905396773565993758389670080356141063764279605857536182963318350675584508684132063302718801697408028098962498713104453483113411338727794995474826520497690620619320704988450595345524337174918384650039683272058926248120635739743162595194192785764784876972781790744602986244215000006974311395124084604206896015297119964084439873284426413372018656435081476373051489351202826136345477443894245541177024277105135799471789094008296734589878400781561920537863217868770314766850466668110248598780309973884491678433123066143295031736708225491317100778369287196079958561443919727228945654183686968425723258951536298454152745362992169442929420619718753937002504405879208318995581503324354224233165887038947121869961041060608811292397276113139214560780193452080536646200028197501267025997685250051700119945042262484230364765804625052198908267363637040135898409324468157877515930669714105296102497101689715715700485034228273109694573779578332336269370683531271379337752833305491382302227172680531644237114484492942726742100593066087624801577295009512107463879387501949623144181895997354901210958479141520689940705364512980549140763924823829982034366610702108165678323372791799837533217045034285630118807799978957443328318733983054274044355782242697426872356741142366554565367913588688360467185991576178832607478458985559742785154228948397742652922343941756540652043285456327497391391123673051962852472242434331884023854601986846701687058129286083356994594489362835155716720262125941802517112202310324547512658235420041361004720238317755182982977945134772667284871568422150114630627927995046745511592142031719874961781293081679666738972602776285973347928090022677898262051704590079565064200292832220945319477305461906867229280681826892998841613655165888691542726409916297516241766067335553417085411741791176314374856193655749611076986754148407800980651564419137716637091833206701272991805863573837510522328729757610697563875603615094532728239288460540395079072574303137378734770436215814688811749318951209158140400304937701137889022879962736723528085287723690946203054573804854989291033103307874480126494424980313930395273010087864113702447076487550284068812030360432713116470055770761430271533339145814284649595725210638319392730018403979621781158637625720468793536232213365034083910652442837745975865385089914414999978559118864952000957397941852704750542284062842637159550451568122932112747409528628753378841136131583725342771435488201264213334669062745667569870157322446368804869799558252311478033907321293643566429181629254704152994203860639572820804031055862154513508740056045926114843258984200932380596992912254652459475188120054720190993646261959651229704671649653192188462135226174160713826719710513499311728151243907215389622777861772283451475917585914854967901777751188489566467372082425551427458526259006912579029579733160845490061061322939039340603093090541405814396643117819130405201027827230625320742149671291505464619152779099051491759093543749491190246584408381938313748531420494307445380145723465417999677476516293289733557426183683503050003094166282596793981700580718265603579230861903068467095622929159048318716056821152262984103284955271458783567472448500303386250896751900222471875678728295799596160192647887405995512368750580428855628470543935090884669903808543057869457212564260224686488204869860800855028416653733107648578230391871727853885079050356369399795396923221627257574952653904094905606937239195673862531278423902455455521170496646592116361063862606902308327873212746719865098566724821625863523089465745378124551062343637987176704913626561310813521276531732876914257722329384741197868531746464305429543683229805391211175038517680901958134521467997621282426220085184379612747475990408295598570907991633805151135675429753534603032481255643039004004101969689053816816329617339379250358679018550600682003408773132636341725052312895443801551372021438488463014236292184683102405368308137787237761374054870866641138242499789166117461842160021993162144813641829087436349418108443025014063138470525521702661625346704665120937999840907766816833871802033051219558143301195490266602749611229275583459895100531881225795935906266069799147066471936318277215881108153098076747615906346075984712594659428854667960393341858406825366872063469388171533084556470315770574105937104496812007171765708015437750191831384963861158569192454637098584648416469447269500537022528278121724719041914194698580524293305368351506027973719725601523047380330404281152517880236729156734300107493742794448699672170100678291988374575196116667507648692794681108148678569077869660415637483522851826772787560570515651816419162305532682422988936003072242095330301957231296531840689776096954870497196986344767109792552268031826650505594474615858695291554333662436027853996009789598342384424714348851224967182981188941994037817117595753017458536110800069054437639591860918982909220441916296834857993494426085430573368939756844363195109867723934097986737382708247960332134302707108886778081265065429436687987129872415145600425742992428033084177302818535049433068540241008775582459286619009329138533367047091177976596559841136213599221287818131900804481619718249835717252694767607719913556149664915276644486370429526884059328006019314654251523146979216078509200961843676414387181553064369719555689187394630121945717707504287856689546958420886798075186706763478403400666949488577212301184246345850989105364164863506451141502085789661489731846555601840754098870117714347817159627069277071234727317436222614650469011673420352737332930121145360795215239776944288440097205340518518615492399299977223841771963020111066900025034264079451028307947760621084195764633909219275014705518886527840223612148185813423520649966806088685106900234629100670939370475766177690580384983320857460718898471284121869463133081499971642499988758180109751775030598712398035176500948406048847758778697663946433379917169824792836551514979291411071840566352548932414184356330054169993839349573081827943663107301428849168073817296041361481786686759603012550340680135323544785818509669889627373653946917623324828260411432847981927630628950815734049680014723218986937857820700703884243191066863720332852051850275512140999567421813309760930013106142620985588001962955103474526917584662745322162486614788818804277837989423995477448762677735315889073861913232509855799708899582387751135830331324026463244887246748480345186471842393336676819555865437676793921697068508078283720020921121255606917682905787270081139461781401199472360301853480282391411897304649580820763045349880177839332529041582523847245897229223972595451718537909740475282713207192039643351589852512715019685618572744564514510392221715226090757321208333915859517480308747728112385131184792146817805596828483549133173678215116030368603866009790404190211444793474508008664531570592110871225144748718965506519153165206433905131033116250621241361773887155074491293837330374293696295427653126004011861750635633206773107788785384786752658838144745321789626533885516673639311518050950250809736725109158246295592942135477145782148007784130251849521769835182791886127785455306451213523161462790662558675962744804165826293053125567325990664493227468924254442273077971771439917473467604926172954890379252373562650124298313423025262535250016775397237891345414912475668207670794468980734759403416534986722924985021527645570467224090126910690380455509886862104357142626357736633314803085887617446920567955178868137790948436261680314367785148578259798457648382110193297058771850158299049808302835487581048568216789182053697950359426535041470751437877325890023518052513615585051025582587526745381156704072813371843921771004033025817921179200698876399925275692896352733600780052768269385177159109820590541375449295466597024869570194518165879317673221255418471725520863201578075620887621537074034441513976646395179279593046799585638029232535686228463611808421135126225841074396439480029676914572095615543612390071099268870969607862734970833026607408684288624039033801540245319267676259182970052733209081866110629480378080597405546899144331565471068504873902648883852919731966523956117753361096589461907291755079839799715126060348253830386204598725318705695860259815533094516407507576831575468080179168970021366406859605151363172792271183398553873845182514311975931544386547761010708650475512289589421596124970552543648846008017492754055993238045428481202601423844332048495807413830371860643583271554668743485669390193724853051005587548978582789909454663616325892488953066673614474265102701807009203513214500730122600180462041892738855355549989611843174482299022440167157422346633408163576032111984318891507501072237196093152071422442058242304798820424062205586890598110446156793432008823329525128309074517743049170214276410993223512501660865191817884140862284533618461571281494649209857507276008447332383133798549194127046616250008269834452709140099740795061283982203300763748580643139616120222944798568480155846978002722624218118729529221012197728329031661242098251301049110397010109217989530340346988658030638228984779240244629682928789541916745831599482439246177794260793726092934702330682557902748890311841507208465969647254809270563858073045660196733767863439209312515462587423647253743108798614944546792953359347678479875914757382202153888972283959290848291246204824247078518209982499070455056698495325652595829308123326150190413506097848147514382808573289943074630049919014852860400160837773166321025699564862556289895543853805198770400815437697509118060358330496175663308561449586913422225637834427318182508353529207172731996840843477552698604572488717409641249240328702579299836525523038317392924972485543874460662603525055391949385995954347415920269452542145292188697244365605336204097508193167563229694596488538301179547088596031533146950415650916939098191640240384693442668931573361552912515591603556194352329882999081827746981835127315526538014485805998305550498574495474408411538344153901290902529416816589763063814353982354000026999328870780263537429130086087700585091393713360961080112858893202881475302591098627252823002904988950285678871594710905942553468093632743933212387306930084811705274721017579380560103157025936283045647754269302993040297665013096681780202898486720490027381564453340567481099181104372001713690557580320107674323481787899591660791130914669094857888284231001410713278611897407406475577726500823873282112245321922727798687241405108724796353454983362569278843838967684004894431529385668059606621446433761661344738773165878953893981880773676684901146682079486802718865359577395996500246672875117675403730896466849347466956763859683664777910439693637436760771675843807699227586404046066824386447865382413313352544643728054558658956438684958362209175896873072657357507312814325904424062944400287165526602459106198645236603756785189590989785075419626169304825906313580533887237342555277450311097232431991559263040062355803565626132628067701893190775525144229740165935781835841826120813560080474046103606752053475648786863928908543182138403098149636017690312192817647637572177676815509193355631681710090446199424398009898514014624921749406927389169846818419495883298647827026141589559649508318413228919603198415174150094840214628874959547585839033564421946708513949050563689230853952001750495735897939950926344434263476048657662677051971757945611800479673596929026240284350146752015629523370660948017625332991490361535117176883638646932205448188709057528086148642066812551959304265654502064696307930029520274743643419220112302345593918376143687358423286858363715901636898564268960188248865145674222310646305948320780107182405082969819158948831813012625857559386954457728663980327608069971017333146635048230579309076409670456133299202870959221484402667971956024176340121469411378331504530717448481388253559933296189921186603926558273074493451654793357937796359218892983398266661809009543089820705848229612541807121012206289139558457816470009591956243178331392675197419579277909318844204031407895959625457848718677912474725404733632744464691668162755350402491564301664526158344848724507251315303883511402390800814275610968264752783318992705545437214575374231492541620733859616607050283818478878582433046393720782849895870618772270321544815396089945964309043776527602107960802071102803207814406155890957387669974610469157716011495032907650045027241936027119185718162122704834030302384440479617928724714419288381818739287130953719261802742639234654595938031037109372809677576280368626776687820970736940647222609014626131270742450795487327352658311052612090741675388998845948369515530479110107680966225484556722564728522187579065550638732632282756474533332662068008800140871101785226453233578779096957221964732035687201131150721968061335200237445450388074065137720442808669448302936769977123264000024619516535328869359276854248588466960897596346119979372520233253628693099224917391815624803940160794641189234845450259952747985532520703532036165014315655730119167378629002342150375536608355535690523915107929443398110973780591875355470244731614874324689832400873439400515506608864301809408981215128220947445335496624229981599869617055233701440855129482786942528077708362158630040605208145758745841034107438394193747774447587832836694929703655420615251062997035606050750202789131449951498498812632253724110213017415694813936424874860826623749177143712800219116772569047267728562473852145177869861752323105802427848641521287209314201422281662474535036931765085879038790222477308336479079148104953615806231833600198092303758267091457714169239903729241185660665313414948066436990980025565981577269704403111006351139989686679074184903800287355552754701422418604134661531895215912403385573278409546950314897650390169824829721533420203472700955706394000804146205565291888830384719967192266534444586107995400178831102536607768971339629828559347396116544013427613469199435068993811115460533854051499559731329375341683589438621987653539817552037114087603702861409614272285668102585421761949305374886186702917351462355375889856904976825537254732541919030117766389485472047849223134584249957630166521257202445202928651798627514507985610867450900800978053959862028156829540962296388308740729776282529823912283635516876810161168998583491997961765871472488474813654550290456119727836892605385993763358852564414022460058997081768290603241082422346991322178885920324576017874739974736030104929073438898820926193418854337445536578333141703806211894840750818603531850949398457730352171875969735296405334285829755616798347572805092695206020562299731787147953817645069901498808576501233627098252845659015815894157966173668489570528139507772606052961512474014144543414523890883779856683324183914089474483104412003016435686975461133807667848967050147914337300641815257516175065322377433737505841682274488435164669324001728194095689062823108084439963005591327210995943495189773617251418160290766313205343549361869015504351489116590629598929617533510531888942420427963368125607513156031962218274656255865916503195696044644294395340544178223297740501672990014656920088181693226101588779862014390003952824453877431177831180057988246319568991048257236360315737235388982251361674283532862277058175827250069695698528917694533615025976235439728011454463545923349309979126615558325770824601340669658124412503817570274005611326522553152469351139830471263446643492414554699516436026102103087649542963662482425455541840653132129869922114649073811849544338971380655766019318168901131756377917200822256193690317834864865556037763290830743738652062531023724234160202681336524102497071513623705197957802149525526232240157989192012743859298999296465456343016797153767132415083227797611136676818589835283417311203855521385044990433473659462798467211528309874452646104459416691368329434936048579550081686933406064745471532302324788316435918957668179849079653360616392486598546158213554846510492453894751978770850620562737668054953210177028183018286640116305439966917794897194304649354823382385783286709928082448346645825949052339489589989960882545273527793113615070981940423922793825941528556269904991160523152368118069370295025978219929213863931785264804165489195908032831228777299454295534402302178867917833492528803404769822576005358882674317876130841199057311521600589767811478165917605417418343304589515014883898123568955488212594244268300718715469477325251668474641578046804701285689226784370898241813880458054332378538731247715691732663236890278172086211491392341539590613247288355758693377504237561904181497631536114252092142013178688638968451528482078627840397445869962714999531690235567620956318786313897661737195959610715824498718221700395474385841104335812909220649655099326005527037437437533334863921239961883811326894607193897425060493247592959264056282002760263221216417358998019627336518317674660229702830646125778783984015682233366806299629273680148019896708252013066951459855570053967435934019007066900474932320977489635258342036837163665495555332612564775543508027097418818498525641331281856442805817916375794818103646923702888140058813617303229722204121842408101858371358892639259261313520488128145799878612163574269322174054401633530865726255307736365018697577068961109518231203971338024627407438574209083558096540651686257391311001520550019299018082043597253340568256445747409485266710690416103442519047881573367943020477403567437331269555833861928628357534272017941886844915867014878320635968494971994537677324723700182820839592066900367880773808482854070805306451648493341985674198582099354739904859996479289731857472946059765969232277461697536134333869396045813080094339837017900266371347188745815413494958793616909864489669880450989036806448464857192869120797306507124260981574067779695030756563760683202021679771381205015888068602798420089918668133691950772268334399404930699767214339550093933490764270994142583529860342005710867379955373319548507640243643646664672400529778212230856219762133547570285271010403912818682644995951447667477501298908489395303093128403916891716716779568222511477548538523264345826774855378876984733426677652692166225665470097518590514191623484168617142507591856753749978639329306833283078977124545910583399335723873041923647594112622422657548178879840071290008618328876238998700045131126714350325121388699710455524802457566516511577205053979823889565240655282086930139044899733008612062701246960605976510573376479084560307979481676444961493612568914623071427587645126703948050697043443161807509493259988064865243127748700077687694398967477141582336581610910224135717132203368040458287845934399540772774122653040290354882658181433704690599117847383341402554101690375677352699671891831890086007075794357898005613423047461184980146475994891935142201338678628241780900110261001672609616325835970199833229250046423927114537775458166750103002942212991625792231811795440781607394578284768926709052497147097870006029735269493133882949073693527611519005809815340292063387871252011877323027300960419686831594919835689250533572509808492407028838713855024503850464463293728474080994767305556021497078374082044831296361104489780588129896718829162069818965527149052435204875140560532008747215771894637309804493815108769661369733822199787030691137593511523260210801318322165999283678103187163519987585562566166210350339921680533289882955200921174088236368214136224486653125996015484710532473914300499521951419575455897136558519108431495038358610038946892970292651754888903548323879331767537014906137204295205756156156821170233747484543251624763053720979087149526235729066317412522785984326603458829163941863175405430405310707726515049040045029220390776000941820126053076417569473630915483377851143705882963191461269714914683768088751045744094051379177808692035360003607246471695182367884935373034946606591307372858692851446372435261189310042233685683456461140505578134952170071519643789688681980367552740244282393467540002203378237132000994063609957174565140757520155951505554197097409824975049713494898170435393310232978251849908764179314045698116356922516695017654568135056228290165664055408010855850901551729057461911412190590331649104703010352330796672192332109262897429187805955739834487978517098511341888226332105989084867563037602271346808960276931260471212875216807725253942822686740515370179645320437999006718562486716732224415497789479937090642750215835262479454989158707440418882643407101503204616865010902883285724927830836003081347093802932285207209309526921008620592578492928602223514209563479653624815510017693649792010202748707058641484866377140117568073062528558519602524920358436576599669362487535851681598899777504579412778801404675614359173738808972562368137109545615527134944169993894049806980759497355092702693656147482303381727216551658387494258553361576589252768077116080339338787084415371521832632253128933769901546425001742211043967465824097024991547919808875883065405465800238877996747731649150782125975328170276311128420813092695849627652927546715999202745681740839100233460288260311993650442990148329842453595477433104753243154609883053620305160714407557250761035959323694221994974558717882446999544205897609314903565540851258826806061913284653339421333151792469780531868797010518841827622315968120235134592367503115270413846481208527438498938846217940289197546492189514902518469303571893775669794594244917745161631245583370873399151908013458619917912995456418722761012777670738528145137240928185968566312252715845850542615047390064509724143830940877357992616766591098753239501087787877042826283620483865798001876170719424336821813912724835985808779242820706654164116413126902051846375797386703633658665379564245790002261118716842725129052923159705289769106790726313323666348458228269623648967882804296564728520754423100105060849754372329246588748423048723342761989767916338982500280907477955416954985641872974073904424851349017855121463642071148160093259721538188963126465005388903664632640745116848258800066629749453857639331952963236673849193002177692802601471106666159583111603463417435092641147983610414690110996213226201539279886317142215657805826151042473806936986660603320278539096578810101515149098066844210427872059426367960993549772027509114108503110756926124136479890240828450587205728673147767732856280856442103941195241079471704216509336794682840128705023796344640581776568671591415322170470628861386059415244197137318555127938948483850704202373784769156759955497284817134712876254488239953925863405806481319646544536003188269812662457875819282963303713947564164062060216080887440625618731616554391552749073554390316821416259608622065907904449645446026771151904939676917905557437891539226838092488168021285672378750884626258959722410078161310823289169157853422727002569850986669213117810929446675471202354850988957471774888324691020633253766356913801092168998531091231384951789810725985110585268117854221861292316809773029538075281922132321591616613846517056682477798695195478725642168363253483815028430222179513378325970507979953600532450384163694575283509105346259807897523463933353174022451914249761590288872117102009826886374325648209124839260193081519869182142070934759258238479127240012213190380563817774948825972500420879513750364248642903159195452770724059431476045227283420822490144877587763503914292961765653440188856424806895547043708874053715176298749194276787247441546585118269155488045222870456971645853013693671049836731686865626866348175752140416065680780592517437921120106061616436342222124049007521664807333829703340459187834387224546417159562793248948256463647526094025956807828559196521519915907892705698623573993909290633990005523529697448910933513581447299965231829833676718452236566585865000178948627839418879296603045018253548534966652695879273878997052438477288572300164870751747240498265341874499446083198425733032160701248463087346080134438595812800640428631503272197864603638977594222714669719877083523792712658628398469681240683046684679670668166952980294635872539573624980592403476569289329192880079271841941383378316606829058506322978752026052543922761937326232205534331255645240940306176050150749724189584684982662206317174849709243364580138146114350879650443449342965986566014179046361216271411495362697868740816895094019351378249654513654646171535460766750985909821824633459543903047844098162439682100373886634663195732296659443244862751356314485616301606972971885287492174632340541268969832909329096274436954931986106381967909022388008216873840112459615390627949427306087733889677004639837836780165482432604152691968003339511015966114191705916494012888232011763821743967818002986635425090986391303041731198210017573214603408820077492678281888050583850796479325428006308991349686461549922626997596580720864508801049091412622411677017332923375575947939059013505991624747068261596395257030668561345620257024685670417245075373471068660891095787059827118956715328796158436054338154114510305970375519539973312477176000371843034309911190424020245057218749126375385814302591453860906654941750901605468340731317105556285034081886821339500583606210365358570602198276029753117486823766733283428724214297923892364890612845589245661964632644559417582234420095053571763723153208261193935843149215745557154629087953500081582324386316472412587170471636650313516427672341447883850095159810888676783421592613938105044391956491564491115513041289773442143601865402119590016166072282872438140515991412813788750123598608996979940678976920872974077774419861359255573799459644187239546843730023088339988511248737466279986156551050423381564010855531401960401660818504111184085138375922573511706984569681065397042900599221509399645732246468259173962848722333289442300600347810413548901554811204532815232921314028471122421903091732312352505203341809124382253567652949460208930167264938864997442653931346050797413650242550941148714207712164372613894945006754193952701677057340709271798569444949445017172447587800762245349657636170522109322220435060819414228873824142429264865775841090786376245836860783608034305058096982570938527081989777713834477434210674976540115190300442731115285387020757975142278331341331722066980474964571988270514642385777502932895481465940036302256144892591581633663337914379800900312453451993863854181719783995108626729456966617220354026046010453203436039430997615705250432310089506157955576603537606320964783359611996687426792172133242511237133916040668942119464093933034256727889153939985465361330571678883712796887960541285537865133427126439891406622712994039655562410145133467714931311892198054489437258814840972144113041578913144184138779357027098123542004089694207776532951337704933415274468856578528790428125369918445248973157315024490951042848335583612457822732926157133175287182984543707242429899980401690532952186730098063118848276944482907236586800154257225246545535087268805544646093554343348896238177876159504464813465315390037571467460196896396159756531819600333862423327283020951472283620461169759100201822308364282886217340074714848129029611219358529909272688769340750069708943510071349830049609055546717444542778071095251951618065906615137472842070053568740723324792940211087388677561540408877574484476473726135277359513582046278479793241826610135072582312447921982784022719752085062317290297559533312235802974460446538615128006562454029566501171506059424428061280364047894894464244044064666917274578661176563330343164489603905836803888356327067568890428820373878361915388426072708925965468181424768985821120797092482607405711729801664138200363530342222214270384056637941032677949402039012689076489581316148337104793288973754378695215979313735447890231865815653452502527564754732803385153357532824582766923236020698011758647499785020565441470007440093264108701555677202538189945204845579775210606946631487566941194044608354667854335010844331651904173429922013067469207959271138847233554573715159852813202800721056019243053989379780294198521331719186172696098748516472249919300169074209772095616652765647495691941497136569783711996740249525106982479974810160674936680155841680988849488926742897660446155891506877602846119680541140289576134017063815076411052648801311630841221212755608866482990978888792961869043846882674245833153771594928349768992324055721924460347197798519838800213338603886978853207830719380896949341288576986165025071929789123419955894082629589123644931886483543775611414378633230799926714728735578839650902490879675310269686387724427313532838497269181672136327487301335879320063013443590301216591537088458798661258014796925124727062467055509445775643054120499158867977638688007096398092787170707911354743315256194228523024678329837470892883231315286701359265010214819904699221855441919817538132514171591743062622860627138698753463013645216991999137895364384060730531634926200728089561747541909943660105186686585765024876073563201584215293060886172137490844215576629191188031178177143129478188055051609337573665378658336139302504395969708789251766862013899427467351157096587872842391798717600190750210759822650688774010645806767343567094995553485485445019295459653090453608228907497132544484425441418237101549508075083445143146325008912032899678035064774555211576551030882284147270637577420590786632532238872384852995783815114679644980219488928738134058356182882362596185392391110054327096662198084799325516035228408364482102061437025610787880288184806417752332748445812916804033906727898944062081228949817004106940283740860326949859225580100504995326732559831986222657343421229753371670279552541224618090567403785316605701953318289037557981214995191007753691635472147659674382053685681013347718330246557677432872497600352971338132310664914804826950307385781334686028001025704492927783155326893610022995636803514746774210138510191395919884832819152611829822079170370271933830855242228823042525839909541425277317789105119791168272044920334773786953693944867506999863932958249333323666626526356928917605544318316030472473655724189049546082625170340966935996681660037796630091691452747207971507850220356772254173241135746121256057027024597013440261040785505803158910754884168877985755489359257435140278244192958667341696113444773230097737697862360522053995787538408272456472565416901269040030420270364028933628207462494442806308255315091420119824153763310639238448833708902529422747414722674305725631301529490934348162155898857072997127360185962943326981846554643768363205362685832960465413280507029835489464070253658171944692523044050171486050574524917352550251863634560247699678056525795562473908523466520024238066135442379757684227846950160983885388719863979393639014627781221861028773753244682461392401966774428374673570339166558891610980252433998050018883763797643607241568917506107640995047774588736917168124398305639587484462075439632847829109705993964555594323191570890205300015786758470432152782245542586198834308346480654063592741816249486986908898131820125042833919298183404524524573993180985445821755941971221815456204169874992322823652634087508239615147468297112056352990548132064334000435496915008407644198675060274547950739809304825047189686918448471922648742772984356791329762371585591204267099001158311747636682486580070068998334100064534517521670376734727245359740367002086970018244732589517527908487012870709532352013903077642326772455635342284560828903419654093348945619398737731567389101724911615776033886366884283450041738794895640591177265668476095253430630381531979195098203169529714401064722594245521397391232960319950566298042074969286490703206293447096978573358113533708871502060236144974572411807886820216951053463241383901430481018856009482159202645378316400906544313702388908692636949512974574588794007671161266845249084021182933860297200211675198935392065227116904544497513715875371546913177230470130034423217112068593968875042515747174232031908139170856367702814728119713681390333850321831667664659297214613107053353051025407995656543690435477983456399685571915769383117114001756167244463358016728115160836444777340520221800170518061460487016444487749543186699345929971409847041949839664452641167845283693896993375383498486776204137297715117623604422019109346884308319189246311689168048051708632148965792637648277736311337563124491028432791271947412377740436110078501494890270524823999131996164853166380176476856309647321859105960810484264722809864479295418217183068441952646464313171354699842439134088520401739434635324545430022671527554109126890687768215022377877032808587940060264763463089452000991090176832446379911496602003468844645762817205856588837006112423864896338621468170979532123738715571757990226568494418249837333229243373351024953868545834906748054266558471659906510958085825795779333179333008842854284899641451393749144412864825484788829415765383051849705174231529495915304921235885873119675069337071815436121091764247543922663384072488220820655217081859532946399414569222529144520053054036776354810836012939671937525066444032993246931725230448098660904291307946926356438864784320025347450458787755878458865214808736927014768977801096531695966996543526000602133283074820700520967627240941761847423422368663979183795796307205510017457767436208475140617318134876280555653146220361626195902971681920324285035495427554920437194961887850424662973014680356389557280088457355739844836654101531863262314402919179610195201150610199732995367851281774241300934206317239721960899014493820044424738553081707810305138754479375309298215649722046330857532519935273525988249804977763341800290844101834387353869767792720245488648284007456018735892650831156523122852235877538517103396577584637906797976419873173621298123477337032013204933189598046964457011285961603426282972001920919833098318781782189208797397079048118710164161663840708814810584368000745816352702961529551637424407272505629153471323495840959283386053875262479594531528385162735835922082455308059611525409568778803569282657801301968580101081531701525259783948149756238832988014326846222492806116030344141937381267208409422693487835395548871797740261847208714894569785420707386817667202290750206400671984768752128668026459858051924965299151344938040273379167556485575085817788447842809323445982487150813415999448226308249670420074936663785931470666106636760437272429623238484519519523992937946938854860836610235738127443218619963855359150851552016975724858088249292719537573533984887198948570823189375481075485997245943611352497952589744932713010917987518848687305621996938768678392223154405153192305635642192330174308246455758770399201495458605062052992351997521999646525626125151549513797204263445246198819783454934293141450708706278623231782474537809210660185590317308534988615184968443965505243055737447626080070081125768311397635768549759545109471083454713285085720465095707546351391996444653668923806947724442706159588721698832522921416306071516869333526635147904880071759480023465991577739382830270161335963084773568392529771046203964043321001688390944407006103504195399041301655275035087144482363772782385095429199861574579690133365206656272393489860513176647429027649047004684247214390669594653566005074375403487521311968128662650606807493942912024293099134037835859112832298560937515430744409327206184425083604060690442067657840668801246616983815066333047701813278433394426423143930399693427798908836061963193510915481869093375343256065146936688934994125569754064034155175298739819641863864836159789589638970886141538059163870663640902555918276354626578977607294647005497394689690836672095318826753576660691982716774695329949812426847816308757391230136693035245842245285955985528615898585014909191372951337886984914267198153217206562543763368183825679039824687322993227019221123266124883189442635554269044180915362902726644188415017934982871070189789632076341622977838031046295231562176996726421790251902418943754578184402394136339356646433379877127225135742431605743914243204433218264496903708709425093517523008437980909280931658539930167155744889367595394003528731569724983618630887697970167471649525691299161365095249074515593142846253540989649125035107835769466088311043660477735125807868840546748672503613243176042288676598978169005324458852363541339399807782195770962223440947215170673103092207759569099911756862446798843126511106564191185527246457846144570634062518446615438703808118446239261228412720762693281630076413987054025428034636346578191736826690642006490297410155844877600866910886753466668514677273824274426599739306609778229629115206223225354411906535612539748051778051838891351905189540196879108462105560105895541363055525827705402136645273320770625814810560225877128582128377091500609286830417660286609149698943204155987628278533370545834542655711399738586097140478755263044767234141451306359475384828666902787632742459549221366140537791603058058204238747159100389146623012711118000422902707490491849830882952672905703865424755678984467452525542250012805969089204416960402397383310542038103797258361035820637844777045840691771352162354379478759342047474150656644596147126651379335729603533121317871857422842185297484145829901635399522767142026407285722186469663828069423828788509149486618657240940911033321790940397870318108079836138857537611958204301807675214180606075142762955751917259929719871284662065400216840366728800513564165239218057695392196440969335605436131712351509703208105278107031295490157786571929761998419261915070634939000254866945959861362411196913289066277525551250548055569188788844705853144208000572171483974507889758861687690250203239186038587480684111063129040809272705338266431384126751079262787671901842471879502299830695979279857134555774419358199901274858081696680870801464071520214151528004554758977979680112413063384826951770353642540820747227509500880783876687321320778262997813597175238318717335362624740447109480091002820294426121121995240976154684125400902537570625118566943885952468678886535882588262679682068069417420778550824389564180171919436817408051567324875135967059518928238953008290855087456984107649723940635422910251055945120618554291087022688749452185254950484367969134127228007287472072166268150375619476468299492252913180099251185265645166114490460997807421214574978941075953329794839631262886274612139325898646647413297076872930670753158640267392057317700362806162613713533799546428643942602565990460113149326550959490985293132064288501950387316720903288397770140987432793416399901694077267547420358104515556675993635887792596522680496310627938083722010209722080498110048552373325378317216162973407195543771759133969828984020628144513931791598619080578365348980246671198783071690631779871027512660707573619198560537970303585360743103888607129450314023391514545487002724538398984937233478927657033178639656311005398629310453509870357900438816985685372484567340291899138458461724383587462210531248112355869759129447298527312937204925756988060213532705424139877549127986565004668691148433974751670416463454876120115357914769647716699920290212940376419584293353950289125398128963154090992873876443206325889994767892899747637199829118371182542782404574473464802105563272826766093924844310971535866553215205351327824038643222010495180971812131918219633401143759161829828383938183714566720919972229143495739502465970127250337216291571077120747520269889586957442623867953152304270997847836719671382248328965963371917821715197728505526837752729407837933775306830592703856808626735289255744253615869516212666796618748933072081981568833805897354033194522755276196483873078678606892470977634826310482384089405867271056452294319057028834993373785497166463934330872441682451118615216129839260707584619151026628358240978942048771488323512111828505491079633016345047261414703820777069058749125050202501190636790943226443906681940751034946606062289348408986261898829422931120247275031259768798359794981794632176800564470292769695266570720712606337717778250230907454065499204228920015457050585332794385645563229871648805059020410384214793805387459170176838511714045144006133864096964213397145124799505952971520559908658755257366283316656412314931624557610340467734396824009977529549235372245952861150669993831895660001932187165234178641041078887583694187973093569079192540091317501364683810504211611632983020188030514058644248772471841403769998002496483834872937738622521601557019565287681567747206171399503670207736373395944651504444946022269130909815393041686599873985615053565272818926908679093229351139313660338675454190261514152346570070162911316055758961262421883891651279594485267242671412912719731665331842693398313569628155809776349098728257217961413188348812402619551854803093878929525690511206787311356106332528055913765491682259665119479173740578083762646407043179278533729457618030537700780954671961582217486616251570483287224112587789299407756802436350077564239745374246477097316614811004342993890169596355909852665076420639947728956957725831175676449821298500597798112176116179454616312029011808859204050977452594393509527429703641677304535576357591451963335078963777255589530941765145874359424210714084816640178660486935784700300136425765383952216524136759157143046213382889584053250181300510070827049820956748828994322122501140144973493966712180329326724692731869476998481414061788707924316502145652556730704744177864750924118314260599391792481285833683348186549085403707068814670113595323813407413222901450161489242497026159154952794800187168675033210913747834169694931010107868820577255262791611716690633346322025274796676521756842153650553394564831680538946935614486937765559648403064409244567840168285295269536111563685782443867807831347686347028822709135094300031052292805190133529790062712308508309728924259751099913756013221250083357616586397593638003429741084592890935212506022239180969820560441450162778496217315279027206619658861017642462612219149362307890863384518083314846283053093135594894194747845551779761213756650173752907518710538587186541639989538249950431960313559359763548278478703188615788645605570747905035225085341211658457276223634464851699416296967053014990724059112813294849592202543369899209945533048713908118707343574957557308921103333883223759862146339463482105605892212261183440527769336426957214327157175999848781496546911020094750844499396963498601238958875482341924580842911509901461081378071494197036733482365412719113816349185179518473324734483322324256082103220399644541388362302833312913325746935875337304583822148569946906581427484012197568886652764800666328747768366653030942562395372091172807549441515049167477852881869660533148564706080728011563761635198431331855087667987022873219823945022627288663534339338414155264692882565306466812102130069152921433646804974629750925156319687596693133523376575017860183997937603350104167306433907971889761740674373716219596609826826682692108970882598146241125482149747258193195844788110686272652429311525479746642750196071394937789340552262012940740384432616417894443212956294516939371626817557846782865032485410645160788009005239184335923181275661536524268152527435829056259062407071393513944759449439586559502619006195166457552339265945615646054215942287797630454417219489550438105913348394112610249301460309801401608877416232430982880053448444698043359191631848195745213614978549064467095824306480521904702357971772291626360588268377221810096870955059188483627146842844487167289342168486599393782440270547504685608939746167933753796388369436604344203360223498346450032128361913025480839040560650863045970602463959724539818583238986921109242998203760963106786375434181056605898305748542629191172072060906505347615377070054879708066187226003473215082973925452259205893721254441933002631940286144215262441393505103403899055856693095070474667649189160498024559476991362814132677552888829429364609971378083277400734520934515433368417790119320263411147081903560392268175776956580209300083037395025365097582801406151642400411628708545590288246491295594797878329354090348342033691608471532703814709036769906996274564311094559377428736748666038011753468001463485368455883563562621137502508024036378533774081404554010086435772697060143845605775086555053295605193252077526191843906762108467076911342302598413305067395669114438876192560125624163825230399924720731640465520482665865757277133668869105446421860605731583088348805844186782120663328972126433510918771167773713922306641914090197360865407546122461979373011703505353787277370355927490099109613141396840069772469857191154261408106859212808346647093750136686839244596320771696626357532264798819184877275993736108421274395911661770033290028582260253974520223931394797866361737324968143102661881551680106076210133460618726793338651594930525369748595419336305414883928752069519797884287167198687394370607906464823121548881346125082952236626447798145603951882669897101613103152593760387999479966234158321409492418049271818952132115345487390046443967060294391747912791425844288907531721361268706104940357477570920280629625858474310578106020907717570395002690695910259493578750772106860673846541358554430179209306244541037840397250896102538768351974448878874743636261442871137557789658750222675280689577553535047097377585436330000828672321029200605294166125200599984389178202244005929280705018832194865903221728184077974112151685301915360277694965513763928036743403483614870360353170267282982248298904118748775183788693725029720576112333630759024780363321002847878332057338551518209735056626140263875792405199035490033076331966753994659795446267226615542367094582111692197742130665296993460805650126919766098506436233978534206442190039955168151474300044595014422096372226243624964683713806059296395907396830097435534790034133562032295390799886295876710891724817518654638394103917781185537287142034916844955112870935805101357989188331199612588267097041885815311460391567599072024491421068665676495643491867265960663592648327704244283402785912285636940050906778238903737585129234191818524935003557316763408167992678050098379244391305900126348190874593891983757664225864062050521309923564144523929465903309296848208142515066808687469239857350679349816944421210464922285498897435550374638810130880884382320130057468810029764766236664816124931063564663706711151219506906800425615945723840688165306124515042354589665324347079024627906583093819596200727120277233641984696998296662504534297580402897432322063828364780569617381502886394920855204028600863070311984703984765487927672736757884104734019971278971369794529704470726549162399535692432049717339215687074714365724514087088659082111708201880060352648267753746452013817948703099967300086285390526929633347989220134556071278955429772211604068742065758962479283789115534634867082405979595124778232192116807340386856037154485819716312209141246613474507416415200012604699305286072757415278159162442813592850704486686338588948162653000143579299613553989088210474724306917193869311554623910714704890915304419040981861035750951302282744761332342590112340970149065383375863151071930159164894945375349290769395127625019856093735470328038798671357575806490616491165889614159795488006245505357974254806134386914392512517879568139969727293439140779444624704822430238652911218264057948821603615926566686991420384089623540634634111376007539081960228775263898319252688780853993153916628874338477806806970240165823704119409554005442838054895425470992850125394044333082823497318648004076429890400933672720871640774700340406154499686156153195211295259778403076983148081582505441115854766097089087267374260584240747919779284099753268042718544962619172879727327540440797044687381662293721586393189944283172453802433716705718591717888435057355532467630848397952246232247236490611941657198882401321111125100573870628042058828102473142345945520231554904090765890790228273614071713942270823537694858565065601786734913054124096295325149408130495413762116593480530734900728324558040850775992693184461598805222875377547752475587758933021155435698642465316712463268488280342644501592356351681595302058784209810047654684341302010932287338566533430015080837736843575786093491632021804686150901538538802383756078760207685494051398019689841935828852348544053498934770850145375292365265744040564919565270611271259993958922847636920705415873705887748296577492862980666482542686277335102358323975738044455146599673664013024939602943668075636285946149013446903991441138952411424491680755454092906160250085274417577824425171402378306697182544343900686811078687689088563487193257731508082018013596842284949042520930737452191675879298122923046462548117307424571856471308508743186807607558931577033702877894612948681712457890529359792045827996062219563176814772286021212273335825656128461835029737545954058873579036539392403057228811589412475661084955767916535768198832516496536440797090446029942021753161533737292572712623257872643842606702549797226480899054485210354373978631709184553381196311604450700632051374705991853578940729677646647788891425391771536014536563448445713445422574957426359484651511928326160346823120071973133595855263337044956207448012938578989596954775869222248774802332971339449831316653719737680557196612403780089310115419868897440179127327182990202042574960816054298466664805634614166286814626872933757751004221606649182633280227948269265619847760487379705908960285541287285038611427064175588198544196715414372701928031205938524883080559352681580051877783966940710996111836626212585361362809259739994789782288118062318728089885415672265628636095512855165412969697166017494165507331566178456341155548350117257932302999705204733131484245950749505346355431453430509135825164628351465015901855842131956376701514597239048978966271728868404426228576782413071755195298083856047948097891364339011331321317934671114256535726140043420619403212747728046548194468851255299143870934092813829443316610142387069540923136477920858799849566257234480514245082433538595984893872925741943225382322284663685101890794333815947950333674548173804718626021828338661818737106125359608589490612908683951660042701011917187452007409674444709729142250173333512896146518218164654362656558288609751583640008455947781907536156379996436552403761115409568654765571677001217462035351911052931037958767348310287840988524614859980145050736604316902499790430863214375519990011182189118094547496001335054403429782277678520525734121244276536691412606500612475988585660371489905111750504326969675349801265338147606980725322375572281496657693815575225823981785834183366986378870444627038362950974352149939092963478945554185756203171666600213694656560530773266270903958488357208128378759929251233551651084403496435953123348256206869639045285755477973314132011814598823693627775519051660726428271532648894108253014914410214673377464876432811548137964798509875636828201555581698276843832825340560389830812326480486558240116494887799054504577176822466131967454925120300643589839130645604186745979549668986650996014219046657519190822831545817352738626928972465928781702691448562229640428763737640335738606126143017125854188101274682194313349521277581976113464775321216570291061933209956692031248933157301652086573190965519769049635443024050589072091493499619462642730587216824306069136905022837018715456937299151511718680603579073782766266848991895318057714325743909992846275779743376647893198578434203243418816096042032462725424132502724799712258698467733880240349013337590872168023064808790434382488241692252407988446299775034601154827746132562059120893772860290915905983019059740360924243906385201452859629885251277071808516480983626851783861566589901723329382675459127771884248918801780788046931672905276796431043514721974928242097458320447390558971577163904030384813409356141731467418318522430102935783182170286149218750767300504401884278917961039563792935859395729760677638773046797122603103090932132034579551036314993833863071859328739035014262834945441470542385885444423078942385505636826852075161960077843822727152922506126575487396704489101618281441654056929903981184746467955075928855404944520923375226870406826818973858693271600098624717476450715737812494657825518229396631319251216710583743387322228764463088253289755743541593707779016926404566020146463650104375046483066931224177106131228747207390012109202990304530377987477805541612614812362881944022194906589814375235489917164149876181933014240884412287702629205314307223811089500522817800596207874349213159588916749704802495298751121078800516039483069628410458692806693964925591081496603011702443013845587495360175933667724221918296318668316612076402661710096492471020704240569226889840583770477297155098785288691314281334270285812139384641754397812749370921401359589000213821454466016169791571234396706566809578849188281931778514881290010684851126892020527236756039933207378835885850637349489773326258717234290890375181479058868228430271970537591342706522331325427588620058874763160260685108221613630929078468282964811885741557791161196575725931474529924153200423824536667474743143351959206950046600975321283801894044788523982527159006749473432064049643589912674746109485672179685927257909885280744689631634317731693729790888089473553008571861019834828574346073589880785265956970654362015410025942881766445079301188710508609871618526805227699465031638170129547179090521354867520130231186097634154231997955855549925530419927599172495850891956639115012314344289772166362788927344105775366155039880193185399132044158675082956303721967774665920418211663916884269780600981424571680749433233031360108726523849432660681749163427405748022961399120459823963058158111453318825318923523148566571816246985090995952974304023722258355482346419968458712412264320095809902084562655748298593414258839521266614128775987463121571281065645983122433855976466184315350789432480190230614323912815787068435730512464570838693313510140770614932495042035454631724982123750160826989340596037259097628731705960181973281825469024451380311848988998972751461844924344961698049474121801738340136931391210666006060522367596366353715264165951606884274139210620184854333150351529256148594995116885870476007319091949019607432258055698995827547849326833156496026114338807937838162528877441070045984523241304602861693418729374375316719729578391818876425061546608457884231781459887070262049574571690720619858234237289612927102968442285767580920739767711778031626286789620436954418316918418156303994640548542568510361278343774838724086018717304917827572490357918629521624726592668279318121824078604267721220926892812360353810552948728747521034045458868372241461297352972104870172626187490103344834837215683545777559501543940304567002127949781577342193023238311124321123782569223565678828813814852588986647359208571098873054996972381713014927312549195822501717939175633964956826584147563836295713939272307573866772055483875471033585572088319491644897864762758579634612375910956495128434309061553651012867018717680029841520267028273349064210987758943308092139313088243793388855395338044810077266848727355630970642215139313580300792967293495874237287600882544810120463827343657973067717951433331567812796252296046689500355775238835854922873584314656098793907212281212801347210125301572761431201908592152750620199218457992272171984010606947505094779078420090282400501504023566790901049681974652350649118463372552945351978637534650248887563622140341241863996829006219195933429910080761035549760240191383268891028241263832360674978352423179844299143048568929392028432192413201251034743467061722139249114810852114717933288380527890797312174171603407082725781446092483572020955811324827221377965664773602954153871893797093045488784529510732451636162376075190139813594290864281872510798971814619906539387014979059023031389961961919059939443085158106943113843421706248283240592115258634039734394941741302987498223804968319177740790625224965356636535203482735494636201875812002155660108334094540193247898424088286363759858387102812131434758863541326334496116922635054267625139778837453982048706907927976486921711768155625995805843231429788674000835217124955329003855248860502797603659879048304678053336903032631105984072263438362887192574649171431647693003880217691502545999126993538899490960067341277642680104462938964176203665549277184601997825786145290115752917089122187630000791462260049959213273562412697170378116261007068474564755264297353022883265928196777628221467232086620270261965905971265281750826357158408492592518597356817064475174156145253095069571087508290258537525006122254118583838396526026323202814650938704166351207092985969911047116729282169217350352034153062523781853149756757639370518883164900831826459834414713827718730319086016832418714429393158844597045101765343447914123641406414126681500485405778178986321813851895668197351864439292627524133059969729802351447129039487634146530635192329221355271974953507227244274462910924725261404604535506571039419850046650946192308603799724934114330972691364553955850081493783880184211637134749546803414914847472811401543785841497521259172362140536631657578229278419831088632728632203281566061694595493119339533508291256930751463238813030129032271567362467855128192790921884523851822969225513882598852514365329936148172256139560812394923254153220961996885715750470714751813934660374217483243657574820041334850845320863454866829119585617534787197308668693723353574388223804953528359925823541908694249530997081737295716117143294750867189481811301666938979742956766609163993873793340910549536075127833309876944900076801287636902023657069317013640965804957568483761854051801269454844046594321364736037627639483894126110081743068288160418275691064937174811509048499708340419955664127417245577195609654560569994693306694256250302968374449440561303447475281647251179176768500490650494195568333707985231312289478301749360058032099779125067755627425530266125007599288245143524047897380028028691186328772656740045796630228399770800322762299317997951613352060609917156580037156279584632199740664079235325214341131378223211572059152490527557603195304730549030946411895742295133859815233373221387394665851144005039425050735269339259742188826112512232586830436457615185297255546746849167831144207208005068130817736665263330846321098133418936395698202525439980180950136512180748915911956819164028815286386867539069745463832560846317160180365389588613580635609483434438356245638459024549203810790117856680681038688544434103877323049941304706266032371916764977499590885986641239827989573443570465141456723604452958528650793237801475824967858379052456607666158563142080712622237542000336139981151796459930891988825568850200059794167727669523755486305461413204298843600052809313764723252707736930116665331456858696799624963087088721688367720596533167083818394350808777962429272948048401450715150916938428196677916774554954691530663801153491642883725216316776410597947977379649121489569472691014451598997967097279850259528688395570455891940029847616340136156172205606809669312702673322846008548910646431240878108541403137277216677247140254555120891049429010737483094337609021027232754459610156616659250859297163643588515623999723957895400636368994797518315754661932953067083078926731871920564188578535407551764436679652304698725176942249389732684961406933415466202445807090933245905620071998500801411710710098224980157962549818102315212627831865847755778093557303214895808651257255307888655547581420785229793076865655566529469310049167296629496733996482697034795074751088344954869683359298970143418942695195690245004011305965717107699231975922946691711034947392813707353826190425599279495216041211722446995076605891941619000524327969611212431350730480667005492371853305278833845399902955574660346554450638005731346821964101838712869117343646499501993793501669066789762667866055947057297414613768763591650712382400247721272510348583124795382880397185800950850498741000258578453006812611666491430792439259241922107876357203955651301487304961607082261834068227518997751278183036446400397466245507476682964592009617038946910454178522309796995312257561398241957600050048151298952561881574524866181611771222673270965626913619051508672674861152991611719664733283963039776649956968029352628306305399686278445634116942890147593961706625517201652047463474791396876175064088626200958564757941518768398895073808688561464139545738308844933729810682285624542803934366149980951995186063542323091054774908658680968928099114608402876857262132944629247565618201799933547665477760592886513252879266372315648479647514626147472603175275396174671458596909699637632348297470925522391756366835074653770191402733044585495842404204874013229460552861010816518939801146036537558295960906991803874978781356269542231967489737822813532499181535054615382301473696886180170881598753534696612472078138121362279862921021819480696362090093427525486049488621153344241293623777667817102906498153470342016807471417077712428076304879908847998458014803856123920279637525058056459598064725640057660417869788292126905482145078785980344023347494245274450403533968221144437386744534342640707690315992784604275832984984143665296793307708240181506583606037435555042392568005260316565527379221303110087767568830734971116712942998086853926142660081417301675389829237581270009084491921994238359826051794875872029304838914307500759012441963846220319462266253801476635504893896572689304675030384134435059719981619467177862953269392339720160212628699739940114903815166066452553388075423259019333335636971991379507455206535873082521328842707635071944425194923152872666396897317611656953780051228181482465605875146357467139506185056446978511166196813471442911987468665288146794175342357656470645063307001575963695077430797759563587722788624615623180826211415489641756539687600582209366266985826900857318657821926152896330224070822542463113556501312876483869867360976003936244395574555531728328653376481713783704507885786208776933931153780873561276645701532178830182262106182558125493760727427783822226980295199416145576382162656205169534304331266178663671586639251214460764857593353365751934042015809619566317124637934886129868387037658587207088911538575637998995828794443765406520535099849414321810903959384339739691829466350268223725272319453814097806677529848552862529723460775409428817880764706951443691690739672398687052602392017497156510493829331278677508146080653570623630839983292505799940346668713262686701170984347145487470305098246369005580717912045164011319857672718902227937823014687044301843698551571479609116549806847782316932590394989744140961713982108260759690371946306301166425231735202269466353814670663285533961743355444461358689824386695856906721347186780992652576011965147729771431306472775233687124469421526291761494333838205365010030686328193215236802744794137676110882436126866890534437480129209599109870355611282880711056193188895288920768176501095206008423695257722332127472456794904495002550476327320869005973322001219508175774372872943956592882835877675547571616963042408127021768475168896203142203298015256765024758271821520070604949878776853863689705657461180859230672047547582253396605889194147609961449883923872359848481550655503092839822356681493270987128360761887148523005484889606063307760318445605331494109998685606214876943445453704154093108158856311139423185015971604280545935400812062673414874681902795538181340117382293198808361972955335215305662889568767189976372936932891349850982942009388284684557388110685220192318721883402424742509861441332470411702750774851230606049644328985007777929451222692897025627260157822982149559647191742879747619544865275365542472537828205690233378168650432824490437080826510958282596981031822474579739203386253604125825694440719847363166090782716360203482725756094786657561873989017722292747595732462734459013817801006049857671180558114013548447444558113369399886688089659299968432836308486224088418805817549700946833980361027507684353167828563910734519607939734998531325698272564211276747816902540034242615985515297742097626015914318345309571312918750153154727435174289281950459786417180385114799669550931087767395892188858776958116442147686111435627689732251652844199254500696969697381494026785648419363263597972551598517953726592917159704458636311163301809185951283364399860912724751320809888112747809312675123440975000736941291953448737345329119846809149856480460826098575247280106943123030162902273386868849160085901512711674909330789770941130254696443106046285780352816623960280922084535004361806584714309196302559516166960549704744023517054623030050600715359596555491844167470299918928730168008779054243359667628013202175935915184773688771336651434059065291473522009598390089762145472565583510882891162905382019735455104240844232709328641338499654631100773747887727123652703487318581561444335051271444805892081595940393187620626123552221408029510801109431084413424197251224577588933013937439829998096703836933967952560516583998728606175511289540252432690366519156569840018164413944740098339851030224344263666995700955442904391013376603870921365606459151052253934752565783630436708786615784064766511755856152087515474634458903798985445872324376038776342212082433935625939146373147066647099274649575376131420979906734550624217968833080908985735306066187209145078820396746855314974770092414935560284056432093984789967699811998183085469769055807994265067924615312632364933684692252490045814397185215040568307384302244923347930907551241750737936282848955067986365348266265464822550387547022928580343517406297049916627736512797930252416233877664605124740276029670351009679730032151376838428837117046463603599806157334845298329412400942710789551247545566165815629354101690445387853273140544385532766096887969366301850885584145599802676435981655104335635835222017587964993199202975516036178712860408842925912467336442576945357393116662141378983144695982407489651561253359410636220291888136518671539020661765583976373301855310732034186791382702376934419140638292192967047561921329526795870572533315377140954122511686869657890392583047602398690347822505241513962353349768078512473988720080227220760203306588209766478629284878333380671556605519075213190072413237965674023763369318549977564322543498126654123331039962680104396370377157820716945627071228525944166939079416562506935122615012193369616240193116989690442239755739857945014256430440066830865709553276617906798564956137090137679119198791235809135334165408142364405562336364385853691276232555148879952419772905445865066082097113365046957944280854768660282130141565633199953957699419731334589561653205548822186629209396646729298964612572576637137921378098718039817255003479620238155136404024468870358132124079618464656236514046815615366234547854900054531652779623282551492566856762964194254414180981396085428184730901460314847720679896730500851492128641098670307996184102682753477448868337968954976726586047205545583942373684455761485844647300143977886748065458012882325438968343915388883206128465094982079976982110079459300469873276565778925589598187400326048816377185776012354152719570886194564474496789552572847065655367095728904602441831724168580269636875740133738238161271241090846196338298158504735666721683907334553499050413850858864977000933609973108307488002892415522024504123948539646828474644724280166190097809227192289230203604513632620534275926740201828929046635568444473414852205008086606785341404173142106469608304194158045859752259106210657629138265931061694224902541961235575353784280759649283967872848588161214803932090489008088061485579788754525619395746843653975395581055891994403531996115359293122116622364921531340823744786746326317517520811232185645332798165093201495948082423772434852842005536944393000322126353171303506346891740558896159572248613165528948795720066827014735939837461612285751179609813820678451135962833379819936209937082675416031067542049562644994428233269271363745693115669233877151475596366767307213848694455583560211785538930407912956096413836263240545182974604588141030574603301545920126186570230147139050629604901475281757631913369391686402046481112170335450317544752654437666859293837273585713313896022355953394247696341820296313674798838833037855956282603762555261190576693143806693181755132153110477414447260185179840665090632815149661656672872296488323101695281721670996726692344029192502028127736409869925066291037626511976594387488248168706271420644190535839236120516831231717020655974210074527828476083845018366403558457354877889120127090601236305548044888151993289109236708273893961242824069974583253427547842437493834108352365056930868457434419882195964401383598350422167449141172561476181550997032932972296701580838377957159987368707480827191527484341744499544415055060882398728556644329921103793934938204058130623499492211737810175895659938130369332709448930664796357975188414262471128837849112346638679773462595006835699147147553150731244881632507631734033376145594876533039073973994196053385341966760658519213430074563617860708765902474638676469132450016696109872154508877166771219286960071638453889759413190546841096740755087178457824836276315762646402386753743665938304158535183583934192271304001043144645833784034285008540584789566825116892179816881230401188304581426312406428472523390364097143908197885521197859641089378472141183392233802440279727903035558023694128151410696207553814756881052188484481162552352646000588370221177926596446611100499010968591613868990022242953006251835061216375536077818810074550451405858430744134269962171639198097889593298257248485564215403767574392550748464778747870897717098757250795416962402658417295611411987915516687676748350009375787202937970827155973257269741027118189243134808328834067835691815641507675387260291511487751719339692697563835315671420781132608961503287920531364349430319270408731066287171798849127099871937153654093859458625313733167890230868585620313203179582021772692178720653895911658359076687370132377774008475425931981144031159057275578593117466040499685028101835211421771659218975782638970515351752603194349133799364765070864844750308175625364086935292986820976259300044749660924838280940481667853295672407727333799970087682689517468080282395105108848887133299984988335718859154453571397882064818061834487248612584213533328804288190268031143597795982697020774568231423549419175212997414676090233454758430275697826441244691856957989502905793625131581404064750533746183324569081241221889020297838844952014891575799589486306934005517614732245152926160521364119159969128303695154318918877102206340986681600111519388234411314738703233122642257790343967880998810297058062131120342097052060295994833364456344390684685756822246900014534431383352645940676560945057284159780702010144803416740136658550172019027801099013606066642828596368295067005742682716666166854617292702561962105494271839161114405513366108649777732272512769827973689081481572138447294207468050969395238272195510099112434256742247188448258407735133993313567929040431998909072700135773198498015039526448745474265133614907560001727994726695777959812616228417900624960217010105086754028758066340241950962837962282267205965356650872209341189085701776008619719785222955720832785927783737745041731293227026051025532039446521054757354636702755810082697967809176880619120622174770437576218100142264913502955502455151253992561310955189562817844966573867967431694422425281155726280981636531736062129264216387301180801963359669647560410999274560331668568180380945325381647635318528138051550481888071965969161526747299696894900977546931146866843294978628324129433574755246921154006539924141793107043035135996591828939059142612411955804685718147177710722276968579367965633288711837667261609740812338178678026304914813519708566866195475811361087725798542370224793519311220977267955108651511583836204518882784207843941964669208280864909854521945564130677417906824774560949875950874106036321493107995583302817080575990946665712570177950394159824500306923816203802025256631349847164648276911553337901396164909458140118754645735513190148801882306721516187047703609332081759376057154263957513295144897414335387513590278135623724565317083335390349525224037681327284563791055762848597776620534852324814669599284655810101492739630113862514742287506784372004074109702400950982758082077685363596124580578183105920933241073122062506303915054299978817134303173122888245064009367275984918432044028282699046236896438947514227037955301335709610258141146113849656159438680776699100662559875610884596065247508032181206622326404350509410526863239289185534956181913344688738994377511253466345924889029412863679752967508508304121533140199095983460059128274142017922370514118372436089571268252844450897374544065564026996120462101065230202241320433632005352358705573696862656107305143525659799365583289587434595597022791895440964660301378246902494959679416320587402111578942686782727677422926374676555581458044839800124229673637860918204351726583798023212365828643684342606173720889364200175160233390200671306972385610717472685120703131691736461109597977174493874560350789489234103121943967165531922653617793753515571437083865707075023898216324902467125774479444356795320863382338343617205275703317511538106070887538483228286979695181979980637351908279185169294715950614514651990396045496373503208839557963458564415502552882741929339291985796844735786907189818447257018351459782651127548265229845408846409758085162454322839085046636408177170827593940689413034515661209269927014752018457202229398230177512376030659078506764984127657703356016095446429829510884680291474104908219164677076144442594170964643690073577275199844320482111451576700405169883544432137639231195364090920297056552183800858102030705441776999680556618656047014297900180148947776022476519722051083559168808317774019738197041553454317207188604331884499748660164703576075479637117058526923858555235640365639678276374868751087489444733161985075831002356032358264332035396188409631957488972522637460348130195053255269862517771643261722083713429652802182022949994670826150500687220176749901608857684674312198902925485441689283630795449065111589220927095430231434730560264806111591422822323895780673168784545495039629252716803177280413380156868105186323876509142498119883799269819146686749295117590627564576363427210948083442300376386573208975653892287040759860560704576328127011158521110293705665246268945687186671297668077510079411370377000765583661778043514457982280237600053565914305993591093996698822177379782540892847414717763777744784005387362323413778934024387471571970263156006607880304961850195360231669538356702370465765578297997434251725534940280041836909785953201308827097182951368331608872517099486975529140707752602472924771517756226262344816355253175570324714050750518932418137221985999897364891797841059088533244423103999410123428084960913661545868859050304405786054774431893695879720220724729965064598518539663444678938822900923668977601377653478605301921610908555544476850754625560686674583329360113038792707352259023792749522217479233021250421172056505840257244940241624121989547541751402311761466126468764803081734490839012986189163198384682850340105820750613031102886066897424528902618653687846477641617002258493875504703507118304050783073849024824850420694198838394834171572233735979784601250338137558658364023325326986001300420613715498623621237899453430704332481475435568576934848943697111780462030636366571141968369038129225365873089528010337316776988444028344589810549470548560601597021895607187061021633442475878348640667759577515567573060830493696397805456449388933765002785829496549755842360706476826186708825655135336271599987565942568566458282925867159180026779201486491940718028219294094459030713740664283219508316724435712410094384648457010441443535841095425425176381016988390754835653147838850902580506744959042259211430431493776851297093016717375237079124143664296029300778939301613507701757765249039740036708265137681965867527343223538685898462183285171698636665031111145727754494222849185217905736003064057107124014338098916454075528595345355195823666062867461738318049025621006304469496302319792549025001045960324610014852496637527270765113502104773111676061892231620048458643274459705616170723195211506153901214102494215081994676560927381272048494846314659365857385201598937950574438117868735876579637949280595257264561801067850841570120264555372812603599848657932836025670894646657059494999096052973355853743169757742348447456050841317126435960066065725291285293281049348649161314996552987919735957965271350584980952068433631833179058967468418235717636458958955242369419725698256350891649044395324076579718273287982923073721051387117430572942180107386557705290075246153130698209272965352735076325669946954286817993227174238587230499444790259765287411017506018064195244619592745834303483919172571027616258928008293776918214149753856401022728583827524650705094244748113294088622842237684353648110795810218527607362016367553679930072360157928887723377443537010770343194674672883344351245543165289228282907527057762442711863461912980585874366172841294697369072318334512608958070041917753350012459992972081279680585769375356026805985598165586946500853380206763851194579932484406024307351308653420710279363593728736697273142335409631434292901980329571063982697377942328416959734058844388073556419558730163690682884101252326116910836067431328437592239008433848534381875318190099057757695951261796379000223956883676727365339766346704793529539109287124503291170601644123758138335679737922961939929690676730997462601196545070062236425480215599680096118566798426704331629174775022474026138542566249819385248794021824687638606411782601192930513883790291332790152261925898492984350043130933087242274912726250882309292604890336787597602175154764718396972368172021185988306754890993454062470611459146199961575490703700176715277992046920802825197028887445126663926757713818268672440068916894958135028930105915350173776856002640218080436823575929047822965000681325836141193729711353958678290187660465169396249063723154184086140540607766072506236641302875924979777761341207961857769465899803147075188593032400294870185100987861075836107403062867356840496873820338379173260599586730127698886322622317215542721451470522734471699501592124174321666805678497369480406307531726423259722328434049620680186746148524053987032978015240979407941176399174101955865250093523718406018527639295960523713207287130397087284846726010508199974132016647762849011138544294327809837411295867140894057710230120161779851040189150205888151837613522183464553787178218079908778450092513110075756268486168251584400712945002421033686170938523183549961904345372979778381052379376587651949549437461739796035575693105204621386652682237952449077135196164907092046711402664988156553129737227308808990740327251530721717725349046588266728570767049775113992258890942676349688448862635201673149313304589014449477893565214365796755508839164880229816461821501781091133867911847511680165418710128193537143641115269056147781085684088270288898092548260358559908182443193949963788338467153165182668207365270415946045118101002159380102400698472439599843237601521105137336163937358814128302109890428800419510787569552288491697683684194922854475974764958330759341952986682604307565172225903760564040490773623451589756394726949275310453852590826437348044126707158395576513901995556674116249691575784050559562984350768310141166384238642864153619319220020696766484718339845100429646349490117991694854187869547139223309407429309857156633655781466180162715387053918490449992898471952897942630448020191045367958873001467030535253571224926084202541665941836446759091507440158547927024133776276097356954102671173402423108965203126802231056042836271792387257132254419107821270734552178367614186466935321083097206299382620956943622238745418756487573608169647617827274087090432674602471620827884200494223446689754889337361838402991261045904463259010000734420901979081137173531666336467629891328739571916017695374668791743097717850472887771730827063262758398787127919475116423253520847801243798422699155459711286212141740512604751316031034908188613435017844622209064146529742844929428674524047439933894404455444542725553521043513845023163148347093773914656724425192581770233259203060134778832430314092553966756492108572314389511418856701393723914903337357582301256855511585346522092734427913124371462355176348318854166360080916875082101909055226654086789361983017626437807854881447750835357541559306132239426425238393878468692391724774513513171962975314663511761630181510635575790054795623091795592157028018421438277800951233578739844543092211026919847709478519511836965705596521385990058871365401862693131074308556409917477303809934793943396571740686495964855385272556218884749389353094897650185397344842015382721757376406834202888280418368615152200293007153479239437027305754186361677209631030447568095679127805689960478999828178460590689371773558731182563129843988631936534637711486490978717378476793033083215518525577718331267278618746346533277450576366539174636290605070872730538845381132613755994336468190395055581653940557838447283869535034897942321816439441526924481427879906226781889115838780474671207557063091702716784252009953936069023161373086087700927753556781285474541249435317450352739409978323066318265036369263467963388442190129549619514547663423880330304253543336263645379943173559816966685769183212472802080463010566247128322035913466239299380444954295051695979565521170092635274203524564949419101234698181635689709364113612252164810542844131695955335659719797961039015860011576013825796672965602828122322371079658476480560711144659500511809789022719856842200070152650130629126678032285191754568927003568659707429899153402930954364592883737121904016998449648774157033811410583462878814034212584712928068138985629475821562526382679588837654913896492212879848586066585096898160194052691646701495876760946564495875992728053831320009670494072435852634290586228986959728597109247287626882053257461140596370104415815916879326750455328468495675724723661660406067474749132350003994912181684106791812378130034169723833984376778989867260848171178794558249736605123259885883167396425324417971671021231936866887997299464568197403451662573548536084807048402197543167667236261951659486591513948381430951666792747075101044870631107293028262144620443474129122423899397103727410391784186119256080509330014362905621028528436109945820091068317158075936091718123736667296742524176836555607449170236626359058837478644013720424985616863969838762695650038424837477062467403664911225034230825094627923690091373326341969180594142477808598516196510972577861720049678374054639293075288000036175315642389369662443612694054630807143336711198692241062699622457608894945430360071805381640231463669967251762197017004923622077636890964838681438092720215476433561617311572875064756398375512004317115823527941598683931619281371081687800734074892295106995739559125450530471056970644127538735527184122452937693950994023788780955478187208897458841838948264509107882294439266817573634861949800311092089341355799313759043931644573439090494728231783326350818970404086627862998954182845634825258738165648830056454531362261283115814994672314441367752444906661047979226297170520433195281099618561673064251092454018261294046858117480400079196229445794592664331414086738321183616660678453710323117992774713267733249447751716204652933299482603388523283422040262979685571973177304065248883981728957661590088541990287665053416373926863703034790281895117612994476441973464778319492709390105328837952061595869366383612303104337402247285439306851498878728997668641597576161809801888595567278566155798898378327062216216347988750388343463037145308479827123665221580614515721279210756914564692781145184702446042904486908451049754921184341720668065390376331310312727741574049907814981331771559069066321661163272453530213988003586370905934055440255043617526595998416370380855722914808858687991711598987593174282659294370256072969751819073438097434380306306024689331412484176203767677153625285245390630817123713491027079095092832731222919514545579455342048966248425576055245086496213494993169571906662482007560969304285899451033701384397830037185631574689259032325209656926341759874543102134114694159575547906723157357090191520681188233098650059887710788118321267229227182853204833747374055492881390224082243501823068619221271328862821088364094900694216164625264943689837113680912258474759192259332753975307309176203532527521025521407021697806302726061030841974472588741844400583743221408659699675498588970500650386685556818350446695107143408145541403334430736335758314963582501398223058285420497759056653488322540815288662750492326982011474221006077133701249407700031647361009257743211420655969090510888577751113271339030105025927070386859886517662969840704773099182388044995518512564685863330074349311914661933090216792514385995835783286651164799888393988468212315863117383303209447153692879342582359389219265931076255150300289289737086499412079512132317836690677754065927391076347566073503615609290887402481469555086958383481510481848683948453094033805268851528828304926112442614159502980817703614637226988976267900782430139467207849301321792747228172172249634446632784542285113970191303945363275599066670443352340450334424935740152291880506077556082628238863486301210484073739287305841965794603503978307012783972723333299202171609475546226513791495283918339028582580566571273519733288120344713796953504035103365175380060593689194837368793038819303419228936805039576408476289091646437229439664343280847631445281565262060778368963966611903548852819845089782761402366662799900801911105195768493962292590668781298523988135865545004400070884661004404893830831844823171094594652394713484377765979732488779107652789498629148636553588486291058438098860391114743558940830959403397526945068979521106231664838105346084317682168306210425278933982064922414306797027181662240695955328071198755522063158450809553568008162232490282878720521398852715987410220121790920781860518429546292059012129776621208738971317606187729177407208177234974238780682478983751563245204484832946948965111342001912397310505799928313301884460330398570342901127158143910170036078357615607621090517337422641630382366529980302189264857900982721902292476005585635868085454760684046112783570021128031419007342907311611438197956604913163660422991352320205591625938783059127075751093216021146365432212888753987579299417986848544679395156500039336030302230920056227150801399122265684573347844879263037951022102995536200989988432204362148399596259353067352805070293449341124981988144079631758712407737218863368321966922539566453315151972414791512647159859915483223891373481726308142046271135578989129786069278586259043751308010604903860169536098723272303672921306469973983835122345730791923136713539719915602073095506682450292409613689169535865459446793020978209055740377210468464686044784633592805472674091082680723009280380642917830166956288181469999902217626826763697161122297486749967969301620694470175070599253213321516649643988210325276146014951195172435560486222103487317510390636264144611184328536582673034809129661112133505614141432385139852098949621613523628159434077636805199039650987553069602489911401067135384271901080878219742145511108294080941974956809134229590335645711274606771148258057543057212009968331114212963743778923692977161339131962723251330648713278032897453999012037648899938658983280022158613382424014883047014190707748880965157866761289571854746364764037748800204917012084885174676648136850232127652969770637446319041241071401434770448919716741441555069278430057722449270663530583691927144978559913177430575185197785835214902571139746044858257790120547047526974753350766137485177204446223094909188609550601115534025880031746090698971052202655163224533374026640294590365179425481891215277897995477048942936529319396080382150922113950463927355453698440695029559022830972837851738258142391114151149619707173052180473287617306678954310590070160822867657804408603739633437736867490561486304735126914854317782843516360662979531455364505527325787667569754197002530781280640026106668647914026752440727468615863981952272678848537980677157231266410438042829305415345244004672772946935509363452443776853395656676603885633896127493870190935897676956011577292249639743625092405152134572081855037544817710959515632926516886185169348413124332554616431118988138914650579881987174018208450681348541615155285264614630546558404064174044828434784230743096393582763797096338327569826160889401243836111000434242956300506169643570347752345375688732817684958418533105451874501595690074804492504297976690492484901540230805523284330653511031272713646380794589996483743528322056618702971083737744063204056647281715277489003129182373714809657347621789226449684701876323205438283277704391262129928400487437591006020516093141871060879179431149946905855679556096690535515402173529222944714203957367598292038950886118189455281441872818032337123406456459802771246008797140867482370548491652405822394028005856165691450517388562070152738685110999913679427357434931101395895058228227838462428968354923646493232476053269656388175107286053916021702468462146115306612696310768978714641243920912967381622610660903068254977892610820669574542440226968586084643217194577547138462728624709544249183397036535562838194000005252050861206370010795896540688393001427250555931844647502208081914073106432101368788768754361787497023089722215634802638477347852547323056235501967683058913494984314288256665237232149752677147929880857582132914694945592867116123373320409254212394285692419592788721834234371147151169754519934485345086598398014915294783016855303684051042603909524274078751017422832843417531967665877203249211727278995112239234116068565623810214265177974900631363036221363838505111912918719909273026659602678269540232254525557790221972837688046167139853767526380385296741699543396861576961740782202721566533245696146184246401202294983679770279765251166169983176732475842197872569278914623868618099685274413262885958715976463908142700441269459738577905829386794695654109981416917155414905210249608899934691450981224371242355005484593574266999006425786994949751507467586527255277560067279183341579903758945008236539912930193913973308491022810370191062311304996395451551704225991463918428328104565300122575712893942495234173986142411114918552637033535489353535914449348487629222317499762480606458036824326057661701338378078414691857520796456245298616651026314684560994538131232308563615764326072903630692339583512474679679404094243175380663962023606904186793167049427109897430927976131092466565303197947411278378295167074973466534562190298440822110890188559312512200737239443375958614055224852658586592658175046116790927639529233837545360194387368767473517606822601519075633493156853899066046370688813007019140892807027936799271503004762796664552589647382601031501260789598323945727308310263706865787741495697996363122109549431998747165267449909585363420552133578281436813854959415495538490651468687981897028006723886740892583586135436065600899381515570282487608716025026678471690709342054673907915355684372889563472304964998077888424286980724404056675772774321118544941867599589192604541484402751765013420454942750916615681243229047612754192591881762583472943022366619075118956642908865611116671488877322597219945138382547997964239914152967211930557636930779646005977656746335582568289175788021629364992366495598946004498034015726368997096651179056369365966690606852758039163783371481505775152891293400519856901085847368137393399325587219403745756543640407448819115563293052902614041821234737437786176359992435950635822189157489456608127815823198707342418245670100505312968859484514812887327705120548586384032704922746823246794309615028213076024046268604202615342617728574813409470839407960507918884827121647651859524957562313111651270772550735272914893170373378806489827526558203629904990475579665710053919419243354767534583245628726376245635741090337432080515716552732767681500156514082855631043111779044366965565340051100667680558447372749835501576222653212435069096249472764212725760639968343062613242437204672693109263010140186219475010647486684897600916215393128602361927033007439367253665721596831005960094866654232881942839642313448339178476212947735598754687912492857253228082239037719981890411635180798569123919015336719483745790517075882239325175436801794041561886093213934923973278046578763132656456938450930536296799011098251248247210925509703581545083235627232890532371722319660460405655755723845285150359106608913257559370422016515754575147696566641683887713126302973217913882950099518613494928298961552410470378898626834316662839831369817005830986523114234640198385209223022843440556989403741205682128026924792557872399659786693052659818168674275893001313811800265250071370285016307997544418197359728553914073824264400002459230959537066601747376602507474237873654982170794977774009065047448789101956887575561614678348809508933362532497318400752897430761649709418829235972645936780769584563027389806828699140092811519227469098902392846058981801026410257785065463439026345654940825581550265503996612664908942183274200867823233632054372048932979100065065377041589197896063764076137564342800862140298599009988616557172291039384578239640130126051220813035025622644900193005806519222102367223576240263978629846311986122702833796944190305522899869211981283970563876485725396956214463815164710430616188039382274719034852149233259067704263840900535407626254051195345276329902227796500481074256556453161135833724485044916202132033853949893661890438363377044429822105239740394543754397187696307633118985357478155558719438687274018273566181552215229774860741567928048275738957178532088271538421683968449378658644301214620816390757512256513512132919471225124133406739494839951859734574425661661330223798618908020292984184520496729936599750355806041302373796118008951932838691590035730467205455083517943047584815304404833612697067510513564531997750082292816063918801248032479661228252641648448303218684316628998899246738981060330061007741989762020301244274133646249995933880418385109060553771647084595997548935181291425076615142481219755237877448121785232118936998660467390644667605641781835076915334619773205190612748390803832387057526297931341018900552657769027705003667661824809129980419323987920083532048069122910445807549935344217411953078750294502342122136274542637997476437064701851292521155335452021231101485269992716985328552530816600639172694453795833864347260420869397925587466857861622168571522930983908480297356066228989966754319392633950090321359981875602773144190146004544260106346282142533405618576490334789541611595773769089817575060393489813432610694824259639918899311183895457454369391766272728911834908241570380819711095721419620960509801547290539548964413119291945141712167961988139786106395815979837124837675416824508755350203130531453341467872834441710520993768076778989893616516325106392549348540035567823264921603093128588728577971657888450876068377500892495820724007345635404796737415617880833665523882625132414335622069290718155820192157597750617295944097899108505440296080621075356872398925307251030311124455845992189938751087114084053389954781062714226734540011316637080721813134330214953681988024576950944153873121285627225591319824187793576741212719688275661989758236519296942472264414176586106359387126241981628605910802861053469388646300917277787601773475252966811339410811129927838367387754630263609973998397092346057308634041844028558798832146495026212575505478725885543398658575368911884998911489507213119441120808924961683234800029578766189048441186037772509565005584847947689129875367240167281496462244397864957227538429148569756471008590121586848940684452377745734151885223528013173876171881734356540843505381506908643347781822098669442996971831708376775950502460965867877563569747987126373735220252367802366292910091193926976249042161582457180078977122872695415991773375985329248054004881267004034335310878162876384493196716453522178110869655232473119607251794118790584199821673245268680896278665054041964952619140777461649154062044390578958007794344316472927993899200201433181600735803327194860874484416419199579574196981758507680086163343334260775943861045034085384262994847217185311630667632833510976776436516563473100841908627118047305147571482447279435570281387002283041854254511055707759899056697236672572721420741043083450849286448169113000287127657927251946302092190298836996475591259995916605807805635402362264054028144639881302575056277486183454993223736207511658327394326833331736793469467627762527872899022033834741678590206113948472385057230619162921273938519204238475636168756698807737978510131789880679368885883758941793153340569537085691075562201933944738725197819877680162968701452424510283818377620679200266376682531032911190951900425166268484754551957486455673856024038218949222754017518438421423389569972413599205996406488813745961458325270929826788158221478529801335268880775801981618741613209952374646373559533358535045796035101458174991716182893603140963675096924774496943430963811619648243933803097989190603038644286291270468998686123600743123756547987073546114729643148429884695388565573932480721810757980930453311773191212356883083287553937842268948715424745083907261899097878994701888145088803019349306346493454804573239469959637988232649918501383631944566705061018191117199272937736065527390998139658064157443881778633409608357559139871829217938695692882677535312022681127878138963384942111123368758081666007828500492371268107996617817565215276575788270573298296457463479892975564105288817526876149113301527837014962168884836242777243790357601650017213581307507298537395418973893747552235361531323355342376939286651349996828046068574259965402956218201392608057948438827897549530144439303757138136711120077187193608815570794267689316726441730424720241713757713129083824017330681472075503478135743021466886034475523205437739086718652610809538816997882775804005430001924075719120493963455592130374381695379054034250061309150376792932788718037094567643559051191252502282649141547992064545466621659100798271023664644692402902876385505351737729056524898467628744619416823675419764608067688573527672950532694958911345438888360249083707673454102648346027926619876215316312066919014828036000129636246340362883746888740620489290517114409585620564056314617115286340882640285513511520856374618184374791720681697867497079762235665162611544887271678705949126269078921698978470265172247648686269607108153909460778920457717958942695884448430581143091864580690937841748416990660407672796390607933229968347655584891987020614289802629169946261172145160614433867345610990840391695250244375224926469168651270542399339683219164838972507266430007724073140509650543600963159012047429406191339918187113307520330632036502974916670863461836842667291329748296803733833529545437936638694611296038340859412415171599076356423593260682748888036956035817260647411387640189168638205375736481954154199094199217623387967872334633469908175007149979821062586919661244469684644205916349706995417624247679095300584104282008280570508879468397314406409906991441515576524015467410449562682266031976910767539986415764957826738643518885449393630174489271624202675612492187462269873765522494525663350752961755670941944816825635086191147528053471266286331370222602168810415804721792358580225092375826722531839004391584332277802367543902658723636742940094396719658807619156221219278660301778195076793095455437527103815441355204360206186338124110749817358334569919335277416351979777689173392573674630508262610404446808373193800106005099377510334314227417073811118868592340025946461956041463600174329147461701809182728401849476288837691897457593164412742924941150242700180305516790702130945791472362366953550548359858543880054655941578918922055860474401947509250073548140448549732064495295926612235877122742837310424977945046630875362199221874455120836818236629868872061909606191589055585027769212601960393376862355024032176907945042618362641102727477471700037220503643351068044377890548337192531494139091848158114826682680643487036169622915901057375741486473709793629903420741122707743532816940797549525530383835398097595008656259298062558591818901719998362900841473775186175023973801948722035826339739294700698035839256610152293329935131271462292625386422889382988299461598683426132343987978964500299075720157403501768757617951472809818065101633685477389196591974758038940182118835195251355466950635591250994591097426660656123326993525503804740232516729468235284912844143821512035776040056903379961803454581436350759646389921895854837432743901222534816449640760916287609033149179376114812925751908180433393172923911025444984566702772535877175714562888144042483549188104225619719716246302459463061034842511459897792771062672836438932832048130663739957534420790543587617783974459063320094623543339485113641800227578536590592910848677936570160923493088663684148860100335478196833944404052284185427012353424974878324055981903335873904856214607508814112533554437629819777638216315024112713784860150100472769626072494166188575423122037872098449158227131677506595231914282367540570719847984776610473501131985238598347701334954516521475011418283750046138875467122403291466599534876578955017146361454871253084534178168457560358924413123466677605036087639282295339462912009343556671276352464122789078550440557572464521817466395205648193442386577624220628067328951949061340285604606807051461885126211996505208770427958096501626223509720972520314923388737871472551843210357790012511712866500843140725397331968130068571936706247961141095507292545609432451155244503267154629353619109617519831765125124214070571255996940351456883193356131163725059106349379113360932274368270400568880029534534250877574237951840032792552570154119140072636816257278065532222187878797363566080237364780927424655415081538155777581986541543026449766603065930145579831059561816007198289903051821940979039063883568250115724461197194389109407609549615536446575258323760480560385674245109189067883581214107033025735031286631605398174251762658913816874992985790984061757754870416567918233383041351774615427486979800960572762839255025489939147691818809484551590818364806089427159242902527825183051112755768038866832093861388495240780471875627216037845189643895787866909066587125099841389977788080380603353186277646510718967083670253115772547932838691219067838121299323920117962814004006043951818998915021773847003617112488839507878329297652641988469313120028394723256549035777705249121766027072188130523102264746653306100035702658715102915843413407924829215786755243160645827496066170689026755249515537435802085530662711397244983227958029857197529037585196494947630341869274654455614525964285002768086438130460379755020912142268477602427434673314912061974545031480136658933014746375434181591203068049529077293940988078276724493904991196984687963556358109811898216300910740208810990348062132389955740742417926123095690097862349099595308956117443418895517677661573308920726115110558692607064343570118791639819098085972890817258086727730987352324447576711204104900644285704331936071295983305022981192055015426553914103180240188431090442400067490138968847928891259148803471690146136513327908271027589678655986018228377887409757322763296896376068044747140481937873094665913288245434633924689581827218547011003146950244655893546898080268280494834440691112541519036789334694770972443257074620311781537315972354391976695615157656386647039899912972336850959770515085485128526355172892925385191620042235726723885365768448132474700460665622910950448995028147072963222528205666412377474437490909763494947761635300498967621244146829483173107031705810116140166749900619103998752904771994336803818813652141946008073807045709086964659988981179502541550809303617293056519189458704798439500344834022538159465857966838177146360924075595459737421500935163278489713766250140192580539883154936263316848272100116062219184762569819374767953999332330305791268272199710150136036871080715316539572745806728396769751482668678180518024080837192561269294925376656141449458490367576078741396853081301558206192639542152662756008192447686072910741945908816602937683211659581480896293187985485861754187120559765914520887811023107374136914334232255515755526932795985440006752258160568681420086755645717436507420796028684576344314679749064838266752464908638121033208033219506216969340183427679594885979256609102908982282056418951472851981872143235962301236047965784783066952345496053528171078946653716906314001393410530024395939980190623653968003958721999835735689418410956742633892833379615543899289815606448624923938338841810079809952020528421859785771115756137019019243676029285410962469843579270401310706345422855790967453875042820257438159711459598605526955484343990900585811375736110622777134806826956965212816478892454599423356141543698627902473100493528393218274962328049070272098788016193748412255343019719141829541202134260562852549563574850875299003538568100390819238049619157344884909759391266194561991655627289486884363928259886469126006191165236241618488735852201836725265072493518437821244398944479650956568801233593332198856067904084074310919587939715906487172441724009255856431061662076837659131833897510499574900845359681638282795073019671799192808832321120263343975018816125642114170326037513703506689706834439954212716009948987442302894453053819675167017967786283097152423040682776890326961455631529076592249362364652659913997183265901732469390249955294207964545162902989671076469645122756376143540554335286561125145146879980152340296078244062294850025820614424742496423486953942971067263166391636213010811321907553748026018226192308723243463045443377555563968835985317872170547800883626077298209533666180062413292365934827715305159071385776520225165533625072363853018648696351605206349487015783656742906020492404468687060472806779054238249045050075419806742855339091039289221772426490043783445869656964841135949532010222763945554042683547858378803458781028963561560053227152470252201646442628393464864938222302280246243769292937077107551336530165274852117324427967722019646180121701592426856595947402349100989111389229038343398151702819364797353277630388059624604832054047257600373517984120481181006018715950802609388073528229811854362698222614094312983357917421029627600898661281152607814849012730193085966681088402174965985512037431937240027936690841499193922297293501641745989853728846680911244076050580750396802035665539097480741344202785152044777063740975248308026522613100609451370078681767012603295320921528325831458710106639461535888252207149438150951335625211817847799269457442164190099429581414071216171775509724920264803160835664496601832200001055855770998403489798035876844590223417626872046535433511961247296998530590122191924925412280428719589473827598952111714899440612932773164795530126200570036786134745834753933391573028467906104315276159238217238125051110608072400071087484834393632615237285578818224397596171119381723055363127035671819961525941524547485678313596364589393957455967610180603664080173556418322678360061043525437260980383214960817430190082915322544103002875303828910425175439024475295667198123597443509219930231841417406641326389239537790741884815076901006913641335201300215787881378835991133494219109134891324831644760715782293248943582039966618164675726879528652822119745814160173546677520926855639895437043479954127207624960843759483795464269419375523506566283921011123005186384278866738828712807840885229935982953247734857456545844183795026053009517192203872694638403923847247449767395068826028650401198747448338776174967767797017467039794129516431947303434381246111145379216593243690570652059454734618475485988200441933206241202307158560890844639316903360278134872098592388847027783982014882508971109019197904672992574810357204737178497670507640840493541341081651265483856470245444933214667020553581131999748122838680086326446690799092072285765950014752753515901936593330905978330119181490814984980514572571990403404150676334516833626770077343894090406439641595418461676115888190043876588446519163257422675094513237717881093829002208336105209983242133602132849924881098874594326961287872747089046141603245804803574310991667896988603649041478367388089082499061016019022260430937526810945425548631291337112463394189994967228206612126459011116557265149085859697038443962593187424237036558832171732627233416315642046701567133131986638997027493243962076056176275968927879690392879392767549881346640632123910267565637326440818192721370770462587988588236604736154205528361063941460483583777059592460828186423926054144249632591988675245058499979954442551849775446961635153059066662056702446964772807396360243868416837699979298519949907482746334675267395308966832158612863001846586309302816393624860978071088142755244661209580475992595968005863801661002050687293428640929975407614923714237466408660296539149452665174400175633481245162686698324273310954197215354243874645604368250959332877467337599669750523322118900221991301441887704425755909872626210918306535249252225693842572903491078739488155120375174790275498708284596051037113866677733475308281935493367098186130194425738471792635860589683667732325299148457864114907064467513032597033089476274783483878961592175894659288656831636920912376461523023340868408134409234070221079124543448111995767049589594076949036052054816624848948479560215826778650993721237711871328102344868796026476663390124133506035547946343751216118723800492074633765272339479971768270299947903979639296312185529989388499315215242099687080563738053073278101543041596650731088711251265319546529928897074145875603198854881218127187908908787400431748403094302611122763965693943867064446685017330829836532591801665491631359675133821504334873621646581305385791987598391225643051729179172079101809275071750997966694869671007911530825696751574348142231814762176064619200523976298205336250898981003468023888048283018320104927723817226419628662674501156014624098700594887967584517738128648045479407501504565470664314796846071906948715816940166208633831023885055157016458968606229354533658258536496667979013049955221438991119925817695889082863650242556766772377701451639665817588523433825163561573529970942768224303110845337203876799956998548543072742742195687607146486667609236092386800663243031015592759510258893309921265921141533912730730099028803068335374040051459385108356993745659857089062664837783348154412998163233367500950046301672288118953021465279255189182703056015954761091212866527839845611281594785187124536835580648934465012018950446664455173964718446833482570297388288422624888013001122263772513167031489104762258225955957629704709807560407046654632884927402273134319885890642108513316600970920042494350338871308861375417218915197894344752199947941626182284713708594105416916130565905613519367820418825008524312958770368506497559765728537274729684550488431590375676244613925400522728976265831153731364647653171461019220966212042449994839165611442760826602667884386817908779630461717733430699300879802097154052958133656088805764452337235557613468962167938734425295590230367784980632005695672826721571990884612984751400836763136317300916075604514203824521660934772391846230726320639217599380310526275137386717325405140048445103082917891313347208544194198837725872226573160327830645971136936133282289102620453243538654534531290136395780866599785802262017887203399407033008074078108360934655810756246878151509043811373536684208687943775512112269049396030931563405637348822684953586332714975457753159872643562108809009257648992422454470140099631025165646304594834323789854746438298373916659404782487489620845330581501617804553588079957968097421145416604947425843441366295085884377730962061919564232411608586459219842313788904953894314059766705895739020452794131867289144252467038511001492647038062976593791195600942304078297193266601067592804061589303188665846641237836872655490324787107760115084729352317592747065711095315207310663189013482663146681437576021993009353999090709318385647529340126562076178995711661230455723717044996630734957214531282074411444280844098307962612321077792170829355872893742605217281537734440133334217213032226083847320322982415484969899552519884431943453972546198562356848465835587157219410863794059517851201585710705727774046744812444109564779955983169398791150529528408080331877419451442949837149511006017723514375945268451172713068045024108016511362771124667932438433302016609349109380008573962495796125752379607353016023087216539793621173766790160238054624951783561396379132516805022956331486271012197179556849447887287518728617782618184462568739158026333181273604405087047228509885291196482170230846589283169765710948399880647148023308809637110265400141082192212616006727785349854491299483091860432914923533022376006328257837599123964065518328874917601832405588852709339427914085552459897774217069835019844792444742531081367428174865724248478564547657010140574211059024658890868348504612359373561293331768821823832296348112402336997244593369433768210946944180075427937618489689183108354894507160328547068621098307352178072212783840635438309959100648829575292269469834893462411179232346826869944126692647948455116255981568873219907649473025911188949508596965054213536070177041825383122344626540485025114676943842169955723540089850325150659665266653512890229004659135160088598917823642298759443914610729965164815011696600849058361235976328956737905962200693798624832782176264059393099032892616547646371003258082564834327951343055860974889144683475941038513722764694235940649696268502136642334751301345652913011133869025582562811726106728008522094344160651793436211805776116322937449207577983825923259444739144400523469324242510690381485918705041782927787817717598709623516307931167552118771535301295029901379374232368286259411006618309336463107386370051027302647306077184695975970751974822755718252903084072264011082314991043033204020867676344685304366981885127808357884282661344426435965917458364120954945413236657426000076209359211775248442979906548173990194005812874113121214579738357627699899662863082139663960714588385920139857556124379513198447258969524872715592331732595356397574413311988278560646960738531287928784386064813459233399436315301729809387511086308845904830871847064402490402096593252292739034981317703674704693502645849667439045168715697118473088053643669132114795748028589961114503244752267896788842881514907747930507622974061770458941361228762245211052883923462133438431199359977733301031142845384929313497969060589409702677011416095875110789785379573261638738411909762351104084392034712631611089365712624196089559390230300351364576698460663365450933803853164074652355598201181392899810973402684061364400347548237404534728557347004585040898360237966469917891723233762493147576685531952851187686626812371193922615809255424420318701156631770236303474538847360825657444303790260053491265943908104569587885054952085339200771655406997451066072614322029611553635800007343863531817441076597174286308626846055100595666967381866547053985709778281053454480515388102726389260596004072096139123417369904112899129256931277759536340264574544076147653666671766269070830461530981928063124259895329074307056624513597858569728759903518715690166333261374493836944163798532931118867390475677544799611544035989583298715776845586633085089015315972459760043815217437325521434099215285229379279071636413714937940845298967440277483546509069232757919674555098888242767179114341954029265377394839756479299694854644124414835260568165238076742799711141599510916337695436805844655337808475902321202224695963672375779349304901137628332395441829781508046439763798555302443344777970641370201601298816750644113393277657692420430530197784394403077122624696844050996145089811861561171696739024622020781080828894287351056205604017520136677478886755272280911743268891613720821023786135888290557560558043947903452319217253223931800608324925202886120970403826944969643709964986375003027239493219821457811338501626040935741532837116567096935063366210726145104819689675688012718807737695379109215179647730237876757813644867569325706492910416143150749244312494984518190821072583223195152988996470190646630550719867074386821548358855378523621234471109344206016795685114019002290090693968993286544683905583645265515111046339273340841999178703126025900171970647958041539515193407563327409192906355309848764509668371586121163743076915761327107993068066866445968676003824030538639626293584478055474339746759014464183317692603618530408672722269866914818123636087920500973628081582766168054405764929699225474144268191229081552772812116814863545313964399947498006628424618275301180832345208862991074937024534166657566526815980430516495285035097217851361110380821660368966555792804687024134420077438574523990419781450090445468159426892444668411325777788685697148017660974729644749870354517832641315133420508263305502215384296909431459812753542927398721694033569745358782084456044289180217855074996921128386968757135213181472509866379525486804940765675897883403672297902895298033188867454732069969383817807888364442113842637044420680406208023579218826389052196465200239551791747174180458270741271899052954062966460627713811306828342077667420546357358702271365687317154052127518840846630703349547844832192205536956335076610577866557743195099732574548008588344044683885633244119528620345928477380824805466740462779909798159552445062503637933616932039499221768141129899041989614680967079637045090293003807499775824678170535505956997102368103578002094367350518807409322181565540195750888536935910781470018089733951929974471874323347089481381073728884113013567329222606023644987037342717341037642218826945361362940894412553247328190698316829976913105959687136298556341378482265674501531147632522220686141375246746906006839456924839283607213088926262069426721039948354294169730176916525490343745281990642631397327765751467923979351044016806256335041829077331478632737302399097748374028078140976954408845872594312270069496536650375960660715120579647169244244982818654969225749242313364570870061042629331840065888969825792832792228818753184078263319376258051309838696661783297709517558677840201179351059295852371970245236725953411092285353140349196752631863754895921383076441227467347291831023992537981338658396214027285037691028049108776262588919080966963336765671037329440314697017428335970176875432150056106481704229292545801403406600310656497833835879700125412783737201323731156698507381488649185304829988084149536591384404527036700644820869083888609991727201945277156173126014304195399998658366299234653454409772296486599446530685148646992211592747039648761853721496347333591855694437718489955333711606190289031647523458606375356925366800736498638865297429072819579672467251623232337098609558373338747979847426659638148413851574790884975627843331189448128679250297837756942673862334868151570392155068190738452280368912265839467412943342520602850532036117977439308870825013113298923033087282303205200644575046485714764143222198448376605332084228922318501661217755848496883613768984674623355120986990900005621310808369220048863742835680061498544279984848379758979562435037453577056070766962916785914143782580231692695744964629789449749710175835611380030339923345484581970147905044085079714782052812296039216855007880367864445842892495413808324214998874668682208189143352546018833671272005154396778556147303440209682783502503427731913797703150363976366063293135326663332374792213104948612251210882737156985648367277564117059300255392706343612081398822072735178806699464021597286330113803136280097282483090464515148902083225525621325718976057882987159851628692410585037683363625549145837820186259704608334025773444938142794988241038716591466672615533499942281084998123949467482893865133988288682413933683389895989296876123722780227900836340123112887765306858241482341383590952789488531088757110199558637280397449270688579519677201860320269053985014586715289423926183466101886362985367544497022130442310918429929757752789187108102254046587133013953616048011112332161673483868387505855868478217091125968815073427655092559775212932266384311318845796135267557111533993294858643154965011973986083580636095553323557680795067878577211425239215791692596582080103461833185555110295195587804657941443330426731802189328732362614286824704261196813263652605349863556111398573950754542410556853119631393834874613160093739368449307358925502600887712453122193910602511191096060421088999920728550890850784184488409707509343020188352291545945771528823087953125179858439888309572523363112225209320403159490450281858797112112721763536923674055305851079524083371689025643219632635361632592943452861072857706583150970006139860965156351037361011561509774894907377503329121525445037832903680948589987801304271506083790517125107654326793000772527423317278305098165531591975833363571474403559488400276462077754279077596183371176913612650532388008334464677515337946226886267506156750256963057720002916519675022234041001793679362115994052666959263888154978443211522057025638142583273213987162706300338736382623363597653305264312627770331900845829969567947115636062837707017592551868356688900002999642851705579029948924267588203897514715045628978278697342009356306663273618799460423124328632775938029097673913707665034454951253071179520307593059420281016872146412438273689732890570373644218493353345970968601653062262411498478532583443997643779446696091983521902772240024119472003121002760569765508365067189808610014276015259462715347919228077834901828632579996167794473009675039989531260787571124103874721680279811005503670489829604192245458045152549404267459778772649696329203882588795618753227233001896503197293048752618496979431220956415242372107169923772804800691712536058515057534963879202690957608536565244580992325172677689927034338190803217246804250702713298439503100529952819999282207171886370314059297387322895776694982613390738181661751180721417806518818074029904689891195462754898992959250206342609781432412318656416075279078926023086614890227151731409191218293606972510112978985661158660346192765465905948700925625859420670462697314917543119761038176048869686904537065203927589863608710169557863797535220947239241480220182083725547865775909382235584335816595994048247165623918651629819448560427678951283553954059841839879403833747251255842857294196733597957040823991477021558843327171263737096672009014228909862514495389333306359415758017907405055803347924349142127342709012849485638480921595896356698481014995944863195185815566113626026614400955873083314317833877406796301608568939064960596470783998604036405887660954578989988400104773028722912835859144677794712623505108156667508036170325590166081834694890792882892258103990957316433799235950227351533927169311537309643394795138713345612155493999315515219501194575807440836852923757208874960556354897150535671004126607747417421168283977062866006362208368749268380456655909576748406971046561382225732887546707973391896026746271460038255258915865478826220285525901960795986079191392107670715366987049289676224075351574778912142110321405791305922537172617455342792075252825159978693958846408396863268856818085978726863037188217482275288205850091791987090791571567516146244183906564433935995964671197660835331915485804826179679702121571096462780513121549750685555611674081817410935387785172807065775137641331310785506217376136353192383827879392606206018082834050226248476065040635023394952925805159082016098641020992662104347830430917851812581228743725173720140817228678169507884984078929792031950739520143179758301128976628210772168139875491045792503532421251513059475624957118237450681802101249694910955520594006331398133039144496946505384982685325250562693301245047167081671166696818771366853210612241160346834232998989054019772648966804492847706098603245776175101817646481051483414152296473423151085185315919409739402954701219252285620821438781688434189112097594105965578402808703553762494771723542350892662687796062601496044239501574793547734172620294326212048329059598334588978602195430919096547457854536636057608526463538913920347167337307111551150679554540174685656337745474200798074540748361212329430464358378710823587486313601039893819689670127962852480961803222168840379295500821499907331443581158001413635031859218208266646131168861758626866763235236396169845670074195895946701450032816716362433502169985922476495565528528627573856364215779356199456008735030600198787103457782405056003032273633768300411767021871270889980796112103468796478316044148858740170277310676636281189426161431541178105165834786470295138055371921626548096085083429399543549873111985922778893628912514183788059619962852425821833299295191018820532130016935494631576573022686122582262418206202538219478155034717062826887416540689179742635975469036489577179722927197533872870255999361212079729904947583712649284865724953841181604796755222226298968675873785847365630239094973042046890686710509643046380025618461710801435121953306000799629127437320700377805805765015146203897117440407475635118391080242615100373386939359813240413127658386980735452872769773119572539975974534871568728164194784642840055298197833866785011489407514731896169627050325672640590521237076722234723381765142606367445789245502705340063489706375727336566233530268805175230609816083905975035617855582041981795309132041885843830041307024362024501337904460040791516393551224031288916439072003566260122694753371840836273959980678850451370783599225336003300299549116207997001595646466162920977470895966942252348335034840874852428005331647820627183808975572384781447104303418100889481110072292602517788348419109313924044004015898343451640483586653709226002417637587067322114239762249574212044186851687408003829642978225345380053016682704842375356769836443951142101985545082635906800674814117543479521575431459488668272701508875361956300479521599130721364223312454009953925140374251231385005409053435901577351783791637500553348724309436412962868357746983205658056665873211527282846431929260373621291962911989980717841296873975973428136946535683525747617782223142915993618592029138097725782076287991420337989082184824420663122962583249562268138317279680868878701757280582596342549210030651009214868543669682127429918195005644436915180901049749083040402348071292289473464067191616237071422305099464948317709787792425938791483585211240225735060041025638583318909117989930133979825343922094061878153784352419420018613842221765381212912724797630733393746939063738727062420888682549088876955757920316714440119358074270167245926722220607422292073897093475277208623451174279447160964403983545454510829770077425338051060580103121143495274018400026261872212011402512273220091178761016931043092927288664375208202600873623058228107766827383012836491725057885112018053806597845886436949501688927753543624782977042819618580803202019960053985599983046295084773000086460663746446837771799992466715136669870682745087696925638246227638178881932260943304953632999842695261459687135943197905164448784336577652524010666635415562621863651146638032265519583157821178046904450977712615463809643783553715575599718811842163794793067357972540366212844903347404088627977685283349329317635573286903650037589721773234211975603450401057819636151501741010579926124425381726300883635811774879372037061823224085286198439444825370676557749986732118106978375094272709177268024006463810723327136382008541790428815803556948723607770414804073589640322580061509564429858591864129912155425391032752340255195963436311053669885040327554006259394951566567976049422698880693983071216111752259650145937233373231396579711697857440207261455541914302653041835143473275779100584617459034826246446496144315778967407583772117293173088100839512501900949795645717844195295239316233564631101963522648006942310323442985721849514387628755477714837829360594809138306671597495300432771905495641189433309123241798962841496007553804846268944507704795984981381817338361398394609631806661095900231883911659041970153316249257063455414315542960863864238607296555584257776010157324304477231510417135994963427319368020529866706768228617604559997243179234504522201495286929235050716704273399212965584943028662952665390540425189272312454848445044491036548078538009922187457061932869375149667800752668298087345363577454449859599537415548668508831642540943784336373522828194194354526961024119951128479035659912672444594445028741070092384896726168424506808127581893911109471637506015500429118178574439643377577216415006184127686654543902541564704803589735607155919687709725015290295902981122002604064836758047920134475689336728709396585549953086901324437797942528524940420388984853512829583831733948262835691702729275020104649256560906006033504274498431108640361618246193740898678279400172729839116034106499753721018184467355259782545968757285585454425781086049644145135351119114769013312767889851463733914838345932270903605188670942705542759683768277712610365473217786621384216294966681981224390229211312833310269747147756838634001207102952207727233719565292437888302616769173612822954988480009662497491783533857255519791388164236242612960975904478280036495733604136465937134963130852140142593984810983773095206219465065053798942801954802251879583743320202319283870802032904957678805982338288861292146294466918365488040625640506567346084990245913039472988578970681832814141394472409680370306954160624062931615457799077900351811034308240144453443472792130746778515479398544382324947761612299026291093912514104226124493159684293160218167153457491676499568999823039805706403348401229604653819253040118871966828622142067383090568586899110046124980115077296915212630099690029258477954877520383336627454499825527112092934306948641274281460991656404882337978731246435268208942533757575753021034762462141717917419682735201113214551914382166006047975580133116152231895205965285150010759299803747038271884392967933774604899145236664662625921171074363456837988085412020731415389415375855021777433047993719861643405854674800248969558848481894706024390039766948251983339490293582955119228076773556055183602172780029465799923018784010623709609643129730687781228164000435957660521026249456671186049352829674796523895685614336841606218782487401854954236419160569567436303453677975373677004192762824080055170422465466712880819720718209455198877652915302701133386217037257487901992220750269168033920039968897361368304925415250813276488386737378390658430214976373223900651616111003082613666920595023723886176870971772993041530546406072205191954701496601349458283880869497389429060209202708411937420048626991000106657923172229024267982676639527616889095291260525510467412174711163442987375673291160350031789241710952983200301490825180769503725324282466662845167765500937199937899766694112229885979197347911294624295642451673974144422046664669895292958325132600455654976886433409398743871559617465356052667742670850256169809424733477823508070981500562268487518497603026310334269616201330149949616943607888990504093653031144168101951831755592198887237628268249957941764461812019053400399632021475942252135821759917372013087464943944520732933199099612530072536223719437415811727765907032368303042355627478888551129729308905113419597647356930172038748845764239261067890351652519966556655395886540038733544085972665433480323625632444279009476330943309377912586410266616364806006440301699780337513629826802706114228709791270962910673243176284232725340667497230295973669523131954589673578132713342057054661276598936844979857597882051220657373235253964566642610889730280148047240075803362838092265813379356062891275242987078543955672731128242966045245885107544244072877101722289728848485881403931419230703056429637324059457648911659201980703196912320743050017676158855571358683142541680481079869296638814321133874746474466882154107760742824328379446784116902244644306192261241656874627996541799393852783630512256406729638021987543250579733185128845977642771399009187248843455628075725144858493999620100478681241987926153980581471118745857484572080230209835322190282085421092208623710653166698523338381350503573659664615944772893149857233165594949745025012948081020929337294678555233177052627198054042348822946036825548573424061092169509235771656875309439754487666726888330248882983728639562623712127063997305250031837318840696205772141779186190910989509708432855621242962350529323924487581363214380523155568343101315376835745273725970781852407187954924253675288876975797714487262686013920747191482562978315023864786628076350347110155432077817840098834698081862001594785253491746146052352843555549960736395260485036593544622843139828293573420146480779459708298477067905169509584370482747374502415450013362976530608959370997890084261709597490747992755776667947992241515126106315928238851103586831117087926605225920778214616158082363907879190820164794055216931547559789177116052024759899403340121971878563736367226768849765407087361588521506741093661605125001043767690650813799243843364172161396936742991487991232127411160850392889630928191686961650858419294624793744566965422464527720312212456771969856092545258516448969656129693235447511522582258883332265625948867330300809587639539500815627241355679244322404786146859900847377388130105051169292115864018616368139445730453952198521646277197337004440837575964280145549971884890685648749997562849439205115317018168521757629098504994198440018766190699171180818738597366606261348656891007297606453471369155925317521824937915890194837651257185890874041575401824506186597184662078821744352783752598128021593064057449932890825928452042352366057403812513331360335846884509973887294545333419096825999143600387368094763801597448202998276208791696361503912557199588001662972621085086046702620366811661245032690696429791913418012676775482632692077272600806763371218548003861686835826201358059917568778063703196697265345113692581827984483167768163838284668989847482799761335323824540137494143716500257612115889309812990700691502894240726408909856769904264005864132287396518201635986906090869046727139222873417866337010800797211552600595533110410946317899763825346142635908747375714063746038371162041751326160790096155108420897184570356754171448251951401874164106885828029169748923421921476992425077761036947865059607191429436501861126090784793056346149670677102278257588757725007859738125083737802876201120787350932527925080799383530131361769519173194238089093660316281228575005993751252684235231547707957261241881066697033055388150254125759379819095673129840617895901929900924564141517197382061242471743024355507190706266173933529454220656839649778142955411061478740440836593359050425838441637615790792425365313934555370507940371038211294145916616141093149052001873528909525226119478083563107509182244116449049043557934207002453732135610140371904498652838689656040257926161579757391714987679954453556697706708962356282955955832190521346776458254946358899721514737581563949326774963645455619879151715457315272375028096439384939566405043839032794782497647663739405161786225127788554851306517662226462248326115944256897258786381955123079250584522073975381740799348548491744898922632809042275474278691794270058909567295379749721080653781191322070548237681893914073873540878500800610722358072553562295854980819913196946289813630218197833582308437513265825996211633362322109508727648496320459586884171516156441194337483908215884554313591331809894793470026792376361072222270221517342389091608401321407673582873204197972745065831666659007453163961423960679068724420016273413789298113336104527812684085059456242200327319882310141947309775030007465670874419763695252651080455109683495468621576342484758545286727944996076113117628679329900685330248406432551951936675339823104245260006324615158409714939609068068409306260868032009670762657401970930479497472896705268578842498447847372939187464186003037169070272752641850635317744636605602873621431384934557578817578275873342987969311428248928280293791412852088727013512129797256893759143050288860450283984883784671809101850612932282735022335483277464740379660630063948168870096137675336581989255920026411210718160634525585227320533089813103958112764244647853133307413011279367480520739610851702226753159859413150372437795950163612645953708302525399606194915194529827321264794142377364144170745026887217313673692056142988550387080994642479152279257564659596093414992981212586196357292947558604367616507603993228724442937718767737731438261651746633915319389900471904976806201428128147078251249473857786708021859447857750537173919684171359851953964759747628393079378091430072931999334604219222040764822445866967623944630443896978352492821116348975296217651965827030963604655720682814629843064762456349092536863210160236340678937189115247565898434849141745027012025828460323932997642229357785888231732187902225073571598264673623607984664531740321508305383637822546716688798741240432207707989787898165628923077199675988474220007508028204052936133708101030981518244113915332961655721974595664135498579016831512976406392649575236802795239564861847702859381896206934996501466223136961161518405111788268548574652656032152549128649416852372552396686039441595241862600621908417390561486093111703825946637137010323712810368404221892264798604120581161151169628555417913461724345531055755614778811970955699470502091819861196590944528493577781250133113075579198920406668223828129500896044388781203685854498418144664493410103916238786980855119711148177868007917052618277084425043590341701069576943584063232775349475931127229120654956890024500139140309075333818565263412943111398292715171375316568806489002367946212728924403458681944999730952118573365694736898834933599332565900186536872224618747991929196411817956854796389396183751064719993281240310741611279753934216969447033892105316021367740238965170406576780824209297034696659011723848728590881182512092557524411622412467728290616386660481431720122130921764347583566465362240454664927767599282257054279963611215884195890312655254641274054966836392899130128569966915454711633575498944376984417704281288721425418794010535841335437175678775264253485069610339898705755357291199725904830438121291571679672823109435842041618304476492213447195624398813067312126551717403041496683297740654242753401473933492736419913211410593219830732206642760100966732420294406623774199198354316459333905763719611290159006015780936228923990753078729762067090235684564032963399334659151939374823366811904613253040367468722216568327188348060859245440659979838319047342394212004058020450919578028314852616944860064947213114371066126883742823245007998549979663228399315849250944000086918852266404799225184869953586845283639717143160065202663733643314953940079509599557458515768273948714993313107838159795578395555920183943420778297568850347646808572384900260209494966963339314957895037004742337676504370264720874526702280221568002635244238247931181756209169803792373345209879687503869462141146561852893701018036816755030921653354347857486118760926099136299269964614918084706893670091364874484614614177879721964035434784664139406083550769525337934823807434104177847197584247151319504837565045641672010801271450636456830471208225712541023198178385840777942602358574832381472042651905421261052777426400125203206876510252102582344710531049496145731103947786519167878887569532566180758346873298409494204427303038033877941453481192118957167162964724846168791504958817040934750874212568373112638246323191767326921264350689293668976401960209197390148007597751293016723563677500279631894549344246710701580815653523805171084974944944630945961341111771739785418703975115609876805325447475903283997059629259846370741330605849603134580260881430705550838561148010003075161194836935528558404788866304686879120842080723219284941735064154409345775318391132573096372186585137752848588468387756542697120588839144306830163109968727117246252642906230506775329773670287321391683269923501296766962520054347457229332892767464368404724464795837863101556455408188798487603649859347722919977260914219132711536421637143424896729242135465076095324158880215763505131425704957334925436854673577183340533182254971130080489894487565382324599749438262587984528645006980116201421281426249047148341315693453529131554754133104529941205365581034761582240271370714312446285662926859730603760646754182015735749174849521849225954148006939409217708350579632250287570197662368304840057818608125892153114855603081549869773635593528302236379970387510629027414605919714287561965486115318246907953896798049222405460598828685675708670336021767599933047009089581868487167453793150749438263126815209622169359943601140396575122496060311377272927496808697241624025388219664985380131891340704260765149120808771786997472871078885673536681857290492828939986936973003386106358295191190042999194611825311961056043655798039088562819012855148983831774393743567277903646379778837149514125930594073848653493027453369782812752434351192775978228729295221587975433109346509937053241206293120892481589814892578569093512632746576716830639059540497153784115605744015986951845148516164579651172553959015043346260907546785743327336896223699860724744473452051389535574812488966652646816472575022119408482769820124509132328668535073507217528506582330668354259623317587097771091905588254588711567829479293538607511807138374897626593323437526106724732178647924202565042783901877979452266330145931393740582581613973191368496397407243344297328348420794631203989619908419891107850882928336921620554458668912755059650112566482370238856459235271784752874570773038862915993562064243342908952452322400395021515074148568863113493545321284822639962429668924327626308088173593296482247532615286409010916740676104608194154845007348482474586473211006786456913874768705403851222963456219762899386977429525688036111113640844510314860568991867883869383880025220107959859256488449559729560429252993962962768923279957162427494424823180108556261796931739015692869812425175985442793328281787796021177044538366513369185267864057972092123727488940116727846219003818726087841906524243820839843400481983702968249849916402847561495977304915424354489647357474233531647867855077289702879456385800207475729492812248198204221060592667577622527362971158202115257544617421523063717035411922912807181062830428292651327480224663436414815392901601020578633218471630459454637164532851891808890121254436658605838487365873503917338607288292938345528044278110072868325468586283091324503507317830000296071328757888574268823814987317015587240971104226509091977364600631189994728979973210479717984258007228674747342889931581955010301273099109778120644665040044142598048991818823103419938631355379821959885633390957635331313216873010691836877797580129210021894517827671093173597529968377994717481292702163923840364074720593053518571056751459367913715924538694580763544982686902320645649021975422130634766903271111510939680239504195666063292644029360059991673032328759416535068935056682552022043724379414809458394780363745096313661558079540575702598708376186374645955553526864427834209976434733184022115735393415535170314306265956556132910537907515349417906202759739122821100337012208993017118186005122016278220938116503235974464302920173700998935627485438329397683829248345876442192642964591971873029223727702363175942485089864291386035690816771143133518945820647728645134773430663019810597424695271611941271073580400383406412122437740034958971552852027301913032509211494268840119650746369172866358139566276823781004993230799030225858105770322303647288836984591309441396888283110900667662833036813314370301386399346235626849456132050586274207381967906327493849655688665069825314334503953537602796653107231055663912783590731282180843272245929682516391525452517778985375081658362877422766816681504090624589744970264614892498400750385169895181151423685847411390222344368104725117683627527684717559401067449868426047860443543219980582923449399118835445865918513495973180462717803970410149179311230416832513460300113578659099331228863442434395076771038868261378848530821039893515118863624346389451844437876457845926272095741174618260013467380169751100868023860907459149046459044465627650928797381360180220501235581144962233728737872908203905831958175023988732736719605660058531327749668948274825902086328554179245441389670120156080090132564801292917512927376710798399465632810762644233172540286375694407275265126790145944654458079548964456071691149654666677333042289350685259092851051434310363605276988173220496000847569587421493611674014375432978971473196118310839948326919045333539757058655575473340903146870707366193274081049499512293813246198678251253127357114689707601799213396480545649635987653787595676459815298012383583197649673370034325063894533202778614157295570535916202404147755972043445923433558839635676614966446409798287003828814776453613079241637957671809924559630247917360996899960769283497265178171629157204320286722319135871271025457047739748154894026274981914089606002498573526844878312583389595700243591280306607143660775822303951583540506285119879575627467708694695886693483654540243815644769639152643828750121960315254166442249806617203782880448380694212051555256985882434532477611164029604411434148092488404224076643752012744315865614366771345162563755677494496362763787991546922806260068169181493535352010509383790516175764609309122667280383037096729467133069422139549582804129750677991446893955235256154384354077485365040990087186657939843705475259455206378980810990839563070253321614982005256166491430269457921085213070171823726767977949435997275691517013633949222666616373153594216922785026742682760939016311167313374260489062426044840221399662312885365417907690924583357728574315595327093700362170553140127910697926183617166700034918586839748189867919992774341032304863211310375605704962214191372199111442669299996535937153575172758849531099062259723922128496396299435962748569945685927488125432068311055630268078651499889026598873007994056699170188989858801006637255802373924666224282635419356861571648079645816927239462563857449758645839573379693626593515194223401266910616441863313010553977302471255675499736202184936390524203075723291423950540633966841413591992705452901925962981744775562914775439546275700738121572532091121560896942011476598010598065962150153353330833763404241095600942745728847246421193861041788492720556203708044187246874013618284671827358778150106772111951380788374114917549970929307168290302603849975116421666663562138666585344202066202982348753684396336418037098697150224349705051580532958890800281319214156279571012106636549534799499593892434847940143609743829615247481068657904958343424553110701579221466848219398720589772796040881703085296342211880124345703135828530455902468065000166393898359215451595777991346096899948449769065987044967736403701523615070021281703621391416231760416650992134494030824335557008145805822133608855062146526724858159515416421731689997631425581855110921388058496188771420095016293999538696348490347999459155416446981369576169634395765446569903510201659551789062306484454003932296019671772888760952247427116049625068658721320897355704132951976363102733532563982335834583674397779934045729461578379531057453981744291094838603323701438910792779612344319864872942266576864776499293238519740525734980507897511361429116197728732611659369025074827121045231898322787443258003964511932249893014793850154377679801912298796083830997370298681538720478003651866195495589822090827124287338479082166799466734065809907181110797579838344823784094709204525148745063998502177499151315755847816419739082886351741863907041411261353767620111346774150215892038606673109324423577252993003319367673679678249231179311833934500415730722949822025888929243432471293387714576303407997785113195880120548114393126243322489964100382463122867799273174778114171188446535336606292240541444159853925479371163597983988773591207553209670742967902460493447165245561763240792583958556653406341733029964274078491774592520057381460854495404459123240326810745802704815699944807546860419850720914198258669699298376252039750231814076777276061849063729040994373891462303189845053036717422295915438605745196806265045941256719183257026222923090829012679268372018057691846241378856485299759419850611040563408317057516163565377435187670059135339828833328081568216297059180417096930646487215450472085773201314372515290689168225804329273700339702521098659543657072567053667291178978849746510116465008067888914933975299615758730843524256098441703427505945725955015377889465799800466124062609546837278173320578504747353541512294567263989483931965060767657236103766582650024591001882210688587571114141639843563281694750597795498227175494154020406609418888739270062299439546851515229742067060225665378679558329539108194994792754011129754400778484117355868572322101911776540314128826994581427654094862825581926543289006745117169931334964682277584465330760404757688613421943790404789361322954329729588740068275789731258300867726412844687315216648337653256742425913324315816806611437066189757710571019920584639295264032116223234897390588000061237193654443947375480724191781929793112556780417924636711495195677395260768675988678331043621016531275395387312246136320518447436103332281496760492200531564236286843461138424768172911475400316207809762035742820339380924801517786140050316384266079358965505833629992145167987743484245428609106295866177563793206574939722723358166329386198530412881924261795059968445403707102135574662754225258191103507221753666777345085856120264952173288267640060953698221693270177371870398269277745919045321316386881662053458187966796273835416864572464185177278115101564151947879348060293889663281074566764064348774143936705495676447075218530552399332567652665523250836631180840272515814268675206959381539099313275952589140909328022784519892830026118769290326551309093177685616582700380521317995353535381840658911398552190731917518504894581957372841992230820560399163109927505995298049462391272278954646426732926231814099330212294741971636179695426755370950557376145280617384106178024780104954146858917012115229862343245351979920578222206123480488314577397066517650626958607366839918974419381200427450136834496392864087050295427948442578057040596693184122707549953509507067732307236903838672058152747714494619141400749422011365315533165632882011970306206012235364913805415021283304307470080791663695605323984948771143383988824631749764748370257470469808206764086538912117185170091181537067902172796847286315854430717438752883697118320531987781219451393047470159932132431346123168368603946705658485897049557403564206135196458110849877315153391560482464691169399541865088792654994379729653729550690400379620784087983200708780938249471055490840559767554116769060457285548915688399842748369682205725195785774555664563268508492523234825592748317207029983416259184077444995101280317893232548761680507046772974745893124864652084475850669598755003315938129897965306465191935117884958700614495871760976087309212145910989684998235953493454561108252106118333718394320570807618328834734185858396782460348708058017725124705778556137628203475876174621763296753017836575458069450321788160028276092445253163618077767094332883794796185273104572637463462834525001991400641216315896080093570114690293736184719264495441874550799064844752138182398717324877844764615167833136927198383491149280185064690014247368428608178067508609435888496676926764018619521068219450708915635386810046233918993988709314739012470569058827856018245651571951173137670367057855855727898895291442551145428757100121314641348104978775679873474310545392562084753077103231364899599028450324770823292610412541382165725563106334383874769719541831795272434688134180639911020992510139759145552202928104708812778134474608784973432760860671680092095960256320417386375259824873647421033951388246398598880650427980651340701075850840386270928166228626577347398535236834499204539046968463784187107943369266650918817465955891430657168770198076581633234397552220401778476593500471983424048345248601055708156104319562195825932044015308441921514126533314806932854153440325117722747000951345801381265397529312171940423396225720644088020072404913616700895360268395796698494529936610095384890243678052877903321481636980855723405089961783288853419350211173663047354632591607807687373100533004321576829449359108158309687902847320613323892076353169998669849324740644639897083222490762996133433592851029369072002352472424554480620425815324963466549205910098517610020046684223111355043585867323811547843130211970010909268588669544641725853179152601014144621499146580430857745542352261183676256944168277450446059574743731740643716403224303069051613076491728956373817073999613413232712580303954025871321534964283761914672259863348631346176018175244550911850342155297891854468382712387949592857522469673183855458869768032109843917436983346026601981672576991828197264633672382406423722621526492957170958324639538080663518351670902678525088868318721352113488394864055038097780388012551842756952474678635496954199582123232830290643015167138404479658782910909252713540588488245155337346689885876046276874941968340487161370128420753771652893182589387116695843205990206977360174286901343941506737910874445903053898443388818410808626503413691675900956663820764913316674351424157053288076111657916036684161951749380314995062711196006823262497054833994506404050628337661404622424691078866604231313267202960698800984406766005883365791066799557210389408924690240106149134531597724679316774768958923438459008494371597040763174622409460873931719205602947423090269929354104050174402610905792180030250342467503387224698865850982702222774557065981696869593234423731612783666280843076299318240807829573775642279803026846743271213708289451197539140790667516769798723521897074280291977662417887644727055763071893747475113596741647072348927070059077352570865807988989987505327057354415151580357531429395246687888765965981073584280768900551199220891392226938227950043508842914253073420921721158971932763126634338978945645752715649067621120590160194148603846004295702365390128152050267793282863657078049662793715470619904792024694742744050535824172028207210825463779248577486850446123855363139326418267498231763067461953748997214928102361131993734079636847262525249473974427162322643233572573136075033911901376866891990751924254856517422997297764258762488717300000537200634927659153980694388020847559632113778976134426175161466676673095564745477182442013086959368533488378318514784502835113752077916543714477489513902820813392613333053443360938788811356256700571185307367210904777377569586705690177214557478003768753873611772548593034860012599215836245550496463890848117042164871985976775325453197235992392980927856885260896030035272601696903272145275907513017531021063702350782053999214748597692402134308691010881806507620272508230687006423420881776355090034592661347796860348910824914704140794997412510707615805282569933091348495403088952139449051837414735435740066343533869411823876165559074942445963282520452932007214970024122474689940745485980772544499969990418043284707631462673198794967820349951062312589054819963989354993811541409189198325934658558428763370437653848045768452603218483871273203936101701405536672094581659746891949842224811655367188167183446171819547149321309929318033354085148382891229240983958184806258115475404138095600408435843772252671365093091625290810317043722442448256495502790723218003262442377937321036845089881419661249865749770331412859434554670440868541629710954829109782617031294887107981194470328435422176797093355257908450360292402460971901613391739085395384295087698996965119857117641712007268274903032055337699438343569553309313029602113510135302388572531845888182266958945910527841579165776308862094091048069537814029473904183716190232657335441144739831467434343383087939596434379568222347963559558546110221729593373780489007883962117745661242015546827430505926562882605944143798169496034633243001141298059281132297289806767292908601972502497374403416951694630506886510712562083315746484539385564380456316588937481852317871271768033749313791238815824373915759042740337707517199727263282705054488706434912855402999566319963290936051566330213702932032125860329766372401836045102276399459888345928580284943346576976898333236687632673784613413264328014623772346117396784860498317002271102047121906308865898166029189561757290124945526237818666871422312941249996058219447106472466973350925218502588830898951163585117173050942160708642488916917995989590334729090443392543780202947298502058329577690075201542303418813083648794776172484508412840175969562987726554053448267052186679494066295651241120590126937227357766284674889946418383016707074793101132590406459805646675969069181360365274534533349674711314876527395146574051811515427282457486955185386874153466793952100469395264853472722471614562339658096117331655917840354971464009346737746443264392130141815770363711368763259591544782626998566426876089508462677896416798762054140109710808556205563667143463930206187276023707834122302043821368725537208485972686872458587335945361369465997176355865164338147678255869137148161278326367147073926171466931040300733725010178294594666243728618451493751858723412619201557683541301931342366230288052051793534490005118641448894727232733521242970502709967141830237402277769367493996391376318402290266318565234300631785241489852419838399796494784708791989717011189268866456989904963200588333102750758304538879404606899711968163812483576691232590030088709181944385865334739759701069039132421875595214062842987451514185784524786775896076274130154370864871681662121877423895643063293215921179938095316077358009832459701940708401008522240673919442436625534710410762087758243430533218333309335745676252578651748950938259409572758924105740757165451127736959017993948254248061477034256842714052165346190005122502248188397467182075227471038163234280457010097299850647073920678926059443845996606239051412325580552265202915457436875096742152789562392358701943176225831754383918902648288981824839473779451298081189959610965848735163552922240272727761224074423695825390323446723984569755623960608569586423889576182277878819010877632224245258752724979625356725612173251243247319716626040467936118241411035238767878479298033624869224778046859654984708650079746552065008968009547764969953668714765169914197892729174572546268671754208111518216895290949403481043363063765217896270001094060691355654146310924741120351097565943415222637962465747114945271197189450863319613451407350444897608571984036605962708981195536557265933318956146188416827870344483829401929130391862013353931143092484486324648376085166975775154336702511801935682715437864258985560217027316670652217222968811443763184759452790328528651847284001100259202309193768196760685293005638090827827549581147168658257218293758865503731471640516672968625768331220831680126440331838368927129280419939917285689830078615875699189871499568162089579588560308530344427782682785695810385177005302760341728862592328513296645971490260114739692717512611576535396131879853188982452337548936733228599680302422722661155156600553092433646144112644479230357051148554572324390763488715966565622156357438709014862442191583146127372059410673345382638107843237136161156275634528613690969190609392396146384458969818702820845133708115090521498413228860916710551492482590340997174220680332910384810851267217470066760766929047632915564479318233807838491314475294638457886085467019135863601532925554145715594592411707442050394355843561355454572152992235012354505120960468273574799239803440582709721949160410826978571239017117045793209465914022213827357252548953425639370978174526457518667818373618159352249768097623631967186788952998474473943249053842677875277540210241128122051539311413177324753202986204658637528409033430773826533953664236663699735906342308059038687713566105460241269003919568325722235408355741066678776706232295305753876040079503513327325689668699979537862351130107852152129747613676347270761656743267719073648322683435122093859622662583180699141647249139760947066811782408505720829608257301836876109204500919521436587655058537611804506066364864543444295866471432596377922034622074168085332694023862100112074600910930780803585446077592784284252223038513842729433839473463578617557967938111244137978030008922277619164757579840322363366734961689695576314335588178005119109740006352537726284534122260807244383407251434564157823842680913209703209038465876121728779762457326223321650581724522922609472702133978420025360184671600100959507022137745362410465489842952229172508845984756622715364178402852997682574108734791108723490155987404420183491077049502464729820342478357672785912521040628055350572634945470000706882327724740763395783430674169499802187961826379392394018990952348743339185559483138068869958413083648456870272857297044715057522303828544689261741198865059906153959464631911351339931412469954286792723402817053326394689724242877914463891945012945848728836272339458235329403198681505763466126250683456108316671363322493644660270145984760874317322414931377755664865478707779903884147486524793382700832546123768583917826679643985055185039916647381071101316728281336045006353102291714140762996841508950729561127635233491455137931617221917824072874412864175212427543936622279975723464708896298722893349642304052869367993568332714934566802552617365046686246422023838586451022386728784494702038054297297361440840929114611817784883426953109892916975037532397816023249577747811723703516340893864744182299262331400008943393652446506428881403704522936625636176580187260304892693078980690956152892992468818000605266021835791907963515223987752421050124947283287163682185529815244424675831931414095021176218317315006797116559033103967936206007709191949784809427478960090341456578666645619050565428114654559566779906506569711285813239419640924721833199523444290988988933952240610708591938750443343967106283129185208972103352639914218839390093222712730720481864613697723974135403588431460689094821170120167881120559146614311573569971925605106800187570642193623081747287730485817161237337291500432649691141144522763304593700902055120688569466983769482994840410900857029333536423620498177524567828623302667840348727144184604264019068152405710159287149580886789486273918330841801658204889330368405860511774370054433520854423099593359357204890516819471486304685416688197586992899973139690741424088913769861765064745192200138707461293668900520548109403475852770646532682265778157634615703989001129557843782962597730679421083667423896186625064000891733625229554278585460659031247284378701295520094801269223786435998134998471860488135648264934138985211554117295154508227397899288536387041142269018027768274908022128099662764181314567372240669330427092265942487892288792715955389711608424969105709252456559526569069081834984949184858396735068777084577889460517820001034438184022102354515112950915639298553305976049878164154234589715670464409427500355012231214184067865805773370717331453532242496181397930641954765633025561110660103451251485388984979105279275051516323537438443517139924575159597271809191714659343358848851293847683250375682173886680954380573641185769622368968065530476202594322185439687098967377058882346068306150266397006758336652733913520897132145943378309059218092674447789227423110486451803590958831960010978029767717972909521360126411226356519489343079036103177168678567606719526447405257537419400855100897499610816987669895726627736811681029090653616584108707416067551768616030245334350909663168481486010853684162278488914617850091758834831111491848689167037475553214774132105474676924434352494908115934906032651394572757189300751670682149097533387834264718811818796828964796297023609367378707237446398276009301368299911628753801050618086815521290048868456848630505701833011977015025935255042126545256163452547576548998688833369202019873995348799924466364784898628625899897298522863337439092303155048306040113693832323091422493818816353555564290274332431897557918532194728574156742612352235947898378997016187804409340114358137063322165308846151100690380719064791627496945346246532178442604100445119286231368749570981917583440716391202051707072281362536343069369281818706916830356913813086593140931838320337779980657035078948723986224302670054768930704381270336952316756283667045417255862021798280938640044581537231256489841670454365527548913607776183058968606927599531581334455768206794529954485818545606009541851059696814572567791493744574195609647804028847716431565497398788244133448866649415358283756612560256864003233872751912473774305512780349182265575346971154249185128875359744910482045317380087927108192135705506349056052589730595292443766697939595722450095716782345498784835701658019235054436795989138680567413955769672250455438917336246754429436267797909847329163577810500065031665299167073742860795589917678312521673723066315135246869771183399926435522120912189759747648693622910189155337290293435123278671627399635852070423222083957742034530664836053380144308967362841846569051964477636916274420414753857651542190037137268076941722838508394255608083016139429051214946363281338470965029972779274780711328282181583976709050891304926029091310058345779864964717125664416620115531791780171163440203929781644785499243790526032259879252676521013257407752164213657011135779654715674205654385198609195646368518570921417764115977716762748620510930897428241398418530113909418408693684692893713950820459192267836318566930920559056521803615887814173021773340733761511351804113797103223920907939126993417086669612513065666618864632675744567131393441135797312814856327029629569158118426822738428949523917706690586479638830192201409969644625904741145201345696893035663430224141575324725664494522792612241169098726447702602166302554214272678558034870390436851742698713918493823678441538225921068384106518881306446496957420380930477456231933413466681939650164501446106867761112614265640551560560300950567587360506051867153355484431738554211895296070924500022406398053059931105910409837419244508053738883631992432564675670987793990174725044893903966419182145416343735286056397501285449506030442552277182366575456156498740340909256831258940525987938243905907511316557542933601556663644795734498794763558548315619911838120537311070681589518943846877444118958765756471119351565210380189931488524641446431038650363600723386359174815296196715376824004284349092537671080396702306173898208009245183501498942258762540554013222222896506032336439207569571461948176580009672748231232229376199982531493629686271686193629477182124381560559467153284107853243392317528297333864542425209537836848349465959035280143645647089228273558802943929660731917916386378607266960556257992403313722620594656802209632818905988469651090696349042827040882936642262316600143245966093802396791510600285206474770396240962020696937701915061395478537978925886429369120690148546851208567567530155409467100268642271001310237469516469961551518870378883604896550432748871112823693784976039080926502463055045331249871498181659918499871593700322189619400805979145149333608372025080087884839724644313162963774840223411752755609199861152713852664120123449073720926954673523053803903639702038502186549386800189810878767292991072327769081020982914297483976865570303611251748691466544321399030544650351327737458449863763454816786330513794283522856466542990602325564599765558931006403079331987474027162839550008729511664700919126928969616730171491807670974565878255619355842193660185576212356537544126580856174091688309565361042878153394073086754093621317853737388970645826360952406615787268017064135019860643718541682279352790667101247757910995152374283007038829951145772672554398692205509940203845876896018498226397007742501217479488547344500944002209338845030755923984343112692705807560018295255475371234524100567011553098237884515177632356282426480927581265942963294108413870990691700431961692930095293963978123839446015652447648300802262586606833305332773279337894226893714744384379972105729678201541460436756037832747560047204616722371962245222288702515310947309430116802118016465544946938013070475637104936757383992870636324186903565720777833012617116041103867591696040508912627711020653129450339119599680049722261231591566483503664583658390934464383098325388160918147991528675937409056580423846579017055929537033665237070559674061579433081283577906885110462531627016342461546628193760357780029182719974638385832084498088001352111097146697200303285985689894327339185208886506172451052791253862675158894121100842550825007206357893185387247164334164618707782298401829927385545445703210020918974410690642094966290812186462009495263004167996827142218087227998993700604032136146500736356752921141980722568037131262051760374684101396152309621291133185902884454342710877203655005881394884569675084070273190797544687041092190572922133349296491846982183792406404141112645499530496848391257313396530090102867335685435112662284637479177226106329544826377211195034607789802632029470996370989838402048611582981620387940188539138086637260822431261434962888477546320429229572422197171839273753036207854199535594856016696889971688298654017704207997373312896256195403277040025694726852415246281263983433873111101735109732294243890450568027080745729966919283006689497258757868318350842237670611543336849089209558712307748122929087543922399672921224994788280463889941153628924393869854459906896240080886921618490559910973057122410372602576674244567906403049229520575232566194923490988916359786048015868029957744356629382006819789621937094443689212903435106205489404845074146381124913594568126373572983699656850512285255962088088692275722460420721762852263198999071038023743878396246241725720444615413663665294895993514671139612805579865160083223637364139031505449332477114219456599053865647414738024412102409547812123905770195451658469538309663092984713948384401564949776461679248943827747043903752820556930824266988660480209439681578393019321491273588739879597231425682232911799042743396653598678134724873537030889773462614163945603910906209178802719507935709789281781793527097689961985548653950156150484535425118889211883600503433246745060974004614951737333262864211950222622232903493388918534531139983428829903382515198403971152342046507685913884114430677521409568764820815773972154644956375799554086483441220765784719193787146009295607749455450443904178592549662838114950623127993733659103780653355216822103701828662234368607420784861379423172669107648350843038814879701601287459243635023180370125457148248046110126337864422915054401909545968245314910158191480716703969689444927317500669785327819876748306224383879619008825663946026359315719055519162908249513788146185956659555248110061175886297323718619923116497512921756133256912708107857070462735649195548776144605162952052610560482777778875026631634033215562239102405856843385942610281290457217969039569683374340337039060340636752611762568428066041723314656480786210461730557602931331626823159412504617756504135505275686904855470627359098749529254709889434059880754223678932374525335894708434194494981187835012445479759448644908990199217680273833236092000215057460464067763455334934344586759987265204065556877793429416347174319111091440079632023668798841747802057865333768774216607035266018337528986218208630986912445826528820781021591410792437315526435863462691497468701909059750635772847883916079406323484709537064460354766330511758134541364281083695066283459923619803603756029372928381898464857441192054578361320259683346815584905156897844617585905159733999147704392095997662114351977922810177430301772077076878988457106732697827980163108310409953627978411606542486652405205985547531363100172396065133690941744774719390036149267189036897854890924198076874926142917478809207143893124458932844896310173613435560656350961871058129699680958511380797793062947205952504349499625088106856089283035199271985520524828959813530658645769980072739007672082093843826378896577304641684946015868904100295765452651781618810107723138412014278915897126716217551177574920076590863061632930598902710223844391333362736329092682118881859527719895684553862093428902533722974586593317058835359986903107240227754912319463411137277050750090066722615726649260564431606926295187750937504726761648473972131232303440361730203792511035614800205295213440495789064377317842238244339423150355860059722520790438661132185901915086647395747438231770258864623796468863161909237144220712437482392295907129146561920748000992051316003755511080301868583320705319133514192413865822196076858630218419901944864458620737187730617848423786204960526113978124661371559663894406515910700790824377712456664157531660470299979248544969062863360814001643011020836772891236500924019869438511429385142193516262293768896872460249529311463812355518497209497679773211008770684287741024899952751254921249743468026080579162635621015692763296264971024025324666440001090647369556401533200867733557581883898745830707527925660900580333057937162590120694766291231254365626330648443005704732842812268996449297837112262253676591872227604994922669761220003340529520126249503767528762381392783579042541458516298318633516316401057595175433162256144003151699563021245644897728396130627980124017235927389743500385707424886590220237760968563107481692033977254470287314831294899827711140076689765464174058978822145018532702859780666819180525598146512571110557630434503590850810654312139027749126888034812037785819341892835560415591358837142502109222199594564328431698595460072655597649760512924289670477908531522191552237845472987903556218260297110796692255203311433456349142368629320257697716581732961834402700475410243404225242764046747253497939678627458047983165962271381635216883775109130651451692696694493792292495605376145929154343564642100942509314563213920023098030726432544787222502639076941530679314583067303364239463645343680912005913169816736827884646659550687902628567274535921804640785614855603445902166083115761362643344472062778007404563263753420262957741628655073245942948927761843698475723213074689046318265930921873098118487527006727979744557101429219826813966360818879548586997829385153916744569183365198695065733887839179184982218060521947981495457999513609985645883425274985325891247882217427035029834097924148496096801566375093496389902905747637644097156206304060869728007625151372349146970718150337786308323470236418363421295846963100130362941364028276451699822879265293822041010754224997679491669521998631045844986503490876616657694680227618511863725636892784412751859363007222983119367986133847107352284093253334947912103142265234298681503801274832942862376833852085929666345643940541335453100360277298195962688616541604624667129906355740946391161717046914769627911882736441229579851195085423531927994915596605528600217064123325797377600114129245329402735614826847704128599448354894794981449820850405956888013901372156707309037460254989354257184586158819660329132068271061973074177530106077852800273093010692933876193976641968390717387827960420120055364137525747260468087827504591242914236227809921926809551654578945126739125341786338541453419477521797252873497996142321833279203784573254529189439359747849847077219565187338982845559223956373494408266218634766956550475782755362469175799718079545851997506496913940925509232925850592671125487872177155193724574284005768816503510302295916346995002520103439590645689240222642972814713744970639890950639610983603651718536254131572173304792703144122257180533232812436150206295191395100800713110650904366774398478974083848579558955654007898007181059822189370369356986485166323032569249127516087033778367887119350681927235983610004148341295194793358923241927215374735597273394657082269892291409224923044630244073214541678456570077732843693622990800185467928560991856808365845420144240919727438435268829529113437129091323865959462252645017462132389084266163837491276481822777040411120858131649514481947512363523969118746392314564115945410402386089877973608593964364285753435996565691353416553943230623128476249354959402903358238520313258277806435230429766047774366801340090933931930229553281417281582588549619721952931875842775097061484948218872787232583274924086374067481193552099043880810088343711491081584633862836486634703325194467488987457454785551519450865523409743893729188175665936803056073725092986660792899923258215466763195252572238228660114555594421726310434525182418085794878183250597238920914513502915003138956240004499311487808399300253812278716884004145911369327466746781674061717157453846467474752489730922654154415532547696710218557717779374533430622992963385703619609623837219063175976100748553923761178828165404998918936843007097806422895022286323327859541570156580022480829561659000980589601271132232724323862145753879413837739252197170407878913880171314315486788638851903505473856709638788104039167073686356242855080850419217382586471766668074187726938091208315782497345404463708701324448914675396025754864283499168086966339700530361419408610760412220640035245427985050808911206758252726763002948461436123723364105557613761450627385692667404745004033080362726842229866265824327478005567813168372311155173349948852286192495752603389659214707232560755604624445251034939265664683617712132236485257477518195151938253373496435483577795627043366504169853682566544568739839623903672960854900813857996778961324096980039999099642926462317096766656999959229815799964995760671967850601366377601084302462940095552597279954609095972004250126518339330642338206779513262998691913235438778375624027026527220223855980698563051132071463092895600978694717575010161698061180812017323913004456458426730110840880943843884848739994606164537855925821479908171253510158893201956711838233981463670022491729371233405343176281845377766396437520865730784399581327402565001515234023357616451494298468227674114610417544204944908790692802778426910847192240078692958687242989043945623104578074969342540343816089361455331694144430173828088881241987911717955028232619664249457844121798224354438456864392702898784967226413979176545004849688461771693481109167760583022462070410411211119021177032839528697786329310800280842507112916718510300515269245252847726306855337838603454615839792017977655594292610830861002655544280301739457796583147297703356022995526972723078536456698302025940281951053095518854352176749543623975851330756442932434688771843083120699596519494658541177017192939136751818060613667235366620001895813069237985290440134465937906395668608092410936713413438457681258830241758769321175528465188131229709778976777017001797377094671837644731847768662793000028131124344634185197976333372511026370404562240667338164329086080168588257171959172963930290171504683302060846507661307990582789123130910364803956043531960729821225007721457098532862303026741771412240159350015607849230596969380020106201265981818814893456764529897725290903230928962953305547856244364397320534822866048599677252068097466129595160952883744534122520559846914733602942541636255043298513244205929119145532848021033373010622380506235850435451235789236772019232570043831287139622396795152937865941591327122169786184145331549919045895880928664094398967865129045743721787789837570803598968235644433414589317316648318192816583212908185512190579705155055610286494096626291891433624488171148712466945932336066984562293513954144913184071741779418406068563906645085164677934574497007149201570686150926880777159671609555782947812362215322202495725904739734741447101055679046041301812282287537744950004870205264014087552905786614378937994036374457669849146383331188490732339922583826160614196372993891831696351886427158666675033731432448589022587977114588496715455297965886840815631399521049795242063508822851034226998562189490906169941088946366983735276280264047108664254489285743456273533257948522971151041893208707188447010023725906662001416659711440519505948803867852828011127398142674940520302028418345543609586606427605821355647108348942880361089680429386553376166594901577951713238711729048123945918015743289721539654590458456391218009398655365644976637218237981434255084423497638221900313253694920361250743487883970092260491162677376930978190326358194466472390512609731881263315474431223889466211318525513327832361554112559067783346590538946482000623709901152634441663819151619369073118634190505805772714504272149829118551890859794931759420132410509616016365422601436206997042974601850724917482462922536762320516946400293755114063267718511970725964688186136847306955318014287902882838635307645996178197308064650241728185560872874652657272286712650245625386023258739684259767037391040668996855175941296582917227608200414751177886110471465749144181403563694179273061539132793765262092222057641232844481276998158224367624479861538699576064952107252745474490239354237770505077691318109470884496067650837159880231146204091673643050984378036204650642418204048945752186617143312221416167461295956408655274400162894479849043707534993038459679899702000566099370208899182911884329352006764863447715057462537018887553125176231707097833005355398195522230204937963484040390599167992242661499820131189166739732313889898065146128612606651410272195570865395304957107007018742227820057140086794348924706587242763081914914029998565684072306729631004127446164013496163087311377814653724360503527866135867661501034529951629929155486783763656735324360587284461472200927589198850660969827421646245918693383943511612401239799638918510867180433495278158907786965873272852149709931619417425092525089087775682388202088746158511312500998754831452724461249834756513810242559169576280344979611150548410033495360851295758224590879544878051556946970388509183454922529112540386530573591465341298069342639462536048436637377912266049984608537032369556113827565767751106873854906647270287051916712169752232922200081328821568198409778305972411896433400362343772949826194165620590557998473885936198477503194959209956930470392946578393378525535184426808015013969864351798286835854921707594891395691965586125104754106793550769027593537857118897051188791474082369148726188899868854828411029760271554232149324765396803203703871002150962744758729399327922905762889506599300916496089312463610730871663290937944250021101986932141779592595246136259101620011758728727288309018931023621597753130361916025870308891355012296836730287314480940697158414818281946864897279675698404322214718686998182383125909169081376490482533560911640342493658187283084794735119748399272689625006365464795250808495881037927492758654555807278675497020754583487172491413506118347791732665197434066186884124977668762934421162916807243017672022521296876031449412217518649098199585196343843311682943020536700959452541433727329579412675963909832074163638697877017435224064055129490295991281487668980491078327976342853334611433198011762887545729523245669716083081424774651536475322738922913272637052375117530759109468197624131050072896009500959935849900241506988079278194430073940293363915471382322243402075995188888269952089566247757955001688542829887487599576345943069006631878897052146086900595767120390492096997125725847118148986862974745265749387243050946374421195848888605927647799196710059275521469617119101649109692165775242000558078358854007157273202826860623239613658374883945208955961780912609412640148201431312555841375977736526317617354023090911770751515292692383113149700589833963942360410403599977774576298942814261457989109850964056964271390000786277547578021139201252421432824624088306859277251229443438709947284405779632233439370519064778975988253714877697210827640555173471179299591635715583516047641233827663920803650661452844102264312221633446574555616151732238561438033650689717039588343234399143005900875593652602488445157604235278831000010962072584373194885375088047009454805362587256779190778915109887101391678972353850052784331690724632274118967313490523568210609492949230075475855582031299722990245152567746634753046369572962361113282653228978460350178614805914827047884340341757781771794997080150998664442335117143751753595797657585772034130206807949748953727863756576184381287534909120948029256749910000971035135329876547229142990258308306383498676108126346672247856069379380536317714204623597036649116016629936411009537191087263654086742432648438388650018742947446516742236061808565052533683782467234498749911395405868928926334216157987667308056546582887013559058583186826968001551798646562432115795773654508749167515314757546534131222560093915286184063791581025925474181181109434243246386008181716976199524474333439006200927376754034253786684039629416499127235654195422410258734518132569651391006621662314867424177204120197736661442170085468987604805868825633017461059639297382069295743598331420046307378491191570951361440445637163838135553588396800330770508163841230604970586231591613849585044746556457530580870111913439155368760684972818644765984828146305210931012065592871258911077935936030509998653467667376277666957083791144121789873180651572345434282908224620195721522225258373739486623259295409009757268055039908641766005574138252979414433746685992358838109501539476055718228666354739399712363636641833888001583369925652733030233474967829469088158432553491496595256827474448899721925048825294390757363929835791560468076713240189499143841388632550300332560251913027261749199723636085832969611260992205363255192453275701547171842867180656924899351581148378981191532352992481337998311994718108115468340654747042094056249601696911172360354160246728941492166497219875300923808716694305954341306612581323258602503995588943790734213240699353094568765931568864387284943982144446887926637899116016189160288135584805103984511170687592377797127181907457846727183863288767474937626857400111446530728616722797751991553889744857501615551403751126835881373732033645237645549101644182446165033107138175888103172590543506980887358825738640855612425678732092930263707448101798662460943258497219886349716374976451974864466642187334722116329183497294745786185304958399412239008256097823790608118303926399369718474328956813438544543760314000424707202931131634104445262588831302240235144919594236984476648885376293944346582139791839478675071536322579780331251175026186937942349889969559665421292852465620500781651914721325032547550426401409441368734841123314673695316922901991608755207064670567221743925756028010128256700216106460725995188653435057659804986412135267202276235706181447064436532524499783268803526490713199374343330173208966566425727534608104405038180444035253600841802751747623995068314828866602580263998430165837966850444923895148081055854747199867373148638922674759576577696772391811918654270090116911531480295001519366371601297789869121971054633708602256193383116358285113067869016525769872287182906545976747872248777892164745722481509421822327839518172555435780467618547597990431441071390305463334488418253733581251590333115941826653801475757428438525617543602589540138424331060896963906274130454445489173540475659520006129748834143081507301550046570449008121617311989842339031477986967327222918047118833874227962836510393354593401496773733453670889574078150940696540414893370135224646144391025276429527305297500955586867771093286409496257137410415911420189808196959794003811331957517628054936334933833375648121631585967022014862411395423062179891702349055794586896996690375167027555890582884147512761228508431760974927266558021210123973341128426955788740237786602153977737307393582323021793397783603565632343697395039382465123482991826709954090686486454981154733937121257088698397550565086602210412621916330999331378456258225725481109940528111468764911892282228005401625708917290143177672063810363601474491669885680540734647384936142138179437525325581030850488097951753783061955380195163541583215319014463738458899867410604110584436111963079143384519499064941305303561831206300269925758317775320037009881477529319943359864136393509581913987723331592883496798380353215891179150397759763880967248073510079812202943383251478292255561514407216922242052005137051917176732255624861322235492700326997750119522547526715746104106921624061180218359448953557019866183320269052782098863813051485554660685434574521161092801762026287121438261643915856574484113221288408205291654170972430059560199732797118458668711622415015209699142926945744207838930443481859688946927735859935365801088470643570899471313131625964722867629472027307882474670685148893964683648869739603151865307985585566091632650100988441661078078439436557498100984184437331080666618951759959858653868893114697808213786962468040620387608427138774124320283149998822984485455420738134660212549903287350294719991347464791557981691485690720475267573036410794644070843738015904110939601402132400398762600692239634661622811519730246866077001499152938188895316523910677629526165581312155717990006232976860395893105895068086282907552127012235807295633336312797141553836530733314756620784359044794004113368970173213403853534596031238878624142831612102274303867809800754291657045635453341674075562267541998777203112340602761881445692087908862360932981501603481031362177202985359942492194039556654994375257321331256477728815545078018260113445780822692507390343596713020348089043635027731071440970087298542309128843693486981638213628652705154325808571818670645377576098439199121244980041869003921618438642912435950576805816676101227081756485760878634661785781691813847411753067077240706318415926955210413503330103612789320040626612756061587749517570517773188018688451770926370101362223059026899704959319155266212305301302066834346583931811653901760881601384827813245067919435447782268527882009275433979827179154920877866476707336649205432742528242633739011475687461334206827786880976410504305741670838540603972948890185146060366865697961594779372576562301229826858872718022416447739416713207009975258137705749422384106353756914216748789516500615520984725144197581136473062950802841812610461927273439687735335921184124470352284523193176542835870074795183485654445365134390727454911435524135271585032944413071373009670713786378984756547110984371385870426994431671567523342567085940975926420986725083895972174806479144752643929948366217600497385669708201867779626411867614198410097334599321054296664265593314040138297227700373772144017980556075489782661080400841185573857297038445067783627630463316710243793499935848885208853844598955132402519406242991170498012782690059849783608577516324926299004320312106930058823921387376504189873758022139219878074801629696899669900371298036400774325941103093122058097390338105690341781808088864274413396473111835461144194795345988554918459617725887298339234031441989720686133250843170698795915778864745456699394901018904007776045997621318982908558972289642547215950912282245175298670985073315298036681828962064953796411639784630244336326031009914668632233285060117503853634537014219855727781797416690951076374230131965841208120293513531574163673838511027266391544130445943822044705160982115514373591032622657012293717037897603979839737340406451090455395578650984130880767728564390388208327884483116491347184188768852870853593277371443099932132909367765134328748177045713766666037620883277676213493274994820947174014962178724165231811947091926292263543488268079041140248056041189155519620184060516816561108017997955950689439547182327760992992445273398689302846379803665870993392061267309803227455543191728607262123292293145771949435743014860860803983965920762196629463914274492821875406855278783456171779385264461884042719356956283641087505171159034325344002054831496129238604926345509635253860281937347112045341943968135579725531617085162040392910165611739325347030503002336257034172530884874891220452745983225301056011493636241509748832209330406979005425431766419983931294078740173267610636492993425040568327357577122291265850634945041931724625742235216009353878704971701537914137341442189239784913609568321031373460533596251395276646129429971202331824135562229601121717637629759850673705986650528805993959702047741311679294452913747705651497053247658619369223380980169830011480279882939612587550397799975490932299265038313178444131636449424468086005132308375719961812637848304172113569613689931042924475788389245676986992924826963484967956800501662154328873754338552893241320141101240272166476581519267522124956743114961446245237644481458309845829883141341220812539153679118976661842956367945616647003210296558886255556611611123061875909581185993994741855920955968818525993897139208457390861575993366560608317552030775584205800451950765675610687787383106394894296042268743112371983066727501571314076194790822352813520870571486775505786340894563845208737408209221249679001752278167513932096001735875949598624440853413045826513120134844797929118305971901322484426626364860227280002915954555788208650527544531387051164803407881805939793189542056359702838639228854355084506277429383478264975988950213254920484559096286214367801213700444588894727847622570822007720075197296719676008716964520966501850793861015044166583513696990766620290559994191607471223023103090710514749245805718667175376907391776083220599767990768338904118683694241939297648278626898083517022014681173701720143861512581982948108344251241389759657024079629299676832391156074034869864898398777883845305014428344199440548259186789774277394730238855053521639955036654112820218742950055699711258785560671808457229233727700263566077515776469790649356797326013012649516734189821919417956045445505751596712520019789728232409094704825352026829851304822844302375769653075328843573315007348541753604345373543761683796561654084740224317541290092417895254461685960042915871618530128332889520407767999755360043233539362920352726075031743806997327303511101700118125421450895227115649359824442367642110028092552971632852647120116412605872114899450143659849729881510874659920078207475349054321986891843507554127593699630434296410893423600206537958543871266365264278448509685718517541665451121452799221094912125932928566829474824126024752732207789311121580338027572204597339179228219747090425368720400305287826459877868957756925642650458389222679875724850231322745641630497822582869586811355411051222586249226871238279046279432444492737645604316475352063518300538031276235652143111940614343339029003701102673730652003580865725769175734131969046903913957116517052588286289130397857171182743448461476444209458410519685799847707552458297852184646666282951003755147684855911986159970674211658616685217556787389605765242057126186168872322958675749416704635626532008749222814449177264094469830506606064406775549756554547972319634521315532415928171447971568028791006556866200688237327839299934094029742783414624124146578314268351117399175759010266054702440766892151029590861561934661035029550303506778989002264038637460631963369843845394408809428373641510255874698883543702952453914419284804985874461947204581479155637053667505132821922714532704986841266648909495300384057630237284790014052984064112635858025032151378500366275943620904603300400090092563047667689263826063632117372241169954308228470678473187251810829058668401122997709232198440865935298051596642430623797694101611401285843465372610511328484039492680749801318148599677992845022827404640983064603180959684452898585404861916150449694588973317773367132341197496547604509363433752497740699302665004000769308238965633428771098645375201211633210844975265612989049120803285313843656175837980316768717969239374836764609256762423927575249899839687488114666768909531713237897117534891198722062466360394659900974250068403964864493930265776760990735424398329182973935721524349952307944841082806885617581054922299142807199515039249492420020297773941727522262509093459796585701890153538943394004554015036202014118298726605661156001642807981239674346714627577445025941951123407763080610619651515320318678666438347626623232679187346813234331657204493771588334199400465304910240306130557890328305409998578975124450287126271716350098359137049993473335803009886011389343718726363942102294076409757977571863817740114045163071186101885384615680243057103602136720856843746811367935569126696709062922968757888438174185744891568583828727687706418453961309627559183282419260092974140818835095934321122478800307572205848838544490141307068935913035382231839945001076278027096331455487833225880607760128411064743570330366390786941692765046326847416568150069611563796717721607814233507463027659811533459862587001868530803533826956144849784632115813621096960481336478822957372567865172517137558134243833845604028045184018685842593244587363145588616466065076315059856214454018869489769453472898289984313909440143241352618095623709241800972381756575663841486925748619299254145050857721616900063921766337834555442497366583599871141051278600986743852162985222100450887766356666847387257791999128933683935948372847061991398789425219127400216512495275492558300436207847311409767699278328922658712076133213094686508358377636630137530336806554018714127369997677850671833359882331196044729252959516380474664767362178678670915196853504653521123340788780520980698434155855088788417876689024426330362137138850422209546025578441641769251840489508451658632358692973513174256130023406495284419847301151624528126905336304504540776250017617260849713399784738673907419781112912927413201160320302966785194953956782615102468877929215615935393101511905954673317109912687793347004304598481973033780623108143284135721221418026757734898742768598493609722369327620350066563551994041595887420364244121213271536617477307416227254807332690482394582163431633729478697608826941014137940934357964208385509588163265183471993952039335641890399084764194973045757679579087063310814126469331444100017855590837107955096979653848031209196629501327096368189462658362045455562171641168359808449842877259113272127556567651323747289741588717938574134573164247238330733282191022908605698478668397894596905661179257360678706250933311253965220063085619498741261275878380125090292718717856457183020959798839981002636135553192694029945152851155015051020115525972448468005973635725846246859273158034442376194358285794555054255421412627819199963867752107710498735252732075971904009751951287425712905366419824319742628861740403881165185652516752968048061711955727517437589482447239025661187791405055533947095872184368823715266863020761333463083386522324288272382670031165310988875215233231139526803030100121732492968169151503689784080388124690308421012421743774956051893124475306700476809289470287077677333743658673407135551725716857338253092132716098297748512354823724877952565065859694686195215929507430902316541990497606843805080354649600755248043930198302626258254609774361408656337445403883433886554957624189497063017315906466392486801691515110763701871754435536405521535305159786254049048337482495119819764295284188522423784646506239288975889302242362594457848923759058663092931414324367043447223185729828636897072945779027864928172259665821356548369532206624841670714101687196360448879087469968165051757956860489058292097796863317748814186475753942702948081038843668232991393705533796628675993731576274582296579560563545015987478409450665775617351547148398605227402155370598710823935391531519525539235232999632428491439175711805619169678165719293678291344262385351796426657934866813394125998936726885187943560153807240214996181518919745157877154968034820831156510242818798153333095864884622344426908883029986587670669269511822247315224585087682375647648389506147148256628914396966994008159540457511496990048411831076542374360807665715640557761370712549750854390603740007578926803708284048748680781618284842486077589196783197146780422932666586992399800401635901057066369479591526151268631642991433566558399210626724088634902515134432727134495882371696601103580426659230081163654765175522246660474818084934323586662374816654827854577867105831932163713943310269040909818818005742541973626716438110268319741442360967209284160829293545649944974153675562474385049074789876285080457481236893700795615800136636387109719851808373249125457742698284646668712397573742038972566394730276283921712274012288908906744569830037744775687916603896933712767958460567390748077118982361544101713937749439440582273263981722616550020012883085267593369998651691767244443972691720749366842469392047386935189811094540602160861503174714901136052409131036493637170414646650961317197366329649582895754854662138717748391054404943522476726650275639962052952377138736614722048268919927196290680829733005325216769320968419231209036840437862993410984819669252579089580884399972814206240540554018205789785885004295596562356996958270651333290501927009706564766181476804375054308471827371381332374730187718425778452394949897386479613880664946970895465479459135366349365035642608435067926214983652734360819214854487748647164605950533728087821250744817818375384934280597072613082760448462053275806466975832447384866373972396738092367809686456163461702439653958911516628082794269714376208487405678058103303934385368211478681913018121196101202814419911383424809056515251501091246852201685111978643722864033485086706263838899696056632407133664401285768311412599423597727334793205707101967694684689913280276919636964207887671040613305300643431858620405288244528031023176675009492677848404643375052954911233797482573140765275472814734891629488136876945167727528056877324274254129144978152423047094764329484246446399711898376436381554144448374404229457360117920009761044827541812452811111432581710807006259796845296464567265998423123065526907753113319255404080523267757150239277535931174839518313758414371628741187504131868137602192118033561588249151316050962891414354113307751385674354693489079244080930166401529417127354250036993871168426106757909090813738192384694055883071713776131388936432570802471414126606251305503785664012291917982843786944581309200052762310075461303884853321265145902676207722836318502105084260448214967934965787851645380743837309989958057965628768857435988584473003916723741561960479365941606926884883608236409610160828861423992877897417423847303707627641889581202011731941347417848316705524646292988382372818605776234754375995408287048489419864011085895285302782907132475593056587655335781371259688758283374676969508022225610654113239444623195003569827297876155962191862026506845037278145750063821116762798955349177537358971491928318579752871021868410623676763468764914219273552578145179585446417088413525616990795966045176195659451126335143262868007293361284809680823872688686459325821618155747555868976525952056119882039890446014385935637974517980800947701395205508702598742266309511322453704512979197718785247905229211165186402082170433780262887065812407825800689845614147398221652180237853881787664144914906814953890169945947971025534437622199363345988984822735837114143942688368051989067399282044492010272915249168331282502326126821744975709576247270775848354709030398068523836382384010770162102940779139225105065820121613225290085345388996526123293866697772885653163099833934605293883868122287898158083598921037425566480940451971598503984473727906773835920608773607528294296657960006334913600995357578335477796099470934615679958602635250364368281779979048501164764528769730267170147378207055798754628787016763350454563934660779783422824770107204366262461906010801730442930781478290182179007628984404194060920860400760067051983136561148098324644598024059907273634681080574834686020715495659608736749474412943727464165592929683217273537279052365661591866792836771457877289162985568424669572687353298221521726037413500589531742111884358988599254367032746349018189365612987080100077832464901780048950318420283650358793149675549882485494814728060173212064691641579094396870534933172029844997718158508210372904964756434313123931290885625880611465438209923086003309387199944238631193910780455832788165108085417401329580902510934135344896855674087743015481982703266028588433511255379110304083890084705210020588751339282350913710669336253568810813526337882380235778917194348360261999355545076643678095916976621365639823714237070444968007107931695175003337211893113789442561428629998711030107845749377688974174117056523555117980246220433572452321859415058517200145398835977827938502119470307988201277319593061343346585510399375512181141021071494062879240968917563654239868717365381500022830932487344684869257288089011795157377246100468252742106918396197392872728617958988483195945290630256617049148700105413950317225809237232938680340236193250625157808579909451523873032530996545019419716865297709279229182107971028891773862650288563704805455781288673664711977633265571954313630427354276050846977750925663869902781462970063567354147766824361348086105706341204093342465010375546835507235499040681042045150936644798315055337220419813654628119623748319439470503670863351464953325299106233552892956018413175671664355163853666222489398171847286228531528309117908082881567209642946631868525474027284323861210142749458950473705950812569733704899165051793728171347467734081399220717637691614671831585024528263874201424150183326471628471230077018791743442812618130752488464341884961301477516829641366901803621381765844523710806618168910085161383653991070020320122702225594519469815979177636883023348421990768749550167881051669719572747399825375222207351671065349713630077943225642267888504400041983027459320727248198216048287216596750995004005746219977572199026542476335525594242968991398389702204366685801176717952252552799940277033325244708254137338142647801801586136132165596594220978875004810419323659971155650340626236066640589188494612059407917859331896674254104551659180095225652912118994717646078982460549174187038252862174268681911432888053056376716384542510900638054488368199402351540267592431926138923747591924890384622271919120702820931217194296620699745568957214255108763336007606827429996220935147923245456641434208818916208085746997461665674927456119063785773214285326071890215233705650444119308303470640371244913408269124710563675660551246815068450665785359085413771461483411998633107984607692278334971981059143824253198535636576587656022187351939568751778666923519714462811699411467830028653140601448368213466326496406871498950974508153145153053592324527503549279918576043357864491792195425171139222195011463548820899591625770692531056658180200616301347626926975220594334871706930819072215186569884572197033169156907530585776908426803229509338613963701888736260544265525608221837115273423200429083501754820850518012308668299356064078941002631037593490602084855203691005886852371559004387897408553980128466105412228599060281308403191885734097195204882658442285580020698123481088852734064347178950891013291016116496930727197135586512709617904505017648724601740463316415579870925692772925868318978622805920570314111251080708492677634179989542422892782429060142688990275517025383252224746452530127777319674626961979113054988527491172021116959623895812324107693569253928660243041793793994373289526407296854567790996985853674968634087866766003251872383267947571415714184156526516514774022048505120330303659375461978365821640116962783975871095375039084366379530379402152275124823946661846690305038153394525313520146018444840311062997497627770617908743560771685737316854735581099693776998634134556988628595417863826941335146220506964324611085606455117273975089406081529073735560366893542423316351420113876264117367065824182795528491566817382975286546686706353583784300252447026453238166641111961099225097162877542232397783916037965898915108193880764193121771956157863850137519102074601183141402193436933599808327806554641579591323356378650517609723073836958413238431858896969466848237678294610020016389093109095231569208178863197999376447396970689191916430551618318022798582695527355874568607650169422336651315799187304051132053294573551051713323330120537867019839108002346929192646867818268453098858652090640124710451853664050263195483455299686719280686009189426708167277749946386754820116101404510713816856844055377621929620239482905171871915235029475278505821047344454367713098291226234152185985647242685272017975988253260153318304086733373717597721514559857568933830812750148604670160068308617405739684087352578859455041608895331893693854731269700541963752940583579550176463112000066200973443507520152447316938098973436697720715604782136211496392501680013723618763197127963280008238465077514909602879836438733094814204271116259939466970402632250002806528746701546480475123083060146378524836401781967967729617692396502765912875590136490685624559497036247780606348826026857952225448854763528856290546396406212889009116325769404469713003658130779582577343354547736261561444800922333080085407331659744803018858542785541553461591481447967414907490541206722390755600662016868676662218777213660273476924017303982112646130042404491452729230481536728432530919577753946743697241909874271586248173086531873843866008508387387900453742102225958479556484774494844658044457421743103430334166282020279606862187512140060966699157943084343599855897831176888373100523463383726283096690431416985407108337045070968037609701373161078411150175050307019788440004632786195201855023595630719140273262366785304288452766707156883526630966148318446424203682696837834718412200398364273891645694620382290872694731272675395920685776240157429694026798088979879134020897389284971177745635916169422594070794323734487491653795376173603960189977950562636643320255655658401303008420705258686978987681944353658608306912285550767267395410109382636361389554643598493590987848713024634019764138077693428727851812192438742845734309737265234164137401362121736697983515898265531120254574640786733392889236437262904889801170013829425377855105386541590838326612097168590253503347620961603439873494165446215342207496709346032212291226166610564090456870886251800544621881417428541817096441898857572423952682710502568297607809843562097475468414471287013820156976437353286787633436163705641865455941437184964435173094810495533623034758795676061342612596407514694813663931229880748770860125834628609483048165456361485371089767133897896211114520334099032490448172998300974565133878263014966800807601055744337606254591063242232860371711066974999505711670857096255345086621289351796614092029935067802533503317902142445010783311388902718246457337648154731004169981463909116954317678688562440157226050461849561189093317185588218379855747527978891129543838677610475683347251303006563438564976576596944659565187580051046974018587874153563954750280557994056746076792329892229809208257929797295207656368528972490345861067013029556131281661665983780108747287166510446714882669612322324879034549250439822184197537556906037807636597773533383250019987122661307621761100382427700869186223131804043271294237775933547238288645086789043119532183979223560267161791267781802729136546830229418292953331142470956654677887705064712617373032755105429964626755804602914711476306872084849845891021088074901903712332515952490157721056648595059700006040497522111905824099541338001675297267178504509106994103363296837194445631272321398589908707362677980801537070902035150416685414130175912575010003733864638231130890045707389749053798575344045334388520117783584031349157121919073742874097589349196309532817744180081341906043493649765223275431855635928908830045042355360910559897756596953879200159539831146881448971495151127681576015213623845203662065916343396277810465391699585072352337689939721925132284610587118976653321118255529859148490630687078146808113799693968069292181340015588533700545169936879787567221265312751761098991304510704389595427633737984805076401875467248867439823893641746874888759830968034585814454961764272743481094773905524977999584542350578311493976891123103132897399937835346064838770549663089507619858979009828045667350179417744496342719204593070738567887447228542012020253654360348302598560961956766377000339965753299811114961131473377827079772303583682788721370207067751318627030315294775080054520294369863485867110571958958608210033113935003556572020527533064457260058488419709556740852725154587066560306445931618479113126540413085255952641237569002560512661368375227388174552291841409565766442639520364106262282145106196708548960319049115226472291981383556497210578537120905871452420082318466759613168130154510781835095820248461382972455998791177440951756675536672844546581186866244623568155049118498917938127605484782960784768086367398600408983143484788649341811905428391756104654466094979868007645612626300786421382137997787897663055089980359259830921783362821349790536626692482540324371339196153401832750376047965316070091260195425946997065793173437613087178285256225762194109181037044707416580913753780293107016926771548469181985383623245213237489080792646606336324663700895670301697415481623897233499532861991301419600499311166369580328375147412012642232303151039456634253524919960353658461179914213057727674723329221900454367270651201933629958817489765608177076622341332099153699366867398402342867969629628805203465571283257076826366102026146741513138902357457934457683699995492208331061563678690754612452313970418250067589476042351409802475936502434829700498811026636821867211791883961861966607283185327048192620208264619888873777694504576220619179936976228914650320887025424826831452736076046750224390679505218230521540929095176580053090620540979544091003443497363738187894643684284543936298232147397909551346382501868734253521762797370320566046021365037803432025461514165716496430990361255823835492068747048346476114373303408610744823936533749392060311935881193552191034024325498242341680178268161501053844701738952770531643768966483547554074825617716150176246777515214832944330880660737468438875139128908048562311933437938965324446115242160918769198406926316944590727062159839208711943194481001626322643574476725355338422707591476866843026844763555576897474158751456735747693100425370800791764509220353398916707434302394221369313099216374415858859910168112800100967355435627279560275920630328108010430228146784907130944431729852428949409657308530766658358834676809078331679625650260084529317623245722554935522211579663714042974763183361222432157293617807200200462832960854970932714006467006861092932493564567297784810157991251627272096058721213978309702107787441105179286994351396120589585045165358274865843854363794462508301155897606945960073344942563208080596304756923420751759129511121939504986445439622875407975292898049834025104678872265612823552706144451258385013930162787933486285907122708245934809573482342243161350622453089409490163000238067304110433542315166878101062998786735055735499675465946197337992065037285069567915343577168844744131090517443882726441170475187635712274335127076450207037769360377406510907161817742868437786451730066279477126769424506756680833809485114312309807936459123365301906243536636777201226359766096407971850456094354499012840898320741402359684991182234658894393557187576226055734794417545680412121034150039966075256826627197774701669984100712612629661545524033966247707881365832205256749883459386640288044532516023352675552034377977925945201680488697895874203868769349173703198925788240103142182352880196650617167418455355273049590577373901515462372638513390319351892077068537663687499403803751758371372003860677560747828155181631111344769549685643904983113808276722285679608705625828764566356766505409905752827361038048317286001529537150954228838097410432421382802932866832151696897226796724769842996631262329522339062248226818909758409733609565530621520209748188946230779562962761578563594990850891587990229888453241897515321463353814883154403860584011645719107700777844222747635074322080790366319582844907382153019024175677780320381691589663691053534774352666465695954629097272891289698579452322423920979876441929026845783194629309412327527798753834300837436067656523736633358104948488984584730301641545441270164717495210352865842716386142579611070833884290871306763558050153406620560559884206853555108127153838516252391167618187082319420767468500045854463684615122269180721671682083243551113158208944112104517543339554429199146413210669033993193692533943787562360040128714603203730613251891654586396582213870149026761466463593295050617562998304971642003976200444146335654311124513831007986896595913442885122133496948848871475573174539133974413503807338160552949908917714109931666169372078022764592391272764898302218451312044084616402285948290651299673012704777051642400015513034216524144520664754359160237744211627476011642866885313215987157451523834112421727526265833965884033093574559805056621147282864270447768152166811662199608551835421075829289369919875989791566787103742693051407592194975616480097355632539644853687987325814604342793330694771727789542080223371782297779483480457543215534783397403495991755757321746702660481108416222845998768643851009634367838237959916310322918875589746738739733940703541158093130947737073470630515939018235201675053817591471887864219219118459780772431381951454415866567667465243165611290031067817449804047370096631084382535314762252804179805923524054494125770268065076604386140670326654032632762451093008978019262796822620642433437833327094923307115182640140556930361800994099519428562108982546731571296315830234819538886105392538808433015515992446352080244399490799826734742034191164675307634461443165313315397957796288435665560683281808832645369860309280115044755291710348619948186105299386026693280516292716161715198450220568705099328902743431298327261747692209414062146765876066885277292284162989762763349312704131993747237215891274326243123346284954185814026644835323774222470058202559027777502643465535482404827722883110550872882969166815329808439667145075252531504777537495043807622796633125316377922840004798910899273261118439092186298346975068290561062528795788325024323319282961684150055291050348317575202045931631986664552929762151361921221165395399956782360945900275264373655903242779738561791953963993580613245790708224225624771942139386458715981872336557840124889039705905058444439928877780283499123977962617855954296460433404685502664071548262009450755612177719054946180485955101799581514933857829182217211706883905592532199283607276347122182180050915047856553123545185343190560121123143487456715603335300058793829633330413975641849774005031844028433513384728298519492232837900711454822985578117103257780909833099878560818851744323882264576692714170902689257401561525532440347163833542296130194938002620172222363502435016890479738311339291281400982621972065262963733819920344979262959806897354197327898457294173587691178145659200219570649862013467660162607590974985204245604326371572135094169863481111589768094870939763011368669850862023913088967101018291125191239892156102986042347961860410643538158621280387478719116803573251589621049722982377660344336909741266880778155204745350231339540311651588327707299902996372687243556055923841254125158904001894055449473026400612316718085074223803183007232468986056866219322825475019222458092572846547249163187967622361272383544099629537588801027309006411179231792118996980829603959474786490337965273885899000275668576546784444904561511014989086511704056135386624312462459620785035297795973415031505093149343616209013003349147527136362347685750063847370015858090278906715682435384893538085543435920526522323436690095476796610248874044165660588385769896695992604976870974259669995519550035200169278980154160333451618969556209672672123728120438204458573041649714807903039808554463314993766456872492282268575733376900153334034302899486650345690947983364186775354893224588877416108579474184201569551769631792230382596107009348780881721197533737585006382256712280583529863145063883721019341500173565610070275701863807011886268821795815687631517607721831828204358080482505952010393251890367029662329035801332892280806526974348987003023217974681320270665484021039663552817808878566085556112181509609339801480028422466632679460003502897840939157406131454673336849976671345720605449687772561323418397870945873717675570186264757681730733402971846406551326914843748032435644091822954102016061186997373813671438470450361403984998447423092530576553805948905682555711116453519762906348338549666175758987526186280147441398828450517596404848197940814525096453760982912427600658773018258631138409426701134768301461003955493691768445330102777636953441154240930638946728552837242501681295170101862542321427348213577967905738397367095548110232972469168002068983001453165055472699063445855669998618904926661561048406873365342399952943024463723138493125329789191022379141589891824318121066066676528437277780697494485170283612730323601095729039333039512588410632581209262559491152534651186972895069456709311076318814636281207413273754055661307154354452532741430854239654496814154746363354450787487949389377058787053679765149983143903121193546899012042189318247583469181987313945427611211836437636665811960330285170450371388244232943689310409896201153835522362246058538377710570815011401248354773420329089582170852391556807006824507318817681281110123638074540917702952873245341958958565606453557887475092475308119920441681195799862027019704539028529119714174168152760954575787046915552659144188260027892147260056675788502878540461165501145941419822706627326852256693103579402411825379548359137064089080855572459996364024918728126479080418028831141831008307145909792915450002737231232869116374663860774665739195670151384567819314464085255679964945790524072135158378902287150331662540484528037361611391150676345535874502603587633759200911842565451339590309472284214712680182284799343483885301114343034891387882528234292882293489489864218674948989659762954237796154286803109115212214417520333649528431346583802032288537372628950641092759504795312009934601007525991207582677431882775542000111721547523380189820837880135632482765016320048666263576169139805254325897183970208244227077778344122585225318932628662046690833179565227594259179967124456805056168712720051078459825914661177697978322789237071543079487762682102951945805521823944028937616537534723814098465786320601083743333811320617985988435611704536738742789512410647151955996302336074169780018875100703022742032218743220284958834468565368137547954705708982852985699507069326237531212391528493146629069410625382464504712475727790816622392663933655455736929700950183232607617698111577337316999565107248119763927339382117776959238652589155900640253046768912511351304763567888044789964055103165580885314243857125524776574275548894897081363824232237996045319820468122527859678956682075772202816263326771037466372787236892022005131357782882502018197096222860583267560861514969413178204221230310252664527028574296080483897306293387352833905477086130599928050930388371614438889901485012144240181388980553604441899416953577742016286845309243558263848098511144589063971072183391749096131925427382884752814866373918615758654213973364359152362490378434507964876267810255191503299087039848681469833974170453434926529282363753650105460812859837754211647513742660341282453778083803746163027376938238738987216802078931323430972318096516544496950293232450314441347040595532111246405349396770360351429932572493044355331725960064077762831873808859782135724991235647089418912137242759294698855146443246220048727775583915758506375529452080999577601109855000884551859621835892035033211613693283262079672521684977786131227703941665373411265932512239204472534786804871773306699268798997710878296759598384552727657981979328390770027008556345040303260948599233712654596389650436929092068661885056495914108323405744797979954490073245365667582994729972625610757542777078489296691852659591576766115130849207956629589716193642175943422050956405391241129519183167207183844003508423679897057326298064948958973389435659067000458707725478968171136805723514227814027315281446455234774303541184880685547063716086206057793193181530869415073379076477651705388859329179906299854281517566810552933666355488428669349026148843050357716548219884552666897723551526292576867561945456223790543693215324271880087885148342894461159046541086651436220702084600490579178014257837409100936365308533562660231603912715254023277461245243017843346814040557897330034906637453847256285813911002072928481622594414162385992208458199619139650407709686476039106345567818049355534049990557125982824734223146621156611871809217578784150076846752263100724123454344831343181213055429691009425185861955370041855930226137032140950188385433111180594002497848998753783314670509580386060900515765094136391698237781287468488756848801199735346451845526501488497975770878472566242584419764133235254802331525140713256974431522714529636457164764667587442251843638244867953149645792501522102150863502632473548095907541115893826326213972828056652277576832467678054847552679111638582681897159586720057039982975955144613060904365405516669087566425540671213615440206917715355862296899669539357389966375476238321279061623655659816448318777952578236389534615876546976685810668778513431913582292790184110347167371699121381911195275084150437075530258254993712208318819876949619833932171515914593115507603642720056355147366149814587982878017051173143354634812138836379808785280937699557810158516078595223049417911477399574565573783481578542428103658430421184366327396993822725141669456310424505188263439899666188037232506003520818308898054435541618117650635323419363538799804816731592725184740196498737350438335931987573378572716613661610770002582852704716400244668362715994140794545970754064955019597528375178207032260365404194795973919413422926744024562958357597627116322318731151062115256217204730788716884403133235501132186328895483318246491962143771450701138291563446916493005043937279648039466888780623289050023715131023446858957157423547189683089945027355717337706492391715545589184711190188523811366879372044403185218588171430477495702725816559876668292449783145149624637898156523808319585514181117315953096267540254984015513719139351287356848707467686614923575398915396240959826740579668181030893463006736225996205640843141529866019459594077362671459007877481695624541762559956662127146684373601444814961932285510244145706007916332815383314905086375677789477775817350671072331175964204331576984091009623062692204177294506102697324708453234830821100545976442103752659058732499192336901040438528247943735033431271956917312607530073648200202064594725218657147656998676375610323560297393853340446380885523636428327384832738233337606944143497846804304067774934572193660147864397690813158462075207807081961139544798605274975613474087632969586169035077403489717510321468565322175618486683213586314225302705405205104560959626762905977909970448330197094600648106938180630188405970583539620680980163084800447284814122684793500935568819045327883448799379281427215729703331985477629196905647097281462214178569893045148877105498939800213138829705572495900686862628836757546863147460212601406733449234551709647989408384328208204148979464181800491137615374157587713967172250527385104907903604065170078816963445051848459110142153962177019393139443000711490872091089313455534914769514917510817137624826002205918185428367108494863311987703174141223824541811252689055700854225462674753564790265238462630001877514227467296557249314865474884605056055577683903494141725858977263375335172187517350864485347453758566680758647113013230572157327327882614921561887430439663739349264076974123705262032056054641175657705025767036888242023875770030472167453481237124014555267867993484064061714659410159195829216132841394058075131300227962446656936440029491545177929923479669462189508028375440652813404901973980549100275068450123918833922039991818238350771686077893769141122275656175257166182704212024337200108526711535988837844471456726320973642057290432351942943407768560414533131306806591550666605544388920281612189609680859212659741236336007694129078704692585036393346688808943027981994080462271271681567541798219753303529127055944808858118458421244266346379534678766239839023779909747145385677407324635739074765549994657010590856609361321810337162011270775276936578857202645171066230736112678462484464780866561481431101411566934854409545146682194424901234936125334078786848997150179387980763429598344775352228138534969903112347213957928039116825333427151905474760822768280513404746717755017064241357854787997670260844194850074135954932793260464620314857639562369193652985481659192888240425044436329550463819106629648738832776860146101686578430108231736501932257380270386846563176397820966600775744773150516976979443580747298600129657082860729340695966051565957021152064866817444748307599710319800410850810344464155764276274446210875563362780903390335238342013728073085742545679929280194087851650706651995725890571655483207624684902115871819487525419714466593123835315994694594708626687126589147934235037150709874767407593708284390736228710434057175230609054579229156154082946156093178383626706049089230804919127643492922135602092190062716591111338548513364549855876728320965228077137006884528233000893907142613199293027057945298290351028243213544771704966082108973057361154983280183766357086221830511521632318393031199846005551617458120060610230466473103550503357273385965329609646675688245448144426367526277009035066934382866233368920342999350623333155263143331299539286324485463325309639337256669325195758876572328482076489782537416818647145215350391746801167808036078361428737762035245983663627371193368040642950425331346835741067079021086852570948052034586776491954281869920302494157789735096915022318235127795296858177388070053880086384386172354956118115903356394826694392040632504133537229522993016815114032764550419921675161827775299482635646875349329410886342877466142862850759935316934828166828868314733123994450654480980901817887012198048711639438296754509182708079737139137807925787200909237908991127502171032842172331631441847920210069244726799230083862234588529423883129671533258638275754158477263244784438113190622268272398861629425198166103560275151882452484445537615446613621949130711134421807236164370046293076397432364400127752279689851791306110512487057525025267616980167855502785823170018051374756731692271212457685458085040141930196519637473067563657407106739693336326121353899291627353872216852348563015705591622096467892183915497039828145152938465634759464360866306137517035839168589219528161985169593478670766027927079407965990741641952224053197836604161978051715530376368250534975108638583694795034969558299983442286590027030019207689604416340618737073493221532236645532447082537205180184843470148865344970002101453540778278492981266158911522211173988874078086518569207761852988745178582293774594326601963939293099697995227527243656927128819017909714324204018902327870469896852430106832113602001131573764136057038390094848773810999553330199179994679502326323843819637396396529460594082258119638081675980989561987347676976487748903933718390207627170312988951062153685855193921142283670181958289747503667822955728024128885990254493371818833138909712041624846599309066694350910630431165629014225309570086120729366360912824608784369299275737852985939587876257642764539930409308307956182393206514253080719713343671616446767725884565241846042896788762734475883719510804891835580977083278342347084256509084545516367357653302034563990289906283394587321666297101006312402834291012080123903081722665637871096288505400215914128344477480888876831727339440731134225013283849434334655220882783897454475702650500131486381776737795599525331400408224116644965057440953926744887412991954565264276315527716314571746550362881844238273999756526518011705986190072627966037975975124868717997528730916888348817672503397328915897863554244293356014352936200024970529874505837239192335522523089692763910580015215152624908585892188292673787480041327766280465986784013303074012216204644733354011256085066533679775701483684006290067873789481065796373449257513062958290382385934170757758671294939562153603773539633424123007205597570363583953259933945108548413426389597410567357904836307359682019484039038245182077941433581239078104072833318921853282949804339351302772283731575238833921870960376780418065462123701552666257710897926251519918538117799725324423888027606555007343612110420533612028776543198672167876036649421875216249275570019384951702138682896437154913774001032848114734022580682086972794051371428481277791990353186529894942277194537701676398639505577916720623951095948247162134361600899336385936276975441952401135948230221462090830235574200815219100661095924608182406485665321982757402226069135517542988973872690424458887593411139083836311914241022527583214031943045697343981878274450732823934865655812825707454509094206679500393373165792221301824509701726662683735776174244564708394856669547235936580736617675916452187431207803043436362202119755305851371360862622371678090830786764336017037440701717190864734772978707712474642595487817354995728658723922164691764113314635653975337074441502206839346895476842423918340081763198236350808818409246901597919637203830759528719154171542251917388014627900147024421051751155728877802444713404369491400585212949466796756313372574710144245476173852935883220036012107511421342136613907617513482740077607761531557260876214862676985368912705342239396122986388673316059431304139369364903430838517535226569805036450126355875565725184596322928994453505640308208532064529895178596616150814415916441011607062969706561043717676555682396791622906860862306172060088671054617372060554028778101011206444707185905389487728063007731118901955759887313549438653664319306830897841979752777317896915085659279099205154825620132283059608582585694646999885302094406011425923880122831598288960698869337287548018149763904311357201008603610688542245767862952879282306047045787426079222228133762162861430913378013026031522444951981756008368443698221973965936118419471863679983876797757059639971335911922308218713206573010892009774703699182684109366555041320675958506094328779619138636684364606147589030159058038568390139086931544079255028748041768872799487453907642028432409292406732312250746194101660350744541014601041197723700638754259092106509587425938579476368291407410943829773300393022662938497173225995581896354082115475238446826053623495604434280609042079432404236041018714211620079375836658794351742745230104094366220917724348537951868752375562622387969546857591312420528045040347469110700624518995701429686911980337756362431427714516548024785813578600353290539536157567304928515917475295581240253521263627643727793188640311661232659327773633635310280980335315594181558402503567265003182956663296052534363267236399721097915211592002549408748416342316978528815350719640308823874738987205208754828783365783114147562434182941328994545589889297720914476810507688245861106469384755866240053173825780828174959719592904573273475807559723867040955634993116850668511140053708161471069672960479238318312289736153533782173046257195850187309830229893900275705076836347368679320239884554608991216364259025048681585348940408245969481391119901630992703394064793406626644318469797540232058599897281210888487952245451433244033336568178644597302835631501493179680462571268550458819199690827244512782597519203342568068066346935046253870304634466710775449361684961563915748001216129190047553904419059082107823471173108797184508328032396161943853979987852576183671418910131049378004142223191780031908012693406859469792862781807898945847864015033893476016501873007918534776719536467103666095550803657339260633881967963379521714876314114192921479805886795626524937593204371324354587189426221396355146502693084799967187392442841567453020752297113026672447538110014932242550998642759576387416359615374941430786969836963183000244629820541323175915879773128975368202129439706493117826333640005060026253443751224540880972132541528034564492083254018701954838346261678018738105653404919578917780585937260060011579310269189660882961046429316448250589777886537395914535114132424628299269994947911026975344782104026094798111865749550315116451118932481464438733759803303267119259963419215123051653215566665447175352445699279277856284917281527686374700066015877463143966621234674850529131122771204749940641455262274928736971157887928833281648296140443831114615692756960041448678782451203379177527886366092832146614992692701850140716464388283325389771457044352987677687139912801869366697490684836176872038851684102401046084933608820723248956397925313505755747145129815178426924509129637642387226410840568629277851508294444742032368310755806084053607725077185945125221673823039999753987482627909008988019075785793479127286603614927143014474349769702825162012564329683104460168068288333152337979241373200819455451843470666206269981971771254631112287971640882979787573059450589830746039706441157491979472550753746376964463033282703056676227439215281351063154767360233046681428562257570721877993779546751816447176033296455456885470667368056738421657928743616667352837504833878717160966406415903012815742197868878019130459870660789281122065803953593234547990627285408970368017580474860083683564796576218776790658139024337215263270351390806653877403051646241130303758573167213623654563345882480031644274383493177888111189414843306616088299656992211735752557633973924763848369372645707559936829198301289473872842598574055790240947637702354349456434569299185976213706000637499221106508013497761742412322700742698214481106347892157782874788417571438385192350929395876257800007309453193355619998608242775404363924290828214818503600417544850435543770112878577526317924082953996938201753789281769047022782206275317252409232877155455400238882100554040227144859118720283355395874280710071770222672824535413977617005137052899555131049067871091334357466462814954395650151191872311501632389214097099909332792325836276706020213444350630025999447029324780969065728327190032221507318862900626795675678721601664672753343158490773465768584782068595778713461638483439503010167478633184742119685258457294160998185309313834670690869901296663701982160548947302944635441342003938239057753941697167657659851422040561613066462003205235677666767459061654054346744186988020016585907903016197356341494085357198590487524764973071937662062044370026224578673289917962462286375479542095443174708157422991990191163816731715896231788385030874407783709018211924193202780513118342006430936987157755864500078249124303109516169076044263232517192283853944529062135727844970095169273521736385244524806803842612905743384414942828657937544854385801212192825441599408146193424214599477870816143785013590974999319432929956052973594295383941529971052366992434842690664310628875194023803044596640007403239468713300197573054398439417491026951542333763471788999648397338606853866353274523124132161310260889169864760104395228467216148822856919772030122642869136771242011934552642423701055940976266011979802988365520170417204387884630419793724361363526447688513603631261899762148211057150791431071364340422421478288893756087016256709430341930814297946446780106096744769524746631498833413190237240664320398984425973496039997514303073513219823240880544234037151743057255091712366748133897953260484378902604058854809221686021411364882705558282363915937063361554064313080385269695796830503840244454130675224484884391403599041631325638117858732032480043431662150482418991644046310689533682441847097623099819486732838589834524476418266642787072025271360083183783560585863986326909536863275680613157480625017519362535206933127439757686750603957711606846656293352140526193322439112439805018419236390748460096869108710325369966986027982302791109718354076001108673042275026679398175882477036816380913997034829449808222061683082571929457026704579733872090983481553079495008781849112739976859615853712214269501733146981924026094028923228536310872816414107983631391596914599140616525365702053690335673662638927880730270918297167253137349588363536435791464027503342714841597367393264339520801588811529366865060663497029369542556668484806781985331962543645159016323677640355427442790257279431640215132605172543045674248379149000175027535056980629654381322960337822555007217072513539029669007767976502145652039147449122251728742565022147501485881366239179288750158053914679472681359369425236383553962336689376981518916097322623242963855697950494909388487364288529711350694364256412324100633950915473297516701167496621581468126825953273233049635438789550847547890973995740685013731369939448600031209832228255662845841259076332808916947564904715668610407986312010955480870218542283920997070695851767616248621768155832628419607472251398613962304385739565991340578308298070048763460111284912571463280186473307114550644023847070257161199723968971815999817689363414131435193535564325315459359397731916333401355130321771600352269510044452234419074264232328318386814497353025517376990027299627365310628130195434270294097066749264183770443059893505794703065501028975499770769395658586090790964851219976383134246858229110313496753581904342120748856902593954258509543230392589676274630210848837305074802527080043639384822386511242664999873967112201435852710823723022452013928924727515167851598418178894065654636546779559583280280203895316302662408491029366396043038429812567661519583382746217272610390605585960515825941299985203618462453169267562669002687194761840072510518667715533568549249179727279584983992608254181900377420483252406821500169458406594571604125819734891223374240010854615440994227876085645745348488454160062323869342529853357718238880920717495093448895976791179900346487370691836840060364194008476358512260652209708947559183747634043259932286307298446732993045758173137339006357737543563395965379326461717868503083379336194782801773031307774446401238502438003162133954489896466044781085371147243533636337456468738648224780760391097775283305952622070338462320903444617532752399816781995848256444156848893433277635892282727245693992961132474692510027092224745650840586955755104020147384700947954163505214649072151444803042604075187239410005565587942603389848779999971711390920006920694316950324855662712406899195754435524799654695313815863966678047858401749179710353928073880134615977344403320321078105735743110270572441160679042084840326505563269970032302466810729607802584262094683319610198463878851591607262997747715141576453274313074255720964470722959655689095487722520123455947369952284705917155181907847764107040628738450075137362638904270726666765942074007074588028355685465405559372639259419505903544318853109204846245410241424358005171036943190547120263445174273907581125126999369061000437713638039228485379766633616003523564111303932587814741279697218061104205626941670332877035751274632415363830475733131052294123349500363705725319122255769037969529314277884690707706707850198793944373179362864860328172424894064527169958425152138847844956889884678198364054716164424559149228974115162499695907682447920113311874093723575934238706530680999482558645298984715774120257272030466487710223494003437481086457041412189997122328425471195912101520600401619927640706187960603692103421886789325318331965843903805013259763167100656966427051831266198202188205243886554421354911516577720567386248837119648166170348930319645140649035522777273157268234384873911048799325428318472637764301400468294434030787428337381852078326563571816271611346321504005008454459171221432218909772197717504481202839378362391379999329640223607050443278780486816020209101114314634259513972387439126211403186148272544791978572180705162463968650036795883353893640996897272614505185390087713200998757734701649831308464433845081909289877394447170170533303779803252454213799900024359386922175720347535161591662211728875312079666311547632179073632993541363211863769352022710938572171782258732101892891696555352348236454681565697478527169050175890501481682810108866783918799234211482320328308210373133450596309608894059378460664672019862778072664543199516031683817412690742625662483522332461662714386989054066309498413423548970199638442601197975705117443361859583798065037935661900884196008927394328993241188642144140661043578008567870684051982503464619838749312838622827930951994796418236346341160961711012760411195388944863707049084033531128666230018243408155306213116723697549714319435997562634880476996090050607724009142533177941124706139458970099011396888857952570202074448446309066839742898648475593965617767169756056186530524189794391595504349428949233016557645499630315227264952338535466702136316059062543658296539597104048398880708448006761528193820716020151376433338783440177281824367107210013748578702595380913478441234542685127024250283190227550124116214912443018778647997136421732569886931806938784929807681646158119817880038054539531605981657189155357140335417324393085043915174442880607581640057702214507618294674481463010690767178520812024570070401986176871088071283888850167495170184427412443652107716095527435030029836019796083779941531032062425870036803545001604301476147436075359203901616248117350710402605407977222621284574320265241255280623835012277513640870681121462312801648755348899460223734171968938833171279248209060097500461930490382955424414094740133046210152364255767777977554188557602015427814365332251143133077683093840774004038514723015395132869347173122817766075004983595382502139263212531047600308446331067339534660765270828826602842320296512443620638162021282465604812917235009551757278812063862006457359807836805160196245776061391608127162236443989417213309824455040411130390571083923075534328314620897644434426352690783262483656183076903528417263732597871407052372438984720724364420372294827814092950871072676023607052033828357171174587404734655768187374176102290055479927452089338107076974268520801129207996563250992833389254184493620791920916805121419734130100277187451819059841070160766377739491280717552368082693752975267858349347684949519052010989162983357321533681174160722676808226827132517334978947449120770221424792615824462075220417847140923313254647583309590099376312912193886397936243075460059514122259838782992755424819327106891531403776970083367519520620476069277644651830144264511504759449554888857349274479430479832216545032375340008789723699755080132253793199940235914360452113353597471491746925826973451853405487575175997595496422823003941298216995547266466845811567527760297124658050311971294481552973617176302549365287854572313902206477885851979361586471008044348792143323000427917252971835167430283370419822181892334071088223600011875361558542369263477890334682466133256806322472278166310846299725512054384933748326092970561721941335138749922425016881841838459135596967840256224171830503637249677865310369416546700925479933880493641837923439677872953109808387531605910427044723597394037807664824872165024748100150443631379343829772320094741725846142178069060247398712525402330799512726893043381200357329115835873604285353703112169021552683382848825427156237820799451631648919391877327450618372451374017339470962291548911236866143750748290192325281523829500175452253542548809521183673846428625088802835034425710971741513269196084914689626521988099286379769956072195506286315868252041401998306927015714604138305954618557157389533232396271031174368982322681736809354112794563225101460616694410662326610106943437141138501539583282816055063943704559052995911340508063184052699438918107554920733413718522970831306049743758203192512581886223730559318969829805787754907380419228321386246415111725440329871519046783497367385573322610522461729989117601194765667386090386290687305510504320620253465173591595359449998410190450326853025969605251715281074455088165704487893283854721111178499904979785696584483465466377186944314599173682788843870081888378118502801029227657860655914739277199966522256524131304298381814943539568251227493348364106684628324682755356301403177290909178230295679444768975381535610820186532819784577829425880040451221836130162523068800286380760439600022952537466203067082611650770404846568713216439493402955476401011657476384355195873075595905705652734163961924114099563540098354670796291648324399172244536440975172106304607519758272449764071478332084735069887437017303417425580299413929578928165910586821631630386796021793926651248466078639245486864903928012755695836579283953651203712171947618056335942919616568004617479695034756637906340549462739189434738458885489904905321961704335497638012431595864221415907655542550767547923885317978341159064476014043780770209237568984761205412405681170994439685959507355585144616106435421435665961541426194818654452283261102046319837411384624601585588479657014609401466813091318911839945573456828011698675337967300600056092076498339751211594057710160468379473633469118542076406729636889395858045405536905624435524133706808889673558117596097686852858307328627029646085330621606618280958122372001196659410395598659180789752007323417035048098086432517117162675590406273715520247554193987181547747849884132493946231499942714210933704662593001755428991428882867428137109014931508025909000364719869696092598861818623246062539444491764883916507030365379460880509343993145217957165892896412057235835830757696350512492300274554452362919978544269117352314007815809048000047010002994019612667613820330866042741517931259566216849588641784874335316000675555502599720806274797297945541896141433663181049927871881942681387832654251859147436398295308306936689084291217675786113127031171015297881090372285011782983114914511503375931077555232848128788552421164382546507928781177672299182952296266768151563999057825992785063608006647426985333586929397756619308519047974422301946248933363431201517853178659477578314422921887625159793963063584132098700162297435888747005911607128829390978498236753317862582251810076059824354425459867528250543562635049320104070719233172737938506788670844570326037914748527036045345464917751680388005250930698233907302994775689955844604133906934572767117389000518122493686918386197704598670614911784427857570854998579268957174975798917473950822630140690545877052391097798336431986341276140378208740162123499293739426267040724161669397570448227685628260999384428429274899468868140550613761642846319607013444451395943036355847471642643524425956273730972745220458569599781483411703049688478922510026715365773506901545494193136804793972993165400034622575018940850933255376859521532924539727940411530184717618501671546512568137483394285333933111099842455276318640102408060509762075891251389525300555794952362845027700108977642739228321948149572873748799178692291221475256294173451621608933420483117988226919153059152920135732144567139568678749902867746042079196843923844450895348830650435989098098172316387090446026075082058082681998431266401829569464690694856900506295934086883682861947537553541153433880036376024988575797634722653600536647150577064524924891598759454938049125813586695344545842767378649191985050111512384781363766523554987867277321303706367905544704201810297174180926018355738080848410501986291269958470841850933518231016131861704362301364436787638798253994815927334352781935681389986523258594403070478777366305075453998215836466532636736782047267836259652516165124476399059560444647079476621447433926179262279628973645905739531961137153470408681324740146378310312615226504111715104478090660108218065710848503881514105916118556383357262054361642355810910336653585814192764924163677176041250366892644056387231504000751053679062098580574943595580338224016590453061052190439195052007670413013503070112124027428577410110085426989618940638953479964541621315393281262886222831661586082159372015562605776684570626560624428227690759565501657651071022140879948830748521708715156751535571939835690951223959544035268844021563356957703060485268813445263988574819358767680963581231015900317995551391900635802923906084839728993460569353869975516982243703854931910424660308859982435784136442632866080155261551457176268530412141222528291012604288796814182408817705164157856191611258072976341161655539054736433006105003455258079776892312358592598989220539561583804169818868437847658364982096554600874746687461865457029319483000929501078427778412655866462542670650049642391899844290152883894978072949666039547976804227949950882224832887051620343491101974911184939682038482850922481952931670563712965417710596596116998514760603544144546646569388417882906850488064552267296399627793876464621316466868591054969133559534811178241065370499253373736694031285616452127343328782144616240829012502313092308354137863405306769463542158152158654223970341133337496079597243633652293544063770401573923918238658776332357643797961124839274574689054381459168951870850492648010039863924529889020134022964610324957756543091414471108079230309566920941944614220121993710078059201355195325759501789181110193312823540290132334664959452555200861130801913743417845605575363635557986349960768193569242740031091339744392088537726085728519943756523315389389183559578759731099728533679473283284065439271156046302069059939293481628351535562583779547032654999151254972812182931270879398708941296037887411986420738791044888945639579391160060727830840266919420877735860137861379374496424232299245620931640479079448636589406047359928436396002027772962800346360939455762794765741004790086898443525958977403584089829125453535938510381001644268401913865536319394492926617293257842443972953398226459803313458353868774151296626942664497649472513085940255028626526631454211839369361524398965404694304013277814704488951563685766018284969409565025489240373683138332470448416729555219291078336827912894166930722209075069323779857655978201803175448647503566284763755290831283101224117621590990309678637509599711706327980018407764639632572421845724465186656876947235504050384130467670075640661223704550990120078730012310056093214879410406811617178042618191688258088080902969400949726685045866102857655746363216275473419272062765012529533053016706899251374314634414389820798571243548564562946026593655153346779722106465592049024483626095227872125547975882325859823549103404269492319682959351438168162023153343049514645446575152239199944442063599505694222147596742177092168960491619030899783302890165121359024361326853066288027173971037154140282993355105434377428835158454004098800250974062647152956525004719979046990693673268948051114026955728247340133688764364947224146173237206556143367057565866573962467522879982995749044704277993035045400441115422732068307699729916055822098446381070181340307517187182153378565947456444043191130906040953481969700859771075602671071109542137371448333345805774794369597674134196680124999888457209440968331958453977099290515061297905865755395884193917842704203860166014186361147796084070877035972704998947236783711813633013754319430124152348752870821207819310960051685702634546627897629618044776559058228384084479545072914287579966633871629928590036764887303909689895994239454234687533179097368213212647600288759095346387956486331208348534982230089286870243848316776183998233797112526826422474112334004358806677270987336473430441730988855750652566039515843460071419486521685808624626231176669132720545277925060181440600645624470499817395739809524050606026262748432008351892356563431009592357397518149460202276048347948336330152044148154179569904886192519473243291587479329279671950528223391193547193203655609758637302585551515959060890809532287522020129631749648746317651216293554501679837551234828911129823849361321829088666808654657555190355425254046993455789931841760621931542754208260469321175919444114470896042855972767816279214577562974793736450891560845228763390871099938652309260324042412063789952456033060771231644552250443707475748657892733697368264808176086104432450960589160667403854641141294487939610438238108067472677675017553841917340152520846374919488335867956749895863434030404413917219871613723109366900028758627781419607955651793384255847299542990528712520586782971051935604553209191827295549922728288349303037630541670844148642141893737084655426621104374353503250751009346189823660103927947185010703661663347670866006109211418564776924708192141368875242215670177792526496098446587922582271190346463101453595794750842872562927038903033059158070733125648615068293224880700404250673997594199969976855381055703632615253092281099357117776289598639543230945366111232983592933439738449807376153126386679272829664971697347634360509509451670007639274420778123281787894224374008776040154342385863010691877820911716076384077480138635464717072174057306183210873566273120658901173342857209573119624720833619894752584945736867439215777298317600475427318819298898601818962687092496731793576161441469561005382390107639122377565502861995403903963657456081221993043539331876383343579134299400933908154723840230324405800219675994087129667341756860922870132506988222764411869345995217000154690095765601372820810068174280518585385309012886624173028500198839251674301402058830448720851841640030305038532017724818692607134314668115493179138901246410844010271376067162346159672901820447484300783525307932107817861800593936233174429133667143952012560806588302986962556417823095287053274153570632243668295889257809470199614431204226418120266112807386081683909845550516273222971676655381491096856493098292817765416095311390502225235549840184335304615417432726576919331481951250099645002896320377402060697347794549659974461422525735523981262780147724089071271580824416498150819564528928632415674418243884081912007182020608370004875133006049611194101450138425604496342345775001865873653704838789896606567534459232839584290798577464072374715637523220891456853710415333339905943116990603904232309629320784215242623715907324626010354252586204725204313627608709171987536579364243081935785472502879811226146439930892028595880948254015523900123077081840341526318107080861400312720537609226656545572903839560742952691534379729738997926541034243913095189577239629412354213087218954445184895259805129631621266283235131761652595308309745830648227649944939866335133940098795376027465655214972761467639060250025415712358580609242559107461931550075417132478101494036342433329091565092174192276621776946158085693356882739861325203771964917680414936098188714209806260238937204378371728218658689589556911368868656705530010970577248706078900128317517240176850426702515670329165065408415473268568631291220853091116158259264916620160711388573844064948810452756621737585628269873821597521898532337223475377851281839464655768000701919432700575067591713040867172017148041043969652866840220958121413790573750166519716574668449287078881237171358613855632642802541991558444089571745378988645701560231948853678019701010354765536868518252439643305499053424123694917893915336124090740238238013609730959227273032671889757618690052975917727468034014824689290940148500876275856317266600580337285552932456614727253729225615175746117460040785092715591891709305355256212234325638985461754575186038707248226175217439302187012094028711005350156437631590408774238027499458974122919082506045825925503372716109119237511707310362844394229547597039441684042048852154303039705378880903160638698875669417519448268785286663360708012863520368220049960754480165585671976179439188593101123940117587949380417411365776063005953352782516653476948146469018309971375429182899486334460428625874988172075879577723366603793360896092330489670045773890372101357220760388473715143044898653233429907073272948327155689794027589586673957672022668944257410510802385236243117517165657293419566369413548860659089608347874571823688149603734530364075030583050371344635967089773131321959989254689479036095774210590390717858606101073628398219293215335769644733457708309858609300947838821106027946761728776928683366411901239755801714331116020178401487479782798523544670816122318420945327254557777896269990818331144192941633784241919939615065264250221064280159150082469001656924458784849148138650463903762523562821702128104709124340131679436304997894573639279776419766679749619660730320413629193150298661620335283549716367939472490962759626842015412563968291309679790044551160173595516698297837570829102898462779275166200995901513490803157094005901092208469726868927205752902343892673648035915921717902504112881267664167802556396257357008582310415309109119724926209078556754356198439476585092704808675747834045430933760993911739891937954040401688832816660830172143433547161508408255416944820952949861424731151560967034476097556591425559757317915278120829036256999285808068850968495426667037780857351689528289617336039816907495896910413008360529234021818708022049643073104945143514072432976981434974683680665414917947151466429456748962172287368095171392895424570714785090587995562640897062401883163062140983638110613982002060407146453874339293195388839246181465273754737834715119071291846398753622446783843571308020071298653839742199903051727272967499266252209886822730330920204452266499596723608027298631667416528219871508642888422801560349194861182242232996594777463065342404789082571685596441231833050833160896737636207968248109379953329248028136870660839460894498289529159717996954034663485433973282064904880568598889536456008631439650269110405505520182304242238907934968054941190192362339398125701695333600435716980365706174551074551884801650381812808127378329951679791456459994167926283396273856934392483707740460406848211794166973659039271929263219592311244346774681848497944918604257731631767992033345966698361773817931155799204680957373036901493666590954654851472044547786499791247068405308618787870539318956035660363018250221573984299704660072580931735545860629497533032261352631586233497952163286262355054056970783748688169994822675297233656494485640653095634336387732044222989704199500798878737989155738782409756002907196704479299901822169675809772646684695681054795454942156590003679627365305939359312061831833930754413656402177074937696640347238004164165988674611061047270393336893951049083957876472854576488072858437726206353227916485038406631777511817247735669462151466539574597776735536944197865731266442052694128410499151677996700826850539706250806895083637986514145395493495657000953138341633519013650449241625713747376866398680634909090666272322456393255977331622544483832469918203723518069922937208452265879927163924891376553566440227032534816502420573243120400244602178695710828018328849053043625525063665138315446722164525891026920189279496897295646206134286379937157164337921476217727623097608090819025772691157598120241221181139921606545528760753864015306267741331823427044046502888819549289901166593450021455737545912221419542479491811068887055245099782529588520677831479721629572183406138087062543455238623481398692779599577120778150749207685606941569210493798633747566467202036426649248755229785191388886781959734815776722005419460752014104375266545807324782930559636502203027877889458137808049465728635844410263880564468954342002531790444360811818992159063380535892333335441208790936276201620711630633603775580582815966595978792764697293077176857344951035898220261902237390931917065779772326919281689780209423391078885096016954854069334325667691630076792662251453846453433116427762675870471882986702431287555852198261404380412444497892039935740558218660857189431043774112812689832724956486729087160243769755413641549260073511370746781334126635560493005237079505887326999617709537237303958740845841157554702341113555095023096831533694249764884828829845845974609781246494643193509250034704317870104686657804535618906243036924094042543504973869134681558667386879907853427457338636212693721984005282421571962819554603694357567269412609845765282322515132955891982191361840915401964758231716016898163354103141257492163747570838839275427970602362922536931112815097500542999383106104675183492551470566602146968914663989254841216346538128658828814263314230296014014568778293927427804852168109428696773576875614385081917703779140457914014943044534743939278815787075407962702103685745252057486000831811139747809833496496259162549471249060762435317094090388851204597755942033395718591923851598328057856006947980821195172966593457077589509805013248633696847308692831001011411592581924805436703688206624605146787438386124264731521794789100656698231385970265444305470928953140456474974595319047173685499652453873742992011553773524682682080380498803263958975079233783971242283254215219631503230770904558029801445834804091311372711934017621748577539617792365402688295373689156607784912674505616557620078636356462217772577762887859353438594477730215405743095009571616886490087727375045852859412309130793279374028449966782609054065056896505637585858826217384871434212824552933750418599840070934849958642495836735569514963027620437736670086923534570748286854864963851936908689540307040454669601952989170880113855530096072111757064314145698967924758680863827668255589291923185564633022120982583256157405560362056408823728795518112759285869655112176132421514091723361303265483571302897712018266343078925985344499214018159150115309770947074320710458271949781623894013808070369824152926459864447842449680039362729658049207638772054600203040414921870218221650320051281331729877379380701898806706644708457328024319988288013628237358017392190046137961696180344298872632053872730273842191441811403642352027741598434541171923818519073716135754132804153144428124807892727347923676162113007693416655985747163524741449699997569853032223585790949179374751904963781809661061048397843402768342141858155730399640972490029089285897825655381395124212484308252991375503899740630641754318452453607423110099948041617084566099854037347720700634406860337191887860913933021505793172298626906153769859532360301523214256553374471989488226485877586905607254708690665482923317424265075405354869346072310174616794151007883284921004085722147572948204066270871029779460620929142109967145048812054428289266724153133275608744931589477578842690247501324603952093857409230996402885963326080835822241508999027558029081402814870486824677798988774202340403158648765333280114505824739283690614924642666185869163448523289262596473003323215092308915463516849201241259035385159840077877161867397337479552670419095031814438019888358154441886919386966966000617446629164519485473539559798473721930434544991676885525229693465870992146903338411762798650452030697796726563513690430410342347985682633504959559082176375544437704659077654926033936241874314075990356701475593261955571809036229997631216385032831058004351342254113582546703030361637395326693971675652915803211460465677627261512780693799533409389309274550688646480964198168936007784531335725870898486299785056054779125141176030600734294155422701830122022182243533100731917261809353583197630241069812784647830880506873727125019313277240634289177851099768746316887676239024634932314209411998114020606132164766843132967852865620745262416744976018896365515396547713223030794641936935625907606793480694127047512179119984842167725470127310622977920092020186639759837463589217831708539238561660398350850649033279372343271361421054956204423068471072611996069097244930600823055417785900963317307750081660040794934102982941971772214927007199261726273918417733347616969182076358667275311275804847998709606345446445515305199192980348657502922364208003783862539053191433514574324765965860238096742819059353609050005368446607469198837358159244264339175227087332608973478188220775872958345973118136379036199073824548029752354161386575385463300396117832139328546315621541997130528419777837562658170433432963051174281071570161935063324253496169167767031469867606094737040137582242901799461673986988281339552331601741807185611601979906339986225068500554942910751038920300828470457667073098794038814406892639521171509057827469275055490514851162892598980652933978075248793015682764758740630451232797264231845286594740105254215215584339298503499051195912576127460138493873257186910266080644604528954390929694416858706610476699464134930002765952678542719546462387967913616238606640247852213596250198469529134744760075135767218606449267582178097563390850965586256624912811398239393999650630176126249840625684334985218119218486097436706985061866775100942942544857343965934551338089403152328346688269991437331450114790391219852566412848204864789507118351755975951622485533380882388509548915756591278130783220104926522534265048159911875323784864291002456116406213602500130675692932246419791100811170480809635915056972468204640539198694019570727989936031875783403049963835174312372143203364137545635175825050661097415478041651092737670509902826224151624087978473184679355988079279369541336656510364976600024922169978484630665427162511811078803983813033593730656475465260827933373959888580496546437065393389482747502129236715544458102905694504093141177666804004223123978413353251313830551109372196479916785786299678567272600858138870168543294134575269194920385980105749680691025552268663315694405924717192757649311753018423903725650053363491919515758574636964281098045945545322759431010116783413740861086448656837639867574904327824257073309516154984024309393167344926850023544369065577089774649349728423194636170921559130561097032560930674017648010212657726407872702924814366623722177623491171381584277006479391159676227588530874515100882964419661921459708008250462308985063631874258086635956108928693795089423316867681955999148468646957892026369041363237546694382692643227169880559490586815728609106831807035430860372852457345887082373847658430491886197836281329189123902920561552960211510737714196204620698688568009317936224974870417338596347126119026685441723601091801427811883632073954567987120657266345851432491782123758314659844342528038971356596139200601597897181071976391041149090741292953647086213425647651012332110390334221294511208560843464740486099264304836973828037508694828556489166450435389106533210996368133601572606029636022375299576881354736696420000422143549222735647840851004654589485276968154537148257777852797385022059382533145678296224037114134362373002465850504845456950766416993989270946594243601484225598062398721014467151185697148779598521723390722853003886740090743279929324366563880541152896780221688243404959867482292357438778533667322341885594637243751957468464587683960319708344577107923252344433658703511190032624670824606460075496696294279015341079427033867514455253621284555255553076778441680733128023229605421383847068670213627497004973698205536605322116323862774805834280158263738405422934609219259219136557052564755381841350153640303734831982346069513710861091401697255914594417136099214398320701268537667367203818412830365066508281901964702302604843892279493987551155562647348087643017922977852915694879973856424236528688598706772941570353985910886211216839626070250377717978495385161927181407754849084953011264854098531237169873809946002551711128537633238681734190903022434024998497278205962800097938604726795213133385692942514134839741278025363207095461236142513790057974523797041311827356190255389030366383429994535443218440025582764895780671014751981935909325179547993242111811996948496132402471778229582508137011133321558476248768750902333992272538074068425410103605384324427037495079329224730901690115877071219511819178321265282410236747294398709673943960124962370092813426867601872978204685910355484175643954812487241459453728503368438778621831511481388390608649492458233211360882401325599529073922925833756706849700532846849792799927222275400802299123771946266636129808905810643606433282695859854530700709067861230220988616828361943435141750452511745121256915455528283658245580688180352239383310224162324464860828651329099251343293253903899393953074013807179212431083970726782752640486570673011329239161331128537512261110858209021824851177557427764549190233369039707475518885595538655885952391106773915394714999362006728519274666809321457598780375050377209523080638792706423111733677470444908708024962642992002462925853612687498129040319062542549134535270973205200846602805442397872140725603299580122254957585484204214259861865440961956413416781611742859533099707228765754629914031040142243148463091853739335974248716400782992694916662095104650977052701179433429990509342478085861726846562732109561687579226019222524840210418381038636699453779780430756932411254471228440809712960728447092375021077819542730353069763404591099783731626402867966870017684113481850382702811663504753112121793618632760814396250941642626825271284194600168693755282507214508740452827154451110869150563700988197103009165817784228238555984775368101180964407390182499469573183427913040817597089963860905786634077577948878778262961246359356522326650468284768394590162096442375284611521631786706477981514400971526155261877394552545198224099876115787350756086443807162279014523189014983319042677943849285747399255980924958451804018769331630868256873563283780678270943556367317034447569290160655411762505157407529481539907640697997464811658753642246738163816691403961052974346039908031145098039445424775762315760381573181063225667693531996859290271443747662363351219061741372531985039036282453624021848726366062504396242615861914755907757226059577367194227528703741868517375775053777952476630832902767750044114850929560019501060049308332007413696405615152756567404902851528885737392289207165411982197392850250599141421806969782856530075532144376136565326255101929620874841154981502693833234639739344299190826795179388008708460436681693344331099280671986335395409774819026970555370666779994585332148520620350484034854098092672017279855670142103836436644200537244539685772616319640567233818572131686196993132203257184702541669942882851408165618665401269102357927506246859080899143286496676070327124079509526470281671018980508904161743742170380005456832542482457783080947339945397256180551683526467899660615662343213779045285806622752539615001779045197674720731425632642211641100886619553239806019735596987575728530338995426757357929222511583973615740323889430727713419960478988125387172064093776473647080914002766544013551875235195398125902112007434019861747961894472748606862811703051545304036216722829415548354904670309664822499584053487556608246757316231229675041261172095316718942037344573929568800076129072396817418424544395544027706740031301449371218845679365229574634825089644584219065457326646087082786333776127120819016274952748589931141318830740446465268634337096199964951997853189192729981803471908466062745079412745354769833927009599252477484248980289887559090676713577106909502794498979918275865785211963447705248112266483411877816902115803388019717037279256781873218901467568794393951346841321988653122471894956315257134302181561329543298538441818231289859939792488998303458001933532491587437447948574272764477151338829392450259053835867698736553987061589784890924871695160223142944549681573268813628289047542118440019856015741174938468171347921091866048981782222681013092624509161709059323043478361821232370713979481089783577915869041746512318405496534602810446532616003867837801768443409560371574244532854964461145499241414820915938791336978601689397127438487562780010643805598376445865942238463561597867954770597637434674606957837574442673971390537401622623465092581845834330980880913323795777709917464740294032420435141931638283334357934175007301025941101697888515194957288636993273994845734423303758537637901827973456259520883959137248045731624824712555630503271548128622815243151735129006264258253781643134337930892958308253701602764702165490599461275674224146031793906522020316723800851679195119903774460596988389691156449717301476674879857276307194122990687284159661246237350281750148195337510415202628426814958029050642337238523873297032802788555905486817027356088008633721387768802239058026387245954394539307329161486308670130741299310208005201738348427943033876213716593143047284548655572183012045384289439524074891788789413603536506119711925616377362950723630171804111164784124293329013124284143270510786345710402501384180525796847139438450060704069746609780389256260768325321808877192844585634694899384642986049828116628009198267245921855393795989277738587314032860195754872732593323163517999794296142626221346838194307987482201344316293624333539096899704053003119782526137743353865725897338772027815765283915943494009034437391910147282271910932297578847240897623210282938824478128582479179668072854539609687570051178866755540226669108869633747286675318355490831580956276411947006195845004100917811808889689120827555216417950707255423954884576293676343903285700021518952492448229911987788982299411718292246720244369928107712325337691886098952124853111510540517333945871272245999663258657545652896874204499140081213754109965650586651293565407833786891719730209177361820029162400272031368943089625546574601745155749525974175422100728940325058977214311064481958750338058070445189802959269497648752012207434463346720785604182468187104467431975588195380655163880457925942155620555955605469809059734199849295595782650901425838922622155219680617829420087525608434325719122887811952970094465244624900343288851528929865723939035402372861420484856369980960143270225606072450062600597665153225691970490485205360745734079388815421345783056337949489697634209507304070250710706520782410726546417293552172185590474632126774792884551931546937133167155120210713131182241912134667792111840748985486872629055108976769655430131403158582728946798945930847708209014213322797945018535812972718236682548031708029097855100978704048920675734631337658271086126534643983754989735236755075832779029095675985836281060504228259872454543767005594577853909281937384552626833816798748385561466491872435571268514716305944808774455361556464099451008284654581314524871010322759931965958430202360425156822662800723688956589907667831041022896732530786424852364982749663763481995293168056046348545910421991182402578722858873492356201972347657073518061711323433553068798878978222803524302984634380851914260741269305082598412920949337181263717964582094549706010788284305319641053121613780082670024287938893569663943732889349169092045355004458711460597811472688631613631938155672237914086873084122964076828617328377740250834226482815519260745988457288251816570479307608286972344639784637133521994216139965132540914278080712751081826985118032196182841584291494436261208926734581110158484811846482016423835959366673402839779036562478747472103778315338744504878369054551908754380992496279982754644773184141418951782311041425158320298353598757733023025043638117063353409707516218702422091938820358245911299460391597570033451981927083210923907881672392637924464759550365574437375171462407200091244105115677627281288586889566136151330061056446274190206669287801881632866448639955697879142353036867661240747197223510830546052190726722952028852613984190884078759909962179569613998868940145474135032735397194003132916683079318493780187886147757063768762409196401180161396197307205902601651125201497479991947145490706554919534246894359210103167937994288104482377699082970229776362020538854510223346644027028694944968254282878539102450415066223251061814190402687692194219063050325037147349743626083124883274945301785430374210264230876830924491622544994675610861584268827118093279985715377040813269826447128605678415274672294364065179200567924682863904314333665439659528923017397811791839055934873012975804125414711497189747197311527813307768992252637866018549676461364678381519765448429219785666050319812361549634805517066302014189226315310947892180121636057033724330652224555814503601903353373490455763974895843574753697805553040819594802108082268720543224518287492158005215620596403074625500994323830641124212171091478260123919028655747484559870710300780520333400772831552666754692457896812541230644846547203963011391522603834760742000638757858870392954005590901245475347512708053027908791001745979368943642886709884721675209983604900258438426081706964333609384988888213868945168987317360626071719884105135022155535064765839559351331246832125024596517194309055044477919884917398214983128777767594901307099810388614386089176108031601017222054288463938044091326695188538026647603247968755858346204095300972671816434769826332779979544700066270284552576999109092360071671604527589264648946869979591442254769076802378079618395106018022844714111318406490926936199535550426099823067439337468839568839116935678548053519746066093606754358638614896250995276635225516201505155166350923262431405189690878740460724645991654843752892635344366252619718955025177776061154494939146380524627469671765264500187149399670369131484286846491191049757816463081805661160419591408157403522532669434229712601163907081080683754249906980483471462303954206105555867035023330734818764202893755509328025196145652416179591256980424579601252790922650958347612546708089719347844835116286897240895902489432015731913445787369511002351589780121291406276287763884266577416395293305947248851634419246461723756520404483224638378528224472776980504263199095804915716908103226561707437448100917906177277106185237232866699856034361690996606236885059856597592457321975948375833973415631104546662377513136290777646211425729702445445135426490876036368354432222277501191410567313157857445954310707788657395157478344585103710510849367295295450537275722039102358568717660736797300878831715533380336387275090622067658616722946452294689700400799105310596747056138018777210161760292122686844721538092845006127140413899166200233615877159406534956841947160918777777029487945444126931035426099076164984299934718222737033994264058140592582804279770896250573284034780882587258610646829460400601488073388357027326839586917467123269742004511698167624510168862517185197849221067501588612827019265628586912119210005627815896442996996112803740610889054852178414431049800092746740551022546524788716558429070191489771127160385929759262127482133820585312355586189373990345338091658061269671287951196596110300980566862783300683847132698764581349345628371102703086456157843493119912026782885455212373020753000868090175225053740044170068184018166675534306548826300503952808459128301100467793903796485237174841594248105865150194197204223585551263542036244800326456777114659138489179144943955081225338383254345174691133665473440473606702183401655986447944386615409227461879438999747392847588314624343768470433253178927035642294876276602472392569336203477431459621332530720246431264965092895932843729888721931353243474792750867796469621536467422052748110598246648414270448001695692468984997103916505235810666885820006775974542782477408378707006557908293203852457598177623987045427880392657010476463265245475181914508851976771115753535999430897241006330451108704644279842778327289656986994436214374029414645467166193081444441092145887174753154510106509095468317261547073682258828937202316914141569830776204099400339607836962849142757484088590691882569333416899716489838630026392985376937004505446796387253652395882056951778135048812460585340875976386818878794536913222176466613845755649284598451969285051647557081599352418308010775927434705217506158259542768674913097438570091939216518217403033452097268852755967858950874688899886390905308237442964402323778767095518644518394696368641623858628127891977212654011618046036601052404883606413534917192517046772423493042061858698907432803944120338009152295485072481838805498326753908624243774116338318887325523788716051729348404599481735127989843947603322775740636267570190986649625461535577493228280080100149186017723915857996089065401250286252646795963384494493868958909371919810907103662434476589765159116608421163585688681597567022214975554125278423805813602460789550629888286368029075501987941616144627510251046799873594523023591866843793001643403436220471489513043178108378717851025057961760399374556048422064281171333266588478619713290212225874204310493183895654776558424420845904136465203354795649111019353083379386552676913108466257475628123562695897198893938309583302573143895440631378374472920486996066624433495426507425776560959899098532922349806105774954862128559572997030140170702421960923150165755944683209151261100615660288763492576966808985639215287453423366131769748155213403306029975767795556106719422978607431977632428643304536614989959861240311226085281723960170289423081629555915414477638017635789613575637606261253535960380355407987640111445215374433859472995751634630535742787124093623465653662797740942061582247996147017724936194058745399581444335328648080438303701535426401676033446835428391058726452641167959659407157304822394039788665607862657293961203434102768778653541776688594565502537076142401389534941832532910732652374866619609304839694679812344459612497076396539323992290905155015724366028412522217189753545843168275996670316902195793532014085079100597987106097541993675376611397372864564193283557552646840645659979563892448433956765256541354011106170835610155110391639553447065503962853060382281761196982011630452433956679128514697210035872066569211919152622219661626514168352510483352424248123545234880648572296191213565533024365857788765474192823720855543159646146970345297399272441262946158318971683026768646338407468544157737900043991820911981539508834982138834450751824863392860821461188852386656280208463079017997976953798266536418805966614352465291438475169461435582117053584800462499303065794461751790117685825695649263104464879497466470082698832767235863562328459246411364832599510402663700873664866388091224777473863073625573329064952616413091021614923696147554436571426250828973383687866001161860979424199079993145721167968468613750857716208360212029733313484502934774303040583810138821122287228259201965538598944536235530972959334762395729163233343077893328690003189339047634464479245658761795189104482044860098945437999964789918017508665648801314259219799368583932816092096515685691613800950489783177246014802867802296406382623012555134231795345882118852787119148134642078883571467312917472417392896561616149356478791173922762615188532228629928896711730129167012199351309535865911658687468064630831910741953441876394544224208763068344337092722519729721069489683899032554631819391371380078807624461922500323871058624516307952938526474286938954380571682943975166395363893718946942973295181525334154162754563120918734064324806284145126202963339257402627823151089720275966740299236715775847638092514139726868104777951330413305546272683366052555710897027857311556659966055077431024211210969321058523648442038081345369021062692237770268573324920019830664063270061501157343587968653299899378771437081853617990615473074638193470147082604087272853791830970097242910700712396171372952725384561058286993812050892153613925772905662453865999564825061358368138325007360779374004141981170028147041781674626117669416195076110591697831873549779652033936353848549583438953246595344913815939120942937317837585035566381386362886943853676905671359072622476462373354495256415390773973916759007449311405392878000419640524092726335608401837315003104102856232261333773485636245399097034436508280805023545343008269558322208356103612891350521091181453045429250393603455539039770124917541570437013014156940350811676893371390255273507700505852393235560250121691183259874708191290826308528175143578554383522887266475538794535781762401081134762042864520191639685459476783505848639901972510018233644219563256082475897638134163714724464794534202167407213466466013965203979965728894774653739204561097724627058814601454715347591105556639050591261845302594658772726765202682815161780309232475670724031156417252270045263089645222235410669756429277541639272318889340324171851912634689972784138361384122844934768902211089161652903288544484649785607071999980996547750352331062163519325569509716701888959541784933049581279830672221063350742482680038083458135630837111902298288945691495714409016903568198807509059505246267263514356048635747439820572621330545751743671578519014284475287386555114273650245240170419680133796610767377356808144103868667593218542473526038419831535406989184808480941562796566479920583205741660098999927510325357391340176301558735742329571326534944920100108771250985345556101849118475273236846329339550961049168383694200933627117171354266758592649665041212896365940620691211629656684098790086774701705710570364818563685159597209490587932017353579389491511656225958754177318484357991001591168447756659169837278964728568695167558011929747932279712144854543404246504690980743347246078442214507295644043082769503707285261750482151326407611270874263867300122671189009477754699834709028543306221935084727134217318894212567300979546365090955205471038500043259298321220037312184562674386644574946125611269372616974594734961609801238400305334349687100055015625115486090123186527308572853385063841036107058856424154506701424496360790146297869295481049553343188290617334631107196641493402303344917853280755793918759689837057427250353275846061012554391258110199644543264059498526984148270170586851892914409952802054183101176016263323695199483397683951920578941302099028803976846002790229872406978308701649530064751139688826164106902829271844706846969549545900654465510042611575769778714921083736877354374617409900831773361179071810096229884614446968429525885865361625216963794926178683386743276582470511013816293381770446948470138318885471564291881819873725117971845525965022169424931973678267269930259057688386144164993772414866266840686064775998438156478808736427573274738099641582809131835017746474781826757387169650100736995687454378931091543827298667381192121397489670107663588510936768891220079255153175652620464228864077210461745118289389478245534888960047901444889413280264658492539570198650041483881629538150752174685696407505798709840027053931068102543253822182671693118475735836589108279381995829626684899258177907569254790333857461152642294494844422104511551020490654110892532150618306518810608165470506225885550560353974938320245434561589782987033713044256576207006316359710989090247970216102451561762162409366330847147898393727697769780747873960743085298369053804460727945408153056994808673037638551100984737654208963665187433550046424606468620091466694190761006784319677014067952204324882161985072757639766486772422842590459158881218066115185150566844403106756191891952915497573269377639925105247707075285169513518324760851061059158198300890275842159223661122566841866323351887333942321494416740620550622782499520328452059636384690695863591231009661843655172733664107758752580491527000140926913651508402222450824839650253751571105725258792248927244904019091680803768470389538403809243360488363969402058180570586205894936812467864950203830878582790834899293178463970177862640505654272284894176812443773813011899409025127060833393359890643616813729973244689085857425137362200877521795012004887002431369840126245610412872974921579338480954520392310654480003457049043455216687255377538257781858581200388010746731216760105760357194584508320229415922578408428838432945117154318100098795262660558437648910907114700530760128206070028463651890411334077988170182483782406183403518226410625803100205503919412622303971589263702567080199992141463115825063314602635704582633133343163639796476565704495803205832719626625299437313844220280074240922141514124489607114759941573095292529036673097878319406801146783813697499668726660492963948635078483669516877253016962762778722696732342864732678879815604894433567736671459104331022777449306421410916935049700468182271869022852038771256883825800839207085411789163985168870582670565480426122281701237654941508884821366807837476220242279503361310592197096889985017304070257295353413910239048457571745085479923379349812245323221805248772229038546597588491981172684718688635317456728170853270875773348955848639253792060809940990870434968157305362572492815041978738849537203123295865123299139740056339451623133214346721666541705445314430874486969119037205907225384731212591146561804295190508128941231902221400328821110353334496958472439838546811624757591212625331719256474686682931343274957684349423053476347876323943400380395829813835749110927642867247183917872207101713299143436413572913456710700551777039412423750383144882119115756150107656183578377774742477011759864861760309183395961367414053291665674809426900359530200590521479057507230313104644689655240878684743921000590244665246519803495360480319651276012742020258080467581291493888746691454200768831683515490969614333853679418739165080402182656576584307198801819098522649851474001869540842154384654240008722876707354590834546199369136187414679833774338343100718361606248510418698215651788933214998602756622915732134028510829233438889600983918735071152433451351357988124045189782916713172143729710475312432728239703150147282289501451903512664406641635787773185993050247546743819141794324768624474991835466699617731600992889255270866640904291820858999485243441839165696287533632766010554860108642778391646026540424509157606889715637112961613414516553503653757158631966587418257880623162879429584801837938273389154625447183362103763863213930442442801289848761931006881833537060958838958506867774414812477819974195864722822359747648642100896269234469857607750964274649918690625142745806664910616601217192581118876016395636706451116222317660813825560012873455744732751916342842233195322123047504518164362896889314720350083555467833605475378612869442218611910416504413264503616584430269930778260568495697977730983045474133648738579692700939303791209364945605104558245638662304413311137350957607211535502023732372385653269027630488332465136151887243555647422786648397479867956971829127223332773763613551222811944746516532541138469292384884564546346291001621041972159103858713445356042665228858944283673054927976797967456214563115971105713384704163373972237736646218058504276997671393302851228455712532457262593731298958684139851054481549920495245755666536169293484938386249051498104917181201199004997151245950255601850167052301540448257977966517002336489838014231706906027030150369870739883050559806156318641033773486717652470521892811926756567535069220441398886269485559966725236904228006184117347084763942101320802845468682317734958716216722553448949619623037130284548380863946486409443200277585194841122716718046863508610849086797042556587807557985341477647703311810408323955810581768975548800636959491804787213779871648161340701343885713643746371322966970875939139628431307656814639910064562666141242347728456824506407051511744712680099837400354587021733689682511353767107816559632479542616048715617712929702347434483589162748509524078550027003163003347097371116053343266895321078355326457558401388870299432126299783096838576426617623952327886983212153703091513577530876819419485413370714037573625562937808004939381453289570557062869895681235930578510757430051493583534793603701871699293515094464914747654637061935946368242610265032075722380800589515330652028605853944919436374315627853243449267688741346514474845247647115387965058800070311838693471102076027313809375082340111056139963377961718372483371146065969154539935410727833327537719582688425218613956431629137079851712939384701684401732055880076637629103540703320165431075482572070913974368526730324313077363187711139109236010002134463177080804163167595274680153984374275014296207540425169149560763915545988306921212183552539338579417867190079432907398545605542436588039566558868738965089536294940871471194148469051456193366107483566830427916375141316171753011124179280512171496007441735860926060479585670093211554710772164212700926588487140783391273589097099968367508566570995640553537258668269819365062870618195731756483449098947482226590287114361019875583744640920411733065937875835176529041566529323735993921531546373792870761460725009488839550713141584057531800195693243576762193839023450000927592954128179243942384466440390820011786526247698431147003280646155391008910673771171593247522034284704613813707157540299753477070722145208067335311667689273908415480292174149696303538907541088985983809941303018824126590955265214782217673699119122371870954462719829938671173720880964427176768046783181742297628546325409236983668140900993668389574551609608628831486399046552524294030591773080798625896209326500033065341313689861203141472715299769117111911878917671782565981013966909655711926420257408042921548084168968118001193860881406771927346977146247679658761068734077655813219718283424749700767667748373771941073315864771419220051039237565118302655781983242678503354939228297126258330613406024623162063752234190276730420848566053771210350632102961375966193544930218825794781641229918084588468706597251913427228635210713478424798498251238715471419415719683302775248943551371474978034113121016075905776530982351479219853689251383943046908903196747174978690130158057535233747901881065525562476103019066671589840092049811258146522889793838761079924285078927601673031673570217743139989133504100354107802048210802158865232990850090665836719597245620169413011408595138370287365936425171874026495011586343896166093125911137681434251174109540164604572342797955000483218378158701758546238232883609479444060409378162005984601028642123497154559471171863419943364039144264990075937261141600584485247860776452162465132923526975754024384473390344563092922543121093971007203165346684727309279454872704576476197616748980147021227655020072750014922745351628228366828327831646363976510579114822626170314605754031873006165917272282043038640087024226470332305208235698313719326511208395587500812562090087243354228413926092279231180647179391851456861095702462337826778097002502376469444440582914534031053478747808927878701710589963282155559950837069851809101189551095502073215254091026096172420417811977253931289072586548882368577769231867058901906398547920545580999008060517694870773397139141162335090275024252342192089160602110197405601482533944317629462774665704750171813386388502547107234522359255011244560518931870824116830983443286811500274399530753507073422304409505261370331351576607242326303674176148467858474975929455975568701786862486401325429000135059463504122596577030180488571168472109439256652080104325565277531171412321854414349878987098474287474222836669062548208859871765854316343182548311270982231285278614374155370289903487818511247836860581289197987989221756274866181406506979543170543267723192864719105093124068933242034874895407013128752611280087121233546163698842461105191995760363160023868036092237760298720604978596941069286403763297758428094224141094587837044043438050358155625520034483570420691918205867449127562524298401666690796651131520951673052934850073177367865399990610018219970244902080617234165876393549463464690068386940398634865107419895007485107700495581535073665869330560058398302314563692304248546181002774356934771912003307879528119721211894245472914203236623294095634574514698157126108546833501752653027666836074532480507459500271127066865131533122929022664125056051197927730495064413300575095288418955670031806773246594431161839262487700089072515835725096829668682266109473155324728822686778569503131718212863258118172948142592435869987365235281319863700362623391550431907681418992801761557110278472306417935023586430044108589323352767520275271775408127085686159129945624601079133250193749536672905595049369286250732165598228980470362053591842024783204297053193631983127065589657163743431063405171656834183421924183074391548526709171248300680047396124097504679128171935795266233518163174779280338512366650352127256926379005407808434249314785066777241418385809678996298284347264275454299163572699835326342330325352464331892154335553771312993621253653492569929737442407486200396025907994560692430376522229143676169152592988079040710412932818074896014442110763687776174979910923214456843295667879313127473366332465410527390999629979902148501623349843949112047988877474850826113187134379265668255286866542853546612671218579574279499702196819220684255810672072348147721173636925737027228121158744528401224202817676731651079863413571829546329653957306702146186146673947663939343557162348752636654505422699414199580381071058232429606481521342207878754359721406223875352398601703289495962206261627058528022485647483183363127161853820963203536436940296507446435273085811649477213373191493534266792222272930730490534916400597539450769529678273069035101894634910912698924940588504688339213543440866177125108873661759739873274083191288946499879618801009193403619914073502727445620838274207082935770100895806133351351862029280722199430494375556828036550040301376340294562568513116067121221009661360998389467059879754258341646472262651750436749083554388348330395559073194317404182088690241751395884494879769800722891081428764899506378643417238353609808950216255145739869945379212444174099393723133228705734788271943819900453636131208704749153765017159279358360998704608746224118384926183600895963467078232510745997758053569883329772510529434506908715909330986504700790550482281339593957660366908461321447185725249277108696666806946219648061478356434568214341784633838386601195244688192101999441458670149294364938582735629342060511827892144320029401096076774138869619850766376848847066445932499352638237213885117922142130103850785907268026469047666927265906739528617839130810963646084123303968594057687669745975919491469591700508617838454735983157550695754988954651013373513350215299851103096280398815060237445169319470799473981478259555727475181362174336843344935664615208579406526335601925863235876909344588181928017071892423455929099834808114276229318451950018515359597718225210074833245831132802848275990572813131049470268961486742322328984099840655812116000342328667047002894061701178082218083471172485565393338070607910984878025264658623293005585907715747635024876813603674278870378966132981634862395288727626984869626369318741275012019989746216646578583237873485869436478447096532399866131050365349845668471852291969450883270523085568282592404118916231295355450348013429932041786852266780545286281840266280354813562568536247604310999692457113989590759556812064655581944717599462459058051882046122298846798427521688874383231655319713691647200106832296060594002224399835228490445730389114155160914552305844864194015894466197016637547142009853149465034549744072613567322146240861916753351305647806702726101060510539674128039542632970737361372376133738376174998749070416883050387954917637869401692613314267199304584902239045879066738098757675692581136136159413442768308069313708710571717157216770105853408670995707673619070528492933128464828544657244083431905394379321024656442951124103114961705670251593720598490972901726714111585626657858670880453823789321601698669112121062007336466959799834532247485354312889471110143113427410551898178425814588414451254062440701897404843467667779160921702816777122465666958284559001561259556007179839255319483853110494130784846152587341752931495849095039715067297839668417261758936802061141105418684766308342011685852665478741326690380656430163822076918680077551685060607661589491653646786473287104953559076804424760062986734820517078087479955464380174061581579074936524325446680759979671593161932893924330921372613543726082707549913714951727676862144596449961992128464255782406881933310684883063094000239968908702815608127218976530024944303146499677236633481942810961707225707906430114117041164854075329294933046025269236510807425536213024393059056946134854552049332312549951933403753435908486724714100018533727314224101827755588489174934954278433445083216751434762567892093760016580633104559080327082873452730591621307330266132061095778442282519455338119602995798532421563762975052128346429678258957034092093552191805166774759651139830917092614159669697226932485642910247325414649216864508437825770079354414283309247150919879556257282099371736242188167072751404910662958037408710085237664656297960528057593749741908483625947272695063376935760046144762175048522424736490422148142048075804198949748853109249171990983260056737925426593870716663281604694517494485922910020725522931639461429338039492508224835451755589451434175558705588612891986979452731859929174033705941621350231793814759552839680177012307666043239703004384753714999616678269099520972471066463847570654551740440411538725331420092968753406233243529551317832617846672216277173119373151226245242161955672513372910824437180920744868667417329014359681671574762116914117133176280892402774990248643067586618450269894744485620809334850024038741292461592952906512553339221979229577710329847032719282731843112803898072935777514251309426824113253280915750224851446911967227101346523533089657990498436168732283014952000579340222208100255940188639120444306120295728144702099315583018607952603503609705166304380139008761740232679924473719960650586507198312437276975122751035584479797390720598893954024891156163422875684655970230949702145461175686272409946590858066395126518317758727684246613176853202889338647333588666918986145113922514737766272606864482084156483513654293973207211447743512004248185766566228928165073941475016578195963454115105908053115094040359968244401614966109238205430002268743045000391958551119124186126720881515053722756587576948464503531931373114197229012802039392068035834967275320155826146496128358635432473303963309553052253200541520565774683222219047204553329886726814849829391109944332007273970384651375773939293274355839849523559564908396526760584397752601358776732629400798753696207047280157094403682863628298644995377121610597748395825984859145576080258772698065175635286559864394088251761624432742989813774983565336643823835598642507436402114757213100190032552200510414861596298178094965809897075382136055642647803217095090433571574914776753980298327649679397192297028151726463542673471905878668805006308971914029993896358865902517284439968339280970765209898262998333095654515878028802353852467825836182811958899492184290953478449370699610720880388987235504338995231922217311656869077290621625530728571471497786412432797329857950794269234329933351183486490773568909364160376327478188605532594377174623547140595232733379834230830918042807886733567667831604466856715516732195514538471331678666288154713531683647919252527293018290912963823451857157003313418129191642716265909371749830504936108923073065955640009580244221131845911913688749763017765281745287044891389000044080888806911730139162233731450395648227004300947335076749690197973714600997191697559128768866794573034900087781800226736223521354650889381443580164769360398452886026762127119888788430002528658260875431526541266730979458513261078500924610346864713079473655383095276628787443343161164266539997259638684389827622151223696204852828266742100038440679395455052432762496493589972859883591617941885168670083591282476455350527725381199072020187409836494430753231791471522343610798985026858615533658858741450417340320761802383881295865464609782715293138994720077106408812647422762520520773890445052818136695704495532252853601123139511209698599401834293277741165201957109724262798691292066829398817129686398089364344337865504127541540533828803728849626798133310187243208736831755159456751337327971856385778943633225635456932826216919031624131172098198224113908820200635732116954851518449037200589415742722785677353233031320458538391583908724400860042645740349347729342410058645001438835337553681653456805621096651376623905588602991376098836303153232256281953403119446888438693690289359322608869861327471814133524125531980608527156098810408118108678457246321763554001526321872779850633092802187429138664276411875566325935827872607670926144262369703239040024671120949450149186178869783165310096678614746150717762756517631322903333714460212948548020331251792819578641012560601152890179089837992469716963849123647154017786078269726564483077409399136577353005471491485063926971473067232027758962798448034257491722707247063850528207862692819350910781952082830050891875456876813005146530341686878550390145113220934718026133642699178584227673537190678818733888820289251008992265010191992753717460759874536350142201476330354402137343238606655333529461120044099967820166869554181421653436511558103435134021250913068566044249789867482069168349964922779089078877102500713816986615220542141574449482531399369824095161285005362538689462096270978283038400058128244615844634808439216421145202250278872256364556198585013593578131249643695744347717943464790969991902624348746899746055328951458589446715151499735977951872726720707496152192229975123654441460688802549598746179668342376513408469849466051624787169963017315561364253915850118182951539856517450653580586337338415274371468707232307611002626773615057698682262609253684160212927739000140600886474102967855257979764813856138867932320480654894834702951186703430109546463662790159174687284433655606809018524049624269161402249745225926738629822841950145171749790823064891380648430028709379655198257281281518550364953966894848156923045062978269907183723000377651392155341330092082417126568594679192504105936202621724931193377730758834414355050031280365988204711346833763824551585211608575210775055351066933851690792287253313160360703044531433261903000150467866685126881907700585933660854120145449130156302379194387313900110280597931576070873456613143532536310981678133474595638911517683016015969611962342723259595361723391302325479539392723871367153065239057699254192336865318081824370263433991898199891505829028503818990848621738848825797758307349728025827749066940241191333421606375462095726599970920404297147851975996706025833521850633725730754162875363433361409268181329320454484498117994649228199281228838942854998176178165089830144022057703137873600431717754033070769786610486494530446746238098805536775048452550806768701640111434941067774071717025185764228419118357788509029804902479902002801331509426503341634454984199829572615317625249051714062304997320701508198337454444640323180805200737838079542232394240083319314414365432949476865585436521867794960507078546361736807103438928254907122165051900249189260209389586141342263722859192721619262689479058124884740637475530604678533002763335740651243779568946596680727450209307769878287146799316362412347021035100698476579281572272525062282000918899215183100995545036250560208529732593831870365787869146467102192626290082578087654289189447251067030506898676055555553861568354902771961746317258075307915433822789683273081300430220177208842186182286709249276370893041174201989941879517148928289510166032769541244281421535561375714798065008553703049953974902156133076762796088540263226854740419158838283093297400539705080889837013914669436696303314012317191829444551359864996438905832741277112846589155731506501388109639224547020405761706889165252995259855327537083216090791161521724125820712884778330782250980386954595389195619187050548132180182014309803011816902842302350028257757683406579295832931252494207790561024594180540027828028262483336763503124941615175560105059662478299456150623008818725527772888064669088354782688045621625724292176649192671163735916467152255623858337555754483433611140157459824246888131366537330186417878417232040794046651159874792170899837372879134247749339920909631989408351049338386229337278021014684869519211382396656450436614649752032220573378164145366869548643793905283200288277281800260316329492822236071263329835901601053008475228133764641961682234232328112423410059200044184975694159227779700016831311323413177802402985033073807749763438226025483374623880170282583417732423699481920433918473275060120875674067160664028390792097045395644749194336990470505235402041987738967219598696700358972544912454098015732303605554307526365518027180297092961221596226199925814759219575995676141238840109224685974453016937784460530130475402174980670516863719033827641497903174686044984793219744083392569703147414462701738605163458219897297608773213256251787023237307910854356011182215168793317727374911656234861384915758971549561026828256176820114845537537496087805101441959926696700601244393765819549603318165922639665002986672836161503792274316193586925976062629009004352200032589444326103813582537224482445832283241817463841041605623481691269658835513060382018848399527102748672755923402650321624587260350813606400873840157320091115985957806022421951094125975678004000277858385749779393816508584224934471037276274037008435688770697872569202512776972836594186741763948009781059585653890866804143629680176836487393991776527902058979790777081346008288712901711337413794272467575774887613931066277982218084742707685609290666013047165808290814724079315686385065212378995697574346553276588653493174602956577142784163607228226000492952782210043381933653694891145952268967067375595987016374140427825375835777926926964382766584365189237202532513003596243876789825651859396871439628097754457429933165649859409272406880919846890697941946286561211293849373040366636324206415061776061270355809814230227740568259144185544145316882057953978841552378781863066008844488538549032252645310869637906136727936917998063349743119002243924440445168628935508266004505355890447453348356195582128519329069857149100454796016102629633460454889330335265960447136535573550512520961345973119941144124132975785176258936598693207079802652843922295300445914056272817087216371376070358723280729968045739683888353775413425582389074361067490632741993774591254107242767950284312252572167141399996875260492869108563764171736076351109786462694295966698102867862895885188321021425616220032683806902307855395980791828778991306823795175967331375589910159110432626856064868810789804952253528540681762075600767825543896563668866155939603271803268999451667092022994143753243113734435036881251216595390513156919771304706636036865763422311798903010291587598658309858356461619238445986324842173662637392905396460818910912091838794717581655038686550774888086884717188990976013949145567514609789229195834760537548823019493737947699016817064452583543288287431965000943023170179119508250420502426543892815497542207024252901590373216287675605296763443720560209528942452932021904057114567677517320585673986424192292109747842332010825025271010295336990887991659678019807911897461933730858988111139595030921313027772557280460006136756283361247389896666300670970601702139964555166631221008761103188999889303509276464318059731064828631290491275779248951535414058612226305523811503269429468583269841472272835099515961146228307584751623776736463862867658062321899315749201838067323334845948208142933056149757527787252106372075197752148170980385798752098476635073399618084290795993923999720624402051739972262195787080149483388838101640305174843524639939945189244755180711679439842476720969762350865771171433294028567140733139035303842841576565678106163797481401494178106231349718472146095330745307691479313289649916809559752409248260557024857216433625621630711942845525829499100945041434567389902279840516230792831078999004005341464264871136151334899957666144304093153542851152128809842552305361869277918016620467608279773362748983725864871278844963372004951137115125219020455274425000858323711047025172097371804378530046470580286578745188479997473392013060316848975647486312421865003666544147066904460147474650551947203410331314300638403802716056065048532110629418716284655368371309388614635609711020702028544627408845981004722759035613412367766100120274289855860980837660672805600553077552110099942863350079940827900563590698293231148759651892583073918106732973414687586243505938395517048264747522915999364817722137080657333340284191508662847281877720172959850559600112357813250109312060130375843239965261256151870759852516521194515754514826678204119544171118984657725065007690810301983342434166486832805415692719920493594374548801931037478275753827439626102110220277539703648258208235891796335435934317919626094261846570436443100692218516494162135716032159999749054926661916171721460226295790974235227939095093063998424678659110597387552841254470014241844728641908740526762461634945929282212428422694222925902247092035724289393545153193306376505264255425706913935347253071996657928007750003492244473037729888604041638204207945689329183411110647358836802608381833898939351399674337428135967799839448467628314866204161590445331812393703833878570283340433952317145469271089766382739547750290491213159196552386641834348497741328057989590482459239005268019140389649699144240012840702705816412311250882423037974569097581854769479523079886488608705148335495301865453896169688703422435143097712171951870411575710688390640904430706124448967981236745093358167412815147395032407194017857375816592269114117979565688199489513783874375285757626444895943997493434809687177701688628546820877446908641753458398753371303093824646398379724791867474395018241966435611798608345466597261656420081036608811731406308907291168361252867630502572236237351749782832698119804031025278265615309399750420376928197725980195419853007445857416584413151333598851326422490157330896472580095517539314597620787800625254674832801239616806179880538921053621811078832962406067428168864074771759307925471089346269379686472380146604121575601516741391668992400816689353547249930977199829513511783063283845541681652918230599352564510377162887793740507666690440400361699820750558458514455921754429036023347140843673151335865447256736482259765507247401515569971313711735745284155407913786028303572279089861616255433422399200048225368929764499677417021116061733382973363646791969751584230836359795513984680945993427486333230119305779513857458583521461720463163036543219999020194539590669144999173929825770115426217931123656159240668494868001847002681684000925925095886720850356956355933448885690715594754139093368932832292235449001463023571957168510507621357312376751193831305380541027529348476308074063685683612210602431331639978727625453767337435098490795359943142096323998251855657422112921535248778896158529982360472174457343298219713301560735510817716528178518929384435369420950920064057643032781949961519164089222752635643367577178654932814091791305737323784134967558499915102911784965680622517806259695902642511172766768218330489139740201419285567570901236195734590366633897907338205901843881472103440858280598845550133164010011165977267347397593232251183272464401297022726578289626369496517534799011420336723034177133738231316392832385151235674930280801843021621559972137249976584544216763430505320309230376367046870885607879492827529085173085880508658656311986422636907541892860749611128414511827801234970232986147765024455262264211771793577469651402571870726678232085014163425537661943478313639157220395127067690240674740273952927813224839808238266288738410874249074423675331161880407437226697456345974526878592214944663762676205537888254687526120388763799766825250750606881541883730657810851736497926723473948466719228259622579311324696573452065018349524175192538583414356694155036114925546269950852735545716008856900618981241538434175091365765510920088700394295830580765669490450857111456964207193876949749765192250223553674332454012659536409990394076116049422291779959597030578327832024665626113582207357256702377654306460001198628111571206475106927609382425996034633466455581564106851798601742658036177133738440818398701529302610158810107078495197421985929525316314769618818302828260096989295033356679129882007544085903399138419778112023542146123248177640660537097076576969650480595822331948577172141971871022286311752841978108063444665652179862768664807010766065367653479542476804850199218565564649088886803516609585140997628610760220229016253647535904938890739229147511960968668892091903550089386178716900560186170140886068030554919667472017498629969538093019897748845955159543987987854453655836318437769234459844112256778751462838819299759943165725180747151506487816639519896279912748422427603713072946461404748114899765738815986610259547149655921061581876884556488865252174454790382098802817276972958801075586350516900540346598469504495104603789826429445688946883368587428906321040604775286161359005031448228932412760545145730443199140986592460726623501455308181717669412062789156828765490434910013427049201263938726057027554171119545215181237368956752483219876164850695711960044102612436470016724695825341917023052648766351022539944703700981453918893240608495150483680983242832859443954681354159661051323872160406857260802729367868873870371584850054176646916901160300529177826013614034054952915265885394220281154660729644398330306063338778792429651885381134056817004426889745818721263311126746681794857796954283121540927635146047085594806218668307930049424820773489737943777406441934018800497937135287515905304878364868594716234162450307129146379274656347945422056791619415460757205967804786960834870958695775603674861831128625194607973972463071105321384071891305748422487616547721867821331431664475898375097975623856217363250265561859613428397472330665669132694938973666240919316228763413100779176180708737432984948819491508689332628325765151604065818998951993965114091892876243984120485747611112187154460053071045142636677174038849588860464106427313386711870354954284937977890309301050330687024304268468712651732852237617805837975069238258655323928465077018029461058081118960039966107961868854965142272545417243273828928914903449281181648943914843429084314615718988851112499335896943352770617765412381175496705838299746831744155077367997358573779139425670800220000996900688496474795688078270039790077390695511546936799170987273102382399892588853422171093764907302850731156407868399679338227011537755305353844883950227389309577328496295639560193642882961912306254049252309717237507005452088047215490181015133024358797442321548994582235121329500471808869667229782355820428903407263216130493451508382371220098575665836518716873599442221420663885229427598644351314644361172075413646112575346206039800219205145924829330379801019342609385034385391685161523782276172525016220055920105805574078249294079848923163272684507044546060230309376565091313979688826338964037722405607415910878651081035586308903667842237442112214363358022185196582599428609497600717975529695454188062344538678950033991973566677350088894287705999608968704082984985698359066257610247400444975125400702526293425062405204014161849861185559886329727056695038799232414823519026846202454407804266839189816263697680876808894084342169735613242757016938658394795361266701388047549999021439457202320185019477545574635919543589413482556357351594415323231031110348105762856223018474351025920887719773835735276618089503906239595584796821916159673508583822517094648047978153958268819286724601126519895278229891586343405717533567891087156357926131595774528792146212874491485454342643573481458052842196562779769564289868448545189759712226195868187469437673447843944334575632168888096646352513451691636739957764577483359382236828271913183037150527690723411409178523602369344991560825971413702794370136202120070688783673608104481905334223294006408922305628585593819970505778096354584303105182306978439256003105838115605014906019956075256121468041504289647585636533917399305386503615921261450443715481367205776487113615935180026368849036679330771073629207838271097464329601474272831385996764243665280786758988489461043950556948848670207348152565740680589449380202815416168576394601456996714439796922429572833075846289161420095896611623282289915039176280386720718248269675748933445265670739572269948930789974887592629751503122958469142988976223292012306249951769336711503229648198830439513234804218960548117809866927733883387698052984609133594648572196651196830788751832209339824183236986944220468515011917546235974087230028966306804074419570827909429516705699632781912278772099073738339989097944840905631538045005565146222014878494486368201240177155089474509808285084063119486673459921839226052577679661052624872450173852896666054428753414817393122431860420819465621522833489848973870696720809813219497841356202734731879347593547436904456876435341592559730723370985634224117296873157405040102716099900203598343714971913579567562018026500134735007214478701891293009880612071838362896985257365327465188360481503367197384906059717938897058322654735308879543020501683020482497339998323113663820984847782404992069357582568462592251654015806130766989931920244422756165438773079327478791966605709731186612998772419399046174614085507958983684421833800731591336731348387511959531669870542379959030674846139334853200678510296190479264886393643336803622828704050983624918745808453137615992780896607689070570472524403221570332571494854329708627027526526026759554921563385851827311392327279814328715267080968512106693691406780782714903387568538659770012233597581778679507818447025217912354109343792536442689403441229438085628499592209219746584513576165455159206915127925913145235499846906476319594613187052151984807182621472974820779177717554554456894829165521782966724017724506598473400971558707332528320067061077493927892853638847620483322696756680902636587130244698706577466664425491091446033549071691936107022118470097888677496572804489046438182731442011625861927348100858741256710279364482299043298577783757754240141308608457236262693534672460807418665021546848237468544704598429180630946895453767480779932669824769369741750304425788882796732614767915371855886890560147946633878225347705622510203588120365610070288120415784635845138954779908568802645379269392317375529709852125805786067956699674176306229150566922089044878177984093945614172362047140645473596766599040246583104176076748481460630107115354355583954375831247599709690985812219046575372065566663371733632334545821563092441559724181692382777147870339147302975013951447670334624715221773307464899462689976905761636148106842273038265707258003471104482506483485138194504072920549856784136508073619005364394817582278445382981809137997153761109505724814484109695894884256224035709984392664631896662829283414128080655841960058628866532085734887625602902868589229770341247341720884067743427269547519558246503353286239382065936757630057988182730547523971177014897881633495841571950498902918146579429420278262197005469986883832830661529440044656401401951465335366118456991112484411118962393452298585445745063409280252991799105449178308330644532989223179870751214403526694312262057368706859936798712286940635843439051706729527632704483181470969798109697859733796996768623338214650047238014194575871890754374859507650263765244871143570243807227170425169618178762658504136493482554448708444133862779654070035347172933046247398206211009882387759615160166601823212807724946522884211528369596367552972473700682828470337344343732316442358801753683702734935688279503269421399967594380134398558464790338018577913587454195855405505441647027766104117725513888344167969502400073588433361631672677760594909928818767387543496470405573020166181689319423773913327768653842011513622514045019300313148595167128808162483996564073998052690418112509075567872550468929221207839535086437667546184061096189103245787759897223283470527259100065430014500818384302518244693200651585207821141472595177637405523870725686879661562057042643093286238573233915792571337333945561192063439748961322302474877261219584209119847547043573110979648631559978082827372891495081994107295087216335840341058460101711734525858673444046704680779370206437572917681213140286788757145651503052508876264298302009001126975483971451103020218232904023007507337589220018985380494998612786643068859570399054378802656072847381886902670354712515458333401634558358588945453517023690228851375216393474700046828213852281108008753698998260273346200367432753735449288828377481179133047781549147119025505191006314472067442846779191237719207471320220332137571926088338178877661520540334446501500671178507526499435134827336765927500828154442965514231298062234856038056026328713061826042136311592403240325994067724237048379993941851332878267836636609469648144752462350148298036515367498751885330006752593281767099695044068036228897487312702697570980872590277885125968350965537600614370762501755248158263909259344828458153293020330332231288879161460981170624897892796611975172684095399201572217568076041076159014667794965541193655809944513805034873683730864516940353508548001183337482154089860717745158193452357505571046600864618970567591566784208214355691351121285168380386935821145189336654059105708234704695635032137200735692569290869171314781242303646489943163499023267830490060454030655019095137725535618379855201612776044482291816250410546491100321953108488427840839136067826332810244434875004635019249370161633802398001361160266245198151135656087231191006056317226649357548166303736577628069336014543151322910308291986358909216841686963656554566851442849410175434222732174003005930849606347961470804684526500030535376660238359128659729108956714885225826200505951410317871763726283155325121447671135763332189421766730609995453872772829712344203648540507517098240007135095578451550288240254268192226499490029207373798115332073978896645617072156398479277081966655284386749728855187662139905468070388031557411712141618648962450729256005869132350338331412492740511913011960094733061034840292554903191311973234512881107739968540368563664782788668741437840787054009420385731427777080802887408301168340094038407953373150342802169907940489321531161725628904113935470179853265115104597446639598047311548031283206993583213993411631073810927727297072052303856080221808355156340740762960097218198464347623757085660080794600580627393662830224526430473923951287890501899999658083696886437761801721213393222304114768527110122675332310627518815442244915937970796009862123400960760388707703452124593123886743809772029574152084099913598129648620205343583627853265707580966645993119652482362584051885571147519634667883309453634048495727247212533312636080112746235600849968864012325317743530549355270704367245894207877991770567957187269426200923773027934799374751088844068542128412553777493516069955812250620149010828177416642477707239692548176800830457225140187784808117297892731494778558835604396044414369841079958044879965041506388665755857537914437695541633064548633904524178920000308193274944273663867123498794121412664768283524960382603116051256303225833946890707784726343789927844601755220661697950548157633714376928784828853931120582621682435279338020505480204202369115689623592355516346107989141121474559103156977951058242558058964047616355621574005439904356048693890991988470133363842441985778244311132819000550929022693097350034929625383047398153732831378126306096841006138922349630326474861367252082181006377272392373040265967907591637902673833668620445591256646583147874348105205344775029666649353464915836786831791380396246598784779937638681471820709400855958223813119695492110603496795655627674251694777890277968633624224101876596558460282351605980894652734217412303116552788288624776383682273670230770343520487090296543259585124916844764053132430982927492112787327653841696534601209196622561244381411928532008771130659071487617357148955273833794012684936495989997393856012587183597594601543264307010162364548046173444696669376706547549601630939196793828878621723263093430880359282904371129168654843793630585806944826348182426155109745095034003228617922367195445248567820327636388323482130696363719297356198726009981191490692413784515505787676353106684534245983145418701619209762422581891522135709559182873171763134185411311392932122570667275247340888097738403800793007811256515754002372292135989957270407112014892873858460985225161663319323703061626109671004547810171971754777500175370838570425815190858459321011165753935025991849739640310897768830156616300570063492812975091629903728745589304646370118015821186474648906120652281582570994611305916206276746797717647818281054322172132974767323578335038453619916815857992047640363487947450504367031120673991563130448679284247636902176408140371172631024754947447694662253216114866069632799845487022533934044715606730770915774811584911411125163665863074363505096047263631452827268886909761137779973016051537108428634432465212807827749665003041532482632084235697473480499833750402939980467075392103090016958671563044832194138728163089860598007356212614360337531202658957732474015903492141220146654090426096452247766411554966061275814940739688811910635845838977867217502380244202703386327967079503123447819007227728887620305120770431912846112129653654944672749649627359725313821967936397172171723742541314694181161462240185148214111439300876579897333157331994124469665641939364750735056741037377716618431302515877677908067619169395420515551050552654144343599278320718601895337152428693700419621387462712940516569604531545637651013202970470733626702490964344450919232737949499162880742297653490461117366024446130618531924960603012050198390282977485932764617000033050595584074754593905682857312718642789219344697309145019542316357532933965112818636276167829214065319982717561711952108425128345453953681539162071723163292008919199777300794743930015658922336713533955836198568230290772595146272333164451912857332782968040707794736340270914652854555288070923418832184475825646480254545204764392799343748353602667697648553499497271944788329006551051763853222192003960178652304916174511103789288879981359643148885537322753430144040141582254347643626656186122901323049005893639512757805818542621465962505505093881005244275476918203922425025392187349227808001725145825035617930903099542311920814329693456779867988704171894271028647684100042003562401102619251240506965712314692495777996845308128347928623951545955292163647602761799787564419722698628892678623595974826878529671400137324576644392059129294468710097984170680691044064393753756494970615522389757360112027769415800801010041658276547048043503468085816970715564183307564680220504628319437316745516493926880412884815605470564792736129846100415921295861955420507064940334863401696984746266552673083322682773064304417675047316406813079067880587525374745939476005033735890595369880907877149104432104296153969024332312674390107783164234694633898204478060301635866768603327836457973050484557380100417887542658444372486258877372668702711022733772785737460384100266571859173672573910139456697373310958730103455579510547290100573780057544018014853978929989774533193621941894972674945875857468800137749762529415421653074035272296910718242671455838855319027564917084478147855870687188701739772179096042037473394779558641123889694354391632842873843726326028395144464576783929945053501325514988512969314615519337545107143443647277654754921375343529954494904454459524932617065761312045027750300970870079126039117330381729773229194445152603410541867142704960527911165144878362927767956216254594011861661234798594197127997234067703824651650301370281099877345094781525171940624661009663211700642993561231299476199743071047062426363835001633352264318413904907321151989343610456208814259358896566455123016469529980586989389830405909162633200863223926894305384529555695570167268361491477026755116562740318505096270446462144194067014795952315997759777658029960233159918116773147405576240089481273515346110603430636399174548169467342105061342930354606851869971534480854447966488908592261898668459893110972890167752218511252354293407613342173854974576767748501136968328100161824083273192610163640348951241200844199148915672144865706890038509749328176605353260929926185227599447087295549603765015144101763345417281425394316944783893678646793254572399769437009781511695280877965204645856286163737461780232375404821899133879963451273363196314840583326874989855823297937824631932539568561847281281582734006438368590445718345970343765342720719520834278654995049426634951899375039012045477612570780914428798997664283975764259846369801586409119172733609980485230808185724939068720048252327297184843510700845365242059983921702673082569846586590808326802429291429287305657532704982013113941252535385608918532770132144857871018637758903770247226470232861328588397208820347457778991869928800979512954161621978377825899426223136192400866776271489664014697122127106781169333730746817968716072763343424505552594845221009564183085427023652101733109727135703230284361120722127947206314587017198325555163164621077947774371984012870830407697090469538935445948852396958232024043321180458529152965777692141311387673402885912650541974022175957319865816095309136254006454491929765942385750838918926299805286554586649718928278326245719334285145186375286156947352335063483639315789340336331979575065191711240614436832602020913880433730827201518448798165089281102097146670772240834333359915314106542356198303400394105745345144611918748791586023783188620755088046001423230301117124300586257161467448258979955767449691097041390123858629181722289520511295778254531333357572795983822948911906425723953510842461273538320936462580194414431348017389841305330238382026439121284845477223905824449484275205298064968017864593320189374502635311916073409598061538050930178015572866298737442277885943381708844958610335491300080792098523399348186737973957103396259985613170336452737387168864067580086258190773815925096099972701400245914670186034876118820063491770882819541651284157954175439082905835926665084519908460781784493358743799846620894950014769852797115746556196654062750625484363984748666744796674398958230677223820631738796257464883196671553607129836308980772474177575698662510177312627440053435452219232756757199134250592085916409999245591880128190116906506043722090015605134828730786710070443853093135456003678654755190445526612547773281239239288125485418993221456210020727078879611226877864420479205492076786820907077269299368445971191894161153401800661756058306492249801169487332992580543582591825028534386113524034741347663618016632074270685092917098204990145458842619865725354081303813099720721605420964569535403141300134482100752696008674286195524578046105032567165789049195849314782375054631047816668629284566250485522669916352042693328107223547089463376623610183470083339455082126901557637182543266953201758109269552194406355530467774276879123538711011294576544153721152352983277954352104884117534313056184537384989710786851091269952922549274039817149012576250740964322888546870484222720710072737244321413230264652809970966361669830384970999505905497397493251381619908956628468064334653724768352029451977870417437994182833882714895497280579075769114717088362117545896918885948013728375338916951119703827673151765841753943779039784115125307228938702098527609375598056615980885426075274219146850500790969015746222850593037565777477078873644506376976919756364580297107370268621275000495140757312184414822420513509497399955851326280199264940774100150770460779589886104456284854141049598263833367144570578624561602619385737960339575284224448506288969139706390431497829097447681765660909700574684983092740889117429262402549463795872370921633317596846839520199951700815944709394057029941517235962482122885905216218348811460201020358668820919273264897204450579360235551991611056729389663296147849244613739535706283452824106201239099714822316242721420710039239870063262715950318487298478730136995215706352383772271992402436966026267106737753495400466180458700703724937293333907463287604882067096712633682945826385167324992129381908825206982389200371847964972519327982789822092437126231355687407376433605659449658247138795386603752370875735810549469975986353201500430809484157217314919596492469266437859922114730252035910997543068158688541316754439149757946662982590899786863170661714221005903439056244988838166564745380994016441990061526827912400057737838696319441383198717956699878015360781444915633200068583881946951028606457997079072239180934419232588296125033369463217844154996971657591316261703774679301617387322577442150571898408546348116525875626084257090434748408216200380227437345118373837991299811370580384715065421792021988032382298026083216132110980388524432068487253983026954958846437451302770129932485086736701776050033998405707528753583027984175990961241658924657454412900993288716296899525006761195243516090892712738346062385715824923191964039981032597814568337197554076794317155316567261312464496595128831190568952518012105262630961605813952137673849555231275358761144611933607993504550474519521990209740066206957044757053562675287890765072424151782752559966499858844409131829707474923507466959432728557551973502027589257644994771227761173147341274289450427432227047620948003496138540891492946638372534124574092535091935970508085873075175850939013086636322479454578981513841690228843079319874730568591758708031875689697481551053406461429811952614453075695252200757480634097066371008992260189157983973251768900399530838393900329765296417886084226888817503004996828724824726333338353560508256210351582716794737434901262437250257034223265012792681189618402998164170959702398133163316976312330262881518094828880538051799071481052445067282181705333686288849205603096406919035685176281113932926303496126297673100354945110635471607038883175529876738743262014450096086061676183483634179796073371365081225102579350464302688375517078885038236331364922641780059714647992957403759654497959879057785778897625464217123876283436802426585497526178679091110294657883866527854405446834755963231986606073509262574109124199342983425036227952932520824555304093062443607010410730969316248763796666426634683896560606043415986098358098449014956169659706880306812085081933250443595373105839191949036044632385812789039794628899004538940806184981264057203931814491358948808769886547571953671208137951364282464748729722955056374737260463509112671621141979702636247797832730993087052197543231432359029690825992333407508069356311233510554207652260197523645312912619354245294461994798103168756845890925995346057591201062010612410633142897777306447663112895269182477643477562606133365066809312567091063705522374584448125429768710105132447973903465837411408853862265970566934461491319261819582562808947508494617433202921100964336681761458791626280026329913543274897627100078449696253436156232070734612909314970277440513110574152499371135038057460226548412999754229379953489942932244871466185345775403879693097337970034904491249929925230939617494481711902521435180928702802144607032726054218269147757572992205687094554794461029082373263716994295151297704354696922014616377696790161873700897760433784587789165556714056507128792644827301151538862166727609019078061354456912063384725531958081475273083389169277552499379421970651550814247236450763298693135248649061130677100784429835812642614815851050512860743669567494245093842263073198602045594341176382396475771556808121770365533036357056688912072122041749872405065020766950289731978446682038435134970775777938008179381036466008211737643460639785858053790927029275933043628546643126157931176475651492585916699150762781883143761006058047375291993437826701544658918719595053266773928294858600390687214276217418418088028588181978510640336252477555221512512970301727060872532890190555264052939760687656379676565463968142190273072521210111049556451638258920937332801881366571714014172726556503550883549399332264661410809144164136661289756846674322409105709199306527457735580574034285198192241654071303720338468522077213968622634099283283216746928772714943513625526478138103667087529380529346824763324167354891625372910903782229283729975615553613330880528368027795553849365360787955717280920399220066890505370679504298549081105254027824826482144690687318422975919300870328663614195412587898648321253896238154100981691910791711188562239628470275810378444196075620175613777309781479484169163824562259242746190852716382446636378701408660209120661974789912520617777409446608668968364693935865562792753467685760981449189575914890046487067722441650488991353662385202303894344414918359563223293832977338331061701934680665013007491460433608538394976347903947396000457568299252691663219930448565418485692078968745427838886854768232429331562322762279057386387495337639576860688208383410935273309650472509287265425345931422186585007372490277843660730594672277110779054817462647604507001262742877492092621506829371666235655157805125568462213284137138160833527146081187779258270466691588786156920436831140938585222963728184903696433311329506412938200089532928514831843178864429097836191721188350903359827942549232040051607310558121269763689151544033221376739794370048986579281832257366919289405170007362111344516033773567637920086310127586023594310401685646012690269597179902743628874921596656719746259658460492915583021657583997843893218184715134175985290219017162210021355084233033591566257028598924083168460255513826895843463269113661225785810901529585687846763448117768238502181725898384930590470438819624715732805556855236944485724837671092096498368580540700734232972610852752375126467017650491997169183492007740512590576270477724631955893988584900505697000979901321486164555424432829210368199583986824996209117989507506021942412546178835801864954400769235468986968837489178992585879415024988540970650780686366872304463376828323383489154641061310262389370491114747335169959345278594519939960706749694398371169697846942458224917952967767014266566656886239720904015559227278585956196324782381260490200417009737541209014646823542317743494322862710628630190043141251530841815043188705598645489499516418285572666194259380567084583002987320622066425651543493018868626497374173424028365100206210069604756492475448553931897379926947094347969755451989497630409930184795634371410997562665980529001446746952537336395949194196441029667838879021305003939380814818626770422752759453969499192900254866817970177520230245228483936714952782683719564912552443721977368799771808375051846457100652553918523783206097781088519583449386881664389252555028969237999843479802260185478283084782878354298913677496637739065760596330033629232926127915677576420733891690052823942841908821007275777089896123399923987653523927669284529752006924856209141396950227223412526307270364623314136637639831441036349863845439603978990966017312633615580830251516761483333959075345956153142621279547116744660497809265572969872983927670835604411367840733099444462635104737960063603915960044136899115166313709001354067166813040147772559612615008403192646354896743474830131018046488687506778955249715201318762587667323965220317670633020571979460626024348075693877956617675457477526680202617286240171621807026502347681862544357906874185674614139399895671550967922488038378979866269528445252457815308678136986553676731685558654989529415097630710111655545110621521106585900106737576948383316483739499747841151957393100801920155458310955559386458637679143950919784612042257853682163900631804005964804590284072711817435459952722734939607828764839560919919653849016859316417594299660025572332163997814932795178642859544912575913239019845957508402748999389275229522401609314826891000752228735042973826982371957544775659468685160838411370053525546682635088208249080290469352080408152512623687588650502007814081782330490053263763813732900841502143092878146224093986671781027637855187613749161577890195480681423419954652671272154995615606390609732934923868456976350195200075218647093085559424619670796924394175236485463541876801801620544143613898283200947593457492449191999612990550782516140911402812117953474555154987396606174007347004208481368288901228392495895080623456459379019201046843725143557199252734329342438929910450176049398884731618231498923994438946387624393347076864119872441019578453408595915093144850120126649303907421300383645327010745470548839344225920912418710161708032566039435601533724679992421069984866135007229506858670150543603888331453871963519277123676680604488303362766530932476152328625841787937512151380372093352397139395900359748077461586099543496592926133990294251233395413874740161057754887213368609322580986293101763072799737694517311501639958903561256991225611160229935298272509936727878263118466921977213185032192081190909642666415963874703955355962136094280325417138971463624527545569789823724571893180744077802431059618601994599147882365022398292826497405561504076805711282034041195402306589009373511967383582542474136299399819363731080064831029849219678157187699580182770011609957730449304754271488520889810309721396814680050339112523332664449617078131319656834403155950245415247750989637530905949762326467965946234391480078578806898878930580291394321442688890284532634301952931152650378697026100688605514817085113039613787653750530449870721895623438554713944750953240235798691791430474813966584787264862625866585191320440299730408501567072472984013444699324243237439249654919804376547741659084833716906634121791532307714464334689541205042507369159913951020042559856696315984010171251775365504267636061695515010575073131097061891220252094051754799149997101385822322453268204441381453204563381981628521903363601516488257200051730541916372467559671101215298578103485536865673454763101605084198976167749429703510600121634942584678406698422603181953641708854747525410164353934575801575739005427683851806441266341796782300680845099731617527342387776637282249963666344893653272731203972086851818543781158131973968424462435651871122999255626220967110918216559475170767844746351739605923415060873880003034997509032626700736775357657995976633522914349665785011833638164977083186289513862974600216759542416767441149859404069091791369375070720643920649446081566032505597538233531807318372241963350056496432763242760670751270838616340132078664596366826948788571860220885254797313322990438411529438209226272515901425339837938191456250618385630146610759628179797361667935315377751739541831074734605142765089087928405163331464804590664873842485075967160703160305542414673847023363508917874759661475537078977799604945178543983430734193212817590527060395725781546099222409506608151866067063459027973901283281140648830850161266303551876911622231653554723015708647323425915351625337823200653153751765185567873435578158972215300180028610705412093563746658425835095069337525850505475976657903165022607775394179076258346368658691060048194872560023967215339214791719089442986605408910600421771084443570011576533273218423851858944358692698085534454386105131512107142649029104508620453557713225120908055032762882778853526497580228664625976607016847644609122612592255956070863648379745133962692371713223360902885252502698838235002764547748346587904880419464891103670218885949059389649863082508828021330372639775243844420374823494056413568994949295782311218801314906565001465337131095659495722149718430055095839570229502801274033501875150785491794541066491078794551916932900610184597723868740832224270793886827141183137837205431477816286202383074611422345320049631748965420089588792722281697899994689764291278715096124641301924590038882041426436917748313949643945593318575704932944266938354764115371745138962856477661007429583213123120666299604107855430662139799790845767899476801631368067408081513655352201807142383786000511615245558700518923343638396248677817310433267685119567780716291723135243309078638545562348992120874383634807222745749385157439089624016455591199907053759954498124429610169853827447169254374149236662528243392615815075145336429206038124261115227432401896341387925574235364265670993753454459318003647811696978283691709395512927456749419382918372974267828948241046498145352994834324799209357502547333942882787723976046739586824315160075047641672511828610758551712934711300099694851621513917620146404347682098555718644070976455214893938287040179444567578712544889668173964755691563290951754927816894601583441674391711690768485313136355401947507097097761795404627002019293058362150021843240483754747316827095406344950102401484675056349957285859383354634127043216490862240976339282396505641853909702211926481360219527671125568257219144377694421964989740159888169172471786453080876578419144009894750598654018196911369365146192828759444904730759194583206963753542034351336088046108829549066801623953540177009617206184812056487402263621280868805092321730410554164845816182149007832843187199284987669785016750991204222543451393829333699393115256255450687937322772092332896339812847008754018479465772363216836482056058919122432603959525031310182895316682171836802368909703965994404372852177340882188770121606134615244165394146368549572242044683666421616526345864842394232335279436125375941572503637413556884987342199837219708317774015870774415403885528222826929415429537255971734812523874067866628286869390623950188897136517211156306646338309826269166950642902151021501678094817807445863315963145510673815286611545919031605738054338014007402462907019594424171209439536044983885432695442557148650495749895886573724142612087730188990264127898017028166148967471823354756665119136645230377830100929960873872502438712780083869950883014476539070075672369367718908265137222226501715883081607862092613076782238796046117172848518531971114038722193509339097850402373651958621455819795724804082558663750017842174476275736984936800544554283448744240519262295539042733281800898297590720274233313921564507334568306232311541891207068805698063004974159097328432192691019611928341174576953487617206545445768499630352045596072420842211776470627283775020554982377972667977744357073470530030301786006334530719200523828847860888053615871989314199596966672904285143542823093619502778501173866934138552441307291901164561293613340159240094385051095331340118959409138502370478913913410809432626744037096363992764020123480267511332593094738089003331118198743905056739611810702197772180622963674640135051612877479090783057725711267975463104466405678506465007700351360973398129572075957006634364124752146692656439004622377411992301920132451170510576397584436236912241723242053097595429525220183777571164129840065283471314636411188800795025085364806618200774577238932703883272675886587781229928780838787668213968361856669572713278500610871976179234982098912692788166636918330802552262609523212287884418349891018843078518215617222202049260454902018236204441696503337420000204410109758906975737998313485954801564982985312999013755186270847288564952100364117988575430728533012984284288641306407390373520080593127183691781345700177342157979078245474507370395674877893265449399356448824978850968504879800902105526276407744747548591229270323141161324518985386171454912037741598046082099552504833855054554865780445251821691856842177483930307285597725130171492409306571699451112866688556309779383990575170562680514448677709590780348522624828685693744561802836286301305937378830204134403387642953488734929973808323619569214662377149989883081207077273282507620387247502996340031408582849420255698174143958883151226238112325648533240078453974425018648379285852922432117986495718627231248647569448100282108457548331780874876114774015200058554482977474763835524639049748356049196636981430175614433800890677896269365164675335855031442192228088358683788745083223286614640361042928769907569643503052506943360195481967099664386803647657343363015821452793567861701131809981779682891658780352994035579504391599074209269943004714502720428873989982815244479372844194990762964058555208830352566388332976956487763799600207198631474518783616375849722534680294732564619415616924373315962495943923628689667921515447912152765208478529349082655652714413276921550202420734892774617742549723455714095112880168744331738707180374185712440464657245700134439044471862129785427643898603566281971448551044813957490651410479040438779983779721196925282909316770406023528777267566845055258983935801942059334562522825696811080081969492304843405407286380616583330449794802251512091094673552015300579329530335005019806030901497919287405474657690644177636860258679785492038446295057178152682710625702554449865659099451297350733092158830319047684984510019748095508653221733421239267894425647317951861353502881343665315533783077381277072645272195081834111793184849962108286333054817573617894216354143098246711825082857967114535736673131836660226777232456328550811261800519020640848818598196473923231304657079170599148601205083158961111729271741812860188124465242080463123106703324320016983364841355184282436102872537008947650265278943820455378111841956556459916247882789490497931250151152416944861419573429731441876605782544078279234292146861976315461387784150621806927257747108193077892052808777331497847387379271570486946726770270654118203270894426140246804931312873838117000065498646857975609903717775969010719226180363157702500779433490169427617620689914641966383927231902220992107968539469504216823197707954366457513822643938623294286324965142023310204666863478355517075642569407056365570174066466314449007104419843045858658451907028776980786870475944712641813126469583152832382798496652818800043717023480695747980257987773436929974252874551192975025516560749768216817370221506251526907263130227008993621799591571306798500017969480845199300080094144052297239171442568706720559374025899595225582140981323794571489317517991547087092880064055171540987434656660454208062455710921639047503454094832355121690093544439833067726253815926686798879944557063180602751964502228543711089572081331326432328533291708639853198580580351841180820396704256398165601861499231450651104260189570572452557354952015543435754568854018922606661111880048347323922129515829956749700312439247524828537451175860247272203710830396877343323646668713032774597307057328412166817745464229888566730102705994476592353866821120129154014064767929025456090303071317403729816718923779726732478594024997559458134431642876965236341029402710308242746543284060760966536927166170591016599113140264745927381188062600649088546108801465787687205690369274169332547186317842995242616276168509181670019440844949490732729635400527606496022965723684578106016198366074555575169146371254782596536889583455505462450226329590799116975651417449252649654517025602036056370129864277402967355609685965699059757843472492805991461518388460301598429237188176538342313298259899873811733626120602057711393839729871592311052242979009024420881013477807195601899114568415544187613497449757895326862794498808422821498486611414337527261950401711427933754921907340187765993461845352747425408430425298037889041644851744257908734182816118428899955732549970330123245680116583940646526196501877612507205693952308065889657412642809249092688351564419848343522569691932426423536584447357683115934891990654332189858135943719011198629449752600414315007406260344636358660997423519862806359799979476240799729749495357383664892175094969304807979392407617994191967544936140625832352364500578792254528016073113725052877884653388129343147103521334175493000726953545231334020465139281283522492989408817316817702319263676852881650784700809083871849014478826709453048388374257525351956670156934320521705166961291200719604277911837786499605672098982324542598345377755796018763797789282060781674423892675644666427620520915896812805509772833431919329179294140543131342014056531800275742831928570715749432094175015597542719647657755309862932942556029361221992486280427515104224509450944318581531880054933952019329439976481119935613388029241124778173703449849547470054369529358502232570177693440341293456676761483576982478032949827146536079728187986048448292534742244284218457733452071772674711106695080453538733582752300626590175641122819720344107769422675803574015279538112259798557763803972386192286929766741188572201408110221465684431062584479574922293102221858005586611308925810412838693916475489154775209556144976267515494534230669692805101195482006617856595803895274315955786231727228641709136814576363005639242390516361630992210651515869978208405198874181591605124129202564338637525849093314223145948439192521620639461856261898064518492480390073784940545017906228161622734464342256024821567653042952243499011904426003896257894363977727266100435930280178856678784536815196939131857044150464994512093964937818897957140093660239085055048760501090699653164026740995059585258781636308809170757003919922890776920560472530522783585802333720551653024222420844988669054425968434258374785937916380069436917403834016116553109268666390945613116363459660147046224880010535791985779358477225697930019341973024901055890473273326535175366981772109949785709678442400862128295666549355597866514061139885924900724218483254708545952032900557409654491586555047334433894395452871164127709230404460715317144145581338649701393579576480617315334772016417786212620306050221149410266225897251331098230608897155374343754242254710447595377390743010885735195851999367796395124219125379843364658031078415513800602277043180129954113799540988953175324817451233339362418004290992620015820457966630701402345285946436347477217621852565676711493661138914523742546952202023369634289245798365679091873048966375664403683189087083135715258304256578349231098822100329783686240880100862299523259388124469941693217737222379735231619091202075583802905174444991042569824509038768490574747811067314312031842017510856120225273627771795718596852171549747249429447283204514790987223608027431428363330133577353980643524268979797723886294516338140365144361788883510060626014321983683908348992973249439761587589057312634035890736886268174846319597905963800423025462110789251952291734961151166839988844465651692609433643285256120785526909717097463561685479351272950720069240879172610750370507733805803034766561633971037954113423521130883540199808287166553552885328688692038567537007429337528059933811982788109515572277473161743124733446427797638303933903037439822569702264083481603310949576653073617321431045533771233876453761205109649380350629351470324200292732797885024508648870380005057748737349287967797272164515773547036870737291650401321801688725350637671181253007020086578948284703739964619215634101583600162190681938184801312822747506249531106915351077970297888399797817307937585255663495748026368783099620493486887022332650452690686636319725980139236440612721812397551806260088220393121176519063811305047695093575596495887731903553751560539692614635834965252173335171158394409750093959986778727111139119847185433195171215872949112489048402456193387027346401942902046452674109192219640743604691255466119603774545060967187824772190609919587019548167987499355021040264682066276093197943740582844612531804446272422005462752219879953831192181951504908517186057337170860603823773022772825323695528556920012145243033195242907151424729573038044625134422100096055844664015528478183350490189533426435064540961089120523830237802825255447563077229470709709447795636596416704343624721238155887708614345246115431173460681026165035069681228156634423729118029806499551801035320547188228458781837161060871623302208624458773303344580611175930381590966443624399501583740481245877146565255655286125471272144654458386680108314490213569686587119394379885136551130304020719147451458312396685938474727378853324415038744935954513698068383648232357789102401969774032862024880644498863212588015574192818677626208425245201147587270549674579454344299794964520268590621710109023529032763168877649995857784810950437154504639640565593848641614202259216555068337534395556449539263223795269914270040513471194557088040544378492523640206765426121661234874976451915252138229194328232140616843974077459772257594181067217592215364245978828220538393928521230820606815947778672891236566482285443083167802337142183573444079502722651914208349283177785057940980480933831428109532385954178455183402800550453692216874793232342804662079756430468224881516088090586050708322464108649770221578175589623886921056836145171412427340045972947155082581814195447565103047996436013221657807859246475196568763122450502108805185860763608372471311784803690286735963055518210033438586701927951708122238326091677867508673969836521187890132160235304692685391389566069829311037850705122640163237012207164087168641299871569159677919619462031711322625140174776998216079344503031003366019005239679315518085520073731838397421562691195173862927694139781282018532069342144644638612995546868709273672754453074286375049332168618205246898606857592985103227886591896619260654719454544590993977628945265955603825911589337700090558084335328366575359616393888081824350983899297052004958639013794972972323541072268559220875820424510823050403830566451085793274081286132400586818532618354357271784773751641519052931704527687974712286126152947077653550252236139588728878193992414677361104855708017263170168155507952217422317566907779362989004484268828250368518376471014514021356152538075805633847899781709718563848312503549694310719912741307072832655978595268362017742209100377715214541167136551575254306897142588301911922126009981657895793030084935501980793056165096423441079077347246544264001701207319282637790478801031789802044587392887529063343021880798606202959034395522921720906556243360211107612691318035413325221401585488015370293828803583748233550499314058143993521809922895524327609411787311588304680407339873952210553441860568422660984459841951345464848785793395040406573171930100135053268333053521906710051423488318046372656898779307333158776707513580677927981213082477276758072915251780749719210705189691579062622335375861654729846244002172785331001623246828812238510749445580549496121410655102166473903298830044019549467240534475165975701339218629242515527243882000464031823690840917996465398437514465260318224240148172098865697850597507457582233208708444033586091835561142539914688942217253114263847757428736448261415610042342062535681958823483160495712038067068328930655183521293938860468507274242111456146690419047391167157560142919418695288145932450784962772389333310168248313913893330982529731683621741827982357962640523287896628638941266356367089943398915620232336421862698601047610947319659560935598917009649903506169786731773196057006887191382799734623721681629264460303278948645143631751854813118187841071441563998877238560514086433900150270739908092488313111152462140887429414459118735081166197659792441984382852826995988128459304744086276107684106585040139999744156146208824554619367945472293902880761845477848633903836719889337397615298114543990451289491087498767587065626357420072978622750393651369731565622567467640532382347465764042937027803665246480815481015658803767676973973853915114870951194689057676451040858208349364643607907517717715462255814217123666729827328491377556629707074970585472011862884794867611162343405875965754179868125136898435723988963475778610530744949140200737402878712362056882263223663627349275378328036435929405393916018820674908780919576044319270561663518005456836330052257917914285308554288421080190279176618120881129366754410472708338771062325199256451588417739348257499446132912913875534548820070397386099659537752671273760897817347223388934442922501443582856531634325226924547824976021023091167660260414249802663363493137664416652908013019731098672120934948103700117130161914151085576453513937369594270265709585570740144380721455443723474880092732306274071070967719492939977682963465177903113097517105442563833029597360160458710984786259662846270706232306754264112030812291117439898763485462186680403066785213755796265277155741987037373131655813567628662579269573211549571236306140663673848305326141709165213002478327844039091212799133835221293750329023198083182340074785655163099054742460649079360009075554657993487099520086423349277452044104681181899839238433408199538669168401630050734519708993400478124700599118927029120940515794036277469848733241928827492399493583853106561926841516186974953036396028862929119262151829156730493035943641705772946851711658239052108443512736484723112312832273496039807606436702968426165065475256999610260434530457582372848785731477759225822544195419544201935703419942107974448181907930432812120509179739807036736701585707980551986726990114452669505934344320897129073482029750187857517022872969088164206538763346558585134808203658823113568018989650859224929827946068257079298576179391546809421963486778829569051859503800638416573023858561039245694102531524212476870729484326434906660897548705348538854689838371253185073056532164209673910514966871777930076551489142626960592002697352474487830968688424454012905450324484355647948821083176889875805294803578797241055110829365471641484032993027337024061968753619923140550377322464008280234082188022241910117360621476295208142175726301795084840638229005366957386641913227415038665133359611745872344978494861413810871951652460743062863368885616095125030873811628967355006032242174846677875832289080275521097074620215660386221573519487535967733881788632834147478786293366847040569321812563055852586713679335826335557722960377866655811181795457124605004398982363939036527411872884730344372133068885273647134957901139480989772047443890992072222833169628709187271513418184131219623196855212410714998676815675857898053262691483324260036615973310543803115427032385676016148433971025202831790475937904548993402445647237187347214015334644543494702328608112537179268171699141272412576924968803907470257857886196199440168475960422210717388178401474635567685608746648754090960263746801874230777874059411515130213711821424142587120970153269729331741950772221629869987265071784008620442365520628649296712538356230005300997237612430843912318002023250416351126050705277338983135771534566856144351880497988683838958830308062088049255542781630211399180295509926326863150929157133380330094724757754296968508728086153410077912372949183782942078014430957021455596488559097071901654066537863995849459318941461228074098063806307033058659965175539951969657400531591147025744766848725061606886896991680216772979451916851933554678387630663366373583911015436750965422232409634395726986290263442221663364014128618320219980742654554789508636069709920780574198009131699327501059174562494588664172763769579563978074405312385560521437498214841035465789276484588705553598166274668560418691550706436667562192506061447085587256639561491878400057937470224040717350686922069374613559316665310736007349425804093869302550900492587975524138273498798992918251144329765299197956276801830507129301042817353654311952698592542593396694762884492610359100999147893036247590532360996648332832045675492146010912612070610644756169378199706881174800299051975503320179525390867745723829143030128122012052686524632961211264448832183095107037550557927589451720449928735510934574003482954443083081909823092292807804747208516121169650247913212147652823440615917995147347969118028718783234142299944376404063812412825397673321914108980353167994836269672038168862985169152383455731769226563942586707964968451640908667969142248011128048687589329772033279584925522408344614296367871825439030036364954889552147067348076624991083723004683685831048787471472609706857605240879105413883373633105148545935612008443049401515407850168987960534483952516147189219279768674742415008658711635889206506497846300564046405984945693367127443028073140713568069490414291132859221828513355330139840378492202333197643106516952363662347634908104167314397425493255339293943963873920871755443256956105727683535353037455723695942098987825622119599413141149833455232781600208523103228890037580809716719446955326198764822414885773886594490989083608393874963378592487217343282929995806397247159062113116631074790829357123071547421167130290647224976827721076047151977836688945743841882393721237933747282291235386641611436246487149931235719329558495701746617715488461713016243319484796767105875005453289375758117010626574159365524182964289453714914894383912314565671616369163795653080300180295904972099298168570670675403816689702489973573529050895142145625872120262980183301174701951932554139846306820271504896411865227448335959147982300689054946574668819069128465324161654171877303574731532356385902253460890112810053393250629418094245587763625219652150497225218080854581799392841371599055040951181176311754314822442445010007955170877309560618336156196126392458676470979404819265966753777602118889136158824063905092850970590799233995310225767204122052714657298743953252225954554746541866512868886984488698517840662741806657346734099738829611738132204059195106791208645818926186934179287470782923444179690490517173742113009186434113330760043753323354953483153137754864843284381583551239684369297745736345127003031369764997316946262115519670400972725691280112449569775984384813148624245188230842190788271941950941804433293580314127945054563963737976194374941941284810592783870157038437599465021257540593688128639214705641708133216203156917479093042420079738478749439167044476443474484109350447130819233972672750522674155805757587355236855929487268053039207608942621137586938980858500726047784659851722837298087506713491611165795162903761166715908812782670047116336395468781206757425790622551378045818488713791186072307016282794311793554223439506414062351321512011685030173571054599902192544263295984515694701579856974128450832093083982314594709056362932578515042685031773507923538931136293720851700266822972605094942328033386089968029869860612109903707691560316351750439193401574820694460196278494065295687280656529434773124654256934504034208727766046903862830145973117863564864851626011188738326047677405058341652690355585397422428809234001756960943219317374831946617559714508837039779031070571463143255335165347506541301972995084131390581878118479417655349745934814716871061155849081103576563203910570769170276735162574502739170509581499489386661764104041575319936792080052311239501006253797037414789031531525303044221083711535931616985514764407975172929115181184396311159376033908624475194972836241194282780545471179757400881928127967436448098974649817482292350568152512479784821257886274065573201390324309090301865479543440168567144559984185214916363273808618917781778250363073709838933862138237375462672241341380667163713724361710335228044598582679201422945564844969745733875304701457528888431253080579246062816611516128477029492611072413209801305044918427549575088875606890834865369295758885865328095600714543944643616501274388874180657136880367844309193683030877279749936864376659992727576674254207419155377798735532090329050891179561716726049811355751463864739926854588681561716136472460801098888427298159401453391668638199138469516058564735294769801378130076046252915354430369079485424505445994676849923586350326112982769882437010072531151546907983796567699536608556820323980767351621115210378173867513012557465787874978242956809860574217017073762468929455661033643150664408608931922846132706984174495703096416302824657120887618589228085263139737004667763471711060507158635595641197253977067792592582318209948045553353426089149426578312783348608730796074876728157963259661392564565584396922279977141610896084200826324677540236803255068086669095262754111049146654557753347028299320179865534595462306983755508391994710065763788752211627207883569446083746768029131739264013539356187218338428371571170013352458292431335773728276813936898142096838374358223836321119300984282362067825518775679441679459986910456321276830986553289836280761752825828604853329216475506415275214733594414969040714512628871958850169992979028631958787265191361619545402960364225594374031335729206404615522375705605431265211794732922177638215654434686311688110514278070491537085236147235802189492012813037751775421888842182535299476206212281126648757840735302047253135404203862145478834877566922255068068088670775733455908109818996532169853669714194079847122156743824305586060669148351541021419084417862791572410745406093550422474051314614700104380856924744298360806187113316155979825738664959744851043627280612726161626017191105595765063899664946305758748057344848628011962169070251785080849144137674692322925784350783207102961039770544279668183890065071916736839805880573276732339314642542268062568940601750449878755548290038993971658585742379767020208900397189663712380555134919858668664544813631837492368288218646916867653628672343544746861554989708152658875833593499461493221656780937862211915764989583349008268875244275896423775366271871592836731359811540435233786085898865539455451418601546647074436232819108184044789052516380157389659358257680008245060367251322136764039787230890691977944287707992290241074698950184850535072733527347174392076456923074270347353495303106403210663899460083677735788246539251414162239971328726839448953111421144237963330670150915101212245905050308379535833951803852095684456846447953458909469849321205994660912528763825607110821547066887843086490700547460897075240414161574214591869875269617604128612356284847529979060064634364925754089538059352032725418393851611136843934448650198040976426402093857834200451394899493352556767941896678319412235970642991933997089868834973144969744449902799332052081949316728559535959389686071211124848458749178568674201010887587962282519312507871429211074343886271021257498995657308575111179419460855682324574027084756673448629795933000331306441575740314582914115471265595485631703895784186304137959051738683265120394881292440143574876042180187353907936677430455661601948249599438063675725707200936605766407731907839181711973780039266703003297597274645825425275015900710989906806680240607810518410800503677923262130788376343654111302661695621099792341031723731373902175098918656957862116215810885483460778648544125323143618959859388497215518533927376912575373643272320052716670046301145688390626373215771724968268027634186758433239122132032059148968760683967816953150441430664707005323574747014523802570294300027888566406970917150988713257331364942797604578919981771718794103125151137898609222185298727318479818219849497435026013584562614598102981276135315577577126917532829358395827767679185539554044423128772189433913299330950476033846189950631528756750014537207158447092354178252134744417139295437290763125659324116620274058516166427922550017018339816880556562237255498471247396021961413430837236331665482630983588478980511692116512271117260518085721029467786119213274390159761572022235469085734020884833686926504982153224463694027439001032901903951694310405287200711218536757823685915762640858317656371835347897562683866105817141459303064169083437250168176523683826157474811983022866545540850798681406796882372491761456294504275025618346757980195245736244562044827237890199194904043899381288427558987674292942546533413140250434723160691981197427264441837406006568653392852027196738255277531701426611513185832446839761177079061045728083899049159160371455267236900379480803150619488768652183015065876109410235881831896627790936031999921542662418172747079124631818774185661570517978517880301404793358824713706894251744351106349634813903621056584399135827689474225911226853439149690255804138911435682673393460719107957623204002086791881911905538915443653529397585355945495691955880210359995040066661291299577229874809305464029739573409866647435415946443662457176758027102144665710434826441289632423952315529823353664416744377541503341914185397316140409427610543245814075179382350122335207391624184471805702287463181911395693163595657531337029991134747584142449600869083807989677042512637238952216673267001406851760202378606464495159335988032641031087180420329408304344604694538526807476847912893191318688189833542209519888080358468129941243174129266053469929999078489811138257717946923179090025274863616009077946694629875025599385175903672728604294311999372811439536597192882155015966080699101005309177068969887663833126591608923896302484017491661171928905191595006229158878621481235085575681506961199184398828349825470999958989478521910982801342263805852315216476784381163146332916651661321772705125137856380431625311281132614790048844584921495643322591699115987334045250188426079490664602479516502753597746817367999965147174172482888544877026693243227872730546253450565848814934374548092561736518206014808178347143061936678176586336662323886278540440218672719430660216023685692292941423822656727693404191992126175051663061231368685502669852883510540238170964054519935987754515332558816140404805660594448760888697966192139975792889017016918641272663186019673466636171519766596130320605196587617493091741419818640951079415836977589738054505135483989426388010099417018306458960433036100963453353495153156602657614126655394809932617933869546257560471234087175740918679375924569175886421818615396742776619538876169410106632446000959671362246513247500761417263554997369983174614417782028651581039418024436269069771041380101441440933913796199509953672682354206857165710088151349496813705454592232229493730076398426051821165743242236030248799694448730846931141660206309949269633066027882653731294252795962667066528184869654800965738384299853946522027526564278012448037201563810471215977898301500624038485418648275444570346437435708829835066755604424021242460576617341033509531588023445040501332435334172290676534454871123685174368570122246575129052503707564026069253270164851929252474243033977862390610501536064806697032794234294511729004279746778951673914424803851381271500825651727593076137811386200446502934156271850601897235717017824954109391530410946500934739547772078024495189612101242233972224757603687136355992828730471591061300845160565684312795977757423396409448120119485233313973094005310965794519566891522991477767828431100318326328230566460669160114485077030433990057587127588571440794389540183221070975799973010018503275352933309371167688407443811728862522016777868888630315154332808411050909350873974369516029811305588657575148156614347586596255810663826457396632469141979315479127702918604321804226624865427540500488060157317850550207860414443563371786625718261873992037752433695846762541711523883458452362606214989328826526478758824422525784051187655732477533668005243467407411081147253968145943350118146553447145395672607956308232866984789919352953528322012260423858764441637337720336012568448096226543198323176614635186109325460806584049929879707623150038506500425247084883195982805748118051458423701707736268955338772301190123142843412086275446586869621381174412117774631012972427703188758580975036590976240328616568923522746482831214834001400013304296217502870919437039834839842312012401822037068239078837774648151488228667346399013185953928293311692615279596069646847393352211608965190260175174299861518301089431344272725738226327587195472461528608977497178120319078101568909598489244933797523466410532971107369690674892843965836534063274691105873484726837676971990568960503068958451865268482643787815273236515447041254514260558275993563427153175353662236893232396916518273298942767407807596890756995030288440155269877062484501272894616828820951309447407947199276458672693269449084185422234548528623889633769430114647671510503810222785929315918792026722790205948610548057262596579582819298241066842211700289066293506891149139379412640907540893072373425712083351883995156960179987840991841911064338094741098933622074024832896284150576376031668347546984377293383563571740766172396304733968136491596120171465130584087618141207111615294543456918058102899790084518821517776489199363049734747621183474254580808103806742307076755369701718407920498977092674952264811097786474447300419617038769946615311125546542882940579756218541731161840481038153578733512569523976676860652072410422274938543763360999995438657747413487860917474483226196989412845587243237367883490946427636154344188433024231893015278727696964427725402203325614036693714384146526051220040060885584745347757328253936402956612492444568716194890305170603940838393943482880580643307324287244803646006698046980176239462132516539300634638008492707725044493639864014852259840291942311236662908402295088553308876933373735566909775785789659477296686728906911944232766097570059484106586100427556851380101283237666755642290347924195835020350162118117648504194533946572266576709482372562751545916274429233969583956850328070882027160322617669385365340701686565504136595934952515614949323909957030002832465516319116191475996404652793703125411711418163245829860349571091142965715023795081239009717217987913867823139505649981879782260385375289470289145823666063419343759888683995032615146832520492882052972952387767217772921741149966653697233431798036638954859697114669399075715025162905005872863697118182421849794446778029061147552373242193309988706963369476219059765499834894964910224446660353922783607339261658361140406820637576412683847935617270895628657708801873439848663791619049879287266408738356883079166024647636999707386757288721256019309809059938034101025630237743988018569955229396130357334187381574396105362038368889481328188228593628302530803285556105719650119236685983066895449455176547067538904561363587344977195525158941911368512545960624121461346349182045847515892647258674583813952296148415536258611166475981769331343024722704778128146667705195618603513896569512166250307031653129668709454822316521134535314802959023334268694999342414593695495664204041281405774397696447490382237296558819346698615672245217364279054866151488911898785709394789407638626489494059415356620457018253364968728912372131826179831644136218233124413823148217248959811223881982786829859586530204236854587905555275528641915735630168939412770227106964202643229606892188157344616111739640790244730307522996850956207708244431706521673849635333981387768527679107581699085661290046875285020158734382192596941410355632135060201166218707688391335977902562300621450295903724865879315174753235390792739106949771488334838421647655644500259350767522139276333597332776597482606825868165015162168568504902182538458347169141947304417132824721303140663060476963431241343586359289424178536627811262765622260393381401208501150931422678895430932006024958582541144131083685015550421037986723449548311004563835250755844111750406713427243503927261429217103558251300503329622365932507250103168871048342289026367094524556113926538114437422028407799328224758347377655252612415854863084236197133846197037713089822993547091335808428781552883529989056297324312787237957799991135875178161991958692391684339420817774190297028965844289200032370520398564269877637075820450685178161725529925319993218178313841815683936403135580280551006227511291704027143586873873467071438396779765936800087838955814367129777082034537460009497908982352977655354013487495480275413158242650662692367355385611873510067677045896869719936416239002375908661157588720317915885627589950016448521293878071905201728463694043076902659316231331010210341563900343782852906996376778357055225838128829557816832697919743062369898780577489432908327795121928964658414433128769739616060155548725381556271045437745221290191344979753675618038691254450236992032562310137183674718804698203646219021767061830760578389277560690028729277161510679269415885733908702839852654052831385372142786940392956559796842630412691112593821349089037549207149680119919895375771860502379675574673772030760444634638942333923132252555555231320728679829491991253048246756862606277239624417835111080203409434571313163226683252182535136086341325541774062909530065625080412485908611137956370483697937440515568542981082722220867423275378412378765818974902961001941181537302825234552427750821115706323072026021314967203887635133384624481494280578651880748574826641752651810175988255332154933700059135061597928932312420351824074624304123629738928186103450619025773203140928019177830465104489776001236806392383755565379071608892852380705389626365106638587021892092514310879592397047172726202356598403902534062008298141483000021500970176621775549470305812148669202353874354780471322636925697792792864696370665383746217150249162271616418639634177967202634965586727551342137310499207053304301328430886776296471567089054780338953168993908596014003213722692706528829678302186779022371803856054959418471348547871998263955895820753521333130421594605791741277247897709612316704808990002096295561557527132685404478859188378493981884811023065874806642670802947377192828270691109768096357981840782306765704192666073012405016363575377076018090967040115814607005706161595864075543666628497010324317344105973980633534643216956386997520900792533270673576249454463099036180827906179043776202711661763959323679996344301955390631122056414567233941747310757332960300786272143579397913083848385040473727100491798875639269938613726310511559895003376331631768567499396766783639469822381121997554781445919378205820433706657995001654919629509461825329206971672080393258660895326936717365778336002411361076428288725373255839416185722761594454899710204424531258652200506984170149578585184736870265616857808255065583639783794187079743656284619302633988926416152081585157160130100282139656753503319247792972122635999624611205977192431117119931578838503894795261251794435688192772168447957794109540251753462907312507601646448485140247721366370647395372146012984553046589848195249058026213049627578182901189887016862951431641725341995813592748486489830245601652499427744113870999212611817819725298560960442550608801316018622492534676950320928196465392830970908663771020152861495613205977798725483680741861445425828024765695473857820914240143947818041723580276838968218307803426755033003278588143314675053645111748519172431107755514310875031190001454198223853376183843279431324888320462134123300902661972245810512130424103044008489970456592163057995246076626883243018656139765957310613188730505780949280385588409623927503221279416158773502054396341916267129951952428335726725804649305459059750957119086337839690058433434767802448750118339422400629774421133571365337873118656939003816767953966381664032438371107681772625196737226274136302114946879686476506935051026935766710888463234501000528897103460577025292244326192372749588067758406056179733324716489181594485865112103652629777744109998521748379041050911515459222046153963048050370703664187064476366162288334713012984208928298045961004982249103761444003231836006172793645567084261524866436616312340767299162014917873217846899906988844494394093103365259868951606626485322280375608321490018159627248258860929983424726959822366018359177883645180027981644402522183140067857935614202502651363167983604648206891532406330251695525614251961752243250197371167230129085897120065909361521592821413967802789153538655360082279873359593937754407943885985927242151574118965367729224864394235110194795528050446175516672075869999404526181255317959772250471936126169841476811250761091441152956609959604927864161766685309347625810767030518226532268005799131537170711652316266317519767747275774155473387271556379897643240374684128690634258152021074274091495124368347289129028728591802780608829443057970655136797678824225228100208780861370351236898205025338608623036122065508710716630383535344326616985442904862509195248165240108557920621514225258794235055638825033420234815565135694328475734861863885888948317781584736913391287271943749696699425732440948105789422054759322015147331293012054513135843061349646899634744732569165570679369066281166928885811172464827086500784201477413438338886215044724091253635756731011224585603190041844852947803333424339740967030037125476852863702300751053655294536880521347613345091676430399036492331735715494962176314152483648756068458558351774914228753533713377651493033190858555432913335895863842160289024549260744673811622226422088269145683764823274211537225161796317104750988233390808478458047199700223652750810198093230619184523115106383648963526184432536729585555400876630473652521886673838160933645566822524044177397730437511721019410849118922118424408099597455831490531351714992240056790853528875446398281503471571044800020508086989122784109672332471899436215119476773282484698217031694217626754427315996363879171065045779914895629330646144036242771059019733838003536790246815482444847603955694854467124847172136334834768302257304461540215748902078790683218006852061961607317073575186421291986004428722868756722451880446277342656051067476911807420391923142249571555087829584081468415357695296355773086108279123576839980577404343441786938372388824303332398286758841110233854601382350719929759100706152214155403764245092581025957762988778590127222830127053372822180346620520111167688656361473934509435993569546339585266723911118621086876440015374534907046986177671826764526601601733880339642601205021129422700012226618290483115355835584910917969288208899171359111562341967856389865373017261823461661742449812820225881571586696067603360781652192288386796755199132248733922302503747812224703811960739969858260274871980998764804663454948603929438222435042807800010997929958336098255951405013159635099682586880705041920252879674903188959569208488701904420826162963395689436914805545531689292105370458980191257592163836772800132444469273823957765600912824622513291030422450204741748944024278688397761172103416924069228566297586044783795947829710135091917716908805987268353235455215712873992213752032060824246067293121645269325868254799931854747889896106725032073406317527152438919515239174985444561490995620253696467155962965556885236855217374475627754719885116112030159720902442626401517983994190189532667343384934763862268317837799247056166808474326107484739249013839058657425077930827351458668013998714417889888787266727845970836570708972225969262048871294464300176711908880472899275525727779406939815767087258207135393228206659899828222632604397135493750720706994345791371892021075504208903278313499705008928045239167907646305492794262847306372765060423707799918702122029899516858106051202761889736861176325965780597038705063009135532591709840807991370148402843317204907436439175273351376401495423983191344599530260203576503037729643002392445082423407347982940176307094461517472108144006412121584911110878509153753279217902423379927499201013394027731919838009452361237838626664572502964548040527749164736737760547951910934619859507780494117707807171528940962036796601795800927094007644284648357124770414361643376499820537664792510648188040335504192524858988705131248016493857203225057223871087337712303746285182098848737718876238889503369455972022379954697023400729033369094726478113545087389360929325419070662226270829457445233567523472801434283521734508332824252105908505308269213966742768066945729478875786256369369775028548921330833946815847540575298520138828267965375201680858167535980325488572526564389152757075025364290459264632747807782398328596465328608916869869320023878305141604889695071383179048025546202778887901595438836872393471019043452014615286454907014810028327564711712387217912593097217160671538421967863310116446242974591923649935442323825706565453450479630308466544971635581693916125066059700175390695338978557159662707567055748956635353535006193009699068291266686432857564470925374382994137270495548583522077787081157940658875806243891675312018983236764438093183936675915494808388550531905157677776385603936346747510264471869274024181936384374637199197244149684787997723358403908503279955209755251464209010671302716753680911983849555068254598793336027562859061326909431566564731202880359392907059999701296809501017865930709518566318314280050886924434954972683032510057803573051218704349377622036787726586916110060651155756965847941749209385236059522904611383849062753518848386852123923092642607167374439070686952397965188526713916397819130336691658041429094391782385391453050401994223104423365206845845601926614490409551006956491587362453461633994432017491710444291997687525838042558824964268265792402547655566875624556171393993005811487506104412990699537894057799502401124084082864865973369215282563032717256914367001081745779798401941032521072526352902470147947891512551183861444105606291566862476918183711987539261164618951839482552617959994372825991392234879273773132093272911580733950116244704972370804396687947661708639779425424898221621535688092251903615693196994513630863484828061929430333899648460906171759143353218161860910380117791969554988730811680837960624829312484629275646593348215907574257731372997089580410843662232408662510741188575753992851479387502536020911335786496521967940801799208309487648002257797528393088452192992845152311026668442035877083185837077754901214993812803454702424978851762974710703387869939982435196819780376632006262858603629452818396699840118554558846180643293286401921861316303399334192365928221407752449552109473248757668908276693805645719765649821781212771945043272980401322696301161406745669957766181982450013961321566214141862057724415487999878463061065641495534543617085780334150417273135545278573109368145552017340745790902506884343980968888206098281509142743544943085821975777503690501381997773976599657920233726499728382855015057711238424536776479505387734112225628667871407202109113159783946713919548036830189902259366255033256817472034935869280330238140667281233537378322953007998086355296361411195098413737097407693015583323328122564556132251725554812637878910372606352887920285981505646445060386845691594768164840138768780158294604576503150704176749937353882334461637464639387619547094931514012142345863095918402694667757721883393699645297631563598446566368092566604106852040005475917766647604897810176918883659830750047931644380736560006496489061905458653131342673850982401928681280286531274296093293814071875963095097382415318401179850181019977704343081114686168846978344103793698878661208313607677144287132961362346286042058572972373018140288582822558346039887901810417960858921817985391152677058955843034769206889380744543896738132920969938420321732378531770723579188822144538749296367554554970788876928622966874342803556355168150266161468861943081304376659671132220349580087046871033184256360235288714938741590795481589107051055269422177845582904637700738962513906915638798856556776261400089575433068591557507956988887542148056366779249034534217374687488403216608595601467088778135751385867779098782108784867444204190776934079422367584536298455144818623876220581216069675855493078234404024129148991974033974830969744174598753241569157994834752334002980024486166750236703298387212038365921337617428538174207651370877082509538768566892786626100872903863229758718521516228152434303920953562127142224009224008191873803098982424764301312119247952989912239075214804159053509452571200373022288944096397894689551170135243143759464668170491085019607349740280494781080854680285441928604336984580523183485720710239997593345637440524415149602388226588814226973058909687961699192119149182864471372593489347656542333739855620227745936354760822820284166824675065871707668094774437332051004797018455900912037109475626973954530233090025247248729847620682475140705671230286449532944100149196701730598332810521672897129096145592283316033884163261363820620125707248360255176435112569476316775756259941229911746568357404983120017994480461693244369579401934612661917269787532892708247221162841611415656123872905532877541552430196575441437926006386826484873909416077565326627147444312367840626626151837945160388570967200626697156907910981926955053000403754136636650137920671214619785198712573603027282771541134641645153608513464227738659842058241946726179250079088352725500979217089730365178452480757158515754468998135656667201755003593748069158272184759928034135160864305202990594650515660986571981437213364513425177556349335917328936912414386272523082467705209507316160870946744499044811045071708815684687065124949966425044064915992775414165582485550947874667052431210463647589266049471026797891344226638790044053218927695448910860157431329921608750481268613273511969109690284050883419979200048595384512266390720129941441516933593335745319674891486112478964867696307387157894928981450288579668158592540189369912441362489302608364039430552474829567269783344110059466249865607662831962878852311393470836305078086630606399145242869093503744680455450845358920151308096986210822872229764643485510969509728916584028356984278594525203874817034552194713873380101278088503385000905131835230597417641280555796214035282260092674692268005885627279061252665334162738701952269721186300012896674781794172915885045359429633044845398331179723594299207063276279144591859910229791070788268116090683588553030741495855072640649404258606729588313261985457531386556270527672864859481229684306829831501669955185808803078603636672829159400303277881939771337069254497529886166346643639831269072497932427009241391161359112165226792176153215980510849322827490052802156623752802763295803957029603171680330757544897768321815163967341454036631728355701277012309942167565410933891117189686461990553700204163363006147506516363545175867456112642819789297587385098078884240153245927085517361525234287069459974823182400186035522636702337883522412505846313966192459888231937191784595291072024993523019674608151291813898882022945296833263242592536611035549645020832743940024006029417528806804928080084090469920909045934557738665512141192975366864772917222392484726274732251960024116821029922203092580268172776538820993302709737373443991658015907108235607209046163272467318287238361658881021385960906277603991012952959387630383148670310321480880966559442186113170110862092634459854649526454557719954352093612882542598987585954004737409173413491230552701770479850183943628566957192678241627730768676240458588945102549653950537119556071573592054626061876434623971002857385648551319310204315776300067134249143111371797553376575719791523152455186379391202617342944750758324503991522679079201872944594026934385427504404885005212783589523224393505417142797360823029423861225494161338106581148359435173013089246044022578712473401504222455735280049156800434825691577264490222615224037872434290297299557900903062777956333002914164637805088817173438277399945256652011577630505916201002086863132990161123774241272771818170598651821574642010605183439028682308350057844411371447554285685907457565994750324489075729649638412703159447724674394522934922918340987707077560355955039269529508780780421602729815922652947240629799623659247085935118273545956242835680505137185944977793953992599533587294410519191671725701593943940033522965662845091205534751110843762506621279019542308467097364554276099628853951009427380638947912080174115348636995410775318906141771727642843989517707810227734097844160806281138478488200255911754565363590482236566831708340120552478414249075606802135022773960535512552713089285707146476851179803514696807427061647096615478018261554777975153263528109042348666394909546077068329569866820565078908439881276159375819749984150778010681312193293404957198745859104214097786226209648131980563481937497634197461022530233244694000169312016273706830365992834626755709675274268193969799187049324375144479793641728855812652864564341465030892700419085634081497539399082872299898966561580904295698775664219351687961284064858924016745661439609966940676604724964153663767549551529508144054035967677598771843459882086117916312276953683093466400798382078060404896089987579373077694107433411713582261331471530535845973179477935236330489145586439627605147126624404884630980666564587699269877578321354854714571624231533189885179319591955486127381570346591750983425414746548136364459939306874953893556178002797377827423118990953308436091253937842792286427448359797222674177387994717834231210086878616459004269471641390643333454308514016466569584948474641319495751903995311590446041628166339625616025926909779758027389777327185784923519171163594645531103666855073737892387713165089131556000433010329224491259519247133221735750508010769898064003971866346563023719638755815045110913083865491852622008576433542831319229659616020285851930270431753943572231731594413850372007365014985109412058848785627664457435462976485538098007277385923216239132322246594074183323555179135566185701078133284517632446451466540025345822956698335838425136871091095315647674140839962344056584176354625922459910394154315821894915225466715597884128445808406185062335005337156331745193279493927046169190457769729964605068880435450034559743169301240801445365164957336879765813570083240656343425582258571861309846854997267121527801327488222748852308555639091493430916525017583920513451677489105887609161663761278475121615563306471237887926964101292047680446353138002768359337655302844121835869272188250777748047993142298818264249126598287950977940591252893096022372268500218162456551678846511048099844588192161778924358349361523457534017017078245348528462468812677044532640625542253343138735840235291665015316502139263444374008571196904851946371113305021310456742350064880580843301676346791609175097213092021966471680721910374557165857883862130637701488760458986758248987724537560454243072057449686917312991129262799297216270415879407997016387128570639925666256431150245042133731026723395045798685497532806449204611041064594470829064933595174667722444043738120264714690772252702930117668859235105015131865048032608123749355129506090657388294934660331309031117664694471345906369810188211013053471880646886285711824979326338762814433858746794370352614208318029351656323071821720609827143772514399856704366889918946839613175415988305563430416265536882755178349756269374801038208582208054958225943131068549284320431506755789426463151424335233678301276586939607143063038731183288139480812092206440397642193461160428948595349272664322347047214688056669287084321165511567458525945299106707709568221082025420629577459040994983798325514847214102889759819295059708177368710348691373273688586943269795933772826270590097105435534165667363585961027926970008869795713230484959984018962261731252697964738803353197706211039114214483266465573799908704095476789934737502775153109045621063584216389154117380205146216698222538321648049650434206001878357525930938916952480477856987276539104219144240411770501033059035038843914925166457168888462700333902417064777357052482512682925013875956751712962848243130689779914873601417955111045456881920097056878931969856394356092244186612806017842998033416812265616205437421297665681402825209367516861599745042095455163585813429753682819311235024135361582360096879038496786550464072085855814647480815145819018064460472534693707659677089377818241069502240549689043916776293004366224855991511585992267695719365432389643876867239216332157083113201020310180008640375546268350317131372829202292072476264170041699527087059100355101329665157222252975912878320655161947560656884328512958639337275045611296711346917617820326065936972088118795857053868256918307021721132657812583529039979479514706535158676639874309149937827874791990817645923346422436780989151842132191908499795908376163975067061636774914092473274567174890529533849551699740367159907737420836683992446226323617908704024385779961097260703993459935905802638681773689508968753279216811609841124658431161727560278281967636258945527574478291454448408375340496278883434504975402007757261557686663678088179921061764934831913731617902797876216357121414632351498155064006158034781471976050567072010663189972994381842174122618869283580663487697693472636889860668710959191717550696143021561582299404265914418821525984527292834714882890299169656131877116446687055279410757330538331099110507203636639063766954608976469563552981338424658996550980174577393208978464777691773307532595348258739832537081180766630365273737947750997720968455494345863722181401570949285366162883164303160417069839561516058049297081983454793867414361128620405386152453860342901671824812199802724844536615358730120695797565728019085146654372763445859168506654622266081989496329354073141558857931843349436936554885577950255086723478018846655846932774392779390799563659834932599741474364764740298664192835940466881402622803271225533661545364899087779765690616490710136769102290773957483371227257992998598240984079540668679901150824339325405876138766927309553299064270079385934134502048538895858664569373378078671811397745846762195698920401894160235706029987425680566381843095080684956680274917154604816358287132792925970035460468438885593035612246040971567671269196895185906392876638710127182490223914627930428447222379450584944358737264229119589687219508375735079481762287178994112128243009941068764486938948702986155347602936227573489489751656426118317864565342067513778884068823323036116348227234985173145204914837130288125028718059840417132651834032339030814884366057718411919776702642547898095159413802560921018059893126037463072429145319335211102477994968750078181909989432449613951085581756302505773274394159876771591716406472940368438130430603783548967280264581939959959805891112104903912803300187773465768750965331719521470595410687002869057026718373174736095712099949119964802088788054693997797968980088973868299826910815237227400173411703995323817811414687876440937948775568171359685185572385035051457468694988681049209907775707655572215327086476885073442571920217913975031977452211989445866554479600798631544374916235694593590058494231414432803528735783677362436130938089657412191127418733228334743597852983914092984687768434501812924633457099787521124288988898030190999025457938008030858555365766840273783888981426870008444410510873114497964796183817686578804906411978012573391961013767630067019334003319364469663870555041325278044110586726445356355455092802276256893224520610047418206008974046241293993497051568099913342915597311938450994232781270762321011877616361943019077569341473307652722953702951101603019251208800617749483248705532451349257526753505901725541237749099149184269220839092441627521385210585762607597084383500562315103376657397572808068056502769188909019000497869487653075753441836721618462168115510165711405933823332217428638716835456183450449508906830207144975057262593917807540732179162251975101350482657174249420917078453461790790179705702393599049015308323772557657837582564248023287083325007090066333767638394301541342216583483099974895647720793464114153755653529155926667529028917998963467516016361595508389746159371295385880894069552465325006705076466518031423936303328714278254502742138368133208591671909534137209081311793246144715517057762133298515218355385420870270108251909175059580555833410024861597216498487954237891519878389211616180265717849936061043724246755794509455863644691882409812416988276490614101976778534857112467704576559336804788556797938016280274871281801601007582075917663860869765192906666066277630154639831541759409083440446223878455243006555733474584858715906860699912659283518375250418926282496383396629702200641537389299870186926161424440726843354290713683837219777804062183842264967040379748665659043672490343710549584701743949675614238768772847903802414012041493707744700378648534765710469339921768838255733627807445647931952466743577606300948409224442441816131361787622317349734649022474225075688327733272126358968633308801801554897760192881855761420595087864274176662147489982401393368597209501586641223342864256007105972421721186659714764865238240533549519796338481945262731107933577304963187910856428159828645245244412121545144728609770991333218989408343481460826069301367941110487601265091462918281679311989722770147515284065159193296477153133986137547870306574665529859104730703971679620026750603954232796396716145918224676377111328009682626103892396134853994405513751021792510786711671150175860201209157338426066382885949213956890407371604100624531846017397208599551624022444205565493676402523169283165795972571211027316005065447127214802788770710860839250741629041218554259448073606146696343082336716629562049065002162159936785946618209519690414603281253423016224288431394136222478725611524055278626247563102043718443772024993955103778378724407966713931701498965803564092358018828334901503540843422683671207160625915360755889035173482341572843779029654586824519525476018460722408384935229647197448988664394428944028417671131862164610105123725387038564530067607699114476581095895537700311323854881208259055478705361172637094822581458488567390512218486241995802405945065016994281391091534635059163163473378463055842408708332621224349683099730459734930906957493339922714479402754924960102015741516138534541175430108783366740877168779283315951464639764206298143152634522801861691400481574498567180813690018580285809722601340059993099237401768712614448154481002876872683138933279797012790222802926510231603131317696113480138387099824397446582900291929105299966597196315770177401118428776792548655887545062598944755824912578266990877679138101138011886603904501654973619175938296761312452088134811821742238360270311350884510739064222197679979155411679948659189621894473785569405004642415084326392848183752191094661503611035666174946942194906884289850869258469278852277363459260996077570102794225708769162249456192846644675338845720097000114167383121267006943763261040988746867810061360407079507251444466299204860477704959163051131726385817919133660435687734780009246674801706068876940786349589800434545573401526052442632789639957111131131467491121610583357035748033280533683256045014567693462250141212549080425760955945153067833809236772903322978723043696899179314336847345865695575377285991955479207512052796143030771460420367389079472067478544937409394596112051786235079111272100190012490607470842519416011158896576292759058157887901120462518176511986517216184615876213702892448625221670455318445210367669074520185701469802227393995771494438469217527539484515027920428091967475661509544507894617076538956403515678798617551234417136967670277091168436516152239505056359757042748550642623501703746560437154571034563100584539936775802172713737631508323828709184266910193677773530804526675709178441347717877932175244517901065125136700032171867789265248906834302793705885010872145181474830236043166936724187591454021245579743843032885189419787679282048951573297952301474053733428052555978962176802349449774053834964297802184048543950364786161245210439880082845797719802118908288420568406741973038740938408473742221856348445789436995460169936338140063931114762832797868396858194207924553709917369852703188901679591360594987246472277416962243451757976409837537851046656524344107527402918732794072727856542124838523666022969539893068044063572134715549189660733008926994930859075196760560451251144392679084382057593861903616001626280713858565042952264609264542992535878961288952284388678298805515994466160954525861287160435610024554223951551194278995914075307336862120390991871580719621860822162215443418090521892190907575346292155411636674912520973825385705809428599494366130551935894293479179436308940982539847951470325070400244624286642019170393470101807032215590448034775296813277962530724922171549115941983268358061718149071978375027622789521780558430593217615379703280214129179990688211896590311703738658633123345761716730873762071870250704559193488102284582388656814350967790878787837646991433870144731552472216090566743074807754544815531400662304122107608001643370974060486637714856410715815303825670355627936021953428428044320126556128950230991322572772965251856777431456985600543684446780869611142613758978793742124191528254268657956916716563708950651508194015789468928817597416446869794888167205532193623986270115437877470582145507308819222790535799125581904576104335368206749853309220721013763167804250323098735473271643916439489687211805162344400013604331631200817445960925518771821839734690664063294334536264841155523792294896231508799932314522783555798832329203994989781326573918099272624821245780561461153595655835609083359847117415643481119487891792386312155787931793235746959218056901754477253535691489896960677342178340629960353085389048639644035353618709327797126549766586941052132024026949850212078111552708673344232943825147367958466803004138068323954098703920384719209966518089935115146041690418045160638980828798462079964017654983100619081118475131547568014168755607937566282570646533607952356469360762467808883230512475695763731407829459211626586728817810392415364366484255909558195118936595403379059079333117736244832207397037517124379489790773766460492242990339454164170034109645512045838923371099626865850404406438577759990366195091907997350061650247241469170362858097798387128624597840017075563437848559053194298900223675470105562975155979442547007946881374876570863637929150691554423900761452783048208416146649792577814841318510197740440960857535051950114008639808425972787845643948710901815207538211615853216372192020290653852916608238470555304752516965046477761145997996547917092160433553539674927223171172340616621763127477665058731578469660190140640649937091352946029160054350762512188962181028632348113214571699340051935742341123091330599227410062503962796697198930478144684845446026265916289915570281824079107075037578944022387362294495475182391171614846929190114810778736664951648392964529316767223987275989804851462022997637318641657345810040919935296732343021591911077415867247467882389661434522379474421933502069089805489791433230429084826730803698458959274275831108577416660042097726572122498437297267978757289755151716447112781666739386330767727537948121459014313037998062115018954974402973638190908035704607645766917392115512482985246178935356173961663081204244461542063306840563482447032136756397244685568693670084194014858354767880816904304438898375594016136599664679540632726318345455855959477256851520640382199205227621330533707261355467540713459289283121975127416994355239560146702211370617827399370278523982950796489216530672054721066942552051187927594969082069683523737136145388979248723505094990377290711381099169470133277137248875751546778069504637150040453723605374324398373365896917190616663053749053016246842168078228462769034302164574259756929607334236354599769890123561154642670363556537646280409539748603021233819865886642190449344174496962988312053451559214561910747968258648535580441669960613909054948752622624778518199874338354019936858712070141679827535647615921020155034002284061768299030925588346442795225065096919531514293132821027735166945351357031607969984316239100069889359485428272408193547495495553268577961975266449309094935841761592301762099369955047163049965489178822888136929043113370112224093537772451218961725900379383173691542817845925915003126148775483485872171945051261681266833915304536795965381757115451783130369178005971486971798848086049233426165551067752878887421919409678571962509188804133193584088008380397730795724973566733100124459400618879585570289654398781633198812548678752868924042099785891535133156973891304488432278288037364135290429629458603941245579848955840666151856717573501751116244076817292140200360260948835104390336616825632599278437065452452997685670295629162353405295087271633188199108524504911897775565656787404570387783650247247006022060265604283851966190128329151344652198887419871632979874799208426107579272249030888405150754800530928629327748857468171163870991162500569206343993642298061327330167862139432261008633993871314037775533898305299524469953560952141070868375439183941019932207970828219658466954437220170222032333055527448268971666947537383340874638985199208649022841976590714606981787588925309433104344706999566509451744576123843166265610052758352798418283382985232377761881292777138327489820977340541777063105760221318388147873007925612998354715684069771473550706160047435385711656275296946923568716372853296288532650144793596045729058512989827774807774028388694562242669694838961220113820631419160676011352631325443361213502015366357926043915634797235033558656671591027973234442032452167892778416497990498486850742905549365225646332534932123156755207458192164317692284243117220743548467673252077182181686495780903537065761674084950729453307693004077024684869595516349603916293674397815628385782745509544840530798012576056568417449721787137040975231615633068267929896883454636782376097083794817636468938163279240731629555847687844290533485379056711904726602280239056067285189302024357465280596247062173323712064036656352490228647618859419170276843113159879380315895131597262690806523803615565641073130840829297852125541931483407906186085842276092049817450819644261116616768118544605888327727473830071472682810077274197891268404976419507278189162247100229989649263105871163228831150433580660406112463731530954198734281931219406639130744285304138807189455874929160145180061588169568734222307949747324994889911264672602181364651593530044439020767081040086524848655876774746807099750206152552187357273705239455512030225132669483506143352971218358606461959827921066630919930236561762236173239086341460556010840539823281629052235392800958683517238424332736200583299860980056222765760764753889876341353267028290684457156644582046863834144039209730860739791957220710197738434643108261968796982088750286990524390020809494035214528502458225524405456254897052497380914856372162708212752583956095961577838619425320851706369123893583663421342690521476016946904464492780215738148574524091156299438245336198127217914885974680363787605815399808820628088941227929106147899568491716379121219725204828626302580572425042522628055496958799044776762881152217697781186197293828869595644846574376925001569371060210243982236909197237706866067602060694132145340143791291810517754432030180119961323622208170613422944340601740380377605143945060355165882120191295212655225410146210823093412206895174926756177504708597692738891198762608374565453647089363393020186144143892006815020122335836211080955049239063912096216927095903425785900611876505672052785969515610781187491894802491010995555870739453007930091377381885638532056741853029017959035433322082152132139282030932262388428255354459207567415889204987487459161361951795903854909220113949990452891363052957846750781033651522112683562787150743523588372674871712070728321633120693119615672068372634294049760577393877039823580920702099845998038618417218255023349104461006900581079280367092773988741888494813388811291992617190336480438515186877785560411999719006606756733422404335163809443190423113121468857387634796338947035543620063298177673845121988104226404772667802325005741946024582774041871887012224914688670162546140181901452566353955822075034235719678021622266576812524686029907055228293623390043256813851624102009092764534905511673721949087163819005572190683265209938786186489997995463496903968254854839376297766613796598008374178766630813365145078526036926895256047365247425786141796873947073758289342283899582399934973028353832098840603802188701354138632361910343873583285381571639336375328569064014364372351693718919050429361991416971954988596332929554408447182631879426945716546852285912179034236896141921720894881894780824953301985249708591720621907359940933267719276837048804729089069429670123352764443267575289005014947691355591189830840174072587794516227053291319450679214377237417401256995194103946036108620781556075079414377678666460628048422045668914838973559582808981785512365394297090105133399870509256551836200981585092197455461704797090249399561043007293404650968062337586684704269794387546671237689372788816192664192241662960088096373547366698421016990769782253941434213511248265687190277740999621186235537560692841807322175892443158466243239179102881511028275913176609727804576913076863321608607728638474997658698312410050330433032058934657988205776741511786261650190991077990756557075807639351121873915083348893226371937234758447348492049671500260153177091764230689992183773028701557562023830449148357863500202862800076702817042004775179803454449720122001897300079201882850615247660463279444022792639059421127781637217523000461371485688433219693506535757820440536443056379433696671925288137142133735851863369542156043447870934935701737419584013662109777318095790434611684149777220703979980184605174753687306522345427166162668202419032297145936975002038170761556296953760793614195002775579620218821528044210335641802886301404153516946999205298608342335374642694598852265828445357713417312568862055467964664525307794615412091690056331180510943286412204114832430437925145858406407718042410724161964535145719282014509207551011283116063888494495907750022187023746736844185463368014923146962729720709695423687668525040206629444076749450976926746409744809902132311643418732476584479296790717229431946257118490525801016214393122645170103040181365987455896997697329806073776735811957753490999761637467817178935609337170721954550111604387244840485755857137208658456315124462841602684327789091288206449154202368539093307904879923560195908889430109631342658091791115893267549817541024091779701446760886368199127331367288326879298465958373938382199676012744247385862021066794931222663551022983388557576665589314885287263177312715061337065848927661778455121624892393001787608193899936865554299846928124157972079631374839403122741779865040601557257405110500264565546619535451775713624999212062009380663680866260257828683296904773349526662469108272679755430998204671622694155352084236768771740064466756863808536849734441985547396593996588860597036974670027169713288609086706678777399639818162469740963629747148005707956810659363911809032241310641904986832566025470050217547651494990957208999393373857751519229192122585336476538799905526118897457065089855117510060360119444085825522165056838112862695678395823370935325049245366939235887173090207929012044015709535037887189486243213270553336565713971640232969241138918246161717554190877023970718294844219361288799855096690323937842280709875837729025134057378391302603731989815603871606926684449224964838664968907644840369485179017777713878948798063065466924787012803196914815375669342979751591582694062179513279281009390785715419503599253670645237898600254040659728156386929944369542774373576526020656507293570619564298781514255637537570404173120475316062902233801956459042767195810619440703129883344469100764827224947513609779624545658734383526875432700952210290628549453489185208178047776723891955350586924097143818859425411537944568921389518046678883539456226449435808759967247934724896665331612237927244583817501127063441691436139060588164614261734352197400673536032478883428211880325598885302815333656351972903139613510103138918474396086377720128023645592548671141072038539793827228743161459634613561436700811045369416165801126932366568538024742947019196451386538596917382376423310932020295152434671731140248031515018946180345793238578178256078249491574675476365279693767441623426789552887802228455649612909994468421733371525038031171766878814427170167782224291628341792519302446706530535718047344345380582800230410050201063404291045531366703969112344845952574525432746582901159288405113595715267153079450315222718559469517778805878886934161126706054653170422728746405945114761629491347932045261061320622621456561219970550607599100667943797167035713484790694936259912309376669848952722218673185142543001944415216015307228502926196339017994932672376960772872135328021248121619504088409656416297432666285744441643283845457693306842667731164008062886422574538476801632683212773806523856339212338528095689346211278786994353843087075834134123422166701302280700024073270368456061919786691234612616570550315345229472578360443201250914987779380341024476665199206576214393320200602792584964759191725694591900923248247104537093828114050992123501583396377837781568977564913441443219653156576102988615957167316077215058608465274521100907852685967853905023947734791749845716324441142352492599534839589869765044326363602086495486197097285332753465813579289723726633488633122269291452710156746803972160166778444631903540074788483485763850130523111027237130719040041160175924246983489538812928972921618324612477391164379255762682786239421426473891993573855765967511038140157588884042022962047031398165294869742430075997744983079096316824729891686951963421257788397362959877471452628721553451227789545514708344715367532178533902338511817217677094559724260751835382151356814935049171193040689045323438857961668174102173661132961442921035414693722020411772437949725156108555108072962861478725640438626086269721327782730290867633946283620112369952539656309676729910772108567465238797053465008575860054031243284343615393695880782721386911741821763164372065312542566570095242573519514947325950159055929107338703680116812270870908896771421990362720146513938928737579347594789929284441155891714024948295634666569313014048287630696812701903593759013445906646683524316292868911168119386728314887393657290016368245048539932243112310992720666935857795337139628095256144968538607361874665939360150058097006819978710004990602044926310394300052238575042217347535334852996195648780744268506498455584308951885621515229600910154257921719035664270495843892060648657132119389040822042475948353440600345968962594441887977581571334047360611238859239557594459391446260874281592314242151625248185041065566063316343007244746267527620517805884418395356111063845084978864472841885323414507459662283716573163797311757178193764341419995740435781584210527337844874071805782649242878230547278021839205801963869614967883879804241014558884230646633634596330015333695284883283397510935378182580163086970383405177472654485444842914371987150693664581617243450241723853986288565383845385798115865486903763623970854044860174776897319619336492860858792545201946021887038896312511111580047608802023148201112194160429398586289073327456279852508592776296634108640177841183936692738949348635784557632635831980199646564724440415085299349358454943834317284162419878316231537341620544891592239375845296831859270025443899758378091390432563235708042039591112480690549209193081054343075626533067599453227280941578471734238066218823136744771974000317611479150538492990609901486834104747233867218153413838716920479031867944913910354189287117502674724306130465982645008942527170765746437464191930716541581967331584640467721107896624448195272068235802090881077932678487728673985281900125874242209290133945366682183551764606284711331209484941238012407992967299825645219470682537399042433366576602481829997814152993127871166035085766618647783079642607516461783642006536447911493685885683372937684201341421379081382788536712425736987820757568942877208661935258071955966951283156910936422220057841944290811262062550289715007207770957203905918266533680169400494524807768795530390238089130928858381425140575002536889820140010033100294711517903250444627302203675837985156897929900372320894637672466790334618846911107894424557759615836612364567196688765213816787347419282882973028628774437788777941390398296806594628770927037320315752166572116384771934900516506137097143245901302137306341188631588881978889530907181832759351961106713080514998618399643178162628108084155278506768248062115569550362320142766497086240051097096301046433188701054732523614133276328562045728131934680339642496957317455467002662950992748034398517851813081613675599653106240125129077387506550434489828705037392490766728734148907249985354859611423372345868367339711264892623649375753706271163885874522471957638203784471096864461115477662817690620909991051380477216389473703967547850928025076869625407229132361390100393149853787861734538571288018695047483735289743654734780327240306424349076951712598412789713143617666014041877334047010087626905294752776561586921353674070222436706783524702260183822815836847414262430863562986621703682636154036116339991688705145072278659971164780043840932849872872705506171245677103305676265763306935109794262916142164903462021955447547526701621161197543223088069062667734447932940476898196197324692861387258891226360181556264203389503725838521310596981425468311862842461231735800846223381244451625978610162005528876088004637190066301134281303485955655746354081085861337882035190714767278339984934247648364480521839712960434591121995498192853525011441362250081911500753165544760892410821879617445705438225069851859642600420104082344004967852118747197998568768744036603053586311395789967755621199850837460005771104220928763352509710837321264239482886897991241491170428404178755818655619104224685411828373343044797899614012354133551070124960268578904818841445602638040202741708454452846285001313550838403015597607249179552935315576572613925518886933096388035991238716808606512144509058605877415477306070389742860555606117112151044490375009988188950222241823028414148623459066748149310887908771444004618363017401003144754627782340299369697067039679153674831187461230117456722376406424693177465449210248593323141197699641171330522885169248010869182310507593175812268799399112212731948043778068713587757160781033434320650294413162131321896031653242339836545418197593458509070102709735063082422334371292906789618933272171592468952484356270983233043903208635378149146527124540324722990008466452998237564571682333445516413283571987924631446315884479362229729133180490203951411971778545540611644871415838126954562157965095128506089010125205495731577158005383955069649185768276022865731405143755363821451391860054871389951197197050164285684560555387024391378563193604013227716897458487699622915101507987572806084298752925268365439279992616687174787474353504834017761670731319247522339323975354618498090301874026359091587305104627322822443676412958135595411074178144225123737476124613610548974464232939763135039355151494875960945344993162417454943480645064719888773157602859481132726828454000744713400114133153422685905498287338135180660958896232156377743958952249367018149452477581895943306383854265899551118940989772824435468324697051826351598818753748106623063853451719112841364041422198465954146703291316920881174825723316701785093857426711760712256071886999330940786513069630859700482167763696999903246796060795032194064387561055519936123788025811764339340196399368215719026878643818016704395471099527596627225355261899545965177618921316411374864187731148284982490402104363830598891798598950710366917492613053772441828830283851068426832707278528983074120306904504882000239838847886226188365024175726295154468172866449269200874075069635366820052361922200167665770763088993001665822592699379826689628334085162123754537297957158107220652339244130735995226739736514966732608956674394420425209375166327510227687605390285154580199045441993962214283404800936661448543928476103337555062330995224925519930629783374632410969011893526625586046773715637795709715547746701593654110630279466458723113426540129766013884591874555044765266501303050046526593397277573760982813935447457956248429931914740876284054564164193419370249903446791497477371254872913569947388703470705849574801600984803821259650680100124388346279655699926478771319415573778810560016042237630569309602365452934295979591454183741215633363761590544205785632278109348688507159218256797144846063708214909865185413767228390624040001415302072515136697192854994326972423133128675035834865190923932689726348823116495902043278785848877315781269918088366086013381047547816598441155480427812850068428197413442461966320052875865629200648244997617068270234196554875555313613567242393644059201864242289430022795108262121907927270558129323112811065215287483238999930794555322843055112704266320833171390498064271456735400022942089868473221177479913507716633153608868121852878335510371910218684430258748334029656778561613698660449841160407916186349936637077553842620285827299255165875960183571259128660429437307065380171822503860728814035737334180570516985694827998723051067831688749802877097967505714029431144559423219045595844960095201828254339347848204222204800954943603141937623151529638726977918648395420048835248892370460348514166506959317773552496339146813916186312644566579117931051261127265006564707158380887224287594347557123991145828054910058585026987236573375270026576131726191806717913946899996858200311954929787766457859263863462853290726067012285035250513402347245657639566786493285132031107184674254537261753870639910036562656044076337393262412333579311497565729226759740873059430645993356283988354936502344686762494344002740188970417977392001023480457788228998625616479360551947337300783913330054894542377124382751615783124684836212203250115079509403822914995416354040332838550434525658660943277241040496916520213267993027087176141722758414203090150029288885538524326521236171084705170807965870264784057817135302760715773985484493407229365544855020621696867277345960279271855628391691913629374645834330172390266740096086562677041190130390114394816269864277657235624920980167308389472293201325243390308203550597973630299930811813415345765109744434619433683720622848774104438590258568613623195049356153870999541094768505774391766537526081176908241750516318081846135687361732614022975306404730715129204630130163596358498666305788384406840367931363119950620378055106647575505547956316612064974708074754920812382813289234034449221937669068027544904025358122595381291182122503134447720282104644163628122697090439831790608399222875189635991341818890349521722490382907506618165154533796879900249888011537589339769948848734133407864747491037127388601104974491931649694065610789268839969166845608577784562592042132429292562507788812590308366754151348864546695723088557671393402156283272072479191604068473051862485046962184536402263909058131779458357574011129502014860802066595960672472278045930694075533860081972623727605602617406538467768060844190105334034997889787270211483858524210969029351218740814286602531722141388342567413671866541922165433722342529561975847381199664619642015563054063828096719178664511456123670076905669647315575394106765105437240457062822353039467471814179086898491007756629128551931245920080571060096201919066921111639539324768519636113421191293761920711910780286956455930850095897674922632536754680704027099930019663587950872095882473906098908809426665573116911436329910969461461946845045923196924631415951753844505190739547364763556352066908083751096518082714336284783922341354768521466167820949788032828355795464151709815965966467798967986416396274956752940669924967649245958059609777193300700427500573843665152743287179371017616091792537739980998472830393817357798200598250039079802330947566372119288114413181258928719591030385494087773594781024796040057141887908539704753165336028325905096120707888524337760242087871575147364949177882794866421539865862775196614004538396739013190936927385250080007469463253616746467785533727566888096872991306728148272528570304578740290166830407687681445608188593256374294842080471345686136476121946456116202312972767278185384294480499960366758317168179556350846623539134676379107225458839664457938256545798959878853632072185073218244889949257562345783192063901992614241608926599111431074360382407421649839527031909294408715337497895879886451474717105455735712619194981363616399776938364428878015583294048407037997087164140456188509582642637223105586783984760622498161531419006077557150408507769016300354778034586189261902157595136658205691166750949510685290182090512878531440516459675923035003329652052441211412583442090571242735258612888318776892376739086954258509039936768087344739765141150716623285626582679420919980568193119914878775657002485406516689497204659262335927623020328124048682213214511862401341328481764916743470525130898795996517312861163481926008938426867453010448444233365937351424248746572850120998860536416965914814568130146851207857423599203474042847945644483423623641723402001918317461599248898593447122656950952690337060696110514845185654579716041023349603984745935857466209413255569365556540140942305343199267751418935685952267871948088004697736853663456170328808560699857552001834191559705674851173625215308535338892561231703223334470316794902410184842709789395027792243444903578605518907851533712951071943536289967554128936563721092533182753993471338494640802694571183522815730713693883582407414578851204319594322856064806796311494613780242822951264477019811132004143997645504280060752715578562103331025586195643148460293249052316746834229550579468429169641430906153030886330849105552881610441146517928944428797389253732161069744903690200864807297886872860005148981159774676279784706931180025351220257272800585219831242154515121818122809340122513154049319612873721443572645565095470298776504315008791787495747417091467029260957264539566488828781427128054363032419813914864092977207391501853399190870340624776745496847554729052600551353057848405886472055107172596621828419678103225197151387509808865446805153091342869289907350501031657333591239505641899430021854590081781578537164970811000084913554882216175677689153141339123888917199381224939843895165920631160976806601216672696617451898966017514260145455640398795217808799418108792830259221289741121459668197115998377770046634906029848205029900296663552084666629700747116465728087744336492609123708045674952745326517368403412511984179094052196425719718565648547038406530624072614971178504177599203806527684376692831652175602070570819556645535493203967845664318943150333118334880951529042832460258127470134981398578773797120204228392302333619369389969106074309181573265131003826733026082723782532680351182353117876301984793576925476412917251264452574561114392439097334627549137899396876479545142630454007997803707829418268681256120583048136744222428247740919727246927158230550351942819257041130969845234828956689428995474094379949906884430276162847441865080435583848452067568993945776258374225649706821151517645161078945660352867451626257308520522433986553639625478187907677496934354655216165063720627084298513064089713145972199940431781273415736202056380866313310759869190645396880928488088311647334536052800560666674169916705608342026343764743117168760573494972323587586488350921519130200645288120907566347713389350436343369363550790292790270582520473463236751583324225444543047679782266917300536996489689850678872311986881179258197384690827729495092036261803105565711094156528061223742993406175529914630035666540551137353742970832371839800179084406848328851653173476261372928695336888681233189646475841648686582426586911453076781259209761629931983247799444661953630855972621814026639957266099106525621802384926240011629514762460722794938490549235859565140682639296678094763837312386814520281327600506016407918795495320994233605069447864474939981196321340809052688787955153416538416452179257669520029942696992224404758510488528418256230923733237361608673324526455108320309454437027634875844447025508261652863777824165277496414925030172972815499654895449794365422335408320595900257020011134230676006304210037205214194587985348249355940561977019824030441245787982008449488161285501322494223037803411465876264246540382168985054166285432620138343990998892445889238315953716910488243386748238086939333571561870069502039775192521365466240806675646963768767146109807670005118976591047585080222063773007607509396848661751060346332750305448146577447056015862617799010651658371579378614449256758370592934921491891666711799603467707285271054524028058625032082260420568942589994906232454020406459902877601199330464343441945674522515202683579390639499845094710565731966225992789474062856680100645854339194790870689568485847730970407130205023551613173783984117384468172973129239693092487838118203972026281899984471417564333847815206933914185754900783212782641470780183694728444685978376881964121946771880396952703280869804306221767536978887871193195073478463258324097641207877194843218859880448607346290015721200672817688677598515266757036172954679075512435389655420757788405429086594714765994264033568733834708947037474468694988041702121095431822098171273487996198593336114244445960633718642780890136360058051996340324359382874372013195183987335462359190712374409361707698494555544734236531310143487545109219879803243618014753434531854530718901871078901557460204104198476396604437277478608573304161661015998494089480392359203048655710019107505902069716403868541745083553746582906547140188653874752857896701701034977552858284323779371122709379200807585148155558517719799895277612319275913196117514945074274340196376426138387223359985359219543809490952225328977497545969163645489842621659807340687441051520834549386827444589537902112394206091036050859490254494089200201704888260160971419240909500854956130122112448949498879378639166782559997148721643703818915563831835639038848316094368894817236871407225890440962133414467015201584818415139132947703921707197108897389134412193938079999265434113685728477645483809830411805306300536504745629818912196227655672091584644291426646577663482742338612663048505344755930386453851000483467357218200615588637164169329348909468318661330793436303147968604628217367221416648873496754245615844405383763414730941274596287216293004676986215037942141680892158397882784020631545057224310747920522999142878120460477807631460036649014776660852264257753580820181561821743977146665324598657046081764772025234698504622680831254266153290418248023774236776566028230027014957767295169639362861956074604436176911281472470748570552988203684520262393310917150959684814698040476197105442235255283798728364077106098918995195323027143039663069280412014625234575581378487050767011530956049307189761248076283262356864492513337034761503453873609137097823663735049239431663094735610846159928225051640954912931418392438264940907146675289898224825108157230521626749401942154614832142689041262939127687569047358941306208400757349785425528698665726766267189409008060098956252244446839235316566720047436921915764540247371828940728452743984702408215872944087416981844173920647626431600230891757594023667116563066189539105156085854894669554520453944883717988011665488810701129055893264107123966180078051179671423152958686203604486889713605327625558593555607746976740143083699567218851866122654165711585981331130954431200853790154384897354104404382378590827375896188087675613588092459081912535546397281321352057606162945970354079516081651458040612302505951665524669084464438520630649114622690730953557409376486231302339593379698743638469973662425565050429813338342279568620819368869364990205265983482470859691506124856942591691567083679014728223869531093351953526360174448579943134905739116364762603439553805217998003366481767744974697381112814321363724741612630954395224593830507272925478046425322273023290464466523045664458287999524374701579834089209721833377778959110697299924458515285695262885472459288914172686666795957862374641749731650299951068563951199280679783924468378297570118860072700270018322527556191450812185481471831086235168588389494240014172277371335612642411604452954433686999434393658423512533911550509866022559910478776944121658147678124901886586506758440281382567710333955138063262357523899810880362917611820704823218651649334304875441706767149954378512604800822962918900335808406190370739792402326288175680212508528972526144248862329607542561376051283138921115938617047760318921829657860870656873302198035475802329088739331010051303230432073488645979368610798435248658552193383631620295828547635806252130254081427107274179777291697628211810637801612487285041177434994043152134311631951250356345384235134652970027611703543114796152919726528733962645167439511015257471526724486187424673192692027111677547309764293643849257323014875547809209609984483939523460807138829136348403263861809616764008215705576067567374389208032655552033525103381036247595127848956619204483654968720289174790419708895822555584103645702515384962981139168765798562981791114696438051921312718982905333084263662106244384162683217123596437523172540890062146007938263309060855715963810300818592069422059565832440625291662587868382783708499224619955326291448776976050012708845460226573261500050781303927393699285907880168662070093180300017859511600477315682729325649745104632630050046761801853349837467097749688118251050021675097467782566422924949687971535670689954792965057699057990631635175556717724358736056956275602083566168684884710409094268742254862422895759169554771754490681379714295568910715125893586196012298261499019117557117634968751338861926783221962874251308261659255211582812401387444229223685230532875242371863064479861051646454290247644940744435543396834684995937692292103032304057687501929573500289207107396093260688679341098085180534511533084709572447316672887850672365615966095578181513821826578073683913745923147051053173388808999848643624526693614081707983467814107927445046539846515710725869832334556255200650233332659894043492283663232758359652351662654090090539760890039919399638176688842547747876533982153451690927341830085906095590355251991407086157723836903864092477929209116502906978038251795815446465345370744344080427432944526333890071684365015074262709260499071400923145179365438207099144544743893270926269995978579881196677640012645363582441619884151156195092179867584572526405339870524347022587660103548004360182318117727784801982083086483187533594090488982971729419625929728342464845053593106567396971682826809430084895759476112223525856493351833001956159196074469056670055154664790497637745742381183402114943691764466286547145432390115557365866001963394115782544265065735236877943446635819404773851019598178905240549516970035470919429405524194757939944634818230698250192155987776764696126707891330072794123899408878779478489879765204390343699436973144029065594915759091892346710396626936289273808225216837905341975967813327780185474145926600520971232400012149133421577024794375228157210198813621762868585307726084978839667441347830866122838597626261906215577470162987454139164531336465511061018230305016244466528905708139943648251217320998472819971492772408694788185635139986055199545028445537835238915272469478889578950187948482200442513913400388659869672918124787554497787985767496950162459671853179486115744029926925458172129013185918563456979016472001882551467960486159386349658013674995772070967483731883520333009090487592108712116214845588761376514900979501220036608726921569184999788727749462205767840172447428905970659171303469326778726056970300209166919369222373765579979251009405305197663797106061289821713693488262719861841609235549877873433516256760791740644903995367997715898034709744242628367262453429172021654795196388293418522670779167314644786321848679720285545685704663966305157089167368030276602872842941680859655104897997694802016594070122373445028568197101922364556296373351649652144928656102368244445327642493374056227857757748228696195666827737596828392034544703885300647374271304980272065178737713779032945643776618965284229040486164848340396530154645220206897463601509934357617302781807546785787524852314363734281392775590071511007722294273194227058901901460588213611795345748675003375238618648346574513842324056031902119841251974912004257776611635912859635796275661884178287153595447041462567993658844755191715278259839737932398130859180972507287603208269326491609635487956513231408066351251904428535941698151692898778475869425267304174787572238582696808641221203145371805497309025906510439641416986252252121406935544139727874173626882146188931131013951848305063213870699572597919672557059827477462229783460509290190465822765328443980551385885221532144063251590443757156221399552626393262373931539204791547437218407243507648332488020948864949381306903857427973136321519120037710885369869952079830494456975425860477839875027169107624069843149466355480716808638342457576067013547478708986745332687190957758313222929411931882690084615020873293190804808568967671467969766953551941347667211677516946020608940059452490760274548231223288676050554983190138630075183547894520212813966725851613879838723560417739984290255919993027728534753624303605022601797030839863735585019472770408061782255130000602413226530928996933584913622613373361345922956990148841567439209096067928627089593686181539086949971153067435808117709706515523960245571312000743389621830515546076531720795829752603254314658405124554596920176891149248816436940838517422153437511172151315979023783459783838443117720289989661210137164353895089216358068504565010897299910300607232853054341347453542613925239758929560598040239476631159026132767759672488788177422202492680110565439312941508766889481546020793211244019778818207183829513900664376999314228180547257567320293095647521191511009055083913638857864984072862539557083309325611774113613596182267788350368129296373454894038142309826769672228101101349802011422428821844113050999424818164215967137343656800569374754102177310056817191203416300533385139776395044404150080280220911454685913853601992321311490999620609319002825659797423112626241241599869181483225399657894492794852843588315554599694837121473384087002674269086549451552731543573399290624034240531229160039000418533481420230979511738109520365176029929051114761575873248171857914643488378744938708708571955391539791955816387504860009360267928123026313466508976141163823678738933570146033584234977823968320386667185694460772529101233787605602632240280732499820355531817376251731162490007304523406967810803697848157891609989132297053928564032276157328854838966565442838055418572786437616459476625108228121269886838418232664944374116521080479882373809631295885789154771447766208231078017052168680643464207826120750257695625070759594261039713028418830257133789779359959037785935228721242546479969956121283067553156418642535547634011708106074774424550170218143462714638268165586219868286392093168212299565866601926955899341734163403581115782027488017993484198602422715968740147442543232189808535528621615015220691439322213933269015168757184735391937261507077641559850324675118797753483892687477507365576594065607945801848536752951172980633321782071258414948230581392939023768014842491383432074989568086339618052595024597944952268032376670605244321416990367814082706674159817557393045737210287419483192592267175433445154062651178008029035108897027848928211211891354208819879806302708076576235560000169926819100150105071811911925998767409686596541524192686858886451937994839924585569875709324097307251971416009704460558282552928315675039527099992965528757969191104033737705379843694999622410705451659985813061365049563917368400629680477718098917559042162299353084719535827633876896996305997385218966841557339048111670449746875137196571627614416407112664850511092275713518189207517884441397617807326931694386318877861265184309716430117723045564798906533697240991897110486140757064192499779602199118210032811323457738381767646164519794776178775171179607685306001313897540577988243680211991605868946106511250817097968699314927936986636893659081797070050994210547942478422503065356980532287259673414729410169937220971683693861773096474885806815830798046506761943502010140938551497544342378942346671216298867407790544212667408694775247523268500701928500218755555623126208133543273252330549356722423664989454914261685025338612640871744409750094301526195667152537500855732742986263675746662592923850093602050914026425418624708808983318179108998767679147314962208434869782650719584232160581038185839876637102476224896077475242288546467316711518453453640709219994271599280426911982959192183630327311818911308712949405132471178423927781814497364636207709027692055698467623163557030043490997317551600688528672019395526817517340824586856885446231621505746348699396956527121993924135824520286370905827025852853370538799109139880490705285127436990370513920147978232588668224801664161171950986111950490186251064073696000808895076750950595591226183525633675645216963627264006637291309285441116505616027926539876181053620600858520811666898961174925557516003513440610827543567222054287032500220901147417232876092714251501674590116027293502801232503681091102846909504506197844907292730860833131807340962485854798406886355106892462636288450519687924042866262102408641249424812736097442985958951427155611646341192320278634724821465740281112322703813397490730094077400507479113586129748522643869803450249447641495600391546233348266966683948887250676129393357331354840690346783851885693128195306050982048796739902393483815749103587792070886270620157066732587104348888221957722514547629852114812504712364280710026399255121797390626076974018779790984217339347149437864204811493148643978664341032727564040584062397466411316664404840932453534336149806749890933196033335078991113977001127418482720747778436587220535271006561001857901420533552457876598973806048091143461429341957692182710304644629506518440269704291030644517627934152503622530094206372240827163584304085271548775580562964040123310906156611081309726116037951252711026379965404438568918479783460917080037786326393657548010380906272221242455262114850321576613045583511040485592828119584330046473711881672734227546522680098151395610426987653214387916077843349012637915540258580305944632434449796797790650095242478960817499835472210270888712050248595593625811912190935646996771837278445634691868356524738198303169002264839815170587016890754083790330644234741170390372904184075965823920535668136155490084866148673223023855124948925044595879776594974131425938313925865937234941148772855801218119989887325795862507061773933721717339323997139693117048781346130747455851453146848571520278557242053401699008146141995120160042076437835649847360133290825388891408287583069559560711598026444755277675470976267767595324173761338035266238729292435330236153895528882214106490329757919454344711788440598547101882665801164680976132442432597405600927492718646425108893041935288297684675821923006733774856043480877012444675131458975319376211954518675942942779647844700787465128281413748354553978841657162041086815684598036179449076275723874170377742006535855044277057905264541300493092962036620761724607332090130843577151616570657831788505633851606583161932727166576739103079307625502264542931295165556928059064096267658765168041681270267323207925398697195189794999223732202105409877704044210667409364854594654880129638281735709914661851888372620201686683629476582908357553029728719732908678658729638064947230211105808646590003335986407693315815417787375515986462583554144527909674936532388437203222078514500989628399251824189700229502310179370141427372314465488813741600458228558241975207115096790613267659679647977049909213564131177357141455314165130151039508127321552941867001963164882749375696716985483803883028971189380124089442806650700945159106807364304634540978517670274580824077370338580724131086564359235075545806358446665591183803819997143715729686158862369060148512895424262889920571145003970960909678801802006874107414076041468821658051430199615186333229413810755515369968129016357790181882804005029798310946906432893401713296951150506304038517404574789343654161806541043662066493864390506672119547756440601989596871568131899800107715501321324067506399917129039929174755037297912751446998224935946716468461196430517589805658094603780327991171038242164989939954846431378148080071207473579494243888634348228490777416337349831956418092170575698652023886327630811118496497611927039627220499185849333361694420602618866999904540370144606287432455830796582990190363222954098969950596434920345539180177589755485536824758354687723465073844541530997596564137167889875469574540355613047887700690324190519863543776893436916012767961527001048497331951511920876336138231765019411622938183229845784594038255858658834874673434972941659788532718747553663599579876622402723584026342746065229790172334779275702343968147728724494719287173337141036991421032583795462793402246771929932902025582299340346957321891247504196760033273419274095176905132765956387222808715373910733101351428798867503052297458942742066707839328111006483864255702229170434081836862325387219629719577797002390844975229943611986858661291971551329347964949572808187505071450197328089653208512607595778867820327278123786662509958811808112822560584528219514858439602499499954824404667780337328615807051572036942720302887159576343536941641011551884638931505577820914327288830210321425038177965203884880587510288122138299163877022256565958812197694757242998242880835126754668045223362748941077943434701306201453175564130502722640311192763653841342990484680492153672674528591890770067606520273737502671379636820280441279654770938565423032857729489058778374381916563822908312614977203291663389204820919045720046661137076135809416222545132447604816702171088659184796795328564982090375354420043549015413599676575280993687474938355200223882504847939215525065395539792496514502532749586476922017184405223220779734532179710896452752705037763632040246273971698831465017366620269393222031745963917075164355581197195389145579498525975514998920224919756028955129678685727653017438950374048111785187239343123635266287149087538119686967314723517314555856482079459156925799980991045242489378065628034411886664604528725629595411568612295220853808635702732058551292968460666044902401654864437893047583234154391624703408054119957497041470768403484990037233548946987086877999865781411361031533722713552162643599896032648756411995508857763243667968956584885570129922816035319379857616869333504021023677889533338444356654564510830708529788957520699078980651694698356384280347638674839748550694968980833995810201427402980407713855723189286245556469743554100292201993987089117003165705089409286383667922451689831800468428477796454005549505716660488635466112250123040041230840922828051075975724034838770824911861160652353869101844971633489329364189243044910593150939553441560767429208448223527045422060419295424565524726370144186574849964269908971555375432822813768107443974455537446632017293256676538605990509656341970342559152034451339313929813181181640881157184432893955031554373702305592050895347591361388931828817393867571888647721612473331576731303680345220830798181941424674853274057623770127743571113161348251271331854120805081937361350812975980664650546723646320937355448729179653210153850270442413655406581939002434219336118473380398097469395087300199069019296718018975412273612468398280847441210198489271839221801334577282091987524572197028434844413954186294532363352329476738894530474479123825658119612430411953542114590573268031368690768083565619398962287855119321372554268245128343962072450344243465586563300555731383840416350367417001878499937206469050287813407604390755949284051726457331664292407520472684457223578438409279333034422557354024825261070596616004914586581187475290920246789355736467645471243328294233432066709200227096419893441019493727864085075613092743259084416639293326803666263855953582514062455495298390416084889939879469949196705007750337110456548072707493752450585452468323712745153927626883251080926306596400306141800780374874962579935751114063227599448482970147749516932924354112348249150032296642317001823413824739793923435806781353263875034044663106524091603028196060626917332456203088633567480321044004034165265616999994662644784008301538744315583261248919210858165598795247655136758446564264677217028834269648587042517068572359445426325062280432062322380589011261283001975655389151783200547777316386004939844499794195300022718548326772497508858138492810339494649263144428654407817155641209236338976010096245093300161759498140079808654209518466568807377364489963696399061116301329948533305262742370532472959620854873583530872631572042173245020569254242636023606800041658918127459528036625298437329615889668708884848880672034695013347644523339295447232793594512629249451735870861630018165841340543332227827722077589186595310336798642625462023010879488054224746477233411051594760690467124102339566114110228882308366683077033522136334354530824264130928052662807605595739439815674638327257684736127229337747032977359868286898450651526772826240216643740377633018988007811370408934816978855733142027747971904640297638977031605246726055422668305780059026287524948580451092858064248487585688131102849862970748807419661471626147376107531000483016256140869778414685692568551829536284608029093023971194221170892925027575927763824684440156443143873615820999075977027022498450163361160876686165598305107758565461186492429825458950479766676989717687470275237209038422538124112531517762471285801123787071155286279579865306512773241612077304486065721668261658968539912583591138158130450767430913944470709967311464014009389032542266996386877221824758894586348736446608938170183916809118995625798383920587027842962697695133511211147336960430738614144916134163678520494382208935292731104114286227178151783972577891712191251719472516941216328017250427945442118741007978365028680327182346892421559253589704888104077419025157815534656659739868555258648583185302368314332929969622377227234975164055187270656346053810097546757099450149242256845766026140541017067447880564642129892299490403019550210082206486989317137171109011092125429484485753137485797323289234544741084440004059578047992563021580880029211682177962688241054525192871288655101597467954202979215515811924867094292709743212284598719626983369387020099721023921728092854421892973840802149431964030186113756538752040483326761460593153071676788195050577651763622951984138229071526621808491569448886496633203563994853951805682402047639236514132614695874313628411172177325833503175071317200496581410017875318835256082524301800671827211635519745184072986793122738565917307852297838438791908225149972518468101924949178065318435627668807645675225296697258828338596743127312180935711719696359884813978313698992961892940301643412886370861161850211571212145862606307980564428075651562045052152735518088082128154162859467611903433019192045926678211215154399845666532403587922376683045144629104302714162549663796256539302393932676213102813846099049844933639819693093153266602749295500127730927250238453608198744899374483993797646897281633745743719836061092602810773358356162398546363558679065954210775354924078733180747711266878378083337063613355872069991431836560100048861029824889320927661217994436944909652413878669095264493631530450507822748603774742665227445870429151133522251476468444961097563045884032929885707968371813609551369023440258372166866012731296497376641006967534982051223111422133112764026797888335036658839667761418600299934044304211534657834390623105619797536145842338010282284387098258912406387270039639325479719913619944846453147312888868555454067400694953470784048942153127117899887676739196339238504508434248594179749658639652256262229624661693309077284304474228509196000510144244906904021927214607191463415438096347194647210665593758198533917462530985050818986208747025505096552038379435965445768851337876738335539483583088638238019812237782274675826874150664211427112320101445235146905737389312193201343150535724351214910376182597419422282973313889000983798987993395745363636030226789654678016797475510348909747066492785929886555312632802518931976592275488439364877135818610141896414030954798326430848389183237096145835829719904063561551648171493959219926739644248259126222492256193161811380024161552297043414786808209624416803507277116946509369855010490242480539738343169791413235448471537236574344704235686836504963754228183423531055882407349228982031330855614475468737469296736814513551018117330801260555711546747213436528750752659139233880023676335281645087290247681686187728595924623406173549245875791155106660530008310597098729458747783119910995994374030736096369499321645498135519368064007287195929128618605343073627379623025514506737262771902844372652455406568033774933223203385163960440266146508452280331393577075174722028633230623170565511141973943969261681303234659979766511871170587007281977143323349101386361197734160495964194130459945317053106157014420543711394500520021256149579310678576949272162117236963553447241092452162699300891397135148799405269486814763363348127651150365521900987793455024698350273634348928947758777554614842943567070416350160641452603187819584838226772417440442112261109534915269033634010695595335946543614781180693622355644208105364999794430321487864561621699729827159721453466392705052602400809719008423710860920699257637126197562693063261526807052636728626785760922237611103655133364849600962986641979359380298358410941596603853160238906950236827670245561451764928350258092472438789337970148718464980621738642470811078584241138799171246954734275340741241538254034491576547815175925810499181143195970411810770748851447665744171757015096928321790166643089693907135351636021538792021162115325107219658086359151639382426937500490313383428795041732665460024232593589159886338213709582361197792598751563465537062007259670814144708749557388580920722822333485784577320519271891471387996306655974026608724100002440073772239076928714141829358356681067919718986713917294868475353515652466204107263666222609327643264162047006594826164817249625530040721241083024698183917560100432835185320236320274510661450374007776089716691702013047602268913686939648007534699158434348839136410039713995670743959841198801792099423678456575976740608703026149032414578410925611622136281788678941101680207103214689067823658648160943125224168422762931480399531992772872104978012441222958648919020670741364593283595932297392861184919288315870512339570527818084338520395640684586097126885161744129071982068804872157830178722947168971836861601698871378581944742908891910933220132341446967837311660866401890154086861826569544099413807366982781216936301871863109688534177035189095660266206491933062492920062267717319726198598422501660861515006620310626976198405333360740942477277646161363750135581157327756923233466055625152148675098199613898118824337036037689914106856475653765739819514629571680552919414972277750925367052311542392545732616444373440726448278748231776172172360055669957349980452476228271630848625331948644082088726430600264059190230287992621237237058957381338707846283588179242160448184977016825707946390493307010678881820461449382069573932084813896221820172905526888311520935632054174950151736053481298627774336709080264326249154195991200993761872304949846579819826365266931522684297160719922642941636588386836789132575059267149975724483427597883136077840523061787791230856400863694180497640566187518231414306226640163311428493707862805257517166658872415242512814846500265613032494634290172680666044626485718299938234102326531500701200790942777172453708646811688433707585128671971131550084004751199175171344286893568127779075091480498352116960054061844759053960531282171634384661774251330590146999261988458595371735136500820215386275193278361451098849610784196088084601704273239349040542874515759948091695018159074253907475965190526153307742447181480172229478759906536246534515431700512913580415146786381093478162997036664762235988262030364818742478697998583254840714022542257998592599971709834067208856709122582352612985278862535093112921819054081686632412486102694416874590198443662479725731960188364755178868741928434430440361735248477079301143693717076211369657346202813237246167846080879729795950507540839100264480781295674333051036761067047300805788689245417460724911038594395281768189022871065973142679124671522612338034263837328594806613164189041812773392386957554740096105529644874020369241560750807748449622377373564422714546774222516487647021346738271059221618232595850932115807086248925622697196368644867448460072144968906464153774418896406281438696235823387220050658964919254385800442195558171711148111198513212937612190843018586828096965499613297125694460502618685883873371396523940115496052385113568337280866946895729403807430982226430852684876731200014797752303389719703355152587777559016364011628231507843226544415073174866833797284000945621822020936245332938232103877495209405685233220325102248559732434413134229430724837318358372686361306461286147694761140711922913693133715820847317202493985880399414139736591497560458461999647016443772506394341170048536309618666273020163467407785684116503755002719796152440139712718344208228575799441528299481883450622900176472413116023143744947816745553385800313956755430798073278479072027926676811694107629246557402321883364333205366789191353443419713546610052838207804565161621042655374275280713494688744141494464603573271407706678480398721724256149367797914604557935380478391128265907922338089692217795424734308836857211910884184781967689015538787582171875334069627678241470797085803784614465186173278157412662984891343213562529980658323352501108807447085019614737856901151949515407856338104743893590163212273692291066990067315836283162097429838730535897818352299523775518527914120212036088291223498776637511927744731168167537951985929861089917114379970659142973916884144015664533581984677769030320947241598400039320785190081375963282535439188995623049334534834299509420576473884449562729323825369863496242952602667876305715373483466145163641236189466004648047653686516553573309142313839022421883442014545624508132004985036933470657660249222453127727618973232701062199031785612377187777264371256888383644163746840702441370921612256559766159134641507305310383066746728015386351104250598237434239173959233836166922973700209213221746000757006714622134428669170029102861902461413300111514274706089709651525250124529932415869081920280054729078200022439498941313867844126422136496952919645389705604085305369851076520067335334118740472428046721989474574381891233968253291306035661236341653299203483026291479794164335561884367074775102541724459619372133273734004865202062387266173516775556307260450125873818663789750381977399991246355894103745319013356412406070622662571054869486513151589635251638640165617260884937717957891368522674666329713321438792771390403915886345422203128297984134253548053521477126554521805212531171390918592599962904625835045403768389940120235765816966376082794899567772967171465171727785921318710476007751059322352235399316903782601929638949168337518418199201892876735425298168449983715352105453596366349680326506207701966200209322051259257881843415600763504762683989230260763273403625244559340414589467255579479568283345333558974389327754516210675393551384443085453095236500405325958993956970191684784522508918339166022881260286915341053831062594185340876869563289845530614275116184347266505599789844906278131936352301702285721493141873301900609394767222514948493313948330072302888457880638621263865494278648611148824010612423966763001115694533896935946787937218402577201234342385188019793475904589608324777172850027885062399607018810198470963825653645346756430006260599970700486009503340124665381898329779253659606191879998430231644764151373738216219209788384848338523360245633307635573320653808616585184776562030323380026386893048542307801783231033724743875389581778086666552199732940933278838765980441154574393530410761133983890111225536393281932039856145981517920997803528024208054204346000924633172587419454129850380685986437108741905846763954788002103245977676141621410686845996979511233530655429257856443861687015940750701048040414730555351390238289955040947656832596319761784008411670088058853644990265200052775627717700600083144501946836830749642344710617965632821151278684847888634098500541255347861545919342834868776420273297089782256193173412412763911249986714542880213193021167022076864061794952712304022167827693842104304016052746623473973707687981377489914031983756590774954573971180030091757527069986257089415866286423448683091237777513480429908197874576087247527289586470457301031932771338283564755333431844067107542768304953028286856057387940007520213344656607198792994709631218550432052577562052811325582911204822613167324603728056978669214448789547493981738752853812067161826400818996855430439724265988269596904105619385908261691981107460163166636450321264620616771450163268439040444115764091769695308628896584979330824503890930029536196581854710311996996460367183743961853891405727281853355579160065910322063943110579220299607071746501149301611465081114716124844288075630061983040286976287952587817502488197330659895062612439303609504814643114208117494249947942428656008342623182866648590940978647794546500239953709097619987414828327823792237871982882050179506032995780652609620041675223154944810319916486931074510689588423161719239330853927584086258855120075995002293621202243203620001849284854546323376866428990432546767753711090456772260790659153317951375668946642561582188717170177512512053797106788028215685843202794485827403282958656419507823711126619655691699727798817381461083263848156991089109825757360904869504831786914714666334367160384001766642795637592466403634851947290641249608443299600590162958259682434746385714636889132063289716194555492239145190637366238244401380827353642644240896350418347822017241841787012923303558110794718821573788730162865203334937623066303011580829521128842709201920115080051515605876039441888780527754580465023797183280120570317083017769371892370552830705210815927998086626166381262591401568413834808693564454839451731735931048774854726257003333484178245874778401392185095601654116714606992964923010212409929591009737683575196918499568975078067133449575920982780188978042897178498466985184121691029432767142957840525982435351233858024087149243656091085405364497820196587771970062228543343185508590230784211043548645084179478983301501199592600239981507870328443385055522223610320381870861295226359018529875570271732173146792375208392424507201513316684620097895912863027908290824781242450269873948381038054334379655330447309726278895181406049463403780352209915545321430135427221374111809912958125392802309588952395768302315248398664506702230929332728130547494911769006296752536947095914397047395754118771096356470194928156423101122584782628113787988986742460240784800287632822230159540963482705340402199897829335026219784458582012178281149013293643439101788630768005162001306571072170565700147065489910372888857202203196430988105529979978334145122642482536744164811404445861553101130370731488000089277776700758363430276346536246558284157332262215133661037777383629213088141766598346073752094732023774024598894473256540834834129609517714298737522915830309263583068231400601029129266304250724123760230645109468686263473333203892514420462986489639681131276685668390545949500471990380479538732270218382494360018992578958706775941600131877292497620783277824803496372429814300516186489919018098152412839390271309368538713105228216315119878641749287753294647607227877331993641522403753063843910918858224455007205783942381758791195489032724946219688862549253867724032123369763389316832346832719907829465511481621763937258260278940490302718159285170642881644912973996916261621566282778623045674546178481820034999493558209868724142017197085965854718810948590286512303476950718877229680006582252512945900919087101513701058851044957568959063572279953484725223011937657689028983148794807569600216231418488537031008945592103063602774086576862039938423899667467721826447536092760494498139147230483867418163702294105565742684037714891058710503101753662832732003219543173352031107717670218201137372166206644723420508549127552215817216619693360496514269377757899799614850582513797092793431369723722514907149908989052479653745794093372929286020959401278825275802081304058302185580282822455450993970659482518443569246182826817959094939359099917932407925173015276001108263030829463579663190507385178349696706488626254524285657812697302095475560586369069653924365396913386656239650959783942830212313445046936946804365949015368576638884482634478692687453566397206562124294716027037336312975385681207212196597761135925199007894885242969202687401214736574710603842004068686482656768924090662136149883688551487756635976254494770050082142763717075500329496294226222845788282304011765346079126875809275011086601771820677379580154209142986719377555393773078291536983278585021304300008852101467661730086155383406641103836061478535207039272070416008215866293614939605927189217814931950665358025084449352626603043622344345778517414345237983112281084682019539419707439559457660962376856927641894563860041429213622764429834015548051503744589776506538912102892718759431411009818635814919574214741098526643891564741232583804435962222549292334685133308099169064690878023203117190400815852934185490799280025412130074093692862563656365104248016987607052287056351783350391415786103907512544638101194392597805863122169285978740249334095825576784475917489258150628683537939718835046158134325802525649781909472543114393427259996842549817514509063461396341556188189952481077118907468934595267718471700461648524596186528988381269375726676627888901681247725789971839071641711646516698937016981447869506991548547112412222316902647206885850623104947301546313065661306374328320031804943923175972382807394852342177283127134104432842064925064035940157306356660073291857326946164046515636962983902365174557982565584121627214948821003252795378028096912478346557873974328580716746491164082283962585584160606882297180150604282202109486750004844040036362552061266549128611295604762520176403395308262042091500913261528213310690372577521121018079926765762532050974621966218502013185806572263028486885208891750738917172194363183282937171574980163637930318005815640119633285376655636286910450952693707761181931637938860993522536227788718372270665321930299844824083199582080272863693415431566969155170616127177767289702247548350156806920910708649097772221427661381702542759315314891776297821001610394880911537110679583327694434022678511655441676749370390120721661157378199369241859616943251503480476805514713210078831712144628574153755954232503520780635963944842684420866984349967803931646650420431235605347601271363334902040372549478019751397868869538880951163185859659357791168797881798198769251835721228314000241027990537938708528522349968412568205141454983386618513614660798403453938710736385239907910005647477114922950563415604888464647189060011265476149898600228203501636265251358069551443263787445830555741828435341500916999983157423015232130371671072407575602222444480953407374977001540911960085373198316635250964546718261288147956140985769074208069878391612844199486513001768293633904006494658485237757768089974349692804971728177253654609869349158527453527011148449588635672126959170705131306315835954056581293442820859496582421983526040871948723504519314786164881370003987099909195142000799294643560530947189917518686632405111498486069319179902693664768588715001747818921539540440510717654580674064158819366761722376870559055029691687237920467756775237322228511056496580336805958561874010471477629984832237452903675590784955043073744780485885091809409371820273904531945651641239896217592713863015962161553342735413552799264969913171419937720373752396922309442891623657685754741811471803766224925711248317826931184703253142034066076049243803654598364994787021422355888811634968486026056596940370775028305342980962502615503481963049900342458443251520583839150460816204176973395509196467397009239900964869729879385746587473315809838664873314778421447174505555841653340422892134803329563996225728557412392513058522321564442375929663970654555066395945779668615377127985505269161626821114210702056206520346354158798356414449329784689504030806931110215585492325624806673828274680397643097084266113298752990190556263198378963931941986872999367154461217929936041671140986019254690892984892663211702198607724809266214150345477072138838878951851602457776572251510657856619364435825200606522493861295585909359992433378734464162215230919185414182083779317433677845941528188471984807456705035868534708800293456042975005709575262016871562165712979088290919556781124481134794985582261756822551578100063846053719425499961352420068754900271766457535065934475680865175523700436475672462332230273944804914966770661650768677867428020186782961090708267440733806661684520040835558125403376650886502803884879267197597532673191918666459867337699682627741783754282675420382212056697255125090726519312967692636127717196821236259739846901095782738237099934376758629818908717469641818360324249391513656303172551027693092219107560708376812233820317056137233421344520620784467712755807596887651981772626550184026446002600487096376418905050963431824682872308435072620176725584117981175964684266573544228435267802579259371354984277453865452838491673960931323315023386626106537362934457455942852544452299698537402533468912899361277388453798094294645730264700400881656556284316633253194353338192870896730391782228851590593508486259923524172130598312200633225486828968725320397916623369425839888587964536193050991626261299416430286318073387431997512052884886221914787424204645723727222343081204663941849910208455013249396274894903022617635414714064684699503881704693057609233608525597086826109433934681140443768715206808073062880997844693671176960983274124190978966676966037860327010318240640302497905904193146888165712410556788642943339674765866260463791006148255337538333694870166033493460222266765673812039624521219845522769280547634296652077021455631258372522971936541559007706591191482443792745094673219006707147742216201985097355925579438231736702651107380982405395385393244485403123531411395681077712259836910773445682070986547130069822419832856595452073906054770453056563826971883391718299714278656669179037900942982564694156866230464817299738088528583808486295929854517675129583585941478473111261544504535714987240385447313530325845484424170844102237286217137881847360484467085959700876255445844225223424700228532736500710276321121070132592158351799473405373992020955757171361036105264820489852451828635903009482430963287341093497427062009794511605285633785626143489045689842225904129460038638281894975273098255218851038109205182768168716904428092796518456072843116089374826294765632805159592023068994178266545561007889731408993251413413202500872019128338057568684852228750184038337644181415360416301821034465954422593124348462298132092199980121447319008808429269934873244276735118759736094404359972743256743492718141169482431684149938984786161751720778770576180461635202871503588439932116370153434267012983062290034308213346423604038742719938166508847201311820948265658403245750119485949486213427255025881323973989884222643264496338192193583475172032588892747659484037920765958380392258709900581339235959498419038361242131528289061989525546516039833739345878495053203562228166601735883668714498791267681868207408427634315831200006007570489380297144529158001272979955741502283055920070574894766549553515596082380812114565044008376114206172159834736930517984204290171303141728490258027908716755907262047231284026700507549415063788732331463851214784183189928267586499526725097644128041682550912179026386457165255309385828735973912543777012031414060237920419506833217738486549591422683181911154660450035714587695109334091701087027700952767391505902688789586728963161682425426455073083211165033238818998741184938472296999803580230540408116151500736080274801228181486639400119195796436298819152033130551619513523963448915777436614379110652560318255050398122282629414645350058956097092495057573187778744026022174609986875426810159499542444304049359742294839983724512163193825655354682987719037984225949703808554039539797910319737273532177045752224078241201241986234575736395364411650566855937680814928878354194200592445857498581469597697819171795225821788315503633439861002610425624663190540236230241164231163228395579171915397340456153428138856340186623572727785941335309668048208058727239648394531753952185213782073571820750327274083854601402265694555139448743650361891206989614339753291277422217769168508088908203498242333337587526005882588396504434513311473363764532471372429208567510678829656939755030289247215996283665925156194491830608325033595942495965197705101373579036869797956957472197114118271134486549462373078287526275820534490039351433754071321098489621067386129074738819051764830072154789240500137598266281862205540229879049362573847933777012988185385587214688428220340740733526076234931648215618357731892851937766201224471639122693852677710371625153658465210935193214920805238967238741778934964379771950731202930368024819484363357690606449611549868277453486955769802304617666706346698106929499940982429510372943631609012494449005252739729787720349256868727731745063434062454701823108530511279152417976685784158274561571502592110695170467672783880243291964565359037553970893711736171947531766774189090070722218927197439019237799734328049538317898578360294246810848991347667244537225030131832359610448759368123967738950199695157805506616957199993499667582374831434985656352756895347742757627531657583764322087499455563021861332476466416717209652469451332293450324185182525065747027782202183822028344005094933904115316216396851074775622858045969477527754721148726788798421655906715823878432973070357770962317978614088963718997727057665761269770148173847609946162473001837828448725375970164114141530716065542265262668468311763384099283370983827122437887792145555718235111944545501443131209106834685152340381731311890495632332584599275376206793358990057310329397508684480921232045117139266399101253159011054344048253006163958145243512268383836431238970025371371166391418773023732785451424208679035621070940941263522985325812814588199075536856240926538243789629209679975957540636715065196307824777243011434706466183490541206674433754889889483075508048871183222770703458376570412565918093929600455254976979746224756968711540998245800524004346734406897199478872480836893693511434533570520515495662794554727180053594836937766928827985876995144671092226773894461159167357205504073425236631854734047943368000731708069280413220555777889109509820979520982326343417517311165160818547317656087235430896580775713978728469881687453322536326535717893263966478775869289773464653574024079874324741708149294542021783615207870564997284877854671278949364624435787724829529150052111506639024596244259077544772093815154870202215111026424281929112928430617446291312934583647527769061908174205914448247381194177323511998897776668390096152105902037862215786623407863463440854004086963936559448666553222707932824463110457890814601973483237236551502943764137488398289937919197090136034046392544721054858876414513452746495325101987744106288389572403971709491565581053259798983439231068808158685655937238976294646644157844979888289765034327061692749907415474271923619042761017679414318912610000335649595058996730206072810532078213251427939244323975894597068214963545597082730696860421614256567511261933027879346836941904336068343298839371285477621733371144382053200924527456822288844358790743506926904834541325590794777899122904810601645411636573494557583905043764071750104189289455912319965983979917035011235068940194744887202801197434370667111189164676386777480620907397432687715023304096811764852442845878729829018517764139029532074591651113087188165588956387473237856000577199838806350650142037852456976066571341534846184044879828719451491689119908496229677358736326306650243139154540040386309733803944538224420367858982492262438609531381159594767855029653489991935295554782752168446729198618941428466185016277523938808896017930921498715864152227915519251134003478050216402214331979340933339047236728954928236817864384695319927107772217055814548393849390365408632718363209357112558753306654803209362745826473960964471734870227405382375670299428840769636154398001375132144828393825367253939198931376208416961211905100230356920022758161433526600734787306025112332562916358977813620152223599908922166005457470565132420229416622589024757171850621978455597801772720336509620889037198809054006999899061570948635214308891074008763551120112119167588709190728675901391222743521120766602920385024829686437247979449850674006344765443436958371937712661846000135159907478144046848857611332405776415658163625142681156054560045285668939614880117001373702009149157753607455381478614221139183372601145827599074931621030965433983519792766280234549980030541208707643807943713886662166034011984312395873157029152936374842837269187950628174423569674457989864831070129539631752112513266814183173043758134399403030556440104794645623956534850390602794894403894964230566740802003776856327307686166798313846494179216935380725675510605156298284872754629064360379219778921638940568383934989893339704178358325570494184211024427123042028303531971395914377741330835119548625365587852988845861095927509642288878444885766715453257859385747143163932547990213893575941645510447198410620593993485488195213983097653027791300647093136625967629082747369749548882001967083946026501837458088159987247563129823387194784846114461021498494364474085047957123255091571416199045580888450807940535406364036025449987181992001741666499330313167879968593662009164691368709151699674609796594127384172454286868735684680880788890645302518400899473793292338961123886213716921531849698254140084701274205324357716017939380749269987205415221853099472250168870290565914077963765753051188043311848211281989921365205558393362540479554620135599364606647126318473585270474729091554611492946368580638333955465526854380369731213937363513437683666052065818972130798265547404269041622419814392021921852158298384441381753652604683547626543035240640021641897097497258414582814877476381340678984505326921382856216035434455958607899921223921352320956408754335135350792335562893710609036530857725484395239162427852813513236295492682783061173266662755673920488305877335335208477868124586478723580694483133809395544678828432250775896420533712626774092506430516836830258531447658860971802899900376855586275049882760047528290800375513883050577754540465095550094704709680615089725615717948848417327136543758494012886259211459650094018835888739590394241768053223512742515828021426527480402210767036462265123812820050989792078090448139521768694882032680152388712443042669158142274091649983572120521068912850587417760128827658724081570539001519885994645819114173636949192516238610862200747442880767308648561188833148606597048382216395860998096698127170961403736378266271891660269248443512557054216510258438588912996239900580679787045883792659648715142747858209605165728966644880194470511274509406325562566521241048646103157940592231352113062509761767185462318525358055279963266195722391164922721145036952377293389657916685345273399586851187407081022821541322896311560400627435785000653659487831896488494623157296515414298858303507341402788306583679987415029570423645306062802967988002154722358026734232362537271793694608614062956108062397719461390783806687676283511409722770234573944409580878401221653452797709962259269747034821683102748393959887279793374741841631949269684441122826042353820265632445852148451998318188935549817206963189119141787014776136419553763446364130441539962942186016073619358961407079280886735785692760282185232779756140042356719819768197607054882475727907729330019821767654557952125665490982902656548923874449270563439635245265392770624578673567638086945964639523277924170855201239401600385359678876904776178094448022046951970924687371246195436999432638196569224661869906822604375122560334914403971376786565772162599027515954954950089765591336457726682214550865113064674406664398832783220738365940926579483147160726039333196582295347488731772312919655646811162886615318219773328147723326592814111692995881600629319834841475556116358801070646484826263351660709031644937646557793851542837925470315484759846355132171906365255524039777676469553650758144492466872512183728204212313005913235800104448023117705040054674509032481836546168710400709326041218237895543007413962617509957047157865380234529870897830239805429296301219736750974909344184439721801905805024041446180627244328633319468116925198051082763753986134777515716455748042890177433180503933990811112536570492562046603827876949332257162023646391772162051275571685883160591183093874222692202841443489684745876338429987229725275080610750858274846000989703119009423474423760420139341057743696330028299223731678721728514384386975100624169000745805560606915815506397740845458289128313893210414667094053139304584192336467094407673021987629789038534268877781801160034424152583576899349159218843343113931544773759136640996528710020689010286665957862312748472709185802482072226543060424884268175661512252375918467309240512744893901498501733120409884228935240427089208822459694495467015553244972347973845237124172506615935565317839938505274249331504248991925958964362599539978415796091783615943979603999653607251885345601038916082712836042216977932333099247386691799632729685952789606231912463036008133403142803400450615677166606556927423238104637603292903992612042057070191316277696529740554901372870647229314249572780218964957637650155313097776764527826864885716051862914479108839074768667854773840682691049145972048450857987851013282958417876016438853089665472606922168471185627124746318487540242839793749189353508061655288856805092032797537086221729062261727055397661308494319014561474855713596607245186738376824859428727790073144464423919173193160699988228480136088922204646422567615129621651691977341997727337219098964081630837687539435049830906679697284340362430286731607075538622554158552910764359154547537461431374391314935071527830138645381133646365227559419169960943422267457328450513498766458781445166724568070316228880491137422800962806926808012020128717502381600461671970019274016291309836463035171208004163227863235332891093730678487904185027706279466757921306812746551621080491730881531423322933925382954790569004257309465525362923193593941618166747399040537437543064479426166758150644525462467301482920005425178785716014510010002283425131739192157072532478708775931462506403023852061185268024127772356109948850178855270520934240237018769351198736385481413891998345616915279346103295880258578414654784286532383943567997681616846691600481909463327692549033203138759653610421080075270640033678310332974947244825929974393541012668992483707723941178947522967473754067389417784241897175818592363114159212982221252408955406295978692449325642751046885115379081343162321216435871315713880187774298664693999439020592130665957686433915893862692185512064813954570081657930933122984171825156982803495273593996066514697868702947508596387035245619374715102147890504500343181257043518658829225877012355497150009877181617454971439628172813238818848047708326507065159846237491597060542869866664414718738134128443301841381394476025706614175339092884832033319856129479761795426014100702797787885355227720057849542161471324369374519147592471324550514469405179486544211832932809315384759273285444240491657207687653263051949852535180768542538337979537078073997158843402253104947747035380412300539274347804058889221327543857865713277440766150361682827058352935294441801444250638583569494795039141584279822955576974884479871581985768869474347552552233732747723255386374275212001317744351739507675601152445900443245494168353522945866848516376814006033919935442420805172261552254800719142630926509994376375127092662968958464633378938777399695198953496887509914457881948973630554204364188861984631899263772806731088637636052798839820831564493189681663941288281432624192032441814462544760650222877830239809761046873164330623029915604013376736778526431255817155942191031293055242058460489586448960169100678727117740159114703977923781856421669117859234901347702367380628101063031658820088803208317807041030622006096942381032597061650133833161866568859938862426856549351447259519371229295419886978519119284538692747366130626888249192835243130949040615295290623619499871402957990665603112263839604386825953713529327662946962654937238393560713278171217006136979788815310911481451868198833427033534678728948847779607102965002861005802218355310742143333663052322807482127913967457727997247339433421597845161520325066619071905813282118200112568492527612113454284072173373667540318966640301627927553545314321982137943671123808249241106804642447684676067150025519509129254922249633065994373689614477841462163390337056520435784849017698066609930382510364168022688945890028383822482138583344185076799610129305541335767215259296203731599903839718180222711420697434553316687883447028504899396063102005531866634111668137831798064450404620459619071064822035773442014894289605557063031635108961064385988921075099901551292423586457045406525484925364381544617052576646474454772226366896103750562197801043565029304305790906164304513692018950740325441505947028504730389791546309499141884280710862171554761153878688964160305747937995168355709179782670059307896111385238437025112115362633998526201332562759896769130804925314581122980328099562405318259496571606585805650140807729970975492529069009491611502576295370619092919902292372009973842887275260997993584653823258984898341985958307809341289460412124501443671514404736130957938726162246893873071474757671252236134566701521987788638891480653259859299561538617125961330025587642555021374898490499427062124919037382627172982400030770654241450691219453926441563627299354320740641841277051741140573995537449596708412402045911141399629482730238085859837601793437069228823616856799777808006799617193134114800054172929214121683208621766063689278185377727826486587373640367627554299586310983879037214645362476437962462244882361426436783895931672832303508854026503405236061490652796032827523803761777914816687021405312101640048228403787914579725051192690934731939341759416143758826578479652109460815084385906994378582809561005910059673853053001084295350312184781495431207133508225372004121138165359307323750707673460321372242804592052343000760890353189484496039599900124073020579647107765948712814438906274149302445949538816488068775539621479457058299957721362249387373162939908078255773294097770115462303294467583876230348553388838231888101377634665652354309401818079932158369767965665106901538433643273592976360121349399118691544951722369651994856138495273423583248240467718053097964300548988865969235993053578405591594684615684056482768234216399450726216108513227864713377846580474114727046606456981211798797068829960147711497503730197714328315175068089065990151284164770345560579344870541776164107192935620352522790268150062694091590174924960987474613916382348050297070045059454359985764726479298865372748954624502155566664445660053972733177522973457041267684616324963284120106894512132991060143494745506743407833506325940303747016690539130096481254561045560696169150771130041145690058443429797314679148381347615633345695788763487953225826554679665590383540325699910362046033501510713242876016295743112964423939555244740611149936367577988200469364231511347064390213391012001923422837896869557409445842630378045734834533696786519970831834080730630307047001366626210272635229091905061598200470977752964325324577451233343828911999660832359205111794023059966668348186983473039118683926031117353064973366138244841448028198274855986201295241465685672901465592742135042921243115932922906359134180930781556929721024653756061465799271749499502520760888561936744466544380794579113846678498846222825334749324945764868173656987960726503090092550631656680512635432782356269201106550377861957360615545687795424604543352723625849336039753794364178430251119511937637718100695465597650880938005839823050998225948666406693202267399418369014908454686604804811747976400448369314930709426112356212473305164465566362862198832940029371495962217234204215223025213073491485440253261809528401897071353553435660381069357241181663333440109177721507699630382393335014054053778396027002568201912420435103022487319923135298036820624761979594980420149595450437924076943565411402115114330818361905572497759050315578787875454655464397589928845031016594499265014564612073188046231190214219617682863137051593904812194761365943970431020335861044411086431020657752906352566755718036181255635039374910684194736891853893660887001170672338708091682435631504251627211827851825300288602369312160190411961505206355694728706389620821013674419223986346574547999322626564025963502372155920168491771862730421163765044608112178567541215557415643867061400525025913378775140054261883576657688308220578893503318631099880005201970842946652031605378779503122780518341963446261102410634085945954446446618362541693805130770246773742681036810978903932113845759162943349432706636407600929704116711661968532152421653750740047952513503724696151677207963155508087459394229900797425990782708367618611677927364225169555188735137816221024818459235307113102452059453140814355067022443150596342846988042617994463840058191715686003967007366376720145400485736383285373247425483990995500552559866972363399147504152817960322239563204930357969262329880100754772878890785189490799087919915170982337820154993124395239204507221637354838016453537746387810236259180997246612294140806241087009010732924885334755182319227479165722764748275631748817358077990589825124729623700929637443016574652008114041255649283026197625295409499443483406959492864224017492327194925106613724783670422808153345520107626879404723371077071304031414464211362329960982248244105173901529642169389554656341995472523502652274872746569296575640729852267820120969943416098402963083992568353346807129249423267923595363210305524526420635681683729965158147993782503249436837133443123660492766000894846040355328187169746396097043288262391431214245135170557912327960074079685547734725754283366629600004430522118716690494138537837814182687799945725084853572185438202881914948983987843584104480812244807654325245035426607200685305690603637014071868698082546128797031820737837449717758094114758012061110273705239951170540195544968108278331292122937379691113077483260039728089258472168895346516629227532706378876745943843224266681775122619360944531997185426882441623022658135033110615567958841997292375662841678534097859321345815765184977345241331174562163410497584839988123267133574955886331740413705259664269347162242926109527414894572234046736886535312480540124577152547829660350031274098336034037372851923931976918028143794542831542246980888926473875553705159066167507518503675334868790040843125448252733149545781586636941126757026577561629439734927021284305915730393964055974079070362415653722286096048118820513013747114765308889669128999411573879245917046623631545587148222861341824613255288584953711198489060307047843261818711594162676306532290184294249600655787863596128303091946340084669225757669105445489425438655824303680116658123962494886953878386515921422433969201235857842672140705035883217429734372300282610036091921765283751995872474202182041342949773459901248837133479372719015797285027265224424038589321351553627250052778908145947740965642812034802604997195141650175263957337900567329069345481831479004714480375635263815152290823173748148630624302040994992913125035835498824732852372645556360144916152047823018624889700901770052392528458301472367723444974267011987842189382922945641425357292864956076661755317722300494331093915305116543743035560535940966879112797997025716534281971367594564771207918759178482989168480103135130136718654945043600238972963977421391457329557608759378994533525547494478723547525823214024330122775673215850889000199889264957608781403331795613646522493523795675067595840369137364318747855980326734292041054314938694679317963426240820172563739180365069103084914427308247167059965104392074850221410629263333908148340726721863597918317676680953250166570720416553329789467576397701386973505071852051216205399912797680893724420056159027429686619277480704580387171846120630519853194476752820178677710940403771475639747690204073860026009925232374857417034284753003098805663936405982290566480913142695826899384614441856041726823231001673291145807423256368253595520733310704732297707518922652567173611532405794560489905618603264207473659458661450776524031380510937446053759009329906000149094654835778542881631127908975864531237257524016304466319905432567573353769630469656726431855932674848950793297878628738206203690081928504375819682252978166327284280942823741044894774545890771546339610793677432836676819778471949048979736441808442862779543377373930712050446485252432953792406624090185405744165317391179210194066809423365941852573313276730130345743414969812290248687790378248985407342007710624410126466056678301064148325038751463346243603242831439288999615948460231518079769495244077397692592042601924139744992020621003693274818684726243018657606381489186276734118601977160774098715768438823986479615452415782642735230716119599624149513958749737933766211344184205085210661312135243069266338228105396169775345318229672296804134001168624532341153609688886340227318923774014585907336785208560642716852960878446125513395769067486127690830196832036260004817736087867710448772766484013514236100352075359860484903882584589453342037469431375789028859705736878972983615818232222345924956752413383996854649339802440101765181570020408237312934821869377445626482055343681122194195784917753967096110466804571132781390631793781739328631957153983703911979644825040497155227328786802053900239526109281261080453139327595613357555425933077865535408616614342759113778453139792128024038351250582210801412746663644378657795630163647653691380095332892590486618088500695405995051509720716455077877090497270033831526801517964149521669596878807135696903942533433597755974712949682445491059298509382820519160105678015222791858911864926599448469245304929668367383111826930782481042992004411107407843504104619594542387011727117368373741010541250585926983752701045843278270246649010210005805240102692239631152807031007795374209990675187050058278747636849181998585656568779761225966613226191721870558244929699849736313828846412952155803577054962289284868407556969572233920706032358798353044233268549432832440506438582643766243387196407356308541423456897929604551935963950490909564354396448113401927266903998260714562722421121533625725637588036640222999572879916326158931434918766671299439897942195202752095898595699859502274411570643347119729189867608183633025059255225792005257373687254556042802203956087013134647541716881841476046872232208974165099228285864145162062994006347473634509896176919176239700401035340160500427807164391780439246221162953853258717470792625465915135742610580257695173854067143541608495761115015761386491464061096154018712563862203328091776998188954084242600450377338024915158829209267922985055149826587009061657632754880620162418693538115404912630354892539909248050676382342389550830048108284743729090843092374757180866870902654542246548876175290194874554934616187624285668989820246013445934878178134840722596929129301878930603648188285944135830603941824610708543636888887913339493941738792361868488181385774318337802449553829933470391001625300685096713225505421127092437356715202473299197380689445023930456866192625538537362802031685688698975166408262486908414525931325365340664744473693012873420456544315794241920257264125359563809072719640646932561850809497700855702498258040601505565097965936549469239559630569775731587745020913008165781861353156385664521316284948299606010597796523695226865080102911461648597835754577297202934617643248863639884041998443252106727899482037255315257780560540491943049019088217535800186482861139224152128764043546352108686327403603316918115554633753143279377758666890390868054945304137462493655666197270949367736178567378970303083305394401722624463638820204836710133037516566564582746354111518961993658162337433921467680619665107449717882615064422296941685700056436466424879320676050715815029302219782420647017766741009225564671998794463199121497370074123236623306714297592554529932349380703049742743150007794535169790693051885797085133299992248810069269824646334146375195268242071500155316555028316536307739179529046638998026103273173261936489822835122577621432759289609003870619700425443507046840379537682481842242353851110465802147045302370927288612927481199085675098618615769137837650122475921640637346744435944991739560561579564127645627940502162620435417223347526797315661097556447866445154835689047868714258003060578835823870346213104032341960339199840307788437254005835248755112941726713683112540614868832492059517328051588315475087606559445008197571622522535191917943498274160722354775215611855456180044322551357273448056423892636112065594351619634977726254773126782511923089453084731409275555166635201568417708572514624112307153525794751843886911555735792087806126505481629335546436458128103973853419732881097079693408729096482362682507462768033476698374365147251082592162206545187422011051540080220603603525315163538902072897885928546504786628747237996208554500512745468528195491225534031697701609480862247285265597002007054486041532103665988868671419270041924412687903397415601195636955545234972987737457700834473834915701881508267315603191912708982269803805411099277101038060405297473635594844220004822483074076776470089872651884003294745043606970537438769471771382100584277334491295674487344300994945421120775636204216147089259429235865262425840280400828810281979746569877912965350589265176409515253593155690575549089725295702435153490488171580487108489818658063875623720640044833375483600067876696902815643429495528715660754136437173624694456504953839662164494148853005261326993715017201228112686378467125795418122012320789048489528284057620556629191983278926360130231766736446734777278730300032389486897096038908829043306651205833446056890574817183268826657910944737375430058560081834479381697285137871293574488192163430777218254951613942795363953401682701275932086597095436891683198686319825728960457674671983362025349608635976940605154383961728970521308387101142400108541559671664768073261157567880454689455123396324042803476979872938389082109119088001970189594405966400244303161083422454415182478653888770573441726768090644455095008068358291619696614774506855052229845421804323052503909032815699865510025088717835072680182476217855148149235507760901745283872712669166843812324079018792751337639449929979893085591335977035999404139035021867827136957641098391684158171169402106084934305344089136570524554412246820552726185968030370763059251323286179461732073105865926974700283022635050848334565171650619175180523181013336321360587316897839267773394040325234708389766024686425837142668651047195399943537341446409468100608971705606297424757939411245239328597237158561626638277884182078786180797038266877665760614843273764226790179242781962158372033375196536289316788498241119273839931203073529281243036733102398722682038886503148671548418072846055823411347157613222279832031956905349450991874036817741259510540832552529833560354532079812282300197211467572382642554435971128655642286112172827668212026638307343576429599554677507049891899100917646434074709509838762050900667813022799547779909661365690332903353251559782185300554503883470562558481263784680586509695598150626797624820430517081006389447646604233776282236420612258109250106063266414818186091790219210528186865262350868368539293878653351337128644612235362766112976306864170039534113132234477304393312492272621741319499291666491339451763791766213911087441360741051530624374541399318061587563027388923768477734448610229609934389427874274841219640014853763991139590027409841810327308946408577892777069005623241910637360980692671543463740839891389887345947122016410351567753660062648875963833985495074690007541358184633715818847348196040149840420080449960793278462294162906186199694758723827822611144091913029239613950819227187319511160410833988342342047221316762175143537844516149621553507493612858139098311778417847234592990507485793381594032430493315360707988209880403611495201742905652753832594818082747198474972489200286602217666101495963867844968538491441360545221739581237209010937523095756841054465335785246352670842342814086020037798843037511006810564561297873885727661850605776493904709277809758023845460737074056776526524136890928515218007608004100534412905989679404227018060878644425561085171319408997782707972566733264161751183931709030136536163294569584986502452008733937171949442732425121861514384643406598476375266545918059492018549548827229887361706105232896880644131664721179266795648076431080697827998883084684031116322789677940827293876278557301112827166981841448166690813924240076966944635771160591361434871759080381838465943302723376195122926798604719057691233255511034535071593961757287287340347624510142148303848736013254576000206236066467815236927373130067667940963768781068069996790452729711186039346292807424689689465038474626315688289172246605635266755233247684806180340695114376397562905710194947775037677714644894203265106066554030658343570680778935963118157751356700689554280881678950159260975022854985472463885342037118411882091871961082740188507098695377699328324447289181248057635483104536393443917173795823000886892298976455859821423145129976373730411250512911525113716181545285619097330500284477263958702834308576563391640542306251419605354782770649385211949330090251916168962083241057516423965351339334228442955992547051231014803269197228304340752796232497294755366773546132610269865980532536191183708091554851655837317682414933025876809334904251975072897065906905166152300236139873525406050025075890771663322782132593501238345324781581381913813709317956110672490168009566980610590111135265812797214766318670295089104858018273332037844446476902823619009462561711387496675428517006453545990192848905463803484801533414322564465955427156854665461962129067731092494795858749606634755344147360092084278949071343710483209384683641895154111880949102023448220916368837712926742098928077378184921098045704724438861219478736409765247773494024820310220915063252499415214911706756170077743414270280720468918821837309778673522210456215909332237746494812565699607077246975406280803024122346763430825681365169870375146727062907091766947715330234649067633452444718862051782717577815115702138465095677798942190017834443912315662577502535208327952619901056324867816687525628344077166509015441602283433304947562315460757903459333148962585116847208240293887459918833573204464320839903215010309400764765828483116737291900792102042820140627169840394398131717201440992851583095055253789256664131529764099169880593015521343732981250374948818697306631568727763218223890051995268247184681867115149870772866568498242418547080591190298627276457777773481845627521629447080660901094886856439092408164622655696970686427919983017781984263717801223596510468403742388037405136220805683390992532325647557218694254270892436024757354492222486637860951488034847873646498724102106979863930025104303367042698523609641446152071022488585453347947383738401289451870244505500230203078278090168830240082476113561263262661794703718674766235617736158241365718305997659452843475335589235089997700470202687785061415929192258342878701015239627148352766920052680333799481376054793361174513121560486696550885538417685602808587570730369491449428758990120781581805787180795597446701684243089604155677635437539584934692986892844774486378221662729422190771271125769824667257454742191091770412932043533531626160545096856661789570396785301057082063612028495242259772456049341484035070172963189645670438968170118303820669802641406279819377565122595169601811401396053778163013723198025479804772422441744703279884663639638265955293807226252216549746039616679329574082951333278804970241792690488708870369025504537997280576196828012170359706436178846525818445834570286430956466271279823866711612443188241242294289645501626358440634456581998025115739881503242146693569879036448636018857992559210351228124601608080130050431713881468725129733117195304706921304584479946241283121160001896174170636361894927466229367388226029904480925268519918892438357133267041795545250250265822206883061495735648189948237273832790830313517391797844768561506248576182717958430116485083597259358667940189023759223818018229427728094589979905717944824466634240264559469912927961786556289742186683436807945105195725744217054585242799172893062279856074621752085316741986937133948944512619679075341788885369993631000075551417204262598420556824412474843857767558602642792000112974072080362779867271147283627544421766193374587048617054526121236399488001279794351310747061161675124415616146375790564780141096760511681413103819977418870807658716774528140626017043256103792256448770737508004180602088409096615183573383845633435021480711988187475902003554394510782735028216121773813627408695422967626053765215390313810593248627428262427467086639138672933472969751402484573688699766932678050703764420660387976401610188931024497069019207801375905038674375710643947670693920556623448523414160816899817624734666374257140748558952004373870738609018260376405918313652177225251933788396595621863988950375947602892748915379952978585593073810065336719453805792085454125812105876350049249040945681256240836918094115475654138273859217750687269923061006122997202031514835475218294883050897265779703985061134898589713691331519047816075522734172347701501652576184813544717093714813547889369784035040874366581587591725645985664051198153479460484145306064989700185287019750751862236198623737464376933648059118986181149888673500891997064075544624222624925865278814915096819493134031671381654944216325780654188049656065268257088615326818994750006728735810198593916238580487762111218496343489565378186025589417624268035350213233554318049192557120242898520278531052460249438263619610326016842441625731196631178576103866111243983987089625912079877805443242519830143600773303747856607886764203730935694617410702387850641591335001814000891854257189317783925181729432684697684034097863718743839108997726524657338946339540531284787650535428001380796776913138182338398955795648189815558225928351972149160192635432168013412974965054347168308055677946344977968252605558305496612186900419844867606572942533480840068015430677292225708556442525073671871623542936540706604998006223639579836263391822804896112286447862138321585388830317382834743253215880867366450114076780682118084291074138679650071525417055833831975772151501276388166225598249885115846465024742019552928551736698192354819733284919954657709505090123033714223639142623346725260191478622506264622341929865927542066878254370532910310940690170650491383595130816744400710074712879177241360384100729462662497923272498199050683508831144027781685198580396757476704719720680720721459586136526696976560087308009207254351180737351497210744283211042174759152957973681103244653581640765764725702869682233083054460081507085523170958748476578421148211205368288672450021745745907737258772713243860800568764849640719769284809481833947663078651575847207499244298187201687731416193029368934074072907145318685585628703609254898587545340997646973925737286941703787501741280813434856570114803715470696227439560069359180739997139277354502454377358178636663217428067642029496579716517367644382343857785480910445861137740687174611705420296956920011011501871497497935710086780430596941539052221004672568784916825118681350157900549439931403846159526343557230834675329810348665993450219443859968308461342472897253813885384077971028970493262944353058927367014530194941244207219694652259115056583778923630483853181133133548722306759877270010998120536610501295953628041711179743841854035922247831252698526235767545888530574532901305844168295987450842807544745550837730840632203495947491242772359010139779794346368930476376235345593329975734599374518335932932010334955010932813208175701523559009357457604735431473649440294775350859173012991671206121850792778895490384734740426423189424211616335727214397398733040470452114428867356045107922617880345245930335166749251607897772120339381743510300324358899662768029703146155524671324189662755251108559901063242615171348461143846462356346095602023775018783848560327479921043814872019200033651831047505850126922645848953992996161653770139556985896980224420422693706189503891565010621791489872084907513946620540491127856948448343698398749833419310885098917809252751721511630374010242335823301947575214264497609582150504382716919495541398230378473149176374591651514507824364974983863537323415710834607987079270660557044207787758316970914810679431188860533759025401114322997169293189060921273194270480307628877011099249558602611950669718843200080588210416156233525148509504591884725551291102218688410012592654675970611843922399274977874491507707789615993050419461890689712014483681416847654283133730183841054567575482710604083256217393983444694799025769374249927165851242663268165256323669657690299962872349666864785119493735961638668744971038646301035545856895115818457462771511605760981385854705164937209535595210404442012401128012854046967205802204082236855271421589497491247836956593172661227847403099233259185454148528442619467494643807784213773947422247860251806771729984510145181125082575955332640770352341633268838738952424986328612457378450957809857147833321384782398103665201649331206856525494082483477754234239244753604497987422035282870181095228358289729711431801037113826771864144433512677046389377461770678585751616614957810912298287492335845753192180496737853331656567112964297339011138703821488068640422000503366102501934443572110121151095569251357697121433089866707774060407424832593185019605704821139939831795225791798509978244670454756100065816755955084546904281574055238163556488411261232382088717922413706190962067725123858001120507054229731443442990024602850206428995238701014796770509513051423481804982972032904667433593657440079372184619646828329692086023470064554284598982386738912840401070888877146859437476108099682515783771709215071607546525590973526745118259853881428696108574484865395409627910585421550028645567887918579283451543982400221461335463449605525130934783779128004553831338656063833881729123978965497005265414782354645546080285622239122212127519472822148662265709544050777876268791564821572821070443128977729200278080478894315068696367335380053406948115838594832969289879716279705782182236485968916463656618765859544190527122112090318689434999422199990861051338052927749018293443786384932404435995786270355218749368034360746416093413393764901858516938111959333148031750720324394739496768034398481095404893890701835336944412549921886032332970691338830346408153470170702082091189938240799104902772972823459396938814925568718635732508823412917136619790410626862786746016838730923340604920219704481104168939999201238652266676268369293841622643306921705950091422462468008249328122011111212040353112178354918322018752282670731285541423879464256255249640663125130548690129648772313978520275072250887119143043057071745530497599018905486457022240709721409951159038201120085019246103154587597390842940600503217974680115103247371754965075998713013700084050762770813425844541226478677758692347781781913480317753988186479190387142533717047518161266052599800714057013379424416830259623889614579703307699217800001312418777697378784483457288449585469348938619570538311043250596307787459288157469560908669285937782481398264345710355124825787378834553471312984194031447380696410052363027893246193361248228472392585985903371594317449591899053072887747966591870152306876174696631751011775403952708514807018101318953615937636590356385483243876096624527636433426605033721411799926057777195184488545557493310784030340059190666191182497955488494244596617416520859352301683845321948579242378065415523779118616317553338975520784290293762292346312244056974483844878551269932359426011330760404625075319502151705836761541873571271814395334735758418755651878018123008080847476876204889348352616850395523413774167462016882927768952675352332703069966793848234337039897489019475478263107032754962348029889741686993646412817957186652319535056173715651529937248538927785193786869535961836550806974602890914807891127550093447989976983860479081842883930161589016404843116984004881295879819828709401295140171704077346307313482974625781034368848483613417123210417324485664269824919167286862500488403303878074359757285155735068163006937870606322462246160661824880144302859947553511202102574588550376029758418730869423888340270302656371532119707954374884267300250735749504119206293727170239592131223582204803658779005170136413345378332324346844489958316534777347968427015759651219857573479009906188350775983783284899192649088791868345724094786463500382315872873305098132045588945481746234056884014402638500968952858346417050662783715283947259338685392198853686779651460984018857905392906967483515934933941451953230019235535084809209208844727613164638948816003721691779059065306762392546166312103835158439669683524009065393004761342360873050312108180625445718623230441611901359157644125255206133770241637319319489885662879609805698052610986228233033919137494606588147536529987830900126698804460346877312751550945641957955549122585265211927582393353668134802316831073910581963011868558163229089740819877771856917981765438058036672433613989169813686567562003059188839064734675728678322654332041541099398996161840082886535356337157344365209341016963569698012128262920097800741509064021335221876554353183979980175181172568500031812919446197969574755423398113591027167650407449406425185145084667073234774099801369024516025163433091725284656545533673120344764152073079366750603021188066688582249450076446309174336443208658447774329696195085719982316337945160685656502927635313029381372068315909317952384436190096722930738119499952576861608819828415436512772658168036712459199390640163038835867242994968298230671236825885189133037625415751166557654623250977239667900990122782807275323294202967803087304678765113989825592124507860579106246566536736778166407009439110192496714953855088799599244032837070140192033077012576705623985186802091175894725846745635208181739898875832622933572658009075466069311182458486348306331121205729810105449836652476602130984964073114534024376938660604605518775052085383743320725526804116362840666290865032805228908203255695030981120333450311492298615435742270323391085388876146365218058104344111010866776622716675922491556033990287552787705123642999084348394933916728644188754737533733222601014415208154746768793776103393353721119521183292503437821636275696907186712304327105773102357311702326318096765947427611683760164549190582655313033157526947495495784497490585650993792608791804731265770726615698178036525232756244119683689017029659268817170301397534474434627090557970441486157903037930670378283107524553989874654205201740637441291334228326568700274295919557311072923957420997095204876274415461978923037460063942246707139625477233588248790298777507143938309415048148232388067935791679648862856043705226813381152443044863832896501149064283762230855862187958392564050532829152114546381686808875837624855511721664432383880735664098275061024872613725368919466743445688211476613681842107437985961266232809900276626022346385058558570998185357144376976861059829346308505779408548321356671645939050016566420245655028381160133882014717812629722209886108915334556755104148006136825570301996595904301740985308537197247758239828826445624611756722448697858589086982274897657441940731173987101516898932212254920721795533175048796696895439484252775989210204929470351273143242247568033958265089223356446176175732618793979823730626422582136105701919040359752282364033825762138960100448729580111650388794535401074244986190231089619372122580463888200502839487631443695618571464565598606783128001369167710829163249814831592782453694672526018633533027429133034363243409325267364830896606378535096427629582289156221246276401704104201577313683694959956406634470198146727902097939712585326515334566014417746495000375447254931514044745707987215033647507165491422167868539251222973095347539300892071840362765865648320253272159617149581026847360244997304977052138840534356617674904612724571237682756396555047107157348482780810392553839633895147231312693557412955041407647349719578660779068736504030454047682687768134224597019171212802038202597914536207708849990523612488055532301029290182285231866492538657442543540850667423222554128264911326352592401551801219700925654164345377249916777726215760019728598919401216266144924824986078131596897600692999123121721382546970945710074193034034116721662443699866772896076040918546635553838473985514428072678840841876254399209456402203671999363356313834110980643209424506945352607350757334708694824666739154595364243008109661325491927922679523967485598024624205483957885398625922767206922410893149742320195389942062719017302047210600850633014077360270312923755575778481256278896860046866042081024243946794058536842621283043419165037776599070962406881189429636803751494507263963718024363708527365444822972982335103346277419199248795502641797497772982354687979528226801174566824402745381995432600199730405561316631153011660132098448649829540189476621798089771684704979863859612567309891458256622102021215450875690548207559278519283492662351683315048283887080836714998720271701198431140504957434437066568193351060982925868827575982105485495733800809479155748092009717966206121970391102910565159993150781886504221844514471820779876494707853128079290928897881084122979685131077113826311710808995019789945769545713171902682359360700860148732916857500252363833984657580617467090171405364872535921451536408645782608962337422191654808657255360498303925757253318948817252162787492627580287996828093867098688578547818075449286262268431037351357500948484446478733558356304424779893542219564550578329101136943718250024440817274506985720805603362507923662095197844860922022817891622447633966198143232202990824658588204433445997228270290183102964903037461078755887127586904923750176681037445820312575466986531488461321798502425789575386987991831962049738059380504577877032466775621809055865742700140483508117472115549527402456387928101433692500062282189456228005977391789272231815114940204801422403897240655846660564931552933248633946250437968531359508071412428443566362659151229400548521114143453812827649245968472870721431559796194390594623117086817977678977918287716529029621193632793076187560963873763100700810644691884406532079093464088189422531642402759323407111619290046869978821158185975512202658871922708569514279410976125284699810198017262177855250248923599662036054662086336683346856942444747198000827287097052713746997654383697954532825819427807682673681632656317212117699372655600638010918939803346972869626424277339071551680968000058652604103585926469210127272956144483405982406081207469330693621827639729338587622842877807153225705658557253332008632656962469302556324241859835888855178664688227695222642161542196976826512479039225716433499051815062259462651762430170949029233243734826307669713580135660286157155223607140336321880623269724217156098622664322941694895852980745243918908963960833312045436397481310300539703758510734583619452480156709488566622098694138303245757627382002333327703336507461506355008341443670553115073102601302743524658348850933364408545156330110397392509253617247721491942382670841571870464816968631614342567341558430860911088896871089168331461819132392102857217320578331895186193177692263839661233720506693580266921599419356452016612908559872413646629349088404970874656754330639215021456737499614330275660931299086448332086800285446744218944802425828133500921489574116999788759430915775914531692040358831420539562264993336218739778971610764984822633365221009245032496495503618291158865149862636483784303579173848225710473831031350252271208225602560300071596880201994368896465467576218831610883904933391621884404038829298336088902666813891022490219496667519688484071533813973309884454931941700310530069148726885214907645637887084329412214663863216132626535236850230349280615674374613931154912164057754471665529696677464235067406396309134641756498178733928218054703066022951954714822154355564902271501974255765091345428378144783227244501821559130033301381068531152866674386229327827435018184257099081115838672221613824582882712422882816901924083993715255779282795378514594763229554609556807041931434773703071534280119186715934391326883945605215000638809377632075082933782570819784814722017794147451210779844301901086176754015055389390597914981058751772903411132475475598503712422290961857449463030496884630344795455227864330549459751157082277737557252936673856811394952441173788167781228621416504040724700213340815456346375634809284622374419052038997233088876072611983691453071057730409331416591243212587509806315605116135604366618849587195926404948946971529482147535651972832907791648257889383890289604198565107548223229394970406692271239552513076615162579551615687993796692114626034359648913168895409935629761870199477137909340740613763427662437999898117028604027514640866556679635604161595078533821502303111311712212398276281267020456140062625437594907014131641338852790485736511000710800217108574219811344056901106413710670307648055599793471304263535868605164649950066672184021233960473605607274224573559179442765803148036392833019763860463854108027320982832633864621557102947294789944997688726996847252481083707067471357766759135064695651747128667773619537676227153295520949633774255198091560008130680809951078022683807753090287576745392007856676611624077308610173423193918741588843220586947865821279575385586528714452805737774081853237753665095536772679034468515688772422958775090822604505745981028080928112315903868934211039116741552934437401966477225258026365967029526035719204071353916690009686981255563738321871201249645009315779293977136114139007646466460394216213681196016995659569347752926741808537074577524831172148324312984636992191806486801146457029697093443488334976325057256163848011329473496540337989829147860071760462473863416173521469372144441928056861140471290349047961681501397048649247115193382339888560657348699511846384672279986128462411221082274341862233945682381768664802243512061505046517390075028450460925996736947715323917549890058956033584497168507836557430689583598068665101170714442947771078307082793678750847295507776387502081350635786105839760301618427296440357619865006012749601338363977780472415537102799633768968584072697207801795936052914062145413930874934448244071721970320237862418442119200060748968706711098471385365479121034295335962246738565381109520812323174239505579921133498653757727958808242095757620513802461257854007291919949909767138992189249086620440553031511435587875393323496992481978376421890509510803640959813620841336703741489912056353947796862221466325700261638557639081259643523589006759343915075814104454465234448019596964660466133827722218335463520943159283312042181762038481046159031426761075767488198208074784326278135699633082389291204917126740699158016298892756849137862619527363817129481920751262074724136971088744032355321005570484417499466190001439412476738411825946546208901301495623991222635889566636586208531496842118215900784896933923967602767754406080600103393737396181608215406399836660665147424531580220816110291941387056648570279818598250105175649658309006937116474221788808142104082368859151639647483598940927277745241657902523209301436286897125531041597803460286267758142010450869926024883941259198019682691498362716553247693559128303198746853654306280391439897969316348874408094968254881313892995019926473389810899474248988248933156675341513122759622438958485117002468495179243682243157032774977553151858911391330589521946527296525732421328945319870699175706995947591356958381628796035999181543462761451867139787027421001158985826937960352027195480333285591929434919793643515766138047628067061849924704024359341686021393835502629274659025824699945738040053924184083217717846825050232874546939193728587434111137763728576261204624272802446254455850257031540667526071234439184369146419583398829560252785493410352558700603730436575112472119124232914107724289534193627219715702795159000656296866749804974471521537255584901217592859152095749052223698138943478762160775023368035947664208144568994715262899066046877084912954549776977133525518798582582242228960482124220313136680517000049144295591066632924458393489323798404945028581958412301491373944531423713334435445697417517450285213543568923427151364388721501367302184035036998579609193030479908811163270248882640142353849352112427145801660349468860933244122137445119224987265121667911624502907246532437482449503778851825536176701033664489915345638586410749152701799740687693362148952249979599722800608601479655291787904654194588804068370492449929239124199439915991795047367978437799519641430601554737306283322483489175397792644901322409724651765195990842257095468807810129824376259155888204014766136798027210475151818474565713150624875399207062502619937504851234635684056626613340803834780349054863034222859707827830310096345380051724877576956593990281928856189430501456148092599344713640654690592142101125736194782642614893005821668915036003626734906075518262205937869653942490595649042051972035052458472472291154122103019614830412240516247502760923507848419500915570426649645641812451637427425089575532497236142067998860177788835817849370054356951503923423600577143728139097832555409150384145028301680865702864775720878915497440817529131282080599495242527893727806721978437673424966875947680719016341532151709506698510561568946190342484556222937950939386445458706383707928099920176609194194913686475098645028112802293585150786040993364294102907356358458888056130985338469414041555887036033378801331756430938090520845824130347497058153169537351633963654434974335518407562927389874852369239711038834504682432093332532212225159692285625103463759806807386835337997089046683405953368884946813181159816260152643019052985648114336431965975972894326103294581904276285869535624571407486084108021475944240075865134175082558289631623126569048379009922876540180609798771754182220505183387629774498202110506122964342878289427620431792800443286768644488692525371549107920785632212313626282801204621007719509677998521829218974707496269381333827304689988270049647716035870592720162776090590683216131368250659048143303926714907422877435426569021021654754981161577381064774922427778942047107094421577630202226669411927985112572314674419882619914286714864702516967415907862327747769087509191459310270813100375881151265315416430128667297888355586211278071222473550811079138781105259254689836659838301145719587306232950381915787529876873444126531859926848206338721066088478598555730305295824662105701391511329059823095606182979163335265236053190818282260523900733584330731836757947620442833710243965334237155583804225744314475110015357826748648687212769902313850807224612484912344078416972540155595329038674746199569908058555694276064817801986463471550654023317841585333712954394310263622816205049883195194765797376786641367695442505055317367237528071023517535436456685018629640346150103494286512154531859401346126099836868504241562141487146497553280034751465929884066476074086651698843962709975479425653892348231722575187195876139145444048656141829459697470027342966971801537069921611785693452469892544114185517031883939023710513875059213044300512635247128128473723297822269947700668119387394369030129442484697953603605711515239277915106983752081061126776958547446568532284184103488400920405272408183626023171881660246883934639041876426760445256326905596656871978278762222551789124215498375061840450748443904423635314924830599272590305445204684657882214460632802673731978693953762777926356762373259028047792591996732856148804551346889770059930389984982438882310626546141234914473229993947868949378433763558985784525340614123026768103893864619365986682831244623782060653510516491429251582682137803375877946825268396090443055576240459018280822985199280936821125312007836077214640108054034248229236503767780281888346227516072707520869880457261900081100529252421559963090106025721221692357412785566391064722903350787790229681959844397450217622334722852172772673080990981045957641531992670817626975925907584081053821655094001635722700184565032304570378259009197001066071080470420153711909026800923701374313297935449642351754520047400946664056753074663709112556050673590609719695163043310281550192963876668521791489407781199241757887984347561972228066615554491918866628341490786630273243051034404886974902161655458815432956119680972511354482213291783503514974868889975633620549045162628915876289074289616091980602254900374120949700515391568006593597336611617626513316673640285442513418842549376707204403838146944216220336614100555427601592895773420441434147466676629086594292681455835486750220788210182724502725412817271646909944451190746619110509458605075552500991428315541916884554037168671149030757816526689193548703433479465718826053236212727961355991543111632929960280198543920289131998593189368440009634377261451058738844320847262653736628495009784575781465902548686449893323267390195251506289685721471438496474367495112707027500649750143397413968147306111919975075361841591296957603518547820856301691244244559637218496470649590632621276690900794040861405272248959454292112243557448239525048631041240062250702018421727888267839468970832223365044688379235450299729957844553720104094092045794310949796984421357463694082458833781111414807129620935494084121676720824081860589308833240537148689038455215452254928160924099412265684583705890532470039819285791366168704903004914995931159923718559569535827742405946831414370790673022909120564078107534505122764542254605444580597617004208670735804585981841214225502550804080024644275648531373623648694212078589127195462156129291183556099146555728221018401310170049464126138838332567942220945356929284746747868588171595672795234426746067193738114014967543085162608392605984035474256477749079990906060229463932837965196139780608762188796370125144283966618685954065259130800411308903486304737517292679586545238366786052782410812001484069462282383879779303182306682328952769667300326128198549241964769116637097163613418603103485776201454471709389648983042835768161048335594422745049008865447588180406687836527471950370807485973269840272217597234671847032545020351610088599008289477447977023513079071842758568916712453289846811855207672904065169992320081626193202967580578971922261032046070563213033547863086566302661172055992197176543644715185641774858295922577512063466542125489300197908870618628206465438577320779133918800005831284745218964576948437364772124667182854921232906271205108480986194321839771482729100899222472027392544403765125595979012499843896138723808492053165720237885011796350001615509994210563704681477405421092277439752815350741555796097528688829780273353141022409053359338853749719124313834452196125462112335646759422066968439487451259870655557746378916398206272773453122416102634240934151372732462388988234830967307078535469938079009557218680677830799707280585946048161001171229628473721690188366588280434873156706287280972291648724113654590058210938936213205561307800763333220723571223701896248662629964976682268274231204482516364303187039799824810597314830510068983163679488562537843867788370297173425215957128190660845900196624889136464427524718539256139767435496022058011732430079178765147942558752495211350014560472494927320715765805758829491263729685505530125114080934450483495503901260691533221496449678851269498412074342493217366327692184455334529955386548772062060601680015015701671721844437807218733465078408175090113729420996133336281889467959589275256876659308870673760833282480111754083448019889935582784571567558869323705617535146492547588531950248797550358541134050100318167791687228326069853963648578445138606506154340060269417086602534672731136784079381529006836461183310518662943497496581995477385807133795441525401160687367821439999215875452767957722703827425558952283893392571364604793196667069510716283539719127756301401479933882200367687021230959265710735761402903249394399881615712555111744044949093995892822289137830574787261579067065410062971582800741015049803120141404694832069020654919788313890876570890156693795194142506422724763564695808305585754512244820784262832986308527635499639654661436889555509661312696272785238639674719313262913549791230122002941270039671341144026011225013841398957003939956481660815136331726162282870667125750974552531153421416893860287379057192987769964076226828135397152561048833521091591453213459040921386265019540766350607970307967619460908703676469199473135597733724470296099523824003746594510342189482859715145550717379786217964503927567237470989251092169617862812806470226565127196513761942111249925311110806527356275477465560174781886388750479192097906839632501337023961142621653730582007807659352336921029507555102242800923691910445192341855647971857141689090129819657066462623265086160167444606846616378932567555968657589881321665578548852586309443430374936762928786871917778644869458024672579018985741392216508438830309850623136104884046795238809687136537528637888442990781766144682349956422627271615004257770655216339531201369889126905666941793164340373180764466651960834369637213134800995626293723836289987110682980161928701007402532032100970885427245750242404686185281685203084521124785689934562788458905099854382680421380772924124467508901867838722761254925365224983921913640574378968986669843956059463011245409175794552950530279177494946313939588094292465313971644969014691093711408440902872207473834978258317292474732121656801768770517703238445422875342831045252487083471694548055954788560579579855237525063833988402258185441185083431257284547495094412710878992358096841162511203352573872716318848248243774408195869135755609001437909107352050196510802837392043244853029761187368827949700869765009036719741656638404213071729864898676663950927689982877542150820845006942913726563726571201410209211516345437884720395696153237878083144882590768691132209042045172565987254552521815300474867701202596309579525884701443535073636354917029959817706559132160750892860670012471800178044303423849576590859829698513113064861635256635411880130772819599959117259876766342311951105389601062801696864482441559566104225583597060931714213330133640489105195673001399148900384762312918244934441930510768682224407021085476243860572921306038846260672520637774415688854416593552237456791769255361622169445589618655899737951867787091925537555424314482751516114617911372611772241709255103959338967502029173153544488658001499950497877096972987899736929714150372029486303156303403043202951785226384888833228959593720479831127996630298294448731618196684412544266542088256214705644674768785511263458662048484409528822247265048431814044609002992775928930782980443132220636975287708107469005402422132062101046577702879538024375390656588548576082962465846882439595461772253725557377758342710193124442846416340197250348715880703564685234529117319295994851470243541419270365906044861757200419646711699240934945928845461827205359575002707228007968065131141688090515400397371556038753798065942711993620854377063612026743205025975725692692697790036223206921086654895805749948348256098348238204125288367482938984393334807589180908727993663092862861202133779774036181894120866475162206453000448376256348412732368763296494343225312904419222307731225124923422383100909596692414024239444770131022848457544546423329434578128066780031069287199899857456751809747918477922807219190349857320786371159512565487329283338406680119926489803747208156273454054296095093955988442621642996193221471506051790704985948374104210168952234176513342423615597948097318286137604494307057069122973633143773076998985072903993163568095535075680341248890704853556894712259025001050799971745768436995195878772740469694382918246786964647968507889196961519503464243137307329007417420309252441227570337429283231838882553360713967555131510732110271520083831738797524814074979026003019934051328424536775815691846490339201373347845152773468015123633743811667344162412381505813188461857457763574255909747137259639079865167523621598166461945824511435685480265216895069365920269437255299191450984208475428860526109875223548662022503954811558724696312929552457464697232749892648422568239448247735886350920558194440681678317350550186059975677224550851904672783284499021386235692640829256271184792589875417753280572243614160930474603183241203524982471680858552828257759519522346032231110461744981964592268851103814820957106329166619760046111472414656105278397457192248849373466788741695024910678957726272082057533292445203177026093077070413986252666235912109306732896843947369093116561936011884549293723687368521681298148646364927079217827435549283154850680691570408596226772636331876177082677397085175863139541872070987404588816400020625602142657659604726634582364685071688141558960607798223554998758286510380237449186585601448478607618463986921703988025791204906822173747699304106124536856715967748989688278378039568868015107703899520689169806844387435655146435458743775802649436151658626717656801918722636423427768604743070148889532118575262297328677203222357765868313878352606758195839660030482999261895341955354126914628614018165742800419421027172881165245208695330857922224313662703739404709747276647809230495389898008469721635083441394913427020693959531949681778395572519610724194659060835539698773436724957665081098746102123025680425819672043504730922567963762714059466041339879844344672331945548986856078105211634645632730377356569829829556779831801403191086165519892350234098878897736081029496364906940150450363860103966177090254663839764679453916877120994908783179679908769245102610100949082711024387156444349992088036800026923836015888437909430033207028902343030180597567097551281876467143450047230455389482239330593177591801004573450081599433548464440579505148211019499969290836957812749300077335423687713977686363641626373891287084361694870856593001544826374389289039034624932772824407378633277118948026649506858091406161438840645948985149416926673055481498386648580900660668946463415509665718698618881880862901801740715378286457225816755374650943132821085913705460200141748686972071639176859150751049573032465573518943047944441943354338357324157976171016617832717171988393846500972598760106117858378550128407261882712270092132941148302446522194031713751467306437785521189239716107835365163882413690546463941193727099151746613833438071628014072236319213847221654024312044190392436195764795134734102493060693887612332058968175548559853710201110087045847376046810691167660994618426890120658182189923081940100172085614876921294523968483974370194882581302225808426994999938866348065241347327099860871440812448597332465819293302622015488558687630340634562865877343441078096715178262336876575662419569168323485054527062868406917360286822436222522799780776014343113598150082842083687833924082431444931345177927054230026501831603836370542221225149004611935349411211411545339799447751506758034483765175175283695996196275021588551830262501245842970776780860597779548408515714780887345468597030211642946394144393056210312062288911827930083312531279502625836318817454051402310918780051307781420186045037389657780562654946943414109976589883459250109654669557192194715798803149867974005276938651307868161154670448046290330887875423871824264323448684742378088658366185934171574065036780380754989983423997740027589952951274029383046137862775599175538817078127443235526935251631537952688688624324727652176475570130725766680252628035762775724735012732558411138257016329847526527150633703591743783330494504892366071801088629264907484212781311025550848288126997851957285698996432137126622322810181995607720480963256062539088934096610808397467181082857437454455753855028534111655994503356861026287650959012663138581542023853030750783864278539314522458626030198536973952792068475259800861566122153457943025072461476295316487281329044230341025263441376451445653036406603264924269517615469571700997339046124227285259067645690837154141427544821859911213481807898052791487547602168471938169743419327301851805611450384173433312893272735098873084459320655402504494268872439630453620053431216680992065691530638922768660655566538830447087414766907676857686858845305468791296794203669495083135488250639452058640539402448708054388280967367055875139109217795365230235258603343103070318528668663320951633202287019162516830808705080040826215082802630536420095087323397951466654805243471646115781210715043156925955999396852357905015634373466064780124258712311822190479169153454277874979874259858999012485617939924014319730999689968686426627004105309255062713595770133950411118070451219223484168706761676561886493790652070754030041265577353992993463417460143488687935995113607080120103815223107179354714062897823464754468850038389872857274463056933528356860461800660750224404774101939952766773225141781040170835623306435094442844912068446989880541379374378124824669148686107254737934024245861190685586902489587191163542351956275163024868243075257200111884751065510759679658302609397953117918900519422980057897828399398567686622791635549145493655416154638482613459636176789175546146548099448824785953970996422031563164774347960801633179187302869520993377957588799559619719548560561468129391849147097245243358028236800312322158651501135600489446063827707649067978572712768082720057890615134794254547090154279408427507081920815895053561380050975451958110049688318806624409764879487975607693712116669114013066681264775721257180060932016181314423971238001212479887725458194537293069163641148384028899234898308845310948470396513776773861127787855496997284484275558138399586411134764522478043995391996465431729988723405902926951981107745132794443444205093457208081314198767778711354003669936277416324043301396152396096932398815876887306039047923938494851932007490297722012648747802164536321984091609547379366354652887506320034350485508749381917038320314091156353914829418205446349648933310854403589923331991577710383983289699166041595683576413788996999204292060720374496807227213155737920383013969700977948595413335970505555878473815878647663884046583587036339530405257997818343286552671939279331323944001755282528649825589870887085072291326816687705657701708329247161655843130092485676565947579838940043947283486237955015040025699230607988119661663908081933950377881697971341472703003321540514225868080248876435643876539510399670569184973188693411254584663899352085592825543136703875193776716421000045636163814316838233228526985636120849322550652108210852942279991915109407688410623843659195013707757699540959547982612825479806813033526950915789911142793825425107286826692635630006193315390124701221763024361129957508586311629691965189186261031015373545475384761280600553540820610412248417164466887539518387050332620983461328078766067661579646528760834926958912895948802640601212377615443391903939953131539805190659274511131714057182784120405258066372734598703094403942202447182040351089861986145628564845639760073277965197349642161709741811316758048703676977793895134898048737938713174142812361613939536412630901068715306139322118040113818530106828792588407417032709351079548089818338325149223855460116241454233991985247708965428690813195702209029766944730214541081699499562341453395469583737228234251782024000898612851850898512213990115523062576992359613490445954684807190785416283962392946939770322672411144037854552183008514960793359209415613436086879643617789614402352844097142525229278585781072145273963434403024458276772968496185102502395604419830190977054916671628633996801195637493778245771254201944750314606458364653475251261892146092812585109078427497138500586199872536063029838497448669884683566205253337695514125630711761787578123957995309094018010321811769000573890734210620887356210829310040066205412373258539291611258753188626064030750970960302466279418315724668180352327985020989849655795260068894560202474227143021565465791057985642230691191520603496063138879498392270277260443269965111610994076680192104159546332359115569095478272590560486188650686853781031980984964309616103658591657133369226751531212552672361572694416733165268821447494669107058717218550168573221269551767239361857978250877041971743265661865862038172054298931483862415634690272685176064346641610310282335510868201448292809792605585733427197621174769737642525891034572539626073741073735522781486830336083708336824447644175559868264986493146601923630544098306332715809128665705868908634049361192789767386701697181471339632522598357542826615048292774335625901015254797137122927829825786347747727138268836812307535213023226978996010409573504134987515607987302298451128080620870270210992425351099910411378355586210933275584956264386779142736464646463167942702025986844441573088099087391821619856806992739599325180925443827530954106972892735829495421174225813184044827712540338121969439713456027011349168484420503460053063368070873470584677111404816613579362344741463506368171316781373758493993560723018680747018037230279197890412306897924922395215998781177511912211034932763883120288168270544316693915667290623935819525631197313199807613166164184938262995292133178715743969526919113366570493115309985629895925084645611908139826467807118283477173064256371561089814763735920890117404358801671800823766298476561438790669255030146578329719295779027614142261625524753963390072451265503292085124549937908421405854512278637674163553057971809249798245410320615915165085288464185917751360801092600161816130634394809669295328804894148276822219210213691547428068466806524804460022095090935021191091053005161850052037775435634859519194917820224532749107686912072012695312599047660199632577688328087544407922818803873705383530452992204084543590234986485271896942581698420357815509572163205145858868540387709981828553721263686946391182619272356602504679982349632775796151170381680663633517796258871527178703083339061299258913182401330070655461717522674569908634625942754287411681205527948202367071580810648738385224320931364619684849768852153330736820964170429880874428422911010314191995334092247534003051694859107828488321411155226413532087247895713469252636017634813239206076400798035328456270955665838662835667884008442168156191890259608994683784242238435436142765839325787551239484349906679374468187562388541952798380245099852391814385997663374153767330138116864076827888608872193594165000050813452385226154213751489482626667851241941857917382027209443120223743986660394683719603421364330815246331862361545985505808519650654906435355792283653010194306147644255254771559683167774651699968447845550222022627494758205831596004211044701361570744557970429186954573802612236755097191853827863044512019819684540443345787873270438544709873109454732755576895499736493049378064154602082971620553380697019021824346581525910771572322724667078226885951375125814080873029774480956951609733488617287717925702740328226086626942830702061891712734355099252801255836633605929871502684527371649113528065748055872835445736498091186119159169592700404015758623211971096418564481263687438742482372702160668474809333451986244601868825753905518007472000778731537461814344248461904297530078485596405597937238919712565076288983784432045561293479434841318764440486078699629753482082026337920789317708559762723052166208993143965620048645010851557619959599011931414407478020391797249416610102628156158314811438456780753688856765370548995218419037638216021193392990638069990529698305559810699226169238954138662617693420254719510580768960674882689993894612274367850325787985172164812829752741359704385469456650934581957896505931449581507623886232903108168020659641367219341644401581882716087231876156944153380103923654671033946331485183152407476816989170240077677087752149051472108972819576695824889944387050985015417228008275438777202808867828311620825116462588360005444316692476000940268603859909039512409537988743871301108227013635494631320069767010161158247113450338887013501914274048412839449657028903538466219570000950230783218351993899360899933891236368971461113044859360754295898509875917191441969233156849928049094788779113985520199079877071104194289990803108798284592826012241526793707270354356928132425033128071724697279049177724723330516323320966203373960851656959182483589592031701308545448623302314201822691502537024278641772939643899529335422748043329369843411427407256255360537503423918182869871317642013798105286239009616254888674904867556601753263029391800317620926313150246954120096645185800999091008012500526168110274108594416197555288789007557428096688262732575759452860947314968636307850077530847504779865756407548946840090883733767949722080755611678962785025187029212198085562813395749621366563348246981985609489508984208658199009517457716522757340415672997163135207498748856879382469180193863944280309096904327683191312744435161993595577170109199501785594386054536517382765534281054980717308326645700266341409424068581456825355833722737377641423625315228288571218291625111740155166618207742730682197079806844514505937615313597768377464682534757462096228329023768894984920291739555559029652415681011553961063026940294912411099672094809251305599548157694915650078656235223815794270113567396308334999499465637943684698792226052040160520842485439782064937200170705748439751133235723077191225402685400157704575726297554828182272681272630179532949560413433496635171143633830468258092198458911124286640795608011003697470472916943761853991295851074522588087415415305823250119375782646040163393789778054535580306715703283600611277062984067471048274254287885953203776622745053059878112141669347697414001101013307990749377505380274956811821263740223752839721304976294865291761167648454231336105797594903479591280389156777486178151494301248040502615332069962190358027829519478359051321997797504116595605045066688634869400718170549010986739058504898884367556204426373403198859480997414666810750819413465029341537002473540472880202850583561035363077657245005783542703179883998990167406884385683912623257955029039102287423669874225154348753894096484144703181598587358069698156581833015789713899730565362521887930755728460725715576178435317829527713244871280772545346579761420158166532821825911529635278478171796018673855075879273756166636934749180126480842541899761456016883460700469560074370194528605386525904290585242953759421140932783149662334190215229725812548481048647707273781503592527916740929319384810830819178656730839999825275924998524715002026232772135907250478200162686320742984933471542373565415200976685247470417906997442255988049710252344256370277903761732321075591305224337270066413127675966155884105940005096344069211072697389572864825268545387587774758245899837497610628907742161694499296676226016298469087936022638045445428566687739414558355587014952481783124739295764141630614629776646500319674990631265875302378792353931140044290738850457571953229901898057843692752779753706231979785847858261669700650767447022841927401228189586852612594908493666200481035503251442060516287224067911398961080563037714347992269190848729292659210895334106461964995726841131952462107543220782920532435011551317063398944834688014735216590063626482322979174327502993985689164899953847962650727599419042367064870817626524966304341626150091245008679424233080008257681310908168809034735338809903724520006990805601601585767695269723567967835933361579459746830394153438900393474281769478262069505148947063733083240779183381564645679321741496431632152709892834035464625478070488306511530699904776033937992713533299510146945696980313453890805145066037257428016476453734034207059592585262414459751687920669428380806080146591356772392951961798141025836460452841671890291703695945211642127957128514226626566623442681403190492438742808306656995660029469254795346333753995552386340273806176193760086114343432723619162406128209226403035264617733743624138519852664268470813118801082261726128966418810982314179032685632324039152776662858555709408306466637398774353507046264696375792967733331668873379501083948708314028455747075528279031920661919820267981321044526104361670222943995842014429224586258846787302155231226560686242090041751326456620859838533268486112929516069932671701087742412512354268936665135665108995129632760044317545337083503847395624071566832298529810034312212756482048464565037469180933757657642966628788839831192907203860700380597958454281997288095822847824223667281853713630552650317732590140152322395173996633457010375870252323913240849131840050380718159030416489351270619949813120082876231348097109194826314916793880678018124262089482641296905616715315618585498412132207989091308533431905739585540628217672519592044701193162907467260808791682676968024907006557397452830261817624800839242461410607339459523648497583634973804630057489367236867425051655380615637081258527836813178139025248010840424614583005013153044632247967957677345110520313160215285973377160072090964458137771502481064073524293275632605059901762990301928439694948801575585742008716546673432024872898514549641288344036545493914720794299252226189751184603585133884018743485253591445677088124309575022585480861018278361002888624719463567785493402599380474751465977329575928032170984843248914849544305106278449272548280582162937958253605486937115465586695548044328436841322086496885301336433401227973921701479496803988354166774973823769799180534216935080148051099922799144972513257262690371822098676953470481948523100469064367515336308272820919795892422604357718693492189734666284197708874995229012612763706783782344175095386271553651999562979991071819683384198711747066886785968316081345164716641862053110496579999000050836440933217617079830120340451804126784444838604536254915231013130363340564960523943920256062579772809074778542932986995611607570784477423136692222624695951602816464739601009129802721599108357089218566966566953467003914874235152671267466047996625042953225983989172793007298849001819085637660676627742524033382076091479303494890903944241768670711572004874004938062953326251103917068734337203818174232299965858351999784181354146566928223646125056591685730830292880405691060739675087217092649905841072030731390033189966889269679837984242752063930056818187892732370791480835524511742853637125297883280495491442502082193523631103515894214766273759322292933245911311435406737343995667445908567734364318240524938631137077331031898125242852262986864258669332078498130131511698191179516797258021629888267216659053013130571219240964926965474039827204164369694592600180858335035987470060571747703277713710783813233906731148547993732387956198088137118792988450219075540922725267697001731295073712565470900914262173756053862338980559281875377763650421800924004068924117181552310086080030263041130531429864000074980511035055699105509051380054713229166280334272625783392598987056084651850819914587901107682657853620395575079792273315970431102774728210395822919825106172121207310574543852052689083428433317856919505295828810511737730002199687611961341116920605779440667562496265416730574159800294167962877104966810538752587625531483381722190305044680195052104812563103535759743390013296113570800129198807938528982379511984526948373128572981193905326189318538832993242562848927399998820323607211039983089433299996499630001194263926990053271868324858896806836026160309377179947638586515896159529234582830817719527029442040849466008535126942820060188890255395484511953739465378242227824906792993414307752326168452755469106031963442478720713847567133843395139681845514445447440130712793281394038305038313733873203643971593405387370012665149649627349504070554355221426559623717901582804009902956395790201592718121823882584706248447253578218876064870485589248566754922928670563984161872642272648732136273866772321602193764121376873495730716604960357016496768648313825196469605090774011655496852125382820375340999916621984543897360796993885583078885458099655037627439333259394313330633678222666717091640174929071081612491995018626981045594697058584354319403587497245128825554089016071917777457761267600609425194041418585881584990357507730898928739027670211421977191095313466492219276724774283925211693669611278710756145747907518288579636912669356230408899569312121670704952828492412735465567311168923118650355600077525506282264820006992625913068730131216252763559987645399926657886777013345058803200922306841844553488796648732155554451729376116486018061128945991884593188938813698722434649757497363076827936987416411050816999401762348299660323378558825052129060211673368051220498908491818633170391927272835291812951940136495459844947798053788179309714210785386767574359696053592830697875825141370902126181122228604845780823905964844283383193843020189830731124265443324757565741693292502782783878657962159969110622771736537241709230011706813285293627607971763548218232400079080873913652926168127913065749903615542643187972222791942228416304655399507052046436293226969822344038076037391483567310585887309547483527416600517823460378056567008174887854357216461935691640679633446008368103543845362261398568749733003279312815409541546747068891437790192659488599959261263874621986271762418501287721793351862779477925247796789235193880276424375027705790008800740902225510689699562541992583559595101749282418992933760233516840115616555737923339910424469740845785494497350248738783720996752312251542170887581606084721240265157411153982616164103772104052227895928298587965097916283038676722602528085127779942317013063681445474268214039997446862323969113589410021273033965183704478360678614718647895908431795492170875871706565958143140552391219611111986347288939332473001531719794353788919558791406277903113681002159689775823009047198496356136308936922725670483582994097059410649183916569733280782970268092420938018226841258826870168411749900078584915615606055840874632097725603676503584532931310139512695116113171727079574564359436501522018203084438182025838520948628942356102761397694314949047069308619977630164866691328588016113434458749014901530631627874177238390213516334276094757352257310576541434127146915308411809066098743288139783625765543286807341741361126849875022233449268989535566248430719116400760030543889919809144389378508979498492025184610677702702769683402771273624476839395474323880361387265491619761865292049869047288640463129281067847361145989143757575658741626830805770716431691445445406817773879052653865339371100843929065061465830132004515021083839782532395721348710419151595211972383870412033574627634803612851180065866771812320604973194650737401762005209921510398614922400678535737977646329408596417692818122261006671902863742039516080382068767705000419246086774090902329939097395982428267091370796459252473136337571186784227678909835921362108859527812893635767958740528651632946501604498971693405259472595430883912213166273129725130075881625498007610317578015452622942921721595292969613654541757020568300846743722834320009881168054335347643546349399983579430807893500303054723757221999868554636031687449834148259263834623024459026755948716590433202771584272297438963860957014036256438616130189319345005819175120141954198187032206945905987827308828467860541347232962346825039951489301836749578697298268502944827581659530216467918598766024128250406695861047132223590614373690015433068413421389470122301694406995303243447957526610482791496244604689552595340481808323063041988782538324659462960832282697243594770646356191442499379840303613295385774627910183029144718180613862499847226106676865692945491938088890855870751450363690885580722132023893172518815595443761963958695984095463458169229488514832935809773943476885136174978460765803313478379245757214246687097005073498794425312925631306813225212099373292958204396295378690029459500685282969311780059045167389775483065486030751467766289725106367073637080688109431802814536537620149304559714673487762296356725902810623176356668016957750762923333276485739387182032511031683375754338182427711360301981713880880344552884415052233986740273426307751013576145683779354158829238171839145059500153829445235135262800638869280404541834946946847913558349588776939525577899051782722325102711445765892059294889710053291748762777760757240960616053667851545746135102543028173765692556066137955461862811579355504290091229936964507411895307414313738832664343735068308821113289057346963124493100631511681647250736148178703153556741352491714112699487640868622125308884285361509836771250852722447314555738168922768335791147827223146696248401012452395404762806211413517994383578900045767952915427361983010003525099144504524435836407977399360443968025797297334133053061933700565948570464260494670855717751939843669590409597655925957468902782310495995594810371713969339127931741477231222654614602175388785199460726755471109187070050968481413703443083657730641699500572064827160172089690718658261736449311693530529865343941982645717125159685777099105526696515059754434115321105634084344524801359561185896341467030066466088403445710545307751380208105788181768849115852747152321491722791389073217851246478097239738802008909492696606785441287708438803404377976183124994261271874286900512384148305179679737931375485420174229844091007652843693949505415090218064138180286274130623690730893799817622790847074948268727201422527680434232330180282918315543700215865489418705455626134400656871097290722348401827893041238704818044596030753381594383852691256303389635985973119067505652183597773790475077570843885417297838403592554080992869401866205917517970790482386107320067683278940343756738486968964416772799269529070301056831303521527698283221775906383678800819537358947341543821442843762339435192233026780064843048040488790013120384480200972966284573152512719099338792302858464268488939935074895081763871079675488448603925593256138456991787683217642733664563385644862219184120023760360413645018247426045087591674907625818278808083976999881285681087440991438130018794192983794486875406032510143473661471826901844981682441319461003526574087783684584017920352895071931701728332574833053607043795392707389556154219737352838978716334770007230159209095833410819219307890990546318238722755988646818427399077975759757704136326928161502164272905852980612064341973215591373189539665788369964349045846930416221376896760937384753236259765274160596351277479440728736609333494886195713303009711206269184468987817281476800165796233790880750997824000919469240385633727200537553064754402034896799552194560567497989931861834014157757636247946857225605434935044712539249728264905508116155105195142214587289232502449846784780942906446912078091939514063523858610258873422102786293244715677263138124580508956422723441957597543327577296640514992143604076030066789615094401417172400987868194099350863631556700759607046376336661571212404678368652326155504925013802776400451739716613833881438665679456344910677050787369876667028506065908915286233139467685546308714106473757377847117429072231221092967877744264131839671417924815106387058491326970614613766095381927149047412236155983166385813122730315565795087700647492848592966749245714722035554966580266576177327582370131337246715114436680734587373573496849924997012982681995236664153118897122644486121955526836212388469536214565488851263046090139114627831642695076964934055532394529287531764391922184059343252531841723552390896735547427465444401510830923811959567008012985021636923628152949034564486804073434767447381123241305232501872791268457419554869389192531331417565654197288433081573326641705521764777419989883732015505477633040581408386326191223249075460158808877809177764347779695485229638492285335990740412528110617456104534954159403389392972861589361959392117139447735551822704877655416392427230980543737942773743314566779283746216947877756261696437445086662683871951259679674682809822954540572549402235149331995527128902119074792080801810953527765177520859019973127318198792252567040452739775941192335075385232096248782835162821558327347060773845806559928197833874299278913812000455025971202398637708810039682341141563391386442641952658211932669561551987588986679660368224450576819999599590658321041763836158554794090092060891352089755041185821572202925603295879391746317253579046684348770731515370554270104991941457767124711863578536342578158782436049187986760601508201184288233786765303814899124168745746901600667406977743189492378544290063340723482759248701672709476990758848995713882068527825277135181924115752841865200830251582317692335300646814062196015858334021954199600140428735349532428230754005168057193604124914794337385449047222803103884318195588411445130545966290640390189083328603219032143343755740513602199379148078450042018559737028451701816987610127346424627241608719463707255103203008026564304191715829607053456006161175692762007694487288205467878751593496643206366280592386564313171538525928503282012511415553703380182497489266715022051474426488469131670151335852598770378145346250455248045912999466094917009936467833724680304842202053654190664353232034712207762501807736713482073430693174147786333293708816089418197419972371193739635559784062800020674923813919036195824224947531085739596321760055968824522955851389131843812059929629043623155335221155623827716161666134339770936696576804058955969018315433197594769864956294098375308070860384570200803522657940597976146590743951381041187936753651609904190568140085558250871323458155963973062793220015316669480211024275682342438673719271817447601395430124820690068313756028372274796357661495755435925962309198138466487470357507837871751314843707570126881883862879558948559962558295322758253602281194323742529923919916412733518469401047575709280192579762884407147095688239253953957426241650874493769547747485078046098681511034093948879921968817460159436515265808946065191500359306593199693304587039967698299842753621642144572378872212439806569989419377212437642399407429128422123211439687323960253631028012697825977021750129918792320447289912921594760146161308004767169621972394637836057132066882749571836429758137178101749686001493704267257728492449454489444545512280996024742779695133826750838764941021578921659095406096126567564382848915026929642016306329201971639324647803463548015019880047354336496455415475093569539971624105631316361415550353695373789794844317472973838441240784149817682611899360361833770610268883122730037936850570412725869029846741483494577506421374153355384943289831128149966930757424831840387423070403674939101890613154606479923645152885379777524333211876256046558702538017028473158138331861906661864820971267290936309216439165845503647935358660869828236213525480375665878286822452359267588290357899577537273693187954981704257105119856830679129079508626079883083006179516535084528178844399121702919523966022706799342043529271367476044079104134217220111293063707144173020764466279156175416362040547779171449384714139699761273849457873786007957484281523985281655845121167028639175944344600274717759827483772257750612891024884104386953707269123580341655382311888079278716363387954577244853036156155983422701571050179315198429784005187048900625325881309644734762560951682687934904019587443640654360534465314076786232751191663993602306887363254576411226369351535842973691504849348437225572894449155337238755498015255291696091866691982370331885911730807747027044030400549205832097670280179680705612622689381252454820262696240545602742852004625769724461106918641266788834825735549916542632312473963784565299597842353990099665522789042552984060571996558589435282161007846065586176309878708017377515250789920456711016970427328585457545617813656119923299640148059058296618029992322950431475821334134388120268418699573194865656115567142740051563767539332173245445541139431594154774903071411858620617717333298028077010483635183265958792437020959552021627210126918754958172682844704693931275247766392971358038756822933871583473867774425172887946429455955982346587289984527753004244035012691021633793285851678771415239218165783839995633287400994277255679037568569873710796759321946213148872673199547313767194389469695976756454853657703454899053412713861857149563775119864488934617891759174011251617289561960043956518419299668871826290369177899946169645378456345576156025891908454592085583809304179089785522258783131675147624847688117599769973118385221319589687519456978890436860900160287031646693201945417333616496389258913253394495025956262362312250686576704323481786290611763680006825002113941303294115267527979924760747748543906463572263281726572438971368168999840924033608387564536353072947280664937329540467371757381923855689613491196143419251267493403779630854976132343084197267993241716510436292204977517904313575595661232338249690150388536068793117053940715967853515675280485013720148820337071050949668415914941562953112199074903095948239782392567171077765998864969409708406202627867086080467232935747848594383251501772771483508205805268268451680534916980486767221890817884822341651928439111744576188822032052281622642724007438601790007890270521784780389164815296790550034822424628446113528788449808476142084194013732720156642725990074128672177175125416308603838871469104850865923399983579144771812191315901387630675362332191422177359380983583621389897122133672932928722313418686274004417568580357120178081846969988093846642109813654991599062321499071144864551520789834811117279428795510403027747375636528809518801356025820899343312489697111069949355918641771136821150003443350584788551504954903468739163225532616147883072116601323979686175468486275372980484483267550427049802145179132889902288524419450561699308103515751322454150920067832338331570165521992750682177807897686012976218592457169035075479415093520122738563051885562619453783366909577905232429167704119452429710127292344903301703160047242451680123098682031726499099006701074661356401412620832539076277095298827945310016297088909262241459822163584530276578262313241106980954077134814786416107274875103452119261333893624087278166420883377337761662206753924942863723983499143848929652432876169524464221903732276276990724599232259926463578694702727007903203026125933419757886220675768094851907377066502146240761136531031898223720710937726350680216230477549664086914693861998462838274058824419064107916227797714507526006006097449545110884006429935004324957917595458598893583734097853988383444315873482510079523154683230705632654277731066367711280055909739791474583000406382259120255614375631731918485194277973350092349690707374586725813074731972106496721384695950239845162183710800079779596096494041814009777960475678529048686329762865607385715300755456876535276124149559567092505477304704748394495503897823785090762529280893964260774223856138601196291778662086441652151388864393454783657989569862394849840505649267484163525332278256097230626409425199147187455644429910057334304860217772799485074856898134941765510663333316843402257226662680358556748724839176253955364304152659991810496614265411936238528196157383167165178487350096433846094885546808653204917204901652577572631691165077933745286211598359969319803862385547544274689922179011512412901087686646035556963473941850370314527998300020432730902979497709464899862185852112349070880601703378980759887635781223467586565065969284721393853697730430989104679790873054590093065240830945912359893531691215887893560035035981430051415307214954225109215986697259585842391526991596117424806517056899590018711492307997749653418685808527336023972522828568955089853396018171640549696389053721596296296693652326799128414993461585974789941648583616954919775659154174227224060920936053950405143607912865810503530410956383298290473719962672689953773189111012138937114096349623852099363925041932123174863486875246639065791748800192181879717217229674924907908447586324613709106382812163657026760452378954373339265681549621942304542574653558417073385542821644444777511603386664286193268671542450743466314257406171415994609740939212026692903382562066474720028720179584901844594264903587269961183900690991194358737089439515818241765922588476957562150778073942379845856090282093731151695231379247491724458304285078215075305332052881298651747701039209593932533678180719061302546098795396368886341435462638387376128784375459001639720382629026541391970524951910247990320966923077873585362650269570107895765217587734216946108888851915836587706438132203328853352362766636146329401966563980929588586763816183709280533313148756806800189535867462725660929228249049683975130162358214710053166761881464061381135600462192187021898277483786169712184832522800458417762386772839798291195552540894242142194839496640160991266211403654053796420913577698469874958586362761079627532348289790630769653060843047339719546849154282187778211453641847402862907499817281149324039449978428757749654330542074361687925397502758355229027484346548899370272308937128691196944762505782500546528622746301470799786116304351289303911539636482588445257488141966579055601581804686545388809939716433878360297253242615332622772771349167608618320964050987284115808635592671856691891147722088239454150782641711934498286390315472794742042890632330139192572740894423448615173894091785971065593448409541539998228864192230104487402088214774769341615061130769250475359159802460033834368280199954141345203861334314998134170974339589659637895344646790055178659051786202691426759016659340083074931149902150512307451937419669425569565042474582464009487626782081927068271101829298628199183781993658453194351756154722485050784074093773351574098657821831285730008543125871953895094080103766842125438476655165649898142070855766180618140809008855108902560073938934727243244809229683863293970905285914719955478701237438465291443323430899618853294602309334882178215784547834249474570869237706209179059123112498022732712981195859908410792480525929651548585288652844914311469913012063525983847839864224094199247606982036298546575439024625232770186326716362389583800127738482974490271449237211299061386082921792514461861026652725233600986338117349710204314134684175316321562800986507763552803050237414752133376764013219657995090958180358802965227140136172069368751076889149761355571791629459740159986569939826211645979365369538773385610635096655548020647155453685986696076980402288837243782862796021242076542342080877472399517525256696777741401674201040460360291580488009715127737300685487617120614350746165650580309224071464294968740546537290764520232995831049967837401847095485413663104980520722640058409275850380303303241373522992193165584405979049912452514017414505993369623250470453599087468082161314725078621248065153218344176173104717409981286347697949728808104878335544487447108920500131787880720064788911780018971476132677156069594208963356607962932761628828321771814644587814798412602673619813001697924893958074449259913591575404853719229684653157554001549711772454681998605940945742840885234745692723832731170813375421632075851614830972984228161757736743565510605085412810763566788176246777457706801302981102524574927331080527438295833496078024683353946560042341708441211194816581962056757581246525483277256731495287993450439217236503454612272329757396469782295690620872591357313871712465810204579169045960329943392912145178824621369824121289559007086095936273785529112833976625014311116165450833188918041488983765837641167755829983844865882860618660854071954495102293142098727122454517190577221662087142953696808742464794917961072918864087527960314488386816142033574332713792807728209914414607306200979919871504753789516188791868260560070407515948682198837746409198157378162041969387439604240502350947277354549260254141064598374989387555569138339153317629901814961958695477533834998930736386528675807211703946455814696873172605765003939893980276877459642577849136477330719946098998676467306792493922559993362418709204950604536539687124251221786501897697511331640611392252056480065573272358746326505780450409450561833543110537314786155543780709343053345120199835897985253309986506521191463151660820486371984840678048675746591285476702266232299033638124980433440548546838516699738200498027118763709758268225122669233328152983531234395301552601742693285873214785004586667451247590713576424817141176682494338532275298347208149965764564915359530024452861522866367745937400247345383772426376617251359603046035274307017371179045270497116463541388768727062128156278427744134959352570824645586638109502366847577544341922794312344879715589809739757333602907641072024803301131253949834470478127887042157742808990566723491274376555769818215323972594038459104405042528731217555709188556849140397402987505609079099888565190600910409736491840675900773066760030806638146922881011959549461254580624607202345145056789087453049721779409515616149168814388007681004217739587868483360099499691621528431981642767555170171517605387499199255214455859341662883481550445951901415663455892438034379925059903519246327791297068247039639255457326639012522910940237165055745318884233063300055530730669869718841489383452814598438501583170627173282273509911555128558962257395571131850282517402499194771729978425199780325161023772533826523278700987420166532459131719896916884099890718106873712056877037913764227720923749488746519473437142885135296833846721214042377851313200820563434881444800947946459230493718703103368146112621505396681497358082641469672099463358209455157636469039766415921404422911735212478648641130302484593904600595028199745980731359450743978300131889491301332760506819703513940280075700275803854677832174725824510420376448904136445218874742859026877119917464769976096128048144546707152795138073126801335893445817974774918380571091609918869283594327027625675634969975900830213680814375437786905243386421521876504837197282281823853568095409099505087171080390767465511583642648073468616647131219308034638793608517881132298197127428833446391963266374050879490001675957521527049544652169778632436747771790616699163947646732755673053904426598024222646942732064581299488924515868634696945644122320369864130348232412966451025799346386284835147012462570611708048732604385642860966043166626705582698626570180418483719799999683978893061258383817338887512106175604154990998679270441768123595233695256317582050870849336531097957998062690649276650259185823074247666857173303235173088148268981219859041762038763139114224558456692507052951341907224342113419157168160044288724495451676467862699131072199474112001373487086075560293394626700033212091233687047056001641798058735424477765072092719648768668436896110661525305794948771745732909779161340040116980435334928096431818422503083956907646213468527356110211821128974023049769106852095459387849691919500378022611982709345389160145778974688343345637242814797675188183554494126644235896484370856328093184841157337457526836698983035158156749405934993358184449520987996803439044715340279303252946380488610898799821147685630244447707816840708186747609612040230988684694584641664953214041703252462540441492477669166681265302622529326256707658979798734918680888888152148101694874918767853540669007005636406163410770510578130950933924007481863010782095616892836238353549111224024795349262658018382639233478715440693051914311530858683049148543527310406819936211763681505601232062094515697690691433429587880455052687835342751724327113782391096826761810549353897111578943354927866437067036668270607871334997539763589119202279128997585275356946329864080192496199383388690775533383554690141353111964969427329260551828009124395816415121245135923371434186970268110854183520098379464642649390783488154016082780378695795873827266597418548895805451436637465645498327013062054120338836819220540633277343201562286072397917467976908277194057364184363398974158914958572120332269904411734813169842009695515800458085811830327936724194653809702213996634168349396932731770957872829119008038831498784985712720812712553809550262989920627944348747007328782264747360213987176655841596680231098201359644321865701446330467460324527425825449466384708529319651810070512892183441490970951991793509756206669157934537202213311647102284678544919499754376964220940921738334255185286734670755582782585296562782742305802037793356053563368113532533730147838851747410877766236944092882381194108829718307214360259641957731525206772340413375115924380537238056890362722782710166861340449835973775132568509035305060291979862807377269239456334730330871481263575820200618340229827750596525255153145710696626447337095280621575853802627296079787334512992048445919899512588715930550414055154766090764670921492963395222512417852117959840128724037203793875646276833697353147886639631390978115723861587606323581980859820800807292236492453830738201311006302703164726399413450233211871519428353948511699085043452214018179516906402692936379128657583826427444569293450376187076235607271397670064621260219840109458122445392503324301646541401967980348647974167510243772811798718193461691553329688959757259066535801476981939325471327783468452973627820846750510081007245528822296147671853244724437977755992525732070849767868613105405931077771140913699428261440974099694082236153604027382184647507120343265447849476530509455782391490824129165176433075042948595563238281623880392724491270111734633876211548569707520120791290792841780295572471194812346812017718891052304209096651922288566226781081852675980396498979943759321187046508200833560401247906398159144229407737611114310347171571516886476651677834246007953170353570063178612812695497455950435039121221788196123648641712306650994240447112832740749389544929715100265211159817304306066389764883931090328015594256268299455845222835211133013066922575714564081491805543566602507926905983689563014064405415239997872774740617226300952647301533260282308319524653618161801040534917415739406484636797161991878891611656824064448782797880310658749188769064292041264349977577934821470803344130185139634979274329989018280687241601744918887261893727463995335064205572616884420144541403109790085481267705007750222762174081498776841337547328528090439281821410795051031224446206441685212943862056338979690787824646964425665435062593207751768679133416866920306397852207279912695730891821239986820984121487780734369952769288822038721832018750107071916612226312808878526115823621975243618385238601515846484958183508745882451399404904783961867099601937514795069899685056931784477296894694390523808457766229111926421637092586677051244915481047229793803744864829834308955990753019635691647270338876851797453759295130180887380748542849418849820521814566049852272485425648403120055192529248270415359310181370116904030099839266574227842688440250327424886067790839324071821990723106625135538805912426214054308378824194490241465224955750786074792945186980959121688106171594789236060239453723278892352586730584545801421148419421152047367956729820532718098402418304270535932212739297054501274446829774399612657798769182968474052545428994715549840928922270717736871721702285686949418413964144452447607782816291653048842599515394698780567867062630138245505332972501804576981745148818467441774721004446190747809290388613950813057795063596929856053654808217862428077591640820056397885205369932120072897431396351535995952927626382677955959549818376675092568918930698276033956628026926358197537701747668176914847998074547534295038089790564348899772430793387042740507704706359016261652206394390997645590448789026175068117457073689382378118083509989739454086466232048518852531609095458312132327753649831762572161880596430088795286539224753821569801748543803350848845540251750909408670329902920635214125919532813541286685005827624482816811068062430505385191996452387825680230979403371305046251457964013026681440870449662592672892486669106565287200377131149873058521774832583922755301225193317760837841183178758922498861167600394533601414882573400318112251762589208303287125346864443373986450714003527962244474411605634954977072642403851912242441649338235985053423231577152154539358407908942811976414324206175346563913581945624262275579084979406339375082498947223980525861686035522032680725422710762213859525297962642240073223236705125979998813061787131311896672911310794694409817738548571765882983505414381001743601599591022432316396630745625766334643429171643885285477029230573757202729139196425169599481419694626549552731124667113081486759379078797618960935949469404428365887193976558250616382874012862006288110307195822064207512953538134348707399675540173861094743390988433036763198385999493053120440902583366694457683704820326335772547663992119500471316197920439132908573596727147205289291680848789434173309180400793828026092403058261067243992265681961998177490826726708703131441943254421904143449550066437312783196608397072029787682858150134223940340758187785095826012063664927026526492081060005735344651244502051516417043172334717089542733838909399805486518155574880614186898794899498644114880385759678816309711145361332694364290815342989247783376672085486703846986793508135644183006088913661257909630510755228089127367387495737334768208536342803789431000797433714222190588015606744264463245117794865152767017170141578598573479849931491606936200955989048971182342889123219766720653676450961448495454993814612098078090374361719046961247463114133768671659004511042870019096244180736328465437322911182109008483728918526840400459191097562016990191850308183271128243908684343173118126717862332238369103085804416506798451074739022026410611030732524928678060889557629322058897900665184257943060178286086065050354703595190827473282061444208319825809671183216379068968756991006070782342955198718436006001261989214999692193749553995916607956808103608432228509291875777920447120766359962117570030016343722987336180295129193189821460905752110491959221674723531815999966098163498089041867936145151825684434264063753042667417612479522210991049467809231334509956591303659942485629840120127362175973658171519765518178649189978554592268275588967776443850462605222582427898682638598499609896184507075061827506797098193093910695698262892710635590830497055049239601117071189709808567688758511581901055442574145291818816040334895741013719621902968305412379869650428130055729031259826556194016683487096429162012817448660188654319285610711872877793634350786483894555498969589357797983040758081255866429300817629486461495247872205877584799118982152411551874040336322757093500495820208449940347800892310212105257490407727561433253938856524321008271046853311882330513308399784845547954321820842438131112890438569002986933939374769093554345148986001659982531581843631695913642926225934470644124546171750824611097849244392396326013650713170922599407374088067622890551123576555230902429164247198378424008340253416228250045901282291156046536711838833335494832230445593135702577397522943753984243325972009023924722686959768833995974577131218028124991971352119710724696881338026426486871143338553894268137451140190102991974820473505749519977984323601040755304130768830781866151868741243248822982848508523618329833678135606006150673085677527940585943850719532784426624993329403384673479507774233447681572283518142904680231481763070028653257540284350060148842818172486226715999856770176461350350370336275839540035638283399150466973039064543902530590802349833249236973754006231362150730858680930558947541368543650809578521595115181176612390856941793318124193206815922187021130962634741945284720514233897335225007480017081625304627808065847562695768507558529346269951523172909724204720433868805530601797981681657672639051416949613826618177077937941240802154011816990395471834858108510054935460812460536502634982359540799735689078372750538689294901545709410221229399189782638072532558407606351711876946825605841093082925554963117715127707985157787221465652018425310278601056704842979492757028136039720401151918535814439929927495365633905628401078634857972876492859292387508641388849003618574228836694442883115093088533629165819059505290941968224304683823376066770942509890392040655069733669686841154162716830624627990407728129144705320866606075292954211793372900195233470364740170541182764931249727274438381729217352434905840533846087751924668493374345339098877390705045891300169421237683563039922653414964237297705958046150423949438479423502099324974631096865822732443516082655207869868922939174722651945186746916822247458276761499155113126822591251042770073826749509456445128120630622213770415647889921129664896338245210929444478534935245382197161452749481262434552840921312097119345836017641533129946779680515549002368895769317722394573033648097382418121400510782553759839230100430506751857043738495219998980911428124525338908833941060369309124154809961236280548078065220889776536476740679848075731721099502835543228328795310601840741904287317106245067996177106540338109563712235591946975172005200683930294430921240809275333007552606467397113815991021575609002797126670952431516696683542980151900510911102021678782090857166961091042890596913807596176949837721732356722327568483675763570629776664100670126120135574594874014317730969389251244371089420842875528122475260816554761602868007046297842495470714479051903203831830329755586513500978061804963384142899020305275799808916522772982889093756633549443847966447879855959568467613709425258462852452262611812394752793758251959052951456145021691745802109898113222231237829538299646315747192820009288604063032073358175118963034622477728908014559515018641869836390082435564334549693610667177465655706769958777150745390150561406732074717497170820690058369857604448804204300890932814546439441766316188866203362599414014973183165392895469466990879230652366516054508595344423179224604183110208486027412984046795384845601557980695687096944340313264376142631491596717670869963301842627194994767957623863144407290240521349602352533021449537248627394967108168259571380696172721659638308294196635578263429079796143619172375434530599234747349968406139676520079044528604283180874573028135948285028123217507962904586618121676238466152125808600340821819467717656558212955858072818762669781367147746469271348405251903611064827229764735895681821924763205541587146204340085183047476560266462890122680830749687031622688230090492506929356261660752602893931298327165114077096720044520121241799806903602271275976180975841065157197100793563172074190296125152350127601600294821549269141139596794704479498819811750534384966525766936867299599468538802688106739504974455547824394011715257548005283178549975396790142117687792309703527524753703451793258873486590886946009140295713653820416098900246122359067723334019480683769546127017036587161504810656133438581877581905368133431431508369711464125823012753754083337776330436878146232151343901566371314552786648266713996877110633610949354491529770802191934659961498167229400792461593560274205603070036535690111691051762817788326432338308466635584329743974269272966511815368328890023901865870225944006598408284782044198507855121386011629389030519989799302759707969611903430190422198628963803429087200980177003288343563492471485097457019199029858692992464051157825251977318477986118114463139587653631599392203863492972308400838191538513280983109105055395978645583234045473793350204500593406625427664924626990467702402466887725517979268760271353422922885989434085267154061878465364542225190683483727440264749808831149380980032572198422497852949866067944610399698828798258312580101683832701393381806729448649646256254386625178781577313855586726199423499992146299812877845536612447320194173853636908771578689610812617197272459005653216493526013999754222891798897678660337063593544668168931110937266963251633379412995275439105479361515249658434911138807945482606972091189932829002501407927867657101606839028635683681353727137721608937380588595872318016519687212259432464332485827975650448528431311475759947608563019403350488716099803505489186330624826077413435223981180276831700990425345219221277382807387749546691665471412325370411239297384835318187589031787934818380436310497909601900360975226987617707964833832930115316328214232137512574967724814948768705332854474014109951427339359414018244553508064758180420880771235273892436749157924459264028185930217522647710659473359008673252061730050375731014072962475894011127465575987363831118897662727650969144349837786168823234195070245207598982460127961933181749649362012573335977213088619639442970033183461219825726032457079469494956542330419366259043173935397539562238375944585386472966312465619793395436773888468672125743950615019705024460727295689749544320691529819528950761514878418138112085459697794881289146994523694376655291338716581064642223987783294720927930170490104222157031957238201713775001773652525559720772234752499203859214384901764876086172250810139093253438134172094502187631181674966127002981349521971319892111321001914488379359775791160139810738014834175922608952110551793102856414096088074263883279927325749965656613693855685765498999899503294506780413869089543266555627524951275437537564212958813340802701001130384523802693474549454075223193676848022056261128358346960573641335515285106069250603054894251245543895908582798762319301343212325790671276097325455461393641230813174876505303565691027789046875710809942174935587545088467491028794821769204059923266733530328148381105750822410989853061226592908394580899309143971917984317971326119490108841212098936676649105638090976268407673137403456482559580686216309488585302713785808291262471647134809306899495754335252032010203568630454738325285487737979471832063795726595346693162822383622197782203401329406685308947209427129686529339673646526657042934407896468688464048529574171905144174374569244954138191414524683001948187867535627902924349568225310949691827983189188235496374261143722644371219647781182223957053738434391274393901063153664422503430118248682358267176012549973743696280048502600309634150924327094032625651333479632464436863473174900872164572346318111430403211226829584464745853611182427825521919143683427656867418132610565837458446008324444961677954927360212108636006097579860257349777655672654357343439617075641137615951051487690999136077191735263442251813865509324908872216398905866798071446131125508348098994712566062165106735432747820279416340933593713578748372657553841593690862145721747993224649441966351113464711579835913878106763107182822323196525912021136801453585124238318641627922128216458549112940633638603623798749200562135989333668305841178154455786484503339926965236288419672616638360821201207529701454908291281779801276910171983348541003313368184169068293774086490083547654850690496691714136933513183727884397767964151506463590026123100023934336094805120032939458780753842797723809969367505356420821287707129972253700911783005518248309110801495607023818058215538804545576165273842155070437131203338707684889487118530800281827066763203782565021420621014996769915331086989612460263371645880560711732084660667300146951919865471971463112192967807307205022166518947266164027778677935598735285293115555179225208713501708523696183481317120677617618831199155957937744655619145564085003002500254903467645570677806690550337393340274207796583925676530954392339842501401606826870912158124352174894115721016129783699332224879754318225742719162629998708889601625868215781348698012933243612056256150200272303568970632461551768475664715906996730676403196138226916639263757782766903419613686954449255132097069040542249533773075328330503822115779474538596156373714626715151431707524133679361484767952374918129745960857792192573813357192148653084253632661821210631096915252794120314669756652167792846056486418640989770428612222915312458633359537712214722885755421809724963924038518824979498139793174804429787426576554076851503082116964155930146230519090289221503536110716488519930750362399363312955578513831405423468290741941099698050339838525663739823022799940059736455559686938458110449921451604480002108757109178648969327319356862309815024499638474025425857893034754363465607454323613324002540528571184195049171516241579739789901026113308423731736439593423492031098662675582217257671918495584050422122820515671475707614950057133273627934471251494413670036241342025099209632291767831201922820194528382531030800169810416145304819220840240617286716518995517643583024265806815409291523032573883921262355939636953754005240392067283205077511015640411727792865639243787835142347575984431064788175377297374915709663920033801398563009933670537254944574914726620708665475878747166539171484688033136503704156871662798972873697658799144313095702907696966796864589170498381934766251500553302890903709902305876218295914250329214217465875676940108465806586372998360521273227076723818372500202273980063026388386951080757990398470880250656656487085642273262884215332673869367923544580211508226516710682829619731139802461689438927200179635239669975254875806574637604063999388402957274116203766300295747724101560806634251723460899117213415328931663801953047007567780578739547574301990790652406627825220382407592102842389180507745625599438925020130825344574619752006026940715873394865689681713188263043514395311631171378147241639635031308285855544982714625271520866728547934570914901723877928894401227977525572254252678706782416440768138488247429586673452301990375039743899613384557859412065563340348394374034856233978247642923437118177498441486488141597665621526797094122081781401513767456314692653317314829453934712176971557514412267154572564374258902681672687363790348022259096796385266931232821851638828791735303557416953963569495128080671930757329666201582966777554628063389932782870465822581487633551192922811381032798417428327693869442771206403397280332214198142534522984986359335967249369048756398318669861657317467264783523101675068032354949835286072939405812904374412136027767730126126715493304047144140500719661814686792605506448119136850940369779217174233006736023105522226404499673072276808074136056348560197589773210967656275849794914291581002074378574050921979431262831271031854013032326718805736630366857297072919439705951224824419782365672958565911909080825270400620806585617323956053184125921372301134403292194154753867972149989094966036922258956133230452185055902231386684421151750442637343941763230538463473980244742162979580089798333364908531698930971563460671550114615225821257027675302892858758823254621165514928351139006399215511928222794675335066791386069675008156703800623262025078055914747904650282454648803743748615648774614981628962551414599393209610624746960862651810110315708972367533424528878238920134002035957228374447516319621379398994313530761217915507045599622646877216838843164065523508095531869507209686925000182205752670431021363113616556904026200218619719275371160612782116120322184392850006530029573390207544183538110522126453287646891555683187325647686730218130970390529185282161613225163503518153938452524908706249736234306661895785985699601688950753749363802381222865296045983504415710769905916672035524656108399406633976184949287861445542931438838829636051916569693801091643092953525475952126729993090198858207793704140005242518311978356139315291590213752413263035949081527490505795091135203258762572535355220694214774084174912723160075266855778367612451033167435766177848028461222340836574419655132644421275321904963385132599978110623984618325922282067668635520814484874696058762935811270326511556012638871448355672627689279738575191213333869021337388918711796724571319669357553778073342154432463305808385238757513074401727986622950324006693372822447242033127845090531789865510892505388549713055854804034121655066923124448289123865922974500032079095982108365571013804363256730857591679833135467354841067169742978874012550070459533168364291023242435016240674800563976720490485264209313655132910034399974418519987958717053987446449347127914847757442359653853428703325481157780990785172551492582184877289580672281592841897264107879131477285969575942011150576721806216509820316572540170779227513360703514906940972346647860906760492646807670135630967311897038326535545153272068341728039644959035555968832656913581483101648081544391954024998105816126035531601582634113294228963553635670569514269019375975259139477095296179652897746070229420883306013079378152518088741376567794137737298039126661966806796858018931609483679214596922262982379951331944184137758466609565995576308917504486953531896751886156875916924253134976404830904983464561682936582085821150650274138180158582371935618594135595015820402186306882976592669141457613734165201712810123049596844814050911537355304390828355995646348634629288054768107423611680454305846999948270765766360772563681050722852103487272785280177423721206853705108334879025895695974897861734737334355083916329433512561121238596242355176740431910213448021076963179709936076960141004528859944796321454513898731150223838000862523654364755348250621332351665100141219303378387642896030916133068092854076883026794900689160790620460497117792814099874977230441489346580272897242691718094852442881895774719019253358463211496594866670841795414410466611582253693308603671794987210288442509181758999481789071400181707934736266853676607652559415274037000325121978589887388080807356785078798993789748831468581338881518728443808749094468010083800787269662469404607226969871991197747445240229944471709079747537548995996277687925006593137046829037160531540248730366559427062741375864982079022861686470633960038400861488496876568509376376660148588371376030982163866605141172287508388833553293939673560659533798625153547772174105997039145146699387052025294725670860875765635004282472269962065028246473878926769733681672549483031317125156795377018853662273581589805037724483714543878785924800846017457298177536219996014130835472211653608039698065273013197885505854584552449545900110827254073059793088727539787103555481176060891891229171964138998694550854208094936627819525642059138040865496946713786559046908098898792773165451871605904069028744710396449678952892145593777143777566808995430810357874409523579226989065805607438795123042165515982850459202771691543418015415479553954730730897499953257774625245331130314709427852993376115199400975450855172245580191837280685554000499379093270099073023642953780889991736292135968302307243770577852834742914388024451217905336667089528426449478873288688258050765415319520299158718079438697214318074044910693041660598730246313311245542927030207719353891189680505182114100238155226528671359179399087476902270003439353829864455153116620759642173195280604430314106331771845052083669099850721229313256145286446857055248623837276912307488650728460713075829171256041648662344027823225381666016623536563347415895195140489714037029860802011427193859084655619058627196692064745321382544564645314757750365316655906664948453638446051538088784000857489134628070150442423301933111186328000841703548720748301633543875929300800562135888227803500752559168893780209271696297832270092814568593289482568696775857229328478557828076201697224644573940929494428017365463555039235921208719733833376637040008277741898234637358751385160098584912627447299338035829179622993417603833542077241641978894289660634654055752058005860666246293180015522266327012571604723858334853903543181517671840753257728629661258372569823742308481144331980172470396060605320415153658570435428160916362664551575164559023114909992995701644192671254322026486178250262516800401275144181811471217955272288546484214929265437835776191674964338974135230402588004629791820711237966619221546272386633765366050538900591558427123432666997213774275662869502214394993228289926145369469726916804656861057781765374857056984250504934505716063125198103038126530964205398646391120719760493802844671412385111826383935742452876387318636456218644655841324681692087747919217662137288805932523177326650198502904798998129461345711676865777432756092197885142659666687102747989450373889716624314346278450074214335977314863068904371669992957246238964012433211407090179792664052401167608078959797688738152656331433023384772472441561777712834345273080911357692854734878209981507629602794250966593675859295312722210926871001513706918628391612058288488363493869118693879715171938956626571824929982361110232624197408100836402110841619318600221165106160401582964367579182286717467696239435219054722879524140091979295065706068092483067897599964103403047205633979316439196059416016453494147062139057645351330991376492893459082844415228459386037764321151553130229968525622502549629443265829004433403236861356948126449107761924245633364363076271743061539328614712644342710165413224762810602099146638440225145877904928942859921242596636564410456509546544868502823447754482060197910886198842130586802801626814785611539486932692368945930767236917337329523951574593023721040027356324714842874140299208021381644909310573004598091292803360462625557115538010636255064060045916230258554427870581077558116762970071237522227361573211343336593720956926178284488213277816937140662998293367924513915634488056199157472657101181820001621948596506648207844713705071419696448696626538481808718250539343083725179998569341202703990495870261856951748698612717367394128115683474401412505159116870632185420737373789470105678149543623362148338515287032352047252852262556833669909021533899670746306054798333902477431036148815967122472078230985504717754599135460178189062314658574686705584099488310747091199446927518430672150950187959574632637724598820726575036765937100392423475914459032562530042537916347781549132177766015805401628818536012170857604654237935145671744356678523304876190237582151005868921272057138124147632190224674553839528430453158990784831647284877247339963026932414870006259186737940789456081816072539512416688426801022073944584631864837919454779165555387204241073501191478575546318368075173726593642218166931012464671039121480986771002900405981782937149696048317188122696119383661523059053871358566432313222562012715305439440274383466587266764724651850784546524213848244072679393741806673738793155954106603343920827974638353065998883580370717638409379407399978351578183348756098549087075023662473670450785612614853706481141791638341196416947431443680953214397575196046259197547013984307023784702978044958442410142416821410068857198575894319805262280933544644535371262589379123824772305996673956796527758905694593379291782296969899445384832258366471439939522127388042807949803623225147768998492773147712114689916237364749530730022729220717056926961624625442063473321543932263262171338658082189187087131628128836778284208361531454280776127252727256211301574124832288662965686501411700241411061561356508429014546722069865765148875724925609829095216939336873174948706281210523709292472445101341926087991088203292640821913914516517545423577259674963363545851715198748015625238501336493928518545260704257297292000303984663498108262633432220961749891094292958817828946518174633289889594868559834732862161951421229940509926403006145206787935451271516587212353403607098232134939084675695896410289151547745719753829244048286515878145004360733126114177350363399009334109778142210271464458390624873384025876946988350820130937198889085811261914145757426189596117339618943261519650963320181056367638346064305120591301964465977130962075387524418508385711977625302699297484240534365860748027037194975832126700144721619641421767746290625596951039520320994375958577030912847855057038068204962800771062461683525136982264845263271388555090894756736543709298501624651159150792787933069035615159665218443005027513549599908425713430587180005845019367626441204457743974871343561676528559756839706669198949678928333405452236681418466480397564280765044633333584217955927204509412110813406514887830021317690967666385709503554036744852628590575800882277388812148309504656559152454375971362712343293098777438450908966215573752748511571443707331938603876716827034755878663093878284168146448318801448458021917246751589191916246264308269890066513509738061161248986667856524874905685408227476344827397727329095823436465095708237392935531627099450218451308996622104272746790789019954212179475480690915140495562091712504964927818307724044454431096004898812684393719677219581424825978956536493133585226315605335272572178271372353700763064265552970885847012097633845627319803118307380598163617668515737330207039209815327539069551118029738353969755261150538702092543807093366978467530128047172138628144072998094736757873817580931579337457679908282684848409589588486048651826146154005856993799051203488283957976740170494367011012642219088375909805940459640682149591420137653580645806006086204130445881091926982323679448445674231792680924568669464133874731251212142852290438098641241992696459666243605064656575507889393585019220998789483809449645234008697462381978499201121617769798472645090027412960786486052365798028900549034408702475331259293985428074414482459701320083147948314867132011042284645511924008927558842237307361102269935107781012527592640299899170329640175930721171273627253393951672516065629820164282945747253215559210238388020982595054583597047035583298541116087527748404122827857325573869218789386987837430070992985849734033790982682095514294073323429654262076385301608231344115389730876055223962693670251016148390456720755442551221559948824644337367958919769503241186567786186369557708860195397809531840560549717847619682793185242512502099983471078858376185513518191636111466141257333382470232165457190192718658115599127057727533638411332042687962844634781359313467675930053591768304696156548416382840362020681092538443834810350437549936538414872476862382495722570835241162106358965651852464369505684707330743515039312394587187713501907231675963373251117137201915316140329059054138290864229540546630158718520759229142521511763863738830806806223272957997275610226482523848059813280878621170938563259876027362578511649463604290252799849831188486207472085032286788549720827598682147659794793552026273492543362314864000094271293289959792351735956765478706082348277315091800609222528715556141655930895960119684853815866623514343129268170542468443302718498387222003726719669987764205598719516312425471023699311592505312522944769100524236988528578810663111685300410976448494959818620861073934759341196016338365216461840577356437148314720112736652330976985336320455993498671438292829373406291818461348945213424373737797280031645421264651479102340223765673147391423363634752874972907195862883645620480183377958175901289172958773197641424740137312506401911916171588309483246768180203960927344251262774504876457670308049791066763671201148881543283535041313924264967557142131685848519792243458754221960901563686433312406745938212693377483130880329593481781197431536427308206185234658068989442292611450971829861722914266590353701856048315947211580953615177545082563456435337763107303029932703799565725716012594540106930778147130057697995399514592063633858480744016173560371219679633470398386168009470234342485723187219100135643121846588606936329313175047083415593981362499638114624568649533945931179194918886332590084930734148407869231542513387628097596521475889521718610527606173150947074508878806973509499258168810224761352922694412418958887235671068341600054568714620170767801097862819982521544243508538673156488116221414729503830655305746655959482413000598139948075412296843528334348865704758934996863783506096581786683255918961099847005434542104168697837374964659296805705892987169542040789811245738761751524568186556155666410803462317202397319574168111567724758944247852516709444106590896790730689603414339919615687651218244147886877318959524073824536555428829401634307460899761336019835441677266825056350752622366564128227098958825484100019780295199881362390378601986900428101650943924352194483384501187967783968823787113401706404708447725949850694821622337202067022412339163308865754255304970439702494747465534882098744035232055720890878934540997429323163309914148078178284999847070922546981116874376176906463478122073054901461286923466323836779345366952139378165224858905918416747752125905719253006148643419689487038004281575125232724784085142494642233889914996118740585109271482623139984804290312482140090206907961442468503990320806449493198014438260198151438262917641358511451144438538230095895188842090725561652185959132808763836465326701227113232182809151947296443268417100583979133261720123031530979405427125543085209231810323359738874292932584066048902716860171443163752303008653746248698936026925265850193661407301150715421884220931853292736116636888746878753735877645458243177271249246363974843772490516256289510386277758610843074124083834757350511624808996995950790420133270960115098136867569776985386545122104086244751207071874411074452365638053705675037498658160748812169535697080466833792092061521901524915636123228093700450783439397140518415812557181728226365244605074431198754475238600137664530427044108051966367890851964410431107786987054369101803058546070428576409209667221343674548274351055586544494076913469798873577437799960068067061755866641954856911567066507633102502527901282205959381152465549637169116449153600884719384991046704413596029035815844399465950001096814873224493246123382592643488049984136705871913607971117681101547699279085429336372914594033459448991573255224319444264048019633376336768434163075929395971318426861312953665492768082746835373957890285296203215706704551831029083614884217745184503413150948347301193680165146181780638490266953696710793085573943751379333767616842556559839488023676406093922390667454867282747214506631518559392224377189012656568090324240742031117646113125998855174664174375894017577457123326282848131035870416048712601450229644169108796913012609265988664495036525832757749204501591564930817198405226776248811195049550057640332210970946480311245000542613954996194399137662081116984464519965073200350048565483121497748540733551249770097422392531754272129161979637355434963099396264059632712697390758990035420222231763047720218631609429519565041201660489629788941749762391004760754456620895142887867818599795910398040000733963483951734485198451413275604371885185197485164753940133686548454553908873732421810683307212562098348565874338460632972566678931240466107662417474557802019367881172731863601501490488287504699794564986103466856032762462509215242710975720540736643261074051387447052694554240710791368645732268420013643855925239464674620265672681935647900317969784990016916350039264094303622881665109362499216747415201506112000025748081568100722566415157732772944018697283773365471253543182360892975325211032107623119194438258017735136494508770883229885746150306167487385856743375595755162797508083008137670021865807553670530397342701521705803813865701901055188506747010203082756727736347472334675496665341920580986829102620456816649909844477070785702847459496929946067671093092038857366767030177039781084151150141725619284079541115385000677215133335917176694612156665337728926219654561291216394085340191712045379714245316760995940277554591691991533969744904198382893562811691227791197307762125167504084701403121306947837487416129263373461663327146107352229557665519249981758466578935581118777746260350778774398087749206008751243863470596444318048447681676176806668906567561069021552130998428152676990813052843758513218978171009519442856610794648268339516640863387661225366577667889986540709533372748562414608622064983040537231761633363157456245985710387957409978294925616378079042786813840800503072219732266862185526651572594646228490242696175408119198447885542251296708620987503359635019209466492501312306865199662746302130848493319120764882191150505124771931089774211936194304773738818883563283019322028050956255759337912188959916330936325915605511030997596742433387102927718331513906329385226036692665182107989353105868661405334483391110972820350835854893497305219448554512326859738430073414299445427616156883800233280076323045909285327122741313217397936297108719042136181581621428075022756294666200052482965455822941027065792265999266231310423245399341312870410115712722698766491424473527609871370863545690490841572857824826400731166206756095032373045852082530024324483961211074762793014764428963993413989932381205356546462345588689407067311379670960058838602415512011329882688079705693837691483735176663048976167961436625571385711378079364959584922302483488870379811974047566938135255997475233739402023837537013554034179394513936693646975663655255505593327701977756878787585776706712228166054779612375522730963251179424329718771272494911492828627988512370819707181201777457928356629622888809229925975140571606050328456827328663064371807717192011991546257362176500730638525935077637811151289240221800152097340384138475615597782661680102528476080440279829396194640860810887720455283922997653547663391424249153339457029622895339538433564225694192914520376217738804859461564932507934214449143879750249230127622187514507208346899793721243692151711987530044419272345521893145803523129661774251446209953831323081591382158509634837811926067813437363820173671740509375732715687199868714859751622126665696377327161197327702998834370011871082852377564118251345081543109523196458158804431618143289260510842283213120496051057890369079783241936586971348093459708315255333201608130062338957865843889035060704717353909396223615830284262435897929438676899414167184924852785580700290894667998942618502918996847453107493028374847679118784802725323061497058882163676009104532107166624748129565522753543327517365794694562505838417219442802961259285773819512803641463868011060401214429309191520680629384070964592168917953392070260239864464217257141561760269386785305712575662057996600550706037166669434525280276743579905521658105869987903784342941533272931175179142911134023212825985696119697301997264983375711114973891648054104994206638120069024760502430944802862691721353991052625359726555374902499234189004145727277591494773144513013986036264791342150567528184655798884595289858887038685682402679601106334323526348102135874243536297171389883434698052502452498600750449542146360805313742595683810657157298580867505959609235140811491069404460210963226207982786702331565140132983044961777598183577763563487356716428974470824694416535787925320622480565125125105251617549536016790717112807366505676023927389813999140835733591463370376828345850477397352992553622540662878039562722019806884674498522548519362517924746242155336578207248945283177324576161310354720550014548019077376652214510620553265042943606479407542817512865704096485065150774312424331270293580972815713720660620866692033397384296746887517820070997442450667320089712048592788124855301450984583643960270078017684917693820761199695779856467142140571369857279787295479300830827958706953636403998333990357810100360545486620083254433055504468815314392436368721070469683041911109586258961433389646988703194432379477149223316693213117825387051761411277400875101583147089809875993665649330418231826226212833538524749590622855084326567468533240218796556026571217549608666393189305052800774169726757759007286959672800748910248575240699861114087416085164564655284906014497597251162989593467522371752496704817101139614469084882039330893785109016014694415525301384819691592340223997777387349507938906098104013764241541529958673462751276949752809006067036186988986555392587583246884939357588811682823241186839598719543748900658240695687578309750971827577521504522149591471741348086021077638156811141869272269619698493520748578697631568052028982834103576392228988571026713601063139638934929282557436175077033268500657025269953650410343747154339925346258212759920523983046056351151579695223034039013195088932296331151554500957284508872014834652292215228025240956103797426102697557554053379563280789749714175639834760530417292202624038167547895447874424199176869648629392354281805866763898714950641606327451340525122137209735898084804623800128693006609920459582685481087552951110305674932183301729050220116240983771284935246458368032904457582203110598699976326884639946356399831789427860455851624712619425797843119355979897011221261221511519856888843009443237051092960610134906106627571673332308848215588711569179095773048031758922633395799401364028158203010176644360345004865611442840511252881737826556954028287720346393653103017136512893945644340611548698661482945817353061728026398965248273339691024529929384065053161150470414773721420097913256792418878947370216339105820524115873311237607242872243495957141869254647047000508002211452438200617660202620061518684047819423246962502650929396621915032168617506832984956947215281906138880735100024899182545842956797340852970267912022377916986647996833477156907372832641551859472436501518933359235641187334608268302148755993270804428101411789717339359338259269426211012590668406416767081713317008053610381634542972458560276504219975255650626886732926111949871299164187717643259280912447320899709705457032920691457096409782674505440905619012009342410801111073849742551783130295732042001299125867529490201449852454752001451509009627118188955286731659962929820746298603194169771185265606923336630850355866293069885037615882862406801865962963106032099169136491172382896446201400812700781779122017618086219468871081789907773727142578303116642793585053019519310795990871273433200380891418145617157155067366901777634518086853225236287355370831536747032318060543332601758132811658168578988810982712277740592532086923927354032781280691300097900417049404656666051380974211569365620728351358497286422577544982896968972122950474607341166147865117044170606687549882259272216782958985471674582829962670067478970220940581399883770722534332476089151792305319125979963909438879085933001201715795173637823058198552169031283352754832125727371788461179251153035183774391901972685225149895098664618800892332516626003193571989406043014717971932051152401655605139491039881965859535906847156084174945030952570796089987828530398404750980699494961659411674446722802360540285930293051803737414788965184242165684809486442943177226621953005305904374009996463698809518189421029339152432689054261106237497095154427578103580469279295515206139072379032385038737389555402528732126055971445554699526724303885636127644305284414556539015887957038593808113089588328214642241746089748068359090307355186155249288547239549586397971507543888375242453869984588183851086062828159701362896626231096115412179419111461427510860502037959244381655493541772403817509803459609232978199364791216841161020808174398474939119965532855615974324080067228972936525143764338787522112152958272164414087467001139441524340714134069543436416370375359705186742162268379406653730329423483126928151648371725993069094521417536476488660515394838465921699305649824571577922164224884192375848412833795900088882110668012925200376250881446800196373127922470174636311663543198178023296952978329776072272024194579090276283149652066453314595772335187064476088897121844530069493643205232603638670103865997064259142815367035470742886967742328182958551894565020297729281969724788625402523980551898950026590613659133444036381030941409710217059737241245521011629372557154562821315327435040918513584950103001726916013383906413996894147784840244748430572429042568503944185496809946925460224946851102451952312426018397667120941442325352183664380750771972289214295047729942282664259250205939698074157296118633589836023994300689846681983883292983134877492477816141077610717816528106557417086959945707351590335604560833870787635870861664870554401780703849183389426571706988146414572299394575501668395141761647450693945777999782960719102568036485579093546772228126105795435605514086729645067067824075111318567867248963232196872163104071658517359386030098267063043420290972713037564822318601480855298701089959169166283502907523065220541532922006710540225332935033542627914463427053820149766961967466432533020659458747493227662066244215794659898738710553925670443543958757852266170615136057285661720054803047060462911014007897490514961118414806691753435525750006550086595605490004275230378643328376680690823964404404473687771774220333833313096391683976294165838039473908084021565253958199461560484635402461029833309756120193654785798106070656398789780185934627336815756373310277014530265748636429752714051292558357501416468328191450610848280984258224891111259965862988465935580208624989548748046428355026717918126590776307475779682420003377696290014921095251796806622696206065719872604023341180791683269911363308395067533627008913261735169352089486965385966437086531909140206828286654911442526011540252480186789554503437626429119559351195761931464891843260950488695940940635924160913349505877305570228708766865336412258370094625587207272855253327962518317033769072057995195343796700172439290999347229789593917422384875038466964186410885055739434295064367116694885083554138646772755218144774260106817759317293720722277086499942327967679279651289237941718519668464621556199022425394015450551471181947057845592306820802149345713946352515293912176103407339216621432873645000413914975511182027951755244997957697165484136180295970335016518089597303551728485303272090080691157217401356227448817321306823775858936621501222376378387335932698118540207698498131987931553464439766610434260333178902461299536429504792686730951003615091805744124012164368443273904683331650729507008730841874796280009251785659963363606021755085111020576039691651676779373432800759962788676794731330362067075541103697710147131035233572952196304575985812940828976700056596913724643567716411246774010364839049003776927109586393113264420839217913810875676917994909629278637145993630400831849183298171521255731302368151317909475508060525946268023544517183684395540603742976524550106232275487811497612248175704678058906503020999555150386939738228227706565512519992441188711030027735650905009233463461335968372879696190073404788942232313809552945824056034076765414104096330078125236238045242418564935382427163166908316738957245812189031927173399771357644385185375443239819223038851443759582210385192857753662633241288737154651438180530316466267398191764567695484038525423307255682665903656885930669128609093825616174527458122636459231588378704089179503742159209610524862499678929063258114085232220438581761456146615162222865187319218344807174814983903861055026064567748522150641250477330648364278933190653098565023311759612596337612424890470613647118139381919956924041064816880813554709721491123582831427782133342283976481232469463880739814755387427081397812087681830142101318834029912539206640997585714142182406264598373217185373490034772220912167544639722465145974490596567932060034660774340726688277890651233829722327053355534641654342045407665364568917135589961068900939317448222238357930268745183646584757044437245673007909530171894907873681237388355502129986615037782051088574629860642219357371334277872498775699347430182865161815249027341947718142815909552003375766836104131616363805173395072543621600764899123921868826796347107763555569068671224175448451504741556352101895142796159375740082685205932220036739029496582720720920981871234846166035647469201249728393822864511725193129831651148399596123047907029872025552430049923935087925624175942571354021707817504189017325742769190336364364226382378446020522598249593367537455895979814354228474450713824281091046229170268893744381173534104988755338530906107277079150135648203375660535533736816524477326801781054119683318245340438970904626100211703109451890782918692627275518098461771807512798780131938272862173636721555711883694341872272910307864230053509788448351233196018330222393171171086103856137250038798232889247791730530882735701417187462916954842721568399112881643381601140412531460701850980800981538387558836837179037385387259626762297518243890913564590990507306896784098972312828244645407131427135411594166601421922235393490527368747653379455881634599070769349947826844144658918083886822372449281918010681348587844187191809990580700891447169891987546408730185715629070939084229481173439125947404017618421073985279772002191247764781900034363848573770299528982622478316822921660561689913909575699496965112746322928594562798390677249094016510297581311681234058906992887298683972408672958998218396774010725445374083686929194718998986756704124580436086171897429410356598320981423895443325081347949570841129101869210364128773594416935449810264797441852871918886787277765400585169097674865356753661207353586531121708369631728577523338043547066644632831858523155926206926528541811602801187478935314562011695324302258802229801382792825815664620105337950028833668789610399518438071629373473186720564718791903851735071064501660267660501332601323259225336193675756988918480183546921422881358755757948276591260244502551045798478288734436846678676399480223299904815868487443161509653959359725130415995166299076424647277729643745939435083961401978613253975158747754254109180139843572468467977234641631501667306170140101986150408134011160639953526598133360359674554843931145513378278689980637795141348444259008478249428410735572430800053928219278781816704894257218035787351059611123386320140529844871898643987047697914754405459978191429009316582128074006243132964179911952754201210985476219713335842592524602994122864719094907790167433515613351516089791111492251770332490040131878958034878901388192706593525403197594052122979008362613521636939138050830950186018426540260156185511964046507016429584859678458373563190633559912997772322331600149137947152674491774011034162846803114896885826981445210944002187501449823535699181329540602317059948181083211473558922922453226461085227412218252261920860149109822801418183687754466210003140829507215115370755504021761588758266090607075565178737910886921167207196653255195691948054440935334541105694414770661902636743766952333165432209663852219100580500439056887799763715023218510350900089580392583339200250606950592260753816597637442722966197487104429005812928744736968953906406148228727978933553267356024974239441448889216909839043030971395271579159018784880364581505906828407369869283420315770228127920328579883070977830876319666644507655038227482529144417738139051743511040672166574668499874608351977763010353192156808286496019073238575953440594922580980498352440377982904007371495277701155773676063789625434669256264813952819741120073565211761701351581874781966542457143963760020969874839102905709548001353346276081448372908137595885007849388293336736422568708230277638156178929572536656020424191856225119581455341934674892303388895882092422973951665789420781949124212502810511083026482467634605153321306181174740330937286242800875171971259913054003655728462370295572531675816162056179756252243769801758109191081068002966542786647137738075078299050213571282263713685402523084609014347477871474553791751932601639666918484354100184371712368874208923822509341140698878592121105267872215768833020244707365994546205921015039240076672711236760210527340536497239457631146291870504215180306683280224930524981361559147928719579362165884535763230270989088057771512876887608567515511656221115065794487129378519252409796636527475218541541817325367787564429329489044561704904413084727415703326260797737015193692689466427236081188626007244466003470135781625727582240967333780085424590920858425959206950825265666570228805568491054945213854343787879356176409577090202787646537415312950282031318782008313835593873145891672575334989883387141201519094977381631406636400573322808584394126159258062669107181716455390251134438522555583390502523584033009457725243128246122766124518161849171829021639293831807992044401266809924235151498750593578830376721410457787104921108414300943094925121698303469600396873162574966926950903431734221492742031400893230292626512395046628837893053237634723723146759266729891436177601126148806045342938891249400439473328291324516810325625578576879864248836429864204840146574639208158564107570211874110771222671398233738507626513778394406067768317165320782985147232609760425646748101370875616753522016877461660682417374907778006275608525357600537159666404490912155533107293815579856839903541222857800008154656219604925240891054659018251247349538160657464425662813620790958830008829616529223670614153410783472790528518268417803258530086066581199076350738195113530546163243542983210161032650073845967616699958643603027312473495180984454587006673527877467082753265213194811917729053760867814407915717201173705348067000483650056345669584737306877304176425706154695163456887729955633673320912120299008937198385584219915784155789626284831735463349044555360491078702122714037236451778066619097932468504719462359599375627113929232988374048257799558677778522361560447196949642219884548998244203968182508330693572285868175937647687545185477852134887743697449949658888991850469984118500155144727835531927451374703388934385355919143152822992624192078169740436026459664303036769780143501012509484428063275387172464443584346433778917094758334824453661281270083112329977385988038669356421295304349260011051271021533446634875417160583661253106247826054690061608282548171283038105570560128029801782192495469852846305878830116658116227989600395326719821940072739873851147534913111069308375080122830233212411506446917662215032204352935700932332367445046759530766271988452623708832845824749601895111246391278109594723669354164770874730149603610794709948980447472639236574976299832073252165062088393215601648513046048609725398381295904961038873909371422171197323466695222833731433543116887799582790171532379516844172137678955851815208215252129701028283213657366174523596861565807433778867740882679311983872717573574755649531393808632858915069928671085801224225204697424770564478710025080640281637226063668009295380859031006211412701574324312522061432271432099266317995032541051970033509048676795729222539909929343481466714125698654670869008068019808039749938573444329524684197507984994071083409925614485657151168502184762088220281582571325014504512459197382580755643627785542581515637105101584614910510933989167889993233365754270126235205962048135609311683658606964795942215274964686965517442029702429587289279009442237255640330327066405011965815147137148244489442084447596260206461339068782734767782299574542465494074979996433638493044539805188052506535903101379970914784960552482140130240975694156206742700133198571748009432903010350894610941210675308090957735942832054942511475994222875314147025698461453776375990027987068039535065556112958659448680774879845818665021161556607171879518966652065233881385571614602997469915044953990162096135142651199985017079887405692106726471242434631637478071732976837311770121469628159409146467850481427630684875777867912226027543566826395159448615178524559628118732764346542331531856585213194215753536577033788038556908612567694013989357645804679275839766376840814177985688977571066249470368901334227496044866360290374412752292324671191585383772025434864291646351052969967058598241609519308433450998825800882157076384568099480894261678391374852722296355369992048049955978090295518142488776909405963815481721059342343449207712179769660544660971660207670677022038685897415382981809099110738370711793615068662938578212044271404642506788288191117396526876953518030589259603644564744850634517690998727436173398125695595203394767530272097900530040724445641736365524477443464078005692764349857491660823181933553446543222178256154092995793187023323587837780414072645224481195109916004912313935354159877292281771658251186155838798138651712710193399271160075212642019628260214709174019227436231985633747492671870748627570493405513025243500039753791466641752452505231070587387172594490230343517289184878498550975410707894570995677918323926187132457516550150696264694355361411759795973011020235948921800059258617548921946944802962382369826467652816960527314668676020904158561914750009209411095519843595988840052283869027720957685617991741289329542147734079365117853603122792262657605145219613296597787213366684334063320617778804161563269027658903691868403045888887662008174560254117378687827044125726169025422409290345858352980253728431916245585326238022961027512544189362767425408525695716587569668649264321297681013145582134655495259479265263367694114678475448908882057015875795491928983615572178885753190924162517043324231887651341627341824274147518514736467888263297036179041310566685532017324281556630904699459740366499175334672162181389027837571924154635779108118437077941797784867607718727900975213509529110216528670846209987392204551621310126817765914048453579779678339182793559900531908662501161732183278852125783773185705653681178014602727223543205070044083711401464044413260977137716710935945629344395078677356687561117429028247210147361528337327273666279452509151775758339552776572596943324477775378009968800750336554362878627475266735420525513264962293834708086773392314115825887040284116626329500910413802280307614455588589619607661684119699498331175872759180250204050936809382213645251102242487262735333006180061898089618281360266713330052560306931052276451368009375554712259134173306809228050858701280534030007265748301790209713685052220009941515177248310398615506498523326444191061134180890007691455329957494419920001789727143350025786614014013316510001799795079968989272915904747047318844322155180910212466201041786128688318797418172364921707472926199640879814075510260123157286125631698322649485881481641460608370149324670690673814758533869193513418053128198678059837629020098038341483463468779135967363446371932304928694515904630271245243839092800505820340761565056904507718699418212803248452006728808678560889300719669355548862053676930147251236057462120506226370128326477762305901602224908960748151410670859537658566149025280528120024665157092051629107080577258876223005719177418993370367327846306009900195737023174634686353817851833354122077259757764496440225548607051601342868975411709456656904301481164175154494008027038392759124957621356069453655169147084488006014948542576365434123768322679442467824192218126639826731151931263492940006136137245748304682251429886260383168689266766390769821068248499251367143041916480725330857480064918574862944629031873317294658804473204503683033058139546019323502554699582368810608226029955537892933179236297802749485086686358662147120202581262846081539064216342066195055507743237100732315402244483903091333524750736011198720485672739256080318577081058692542049039374295013566165850776205207915980014586555907271706405124197811927655691876305782491618472607064977975631508892451896331640911899788456452643275830189414142143506292792157468422528347735559460999745456292933992660913505376239541929823735014980442839392126324842846856841575762677578010785052799646555808169558326796083857669585055390828016351916940334971578402788988631459741587693360645554130155829533417139341318381725907054878426260037306119270856155491344145872365199544466312338046548892168364129727273598782881976329620112776338372764022261806265148536792386988349014098512281950269001330158842252499729812661737571395851969411789694445107888846265203111732573959023362179212699107002479862280267897615763198843762704844256348191957900672348713629972571540990436641745574206109914950824454495519807896970694832777293859673449301262421155048382383481931493336357807454843163535273574604977903486028004478325675500412010013788726565505826865444512324038024993515266604194072312152980630776871232250988206738935493653840942972419044175633856733144956959022669236191471667685571638303202946451094082272913140703677025985879563281518171371711026679732993704376117421503803265866531961473294786670972581982592010746342630242297442403043016442504647015562855003357307262613942299396094502942939011866531750050432063253614090571915278150436924917447223662019176689653623053400811612571296894279083886209966958409353421107473367978746091404188435380952242308624756549992405185422732758718036776052543335825890459865674260835840983771459112894016351116988993660867396447756383009856320238269460749289682950700833304948492479212440326826981222348613001099119309766183292546445001571286392281642960786862860066246514535890026147129915981331852488014741768975839452277416042848452848156765940431342529762906955244891797688491630123553503126831663613267126434647578465564219699743850087705947270421767577326036567099892751317684844231066102959975746420096694479832217839745118633978634309647675174106282497323837392474123171598373639280821945167436551511008285965536486066053481633544844726050705138084055005305397033145497725515547488582060227033339235380228190773780017492733853673895635979610089764553717734754503656184730382345834144465095311696985322210783131483595502601880434423447035436646130994744298434099436940608478646794011091208172733061675138862950787989303759978492294944177219522381086318628025557771670335495242201914382473587004067595506094794369770792980533290173882719120697066478686257687005478172075794758826033183204997015365503701606066626271755563185900311912648000798913632317146557584345000900339918830775864234370641678669066496857554800517996320244806620310568891443331167812222695690044601027707067776798978104091851263857761959271003339612819922543338176139677622756910186525197314114680197053637659208195045326265313330803648320127809648685569888313530498872620810867250685387465978055695708426820242730900204402966780447034879923271942614795342918414317737955577255332990820470642025817463384408527536046053390736382301894598767253555389140034336946110942990309636665765943039446774054022521750490599328394424826812179698973620018195046208024263483019671856565601888642345854736086085158927462517645013060326602122152397504229565531394678000734299547899634022198063247652932421127337565570275732850367290071669563839798460542273576918879005961154318347988261522919398217138808150573006045084851087748076715650438721099541845335646340386219238242179612039763498807323426277848638769970515054947776863178100665240733386686068592308189046692764934916243461158911479895489823242114717709450944817379210520964375173568110662040146057209425778418011950098842035742956221250255503975684543046761779898229159972338050048818004612026125365168429027243447710825796763823886508619920237777821407227573857932954308094387141232457296652968895165511200863080716318417241565324341881221536759997927855377873855997435221930839173392563471226639012139792145291601437026796763580946300269846044616250154998239480571952869525269010481392341529430808778593395246872668486927352990679621168426654408486574070563364344752160452898436117693710420697042614209708787010485881147311891733154973029555822980526610858729276258564373919218228268239986704120243363064863732585421400135435043665469265890730778222298016255372727060046918846634202679608230155519376569462085202355153761249374523347324074766521456618516351220186553759749860876420616402025133465087010014541638919271248921377086521148215764939252503171562707784590245223622264939788960091193460414258312695806373271498121711017693014939867804841445574925339449400023594276304694421863154240898815766705800512632989278669297901479120470075688419479845706473078479926920062634803841312501218155696971898595035067193105538289462285667263230203967118012464881184983378935819049395944713025788293590538897857669096584993411768546573431510908821765818861144044011583532001772814140578081835416106378922531742706878096907575804193519763806495973847764795598561779351911333169349342118086586920488849467988495005810820877295188091888929089286303818802786342753548553960742974557339259706565201902395290533557957566375162052848298282276644324205823152057542297068214083864729517792689977384196285068190799867104513314528669454004815738328665472660871875269101461724020466073217414160829890612353249894420390797223462234259519622699493186464031284664393398489833017448110255709441110990173099724451247535372977221568010190674216798514424566907954283483026857045229551109366239676961011731821925643268207287873130850034754489875524208401577236571805296165143813717430476879248816426523754256926020142791918284526142627840670405031054435711195106282073212669822632452966467579432540053436910049712227065729619211007460246787433307756359927760686548509402427250595994788862958469920424424823630520032070617687266561602071074835196250290505116864854939500156014535586944754702548867811440159101405946759260714204245293783946997490617995874783543000175781202737720174136874794386852405237686697189003792661788704369553010163472351595792246009560284209933372327472532477173877339242025394074010343351642483690935881371521867681475103240518384585953914636886506413933065467754908525352782410800640401556052147201322004035234738421501706420393632746658241887567269793970601818540576777844132172874863335004033220132447032378425022182243279420793087660889054824019012949614440797626392121881183448904469793217302695581054300388018912655283307354233341262633332835140200743037757963202220083283549305243993237449335185667323183460381530012737992849997829680331009524329642319209946445173508494431110005470535476117764612592210814004664643117755080863403944477267234679230894949048590578326562406582555519517571894101199367359946623484747811011073017552757206026522353663600751834344646147444297613561027254193261539988663261382502077144499285327575297029533908876614452574578035892613148197772835886061422392138186142618785773317223517617695878083782757118838775898645575074912149675537382130326724449657042274015530420759262862081139181911440213076272312421439832326827561590801626620204819450157950225671660404406807641226294710318973131171291447083633471884187669456954717062071809438073974964804944174067427500027002152469096538849363037645495587246822454477011157932806977058196046161087560165200829191126341572950603302991046793059196363199811154435248468773032057185306455231855187539138031349386054672629752212281109791870201552864933416374810047180960262400555268893144994593054623753610171817746078575929145843698176860619615057733141511066335469130256447642369586845929740181898398852218538112143579223975959089919692826209956141898221676875325838329827036704431984831612952477242796540761910353024413163370283746743216195491122562246087489709763145888641460212336446413333670361896957845818554120356171993530250075562289403544180332559731757536676985458497298990713792154434729940064038215523658359539630777736838366480003350235979798998200722340783203626225757494428027661724811757458325610961063041335578828818547620048487818194341223103765102974760701747726273323210337250243453057648702404181573699052565851045172670335582432397334683577601702440683402541021158319395007567778606366006287305531854569173686344620056063392048440074743196055777045243658706963121828503986574097612262677498957916435552840884290238706163565387269245465221855169957771456188473505604827372900026365808666875390623881108709819078086422167348825529299720746911651733807684904881374052035897174955156265189756834972005755758898082971611135542653624669667672117510303261045745282079332582515232136116667832244311979885359335432352413181876245880119751290623350941965615104725306450294037346008878950266764835215470959868171980500685089065245746535006867441101850840879858800881495438847455238274526176784531950426690669086790260243469434752960983542621777135563513502423715773495319777545830520908521317903333630676259906793533369014945752566255118143516756673689667164110454811429912921536324528871403388729378600740919864131047824852063729217794652370679691484316093495202048486344034069502048724658895266069701118896344337224321923356685224086846721083255954378252142629291450223954472738609143564491476060243449261786884355858121480108518085996076749365639714675007886662680546959303060500153188968370212532874764851042571288313004274834040707205383874407558416958809057925782743303678212365194698073927050186797673093238722176979890209605185106305445561895596942113457760987992083089727197240959657192701228108792795315760342819827331110335079655351524056519533347682184562891206910833542932442460428340716502897907484063790102596577184911872457399182683712545616865256234003597941834828265243491496593167430984836114798950993658691674272819092804595038401300245378589643874612281126410986997858512746395699791340225609738135376147971123150337548779649157663622488913148402774856184876817681620519911303821187336233363368388290288242853301264502448691753010445506616437974748566090305979601743458220573812320545785511129317972302853967913400653284511568675863555542461043961709785154127690714836285271194293280572172379687527281132227490149346049426159341538406487555243061349886797610031076510644747234345972118768191725574097720542816771581608418506978593293420619081089398399095224303907184252424274380394931457070054616143098818884319402995444502796905523366725406847284388813519952839649991483135933153003063864613087220082124595561744027825255893797397951090271430694509617193747824968113939054701526682321305496331797047603227628348332667844964282993873144381479158307746587930779406743811988482235101728237083970661103977901718824118755994269980780597493562241052321454647702926636635053340741774577571597469100783437614667770758286543492244666993840545108541225833612848220679228483454116126223984945233115723432038118358911781629866346450295823534907548640407215808982280683323696960252382149704810148454594524065637010605183100069072819430694036742264567028256127196176869285970557659959280929233399098846734524178312828766631653194372286221261195543778395214085655539624380373110401142308840593312627185012329439529288897648978008026857892682138430177105021285271308752888021028486187729241955999322716280151839663964072961702092035010571723948111746222587301132630047517352832290591250773493717119601891666080244991783188159041185523834437944665780224151625323814158911747967746654147589659949555579077973910298432988270908701390148408149391709641062348547292470969733372281135091083742229894635370577942415754147913447431863391818604540180603311257691185647426015022553560009780342933169933699366696970222968002356687445793497419649715630651674619889872745665878263590722216853782973071579028847969465746597468539425182273874945940896511333621178806226996171566645570050787186113151839355282191257699228294412313982660258610945857338661051656669258131797155034380413774495307501202540948152580688592595764265894618596849733874914345459959607834419785784023484061136303945217999002676408592779958339323425652235849267860523488213417379325038206446173331831762197808638476266021392172985798594443948941890618491563102975479723472701298180588559830101829691957660143963097326671550541631826939892323493765481235969198879698228497465830119301601994794136538268490512194075088960714020286653612805899113942878534613711729845631842278684025318282438189720616242949696210785419817724824506475487505612263601848704641196159299022154084868837619199689591951995049262514969462863124591811452218002230786332647631893213458787356540200189262274318444332663468550546284787039928900346117523880235504678263057571326553349562960847797518987247662309359794263318823798677371275146759141645693752069554838674293714660182497390008200542622212260377342104645951174231250668470283061769403625564817984988141791878534186616298655895208011307611631800716919075325211822053168984782451619856609730726881095530462490761305667368021139292891494446777241119535402071175392486488022608615835519818865938189839979249305286856270092007713615992984524066689496432104739630096742262674992688783365273022567436433253569787937833701764272726288103774559994951909906838493583783443971395366693897910368567967548114445043259171177587857690725210190163863936928744167581481269556779859692259944467814825339083526458235082770771449748067738534763129096612091320570073915505044601306684168292815760466337355914793491318291649729785051494958674514805318545354658930729979911299037930872585658012787896247454082017302454669527022969686423483004082578247906625842502054639052566910233582823282584151467457253141209144681327931596644162363292248329007058018699825336315434563350644908528931410040683907655808935186297899605865320827910524898282384894084629293099007244491600684350720192049273638717634092535310918982832758670028940492493887955235020542100631245068082930146658911386006565428587047478465682202335091473180897195343798881304321495197075237952251213729159705287522973597118161566765743069928556157144223880802111100796070643903078574664097964135955323878678985952538049214592704030401577380045224948616052655331250571223992885524344528324799517430624756293079312013663916239020350975779244130477484398938443453225095138234470553385128549192178387929525036975572394178408111311369028693368453921425481777345756906662735313350808894392443593573622140421377351108509681475411022584542860934575841822439306023171798861729405668566388855983320864847612561579362466548835645816636727825952814023536930898702457577000433141245005609128245261826079520527488882233023387259071314056810559519197962712749918406941321875703741160253660686026615671493918532257710411411851896733086094378414840805387700278172277341129488078620278031618452515712027071514203057103668140313248768675178910958982943672069491611517315291662898278787216046016244727146430716011099520862665960873098853839390125405499178050966518510054714509656949517057580552724489085825220443715706593326437153056751563352816843635608439390898993223766725240456717942383343029370426093933890444329843974763818639982269240691150834807345153924922172059952136857938688117127482316055827468442061091343096405062744811813235880135062054134606707392631209660313189460714655189722324290583014411418979627710692455710660582622635863067356287738018582012544092604908579043481990904418317290443623399080890714288292955631306382502736708736498256469907862205114892382269317202151334753271767435612852541515334697995969338134568020997868457640539751282971320041222438815604735780909395901158099320866919456508662089885997915559077138954891585602555389052851467647405784226132913273698428692680199689626278565440794828684018223470243708320610975446501678285501866964847063623321034221807964162126043627248107132027932054430903654077443574844189480785221163256866494096744428300824571436940538182317929341054580069125841309791321955112781074386819064065575410640529584519140416144854043110168730505850651672426866211572383931155809340694141227838839282792671891783102115652134852674688278511297347644391802297254452809931916707739129921804003382144470066519629885785997196593404349899587905371977331249578140127794579737390721854634146150301464347163923616413712661236872425084653818668885168333025149928997570019578085335946222771050227976911900410469930057982494080193575865139425207540482621876097268427153724143333105987050041549139995620373993838652627702485675683817452033804294045794866342106475862954290259470279648612334077495856199242436180186813269889990182852551746429798842462311455900563282197715641216792886491183017798892433410284581203305869699996379254285837165244866069171932288590630229324465003772802386472304303826946536674321382544775248238558531189828704797109966226092833669455669933443185108668690755213417975337780364820809577096814914046413444703696935559683441513434485774055080641564085070369092950083453623886221914389497225123043361740931856421386194220801837995914012479720383138193234307326426478281238905028283529901801979240036553697262428140002007099829345059804654600576687333345032346192492405998764809374242756809870130232860677884880361108500148383873598517882496211700246676831499413495456567190472355344046979121757024308663967588674356665942180611937047693025467808304473396299556055503130273905502640963864662337130481544893936153975706589196699562616438274123586573036193466158597454915320370783185309069942365153286694380510509950695817380396970548870003092329391707626846421657448276221686051255942929489221849556868722853797515884608516029848091900360625893809824192050975700924144924423229625511784223770681871591852915160410246477619199671386347192039778886499349071834443609760410311561439336834966347551046025744879901949265710149743252599149263093085370257846836158644172427959445472917006504249353696023051155356722854847683197124955734113253444464401847796026427834447569979579848870429172982973167417976419870097145387386862224542796996745236422013145800481967111837221592233936183591369286599765252113675422002355161253667146609084350698524525802220106728042863222360708062524606130152282471305237014814023842502155547936767838233108230729479997091607124246364044800445304778321386110067855699277231742399036629285284349134514522087060719868024929006246639595403971659171558509263192929026231306650466445640517938171777736195040501414929886403871596748418797154604304208324760654032814452713676852327993457462461863154785239064778488782075533796913219167376421962630147447666957911343663855089831011040403652693552986803300770339503447006137128116794823431587296719424327162692704174308601036707248172892861592071736170901067044114916824373363359704240414786630719311194846030041722303539252307025243309724234124334242846314867797365057792077936405351411450805779808629619113727901053226604185503783559156496960810611513370969157302846632238472319430129134039257052591683395340545881137730700285312632793173385275626261869807551860839397401657907164609496472229350993297649425170769783005582383893432938142486152763697208000253244317645085326202854059506148932113599883655313212509684086414101149365358296487064721263078882386313366071106186509489727921506962646909564025515465106714896434928349392622666446428335217393427047477595040491106023806887650974578624679219473974219591023921656994760523070051391038200827004705002148262343005606775397066945547537289275540647429250637280145901927255278820852953882305174928420954491640773472346274838933133767634229219545344715001936314367911246072659791257734581395771047504797825301216053022712745457548843447425470630428478692002863197922723191954548173218309123148058287474836608772970266376965192277692618047455041301931271657688522945855544109925980653076830305676740317822142324947243720623675525318201694505364148834238686715489103499352531354393234705407812134219977800926693710984435558550340465467977405871659493035197199759743347679056074785838455778035679906042882527441472528668833318362310343540818724360343856052736450990702067179316769154495580107557320817474897521547164491427008684786919255193470260016891960646732264623685519144839569009513112463037430839942532515491240297497970827665428512994981057087054962517658392738697595310872106082394787499692350610409372796808721441703179801653185571811269355483634084087693265926679522060788933662770536725126984923221283189314311928207866496902174647168198888372569004885429207959253642747108693054593671466469836842440150456440692501310030470910021389721859739755351678965523186786681768765926522288601504165499525405907156129931852888724356044527988631839437316320003874998351913576942537018722699696203677665020440560138407298735145921547722781069044044096943219052435686523956436843874378949962995754660400289707057185290122636477390586605908685022282257932012126013262775741703700851450452509791882191276549179806506255055474218516812434821173005587943779916659430568568962419815004457086156196343112422546305668366573339238833439940814785264950080908356129967313041728300769735889762101801815216227834556855729330905200697719550238342414362354801649314414317624392504256450906942457582442011229643635313577956843680766001348360658879526871820207237676857237762935884251832378402426244717497036842388784655216962603423277858001376949580665075148299545421829802473225343055780980089064385553906235437554913787563968802351624153190964977903691140655789437988362634093283310498536916176178993283303567018665203665401407982354246711043075540879535382078418717184504311695131152901312862867852453588106888600824424398467678650978754325482076768670777670537260547917669128932600822676250441723809905465452048159542355353953265353487674031902246699027763222230798105712879580510959579006320368989069813632547584555508479775285098613619010245744851774169433298795831513064419024994050141031251345834006902943873879790781845743183569114331993438728582570607545380697254627639313820104953686714945776567744078667186703660136870085374432265037164705664048845394839514232706014433224257227569972550695898177298154562172927944253423707560104409021219756952835343291858655488039834614273687565157591617913653790086113995618436498250959980256691211302976582205647165916127578379228605475160298388408525219091722981653601798017965178615561336188306701411924047816350102624525157404217852643265523561777244130316140463315357290122995132381446882127675264644217068736568144817231875380744233630868194628360822622471545285771761970472660930424133063317375758966249396351165381160325276146945118449200715305458885934154763237115341491628700882054765698570573990676891199348633438214920750739743185264205680852218423111092840395572465405120176771741671788254319901868709090367088039688782600972813967516552210629119884452480761378869087111866547850453364703432454658180474044457300556906973056662073085882143157834799271723782026930178347737821912527290714621568787520060504665025911788248975974154356558042937907541785451298371879867437980717636597476026397805675132870672280674162343001752983942914975268912080546011535599764031707875514002844459386086138730840015147681779238589607316748116225305189944028319837233678131207500579845699125619842609017357405186376958924131125621474334426844215634055046704152961922510241207122255382457454170762797411038138402071416747593439287309573907983747915060674720381288038128107523480908622849387665535958536225959262183806422877379458465346291794762508129139346891245513564230291829292528400186959521029683786513172796853622014893647302076069429720216290896243558813435860695468324267453098655165428814631525237237040293613202258609806078374255924680247938403786956201279313383467362938255847893079095980861369574525559906083882252360753398071677425252566905015726618243679558980208981393748628096409969298589518568438360423007645602170574391207736317476309555506921087698561657345988547086509178557259950657686339716929555580987272334810291273970307138674792635278886409047978601276264309034432866570013279281503441423737990347046562783476824131531471641424354611153480596362806868779195778709207333968394203180239383915011888145236938320878243258452861948308395639257244018835564873537773920698619547406409991837149586546230689104623397420829968418188852292158066084017299928832397865734691188662762378637216376815728233432293545889584335223742870038783008948519539340543244291792372672807117259098766685155126505277015501307860114507416812021777158304298211355332509127079989397454152744035529365479436186681586235267187709288554597869488041266456978504130288418686516606480618238733914861923785353362208161387652727502381410791082510371670311513592324016720643887693444096303151145197319866955667981602836545675730603391010674249770117986599914075498136411182906457430743075101872564473056991989516177583841374193150652968773684471208374643663322677642016084098115167792177548886049059773056048518158469213522951226478289367127866632343153641776427796886239774501567977588729981702585800688827116058977738542131896678616329789990268953748832862129303386150683827716341352782947493800103707586643929393257649292634590372032651194932682056967018815318747756119394522130639906954877432042316650323314536601674621472599074159675773031343860632074801675874716960257448048662640194005251426092994343927350011628861589319618402464833159265375834906820643411841418512989407390691264941849391229132376356393985969769608999805842638158728697992741282281479152756460860477872091216363066690382013649343593645379204829995499168532004707418177998787497071381854587121292410073194200103809255671806941669755445544905286192892024974827152268520255013761936059897183027421719546381346879482401455143657088054808400835499641226178241941062304263999990106471042290438327175071100109335128431611137640671138927579986734981745089175855229787095295074786356293295419412312003994510407171570839348705245700594223724107905962133983539623457946089436915240289487824140121680978086075515768837427715355200222746699319052696519915780167434145695370593295266848113219433810840063298012559507027461272962240100586127038804700295877310949503427503783547380805343736722300236127847566680115811161649125186959938727764332308279610679060254718145616588590698088373250032248672816977400632200164656423319931633504598742671842402685843969690606860478055950212335503828366336232344842964780253360354936935998032077922088477543910242340880646807814935245234254485914983067170153878898371692620640863177216831509592349658569549307208976372177263475488398328573044286124487471722432878332511940069760697619936371724090925805033884054070341733193326539210828344021524711248521372557432227721987983412772450601154347992572646763172722824234661219610592926113495823739176201963438339803796989083135110657977551318568090887618385796542783748967656388982304239999066814304034848317957907686673437946844081555700797766188802240466556783448561000186186114555343278937967447000654522825628311338815340491818158381297126055714435595240704722809359511074306384558508763616070346314334299044466490712308533473238213283430737421326483241753879444071123843091294988662035286774823218752535395553318339545119120746884025186476558721291951782013257198235732809741391189745074812255785537953189428634660044286980440667538765751058559760466421832299805679023200463908231790931971661396770275511625019070808596748421358214505484023404419651985278865295138536941663119020044652374778356365281528125641767936431278771462596501325764806004297627929304414969837230210385038301659648509157705736705159484797516732335411922763879201550145010434407495954067555968196784913120547057251957983363643381123047231316929942133475505666044198323046499283694003357479988324368181367720504288738825536021025039227329081077674165425270877112220646466291465226380144970795331147862613543373496647915917231435824896261739065950884427517832758499247513435552463942340229280433568312495289946281291096343419536007614441291857927928378640603514904227297289576446629706464505082896801781023290238482988946500824896635397439709416458935947881634050963490827547435831381952918735194708528460970255436915122256150434696349978489291217896886048637529214207132698286366356969929830751079126800162757433170007265112827458167822216759156305767709067165644724491996889752937781895954842848499139617847284953618821587982046647653144656540583116919408283840619162500993104649494953982986657518061818607977078480179970929108082754926984360989961116309475825772169281170382285092041547748599060145849036489662926809449183944336854347491341786623805395976188539647022944026626800031524273107665994864216640469132383441792139909728138179347904603210017353893899691735582627248480336825730101859538115797542374152767573485517773131783544976037965740039213851450115491914427366870198626309078154455409008529972131588261224954664602419924593818514190497766028776576680604188944073861954783364412568875128153371884962764046374022851015552389142429320644006596783259134530080783291121187835081069981262905651592930176417463551265411443431181992930362819939706917030842254735720559022786417044009874325962097788216674899378181753708198262833487386518009440697354959792134273795253587207410980514927100899937308452720691450466420511169804863401480073942955677110797421730119213987067728931833032134281084959453078584854620624223228404028003273064088032130078414364191331031138104372289192965093517147872244476635558907596911514925811902335423541556948221987918947858659142324607962236799676793937076588528043995939318518742296003554158608496000477741236376533305585037846954459900010315072578679381942597050921471976528648532171805781892619050119236353739735331645392638055454414278889897947141639479947914441126259534923039601499201301442267416360658381496465829826279651518505460054331520019325745245278481357526699982678781129774208084762401758813030217821802274124001506037321771788244270925708944957139202797936146385840146295080567596885739783541818610911297949219271057523966981602241695714243881103336228609647696104336951736370043368007888759054436460370940937770852248675396857291785136010736960183918243493012946221384453437546502777046895109351494492270512844030316597952144931138993139051199497821611348149748815398148300644602021876020925741497562166197227024246867267639170781110775760567848853859290451725771429445073631238401649093031713215336837911021273275312242373894661466626860695462820468815431298945245844290264926522721640650354238950700588844837785645690265572426661038402305005111921933571661138368388475113035368256969740713190383161691815641125522334212968105607845934194432603381594612720733076327988750193324204697057278766241828972979733812848931039567929383760353579123027854695817060697875783333881286275261669646473455841825962933162000159325417629830175239428515759853507614277239983769651187836997980435572721206730517424026603122522152982070771685440524433579578192748516226182701098759588905548118118219045888589592814338155296536287637531269565597919026370882881175181420206084313584142823870875280956964308219873057382038559938199999649378280561066144948953793153287881763535366251164760644209085708330059122542014286268408356654358298515139664944820679176292107821703181034615433702365755027313509937400017987925393442497317775672106432892579028944954855567590101020850931115710934489183670379859236255571762385547706987594623873510553676393142854145921291182684804379150958730129027142137852228981904631063028450080205332809238327947779185682241321696720546705004836144522805275499405245508557657747694193069684893557552286600150874350510871744894923398444315127232122170204265601071906575413020881672678607177538075627283398782115583275994303423950919502535932561764623303769395567351965794064766610492139029281733767945621722085040694878435077377939170287785121653053333552637675687884492607399110034788206667357611705307790538560798514101935020867199398396743777215236509183948883169337034094839500394616870196164116150927237598984599683094103999357708284547577404706833518614072102596735855142771338474237732456451468149623193162949402858364068431305123954175374379589195084702674801569526196613704516324811963982012629857412161412473501478439921403156835252228575980992971858564568409796149548335703775859975073652681300762267781343309603876078386968647566291399022033506446772733538755254517305019759216258913077643900808566449830169737068993482047592540991305187668776004770821857928911761958764714082918447682741650571366131932296886556735554553373575631107087974535232055214377119517490220116210932330447475367455766749837004735384644593832731266885204462311193441365595394930649327662983178431975163078223902460878097014234734286494784207081699823799222329458225823323973016813832957346928021918927846955516845517813861992012693229196074172171058486680480666321103994436817235655462080335478527110183766165191619027077880954298119635146511227525535631107994443764271989869962735098340043729968546723108585558149377303527357917867091001351752467315651110821583100677989574293625556664912875988471121680472667841010047726742287871644243561806458812792933661420427338691214605735766424145426885740700141529766859086792869169986536601264855526846542631092551701811384732504664135305401533962095304973306030870623726341290937079183150248343650079179425662248549330182481845564239533603156835012289946281597421679331890847131190777949846092017233635686789394383514325483126478662755532405418234425699569012342846344060021082027031177795655698126988840684216951779531016622146467757362834406583731271522556382242550674892693497075894578952869953682300909277122418558423297279988107593378122647109010367847028935523765738811854693428143922279779494752325161534123117994219876855400571931647261148055378487299378863731863388234371229493648843310269239573363025693965221892143636792196739960836200277933230675068209808514048713258882645241919231005660578205578607150817505503064158234604369643248963999591968458386924993730348884336349973502684251470700579899586044703960987017534926346454740381926780269183279685624105526049899989727375920253756794458517185031138887682856870884737951888512015655867938133890415811917697596277786173090083054256189753756331008128769977465212215241881085677951252196626034785399825744932365471786728946960432220019354354832009791178975914716334691901436923656190234100613480664929313800190443961268940508829278372520937157700243893671791701982175421841327124797561104963525182312626331941566349044160904462332871776463358427954763724573991806970943025622283208004979630517353944044150384325370338132635896389368874258531745288589278095608925537679802276548604198140586085003890507633276339238738590007763501006219919034811306975197348198226961993430267297595625331673423987009209411446149101298511175686713976274989061734821771424462724588742580457861336491103649145519367311415766270801338372254693643875338434408621467620421213482368649830607545794579390190591021524190491081960948984714142990759902444784734738465068039712127787608949475512195940062861454656739433784288071077507221733405019254026885779449066283768428298460416140532517632110749545900646660744763175167243084266258591046136701002328023474906324381196511407636921997130742698711206520933304668612655157959768420555782482939984408428734685517030804768117127664103099166614703702351698373066413795780822131248803756741494461998125728651755635469823062951031319829365046771416476845807418611972721341308968752719737642211532955517217228247448157069131508350232525819066030457153362488011270708561736097260568631834595227473888508372778669991276171826323935100265827285706128844549488533193922353665709874386358431096640760009605964948722822849860065493515930970823597685191210924934130658740882944736330974601393258307940554143534184345322536737156162067268601538521345999032811582645738843162199512861526825222943589468683447253131482172329201973710111675683531350311340624868758373992933309639714864798872921365972263368826245721743335002645339268788344436787248700825723171256327506871995530624615949181987392596326809172687060807217453933980076389066261704189699814288679511500519197585232290220883715977682047998697308744666610696373915635184179765824603045171946238403423883407719380368020601677945378751206366840936067226653815750375013259899256252282828000769890572133429081979806913079305660062063884597858305897386990557794477401125771676326557995098405344604962073524669545348311843435747659478645477116727045756163083573115529590302807000327035736289653599577342200884200192716181269905478695877818879650486294598288232478870194275041277130130770253978346295638226003409318370724252969402457617202108851527303014822785876732004160339746143348821639057492978415581969916016526072558487033749624451895397320533717449491349464878927386067503278799696507764633719417384938710968805136079852651826678929459057273535380112011898854614206656016787189407304263390499040992335915489236588138536481919042366033574509818276003165175663347024248366630076698087243064676652764448355816641932000853339697083287411072641413244407919965457054609561780408027029953707698430264154349708281305350545609769160846122902199685646041448675667109303909436329364745735317509280288282652581950451498278147770736036205629692141813673742870062802187874554521089681092864713924039776878869468652843975410724612289581493855887619870987420167977849240824811178606368244934236559237537416928721998041185929416082166840928639793663554440374795993040977356554886695297943872798398720802296294056258083304934137568952628326296398030850299061729561815534315174303795013855536064282513874301550477914931992300167749118105812859079142805066673287462422005234719183698205423965052544927362464481368866594014590204548214480713865009951773304866196777560727453549585099270273173725393196829929800080638276178519998982796809960845202938553458873942635068059370213048675256592942718368380573942617836941621105617276069309138831480336189148606505992934447388989674237704735889857868828535015436308950624617429739438497946360596254449676716326943137972267152763558527371286832343002964936658825023260918396408863734200227433736726253740339193003432430816713921317598265464916973633977507766200193409086759909927868098893142089696329767032935035884306358361489484373209575712127295081348919510980387318596149152922669183503889725805064195542241980957290711926765795187261201967515529093049430207607353756880475649308668380189833763895227408281682542427745699196998544993550514060409490269085302238444248754507727716144584596711874960244304940521135793891330686500253613533368994989842278593950574880153421865953808788383509113722110447429643323294722044633529791548052732173909177953274454218384126296607668603828963572630067418954801717309653729036641229024756904884301462099988082378713037694136424436807771826004474053545608846091263353679819873324890472770841547781740276637408998965800889389464749877450765486207739337982733728169816430216580949142995157207542217532533676595813708720143083616211310468561820467069787995352114177868277650262685756797657214863844312731223438437822218519550969046428960589298840921315210000895985556217622360108143325836838912069312113461949777711169945983024214491146049832077292258759516793864269786434992636640346361050042772124818944176393304367436936015222458491940822032590004910897343352402334123313868715067010371287873869780552916808434455143582932184528341515615216245925735775883784705833385876105044963761091472344680999179030086219360524393978098928803121437950974870457811907030977387497199577331050391757865798134571368371657707161295419296394815545609205539420457635899552154071379211369943596523542896010525753302923445537264541505029422775179089670018883411105998167067376635935695075909895996662695040096552924857543731263910576988408728346726197044107594976511797821227575071848757417439490257552507667791956069361510659394623009065743865778582117094611814198714005509492640139533852808386556786619773321045199030366264101071059265228066841804415058321877110532357872407380896955671737419081963596059299241888222414997892211062750579833890024320276610912463372261268704131653387933441232163591894310600284825322240908213265656190511197278456795049629670827768496019442966119616902854895096677890964077317068827727750257089425367167716033605268333692914476514470595413620343198082146438315397837164722480637230636060824997392943259318665605532287304834664738120851470278703274304144567876547864254858449374469876634951327266471009572379300135562107741684533773194452134824610897676123691255868815269671577472192578779925323216833448730908882156597818957665015221667991624722042930654585593421382146069368103959998238123531230484986996715460566156727829062711220940698206134073815448343266616363197011932659499797607647391591727825462671979919823615922574558598420365996696059959020158961114585520398250438725738932978600208060839545614624969351428326874474787057676441202648638686667501020959452145090655650828621016467548056170166409035502794371735193905478712957455486222504965798436155783234350061105358662062881513639007435686184052781245373148410942226361386105515024463735292573214313433627753309893132684019117772760802319069589101381095215812433181741889301993365293497628378996454151677129055009635042254262643169642920836436387982170272422208053691273096776498209221229833537498511009861756869657034570635143754761442986661669301713445500853003070680495019170153240371654892645052485023870225689588751788572218483354225203932106988494807424660641991444256119904798880352496499881015964403094779141080158465960670448828211681639789315041156181668992745504327610753854515474923848586314904400969595574766421350062654202118112496096413542700731937012848712818971284760835969507116787112517483897507331671352087627302598013570845310519981941562639980151778003993150038112444052133869341944909596047825762007999190900767767947019173671944779641208228574696862916120795515322734567110177644728673915993085693856685043345141093367773198063583306846063702255552343508791291066007792531077494647779285390025473711600978571244691100278941817089085470657770176553371412051008875072958589556110332877427551960914914225118629978532085703297306466569370453615283165734807775436717319966405737353902817807418306458576404477403258360545034242914564777769154188905483413665237086278671665453039342835903347734722116884870024779106031555761851238542960397686435714752188681225423887250741815914912581500453321140528607989520821785911597720890100691062415407789388307428421710950090225528489135632828151987534506484988181845921034506797030214932726200460705745128444226686391430764015557255318920784245561523751471469791471159743876688841336030333377046913438643843188059795944051332777014499141824512143883011320155916076259072993223692020763399095437287887062953114195876967305107744067351912740059716651321741579474065832282872511745203248528002158960244834736833973011418241149098780173636428786437365590601190008927307800741835340745090179830872600084387894944326634514342853775311304053769178460738458229840782749526346540407744623609839872761142876157874416427809043856401021539635795190038519955788656589033746256172137681556340023507610622798577507203676913300221205457133369350729060508214190788204592787749709891054591939788498312432221399944660411456078607747004617866608263735883198317698892539082386206134812173034179549788430307032761871746962147537548366370356538610983216143995523112747610112132471102172806785638175176834044420047186290379580156806367501480913043318706435114710755583159113177291763865874359549033192238808692684475934309173231284890683323440241756016918750923524296345365609606191641057101452472029649193352465586376531473730907625614193334018897092771943742899917912955327630241982571261929185520079432089731155501914799822279520558433042991790558098921880490037046620885676337191316754102992668181709958746640049796023697670661884536922671594008491035488640080229661351665594607393705346861415091230245262400675465719505183876657854163918367412145993442379173588465097801533634942865932599155690429824933393925697657935616123315662781440486797038458597889019402375079916498926415309388099129652585857068537873809456908930795612889533615728753736633751379234898975278672444658163743655939349745887035605580773258255712699443585605857474288810445425589391152966222632714946321494004114865163490333365743632564720944491185810243696357871312922467234301662418731420751006480870670592608835383226899784014659908977726349499590172357855100813236416128996776745278888842051520149425866789102518425257772290752409978620402187635259956293016562864110910995136975754696599039254057028713869858131968966340693387753597974942299720435116258074182712731924046356089764329870924079937675653081321712481468929919562640093707835937297808050738640335703175530710813094108721455088849976673117986358486645748900714766888753687396042253012259619441148037364965940739289051932593732217836099316734602726754070797426923926610187992528204557114538550954694148480946563335920506929731633484237292800390598066196301010873776751724891083631313814707510482820590845709859574472173935059627674400447897780982201807758142548999518767764561445833240105385550616445031245931517802971475172748233778012754533706418517341074693199386875323437098767114950397248409056846589821724239037573135553660175492127103749725041148607106992866401836267798965970398639404700902365268147217195344579031609732533252644488099697891235590039067390026391364651751145138246897378877815655708250460373004763464299200105085585431737649970392901178611975117073089801573148971235479734288648131843884018482631737736733935827191185455891772405416311878983180977740724996440140058955905696953247197159137166961898921889070888133350281267083740807628751678508733490867238576573748071367697671459341529261715874410633005832585082019869669354520028235503582587624882400669064321475143849561103786572978658538890504432594468031516800884690722690961539947280292195493326614706230930264724763378005351486409148042717771717330667415598951312447415119157973848857553142712754065064281058747371531812067953422293285225839960983372352233006133216992849668151705799297900328949168779997851039800725401723579165309512273200697321775918351738627059608482255097556289842263124180464857498649693566503424540453336333092609252328237271775126391267394883800736890172323635337488659231659437463074402419210860435612274964318926817551183856537987930408961919752670076119770104304622419532208859593038617746565689700053144386099465660449882707026353454810721099622201583258796219241971403031268820538269966976798176097232137388627701011448122883230873872964191014420497665865759338081798519232275101514166041077040680037444666511893513071853674888037950687455693522142622537325862639888198154333799280671140406052541434982888431564705564991861048511705707624818082460973295919369216361574399973674255578562067139081196584144493032284799778050792875152309581294260419906971852260969609054730011528161256539093627605311836280036554535027477470840704378260497972156248799832211761402970603148098837942367059678189870775738395313240421664034551640276316412889211467451587424190320093176995166251744030575518641652160841493105256609844130432209775212185182165267407606466718950689257345376648298586705569041944169926183663291627702686621118073452242050404429154519505173224608645211337115556320042072570719774020429724885930040812640088477617627572422091919977763145094472465729757000289226498776459811812913788088410353149857773631594871558102116876275673507119427245304190386043827559142168818485015068667561786121486703966572682824995959648319739633962416433137650611296699690636483041800429715100796986122997381259061639252851321560303443042756752368862229812504311084575550974982496255155417597724481225910337596917620369503803742684815403841966522793819459353190790555423884203102247762988905944184879143414191778537683403627789613233984312038474419623302107591146913746961151457288407612408840791734552330685033825476467450844618024782899591404160322606473147676784402189972595646411453068244192047088232930601954204657579293945624265109511165082610983814866820610777327021505542844180943120133499175046172833219110963456240303994216363881298321460876498138670221899420235797392374040985635721381114324116096955031251325203040431030823521720651893116974771028694916317136561360720615084259239323905616857224674117977548246327726832544053506475587679360642032492802849970969187263686989894824115676680075353926499327935465920496310842400338640325823859960405465718277248283569473238540286653319580817920471740089263485960351358396244938955033839182138314484256011820125551078294604172528322843327603598286262187454833237263397060562485158041880742416930235303268192871587894430283769047455502600545852169737832711257741445097406516420418487059853772137870979592233028517139880633899779102822522816058511476780639375337076839137296208219398461031355581476676871091582343729200025962904396477017606613353070067166461235319796063968023363348666821980744487962429812007145024652491033438148100440077374812768423760019193957520754971605260206459903485068297495919352252481562678406829929196963371565518600161399864339034709431306674204981498623664938469626856767009256844925951716280814797345812420909266458243726328117270164826520582883880541299312365072359172647615960707491675725237714809076517188780432591393888742870659369248471031260297994148923753634075668219556243070737006893361731223112446580032067932915077398133818783175515952947322659545862106443472939243203931144250671278936093045926477003383984015603643820363419172195385404389046983801710117928348675531280986393044745177742619709316522951248431552555397197410855508784033128940239720173435224373445627342831707856074598283123306734807734559265508121423248155806582336638055117142409592775465664989169875689119052415049508051789465844313084106920239735600453487758548519826194245871403974527706881751909441906934495986336422780421210067600411426050760163050954956573425451720883207680918215361696159651108337706187046885775215194927236958373363641941547054535093496751075785396033316963584094989538996288786918994067165357611912714940179363136824806231639970715413897011815609135815104558816348707038482254021606453554501615034994082128563753313074808278425539351963065920658676487946242918505569515794822526202756534880574419529742751521835471846738822885538762794626208600866444710182504583683984131303994406165581805468949650068197501292493919806384619522007139189088861437615667936760212940885051297246505475049635796277304610401478604788227636181132481121100539763133072112165834083539699205024471391340326191070133267401590970429691953775172948366491921944676147741352441405451466932764136389799751884571896264225751717337239452773018121509681446769972403887016448558938484861943015591632971186514573221610793793477851883553853752219643995656456510756761433844390764335918899781328499202092824962880316482369318769906998612418513153376034704052805885658105835530579595768153167346320630242807083486527167862235505815593665170115270145896380604745294530644333017499685920140111298301628728098712966613938790460527769510367889892519151236448252536563049351543784876849751286734401745258042109970571090802374851669155190072231570661866436540250751114880726473575709762560222305215690800353062781746177297468746999276048197859192305979040454441741631089919525745624031135705428645945188266798690102974444560177300406252587634410638359656768107948250825984397934470941707514188143175022489797410373549246979151666327485520854125396737803411998725430953828411004476930114864682296928093257782060021759781238416584405509101450266271634129261046321094879761834552310785460432727491931162951647753495300980331725611167914784307071840074917621445878346615599696499055601494470273525820348375688789587013616592243856604132301008751044138452597312199298866872862124523763814938001299570024459369965485192906826155418510737571376839954481786217656677649938536642478334761105827625998456503099264953785393990965939064277198117940933380649650468435629450893890223364447200596877185077788697692169100672172205274296962750085111165889392874190006937079774667410479558975700776520312870837698624475602405647674433927194829098678497065817507013161281522301738123417081584308866166970660719492006738415788080654848866691364073548769343423736557620559321748629063638645430027523232917835130041979357547061656712592866333376197334541463564296569558454314447613763445110368052032528060934070048582485752237947655682566043818547690525190358684585544745616596014200101215601942522550789383607052386749227331148094762416269386538731209216739484071144559982010437727794626304527059225161678236668318452380217099509342946956144057857559342594604878672896243804824921153320119062324125429329042918317969040001058580826777840686178850063015829227443009987690398313128111841016338452558945039677902724166952903391262262001964982250293024249674370720986711122864225587611177539377529827945420438467788672467441738118750907243353216457088711444314744371513922739524418632405524553694533329738853791011822099564804527036240264279158751548396957336620390366125077335513130387211217319785219064056101335366822829494428080966439054847044620945371987768162865473919013560766752113411818654450658878501231369980898168341758030087890467705342881144990344112689263667087661000766800781521882051316134159307675791710461000828504762820711966399103695730909283352987411748115176036389924738131960612806781547024815364731895358366412372270571533803974243166177209767288932396748202849662323514079856523533670718757832383611666183331862407798808469911947779128910313437374564126038604506389638782824232965215633265157821395551295373025126667067418794509044797046835149859103737101113513562774935090085817407930950505932344700041155722919068290026071310704867962279018870794759078391604801952505279800073158421002242577359203227877274100329541265981611653575188028075208710170933646494174595017682530111901491887832524743959104659837086315873923430554318877430860893917479379318838568350271035093102259901790871738708506180029007361283462652322471226176294023926858380547034975370328809733154530291336548875156661367606786410385946821144560903176588008977200090389945154401214108026176133382491960580322985353158059640840099658676058245639198542510596330651450835143230800758183901717859179880029236942880676674053627036755659212292377970775816402798497429749043193582949136525061682693998669972210379869802249020457444630018751547418473306418660433797370885409500522356040031279679496607031352621891732915683786829769713335651427139850310043760141834205551427996155594811462513485976634587008593775116240256914645852268580704198298796061277172024361436340195192752815454300263345159228311304600709913373502597858324559325172533346454556493747617475948291843872798201836624697558279199696121757518889144811378884680036645563146301971163668453739147433184098545874840877554890137927138077113881818928899460035953070506231718761915985146524521404785366337493185832722137979063030533381926805901027456515079017319053676668598480217449711859802529081502332310369027320474122624016417192787703237068278887786208001139271481737739638051949165765470534944105267668195495659019239300778138832979052454010592904987970659182753799856175476033527462142479452922656935508243470294434562054635968335022318883138144292607553237725588917574412463385429932640651728250619144086083708334303636266735953771893791920155993732115317843623479473998629812259861339262515329237472354799446827444953571611420742254516090923227458242980677253228027577512829881710634501777096327390970142818023515296955326256535410634044942212329632365680515916733272122375244089119574233638549726608897276944324370394242805472806787960581226930744968440658724316669672476786612238151975278367679439538360099953888961842058085845338753923661712979752008000677803583881272117952227466047028498187236113343057741997487087809547584272885798515613113251989291690898388716093775717912726120341262783886751861247634966502195408732912151413693099681340118072327943806971849583391175807678249047752987442794805871942958583465189188461760644755652128094412976479036683323462293758992866430065058724640693396220568975917262093479446646175463109196457981913445075958221121955299538355436137466625126193377155389207871973011626282356461981703022163481167576117534212964153141129203968498488903472982542115623535923448608656623115040374126700177626543917602930754129014960834693960100601497446351051512426599159385461032145544094187659479126151162668194229180315141508103991061440240387265539706304983522319387558884663805747712992133668193419407521284787868210330587381349495299295460342386287267525462107282421389850694067195670697567127071352185526918636212818072648778326592752694128369218024882395702273928242722853419403116042517214437506701533682596519856222963362900832809783707608904680468720265670657258834529850546080351793092254621160528807659799755066146441795686835327258526828855540232793916603968103108984240362718026725089547434649348243080794762410067161325644361780017743784856988724529315232317044405229283111283097827448434058642514633873835552793164077419909111722535207605582396836790271548248390952577641026820948071587182870513191888929752901497434102452817177332649943506644611658941918330496785587933568226984982027672541372280833121081788383242326340177356409923575375862689847859062451990618620278390147374663725814425951542595307655885276794668483638261028208615440767185672052622162965215378337452129188116739815311991991450187334726892066359007696152388850950682369830898303920402247675226698230405661766508514342900019232056346441481684671193926206438971084117489932239197722856576890797625764156452891625693467084251252884797851097820932011325734186114647272557568353066750103747457688879724407234408923410727438498635075924587943840741695526970245182911128235789605479397878948199574055713003438950783898558383092522828633296631123331783934998992004268287226040554380210707232550137828528222364814206106999660447272781517159196708896141679258384928998455549318627561540325637131800110800940006074099159829405335180477319581445420444771527369724842035177131547707739585161476053042814682690709965007816062686665728058607942409150224950345577846022519740539334003134019593823162939692205001666778572307719788185033979830107745962046636823744920060616443384151688581305978540140373330950065952146612417032439225078636701600997020514427437904915823648885908757413929844127298129744687013882582562551011538966857791393131808583335325097155128750620754214543311834711912596192408440355282596459178261509606221164736049912963918931835218092948456350086426238383283121308140308756405627180921995960163278826105933066334534489560921804023325647340442119224653992720082337612613870560425261062860039931238276612642192930786096780925456604907729324748947806013612104847843497434508072885746595541148032081121372325280354084243244154955712201433308297323024770167081864951220891939912229744699503034771657904553260869820280745996115022186174575623422223813844564389469412786137847421716471942284434441932505512022804800549495906080011485527786475306662337573733122277602209920712577871391113414991315122624706174300982508432509693465285043041305114818470256252136227198521216732455186182452379593794464359378129548251388028887973094362546474047063231253173477441144810934049365379358461532873087084209798628406536853007409853402520047209933957043704083759318408125255500574029359901858849285317359511840624600134104049550231765152350251092685952648759088174681035946338323521523120797304390613680564604612690210603897611044497822772862302971138443079406113124064285330724448416574354255134684334133896582613708188369898117423346813540895953730525879998486735193727588204723212296588482005785265415947087180488500919735566399700463060043187978900232037138371372234736710336693480776701878651581171034560777940327066120782825247675577472338902270888742143289911185372174642684412316626594767343764236119975984781592750788587420226722341318636432754168613054671761605812755337825335856966344183498670749784262319841784594685997584797644121110147662164815041959055069859225499193068787061420589980842725833925484594693258283918128131950334145471993594443526086247131367764463938065113700625135085015118391667107587626114649039903402779670089252181515573808132388022470521194063790894963823853707221560801762473700047869023197308096649312305299781211297077327552722914865653686498293389502700643714111630540391500558158976091848843532606852694570270297570226191820684200576232151086687147304764106552677574184314279366287994431635090812800068456032736215052423818707756633738686697644876499424472146279996175805327148472063414287084434046207422742997846049858741291239382163183192063650103370052660389190079476472486161447973554740632887585256241633328798856456883468055311504761465165609004633371504297592354145795630449182951791427637309776082175678768366953164780676076042648713080292773513642835626364670001785205779681607820078310845031121770372986214729672893757214998313862679106609898637034518398959824543643911753737011670884053626461817874558783715506407086634893503612093766684406355515757914889048400933198188684596795868273896227459310510312759183016390982965388489257717127672402669060550736606887922806033787408650079564651909543728714279202683461762363937129678754263824447962093420815116245097624879720565458492507975073781244201558109211647571033102500098699287219363378009006811698137813986082609376322098902273260459317781837929886550013591865140714434872943458873884897815274544283474785490061051459484851623713012744985651767868588309834516709021368000745569079266817600290183721915773396030619546629078961590723124009798965032178738798673340643226743813158553028240294762086702580031125554314618368387209070600834911584292715186630940893963874937933079289219576258826542204608797569388869049396499467116273428322059877146075988204301499486380392329040792569877568782930058782447467120941052253160377464749361701343005233742810158151697879811063403011922986632325875532236635178552047958726482056635745321470690926490231773406857554983752090776077679817869085917189694826398926490493575191256184202975082047258876559799995932356955444757440139210854363596025534671761520953362792965852587055693464854948020515212870202095120385266744190469069541184424389480276385651435614755372045070122751990447564778334134990513106062371515134056285190191918287484089730619514262188147219367199249540923795141760226824681007680177375094428967716629610051713109180123385639164184285056986527150484961476262269938197961710806634185125190793568423123573084907654269350760973991760546601589810982891358505418811108502531139306967545087384583775906651876118223035045607159348590072336383014760488963613896886568690202505405454327171846815163368339805411528390594777350959839264436055905443701967624980727375931661692227030734041467563496593584528093951285900766993173861880393334518459085235552547229586147440147695766700668676406095957700444986270643287653320111931369489346367444383626679905193200580958044815194723225562907475700542105694058241032390964309624428509024894978434340208724238218009517587719634978465186997929634233482888253492524564620751192302769333663324918086191983845247383661345860188243282332842091032430041088975768290668801044699056333705356580792136541579820480346861314363142778996710324112994533240762821590053763339524687668239081011349282549168230186262717195043692326310469691019114160981975507546548821421250893255320534262381296857951654796634665374994176636425001984365342288377812725135412240493168902126118470843626404962126490174127646328588677049695128637961748680750746217086591568631706023959706999100161722444042694505711527922063819130926203240909763224537503636602701865895150113330343693892956124680641541206622058070987668374147652203937635584435389634088788684475275569031024467859339862770363223504531191812756750194232983533142986412166867890394862017581669478808757493993049876705836712115661985693387768997606949732609921511985522542942275997303977791395887754809182426402288010219245401793020498801487850510037056928745625744366634974029161425457484244013471910932342303050632511686120378982145720962994459803948953515344499419533907845981181746102126775600268086386085168883258770033564732652395318782887608049715663657482511475259570653475079680014994646031175381574086898219399138974393829341589099534526570212335076748776444089799870141407316391045120057759461626219678372933878268031151293029825243510716379263175706325957460461828620216393283393943102780156444467928615267053040813125671970823337430810433734898192754489881476168886533505765830033826818270268324194846710920705387984775742573169713900653753411787131789658176457865414595981354029888113053513740154481688537869246898483896442880335843149577181091768580674371899165026617869262551602807765884406056463234917369033872084446874008581365019912008647770428581695243745157240717860062633861684890509339866371535682916781437477214336659889171514922658769643756670975410345302259017979403984078042144205056568898704784996442251938373093090878428626404713338935757855826270153706798920230729080548582000207870451785537884019662663458790155264627424450764048641115603354801336094257558607204451488906327787320819117501105562960321851280230546551665497990273922787252292818178470736590950049204554154060313481906433166661279698214422594185773062504355235832995909124670593590856135502490246670753643933304889935132247976116274504335227381930306234563793483608204939549261072148220153007945363613380286384530882356328434364566464628612916955958789139674606487265050199922252406548075722020219977987831909468886366682324392374340141500948656741405656946010588907173701604642141722107189326066689640810003554645989543827541441185142965281986532156208499757652232017229339659510888873512041359216919620625505283969876368170258704367303267145975361582225808961598659976984127173510057848266511037614862452312545108390527606285656630654848620312422824432062652404968892356102741690319120350043516684522286856345365333271864671672441235064304606212522817017484680153615576214653111862787954921197059972859145517582770632749770569062345265691269925459277141340338233249542429732904111084838933282672429371222673255547198098051497561386085267418756997399386108419087254309523379916593594661649615915911699905587140278347390291565468782573250670124732851492696239738833627843619411115754847872817378903481850813610873405403825918065794655967340294559947793890697228051116425593085415644474516016642816799181671988111229421476433166208652746190477181973413287038360461669273728487143275005602559811128370135371668358107247981691164507943795174603810392361671219707713196326331619772379591814742636069393939522177894498238440522023435713019155316602765459265388990840033607760656770249320086832772914521708114016162122690035772387756632495004568417536403228603719893933520954254772822668141282089891377861213863820140704334420879645192709657969118815959201408547249224295961720033827669717007902239728145574939262440557066906468682053314548934551937636698265691636060310153779146557263100109264810696027064431802243235287022212654074027052945707746682036303721358723343534071111070944048304124077536232529354609790442577965935101305524214404862511535841931516121358756466369981508175501106662694434358477147865123365206538118220870564501621676699107241833615469593813353835536921377269724748529443538850377956388627520271792905707104298177819724900241734132685206092282406808357457400038325471650929263240927662624781710052546035373398252650622313726478000703311018034489949829893717451565605676155583806596964894524129811304182622516833960808047027577355262049185830555763819548517316016311313200497043558649008553435002904256989665298422961629347416868447214341302990905154191448680752103530303442273867523776796969349789145995457960860307950770363932854353462908048514142565870702367914448096896287071222109133881762682200820678338056565594344971479693714070575007114426229086593611413964071898436287803856695448314816453589263507340320856510989296760370152712385878198540625152106560007895029208039957938410401619096934342228174778272388282600325316997032547764672546481181299626878904248316349812002044503116661178858477713670029873402833907114253662462077716226728597441363623328842061275867981185052955418652768898396142383587772392021984148467906531489267477562187309021167405233349565093886999610219657114925199022814400541628405226382680561333693513684423522864630055946711874905107078195660284974655728821114071509110539149207778915959485566897164045921483242599320673944571460236066935966889574548780011427891492088539864258219626500813397606107046210012937083558468699952494776386218819150612942457888161842461439172163482213328168536055719884546537905173499809717111616148602738924942556875975292717541562450359671258131851413361141894004912590801981050386082662670412619599467501261449640944765234850737808456836557130497263018109507988257374349634988888057971787172390801194062516890903562913319762609694871712329539101982876583035507813484841943726638108380431185619088312489170438098987729537284548239774992214910455226539149096298975188171216894478713319213496522517965515510271588975615441104047164795729038715753208185409108354206669272466981127387721785553542032243234389163790653270355808799699586213920473243150935352870413195786855057534895043150189308046909813181884837907951184966506520586243675221957432146907973626488522584930082152223099534543238558100709424133004019343920346476263135913501211667932065623906078087003658544934300034501354141900399934163099194451309853268489009332435582925366390964009550364672725939836443105597334445750875708497560141899948196318874124389858163798274226490636691333152688108537858894819473208026228555375097107924624609127990742479186931448033313094203101437640087202787427713182914038677870362539583132473003734292009492803510383306156654931784263855157288244524377099302227080396247777053019951036698443001256387866212722423923085090741353126191953194087384113290867761077084981540879885613804221821956226794476164326195143508066919562390552370126283552246097739426517038061656589371210584677342783680683512497753673964851751767605992860379400309972837685891319356804923245854183156820747022063827647028466729254597563447240366095052290621509823531986005662110500932384038886823673015442797528274032945512037293387970178991214366822120616085841624512004055984629502957155435849291865659911930363841508570865692036969080666902577942039392813668134021030142357944973677812560625300896933923297086286113778726320915463139341886713908104782646624686315469915703774472309442555778299479366426282566497151393296888791783282838832960314921637504171262396541723466554638081551526665034551903552748482606000748903116162913347090749726886398735690055882726207453171981129433663611423393232807558955739626905894912818534507521379364205310726814838608001109930652925442234108037626544135319338827233498532105553675078704671613624443983653477992932000378709055085163428389158210015254948670585329765996153822554848610543670080254408767677148209140913415931116876542510707469453611037024632699831609278872742813156790136079014619861603439965762564499099348625569527933932113101255654394251658831966807546204597539694599011618104552804159736520994127738893448902398795297992994746867655609991259599231849311319990627799404646241899636519759674503150654814753697752052698327262448098541904610713649714092650765129916137044756870878724921804359809689507524855405008454963878211034590889427558483612458005836849921724393997074490670694288961402574756304080876601525587746905026937069337510901882224668490991632090644995696980398524912015649100310069930432037649615010905889624899245060904389438543941297798821565361847953468305253860279180296392794657009681257828387524167245067550165744029861870872723982142922297093296658750332507519739491599821529137204321319843854813389873029072149424516152325101332718512903730153469965122804644859317683666746264666126049170924903603265532554069399671368658376588630802897308162888808893508468621853734968540609314794318188541794832978379239317049726588359475578450593402061192482168396212041020285342160158941162581438385313285566440669902125237934729607972984397852490297481751538331447020094546812114086511818778084723915411321985299170772852905489972159031501286937823841722557487778126193461298750979541534543200661593293952331275031651144167081446924516689366096528868319462464474628487743678812439450709168304096706476573643797027903825601148693276169263478985084904242999197596440599009346628372156190544331163563246947241245349163395565202987209387670749985140136321242120926571917554433717592120550504872168112894269835150626091841710112751910423004661541522624936677184291833427259408397085674573564565005492678217806588006237743015499060180568319369624527270066019903275992754657467838966464678590008579565577087317213490612108278747808132545578404952226229149507343941324045404118602337677729966263624326511730950529078033287203621267581406692104129070456293444203586870002296563093523331890455284653857508456326267474647656668815024585339792617280224643862756502820998321617028297147605369634152092351790156885632785897891912744627766326145081894895541813718418444742747090056074199284583205956090465890155819356308401122231061767768076809027144561006194955500647258875774194224286356826341905882656874438171470311889092440888160442408617840804496700576260918826549686526316764168131788004885498557977760599457232976447178971781263957725015215700940294578243468051876284220732740805418728231292926951567669597668077620530026264589049969287684128981509665383274879263084340932165902269432149550973822625326071967411141678139757111839226089972154473564446084559875107023912370654184560525109381005175696505452694389054513064654251303702315335509868984160805764181465025138524354911223746859151465443174029301071158113964952994493307438482265070352159917960123140278355194749930849043570466568944814016126530841994585979007058668092513148472141211509762372409103755531389586493215628365340776067488792415506223225448429960453921387392171369593626922818586786393040983252865459944854503890622663938013186890543651980911143292882772628213010882616363414288417180061704074323711486201787719890554910052025226072887358311517859929408701969531218865381884179029843182211962029500526051130732868695066771557116751173352333789878097552587982347914172459655943900326351812551861936612636122015954475562388323186877562353590900467283575334005133950350596497698124146602612073777988483192093989939864622572537379633414044522878935430309301998674412904214465506581053516273395325636667101961440506706575576418641351601119404383508314866550809471386094789080128552719271101822150172908453656826757035556878520925754661910080791683020571060711748141700887962994392072377121578767957372872847607728342368431017768614250310004648251727448569673435900531112771689454139802323498214875865670340460504630746113612826016879755121931733848474933284762531699181417786860020571100712238806053236216691310424891667901633180648567711744361137741200383366552036735880064329796623261742421986562750549204046014794778070966573237511174990502604744966778057261330278611851994232953292742432505354710086899790932973434996828502807776442629500374508129456446573813580093142622369333073737947521163883643485674108333356085947019476477306641587831267052347469561802768589832618863612027980589860325006057434510808297709190303984465338539765151142575822193149137680966385666099269721227104689344132033619662068846110664550253818994212579577715696969363655218930259860737931329725948545012552948065041285772105547073227059245186824978885885479422506839017243246250219565999601875875971259068206034378094185103553863732085295554235301312085111069331051435359515839978418154294400151646703978801143960228025076153096940963931060032286361169115586575222497482061578781584427775045590162393158017323477857090988782113955608648462597019524551638503392587964207170492111268398756952068838419166902614276247159620045440668537799460263147569902338345887060592557387544616980633954231533256573364511248703118960368827665221583485989746624299058383976462753015204168108417451859619104369223930366871735456269723190378409324506036720483429515308309612507906134768368280734908790680647299591591630380176990972266300764463573606568198483105865474638316265961496307664380261060059571108020858133693670991647597895323131914127397173084086845212281381902599395108376271134247999309610812918677914080248394043735951589202508315851257604576155844430795333944978601497249393933308159363825995914731471330297240742041789444117673190332587493795184520492673924170774274895648344892043584930877468337123210947743860661363787629983655961129059918327654317359114444662142474396456601476184621879122597121250970093947382581176554128328235702944324127370121073215975583818175508868898380563515702881230187610122887670705350096174254878418575997898742907361202988967421539614353226925313183356717352360991091225687535957181961357339966882884091406287332399056257081643833404426621899780807645714232655247662891416604422705878544852709664033810186138669612186766875953358996910820021731303847635935374904944352723610528860454513177291973529252088863587748137102590543154177111984684822456913225240712976787547301420324813895574813772373917922829743648539489418790748240662957649118031242028687039649219723184807541343763009354724315022257746294090467963782965619316115707671527883661640035845624443226037541416039901595966996974177783900702068129525501853163675827115372355361236926913753845109284273441422124621950610696373541451669300899985284521898702648511961196459066056482184533356051812824864395039040491684309600464130481720219155461414480210061444605755249066737775685399607823201054127475554197644297590224266096792619335264786436934423519755230160156678327590976119166759012936030742784299130493337673315733690562612703599372909921925849285019418583644020875891385145739168805305173028902947835582424653181493912997914578315084092903315910487549131844954752012732904161270400235858274476705882011160194527291136590478702910418383208556022485081467966376312997202163434969645164825106540994079290879669464732092429981489362550180537766286418117614429683728795396673221201082685340206147806345608379317324793748571160166143588640424665000927951820401277095769661486587600947472616711659385970592980305101945141866756667060295792495661400280950275377270659750578310091652152966213814184140482776453522383308898028156306266431810053121086726072797429955913930111388000908134245440159522631567819428562615638414989407424324601329558597979936559312516644171103570649341317448517550168712186652570056164254097116884813642953819003661956475979137734460328208733485238410951187570592199945883921523335644602732404055187900722652423274939733382573563210446101330378792706737644962290909494012266580556858115866331271634376074971671438987420282538468994505056434859598589164808968891001230047225830214040854765438063619849209325256147973966259286314917189002616702245655893787587150704057968495810326608005812745473184829606358064445058348535767460149956372604926065097972867873239104575553119100274360142369746022624341349307009346718651206056253182998039635323299604755995574545452734662528825935172742407268060113059031115071204368425025483774973971736684766810475437929984893307917397148096049516103690165398816152449432160575550518731120021025381076475986043900793926100310103538305457820278669175350425836072982555618843790491138467653678841112641267627300974769310459346539725995294286287371996358024549362475066633450044981961504634971312417386478497407599092081651670495189061205598285002291343810714467712242593051958712704991256248236307405638312600491370178911706232360785042934568328651291237217853098024652296390984158136752159283014975488926029683022634820547543854377391362289319467045756181995914751250171436354113333445053407797127396848469764491823368343991269120557990925926831771665123591137266003130282447783516560185524450680718546288752154988777391087769135043443536403186488059496178492743773748400167044080249829201023302472720751686724520109620129248829994114282403397099027602789200680828706569885634888317623375935317735021129296620477248181862028970146682729336754256782202960563231570967933718345988510544696049544667976447648638801485443677510389740716353017305226541936153192869387002696063965609855810410954780108857193058199076305586057700567258611677732378959520853819773597033954909239479162660597490146249611844595798869756269565039468883552996002571245936049293977541342807800025832935930626308576256516200961094202698099127711707064366296409468350886339885910818344364397300130833827378843303215757567372279309271426081696734041726465567268010662494510421613368128602542338666817575331002567818041598985875834666191638318360895324102147054891701822572267672357285841853481683432350338284781324074821263307694255780333356999889398064424124705206878694327673661715624221366674173307641036784867950577843753628897139091757899802819250757106696134075092255897689373140017362597467824570347061259244172831574875823729392035215986352046264009704200585407844028132516602415961620006768396921027030704304791981927548020994115807439687046458701332186624267440214211529906162571483837178470905664049037453536810978800472166475109384984544253375362990441345907804949230373718952687562230221268261721468062743371272254891586875497554077354576672917185663979646245989917963672348847751690221653966485857460895596470790444334329096336649333026325939111085634155079826200175422562613105116459376239652834085971683462499391655107572873616906838777577075640376004258241499057031885566364174796570398087484009772527980294936396524956759220300204656120607542319108829827207626734203898632071495136055381943148174112390513884933689872718809518137978043641427337311988073622473627974550860531473387578112195927980796045774739249154154666052727656650780368282376837248709425166406623165696247864383442977474614237254957457022008914169574309530091807245935858714581844117893412839950039383408459445740199234304458459529101230449772774183266273809935757707680063296602477688671564132566285819691830303091024418142289079377139044285362298897885016979994088919998743986956580265477848664403754378446059303489122177309335254825596413657469706110900303580134522483081339964341974371049023794919515682523093939784110483175714002244288112108420790202173360365278540207557240326121190720289761721924792756272736783077658638405200924940483474008876250179157217413905873373942940648935587853033221209110841380975666356682707760804278838269069360730079676833528474660247857229844597801582305748687375512952021981825818977340326450940134491979022916512333433062642761648534165896612781397046134977088496703675431884976914011500973300545886594173677497865717734189996830425111128015485768246456752930948884383483683822646613711715498133667373889340125983836665283452639585512619355141901214810985679040175348654679879364361787145782243151963565477400454011872758792574301819850882852725267240842925821339507167998353027532201771498799941474737311767277387867159863774914187518759334684897794501250638883220926728921326757150127243606157749727735631358316221273436712732354704780189381771637889085131407701049435114862308579514395227468536378343849180898632400501063960201697834314303220657152909995287897709376715240475630507525182281050867501902265252462013267977840286537119373749919254249302400754134323244454078271944471163150092286109731262117518091607486649283584618153316387818423789527933073719605640221236650039181429348949130988905833601785209249391102130313896677702596907557800261542939105074405410243808621269236263579442191447021152032800789557217259110844771756120069767693720783291099102324358614281124602129394737315009039207801316878221959334723093736309539800462149253275672117136122235668848829680680910257453776485165570356358462912482954220779707655055629873162259849601396988290019519263493975204859645120888716222372181889247355071959833303352970871872512547175448568824108730247056317575407652240823071854443289854424920235886581660143899679474808876888488131572140273208100117624319069224485033869350739091874863935572837432224254727476937327734589090796745916104919450299185476407712334145486571675158553752240897075553882790346515911783169114797708435516950562751216299130819368062621023927297334606955026903630167433479801408720738595200942386554850385270013288659966475280055213811393821027073846670608085930653708285283323322619764099478345823409769370524680930378474284915431533272056926592337607989248345528563913628271670764080401216114972783851983366330422037472476421866025953053372621833733906612458962257881594175988513552976945361632621560610443235735343548881367653520022706706949713313583577417423334489381658199028321687776335353826944682525388464692786125583998822619397781593926270034958988744545536476148547818451822182741678558063709804946855713509071868005138095904116777165622507826086357617796224680420998630104087439641299471308899642707807845643030000668107349306755508629719485394614057437912854844321123008561257413767341219578806608204165751206058739374706138738070423847069555887946207876498921453906686958524820579681861938881293444227189641012800629929515620223387006652517651784800664077474894980195141241254882756297889747487710550554859620627120893399174774922205730077069357639442535994456247752241701566137210162011569641028568584020734906434519058239826409782734099977446235933195683693058204207149170269455111469797615908513626719207777828741803659199069828313052397511017218028783386654391457736134244012503094689540783837531202345997667948721046862075212037698686892896768797530505213697512625964712608128049002393957701642141951341080352244691448072494250749698655827614944302280911907399219139008694007347075042641945606270371346059010761799555866272997797456952782690560508157259586546291945464298916724034609978890434628343541915006856834496763709042922234466927162035655134467088212574233678842157128748198868391415783300721836689978302419752488834949523734581750438141077679890132472714023531537529734640548626046883004079451314654118181114774550906373461118862582225079357133653152328558710758855641642253462078981321136003521402685235916963367275353061807117698347233050989649720709859675183911186376390909897241131203712920957391328476933172915735708990029307129111879735703576863912892538838579819259656319029472140633623664848239913608413437414161214440775926626910331639812071187476031091750050441556844055429508624145127115165814491877810210368079435341288782001681952023775022496840763269552326139119392699341099889491937105794539472116101135311253252178695846472836321161975689709944949618288623131041280056743968777490196734271529379263306921953994943728406893440131172769317890456455092909085577342906034974706535412499739256508764838657629910659398888081684624096686507608876673462935576880689037112799570686972788051218937523546495635175486261741723044967300820864123847156205872229966615894432982425769962521014748954336265367343011037485313045872144873988933282419161081723247602424113048025272807281956496480097448640430735051147386854238606199371673823255840703637873911427795040799680677787721855487073528020902330995385131528061852137407634226425458620799691625038489099142711912016953214611065812673559559905979686309963435262724155529685465176008530030670671384866745953984717478508016135747659265154277591015721135088526017719250994460476456884021641732675867878920644041164796574135362080731737659827900908582669152115287990125299438530613066476155228029117371594642546871832817953657564758365655840588037862716965146042055964688298002441622843776253388862247088641685074959970909841234476850835726773458293427221501177838756573158259911589400035215425157354704599508916302519520090534501206583009085695772721238176012910989032156513754794768825520010669460872894572476960138339835555479018827760671277624655441000326445309492197708626688987105338747140021757193577178285797411675699732192610049772542183659673381450855258385439682827947184861594567231682317150217444016637673682028891175107312560032835257584173449440770170270368941422870643636147590535701601082950128273599355240626489774354025245808293340591933149860499023921980493605459095687544062543019416359290845109093411296281178180279125235750792568151394973596412159258915713874716250443636521761721924101728074090882973951583626470745653062154419867473992554273824775401139846866231325887365957316482943211071545215198400615274916562755053823082869556634192189080577937405974429863171775794953313177659627321560089346260157653389387595548630481550751242633502824574871196346130659137827698673833984187402660517610185337369244906843714486461949313600551017253120471949290549500226204383557167528046756011693889411639177980076786325525697265504248956119967700505977673157970428893768594650241904393106541400860735975835866305636262962731896327888993141557010336821784889909950510261448321421731607822934776594775369584067021841419049978143583262594710631817648286974723508311910362574832836949218748017581192767005719298805464168389069175748786470686358665064285359227452787968430426297227729113812794315512258479290534086613058523015416078589260722915067578902025042628034907387098720683374250450516069596604620919906448985991164220739615937134196598168975042570828981026518003431944999692878144813745312409368547986041075694102310420390075665919792294948601163689441739951034725770144133230905702956635970248656255155608004170842546397142429182899964216322701846218038862975369254502838639965796043486326866908673960120470195159006598906912727917040022485608762919550083506534301306701356624036768387845916309393564139272310986858203911802099636098736913004083592870269805172075881136174552939121898722032475521420684311045250034113355040104938316367133612819475076502409753083991778852688091306454925288239850110718606065417567956450339743744851396760205274911556529525632004237584251003903650076502778881659832060210164001727777640193972728140256622648104104488184548380773083727179369608591038889428243248217088569519447307627846827400776087244009026990882426924342780648626982856956389931782215104729766908678587967217065869529920870325010063680535671458173389968912692740645593533644655513918475453601232106757264323497326251687241411058505456086106109235294660529506649249091753814007155740539922580748774311718500383667885118458838386109914732684955613192365332888395252328191295998859397696790906848525624326020770283338269653698751039174976819925416827102239374345357604644607510299078614723152618023792737236025394870271994348053930670215625549288281819543752851495667311741477003795089014266110878230659859490246554280666212271572422312087176535378464835772313056611725985256590004407807229234516493126366416878043204951662548321981544025711648838721996978778734815979088125329065335883688757537928704310459942752081818121269029148849645638455239873521340743446155109746293476895294027435103499273001332347073035857666434698527724090929090948854640765582291733995420944647420951960648349323029142016577988025756821215792074390775966395529502950233251581802767382126688497151074296137171969847338121984564231908350639803187243008042556042210161361425058244775437406334657365131820591834294962530658557875824018301861654894313424249045779381995260986876973609998901598159204607243889981718922842968781126070509946468529580317843896641600879134690535385836497905153443697440194710849300616542281910415284142688311844761821750660067641513544550543323029170246792991518348933906657650862129442390053350783403187143367420409400541336128058072759102040863083023149370388748048889818823221423494652129851817324252833337563842783801417766060808293586743830382691067320545711900903369187221040219057381721489186161087604626435517389741948595697868548336553455011759018961530252606009785854363765262995999157882559464616062896195530223250763021473434250275876084702798522210763196590918421709113195849096070418479377343763114763184816809905618391046203312977493166258154695280989746171750587911901736445512434479220016108490661948885561766537213784502247626847307372576395347352681215236079035379839243231048444646340360259863087114523161077411230187225103037112343058511296046320792842640682402224524245710677635719082729293149234194273646489209194664798544378523638356337700021735222930759994815878283821606994737432817834787347299432596665281980027306184456690466545331078772521055412241172060020929868667646228785848036121410575908068357584117553263768977587397041965623974717908424593743914526949885425160699086679386978320629767803504327453435660278938941418100990778147030967329907136583761969377590380341040000385502305799761680566868567370584442101737438654305472324867816305901425562378157902652888531767624503608645390503961703789438881941544143484053168019700135709513897492270247583979413023960623752691536156920150207687713642076459785599002484517595289715606776606488744153517624289309695257162441186017386136929180647390284078956639953760774371535540849415602205557657050835370664664573200531004508301170443417749246724119848678817835955283907873085496904917046440684805874880045408843279193114663445171645493120841302952061830401770783707440117262982305496988355413808032093211297305332814363750332660964973973697384716577701253415288862703501797803587529192052960615971649598750393043436251317015268626930146118638914691902122359130480610959995109204051861474150799458469677290816106494639418185020549782447281511117563317699313242906728942937503125285050177017546346876985438803188800168686742008988087791999921648274899469539232007122747465714472986245810742048734633646712058104156484747913891128898572128859881427114507502197471937536044444104427636111499319786402155021946257719022146243934554598223826484925339643594851061145095637337012497290057211312810673045952503004828056916473681641083268526875385686831023622078602945287919330276392497893673152389583963674421384182290890080628841114610012251093275023137540548210325305489150810943997278265618767110110223051821403672212242834000145827182103343004266309457547997175601636490478864569969997397466545586281460824432303396515996953754133535129946789703280965238469012743246041612531481915546163252159896360268683590758493787249334459393652341355115608412658068056190333130089501754057162859861690856477434550547912152033188683919540096683643614273060002812752579320858044659974428596305786256738663022157459361112896509976353720556603300579904925346116898539640351842721214452857288484605249108105837657422013549576571578289723339701342350953953202235236669829762248629193495980741683684247122564170965845211639731759973877405526507567944801678137311529089894709304236784665817431921718124622112494838409487082344344604750642138301494548819600204251612093666130642460425665514969580346041107984820284058944791455626967660943923017353105956703486267208072369359324583297521707955251895539371475495920088483097510811459853232025034888864197424492365115968382635599735861915816159912995255158398656108956548558079163232680084192712524611699032457470799092077734599899385566178458691544665573117080571881151789053191778256171939399104229607919918066974665772387873354019248562195859843945224015626240864002209430298448975760850837386512310668998003867396034307664896133930648456745814023948360214011302026085927851898318826062037101432586304637504231779979386129198450656337423475724633895827718284922093434935959366334990406643336468312360476186583824155071195572550316667865751712169825818893944962792426384434484196614672356059492626438683809844396914213372396679022336204684086080318153728109462941263471209486558981036646071446795856889669800169303303363730029446723008739656413128554378457702920094313390002085515691935852071038471748402594217466145549489240949746585106711935360110959906299002740365477637257255178490586952467505851907567909846674432880811203953314234340130377217479084318865329386746402788980008024413274678171819644334899232810506773737280366625110412678713955230743157254052231398677687209763146525119319603439937027942426575185315670843684910431288813170943385995537381320482550939653840992229300848509821062653492658743783417677925272427340619473387742258076941932367908098369412321660943061491570474274502962990321457090035035110685905951865862150807812046050461981228041607134800548641956190678665101710164804549552247522389730954729538081599949265573149497427935872083724359327362623877891344180006015996606771136136010687589676297409118734420082091623687739724244279901400232874384969849993050753998103909984563806208524158454288155777922356199388669413624419489517054827918657305789562298404998249470012399835107780138858104990746875971312846103591543114111917431293458774985883488602855198248525219473148584872804760050875447567810458823572858002272602631924164153149570154612848513321093985207615782959625256735251385219239823801462061738695882902561022362813331956540051207235134870236617860083625576029436169267864979743454229753498434412617257779638354163687312379560627775628426738567060049259715155223905521420671855336636293995135917189310412908293232295823123812108474369175561643382991285947977029240899382026137783831225400520722144602248143096164080512274472037535732415722357437742016832608030462526527292556641480990319750593801937745395286675462507800331443823501936596162764033024956024953839923340792456305203579998831788579147434361570698711534916886867726355926821954092457166863180773062863276729322253743623479119373134118200063172520496568991743238432606930242128624420681144007903484855644505848779627912380616875992313036426651797652465682400364133903723813094865338042187719476261380980049323493275853389149621745054064015479723609562134008060509237730222719824133439491802118785446274431300673332675142041320042899091843668051208808453664963623507511472222219404775405396747936921880992877621764454212531173019097380227958542032919547423922203364314379584660494004375308752181108423960560256732399836043897163205094535138007834212605669429286318467244782160053116895572290971598018803652191704577572396535357447593948350076475841873908094800306866287700058015530520626129322113152485404443564427262999906129388480955068795527249627138699344747129766868466801729683480728117251951301180286700360497883587363643374899916557172335466258222543406933151384911947348939229268315787857935518884476852884107441515193668640174738646690267588437983527180530366349392724612385045590833794743842312562833671000791435498451325041710599174472193404891300141305474842768742805769821045391431670314493035049627039145402424981881187266513911826219779589823958560009729489415348620523194759662763623341164224732353968995289704071427340056632726139125034530245631382490239238541997005481068264556793316785948255249690372568279641381329057620725519434925800195917683504161258122176017500866782391054716450855034133573891429069789229870551437253892714844389735564927304367418204768941869191048255726500791194935960666714272357364624082367395367718113065069861206507369921727380187896340828989895948996944191554672369449327478661312603923011021451414570729433588541511537341209241785563312475694847462867183630372303521903576415545541334588722507820031307724644862957133944576851985675502736001778228428234214136162317436629518204334596407915042181213333139279274349804955185990617195454501331947814726287478903127087210927946253611739779835481306930421600172684893334941344919224338294327454832194784525381505610815660890173495631691256152464279572744205545273887076677571788344938641351602764728072557532274164648362194956558344632293500062896648788273241660946147882207628974658522905664818383940282981720358792679710756932457107161309091425508200068624547108726535720940637327345018984975090915301058407662727228590193778461639627555282577888547955224483780973648571785541955266527951879757767256973966350782335812564811298435258862486265765220102620785075611238298961368652040103935322285746968241749180861084958867195002109513576764658358129072159536488693025573728915123318316470466666903624725762762068493767314485145458971989613806335282399006668927712040556965600054043450002769324779236236848903435921344273299229704974514223987346672659227035798001904562895523512686527128329206018974292677281353428039577645155596205803486034458518958591685868144147646425342890967746272318218216555590801128656728766456126784531224148852827280771581710819709024045670585053886670838824871921455907929590183313834905042434910296326572215510939612928952145176257051844681556161324176392749261857250621879050956049183807834721244117511955964861928907212862427154528742272398086623543359227734822011038284218317124998694296231491669782403887295914410179815126171438751896326726010324424671539094602904059991409578898833943908220406578207618976210439086842805604297624430867118459886505869989729298244675917636122815436016645099539779864649852816834448426914032077109943746719599888279404253349635334997426147721213946500998549947340975802161415266342720107585319945343356187542881625816771068538112329116939209803930813993054618191939538503418407529799393583148538740032959401898182823690330266601527865988505363773763751143474026747961385799111131362045935661930746601656373722706088857629872630951617595429364086312223175431241327834077782575678709786414901974083774736835987031186137533661801062932598752662811889361036002820112619365494927868599225476787222631506564842969543267543456365847719068602852534082628881917210832425582257243476389329181450285964583506970884253907220797521395270662724695528169577599628679995338737031072655525534599327444421186862543415110188828929902297637679378361208028598865074875016163953336952820335589700805580814513212419555614754882630353663820444143784044269667077815347135896719793115405179817709200996973135039107198048946996543514690450421631072155565432771432205754439249655652490962067792910147569522494894401286996036720044497805427932203190698761070707465957140064214716042738783884636314682188138793418218021653361415358146431037981738128220542329719759630632910735678124280403684574030556527427409592510747824321478743844320727960563286579665011214604928813396641257061571888703415198301617181407343139277350217563948562932260074396047980056359809277385874757461782828389088619114099083871974868515753405950767641639166194200359296864704150547490629167341614736402967285434873974247006607026870717298806819139005867972205293115264937265419172920776251248222734877208964900525575053091369642403608985243843591284133774133722108204628071482440437629125090032827829695447207876271798186975241261054364751611410432153708049839612781269480975057594621775212262713545143262488741631790487694067870055921369456058657902553723075167677749188455983852707921489832477387513977730433594289893625456128003873477454445265697443403559086898764108562341493795067743812728899714605234676965367825864262314778100920935467569514297005498618567487559719677708248312019680851323315507683989091080776481021573935480455453918469482061102345641535411116610215616035117048918214211829672537378783181914339756368232758333480443540994265840308620393885812083100755218372381091460034532973733059636036020030554242426228159698321534299513027879535141853750385571848538357371805853452738217883185997794788925921206679726966056947908787497734399697545074328990509024662985137042955848655584787028652051723877934166079085027903875548620745128797452807570550655893410998017626377941774058410357659523045995647712074551176361594714035840328068247641976176902632099243019302954489707186052083199469134311727694982176902488386864743705477971605707197015741701657421748507805411731848213691218027400215432265910982839881507111034252951583541757610392203724021247509325699160489260765788446325251010529675803737103682907885377356766649490140536795760761355573494632970193216873976135189502737871418992379105322357935802122843554151967394102257351351313200922319035696654223183093077685719086344891303108072293978508711765726975516343060522712689103387885782928911823544967968829712842874891820331379602124567753251003250014284200416179814410506476822738612803721710522557770951255630461760979206602151773395308815078176938504601434171872917749864339739943094137390657926732118769104321352609104422588109238031772810655241545698278868998719070350418450992531725873371255326527775626529295478998380999521667533501479775838878736210044134669840583435922728877663709568828431950539681877856457608311753504392186011197221613425231674794794308943652256913236876331585658891091267588235524631751659923273004009036162336901990247548884923505894390301120673407137644949034859687207444049283256317789992250482427067011415947073576942817381129300708548451068303725828721980003270424911241712836791191970913415858841640125318407543069684025770164744588773705929762945508232746494461122460116544019993630471652184222158692935722026002218204034425266767899974307480674021236122961380425394610595727861734904328387746629600950691317151007215795426463129735108644349575857091696589125696939592154987458166036488442619816614979366811009141220800443821106282030401085163451625286100429620706549327362651758740306359013155580698373391499318520916955724134537570852658317837378866576306273358535267335938071635367056183048307937125975846441226875445382786329621012787601960388416289063697601040392960046387116152752922495466866482870863888249025781327386593882757726662278660803680697854745901635715201183463526248205917870426354443489150809656940290974707069634095630473959909544185671588177264678276399439382480455403385083709461113846470745288062382931600636750420749569918388679981839213191071393114364571024867888479074410566464328814465979241175624299030128043711208508417148958782478850279958227595802268127227489113380032630836563317148548257110182375662758480557503176554010586548122869211161139911235163785574541154274933349705126508824676747703312411726255693909964910202155770151836321913686187688893658852168698346942545049963652064627167189626689304263005413976928514104209822688960346358051073777745255962510756845127118794942622076812555754925428957440640818874008150145378131590640673344944626197317627765146802620036330891616105369080209327023028077955851034249303054306820166267026275615223781183021811774798361875970849362941548792950712220557609609286352970823175846324706370918562509856110419803644278282022371845003911931249429189369855677855009764673914580482373591272848596697574028496179084068057545332673680985876515293792302286086356817354570422173420565168001605423572256683776845200451654794051075222964583477564420594884320980309181945818763576610372194487426941282639993794846679355047498245725285423940367048939192487164246366166012519628707146903207288560598185274103089672791461513524856479756090183911763298407809205714625932460346590940389224392957203059179215980686016843390023390228698704295198370848915210802487364412353686153001631094133030405286187180660986772833900735518184556020068235820452771125091616836338443662322964710526004614962595656918141187085031513313237986037066908457049853437961707628077697145870952259329994401379502442402566005691169012702738381729266621502771498190724665522355376233420985606191803091892765673498105271876883753699486910442298613584432859000631994350419413357412174900058210101250212800440216906623313088754373617172010686470506107300260234479467990966748688615122182434561181029623275451410889271241418900288923664281698533947329012795021281730684225266115996892091423661310228027023469439933032158887307308729192632810396411677320035364798921939706242109484324427928503620743624660689865169511550198703682770819702620747264946309472456336228508009411763871802185539085491558774928307715315530064439602815073719207671158629913307050358697450938269061877024128829448972298612229755836020775681381775833574672799804413169043299588610560585761704487578994215923918059258568266349781339208438387195773464283815178865754159536526017874871051275538177039605057485087762312722231270642975497305412415892740807525805425197630156191936359220311374569769284006036515796739532181785656379146098455752529719677047600262887921135977004697987181891216946945244424038286107822381784326869383740018201886241921909508037817136838468966551739367910192174597378998291998804011089136036148569880220726285366894909646446120250796293826261308450923522961280128856668855292454126104933403374612013411809425499102384678459487394834502372812774755999012143786030283777261320424200356535467260459122400515039388265986970756340064528945426611064533304241604004977939738347570580460495008666675209856419170943930783061874872169389228571958417072273334122063259855949246966903786511542596437277595914471509683462615756499985134160716142787885742922884439805232925270879592404143240450608463671985301690795017131758210118996172447833154941981043956024237959775460194887627198019388022769647909812854647452986743080674443830894306560504177986153747325348151860424409836602392203816208656196954347280569045400040034198652889991772694532331692409919769048637692443508780536153904389994463446430571773748623680820887629470435722550916732167393693926125906810454099918789844045666219385927212025231178415721487541701806455664758424841346132287698627691116055539561365017396478103630508020737649541741280763729553492775505709397768513782258643101820876075278221386735406128648158249332011505486430317425733338000924133892672661971102536459010986549219715723814023318563347504054533133685374361775587177760987828793711516610431192068881630402943763647356246598421069869736118275244468896163715668267109930505370536645687918691992354870070683595846918353843505166916021054308359420747356955537206813318263245871373411148252919163706075346033151188792746051241777908722895253850007083759626912547767670859336546826147920834582611997174523267119025111894737034689761535772543212301266036811054413677187881268886734578857223833619435101911869269115817185841926847745777763203243262126240052105827072303297789598155159464963797133759419829565094172320661594708147095191603356253813050658109229552535134072092697653957264527130098672903688461636579365246960398017333881671218035390420469267537374310151353554588549922344022871096771723036327291756088301539543267698144529646570396649923421570256492786786891870178274994490994684614474266002682159911789162094124000263414888208291611629274065360903928889897045416334849483776682951091200256050295393377712117441045839119239237751396316944747949700244702490379483310951151331231804009439790093424459531663028303154158659961516321229559151656736394646479197023465290781838431589465300936575081905045054980228341799157704914377597840079130018851098775204014842820531970327412450740210767420602360035337714150265566425239082214892925168769972155672197085212313113526557937869269570213117057890128751545089392261356659665192301279698794425146382903006987742155325321604886990158017410985275097214055651905228714155202421822488185069955513220534054231060595845666494740578713499427533967851480057900453165058659036852942262122281333079168475294876864574242871058299322041305218708716509403612247328199927668913837752030957097924169612616306159410475286590314445362145315475105726611723242696141124650535707134746563255605780411776663767480949068080864092315800764660032277873898555953946323851879366654445282343827223295247124908899962301381971028493513502913133987802117546456444683560199520530538236707330421619573172896567401217368091667134839219723398157735980915577459916070104193034574522725696132239179974777982274421313890851837477159274100408323464940803064087005115468036450721006462225921738912767314560723847750548418187665756040277553309107415655678328289117886667916835092831944875220687267943197341343331930256443475077878440740882504795707768637726650345415029249992543280898726739782242544195835508471145241206502125540057088707069271971494094477363714993352928789962531158055901120572569645605762237074895289572713276838861182607166395300942765855439118118556169741932309215030708621055511597011696983948521277565008245404457617384483431139506417237617193660672099544580504987137876542195554894726559338468417043350726029213285884203398574083799214694286143666588282429638769695009528637156749949031776895193526014291553089214804581851253637004285586040389717075531936115181725739019323057547304393187442840635947001465995265158030384697149711481428369221405044076232403215647418036061879169130063685221756826427934340467862872113339812764856278486199800254362437917156555584848889660951069115877267558878491042768425891099924159301305652250520985231307164243493140185931299811833570681383809534809806027053605206130090804140556663481549947070901144150987143931897427930247559119920536566762514260622929942908352104747237843861122533608393824389002093168085631604950295157231100833446211190827052877772916785439752509304444509394735796806095850391198254216124535215924718441632059871045059429170600415660017444281586646350867312753733088849507913685977212488055341272316528299054409400810231925055351268283489981429830446848209931805922506169689053508580280270382855487834337208920628420608974041179006318053829306736849421429088300537259264581282081824512114607041327992989023375104994097360987713273849374191576788920697946326944590223581756483559623057249878320875979508688958425791088096843116505784433745489370425547015631457781708560758750506064642667111132886475092165340194937888784258022478283059716494921228457811139291252942859706852856006562108885846705040052471985985278934552267226401413594908455860407581739900243594350564705208578053513930785885291117670441690376189110766018973164086502688964152025389345077268406338282312268952108939148719454461762739586051694469016371119906572211658894080906968069872662356880485680438342803063354215010969777159004126902157732696249109487584879834039482334206824430732527411965876143443706917849671654826852220628258828233546929570222563491811999747099245045165914842905910917841057354404741526717263070999654694201943208024084925403031066072343830263228151594311360761547256789006478128111729162179527826840363434618658468651815839961030325026028066402613830533149312380782467627696831150730462278159746006826327758358489882788875979029275145099724866635254270214268619100423964681800258471627605282592057629637211372948246998826302383797753795949989666146664113569837413832083681732205228240028255780022956708434529697913188785281979044664052820914536255946674161443612687042090463653585940650730237258492555021890627630320012149547390119722464717913859715345853465934750009482726553522359637641235887052036944678720857940737182926969195437015247822402372820824793449391977633851119286401350676340457831611844490974320317875920006886498244277959620360671313294592879947174671866223453296064350271578050140472067883053931315178058775260871100091505959644782806444534802467976030098242471319932640142562670443297217160391097262137089816923606332390613794498826799506684365707095157569740943976926666183890231173385562599029516325471101876571294956726250285632702320534479746754103518522020041577006814694555742523317585646144425567118127678339848224673221099036332454129537855061531397225916733754647464481414629246511052005237859151198090410840735604234058808728298578855161666171225057234879853617483006577417851516941236188444595191186543454153494180173385251059689140447365464736102767190193983855100103626592675959829862611781644153629237208685339105163480284098811911682364202630188366147764744654760173483137591002733177557765620292486450950066659160907631677134274346375632138037535705398097349334292528535735326697254895107581967224424523801783077427522593641034267857769865853454906777897024845678741926991581481093494963080976080605561884536393306233856218198326898417371623722869280334373691015427189683262631907325479242593199044201898764124628794748518165553317434825047388567425319329967928586718054811534816673280625018353340163263879584029468975490914558980770318664390529981077043066031283553685270470616678481128316843970192385038714684387242050744128799080167551970476745469804270488184242040476478212912239849082617197381946653926599056409007831169556673981480372483486854158614208959941890820370000732051908666232272515122470306740932710850368802985985617317661086939747558401081743965870538583833919601627248029541757188151767161577096502727107304009365713714600273773632739779645966499320619703227569698261703419188883778142778381590312968652260022288410393525310439174451194537041395074087212807239953877409675182357723901463059854277902078051121131019838182573309548520175315834751026221051102710623100569095841191795690042809623835265734043522576292008190672638542358328952009902409509557364938006181374965213133801142191399493973374744479143824311437226818663808853684080448492368507183191417088127974286513498897958654003815313330376017587263926364639694088114814674382638695897300825698697478514293748196976879565014694114056149471307541456048026248686494816081418347043168311264180437878755093743999051989044075269941257453840418702547214179314629520701859209347705506305123935388191697931855137712347374029341391023183418279571087491444435074740960957545818621710718715247669659882160067859608683163323256552889415969267410402524319657958155781833943361361359965565824676675943578125844029868353590577564832836627519750093546661526152531368305342204916316361022360139348661360869638192381021295027700904949453188644991604971912047980564115329881051267565324270921663327296171610679231185487195158661152749134243123599298011514504007605987278988552398298387646287250917270731002316506010309962439137070093308221156770893473332819166807925946710230850686890306780052164475454403695912250692739904258309304823522145245361542133893330772834053740648345379405455750694917561651060176007232003307045079898556382039305109940839058534458109880471654481103878331823134324858811875980549880307919707820117935283192055452083481345580567653868439269198997537658027300773248004010565706169388212412633423192926565604639561904640354278190047088684699406664946543058069555011479268392550830899814590876485184168758693025996317136670657769490231856575370923206420505899576066956374410175508869384631133980261131190548778890510603022873313584881421452797755892301945545433229932639729572286568596713523990384955720837744093381991315562533037012173734093622319442600436064479829465374803598438614651333334441358542839619782094641171077682426965522638992290286588233860494820465934905551517899215504168206007896178028106499074603265288904128193071118841687399321130132821406377245626129830246232961252008855831681715683183404529275496529405565956414567824059167070628792923731702485634104066927127714444761597746500289064150733990422457899026556220789257642757092446833728258763927907855644092981108670685072909934537542249968375663154344607217812326883541234091030945248637778938932646625354339233105775279621858056347613752403556910884548111465604552599731862390162658249533381635486469805361707444790870597761060050934820456908879741018601514097604712688145307632771781619718399104547550464182254662236145142713846773517943923451770240594336372021311875181787665690321655095287120815231022215325481453277126486787520618760750849507713348551377269524796778311531435783949249531903742960877601134134168552791870871425442708271058025218017838248331724382921716532483891858162038733707262245061963598399859404885403964838957577959908835098432946942255012245885625437481002739822732410760531559434299804097548188658261163169311121686657917131457719404284145662162413007996107573869275848885984410684628437414354556568531829562965095914212664251539843389605813011392337671703311762589495637703409269133491904285332174937350166987123501037612236081791755014667210604874245168669661741939850936990205072916632916534859552228760778260989370407136344645366478733757449061135338861559378192615181534385966401643790816936164492256926183589334650678647017805865237797346771365935977706460957755722777552212782887238119375963814294296986425647895009653932858530185797450122956040594815672581602345021178259253134169838382672508359266990305625624598340366619774891996386747164509374397786820039602126060519579337100674965861231957610586930268833371196579284837506823886319697849183414184500162822253425298216154917492082155704050997711601504156931785480927763357423410325296460369588112309726072646797991320484521829313149210429560640950355155645131509516852360784568204625734407832265347018580795937705262745007433344017620462411320660435647406564481725509076342547369597967582216950209959901108402215736204712821282871465701241327517950595292262525660912215167585313346812112255245637760746699013226095727623077264239967768554829019166659035553460524606004100424697742696359856136450301628324243976081571504514625122519238236520693833936323252051750824819794218308441491726995403622287200480170394651712238245391737486271096621270769824000696549990035423624667876058604299951731285925067623695355274339135400783130315242959901026931767986925444230888274292653114183812858703719005319412295865898660724149127224927260340236295337676762974061787478760205644669337310138136222098151315333554283280611075142881075154783302267569878508710013538984054751426987637261190718126614630842908139517512279956457221868326771500241098373108869091958711435077082528557470951663235823189711424145223262801027186705786772070630148963753723962932888275117704198009849911531274940123993061949250905106724963072249100872754730079593600941389546482517810717345703596246456551350353312179639782421009696064377122636399954492942058725164225219656569167344259440177468694071621069697047268399076518395757455964311789259465775302346256976467611464714599351675629947042976649131198363657463651777649907121252289135003354858403627178425523008692356476496074269943821074232868555412221393044299654691485122810275072732949191573941730452008029214851396423135779292349883091910795310003016142539399687561913229346489595268439910783712045973245124552379700343286820137915143290150148289626707308191539935510865259221530378070664089134825162431200665078666578917400975285315445465196855118486200737289826526317129832665127939210693951219488459859259859446766423387167108876265989185387198084556604337186529261387180010535923776615176565208082645798243492390996726175299090152761991751239779461019256905903170257655404184051180695889203274755978146709435263897673983427894238616116365491302003360814989870117388248410365281359538861019009683011900458109932766292846061547338859963711192391719173694936882379605117214566209236729188424418791713716630594367095763577178367052800793555547438110861930159357596875803348646802343208190220418012543349814549000291632276639982452650935389057523604354111211318513768042390550143303185515837693869191016154543567692390939309836360561561437411107211321997365242896855582358735398251102701068089850922416059750206882920939764563456198310799296304569345639808632863320573448941555465009211677673267307063018850483350789139312386225667793256026829634433810809629837798392787811395014051966805337720175090015817125192052141870080797243650730107705904247584089155865547301750634527188432382122727207858207800179728864769268404119402907553660955595851970754462815728609080925460962056295015114425336232448363616539492910116229542918805624843447528403424337401185265754922614541059575200909705240297120945738343531939090203211333952307990223094261587705865146076681117079605989453836252554816013758669827360795408046160946596037699060547550882586367961756714281285424654464290095371746352676178876971289869539796132222086692363426258195095747601165679694955778791606340765195898752778783629896061401882016249230529180971920555736944472068350314115963182782666276466804452290680269325105088300786181577981541764540402691761173944843680243378979785818540946933819529743882731240997762215697027903796893625834772244833778046978661251338552533863153442491646510466512518412067674634143629618754721330420168862830448550393364299073172758362476697755006013448553228707961794442849840917767533453569496549131567627298996173809441200013709734718995742188551890034963492555883675009893764394544115840257676154230784638046766277001101470541575135574188879991875757937151801746776286791532567612915106038591021913521647859951150585021029485130618253474465709619126747152697810967860073656387975932686729412673910049241297434463234737629457526420158341405290865751482026441117479699968881586011104323531814724830490457347127067346214406038154815235166105428902111337730315547571165748691100677415705393477027023009668783985006196242833682801751088350594498538187033077532258449970446532121045991988460034117357942657837732089736103448837821433241074462694443201297355647186037764050944329783493561871127961339841983839132067620719776716206643003952242943179967384607126420629960618936964507748721565144999102736918570277911468531067459805409549762422256904789687477240646776639239953153091804494080706614233412959292730979230410160229709981824728500045329120118870315529501772967087820041832613311347912295622701458026295068520893015064263243704899234704048710581302352079912284331157915386083531945419674874679257695326349093733148293198212719124250199810498242640412763671123265617952977621201394889086539599340749421218063952964358949848764247190839404966604837298786876768436453854300769207449086344185587505305774076792907459225023210826475768425613582183800504867936846257761404981555904556976679312983365139227790214604112852696970384267593463270343302165647268857482898483453959878395510691300894900260120093326471042189642778893677194547713510351220347208918344260280303064531243796627508293659884782547289489891708777818990692560545124824910570216053905040321362860188067744261891442288756421633670592081450670716088546265028399727644550413901072369100441800520767301931807222426522018737358767936296306508643488879299744385185918993429439319559181686379870915607323417835535410038437657158362198973835106749527686406683494854476790639205408302581133124615803951777942214037078623388959071923790263413252963305592928986036287115466033922396289078939047561090873511352325568344102081372191641745528183249861774385761770625094679738754160596293318376209278298195552950507979273070412225563902897934909511710937577059298825050444644873645278361452781801369706869731045514829668809522676897449876959714381162687693859032405971784984905990426018303382076590687771342309362108138977176210099920831293444228229349109949287971732214597562849496213512775170849147531477743694326792449724748947090801383448910931760668720638811554250761637760233446929563174058444836727739006547828571637201184796264366595129263412115028746148074946406468526136111505454443883595321884443394417763270355361442660491325691459983644786180149752544480881413520023500364023060084762229646792383581256150937396134874213524233323185464900404882771161000268414256078526506623802811327330255485401955021199946523134733759514131262825973677580605995507489328166330436382451046683866414890720454571687136002065465248024752688584000503725824222723442315614930443531849542355807833734153628246026754655690111096630876136538429182346045283243226553059882292662309398995799876706649632413481540844728459119327725264835018642698346237249568364184656231936126215416588811287892500135827213345907232787235900084646493482940139508087881320852759660863219782000612674591952978515514510638421485807500826071681614814123466129666396962023709437172934344307421036541032164313267535658411568837714651300699812663815291165893987838173442606889825775377738484462360801601877897201886477800178340843928891645738007906334286005020162207601496058809904978441555532217404609485098254826324815022896015680014694852055906427219880122004516475229886908855707255103189145773545156662791006637599653886911746379564105528208652296320931079140382335357084689222769595665891458331266381062502707151911877966030876609537939579141475305913600013137572277053671019080156181343973637403789720668582113146795336903266610256754535509915493939665416196021454405830161486404405469019338911309357889216256335765006604951154123478065964529836263885730070094011528638899201110382400231168998456835450614931238879122433709647375215198674283608482957836874799290853828328893730526135244772885782975313624762171777609155222767781483107555031639166548723841980030943340414014418499465357113783989955786270240462283093197763833290138341266714363977611998686958456083094408513587177101038121052336980428929790231672780141135287845313301323476725891010223921493413333638252606838611034732310813933364223716812837008450016366011636235903784212311989742656849968208163078234873687532891558259392350218148678909955589965392439951536538424798147359713355469998774991577332394356078043987851942132352008145278138225834030913099917902777636389522095249365222133289513144137894929871958402806578329709447101856385914374409303359756724629477894200224148383128128092130017957497147808671009470588764963172459281904214929655828542045383854510256325253463573279228683101501212070686031973225359472503034139101517493526001271458729902316810740655849838212784184716467696791316712222410378240025781620290782003669525462158428767461779120753898055767141412020372061047656051944276344451821190859124879733375265211711678406445650268426173639090788369454554835292883668739274474752168471484095767534253081139196137612075059259174327330321663642466456153551163436988566388027951552114556489583553718786595146477831692626259203647918977827338419651461020324069807930569549486921332164030934757872297696604316876447908856283981143375796288351499038793993216168753487588170672901918558574478911667734072400173633667257465308639364204316048166577277643256627888590557849611261036464304072695743895272272103603125118246620971961387377508465859995554525658841630686887233340262444390923962869843217705033176933299497486472018800593939989442051112560692669075836840094599141071566297488493941414549896056899104064035213530481785384105911527938432147762000431165228556333590715166586323466873552614523787141972374503435714134688201584083999055455105229068202512265053561563479818255273686357664649853069768128269580543134701563023297291624061516221170929734572846203928598530919334539486602805943489524017504558644803726618081708780409651267197941425640399098070845525674832494403689257565610491733260770901057423968077014488407467837126752009113226878189013957794753144228385954266289561678193114121543161356329354488747038511037867836240308017728200452895501452148508645918859253807701978421173952192550790114738903409972082097895401259894813472232348032927139985388142087048184963742488870872482175012840105346894713055949360301849900232205147486319233172357010645402796230523039452078812054605748424661299991908869530852643660201737647120671096418621352096314659822727764471595607786683679139310779088025443062245436908070967660150052468818861791756074680053684455837583594908964788390718042219281927105347148727722906275796184491623814547019698932627884115850508346773918432146296213725420946705451683494520600480908719952838845931628750850680435645364746222525345172148437763050923406678328846787657075656037768701221088968779329715669062758777216467428460720789978937285761180424451353586991476024988314014912039830631697352547001909843578384855570979936461453057357826200895944123822096474264808201424926479441419496205945733364081561625260478893075631176861216568533984399638812279688248945915639217028338873633591943430492263432614460584039668333057540930249202742517470629291640646204847268031536312070786790869168004571092327640800654551884241886025142387752394225839390795795699995728682592768999360372952684930014451371193043938854538882245844467361856175148318771324321624082187804081579119448616985866174620880459438112145636808772054008308625470025656901475620353305008845884671416977487080638724331873245593054583111884820932095909663080567077276716068977111915860577913608397544571845987453403011388410867879719901815539196160857206960982756490857477991580064690490549239877918496580004179600882974569603026924778274952882102322119591651521889985208162690669490324297044717591844265273401136251343463497049341993838711156877223137893661437620816129430697874084285678703028605039993911014159363660959544121410858535064288466383539273337789224056749983801516739933124476896034306814305353203912634337403726076533776767930145410849239517270447929951139801388456243261420181381596053202215455820968141754702890482829580175404854985477494465879830527643254980248751288852356003449452591772980476918233313538015636793539691630744112851537247984534224244321257181697091722020585611119608881183206705345243723770527095137777654756899779755526357412064353559349467898392917559065454340348642728537786347574486553516859901860720754312247731397198217908267868029056436448172549624654435792666622471029443694521436878049147387265733518361930884472598033289370770873365154755037373672916311250579178004440735888867216102859997996149991526960241666764946264764904045154562471269425326110443296252493089524231078583296802743010425353861897112433794870877676403268855294652184613868261143427187557541854409874977655045456096130886292374862703847870286231724082443967544819602974481633794553435642776351463814319938397639032277514322115525553058709891117052075840958195890729603679779220333306408324525544876348358869055700141887820774527086342179592957677843178951836679541778459192641553857888832588696456229933916534049918721534464632588135938803878585747484471675626826718602067429063331892514018658847029626823422901194631675629878476051517123006645204373837405426168619704237797445823833078932693672450345789055047393411633135475369349693079184945154581904503914590877416434343879099633830247579962633440817209901067846282960031283846147370224073567114706150483405787638140215722070593810840334794884726791132277414694631352923955296131192497129114366416256650489954911993489886159068785427151285017224835772020739087782538455418367025731109911405627565952111080943475157052557696022536154126663710129973068965633025775100324630154668267667049302570140611359417140926209469527272278855929883359131854755566299764109730547922540295094348334847154057143866156750638372779736590584046903599110512681713554569171069019492622693944831558236387600213867321771129256904070070037605543805098314967006839929375823841690819309826667407873840017236258667507308775882853435315067495960587499761000036358899057828250896811298473256591381422440526273275498969792152733652850223083627392091576324958619861328664991897843670280155704999618727599678726476350290961780609212333008268690699105906898509561136867174720059634475446515594679669867731797652639290641038179363640063539631527365370938560404109185625002382250850198618898796153247949072250208453958730889570431447297410562498768746617344236389304801500548539391611787563347989015073736877298139507797186269484641694402972930239909571359623135572763406707536400052325343022234655525630911500035691084348897118637727682760874575034765728639537638806513240708977336189300895313557195940617917988089681859449595287943268526040633013040759853803632086036379433252447628521218913158156596821943295322218086590173866680417985921839236698167413240568746426010912233490569374759400275259001407503313780342103814721462951772204753001407750735361132547316335866086665560321085294425176501261672238453316818991094447090857526410708605387565012217053262210343958028534238449458089861239609094045261819479751676229932941260024922641897327899789126310001810310051021138321986646909698909185831190212373489038299719221488820670983263498513614953682906229533043368911760360755216485222710663590965349800815994382794057779671492083108951917427573123325356583285832990067496174357537669983525868507084361076956852669187839617112239072956538057852069465578736716133325690328624691919925569228122516387475486355202115080200993391592567444074883721813513957147600980250257150502497431056270759114857641209191514431280348205111020541366232426525845985849083259143296170018431127278283076021795357478406653236416822271736904711474744711629411941706542691317288095211876202959957638571496357390292306477526633579303723700413949798925563356932731858381057820366178496958706926692285109924780753736477688015019363241247698049772231494083007493242416615701446720658654894912289925953912589267718200965918861028143132620413120148901821363414988581323920603643929311941984438801535211488701800644551979488787431523103260059671988770210788601082279566648753219383437552439474523401502497248676466423208936610761968496887617557128876110182288462014388916430471577196818724765080453582557091888552446215254575144802608679361453666655457463137631770015568460792206143867603228934966241222693518916398891667044922144730384385620805571597977416221089744930318902149345874664182030876366262214607963453574928767072312601318390006333243302247930593074217707008085546274149828116410762190001127225404688411321410410075454870935307190607258542191047208647748587207874929050340811001564288323353961228624726288984628453395029180461638060582608074120439445806030380756324092543999682742419208079756704761233147044234775489886048400697847769518389240129775145277646468831548427320959978569801663518799512099491796616672629318793521437103263958666797379463599613619710684647661018218695669602374776232553744301697180147819708405158544458910701580839429550270472702701106911759044631435061770477136748984260275437420997599357906822864515001952438744385453263740633146205779869294486024596202415341278017163420269193494202710206416744026593184316497767487765917083875349820347716833969708289923486643003059638168845673317610458167327599761330780082028820706846561283603039590356055109486665660568516226062673722255203429169677587901646781958449118210613651414749904982510139715974717344988688103288672795777173819801210827780802627756382679883587453143215015484108988726313304985563207440322532098727427193118956829060263090905436740014362901933660132193452659022660301498164899200002975922313783148363554105217415662890387095082582786295299664384051854293630929735260997476170559670842181785995026437983716208657464633835696938226182883497580777114189893066188562412479216543719602914586505774149455053619684951581644874114822725235385818861219307062499311640815141266042456382133371574675621771800305814777440798597517084795454283298320551459163272485208026533714418677417299712428613254461257367988429759348945094657414963743417586173377909647022440870938008258895929408324021155631120146810476909118057448884526570660424641772996014875136771936240772521921449290113239630755415885509760939983477166084536490472515021519657400127277275466009622434728882323399967276797356070984071302106404349669084527609465001829343634803827940990848805686651573626754665945470700407970069378544405719035585028728354783554742682609111642544005600336837246075810359105808387228388058248409044747377811765220022994553600371707201725589599886137257729017238305791521686500723437765142841928714257272326156379477473369152387026817457837956964764089807715455951587155699345676472368497921884194714874898479952126448450339922575806093056034960957052096469697257490464944483923047005906632310481747989124501461531232067890250718040755754880034964541742424699535702423628310211168289789997891095156156867751097581760028035575291584137118258371695316791532455291766269727093223256214755024259721781357845170442059417630802579454194307488834382124208202310836548282097234620123614372991829346289153689379706975821328157228191431976717867570801807560604244585307575014293577531271441453790340498328884802351020852102022223964668199251281591074667393843891557538121891694472533294046973481506928450761677301865403204239569080462355332859850225514115428507605133184716452637492058023162143233806700098062593750032305335918625030668675351822925057206316145503451675899093361005982452348267395379096122914996671548380701047806200585044707837266131892300304893661841328072386432470782192880208015292528974310374575222213794629792605736445362759060986245795363166050785460723663052337730390556782511681831585666365253776748881008380814621311994096838594508942591454854644933014268582975576453133116765511637195246423958208415442970284511374064869366065249928452715014143434304966988624662913330344124757513033765292364438607024616185031279446612254348174950480748047990752845900081341249975664550458961939451092464461854452483083541524793439929220553107468840214790798674423919512926359804911836632905606919704296110161827651398638818046602529925720373531939219413687539144547204615373203667827068941984934464576770428669580888982712327455039292633474182229989475488546320287346244774873470701491897424751156463552619319507431239807999631972946544200042496811162626435939554603199708849837443161886167770921504061319905613259613773635102680075163761921564924327254951037724754494037156996719689972076115175382622468713992460962798855913433977768048903201625205220203795416743542954614086783935909781498572196119088498481306215975958859965714280017550792179187762406735684618924291475033313470281437071214212467150585550653873298886225534325341023974676366826983535222596431988655892592343794552907008680339943292252967355801116514856860908352769626883878846097297165586108015990194436999880547825704639444019224462419516693653044245758597569999006394661210250503818333744566808389659893662707845258307499345276918569918243711597709336379099056993204126329456700914610003312729658510582328775614381547279685489261663146448483578301166487932441823360004980579426535538601309965699132008640691649240583054331817416997074164518523277772200038465532906050402715478232804230890549824625886060943035284923295868252912551820069450297549836860987124651067947290492545877466582997178780156762897765188349720969666319498692492123961448082693588267115114319607019693920822138232927620570463626016263148574344330005646949200631857502947620039490513234010253553668410639725795677282547086729414969089231126767794299023752145003737350176273986707915114451697326498602789598803328970187173229934840968351927943861260799336880814694007752870988536351550821705507485996475509590086505726616813723791340210611421830535592757868185669107029788732808150113089144908731126875552769695105245356147367093423609838552321626812120704528173541290904545464632196026233770019950792986317617174051650522892724378390357133686292320924759650029180549245196002024623650047230951919570170576072038132273877743883491471314929069244177185579489823189133518254642300233053654764715845838171134679847073758665576234573338330805814828316156502819360330390191157766828482615940630391619494215261757079518149374102231784984721335270306109560606505016034740714139642107230660794706689336069564994980082270450476097758816998141438857018774591062193537035233848091108928082799789570596873514186320015606380503755102005673360147278155893437045874832457070409638369056785179810409994828095055234862790222649568602578511483024614830073368120560563731864880194311866807958498057375114684358169396649762864802366759790198964174957420931729616096491545467021496419088545325988442740778051951835621025098295990842966753128693845816828669786709820603639394052248062559258783438739014322411759020551076786462747976875106916349320356010281923443303765476821224077280778640073369952780613460768749512864105335743844658110587255512218796450306027967295029466511529541070577779912914324746267392779676599224093225003613061798925060516652193947663817222584854868993253898809643822711634916605714953019560648046662867525756904976477843665472686259234332746997139852833054126634759204222287248336308008858272802654224430349183510388398710412185141243992500627864451479383630771862286519222326648870557306513466926423465116198888793470337248751235740605806935866474734888911436524637710362754486608137239257037513079755074357187712365369669525876444403481187542246064196499013263021428263310168709996801293296757460143674684803217032024084999363910993765205994522557343739868497575935895720981449748516421168802961559000677803991378852725140701777516924232627035386643376302571725714163100528994001786456853814188462916450322761893599585024419204453448957766086211808850438009589439630955920876442267472064358677132010069274611351924417745354005579566273606673650679895026660779569361860698196566036834804363469177803237191582706926669522463202989828548927821504103419477292713721814058659870398374174989993571278253753256050289474286747978470800322092525076243775165305419102304024129218237828189144671279667489269611613236006919352216720557944515229034090472808569606735734872624510086954291541036302198948912597541312808301601786245437264645020552350112615384738606956255547622751448381556900736730591715851873465375010097111277761670172898473795525981910267709935523771858694756927962645817590534782247011729004124645108053550342296387147032784614296873902021883102772147318200290104117808924420690757748008649342383065251899325636574528767968022607554726905040870251735001900470866315563271986521642757676263107237909357326246549487074625569203462434707679133579940054261912984952291534635818997942617525287133924740802565931803024961893077108899226933499556663667000478263135921293818167262683579159763822676816495914811381942794181099554002922054269622667803214652605330841968880892627589502133177733326402139322400854391045376676168558446926895947956496497104311071542470264557906516718763417710198693274873641430521012307042136450541355746616788426031235310952496847865248682730920127649019304941860586530391408896708123012467001186783416689447179144399340877441841611238527753787548732169733242493164472159445070669998264993838478574645643727406363297632896825869575163112974355034349670528642111035595765450360838199806308520854565345753003519934666051546215486845619388597329406527551667133401484214976484011909045996843533359481372220734538022315971949485733487922006374392676068865122546467549842572490068648363442245093541876145225585719570716089544096664798018665788855430943016040337997366460982726002286949259896548274872522424686630509464234183863487018436256926919253258979040700611734422472401392825426701662149997430616831283748866915935721945778557550961922217308697312978413945865017929464773857796711384473071791138940198208845604328158701596501666895907195655533356065589917811116547395587895962780092569962865249472781412809734660345304789855028736343222587794755132974515601738293304298439550150859931979657837851294602785040737429421064654381551220244438620946700696478961546321425001030785091691409510647762722916725535641652249267480096740827351733895155628817165861441221167005102024165190360089953238501888530113028276390979780851371642466192367134928158698575177187685621584398427712724597191459978889523414239673146879517461959101417172699980626211934981808993924228101020489959846272951749305472040894492424016304763669263053333698700138438515841789906908189391177327366001577734797900629923659179947575195755685572783826119909762022814643886146087251583471740502833117874811229482979065436018131333380303028292265726359589292522340787710978799308313393273667652526867981427526254018562351310931429846165215777908476981419970018424862849950135321322820919560149052011061938499428469834259859963209674896308480268523395145973411008776166596368724813004356641864552827585037927536935110194997336990377899258396503036515247247757598032753863243683516547467663109848234593655602894458432170171123262403559538403878604236232009240242054703088721029763436844877840163307349174050151803921879384051684452098848298241613017051220452674155287974179244939922934979655280826997185269895259778988100161118262741280482851291233419904032749888296143779286473981263862769577822682938935830072511163598652098747130043864851423300278196712068986756795317148639764131649167711980385464024845866251744758417487391371417322880545450596198665531960873595063932263107350598698970638348749196937894864583335211138063938989922501116558540815602072194715874086844761386685079127554896234601340848964949663654978510677734564324871427022633592631454525797034893966380771972577617909529660405747096053183171138820269136031558336154669680072372870601351507146955130397382641694216586334103754094882200996447462915232476927441161589063281177781408666219331644629194203373929961471768592028050192220585088298839055095463107605670541171367739676246732675679839914024079994484026043433906828046408530154234496255383968307231485879942038885741913226732508896480516987372226970676238870930044486520580093072972861750727688310150067524757073378985801295236522400731344553852856383163963556936298704897762919541594482753493056526776195874182758675906079986627830758480136294552492108780772989545526965635095723683350856573434963379185697409322641318403343308073788946324023400458745650966938408941437411449679832628157762940590897084203329417981966186343799467117400699390792686894275004100705052389755223345703651715619027478441254781080642186739308340620838304943105369896098559417728731838415763954896447106618213112656419061860056630587190299027504174835324453123672407749761030281594580734121878285440984076693334136185135798911081102168540141514042324271167782636423085775007539830258383945985423795582763587133497025143068952610299386645295081280181829708265799192646306833858203634278785283616827441765024770121564373656057519319918972166949745691907087558835348471796899711354573154120877461297860899533549865395634945096312376870314491276980657120221373345527202481779791429422153017488256941226935565333169825170985831759351953703125287114932518735667898735658833004096252219490997327704153601889379677664908708294543620972205573430024043449581736888264470897663300364583310033212917730103342354906579252283452336512825782128005417073297305666456038311082936147597566196301574343043095000876422164199109363746952596302707631861694528122906138959586054351861157476027356300989275937864889343064147764995006090421393082502656509963613560452217370286102754837845801523565234902055733141405976067259579440638765658144642747002280054027617747455142028191858211424507559431683655069874281642498433485663292614477787697699369487376799933503245045942285169820985627498150510779711127105016557486923536618559094117563389845280442417025553513651748452416303814828440389315069649225925299730804353786274257965639843695435001727793322638946864396222345209398326299469726730930978344479316865832971082446620150157781148604867301767757751881192511588237175143239510946017560313303222179930952525508722927958915012631697723964771473098656280132848163475829400276376433293530880931851631525742048340444993438863956913399515121715197743206268260637987167795019434194014676163195665848288949353939521608613044107988966686187430260674403795016460148821809303847639515777564820685080657954532212032401467009795383777267370906784620794991046525067962129069200409353893985744335682130871712456126581344742893605470367038547516528650587612737842820490908755603843799447089663828583893603404813005029315680998642040142206122727357577980669948011284158957257330765872819302422835782400831276877352896490131432342191143135298400928796582816860955231127019694842702456824422969278286394588791239502606183323064059330493758189404509669267759682336444474244302151183767821350065260854778062742495181295389479405884938156731822548513072419403859177382067463807690352438183812384307747691672235871169122313612484527622607973177464647859368753475104733358254036695432612416884503356079538232959705047767258873049306081485165135409915725558264258994280138309528822555613509329662592825451782168485887866631858447984811868934157831767322156794067053242284640420624648331574480878095699778465471050944975087676136857261343649324713172770063918011175873147723584922994958601782624842091468004745657720944808122067547474406190290645720780841104291237258109759867056607543346569843179079053108815222291986374909290853917540376319485109927554302704773092942087658558240934410036643789455056103114273124831008852742748792760074273012954130481202465971453396435877100039919089691623957236416694105784289152739731198487368516039398778350109769253138605389463287297060184620483027139374154264379996966989517964028844272999984430045525203208531497772152433224332435249206067108834215978716005239851428425234183431645133540334378642643564832429358721466461003499630589493912446663052468029983579974414450830847735408434200302747565629644874087519315472528696253003897813813720651696268130706567083730769393916872186306311240783515596481775396903072876909489778421811399651866221062108257213685313252843680472354028978361119150738381092629336640759048160869725287111407374363192156499449488071088391938261427992793442038168937453739595534678820901397834322371656677233734660447115363909358116732878198177486336317366219171247784060067159199580217368546720682384909403401838077342626505637119775415035035991267016852475013007578439291159663925557758734793254022080576789724665028475183377908908619530751453330647931817953599920578263160602930965989372564135232748181208188515881806249279182364306260062705572390108136606438222645837818904635400034093250053360582835643810808821118652530755128751945113515601195100240509736403026038736429945894960367313804879339534862463968548834189542338705227595918584453553692365838373162234334836380930413423377987223286788977837508777409111058129946260686446377298238782950223238024211830834429965225054579081868463717436412112100777019495926258065133492416985342167704742739685232365655771337990239145636236859195155430024981209867492983172036839709450319294872217459740439572411891644272064330122297951670123040312998996409266957393328294040077495858828229678989415844746703185075389276325065626990250703619820265480206431831979762235232737690016088229046062372850096281456324036806190401584452647743665134135795605059749270842549415774397216810178489613395436654891543720303430144982166870734616807652806404706215204721508892822971824861257536678470639552900099307239674450708281298880147699233867948114152966496458696920354232774810137950421344953617377574596125929696880176685641505306503920608742243853084654198649237354227833184631944253789939676994542881203169895658554628829706713042436287154003736811527630919103283535708757418656962261209690472650521255336540640348436309412305208883330804803140971170430308760180342257270464835705782263726042178656523042131347574945280927512044403159455802451256554772223696098716043016693565301727782966245906115283895632055592422146011402444421593920957355383686047283248824196674410923742788787526160195325222376650190982718910927984202029876639803810554876025895396258415478350899542937350565495215235531053455958580978751484172316777055374143459150275625743526932598017916638900497877062781457904831380919062119453096839967943700934584105510807507370399562971560560668917830682430051056464820885583691013125294389288237299564821926390224962212442330591862161503534969912745924979754658560687270561273095255094299252716885143186662831603252925979766271663465088813309191239067555427360831010728520694243475338656368072200428156847055599213510749870740791401745124186356290215419900159978180443314831099326923555695735091409771160920508988844051154990303290598732373970426535471274939087595899038814209721796448433965809121667987326809446126517960445456748432906727269964908196671911806848245714914915077623992730597006909466426207217405930254800223395360410048735809232619772857308630837382765931742348913677180893513919173560370401614897346809615629412777199741917958994325453639448337681537943501131817723506923815900140376414383242707290824783383525657859179461949830332071485290951287777730717978116759387284482007471307212897659844094150228947035623624623154592843549558880638932669619282265074706582479428519100077065809725575936311163612128502598609787262633000043845427424852982823132509421143732393901936233131051097042238396747896163945511474129283802628254990557717672742186551846690097014476258359930697045642949130557605744257643555621549551342571818447803777420193045499733704315455096809401826429905908866976549112420640153299985645175611522216324954846375559173462770175116909656471257609634745930937515933935962915003072236666677268046366553976814321880686819343614574787219251028102215239758146617907458985277469184159039618838779766780109069466134265800158166487608260840906008716866281354568651665167859347827979146617717817746414705607167928224367612916195495374395928332371854042882223988664432648595596928572149123233078891233665516225412882228073449068915310387120872628887085675511460856005986260196964462443635141654769885024836164036706729914277574809602837850779990952493933585820630993470032774616405575930468541133202211542328046423618050697096148860428944236544209385398406283845906921137327795999303829851027309466482287980628478425639421149802123199511353404828130258259313333085066571877725653103263400680400236212585279839297107375702675563486691078086012158269549577388765512696880080302547892884415678239906654492299233496016210001110275688576563428331367690997361243025254590485608399581750545660912160664037519164205196905652854928252430322799688731119393729172373755929242686081017168552395397461994526091542346324445855406488183930186977831627990689562171020113826862396714950173769970953532799306137881900614810688397951964320227313387942873103508555156290232869976657396097597033976842366608668223626282071124700806826899558686266127208681291695893303682585521349097900057259424066925568767144072093214170433279049797254858433054997866146505487914786059859199737073446238296763816027139123692686769725166148938511687514352170665504186394754992043554530794374259279415803948593154303020613008960292972222208261503679126864871659499003097098875017155596725333311782130553404699951681576155609332691641069581402341957779141737035265671359752535413105291346851942180019271476271892677505624591874562595267170843140134944477447284429514121407718792239161232070401752403139695277065262472710593123003971286283748145654287073415409375569361140428722410915303637247041593015765145007517931413646729908449547787785046784386989082657511909596389542774777316200332836383082847249867883693992768542063033306134799444870479007873071644920066337275468082601408994683796579575171998360356571814135130248789991562749268425809831275760002190559561117752243422226356605377484856284920993349135233967018328149687408764211541562374111331266782049297138395126425211893307254282928859968082757523013511498435944766923505023815235727580417041272758610718398225675182449323227926496076614687672829488081436951375120891760773082930788122440618959338433570813838693699260377697924982845530835585504825198096790307030003868000054092373302442816191766865907857249695123409764737059576689426729682039608510733349940294838239500252455238742791613375396138719891393601799216145432391225330801281608865634254223899171157287856088907935880889641076127203859604154838975984280042263911320208828854451468637917261787603520422268570629323595050256817481968959136195408762180406746917756388328856803151762947755754946293761167719787239129198241915035477091544342517378748942140409803109836447535857494144354693430811903644038053812869920631351609937118810526840748591850744183786566736692233864852511203219386998983506189474217863503938748534727746181891258847304638924444359167298843683664878491089782815079201335348280962160944505079838333136235403396744202224681191835676079037166741332888754737844256698052593072368179731307724762819590806117332385552277558652133986432745785822437030559450302289590916276896553577161619233068217546696134330768273444844785391511850220249255115455045348055351366248629247436428596681240904684513388924250242027493994819530433672291961651023413241206221115580305437742877989168656553391094608162543962606961743949160485333775150254434274041684829423043891786029525955557485407876490376122368710849136162703901987357849117585097494189426651215779955571326978957416707335581815510688835443936344064930489924733117010188456453340146571154212502700304412885471310852977052651393185814522103943097665309275562571949439526248530073141041620018402711482630957813910583573649158606660083690162917617964385973457252878345934271833972641326701079629758977538157591235638408943894712871402829722906603330049698854460327364320315044114932546696169453807381713712275983295074998588859343580315205002182008964815846627802660677524130276979139842338540396640258987031883177484917305064458961713320986651247864095471260981492773038456867673890149441892375126530148501867673728512594984861888646383573828417024425119205251031018764373757983543461263026561791896079253241476930421105192957675709214865508187163325928997936420040297684895029473705377998783795946362645228168189542013794915479016966356745643737693845690264347208922292012057717509434741609761827800646824273271377242910071570325784584779552208295782069279219835260890003492690769537846761990455045956936628325809294776993076920100527182562384589524529523134285102929365035348203885820183622430723613656768596595649278832625821202450071708992557212219940151668569550020886900467177066709148605413729294950606726532560101201611482276823760539300549854711999195982935450035068145911540020756772404409731940298322223986816900761742825693353730570196286633307609957325916116493374301182359483121931195903346892933058873368592534678616616930491230647148875292687837718064088869687433589695981468676555329308808044461920725758445175620504253896704017563339386753595049691455472764949842229034861736508250868120220997907627891535903154534242070052328342424753266776170024644029685030254063045198778360828249796066336389260761395820786434907051185553038004430631109960303316837932399162892188799964438228841991243106994694116620959437987442713493289742402813598428967985564864836973853908044319535328934043000769916478465545118423036123269128377886690889223119378326822961488958093206553220267244654346283805905717848328411885953342456806542649927937514972961821417453123115688148431839951670298977292856267686087737841025059715093500133061235613075489023507488723042765449532085074804031859620532972843524960809826421889501029088399851436690525298272991062086507866870610055912827932281003451084245277962172945578715274225009330972860849599103471959179725595394708957391811965424734208107518958999947661264533965334987147992393535259266448988039363505102148343692804628861604403572854278581901360920154163535832942857851025576531443912174706030859090076917222981475107139063223069965198184481233984287085376469231283580361787890638455675051368413517791829343237927871284968033907705117158689966587764268530790828759913688704737823245310459045618213789739968183211624533993982742470481591849615565395935044505408746086216327374672477941255394398703644945507744231759356673173401265464134274794273361452557793531783978247459596415216892497916124674094207228832211885682657437083209189515338959966790853935258911702919953372761758576272312204292250168971609961142711586106221023673783468301078095854994666577951420658244095760151737475871210510160851265006553206231836611892580031533874649620071112439161388558121362951052143593363812722998127364423762017875779735800616368123175148825897304298189340222750629006622819403242015800268231475978498782658671846332771707475145329076610890927400207158952934321022463441887301159122764766425951040675411428807712519778814071552532914538228706831911301766329270859725583710806484702294444701822371753019478718409092873868152906604896557411526845633018449148289961431036694327966930504580731401331990316833964464090113314700580928687562294392229210276301346070336816763438471393013909500578278043881187876896570198983877947742157388989717501593528244756310193195120123777589648455076612480688737967047618475862582864209016277751448689723270955967166979470531938519752248620333889702935208926501942565255293979930369382441310553335202565072000728751082000363679781349581298831567197030279363252437582958469976349087527810549982688412565151599528764969356882890291370024374518093493441694073117693622470035962327519448838067865806983602678088171524834644073120609998729683928534386916607867474405592241530323886054908551330753292361793536557767166705575547183226211528491330219306630784130996782447414458057826409235516536551920989866453226906535664537810434431215341201826211567494218649430323127371608766422193286496103390343614149085212859203314770684013493248507655628353615402726023263469575021856177400150138677742895778567034174034978768045459648935698483537776695997636362494924916665607809789970817550501770216864122952147759044574044427647118085740948359659937112849710967988812862227039603365402025957204961489850829400468695715496725004792091849063767572670051872861730222355370430083045949048626873322211572747745134717064726426329368101123684356244107110796660701483341007261584680904399189737344436321368178095939300242223840581599344988207346952302374182321881729442413938490197483094193475461587842790987330517831278829227847398316622689721716119652432901980074082164725162842379056350607909716795910118814912417685715081350201347597761755569338396425801477174806685247954636707908966164881380080094623482130971377606848934697457051683802380823936534759588716846869809781704970326920691124123170040909294727119017610699634745596500368102802113342840583172115520064690430327832929767793427359038631678378826802911274466675601630992016188181385251825557229048507781997990019100327518847999210139921494300339795242076395459890368268253560729895406900819073192115008598633838459157147131654694140461616592248166770919813365776127165320410350489814292361114260467092414131745685716686744645643633986162759319767590887591651666459789482500470121325540958286458896648423868968646677964749137862953995824852716730381611209225689923241668110701157895079543078161618616869125482238592250468679724979467799504968272813096368376131232586238964454814570758308169613802177235748196121140122413050317529754931363235114506510494774955667446309109806769227395778232381757729319385132494074807458696486412622653774337352090093543320386478194579169593457039198675022448390100111176940851456004828801721884487948595654914846195886467535276986856920052422529043037061706311835440464233328238119882468136386739280958816812796554248971258563648698211719267402885979793893903770815427710073152736649275093328636203052746016498689855261055636285427738635179393963148497676673967565088950532150244782715166915408542945726854230601020835497273510606050595464223792766441500243326401933554916650583681928327649239475338029435828884220668438268905812642977745503106311795899999296234169066554455921663319116305913280375012055494937951330103644330337673467223672195022045777947358141133711655394187014642799580050320973536944758964511473599898688493878331287414351597831751022684838498708965483812362693369403486522551827559190356672730598162831879663004539069572539507988738778652751217601686229673693838721888483796911160980876243355008680213643754805304353865417440162048917132871041604915330748011246817827955552595796150427427377984042803458462007760978399713480715675449131177485610045933626472290010490891032119614084597633648410695156509181989801079767031602385747439840795564683195814325162335861027232460902858201082183800644804635269876040973074937540932511269397030204756010362483780076785497361519882879715661358625466753024369380980078927329377487149953036606473936441884373078658826770069396967183052875927426442951513752501889668129661901447015471871971738331244501768867248332168335783174900308902267867255081673590200823085550199694934026343550362867404917783947118500564022264409475902759175944866340984523398136369238495998870426854288983065549395970405013075339522617789993135248194942080168537594918369091545435682369148714555789370283706632716055399124125183986986022815967613970898479995503848569442559808856457646866737332331753788333907492102985997628298057039512674253008479036628866141724301453407967887500213301474269006831534967670095103642372622077513531930752332743143025899795115307989458692034670868451611523462846575635591778557926033729710995060439820556830934479231322211894424848182910950842170202846781930769162458077868782625678994441318098069546949553093533233439398630880622852633088429917155932790018710670429692649516833430051452525465722466410447318211272371050537240766042960060423588980321886207862579889024135675562426095187277485385741354521094787475431108583096884837372050882311173981364609186336453489726915163685127178069783338733036705004529344663086518529761657566859631207402469778107179088086867893785766167531870496251404890447670844486497112704198850060547998180734744147978905668406243705327546299048049474296043537933691047744091754994915495756661729299080454141304647814081848635594971257372610338373192630215487397474667776524653742353200496371174016316669950796397595509428702924538409738762929738835712596659854531093140283184831245105177990264972618231366448473723354572439204207526230562600373788318951795097944140031801358779810025842517162640277342706905708522996824107739180903834689878324645635956831150516790055195799595618862296168551790615573749309598536229747723624731859353733480193599668101147089405489099343839126844020087125380534108460275221903568452976852144753066393985207546623994224372838230664580358154850219950498246920896277714188821576349183175703737355138974063950661072231656350368394606463072047860737469367877347408266847463514987801467139088446125993936950399423252194773753569644380082438998001989871675212968031562551584694231773913231120239907951040708795934871081330243008968820107151482128211758208409757004685334097569730329757286129624323781227632600924153113342820396031202674412257577213887064013061248512081613368714913263997870329947693974472649162984708757977252219370022440106182828625052342716565845615046291727486157890042471993997118575658798544254645683936613970217008874320923865775749967790648933980738561552823777512447066069020860534839828313700247463500390289502660496506178742037598765977121930507200127288566427611014838799207887686686145790014827201923422411243542730762111998919792469127748099718961474283850469364642593898723028390643221580559335179067637130930611954591305527513806615617702808287790618645125605629558022933725329477177554198403940629351692922819790315335516899948682773598151482912032603074443284968542655891613063625613254044048219028349803397490229085547012606881882127945459077966770312459325060186831871692538564296879629205316157003710489452284495808929106152918067783074798778946319534567888646053431085115667266713264875109413382242014074871507230887034751782865559692515995802823312609378017103222244382806180914331976667162862711845787440965606992637392296116410348719849785716581391483159020568198935046276996686101829960323140168141351250809340891544725499754499329496604891193482002764628543134024874872422982884364463023671912635936284451610528076624254373969864187181833856708165576492888513952035359263708386338200050468898962894306900308782062204274481772221487315132655080574383981249457987833134266252196297990509117865374699301675977658663165767980296220304253262150649135428516992289788859281461009873165460897703602604727477430125380631471177864887693506381752890419729297505622198871150200161276235581983839034926588293786383188727676637242430411709784265786918342670473000587285262071400019417020213326122015429475226064477902756206637907784554168961645521336301240099991392571478168256918780912731920931541578168293270102110120941873308055597849354529223808329862913305707937169858996156547686609757654989709556662826865666758618038519143512844023684942853135239702931942370406599186687258816382703634664401890139953579355755114723338340806632182103403280336495696497318370239732142442140471400552717222599644674194759954022400840321973238266693187447115118160338907125926847124814392235155588787404378074197223199590221605100103242739807022051485269622019482503395778508719864506289662209860273069079611362843190119840458182773275784914014296566533705484889666950888004444399021738256769320033376083170604870328409198383116899452433149845669785893401963964702471730931707413908468824778259435777937955206291125086335724579188068817765673273244648859705915945008984825010289177065405610526990082321725844504317053901401479586996032875143082027248536755375558958250783660892128219942617958837741802546756926791494212132074476949856526854050391313795550983438440211173846218798285705684740384036195726133291358978741426192016771158595514036920561036109009628739459947279795186025777291760958054684934630886856384314194706655317498283596714107430634630997018587265317773732432440719475217303086265582320561468344074917412934434889841247848803553582208820311123943468133738779010889548086793750494557775037744835704129457598976524587590260629520955094782315679988968911261540389393937521265328699700468406182473668338687743322608690173861743563171823661263714702437465413895295035302970014282547530143734434209666057729919551519231068722720873861091081080807692214291469401396581470906636434753487774033756408664582090617324313360050222235377381858102668163607831083273805355873320389619181837820074014153908951043448674312440987350317002987206520149375888174411979395866658094055292350052241059038053059616228328055008240304515938812153427287350300451952874143447334731983975930673467616405388149587631985171868189966575169124245041061120707647520879781540211226616693817961474185269132194727062098213412544766050424109547806861963070160470193281660994528240362352264252712777922424016180401937317408978204042637594439044409445420469679669106420984881456346103340933539240999684241317353398973980543580337637277608046111134726001606717749281839977682379367697548493963368093265742083410990295323793212469824166240235453655482986466238886562449277404968617408044396705119223236470200081576238856160079467773603949594237195464698971546561650816482556578405149884056580613024916614995024280146869038985610364822891791658110874771885516519529980333836663762993072459022820756603374495769724457207508786272451108796495153881577645393631309713911203064589861587493694456812254054116809833765228454265115598237549021978316034432007001823113787520834633372410714418334540804991093493012553165032754203701794138375701285181629712258751481217822088076541319649267606150658779418485489223953184604612608280397436215802631370254856133211132676429727136997208158623258643001240681976476097523980642040509635591659285789022391317537247873660977132042347039219205395649230335512732195901540745261429893641289761977413662242498779301555145396470009513112123606782838449474345960981770454671575617976689246446455720524634360926683426708546421517096201528350677090400950635105423445805926045489763260992744037975153084607886546122447729622212929787577085031062696213216367087379864360278171203992452400585617918514425724662583919165408545438761980534545815287143046417935580351284301961257621991459574123434770040985674930953459617780066084122488441226391477581507559724917666598287695087313181823174151606638761278441349526572877568163733090121915705765280531053109180229399677444723842083554142393849128135156379922938871752216909748590174610363347765794489682469512944199348069413297761988426821689887773792087752276196982307436195006760919131612047778761403566601873077224261721682886557551814073621570325477648561865941832651054015153952471615776489815446804538865992885350596701183750560102575771595420136627939347908367995809981605529164810531612495985769135464440571304615524578619760761131606644382935184511868334599099607222485121296298136796085328889719452392716694485727535172322278379373246419017911928855416951735560738124962437937939748932630616668199744171917352254793147902181794197408909004914370491816974230956408074269078402134077076085695071378437481386696658220488897820311698987511051714522788815328366364140065021234611549936185244882934096065246010935813317228792348513798797405913311428564383905284760454905344217482474873372631417912214024578362693296491791920141385427671749713456677432828092940223869373263349107514362370291805955203769690283756258550627507063367078132445053983490829554877451740478930013673624986383999821973177020995051193730081721035411905612672934372805360391432003568502692260563824481926330729917596391887056961224262467440015046006580568740148129081654449182034168324027761538265211553546747629580219794178642049299496116429039500448157933009476833153652995253527683688441294163392042882891784799785075583790243280067511348405876746070650553188006271843602200855181199263490482466464218732528481114885118656078541146869488836671714487761544302401864586713283832040997380327133687721798720831102099736074781837673931456170667432136687892979084353448823272899214348554255474250878525586288127036887852378350476601277017926830681286730645072970197316030022574526688248143602352586214964928794157148809721640381046781831677193074476124907394773444508802602884493520025623497211060903276119307337804535640296531011742723556141364544650954114084403558673626497314572291572457016039123812216080839548360428723560479759519981480516380776103970829075998821045868776763317571118229144421874901538423645187679963610287219737814198797772113898411370678142013940636913437687294571442541718678622066751775111285049229641406446003731637686632940857418151511827697035101113370404056761320024341295317415167758868487154330407224553624422243766963522515076063619491629872052939800844678314255952939595980404449563684305030909013645895407283182048868939843460756208300603559385738404175453885645363032107667291502365881248921214684675510688619055706153489736464968576314727370895970753021411895544671355587204524853908696386504241485504124848255469449863090059676753793521428427772315512596827026161392797930986257820258897747706918926375751887215032971124719826346885818814922285839020040430300266063032729393023839597474711374976350583151432312124765038068985135867264765626685820877088633614096873478997149400668194816919870772175003005473427731866428004595955716008839420138595790128100340942966468681701058926949030158402984118597239106911912653857532983163872494545670462808441351621061023246878089372395263909078791816406569199226510003520448763074101839662918054415576088686247752914346071156122775253771345143798853744145521974447314578044839395281706118451637513980086277422775385293854013326192227511685404416807741496404396943345199251633993085229149919829829125014704247592346264073412079088816241711676797984729225235432419014275175275392310393295556777208250997192571073392509980087649052416598182607015399583094706674702192931954961845665290468381045874755842187193490121636789044516023297327914291999080513388952069739193311156629376888026069869256957829426779443165372145059531430189507419040788801209873245035575302471282316824053640771312217366232969512247470243005981308366436836156258253195851492192258115614931894861843015361710584656133654033815629660183908741065383286709828380420441608392410719597431708536585044060768413938080544945838336998719021819127982896318864872817978600595054140653992381356024121260203917132688381594090092383636794104970459540964314028325882290673877469755230317875365231613248929675699783918371135446066364249969544024424749912066588257739637818740210625163463807259649646179695113997081534284939911399459792782057094729480754555702920194630649376733650915609616762937646203459665794496631060138310012394490352490904517135117498992774479993329840246043900178536574313046078747770275979455476476612382705783895595551222652883758634713410769843855847802570778939430324173802199536274258599847081417398392602113071855385153136481520747185329842658678112115014900038582341923974218518932134103996997352076522859208631005493633670215091278692049319380496169048907731427976693393415259053189506304274310866357974044449410885674497862285739921645312222553712201873524313553577126827369819151010946180899276518012058598382350991676433327185957110558255970783997719992919639935898076469561576841136983778770756095436613872748001361912188123839730371133846507201912165460920883020580068898588425732221239182886427028215994759341286894699676271657168843658006907715950059284239789618836638881201025354929921171642941515782927939263186549783353657645698586223084634015951631751797686145770182769452273594733277450148943946791419495880838209969315356995070351577541949887410363086621967674912190422462383822792858452362588812444423650110397698777882684901660374489584297722767189698933073786992114414464051173293416376842010441803596291930230039947368763569040865042768106611718660545366268388724154299538383446241101381482741479937842595555601770825863523716938414038515555191270954554126953365027280702307741505507193137680685142122043760203162448869048093608848898777022791327601318870281867304951092755253757370745406423947108375589949087740855582816993479012162198907222382341499223706536509863157052308653589776069801228788401538127344065414919968485000819182207745250489434391321710370576684785658239757320622521153821713159905460213004883383671360185094523218930484990463711611458322289271435677507187948622221287597681912255293320563032914138424625396831246878831013128176016126663893507087142089184044821006259854536998634304546396400705440056698879894030428799969392318879688171480405502718381516612267988683328857280055664766508833848036000095154008513646345615640181036647323831917208775630466131270947437296571822433980914987812300353302871602325336823825496977698784263298476276471704151612108799630539200865917178507557152660227167453923266131375897334595155796011093857203142693027685208398915630830034531000639916950955093999789045490069933082146643656201816747703788595869984202731294785295909156112043522944724881876304785873812519021125263906840779628023370231688506842834585770726324073004928616794241249720281997362876922028233665627581684199170823335926823628153314221791433846568327748326708073721222729372029639732139181538348121115433753134925120993365657580220276941093136134218417961394277339310502663842409431526249690401554632276192350950386784975439016389609197506657090565450924953933147609875282289357067632905392192391935140723920468635005449137109683545209176439370278479349118001722357220887136305732944314957822075579925412867101219100788907374627655925966702041174754788892178429260571975639282666644599930767641503622250759049184429667780870670073272416778395804538252641373586506027359253138308855519582835043765883658851158415279714435696073140747775375935122475260150356193817647447401591854223454080761133710265946684499555175266967393854596863174379891314467407001507304428947155248209683946759243711845212327811413023456556233264289575606832073700278473327668073831123512091791429653218140802718134257452667912971982405817439626344975427016184760069071574414785135952291186596577756652696331680097902769446842197531460868668853011348798130098362185016411698397093621144781236272074746384913731958009481869004180518244204636079198309467501197633404546982744097185139326718148384742480410857643060666175173598158411406979427552734950684520968030698084457978182892601496984018849451939274469793596884776241744063188947011220720735309880642488790332804959636271256710184072114943455438596725374905471953146021625506544372276069155226717163678900067516494537714367033085793250407208277736103180044160587453331710676084286877701560834004007346677409312104728724339548605080053495431866891628283986288877970062869755460520503485553857434521937929874463744776768214701304058166299962577876866220106218025559248353872035667399953200042231592133970618610111975656142464579801410123445037200239922476140769304855772216761629584879773834498216271716711771021414211598953324599270356018465022565282101322618346718822056719976256254568037525762413839611891205454564199909706216702983767480301427149671629814887473026484857616275423242229566376429823008291434389798572712972343206725154860604945385151302117037239994635285583414011121936123500107314385190589641046509383926349944385215160044224902459178467329950761283253659175623136101752018824826758199681880928235659001577696705799800306250059830648676934994931715043463241194527180445423104124295882671931861882884263098807844707802276680464086467357091605250661702478063495781713704794324781032770970559766326882114879652300416248831275691251467152730340915189095356254810347882925605607126788328594847770804836449264997762537207514004907635233922082843321050195346633662276932124213773357659523860557158742764234472100952175623612704628571365123738629462424789351455521043064414908667458278112418519267688204502597854519134475185177641303846230136865097863188701154776833580920561214515708212613830852290686370081148256474285113900638842602111826805922413319500317196664980608547745763898503461923217155345990671446799320006211799337572718024054419172768336397812858882274574870532447993391295757097471568678557591158416662738661879765795651267652303048174905103193278137253900697121749509483715446402744756783555507090696424807767677304057210955504904714929997573212533341807196096049740352176540379320709894697460175904244633434537774996168361857278596243269971779415742032869936866333841942206233835469630485110187096119188760819038248669067818063437936465996363815543174234019451403424901649481725600376446722810993197175065458727350556744264885908786444938772792990502280442127127044425385982219393769081667682735618122294332898863121848409848912423329126309372668285755496965372969324088058704290206097350486340970057441423309202150367727746089041968684202786142806286158615400738511191370068454981166542901648187601098650543843903378046189280919795286238101643869161718430017414547601692915333908553795399098503622123453867987997374936162342305269813288666335026104578629008706507006555065813961054020707835220048720169977780383944370584519624544004550686419592318787881446940348288273172508663409615852294848314164414473275979644767343467069828016678893965946205536572922597924009325295582800307163362058032632601351978578417841079337990368103123778886939198964543648128653181634206097362182464612215957252986926951420716959954107097395205771679956167549924132870537292765751831404098666487443191969575071292199282795416704321260157376230662779746250369802071409083491170270146760895466157039680362673572810446561582393884613621335206256113687312975252834104278296968402896376510392692719421143993078470077527185777135198314324057371091540553870946610052835128667770587960096570691374007540634589175186251586604106788236109343811784464999947832009989458674624854994267647281807448797479015127844213856723553306228906694213660039730053523548755361609252100711887045863538421073157853782529335129601630329883467810285555445165748599738650024421229184202120273521142306719922425439169300332279785781182355541832345362036851220545338406310117370751638566381438372031909442612832291181111427518659581675572251465937718265321405244400438359355789101851110122706968273271526579614761295605835886485322048738288780310350503219811562193917231830887833905361272000501766697808032456708738869242096034129055048138267873797712759736274248709039263865908013261385874318267908947529794007087272811144326693145110713877079120210158820768640510669063843636692831145307602467047613930990821835853407491561394757865662674947533810603206128420051231587189171738418138977339522365488588034062041990195071503643462006294550876738105294228692416555465980013952355286045646287472904617201250714595268172408269477223233011126794392191575501479710494595093347242484581901395389618506872189140658519201589744643621368304536156206130520015362058593510105718162960208855683980607783544303875683642287826757160014034470227348264250991745561812719646241981917136084573605663581397166592150128504997672310457804073023695964990133781078772375037022175965278106001656944525529211988007949317918031095933299930100569499136274064010411903497136715699082574043932461575333279645535371290351252476345556552435117270907205014635637479036081294803357996924008747631254980943250646065009779224849957043821472754609295047069319280983030743629009849887415841787577504850123564264871073773239622456333113930725587173562436001833470305555615301778546682178602942412414291740190672538770423103172228271258500135424760101963711074748737063355246445172338863526297243460240928064316181942037234975668824430299881969659964843706821327106931124743198013199341281870487533686328808723340023191480094871803091817204523354470656657190286826644228010864317090493334490022852470689043303835124327296229997441398247968673154059302748196979878255990415565937543232465803648233465605552973647458611509594487961981675836728471327311261321511581825840957106812721967680890725661234015149548873997756683737362898054605024616320434937775991418620246148568372891495181038463076116453733355297355596092277100734760321460767352984778873213238582696037066892349133284516789239820300173137935608636980836351823955063825052110228316972160306382888743257528685631847921518779843238233524691711331375025252075609344482512716708685055112553722709547740318560701260981052666124023959151284671769659698052592574010338304616191838975441205032204116005431082973112670473080164479498324493924542947573074806455826617764491413221355542329399794917415854486406813192309814827283757278780547012754338961998043629542347536892098160610116183416556656895384302794291789347731270654178524895980534107065147330606131162188466601908818632649978820121162373298523318543744673709665566142095623253026161284752107158566471095823028441903770632863424773062392136385137990766595608951476204408284563298713675796268627900646255668261211310085412874682838933800536676660717200981798353257311687315446526749455767367240403526522519494227709753335443254725756883783383441733289313153005593668101773989786100047498103587830442014682539147867714380486292403426825855858397238632194229316183514573780523365007189095676510197053325165114532517205707308954648579434693127898964086391298399946622392468383714421277217888778477605141094439339607552663599080369001447384863983318717686082747295037067791191089446472054234875746290459519862880514152673204188029178066679318241978001208999361420534332390194442552100996810823421312039469954803675327015208833148221211956831313238387451672651182609026862729232327672565005254365319550038890007063834719171080578129099542108995155316772714280091054309073264395196381615673655130845137036023166610342850044969059040407903578435404522211684692163600273938972721692751995019805615886254782941874237837961944383740274008483440530885894216120291584505580252318623668599796668330183068033507485266747783791637977380177917983977967954989857012188919529269643825952408443769277148848490518820963701829928103819927342594025839066870573154424036377362631853904633060896304608601523367145653875118788576650588120812066948901166406673724781536460410603771483329750864689443361510994692424250943370547747378610027453738584581593971046558714675739826880813255003682844299650345059681116667549020915571242625655112768661334443509977573973592483038426536364956900956550971640929996435872605502554596457463682540827518883028113336708476035077432716107943911624686609896199806114843483640358893126865636927865641840154190886308229130290149915752436959812912818331697860873776952982559457167391816831332246599658224361459469238005084610430374752299120885881505604335546155966861685307229751984137845079765012111603312536568701434307380455092956906528711710549652176056753701058826953229737004830090110571144444076932908193760348522026952554544497591873498479755943134252444131539849455453987471031288108719206595187174927665579385132297678781366034468253008190588446564023410612134077488199012162177773268695569849322419781804360680446767807375210048327198235732508427385201085268201653319810322466157396494659950612251204576471727885886275952138242598172102247373936894481491564822711809270006007959544069506433006256557653177357859435118683261670829506327433297492210946361289226275172506356499613223244701004998609202220331980808015099073986973031941926933290921912213637700833147266728085151694301305897804459913162934304738821528071855580504538010479760242779010623167599235152191182262605770593625513103017815178990791704375277988877376957406269858221284480498761833195224451667726656350037226372333191411391782879312667094287685893178009188327807245449599899090042003758767635487485691935247705090940431646597171956107551195322702297886073138659065748718033624423050146698673467823013401943800904738780735976729385761473615937250693786545681889018294869014455694889025752129459930510104659211843400133948051633164898392370724403767657400519953400860368645027156469285010970908255388624012805335298566291550608103362930194408198006998304159103730450576038999036118180528712046389461797073950775527116394912112727966598631110278528141501915496748630452364454412117093625645301589730311588890921465245066212817236131049731121691506850727232951858991685125613334018362526017589388335846012202123723271935530592265567604794683145403916840254842976057810404108426917249173195445498300695470446394920264599426163556898425508826644293840800616071636739635956339777750595359285504856385838572398942772748490454142677401491783561674195427333886496176379138952008943889920679454792937395119305423855363005895811392907484402550685778149075915307166668469285615707347465016251072222584566418603886973784356793124014953884790916531876436524312930187708882324401382542966773213058628179060147457089521580668721033341368026122642606724627161850817213858705622392608244900039108891107695429872882064774377997869932511013650456548440413213386642882416270237917732850333248393013972159003440903746033633431990003305486399114796457552220765566791023703593910185561595342939260834130078646845545886892025134254426860510830270588016128439315723343111765756138189660851545235275354432345190657151605405419498215185748543278073105326845821398584928439398649489888913052889168281076235519489043050654832812101060154035535420785542295856509320228171260464406359835939441393588729253626835328258043028064067838040973818454888046402840148893063750844538614620969256674105511588462830302386664446294267452395110245264880138181672951434083872785982360525608362292368464271674566345879633488994943511003920247995821840526478912959571973703145328996373393510067482060171042517170148788012400814742107180039612943961607431113438163550275317156509829694675973586557360491663591982561989619677234112672697075160572859781408991788798681299177666044426793002162035943192227472491647591476481684909582931451258092681097958297310871156282334707807338986875658863284921824237704075704177397594874284886549510701912085415401238332545518796336820598909316311975770516472480821657224802223161980857661227861151104432395718353881388650408919612737808813313865010347153009405682612275939361513928114621132760825824363136169508331816855270888527892713431965671665127596422579908773727840101390961556004823027151808617822016099783506019829665907875459743400772117781174869924140653519164467110077350291033837323159041223036208361051318193730738296677881824961975695211753633633201971998903436467455920356869426658344495749910582131452232744972639332092246555932565688514129356664748784765951945404693307906837630279357814564682852900462633228696518640296895705244900967145257394759987858323187004286648446171964785528687421579255002348537532727064257656172336783727984978489947512262662001356891631292427018036616129780246042597070954119221825545047473100671749688557640516036069095507408062745552346873432131436914353929868868696809386210296444914632661026189708885544529323739104270302485864173560735701976527438571227660263585630359929947634508077511558485804026842875173298734636856003860726070547852835006255643407032937674485638017792483261999824757404467435935215610743939695063991480771162374334320115313637816586701527802949932756494486899713890149261523063841892894279641605847127703760972588661463749460205961445363577133317783163697448459526830678775799074885970164708566698362192196302516042978624839408455115116475992673074417890516029141360573312405669654413194039501224787735144684353078062346374621485833088751848172302616539532991357375600356886305351792149426302417924499679729886422808205668155369146371624722615319845099829089716217441695281371189620398941497196923000523928357232847505882619589623440232525444875734642440543409976236887892451023556149500529408969964742574426641016665801412367508075273323471645775883763814733559457913865437439148553790668486045020669896284222725714982856777482333285830205613536115871200653344098485418611642621036994414269299911566376474091616124061466686961979446833881902024527957488664277696799088384451004792808006567000391221713365495146165015563175988396196312856196029051571889820713180954907037046802624949446876696681445428729865140518374321651980928136398331232265140502951724844967368014862534570123848936013392726300512052931339989467774779569761082217383492713624237962239504668506635109751585165422475669295422580200792883464703657584355401821574417176708216048921700288987700015863361916693161855750293954465519708511543902196431253746020377575949481552805526451563683908617093913773182071312629798676177929277378457810193038439361728464532320886893934147876413939446297581944785960861881954674011713209526331881199015464599511699833728171751359034182432474438926573402649932746804135350182326813690013257451470994719553903552128087695366689587839756087088403620813054722546751089550975005834785580874743732720752986564385857244024822650987889891001103513209261475303432538984830400785846753234911276799405090202337716138482987958032136462901934514673530291126287107078954030688523019908905901103453920380910223712692835376879170330921370632626482733532058013099317370269825642649735919812936061214606182078723358534046296369061335487543016483465732139463947263347966301290179625098027267410449227249035660586034889326123224008235975432837126919165925809213892359700030397196909379096701627459199773677457475227309191750932757409479015076783538744030736172556079060364002318451069600709869808511256676355756916450754228976452252134510265003445071048339969105495099150125536616999447367334829689281074008734271349342152868380920108490817630908048727936371876305570071591479608804233681028215629393895080031118206385541575615336922391403894098899998602485947627371775589912392691251900570177168175678701534896597545774666380112783962233976885893216856611424606512419504263578158765182672892832348103405172834667374930340996539424223291765417803463373343775424525274704054550178922707237310613873415923213471237246867347783434843730884467813622265483003915902731216487607837843388312648331042826728611382230952369511951899359346702470902636950568714605054194931637884978983465164733447829571167559548409884940669693630095968133968510207475287371484708787291452627761180028367448299165088755242167121018256552389312698986146346096213517741170941450619684834222166778541176027081791179036429316113495178332549777268683886640560814856114148642736269061839619552563154580120509997242384382614769046148527369706411226188939002800675861698886763477687512675718608414541964295818901319810513611157978948704647120197820330345928932863087620888658687724388302067843641814542952207330736520304517777787591387443096187435893550732583945055503981933984898934224307823454368077494709549177679547431321282815194973832177997534362640031334505827552879059011317575654302000915787716091332710729094195648296806342446585926394128908464952626162835211903860771502895999222150491135518119238884458650571729490884715617628624687494700141211986269271752412462728679119251998513257667482259135419384401282255689710421378074509783421559400425992282510846931477792693920621535947910219153046865473075329990382654676249536362522725774052251556611590834870611129871691288215696739561057410782707221189604871144306923446496962311118202363371120627770654868775620693296445027026186739792774491238879816425121478813693094338859752163003308229973935961993345976405200532948275925311209738679462606149195183708545182675106364872446183143106919084090189380796985393881835335874726261846296382522624912093275137766159271645037222350874849111158168815337733437479752978360472479411379053939898472990165963192304608643758014547761004990478113351624002208455808674569965485367557426788716368250606492585965035135403857318628639848704826391947422029693827043335247047713822892495706517630548236914314840488201746071991052996378273776377576432611730636627226900799063358959710344044056165019191487716041613860499104474005955808919954215339645635505222680042452516399403527853604830089384308276586113188147988028979813927179342911331207162009019622948040585025144178796015055667284415537912509147222695375986938172928888445453296855165921469263505696890002208358134919896875110178740364774691127528806274176689957544132011144024918299148406599554097006521265287871698573762460582243645754723643444415841955208355253169480533819001868578428063334494827023727823632606527788076426293374760761132525562869834480718222779424485319571700453782606354410585809029025996021519101886344587973075080527827673471759931085349271719685237040685370635206572516649266510873600804749899018833013156472018336492921677342681412618795502171065002734647942541890876539948741886410001356140314502100599572759477786942644633810035362536693829271199434778736488748039640879214122440057354822661627970939088190087090364236475272732487645226812812444892010608487678023385527369784945464019527784526461986070487160011639172376357753860920823412630673624466935773678147341167988837539633576519284792483794900528928732738884521097881858537903966026885618771304014411781141625623414997776945533016345003465435007537961360982651702501002947927403330806037364613604854649116010691431683082985377864970526100795425179159356750692484641887483614290081055231452548430127285530081227494705980766701514065939381237097561558572812413911633125209042638187189778812734116054616214744537934651052111598091959717362335476535649153266862550803121339054811951908104905841607904239951771283241425365438063905960232339308039179223343539365473309056659488879356479750926281965527356282837456069349230335619125863000322800607779475734850981073056538029611383546496481685283468015446217934582582066994565348564660292688549846888405002052903376130165672336424573956397351556955291942455488187685077255209728205600312764434524230662877640495952056719824333405076105388074033394390875393169426079680518663207210077776179866988518899718532933433980703700450861159328149901801412407194141643872676376004139266185087545305990073252670118366457993271733670666916802133935966413672777877624260284347760847464914691305650333965280003479957698373670318181910014141115611799781665506015385811405244098651074283500709732651161137725845244773673962928091407412993335717440077508001546387170512438390307510541092810524699394941751064018762299455769893365650068980873451247754366436956886895951165135892559365415732290527211207512072191363246934275373020699206446913161137789171254824955302879935631059540164876167232264589865881496536751971166917661563513196980360745748418962338771057124331484568001687523436303981457995077975984558464610370389746187697750915893076009390209505901451315776837598297623201816310491207906176978107302754428177657075043381953742353925833341142371131397309785842324597132399225277359302584855948086519719005644082684520411433090804299997651942410625539766998995265832187104590146827442820071091435617543351696596274420465671149856792403310457566674017685725650240293022127674878950370384946879640585360027580106760984489810024173398889390265319389249809696076783606447618450900479261858888366142714212356428306107567959699317450560140530440159718841118171725088259776455277028548319207786300191828876053350308384732851033855619251978006883902853030352947216083116888296171712693070257220850598877922538639221998028513114387821138393632910690635916047627335891950202041399880375429310315132985203651694873750281276701495555858993377027105897159209375558194968090417096163130992478292277227524346612629125880822322987301550008300490151571382748589833342500774883891242599661949796536591437096519710841460083123125591913105640106385191001440105257198995487013419167494468647834684021976245695433615928282784547981814110073359503203325102792420696106762514238972612538835683273833991539612442486061102852458467396543631566808704448414559426543261109645435810498181012796779272331101418366720660893772596489692743895696143850628674975477726789167068145258938131768088519999337770939848981435936885706973556811315350133044712416254103121006505685214374300951406901216350496615342609220648103869729982057072850577635729631451550670646354845662256666698081091751591409262746537447758342175870901142369907846845309920546178728637560847243101877899285829927064234983597438334044680374583862745198120367697530853494064398681234761695092239004327587436234833069592321788284057467668239582180479137969830226857728109651822230372136610839857037577212581252568401249254300597648854163452091313283761278918329983737857561719213598644286282741116365827993488821800303430235933200916656399277228148935324793336429514355986514654840699571357827663265878736964485099371189469047603014345145941157639174723590703932526890264251230329607009820640684583315219553025370002151029291069687536847690144633606465682793406624971894961332403524424739887820792808768340132340888905878491464725861619961369797994860831280811270997077476291664694531992580259507456700005656816898161385753603796737279575575249550189269220982368523607358212682048539832441790323953140114961647263388228560985182073773298065215645141275316420632279789879834516323373744436187011495491952841165396135885731325820397628904820227510923756616364397453929814020813697501097768608213238871740751912546568624415590915251546129398697814797884958975292548806396961941870560610360376504232568927062853995633709068229789903819531024897438680037141344163068773583822758950327601968851492707609702877089753703691710909793043080175316696146362732197794684203322470753409728350033028910340602454614040282649126417965435544551333019913814032934847237380398847918298698043579843919423219057327607094007638501515755905240241217654910632043378812396876947319015990939588584376720482364055446104345896971254249113856433466981077592287981874124692997013617773583471681595932744708581635478157361973612627744020522052534924572575512742668626416792578949013520461068291971917942522038566308138542382096437081410868049769299229879919292751393060081058542242298112322879030407190888067369205358277753205943224411900986970620144620884166904519360767957952392641189671501183776757411183926768612789796845718123121647797642238405133564273872365187663232903272389631960655523553020509010691295184073282963078879078640326731313382049476097501941331277411954369648004504052200733569160306736909069480119339716075505236526219826959794934419679651115120374519936523285433089344367823757505922419227916756066010508595396841919027114988055284546991838267905040634763330770522890550296710642923732794911538036326279215559394644009004436454553395504123900806965057352235721510096749197900165824802628049316222352009221013964085635805475461868479886355145342530631745905408737422429683001427416291242588943313697331910088404478628136897985004355551933857167636823103967717266502245508160504828609333140510426989260599982076472883846621995083296195798473659221126248387992245838388854200153634016345947201142755626109966096430722038345021852175193350809936444458383348348473460122551590586787889352401325354676144911664861798792791648998415814348612997009506306359589619494557803567545465417022290012356013754000396576727595646639278440569170235744404095362547240149042265341480405784688838959871109089309526608423746270342568707101315087521268067750090795903278271228796506088547610259876576364578279990314592911132530737566931468791233577438126990013105394527658443718825138942137684008619718802265260343919788969081098069197061182346213583899575449611281776178627865597757376365962518176653739096077497751740920194974718395422536318660083140827328134670394310784504549754563499858674095638300919805552939785552266202413794493531300724229323065291231941915866896937854057185765916073656689667512617434552491984399000932250354343958656669851625222024765866382493166326851106440721388272490769513998608860317473696377515416659351262249839519970982192490848514016440826133208806740147961529331766703692238138814909477655047505398380761172760677923224809129282259136163983648453025814459602054987047565613992476801546291290304346149259386621519157164693098693747029419832738194182133763097741489519039752069991558882224649177302467037562680929001739190970809467989898207065795937137691161297794809076537516259906498328777433582863010799336900226765761050046915981645417920950224485686203043280678297953149007284467538973072268141411291563646530247603982648571528350171383462784024524067137633046973389578796069116991518412663692087312656335851565230768348891759813949861531814939948248485123625114634394862695410224151866330316946435961526282829940763826947084315576753099343845206867690817663405010855624694051989304780294878815455945675088992603268520112865048106861351471907822560390129186411327404956528443390878154878090036263521889589748995416315796925957956759456678334738417886602889483264327905521234047066744761645593223491658983305272168178659137540459221487462300140997291878104285108124179910482705023085691418807107796347511204035958644739796921921362796862895466352886173435462619646801755113733650457062898074418673305031604636862541589033694762927487808761084690448360595949962796435268627964458300045365202394032206451341414965572018732128115141206884476939020625100982292257275152126924801433004209990439026510435301245370241904821384633917701978280191013844678553367231530171725269409057601349293622136862706593766276509702360823426954966797116443513864329512148257795177226624144768095738550873613961950849945059191543707167503736303534998993894557802669307170611003620419062826089350179289901994449965084822105976528692406634872006330232388883793343697879620668506429260709368562682096142726113030980354939618182343458306792926366586525255612415465502359979549942275581269842129533236074361510802778925491036237559122325995036911372580804097491706277351873627079479904899808632640537013101427840840234015207625580307701651734431602010075010340318133869910226077948015495413348739008085321298535323923558748846148952872447987278778632857011914646169696466711886445976154805688669957518815300530248799612727565152651035597156968916448790235131555226719549246542873533264962851672461107472446822752286924041632853942742662192244133064517398862864259486461273051223411399112961595813970903949389589721113682922093967601976498381948311126712413621364852697381222683326110224968905996323895910831903913445275167985524339572191187130582207988608662371326439307552066091254229414676611022067975197351057124490990338519672669001621170255954971469629087399561557066259422758726380451147301351058603492639301969781366984826553743658405748016276184764283942136910599236593640174191001906796832309375517470952550171102706420204968858828913277782667463103780351571191643861689962032929102947519597506079426592218091588845899376320074667545510532609926641342942839943361302537575978102389640511431981988817611865824559018393290197866519354719947911734769482026116965694305298184610293695001937688173094860376037214396020845294927336516552700765462229287047033318543595879750849719447413833181138439779684172200052269775730127589988748469906766832422979557565519511334372975004656828456586210670988590601441685303614279355098150102597225387633197481178570035797250664526957952428256851691780465688288378352849985551176604529385771210132668074056147316061242388653280279404450359381122906566825214389458304094278259625591011830524195211518734472957047243092952379894991173566788246812223538058602321593087959566311566119245824258410862943853588366661679262307552569012988491138819140794515343606863687622943205654559569634653607319527883530791443025758870272709867712294571959792811017982923107533501209863453294231452359085220831631421701650784461927112938765496752851030030993727646995515580461781532728052438749416112550028899539082368694954939579906728329196392202863151642157120924591728253665415820113755112581991620928040353436753634808550444005436232342065482086922305219551559088346718901620789478949709885095138850565099523710208786970972334741669051766135477594829195348131815045626775826346784812900244891287039589352858296068286671153761598865024269086462427447500290583140513647999184831879097903764272742875100339972612460861274025812967032226798937366014183556706484209857477896833975760176772888092951823900358438880887951899440543617368524884393464609448944401997990261309393400897576523031542059418665043483837388458371284850961242245424707875202539444480327946823174841425795525217015300806219852717895462988129917880280807206013835602803252453693204737244766751540164032887593758058714602664752495179668234423784576880233873788404276462809723409646279745593569478238883605161888374991464274734145885977506995291652193399631293655699775503600574044014706185668372599557806889820597497989052465008174572922715991938186552975617572712651108658371946707368406276055410700411336363008658577022442791931263692474311002746917318252030081517896272725193650822226384716890746622041275634757233255236813155543325179854418694907346271665035904175671807849920867344956571606453249510105580300364674106502472035039518862828452193829082163844799071701344743033294451163838255594457297170812376682806514160147403406384592990259043776601994256798264581527741768430714948850767175326867612064353526704175380880390041559691228819211492441610935513693944848293964772539767735625350754835615377299221678272672114281508710455823683919502876494987026936686366608811186179548174017026948037752047011731869673926657613849594280810841680084545489822133430021972694808888702822881049579287048040135691694821653997530390164451830618722145224013955503436246543515654706550908286553314391672268944705070623711062638695144295149077200611250849104572503398176148931897025333340144813135277409916999011848064021147483842697205327955344406257873666324473415877553555389873841282097193420370765439708489036386086877302794153068351223516411214012651640810387385979273912806211875701838062836857439797429155707550315592367538161815015012054846091389857194025205385626314753953946625240885180925988376811664123871842243657305143605883433821437985714600797407871369320041801876923018882821568539642163635079033860769751350847832875863270550166634536694117420137415279485194286854346847547449120812672910618389387172146644875301149919404095019410130334882986349948026889467531834558693203672528008246789458520618109199536955624295907114685728634788661042157232490941035638771904538506363723724270549800994817417617585812457625390085616400533253922140765126972452875385463192527546449186512536390965884179691536255165687563416935930728136890605244204592162302435983481567280052804954379749293654368776121471840046833827734322627678567732958094098384633344182708879809608577833803491343696368018903420618601331080205577064788719536439673584467381885186000280513717284420571174368870003647102108112282625061414274196826347290775212054690889193096486050694154599342814210407699516770429852589101871718135520059571641349499140810549682996666770234913673826238053894475629997104993955471875079359589454942057531733636119461190073599434896659625973689699833419594650680390077988619736955636559347394561156919022664238904556986213203825353643115734338938340656291519591235725893944563360351396025583079831648539100600620981342202718489353329476365462525691455794232683411908081929980373847979566008231239790913019329735386320830410699106047610837037975351749093167161068894083586497441203394467589030936405009085065550667694332198197429668689084113638914703715239738078962699043917775189650725604424502470964157270602638382730637834134927764263163927949539722674352156939399174608040913518844228211684700310563905072361153865384166383309653324880980789655263576204992230385277489742123584965858571751497408605900835868885500549526562945411730627707675798111217531067189133774371336675098147745986809772245930303622499514890033372404912652915952294418495273874460760286564484068367192542995254057795748270474370880803714934513789586997228100923478926184578884373891642921918634826422285494286515687057116856864253889409398811311413913469862741189852006604183109043366135958287209676260294338325744845110320285907534683201909592722909424621646752154743633973846416817214841987809037840200623543507239177804736724611518358179362001528762467998499437171815554887569188278313656478029483491797262484165858432394614459135301160609641701212065075447331154218556107952878118021713859320840563112993313740959537621150582922966329227719515047489866835423294795399198212501583182595377419675114097705052019693633171828659198648096771681532161325664720079402919414551892678648604179812991082318786766151515428635512141467283677941186794440130000936265752897709816106866825788307861985175839131621939033540453220263426710435373775032909551633616256748558797464410051695164883669073752455845720303358511876997107720512810838885598360017774744532942393988648508005093456781709548409825454895753069719227990915098767912001459922822973981883152536471876352138699717520853286447315767671000352291160094713332140620572376920808497276774610371506106980353805855890229689815090282722036579311575630621832350240093191342400709424704834541016419629881018612480476060070151701210113787782452689122019001722211086378873260807283891351582532370947140357912053923332626252354955431603821193043426602363055685640352122284894721501833307054860594480262887508159909344140325368847309707543690321852692838182100249447918648521943411279568797710644279695421523690158912425150154568224882806303774002226228062971910432984366990297578013751392575394330584853139435408477742207464468744497756913170777523888455492080235639416565978782560921117861462545636777273045040837677802708587994994430008513781717501160040849977190977808253970920750119495392187793381478437948453211501550737529683239877093409468324444200535839233760182455926260905624135361613709478557036873052641273576056715103874514206322273595188235797351768928202362371044239747814813796903057497273211038702750946949486396146595150938271986669296123938007944557222546613784173511366572860748078810131075870532752438900094540034515578939145191057071653474235177504713467851397959401546834087378457443130512840111929213010708960125297209314912530528646124981196479853892715842600580604267453404325077980824495957288603846056131647777461994267823523901354614161093741352943409311866282173039866256881706631113221661289584040547098761714037995280158370056343546107050139406498806565013323450313128033608513255965597175487547302340589813762552470292614015059926828207755364447342300810685047274917365988067250097019727270074131381528742710691351641953475340256307202449319928108952710538365805668266255034626360850440666045871153397965823004238640319587507453437845268634295292533572455469623510335846664039814147203690896015573322523414408972655340480939410737379562067419339834883084855740889002508389188615816117685265399259403147670212562936099155687546614658712058744761080069798655674187246986981953283301041626019569270821628506577296233207002426338008787509729021155943467485185653356027968570514352089716610175064295630160963991719852529509576244126370841908093961140109000546665774240545762762147982620457968123495177075728245219521386083992304214130008096699006485221333370820246461212999794476062595885821612882996836117378131992721811023404037842144739925454065455979236762009236942987313952888275591901199449543441504116147088957979670186789876497413176627177313321272198101364672011218188855764820140135588142846578069996689991176035014329335694109934582224093585956159650261422616441950525067826110839761502533067806746774580909998507966936640098026038103859119706523223967445125368863949345966208009572130667866322929591115992505014388911980430796920284278596591625281462993626972040318206563038092028561860200716884997292472695729940702184319813254583712069841995828419683276202136301147384655103298784233522402472805901019034296149301719648613029192658224481879558028760794077802611433400534520499172129785857217166714443590535201155571076403858252022147025199732055747759251972984277398298436982089637855099366383742312610646454603135356161341498381335714933632652438142032091102181536500129299257956811596234701874749651989206878377708763567437944087439552672580145597132925530104652660338819417436754678645636426508972779350117050333960723172491794201957602324939028315214827006750468937385379208618495131982737565908236896048403620983760304624553562126345557988723505246933816380006293086900450296434339095656684498593277596319465754592943044698242970546360538823194042832060780165734524943428236917939018160975569413161330304274030884275954012806496347498154406390317055982220692876681958365468289399538680572467682822752133471967028015253692539862246122758538175231303425277011363992351880519743343454040354704973282323720597788708222656443815284211072330995566305127456056637242364790391243417592864820518356464632152747671689219377315194275401162607882861479783924053545561804719212185697146060629943241084141797054572362131137490470787070985210742514368331153574115447888534213643515487333549064741744617931635240867964156159275095684130447621818717831979376736846977723939193429684455902336542944081792668986204688678497642158840205263560868939156281163169591291837546838691982726143222478843796248999185526842764570485133340356431091323519319236357221684243869327098415722413994400701977898415697186293878936598771348727663853918471297446555290961489812581431558779893070849392307730492677555074017020875986758708611882248013620220699109675700425063834414638484561389340750076260748282936087938141205070572533700994071302850618870842654369966236524145812074933919481404320494862153705672462643863056933721676779250044271853027220955825157483162148237934298911725870669920121076086526768372181385461912097316042526138013680003545011544083200047497618319510023476837821043876775175987130400631757796181415212224691906323010025759196686457395759141181282062019194609193980108652051580078992814597182444517389636627003331491543114412057566875443908143506846203077955815582324716690812011365357316640989161171294545754701118717864411833394016157233531706466816822340543372325812028245794781188166424960010655005317621894817049551197887523639832552999479909895566177845302343598530305656332112770095743750491313066806641398799651581388070114350977592279955396106985966985679554950878953195122077906816553807462744350241987716168224683457051890760088362584965902232208479881129996857071468349371366957057295800049504455596745181977957932173253054264629450797069981473897609295199347783960481444980145610479111044478711789411317661058286492665904268626454341380375844460263383164405329577716520128259357237813128642666454498892784521084391523302605407582572761635075613171702191416316384970936942231351738259496519758306898793018208935970910987126348828409309129005234657167387327411153925441478110300725443413709084347576267574761006584910230821780341023325209885003960392330194392066092421268356808402422954512640873847910592336595676231478659807231288682158218628043269576655931864087205186232719176110758565534187488455272132019797500657725474486446061483000999004958851432884969682869758686355882794894707448367358246590666069708318306100053790415536038904390472484916768014489628934513395970174558868100613290763016691014962163594870235499300789853051665863824613521149843035752170171285450755443498201965516901925336960927194868235070337823064707493447989331876502077550414659255842250364965449723974776982860331090799432705755571937838552733328585324021012450944226622835057936668769210092802023887069342700002175163522794769836719832489176974152484352185696466463376358740955919344147514438359159049650460942586589234053662184972222348841185996167389371031598483680981874710123227498649495225800233571172293339368540860029678861419014651250062519015659143634797531857999755180124464958894387341560874977549091737073052563227973877571944973333329820183441778598228443037383377562384348318726005341653681291386380379527790765038584929039121500258514893463510208548089301660516284616208668792057395386856115781073854466708035640270910711838658244727737897488749969146760284974691279949487491139223311382005673549682564299493758683458590567911657041388348955155417586559006680755045254061574802957080296223123544530072562380751005657714209866926838309432180588020985766336870620571204811503750070825381400712812760212383224797094122938878344293294139576211085509230319262906076653025097165577046730130791513519227870239683044584081746912159562411817044715544989241473502900800017264845989026545361823038026131457846410523771135179661842725848641866741666177572815547228418447819031617562277776103660069607866190315510785724670664868371468328155079746085359631265507589026990004102877680559523952056967335464016067939536208046009032278562913614052019123021051444074668324056269092501476466906156967835701189691132482473884427087198253215190048082273230118438258981818914894474150403769192751115034337004495908788132968176551328368218315821820339151267579568493980663605104203827597989654679490835224644292396299893050641530117276461870631575808178197260600593005149036764664831850544972281611972344266855358209783336926735082292105309518621579653642535961030131306539814222485037385519149239316412954677528182522634777399553146446694802224607414946788913014702760480369740645052716373997649752221849460115047659083621753794180315072901152089392537654671466891317803767685502579938249384153403291792903233719613583456034503389679224498164964241059739673185313889625042238681357860628512523574654109726711282927661279818964106727795135142751058538121014580418034621315321968898328922768664189459953303792651989002042754081443647981516848594911682734953317831595764301319275628671314110743524976533533463382356758352941620641074209291440702762404599640385011984444891829371996650083583011846599918885393991627428289673969063609467959935573226847985223896820964268926365376762485700122687926258399942552013283891434927764180021098544453432479863651727836116061448441750339231613759963580153625708936666385620828392858738735744703116106017461260645105789337561645951598164697969300990821082432419266890897272171396732270965735240628599814423627605255457795247392957238594111863765457863154411129072134394941371976454576612999608755372974606510325826079511325412972222817075736182479229055711016351716962421496802336340827250779359035774793829833368918681050001209373582806407611338420875575087542095489799864639467839091885982331045401248630633516586801870527564730799955089081658324578619083314300467004969032737319951086757123346624604247035279732990214439992602707483478596336158099468330674683898188603436934015477995396042790044347000175508626894916209147060257294627265439573944464341853484177891457229414593776746074559976460327666457215219746996087570345766113112753907923735039162126140755430644855914520211825701752537553385496130711345742471456055827807218365672938446013345185825133734349574849761527494227642975406788360299343254691385559577210231626634997318024086401837537018859710446797549293939947562419359807462758666647019838502202856162540873308482082403412855066553983437892760623205230105939475244015528540711883994285165909927766804582788871007944247794813259620977686368551982144270792960028707655038568765860166658490093790744938535847609206983221174513373040556419229199814607270746147430190464033352815129483143566479831787196259912875077271934436491111438373871949555822245668495977858008850009598873679837919049964136558911952895487072249815402813661453185917087232763699850052281179758686010153862778995173692167851502983638924463518771308513254758142527531891773411947675332838094418036311115082067571266156534009314617491020247996303496759556039717605236096616448247719134851818063351065864626156337307631877644386862103443756578065793873410448493275188238496600247490901055906467935143522242314009174782144180072420519259083863459847886316210325318318963112204354510357957011657948638719693519950050216514870981442186269409644821114577269347475521784777381624634672043103154173025852636055731718574059228552178394630970116542886095187896582431213596239468041921554314498821880246253093751010879048676940674065402169701954656252796077071478088568411846346298856062912671734958616901320107485131360058049390680969074824617230880517467014044264407666925769700959779028356979889813651267680595300137107358881656091487202517515985551059370733242514442548737255563532497947198749412879031412108424963972848903236873951892441124183084671128715029344028006917392404547651669568569519483238860355391351886931952222750699266017382071423832753511560658717581567881292985266637202638605475374917241421330783001849430310059725513144945561706473389791329729272476887732431797252834193813691671285243803909673899666345239100585336925007258444621349578557790775129037205386459852766054748162778992648090933767959637986830229249455040902118432910812566634916153902103304917142537780777103912445073976351412859026104358016484296842668101050424101250785548388221456120519196223476642734685639250169773439159505145567950997479310414305233228087513432467069934002591183482560173800692337812415078173832307557012684632362512794674213015769564558891465679632544269379671220948800607131110721468297961775486573849914433059544688684821279659701820240782086690322717307156452261635841123703067582136694461615290224582938588020476730013679618626586776335675340484770722158483087519040258840985145450476741104811747258815181619810654237388288915433215810344595195014226094290488987813057154597966207904321746235867120908404994982024863763353698628135505317124876987251836879571521980468418838204955061779432917204348867639029400091807530687057554735978305501898750704201954769885213070375228729780267510686061299141695397042856820867555554958554986597554662291881653958926998030877691702805253800795290716032991270464324818580053822511532172164183041685818075127907595565069538570709703567233590592270172987060923084574605380297516396523331858495719507444010601756198778260495617747334719602471512526228113376697591701367288754064116885871393397234861666147479642194458727642644028819081365528034400462876634937708423005131834772946207891033620048965783530335759268075938115173278118319061550389289447348352784452057268954872736763955781691086945463561806095785571357589849439492259123689578398734150502328827570391158377223797526442593735333308374487029534624041013257003584681922388459293688849670090885415529530547226850325123116575013466405023600238480954353599195055308996449841589562752409271508854958881766230948276178265304989090318594212050041418831188692962882235763072452781211600735673848476790579719681419431223979808947506955507516635439746715537937666091656517364819688638411780547614424236654627251522870920137186227175114455970374061073776553813471978720365564864524137192703735750263750849259944908468826327555117347463059764585111643998347954740652734783744579252939414608403643265689567275032446002932641582015294117177164618806271284143127567318750467629651675291486171976016964319219663972327554948400770776739607555662697689189520123867494584771559518392963813969906587740153237324318179400608780189413947572170979436166887853166723746692817719607404826391077026517669760369909834931599247302379181043550802377275295727159544271394868846386824638048876742071240987490998072310661487258663449385793695511156887722097043292954792880895056128291369132005319814742776314067150497798189203104735899429458403316138474517181397487225156994668493515592475259852419229109151695196150281423772822510784130209668387030511994556649420959280310671123673679322773198053890945621165478357014154495953885137201942100530023215448513726345284679203595200633014597852771739639682536538938556218373200532791211899897052469921833079981613636581432065267485464659282271244183738667009241643705522496703852037361075291510339594418379805593171756647194761770646309329953162133727713284787891318584151442756117514664305026674567589219149054290089867846821195096533106393835572452312154844351785081175993052422229457608338231181862833330069381903259555588808845319849540821278036968555129764026272479329426408759263163281559025823369727869457927132104419528057605834348732374985555673620015059416430188846486088736669832772731783637649724452082028034737075667022760176446896290392474008587756483061672772325997697744276306236315379856391720351628767429559554161505001426969215737651053507400451082003512465964956116416112097746072315445864980116219374665343527179902041761860335329250174366998395585615786534447582484587622305182142311877083763747921934797753610831534087062112026364448596705392562923843363573045605005712502566955723272075414102826367080660060490525014892596431947546403795963325735545239557238721300248003118626982775604825415783379258533083231868402305205320086519813563293390985148793801996989622465578040667904592241446216295476363883456190375796267794566439542412930967371882620302370612627923239865348915522007249132097551811614581119190464077850652685008825358878753373168493002874814493101089476482524713231300583032988170216703160791498976218392044445757114835564295176516354039212848364033026124336219670121027116788621785607129512516659632984265618519954323676593892526328907567808322631465190156650621771366664518715132335968691664153845957095797029972440355071317306777414870108836977485833619755195934640748306453665588162116309287234071166677921503101521375451430054486956076029322783665214865065292725188910081362461043546622751222559758409666592413703278648730945559828105359048895694729550071649914758086215478928998076445676143573188590709048101711795212700440907845537505595518892490746773846567459658534810867029686249567393886759118367711997914789011707675323661598454504440885795202012239629299860693083261207335149572226789352641351416676033841986917183201418459204834582301250584192530246075205333120949386934819236454889437195175359141193367100971066135313437169785515514206435541774188358070370757397158331479619815260159822294709405779826099510939133384907903871898836687061894006899272322785101716927048413100633936717954201130242617079828660796026311997479219392345135739622467138494022871886204676036139278025746060888053372813658615576019065573953568060906380685975804915720984401014027091807084858765825219803904327274351088891516178593662854290394497700115150319870291794420946722518415476502385153226382124181412995137903982693075538233184745874663617145654352460969355339034680101676455743350139570312006291741244909430272785450013717585713110744187612757368689495480810858064810271328422005355923323403800812126155825020825216161677580356930580741760913497382057368835994006902612840144328955415398282232218520514005362649229376716950948899129614645233018057641825681816393690888119114526835875098443855604606515346303198362813828469827737121179122424730329830917523943773227262615551078780040597643261704014402709124545025600090962748868496286736677667064358145204981351224594004248994717902614983929503752847260410259314759278887215490984654706048008813616778010077155006931863032526325883852038415287154743177774875664421477361310165756072882734189111962870265421618695820396455281005717131214042936782488842256398887969065114443394528449357577991978770389211746714890362329959287769670925046635318144590026698749057331081052057994735183106431067252593963542531860517678313156933492834910963251164473009771142460461733801039293318110534070252395330453254632097268989547835545390302563673192610822591655547796345880424812374859726749378574495253062327977638650210147878787236583976816765715210487272185084626790126571803149126757385429886341715838445154310263788859985243588085746928093761592665916948963356639080481288857158217355383760853879307971306696351927827109105929275573922973312738028878295831931322356728158399037038637879470333946828265320772711852920241114400754978776729516169659806661283685214860566293838915982121521449579842227940320193530162181433046245964987639061453021995181306730283596104269105996301914553026139659263510224320034145570259470039673843008370775312496219532823264478726320330045553118036388017699501884791896851162486221016563940481339287377630468879927564521198856343849729598298586410121582191558735103478374855948132780268817704099732164315683296394652400225852980401485613985849089761899826458464942767702842260234266155805668960337723255371332633148091364495784026599594096759831028827383448632541940081020875909006950465333386217507456243844278477366173121578608225323123714313607402278743435198055163101149718183563846076619384791869256395712269464930919661809415293647750390536247087679439947860956658733701892479850383555995209468582239337168067897058328608082271478761698501297335012366980891957978724838078018055754843901923313075960697391409572054849114569348818519732048139418330277008094884128869450063650494862885818517444170203307193211992383568260041332432134510559248803012910510354985902159634686588778839214373775658638129350338585708500034791765396908462169178460827366842218931282855921624867172572354168043005726455356423305027133264065442911369524651842913792039939780121159455171949946453210485920177670418712065215606082681822692822634087171636002994396935379523838743288964746796667784848217222834013089490779195325047585788552563952955765621792483110617148218993452859511796619437613215912102795733353745651846192567236517534208995485840693621212907622489738878604706840682882115229886112005890662227699815728062544693859820170857716528293837496560230711201235626024043018112343750475660811703271052248816167881731232866362002990443974894138241053323259604591218711034730757102520534478955447457067862651302217220277257983116338220166698617127565973928569888331292157832962115393593250519797575539288060373436733296884579440082543049113761642185500254385383744996943656313312786032965750001407689324015746464375148150056951074034109708367413736679104571997851886211039715555729784941258133491091441719250538341027362478344653511784742638420489087239258494856056639670065903571339413162985173083156487908990256883946705543695318040151320104544757211077004069826099740017414233748602176318870876228109787885630970243723423440632074143873475466310646992936294639993947522993641744179618825340044608785118569206742058537878013855983405662932079688259545525642182949738275878058340877737465525114769532084198532869822399172842207268413115234352979650140394667573013212129343586157091564930004401788584182236198463070709240158724810213601198094900578941078024966011840980599413097214219324224090529817204911353690977565382225511724517332464200114395569053720002796893798130760192625813001895443126059529893528858697489893331858788500196048515304685343140433072199693250235004270840243113285111967322530550714360603062718434860624761741986459873461183873239428677021332935135209663056773290733791493367711278399741453208727510138288310288971042256623345560011959470922623182303190455827240561621563238810710242494543334158520663784937113071767609054562092164966775378972446730670550475254795979517348684493511533960466829361708586251966487724615555580698295568451323438815392749837747468602896758247164639415782529042563783823856151934574737283157963074041658841622155214491583590176826897295024003050457933589592167671601923776408593020378966249147361083232169010597821927810502592900379091097008163331668881367281443992263318412107701051436763532132968160310182261526426004937594749676251947365669925394565512530861960969937256506742960544348920314965143582778160029717554120899380675851870021158875873705856434232547580279463682598540268769730680899797061865566092283411259983029700437119717205545430997986801629386359007121757442008983044489832741640424442976255991094214262916793905066832418161958268943287747587651226381050951567733662150787928034746951431937031681221841524714412118776771607411464673047542994045540856919731356015655161117330242381280062345536186356659477119051797419764596012738506709711007594550560743996172029372480031710539533012095320696564199775542835316921442469757223032465744416646900687725092240518819992623999625724534977928771355026538477698196721116530302924882017647559702670825581218616251497657524129034080190003425646431589177411314234115357229788939593016510219144829168064620183076644754364909002121452854295944662326282759365968765408063293348313362740787987907368392980528233181459759965171833165158038420913188101863362735788098152607536313031362736785901374936112046612518420970207490231300989908209785359672143450990401027955749742664994458189807070371935913423134705054046395130004602611545370731235133341461829573424263999199007118443281650462683784642238351971281855137816584989595670187760588700891298760686467649176773480989922904101510088875387878601022401513852773274092367410862024182271168650441964931263024079523785294477528321423327118363252846271884372692241590971353663122121972472745698909764419699165125957764542965941386337491749139994044452224063843942969046663158002009750054307764341244225381663580640759148894114070437765233220858166781222840952611123114374041084931347609432249687068289758532966294706762916806414730774193380570807659056731394073743846608861688649087128029737757021561615055599803198760041047088525559699132510364511902198205249335870678751325381046328525856657392591917040198777993160951328241508564221751902067860460389917997463150137749343020326645532123256386941747377862429259461780946858356946877472166565361027067670027998464404233796521230377278864983726379662610985277744263599932771217942786932727880457567775567582744753731326774495808448260949093569153351806908029978335093006021345800602178522354936051178931541969757408724543407512401791137970116707765615707393129828713913065219222174743377756380340885935310995034618525648384247755059895282302173459610875695878212169644548127457404484730055690374383856851145052829959639896302967638455096432343859239815582004542923060036031146655487949796148742381980150397480194039241452470782762000180929846292575106904185456815899528821108557419017459495299735177988845180729612603803150177448630761062454780843737652270321912431117647951688626176164646536107857138411450864167679712344075764142574474262003696021534662676921764419953072076448143657004962309964120733793903759390108765015004823839221960972466497323312113349010278895134598393115680543019472843174339390576776037622114891172236506709403062385690233875064735466669854361221623124195742920874173573990863692181554567654448410270227464190631468706399491181900865038929325640585111393666113217131128277787288712895649329801315171820363566860412968023230845211798101824439357311959909009140141150834722545576055143512318266044536093446970833369434589095362200516237440141727223170030420905502352655840589279518075803209474470553526074716842279279317953483531908307241323831964184891950029774310743554653012840956144675464103057808765423751379936256965400502818234520778049010895718393242634128508074749458916129579678605252242802352949711111255064971434659241832663838000064620978515836302852344010789806038736647909970163906220944035925323768750862060680912147038752578540024484863320553695890961612799784182394365713043162444886347415265297717428737438235181210939647427639372966953995337420463936363245759355236388257965726619493687236680106496544183728329834538927088136507361928219351549461965206098557593181402980921167785981987823133983766726772456028666033626660997174653264758915972931897128125991303816111777329076292747539000137017623387459870318078388248611204436254336405654663833497336940248800045429741092461006900428551503839687607249096538886108961924619583496195174106277601019819143725489135078650245132272359592815099762903702505391036694878052050710018247065694545701644685754245967540552535364356346054659778788060670447199263829578839294859955989728664373761279622782966383642324413959704047230988018524486767404422633849006674092722831137155158175336498889644898832400583185875804404323405337275387966353816971665243359829180431075535750331420453599095006769637014607153211147607232972061880903715664128095713064856293897905743441762516918573633282386670735103159833604368870563056622799428641776919422053544152756716205180734520313448165566413290792128135476840206156317905673643337830391011852680762988498871734218991288965995955252888469903657610565454824223106515289994197858729052409303455388978235924554617798163262867548107009941037588183467283538756925966979414322188739391976277750541216608315393393366522007979601081325320147139357597399497217047487739017276169971005255968747358879037510916416427333886256157055265432497265940265782243932448044277433310528254429818615077538343337431547111848209218733292703478297485596369882470639128632919960928187945455520043627640278726698465211800857612898425350106629021297050763280740530852534009911850423799727302902318132190523695180697802115397645050786079992298961893147517798130846566393014505218763004654716358007805948993474095478756941805933138402668404226005718525819790325056709257750083734104900631712697893248803607176744167279812129409714087952032455777264867965462934219265585446246401431670041010648466143373513981462018916741999244927779738630797461789042237040666217035436053505522094288576276531989504205525105270479577333936594936450906730073056939105805303662778483282462960266302677601616063762746075822566754510405248427570867543913835208152395799733166955708318177832319028450041056247054465771813893882989330432695473758989038002682447566677233787626629093317154870982776743546685362058645168672605057364628598084599095442359826336950026429317645519033163727311678583054888951439498988438809139266960795614410005975506177301547272445195013701832062490289362960209220135209783773851299264566253980122108845447676189986159960668604195154953821515350886413463023199422072402496880004753684994730582222427249231914165981401913549081289861226963611000002488037492734407367717919862710892626414701971420101804664695096987621667523143406354631968030609492212254641876200671014360557262983225366890196651226982752710352045824255846759730441245447006446623282425392730180304006011503042022547066194205898811904807721084760633019309366479442131102976618256535155725836935067741848933853041640953486904417915949205147497947497070942109690837212256818871304402768838478119783636909534341991077364137386978240276867297598513211086608736835374448255119713809818350996951946714029683187270731893424745696796118687249308768630980182265734860886271157724578511256778327780179169705597384203458345308772409640225847208492331157760453479193003442583524911407825873869964059285301990492637245056208674463882642040763846929133231936171293934813526488869481968807071919056899848450132275551073780526595477022038358698672144159894366213161975184076995016982064602770953321787549192313903387382806038661007876022026424556484342809317637723693089744142111627766562236299718606459462315454639387085934393419636374585543563276016783235452638181564163364992857538630008575707218426671371154204382870306103578601168042569642374284252156301713908736199787117366985248618669140920021729384900372382235881764428745595639223689260495576865223154104470717977860846712444127700487442741773816188090026322240943516986234170525517077377685462694395958429496518579556315525897279620915851788923205343561934979816868073496505215320517685918928029287372952571278353159442137182347482083560306210922150962896672010212566932772792665125038736351549319031246953467121361609484054129643613317279182024018701057797666473649998044840456293156429552427971017056432644185464494808291383588253913916253158820640979489028297131370166074337958503895078370478874365882835192500548407942655997858071748487553427005830611266799095502153474240150337438854821677761065386106597205398869574041245392496508027761518023615849513092330589565577205248712358146699145233973820278590535206238427906923657521108117109256140474244647137939602106901272096746927883025688767355614430777558023320296371377212042621884815192714809853231706406231635500389514971735634225713019638420560162219589008138536225546029977439202453387679940404127258662338432430349118540248711580312519035735018648677036284464483151265034735688167379303121923435990857480270117379692751483977686806538410512271493238392341808663446654511071231219836561006357734761313975698118822173095756854746862846138017499871833680220292293496783204291832181010743703110837520876425222098396545227726084031527049770008925403221757540415306763282120581820624773820347475041412428970465345771402599579441117778659334223074503249589806010070055103723287649402156128434471887595167681982619682017360932067537293946149364355560980970356478495607547170516018193868997838477928099859694748698293916769710832625805539773494004350119381950892946809161826168445441567426365482445200904623930430570711268588303529368662250202394080937625256886383191769836512655987379990879032341755565770234683875727816002036983769293842133426609701470339791249930981745526081803144962731374425326198060313374037023734265214510219179646301129357152151762422284118111438814750448257292338639690833224490409957909910570876686904331572589442158510420583679674923737186482786333298339439475708590193127618125439262102984058298605760865113557556748078509847933032784259709291481119933619766732230036721795932582376961669142212465068593672268243011839024474894107008878707728252509334876812015172155861890952563572351940289289780747266766318135871210768375825914509264156999676648278709043915394682423865034035647913627422297232179328970885151055744248908379885166495974267911224956630690242224907955457282396471655292941028408172831567786713788139724282948133798330795425805076529812269287742811769350737486308842436006455670849142439517604047166931242169496144038269304811671276946672880111688836975512899146811055421562533668144234095517263535700169330918088543829461946155146858302296333826801855249713056033246143830232809560876840724413179445910788531290914063461320961168392892223658579283546047620504565223732033621507153219732384247381852591819274662021083528204562231871165479946040395521337478165234631876146608014385529372669545703426140357786938831416650673202560391592159458635422834087465051544954406492755213569450497021427321268451556857513474262926896068762309982012914054682124733622234683677241231362014175730764377064776355425294932080564341394723050170377717421036550722026344740671287904922217241469992994716648290061031013710364930491979285759720347445999539145582182892111864533774308499090879680705255472505880695940820808891050173919793404969826984954504952050685581758665502952331195842492418973772444385502778298552644642412570800290442892355660323934248209217545250232572085423589491346832922952372168603267556757339223724386807231943405457763922428365255481623294427945190133982778407870537877370722447287816653953920770157987378484524131532031433746287355897025733541279941636411244184401859135797225501033299015363268726028380202765662588157436723584128175607582337081922829045466208703273752481767850972525340568495064460557227421169990805536932999633293715669867493824198879875984146956689907257767856537176493018453333100872467366606840669858020852422648573086293873487771784440097506479677310257084202809934540398789205123257463521757450502506617044528798385750525349249519445966542232101283384517130813039192959212517403590552032015041794706157362318552380830439337577715028362223265033261094238878626825078631976928012959591077361003523743728568652861340155315499733740819933100136734509515006792319474621311848503424529049850286433227730823909007285078756363217606050250980967028779598418014172485022504457948812276145299354386465211613017723754697758140970549546906948168159787913974013366587026899781576964897968122940925309032638170373740381491979052678964284692452591625076555659153637391220487287767725550876843784201026964777593881441672745171196869909450139825958156993339997493865257475955633026536414929849636007720719764350431244502995257852260625299494353159814865404106297972495236659848955603348536158196039433004405705025891470202539098958366342783651457827560307570810127123884513382862478555226362866335986043210012963213290611335028849356324257842370313433274428691375515983410615542367408757775088981746442276976614209105851064326065626300415220058554154973633566809141853553374143292256105726003486268916968391425895284831242098551478175252574097192016840378672610941637883529998208686920725158585029130625446427242905635762854856860950409200646873855506793663119475380804159722744672434699641346689934858859646520140215438742475112478156490525763250043497571794039025363719297872810570787830822781824375607875651360848390367508948341149598273123205829887312317653164651826047427199383916822046777713609034810120466777617914524449198042789450324588963537033868453449768068000268349579318267687093254858629386324709223228591833995732693428087157906386555448649864503919746453256463405394703038238555298672929662186824368693755067335654899860552592442289191663555119608322267056062184232172325437306510977436381268446471089129791577945957685993208676464955865458222314952584367384689597343313054176394083423899999579724020340434097088865899557198703818405440556549330916462729026131688491823781219217334424113171772075382807041590152895377653538391612029247789690869270090343733712170770967913785232298870227128543786737828281304985738915402597390552283856349427569839967655109527563701921053366693246709202338560842593657358369444401452012799586302474289237328380032095228531101237767163767517898117549669136891722408413198356246857110433735091219413428779854351430728350025383029927756993970063044427841551925721858560752348835728612717479386406596951872345857416439340666930790219035829298600717950357833946029404294405776603092948919876266065537577130406471543243467856050606167543154377547716577575931874844138050533660677046537103164865879479749678389945287807501945737343139853664457906848445447909608556791225202866083321129329616288596404624689376707537665889244365926807162715902219404149475897225682722609339914092489642053107408279729824693345788102579243876433866066846779316910806879413233395896311688051403827450608496888147637349762210917906277858156751653178065393432214687616751578405690619094028019028702558801174559433895713222941233476217425499973540127460451307326272012401522942088612146086937420328893948297357601064145841020294825103305598247965368221371987375609813375571013423787096683728848874824652996358825938696910610072422573846702138157632745111885848047147285220003479321935275296726700712984412384124680049304801783038835382858468308974910456205652966147778475618336550610420569069725667151891468458047678419867154454119733641465049487086330855248408760828156680219403548757613191194492092095555103040270890123897345282077389516201968386158202606870980263729965958180858402959011455536672242866327544158763931032287438325007593128698974082669191822135898725880849087201333456762409147324444835405144163067932295013328887318589001034075848344278282307891836406220418502167343347990895248444077008089126534748457694484287759986146349092898226143743546612447154619116975763651968605673419916143344327972215208738503167914530007618447227737134679515666306574057325422971095215611164817050202020840372011966579943097212149117226127202997104246374128622580052106387803375839710667649997966464144461072033654840811148988313225225229381161116297668502471602535058161721485351479599522233455507403609722777881851221630867082876809216221506087912584937546738059593821365361479035726906629236557397113954878263690416295041174285698790111236464763129057353717079034077971350489374779012475253127088373081059979460111240485475922383700154404212573089659732082098367816528547797281451271267894548028395730696883181450036690978081014311548214749464775397270106551534163448372109048918464723105054833410211981024855838379374447864063258556297312948702611222546242266686551330003737890464278131437923597326954380198036539181162610740506910859806339606058983461410343563660302642470515786219950971801791270450457638842607420179826907023802440928650118926221883118392842754840950654984109023528032210744292017183866918936398244360444528405441722462345357133712131992778744594775862381808742629225589649847887239239754410181746439149730049687391762800989892309136121287577709198500862995722859007227440886279452149175058462826600417545356240683243811662367848285416161127521252681669683270345237556041737996437929569259182798629900913482534111901175848295233713114056573478542233740279220978666222249626172874519934182527648100241744596955443540654106288989679424794704834233004602688679789323663861223043907438753059161028298088300028887356893932878304670700030295867215577722474892058810364085253287928793593394280521596065464563799120163624380921800452054702670639794814971342363716416703754496808691923770286068402689348008934226688384010523236344975768179743801449949839967133000404864841434465284871772764570578712077337599345479964346565623537395953375505777547328464109775545595415551392128640196961371784968201403095240539895311489798749454030555659516574421762451334052461755553713274785536297528069843066384796162909011985427007717655948102515293578552731840264493463858241848294473277312227651840818387006294644641880446120729153445231309545806946590788795009132967163859178658722848718597402785927264593414706639712213667052968638668137954815965579850422576413326480071748752472141619101589966366504289615284368033395896992537645207511655860796376350483215648064610520926457622982983552197183242854310576772220555589168287056598821575226340408713622444728513340460331604536624634685321737622168389812255337318404328449794199294202527090103038941315511113000358242320278417051161144061877701906116499414243537239276337253299577956791198631822504515058909788427389455635445770114059439313340967441336482934266832692455742272497038525912954298452611976206134393380721872310178269147813901180838138367747223814144778134407050849950133236216727344654749284540742584411295348674052119933268105600173192220433694776796934627181984466170803456999133228202607735964812964904379998116584740627101900331027003221068470599923208906774203210841475263134325889830380038630557557043502536087999002715577311850145545999181884288530060875617030315075869957741110857642789991787709651247111731287009775060616774972381140404048538329523410789330189504821993550347790903160791349310686803821540959349444838745151467685678380442967037359046830051677950714128749580726172357252887967209002290119085518842458686889271266854636709784711772775112757893223112237019527602364677366285580103396111758075377054359780040750513993153146905512441713933121522226459847447950288687423831829945912625941809112415764344267910099026849592058203183138142414806051173396571400918897383635414511389964924728313237533852053774129213071122768115133830507629365478988139728854193702654494723492185688647504248621936982363473546959951225349772400127876473492619761233431043328098592918232458444879313023337687218660294192295602744366688720187651371124508666754769833619530995077741627681702290736196675022933479230667943535428757891912279698142818861858772685033417641812627513015219257566124717467114325253856032618700193842849106395961579177929004200409777576786177091680322739893104261116036499006757277174316874143113733026348753431972817693662971258798185395826202813503729202436893767608520493016774713834129733882634982920599214280026368960278001134188280732140489884867213472489066507562507790998437698526437608351882747209789834696131507310246390601292868400326229498794043726855389306029923535024973703985105065434827379234688503396171406732078843377758028798118873972481744251194786949588602888525912969962642317637917688955410155527237326507826540807945674005016945538236939735977473115912834590070120950144978940462936981917776721670641600613645454087214247396005223834692864716247508619752163493020700607014299447224315694095122483601616424725470056034180651852409468477874463256458644613364577290808793153703426060845363032497930652539261496906138934739568503287855963066597348505420450055002766476853928484220965441870740223585782538270680423832461571508253281044317508049122614482959066139653149117296478342259424893516990255688416905153514973844063061592650931986023786468110381450459474476302834414592268033207534047372817033063187259307873409837794681469176264953377975646540121736867142543062315412328866617847847071202416639661993944588005887986602891332827416688794083355328217666366442675913815268479471868627551463117424664859698829807345660363487772163450237471545275423109244925048751251234503543369801495856166189962092673627944659245296070663073847424956711025782465598803011730806007422213861087707668001425531553506299388609882394840515806176430318564298751002062950370574886498754256840250508109340511750664456290053626005199674438754497653719153818330405936752247082137706778732991098127426201006336142340819215413214768452172382648739746997586284520537583025743879146658437468385489318823792824704960147567447087737671488042462012246432809171772116614424339125171383087623556487042404460180620149314854149153488284294811904181951140840492180782775866194691851783633904143284817182852746561766679001141094243884702956838336936783574413775431135610147785221638156451681182245518485476354026107410328193143767172395206887484942386240113270282557994273740539019879427333951657436586776759304652232276887592751578551755568044902919585880354131430594599245086906205647025713802889284128525633702148525169220402994527140900576335508052832566631331172375323833933665478897506173018364951325364205144153132593324359877149105995555229186960005618309628094382883383377756426118007153606516887621574539148851795155957447886757416533581625145023495279885457749154034028620870439370317100160078325565381894906453235645389662853468657319309907389560689409153242191843753308609237788230785088802501610356828797961871876855724952078646522131893791129045603669719960713931069616471354772604781331795634900741228594594231022788544547806026577721712491417217671449238687250416348091628142133542126502181460353874340001019104034945001413755225732569860933110392990502813636753116331670998732059234464795897098640689922941655440815094378707294632009988177289348580544484741768928219514530227389838005325565631747364030921647941548632190179480947966428704588846917321726312614477693086916425489882877568568588473380861550526462804307143770069995331168459425207648027522504477371612413886305331282399398698883625551686916986068635560100631157006229507394388498876388081472631819508925961515935997550641399588248664598655971692714503673348756201307606740787472138781792968116300546384297836312088131069949729383968912780888520751242294875127306780597206921074237489562124950001741442036870387227175799826027536325847219936506608948381008050894864604886109456118882118956084918941607172086016888557290269243045174087088271568863871096911178083261038867127684582113782533304150375022612389381798809946602335625516140512648105566132941641349922497535012039051776310384163506149401294623759289326109074626263032169443634724151951061028038406837654359361954492529168424869358315658152108785161648490672528245442285133433484588466018253906409392850368561754012789618189798262296221696355673322412466979882469215702734714535872887414163693026283748113454151786797246427744601488585257302805328559071953307215785770660316543583461720376510804723766683399332654491165404222905820504623111190072536506347905456030223479821363835414654899292376406070537923414666760884896365641770227385323030042353031860069056285211700607487140983908205298710368322852638710572423612410841227925656149925800984503368182681454541348472024478351087564767839893733802726541811915136156267632526049407038702813860100999931038513825271259492795728973084502032913770253769099434431680991930401019206564529079254529077040858711400025531184776313082842536138492475046159439006006147208151084616106695493877895753805141026103162113117880800655712859375479941911105693325616647702186750055033805725953302890689633547781923097573624598472140550203009446068505361150131190192670306869895260244429047504515381255717063585280365436727230555440747213189679304186206284411335391514908740899762539610092302980723889080126737005153685082488617351560342443467643263164180854635949671441244015511984922064965820235078937643544066300491699983751841133911784973324611741832750694020307500375455946845644152628720557205682804792858070620386912123999839309649918814950773056361370984066244559048023370145663030715201282072699207406908333307173971885799953327583334501508451682335208580054913732049257467692816225638345689815936109852251363301319023333596589689539713278086553734406900015626132054410375952550238983890564777747230792574745354785400566979440903997007490708909801466108581839714613725040188146121474419805885503690976744442504027016786119667211134332050910654909062167540386871057435121395627452369061051553845644323151545231964261118398006880046909227821549116969195949336424437459073102181365001223924217113664014653388428012064568862445503524446088296667301270419682345867421668698232412040931824091182632859639886992519888711687693198700868006267243904290695182346797084405393030117571842960819769767870762479945883792106482825488769265129307617606219899579567934685019043695067641890181226588242985533349919813829270276842954564620751149415808902990811661984868878443729144297274849148164912356010499928500830919508453210432853871376985760171536486063688356697959034007377059053789771752304095325535221046576924027696530810863218028092502765458973205225584917427382267196531228910127514956026789354653854663884747398215505368204725221364553990198555198865751329112726990240389218339963032117160429828324127308619449775539183928720482438616184740740261349535156821625923919173589297552702163471251127575190441695961232757517364489140340559298543636110716328630871382975131719804741761012680757811390343040801446866357335420141380935617822110632408758519336833534974682980193425744847817954266812212387422525290073157045476813301222898923229206870099787926656893983044455943031340089741423687735340834691637075165186625005260661714469878200292096890333852444962472181157031932080447136853683206239984806208055827804947094827840810134658218761927979407008287594975968268620459768152097538460227124415358695407844329327485511896651068358824183802763360466177156869690322140142224940638980529463266855471572760046270364745259845474352014226530856779195174775694895481066407149644071064183075766698937446966248524274271360834976897435222374897190576729703816251510738062177700009342486899310549039237506653449905491672513833217412580055409998818912547098402496766206961621840996748985240117868214643740074449072096591967860115028444400146613701842767420163347831127548053251024958356216822428137319835387199003825849970253037592221097297881287476569080792629521884637484191340852016463774299600716381460938404390309391071533253264703593671321683577705245512602226952193042712877516446438741124645283451983311848656056803510821087860273138746228372038587243623817115318693671987492288598696943745521234912411511449208892823649910391630592742837035637983062083482752478888887450956944084248545725304272806933995136297348318424862847525051478325074799248699025339091828962175025444827834487439862769128279225013679898799715888783551857910875282234308802624367654778256824486399537955671895343954748192937877567870548368278361548648656177420664985759536889543258151476442958792540842237476640227899391138849263383495398599036691123038211739563388612876131773356732645148268336731286836415534523777084034656254225916884517781414426616360174416253225288956665248420862841583599040138763836518511423857143022820808952543238455041089026269831040803890177929860239908940591001444612724949137491035529094712079867253421011494037683709278350218212670762763220596789677218689600235431304203767638697138488052768685821639202387193507104406697926030673594465866537361248496364073648488513690636116318054008520370286660393248557837633770287259038302279898479549768370272892667583129074243633074737089976125028717172739309848442307376141711651207062127793915558927769165955848477262820244501553945806183300907305165901411457356969387114376246136134654091690786169364868874984608870299326394854489920832925817776255118007088567136373811680386509928543740120590149143835622970366646223160401373850158455038638774761552358939676320657866747114650242739350908136481190319618183247161946355125618046381202093565514125640973421234868408987038833343596421043872275279664197971598290188447409600108563688602581510750997403627946972863054202285115585098346156442963310638202116928801821902557191531202608754580544506857238446588909397916199643898550577111809288029021805574693720770665655800275851552977242643341138466931196342480762110874807250216573828446269815016838064775435689717725409013126963994492352347453696392771457968785170559372641038003232598755530018233155454322488320304461083498543136108589029380072953148306469146613584591555711518442605696302178121383663734735726103492073571667731999743570694149622223700281467930421854165502056644082143143468643394508750059404960756259818488545308919407055018290546175760951605601375203918313208246592847117931684881731815688959657769329373228285717596451263307762578683704233483490107965004145876738551888942059031457387144135318415244578870414341548391456228488513371825802936072847445950262901985558182726002307503775792097968843568855225155262788251402864485025597682019394695135156004784149756454517872022795677280777957078621424134269502200126590669177771280221906476487350704193279220044699666870588194823159296257833273819772665496936632041214806373216329596303315735181649821145389365118878182583371936190152772751705168228080217768148683096315678949021615891011818083687879547268065405092951806025204938260725061292224876666648224394911298416335941143658316695654852704219860310659246317443601496370258974609953424163561069233960671873521849796542273551127750397637013893087339679622577052931927324744627863501733584295724650197548771711005513737148274993760572412078604210493485777738307956194122106492472815666814178523909268206987983932733165785991096618664404775092450772858863907289322280256887140228845535769178979828177683674242804380021403844627802020437554381125377187214233626591011345829535045630949511290115370152086153019155842349520750134580920236536122317106091248591177834950669380034746575182082434774775594335131291109154456501172820547922212147730694518116157593508804863517112985507477674503012702283053988729223537222988072130621702252828205220834457349248021568189665140050378575640248839602386821794978453901092519974083468729599150881047450171373061926094114222526409731727339204950625342037818534495066965065278913740884666762541614707989114282641894692547010257345968958346735993409863862709559743941778198560419326693770902345616800945256403741024147115034198333072574447402250014735320883095243748633605137932422860568718188336576886371025304132995064907446712428988496128430880487498850470980924438247432931558575050194516161017886051172093903259855768879568998777266935932045939515744941149046819433681378399458703723307409972849791035065926195302952672246994475043874042056410868078774988092575036187831716492794444826859892463085776245854326145138104582467840753215761523836908594843988904580981212713939875548376757297924490178631250495471044087469855750876466346505562551856533407420974097407964583314730131950123148380203554803230359399553493607808079027529866488352970154550481262367628398924029274269563861636887293267040438473589804371918935934219464472331991077523112050309314722571829968676559579186231048856192135180342845172538385734854752476765211815060051716723522959409241680532302753424643976288982328425630712444411810669604327651486414713191481047180680496057449773531289755629950931372993600531902795136604532994711144615326597491444293433912817446049715988841190965771730701625171976630263413869372450019300494223777628307523302382796431419960202808432147927326925236144666666524825905575439551167786060917660375343702356077375995225448786269289962993458680867931056024913909016764552432962242189291135651896644372629583631969201501136145631783169790853890982275395460930355409959761217495388968285337797742613726193462578721567415292113483964536139580249186057112730164130775228650004883702027379925512240249770155498876168409146020569255091427479932390646665842942379010844930578236605285499163884517968924222216074238783746137131359712433817400124988547748453730879910199034795673083676089962672435090386586426472555263848223971771114644912421036948619679827930783293339069746789369934799556786965776796309375587182962093927848673865883162469616661020841389606808424871800775820792019846821224608577064280913538160032969533267486284537645918271925305002797649620197071656215734877346563764665589993300472584761190612746371159802304047299489387930339229455449490702493191839673853694884327436859602197218949325324746076141620940696505914382645364692234219638876116989918390663998277736738473480099628827215120140060644416522156328615524563648574789631995117467229984345138693752955930167706227510407443530112636961161453729786457191723890221150629411290691669733382989394152150645238706518065021568266378536693904772331851833165349548014191956244052420168406137636092658140022780991775360452192706451180150360396739162533541631706359453413167436632357851989202725651999240284712722266764248792936304505590427419885972762743762377937403122974365117573393186335213838971217312866329787243035942620831178206012594508644817238060356857627020190509194470616071656047783637366399212047189187423093969289029736854596009059657762443959775787125753875428569185604205840236239607111080614211744446362496151927629443181945568610564357149080891032242163408528022037119177058520739860623922258861021704307684542616283963590291433018481903124407601036190814326927339982494634799712478204911294967200728187928551818981971023996548405874071405555094139566144654557785966902681667478071153052087712272355332691064292761780795012856331867660501999292622700102786776714008060306158792757479384596623148213578696459428010759660424453350492602567552937727073041565833574537773948946123746547232971866695880570500109536205292511701513276906132287282391856271853590728202399904486135194392576640312837423155101058671463141888481969927252204828478998484525758748171969611170484211457923441583580108861276218947903025016316933601846342936931023143202394758968558298742619425789613048564818407161130518148867595458002228737957699029338032063398373590251493037578008118761112880594080753615826115669513089313961340678912025078562498297249848599439603352480318494734170926146681743361071752311262380413991401612792571526725551261920637718220004624048964182824687952155183014745940852950459085091931773810241957657606585320859355369344168150195728912532253553914455435473160484415103887997690135197906705341503732980412792315405321503110197338595321522549548829939797954979817464902842532140112507020617161870433647010909218820565916706212671882481274754640744668909684830156501040482225445781649714986376564784058053426493484985905223056245828610553179549020750628847671380343134364760004801003633143128560441257274023156525041041819595422922781562387774290261219258388899754866614453693831817395092894976201413898486831087654343125254609908292091951015262139269335409557220969652250790584943887603400257496600089317520046722645718469230500349789211182125382144843372446253907366990606905981782704864366911875824999688423017232753464058513808495629564405765151276412945400468381752816676027818782598733265368511733467608397594022892832690225788554095033857750565567677690315740592491109174402046414948853186105617874324119608012214695842335411481198693806381860231486685386005659715725824607306936342819488084752977644701537350308031138830656999878921412169846227317930886544476744654018543769024532233469501080167339995530079207036915284035640037431131431906988126438824434220675824767273049881849956841206451334488455056843673024807483899063436156823602645319960038401025974928460140229442137817405938354095505599940823101519034126736613181115607522079046234008351396426332259878776857453093978117677256104435301229497705776717049212934212102993861786996263221380787976458871844248613573225202823185153620753429019789834736551318685739927225833443775753316941904132137771932236732787366048855417257857719245409106331997351181036421039765171374778563022582458804356249135166970803552765360174808351169740631986629058228705255859476248148451488197163861754219753462895439424169930130308285102228355196005524441756694527004070887505884487543190247239952072895812539965685980684245706835701995968920014970633465819945080453400314192259450335296330510192378033651401331551005568633257505325280404918384022942155277170582958942701602321488548384486192562013899142457807932185073187902232565207701203725953076792213055334413337446264229266310541089535260393206663264095408248399932663710573210641403842220873386663822673484520710243832762201937907751762515487399388085901363348256107245763162624600855330039063992026456182501805353080322177028645940805594886195077551708493626886443868332879810562144066003439528207638797278688297581301073563554197599737693475801510853577910450353238639112369002057526187800533807625462079570010093336694357243230757062861935406954734406974021195863180471850693058716671429705060895388689100567120447042090453391115719413194538498377692796514106371437247545428672967395407388591864024499601232321205844542657164941198191153105893170956832587884146236882434052296948362379453274638916655283775562646820776667411590638056859964594381471150449533700034180719856878869960461525949925973403453715486139859293857618872633834612102782649648604833749875725190934447867439647301092919803536035502265990330067688273300601784977528202214005799385326561627306094251338108043022895752673478308730025052386116827564371984151535597914935060787224509233412145991480154933929228307490636993445808385388855485127636222242853816943773857394544253877532217311705528482241652347059088954858287360153067993468884092336803921835015300592677931958404812796324540100276435005195521907975884708710600304474042257401722155825018070602240260714645391323715227127832474553400180947471284200749770988033266851964089211041409456844124523631665840855989182828432531281070353668266102291991491143936233128569948575621502635841384316071738734389691021461919848722244768353212255142267712640978283047072740585498933212520590740972057255635897409215330598291268825676813272407193777404926929050348000136596456020714201428431199496054722400072021590560774591966697489702439476656224336827616491161070118582605842419730799377535090654059487239939476311390441034082382290751453333674228434100332365817749143535365253082353560790868272677646926854540163523733025704775348223576519879034278583839546085047329789605175965431233732904719840970107685603508320754904148253488078205890476953544051156255371822764732853240191579294058659616573420051823285819624052817466373696376972758964979026309761528214143786807395473782451476217057628557712801314517980917182063245133029852205961501413555704946400703087904098613215286402489070994572158419485450572277058260595163823824422200894857200447158060223863506642640404514450317916724488451029949120739521954909303224461634355422280538729913445735676025306496486390024327008126695385801987468267627607153429550183723707612371902067097224682398693722999616507467693816519293260566212600665756465211699319398370342962828053592210330965828866409710527283988367423348733995559742069575727500470330811598334666600765401991224655171921271578833584972503873258898873055847183900570078352859702062849817344818744533529279242857521199598102666453299889370524900267555875770749862604819255967079147794870169202215440752095242357505656979662654544726538665498844574989095660591454699403866634736371238797891746639677070252127608484574989323279622192168056040683036368361503623735087127868761002258539535431342874715611567231389453158278354871139561639804935196976832415339757612397888271312296024995213583628512401882347499165760776057729426315896593436033185174506224219547311122381693019760568954025837223325887311927559815196611921380349426509798585216370265874409815795443725007599685923659242449552139928928313238775395952516330934166117410264953697693110972516414812098913244273418428254399098482015102904533201033250460534049657188134989943353385814517743847363081976993537072647256742503068916832400960328148285239510526836906724684055203939864252932967390851144061355856057164745937994245471232247425392364285957039547840222208885969938858318431287733888043692846255355029184232273776993162056664388479466079998994636031349958518954555017112783414929959887832615534698620110555964528740482738558154808577190035474980865607551732811305368504888611351154488508670821094497239266332139074609489388838695502579360079487519563184446431921438505712973781522852225731840272551723188449696746510536583993876326672179963886379105772859839306875715563831995494933987678366735360011479277312433647345368166890553609356599362002346681254883258258853175159692606120768775563836248378131008517431894770715526494512685705219952221918432090735001320229746590713637455337143843692301127620105764459713777617567486624413889021681581438535182775005218256140979771225871099644056845967410800468701401709168944654167523541907000817276494520134312385881665206639688390301944547684113684691834586310713614747841926431688673725700125758969813591494598057873984926448478087285440478178711614028863199145045092325189858241205380538804245782128580922000895579788728447260791147797063834873959689908299330682518260614150558635689394167315129879981677214171276710134299748594562012224758651187968955950071404977237776809182005627019217348260899912043556043271676775450357715339745157292713990946586675923415942982752416262665686157584476489387560217005114470093976807554105397930771607935387430209092272146611219561006395551329020646388140668919606845231588131856214720925015996183590034683157019606748965008503127420641362244323922070188662323537623368829185497661333743750022228525136513845458641887633435368525624829506550590783335433325541943519896912830973633941683423359551063458551600787753141770477512417168442593665630525949167572450014214932570876659674858605701430094821999082342485008879795409774915335114271650597219099432304162664339807631982001383516018895465065915453688183918680730821394619127682068450057390225637461626727470949371619044539471280314723903622038905769800135768595984251157725616416074534295582497928018965827574331476628670277424314855445484306274000707399785282997914589583194677085234916501586304599777590926206111005138677056385664857331622482321296478073718319946400782163153625911328926473331402764262042075234569898337090485847070643244644310415346088953320144014716085989417833734251963844232508877558672091256222960478841423378347955030205847725212565019957369116317811275983061526354565575679383707274529590284279538928968782592508716702011789448921120701318186106460311864125158570612961467066317432988324556771794359153286354380190668622042394988777632417385899531537792541526377492563090050740032990388917674343844608963525830106508047053768241095597442139026861043040476983393491085833307380433919659356805131123727580010130258285655567702213278950594462345782761440730367324732102566210953523102728100477176960983160713019896427341307654894248867916216159117456338691525787622478333873819821111981726965470188601409656704215241141403195364039798674756469133797778155214783095781100257399864795360377658777936754612475006120951171896831334133124300552891234238758858176254410514876925679643013015721133409296590562079573540769503519636457069028265241793103149857004792637266018756889762100502153645942097040723907374867432361867006747205904465015870498258168758610027409727258389298627476883305436001453206061766420419244287230366630409321527666815432339826749708583841790157028192504540548758700044006569917234599323542204821654253550936919503661653320413770378091641913540071854519346551829554968641635486790372729995467868795930112130349050050318553299209161725637988935828300831911343672326194855176629770858601429699136268707750003513100951974625856756172810088053679749347320893164048826085454487417502748649575228475719578568246375267109551178363265481554772011831025740147430088678954404861246498172080012262325601720515775278928315255117922342018545880783140525148062566633893074139866961217765307175790411498139301808731009890990206845562666000990845027309037249953179251227783826814144437136248196831250055261526710298874964764511300821596098736241717662422594132366348660041590365733839055560159838462540157985381899796563102952843502222053369252743698729873803321068298860547293079112779953405462101744955596857048823225518064231327846505450054221069385245195669680058654190034238000375746391086395190514455959824517865022099935542414362649067074070969546999105537767858718105505525091497509825179623718459881730108624569947591334482184211451176328386073575433940507316259691427456886257490054538035821076878360199640977204880262202089242969053575689864871900224616138701269726012124240413109700964811064536698006517760665845683832155064981271804287049772046191729346404639150595046356723639503122201249065290731812037717061059909879800067190003407473629865909064524765170910175323784912932846269593647521642990764702218271117458494223396992275631659547573303202856800745440543333921320608440131832156991234878093400319448024605791338297863322629900473273721734906996473129895370903996902206457862384883003322693868545773801617778950092209309115012019291164906041583889370880309047028049907325145776070209550589014506952595022089103558480932361391884673410225732256029580495128901468990420587983804372769296992160902128382524906934635277221394841886888529680982629175067616618853368729829072859805481262854480456009219776565006489647329786943172028355771433312134487763415928028574061531953327312996725672190079164373421509784519806068348156875855216870345711801059951044548096152199336691763013690584440881333053161693802733524181794854943194613206590306698439789624050800521327305351042098548394962233932733422903181267164636643233871261818124467903185699472592057503309085095785367751183904982960656527411896982115074198170483016327810050624888462402092086381506873813417294322590113290377864699716826450845040824179054031039797289950278067038025049592212189582409408909046859728592926362089830846346722495232778324505378839504229780775274979249017814571696979610895699035901089938247256653496458089209735705664881440687824013257036622719130036788053929819603548542532136280152091718153497010542224139535192014740993632019068097355981270359234552877334998188586932638004740792302565883421421904489828125999528833112790842086624158035611763044246759880460078191088431648024452230656774858918343084785362312094992407523118585139854004009196047035850685067548853485373417982225451677900078928449759531273629281522468742261063457973124602608348659566391183510106223140632173155719332344062921822784239171172024615955181586069137673597003706978432240112870970033688690155962856796745091895285569819434087454840419503526774733298080992554765231490207360579847695747133413694810022722623928042748823705262994389174941301119728747571585052134250923803383341328730359519613563308914380035661522015327720844659143105189981409161285611234863551844879107687029672226995110703366913502508925602478304327528771882446952823285793518398085616002855851189143964175130780573235852791516362621260360481801348855986730589981192236103970792234435997452868177146680911844144540878766828391733882724116888111202886174516704601281822889684009742603693050807672512349776347829562439963789285953246592453679905515110900889526381972085186839302967839354709795952708482703557659650756446307764384251384767524264968885603287650865533562531112565452596559828479854354793417239969306499210164939962221092561967923688205483252157782063711857724871973913713930947752333207749005119738026306351029102543243981175585552098982490604035572147382802875323202838071422705653735913350043229590455572467313459986790870965828410088328727491834531420805686522910401166298710799761745219167350554226438883196251846310915937470823702896050155068078468029963730712092556393668797559833752959777147392934101989452599358811582369017794056072306255283417392270147644742854161615612075218804391011954436699654369855968854789597050530631075772731888638536995963699623486983063243777406937002796199018922820444631000110498020198167602837055310209305741352321313824360024909754116011676584276262581051865423259853934477378317619405729254501704839344759012558951787525867432977919721407305826198753433041703786487356615107554454229988840935733131868973744017632419922952702295996803988382731587775632257510135372842833171456217898560936510219794324812924321518713565433899269459864528775027609537125592060560905222448660932788748476375043654036499672425415353029088028303943058311357009010379653046895230715650969172638085093578994477238342610353733775588153667084873402979843649648045597259778958177509388166276405763338605678875554452306302340112669162110985452697276017719695405459528111890249095165950044481200200445967697965450877960316869079666498173513493882660369640900923060700588999390369289868937510962541130807969740560392857482783051108149175677956761149464553438756487022610848345650221983317122937981026542752897191099215272771511233530828283798571621963496509050760963467208988610232201054477095724247198986232461099355268722256471715860181360603856191849634784000725718097891818810181578867462571031727726029066814922403394514681493194554481907467486275984560370036701289827703886339355857381337169369625936198480828836506998842694165675665038445875207633762380337365396625457888981450447565083448625228245147932129161832837729628904613426854894587810417495949429697190024552846316740986689526208051404423012196150792937049288188875294120299078409638554298913757172013543383290878661677764886723126760525203037921261891034318906950148945915381424544379874539449112519504058519072879377024735098125479464248320653455953007019718917056810284194443427765364013055234813060595070323986001183751354475257361999711864223237294446933654703983679756392534720829427084461507550211974563222225759611742801753348696005219838191504112275143826381165826826715774352281289216044782386049102059244461774818057512733673604942574874480305113752522114332471391281951587361478820738994297146521373421598515220874960989192932597804587208485399386799492276537116554676907827194143799979866053650405714141806204497234301780731557234818721661150316624593465389427048898975395505043717237058776255636571325861172482473874750168827791983111139955989817291703954170279127290903792987824424293080677537497901860806436246910854467079124445487352085909109692248990749085291904399401968631829016399243511379719766020450574676800364566719653927591892572388730648485829040378934317462035992331985235238023685537094522145343153177078535454145650715107717520679801129861695384133312025927323951843878710364273251972667226408049629838710684255253801877160764259249079738360851314320452396180040445901280535287434532223477972678812966821536327588474631459171944880627212964169172507198166816690127972921475707390293965546777740608049221153953820155969775428473838266072598133422434544151490431384393143198667226801027768180667667755911659192097996279982432795335815504545340927409152447687861915684590711776977840394889230438336704126166027618300876779502650430574172225000071468254526075681494136308078191952450888777429791086109545850844860442047455982794408134843186928488874402343523550087316993929757994824267767850648045105009960370027190546784888468980957488405235065254030602023918831157834910629291988538368275335210862789835506796900012869606333267888441277725983133995931906766860941649864902634210799317168002299726372359719825992386549789511784294701972388217544284667949884430151011370004109178946193170827812620808073993817373122007554888553004019625330415971439388671725754637620285569522158461729766740040740216589580196295693716885815128169010924474420355410445946315753192650803731692515449330594456569993496830873087464699962688675439562953407434341421689543814642727422870256862812173686858778341795999302110964741811611293654163721989337587069118672488361654361834111899510940255119758534006024053206823007543452465645315892930346291881335911797521727900506678875401152141622848306903700773491771272335301176500596290322420349039401656072033963642227387637032682187477088303734046563601602839941318961241335101105367068736284231830077151288156199965611971825193560816885313193911667564814431856553478749734882679462247263138929995328952049543770135349692267807290690800732178427481871288389101871811959250968997808386493233595393594155310552516048294484600320488595247605805682594434493431590055530495019305335639086788578386042416030619570907339329813177269119316689611739046034331892291262213385401439674108332224088596792944778013012954433341811901432232299592557593716760481924872738145707361354460658975652622000659685828157412200892861587160869074585747601210106018065005145681801335992669223834621028003789423052393669594682739725142938543581700307015989871921986702126939813329811555136400430535502045480912330507974196650517560831530755490512458301756577814787102300323597784601914572218920564668611794772057399125243942050451555678413437367025634564201311242986894484050201918010432699279850381576793120153812632938660048745181465077823577839321761146001027440630006200119296525739770037131136489328217292925431496653399496087558024014180955465700497418374979378720198787372499709084544141858192459201012971875512828135021400849380337120194770155064519383779633487199388727218641326145360232271313045138008468556297999199185255169037460702641600812145525379855387638448622502755449109541001398417027453033579046754795113515367632244835892624233523972557966886544680342825449381117351145179851758547785172109280086950002938955388492791600559171174229826101028184268173418734319414226958165615427549143915494510219294524194037884187125517071142523569961941076824789976604463502795638491045320209985747847967194384768475049350784251378803248643487384653625529902170255869091143286069302539645452537378577665856608762281482335276966038796758118575191284935980158713510765858175845601523702693104309482429204267096549925643891221183788685285446922849545949539447149204194617222675838009266530148806021210765896870715580612904139432264868346261138714147799469447115906153896266301311238258103273270040352021628674951654848847064363578518221211534585092550103058747752481877102499866984146764816249216387329776510466123313469350768732930972124460775879442588005890003638022415843609814553129760981656583622933793968742807763152190129170682032470843249497108641957324210900280016452193858152195522698129849830337100195999905103246775477755793001170942660066611365467720149943188703877309556785631735917770885851960324297273215179754576155249317010053313063375799213892139342191605518233259268558404138688322017159833097712163041230596981158737953891342292998203367926744263636322375401897966091303429985415156012703591169669641165989012064338413025979320435653701832662738364861443465188678630002240781950195806657486189071215777308575904148130160855600728672763379130749300454224359233394909489733981811306136528680244023274049842429171861670443910254183934823054227573653810539153027442238112755887846544471119351699327759399415586151246622973895838594123576642853570868451104980073143332606660112601772136513279905685968464217984853165629445241964331569767836160326737681779922825985270407186634586068962246340306435336578854810942166986509688815290675611578566348355887414709452298507548828376197860335300835079947576369362818227277950919835422632440407343623894713087133053872851877780462326433731142817156838424607704806931372868805364128816399459384375102832522741540270130354868421206314773272602864574841567131496573588359891569866836624556341343190400468412407783792896177386971332809038802027528123187916967501813319302079678841017786966057304831308448950419593502058570067994478932431561443567734369441183699245765610096510557015467380165549446933541016954743347443591639041028440178054712919713949166813826260145302875816522393435001046414966348712912484365777763071105717835945750745646386650337435806966939493683712897604484560695848719406268121449886967441411640957009724551343366628997225306535273426215564794488444103980874323747389888684589878337952122091553333090383854696335200322477327187458088852682561736792598882952426841558865997221410203033856413396975097924799461631222349847785216570184078638065389673465962287280341854536916702807662975472468742879239616707124803610606691237351459346564173835639798109852321454720496196456471456292214356086304963567213114327865557959165130534081177180760063175781951387248151267312465126203840975702087737804834430387104199636788490366467845597119262944335926000001557048577162557912124850711302192984373864853869260375442978310894791800390084521032158245493733999802744027299252022262208462723382762065988661075721443043886321411631703701286309623025850797656029493969561663705712137379210348561307301659483634194032986145004257033847884700073803085543560714458242036422525354196116194126875402514369052426043997140609056578244152976708679736067828878425963812791637059617401159715246496845499842692530951552582526451416118850906056390478858171956864658969951150614215342481786139446634380152952406358712083668157452668028485252253798244841221804657577353534345310593461930842743867120338747329639250867383233790440791239407470707236680559863466952565122574778936969933032840057153948038902867308092600845955877414175834306047496858294433463197214630851067588767652203323043214336321135205959954221234181789246179868802486073812903973965455874178833790795539736634944602902437294008464124698034058723466462813488005425989620944018844571955365623377879871882535919966568396646640131182451838637751671558422130190143064215867257694655327705312631323256196567339267670173086201434539863000183791638441970065722747763812345905306176378389215374765908471031262702173122811840095707613089814601795129653748710474105153022971580770430673543157799468859690396459837273886905731644329818203747189558857762734573005394825474818240488089357704640693002876335445126988654705268558193169946154281153326881105377428722751122550624304301021519369218561664406560812965900066459453077816848117653919741202681195879192275376578355419446964859652561618967795464351507028150006945276308643611496296850432859542228669537734064518379307782762083899097858313850555224686948258520885598708698905235924589016514568111313747504368901462142573145227253401681823092662112198778902798814517226652354576794433457223936889527373592458375150106810444936044958945407943610304313004704901022541501802855509583204696131515387168221331098489472558133315657014248143639709859802843166567396208416072765827300892275866734109957376234549656920794449772398985317755776152211799741015008074066054812940881972232085772691127527843218482833907836367193760610255938422003591868469508260474045134744745501644226644279102880100404656056229454887864798891783448851498993919810513387408610569430803844807311153752548642404540829096055667997963219028659326900281968419042185185279818030215487033441168543001351412178318687028690468217580843683153893725937806252191110555631291395361065727328831044590066134976783217255462644254915472871124076591124627016413516406359731128422098625735694099293713260916978787114476890768783145913215199610399731198562251734822974220915565784325633938648149979511417422344017875932893344124193442195899404445420661985356426715095436672222041242716969748701777413641481539468778102630931039001883651250719640079267483339455548548200115939483596621416321952339676628755818433471608906014456085753258115324495493582410628631107825223942671387128258608022916532724296125735885731001280861452121598143271919826397107318258019304226146969376198153280797084957305231650584798182831847437045004491030681262426517023453030986683237432651313626598195219508216810590466232459002789361845204404150247632103077519270617029844503280694620099593383888963138444137260018607371365861670360385165998396159658293623417553894278045181948540489573407229053452059200488264481069767087718046341375387956553479584743016228660230024957244535026179362723247406602732617530434155365083983223931176871656887916786415567007672273424719608989626408464702481740525787218410447443196475882147280321203272906257824605339352869299543195057980978085038627887467487598191708162506389882134930612795596142120710939973140898679200837538460543184446167668722752856373150921947061598553397443634569496404574988405315510441207878128742381802568630564442356975664977746419359405411707054643855335216150231837394694031094758889987854709506908454791715518121781451866644359542024265636454379635197808808611472713946811830607255627600240408053158442550714297600965054838673308834500931090071695654687420824650753770352340035498026321805681237068339670608397659398132076551784029659460044329410508224942442171818085032970300317137893498893233368015684513431496839626773893536945747352881769914036682905896628060113454018585507614647601743610289886606469774445306276677451604917287645346744211386493936862176073004587889694718341564426589223998119720336608837482697424344668286285118220769178995297397790242063436273544046542479579243106007777306285588836220025580987371021214752845655299046709394988008165547954984362345138958760590932729970712823899354654401708824789203861177298510261981374690681448282441403042363347998246050539462858805230849264779824307670876910571412070838391976028795274257610604282063697459761981196172890079771521951930338234081199804256763219597416603305675396094068336842656162902423594936862122571835496592084979384624035804376424696528533931193784529558445985445825145388078761642696546565219850219942739225883544505490853216798183138574080366673183528998732689709796755732852953762895654639393673614904041534696546168217772471072882723832522584820567775545730284210904361131120779292454225139608696322774294831223900674646770077827272667740740453413946898770041498642241455645736595336793027966816775412971236428440380880367394167818584189817349975182377180374271391092855789536772712296895098677048894039339142938533413787381031272155661987633085949247583409482429818006714463843875724538714321550638073608999110192351452579536620631742096227055952297996545442649933857759591023355615874197068647248485244124945359661524894435813108735149192200089121745619280708468529164365191049078749860520415106637861515944357591248218515652717022639423199814732370574523412697438318097188744063110240002858499874120674903314137448425047312974719148611133306781109848070815209396551299973146812233216347110651296436556245217771495059148070682068613296009318965505550287565012340506622160702996451511425960838472271997205038929560020153104770750300220673531347452579962436868095595448742611964556148136747240643860761164387294984755188468333180414459864730145358738184956542062656549025340945028188522688062460352131523222658669997963465375979654609892668576408348177207434154179564453165932560871710508450994591705704597641037088996151091035275192862707861626045267801758200278659833257561462910887423571329472543007403293805173945558150587000315683526201551983220636693316575985804509393139111617151999462785675043062355597178856300365957658678930286218838708167347094636949579959436379976494350458261494918797342617849127980897836997949278742318300403060084786286434828050275764331027671456975371545442689792208424698532282819949619545503495912706962131818474551534692938796149507663871805970890956773430318712959748674442453433733574434320893020602338140710910920263933639723699077795058420814677926372344799022027892712031070265073146884334844615520963199382050796829974875898254860989152051638935343234775407212472599105848788820611982654842561231619145015489518642073546377575830915450980979778546547032710046198668131793188161404280463650144861395931410490783088921407040920930831792155950909805229577903808364864046940429463798561498167982162602294524522196605722997783409110162777606326503281811049968163028890972521573249300273585119559939469163062036345411296736892717414520726217738681008807753211971425932537634881880106331568517353533204507481551563773897860191806380507140997010127200053828059125791013400837970401882829246275453783537290851783954799260252224760868637272019516746840368351038972143156208614865684687290635097471391511381098555738142310546696934042609380214234131338459398030576238896238282328170288540607628226750930221356013797929607304609400454551962931124785472677919467308268480720794157416063736186275833927961757012515983174920590810470494202860576167109338467259288317684212919510707780146032165709338742261517826112771888781580354022666526595267062328954055070090531475636157462146886843059797761986495568823230148901887683948601326410879783437012068637031686759644280591838441305708171780214983266892539427161817712861960254743425367709493761721668343543652715316972762695897902882961103256839288159571879922428736517133498775320755081274590744939131423395788428122807963397909657046226960230189963910364331633417318544869593906512502999840225787520449434552461426324116224458027887436190943637696255459691533915657341245633505775625722109119068698841767478227425471808626744250352783538192733463410942077693192842173435183932235072775270705262496309961221401351234864803877202214612401076781262831815377922157802411163490668018797737920115314576802401249399878413381404187269791555693444835544727891133402949316396303573813000913967857082591335884935448383189531817766615386037805924539565895048212612452041243182981528214499511644686484688217578573048373393453685975445095402750278407579735184567697378791167924951741113675324696756511000356006577191121010900739182769173258989262776151149884553964006197711731063014706225300636439213489815953094357359298900779441917206627487778779856419751455771747748169674089442166921668308068193461435662234034892993911451446350313711769562728724523035408593956122007134447796029806607111648099695555755295552455163489546729593845153520793095974333996888621770283385140953472177377340366824026596454114116503641582796068111431490002740589459370294770904020446688020705448688044024564943078883947744974686828960167660334247027840505202113374766946563966158216116424527954028612268693356415853547986825082467199902884410895590981065003304236608392670870796384406090970939721965485491768141705947138616627119016421981419106733046744386633943802208463354008813468487827950861754538718854256737104711815315844772020276990046975624727372223801694668267044835892582823067803162112808407568842862822053464518977057362345267867904323193360258726718528066689577666678552571751547931968272622827544848129201241642768579940134452337739475024223112337427432307262624253600476285462762110225539730569506155916380253756826594290165596513690804629464245304496774585412672855494549156649601405252791717053671591228547731397275927199090522304602691840183498219887895531799717504304344356271918272830286708158154426843342513108629610316970812934007291446092681676979650036738783971437036942835648261395404666323722944842347095291370610764105432178560706301911299997525124036804826849863272019381943865926669404567218640046190676745883903898556064271488573523242392565252865167739594451371027124309547267532224536494165327972692635188999620684498331996825901029010206508316676066737804272546235681775158829588846364108743486077403202303085217784712117470514789449885322185382256938783667335981837884857112652196734126308884124153700937665961457924069383972156731433366896661205496757465614658811749008334837068693121017849814379466733805142920610833426199322846164648190861938241329438284228587285214208695147400479799954596710697572347559050850075360676891920849976829508729288231008903642978166156921749459812268410040296581660004496832488782632378922619312028697729781899143184045913495627174981915311650736202150480660099405265392364785901402363833261853173094300270242723399553260918476503749621668824710397201970498631088032269427683068415449672560819458218777550835091583401780628351215345302978631201062532255642879041417855774502177414800174779711467719273130313159520849465412459901197604271499942568141721809130687067841659181548090279493268372277151783673282979091823327858911683955477780636686434909889145661540128554257084923155074259846903615846852836783838272048814380302113703526442479860046392639684244503896442295231220720028268328995649968242159195516387551315394379873726527628616313044983887703927519113630718357562323344968178119503630443312901245212678738868999935297620630513912954933495819937800402351082966160247345519548802405462452771253673406563437063683858212527255732374867395774329577344641268927900437828867157146992858277953899864616229913808853943426595335316765121516688293037000954778303541807662877619069966760694600641626831928586384513400085920286449767398608767430629402579447383559524490027857102086162234690390131263883641998287942817964608195217908250035202085166870264408089331763164033224626310153477965193890583208185470186762343572291147698066587755393984022079413394649109650718953776036661383139673535973386292669323939536497989925427357178667535169336217682963785941380257640614268340962960367699545768038782348536558436038133345369624407791119887434765206567083731785955680055902730441069330333192013868535859176773652121791923686034789466758044177489110148884978984237759745862724914071109451293010730766283591367928278136038478624961336666600395163014463489020409425928007057418320373906074204131384269632896644713635751154640871433207992509600926182949417324759821450263139779309186665681222986776340100641484458449838921983823438301763216416403384194502149520711889691787505072576200395908452783154996021216116879169510750401780762571890217189380483024307619165472276089152965590366968371104647128267263398378972185744101243082005761238089724387673598656069017411140048580807936889979426536075948532454643876716452359560485390853152685348666966826710941125377792167212373990322377061249074524474453036696622124577319626012173491737965906972893150372271036928913067197831181201355207276723357641087080613257646836202292851322864002464608956496272949376116950366985553359422049085322670838207852605800914554872231190826494192751679334757074453399540347043305552310051116088498136856017817540594753028281861618315566750349408815926728001254085690176551157764394873158913544990964561120456120359020844558574836135725635298657428991106217314182570894882996579159672331791907806446413377262090436980177698378267358383443723793783520935743403497540842960733227179571128139865310783259263636654465314744518167292986632230032419397220267206426793013560441855142121189842804568718236490827538085085374943144417060320431898911900847389554819313604107938365909248403544385247664855894435675828467814772140059933805906023928232263719087113151129945878899607826917372009549675984641412978295531888024764255143531942928312777276510892890329416019252095014365957751465081700841032010214713528478052002136190720465967785379354000641867274926367553962902531247607955740417372035570183805020366137224464460673388966295479935882404086586861465895420875980251397610296727508941314241934925778317032579533632715003385667522503000674422813428482890393949427712398015468776351246414485897119911982011070700704734127406993326926484029782387515070744291501747367225587882184772145871734520085657419021428148198837632345324900248186572221391216702153433572152831767351351558851443100001338106407016257888488452422479172015285349577325475941823742070519566041167554115892484285135032855170703495802572379605879529477623923124391919504377645370811637142688185599962481062772288169478595545119476240700977118864262321947731536263130486214939936655168614303170293765040808460133020023930419166304244365334386676280467872447012419983763371545748909325020234647212971739374210528270051265782313835159810957793361898920500300759544030987300028369049019953336982591711958210653227521099226405957596751880563733956051552937344722976109691163692742166162759465973363571122820496930300822726946943321945572232371972318471540004138517776152234694918786108017385795131612911669636899803277592161553110368003466595299656062544244199724931676976644416957537918962695309102887878532519109407079352494979227945798373035841164093826063787734089233623125678289168959378841925255954668141115829426450722705943481050946793096821834507072372335817899273765943576692127402765780007352263396922396002067845201830295544417285738918466075853935760990105512235227065383178336050897125974989872927185481404901266840769465462581702162770345033570857461281584539875936512834846533133149986387395488936937535635055067288463253731757279360965820457412829414926775100886655856073873942841676694896369338056568095623430041162194275375400042081420007560387007987939067195367448322596193785011781834512996629006957157600985063737389582328428247872088906506281306693269645415084701355157840501929786522995788763796645556001345755368956077292928787903845186825668059531390354045556402775938106974764332540087857221108817291508485042646369495774363159514393345325609806294650560523818297552234608282000811822750714483495842940186334407016563999051553770496689185395620010147817259873460060814355131964457908467379865152486398097273320254235180653753018272646262482106766680247562007009146628892903687919244494662143267236033258337872911469569723596971617940746494865524286536947176361914211129681072584569466162030986483719067088502317039195901582098933168800106207223675437412340640171050933717240497765637131442631786606718208339089367878102805281117341144704460947988717097092313925043462494944616755630203830568930446785073296160863237837545737431204324656739533264184481883588849490378293179968966972248292537238518937644331848937804373042964539653968108663170724116760565213005578165146785255860913895047798312147992438595048035335613447703187476361487312764536815954308584034975728338236616855456663329838390822814275291365182257982411081731919611007868052688768367975854718154983451418286066669800883318890626566859999595445385948717553092635327659282985397690537641177530901238781582895345895326100990374243627657455257246417570015843952805371817634077795846894018436305145699712871589969967830188407899056731312224702238745107678210848626193482762235965006342132220015489743024689740723604243700656639644433524027174691571554317518677791327403820953000155663857820510889698489950739636279639114001393115162044264654927670049546885923537402890994937004337072124422897170326914361156194989801163427499437256671389926733225115991888154774898877009448503158854841940687955845877775667932683783873892793022076644633079970597354936692893699815773518724424474774539455107254353213970355780093760043081904914117597433831895953245014523271152630642288782196290548880442412596171453213518439645450019971484534267498313772310334733812107683093961343477981409064661536532969934434267789701986355949708829998973231374530579829429794340371908621838456860764440034758556648373044006798365636144925799376593558537657600143329831655998148300874163704254498388563838628432810335845192270665235962850922751571396765751911827221982751396051983052598373743116507069386684149231315182463333662216137564425554135271707431720867235699514544079004297229070218025416170592788475929169798893391004186035687449524303134963301701333946577909041430279170162885446251642188676162757004069965258717253874129007469020874738436930216173094350611838240977966186719003802866452564138092065771960347692696280632381241088444756074114842151519367100261945453337651437561574410624724763850675970569727632416758906950444444162669850982634961621365378380386138962856935684916227073239628626958704266245071529624705135421005859081086270554665598228125886972262413791254092977665937997251648271282260646457005856162972603058430888031318743744721835177017002211028101101556634123894136590153799199501788530363453250656619165217629867824205587603824321756710221936466051528971395129894333399819983227126917948979574192132460962519869019708777404944736265124294739904825671551889554359638381364094881569823323099077145142752295249588470246530560930674756532406931445306099301218865852067060784642688911797937303343121971849955787695083610524574515051911011601736432428469191678844352525219587633998521628978985912164159431201405742085816315578915955757124871542229494310836195761388129674673385106206882582159795061093755359864808101964227734433583810793948516777494834981593558755503828097595446433205445691361717921325377386094594409215072343374547162393362885209875361204247375595892126367883906426961020162609819663398283157065501647742648845211468352515723644152109270371434052401421230023986544912490918425887777484585804350090208063742108328658235362460528349676527269521087119982331503277233570564382921901442432394925565661160857230859023676679181922581234760930901574460813305221079927296268315838451188965954407502756793980756379780681190542659103027930131502363701229749819976932392340625776075961678932489533947139069414789757935808305807406967553347530887857433447961483494158735320344612979242712195282502926148747316877943316230929992066024947734332978571483412888553398696978255965574609038104413164248669984689356291682426896937353761647338477499430346098135850038235407280028604912764439205861505983147504068527277893755550992561726873290199674922167226696063005825394930470978801951945219127582828294632990404277129059678037657180143928281239269521229402659140505466426548979242142515321924116662631878846707485911520928680488129128339945734085136578346021837281416018177321258807973219465886584919675759133824357410125915159025346609377422838299858281802320118570288382639868264292394383249763609454703731049780905941696246712160484877048354370899258199370371952974254090933881450725902984907464556095197862894346027158868256053692864760772397208611069131332812755155571624540015208869707952148525561009925419695050263305729719548978825496293069687834296862675478104750490761522161594950027176810177255777404958905067046930039067572075192686550167030554498611913817622854634526889904981567578971628320060885081284351334467632172604984374646661575294516590850187944876665689231421961717318365240880711784191862290515780217893200748509211932812329109211021297687801296741972516625797815806792189389633973441163299744008997050817434196747408197773655586877380711271812577777341925825428400724609418617920699513160180583160220881357839007694420512712421589766750831669055258058659716403139301203530137042481891170683922231058133862056505937273005741686137890451289377198663780992032744826970244956353198536364469843335876694339348525198802815315759070797590632803945021573047046844528701298085279394290608613082850846479148730809939667799908260403273585935639750578548865109029244101977549308054270380332417143677949582644069174220688301818529950624562944213433371903046653326557299352221288542723273774645928263650690483761890995465094254058926505187402604417889471563739838010899589509316805144616989385005805489959982999699403032257380500953350828329980976247272554041402452052168394488727782789144892031732516477076724030638005636533438883768568239327605582659072826839252407253080677779894587026031398871261518452703417048129379339927922876609048185033401293472033212311071649250162617681096482242694682337562236501517800377366531739723554177762278068681534935564794519685322159829997418971215249843410123460849842863487465483800136128015596230401968600942529741854825747631085254151478869791640272654946161013917965033040900961433527390201171437548847310895335570503794091040649285065160331757718565313077652984668904543631874602382246154473258711277513769836675430395988110735021640068676185656800324173166614110429151814932254170773261855321385041593431171697941335058848372125216272285416083103252679307966336955169115750897167685284842134968247288099716418153719054275821983298895775975104961513862534998682832922824745605427971936852909515329512991432358524145745622104249210410077175373254186727221589976952464822885284569715534663885385926191864362850442879075492825495678160376913270155817069232702055316278469233356221526455116132993210681610573677440411558667081127501307571850600147610594752741163745831328492373696438901790112099674204195914849616450568687144475862929237375385236057663631985807191319796854933198578182320928527180863354140127848007164601060089436819839969712327835344266926046465131153743809827481158644862099737969561309558134380538086713753478845407759839263817335518140262414175337768553329717587049415945735248080903239749445735777627856517314398915587942101583367276885598783001780769711564269083928558802128944035426167093522007736502143558154128103839969016740216307085180840917165535106388744171896598656689755967124867573719256780815551518826888447463006101496465433650755972347578440829216713346713412663438558090928973313215597715072300578288815022962720605478917864732713772813184016468797911396505719700849158550219658306935746212063587040670625049340283793905176236110070404843472438595971102557780521509795989015109296257332016220198827227492539466372477020055570578160109576110388160713568852637500480521715414936709169437860900086495586141506049452934989495301630953165297260477631111372624101001488208211726278629926298620174772980471509327899222321029114740319613592446249024437664409413486163319544338309493479666991688370182626363507310690897227745215397393874567047720535625407488567817177583316185110414234889892954165574639281226328713480955286934970582974129019733899414758387952813218029012449254511871599561244788318619202672056932077262794446673168112511777032685445573497371545189452277875903520129666821768509793411233931107325942970877590914711438251594533275245364029695279863728678055031279305245397508450969741170509914837139831574620345387006893026710780440968775720203351813436231401254080985093679459453549725200273797949175785116831062457998383588162413506400193924706904471786377168880729694867037517003873751188619051465162360694101044364138708790465485523374422896618164878231410611907465178826353757557930461348907992235675585210752907380017609028394084907557045541339129725682981943634029455053285732353347305412367838304868335497149066637590915307970518019456545463352630262417804872120062181950338790652539355896142886011269054732061852961549919208548215971595554167147730431733152763042827939988873136981644807707233534239692355524671516626315716469420733061289339250069295363072224149540157303439899746900188217098328994974748862111167027179194556739031992625922121769309059144277469900231178867079402365801143912822404753571775616257944303998935414750129271279929457899047125278644360463242907250706850950472546853741498787037693572950914603729067371927857393762510739519194050843032818317132621405400379137672393887213074088871567675097500136307164459779434079154254563293742115924332478121862570388699498875121923187909534316306070091464208562605644497111944691368339490067434379108545906497777031465689382337763490167733077022534635672794902809203133670922403609675315917588155045364408527730354917469255580199281510504842228905620255043823299915495984936812453459389249099112169998169529831525932769265049843661383424674035809366825854553332271952127621039514944852967084627516721078567715571276859079393206766039815140052205859437028782158781246627003812127375806103894512083074467591672853672122596936141809247131582486864764959404158726138488710398096330996713648568045159491304395076531845221240029222457528393978652793612046605786639225910427719373330798665207144525799532005337022040720899733468595667175373171058939033556298526063089793314789659391644826678979182508188687315638022590820036583357584636602485957835659394111509010144826035121521209262382864558858566478092687143291094843359575492910902837870284267540212559656308915719677698428370416763756001776622034258089448509705306645037551887598702903073032480283237158792788456206057609835209814242133962454378883846051905393450508517581176307375515436632093789030109152334245631055163938627048988976278637646371419819357951037493130176168316220146146271422450756494958647092886568276807123319511170145079240985247135434187026610806234621980787892193883035547918882010342232760529417851088170242750278249805365013064077625641126385268443631046108747616876600037547117580468974863246213294209798103427951945945600008325353872822152972113952787747559896087614629825138013324272631056634095259548748257830580415455883029783566699994015372237964509842754262104426374771383159271857086959016380451308270550698443247971627572613842123763582379441331185104786978738019404376715415289207446947023416131370703147946097615054884572366759731888587524472335853982386772814143617805449424198055228318817334941220918571058529191686985929604515626291166624480928958436694307824239770663727548950289208318482209589820265259488671378365181846746226956601452444023423339533232797188295680560668451603228278400137732710778003610610238440380399232137514468320519774693694789326174550709565904044151212803862867280172830691889476688115737826621826118262207728633805501326711756256413196922329874639529869945589294190694586072949488803928483727415582259752235478980937627440280281463119127399394621069200458759425355963302486773021695485098315787679317125068382224602961265790178424980530432918367280778735121419238703491445839773733848169663904322436961596229771144824907776026792426422354601494757825244051374686435934061585537257715394121556518821211908112143089719591441304262151402726425279757702070546896379009143891014060674840629410859548165942157721663536344295558306182991225103242919570174549365711380256787241559184929192175306108620381736805525088820295728193528438758214151013460657134008071505696854938926910552184444063998693266726472525868402835122742527613524020000289307839158469214051439296295071530964714099875059320493313997471240743671359591476273390479790470107906697535206033365511575918346994176581322438914692766864543628803969765690293170989265359704890973773973342608714619219711705879741213255969302656779469942494761866899750059613784534677156202190957453005716739666437514220051505646319704205099382183492737531886868173433764551817255072435422583602988295432636173619175904738925382510539230200186154026129250695252580404080593273036439926158703323454167109178090198587269593548165813597250549318881432386252574573660452988711900351905764151014393367597945701579813363273545791807517801932920928993938045035245754554699680396370612699566413370249353070997088159377182599989993667001380090802375515577763101350929834158870987881444645650800295731381122785147878390471319229125444399981262608283090902663257942074818490951661211667575856999545839249339277390281957814899899884294977354248186916697102856221962604515466592688505236062624616699968772626324272360259515242313740480793504947551601231542006571783984690013798028822378592483794280556755851735742216388237986749241485169875802097242021581629230850512366827880685823578457333377214726588072453136172515426008078807604254655201894602883498425519655648581414568870684005630406274899210910737296359336121347228300904290068348881327854572645608205578073071147092620284438834141561911304370134396238886833489292245150205748645570800558887415191209592950231808785892328921231027291458290194990587820021145124950299989872416753115873571406224963274044440327519438654561329227234645832164576911733510517981830581098753137401815722025386590767166085581171617979986250235295495463242470787113578744825362882083054352396220027441513658113975121736508893368698082251791799839992425917163700003383724786979075401889885509794989865851075854508990852418027144647270594705290046649214821906430415871262057447677578476452771248383235606081473146655294104440410098631453712828245053307074776120286795221181638876571896952532841190198097708684899968739868172959257454873273993629673307514494832725835032456976344549685385063641204815848407451220872678062645230235092063008400958365261190492815589734594372328592975515396764276419184954872766120395204495813325334135676522223397006708539440468779341584449794958988395209102058957637114857807938382088828966736035625410368755619786526995734266784702452731026380375897850226355504170295830829290511247140148753255192415376132337369079744264680271734517901580150259379152319977820292671780069841340047398143145538830400961592881963876373724315391956173124061932556088339304015511734658033463115563423574216819250881952786990439800829498035128647612143948639983277354598250870636681511158611463021743148806572919942886530005896264522649170986670909256215623311226365507470646621251768672931182944915362055817992993837713731813392019397834802432028735974138323911159609567619640508845701813448112206983342055127235858632607370151625726754193808305530515841036701218342226342404393262819866769468631973832859757517248565416382530774190192411978491032058391189496957508035643859730389830048280203723639676343096030213324564244299045417268326751654392729572512220810266155952378834505268600889407672992176926234147921073662207824828592650710655065569487557043908592099975130445480934771359827107295847810010520400401189700042588278297041868966918437454699585955876197404878877973893054357833986486847334417565888231423898603853830496873073974472910217215606482103330832118757839572936224463300582726889708917313253612430295537369753829996940936265885186488276745698447198803745768698201129887051466835376365422170322378220166730836377010472463610003918894806159921469579607886380085044908912920273160613867675191192282571221313882510620471903769321061167436949082059358926650432284106391591432481081437132367339236552035222645258520492198472274120794269663745194680712836797568547956771870722118921955176848162402922154267289999302651136501151979181989814015031102959452537506285960949014916803170478340128813812389151248793188026368994027400280826041032597827075062424775130698789991159268910695160961648149755842564322041705995417284656087352913929806641454756927876025132503483897255154028737461616566652466227964321123008085748435949382184362538337942059253009850964960056327570142594621991622070544314133412269064085832538605050555490745644573154844659027710951361874629119363756389169074521439559084210642404768127918012487528031220891982342131683790388197000515549010755935661282987978030828642760424462891883515534689061199248187996946520267123518715451008844553575641595879552572699721570438995480230351427546295772830389798145535917611139834350744963065629589279906879820443279613197997527713011144423056512563548206531463258438299121816562614119208967666582338113935727727848564232867992940763166645502769398588653459882706265816599800413820242142840864537829074113681423776837631917799243876131575621091307466735543759124771627561317171657713046370338802707421737576550728655827589723405590720219440955638826613121887258955098389199374365170312074377271525867288744463377400858524978856208797319488640693164450390728363070329269407151372160653971173788667170098032857798297236622307515415910272714037846842002267737514626116947054908003211896971667411817519282910113503898716001044325632853282767824062345441674921071807116902807084383411186530126141352400886197370120849845370329752973555671176446785522039185451194403982939742254272662909029118281259010077886045526963791344547176457528406208665301004316716110682025616453722830310082945765207285989848344576602988480302856012943302135956132089395673107919331890945391354276891656001021099652336199774132452688147551199098526837926679531736581453461749678105692745064331919362342691362728555615921941365349225822681557138625340902131622776040146253232855248702165545063540660615367439483252116095615237666773586852792251921531036980276030268639252867599056836770934097851562995857399365356029870620426258002206506361784016906404713669833261107988421321309516382382721572194012297308964818967319447668837051842615416675763459070398676282142600201137071157343322832740759379603588105205640325575164943107669397144959220896302330105087145053056915629829392491167565932563855505890218171870410186264789384938043810565521468582534156657257525932174701530097882207273586672257856606230135869341754235439939200328907995963902237825453264142300406725146531815691067567803721763148042683741353373264981462126952525199575406001066564521680903521189189150450110986264849692436709010275628785300075455994461435612575369093024845556208162776260083440487097562670409561400317801634704889130043619793333162100001719459206480360620865601048195229306791937214494517483129934055771928222314042114854289210363806368853251418415741429278444073157284785816982044338047268578165891466612032450121457405982861769746357719485502112262772103298282849834181891319836374782640066225119497165865523837832592599022637637603068050475523698625242093966080203262603227592399494361055413615630026300476483822562634489449857696083314561007076449925745982413112814403373405380736519996402322189376573883386311533695805102788675419130443305982280579572306255025508762943126980949182793606015902991423260222056786645218703801291861446304510611096346106692476697622730295775992123767814799950681900922010844646406797688526111687946759454109680402633321734679859534608450380100859375453481397884673239464063133550568898016614898580916650679689913314093772478402159062246310046790272276838686746175988234634131870605893319518316502417211535715044699855744511839868087487866674054849823181374986992551369531262072732416164681529217826145141510483322391246743268458230793447549813403296408732002916390565593796181609012077880265397632974299121774165643784846688695903453199687470761403781805134268201339138349955769342488340362167562485376852468885729483879816786811224722065929331268372218657264139931837955142452951933890576209499567838364587902725850908614579225013714515194496196569830919656531661350325556281309459027619736858645641651595957522126025503148109303789036956726137727422131445949519519864872314712972304806283197596216120471562113581850069738644051481972566636444887026411563099812636432719441507816533878265685838903219411857994097921335694207767204966082968402509588020476872114952894297067296260058186562445020781714128405463128906596289944750247721665958686477531981905879981514912740867468786959932905695936134862776261807985462148709703407529502364724822573801842478414469755276157975957729522697934677118612978074341585093957454281378569434557388511994061617706311690182190503548876902129400692282459002100132698601463470387308396186212052642023591165622498986876964034715069356983648793130217986885612303675615363875034017149241198307941471982996197485378933151629508545261309018128956594076723086313217266875599005744772787977898614135994026052016721568756586560691718982644035062726992436045556784522043959598443241497407080332089746736052845514690365920235570082920693389182199831587395248512221959879701813847006974881793820984476588269078029682863004071861769517058100473848379230704244325622988826586929072921855704598804392582748209142313094279588065556785207136180859578558577349869278249347120292805497332972158700724703934127857734683783731871378184534831095064222448746119806933304193896927344848225228596384277836485263444076531260468100581912248271600279759457646605571244679775108782073770952613293055064761788064635255194245162150110414413314598127318096301654986346213297525304080654738068868339932492656448909451206870586345088869619158567176762573786950807670949613065298848813007496844652558972861840126913378319017009168376280993614665627872267184431873600776830438921023371758473631184030444503698436685091984814325155682390957333103358854608952450487436430702243937222232739088868940195715622152816953093602787394432955285462328046790889000225316169349815321545786394526646100602904215211898600889895477646568295061830539779057552594094668720701644946498933419629435507926982245428437124551014233833547348298773820250356253939791186153373836469576296422166653807817617252958121289875623940150541442399688000885013192204469258845667752392785066442815220475083895230800619893644411501982098007161414195397442222756281266624394271590631987844799415632138123655357503206255674362033646655624223507625913415303475055355388417690228333349933390487218046488911560343699035606205953967392381361975378416122693927384620101552025871472936550803063771078838584424876981079715887322328673198386873066639894209552196541457542109554436386850887323298419724085977654406249011412654043409163164457479683347765602500772261994867974028570140977652424352146473004547644115148454454036664765384937084136143105504358557876563276713099476232651779102261441916562366096899879738263606541758923642070962014980866884465874649165474281251112420012191045216884479914324845867017432778921966184298118752847944328641170962306062572159541254712840916567027369677967330927907139117512470787495864516526243798966894354718372270728125581718135876169087879276371082544388117589471343448991813314336421627865796435791158086704849929769722061679547711162339706770811482008280868683430368050160476848462428649734585803756451541931541495863439270517629157215429311678002910083095505441057655095781777261642899738846252260288110672837963767404652516111391889393170117881745405007799781378399789766267649634716582623917528787505341662913451806596135720932346105327584858692280218855971049038100894091483496862805550430597743435137667409688728613492380565407120387753788842545867073607133338418152436157384192068000428006368839653664846481446155306227122750560913788403425054798189984146746662093639156206456401973451729243411699980347198691960067851724683065382567709827326099578814645944290638480696504754767315001374721373894783709091575657554403210099829898920038647887226840461305075467658015616165661217784126376230890118557531407754970975314587963409630976807346452395169567202395700553635954141372736666679080902002330302888237797264981485559824220785415502841415577024157081223352879594155401739284088880252692923536773036118673277280748276170329919193084018460306739369101874634483857725112594049283232953057775792063970752838317943592906844234002786149335264917542914705105427733726574500602003983586988926833486847295507047192727805906103433930322551138466886858595697259261978517025864014205099237350842062415496756956500670446291490477763350060954022096681791844749257654042013253588039903139682347272936471646980028714561055414823310401695012039609291563870657068319206809885165102290214922262996830975464257178129118538173641861697895590805632900080868047494116340102221896715200958883001131280331049256552266336077081771535626331872423333187158612282404699745004302712821582285479266457555290739549776484695626221543553527679939936991833700843897467306077637726416383457075020761539334380212407567799204773558764128527878517457590241498232635970948866178511435801422457510302925541739227406588957011167313444994905906758661604450130350511712996440092072802608808257600015109654535149391823412600731758916108308931522058610091008499714651284853939597008839941460446362257175819211091881968096295868327105695990827732715831058936734395085655414662893425329605216589069361213925762905845192796304089895764779042070843512798659518987670440958497964863583490318032436984385999281504732186956533247345832234987015722454844380337419579894664789117509370247089873425246406216084596310628300630896720204356129139128153243416611776739567490287883638472614858344333860461869134742592862467173981642403473721029432257818283280861767579227156660636253603746699267362846334831600910985095195460908617136598364431659906002924363716994788203049090703991502938515117845139592814393734777185518594382729332847330499713100797271266256148866130976045589251752269477945088010802726381899699982182079782199558257311607876704592735053008552408455349088765264286465817795772289230583486745909596362684831065636082978362362909187401982135355964394732452244771248876192559388600818250358022548349335627026667172134682147639713700625661411056498304256319116839149910267924631596014698382563271621659981217054636765951711395077623171886779729795113535608862709247698950349764624262496846909538371651658949781539648524881862258929989455295969814947217019543376814097699081780989676910361389340343594319925232811292431772598064975732537461744781267260542491436557494580210104268678575248682550662855671963503151162645076959593023188978812513375734780783966984804123555560004104684845539643476997344606323722500197005412058287749601427419351794024701626759874964434007020457206107971461409303026307021216969390790917583625584809725520651545165615992317544522697477076386567796688254268559574583590116657610804272844198606282432786460822689103238996366756780960789862088503455679477441043597017592165670684753522470156105027579842692686238273677736888415167437473035897436087776040673147492689119282489812904172984577164212000971305900022404345202410955316044146176955582146336763358719228677816959646388150093257470864443898185149515099101359085307903481396436061283922962886299678024311484198831546991100202092093274933502253491981071020335231040172186574509837764027820594028255360310759469801169378050876437786829988461670433421846282265083754514353864308108921585730153278422563287022272832928307169902656442530921352669192154264594885908524197135385952011541356554655890808935834008406760559563343381018265106026237270393870704688362031375171083310081952995958946050001365156946006415081585505627579364960934696861821389143278196526377751241695953956217248476664505529917853106432982819178505169874652455500169226235522153734296225380872685488771140414639923952618680831760799790842754970682356328774602948261299838818524253673809876472117330290938625701131414064062820613630611561940305428302366433849534601941206257152368535569233521537503079954842129408523421050867945998649844619280601652589957884263584945783410616053476841061233209393242774060947354626946912937207211423929585175090515528386560430008855046891549681886615409268978385364934303998282364396395604078306116384041358304754462754658263119598968011623582310878375403389079200568592423309688310379025095494772011051915042602303731460864507432167957327666147064664820131764074485917861557827489233640161094899033984767824500882365453988288366496371881637561132589768394326299686081862437068859325124636297044653074990049428999055989879703430007880282951682466720307779416584503299858846782046944141606760849724216896139597757623622714243160793614143350769604537109629449800035023084466697464084583845341405179789593750339708001307700248012477081592978046233290219306669574168819292734271591447950612175313185117927781422201237884718815264619130814348069741740257153542811573749787935491465913141597616975679558947976606809607051552702779982873513774962711623439172964589780039096643523635343897850275577921211530996088542037317893650753405855715958666295457020353500355107783151494561688473912432050104690453453176143597844354057051515583753914083228013951766927385248395023413795908331976033336219596185358791810698016912153209800434493891880232240661243800608955268270993574188388999163399652309662640493812565756636440815983538109101096183591310450520699993858537062623625543228023406553857297761194359350175219398747090518699000436077438644503963577333150594591482709858062169613723843521967592355253653211249218579256493926971591025087150344174623697005281720769921538783997123196654753255052902128977884749806975951189746934255947611792386200781334510768708556369882801930935513899570345796698120074523878538183819388957217619031336722292287893546388837001549527796265272987837499709676231162275749982275140656979023826905762780241793991636721503855211204117139784919775447727234700641773933025305703267879096280421312646355001732082010514157918138919139605873894510541860583623959920936212460535338242369298147385329944735124487126027369454563352183412106257528298479235528935622893840707077874124116598826098221997311847800643591408241856081336444494286979376884139604669269482492175618253407780471814772068661676391840703196566675068812098072328420794814245373196606892609863633679674360936363445446720430137747132092814761689998618312257600645049460720604120904570324433922211086462200227275359198623516196073780727010596801733483557928666698447702214127101241102496407000131295578887197015804367173805043858680789447856368925205748480107109939448974626835323088288491697251729972927866927247896076188089675999185810016825398199771615723605833183294664696459357712704766207734381993605107752602196619429347242502456490256999955279793895942098268315017286864242445262523238748528637939075353802889315324262188302289227327125228625557020886641599791684331466985624923831668456701978997596536880493599150636175719795446013513526131721125976378231419561427129990316449948465717649081602804755290784677847796134419263840215082500911248439355082172078230610041040557742660750421744396967439841139139514220895289024861628812387938530861775653959704997360464255743110563371036042997050826205027982719605911945758687650870296113040279538747591782625386334945774105184665108851293558731204400470586403116314641638537861477407477958028461318484268744451734908149769579690774719699087463137034023694955653450309354881343170251060669266949202406376111628283806233026390005048277482171876012481757462716692464626035835790880407762100614744784204966089237374487513752249869604247323501122364082447722933043506549861312204223223141721401075852227544319057673357031043656928379627797399671231820541730748133643523211815219784762240840787258143908621915321455780152264558352596203480234434876125687027764669474703909370494395879268428342761976690407569245506467802008736546342562001589730859133416352606027837066946103994202400609561544377788758825364834449254421181180872673045871311813988694492072484359491829977779698197912907581778692179945461800905393591926453833613762203727316762349189253881034717955245334252398215287007826120014126284246384311402873061255708557539264607815519393555316432311272800934179767434289148349142954198381160877109201587488208484721897159733666303444811288051200596629558442252734906202799103338112567459646853228932777093764424940494194027154060038146844629661558361439418770891120173052698050214806889859846986833107898590448225053186944639867381771529848929657883928191248292908104278540379935089909558491311690177837388055753920333934042520723591189541049498465225046451229215644656923259742592823410446074481893093678784469973648850679822691145757135693552917645523366209031839967955070486572694991422854523566747388542743490982928462935689952956361589184848313484514491843380393541259626724310990679153481070516448974582596499056398230180779220563141519608495474730969495189615590039355452723822320128281097815295313734753282359714353567230413736630579240170321315014376260492989687117426628239013535469455723045932967120188150796430152864403665851469366828633920477337783729622207826512855093058286501588066741425277388610908477450002153055664959011810341065051995804907380214320298328266132732312955880613478191873777780769892885318622871982472714632627475529252802303379405924034352605504346385720413743023313954331922965494213519590218670500277037744799906590800502225778575039541173437945206683406345204888374508497366075470013742112602335526864937668343279727327938878581823155073763094421585621366752623172367356957555787272983077772760532307937189462394115711020740280073297117321755195810475066641060465452483101190079563419701404270697862119297797737410606254507824921476018960693437108424078413609090678686324724017110119101518268284289293776197293220041514441779542963745465605363303806186218329622573616559947841552176485156813532267833943403867714699453896156298890926402311908375669830168871758521904963278091936938777835338189513625549441182369632209253693748158632327007134177436090283112398018066150786263648694089104454306845771339152152873660085740958283252832787644195230175627457985501683042006137044554398557562594743156088383550511154794207035619821474317146974943206109363718801653052082773349377287124279205392128657725404933151066329025231144712494563744764517422475578088435166679137106492139832262236935162433818438206831925163098665475504646513069968141979138279757197215710999964189275144839704847605666944044886956718414685251991852391070515452048094590919845303861186567589962498230425017800769547214100531515243502366051507263323142564722485348324410242346803577088128826810821660305100743057855127098381476486905092159065695776098244781277297652825168537388554260191267136989004737095149654117069444957102995337477148173060083152614138458624027642608605258299365146052333080845136909940688715314116569331488665466593901421084896418551091591023059659252727530515011993735756484402270139287919901415301867388651962952561577513042442938412815796418085843822872841675320197586443408929368326028076189460688039108066959291527208165326748070224158924782917313274687443472948497230972603323331262851837968941928065294570783271755359234024523275812804524645671791715726074806775143772057287093049606048190879185720170007339993524051597369599455306344296694591791486864282917276283104889391513867023553464211584987774402886803748545227786598554969672301605285236761867896776135846917255931075168706060836828748970652155807149424205646318414119209473698984200599183457390158514470356501162398562870520651931302539858402963036543910882500019505771638964660767662643472741741487095348529509268069924718283654382760776922604763001858480720619302419181434263987461343008939966751960728218201074860358345871347678499535524935642896150801994570836512418670109545075700145583639126185051617200629718900126402753638031422851290314723461498544107306173075390151241455677055644012431695644549479488203797785651665845274623002127766850701935512933144246939608556029615031176698990799689868049833291206534704495529878866201976590731009539556263044024867188782315344858825826452263880831123648003291805360006263181836465634106623832658139911753260698725895338864187873018054055630050872411421689976476403726180635218505847980493627724234114946416829084710917487622835818473921374203818053228242828359757256754131354874725120673579082696486004510997472705775254356599936871738968013628776901823938668051518317318606264771734534359590244279017069097604930748755800847666629263577425436817380863013143076966691320815316388208766341708202299818998732629782468429885683795467683382996793147235813002746513831912269641382448462060496839258803548083354495962741605998574184690892833707472170187249631271481128556382143190641040925305227005056967196448416233147306550943556003256614798258848725614286782068554620766459172566162345132128767930650158180585102676699559343415756883603377333281908235394868057102228522232471933745904174056595456497310675813776047557817900242263412318032879962993767585866123282944026657637083020353102310314119382011742230614852363665770348674268277087088326801607148792852402771599258456110617199804298387998864008151399303529879180841984274181428865723647843956657587586962773445645606500570417402427223477279517503594590366783455864347679163217913878641797402619584991471736435239185645402572907676853991830866125711637382114557167411817837248188685043209446208392586173085756926455260046428282652602655269387909500554989492638103120888169802835089676406778356821451604543975968674663781354280705525441245455883236472020837670491177946748365397505045214278078329117355411328710010942250172850506090385654744436887892781859400702009382931028897126959530435826094816234844076730410030464120327807389569995965270984287867711042430206590493824597409505715588075659826414579805752651734481168985013269618060226486595249003997344278743749549165090150120811714920406949802736045459235476263317738474286158099079873168889002540598342115387633493367317952473577733954301400536775405299143410830735969422314710829351205473190902595757669214941340709181213309671709636054015658680232715146975776965907932686605321712374414634120592862310043682901557643232673082423336874989442702146292802399477938166626086655043459609323440741105158924108883312981999598150958244338530949420623612973139509041850666510647204828395512185144321260262962067082763801287682978801252602034378152487284342384606269186431363778308246178192855334813164389305964831225925215553043078908663641478576008441204300947163452346106655269011080338345418301794199321165851877182366513202273370718859462286451161184442242666589131283302975991739574174667411707514583017478882256557810490439647442845144025671787574131968919407916836449628632406901769508513548702201228987254913458157892888516493044087015123183780340172985520377308475232844132462444336734486261514044473516294726963428008177840048822539852719274315611877773928923383545693918913650763544112759089958827788515040568357500237326550000854123219279349079523411617848356820303451003595714856518433368084447817453599752711269975642212732034047316214046575732156877891806688431559412248099779863950165017008341123783416321458229982565300413883480738718015676045407238924850344229176142370112794674822633373732419906327168073550046771422077508441641375614364176800853325401654806549795188704176860401667571009551777010080291491267352491866773121305654620182681936461119926156215872550027048776917481040771859391433740092544332155119796029167947772437629257540033830787081944465970280248857005548089329505393585014777812324571541237720214622408001364706605392357683533913898109006874279641317311429169243403587349524115005490237428779290400402248154342240495271665362182480997806869697102283730940407762826851210609314648383417337719701795367905044630626995377275575463652435222113268963603141872069734387613870585874392402820856320074904799415667402121020412567145725322738889968073516211875205787827274310043302911110441442482247058398959460548478864043235581416458412786472588451013641807867583317177084796335302204358965418408587771972092104478268539324396854592796358458916090663027396731576325499923688628249463708938544055935883128199413507440512633748280877527487266626066326725211677556880700650598781403260273820288648396229384752946542524897131910577985351861468997249903629796982354619334471317681235190850643806650123553982972280094684750667118368613177944853346745508798298428762662851630705491543499963555542244075169031049678441389019919317516816086881133819691523629231395423854901277126791339205471698023125590370256937839898771639713245006468108115866459174742259715013146309102195559185378774320047329008125874245844726221732597121505109956936585475987296121170107815982177769030167282965804905776912045789111286798904442741254717236340556790383348276692064042008749681445755978103818774013122134220222477369133925472916103699811406255962996429448219040662007964369449688002367551763170388136822317969377963604973209971296083098269444775492043409637530200962953723424490201101754840975371160504455371342895000955082007767268752035793690982630707193786559787229722919065035080050148198220513618735612795810097483492157963227640084917523935498472798137140538897644386383645138291157859645139433551396211761534725966968255721668168738482360254590355566782107565738231980820938527414423515624344195565675027920085255540431092292957275963729238507806173519807661790978024707987409711900728850849219955860038269430467854650616194563985506380226480571270526149809129468326110423964428647986214440760618935687454176289707275348171175158247040998586257166062976968620585364678547902265120631836627004742165471711799908637744753940168106590979391100900408165987462114609446952286359916257623531426490654179523317827288028556930297030110117179864742736738029155524036851909397305994827035105429727570835148616230590322786449896898826327984527818957375091321665509125132324397469811890318269608197359368643853530270846753035168781004777396508904157205546774141037723675504790813478136496484816246833155973594926383595944822251514405106347601203325489556184175361458094510930848346928493398011272191999731824620456719346275405726248701304255145862685589642960002108749749754925314922581219703377955863866077892809111129114126516120480706494196642181621608024857161813195007493834562669310909665269000675076902844977286903571629900958341825326006250214461667644911224909337083942819135437966246199927356743342551326516956059788415991764549412874371570121496802577506330922820161730794889270656473752448734476116025542058255506830309237934442816391839563996634650020853163829273304602194693490478093215081906632622162389237149407946520901113623850491856198496406837058836990653067524695441282546799080690671452278761790770406803592722733271164143273593409928087493840431048612521728458621993922714927449744147008613613228253085623430944616484787174215438351170120861038589643554475187912376325733193941616388621229982969492518566912285026011365044645599631924087249180874943440574491239297184413704563459391018014709239004875405173310067405588548013347977968171448165951805605625212760639988712304705963211983668015911797250305970470945290139358645622996135035079547627781964431176808359327224236824623022790485945539557274975740771238039849024025945554923651727222776617348421278957600359253495469779680393757886067724046440950022923647771381649431763209255409579796772793913078286584832523172546285174320315159473625171667544104556965900344748252599943724767367906047252834664960154694419309741131268993534919991455920177590157334866399127772653533989512956288626624687001455172033089558064517883484781810895979819272767558220543934742257059685129469526310608445518545564009119975089121417257219350380288580969732507260292058524951988217127273321622370496657783142358282880771697889248490020619041062574232347293743624348909578422411891270886468179852993684079152199321842962091408068881719284166292581204224876427411718704054645718913742462528349159058948324827129709660696874022852764587021316246265138207954197571685978409506318365627261363552812373873960299216587489312257415012901312465640501341920861522053177827819390659209739958383363656421140372271093172163489019617477102004719760263973226692550000368186247918727110547464754453663658705381854926985534062023213062704514732213953525163297093330772904812055980519817189466355406902646852545226407456251823927792871430947702670573873069093838541684919705870244579186335153458401258907019869527590980777421772644119134481436327069791889828375966593757481631749100590721833520836929474660880862021975607542827276496914998555520927774022746986312611370641993128391099255050961201837062360811428711197532732048137027034322536968513569542221969748546717949000695907514927263148261898021317579567460491616336748650245170310073471521383189380621277939395132763670477692667833643711070799804226795996699689736633008563965294607451072590528355768505181310476867949140784865609712219065563160593644409161184391262537901388440631390522230231643342190156211342493169492368194758581010591843801112245023519388144823483215156840377416588226641463973128704073577107435232711831025478470569595253420217304981706383717725536737521570320146516299552230714152734174587980219321676298719928948504038270384717724155213005146261693581397765772063047203148619862487552875354100039371261109437414852061160406657681428377588853275393594563839695094623637704371328493462995073414887624792205790246161007492546500440849394250359570988155944304361662375861869633740295910132249925123227374615503932417032025241981805789519965391290906368988136125974068727540407509015621537080770311537596369785025377263466277316548787187500178077242510365519373569094392802467777625499766079636429311695176565471050781526299121808789111790537408400426450898567084717535522718585798416791826807287810697166301811734206054610901283649340450293696659053801127683005148398220194024685127407163692932945350921071165585516090024879041491944739107624614942650352837444361120198054405651758689675388479602676530356193446101898260983033966424851420236104699834851770512949144671932292145073317005762048549734828105046814463046308961221272455337003871256798578035860461266856882349691591367445366393722643599804463346914093608792634106717041241225378470435809728079424712369894874006627959179102713579992708572459073146839138131521394459868492989016096796082077285583415078012966409083527950746503187739686226145411944718737008713385350574688932815834862152361077410389160935604657991026358953107435877562352330809598171517019402117041908494831938526201348505727248650150174319360799093491394945668583100842265244857095963034264227085055422362669876208276971189895033152633950773609385832666904333854290374204938336025934897784378459971941227996043568895301514702780149037935704747086496082788413975468224371957719492481982398130352025788951672883866385403792318536711049501046786430017973432622225105021587873377483137766961633009892744669156547089082845920331067053195401949998052113615988252514002376546354169304095578636674773454044143003983032356521383342822787993718254867496779129808904898924838681658314755487534332122941565975690579691887337094263818459181664943556654431971089393109712592277877769401104919955486949349884285656287159970947638923932562492888962115650297519730920837077706326487716028516370117383563671124894253670586462575645737244225221908482342591015736566963255178609210808067603913258990403961202398749100424924572054615736185183352578098887629328270213418415052569884181244832033546904718844078074499855906460051984895847052660363227690548113631690478667416653846794663688342128630075725999235443166199207417843935589699566860465612942597143717104010831299560523018515525621664149913438126353633833748733378356654773185120104800322399519991538780797126013963185758059277691551401761911007681982782360082938192515117125318156378576337416818089124146256403220528690329048346513792212188510982415585786571484879786905402922826200162709934526639606688036583477275425274633575537021587572467974200673201903346535855123549570974292539604861247290078639046248226875497722419773101474414793904952470593966798520578759892704920757330707111065960333506042754771815831759860899642970662758830346107536844266403796365277715527571613530951943262267529943135120678736188971281320527246051908306602313199396543178970660109241363830435758226370049474375441844384167965748709301360477831370634019885694700986816427740115989054289910049796362325715264955105975516812954150921642322026055787327173201554603811567363450274872969763789023430703027145885665288618595507104209087672817300750433492066884230834680533627758851412029709544068145101582668773094940409164055644100036395721587646763621364497050816344550522004011585902707783251676487906123831689009323151044983846185995629405886459216153565554248929061195424648888740363993615498610976446879628367972673347197740753850582727583417860159890962593731895579204826119235716807455663730313833243286698114152698471286354210743829598471935988172063835503311174305299066833480294016320666259070184152073731448719049889086927181520930635089822106291158711624028086408777024011894321941212333741746015464570269081554306436395386992722515350764834526176396129850219687353386706378683151195180859378205883547519483773883956145326713745946756015278031250720658685342781136459115342198531056995140875428891219550307766504350561090083717811158770450003569469543186223951036014459816518546709336695533805836135446078750966531143360335173189692167080341576694286985792700366836618302287641537755167513356181750394791127603232949554551262808998904766242077923278644575795493590280024902533189196835629266618522018332006879344603857562763437304157948761401421043772862222111796208383691784336806074938183486031313637167847227317545327942456989177766723290176838713187142670596021719792438518860442818033992065859499729964418860352372241746913664327463713584094331608692641610365079812569219785259804594280372997904079078496099139982945174946174461856864071975336070145213377674877816845606994286893344562843148950206322923440072422997197234724107026230387949361497806035775977376184472102149969478129364116686517899180381729746284952065985700918661700352139872620403481130017769324369339461031861147214270061069703836993077216062184367046093996517711956370355294575106523485444216430918869550471117923202375987070000828961836062404328765075087396854159024178644638423418027254764264616423881515327355715339279472857573575767810412155245667260708040419806517404850956455046666536073734604321002221822477017863279060053456421604781676230153404934985336687797823927134639692220789464746565321631101015951302576376267892444577885227305153998350381461396218734280744168421951074065037189377660742935678179421413459208589417740203237982417100794163660898471521393354630421460003472289879748796568929508511798074018130106552085305176164848362422825815317397922676327828615593643106926945787736060714980045357312628204341442629619404745161711461415668183804199299231025400215045727042583318522763005826995044306728414402904568803843558603315382721088185529151455680914716600959410948289780868846953551210133615352795691612311420048359773328272021284551057212522563572315032460731508721465596233787994023469673157595638516689644647108441668807261424376764352663813255066863600543472080874904395897360494224366257166389698031234889265158376033177462076554418574950885922324441961628185780422077775538684318415625813102872326664152221575562584564844289507538178009719907517142073215185614872691487110620573890314185718726769813535007093986872786220443756946366115658101620623935905768118608929995090486223169163284776046551564357742991407989287263350300509681286817871044784186569663709549855630984997854183761896895010338956631827292920813542412692962540870537687445184251540388139740691011054225590656034423568812895484799913098534107278288085073040984792423988808452346270685782572757600835208981755468132677868053812647292257335016540732173869542419146062764023877811479560119678927446042817036925104238385561946617820445132101409420528584351212024609810420404364463421798806703729913385612417008852426314761071185839558017329736086709569045871368207731874520474003823685612093911905209134859941898777425550466414186666668758185458612446693542587148354656860965232498711638789105956594974547445453156671458135484722874116201234105431632658724226283841516126195423589843450932735709846499678741407688406250095745661062489415475353145024699193668193079715205405681571690970158165327322962885950578607393788872419766736835517389884374013105006875101660569131235671609714238907915353921334745847758319726950029754621226983862462462051615567865341753810257049977861670524310076544368307628613455136924939877064322341575274825836774238060404269678463380866807009571831194176161559661735542790602168078865847070418871071983074074231024910384812686643697965642686717395172098873320133590195159595477634841581902053743686448263422108257441134700765718548129459060624952939659473474090091657555246156892177125296197452824697406517230309220945106578394697495615391125462854319162067976536933064335943089109204824097595419110776741168275787934411559033121979131531147180253919153546083647620772543810259374181434121652010178541335340039595600349492042720642072963621685088090234823667567311382591661828114263525761817581664456000254293497585131529992274681705434956573170927500862516934586944027752450260844347916346330933629774166226031442774071892280115408620683714555930077134453801341203649252729407310533226304053957768034111633490436040162506535735992198226234912700199258538777110225498722462111582488795933710020993755556746278455596336477519825364013511631367184647322962491012875185221661894012478497810220852720116793541182915821960625080153761788566497010647031444327892879686691473948192579071478944905275950419063600032637870984501784391293663030563204654924202500020371619638802409338860333689660792355325520899267935610010952505040557722250432213834002339586622472493919045746924313834640909131270540925756325925631542329867595660392576494266613448836231158618948270433368584143340641877562065786278135164975750118426735366452253811347699552929695556335095673853550879394227349821059661661471848093816613572483158255094661432053325492613374023074478629378651927137400867922362119114255806208133862096465274744236473386869530663961690071524554951835981456013983542315115907827848517932497588920095710406268354174799976725485014613744226987879196850403428339967207054238579592612721304207600401101164846231597479375295220014460277932518687573202879770877639759053306805238147785268906217741169384188566747873024764726738235778266659778532032677590881800974273634660795951899761253051013485801347031458263614628307986792276175225210467375689623994670648728646571217936512880238266578574117796501877077884461930405373675853220485287485569043329797895387383727613086028431333770997455516624306939947859874206056395736332035802210791920613770577661874793011275298714670026231779188764892661228356350567970500287155871990087717853272574117274187012768939881889308254639890208477758184133901402014710717356409468100756229953879342504509657239862810496781622640548632584253063011169994862094233066080242873978424389821454726689430605286285980682282265196709823329519956181168643377495882634975925266570765778729791039072172590893153865082312748445171387435617468629213303302143293954532493566169053172963898213278601031515463571582940720916216620410305958686108464151966143110398449577944829149293977618306534974791650589803778513925430651800780955455016257632345152085845650730594486822212439831832989785191089338540876639723341981822443155055161997596939536673170329266832228496442136667681708446084759425181777577580831237693326693000458364385857907170078100442652366347235188090751788763259925661390045507252405157381635975196034943026356551758421970502375747933128477742039217220750873851002164372751284311762964482827776954495893804988821206542370279807236277015977508323369484504649165802352295965109071227428309244877035167821761154797634800512261222232751643630895611918474630438952263692929131290283207522081622649183075560780577722988475148601316827357412295408434541174616160784587446719518781278895177667832861525045688401993418257106310699744629949963871083540034612819732381538188143369643420651668237387253582758864670179544736819613496766859612698692251778596801999301584924364853243587081280111776542476146155108565883969042401981447268232978431769400004794872650328553220149351172942491318033851968072453794545990689038916921655456869411614240720132914088997519646932909854740009357067683030749684060174700916940544548584408240676125714160973325520582683323108682236580485461589943534105493433400179642461084884951610453196121161516724553677393025544006034639447667511933953741758036012971949426038799292183262790794295944219121570803985528138064389223077529955452181939751927912349774963496607612231521537230758283072305578247591882511859452031596527554538624696443223737783695461163287305109121069595743071511767513538570277357914729885057808492207276609278954608836059988235801103825663832177037530537549056415367581411327833225236912930837022858613994992772695285200353727334132959207152913846273144182968532205749780862992135662159472854221279777558372310903208455835283350334856390652914805898933861773607928658372112854783239588040675042823129380242984897692482182283084970137618385701827681220136669102768343032332339756640938506995915814013565623807999114595219937206521535116959361689331353210534330052602606999862175565878772948502388936777522779311340159318553731574957734022946388498575306395806108208696999586350752112795628630745079474058585328365174093074858413503616694757200084652055060270360076622787031393639267008803721135963578720097620958255564788721997839335293333995189513782161758899732502245824027844992686446341026778399140922267122557697211112258478483107437370858886227269372869123502310920141462185309660112173997628580689965254413795764711334358034467694742678508874623846434477688680020263784430590030716881525464732546918596447468550375804208522513225297300393418416439306160184856233828713289363612945676791936245008702952500546640569313233493904634880680171610650515683331322613946887794309544222489295222249263379578968766285430613156439548900964132936490000418688056142359835572477710495212369090896314983075574564055697771508679804725616750953648412938342512586017514958908437606594534533317980602851792117444061998287633458855436351195552740221041087860201834305693066759527904066260958169025330588006338375305789839192496623974713875943884950253757004755527940350441853283332003758597576061752188201836243082874472946278949622902228865680223957390260895431252512270209984593193468256347404607947364630385434824686341510881086890862844368319003588471111310357357616494038757333618689320636385941039281670296310540540792532287686914379386664942990731511435566513354456017806695587960825391525539591535083597374195608005684339397348810643595294793880273545574711813400523428933020985721901207189468569500772676865652855792586585822307619770796531942840042404861410381808529815204629077151765303226216138169849497898407897675037878002378788586465262668526043142091237430959183753684673122752110009007117809449069930769807530281486045288560019284705356078218242152972395370466030845380038189792505438828021994823112996131474698063266410942871860234557381207740991958094429120101758740158669528040019305955172724441621220657317305345531511404901879452666881529379853968845271940587632945451258577762760832241501238701891959129222958680735739732574071365673746487434235773217344626716503391681080528587801784819231485743943249608826616758054695268320731521796615654313297902511277156572094368702690566837843378445234829922060618454494034985094342565555585177661478064506236869671826937668877026288334057216285523515005400224869265397682401580144143500769393383151389364811137889384020728622928219046096748499292001896831043763035070497708014627737827511059608165913578141999086497680560170493394144502125172790897729513604575763046272006349981682157869809171338659827841610520777617482409239721730083055867866057290930950157957206343254861059993248535850173392343895321703922054531523779216122617071555313173717219465082991607734027551300640486524072728615638215167379290209124709644764552287800645288665691463052516094172315646666490746194029046263721809399500405360595805744841925923371902759044420129967562899045579315645480329120769149253078929469278563030129244757437841986679076087002221682025807174681307832228504073395293046386068034758272778356351722273140367737366016050950498269852771404351737416471652292335042796872800645912071144808409095794144832515258167847750245887096153114712182160664579169006204680272681363094692345059352045323970855574015678765549778146018907694889006390364017754170690689004435676157714676266543618985628144872605573922557832240726940922564843484734473119646945860650111681515521326708504835496673946647714637718921340791180382728086047581688840565170775422209088363652917262210189270276315790289808744197282158473448364103518942804087600678162968896039870468259487143803283994104291371482537051800141169601469630603226963202054734412955674683535661137596464568984716678901144080798809826129598172030229757909689350577290980861161464653060232594307586625797764339551751967656798190224282389701523666172511034122743200703260186047129965499242243732849310948486683305793212353978324283149317243970450836736166233705504806636596040108668174401817678953542481416438709845574305968218326986403209991179000687185430009955547300345651679367900997498776314814033191737824664980102004771908233924123003972045164778042740224763463520343976628202221352600818020674600734666328957855656104962635336108983817522254155372783225595252381541165247185377150307791175789672583741898520095229205710119002416447410779362152305951082409499903145089600885960144177360203217669649325906135975203743343235408952150407867247594118544832815088238206407777746670509364624673447811973535419553078136429523959748033779105170560851612562753392502008331218073793531307653327609961881584993626313788034617461926640003784126311310670775424389907644111831490512950791540635797633149581647164397701990853042927255480853137278307798542829645058905032125561358026277601100812499832778367390287713997305468523156775352958029230746438127384217165074546415611909808542978744705174833260942994002337045995515494862576721349735135483445528475547169702780169868551932394974498451000693680406049935825429723813124888766251967779317987530541077353001442955397498652703996096223348470856331830112239570046367091827777861298698691677719766471281674023372410469926741043185605013882104163127661655627117213196799566846258646994166859429153325015941649010805181538280250304718897708228251767021767226290967132104061095101808993881578157476214023916779716277458414817543369820169269055761784638647627168879001535687996055693717042867894431657665131663979912814226740468620092811607367626060111023220909426562618404617958617013036375143661518063439679266688268819594666763575868218844003785040423013412652397817837964205254539047777557347142861804457131668510601247163433757997307041204613830417114334862886446120987384538603986122456947808512880933038592435633952322930103835283271897032721632397207171729916682881890693738876297416824522718368305312232732659858407541496497169538930223518866256403683392293656947774841513142426202841338400849571399342750771541487612172059352828190668475330169556994462933906621381584755455796926722638487516711025663731614174194749184042411300739035386604867418836599930886381904700874064533497736055820259235719417635148667999717730367940131047909707220117057269113015592873195890412339672814055195520408383933457857750143946034883142733890318003254699013986681591922393558052503361600335080807677270884857840664841224864583780576218527374908941820958881344528993305629220142376171035295820217180417271369692710866656890457288044508695959193772177731206436569578887294969199623734321880253429369809544980655496634131905728023251397579974561878537444505935885882346311530705886478727477266441238688232040765355534554629210610962116166706016681490905337157433725006765005622337142177977792062754786776909333579927629323144515703454463598693612203709969388589785554794511056528737148592716466303682057977557454628275185347277536151356698009398101521074118698754533730076550762386841479233378862526979506692302598573679198506273912168556517399407790267886927852262413613623198056459761848178437918259017520676440573855816443317432242094258283393990748649036119444424019369633039512749166504060520160410102901633354220169690656426301218492642269814109756001994419079401679970430585713253552376284474954440554845701490831870865153558680563746617284370307004391207565785290330239235577942693213600364874529132489438409735802469918793873844470989587957335433303888061845741016112883155660168301544701344538628280718546072160342246156429763903032815819592491200486363956597152126127614920372839867912323153899747586074109649149506495512520806157494740149641183516915448541721034216495797496116672895874859435545498343031524246733258429996079271462042616214540018495053927140227295691866540020925343209195919544702361735583702717209342422585670845251022867522354191755044885001413296576368675980694660161755346209611351515365346987650981182410538877939720054831221754660867295768068054672997214593655757769452873415663747166018468725105053395295272623526862528836051244656504037201420163551628857332676246691665639648255756039357415528978343743221238795087787648853802458486289749533413743900796064927453591882157748506792091815109300574577280156561080350606520891581479162358971803993242855102005095272718942184613892253897310297880337932213420539080832311095398867304386415012762074015863711410626915804271373533713636929162497607515772161306024589861948549011059362670892913216065303652176183993932920424513172145549960144892111602151973746971015673477768989757385060389084436773483491915529438030954811050990425457570425450953247010384656759558705007695760786982057289837408495612554204305556703049612233493482646425967825624784469609475256047494950498753680675047459253156944638768066505544847333188092105769213791262897598984536189024895352920091234843655572488548962792515960194523733528437679289586456259458061104265540959431175217981148363280302730150233289375593396160434440390290639847003424762421449715071234004390320744129037308450731747631843631226637859415158223596286673591118059635739536146129482449280229661248754471073597492368156200076900010146439395601623276073391916583468043351825893841893039572148463607436438851621390131753543047925905243683959240116186436589769494029980055787358121895719409508799552689718813276106609200654842781612112378155260383554351372029232796107676839204566334109320630783017906871736437547491263737551180435401314251766411395533407227641957384079481946636792108901185740322830521640427558486708800436899280614191619602187184449638792923110994652525782463870189225521919627424977611204281115139192708439228650923408247821681617709506815322210588162355445009746708473997487263474208539989153750199793392115156336795143972970867548686313908504748367657453629469560141082157033079512551795333608812277817941655773560783529020307138426961973035471079435205190668723409331839746488640944338778304612648056471746588892576298038064471360093433362291777064858223952496785673222283451828488595590012373620330779322072782483609700995764637606207934317976554721460623433455707104410801470692678672367777743364219887495355187362404908310221248873830488375808722756120430362546614093030294895293846853496327808975128472126279456295508636716512681148345186160917328071091495233706973151815362436165473379005100221745532860963996462041809924354891617225018407092090829498322399466273096926953368439367685928610604188848643276303741590125903355285213483273593794251183561298471641802793659664694825351959021747396158996210003781771427221287836215178076436569458796356958245818473779163351020288002390865625036788324805613482912659865003044309344030760579159232133255945381888769006591693509849100147689871831261162350157778984790693352796138238151912732422081302227785467425822746028714056015841529709951501288501245817219547981414115688191196169199144196842303535941808659672333735544288869301164993713282192405043092098604471066867781210088231214812182608147755478353702157568612505367745272362606013136299490909413884700543623570288767865729957148063313419419625753618303863322332369981897885350199569694092999992124881750733100925124136236798851642563781519982713129040669089907736468308124730590373579278596222853325896376406682449322493597272550189129769144558064015514438733253071217677825011679803400988210407393010255044016207468176406753708161532215115173767880347455416905897773843932139484573716118523584952135549597141400398438580424196156696022226829056626044172156722243522951500835512175332902015718965218164802077068437418093968417236568273316145706542485399949271243985586256417515363648145130725538601132586544554786209653569892696348373545274414931717812527015109071045625074716673164962579574037867288629777687354528044861232177464334578888179185997588222733517495185783980279765122881251853034993857211714163006422192453034269016678377171163136356517953123923130747567388432002163986411797435941938839513083299757413223431674335250838956704590609384018525466341757663977904918757736275698174886670264216014000373282395865541552619150191352044659936487536930591024830835869129919861746884738638661166390599710942978182097168627028710459542545619877344111826589143011735463979533709347188139683003160854731587990917759210366658086423042615880608237043955293989776419921057326628262443289087602533292770290791265644877169246074262820144293970957028204196974489914523501970073405218740041793621295698849114656940742093883722296147612958779024121457196982777439938662017066118208496100566629074244511894045286252681982910234914289783021124152881438424377157818651930398613870654535852038598946467863970077462966911031350032242548755330993813021493065309666787794245865944234404598758574941784627481496835719683815604779072714911963167246684424415575132454763962627577934331801270546561956227148700225004438015027695370355452599240300508014458502602546633642994413735664150459306557651431124683121649781940542405382013640377902575485912753920351212333518687724765860873292568388440515470968043678688230075387245235036068637272156400152782861227183054603846206560297962884604513828088798579417975776285404747601875344923180786851202395760449903386847853353871303663638791886490489079909823359461487186594977600877007880106176759810037154477238059511501718361250073370828977573822205132490027254416206576737015129556596090985037034865592970949380586213435665344771678503578651376015449074702206102067064048904851602713010632298405044084299286497563545600316609469920331426547198586810756002860244228338332785190156162917014329713409758858593014568365572649391883097508746281135248138204848444310925636804080172247694240424249285501775044187846892774790335123462834867038697192406860933225415514623473569142210749054807985871928285444692327169951920219930928936882188854976736582284659245981527754689510644212367718680802084806167968359509373139422243195546899673487184131830947907257585040720887787439064379563708768283941813835907559139450566717397520642406050799538541972248812514796868638382121724472038726276377969370951986379534119132277000628930707924316041384594539532163394320485877249610279062261957660428884882857016763156117547762117463396609247564006749611487158363612047992507132566545688063810265901509036559161066982662801803652051096651757991495769364589860097333361505945389814610229884290867164696896824027880225841589482894390347878778820613708916997350229920384593684252294438166407238185307193152799357758228620377143256159785833182738684776833562058011429160041703373360287322509274149698936137581051668889536179152970723516333525393527429599113157567981377396828809376228859722956548822513653636367161675712637897197261729440783539556539192949564883007775274172037711099551926730538868516438482474385020177147954956784491435483937632151967524743296777743872786765039183397756312280999959410481498299974829904874334010573682224062172431391898077000678210297448457500070803721869286765435195412270247247797221531133844716977092359101398295229042525206652105718349991112514784408082430450126219597996188489092795700075139028467113512839338513748505280708923012333215727267412323593352972674282810781558600281545317756118168908434538169896837602251305602488836544986444847675397238405104125198126686561486193952387181769715952754462692877190574813536879094000921945223928933691637883860036968741105250975314897712339211441632254586468819132070052606317487722867874897009263239937528220048485816232076742837424953985452527981751782916410719562278196190685627696659810964575738958321805480780084380324377689903705903724828046672436111483830499413279556981483979342135218604320696980990845101649848408155211917648361153122261519976282247994505681020744771111076773277797392938324394456855251894791124516955845400729620950485600740241254383513240181630173311779475982935789202691439365678995259360820100057043134641198383372261218708254560775934545928707780045320516177393118001709603702861622898960466553285221946147189646663319317329422928914171510553534797092932644200669216475486386874653438619946336771622770797885327692353772097476682101331059622050917572532725829966233032942971507632069286193287464042129891839714918533143226721856170341625912009932611618705292642155808951959205983588839232009373735880738909567243358824846495966283040951359289731573341869607608972663806644545119946720760745390161933499640970430009424732798043096713176966042325990624576340822382784171927827979671529102390586600956364618063183245296493344375866033847643692583316856882747745941559139876064213742263127522003854098114930691066585691496050076013038164251117337336614945903218174427421457130265419612505105635823072672151334446103051441699222499377965998258514206433964767436346156522298976237383940541900630091455008208987867068290593284964055521986666586661194198044192586213026493023714751012417063620016585807722717083789971485979278476278578096967996967582777160617121078809388586591778746201724256968334827341467529844537399945612285635208502141697963817681344672720853853941020733524748021574380197134516582559612248485724802932309248121081359607586581466098730922029276403038004984891816537382897644704592582727081207165010666453784335926566557786116155165007056345339282171136477493116223821961968448987725821637488145432070566022968476248001759124780117623198399569971341306725182535247135664531837474612084435795005066183028405536501201897254566903867827957278425319694475750012100747148887593147805673630554659386153383461447259817797532802334660925824287721785031380438456570679517739227248926342110548586404198748259820673895330974253346699333255083167696738773180906609220491623832211131155012044479981939486598506556679316143579286918690354881793492973973125663713692575142137194008715873872475986669254193177306601920620658585581581313796250573007335169380036565118116776743576401365505276681569222350551167344183895128832497014332801971645741559126501053169704171218816911765067346193757508178494700434697698668103832641996147346329849319253132307233019854383740826237717637334882303594647845124111811828498366454847272326311614952544071381618357239654136004263189357485745743772149449049092946675372941686496710208079414745826936623262827325129464896016334797057847190111500834728923644099277634826697618813814466596327462294593257236731062846483332241909433149587408106314666205823379398595087390630413525776907460942986293898109422691918812032909208597606461512444428071015311252872404701464050831455758389406740746951319370524753234628158358239362595236192667802241932672261532048983524761844912977750150562854362879966384114451416556503375985823698717033418384194713667714705044071362591398607268937064551750533371522585069484272219863174752861941587448792839756285486931773189525392658230629085926701410426317068069936421764517857317820051860377210020537147927389014648379317923541797917715113636247207903841116385613520403997315201864221236783198882903568786799044770634328551913115385176233108799149213680866426483816506780589267123897116252411511344973021394844274254048689704962691217918811136670442997342902781592674976415366778438435232258495555835348147498112526678772437475860983811392870543579602901719923094482710226795967092842233032010811756189850355563300527451410967715600973231141898957652269716983032527092294988313218034293901588286568821840999381371991278383991421759995304403388607087488328876841725344479558511980636115935299189326510907700612258034165959006754594627847065132586058318367701708521087833964716280068883197757974065855228975018014349531288034306757974241218420458820414754707530189840532355243750686065417196408190828459705341127238565863619487353208063604647289339017735240096177427910935766732600022004737808684804710430042949113850272332479999874484035960507345779625535397444528177378354852960562762897821785640255954203882609706760479953910414485118110464510718793992241138886338940124068346520233000003832062201349515659004908025477400233662257528645897183993582276666888130518342379425381903632652626311373172487496527105353188315182596663661739207326840024998258838614848397093597048130587591099674064254556853145832936694505910057781772220040861479350322073865312939065862901079520767912847371382185347855421309377993603827611901375550782080010817936382357870565425761236521233387931593713904249734025768812556924621206270729131155738971075173446442711907623398242509001227661108616555086055451150572540793648574520522287297819601423731806618031191125815265515999974579707558438365842362906729734706344243440676162863411588860511597176390863789280662302748208362389987235041080607191007703679106218914275559135330145854729406360958169000176552574303676859710314615541088076714579566048136399397378841015039741923410468315215860435951459146649306082760311335096156524959773682477052157058597206994095578996452951827995282242527124272118789827873260913322803069440910027221132600438790297413600525148583953466038302424197963944061009215763001303865714106806664440354609301600892474338626270668761495632478117627536342861820914970288011851008880094847455729278714118590435956474483054681307466083529593917569959777233344944500686650301989493602632127251591665195388030793843234703281818388581589600497281400715474175728936976516206569140244212201812981027500656681365186699853997737770399820631257030826214515278721197602968576342819620077476378782376209848294585163751765893305508781219362957810867097827753114576383482579461707650897175949378361958395945459265952189204038879844589871221349358097977841179630029682600420135181500132095015535895134669799861241733768653070348624743939990464298164323395446944012363441778523500695995598191999780346524796017043546059964133138571154087055944493169116615827335746289158346962263936439871174182658141393534236122767908485468245367600206315695033044269412926627934117617844345647653766530594590126015742706418832797200898515368473519143023359893442831979864151631378919953463232351055104091717175516654767537267284631432499547626185259196482803380693930161656505153852756532600226780836192295218602256644332191531908425766463613217059683779511339878208452474265169810339758060657632897997856509724694881976411785082778790735169331643715781898854427796531239503844503367498779517002503839103373790838751258584942158803321652104528222619879992896674858670813233785492199906696589486726370412007302740722653469883096479634003466240885622687843846079530533017536132997931170747996524942699242302641361029358338144515489594277555543741957658330485766291362828124257687406085073130694766942274603698108124192436070906530312658959862784120398028534805061754317516646689902069251363304552100590807884126199420240767096960405863965144225151198819670688902642649278693112115024781616617073130273029126275557760479193295560928726228192054253259493018544569674621601149749136631407975944037528133833396599074236547475451835547521166598511975796430024740317141031801409608623103078640489323554127272485752269207206024498505818602193817578373288588655730200787290491057125526140811389383478002539507770811918241872198140548020292579794610258823605115513059475831715079939215376990428461023628307117336701468833588194806815677876028341220913440147096608101366524318646320338998785092646211334086944687165887123136426833990095884100516664109388945716219191471433339187389090665021793992988931845087411472369582812960859342134298738047296118621741123928257841452069493344284685448793975406971970683168826758759659261565608440556642132185953503578408402308436652634790407635908245629945345910178694298295606747052443342467905717932925243764180615838904554810135515321684339703117324363248462603587005007417955885102746876090434166454265930205736495586758595927154224558802030751771797686321395073360833173462046796967667032527418738770365264078772451836676626685765777752686955636609523667175107182133544467201390740381968070271432674466717917477105543074036889651202837050923503813231438488552217571903939440136580890086814705523735669005231985134658896490144950156488606505800418633321866303094277686841032308446460817151712384209092740645839626337009849939551464511493728035599965074718370631515827845946876284181298284074610170985964047212221214804790537896187188013999179460988439994408167817699726124155748635027455392380204597553352367491244175898770469149152143035213138859507847496329649190539172802095767463507672565612392103580133667058418263318809878144880301625486645486216447579394803557639183450541590286173209482777953132640830245392267774273589769990226343227106486789862413471388682291450486392569240749023257017551670687710068031844860220798870705338455929008617829540963611354866019481782291985661677910519085789508887174056836547770162610760304612190762513641487855656371021311571511893688613901333295831246092063758920104818176688337413375377279146374521550038935776063329436941264272526766792076048684758957670668274932727123324501128793092831382580154825180799811428485270569255654474299769083324474703132385542328763349699221106606164776120472149059380332059634967804096318410924592454008873392044147752861666093464320988334507308853505941652694217354513530261771824917219047747554179135173405302477519820170129808362043402040989021354742588615571377816688697645796628796976843510022034228106568867797896169372895821953015353598674409497936805443229433037490327805694534605230289974920903647247015990594560874541933015583816059638248781266007902911295705436354308868054077332234745311240609302462476801692182671451869103228834458616932466859094412165629211087473628416459124526849556330542811395304267354200327734384245607489521834490413884673821934356361520088182253940112140385612550353885181859195487074108053646767344347727651453917356361298741216254843101089411273891853713571767181392847532221202272917412061438405794195661109435453190160875940071845566322478968158608681811402799086986744937566229723648825615528585590926815245635156923861454253158689261625082226165974132477174951956256122816582245675139949728404158310249337809475208994939370979545840601439985419836620283330872321376459288215399304589414369487870482288313084374878616053177825316899243119349991766978249598329718986807317603431372291805683894986758375358068057365307654664500095227445403605281670979715103565983689408896546413950053976720118189879484990311064330309458970671821564846310826151408414516767770820049279064033967767846888076688413930454405680816340934324037429281767156815037445783005338096708144637412504344853579468742209484521475502273963643504610235166897548973965171403955481139487851929042724171364112470497568536764777766381483608409458500513696131499760478226130061747361382166767998473702439430144591554940893296214842874101192959369283840037719067162471623843247390395018356126514234016209547909119103940542075478662373687425546903168791679226761286017378039960102610343493378624677627917053700565343401655706868857734063480420659507949039344944862280326926709714899460718054797522204098986683297717803599805393851225257275260558837707902591053279545505671461646693329696537808383923121496876359607118277080390529998816293674411250495102648240356864401367004440660789285180277244720411535802845074235583675300900492365353338618463889356207427195001817767139167106785406687065197357356569302523331372265275318187638312792639999771793974056958139100641465613343967416607195645692563103437557085544753241034277768576092849884247649069929992195661510066627374551983513272114193332015230146657564760230786504465359506753787526106812843396661097464638931552334845251548167754299720155193741276468758909725255420305144132109465801242155315667152259145719237036483890580437682264767241821213991081383212428880783025802059831550136630740292397663062310927525493136625311554609997023933055660526432044728357178472086525340209793685408970469236897330217856369943864864196653619351640261827604686005654427200576864199842796142933349216498633331204006894084600946208875471854389731114376480546399421738727084836655812496484169333023172502182191865584213693043594975711778478325946257879566935172989909989403846385151894257434293966710609419847823665781536213245063204432136649274054501025591650570084379136445717268611291212253264707453170684098821511003033530098014006511187108807594494117928485264135843247991016187356648696084870146121225655678735047114728274038241125569774479558983314260857525356707974748126485438157456258976252658818652271709286170637397429909102778672426071607743526828231657541142892747992334323924639466912109537169635179515908167161448934035589179605380163832730793364947956261304322676566103426920452922112655417019473930932387800992795736106042302045372421619947458122742505769143042181334032558237167292748468466727399403186651099864687722139188840545575937098368412350369707499437721369876796181825611330950107757011944149295145135891040810654612855122076016429444796300300234268340534124645757002891034749514092010671313415125600204491257771925790461545488492366405738980894405996044970239595364844519793765877619351100431609671363084640863420169523149560442671259559712201221321612081838913238251015265469464805977339534888865157008429824017074173799889524229133322823195110284924958240313356206390968819604867048174158605745223955234674246638006650978393876546987328187203621962919568363377734658134598125278275143674688569322826113151995398836933695577758506173699001225683095521576416153056912297143634686523727662325938204868401447751554459114758695931622606222674955211591634804026912206681355005249284020406802123318725909325227758634523429863610675047017006530956617477294573030117089438467867554187256917726010584698778397309318840231693962204390968251642472508649917287123956763544525425625907269535573001157729235278019477168506089433216898413322648889697640841959420789477913474178764506202816440074505928385495883113735632767404681757547599638184391192183424190891368908144933860659703653780053420423189550341828174186395205213457738225226854970162940190047242327483119146405956202210519850876030940684336664505145537308558060039071583110710867770099611725614306446500077445521014068898204622864146429917996519655076795892526979215452023024196583960145191692742038629624865390189053469020367193615859138673028586987051835837845415679006527477634259524862738095016473252128748913220837729974438382731856245450000559560296999281018816505776569288803325451901829953595789541654746373622557874156787803490899058136687769372135622791924521696110397046655066792269555650180308081677537975777500969427894394277749955746497941599470365996681052771445920112780494670935000061003171672447487104354401574881187360036192017084497991847326130256291440929937330262046722374444760823512231869250532336749703058215347513568646843461400828173630565278181240808480720478127671205621500740578850640501502706112867577299857920537134617192846057258090356514982747136026573226767460316212369376653831970565129056223250042079699719672653837565381531687097160951641711279003961557342667359968381275964027202723653270251404446590897058744911086963706726649656573054441708985439638878165247072386481767663695128969329255806626667610351181048367286612786969845897470364447040175683949851651559393659119592205095766092743167239442813662560723731214060414557350039395814910403577597948162541393716646397651560030178505619744448508782272297169916712237938298125787230527108919064342777065827282212810069087786471070359121454143121368422189548781951090534739716491300092722207833595993393053410245031604442416294746158600124417507748719595993034533979751041709012834780446815833168634632351572065452911864428904278683344100925604312477641501993063928970444945481942713126324464068136278453320518343086486404716187468951560253180855661291389024789585304565267643931012959851623272514407526942806191784655735712324201525001854793378200809712962386034504850564024355750243802619219770697467640433436245251341531070730601789782247368313041288057024314552839072168815917735926300064904643714720911776575045053186699911802860332163827100872386878133001893096221766729479198846766502579706157630839224058428558903124879803523129478890399405559110158585667324869916527755569194617106014684960832726512145502527781223077399495997639413050225586870158963073453853607325853584767079825125955568966384993799902997993497678494462976492173528971356975834710418897496764656727747955246863449636546044651747317273252098564189667873877033800302712720521764444142593021037402541300322743280729962021005045578307231181407724043996549149885132422169350449132071983206427669202209452221204897278772636868556009116299169507847681315618114219922748802285470259384801771837547716958725340029585303143715194798244458792364184742027461887255356133908807092753912476078516558572865652743695929631512396519115332491256965459669002558137504005478220803720185411863961005983722826090357910611905766441118125181651664426092282750557813330862981878143505935253308646134815910562750175424134795270526609522762045749821830371548228612982055372661907166424102444123149762531239746928575050457239912010735789818334272495844133064058927386967527558356772484708922249299286519491210966080469560375614543479137432534276044637532077445896900671023533541802455621612742461423213596550269114273525535515700774690791214755822959016364863406704370083694827189819285025280936139940837047823341591748337232381135139548719137649309072104545025090811438718718862876865048248812074326676360623996907956118701518661711184783300633497726570823069495058001777213678514281407725841968413372791211389045927331360281338766110710675171827590285271668759085608460747488104385965816049512581044109285040689600203230558137567685798253472867227601712647813886772712984856827451792082877127782445174819028598691026079539042063424332196066542189780183310314076323196736983773096432468534802285473719259505630894283855336981715443593858175802828677813701402763617866961954583481593956747139329122591329543787493802236825528967719419716758466234642144955093809900383689918731024354682599875060126610260528576989387233734936726041929567962718165406090468767072206941772610384876145465102065840245894995628730617651220970883296987391971552754239446846492207566236975303546395078854516849192952837844750668172056879393500636856149840468036859390523250030658701138871683352261793205277308174008339884026011661374463100620005436251975281626195278112702939425616591943792682725383644319285036861727034350821932859014207880925673183677415304910361721353371215585515194333680008218614011187627147665696455179760349718144504823885587580077896381236726281056368495646436429456748592483804033854464292966532207843933210443567864819855212109318869064199096086007852557161503887907520659316497518811176429762262008932503379688571464057934767320226188614717388994469985604587681743408898563268251794348263066952863480516899607839878814610536183307638270225270991516522752656617661234702585671708517462691870534791564817160809391724836242636062813780914005100164120851076323794288458080130868017758886363977193757407557540736607105002699628445439784580001561774495251595360527500556762052197527342481102588260854272879350607027040669935400660520591257029113857446890314529881234953133500223983182533229398942493438618355532739098771711698433792281192312854350474399065209918304965867347790890530932487327390378604560263048870220031028286580635424150628226347541983766821439383288058775531723858024400243342217192714106859443194941832895663289488517419674546964923114914942070159748137550001370022502511343061407100824779652644722651362643974409038976311923517171251076146470455528175263435069752149437630820547072985938529855153596861530750042473436390985991379360135272376640709419266589878526060542078791673034519626918323084422112872230894056230130677776087095964972985282704513623241613573719010078688511362306978874666554190798180736264891273596922222039696810286134066388200277695673306067504235258911721787502150114886063966325985592070321331490259217836428030400262519920924155170769460299435677211268421753931562843698113758524068615902327677238762221413432533502037049804517797836269201297538694480747629798197680763925101477561210118300427511672268190956767749725044451320568213647297905013219756427477763620039734156735108607077357497172973997941254320304641161631583132490720939624902995300339674923630335757988460988091994360797574424413366981070071492823256266306064373589512272616477461597643191014558014221704474962228992214905146596967121499608280168193094521222765414358274296875674212688913091670290984182802791815011475041443418858464308477313134493621000391558150573427702963305970857432897242033605750444154158948584369266320857852876751507117025588422107460197719519116078494774895907816887641130744552112260966194167454335450235996711531353740660747751970822083485100032580179239373852905301190471912222659506394952158728522618562256166983490670471550968044943181813683380027020477911883592487991497041507484310046062159134566633290524168187912426366686693862759669599664807666900160027247086317187388328614274236391169514502671850843629974950771668403718459658961729976937763602355008731625930978642702647054457934783975393474393001757906070421328235503496475691850447334901742579032406945334149632033121999238360006863043829238049843775198684376154290163887282624618038893608166407793095716923635853481966933152714333430174599266018002809415624334275373677512335821730692161019237821124256854109065817086523829002979508342423853891205652279463396648071470612479452280045274641311508861724846398065726407666745616951090890726197166407213659322341774027231542854814511845095359746247073386834128542815712348501203573915598254793113143156882704526335846084470320258839771411528362597000942667498155609387756161980770799215914779658799513081090893457178680678407587639055595827681908985935139102505714669428972169420431050594271124980287489234846870302801120425100417963603155601180531739940761541241506117932154633221663911080804225650222605699822743056885628662123115301541468708947156823871132422332570700169628296207497469811427253151317912105967151024032852842581642411546152070596061774966043807412522334834331308334470807355907107262867713179063483117459948390540907195875577421546829320657191231585182143993723711094860359806266437495529792712922858785410280337578281746345986136015788153918887043327114447132001889711806541734414079120694755307712530242682130410283271874072364909784130367046219278396606711125454762729315459859430911698406226489343644838167546668835936702317730104327097025105440569738918176876211708784679161336692055413041686141997691735602164465753750020013531406686174622576964893639712723289045808290721605904658240587647662753596457210547459591966015416716562973394826250353158911850325988029092965734546929911305074444362946687347013374784313114342292771954841170400885635288984024499662626568093122371899270405842973906619067716172870359961551714329493468176477481549950943824210272181980727710714299725975057967621732043867986753660591602783034704543278836331961981607054810019312249883238998038127952171979957196837300379963907761654961441007756307889353976139194156281577700235826705623598689765854265238072894389186792539097344586152802104284094338471374463574715704978644268244594581790813105311821753772298211792749296267630837366163390832249918625189333739457792185973701460312873235474751731205456035283696005699801363446094833553183423850761124637746715100276843269158789587228581131506045982140185300455575846803980268011111001800845043625852563451804761584802156901863660378640475371292347254478596680119651921718893974436646383643257038786154725090531478972596062079282649003088645653581295997386908079507588894539894634407888956245696663393326234057042654954893757554906275630831953261985342716208631043550960722980996045486561947397914157036410487224296058448382802296426062122208991335420796164892770492662516551735408262685660483798583552736941948599431828004669530868591000809152682317985910859406009428049590610918999211207165673667683104803380764991685701958207299898065141428713881488538214613971536761375806723860740423414582092715171349890284291979612305814941616271347568884062472481547936053864713548849295712877356639488328668261949813670918193319479683607859171275356723815633182784548892955661083399553308487622030119155959224686844138703663501270787040166601862221209527999289252246097935799681003471021674024205269016639429291590024787573111245952417506674096424574950653591338974905298004443375441923708109256497936625837711059010065621810415664923675021076816313256405611994821902349301495396885320869508570527605486085540732552198975719568448092908410110819915090647210570627764359931132210101542615275044388231443920081990154666144700496546220974363695214382006478687128487771657727632568590280745899785265853053712591047764604339303104236361795132290274749623070341306077648174313428045015140193968879078292451557906836365747539965649507359343394417621133077430222859106400086429330704926355171904885229299264726346380333413854064784704811836870934636265629245161904430853101219824616692722718922401519694447176763923389238563611812820368174423313512307044982791317009808851457107660884335590424385902205327137652363495881982345877405569996212625518039778106300598410491648022542795660793210529237508197142027884522883185125797012179940507639568640143360604737812275319032661731120524610064195263299332890812951278416591030981543368265924432450924573322434619065871236880905826536814708641947857297451303808130943389447348305428292964714781054628924979670528998856446823623245776882799255367086313649841521931268143627697688715180560541637692590654784911754347211188951420295357843850949200592754168957089299393443693136921412132115533369182314548951832379380075331647317824811559685923232595889347653603527799307045350374682117627681805443140585987195734253614426785828009815030365189757197952718737593450614825544440833714792565271614464829587587158412797499782993346653580992395364959151247472229355588047138064248881480324614368862988780458913604306643942337644128948075598484952726626808222960634030422853652569846700072676885121551948998130224149050086010067936678217337809308543685168425587376921522165682965625455399740023901580830617028678141797501868814067718367392096484171432376593956315680597141627403454471042093185428813801983006149323087920704917935258183857106498656177423639277218438777245190197267230375506692885303729120424894655065997948170463086474856233075100299778067340048961886102271446286162795478185596640907994686845096870236885764417072435346296465796717903460446398129495548280882015473515023208573839554500790070990857499591222947964407503672235807483038771616122188336747866224695132184408761904559888709756975904441944918410660773912591765905908797274782769531801392030879089779671823692524342895036097748436453267174170951924955146979194140856593162074224795235299061684675443670375613059760987015959469200619825688670141163716486404049110647511637808634110119464824407603994582727691285147715863497213326905982048975933381015167819051371693625808249116650830328589432213363446553031202088777615754401656537744769343136625720506440651258630865495024623342338480600733423257177467522533471365692170805705732349624184649803439646955257503833996962474360068635744607346440903305708103319936384734846393011672888830296124750162374445072963323135673839973876717544012272258057024227321730178767217781653036162989860404942247368101383540806288551770905694765362472585812885003934928763715328824238157347832369783788722944476902600465819143189458925046428592405141058729414593412639347810055311313580315369032011978174697462632819226523490377780632556302596348271160983044724822797082903519106380230469210302871868877853465085882015084085329596632347018827946248802115638041326648431957362929708139101204475463497323220328120059032336353616103567491598126454821331445606877849448554620761622029265297871052019627364099932818540111676119151769819339901946615892428319236396998415536809166352557512835295647053894396049988699559012276142603811978176222315854884761887251504452468965644640291948378838786597987140787180218762253897629440116841522592033818099260087338504559160865029333906162624685447176796043489643215877743831025653205373040166838205355834688128035540177923853389610577198073091316985791416322863331575608382229840088146173930433986237106998097306376113804884668234781523095867714824279774753122900134601241233413016805778366075562034816985273739959316280929520132162383818027073702749702855306669431524608051489825819120111592299483749166184465051921264423895451109563863600928456749291283341695309649089646310435281198816444254511507152782759671652947596051996564819242250282250435502075029023411133259153053732267473625260966667919691791587468574830696648020130160290311345619138254153520297005461215230099751884927452289557876947822420916165267190863359804200507877575612653994014316178308172468242891701484954256084858981014236421233634049569082715569219285569429504299245763910496726689251342901481865707547503728517757475795807867799643066375359750679225464166143058290436583348181138500082107404891429454240975346885351049262287904406295307501567521192831026242555621953449437625525337947798755870707554588555713959437365125026132284518016574433986973683833371706680243520382544825201044353651991768304696474491192213749631462223303088274341173113493359795405707456853411228501678918867516234933500424018671264160434112257641308381720579678758887493810106858820281159525410409260525192639687726016873736245756953922122716108391814083986693012419620662788095690527971741104113917927125576289521602827734000086499294105042844372263027843250224585855354264542435642931882413878042850325710312306881173355819545350199997983662861780674668866024682081564207910512625741431464723343901693394362460840081841419745359605237066776741780366196915993460054595518970748623124450781576011917537688034550329553068527220810034473651473643404501477293576477827639584881479489608054701497133556582644450451636722931858477254531463823587227995229561148790172125620140895698331630877468849407660288285644491073969213650443863442529040735889154229009191844624384788174425205232794472731577691059399664708133652018907660253863096711962315418933340152950429444765581478010724885236259280740306966228868161771355549310469883440554990466483775597669363198690086197810137093076645453806705757675453844598373544572299025208681791411801852775877400028863832849783996013251212386240885287358947572543535848062356911209216320883490578768251607048815366060221874202276886576216093389632889346079514299412140435522090378191362775129646813720540649429172058036160657208265839473412763375129595845606816334501953169407925548994591707076009293672986147290643971768247539922332145367796544090553489279019303884423969763512697982315768573215643585378960888724529803938589085464915204022878497158053819635055478516781990370741192188196340596757482123165343354383606657320574150270547323412250268905846261575611700540809190553762238403542382720174473589044375891635832460742877497501011880010649169206184853617235488840921535007242556573217474404726297703073190467439188922217538547496211789476426337240606461182208296318677665382156965555495287660297499226741257411805379699551214837407125089763859508832368849167734334940677064228687349032339849733441256832688843271066540881134473164163008051183598389529219147253752182098858739732879924782174638769413841186151354757766336040729948425751739880023260184368772536835612771368128995888623071593414614271256453916484260599531780496737208453321202444584195052894562315922127060109333984492456320220327434531430693802710195123005936954106773278778908505052335736592974527087250338391179350951830844102530470390084972458441416214292810332262977844454764326919124198030412651087668775228854828774388979217170678131133044625521815455734716216229951777944798451480264807837115694531813822037085389987581272085248140745097815797330398260302428187732544893190474414906256332572513615568207439152158909143404572709427434558603950613447847690628783799360313743085732407262968300759820493372200542256938038377990447156715774695002067446976631186000236985247800352211151868914092923970395610070877509615680627789206853186506544069115414816899660307214282469424167380724288629357377405490834740373808663799206226939021603136776427062638436058167631375803143455181454520369763503931687078783261385261689125420576349692880994887460191251930897544084769436698048499067637585734303765359064025357957618845057556429406494390055120098062286937108260784148972606030259043018240021591189313643777128101906971366358843915248807239290744050097676506202124132841048647344652981009700380600811592541619732099919583330418935264839109654836187913481285090825848044683516547650029595145160735018957030120784409496671151739796001795577086077241292289369601283692411642692741241120133979702086398479185611189657245057306123955586990859044638548157162515446681069305646346931224792538285273431088647891958995308843058393696323391121350135338263192059901638784122171388196785622194850445962135891485356557552802543575611771235787840921142086292124648569890045253275416593355770755138193684586703358192223321889448288492830139256216613286370139080355255536098287735231811938244896857596346235068480185520008019568632336489413300679835290736762064332850075113754588468555479163475138454738113080337281562859179176810092406420346973553653424200171745503887372278278121598407425677677186375305053377366984299638981221721637856162034863945084576074556090587181273038261742505638618082397336262701941254091086847207539655912020397488829876325269807720420151709479148771689704320150091713635422498086102922293929381689000570458927250410227196425724287192010838663015748433604811656408265986509634144355833571613877119939924294957629134571280321524512148171761132648769284300183628443586906798045176595763309978441296489609851867086918803021375407717423564690430276341697633262685494274549808055177830620803224597701399240061834853401211067185992618289657192464298062110739228114055517535926940048882503567334547087696130637412073964331335692912979685027535973119095227870893272103969415164310560266260110745227244411385260142908988232995588491943594429342901242386861767472866471273134765436996403461182403028779001603966460783653234294059864969346783614391214243697312217956930247583118967123384630785146092758887477809424703315258597538257005719472231748211129993322482673304455205017645261865502188136957576710666349604189546892681779423350029352203683224581982404728525497644259889767293400780408746643503127363628563284582168844531808591520645883099071307829093137686551374582368409559615857479974669401617279022056035189434012818110713725911759638894246908557944719088411196234761811243479825629669267030831256976763948802643268625935735427714896514381213904724606959810968016229247238498122224002951995482553578867531230656656242226906654211008163200792174262816096988676036854003152673158660737725484324088911514106545317325586750736676623269171726409534299315552806688651877943181795695004956036445383361549102086930795258169601352027749544313780551473133887955408895519581706752755415459869537147848995034664107263951831496800599443799489086956170361776858427213082895317441357393860939316457169856743959501485956868150150818346889095361083701369304668743448673201669854606781356592914459125230154415581944164667466675221466195746667960730503480746109442517744230942385065431405862102370946912306747890387329356308811016782330361682574914726270814573131013650213316761463574908111085526810419797262370960289599611946155023306988180174790368934805272619593101934041222827289576524098038829658961217261680504049768727988905439041545679010402495272465724933785505192143680719573837088466360931714010693366340251021654452427119322840631137492180054479897885914847064261725549957244171778884523885791508404467678437546847583392272977128222362573291466852342382549787864537583314546503207390889849101157954793190920949444671380588764137224370855638259434588498656513900307755589849057349350945593095653726362751250097331835534964573695113505457948803541681602484660783985459846424302542554275469167498603825584739752976502917407560400145153208702141717246918614129824272972816090888285097252222399142581465144992384410861316121162887723281672810415745676172384676752367668949950677434581385911884906810798365058823609763537368001959016362973491626478575079652330476527402917132061773244825581182945594319394624287033691052513277624193954582118318292351386315452776459797834625793169825869076297192374562718454476625097894788848587387803575302050366202709740026480321378442109503007111542511975140825842394634272617677129977201236657912002042438133539515795911789584952798407073121864910295965514023382035467541472225890120158690421085954882136072776903409476839156069361867600191665039184459681092869026780837698712450381118809625282513704804488462897904256644148090155962915647810821787795459395102548140316023934004370112407911621461908147141666584691181552806803483038119032868880436882021664746184125908986310532665570169486936574702451929184443225630084861840153467925108062035541261216359982765037814151774531027028847280729831061873271764170918635819896739825955793109487688830120869370370605609265778859983162972108782333845104840396119756354597725415319430152333780716742909430237083777009761942968743055218450208220929197553617807420901304786583792542668444459716595910631511465717321231718595813407218635915126572941840622977625042926801624426983002403592506645930321283724224776461711184676403641432329464853045638988425475989415253836595294680598144648685425664298498954542243048830200049612974327157166053899341929250161361963507784698556782732750320605746914880813513065342015526492223634447968925385868685959893515817405270562027836134216345533842211924646862057710084429687845452202530318070900895676788226664644199514643285720658499965901711496828807734052044540521418611774907279818879945393407968576385670079324341727488265347052173903657373325745491413659460100778877649137536935512277412341354739200204279509949779188034414414602608321117771561522342862488034812701126367356546237998225545999958939749104263012716127359505130767661157371633008580132753929864165672218590067883298633481128807893119906952682624294248776316860668547717584517329616814492346547514547049625023377624546727945561831679513632928800249115596211920021779154620808538081566934139875531458606739810159050891947863662495180125107284361936161344865666002107489528777676018753940180277107408600995658037836163875373274298333192623899692526850999434164893532913540476050754895320806125332259708490289580745818677120793044984654974214102381877445014842038031756395142572139470207727890219218552867266733329261193684295164956577172931160899343909687601693229440629222247322041117477406365294829597067508692948330620996670575072766986883048512699225727536134036265551305565213028179491144222233265578479290953149504547493246661936972499890795566091436953185652694429725277615204122715513404993571948712509101274419345953191364520117406028577919303026496571758077146546219560497218741612192753052544563505734104053380359726902599434184787434701745641757554659529798541050528989045435519902900478436845040607965082072194252472433121165456816982107257803117238592971797194970230335056353544823231835500592130380158956545734673908591205286571540047884849918200752964281710276393037912272005015377761284457379780855801985455260063765127018500540888305136422965245235219759907502433360632246118629962126434928811044098560331487359829758130669946586691162031450157259792769089561894704826990835812849344809576953778215234803768721400048176776905441194356924047283199376403881179122347960888132651193610400369659259505390846203758547287259025328827152685610152356900815489054878786642223161094353522964582111256228256241853823826315819799101131859685104478536350420449639862187373334659618687647566148637400778594725623390597292805602829093889754257829012643344856238191794667225242382850871833394200843006042168600647713529993735186356102651965943364917275753012915687079895533276340243988417003734519344147510376923303862591536151824108556548216775352371332870505083602351804401255296894345785237085661076764593727036539010367098544596303355036458191842857961463269232732071120580640229379229263396882171586353166163776279468875962383888223395211903814402357779082337760705818688011112251958283171749298282442546259929984482693477264953731920836438715973170935971528248830884332062799437852878980009112647756743961847191046190334801425688733353723538407880524426060137360348158148906784197029695752369674401816512679459621997653805664023075131188205285665758554399019397876083611606236274686262844090160874396996172810254795459786195150067019042333343911275988338324797279139374238841743888188216421780606120109654724177188400469568577863389778814993982564656030319624903582326001007809948426554222309398876557109709273546498508817395006819365299972050177614976630300349296604164585291230894029527964814259225249816060908086768681662481673944236521089363508965842857462217091644390824953791949620996918091418592848886107505917269854291861305841115174107822189581193492064874610540442789202709292928198139710620157963838935691991663742420026411331779734848117166380458322080655769956222145668644687637671851681195184443020760031845986548120662115244505160261680619468545661676414181298241021690375982537481908591118771260599486467833059415755601520403955369025357307125750042555050081157395223025142900388325287105076132789403841711124034015066273537591643951319571103654080158932163191323357039058112833287447497680142195477288201724096562669244525001865490832965875715638243943371820489921541485891951176949215255369085454492723543327159546032384700060293493373466511276268743867146474055449191502398243408622025713160937592264744463175053296422782596230977372444980448078992177752016817916338389374504803586223519725889899762622882439233106369528404091569617876356326246270577189048677805667697612431984550964646308752781763505795528802459620177088927148804428644120719012097602409172308428696444097461128927089947929767028036171827282219104757187807977930320884505422194830851612592485189696472215527814768173648170540410282336026900647113265296853791146562436045252818096366307315430578779782824885212765069746656682533545558529157840030403186084976442585773885636828917196117359408855372417353543053875641622694800889023271856843823460364544332762425317902657230238719047479215753979155861841799632923536625318902284114062262994765450680017967081295465721986602792697343699567401310019807321154730393296341165183719069292716798012855351081473846389408249513952465591441421195701887922064500071072943013538441539670521345453707220576053666372432286278504548520605113121687966631416459587430835303756421292320603682601250427415288892630544808313891102689561203074162052532046464813870211985229578509635921226179439994530998188655293658880593141802009876468848293969504553019095815178293695926050377721090555678536709541332627849335958137834797288439562015377052149873422761700898684394687826844416491923297844670063383378438714195535179265768816458233203838780473164098575355962248402811124737734229019779176477642350592824628184111727477973427502748056731131141989708021273554676861741547659763301687568219781071564263094119630251853115545485740787003171446846220480353948253898939238987510353402930014448754976893930691134114999552717341933715598651304957766226357710272534511004943020442285600251265913469958616535863398524897178974504501705834746869691110926098261179916068373704581011270136301414622053112951122756779253909285238878582082879913693791513670601787525575804338303120605185958541065839825967119589311334865082747238811752347746793376022754716555257418040279245959121657659857104972520418923985980759887229645960295415158047461709380593714067258244788948988099010600398781496570544646543276608910600505406041063035895313397684119778176122301781842716581165982936420077832455716984103659512159108628535802199413600089216428518326336125672112507950253077734369548611930319822903923086343515825324971353529979171455633098115589328879236944156957368232565830585711470790852368601039329982652620697747713320988158997387913002528953101006075173927091695887693039697344914836928083936060861684629083631362028121846885581101800283484647871830670300380672716705845920175360603219984277524450389666354900070053091336269207165375370046445447750391795889313887311281156315721451728980980634414355894641409018244379519685587848348588741032299815777639485118234515079544563488373080366275975812657016559769514941630228154862205666135325922718632353969028753563499935955427027539098212052945035701060219492195793087960018694178979723380693594270002761830957536093371594623563802848903500447390578675798871854550396883276152971733826761254733903870025838779307862136476538160480203776569686141666806771374328111407717312685054104939278292426514646644791714677704204131167229141021179389240546021126761646082556159708938672866561965352483451528374415435813143712503398884424974058544891722097394039253904604373573795366463411604916831230936986517211011823007614304611381879772283264862085224105143212466132329342974802922868492105254587634737115241093402830947969080187975647795449403164084539616559382599913956796491333659044963352478215030032519936558430526544200699518799198213033117745415850731602274018824991535312502350470926604378123098861143317006996854510223788964652017335999123407032681137945561961261430371741139179132758879545446725786863418046328868502584157679145608359440147778388513639509420350129816366702442665775278310256833123520748050943244985375804365801472029442249162669149007688919893329582476168543525813411350932396172562084555777021014693400855684877158696127511291230561763056109490438560434462908686757556688952474888147215963075933058308059314168427298635857117940411370816334692130960213378975211366861533180762225871103639183295611976985217650795092531281453849519910149469169552719200847659789264976049506891038979870181452088795613549682057657281507174352767312391990678054467837149264349264890986793330945814135318341503545733991909013804871182277296669177625653128426423955183934656760481747662531516218159936902624991458455364828596895723840300790972401427105828905127323529371079129619782039702081380639354587315308580329373005994113294451931683513833299256584825192909183293812340877210496865596418765850751741222438959828508492335620263244989855781468637340546660896005687352271524882984287774462636975148750220897277259228317730588497855205131722174376722078355602819046552606687321038518431577800590182472983349740799935512591694899852440114596674654503081018349007950952658138988860965210814168048350827091667901232480597906836160667594956303850803755698163381014875217077311332939352472443345199737679167892692833899522980745646149632145351784502917204823099545966061831667509111861905099359858632938534670982889168365080407512279891559669178250759846275674074828642796996647185541323451584918969118455647998100766474816420032325205995409383774147165530210830429992788516477466166843334535966803797328008600194058242531879537360502226642202854990001498815380512928933610173493728491970789708200663968088911982109785904464745870937251246912399822573172747844997851859731309095322103381631212690040506844127239593160202513030942042442838774953662492237388692508557690419026267381339650911284635365122933246901507169390496756789299386438412211643192156276141783662603102665803571425734165635544729872247881266532040548175312474546565967995764551196181185636360226859801106078640408928702666333820923842645009700224493177663522479954417882531210527811744433435175294936290442114593136796872714819528839734844286905824156621212094744535552659125940535318604147954776087049760656159422266544682735841852974604061959253453119197620212946910839156093669751721299841273861153966580503540529752952340379714975324088196766314361456302201760947521621110678061713468562138760179559133534959833187845373396380987228883307625675743459054453258766745692760268531043699911590766126786986986300217957202577803267174409209149764696465471052035224042093750305940876534494932916458750960753654331276030008528803540130525135002590182750760857078590658169303775302074921742834908996642208921644989353157720275229825035039324152044934711266492431225510989784671627164444466310170741909924238777241142592506297238096585953797018489975654819341076318771868709044952158055543680776808458007829593250582257923721033373046501769405701966360538196178533511514441491560423449299634334839678801370078335042694468834272834355209636968690650171034638442004055057779336882145454523643005393224373438455385122697587822781092396401499260169303688867723057145750776561273962391525675969751451229156572938310135721020621227436860677621560817038981341688176925744223690811693617184744797534256244178133594037569704158200665763545081228197076913737667393601819784267790780570927323341722424106618999100542627853139929407002730371543538868903000106208229755673642704596989188856566448593617826868082012793281804319385057624812012880575754257364550083485782087733699692578771735485097968133429935861011056903611967936956604208860437940629375490369671111081918081854732466099063873538628459549119879566641792784595383715651972305126196526258971005954244354235390719834228614722784336135127144596650264568511814333581560894000380686848408930491707495017105457355879778817290691223843688214653096956006754716142088511827419851716999408107239278642456255037729226151070749041440931327772103109921855759834627028421165568379469855327591304173907492084291086666048995029067506734991583877690431271086767852631485619302091556634415537443804180213923828464274577426889166742936193418341426954023006842463178490646801028339087581883322969283975873235919845733073815759676174453087230130309805965171244939759962547651515975836741004537041986464142153936041449186948332898858368853683731382985631597820519784748421662220095506342388931943767635932548757282213893946678496774123301284556538353905030241898152169288253896630236165407970502529764272218455164747308184909516498344820863890177987938206383972563582727225746476584524489058889054482277901096794580353393988903624884121664700456172275518719289131048920835189296533125183627876092547109399874265032712158083571849313670951502278493777953613750333304731691079548260425479616832590078732596422268819753506546108857973806461907915262151083913495419298448899699941680260161301274117626998901162390795401163975497109813819137772070852525964419024809878208055125329381634469022177973034498409478817938428490514357047545142412791385211804538670032015326388119028340924074051634761972547038025045425972208771998271790406191150936687106267343528933598503301228101371529156008735939937882075193673564939991681897738356778630259392075074327235592144349699173399909620011753718498090712196930704310719210341740847088665139226343528778139429068488143026984154814183627085952229901914502385736576994601562767832563222979419011417666101827517578381276759081750070541540309644515835250109085362365903176978078295228380745044414108928927055640551977577764272589383693260522719892352984557008578601830861929485492502968430791148643672239147207313345259914347295646851137839358852812088168119139897666680194871253139591295502537935186724381976765839852391983362452267382615623672620636766265273234022053542253281168566703177708355178216704974662698054016416551674175955193203724501504514599756234739752860997461899422692420617204788905379723117939044128186407940671875101430764598681270087403858799435149949631921945509730798019272489633925011479093935871838074637827384377241596885424558689108188634671446645336692760338606316510794156840662910107730047322344031841292308029487041991241630024405199777426233987000738388499470674334294018111943039684095304637370652772982692737281873614174431461793599489176858563946030017774427061721033731998159647595058201585299022686122712464352752284235844741517452414720522452691135622622980844517289055278102672940554622122230372295793774975413521434675597670729358159746346438335087452796683764732061397610708505767484309456761604325863802083481264313993203103862741107882107952468247215859560371630074467585709287275212711283682783575701521643843229168246885633094207894903845617240526999152054799161747735035774825982474258053394055104775953297030821298573353086828882700019256362897994031085177788614336069354592558081913793723439548587612765190925010913107565375953369537537402413347160914959672938674728691582181114025068991058009686151430913546375959930924963453263982345850712390529044288991635004464411756186674406992318577316045124106248611401671116036741672643171176714371159102215238769019804718669766019194867971669859345399402488025616373268950932083098276968456163151600584708705755775307955358599838095620697842434595348399974521226031073720252806013390800442584902507910875935980085397135143515564250822388083640654532601513055719561034821694805953776000400548564969817838032174967978316312593309969337483453362394226334548885204634280237698921713011133546559559599093026070945533155690879861546439370577938395714941628236279959314249957620271468762954758907060594171778083422504269731905470255248232941912931261142222966036094600547823020545953571901413892242299962217449032877079983805979138340077081616856462851201466264220681909470657233585373561586488884478134255750786103639534670565914636371402502482278875450295011341690636361320870686968945111976809223301114242212204514715973546524073312682263124092483053981099501409019513730018739182425449343561103535474540943746281955878156607535149022365448995289840687833809517406552136122129615420839978238735381389621449343986684868522543429358578539782822096797183225195777868133145660113659723881134454570213089932509601830613980070951806255525465457311452113700683046652570981343327073315660750328261257792697861380904711613546004515130433420672449906881809086623659857796143212827589286784614416628719384266936945209007576500998235670624291009600576619341267654715674104361298231533554918674302011781170849613256964986558445060174456883951158676032793049388505936107117982704440399148924992348020844688634158259594423886288292313904430321344101753276391646035897402252159422845207288560554815107959316678267022972768643759485615554892919812371091940561462729882409409955371920851565033310427841953106776826855676796547963969520962165737457593697984935148471877894998354068017544922570138066134316188699401180363530753772296840368633018049894090427903548529755203886776836918239657012604587869199242905884953435982837382330745263994487905940310972357748672026045707642518435179164483462634814239684776595182493897974751076159914584941035147019394583211098959476936162953412495345612805101755520178617164213225220515510534063388338396766798350529980363666550604812701724631921060976677144653061261355195488321355959439436650938747771349568407113515860901918083760298596278522661750801961668532869714824476624476855990364000371684827186864020255151106405932641736144173679518699887680886414796776694918815817309769565185893148456566633369795724431360479855465590895112991995352099389243448313546129114372830027285824685273488833821444901988216029440675888068588024533993915865665318030003335718613634353979704058034901940560010435242508708310209387055360152400248784705939634957312172016199894393211329934083998783746886740111662485414415652684120301339335498625189160698539228134194593118846036385036184234245593219375080642802951414219636989928736768647549052456739229153231433132254130829098071200766967222996329596312919051116676426585817952170680325849378372477337359937717288257501191066505449837087926110805769476043966556458443961535207726439051635426222636068461347900543436905620335827332496684333611745295202169632659495898352353842712426491158256047141333853956900488699681232350843451790564928587805511431873987201369583181608495327825009387260630279662771594760727011930861605102071392453844362575493273369060523845615136330482306547296975927457309349021042311197352358878450321369512789335069277423735865616977186415798201139487119640017989364644215321653536804305886665903138376372130265521154882620457258694362938873765557688117505941500157847088201300796833215146178436207533125037568364213267845108596500585761233504142598487201238886261417209793076899594606945903441642325140958575071584142327286028261659145947162628813559880773506362043896352386031617403534944792757381773693659081196713378602647518951485991161942691772543171132338061790836142367918680562024602117599386271053251448048832253418195074965559463286477494041021917925927207480870911460163284950469703354326565897780381696246305320169625920812099397790833940957737207160817428421469484477334558474078264935186005080489042826786730654172779225426133594697854153765158113139687418464665953122242324154988451094759034803980961578632613688450787833078526421509541928241954149017602933006424085348920779611736975861777646981037685708239660791776124348286069490301523975541617031479609680745158957153129560945886948314900436892628929412055205550212799514029980850613213694355850942130030621324049794799306997542155132830900944768542159268754782732097067752980968538305785288491280056403957259427614244220166731235375520089289831809234029825976810643609567603038397148980055589388169698514843381897392499110186547983086596725129045578383539943103710342793909141298869504988051467522380250972822492813414447787050648024402975688775816812954239174394332221804776987113411494252632649628021309440913479660356243059725333718928109912615880307711770562454510384841139328519064149381238223099614266182576095284022949831046416536250213627594166068120497222379520189406958004419209678085932061314875419440948229472326897297133038955794702037658946577038530227892142139086549698880653395165421616351176464650326396252444559581134168975268857299144605214093718810294571792696324898556836203548161983535332855543508082972634060283691686006065305373932526982714521008315772422810039085311227285574654081529263162311008871176975322553498802109840315738535999472280955500169395814902318111167111494519682466700974929532209636313471665593132700393094878792371912225343561352965642451120557353331032089153130333838098867134042387506482688925615218398253250749345749325485499041486125611425426305129363764286341418055797111657402607181892889540313652136211909034031990663629435167090149797425677408515618921252794674153996863245396445344654176554854096577398454760940448979570265875931369382777948226468473886858651242028201707867214588021975551898581543348585913141714645410217592708445164062447440359677806117121100739772953350400739920464034504585796323904659993681130475841087557218039017780261996095927333377681322360393243458039226663846146707602906194127373484777450306881889158485010243243707360961140830826401870959020459659382208515044577832091530660489706572191360186311437811141824320877670589942364434410485172871101453699187711629618250459738382373351100025454031966348808086520841557193975418479436490760774683139466616238129368444639177038481022749972742518964662205650165269910418938239238784405558721448137455493702682306535146664959697244491252238872799090639452645306828878013267002216541133852587745909817372117130889727772134607323030239655122668525254855215576336676392847641369405295849802969220626773000667424959298798515615010857408727220228730458316140473965593133782981419308783783986647198506857498768852476616842864740860479410654422739780571124439651665804862363033956374943645285639034988447879099620692413083774938535478637812504461917578567264634257006044765467846438317688175150011222666687557237644073284195897458499652746199478051042809065977117896031375013395411615946236490544032103300110267307659490993411547981610894219612659223123564476899722752139953515294089988368751068540323513061501796444379335630991126593502358203568769348224204407526490064435809651798259258217977512976678075373901304839179921384803828002525267847095516720319861529043403485632292353291413662763061390844278219763635536232122757678885538705632173292633500967101604466202135651874542770845534286447344828323383383669870618124021540179544362812657577837442150441450512505759306081111462723392489396373445435269888191872784447426288673701196377029946183936675647791904518083435242798723305346387964604941035447774268160739470232217089123300296467103936594389421303293999643289755573981675707900481438363680659617996755376259893617575979989327568447175131626998874586233115290710963368365711585895783809042789442457982837868658288305564024277442252613009339558808639379656812390819999191107185010489700521157338877397071820440271145497944579540003593701458121612560580206245666785546355937954249739452241285747116090091457179478889746796155903951638179525939713289633095786029020451930913478966543753083629157536292034429098365620762660786381710485455706401892802413382678476832894947919962485690598601113316738875726395471667985762510747206519812884446723986266311266519376393576257548799360232263992882561406641749323503422283767580252271808656025800679899330612328974883682554852805725607275160749601830364823272448283847618753383241060065019652603549489694490143799360513161105851385909171174773430929455062174677984736060535432187095910704801575172977185784528243863661482118510051833202366524436582551492128079298955345242237924626280022453029834721377717589420699641060426302515040342469209736156594162548175440761450668664923340655962768032126487630991763012142879249812855672110363573110413054588540880665348273852624327015871501294245297126614220560886936073486089158087352018380954550616163335414829850175331366915834003224271301798620840621104519606670164838450280399922635787761125829346912946119832839824291961840318724979455876966438004153160853035434637156562834893353775889098545735280948548736107517723423884174261494985900621612825271854975858606486745799406453197912739851876217272622633061280228409176290074282569848306539566789702321592317182307405820880019946659280236195794743673993852730524295855058985512819841184111745327659034853792226518419930153922037862720453775982189056965573623785401319853127923820334341570653766159662865175461966953760933790674881948844786069894394290573449266856127045630931577880730670864248094018353798972409764145883221468351983168831912049916664648067566745116235434609921142650966318693387192687131972708658146127557912497860125425965125846228602918140847937330915485841641761024279424901524487249953965476568666986787026776946711272352711563424799921754742740600699428916943148938030208195031051787561607635497803631568959931402739637534175771053373930208328127109989047473746323188494565750845202274494518952464116983881846686730316832446326653305829256326306495253646970123404971476347769880061076226462409444256951044955232259728716739717533282758514272162367159693948239459282272823900052365261359036066712806533928387619579584727393202816587029404441776455785331576725028903700871277403887359281429446824189354475437765612447193507002363200561838588436654513747705222051380645724066693446638844671047141828101545034590623312861035034579226451019356845458590997934289792182887279743158294542811350245747409755947690357119909165863158441512475751611075502673731045033542103518927790423744083120248716357338262068135473728752310824937013274373290472413651663537054611506174674357602384036558205496077100488217484268397802862445734402679222840997355936360122464855657315402810485668694499386308136784394546850230762047907451162090925437318498979660892750310249647561864032471024821810412156177223943114196127801124832819567782241286057433346751688664827605565515498464698803650126782944984347548882439799861894895915167890727971409867587790488226946727273913203593721302521930960171926079894929885856026661925101086208473067314203267122351835819389008444644189576686994928774555083850273135138712931737645883230098686192148315387765034482752431425572805160011832436129774838346832301396073827868476924962460949634646766108710588641563565527987206135341375740281228910759692285364180133374128735728418726814748171789094391634327388304991403428130795719555265693367906939033938379389826596850472644817806747898396737986434750656725396232868023451156330270064561935569542041554495912527314786198904565640957846455485318021176457472149826593753691693378355453171500231479464769502750656849931469908950309881816260227169135569321067217211091946021619666174974451782595913772247905154006554457964614634491799420956984269065814071061837426117871638260304534326322601107410749212854869335687871325260778736150254703954312854696489661008105286936290968167900041589386294134367318760839061421570337102528143535780782552104208474578837669473247568406826854838089755039793852009219572835247409356999775350474464961151300467366691254797274172311731369980615621589706784246398341646586358030146542118966380181614557275392121209947771561945612482936463267311348217412855030839054389786677355530422821713171675124152382251034828033416148320455264714345767871781211747375468392215835456064615631334830095666817009521955154148472407820877585069827761807882512420175236940226029566103989858972382512603640343167573984878204060774275629424040500997736565771946207525279704656868018907067557720488166054098049664550674701372176139227295598636877143550725107089556432670654072473782881548491620450093402889146278684482742442953460225054176981868728236235119473545072437090110700525729222239824993446470968670544240207975447276444890312430862267545991359666240684726499280589035992389471186619169717927915268624298006863662960504759237861751130358016650378220925390740231008202041642747633208116904794647051015360937092320933408256373932783570342952603028728064099998984330800820240790237138161834754149976468902999506191977648417156010009766205348673238372443330550748369198794851962336034227198570058593352197675576211396746020305638997569717931945096033613876506323026984880552136367515667364650938632465787371324267650162215326236904694875297234455791121458165806490918444558039739094009328373079360423527446354867523380130319920075325563441451855780713338949751397973970920481044201888396297084388434390762361028894947911611158124733815941205806607584952599188956455807953984745259251314254762663698682228588555749730279884437734765867603770190827709670554590294494910877879739123693312716572794619362232150418510383300394018391693634910089188685887041440869668112540335277620735040949927781077905146916232674185821509303062243831130919487852017421510264453857115605684644524085251845466085919485064736083424191534875978286389151464098258161376806765659449208188652330286320447081490081766872923311862333086758106547212679489289987548336778204664487745551414576944380212647745441826168152924559968577533571061608160763710043367575230670727137096175429553655793599995824243849373182659562064517257566868438244182912555215636660492246866201584780330499989323078184509388748370857362120054535148050260956709555332669435741115991056656055220198533057033374085145602551889762240799511602890120916559330663291754512659305190532320220768491028680864652245012967299332360145773450072389999957367054254699352838626137247532955167005920293316194222207480865918973460006308719855049334190070165079602502493662161362649554622585811095993214957531884181272215025169548653122183241713553718416463245121489059293874783484425555145475879732678866275002221170243845568912827985929402835484843006468739547968441414660696918430744277102009365883899420820948644028623677876129960148638078670149530553865995919614544318633090165244935078990187198900691704935415253199201926437283265723642984561264624312481687673377734094465601529132328360158559050554613608242820650991888168733844481340925916097744425251511218698866129437793705194771767931992234713370574012851687964204407766111817194386755603630201308915061452655290883725991638168614658610423405896663485927282251104408144518198566853493670795609955889481196165277254331001819498893408086334504967247711784877842529818295666594780867162457321024854252773154669686527636620558594471757018460174619098175640307010889324748333585267666537074464268827336693636822472180452008878806519340388183006795348127012067228329130156583551023482067064410340635089613477745215316207404803574926943375682517869108703191697226747450771875602439108749039976989155065080734766885582622893265826986897122665255998180292116740683686013777563915965850228782638716642935243399201076054494307746692121372031968028252437156492341250923331353410734633725155784529261311717014541834227169715331335878564181296447629189835839572134762262374364158553336913201929222432596885003787855520265785704683405099629499080885942908644771463755822733164443985901138008246025419790214875659458574594683779773791659290209987650804803616445546554243845887808401696502612407653485598525616657961199338884801928512600244945827321341392400938638095528835438649549519237738118746509741553189641616142065380577292470007573965304072028122705729282837001889325657448455450105071843297663133618406203672036144812193932282733437346517295940067227474198908013210925970934227563865036271506260271617860637477453187681110240019439550507554311407505572652425151246902216821311953134032824726139900342276176178016238752549965083986883673066466017887126929060824374220788924733043871354541486703934872484213385771801084232037447896902073089845624832715519312151695888151254637936997665264963823103877204193963604378742216800321467620765076198779750896818141388330066218341823108465251707064752373651038610743318734690186469908105280495363587552054793777705715157250669839043737484407602167938317486058848382961622041218640709184112411254615719951020340079657392561750451324683663116124985833114375555232064158739909140398439172820812814291914612433954602168551403480922758656979263958825531760045304677743393293335185318024535728127258387306583208897299485488545929348342647133931865485526887518051009335120415643941758020028303411846433965664238274557557986055654197257481105081255598192101791627354423303932989120346688467724169423319589740342574271024816058155412727390854442503878927529357022385020044388423956674275815293955937782042808822069185998156619211451455149574386774573891599378332246148840400338572943839312576118774002395348925808121195028804961723068277361550951450679408950807410472060160586329265010565704443710907002380140372423682717628396881151915569701900510907421899880785138176486431574020139988789333160320736104980983619743864065740776521740490416311024418002588344634896051110732250767229716742994868925010894158671492674028576275111688773316026998244362325379620813508183930489577574504046064520800613736554827281050247518912573277906044289458789307518584270851238541193166658573229206793215126804819964591036446983821456374906871504652132603758901150090982244770295190596789995219287445346187198144069273890399113419216124293428531127696175802139946364369098402878739286846816809670641178298634418277886374199334829681801041029398814019263950857199646303243509734491035035606227137609565993812040776939043956429329369728616345916118008401542868992544901801406108985666006267821814826032487750218435680671488385554002919183797748817089060663693860708576167734298205080998184257171007922519597672885089094566499971220818486090308808340399053868938981766242172605018809946008626966491079939059713957324408334591053462108468664241629487038945005756574439440097995003808984534149804667088506944548873257954672317188354302409851302965021412719437991878950362716093773256337432931400616444704703544182244464849156001458957371194428751615823481963983949590308197092408729496720720976912278241895879195102350801184316221130576252150199046105620443431311535492235690167303245673178069575728096868702273261023926316622641927175646165368942105145245697105261997269750616292094727769997906331703788665877408283524251783469429255025095226190767219559249136544403578942627720599176847756666403212476049559938709395047696472149988021078999535367083744253628190129239940432746844700233788503953098810685825405724848956950281991826158198200376716983518954024997830450451749051716437862821991824272489718968638682607367585204718181929106514900450114908847502910674914362796531700071096385563602389400318488437373954443152787352769273785146640991657786660014670847887051246557454504737397740260985516588653032758528788298455348579657514109008101884377191990608236108448660162897810941531851045306627713378796477373312992083750345970115424588389458244722007768208991077008156124463219716447146831799432876391997210362210519275208482955451283549352792060651700962985862527049915246707909889162984520061308489003450664560990944714958596519703817200760957211214608412421511218190876457455632487949858433640598982778468107580381505174190926654183842167123273617523689936624179428970825043064405794900316130963299122566323954722379955525647350222062040148905564439243850519022263296814356541443001894336034014349584225207527002136876977016522758312798209467034059807575099918735550972425369672031250572498880066534252348280499169528526938218303849675858327265511577879140914470036354429034439680761074751939039828143231710305494346154533237799226379086991536262206903628810468352232183192622422948889414163501511615449091476984328975440231354551948869358370015565141642393295367728500805397926493257755700634990742283839393994651985651880298313575842178971616164441614423720704637412360306105971810988062133858433276387694505638804352922152787624951288913089167180725575664085285317985968008504015366206222146925445021048677631288671416517164831383670512173557283657821140266045449670753158986356370861553318370232231759506712511552475510935133988221736143909048825272792663578769070326495686846631153053470247458048856022395630106223623570394580181180641491888548797952321235837120508627973270546840790647206971613346711246967171032942808655579312471726958448445504652292188782261965067307237867760317666813670034365879136852939922640776345398030852974384652460592913111669096341189315234793676480234982639952891567475100586592304042973400366888631142811195616483759647071289774925003572853381704478636049130499653985551899042154308405641020146074979577842995593928459282591189980347225111494602897177021561330184276439962056381959245377562008160846059184105442964824055541356686484992344047309478634969858435964251277994044340446520191897345149807637360975833774388898502045191556710861729756955648661507460760829412133785564972452624241375605604166585982299145967931196563032880207794211204940594336409831037362372497570275557217243257748664757107937041412152736350144974802810398115541916259948125994486171547232654129063801096954957447724824485315362629443456570511844343106043238969804286553299059596015241528676806096231715010144948831170657038005421743802834354212037984795052463322975075622415869366608129770379354225018871669991576258946797030623711381602642786752651055200737180038420855704033131483581729877390145471976781209601434788086473502134810868412387618509827382654935792364055324538861991662733833866409879905429638627855159227090205679204332875071646262434599020160443517508109069299878119587210215231318008444269316554087181374316566956941472161132677863760544602785294673506868779811277009719230607149541735632356041125605094072167795844373064415053834177683582860775379693815103455205023086802419555804308168696450948937183150565606190921426213552598057478359706007267461107173971034305773139459524044691377452953486338789753498449990553288404457418304474313685414092118748494691478109901028950873063697749268432879071285355854081440017812691067214454756925119503197080895252546588479403733016054841377027848624069585529597004307861141784023904684530500037795064795389022478939338164658415834325732106506305638207784598429317531692746722723047359578571930935172216676678337822987851785546866751743725191982367509548114518632704899674793184052677479913487081117483118768252962854200322817726195691771925004870483137523820515693753246041165688930701252031941168239392773159902165246035992411533104793828524084545653581752884873846104139180517225686371981090940086414113543830153224440283100997078723535471551825782652017092806250896262382501464009686622264106938582829804924252798204773677264748124263607195654450965277061212757550068190602697357437893919325351815815606108526125905725287921293979208589071190789462391061917428977632098672434424044720267018700521936642521581462024132783075353796902830929370825884040592606467784397454638464259900782438701377546770154807893338496999598653788016211165904092975073421430191199463899476527020029089077483456995293396357368823392239952350008813615978340835906776865002389151449645179982104258369645791695030088150694628135213635953655922977254855794906244040339989308643115780907749245487386742332967998330794765398088487023510141305556135563866581359776847314379655745572342701985172805281685271151866401778138596835535095372214521724573052855215107887257079051065433622153323317631870309439840563010314017442880661304900137481008802056811928218233071143441113080912093898958170829222245601143022961579489882857059760610883929482099927919592441812967622507446143499603812101564259862472431499215969498169849894471932634488670602684982520669074433441444452467537290050455729092638196422062769201998930902094821171166071937321700564798920436455847821438569133602345145808814806542177795049907760558920557114421083659500458911595539563015229578917224204561567537824796074143835725410046170376076713477900153240033886736465529113050101338880254833094830475914462374523244585904682600165042356226933678041636375145513682753502485436798981608931353439507003362138147555451225688530774179414341061149931538249145114581851243672492668353878225391115115413924241220433309435274225464961256781246287958907626621331341155878099740592436579297084950214811453628192529241095161817985677339246747093495561007182956416923724980613803595220884608965680271345678986550027862996307340735902545250903145344380501325813299499893754722513811382286909998642259846375178410652866354281596519064099627315250645376790513832517703339910851480479156782145492990289299393140144800051219182602710786393806976076248492546198934146275032811121596787388475871448646132498458681062274687559381342102656136423915129905593581667156283459227759488350345643582207152694723463951957741891477972848894086742986058380433775949022516348507571409553090948055321992943491609207292969089569591350135856694409496087205018614959797959627680155159311380357669924386633939556570143394367841663253249584301613357941759997729961095333592256880732646592950269680870207772569376219532246856761617448107549686334127358118762183803083109826603338600928413615647392198214579708869582565858835293901752790892736296670720453142333051270511177978111055472484336528492389659432768689075745380099725227211919963243181181004159772635567820584156813190865071026464685033845276602019842026433261769436482190602924879956631254377532663243182744982003880600734672473136888577561415643764075736789475147500818525093221542058629203898494500817026481511886595498191724763500595788313009768991846264197010237111888370655536803763885845234192227929256699036704314321654179274503047806099056532388034589333929999891459099526581273874300050438222649899804444323759453158370711221702478919911944162528685513209049558837060163232528550960604972107128959066471767326163120040734509599485467655845955925880228142559196856802799071620145853016778819780157271478667590570739598557917519487500007879343788424762166636053480355427915785562145510776706999639103442829309186954292835206042061896261678693090129459717239152366034072730139080175075421830535421785665747040062299137607100946107628287834829146436279298142772167068334694389667923030565751327552807886050955653999859508272088151592028633310633247724719771069823760197020750229185902468289693132285277381742298846341047643325208835355691671898854303200308598177229609180701059579690465771441576444235137436090821786415222181083692895061489436894255417924100794649628221292919131380780451614255230512637028412845713395435712598678175050667727151755950889816518684533910461799694738855718250048565289113454245290963514589811318877418502548706743138172642573765787268322498016166759896798025953857248359902668180605953914055617576513500716903963806712695794641033175848319054229641134892289202966997330374918372109379327934098414197373355603471598224393247619313630844744462250053569424185406612978340148590211722238226212246674414442450453602909391958651169523944607941827847022144875858936612998073201146481335840893495564147880080876586065357653626426420893627768954611581595466653867565450743298868234945625924183285579203098200506602834530954922545828622322978076395382836342068504986426136874958763615136130817903909966946673868840276777200753741605992360847892115706370304016459868388254341500499863573322274296179402756397614569252778586958668730549118765500398532723307470462425630527788418622863894239143447882658295542791867156405800582314665126417026039115762901786723190926415890994609966722020854479331306544921512279891405533671643622299383382538399408228479533502695088750071751547492292036934767541794438252615102934723077185216892873401768454358799681139658321755397211399672099966134014644376557055844807295374645880370155050259011113024488212442499493419070277831805958493124004977302906587795677613467156558945980200445325375072656854554295680039609811602489886763290924636532201209751981581431291246074162892532104879170233555846548766047380627026131313675241069478706227607932664126844531670033177517857960144511503503523963592019657233607551008126214846494417084515771360309038643579998329997908789965114898300413815324928752359148734486972508609804122438578486028140275579304017905580603835392704498949334821327213193781644660753877490495540766002997418466192607673729936052891823247943763566628916314465082799513096797066053261596584909183056382635389221288564927861008605946650295982317206613985582945653953114436550252506025542818265110230983741214755939814700358139436102841607650640249730055366419730135991606576324405089818936341233932860472319282317963238331825447128109449417780042585041774435029708571608085969440303292968804903464734917019436934579267646684367412403634926677894147165863433854012662586311970876837813341849598469735107574755482121080190448524943898355206737609707132674943321105799779117961573628396274312478626856395272311545615515793841961808002524480276017972997318417939681029333843547841610959910714635458571106012016356945815744158629503483451232285778666204071044888325750503457439013071009209827415234434119672677680434587738975030071652771243392217217734785937872694678304675567852284467387252257086081332466966281792184011502129982175259547792337403490467518171128302187881679945418233787977750229796046600194054205250502782478936418696641142591760919157475668974660954136498216862358926343024203836708202476602670378480348499569656076323407871993823328954422636616874055657773736344578103727685562088073136144317375198725325663089672896990104210308107390342074024105051591390662162017373350242160599031820003745123218472883601744333507688060142636132498678937649606757694577737441537069870379966957618940228138013697250440888969214097351778003030662392045474609263123215802728322505776550354487315173012248163231468886488756947782908857045231511803856776236947050921803122892089562384031127939864984091874972496796957603283648954571358868634487368699446501052855224519900415672772522004225216860518672172765222736449677663417046484236315670363499065034287783477974614232315247154094060688375081599957451770323872545284088917415592290915731181461718504873098576874260947776928772732041088812188492820358956035260970850099336182488688981618877805665129571649426471585545550267148397994274661252000687356304415389181630717553064832930654219795091571515706117338796721112600467591339677139339831823927976905779383290744931056557685262079760938213034669050459460219179468169533946037686025365776947567214639855833724288062275521571653070333997849812929369905641150833853453296529576431202429344797551637371163668710645063121900208194946757728356428829278242325988461372834915673773634697331085901566314735677869415934094196306773003711325349134300302084125201302414869253608928098852264200587809658776647282352717907678736227238496505096642406112861494887181166138626884525802073352488645826838092738649691366895208507234642815995565201022150217192225816880171846832108648944662214434736288808663470603766559658598925441365258456452466712172807490509504556997455523751445057170230226438761633838337508560862465322407673823228044569011620717204984631465449779336393881888978471629490195952174257261226303990481465012611365414804962565105084455163467355785887556578886914505773681220057578711597088820149637600986275856514342137987211891906280309726750258337028966591359513883502233041854852142121219381386051243138594997535463926239207831916877148339311754615270997374807097345673912068336306596522322256231491731872261088216210082766671176199096355750838758762659060722110090622329801658705581366856936629147813809975123139803947084990190502014511465785205296943844179403521305485591659143229686493241970210803034579187272368556183760980274453981686231454086983867611154997003639517685572322824560878414129754451865673160338405686129926275314957509672041373845546311504321730561779119814408805575770827856404766312069754328489802355073623755127458482571450157394554550071168038222092438200444913375812862269233707445564079875774137468423242812553009842561458183063573420769992553000117268389732001992117198239668713531336012701083456099437276081542583276027389607157983635703923751923082128436147328059740366808566759428447297316492435463881850138497315225280393076984967713920257294604487668379223175056547852499780262905311992810847769804924984171350153181311365335924509818767997202274893317483400513144524183040658887323460795591855976228917524501817225810094309791428062165387217444802109976638499002034538833128780188535272950000206170596611655688591170344157107669980868319424663794045162984017270470158761914529251513337506431181446737521389159743056645537868383606624545441948243861980537392342883403564472982935853519156508953576887125102888475447215479458133187936690446350887050709106295337435380727882608111157104375873511724557195169266642595825636011915535262782887812964581150645974411444736129203364291531041994092336770862691971088810822091386340685217141985830008365152688265208781704632985641246083231159887389388050008520723575398754027438757581402604684570771087491132286243794147595959307637187044090661794288327622778712030641577188118832347228275124624682257664784906311905118130273347418544613678067072359281301286036991523485444309136170826510464331329219712559902692394372168169716738318797565193622952668477904654462614313652375249457201586755257142369038213245066839858201118326783480673054697515841614601345824630780405802097407058108419099075713033095717753401882167844265325645933759258879326412785642117617036341852452487111520183141879748684477400296160962509989905124372655079439142103258537583457811297801684162060944930341003733501017829218946172914630229491244118126700147431283769975158618082594773186245235227329903712342463900460202479658825741989928239416380212920354742298365118404748443425197534172699014922122555121000549725982267095918498276427361691180278745778631021525828190711393200069999697369189843697191812907664332997543186811534271683281453774910720545244569039776145730612794543978762031839186832233675656426556531395239810197443131130214320839105483517257657338330471088126765846105411470967155738908289116901919437178826660030658049496721587573326063112827048922776430222101381178616922269257602542478403292455878171319475688390456037845581579734785779139177777630536645425170182040318245614247252186828410716141457239888615477822447145441142093180805243380031809960482468457127669763739165554273130280462646279924576480591527714652295424478406866024105788474379482469477151811828135730687201533918884469215435120430354066710672349138726176439204298426024240547168530238036323231579175329961441692393369577473363789063790768542266365425953098710243136498852901426129324446079146754706409979763854570990886380083547544604778897078652406136042070624215908699776613289982557429660799590512110158241060611648783717797922715680829897398876001641197553453809054999997864520831350011106726887386550149402309222848318845261849262686049325810900886905066766168073680603456490118773142503835974595612256164244366022696994356961955926478626333761157898153654005975302865630840832300842734827993037995789242571514841857076294501070525376697644070574308826902169140206228948927051599477661364829993241411810816924971884746108149499502308983527313050560428226524682197671142450999544928561313688688616120608126772515132255817961021674491137143819140643708018791915840961430242671452821075362194277813630714532513370921843512263721751251120597497364220367087014704328234319309180499999719537201081643885453608210013549454946095420602792883750017478439531780048363448097701839690619996330131827275462003382551023685773868333698104180810108834559804427973183703567336415402313628584705734032975937573945129793281516686029239184060119639479701769640422393192788020592743095532225518508412536790796486973053348477388153618193292240596751243530186663452155460482567150475401594237398284211237408380142675673416221542901370770496018904785332714278799107774077526293054675864329582171764709002748291068549435118296322514156777975537088151106694820607116535723383097066234002777632874394745664380591186919110631635987545866928272177552240310611794706071743282525173077426401010721816694232095259178293690528568167170448955917371224692280737492702746335407999942744942009798784623055158838398469700250485003547691911709862572705690204265771765370067606135757133959432472350315456344890663008501772388920248362877735071166097965129028579877713029866114246781609288410481763728072798480639436270760724887243598420575848430157135471010017220252796015240762906470523832560343592679391485527711269964155053873820567695654432055956882168687473673013280104878592228073970142675891794194581812163586535146732270304470794459952123742929286314848748769671659327097223361809718301505874227182087320908394310392822007528413746806161330133263537095464451645125080184326129868212144486006994977282326708901588347121982460279534850650978287159724238924008952708667561557983943197085069423047083585899881474946805752960872117978548345310213933952608067179427229428097928642632088191372560175322581703980578009543147825782356529932106298438887756416773922692033948908517466986584141315726135088803027110172428576055832395560163887710945839937451357345854236397398463863096073154559909707549077691380550533058111600137743196450918286441459970158925362396983973573412410772476866302666014971700150050372768563040143188098758448904463299699661261833489105578105131133015489924280384601737342578216532268489539770671415512802825871376774667911803215684541379893955707046255298050901279535513191207744245337008353741937499284362047988393624652861893561888012440669380159414716004744249077120690464440933658140893730033912901973052678245607471586038623631251819266717305521181002881928563608483760778941887499525547109783308561062884547138771357436640099292335707011531165154083877441967264633120813623581059828498878467923041182026074650428209334074579607287028706838659841116926625067309493852599167144242567319974256371959233873691648248377340128790016051170808715441520812314199137825358425491065981927941167439627084555926343584630352979650097327161871647001063429378398698233272114749992600752366204208435865992922084979335257596249009916585842932766324615448686149586040080099816373323565414101344707522150092875346614524779933326829329254503129854596089471502677203316982601956115075891776141649223526907333372295333240033212683714276209327134638585086624378857055341738157290482511041797765386054700865138219865569379460728296486641259357062947471648069064140576773543129350138581707148685456841665314127178982642732128834803382605611562843418896293966308472376289321397291955023742038128840915887372486072195330631608084299867718533144986030386249777364084323154380578423792680400012261965829690777535721854772833071877946828268563342993573739117789785324482810272051055583027364784143097529963998870191316048955612113562186062785669354788037483904686584423151107324865728643816096343682865822900063038640785615584373351349218867362763607635543058417572369320199816810637527392051164923413620736551640981862248946463680090269698760043989413625948725679519903037491345761818175278778754240902292518630523006969929815778406618840395115030887122556321113174610446841758920904123415167880859499937459028659475911065537482498470499840670455257588666649810991885465257287065584199645241850832998670326617498482981106337440162224614279276007697718168127563406549323216317820520823986748613985828955493765738459395407190578659749786048115727910949845160060384418857493905083185247741753705582039672571071994567061390899329168721953625274232517021195432405965282619165399592609029929976050209696684261935384409996671485985025734751651767714148485597997022015138450386954091812880942648450760727819972948214827513900861406507043301132237668248202250996000632768240205289232736354530936848235428666974824248503219116694145529691108208645881857909441608788401414039980461738922938620386142051156445115476002207691797187102835177690824451039746838563976740304394227032508633845750874127531938111342590260492862868337829148764874278742148999695417113862841806428171566751867358442969639605391002358132912201445530962571993347820281961862081142215666061113237419123354575202285607250475318959272204182233959260904696305218107932101706477872869179837956818427271068594260689940299413166630549670886111387179882120183484388329818072549809706464193064979571210203396323199293971787917049097848478330595268408185516027465402642688435905789474734076163253877942171853958794264626471779923686381867744883334217373783562260940817553301239008696335461906089344627727435552161057353571574065749862495590928825478551374589610015633878732782380885144445077128873516871075139496234522375022318991301367809811670311393602815449355274739871762034588451470219175249638430792006064422463165257358518598368785063084288633326159709820216383271632928231529912412150151420834232903191441975896534959446883502313422120906260154321108520786818121874832732847086321416837358860626509055297272443669774025018910356434286793119946313475548723714734490210531617333293071816573960571141112602516116643538390713178534454872420862481693391535252988337361024987658259287718877385696655147997749874594992790681061753990152276318846480867901477902225436736800351750956690636087303797211516178720328948196078814412730788239778123951510407065480652138038990141451985942256233378107169270244894885267878512587635344420521196622694537016467147948482936909291355295041804419647465273854992151050362133750674288941260170777554721526445697921894557619670474299421218834858602410161944358334372378581829765529664931312627145089614767355764768292918398089524045921860446474707843939049352669927358454523909510604682929931528484580811509154747581622006261697834110100479672205991681943008136075385823497871868959611243563647055670433362877314969520708282367923865253867780838827830449558311165384328062754744292144804232963145660801386848793843186786051565702865612950799817402363469179127843623370786058364389367403290434802953066387645570031248671861255769427968737968602279198408769654752565634399753482190692941367234228769756024933817184413963211679966386629805687829566819303366476977946517396055393592837239559598782238358926491284293184778103597222074589379969812569419240895586034846971142738335387992462118730032616223130375005624096002261929157871100000987763765984264227807987626555209879697018794510298741393821177703319205631413196820774940579102952306443694922640239456279506183633853389670573359633410296945421889775493986683160233825646138756120679765622629122410460759875790195601021066451325859867622301025340741456592233139449656791126315443710889699343790978063454354824272035985489455526454534043509668853858976712793694697553124971398246155445296632000736256868242002885185650517365423850806653372842412065097271856357724017690483391137082355767692168257275150857847710849650288016164124156628261463432577575422237551021445784085606206528286804809471975735774703196104609523819372679124397424779305980940835212490493661952805447718121757843389449713643077205247307841687662188105384999741125297073724087448270808535129516555553444844115140827474421369211959420191450572804660569434899523601436997654172095904643996953665133933734871498687778426891754394791416949179509218858151964192458996071739634549722185670183111797657496840117243582711420106844610692076200499841948372817967210128123817977140230193211738770996103926716228977366133923120162886973314960072523725489508587742311119574430853061891615206130074299227849289069326622370300060630096663246652411152277251763407100668541837231171306372526045089080817052556357777842075139547734670253113707876623031617392589444957750636089874211603681560604410578958213087074988701309185794269867165553204913629636278886995810411175774949615089716520948980409945965825177055600765874458279748755419317044114759549523409986351913795789106737061818854555261699203000328124183215592647508625157798140465521520646996251890023178066668571785047118340453078692061988249579709253220474456869845447810729258489349811330117936000588030636428457540664420362699329290074896141624957521509250286910873498317010115202135193043757320440620885383377813698641540897678962061534789209781925578527782961972617611985251575206425218230483226305421718943479141277740029075576123011928390931751985179182765728234479809744183491981186401477027968553042545982228341768891468739417094865732940381139487296667867605104639784562235966239369584725101745563636902036562288249208557545348753493587004973849064418971449257524510774522424104973535999154513589544556340878914856195829888773874219352965293468904924656769571588432802893705173733417717301662177843479344913701134354259072183095491495333159171022056202868315689794363528523909883336078836753819862993454286124159073591808128321243819976701006097713175415961062919137053818091119956459075326592527555653674786366734288336858563488987439886171386331060446233506282523105066158766740020432931398190651891246841195072321570958334443266544381787652270831052474501832181548253030970293442985607766474535154707928855975922008553519647647476421680605848835173781540694273716013557728380929691587074689948715997955198633899023615023876558668040149225950944466499022068543732815122202882267395704828567231195835244191438469832191612764190235872456042902655156833845847676197949900977495542636824119488748402468037245918311589491478869409838977910768166715725330541905437740036701182733099046912604990045940622821334794067164326242836171178859382222455983158771376899859222478804943273573421178909590713877593016239282027486078502518966779991477445375977502086653419665216875549671771308368932709032226643300210841601945638227431734957516389372227236796976324755905872360437735746033214453132213563580488910074967078113169229628231391066540250289306676817634633898057056732254739295038808746607792569037674860064547443035733368672095545690211824670484234432407358500054425512562357473116434580956292011622342826465093573860640203341664579815192466619375589941458639383442466283555239842983247167225741808646130229463042115893598693549852284172300561693430318555539159722480237049108835650801233124877047247612892909046435674716659067239156820600478656645465192980507229305035188369349284368819881630568064194145703755378546962174743446917975356399584068267002314137899165942835877886374830962298852998348477841612081868219602792353068591943626995857689256101346992443346126603577494338908168532223270115510331182154178645170093622441694017383121448744730556950767358389877086876923508166657559986638181368461698782277969836562528793820192039176469215871666809298534135546008833452573632458999327978571505226923098904957314541043838380368534105456701113970292644025200734262216429998560548594508429303661253621656727001944374814965195361655617846126981444899687438768332708516882501581504676881513498129238486560341241931762984802981107344216908850022458439771287764591966235714409939390424386165526271644622442707252684299386265811239917070001726401667494828615803449974481963534654590048630708850279796915690179278197858994088105958010079162586102594506332392502914689941476055071130538281390250605180561946272026495400420364455934799003102035393031011422079449272532201041413669715618768182128882582536570496151548738322596158653922251836950787200775520285438801347798910807021362477108695899849651529522642098258032165912990521278660726470912229006156836691169091362761265183564123443052152372222352495357161906339122540866152291714951671184336203898858037585360819356151423704723788504812587973100836898208463322758804504904799292781537459387343143537814251346000370957869316511629946277344221128138654833963944906297173503328199569496724906952194014243014220250405590692146067282517476344458122766818576029832072432955107715068224678791704062025852349677592008790174542383748602075307235323049609545452928458374438471921248775291756553879141615006069014137858442041347774807063717609530345064292551573833516562754654134182111920130684508844225919299314881315394755228205568709359768510281635443205382500691598412289212488722456639583810309502039622453718320239570527833900680956155056849721252394084260681948452939849678588783591446438478318557602921813282727093508751257752700100699639300411461918111861148566006300657096559642852216036933501588668326700495041873277904325583824835145731097299384776792494847628598221842074923641815935541079533332841340647327799281744045248700734746910787833548335504824744255929324499456028444914794516315991588978429468672494086892848858828486072121408990183318537437551577074368140892410810811021360460532474515732514555762169382914981278641153968090941965405706266180307532437017666603762521117961899168936520911481488229579415701499863135701605551339459119416762533385980596907902512251922529225935672432778350680860579207698616572098028159857714639696875819880495377650116132372495900397657260328325482425594904161742384259217795698869636910752995991793682991590071397854060549836098860286138949716989286104523074683186333101481493999404582150549551471539870904603035604952069436914873730951220401011145076778428357886671342303191777654909147740739564791103607625942537728739812313165553868714111780013570745163397626897284310345359616232153774465951697293347372134803694052350363829754549405613601560420499686312465169111771580954987780544514837278731544301527509865482084884283454660808575395403088515970126795262917108880003064721298178259292021180393293233485073065269626723330696764919616150983650076892370197687601909857114008428817172744293641171215787543494156312303125431401429493567692519103548713380684406148181209187527376756385271489931103888324719830707172898554372359833500249267527069319065145501644134736334363132862466861296191837002939778807282930094738650818064860959257557360697983225462745126137934067968173368157255084150891567611758817214548593254267933769296828482400461177490456125263002310250530126092160118143443815923998360564375663088603479884145232936871207572194015334926361638029195370724594208790767032746567354915303834566096951364394731938295928159705592914266748019235623804057330816222317883279267479144691501136978715907351680622385999548924600303819565684590093303743832376790682554400516241258909597335462916305144691608415526299834886068993714655466901291818444261365227835142951258401305503642240945322380519378215893253407727790387071229621655075970098149767266602917776632498175832749302165114353575308485884829708791634549997471386310511147720746327771886657374845228999306731782129198543953880038045171174421041304558696361853908297442341471647212347908892878610869145374225062385950677166181341036236830886457218752746067625653734571892963231509404284512552090318416713916149584155531147648166625072472618918882151112811842993381883054568802213711884849924478276066150944295686523120587400872290624017971097303130394215401359665728876994062033387245263844273931010515675513348394804898920096266202109427830822315261962821328993821271647021776073422119190212066819082863491029379643829673583281394526849593081014615327207796185126865674502207718520390181316722463848254382549859053328395088572386021408879570345615767721477908037727016887599745390486788002050439520926172998995948880681485201666574768069590428697510409875435100556414900959207551971307222679929137371906617016194410270725868383818811727173494762508266141725879291948185461081697968324693650221121811943694665161959863290582900348798879056234781478378390993586906229155645826028707331938639607031066879310311395138381904607022583495193582663156086708869700000523495544435934273858921708033577863769690104148729101078571496512357355784487468566832615522474059422287831490413561464064820304137271981928678989953179017997690326322763905698766389132118178441448650851681765050529698625286365289938578436619993533641004947612991365967191340573558340242569264557090415805820195490869490056221901146640102671522303020918484768550286975973340439161572453734022416488427069483873296391845279549967566254038407023868658066131451071180057324934286118473117183747482615682452900329695497484477325676509685474464405307843941847265261596833084253618556002173599256379143526817947546080296495273348414595737034331477792164742770259373621083530465397813545096108852207297117779238658591598017864807924755060171232477125363888893133686005785030548411419896280923830868173375026780036935867482551055956815688633785296569300510858407085978256742212156272053806823343727976916316231836184380085987694820364499515791621505669445914306217795650899291142365504117127718911050718363650301626865676016906179108013041006689163734278845302934864262337420317314282916313454899820060083805386554683000634501833724335378303795185483105530838145247522166782572041742321210434064171807783078041973525537046217458033684191179846322985348202639236926611462693371855682122660491932412664716162972639524976786473050156291972990085359726286337340657032366713936320117090801551318188629201254116429535413018737596251779559593587696140485084337590030565093504442049568227062216051123868199671293605266941623956550982865925186504537598132247927784695719792752685261515260213941587167126774737233912913396505739692662622892367394175873621605981930840854247108524391877686721454791409654037800950475315597575395786311466532372925948388968916033803951114055476834905933081045356617767804593322643410741245543159109877087640682693186121593709180336339813414836324981350893850653819768519438325896443918129392065221802975618319343353155724429055656970762736331691699712025435639300069527336107137469498115022840390323560515211469385588245271730078178921006575304780133596911048057800780756591544474053451331991021613974962347546946317718513054607023986055137709118052928566792291802908988209356321863149916764095180692144937984482207389628259251928050604779911642548710304628779530004231659701835970882767697262453096382188027266805207639293335954612658950350835150815286631911788427175046520788808250328922472023751641411825307895112784329258494754871574650385870706148872360472080965057079714168189343746610832363325608373337427224507596012802741696941786376165888750959818296225324957597426699569783653075845909814243697376055479343977306926277953005278356901652137231385323333178989170976379115119350258912950270727267342284643217660007169043881901396979238223746561731430718282453411383529221465369934285213133609217491106233195582771641309549901089215285703591049676901622163874439006583137567728555979410931914092064289037370225824480656182492950006033229340622122594213037983271254489117446831376804231443871472966776067074433619437113268954113121088636714514040746191647356471309673028298087452527139058997183683531107656424987959375564672108052346219719732248051979623299184037518167367779514664743022367178138788099547132458933455615641022819663759173360070068975325630321036175642573353578605020163975069676554531528391630294983847314016390161375248729636624787680881235192267539258598274357194297702260924111218566952912423537375221309910314809733693983201712836903258622165629897250907802098546189224158133978955700300286671693750836416703933959331516475619657413574994783509249146659471072175934992804340062485364701153409796495433420894353523851592101565881128724668980389639238636259994962617747449588685478383274728188829145783198056644345562387375992340615847228282262978116851550077435865569627459768133930929129229323527722460936119666777319123578295393565669005064461813270606622379446027448222237418184179542108805047147198264161517263268047053781564648265988808745620734616546024294395161400274793823554192344768491531460350800684970914563103743913567302514579827443600299774146979946224682228864604338807573914684733976271937608647555639230176648689159823566686443292880213095097884197753535762908602740389498572326963439887091508887922332572186767427396224972104696226060823647055900649313121088543845184566647202477571815392461410383450267802142479898429231687840952922268046286484753620374931278061274192891177644733708792180492686592120717140991153708486556206028540666642995161498720817789982253559798394976245519231525286412496453058855389935761386343645865437466507916622301824623838522125421846220383035884891516515207871739275652971941985530826673634378950362211740087204989138944708741850346646749725550008952590168999597830422187111469378326516220851371129533611217833009482570267410165270543161147032897797849865642449672368948191433989251748886275254549227412666574837042354892538888604588900425216540776588957338143548129971674152221923226045512581094339742848465538563252186275438338340432830980981348945275941586499230158586397678161783268013433806063437915758580101855582872245317021036752396427512859923934540670569689584510663100395088313110406475955820955517721999907426214051813218226681175944044576454146993600755861938918173057708412400653506314950954674985822218764793327887294822305166139605349788676760114235734320015760661183827923432548004397346624708828540609957622547450724162169361561071569309123535914162620895069424509158193160522322257843805110329253951703788908714120803891531527354010724238292101909568839319992431067103429228601762601044420147802914824572659866702496966593957114183214189792071479097274159859267038546059380231577494916075568225627759189270620808336528069515319884548270811658444951285092108901991821181459201044642468238341487230560281186696076709356065400844291351188823886005509554603806457166808508536209790929954684365121530342071712502864792002661388669898558820084051850996328459490444845780395531049507865733462251807963198612625679748731097395908328481857675924062850828605869292827773639143079154519690457837601261178907236253545082854847681616030921015045928955338612089703691452874481542416851661737857079377400799307524096375433965620708314043818212689201620474591620898423107909690364703612653561893469218182752556710767572230358567769820583719033626914096087934856991065688378971506734232070642221699563917269137312160019643394147820901274467720917758004053580320862596086507165532483903178669397669128703001010292229704842663444106758580873201669727605744512176281669323569553340096904497223092542469719591785312350917414153210584967607086381587527895333532718332748408605988072712849925147748660835461356820316668957819242461986273319602997992059855730299169235755712309517750905936651010366135224315378220361938876496870253920767723422120978191905522392957923561269308954620693439766865713571384885745463826084320378186035576988711290113895227235993759428578686338794767355810091758089369363550627230235640202999138356497444059403210701014062590687945192826082144554150909805389063307812284136121086629160866701700376472087558033316093324891894715926539102240084508018419766382359632750383091322836950938473058522670511011736800425372462436929986990573521968606843560960595638738523565542610523207627873288654427409246340378237289116861668470294899308027797543985341526105385272150703393308443947115685621312492485312213345296855628302756974895377300727438257596152853517040020357997309914314104986511689683935356153708480759483684136779840512737579161511111734827940578228521474303705894758235411191954184040016300155813348146862713170721303645705892149541968247022561583491910143563666047188567580428751421462037032833777396158868569785701527022954438585011318007326768647871478550796979237255647266499773129274531918418603860840841664097866784423151193727657005695433542419316706376334009798305226895529551114987106511159115673309113175175265904932678513359032386096411905011172661098341431529091520643225553172086279984325812748292643549112107924739460811262816055363784674612889309215081891272460685572561539157047641745249513620603217140146036683674620980541628896350744406573792881809667901934986182470768813344892859028537496046943866438759145139599320453143263019108638105266134637510934764177852956490202440119390608632347311143080689890625284867451594773430799796761440677407331936433262530564426926278103061989578150168982284555396039078924806569851364310574824758098632410377495883655262181823084098095478234829281619713299568125389897692321093675520998667879970651455847516067704930299578255735257655287380180862333372221906482672120733888490978814486863719842058313768971244718558545165071590219715112118800843285287048886060342913436318100123317211582083777852507299828857035769841506818567933869847630143038702363817438572871142646850754553044705639978839025658999830726547047083077835996065990670232550099698301773803669551131898086992406826343552483548846964445856820918725096838809182209610764566852047399680279503444624497672416154827538125905192602330558019013092371368777317480079775618918513326954985225410132066829823926250476173474097831045267012637884573127414761385630936215041244441919653347878164847325145078368201727155975854152328257546247850750962473093492781317275746405344789757426433418056381330383421801399717582656551936943595499335203554676886205046655697373343856460819540287112947492333317656734776487570908729558412165338931747972907130556802052351171448188765888657995466764444190673045865084486814311162915578049502261645028912098467834491735438091584347723761882732547557978806584720653728412071485275975884231470773236858226440619844412112151611248610684091592283293154921976319284790810579207976397299144017777340200581934561803925787048148769825506881012384627841090760078383876458196196581405566817025133371177029547941047044822038642521335251899694142024184422328420087326507510397334749666620640483407123349786605840533490935381989508468195519448585688542649167891953387009306339915451208222133049229998364821360806787816974614626731757676652484596186645827082101574010161003676028675806675924416368787961217563253417354804300000222299054361878294482509057353781435729913201321730716381029583427225400835728097154084502088335422110013061301563855303574732166028359726778260702917767615810862279045461160557538035838446791044946481494248931449508925926155728107938988506691366867056561420887521908598550466209539777641339758530257660596518056912915233010098847685713078482615605746359096059150822502392729620668811137420410685250989753474449521262839996905785703326785032961537169089970971545886152809306428939534498798052692564559103457822641171999937056902580022731745749143206669664717467277836564448229659776696713272862477287203188504725572559808631840390389450914834634937015537050242354024335005531848463279463719852036785738683522203139865675163794105711786134015251061619284377209245868238346891234194168013063403550185764981056858056972205914168434272752725265985572490277024425300032465423044124425569198025332199805928755307835354172135860574132787694075899608765540306515758034990762173294358460445871263832342977717035789836570634658715898511025769386216570355865135405378297959025775582072714051439796101940038707159813019460057750342252273573982088319058418788059254546314468007037680241864810355150260839863921458117135748545282439259319448743929983019388071177400747642527089204036544345735183864473543494918626342008983289056303712744490846241899299310053313171847366527533961574452894159067680746325158714929651577236215751029117282961265456558843250272569973639945372775272824600094581265821931990904129285877901274910814361325099304495018464875010388731557354081773696846385879352608841652418211156964341210811467507867560094792871968253386578890814222907032701793038247538478889042872370451680628790746403138911665023438999985021178103859220894356043492195099886406809556723369605215858954808501619670318157832610654582691044757291955293657036349594580501253088608286030656555564981299546166111009991304722298773163483812357035945995878835554241168750482759779856433835408578345558551944085059975233062403714106988632529213876980898970980338141344116270534669984643702910566044553507358375967256166945570996209292826194022205957238150898063452101296686998395653835924563706005485099289077786951780949331292277552237408183623855589354332497235772561628424058611484798979024598355224744503112956872442516110108592389250967739233088699904976231385381797350784712887774669008718893423584016464380050922288772156698786040604771133776566268012259078690907824134117869426468830834978430626101644392805030490115669236018318260238934092994754574765228342273189581086428131380622033432810584434510290033930031158501094764662284584254465565603904241809384325025618643916369870559365624238686930714362112442030609841001776254986820076320281854563156569742882309136369423627081910222329963559610706992042294915956087474458199247831916782179840871662046536995595105928469817214875515892042238522671333176389849653420234637752536302555391759453463082958347923539611513527573874815941194654804980589806089153473848814390332794537906264805836228557561950396642361078258569075783008612489574684097588969342809180963668304361469472834633445680561529102745084616403046758309055917168491275620070337696690017085367579765620804132069250059811546353721756043924795749870292818563525070278069129762009428668598635521121379287207732634508962298484609164937182853238953328446933039666266697449887545880836365171160013448227833118717624487734661785508039980815059174331314032252742218908223757324909931491701918411993248616478365684752295400749203446344683106969681978473646923566058255649495054658439313942213414493614887438597629391105838716837099176299902884464079008005436428881817818092670407122054658359808696339550103954585142057886942526759690378914119642160328626954974679581383498823139695098595094308786311069728989716808050392980811263712337423124133094920914548392891886977620657329006147267761306720578682304321752311595149122885765345204129934386428946245202084478095604201076329917722899890936236418049578603691461464989471002963991440611214891461699026972968145034989823821240681558743631415977732868173875775348628389676254841584089934738562059692355159592437657272411490095164343430973011912641472652674983277608519049704057573452195017773014853203322485286210982605002044525876281172761020864584773434596808622425708172594575688880913750406698365851170781254866524706496500803037796598396780071969018846807127290082753479095314452892726730525858288685207150337486877813838483120386073930380219772353168389714462193738301579893836061647420641773033460299488630437392696435921214614792990369760099204655774043732712547583107068542015369290914859021702941054713727420437235220017807788735361895649547284633189910267290334753875303802900338492232831669867465814388088709373511962343380668963844222548951572813216119431452944682359965664692565116676725221299622664038533159929363636621062751753929021535497384738543344262407108367862059542240189618853627250549310014890812677592630158034543568214593877452542189984352173860110205232845419059011882225209410890597077672953354053687642838411051619208461881156659052708154246494086082827805736534700833843031084628138488012320229324175288142362210470411860679966683172850794978285540291309594127363526672511307097656902426505757847010581610633522698150163562052501772295237784465945622992133769452493055523905419920120842493373555669168065365799978051035115062982643620389897562110996793542838048553863931203952391523223623371889078207471583342867001097145704449496990188090664647107500859025200558585724265457164496483069999560110705653940896186428941961914844810334515320666651836443402074369278422251743653637837610549785125244414877036222659705570633764118001442742167824774704957287015539067997962224230247408408814350092155309560539307320735268824653875481680962282078306450959097078604731922226411372109659079627069735657452780653559334134952355032071861912250641228466044092170452940578913313486132434069059048144640895369462225944513191113716428168556457473421900125010398493958370205870798560724721821345667173911636922097230737515951165924368858400055468210582580166846691324624609016024426671366833078383352576058801006919808388599452621219449975356751514775682945721556648199309554224337687486930957786602291362728118355122433362265970407938774699981200874950504562428243670259451835055413679227262696736610465251295210959719692669204555020176866351156439858858053547441276702004092110994657464827065301712040056691492713389122980248841869084874655926421596027969906267265719659577334730609593107224604377153593037399983241134634758908068185401112618803910415179754882393470416922767642858756581236118519739167228354801822797330144092395848639775014857144496539439131835697565206191580241205021066276442709876969051010360379801713649307473340942362810398220245775452024976137168369938319629809360612661187444044842808726434656550820557585491472707274305572250036312637389222623730578817163753008473756235516706379314227166443226173408886374131487505218119557232515152798497651601347441951143395127576355032832818672799491554215587916475817588647152451715929846655427932359987713595190001295825006268482580897822800858441292740710202637735170327300604861564732394591281103519909789348506319700207273624700454356624801357840002034481083974609678777035235699352433449495089671928957521253171723453296515965941757034359718119597452304812635395988865881263340786429363497847610952597430955188142703196704059206894304314183899042991698028916353025882225470164902022922382786384934369193104428054191958566423904200069748619785858708493142224424981762680431998161527056635457536188196746354892411906791245318300545822847817718359506507753781824920249080404706396438479283873059547706002668644938876391756645234351791796775059591139283932388221789048207707882681302169015561512347311960736019628863643039206252423090169465279557811565393364053040575662250704619510940175376646665291682619931588512581945724630582219527009036184635106109506930343719611681992245154225318967859096242873058841835965744815405791955469328193100695682902496896729909003105068292623115787500409942051235263859253610067909685197622199480510818113394667729143400160054092804152029933797038046422231427914260095456310277447394295479455901516042790487472105275267300569731462873163959112634175579343702281180945873674213299626028446259321767517109513890154747113349354174041967498711541189017132597515163957076475606497736756691346619434028530708611545233457033973976178630444259770959463920050976988819888801902168432788236456843793950728220485629469476074121608665892972119361284464054212702831000792635701350023942986034351833180772890639369708049063224749473593468763187222112648239656223618963178794802439164839698655487195156502269455074010251755037233069116678121179439235564568902554394242719446011477495079625681743622387617577794940755624395505184741117926559976912420479056590566283033717436516490001768422792109086323076441300499707386783584174210098290234788002572735946350108728540701788983694396341404101790745104745156625606555139522657025459532913753240629565420354553427555244358679473997719278942612977032776150346068790039833436782272678932511857685374656675624548540011139249108112184363638229357353398145471957493097420622380448358477619953219129793647155334790682969311699967062911836188751930516620018391886658403301825080663185515349459928106725838493480750455714197457240824231791879372705428399385385197025118124009933303130388375486844828704851338333094128530381542237371944551313649917048052187791818770458738027720305434253749076446525657303517818002655407633239153202732245798855544897642047494483619712452722588243680462718762690125161569991333426465662614575216161958559438848346042258105325657491184229000905572151030182159738576927319108817742025933087494832319504462437743369270836972466321059512784803068837686975719376833673258469555799349886697073134915711284748644130143859264353059776984223695953380954018844859938866490513851321255238993791707953645740627702448752688211190056532794177927664191330818716087611273899407697008919064860438642588969146613124201113525406962629179089686553312644252624501379302723795267187875951086521370817845444744647365372183173183743254314650358650590662196350232090308645718708340026643060122028660614744925779902954306065559058703361795402130926529011306231605668613943414682023205785729019367805017289488595666014317253097960617514847526219843801223732951509156884909103552354752332727572200241392992510398547677901350297966531983880073315008254447216761305500582001269434331306460724584404035476508460299200933263123805874953386651829200746780317035445067967963415326989142501362009437663745749960023451170593846945959612381192607464321776075168081422429399272049291501159201411361340888256593716172630273571762527553559309626823230402957664517087113208418623850846605753000164890552300302339345554077749857127252225591612310375982178849682754670564545831760265647938854564127523618997148596680430990387128561948435164685054638840120705847286253241906954126853331826651156092634174131178325667770030669903516598315107547761244850034560354974895966075439824543026192530738673915733278838974468125358507126304772892010034704890329511797065985346628990404614335571072341726433097789858366343296382486475508197972697531473971765655436761420863557226246770039225198258924558820604273695983638036553844456349009961571859834370992120194081769176802925758769304020424102059869522820512732253549895648430095188974070144777162476803756642177867864153083050999121395808835416781512466675333936701532451918399418395725057566622411543186613207019512283762999997169105111900721441934519216758658758561652880507941686498930703357766098121822360462158575879146501628626160687331252587357164979914963724762183725012600331063685099838458822113142516232810599198630136238400258915967118752521872641284198366898738755612372470655797194867691026824386179405326022065262853853617249730248897480043260738105641349332988200393914795195057578790634459889181243204918909428995963389016710619459130340975939512366814461713639161239706395993761205285851649221488917803581721584501787042483021552139390115322460087881403860452750329809482703446283630523449450075886356656442770901301632828632027379857049362972540021702371798920225634098303520356626991725236311120553739230884322631693419946824872114659605628291368622773469829768548068182527971012799411412483663404928408470306243786119367052015603936031218064119969858353105051625701349543024794836807510019167776578073857734876784533841152761355902589739929435935363643931099725689367358078637326022839025661821770300143684381793399989934580211389270969639806024161819473360141034292827277127401773631349375663285015052813586687183683019116555249587823279361300353001603347067190973482969845097080060142416836349565363079695704666565138546807615804701426650945781022501542829597617056203289883344319046017565479010206224130580120027572528064464934564287873611436951140510109402937431573672884327881410987411245396728232337332529434763086454059184833614254957958370021527628444114960212953612988929018494942055464180364305713079275468437914847489954241142148217690804115149262058312251587795283839475949912513256236681607459929247069237745132000710608408358418500303854446823960480613967821004105952919224013214513523039332962078842903624806762053384358375260137706125682556722807990988273916937440190217779591742037119199118535187152050281468902370814511803380593600109436105106434902202338811082310157376820737137779006958703594898330138473707187925675420114752458340549874078420281315589211722100823326211346421103746670627620325397686384361841544189144274796395342525757853399890570372607172138732710824934943765665379604508080095501307523494705542487541156005602552115009169709567836483943186994841630079800087823562565791540261685547303594779737682321660416622256349341465827689669644397960468604462906992986162590846361875165439938539150757829182220735931463321726858082813529143439613677955484437607972911741373620666884254566081504325110746220183566844608030078857809558622350123701261724744582117936184772153014855016549134448471764616044730815703290008837455687315663709207550994540538277955136848499798342891980540813220181546687803467788967961049423084997116960333209995682005042698034358720553657603407386831355791773210833404206750275965917596029136514988637138353067924866036914792633491336644396129356713320537049745416479343933089544264082257611676612773831500354583913293869706429901640766124097773537048856809937649525061798668621969961201428562740511459017006335561832822102995313770282234452481378262203067028596570927909426455270604837480304899434612566460588516431195183901527248075523212611787811532247369035232975591827249645399644320217146601232994492935336144207701410348189452875518948180180053205951891254241563838200627732462602383782172900550964352591869835996217908905384731533865209503314511934193195670118431855285085972819480902975775303705907024751853861746387434286318072476337748702368201231899804395219152899824982814188354333072432675655078139564202382880291963424176224081341925742601085013814832303512785993112063126227639294518265204657015436125494371557066302371020067237403781656755559742883098562334657333091620305565329950421696203701987525196354068959889380519644695771045010274063488577509328823494065597144599381742812464789107002204031266297981123406480747526941864041796961657279314382754031779336073336893946645610771901118206639244597889450336026730531036825488034002289408841663419233071444416458417847593861528575381970813257374444898996097996771357432065309788966631645354503215387562272235037144266641745608140565585329349709990693796136374991524831870682459433542141729595311030228740171398215153316439407145074929538533589288861734327459000821227286600980690978271988106205295174689467802778167808545380794028790698377054003291237343207787794156835084970169072840368457940942831984996797549819080165737324091248604440332025549934853047019498375406456055247084645250793544970687904546929776890148495034249971792414675383689216267375293254573330588296363232187799085888944496201966925962528400077200613077211787996776497395993261215486274188002831679680657333709736866905128074917729251489698770276016796986551351683990588448484616856915522706786623301898946047259473344213132767155110748104412182727345819658706007528687270416059167106690183091245196738560288560211745816983004992840331947508707033624412076109698645562271198931135476357492029191749568394380437621162141354229283697979116349612237561480623339389413351657975433979663298293923312403740414125752450153125642585823365448130965418036129506891776394698580524753229969359065631697812541636440646003053949301720233361640023702722403061442527770465455788418442940773136208139057350010005472988181243694546944992393499701736313437452226854563142656005347484206574567960830370027624159570097398741615209312248148554259902690990669798249962974506297612004631869349492348153248694967348271959681259690799893454996315570578978237684186475991677419997862382796082135673814971684185638509115790677820868091918918792955034295129196523224921728108342164185245155764549773026263482657131716240815430429725257046400545258995884773879528069144644279210823954236094644580497141622522319045726412038226040576623746692824839247973448745618581520165780334900715983859256828247127927936936006470697106634049424457455313842020475425819543678589548759068368412674645932978010793679019228186332675234342540730745519452109405502823590991130952947737976727699658743134134640554123735930228458149730775374485856524456040009383339630686931312951149864626554560683676538701314897254926371225646043842159940809011790090859238012502113572466095817050285571854657991233440504454069301755665351950552452557898594997310296435836331170973729187642708034182703841675708238267629620364990069890657649589080282656997567549378143829686799948513509598331919805318132058940537096173162373314790931554273488873881849269305157127993275580266170581511245353770663621347978187348603463668689275141008444128713124054226159155049895599517648146800331654189067923677180715970812049286949112007765511435514335936440532014046000199264052586519133817840573912395364541209685179541644662499215569721767723434772266045344115964332279269651038926158830084871489314065358273357873020972631104645012277588135929519745507167315699543182297339085892653036370608912859753596259351234054068265985218984579039942828200522907294223052459512070591363215510892368949346287745004411994219627830719097750517019052946549177856652384928949971920827798646877462962116837938236552875194890568723327257288211432715379799788880635816507559947842379106593441368739096206380283881716805352687727475783593723196889506115568054804096686624495071768242944949540880635861985769830231020659467140804504164804756295056711948248537561350836575022194755600633017271102049671145396492916722733842472094250429617478874631312197738907459074058599965110456497586244422446967622026110593301162503654782364563206823087801983649275928510496858137294531832885640958481204987769224678963565245265664956730475157589548211575288028250445492897741976884254439600618169135915949979178071390350146289418530979220168292985831897026528725607607264022230066126128026712736091996627766161352307830978526743928279063079849888231085750011809763215664627296413892703587088031175534620424294875401044178617123800382743246282186040670764301396240178065355390667389979727056967484027998174656176264824135422761392776909836104980419567446401943155351067924418295015775098428225661474257763706850067138500986361960551994204617347449432081580180698326702520541124588618659417776030741569296138949057252866905670856299379255083563209862188657339258969763705416814570967833645738241028968732019799391293802444267440101416563001488527828186970742606951331397649597385857938446066063076175126986509693913417218457082995730835342671161336145142755337796602343062397572450195383312987202148316605969470775953208179615876241199977043635094862903309383342004548304399576853461898834955329867170410377494879675674990785991207804507366230410118522752418638497125905914928483399265841554125437031127107135803648085397179763361504756461486939919835506809888321507990458525792125873683124235129517117905112011089847743069802671119629837611313961056063552494881806889067857249176200343326815434356941338787694540753863305038642931606855040376647467017731281021005504410770994077257530303234534176176173839403065637856257834314620592078349675342165615065511989190160314779606158409857912005716308805346305933399248495681723291353931039485735183196131718382721709226005884040335894469897848522873276166246748690880910596289789511833320538599623265856827301950258303579266834387253844026259190445365480820388500923196781822146892269287976101490089861793930416222328174463697658561335391016508026465792216572766438670712074163953063569302013024199317974720885262537238950664193215562783535934186816732763193800869004508760073311738796782850030116453426738315847979990890240077262302590706541318643741780472319989238770458141720475149331865584345975956137274618703868994319704809573445241959214946033367381322821482786144996371824341704242558124269260024178515198518372146850269733233136927372441638467486386577167847466448580903197097843117663257817651409823150218604236181391382621026638513135174603023276420885611550961792631260922080749238438997290625397283856604132841731190332558705623022925767371827142119853146972146735252859758956211681520457734662094736481943270630952700154225555000451188952764902470978099152189099399641530578254564022084419140644892410007440216285876276254143312501145280050900329853951054338417699745299507914521124854259485919446999444051024829198129764098951594474964625048046507027273426218972371727746493802989353697697079119241922546432198803975945315974472926315853676847624122548566139986293319288198968413611367243896080753936777238356743917772047152316756362788392846975986647784671452771252802526362298113343032463361573404484689380552063635616095036779490095490367944387196215126581467164477367199346529982908655602263072109142768793510156505017232762146747919039392495901041717056124143506430002435560844923329423031435365603520635428000424897447805707023926188603767416143553927759113195910962769269923540685657169992835553107931920611639814538318774390260291314984693885361904068876256207462731201027204088997837577810852661254216418616840089355535660836939867070592191077089703017285696531321915727233100814036823465122450894370830872882426729034780795958196577202991913298628804887671132295637904329812780774038160326509346290141720636832629857493035757588227759288394208474106641498679088423153476559654231277121685594525432976529830098495578109860819696594340321075171354446473371916311862295662701476659438791925822311568306561494063760820953589049556945382181586494527315085341829329076738846740077894871967446920657744790615394080519531016193066819837756220613348650527066407775967382517520137252439192687698063703773360073233165472491910572535245362389867056981992315817956472961053906282784138545365624878663054466241699534402584990007493730250384640897667146238208292149965348628110011142597130447893028376446729972474658756980732061755655179505193910231482918505907163985762522587616431275662185002718820632355293926075194382313105135503049296047729292879013974004679695722097217096405536978474411185146892260249398572617128174799640315745750322986671976320897526875369719619016303299549788873309172338121474854455943176519790250028947560173312076442900287295568429377483771922959219329853860127375907068306035857843761516852587766754959187275037932120919056067319018876666350612904173954366189675867377764827271348391109408357246411556189702401860243213781817358284461074917559187795251108062612734198834428754300108326591183594578753073402598000802171008572863555963277318449085303093308653979876885345886790435060144948702241399869858769912870741679268045023614581912456368610833794774996292892167831278287067316436880051516832977927689337745463706970184445190445892617911481897505283016073346336656041412953273698114128606366407631099504659313901746460749981524513459839731908446100017737344239243088351524539358733383442745512932338427129946136716760187717094509985497173572758546504362454583024309703567255680878295375183712265053704294113925693413278453176462876378795511801442237220466566131628400878703869356761074762261591325970075487839260246285251283024934212103301874621322157192435847764157647048733207424977287182313218065072927349566374673061859922911999036891184070440242265368687707858962331389517884731460237151530322967456392492122787600509982654180914946877039717649081995348731442678987751178072998125313839411381157957148981199038030293463080953152854091929060038829140137048891283514662610588623690403658841585139531121394137567436032854897319586013310729728525138887899552696457058697928884691431809709100899595672821394316766475752821927108937524359351525014932779848038619531613882058274596426693821607432113768412070823358634657287765499307753323842921272916423591283508152923541777987371972856587887442404538856228820682250108655660461516369716738519073635321987617295724674905809255312573249014140542888073070147948038427160538410798983301665430553132685326919187379060251095338759115070225800439328308027025156683491247708680488340329477765424917237732831176264497918211109994117125218431791856566372502386626863291608291310009069202557054543180930304390568957581416891138720832550646629342621993225136943334280588635495878599514744334904169433651401974937250103509760292831328627173483641551376363789687756634759950990958861677022583050236209365526546113357124741964476021622217794391224395123807391696825362899017121058429729535056561453040903042373021291707509919923177365997411133106010789235362316025514254891669804136236485811383799560634625944061139382963324078566824214871382877191721099943295140845251726097426761642833112849011415714135983845832052633755025051691664054374813857950677989015945071851635272351277130236002372534123710244134271488573083415139058431580004047851809423281579317966263739006056757483001612027663196180047387594610937082478502387469756158219399978184197824857939937745918911739685316839616067534434156706260872105777588618168155630866244462616355575899855054890079026147290132053138528101240892311607017608288933657641442935562631797745415998763291061634530364847014398984417336178483237390117710011842096801864322611265861348510116381780489037884870500742135259652765353727712114156964585602742899694752980821179081222016533391203684241852256786878097009802357689845165337914083854471285260352731451692269235654063075918221987970496309380635209587379813416463536510674796801729194513243195850506727439511743091307580336997022077845288728421394478720379824543819532827300822453885480753024279062597912023163649123472988240212497153828453055486419308947266337487749652916281117867103601542505426996532499292731214720430370550570309359859797688855193563483341644096301325387021428763646863803184100536639272178831780546170309334061434205626212299832479154748958498219865909218794157770801521913425817011158005113590520454832968027447474760515465180558264414543535151881591008907392212222528928719487644131487316356156654500375732350640980126772925724169262332830978304296151969936628380888632799797881515546163839430788730315728400674411775029271153124965968589875875831510978925294680526779902844016242677546675694028140707064315079079990114763587983677372863073155636385836511764473261090990419849302446067670942467987847457822636356341073265886496851304429800783885476476272703547151518535657625871350411833920455685826388760756295803007913548761311834327368477651989390224776502220549666862667995227570898160237744832929142190073388158846361053863788164768778787232240024930148151783294781159542276832202306854565550990522643513435899774829255111550595585103883151749486248074549737012082247004265168394312985599664776863146118466069233742011515198215147571559546567298941255341702474878559577778970428521526180459809902743552852748328924700714038787367123537501202504707672677083946439230125616039401163745243838066412228284546664519150093204480050270467406412060398906041622575483152134457604288178796863569510929454779924651948434519799979145851140500738801113627520973952385458789532853948058773726501902600482516518329991251299034483271090485563026098731795387911920072714112524624560042966158599487158766956570155630893605388644655921883956689073769502221101241233204628748880005336649206754724822958054428365928828188310775359227551225966504215138947434531040956552972397912165645465241529337218309325718570339569481298939958402682644916044514917565585478855589808986659854913409648284140906754503511825524667669346877469492238419746365091494587828178464910740810759433094778481661402807495639139731181170460855202613168617222953978346904409936412618626117061859540617193299888424049016801236643729389585429468755368286815659231096493596609369944724993440345473357063949806367776622923212242549898576392697811795331993951247300102741443695476489578173387499491618613640005750476809547907136238720287311884137443356352464639340179154212289374838111320577771396222601940128771875929329056248487882494236884824125836610680799890949650264865915523029485301349176866701946554343836253086058199657795943817658201966471458047400907720206775756361299168596561338659116914606979966264273841175914798351035538729631662203351182201061877197131493831203383589100543028066124153599862830979790121414716652957388738688859705193856831070706643821917609690582518049785000065108451491877917457775700752593975337011073935616903093655843538271303595561265663712964420764808217277957096142613397726668057958563088556397534280427518561427385047082820622527376085205812991381344914207723891149173108912745452386667127538671205247378763360187703480451518547054641687175118211734943878117988135743396248246056930705028453044596639224463637515003557092196709789450469859363929626027389269711646681083644813894399484422592150398478278513737896331005379003345343361192901168923347184420496044798048468329448831659653972608755865600633649564370234180967398837030812438680076751925061605521189942528208643849299654360304246484097941703087054898002991995880203178590879187268199488766358619805948198323093882135601139903485310154616911917348220820842889217873195307063712685285604485785596691510475395225658926251493143531868845274830397359507767228045347748874692136094686273352635442988836407512846236620225225188531782759386849314531377493434852886807534342253760724541561664089282430565246043229572304376728688971626407403675002816783665279800892423368342002575787193418833374715021607816645206617835720522291248318914545100795009646577546600814383986656899021735604965886798841441723801608985820185951396513991390461229171236844145754096068230311933692358570556442286809338635071310217414022622556842765151838055774075597747238116863381949057069388754868937211291085564207501974028147074657512336273586751517708079968726337714517517073177371734659862556803824205314869371836734419342741086925032739443974782361776761758281938094105676742997658653501314709144852538834961708673347936392787978420492242040078473095187598326120991869624698799341766008319430590648243595283652730342118025603097135041124984892537694967106731621272598984555057957855378578589893400498622524074740118636325770906228661352544991300503518402011365731459962644592266543090277135276428882389864317310574833761964600821473393425046341929653850135188292397709802122090332320682919453160800195711887632884479437238501433200826364747031674601302512513109330024581592737685551613302606533000384536274497908952205803828755423051978231392756800275969958280952911347789262096490853397221043293174484797685734581212534934926091500060089463893357054819432992802648858857345553786253805005211984881008301316632142861101505482253506192200234016258534255627299683382550667530972757539488634256496784580389636676477983000708057807357021582528797185577689923443544735415469026144786951469994376018913063594281246813431397961771786363235477187258175922034334173631548395763524825474309575706520812675696636926348693448784471989091957641071323545605391944443121921099159148352240299340761178380657820876532565948291521148440562434634777344962899860308210838198597486910862433347671213715173487831602887956659956128636361477924737330421495929507955641148933237881109521551393744377183111876985140135159925988997714369556792012442119410346230531224947456879112586174206718491454997620725545510895302325968804227932291139776881047631488413869718635887612493941748433497006867749409550816519626093717528509897037141802775869953146651892013431184636338011598887010068241331729966344970121352374720548379019865309019156803878354395928753467220895561759832785448018839534671660848782096530360281244639248103012060074571289810781530393519717134411151920683346015582741533775400220240051538646520664091497365525075381292052876690552420521491672050584245110194684108183646757430897785943820282389174314003347542798376218192068302109201485129624117689451959844560585783007063745275841563130289195632477932775510870287664546721104879723534764961576917560390625190111612427753136112444859151764140533826542685081972338931100072500146330239759470317035338812545755848614820476076633149124973560940499168441139708077660224665046618596635054882131427291413278797617725708458522726274887986970042127458732515731589563190183239531462579114499043977857908702731197563326298379776899153928710774501931419795488032814733492821327537192900780033778059065023221713663865914225413324307395195325927175877591837490687256557526000201029740394232109275127200607820956160501428130303782119518827104854131882403107959252005942713543014429853469228320227514466588163418760238592140879364388541741102039845116691473834071950998008845242595358510940818025000567244877384196997755930715867983421250905834144251860872268652394361143776527292453766273718949600092338517984626763511160020796708769437773231930759379993963212864543490040569477617510963483872669396582321410923104101374867312074596922390401723146675279302892679993789381749951592173562364077750997664543486989061154307894763876021226689015814495951290813805012048250500172680086696841315728242672337861040638909193994739662924683934166851364880714418440471464840959653491495290497680808895516900507741363599638448362800770406270233895672789979737731615464823927528995325577934008584367175503692089574908256939216787693329605715317241151447295026589257909682804448748087036779510009699929649014761173897774113707728605676028955402359250629163713957068908244079049947712223836641387956782479591701975917637630201456132806853825479111382028312260402537717458203865839296075546062401673539051654280238768415652438838673123024759448545197798296006120235890076064588926553897716680689362688927172635527098161915429660130209856239557444462894263297127009285485011863832100697218070648955945011571326231373429428509782964599654036643389870664196359888252943411147064847784837467472621018007386464597301364944190818635921580202416377108760233150202780376135873041342226492992384872242576782706344533286354987101368044498277201670547147911338874422479092396671382348605552791236997645370765877704077321971861518707114579021955835816099670876507986980084926385456751306277469810598418068092868244794043134377901448983374817091240901138445773602259514047777447326633540564721724849878899434130880040087364623540106088896620706927575388874366733357159543998483848075791365931186413343277321134109688370622028279974422852402608099404429126758929003104608606122780993602883593411143232020039484494966467045341047076248127561958771462785478457386027689397177711388011760752253690695266859364359817691765894066125849854014640905273921338244177239652972471173093257567356209189788140673837872476676425228298106055218577706567589693681114826614636049625445683565217866145174880400555243036920376379887317122550496499306217616474315956773936170176859333816643785653369388269075080016836333750453087817092756366578054435023353628284546148562575225065770976022574658768105611389182639273353245347268555003232257436306295058273705640831860641331940010822122019621258149329504771731872917347595369460314981697765394584835897599234406254323886992299926083120285147553070879532725774271323265108282785483627743908181199043515124042880654945258960710992264949179442781145866706941258105067321471568252797564296294768290622795502459397976468358997551679535425911040275048014654307262051204495770865417716962824002794442869898326515420539799739190040407812014001577502927230551697095115731096481096089266057375847755410339603427164565865639698354217634430796374705535442974754056868642462627694538909113044728205506643424391115960212459188977251252225810475252012747561429686480450478499512208635142262645424676585909086714567435249177704830505883345005139796107050106427059521889088824812071164307662668635019361633298890233362738119565531667673576863418300790442997889768040261733057909184801259116888868563607579709900880233097014304155125194448830244818717509169382794198016333224615419015578419732839597460743621427056591834471272763287996080659983503159067238293142538936707797371494637908245565605353521523462153169449419484242184672113840484650572600926537927097824589116373276008544813957796543669698752143857762251908023280957681336419351463804728492364810737607309604614619474949932586933406761722654707347114604871237006533987572790489887287693305674469600373992998888083650013067492996620131817962255584640857114212128866118603404454139478849469525262808671376703981896038806644023382296768683919008314134560547511633265554153370426112222427464360928191432524167659402726911318981301605953402586737034122908269099787369980824483606186564911232583195947164510090410615829235090543869487034855736504175625881256602404137397455787101834092754090748826002441733619549710934396512222255218084365449523572544835336388150264648846152672910846359096502177867487079364245734488435947299585141537134608037560966154271057131995458713617206314102614750510665802842395483817003329839492202060289375922803517368078302284128644578791689755810919589479878581367579267766970290422665413047431059104797231533201832054845763264330881328884825008838208063203688502846199908547964647032561749063081443669725749435871406737068343927451042920132003163939034753911223651519736155044094663570501959987384968689893830854466162663779650918666922710500977841224243064330647801424473608827474394939391369297608857785527973249430136927826141454383653724009947218507640619528554471371692732588120139008183944645801742602812036015820400342163487467405599118229616406850145641934280568317090461782527052044514975566557894941931123773897697654599460815124592863892699061579453319814860603612694584989407722420651339898560520183988965123177265340290957969977452228054215847533823865733625046623202464456892483419839623227903362255153884091867013371800621189635529119383340337985896304003742554706320058548609172261086162637767091801149589675017362814191425053247164360268601614269488605713971041108009357606046532869081352727462820055219018744966062651447679255210032138399402214850153150644813798789172449715467457469137898346326270323893331662853220274436536370952749508397632458280896999762301890850075213023640425278728465544047860533623676913299364762954876579672547920465143614916945917895544821946501053002688931836710738703102082975584628849513013512929729591555614059835380080042804378449880728944935341246905403003312771989663751847181327817920932112777744294850551696033550785270422883663074892465010363443478943685257014613603038779264620946200147293747879132388042002912165489299366934493675115215346361122627063197113508692613461329976339422763883030186620766041359365419627487089629951491609424724310262512316567478714758648283442753787206979508658363709363960923802263318172668769223823351110434343086637288782585581610691050250104756848809882958364772069682877168178928380903817546781634570715160303349334156950813055522702190532012899733738613045784362427772627215101883160399561025925069170731613141594799678251946788801171960777492571158203682740947697222413605251382580512521850842930792558645274425439408886855566946886863542393171892791183831073043197621161254331831434297705114128568575186822836919100417257724278032553100314945733769160257035238730357861606377777682519542572214116745579942047392255452476957661559132109613147744869656228423442697979178936605118515769362726241951434751395147104805410689479517443506173995748359843516307103383280323430516927073024258304987009729415277033695781739738332407653327630636198564203190098092451599497280880397168164467857079043848783990773628370001931357384624774606769118257978693005349507841073461386819880419292434816378439099480407874342450419029705067920811481736368012633725152927513874335501025536208739142195582988212864935676914279692559681738738107795296512950878052104711765183285948512465798585104392527526021338736585261847354654010059243898971585643188889966583182581915174257382783906837159736815285656165861368487158991487149086129791084140453235276102040658956687582031084009786397847864186993596141057847628852131678625355892242328480527251849714387353420651327005352984881350967225518940493371954526040002554250052851653947341098906551501885598475366657838004235003003253608638109619144903021582645083999184656186979887253939277628772068589195130587736217516000649620128118252456300312722755380435956900814192158740222723699376671027340267231583271605332927369921382892405458870154706069918200523778895364605807921934660157432864061839958808029996726759667129375708277253193989889545900021136718778295144867640076871445047731219104723948472930164665083349828188135766384825662431305498098956437637002984602032861152984296205694603153722467919602161998056279826378800893139137665575484054458403450034110866990303714247224277234607654887102248900118738888971783829326724557584178496406016458521200089737479193188681739557643453871922193427304325207704340027100539864428684231899805775183075816631560811841908692590539881409142614796998713155274934044788588012947432234818969398548728481684346249057908294776441974505712164568727273800605267220872654814213295066757222613592115889262880283931894044723046634641625992419717230259517516730829817761500967852291591608329725877290211469707902540087671497892523500724655713515704793057992706104902020428280097177948057171017362397198725674873053401610088610445763610026033596405961577439602187217059914998636977608614754083736367622487030245407167769516768452394359533196774860211376608581416536759154088020911054588214421471640220236711857946723252371030632375106424713232157335274231554496226320570418447360780141943713891627335518652420196096815309270697210302112562429960608131381564526064166910694838445889354631406819591587437419926306199281688639107637215797832964943307606338538441935134965782309956952472659783112180423945047658893353823780383995392331593303306154841679734661643387194991023478354892824400735889403082009039179215048788651675744137020844374805980448889218199344628620632263385398906444208031929931264497245922123894433188951848325222223331991845610614306808444814954221453655930399698814071385414342588198375819461858156306324478292930815454554425595397325452779864267738004816550531871430996191662626521196321533816100162298474315220369280044795500131016756488980501214612989443860703835307743058537121351960663521895120639195087145580280596250931758193425910862715210423084593808278870040406707365172623576076094420477168175934504608609440094469084578670118322374446501995359124156382982538242774334268000199270549886501916863480354473568888530897976022354174029925673131418578792361006138187545435333881017202004244468393504443313786424792752280758200779911929796260350084967691882371289123503433540425862233129598095981553489771292307655075822064357930786186256127665210605325807413650196393902090135992768779799868747773124615373570097751187042823616099733348340656992348856157044057883697604092687810774118260945758968549847433186318237389956988698109767062531884733710994786568734604599756993755816000042159725997745447173544697373880986169980579335610473403876335432239399555645088751209337914984298311781603706613964467056915156768688777637199825994864764378140332728667753416432316439916879025700710272630530752773684023342793042509896350736705773086436445471043691770290102495313663864779792782711664730186168658148463527094727212862814304353665426100046266521613269263513068957318818187187046868849847746748696549361793934521778335057025679125894696606738850024612102210957130106641409199059958840430605870205246579496410634932795562742083114025635321818854168506122671113141206432903655892351879607097233740020933170300536388890351535193497621890722681035861700101805103696651805870080325753792168476408931792505702248223420959095483130464181413078740778285672025396255952296227159211741932383274131794462458976521931447248811265464263473528386238422707078998735814983890585789469076764136259746826189991218859419429981783812173666287900339850529207731423740380369182729530613313091141742068269992929127815940754457085170332851951616291013902939877211498527847737676082815275567053605665365682427843695250279662467187398279234714829063889487936128507933362422956199200918973702316520571944605129998975926704099951832540601294616699012779816701900741235562239092977810424745130977649084366303055008726494815843820438659072923223301121083645883388321084309518905482322666443951257165540043148221511789824826510623683012957012940444110798609977886698522070735046001979914229832315436584771424057780203449247135849196415366539077296907285832547332763699924600605304708324754810357687989175398416434373490348588153172916662079011722480982676695862751364321002232785033366307990101262674809492517290503743205087016779545978258222692055430032233432991130726591819690873815017265098237787624754572507840179908113114631589798328593298816307442017495775963479144407567310811998606033339702910966514995654195825779289258821832691226318318308491269534344621645456822861035067411758305035195407674820571625221907912274703262323556884420917942771761848003119832910873944280956734351643954670994773824633067302642654674912506926588116965355979580987695624827839673814939119665452079266981427342990764059952120962987289245638812089037183950964695414736023108827063113815404690224557667977227949489604531992618029715201109364145994308954044383159175685760949729053758171097450058693163766173663030727416926983758820010674870465071493964823981005736708460951442017675837637074152823128794869636662908342914746718122376502239559191608978322139748063015777580545972002391664932744019069844557326731761746208723417759586100169388062893912960190698349260479899287828958447051287878003339304794990412339986599338649407281918576946347208552464654386837979004859020100487792605249654528446919358341648074986574449908778087905708302520829107261731374374608374005441780018800860063031867496631277715914123335522647292036654735274905991958463649714159185724617160659656859709345689105680380903934722767700225763709829315004106600346504213767691048175575543994197722581434498983608878925819314882500107969985374538024247648955291918607735812428616152166446360858969000220471850018584738374443372284147879115925822303163443213827375005146514733239690053165157545506533838743452729143254083722969782760962516704988156673711347081254023882919815673217903263623561696277470929262617772309648411399400457381475000520141325746641194897030598171359809449810612011955169779066409160568489470588312913462156477753932109454004040396052072055464177801818596803680093627253220959704131988721282800544310766396918974008483493818250225903129891789608621463704104928185762556426133762285116250443003009516991175753136647341308464142336125073251021598545703922011618100058815461027585256767436317348769443673096835008057418584022593060595516124743305638650264418524756337498683349830791226014201324701531807066703188531228044511433815753926784196354052882692455744637210717147121497187333435884720677092909994488026153325277424146133976124937871370340770621194948607167864187852933963741975191316510829648314101796314634443637896771959169492602144416576342689423775913442361368974707556910755492361998283862985978629828277563869036713776252329788151107111440004490843311996029291321797510156694253867276928529788460262098091952857367716012125899124057912780231119399369865905190220058086202973470953083971708595014028885943020465963452489893258279117184409401843596465954223650575723111842451012952834312640467924759168345996844199592534873447969679189933655181579953510816424766881022996603639621052786438756563667523225143406024035259196033916542785833871945982115015148100784522847960559253978930162280314206348079297107583565830862594175638925581107761431616607971402733840436117219007991673971841163813759603229673272907938328139976778442859399441323986956343137188265635397294940072334428494650826639126067422878838876752161327185408551409208335941750502220920676296150762621244245817438742355475996449619085288645521234483675862628798860146511946725754959932487099103966511763689165304904268775903213637024750509529934768882904382657910788884088979450511409144551780966779980080313017554717120464853615743832192079548328426505354901325763134833333281163091234598066455476654907332136169817654610210642480143217063851151498855335235068319751689821429566892519307652649320227369683195127510122764517401624422603096851297814075526200603131478306058657915232185924364498034034030915635219289280820269715547725737609616988393681942110106216821704703397956797784253112623505455872642032880945595814818619029920145961045664829390216309632039271758790658172028226152909020081251049435587585851946787833312122602464584348366438263777263587223302790551658641494170814874112919383817381910400576110978915917678830148944808605112552221804734769035891565458924035334532141197733239326438794595930621370050480634402026506104073673930052384138027447044941486904940150487319033243476140739834552161841430612905096505503304996601744129944132207873842442580892192431188648869056095214082893646796988266290178741919834154419265929673236842723960511920233429291007056198351728837176471361004251537498219556451472002142781559811067745741636981798283611481332963846633295765895927429342587128533394773394937756423640800161102274163097230709806909578094478037893657503402863116582212966674677633144755867392162388626339806336002331096109157788433602613431750911054808959431979565965276869750719408677592577121564326408117171270314671138715650441784002130877975379429450258376217619357047687678272831892602956957839722509231442275212144193830683955251693333776191088663168427973669471858841428998111864959507377301252711677431135595391684624253429746406744009851250021147394868302755502671123705762767880646007196727111740024774660336473839581456632084548170905062643145882504115934633102268980906510491973395508044771690033686211339711607141648082368878657587131328547040091828934484246489945087753028546478779701453324935916374059260283145312625070751550673549421709165973512183652526077696544201521977078540680607251262286668929747592909950258152514072037162257064777251248289941523724459744191819261243485368288999518457098822640158687642675287752593004526388358348155538487663509976877865271127664483995761247937012154972028636838706514642054526661417492378048480055490746233335058882653742884483343601610797734343501425768931033334842731368681114471429558461984298706514118565468669598105353402357425996071352110077253072591634373057902554888288259561000628416245023826823853094529760166878000260528756755245038998588078922077281568245107685696341136542669182076127838971473105622730777030966234689560423117570468688849686665699606143048252126969857294821006758685840209627238778896181418085808788590683219196706517822679535258925929011051066065512406340255360169909079317064494730789206115089317114634512175910022344862358291805055460531990952200501929772721774627056801548466189784645992812554537163778437840880673644063330531035130145866162087179509197388014842653736386501586717423074887225265593656520733868879781908732233586541904233701152025048594075487189908266723465943166037507807755658462787968911819081017664164032041927645162575872429218234013847385736179099941764318062707198719497827761962743475397666478943296894940583508453876779794372826772885374230610216264039241853496368099518911775671637558083571290601706959874621178539837016721606054392917443274391596309389890513280513737540787059098964923054329450295032449519033620166060634248937977277927574155607620645147229019993927679309396749224699372577952777000546853936612543231102906438130706950556551043795485421625101871364693723190496031785011828674012745745043454948219479120210463271678090804214638330708561025398011657080047866226701236939598812525158313761310927587553613039700956808410106409352307612987815898509173256283283252800752442403948972572811465211633082493262355798970902834146052593627402210036343128221465346608943177807783259726777922345944187881697573728903076606113759297018298525750353671025933886952921058525446840298753614531242602374190565589969088961670243115154165091146928487173821724520275858104508160404086971595125283928687668074602643508291977287182281944748722173845239314128151574131593181578392919147727044698122431211725782329683792734446913409814891607104473165140615612282026099573317651768267083710341567732545521125072867976552178293313230452444297537860921999496072070605390628819963558062859191037286316064746817812528405853310225675505099926157063725775963880296847194060586603383192253597416290974182901764593482989002763039521705561017677182137178469203102039281998003084017713548334273013013399803491669599531835760229995470072055868107562903425530981744001241821295590888756610957154014961181985068721140009570846567798623072958310067217780555315651147676524990979181944148650106984407006176865131308543059420790598213366615743358753782802883024238344319866162233897303900998151343546348933489662519121324719116941949105804691338960680761532888822322966733201685247380740950069346359776750477421339519195120469895968683071800829611475370986897926597738574719479692304798833860742356300996165542796418378274624843983024479060384885871984824932128081712015120779293066746537855697884559667421809912944549795335323446420343254842305676401347134028814913873337284099318378428763726307376264620317178068348673707149657483981674197909640493558197409332846804331260583719921856740065459342420057232893910549423388316106682227498816908160553819652267278165155584860617341043366319076454158088748602045679926150681381169882238120010720830173475108639900022405852012449245372209308988493414734428471999043642913675693619053938751710990213351294431254572852639062044791443522155141624427002450955382571884755816093315873429854275123868268460636943811479076953142048418161170513812128394289824476497538044300492485867486557847984675158734038043480145884359143814139965889637597994794258775682076404520819013122077252023740318899365237315549448762202561729610919888896474119899154245336231194475849701130890117104824579738446948457490059406169892365036076004529224382211050181987821737161752987178975493590516476906960753911645674429990472536106035442081779838706053473718581136478909442245909047075890702205806497055802738045495950576456483347173686471163901510539778099351308845275862564644152640897298769475830012406421429597075401747203676260852123741437507449906679668231189852649076980966739023535053762581820596690938822201312011568912156645188400120825532178619512705731298439491265446125577132371950444437497026356619056585395028344929105188744076881092223327044144133986922418606008006210964350750843180518780386188884343458255674940194682666193270512214250747970432851193846802227189194489842592790134598635865038432020210843499085078582843914820119129587355778839466401108031426131503042790804462776297772519976625281527901451043275781651751350393816002813059713622484755590471004983309167219216619656644696484630799581052347259553551272800377711957860576149466928261349352918091271071295817035706958314915838904843729826375339584555437352973725425993482462874696806662571190236318491745770641566496590487650887687796661304979304248235960203333453694238655074952116070999181359385700532621946480652422067786347181665522721079645482196539034094630928460629776196658580477352978556660972087489541738551752271309585020809612681260494163338051967126062730636668121688108208239950929238902943551613283665276673754866828747157240800428445200316401638910789149318204636364066148119448626992545349665901859777848132074181886262073142370328424738438879643054746513836729251221191249154032376721105523361863924462065068983677908982048907119968765567490595517375383054391581293917845650258317585844414562179777279763430573768283528916911712613748039652146797841184248408344639366248451592980842815298149190380035546401952667043870372341000129651439181003538018450209648621280119467232065337848507395055709354722088387008565506719978178399993210105458574958377312020599912514014091756499006115325526288366707985503934596192083182671037468102485815020663883571460119056725059652771641029880716337277786966153116395725169842567900630528005160776851812180801602545009607677608555221807712626333315191876783776150309254270374232276323463184219522179380198424271100733333815127553803751542008490377182228499959994413657178452086268938774056751827597690937322875928216373274706557127271490556904417387558137898418011592432773146734366471134827006063697273334055767183530372485118494271374659528117410066403916441947506670209066309774945102646643406107631725265379786843092334378050657046528383663771109021463119094064710654620150898113999001925052866782836447541492502547290621922635864275503707707990631211506832352344610439519239477723863211526376457541798864838998628513868783488081393839928579644988548151784463472645145693684067851708825992768218934316063387086793938303370488146084495291562699818998011323827802330071065024131515106885844322165315250587922755439937090375301029519534478653856430940084564023604035144491040220332699638058650563723369077929847203869046685123492142489045503638712168123546157986333802846857736124987860823605275355760079428632736931345174811915367382990940154157512748298430088370362368835762424701227638731947531776028663983776260816094204059012947725034334771012903575666018170898395802351829376014703412743972136554999884089632930735203889474025184491562120211586591750327965757275659231526942353386128964737112891749115866641028519024106716559700508632215687182201652746017448617864078933469795470324713175367977922670927984125046335464337407834948487635188747146903215623116960025010808704840403937927188395975074532531349272487678723040099293834862323785133677633449825775558081209121206503293981338660911563014121298274894016894418496827790968875965570922301010141959671769453364407422874374977750766045882323095883051134809111475310475785572561527529804756267924892508819325666977528307514005591229519372412964619653904189068800952727209678645614086411613999131739689533316212131705600070302761730229185694948420859121321610603533236870570306613179696977158278115715645340526188035925106180742164097432930465341527438244633799756797099723111513372276725735562637465496511742203044982053531160581198812857507582495453767000843670986704985007017821468655555145262826018930528670702939707685568735333520296568210840042112000409625668902290274891420941510986182181834898893080800660843450098461823983201214242646916762892256327745750136695888395343842668120615953652480964519177684991466774181247942214767536991956561887471590708075921415001694071383150509403366982102691686752413079795573396805790716102106373694099308999034037140424393902690016739708723655384830304204207865004334367771220674595703868569291746419855054695335423700002348377416183090212153609401146564668146815355107148706639577285063722491661525514534649400850150401694172636010177241019780901251346087521866865837185992947469252319249228057218166295439875117047368157936824659993485867957489122196081638413220540078039186825882775540438804204383543617337384895592063468573429909157800496110414101321338796878454364176094543669755642928511582570427611170830382262969040455746478935603635820858750860835254787534806608761898731647324854975986187052795857054457040394362865441199460867307806304957415959854144394773594023691133729593867234138274008400177911171647606438221459222617643397780141496840309098796046871589066005156744470789328850706019203507007757996783848304728520034002757378963331337995600129092433039335996232345572102117292007839978273504463603916667683825620303926259649476513359697392375011004981401069909946215405872805802286595339076109472267123081756166584387428121447396772273648265483472469043832895249106511772316653608088929355710388739654301522217290028060285919120164475395974588847349980999803308599049483451688497161957784239493055014212543001686609379029475816328834086199491323316932718664503340527542210242662300289722840456799076608144635584587330633955195773979297259551945624954456060724436998230051099067502534864210447401163744649642021358896221923670158297002389452186123345718140982599704947731095282548127848170802977903306543631787201722668865889675118084083723527920560049410598391246614719753753439358786568296583753845752080180078290635124879811861029323135935576680794107285568607979952523266867422218398427188815119842355640720702523160924204142731574853730609504162948380097989318382006815174580742688096807844181329973691999904579436317116468600765175472941553328336451508530918155667678462559787345913958912790805595866938732693974041684852075847488809962688681015356702576969687839486861502396493739959313578462775850444353440695445070482868350885816715937786633382754072696901452001496764522968094765899319281033578916149668569055533982188581354253474943274201509343756403016464475510263453920587554111467838459759410250354657820302467481698432187030186378812790985785647203833367473859917971017262436983646625091529969302228650238006258004488998862682079608873267703293971325105645495421481804447508278098297437348117544934972072511655751341555901311652584984729515866383874575875342537808124481544043420156236202200530340258079112479535086887049028525281694886944328067499244217558726710187303660568903724782458613290741142035374216342181911680398401702680825958013080335172876916850476908096193276338021942038654427998371532424423001837516556207928366111266612003446518741006445009192367596536727613494629463133169520636459369174081666149780954278167917859093326556149276861283342769910707920796675879084736386399348539603263644942710879768576480144279265116666075542304794163182348139959250580525946340752720034273862451333814251440317952310283650127899209236943202562189708804306145442874948663297347872121973224375910081090429376589900206967078545947475396025131523421762798621837521597346307917021193027434914634888107308560231895000527242411019541002993830793305153663869109179172194292351269866556890934501325708985443072815201301230684888834761738491936796101359002239687283727391497576132795892182976603220263919317817332068455099977910405644041142482091855641253295128274680000702503675202196066101848739900344527516324523988097285006567077941404970335707146122875381695088598130043412013233979750147270850573573913204130232762996786118190040940332317571666390406272508946894970347893426554397139095603606812724831550649172223499083514716365348816515429117294867814989571615121910801176890332225211766735518014501166493067004550174775436137091013644252687667235929953236953160384088932172280305084541112464249196764745354863861320196281721792901207222314572513358512593201524875303476165518669719669131265770910628625058713378772448620926229871661590468714359611079461923975625816019558028022923097377353672170526079025517283364506627554104969429114703723588486121119943895670708286927219653236242622665217813696215169722182429538405044360034864956875681509594158267657241384346530938747576348179465679994080680708343930851369514768233629588974687338193852172769396219447086057638332733352998893967014750914901697949416679035731346379059800826273259405893941710238678627567699018398206274093581646918803823668759958079926081261079578829718986521593353713972910481080569595425604842469174477080721863735268261035049599712866432083937344115662898334003473022916392008853437301114219276973610578139516844291764136832198214796836380176769204714091916099851871776527634851567847805940387384391878187122470955094033632378578833541500717655382588288858843667814892360638007094128872949087318755569547086325935121415659214052342334996085176573455835039185724863664335515916264340647499352371736657950400690490423361164734270210676289852908954082821481488909007434715423643369770916647836477000133765941270008130319433818595724844132716974558988872931802456458018271176862777272779425645995320815121501492856050895061121055277365720381901070483721671834457558654432817507170268109898471525924364939036787955352380973232148776583355301747302454707388608279057162033588031988765056554653863040680271444405870954589271331258312507916123562777304148878803562258702223343559594663516368706935369282950631138991864646530806057531504686652371735923789415008914172552753864651021242257458176556508029623288437530824386596488289780824653961304968812703410078900300105747783873654763854210758703997349038585689457710602232306445771207355077097066898393923273932440823382222715314430852202540144469087387269624439346948726142537509100339691934198646050059304789201800970064811763304421569724469480286134264374391437824218581776807899760614074152122284162264726211779920407320054459432547736615597232030594055394200616739000020259206038929809377181832231358305027541212200058686641597215661748668049225293893519423169333909581825738062397480894792636652316074952991359945214090096863558200320686796222477271562195778314939560278172395069094801071141299593118092882165885939700576034470862376266949600889676587177033306881772430400972060634205532534009198827666369275586497309533077866056890300640278552999490831295202624194202978715501143553872023147744374219544829790285130149394208209644229854589694967744132197989831221259156508434236707985638060524310289243811146654773759438868785929299450234884464066578788993702728260715685983957748410597745853831535852673487957579420558895621750371565038662057790770437352861861530637847049987257113510247727053425377815641452816896365786140446361119848172588962220186295184880438304250125279232717423571633205070973166865136458292988547510291802870569323982271183435325375549048039228986958210710654877630799872220616271612878682763941114506994968374598847474226318762615085919793754283472544786415578436433825779190223892713260011632982926063137624521857659325440268804586050166234362093501771888934878161088053262137216211241872118257433448854472907071805249926833799404680415152578620232163233829272374871469501937356016709322848700903767989696123462254754574184968610562899386725308660205394654236617532768143110145040271592278953547574489737301046875982064929143375130610555148894257482477953580642416964102595424501983241397623713371795021754063837732291144745609691347537675439613392309126129925216335456010939602802749866362707499976258586422033094124547966093940844769496876037560055097426251396205212731953520829363918871780119380252936682711530821838245102587061431186129442394474377931609479644048428298863007447446364395830720533030235643234185525760181754795556462329939645560526497447142093423971386872386058473207058740935952031486920346755353430095516925765751693709888659507191443241171334708300482040971447402596304364479408841515468261178663064798881115618293197398859024861149854174971723560816721543420663121026918637134482470893474895389088619566086096672492723259699686853089315244036082555487774639540291652150721474654460078189044952425343786840028084105087200348598483302833706604442859826773513807003501080028894402868132358992529690810863792250443599204498145412212255628185781604332403866198896311403177386023254624545669433531478017521696102742153258212671363456280449996224362455731694657445411892381121123750624305083907215894597922815040254411799597511512382038159537333034845708686049725751468038571282570031670883296658672432190876723678451602451511007247753936020946876242384846206418867446641706051385376381522085580711626027114739633835618796799991598967038442376952686083922037278384551855356049972703784792761387894227647114200891913550044920481486165144024152813087722583922167376470499683937191655480157767130159051684872405224379039431426348619553242169463764658315864359171876571601532943975042836628795368631307987093269173532621321157341094947095970401104239828341255217118779701987501069928440415076624953976554428312607922635788524231823731831564807939022506184858316039548855316122587866018416352919230974421100415309253801722126125197240744270760318945910699763004649538961679779785239200779379080716674228013285238994905752555330158508841136195018360479514383483901191207251790121759218137387144648649299981732431580127136993687179517946446471507630443132967294749044585842926449191187579426251571973023892254553565702120486692486188668033026562835895536081077916094819360422338215555904661879013840340313105602477652446567220067829091303434840547421154459771653196356777668143396398935765556558642109363712035108688256356611846364413102128159105782327281129190528909727510047856432790649971460839428778234792586962339028494132868707857098970944486229375502049849465689890231218413467544006805814206221332569844263124929806385179875652474973582321138377957942944760006661887856294827129880521256540678296101025769167609329253604636001842092630203542705126985661104928119392212246882935759812893405012631122813025848490653988857426267132010403256692454945615069504903016400693190561582304986298555990348879893593934595791024416979500396341406370169155140144348460312212974354182933621300041031617634094136047576621216168888313029881628960831900454735761103165030309169685690105668722892671135477019105336831532188214481022559939892729858069118854641107308102779932438183477281578868297515717273347567314549215206071047673401296052075990711211276059583534430381574769451321980902325168007806333912548372781638861667945040537970376153611332136369381490674578285957342708157122853329988738190339738822456434400783026313740043764080879723609415845399904210871774957005855836132210591427072037508998509911575939388927739376485182475219128142785727362329830865351800239502835292857901355646286882625817616996537383329624226358523982530148508651968082054519584556334553099793672189185464037175431663012475099395243916327691082116167054163425478282661277474886999046019628551301059993937775131150045322185039131181571802320448773114396018909838086184915577379756110061147074140735109640278598498167444088770921904089514536952666478511747606036898060859468116864493942475035313028259554631166850660798041442420654909383115312739746647559737804943294733061580475207497208868734394257116325134816563499594143282525929609824285948792607646610828301051553641245560812711105336607633117519698637318820138025882886470678377226582400381816128451113190466294571045977480341671426778093251770562752103522600544269739638740571036877302917046208453702347950109509156214581274287026120096390225049067190530225330053214816784261765998836426996637235966206170211357207919103027705899828608766935084809190669206783521621234883740678429826644575610349021591667604634380774046067153919502239815395867984599664153856172891721851521206442039318396253671256246626546991833377800454552659364335693988766440222021518157262606349979318272482559092024109400137266554201814887640776696537586171017023933641285905721993190007524044629627216304535359840725136170883353768321678153839203879206968873104755006309518710239674605682303104985089544445512078137948995522934625941689583673671218529742010028532625948379293276024176763547062758236467674049300449264412089803044846021008503558499936391035837358327198775283264952912285968249011298753306426621910079314781805297869817587287717451949757023789617025801208383017524634265913588759389922281246898293450577923121805364704988091023538751986407112600029491337411692813381861984131499643941822720169074822615444658764750356111975640252474731976630747842966834937280838663924110110045810018804878990729149730878100863800516583003516191744748951272090447360936542968937565491298884108219161378704346422228291274594426346694802753376517276122006817353463002470985345719618322343064495257230930057811690248315532031915450024932668562309644549505884233638274426273806194685007865808257666748096647015117816307710397189143971394111534394205628686224111189362928221926466729601642508306053664233040173612627224388597685990584260719958524145357732580875117516216840877225970607242960358542636984248726112602652530711196175611094814608495052072567764206935028456340142460104952565256767552410636182291538081781945684512826747871306546768302025146251825249407140799680566020153469996694638663986498071914812246678828392375327640083039012821162255550239275626596513958898306919691110379914242491265531562771771919083713940962986737210746404851208164494838678286676956203438060530344257845811378885432044803377851233752094447936365731699326158153431645446859966992610866328079808204055569720893975400384966643159704561892440225074308681292860680008474690380794941518786909411562344462007718432654514879244759104494919587510348018932886452426429665531984516829583631528392947377792008064721928821930764350300045919849204633020990795372353983598787665672898454267313172726901045992594130512971226784441871033543839751060955245388469731818543707079758288755778293602446680961287868527842229454632104101201532676620211832563380536094204437361566283962824912075132423352610573663841096252356291146407153755376483052087428382237862848409167935169911467686848825724987190640104979501412076493403389935918865749639484616098420991711466650973661693756212088680356170792199262703861740344701081354647021945950312892371340040042386137277567574065456979964032421540703080461673977846584963748970013713326206672551921884331920377732301143822986937156732600761309277023500193542315070400974706887400995295079836383267596967044037449603175045986031983063431954113400499743676375874587617325676532722224257572730145841101999907994069081208552349142014269731491381697317540375620586985657498510493847766617568501877849206664782291066172130566138593284844593016841807203279408831275800053554646328575985782450910473490941868724989849876750482070835012643466233493414936440086134101493060095390169552762246053412661081060521699348059331573682157094153551846675986047959443479268396945858266429352024833214854782422268581114647403888877718342636423127177688134399540776134778812528437038236288528330139754150937694303873083221014983415117199496084456427361286371703058151885326780113163550140113266494444602256933956909270747841549001297586496841563118101062865553559588733052723979533473608915839575993939197479167742375038963762183540736002454575806117128511510516907783163928291205272154074508277422897566127592252162273788451467400677856127034160941462362914570521838863852344635557890193151977662745911455052049559731984297919263149292555521759114099610911788105274276699816193700541747242810854948512896907011794423053736575904513945276407086096937335915139541762125070052304637137775804844446648482681985135345294530728510377060528951858977557088453401320269868983167027287345788770908335615382914125852890864244989093942196106773649114638592698941342591494104468206105002441647287925997992794504136685012596425051636835285634357601086770125319796455031681630216411613922079790280837808610835521095864085455308289009960308832018594819448952481206275267414465618984608657365426677291348324031137171353680507328988214960051506621689696203353102334080573729537557098248571699161983417919236007591387818007461722484493519065681763657782710171891782784286525834740657090066949833266461431151655024142630852576353021954612273418623601075577219226460854210225289804380151758469168547882131688460083205283294824932240701964018171835068687982284563580800130237624387570754693863081778766266199171449687439674309439399111274342634663112833843765618323007385408396137055234871087975337300230328682727366324952712193575336056377302634146334736709467420641237293356801143889397026269301045697487678933888021974240988235109387408682044618138522843439513290343617916306621847994383387884606113436684051959487956655726183816121095887003486648216510535129519762099610754105878304762606373315509666815087024125237368235499096622107735118731805472070487255298357055186897392802184507546951392621958461774700914235815393274159769161644014856029856023475558148613955595791341934822187724266614555775507071017268158464401440441505612649268502062339630352960511906131448043976565199889376331840810613168388883130511189488599749471797506131950254594588760593161127349388097238562817861447083127803201121125045803820836861921236957723429333182057269773471767194783514828341344314554209930509905680281637100261796128262775375995715029498272551766424745960173403767992126778750394918924838010550736200043748721572596106849149642953148219896921250567328473150759750304289354287752782507495938831437428376908255814553847658495373123519954756068878626638450790249220764496689533577337855163042796985492943776317917546364917080764245965833280526867256380932570487190973507785792087362157356663495062259748921355299461408429716466478063068862000280173023190700096773442370705741472085775995204471139386535593748930273837639447376828492424484206086523507260904451822022637788987753981423326465702461095264128680865602769418182117174332393824582279555841025782591983954419961144876084750929165204829049472999192446542225458470772679010822792740927609723792089413294285667851836389088634971272774458295421523491316261986386211432688771614534801682926563924854056498081376599354555119822066555951056715524166739357699641191850211327942543311464982256258365126881851119999208972152059167960891470575778508818332109925544366213208162713409298267534270823414720676995368086278504163375540066704712487769377171187228098879287095973559704800516849933607655412510620702721005168169785344578242719729557159568203610680796837434067778090719525490535059727322319783970736726501313298256876586041083833913726931535025085384034674217217814985219989139651331189849260065767972224992304657263488080199500071624920756901024850318119070589460790334234223644244190931431291341068320753063345957737627065447086616883139547280213721369977003163113802391577776579065448792534641543316688686658892529026476458644529330993474761192780992250985001612749427823510571338580690941185043784128608680249512854770057464959176989985675868839588736344367617073745828929046092585827954543719446313841954452947874107338836012675400975701605527372501825406289357124994867980167110445481903282557463153866498877026406704553558507593828611433762356252756066837497061888555438138931471807174804007958154734127875562922855423676142429633202233628670753124961972882515534549478396216102295037586761629530974512882676828537615197081720068170657783598786000977030514616812679379816563423610125833373293385495750798645308953528574371274711259125376528751452941458717216054217568430739363057253366374289768853466028482804272003607997155884708877498427089531392676422360994647364002343732085787293494490072793753398977177375382373351606216554955155651378207212689428169844309542719218899991806620257405883939683601436653211171038626137508426267659602345498496535993528477867121553111801432672103782882698778238804215539534692186379665510886395567110801976267252169627293834215253397256796575978262785650699289821045466922892517710563288914717781435844278447564588585895161916225357574697290748720549390615737664120558495527694722632382493412907038917735729073417793795267701430154483572067019457272234304306427389129984782330511134367596147029552490958793700835179197939098008466153785522611496259136560392565644278164463259475644534269178518281667127503040232062394748529621397890242583874622638250828193541304702722893126642473586401583445269752725258237273648316561588267234481076041025128456350776989870439564339174295003886123530820862486912800207657759261022718142949165676202868686615385701710421178984775749206054442131617669808189970172977970002107542580418006596593445538318983307537650825727141772004138756766491994398805365300497124766916828948599519871225892595887059058872329272901095113923892115679724520273938606484624001572888245028381346485349097380435739812106973290066664032010445469002600492401383201158088274365443754714245285995518273659131110983450247538447958297477151888192729735215463658919362332078296357261122740172249696822861224713234115576307984009227620761170116059524277202862951027813645991936738347134545963775309340779832164416145682210028248356935724307197220113445658032439331211632497502936498153238611600843084585635967427088807351121823323240864844780551165759581002592593225868089628183526525355312336672501297129753954375084556987585407798096524790387541949485911063281096012893434775373467644435223729623262736255703665740877112766595344747146736814383818609191391764298368771572863787001125797039717316578378750551562898248563602294450026575769651423492385032565821694308136724870791791261255555565419877520597150058847304178620501667277451212634867066038271194681484074141554358895695184464156813648225844852768455849946176340810439157254515225099986394333232330823368288400022719959863428784463646139329314759241405899227718416029066427937151525905333265723974833917305888182181972270159287645208428891475183037227486120749958115620140970959605583880348142462758687845605087214804697817037657037020892551784684064134210227758731171766586874714391460911593035062296935382173394383441615820222836163882876243592464546027842277474853877076473436006858391587655361287933179934695771332865854887005071628211212947459148914142390948642881971422562780461179130833560395642740593820130057876019757674582910744605889741074726900819812346702179221115200882952455089746775843927636542460580873895177824159054098880291525204967530457459897905460741295293965839163599411345482100986631351150423702739158313632975531643660148976804853612610969143590362637001419059567427679667929574808026428433715212337974000167887258405041296923522351013579264001873630630874350659719261447989907517213704055932182919588032328730666762344693908805732681879865316334614449965698004661774740452665319568840685402386527875389357494362123033305771651713796625620652289183082164636416699558287623716872349269907529195713037750471602180998349777583927751548074918886058863264177600723973246372334793485197113377190222483571299078071841436478792395444406189230543751814415623723826167697720403948022688285456590234012701690611538648348051550765740284169424654273359446980241292196098439845542961563276669207568701914757647309551889947619232129946307288982545228171424689020129820410703487827641592883747898124118878964000179733783408168455314048946980850226233830316633258124531557399119090932930407953709807470902576717180086613046468623074652376109854026930283897923342767104712042444570832331844872792094411048747925203583068511172780157177351373490242249731503113713939831280072370344655200033354392251333030243976152848812191937540146593638879266492809619843534179981416103721303495469739652385028679249593854533252770043970160900129973081023010359672846267293588241732658946491980984662062826014733014131700456559395508472299010034819425795795825288230699370174066612473672603931611662885163014463872212343725685140412224835091671741020405425533724982421373510055736016185974668765203392284395268603298402786939480437894682167028395432666420223867588403466600038182288613433491834816729900438368720304836543452088114976656168338732133835257006912248239195884650391776908728801346954630452930451782992373308999687550772438252988984166840773898247410482192284985352091555855533676618481060052785472471844073935983359079055641239967815115258718991658854677884127386561204079306676770461610698482349838236477664738247925657892760923124279007925887783169611892062208296929411683570460525723519537197724058140186750888307057432324192555090699210675084035982463594094741940964517287350988448680506333865211646013018432990392818154336279098541855046426713794117825880736205580075164162441501212447015842224792646827390668356493912221454027061399432411207917984925543642898226225446448886294592982037927554001715815521058002174537029814269703773428226103419112346311449528855220016840307357383661466469342532636218257401527649340737920235401990358905516703415563915786931175829458235260181690371756341310329659394278637773190320378461498271251119786454650550633148748829636308690630322785356190405246100217374868003082869800114570795954219955880627675126563398722550975506063933922487369459985222428956339888317317278140230557783274158605991841612528257900432679010469212051529475836231007314724967462724450512752609359462654549637313940700857566225293000644321391292277325835294097230715946674752109545759181099229472471969246608111636525331699575629686407713576145317202884046497637275775397282959987744451969832490437025530292954697820249199526694836891770906263850914697808650651747004368569721675963181313897281633302700815075257829030290752151676962445910556965093297236518245117767091210472718829922830982281194156892335406265865114126728214850623695195636141543064171269874719850500336982274177126196967666180472503060859035573530488534299375283865767731342660295542967030106684050739990068742199179963006789735897607530370984383786084232520598326127691438245225542931544958357857818147471514875906848186659007573148892479303833692428363550185894991653727245139728463616174182203911872155713768564861991904004061730513983535523549284304307742145406046480307239105159997967035108244282756992800521284785749460505972864848982099468672465625208148987157953159176571487726756457108892700244362791853626111627712066663788685179980849078713458954615112529336703968689146224010344205731849270888391717388721067439412563714037901413208154465731136972761594961078466389632192636329910684988997648523592967946505757220728203469790933949105485064016971608531316352959456513086065424338085342518852971544464449420438667972760895436715617701529499214623679297450681523927733834560277358909162103969048678861430361376355691813926531156304932122698875859057092446653511523621813188757506684937051596500671701558441885677027905476556873109774356075930112322037641508984585341824772325889504688365274654365648864031067856481125948028967540131050978878827251842826761326791439214134977294136259610194571397259326022849879950575197238846289653243280454015776121068711930363209878442330017730987399091897586345482407115841418194101519852238424296115318775073470505628531952129833160203121475464531938326206549700763435983150040631035883923894585982356704868689221797628602102623512296755750223289716857759597786462841367373632686685061504471479494485891604594435555833407041038899707559825139486327318115602818347079802760684464474391563220495468115262298075982441140859940004744195063660781474443636513970185276125884944584103092525101958809959895433329553622960382633963404408254256981427734587560896722424434632791124713796774241148119574404652606790354478705754210847055969185413529185623260504931602275136118942431723382492590578550284971422591824790752728522043952566825287724864944307348077204483816755790857132851438650399730588805163263736862777850393681055164733707053309929146796790384610584835870776545084645010507006249401683933136574800487775085788120979077533812362903171204307616192858239036856934982478106307277686166838317765268262313573475114083971423957785207110490860217962367056282966364331392091647770248891751220876994074599518108159943362355043668142912884899019225965909157493305704959569067201717271608952371256054275995182740297776865366428994565098701309925665347292155669446421141693096380682650730573782956178928497462802711633503881640510631635783885481808407615935544575280871073159309967150753449131993484733586895936544798557641602267634305230646511134069855650315598905808012117013969711848116364646468748152503851926525088825023681039967828260977634451787939615430584794832852826918029079124587928444398760685809455964922441097229283688545972190136571337822883259604994995672318719923324961557711562508707931351718435301445221228868011935575430259482893714044980846483228277669099900152830910992950721980896737268490394195061239382316973370000877343875668399257507620119393595468181987139394461543863018535630200630353884528675599302424870125154517842612796503292887525344326298122995419167018303693968496238028443111018023822192687135110342987781637211484312479576790397055879753932485432427590485738312341509691994388921037705665008220870727804859009150248186960547073427372401784944639340095571030635109964266399877289567026502960374372912202317669632552364559113746259561753923809365810632238193563436071515543197507779314645015314095754039364088808058021792372894591582502635559971291505525508254854963638846456207802330365280508074605058054610034173115872099054331972901273862888833125877107056660055890694395556629924923909190554847910129311143870565597473266620169559558770855206240526114723598882700731887033792745699524283570218431151529658354489100542721763658149121623160476352058302205247743622264746708379079400742502947101677816656782078033116962103774821160309655794846293100696555209833524486659496908549254676147389675247364702676606949758161304467407411908427903005259873251433480826005816681275800897052270904247320109936535577787680987856257135742517551959679163005965771631472851317027387630302947447231356272170232894161064196742877965136596537125703835809605047559268909655962946259186430828673754970143506582681959776152709317075569674489250060114527205116697781631905875261412263196881815062393443422046527203720764928591222624034604024768059898969338218939859543649669692786624983721523508425040697258555093223689325092270900516036965695364838120382804968726355326794249946341031168908957120870026240020213716179062569944074092169549823885801442289820425175308877248640188817915632598651146595704400706720746971148494045277558465316714564818832280960406974973319871051710738708592198404311732878904403573346230146735520258571445676153114558389026180240603339337680636707995855024078274155632539417846619697324369873072417392102563520913918936476481893182450558286193848839973927164067009926439302314050641794382659640065809121933138757540879522425243343317989294317076992694997937218645614989652318134563310765017205120538801838938384940513241251421672869168707329995799477097842796149410281382403871648846903481463251518488915522439282665923593272747120677706562997567433379131311074298035969433022528902872237967403133736234578994110362406292238957101662504595426333878827559127538492752042231693094163509417161951047794996066807158175568596757259118581463380739109406509286009444722904314818092065338950676407972555602626643778847556284981357157594147095860096439599014041198612505778334483491392521142601171363439089431299938514662992480036689431136832450861280168097132367760976098495309331112189424933701794263750410965222629446859530438991678797019605314858297053261629696505107183315147215803147813855571211386179466667665268794871727859610261362103478901856400995950390897496910675672585165672590887119816762237829176460474401338237006978540385729119738469701772832640342774172047631108658661752944563198755185749760441335832625345935478474771373008948819859219971908864526014353758622810434147860958312643457463053998490534332721571514154945777966824025549921513118995381520497186594703531473388236370203763812314863210593569468170397233424102331398585227449667844040655684578677418718681158266258742323804731903304299442513252729052601175831657491331992237138891436265918538257238894987873118322382956035723961089471011502480901257520994809079129675414972388964913686798788495574286001813137688443765836050599526510189155585864453747653771748602616499171191026658125681308341772907773451176632170503783199228392498412672069040396906020215674370799809594215151664049787346925227039070162579794071382827809906282853293005290884502361035429443760178284912309435737735205951491071582542692437116301554984223803690200517400155149623254099476386444902448341903390722868852636419950169332947065556407296423535573892342807992065262582619425934189053287070824783999849359356986509443744057285202377468197255641454082276053203513411909520475956473840092530253532633423624449591398700520149541187134489992385238303664402150174214612612206955771000039060397569877757581376567745729101419272582007476179082626156957004810795719016872611162975790433319322556880923404440461417613573604405445715766230011052134441726134791400823155021849042295357789978999141786638987014472221845975296154633832412437367168636319641452768788552808685263732520566957627481813304750945234224585892231673066453028431216498298741825021227096985670022321477590351027644211011469836619128446353035667486862640226837259215719623648322837765545054915251777301999829241513004746083338396347913498585506059148794005357158872038222511894733482775200707037776230479483561467772097745504295756916827929634593424576112084814429362152077858799193583239024155605456761725912798736195450787231384942454973551140521398385887403382975461441046751099627943482636260082033972864984449011583896605828563615248915266360585087725619480844909763022168457266604295170960706433529740385708876566747680930561912858884632694370717902788250399744902463066574207282276232166826263400273714775867463347384615905317344877773079205675860757217694066400604662842481236464515148901014192603839426800733083235412909320598769464182129872866879435645674663747315751527683086260628304245032191015709114731032091022076399154317671150019453183976320574749945779804727159526277035218057546218029988022909464777957995015838900238007833225775225810486833681473283936776978784500801164932643330273162338449532050646965823845227695243081789492643892112424257815376670749144344429603457634337258020643814001259974194237668357717277321161225791240482128195656728722061487146979560961315484967838536165908764072837237026969565353571468482192286953835093699321983026463182979820214887873419235922124564404271029983526417927493523330460450402088908022021059043739225510258582281023471706089931268643530008803696583914437621594267244501413319029631476989781252645852283598402694293899490144448550209899230885167577517436370331843247979252290806089332195932347429572119891052968089906522095956348067621526229851592099112040788063149488942091895970662726631426696410438336597542801898510217449348502627220256111620654926654714623694973962350359903606222040340511540873652851830459818415139491351164490881806172053457755587772578028226234969980932601156029794629292399403920521825612450681102839622461548049116561454187081062840410003955592867038059128383765265626851999419200749453956923709025822423721527921391847686935597694706266146853872134885703199117880664436895464880861888119098977627738321186065981290603781514908105714375943290665382481084910690709383116598880859675162139907034846151061776211693350169281210327648627052899142607684695540816928881551835134590181423928564875829229423927495717847769126005891591405769713402444275187938664797222239307730514585114325664764050100620670941432616960117754354322926678349284028355073682268213267747752212965420121059403201433007781204305373192947141930377357247087842059817346823263223459364343894048603223344785504732693339236671600549866366073315214365995961415881859087460053187595788476226368985525179939750580015521380851907343098299223301229298050950294118112842969072764014248409296127114552616839831643788536077340477122538026788778243083189081162975772765107679241300087790266357453933127524645487230203373162910029050920586925656763517972548258164429701472796808188716235270051132155551467371813533794257134792285712204955970941150501952936582154202051775080485590711755765678340051651923592322533821764680655257413071484370970461650693265926426226982893106742979080948050395298781308534497998934661014489825018925277045310884387434106066571181064144476388780058438952456376764088074516475422932946362928191113371726875808524530947576106531615614226609892623741606978757664735815002084062541981687809273069845549120679954346249463228118737959053889980858008253541330852364657287088403849343935648481177008521670170033455620879688729566507146092300718189279851909254020888486627225272144908398952461876635617927751222735404990136330907323968047604812174587855490774888844752996221487336158117529208698500283555601788934202868233437744668767585036062071521408509180167226167992812783891650366501448126716463106782713419528578280624013783456353622715595318150769091869544309858521375992984282062049183696060193156271811080172312310974420474563006663471970805829357404999023953371298256597008462167937704472668391001468618848020700542500307401099644844745504567877465069333217936991487024684160434334129611608252188516558006410764466001708398720703751436775007306256628030406999749029935359800322806896200495186198516287397326615540190776547306016552644095674278546157525424686659145064431561411266805521968705754098402504639758960974884205706797828418469269481005046862126838954110766328775503607640907701654977796880600707551076996891654203248986837438007720900870578208310631662751658332149994443372968227735488753831251391398716730195550237178277923665899946529817895808494705892681587102961882397612566908767936517319725993052960915672116788721390880302552334244799091601845678388122485018211737583510157272325021330154422731674465220663675365896454248318914289258759420798917959011963624810491358050468635095643094577955113987135086998739088188943539546284659639395140466775650870337954133335802937241832338600794552243879601063447805042089398508841922212941855014370354382939549736225816184103055023229747766637846521679526029211352159823852118147329524083430752765959491794398202516765763485235516097070760996482541985446183047651532453671082439680175256241312885202242838687807799808331396290787545139377715093283349502459625758667885251745456758414128780000185930272720564155123221778581983504666484663915207219121537206396784641309274500036662101842805595780471261240645386643175152980471434905556241247359697554807767300156545241854184056782885659549252333144490229351516010118341782771780050907996426191475559922329567692019275345715012746871375579135144031517217204523140975129570141323012396584138307111256580100304601713228323035414232889641379477425500175382871862564425158623797515080330202839034544368686015026350492158300516309968545006812072798064173837506471082840391374388913490794499190381503017054672693767812708759808614355142406905132077745396313340184999367962004316285485246227230903032763490601768404395882001399297602937374680412291775272921873907643107276772516731581733737835465327838904191375902942069036144889660192416986273945002065635590806252006569808057807369404166040220468610922614617818778307525780890349111954601910466947250882685853921919682979800134422025941329547804717701612359037260437966376031546985125088489593891976197822786484047947927484224160636490280921785299863263609823802834626002083253039646209497069501575034340770809353548987255251709271665471607214197991193165527899030972706698517297477054899339606654436874852419030758977215442079121271948216326218758640418074808700191376171853661136932718204246788506678715896853590436610368909134907317226269239074805167095331838388113013124562407703475488542675673889686171757543561796801064551333388939957051420176528048635160920310116218337783409576382503814922326568022991560355537740394617507504283631822847349768535957788341148446458701428533601751123163693004325175802328777077429549935741837878955012364673374779435352072852359917614488212911451934848066735135931607897421254646051646117407694162183381363972472845044075225822438897098733852814452991463487176337803904284660583085866979151766158864343429127989145901699239766658875476703852025924388899508741543858906324734238696247366793481638281583555393117741282483539584929773433190502515411555406653601872796287926532309750067378604879186230338875602333665696162022556778304127149966841352796752510643671848623520087607495841713939543548761841443907314769995958044755054139426955838328396837508478642200337638741934627610578172558860790038039727331645238950223306124769751904641871937719705208505072981077128621032099016842243637631129307014706981211483018484868161135109864077712694202485250018389912859532948358893835782485686433631977772586254478306951997425551214335819226413773055184971949878375206105729779564558159280502042287197663620589234898719876776901584169381116984038027681886279536225026179695399106606532905732238211622657221545203345541197196508543205637179980393970472387311483785182222057127421194860486745135161188812837539380733959455855040449133815760056421680067160625355529751958359314349700961664002096144066638020104720580808841532899724156639180845884841058955584508562286071108303062351403594762295497081189575006271480087792869344522425821962853547044085185264963534442596813312865349302509518073985686424926243274465150188653080539133519037611550262985307296786802906122957476335628665379702407971730091138957623772450947075798058015202304356348168264337565384340161184787454798968457067067072705995283856627211498361593512831973219996602173134248566760364394139380029020349165043226465968551098037622824707717048643764456010184826965725741428257334798181744967966605619188015733387751878566414137235641946967719697188021387872217432136358281092165158165115505053982635738950883689905992693950855288360087294147605630426161643857735807931019947388098130198785313138357584781371923946091473750683388172806700165854341069801498221469102589548353178843758450644518130077959763104387381493235670018445895577461410763879546695733353079626299768483934883095081112170992379698755727549328124360270047953515166479812049696578323804291989306019618414376111256658784512406572020107733259597208903100708527477244034729720589680400822512740772830216432170036947646207863748500866998612099594484017716593099077761437709425375478368120852695350523843397232354362833637516855066730058623962140904278284312389081713632088758036295492976857060896090134011364901868621865949658145264794815119834829314742006241911585157843184181843756636730498580079845530318766126877942377720182215317017987721077366415667194315244478702386783839633469910336106690382849143943274837870355652958521908258022021639293618027700464619265607948375541499212679371185660092264952370553627953467078004814584862584802233257991643444335224883534933606053678132544341904383491428104378648573384041112708928729675794628762162913328895704015804681622713388657920266164193789639805177206904703695959603903536205880108595203572067040080754308557945200361204704778207957281509794926175117666283559369241348010475931445423119061353847855191975324004888478041501838714718391898229745899356558569336773262071265222718411084226960584044242391185618862369986640531044847850398175839139588092210467848749409245404164262792450627502427390892462446555805871886808406752527356989119293417941808404892276952032883167793680239227659742822910002501157383422897289161369531367771354376903525212102040696926832547840317717907838924422496363949396481799389085390241333208637238408577396748049426082336267538916041170406082887021389703312127122188422254302445165608377185645183806221911473922443185989908791489300372743035681522005652403102610545529008914718380182728690121511362831446196376525796501221259954067093383706095111491468592512487333307177955381683820734472920953199432937693307241250046110761845377715671761355180819697170560225604779205158534194375456672435320721406261068634923415548995065336750391433671663636757851404597116812371646496276599121381448531634166689402485910816853380505090054981671775417831935202820859092821707723562366509662499360446031600277132674634723643821200236974620245770369478578101235573795132643458927661618464708543699830282558474263865890698652421195786188188682922398016017445248570643488225886125801516713984672992937493211874292368938062565751060958176238495653857997314767847573868257533512417274238380488267116012396200101137339161930365098387160339772956591872537709166126020115398837450604524194413432069018674278418236593356892414720571420988074816145601613578629622719894012589316406421366851309768020892338354538600348004507662213618848618192862819828160808885259434388119204836702363946434975702578120446992194951840784535839457515408558646193307021570275522518590718888043024190869467769491345860733612031400972912285928176937416535096966471844024772581390387345906254271238654312872731942177152009638780413349689305270850186201680271323326453994402350789578534878906286421240275100195430105958992057265054955942869301057861540849939940388920224348516344214645623338708232310655513379168883608201029367206003664031920675623279885985395590326761601856140753196209330079331174809870483773218406445709096578121024712126031304505343333393672522132077695451087796305834776605238660010793051826825706586749762110885690096171303893400433329873249285838119195984453662657110439696540608102815139083859600716771049976018795929752820658362748098074759942289927830235303941980121704106418959548996727169605376827795397154002818105699382737642519820618145028955323475225737831782229065937217046613108606028246981979834156313161858439435760124861831966807916255393551474499494633132244777802794247169537717243757149857031842422251053127625713690516046772482047917373203017130188820651486141787211616505519776880134102900303568888580597690491234548828282025613494417740876826849795571380878153696805748740379389048757888020728609305124072540787494398911700134247646778082916035161329568575752475187018561952241901455120753122417493453277402864331205508754418892711140024417526576936244265652191059393346539423703004456588131942955372792334250172470703736955352304889249228360565753175756766090249461079591747937866833873494637782261700506558789782704838002424556881768740166541245225094482523179106833586501790126782825007015970194106524464268807882080069549305908900755022014008833748375611109654289904565075835081056642825864288314435196854128009913974734431952631811962321768478387795832617721416614819227187450408392878924825600135101431738453710368854104664904232412240679792299873388722895660686560357645613639979727612931683360732518665929303692889055379088126246527857403645437240145858103612279832262964864472372541278044329107675617305921735760936799375620093744577353421768338549369464971690186005276220986876889726068329195066824825019802396708213366524592412460287937505006993631473617936822696161318070673849530933342109280313890451163034275287569750205539601099407443241984192152066509476905057573983760689161312090465692110748212580547414691269397219000194912179364618758346035525253252025618737023729545548117461633106672831403042587534521341938269688978084745283259423607969723600680298645249208265801726513546046665183786380312669037194397849727779746294277605858643438034968471532792653160322676792530245037197879734277305256922311578734277730062683717616334688031308928682065025186610874395331486177665326773110835046577967813465846060673412871575001374226610313757509652195007203473750390290958062041504522758801698581095438781280770902870537867162404489555382704931661755312950188538980017949659187451944034724220063063883033415429695576743578644901457009557148030978975822693077411322839181509989956955888232952856800575090873686185618728431611047327764966388180386149973080668072211504652231789451144965996326441357557104505689725051098188389095638039061036749635559380122024876482012421962834019271329921635497480283641112921040074611864445759887414571448288591484462809728489565542354932886001259644346390087735052465495204528131133436279760013823846677880555670340648262618929027052532913195306688737817620494728589840369748772409908541195615513920002058507645272011080878327209864130064834783267328599421185245113531944652963592115646827142764028898395550322923842814331756399728510023750319983204963135216514481492899433884958351954254039272228807731596739739519603438232904420932356110169959195850873956745895314167427887962897469818960378809576001796296591329965583949387189186195570350432144964028603680625450822726456550519771589484920064167362037381829807281958483720432565136467334376016369757987144298463026794106167631395692385144156847979995900502639903472544649776561838944465449851112801224234610712861924698417380123381744219445732530677248018333017698739350752196331490488761855916174125791894376589402137655599041720998588508573127893276781633708989700885724951865856485470609456724469640585958780652428669620502796037247420730303693116249563231099151409096382738257707740997204096456869158743591836117330688813308713386099640309925439420563192294311364692168615448691422096896639121478269376209735670660508871224409134065363118057993115676196011668056444764542507316911200040852743031977037271281906039298556986303489804728725828559819438379946181359264230475687223360147830297689810183433513828900348133163898476608755521180433902645273082679325603489117874523318891713401733113241874321632565930036053067941325025872131838911815355170617643037877744698238384621409596327786373780522756341895138320001563530605748207309740739615358880187395290089666362122963455307850205270139937722821549285730161535087895329166856095531537471357726930237004839188330226170258356545576816017537382346375030478614448020553680914915892539735738351800750504568981578570953181055250372264866863106371419957728871431748509505073064606843246733687941912934342283146874409243970004553021217468477236926341945144949520861431022565986428244635034923057365090746303736003164619603316886498909369886105255206500672371730680417829962663897396852955676858312135976314446887881700199027351595770037994426237061190655369000274789193060149881014759469832932696541764643935924140220807028341327934743229538628533705424518616813256940692664827046377574020453332581869959590391443885919049099474984967391617875845730060590903574912670283956308617236458361373318695823745214596950233892702942908138458138204849747846132959691173713633527349529252746427056949335019499307134182586252492196473237547969979035801246512192517822671769607768716103481300866352310584163313730010966135486518316269920392795886563849183599225648869858762469156818657951875705472966889424223562239530012788294277266486572877473142568308958012652501062133469958476600789949452322064655279165069150207057318467181001373705927320404187913034559929983509437036761000414321173717700849649296874749900287252398309358043333249401023234460577618586004438961707577477088996327970119529556183981559441423574327948045808510435973095654052912610479254428766555620028866818600485958777111638016099017305142794574404485819405134052788039366840462688405645255369141903503696094588739713213136530397960415915576824276763777679662587545884553279154710696837625804198863740124462981646099160825508477634677790612157230728311317060962306317319730369877503007541251465970007815438522334344038424938451171660183850871053665322975163457120984395222591107625576633025010062907121828399977200009952424579161308751628501711288611080707178665116176276232522008391185738767596817571097309280470500306925935534390523995601015126071705446056503060600082249321408373396899728843625708845215808263989779177635819715819097073215510300092408381980589612992040640902447127549954881747152327144208410458702764064352399944473634770247295228405971133818503060584391516186499427911405152173570136158300456662726594597193069459300213192258098505216786921424391067650517008087065780450084770587510523440433194616033337730934579056986604482146948817300945505461503258326960614167703326276533919797881743369917772110522099169086471167239371575777999283892078571023121678482162453894183864694912822117589774407417427178103823851573497773031854998070175377050681741014775977359371436052642609571842200134818270414856060925488633254523203814255584755788405728341858134846633146080608653440975733739100300993201491948217541082764222611189783034861681716816488576650515126655219685543318093353888335059408234760938759194000014345711780735640495808448917758596912981005806122365285894534128042164379069559474791353071202280914871159417353303459454327119869452552137860470296335957595745472855771696800701410995675693603312708398110703480808345189899103178405172792385455659495657032526947528571740351683272972328437453719033938743564446370470545635115951600291268776174427922796419127203493377459259759093363655363435655832330355641310056036830748251122378864840642799752528759315578524066241034445232594004510207444524580485089104706619582129646254894961437159958177578617672565765877460168708454076894992513098007643200749391738081635806685925625819814369158355300485012473654599108087596545663052757021315213291015622468937013795420170555148727709091439101080342261527342917208914588847936154655848027593673709689778566366430993949873689862645292245808330023502214608218923639386102076625697415904219273942497841190172720706622204707919952006472672180627748810104560089331015158690390576289932326037406106703278920272521355758045558408318668214391541959756290444079658726002010413503304110023585584482222536307544964147752183257266698220676141429056075449938336070901095146920480849926881033711705938900750865420028456298526814840747313983765343002811844306131458597058669780570246554508433054580631522671258259894938975220618459474675950343290107439148163840897233419924607804845558865961578301496642131241114969087739131727897086962235221418835968282902832061081541829444306571893452132847642629598697268852902643643416190770199056944940261572931352908316239647086352292535052461742022654258155193397300818681600746274942284824703727065946557566769486543944500009284329208191586422962062912860477501135941733831717156892668748412024147106453573953908128652914492655090383482558261920936730593814242714886904745183283308954299606278610473110144173324348559515169901379124831270741269643165550477911282990150251751925964172023271671049133755274153912705708206800122723445707032487784725386847362499586633971706420380957686297431949547410302744278479600744411141996055877305006613260161072552333162041714227373368771783800588268788308417882773155570989330267013938666647319022500241303453551623572063773280239556219576242374110555661344144494717946166088499824451963783244574512565114879606197993656247610778949951911384386451209889197316473659398913418268965155001876199910759223771010789820521866614761165881753885788333828074442498322224541027134652693253081992224040127406625242069259418841667248048970565560634280472979780645328436867249911900149118238948486240461383217183026666028682090375664780670848765981659539866163773696022326035434692285180800310375955226645910173332515192073121926868177306349581929638251680482738873918773903128109481924917780374867033917203199434460939569023608571304631210415904743913445158758857395601109551925396594011864343414561308224009781570459302877514308814057686139023245836543635189056540592396675348876067249010542941068118396121080163606488220542176642439201853372437932668891659720125354407393412202153271896876594610030516918193808461900640657860635258282445000646928807668659488478796036967056026331899003025410536073058710365035923882628264056739437432605090813406791602838422557623009757817396118212873239184567497486196979116738213372818270333708287329522318850543887713484471125794122376388258626453693238985509786604177683782139730656226335266315533360287030689921001694230938842878946205959733448143433869019673146327956050341966163066888484888786988155733148162809381743969842725922120716849001392518905588449085835064688886855216186494113431930841476762772688799508840841333276631189635128496917642925493389956987728554002518769602429958699036120861241267894551555248092726950647534884384721708261923078319569291798557705035131374455939051304192271241807613314442914812965270872731524330371878482664289804186119860839446890305988065399374921693179222774537780004573437346130926234641130403282943618832887364305785381575859240157166543249972787072357900138822533280794061461435611316316757393594329576095036991966140515820500118497983798280572330973439929698888630862821080213582392002968841733126982319801872432142946990792100878181154165860601305479123646691396942928217817216237054867551184793545951201914025480648833369132661182474298484855042002633798563569490299140398966111037435575276012644671991704822039647062983884949771757222538671928441635916969067327275290497033195207559578507858615560805286312107365808907489461096565095970929924577751371710215894001126682827331804892411668265332423268095289458291461324213281686116857811977383329252779457254929897314171203536566290668270246690637197256994315678342070766130539115836637223913649848943832709245542993135857558777668883955792887033409997878169616262987402584536406052672541754313887635332054051640350258002418105804521267556208235553306579171564766219888167797584586522540202896563655972875451857376266738200061983998548010736178747059786339299101056504895881512373536075019687487070551363153356182833941822810633000968559034984521564682413698370140416911951731109712951995970650533286047739716114345543839305263972457633435448949534089843755964979099638724297893167824640747204141139059506606205102389941914399147124274372416542331138181779812685458250669949944001975527358285788001691572597357926696476044111392849357172667612299172667496134765196617544524655762300766797429885359557982444452005455205752044582658583484487277474858376616826346811548753752753249877046833666279036897447744273345409276622276409572060610444360524102656707054470412438781053354899070571822284059644284886929064758088729086025611040752632159584079408019098877848545373824211637889848240172343742059826564415220658383627830723918334315150304294670895447201540066979537615465964318407289031271537073570416043431240607495903573512556225243406147249905877595578266116342786575560811259179001341944552160041635881771726601799548867013658736433564495220377371448815497573444652600598837560529485512133837572176898669991041145616570408333436640631009932738872695223219781210624117768975629560391021903883056779857598336325026637844544076970278158197297481791865308434112317168188493028849627622500641846865151378745460785980035483041940159097747315374368553003342625642154710832412206223570341902773454769465672534402749973161832661670236857883821275840920219925372322971220069041548301476165355741125763212691910577246728399828076449956593196323579875984508131390527550023631758779814960382240641469907740595894084329528158750216978815831217519737707978525953417992951422128015572392454311758691394143035782656036769981075951451513390498062604694750011234981557353818782387325319160452702882415093691740046410410754378117095310666469268228224684963362722629799142476490196618656824786036690064504031797275459605090562980597174371349381786992934707916259937879772289933564200529568304562604280748708067254691177316672091231120898482713595877260270308285615240023531226286804379895689321245206453574002756772620842198628474292237707832582583926991850170045557411200895236750021072690900207845934556190769734487033063528315953431639162670771960847414269842490854496177474153995703081991663692562809884322141643502588663825360469126496168572826374611286165155862097516301933242175570689582564256232078498063934402691506240944784093954655922751692694646091709778737867202222901855158042088599090665523455496576077444460099270445003891933050667901563041774901436436290292505418068851939939332419736755173555032089048341095349695676774679014997370765930324848259727185717311873059423961083551144700475369908905614615628548313055574375388658965758384721025516212967226890841303101956271610162438381021752968939825188733033717443475711904977534407549824065515521180812376821506066496117547543228600993762515175075710857165254273664822155562653952057706880308035474027710952597786420233611865888429973131981131654883757406986664053313708249555347914779559463430895730803165362072448369604192690035627267184921491362468376871601830203123515975994679624198260480994824300018974983299689142738851867842198421035268064376820200460365709807675139019249309566290304503328971332623963322760025446981140916667497886185127525079730695075836178559444148788026763623677361629298231025436228599314385035608113729892564817275300983428208894656600628028156989450029072207991554008383630382952842418407129407563040782408995326291707705023208271119545372934655540138069981755232615234551500520339748191735520168296159700620181512089584563558135766430042292491757125562930977745929121823867977328388789330708491166778203124973019097114952587092960556413608140637823682185994952389836759542594862551076958456691638727463817660030662959135355749682462857695966404737429301747784783365670258267419580695891089686595039979924538774142638898692682733318261748812320952877552498106984988251222062116840359858141416497030872663585208983486313147388988572872318640932728722955417590429612959264140723584848523442361971927678503320336361601589036163555165356571390287877274315750222162311096021240924128487592162392890475568740967877411401417348298001962795694642922144856760185094225675281206746924422933872888438684803532536444006515476974913162326555768059284041013155033626379172924391087822434981051275348329289040453035526200723054045995819766983273962472943476922680824868817661025637706227455655646616994865222085856337477438122818175847076510395469107725789200944369193039650663177470068525127477148181927456606481644979787410310200485732183999393030432528553775954142731081977369070180100771619570183530456566045887249184522323856058322856949099381652526607984907286247334966931718137610324482058799459858659366574177329115846141526041172754750675610164044172727056984894883055072033681193986906302274759259428082435137466972007837415874551842670359364133146073222889563590003642926217310332325826835667522951785969674645284884106023861590206356734100720384799589448288559329407989574865072164314596984630861790705151654768189177834155460854460146264931889333503478617101087245239280791135223279261900658140905532527297507343386653471939880011363471262099601512682371341069448394300284263628727804794043205235061606937595675835730712903971138738595178328311590389865425222253068995192932106337520613738752071669932090438534649199359889112819334795578649199785726815520309682232793689890497289953604840520419368205904696272704109482601841855230761785855293358527763490595604360188548000366812839036929990092091411468231015335821982204244718167559177858791229692540134051677955447173526742568799559853860848014071265337272159696630012418065609686260872414652081571854549869722226200401156074106450053277610835758364587390086317234718478068761244770287413888642805586702053708780832833411323017632818226720748645912327684109464360973044691977249020009041554187641633122360493860961731699890390496782838656948230316928499931544626688560042002055633382930447686149688750339776120499010656123873789222784672587791333187971186272885931929622497432616067657293983848749905233754129085541904429153645580037616771648433213000802533109777939042583131134420508423229990868619075993135590084724452467917622125951846927229858045754849647748977381808150744968936413920893818076812082894341362372552471176903541444406023110140396540234038938416022802172563944018489198088920064930592212698030787027719545956042291740948842550773071267284778202739982122916737310180550233082737787187173423799301711771981249858420315810706640010395559224162515094059704423671525646150812901001638722704889051101809809965271091371803287906048559204097116497115517643188386219209019018413782157728655318773072426549593170807359807975119400868026877635896255913028880654112570430021296140686829688137302351582278144589175031674814948102453109785185562834045350477188086587466448120016669246426340896965923297999921323992933736082785000181413373130352346415327256499186745211868024101770744546285213747834271518501859022215727414243209627050986187397435736102985542657133495451171949541832727631883948893291365551815427574613520856062014038462966548370864894970926228784954562987280670108641607416180655440138420755255072910270829657870072481766699595871374814300955519757047753680954860938141564696236205644956224897639875566620717908923211278789639889574009467194076037090557721132142001812335061637419644424869920105385816045974834210363341508345834614319503525433367989922916638687798747214097513870647889276789174955531426215967209299860666939442636964208229942672561043965878993202212825994678130182480344317904005300338279252774658845674679470904361100573993674054003031672919525294964029733682503709157930789808279179832537013299266463524201271346373034259108361534089709646721399117184441417664889213109576208475463094610453133604268796633747193206001822084143550643858201904267060113131087300591171387481809304067088788975206961951262006122369554344717838215059959622759067426173007383112260029557338637027445651981500229557285352616247033695632951940286670740282581325034939776423876754087584106559402543414347905262829068206876012288472550438720042715346780462615064171867962265647445330792852258927346858399744714865863901783506923409572763517745866927621314169223299361833654606772110751907569174347966933538324735605155469539312341955070283254809147243262031264365840511413881077497227313794891363471220280823342132933259611525125853415727493500328605161934651982875456315562028462863733988763427582128307100765741738215555598492761831964645210927891957368015559181806507111791541988583979413871909033431843405097998262311658638709869206074253569823864974010872728765558692976310446046540979953633052833413597112797204190634785508781556375940052909515731960439459383749405170347985178044608292298210183642168023657118049168548177792869000436683179302819977778981706729858615888819146254960084451054502493541608292290187108309900999978535158882126836776551988439240087336475852859934090176595214152541414396658820300048805388574747137215653736420082978611181719003419617147938936528342452413397097202689345542148418133725435184967509812035048588350918216473237414217600330235725146807320655531510259608848540070152332529644034029012977778899677754009113478504162037983950445394104711340808463077781455765703533570503859916007789122358872250290087038589534099344857687402468551151624217127516391655343130113715520543625507479872743752825238426657469206386808111807560808024661140836616193891788876865189715781197999079920222105140729716837832690541243962513522521592174835049259920955756860192964078433845595113933375060629209307759842248057118962108261895403850476490499689531479367364814314377442713507353833683038630693897804015939160633814834754045277456099512628834981194706519834371541523789846781716084201187231761624949463581968928907711500459078396389126029644796513405648671315493453195131104163149603290804523142722507104279343649980781370929370607999592831052106506209191245434681371532251157347577354284978828213185304880823853613039338469574629203586985222446572894342792579954353351913970031963139333382642173572416772444605003120477692196990251340649391944891178347835376162372976918627165242141080279007566371192511934488159217395149892017903047825245351179597058776189769906215714421148683480404436898097101002736213375965284940669083852963521533393400553795416002163571154080518423054173355177869535848916226172838584570489066766197603204294976220417817651940749069655873550769804905999836787346074734038339405432897215139895975098035514088722483690600742722043560408201389755146802244944350697723069933407721637368361797345325608658833460578502105230893678356903251972508068980822682456364449441213631720280448732589903264696045434922491601263718931139291057382896145885397385277524735352407243477789444483751411170467482295968750467543871459337339396422292070982596340824925667636603941250730743115011088974685055479923482851640767874917303040561547663872292733251978374815113836415226491003050454957816019936328544880269644365431500087893872403379363935032867662889778193889752615086029213574216730688912317966479286628881796745006610312175971561812952271083907504289938280395737724573161486020414837307757289862076703740261641417687749041997117779922435039294454105527429942193702925265739535520080429867134940657059457669131096907968386964275307853146929154691786641263220006046603229854208077632690452292788493761021297008780967293792083970599735139615115234341868668861906297809751494191006192278721809036343929636409511282815190547177210086513649420311766889038600970529010710094843500043544969571514832909640683926559181935853294837029629188359488025115911364004290410288464760753279462725871589054779149490220355988578903235631375445364353539516210807336576646464689764307415559843409122786215761930726373892172656618488102874377904131856033792774598539217924874765340172427284565341991530350134998712285742465547500103055389681993086629934508413572386098241582472585832376080625072135936440019357991750629877013032013847568807141652406511807493047219613787275680252031848583849119469198947378044573058486523249742657744454201065548244940570655227627168791416481489852695088725028123207636279761786424753886306820101869525118233594321548402213096802345911173040816837714077547079768767688297877924799149550714482339920690982396211533156439323816240707757251769007914086264287588375194682568893074839722939543605058850508241845027789929925269373590853850875775148276088781923849550252544463550132910693141222644000460717748314742363627164717955080625394142730241495134548157388973870207473169842406719400768756290871960257800972833043806212642886035324556727691113107110746225469393956939451003446690529389142108153353977376396011962245015224983282850500221941665783617495893230128870426733115551499333601937641539071605457624176116831639662252949616044029990812729863540976620249546857889901071074353115296569962652406713055640579161316609229345526657368997360616483093549222358314257693294340234181022740802327236238734438411430008075567252381849191105575710066132228368321592191937042113373515033487457213921928796463749583349911433323868489352291935847626884801275552998345529925548961730741569441625319234076730127089943495753407547613269022736524582042236774664858190441611627047065296734288477485742434211296525300069013613772004167321247243091483871671154394607414315991490193411793878165711889031014050069540381597231661408868202033002942313355024889396192179824235723558750137286961036442156862109427267138787901533001743990966233843749710508755165190156316376351213725124572782415242843974234349877819170548208718587330806695733207018561790599678943792150785962215684022464928734426261685469771865149970965876758747152654579308386902006272751776069458206736029954326292200658427220413138559868397285833941829086990353096474011737582012876642984371448013890963583104587894874837616906131178482764122756115116041178568767071073233117587079677107590316383017173903656524807162747370039897955109478923398746151469110079118225338325011993243361491448759694033548396255692291158127556785951652500130235887150135926402879593096609425856235560717529651906145158825242664341013075524697200739417120424634584605669085864231438095260934849596401566202166839038412354649518018262880912635612755421075477809855801370335449777629982484763777635206544549273079142291687983088086888007060131991708836201895578559955628844786172870856828056945488641837156665837767890293717270700773655277181260627055193578415280337420514585772353507354582888829061695975942354535999518218217762601633946967696685583332348939057417393170965611169995300458290801067285207894941323373246169471619856953720083706392942641300185411901783565472496543059113618657633185696478190286359636516012334999026671104758626794088138403807885992427724248031211539026748287787944017483892964685899848888584220779837903057361587990747145785275353840427008370287778300892926319682332664683274369944125670080682209153518371258591183129721246109309021746340872368513437644061518978797322352019746269917371490973483529911002532841030256686298579843521177280974668617096225037654315092023855793264951342446340296917163588760541672124025934352633490076998138979120668652124054673213393894802563426846160337440502890878608075766882062291519847372218214859408197727462925381367342444667594087545805818362914552551508134639606784005222940635886797281555044697775578744841532044250833944608494761933595531184927303845709156210673372832210851230210232144777422988588232125082792619522016548139452368232831954303560817153440788281088019287294940456608927215907580790260994260539061612738618024679531219436411613359089125661056684600324270153226034949410090887902699431424900760975357002748306147773877575500349803781642854674236407428679561265385731625084733805970228620312757673648748213550254932001304569503990132551921411512013587149582553995883225297884494031282367859713064432105936786742013489160569258606104272593647515183633185630400222249291376736421713772049212174564069911715235579666622873394260659223041769679431601164677724470536709815596353995279600698279066442156018252332750431300934841525246847890416675891595099215405638743867121444423129704120802280026406344440699169878065792578768275702926980795566647874089274747957344208115708962946455559362334168120308868006717966542630326434592041756516510516947429084633516577098547729344767180582182418048002875772435591358769586069734984598716396209501797587253980396698921304014861560361513177830120565326247787606703862003557118681860866559207472748558709905158729658736662575787540882912725559428681613983688469648331815496160292020600391002919116141824372043826944215329762139639513741926270230342601388245321692302993558582314854203144002824287967278150938126698783236204792139234853765894845086854642442968190957023704129201475108812661282684043827471479054968233177246099885805078330968294275211383032288126758699583256805139471134462753598736136738916021719057399210883324990743385706650353138363463973907781517363306675601709732315780313447716587586699132643664242886711540440711617375228290226724841280371475028796526363384500349002299054163844521958133250016368384907960030751939281584032510301248052662320599234096993334227307411456656656694999917007685933281819719512500162878023198410129850357414479248839012738602325863953995572264140490464083159486856940441986278533665600903877372381181510957938202873802696232495960678851211883986672922651260938985749194583409817862529378234992089122567929161150342395767878473330194953193103774708787770635706981862779162051007221163578628673004546981922306032673303946755548514016763402023696097241453638204843433519464156561173853730678176589590753042126354342517628070348069150375443872104399076567529840524135896077854921402597441972086124170532244509717979016324177007251425145995684231809876796688266608302773329851280963227871647414758775842595534977275102336871559298852028761184963556146950136897705968224492956171956414253004422429653801481096420807517794322908725506157765573873261742066435160563672375170255320315969584727559714703742354981358542312314414559368773081439506083482674496071359580844225916103873839970156176775631599838495720159072089481706189209766611879735536110170818182853137871706593467584702887991012793299526853790350636297623384496872788690592684229437846278065645820702257636296777808469967850289374517321313541194001354251053502792023801733310353788998238892418417393786342787436336607486958051742037456138396278371965833625121295079506863923243647362814136094044923674951881690234785033990605380659935439155255568049925133749526583308024764284648427905498126356893597640369677168381841195578231459614207321400794830751733175006330480601899738957612403248769649186672243589743628290553261344487688634742280945884799040140234521895237823456932470186224113988953133923968446164764439115419216493582919310075184572838684354850632967703328345875639308907355334447926374855965673622839730257085761612240985152200941913315604479472317865499540501418404060661954567679877841416991470133151432843615526635051128566470858323386673051968921934393402562783579532639089105273513210253307303309028214477565953487375894112362898821184995675857646126236801575172093293490059538068125770737488062537996805546262550407125050868866978468586686697862417665746890395963894354506056492476250313645531179216149314312734331747280467491049986910591562122151232290109856633278163682612972931414893121959836914212629789357657000238838994359953043806727382284537170463389350542546257616980654916729789750941510856280371403325350691679822215453259890657638310226647547025255999956953511840861947625130383547334108592644143195255967503309483825737536944958402272727387174062757358604430131892829760839098407505321839790940988766154587969451077785214937700307227506900900695665852347702308257742707351369371796607357214762694777274261670412119415920526693866776254268659666046022538701245584684824527795485042169903440071881156393451301713864568571042130745645455165317831350527775627834515930176334268603574770531959314769067434511300919452482878187718469386619350912937030765662759349368515544672100699332557219281156894289402147441254365575950475033643281720459167804815056834968638694171774996484420472787268624303653759983755654819707373042610098298727860448249024667947973791195371574006372497230790890450420785631608814983251783609324513723099130447473473034786655482670357456839485407388015432257357518966301575731404123914444917107731385702939048438728711147185542496920371984647009790867467072330128437171873589890950702322534777099710155199493804929005444129418739749402591518945693705895246550369919797429119575765185383703293499977661504721946354731801981683680799084681124142441194712297845482868092674796573229947270078817047527355879826686170289488811979297293607395474422297895600478813635470316399224876759813183326856427495468256175889513816033637684967240265122724885226544251564316668378156997636546756045866154139496678723479491711281218593284984049040512014892140865357480689379122140204392426601091716119792430240695624825830215597404438328460914340337132089465718482874656766806827515913358122350358517027142164422294979960324697032232332252755266302531017919867303425082865995427514350387287426071420636768638444881074371279979006810714862585593930247355125481940364364158549724794259737528703013080000553179141079182663060650365076874609415312131294196144150953364219765528268374685020955618633363387042097194845437567695011212234553451419329726068561850491003759689092624359627836466864683029788816560448777244887201652242371212808416214867122184703666635433105430451258012343840591265444361627227577379688651271622728354985181585199775129760977788241236146630611337671646048849321083282253077388324070109450245594809378381168295289518446027349664702317621109501265283274671757755204231360372575165601781597365459157513810718706428328885984779421815279282191767102607259752268997754872700805487533207867214368666804424644773483267002708812306808731778452959963842831093769096163425901309872540578513116447741905231858569345526835845040819308824717672922163103691345294656761255077620394075867789827796035339615716501590987900194625314622969068812842941863091528113307110375636957663845756985310421091793590535228532835785126336338958775085869405587552128708963555518337586740555621948644493395932817795597987624557428115865248482069566852179678805496001321429302034166075506830111745788854730804729190115723010912109382225261089577364183697774866309676033397606277883808075940728341917751556326854114569440525464301800776337537835506691431270046209436112247704551000570764310591665025431362982339563862952122253124211994157490091684861445217633085238106614632164142972629541479472777848319584515494582294378380800022675831502546376725197757318088039713007639588265517173197140832713644347412589675102665643490077151446738489635250820818038589409036017486526217475953297587661478169085683306869454807645371981613808191181621182133512713723178789123221444791716154150102523639978391007644816361070944008235952004956070186385922076292764319155102325472860412271248431002385579484196725353652047300354627591317787742266550238875522872905827214060863339574559758865168593118633795435608025148998532485636834036995958898425600588026370113982719270998221887719822934198739702599439394438585007205305681306444975705752951239195126148725404739776242243056046588989002140337201845258641985280904132071872841527771676454346994956617775320957534895638905298802141029919559095121326611954145303405948265351137838737635007926311152814488309868178001758524044112794878937614905844629532572086527175422312610027446965140943511397645914395488853814914566691051937365682169950054690481608614414265550261106693961791244160445830910046868551436342519287029756448141119423701331173668220609882946024046707338447558908311216225013836170678984559601244000955852501449476413521082535141572727647220769441544623653363282566939652520217581191498192455528491457790291670508568678412950923765112656668055633650523669661284320542209027599680134271544486748385589255505279574795148407723988687890650331594962658456384803093344172574576666557791665406991493864697363875609856101232703836882607843183173406497041509206734768040640244035186768490915464910771429495078655571454066239919493571844133854838604578738962140348674797224867007977394487437011495246057689089159219188170761437864268335920226293447602866299357900323212273660532146711094304779032751682480934551626327978455366812240786952497721750903348005409163370371330819911363347763612689822835617144521381554504597871374321297297905811578748872102820883568908204338944348802609296864478395959115387892699736628985633625510172675281275163519783050702649761414809465971265257025584379233596119521350254167874803392121454537550182877616035742555066744494135984389650700519076989482518640362808175334567924246070508361885201342303618513669292032414668122806971399233682953920847114953007458377335758979586439010277731669331570306081769229256492018745682393892230014668160430634856582554569359932811295531311511610161257979764213082702564497070926560011938254925682604563977770512192080713945693083687167766158226768617354698576632090087282988902476394219699786934117876025699899510137842722597633658880516380455138202653508613344862547945689868229400629537178508714110133093199026296527097442982444391420321748196322805220115765326145808830799401018796547192590178522667560943716316883752483476824929311612056282951676704164808779633013088199661224859664846539408236288805599133592254286371368696379022414858024511798564160279184689422568268985787116874432779182517586578947773892055593394728696523315139604740101277338715385178574233723039559216631589502223840475683692538014739988798869666002922441074457531388875859467414004019979615566796139614106374150922638796904352147542324184182408236226662943063194670081115671330332085621920216696883980237230101546213446104164336073912094250443843810327656340455162032020334928657027185419549562339182825037198270980615241734002256104500229163916037968291070275802347641553250311974371113585528499772269872807515630256362723971566852776158756050211625614586872983339323683136467513438461393607648133713871393345225757391216235469859946516242964862864686181352797262789380984250279520117967591653935464692529506294165768886056404755765028549646919859787296543322006258471344270989988901050560411865606266282973123895074055186680299248139034169474998099847444918198121082242094461946558947281539277942802009031575064521422354143814683718413335230339952957355134623957319468915852430143749377530398481465237907375220081237622957925417922708267501373211479000856095373707763356193331731677945419504699346208013967414558305158000773643108588613253131279770641720565222959729352589774937492623410043747295276402817209786068246531056137856058934127752394620505004939348270008926603133157110713950314187956894032003797824296566495498270664195691510367250059918812472347973665388634755438413299280255418431603018001674487213605877382282452716014721409019240830968655308689117163622182185739465432128958939508686475106287773056630054833309904251345565636849638341890460585995576436518459485887746598892825966123841337668360754377297355461772869654200768856533330983244130326369910654573411572270001101151614334574117087940839853698767670373660577454273638743605819723186010654211185143778782356420643372461694325926644374331660113105958493130564690523463829839097267463713083250419283398786898065483606200469409668449582001090202700544891323349971215223986125530894554812109340069789638519693586286929151957564592542441893833632114913548401722472826260669429063041709172934440999531716208025106179140663872521564496117568674496490932834267661038852990600888733544888188848768637831603850451281219204867305524311131516350152912079254537746296608378503435547646630912879708680110166975501315656374967541558963536139202522277947810377523212027665736568463267916178331482104369083396774547238656255626428913300596480152215648953683843335270883889767737913430683339349068946937417511841548110476090757272058586573730558087342137369347569929234779842175566376892977490338682594286677589090861907294266077312662958199199476496736712467644784388496358152143933134237746769993845055629638114119455980418749874810438111306562366342831095843999285881568477776944556325201595616212226689807893919158027544951158408065441796849596299240202835444106467227981533354760392725514637680888874328014653461429336356278940099892879122643584737830284828620707908106048667350476135852947704219976705937449117089246002490584042395229346219802799501048197255022597594790872853733427879107395951519652677213449979307989770907224109491951511610550876377490715786210089711669938532142320158582284970268510848229164928166203756548622671502365468543097366382897662794536877227494860334787848917542427601871411234985570293747844609377988570246329279408555848279554100413186903385819416618095603000740239045962096126034373450795754737741403884184011598340600342475550144866096568653307833649103548879940070381471044449956340428580794716223454531226143939045061641748766240950898467328733670542724706780549243649286937331338648381620668689310656583161469831750367520312453682580820811591955349704083822640114348147261695576836759499453016273504865529162325009233766399096354853147751901995623894173025418745038715170279504030119222211527532321027466608688135818543156617120743184864326600219444449309171678197771053592844809560403188642909912720263661632228606218946616904385512012870036227686877306565218682845602044463966577304770875087448124109839672859261815682632550468220117945346598806383724106463470522455369682215352015242849265859348263150505375856915442695083909941835105014947831666377104304009764890750987261913107738937197240223609144378938846586421776345153606355216174443150114724261479506589762886048398691137930608729736246528903446090806778936286641679317841509270235577686244700188209041482349016274757395414635665648142232808813548374094179795236181621433819079276175691067458193437365043915042476650614612145504595739489755138914091111836601690503347344447936788239792899535802133859681483015016152379174002238352858023602963657087629755957980062133761637592401924905372408828774586850419611426601289501017310282505797608663209135967799920423056136125947060606104005040989919486837348755741326261498285364851155928962829618920091811383602370880030928747231275780796677989061774787904708158863753587870620336277460199205346720099581429362864667060359146441144044339480801009354025984116656156742349967901190827170026559104673185905273376652128628507860247610592646085957403718334407945427919102074794532034495097311191422501703111333442943426025898661554324202635571158141559854687626545838659491029094801717614585477737930949165129915246506780753991188990665037520052995956380646722761644082126153169069058722606366929030217432004270352662966025480944533834881709017147143648034011316803525197474174346925722700482859110986240489779686134825389866223289171757022476267834203009468377813727316050492433226207532966778583961933667916669471477714430677379174471856082851858296936820481903324731134881935349569606733474448215637988720085690246683216922832049946442159254943075953089844045028406295629418208292321161439311176600003164136636475478895358302978885209076065396810214173371116013762731645749002292205724628169994285934724503035426319821177378197261710001954681137665605506649405367114178370850189834365748715428065298264764245859231083349756455329154193858097866419121329826302966492228390109243456992632593439424139747746200858579756967338804041427911064007979592657274856898917709895960225832894696026245076292458713326418889004070010748486005908299302334256424788524472551929323278382677523138121124836847256148997884410603275743503613693404486698509537055214443901153613246705556748408622083448412892899164271667354998097306489721479018429325966976794624284360899592079554236371837078493119701496919727167369677604365669891161371754938476573562484670418627139702270733096588455508831691679850425753890746876403682827863793043040150962521166936310745494666786687502595114260656884647033645880716704980574699309763833822493270518165717769704843218970602662308131716065513069479220213067904990002611749428461712400820678708956010753080672842921119513372567329983704409241660931980611771068115902865586902156868178216383146162085889856261385056839255760530189817178684761837012534024644919760328059666736750311000712536071531218960321656088575445093256502393782727507478363163301462982005664247793784500651346330795178932018007727099482644710816358619112616690201692920427132774173648671514595891712846455143848677934954300432995298198714810418531014815479541480731510210964622177048570844216179269604087800874236032084984355977642506363003313210653492724843354653369437872095689338270461539737939154233228270413847290190235456594312827860619780582034185999823108696200782936020681301622204710111066013803505780179895332940427048668923977014506673322111626054716077998518363049231024462631967198875192013145080755723919763715743198350711081659611471645670338004602638321764614386430735005669660050939090966687937202490973886651871875461680999743308148370926353482915360514709746120119516336563515557741135940010182747771111912013201103455740279645698170430355822183662016671428329570973780486774077371506507033428421721444110521288903103844542221777221517998261138843568274180031519104921226571866520538873312618472129896587261925606385861580731251946636989775447132594420180150770686065436454948774654787448197189412663111646150563151204684464160180432304018523896930250761669294332074365871083636381665195602711466861971559111171476001684474149397111396317209040782194154130560721175216468657266920476795992546347381710706186757983036421491465135895817855915740942022755043419985831816450181198466640120148322656076449123856013553313775760252771819622443873125663273494478301034864807026946200148713722291273045159303746272410627912635585275234560210834946007170496629386930457655009511268185674429054827546815393039143024331906215953371203126847979972027677937013199088029343437673988461898544687545427799962241495671495711005213890344243574231190869064831699848514298497116054136038757874720541964217245331167105953879643959615583679222313527074417614127100643134041186968384628621868391813478453175705708196881274249106249816110177393193921974955261226634506600962584397285058058479242360778218938883394605332399267086755592301461848050473973164642652123919552400997404617012407062739155077229020951358756872073086996999648940087805994783681988786992965937074537544563115256391857997837527673179684271432803133514844694652555896026139363899928116753351811744114098870082685973533525268783191600965514273496029403915812151610693512090428140237535131890875862379147517187007468073544944139367644082015970165917275538755881224187392966413394097832264085988754539786164182109232143892987446242378684952011296220942442019415805482185583528477378185120727876892392581892600862780528210919171109307922201794661601519051651753936271061228363209062547114819530310706903582069682017816201533949104839911701167665312046764263996293141274392992799914559531932413169136995312324241961598161942085814539483720565424003760134278683792352774629422057451078114283635172751021502028780492102526783128759614701130626727836289113559295292797816674821275640995677353545902143086637825744458044200597759996522969354988389458644750232893824982000000242352516805675387645451235013419429019048863639892325457792180274405347049833902112246949182791272587186807488605385897451101460242062431726452422487090215233806729462982022961012168431218892043314244904176651630361366424609157058407518077307150626908076695803850296234659831222175673554271878337137053355168504257349654808265134702179618172172919502890150652665707880210575014371359353889677701778111195193212777082738459101385113942731826905079028803174513820904929920934304989226148505580549467108034682124204743347741458709065826849352861122246596930877806153030741758400100987847422245494381030659065383597825357882097236385250478443247193819192666501866604284785884762281831853364133339881530163181542726446888965242340692032655033497542952291349885462170328868996319960696978959837141950915197708854153762789968187601066800073959023627861875932814383869457093498256062174391081331284445400020523461730890384135661284077957484319447336137336051937304168623078199461096680205801310210766410837488717659472464640995265622003532505934932144145760353354576664886905419558273000211486771549275387590404342682871725623313651014288601055758062421208054130858242048004688352606051665524561236518990608558016070853632203451369819351989980091879537651462483068301371426134828375764356885092324354493246060151894242300754792181063339118995872738961563380373394697561946403535630472265319079465989609440214129042779764049421767108241384081424316070757499926445944541910291525005683358134002234769543166307898808960476537738829275641549049039134259486889004817973143109793410288060174717356236592242161470856365545515921212149874652912805843544835202219604934693161438869867482584567804426512261172291347160020327974474297201235476686221473628791668546733317847827788163961239790437731766608493105244203305229510279495848079597461239017790573782641688801437201156805173386376310429937959322665040422047281124848034251644426472305078706666206842887064413625883086746244934701611152377891491670458322190171226290499152568150010553463494874357338700981987054947658149345024663404774288488255775711555221580744614638654920922116496338721674752932621923272935297360166639173007786673586230407036208427561289331146631415439077344899822984623579257200326659274384538011780519594770957163069437663445627995637719224408780760160315744639928173612635606464974361650920037103132363602239383561344988829711059825067310492419224585710047303112116653375961631499946730985487724656126653431458020268211231638778005059811562773041735357804882711714689917250864290925389526405913444263727086201980900447332444950434592574128962243469118118360983567560078672014975230433970293337657004757889934156640100547081773954235524656754353793300100599977185478850476162543524121405609376273801307270132954294321929566562612421125776839484197333790489020808108960234040407932200108968485932707000563965562806797750064330821940451622870301096979551458924067419343475350885978115403327741918871245627465516364535874834888853100848018799258234065621907190213830445860475704891804676976498565166249153432311320611328047862615503213205400539925699684215425550263984796056998259792699256676140811390133724981895853100287666714523092817034157824495836824646579073977003770755973148652993701852369939261765671277346618686060248999308749237063143221966238691412342985956267705720655961176954620458378654006690601080433040862128217300000489807343692426768401942723115546286177836909707047634975853826801933378461047975836103686707882061807798952454471531446975702013379413975281633155896505912450175713578609464686413281207201736954891093805466003710652202964361741279783207275334720583499105711580940769000932062293578680425631408558967323885454662634588761190547746742548191454983360711476794935571278959866086550807278683363574336958299293809429524730466330334316880175662173383670924056889626575660111619617101366524013847756832026352214831686438226992221056670488517583840449386818095910881743973947750041774246103256164046127852411818405404299048405202549737032148103042782920124895780260499832300575403041820073916895063342016593508748090992467807112726473647813865835189048605866775239417243100670422993782938465142809861939195815323581025844587383854138981793982610783680816566748201723863316282595757046925279272666445970528061290784809741709763191424824763546825501749315205542125872400124960499896816822667094885644146809743888211077620337596552249300238345313735882341765931428399225765281987337129403868691350684096824100156824212109903069982944595461302423421225426098535389955203847197653348822191532210890897947552939682521196230854877960020660179407320921786056605969845445577421210037850641562308662285809645739845812368075278719349317558121532983801027002079055169844505137872902690005538709205562517617080258419005413088643448933774473142367850873172055220726391957781116649036069288289399928232593996438999333663931794982756487052331455364020361116169874726726454214741340497889668110642387700132696448042309770967736977121126567611171353004268924256051035724713027151718158182440010389247531575215076530622718526239042324021416578159480121819316902158025149095670832674972970967909310820218193874439927024768369640716542940550577004762771313910497828105807163387377879368027820368716600108081867702371030461528327234486123687815102756709645488110708297543073912132872510048564697230143913235022257698043443884204923810082096524004515758882644599494570786045165022088478206840337983048296986923100481337414260206976427806067352044949257441949643203066864639542940751344001897766113946756857598150224316126620069763657745270704340742300060011055870742987535264366791813266655445219977110837144933505111136790887183741694102874925029373751878491293491276788323404892939312463287413659007712405030585425352005992906268331881434376144693637988942632232661129379729913517384281429194109424610544856365246989422553621602779725044992529142456418145325168150544930539243676050619993205849780014914671003760138883585817329287138067146893650410296909118285174090771744432529558114155330939131734363142259375933992949037826838997102283864329481853274212765042838272812079297957519799575045571426823642170500532081782919563969397718051659033957125037782990222112324253776169312138711846473880750811998307442112126849492270092487533269787184114015320506029870821481251234959811040815167368496953262651000883210160611099811535057888977779666624134075496553315814937652311329461393815838969584217615037047267335834343084885586572302010471917153112242504267394195003489702845070316817263285868018074785481083763233348843583472098147827012345739540130400553313339022461689911606545041246665602534555231382816944126393157658537940129450224102021589490893011126257162590509088285412152952815368245449787313239537209431296814471775161524434366960486352355385090941998519875273662399549633382241991544492799302066160329270582632642592817457018626423860258395862734948686760052286497800154656765849798824239974929878134638843524839935075696048159806795615718457666606510657634237593534955218059498373897029158134922271166355520786904268531397371320362807826694107866496863460691984761158480517713850533904721456986506735360504561463413150846051814132360223529494303065035796427359644249836263567584250309159561814782592932996494300613687828058505824107422899751041750257238136488609803202075243117841721004363933568861839926600668609822170766345353837025527791042083689079408802003051839847521600609587448347486167512361857837377629203129684096752412532592636065395151654080573116615427367786558178621327423316161922739489992656540696823321417097851358963001112477689302226596848770400663591502555562174570847266147945656364404171764552768099258911297055230564577590810744074860345054846477517671937995120645404703304475675038264093336140584893149726405192792740715090239693026694189758479137302987704373121042607725933602452241735153372618985436791307464753959273779309530040586144123710339856974378968100970845973505647405081670451696825630383362870386368487459552170968862436403405514858939174413484731839936119497546304983418223000354942420985513462546387189976482829271520210055545073079160161839851584448525879300733402044708799985203110376037156092814777123109438602945756656953781681172576007776268388214543647239502847290332951969771415853096069071167034640348554188583921269358593167162870517619627246696711229037253888680912859205228531627363924921320805004214505019436733186086194785648915473627876720488984762974821509422881420846107967450153998608953394810082766653437526755210475514864336207073826494194013754051313085641828625888907733046926078782707417109671767097861144344676792788616105979852695201412853851121510241862129215816249270127348318101966817703700745936601584074193494239228490467559491544291565878519572288857109795552693760306652163349473303469617775440669593891781176587020341192001703260354759187820445579104198452685420738169063395102330186395972144455802094820470228641970198292790388606287864090197114955649704643653627295142590832506324266473679715869115867592585250759285145216632988965276293444251412646543088076398231482252500110929438223868429577375772746674423292375291381400683887400188281536606660983701805801694549691172536433100564040789691291981481922732061707156376755930420990653215100728588714617001121033873483587687489350333088981299985208899255358082799595456595138713671570838110874162685013795584693655409029883133978642663676695161545067118451161111593008172771266473407590175008872375335938580134719456627118358538255705797223383642685739379830233642425843247067092204354827987407333377973627666999639297783190511944707701604658517113787633458424822402370168655191692038159564333180841439014641956722479729045438891026045580498902647882254925727186473563413256960223564781993343234288083936181350199869944659056494798743615239644526370956740643065837988733471347190925889143711791681363985018065655424015811144826194366917061020638232827669207969235947064826795067070088865441131758075992280236413589959683343687101360265172611036537158914829589756979979502718058415656944004534337029593887154211117463550896223198294180648869836792152591262259015367223039838317974354285914937711082872630464196736558352499057350997773581723720399266402504683085531683521960770308606222612992404696835536708446244693591737993024549739392314597341962514376105989262408537914470754249308761851766317445322242616001100358879771687275244561303648840464695822521330110485669202019072411257398996914755545924795474350963796031446196966775897969321203841215217729408078311850650726614977075063057542849012580258235236639029233160663889117027577325855735111511129374756441997730669182906421784113545851949361921217182629850611011999666113362786984976228005358033080320813409929091950816324865792050690541829739146884198250848443842108271274472775597997374453022167448688718635239203480402633088413980708752421658407238055767622974138909899348023765419942110144443643893150186453599357909136434877084836498794839580201766314685678921711384626119281823457961264924887623353082188911020523626137687111454324272333393759543989502283146053171927114209185402821199783782575288040592297716751859526931433187367580765512234536552866582564871948157393832512689434344527627349804754207377796903913705635808143594014425558195175544550127432131112045582431566967353746107004046919530343141275486004841235469987369779131890404912852551625796230870036491579499405329675711947700314257349277909462990596213151634059042879568133848636478424951075251035910739607900392850387815521110441964450538281146819840201304283242802830753205394265656169058756809118309040848677734404240183705683131730943933704622133410146365685500635898212695226045999588734174292990541533657631426291242723991107844574371507673996963958922442772813423516598202190104580796157489201648255311405174799720480253448603478587206886820666140795570064622736102895680073990230401923713703934812752478975395157767991033675440299368671234065045684945436211944892637029373442696514084587724286190522985089416091754080271223746366969657773474078037573759100445317840758095860782319354904340383557879626280302221536612044365400072157185492745397434707473361931106889528589683577360737655990199193139798665188514680194092276271172870827873131615947240173465333695853397383451815290016476103582465331324201136131915881894115118793237386302398337776169966229323466447143562899722561280059888695986047420055259390071632445457782625027589147581403768174121996115013860490683117144586129736403603653056486739136920768668086862811127968646079242967808062359280172647046263013611934997000732038303229291565887589519841517201001682247381121437218916847405391567643455042089746241817425758758753136445957764609970199683788835853919232303942382242920022005289704503567924582036334239456714423404641539550012540784646185065912055689944522334893105494132005093130186815239088617280977379890931936614089503239347770950385870900443214901703738502727199650291976725927921141631607077854003231802453819368229046890451592292666570340710648312746765542607878791582137773650957129625687587793171975706086984960058698353130257141585068221221196832007334123434996680207834009315816562811963012798803617434976681933945445434762747329692805948060066590826230652781086446702298157138018628926949793220402656604741455152441074493115283725738705707686374489004884443846614889616549530939576723346895505229870601827135023310585880064917614440431535701855306369683299839892614391113250117633340092735285475552959431616220791842269270519606662967807298031926375381347584322602093983021276089008849677909708699302430575789450767193856050314827145781750229405494375902654957024844710938241462455971023094498232108685813285268892920331464944062350829999393139067707512765676277710864711176369492203917128925853867157908722654946178902948982966243851429267551266435988759509251296016974171632094200220167524260029635975349048850306477637617483293849090352140105693608286559676994128342335745622709335953866299726715688353158110318620972535845104881105581129297229675911697289252505913912957187104118929124158951360877006687618016792049887540921152313038448321903304593065332007692589692660257635122088153837163017201650952072883278879801634377992083053033822424278092342635734880091844184692990900523702150230097663596156376623822969989240018697265207507193062413400989140937147003419057540047547419683423315887555042758226192798152051945554093503726215474013179214126704773040099701583461466333349901159956827152056347595477049913134821621196257837020131544903975880077943873411668958074992476409752452479084847184028179473214589443403036428736400950346302429540175466732401961187829805197489919306410809353905981358153370705448260490998860526644327345482695542767868358529965176415555942403936763112029757776927380819835803257791293210551001918009268255703765737537837650062517822857057251565851079472864090192908007560090278913434455713017190080823853573085849074228018430342812874606440418464312602168880023260606303090388639898788630238381158497027190511212091285337246872195523121076821368978093437884908395144406801150129213660735425439248194669895290844481771369783899700349630768638367516835947979500184425824907257553722208002634297788931950083752015900113381319120421977448935494456716468715462781844786862830513037426697145668564194629606666856792501343116977309104351484371939474711541284953778527768073043781416447181351551197737692856992125164161712743347308103376470397615760867109615288796671091846090380667056423219728840192926898316787204469140922545660284261285146932834096982954825069314814964821199834579830769613398950755533924379401601033493604106617021765683420576948239702477926961387817651495437752641906885835305157211581920125585107706864491017180972853637413449725947411965480126278644595507597690775813689219218252361243050768591685800242554513576066409046645231747021880022296446040499386221163987787018305420247124512395314023702645959047610805940030145791804185895846345228124186884012613301579160006262509769103510105739201546158394904479234900260920499424762914415401465508443455040333441744493381482991338325784236861816191138581859208576129671544504194858596813050632912350437488161353694330582133657076377241663967586204923044382363260402519631123193950836288702715434322097154406007165140487380156146403123364924522503213972727593977105351187414059009522446566413759597041023796110977611227280097638380450065053895812146696180219769813941298517762852633571368196094418455004612559752908774257002195354502993664974794606122716608487659322444726457021140935901255955604126289027078259024596341598126510535757074052779254052525565755512431557836033574547021835005225279789667438207139289462092236121991506200179252414116236005702246303914054377578009612104791572455890298874802658939052786929903375324461498900832649009296531653549090574237218775501417072164424093370408312982347005272481505176118269432127018250526799819875701964089833619724417929638260787358186654279852550247032735848049177242675673452915472404146475882591454681143071352309342175107560988590710654771220245832094783109904683795765468873277414417742924239782151280987690026849551757360301502708605941731828531319691212646835528943519377819873120391395975978968274328557642239991605935003332050869360408377527039148358600434251930076197440357443795751882659326787861620762175964638310616078031303273135390210653623226141946254164868927635411737361079688783958785809357196232435751656101241886916734013788378954644197467633759333733259889323059813906543236882207931579053527414732490153836906877410180099773018645253282982340100418226539367265672655864186755277232875687835504637661119538283893835076603191964984584552172525838795417424734613270742600673476940251433212303246390939528582012593509840558435836806254117719210005513195491166098914028598345257822414606172935248015167601807932301203866133879269760505821912219599556599354632382025665156902589667057832871141779599742965249156014185841869114623223399508180538501787871235332264753515252609359024076381571759642871807588264330959560316775441568572126628041234393964509404568686690891620126341231223292892659886654532932939893615732613356134451202949577834692434511759783539476120237560305262222323881252288754682693027372616642404714430317940550498295196774026721920427466082934228896550317505956105678360694097150904945901139449888270943566302176286094439331941271131918596771517770127377408915004164922971505105881595283744731201219044571852811421767719052705784762876608049593349830023409331270158272280234519932578079319954752723013120580633805957939594740904636027909836691972976364200902511487300263605535072735885709258399317249465863635345223718638381999835609038244562079858718993738503384900223998941834130016804620298627546322397557387270025091487983803334416646167574353790807256043554178663937012010017971255333839142435990415153198550910906341509659739320980230337585678132382919382038544349934655706533288434305136804487290249826601771742412549832829405442573346024799421745334000660657472034695981388879514571011303581726558758667921507301762989407507374267917275149187980694002968452706871886433564611961418976906630029653127331384710097851547379537908211104887864398605393094468107696583365636912985806275479711375536676000248447889476229308129344030868962386281639666904671715609784836051684007403903506223537515193620985977186895698551963126385077182826362618674138976855370853074982656004765135383460225078271519525521375465018612136828296508299844321820277606761562579810658719625100295131455820800854650668862029321446131875320666166961395487155897222888925315615809080736204773170423647069068037884020821637590633076072438603864201332472900818263811041811942118126825736380941597399249428706791794375459045811872189351330792549518624389356551131078345334278749209789092224476863413843575770128994092526147475058190370937679922538868103491685013462311305247282057299536945972769333880208607885135698572138039978175356606603584988073324088519304119941591647187500420020827908962881962283186512128582156174323172373671098900429515473959276456354061487785516578528013109562218824641270801496036632805788151865227340391149730312467290545049059107781240545245012275639296992526401966471956429140574950373052733470179749917794244081821928704840947883415233017884640741119257714480504066801344745346009328323376927250616770619146116745808464425778977844653283289299159723884875890916392678499539452575841025003100658273321019611776958854463324867092130212887946942001572335373537812654031884642360569304054182056267061165936590657418903897437109762149618201730971395876143874586797528132284326245614115605379899425087489886331180422653670335731011691394622647565557030417758875965305461856725734621865623880723069563109597748982740253091482154848990190156063997944388469857451679685524375763512846238937788552497063421360880619493648686734122824753395757113145969226699988367978236142027882498576881166640010049235209189733562290183018132440461529009682054839464992954568747360883174719574362977963101768301333852007996384453816397745653278874247317658290470518292237800209959506421494776994589720961923481578797593398092901743643809728006124340090072124906667892513126833031776958237901241634624948283305410339544834714337678637443403632881130466038040311597513433871272245233723637194131028591588756102266163995333306495555971857927671747988255944551822877875750325938797269440911762249071540821377574294866911404122340890455022238145604888430851895282150154894035613150797384977892461563553210361887426325051380079718485427637689688671891113206902352010514333041728431930770267128374296789606585109422137299645496466364041987366978089313747808479051676695023404451150520875900722242487388423597710200746205968040390950373702324183232883131542131514046593443556353343092867386800241854772963780130120662558190539349361815812573104280395642488608968874709112479653692880809565589056534633629400902923987320699824603259913028685776616310896002089454948172406908600883408076559345893420206731807194576977436317765055356311960671700934498504813643519796161356757834936218708001747354642353446656209650070389623652719020173150783916124856047483065163237551874482145968869515662836209959506974703609304513715886977743277435255778284158928968009660539832387668916245485153694005032262150609141926088051874857123053473133887978299495246169447777239885859888937393070142437234680135741392258781136217192803254737936987326006741297030285568448920417003325619421546840022251197936455120555378945786151208491328480681250650751569856190919710748414744577984302877960702932429125290423503901714876357500837738120286859943066150074856594120107818076064215481943588374326651045357152403019199261147941645891319462213236670709312246862365864482554329591212234039966873912913859452324067055029161022647916170169676893176762722079525073930067531117310795386293233815067975587125882800550179013834700542192541083922358552940467653130048638660546450292052255423563698093035556764522138067822872129939000044709672112595261988218623233152025719810694903138386033717929822901906370944128077247923238335587906889697929973913822693353102836169385131030635131628990035373236205490131222198765368868768631502086937733867128410544039057966286888480128597682248418388804664815380472156807838132196914790064806063582567445923319813830443634674953329289367622104130874335409018468139085074563112879179222927823463692641082727393363991174002595616221050436433867972041164435629519265808557952730624691885016871897092582954019536173355793395499897019596784248741554485601961658033384961058046673828416778357103808894173164666844815478953935839184728023729399705198091182049543973507551236123173635069980793437057926774471889728422285868567340210428470162718601122742240304820383120778763189900049716126080652894676667916128718016620418102362206411853354581063732005995105326505838262297151645087068827232526530274127909959241823993688675374328661083780393050119116919492969722289261830139043575272879315270991877842733058309446601211735123347343096633453722962886507075798375158743273352968443484952941019446176994823421825000346586017721317159088790616082960556394113786796528554100457401379541146354390604671166488475475091584925079080856326851895476449617313399018907260751942323704265864771103939177268932002380029386074308283144831422283086872961290676370238420229782649047292689329030026854736909199241493280854252387409105710385598032175392363947913574926312730996686006875450222354228149693835929462646996645379226991677945487352626010129297786302233408356946825605995302839274515700981582029626564763540378353290968936116464571062744598416822912500185262460671720668517310956063253010878508170169013793917914936847295020987596379611967071513746827139325725112687632209276326278728781575153287785577995102400286595559816932468768299706130834921147388553724997779898503184554557634293417870664230017259912296675096367747588660496788023499721479438388469316109874847934746955319568970697666371213860866053140499288628434072124676786807681273350719618796003395604585078436858426418726226663140182537370869425501895392019376424202249634332742803114723155274565080793328789730187948993527243675178831681824145294427179328758842524669608892454711875869564943190288713813448333210955448202798017696826733947523712266394464793313253469476522368808774570286931511095980688287613425935606300964313401745547040484331200611392900608924987539763114753301171502213374697664771088947060002765463941663727473640355240142810634197834087969019414082877187001251391248627135023354989358629815038620482699526719006285271864774277058090151680947363595773268584202045410531688981211614854898397823229292200713523098222996606346504190948370056987448461802451408877247348819049389217924197341770780133800444233163842578008719486577612146836216857927278307662600276874801117119283914414828659879927424129989094800960860132242416236655574972607445746368442639103125805593289035670120703016347000299437068570729011204546094833411495903818385868248190546219190064173029791350648538767030771287791490141660779419607330545771078573425218453175315995805859684015179637490494151620005615581558253776788528599563217568099543127405953683987798848311829581221126695951046776694079437433625045748489929454017610486430506885276433978882611575437418555822419585969356443395894964235476654717209874997931602667140057988524164650444488278737175511043815595056229682401239648849002555706825524156895352702292871146482049444092462525510751414652627021897166061537457215530681562196575491823705971606348598745002369253770857620447209182980839119768754794820321544587960997471675268366582494416695982185687560995836209830490368026506219481638769048420690513824680160772002415729362742765979837511997710546641266213086514403025591036018216132539320289305290115663240645684644687699769202360649998084815723599615402081254576663386819737968355046551317208075920417364968219589550064200096959589124263032002738438528826168922371886011079296036052370630212407480568421263238922743473756438163393760403284912608425642716066986894697790340790111061706693342029437708604439292202965788325118558436719272306643146029528345354539500298652006398020355017119827229951120471118496152433523820103357003455475394612612823782213537131850004915453597333358472526677514333193379701798152809516427348040830715665615871845269012544971049423038256487133372285253693526072606161301062578004457403071393368821340426129236523211199132813805203974675568794242798502326409947759980719172446626763061704823842694109519429623930958997168136460658698984635866236466306274854396727081551995900539343465538070742562461832797564901771811307431696850199146983216231199264389240790927685244547470721704967879988989117844049764625829875039462860095467871798379588998038819985641507141825613163624137227126266817826576177254562863341426749522909221013854749831683560329058736157987807222999824146905559126603675234000401792699299799206752866226866405138472937054033967305346935439301419944185353365603598019944260536836786292310679307442749638007472217966370602676746066446530590902772765473339695088335923416166415163465643571981544276843143721865243901953179902521431795168882545640642562611781304995051118256705495783296828072726743219875369018849832446373687181307174378226433453585999709556967040275849659271995210171441107213864331907543527782874836167089648078127482246072694428640663899343457229401125230872290688657142190512690906757568899404368791146921233902266062702304933869891311331620157971992479942733176585936290446748664801849370650219385386629289180143864298863382985896287406789884741293962933286308424217067970222691284579297260714443703563578689219812701698267059670056698400243401197444642522202927578179140344857113753060684131693256188493097214491098630784417180525188670972097451817756593852424565826931259944604436634012108379898760716432073764307273240682833508581243366923219813433984756423947996795915304524973386337394265927188676351015690786559133968933926532874199664329637435146755616550074873363299641775143594825157679552701418380552816423385269179819620592886377691081508815028257122838536674369892071008076518245098653813944825548916962656787270504984920902039170277831660671814298322428583842912434097184355043363799762602820231103843176404240245091053162333172819886903378028422851725451835266979001383046496129588525667265380343168212888624607408464994230103700375481354122080801948183630599791537133038510234543690673302194901641286905004562148390230672435204244755981552828598960122557976402869399505119337927765731604586206050881773944373470440134500386580285303474161243171996210153131833017352661337982367894168212798086692599395285104594726810864363656272754057588734943228462154805448998398985981290764552780375219902622891153082779507573518393293581699824831222639256400848201671751687629270859964606330414534673855000627639143180849993403806120473617103839958664727037092157761264878708406814889835372474896845604051146314528808240640496913463716071196589094078995682204675013607817494081217635487471852531830663862264664778721358176480852815932420882493787719071077539457142660874138420281913520163243219075667402331826358270690608014753435757260027329401672237711705591828661845817452775050547564981063917295682474678007194642153406821813055028088226267294733340435623846268889654403593026548230961402449053850316893130916066558378012680545264762082130261647656230446282793640943565493187314174313503076032889485553054628640602621162407379650537117514521148409205937726767469774567447880697760162154077417266529693176329237301905080988308471362740002301306719794552329272911670535510325101426939210502641867836729788153638060325026188191729176459671171325227109392183253965279491946188326889352121401837193588708157550420216090437789141918503661632210251096367337725703993686199923315120136821855163032938943393545217692826146087090845962529218144702449353231912731513926681924861831498440719139610308260100612480240967751019977242750289047783767916907053442385731005060306606096166947370597855845772597932791450369615339196468077418736155795889507092767896647840541295454167411041178886186350085368472141018810858846291139371526753920587232986320468066227520173839341675713003762037408002248694386293549755749196461724280976599820545368712980135173763116484525143730705596151860946525661009158324982477663005025893794719391640158799682642439419540720014671879648667868878288195560832621000644642243069628677851077259831668848160151582139449702823849845701250031950258035875736984507697108648786091882432797861936501962588015915309285816034023828226906417780777383101232946131735258063389316258350751095747420389675289014716931167906325732420518076892854701658719055201781336225841727424474531947322410691400390443975315835545452244089900559779042036738772055485086661919198530749890823944597416961517993898862934350581302654840864381197530183121338027162967083634069725591415846130570564147737042359123183213046615566243689205997184540062885237329308943584829762820143351055187314147307983086515806814751530385757792165612453572719002390642201197123803321262029300569833231708662699836440673222562557826108039940622808320746678328555317466672736791285110676235704910285080124201501405630437517692886167315900592278607275248021239499154537019998061250981053967663130981430146651132765499272533069737869807713686737713609524457728001560797417173160968747685523416312268574811504639774328167021245396539408871519400033750815491991959078703623213246104652869415323137062159604731232972574242865902491517175446915611938351417867250762493009605117131524121727145475108903186600207602208116926925963347953911816902413600195258880928520605369906813959096019012017010653156973791665103263884489905218460506474369567364564938989687455018110727352231207641342109966473079541698849839651136191237546209643241609628588434194691494423350157704362563125808791926172222944862766171046043297594717708023090252257942913609487509203546440019547512962450065223027556868275518717731466352445583379423295051205483021224587965378858853848567814177998373243841494959972772167442921226263080493775928991853659448869939414373788725025510449848550686420821337370890050875189483186003791535901076960724756505773430299763422455476239966797316395471717142401714544634005649582930843145935208444054787070961916518039739919973011328112496629637821111140927314838340509685010441543055082093518476065445209704049935127014585902408686858630818715226475978894019908755397363238361219583106283333431252728593189141355090938353615290259510691226630713690644115269199894132044699893379337414974291900548785884445639502101713697835439880192400737911495004168394102773611649254896435485902066434017128317693734145334266341411484721641203503379618889062691135895911404430630105959482303523301914199464147960317102961164824564007436647814131449497569170730661560357025413396398832538164582990090001594164280493835971511523076512688377244906448960889388649867134568213271995902230644258780685624536899568736713434726071592443513485415217261721364675842897050203105508742866248593570167276147761595213727370342841561005083635156077953157132784540880501084528215589179844539381226766381502683230189484823267741002313020899485718266745877219096703887640200468635536441921304675664663632290664916230600471019894595361348902614559892029198711912030414269893204679278419232739724682865434156766146864608855618714008633647551615175446330258732052339856356808920370025831916134272243698807023587332937396862299848141911011866091018179615524732563132190412619820414685649044970730172309664186809403520900769884908142255884627205408865989256400899877660909188998371321243937845551287138988819266726614039977685556285603775726606376489048836473885292924377918059212470759936103864728760704912713231044422299066131165028764827999113472644300814059578808204510291958677534993706689219707795142648589046153177221175552680742363577603615304368903818777525541118486929159536368164255579691059618431969612581671295924262856992196279413730501231780669231832800066786327308252743643712295715428146990234780375278075466975673453201551039468780986722706053939262715144402032623203723358883282467033785014079200419336364400499763638443242030477180296279301937537373987643573896241589822492804973815022589861967445438400353701640536340507337635081792120652996060669164412870349655251795075650596107552288490201221096042662130246425781173344058458135005999806585326401507652208932669169067080406827466138517799341923741812629168895325058758748504450688616186372218496033217629887529160083726102792138708506710820541777207976531126430574207986799151693384979349567496224569940525143379493351724717436411839094935501329227336325494445311120261297193467526437662632001569806656337141236152968809990088190545568459344677810537127562958479122889023875335190993154757086186746504454704980852331261004341451547515112728699308903633309312170752291998669496856461227751416656729584519129512128863664125480239320419574376258752340444644244933516857341568809016472805912233584643192579006394535461201294440889847675255756117770760990937116772160745058957623066171867237689136807073804635733539446700164565495588000244508786649547765601272720612859317678130808548834725718841142421885436518154778266658511228990842870344815573262757558101978885085741885766087402893797803885785188681271367799721699659451065846083198779947998828059049915744289173429053019665994652429190199900163323887980200441507413943444418670518196992957205012432911800653796225298640639019098086215273025391177561638409310153801849307152600384234568076151152152427314387869366943185219897548973787573649158683404146532645537313961035386872216445487277804804823587134740141951685757002712015869831097882180386370730862201381329519500292603891947982497377308802241743582998478239783604518226647912000511089960493491118536915845150885206386829600118470642642961141411889951457775261932453159412238507015996425553383252420265867201254493907992436802971839731333871310588616324863704580315763075661870006754512315901645628621231529029337682984757461758989216984932698129108168924835801081340893720557543329870560204136004057711772178716601810513508093522023491737080995580394385018318058161900033227840752381418066177341364070578378789632800168809813581055340111006089129650102267705589661759910756345304288738131936972499166937328721301025558759477439861495336305347882849183439220713203861728771492667983285024621102646195583221935501467989114470624864466380676433489874949003577314258698577076646818123503292738927628212913496274205888201382475493740386954254123836792480131122882878758156995858480076466758341192134670827784965025085866984156365586102099395512076243712288925986448069840992920974013242279499835395776082581724245691049737074414090027271350793646078017779822538739953153661477927967419229500242432394515534657276014486324768844738495697324107759067164454382515256866329572135542717583002283238841721549048101151448723028659418372237586126123654689898064393395238138750106863673701365717498798878975245885473713576677017356086382046419887688668020368181247338654416947956254504910912663796631924240701764882373289657263715787063070953578070184982033745996774254415781916575040791804946799821532083073695986182603402325582818014493028365471377612159018898052789594146824648546726662824587121020104210804835834149469986360343892325355097081413770278370436221762901784694427361553213082879806400399062902813223820891023854335643806544051483855238970702080694038310852073738499986844204383742007031465561516047331099627340100924047037465200176574633783987551975744465462600052674414905034288645549868708343781575208384506252826346210448530195270331469889065696156941494870053027274414073669242477554824346408490065640669390889596812554518955340285793396369363139948559978485002836948272851496889650809484768053066690700628242164368026639455200414714764538848510184173887110376821445190246053061328303153094807194108045646779946567951549115892815762376030095426440768721259000993462805719188896868845316486379134233261521010375658573218658239551584628299569863826521930046465271292675824833753704163425032059913474487135073076235409719426310822013351141928222342654420249900052699853001383544911437932741628064624855547400920472630863216726640910341730264163663890693598235792727834164329220703347278721342306433638060699044827739777057773366213804309566082875387737048454468364121226803654617363562566658808017270610684189113756841724375407474359824781840862196058575644182039844106821892455328498980496462698401456199848622904820602782957325070724491624610254335337370835928838844488841633373811308387592029730775258191270226738041366742490740834296938723037625574642695722351893180564735404515385491211885444456785045214775709624986448872334330044109090438975218973220086706291390676292744802325120118796978444264955477756437775990335094316731899662487625038756362873263837448820668687573611508526363572073557630797382058043897842718377112385090246837021828580377400593077649232937619390466223630221942645494098573172283338391612198658533849336991670168207014153231482856931631326440761199149845020836808756896188524119484801018674341844126079285451906417123023032527530390614488281214564622420304280513338701356780424583245235627987610829736874428475624578712093084921106389747913965354460488607557425438065096791795319458205374853213996904971638849699263416279971794495586609158306219931391031716996381046065618557488141956591888717208854872441910918191425187828350340983460565737767348521500974667324313107550753295322093483944885401259041063984579700369898378651499636253112880482063662946384915951472176466219651452675368375347334888792087589997774847446633498276327219911699164816119811293781486780410682128505956035305952231703347637743135995531308438244688938440529290156417915209796757363110949825090628379103584826583297139435160010807015117541669723208537418927421494048847966507052036415117109355464865665191419594578348646323529090848501746035310925903064564385027940029245772641834352322518786104457732804523295170156003893799055756083224979604056048219681367217580986452254771664718974404843441345738720224345469883017896781665706451102850944348888103773655808391692960987806423138418486961931602147982072737834456154730082392775884367129293044224746362925255285965600659112897636131181987959477942150979617155022227105688188920286407869117986745012748037043246133546266225918160825395968246850092763354280219813973464807972178402462803185782740900274101865306921957940982414456035292878155124697426951999391017007477372394918492445326362696516621922240874956803535904065908007644730752383868199258625068551311939928857340578001418862214276703353704455572575602787399183643368418802402154082801011415070980104363745113861717966100385800751484017864882191215721580914069821212115380411581701205849415766349299664033043522494774049645609436988625126029733421724381664877876342889627511187608180430089511085159759832143414610955938142399439600997002756960703952841124781493752703482589307321707341584175017024115586095083463660347193951712454040426023705092425949039747630864471577292612328364550898866436893168908510659637823801823002903566204796170650691728187303319742856485129831538405143864853977618557852399340953851602225199773941233502382363223655712866292931938282043733525445542309594406182808495479342813457353104909550369259200215511884774102227384995341507918734755753855132976581643781643675162564716671132305088643401347161653022580215622387924094653743087274608640365402175502612630896672547558276106082442455023497281988532387318874019445425898660922971112495449679637465712050798435447281375443684934360959813671299918382852838132366593576096517750438312513998940329973224781298037265379257334472675821523497290453126279850312490534499603833746740914729070570046122918014941277967509747730387119530247942485159600597652041008839479801035688797602655065325674412320790111884654689172305809195381032735511610374177478799951288158129250466480401705481486958464976885746368726566642716975869379050026243230245124675853788253420300359480079448683066771108538944735078113326085355089171814223198304332158712411110357879662807859579808460033060503501729390265037762233112728844856416860581513280489823769429459894529295216902675124848608523858167832754093064570501762684129486602001941063034183872485721163188788791648577728824056793203249963207971754965248085367217916059719033827382116451311364879660425412482948122956169193330571550764795629240836624627610617494256850714119019333906576918247288369485966205959018958811140058021194219014235219077153043171706965348155413469280716530681614972642426982041822947457213126703571394690452647772147408801722424042047592707577961787339732595253461848461941593587946990162154021368598180132407083589200328862204155272023126870647258000655742771852641306660952248314689674638134560433180836721222693422703710220175952009894048590710066110863546219659935425859404421365007461571051178859233206019125304147620766700959964004654661821825190812188056496676350531413784562667147533776913276431259436947813146414631170385874623024932672822092029403956626131612327882530446378199461391179422670134179335742622220031407409064551459021171589747728623417476424279127305445182028607544870275382624155643091628708860998847545003944791777976670299549870906382849481714912231331185933060520409801166757649782725457122239853304067333111034387228749266125925596155510936982175109543909278002681092577115330024020592430020805513733273252863516232409662726349528642036610314222551802292201796153504190928548368259939469729190650166391718935913014678237292440450861561896899526643215438823977417658516992207548040034644208542407579916172986548412292838854315820333316395059347780271163576681766189322498212060343281775563198366710902792694393581126903268565680418815729736192885520567837041663212993882339056838611469968828008474704025798462039006461749968094457658036343806423897635257521752366045395260920370393951312682616995119826976745179830548289691352462471785830773638647858241582790847492107684615707692926172892083855924747599989272573403223645495440235249013341429855696761708336266540710385862812466549152028696786388209803597345611681076464777766300430880633530526116822595866689552594438665374851584134585609272978307055234118282414043011491885394362795099335011494944982341280891841000555193919692756087185920714189305636640505365405584370430095011309397675718205296672495923321405555789142382180337003068989912615006637906301154975429937515104596698256707357357462793310983924815201511562670081016861621503935487787954176326015439457113463428878203272640549289511946346442782836136940297066452746447256192846579682236507075039366925999449888466509277327215480485619865337602956553614186567534829158446262747662549354407904956002360855986245136465103387748967067062515235496284232622840923108859200236697170224695013356925197457377292625720505408599993533703833037408039741110791649938938797882517826064418805874446143112845235885497600987787935041840972490323368428997050578234127485506332223952209196948862261388604703080853426227798230565712285269514111668051224425092203251828623120298142263103778711039926368781633117061756432491067528527156103086526995188216442343839735583354850827917448487221353098396530881366869582985718290280015275861564517015871478001319279680572733133286629153072033397684003499980952943239179552353730748083334361574397142067003946823664913157102389865130810499224484571773441436979565998177975743540053276885767670317082517362933481429306257766599949531179641644163023480395730427623924280672536746132599813293885732999536654120686115840339378563156599892748517288378253249850982048382882508251312800752158947000343383074824690595933578003920073240829199881829705313011172097490823879019434169717091490992573104529143402173191599993452164328706302023060392325929436690145297810092096729124631079457614707772033372587195316150782185520460143133202252819745605214191237385716038232725345838628528113020370541960592240931354411433436203796264667809313672296301743022040196224926078313738417801399579048227363863511777890099761334253943072640060219674424106271437196598757133442466710238980447961168593112201888095850731009632291783016326918548087821276618828381509726830382307726660131112549384167072176656223067305087688459647992681887661974610178084521752073284684056363874235241519413605276647393238579657537112054740324205924750661031106042280701400166896720757352395264187007313719342663202184329568540169496208502957989705599378808895795530805346052368845328230605669199156323005734160794660993923934725599436876013458206053304937129089784504808210674273544975973478019115383041395135246229909676181364366850458854051795603846078974888188802582757177158034211251707746635939472757345179419802851555960672770166859542936920771512588377249726858463472345824577985683449862071589314066366477708226284209462423789098758856165852877193140400371340020912533339860087638206132818753901242656351836311815503630638454200659353119047866083731412831245344040758434574404742968371700286376251971414020051260569331076730779946005739252609221047105136697729622184581930240908034726338388653193570371789275034170686558831998613112214750195597602904808067753696828532019473817435752989741758984516773774499729196566120978043364152770402882622852833071802215672374086167496602921717020095703835158134957268951765685386690621685689012104411717543171196378632150217437483392032938860681306531606921860289100951266608006301326825352194415844615636078048502869259296477614109381689494337849923531159245583839791763218971902673782461132589681254928567836790906700641172083053399645611587603789439776890101993466146886648104514368654742379423859506117574151581652680839476914382106787080722834228937503123743962274077951261182280584908076746491902925161901799051315324992641709909517433661760058672446231999683646211004540532262945467661952714161336391708586119473212910159049807318638981790847383312426254703386797100550963192249481756631680569921157181429385831462342735699284624116057016046990721878564488921025875857413169129747692542733246926173994363071756405487042588946819388758030100096627121677166757408548541464664992373150083812202605853888220018959501363855476461988979503699537067744861412749159102945849311326808989842682054551257850583356562908203240632508440706127080767635562380141360264197382682823975466126599982654473259978025248717302940462990840416393237974686424536092315900114583732455643014455770513610218998992899997553905209252249123806389669929213402756448216325331055588429938309263685363039489101995680195219208884786864486890621190552666002055103251941539751797139767992735354152265533534878398263491329139896902911622427475441097560569502013189236615767543808144574651524260038882543380880032504811440172069720413945701749187051917299640340511220386611893110031710032424743021796944805536819146951129938872530367620373816629394834088694022724125733194868265039506803800976678291789600758648510262918892381980878830246406658221662459342147068590618307865631670485007341595495402291810331998219241935178122661483320475539821642797310744502866926986740529731708032915007226713827207675794344787665505773534425107020397564091228408487493892257788331987529309826168709082326449184170635293693166781865668168268644860701186642064024266064779375669860066862931627008984401034306890512325263787202364759929712122884757039919037231145020408944183717163599526710130396663998922519260303545217587259876839608899869547039103338708462315478150524750377901376731348833401880485206273034580574388346799047539793374445330756775853650983145182255200074665419861279868801283515232617556119376771233998258818180935463726380550239150450532402651193125015914930904784267269061091400203882316208440925027875193941944292225078060532952126866207782909931447149320269403228640382634466803500936358360564115822919094147550292715889518072768953222026759667475232755177183972607728893795045206753503527288632246307686376930325862709092894791657580705716887750052304683068273758854007440022958373183690837904413839715055810364093732918257824296593510572087783095797203294467664214260145689364455641861484764601300922522429787311608182001100805492965468747303697058930211926743764170236077849794332012205393568334790728322587106738296886999926110092420982595549455974754119834223057127823910799421078181680134102270257420776182334917029625053095957474386542767691968617175857624895201810339752201253095122620410464962010300079521505394432828547975041516533789297190093648139474679488451238783033179805068928911284222874155775297312528481000230572382752730370646218827444606710629585156529839958593538763584864617555123909009674912844620193249366082162786650243571973775305015785192794137112566368802767153490381969760060700725512428485428762277570804691502993381100167451204579052587150355435304115701251074243297104784996873402113300549445690898808099329649973595690554633460572938162276077952740701384079073594522240624849613605570739233604518691949771136582924454935151145805701511260996226506764520929284617743893930075403797857144431834063678059635719612492930558748388371942292894231991944564060606169248227226926400031867042391264196865795651831627788610949151683875083171715694551776701405439903379802233684600337078620460565808052034669351987297681901069617130442588555701386408248267572666857759847250547931342010452975858221997952428797476828728648315882676181232419705637622264225323829520347990867573585850004618840319318220251581138346778498857004543205059882420672915595766317656234147281839453649201040193352803085276252328702937126876294595019244826452488128280571660532205283611292503036824438109634375025404194811175518241276859684428490245864142679071113189340475720450182014226049565355342726664260177860781949684131567212573676522081239524959424225134938634069166057063783883050591989013314221201019916207333447359419737043970812666913838016937841932680696915896847765259846276846709569627804984512312316966746876998921844766357442209283929372736714951245778628845180472095629902167034567505410932706052998552375603359915180101175204812963427158414751910202063992709554548848275580319892454034264632515709292054449566725238520415798253000631567552162671285915325012449838269504684513901789306402061443786024211215251783417759998268308093058728633830167375906691002389248569272183007029014944382370408372777860027433524575126917166775078693080709984947246733189484194963520999162374297601389995835883440168030540789818309048207212088450559869470810494813909773401620524982048611864381876803212252876688585592894365030938783375708974800381648655918664074624501627449927168800937251714749457734225739426797265493194812876605318610311015471617786974506356733574558252281397909050632208270953376297308037993300797545134785449135368635786139126063793127320507422095504035391666174694254831865945129695894051086957351573643677092751862208433991146821419859922514277071731755536726177714865939388908168492008604339865293358416402498035208801413110854116470528419814004916035929521325384493294675779026476829610714624455468239834617259488989687481545878784800125661321686279102797128018390850903583268491370932126516513811411323101088247915386060861740153406328799657622106361806061152954645297192856180017325461025270040085126453310642567086712399032756609567173827740589260496752450739659082250461131892525506275377423414241028521180866043519632660923834440231401050337576449048081602442690969558506300483178741901927194490032931250294902836441123613857110610274337988583751076360324886847985321224560350033807394197354325617876061814249281274389483861421000797076186054377754124131481816690945493366042058771145255365647851760741064699253654963695703425906976321363067176937338728090663327724522590344489513601442120897870873157514680789080354125060524375770034018375342743219240172945744427928211305132930187215224688153057154326256240720280054418724443135312387812725039176257071083207638677649180087313405219541614531265098448263267625423290423667129448113302983567118088602272604656131291692595312343332122522068816845058308009874838841589516934659236248359455253600907058836628470059103969439668692642910748148478538458798140142066468491285588299648255226862608078140602584452145709454411867299230098903422137204368902753455767759379356778013270902464426851432054979136643790245669719310131698668293123568765023988138530227214618930179880084190099356075866255138667511697432144807660299990305686476600248451492197212189200565049618419325052147633699868560152612479615827929457253277362611247090519253907377702949358550918046317879401611358884510262927019192154380300643864283399701402658672627752495121385520701720569721830529972170227650744570432873795441713009070663157508616217816740518812633142903935657641180030798267666474698253810818438311141368130968676534099269168602259242808395609659974860056140171289667942029429798229142377890277107294796408191465913503606091627293722148063305595429474948266265988344191545299873304669309119221436039021281706996441592020350077642193716928743366762957824228677179978404118191757705090582409894276565052003566101884080597213350606857835318295875525177839837274721721331659520225596784753842173668370554097415835743539469764436480440130650930821372360837354840083850671731356602040620256209801549723112744804354213493205159560580498440746394413043578688362851310569987374902806042963967175166635225090963531624851886608914207109236802180790040270014319615068643869145112527476719349422446702092631687399325035122211303353647582497216791910258391519545552423649232401787554612832106800956898044229736100310521244368933198144562465445418403387283892483077612561557929037141333672484685257585998553712050250830499249729208078331670033907359501687149218026994514334195120026910319768470252942111435655780954141626648192330140851452316227393296561379851378967036594278990677269763986851688508011427493713938211829435838233908627398429189055433289831842096172950490037898133237730819481794203629604094953975706723329849178144344853070796723018037824532543634279843647117764086906099551821124843185935356862419501347341597003706633127866402355917311672546236580282674546858964303458121426746168032368759083793507436762804806070447193733376778273324505875383610945003437668026525207486608831436583580122190163650268301900076268029721738571791498853978142647635401177634229878730739422797276091969431484640004051562009660844046043067388357534932377375430291828718146712103602385734392569065941783950216209613701735036940056161571506736969737948995315018100787072764811794781967867634902956330704826176286582851581225819373736073381370819173238690337919952584218397462405380525718304401627196567807312022872457623878583158287859072326269359552279889244723106636506116844054680121772563186402298122802709155648811612053180539746888677027906419965594027453580351533584149962974464131587440101034919556756228812328113549569025773354502729882213352353135057063855359735582541126843877236529296991188953282238808847274714025385144587523412675657243346641580279920379208984968111999500562374522594115109748411860375628184502576477774138990497862740467431981596518803038826015832815484922819681269789786379596959171980345558419886478521065424108222750928825170049349684165196846203058440114388009480777099076303933459174428979946121221558932306879119990603649996218167651876449722138232131915189926903635040463026881129929525826393423735218475360036613041761301377918583621441349894055635868289014559757463928035895348899878865965577731102907046745836397348219833739303672910621547200266708607232687703233429345466128232902604449348280571466715956443797861420501829554475031058825398530575434601930666646121116350182532330688308301194003742981520394562157952215489607613892287330596565771643681916731601442452563479810563102857671805258183940331610704215743747465089087987864442765919336281817068612561655885231887789219950153525660032897812912848998105712974098646553136537375102718196014030602820948083848206333567616653938868281186625380983085045115480452496639207454061134596266655878593599402754573579698266308451144409750239462574789848925959348107722517506919668547381375912058496255094720345807439602225490467053721935624559976680175216943587733093835604271406089552563678634833109213904661850723615907562620102741232995772573946113440815855380072000625380436368757542027624804843314539977704627490665183628480720037015141614522828561493007228295588119633290728286450230501864621515790015768945413806027749984597755296420770925702144999091891161193381308120289764192512996528574126189784033525439079060342392524283878194425736928134998365273589764303105448966226290299231135683337817282028856970384493581686885793396430840425846404315542008696753039917068692316446924127864571866226670008402618714833218550534027305861744161131370979063610887092042679397934875255326691695172108253776933032577273882340686294411151202811198842024006039775792886599858987900845311378748208079803948116849199705505480386439638313493810555840268240240455953133817829867915501841252129002939128026342893213253292028891538222065773186866743671273545366545056464041850222663892043680239011703141824281754903625362805831046546447562414823162132363317678023829150314304219207355754746069897676756211324531966888460896166159300163185633313104438737875751953952701338850691987904759978128299839917960768938048667436000512685905223879051511253639854727634050683394864372882412060388903309247288308158158838004855443901220085395600394550263621701274743648119514747107507085470505691531096266702844978369416670706656338714995762687419135401949040332243814988205739880617597099066642455207884244138182886366055483539579814576598335352306118007638871947411761982974687715308891192454616004762182972654298650809147952790362451738041531741504176844053262672092245798969734723354407648912645309864179425120856987968261637947835637075244988364263350901447368105687888898814640415426595104201210167662516464694281476052211091741107425669374083817732883074878871368870681703737488831586021546381579314472469606410044681874798517936688042150956099127851417187554327615858769927878427747097079512727386673374473530525289276683922320998571941919414915128247959274055785649252917982041811557366117831548209835343391082975000869736609739381475780258022982398684984178127854829078514775401730651547389429935620214140075613240200694793921369271149043481312443520879576424553972636069050694502296137531930695306317204228925626947348034949999777959475349045026574993258936519247858282875958581359976908914344566243150737339899952898625559632061345407833472317678612391901084156750475430571899175747442154197395003114732284098014271815299552393975621951824604325528318037700534635802878831328570771063230193686282391366877882343320840522583259687048312755160552429875088116157991133170947867657891259129430248349752040267915255085192196491770664416539463802515373371350923083604991876619827329149631606916536596047023725302777179085354727422605220180476260924219104227165552097061306924318293271063966326288958444153489629303380609944947503202282861272931581221686300353071506407221300767068212687097410915530225675504575191734584289406362331347898706123124331925640326161460141108855994975600209735478945987338092547091924345234744589695690429614353460073330748568213550800234918069870222796473101978001187030732699653553856665430818504549414434267709841739494177823372135077987775494756688344468836824727751211434903426099299480543991049227571588461256081597735203723452306001373778718715907251177880367433985742308013324908522864057910792545268108122629599182502935198101734302762262149796933424340678158991856049529348313532090144877354529077420931614253570627151755794012491414088299210250546014711097351244241401923740055502795969617099614953771615602463126365113490396083376906635977607115248216325680695988770292081611536982652979496859604646052333264901953972445884782837662562250870213721567668717154912539066963036199687538165370513806261743423380693421626700711540044349464656116787742361417581327994252256322938482588115405521593604111094889491366157784451226854031594990684068407712126895273239357390547006142464393356026919349959953692388860801157617334344660685842909437852337983876616021478366637862105530281370992195401219657711076299070364881487366694567823694591963135761244258123870376663885885758981247712545750270001180686414807385702782502641466318168541645123925642466216821375103506163711016777471249766347299169097238159838248376238143353474009491149376317117623420975482661655323950617574579317602634089774198808925245891630041456697523089730212244757732430195726353452402884142833781051585566270725560774970661503195115683622295999782940686971259407767542384843832428665392517223662930687289369036877357845417994090118389719688328747312215846002611382929493682457886926840934187705455496293491360414822583714165201033055281133592204013200836994189853356895531361840209036814996532545088076516554176748435502909806529694431197451959416978597727586178702018427524432001790041634996656965624427523804071522184864682232577660375994760581588937206833526670491149291061315127162491832241487715519732974483813292298794435723340313020775379029662762434450459706895042470644518330850138470196748613488604931732416197365231406986635785377178615279495433410198559375174830272329179520320637967579942817460441759095546746470478984925600478381180633512259961181301822057299178150144435862983245588252607363734280949166534960405804522467241818462886428110624115347573555219941837823351384872343712132298890989406943739862041729294789468249721462502552385953175830800074354600253091705551674604971971829838542305413665028491021696588871159222379358909377558083888689366431183799774234675439333627362760274988875135825637501149029866364775048487183669820241832005047023859215127615639410139913309882513747653297946943530444499807993197801315194425447914162544996662432886870578148799985614689054049156932496257858414551038522442708018672261298170055171085156519278549301610867047617949492380380036966475179917484417881518100371957461908266659537056479538980514196488557856610910288929125491789578813793840057582880048644486818746399273715073170206418048956617258827658140072980182144568377765219294003360140034974137094984886973617808610521491892391993764389933788993193893076528729751066977050367730912085715065412299620683745891550155854696684128132352898841828188890325794306787374240774768613801855512659822641643335663553210360409829051834309931356171826870553725263743822122005912658736307463307927473846886197812660374762384738300527292564989805582379031524640540626143115821550597400114536162883870081634928980673979779791100931849898665262298078826347608112730364850050123907233649327223949108429274607100202872566883162756353491412739602049815954219705261790349308760392080967239225899694622927957615498434829174152520026454009157288415463951203947982281000448684523384609523590274569159856489409125810152101048381130837816526163618396329777354088597414035808298469889906307810095933418419130192533432663321834102089566856517285399506911990383322034617477010514623324500277537158036527230038638488891867516700006015569671987660704179837382886777499372891704233211027210884995364863703744959814202148285421640772014886510835374124307355039377615383432486131455108435508168707851778373546144008292401493558594389312760367352310825215509843983880151600793087835416260433766809749105138746457775258957232267043474114396612122092433860975094243467492287163935405395836327732466125178975662829961495940901326410113726834633874990157520538822289238364850292975456175131378183614373447646211462228352874161140365791656185849240670060969806242631190489310832050992523036318160661476393801109312228536512502256378294374663900203000580497078468777654831217875668468704417483594410716912348574026318096788695030186328180912575634757440016727137062968101327242421341612770989049018157068855542667168020781947069513440644246400126357864513383194921399118738787375213167824383094898732464101626087746297700199919192221591840610058511982113385598271392411774042966976598039169382216109122307185830994574545249336885177630448537516386302164012121527353709420988273839904379044570666926190144470436550221615399230422733853969610981724040260435516024151806245433404056307517360058758699813079757830794566269427215698497407054891468067453256626177881463860727228933153188857486033328228521375957132874457191445322214826604678877971625769660878700668884328147332645497117339775710675945753906160955908131749901813971405321935990795370414624800654247511952633801803147783484295781322656461714729616607217703840585077262952215961855630142374504766739091799561158536283518224490256551539787973515150046674229325796781021011155857631861439628212827508336986728960220231473392709569163796963210737538563782253311589446943911544428698205822705026578993041865043562116538525459731720618481771684099748311743472140031909448622714131792239742081712927011486772746443791157722905704643872794781906076836845561824136263894249055758692045635368088965753755596214508492498684870533665664973540482382723317442678231653112794544657637008407490781946943806032832235581132186044941667408241477430311880657723549994613116811507137443632575347231102938491876214065620906856152129303215417928359093090696908300384699033386213633694210571815207433901158869109134161665218975404326838508448807587427156681306284901171365549778500232571384012469477145764303899066736516370617372701854812122907692020314922495955032367564769078061083228866002824472397033991765039439789961730139427270280165369253201664743656310535846599375370351739819685226705786332896513686931070211218175960766554369052936022217623873608547101040736518086478435521699409519393492652975147629292240593607028149735658269913462032512528446805916361325017979022567220835729303008022359770581661940368210090346421522723126139144135270872608247889535501257617442488448946207999978513573655950480651561088623985346227393774324084352350883484398696857220656193600215451758022961653242564681552017579538631204646431806203961931107764962427391964849887244737285424650099114357224072740840843878435275549013869670092202545558041501988184038038298259680223205647934048067584043736358055202150676487369302208716420739202000896685031279267514961133227575365569505024215505626663275038942809141337679076082287999946436752723252556958661771834181813803552315620929534921259701954138360844613599603192634623101011153295336352422916807265134108950087272251486047299059330334917932350235016003727601509993758058797905936852581142370270600255375898108444581271539357332652820786738950643126061425536200805909145670497966791820227594621012502940998560087565763488602233977111554347736869838320421560150448757185145509725630510097760225592669378400410298926842070936438216676460467793382553993495703997746745589442090804551533160523701619752282882252348338949990666489191284299307393154716423985969555013888482460846955311510063221476981668533776438849063298778189213897565417242422413504695501784316339423347486532124237786256534627227790382149335354486396436861663430932792826329008712034282756916466857237923037720314693342925160129660725636437816943477024167875258846945383870270867937428309333384779864819538490331357797460388228286505260432306478569251349538567794489821848491947183366618713457418432787303766902421415024577687098902897672258050944142885516312487723716082286593820824400219673042200057869320287901841482598004995184555016483562918135350670435293955093020489704691750204669920962292620802577830822027465769534707121447538632208733376373775436322482309993911127833463253983254845275750532268793960862446806714007430771519630839101908856629321137256612965612531821145198808055341589561338669230398845873955893986314887887976282136026383038867006360392901355905466168219919814315021559270898040514505644705173780650138178921445914377099821062371084819457423396243275337870062807113236312720713325309247982590370843052100646225417322700396223295434033826364712782239006096706771558373151238288809781809114326957347367876888128509997041443227766244860724005695844954306652739579325416437262763946940644748088952182329096589674082510033536403123788211465377561339516242409707828303984452228216394892512391676900431226058420371133307115979597908443997754765090753377447396036934460379801030468187220878940907527024510260152522444647423628852112452599549183478550279533841871535174816253728244432918307840740362271848969296961763496196432923973752663741326722742782372383828845881429565558621443076456560897399233972718272754414556746876834528874572034529546198156092193183297113674149295363805014806664732042093017711725791088362458553291737104535266717660596723200758724087516415901303133410168042608359478828817436817890685732653713850173193609654225098570380291391245263907451433254940553805706364784443785539627740787821565464954479933569626681434252867283480499354695987643064572307272529507481313839650419292789903797967010322999516010454463124028709125375806516259139228593029956083858384452831006840124151812095026288224855409638499233431482445389358666146571691564299532209810977681834084797606141217978476373646718397489569562904995999751310897458804209355133956165652125933761503514957034523455163141950489933668214857592891259230144052248375439610560980691460600988033248524021559888242300824470933454212208400285283926802531775669477492677922112284755494072269523157863958897849206886140710397524076110281017237389483407293885664048767451198945996439367182790541020119902261314788728916993234524279508130391594880903678336714562863899955549741638215747004685915100754468710673215986114910268328963357555928131593325983096661343450956988487689986990281241620638835349323820925705173936485644919096092001077631470612506209698271762461649087209528143183898508206756214949351710217480217325751600318387095394900742744268463777068348445654200499133394400699100106280307303777242728230747365308768575428286043019575262788538944624108250044465026470976276496103913009090548632833240139428984092743530297654949320609865393301202508288994021322303429190561820822932762910971141711716617855710818403445323728035106242889772833962821746386520726719183237853618701531582106998501587778199324283628104626308785346774933781066110993243115223944503091662053759057713041289001946110819678583494178092575668412653683091524546332439928040559685754383432081010987855753743097948429606937529769967422894081702375753927303986077114013711722354753912722993947927852609207331786169714923932302584587232280909329279885819227452469363046186179005776219964884886415520500131862718848278668191576304318166490294230652497296897349340882852863636653983790046055252058278824152643439390870215626504446471300643654252874584246280854475553557293635421722779931384499272526007600639406195582952413204301727082320379228512516121641371295874707268892511351149651952445652682260890798725580013547328014523719549896181037103749789332480447044035606243016247999796851172114477397894745758313116858376854432388788646148472709145134043926522963288040418301687212209094455216848995044092098368478433845222266954970284895759574389674488294661237984462711571544706204225905429605852735300831419181934660541612578441451553472327341244329703678586031486693661506695840547684026328328656462629717831536271426982668407437015763386234915385218903777850097855862112792470419220295963654853946193878174199106075088057557557552210707395604223834680767571489335095031702021545510347831306675976133252029965801201606643901540409343500878711754917860217263184517221611771187046839061661129806902553153360652091741133051627497768859109140724154800838097986543678218712137760464905192549819731403430467458361002911076245078882468044249730751706422049171576834189460537074456271995795074873657377641687755003434398283480588258709788517470551461050787677546034669226279276555975042299424776665054954146908559902836794635479724478001367660015160455442390838307773010735762606437942412580423520556572516833639021301186067969524911673648671643972243761974889485398375385787370179048019688241634305484181630498040454007640199113371483058640573131600729121354267174806402105325029231672130763732117641326036162053413571126277339268610242336946732890456232674559326494675465219519479994302235262283548895904524342102778224592857553591923492316100214043774552000042949742742270243038827039731200789589228094016731841519199651406586154711540658714354379056008065718060088421982785045091067242469356271496278400340789494935474961264199436047641682928823264857174080741501706956898172526147339415358990826159023476872703735513790659525553346760352980125010738688090629607037582172363368323987624798258787619232913931959870699602530715881010323287325294341837746123437152038868540742809665394058680250769669219216738192221179432849997663831283280561810996579264883917078033112102020794455547663429022703846417305775159797413487697729392339641698610410136270958678639986731590217749771649757891785865331076589077732446651534872283890394094316748535031535352768209690450349655449492608696685758687197606076227245270466429360671511624054978643789527953772432705353398952100184173642846228769114473267714018209698250592592321305050823839669413301079626976489906405084168371513504514914720599436018671305743369433079799520678592808503414355206514742031663833403704475004295831538488299365590149884016500216554607471270226346959135557306587057081162157521890218680417040480958072161918228748612748259131682665256979692126390748747659949469516062404104241804107428478975103674637613607733419741911683454615325960848123369998618055868233998469733273010002883655529167942544640682054797755692852973403998402408617622305315686551906142516387159565393196294801577723065497655833066633290767646836602714614481393653170023793621226299315845539986240277942063478064294639798368891308718706211556631783464446629242949468985617758544389521262722188979456246607186013739694624625044968121418889354596189434769461080357722604302957000671522741509398316613864468687820906648011492650310021815262315486756669629544471184945878358779264379019269173082174642443651023763649815825359069122864020241303728298942591376649384948846745067680574713785603991000332518678154772273079708576895425385184395453249030314592460339436277389504040654121474554277102860838460904790051499919811343102974917913866893801203944609326066765442649782670244267316510783332361861542133950007324621148011259673240720760857769468598082735027469990219842641867316009462891648270436745565087708298260522240513600835773306437228172242314050846978164468171262693763452930513724025979747009137752314952994437756105347755749639691066228527117353947915707397111227888545292317002175878414655419096577692546588215010168051343764763744340789638872448243064952843104380363343752795777409071871759109994799609421225293269412305175383398975164287632194585928406830188694609200865450902732796934769493741887085189894993458762032454233575956370134863790439275281381325661927621502699540218254216056788432347547306209574694249467897088421031911635104421489076279543538658140455764600867774369076906065056514035691141508613979486227729207466563682040647188498904258576659064952612301139303997176270367307510571693061942604439171165326542273431391372266200774140873024104835531800570187402348227362900222550752071152279961206132654818228890035178145840813993715547303079909902164536620715521372643494887491466949487642890830740465429357854703159342077388994245531557869334242295746053595893037416273157300181044548402636872825169360007933799832249033088537481183300709180110323554883836843877630760788527294242751570012743146774491453012855998250534172325962567422633311185767664808801701549676724437581052710377497611646475358300915624021183800592460019769687139265313925466158696016278976342259937497575267325058983296846129503445028571686445062674058562316687962017702879455650355848882474657609544244480466616811766836061578926549590459823893654733426129838995636492493259527087784024269864548454292149711673762738478292091685468356995624243942469729738388379965545138869982869834098416405483190437943867990876413401511993806112046498408290592924823253399256321377676841603801441164196056661662387242073576532444275078297474333572627990287864752718235876633553966916562311233443408044159904721570096970635744869969483152566304975938472622019417103075881341981640377646164184765517157311683258782585302317569616772928025667109861958908383421707666940957088680846409841472835817305288890179570442347834802238061210214966233244007320686637297610349830984630745494219666890372417596872076751528085153686801950351923976576973918060948287822905884922403376463322114124090312773394299161165898016752181808350225326417959625648270805889262295620793291056890373177918222171740049330940785527619117689551622752974026839323873669517076231731232947097091351527960590830828388174366368501665257421725995942503541358852419028840256742640394857219272430366865611593430423703341937537377145303647005013717392298037404245293471037233449227314740159316573192217701758447940979267144161671805724996567064397122168259890142230587773186131077012251153693876866088499515146799529015011054824556851526595593326048245815917584341789633175060291802582908686402504530765749234465573209354933630297248275952070764100494938869603756059108370862297964354714618045879120928229008313364324291225753703276166567369241974922947795211712507503269753038172744011475301631178577394469484484348796238921207693611130738970585466696554773473447489798009266235360645878199609225114051417853678274938633218474992809232228147072265831145017903467193939653173054824611728701005433451392418359937404753620542877698005518346049407210409899696461250850859195597344052845546664529526652985222456009498192181195342839767753849430929286410998510185488774829263981646177193654547581164700046227614114673366222088110726416623284591800124548342820984186386861446584782307776334049964679192044212878833539970552077588020345090665564890737967943213422799482658962135309475369174352588535447762699713922322810272118472657709359993406709037308174995820217649444040809041746496166491317853810890889300387355648413913687918502762386942048612785941482867353402171534176421705753867218076556474648892367200492197799827414558340889381674823267453352339125157448930097257134187978693140709136435631932520945066038289562831305980798616208773514191588558242594055478680834505327527840696281642790758921900550610462484058495985344955082121616564923469536010998180071862820972024685982413605589774348634954415200790348775136735851767340338654420735936037592897762313957020915060800480590714937199844363846531278986652734178139379576451260122501748277234251887407542029792353303870236305939887647917232748132329124369089376818593080914616487162343044332707558751057798634783216237683321492436065562335343137740185938597480772750468459434923088455139797326184493174419850282491002097884342717731842451672253205651579977132146128359491126030639580891402954110281403036832944907994986009410466743821833344686647976543498434795431298428483563269557663818058165041789927234270807176573867372677128023000926631088528905429349046323753487835804688605206818893693117877852502131382259227001548103767670730096941484442571679437505257882534300418415985900583895200474937326616124238095281666802220155369017244476931288314636668774909082894274956707927957248555479015135360292151440353925561144687533634485330857784094757594027008159693020139783707906873777901207069050243796851540086051435593739182667844802528937338989744878520205694861866192479006803815857900105441883879222478511699205544360636006702138856673913707303001688357007989531638311673085066532374143396750082611470983953436826510880428381352178330479026588564995494296879630696015647993426604830769626656501683225927651101507409352840105038676861307278675220317783199258092305571601643464514319612834486336095282205477364403865301661510505140855847322021884981581240615109331627589528927589364369492285726632878251210013649506705029663829153603249212601291064281418555210843202176885032711697860014855164647654815715650276993749546956223762623032200291591003508345184294675482869432489170148978092093048517824366173429006678705802033083381327139145036922147793159885252268097509781443692340811250715158677598008352827497400722217313520377155219244352744369773698608887579766350379082041870254135040769939583538171945330251460592796353276154487453992628623484620272269079297357211919659592373358544078811542922236293408109749521920009143425853251295181755910205868922931446924064004245866769907900056779217401968631024732020856539631456606000488958272405036359420533859521543652660247999604007043949318943212370204338204952299825633369022019806913934736739425272635435587629988600797352931617648807553199033081550189708183454800186005668716815177583759287169749820933253432861910266910350510646870299046895057039099249564046507558688662367484130016068018501837250836042180710188140023244050955366514280570591220036702944993792489264458173496959803299965942110191793787337834146111972639380517375648153418687532735753232635094557504297380571838341009576688975136516974827797735375458085370107425894513656288672703347835879527713050456343548715091507623211610505855307667427333229847355440970228842135445858895958649445966253955363122867344210711843266652268254106260704094144280556828174868205488030218601052251775047647341583973095724948420711150072314566762063268735131149485501592341792920270780955793089097771451318316541426455945457986618343658045215044377234038395734139158192492100134482310889478378798070762870032210094796804640257083741816259125547822250686893898163364149775822427433629348751249272610939603538583536404782635142974640432492377238919736901246542672552521189624122912487300707565753743172080566266453558151683444357319607032679780990469142428446509098257522618572745408243772204471860375084689256712824896630935706427654775487267395219142451032033008515254511063433792509932958236019353720521381821150799877293179503724631711765281131197546202085253234998119985582445580628244192521497943535612209027799990413640643116429769636644214090207463467983465345416407216148562054855426237648590704018065624964724806231802406275339381503617712790708893403337251286264647011677332823295074152723517705543719069677427605478885089751513872729061516939777851669557270358649683028529993521633855776430311782033337548349500601053291258079103282093088599386559651457808560322418828554534963984822790762002568858857923084882355816848281789766340544993523579683585526637270689967380465394139470174754004616439102905916102884634363146047791317394643442269110723576054382917042451736400049493832572932631590143094284361708133273737685913376288000877444597983462714033700601945147362252907665302376612870471640427044202570100608595104180067263267049190388769506773548963062870349726741724472659418253341423440915534817125812085916610121777736545348919507942025098472569108580388330645459648445813168237077589355601434589277117006938098971473386925440400139313674759420211482394867737953748747854457959000722688671191510867946556172294736594404405912473049642232499944528510448106024567356690067799130596552697989726511098967474164059052976262809801958143240886436226730312827456646605202479577198028191215245208091586552777560385160041926728786624220096436232379902183194529466009756043062822651773444407041248246357415017450721045669075451462283087799990884322070198962318901403228669877826666840539625073507968871857459582826624450304778451022659421888359574895279963792128103026334064916211087967854163412855891227738818628409820071353367829065601223395587470926608421725793827985857607769901871080881334432151994067502058418676917543737417664524393691047358427379810433203360994842367452105103985655334377262560829945061809539722769832036093133843656800888263587145342081130479903902616892628024624106924705374281482019817884790484883235126297932417477787726196935138853532452292263985440591032298160143195110611003402601617509425923246181864586258904428370980425636018548818311625190296298192223515240707119136449983679183293182619589326786344374011869628649132501909024369084816069633051523516748240001747094374010379358595364461685703580206764623902986540571787318882708877357123435984463903615823924352829495423784338130462283311333304166071811455531766649486142010058629972491392700014213643118467685675359355217767958753787099240127026140286810523073430713107645871861955993319338455050226843792695038657651049890343671979544919752683239752713022308287500283320855052234175206684477340700672801599474651494861846905220710810659647905044775422124450130603266959706721946606554262704648922484736241617125982699772380353173215390354340533321933249886922598597441424942394956885157642398537748608120793887424026591605094518242028231211375308720508179101460778874904610228048892734396160942258032827949052690532002800253693496290340515904230661324536027385299609118754692054271973128490441707759915224975263891696069585741482205632493937170214928653422517315666754098627306520036239805412355219636869224807125310550061334230713833903260326448215303696244452208866567566524492529429423556262185108481495590567867753772204872867410009873328323697303391521819561955505224311784857221352083940060796285128328536886625389128195359211963254370582723912390535709167334809565712747203069094235778264348214914635158196807083646670586684319599380805757448278669874062784345153214353976174868955204636284088485422186893693765594459409651105201445729350084558815752123366500454745244178465889963204017108424248433552171341340329775170739987223043688444719603002222062275715432866542170009213378553542497983923920700837216754935265315291892576695619855248626166486362153933747782428589563907863885421869952802229742827759005421869101713558847240604403079822972625082853919309994275735402388472929337067154826295211361049117629191316031340656115981017438000454303492619818769713525793365503607205156770933820152485341982418879506307043598175463630740969575505706811377273077999980223874313280080373951658242810040480260414947632232544756032467261154209341498446536888333263819761168682234434725894188196104095100515442256818519283800089037431040437135614150218463801196202086368587102729281536748293491012816697851471649916288835823405920944691555597464627179231089393177403812991767685583073959083228730572435317297724376033396939902918100504915828945200541888130936522002075585233042482814746639771281070812686362551670447566150750836255380000291319556776114763013475696204356504300259756376859938682440523365947320802304623306426782547175545570090048981203380433009588324804479618755413974859523031662778533607253784436717163724660434252368273229074695796914624055376807880569926640710811064111586946583011851196510614898607497440543138775364704017983327764955854291654157216868967866347621244912484862917513162890809883591639696828536155338370104054698010717392853888970897264902296358939000575769408993397339459162171493205766308490261895794224149018250356471398224474188581433602820766918750106174667870698054315601383605327759597249997435288691633430831829123012845309573245836687814233679918337118206271049195887626183792329634788045472591466652897959349255629406760468701553968437958292886578226917359835682922848820547652135204815350648555373618819539947107437569125136255655650528758970855036019373996956811901567393423126050758118077353851764219154487008885142277265756133964097921295220748031939773818580195440727622043325833819939557113547782013740898244422770013340287111536345763430677364816005163449852800549951630674487776642582391680611206593895986802595290047287846540145430461540743720817316987811969701795656229146784066343418214561529582189572291318057726102655631699854719564703250495328619998498662220908905081469067435456002470672572569075527194827955529598179697034484339733045317588409592163784210172186355322909538052683065555941421946610698044908198749938850634343069928279254616492334631592832875579647279078087604564835712754073599806834624472483896851473012574487409371801813702791052573919370311350619857545465137805075387437774725481597077543157661646029500969369388969115225553722869881934860732513167209882697438174265365716271800933459997414681426082704969878755399307096914357327099012822908049628443898303516406282940326467827121071516565988171827399512252226948143041541236579223845844496266037630092338873766750828717367443110501636980569254810531899101488502420560029077914589949983693087253543857359526629334820035240972591924881185812459870549797765359248116533521629551637886184085874331373374762479231601305009519767554619068525452474455824148275953852305456211839973651911477556609495739569082813928855215601677139279676958324928059319015700421902523155767911540155268654656508709026732118154937351827205416033188597387749172191093360792016854906951870569137418579695636189690250212644629065887468491959946121808761709477744179039871212332271133045192302541884078156249509757517901271377697216478142654225803760829990198366503317150623868991967929848372452522785848083443258332973197457971894599851773054645407321457772755259764220617566785819837937620250815539314157807403366495151805307198155478553834550950869219735217682943556265398266580909795096441895283319441162042187380467804392140827527496568591027871738349457175768477313107168773401168042121320997302029092753762729787293274323157209253804530636231547799428144662018041732582306977756509682232745495489620970426209377651869104218203717755390367163340011383975389273925520088816012877621285123936497507636749608038526939015728211979427954538148433279325103026447233309379419473477150481594942940135508395378382072808156333579261019575455104797806032887713361170597389777982888529777017596283657603200177999175096719758739099415436448856684347703036508202413237958906291294235079486331101788994088691690394894320176223091422700959895733180401768759928836735967010497031631178189677514760591199292731074555970514378291450388828252651328989466896956232410002954715922530183781338818710116590569173226717304489108160796592077090705377025049785359097851266320709270551117653436486339552328930549935924271398961583680689005392917770438683001534818925958255448211345376053690521653092844359297838136846688042553363908843876648353702292079604249720340588103188035615105598268435345474227559414454404129560442700640686308531474284342330139018009185741818803486719588788324983378304964818142621564520799734896261964950852703623234806704316501213411106459100584624074055375292906994435492094336145998677241256984701010632883090153826279834173097182963386611687920677946076679017001341766076263611300494772668586478920453972586874284146328568047176157141678834432274254875252173758167263622946793166316721789069064952580830099470851158628146322020405415629498605597195552426795193911797117491104941823779858840631635286501208464271261405056461711992057706292536011189006438027729524271377897280159698232589281534811686548098440540126936079973405745169048897060696870477007515257055937268942595875261129606743742952291706236589607639150265694522792133334338523243869219912418500062141413006326073080511709180151593692467610450952108954362435853792497948843376461153191888352623978674882858983052142303914058549571720445396689062274149891648135474989930854605335784538316602965208062461790349352433010223234934400874567584621813260321927848779680985844809093503694332404671422258167733369725121519308129293472359407414983239831925781081273392607191076068613835654340275840269950423976996779217998767529245434001484016643477926486838132876025403536065591270347187508804024846103070027227834012028687366432047409101453993453100697601613452006037566184558863898105758868270759296554499602817995494154297334250759659868465368201284213657217301608138443438129240298391105802944794831794695137912624574009678171646012582942743233259481473675867582561617799076437252492832368778479611306428492460960836172369036098571329410646819338687368146500201125720058778732878086312607754622392822984446157086849360446476839740804081301775708715699083601990758432736946824029243497937402319332674176322366118494942560137507971452346250770427960322370271597099281194615340166909361949435346388943948969448716666797660516755708001436778410036963538351819175550615060315331766448743209192905254141014223093696454231156637501224128362920480021601119607641686166513565415863176875233780360351187988947253386850110618411166786211916202320983119132420419026039344252674857565954092492230113969046108215554906176519640737974312796519771685746118923683348683542982430965235268974558354363633669805153183323294489914818872752344363384830454841027420060795754561427091778736188336979448274064994462568849453656468272573673545982104225154591762545469813601752421289138828063782252650214363515809412601464002583031963769875465122484042998749600067120997418228524803656609243852620229996157381856665316112170956381915674334505020995164315983334804500289293809717254420137618939729667228255282723821335220672087352582929474738649687256517984926273545833297686342880548521613754840620008121098906648215705269313810090980119184619305242068587469978577905453303355198020512150980511970959812467331557547980858503212739808512166255162155650136319558511545286014466646568835538592454953311689712313581243564716608066740899996566245016596480685433957160476303904603816202406088901354244401245241398824947662909942638960801445136659040504533327416815499109099395314492468683106850257258986781180011737861799439825923218634125636660007285363207705399463246672234557108279141617293912457838784285354872923413278391190227654184512683728185392373311105714799232715971561855856532466310580403273284306907826009360495267119667255267598716718532212286981223723003314872309100304074331031352084774870237264993720262415573620272377497653583475749060353547780139187209303954160024672143057860038410151806151300238158163971641702466104758410363771480695152704639843891999881307099737477705933059327463507904106394261985601456743375115990572842995098487966220835638151133932744092204869689859054186348926148462463325841710658926656963423333933737151102649545847085852684268617767992785834440925734137438406165650571339295786937581870956589802436102182493815261359591366252568030035525079028244457012042501998984602646506947356817671318146509755263705155701572115119569687384380153867752750460059287122653655742788694764787555216017791815936090224577256645651786265920776003070168163448888714601800233095782660776468780800106067701614486572782012250988977838878180216262623101898940151235168417411466794319557710081666226635565783006050011652631058650416326476873866414486602206122565359992006957964133227055618684710353741206427650649878030254512310094885439878472092134239263128091137755411572651148898501928480526274135148038284175885911190797053243236331151047104131520867743013538748980241577850468762086788406664669760617006859782798660033860466604041617163734498697515013134963912670589111429511663889279717566192652830575668465269310898732425953788660384470423551132711983351946515595211105323746181690440934396416314194552725608236693879205065492596949283760360187873767829044233638875425330150308567303339264281218766180222791486275854864113774039212360762966500665918229638298257970932925458789920381469235313275111865742309866947756958563240733908584791383894302598481309127085281280361685901870600466429912181338357295155566436504372862993491126174291616519511808745149829058088417952741294610013753969439936769969084606388186295610188192296645791471149200578485163596076220677472754442614890256837233511450459304610010213086807705338699598824704227574975352269867008047466975998599683555588428988223690195265930938073101992096014085670171027366262271137693609261529725489378397921924739949685577160834499475703604547061764111771154367630900815082597888323222121032679072608305605728928423346555593669045381252027025717201689224431824176382392480921138698725046389241930759704315530344739450298780751504591883238109089588897370150080385041059312010470053777477521620071774801594146332775484683637740399164822620303394505259258668856928508395336655077860142385251152149707314626908656641039964979815165149578131624952049283164164077033437077889300858368302847511121346921285982088943823952743939728803857992282086729034467700180768261210175952670686005058698472244422305044489338292734173003399924419971164703369781697446223841138900358952876101201574154185828817796227139930379263113995143461002545568011185442193477304833004936165829730935178444947783611542346676490609135416118243947066017534721131859677338269172927096010380760643724238498903420573963420085136766558566671066998604465730741895977522523771023392486449429564092631298776178507355450628410634049731951326619193040224917181587689958223843223195467210173831984348035061247284977318660545177451683100511384336004265163723510606594391590752529530450402108223017131555787251107362633045407461548808342571108676499403275345119665199491641480135778876635761487190270030624803403559384983255920706878968789379059122968420404127432178347305228698260230719674898087507746345943881682374131416003250983721193159130103018892335242223426128356117790750733036678746757606811300028145209206769127425602194743385872373629746719622661083082508168060947109926429035674854347562523626509041154377948728054651441652045642501486212751037819219679368672611332982019387343581694903944198896506861968275770513151879700056952533227147053706322250300877738368424736662709030518655763125706873515328258800037794299345099406570347582406248677076017202875658647683348937386870141922194808801406638844924315069292832844662194012102108850335362058931428040584708034547599050099048242129681976451730852851567379837811024217998813391822045104690711980438273981023264216770759543604972667886848940760579518807829027917509989055918561055564413898658765462250716851310062392818280507574031903884779588605115134281648760806327484776817644221356244891795602262469459158048768395471321252626124830616478765795403362506873955319066097102079419657528634143410843212811416037549721171915003804338186991073747085596879282395649609416635099968576646482088284157830842679903405779796450952623728611435642388756202051547564781793224817150273504799700163453639766056952017235805064799277086002063765442851627039653685181828700874376245621513080860095923590006260290579945930087369235370227645603611621568481825379296381537147413499022130944054489589278598920894974721283635786276211755379290378092257651788178511349693015027901426024879851440752960310590547200038410972397208532181606625072985131579045461086588745295001367186226962910889146798967984780122645989233138708947540678153937155293117956030734662953561056477753720333623318310418155222645151226987538859421602376589446661946730445372507255093877315358276743245700696252485950600799043076222381945874410206628338906425521076498180963328057845236736033605139908852402831228929562707723826625126749825649787982560229772554089776001471523969874659180113510061989041010376728917857964714249606857052590744278806474229755241801995619484309188873271085271157055423977884358755417251888246441186750636347881953226009609811937378135471350522649153248585947378035972456741608150235779110447352340622622675153919890163043800493686918803511814001888787882921978399716855623200717237264362331861123009716691545575455138736289830237845321948713226256304069863696018013908625666213837674400299918556518681786874301290382453621420388936646966855720256233396216843225458873551027965378968749316969351772905982927031603465066576406251594283908631463156270916692052683550235763170981804548373119413378654023080414963479093498048437260793701080861473782091003638010218431802830493186856433161455395316791365931519387006330221294346736336802458740135800141238512289101747907424413117625591748520359308814134083268778147699649905371592901841939120296290128836501157197979904019895459724138966770000384186062168475976400285515231236021395788584315132795239867359300485803545332438970303372668705229351646488745608512638228912330390429567985006394382128729129456060628421256298375647105032328707185238148338907380579491100285782189671651660869108072509371948252999853575574195299256457718097785757887267055917792411861505737782902050590924983466831241556051709101002225022184054098945409692824665678900730528732964515658574406682037759035466707091886302395974757817293277497220296367249189646309617800669566816117856056976624344280709123557900697510259543857367311329078704544898142847531372388908708720754700774688746462910106394498959963921944774343461272151173539434498096420811329037024940312345502283588610551773737774874629972107815857823257878564338511376491886821341446041668554080089517249150517964352332673890278536090393993187041160878334696847272734965986363627905456148861583419039462229076869266906588278259242194632388395513803024433438269096726328419042109666484193624044445401888841066968674834791563214856316089936685423448233910837827650545900722454200102316880294272933563561489658853034991833147983971509820799018190269001114851482303659018712344704894943048496491261582096099450994720734583984991202442221124858951704648037678449833537815526285125896404576387234128226728583901502013024405495209652574168974321907971154151289282745668362951713472412289574388997496914929934912856477781836617173926913108421858071811908869234315530882626677849459529195266550616773274405628513396488921798363872042780685093002372496560475484431702366600067343628090681868491813629743233977938733648559709791053209563835720926372760365470723994075705558275424234267634124423084919031461212104290863496072210867591401542696321086917981245681754474945434944152101829410861192164879958714742972514206842871781910300183120188008255742254736291308817473968257382465340069567361713156749539966559901618563516133092183470851810869298483146433980685117765353767497698542264909552154833172591365269637365818815816590327963713980094883072437119284122864013889834624757665382402430096367087143376538698005149296558725734672911495796824365533945237878435845945033911952976952492301274045208674401105636580834555636517835215306622026910241906711464121417915224313915117356752695949170370947821135771106963716608141295319714590064863426934561385062546175136176532313727109501635998791543500699459344525754385065882328882969485320051312279673763094127006174006941444693308164200540189228100936222986650178427015914608364288144056641499083519282029627894620818895120171194009069958209888164564518579552373749513608507274021645462417966082347021042197513006837169574396629080954626265397564038850555728390499993860656045680126972926839899048993765002707637163369042190242247314881505831744280160153666099758797265482748458117948101102177998003853128482342565953537097135172916247060462865544049802008593237846681448124532988262711527766953694366649954501831827216805375999128450300377749230604400686773510521917597680842074154194774721104232382403618842363444058479149591420141416874741457677558428032420332517356624029331970139148576275943961468768284727092999453443931032469063864792384150130787263323934519293451286885911931423454003091615267617961400711079658785347275497536966785451552051899650642254881727686601823966955769256622382488191627172495693555757432434374222709168897563444237631093454482267434114228045333440956291151096976013189553221321571167134585510733946630251161741013082480441907900246801364979022962367915746098475201239067317595637204197670389535004492854196214851641941954204877395610875257957477139354034309105946475540686188211257395841356341862084796082293650566395428781594634505503616555619967876891611386416629475702368135806042687125006748696495607689618044371027284457352175836374095891055986573922968259082725628537102810492397241293743444183500400005816257797087121666946696426942203671798937192844033408543317071071704529014696603124697065716453150203031315434346930519821013368790044298654879926789691381673593779970683847994610177756832378361742390562026164202643051341572568029472965761919387908685104276736710023621044826096073529061238882471412969563713006910543571384694353528678089286128631000347213846420471043177690224917011205516534839820527698969923012122385837528360838356846910141682483581677023740853430192022456315119021228270210421550951482930762747542350573427952975657601030151364145468444719800711299633640978153484152515283773934923919487205799592372158459749066511548359479594046218341639811349436649323926461548383006475319310037940621148133771166330070445486825822197986324731596893789552475546612477592190286983302717578355864218931502723976989619456021314132057052864531311126347250391965336696034188501166176638526796764733132754058996044007599937611278626088315696513276309024094261502249384583979224956994991732133778236028693643727255019784871250021900039177715979650020648333221860214456683050557282553852160828106932451655819980035509991371224794745325826289618971381075434996271238361604848710583542895110612324073803862733605667527586613755581384891801162276662107401606323341899908392922542492280217102994126202295361758589218759747540681109220419643602915064481888432711443531061608135914310768386243847400696171724118687237612121969753476110799143614397935688664861802594305403479543022569198348730203266684947812060320819064877255921146867585448492319865288340249092852099281320753685585959796169584998686337807889090836054022534590972167224240578868836245610486684743325864926610096018608314756887821136319373066002864942264949765557078483718861130373572860707708908302139937609325031897915048598035077396288963553365048305876160520799028210333396080667472525405109628488683668329101949483632692730295173202841784115779649186674827150071077352107532133744132342017815371388845020666622206235756354431537127327089250117586192792983839588554398310109671391455359251585297256334098793206887507626392938401571097992693244236502295839832019012448744803422127947410816763533444904114191065331835586336508165031263971712181139141979053363991240917677781509204731896058452306640994054431087740896718908949610874192866308673985271127286210294399469256202080701900304022726250849554215587304858058018216133540633226881264401374449826434999905042800252643713279034691486125409831945991576999834989652427075279518971306782193591465958980370204875198520318706179183699867107111998494792640606082023389917645716159220134845218432364376976765890286655906302845534437249290254227870552013011792214802928577564142641549899600036781764227087658877575854274509161107330566613105046419965686045895125504309818413819743878760652477641322740715206373164458782107925175304180289655760665744935363293339713226877019155840747671704819967116560578781785695127775209526709072763681174797058824245042597685518341773087855608238970265736959867879083076687114296249024540774107106130315857987271086224252007672067746848996963421833507658160441906892866044296352788556757010105522647803734691896220527991697514618443791917880478368124810634807280572556171245239310508989224007025984000910111404844299217011312271622142167829450927757495114809500897589425257869831082395573449211869971320105307255066304734316206800535167008291482929168869448122427697379886077058200343382703434324168079165571100058495105643698161950345522359999074480006475029324618414367935913959317936255317582042945478739762645931161169206904322491650578725804307045322880558403197969644876268685326888018490023477371055282162540045986762322347270624111770316590182106451956937255645235279356602521572736281409040793613368710718147445514603836761009746568720523393022360769409606441803425137719406756112273493441354941820142982232285590452401544068535027244305635165645393115700978938722538051574096116734131882629040814318936659426756621470960977066434468877378447210721491412162623068292296462274864718165173404043933566644207879048293244621384731889920265145204650892453512156369174985702544664012827919765069204378512671057028232000229811747782291225353560749357800097576866677236372738543883889070256054334004588705386037641281479203054366309024795885061954676123673842410535257078375947616450965457987237034704144171446693769616029453763250318116178951171577783563079498952415769014147195360843841725832989225765955964650985419877348585814109604699093172528682212884378376494176187778707641477274593722044585994345106279194811345119753361264545085989810302723024234723260971506922677549706348540727531480231678942629014430422074319134472661794655387849990586403811225651291117068361777056773507919393750289538914853644448755950210097744766642837556793985815792947495741968717255391696792076955417261939463249315513847329340784497772578062044929559433069783584269849469144209237054243774124425484060818151073546622048517008354912027997408811728098603302252640958693426125801491483778251876882992106800923459160091248175049207195865106606951242222715728380227830671548510225417343561645858472520290854049056261173936770447352348491968236565380686640552047488000550305605389291106941957042308904307677804831480528111560189436755354940673264425314302480621231704868715309954958620135704708020483664010694414691925388584449885705187724192155847163420945095662095982386622103563452011431819388097484119271072107131744836672175596398038578647224597488285685903560049981315038646201509596164625762926536424941260427322905528701994621960216389504292684302359062948033743280222222271201078015636620447110294187807457682971212516668894306886424268443845448863877128122419690890249790954809887403779974479340355494583633316233244062809981725620688400599151494048343509088535539927822232838417763386373925489026327862000814624223888081252248107091411577955415110879594187602578668475862643939733315986885536996520749955654316597253418134998576912794417134711655431799976928762918972919833075969274419796817565558218105258561834477864173582135153242455512592947402911872368709952629555051594626739933912911697704106796196366772707554872506844412568131327164698857514342208013797182353855179483702248302896284860480630064687978825962765440384809918784097188125196087346858694027054361388315064666547573074461039097936669562099020893057158396324618244415092071987887265992789967633097244590020960213540506465718291157008411568763412087232020727191891188304132911009300322436604143063334326619347694042951166324823443633566916683372302836532370183209364413695817103837716875318917395745982659782828626519703487766909996205189892563412363393853361342478051413395640605155165471964699945757827880096496611488834411784506293543638728058450060046390740063293033510546373006744179298312027695165294109200547347489082425885113341083362414605641654106532520790835520509749589360177304557987578206778454778294492761576558142986949092148746097772857438051447285512555881304064554844419687285744214181453078337278802528591556606214308889127553577644515058916049510365701316644501140494409483184595771094493153631751918576841878244655040324481576748099469592501092607259246957529393470670747224474798511714178761046623620450323043414200423763132723590502447334066774890931229529657349641238018228760602199782609078912139552383179055654448862358050247423203703674872153800676539754312166857555970412643848872708621556442238315600283941606017327973380782454946023277766524694375109456166946627621962276545662359232216399376101274666303759673347988876312840721754800148491161174727296733610389053570535421557878247967290924254430319565513401791988815396958103260967827876492076271704597975286060070098463494234088645097435581962170384033535013210046980050424329892355868222406281977088000087858146177447803344253921771858375515786662181576973697563087768414332535904623877415868794468270223157144182754021804390521609057950112393930217677884049211875504821562841320279569003661895812214292358704223677675539269715210117381992353494063798642471557268257260769367731039375467148484233470273370718555531660280085646358414989800411841274118627436172266980558680058878376577347897170114432020859680912926855016522577588953717598346067923253785733492791994734914332680566958415397357150449915044808435491574330668126242207161652598870007392422223586492114003404946640088989817839484315935226684590060388101552522263668483955087140978520102994015237580540045728865305417128929650170672942439031444341679389467940258791083391617658512847154679019987471110842534005318937653343238259336361107619128701394969285306627003689395753480033819957588258063525945011771887953482075902357573398987075926443319860266612514595097472808389002346367330599257509113065018406897153491523003563358275191410786583001314804077992180296743084754828358810701492476420450744317963956313846321393328733470477565272231461010481975658574167011996313272559017559719530264823800656837880335842968377577542510315143718029124480919456080855099557911555755604911188872179373666063098435111766633087543243549374664870835373188050748013897802309099531963119406221923833574020865768345693526023645979613952423369995113290745510029207933670715711734767457633889085361759140248698546106692844548308882666948682385212414082934353910050964150145508672906153541580679250727625878375933557199508838544331398359301778661906999864681712044615642138729226721774715523233335244758573426313952016442277701604630640280173834520740537556130342997852913305643323764044209236427099400627828634509329642241226132058167815636376787899880129842160152076347757547880110819040983541232695040291422571143483023520485544036792075052548126103806483915645435050633430582595897170328106094820745467372470977551695746809431708474935351838536178187612638650032748850033038819576978595114986302140581471661423808129001942278447247849924342915286573037580337189697602417141723592428236551927381204254504157763153269071072214162281655686159658527964004560172434898358120840902231980921325166921216670433231440917810350416369300755938581300628462657569039229455174352782990070815778294580240922180941988299148851050668958685750487093927402355146078062381051474507443830036911902878102641036991941128979857723659126183673542812702273887681688925347103878950397482041762778146719900005491891008651255180460971231514574034266408949921301308280912321688983391606498148055879056344722395996773159310807422622419621900780564715686688776622786937111200276573182153414066729034131225093247609263296084076865016197899768319394702699959096082696326822043107724276086269590537666557663511358006464408531388868579775961067919668962754739475608608822498700897573261852625101788642353437823519194876053883844100625900804472048699917566992724122722992182327818669248284458396393020092975954933046146900111421622479197372008673369586015670314396759790978294145239776437524893121292699274833512397993757834788875236250805470704095748919572398133306850855779059221104903714722461518596963139681891886945120295525805613915756524669598231225191222856297483165261711964804884366302055793806303457461180803281511344680213612085641359391839456386890444107384366770669734752675846603948453632020809382392607485433939238872640685142254324098386916587331634204727197077859763667399574999731914664675141674944732424032168871537516958771826685372182275433895497413088953161044443829415652981862807114786085400749569782175277653429710603800488040677318185101640057246084741286771945139856143729332964302104908384972384004574142905577973495848472803180001400729711028342491127035766390453600585283349578272780734108903745619059418332994874429067868749182681408207541792427817180116596314680516782550367189541899697177455338197901979951129246573955135819968805807324500762959030235622063953366201311614753648893003652301477108465003181414867139835981067252440905673770450256096196233748616350012936592813138843947109539947842253934352563513481973482321749859989184988210522910004225959981345911178311768894896542292267999674907267674359809793675335477803280285238481073143114974827546400847201905220735010743979575998472984407141774754569761326053875557654264957409453354491078595807262692097424783572725812632787145414569664898228157005477149109118244187729079962510096359887531419980271704651064721465698958093820702638425699111699960238350168723320396572033086591862402471875966178991743133231857228570990122842496713141432736172443459359320475099144610108683666311917931309425937340534529709656687576549057807770592011099728592132640588918798670759825467750468126373541138613602933133404875284222727809665958339956556059751157574388620363255741465179715550495834760404783617339945535668745087638836339225215194226853112418255993273254554692612479455254455553593922956764617661242791659721748760622363016391685844722422318088291072863766402377337751865231980401213409709678774285027527243827056305534060747586732274772863632445376454486696104480614184966599142435213339735495883564672467457614343467044309360786543869242049959569394233354018328827473281951054791515819278879690682782622388101285509868619837926004644859376216956178412015343635982152797784744971705356545699391648859209055263410603939387065107573756759812844301295085710052712901186467719866707675491982840166739016277225429995870588189825350724862022756682525525185080822479269123162091836183020429134544736133060753829789857091666441137355627915663563271754427984108110411179490103556597897955809107436272032831017676476668989789179098807270031632227544705287083012680404497654240148416765291816281061466371902081909671211371766743508715510319610132566573604470092783877414657981417721919223463167699307912672511661421198862354015901328873850012568642171482112304127352707968796934799900767197118560329356903025730890911522293472615763224520183841312822587685954549265177187077045173610514274786165628771705974955632735479592020862469528224048445487757793474167022164933414202392478016314440055033810754196235914017667460625149616414639638008300606626830939974734512517854408639722532605758000815387118649281513167544386207563837540063599069387234476068364971673359960166258368816438254864869939467116769612295224525648334866646136559710299106713747170348933197118834191896594514490640127914081088203573729272047194917304752176899779962671967933861767409381000197570720051493335241693989716423247937040219612925570040477319578155616828848828014991300926929331109975198474134526158300552595430535870825514010295767642645680449917862376204150713710517712745503619542065550692364418245712911665866200002128696332466725878703473888772682945604857365832405781687894672208924578099322756386133909587272487451112029024681966231166200576569137634178384593649369106832617542485299737043436079062750465434002363950772606629978674187219440156367984165071299928920915123633726866234565568498538657843215425814673566634538441264360987206438133238513158212579542507552353778431994225680623986583830594908633494567592993925558729247287749155579694131507773579952332222210520942886878670415754556785943455700830143858470946758105090550432259978107909824721031402229350690150976347063659691829888105758665156888661282894686173125147700394329865248288475004821396630001531874196786935543815410830918611547052984411549164926102229437588989732465303010458814186085598657633615660504420039224144924982357018651371589816015721247207249181326578983238049781437049460279634134567056597576973320125724210446281774873992774793253120259870273767899236274248166992899769329875157815401546711731652823234230875209734466754618180911334909820161967376630484027762108762302441438439573613854277645698569012728351698161010205313854351533020168090504969418984875409291247303082916751776329619950446017637209562559896060592707853738333001109010644651276649959452478891019317549517871397235736978975372884801074097990793168757730201942644609528441512688746353284573638523039330040811643513281971348850145215576617646282206366472389560890981498895521576071964606158273047229964918904378831302829384343510346775837965528769436503420992954107783807298881883420357874160337660480314166929319687143896026233749211523799776720705397970362453379498444676887973448199697579223658096860079450245246321755710813091648214048500417286553100980520244189763036563194658389521319220196557425400924827011287083149034394856278231106410003877791147186246650875677293121866236810492849478246306266212493347818233404915798390535434508274698533712178576973609494991666323983098878815152099073790468507543725147124104248115715221308446465619026003802493001894199812404072983675283439030406323203243584166707704489589620552453946201679135035790520133833903722066555881559335022912095973296749702842511458247221153778991050142680202698826099991003293236549212092089730223182926079790194642642687546779066151023862481957247957141135141796898438496773920520724026467862918475006200726030365628559349753227138551357742893006885095511335895792970342670614543376727190832793422959998947574831446593441629754587525378212412864436761613268615669902055697337747984640086296904450713988963288320124513791654437702705296339944022940197206442186039164392882569858313321483583603466097628523409092063599743118289141709791274999264027758625855462480498866556171599873001926990034821343020149985207612684540394618434065709680573664594580084895675960469880732184970004356405819596386691465857472715774626160503676392680700141486596517117300176750805889280013339377980456954426942896334409731871376645474052377723090611015908505434267175330392244312652511280138646088705089887160371598379643897865201041190810537809114839627918776431405640967058692913969554152634823730722980444191430700087992467513490418162576392459183678500090998644987693849691126612750524777934031027638547850105791430383662248106097404467807231203204284666778205247923375324758518867034479738351457951036454704142823743413723968955870885737611280791675652379756923548989971351602403272339270207170272391727982908359057759868802342015563429993638870211545952308267652792003176295316490475353263570872508051301529045229661209444217995080328866747782267209171570599859076620327417917534635247913590759223886336740749529185538189235123922933533079807548258694026829612131519236010838521993407366519178476542286312164825206549258758623950070674463966241169275924767416779727373751089635625224902921578313648208353762218512533047571959926056975166780493496749345070774268554792143209019204427969718937234486863691419976096420490771961313816362105141267352876081806474398552696394766732385605997183243803392199899536863336705807468550758643218344736484153801340758294635716736230366774281575153198549202360776699782826723337968969106187692631573930006142984179873596550842744277115924650384123685687698609832724039822755187106189464514112047867313609389173893035310430420487595398485839107656974285458505406621762411806036174711829138743547692290855349184728236498229795423523498544783152865305610065944782033080617666168062781887369277835218207690205997802482484064458094056918475835233232995613923784131283026551368201446824105772543213089965248164146914364059733626245771875815012869877531251152659373100649012194650249644232859438985859152616277033978483543810923327654339865714543725401219148413337015216227255164587723271752827256335415325298428484061863962857051343250684894719582500240390885671860630487433634911431593751592983216748271892508561641516796417828823571920678749356280169653431958399479386494518397476841269477504973625513630766923934893130367679561226131360528472094209188476671826915310335397319151883379622154428578152108614116949756414018499989127946865277136320000349617383514972808020747128797450078462485130908068921709721805681267011937293333229033994715027018120222213118397072785243291439112199370743870955470074487654281690871595269930358635550414400936303247900982715862880360999810604763390864948207168330671115933779635556224927873936260762472263867513256794331671166826206425139494686486302688951304782878223775628933414381178282776833965588403945209657605467608568181664688398608888411991541542607428511610193802893704289215895907158722121378082081643538560683581504291473067498132506735550676734500566475138877307061996105795558956638062514325846782417916380627043569677192472894715013003739182440036149692310926485059657421743079487709787120673971396188942671160283846204971735693820821959663330210800794631197791340725264005026318829163818852216250786737072559712086039528255640669088097868824693688207763674244978489959093457495845890065111279417701039935571991393608500199645079101791237153535131399622296961602548805834989590562450771904815847030862421211508821212295954855533221451014118364147318913463969729368955735901068970227068510541453238040106846900226456207504563632675910610511379708717530869324745940626576913038231346348742609386151825006136544404183250879437413807231308499954935119741889718091227402854742015561332334375155369427092195181502503607331746720778047671435455790348794020327201760182455380352169521605892279930864861913113311014557801741363768567082485355875896962182168876946800389998337703495961611708327907063641232698453840173238221613831474575209795895375208471864777659941053461811657495636336509133191194252594355431204427745728248604914572221620366980020709154751545308800310192002793516454752973451008606833304799947536550274239615420193441086020909906075397787899479981437838034689427471320929401732742124875597690636080301086017466226799060625336883816443537319837015141288647334884297476467001778965760360861312227965270248194812371919146399808794597412462791597644361182169760613533771745319178950831390475067076461749672804692407987378071530898566026116949589595094797178557698022451537340690471267113774139289359992130115242101470075318533375219562907228374935589133431275322594927576561607007625597699303589506446064932798095282487117419738790734409717263958321233707716897231673924878471146039173797047185323286630666436334924149464173307656587360185083837508944258764485369295142074789846974915098678401786877727104285453131515265826180058113602181337024523833835310476521826259242726575223632697501237426114377781224375176810796690835605704442949103068154266816377618196054584255217139632996139872931863521472093583734094794123435033011807657282172211870857458900797321370346876423581889352429990921701393003030661426734743278757411971215644696201738502015468583122439436028803597305800237015537859134429105269682948061031937139577749004544444210432447057069204497226249220519573300041149262331918618014243736046973990047756263615424537947002703648961740492773273499794294936823564282386897674914866474546943458093416735075770189074109815428428497363068022392836131209891527083704274955963840516069831487552303185603466563926329411428318663772955416618875556015074828052271676330393944636954209570714551919373864277893524266612919971502961636785362401007178383452622583684009794992735683271019214416393528266026528819697972813033275355769756370736249657689904606379379202406256867891230222937778153900904251793616265100941569585392746227923159993998560699604750150989300335601311414631698648531838135228193189592406303518974132626537758115401985923850894733848323789341982986279000217311610109172075524679868394583027377836126503588846317463348604969447919968486049378937959051642556662929322363547611605385452971421530014721498390595864748365351226769317297404286846860803389908141944576402464779790434798726306186759258855403263706195386096297852871003754407367017390267462936065057644716024799596395773539399353537946314047304001802376521381308705034848944639448548644875874839833071073952347004081996341083709920032915210262513803274166180165256924738919658645274270511977461071686015925882716407394873423580299461776955315890821231043317068769376463184257389450519214001127271872943895905620936691176781643324445820781094095954985029665518342107835685737400597896028693829151724462211011073136019433324391162209359078875041325165550652784640750284555984574643251917628694274785576550846746135968003765724584670235536351005706801249300072306149805862837678921691348223449015969136724481902346493622848536648222336045255912206315744588536615416419505965075334244410645130985544611044672710847094095585658267040678086171225147758540614634240568236010976663664947975374325674982470379512727686282559710572053151712462834692486140738162979389294483219118706381373868055085052351127065083322873437991478930305116408289553260630887664299672022580052264334100481559659948173532898529506207841630827707959885065076262554306504672399198428100274499454935802569544185122718220465401592801029770936265466014837708070591820259183492764230714425165962037173610833650330635661570513276650966733699370094573859928436409130647654174661999716990244104425968583679431781726864072010417221424788173461319621778626509528772480211611050090709149119203652456189168387908204020158562856349986996102489733867400272627318225628308432453676189312808891409780075574447735054358602548539543624257654138392208068064371035532703806087342961842754830338433694772061975354619236294021861784334329006372223715702997813861954999180559418672315572849520544713369339142156822177931272202069734545641250820548317946024070007359146840793398580337513927972545761086095213111503472388071835083932430686875576887586823438347635105466790528469696523140326159272954347356809162049673471972534110829028323975820387398849043921432768585081514146782264912179094956576948270959800559274045123529418784754388221916213687264433314425067370436891481863367315483072483273894931883518690496956874950085956749693262708145046202306339459607864445217577635484416430355412856328089821947151283292455720830929296443288595897343693760100995229864556282170913561725115304094125180504186204781514579130038437078013932263094968961092253312819435916162543084300582328987998212561426277950862661336792816456941604995209074594500663087328132308614447759867227998330506559019134910594365380681346240122932615098243851329014051518646051017414812143500514112308597789268077183216963664703685766427296617256464456575645107900963587866038692036180572386113799833363807670578570733434184340039993921684936860598780388792962299526305778706721680041452799793753640673453105139591835623114331336394955159824608727190591670673172353045592286298784092621933201025568136778714971139912179884592076329324733710464207780795292998059044297085318098809353627495300716708924480790495299579666951805684246009969837690275031632151820521280726749841018459471288932591470393737499539604577073512087139687345702444385798338916938601989814464183234370157052799328422643463108183955453909513301842625951621390913858119730859873159887009977275526467228198986897505026246094706446527282534231434851354298705459652311129035291915983130679014186398313311783258165461032901367228221147819311360666890422801414133449943571774211910331514195393743240785370486457969854725531949360330632853282009933649213691821462854860270355184809878808376409206965369075627658645425243349043442367329616771009443597124674625172506274330174433490330793110107549693990072352877245665018400065445720741849006339058310567419551403261926286492084898947382503922992833840527677954856550902042668593826052370982762043288142848285662110154151315477646861452304784986672118136392473891861286326152697679795619924634705371993546493083981202902771987431550087022981554822158238459399126961000239533008602938898882420901263678012561062265689735864095253587976208795701703827392155412283904230194144972923546588930501327140105750834387487262430648348713255062475334740681967132991810968957632022950877108127153514221596361825599180081529401099122432391085049609635999106734816090401325296781358350732810456415546661731741825997603520700634976675265160523966903825394714730968845253956244873810519341250626633237865169036720683919148897081403357379036713211601452766404725721510369944131435904147793961328184885972113222255758145883717325303385254626699795853860726738851046227778361395186891160801410284246379076530521469219182157296952891038315652189932087747679200433275779815791274234974684901168508379881335445908587452470199098929998026444131580633162821621363423756633864145377300005536166180440304282693664695505669443327604467946179537112218404241666647388194380776125375433014928643105595133047560626817051649388128967819117652740327060663166461513792865792237091343727507000398277364824784183933107131894921543610706496910720724149269293795971337415969080157421152300946534069770056160382149452669059901755827475444996958165518362422468474329306657568133854688757127915115342638940169176784694383921867656572081452386762271305836191508663996566682718510241505812821125701046234066689852182438568433559929866706796430069944206915327330349516335073625323708261776189731989271752906741706420237395440281260962421274868443447537156081462442798950422112144657234705064945733365772581431412953401707333277711511999036310156824852918052251864162593352487788366527388331813869364888707179310213537386751992611708190711774420198075308185053366521259118075112726703412074043037268921203230381440463188251387830672038558465015200571583323431435319497786232405192029115320049995445842241513208862290026148361690574621927104065104490072794307625156472203152144738075213858901796056973919636323822098459506992147950164384566108940648078654639902175616298356389173835201682342658944780880895951836568004266130893209069484937638303200274833589936622333958700711581876886925118193780678144003240760522471822522369662601544815196089124616451463102952666971129994538001345074767757969215396239031003986728355722872462559628161375072848028258288539674985627725985538073126459113512238395347243460861559153419524123436301281809164374414665646000268732326402229809011040076285888612039278683465664264563210177389676566686331480380452321162667606066418387766057278028198049739096120327253229663137433871615349465259683911886939786066258751280714332954180589610111103162318259138572603885276515842318024202246287801682767103978942498298838627993758946600443670272652125405194377795064120813044699432860231133652563950626820044991728900366953530333607379762122876105457792262937725031283292419686750489469365132704700734468603408434130274093658856863157015709184046281196858269893909824330435812023953647563116586908990891463615443511906068574813476116176112750761433930656778040938778704868234329139680081764217319132180165710495081201440580860365752807116890289655862536741176330305924405359290454962226282863514213249813829830645749996691474304701582952732689036141167298685694761611168270705405382786352300940404654823311454166391329432306245992317560904941546095593497079407923822666039473540939935927058139073876007320965681603456930685256357329628949156373648208578458045261403034194509494187513474136658941781379580668676128375111701554933034418037953417284972341667609220423284960286352501237698032261247271151415005757722595946932090175192906813482510012345739675942359264027234158388570610379612680739150105939028237274622597405875428896426174082032149703073235680514810510295516127269605744517658201785436581389940606902305284932640093779714982957614254532935886948489203868561905282174930293162289562574708059496338024344103522212740322541375863977803415810468146866735966956636845966334687981993735470922349541193935005731924188474169131338199831987119659915688827235291112263885559403836833991244132270136556077998404396280301720237149449986560957990576163920183090275928023547212600396303243055353202542145552512269665978739199480210850724786859167740390727809965700488074492749560805608003967602921996615708131326691165888162968480782114027716576972766849842176596847205746338923873273831250057697073211870805675049096427927194592944742649012870850959497536726335559812280120477300297712607016264348649929361248586665655888994716796677532166618514502041475872562855871988490651651692939137977747987648098008502155636575334571116632020589163081482108291905422159047383698080599137162667449271355831755183989105425521496004850981151670148182632898613453277956558932652820999438278305204684274160547483134323631873699055488940964048156506694939984479249161081880691550275494920344961523828210296928857557905418648845528583899202602152361702129010335614036247042442892109749717826210018882607460377116411666025557335886189775924267408130522178812115406508978714195850235537704794952141679256479635393417460648064899538963208718255826283792566614595108332018982440123680062434166344655018554687782177858371551204142343113199290137614654814285374678144320059537647033144226663162425179368182247942741094318395516659484411072255140675515730328378668902862344051122920842323299363874564869646259517952593323830888169045714750340474639895251072574894948229496418519236599609226724983160416246158290298429737194127023314003680680759754551800242583241708732417801766497810537668019844821883433157230535671000265777485561372961018402513324667990404317299520250638465932401522954143525512256225184388726210282440803367363343463184667836545819959265646134315915096562648643436043756606051645530027810581845698031270325846783835899055757949879650316223294705114165273048323974084562821980432532260398161095059095320832000770975705939005504621830252783726265721442134686789707740381722732487337332354495782577896730112813457899114541514233697799502930480902836569293117247333948687477914702003751136351729210832938914794001935743695923963204993134273821230636183183539154223298015152873008883919959805264499875925763654271163105444506688331095737424204227336811008778408080881973260452851619142177483424262308283427365315540563265164899609987294866861605339788181676243400221420766075702772246992093117206899460792332594756480825857029168453308086594871913747326769063046842838474202480665664226776110418593051580828181723397322004257843002316651015111971166983756877893873062641316429344188886748907607410366435323740373012410042300507951715746207585575785312912479004145507352186997339648309870587158166693195092327867635564841524528147684497926034705269423515381513164447708464265128685227698868503738071528889746655582385476293646923680602049040021616824619647431734775941487015430898835181287526755893555845387713364391423884019100160338163903876945414974735221505990329702959899141149858976805729458496080896338342127074515835718327157532622178680526033351198424221282557507224226489775508550222999911745445647992529985495280460831749901366871348492477068166696845368788116361085569333551863269256808885517773259155308198061958753338613786034952264156230803189817707150221957511064616456054908938467592972164154165394024335364898424801001257712083123754252518503826599276930646459490374863746351678971867061355230207294271962516261744056091209615009482158295473166184624829455096562007859487735903366380544587216338402730874933245636167471329069659572545156965260667899320860828125394923836406972866259138001617629523188625621573701586431608198753044946885999166946395822347959696283380686375279479260387759931476982692681316592191373266745109051864964230310718083541150215473184461375692824755160301494252567099900586249586863713060585853189401081640202947463044533732931417226935290066457870568465715692135569696631293513303740346650611184943311870467285705629111637694119829173182443621356296977210312343710740822179140963086913606350246644019107960720100792988248223957776227837966474937325089515254423085877920586196112726691497500639533572756532818455307684156907596157951514896541339429725074617901063170089732950538463444786907175299931048504923553578650860021730721087840778984916245511685769597853666604666403224588110933886393245006454190725033912906962201429704228377728662691104689990253281323804592599630288089913076418538219365963854787785112653813100671982791319659440443302420319897933344050041444636283487767420003487095114841807286547347066823525923803052459204042256713441784444297508441767548665599939300079431179029566216028552474034516993344465577488352093985974172824262008516115885634992989947129101285524203665939486793017380246885820445957341387901847966984304786614000415752746151232997987742493563861532582163057703685851996480220187335786993094832959723353566027596017941867720019237885263472077804926474907367177598839665367122193793689891809384933632046980294010626722363000957495938910730168796948388589792561750471374166221385572022068883942316293340879679979016311349632691157738170968102885520131565874207486316503955370592094347574545915256031989103223734315413981103579904858710490023106796204868225010674177406239745857885140437806185540813254725389286118150809504507226897100019829790049856902021688713993553342236429120593962880175771529904690828441785309183015261075335323688841106543520003106262956451439464378246880881992223340921024344499415109957581730113429717044782689202476203341824626197895338548551473273158367937476900714887435446965435410622375359022064244795889858372423120300899271212235548108007606072192632012421762733333567868022125511582126185553094548204335124182652888944238220778383780181466949557279190362875320541687688482749059022501903384854950893318965260266555000032032740577063979177230007622579540845165288847763864554345493261911760796642781560330118964925940177544581125555369066544029421257360465846223207209430393393584724112507932976090678968180619918509689486474155703896612991214825556775276618899068183264521834351997613026455516707987203346432971895109107988599820496056561062483302585875936630782718844762702561748285194008693564669885374791589449774754041332080996159698170335574047863754244732214350740199912884430829829200402723412470072595548837334020557449014508338712771277624841650017703410659424937671434188246295962343008923823511692799892556756804184543458617712729143891554308581012366795492073612864765386897258718122725558140403190074824776155960821930843811791146453276945807495570332093640211843136664305163021343151365859182138086394951074168841663753664977281383048838409057795355229123107553614607638636603945543802787657118875596540079127404410268224359210397868341655469146411275314802529006646892743092156912526424523843111525574419636340748188018895654270291184749059817391089799343858909034686059479306430894828951141718275903137895277755835987565978412369261500505552416330303294871410771808061027526316573961666540222583544935328562784895530573102272741643413426119133966514640219291991308047382112289650179754915319280003439712931228033000551745491030123190608675862410471458434971926297599886566416366088808001970980352428688352393930892827895688552605716502817580985996277447645072200632472808459673337940281828140588338649916693788248821879204999653039874655133788080429865446024070202796912857662904925732501440333357150753004277437331192973996579215420857869195703994751848608813211267108720714320603295211457736690999624492195698610414499451455198775291466034310350173581287333181825438677712865178092606159077897731874487924384943283901626846676103856790778456637407174089392566627463019176222169691951492381295714478157645744828316059272830497786855733115194570384394901859073613590911825088108614372801692516370656818142007423856491001125061975081725670256617178097714322961646689022671516127024093569794408980893970853198580349213030975857335886018125751399106905556567857386746857545271757624592851917539342062960220862261558194643940896426534396316987454868560081770931687979311542322722820304695825844644579322174667685663661266614206485899401500190577098721220681477981706388215577677934747126850029844808073572989236020415445841364483762726830798789268172654395171618352989823839362765297771623769470164330469638942788786602808335166624966529995499276395236081861518369205626810289523358842049039218047934743356997712841145853354278240175214371221466922912491477410687631978425613604282013934489019912737088277834785792690912272683262710284608726739788469197441635068750125784772098115517549515119939016002194912882752362842306792279941794062014364919452836338433463151846609698588236081051656240331865210583291442016003887439764961691859400020692440095792259493072125001765683704943829519540663240375456709328785562377987850007880522182686302648394110709985733671605792463783470309249981095620274025126491613518439139836624671957587616534964655232054985463437834712563964814938731699849532613793594064738826220950536955558810262687255182494201217429965748027916990472684797717100829713539426943982566199639119903909159091933932709394904370925403979798308289769165861261786946197456954954822730531224642210718363118960560146941339831756625871564913548191112517494896223019587028608624867380378995080313556617284598432282561183460007731777065495727592203135449465231501406147926410590890741520892740904136610852733857055446849654038149927484132428988788789031967548236016146222438653814918280994370321804802597247937465119825263917030958710135322747927424351227630607213083590650954056364629086731564849235069890047914424912302702124819743309675980547309312396806954952274891468606199899206455257596210108897586471196716078296651975324608877351559732676815130272458993939816421229320848259697782332099187703548344400266638328729204885276857184678402993679715139921380599439908769824792181462915447656643044123821812343049239966531926959640667893544503309992520917884172645287436479175346087017075676993964231888658860766118577454424136305394941960901895021205249870056985662689937434210061988968167537011665865533446486804382204587601160968617748218983214533715349460098877478440833061598690685280832390570786341643241942253974181411258289396870243606241987161904336758122445758371509720319522094981428860524958310356178531500271308033704234364187657623274288490162560836977686604870575819807642096591879181707129936924550362433565220205281126535891630889509941851443978110630007724479100726958837605450248147991184044895915333643933957546113192491576483126346148186919638455765003881383832538670715736756027662668350561036382418925446294086444213875022243358995489410344952504995299140223253708159200221801795643862074062425255191706582470370777601084460499092857984329521834873234873451660663258719688217890988985658318462892554044604119207570159975148443473099640225958674702413294646501049833637054137267081463902550586209588644685685861136674444248131903029335177541168352562785226233377415002434811025212120979677995582953030428903924203998481058285853631201236328186530690092691917650348626531509242334048846686515618335568839071008160778349321957919548279983188906404967541407986397096178904680309730937637908439945089800304302624941188109909541733036935726496360821790951045121549466047952888561902873446064825054571776235334738238829034970555105076642011291988075742644810711009841267155355516935906131091144031149006855493601204555542212705091805366708605893420251525876249229610732269185138771046585411844929781555065686700997852868456712047008202329881752646684864340665417253487491332832187478188720370125291597955751632636931467973156993324845760270141595277825009271276401241147019394542863305902299864453002983128218064673463997630050564260918441466272690374058183570604450875969240625026016441903539840540993267060534370329293765479098465514809220296901970395078052400167796418888654090195146103649354907304646399977785146035311878553704883523210057936284390195821570484801593867049327463410126600615064455008239880016289715415699473304935837886406649008094736637001327732842391306371539621244965015527026088747243195478043374166569442603315196321931514199052515577784319041696537562773664634626583132345709070122667323925850229653298562823258320450018631378441107200360172345535430159245649342867705414742236682398568587787166649513325479422506051346682124595819359800955105584019637610594210060280896916137744560851070638586985225382030799632271586289574730395992189500022079656370008153614854664454704436061177699851977768666272280347271587925111517628337437249141791814115827808998330907010663018696164124486938207128746414036807688163009095397808697371045306515863535175225063060450058388554043653095329592477655484370944290412671717733662177797366437027377725815763625123967112643422057126754067281944127079812649415959841099557687120422379631688412967096916624181659462264237250974696252389202449046949078146949657771366401886335091474001292028041147873492252166645838310336464451906556192474700046767598261572557440746726188808770777321952125414793036554687851044750280327986164700770241616779253685760646640851067730967107955979066826526457777304240013669579043207213295033416923633158747087801040622463184288156046536409726721951367515497159303459662076695666389316198098562022113352310952243091523614377609856957106872327506091440177894422037808343162481987923497813956777365302829749038960968804849036473010683612635827245730451167899686006952166479247806729540054067799671749871934346190840996446135960875217213760366957785578532920423080037686046332215924697062988114807199363409779148506893772933165862737951400695599429341057162076322750484866941577077239156333756100848905917038552030889417909784407344174152994593355685124387034524923177777329340851987695989020750664472982648438800541884281127563737350359910912462957527864572400654562514865375556127987021062507752891105760313048147904954302608290221136302611339995387672306201936900453620546985783621472910145384942696133695586352191075437730576265717383385138327714601509599989558500875128860587065967385702328464845149762566024531120438851717773950053043140164689467423992154658792871840954323993250828910033327534477014968858242602453000551181388065630286423831608186499261608619897328520034768370427919820026300782494400753345328347865113018377184702794982086721455245907496021380639192126921012579375249753248544238087026316592696522574264258149750312515251538424240936923358827483655105711031190762374322646698090940622734685220963484424086942204003765636074829880645823156296907662385012057985875485565290153129706299084354033339627118854835226967116800395188379225160916370040619915111852857729317002367883137708168148002263397680735119784608260158531210401126693387265695758279331024942710625715843328350148465314969997384686034098099330955295436177506120844186196581945299995089009421341540092022394071053224391324603340697611499572520699383785847163967875765738443619829393931845851031888936990191745124869970670623016905098874847630199030688232104384522063817618002932684890361760324254749731881173600275621422652846135209626942248610680327038217769195095210074570101249895176531425071256769544701610733852545440138586583225750854412660948621467266053827466100692666604888245341550317157494955652464614727142119424129394228425228320084841188468459029330065524827586775355195082369216495538407810072740540328602858462719800101931383380067418974295970653665499178333976908737661597223228929945357283638182982976285904453419842061043624337642591181694275982879614499076036410051213356539622210893428318852988248728922629385863689010643305158911954907457179381352634996917377087622888281746499854539669861674911770029711478981647896625812929543880537864037880959891053787977196660480643619265817547731542337402405974604464649245279353305859701617228183583578402815998502051694387800172945851153613364275258148625018219190408983707427372065615375646403488133258952436634621158554151852625790202672413157536942721597502618735948024996399444429389230673660585192072403659164278984073947499915665418056221012618286161727971450589097316546788494566400118165045953701791427767363716572876401899018773366177646394811221037849779255160234132303805883885411255535557461024820224889127332306875085556557597982062055203063501349534631606396501110855582399890537100043944486879717333908718727478311040563467476889035878960075739894319736011520575379097145069563918871513612470629420286582859358399790505790935873919913275465200700172142803448685214761329371592235264838333711513765603846303451439926307786413897971502646942242591251457173194985207414531017211416297989892888984582576819662245311604166801013625973206307839480453259342121743507014711147664420679632018544818100267483876090908271880495131003326853803926700489710959395997394234894579948377963266656324655567946799859774141249225815289066088461299240623847133541986691908372064546765864629898235762069001865777152945164910900181854269077513639665072185021313277094286887869770902027367177194710689427914688344152844001183515066151521853120613863778921186280405726763102531370566628736850019770988879509093922571023381218815810195749854408618718908983848320948366464755785325742032687466005463558916663471362507620575600653987116264381853988351855165553830482488651192222237045990646892725739683381585762600079514392159457006048170063743416849791333421155910453489726729299202194470275842541828616543107056670058754052429671434860255206381237407723100803100754621916715863948445349269457209387648508912089496006863843511011618043275131955730260586679982532717968468140533481053486805893968371355493998018609192280247077503061961026881244508976902312638662271574252002443617369445277148289475104214420159753615792542151262763398203188930054313847899972551361284945332338027050090545030846224916424531621535387389619371200983841010703301004766314425748496976469565062016569514248176864741147678816755492890025434480633441929256413028382885249855586761360095214497502216428354645862026164480684754427329923841992889563241947012529612867505893356312784929677102437091755098499132879037184526552524587228593136711420659473383064218445518222780691871735201176921360485013590617274175370041285725865164487854379357297770506432041553948898782324459533412550147107302060517298063617054388279299850574919942334671914362403731664288282773913844138739946444189609433816634271378277901720477806724745374728037738965882219868542488572314732203915859427728301642273122973160737356754381540375511469606302691486206262746481691743782595416408839615982328710450850189249019712261423380282863803922731115906422811406442791498444448084310411338606121195983549504140016047179047035344234224117399087146465775629268002576725279334298903670584126056545912615685143829166752299500267810522649029578717281187313663858908857754770511630273732276691832124155695208492709790100698231433990715818134456289284186624900437464008866343918141855691124092039853364821636500539956669631555953872615350752622916158128834702573997191538800154959573855889776633678424404659406336761652538955479278126855874985496174150547776839803871357972098685454020098611122459623742153618040675391612733430260816811697054100551068120571517545590808208264974711294675168577896534339897804206960617162432679729101261316265839814499866451839833280185613620602774709107879352264019476622803208659509891898591015145442829322558671416290467541276827854392230188438268316314514048903038099473558207724102055015927341591395471844353811083665424978848610576306643143680690237771336028263672446287168866384228656466769294662751416901008211520892453615320276395113112545566072930536554350771512828833213134484228909746733809647426752922238298732968019762915486957561339409881032011176263106108520366695947114194935265907471510597637938034247445481688043157591061232738731285288290519443926087964544665989335458576534762285647440352217272589456812919895581858519674633143115343880930261464005902585951367231108333782533231045408355689818421917225914460166237827064934740018102096756308699095335052645911102850077892651091921990539317261988919858820306531413816634573636919620070791318398714675397155555400365989917488946582605565706163028060222869499294295471901021700332744370909186803952317736028613363163310419221157563875961937797553473167667866428449549560907011395816716887642331175917265510918055878955807432955219864620641100527920094564621000711440250792662675380939449289526057086671805942106541695640505758633860453676077401730616327997195292714542368261683076652380369456812381749462346592202696045583497755820338504716880962007976353102209461051140179564408104280813591327546206471619255193555418790423597038145145717625447645003984616218647881976146880012053389154844180643550833415863086318445644160812321530557754304410636493278324608465584420703180404250696138661189965535695460914321448175142771194942015035156724758213201802649731708311846533600194440334262251028521142547845823343799896870326987311057982064993041589541070547013950311029381857722006018411114823447694775410837280538873935293576264304154483490976279702717375265899496125625213111007205181743677400445957402473231161082680081773200087455323239759122110530144194724463840542919821359683685330930413750699371350520920715600978204579970048255356245601161309696227402862081916123007090951845714995838426425692697571207414245981310079113269582694495443898401333625982112442472797786381457737262866078792852917210959971903219309802400866275975164702818066732993559327632828730164881251858085725972577437723898994227508538907494716281959095150991426735188117922939535529018406293898171839625919536572138725369182327067431592243339099984566556693295031524399776867669380157428101135106181123680769202178078125493885578124231827511241264141737369553195244936109182725483733321406615976150965824462937763067963682612881232813362644111702504523775646681775015518036920963449836080650441969413332732805100119902458203513658644730539693109629264162034540531603455311663888555267374208877447232501808177067170589042008633034716153898510992705715330503535930318146096669727098134208564900055626632855543555474773587365406420650612841656178300349216458841662699523545986323716272012603305857796838955884430083378372436871423973046796563314137518028732776064944237922077955508832355959864235764278196790515606912745261227841626685289807383402301328654679815506289418543523729812293999127742070043292794403370958362369900028197682197658169035095622404235780483897125639415607670332137932368580708180734373728647591699125087112455476332957639529513632854414645011033308554132269682874526358583986506111971406621134107158776499387420860560302483863346553727224390489040245632149446298551687937994350891774419009109301186238006111056224737028075173425971992160397451720285037085454955892939461874663797444395812950908850183463199965168124602054685793605895197541690541012572289340461224820284084126319319642329480903063928267944897455615061896553693656884459826461898599265359247320800376338196125926929640224414780504390264681797101094877469429461696041205516941253436331095979367295151175796024698339824664094854543078662233587750884940983092332352789374345446007802363666525346890664453399416424392910252297485900277407617812720212271048910100319742870812623205386929592743846795761574347945286799379114901566387744327932671074077893050902675956560248159603189747209406866331091691829097310516039396905609457400756066336870519900267754052099677396526504370051853276627603283101946087702876441845158052106748322420042368461353809427484543829697545399748158813162595638826995664734030552601949643577566451382960928956141644395433759371091670383908759892959136672453233863378849459483034897292825765963323791178470576743537572375641070722158452810917651138512530463886071167670426135402244380867561717063876225420070571578573548505689305486929612943003996810414026385729000071250369316507373508803087713000753283444623667574713077755200756074509399753551698694907543972707699061127047761451791883097061057589144855567028999783717971195417643424651202729031725654896152386049149130334096500587557348260829155880187450475789676880629300527361600857707347009444936722599373443414183729303608467908931250529373574890097274303297692625522301111039570472125332663064500543519349294203493729807543297183529024374877126149238828257659301006029201102882972357401381304573490106327429230303868134830273527476881571551479212551446854568327066207482403073764455571408216858041213030693853388816524017497026451304222628791696157420728223966165891745895742329004537837336415867336335667323412711818855926614110502262502984020801348378444453622596720260266939897520316444621638324602609192996499961803830918144726070432632105198650354852765065025308334760440191438853314900536969895851344223528249376147294509957399124957812668931198148027007371421628539787473618436473704555163341613103739050994351533957770078430289625933342878997315970110142614695796496194044751210587573500361029784223606319396537453610938980389071380932912382500815981393463529882634204656987647413025222155938024462514884495112132789246432326052729653404447811858754026378957991909391166946893780993781487337441961070742499428200858730983817752638630734231203792933435816629463432555793788096896087247763219034418529254804898840361667046260089530013449223411177149977950879039239313172271874065872306956805312620065622622081697411866015333957741606660004526770725106220960025407556912252016741123849464598721459271029664117944185123095001806361311119910656477450040693374961849997356253744711285184349061354761309163235608517485763624136898241328740440559784522595850413677641089534341022331120888347890367368093249810783283368475560748828098735100414678193613285466595869692902741134048638214265592422748449394781165992108258278474352923192861341606810113022594636359734704043134428747044437517670476557834287722431717940191213871754724160656921178037097703020376273165769675174321558235484173526541087407127366896745755427617305009970181314134802065112973077742836061531692809540978355717344971004535284865693824938388512332372466322201045804137293928613512876361606220888858605861416374641712766331604354234246554329438451064219038113216139480423674278837488242999920429368008353078388487914383508159786695107235348808010185192830112280344915443020964514995874323864284328035865852427657916679693575130024088526360021333020955128157790756822160409559986579949953133351241060466038583040463152203607058694727638805894799157995458152892761716671932969251839178310046476113377999119403357751283380382638848375052606475150802181375455358241323678127557581851519334777359585570055152281292862873034718099970966540887112596533289735028528021466553276993075411701294528202145982055581596602300082105119982039253009714043675370797997887954077405533027923858402995663162244231436220244544243610963636773029490540257176231362139304396823104586615387796071696877426814454567528230789216415286813836714692770015237634982070413121014914085403987737087258610058388202241655829909926741773652110385693983653568364028031809956094911052698275764692008125767574225215492219717104902257366247842876445055517434512440340518795848192706693327284891935467160225650034978602086278356052424859828958974114687706749563490595647304759127529311315776876411017517705161228485194860566544417843221443034846963354501068444067998869070071725571139805508617284743626341164104247888319754871304903283601319436001064784402008447393798137426983218610980026611699976538939440823518921154634473573738647154806748034504220906509959100443368538169511704683589489956826912657308259366467647023947450783909439161310636207646213172233204852006555373790083079635299605733378640551291326252973890036552193442317984135391040323560069280108268112963562220009830942456234084382119915365764043109676562450728886500233690879332498724566353011135335649326405489610502744885769656454726245911573436359407103419575122533391315970124983080837953174447104093663823927627841148689273200403426577765655547199788747635843346122913671802445287575601334441630871529867553492011397456243026631991872374803267924275046685098334282235317122477054729435762369787299400142707215284518177067588583083336946302334602068181917557604393798358816709188012838741390155117830495262896287289927199135993760773414331306885615536892353059768806717474021166615953889221840619846521720944840374514444527099780712251963780184631123536761936708497179699274810144483809188562846103941325325027069122306344961493712342196069450913771483567389007739314812314577209542106244663123493097281664383273830811667328959401460026920439908484135187803990436895612711380065685746961290757844822622564722593561846101094871664937378929011610633089086339062746628787031275321869588465364432008967402567261549549522171141744646278175492457279355773176925283532963466871019841025755631987160605855461217708738914343025401425895947851118094986719469005996030947821093449811811621961052879779168497993513665968347870409021775194749528085079669143817857502418592610659152730327357878971642182557801374255947228572328406299086610948371585781370441670987492185315716082475595106324974502429508012785401789737630759106016497650532933551471223386924147458152715974339752405035090234177716898953850404820549155748480004224029644190966263015020405582895592201978518767557401201215770217982301848320665194220944689403818457284085205302585720633731303183672119777119264834634427377356025383741471432677906647341919011594392129865395484383379307969820547564885613879245947698674590488435209118695811087470295565322383156598856020792934378473231123695740392306563441980191535363453162675408721595472838471027311682434381639035447064950260050560989245203723294642961763745943022598180577252532892887547998262772846650070639263168043175981861520048680071671496961339934013251547140830678872851310367745843136167791444294545934169739254606917901691996624486909242404330150651184881668897114814357652966681702063696767139215180201850319080634978768615075043261093339213898295515826117560492758097831325914376656117531886719307383148583384160422330332588594462718692445629482105488540939072688042852693945957258629978046374120841178013038618155493663832702368397575161594712249637880383201600207087194294817152651894454374579966892035877680588872229473153622585031161770234690823050437800247788065390668595796337485232844717904257657360396659545463099786971906897235403602010399841230016637790159920265545947173723879455103901035353142077405096663379772244720238173639487155075056707713920413573754006638637939143564028044764829159215173524497158520945674929297145384741122161884635499478450432123874788823154999903713143449584621454333317441231579650902677474862874633934531064943148914457844659550002662967881104343280614302648317875830546569649139534125564189761828902001997017917011298667995968955918329564689196631345396043357227596744943066398010231302785155610509139655880844534017797279270615021683130654632545412747306218733884788301195815030919562260478359273717805726929578517002878191275076026917862566759851105943936032426918777471154009673956647750092540717795327549908261381540378500174590480278705782761325070286962242831612300613054359242737733549589859846527655132690472728846701855785914882589128007475794830124769548762354382978515914571547226947345753074997040587300775785194939765315734094952416435500156115986290710872726448813167260911908967711124910821147844874727432803513881316451449244997941072383939059921284524478859114245276345824946566354804298409932505425484738103048664525079399777408977043215964973203657800097258782281760993946421479795047849305673579933130778354139908106289966923122203722982528559334035662285442556910826646689766231387993790101453985336705709994058783915256641860572214473606204620471001852130508719328867646299817778967898037855931565222786642426731675829884921167903543144882930534806431842347969521566100034458447796821437320963947805193521932606090794242985815579222845922508863047033453877418259130558470645792624802551111041996320455593384752562389205340527901266620657776349976566487007477489359015725897706643703166597182933876418948835623754038537649917447819020400337907622672944347372751668862689847507975693660140809104793339719681188027520375260621853877533969461241070850797856166221180763441996126913419052804305608844314012921405417561301998746014993006700486733339938199737615652666755867069905337355334282723999856857745886215141136881837925848611897269237110142160414574062515419259104787004095977846200859884917370455165607917404853903451074540465261171900478509601458871303064588116858160189659301131543080641512542384626455026771783276658867248772146475984178947084661827156681313262885949879536867403993541039223854851229271366663951166773058173393487747190132418044414215445961216290613242982861411333104975536338647068345678734629555096263867839349906144473155576983530439337371613751028851515413622544375541653246371227924715875703515883151385556385843268045806056690312774252573538324455999710220135177003725812780449036272346535052840696490939641561004418387971675982363296790544963888453336647876676215635333473037522742531166143116266575143647814162219882353238135089626019424524695633009691184837394899888910054108943248515948758302776030452336348619946477902113137535473504816597747606391439375587124305512003906048762820016081121355721764581908044275717358089650285522364932825310710052829389835418454650425926791836662519339086757536445867643395398679528492454747576389235643597589923601126817814921086370285664999320018922624003481505117526607117489426151501756518770236181256812482983150317994893559131513925319725459945067165290147674668675211349565252455164109823232868130148193745505869558718183904913662877645631588067732789528714769786281105268189187545648378256155882995630194982291245115932273665039389347928888566863341461023003327848165899973445030897297315277858085318697386388888011634023270966699460221661405138822096511679269416496612762496785086633412647441107023366740342274838685087802588109335459199208730016071791994596824078826326876686674375847161713436756185280303625735933028035543523493753412824995257288354407333019519957466814345412577397946847133031234209427298713909148943470326939400429516656364190515845539647409217789265420367919153362057746399193519537008544632912434652834800028550001593589398904375456021813501394464290388924156839408363901432684418957413780190534104086484384374329886330389331104643041876587686515027093428764988331138171366575211397014201010626019504580643484874511528225526193951724093183905526416922171889807295253982967073647524882103539818963225673507788328622479266978902345209382468904403131222515313711276968476485157633386183633103315591048926864538816742225074758274984803766123956400139081994295439064721197317260657865533481897910309391364954014553667403151056397505236134301858121380622041999994974057532300210633262339455004242372900887310830090715698036910153938087905426033228709387298862011055070606628721007166575475107587899336660623133919171783562460239105803470657156311537102669236757532651087664774105172797587640182080751454515038922920853449736266630822116287295463873339643069515261735400553299762710370935246962270813851396290946301699010391782476340083024051043423284938223216486002980662564403613567238959345012937645017418961141424666757580617054004587036780349694542802685297114364426421989083680150664296029762374243454118866588815899127242369690874282286516494971677273466702560704385356211686956404319601947974602924845854450677004309391758036490108557726905281854629223370419342083724861611287099320825415345657114794864426354034364493890811571667796726634647806446034993469656427899388329528737115301191147838404240918173149414041061849671835037892768506397384104735872132586073449633310900586345479254915272562196926974823092695228329484117973192675338349559734927813922395500667087092797281330015372825684089032341725479405488310875339647578126699964401366744381669594244681347863427162208051314333957407253716611828379485547596835973346944113817978030593688721385852620106519010018658073284037765821760573579766671864007156804499724360567258256836733029736824463867506539318588341482881627232470042485058085792363223884516656162746722192700908730606535886069775741240682741438128500570990666356571119841405763704756672599700225178976155201317002989569244725452455583879553491681019554216569500748402148459140726638845950180083913087189488496978500760254907746065837224641639882688649772257539656560672318377733391530365266808814149647845525114797478266353179943448022233530392643212538571204115072737407490753225970977600086125479691966919915632834928683286085212532657777330276022163359978634720986569055492379103941216505286665689181452446511847988986143627414522088033557718618313578833824089799153207407623443153434625389155941845676803824717895544837515618790006738990309204668943382276771052976076728728387014963683771237108678875481876975166677888846167965759160457162159582960203664089503500699180444803145876193058786558627321871853409924172476538030782813457477287236002440788547839669211973826688840427555070206190875118923253889499787837479837575672827041964277777037867952230473078124838884698890666729785364879038490517514644118805513006244067971223167491389137019696368950199331280697947833471320204169067044418875001086384272032492533198123092834323705362814131115099737577443149696085828975169265970725923632483770268291505849246985027893934327957327460741838646763381566810678252097567166767649290887870575123123536720352451506957411609179948802629425200476994038473812562819883417653523650671449758345034225207732355179436434320729842391378607259600014703533188003401672299449442227386009549605721438032484783264629250548851171237297137146683126199549322032239067674880491617437063982720926334070629562986806303310396838669726171915999928600662732533585354066345312715801441868005856329588775381125389976153900530974891001237439722376156292123725349194415659814469339740932589167970859307833624688686653182715949845756050877010669506552735457708020584473505832062216333805164849680552121487928953840430441936367494546591894053419614705534216625209638418699670661065955148202384194924535406150744614212844004583503908147799350232461818053405463187408394805304727230715175967098871114127519961306950176511903840342396894488806017609196899707462057155550005955453430757782498711375530647494898653320829088048509047985004096635914279774909681108309147349143252169910164817656076419785337988535087881002533051814449024715709979151712876718656971766427947014268030872452401244529646978577743750725194485206383734637006190118109283017557721679953873922089679630747578840637947718812158585252861088176636093447997712339445798460715575121171402610478998004933900988205437268809635326942892783056253959038507433415421839302202493855130618861253411963207865935868909998162332079137872533799680271031016746497309483952044689651485305998485779105874090429126181462839803195137229430554166406821862483597798251238053238432532051873006655809838742072659368432643312218368059153263690758874709243190828138229329761861648824161928828017215288943607582957691091956332069279230196295249948229324899404910292145009545980782931305258738835125102369088181063502817252634341947362692963026124044437833308902632088474773828048818856855850135369905011347800796234994177941830133051836251378882928708483659187265677372379611957539991007455269522838829026521480990443275315878960595392590910745047125064856175173524268621711772758905750041615457691169240721568477426987645062787252787566203187053543135990084646879079112522480770766477589927060225651726130604496093597177874186674625120920650969506423606031584948775817363690565819275822777807677293549293935513341662191862491482047071544284516961821803334626314391271446354768914881243269541584768647334171231095893209114909258919813118856153491200793063609579749782925973470776327005569800157415813228702411788122508815040958881295900604034991476727453061092076897982321187319588829097353022566124666849951099352877916637401434194142711365986017092343371780821196055094892124587812961178946964727005228909167662422173684594258479953686211697502219684818621117920080192322323547500667527617883981809328946626682078079685144359215796445623255319748744761187378176005465832275601010776730859626366328876651933413260224941105502843443349081266219450577518626225348372478411958509134395161498565059272629796460337795747933690871496339809049757735656668417676701637038094978122838080040677083219039985218356584985070272605887925671291255433164855036412149597714026208294422266988818419719546780725755798435728111108280707670068740051876305332478188904835033681315920902326547273481279530158344440629897105066799983566289769708392530100322850005883184238657520119007140238821054162004182118511765941763896744184323512535998638764956490204540958964293179871536198922685234011157514520689775108285334746946021132691520776031703655568821243740854648277389398212140290255377615679694159855918088769347338979233344485332188055214629982528013486402146182471880235797260897151869087406116265614860193232683071936130705910498095989446798392417808142482829845991801499268805382564786254191682902249986887699391093854519523243501301191326897795236883169353831967691140088276990795529298495076740439166804706210581778886046078692810141168497766194382431222453339400648151573737579475921435189719571759305034205388572367183845051860643271086364925624021867063477488638539543523600629644783293281027300090769531792066577346999100310929466654263977969545161269538654098809856926393403077008150663320452587900573890333584670110574889275823341852378935895514471286453295369422295888120725003771432292465699960473625593302431919106976560384328621611485760909838002913908459206653077857887926993416306870179424036279139061987122358242037094803106181247778120151682984375838301616684027875986883753369726785965493016952839322656776530695365969704135825445851828329515307358681933047374925895503619916831897640226249590848639418036776703509352484376661002203340400355960357013456926088659946030450399184410895566565034808029512043061765189514252460317936134001371216949507602169499934655522615251393236758406853968092562862040567865835171437732831736706842758841674535634320673137899889390246783062935164939265561444973851227237743781715725829955610477015413747977208029805243815339898300433178314450855435349591520296257217097458339363950993064377308802805736492822077783080868713426159108112918144569852121232784070246579924555839943584491214982777668483355977029779352792176200602664272410594887189049948698281874984548786713315816887133327856926388021942329676518709854331427728273481497615212899300477743049860265070471270281641030727773574142270745112183084562895670801862486835183405847545025053135890025399121643868508875517243361010168976013071401575128759603866750626579426078295239506886630838240547570634639231116862571852034601835217963814652936554391550659831589913889514340852095858756140391248602826160749002820338441084175801385315382392602723537134323738323716376675572039512252249515923902403927078849222490313359766141809246808579596066518533381282855697782569926221080040415203972257104664173828193784679768082185375418587422902074892017523115793874390722831640664130326971800500566161270716929046211866606009926089286715949386358355424106127054090338388858769454296038053139837748880187856228512162537873714183536310317453448685444077395774309537287599020200400877480308859623050407990253537948972219104041855556060987196493831640552532688843980047761993205570423579234117097224263105213358661709927623508549654937623566420889058724997151082228150769456094622637463073761339419600993810703092409518745442266311415389580760031845876494393029629385581921947189324631889389727439017069537590933456174985684295611300499082540664269620580728666137166332298872905612015447141882115019099246103240211571679244028124969312776221453102670232597769406831683712153083031432367622616258198218583456477423670370904628127080498537735693245042238028193765506860770078197969579299665601515916626474402685701131324970538936065364751646812273976989512320419927440352845082491752804060791569059166832828773948506983411238538755061776578384058370150180420697018431541032163443710525062164499652287798369815315013269014915582818103379306568820553602630217400046797537199460332671345961953007860049048096078622784159898464078608683965173642907842295314100976995660214647436096208776077575764210703583477368496087098059322366808292751321789856139512177772528926278885133480925555938722167727322897470198441250886145154388778018807780510471570741720224386971708590236257766091269469823979638621385172029348550310733920252334604652265212059579688580284649727997426785682626816034038491746652261460651035705040789718111103901952424233204962219091810586952647920858785722555244523565188182947716561943083575887544861175726846410989082477670173375676861305787990778358684363539282455982473063969320417928845811469784577149714718514719293417383399528336537379239744075945031088970240196955111517359640888885698443943981890911274605131773203372256862490821193945557163408431201223693283943316737113578833230719717989065050748293310970850490666668747305944246985805000314264180499164058009946713032001366358146163684730255420991860851894031372727806435348073456979620338511040922999300399544061667245391987027497160528288975542609081723276558793147583839124022801939190366760858780706783023789335985493063933686557890166621060260618635998310892932197294837917234224960594279021597712493418244336593801129813649421923157483809794630222026451428786337336164681491111861470796930609787191200611191232679312746244425229638817355959185244978101679638662406428396708246985104156379784836779404929429519896792937868457471982568258987152678835123374767349973066265925553156224832785746646256182060847913058606867069526343589376639426544920263828524629500674191935530367054982736872544183473995408792279321524880150221683288979996253237162801935013183929398382639750443652224602342293432662011081647319323352986413350913626595922423332296422895054386649411544938935745163733404029286727980260509645835813987390671647964172645222620250757541989940241481129108199470545545532565584071714962275733088933394144407945086972375467475230973679675117257082969796848129078763900086641348611812849352796751356347147551092032069064227091116930662298406719109468803478560816258675041706840020643257863652957308724453671385727609367806734557962067411066112748656052729189180710609878488863603720926709602884281729524931332713425846304869718040033103800766536723164875642418125079721581869669493376403396302245179868988802313590794955498810036027346826967747526049352970234570320444970001464816519786648323477958141301571015226861057888896111365398986320167777959928552444773176986226749708237540320490229339504324886275085031409161571975999790395802779441270945852607325528393563955016278666895397058772965061661327641150627706858616218231998409238179034505560488736642971246343967802194349330560413939404075686431283362093660329378273502647023948459282256645908695913149118112062607349535452094710118051138290051169171168161325572417418105754656453726051403466181213760850071563266579385607402381871252833826045049452307114660314330831044768496795624155237885965247886277679525727582270153794661189883906716297878652572953907055502378987134478677491407350445972367908392514266630696644209483840090861933098413081521966964177629847231164110755252667725310925227152860997721876698158440517426807073254996730051249344624621009644627025498902140250372192262158557996545005112381217959622422805864924470647980034532696514256451301308046007614672843137412506848880115326224788000836595645379598328009125265899959613578437516517766622986577982007171218110523858869292193200976589408616337216075637258647392319822055763428858549390970130003370277385636685317585465791765348774057658925138608987286528306446065045137330743689964793694524357683452128582513242048415108227604067744615440066618639565054211239078808170144284071681421241230803022108072816833731720017417933376077615948664631983336773192817465819698086307170096715402597970494877819517950895156360137969684811886264420445076732440241505685303684664442951509755111176798462721503053228177370989680359403998066366529547410693860377633229900616531661438054658507013848505891094724429529104804192619082093050892564325577463326510222727485932570450947809183396585281852800249124853064123822161038637431748009906620865262538472983786562381225724685599174900540649159844625953884347864567566832932142861930965437703546840293315906441402928522440052620857816857769446101294706041339423689238105156294924829491208719343855065881571308123681562602394254945859073759577741099343010832031038903490528351002687817165123736137831365938427540560268844311438637177843819911765004098079335946648949550222642075686635017851618520525110881119775079701136688021021870531567034346483681637088786025020742434176853676624765057079859563766239368455802914212616864566650149084916631413319075333864071505588649494085240110887441610516446684303386245368433276895294417189382254855343510259626251763637982823872077451782586718010782528373283473442874116599893526094334769576147310254392228315084505101691235495731652559614515890816824335037419332494881815335432589655261981778401852281515549829760156051489469197827825151862862460117139486868302201616384201872855762965713410500538512938733819886980724363893425983481211499353053252847717702083371532482209297867110239277704778020626782564514232841434647038788236076401281036167350004542740909961074356963422080665501142848912510895854632980061973212264190702679891549284476451734182460535113858186224156153231041210059296047661152712077791019397782446437820577810614441199139946896324702407184273400670094146570737366775952836253182707345439107369000732608493169080462841553161356696229233203011146453359924940511543290220419495227576894703845896871282887467869475234356275093610853581134992928996192888805823116739723764945236827764255898365972475951668859931561561609582727985797934070416855339314549962856205009959634592823047596409676445048816239296243111966001523518874069189908288650460343676472137940738010071772940528782190839722853674394002933219835669615796808230546815141993885237187273842669460682335522597726645719299265351583017924159874474965995277943774807040516333290192264205499169448548283587180398931292947750598772226771711393451535069691435826175375683671045837128597446661263346775779755712023144462320543593112518635425805027927962219507303719709418263842601272659275682412382520081665655699832700733029240681117711984166072543296704780265781462287221218334978144957100421457850852906812096805568667667136733494577297356640798657937282133662306497226712100600475751419865318638425722729699722760789919648371133024778534791234818641369242700806257274060582823566171852253308241674161568716390371690342860637841527683543049952860859528239183164406552069687198258118891602329285613201298064316115701301690846283457592334055189621368485210740875234671359976886144804358693883807669461496501740199973570876455537746127665470474367851392286961381577907757897061841410123234920879979119790591759260366939310383457159238901165056122382640356671588413613887658293958840060601856775504682468940814687903659269870567738867859701102932694854681612179981021005071649315523081235029474427281343401952517334005351263576385551064713067080225507587518218556207345710857019677276859503249642144794268637311746481243807383182937050981049755445022317217368461887492715027992067448367957844000214229717389132665360299905051859957265132493218989095489449823368800049324982122585087156703448645057657958818989610707477486165522787229166945785911995829910057042765800546456575120052154496212845691863994283898782895380815742305047285446519250813290660847494736499003596363106542522340785393363971286353069808162173815400469177278723228655538515852596723544463872716257445267595352376369890430672182563272449166426072497254747809021350226633526376589535912968739471961816313307627454089110280199663323306768550142267385485438106792207565333233349018403603428498935619233672829607238585802438189350651477512977335722684161116929265820733956021602060779387695252791329925760444643426091280677775468998814322738589584008933635870494943949180707492604461152971587456357745078688677030716455300313266340567151580067431480157849236145837614014876968318890949630710554096750209136508558030703288101548098004481437195279899838114840731109382171744189315125388120227354941281543594884757006509037715792216618571395309102667245528775012862532561142351215807232115999451443331282238145082130126392418200161365396081069207005182898884520369870648625066812848643305441409860766355690879551248401414367294354262634617621132597944219354099671383120858459516902608153130178572852454815072051146604072750723015561965255281316059260451627640526331294849318772331690646338952688563924471421239654441188006486140979566473947048888496485579008164075594347147528746166230192050839710296900337045674164683386323967448566443879490689583815836533296294859265524324921075502623937033683879657470147552049097577641606057457107737381096214204999736273395065812463874811393825022621527808827291403549110312538644620693573714727307420808511722670839890227425089926480371312723421073308093211144775934488503294933272137555065100513395887194506339978332523207713547112627772057051312233067685658593829084725714545822979145821817035099509433663540610350784750378922445112919433342284411027481024862870813483706797261707279957327954904889649887099279444398240780837931122775331555400175945326391498971881345180763273715427534093508573202458829214039799648978505821412284143321007207280741359787180488868165983660292374685706794542567590390753053635728430399060304307239448580201767546228291668290346981332675976813100704995537567405664265562588348964858550447618536717456188561265503466599029963137433224602189298727675060962042031720873011853617533825479445707056612894817786613136911214341777422097048518995887152912555967925800762902445899542865113091712300997897180380753591107128135914355147639886559734122376150786335936993765377058328447612242463385300811726132511203375853625304460192117744921008310715436856038501028880543562296915720825068582586792167924481215135512736081251472930225169033144791171064983164885743563087473857659243300320279433454404968661504678056951417889406311164006263798204667232306045744752792139801923013995536939177864099780183672167906745962724002317419073803402117668257569386363675029650715985186240977324076018373412366488304334024571013169931263781326846676914827637665375159955961323326916358227885742725005984525084766581972807901786601298354379098397954344101501978962344636672958022119584748222943909652734890823063385798324155222722968698548522092407212699652018215685527562176988528429468385619373770314850591110290813980622099255092551632971209931229848632174347668258218348069039311032983906227222806997262439777409598013396980706972014823243436433108614876624651493413978733259171144542716601674145450735128456855573539704793087057301401792909097691024148336468619040862156803739434650004529820458121463967329049555595313499253771585921271996029147556068464128565824186379925665831928996061495634591165820186614222526797825400435427590200928254716918699035322473374352085455317986184800022001052572061114936711786097082163581250658169230823182473511375612988999916726880220745986526844733597269183975722255549035015203291860348122071720124362539517780462970083459994354818357617438734338825067665209548952969092708295989374287645845363142926718479081336605464486371264789893853752472801688067826291636679469050240895541898658249883209910278531354719820338480298251957703710260672182222350374725378400680003229023087338603767418122629233663321762050065565674354483231852960381967934098869125269433583985534199291985723602782788982545516209135236502961687327155764004375087518650269784355544534441269486049212809987392614652912557721569899776951464224473588356031208159438525713268558220933899288273618158572894275841921234650900990584034071523508758641931746043805498094082483306949499986608056333981575841536306397902995644972162847873921693640284063314970968025562859889982006991428502422910553131624781451867864793453784981640315037010616793115312006487158193795923065570612101873521116427435717420844622667354257146277495383327613882020311491761356527363432895843494733052015051386761275932920557182592240777575744978698250287378520500623437582396913333471151999976708420340669128411214155906335466007110367098085240873201646772288917695684086093012988616915112300395631328479569250937428712310027299427499772783021872995327875103529002716680376458951450840132985890520279143692771998195954260269692945165261661229418556706959882621891644238896596212648744289482863758318917544493165950592354923014781242598990457883819005354779411187996156957746811806926646554726544858727237896993921450009908503604135245238785861268600960406872243696793417642206298727163630664412025377626972107947490282960052532305184744028436596279787878361336521798944383919800243514179755017846688809881592387677046498005005042571946476389465100156698432392002044481058276495227557680413843473398494491389058774044984939641425809176619999293942501805793559704649801355668146705873866601024710677499966071016938554379637525112324735113578361291803919804737578030100308402054250517457537684534366260524381555522390526891313317018360304872347457917507113229639544604825909147560241297496796673685502832810059019611261686859870556813667159664851281887402439716670630390893531947443004181994751630537337321117278664614327569551845870834458661303888512191232667379114889732292691299322452957472873610606448039691396946452433501125945462499234975691021688317219711458927065417150003597883411418655982347738665591560183207669151670566553835551496423002759383519567138945923246750648282238668598999527053869829078134846224159743630844048944473132603312314236433083432132925139992379283510876861394242109160688536287746321788404901449042225123901333570826133887106540310711849907594632868620779036290261000793620391330086212141184780028029569904003623631250642468621242889741349061481971070128106745749850352118027855150248171541173207133018793906942886891829190126138761966010998043376701905254498104853135833463068685650566237765920136530652098019168317820114668873880496990745676971049591248880494041857574969580553804393960609667306867163282348681181869480293083175954021056861023182091049182440668677369287352840461102763219166189598295914093738606583852056705539996849059304518712126017710887458809792671066804738284521979874842851567965981377343817553715078689521378712151358887645175613814938878151029543513308685182307456689347641785803702839758808124983042226625419641231383890605822301211824920313920002472524718498707177950899401821962125147833177235692219374885259794172112716060506264046726708217165146881241825251871260990375493764574431915584186483939577091370395301091696795975640848290911271364398601330732868823210685648282749207183214916061497469978411149152101353541624407694305746323724303597486088430045228588359372011662214671626648042351395248698027222597801858033126216148020885894511630860042688637993541230223469950327529916784329235359650957233663049273687480396382241881833814878127974051344153262191431929208125635692654876350729989924335671545259266215845248294205088057113791215107738731350470340279236354828873391133702362332410994392761321920708671144986352657627192930348303897134128619148943326733224572698553374632419168250775260015226783611768698984238060859860691583160692871775721981299419033533915439563259208228261498449394527856430799619390080343495184960529331513564823194786473356357048064657238038527142347582351896535373863695172069847780586674800344638670946891310828256899190053434976055627452258227782345602135464359917723923145469482177184659003128208328728694237577811079148756003389202034299519310134339809398628448402916264800794904614563628822702126010362766300070903115498470876153242050236596885503145848754316961660521499028772342630086156701048245644853111060168319229726309630183495394017621426661086834657643170408001081612012027359209854221285824675299517092587044281733364187558398336462311955563913068131841899065787297597888000708384833407390635893143300937186288200528067111822302801311333570769278865592637251479800678481514468112064217070203502250087118199922554862559336489510035636154823730748403333216861673296798787830828312201667028435796939981670782150919734101845650003830493150976791199046122395119647807948154868658593750043967750836349181573939678533722940258847625189690294119767639995812378222941204729273018123597043991134458361590645979850372132677880114621991639382677336868445535050628491764360354615021737842662088639866932709632019743941239996409855676816553157000441422636362837730308265112481811413400953468889361973447082170159220578984045664772719017449382679315042489237853345668930990160387325416672596548714881119720586674382672705959121193794947338285170515369916961967142447082236432781799809538184742562590720552405128362624095874402412794465190154532960408074066534667617238946809695060131202248935397185667885578792732517715181157659485468767699696174814910789086803134093831851563680331926209636541079232548013234089518895596217238439608821618651026155743216793608718421860517248803316956097771152941251066719848722356305331023588184232684283611463518827783180318995566659869586273936230493856086877999757473452024542565484073346486309424175827927513450014249192388684877076831818448211262479140247432621808626933505059975872662869357212915124034178751461074085262025811601921651159862552406414279067099419635462157705535271903750727398759702485007667587447573294484150477887115565088602027314826634990502618122474002909040224564271004746928511656200286699592628845138573442538923535461343797804996698556484984622233993000939875236948951000017258285336544713408844342105946877791288963836577816208972936260146274804922802785074374675869484218351740725145020947200434752493861909849596816360760605843558537073629853384649569925469953228854392466577796870534695078388787991178579083470439302329957785396141184949256228415781666246841944736055248074647388976448637388440695829201367765291930411301958143004939915659801861977556903139411071744159753622113184450278853817111679749248436584658137753752482218311184104520400768691255950048017877348626360118595872594507088324149496738562703973570836161748436272638699826989094033497569315788201720647075278649455386653717544817874189467618707151841202621660123480753140804436458591925727767824543413719184880632109375361415159131253986493565999551757530876135430013071257780108005503557600269199998828121991535602753278877682585239565939852441559416153107910158585352093669577825287448764213989856873325411693199739302437507574842587669463469648095759687768669865925627915586481132256429243737191435816206809360576959079794293071384622510597173091419973635574639312864205565879758866989207609469418990588059575102128847195860140690583095071599163573857490457280930854524780182993591621863560753619057404275865217712204203789994068693229215871635083408433792481435527387061249676521666596427677114821733353480960824498347821960873691027368606895819948637067463149431770299044672919622001963377462473500021956817425246120162038489307223869579455134742825730700165822552216844256238267764482380466339804655699407153601297348402661928617157254040926203359852809569912556313088103441926128831187088049534077829103219073757603799766959886116866906242446197625890330585056767665209376889102285712010145697248378447283239169196412973751885177770560606818867417045451406574228163850399355438455945668231942398882357547517694323775037136925842151542306229149832950082815993023971472399242932614407735438558606863147775310537150727491805927627301028965400014397889997517425392240976491590042756449252549109906329234301622902439488193662576117037719075367203049035768272056551305468999007891322246546508385532602100443232741716847972598649878326270021025193149030267290830136344519999173945014487547459268727928011314313188522476629962203615708180890886569551390235287666813510422605240754076673296933870969191459895958844874853560227111548434951872237073849441749779548670015688741437242378109005900207093482148748792063454013519000395707971825208323400097225744477468446643267954273482997669335964416581615482952393525362437363455563665695538436124323693463536332273936625637650085000830494181007268975201567007538629739013551040274020512319224593807079869767810518736011233054936695034065980340497853443008290355409302750687323144798052976746873085203907332938878243050651231230193178257948479350630933760333119366473677866913926150263170247653466688764144935002516046669453423533560616343951523446330740250155752722185148263603240529587387711849225739518472529761915214847799334503715696593201106808950312206818867272790215227800219542901801565668177056076995870764557016695271497580810628093063864938213509835083458134679547661117202928020760156987034867062863718705543203565882064412368971860543701384598473957588612976152796925554617407448450546888671437579644334958374449760480263768264466354936376624992503086578353391491219252010052380847139409025638920732176741901751614251080093525003468751732716562000236158867107578068393164355303613139854938007535312913156731426635214681005829400770045399001557955958703201368248289427652554903216552401276530159285522809281332743153662164286893303765660001835664272615011854551261646008535254907356514350759287294603819423368228955909022319447977201590057325703199495251203145869559184685422593960171545590383603815534087340827972403092056278741539950710241623718807763251755300162824708169195539636180237042300865007535201615367973549538178175814028029629636623438056763340232723717197790800456192681739742344085187897915087817637851880017433239082928852641762454294069459693115655839239775987695672983979040106037095232850958158653536767647499591648233829786764764332512175653971270714423867546903420859237387993533209580600633982421481422968245448690499219486788767241493232643634355917976185267504146579150007646299027318282319854683271117456407847216347011546794112166261824618190247335023700751068497885823641006057513421756086488086194791509870112083474103168398829120205798521399399469246988466561028967841854334268264741677538215144198366486714853746839326873069040379831446847107531634963887592785699107473471155430704387229093147920718543811392881297474738094425650860141598463073858031463036303137351301247853481194084489106655536632966747401248313128056548444705575003793408840842723630834425441263522296402898512057643238906474297354279172391069508980833750381974589708406530775474818089033043709327056428709343858141740046348330113858281886974632314183278601880179466009792834985049768884629214753989641716436076082987860128146277787611090484184238972067185325083056744034415717309801860509673802987220084454643552409465013826388599927068119395302423933446201674613068545990105666671815172169562655483605023066641552494859677353157546393347266172870118120001456073579600631614887347588451571910396235455796728091380982420557593522610702504475912434157400764467841664542829584736711017190121612821783895460458738628845249074884713720028458560493622456018286505024323387351780172149898806582669533881381338019354514735655539285383750040507034530831732174655073989893140094659105756793283761885944662768441743245108252585603281245212356796003736057303519610864078599725338233146044884427808997961917580744209556702367403245974328024969751650969372083018032073206924286236794141068049132065606588012047511731687338847780419518449437406777746103301643417943175190775660914093666682369637466237650967782959938695729465282835170355403010163860567097249836277832230059177994470207937060746561773943038257537743344804109584137135853796262151330058939915158122020463476053494139925263778723976928689056019794518573203389405519919108725222903195416806733620816744704244579194080209974447454497592545582592073262395304028699604424026394849397348109083279653432395355005391663611892160959907649558539917000898230833467881300896973257103083408505649321602964178794621531466871579990320269209919009199258677742799463419953505954578653095910504338126329286597145058950972343838318477316680403210318406714196345874881699569899831661498179106891910171169973859299687128155154746686862763865837441225216404830281547565234789309358228880529099652353156972234571491575810511356482462547135309196548448765663158173684207148457446619557070403394697656328620325614304280758731501709980817154325979467779956186512147736304240235333646348447265609884802266944716729773918527990862474972634193138859023397222280730419483449915875338204823369174921519410667860678473155799826793573892622228065974138299395117957114422048627714864898649088602299328771623715464535802638393740797354307487692582273094671142246530583893536652776640625267546482416098091730606261147427326040093327499174436720875038597898942357090176692355485491411588521544059348386458065966402465600482865272337438372547212606141487601502617342404842072390249663935334893762393850767040315584286160241065077814934857747454682084247446634029005621755320509336187690849011088321312971628352271817710298177676422275027281329326657818307514034077332329045221661615887285686212527476786955186284719538554943179624510007421872912308022332612222653850998426337592017720448724080881670204727902555246453836420321095902959603238509980768015231978126037307880551740627589363512213184591641139760723496453964935918198788987197531068626429445682732759846396296855025788604746509057117228188416102820913768152440608932609982168464567508339201628371381615997333521940343398575565096551005120215554276129347418106227804544413415316434885894738185078587594809257213800590739120293201264123483485520049413412223590829206005795761208635549585024064236783961934924052775971613871279204862714909226627104505944389522812179887614186830814540661866251509190020760592105309537472980679435286782894712797187495853520962634713121177659448915937223925221551662477768601136581326806746236931269948604405541162206392615452281487239786525947519999175838532762446046957516613556830319232842785865560526189067222220550220380743966353508455578770062972298111695263982696869730007379075826932345665689217042862598291810627203188255927918394382970441009617903476973644333478518743183768328016569711974382519693599247761017568141896420255935865595456633343535604174293553252817377195560398482482728260051214585143897330338887037327263299407815173278008295587803926631694025352218251204298625018579104449670592321444110604801656898103870868985140770093785662613549665819187160360160515520006591217847263063060141926438996699619803400395995991544774658764889436336367854446109927859161339694301852924321033493095456508520486300008530368640136240964421080010817886213238407579239758676241322729699700976844081313763258187693759514515312096067414220958438475845076373268856622800848461238541772830524189535568384738899597723987055254555754556843159759647145281384439740701467958728667511893845180508276976619735596007973247971166816371982203369693826248301550011284572032975820479344783419140091731123378137034103781258878664093188641166212511743508083982790878067148799833778787444347574495224614399393699855420380455604914816696075969275033039919375985428041486810101263181515709269144895204263090026398798682792910279014743378105213674073385829041285454963222274642025306473283830477990704512802587587748290940531405793086465590064310490103133894549700624501945584039228003409035983406118392702865383020370456195116572660693968934609287953786277566396554445394917900883467945878527817929252104387032823727295356462843187091856605086106487296052863626462455647004668739903758019979434653662935606216344872692214048529431566899964815954047753075262745333287910221673980126874212343993937408538639309105623837432084585032203755909270685419381392797438181673271990107869026881805600390740638286540471522429947001803903100031995082507874091920346498897974891161879864213398739708652933991541974977948778427533972213565556420469335526584119691792922155335058968940885721218605724274741021229167320148691275217897576625596027888585071655241417547044704893587090046243478793006740910149612275251045942974005977202480164604183306241394124222560103942409731972813893483702058356208157032457014802541257661189311058118699505652835430219889087469344186002293619942342499325962786460067688447960742657062768206398852545537223802212068394906515386547081782283216592256571588278120503311812625415079386310240901653526065879555707651790011668880249142907586756333708338519603564508777866453569746181069541902722041766429356741653221145469028072073264990052630397840819261352247698984952996263944524963982992562023788931291341006664904693658332172258954001566755773614895668355446945289303926547488067358505407415899629909741261151131075966487196020217005286969471887277245956245478462841534291346823141799104837436923895429130976651394585358542811737897917129194328771872191108242322769748314192790354558032771609724503157013203664492692331344587218693483097795284195802420773573027534546041790558114817242991281440818835471516572691776238528337895601411661944998890172336274975038817234735061433412983176307584808531467957042501920089066741306913586067515120363570047104614674154839503723200391695021288218614652511793614780946926302755614370982435820784108088202727392428764947714201299480152607712427893527563247816564471872081414292084754704294951970072485336369289755615908249615473266119364371202816907574044388822003171486611283937536491754171684824592135739442656098914289917501929592365606614289318977664943408175134017423584262520485844560548687320696827761653279796737624518438628919284585590923300779609526564984075111938922683389875386651320757096729661097434055180488232724360094661999708616686475143364709906347838879529415217239441014302763105262064923785915836216774360029764838233774042805944294599738075888715207107920039982250116130139484178002536268998979222103566176298578689834080018569857940545207333890611887992315606714708740238477679297032405748357077247038369595595379272002334950826608817348092084209263222246049650407112888525911464418700049263690473101171981129734032456879811036964722662261188496602148566246881416766414135093729046634758383051794969232688734973917947071747446089644404843142086228198043065511873159449083868400072155561757852080429252257427099764539309789376262317005050560935543281673021197897608020593418046430589093918307076919735384559080786948246799403905125610773827763355578067627781711250960996380641479509969700081549976564215862083869297466994644239101307067094123260446860566855828705553482337513429451030174968836793178813980744023587158038192826950313934497185909453558953207737062467230774654992368436797131872264787412952124922311494044724290555157922672568802174094069176361599111079431075121132162102113438072898632965639924365771632095845737143946008283386380105680148751957138455846166451756838615805231239725988787131084509414925947948783014251583219645294230338674931064070335965288822653290088277111162567250267311118138830271931195013738579830262023612933084562803346114344313387344923682902251373919262290458684618886530777666672323182737587497162561152018679647343490210837300125459682872896112361749116250185176105981913862238558634748196200337311829260989204641764585538893104398625385351446934770643940955988903042530923931064491009213569984080024658570994819925936123370787307775746494837333726940121064280098073127206856723956376085526542752518440519649442993483522281850295989418716323197262406287037422181570771288556172919360076843399373013104194963968156992080240449912545354891045811168365002545603161871546823749412691168605824526030128514886984923823896667500960828098032800574085727651660385032502573464726079308482509508051427482146539834804153574821161289618910870937620949687805309700851683778487589644380923965772623855777129432200786537696749295528712060985534818717785871116621302306508061717591781335330836189784305335774241185648628252302507233927946405015576518849729677318683250192640786655041360953435902392974259095686923036697529215852727082295983427965869781748806813021276054728497141497608424242410330044735432327310159241307315054736027623312438680437518264117502779263017024770375242199273785771812897804051069241336963891017120739462698266325836382356197059102247403600066379288950787848739435258605091467008108681292671911399574395362484012932924370671036477493769399862904022151886921651125685649405991382722198443516896368510380677736702552403235081536788526597086472142626408254127774852992997878829962966147650907918847682557342149885573249808768539754243503221717846428049949079767282011008280025045492510256767978295728197809560753222060349388703866971617806470017679691720210949643333804053704708659766158984666510398704421298331071642822666826353815395946399370001348154730509549683771962653978640127921107390232991136430173338156473289887546633616449987308094083164747144901842284397381375882561230971410145987469078777752352526492775328629641662448055569209199769253040151487410888814011034964935353978148169771477007477551558460942373708206395345746055037253297792629844673447203997802983073662446682289601578369473709145772932392032687947809735072173899303978954842575127369829811687057782527989771811503984464680507101696191815001704311518235787846080491498725242318431125425467040805030891372092850231739037905737592389681267111373031892052927132996431921879803555987244338472186173896181509877512084934979242306308138867611475260760100572205685951460862002215395872367255050588726702582661924042150385590012716262369860409330957361858305319829772565063501600819129423752229133203562103570624367455528373737410598141326893703144940552022252114845841425322007099610183807934146397623642975553398765224133011338759649500192999938627747807689011012387411914020349577725119311901868931336176106269987430015552002762366650846989122965276311013197281346821996124537282626451182189863820703954002270560804963132012673057759705554580736043268380178362172412223012581930763034912426444804388990894022344444974582876144291576593012639926118614969191684639388415252432001180618142680840431421530966879049391930440151351552407568152167876240904901662822724566720232200921386359071602075252230790201872945641097687086222977262177645983735843646571350134533038286905744332501612323516999306286115522792474190715581656844175843488209953911941309263980108946706270741430771493342836120989585053755906017699093347759500243924391710127568147933604697024615085644622603790330834366418041010578386701155122793066732513280324724176768560507159566506404652785189834544133896074715996071231119841980636605138821345811047276430022154080560151354309624815668234862114159755659656296089744449315413672555068542168375057633195875532362857399820616206307569915846634109589351619356873197097557340410342766022787264005942003722676490771460703423102885983950359657580168091697797607915520807812539572824796653487307596927706945776924115469924962629819013656706458651443044794612545386700237191074367856754579064052233903560963720639676420879971377985418635173992863174717627131877617744094762143158667989680447335005603689263989968995264570164876615912515776858575396273830063331094394372081798460291791674060333341804266405214000676506624227972936591855061656093176389592951756391649702382721398882585527394047622310265087540865142816577049701084107960976020517045759054425225891268619181231700571288029228113256201518102877668141366737227098228699527864371423053111639641468754074657244106481775700746031108676625720777624241273451716267634964318503100173289488075858016340638604713278355775284602655539506435905425605183252895514768368824216525689046637207185893902289331705706584895852533018043240309708237992820107406923503783431602765239209163991175737708252270896201773125836384388345056600582904815942542004159794161013960557295399966686782485313982529129142865106553674831586086310571856093368384258469694565971780964797420115822419757887771291169475187455240900616089763465580038652611921653990666766394685682502480372325316505038062050689522700633250413633209675079615687354765116639148741968176753759972938010725657842172160829361476184131038433219033924647850891766075639808702115123853417191249410791869831179396116521957078153040601161958244328892133380305649761458445712423057251376895715522631286527481171006384909006928530528376416372998852167958068554717693205657069278405279807827364673005159706405263991240465920929052174315999151260796480002762601871839021044944321229651770360811251426147344438463207711580866213486839647286489538199226093030445972725088019644640100579356258656617525770378565576517344894294678720747631301830539365174231044269254072690287447054942398512382378711118714542832617838018959700565436443268850560539952744127608694307577484610802758319731819435443202118311703824025654150177971093805596534302682958729020164870736754788876733424745832455220052950587681555123313519435314397613141416973675326222159516830201091416701304836997927887215886301617057300595064138316063831783056711828681589330111139771858556621678491923276280444104664496681742575123426111915986051714285067668267532174920748784446787476532712797755797440149348829371143695802830303658368298473832741857038705416454508067020467360052360304720179347101910945252763966205313358356706396760807208895747396696961034487062813458946739909404981809232777999427376866245106132884812562595930181371299546476956551448159788758383227429824995737240311103486405035291005672233017053513383331122492802654111923361422341279674369115763299539735815152624044652726570281575548094227612222181915539326916988163996543078880630928404496114396911002832088048946275162005392481672298906177016937015904087077160400043162515302190224887220678753745629317671174514664551677799973904922830531858611329791576017696251359808576276258574971807049113584644116147038834667191638630685617928190772727604287807040717927691099742159698659468511488592170159094043884576065889807380029252286537404311896405213896984561380133058544938864865582110655367141553576747712338004201667378552879198275046951024223709664629367224867209998735575252269016190157617050487409010420150082891020956780710461942386865548666809069753781411370473018150088159176177663784765308480290677488820090136378185567990315906057234132604199961322332655085780557454796244358691744060986116223109982302422503189458270017215197205769918243648792734217651034190685840601843554165034116357280361601809092185707457939987553628039538838786820283913266338154287647987324494748649193264719981523674055144013816196569592433592571604674731389388134986715282904396306164225465992206544605607866231678274505358074572006775208412945314408626303758273369109118913872482623672854570131681254523769914488437987753162351649938210909847605875930406853207765744209689512917576562310813422868353954868202526269305723049266723044421364612002500850242747023543540430377112040107703421343608675970825950326930870141543270815680756728477376217711276633318748837532387055273092053936158399723587671406403627754738861234794517204057770984203254843115194118909487729123039753523825855512456820355037419112400143962344389799384672661988465480547194157123112227493911769560771701882842504757980335162800294814175881833930558349311302197695171525395712547993647888749650188993110156194152880090597832319320106166733023415255155216201693834031229781583261453011975239858511501354810648976204891783754637531333751464489865313666723623967064627617141293953944022970427701922726659372410424733693010854939780805188814846141718746292620299071491073421249803297670445898452476329920208986453504981932015282020557136745983368808509353685569027514288149146130925330341305492233991109571740102519764484370144797275350665333454147604520453068023138355343462277286709055271088051590386732667276473510451085672666531784496713955470528922669663390913964578015958249793156492223690977158565465362154762357285071418021399376569407168397530825513030065688995036590331215294076601107349906864478282512581499018302920521098315753264253141971361171685036209151211121441769330873340733072339484976587459494839005300696181617524751048767481006749113714157792646577621115037964683792126927364533535678139374911563174278346868146379974380638580450980296250605916985188600375045379751160023969357184584363113292005827071573165716649521420379826871056573850356039084522563997347208376557445364261603848220310190365953409685169424449692865894422005451790394288199473426651037318653320045704598769969040336442089962711143248482779055665946217218132190124208273561783918849246985327754556619240827318222691002257282420943822823599957271170001666360156720030094138046778928739892633373813852477681138077014363456532158894663723844910048259043520193311634021935866357070750182139167746696218376307077428877546332151610953048691105183200370141473535055143171935298844072546990246964066743000962434027683756931387126733156128811757030123454711501010472740949672474230736733419460815273213797798412326827230839350196483840238108814625402299956968247682420654709812542162275497848910402260372006898514614567518835901398716995171566864615171270596579753390895027192512536577034001077846744478583437814265321316074043138371948392903321650396339272210049436392047273549639859825875190669015027804568828842270746642003347498452397193386371019700164353688997352857410027648487512124947178384956113097958224301967352539483275759289780598353506668589205984515529529937721506309766933320643244357007961775683138075617374586208918621442191752713489720618630132839291868852986945360758510924543856871532649497191785355751499881036394997363646401881942423392336775221285954208150793609221220397836373761581239457392223150542336838249072309875057640596409509784556387724489716229401346630556354299636238437145630368772418840910970729127892071486588011481538588914247954167749337694426963867216041712745277693707437112416197835175252307074575340736566186749996891215607086218533224864342271201772593006324043317318650439802488847024215391738556333129823503707414510947328220737598883367897844846567713058973222200254400426258275174002113774474510072400463964444500025214866851221189711027605743386206970003102246282916489598262901928148751396048624323324214262502585124732444279255656132270573380570513981904084519814908694727979501512082481991646742353140641378394146309797264017992139284947828848930725250464433114396853439886183214581478786961538799506201775133744927234121053062507645846473172707532439268088266487561523711429964952849606854938559366336521408130453859716669991643490038207736429410616284655786530803076675585323149373896499253407059821263591383453283458526944865770200692532334165070779443611791880346705949689042851974183018880157192458475352725919716040216074303513112934728492975680482525512730886598656383523123587147316905639752732647418708661619780906594881781798630739994034144707979244544741804349630730796491860965649510465767685118461562287494374471314420433855732478863603888505569635606648750154857202100054193480351427149755246384998594273525995443076117011553077312355684859598987827108851609900680234158899057758412106219437762397071264143801917078896064651710088281786380045091740854702479090388319055962618287282738430005159459383043966880797114228193673539391859125187595424069968823626771924468328372817623178129118715103610251845605276815729894516710723713547909770381158071054129551030197765122445652611702866604466001241831510861904864040665553835443520968287948020683140515362067923087907473160080986942830023444404009448513484556931212903473367034905691455683415240698516481266387274536245531720449788917361180767067111321172439039860796200759716352932593456790476889466461352933907289912211018488551677440723578737330109092408199222219298868039633607184915771465275397110706275218229832841344483446257004259152683856587596506893718265952972737504251682327872766995952075102148455520129937298597207810740388877035901670459658076213683159519527357913449197829798507018446608093519965489398702719985566901117900951476909035453324929936520141480859016798780147187789065760409621756427743718131300541804963917158493179582382102345910880085443266301272433771029682401091485531652976471247750850287222410296405052131014565001733178640706793976151757897860762990493296296545979032358984082620162536489374599828728646380176908739926551039481617500643302273424819153383399590957085396126973947933612678721935388014738345306863845844546321388106558895141355711176300627047393266298156795568693155172552958625046306534765485009252489602453278817987259314165215097939340392653446557759317398746494135904605670811066224045492274127134845887109985407235519258325169598369683215674259524660289110494452866860564655572852609164565481997795456397444981465684321808663186766186853176742436109775403571269512782126884359373791523382947232724118722083304862255419771990955342913378823186262690712782822328163233853031474737577869819669956005526026610875375713278195882304621244843435694240299061089966569202235341482514847679588913846442731609787075709326162998543614045726047464568564191435878839843093404998874913569355066637799323894956245393990261805045236514200993649850637256411637693454596358318830063247189662339679123252955866069172354644490069321139028214888021621507392248653922192284013369206948756232595373535017792582379172872272929217608151346566641818514190147621090351682103640056511767579268781195928035078611649843414720586728568455247914089924112942895387290016817858980226095090297225891299921687723975251450410793782931656542170955583212718527169676013369148116403606230320129934731026261197792643602724129736021698052691420449777464218735210894715623959929361552889872605288823938197762313249739306180627669495798110646121550679780890460384120110823082531389197587580402911925609568695705464782224263809982877849346912779327503510258740981623147342887520626887830982953716981737426489690205635260030002509835707370374476179839305041613563224257469278164162120764376854673757652481548772353827348115548724339123599444804644619461727649787839858040517913544393873741727483624914092050282389736814237648514909193733552645121182732583614892895114200819066578384313415876178851296549904127215050457782798624636987929717366198958380294175664163994310048493897557631271444530711472346993214966796000629073625681106435032117070117291650927315847480357060322883992550864699579154713465922222459973658761731051379512908577541486754969234849206486685117341561757831665379467304249590755077897686453442160552956826147745401028720093633249736856154529546204118152241115600343075650698128413030453804031398892158926450822516041038745768204053077278486846724463937099227933686554285778466092452428290995080843378033445457887301019728548686009883096980923023969793764141835271437351972017687329523594661008938054236537120882908049934874363930452044313494821512361134545612780119086212709725735700636391332840700132451290482843219052079550771744038710137937962847545344661126279857350263880785662644041873181738802245642815595487741603526061860103654729468519198719768564188310690123291004164155067529219784319289219909307976681838725866824251466942531742719394326796858029888953800664304565722866226929763618195795714643799016377807846247213575549164872626463117989606015853039471656288351227178651574866368721957828247686494267310463617072841696278461028320895592649041514612873868347152673593026776289253966584357531973832392081224054018762379664231229852280830567629478311154820747531617081222807381066964238535115344738030853423619274462139648917409788325359993722393587839905443260063751332840133151539957663308855799456972345055875777193608521508041184969311339983544607299717948450678505120460945897030615576914342852211761871254709067884918648693236445603788368692629556646529496490188951182365241478561160887921653140612179365908122819283304042530622275753358415573881310348748490574882155570880180030396038101365507242663755337973076275070733316159457969135918331700155116598621474634729265034906043247616340868250407359564678349974445437525013401813525388692193367247373547876182226032383749843028493692878882324896311380310795572454387835804206717324953437511511088086805850832750300092825635608941689517360588165490367887887929193478842423447435521935298094639335593578181022418099386987143491244892288659221935050502214905595347153740970789489375550149535826914695048917706856253627079628977022722316684175654006331122382877158965151162389417584154897928336056676469310289495586313815146839743868519875537444373212777445099069389923722556473163506146205897039995030103759029426122879292595320479874006226979978371589574000129118005575467635469174779192323704226043436986160773031663661240319986806825760818126440787476690010167712930180621547574407182319683826940117500978710475165247005118946480528820571564298576344742754587725489617634035273590710386923334787385874008021777387772715494448092729035205273260097681069194091874866540462901807980457450200306482217930035580922284209079138051386240211518502693804393603745594452284848354158791398164667099812102826456959120456366402084093290607024881227228244479096703290481722841094461585750670947888528397230522055889132509149887654525063650388678430684588397674874529081486636834991538129058439040284688135722107632460073816692327189693357012960054077060660391821753564177309139151475616486734638805170343213619384840702047009455936346473034797461166985197070774445557772914668336155939211200119540129585582524501860498332596660806101252747728477398166307972235371502318293968388488331138843388524269462034027172120995282664397415974493722443018717334716977560853695628949064305525445228947130064727689137191564493422019490601393986981971314865893053570819951929372017603776265513162663621408743422707740453513736238715076102259054883983129697650834271178535650579896349508427226197146091631475441174006138016186274730383630478664489986995297105654673973859106312068565052353482228162331141610522961465659919417538112956881428657220712321353375515317144431721019080916627591256208349585448525110223554604056461475587315775074203569412947455215015533462840218043947214863178753110531693705458248356147495956232996599533683189059595284324982888938380951787234493888766719791957150433589529110457167610491344245037297090024207672774518045279179926414528709742412423629656186924562815616338663431455826638599430262323007605417774487550273912481565081304227287881358609875850495969148560613917933004741989929758441390889047878850989642299855066713655507484150143162764508011493228904333093410269153796583527807314909960300222108241693137183739927790137540899217121971194184394798651511319809831957739615306651367237141273633288652234757279638649301996647327979573107735733823498131003074012704464896606283029438763516455174000195514972744722709158753388061070739928685676279312679925229250068243788709551892955426075653440184078918213570583283351185623166999768043060140847145200780683883358946415150880790012565717942466679946042832139131969457361406301296867402219123938912974282756469732174212698318445232896444923246857119244322498170482449064632610722698364988661810154746672076623941619701098198282305406223018668689439994143990229475230996545676159743758939317134742360584873021340636204197011274508061980372165861842065325871782829207412354634472347078774312645155528061953061991272246068785076369731860872464083626061028967230263969001347675211949579779840436198121558892281520098914901042582541996836143545166457026210399638507392685650311872618798740755452899077754688109741727048759336268256423306331253554523829965420547586856626997867673026809251785718126522965196779504477734327617391128863228778715291235983150211644355546077807509637636293762974259998238597649680759619231387104984640726903241266322248209823390160955557904937224753705768784879924782414113799793407724955828577912403205871326907304243325116921935731101713936075461558160333441969069501387351957044901318881667338744567935553759180562085195246009151107115426132643489479241722379042896254917190191048979654967149519286812388347034405883610482311039898005013337225977117108975420997655041623284360390682823338599857955939337562449542539539271159903056935996856563319123358785865474929099095163561635229069830175544451665666072730089283241426015062562147936105057926318759289694167117858540112511007069213094509090478760195270656267908705059096841798764935252516939349543448881989199438005631812417812318426147292313212955261794960757048520241092302009577867600920426555616984449173622552895742038288778080740667619002989077766799609658583049273560918176145055877422561212660231523624329061225094876085491664932326547354385587711317396852581058215229584576260862802174102696632912601516631063829410819367069422772403653001304841171678321899765575028630197284531060240277422250743379956380092838812530023484930261160805663707791731835817208351350716626134840758745863994209846191036603358832716784051836664713902762843163883945789142500683274627008125636582420675374370535414494686065808474826672585030518710961342742858572573375028948209074039593048812070689119943260817216373262143654577496083985924647101043454885497835018623206759426588990845668906775231086957440661238682333685587793652633886439163910299777431466549010823039466600569527359912460864137188046853186322947584919796325147434613584608642819220900256174878448760651997394962394626259728635847051153536309399185069442546899859683224373429606710021986268827672746133115504998107764948635499983820009289887291407025784214351120060608113644559680155018366758321029409774010747359142836231851429075419820513879003798419170705235484351846057673622673867432282864884937592962006034339746856488374260417233818908624349630323470771872786420078468032225288000542834173608008157618429399594196483887951724755012826317031351507892044049725099540971049394524059668912941274891866765566870049035966120149997947562460541554364459452483175055582101685538567438645886340704242887857236580293330989343951125806404579191216596526808127046716713746039353566728122477535138524966970644016527247066056290706600968642722664850975443365416517775953596097549751460937619395008837186723779404963565790937793320666854511035885497923867205859494625262149044802649083005811573185644539996533223828783486121340612495004925731966252668068913454978688664104444167902501743885657715474444784251845612410872729857818462592699608996773195720611868680729614439698150845056507307271230733275309149872596209787862291956175620804002645491250971265700768582061527911819407624824698175886737583000921430329275479234076577027448492992980576756709387517185193205613834262145360179401023107118750795629752855825400128209542258965786946939195447320646379721975126860066330886430389673749599450239104421292154326982005835111667718910938090383177339604082736690429735347681672787361665545860022774442001529304697871339252618405571056328057240567755907771283477670407997213529893400668390483715445099281948898140170037645393092365986436699637596219908376774862410428366185281438571701576793838806131146755352551771570425701249481922601845584731224058064342728176865192634600222809616480509335675469529263848427722008165043578168167787503129958139846566594917383504569867015018669307447619597637271966025510806594415537882102000860436698861995211512085660695057136273740100441301627808743392682387765012495248234182516128691012435440446786312658214595910644274655223303558905929531560955063951773341920673423552127281042234885369974890689971349559563239284031306832355477067448677638135419946346828526384865409209907778417480695215037765883352831960827765020179204596799541546244451124801869882629529987165259008893898447100408554794872701701698223010198579525315772060497273947744273050235872328287927373434974082249369486091660174675188368220545500731138648289021979724494375874457452140540969285990261206299474767435703163199638639889401061236773654214430005982194178940798333057539383879921141697694282091459359708851760530156857064477959759905541222151374441428045524653538476884528003269154345122090037463691945811015916581753692346294929064660813728726512648765382588156888584828225553749491378205005931845511446752442257694194615902159975411757493919965514240665309638250711556593049738828596089707758574115767513309809557835280184924248417644160318009505237569700173484379585743691056660020051556415931557010982526265391211439120409960309164811660195230055533731029229943286131204160188706200675415039346277458553058246591336982783481617503924156176480704252125537996516790455699104031735344313944402333468525553524640798012134210416113192234101975839945560135754780701995788211955535219113389696574887245699504872236704625319466129469363507260583311224146140141140780017927748289981457504874232786804090433322482239734605816767796019313898179881129937267218417829572784922344003955826899733620043979380760137000885990848288415970832086243931389960264846003816033421723333494582866614644017732512162390911963533900089356823566082459565374440050050662689818810815598212451394278735021624131755889002653538245819395619310523286419142595463022081767876712138783874761649565665478206205841730315087441832884490892598133988182990170271400914830381936735649838870111103519389776884942960195984207577407518820960978881172574671288731616929819422051028503264623943335359479240281473417262822749896750906865565521111388476243184524836747052541193882397083082038715186100016454210237682917978595283251595815564518686030217084559734314485380273659127375747321109023110243074333798881827660540102593664375576994760659703719152907914849576182385953358954928264150515496873160456158338524317208024902514910484484158762784474413783638265872821115543644020003892929087625054708528093937861214399979632426865942656071270175448726302132862163606460472816278554966914697952673590533461585958983259177908269394113605796639047479758070445630444869729083883900629964214367507037199623348768314662148734691012918160768192514519660670721923078746358414407742852658286350535981166566179241112677925310840623467640786593927314251896151454305866460720883847712873201615361869851180833882484198569130114771830756977938560154597301364197891315597188740983052409887360592441153778375585328197965339425255362597521063849442099933306773712093581147881589215030240009542446960808739740632963032644339209927845432057896510652955366418090562387442228100741220978971200512009291805884964466860509632508009678745294978287511779452230768044373781250095484604181199963458655883283105252318079831671911917007029757204568169512075081413758568508911128158798529542914899329210429948521772202518365861906245751904340976326403526278894502953653006134858094127717067015749299311171521780628932575469952417773804958710958276265676523982789871692052517967018312273015818627594032222476861115140123123395101715623778834244049391957528594159243766549570249577638046666354816917739056374490055351199424203289340337706359554081878164210740634576690028550824757445511719986560977285655102652221444959412007940746438404521923284415275324248733439131471757909492598799045257887534557289483745437330674414141926202834659882734104056247533517860821448051570941331250447046858491078211924945186114721188113687084764426190812149332528685425403856830967224641609158458753010110012086670449470034353382878727206438491475885442422751157180461969206916951660380758918849941231105619249672123813139095425881503505295324613477681969145368220178107816215744845143806708633085992904289915164028473034076759674853489220156638443815210641687337983618866625035660499987652900101207623093638026567693884852438067368058477160947104739100682503540484687148240213647601263777698222138228177736057635918110683715999378373004215652814846183605088061015282337631096800105100646389944160307961507600235671776880461181299755638769009846977055902428769336302066859620774056597751907159721087721167872381366683771790830452080757645002110634564393359010626808286764970140392562449563527952255563938628198754706616113159517981513978115563405872853104537218075859132412917586183103372298793136714898903842271882471675328613702902732253252913051930365719673555892065055903199371123052440952766067863382207543611919434852069676900564575796918717575126387100310188175899082531862658081789066562608264170823424042414949254137905118125721005639826942402682923248084383727947562149587130061534330213627275533392589780576941620913498186542745888002385949410253163513045018031430819371622810272699651533234243524624878383001417186397687341598501435958981914434044840805919243979131946065796490688090373585742891072715833855023520960832976992654334277649078463615634305107327764269438955852758655288029024764132449420479616228868850353125118775439020844729933176957155422843040256460342720712305935157730613416069397512201369137021529046785148563291604590537565476769459343001533601167590541332266256202787817774119734312168664585229451356015019900659658426609320744095718498567214811943020314084504910055457762956427268724263918603754462794105963335252721092898667663392040817543890601664017401968547836891975468723603470724459305750789104800415147189874517806619469305918614983809640416813671342460841448897647212794612937871038994663111817465319482227711231035016420388087767230263641785056495787087737476879459807334270447276005277815881959328392606551021600556018871935098335093794644038224346922233820977983096576809682206213270084265153762598992291894014418730818771789427405918461699399131844623077303725737513009289184842120541825222329658047609124707820583176859962567023753785717491524610048307466572000836053044776009057505622465852677231249276275015385014459536110566248380801824891831522008961478243367611499164422249931617303995641582233447268956404611759306719614262966683590241930271629486284129483984608997802050379637092905188824805234190329185247006984031948214332970881090599616763827149878429488197202528895827138909103089659642211544108613098517810356567574855503051258207437131694527620138701131973943404254645932550444345831987564471579968880166417903313278051376213501429731879653738762611775749277942037343368062843426017473681534956678806953392597557278096452010229131021165518070431453962810390306009888547792007839470440176744368596123186492835786783163853638351506517440410012521399073001071117785195658164591668361056337743835826267767010689801788276525026904475004026284655195775839464539944664606608984384637494091907097381817320012745121738317717532165532494922711849086897077975648868105567095398652621134738351558469759968306838990433972623067251236930256799789159974446383278300798010059990261407901084730103291569820044917524185809983849097176732269304279920158332414234155915324637480850332210417785244807719148902281854802099183956737299455060070411710683969989884128020002649309048402727516033063070790999165919126254617160569938821820738197680497551076145658621819111461439613230575576368686154633070380041656724912256211486350183569702043182617024358827817839407677825014172325450567762917728222917210166879013690342590141169840637353880881453895195873879739886601385604096447905139455641501438174730844671624979674102892189492212601449046900209159547831282416851874590340630648950457290773180491285875108565077208744059427274643217875096486070727827526518191293963422332481525739069242955342520036953378711181876792247588188082284429238145429373433971611275781767705844160026616483506061842958204617082151380627755252462886294481524077364404083149316494183509772857259176968628700214294268747268260766424088560003872794106480165120575050083418700684385130649542058599155938861448873094733610524290022837493183649570341170880842032251941147587209684183777846337905166521140173815491776541917520636369742215639058061278470205770902583204088343840784749864324651223297727367467921147444579216010999007443191759428757848216055986900950169538079762947594359114106011061121911691795376463209864587398215300315095268023749096800267330741855583837502672865775288792783152002942402235693990039337915507977642788427795086403593877634003871801757498421111166629081276138416491124341333183016035477274050509738396621566599489783383846171194768546586705191911580299215468832353180843394897760462493570140602403048599059788037306655015941959398907479462970272861856040488182127103064421776399426536316636599487607775816705185739428133913076854564746198707544779484117608248488835226266696429053090125997868930653354869293675434675403408404133172797273196831954147890196291162378901801507758065254910105287572165692454992620807182977780505501810872097637613864316974561259646431615908864293249483887027327680186371930480248401638745054053230364903007533606930917126255974115759526830320230485867170087999110831440006169502292090951354707487370234609994699061565645908522441451808464739450574885475970326236894900452701711042259092689388514118966263751218763546597935714895112677742768581569975788901122572594965113667772401303878143804314226198956874100127508292837511650862171807819614861499611458103343711843027168147859712886341388351126559722946801350028402913629844014996117963091735907423486054596939879930709346531390598041305609846041509726764106447662035742146640189980929566478293307227889301816416205730414082380447415553652779576302436892848605866887021898928932625937363000468124695838250067062933715503584298997381339144997836997087964573054155122663593583739223696572422721843773996077914907066481438075715203977552290099893867196182685112799958049080642340687828630563613152663558749585760020694618150386338345650509174737228363775383277376868260896519148219002248053267280422874532352843732412362244728964589996834851713290554197979863982425106083653413157191269817683647831506722141244941627549936889701781861340859671345096994604484974080694001004064251776588647839270415943065339128483821954333862041745665997638167204849834433186353381175157867775169517391887500789621196493756031311763897767497647943215348276434796141888039537365296989908906591929792422246234884909473720078334207215249463038390792930469766457693490610498188114200361585058378168741201354623646784963711332605844797513584672200981965831214028120991815866362896475090403959824563207514432647588324372610699225924715643220424788677497460581849092348554267259998122771827372019793823999111951595561995902557817965333749437604351950721613315105912856647689210591215117151905144746233034627283798210686373717251439648485422568019066581045498998899846228026023734249140518818109302654122170876000185000744418158841275197034235444966486648383569101242950914215066141290838808274126896606323488209865418495441979455142626444001115574639882398071221600217618211368804606770694122555931882934163396584158988722336143303373568262847068694849365293991045129737323152071409926791209010189821798722596153160858727111280943871979966214380220685963427425831712624153143164904339431906863055438769281004781299049436026319082258508291899576308749454237751682406808073302009421769373951874910612432267701966127493997024453512874626105304313288690836026396989082571848309316055545370411117408646077330538310729596841136570119329210574381085028644277141381700525098735931689510075233108502189342826891866073779071854565394444682985081393008699426177354429507521997633169367926801643814389034758765674262537846903997010270697412580819976858186666574509987011680126249356817283974411483695657965434779951498087448665188517622294087337280236149429742834917381551050532926992354988147743212839246806167257333899759553505030582908340039984459912044472592331456842711797969467810935692912039120779404995566242794882419593116081709982060309205234605658018900886333040173040381764997873908887910838685709039361428792527941502515713851405095612229620959545423760574383032073538988423867690878348797517878924805993110072811069195268790721656284038480317320028648685856482756359090878877186763198671942230071732531766995476005026600252534165685640769864395721572186360982181481400681258941976294596269186571909785454931354022856336381049502011431484345474515371035743892221684724963313913518493327425793905988355368638636931560799469585687003726639132193283680456927216798194341566454591668199575631226809868226779006708853766993691336587259437519560942026353290010004693146337082826421925310166063876727422064355968853402377108658543379599267442352045283930770391378996798239227729610119129512701304888308577374959966361459235032466004177544752990495319626433899337491239108127071748246892436313397107004121660141587884571364262778542108260641320089873348573092790525525450645891005651234507844347386427602153832345556192205379268280371071722379064995631207425418176367446709512354905549354294930000266482622769768712879158369619059319305427574485104530734560328200181789408305209062757277793035704928583689287068803521529251649342917532060504010431223156705353860811256466129338208318593502004959203558972459631606349696548108300856137431301558915963357738677135621662029152567456028343619205516187858929245023591136351336890331215925894086511536184761818315753532242324354768530351794053326362109317663662703810834763836275104478018396875283789838554462340817133274803573130032554045690918067212278726841910361856861508677884898976576455826572636473845016301136551561187085609295883821831611276776594804450950965924558285589686354254051516149701898646199563174013083885061328461449013049470874408184766347995178862271376660528933093801371627944920892042937061540800683064819220281123949048278366706243153256072094000883976937309710347471204673446921870265887295116005981219086975743394726612750671483159924654985117296355591273769137852737855270104633184901868645586841141354202158441826511656865611434808944338289541715234477867023724938163907216967768755296572575519100701389397268333542294652171869417986300950203732448956866897075785852106996707286748718575151137960423700454491486995799820092385031982766839757990693274307643400313091478930529006917346355605115784004726017936658491898726152583011295753810007639156475858366406016842659937353146833508176966105450076553559019535915810384969091590783986976318752097946687307441620373158368285926775653789104269695952765062150887270311512926543840700327504666140150333467401139137158474676171678498630359031344122208552117851592247955372832842252236991216622518994078171830978884945598360426451324455548769888002931340941134077126627949307443722130977239177613165411240568915147274137706291187640442353073328745915322037428793403538585958893335822297359458518464154255340633141536477215125169086118754261223191511168511884983503087923917866739345333334882015837038892599766522040068279139186825180586327699803687727955722293834990869978903784800916297380679432835060650540620002030085624690465923515300383399689651615082590096085912039469212425807579855158961824496995372544635190278212621630498904022906292594418908760820175549194481967202186809619119626232858626389365193568039338966155435161690688764483362899988046603436458340451278238372654417791170426470390673734240447284085717503494859464770445752189033369560004744553067444655393260664845556440156000210681137081695424394306506082377956811536576816084082831460570726601799193624941104804554186793716632718280624417905534871519550358165430773922482830232756541807004502420597401546831200219857526995054615988692277210832787304761310715392879097444085575337457462648621694120584133339986533990924520492992258163730033152781129968102427753237905796562721388806449999974364007343512066771043253337462555930960552981513768282035226693494106873733336379721220116320689012963460284727443768726561557499454471725669469826829863329969411374592320353518309372734978976919059205178880483122551935750496805284396492228198329260771002528129539558267043920637035649201472246892124262497650819207370540623970436057557509338088264913104446493480151572072487986082562955586232555864208500302969466240347969762069291709357519675195648077950029211722186979558343843452807793019890279386171588484025281569585528035718039095474784296299488983370732952550894627658093449411094361108158170163519634151317522570110286075429685480050643766881487992826266946379914662491030551470273680911221107281529709845194285517878270812601775829017597788484390168730772590710522652771685104575127554726202402024463032039296041575365855771815706218458103877127143271108674153346132089423819065427967374459829760195226124410692573491230633976643734356876567947274204626737541971655393142418296369010861673790026449425732476029646585816916115001430330117295739238526283357953771822025692959942322278030847309743710580816193065739585369930553097853508422799962469799032848991303022225337056748598227103788158498755592879821795603516078238111246038479535744199580351437615061929456089209727706611500412771858748467972851504075384856687786203094167897285358388177308355271918861978506873407074352739873571718752615476663603219833658159061690994153137549114213562552728966075111335257200117316596959816147350640191104836842086691163035402510421453866245537719026656931415302419883290885652964631016189335114545759034377741888809556819949952295348316423253933967459372927732203906131026390470118035337385667481347734324338646831549649079346116944944408282088347094214647475441139022082030651406393842682320404560556269784039552424753398754260715430627358212576991269721717783919162406244831037175487987149519166184761314623499013109633080064495239617293308597298357134340965084208475843077231209251574590096596242711946145724915582560890261983622021630462552938574697204078842389276826853638713668917619200716476132545154477227801048527918248289407063300896780342581043954410009981413350686322471496266713397627759932958954441212544232798088409082258372327443634169071516322988803943479231983856705530049833341095466678894990593722240501026622907082082086639026034743135726231015091372934537871780630833681528250388826846714236264705085364241276693028930995096363432840750095054989392605741546550178344783071503934443384199249800545480720332144564077665604391835335497073033156766970841601436400005166975373319278765567837330883386559852485991570695591311758387105423502144796562449023750976450485243523174623222548286243693367438616202876731044994488841109350462523988209083325273221286835141044612550014269895598554968317894275631464413359538754945261009051800745191884021254950627140190131616757444317823593422855979394699576580300839418731710091817758625153059452205338956103803997427121023464724448180344919445660799914559249401103359551419208697819105836754893750906673924032071991423158083641229979294994574798516938580315549827035570127034899359310859291075160849291361902816881733563105469655489894318047765647441381261787211011750423020706075596258062301545428804966337786017153673509689980000945995829086602863824498399745477037786628157682906606945825269061884571884973631367255421090097572637170276785238430437861953599960968277666417887231087188329889734102963226823999443969683363718621264245096685457606932031195619493951158085797526262129627992565227045772232959737728360973403426725133778561325766461403186026543635156641953520105216343545473051645391439285382168556099402310029872986273933631249594953508668528881126082564950860707986375394908369374581870470884009638912960591174898393649660340629191922076146079261064343308976640275923584371214255240436769892887482752093922844093026887790209307957212336382977098825327929055789194722635541188555654128512574664143431237742137414984324503810168874077736449616523696626582530090885398894097194489609579653636927118104066955811795044554550821977826645304102342956917034895820021891486556623770169550598091241388159836195100625411493258378522289278500418208746277985507206046282315316012087086562691889656526947785672194480194391890924197070613666570566285488241786199442321628185803351731955597454816691958079203038223913215803427051644190398658760075384106595290821245504107211891173712730570500675984543005087267451839369050471509486902791612499656669059904892855821613397082116380169301486238096725657452449734109231281906366483595055723439974137396218966099437414270638688113753316390836981981841856104383215330085936909351312363140431969076733868170999215348659751259536278689245899042534046626263402215021989940410797824259314072395145545773502228820003214770480043391315654721362254850069960457095476559659263345139328284477313515230452716491224390279741403711816142180270402106253788673181892789205323716570814310532976172175012756628540474464338979873274431220788749529006661623090151102917450404492296246418153209706582276208128725170149263001198529315994929932149111607148074714389882556902079337837186167828505458749813682627237028722526274424917312111744050834382412931783508720112754508402922846830754486490400853082366825461210371651218438522037745113037321224878006957802121059287354637826498324807092369242053659964597097463674507672356499970588202112105266429779035278085820489852035498298482257843199482168723423586194211283556727946599685327372453527072865949317601841922794693624534159063760755703321110232051762753593358648891971541255917852014803419601790619482320739662156103032687352821254838048095706702391036709248047085570150403864821998271423313135354924052687290439582383811541104126292991866314618493219264980763120069777518324852447769630510405504462438603384525432008444819132717544831802407638196985598344193646349129434494514220466563790628870328563420112796046049770930722586138102658602754287696243059364608956832639020781756481502804507252298186371223026702078592703174774072231603228933516172562552316850619078648567757043559308335423649733095010092097937713111465741447490485424388243461634172605493887492517746697540066335541999361079857160018902702519863957095438577886408802158431501395619492500729121826393860957525968737863695599253252570488051701361843045534104094246179087968738451006271872566665188491036631344045329548092096539587822675593923323547847757642825015199893118790473951027485950073399198257357654589168820379694138804144461025509225943941152354199884433319269412919206243920036925062660082344376646476387910925240863909372395033442594075918206215598450312117063322699487823788114353494093899888496873394233546419381254618627472129374098220158948012111451973115506523544959295865543112617764089186509353549381802990634075611576301782551952272907655458137679190129788492927558319574802797188330944875874412346080066020112166501403812681203648793913515932935378927633498240986451827028649937191513841659832443570410591795517340443861619665788943156933947806498224354628963065256822054486656613631374000581844822364016227518222194133526338228422407210072141480258139605464593709442584190427149082505950369854665807786516076245240137821449277295063523887946736225295675096603376056832598380720461647965791661655829492039311454862642029159101175914053242976620458480048129653484718415693485823520577705772698336790645574850425319499211782474206127581880274720369876853578112256778050853303782804868931281855861966220091134061109739693405758435452798908080710061105953442934518811638996580751019793386686581142496413064023948337315616857093487043973218024887485958401931515093065306984519109488679336848530747172813352451376120393824012076214113932365264037659452852021462026455549255734487981187177400444992426738167834916533960402145589889424841317567080164242400396415248787955036261711259136075397234819321095878246509852640947930915795946181009826900818150395544978924050880559607404253255946051823656259646022879581005959601735812278143293662431346928513186730229450257548093851579614048455602893754940354294597511136172835953303583112108191373686133175899903994652732158996521016476530083295830647770967333351759733024871561133821633199326591972907486661989809006949003705143586999346646398679894632824690953084230160906289781593980606690975741998727415677262821456503599372067920892961873237781840016201581560894719349949205902096261474682138997713248469175170776822548456050255680233402528728718831452518176260473540821497006005808297145070389357792445762592687644880360843028475269665367852966598297057270544162021413752414517440780658179030543877220961486316434598396195221066703744555681238600128814212753378743971532477331143103437912241790214746078748635217598710423735849048520150095710609081180762293948888897780508391203384959251064585004816007716059855790995537092774571472701527616262896960896948269673958944878339142268876349335648723432233252873020660598692352533243586865511982703863415037375238625030684187328416985374189682300088352346213854843944279951411349184790279258171646726094736517644881158117937801695810457039569362684158065997736083589150008955412262410113570280751844502792046735737408999514333352228572005845419658896452873798916654445877424837956599162277848938993108836083542833584285690761195804126174121813899834334894452082920389078753481586862648794107844248106565860883088567920103169987303475609864015297992475790395151246582727872143092326277356496001995587918404942244519363749440596152012504802966605846968382559507408497404277944350930285660665684760136689854478164397697291490530500185437852680347236819538594564249106086242960836034772179186768977117662780697481478680475662923871834406570117963311435885281375095108111959944473733513961254882061423772303653381057620145065839808657590083466758954142758515811819316082020455988024698497892471985435191412475887783747654195756055694283933560377454923996518070037302156908797498392884402678793119199793269010374016144010767459161146286821545346194976380654149180290876699827327378860701982191953873121760509591263989898010827943082101262264956859706148979136303314369148465895334310618114727445144453381957164061232468399470170758569776037373598997180773685617040400520291349104729332719243172794147714390841346657916599976215574851987224806177668984186685560939942478957539468509218425924176145211084110281217674194415912701572609598222886809745266443566967739642240417885000268572612389978470951333657180420437363013977280674760446738152119326740812927367314159106081588849769740191381342718177201503300741687873866771737981071510729234841950098669592062355514044302190904677382338302506074333781571865908469812411775276341380429366777448013388226065479098194222157252254449630883015124178740026286782593319191432968243740563265680861853314123373662857584934783493015576692003748102483322373128612711408314943884823687060181464359966714956669546833618564291335861725718181746203288790815496552399768903926593741596749765371205843227217467774522121705685194186757096065370752320064824833287824035101148028527828129104261843820711134170861458659684856404515120332492618465991594307940944748168263000627620575943807503915834606129916482823536432127312417264200585100206149284921306258088493250119397521315937601737187353985906067781620288143599380578527513909710169688419480255702689098985797507730315018252606338721473699081594339160671087274781570555389168116354535011454504031713129193584596088662329907106541095681274993227459086190009320338636760766209525381124912531732698390910548194977949455273411278503577596826709439891455065038271861883050488880374683411163832494664180204248519799469561621224420571721906451747522736943211809400585303669066753841741021035309129405194215848128730801447970759703949344996523361630160192217079834114563535335221572029418386347254677033748417137307620785400814073934397286668122010464617416615817127292591469081818058521981077452102049771432357212279725236466612393047902020308394145913884889811961620053142366427392275746096341245556131466289181105817524321863439423637228000910212981588957826705542284728813412274155467447831564712663548117706828948501718462379694408464833447456437844121941470423000934491240441926046465445324312109456344247660331400210141998597559165488914083050588000703309198622861126367220855652842186024126110060635775287616905093341107318352255798352182058331675182670465156926242727340790799532160178503418009757552721881529133349950321112483263943979038143340110450274032511652918523831868503806183270463488350415374692890862642833707654002424512797521959260595588738690021449970911387196939882579746566317477498182860838576463193022309088238194835200941156379813967882856753989259558118843853134485884667013405476127965377584488012601058357007062578279788315832774887375012637564958482874078205163570090110924227881247073505496464412000675701892044853701913181636008319968889188222705991184570673448019550008751728180994987712789823446724367699804845842976250197571140786888907819036995240138514822618415789123920178592184183983527897371976158080605060135334684809945757386022597023487391040950005342440920809323281191228523171428622973278523645449090251215988914964371182496159904536663997064479139560005259851360075691493808028051623775324772561964015975545381376894534883192185384203430062149999757089708801185333931917996879584899661595753115770105421173329640330530053670123175748265642983103155756859608602621612364090512203073051106973009451629626262784809224817010918343631392460300848215464957732351592512240343309753383383917613173148372499108378117938770437385758927421605263277800868405340577831106045761749817901060042874489961145332122538580990463281338015809888286692399779599919276558915656118763620382568730352345041392957407584048898368892263200850649739338809268257012599351313487146959571891739008120812793703990275213949535961218199391892166159147716452519089620494570467985020092641256010222293690536810341440556832341733400004339581340496479460414847955994679230581243679813496538117774391765871073226362544964345177815884061570580080256690887380516544111694374665214786445507962330725321086549256199509671806513883408479688283824284069337150679972901362334976803740437201282619410718750848410508321625778110573757321628132440565308882221579263165387829987619855086451025252557669499587658112533177897763001767899414501369434733140964720446045263550838287760668101380030385773175917393782717559947598256349439998408043798887645630401716556179798704959604406369716433084896479403174701664138385859853768099633087315584900489574450654299453099343592049181980776507398078632133824664946005934932981002827097737867276366355517763293829169538684358618002142777795314513804169378371804247234119276643507153449973829570885532135858540380933466871356288987683042300886918048772516181257178572815486097063637090320612258208526517000114729907563022648898491380302007965081225791187943373555805676338692080108052813455961921646577821956415810556038447460343141657646334446096725548046415942209041623287358811617300868036468091326655734330540417066331956237310976363643156558769090269157667317652368029229096666115215759563151921110093864836689196224430792139044307084684346841630926521518280922700160902075853826063690123640053534223368448072995087708101957619165181862055589666566522702870621527906694917383630843852166933427461400582192546428237008165300736538800508922160909616611706729935866137687053589619885850340781782200874856277712167659054353391027476789742246387632346916137778853718275853910077004337706260480038374427126110517445898271540686560921752067015188017988894326698468769793948313946649447460136728293277491723430323748011698402549528801466290020911893175108759735220417613782689444020812694194264032208749617211843115137607461861229177489319686919792253963563053608896757043419361119083055188729739442905312382370945689300550538169016081187349204123128766596197918338619418994917022682419353816509115881329571340069493322581835146862371337075996947640642123618114587266701610785187670478216071776955061741843856617453672476334121756917466076769311953331683811966612712760984435993570326975311239788964025078899123485037965643336696804953078463108695016295145803266053712963913241831656686060238496156488874260439950119971530479594793087054796808011942870475104027896920444765110704703361669790089026894305443071104365224591511504848965768969082861412216165981430875931711889741383599510801072662109474906826828199010402673384029616462442989836357214536590844636968401538559173633480081416801099982267639135603663182230846935329605643332824356525874373221135630731671901451471818982887043776198917343880251615891077463999366801939044580906179028840329021415833726643847203137976703526588416791974912507464296776470977356170247783414788625902086550046117777862211700499399400659563806950490169307754756617514667776053797970130501554235874084501525147180887672811123838018554498986484969514929631161129044181657990123679230770726727608874783087971302964197946319400723591322401876123432101786593993071331262414458041530774625649265546641081538006167482161911422881370389919604436265813658998732257023548990172056790900772146795934288912974209366665719449651076054910904328845660028413861871598414759971000007009378935776813568383912106446210952213031004422960260799389534611119486309069805812125183650525769743444583336522962817336527044519639812867487993862210561704626192191240886185056038018872079731211090834864605772063908620619305786881058032699798688598367443306053074159268943696031297540588334516537482142700543759302761555803378752851313151447557576822606454535859779422326649693265278471399239506668586115360731974938959895690675951103415820812888153971124803611801412386489285723266563579381949545669967694722903338613368184979909300209756402354975661846492717783193406223384744887956455747270929351064796958658287868038767695818755700976375963685353278282977408553884671075156200580016657800186274031904732605644329235579521655275625697213794501492392208976886649918267920964580164857308626162954164846638901929305162360871550654627504452611781303297281721801222808778451670252990512044423835490795594265271002458179777992333527469333832016942588576339824970819887185120998673918346466383316097395085666671596610142480074933310092580690079030698460656370906957607420711302115188300281216866033682333517694852020509174347640796645871561303149133991269470725975512369176595833306328825385499236224625036754689341360443593808249203882058941745253178441212435192567787624250801514339544871129872376241874669513877347826341637919821797801433822132972495919544237947593812075562998010139237023131605318796711111837415328740165833135134249113855217437193567024535306275675873226570400832959987826753488551394624377959886097858388134240583253430094590864879738340499080396279995257181758831747590391782724659341177410842760183438572841418500477518987600566743180245471136097869765104748709394319644642260043150896954586411975162139379176442318930370015426836103997400885058781551361228518169367156370345035179294717819019641894127627271468069046428899997158382850311052235424593368949915760330988529481408358083891720020174821438510580903489030841702195689253720205549284729976418938834180806121662931484093557017577324186621182170840369985694602208008616673287918770156779887136685364732605425949978925620040712509136694191139788900932196464986202054630205075529850374773088568998753883230601415192939927803170909903446041421315329831351652089191564382145768752251084929199107239327946637119152251181040700604781778267011751127648951415509069353825961646845360540332179661509617474425706838372306043667713289477685715288488505751392879468901487440085546846376601624556543011266234009685502264993314464993135939716812066922882941806987420864053259758960225513504895213116168369953627230308420013804514064967055191113540256831820766625760695266068819824484087818776745597124774379082158687528018622932299180316159182503674951754891946081289354808353435536452704692189393684307980969468266226673007376339056517243725389188296976565018079246385816394648068602080794837742840394756639179235085176859348603542814046027012397338299926868311446030490121909514497854134626752039070997379452434961540502355023495317867044979018720078383047254215196263626672812198061432238812953903324844047374814980674688891043249461296290348562197175421581113648298813118516577681820030575561049296979802797740485970245511684188969002817265642232204696883041395760983620995763395035152232616570993891962865729115858756413903173620748238541991955437359969074171229438893912927812675784077734057516419670065716637000987309168293019302935298215028364213371363463866604340518664999880199788956454676620153380729692904422240454030080447771844229924695385092967356552218295984122902161800602821858206810047644476173016806867589402371440367576438055058947760575601089605743155908720130442530883658798397291611302013293489683537182387140629442907191637042343765646532366028082919191244013822904095710682936934753170485246804015959987366326602517339642825946603675877096677503596105627404343704440129980165590139476942113564564924553432506806328568510312155414591252421945832536491068464178641450515234718932057858937007407280731988823476244466314303070175218505092208475896536577487730747102186373334216655273191913762479656246777021304100208052688281478802782824679772010033726948816229151416947874682138050703453537313374006155469052744761704064518350120440846915893078028393732609058284666664155588734743201709751059637985381608338913814828834456111807579936861193794613287623771982609717349263304337801069175556187334122382865617826272247929462177157309661653796165837261598781696311644473968534127197867063117454798539867591598849589568082301438722066239046513123894403823836418956418806097669622578763232140400409564535707312983042463839526730823608432804663979594091628971987654965791250981246729933445976614350541022812571141618193851138828033285431504441925481905800504826191572578768952780787884678435690785272196439432958713231882259167688027151794560652655020387793466157925714297141047544264417990152297467321865175407441131004839519265262331431428058273947594343440194066651725515655689878836058431146349776546271790291782276544522328015345876891905459409494070607190374042575541799442585406077945548099005859020026577240503335157408381984574727513461142086435885222424789828238222000736131157195271676167395242779679727842562996192671784051381269157388826257943554490449078573503018126618921303155544846325091988340608530481550106542658379014112910466509871286120312092541157239610677179196313940961665663801015810856155016062736928750524289912974271636546147628972278263226802457294726566211356314791376768252298015982031852305325401427820536772553722452901196471095965381180044506591937386223915778536530425525346710777307172122979525482516313448115671756999148996403450877490849472636664137822941158525292188590953923739356677740123479995426872129549315450999467680422170534361097419069932262431009723433684502859630856743328939914956111936672660050132364246839195686169356797888480801064704836182986551274069905248205785749815919659901889935836186804745302965385754152471426380878551236085041567671428184251248027885316288226562980032971574896244588575512550390102459602329335829180545744228615550831994099452012524631574050101311519816959688358809814708470070755077982873198423062912160369009313789557831851604170332603446370445250294102475869122729523991146008432923320521167320926956180165764156577822138404479671246586244593884835868018447983561535480740840427754456716563874702659944589178882629418579076818754441785502163762042380232668576326890111649575270640345200733832163259167268363054739997670899032070063546914022754241952079754957189036843332221949524711315672061457863326021827480599768862422962063374107283044007631069758526542005535494751690724567072666237054037359253511329514276914670970658178999172889523224753658272577230276363719368868618738496982689228651223956389979845281719947214720123917716004310151413870145160483713992628126583814086517559985208993525932336870068829961772089490708961640102193142827443929264653415123247969700005052210467687318903154600260092509242038811133449336246598953462424732428688491247217339207879610446373689613926364591775680361972442324874001489514687946626068882910017316332109060978907455577073008094665745809771694045374768126963740269668551563861963847124387290519466655192720069754355597756394865329436052761609370951780733005758149551218309413464908795415547322622777711957730480433909567813299176920042319861151891627749632665697791344793505534015373604085852129033393730074916534498467840617745829692497738125327896112069909993915541139003264811217748347211480485741703177848590931321770631131294794162638629670149115896198531896779216339934973265212748702123221989272659624766376336560311590130259061213098235490083927520593523544730631634692353122282702144496414547074681516382271682198716895457243569360101050260927719840547400868289518365672308463451724221330345277128961023165366052029590358702855403054234606106356402772486862675106549654826960957317376376629018185892202508640736616831873837222881835050139520547432687954044287545576524248208072593159782990170274427349995000540404574039042510338334449687614357300399024038081646520945494335787163956821415448392868280478761607351995236518664234866252168663013758383136859630892257489170988959404640457835181070247106956977227363371100539301354076583442467896495064486815667366265063974197678648125492527030756819273559864179248408695304631429279960927480127618042381145848422478610872197195212263929127075995269981739321623410246523814129653892101421626268930309163099635983589370380868081028378592047470766109142837893846073897248377254225950748189440825030706278774624256293698043034391137974185103995414362165344123081780365041256283227738942141139684814981811193724431197447102854864001988336514622799767388041421759589803954720896684242951903822442971176554175764130638967817298197693097498160225124712142449685099556201993302105116155680972977282466707782827190325603327304401250008009411791696469954254720576569793601174059341045814705403396997436855392827769222984509164299665649142866935377923773242224018043621101046349275158504769122018147331309851114240490176067906376654207678179728706205038158336452717276393951227063615782700513714132406515028514698667886498662371220488691014020709857449408480072713636140210922747380187014652863494197437169459836002494339464678127833363789560611022312073380147812930189827647915401045822663712219053390917509971062420085033704319152778814248913587223285538994789635794032061303345939839298725688442605277723372032340828387451292737683443082352393421788764454237995067598791290790739608905825080159500041514277482072961489229070326623292754154682143770743631740037855938028088835324478464300302228054554890435174441102013808871895777894477880919378135449058542916298914834643731071520103099157843014454127564410147984552524446887283249769290510946552542741626535557717103088812437270426435370664155774825856169453724182560946430940871189744703086998602578671719368760982653707974731951992564505620141038010881139776012866060666933758305757436025340062905026454116419296795169233247210421944827567644035454675433542422776667982812978088219338235857809723752855791268504019985856347334545457293811267520491033005695564877431141612044495024098743803969016677259983407092958526552854478919166610327515097696005660009860799510662325405613421301082162454901822749134079106947183110205770960090154291291155044516869460777995060393172370114578201396805158861194640976290574285697870151964955660716165024002004764337481678430430320217427597429145606569439546763883634877899760438699843674495175770867563481634271488539325104964895927003061688262810198085748698220021907054802694780901072661511597306029629246366599242462942789346359654773378923435795112822819961430307306022930398648544633131351487404678163193048203500863299133895596842203046643178439128465013823059213108424914301000609036475096937955865335319447114333268722407892747720741497684477171882887035894078299643219055144349776758690306726448396174359974241686107485760615501680767972030918648102640080132686080963596202896812012996806003348922316751953997666324823748296692592047751901727320849846125605155790187398677912645157340372750615340796403887245289887709549931982899284536463479702543651303816024183804942421746254748609559383986867481293974805284342204509782362517058035075549522994167993090821017845195476837285332093991876524082923291457519632992947517823389245028987462831735633249768914897538301306289696669662629628729281363245255883515008470729561509187600911603426806997038040289969432847688837816266514026233363278331434387238597094435595906334710249158225690122133393647114617152124871052551092061036751485157604586486224583310665370652598335119142487411286139020816161580909248861739536865292980721011135623365156247039867251432894323918056437027078522157111557956114605124558663433816200129461437131107094911941410805947277033585475235378732110355575332033327378387609777782184948867819676513284705029348319554497029867825038900113499183133452060371342945070967999025843026177580176329301458233972769008473358722018747808167589979212466310536566271151439850092468208697806627919705892856309303386993766989778695044051779529155053894996029376257663744850088369214458244705379386665292074112450663088909436570436328756751688580063095593342871608740033971046671003418517884608863513858357369508012885135701434524602448387884215144873962085867598599120073080098363175612978812300834189278501960757634453823902690451811878483937011079149857738102248265469202452042054481670334615134853318198303508087115923096123999477823235358962449952796996598499884787076830142176011196392262069533192353839168691470651103326484770954302472499360202152022121589522464895894954912670153917670080119622078640157412533473306639769080891623854539247929994599446557017197553396198334053194286170971202296397597326785809653133084158742781640863303890100096124835679809774627791289380983167968915931980814240080765020922694401976541278546283561615622527510376811752501223254883455537111206443523433463216318380957281667202807730163377353550430010811172527881813383318989764768242591872823617281948398314419504463577618238712473691386821103580048283489110488668800493229854246936267565229239845338052490903714512918669034214895411719067797316009660384920746244716392081204470838383138349457446315451519904062777618921958321697971310602977379675556521281764027929177107366474994343373370337143151800419565536940697716235518613399134921537665044690554969658923039294233389785801544778542550908831626601274737681614932753217625295816910643530567589821327789986573366542097323376861155152164429803979998648102732998029327361528266956892876124589309782985336768994342337645101410173797269052996754235031240696585413353178247383180836397096881435476874381078639774821971940043173030129994769789421448380784765561959188437014982348958549790147450261644709257638748203175661226896921277146484392219604694835928158075357529976960733654887326146598470188960315048929229990223598329913968927507107377764360572110260409042289954208173367558272336522776353494236865313594266295562157926710423720264064426464704335666020976968895227787392792726662715865143859986440110244786565628454992812886658232765468013645640294385924536282666462535054444459216698250891649817393476486856780601480668750119108136894936419801663401548556336943793857052030944976761300922699971680594048354120270317905965077381350794047281531349091685612167217389020677785925258138738705666644033088828375004359376948734733911538406300113939276143048384810899681571969356029753997495852346724033723511085533973429656731056446153672521424680651704222778517199760598050825521304385118175987175638466034926289949773537354476231693280683682225383053899941445562775153366103168784280243755526223330340495204527037379497199924812534790252574644811587152599996580545874148951217381533813595323220794457672731959229033294399360379678234876834377512651733121513304920729624776471785689353935040663748889290250096499218315503071281513387552254753318038913990206904994171850093644249589393643297658005405225715811553073876430412829683273821204642790787608610893459055017216007886400301876381127555681145556143576779192401422668074184315785352414803000344558129415373869637007254308625829512047560265643191656414822484842801457793030142853164332683038282167835191326249151454556515638812963320265530253936198855881834219572473465340066430911195287097169052104102950143908765061071222388644584657610897826600329285761572574333808917831790053506054502813539382849074640139435286177519351227426729151231510410777280822695713151654850732676750439959142514691312245784327588346705533438002851070147132057235589555754631340762028474411072943144307294864068829558229025361659981869306642518383442243446663197882429762426514497271435106260139954459797119155843446617011493099513397019881296449878958713768442144987253463727286155137727524965264680015969872810121788429480090031513124827708410217057527326818931186331366802876697948180881061181483482960864842036694286931781413252406305544037653936326401158328165412637193032132567446319069004188687418493876457718658176393011103603036595080266738857873956311024497862477068271465833429760701476718818791003199021301529631785453299762599029705578704514624219510912805689124794813416684508636125986852159200756141559893381063121554891676330839084026382398368692446980186825491183236208820443276640192832197013940675362885803325319180696822966245365969615091694895116932102066953395929923566164953631953300213749237570959589768511977206753872398593491524205055456473588729256485427750450726820024052082421750806138201696801518103809380652065398756886554406436508783963406854154396907728907501402669587521125053242385645936930355067394461628958702229366446246550404082615955906615207614905918467848420734034845068098686788512672900872653475675197988275988746739005467286623708969878349093759986298296769623449620783746656097145234668872454611232185801030912158831024679830558671843512385344997404716097728506708383992767793373169155331027521291056896570725629034581547135205940347972933797643762711615113881118143658974287637665657658542152768319823700576147129762154582646539977601107694739386783069545159816719896576535729490355650191930053993399910444174742726271213372457466968974052677233849706028168789795978862035098935660885198316069595567940184292187403134011587242414766197969120697231896011872033391860521804858752116730458089528243976845999889090528628219040362478727551826320561918837755129580718572954333125901516393395864628267979374621863028307029947934904983318851202613618646944673690492270578489948938927636952304830415072881640807069303381802458213819705661581003256747178326692911778433884746435944085222144893223045968247134119881128518240484859416143273980726352661831359755149027303591350008697435591120338341102492856363945943870499632505396792843275438121329839525697226101190207062673467323677848743154183316690184580216697217469044835990912217698018915100027220033530505794251629400772477227224432793577597200267327182273137026136168455957984488589458236265006856251935503672925285975702971716071056982689696642971773235579287525782044230803873235098191196286349877290096295778172961903456677655314286093763479795195792463122114956026533790890283965099914129648003810736257572658519599732017074247546394679013981753451712578334344487758979461453523447662724268270676410958411644325682421902448095912756907342816643699435768697010322552599153750035913225265614615746030595712367012653206300499031514555730399092869507961437542776467495787191406419601088711983248582791870107180276322697482499247874792050449557400648701830329296698549538596373512383185040463958368647113718076930728032368611215771622776580297317162686719566089991173751001347367051713199437946470533596998141238617318310123673733775672565296369766651274682239403581785721941912707404663770386333403445478320318036111188695095256565283357414109728713551558083860603952561484123169346699423680600191837898232563940126175796864303639605647290542434847700722826978948404399601975580534514314936610263637916834537977777052793431982132167206073235561396241363514153971810728364615587226944389513685676504643050150019815874505869847174023254752137753977727874667209335130964690841429333814292882588169000229644858191534692615346832900052071838569929637639463440424818998866925786034416782219619563981233809457775644482223672057320315744919138365634262968601403921951651130150489644411788114342623895756654860970821991050938968959152866695717132034099912413391982549352415230453197264116116257444678672927038878971659129143482255511881532355392063146958244812826968809184486437264907678789141284200674931601234983523270774092233771928935259732941015302830358151338938043024034920161304248317133101294022003408190001603222894806773771263964799286761360431816242691137103637086816460676171055657809906214058224202986504690441842928761611239448578865177706612622841005584960137095373025360803483878507413083603164275846981434050707821266876751091542959271657490872645810764838519291322882620415371945190360371502045264117452785965971626246436057222743213874580137959356984629507520081023809572233491370360049972586249987764541227106949361395441662662079862918921460606636151907163798962727538293683392477568366729153047515372952586003549735179787637380547325463987306296221326472297014523292688123257174312032661661193187722250695664350344971365364859710836712835503113146776492141160254357925201251610753322308361877217256967976181014991606255620296081481522069490571377290839484733379286706704755585336936328510814592538211747908198523319868735772614143719673509391672605001864783282062518797819401259355287438218353145234884487935452506518559784915699018501327917981548916119267682404979534366096658694371579200608046336636463984414471953072703110445735504863426006878048912967037967108871088466752382883629302977774853849663206393634193876337939711321178878753280824747260615841064602850038546642571759914297154003349213189091825950312863624690560521838289315402377516911063561481617631532422945697024169594192685184777934525089238771765097270120643855297561155453415006499803847094656725309245695762445307156704691242069526312953498945676503340079873198566900023213045076954819535349738935971697932418991781965078282334489601585440226519861159888352178427440916770059128224021297625155515239231408899333072073823544229864837044962625017585449874661337997407402849854215005802386386883535186034169055098008257358106784847637164445512747115665296158855734811323449364093164276425283709202151272083247952176678202095635350847339713172733375653142066336596190926040980263568729126208793153678117994689689495732241254600126673346609936810220199004096667617991123231196653572894253900944741997071444100906668522027072816389087963890822517096946720019208464387519265909067817721060759116280621019649163187588583934446290758597811215212097334719949756376867999812203426704874719728499625163621128767804389604380150289089896924235270867789955160895063416955290619315053203711578699729717576588188934336313681128283609480387260278544657366667756845644833041227280334817943969113205276421282639507063742487846419202404592733183115434091371172350606962808265592305208218606285075424437788287763666852183100038139043475120297055523210363377907467763668513995521882100077830228109846019656971984562884904149785465920190611220149936492099667603950299766928000954664917861209657312206919791362433182900525449597497106472883386283032705598293144257567847181635119257587255980913355821582282801602365861114180979374732631061868291134021218534021978425585924207281457138498179916462013586891707874659919207540908294597743388474856176455972651026868115409102836181034165422675478216706653343046368247605691241610576324429179062066029195274358855087357438253869751986056055242385598663246373060153904627472541136769388582381373367405915793276617189293281407756726680797450710333902556047415732277607525558815959723742294239169922303996031549638694520868915277711313764635701824530867755277792445424537076447452533280214739333491182701982647446985681634797250399789496516579638760054317270532035801466730950532464851087481000610696722865154988561167375461626219158939729392070993997647689747625453619082186989979061269734887488488076253868761226772568183133501847657968114704159397112964219764141111997136931827367756990954049764421486190854083595479493060781434266254159149682700676059626865698672204936553938594944565324450975304973132541183998023640818929779388956255044147627578835595854582302131621171293734761542827500474679950336870038546464059374378240139860096076681020312553540006840839084181036449022312565677826021923185687936181662710551489736667965028233845694038326860746444579535792144351191946327589187091367625997700645759426329482084080358817952466601087181589198891609953313054671920939470562294287767247757673915001668623956717585864458785113867428865748437054029752044813257857704221518700375460448526716495115511610014181653487197184515091739888329559196076307680984343891693186876572992418532987727633383629415597938441733000967249102211777368910303281479612263294290159520852693924848573129350340584176906178443627533791329978409676137752836222867089047155582729024141202254432715134261883183035894752405470425769256220279969418003925315609983437267764778627342958471725585253441700089887454927148759436366739842393091331937983127284296792218939929877237843487787531245823865841136079494485325655297195532440046408444708816537806009172740339645524630427996093377681410266495347801375974984135414230072989278606114095497303977904006178709394053336029549893940770421974756634370604329242776577589545522426759214012686776125885506816260705291602286013652348991409015415356935929511114726933546640689596929749264644993366113928707611312001206897137997539491766325554635709229888487657702368313790783260359093325648298736005383379182575227911268331264180937164393525590460075708676723119676136063239321938211549168304432091067514880486842050697108170930821496471130326424832043064640610140686740667299868481965008077283270784528137718238281385710964929323449692584947676289129388064669939843536350471930518315175953349509453707680127271682729206401687843147056353983014630089171758446449917681897668984321936561737489719744946377956466463904618920241226125378215866550369495968579723974218110544280606059799974923879194498732773373907692630937947205080761986848529819113058537967803743517516008335229658298995470704250468745200370352695985046283788050814222488218352834658694455404073479786807102346534555957438500387113998919633772451193318595164901884142275854027251424887747761308211775700496163081554866148993913700066694920036038383542817480429938967247207686250444877409390408858897756979811414814480784975356932524150691603147587489248424378111131260390667643445431113750137402231413540662459907276384819894303426163301160177181969570279353082529942819921640151890942718438674146245222578253224921584583658616726624505924002214730222647276573320063178422996218020685010076277703771529365591515516570369134741011566469528287397575597459417557347973779346758486017082981903416629063873967704928583676975382006745924479338686064456975846590774026041449002436992722612713257879296670789134037547123237561349663093050520021969432498830783517345411783729663103124711411278969125510244120692093960821185306155344137915942341705081479290544283447022459481411587293584589872585282353063401079231429564517536911177549174359516533221052416035113005994700472694122307138544307149947528706580878655347253916414362653133198337314318001379141487500343174574502815356523468308823899054063031690322738213032387249687008066376216679056908463692632944814896670523800301846855537910719130494700389792910386029236810594100053718037149765338649614717742129948888411326565970947454435923143241565057501633924135128612491988897325863445673674542317655235228961444873439695739870183785449335899536282594718788047388834301391700254574801979528064242381339799609846440186062937413843721178086276964053077068091532845784078981957704909624368999221250346986525110811910329683256763057421401994550493013116740351987199861941398889019459667044209345709902799662254172574405240889262357010740765298566713187229462305173010221728050869045240286458887383280212400210595747209362759902455177720283481676382290165457647269056461317066061678931246888025584392052480017636862305406971551818734021080520270355379856039152355760987991398138352128224476263146789717169560311293591158351160782883735588472898181170744616575414319572318801990420410524163671398600034320215349715805861887999485332926934848307323066601131137918150280926134219841925013848730336962167485019129763006762370232843803013351860443422695116755685746813337938697252032572387115211547270501154342777233067902998176943117655249873964402098500621449911202321941637685734690903959340717172856753615264119574584840935257901658353799805420019065866934604242632368816373897694007692731687623929280102102272151675760635276133670074542586065680420328174803713758948860281807062978055672432967864789467008678421543227860470607493013032183375614863972207284625416623997703975092290808342078746853499167262808955525710817946621492722936324557355580086326785487712151021768334016267086990029795838286201339406539863475599233377119585802535191892393717871900313499915264530033208142604405722150760693814496002448482764471614928886745860658635271512012349177743452300457939267957685663334458135065674890694267909600785377008157633760953393306864600030331023878807151861413365584171273336042802867109337457340782697655406292578088094982595734860420182483716014911938089444260145464887296357119517893688795480483702104373331807337876434027917638406163447720784189299875002474438317743040698430411950820195304009060906390553804545444156646554628970050818954102469631656468747707969589565275494298881300283711863703525274141693494458721827244939091712187146412711793566989539787679145409729486065547983951761020697398788791707717810935604281666852059382365589765814301963447813068121847585172298407074016068059917300096986271231757795456589486251915444191354318009260960287021383693242682638577377634880843082951428221377248584946772131954444366324732474268605506854526223719287043818825300839220972796879412988453927105403287211369383739173514156178859870554585909895911157441134097660963954476351936397797749364812836696561213929307035795342809384827246615069859339749345272544236275492765660474868211140443869746234775240533564943850238942167354278393694129363847142610809829615034254725602730689602864484937088600713049030600727496294224589325617704757294572502592759756920991844779135039863825147917898410104500401607629196399088436222858398550620758773555236407539313438251510257148865121448122031578105478762342831954585533539615970114825692274862639055638238920389596927026775472330176489082668453847230275471874804854544081016207270921780284294241765971084777723900282443606208320519578740478199939161209084852932076496936276451521926845756914018995145517303700699204760983540871639526766220104012109185348671213251105450757932664323351243128128816803583872576189138228260730463881503334874485061825802312890551179321916997538595116553438114379416818993193536670079488058129446682810269333514984662537949510022801801159901033427786116233024366993745508296186665397310256701859921974139944947062356422004899109250676091872989073929234217013386625769896986101835665939019009137514497474363820718969156709230950703905286610093779627309909119016098381070838522254937280595501446939615509807210242124056435662590311825463692764925463105848803380946159702684596451836245059441217148312918852664258115348417345809526541693851668268205090147685597462856875268780041565318681620416111186617983199705952244040250674977639847608963334037796861882886685643957404405469992977337234410617678069047345347392096917303491595968890717445986646444061511386380821306725815730721348041563432897820399344650000291136454245913048404272253815194102724141512732624319411183846819802018040799341126629210038183594298255706690397683767767488231169090409396515544963776891481485994887646938109781967018861096833785105699081359512072419529495144112341529911759833858325370699219378592602557954573682549863068683734076649651497734183425423606165019607408559142562086455873533723111108022910060707694821009999851456100388292199947965328297983707968639414826392356043888589180379613677941518531394566199741648052429006220170633680596760471868911717851818029637837323115920074681334397877799546001695608830596537739394477501290466320693422237004263072704118085144609832629825731069064502076609884072004530987048121347767252496203498714346774190697272917135996948623474059212822208079381753821988795576227868906638384405546137997813283539503155188414685371159682017110100581097409950350526191632373662136486702968161033597433255973393346834240501210718848524179637433413844701392605920618771273316901676662802927428440284861219947230575232900690935342538797282530771459058818832021865826362474679443347630510643459117271005210536344911448449498027536014094041613037343320625617133293505790553266664995365595330130033913478911326703008599285162183349035097580177845807058282536086229381093487598937874448346638148932673220388774754033319633856244681939819298074543126910861700251219620450298999739760325968662288719317118450172880809025036703170109830823622565735193471457084738204488601275617042545221927770180959294607049319501215386318846661247142283186446946473374124441843791739161782870991645675041723815272728845124760372344223384342421586393377475039540062765842920830705561006345518482356374536882319436335459027134029186834509755334598153952980483113606192248123395534554271730789071991887679322329158338879770761741283596686141111397293012030028481822188472737129293386437826554511077619646833621531177291854264872812285169273269224243035398240673632230966007809915401456879976528621906830709453605825406776818398117430755363201824857685158307090535604335860381414273179942606309246891510899738676697922653315745503129321629790891266744679919585245577546629114425470442946818840874790167579244598142340468134416756541346533566908607651583420836376009311011483714894140917219038304676389728948795297128022678127800948135494068485065940984493869262346448168678643899884066260136840411770330151576266477634236343168237485594123244101068869875416411393256140051756155269207433952960611819776391210170414103856022163445663381557594736631109743812149983066629940218252797577988203330548941855214588772137399387669820051135010664618057922589241389052333258956056183103834135656876862976260150355198677441003891212927680171744067339502727139123966899994197235252317753083429307773047962753099438436909278072225033710382573798574503636754090568090850932431171253250036548647434228242137067771998249031536232261866236102468012456217480994320943266461286532522625136858857757640770366527205821958497410651411791547244327591940304570952467504603668902654732635255834159669227821918156950783651204393140874406135342284487107440074902333456152981546929657887834504983995505323779288920035639884518132102585872673518906660874359979920658347889127841020445014160322486326552042014801196183370937309001759493968077238999330438283040338449092496477967703979231106087723713453772936260256309966024746035889399489713813716523091872531627233575006110643368529930524750481940991418684849230467712041150749501190669461038145814641078027640282214610952258767899501413855483694781940855318006841413964419477816981268779816505120907912736067788046508379744798264153598358946072018286652010201103029158039546065224194446320688234723485921541333336894118882445042514695352131617718662795401883555179350202487494968247560820872201702480968444289423586983035348633407178505907624882013162032272550279240275398693895065903753487334891550741813039732887114986967062300610086519377775893493117363932996103845877401435611470409025844541846943027450704581972281725953013952285358425064936156262665838703408303671311209488912626787781324703649016879912311070856393134768156637831766178354667894701424535126319993976288537471033497836738580820716190195834261122453992407501325635206868290731840426701453390463587848750189049056769431079425756869333984450435122177724439493772577729231773654378341391409811773423967303774148712290088911443046021295782034680173528505930896427948678383265468444480929064583488960043675794053647572786047032961275434241719592194905067890150016627466191249563557460279379324730743013651192096174403513417918021240182196867577089160499209248144708298800469135900860394660594730961969596333889559239942100064340258784100172496895959967179843773578491602196900800782481917626482198233751701290671730614283834831160889657908851155828591407492053197798204013005647315885574616698439895141836918075962970104158902248655825458382045953491870345517163246495993262466068238800885392205288382672838383127561996876220570091678504715635281336936359882786933509945466742701362048762851965078326337220341232726648487896774161201303413980218021294754684342537597817303998116341568774441374312648319846438090404014695335621064108740378872633198719268732062375159589043288548125955238286692192237451708010695604411359722344451640137421602503161094349973363279425207662180123875173403780863286045018241494777934637611097088258045440611845986008711054541899223770944791685693490300342771024006171752060047024898032372057557092292367510427408138454017477974365618567266294486207600895004698025089146094959328985876178384599526152223702639684069773673844037205835427590441009939284365377490032196764926112583078470097618209842315260951898178928031186187418370360233114238057601538978388413780154484156277589368656858973301472006027060292419410414076634557256047548378530474376652461018607678963750725669433597189179598473458891798979317247089540314823244848588203274721380858012155707959168172432096761532471804563512204985269009677984544585939752092907138217431050184969415133480127385433915472935882482076262064083008443790741208275089147674345939813939595494221169293203809462761962319357407197725182499760279470549133092964554865602981571122574781141012399412204364241189074011465617334995148326336774552979758998841988271595443405767746409781067705987503566999840779115015014604178208232042006794612531955139155071543387016115249165632082675929651184887173288035560783109461160103827767154841348608854747321791814666205469361724205888952044917861461924614000703433929457620788501203479048134169857854387648143422788981254472036969121398529361151267204762487779563607919266059702941379137718630623117495123651583313702785178087590089134944714828828336819933656920523622865795710533550118697799798537757676596918370024799699018192486140493024586611260484001308132828999812206462322674132254120142995612026305005434301452900404612560425182869948410079173889121121562275135878812964129413058901178284419236668151581144664213108485220792592695697392104262786931480989114642944052991443189876747921353668976143442245992232108749527532310104473220687347280984908619885674225983413881245202806755820612605021326204290589490899514687457789838258772386048548945852110358627550402887897911966543367323929289539123793172520077143416816197337329342423568681317027581017825720946551350416427345046702549518311016418483824023898777464601903863273932699564848819003236823116903979322604250931000482179056628793604121651747108528143935457206623934913895465133931969430928466998907287503756022585399222986211948456912664660987080258001547503389348690697677009047238284670450179139573473458724278004530765088983954725967506595350935717993164487585987596036587942924536526769251623261913437526012972008670458906259222112889429433198677044780961732112738646024166865519960112747979336437615200110312061293806360399756218038258373885979851795437224075124332096226636052665988452197450234871813364335816503322356062496154604024747429958514431016052030327505485649467697693437477137102173676462971540954113086497128925244021484708112190511862292141984560355981089596515388023238564069411971866800822161451592645973815161601434054613293981228857549764655550279572971317866764394988235843569480922106187589984470866198303214630157393643848821778674549051251788474600305641345804438783067800079438214078810439910517505087268653003922945039497377132306999174243722264429368360492998272682418902182850840512123423461553369007701634718304737775469141319068985773378068308851255912461626379985068471675442130695839282564661390149998356704212501601712847443259818571687438201295861994946047222745351666028463095353022810054061282020849395769222188300464786314115294456657820004079065618098620910883115004397429027016785431113876484461486439751896249474524394841755081712416885072251314888258315606681380793847312293030585918165021873118768521653553419298144393620426796929907871348386777159627590227447961178489985485949285098368386348703557500447307817050112886525024892740003126043037250912189942255353547697547978197280511911207997464736152844678257393709518229892805431537993395849380190370030702911597281066494901860605672518765658550864982414542909072275613931102018874832863386196181110526913111146746655266790563665810574356890418137452531257405631081761541919320148873935389825388902411146599161329263863320598131392683397817773575484258037817305628138125473085066510708589043597533761950724987048903383028638198842679040536920269824161844156812479550680277826868789476035794331451265142474394931635802852472565726813435073028479989319399163432998666806126472658278107506570637247375916875747003195059938806417501961199168121802823452654528671424981158798885988200751142290731011484586552788580088429181693754370241268792950142155422306604612072600816313301618058567149879428406828892983745822686598888718923253156889720484308255933793637534583241286357159374093635341255575797858234905498917317520956976552652299389391572403661374669860747620372887675616685271211365868138529339158280748124461034797811444793752213724225478214975919335787263877110516253426082282167397384020237727400577923180262723015406640327078255826734832040434654309141355882534147690719024144110445254304869034758319524990628273557798108005860365980089711244155251184487136383402219774804887954831794597681989577220787601747675570777759430007609061854865130881330590843608081448400273903359775377792611687135059120786186403578694656255206291427033971433546398909680572477724448948209897049766830705157826349049394717731186551834179456752853504722672796844705102320578683420086727707444340439741769117934167793109197023995689907239990936463990827516275502164339576893652417369930309556704021070436640110488588213475499558536172473417718880802924640255358823501628486092511118629007441246927563242007887931699056369464363451328744380510386887869303260406495457951211320243609739365798652265755829416812345565394280302485893597176848948771718311956598330138643392193825523260608420086707720099073366840569560778728657960020446025704666404345526682036124720105130709212666102099872152557868506418694994121330505804805216166269039853974721953302145101749931477845658257329317099050460424239748994775677733725501622094129424340332437276201706248944024354335242804448210455590664807834894720721867007459072858534102056848970075966560502426035441966633988843592401787917177828252968155997611662866877841743202669391072650002483431773130220524309815868455491855824407055616759196308755651912407287685030291189394441047307549422834090809381823689928537148180482878128558285786528123916227232258538302317722241310390926880997798329622977336852881572086406913770823532524059772310728000660311571279089516737824766438911236324733036373054757018710389582223609964934235017554312964950988314855529128181314763946568012922772623688794956692978182678866626424294093568433779293394228643560401489082186115755476293242943888677295325214275869126751631950164876507189836681465929246991586175077695746838081318082675674109161906510113101400290492335308108484382435736875206008555011202300482076340976626075481330101877649254309991903871474666345033420024930668025250947188630865882717958145484450522138956094922766235244624594228688801743057335792735708856016870177303061637024592326885607698269225481074882896426439643325574370958800528404552877402435647857687204053229328798852279501725750069191292508226311190361507079388171639366062890335830287542222107936158905061842710277705252529884052761299096491945903024801589287452777574676478045247060648347241607470866061215742835708745060489773499180181799612435663421558431076769078797952485230329014784488496301463984567592392892704096941056189705434836951269058470038215086411341207092878746204473049266736352531304617085593244940533089400165836966804899248499612651242867527773166510092387236517378637301366486264531560650137894582874834148624267508227080583772187694601971416825586761763040222598264382458644371713420421830813631334343338424348799258702525663683161727806591781982009686016030949653819457101386068299943325993464618955244393361356716008117392274499263925823889591320501012543905255844709764544850630768863668981993843684255470401448570089379479970315379939898042669695454722394359385198256004255673588648556615564304362404658090608634341167738105839593456620173893485421838352253995587357542320150160114426839044324184412567284577634579975522842813154511067560716834311802768962129527014114101332540993795070501860613556091467298933801216492791373574498662772843785553298515691294587820041936549213308107983664014400799508082052258178923114258136199833380495739058288985158331862767295768956598801586220564119505488335346307213791329460572785819749941229419320578024569203494635847345614445705202869117286502687457001518761436909855826072873474950516615140296090195963559769274254478601258663854027757469017144806999486461120857026804990052458610599131252273342068454933558840966420333417030036108001607143629891531682984236046919626123238417292008816589570320250436486293613653290898044436517009817131179522023389290133106527164382494866715689328049637291148428476745872977267481746232554148301563879531996759960096334381378702990864523805377927696862982095982353599490450382477486704156060840096182994550123695069722424782392325345709844326357518619186496310416874273456405010216904229021130625201667177484884385267011058070802390886910892138768229075828793010281510344973030352432072041009445333286520207310701673348924333182046382784342402836143914742817145132800279373906087328647958678065441074074520446846200205475260126966233546623235936442019475477221057848407002094753662583290368919656083310430862913421966450190010308209932630376632964467667255704824515455435751225093303669745717509063522997890586706473952625208218003124032558689023464802657817561608987805637392311963314118258047988214474810110873823500851735301251700837335809445619506043297199872172541994298641930195377392787851216680198376709061319956954599823750393580219967937582668689249278304947816375027993388996734444231729124633462961322213816104000092455958404920672336572078049116859611533404529046605613288292128272369195748644371713760603561634568163484376503792100348375328910218634883623519230839574279502026931105163594363043197595331498273905838096231751143071063278002337821148873970289358189503300010949918469004703403027009630999418798167203210241820980384143850457140319915551273355783522175571204760305686660730824507836428841861948771558464977810293211613506976694467172347284504733791744946420694714932655948572569994687442918900639209707041298097229244812396556910953661370330334750978334850929016494026801869262117162494971299958902305834590636663930159459954986672910912095271925895666061044375067362938265100632493129668628789556828538855401222007836241308898518039289481008107565965197840249708376551468430958626874725135765107062150165990642214931920779184067322579206479033564283316281758936941272537563847429721864609458410358744209184518237771582271165060501774676724434515084579623763615912893938848967861771675065461921133820566882193741276466094978616280377392009264683111401340147047801172373378874092007985518800576076108256388838043705645445201760231030967300021191241624212163745504612919656020043067979363763084327624050968327178533972858235327066914539126050406092162790765246927517452672491183609667496396247240535260077846281719531486056367366402152826978508603396178734334294388453507523547809296830387436681269103050894676281242631027691195882856647566751827858268726069656315513903241708372285977533973465795930426888498724321104140831404313481838580598597058539057047646100840891112463467695288584857232501984172041522331878979194111127272564334018244926030308731246821525129300049053899711809631221571271977728049923630283434214728036878679494352162748966976041350685685490175454894270231575186307227766941363793079288861566442832809709674409109345580505354124495132234567054129877324852238009424797595323240314849514306009649175401673531907805722536779083881013330135281240581119327787035459129553696291201704265248368978354845677084733376849967306151728520023413059956938168878184091461990845524420115920390501671285124508617373628085403110520785283050111257646948034218143176218300325566349380718813137740113766147924841122424430692184201292963987571990387955615282384100926377704235010994139959425752848347697630848408427282957086196990265025226983278738712166450295265559820458473953304773924358391943684734718320498871044963625703199441654279415265622627791439572137723779623323520548669226986701577857141398536080643643668632549655956986457140752434023745617889081216201351139251743427232335525108888358023338389594692661563507072303627721418908421587217394189296280575891835980526943293014934045299862842950925632799087640122286488494265947389726108727308093178352957996857934395776069427235946455444452089562007409203772418181446634337643117762620605418599517378617225472754194052172337705029012408155006738935345431536815505792344467463288840994600362634007793465645524989083852108585447370872079026255169066267751343731636824564624018079261150094069544262359933097792089218302754838169300322788233366502858295663375739694403982973811612187332046032950138056422087748926217769194129932236941763790834572890189223843433120736508741095706851710844818473568949027339322323226946954770841735709088181623943929262907694276475676625380842253092754569578896856457114491716173684480221189659500552577048498628030715471275477318603477995945226870655109680407469662551593852866137472136269507733907068351767649805460914865420509896592861043276467209385747145895989476539534430246847272950919455562484491061962083425444747076837534217268426800859494747513548913208396644201914174163158603163337347145371768965299461519548907301168330455704069180033073070479709695196897094396890586526034948453519355966604280786629814061008992237060499210423239405673125399373472470821123718238080506322288156423991852589905498770235377305304167816353111324146147685098822089577900792523672062135099524563449942049322890439283198688279285941763299555768360705528124597565102322777685948216927527289231975357021710715313328618690716872287906925209568156690895741634971089045618571278929831518390591001676266293367190787620036976906449096506847290684416875118663426412489976897839093689816838237915588140016368442413906728527316032489275129101285509684914601041238454523347143118878912927401806860696708152035134505358481307752111482528278094837135473635126211114180114761501268106421964377904917739021673224681992039548474653239802271826757518443485968169437369375510935352959267646326779820457734694807500587715440118201945161356388052667855848301353582431792832208769856188797803601683186749093178838854074571138957052754326877010186531684352366091810116802474381375381650023074063900621175849039146408089429074879156828858520751395672892686461176790782169455691235093009935523552757291841293350670120701281696993288835278889712531274054013667532298715034031347461538521005913269365673548081093029383337160545232867090492140263404480374235972946057981600476798778143990217673186567773269588925504808252587748464222606329805024851826907717136652960958735577892857528199779320700677810518850187529354806047119450992264290599223956094451461974070703443156097093015222585284018110136898313421111543912101490836270382652096149025310242161753510898119876583875960082601169103268772622387134819733469809584866290543049540878067413818957785805155902414248333040878190319136618785789001391063876906349441624409635931580134209064323754574677164971685511762993550823048543733554436584434339272132114498909888827471364521779261852293658997983663614661443301324728284295303897690463638747839693995926711030100927899872459503059006047549522029959731058498887753854662578360810576870571403664728424323094132471039223481501035938784680869950515937560700538086405260051651958468005834107177159544953267185899465127205439088807314913747228503981725404657507200823801840865822164145739000146760077892235041873410617260251863362260085070192506274256637325195099360999329547304569999142385519194396804564497424148394371951492243473738575069541180034781406373922340223880302907438522866093944379418403380300008761388666254283011154273966821705536615044056166455399522735968646209502593570983185530814066908703198399879780872867523678669069461935522682610200161362763065990393373992192747991586190266474245201633095344025502631388938201325870803067121353253082237770051542303986628218298383821468890791316474105474506043536658553705546542105674353793128185366115604506118180936575408466883120525725469753600164140071836073578268337518703129422344574228202677675310804544140212581494888347619459013388286854457233885040535771024011336904053870636644016397671027431872098794551093719914656259141199065962780766671080662994176161230225200908469184157017241457954135370952790904343932978889585887151652390501322984780981052449876032729846282036644151574028420313327981020461386094692685401653715385575599116005966101899852181154785218886154841144518272525013944802087118447990790761348024429692905705092862084817667164596589513446565063474249445686107672111015536671486348102459159826773458776649578342340620057315450175375870630256214866726961085069116827909889168302269192005956623067341250746177341647056377339996808389658449178324533616235708381841591830045923458699356125396664391131911031357182379122898849187207679456766820062636400467877761193287657100909577224017836459618641350640487619313322364447371778245444137976078980460063436339317336972577583433618234466274743566943637798996574021170041273068589003375274390588275211351781818220016307335697892912190938115197384673895430487160753058146503245958641779637888485499403624022650794994879890484775804397506118514949715223799008539678222428197450239500848856539822970409239387774554860877435233331860770269651909991033684885591729970754374100542878236018432220454147679480982307292627521373888896717241859362492196578006001121370213880456125573425103288213439284102113676004565237791647082823901314836277501831745957447020706719081223638290808855222777218774270938516679866431354037879049125177327609233226127559663192343941522605553428034789644786265453720958991721816381774626242354413569433138404916783916864983243335442364996413246035769695480125768526315004691843237284238528860912826952913005601559884225379345201912129605692626562986884897887492353645661295780652194306931108986185556806926066345864488235280320946129234261611995179356703371988431058164990102637208737870455998346100480970425161593048011192144812851395286936584649323792802664312538876306217706460954537104882951769661941559573882489183644480636912249520044641114711523346174624293042282805538249379681370163101632771400822833898537308496990155024051920777004131451802473784255523377435423644011026333721054552496255645348090983323232787312553084953093447475859066656701281389514414261956250200303484982516361536301214519076639349594882597062541679786156067325380913788951696288297850220728780566374163961277151716139609599593012487722355780900874391780185536550225131713932843984099189463533322880950025748756123450488768272969042906505300132315704631016498527748456570611307778957738428429729453955093145536967786102261382717706145916483113044619233904364506093073291920720201755190017454934872087474331910345970778389105269104200797271618854611615012520678938855878868918517037175027084828142614856561326806382704096143356597952787275220406562800565195784495438982697073027158000616259967230314286421338889311775889147240545590267278322203357472847619963779441425612831975894224899285576778762562186167394411089335098634316654043783145158032927524793212382651359555781678959923312481936900755740866006751301549403141738466148932841341500445585512702071287002563494720139783231745271217590058033519778742557964653487851584798580340608594412776008023564956647045569453217078329592659664505533737870036117746623210855504065275740558677325475908285072926684173190994077504633872523490680221121125973384012009853131529640628570791114760975367466482836444649837342507698290481598260925413224026073913811718084225996518647485159504038916939430195383431245859112495044792617874509680487110816007286470794993177893372037563288907871201693485141163886494766847924977862665481079182926408968758911177397816830406096447139566231263598952037368737442972151486458441792102234892233450169285586154225213935094602535334203135590995502611194415234559840166217187836589263095094591204543178081447867534129183626592257448312360232156358630041814003518140227487426582463993353615701318040238458616395579746987044423660153629856360868104566767879852070689953943785707213365624514096723916008051600062662280246747199333695958285875303401508133487838035921128721313186271632764746314922834879323641235569261299974343816776369470588705387135004792129316205835770947424028697570596917090194442935751167923888790051311618243782629420213342137884080005451946404897679899156788690698637218642632956815873121860511234060380364482102226108125642048058535683748272567481971396264475040336480726594294425556122582344232546777210132819551228955566012663562160786757807994781204581534422039023677158719763614059676526658382061631234024391734111446091977670666076846350409462144201971839353282014063436169067362605592871516599244383596971173931737341905910905119641478819373313857557507144469943813052285549912653308316260864509527041887959431793730213032329416973974906452083125926127267089227538004316018844391619529696601838625377605456417106615536660145986693421038262427562811000633556875824393912373702305798825676802895194806646681569640510182714244361383714146190703843230274727096969155510378234195026893601125110746250141622610306053619942745692528919414136547632075446437880169086134178658251233278966186818996835071916981318729050262566703453665289811580514852371775898181871370773453223779099088816998521464625134882581073058854729807265618298281861455622166016999142537755748719547332184933067311786814475840057846355784367982893892482296749121641941810996314457438296335969306100547795602387434908371687847290057508498942512534835165538125840446045679256098805707062049803235863669169446895555383365879629573195367403428828248801298123160957620346612050404784330574753956980658929617380385365555487066296009865804313056732001151447622254444526870608455519887713117066891509788651100805911120312558772797392250203849221123155971901856219043056002485566876851135054113432580799990135448662616194648068583275489731785441830413109445638689951184539242445892312744551117700107717302599048870570515883640414315749676453333099215245744904162511464793355399567898584672539500229643894891616366119945516670096034047213269490634663021105959124002212468862065588743474119757689665515703331166120696242045884565349079717983897485464257084989950774673855743600130814901361947918271289387373140490921386413542111597187758416199879866758969183752668002637868293036471024385742714513373188723568539980869501551086607960061837104585706208780179495420548890678303888350238489513260606117989428857512708346869923565637308236131967110105198751153023154852142471130597043920190003326737451018999045025280051058735221036898658208113016537667585090684070913478196153901791328375716304523564239399401385022110104864490931068603424174249940663071003247336090380074886949227903146269002700423727599260268826097512869253959949312988529391806460127903244838906879139271657327794000616092681988046277641637235838478805740162231677874229262053631762923023570402239329327828301767811905094117464884893454532757422676932397772648810732692860101835224235532410078456168114761592386788277142078647946940239604955311259867728420133202055908679038396845160086204949881334406892388289962799327993134171039753055121894259602312438433375762972319454735136627561970265315205392165504095749367860814144654260439591152653671113278090200149754209316696540878505797959746794185257885709231599989772129034084987559390652416048700697649798490929035777107034459750021553586550356509890994587162741927848034237728312445146651095489512153832221675269684442464140727097060360090022609376407020299425123498839325421421238009130406621007218222007317063733043099460085081784882123618156785218456363418557693376414645284301857906774660826404090362177080137028778002611678503873542425713085000629721480635318016371906362403883309652933798408142269549604832670857148218305150910292282605334637098911859549697486466077152860549562439735500570995436352374384916094747270283365226304706976677836377317158018507569030204438438567525783409532453519345005127852227645462406455844700036233003804206323522102451398418963359440193362965675909997049207136024778736644647097210913721005344655304647725207505112787967030376278073049932659945808030951767353054520951979827574116131274738335025304861035874430512697230074607013082796091001896198065104527436787978519306783941073678860557194612313388640729359323512424618356175205610567644430722041080406616668515146579475394445378428960933793714456707392353467973673504100197052055041068927680131624263459317566218347337134599019095534393112288375975530807504341563879685426916187206264005520557313886680294651010709383892172808596985182994760314416225534720749520907656630142245267717050805391525906919748337719719160800004559140460480623091611094052982697657323875172247751944470308681324880536636459477993251047342993378710321963337349938921021045688798992814089369685768319439836752312636636937638062600097745706000137139501852975361008556809781190447646434866853455692104130820115461368751984553376113439037634750907641118784807277231257519300910504610658167686748603776867541898034001670042466806110023269802011840003808444541790233015534506860131309799776661899563964166999599673579977979544402394078080981052342774807583326495783704688829009992022960438062408683808262079448694624296197817179017809381770090856516376084142453956241206545837782754024759372594902053279297757321494712658440067335615218561245942174409570515421554849397264694003860761327012676008542069934680138702221963008168724795039709388527733801675458251528923256411432574159181922320860985898642451316784548373298934239768050846048192956052996416240641916968571936673550375090963267352106706777580265843572094649487242766651594924594227558398648256720416996957553229968889965677411228801881353620636296281099207819519609834801237622581603566217328738780892817306910613599395382885587501301210155301528861183375414828180422930580237241212769831319773669780800155385945914558150331504872563313990747164529898353467368382169144170592869700915297815710905512497592650155757386641895249044862427764093725032449780675876159234487879877832971793169767577353496818247793214677798988556046683697720083568201119251114777990281833854702478050002794728728160069970978021983730902621289832569782326470429083560833106328112470259706812447730142386535055225135511570852912556902041925199626820682393932914946249221521093210239045579873469045786130903498447234280987165068977035818103217459387326009419939058895769741091491971888148969133325370311617554451443133876592772728258672597849403455640722084204156524964820275304829219746264635409848143667099259909278820805625313650107093387698687950434618835524920038629978403624059316825731051699857833097025098090141306008896641444845549389671306358448895371502587716178435937906403291703149694885416321629261579241120860396498205034221946588765421697422666833269282648549441960434217202201306680606877797501349443679325805874004818466643781539879867118388396403179035187611344659951538717455859523239931245519174169637986921514033816429228663626897200010170663726237711777111443502350251277927221984835193235278183179694700070353723889166356829187627935753695912219724391536217510057948336256565970746539872866035241362669218213999765351488342634879801258198690367940910291113304901578300380804753642455164974148618606245589341477314223309074393704416500678015275685275010737764544484546405163618170819055079135112837767776635223293321582196279747742034053385494594993723112329766568079072272496941904841033704020659273639153031849975955124093439920829255492687022191099629007537263864286948419940034636786297168108162144480512351508413699532482113477785896943764621376007972125307096782522308315984729321054641571514634813885810089653314013475668985173754525645923650466246018044843481563943002285632477983991915915103877345008507489249056142108257340096443983762691785554256530921605702641129090015973306370564931719121346265028601702492108036174554416828352711025235644327686084201409407123570031590387583489181550498307748005106407137961298058510643778291805629508764901765218187434413956025733133783410052974993723330848321320276213743174218578390551143235104357721160369205173835236011158960666978832956281626018203764197919498692483152216579791987775792997968970999208492764415520489123631310542494519322288143447153834221737221147608595536261048803918113669260585687125643718294679618009901007980931411658718545018458642994118594756006888447384560091048063582447012092153949217519948576086878241220930277686740728619874960243350748218260759510924145429774262557099772631283754127175436204259870853454061399452621394937884607610785862248986057528737620651694308078365252441959393188566850877306932677907784444550682141518510251766456385372209585449711157730905900073451883771817571205790581952949487789246263785559058740719306316236346782928306641864983823666936928388631865723515863334660231464030690443384537341039780485152290109262768192596455885799911190032683914751520007275881881777887278672277124134584376297278628566192391423256305772522025556607585613489067646698662048725830047994297540434946977850469876674371895734832133693550701172303339951624332249741739567449740818393416850150820238374715065461662720710424443121570833709388929177882451300662298254680134680217051649088556858446060356628773643008291319569032584238252694938353284624076165403025909186829492323637963200626017783314792105394793500509940941790429230618076669842497695756408365205069356264678597373003395271912544905839081937058279454344233300284455340148187408508233873899673653679531848388667322031974621039368431216089073877734133062987449296303588613844170488678274225392029779185894046457881421709079419247606026386750482142291055450401887214322536298575262686015732069794303724232747894192817264344792941983809204246259138810631087850399414119816303375946493122366156914391669281341014967200815894728707380295290382379449857897189999719321571093384679360967026643766609706761538143908585243761643773895240154435856179257530004660397418486270178696000715909152728271616257104637238308465140158966131871872396533809805870717247334296956166042395267850475563888189275489512542356122664238990077065702158913124604442897081906921849111031196052516502020022193130521666747155802497203891827190544453531096718244090712198665526376831753283161414730389361913679530132380657943374517650172833723100147199375309629035363773220580887202832035146979601848281604403574421473493922397643816420578247697027410880070235439956015146177939210061182940775318216428992663254678646253362048366394428434157567869120001360350977699849962240809240193997218349249447014543650589730512731386237627656554423394736189039984850005522499224515578658894564034414796793343711190729085562418265875441702969144887716497446582609638873597103039196849723777307880965387479512657568962030590014767064892608174641244712719811314694100879927093995225312613789812190094090593501411519979855965327157210356706821161876458172651943913062408219437683494592805872954865911130745952668334890998855329925413514533134065149396080858075314196902702449457071674752957174093038917486372030157868320294793474592450492476091160967974116324060999405921063071698554953667762261609032105564636580660879989736437348032979989760342473587695294287681816517861626666151290828859305896374117567010405898940465993712093379213615453994407654255926204631178354181364449538216823522590299075979178844350211451045394544430899108756207525830709057281907182938373531911925719120892841632000720999469726436970615224545886512974156186181902794965575904269289636249102198237327777493889486870816940536728842798488670985226237397105138879238518952686366224113231991000852076017470483058291305136466272683974776920641983170592761714691440211409048919868866846583005300438668902233319664537661112657348106249637309525221415059961200619571352983337667962720209325207892619938611535738727923374300620437209482436330748858759145324327990114271711070564472545411423660672979252808456663037468715809455394914774996307434248008204705032261070358514993994056336477476964920157409096530349299867173825318802615456293558232512755906395876449898026105562490136841671013109161428117500915996079167567419386668029714651101646294062045117744020622043308129021397374208092297562702761294167590647528370841169250758540756082052250362570675419872207156006790568889724433230821827472736645545129183905057218005126498811047855813413475425539533943444269102532346011952446774007290053860031551779571844610512665671080097966309931741704648013010797097682552962031644184519982189513405185724712839480438562996959051597360107440344394302373636965227993221207126405222577906193903866232028860323713981931321128341837411261609623567569911528315182293387460087427601745867873477606622635775304006061861915650898970879702564218973846016672817291104983311655428020149063178487241070996787384579032620554934320964557136867580062972637387726917048092819625051016212508788714156160250727315362235506264787224644288074724953392715401889252915182033553486551138523349217248631863854299592026029486126332356416167282320279542663259663597395275851024416390702108025454599255789875542546818464164283189002193165148529674370948801996848383681341537606898558600308042465388888494668968335551564305377844876613578228525855772495686980450778651183405211585140776147322736856342242459099109193121711327555681650815460599398229539987449595219665173894649495466136942773537226123190962580478528232021693303525666766954332565509788819709865234796021904318261347933832151036529169255702755028887987117876453605336041343821073660124047884943638203745027473260056433923863171547542274129614658070611919499931064120675437439241865072267517015559735324870847172789146674167833506082912586489205304206563066258131795242093031504773068528011460264998406009607399487998401074878718415848862013617969377863601046134949965725152099502129641152184800135008643659594796736441320601351126698045482186684067227858898914110437594204815711446169383678518118750414406813561581035491020089565692534241796947366239865105697431847102183851715511648269397998206735326673029367392807496185687191338771621978486183685928160275178964756715710327599952324606924822124262293213136858484430938375449302097548327394736899332894222160997345892642916145117156582243232525075061728740638048467482120711025443502954993080269192494934410869738282275326598360676270691982650049593523010251817765435472976256162970718143417935999379599453539219526772610324897206730774817771242792604675047254267705397246901718802920804153590512609799875417243376230780384600144758708356045123494720967176182052844987208533782289514356284305338674867168876386718731175839115967115452840099998506717721411767805254013892616181718495993226662193981147463106750224516476136387330834906604065693311043478722971539124253916890785700496207937282301153963421400090953259453295506511103703705625704858145971345035404551345134598484187718143066117514666159810070393099082081083567975106802732720029754789398173119773231108278729782558713310602750285699994393182591613796432343273708878244604109291886972069448893947156065504263338957525659431568359343158738071279387551146280588028977607717794970451371148125668378816478037476465791328033683313637500784974411362055210264477642370559994497299599647188967037148300016068131190406834360492134864040995752217641873237702954434182742521317156039835302648408776436989362330558614161689216393384055857863105224666224420089109572168290020438370852213300053064728043007034466080525161275004559079419617640890017388711714954706616321573464222743261294027727993832985785628573698088494103456979077488510038806584793017707643593487882482282602856601944965966035933496437271793467761010554715620441199654642727223366334398646801223783577125611202010867446514823100151822350652712333199472717666733482211173359233566513085420827988778274890512798337191913074470762447700115209019777755733612307730369679372870110698635560411588666312943429524211934163802685415201905621557628497714728672333288541831437293127159626934078480775861340816141357051736065912567795439705604156022932827176796042586865711195766471426876811034924288470462026394902689546472198928482128285037679992575650117452043103733096706554179013248697524294844971847742983716277555034463560835507671014647762865720182380473710007171492845459668776212398783648168675165747333705990684312960128387761225621310058701534953931105959937588812001792650548119826399370582136325931541875872359590402162227678871253062114064418426795400634467748911598681304315498483185493631099292233527588881022944060817432101177251807075199590383038236258987543268242366296997572156649833580616707552114899747494043375103820442856193253205128340402337958917310138526573653646939565584125498556381136117557935635810246347035374548152928929473056552594283044796803237920733847104731950744170749994681060399503890166308188160928939368403233063376827789163031822318436743118625433095110782448512148402606995513251758046269474325766540578588382233943049834539745678177866579918030567014545404820245020891282109047950343439138849225924901473379600000050393565786260506501501249379304310417217578624914079255490238850292300642425666691133240303770346095840559414889216598616389856886409678769773990279439723566130785018395561687264209590396757939240607384592992465190795807670520186902768573992427286366867963446034634799709097230129904899223191321453684580087703574620811797902140224617551312082420425023761192137235780898224493819574762045733417874615256833323206079583936266876168995387720067169632979735686375880247179420777028964344122054913153435619521283239292623801104138219667099599885368674124543909362544551972844259629345648170260643132276021919584581402970083979388560585859682776953609837370053576992208187045667996446190412302471236018155064652452459332136844736633356316842966785786208902238491583799295434812186245497913086376551410210862106393684475424053054207614038728067600172909055017454868895608184769795654200059295216910994046379100140305888158576617458623814280605752135410223498736934349295302436736103981023825801605054059112615319028187448207688604476978336872402488689569001759814050455298609447276853427978836321240906235186884634100039766352922949097580893630240688739147819903993363205195015315589543991450546713622348758919513529138263160949966659829553613232403711304767774953598724557236584473911617947642166771251387118430071853325588793678868512159838497830774172629354201577968511896066430767319639158497929303376430209089648915296943297388707664584695394040454335600698286448654425140178572137995421739603023494510982249860728747317428474123473424991037700386967692862540645736738624582737706624842500721232436293681511048688646825958726356835241787490233297799518687871457794628494456234967965885287759575778612794225742281362324169713159406123755832100940883736862185397047227387549721714644349780950335875279339419662377573253426875543170142693001363598061535715547485700659066883469834275982529790694285368677832442991836702744252888374723679766551649133613213452196828843355147604512192461721832285224932941683380944939054685187078229535103205383073427642204098814380040440977730309277165557123884856849777906351930263653846698351491307808725203009570254721849609269577251855004281263450232671095704931633846715840111952657679348188840894118667190596778641464140014913174499353016569182299054929501113562808316983760688383603685686356708991132078072311706291661831235655795397569565760675107114960524874316196509939362158346209142489276978157952171189301813032617812797040470736312987682595207062915409929950346520767369057113223649964930734292184606211148822522517677844574473620057427072894034199755547535239040876506853146980496010338120757697002965641156551493624677992372938418069129746364578523823569837401300714954841025693738557439631085214036706202777402919100637731037010579387903387218535507066074128513121730592014051895864623281182269963153142722172658602291909593930136935695640041411338972243998336219866042804250343176725651451005131322782105118305766183429729748452722476871959459468134200516786495400581572115800542636178371229958836009366094304327795837866092600958112595109030152683957206749873046342176810516053167746224095778086517527495443792117718976359741385277135798745907098477244341596095486859694871961214769018323935617983656202675794645744311280671489191839086663405513253535162664177843809293159079947464376368070322892629551947089991705415912120462845520140003389624297632914109111881747608249025047178801773304193152891503904321903994353273658129767816583801019311818858967088754516735711478205146930796973569654914914143131744050896027317471397353316538839134662538495823257028813857166728452496848807514770399053162937092689594865926159858289201733739596275699401438848047445417376555691777169939253212359433472854931517336282853037455323055265998960401945602245348284050217731326297533572201210112988420993674714562205030193666270150803915309093441372786999610357753606368475048132587881978944923612727386062921520363523361303159278461814949264282811505915610721508287541880229424496384387023114229856320048707046087756489161231749703465346233304640555630504269888998759529034667834451734640013981079267277660505904384238109118674650635588163994566383235226051804308817849278701675302602315068581402162524957282460933296734008024458036542727062696218370195535417626043488266893901018317009143974888180495096060106201950340557951669706868750949569913378418878515967728125108522141626757235008592239406269159843992921048078181046426582377836401694686976894167543480089778670353831007579575517675994119985074366264466357388693227250694417678727596079916707318568270473298405537503022988783608288016407981363876768076153285202706865174177141074019259522627217583058953673235788599059863575639600835431915928962199942598376732748188089053202146290140701118440336001285742448448545236125342417088235549718610246365707979291139989062384835467916352311874127286121745921375485515205889855276243482819071055858899333180949416724325978923535489468951506992183247467674930268290619556147861151471594684991719052364355446199510587690431924503147264226838389492550838761233446697062578630701197498108450445652944308005032668021059851202063809807298538283845607902990553401376084546466397602884995818938707369712879784382320074685551608309321832804353604335064027226390836808002055144606388488285442305093968582302803285937750131956719188139535314441877543501167399837627035309353680242757272960512638530621110558883722900479113577117422327498305368170192950869857872197781687451188932074959191206258346164172244770254026641948429086453302700206650191104856285525763256024621466907983231013030375554331945675853421302168742750408623243020493818314895198059809660704265809165173143476763228026906010961903986829370353213215831244706246888102060798287350014083980761028630955299784707002617772306926092352872689162501042801534710571359808896974815656731394968318069478946546671127117133043476371223890240183752350199974108263469170577535464946175046271691917359977651925972718270201757417533940590638048758992142893753560572580221797600987804689472668815848456618328480229088364706698655124890402701580361884029323861212971230685027343209982978897670791864402157863551889061089997513987092622879884637480470991044525853286477544616225183689036736956915557665616180374807505823043433835145001860989980318524660559513125025529202326214442685567591584847921490084733247446518461263100354230388350937823128144754705399448564574782231310360546738863898993059142200449157900169434227415775988799991737654171885393003742764809409107531948598132120414663439004979303226252374411388487308669716537238250830569126376456185872006727427466181322305033171711182545708260309337732841098087652035109123519389557427591617337806064271582696563100139202037741801526380430762477158963607827267120882346170729709024860906690840385854316638871783933573091933428181265129596126561310728127360897853872090467129577256787716203914644586727022965746698826050721356258671965482191994025682800461999017482489522414753738496198616575225065260549619452957855653575842429007670773009340101197887400471183260546088656577648098851130784252342054932746371648003215189133258264619390123777928112317307518813871040881600381593765795447250831808916852560242056683672185084137748687857636689385740621057732952714256658142773630658573606728860598045092742253043409799265483830825709325373337158037825959935447264987957514914695877385867315710863693900822678376624097451029045271071711061760024386734412079069233881259454366095965410300150686001529723347289925961173398935071923630332677100719758554400720571066124928159530452338217797184326346195948622711240499520293245916136733930636128169539001872301892647802793131375000915549444039182698532747614346732464669256293181880812518689762208672670989941251881365579742349852908362678513374880237077483550728601062504255132738383647423533064566334862448057059895805396527259451744300654630343287084353957322616105381768274876245083975590023419079248538876547902805273893893338542388473887768604672914773285866063236382091612253924746764947815076720003315018701669272557411680528277376653870158362911202135497342980263782383055042313602338624424767962295659727005483132964263852101864501393177898642912507676992599103954618174064806804099959926951192243856269194805953652627366698614713692032989677964567244322514315350889317823900697168057554637445730239943960230032145521465144081136624253937351613503166348611591735023704530621458562779142217154002911968186356017783053958677919085793466562393551411333187625474475130914051606978461946124051394384700197196222016432864287901530821729247690411396226277229317486796914618646301298440399023876115786504312523354597460927165152256972373974138887136434560101031207011714669588651303277801253024271440253373877658474438196425290300253689761326290391343136840843952603113020015272839405716363332968633690705155929694571374592710960088397453770368428734158096158318648858275527910546411701920127622032750863846457087996532135582000600898915732389455862011838268755087345514438737055085045621835270268717533655776455161304435303825910307170835628658805030693925834278478618306697680229526324178239950156181038792018911166282859881469844043753010794769342636436124645261794620604518214297706390124128072602103850561092204914549505798884508200252866024839177184228440414425396386269137015909355684648326639723177938503506076619000442913571258914879605978148142254895270876709064919971695982922414643664820126748268877519416666871327395517310245799904307851596390078720600748789893509162433971582859595846333599719296406696500831803488454604264588911547791366701008676855658448870952163631586296271922768224226492975200414106756320758147516968266953438094211531362697500289681375506066211665065539746981624062830000260262480823276948294037213528059817293997729402226329310314857787686014603532694799222382726902891554782225106449889016555942648357437487040414043376461700154172592768248647741343913390561514226521821219226040377351720923825613056333169965098357190629738881406227659662524695055938972586983941736247945024927602493912540541258868877931114615166470916171393673413467675788920533376161489868226581354175217656553358826659339573593244904488125697433743642013835753654706591829992456672642692501709246792862593083791732611918526474416596800044304041769075693971138742106303734480350220461053206705690358749821668807088866403693702321294320749197525605159313043099047467353295467358122474965032298639144095137756432446302356084665367601754295602314825753675607498190000655825431385891272975474975102505434589820155877043631049940628378949694611455761233315814040489687567813055889346759569511915244790800154863483276271427272744163712963673582142531402525348208860214263894982052191226785866121293876852752386904248158670191112788652032678935999451125996836752099459484274218674868885018342326780576643754932362540365032253275772286986083980020251023495245579254897569943427716129046117296220573625800556185948802009615965950718946613485589566541883151891068492650432383402422913014742263828520025503434765796104106031333361998745698589991533039334519945948786619884471242688064977933763000756645920497845185824964784935464523580791502189101715442886383121856953448079937363816317464194459182543743580470097032118342360145119613783651590992750089536140454249111853271857707428360134386151869242584863150593839951912633630486153083497713022373574762147038361826891547894801923788659326298369144580468341812409442223731841900557259294059128494105361195529815822339815323182029469834909468970933821020118073358595118278665412859463596060174995902026516002149105812119574985395232815142241777094055080222248112623073209457749497443968816367977482117230342469356072239914140429227716905144961810246263568217276264450986352602397384273151174390681986305717905481377306047628804957992626827280911408777105374180870263168570015311831529504087477158182768256485189718399813746615393722020570427661926085173865583693070234710388571902530220266080185400099199601507004842646007292132031076620384536797506044660834227069012839866343597277909270084483524063314564476649290882115465421911920780905813446844359270338870928832060481624868026698594871026480781581662223370414994063021208242811624639608201425271606415282411609658025214295371363001583557286902621383215445529034438397927671808638621258655818903806793132715625536688691048929095398459332975469330976430544890485121406044797340336398035443446197101572601074860996381894449824431993149926811452813081309824464656662949661332366146962266616360298310873870467125013082083340188058153401014737800759446171204026847181566099016576979286220832225062464546426622654183828351870037774359125992873435983301834693803501976960321615371845541903442362027493763306481330668304029400532958205381719118367188665839634862926155142999278870431157791690099724170045391841616755993808171376591877416792386328519348137261418806642954784666649289519918662530149019602629049328088039460205335444801283932239182625737020373096762950346045105680542810544828757159748478713258562305056761612362543468491658241123014567772358518723251837899249186626046985251421005103945303689220330732168044610797524380077754216511153301440624507406417361293825103345436130535746224267850227335926681818302655774397442696048783108768208408578204242125067764302776704521996798435132726058096960629316944587174168706476956650875832127460340064690815688745131729458368137233412096312242221961398046482849184959276702746052880991895580795748007858735225561399419683669567776186561327605109881090351540112115753902326393182643876293898047268283180987193033163132092706517871394397736869397482556328030312001662917600588179477685506794025325999420605894204874525190610387632078689457787367452549829561128663594832054478305149255945949448383980262990799184618262852169797135299641094607969613971893256878588404279604657370273202638334460852987080426347972015319040473299603260488959479782401282710510597540986819776114202889474005237740754890061213977617468254472698901906831951671177268706702292572295904030884783724146109522584684606879624972471596932605068285041780055952921774648416522749356633125011623196507043863976376078691511779970628733321209318479299997028325293790216153002217830606084578470419728159277478956205071789481699639708112406925855168204459649129350863373026725952803855156108780269582739247813771951713734337848129419864197970097381190073267160016771123315931281765582856981049570115959159776503196883938988210320807757459431432073942817825459818640080620651875013225481326726136873912651172155412272409750512565862201321887001399057022629134259929494750746496805603943092747795333800897422958560882198143087835989550865226003193494212038363826554104118554690289148666517522248064357662837074196170330999835196439413026448578877214204816195666065170802525135069205481860995019602825808824463371713519781715752276322241111845516448072337813122875931934059210859069645672174963690881788103320067710120573713153781004943587630534299415211656868716716139325691385118305701928214820199939052332940517654992218274582598445180092107646146818625999338240473380603685560782242217116389264769487855846644584200470892531823646433237554832117453331036304001150022969538552982404787404829252371236449107969165224817540752992238254760253524036499529089737115908790651649501600772597620135504311001663678747015768325204177139310336536086621874905502401181208632920478538158309381324534670319015830163782922238621736689349988355399952892190155332615025685477387815528364888401603999046358544108710304119808588328399088091285756373643362769129182626481137939557517590334859372030191703168457606941955484096634080700593917590652777502982250965437883688739078675557796869126245593732860622969229629570595886137436283912022980338313686741020472547408441618240663439795442799801590283303807163952459014687440734382674421194232881112852066962814560090724510836902612662776397664848333826385156996834811044840197735346539462739759569408277922315441046648532680254401644876691327194430226499833195558351326491133236473338764695485016538136410606528740399980767059383435763873938095345432208926316367003728217204237294719758577172905968386997503369900809425967372150342057799514873865419337196749009106725085914358551678198480795686390606787479497047934527286655256058590758116406953907738988469586044323630860521366278181755416836398425948362293627668144088908321080383150444627152127671699888957873346236730649645655675303473746954729394755364922614405319486466051334047790601381884800965298732554763718377792187299301711820662610614000157152031141196017853743955796156946218320920647064167510032791914322507460618066339396767083012069004889492877502756284797875322086274712739529433628827623266449623934970564409144155364034795364382906857639007038141183303213218371199540928370803241188009073221675334096384778007660468397076369197329641315087434400986628312509747581382786694278221546210919735306213263889161246537679015547670701790032266951779226369367462454679525000874000335043505450358680092517700362376613515460181190294553348570514787198319206244247628175889839941200774963808911302764133302321163544860156103759344372766000468353035548862760691151175886555941591006480881808943710474337703936278441126206272155232078803065168761718488461428391483621444052585564229817537454404509062861988124751760894291188742165744633944759527948361410819134624563153537345723391573801822068383380682055311712246530147522906747099580911733632789997206034706544420159130242822897712476159573405755590581151078398519805573750255882105019268963511626824964464767043388609110831008194229273041056931057220407408334985005036373745317624381755806444039687951166863485537096733607728340443440214928172055185863619151109889745502455856338127600108219626890307595355821466181887423235016016919850688526143808016310229865558783349735693250423196575750177376389834003769313066455100768124447089746776781576495725629328001622877835789157870894857632452478237646428277679623275365689800449550659967991658466758186674764453524116228980476114519037468591928762318572504923504057998453139891949423214419982310625894503876339615674480367980130826487352710830073629828673160953646743567079558164600621243246450277072472395563469055182043586783606368520480566189664980892736382165244481434623211257252467904949867796654488629104940028342013937314387923963501624508361451254945717455342440314453739825874626876961479167285966726869799664016204333617396902211124719311739507760126427403306485925496877868986751999186087808541286917702171936239230677803224040434066855205047316732523333623269828727536632147110444902831194928278645636873781208802867481442084237213418959423348932996562411251951943809012163807113389685058220590560078850761315321349950637122734795039325531847311980611094163400295609802545405954214557685494575613107760069583489877441442727816528769124359982098276503490108771699429123823656037980581779202243128973733564239727736496391736263820366950714829330382966124903195230695860124958120509486599764106310030675873861201142291694546259592663261109902101276959899280217188222538069630839417832966036788118119649668803610149423040177254305133259185677741410380081097223036702701062908410293175583560109709487585997858550760227084935166680778180068647901529600277860988766257800673642588507334703606989996745953412598961629578625152392871268959504704436288031987571822263001975532531762094643978769538766076075569197243692301014901642962379856740816760729526586209330497061571550915435576461166771667132804703078684653936977517731924655613069399016000530487101388394286644285675315288746039155021912685266564507077150520072465070535652370928013916720554726329261846074803830462693876419358881000963134546282638970759860333018912465066493380914904340615953689547527245172908560039458794499062725730032481247078766556447216854673005712675408336977292508338487749242154595632222055416739697387988459575791371985407478500106670904497635309467080497810398874460047960820514232974188690288084095834446697625514530077745397980222196529213576856652280752222167083958366166178846223781649282241816703637631047220592634533947356336059720385448380755833885635099802052008841959466665039421785673312279327600595096836234546998831078752922084653529569092239457336453861654702734074472241095914090035402987293430965976505076330581986576528954284865783930667474014184371007722373517922745694829044734441507509483875341449922037021068503032719557534545990531463311300244479819733717962954308178952245394625393187897708636611350280899853830479626696781797524365548670011073024732033300672027877814480577489950491865987066541174309524822348374967891325704602015792440649490989182527582009837697281580560009704937168578792429647782295829030430638736701699127735495823260008742035853463315556230832132292698027990962855939240473667586863505311769952514410806560971687349562674983756291208198663436834364087142406255792955372650204394079816630154477941534197069333163209705449990122556088563580450023217882532708065633084265424357357860580057262502177818781903246145109598520815693624766422955765038621083816866923047947053197926005194598640016370407667172347546091600405826084135663859419058145144309065823337256182958675575271353031511576868597956279849371007397960551703916086881831166212699319434314695541808536935460266759117503298287320055497348925084514999849464192113579631252779256745852407168972731789497905713287155394206018018819747392881344370867444637413025794755570418048815361128574635494495405785748135013499106572970657177142757121142868299697121236803383926841310356690939047823179020247346104139093684861918791062447667676024680113515570378026344887621099046595522143735716319796534442256311576151399646189339729666472518277617167578031449690221278576941199765073002776683079280644596988096150823177498664752982671366778334197645324817966735406506601055328902647281764279605391488647729146880691667124836434554305927897463729196714152849980677743602015794388790035496511878121695501301936881361199221294336411255745651066151389363452800457847075090695498087992015678373311501813734187641027184007837184768530423255881820874773876423740890200839536785362753673925489890767890735984988774542260234025584675485731308672822187585976871252767956290593010565520382742550976781782870691057738568832183745631449122297842486137326839803001154065307008871790226053287731670996599635229684221513341378345382581248884586228302747494060375939481489020195650182228885799078921729194810841437011594362852773302213930502306667023701204515501810445809848748856672487605538067954054862738079646346116905493217062809357320528220003558249878659334084661218811798170900570953960602886363279262657491606909817521366486144422303106992379514507982468583317196499478258000310885835191193542531577340772565585314346635545979141919948537640637226764031700309146266809929235115068740886965425179353619774942093661372949507983042654922281764717827600337553753289289264774339163495854831756389202073567742733123160345285874547973953982389714715683202825837979020932005327987409093228733711886310498903692448907018521288429545524899606050982701351781175367195271127967474056056554039603740906794523589707286485470394653649024736181907312174889621277593653462457680390861662353645895027204722930411226804746808743070194583030289411096868392462915081877026075936763444347286519906846634106065226939726318367957918046743615754975656579637937585071937440605453251287551577582034454439096895732333696406953025763633213465279045323101963469179847958542589189898965275300431998680758706800000742845121849889205525141789549703636681752982580666930781749908223886993539527803862852047208616055325441157558402697471003806970039222446798522304735305951819881145209119490810696069232875745820995741307860982144919367682840871708670329723176112340974899579975194563177911982508944003319900628025209236855381667281686021805598415035486251162823657238582362685137727902577196713962166400476849619018649863146962614549473953797166176782583879622896326233365377677050636929275986767528302006896346122697781325185817812792765249644696145997941815466065099338010994376270605351275761914896538249548055621684623508786202981838003477641608727548217686185466627111156859108143402159169576535680533074234794560439640778022892174434500832477224109556699825426187307250802249443689189026513385053704796991975518879065813732810164553259592298424528019813696088648552174185139348013540473565372589807252883442753266612721176705260432502619091148935813359510499382209387383133339832395080092357429585043669120336261219298418401864269606450599089139682252951066615423672182566383405157488813415740623962970229537739405246661320030179448642943836245295829609941222051248856668418042010893600018348571687334990739216308923931541550570539466284373850802353885837186747372947390410257269203768944543438655997005467951085629045930538939414820801613793008707214610247735732806776236411049893956728495947205416011784778022510732986847938876765586747395586830326153752826857626986514609272865684231700212453008003559247424554497347194335974693382551965111107003083083186093654178457318883530103755396151062848049423889564168866957766069974458829837065773435273651379596275009539266913096034890156069216906226508435668989800231721969718948253355597058437942600444556026013280126559458008160420082771468032482145323573295367482425294767044616895918102705190752572271236267521778614913160616822661323690365002874063662880456229236196448793634395729765365095019834994802164356160713146117559871978699508418616237043720472786293326018565187031876310754970153906167907124139450923995624394600927643071614082824591029218231050779103146774274338274962139097316877945037123005840449381950128903980592444124530689222236469167494218720256890133885572368316035513907180454451548512299852400082367443459546014481486513113411907477570396599789756474465506836652847525221919374916622129792452408052147302580544576924775892781057910900877404919192402839827573223304881532632272513596022174186750823810741788492323885953134570317610997874370862850242442727145854035830778378031859586992254247471736925186235725413289623752154627480708033747833148144290988149007042361271835587805441588479973470238230645196340294957568947008412295667735555152618837541882986798517792835774689581568458320785679770009439930909195644054710093048416098691307458078715906088276364852011558816718542281066990790983817980588791861602306590175569498396622836188468194523614654070220442452510339087657369979844198578560375181289791338994060106187652502133539253222487987522355452289420379692224533059369183583939370700351875180834668275224053882050882205751595227232205696774129447674884230474337843832238744933108347126627200911481065124928753040007636741183232525059745355389011350411698075819266880669596002760714733030354194222010729742806281241255107613074140027857248486026322342404418574257553696196098124108410980822627626998368209507942726327801718206572065198072518894005847896502996177480260596584841135826757205287889104788337097783320453043165613179436207512295411079346430158013342320788783143063851982134483893335849344477957800674916383933438148778921534526765491755577721786430012411369015883034906607133273124011619801677626471909186335184427803941005841079078422804344560992848152091133623116048154000856616506291278238977319891948045837849883643448513147131626228877801941335033583916571895522585227122624680882005856166510986487778682194311537649535366922151029388781358037574820059987068008323361153116580310302402889209412323886905440384938041408196175529380930228428260192699562955783781587806037667882300126385733431368805098517419990897664577050202659921987842493279484911170368651562369155977176247565211153208323451664830306088954348943777637350676297033493249752696739428627905199985786652923990452442820296770378736112404671947751043676135031497525715593393906634731776933614858414785912743909881437799805022667052240340849806177818290691293821495239926491529686096062809980629940252025019646947676503955394976466692799497668603224595303388889986706603348078223311593624252155343982041308110772324270430477307376211021130289664713261535583387775152163316879983862048212826211668173212675782229044514023386024763935842583789071143662358942615268371726769046019146235509074115955322009881866205852379760145756734267452476779397667493451935601912559776348889092354140943832719451845050838412288516695388796720166128076400674679127088399334371700009127982427758093659980362377625314595311143196751577945796943807647383596032455680216593303890146085442647934751412578049366528042814247746360207770646779827013012534055647133316035066149641162916851306675366982440186237230574829490070691894396490616986548677278758964804257726489707234937828745620835289290344889887084597085567210123005491332632453829555425360654480797431539772152725286142517302326498954479183241211212037166067442530917538081062307104301233597467815268348439180463806627376973695920915037065932953568374598771565121102276623897439714535476533998482574390107518238865482329381518252479350172265623925486215241021116030793155062322126519676932122958632924900093824135063463757291089549759716783787695396852644862587946582540909073165325271160608088378057383594397180268796119727512401221431378574513331024365835395418829921966365055161654631882398447291551879540346106111248496288512968279763541113087295756340278222429826878131585013655493939668778834897497075476494616757092786216408292947785066461349108477048682083515893156531374145938229170329349516884543189868063032942416852345014188215213111422835441742491061260179478678020074248552098471833104056543517349026216577986916660788572856269757386404953093305912396577168225703032204548976039188716480778923310292251178623352964841504332875553868340882652439011654618372268677008949509834357816123539779650516076505965653698067792020583796467380253173044999734076643432892489869968100638112304485033865798227496727064959463767152934341970622981153494080994980222445227320373987877970574021575373819537917219996938663715421476521376420672218545164981035854517463917416189104291509915000581414144444347545487208832180022885221554700344799052394727615960607690353933638006116877854014349870585276052212424872724806091851487110452230406594611390855897499193646021287354558491367236065738384495859290528098473188547820508751356479561918769273668892823050618903263484314082575481547052601717869321882898393169117287515580286701437622099337505476306352253363823548036625444023165638782523546723593427183526325539151165219221439928258382915101527020187979515394733154440316145365248741787489438572361628409914242604209162770392578636785955795431973170305554922584629415160505384433372795763315610723646399683798550114989927040978356361995720736877416243487442923802885580302646062777529448684501377183127018573522472574233057975928864109242047927679849189511112484026558172259476120103523222598490491480538791245052989356917256097642465825615960216312259806742674821199948586246743444137146204645943423733118205166842550964971070631548592475803983110119284957488157526721707256671248858561310402285631259897915063808046144502724317540199640365263711133492694948103549732809562462786090039252616261365416435736494158803262723082781671010889068433806462369190575491805397607102601942973523496264058758195131132394689755732984954716582689885157850779748534601221563495702612639314870023804242348441527571913282933014726202125805086051398963277273656158651946234591680063878075568260802431469643981125486596303975208371753330744461431409291423544611916869455739852499580758077156696792012051743082555253072440014419880883821152457760343039428875705206095899587829434981123791391552400831485079873340697863109879798892847585436250937743094535598066532729276966607657199947166684163057673023133532338260747752408853676750287845140977439341943877186808903051254019999442556650351838141491276835404002427116147931578580664081293552200121328600178557440913382477916739075833547939186336041933338439780395685628050498903107506801292547232071688957627664201717913788532506930073862925066145867853490989510744092235920444624997637159556910228725085362023700315679143652142379900199489840437134340691267829852530263280003776970928620327487925103305278972245803654315255165499686102373242384153741356668732072300218397411624752689839735643777363492137131632835263902662201853371469867825473903055110244923419988927625344187376650709965840936029799072864590920402486701709815823726059396360341896701498876272705363601383272944370778862971927992401310972299526356960538428333378705245640714135451060104910948818978617631113760511428517837078813094601849979373588174773191649187714242188307783379806040910287048803060096168235406234045299291937695320022062486815612488332759566248662960462606321325992456078939209459544443627926119635864954511144552697090538915650485354243356898140668319221912926769767190987062844047159586025547030426496515606313141303170953128940516687542296434828464187757821352294108523002425823200419533150789495663917131360853301421606017564157227291809059758452671733581098550094732536013229412198977181623123272115163498740578004534218555129398900213339121694827561653591569070863608387270542142222094153145116801970055647125622471088246222031342560959843464626167418018414063896021222174654201748400912403616052428231774725715359083501899417035896933506405494811978185106879949200219155063371095298798804196281615651831512138870689724820805842261476296960475770598039677488009540554847915571053916655389953830075637924609251631793718917174648419408980995519153537688113236832892192328434191072172467857726900403644863940778158818722500611900756761288732246556780858438312800072324982229005633655317474930654453613420235132136587322692614951738426258243073617846656450624560995776931734360589776161126157506950600171158132967731368153900942262796166025911175831166587408385969217437016956481500727607092907290504332971410275927924282363399872815782230027552712797819451412109685752695161123558434632547500844062665266310475582461770814142924921615615545711242192158122569955921455951782141519014246491815845941186184529841850088984516023609312206782345772395563891712818448595086889389276035211241025164988091612841047402109866574472386519572304823349061954014807675213164589168902759372886126812718872574987564591611099458027466491962053183563735397800139580613335404302064087382839321515009549898888506577351528718826840570350284733743997557652381954335209718067957702785398623643346950422523901902799759693675895855833646319376403860060054491831360843885145685885810685272080376004713047944603114199878204887193544785438843983731802872302352551868310115081518846419049328024608705407061738225167145715100444126370610521939130836591487873716082357422095259684427861072571140041296107269587532236470894966027496306859067391993443703141673999826420945757040463608908153483256481760801106941632000577917112918001395965312829459722529193656864113475512835368642734150898843068870318515731691871123615621689174859718479462227139222035575234915401503713027604244210980513217771483150720963653548750292297699433305888388364511954370063419455330449201457521238261050349367340696058724706409286715725249946689133547049371572811932387166869726152362228092994087092067546396933817252065623448146971803330349200824783588228056481421895699495815641672794899288441078494637734174481033093622711274563282954129893796443700583935980325718695885265266093960738351935656248895583958465712746642219070412439866620621903485184454718479855302814130608673523666428669984355409777862467103336135154472906142555824103441631608622336652627713743723541875565764278767279132347616246939167012409766955573703141998338853659162846312665703681707213150075555740769323367672188382556539055735166210812998054198636885211134013247941121465330954325145873293797675616465172037460929725297060742562779433212177034130211799721917620532534819134772451260095680117318174226920018065397268296496722127774926871653082424187676167247710748898949499905001223550532138180363588607129414555292372231122305867807345802024847261157342489343817020458125968660557435004658658238367313450406516343397363488831006628223805234150561691057767975995437249101787821090935358622247186004909250912358061894495218618620961418177035176473992895897080393572339173271054771279770584558191950047174658820218461638409998736076327277067082396299065854800049303602271114548712842555428410709325921982670348048854491693564649062345688542985175391880993873884241764117030106978002769536895504712232144336303645991256094928022031742144502463688013085679987716301643366701639201844997696649519686292499857580700899031717083796172572582417057438415675639078913436016856785670881879376435944071383845000434350163748804756309959013270998953704146997854038415819678043409765108085563186435152204299693862901736429605633411613010225788003179508004533907555361888463801028190721599617995875076459004092259040330935844049904345377547063313069684852201488912092406034426347115485013606620770571069138615090460495811261514809773527755766247653523148038357640997259453710799811386674748246699333980557287842225476826521048214386203361115414552985741686489445193341958286925436657019375495040505637641007640904291741726786093300487893871961501698092749130635997023582560602385101592918809612661318061460546194861806776429544297698373379346248686444995337472844701968060741600332673171218050598127641700432774328404308975085075740190989742376833261042144948685948906721600205899562662948951602425019599739104312830512851414223033705055680783890436498902305505551039090154107103065550308452325814774672156299667015332302913569874085582683680380058782732060169948144454156087078497908766939074033781936081687157485537310153761390765161386633828813880364990266183078893420681671504341464418824836477233461180689003061369887993705899276434660923496173060173714809045321844564034256100080198092885692862152369689292363917433307553240711222745494820461893050091337582628000260675500510482448910061532313138145051803234361041207900342489307610731190859949487239847439923575952209987935729780497364239455707025101959873711047274614734826979871004864334962046124867969662952009557719673998556089342716589729698200743418490579587916510829823360709157405013034044596843633764888153481994918983553577062185531939582764397295734608035364634375457860265323863944643101208008737920789753791409798285070097985758178974900525685599108464200808496221800967188086311115708531398883720574299100195802657936415706608705213656153175746461836598754103801103216131598851622975435758412030189502504750733962158381423160492567702609614580378214364297610102198256982470249498094672970544797381309353330445861342689639812391226792520354342898171671273367315396817758460236726563365133111991983819633421311173057152993245948138000570911711511994967099254638718109704346039943814571548584599113228996928338030354135808507826258527672383255237568934497122065812362353559719640468899588024342841960982760783846340177205286386644612857393227761634413347868665717534179417705826769112669137996747230320304404704638471669146691888889304440951394711767427223821630118315415866778235582916605404882741940082000225677852786275035410513285569157672217207991754119474838267577551280614908050922379796358702645978813426652490055103042672814620779134642322933217723613281533130130009377948887653954788573600759865541622859764632005951941733844262934645624812865738731435316254755583857872667924189229490517625714592287230141729727577643867615002256712390789729513201859148885104834102766830494045106659789267146918647899354262697861545770891554870064637506024651362011445977811054920979204363434220817402224342537554636051241982203948379832634971238814434955938368175750826391960039010951762082032616450202223191243587176341750950464243190774935701571741318974323083497872602843972760684504741073309700007749930005776097904188432002283513597428731831180236998173620387895400518667654431863950555486130743601134361142717656192737920713857345634540709660769267993192858866993114685078938604408396043299692245915673861575747361349175295039711991563207099534259441617524377521249108398188763213854720089223926564779346822669138703472267826482909031220638335574048675492715055153589297165665138886720840065817357863625920461670572545263446257255028141064600974066739159782037182485427305669580805338155122643973284737648076280486308590571697220276405241586562050959109231325353967849317367613544817543369803184984074693719812898639393569479651251168291810942465752832084024907212560615295450584162034402017205173030620236346538460481963869773884507387916780037270482310685717299614280137722592232511316625491032219697056864197439013778294610570048838240862875706680920445213601229697962237225905272723602489254362647218498830362622179206384137273857291971460522887158764630150308865989068801990704014116241270309812396873751019225641926944152872161721047929550102832992967099781262046187480567653211521934530736001405114051031642354706643066871239748737198484777322763843832861728102144707335393499877679718166597665754862842674141668458458337087605909422347100556855764063993400094627608090190961954238439028986755337089783890853103553124456202639968289188923484523398026471710647173410374613999559089031769242254095126022691564177636144255630980608751314469297946955606649167499179174804320142979523366766439562167376783212984299700543553624796336659828542821837768254927965424366762304438358883349339973036043618875980309180093330024178483129268392728539853285076369505031421661373490202802667745544865965224236125225344486004124525681288692344268445898537229545066116923200564986975167519963589857481631910481535959610784661623461607320738195596289824755649248251752152386335061633271899281383889938876921101359882872820910483239895839579064829855453098213588770974421428833771440188811098495055865263694725309093964423819189886604774477724728436274754855099867222410032434833689261366163814014263955796749132353172715932588883040656707278780323926730935924443337327475762488550563242716211760338737633459644054789595117271868262131333209695713899974495926765208471642532845659519437657663874410538509880773367658667862954460799969346631889175856316125956748510880600387708239545621376869211817430413110631186896777117821436616900648760721879900293483393576438268129415331535649278739614885473087175035195712247230544224989638794643418132172304700855664691577772643788515888870991787789360667649764798600722121611578487299813851061341473403426461332008837427234734566264852294313906357840636671977897513869961863916360236051435909536453580948384898939100523400763990659528819126928411150486923060526723287275902617342827770352953433804770632577400968241423879107876613186026025170374247485858583051571977935802863868227218775991382967261056547188193248505475076353548262692830035065749638989987360363956003342503981949634896044376241093584572574058461764848857486971927827387096036371551292372319547935446028590059684825373418017992330771696495940822274557931958147633521640111863190226333831130451877977874609566291704425852222046370445129518569722631541692863086980086869599102756175424854750517451454450511725929640915543197455411757336975310783518305737497184261006998629746692404746834104033705261751731621025942250016061530615079485786497969265423612258513246009994697702920646586505685044565265815422867636058013054409773187399367838773874393036889401688443057329993993084744364675663322562498298206600040453872626383126370613630702527519162583163210160947005820367555504091233181239514188589027333881279571636980273869614656900195730514157753648579600488341296072583086838496171270906948524478264302042081454171238305488491583261209260623537878722209371827681552802586985564103198277198332196713967951619223263477846545017084042318102807234589401279283372357593696598566830427781840177118112568231980389314021693850768925891239358308587665878696637257666638429027194759834749072929637958080181146313034248422064309964668255404681459348215026546300544560659282627464268172918422653484773391362440938371527072914551995267464775925711502692671490621404770153474154758631299218069145699525947440896853896179736709655933009545107342248546240803947476381911981133017255582021753857371857532612729930444321894768147309277597335063853927530988903686511901352289672794304779617758650384064668486496242035365215220978166846610587204526547423414854367783670091382668407388244906217570987114339301168575650928027684815836812661896211557990477543570919555721126782445172133189524102220710824297804799963138456340370458827770462828523344005123652414155376219641229601978179394291367420037784283141857776766213227676660479649253035398006391596079617847633482920839755846584442934681247600057721208191542210158146487241886295187005876423931109276244363509212070217895735394937463819189726117216911725905390697324972707038812046745662702878689777429385337463640682578405983595486735631971524531392554320975295574588183024374421010779954740846497430338924216690716132576265333718119352618682297437907097750992600556246623743465514651831507223707115446058389234877366445392905983364291278121487877781448119648798502844471073313435399674562413006614742798867726857429349225993511860556019350019806139731004365089747377328478326701577487773456073320349773380142283928448690940789176713914150213072679451540279185424740101271876306095135753281915758039535391162701287912912842154513831215043733223313056348864862541247422458275551002052112422402473402477113497600827628433012316518182431745838591297212870963299228343583715895768699221011794399137708887536530342850292371190108917591742199360395834019363742960486160163056325562506655130790424936890182109983959752312108887726029281173654994567436154117145049865946295127910225985579564704562388072356417888838768449698326144822337012411312953346185721566053270741961081785796186105420328366545962270922164704956714010296997456563829540410177244665954776899107109779849871155430893481080465619237149509601157397290028694413565939987394330398140784664922272871535549271048360885195957190872682943082300025062420718496938194752128200488979101053517663609389774027093753268132131061957228340723698132797961606036680187008905433888122188704929364642669971190950606420622075470341387774548145321512136205598595628741585524737618625858195712668181582152026405835271451943835715754244337739076374948619932039753373021821226787038880737944698162433275138389578552563943690583200316153968625278179920288639683398769532269597269134405275049421640299885167659541033874241096902940914924539251540722707249209314709045493656048497463461249613805913353314168923293774771619108535811760346245000414579195746807313067226643030945898268909832188851384185070724504599242793103511289158963279008732435579623015793634239456595081431104431589318708062464922396091193032083112999566257744796544806355456109945301535900784008775112556985663992645579292135981943738559708326802040036445255158910861769351512404744359346286905861125810637403496982602107735388770832775287561809786833994663209286963495729390134406000562241204786522118770512641851265499751163257146303513717304792593364543551330927692218076243819405130041588017784287463715666908198456270354112439595094852086324945985917495058160236363585100148798585868444178112996564450526433771493527966842889942352373483535266201377300572409358549655227555377562880073389547383053974299571242377920448714309141803682341317094728573116315506378909743784072885060287595595764910480709521675271899728106676161954007301880714957022100020871325221864422424569567234262327560572858613689131933493138221386947695599107545698608086941424040282897106708845071645829648952447034477808889007189909365090360235700029296323760070043535279702115098197930263094430089005988075706637795318404554375207673587384655347051499787100798027816529795243116274030075208772993376283299903252024650733726586610219516386725361734715787294722141768237211786297490720245745375637134036261432196212190049795983808757705544308388724220701091729742635626824455209854493099680842074234700315035919666063174325981608903872696568055655850174086456150406092980407422906451767626100479011472413931947278596440278256603694108873604617732136434884086758190973569911550395165893618249594531445198000689945895518689416748646834150844486677161686632307076798410218325962851575974150619436756929454710212302359143025140652607812688317639586858437115813892019717830848292192227500334838032525143621273159114649814985168978912354455957416373478283516180262449317261857095050845219284089861501496267879383658367792156058017741966606575059494641984334672186495194002303392896891094596225152900269707121381516867484229606007219718828633949949117758569594415177808036765946817778255765879736141942937060864863632170615806764978691402960601604147069150699536450651513713315705409386575069269444804208303755724210806933471876987512241316105535309274212677000567859323664456720376130397722945284056653629545660162524071104332182797778054922348033115053359338474778671789889202216012767590020500711404900330874050491724219012665067450497657889866946282252980016626440426806663474347593779434012233056866421937831696577872405239788415523003082623418832624469877962878823161015942564581104337312444649780539329234018638651190695655407980201676776414271680476499566375640039719550542703755514801835472443141586344170964897032535012601397039704206491717058499080123061396451837893294744699691394831556236605578336978277389138678662027016569935463479816032280941136750339569736152979828748476270248765983318831490573744801273553240875597137270189198777436398965227881764191777359463305584587695724990543639493602358292981155801456871229778155027711224612044896722504190424656727345836615698813243390094370794801519304829970684422380154038308492026060743197497939542215507377361414478102473282594905817619329130968963382784572967780822488616211534409526994840284733098421113035206485894497831238302353265118004763954850913279439303640661706196847776013511340260945439783671972175376381396151847350942203380122878009222741651195366837056737873319746408069356930602115235044812239342119306034530414633089031282376230216511053549992911241650428381314359447420055799190173874178373457636774727855153948256001081059470732743021421411528689211117714116375523911250118964151513641075826085452252718662313798825110040126530118820865102598764252417119881771126296656589699277522486755033965900886321643077303184203337565771749653642111909901721119649788843586149146681197426312223990623719846724029517432257482474136805263709462936396135081963851350538085840493787909475520430810002181244494599169910037956457827419270072714308923952836607283115103218959895282069562309360470686809729554872614230740496828914966351905419544388998907514900748462418973870301231320805600685005033172610965125935963166040370596828949398764496526274674400653829044880381457082391613406539797114968908993102330401185114257428760356035575455062890050350130352507086544191927634803613435391458735855595715771252500761457404690230201895304634924713086070844938547578739484328563381220289596688428087189763575694286962821671497620580742735328159491676112943101187624579871400288989119226115118508834111847632615657951978774149567428026788963569262636273842009653112895950899924872652514345597501056689718872672018661820815378339014685517667875421406516655243182582478802535649688583661404439002220271288619964593494154287966278858592111155172462957571701395877597840725483392273513377623365595865327802695156149391921486256530265018773800887816747575238308683834787490759451136627473568934616266202054573738585910750524469553480048027102798277151282884235185448740343275503092267974332533769255264360087016151447824683121505869872155585760879304889420287045176291535024008144843851244659962498438181885031397827175728456950043154732947339577746537773156612197509240648209560668886596272061690192852065097847941655339397058547482009488493841198189098728634806273134310593480579570130262796645222423782148720432987263293767001423935228181426386326349048654033594178881199849827068472889590678345198314927854651081347517815958279458178793341343347227334688773347102942226370875079776522077233516474041036777245677337143074441728889734283687701667592958404420992626706980208634465960019594880802763493880230740029417852985866568969764994868301461319181845149367596429489001635085975252873921521101126057017743353694526820812606685547589126064653692404607684987254669289612769232943916771491217636068504652316223347858388658605261962337522256786711406774449178457208395930019362457399646031284394623331442346047897457511516493469628035105984373498998574668388169167142347910711125361385069778726625950221424212390079251370346490688416917926155960467421206881837647550828559167780357492655046507837851851632162583169526204038209908467941147744417955068838515213492891680969326642903911619653914375725596274366642564071725164972786684865325665700481833863539750086057492517288123619218336435325055378756481050468472117975019807366993950872550388011703710708994112146104080258356296719186720407900383223631251761118504265352247890698166703853569021131911143491427383979532479895677852203304132458959285995555198459796103182999045598423746850071345991549398969557150762322301271340142945574921139868056551679341382445409717601961369246010639806141228568049264458222673354217181671923357384746002850903401813245992660839170079419446321672840774963786444268345205517047036244916866209115315603769659901431097158359582492363299306573920564722289389403142777615949308620065269497923391295340835378433827716635818829147242190267118080293029664162872209948836815068616590510349740477479523834271709855953962879076187821182810379330015504696299974764848101772034365315955968209575022768713729442841245761924833886374149368833074567746839769163045811483033044673352264731422335524650037695519188689249884669439316832614352749611433309109146710863917427055060970759672504450522502807681804349754395754749194789228428627782729033903691331206196571665173738996028908466131258163118066515269805211734082007583471023259215158693010900998078380382989868157033307056491804327507878681759720043472676311051536011219330619752066099458136329452215676282397804592263884651132478114853269843033521730229436633213275099026777419518240429246427615952132863676707479750645966752776160193954013885850971781800254184638458842421073525956049355639833906487975249081896040172186683571260644821677602773861088567850456087229142147189117541695246862464571857573430932181335008048712413348844792300308870971006997313674250281757748790965723962042750238326964047088890147490775185903020866845627660871735156635045098779698435210037732763056558647731095253810315279185630133715825021873870902408807743731977280401313887692962654563278588742451307500747016249716965022547435059835387462323214936539492527541169143069256570568387318208603815788062971976219803135555183924247921723589062744305709040720067899888140543055416424535094156207435876065177400582044963277481759056468637754330232142842022817256769322031126175961207975185974928381383631170508606648461962121380660382610294406031738958540463052121322343631603366238120865621860939675943281452490476357709458408867042089497287991531581727335865922422263545486553134818635599548372164087284580013377289858323456578881245562490677738092626243540815576662542743571242467490839273500794366671338878192162807869953255041750988559409541625518761930393239533634241222130624113585817068162050059612836849781842193861982519404120168763574663389804105849693262954588855949508263350532904710790017743253183693079253350377498173946538264629496062272202900900126145300753401057856468861008794863624420526834143932639805978859228131795295380069754052276764660475665628659366312001045071944233858794415862491407936629875985007064311186661234175100937067900605355617132495509857180614724808990524225434255996306233251954548939097814271824847486113452820793699506994978129036102443525883682494662731116097533565328980667764783891808440442656157396910892199821766917576688680879379521789852337744279781811810172557661317344304156104389788138260589248573178804426499646679688038132505152398276449255570607168158795324405687996506214279304037398260897683629512082164158572049414773140108208693274735857113426813218338425531982854208570299813494097363779577341529653200109848199882008721423353670920047440506866042018045352856183702673437931801558151857694265583527903595614256001886200042641459648639983768752248020178672877585078013555840497662324720346319231776329602838753298737473317955970404499709535419919717470964364823903977096005981529363120139631303453111204060988599502789572636152905484264856638092122327142343228452996421476465936536375721847903208809834659965165346431592005639603999231529035715014354728028687606963032852233440167853534856287590692837982304311666469176284907208018007038796785993072728922474173686641948697871034833713062288889622223589382543447784729440438110059541858993492345275879596147288261664939944999593599599858522078900082112736430226197952628375769650425880143152481145779890024529507502600904891362157369371936706113043041744014006937441921304461051726147436133944094259224554740075367397235651077025792483070068028126701672400853867414930146360582726537682348188676233924245906555880474381016443608138306789073671035869922459746681871502931686662596627563370004312868004388487761220869264752958416343441456487360754562656465495257470419670073217267615478975767913196478132635164094994237142914235196454158675525335968333182158470959747408236660164132085448135908460059192266567827570089327151538094312667787455522549906096648923185995964668798667585939519288615529397543997234462698721924928104157911022052420630073868095727124894647082697761459287054003498582386380457360115942715095019477694913421447277153989702381437512309421868456004824257602720045890552902112302606796234816706258212958084777562311557607250257906199726512466237427493843431874941798746836193445569101178417258650052578626883707351623473967522497407260788795184666124523545197249501822995171132138882515810894915356412833860965686918829105583557212907654975172649065186888478875262630975937072048122395600713746877083568450265606710584369944186273242566561930874711350867176501441231268188672841913005842911963552708782793508293727592180510923039323196269105061032361282781808266343522064361491769208915834475153176855090864756673462312737990441076844139592547879431008461595814152900828984997262140833702284767481966660375857421277656886689476490934873949157726860990430158763591499328933714375398727050951735669641733777104766678953065370687239592905351207491669579558039818438545223001889938171434210585207818963673126926810784643923115567743796879498379335169705565025065097708900967240246747989631918072633126860275101096246279832195108747573117518630787124428307384496577292136932856111397282096773420458316652341667928816241405743932277540107363091605418984651000886567784878531258860714601806801138492663154724128490972298714251939499578722978235740271250887619399400158974352757556400828091446422045575137308922402046968460667363053739474661837202327600903271790791798567648391490351714753011427880398351756283548407391006556052542485263295616361343201238186414114636628308610380227046538681107894519296105005369721002752794975256236274912039821108424695162483573815058528935211424264570037965141960725346682386745943321967065460365349153649284089922414916929866980201379451893011601644148860988600005217138392855455575663000175837297930833662059561394076947413349570586441464776293802072766784968439176566542702303035738871015131096346663866918154357534742401149851251840173933213014727149066310168607269779235961839792212327167496632125498471531720446220035988762507525239644077184224749768654958167000747907957196347484593805935906157106546848369328551434226848758429766115366418719449433510770452395044460317456092073228238670416596916432350324432316242044616522251414428667304333164962863672994696669461560035713469766738209281821644669334910231109355160988556292985163527923352980502220810421500301302513576147858008976451512722771404550269838955655637832244908133516056819763270096579156599733207743452081293201634457339885343660698363419610127809847269036247668919325390804264236503374642611583586148660027183604173302152344994199039542844285307621771153450777990047713804949147143982985243884588672290308597207013783401759109339649471545011603305279402321494764288661485280572150597735592585996916787675569229145625839091518333150708385861961336361269818110269248048433561009570266920840892776478057336702142913556187429242148348182919565268780961168985653121208047759559404867567337942280903962899513404016211235334956904679117387948164570995047374275203794439328155045015490090595974090330745925539612884332394294278077409980602299868794982786923312547643111291756882799964858510851945483442592115369923252304384757201705179736325171763234512716668757048464515672897530396024607303636203832102428637350413642950056739920513298937426259354827674775885671296692639258509674253395113971873995243968956756682022663170094309074851234511203735019314501812247074859452431566984648074390216618816522025848915608066062119930197917447448608598318276128744424224989827897610638251485256528272181778479679266713176507834643881889518006064029193405933419878267619809198123640498277662112660871202400329366917592232523946881813371958231101101931341844933550452740697259437450703313051642044160864923765464052226656572229696965170837609516584139023787339327331885022852476876346717601159892064278823362858444123217401095797331970716955611260986587997259404056104978080092909453181729155954832582202066270986854527820481385136626085828301370682389802123111502662950745718439711974288990089186333248201578315013626324887875999822041130624017274369712244218487447830134962725132841246257794220830703337429374875466772908697048980529263630508886504334515034085807256524381737077957497102236882876532386693523226976434789497774733454353119870383605107488061657924588712506975487175497214138076789033200106103710641011723487158208444359983956356293037270565012914645877649348403668614464553666498481744839386635240790970871238264585065577862179241578208421917342788542189008705221843366729039245843936765350827367690502050060879039525407812467081205615186817886218728917177745139730945830561557130524627147505048822037262407808098488102185205018477410699793424141574638875323789027472916251731873264101074727819092122160142616910400248648769786078691817016937129340035259727523468167489611311132695660128197277959441070366865401036847557150196853362478928813494478933583917764759177057751808638354429048967070000049345328628061232001147308093524524706579779205988623084844909559444516492171056410054479619354832722443889642458329931394983933266612895353611241956653231615691665509386535077916577736594120396081296287999046504754840976551156372336032483811703710681684817729931201060200128269065337697521549502004822522364476741022060941600689126016771730686458032205801844312227611016339016144630589066383803991507752248465558927181298333725101118947956850413818868740200158624076495777245610472242397690184781571037684434003101244728374310491747091264429588523295571634914783443998630115067501037824929368474599981397835520794133117401325099441546101902351628945387191487874537018718170841055681594911335683363919986970166557386303573513173762687880143909982143255689132872640344911119011126563489664194162461864948781756253530283972025782831349696466099714431702873288600326076733256040786735173724245079340192699103817962365607933096787555558379107651326325923356978397475862565941286760668777998796261016108434173766847978381798114528365919684339245897181278374432900910547906926419782698715079662440459748664697043972252510607951781736534765646558971322604882226328757680448423255779831379260364117582762233791862283787505627856829358950253911036425484261756364624784029367459985795677086750530812166714961211081445531781955681313697443928353026540361383778892782270986515931034993110528324072791923076818265943759163739606502073775492432363868346117863205222557571908020438221334018835918647982873615541305528582930745309101947767276185296027693113868026676201172518205277201835818592472073177334386712114206002730892954249817504591034640927231733493374025881771240507962320165782114200513918314308662314424635483162701834283021032345851109930630123662202817405045201783219117846636218070132827398616025015836116154522034377458302412166276722208603854792975302865298792968517182591044807973803672777667964662144084525238241472978549511371342785637113814031523126877342052515009022704123497179966416387484019998209819143387852018415515747533004750407594428229601631093971509380048624680660675786478234111915084852752265761662548995749988439531923819254105040739144914584552294981898583672203776344374177235313606243899030714808770672271939556318401023828121705136190387011424433489915877813355599772788637774918504470548611366696573910523068217945552719413938611971725322747427624216363296603446384271973681393852237833884148098282917975228537021976882032584133493217272226602895029128599020893867095362374836650907431328902328051621958300030739580294488375251624949733462460502832075320572939575548665866525102279129978968459308159106253069234366632106066058861882442373458059484701362066880905952407744755874042619932844981100470284115252541373362554928313702100218408001912324899897002194082611699090773796012841576894207542083222408444913503643324171271889232615568338916132078477570010316982831655874957080898923225155911646592632344568202894152436135117224881996094590496260265734080664580332028905365370408378279905121335939178321941886151583631210161922578720480753200312587141672422417165829771481754282709133745057826898307477439727027760288274640645906179519272590378656647609596442638326024415299112652094885405028745743671869997868504533971253728984504243954543530552761959637792965148641196365196580146030535150722677765055458169501158509697740273571813606446861700282080831191435449443068741737526400460605654379455210154921452699599560451962843741804391033672273155970674760418160195911830177702517354658448526729333315503823515462846880208488317665914822409173248732778755082821794705834786496430754158682834723183833732557710517780571354275811470301032350128690921911288447882555122774451425779676142798018830713219458331881676661947873454493709402821257223810908400010107031256591193751456085357013935828972862020953097433066422064457958803955217003369585223622128307088903756472045828196972861575794050945911598264933462545079985507526391709375264207400261516714280578109913725062810309063342922352550208579434889413028022802496666200859105054297332092561101830598027750364817653183966388338593506804910377740846364464081280226158781524902886788040782254024691154821352461694757505310732622447688666276014331191604842924824938810140370856409224673598491482290592205756709019364632687284718275164414050327029375671892141570894137590755744639588491656351594462927039077737444116247560614675663234573509408562157354881458636230339234903080421156208408262131397592440920156201483063190279433750115590310982276614807223958583463279308026376957338384899661718317010477173109367717959428440569365446667168187690951604843278745400129138299026351797176204561032109088792617890732257594720193985428009619745575310350028217583656078498208082170863188277700368062612395434519492002297949184959410914518077490451050228309964368606460028767531216474036479508409820163066215937583367795094778596908225525894573845943221808094977898932949246978977234862556780258374295757376560951224493630647806968979795725834162802492985391188782186393321128543783146390973025617557094202389309805115689603022758054962139080699688609904874483712916436388129813865401742723581689543569032437578834015990078177958201853813596679359417812277822706415213924772020041206418673838907215225811506085735588964392359413636051599328767549942027910541603949871851344847796880399631341645327480349137254331488090846668313925375622271177320662648320176662364505509552742483455244196572321591838633326751895042567301620855984122519373915416123584164084070602665513592927471330593207831881119513996302096835387950618918141640022993133234680922209515359346639983896531693061587702126587694359337080317910529147826145570448307353608914877294643935833065668780299830216767771508746059838925331154871210869112309420953429306234820665000503017894011657638294176897839671322599515072439473536889323456224536196706575601188182382526761711660625130195066288723298577724543103036557660773741259862904185642648352810317879493179392500609994739563674153089931199923431931641871061373328179321288093564184119129016337062270798860522878382717042445013013199293411344890955199056282384507023490366254474746386114538223585115203753783380848346723458490120102395836157217742395216067243508894305664787050982639004880417524343113374217319481505191954331332885093621082343477502881571721598909069870611426096689585024942206876834709356675829980139148898931820872714303724674573371469945213858514917409285270533603361124479575672874238813643142605160089472296687161367856411760294659479297632067337015124721016886517897530634048983895137014810942605528681394198728784057983851345620126181280992352703865742728136008960663731341784851062392464317939272094384230203145417767421452458803253122286351199088133700899790465961497406778486789819097561157120626458066697397874993713710959154913970093243420221650184459280155674959342957064033039984972381031581443552325148954217222345453717427701176741929487203736675158729650121768925743021006138332055141056117550909874199538331557483704708923540635655498115897613202380024957224391559380735466031146796818370111290790915551431389025691912735927996925498394608740065495632750053311185277216356424190985348158343024761016040341260231799694630881861653416141272450470315603776503564092675978319703061959988902936138189363802158382755339481536013571593941847024861889484306961080810326610812048794599059108279474327641670275838673875275056048558980223244031503748939826298779105438132749446168321564830553844547751733487308408306499052341100737887584834574086846041492448123738255393730709705957911642556177022685896212172987752282531803277743060071351679617779868802994427722567901583648164409737889525149177715638974878575595849901284183591944378342840149190512544545058422847897848665319457196090225729714271470275165697968308946172092792388677993818785067358804752978565825714871004029555540695868507497151347606399077879505478597257873402301806339632631107873901665546258852352104452399536602822527801997798362161477074450902530029527746430814963463478155812340375862430460304907030902369841761226790389608741385413601927364983823729362921847550956934599885943304947564936520418953291028401275167677858454690573276384032852447229605445633367468265906812117327147861465376175983793529181621924385182913105134947085308820027323554079674475437737102507198715429121560276987547689020985314348632339729505648975471944651990685806321806329726658501285918544591179989841647358137592341080131643369579392883773330787903354075254312237546265872738285590224839635548252566618467723789938385573239668201397889020761607955122888061976099476662478499481782872910974623483414221694869157887134177637683453294157985107647875365456176500352252237815704967590789668492711339065527095977268893852329902305755150728387073030475198219655364020488251973816960647129061624164190305435292089841123404255682115152643117437218832883776103066426500216187987232500561307304974503790402105289618387345119343321493342089080554561916913135611789615970608481473734013041032644676334444299539358981358106355001992643980337349225683877742672237482703953710259935986032320572992113777289782809490268858921179225852292880920044110365186309670192686045992699393907567613260544668564447813844344732327224647661686411175265929043540077576677495671194606907488666181144377185482388014730488626859899058372347245706566716235593630002612173774969032354391506018267120679208694434676886744834881799670353971896006819537197326267540838244257624348570795354645903115244169147525009592135342397392961575712075676900138981255653111370182817459830548417437042985638011950546595489242224671668541066806751853489612463110529141117294715512608895614807486755320938645192413353717738554363400766662136068037668042207239887343223599738532227959342690463272952284493184171131402453720403194662861632430352510004339400819282861959732943115564771297580838323808192397736297121436847118095576860313023467212112427459894437032305289081831850976555843637808062833677770805625767570828950425625813329928721201895500403079462757970086946908495173707507907076740718026792031060681783143136679141515640695383249920920552127582711501873284256217464374897330478614017881103107460918229452771855494704003757896869667045726141086446784575981992613004524078369346953735236047073728145764362160340044787647149710317189662242354903085780167446218790508630865232049943711755847793075928416576811148199646628797835051337861891096207009636115095353835435480202854574266840922778285344234527055064775594408638136967805229861212668589155243924967179089141084269299594577037410687817543418926290414397372706671642886978122131983035356993319128405123681416349535764505801607345361060215119887235920726082639233086947361319042039385485760515281527537817076686692349306848375762575427026053079262482450947546624611824217498928949036378958616556690106861252867718536704615469170204811340901092279088549226018109271936587407600255549538469819248700555343911654394262833226757527518831923057266288476068155393591872309041362891963248756291234471261521688811749034420200732539942485588947507556280449933813749182326584016955130740516369628992376935831324395997120863824693574758464836429404733557724717726979902081286572711355946723891521661599591500812186993668482875303545535251631205683240667059236038994342189317221909875095214242315102913466461290047605420009049151709831510565438403330842282771714626504888330145329153417737585558230612383353825118296441104033975735333605971563523440946590414087066349106239705288464731202554065064205500942116525497131982382700224618505693370151417533645126866327606296079304338848779712979392107549834864764783040141933819483810033990546562947432777171974842160601263793067934115352048967340084188769286583166105632097612888437843762020747770455942054864746804044934245534817917443992414667117760857577375553658285777203588001352966776217822920278819565942792962024407101745242207002445818542619220459494486182539570708756345587114215697996442616825502234867697733211781262052856320425194625977005928891997044757619152805317336108760732279679476718559057333456973383820786282255217060745064414408163192692244003185812807775555154948653991092369955214816787249075957947498486274063828216257753740170896629714032362439242563813833746193209162947710455117918108124679854693196567621306956015834650034837183180899049018062175010952591079151513399330331971115926580744257948584814294985596733406756618810898283786489446919628784608298653644704204840745385038828956849598286631903739718359067074133906395122417523284528557777703848734077129626727762360605851408862941467467997653467030949722600383926735706012102666418219295310394549297391946444771378258050103102120325057281717219903680977715212528202315957235088097012287187399323367581502053564081800368610183838816274366894317175589511815934281611171671781035423002579061826204904712897843286860967300792241169291488512205993710606084012771606139553993667297851635439031608770260952319319761854654899076484251492272517756432817383101413856217480173110130685038558716018807422115783276456009015199854247615123851244583836923006563645965006819997424412438088202441571996292788347852470384876967550343577815078045646973273414447142108751233614088108151085042445548848077937990967001587153732360286717652630805369731746104982490197435672688370759605249555982824576809740377017225399977138430717141100833433779310234093248900013227316822571585440546945374151100685484698641659658906293636656695860696872828873692006696327948734869267455673600220222214894963878736950146332137811999380438931482571542553506185144159627922489104777872067336563849476857778228392207037114395268360497913713578816283129629458356512217915451300739810960437207623499627776137041002005640510027740677028375096472854823637869863737217413011070111380045414716083749068416998767673944267403789678011335531420551281670702966218794558230568403004779094407799125615871674337314776010967861277447682650671317865071008983849634026868625651713476916168242005915873223141746478464213047782794521586823230638316450841320523784299557547686385033464973139200283201160505315496624797184429054257724913378298603218012185227440940373854894249369780902985018722834000047348116914004581271207982312414159268483655418903145724239486596841814907068597537856734417999005453955322237333281903183149230394350227373147519668202753399344798827982170900837372615264471772913002130996033056458538180447574335317082095904490998050035609775740354351957023280975763662665186567872851576290637004330561090084519311054767134005179346666476036414662730706217243577962343072689839158168234994241319851919121297759243332163331367093525486042181920491000553380838641915518526775683799977529300966931958556365791825199085224438293650692088800504437146836503977331986554129865833580848156475354937566157020335442518479763327309985877890971947540704331664322089344929234266010226983936145810526257378610455472380826285514064359384289582051097867102144154281164772826396457638232849407203566824085706072377111913388255538275075094715838898434154102308787571829812187820891056238846171197192259724702046244484114069893883118314149119216333122387457868353229194205758793550980828709646654435657315169840859186980762546249969669688676558046754372927436356487584927170435928579667164631376638661764501716467952309023317979866106693021105802747954547821397574479938400829856371746648186050775858794797939065248233871200218855937817910607517975701235433604979689713365590048471939409002042110305162567766617431402180308957186057680734045756072660962642483911911998470056620704538535979200591290671361254748209187610718308979168796100133046737991567716335702600511729681691941103211734892822150580791912065912309446497550324475416049584628432498671298320493608929441353391938994451444622573053364377203950057549706757982953261234693402879936592098907440994482837708552084721614827828616582685158843621256629486199150579236027484585589181137567927617208107564954593925160660386812523754225539545708742098700447267372318280326655817440577590847533296789321040286876419156463191814799742082794243075938609438020862260118010882564292365745418231696782446412092064954349807244096081113911710670709539469100561415141460614032931824316439313280821499978208949107680064211210495701442498757753283526078773373496954980966826833510312371361223991755949726518566725073082108323164616059262314870258306546210079876493193011698664478270277666313548780178548614239485524019805179227069501933370862960969530593341188713753046947963203877159705813753026023091520687519423197436357297400645696190037062500171407570836910504535701345486065731788730163934377531342130682924973846637474782977312987211645388184894417822778364360054769429354637387912115396447526766349743917743734830462519510447790857523504040017813059428403209540184493140337954603527129717409495061678651581137511738052082087066203288398551974198643601288527005646855413709957176090572301241840886193939619242499382678791470197805588322505471159548830848580957661963769252503447057226992431058509496140941316737275051453060038506573451139166640595141825533458177145250456082609496375769766310073605644429886752355237863500688055826984176889518750082331965378666105966496494868079414617159450805851021448062190849498864545062004745333966212685406919877450320617400308279925457962815302193167029670198334524515318265936492670145031538500053727284689825856866703675663772490432492019011561627032996057716843980674709534195224172039416071775372633910129702975198157124757851358779059291378519564227183073095528328010212766368844461833166057926258488190869698164381141328065108372520654126943670248970972821747591709859203698138163867343438956212033932786399895007349283079969328636573869221302289547491474613334935468268768995815714156358544821738437694590592429915997260134690073007874535842840029546071968729893911054364403054403506368443789343789498927725668900848757219558585442546631949975888258313560472699517024753822823187307485837548674623990449672334414207192180639014799874422701739021866678540606000592855844013396728353967941290299749054235451855134843960081037275996060263339329153677282066088196682593292452568113950025261262773098394133555209645181208283030541171783843395063079309274932490486801712115052001883533222309425901903433957574253273336200193457953570463811066915418228154335786242786541358976445271228068569944786496569477097837833703444656667470332990133364250488699034985005865416525228584598496294844495536801105081234179038334144411051232818320526395708735984951920429920909402636331103182795942262552852990081680740140896688237243135412957743233084200190093486880397680917362731451557893186619865455571815131229655885146392450493526572828825330887277131190037951882399072300805296100191326776268834776362932347477550548284387853446746327192505387514863170789898113068492615130667335637484523958929572428484813066406190382874956348116188594617140584823085101574035008187194967256331427791172100762317392364833194207080242590865371829111489741550936294670997898127247906033768032014269067180231505169566671300613363972955598871488856398001465513754753990582387870984571543983689693362925473542053610666648215333495260939353280732818348594121561834993992424720292337993560065983184994320536886960313756423578789812123399594020054713949737658723751191896915853705362752408402164916348279601171162821405281994518460460185251208693397854710819806001620636944988639093907033551311149429599808891719928024406808218776251706545817428453806780485895244692124748711672580350381298759914270468680820581021786369859646404194375200694751479398135396869560471012706495669847431290580843803376751463923824112705319707114188811545441328894613817738725011653896266926753676358936286914962389879644335711760171082729529335287970108164811967255642268455217522563817103344262389459557897840162099832703266697661391792598142618536461569070254509804822985792741637362487130157077099501396502933161643189097609047658315929995543215061685193817138426904825974171195370681436689039064310653226872646311868426997677552350402151805239380680792235041793043648070615648080897849866925907427562708402014734061384109183112926791583676805388345423955778646368407343453591798782621355077529667316968005830014741238446387632750874753722637529858996941260540347913566685994210987888126287471812733978770421653549216121643482175057612302780859806454481631170137553168591875255691777558089950587222506673067399350540039386894209545066216650566465796745861431095614078776078963412433689742930157831448695806837058597996898634776783507211122054966585271428226897199547056844028368880773040765304787894157962951190799089512329663750057602988279500229725175776827524039958404985246879621552189803751479300734002085102473422229969152062090942564689110170543862517370140282271192427872334509657741841364153715015286169741119134013510523051354898801526932067414935482724213778660602433451192656631723858508723493747138378595823427643941787647957951932656326820076706875871908272105859049554224661875575916925112049501425874375606986191828631080819953733400589339115892840565479704011126775607453353052712262487799745647129128856371617724025048932690416120355141083184262471869761191581328225482321797693406951643748008521853111107217864603708777201894588729931123787224593357404645260171875316557875860279136980769257987256542619833483779454357463953141820109710520588641175309586654404096616908736141042117318727139303834884180856601637251038722554459232868331699637515631932527627132881663884275141587417641178328378918653105358410471243508598924360036719199361969975099029602368247182945107602656596860212843518161025128575599144868107990610684342841741495853358493295387582112082755276794615253083855058657080430485974965344149927066786163675717377110989238579447442978727866164094926431017497513676218098726409483646310324383118963003237807580431991570816435799167978667266518964310310000820511591194791654298773301691196813458914014158927331311646136911887858275181602851453856435596194924655738652209417635244845329673921370644018776184972896690319919544829367075649635766105132102041084312125078780873557827925895295952101216543847889862978895153202936043461331669873651055378951425609162718416234318702111618722480569937192512536756369854017777447427559870853698622595155355877200105691328194521115181395274725361759411394780108244144748365887300441290820623020942250455172680362063975102488755057519340410461041466002750261696634668035673082104624202457035240181894657617611625322609890870565602060206986072463393982132771677052108374615258293674252369308361817893185451966070871719147864690354813089800703555829778802596026622858731734021346409728120525209376452910833297500312843133145342039278965814255713913291385093254665898448949805344127516209017628051149610361231379184694115142936623122402784085529981431064369202055325133036044808501619219248554946740381659061619020712056052693981792467571652771462207041709675465284721617098594078807973909167258850434915640007025652162012811833453414430847130474264800809521786207238116060613649142632821873741975314702788113329122903296753042724074074319718009135941247867587339245748012122526216633629092451899944547136338083801722901106574782617217757831410740568315236178713507815631043904789128105758008752614177330614395197542751720899900105557815628159108980199983469367512907573352328978215397458021112372709479113184881779242701198262911524630294041954085649132654503839239382889477757892798343952592449317233174436042950462405384955862111037855212168263357111595333193820516083995141642070275348403816440357835724286232749456621244445437601884604371637505332710861588116490556175262278252395948179181462644802944319608078687800967237878750204097126384844612014288379818293587598337840953993921806268402656585008314491738082191044329550835764968358446151897152024064364594310668147472482588785342018510824396979615193755172089718954765553720553016016193250003879804868194091076793624438443699788978761207219551745411143799727437009179190225712472959012230114131575913582315293009084378812080394557603950947486562837940900679469375900813158492772419764665252650667594580568737626659488122445118476160355061881298417871162630620638730261203319061059836548334890198153389692876665448923101637067537415524823560345593427524549077964181084573900384396605317991129494700646024942888950485417904801774436172486708753715355190526333110162277411355978969370123278649599918557110315841810835842731834771491381104223132370934241568456513659177803829923634164538599388040087611509459787063367689165557686502748885806182963616481921821450434247053568399166008602678169345075502783550235179487898483545682085813061764455816292288978189736801170094376067212505744649163969288970682812848049522554144550401292937695839040194199236203036226197903731940712634330590255841225756873467391044269112619957716701337272956049251134659908057939682007100044778231352307409435736143588176017307547422968278576860599163147282193024402254737733498159952744862135444109379390895498447590421740226813627465093355476830239037096437750962528696467523490974396809603769328154483105426411664387376225575429453564861713546268990221898754749819689941376870318650453631985654589551181742100585148992077068527210078124453663575721925349293784944946823269860496138441463184942760479220696631469367689134441766005098530083657629429812273040717230442105966561894729727269834641848184747949247547066435192385511743300925382373308262681435211777425137041476365041787133088523160073164406656909503494753140637807262737393152776959947896855349756032586898242953336401235111589029891173381189311110669254574754939562465836468626113907460528837827180635385125598517386364393576019075350662552077508717131974654273867084799134869589537548400251253781203929485306424768664209104301260287892430389421476013716018306005290367669387679672575915632660936441528801097970044669641492592823991265055432376164128217560677410873328645792756778233900052681849751407982589530257062398410968378299149313255514315447415217522092828933774593450696654052329934228675554151112150631960161510279231411969349840299750453523279083031051623248034432992792431844958787854382808711299158883386319053527111877672724487979789495870594574177769307404018159890931267094690680999547932254583416288443993746814326031002505022003936506982753958602112730235128246707314179673050449914011430811289579725898373967552680874583118188096545621856322195101132650224333095907818817575196177704949005070930096656220031651534157776899620674734852928007248573014600180771068547306339025102278228577437682551885805206483782352182960810845385261919225514439475163556842935938979069826735083392508911485232221890600128344364182205810504450159729619245405465332379704584830198918298917448833108108788637799546194204978985055574932317164757132349274920108240731785672378086350865485940100697468572591205169553011741783950879115734781603405190795936910429839828450534229682243427888079396957103007476671067525772408724792689170095896004547556049525939328945124557015711301975413700426642833628580836864172452978525254444465778294716505806692353158700410512760071133346861466457579676187626492198486439154107155114378987695485185058640765474581969492732750732438071388347203511262934625527881459515992547496992108427154560901801135994026565291351515797262391705321374038614975477702726615740930787368871069300914364232714041686154240587553607358575384273250245906984584724929000250042932653831271912404783554374860374099777200137211319807686713588413837098760253005170191403266847217112561042644060244731965548007758542216885966420207553671651905294132391170059540430747640888765813964055427592661418637036327086784716881667355670983191205919641645512662609266307938201050932491325985115461105196533706126980658736604243046465499614489256593186416431231620057497926847388559635108930451521208483845962801746207876632911436814478539042281237139819780895735747587463142314700831186153648668398407990165598584817421171603292397043190474947772865234149994493365058716818795814359709188264393234903731543313125776745604804283883615601478513714044265752427824110763098607891095058116000613422008597795056523888636253155730070925942735471518228852994455116035340568687490175872963650007821876369148802156390407234761480704200603904331838901057406521795277369814426456316891532254779257275235528602323814590866420781632174334320217833911821241160342835110474159514028752097517497556215474794918255745614264624244690191125069759629754732151427681485439731584913778134793080285409138023451682557642466945660530452834261049157960460814922628743521634072817303634902758239413107612353021755726066796747168841002512601970146163889514850100943171588252670025999382023951043853222322465945284836384412242865984372299629115429939743224711679231841372501918410313931916588952900273880972897783396097297270190189021445439737229500816169042275321581791874078904022612028193389750717090922515587615449904451941512139999002906051273285138451619842158581124319942061102254263168687152906715384565786721839621092302698403840949134832337661031269324500384246076425066984640900454105268236285927213863541927747041041826261645738937097532928075716097618760357245451245904494587364599409559379339346882168772678093362238379427855469707958810052701439652888376469323470509394991884342298316164597956108419823838392104241607547157184163485931615479056412524747880497829162051401077493057495214780658872146916891577643406463465524680568153189378652561239996110577998899367546813301214197257079956064351714947697588797195819516453778775511505841501593908591153263463652586795124042583543022888061829058858042889938073007407566114804924957312175891126527423647312598116008304096259308566437013660380177079163327042653154439613780831530191828023282655073431436255162695665528894552370216082096505129613064968634008957418866997864189733019106671381196515890129444572243599869171553220260380945868048217514703172415712354546542984171907742972315731328670762276723756409119263343076353659987393426523605383229337550295972302835863194713537493461179003893012808839804972259888168705432498939420950925695241887487902346418211933025291440106219324634510076022586910473830724800733482501181504497877982607193646676667322392677788175957930370430818474814887781041855063953968540156126727185569695713179947113758495722426829625572681182784637917264789362379988775827458611748235367527115686801551433528044811886002382461665756541227666806764830892975290424163519551587438745225706403687346898204872363580744985267232144239253955648126504371081765395660893025919425821218569039372780148444345249223639199579137247268316175369826871119520059491986708696091829384499673636731767813374409316530154070923003045138701428817424158123042272449273496978723316904020936129670430615128271958410612515169944238311193188876132903524470299355348181973546131287360998595223697181141900376789855081404527319569784000217745194825051409569464122355729472003487363947742172556642848438576913760605005007854700049534770710736958542051494414386039512544578617316048634900551570453241898878441238872713017951454017906734002997967827537503152588145516394493126423518083723187833420768142302080895446676078002236745016910022118792578427543600189241274687730539221808960609534449472087312269551359848973419466387666589484466409644195243484396451606479086345067600793007693601533445479744258910515776371945691068641599697565143735557078141521536919734111760328824600021050689724484104309286910845316899304951910191453769297807042370547060091577685550922737580109069349467963975212058679417225604454247457751529799186984927008291390931063763726915698789091268749827138750941284270074117638057674209271391634659836711514957771217869774279792408389983986580039995759902774157810960397343358633700207265866260258170834310806677434084617609350382185836789840540567805648841986793409633693824028839449158972488569627953232784049891552998300090952519713656002041871320185064124851589563822074586218217473861418787397220202846092971265807348874700874461888237879455939104179285870829943652030287874543814918055520583141876340595562331467304905288261856847251464344677947944891951985477068317659589084268493548196624283176450234627639629225459636684374255400450206976671284755191072212782465619155877526945540458265635130364243127349538003154416085845341666061032542641527204564204283575951724917106940320837508766048500320057476367578217939671873019850771338648410445383747491940113539543849248295268138336936702233596529240272826700198157201629396054291611550052451012322613619219054662809502363060227559862822521131463169560253523225478731753440664331796475243198996549002530037100293501327906384230446239424699971005840567037718358919861757539633299544414144490840780820311988719183130499445334664351007808469378661812458600402208282294736769994824824402062558776476159419718738347253571271579054668345549990045733004591057959040015992043219422600044356015154882346294332919946609184938030579147588596409131647126219137808641271827977972974704428869089251613492745341161833023733239202077905423030382062426402150606684879224774578713412675944559350810695205977141954103024603938246774675144763018271749713948984126755629901804078350942415047656579328724338263591142228290994203140553341020603629598390896790641045869727294678825270309397119044289657658164089541229147039618229078718091500505097039398914826172909699714315931953802475096119795954634669666022439234249173107881356679533909714370795299581864233642915527088611658216729868536525414274514956679014428724816164697996244576326023014483734640453907208501815040248993497045510788807709560970466747799871872968036426329867220511344874890893389453561860908676146288435807035635147807207124314248403836600312172419482132550879406702465708448670383839000377839681793514433669469882751226513475475321556368368961676834857273479321730995456089850829646004778690402971280756937326343527673426527141190435466546525311032904465902851768951374491480972819777282299861021820756083034146295602285550726726168326296793214018366564230686004192966660622971331097149802228837420018219896570010594203886555386764537239193280315651081080993189053635017221005502922454417259129713552974259368648821786808706210527848476038984638831987243841962031830279560201272276523625286410751775215635187127530461278443984637823368964570871750357046712647428176815558131817842638905605336995303218893667382914027834973967791023701250266449180386007585505426983283377308512777113953322363411471615982773727181760964165991361602976034305810222423043046593487446428819665498331947780925223641786020993568925183645453935774307337359760279551698850925825254876690777100192400609743014059403771212371267914671021256993225810178654740917172549866261666196267663669540531715066952160066408139583819129249212236975011569264360976156224622381991461125598687272166062697878498231859990196751170730403126737116662511766366449063406471986593742858581128084801764849491134802237070932772365103002731980615568179924436790645249413143466532961608105228612310449292781179996607332764057941662005817782529089536404682050438401474008247968943772667599781397271917679154058985280428455902582820836296399677322352898497165481746819655345558263316340347669318143845630028144276629940808459187785151193773018879756735640261462024065010200544933186939702791630891587317089321618287526911966491147794930683325082993743149010820582987515991315137886845268332875564119263821025902026498567976124173641338201160974325842403447448251201166001734065655956301137440665203009263012337942142066026418110721094882184952285638915152689925775725579647405188430679719998931640936983039636220057809994450979763160189065864132806918937627432389789306444003363189339072276275303936045776522242226577004622060603840301789398929021361246539243688908230005802042258954556072135277443048051576890865295443409111650418703458843830227699669641612296647253488446651921724980327402800406587744005167018813575170253633723777905317357861727858045825814400709156460539900053078397779959755092232911064995939924575153360907642726799721817896568794370995845508750780175981809094329577005536156786239761594766969561883267259685106869803268630063513024581931118881180958942788026605018001187175694692189431604129597845361926214514160869671477695615433563500480943974487832975698211026882809464817633132898560854437498921207154862449389174336164839845148202436272981176703593404972210495377866054159692402529983620739252677005704804944885243172050726014419491322424824290712322011102600287423430359484049636667989155454324944603178233494745564182447024139985986084104821472490631316729482412950139159806486267522199161216782954035022835880971700753000618127052395546624836884691561355947032759872404627284589393188372705962887825469085750406166064798621035442093745654900065169922204252333619368220584559337944624696667544633480319212411177397331226987766351551148899871154786643712875808038966239377396981613899579813293288860656430507085758054066207060692083368075733555669229625767244496204229820898683077856997114706522329706245270275289532661400668019274250486611395050157933750783369570316455056497006533101416874079160663625402228733634350522483346358045236314707119496151436628231933885850549805003919601187981490925878078763186970711384230622275675792575726218509480547243289239068022779035450645893952420360017075652552328714639421038764127654267658504309283190901657079670247725154485242924653444893690160995408280686368006672166484560590692115945487157118405457536309976854091678097300424373267082780781650945809476604291256801107300983639561878140435852604052519197930896403314983410976106900222276370720356571352700625506658878727753177684218386987067144331584404959213200467181850012361568950524657811993342668153092613105986914656032199692630887195517648182715834755730509371501673687503746097655195403771451686688639720724540040969062588679877244517149197708956138417486513729540759720059155612358429500837698391384408523539380269546277858898881397558952131881195850992405082022146707754547862426433201842194971565554690470692713838216638505605158980330515656144723849557142318101162681377438475927962857003475363779928967081324191218811970787995214178060617057227779552738245921944773257331624281614265515501604126256574811036803679773014389405693770673841223639907634130158301808250253394517326414685474166954975440945093598358720994019470339229165633812935893207849728474191945140594987617781645969629542610174130944705040782147732085925452562590562478648858333905829196923567766594785798822299661364740586585759543110157712098898022432072070220623125397132503630923981922078668267732749664968641074259022035076714397648469594418982313834255674753568838560439829215228755588656520409218019566285642390212936615520318345355848763167957838094485188446601983123920007787084967945685274238407384327725406500664826939061729358806739332080713299529290491461831752572275155971747147419636986859688065760065612710374246520856320672512223286159807243966870722355940720341483001818594104142329209690212489425186242635518157624651224747095619835786430528832801650485765183050381754964847729009348389624815614829287463670040513446569136966323956690927076350956860072164053665834024904908796308876309755569619270475297649594908509357088797086909490041486264811513582959942685448397252418091271402870883910578946487965010125491484723184441677712927824881044593156243715864198007868989328088782649789936024285396878004801787289734600625773904271852222679083408680074321126186454617568266959710207725209184015704877479004907392777686695215728890437063853186018124746741101710751963427835563461475310895647901820946383453365671862308523291941153409635539848577413274156234226060396963733650840495026082224136067177030653855971186921868299723535671377812584796513135433795579291061018363871271507948781638022282605624734657466638812055293824332770665345790485564857398897031342513728254697136121788953086499565883057481320004569906161994418843008632782684100485098368042782480908053059828724440614919662855197726207719370235364497422474361741595527141845062294553157427128165547553040286039133110143073582776901347245131050377713311371367407669846115921305157758560941002163882419206086223819229623717953336222855414150919718385315341152205865810435686494078251245995265694980814270122460205726615120160979475543939293057409997558183517734654482807889270759165118421567532596908891168556509227818052649945071601061149393333231270160411383582051325333005646538740859018731515747286523555419757282794686772377369425019217388816123607695248377500462159632910873683088856521662584232937023788462382144140198890026823995233842181611319294918535564223521441086718976302835256989610698897330934214443705982004202045975120436712541659278892992804063570808160445532776532672565427779153376187001441065867898254471577506637488579550889006445781694945822335193545395813026244013004256093581886366478614688569839812335145559567814224071723828244920204518602600489586891910871000924124571224829705392645805325272601008104150571550950055074366823814503563299687076383212734365578826195800821008400829677625923890471292368146695056785829725291928747431479967083161455695673805669115929714628910187941108147929428128021334705087802409807014631034507836897353484555781873279824892180204340766906422494088327234407386516421864077924253535960663680671361665823784246478662444956213396063756635849466426998789914525451926049095687136361814924787891909610082495003971432889898812949501336145649674118545943555894136455864970640721058650478539195110863050502084284732462788641038425715477638214040923103450538851910005617635216122597087536751735546977425609894852743886164269282589121302212842478782397545518437106953993366685599183400729357448427202599496247734594532781197932250702692116710804186439020288222384960491620459836418662832189744745818191729214113783260881033645646486802738237476033709793411849785566470294836620724933445374000070973109766074248504035340751713042077720196045594540837344562858981121756651803815318749835170624572755940496509410186765987797924642975772712276592677103149475010746988916238374879402306835328858673130195393028372900662338964393514267203716151201702890334765297610134684174447045251757479497007717180374918015588094721133056199987938293060742286792087096481851720475500593360461650471459757928677244352621744335144239655431880067959338343312707115254721701431365244699093894686560405225660413615626340536545386777692417658719358330648489983979333782103742137759180868249963397124929193314676089653399955887651141653162137118169963113978070974248968339159193534472228216398769565786225969936571689167530738111339272046965764957608508715166946174977868195205806931615347485091702087509131216594085797007795172777603379988069636155250989217734588330850503546857358675566431455582663528303024906465961156241115673589282818746182219766995062958871453733180378629716079427612902489678926755295381705316399380254854323072023556308454342664930582446352069691567409412172078209530792503170208606689938544542360384764378548913723108298088343596884231590295922232809789272255767708134128018983998684754278299643888268994436065390032133801741022184468137905510861702031480370521730329692412590996216270337409299188677167856407076478635242497348170316611735275444329591857994225219787746844763629975975904868921069371198711989519122068051717867121955694377081387344333766056197733373408796231651025604171579963287178378651069386881772602637654304114192164044874579055526272375979805784518210024939505534592695698211571675746446662948810507943693969374419610267107790385782701327914097787477985366540956995260755634285596372423707736834372236485446829229694738540630835266118502451930684681740692498294376003281702342180840963562982947142776751026582397152364902246025953687779485129137185403123896411248761453293557081841965367630814277129832690583411439944749411905720058116706351773468592979797050444816272459456937620131569720237186871990962426019147167488576463403086147295283061686902449980504962815765973514361233954883263742883432962619693061960436856956953214378900753087834363382658555443092334062473050051059482888600065787275011674187885823816442584623293967019235789819780412501327153935088807255820199667157319369986942954947200842512913569409284132196608861228510274846202715459709066934003391057480901506810988335633977150052924776682179044344623576781995673407115730489284657331659975423173378988942711723497989078594537592317973666522305107089687023519767369190297864565007635363301359831149545020182844927563602746124755369738038296143450985695154089247575649934362603772679548147880193364733501312043210887266353007257108714375423571483043893514193720127423234967660862279998516318393634752207764223582554650176079322060502410040315650519539028055398064792813330488999882930496987107960980839716382515498032099105430739002594085846653498283400714338963400644673424072810267396385099876145578341274706717305697061784523654601003440752715701598748038399365120010486495094958417007339296399680270223066951549364899937761116169901999718037964216328694651780657846157398916024687393551490157233315419636522619468136832079552912200874075560268876557130125609707520336600854986273347145452966742395081170350691125306313565210231003753462615054446658417158426055706295192793717596690532201152112558630071193843161406686279167067075008142435812778001826351957794827943585175890169828156695747402844281861908417475355241760598861772441388558700836351945934034612035951112881738248885871618807357098382887883566125948230116877306308667784991325775859923112461246195741589328268488537003225003950915604913811628845853853561790669448258354800485473645958650961808632333269988609774066698591380249118791175632412484587261091299939005824358912364789508879120449809493422618074628139527724381734524098030580608117770330019844141559975544615703273659917128380357389936702818022167165095376485893511163835468203092548909036742607941614336909682504152362377768449083965794973169436283226387243056838613268840672311449910777275969116516498720595803981876185163110496272245034138575272847277294030374404281357946936639322934063756668225015277224279715121495315523691756004548834278560085742892622189534512894295519983157156926570585109398496163199485875426224284054606543118642002298953401857354062594737287296007281121794259569461513393523654185408627359438682530806461761239504178984579476177452967388091387945875297826871960763661542426961421589540989874227152078888057904746108528390451717552364865584386518639596720934128853657676169395448388390986253214401338771861013436840546235797388075971907448981233119401904764193848393733801007447271367965943522805828949316203915451801206729729987257165748811326921698083131155935592759821409012461574953449377885113815319800773279593840914145313812853062438712008086891865732982891535832916095014995584165282601052363178661751670788530860768029491910788353531402582059027645942462682465137213066508319064086154897388127606835657660820566024023659224280077470646806870548872223058223670895034593386523965299202708140204918610742283665236511198068223662690561591600829520081692216607160099510945554021407183039760822670487943113356474975347410855101805050420315716642305255035247252510735381886586619069276009910811238668434127105371306457427103825525894020337493893481433598372814756248265592604223567277504956047523249246236997388817991515086467128288611943941717739515073367343637226786545499238450600491827639924576350824909946112402135780906251558299331517186936801053946658488578788918348362392985884193116731932774374796936160375912841582064357775159196614256668038958039148246780298822541375823511982258746894464253358476541091757417300278921486231142982913536980459999442420312510110881490322062158746182590580108840488420143847932577612481941899834475178639630007716399274283356160230260828940221653128255565067580480912024618342861227000991298246499792904722599842570675954788147334412017048422943924943153975596898557669050146159188269431057468897353337000235862885548694233837243741497870857734251254392835109107564213857663671354985155982725289656828339629766501963831543481690037660565480869689845374750116418840600933591354072744281476260961277646062462415828542896728622441352180834836745314178405015846310782450718096729203580445073941716003847825765092406439489743538183575353753721810286043352271553777721656079082015196518510241027736020485019400574961322296389686796977341246457590206397623889200949720380436476156826537465641608054115033085501618240430276270861033691553937010017390843658198308278766007263894728617265017043932927610618271742130841418866120272873729237902842379777632594861550764613316420110370231680230522751307037055656254080636206052975441209467721148613653279441825568314877564633908410428298323418468281031507282146571567500115752178327694874001980903077069821531960255005435572574359493624581099010641342199498292979863589987222973580874650079088285165487701074086045486543022741975329252659507759032101509427446675012351361844229904288084127123148076469596374860608988131647867805865356176405806704570318685554606440095894041272462890255067487048752806255435687712012778174481240173477289960390109677772675854021177178497479095962645973571615186799486334855738088354013132707489825132990669750916752295957140805866643583534388863993236973585109736969110674025223827346115678735285858290893754399188946988544857314575660581774257646680791927137101355835133384685362592887134540626195003084597523908089832870119497666606986443893488765166978042171197143778288227350599558706086769701795005189082358627583687508422545245320816238943092255859668593103552045335298479568707223135258751391686926484003678502552834433544576481826286388804884964685265281151560440966037280280143276267847055193460856802160980853533363881285957075493180029647811841553737887248993289098680804542004529516383711927861876178808678404731185660335381795793637806280386394660621878044960115286189433409542233460961849392801667606900139085135211219760406778245850026451873060206305988302043622789472598313911263730199676458873815760910914206796430837733146863881288222844361705033352358882014064780614989314705766368641318098010889792388306463720180084287758925540469225532262144042629087469149399975552560875326555546905453130491819108224015885203784988020968333651906122787265791908691314203242143757692817549435087651547635242904894679667279506511984767128698211294432701802713801257764953972053033269714999226223272895221593514646072852984270146108695997495879430764829439054915056992980210157549162457178904256402739563170043862054773774869970940996567306710670939007627667067832205553906551750900218161288487794285055731548411602028249182705767833980981976856001310061583659839184296657807351240068172011669147674675221649870027369137961397448724488299146232903252785646951449134725346279473891107297389200297853890190731920056824711486684363210161491069674750678218950067406174386375410838725678167652453373187691734122286611943892089074402476005104117420597805391709485250865095445293730556215102611827361970989572494156287359090342112164788433807429964248529154199585284419365417315246374740928205767080932395113519033094061285854900629832766658065498112919282161368864424756035429312968468451162977915897931900005204289218182079754682859630092063266743624852822755965514005721464522474211982766168262564404521617697203452093878993013312197825990299983488974297442519863579767242961218183666121688424221354263341669021593452931924244219297344902380958050269166294654120873398832526330994999284438638660968289593828865040917924944731321949806046517282514854070370789573803496392728246180511302304810769300189051906705726566482477143595636364278703564779525792161161330120128325606415260738105056885443947400206534637450229333367629044673611534386605213663210827336245689400321926355523861918062836837846824526813672068957459436280237884075189235672087994758058446885595322799889093825225741742235660211509118804034028762609703379814758792620681044435528404039801046028660909671206201547669089856444539767885218915660431427378528019371478313804068730997617211791055203213460317284005757313890779602513301531482792978830938972675374356236515128653259034999423890709412339751655756030872906164379341994009579211466536088172222948208962149360049031894364824277548390886510469218408189622995005363926790486459783095216424784313689866566683075693982488280926604771983531447409854508021097110188028711029191990076024195385428293523538595801198644226670225224266765380678346234922639838140817548150829530271639300953796400556557236392427711062505301115564490763449239104693281084975548666528568070509790474811214854716910901392872558282230342455930397014987728163855244196828422980015701387949987183660306169301582586107599862055974421585823760371137135551328609223229755940075778350640238356637343940123021963289775889906694955853819407686777727622319827657569201075925139395366845272171158003908022820918892899293031254096634552227569367268533987416967643238348986294806267040439149833216450182185516834290286474409154851157577349091023939684672848580828088413826166060816087285528515858969599445478141046629837171224847589049090444655559819733457636527447596156350189742315878158911163133551083787463154904963495460617727365162831692605024696005353572184208076099573285702307281614585076181051023133884737759067229227143441573047198084147361606864171392264433418330610740568701408514583510371364209706464899698695431133484821305316146775135469135887505391807816500413444832681520311090388217799577215521449055461716226212833254944863486094514034622738054295220373304279224502108287135889008001396346712279669132693540212657718522887405097948077871738366630726939025631158092564101666815289060984266288438836464552633083794724429039125379341508044546265343514176991791397110752096134374686207684241090792572552771976615526814243834505010232805726773748615245059685035424130509279257493496873094655116448913606698604231387938202051521309268931800618933816677211041160750681001728992435984330027328283241350267394693779836397201144832611094956526622231439878393367176098153424684225081069943114631068625765419294941024199993166981787676874713116837680424392997553870956761055169531853181592045765970818145895696722616538588608200782875487473458954013536820391702366869127370286050687086455758145463367119864033259495490109334051432771100113531450668498388252032931495944034794548473879667066485913969093734700142114177832961596976150268792818378590270891618800616974414608851337549086004543617868104539249539425726756452081585667631023948385275529024642139729913413885243000377235651148553950516145251630124064669037080467150323603590201008102250046389601996750049123005164046073329064947308731708142179725303803537939528429612504861135787599606923356690714079734702424379404092319627227531055317446415976293679867801254316565690847114910992082339378859919066378962852736491705404605831623824628915943670115472573202326381326113995847509444542120673526395390020400534888076794860956481743791436038628112565270583411652599927498048948513612504436567961942188289927101764477214563400353817472652744985477825870080149068772264061073015511613205242358930549524370658541139929895093695507613386963431123680084872961107613022037991884699198534103012067948681924879653800712188691786340073668575707872686314319750639088700498746686912013333587256879327329298622832357460517976125653468119437235227184292325862366546709845518395402406591057236344991196096213039150350687263703771780308294306973630693215389873109184894899106524360861570468698059219690243193693285499902774213706261190754424023844335877152170750040661959488345570455621627246133552689111664858469812143665808697343662835002785894897857253829046729972940310637329203160583394618921932607359303958092349450260237313137457515755106216231702286987515774555186816570821895131075579207815310571752661679687870388278274566194603853481511284821952489784367811093516353258044723734584867989474191778829037986650750433834202391995484461074312969850108474947898667470677499320252290079070237918037311878359363576470269237016486013515795611774611795552011277654490969480428824238513219796765953915727757055970003112459256682014685353636928169220558953711689186357583119916499993013522794503441747067457123872295241195416536132131960051886745811798445411633420211652792147715488916450429743434737090477396538300858165218985134840924123808607105703102612727126279420910284524920558675261847611150204574495209276270722464338257138717110104229285232175539303172557437472671190408940102273043927115382555634480096787579117959406755143772990514233848000340071487320721105488663752143402523139644499848807731992411807714420244348953822204883733541239414900900910848319902517256140335592495762073542166713276938634821997341707432898626476269790521875316957869783008127615353303858431728160258719158901840777011374812087490658792388657752920355949003386995836290471503842787451220042820088095143596532920376990503613990207339221363713737419273843664195581814595020107545218767570021237103597804627675024150182653291987637775544251916282410028511211210884245676712185515252964777626043822955832632845235314464912437462995379588640181840494611323554375833155191290374385782319735932285669570958271168596736560336749875846537177882022590063940027750695613763928294255901186439160088098293013340734420935402134370563460473954985292223242486407248840532792265640893164247900658786815057241506255352952125918399996908020175313755672770116415963942282789941737317875605637277018573956038990903256878557813088630186380392864442954668474290385731565751359368319685050997407175711645478587382181401861189220729455454015324735275594398641538123492492653594786980568051773576917285550260059004013418334125176747829046168311573226771026586598355478436549151828192001848505484199334112347827913886888797592488887050365961185244350651335133960372715476111031445336962192782881757331649835632893726899469548695864474654467633466016161207591491970646991126486169375052166408338337813588042889619636782893953414168874757389803443098250303545912562835359894781893117108532908603008964771779964020793821082916269490457839786550022213345834353700114830132873031838119800434454589246622064551350218778502842957560026964343530127465116587549600626860227760917674755657879243598997686122688764649637616425612631772604288636774328927921541335421138951810462824791211491735659971961763505095808912263108538699944211178859012802698313427374884412554606412424762287345988393446954085275028146151581786873813856795418246896668083955228241614971185632822074399015583689440813733784745615042111753754878512815925834398380812878347591781492882050716624886906222051167466167128861897848681774918552065463995208457809128271818999660412243433188293463272598462156632961977176148529985387051595645386820196729262303579385463345667375201396964741737562903782535483498536446814078431678620861352582127500291763995575165526770054266142361812237606838327788130096625957018974387351553887966293569391668819248052524883985023636536843753644613423782024271427193302064176391255059194943072942997933433407230882041819494993833686530233120518443427060997193505791069177592574343525351125332336135004960707977185247952862550175772446269783744257429482237534306677197416360909810573157972849725941180931189137682079276198638222928560023984813039836823492641198295717290048522785210017992793875205505695309411525745557836352348169241043296979962746029541309738308446220088509817418860992296864206723307440526287881924453321901337746102624987414007593691427895466811617476774392278843064682364526254570280520696331881580755341818170201786696465218897541384237316064927949080093252131855642343977426481811555488260848189897989262025697165790659390173193220148707524696785976401104909152181313429753523495787275747862343360313983969141866527187352342042810830620828344359920776287087154160016590973530753267918355119434863142385311388051685273599169030187088401516188144166502816302008435288572323960505767352947953094239038511354350104402703932123056506405863686172822492118941638988327367719028957423675332858789826576562150871954940005420566685773771717206354476647165368004516807075933645080727605261220556029046878565131527831889926608641102159545373741088568214645493200053090603704425238152923472470617326055937512148434626863340400201414017082658955175213809486684133602180011796341024887999934026812202981533860749091364183089849556335938635492434227727141732291966017511378219149037529182659744140911576638726009859870301010645670036744895834473783987986251262532870600761577496197792043265229497958951567783470186713256699460467221463122059645318485223456177181690439473256801777602118673727919151950896916876956011146961485556548626854767971903373392850437432093034185736353494114816924658608528866246254229233488068126814981946995181086348224906584328983318165946245271505356099706214440985426028317911311565168769513199794735376421793627763575931090054774911856121875630544348029066122057005209856987529760140343751047081834174347567085366873105335142593168926060765679637873793820895538255266881113169160806222689871628501550515756333383831959777262718290587990704886496528617755832564364953987429569462694435759314177755830831239625076350248536074620625915075103890467875587995718823849366781439671516088810727745075316273176640221052725026623120013211519439735378569536275692533182263344128261314682090122220904432527632898090320081112787657246096503740446387053924076135766789830143432296296219319090004396195340371950016324965956163085018817945653775983573525083270494394706499483660011489067852486609138938555986282091300209839529906986650307156289164200875495571759115519592807617127469283482897676203153050242476718794277327340591809903285540716470480981067999932198482932171752943040831923501633363720095127026838788486706011187308313978550643498748922134471373307295159108693976376833868496494891661270337074363818569465996010318751443576653062460567350250460530171168757735872676301227607452833025743842021475294250151921571350082551810526646872172337114963240915535362993947632471211985798707314791201776546626964432647406479526804207753408041288377018495973740318374320785689109763146566518315876697309872879403928616410771827476692469847576808597671744577930738434876324707782741470473717039320529090305699122839815546295722317431273596353343073598051585797379681146405294546997629056010507243067271860473605599647742104198981794208790506421048583791666869330750710499114824438984724072831784388670997657393400160894921467257194857826941848281158561765915959440369118361503298561975970916093263223654593537028384518034376995457584320266153848359029537890743786119505252236250055943413469154239322542759628639537906633912915729957432357868156493089132383374688370018401840297547656689547383051891912195970083649881343877070523371915189938325634767098398216386971206555870670411110012962515894309777151573529534325623687845672352148248032188666084502597967484462855103557156951377502899664264075353788032490181215648124658611168010444412320436744378605234293917616665452747235064738735063657799424087012758194008001162025008134042496299056766863369582826153944740490880302020741381090013707527228041742999627988552451382162932089704263013870138893510814282166420487168518390872378586757189143027752406851941507594016461925997968203428678696549810720510576439203425818003954840162345059065173201119275763078300986658670809196775816318490127656708435742653191957821768340723944811731775168099845708250080761661910074500579326963747351283937822912386665825148458678700814039801618023548738542862722792831022104256848732450767256828947965273926924504070838970856035832893961928423251085060789937017712798982479307286261987295911848434808565698165853487373557951866650941437067318382150191125512660322390630005242783754208759425143505864459544342540616722245167972718766921020653827002914484536696719266134944342358770538326891702344758261335230218205362889728337212191285518788504407454768332744998213824099914521527930135033366166891559189643298690592759582194728118787637184846922639169836235715867446834289616271909630041561159802464107574837843758438430039438998620656823905451648520420558655000939467293106642371383340151969653135081818017570646237406423853684035895677965031881877706181612161279608046535670977029041779228441121976632238916496288443171513609707099143520124809878658114790387705732414402978802849860541448885041970487672783018264073557332703981596692358142841413448956823580629294479670024315310167032136072011765101997119347437117597347114813824546056455868700408824663828605431040697654918491047040903395929526566368296723111020334507124369135655412052262369754495840656287757896613851754360961672779708359900041220752213542062014128084182135207352634863506278104183801597133951439172431318648844952033364535093305750965321512804810812961125747067764751974466049415523518684402569290424769366004826210605753589605353994344294242912235461312306679992302618369579027671861825557629626427475540100571107337957979687242770815845192748985891236410437034882475326189931195785432298724599642255413051743673211279018719601293412458185950176059409457261696072980201266650274184305454720780141028248743621154174129965430202231934629441923730817877032613719625934436361267482030390389537876862307517413114358877612459574680122694255976801937320713609753169686477099884801119550045356572492500767006202135719226607856727416473822096857460790592151020603801749019695776820724199531289407606305364301142298645272631586968422950854636087927869568399248302066296416256398882327108380675297842931793006433787598575431523303573746912073343072716865186713718275001323330839144722340496542879357517388625961214040443186344889743759342854679362920565725070564891353468000752249086006041753578747669938731822769613813244462619617062326562573433569588200190850191072782883057270783704181214651623025620215478648484679177616004549456345898487444040675162235224759525540729959774136639007678193771194563260881966121733473577793963873011490893834047620936083458804280510102444613313184020640602208168235879293792231834437517781891077720700635514015138051637352427301492207355828232142150060530393760343966355804118055671141853354852916159406657762947389380540334033448010160516361151239103126573738255694517942739073903111317990709951535523602630983164134781777349216435160203646794784275413626839214606920398905313248293952373536648890040082235675174281618530221479125946525767506047358628457148325265879610006337274416226630608728647029736582475570850195927283874654365562723613569751704998269555477311314657055117995276385397176898117271298948622164321625027166993698715825538086979266905793776615993724341205976334941613967754793895569575345446354523148438739359446875595739388161402310008217130833996815265836771620782401155608561992659076902254029737076448752933231993517286590221702243280198716206566272488163845279572396902945171436077163861090519383000022077978253366496382382553076809668916553371136568528998149073386287894742612700379617791184761489871049066361234129706275133234440463810716936344296855781253341116516662253465381165634295432825273241618611816793455263331867568858533964702488812846632759621342860844302801787801906012750294021953921676223125013088869919487239070546032249800020066442488166289842704509598027573041254061380322520058142229192077813350594512092531627873292762049053508464336358460608343778540808384835753591774081589339546226183885000292881168060272611077087321293015917472232558325243684368514218222875734485334155597031466790648505590892879340184866579837847778097353724508454460526042332448794394400667784629004390261744003533306265129773495987571530813154919713751302803468061613262282094405294543412344235445258891972471953879835397830254667725838507317241681337736810812827288153480240141432310150572059905771876378519969610887302707834426766229424813493240450999753722303955093036633999985880421619196068464177740931016064574972961801699589004644862538782303921322686220782924389203342964490776847821510885359682928618425733835953625661668432034584366228105072469263149295421209043063969406097698180219145201552446378379385909958141502099671148000202436197909883563737166308151107240695795605207764622952265963756571681407373170819040033244727028944781398669931978165439397527566755066129134847314349073117745606601347946248672427635059731225868959659774955677527093621884942198735853986867221194795931082492601705867832246865895263594167474940062909892477160188981972975798023482298811544334643000793239576362928186239246379963622783493457363154096188467079253453143204723995087991998423901159462394429658659326771877869058874838237291173547743908988494502116952703164271134670174419159986312994017616601329909621772712648695768875883754071262171086917143292307848987476497152298418101567701295013395593143472019415635273150665840220789942221103411050218763963583757635766591903403327180809083932147689649252356582355688712978208150916790250875152232525631788364355204398183146127240391208570100068130272186504055399840199488374915097358890209056034025979682784181304814463719299186368247202592634781018701221916036445621001482725447198988444714846076503690001993859812001885076687608425325812093996389949452841119856738047953784464474959862375743847542643304829821218473420383357788570745008514635403709246883152951548994124358510049919132211582086344804567819134551653011573547627494356714076708203987528736034561843156160252404330859054236811594138722376692804443810935588533853555305346228326032308004817539339600269844924235589773846539954512246875935861870417576648110614950650375261161788579586115478267595398554990801295618524055752102731489500399128270660752561499418360631334914209349030198817638115671498516704872494942730979011408391184215910996318612428273488351828313992653624515110053306263501701512197693420097202936253417907528285226558687657142502437290503294968363858492863681306148622379053854386292518500301199697069476965060544582027745579894029991254894306809355125151487613018986241383359503815010242043910596551529930981836302919442631502975761208278131123626296939741572604848780753165818226745569714646791441363557631769482568920506062979717187312338333778814934403023144666305356199434970407334075920508302407610649475876741488266915904476409535882438598886975967662572390336323747712102753723721956521691790407693454237428525257305684365831361142326847710004341815158930062623187718995303854669927159113701618352781454933508632974173932284140343901219738925862560219098385350320152274937452660392978214859024633778531444291234986859404797695242076412586205535287908174883654385439615895652710604055436706301182817165436588557047188581212860493202554380659228285351757499482829879170571996747570629975485345090156750047329419100131400571769800253187240537808878506749393738278128391067719100044901385525915249208949559636088039842308974063248977410077668724006009106635456249197306493887052170560578270104917165010605241892675760645432097786068453626896657043246291216170398562369098123137208920964547081554372568183019926726058073642754819020594433885709400885712632423879552654543446519555791807418584212936409309212219127809568988964892744226766732935604413015323165156366247928154715434997581994951799930293904674367604102469791135385897974843526726318929292267342266372976946443675398892823325402913937413390741778302244698777988470094703176301253777565412082805791351004329665607388499398789668834147251212506326858615810177379797325820371634180521031211552402496910832028066011444752615602175256022454704884498484599313884705755585896707932765144805123228701139151560577749041689916003179772774996741641401268681038004738062970137614317548257924334462365057862197167421753164873188747730228048561285373945064787655275522750061210953725408187011846107656725432662789038068558504357754274662371461659179684026958883666485597263283179159438022674812289128671894685156590853371988198859633396320446984438300326193154523737234893397695044865417053759233507332530906395328868908877567248954384362152959318571246422171977225296573444804536886851395853122552339041446680183079297197054929783459710877099966008149893719924389496857948370263280610554085860642771935566441253247876892684771457656064761556143692501721993384167185937384296946321514331555150304164690368794808237595945527377868484095238614620810398439306162079807403212820977641931268133809275514758028739334454627277112707121316551130717793914022089974908556628934561030948503378985090758915897568963343779870785467145606520088001461154347538619303223053056467941336361994319461927284509630845627309502848657429185041592232961248995449209294682204254750524371391201114236712707514441432612116095861408177971240860789155378414144481829268262284668815814701252001750173398250137096580075333964858079896779420570254549195130432113005123808201006085331046596307774886307723229030870430245544048731860850837808663335476332307934195698443760184111138731646402735397474238926833280708427164640464314299017032126602249537860704785724726592107308833445920280099429296359188315080992245592509224397151797251980150117014082469901599200207527976473549437185123881974586183500576815507315724827596664617855936571024898437249084801457217975064615990954427382597716342251845190739218179460143347244272975576922093963798403935775274488169797448143343555178118661171104420361325593496783525492566434382145360561338926103558257408014477324594099098077101124745450005103489142159573334451737256967332253871129655305925133783006361706915154134087619371226470595694766781432359873845002625912671318864004014759541068074290858105552262374921706992434039063099112571793555241864786465590132319915516305720431877449831316904332091741375512627323072600460242811017390593709256304876524762047875937981531233779555062002417717462403442203841435022429975747861585013622594201662150824752044478572940055268944305220477316159204355552447338578931186394068483206771333351584382105637389503475678990436881541352231213384065718868741539739178148097398576651806386626694361863732528774662439892864185050473139753049930873286229784246278385851688898480925353999236362165017551092886556481864875025534090559073718743176228944761574591154608910556407327489312193928463095025612197759738245928769838082261583390631403100532530850916510203365013508227167994202715918319970702660858163048061763749810362026867048838176068276463264094607951020321162776746251608824640396348754650650480330982723211272969020854455109975964798573393846950382943829714633501869327698624251720441183168749622083666738130482995983027307453043128973886350507134834030904184275118779116998656542153069718831660041507545685048799017609081366620422940241920345497691643763369665965399549860755012450622169680430148134485965283667863390961911329721270040758258212161540899442516044465441551055596261958325862325863906069575838414858688501253713148056537188207699858081798213594837143234078149625997069463960070751049229116712043102480112612051756607592078345831256179048500798819508565625301572784043260745370800810042013131815886283027464302403291514469850764845652478835083161648206862177075185315298892716868734502615916960616898095625003241948858075951114224368208863779097600905558871596126635998286261042556761094869201529351386224807334252384766354917877970528779492300329006284914366762806871730817324447766511031631334337812034067201841533363553188521876280237706531197081712198304227091629763234458812716005491722623730175946465818930468918197724221924152186591407689925840870261441241551214753106791443824331685694353122736928000296170728498366941858262479325994969717821353807978907299004965903785516714621198093226416732861327333241735863992358460937079426707839098965721897953257382723811656143692788560208235892710417606205177384686663457902128881328254372610695981409694566596096350970433312040450554645211420424282877200636965388180580231912451864301399412327180876040589150598048980343756219261659559235899751898308785730342140172750678838478710795867531687751514782842705791572083040648532595614119716214592318782647745115225943089582088815694829132699178930421835595203416365667902158439196326812833937333845311668864339258885805062128910174793076821521785596253168078577639492140533612415869845412339333202894875315597444810281109712088940301901122959819222301429358928820229620416728530037320450887253284010857710621607999434153175622159742543039828643240807042849853528837957112531885612258343132628848923764977013498598498949797456519339826596130246581236504998188755212922179165222715617147660378318965367308507545113898318782994880970867275726788032266877581191272890584905755430359916485922412220537387061755695508222847448424246920944355059959473233656889810775524110375096135771334736744564298071411887116266546598769774346774274364189138689928374834471778980075906712760535926331108863140365472422638440243427030901901316096929230664697213720558316083836809692011553477263731655995886841981767388652742441217105155525735199268605582923134938941893671535928959021636882710510686933107450054566923895898770511710973822175867710368254861977693943323922354924518138374598056155890748222291231592845988793578052519335553588340298578040340592946093001373285003280929049458755540769159981449059496016696258597308687848969109493576358290474349644183321515564382096164141736097475325257758338921962867296751222861421336489746765839639614513364701679032527337227224683385270674448202187967191377291928271749332247593312458795887750683253568375072655772518370053708825690199543493562415043796443626903104172958224767386745908128433642781554935074158875892302428651142297140114963164724558106449808455277619020261283606923001435896237360375912523051126018104630338088975082442116245159339682961217537693556376936945957049859935442237642272714825584231774209277325852182116397542276155275402678874847064087830433172015714771399789117780676120688596204985142898041713123098364793219898169910020645838098073504980485844197150872208118185491104812377538614431603986187461317075940317114828454507754313652282279540834939547595223801726180093373013873370666095598406351887663157233133970324148371680456570564140608113579203449215772419096427981911120165630899615496632682300313271624393073392984081609825134891669847112434062774681628124400825696513769287526559901021873629485114212581324118564942288560082757988251189859762967863080301538331595063377670431019035894918087324759279153899370257627927703888780378326240045710066025009210429692116423712461872394293096686059973651565609417407376031790303799230412085803873330539328400654440886671900366944651199513448001054915741724834732824646224405438164506233625454452257804784593122766480257514315331675894935534208181535363529525191913063961368779439764189466335186652752389997814235892868880626859290489715558254344121585194741210430233409225483392110905988393290120839710558574332207046776030418374098381531911849953849543700272883581990947562251928078932962945728102739326255096149078854585391840620678190379490189492918092563401058266324092417334846116647342741421463984426357045067923498655033997715793188601078231535458459621226756854292432341578263615280514432462888000316229782641748533736319294710703522365508680113724634732043282089782335024196217763848728973774064805686688268846371133796787689977274889654341924769214364273324159256000200981008680567108497843645794109385182291289045506530382249692557008784902285992651838652920410199195997779677895055592623500086624288198129600696376361255602701868550049577545103833982143500684913475798448691399399838918478177522245676399741034476174919886169611883920150964451875051307865244620606825543492750176669655604264706236715959149318031180655613354294763016286358973706445406785969773782152300512033632248570790476228052218363890111936708100994652334555513589680052947428659158128007727262922457935175980081434299400621131841383007524356546728907648052465951523239790939788463144552344498196204922743377638185653432049850934926966060996204259085096141752538232061947179741404480513349927407081392296020928475054332320327472136932029820745265572190051814291075832277269057163931011869908200401545533351344883420099446866215127589698435165842038794470381379755826081161859974189127793329977590808141035032020686610693779911578155397477175693735169576380162170711629245169975523320897181637021089882215278460553635167104694801465005368770998946524055052013217725228054415002542633658204048932570838529963917052302510660410119806436257591866259519098050927500852761528887482496529427883923208810745448118869701688642928358906991280432261515149087357426016295327339306568531528277035333676726932558827596388869721199769515147227304467821369821078916045798471834181068444101610543368581637473754163081117961510362024441586117304061523942004032394167574103564633339342232345946637733302166549807700761016780770083577882300586501279952751999478283325468972684304586839534642749719529841085160349979886238212400378026846012365650808932998406943526552419831968889376218034146343651293046776072079154850082254762870526587207748626830106829767768109038806964001440481503540690590334430030332858072390222999599536173300740549124200659454128106930036184599137174751717059211817438660382961273645786081101943706177694328637450791117615322809647433502762120463096627630911680602606999015315498447736162344474579017073680427879630382961915383215251596699407518266440140302389112751940052458427707871151364352614235813236515561559140579084299964044215088074179186322562375383992979098636396512580375316166140283302453594072891022529557378667809551574623474399277299852916185134571577058925002945329034827476317106391060114818067654810077537670346582460112631275032720634244154775441422565006914859991842679438319003711674331535405883069950582863368162558564480741725714428425344032212236006646446398800917471803017250922442648031708397426855391047454461685654675540947846077955811827535141789221518284562544278721474049040941493839352271235246105120887814631143327308642767687602592568472736611638679546757808032168602315369133954992096873844090141195664385478475474940320270338658923749126838030674097779805007180885524824780661648641110187663559479175815366098105399591927078397217177860863781055185795161715320862927918066334889515764671992019830008043436980278763876509822479638225509296908635583657475548172408601986463090075942091353682972581141612949260031786708043072660694687220060621334789149781615127186829894980151232544477436431221763999923933419007713335700879996986213227237857427770584784457339148913497569026295862132826274304047346387837071673358878746053645048060135897976600851622993783709671279179015058073568510940707274038221393593716594955394709255773002551535360536784306483645947293544707412395494547238715775337258233698676109950175299171116359274711799284273078230514466970084507667187832899916398690902562376725063599216680159299508133171164724467255320812257200974244102141248159585945142694422586002263877447336395629141060426112686643574986094458444425407158796508606735660087506260737484203771622170905143494633226927306968043382082212893695354760471801158706469048454995862316730513713568513263231850522488137900722996262737946081291183101359821948729289639970165926296819454006524696216654971036826513312457470552365020588274999693189083625817471303564356050078075137870123277110533461164583981220801880220466328887809042773997442823350639869040613924910658497525428107284286557425673347464751501627857955198044540147388224096036154925776088764154114944566069559804983254820954508482231804140491434450992582221167432778763899948215102990388192172404867644593055655121823043251523498225519310919800517984775815920214742233454250746020570893252319794177340455020258721901506370707805239371571319140701825633910622286468572881866752453751655196641016571805319697916618049112355954204578526542654963892344271457805200452296855632074144243413974665612128421504612993797205531904536428060193016892775503228273891230153397196685986003649761003161662259300741568368270564746676914379887464249187680003374930646405846858088961115751663363082374267579671431151052243766116437907019899829466200352812399212143758238664092747427622204741421005035072943244368974718623107304661219033882408869968576684694683800627297462414393173318145504107890369288490124995835952917132273046590452052071904073557841066715129169070622691708151627404295652302294606651462155847553535294207349354252155294331081115045770006225461554066298673952059220078489851119549983510728443635833520087280756757894308071264921314597794875281649180922024626149144086291798838023103956331794315018172725406281450872391154150919601495077236384429848673512141352490271665600589824051353402224261780633312086388409098675664403337559710291972861718905226159433045610415492419718772651842711587069414474121235766037376736839352654275853835023293344482524319589591107785964551058691302425247228993000893976429187504221151860429714810339400815546351074575485679498976848676307838197513948473174575435621564241528582049994191941183600273197574332451459205586209578473388007082405273354864282490311770953763963060185037035884112953118595229233043101838851193287230786915947305248054926408736765169886019111023923055613272551893601674418681223959505548890166347996773829898871844206590907738694121214593159497629976223390864785185878946904078235733887059845032830567133213445174808787294084760496443531901917745772270811665600539948208877549313510365833606109686198646706254412853841392208841095664956776535840080407160113553157426174225668172575564171619188621302082513572081831191660949436699052113912067055340666759288758092315156380870900052534789123003792125598450268292547525693051269386613469940490744383190297547433964749202140440617472891174812999112035455185192284628673918293461698511145390359877180448713562766271584530626333007513449890579690171056382653023715490084771474799911166542537432319768341787345826539850826967226989823072881111565687567266155856730606986391147258336708923221725354449183913207034930079147123980832356529584795082232972401351659248377433178589585590784184504862913219809511276247869123459191963362023359026824947326224402484675820617590801129537066998431148613870756542596265184357241768306309476717760667997336260757188726551431599711616998528552002781469060149535359615557193462010827657207327524114418484209051924296806420881808439747761153873200392445187773744729694954623189535667494116899581491078789275863962333929911720471649494668281080870366669610164497428741573084570837699735864289510929267627895418405086613393290532526071113959677489594329590796671460753664642127941854766215694180982859507943070450485644303590734959328825642518697839728236147813852724530395334876400445255642559768108596873594562518242381489433370237338384906727800350541351914211843463105160885861133481214330919225061872626524249586060888621702457947710851023374107246615981634529509766050338021393931911928797822654336448357152828387784414590954358914999368005203494028403974571817467030085836126785056760136344399434370326647297926058902742635131963420803463932494083760604406528919076305987068148932196967265882182592132335888776695494884267719320134621841485860687872152355612643857380747905746217536208204636022991560430210293492223029355978179119246277751599880803412982480439415649160326311569829418036812417122372538525314079444233544118449112723984096215064620187951840020790213771595060116196874593338358220333531999064166478980193449836905287058928956543841485968607369295481392916892777553293951313134124759993229693258053680709243358632343281224576007237106939082085348044188120615354209747421941913833021423493398247613590236641455516505566105837736008637260883716567968405072376437314410532625493218249919240153116241832495336530809937989625717290269648792770816916720693398872083449042477150538734071986258893445147020741762604249705579153418344492020312432300936843850154231668278825290642185775901869529867594693999993531133346155137300026412184849929081254547281364829744508866352055882733531895116143901954463790219425278006734862557692995443717946906800940939373371014992287265943143007061805467379421722878292154942986481834183011432914149281512231986804010722471894781254206127291764460749504577118106657055549023492091101423063769199132427924981824804570961056672102764083614661961165990822347014910581021582073426655809339140918969205615127208916639481648232736892941344407189819704596268565725207319863535566511124689375264492364208068970701774103386937243443822328051463765259504959347651166208101472935443802815912461533838884128969502790785147064836089729953989812188171821927139759902133268920328012936994938604620047768673528746989537451220714455369806439673135294448276462103798516794175225629856758187423487605173477355201818604432961951723785185762324530037212515482747341627316316784978409270759419365295173757548372730848858654586299974592580983620462256764086842976828302675297858963585682550952241320329651077830942077201016630926185542146059879264710909043004265913627060586503343056935604383044242752867643745070639966021254971963272427482832402920887012245877858465987541109484453299477879197641408377106064170210259237130324513231633285979284527340459753415271554443718900520048759670135024794755288919494166802241898997655013332811758647189114777423693394077866044222513073707282502871534554428194081446912391880792061119361113703780931690577840754014888688861918598852510798835414545376164221499785234418545355135612428119085061388240383774071729974085839362498512108897159850599828647966970102696980844593176037045927591534947160846094423684774348316434640054909540817415549749076899639464487830336727538784607877498199854268604632450585641279251682606945531377491597976928579856141654777312864216499345124283619378109250196190154158286945017142193168469968705270460472852036740886860611405087471297904509180387703365053376281672499656582166193206795115681969328053381382240026709225325705168913559473146527791470230361154084049879169068795097641898677812150144012057273119176379731487209961867598194135687594177349057014786532844139734494897142651929774105020550460165677570207688803384946988475294028292539347615317158947597448605661291291561038357553863453061721564400931625038868127978158815499732257333464185935510313994580746867731338359477352232131926862384726356075667386821463727754855383699112788881858295716222298369739574498268555077897004441375506935257944907611480913057411372381940350016177967318221583621728228620647278041005476401231852747771007156421660303566791316614945199038923030156720279180006757046861333143544891623429156070253471194728241644090899723184299825158135171235995243301264347383687829185990554259621108081892863224912392555801336176987747278641586005343557204464020906653992643021148719931052024538920590044144292399452398095804628735482084136929092392858775148122672601101639409011070551352098734264369771180779403798021779769871320662292837506922860822651884743361461463905266661036058226783116304330783886937461677498966254795394903736752505722308334395971492868347211411753942911244579187556984718736840129049254808523943674041776561760928540921756688744644725914016932250541564414006851763733731629427458580998062804844423750247245107878914679828675668337969425850132955891656165198976678867522630840318498283946743332962972755846757563110929067824692926345495451241711222849543197958481164380968417947068784401325600103975532037814823618116275266523040158472975615415670668013395808352211322256435099369507455415332010306353510637236463891418362644312445037227906599179873504277512026083989052207858775567253915999938887381172610884756885147962786910058301725815732701480461850520638717623420697954909060512404852123211476397776251023543611244807624511783238918736511909564582544605049241465853142870447429879707994739336362379762116987304290180936509662574072810245943093799325297697855712999719918986713212557691848055619947275604397756690864054452022108488314657342715920637499166665824673677721699041109600435636822039386987491495351345187108739124605746196133045590987861100809763465807015855824794017244519435774660384629535988442193215528273441764761954238606223377032327393807134755111394122159071146443265352595665105363045317785281579944360890273772549231493527823442653085808177019357981964077056348083380676498897462923005595007139247719243382791990482385343731957840485452875969460901019813876235701593643050598439958951987795110597538532712324280883679148700261213311689034366429641820488843344370086269875364254907027663519673358042303106533983044019951574215997348808375363806846605368047999412352968249218510030792638944825849032762472224917655164114948207321674112601285108617013502892739091454891234260305919823022447455320196024794254369114795011813609200960826892465374430448974005381905579573767431344735601633935878609537404840051469902278157005994465888165564255530883411256899854252264104353659448259303011589116471853804647339107364569105308516773035957328879187146693408425884120477500605707563656209922926498621200769080427124608449484483229806327445854857482051334611038454412127418614707962328625960819778582509014098640519779968084595523465986061220225040161337943483028248973462320671966191816222862036463730638994343115760401200305402930414440224694393126600630550102808379244510788636476660350209858408994362490711781444923887840009377513797986360014356543968203883587967887505679232211215422277025268021829296341920687242565157149797797283490340606059273560402952960539522948263529947971540990399318902575265199624474052872547690359291548198393039249675910732666161556026280503823052674180257476108536852975449117010152272101082095714391314575506784195971371768461541254301140014205490738487808805528794373568250347063959437292773903584410162518393623866870691116184814408216787365672074062457283110111819000055490951865494671042931618002091644157529736881309654731064031219382994265061880198305583846911151857539946905073425887665374157314625279319393490020637863833826246374479363176752484472560807217563815416677580664754313496210555837089099367581376522294603797585627975107802948785161868751299526540388521271475479718394286971586802779785449437224806527319521131935282841181201309436757001305783043793473916548806310834652481879010412010960888933460380189664674346930087875118385660286856087580241845053075182389457003859709722605803798283646975826663206921376114688412068910389577921842727723758485754845014536312658635499514529359768565580979087489126465439796727161449219615272457002334886312599261710113703973723347960610248395559821536711145602095510178402556015388781366925579026104676906952796261426212747524155318459947058962274822613591296683520234299285240173305243663311979017367238412328167779266311392036002916188081103656885795855060979903511260427429885843337712531061920534574590084709869272688429460036906457164343966927834937720810838924623606056069787702366360954698110316253958022597763613164230039877174956922283469818164085465253994318197343921988540209920591509713995217248311200616622500775124438958817229874430269100024416724908968831632137960963408258014040361670034606364345783072715108263885261036192007552486837788675426621121467769969123837256807056244334447740509300656874300938036549410492540614587413568511951921645154408328603690016845294870245045866382451327911615864116340690391787999466853908804728460326637399843077352131948498969083309434415614705131890644475571172597182063797307406901484245587174937346969494817798308237369256202767255575396388083863798379229025227507045281597720863064850247464089098900513542432256149140847502935075166932943397751868214512056231876588318677924568332460396729015795124907130831992911882398314928760548082863320866168099036446425636358342923455684886701576732341581690165460334950944631482944798325025747750296798244352709052393224380210161369563621131462760581195732372546657280174110990495521814293268580376925038483461627233882664466449279801123787328694506367209237060837415647793173846167212974156032489322396783627703277820546335957727903191003481811714548571445499793625324046338903798438155179149781104285714497588829869075189399029287885285270764011690478006074596232458937160347461875263841770806381828189897930738108567406240072553642828140834505987993582315299849223438275241134806091262401200764930000137149749535872259036312205003241572998337391242018149376975784472391772155881944322633729530740770102560302052241471428761508712700199723829453467639127414374036154696816547304186884792635919406567140805131892719526506309788403055498957969686520114743851574169667337827920621009522568546379103388314876574705137302949835743603158773411962592849753551394483328128749757067562300278931747069969453743922402858875213463676971275240960492384167840709692502122013923510079110278501288725701227256299578580716591721617630961659007354233595651391550181083874078758300641418506850204201608274450352622535305925557293900179105973753071326925282615649209870730267071723206093008785801286231885585215997575617710850138270576254219898268311062280893490322722543348565136236257265841625887172015736702282641679491228001001690889775982620647249776777650460626674021642248611129372769587073593876646919490346867314367048317598465186897604423184192038376978971360785370897345899331627365925095307046152263718867185613571988152061023084853938426449702677146096708574978766674008255172901712925677179905163850951678974851770502821707736853722305366180312200022187179635745328726105821240044048149751304150414393775578797200819999486512954315990135892194919346465095437826082218877396791764667980543655528309406161174524180761533733137597841275324144418974368135827642983353440469899801962122168983114192058718089170040565245670102113414335420287498242557583963083445906241982222855698973016432420946510690417023873403263110992706646875724663902703341677859330322679828483970962056661950339710411144049919743243025002912938932563177655020881034325656759658589915651173809382358429036218553838924427677038410410750706573930254302103699077184345848383962553825181110436783198551390183244110587021206825287823198336831505103833621998119577663182594170616809066019873449378315036302746793756139136277524681144979303519788295144995499683919015235292829716079148449018777197938065070562126745001094516698311338580501795683109816985168545500956171049450478610100798878122288782525227644064436861385851108870565375393511856636945328534768019961824666069345443030646943613498531334242945984331954479300502738950220542857592623623980921694985380565589931919505937312455846923230105193074782210705534299207370694871840844542327804658408437956921446610431315610172099438011214811627201393924923894018482800171502504873607310929529825275278455425521870293873052262954286343976692152438621584206363078790522283749641327930690685395475713063846219516370891959267581131690293550747037303378798639547659676015730672187894620482961227971091019121213913735803149003421127651769924694947626083393354327818065351787221397499214349703832133570121493417401820562019996673854998131994554726127927593546856650478986869683548839783112385293203004445883647118501945137520680078890947908602157865639907514364062738223725615559954193038822769769423826458305714831636139366498451581324365448940046557266686293497748746055497589928232335774985146591503756701749149241369741085048388988679142090306636472454474715182777846849741114892222268644059480099759615766261082977332991842495222080106505123595780402579277564824826749059592585532495199602384911602687086172883116750144651653518694799458484948420030486266201375418450709646924531483226866881459502229197298382273730594097822004646909544204005598906853666574648653434765809334596337382035288501840929830651809846247306090347932356680501219717288640503897473421173600799187340094978401808388743610389378894115775400322866955429368879154783703542397272572764785135257425912293109127394487177931497118289624049982401486210656633046443251792119492160273015345186162592882410175757679196693942696422759843509239220681677479901236201144135887274563480011094950257392973044177397311636725052528750316692413853424329813983013708763928703758132470870261558419194202075730671436776767691897575772078630520417512295137527455180653210826816907678662775192338786922982397161528726907805311954424101277487927781446096738637619222899854528552494069688890099369429404291119203680499685219815479702121916240079908914625624842792411222216928500929248613111768496067630792601963955746956422466954009909818999481998269365037362019657964978334018942506350907009148152827598553085992614016512488915501086280256613630046656725891799758007991049582699797561912329989391187303333507257072821040822134745195078188986447414055394121825317097201910810394701988990673309130938517640908028084286945339819650882664192680048107191461863661403291330891379848154661796297912870981595440426565259469919385293614793140961282796957860124137713232452685134601648943706773227662632031683831207245067303706461033893565324103299335779066408271087611508892736115088403815710317523907100364654396866915895219324833670011418124917562308707527738915865347858906332761773611220681851468846882470285180621821079342833698080693155766531546268903317971872792853006180248223644695989457362381569209110235970932371610909171547890901684758461799161339388972250102455561276128182581618627064183717674058942847975132459836221988551182840741433315209033952760778494625930430001728280820550852249854712756369061046870974558042009666673419561124564846945005411478942913762876431527611986580259145732569712217254178072778820157114485468212146028858145044546235159380502278094932893445424260632146662158034518797105581666088002062377153331776852732526652048170907370763475175049048522212789488809023148301910211012725199535078376758690068751798683672545930834678854125776747214430921727612591714519181423933618314731319541888001146976481258469972666600994763218303292659318185324354503551007163278178409359151688170081363250744063580040419407470757027763286659021152201072930095043604939348304414761589706659517893749831215766135491573960829106147652119017403248185194238339871039534600439094273245058431166762871553148897450757239709253625398897029713293245011066603636363548275669643748302567550565613444015187521604179617824021535302029282228023281637708975328584604111157169570014755473334289409214370536663553297530313225027654025871101714838915856974649447522759227846962641101536613194218665394559220815873466019124749242026257847729817086406104725604304425347088198573684410600712810632263959524913905609020142194608411955770412795722110694194410697683742559174837050719332510989240838649854281241133592295518865571291459035122445695718963350015333992443140931228419757447109756314474228990679531996422903389240998275024865981987801836473592653866457721960390199468298309767778316029589774912228697235383440551447208645431214873130228124983595404591809914944161520633731458157973818308063812817683896877516478467824195127464634156569130344481680031473656401867011358489772464750608560424781196336114757561599139867339640748277777812109387530940636232755055353447078488948200545628066869878818265881401018887675153116691335926726855149114320394059436780054605718987691979796624928717869050191759716556999776833289096415004600824339767272962763510731303583427308626094184927931576376684339206513633570470278243806394263357184049299140487759664795924727184026800609255987905254979301452274573030195219337041507440991521603507019833788145376033637923616067211767995491011142837372518155387670030804901211221475966917209326355184864901760000040801016148318260146197232410832803693985325237308595527628003051282480172190887764853634262562033857496128894792007335824928237728375929443485634071943793148600133574365302635497618232905171490232938445610209563270262756368375566564421241600773056071031418082128993700017512727145194359926536961911837710141805670399635972926464752985254858523801068606680512947713952557577506211327467896967798677637821023737661320910159966848164797859052342670791911340540305021781806217260466451007503327905791397623812252805165517115859517563779122038983240563408192662408143013413218876144938008749239176675117939078314539200768215609985146456120931536249798490378550404679177000473757673774092354939210731885647546935646645900127172594808745266311979398914795443532469575795958115342611112091309126056940106842035030431890952178172150283481463681035067479874800811552607312647934809059775418041961345840908468454251528373324966269556673569201479505623237555587744330371112990556545888722580618876795547743941639455349848604562897457149585348426296899290193201484835693063785219090979518857080597005433746148320455820377402145741838967229819118035577165946721950879538076394563164047861210401863679397659954851784666565855641803013431709987964471392782425601295508535322143930288597581411994833225686830629780994906901411736441100593535648577012932968918103546319823636943682996634237930950551716095924986766839327573353054589423982058819998058545840391598511702108037481333935022242798267292977206478338508943982444358485949263928299628363455237697708350602167523394308453786153585823533549294722396866830198546786154475247408783476963396879483246408023463436392898067146177227566579268586925496288203837368893389557229298097778659901821573821668879291611205442349222927785870248728543850162628922299528383115723778256155814354554855732183844568669014759806192273563959977212093598296483783206934514723343430493668859241130067055239840409412791722420520409012102714782799669833712399907924974240797670234344699611601970588201563435744551451148500810770400955572163041344301583692133990700061840836832653571786787444600535411213964108751133380760012358206032232174542467221244868130291016373679361409958670484630633501206536347874586425928273126135208258071075024416913339297890128647043130338595966562506257818237042051310479147146106788860092279727207488556958028585393333103806860807431531460320132714945908325840191169360964769135639752101157487252839659356698581951434272306414192154426775441722307411136280677414055569936324712046677926389722325563857368461332126681822998762268529047346063342763534523817940743413260727226954097753368160081774179700292240225181705743454781352376983805197579164322851192249941688453749634947506011330889414678449610880580747913150858357772825838748094919857273429111393795754330312084587186376937228199265490196019476256489631030881928658361124751891921541851175119786075389901173954279772824961329270709802971657589757603172932318405156125064211543575180582523913174615156282429249720278399587904837708574074243391579014786242204230424392879495639352748127211176673821285469454854022851351690918899774688770999110251227886844937741665118797354879019293023346733334152406520367986273877442020966072043906671388106132041408868029868630411630109914665889233123288363695071867107613489149713236901380165332846450200208673065976738885253097907056982364376194501103482269055689598604453125163327152471465773121647788400975662128193744186234961312647800589502188403692527590192632116224411353245398365857103404975598950823512834123760870342973191872010879055629824320627760708182021169408923180312105835217444932244106497168835331572140231805105755510354513174808698469746547097757134405741752466625080029465728530242339498330830040598888100104479521600705090788272611813059123042096863136490586423645942405145860675167493884954605659591896538101987125912056295101779297049932438606393188779446222801773781553255659597911051831664644011586973961083112661395371861092247375192478609650524852182142629906803276655547946922379809975833925870867482184220152331426952574598265242256229844620532021781508319686697035530310515530801572328180778418094401408724781376424785254550661864283117406171579234109257890120322727195519221688870513799469894874030220864157987394398677001329189614445490370145504245029710490862180830760100184674349361135279374906757519887477527288300673841631740299990519997407118471607724177195565779978027295416116134060982311867015714109926953549930010825888419749530560345204519605070665430475630975096381917656100583225479446845695313360031291565436633564808158619511365325110260181305853425005373951863410710054051616909892366943190598465071412490970752948986869708422018293821077894437166295701164888220937644561009751061218398248017439033518415290310828827804670471400520382174055361605540470886793675879070527076085282902703161194387125606271333985694648179273530006033972489357014858969267727475811691012388313675154305861209276764193402562835843721522203907696373728821463648900260428555644512749824283708271238885242865418524880200209780677058660450053052284257389130107297773016695330915789498260206826855853390174002142195572550569323028040803522698207334100240437469121954752981333087079488070964236754803043026819453130850385272582125372432688924729946418685389844902832892846290505943965835795059530044923184814020655977265285228805951579905372742789637258790065165288955813239391118193205341434734326676501154158112447240599096587805849514300232282352772291057046720538350483060954544420937085493579423708710470562068975423443104126798841903962994905426965415081853322336031720598042801870105269074805919463183740146812021949154971568416082436953115391911876005716638037484210479817075668051270054004527220578507947997351392864895582851767522964766184014703132719760007568309904473688792736544730915904641882635300862722620092080144466486505062547516303239987304433932837534082318500921175507322908800031372583020557630668137857880860830035630009527607939244377660590544737443100238853183306940953989425215019262508454084618743511065187102376490811152677285449327048626387444778031300795076674262549072098535985097990088335214525657816878244280358219268226802350473113095141954509789343903533136161745271860691849398857012838815531421598995400576098939347927739557604717994647633307107632736306945696896338717319305720338343911078031131477069968898767751041726166827837481791414979166266888305098433380320499220643361891880158603180477300696708163081131610080752374432120147274991365518846068625158330547137984596445614992279527970521562817320203136730865932331945334484744528541132405548581818464056642148151170728171359382312450657836488502424957165468427769206058269673643484585655992202590243773322067838846906220199124991007144259773014668346992168443991897091396937866157200769482883028694641588544641287402766700121519204224149095173770242656939921742239548343700789562866111869478264963145807853946694808615186262386787841639945396232461750720856358460262649755025482727446388910657263948269466015701860263844858727685122276189871828389223572673781227417583010847647887663982080730811020406779140568213852771044039796703233344244265250801629058113437603829089217650636914212023772363089113259221383282805290412813230733011665824311761016688414420654982447220607882498403183445668989459200150076493647554442682103111635032985005643266834344531507577881632805798739801289541177164664070777617330915528002751484190551810469823007192250234403462353133613532364244328169924337067947576629945522601137514504995246782154078258150657589986967035207407315556297907841129184070318961418263513482270382638133064274845841649378612312458096032255009401426166456625540278241547073614811853573049114277395510655143132927145962325389504549568864402533072826206503961437428507922671539653784877378665283583103371788976699137024977709685891936760875863366634796040360212267877399091523534761442176992248729136501986757661464753585797246391020440160172670125624567662124153734947990717887259634194116958571717929538351868207297926608635175003124833982707518401266883673587282750715265457379444818171058245237113834181664328112943555272042372024546825100542753091745260116821874058409564439389186610880526519930178683529523537460399169537194132195045483066220456632978660005342002092819227545066114866982378926033964799205540569417225948267807781269036074302400141727030033013151927561128377760750500765084043490813117971829278554550899240442845379982472902810256941650815987766027570814663725223531733614241204284356466128200241009664937263325927877768643088972050837741033154692756343323670712663460646980863562790576322655685789985317427549084778843805541491073810403224508840900073457392641456230606385347336908831748648638050878938836556969166576916178066100737921370351324426466738846053528849364164137189481163752829061983947399646731777023231616314053351347092588544324512439626692698072296433650775957750414300904352159349900908357099352623089589820404162661128032030164090889988680027897011620091702038653369230034788580224198942993263375535230483203023595188760426049122079030652223708656898272956487805936541386093487884919654986681301005822852428880321487815851045347854159505863478023291238870246670768411276400000611878578516067554721341125081190142781323967470951917766875153145025485080871452215623522129724798315961848889799790825134400435170917412384958671872029753562281653964188149199572765787355540182046119105551556354290389327694864624507108078861192561132213068551109729466331249871076733671088145313829786174138568447541215471711166187002945686497184131834664762535246532486496893706431483044099504427073341537530541206485269877220454911688178306654667573899682185251423378240558436260623190895403599506478682865489657893905620044965716734924559772333770653234459092282506107674516372300068390238731986853292436137042324293072126921150049530651916327688276965008746606574314906587277978873011140243952869032918483911494021296698865327901564979368134653546252977126680561198127068222242353238922178714801596072801982358659480573021807467070024502484153624193548030653944664106803446136829251901136753325584355322891356326469756930991584161853958832337030604700389234713382090824959063322087182703381663363040353572945445385641507657965559962702658415637451103896829498074324025743847552994757394158398282793115611626566259687396088296981273318610259736438866998085452079796259881319457225100344110725946082230654328966354349586060996639211363303740374333219160097950646015583679199863910114736359166758722299937081054677470324397129055022729684668243601648721177769945569380609958841767079050514523605532049126654843968086775609862924297785543445638049015198766626969306670589191545865370000673551433348624584231394828599604936847051094745819899690708921860875214573811892325297905824125642098448384291631123313425627853682548516807985586944228458721461461395647078884179685029959226415746399172989803971714394006240809350702425340899556468032920068906323620319183979944488159682315523002277883783383462552506882405513473878801754197069519512501631048851555293795542971870150058970746525412108228951118489094193016276327911165217004279160745851095044227763938583247964066543448776771150239580192734088596072765683447411668122176955150299861440519544155527399448176566362633333357859111660675324376356768436953184787985255580885346644732721729559611881478552166791065003276556828097103990716814016139524571609925661311835301558030363556147249588915253549935500450995949525069201894584894692107079901777127373145500486081911170024971599181825134901354081831765302537090337226821453897993719770546907787437300146196483413924124864149859709307646050217401713665589733923422766860902840645267061362276293409988959175916943430740028256126300528856729106507982601939455297585794999454725630470537985348877271569433281917746745595100951876379464535425198614442849022007696307231839752147077740520518824962441610170017956554432620194575590680266973376342781330258904042370099469829361382290701134445310270729823414270106220735801575695340540083847913231861923252408242727647064961083487564203348479964083078861919100658429975684302070220527201724920655578412156573185232210229679077054848596683509617700545592787521902668667591669071830136588789030737344259106670037460948747044500538283703232312690526353176233286406442763097338240143902650153522480188560952908276930823842280566631225965352552013741919669527259598200642499539214375063755441855732876626510379765132647776148345545013668525535946784516214748051376529883289833964129570219120906953535871471221515805164208810630918719608990010244494933714965402917407319326738221814093569857178812098106540255835715771751368870863481688330971429109610769291308422072028131481559192494390164183327577894466994829942348611884746299447002775169391514029738875544375290236886249687761015630905756472704680032644382838900870061100450121127654705376504815416418356418984176324794398241064893460810048478338936131123999078620014985291922544175674051594288435805005375433705947920731410299084626041660574648701691880168074669818245887260769571155368703784033230899077682070185911453354465145971376542630329283707099092813829514812802873288501230697431473580120534860188545972817614368651177228974463252635108129348613022388455371837731721965135842299041421577075900989264320838139358694432360895957995039380165223606186857930941183025157093571278439792938444221136970067392865206617371259114133185847192430327090843472917545333497516573608189628099420812339235256584997647856794384911312147460307074904701743023881663051193449380485662763152412530012786056289231912809120423508567306372521364317987490589738568008759476749590258178480299474686395341800518749890963635006447909664479193073264299128400218628354246252278242556670036878826492330301695918087797084024050584885843014072386774555513061634546776622127616069820383314561087119167610153355208247691207770351914687020000985497706975527630964162480805086479931482878057245040138016838041377383254641661503428404574061932408112118222196516161113496457794814226162680212146599743383665310643424285114856424011310663381601912678861523480413059762209949789550758296854701312677003692421059413901279714318671513102626888106823291059932706226325882786216618503378513613250762587371953838671629794483672029002768729721345664253400934211124738312517486408218600547407770541174055773801449488775253218845549488670847887725129879171475628139198000908482753425774879874352074792742678413634336649213931041896687957701894978307103997460685233389151196071513067180885373760965290919876409220556540475885316889003721400283346267573132733536761518835876632909987119700370374576538194904771342259491701978992568111329173757992554857541639393956711983638572387595119257172032236692521143690297368133826308720611927059259989291181524531260493002017135398652176752172805641225330702347898150795649673652646422053416301875585556170504288513942311809671312888881668470762783318803148769889585848279509191394828846751514553042663477379373425739767615888512164896965527328072747542034002783441371755544561591895141182978681426173496068644575545642482756689145096781814105554756826629789325660817646306644480912387397714141312957946110739192940169352161809440099419053409032077434784400461775086903940137199871751101925449166986916849769849742913703124687120343847379175559200632922062469162308357070039102617098578877067593364253641076512559463157932664236888882682160536378231681925150535777608198696743645707269278225705051593029617207107649997761339116379320175908009972005358574945560849574952373685613458398169568501025557237610413668726812692973185095718132666756056835274191400984892536420947944029526666665067072619058259520601550830858197400979384416968746205114757196325674545400398891089216503841657026359781066427730027255568478051494574657181587675426907700170037474842715858367626599084090393578633932289398062024587856674428973297531944390156043425390490012333351315994984672949699813901668641726999645428212492163612535585961254167225939637781910948757030397796264706832622295333624653282902668261024648743873226804987139546841752017256032851177078888641111040934277452443852679920756039559087045477974112574082935694286113135130352729993283666282585640773406178104576436065469403910712941212686481629775725266040055351498258767336227008223710013342732498085685609316785738106112900277847649590328462435159363570740507255967251987915410570836241087517566651031506900015998229367666968794502683397163272624327656805281270540359644461283139231643140942673982912990871103012326427640258717219576712866467212824238490162120135311050853023599437184799953563740361478908419558150008307683274324591412332461610078676077186796441950722864571764273138264267133230951278956374244076995646084925284002646626814759477510738418864092719562922670245552190053425049480410765054133547723337020213957525947978300588492161472877425184204604454373778022029038164302063743074092630323359741626469230864592852175912503849784326637324031392337111649664062799742361673239841068901073755968603904989575028995200624082464794308271254798331791545913562260571866632864106095468955635744643997830236838539154656616794734150751954785967551625567285513917397251166477719682607238833970498149862245338717842851326106183925880276325930469820456931424435301798615239446575804960794452292627382432909140346001247398475155441537886283305901078428069748187928457809582687578948647541080107790640779578222231946263819503926689890163869287543344786577097217159707688959595691341351628351121489845879082810764711072489558952663057146443423178053772175990260566885940895190834752453775225462990282901344324778702661007996021448748635128078331573967996959684363176023413358249424480036231937673199214529373063759551568173133819199598780122010205729399997615600738538785269103124528826282053252334065929929901224162017797997781792684052197162218326870948967233890050295419991407682111378121006719883982663211042446074332293402123607090131498679464298409631939823370522981610176302566461285741056674604727052783348338421819564171436607654965290299696660156320266425884428874869748342887589740972690170348411965161379914764476574675680051521182725685873170169148411596148782432464853335832590537614102026680058690091413590145127524171365026625130392967348427460037732650172444461141495768308384903695243459358143111821551382215134074998799399417258778351846289283834003621506438081075479439331467424251674461914908700878849733648200549963927333388238132648137232377963923562400906778487633345114334025258864943596446824731970826926552155944123954722486103307989722444515254515796839228394122810566040610440230316356871315351639212180985292796770559007602638297179161078719597495842163087718106088775175259307562427442279326272935428710476880821527502716046709185603287431179528586561702154618626902859592708383984714067925354604012394971007069689060687537546196383200069188899180791580387689804629016746328975510498015812718246600923484166518885952323408384421495126219080878353297883740428546862554192285514715207662509412515907892553214745665204172596118400962273012381232335680534832919549790198403280616422777935636251356976815687876924036177995298073623946699356492324854620191546136087941272032536325534655156882762961353089916522636392232728304583659913166179753061614685246214130633211027894663932831484788776850894703616379598564487117753911093670190126314269895397929859919100581763088981698006189335860676585920742562842279141692152366007473958483192440099233532610077030278510430119866038420987930022619210189188598416066719637685882357351127056180337856026426130436207689515806952970989963811285030494454095766103687094300568358158166526190597000035351557116773812684128186285047223573519896337034684028913506440316469070562637919224129747505974414666031724782663193968255084952397325213559471652004911530630208049374833190343404300445482871420667221633113437244247705711883479975965978084529393252242691898706051290132956665905444839612348485486254806533262093417161360035508689630795424522886409310466823237091868747801887245577220685022018548053859503470863796649579069668005178040349928150999339031264430529196817040080599676138682296405289555825895323403460770269507776885050157538492098114930273628325750905087694445202817746489303228892895678789921271782626550312606235057318916699891324699181669645260344833207173218962413603403768607681390599775753351861104824686800972680527214835596151526072760956520411361534038636302666928867756342292971689623402305969848680347925068455751157686029725719378471595692546346127571361595787028522638453400745675390913949727839668967337006456869725467298242159589321302787811879838850572870155702147678688749897985250515760343546122622679978691373583089958910870434574450374721019222673402322511555700542130227109428726071439064407601296648854335061103135272249540776409860350742428404881925688724325101519919725206937217394715610074413705052124076432909772575149740031111883136784469094695882033305241215063228313656046731113502934743982005791235390327243618945274541854862395426924113198872189056290847573709988937728540624485544368885006208330934173569587577019733534502530628833684578093060022408341968485265179841919062204196958720800271098082852565137936975638754380878550067045869769403053421107724969737583736484684347611251060705021745171562153147307846843352116646621423303728884995978584897955107862309851216884052943029133336714411270421295369216925235663898037705594355572663120376150493691913785446593421712225387097516336344172614299838507950773022054864787689718029018648381441136964463765077957107402120668481986368882050856242827314626011415141081687638173087565605647777779026364471763268304139269268319746934687534932260678453365798800640338983807989676804023521721637206941271583400926839745226874194474059880805228566038655118389465174374572628533267430953513197764020630979928073937949915272617044502514849427596127877958995336482369378539462598724217659032426243220204763945187335598964159384992446272982325874245484662109923707498333603464439409459877234493587820265820710726688003834356227915858270542924305881798924681771655470765714067739184138320024320652493199374816605940293206269498362154224883411463971457074617477728798951665510775711294031987425874740241051250323482617691829040554374134439077870789350706431101082514872374038235485990898998239493243092127166971094690111180447864727499489568375351306398982680091178739039829692717414123085034405960515088932603704902063445484005733320743820962644049232242975455942818481375862162794304142733035312245114407418700048526970161292929953551405832508998834565496196582709783721309194858880456468516660258886159978478553479770417715230174292451301720534305327097874604643511005993374824447432720399265023942059997894424416957779985493304313034448069911098379289096268552497983644804496133621514412612251330703321630704192000681555480132156941715219596758398053136060209085684426495110688749303528346418474445041350085959757435312339917571002064449091676578765378520919140287129454101819917404868392547247802663695985912157662287958340313458614825671339746413037933612791723694915942415175677278633428471650246596077907513146892812320782024463584567884771975638400129218111519047921466666905164050488399102286972883105641341396086123753450896395999804275347084513993292591740500510887643211933587026277852854512071397823739517155050753325946413536202843434801578741757630187849401475389879777437708383511348934145506017023501279079392464550494757524120999658104794015099068221150041999162428884879003720731729427837577744200322078887285566417181335394479511176349772225929173738653200938791972896477300520892995708574172253439434872136570848309713947866418262933566927028381891766951772817851969916035549679591350959649510429027954394441405900833536637150984035770999251433193173216343800868857877289571785995419616745865019931906087723352108804953081097151507550527242693811696088047018412002990188953541341672870827439109471451038239413068947230135634936980278236036162730185212532947935503199675327872490355602532834890799683774519387076424246419774097521840231390233257291230105233648816879940009672769446322033547462375037499701937726971683812167730895849911560806691231969853963726839455330891112514556884488778603645797142147508428482774922232046220685920719335086020072250005941753695436750848390318809458591635735531804719137252778710646638297491395169171391132460946164268332795529244837658113151698434895993214409499946826772978899854453695793498475892835052872116784377034486686202741777878531054360494472580586259762279226427842907956181669571121034557016042508381714240897822618743482656466651425105981499997429316593511576363138773146981450704594294580232104054656578481749565663178769247993744334491003559009936159977993270185558715871280929151130154947498165366115443216770629680561102063254390962204412580454621313591744449703264540727172176239279464537175710862060852478823935694998466185828698460289892840750817122314064890637323477824456034453152802077857379179191829559551119720875869799567497833828442805942646078995811616182581758778046773923324527298183547090141789508593841357821867342881633006954974007372469611772289466801751994106134574380293691170640450698975291627615202346344259505048360953805160838654780917671465093935701948819334415900870014221098010857732231115552753240485214128514949666711445466645402164837788574927737972281276232630816359769758799359211665130715921804234203409615053740747882247109651592320573584042836230383678508093890165818244298811700089635295575731864650091353787147164265329133707670842110685107481770706224071971168779776674609733922441585219711591709829694203050515999348971248792094258880199356200808376409194122452281390805975318126666004026086314769419337917645595219109460113244716788655022123369576446351196258633763002598372500472394556421752598021691454659396013710459740416432134093620884011206616407567615153288180430739545571499517315367425016580386320253804482309360573430630707539416244575432175044599886667003722330084767890356109513930944832993256240588555623241877140172138536029619193432205174295708133410125654138168130821584295905614973708030992339143146816036051278035070508229134159169803066493277976338814240244635376864482770272345577366874426223593914024364460572475234806794860649015643382778698377823856439726836695587982680151850456262004586780306134289418274267337524034184307438468465233967198137697623382618205009538971771112317185084513245417969187899668691778722450727946226951254731365379702696530773968029450743297166756471789388801782172699532102309701427481319289522941296533589774353215247111549985374116116006839532429617122559849904580533021485567318064664671962407462075741187912797965188143989417719433805444026405506222449856506092911969907261341759154638788348448659937608701233204159028563238144196089789388632925334065701436575232108341710417562120364229202749577828483761329118200644396602581237327161860956094310549651376741674555579730502101527806858599783934638755328091810667225475264897576326201879944222930742700457415058057329106667024361679085866782824713942842870505316234541267724097421892574124248967137142736651645768800109845356967598362851915884771795053182290203396620841906442967224380941945749979970925555568772356333103903382954681966463105786912482994044793131587753806723956813135650744725694313686249503764022138626605109703308133967558970555315306300631924256039817779819287830244643860170238903476880374188123506848646994057725638401425623994465293330068311882174823553156511333290661252881841613686134229709622758571627690200441946652145656019101036045318307487476734320711530721923512315856549332558103446648078446541951175011029782445162926566774897297716908775594023235535677119326513251272245700395782752926255405556826996752904621894453276769175404804975411818844759388206443769796050336427432016782984236351817493068337352890458993363617354380454599476778413599605324047170064253636607681533949338471071367440453784249144821116777208380979111231207676496459021110794834684852155617769922618822146452526395738405211785637339359198994796587231456873939853990300563881418440792840225336818930205981396055762761106281854464161199577845888432436554929797865538049751065225787182692309691519014468219065897761026867888055422927374141995274216947616519131000540601310637046712604116403877859734752196884118631950853914513630176073084202724394920053986952781623472857264226367552397983708674787776946127636042070306329841866296819378651760952777962330680348422181942340046647158190412458642028409431102788320883404409704205357422180184060647589050377502510953896907259926851554695814637119360420088182005896041003339482695441557005268205963273224943128884438656736340612330953246424912980051706889122451504391734847396223230757841218762057365557790316848629874307602193140362592746470983311721138487306237085259281152743250551675896643211684903836184177382643974605922242024520763021374657970756655567780511261131107839070192291130471549264916394148665184020151681962289359089504985833802776586361130612458679640908036963724096127558822106474574078399969570570842723715192728271908178669248412660126390352060399181139721556468657844158159898512741597696580445197854719126596602198947902765615209645889814909873864319589366101579077113045369681567166609835086278165780208556137156079681377688246113723280779855692933905979479387634837263363177399801456502292098896040037698604566076052537367975517985443242409766916403262725241151008271167852877925855746030231894256803518337469946343938018084756197018067368865683159065277504184212520527949856438593603890808549882821548496666643822023819815129616614185960684610990739230839292371923272762378441668553991828323933300325865784447619405476497426518114877061786810840770061985055679457646540543740145518611229036148730079125453383178603926921016990882353008664893106861102845092383367373874676803098739971359772296455039002356702531984064524565805708615494999325770844266641721093266842858924706141326161491758408386856637695144449070538201489303473145159702560694553119661564836176928103408583823169498778954647745337541651507870652240167322605526064646003924922579220909628268027259556693169477207354986090688566956994105454912792463062201551272361732577808773834168950384630613785648765771942327209536120402526226175546233820742256992931141384156905094561196284714646528018559268093599050262022152877202430050255457972896102575621299482195736334174503347634083716308701126168245388257754397564499299749567318006294255098336826958867946691247361262441673284750343686165544734963443816217856383222746559141495990696097067132207398280611187725761201454382695465427437071732979986997041246376412178424599560237650719565990740633882857686559845684615439197868235394409425350719580962052290041430516242505271160513369626930232991735562905935329871387305090075932556422490746591620320507210044703601246862174541327457666212514507424652846197530995007878845733694132377322654573867738655102914435409987308337851297850879301713077015180183021616328549808899805092956402013600542597720914158125695526676830117528676642910595855778206196499809440446479048099357494585561530551270634883535748139429912630236833223563062303137976114687889728331386211663494718009834739116110151387089244162929424400113094955210154227469437442040267580868443920051552773266881859720605989888112854255721493385879593413305199981808572609369631419231173323547294143767483284425138176589248545480248740536797096356981326383534944809083607402836660962194211008440228495396380284324227967148584829569024602440758834619000576234662808571763652618568091019083868197331386749549550960135212740164818362983890743327352158410857332786245183860803440451382612328396902995357722881522604956881759515982376147102557504020768805060955076576298886362146084418259752208535042292378475312704535450654848690315596229857284393218179184743817435250578788947938720546004326851032418847906343188508861782611918673206899884992400700810666854764738202240054108512735536233501103761235862710234911391023648510396709540153132122049462070798737054944304312735813746299946733014476888903748637355870982650138311151715432150924330114815281044791540847401328691538341092241676713652706408461132202836233201945230119347169336786985840841483683348707122992108261265790046049032651839992315592316295232165026011519171077535587970460287120295412266898826981876149597155805628054441525461511591543401000258440092577459262512183575496155571279978135439116465901210445688766472825888963598137811113102172686370018711785782616177621732821539939972375433841410721792045618640381168058182975325798351425074715467948910648896945045226523628708949041078657779932805325721678857094613122739010574843663918315574390761103484923613049672183188151586851602951747156811816339433819118487516084486157902947985306810042518098527370720120565223837788434527914654398812098349772455931820600396474279774844039662526812022978414748718346312623630996695304282056040427994588571131255788995135803724691500634180966589849238391949546266073475078034405239201052598780300026329206127207165050790973301168382840204708072244021738438137135690076801715145294815173773713396450235336744872612941584868969283628842038808406500617762927708417996958494613686655982215260870555301898160738850532581048352878975555140050401597542335515147100816371671831294868347411138128657390411563431477083492403576025074441261396489997902284946778820236934957255928532811835099695518844198209467076251401872194551846608620630992397778295750699439166221053862031698489586365014956421428073019446880491381015618883187558602551293750545820765597188681156109169915065121089081982333936281764027962924220828234233588648971486910985341606142636403207110021203376782278607127187381401079224631882803972374900787374065691373251453934498727592952637954083087576780188586102012547030046104226992865547032752397622840254179066292418663348527536872499421202783883938478402009430052604254563966435121072290678148095936804615187917178031411299943964931126862933462097236553735878257994801615502380411482894303511204061266248413963082286064155426141670019917387539054681610925926915224782419683029662503512024354958850303567632414749259939676847350085282230570941369314254544738110352936866055662782860973489273201857262731196733156326568490211389495197503977474486353878916322872387070544584129470007191360624324753455796597616734925439646372528877217198233718814745550340398517143564932931840663094322105816741266025138124829968847432671894588543869520734486373023761835003930963301060128173078480611174275382076797850233287543423753245099954141869070310904165972988877031569839887411627616552596779506653248094817603309568489538081413641068402374850548751086088095671450544660835400259371521993708795006755745974294025106761715912377456683516166417813432967135519335920131800988759521056304224073354354481192980940915141990358536315389726502742749572868317242749723873240018219406959901624061767823295732203696091833803078969157213929670793610926271636392031220338121554358146833685465370120304137136745589092685371001112730893885683458993838418313603388472389494887136315331224562079272696778128169190727282188739303446465700995771795676006800776232637418893876084219357623871043840597221396483771882714028127240020217986549062960561805002578439814359400936394213683396046273227013671643341036356391321100173779946296247155665483047979488873216418004163934588707291911177092061128732328855490998366221108612637527822352465261530488180321135047478651483916987136292380503588635998733340434733599636015268044571707134415942478555475714697095966206972774606762567231267954644804165693381755514527370704648332328772464004797400861774541474021255411568805981862353839260620184573378132148316963991709440163853171297845991835911482764546768754185987009054248511319606513740280633628166813135441598512808429498919983888936677916103404609663289484245556372537300445432656644106812306615747182221142665942344496523697915991068122766174122307108633684277503867887072362700858851543682869177258607286882450791790686067725317381853105697561422966581511501032358921791634422532261307355364403973790477499180429237666240257017925217232621233101892355667898136919048169800033085935941878500130071295058322402852295410975123282391663158836461437627796690254224294906907594240231963941031478525262249449413489868090450629096873088801984390002733037528825191961910143406322356369406577832893061907096682448538503560988452558102824835802989397797558199506481020395553097931277443377163910506880346020294895308226084597899452854840886653691427554604221458333703917409027240730623605612758897460448671689118445943317041999142113649036128032163176780724793650347688132879130046085595613350892144676821331919426725298303913825555442027730773049870209370902014057172962392645079817025561681186117004043058910713901187983899425507039920625862589802063254903127748922665114823080135463878073102498090325304282792214497578772967097739461480371084231103504768169935596094966748329482826999769336263946816524030964683407571614760167243113891031255599299806803622412237526939095873722220297328883378907689376398090635658311871977218319980297139805990762899560598696695262566886585404087093301625676028148367135743061506298345231709641318469448227235440668171591463232862910047084578139789022144668439510762100857454771670339492928357658704905477286185633907013813502600206303658521373317431866021594329044516458160753243930355953531523136147124986115434367911980848944780003562758594779398252928745698165652231183709536971598727471391044884271040896296571672692479760240237390164593524615939525661459922302371671844683519733541321799853202193388488191597950716178925207272368552402785093066478302878382604233796363099289166573955706398115354799092217513785929049530014591177799281393731728459330648027901089247768449243717827984893257972020718314417341782437878544246863969371287482830110362433705622240505992714061068730996985821566197653390801500325368513897554244890959354737358364673605064277609135553793830249213772678728269306109306109685432085908249093962874271857968623237320658074983065537721913561791267852334863445577610640140294731008562142923559880731504106760119097498671116814515845570149080101605944756475754752850967947449659182495546282083400078255579084944571940953804994011494871588388465325525864229904213439578067494326292325212207012254803368600549105018727536540398832968890795570341021151102034359905154769899426907316178942015959862550716384642708094944735480587422053356479841435130723125969112805710835446011441750860560050745788492055574595774556627647501033537378346060272581979828507875435967191790809907355349739063936659513342928195219270745281179250405840707583260036008080601293156024856810441527471179556973114910145316261759189258791794288900537385521565001902330386399180066318891279797317074744310532442334030885644600110333195109644730665178467178775654240255383912819977764177619117473703168854890038996575082306923567336005062857056601877470597599187705636550135095579902878820047891321209680575112128586565457779361689210429443242145290277276505326483433564628590584879065596880965737033047439767266583702631197419947984259261791862565477843123399634135724978944904115652664017635030535806722862168830594999553644390784018159520595642802079942449856186549597896031718953147246473777914984805057786040865059888235892134746373940654199431123796405183623791508629831922037469867263430757858092429925795038261908058735214181576870774334912722343984678459254723611085978750669534733625141188502308773553091325608520628710015779132225471889800222544320903229356867158793794791134351980566305176920055498210126182817894858119734833783004827051254810199010490256859937649335201105473429751494803327067933749059929247152679946067403667827959782385371671827419241544232930215075959300444686241461970343083886931616765292691473638664404462079047686010040891488739491058032338567669255572626958182119508224544592903198560550720031883042077962076112649720430463538308307118704904168897287446299069354789594802194405144183429566585134185129643235482722472616988066596193516707190496642244838181871548463032404842859249496444710971709249554892083286089310303086961124950116401366700507594078965016045416318981808078762659030897161491592945867180686673818621149736861386900186834286862812763582624076939791971307559717051734214843501467257974878977637284014351933304397293747634959293392866212115585154939979200502703531895015450405653080246930960207914349092566381642192333399592834106356059831885355459123049908689427163480883953499421876179092359082222533138237065475657604206048918169284893516480498615368426966803115103203452744275692182975327436507613990508489373394629348269792400017435373041030801039774701945140202094387012572796973159501466935462208422277264377310693642658487107878579971939699583536861520997059687099174013894774657318691115263628555285881018854265903175325891011060098265528489198769889469291007599591560174952803151637087245601140976755599971725575474526410656217428244552852693372989955902573583184534962511632872376425957659306046918360698197939382348117578109822311297247623777720929812733080439497207076503467100680217477872815671817693363201843720932886038323606376995088241286195062871037550900878635780177436894960910548782060818657578054799476066428425081854064492308460350438289739094848132994744201036441778298498355410522907522539175185130386246064734294095411268102475597575804665621452428253637686227356445449066968009322834568876778566639004146294965201450393772643444211747179590996463769616323961619880345376119689407258353880683888784448121362724783221046331919900254599583236015296743268694320413742985817642590092418707722412079022513625713420922923306649968732099883769850270249085290086763056297309742474979974046093209136615855750969999173179952734431406763626771230912604290822508042397848561357765936555165234475127761874119464953674287304599836317745419360250545991326604447338908509663015703552600875116020693410793023579008197916507390268064995323973006765493168852614250421263377045683791024790141903729847363612509235656297922575693386837238974702244439481732326788328983531269413442779799826134610310887281347194555941676255705136477986393514064761937648414585111828562162851305513157885064369385951960607175653534575786305035990056244726107149307035126565972691435334347329576792537667910816139247811763423246981874821524741032921408625403380974788616190776051656438688433512063153397998099606063845707962927026476058234151014088151360142752624493567151924447206650347521475353195210654435379198204707505107735483508827548726896674059148888589242929218853234780254021228670546669248850437458814563748108058818850783754524882924329121420156006451139277578668905739147266355614174615451534132052688343201690528745465203998018482395319159766633777687215546695058737588966329639886224778335016863082923027137201684969566404583445918595957391884819539824324837588056658433687968684388172027312839497296105624504012886245688474499053571078070881144611436854376786646851544449879381440536086884578667376264771990031345887402150319071641115820967974765785321592782898925188431089141423769682861739285420120186593359984992228856265277730891588761898610675088894093897191484944994327984508589699345392728916342716643760241738486469482811328196349907692242937980830317208392872756646641853631056033000902171541323318311468769115591394015060785393938784115174607334260095928351937364261378682952850553776017021729722041508592975752566965417616239793914700213641063978201252213564655633853998562848126619908833092818914212388109440217341112236640741069394694449005587579894672288571960828490981123919307744462795384195213747885288010603216055504781352707432606177301435818412340866033396827214186125673086600694129284658198648150819780397045928001663119276563317470893173589919287742320294932712147908519823601120629202899982844606594746691901007819096275428967943345246982868634361758044433661473608830207263904168754857888736769198940138681663314008172570265379587260466094998008713092711238878292435004195527329900806277301529425735088541807802896993615014690733774831313368877570986968208842972842347587508176344084753905146143481407336667359288293396325385984692720304911758712527068806268309342908597093083342871442393856877456294368521528145163534135461613426694299026617771411218699317402758842961606503677000734775485314678742695075048385491117791983975946686505714793218436005655728207318015492498032147643485321575503099113825856348062698029336170703128189519769859148280529969419519685678871273072295719808781671994140148655539926030731041644251241836194004478447327266941712595671865622621545830537908640136340250080798112089226999874017004719627019926587995481067275300860802323664074893073689959272076700189091016261044672703052805720504527360936719571145948161884535593928078877519523980263214091878215199531165263363390809069755455712990421339253756445438470546272201523854641013745488045264335273651097922780519049941705591412003050211444489956175029320578652399009085849056633185906548395013619143973627041529399037005129059025108307303738449877864602125026805754708978083120595094426589935818216250676626809306381068427452820779287770668066500202239789479126544184367272786893842004251291404532641132982139944967420111772242826948083722721945871441715224798150487693089015781624264309555882736745058007677523578691696375914116242794055931581493226555122964454263120114952684613769221274553573576267360544841774048507777937998858227481673005516699682563512458435093554771185014727462895379715677987336379003241351948803415120614258305810758365314626767426187121213596683671690255218943491324514701663123034385308811734710139680633507953143828291034387213347234409370195723199992876230149484674667427018872796956974454566480964540160341324858278236310508373507924312139906796487580080267587927971901206668841988626603379741535074116889432411136532754582839228283929456932571829778972189072143605157694970263845242921005573255067641492655047717761621989646951103804690124351360794447363641407466381431058436266577875756482673209922239884600311382474343505858194352006074534500372339162817329525569448728779913067607490533846272314593678809626601469076125351717923231517288356874988842426931116712115412354595148320000492275678932657976102531158277296026184201344752265772671223362355354357352319898749436682204349949622872316613509627952350514246027136204362297633564647548063437761001215034260554136003741704169660425638667101252045404677696925267382816763171885666454132507660450863077317724549841969842932756122690688793572616511944205475221702665090258598601796760818965318605425707972412208747979780842926094699405472019688706356357032862984753724780385408488105780979085922069786150956679457849066251976866186151141388633788036039796236647702757459508110957690095632327200919042796133476164783145410423513035696568050766805692251187376459568262209061924419187717324256600063823870074079222661237505007312096521736449168921650351408340035041400946930490787502373076470305516937344005708503577228511491185184520515810620320105788846213384595672476357870520057069858651816031173727825195372708145932673368499964633373365725312723958689563995854544118611430072799902156732808472994399055557771713536645000212842367575113374718575144310092431076848546118165802815774772107042692925380759324895647317144489223876182158781741650571328481918903891697171993561604362474912646452412761391909688805742972379150566809091854640010432783132611472430026733288524992874229930667758213021469340953458544572123290231809704657567622431973534945023000333738222396375246626855365171966463372815811707227933710194013946772399994674287339543132798670549605546189642542583160116992596415935807945221267561513619535682187819824427150923763583333726189485083719458445663404761081438771972258804713581841346992434355452503154860582807808323674736632753566485221687190807159129204264559654733917157389348045757362819258101875179517072920451536605958630443597423207122464268624562573302339582164442281244430224316172402501311965517589028780380910607545726001894951587847218779753426183534397545345368766596224211134328206331391196793077849472296896755702512832369318049115972172200406989051942477942933007073719300850004679329953654164570498098559171988476650316323463367363955415573376755873280552629249480963985189420273011770353321793537641868941776972276533644483334346436038926929378565822560113123942110535136081113747748916379672013508142076884158190754597425063970674132387476229118742248867476719512708508794762860521592639059055853662726671198641607867393830627276359955769561973837078641877771082409722302826012232353806363751974770457400833055007987007633193631855565293320532670286348507217736142758244823876558925881600834530035315355220587541690989991612136502755872976097442622892709042644302724122251587656526112626142451712127148211078384941459367830661568874858040749463328233723359340398714376201620355421037875817044768713686404286669486775391731166343735139626964527863366277128124424926159648219756279190030149658848536405294622169734258477617670563885298305468831650931554644347488850803697563448268584793767029158756850874784104756756859360032259341923313853895242884053592911542171989207292304787424060042416141908928802252726113040289222450161473710928901665362811702024636697348489147109892360075888423327950863070588714093398559737323528430631541890230817456468544686847363212661468480237912230918244727341466599838801869584208787163323274283941341549544629560757023029554109396202672922177281508842939473163078416042117778077044014348976487325018545265489300513638120495797422262959132185433700246171124436991591738578825324954780145264986544296979792580535808722250526859325969669120336050101449089535881337441975428763107688396488731660360556857554531826825288477995041492505464850872576232840845874727402740205640332050113240320266585749925589164338518693354288099592300624273681596512189325890430931177914230663483320243230094850923097316674888469796931664363435541669799568381328352271617473156316662727955020633948478026251675683166694324717799779421734009273635797612461031670568211078633251292120080564282685435360611073310978284546930840415724393907827204500284641772904369864303212743293764377586523772926523727799445335030012814929129850837783506192445555779972187531737568574855964614328493625909625023552919826447402009172226950311366499341902203592349558786629491195541287064947874378521431796152700310199021134780514620556343348529170280951617496513003909608021163846489307866444780444004421659619209043508162144036377463347091756239226737633134206935264181901656530443471933803157520302411761380940249665257449323339249603494276156891550755274796498217332644345133769337968673508458166903135917625025109553328783723966917219488883330031740324064418268110713733417515446975683845202740962949649187581386036759180300863087194901818428453693896996844457914491041184392681664136277974109214896401746562782972773968132088077582215343740455692154573897797302275413423968791348575903551357005874258569627801645080025748614125949730953289462739311523282012901113159085513241095868641102868345006086402275535046092177684143832107059159411685038265486336675276013241876271915322123316590942886256184785771444168146350802325401138091441279352613590887928004818765385243803437909403234870436300959183922007287520948858867507816876358097352130790234817735822711983230631211590893322250737929214830323831919825854937735585555583901685617296820608921404583194964021094889758341399344591162879455204376889356020512778395328156252648283425603462661941523327795055555117744024382252898284196081325113627446848423971363091533655545120311023639058550914650343495449430873002475832965801242397121339879434346007827040346562911524410249309535410731378370881486956589546257119778200473424334400745918130798449240214491619858299905856335619259419714457781192510812945319925155153118119817008292656454261512139994311611360283317555197956223213764002911909412327383878330674388197393411686496111828964847193402377919807263441734301785932953768340063129698620523945737538793623007380999845308114664166366237180437316720545438984407133802769455023282650079397010933273728435796937531853615147477187011961676800386624188088250984918615917399494793308237193184810552603221971571252805995439836038796648074032592603702428784764056232083587207985241645073394917334728501597834311315721545959806233901356167505501206379386237919681275727327862801825356489032089907264622451491736318757251702097168377406571328922504911465026388637756335260680965308082852184071538621760301867460867781764426997900207784526539156340215200159113048022738894347914444534455744215134082321868594392970792368278076459788460471763189451788754084104873328813348239144063785798380769351879775295947716953879250800352366130011666862692605988811312761369028039912339197529951603036243009236229049165357652647177563905197202831025240878120352549090823846869233071436093987363301672076556062383595398625315278213586438516497199261870005876423689715119122498580563998390684981106712871214918313510524857057686121245248945891602522958589056907628125580726943350299287580432658419199290931500689444816240490920061880268498445214299847621615200786194867290387404557368396809214844333230053244934369471990548069048613207084992710967710717238546246536391042697409601921257265924356509690407036967329173431320546266291855454875511999780449421648537013720934650182969365608961563130201249761484959574853457738026326934461226977207462975004016986193740463173682884806980859397618840229493131923867390837484163357176357599486917161040592063853730422264934036793357476394258429094457714034519654799095241204240322603514460532948869988636108007948024435283795753622609492657682048169259346261657044022801436135803023150364609823464779905912849746753580896702776260982537856935228956081695991910928127531881485293004421159311354160374573427256206878750342152865960369493053471730309531778411501583345149613127118631481157314265440826630992495804379422996930138089487232064597651838619964288677257382307712385438130018096754142498190185041798346339701816468547348815857588530763288217418840497249368891588648998479021362854243897047984478171720883628748737522032626932701883143716997491502665469618814982547546409030604810167955913764659623951728133983479623096055704752211887353674945513632708726230011771714535476462128862102238467361780612358015904231158313492661992172132484150523611068624753459115834811131555789715576863723022344277279691448039566697029425484778123788439563008006410810045871196947344053377904818677263270062101950016120781768371509796577498131227257906434923352702618979165761103056880967330282917256565079860623056959223520553970121460764686130758987733191115774856552794356518878635678661970712132147451171867279429779980916251641548904589066585088320321167964203530708439473477168801025348736650068012574275684624358096503925547359135924042215027684037331185137499053822747255609330328986008898970417163651721004565684524319022203688343880995259392016776330419356831977952685993948638503420416752782591781834583381658465525048589375609447274892715767801918878421121301244182838858360614970828546076843626789082839450484735968462714198316233075910002450703003682675022791937427060695243167523717030838010936846688899012473646404475476205145239333696899615551234465991054243816373739426475771165008244175690683494074290979577998810210092516855500249660753364914838245775033573431778333828326090589927417700925736641578825376903578646976353960809118974136302105303116908843900960141475353553628025318417919133144136655101221192875704905185566601741047672595245312311702101138654160630620709968361266451930874853348660208847765106205222087935455516849332675384443342749878001376541284261570157034234729272760870696775504600584861529779436827107032396876195855467389821755825293968666051994398123056669257582926058034052718166479667698257676738733244197202996409400775589015009120665566600552897753328916115260040941962793259327927683784825661427650163876612401435181152152085192824899935210320677779686190502421235846003014919267932883536721248605230308834970365400769069719512519808316420273672040378344589146562029136778605787950603173671654918213526344756564283687617609200272105141467043442806610156743542176280726862870271051523265372401255210945267996251817944472390721927871515812498892830808331230406572507333216544069225406510857152330792275154570657854662246379245354393486500999975657686749857697893217734640981392983675336723817088191644549174065722593420144233345783049549672902103318453632941402307917581623278561186204155814073746279272929804557127670990441446037563643795497757745879494727112183561646929316018547186334458635371631535072770520408346726102359028106992400803534774822628513862907455071148503130183193963408913408346239059679923184563996959017753162545202949931628950056354818301342858736856133849534099265853711151031844657760452723789625823174188870378958283941735995615409920307260585468818723042174560652816977271987674184742169358800205310586626516218874072263631374256509570565245025231794856702833522205573144228611368425737411786933097744793810799248103572170108187759064422639430577539903834693549826783123172636635452596862673386401318501187758508626600900418572711648394948250915295324965459242617580170269021286330299760604624358262670821272110161828743140355655945495693444709956563897980794489451737646795631917746878185369898205434357759621331197637562185432390562584354487914787376437262584843742027756022060925590754375220898240482057069783162294116731550783729072389342599112015172330765527765597090489917903268540903154929433367598571837849691001034706836572727978858293689510371204010789995023470715898452760839762476795635705337194639661275376493942430406392804711646093100510714055379463921272772370905314533928828018361957625636250824460898407419039409146783132429842611142625055954269321738506173067937144869813373114860364611272680503207013450563799776882222029695461341403779382625534918779913376698604873133750604829768602996899240851578114122245622744069377865981933701740706682626880300924744200243854214953370377524410089731200525460304568661411912387924036494359767419934506546651002446737899519817808685214093897562618056583218056426973493850206585967532820389286678213063370416747409880070533071283410699247003085954255433722710389683585424293652798415794497095126655941406061225847930411865466832805839247150206005718318999994989579867156878797157629686451194483559563670186985424065123722098659806139035111662678000582567967379467120237833998405879252128733565053490697421749863607483676558882795392067889366386926821689633349551743492149922084206412763593423077328467381379041540050303962110142704397619513240650792912857754682936845388028128166189984027487167506331206936833575094066656567660134019553836318804777459213560913262511061222262798853527445430019421703367249849020294021030818508222983439027189174758488313472033942167162577606171308878412839928221624059938993029057150542986944329461209064485111292669084325304257469807107835980401556999116197043568084048033434707640387817196850318680610738631757341331409060910513330286136309111357899148463279640421491294062202764965011958019584118585226691954488726251372387282767450821846460621912711777738499371211144342573494147404129502017734470253363053888489430357739406490436336699888315652997132018495648262970536252652089797381414699904754223749415743336986624195698436245655730679270887195373526362384492251092024570487007336504666547700227294608457833775931533030831578485484840716148979556356060706408533457088161540947435145005287168663725906024393262665306639441265831490759564094889209018285100488402608312500087135837513342874304547982982902287091221128768560356504126076780492872928534146771450586435441498877454366416716148981307534798345685678609041894369947143187553316584308485802741595929634029758710929941078176611227930364032691619105235439241026634665999059781208879598601979147406138598700661296187398725357100926991361243260464523210031510040071162287579295047096813692497200643729584029791707038777456697813398096874138652514015479220510215028288419796722090144244585375181461587166134774847613116189466216040073222982623288198251733164907281356944407687172378216156557514822971692158023009158785869885892869893168951202101224231179147929467342014294058142675944959788760546376094175870483324807288245518585457817526073498091736751995970099018210989089475718203248253457940622211833169571778329831049129229030083510958860599332378488813833674577789706445268292764736623920127320612031814098530874932190522267307224753043059591865098174769522977441578130055119811407720356728382387071515405553794624488763088223346597038458935978874829531176640881191106363626744556805474557073372562003813534191398185889863355678710050019794679342586638862906211867997936840198479956049752828596077933200240491415363267187632896632349109657279865592446118744622286300624852239274737514930885140876045106624128108952468081302741266873606838228028088643704644013653006545305869377490003484633060932208631213569345173964292630589994071109861200122613857980221155552458443356570184257000641241354286457968642622534321166729692279043523134655578434739415060059974606431309538830673858293731465463449017001770906289280567015344439104120074734406251236233078875425157789976381816305375254357303915743352944078009453001590841136796915014919905809267392950294310806614745560406638615384886705978856378395332954378713396835127688720505494560651727565725370397842787350774163338134111850364983322781921780967997393648451456630171900154054433477816774038415615244999351060115152276784403370731324206187815257766196860319802662398053228664900990475240703020172414449937072585068890543803124012690174011365770515470652160664406625558480180830310742003357585636007716515165857677535979772293077902263045534121307578585633623919014736241308841752707103634369564570638125586898834302760078337921240081440421359167546549236358898389378400617613439876073486791106489526337382853453566666855698794194125407898026405004210589060795551969513643954465116863005185467485921744843568272952206692690235055830608329987213565407090867070353828098659183353058559389649327622445497961139927639643550108466146141158738960828195608566779558510679562753137824278666849910495417511580128794277271843643353440543782754430161393102604200840644373682901747912718820826915667887386165028843788252135433712117589159211978317377199935848416387421953655554780158286424065068600903740819844607372026477243112385720163747759100581560249260731409908957255341290044222045805626925007931109632118985583712267429340950685717417064676117047650542532429252796090064936748737591634769951228383171631066683580407522330104191519517651213330571643628427472194567218569686716980443531624892123461614798175685810253901131053954939272407167375530718691548732738324606407222737505805396058568676788277056295220352712365006006966477899900408670380129426912732246210876869742779003116546572899389864348326131143063988671248488629082766786903386927789085944133540605802479736304848376410835425500303780623020372172635510165937003780908608182317510258803493451258484935059842196692542219641365556236658405388261518377324976851856563015293913641196721451058219677298063479542300814509475111256077893277813659555209003831701179923108951805856694799628977251280714934511263901351217166984065490171410072424824769413281455614073082405196293799718093162315709835242005312307425500932964302933157710549824610045406174509733777284940544765972548120781292752678759727506502320394028247655788489702602232316348845773893223010363626593096046914808728597731309062774424023562668520918641677917227063711488246570727828996608430268881720027147308740071765348624612421861644587124108189292624921522922019679506514553661849593327637276082475116292019969273568904049448184753131268298935044890012276587501873172851241922363444126332371647674647165407900536914742438643726511753066207668713279467985421060131904231589688825372874373779295150569515096872354006244650531240044053593721180324821905016749747586971018066889919789360402998776334047295051340720529778781221162108216924985604670787674774615852378701277302304729995151947388182598581173728121718689275428209722716856262746065637896759759432678783373402174950491603643034305240478731427152267740483467597109591096891039222102857940766406222146393307960742156572526941692506161332844943277628459861452928735455928557705545181165985471674391007332513621632671992351508394908866404904405856352351652057194354772998956709161409100494709909995004946280528567350626983065560380717351285613493811305891158721454445259407025414786215143342689141496408161123867465776044398050071271189841212611793503694910557803422378340084661515380484843032959212151767937437680187516991995927502614785561401907542378155747527213791086968765255967787124386629479029056743703170734185835435827803579985613161795317348920151939351312504354296968744007665797904489051277017423680121348607449110097602961764900640755331054395503143924412231303380430158801126887156660611523758123908870185891016319761576179835407435199399844839068031467285951773933872282077318615112617367732012898938429962592465065367626810223038855832389645810123427030608079266049118181762247983194208629665888005128161471400235857682021128325794349729717503978629026470330238513251873148683444072251780775322868912286128168966679784969409051225776998748844404809194777933741072246622380645499380789560727348832470118662869640985588955046740973654625696759628333865642390897080313847209249052987328436479640223408884842612206346950151473778640652456946712710309110363108587024033033480334699144896196125839163306474881087437373824272597863692085925100630363403330613238639679793079587460327218683934360722383362867906733224943851541568643528540588310029466105626787112742116594619996016714025398541586485767899416634601750177893110784856196960760633692060963455817893105450045022988643039154921115138714036067952193738773225185219198373330354802927067538197905116580638882084915203599945911214006714492439382909252893898977085472239392895906007546271432642723810333178557023716162965082344903439415663636213152323787232940766664618262996772901170267153812583449667788256329301904569311141835394338101957123720847026894013919345445711413968811590668480282479305887419354244585093741661466539847801696742679095388402165453236755251590689553848261753985143223533220377623382877811457541834633185676357639191320576454634087752207816359746685683408206969989417416591384208803175557107131700374675054549310163851998172175393346008625987163690586857779084312663081470754930023502617846563603495714311060019285446597394330985139520675284493130729256216151126691071014509448991728468897675341284160962615121056133864028092014670602617434006423812545679193581286153050930550409345229890112588723327725183811518821889797406744968404881118873235936178526189994382184103473240160821676716115988194942404230797195439384044126160487315610211197669623507209507884787530923153975253406890016036992935157056625872313478081948883393307968863863894183651507443697534258168407640806603359550503914983007478751236736189885942069899160593790782982984716503834557019554523388874840880088467437412801390035728627839964903771871858887233696693849795196350709441710585115973098129646826162864950058750310999357918947477628594641733072350082266353813330502491190661837898630730171883000222688666571550797257039654682658343452770523032838520680972872679249128560059199097084916458471851071530742253708289468063464809418408313711783500606422862823740883727625924233717997075293439473118884454596940649057841353160276323788885742670662359651462171335134045716801076466541421778142656183364385989967042169635547447127005756264124339607586567506670852994051797714366591197297013411149218332998891285377846454381850907126564554385370970456605215319179465125103864801825180536285468803170417924746110243559561816113588609055309661237045981024218202699970063314236207694231211755689926685024369539724426620452272589482545724008501772740986394160228176773687517066296237094588453340781113543463789464821613319416946083138183589602039443029374727429440901002838852608789229204294265228463904415880284899491598199432692362370455459645463112455856448321459848301562905169572006791766535793663576857256207737281046986195539353845205122268384670763218213583123867050678056855181657666861329078361688178096926492370116329816194643634789089283200052195123804563533271419478466467187885800907529632231393552160704916145280637471271835208474067015388834383053698030953427854129094538805522006704706531371917120171300179070083757209033632509008540871386150858093832137255209029678951348495296750923432247989728982086841896147103113604678299282460005578024212846389198081638798705469933448795099825315481885889932722177657175743972772930714496129783013491298150716891608153644913246319122291223987490023159605127788812449748727959618708791317709789180055325397629950080031511151027444525636683092744392982274263669991763674879580386278151031664985712513119593868182216219177989977740859765685796143703329066141192872903694490540846585137980265831164366591627400841928474571647000052541326440689918678827094126942460269644904053319526541792393184184476200228721643518697768443729798533414531129440348693693349381853368695117084378059772075038429008050488632458155095233802086576778758775136959980413487890215057254707994672663589459812212637015571031271551076579434557577980020647951351941824004601617844974598990397768342085709434155222581492738339714332952549824530343476293789397053973674828474294597564235042926598242604058388891496480604846839640135881981050620003190849775371189948839058008217606995840413347947665469682876529166163942252611100263054238665687079413074487556241242379420486988379263696194083486240243848198929985841123245576459670218149315366977180251787994708559331975531218601244170611437569711772393546065063910000085505057054988458203827217515023911291633383674672235996600261334361755213431822995960606622186941711213084395412870158907856377267636400484888254682390636809101271062205738722754693240627427064897930547494411239253767383260628953858850636796928793199413809153040717106630796767143834515225292449714339529327659221119381027997938495572559701994325618622924650581108740777008926850211828590821129949414372922952495739164884137173503269279091635791821026770839839235875238209320894580798309799152620095654411449675411902081180076855665708921630330769911230862635551346187407713235465298459697667490073288266823329409100868964920583057175366167119900141179485494889135318119620660527686933385594635428755567769607097094232492723470148445787285215572369247383852635250251984805531317767053177262982526058894246061860639690326598346400597068746945833769224346007573412983318914557760744671534165163597864032518460992369104615425935576124997356203189795695831195851745327031769538435881306662755970291344362743404048198465058218943927797779636156839406145793742081305670981053203078056675485837983471617157330789558996279860441334241345140501892072489671180008132964671328340750405140023511382192059007774861669114722473529329621842512665479895935812154319244626978299083024900757432394805337270157878276580924460227104220201269699747833109408321218033016009260292359041552060957780305664044589355065989166624070452570496357529480822961459736499628809214653236720390328568851495925884977284299628285017311233817196572615818277631666913236347634126349061006932632304049225043971127825383485034296766529282305249540411135309416231825518942310847390625374912056453669953278570294341034265236943156253135109764736152783274477700603598153785939174057753945401556484849268208733746222715166707751515214979699020096088744625810226201066827865619801905684811899356823614271936641116533430659883937006649520922869210297094860113763189429978119885344421140243570284882038023098128310257110843815046669335656899991164170246835549235931241350094239050329150585806093515813919865694018592537611281508545908435197572028319343251610262205052663058878097421951975116876174775873818658753293856041342477640676638400133157946641876030436957473585648054444478575752495369685354256747269572612624977360193715360291968367922857100302829080762417267757761695782592682462511082887897015824171118236245653349953663566535699590244355990764802432702628274340037322804299825291503918062931217769717957057571106457121968548664973928275959990319003680513318717787871930455627956015310891320660349475235633696942871179624516325730903852917395421698151629432513427422835408820276534313343075327554996286362131291281981116520215784101094643631225395683648177783878288793984637444664766607942654104078006557051405921733246326893666200815427140715321215291022552230015033980415483427744482703122581298531578496159986706251475953047271690953330021743792445695687357774990825623969038833922277464775161928593538788833156807842722696262238565001048115491270165955800145748430970013218825600255605366944892999397802086037894591785762209730094303641186400981359145644206891336600464372726279049122094959666469899552160701958105773267749982223398498238139817147834688488945188497369733913209779136760629421332768420767479061467340380000259628824322588854032457387490766571222570520165708635611701278835469252691768290765652192812781445656189673365738066607936189532197828596727264841493962967308550358910829874656632774937405668319032708058628308164162641027678845191049759450785966690297650554312765228432792328260542986418824063215268708562437637570191291998738931660420798077397554742720601419923108385066436365469096393393613693779958770348585159169473342151414986691504284406846773241444594287429246348642787892534048179530087967159016458786438509291547703385977300482511821442396069179520640073149992034677699311517577573196080455209026325609098314762424642653299621308203476645872921334172715790677750470303592496474911168696135392402130458943264737827981532253307882690741140543089283877778188247512825101613811454768215303744172239817075868710349839136376795907033095145019560694214375974860559843712036385157263388419809509345071122573101294953440716255560165851525464520269610962803314903179244853196824230580470883919458142803024938734750147108283742174401195892822442734176868508376086694314174757671211908157699687841076441053392153049617566263254343151278405003758551713225907780110721799154085970536447742612822750250628048922633693982360372152445186176013158201852335925323778430418297965192175530731836411182288649754975785408980164317225873230869283958984345350363424101962808478619194636072815503069049999425058520644103819073321090244084464557639436150032138283460974246547534501516250526983781677017150823556684641144585362769927155876194133595958717754814167276976308559395293053641034971034836890320236970808489724512349687653324349897628095402682164895641051148412447069547903821464899456760520486937242447620483825886572437800215379178902049467358533022312314584250022136300045875616676582633491793710616408106764412662852512839131574652166536144999970155018132948472242167979686926531307032602273792887480888390631512185982670276700503654788996798373955771857740857713694204121432555494927965914055456297576433207650366537448764618125882997541631274279084804865163919387895666647166813279739554372967350697374869522458447947008519426509616937064727215551866530566650655764952877952402572034538305414113415366135089044868559997257265589287386938872595538944901730668705216549594167114308986867675253872849350952267347815521332557052730257740723034728962107199227873644060084286557986076803635071649419291451924295434833811313014110064831404164910005839121881748200836366846867501023763751690750034987292253665931581378484985233981485197103779711482450747565173667298605139435891327060756017993804271802183856632166598414928800230195258691984267463327177763295475685718611875536810755770522198639555111842287875851870679204751315235112386518443655215904489073152509587261398854316635449114825254211708615800761884828698704626884936874016271486482280281140930054583390871095496852401571673425604781621891452971798784651940984385081264705178766507085897237661215749990253243748237745258968551255944698257753941134312723618294048011242607211653048062185549886190807754397327750611741316678519384178299231290186355850407837080649806123017573572897906906599192736156513057884313842909138693424273801209535237458230837815324601969024149062963812598463010253988372409277764245723994367743751835184548286484633563406705392233252033816086183418426933976411118181779045646797928209799583062344124643077700517663966854135401932599448243359969373214952929028506694883040901557106258380319972509475550952072374306118900399016769343487279759662352259199332299740708530416518228564995942995236239375401365658639110023416350631649633888891734224542261197360267679689182687013404191086624322952096820602207090986767619090737321786906534965023412674535158944688419152281958397182229214641417360992660186118896076539020838554432428023660781960535799485936079944197281004197278744349355449303914212713070781075786878118983780216414862040773841807514929761756816288300632732726196624229913444148077645634885632026354945331758115746354824019916790462843111501401273924051748655885851863705828004831116041550481200166190633365816949687029311868338452596467410031669843916684630460079100085440053687395506916124830831954182082664078358944325765755426814032974823566868621361285109871330219116004600821408741153700559029081594624480971945530406771559737503190268235131866137868817483389226219203494307718847627534922635747389400274759702500431877842627720551439292258817512927610730804662937233597571289329553934850038914642958123605762576150653299101053092330346358210266793513324985228256589987215006960745617096414493825214748636195282427676374519190669169794782424659527601433309785173353762927040571354616398013871920829525540601422739338219420563532185057315353160669781401384960396373800635727288081975597561263544400519534840806296816058149211131502769500326108358006244571706739417446367027315357554809346743876494034316129535420407774568345278574385048489998066389106981582090188598826983055238591057141305480149707447475719935688505344089220382616139078208267665508759995958690798553391719769668949914471020601290100182018733970571064178851843807214023747834590729388910485715121136444388540864435852374825000724693978470655488383798676268639419108673609404778249268339184458251423670491279437042260913313646129478718643333305858937278222358597640533340996582678695647545180699098642120379704535243468610064327492901446151473273164460472685592091674124973119378489372838310314330684325928163048209107157219143316891145749033106338329062199760236781659723613918246249801339137504983300482736158143901670560107307237282101334976539515381177663178043971757404453745800660646004626551563569353148876660399245548309508899667926594158083322808362301166114703526570627680554513198029814529869513476096290321291805388159121368370822804815972654359805835065638831036562122607142920792035869278499526850474205993836613623098079819058204530750769761803277451895265178971319303213116262226281521328709353464741983576402837000933029186816404768469349850087878144119357438372457168300376911310143223396269679596565179073563126075915535691669283278651712295830657166103501255445060152805344600919711492316266731354824406013702330762647735234067729085970483269809337718312307429954716248899296804811855649202051772592170464700666108668866031424240796451545590776373022109974400236930007681849836375904728268688142718756299226751532247072560886071794641835288681763096860647245588578272337448477905200590439771405044910244557979123195612490188285501337425740624972826567621461325374077961388671847297921531948706089866840768428481208288803731440816446815389999743962459653507261588667996598727655717497193267600167767037728826503284047819244957783919319587193091547856233913262200414214062952230887002404918289588461014067919644896858363517992727207526897444029860015599766500560637463206235069082897998955901696876983583314445817177480666807966721607393964556214028773751926289240989629063186983005875953910089227313135200778724831292720346532692068488196978360814564317617600565674529152864912963829570155857672538503254269931908010846215774006308713362205436353547796501154931216903877029434894520548077801428464422435323265721150043242338523691817403761056144487307946488234033478272122407455916211434488476282394238719919720638431687476813946689705629446039069459537189405289548707106973409990295601238260254477415385384598160590124130583979678822206680089614522318792541771460311795470703408149473741686100235490505096053614454029346259181496392965333577065597622502416764077395847309056609195309098434473570216450402179306707179017139932519826778760792450552258622839681682880308343355637488682903257514673578472925910839511021941887694932836640460568620883019989537168915257200771290158518656450235328558514437596345447606965863309827755477998579876607624557333598863072760031411728818189593353333415591010064358090503501942180073183682283795378750959537843061798213075544769900262348334395936840201654464825610274652542336907697648022258726289971801724063532515730226616755964183322162980547056621057086950548612328921216055618360486547397278890258664679227603743849067660440244877512915702653964549986443550273504288757935975549241984730643879846861785882732308478323977721332780252214615197196770398008467356612913889944344876553232575234546765988771728611885812896236467340241059827630572318227909660290184519388970487510092794137834830675534918628277272406319167064323482366335318154839740825992145750667125752559624492892030150970394558605826051000201736885206419425471162034412001237894546619576417719657200156120298192978756450927684160576854064687354424831973551761218711659165890884833592341993979818750281237671419203948606920461265656026889683922519685828077108969468850929891328537340112850547237895279408169158823673018647905547756908297732910095051505030579895791098692221248097081438763312473944539369216734624598670081767194291061423499412216921342330719663744119059235946149984056426242116033074233754835701026153214494594104782754386194706443749476170483917795588916876690059174125738530518550062106707205715622274254754610629287235076220060462420477220010852256571812883707243011057395510767389306776730588326091484499495244519961141480640912046880592222702862247583050678510660544587007230876718823611936167823979089186891658000609369785836023004280985160435616866878500955936907653821150464108176361210403085809984250540283137708446610841220491131055456996950543780734629122903593233903063042826088284588136164833136348561157054928276944166786972865007657912352424944259098596401436943387050704618396370367809587358799145920815616836266816977187655098924800515407939042801628533963165476205513976970549890815263629830327779719398444843614626060437781566609461080438952464183520686538622721037450292563675816187156972551381166824095764083968077343047335074002500472237980170279252225285049514741930575898795585927854727351999640421360269504078216761182745466142003254227090675608561048944034523152587707318043107297557215448303753245049449292635153208083983221832808815096419939509784744417888788515235566991515292686962634161022417720812136690324906357484367348583184057989328282929877550821602362907406154095976369916209921815305096515978150636549891489783146094205423752621917571409319116623974794598191905122670418525230418980059781252799087741745703725168618387080081397922926369156536853483191529886011116417961553641326315538462995481544738251955559254992156049810950675976246755474608804399862791357649687170657315165860702414989176672533649503593759402521580714148684412229005354076966773059798430067840333933699670583268391461005339786155897516372042064978123759101413883599898669406660093638482281037229496142376946052947546164224415084604327546299494146207116581181285073506119684836053465937386460662558416763655824765183611907344373721503536603155490625820265056068738193443538598134928429947063469567464768976781298996550912388705806370702971186684513950520384112954957123019192050442111612292863020605523602844184599893335100151031702638191432005576565432661493095317392061016565958931719687349820333293341324243374875192523040013216546236557920561161497405381765184174039770166553713221481556783744155341871711393373569299163961573888873193765466162674772020167503806155841554204846586576163127074338140255390244949317202130505604948711420628801387473691835767090668043680195091303587491227260968857447033804156935358583339485653986566504561405188847434693979226569309131535362533575305561440926690875807226818032558945779520490934035215236738468005717998230465079908935450618566581109010244775909689916012929677783898424599009450730867357068228080867410174078009511395942314636197950393547961988986640813590747429921433779405636618570942242242105877489894342568750278788659876837347403328328039781309185133319877904928842616396081076844316187123801193959715474042999139947926094099462618825200444738880560375806874749136389535415012521632750584038715727076383786329258469209447778701072577160876445434694880141430887230726616841018533684885376303992198063460602676227011993135302816454982185918771773587846343534561122814669806676302346072716527083507996301762852523009103849709879576230021016167474230681769594753804551181061768034708158112566651229912371548987188243220546089363668316517206286376784769634750365169113008609431015019734222484574404408918988848056494924947786777674634122464232157119330510733623229338401783567178830925537309611307155908416511003422336632591782146120436163463343464001404892472618753518317436685133367574226387318124655854040346548942895846787884360066658635402426811289909005069067128647464939261321665455763626744513195264205064908657113217586655875072626221214971713783643333423566092500600061805374293977783087604722108546480684872065543641556156310335952111052894223458116168202237782272382537075974269877745233453132331951928103450435475019382446891980198872809038010435545774427703588096450563614824405690424630683786945125066947264018711568013080607111343815486891662239293215180821662774407350975021786649238108485827767216358884711274257085691887526930770500960489265655934436533540205408838459977044888960582895480155207216494853774424880829494713950284370697205407392793613370906175662256906360640504558397484692059139584591557649655678417171467722671091191219748373118451488452623417321858037526010973850894565464325944684702823308500680511440759440022331056963821791181224700844648696547062453553572211478987853859681590192528608484267015777780512478118540174311616554446639731529913146069904284193700082341744694498614396305862528877041414042246550021295844075255735893856179996514811485059156061136124700730524001501541011001813011543507632249865672462875724788945903654883761331744475636976383591474633488943319553821555822067474578074580559839057300174864404786626104507640985608134220754678180640014438857041520629625343030916487072627822052559547412281930836546529216511872254919235049483011341910414746137996131672182576695140679306863363665271511771531257964498841404557445847253122431232446469371692837858247501707647465131879674750854842670095767913164252089827378036570314516281748175885103330665060070754987260405195095800493866394515595228731649598672921925802986233474394461701514636820962704009416268714008874797964074522779109161020821467567983200596610959975099583061150418198278021208826901299357698447013679724121468617803610880830433337432300216323531380392535300435391562455213035918895109516576625661950462555659119708757485752480368619382310058440068126698905786944128303014489022457210118509364254166241308785473020435596696050274199197357882851755775695376486011948526112668985875208828729003292031197553743039995918537201378183070147710296208639203052562453338920929143663877810449473410764648632061468356787729091056299758289940483320060960424518293488125399690625166563459430581649210120795511810673787415737515204092653810256722503217907018131433689561875985869595174015610284456601121818311734512802622879527325455176562333313225410836705433290395807703198471418445966808085162780718739110081080968657926314615923874388005797932105859963232298693188041531346493852885257956039855217812040694263935792974582798251479635447293198857391972401002395313682513106564376404432588354713983148464729576226982865521429469591195217174428718078910592433501827560686873964964433862307864108497524005818421281629179129821854702878804948588036247485255483514481492798611551666879948105355074119630952387888469325448548068034181555189706939712048507251855290386794563664221658246283352892376619270135416566416775844110508466040163376868327602358705554021257522781120462144547257268992421362348675030969828575396427010856210076267605828807857070244876835313771370315790363505211707079085388213179609943548458966532543385256635410971176583718760183666473995129470111457961739072692690933102221489449741484886696747540180866299634444991713658570299278792440260811703254305577276205169373437879523678094847158136417384488318356069819568858392338691161564031277294816436798882387376713997449590503741853900503971767591574327436369275430005023348417536361176561568496847340779925708040350056733708607603118645578050517482012677974437716692132906451899679730974204979773668277870398586155289731803041703162487511350736531214266318467850485149754355765084037999827589115092789447134251995845034686834805611679888429250196985875649246430465394792164504998746548556917467056096872169163122733190966938575625106680951908559218134661208153261463493680846580439212634224420350496943386983823016706984017834717640301955452207237531984560760135031702104973739937686946287139107613935530979258262911216037194041689879043554675479337150672342420135186652330843718635154673797544178114948012238857599576288922828147932502205804886278294505938327765780882976495656638771379438144608093051391636584766945196537451273134293850520691537392745800045877103817506584851578603330328896890289276763901984413773508973875543735010432013364955585148514216512230197735409718697001026927189349967854207433491145036706096704015774634143232890742979952737533874495952982467937186564487759872156947037234635514762480279086808417254674723162653477136961172750164921430936562897168044596256901892448632213326908988826719979172510556556282549820497959416787255085826655007282932040814104743118882154739950672272247678502963205981586928808646517165167435434286977872812962105947383215035937894162143693171161609538821143496451614252737774555302367460410799546814152241640862349626599045918741002007228528189864047219836828870421441233612623061464301486101862637971268953284435434653077128914709620738300968019098176686288848737427904880517151339980330985736937982239772275385746225174462524046086534388601409137429920716778085067619927582911084798265596425377083218598769696973743116582971452964595735983072173664399645578424046345228675341660860907152327037768731246274515747814253333251795571341397389060115894634411396351421325390887236981035016707624754192474481071011566726873897272164808617924338098390599994615219213015897701687020212544693947015869096420159925356691754092108805234005793669783153464230796402599053342164062638363403560161995677289399366518539745339449000133142720035101027149386104399595651503236422056217702263395512291943237219350814310150158395152898740496946144590217416695001946297821544456047013476814870622308584668858660546705661959095084045928590975349530981090450711825326169567727432960750025956358785818086952934220026122657992822778210072374880123596844475238103646181054497094186418101015813050896821816443202912171260540771931834419345068921981092962647267063761327370809321871108573114857184679523491657498629661910942680737755966852987825988726119501817556868681031580400313809866458231357560298992769839958217020665597535201624090094584176451572373191209061238975883880171719468811540107033309043519878331293031557197394480222319960108948460789777287806404641458966185249832750910643368602062620754528961916074874679877590972494305775458795667147614482175757916570658860288996966472339992023712987431335446443162189731796834733401240438592564006703766012001591803851023528553983092394970328321287378773141148589846009541143391180987435959570195680913716889664529238002754240148137032228126624399409481180386785923423479863714813642377899476119673521438972449134985832660579559480284597924362578890417981796317420441184804522122033203728150629341312680982378738491829772789546479288241259754798261257498628748172359473497503929000020762434649047891933030266840801733824068610485370208894619682656844636636783244620310065674607582400917852770194902682268825259773676014734336844665673993907857382763892113396882059837182252525484625571445585343619957888239796922412778372725371126733101235312439946103973554765249061019754327947280456153462572425610901566658033463667066332504461924153472933274961314153137534519105524821568534310049566410819263944758053900303355799322351349729899408830889356899290967864990779257937342888742368880119800315516471779850995817764307207291026222142378728539421775643174819003777794035030417756912017536806358674160787460180302580373733810175304630756987232155589419210973781044779964625816632611105160573269734676281396674744777104041597636875582357970008343013610107305985738648225478586120097466819064612556623195482387204677207160261348902080376633735906675432085417976823979958107983705591906185263198855785714420951137032768197899826815510282000442277310032486102800339986032785249457810537053379899090994981760770395915344567600345661618671809149746683808115491471666525955994714909691428903219015143628722570637134637891206106185106822106682368225633164932598609905767593959934047826510114907867987560648542834529819460108963367339636540760606361799298736311117542933470877147721773373603766450714969602389712146908894291558871147774358964200076480619181687963630073266414045627617201032686550963309967806975741449484745224999555030189391973480549832797331606591791392680133309535425129522340714874709102918373637973373926855480136931858521290665061625203651834425534525187452665936839547023323910229112793412286789694285639369872707530930496619856232313083877228490316975159560608848621913727471119314960962265345488166823692640554898422481872720755665270035076668337569362115001366789822047914068782781126464460034143731417012338341158976563710961882196661812232069040839209391291560541428541076130399037788949607226223952480642766594054134692670819278338724385434383242653279878767046320206027237420871602052544295734141923501674903882337647437199820434063925207499439827786417528126017133457252879440327005271403409480984975672199406025065304413121398574594385411395680869016387264314623048283839199994871261443398220498094973341831243794665471929170331177871745879971696447235069582104647608155328311682433127927180307867183871593754931881313060762729717099833346470780751231107327962197476454189521051159481781598029229292024865453296638494462995582450363689276288035174292659963311080778353160302314334445135054568960320727567202589623706623624794957521578114976239416145301896980020925080994367514164174876688725374105303304968473649200591395860717258200026675274146062210562262832625951562742726910448958151252912324991988503639797788940036103451969290546025633269994095265718207474156195468645338921690764535572821787750211594345484456534468149096616521424168962497421140075970731678601587088808199895628707293610702836279780747285579786079709916110712551749917848608588117517524504273371189883213568373822703740911594944972786781524926808271544064361158372112657572154609528274317896879365449507265434238691394334859909528375230433545132032788881946575696352591286214313480088245524631409025315155610647677865430134796607903864246523515211163562001042022831249306462959898799888915216215561983573107925349749367345570284253136350347957879225578925145473202574489179382479692027513918662806419950912302506093633852270379661625327715796127831136125530434019729233546940166028839319038719738398601913987887510246516698537946209694900560157075978498799715472080478287931473880144392209801072911107418780631440991203510109393901409240811273807185258543526709840344468150736820618192349169133712222270025589963939405882163353002272125549027318610961976316048306495170403798153050594767704896791462454870911071323320369876825712035105115810208283820258287571469197663023327794038317872823852265856583600116168699601585508162234253240572943341301944445288487956016136545415620288491436453006538446517960653307268351958989648238755462143296373668278155390010817531175123374384197437621915252682986270654288718298918262924186367525044494184991612477839110846297729119876972421023286443293636263155942104398452090001430720944420757171057662353643074134415990969984057297280012100863198424229354543418558851889379750902990433058895276045974025291612463784206510688754127415303491316009004351736568925917235235662940206794342209928259737060291460303893992608204698875794951290687803720134387643466033417462131227170771309177578488095649585133015081789594954414609704252794491859073864849503203596829508760865597352658975896099126793581091788706967494815404436228723925993676279491265088919036189652729039678090965311497724152600698002936928068037093143648897794144779052035606312969730175696351083003699819831549263594706660762301727225966159436907393940120636907715865329106801106275122595037660802462136428704364600850858746942836423351101279322949270362334289938809759127074651152004340986054039583186751288685631785814812983021989786145867822290201279206297533925357593062695992075570976856487579070564986521063018937481246452175385187103106469185242956468494189681508479486707468981994779471748066581746256481927901586658563028122842048614359469136566364669045644827088023880981507894079643718122495029826894681564392557612533023931077979805913580645608643332481913615382612852305827242991666148925200464666776043099536105440654747468248134624421936961389412039762033445509628838552557878546563299514488169621390622089971839247598139207084737374246906293300688063046068348418295561707567169978083727478737819756579475024686022905416658684564064162298289109019368158100639760670835930625887381126691497660902113741524939457309376037912071109113636225547177556749479425010627428948605059522254897456509241889250704972140888868068311613716398093142827580092659962484143294990902523842543492705832618224568044918046889543980532582313936824653595035041252419042246953722593685730054951789996111311499319957576518482022834513627784935965306655758699213241780205288620663996099332949501650906573823205256735277942438254472553718765834314094788491331109773751022967013860952837900988841116135351262854649905727195389089592125845255876301536306393217392958557088148809734239152604968493898735172631955388025135262303282845893419352670447079857145952769528557281213028734987897048565869358061354091810534895999316075642680010721936387861143109798218865696300765104697750426500325322167116486037043836085011540190574104925721796582669446582555235073847533747451498519810782809121670489433753053803613913158361549260663359425532921767789925561468392000657981298439500573208378472046506153796535295716261966570817087378809350095836495711590567234334827880814639924589352589180593917621605439891820439276759317841949327030961154776991146157108419670248248691186549183713834023327441486268395734856457338654284746094609433922764758312473969775699599186011835159154707998996282528024730975687059470234865184744607792231241729068025249712941802303824614148953299025934813013708152634356590512773148260403544144443042114584295124587434116776252303691255045900517418599802567884480983038813723519843641888403645077233440060384907644904222634767877710828171412813678521004336224590007034609757484764569208566194551049012154100715595728733477425023693539524266725723009445414993441480406891123895622001142573341093242212530777671021770468364166555291402460192265822163119338325935471610523405815101997598489277811303103978564693390784339985033356605745703491033626118157921799656914504012617186304556515871570283721111115582635412143904025942876415263789447495283384393819957665662123193653517424063399015919662412754120808073117940616220731159405694729079630138084632857400508993993308483096757554993240133819421068141362535240180779722025064732339515527234055004941205709918345634171152952600780813087772263481236332772271923832020463136046101322562889213712668102579981761681700737425016606092147219432183037440895013488670170695886147641183844521846021238360435084248705969227599252317014820599872257545272793745286446595818943237908923046943706759972648798455869957738071019071530217742478696932046886847996085436993429013121624465798146427741586154504865835001912352941627050467961813255936978406310196708513726904666163431419882169311052234763140969999272454086716124651652960826863391786140672236000611264687282393601635559058452288602943754872796568590781155461954083040773284617270038247096114998453359250887734941052276331503908287473227394030747679527467608417290851782605013369786551511529798753313285429030113981301689063444091055874675742629372035103764162464460857940457199211607539354054062698098170305677161104252280815584955116342859687630362985595724618851040415895654616561407684359033029460395094288190756057380282657137337391119484638765583445323952736036477148647404031390057498841503898973796318781793802267063991267512128011632460927148545485945336639649811002115513518478212933167396106248901746430672705242041265588918198575417287033604830311908721226062724636439099881337297667454290984165714551002309598037633850689241977486585263269827438030092789439761550877565712422959454366752684865522217912542043319481384634345157782701961234375942962768595068535992594522156439316963483498806301572653224851516907599458916473639855335977719974138096771054081199514893271081013549206693889987568263866616789133608692249565894108635790446930169708882551452519969231061834653245649068424824414635088662485843545186325844771200147017085348594178230973386051318301560240153549067264479867834432961424990408573332207268891819476255366225618090456999588014840685313380144114032627733322201340725685834636162018910689428643755322539058946251029215333402973079955235559893466834516542414584742550221089225567360547261668660665976878990830798408016512214076853262102109381683133986293958265189064827041041402588491760706677572621342578068410135564483848016055671625565332222635137036166009253339128573544003241656816134886538680012098978260765117230285706558381886594219750524141085063055981597112151077773491129892734242037546741949358886777120831214143603857166455922169880433627327912014503841700823903079950079878320937019484672544216973391230927622010000934464581237525171148438924200094386882108702117941460057451560109719770314062451949133972566814720406337880296881516397274737594211295823227831836485089353570642213917601971511451077474836593644135926610186708263223285777342751685755068615053621448097477132920628796404031276740545245830991385959531361903472065002600736338983529306645155538768113203997151635613092844988918010340134907880568862726002446554428480044018241636246855736480377774674233481103523166009926369496427912289049307756278462314625002635196592280303123323697589311763170163854356936691049057689792660291533977797612166243887005371504671697149006581652678520400579118248026262904110432415467484845626471987657814381266333066298759829957549209984301266761031542418764402024370155416428371425804810753548969681441446954144075308006344164039123862089675447592670394578931755199380681140807040784761947614062002208027809922612832388978636413645587685131327465076868261377210814252727721369021107946137026354919345576864101876008441100236458730797722312266829887636242616573071271304334316681197295355399537297356850328305135121072434880481746798665667694556599550763186971763022949858482924641650199812735359771738977728777486914168864906387464247416003996801027865652048055024498378047338141975572317273740330972488800796949596759490538138451646059897729772725723895161613771427686655523710977279296623398765558592317629365660148298267768111291962654392982564939064914690155825551721717522231930729283623765098169669957529413182420757965513193321928025118615711161668016531327772208124471123084666068958268890979846641984162018388496109552398854198910392693185941291820377270328226777121492234656486140238276740918104265339494751525123022155413285015734189651805518644518711851242152735105978687009632288769603691717444112356312987807855637805226245942550292445335409504481790294121695752870039949176618362815524736089657538565366650033436246747223258577079528847119200673024907208485081494648935614324176954744805570363539553001856967081772686916968233017892423491183249787320457704616930517713823647767020895364046393618767452964646506192920336145576077566508849250588633048948134991643496739312395500926380680678407761480543627141395313582985660326550641754535953571820011087321667024614012795801054139824409763273637335711041510882557342260836976108768711700472448812550006826750747081240360385793195250109882237733846901469860859435820696519049627917478353624967510704240115234959360857696436365607958742451032606144400212860965955282287797832071064976112903866781995373115609697450021417558475667289763009522470179478465225126472774411339157091775877731529734335011181909366419145326803338551775630247035251060265155874844261202561392886458033285556297836115874737542706030298524975658138318028551812862897485653031080875840335538882068267212080934737805123189829959887399865666585622742770467085854779634003785480493234843813823091911991056593144742381517584461957701225298905420399553436233938574221705850828512575271714487723553107395667408069921054011359743570249275439928016425583192092941836811799490330938938534148945852579454177258009476387797910668872766998695452799226860346287154354118964520263047136899324364127447248361151557257129661861963220089778442119289433871721512975961182031904769870435276435867838693085273287202015865693476601432065586758029629668918015580083254846655607993430511816668730582987040972394123390222226575138127487721368952597350728453649404233470697926000130156764174043219382520220034687779656416428068409618536601414165648642411826965670714888820144367318045602201872057905850473065985963869449406809545448651573460080543488920623372166869946674876382757447217557589090271083430123330008381702437315198514645006221229893385924034572868451984402658144542317861977623945089016418500660084363932681279928023409173238427035347481808818113392919682301781916182825818024172303007924454219421812589118495653704866880747949781057793481623457738578648330622624329377104731167871535083289937081759991751258449249890216942213350546930240901043785826534220885229625431579884394060161370375908493335548113307057450449344372356274461669373860588372601704322750162025689976859545851400290162012097432776226395977753884681634438606649668167970497098589935198388720098056457604838633672948460664710109742921123770775966136777991400426926753961083818964530981019040557357924404306744656154558250767050938274321886075035495052273924630291914134866407652083989344518373444280009025890311829893422489752341467131282039100008036970880155663023834060295681607327826850129189068707227097362700667021906143691500906897584105302727912786992033206674353159801473787446210791430646752982226062190180949280594537893061826251473985803241238455114847571239211693588983730956882474550056772171434308854195334384258126587578528624579609114129294219194031235056131695650868333781625108185207125427363596381113596782824983466415593402496746690226387371391969904509799182260715254215780194206435008808426950937098402861144614715559499179203426533839116023100117222728688641387728844674800593350635303702857327686377934043512782341149052240983669959342782250042065503317882645208069374618149630806601394370536700319971824200302797346575853131173200301436998385841634696665129931105770155524008952629091319223055264519410406912702748653120315306120866741437827116049922879001840835907483166078297463027966774143106956575642856869126538047248287950051022208670834333910459722093717291695823816866440469804517332896121627245939120780412298152670676295639473072903228365367378970444215599721644953343998111707456071115637028516324683507296713354495395783950342850710681128547991257253340003662451934983459703976051621692748153479164188883239085128965337317181774960085081261209616214783784405972054583422516856676330714355551970980750063642644207377475897902292292418508726619164185949023937538672971554263276026734570111508706120206724605067961940764922906201589433713937168002347879641189138263710763790816986145147972624651643288432270389575842098086231407310753256031253904115617025563505286241258414509764313632171756660975197383631093156400972023252293315844108301878474712187868443919136309693994333313072188475627330177228211967400063646908148573405961994877025996892166114110241691598938108104976289921491827000539942067558330544014788851090350891152393492150377777204240083262701977540463490034556619761971776349639169404431488736890569521685259352435526207728932879117916472455854502932288342712676379078778931480493203237185522633795402865224120463816422692555409217953209513596161558644398250074781002800500137418124626359674282442996324706731835365797376885128172213825569026664905597368525441247855875400020640142413862640401400063683048975894117787474158948792740418144633334538705345878938635449461475676715155057356924403011541791438818327593086470518881135718133141563876708103503869464980924390349609001928940656520110471327202170792274484129679382233284184366756755957033531042432072681613921705392191941035139289132936950802773302086001506753687465195368090693146159178399533327262441553917191327459806515672404537349653836952237218614720182106424702817672959133560254898883665424701584549377851790596224798895717720690549790728763541823309283472722144807969265559513523286022992730243668717684596958415187234070633893908121324580162537284659488044506782623623386791080547987630119702618368383875075316990783215390010709276568081875371025914153358112259822677018771220253383362178027709181751152133330802857326362757545046396013821221054286196228198415856504569423006534076574064874841147132041059340022648792626644364926658237245577002936461963311914898718352228886308536778816601798375002343381324321058947572961160153808762926406183655117568358740186651681740748301084236429794824258470087874034223073945218904261461205804434739841863301753662649718640760676682859982286453810653803952573244163649416545455459814380945020685314289055438149114768987053160009232978319988241682456299227674823270235071347746384153062672715708614512220343017658465815909698164908192848861396548172162032780270921831447616184175801465168749306854176429879623861107290360754091006277073819042201742548760213647318833044595623806721875546231873765998663098840909932105634688957352202662799518790412445949009696692101357303411607208246355994053971721169459534953655052101469164069179740987842209592450491140865728094694421085383154133500992636153950476472061744755332832296270417221682389908568170876157599706909364291309226075184239089892863644743886173521352320557341017759207235463053755568679663731665530768877395752913238284500649133562275852712504293342152306136625386531669956498844608949867578024047821436514373965943012775002436199220457371483944210935118670376326991864393560238232757210659209980310392697595557467564440985797091807098182499456427955985959844583374786619824599084296262279749345215392109794589072619403586332240032495399925557672836758769355824433167981868850862552224358804550768088753148448970376784339176565495670088098629993627968086990631635577625271421955679304355303791153538777950582366555921078224076299265313533522938023379756016334485165000951976418361452652716046828352297728182649210749226315035357876328958961235679500455444980341749369321046570939615466616269106225973956755926035633028430081049472169731860790838986627259775048137671793214550012462825811806243389710665830340451520785611486117414625595614986968216921263064793448975337273409360841677269112009537285685459308561235930786290745030083620600471565071612350374372340613022387708283284982586934007440845090470440681749315768245837771019804613443878578660476508742105269770132343548833712287833414684241941375965769447508997516584984724555152197817281660117348696161390166858050346629617583327234868499799655324491448277960574999292829343492479299697958483463598719154411445673347482250547220097554568188146884092510373456281371763195852433959147242639203400017770465525854033563730810616564460717148645693025873283783247095122800272114154949886955011902041902028133812474443374428131279001373020977349409688879314882691613562616490001511427853014287457033809782526222909757498086395952939856888457679361418822794702770992381359368572069782606403305018948010878707674432125089214820124323141307410845337167429499542500399688800880881879978759565497685288318684400302766837756194319140820109763114353596909322098820275839477528319143193549063846477132799571777472315952328454370367458232785495824601526773939121506414336364571844773609407674849257536870049962544304902576247375795898796219163779770439278567905935827587358968534313842733067998965963827021604431616379585151351046724229541568128889277216113970912330226697797966529894707388623030585679075230701569345287986518855427294769719317510815313883531659613472000797950607020117431595482017577820447291664372623820515869721954466597632914315777451928324359629631716515491122151091800001643673247695511139605479152046971938564529796136000256554265297875351335245176807492203681620949183930789012011101582945432299254934175093259653283342019517549249925741481125014218207954242896988535410877595298758821752355582093738783171759095831453835754676768237510229750265122408848856024116675523343114161434591883847559881515494872703244761509236647497672636040187468985849685976869362948409381271907774010817366922508902503269017446468366868407076731959519630120328944005390237550134735039361377419941121820283175561802522531070760998736022038071705800076597813827109511527386185420737110174929444211048627714926713889086985822806292186603569296517583882520849241740254393873122955197532897039025428181141318615783309582018816336510872463403782188293714853063026780000873119875866261404443485594352213973656785105351103725591769736185733189891372711030515824493792203506194682730932991656949208871370680455125050367203232716828818761158454075610590578421230492064401743348617019051612765572161576669611628911377119134843019442172704441893519013594721944085841268403679354092340571203758351204418067500339518205793496716941264000985908003191428514380570872291674278154452518553822320581078334766253219052536565148255886913021453312780352277138906072093596072309549910031849895391342116788202808798920354958973481921501733516901112670336360753635304102700387252195604555525327728984610200120503385956280392209134366271785519533643496063642478422855349799132448475670716264855573352437534141734532239758047923514961133012606310131422978280389494068815275702997631267738659449570125581202385287478107891025240353514928873589262907757784848195546725468697665887147771760175056553061181130460849468209392087611916684145342723747888464505646424754432825796220376322397098168549037740423985357003868200877943577859868151668072974362910739128766186167066167399062396989168169657666241348141141975535465005385433855927885370790799970790529509532563481746848657258311113670289500246917492203172899997972722293853380291877833796942374095429543075029843979754627663994801003899880058968189738384369459955541107900536842530839953418224033390610616565622860039760740820771128293577670656843616423086526761168620504246158110554228316683112861213739435092425239427869752178702519647172306911915979500447110351958768548018545055134603107794191851799137895340954402249127349365477363363068465203322004845489624830647313436551157736273277385007048484627244009040031182798211337965838157507256943141650157956133855319783812800624112419207069913063398373335968962634413040707895882271426214118735140959560776459127934200683028512974167408905958135233496723883614674588453471413883071917433273761608020629969947970960407976293906304309055572627207833067735402979969098106029222783926410860639075416576194877518789260535418711797204555338453334936502591234361990558240088850781920089367716663257937084287065862844778574110510559904626527280788095015255884460173569337184279184018479830543924236861731048239731866703229800981952954943362217415858438939667692527201812123914214630376742492409092458780124823024294549483181672920757153669470080683995289015505305895467437201284386271776484310403956634074415038804264351404364725472854643999636773381243532292876061236086794068297189075251558609468981385160911161537262988820735254410324725341837683847568119779714649391182102768581328945792436302479170955054384872149059966671933645831676113469769595393904622235163716330134448441096617270239072149701118677989339769591638615766697747735929382889847415387428398977460980791915618381732033046758802002235508156781730799715731980528558495049288767477388607348844709744414019132991912140565973285890022262711548901938430797960679033844903397853137215987443542962983209862099599824407220015820177992898857769006466891980325606905687768276277955023809754807299320560311111074538478038609513857479396136388800227629763774672405997582763178785855271779712572425004588847657158128581224502089842470990254493824693357635553772467150365396089974247951960347041804477953674991796743374137101975967450154510920198469306803394399336668094797084383286648556205921386395872495005906054078309211889903299427201754513490087264679145273296121587002280179840391262382400811652219595239411542163925364873695151088185805863615071909392589649425125215557715831693506968663511080611225671233012112375715646934458221178912305059242130051241592555648773154475085157812439315168359182704346894087762688870771204205634180669749771054626194687946667401952640912515807530342496175723020424656149557516710234487210699908776612559162849050856134366911367392604089933059999806351205857208182697635176166967556815698458380379351506138548267387879094142759863267730478347169652876000992222579916861271417875449847658805809432665046626534578132871686701190113460570029595130340553122509303511088342632230978873292784075346573167214841195265609499706977896066155833904073821548760999687399290561683443662190610910982435863263542426305957309636539789452046244367698146615836466405942088781491153168314227674272383063366033771475802689284007750527797819931312554126367053791239624656835216089200736201497703084456178336723560988479427887518948097316951200542090622642198232632036669791959086636944520933502084203558175772805500569416808467866916323777821260159839087692380221552070511039365303511240739764222150928095577912550548487670236247228744551993443280974989191240478268509307481960892472894065805434870453261499539195148605733950917787481066577654546282752829060907443724319458000534519832538315754398793983051191084844712630040810438075150586407678624643222384286856144305093916965691309662123239519255710626572700480463122360323858014402783710323254295378515927477683503099733519755655106403369370894221924909421853854380942396096468609364422370290849078881029935655746640878647273138600887231218849626941313973942360294144638073462145589726098058279921901586110678137272824256447037339352988900651642886472871901333446150743146187798136563364621686264509138488245909112384921490811124167914149641944803684426846324440977658571095758292828686824445310673368494048127829205353853664708935129493667691904690552696700245083184544108095584416372395967170936094828959503200155979163338255372270905710175537126185658848468233543345137979192566966083922719142312263121980314344008889993482003764996854564238801511317891368226211813478571213815346148715669758212152389137709828659405931372048920081754109398452041639212650712090406081924105217001647273417663181520890441935386861374738141757348082027121023892066017912126362462314918418211143989321696885629177187072023865736709930489634851235117691468446625524333005459895139717826015510955842802221307393651599803598295342430813062587721771579107302305268967393528240820905582267811612475769986930209549087675985562210518970917872633197077542804729492722153533329927291033667053696708611243188911109677807120488145820635746834456814952906923714983710169293837867484116549909265462961125858186588727470262600717310111523124394878049317040116205260991713142605739418805585776416940197011837344260003153969421960720288228149956898955449806925149713123136543588066283042845176114561681112598705805536842255393057519502483093321082554120874885246713585890805387672560517001308949527017257657865124959524250147645364009589389859514924538673045398930112150615581187397112291901376025442896760145926250673019304798923866484715765186099420142185592220912437730410791160168443747976363194386622246696832020815988962736038125201317877447512287578774221237099796137869090974993811810404691653368391452821134616120337740985200162889160104702210877297742576798936769347666293513081636473107611999673866828228971689489779924106692262991311586603744632007961068359083251617674640769070885901061677017359365400100840013608708187870477787766871673452112813801495025768536024042761527488278792947519959689656416434345759081718439765133876416479690115849915612781705881434967389152053630805707310895252781055379561727843453896924268282624586773945123299036734817110672681703563291752432492781697781228276761260821297498911970273778870170725623429974259131004023302513259843130443522765190174171590071507735152537478268239550077530601499360019142875100169730505100936280946199729946563481179134532301147948120875449271917076101237434306324347267978691868436374614190407946887225461822361309030148133878160449863279514418629128259039354580101770659138578557809306475894561755238427886199800769190119298132779728023541488150532472319838855003840941549705803040242991960514034876357297384483234854807345373109376707622169385083645269598992518353976961270699604476471454122102471559381857369666125813702913554361289023093067301297429085562908038132073993008563003245679728550626005990042758307810685784333752341574926306821243431700627336904497487220809101324676377525747017734895969186177097949874659042345825337383192684382436280215057023698215559908856841138716529051321144012756007394462169056553971430827517893272300586643994282895432757318188509722464805451653429240932772382230157026206882204591310313698013487313015307565974355976539290121164372601712037668555019612810680883517911576110217527919165148222419579661744579766226137118520683715154327443895572637460111665141336408775120490071977468401215442374646793310804874562707266441514521916124113348928653767086359763725855946781155916681189475994839024308282800019906341027776609904126565057176070530967780709928333242958830298838680788074702822228165157621990735751166479999683772401809717821680691232762221780804668792118222404896580728047014022436336792808674378054821011657319014270818618324264473061669503106904288170876219213628062453876693427322621100373866557625277902106425072178980222026940937984001663752230109723090388561538499042918227674893041075741391623438845776692976477485671944361875416399147902109564448026067109806382077153530403119607580934198624974934261589947978286489166334342408486975053866995090852833500052468432487404517256368374487429454582177308667201019056702031082477054346479420166965737374987973353395479899225613354014296645709482407392430773073399683938247158363666284404875423178590338342501039668835820800154971699678273103133583022537650291241328820439326986730125976407563753865499846227623470095678831558014082923270668441500377640712289641173171170230104922249780265770042479150295704656474598010900074750624281242737946972945571072753141670246300203379044332453160532554853680253197777100285145223407091369115828115455456817126771327058143345157612474471257744557465982049358403218880241349960699469373006756059550505343085427415233532756782569080548656609538361990378987984322311332687260680785628013929536311544589079777455982639202709370676302641422206852004586036479243274258200017307967561424542933064388444091786746512555019513066101867420678507430951351029497594135207899035403899685983672933512816953723432384134437997704938090162679646166456379256708997733158643522878224814699548027798337665297922914319673172442226665217309601093973433243673108867294460516739288616213904347603444402462640607728127322090020824209643758271742781208182910702969608478913305893326519756636723560103108083089467994323834172789262057329319983721895266994703699762272132017405575587323358324368072725680064149903303732043855650294663234015794466247023011008607346938507329145729146863651356041324981301155714400468083526162025406800271862309639525405815150261173376868638845581216218977289307423177245579317626813858884893335551679756499341654502791139832738238650151411118790462400467537378095617902812941415979769115105142620633041561763925152490988523852778416900517012566324202372457618526844791631505190784398699850724506984375041954404285464603386802833689281845725285948123693679487805976919575995883450268767847625286307141360046037469188072072418448842969398395308424939557483409562712081538735100882824571634795916007779548277838222693600532774614263815244198954187901920366076723570252168093277990184512879318441320929380237673821485850381620433342207876267063557503434949315458222329651080370662084062007928058476602455796149271137549935197496973898403872341135440946442559657453499244861516122757840649095526553099683996019928453760843136795078820784729223025837645044094417205385708198902558575116553836339463270670234279835550981420078222866808912822268105065202127086737119704624492520107076107904224332402058171407923977300776124603243752720942041836968907897073634052189379485864055168180791736972435360452600542076119908263564270444164751275264299324019119122364583169991124043380374317607750150224231765462472799621329236818282179869807893376265844828885146414983909002755300246359844892346373426313358380712343560335605280554005276522363619073993045831058714652168171423513232313324167549509938458761345809188662130876444674174891069052723498622160060304163793130747265854418423979176223747852010918267102094348263797861894774828168568552401937900843882773995407701651549844831797791159514032949038087862326603030735334921101276246339219012631831671154840879261031304956087415566954009283571422257393103266425673372483171949880158808525028781065856082981565821986203375685144149183379582562608685282605715850121481959816992156615833099720020442762476483578905667713835166508434826879829557708207145023936382102034831433643360327487834516550469042211969586448470994475770898278202055123426568413584816408798986797373648193126972208606409242653966438569467891686538398694261418288381525206276915654902939840090651863952739931234927834779811252962434046289525194426922520854563946006371687196900870941842017535012287496702002389773220283736500241025666660379252919781304356610804068526643160269492618603592290072375696324373606276808792168530293730645330675628009211028085324841682836743404179853662608230381906584293973174938235463533827126371766759457534627939625928102029614767878708914401347664792413689606595880844201407631784330452453180255049944685529173267581520145358059625200591461226742493122719453200731779813230538675024316790950335722066970214317398067828596016246466937116279103849041082856186810198159666475703850474494717130516704409102224606573140305322574339659360619416236987447820811382970703360355185285764270396596451807561406191934002298969930799813767139554257907429299221133874980424914949474567926725270993584656238047020057620802343012740529866081860548621165584162170225401718488961175207348374288346138153463566653022616224626078167567765191394377315308776876716842065347410353798243986003428197082125863455558432265994812668936826008157313390528984777982297614449222061745520325333685190560203271928038468310687444817218974506799585913718767855011514521119053514702873701917317808602752578683939865217244009639591762521486425459907235423152001013677046711990085002932497227730283021883953967184425722900089749816795472961304627246079537618202002668212010809802012508014266244828599712862084501654615015875814767496980118992764075675045222835270970050445649671707175775253518804347295333187473328827030474699247705807940997604266376761214000139807521299077855681961482743970581250602367795610995632228130379617853862858099093371712803392930651984294144292172483392508937546655051149049260205275940372462480858934578415453993091153526107711067784128891727625248554253275690641968107742969591914889340315207456745816427632094440249186288851965523970488026382192504497413410975323782964785864594776411548189745184602788280351722092055590435703626613612089080190132585762191895436916786436217202294053372547697238693697105320647754659294504865051547591049490887055914231347268207436172832976733297789422843534713511223427732055060055303689497324463232990386867300599830549794024188867314782342842758863327818309950043931439169471856576809728046817898526904417770578907789963476650570414916751764185106362418185986229573035019129699350956052129919300818446119473155455106295593981214159457653134570650401718442595244512009401847059977744108419128580671242752860756334638081436751911596237394186473348065074342233960201369557397394213183011416462025380866022194630187266065950712879188996158989258591894437821132906619421559736515921447841556200304888059462745095525695685431210849657024492227066951353642561272428901713944290040620166125025106828498810613243734992583594892791966890802613175804896536291087516329316054120207082654791039587977397247878321460813772660207102438944701272927875681474133650806462272579602489628504876575230038662909789153956026859507363797869127569402870989341072075276429315715744822274127042626738082495933907492099640047676316842365862471138036593346757401721880061646855034209258503739929172117007479056646469163830608783212151867857195557105038243587621331949462632479477954524122224535787160931046069104082217991658272291802446132597017512678217406553759674664845565505674821403182685987418810685795148154597923287722851970061215797258774342075724492483015026286068956572771409703018527294211434665654653912639288234852358539665349478172318848163921501469231825591362973214077231305775673893212451974780212338298455097922864918258934319798982177961140225365573843644145743427122169706178390226282324561191136303259112699317215217423110817572261097992989532818696502238057551458797615638507987101897900384269620335972868452302571223993171370157158432309364493473430779783515034055837809998469350629813994398468008498346814526495622701020148060311258078129524176181582524482423344331400703546139250240655140040904429624215223854106608106574553851124921921556956166146373937227792221457212803125509158632234262035399610777645884639076855054494908163781195815034220747014698857598992843712147117573850251731464890486954732356138334365064887348765294820825324224452489675866487017439646260028657885468300606337460837582337857629891271361878820181791666125597313227972897471275995493432793265952624468782536134580599954823939438257331330667758872612749073550004785665924059818239116064489510619643196469685259980666196384815663292865813934730920720422429666656602069189023989728012312386106221165550316707320746272329049703480650065125701470866886882099170357656389039083733347286784045625103543011343430880841202349504643264296663930882363274145322627318545379401027908098991031575817726459105638798504332400043660917609497552922824933154127930815805302907480439538059133125445119343023973344399204419919964636637555210826878825722829846201993781573333568625137610800281761907110422239711543183088274489769978883161657371015859865733965893875963373044687863619891268275740650867368608579434163620216151821296080953351863728276947969649731755542335047368048423726358217756927231001855606726487963369896143887771247442589881206394937555299900056345410723813963228697608569751420331082392578342546952437487084345574023714256338234424338375923255490422483337524841396585462561718473923499501938536585758632415465691852446527266003156557183798492406543949643773848014463453294248136803243165760494689542119885364176478185245724811201345983413768961508413440468829307319321750250336322277832512138949993536573213178310052450312768909222180377731928117989132471734465180707976633252951961020676527074894758112881376421248024462601406738186821206540052986396771132059550819014877068586299364385761901695130890336125901847722384047668390508859011194734727149005029914471270181051113181013455905921211879601324590033613311133031312487909676592157048914624626473867607290173853167722570584735751554398725722597034243474409605146123592535969002316575403785395525488829708756708767635144183209044252751069939272987080512657136560907921802607997008949789805692664046590214933246577053876810839869745314163572481850275801989676928547027053001757056662482935524601687067721054133609062172418441704656330347477982031706083492430967719989866939716847429742890659445181849569720462380025281765877569606843661703214516977135479107106100866282793504407872448771466373080843148775631723556197874583051979220817451263118533775730842990793775567559747029538534325267413112950156104214793560320545836116414360966132481594386511110126317805241556861835223092161482027611816121128907416727749009869253443003282847522783218453066346843127017160965450133667511914153004772665021377238039911866901531555322573972172380897612876868423371824633118695005107830732656206115933029284817253357474734790775864266632904096038903846592519859717625952381497494260322312464079653044494127016585837537763025652683203024025712158979160059336848527204639990167233493471591737919987861783727732678119827533954595925029578639756818196373452924397997298230077338618354440956425427235809143562367589117835070086312147228586058636246387602342738405759525175535929220975362281001469796698951383903198603523446885472944969921892155062005001587693023964728033457306892973764615676864646783089821674212786185196516407458115256763907344545814975513707416205220431539621589143543852257437585690139248436068670236416668131821037006079098388859493683935758105661214249185219941119044967695295195765821141080787496842735059543276521528724672153776745377433135311546208452533747126537395372872102527750814667261157246659016480870292686172877115770125973660689365257374221864820897085153015681099009802826804555269870667650031439518236791980321364604013844907053834929236390718293342572054779561727545305489223287792220706044562764462443611152161908602689106518820526978743125546064687425930768824679445683518629432486642854744913598452363993164000519882742957115721050418617288664469300679496563945548296177763279059421038539605494744968366531533561920646926619126114225670346548680317218404135217385822053548859060036949238765505608979770314132975816052635352192477711463570092293413133756839831360793618476530552321655907894558471435850125809623082204696478979250988288290891497697035254133460872064651711253323364316851364077073014722503116253787904602433430056453106320110402607467705558160538149829141445381139166961709553959717656501562570655988373441205124572179033134005343482579660328841701237315105969191838637827055361605933867312189998724047234089490815858834205654467985068366638202360984704599975228919212824934215641647904665001249655577333818802648078693501051513001831559317593430409026314931930989896512684287503724850978601659061739231040301729617013416038515373932489004148643100009437367711223178353357476906247493528125112173484204317049209004492739803794463158352822810002561237817148526123273079395180519487450116217002161992336973016026670848341409718596952603496182320990817121946884151639216597270451210912734086575896029310126423835474710976201160503942144216838891980917378332912160030149039913528702614729511939081245673035549111382258508939905722356175077642973772783372712184770209151246940539518286002867252826955710998380276229035946231630920839815032041381902939766161968634320444988160201922564321359908259558738079626427113771655456909759015974939347200807409369717856766759702133204937594758587343851955790204193703265143074365042178527824734885424277415372857382106241146362645802837069898618798986009991712318510382026875862131676499491381051818950577147371677806019731692311727053831527174080468325555926894474024605315639848980153161500807032638124673892819889753223591216159809842116974066314960457018970389161366305855944607973876275867428117305089357220189889605276165611137242378432656995634211911106999401880378476431694143318936673215971269414497871545100370477502990003385267202387914604876277365131454240854813943483869942998490772632218283663718026093526888728329270082875778746524551692446148007251604121796798478719439245784323135137083800891250369742330491350390664889642588685607442934154614201785844473422185844874468408812041576557375376375500462032418778407027850073587777706407291781932127175342417686947602258721604859286111214624421569796166888449523139596234537448399955678111036769751709366775088750637831337272284058240040237107148174877734366795442271701632944339745252033497113077454360465558088864732487323540853010207879165289819229964782948885069143904078685072374078756427356836121805774708731938808225558304446636254841796973821269461409980134458745150904168276505258325715302474661231830728595302557915158646316376647455966196743383205661357436895396954615309797554462130573526408002197860224502326614547293163177368693160475805025092919379413270464271330318202783632507029640202206157619341122349150752142151858302187048024723788474028663551022439340972456581354159550158876941823763292879454648407639138347780139761517500101222713988169219796529911711042755368818874396165623829902769476645912558981918269953581586443151455116724705483853987340903955297678845405551170463809496553121019261448802365105557273241855092845755549650738579732505759785433975978953514288734980107234967850508934913540484553459481291091230145548094471027314247684478213227303371913439857986629627783447576409452860292703639346695613047386454741886616554306047184774032038193315890828159901929741910988406393459264799480342229626804666678352590579248774959667628435844500441954303384314826376811818831792082938700396671008929670756589925562151075481706399842707029571389887147641095773396917651090805968701058681127422435964261177631140240849786879957963610512995805842348266305084776558811575771034785396896873292643710983926326334812581372837846449917788603302790114799202524197952875098279551505494789080589791915871432653313828774944132933587037089194883664607830299833019192588427801249560433206950589486369515814465338821093009917460859245833752911121520593553524319853487747412423825813628288870119502042143212935204405068892533764170526519487360624664894917653373185983727833979778826459194000973989677535598559499891963314239774487030916581355812045988931417007353581375054566839269453967553834194213420406233109669915875463716329689939818428861974883857378620645754141672283820717084058783195625794263150965266708604837530088805271798800626338009319580345334084872758765664424917777817364089244949923354355541534628249371853215159049838849239923124956447476669690290130421456015586964096441544535317441294814488720047815764244828125211250683453695514339168896525179218985107621079130719920497116778281622277766855881106376109429814993128147402991972892647449509314543302301214159339335369789965817460530835187075204319834573076398645544341355421652258797911872954258219576869917307429129274803588317843039851680946373468210154242601016633225370249293577104797029356310640378197458259503715142324005088868711687719297540029187267405182758103378150573921613064387075710469967513240130878318006807200784250033560412067159665581736572816554758196831908119386542982756562916258191402051609345062954815632966824453071409487748190775556055397810417130011920578107125328310970464552741517692277302388098163712398652800560714393552227065247226637772728747195240429834122974150739454587213235737128602453421348446901332618063376948615736812565713117419602592909397867586643076341403677195769599100716406065046087010351374003520078470665357066447665986547678016594703121331409547186375297887009670165000096172251294827311795901281371437450732748982553421263855674845696124538729976309431376984296029449983030849106284073609293254620936238804382890294549466510117585214689818457814914405792740962253413055247933096627052876218871797240064765956035597906147076446209901413438448333796572723146649310196746618076159080609196194327493794599424541431583239331482661288209954552636466550129688460367389646656869728086067478896607700504636694630514999534513631518446407650825080941808213563645339889484201447827264755925489203077409901997174425787518461998215024670078906068313136311968894183644921594483634978297497439977872281502379084372029775364335699802985827974007287396950166723187682377986805742125661679654278141154256088374627045377638613310314671887640354785893675936986368027876063783961394308916715266326159529102429887731292697089887090778089874391869177246835357806282368252655994923136013453674663319206180162033290881709124442874787436637426687302686659895542121848576270274683904601072135069652896794604732644992248872674194558366482619780582871065128223587922462743883571091162986095243160464570200717874940162762315816371233605593261956555051770363799098319954665754729118639986505762695172001375156057796939744511592050336659066791994849757677548840752503931886749357568046755299553664871064372793421280504536941919106725860413775524227897230797568993079028940917316198959488079740049267308449392459888292752150076636918572196687540266400772377962454900183805182122774030782508497109050320749482573429614374891213993804104070886680653742649233827918075348466792954702717428912301139521491738632003760382995695875795976789968800266964380169918588892833030478953124336823440272024768984954609569142979258707077408706198256752603845802578880909912100477266716200072611255135837823843637100230632276801400325840723746396112676006508327635218490063044258184653216968202043750007001797077903565411626148567382101741096814849537757743602187971682929775234897326392863215940278651454450207495330160949422937434909029290112448356337495131183217315066582543834883383155317862092600810978335716136261228394666189888636204061047053527213394413865544090869942810224833141685585707215886567183533329558823758628982203670358644320920423527031954791240158087238868948125561272092766141640228434192782679497741019079767127757381139001616674103889818891411328357448533355457560495472870677329718900517859826174342768571917052877870124948096536334530464673882232416549755879759760693325953000248596514669530657847311314079393870821024258986618096875504293421355541390364105780097480327147705831356131519356895017954249939560817033770850020325716568817443880759460262290677643487788409517565258804415150577911844690392472612598981953971520628863760666623874713456405837200288467887514850140640337207498762786685159915599678677337535891728953372796758431013255333704744410564307564970677320800928225378198454996942165533061575161928103819558774415852887062736526717195440033396490502228271556542660203426795072957897120033128916004571740662385672356687692798980100107458400115982969180343622000865548700732636859050470619973105175624431486607669760536487154237841843099076992469673517474409677102702733185328139753113630857661556015428079001457531004069042339799927207885390333706036108888406781995149214425392284933256938619779373578090000919481319600512159196051330486019067263307285411391103910857463089907679328521878210441987697557019921066450035596624000320208494116751560205673217921995265301082503812187741849687650786194240769822381718788627447320920220017289554925582562442075057469059600934736470107825036313952446219574003542116232816203863950740592149921266827463084533072053746398615018974982828843800238954799204584940948778603912102508377353015178877362667593487977795887046549553856501409644651000083124801246106585521008121513437531066937429402100671290005227210089548835652854182661160012321309668032317401222007692189743117268402162113154183953264886564818383630796948158601604776413157745342067303265759452548964946420074108046799854332780626481498923952598465469961383107768323221063053815668866586532914011781738684607205749047938725604633520429907544016717713674825955124557786565673328782867681735801842153214576561146315502036932242313786890079837501947083029053470310047400533218848652652998069371665207909884414922428957928883787488954996503028397509806931543666474161983876576776167077870590047507471608122068365563226772697564865682404842227181560129101781970300828256685015775152322748573373674639836578893211122845687932208386232591492719842003076080484754691539477137828801374301983684808977881950931291965039486111927798077743169944718069763201708259065320813575138289096568589251047671701279882596674727371180493197392997252100526339846158266160058002710629375588727845196234702835533406505140594353626242085602640922023945806478963466169407974609610317763143737102208446861224940353332144636084794429651353685130330760760695243026209927515912323544543147577601326107712099098130394421542719968086295506006218063370755110012909870932539028121740290997446251146619588627509372221122095911989887241653871241102375239015413147419611335202483937550680622609222018379324580802242673035233575813606920969300156168949660011958004741194842805480041867185907435463320943000802163272359039194832013973713747554744627302623908851258271324722400531278198908998468454118152030006630973123653215722329820624678374959613125104247955757133340479588833333301240527023459047869241370331793063384676916928739198186553109686142380992019472180378038556303155701733368712607129960628410280708636144782161085229560536298374999926109197052706489155351915841572384523530929305504790502541677368715661791689706206697582779762097647634883513422282526331923091048429007933389939515942325263955050523713916079413170375791033024783968667675652183596974672553823922073108815320656107190817836509730411896352111433621007672885117261770851461808068104756680272678001430867882010470429743714365637130677105411220917143872323224385305924469218706687213176989516316135982934207960174302599599198060549887654134113589462977770752994781370936722558845499135582088906043120762979903703850520772824771861038996302082021207392406384422655907297146842267007651522121392891369200080963654269888532088505424528724943698284091927042510669549838584090947654695586884892276067370468706585672900292332509162555800425615039876590281392453597883621596295420424670616844729050223004011069172336827973716236036559371887984190370090184930708106044856973122575950930568011870198337171855416655821184503916256273507733574674617027902917378945847107298830764001769262665803047345159282919495206785380739513735990262388218893595096455442459885499517554087097557297304095329782632562687799729949145918841422474520119684148141655791537635826771561458646886947922693453725334928898900715481083816052519419058312041918524443369874510414261992967103229226863679065680442136604947885531840525528033536471229821192425677344851132512358222432165439540759382036682347858679859610511985204565287842806148867356241991616253765736084284541331273872761318136880800434964798281277685974335245527498985367886349014224473560781977374672362922878892514966452402684143742074588636634429344980088944080800984740374260666653766189524619711887969406273255315876414364737928396266813750909148363674654326506889551122179681774239050525111097872139884005602615789463919854231880736495691053933292353736768206087996651040669764016000404801853044644914690922608907092433374859223099353148500199658128500155223110086050376529396714445403768570620928340739681087367111246782770132254254599523261970437235057470148432494340118204036693764475164681530035205436815142479131256613924601451590455862837394081915850306975419912217670322061636046952616100374401982605427568770703683981165143100536603547364643607101729074290485901965785244048456809401881349826096254869218335688436801315254126222380021000358898984975589440479029953447470150043888834396774125460675047132264842822141664415325806766004886765961174496028831182021878477487940011298205190768161230775952299207303663813308643846086554128273294605427510242529027580388818954080814194747434343588612267487568158660143434275048678046057879777637659769091647541311769832334638060016987110977121812849281303523185251270508072087166030041456980744002851639956563997416152253427308094496079914978007402667195557475300859132100116912982579434389761945933721238065737054686178794580342974911009914576020798626072381468449275870064092172807211215880557371262875248343106814423398678420367424988681422150792692202857448027954327032713863236798367927297356383017140340133958701823430737354024209717253431742031219619367631716025589056332216778888943470048701505986546169687568194325771654701908013619908660105793899440098264952160354664839546915298140401331804140819690508144074116378317302613266981407128438894773727497293392474072372205142801861482417912765829877495433372683247449485170568749793272055403316612794898628895205492974692969622162953386157637900446342227000274757320640108368896967609470161661037000541046965551274807181871863140587510743030120006644628958218129223005121674549120907466322093127479427871032151187899196831586614559585109473151907262140661280685821056171055445479678380824849810661583597739636850589189049262733530415711184365956306402063840366938788906915792354636040596569556040547521732154499501732169173306072859250492160892698522565056686396093148544738735383022998783552849638148701675766138587264032258147425911354041289810840605566546773118689762487604787079900567256663792791614026083155697873091422017195585190610642137080857259798517721566719146607478409658480741260505446396066478821198384101104231470988345317563799265216239158391789887575176906746570830817205973611052558471130418653865153180837105941100411916638427469422776876007653375629878699938943576029328200535706633605940323506986264293331972687581264024173209105865988549680100245063459378742597687804787141315280439845568957780413615639992714835850749057122983486569201620419064107528453627843643516796257614025705427635333109034148082246965792118700989970752317029040554391935866034569316068402766837487966424402733755085907301371837699276528540209540966774565159962516557386225030858152221800411943375229384273099329809351807241475303521987061463368741862293595858528048043363311718239485029421747831091833759473954508171620600798840664356581955912350326057951784429096095918233526603823263172204655034610740828153895829597298535685609061159327421060911410771790650763605141904495406319252931174659595650522933803402333433784887165852560012968676080597726736809654506892493249786122019738770351892070075357782240300212428904210983135941701340580451878670729233299696577707032479712855308238523344494262879050426955243047701097488274497266876649428983472119539503923561055998277455269510879964535129188942147064960924510688820119745021850051304726330082859717575551597716053074089927919670514335036584331078668652700161137811834914637054378728454981287939047129169584354413879461857539457862430795360488707878570766273118367156575884211960460822593112664874582911729927676568689659929649850385913843722539177058183073583022346565654757382383039726998519148490918445299244924747351614041022166163533501387925580695510800618768039393222758419224154846595401937650236947151005578490963809339293549317893403614542814719766349443601102865097369138036693900397255529935387271815135793632683077911653565037379966974369967798326396627589408771664215712165433059454950405699905325012188578390266147440421023863755076592090661056760075625055552890542306768789572077924958032816155316641544684614951484359076265859454502783838127356333821227659945327131756920689014854049162323914878689136302660111173098052543318656692839362617472723369819038040734595650598335201502548434657830498741961039070759310713038441708512327226798814927356277235646806607671600072259254692399383123162807343881207869728676497141751809981882646055570723288378025608331511587403220624840247371182975664568994481312836656409760783736458523066809621356335713070551148202241532173528630906926532879001458287669272160799175214964908088021612694464956608418223306070070111950879277449273047800202695295287978533691708917056013034952527677771214602743252778815561325742792979502882751994374473866636153194746222560858969645634207074188466915055437301150057690658999228630997547195197468811289967179662359991897063248441298151737952376727154859794617661540208984746840585531066889786930635953862650341088542149845756393502108180687488318752604765370197941138841194860947823673287235217473358787389209816133866482039815468024759985482175454333536697723308426214484834668016852174685410123752251486638198546208497818107500131473259473690763884765068339445917829919196464867758766288471656642422733356085974534596801198162066957475552552972658870954610661022901575270527257065631938586425901809061871505266789131099199090432374620729093063506276429091052699420348496183548247467887643625626434916055922910965204401059188529093168559924537923860538226250453448757460187779146326463982980244977640864316052174035396947020122645199209788530752603312758920687823634203794896043057243118106604061037236437524827730322391712634800925976312175709664720749551626460308748614323370447777975480756460639578491870391134436436418828930419544065376193399656627928503002785511901840498565730557936614257964513750802996428495307935769573531598560120067222810281190097060712861157714972643689595084664877903576276813431140150304411198725217825741725298491780478318859821753960266091158635453564653457620548044872317513255402008942832236008732725963902332821370119362062424095084314134828686800823549311415170792989433847671867127742810690452912471121709887402710727997904049036033788841241497887167753209338674267303520462259237002065724597864838663531819532586194630942058588853359975896648734960541992259226190337569148153491885946873759921428875440795788512450940296037903352008924921814766108514982618218115698276794020652250814297598783125297863262311012376564732067445568630048310592615037256531186376196189047231763912752045543474723414413196722544863461086759689211008045655096549632920988474586023160944157698934918335059491981637306018270490456466499371383797561269640388417388091802929661996544811537730459793652942593817965671119791009127439858483681886762374452432298579613753821714140245945755601001527670738023492476700024420900800485554270469517611675587562097582452207377280774604896262314339716572811246924260775805162880819694709574119285091024760175339656453897029207101639763054667465742923728685100200976595138448012283881601352429358934235085097047993788642901897973502990405133165641372306209479336484885216271232212564594120805663518888155181514846106908181034925492151301378056716381683578999358921445291013931853568012014147683343169335353264134559304451817887137303852956556410782949999289119708189481440467755663559506603310173957897425200643985614262129094307806259820063071602507252572955157449140399398100682809824461051928309892266951432062352294074918580011753574860200005085536761740564436305273630717873510380807314031165452981354925386236225863768980870312173727860713635785471074264910909125005216803078605676896887711851295442380735341872976209629237702593143846120016324069410959464852626903267895896257983726423858642423010130817867761620236566643008336847057505560971031915263014194730666969851152208397849746362606389024274790550805993201013678626030189806855609863027756621673404255996319029501668840450499550906768146261028498268106812604607317052973262167376764635942033849970128111734390080181388925619493468464573702054355714884963744927082898436404636664776783109689211521988826808709062579911791795420635885545242582521152194588540176643346140310997834786071549163880789939044753988501501708864769946448601591862031222920321376723095440217271220798314346752501795353868615419765618252629073959611557713133908654274824103114631306225519428088679102697935413838208264493237483824901618629893550924222681568885951133988230577106534471545668492500598310945541209505845607004804888596729134513785142863937821626570701375007638952474766843376920609913154134470372162865435310329896146130228040263349800243472296871738921794963724942717795605605457955809402017700518566819392240416888799833472093532903675788518510940619690909775766072000148469806365632865976872159718898497676140846618782104555528266630732221972503211948732667793013752838284943401620415724645298663452413358833427879728544216597630587248081125188664840311341686207018852117904065786699882428389772520784723802788635029119872293427824154490860275859750646644577398939384592719546347030102122610974964068455962341719387608615076967694316341322690162298823310703225308696502003434825325072202718954851275810452347412183105938377361378652723642677685338499658870015544763958499648940654593531199280565065624168591798829305883268348535892882913784508800482095806054152859222515837096048885280824646531669972256963730107921831121152815542480104662154227904930060112179779217567163144786813921059150722592736490418466496414234655095752344825050221962118466574458061743444943131364898143625967878991391281234978693517960951101614600286916095853492173273254233960851060880870269134169750553910525834919909461669606124814092873452303141439362745876935025075823728286235596674998563711637647330761712217976662691208367722082376031255667161564428817278429167514100864406649911245030002673658645066228552096656336250849364068647372580374469274173072640989712743197529046735917200246024186602051289690876368515326296990937725891053802244649517298420990633995298790784180631087036163056667833759832893705160574484627540593360973442369307693990474730910978710264393910480902725792024600827303874367611593550689721217715704231388428082952348901872032152213742172022430481037215126922740224638582421583966873364501530205503553365461170619500435311951394885688421891626883233966898395085837105962374441852000386290352047621148694447156234161118836195786751878776360095060753151216320785604830135079124370532596905292003267846279659319898172740329683882900905879697349230058911679487561607207834158912463210682511673409293954302517952432466032792122969922675522861604791706250329763733717881994126189560710048473799279375526695554776222745905048682185466472496316345140005501629435477675414564323133422403866256128858183846368341328925023472729903539368147414079642510283086306013943828437099937126158689296478004333609201193337682577609392361719808221122214328919684941628189672330055889906443203491216841353843419808605897230849366202948257622796792508021873498724886224895900481149405738973051787538747757265462191602016415255643724850139400544121022601663120266001364480025798094464328854294233079078518040264679094093127066028335119145316721751770145716243578782520055158351831510937431556254241130968238356761306979638704971796844973606741233477357285006103200919015065526329880209354776258821597423894276077672565132091294128986770333865410862550657880298049964044276985878316738611152822905620757773783795042918729647664409993901158711054062565278904036879001403596421498422154634454729225397705801639340610811876824766392568971757184096389501873214633075969085184944152047898373440296655882123195294069713259253296465230883401887054084388998037621494860265349462691496928920926177919916606090360263708734595394218629893489933891939409265424337958415305305299180919766934492175139218306067035286768968018329589844121472793945561823605598535013039608525275713539673307068880495463251061310855703697070833198516612789194831908966887068635238972048303380510612921929386076821482466788109103675360213763809199648258234700886129957319258863032782781195220298224312707682346135551528918680687778318797878562898934808347172617386333387094263186025321671568366086649210475648227845262190845721460019256603135076017593673792637120531145259211905928744820368359872169788873967400813967825080833575452687255252764060929612468396932564818518630957468217589620711322377721639470799886599028030848680776078857951422586043598412847414441541285323225981871428248826812473767938174563819285192886678773883637267187050776402825962615460992455600350710561325574326842970426112467770589570028714743904565135802521276652462900302811743027849503387076939720815502368052057912875331048094457083779739823190690662028102459802359672368263376084377504491841505149961927297435913012923428455829656663456735227251461322699892288987815116452301579668695731616215473669383185151820234921186031492472153549076832157863517221874910135377399262467785050439977145215969273361013228505984569137970470977327489195357431228528350857587889042654553275470398824404359842201928380157502028607110860435081685923360363972642349879551889788440709191696859839981781889080092435049459103261307940939385189926811856482338633930122127843868415331600870452519863656627055334050903281978158482314170934691200763381650121733650413244774255293418546008863197091429691150523854097008658551312688490799391441260206633570123809855590172149362528896911065997142556432513136395350982569239879752947715032692923561932124314037806859756655720433319630592070200626367402665755921420869016674060862171606837426217316152317346250722537179895406222226350872303052373781492568976468867092077525085496013405916013420867453458456506215888051249106649336376458970874142956034692383135929404981143261938979769259765607028139839262123978843084384385608438148700376769076802282335472568557691567863748763384268739809467814628113559006659520382442396459644190415100256348112351083037201631203425568687192144868089633342924008256750395904651900135051716266955496763846577188929310559783620302216827677806923178253358913297904705165158048952683842564469689297734601424183865932006169591019774486112535826787799185181486408651418087195670263000177856377063472926163236524117897858554884931734457675517013306661862688900627060670562014591038255871246195073241564919659474169120033076462528479291974373205708514818394236407964359096117905056105243446799669497447143010427853756974294839660493214667663591448136448546819650670444054892705342685526499449960714826635781959028264075900933290978218783984276496457999397532374464746453800159231154189441819733026409143717301352073258052936872313997108376009644193200914604647067173722324900252767080959590756680659638204016180182754012836780086708087842038520327285582293560293236378105490836478605797054429581237556148457809627756700657694853375843873068421389101915667021470354653415295600980824910715564955204768858685364966879296466687063082085676893490231917186160134872104830344776891468502858249309582593179166584434292411714859101662830980341489936214279165004426456609032710330312707248546833860326899247447050900376244806395953157587699475331737740360499250322389369172405905999595104717292395298266729000001440386871021917900771940085067440733393178289165647506323495365513159478836112232131557111023116980810363931146771871342256274419533177701621181414224394864613788450448804322938198157486598470081739044250150843575588572729728475297829237516520323085158895089890551599292207859302986287968936615321381578148619500083679230312588309888270937043043479989428122616701503277826698058663378333437527196623234230754490941335974452458581875975102405031961437032650432028586157175340408709708379056251279641872435730269456264084076043865895429211846127045803026971322026130433485849024760903667881857897666605323164401363520892245720633996723824699769094667151496622106664071365313028921445219889743520242658615609572364348182143281416426380624782319884516250362694446552347307869874082132016901980927630618520023407640577721996197769369941273394835364777429028357011308647378635193541261013642725482325166137853318070060088811227127266999822817411144820447129006567344869364775739840739464079586901417082965011748994671399282146361833131761139270462622400761170010750114813512824323895540077572974361293384917730309274563299277436155244427468265645078981174706796796973422472119574220033977749375650754813677584826973967049211450382406255799509651538526600090342370421894054775494867916755993533668779782275204559111001602040416300477664504754008145181795244772016730473318902277384393429980181661984689553692063605711867231299554473716901619845315673219645710558477659505002929135040025368642013919855017500056491118075365742941563060389344390476778370229091847044361940540792525620188977774696622072409273431791464840408186898249815920950058882905985701010733882625602514511658827515347268469380128097390869117815373225594521856689089919897063487706742685499319102193450542875619086293497785023150937365953949194718137379422009260399913243816783381295078597958335094162233675825725576210275107768273008796393324873627824178492661752333772586744863837736407565944816065094830156440128969171911919991738626445576919558277067351359167061230945780955735086649898617208740851217795472780038254288097633769788581825734779860182628923515105106613149994220179981001529401412282610660522924448850794597487451167473139970272713474952074368076611239208030792096053655628945272061592651323812866471482440760815205028463542868926141620044343022609431158825344948465353393969060165528352467759294151713575836388686563268676304178543548277043749435578489570367175639819704330652800913743578169277126476856559337613932869278657839564193716175333053424153326844148214353200038545419807966281476186691873126234416166540022286116188536530850485276627263711343929048886342061502477687391365987571787675461692137949172945325914296811359155803812535469258543233903803019198287834304060703656577220686697011590015874110252418677154513175831046438327158279921950186189609023432829682820952851136931484679857833741352102902110874321161876858855843010774232532480552834310963565895396634713176478648563631785420228881616377840044921341202771792326093354203711068328818511120662096957243035584236708810670261473173035323638763104235996387458424361804556573891611732870231853355688709434162415476677870707574806357610733788544319632340462908640823214104630280560038287394892033190454552995497765331663899352015892839807974886188436566378239148191177771720936950920286429236364985960990127958366783585306674219905964290439974511148303299221836059240787780026721237786259287725524879509529793168896659938621235004741486218402044323920284505893377447443048994470357435620873455934085226723493446676465226542468452044842600537818516853814353024416139445711811021168374904168917541170253221403376701633725589976863834798329955096449564196018438197850472031038376710473982101827612037134978723240918039552169629890870063873496538315874668181492903320135712942035206332845238568499974586616867865162441515784622620891667690474923493146587462316603859119035212131357905372490138359532235805806432235955924826388585938987579886366453091380754840904637707795710646510613465715796194861872643018277975647372929233201112068461177803239835813110086528347217493200188613544628967297710371735332675459901451977036533985333157562077173248484765529337748475479874328600025004885930575208465876299287564537594302390504476202964809431863114626281445298395067835319714541408421243521737314640120858256826946569264538060536634321269036243638362268095733127529467851779991254594235415899849588571821347088957864511324028247452271467840566480089323126222198662271043711610254635570082794807814505049755772628804064679362934308848510217496799962833526287511183042523184349076269661056203969057222763507378073789326275800870057867562347089458428985708753337399599990178145364720598488473255206898262642995729406093550102252825590425388483146961585186939453386170230012025934044182233949326659109808732919111204143899526049017927563045382462656130137922994133503857985325564476096856531434304667739110915803995182290656715428914616356266644830871760190048803241880096289553180249432321393566239684864502361904758087915590908767757848720501156756964288265023392072441955425706777953318521082166414084858444000768960979614196353049135534834195911785918426931773406905722388503395737182165181376939493037237499644508140367602401599103609017239017537102278327806061843171552729121455664581149568150025771132142435814953788936475086362736265026008380772960714278212155549059007994233321869457309834026073796608802295755857936661461868949212942961484531026698343946323890638816247846850420260506728563586323322604400873352035410164720144614201301438996556632378586403501797783152500572728215416047030244692320160695346718060178689088106320537885166997514352764740497128746306314448107949296191713597125087788423787822093539096594356850260477814024921678369949293491655693542889569127981245517548929397556610421027796413999719225448843900455285410900607626908492599895362859478221048052957256709032027248294960300154340576305088087464355381495561343038077860256458991649787552969725188095586573833612884690345592595943472717021923893788053679997785272628611969868619905475998873490564542885160440209804357197168623864482783347627960781526032704003089585297163891069050093808831741672237223124913825760143550382367206569375788467660770883546566020627203943305488722053892060932517030569320324067719026726494468521262190065114395801794446540112888123944937217513607097092867006105934773958977967965358911233398783739233722317380411874481711288700005379289508294879035127044627441617671156597840577019829740661457816974861856427711375162772662009528270811648437720573894194213835710949814539945057877752157363540672925756676631108403879194832841652059223507446856665236657083366645365407749373459103600245475235811775735591158503383998900032852625325030029974887261910451752519731676120560966921941195532244746351499101873775025835149358249819784175125407871963921634023960622213245110290819581728875528108572695599457699099850457831281091079760869314542769492785413710957752569550113594168593644984225841631949656759392101915890576278418502391553643701896261892310053405593599967731469488613607050096659619085455178748753477830862133655040219044045164406547496116835023996405690093385674732265119731072389290270057915062769827802776040247774396968173226357763357170421748559724368605335165457186514292621708190361746710276898076787140054123021689878073169219834211948937390479137596717324465392832780859780897165951138812383421641126227067054494201036618021988726159435717389936018822240289424492472453851897678223909526585654663640672958631877588454894025439914610076043019103868676093362034667874442773091371942018324489245914553523017393114611310029460943647002872046156697828596777359515209744220722801089942432562768035024334438975970315683659776977377305955691111048750448532602967068740398392670535677458655010448212811689775511064505685462091521672514097077288826954476478119608235538150997349405236560740085123816917034247542616171647060719737841680870240369184463533549887767805270814771255107144889024944534500587203487695132061202798625767636907485359059804324497634535229067095785816140922900008636443889464693585505579205560485349751953309566037195021509270508256472438200170355667000493266910640174807452865955176838788567785603327166922367199590825876647217617478542922749146216782129216290549072655349155648705268583410729082520635701441204603537426032317463554349763276684978736255838705900890864453239249056193851494818975634133840000161532083777396977340413866317077236788463757235902527099634396807183626613987461668977381012818810874796871685098509601843827725901355582826003250883774573085143983277731508369219205958790314297858995818562721510672578682799113480805279364302118662702682060299140515355234278029433468240251152691556787333937626661640964930874747336382850942818250647845868751977357352764318618617445711514877168722686638323025786022602578507525691097605909446430416612389880600999259563057920072615907185219999594976818711458678972280391032738484993216368542677333059439927079845667710273855734008221350242554653227069144704035732704021463835167546041954731665749498570752813696280196736833891369621023485812838837844219710194932520798096420287712163622322158782916170437565176508288248361161600636961474524466432874822679889255554550618566807911178297020218227976115564274402881508222238267489317233499653581975686551895513620003925655761234649806933585073558862472437308792493841728748201237047497414280590723916566476526853877222569579934553111611165829117046149869772333807201335660567714640778921646491046199267928127442717323398054551660944497885766457083757379242478712196417092608313171066837699748662409137732238205447387319687900354384021370997061209697856564158960900706261111371901606909288126280279015421196396236085441108454528088816363813387952246183603478397970112622714998628351768723983797514446577866005592000782673127696149085411145061404796098960111147545875736514368386784110211026049600452825468434838683739369012800824455678103810237305071449710923811268479742190046530395286774259414331818661208803072447387313767218295658459431460154656632218847740873282262102083758637113458152902101844426924097202091847212157116493426176940330273928400902359072736684762740726288418528219969432695926866168020835554568064329097920694193125191535898183514777917434427004718526121019862460563318642432563568127342709538621963614575077330894317088087831545914048176288899776184408401132404044397486716273053357666487511916595690644872528235115863984252957351157296327342683624838774325715194923636974021548233523766010214797077845813816411938835935052740187740070887113880082844830961436138765293395478618245949219975339151944984777181501766511615552385400255307753810188598671849014726468722162794820977764354582800154700236611935852018696669157183006012625117197483624861419852571006407326908294124872178663916329386889501206720462843211735418471097369904957109397494865133076338824783162154322690933802977664881243195124231251699901032384477167432737517523768217371017683804827742413512705954502568342706128814668840343051544279719760453042072710042223466555523014879421837713298859858259542546709147125819235835657476040273849786388460529765820429540845339867945149437523752076047791595576190576669235410625222535620698658861386447038903269036738086137436520712513021001735811693228013820943087015379873402534343588398290904885987022571371658406885082096694092753735498388674834271155904787506922481870824257769821735827626105551578161074428817637136990940803735515635852779579501398285353741209791316668040097017012192624152720563600965806682497952053976527892079396196723726951640701086421951566076275632951400687556629390620059161827127521029549606898650996891031683034533241984389543066801864438996878828780247347482032403569806483493223001786487016249844853965509454371268397386833414615028054950614982464324827881940437237514217197744845210073830566326104666182758450256576990665039450238327694908114661459663163947875751592387815836568663795114012795542500545704914761075843754041900384807914212944207964106974335833134573793555006213715722883430365300094121417740013825924850345589364451662562762934557324665059668877347669576515663990041186257023105746621530884758897136570848768272155324985254309198051280579608584616241008349122264539214927767918810909977151787479879666092125799338941285336044758243015782478730922467119362593498363196767722880416165124900170833390313471935232027726108356618166465720613540784494508329877761550448642621343759192359381358436596394766531585759217244849907775639630846904371536233272685372747111895919056457675955614965271864979347622661902932234252248244621555671514735381068611088052483282555149761283678515961562165882230841108608057648378635279616163555883354888013684871665977060478890663289088007114247345608713477834542079592774332051886972704792500527560356938573086581187665262169644557334311015096581435358371869242537070987938523886850980829680000054110818692203967911273247981192182573484598004956056360144515410452293911830091660420125482891461877053364398740821871929255683544807942946171142917421967406892883248913862575846217214408104607783315040707496800436504350372836246937559006080850275065146553006844243874678300694823264236683897510598936120196565970594209015211738938953354671300324966275193071164803164225277463065720904317724606462012615400158235667592788743364346652842191859496171829491517523563300312301844768743495140440525038277883787430541479080559131040524196593889166277721688114589909035810876104125664175196369526068667970308976146558235300674051229062344213271157462909294366228726960038410712531538119957893586510645206622943205197280114225205216831635472183891556742362904484147565378370898926911489592092099928839954375345554984564558982441705567545192711939961615659485307612396917354250133234779854264317417689274689491594705618879877047249858187249127327857677701316136362495226803427574135638330515942767551299658272488466652689424571569993351398443203813535738113760885713194873296484575774503958093541304478271038735302206494669857128820472185030432710710294070542965517155438584464972397752183984382808866127947026347028003274892427451261675135152105702426573707562125431141118490603830265517509623257231668983754445227986448577460409800078325680221050053988676617529721889092634848636598430895207663398402237942775891286304726524031351260045865506357486790729450964672962319723453342577370623523569187768138867584041738423345491068586623726672329666809429772088305285505209766542078382875192395732053208680443921129034493112390785375613921169531609160229195901313411088222159685495640975108288086362046795737930907961167877285581098860375918149367370942409831759646976684691116938342133768793909468412771902244474792337168522802236673039706652062032296687251110942468859478890276125971336742658577533165841519190668565807908864552731988664812494819580986235651815104755815119529541003929918260445747338197652454613357862486203905920906728740189862276371191460238886533771613229147115635195484569835905269943052110912789825236916587377616295749871067564156936849851109043800496123853997320297120273960946061824923308962050394216239596238702565884293265508648215253494524889161727067573932605389163135739584597272979655867097753978491963890015149024901158130070336986404672564075490490118855881872074689016557291497024242270764446448327088959022451115586003280356325894399747649475493054100179000661418083079081819432551453042187206375729577120766099620595092084668787621193189238371840792575106557894537617554754582333770783310059667286430624110652543115628369309470848334123823249613267434078829214351498858121780587507417879014493375120261974747306562955850032909739121524209695943515076565751479141214144144026104653720983431914983545710077550186217447992908886737821805458872311480528666588438222810352146328652357594005847922384916406004491189891027722105166243575901288075413123062622525388017571458291970775424127612520829090121580593121876994320004678848596825814373230569266824136275897564201631995240319220449531601001653945436513519852515480101415338204974296912272076113016475594172633297178776671952079518831109480633428252809015367577486148499332996598244995382642887009029943576978688805373975458149991317076379668657786156357891189346782733089714407474713266955529280526927228334197962516590086343824217258879839012806386294358472077052272334742500342031598409911682170502253690255027187268739663434637894967420827141761894199962525007649333481646193672235827870735214238221713953459568021175241934737881565989350489326373125211719494845414656369584982847924467282032630122715618018820567716204327742298569794012057078909136295028182851345715266271398676809925601715820663839856299445594352642224401304780565293899730139410235814296219077948840880186039095319202904607592164914204972889520305854662849732205351936629875824211207394545698502638994594113903934800004842668244161649474878922192871030684597816243107041136221660717221970349180392997984927350737357781599209247238487436916534339857215950258615013860199908613392167528249627046745155764014344943256708922965956952729584843035755699182435980120215857542872001649238395011034357026495828055456059245252019957814515375763792751735840914254529077010494270629253327034809765927241201817661706825358670764050873170570431159063529897923851771517019760979174206086437204909316053685882731209375318665337144998030964347043902038130451528496954963376768743803188592770028768750400857340751565536400620570370980950785304214951783948608362330466281115181118911730724528623645962929535514931426359132720463072469340938736219383758787305555131990912120208501248318663419523117008475050643985942154323547785564467944937423725692308704746741515986715532242718142515420993316973226866769689078913497669197058726835523390217203028488333053946486108508968313096969468961089640656605367916076431801795173978311689570416901802394134864875177252937222767664449846391862394501572382095225802627577114674269559575240424420085246039970801504660898790094532325735899007459452262129162651192352685811422585364537453175271272147875644425699971818788986279397453872078914733714368958806207657088101584261364685804221456459759368144000184951338777889465889255346992446744456802148560292205108164357926879071350558601668737151736828419375942975215865006594103922989548834829302504577416777521415505195686658960806460534116804337772522469242335795269498060671408783591867621826549005560800081338323132770744382648494455645760870764659395374735413537849631797246360552509350331433694544706659990921339195961500828276055518646296664065070104665936444293552380581187231144181306620055101809535202025144852960253367653784548819350738002564477135453298832264575253371290283868975048117704324541783981634950677593815134400424989609770191076416835699724421555275852276405277355724530098303885537308512184590669924101730325034549418948651023281528501025396574287817488846295162558316118735244768265434264988860013280682270655472424615293266498176401202854038294777391628776453306214765798370142372545415195990364467039245386885201416751552771124318100903743764445487265380920446877956964517702269468998329424958395177720882952318603024962862103772247761375857778513170010088799001477320844238044503434539849364838866176028496805438051202587172729536320646152535463044713864731547070404587302309634289884662543578944762482301560248346212763161821873998033215322670561841371949196398394507664386904682977744991612141667167374776160189665547222280824094841060282490473948881484254669974039079155256576554246747504205668551643754407492567943430890979184585415982221899163196747227736661315637897793748004953499474055049041177962253023125989377854434696235578191389700910439181378026434411247510420665204078019811127907956796073824901666293837065055584724849923213802413952539968501627076986641416012168646485881079370468830261973362781393937027074432037538391019681529761910928767917885938222616814085927821704417917092996135722634951002001731331770079414592057764220665305541048514955103492600061301130834524362259397296999323417129306206094582427772757594601550608046614438411397342014658630727503143156986983350416739766395748272669811850161532837635186558265130490844958784112818360577385940984327504305473300629513855271666185640583233477086890884049270767498797423214913875676769891474318656749451585024608641223923616760741207449088203364692324468885639526657421842324944089729165301947541231749014906774391578268777233277846415412095799410657188383492413422354046112047578353185790013882057210748807141681350117757188283864855633704387447800803962934798142843930957437260051761670178133621554867187583948251447911972567001673497537613920363587801376797974934479513362154451485044961074008662732748002333662276306618147373813316474987698584116967376309093681369813313328228213934567556473942527069125978862899767205759819561906356395063062111690228077729435498370223421514189135981753397414256602445528532152844108604995424649089622116610631523531828079353959077106660741969113002431667761659306716109354195120498788869998901222363091981285652070667145175245029843954650709091049663449671651143855030909565752961185142722333898297483608806348000152770909656488762236211533781858755097891851503422550929611889136525391828764278771705715133320787634420178500443862480285021056354537331035801281877541158263803696724372216046652495354078145410603276823566824678599481472230574833428921421425061745809137256236858112570725103882356483113442245655664870576530976034876361602886476431290747698997022535416857552413364724745650847371867188487481930520037453676618450539124831049212116468966357731608292992474049301662929705315197113050549850241527717143355331298368934633180008783736731848048777173312834873627238135903202133578022283630448874080569505209363576210616650582805909130805517400625393609897773049616501983639714621092056326867017698869178360056354629292620679289402720830646103111387977318868594633110510191756115637698226194496294741235990413962558173919042345587388597574011359256397163290115633325447216772217630727143614369073752057605828647223865217218748332073370100023299196399040967658331596133773067541230294049707509637400876244729857609222413201791535090161960519990843868192615194318988347988021207828943333773868153880514807562385734563616935646431819564234778105177322908963653993979962199377686787715701769304171687578149706601206515068092230833957375277884595574351265107843598491146098812296651623889617199155062972572958852573173104867748557148920047089402207912513497779984407535772076999858744693452219430664589108467768711777851082075880206957172090346141364289777005649302955277592870080999570927523906232496193501532005731775309384700359515474274532068895400644490919953449034848074070310338454469747949086894029013676554814793069393222938216005972759347891009487019766328036241876411748279029351678481913664599628584031871339241323906160579150951033622932342276127789966458892017734596351387812774609986758627866278633804728465434106825934468311613319474391609709595423164857463898822410363398309566863612403573973788414219781069997985809384365022915943712439154226774093086130032640064345545028067118248752931778506299454538267551164476141255201812699573939028215125619288027281128246512039289974162845896289957774825709569291125069653987238689149177764017570152359122986769119139750190582234121954588975656078358402718585724388557128857769496700898369516153723979381382912455736525342554878772007079027180336090121551807248254130627892254564666076875880081500480105317756989146426564812197671013918511235903316266243990565014504093205872875321911057692617772900058877728281686505160820467684159223298124123198254767374250490969773240537821695272929364961381670607131353958597445592990707887632044485978514838570746056621048640622055766877416216836636926367218326956651302730010171445616134052761768933973486069450926417870585224093435587457154935944883059458555255388562039482053414605520808083851094032291453579263121182463288965865074381188099094110286954736307924783853862527362495917348526864707785582112629540572714271167753200712452672675269466603763229753130061719746299284644718326716070638751939869311462057982112561155628210519236639552436079610291983785015618414552753211627693451765532131319809353562186967563002897242006875373380587756763830837145858943150712954224077479416461297532687601028625770137232511716536932502548578286632114549830747134428846651677358760942929957593784006055335773267651988217086779179151475858372730311064690723907612313711943057324526445143824795452554964002242676636921286269659035517982983583473283317882285529005530843424083698145500513116706096285437271413344716197322087669126787478211472696134004828235322602799987728524956803510244173726850900644940520949854170013461119346284803923974995064534036334043112256215071742977588648044699404355482742396431943513037068400590419758735681041297856797273284755575454561029900481213464883315761762928552491464673687728325994456490506125354163254794514525092509662773356681131964553502196181319793390705347385167710451215324078197538950695861387921117663486308006508708200473082539643724824022553819927594256200184667956214752610829491266224494085412984257072968671739101769558405752645303861854703888714961169546550676188907838632989028297219782765782755637064400775014148751550426963441654603502634710494477145737848655202775033282944454794569114450186397547994464858363605019495759432395872576876815810633246125793338206618430959176060468299811493193771962997852986658413793147510610478219989177040614128528965962250916236777857820505990365855850674066024194873699717913854136682671927587107596891747080663051247243586211009678769545071235417820787320910062196660868517371108152571145529637636317070862382557889163948728231838657410052002960167726515553505003497399849127903763870436965483141496962141930252969759836286048716316946082802502264030810590273807691288890074703256310912509492710400742678102066719148060543970947638871826030954901366425605093458629759355544555771549596023973469799652765007679311187957544888153489394099490856899288617840326564039168232507076826995307488611573423184032283671788760601632893429694231517756705117415890332673329126131312057844837058167446259333921726908864964023766652972273883481690367633035658973024071846604433903512993439376362318990579257416170762311612019086024905991452621845892511166972543455390454178025282091600327167060491244251478226178679898376701150457556695198522267901285046695431172799213977307179341337354833982023649533148583759818703448881213994128165596734874395749578834998080659833404939015765978558147363753187682702710614304903576227857864991603502105283333786876411492119640098443925288267081365509066774005379917125490625485581408249296135897487208874575078969129801189200825696135100791059034890072730813710871677965850878073278866511824552413818447362200818510162208881459524157020713777261846282511396305486344472935834359861804052852872322076980227382401517706682653783505553895851755312192107387041578120787404450136317757987267572291115339247317909883896285263316255884458743059926257893815127407550784892262971407081273128765180761757917230090700809560456376576965046404319130057059877472085018691215320948137892376494481227924259050686188108670048797322333711708562289196355240055559127056554526105153320686391689900465899830406052289493689749719155374565399571599269215448402238708040561003291740328333491656054700404694266821768496097224103676841669213957169810147786342290024688246891860780720488528154973694570967708306942689221447011258494506788556532794494127733811730652107732399409982995640098079061622267569805778645029712143585524141201714033090763458180239454805463101143254088832197313504522378769525658028221125785679334219518525974865688764884792164457235413083695966135349023782688914153811348709357076445495888403754290484288650174561722942167539343089613149608081677580438772233053497020043834985910046355686264191978450327372323086866851681933144103371939213857813829566019927960445473961298808189743040938399197515155649667916218473483698870616888952132326712025942918749110923799052444870270658697298022929870831949900609245725969846357291879808620204437688816819174044445624127967317290534477400491175222363262900823078841055390791614197534777991096103816519818640864159455997583758050449707959612270987925520362673880506254581090643813121267277965533432014140201821089795590951694691366613463424488588992669715215388243947520598275091324274675188434063197704814410004400856231680201396355478503707258439128019337925371096707308699227221139197532336331121656072801323790227472475451772466563302226691082524253949118569953725165793495099981176059829072479126236278652508998050404485749842924087608420477765531591867092597539263649498363537915064602533256947379516411063569737536458613204618947731580942341351721166511080042232388700666867161551677463635425281660504286977559271538867567309452323223607321280794236662224340229004740320222762635754314320013450938738080356552343206632739801021809797250832127515754798744637174092841428113711167318132587030481605153605921601397358748090905244139779802903112623924902421974688233009710495503892654089593797931383948305128503741240992892085126743537401829969821949620084531555678676314307648225012044691857076533994773243365909758843078219873501714066363454762447215680422345453033934535685324917973059221450273772807498344830714337115902596275328813288959834788431270735194426697604463613818623137070695265527707191928215044887932227675142141303333223831392258430645759036864373006754989814967443004069866862703760438163720366503283563956878006392776001288989470117313751129269459462863975129362927090183726357135279007225814299105429705044346890709318799159920199059639509022569360361852227701567260215893452845512721067011452294208651019919989626967538284404513064616868935261782041449767109876990476665483636175905653061415855652776221717661404433660201369859101149966703577674988657479679327664888160949777489791793849046645739996038474008709865797361832413132532042365369761084856328977365296596474329409270399852693741596028299841016124481088819565947523485703647068477312642840452779970424275172954283113080583406909698121103262336200368712167315904744137190913646179244176049200375387518436493700975550014718239749240409404688366151845205198208286195561575619414531211672942950862089489382528979005004358324910887682303650014510226173963593433391182439761449541734548633781214095699837094126852088594118010238843111174887400418964926166072085906138984046338025893012855150004372674647212757554036637747331235815642449224408382425025017390930636209427789627619691395071505099651114935720171642660547783204572854568380494561409144766206950244180155248578300668587446725601102313892945898527252020844170518601956327336428544322746254919844920038404087689388096476624041662985844256398360340391032714963898086693429900008001584592215620651275346387804196270957830700089351445098917333101537549975732449852905637394093213089498404604276842900249714858117199922950270556524796993684425891343331238678573547476309094943311001760437032153315742403417892895887782031644559991655841037368004579301522215247246815695340894203239955202614488472795353572150101294961224276580657279430357252411567392114769948959277738269757490442414334975018386867401475744268952930678192303977226503963419229082896033784341992497514030169926467981612516955201851230664503899102363328089819144376527076515212435477066202243646088559744116471790827389336173060830488628739123422146878734920959161442223548552408099946107838455282597286735037511946536199834282953588587853469499934797278193154558400597668511260825346283539831108763662665359858982198867072530612669785977152855818401821634609703445802267590460570868481870847385383871191738443072816464254974819914607955374136658588779194748415477529958683982176389346735058472808135819470416282247657998591547299652564450037496955572572585846113461828553838736471275538771903664514998463932656417251294262301477994062252621313368994147333322215150670436514539285933755912647354981291322696134240925078618595882797927066195184756968275230237097558419032773478437262398776528212075010535212251061127160764421381827966179336028364659797418696762470463517720299899242677735623869942246738167676822620293192001205863209200158172180478047960377246955231444566863125453192886224223126867230928778296319347937279312576768295794688853567587901017683007690301307603608477144358162915626483433125729035478172680729707570470360060188775530262095090437736966220639102434734293737085433463120268361714499672257423362441168203211632130997396084961400391090698317244409498354856999312452746073209952542235714839004612816037021573266586516683282439248583464037458323211483729971954511535953878591095431808297028070080964230082534138484316686821425904407046481667287166541085414477193903661788925489974280869008105156425921963690953576607245561815017583744649150117065581740096165924033906394053385610535313443594422083825393544724442653621726582448506834111696082228259749340863529929968378161204028594699954393605916812033460756776657714272943637727941442539883257428224226661351459236767578389175915499165438991749996548320497474954786378627024817138541093102715903303081285134552767064848282363088010285156916291081908168190652498127781032089696040235833207358862977362039771779323620395971002196413926718358723615797137758061782487904782895993597815433446124169236404467347558081835831460023148865747910620500642743001039706886876421886929089157709798417118048415324799129489370607571552443162417203564405915955421126065627546289795467343049288170236009213331929390244803042655343099690294712747073457849155892251591767422043777009555633097172127824906404048206157182288156210673296458271623831267238349398750726299568764740032407544855150384739180307617260293470534368807859057343613168924699564057770668631240665362605133291354809882461890938914218811644920978668505364638660007550229340699962467324055286381585523270688764499376573247097920904213386929182022661806693685393658645717967415062353659173974424198937363244570010264215729002319923964501412165033931802189753831462294380543303210328762214872355406976890848829498464192454295348324806035147051758489117588596360659601649437005815444347228307631016836663494164411180968172348847338966037406686478516086455190007613884888333500547430414782704569931153487187727832489582667966726313008703139022454727451677059207776625582912354681706096224743300659525489287770160733712210844504526164102646155306752412384546846752647004035178282985464184420081161705779833708021461133590449257991265321987617014954146994916097542995200791400840738346281507372649908413267397277164766638175324875909192989756048259792137640555611082338393933870558808038361536398816830312680278597602650322508736191492495112681340676659425226611975222105829136648080559581299208894853869787514402879858127556651590854861139131454393865064433749721319979095880442748930057416988182467540384925178311184851732298448925805554801665650536499968690938859748983888199831731534239945924448241269347177581623297161030938562270927561313214733047505092712705605494850660642162583388490467580863325011599047104737046561950189809096603807603795583548621821570385950798821996706618045912333532340808291021667374203626328670165441126549254185606088437507346527158982841299528283264904864968289005592588468963545869492676810410234168536599109292603303787597667132305045596493585648127135531805857385501421189103370290094777100658776367847876261497772229837814073154277722298209203153348544331349246503918449742309817307757479819176501711382003031129874200103980206573269546652935395612048114572893306882864422447337802410569054072690525927617392627368000635886712580718020225736358123782293084294135619362022009771813978523103040111874172330223424663045712971550263829280712995973236736182263739195216950368782213948703013487226724192240976063747812242778292893345278726480555237115595782312310293963751190645554530803195222870558709348238767269263002153291185841900716873351265482702601823277891406836178222204781244449859048157894890121864090275397536084314644378018826913558777218688619190412370709591915010910121939826674983817049511441164041434268163125425527387459392816642083714856332942665514993156532826199791174038699084243970402175472399779158721714577709286968378843930916247226617459966194288503998199872550525134079243744756310692974617767943645120094459882755555809742709295209040366662264987165860344749586463882167286745507946977852582720788001113467881673069948403715406420590420613892156729482473536514061552326885677014547721137192457468678972948855353459046417285761680459199342713178234833484514803678127559584159313358589387801155547331531043336035646069488666845338861120368254985083918617948004452766744443871610093647883950473047827997061776002306523501147682349087344054392837472834553134615836611267689273720573626241112923451704058637154137750102917184097185686132071673972261535332505317287131971712762983212686342397318686242567621274274551712634501161332300461849977492066266066006655347666348667498543249786181104372036844940053145979322905659618944551615280578251892221635199531423345522049698275177097621961011122047156670493638931138174284546835455318208234806269118790992891166479811232544233946987890738258689630974484685038896354202622527701470775165772481570443463950882803637101665395663656749166812785924065110009778809260469554844652053245299412889387743940852659209828831947845918957587905789794426880911317990602174471907771493582296243823982072477438993210911959389730839486978766455686119694708428430645422241643550109223471643768256924550070557904673722155493452716248314800874582513634609108690541918927321186900101914141198238068453863618051079330350723857064822934717804796545183054739500267862551789226306480254420605952971174149780516204581914834417998316645776315414303794117390938749632904537294535720589733403802177185082488375719784305448724514970363447022973002165150460092258221962976691932035954718566090579149331234037068743555523997088885467904754898442262781177397949247009745274381441505977479885627806027365613831288570927240937951846665597237544636884808693717363937663294149674482322930573671582360611063750006130749594563819882920295887767396429095859596314487888558229152204846797719811536398031200015593505065727503153109984582287247031058375720113505101763797325513510062988928524774425276807307488943457960045125289482923869216448605712210243780730444894734901856581978956808358987517974083096617431241763795099556705421331927761075605608034280177744641553990477552196940300777166447757001389453928284659953347357105519361524630600284840058122925609814681037712421326140642025220572160996686530850043715286008779860511146921380125948765920871923147895007264758735765920772662119399216952456432875771108583611354873075381400587036719679629963809632736179695252617059298245877673551949529043594002536486743051361309151371822827367140012041006208513075005086876888052136450734262333254060073463662889985365210651365209332743743509430660578185734035313229559769572192548164358627080592676157897487514054819566856426661664534018174592793973695915236584960606286453603431419831425180089506557913588176866761238810592044441339115820354996775741291319971582536205602712789559813671661173723478767075667441502252814474201981361508017407687294276858918007893482069171558106258593004211426289540960162989585265063010684841069478956415641107173097779483219352965118097093422389814229337494877388224210951989793620932044132680545060508160783712986091695269674859306471820379313694679077767809449367052795046189881229515768504713578130527416584877682520733726710812387259695383673120630691617321183753483820634264379289245450406256680630233694166076675001178755829045931448368420570118837369415606567611114113342735127486321560439868334742031130256796242849748524452974864204509656440150146811783799319005399544819884307667255507973450719102090307441765407514683226774547679079229737911553269525168989277558549004023506249173013990852578699495543741338339711394411082519691507995162272320294852953654471305954504916034425623571942517651721069821781309103853170809690975189442784891833801021276070961681565803076126790613375338648561609090995485151952597731770718084084508381517136073071657859801471565833169897504442917205646098457085129059376118330472552016119883494347797124439477070462342448874690285110909759873742872787158933177951344789182061536648597254158041458422665143107828310897739524867310879228864902094657839979314382736251326802810840819654698816304511761175344392947767385574230526825403052378113444647853932215250685964904610706305185549443695751591847580649870909979696953113841119908248315416874860912382545318503006485509309964841522782038125427471108443541240193615783572876832754673208001742690533102790208002524959431637496132427142768519284631621312633391565658108960851398050633074925875240640921755156303230649408849138871282912949096107312397885052817499323780964129351676624206968732184309260386659914660549691482684152944569207585141778828582993434346626616491006204275227482387058002123039019831247130362492198354747654888163453336676097563603008440367646738840208353752805392866600713914002577937857497259368303065304884413088701067556189642470874190021131471980377511230571214729636306186238091098089624579451340183452104621505265485896374331052398245719043190010396566485996165831578897862892273170840135953430594157789226228683656930191848733311881141775140794282368167761556002060850025471676802940659191200749471120319723384346096472246898810942708605463713304917990399675640610237791266946058032763485511524392908723974328296809061140914298834029844642652224909252912156304749746173860582239668523328087420465088702404250332490644665271332019193157291138011627651711926759058132786922448015014087007730687616258349996293197763953978654682434997373049053917711929353077555552263231034314631921011424635909052394323182466623740419134885520885532874880484531649920783140310654039554447875107995944974519451073372702321219950576748272719976690263789452865025684139271328308321917745163500029590487753962103391349892216854100252794302586112247521885471797889149643194164900105494190961571741087291252577944963309278819563918444176666096203503626187249667130633971351448385420580275298233874195875091924496389317844861804192206640263558190879278450054043561322504254107989587692873650648034149360554909720554895899981674355254822254229156901181510468692172425518761810171945025047488435911670848794561928207778059982347401514270093556651034935472532195137852138239116904584173055586424299275831087891498383464202904612140064647059186244001474468135761816161199591420982868738009309786807275554627665997921023250124952957423814127866005890517534914989846365899500274394726865683061448760030542626946357164999220315175059073856426063594688483812469802808762745436442214540568548358691577243409551407863149249229585466175787837822001841250076869711304299421254957628349373614963401696848337335560826131249654505880452010804908251814652206528499316559684161527048576860996294949073328786325244060576877338723097193517160736742932068854525261831031731233025368419159753772366313266431869586813618576730294830007262191171154302170565625617215719586541490313925047351901666896256403719855297064970543054725848650679679548342598982743974608152569717405144069834566723784949768771910955757159302156908936725969728364801217086992560745306192341855864432789592879196798128109790924324984802144623842193656517049771492643088773696465144886840523895510009009768147275270721234670479098222939077871322635370991278984418467697408922636961118606905156242410014307150195679415748914011861282065188544531301400862099816709011270294994144995062592662014348369066943540909023190796257507095470088931742124704258887801879931860018192613277908581403986570511690906348633105099314549108391669477979072603661014119841614960000179505042960015650612298994927103868618235844083033499272524078522481665396556513920071405994491476998222276771460723538072863586385438101400342033332842366633169732549681681497458961211014646324887243415006945824780166529845353296400436692021489166507824356821030886031937626568974624850163168796846500097599026831633331026764602004381619931630591062407921049906595978523657343866576666492744094871881576031046029069799224505483524259388729893076729957872396712176671911776538950941635580101463044978285084708792621224448188233608874700528874756741531233141723965969643094016971248195056439809244954872137379722174254947975804443501525683490427203013464777390749021641693559650371525672262338873302361509259438716454720144807054532878117817184612665673310719845603212319365739443762758114549179210458210139121177824051217242879512194343225279267429716782180783384519163752033327620551818519666092772839773700828236927193284236016735659348180173445325002830468506479938123969406953641540857428229068403868940015250924549522983596577814280958065987174565981822693370649565259295605062072865498748978626230376569512485412643273571706967516223434757709385392796562695573832387961032653399120681512983259845949845722748013515496106568464712382423509289332405746190926407164062723094694011108192148117322175812939699758300871012625986991873516615098602175932069320646916407441193724646574288376527751699905260944806818724384304704155942158942078171589873724999183106929842464015225346699277142391460217442683413812433554717233576072337425835817416583403833739217619250934967389775983405434089230748669754748773673957726411335283047965366547893698948716488429178823555972838775789999410550955805640712901872846104077535917259069575711859704605165456159639278174397547329642704015731466378300488162004724992198519955418879507954332116126549029163938711035879905866080856762672545372334982766269418864889915129666507837551349553119503964432057662710954067268303616952740230639502484356963725591260016422196838401567033219186839819187936579382443101726235759856094643043088724122006424664521961824967358792829594678301912053996212183445352952688963699047384950939745398714128501551286528726046406137587737349099811261722126692756265251576992705210091581202099755111815881664809223074240624526508713381447841506938564714055016718231972780038786566764846022194844148426788307723802241844099364579199626091435663801560695274242144595641326208605217720357388488611600871190646630241586232080556426023571051354121719918580455127631938175337041846568530799267695414322631641230266370853539980390208587165616089437326889078528698832099707848697664848751182436067310874712520243852340905369306514360814783842428017216372580342004480831742469140626045086430293663990759776924595110867282070073662512918095801920080685428858558079191848418035651210788822325148635684938154110237088332692524877406372751518642503970724617504091119223297290658926619296717661446483654768309220480776874156533367906637968703077006727907013142394968481989075031935836209454507723246421479582918795147904994959216604705947921760833236588837223796855308532161245533514882734988809000325973494202674010082989218094828611627597559317929010904102822893944008161803556219881358511791368370344454854206482408649528563908493782209649113750817077867806036091270732992445497203786746876564090355045956659499940088012594442834570003515066243579829244456308448376562448357754088649354795543683231489091870925555550191048015874163643906584520816752171973795698507495310411436944614825993060050417037951825814394943915509186315304497389016704892861447488646274784263364797099990470835623396331058951144122485021296195321596131391248035036763303682630566344686537184941587077877698556726218520506008188775331961311226358153568955506310801028231091116721254409191758289387939933819400915716223017237432246004734071557379427493298999708511864072707485945883276665188269616148980336785256180833015171868648515301252552143798439431227703303563437269389269887351390741226147886963381126858822295534690707877765095411120874864232674470816474247017043003503682635218216977515435688593874102239290233725365952603461014406099581196487326440978871322649202600544385420214367101263326074889728596933091937296990770892292742593528912780117773198888821456514361383579522820392343518683960368816697255012850488810309577386662949497392086410011691428092801952083882496945893161734466014094576850703841612049351275744453307632580034213154296378390446962545974882648323484075978025785126340627635940314457868855008850240658425630122888984323386058498318716024632363915581656530317467550327522045097797913762305645291879112192699151589715607899450797533829553664553370794987317462074200708370758616865004804286152349304042145995503282886363713085512201648535111961480188502844624311093314472313148580541145462146961794366137708048591928716565859590038891521425612591769517472257341134850523517080019856288328111820490048721788592674250258095054746848317472973675908145362318944728036895783410475014860495713119932534400908167111764066254348711434353202429868346034142647563943653877195102831838502898021521079787767384771187828079651397033245732296059736090392443454936854588513105123931396987077670586621266144477501796288959445483750455937787141080760384863751735896252919306395398618527568643499451480493187361615578114533421611500151901233659637940490350428492382060190335545747959561074568335664307877861086128248055705360047215299694022326786624192320617252418359577766603778997077214339558671062377219334067153531838954468790510880710284477571858914396053104925790759266931029517107723880332670563789244952676239723901353838225287918933100149599362032296654050173804219918053524923631250584737771077508250199904871835693914373201230380527748099181759698300778158298711017041579286411477551892174820496392173773595028576160521900560633236340724315916134188918762977031781737921839004141064485072578016992458297909935152223537164753770618991248877292599871095376507754146534232593568230013900251153700828812561903504659084551109639151360160837187529230186321375925988166116517643427341549716299443903250490909042581889312665711481604825059622285654785807383030107403322120717624318265783284359272532928665540099363646251530212057886452916994296590227980673631980558526790840924015919624566542273353662709452465963083840670301658698089818355209935916223813509258858867835040017851762415307868076228765353534103416246031992120541773401173370277129893762338245851153282941019578286126039798174102830637805009831776598572582101415469510184242594081680166885555586392857200399561044767526103957243071991949705461756453227454300976926292320196587690614438853100884647277760363348169538566992178437765463342467201443563033780520320087192068443932044702855724939733582299531857499889731487226281954693766347944264109881778210381058838279000291791925225883467763976999794780993925326301545827590629400055035304783070822727488029109789877348462142442900776348886546265031213305429799839817509761001087602196927701493085213207103020221284084357517358751596016395935110573534703941783206973301758762121526386152081127094736563689821086013268244972734521353902897868750064523386727376478213306081424800524465108738486244972381856009595328410215416088559829759579009508337197965155089191034231139005734142917490794422067358765028690506086746491512502202660805400601781282614499955843705829860777147249828274529035712630917217787775661616846409489727159351336736485492496045350387269169125387233740224361368618467579016967609299526953980940365533798112308565312308886847318847507553949906470219600383430285473411029161128138076525036446575192650816071324081403971941339799697014438708022548322327304033831728167609043980792427790057429784096411630420047446133486786382904259729967527824359715428952008099077589879354844926327167154311944423958861449778503322557386025153227474629839700888115993069885972714739911735146366052749788022971977621230284947491063035776463991285136710212809927494877959304590259683890147891098755099864467015715310367681563952048352440688304962712084755044158481109924529053576282317467694687051352100599923292894978696013373893570791953089332855962797004132632908946105425335980126901825100842393361928016248558508279573739366194504991501217912837970654258636705704067010452254728363137520595311949344071740753484544464434857047650439087859052736755847562866115539289794871659353788670822475086723313937839622301701177441122961067282525674130185408499281947144312317533733992151558205747964747581150237895099731298750536638472125593590272812934234366653940183750358316589780869696131176045903257827764782656042659347495709117769204380640058103869662422457006661999327361369707215928590345946676980866281076902332924686307759189369683380762271059365713352964084999720432528823187564104036570556188675711281572931073201151071366659502122446249570684601095327265932322885727272589673722675085019121637337212407109943168822605181638834305770194434088787162414988694750712613160458784195017386691468031733582490017423031421542091608507597213163601044167201608141902282930201832826729553875834840400980415411785187431504892812114640041408212349740144185303421911281245876294328807092636785307975765619322284763508888042720105996944704414524675739303304877570642884946889293010129433665712320547048144148326126789840133304922985832412034563635784229895398879700837603813678376162343764613709253946432801496160536248334664610313379965098820829585885716646344796558205614247849085461985958152088892937218128016323648135670115169242114727301447325005275860052204216037220226400423035062931308584708315629054256041295413398440991949944644267639476065813992521542730435909028587351773620196781669756492068836589979232242154323715971881006949362639840411963257609253526150921638088420726398694591033271299927671220048751275304709781302608132542603260603050855646569211303453270601181185803874306337358489537970123330864701093375874780459774986224135477681008941973060821022945830176292540285683488423184213229879596236050678628454878123779047488281331972371053585176693758241449724544936390342719166013366312354558412993509164324744644352824237410496411162150018364656448276533707511679084517994243807012157671204122790411390717210058288972779273469865321520764050559805684688758495242528091168132586814457412875442559389637400186563840918253458430270902638124327748846044422855808202484504702027086482511058448280329314260865985409283905653170136842719239699256821819869618602888876409069582921629562754623585758580303546950157315336706257109738041863582076340573698864945182343775208960426337482749175175470643255892507601246226064434379133416410454808089523039507649447417148609035364042849683026775397794244444371103810785921281934244418159255271134129866525093827014179783164221181523891089003613446667872052716523840215622306293354141844412655946135889841130156970374985194753891322897456306686744937369476678143672723604912866910875326040791186474554644986200853804696353603281215888650008340272750157421896638648454977076149072208093567271140148547536092903635099288676056028744410656768241623925512719411521725828678605420439964195560073940245966493782615082982574905136003747142333591408888737437926651108557541149283424024878068244274490706695402271968930775282723442180420842978070365045889538629469318066566838708380324768063314604735327716171986709977610436804151875801815641937093246888391968839116170131808063715981981982615137471080355323377229188581236671050625816053111235257081566051202432348133047377210156897620293542005785320748816296741857793775430121708724852749549412975693976917701321760340898892663570149061798630732639553905026047203655334038148188354709136229639309795240842293866074383699638434909299451611749037568723600184845307413842491234010350888941360073243864292392760564080383156517213608194742314163814220554305899834860624602467449512516841479586916055166385065318157047290458023602466261201675118938408791804219772762201865248579830986405785202187067416115082477174316515082839952763895262246657628256492448187063897758264579001527489173882035275394942888056641983037098397124286470456341753818273241752995012945189900898957522269965366343547935940313230848914692222868922464833501078237128912728584633970998798612282222445342893072634297143215099123800769207784132443720677782044185223946620711381574620163759286140606156597120002326743461316789418364883878760636704237367547243760077892145770626364859486747920617397004274731537553668640543942880539020387902708816752327622137034509360966039812563091949762677825014710405027844920505933049467997414001955603570588187736864750292275667825160744413064290740192422553268676404566265090201315441637628634658460089079980391811797291639609159509608056733607274822289817037968165650848993407438999942422123939740259128254745880113934587344489833485492085227247329716493884744893852401615674780263980524337926968702675823406771861076904889921022497627509425010240977938856779434287887192951986600169620326984799500883528005377510937337618184415010741044030698662015102941811975408243542220910256265490001062916108240210868075595574558664626066493608957870553686981947679675327209236474112519478099696140450998882117180777465232645980464904217240600907600161192049725065441612140903639794829966521791271798359397644630109017369455347262428259734564859561571133039709271125500329553645090213337569796516083440453378619409144089984349874879349720034314215416192288230653160517176045259967098636951830812119907799355899968356346657548568131323666510755921208087986986265346302412819573311111150724027609712334062243991372388030121013615429420814876010534921075957321036273245424900057440295103354135748666881528388089581652594198523658588540287206398045632497930139576498662542642819542867985423255710849875392668368564337188755170797232023040411238046963365804401654265120272173037038989429156379148889087687936531300867080393162050953957319455235378504334888969672479111872001735492679489532251128967313182818751691213277545998183519528352179973485853898537663650856297432829348920183568169282805777074972725441490276408265703296234914401130385541144421710336990869702161498647704465735872452543520715622182863829751223335116084573274648387569404864655625351729388460519569118791860492990542127258390332187745471152027444282530129351733720237835228759436720016030529773758474396067711143283251776643843650000428954580857478877463670814572098684850046597003394219211545471801979771796090240822553486323695528744159536054400546047786850904854520902975074409510897296774891275352748108388798451542795966605640863831542385892455856923005820684234561108171237628646173583315292363842936327513549293871996544508711310570802938175678067505844886220630975217518887318694164467258768751944971287317135913114357350769476010032418042447435776027220856834963150393455021049588609363527956986405840987604082357762360303090055988036614134379250104251737186378224539539847176492030263158535025905495818826462406634597647487402875068567268235023396680134702462568807740352948217663138142182288320585852502068071420535630404235964898139353676508096159460902057446726772408526078492181526838931996345157939369305249372071148421707022411327817139545491255892186023122993717749202721725916425868044495477395581438386492647787345171623131068875642616934859630352372430654165419121316204754480942055911995187056469508255736994214985859153899361019009258213901624741109612581037625214728520466128803005892295699365609693018174643114714669064576282635515522542154568137581253397901709201403869998665370954908629990702787261524295931140211114473594639216423171551012373315713039776367888915788863419688094812316657803879924367140761489563028345076289566273615706712358441021941364464437502740186331922087932843867266082718093931969779710833428651580461019149974038103637818555219176715360310367452415959875688510690127511272855471359535847512852823142867290800011726469152210851305662744033507263804101459899007811163876308473954375651462145153705033905171002603443545257822224851604727221647528384376221200718552514547419364436467325166772800530969603820889308269424380500832314443968521181814181140256537444126745133079322573820321789274781877403501706055887401441721665170604407130249232429317895648134033540418139502532745759096087052771563453468778855621069788267575311427724258475459840314807284676750535643668054580571185075632122197781864951532473121545290174474752764139271511657401367826148125041925108811144929475963336988538850482106146028922066660904861702592762528636723835046022554110375327749541560757698828841759267180293315532382588534561050325914178291975571627935498024301480953363806869234461307531602921146434993172471892262396272192292515446158306584865884186279875151024990086427965261655701508158082734901624101261818954496105779575305286903895588197906567360798403472535017180174486721250916712103330529745056694565813248333309432278848545209419579371776616325033984043412089969000052146225564127053501370793262030716928240900653667215049425820215576866661658787334976151378437338001113450839621006808690651268106707923834283133607151764757834184634277524825117893001756661908191536132361936266877121219423463112926313755837032362801707730816844241675540421394877545337866683633347412212205912691442476471812880085643998534847661422270303250599688523697581632856525099353106341522406737320873701698116787354650404750981972218268448565900836817928787375055739218726280460101503186609889432289864768806161643011785128134081403680047784776179949928069739901016263800197827280484395504354873468886182226604506366645480294592332103619558545587169209599334094525124973029962047571506170919685133457041661753871409669262880276009953509592378964292012456772207930235747680950511064450636377243817839439844116150116290472069179165288436259078697154998138246182842267439312209800024143716348037320977164066611950292301335740350447740784499748515938975752321615833475718363157588524927843760140098483343457762588792584465284377648815786979651374851881627433898411214661385522442078277714092746418261161049999375554201234227397207730675953811797946541863579166532338384347961741722144245477057116339326382210094698173985639434146287471784715801983401490624879876323777303683913942215266722793034170226969829825406420328029426955159805674079059341408252768393681945094893078961468203091702980023582526367800314522253853671278527576381348387111593441148778335734897724058042653144441365737954002904328821867948282366309500651046594607567805981160326671253756022527841303630536138730721218163912678172440995910553213324584834345821925376825534866144147653913574779442724507969589026893716446676173242041083740456746614886689859551908147343901969457880115260273487100803937999715437973569466159010663958852468874969881894211953188572100589768362847217648326962284372852294180951434304311083187195040894055116305178503257278421416129785480387736024893104579831743545761448928959418146961850184957685820195750936980101349240117912191365339653199357359477962815767262010283995095677615285841711701801561713514167303879239390125640383657479546561491702721756631890906640780795602267171336466974299101906950854724199026667807123989023458998205463812937321839328698732994336590978551610810694563009982019310153885497880855850861729021121275543869081636905682138406411618334489280487777636365465325020683807266739780875573721998499911694789542020255403984784778509542325167797492736990308872547325717424730901583244151763028845703664078480430400240325257285420412237955095940529837529031781005073283046125316295340616446118986449606987951302275307853470176624130480631935864717526047941180666083530897752980955260363258668572605079991396658590354276143297889575621303476209632802562428589860068674635104986687614775929167415860937631794986749063626465212249909411766486017363463249785409268213667430409361364922530118318905540600346389325494840570000981689938369687758422885422028827699925381915035941799861169640074819039159518732153097339716224781120013313326230068599603315369151270480240930354916059822633664214191083872905588546011478018890285966777936526984661307038892299667266225216752946931427352695443571514875728800182649718297247563079554288108366177724849699290987011946115273138243342297706716853995025005697314678356571847100201802718547349148032585187938436289127063526864142616466591244582245702494831553355264281017781301164111203546534086346426156527070392957521494353994865747103124149173316367275455633271343563922610198073576500599522768869547762703058840721961968513335811963072566924816062572838479140563078335912855537881273890899083325299420995408106287601903173610584551184895132662493918675366981543179182476424886429644333460262156946038855070623076883357877762579673481941487678256434052980935950736214562015250273760883456660195304668499932163792034402714850811382081567641815435713687299733395023272972956339382408019430941518469114962243485329815567589343664089826324124094337923783012530249947036389670852025344295523667341516762861918330134020369580340944403875401818542876789617268616250211596119907991232010551476027170363932079926816283256333792449266891177799562064763715745338286762414162672876449464509448867526856082810870463872658431928270477884127422372165849913378052309621307385698893255156017373915866314895917132335263574309955064025624259832116638948940024934104856977962325760418259535960429374080694550646337088943938391529832205028374308218311682917795815141401866207849714366267555641208507936032016288052469908045540385511648738198949461223900537393340245151813911726644731459669161969667466736958131486687978864767195698874029296111919324986192005618494019993838410620846525810152965154327592308738049728295717885329294951969377224673793376372676108179489589066623102564583473034276597104680407698700988021887592507967298402545402378610863416982850134301246864011956444450616546548860721059800209311011848117265813423057884001445134375101242485544068760370552409452419554894489613817612378325069982732106988791574680423312350043792063718210197396748708651247599176152173489798631063714070612636299496036181121759681500996422270794254752371858121006397097344780218262230261842730642152065012366157348198397868544119020519639418500850201130959125051610940317210933925971256076477804852717621619902349537814668280522047536247338482260660060281025539386461277609612265399414295629043460586314095917948741155952112453881239798211711106687966490739532122850675447005021303176444809075387592042203631711900899499653944660152125541152767452916509492162992911412872365378752634785062371835363961711511675377896130510386808813806784247817464664426592084515470578358415460667892549751551930431461642872558783534267259233698886793278982419886027871817299751103881698432125061434906587642669771147126883519565663830667158323360265392004634566653012726109089871125980882616200224417765789032840000553061732900228243357869470682363286891868051587721587059755349414053296397040502461362579122374128544143905956430285479827997611327860503325983705638901690041977346908933804626472967334714123614941846406302027564144763194430775346540711430309793363979772241521943522534623413930219974539047628726779076199161036840425476200233671826746523382459023991515220897799337458840231448413023950920973686348150304193157106677247697529908312969461255583409835877848909110159217710495641296244725064013123910078585124332517443474282817337227769981998875989139820736951266224025685573356276617284213802900806399116247779073561995053106564610623222949778902263476182560104905067305354893637340458948663211969576641277222062087839722862709650914554150043797832614404067155814033472262917463406453929628916329930812955579296026764595893822904236188255863910079780109755321577093192637535845006645872703148373583284873621285090964311576083466271431577548539685194257627237990063324258273041261389817447107874575380267984930665846885822045880683024633902215771678689433085528720393842125678618695817531252028419920696671511671663780393931261058557936711628986681766265004687445826414029998292710226646123685690305406411463699358028279613208102844186909757889144662415700496908222068074172694903864514973752832293420352320147030784729009790196787434872400370452091355948135360633617856513072611328354083184964500847178070737157464982014546138371879483913749834116820609809177772278058777627067513979646483659045305783771933575074833181167141951012134699117908340016235452865451873570041258560738260840327088316523443766719590569079298561151930253557666070730141275531513774557572162972663644234566701836504356293864702982659147724386058420470414828293494827973276121653342749654764904155491054635825129875566934664121800394799436000308795873500406374828088814140757111496671441684258157932842598920480942805973271130392212514319761209169126967034207542095757023170392369097880249010647959048854335792174150464416652120538931601620137629286227167662531821504089881780921815327615442794410937078078513579978223916293423252525788826771380470165396429875673512848664297602260275418871656041698680305611326751136208207159388821577564390971698595699992750977009374033521632847976344485736123661793530275779685843746345603560566155067873487634279034156936637243389674419405662014651908771594715116977818932694218060555590548904401541139426858907971574127798453396501232264209638229503594636248780795338474667890126685758702509211431429437713956791532135048106728818832717755171869150253803574566263926537024805165223988300169531640291562627413867548365893491808200686053246550965083668275418360259827954458560604172996399287698271391336302470506834834121797346013549850625328636310071207873896220236184883164233510934796717726218207210355781499328084204587006884651382002032084964395395945571083292804524644951787518584678726751156011207624736582623049731750674108753269363326718842471014860955446456505264938367564411415077631762468665906451854685037241848110610432056773385611545781296135693192278681358861769211739167257099452754615313302554054591044533949926429064591734926767488862859335827731973537880633048394898865184029007870324439524753816457693671726384971578538303280973635585238351711051920961805302815745447278008110847052581810389999878840150317807574793121649037190242381778580973970427778309636484195780887863770480514280762094079751412495900484161459117882369453899242728592897664816864713885117223939452833810517894112296280557036384497403904129055593861507337266363661173858673263149026426937747933332466435646950764996284444815814476461732023422996516281415708696565559605191426061666820705311116006016925090974744511320203299289265017311822295233323686908637272075198670664739016929019464406951686199130631506012497624315819675090257262984787039153217482168201713350315424241033114375083708479851758694779191098899483349632474364680696248338632267775441161929342158019557543927421860643937333413060638884783905563167322449577329664750119682859225243446608205930409845713686337444236393692289419934264859184757645897768443551755433058567425160462896879885436200718053942699555074937414312287959743053565580887033541595213217136205500919693519866375096763052422072101835681876540161204776706905143125391821300437898409143044759351989925072805606736523833356418584655444839767028267576235160533868769943133704594764534688779132049609854548844968929516854169187516121046315517325576091148888361925447602716878530039889284301036102762023912455297527769639709310813945016699013159144102468346068653874456544435780545008729932572219289943125647593201948049931754290649991858636227773739286211202190557163362618275898539887847813591468158492994439552587108035348885050067505661499148344566903782660448323376336388180848332077770965476043107372922248532953115083830873688758049618668726829567991249818819887442982063224432410302912110475992699234775351147179911268396577195610662414669596008742605402943027963610216618182314469862606482930112032621520459871594228972124685022675521516885474604774802693594863826035092031202597248431787684140543031740311597757664749574799908161716546132100441537624955216983985134039269238818067115391948856644761009257307860992542945343243128186846616485057175136078067046676903062360796623063378400554162394971493840500529121828590317162876894644386428380929426544724402791333036244158054041753324082513105437982631776980782261778128223180817565235011366208345388019559347569911891717482056264506119282141150473624560658634227705785528889705246580728495143540074064697276247923211221184284881815358755917174452630091788649138755389255192915507114422370894381868830305209104894095643048636365040203891238938528352699227651045620649009309471415738784470206667327748942376123195565733021357912509807216979786233858223592483526464126463733635624009777266228940222959420985491540328349461142951794094407710594465058969374343864834731214384016354260078338715855366502045948998411400723888761165388386188625266652328981156115028562442879226312683742613378435258232425400515511110369411006745213712338344447136372122063083312349411254805620174302007680425532789961351046827186921350840072288416001886722198400807976773633470162270679626370695858623531702107232858508083482251558723336008676105643234835243972384820524012866221722568084439146006180977587354329566343500106733379955638686172677865374616744465834615377299087063904045678487220028735230921112765432480680695121310295979285062265521374863767276702848620652738368297917769948540273644928000833721998379472197934138537318686520107973866220317117747311265578097575302333433298931741137611516382796731394080518336241901982893915394254134857118040253313634788499815562309904182887899965634946018162282268277473309115415606724267879256942152753133113055511481120027341531236778150400026184399227534573764590758185173814477214120846446000822090536861997636354642883443905298593035489938538572330734732519456172144499459056925029637925070126891432182296524916651322370363697228966368388833360938778398078681494186764851749764990275841151387066545395262980912799671537588848039247597356097918096389875871348986658715199175126792432052490754373355285564831725223158611697545348416244792221289956681521413621531209354608833197536280688393409927578931910262781413900879091432207875364114415246645732861306197144399505974806008825947797798678394491565783058532239794880430054447852958107431998352576891481633574543098065604537935652988525873231709154551336096489883121670401843535297590120185643858979829519154055883701714253051224340015624205258561163233183624933269749102395923481603153012624033661653435662114398943915562649219027919717457600589588820033386050239637965612622155033789265679543493656555269771410547500974610935654165529438036469600999410409789842666765351501734048699332765052334772456027204490539672776434777256886976590074082237512405753277244247323327043241550751795339888980149367017489242075079476309395157851641826518360507223302104562213491443729661282886672504674668623055889788867719986524481282177977599494559943537542167812253604279462301690669459461771879982220628715718476970460840066528637816116203801520206556947156113378610854261120468822948887418818944374696864617310754547272009737257756483542665553480512111076363890973201040153158524540425587895757729884049715453016600543740815636151285623976612430187955670520379671145627092519621398837532669949521889336260490702801294058465452840230087086544038351746933390142144982282414223037247300945898928814418450862105341274711044090852524165006871303396551373296302929392082248723284952324200698968786043887910449525694924138733463897798904565112011202716487091878579387168727682771367662120297408008175536276799501688329951234966082209970259868411091837697011362785658945852090367615524555113741338269871105802159636004539643122907573262175361649323753299915144804953593205632846906009356454460628896008712244765375496883958695140302428481206842079485814480447633074348214941834793541469173935641560595933732607104109632342260523542901617424711086536365570282283235773516581802420469364315423046350093089086658562093176831553138189591593258364851819008859883413581425455423961824013521064745391836883914296483692189237707496889335507132970467293553391246165370249241560824521731889188910297737410137480152451062870039192115646469516969539803757471314402020950147482146154579104274084224657571584425458874670811917940283467699577598052954241999382517177952828870730228266237968020871295916766433574224232936439919420374045164143916157870319011620007331884680693485105253675430210499681287301787664813843504647353910410820138687499680187962828508827610774839026407619502736352509794775239053580129634642766679078571985030331948680517315787255654857658597543782840885254753722050774874577462992313245746978801315753266670616444240268150796084871704861893999146784478731997128058637201173207180599277189179924222617722867648927081134538142679392850939370754196342765746908868245704024907437156910960011186646110997647006575744135654073578317560083963607165826491050549902897742944766283058397768461374953842804507142350229580155500462948493072314671364455740638370979189423577339455895707444584483922245467034124369950450447686954210588559238157651174766947682554063306681433766429000537022401310731839750485478216115497769175344241423796741093497831465463963739584576883046492761838029573063494523742041652513993791415699904382413493157301903155209640844698994601060147334089684357106888803620665058546652246691798530565381752902017184770238418213217015137663870129087692173738612974275023674482172085112394642083908411863740595883186146106518157526709523147989610791966504150382597623391081187048720606723708032723512177613812971209085649579808463565564850728871991978852603362530434107736005399183884091892956491596160729426264123027837146584280954353824569061059736369761103726471227282958703724312756837720700139869029965872410797807528740031039289188574242343029527529142865905571345456684351310340033395529543525513934217958751650050992410406754991185608049731185067711962747887867656253463401609616356669853504141284275286926645954208761136371329787846285913723581744534137652946209443795156964462056351300372658236203569374328720335997117450826202006619390170859021672843369693372616617755113085195839878040503106931992583757445781048545699206173748796284591112617513785514597184632938532236902687831471548220298434533207109594876794605339235044470754090963599977715457548041447014627319885354650472540200014261022181113401599952782726616228666000475794932866400401516473764430516449199276943997925491387686556362578236282346635419132277160404313119600338565290911360422383775422077161022562503671051788872170543572415776088191095811491245949281613792701723523818518906680439341311261697471747165042949958011426785482805963468940427978362591371466081984149192583185232428835026436894427283858897690693494442057057189608416706322745567859683293576397365799588071724635440684565588744019107211885282390357978941971793723939079596575320349473726189933866999858249451401149542700283211771517985789502114946786057925336722837469911032894083410106620398573905609361834589009426566472068671279837436989654345778982909513683535348091035381189671298492886130396026640366392179057705052840263345710218355514481378149103919516470486062873246336780186511297832677263835525271095437101715286492890668480810173717216721646533608811832094982094301882119967410794924323940441229537053654130489583317818089698093585852344172655430058801764644974811626637434527072699771322183820364632717107986733810836633187910111223680263528646213957326589301194715341063666757726495950206399302574580048979614481848077025438077573395000126010027284206440774798287522835298097589163450405282672417281452896971125558795389190849024733209144953190402360459248961257360783528096912464315081380001713163806152285868478465981692585477212556774667730936442540752576881108255642867511858555952556592683752226149465997022960767734997577598948230143554723489851810749328647492864162717831825307944181150928089391880952346927977623785311614429871069104019659550247165116190573423054988341798411226732237152567136651240070427247099593383478267006154638714920524017781111932417764418982965132089304519291586538824848828863539572167125630313392330759764427087298894167705094024512846376317813131422163611424805772487355412499585741946174376895091684079918285709222410784860338749312527213985221471420422766145550403514702992156477262329916301785239937669446473630751778091441160497259249740833428243860499462287569552592387533296772732270689843399010346658739743036824664811750013741528846782830440988606299415531377051356528049363172896234495942244772294414625363943183350812183001926752793218554809835883943688597041599390689056744025157093085762354229073264737235861944139502334126617108917813403771704402360505612320854546477272445607449610856530858757794318055504628284064267573325603497617679611619381235563470607940211787280782108284896858628741210325712842595150035078691751264780674075296867007504089762644230415174946826447334633626577797274279789614775960196940677201668136361045949673008007237706187145202090360230012385562683971782240061013600220947814173629617523803134858790222210087366843603249141890814029121772355868085850038122486592995419494305191104585627464862593395839180868823558251123571028177437429980675874941805228728207966033261872515903369849966154495306132492625453752465734218594685918461048972148786905048625378383320576816932557938509520742802440925055962378319839315290118585041531711366922130095695674227075806442268340645577905770883910492969148257851393164344027536050792586964162478895066717891564277896000754712869627821825773536479269407342765545427530074191613948248830237728354721333524618739331254692557667233914615242374294906550252792500971545907146286699967482469328713615829611537471575049644454289600537580134642840061714444161934270214468946508749684704411614725601576826674276647278162067756905083314862131641554817982369418386809433735432652736768114923325341850489509844780714430675094260946919329119858511764888175829654959957908841847626321421784212442656639631583405541181399466487231815968287526729846116831708448455986811110744529687295320797824322793002536132795108646076523663343516912703601179924195761746746958634660247530980132467388577307723081822301657269806105390130022598179001346193554272455768349289001425388867379155116665966891538359645885904616782201582075283765246857482230731954615459176251302927401288428037026902065560130576119585329561384156966538532909687107563206140219148911515714055755368987541694372876423804457846287600279656186032802918159393078885541595140113173782780239168357445745414300603556086900038036778177878047055295806103622572788824062310208758983850189413019423090654766287236819963116456691459571043983798507504250167318845431966222396898380472665735087027143409854000289562007359558174247030745540496129499294222447267694095941874094226383046354370952823734013409558518961432797734001002690536768998051354782000287608613090342345297847289810638774213025970754226398123459161287522864323775253112280629720310974635660754511949025409709590214694538161400746919098534431610591911734348495875568189478220653233289342526625716769627916517715202063556674952937877755971670617004658603666623628884338172423493914737513531664757794293126236560571383727693152670658663216502377316731649622832132511794268424204680785792091935429415897650993839765604059915292340015930571393416323511562889227516119950559006636255905074833634745030297511854582540229529024991960679116866620551966077120364083222489973767024254414234244170642451492617554806740635009586754172716385321611868637504889165823021535206258473459235803516802912958211239397515475545820518443798964263288302616928469085830587738901292739792083809958631901092233866801433810686305556716876665958557027128019994733254338052700943051000910401213748414673197936295490636684067352088175511544394235704019976963840036307950269576774714361513003067739310114286943236256737926475999701086982568608106791385972055737058061458457812869859717702892211572130931699476850823991090329490864327373582101604300873893474091717681284393399905980823327405251436102836601476825560524147108425896706539683846899665003544196398250973382171035890225297115336873873908677382085899646377775796954813435068361787447767722343987586652498923774854984836720379001164999377736780102326775824522615570459128186452556042266293928932500303934461707856340278531316569945601815022783187063001268814715354810218470563800801364601625489622563914308181680446662265572535080390271558836226133451657925899973873932198693174275768960162687539038111594863130240348333098502568805343907595107238031432205252724965076613077909041531587757307451149347436724496704282588757001617657247721759076730313314058151632869041702521710978998611297944286904350533203802254450748479241181874067182971074891582836875859898008045029912892079044937840711252830308971765465811427491834504646722239877346779829504513903631954818352991663989848241519213882369835122964813138653940758160788221900713987689839750824779287215017688124643982013773936135324399722924073725091148648763146103462361368561960969977632386800042278235077213675092423602826172823023948090068745612811662032823101520666877290386618423758002903883861583850648318833394122590641520089973506832999932842634087119393946437724707235895913172101140016894404191139170038115912207917939591324730182783786938488737156124430321163945562956022280847962774894623566904775268318897635441801059425523477714245061521794985976460124606990864075291407291045046627044840506766005683772970163512558165367598127201626266756154355681128521982968372513566331807350430005711600463943837826245944020539423945334128149343247754749537485402447490439986473223002264171046222883144481150795656817585574845520312603310270112717338050442939212339784113228744153688693108853991471688602895025849537517639060423694965609264090265339760299869907487143654013816312244207618663472811745964718189707864785236723871378639522251956743978379732601693678477453014778105200350474635026810570964888805452836626045819378279070583565237641300561707345701974960195793191496841537504612843946588912988867045074209963005295147779199102452667070949361562225992237303914617775780441846467264283448191912535129648944646817993113043254714806538501919172571487381535382854971227651772942952708262445574933721158538149360505748175635104125484243686034261839501433501979588062112693050684393767893355050940404847910158539303790313974214714875770082925013720757805032021303166681821362206352866121050494748509884007031911429039736952469935119757740234831839384940314294125756495860399967710289446934933038506370948185702757945518358355500175161161567953982295764477568489227002058292609476201064657169557375404885597301925002005837206866592402684213904278773797649164345953419616378818490359403156353607841158336560895662321190380133263972388040628195070374211474020741551353158337383694970554476458641073017290072552312813244708562459511599176545741510635739508862813388962858495055496298937858868163072876998634016000945433915282878433936031743772209206705363928069582682022834361863171177343641281753307258800819898118741345537588154627180181693870916608909861192018857958651407015502559996250954285812970472761650116245902825158641647542869163117790569602006601010219215473445771494992380904868858381956090313655891004265420721840838465682856320849307302711353171941165730272946701594060981725183287235756168067941139610985783831137113393380039337919208489923699405050484402923740903574059683198105692779272674060549901761406966484506716374930537490690690068463486511844137482310766686069839010246451478806021109813772021979769936999313236573107204290893088993285016531607145131496083897093573546461757553986450259335906361071038493780089686640058236104306615160326898365492523146116332868111281514950063157213468073912380725401535303061316016854877385667450874121940120948040854015817468820334190633880917838306115173512981424766001165487743839874298663255082133427151852712869469474366146944282728633624018118625609234053664998266074695920549671024226130652931439897380365988924124370726926930639546937004625832115298190635493456275801417960272554299113983814764756769019877853046724674079082317621408765577276964319707062678567988175534542740551215695694158983935078491941035831278814710746529998324927871331960099534179528138785518953086414223269405576118675945491495485050985943010431213520875089442585063496393969342558106906066867805830261271195477667844099042460023723230912962186520927476411547273409154158914578153639224407889404495893184224405087051088147931769180688406443607620388814535382591796936517561120709895973308905800216433655292379448282067485161652032942135952961036654768536278061136227108020577564979697837393189811808746216573081591981515761008156029599157641450644545465061696267009692909898475758224354807577802123027445205356454887314423382223113410359318356585689514446028375052414737350414875175180877355201683170783780333309348528865803773848207456316230078040423048680336603326230840147758395581430184133492122829741375098364783420279235206504989391040743294097164796803316884697146370130918702894358295149128329274324849891691894451006994043432651174547565350852602634488659533122680173491131028747948711324042483168485241337638103479697495204905220915878647705833570724577542776383481581241758099403205517873056172717975168003847480126568103494288412398006364148253205309889181519549566081114821785806354685834507934513199407655855065759351391449769346452856523682019648078135878386928664144598070169614519841174472991263946919166017093822600143863084422417182488939464418309626955070044452689670470924848222103802568668504617498982225439202544742823636838608121557764159849872382353987441142213768685750834069812963998287263100950662397405540293330378628074144961024321420746200195212256533486823533695511549444129754707450775853678813019216275716121906403294607125549788671537022845935575218130845774436476748713672689042846381532494123147511613265801360526826980942404409351939233083008053349562421770428513927205375392246435673942959022803578757102908324740791145231217721026855147314773790331539801370901955760492554782729274364447786366365501251083514416268949359803544812729332281709909482982418133279219041420967297698053383697263759003179629225425893384137611718976634391391463928826086750276403088115912241375382407256844021912588626937340436826850710930435254079675406962593746237408797399407276072263009874181830000522342606578405822486151018076950916110995219099024053412334576746171680545964596096474436604135128754470919771064346733072577771983837806868597306323364072718196439597383111508113652610705766767934763172969120454621618327746164679483190535567374007655974350969924562598705244587906334862373383303025325053754159868418796720554299243464908045626607718036351574341973309569334882306461846488089955063831246284258580378781727524364798998356260624865305132518618234710605355718465377741079083221076970932730370291223439337641862944006946549479166515937827278498621386896576052151706007502222497667053854842882704869330914067436647329073413452290742662871894168205174693676871493453472179983367693229265949084905176119096851682139801521023219075836971110581840282109234259591991562396740386937300124760126334884309811592892617934528103270065187891201980822407422466926825890678572335975380987868244436694888042795107117763747888758547627380804555280112043423641175753065588037983380968258307743441171602556692274889322968544308709304542409039161373092440642240085653099733514326613470227134352705328152324966137767362127697601659263129741468548407354452920649586768061555016355807728121263228178014101324665888856206710012677668069704554420707456174492121803541991865448069374844366172485185787999878040277756965137111470158557957721056181483403412047050553925671684348955597272624331503713212664758779817394784539034985804429991530390424529542348724974759231708103980447344820833458752772908855144056821339832989165624521357868164708100484767602827253118310668197607404408879336326754595299243821697026648125956424793319765792781729324936451694419319960831977047360995460209299843522726527996941160863325797301290736427678585233990071550262049971062223224682921677229192437395814717544307520433732136042450584012990320565887905232266404740183036434144276368661603574053823379377056998746819301501665241908814091453758320598229001804743397362871472578064482125800245783680880306706129562195896977850760043511207748407931754791494994612777507148488418368510304401516333301304917418587267605601504540572843422919869403888653927128447195077558134281475997548830539988365412935516140220119684233581319994305845179569317936465888324489189812772650313578172539113611811988747043614612598329708501772895767677514630767772478287034325321438684644285219315267914593222949948566563404688119312777843210272588410970442895703299141994810179165640761658098269655035098632140450171149937253086586501200483533868517955954176192899605142044498143712428102218697286243662559686963225986067758015503764735991060914807937759481345052928935998928591118704691385712893181507272375487434205891183761120572256230482815526844477965169357497162399923684320227694415927690371466077881726560008127251613825302569642903424694160946855443596068304143600012970720842733178790604335224800551672381247350975489392848175206389918928460762002817635731009977471942823203842691863178958986604651561383905619911283103446329131760074031454708455681370251438377036822737252427096580366726231731139477647428397546573355901457291833392860072106158651989250484732503126793582821712611551518423789948002270278591467173428584426415346462671485190843291230706570026553591788372026540012206614436548505040740030530494534855139123778694147542667291222472575600759710535377426413315415117763393560937811109361286821475077765029781329166052710781189524077328497925718663531389937666440518410716239204176044288517407419536600881997755456362855537060871844137092874434883961739494309695367381809243086264914463716584030244243847944887248188419911588122232181251042897902913046504330549947409850902110187266694052661994694306082978041281126323019196461424887903519586096196865922771162852965814852867217569425686544470271080879746633436326756212597174773992869259229177181546809910157461436998651445014009852374890181818693372972601898365466541796578024768364411586972611201560505335100340650769960840198315440396186044370165462795523076391484909629852835303201620895231788355814483782766027784873068674636302436317760470261035443413250089287721048476911318349803246499364429208165509131111926690565189003755102146205574786367511419431304095287004527040002609977661827340881000386085001380501172527205215513361374228130780369551655008630545243534562961362564491364786928333282058858153288668164120471044038169124781858634602857210455659308464361289907555485124804562450946801865281973071808771480593085022547189220264348678211863591422462843282956939673113373467429982916263829625107132606759984548227633533835848505229427486222705062157453066164948286205296229228362385201616498210803518493727892285209341484363646614369950924638417443551151974216180871361589666173439555972846377380927208410232956620775513133525554055137349085810906434729643678254199215260466122244067503682360115085723703972531878814552800687837425862561762623893386610216357661108670374564291620233168527288427384848993671011547532717331296983999154155427143847350038239718525085203478619845120274421053206416092673676617786263337862885490422838758819242098294567431163094363798332901558073374309183684375200209115730103425002606420615887120803967602871877326197197415428470762069199096885460544582398405462487856398723655126857601220158202916211063998982526237296692510972244787016439887088888202308151185054096085195146726377099023797547456593206647832584241526782345233814502746165744590227796247215901558755490703603293759574893428278143450397005868172217916637941988788402674401613399561360223157810246864328975608263379443168726982936156557506723428402008651773023916043626410875819964991611673265437813167623284208961990898179161350351245178293110811654324592296288922345640062971477085882827063046443002506221110279381786651545541118715184403722675275128143101992129590130115402976720037569920970332962344674568228225270523145786584470167442160505274732670324405706863782014545719145034254432384868046982711405596660262570172826240130085157869868074464323825963758763169626984871382579767720864087870324566942291940451858535163557056695593171569587840429606220569626633555609039442860345962683965770549279393933513895680031132781876684724994161948923296429242175081276816432927675556510438487585063471122878382794115475612444674744818581489173697848539983620851216158820413392492835612452491518530553392595191650764035661890551394956139748222512873466526564183491740672924143517086531618275095695026945729973308687763997283451812679870279391301442052300284967193460886661235950963629688962475558386705828017474250778208542866955586028720771896426378105325082870171186021732720516746140495366111830543413828799954115357895357182665608794212622177517824740704893306466778645155475658016343921411100196255348484989097224029992293397439261278021278895884753730184454335628886221710217769898164672595463167056945987711167257522185914677646002678995392774308376264816152898665601843824102250653479823225120356109948480469560798693562849823324907441529478857356973075497845408832243329305943075917713419359631391401997950493868568828583676685121168352384513383282146294918262314498853814355399846519994206459800702824278433545097062729288257087068428658117463384173320198575843666666871243116949149246176747732397166152215395050464520459685611364076514589014326250120294757969522201307052363978864094403828251672051757246354363491447835756334094823911085645263844631000209862521248142923363382873563346296485794595897631632449995706956691782210219669741943150924296520101359390550174102488014146607561160019777458366891408893742794485151182584485453374107995189414923593615626991798710608635017214476574137000067260949311585592464216486979711396721616717051474194355479474491411772594136776719853121279227559572984933655695805789638722703002350390812841775940527150258545806680575342035529189771790171865629343254117445013449385731083571516892694024620204114295751757559233980043337856566850379162090529366729998683231100387019119387067152383193534335604900244098861048678962533372535617803488201001727920745251890036327881149208112941041712156751202919793936856128799915981516618879678576395144938702792018003313177310305639067717716327435301335624115584730755698424151266339957292800148927792399947653742655253838930341737090256669250106454387920510344334839056228359887290997205267192103282205385651695397973811229810628916005616776980661469467365078587869174443031695743992406683650954089680785167846800468883508713977071898698974112098375236098711142130278296370175693378958429391387663131287667373880384030867623885271722371159408762616337449865657619698940978269109069643737562378140401030865832294923226045076449630246948522660933907428411479419824330472065861970909073199983988012747585817260514512374163062367348356222048161555646532803963623078623605553678301486114655471104901133476593149674146934292867891507554043229714126888761493891535512037445342405902893974651634290621583479607640097091650172086621061651902868036494537365812888814827638178532787054383666553490876296197209356147146600254550467940939332501559830886327464094159863650292453991401946909056715240763154878070182204804392406869682101589397493035510086316124252688650590928495515509256617266245430793913476777404747080752623916485037191559009024579801401673852894866119812458920161549601970055460172040470589119832167138448712868409336383683475070897678101357352079443244354020649774190877455087349434882023867197608864481141128792677973939678417781747412385745692465528745622187352291098916760849127772631040076267210168876285354214263327258037789534789939560324187296988243208353512832137941889301357401773271131751364574558728968625303122435667916855049530263810612006738252760419079785682650111457198659311758590181525445016994874144770323791105344624581826589041111365658715454156153399578263101016005376817567830736051433258294805217222921544883901570539408056386294014903776113407811167131020319285892058447851506708419934916710023228828371421366870896618073375491902539445316806312182170181747554579783446430107016768507254302775728836787268654311862395580342231126510838282594415528034410392967868209568669652807801716069835271518694973645579656180234827496003070700625569861253495232374995255875945035956350830061584992761542703407540560524562928840772261040108038709180938879778453954104086330206433671341394810528691234984510410222757939921395392611099445348709937673032666943614644616031209052326432263725966813535225148247898314705030794017491710365138492599779078204938443307905776865453610618319020636675637853851024646171347394214842696518311325946037170824055417437340340976564284693061504156771186363110679030986404994723835676542721189044109479480134457783724459237647187345208713001634759132596237957653673245571131523578837615340467721701916764330225989530487520152364011698591240549637305116558384201881186781352016246996032931704109242554431396224051157508937919738827878264270033220487295533621105895293204942809232903674522515770994010187977556060565298544843812626099230711808669938808675054700618871566750320049422901095179215205638281479649713094652835020659879111942427843530335794529433076017891507145251706209000030014883123064995731933179737672138049447519674205390689308996012272196406005865698799897575000134927667786343410958516075363736876366993156730390026813419258773913737829205162384736213975522950203198163781849475169923334336240637808638810099249797467207833189884949590392879734473673992540851331545278273446861137501084229209639297148344084146546303544913267371217982948864523125630587549222532525369614704750931042439217702916989930563124420322276518248123195562591177204416854099451666530900461851977569698648224645022466578628237515254357196798460355872572508702587529394771516022806362248637146774999508582432378864008391687390878648951383841487134291832704726891454085617767507706897016715028256880736475379370769627607340030464342493641969705533822397917093894769676249742587256390457213986651433060425623713356510333796932971066670149089818688126468253672467134882166061265052826847065213955722046685223746652120936183270851376443159106808075061085746730892112595761931145632560497218175267692942457885829275683975592864363094943717239944795780615393101657936788480758340489208843136972899491278285290809512362710921503641874671825445734763815071506758120659070862674298316060701271966236602443821787352179978000590864123900500552766070939618975888388719542392171994452536114169949230025716249974413782587264693450973856311483672784295060861670587154326769023618757340750462939161481668483474794338976058322940558399176898503667316644053853039016465465456657511678823545434280928767476578796184077338286228514379984334517128181636748362554398896125072532104242561135703795017569499007267353187708662430775135808865272237005934567553020409488244116708635769386124689765465579119599797980135198127306044088516513249300366687092354591696634966369162903006431642122331349181042288905756987589161873740926555260970751352933384444917290616682335806932386984765570002438753914800527739843407386090142363439874440288343242633497940741792252025167964825898569004914135389926372301885837015580049812573241508584299849687871817616862020954291236494109829300588051202823124565264067920835818150189009159083697233015791808349946941959205455566539236281410464746213728435726091296770132737915861569099302270782680943051410633175527311350487951684026385445567988702910237505323545102994744420565919623105879645096434130208787281257243224946588588329777318542064314731463153965309315294386070753698457715258763803860930717078891596191505245277889859324543216713073121243438172300369162760711188122172714090594703386530535547816843610258297368481328175735554811173958879077337065649639955490777516771188968892266608924316394106344810188597220615713208659638160524347442808857874798141333584493101954834994156327318265700236865570971509959240378652631109760419707233993392358791391493116948027337849422846243269000535546931470118008615167978185102748033736644098978616114147633572356141463349838776899014612513107135403305259113394411987709183901118303029551030037429591368288921830354185779547317390747277609725509442118676478623029879794206602659485403554369624232298016945577042511453477978674505144838828496683504040337100206281860892466791606022742109198636971201523474197404414567298200110543435164881181262286693852333646917071900518773582317475810260629144805563492095554928328672258827685283770429243945840950001444929856611130448020165543497656722768533597417483358097537840029258818295195936627742530255894400674851476100191056711532352332010397321980150560140322343646128554776667630692150459480116895331543082241303503961267629634805581395298806229655721432922430961305956336828093992768453297432331510363546127304793147938517954454664059345028001327964241888473899951954988877950588644147109705595785613892096307802911475307092049571390278276028125328087900082555332596646197956526680364347942766030381130198822272184620932786462219529580650347592881222566594980182276247989045841856187770854473258864490050039439164770299510875881817321184552761162405268592951826832396943422141200821734314245876596001633296142295255765147969290790498935503336902824161310316736991153923247750417120007320349104955769484773552138843015072952415669889584746730054894215516768184320030829784010903547616881872274359581933140891509571126430248601417206035565643693725246644437892088532995693920862081875615026835320664097255414730005913866747583440505880931659473367760301270467177581493638381506339617795963458713578474710900766925780414935065266867092138749904939886970126074412037224401382183474896337328549334139233881998365345368798485414003810618269897377873822292656369707794868929951330538492911462820819429093665530239132641424582363727403173764000532804059032737892185704920791567037803061284644917160700794353926508394471983636850352078880548139136988552239463593116449083636229161624492108802852618507302209423200090003597117618384148678656541002653426715724903894305040705250107722041408188890315485731539498376245478861097705546810949919421061958425850671966505449746131951034207435444927684435601261374301051765169066650161599281487487148662506107906851863152584836054442838832221631724827641818023803318739675164480861925890539942332753295216769810005056673280166560374342392846024268820591794036987834893334497367836080102616292096849333135166235659649106209004874990490318679464973549351856440932598350551020312518024012182514083090948419876465228081784263972319092649706735083763345044766886001865837585918890476650762873632047853384715611264028809158365373809454775786762163418097231942125486691607647382491504033682390346932615660733832791142310252959474019027435427189253789404933381708051580330378349552741596753191731762979502162363906650375377578136430948450863652367470769604085079387216080798488332971353199940230615316629181100632709567476765779334849334549599618323630496340324626016354295319784807313475348968051693168067686928598367597944769515530810934940783530210465912207677576677191130784686327826422307325138916587740515059816521312058062718896150186924233544756076913029598127453791034652823947782848130756324999760833311586003904275408133124028208490268313781366722267625347872349616719252368079368474340409817149282446989164607658919592793745512889246676760336673265044179588100334243644181185523727150259274474833556060327149723372972387530762269206476125709255774958656018647397673951998343918431045875604809196340794725779011033645277262477672026740137839433781390740770611252277994081997624269626030958029644951562322787081369020648989407006272642687869582224263718992858444958820099298175081185406720430207231663408510202733643486399785918108334766107045742854976884867130746334069182426195576419119847734338462612184630361190222477287769935593759922546916149709017153398584687557711933151836459176097655895983788537695672757923930809701950397269673449325139874194409749360416670463700135506033946568240322917678087497445774786862384850553717253910432295535836862630338290162493670345491020484364655181051857916580924249558437118589806212327771049182358475434346129780294170756021126840523954487834756212898452841408897356818873156600628520893609533688513614723371876943324337357505582290620638188485319878514542032395398186116075167408734765199556567576772767981949150665017016203358810875482193860015610344495266524545130243258907327747013118675986082039300196897633490655309952627973694714854734831859776446127616469740377368342387658837855357212364974139780181870180484892326609925837487668126569094072567431911731992622664638128023386801979901555201113026751914516593781114686569779813956889393523249223745944799528032779002473256970912116943693325753371754697153536903254574186059159431342738996667367461353099008318381966287018708716116504802824011700154280421020630234796090435652011120803248512389601658934345480689663550731971482429918504717643855621596219143141407464599515738254561117425560468628956296975923538600722572491877630708533728791934592654004774848993598742439623700524558333426108568569978671226969690905137526674309436201214964926347788554554688376278827786461070419977506520476241586655824836296189817197982101932208089403988883540461870763948488275597953211350693241058347884507988289322758758070040854580513065903932916178047740413497102965276469324189496044663015899785081089808254320087410602915518838700820271819143443102654379468989486993127779320373203903425794039490567278188570921566416851896943729416094540889612841674257316300487630093364856814504409597916319153770310009199756081080110304166797339573044517309823214983572616649662111767707426143653587034076593280961031328163927452282518284089351337623619788082947083516267626888808555730492010451689057986590134306299908187924392657899757535690718877405374280404971731705416786468168330949590479180292866765651127558321226565263423940685628023891177668791068698283169410051736991106554234541789945526142975987908585225365438442379524091567358869519906720354009619307904675766364493636556268835562864006812969744357397569832740567136459572276447268781540287402021756357389890836692836145837897550774149349707865973750314331774637630966694972986913436124541126190441661048958382135477403231806068464404323997840508754518596891277388443854836100748869087518998243472023781570288286374921523240721893454079574975929385754233183511550425175220198857313044271521229954230774392311952307027128436096237904430238453077740518876906815066397785656729747964357643573931692037846121859805901909816674098783377034889499175257806303889560405826861790405679324658013212763533272440930224635783462060049327995430429305301544846283443351783489948642808792958138893921294736289338025939090492352733382446603868027959264922690495444959348744458407683509474016947687653585436413499667112282721781718541992398468745744320218457014479177030619564140466979999471961173505167344056477991928511726517951783064467511378426951262252976018170779058447401580650472963522559540397185350781694007825276409633541748426147358300774061590283671563198731918522635294116454272063404251900433322547845563389117609367500936455616353168576392598656494572347526152210313189864759251158125490449529050296225994994684906236641290161890352063284529040110471798664700077321911549539963379857183793995743143317995367223025061376829941776662160208400412595148773234894143830555070780775359256491298688621472744298424484807850608226269799341596235858147574562856245190838749518582316569878555248386399420132357263159152928252591489503860825932078362444868665100845381180568662583190576836631144513676051008873776308892736338983491451567647203540583841451910629538606030436430258113607164264647906069244142960381326993239542071656380295545078850680243176853493196728324717782649210563761156047809788882539711699344508448162941157820707351649437410480054217052789924809926524239519455883730425181149628989310296617157756714588711777217080408388124781402039087306272516901274762951109113022584683215808119141051860482588132028426734461375947868952614704408137029299726217154487174442620666136292375635397048316769226639178626829888626099324637359045429573633725583904922045300325562624584279290802268633045771226306674319534586774682417559961802963278307130016588184099032226013085578491637344629877208439388435981947292418383698519551494386218671056595887982946884947277511456805743708619937671032868711311824447390839425450925066593623590924904293000618874485066162282026915777915535486617793665886744053072198023055149587584060106944516572684110426819759432611281456515501022887538663937764509033749367161581255991947834479088082994740868807251821602517954800173259401862685674321402797145600847223934225662123655241137602637480236188481067695029488567158364150288265739505698075741609313081273105992481272766425678802668111906674256490490288527671529231935274379526179545170409139867115118370100791936867891619054692756219710875036557960083290692469977898788662468986873067322519749434585944288596595536201565389794751116279235087872383203565083203031287033968369134883785355946383010489652004547762187822313047686862315798976841162859460211071930457532268598583325583614770330217631713689948305858917677594191559693618006938505225317078619770063946570376032982868826318807590745391314215704410306576272494240504274037184072447383563321181254777851036079014465864783039610920083669754833604585589497605507270472244502085044079055828147610961209147676679137043994576999302608643783855470929367032255874730383620502115936989126278778782267274947632362667367865377369776201605589699535706716359744925073887920755412825449697252204936966668089491184107206700090561691990304814932314632315252545450956129248594743671778370757118881626642329593951608031588183889546729960687765291656367104124287928403019591521622318112537294184962937283583328126405538185314117273031274596289965899694031096379825055662216686542294224339817271803181698009749237627059141099233875473681741900297950939663047984705553289278760340295293634331985559725332787959776839656702688888359411725579365067485308762794613985026304758151239533984517468261591491869352037617494883784271471908449743220383197794298011762041830449612659541538010782259791140411599474224790737549051546638430114154886272504441223102082620608418105804558865198255903225036167388069356653308802676741754949098857112395783439403482741569041141082341116178661233417835575609806311372751392125875450085325320076748257391177317549562653634896428088692964850781835561265154255534397289335036017219834684337136746141321562398981616995069325302082722929293662330838154169107220384907156391841675414683426312063011362782361926661682304943587367579399191928220247629983731939872368183623219182571154370876032731584903784461897702314882786489689307990750227608008339599820797282217162796091789900724950145895362277867528660961290224033502345018263400462445758278904037598028425608903904425368753746258627359871982313068137915720633722061704049718595322924121551485132616712242624668655178896827218666157641220772110693516386838540570877604122625436498391500984612454080081307814019658072814036116395153011568563070663495681217660143567032364810081945386701446939524220858013469720336009982863021230054758371616188312882985663580812803421441660154122332509788757547216790296266632026570738723688492200436106632446868332284901589968716659611989227989472345770542394392542456155313834258797358778968871601431135935583615077826227637604516653042539558665024935775225739279484605415059933365087131650702113843064208665756833167486242621719551671943538870282581630743920820389566092753825596365980717102274495245821750339090681661242815928930607222422500807414959460324588648453094079037285532229422878939775315277593646286125036178051575134525322628122719517918889242871056480494233742827453528522979842525223522094274171788655684596357965878909265160647246467506664693477094236435295578656212430842506048942054402875526340228041594165729246846709076722900458991377852797456266760735737082767924117214818805877013190303293965520478599420053823560569207201182980697146280288821677081800755807667317325354076881533530013315435535290026077837492461782282009247149670074562845078508890826837183302251678235499599544481612007633298910635722351837331215447018742691590632015042357257754286655441541258771615626186609633534585417571656206265700089635500961102196585221214150271405519661594120247354084134734408232650003782547607836551195250273505746714880197256125392534563668913044274902312003959909009827401308688619295591667377463816760851635016384880125222861363925938049960119828399885773941164718938226850588727138550665091848413992654149777900819434315633486136546229302388729274287159222457138728034190013920405059372267308108546618477881339492491907212790042751306988509563444491816199061469825149744603091921787036325697679333069737155538867987444091966918715536759210379124360098546289467203230595851987102507212694416373756336595456625207560408247384215432159810380496713577392518467805991209711581133886654494362174691659720098675296305482644469204854023704083361801574043448449907507527292092035531977953679533996799601970557463719577867013383222982355043241943023068720634525761010160115552836147297306394830464825607611449712541610743811404450749670845507180893625314022654970923662236163573920950862532678428096875255406437287262311369907067671798525840175917325991974794816889164631714336772458589052762584840266419104704975475226757702580522938006671382852230897014902213022733452449913655009438272020713037464846689865389443648262725505867924158941922242442556624427733917206953749869173984589140148018878196146082245940407859119849597631660581387652729218400624543812496720118991200524935615188179897407176509087685003416706470788399634873135251265174675721965393623205894227707603056958438665940548250371779581079725714864587377727326510201492543958798216496131295764846228185723597484750805307045911623971423654080161805326891193879692051339107991038006350398171504266274015071715752768707266981523599665317907294171214378679360467469723486792582285015225530465182474681246905633819417978772381222156681512866863836698298154873064463352170672670682914655237284014284539086251194755655836626516258084757762455565626325785001654748225698485427727572847969244897617045990588659861843258549966223188961249021017715198679400907064327800526692380820400284264306958353702873379057498876894228037952177132768974823438699567480327702215944884015036846497066174009304343949772518133820304115308491517225999605410708697945076683777960219482212705736958910660863485932362858462587565862075443968048385481732967457769002856810576555138885625956053153862068677623366188884711153450495401359957922744953819944451330638792889507078611014569299565297773281737506238951110507878539486246155748225835746920238736281680229383453044370125406157028218930475999573455783945099488697414194407604131596915989224991468507185400996127348668332746809818206289327283916081121416610423538807041248426769048657859422025954371919197366367433310025147013079332566194630703425297566968441794173427212221349589889773379337619763235606904654204447568696197995666534546439885744902844159004488906299168235233031654351007668280693696211332389074391417164519120614036857786941660708338835719458023153379571234012206976455950865175855796046383072507125669471609285581510125731849209199943486776978126864187903637239487625263534109716998156764786971934506918906444733766788647953967070542812889899598917054899295077689316996234776762258880162358765385715693729595106227478417603799057530245192239547332591470612176978991128799743859139005237140393857990336966651258857499814344603182464339828897524784310461558814883806636802342217911491437424948527655959029925947175267171442439191435509617208664652099154271411434036489656924870046099503244040725228398994874190969516757248520345677903061261526803655627486905017292801234243322130809287871695351549578958300533539980583589674857546997409192247749176295717100036540827256914989215598471781820446090809006016709190659713779236776426964399544606295687813016982286458439189335317927829117545958039722752940183935437139800862109576398254796197312624302316033775744776427008819236329557070063942485422821353448107563183027884932288500260804314801756342814003782724509790388421954066097638386398658821405243151792235002629125244989922490313261032556929057811529384054115049988189072734020910462014739216439243491338474155714644803251880057481290593094849836086679664291899340540570252005020064830035895126008597600979897090026562313208542325079938286213927383617340384720863243889551555026418124143441603095260421753439057756618056351883594003044543751786832742262118436465600630285961244873377145977057498969416543245094778698608382892345645250671474152158643688614032429400231694145009496195752320295345246355768710231709890703613354243727480505704624409818905866155128766454200705601298386465861129734777211832245109011639730888689680778505559257828833533792159962681459283636107734672950731438245961992438708740702484068002324796787849670811345155935818231963485518168307977354575196284507623637118894131906626652425657370819997582084855394547581760395181122565824982739203502151419506701908018534077101348822932074088257921101892179310226086415924286835895692998462173342085777685560892996881526696993763376162967226547004283587402292724842627221003155807445200388334851567949185247327777913853507009917504250437797235038414562340212474216119293635502286652054821759115171849105190087912808160500671931366714241527300760099414793326206037001857903498378223418793525492190441317519975768468786181310826131055229799383615704121499092096578278396213053773829325922875763822474537685687844827526988547127093053178089684755132811831526943432295394231993052875629243820736027435930190069184510648008086406471591321631813887783614001995245383564518239386480809109708530239385748679940412810461502153439574005713170270292296273321739684509960129206676876385774615001176841192023222484602155664243884785497975627733700353032483814625225462702949770423825238529949401545385138268449068429279457818444683536772673672446706469413132586747011012473756552503608674700304926032587060445529455438508957679695976943335926029237077631836124857812982234987320396682068973686985335553693455840514540356547601940283746819640028780205124200423188093790673040265159611134740720123391058850060339709742316906874373087593615888486019922937981194521981555976686094387097438034202730070334578014019818214155250369238580266520759623693089440272551379176509812493948921158490014761310263108292993254137257377463035655868481805491591336737235282234079258018274149619338781759452909569982057837537214451113911388201859700827325466554003013818533910763140477729186487672592577533444897191346769906586509769489619293552010527054989917393732059646341526695675384984778540206694144117451779438662049268894487021510803567812256734089826318470563132981784985033039285116217617587379519287995227352607686987376714763950082965122799629807233904522334937579914144777725802963529870592888632118311259161174404039503342244412119361648313413492467410969184279609118126140084701414420040675113570089807922169437763235960843734911337041208299427211372724012784829819524876661206052152807174681571366115754260468985797130583845749621878653061402888788587196490471923266181245243477952631158826221191302508755579124493396517945502448601403701286500365254884384236715411385874164722391711186982937004053468457468737247537374679215034818117424477746482400399262917780857500293223477782508514892328402589661981091857186760697872257825600724362472632990952318907985187705918253183078635785628664279117571146204977220329029136911125337726149049544825298598610892807115557118959553033660296536747037722921012063573621909223949797426771576902952474456075417764930064792627006454004362225828097016661525576942483168505929522312827041171874978529726884559664087242847711188176351225538864928756095991682068313968186044507240520171597391798720893742977214712128721535816856890202170535499526074284225852455051601044553323306803727471229576113022273482684895133766854022274060380647096274027914669350209596449674293212258601043785974444959336730667987669838517224430452472474605472584974838759881720945496236545723796095101759293146926279207088148145588682688782092514245744256121752846052215459580788649073444107239760681046144350542904015993404582020392091670092432135764076656113811251190597715033279025782289404694395100582665620880938570344712615593409591017643761574182835967111277624241154803594223977690502980298502558379895428172319901389202806122921444470975663563844649937363617674263789719505912521811301216743132974371511048508491003313536445926017470719437721107971768776147316079590495714010501048863341828206502805946209931129285986636500454480370125525893034103321052047302999329104667177362684199824048612643121934535153948514838915587092702171163829168662258510284981175613464198051681561032196617258534358505853103871086178367927406170047600731024144556856082693382737573755326515948520506560336026125719313137581351627306137753570521126442934799407135393620985723696637291604857241395962963120444847072079318200978998960110036717135179292006788767245826962288461212067211805110581382212846575643207399319439012550566746277513721723300633965780677356214219471453602727720185532582450127541512386856076729681975955967390116559699682223562798084326836399548128606242068173227589084017572739127132525286212145419661984595840564820150671890437035148547339754671344653612070069280246178885488779440730959532651996029401673321807841873271792113443987743160741247055663624854892637560334843218332531178756882305964697569301754577180980686599650014385143541425904716436600607903603933937643038333397483990268528877762563757188061271252600107499233731113056561666230993890298301611119874318506222317806086335324869097917397113457759255444577727280080916178392715565392695112593724739104659671017239383247514812710170170094167971912387315750047272270083560668899960704082717017301804410316919057219150612554267451174166268555820210920652711822903594849254437156244718713545598813567364664549324050640710613622644712592852878682152914445983716088673120383777045054652732557859601716146642842539276673904257945858601516445483476036269870200466850901057954384263922546925870724160043938250643168369498965297508121123491789987095560674895943236992538528159451739924289021817816552688144914820205433142271285902401993456078700646515046083218956354982249167886672173205358093398427656236965572373411418806376767720602246011255047545683401609563254921929312930228586125563385512098652534943814682860795649934918589848740979287102122358068949945469845682891105873936652218622220943757431385678713605072894364349931868190859031806102300504058227716140955669830040076269191533586645142348174122163064946301381077911067069542919156361446883723360003266790190094433218387075262392468831535152780465496499660097519044855965953690077056937884565041445395996707763924681488907526911428395324521382559742686233161791697998560185555828536071054780253512410079046014321946030733863279403154356365698090692653529302929646908526428047672912123410458617209804260857747326762896510889121756328054958139380176245582780581506254245897365625925465250634082528564720532743419641898139293863504340806327270764575037608271120170671579613383521036863870889217033944348236189210603627211050663611090842763723232328960399682192146782882911768643846708859289189883549669787788862149605194387041853512661368252347895890924929678845678301596832649242837977989826553092751471117052432641462884562791263313080554175641896720930040696487677934565038459375533237229856397953558818366453379460786077107405364747196846721958243324554551490894556207772816500811409482523990384835224721911848408895512193229903029587977424861576865419506342216596329614410171708064272660816491560188724808808634786513759677399638430910708593260834370256236751867612173829393927645639969451316688090484639201255881455446782620776066426643231874488009889995637672897969792931738134956976322707857824716562121548989073397791034820698489108748240209609844071426877132306207627566047634617549765879695765099995798639812229371211433526919382997493621567253707803267896654286557415095094714538866723505935843962821413225273777902280150524865923702681652281383789798416212960799873988994204928780861893007001322851442001204545849649929177439801002890573801695829644637724942014618740245332795836599369563139585267773759582673811389912459538137662928910336408716554367883943004377644025177879466454389899604618801009663062656828859849601285495609932766877680340590975120991058820796803719905350641305129146239107068084896695154330779164992302410605155525475168982729368797673325883224674467265009735901604744156948731688962742643171599549108340691666836162073428693231042744879813740798401479876533757041275293630254307037443740916805412157448476810714489736220724098234686846222115039307632204887230035482018085498806246814532441643248984151172542139202921112587550528005290033121720246438528517859518320955989173911850383599599451956475207201918103980658470731331469183326071130968759570748721600589093937583949523660263915635499931280857940452313399663270615498891679280895589548046885929167087299563280026746220915277275717437104040056789273168916026940735602990561441725958921067151834622105187337341289639924830196989653432167013973468470698826155593174589545481925403232877798370812720320576672381965004201950256894875158270925442087285408278788651339154011596388696028425984380000410710480898457316608601051498812733706621669116122001990824595195796203606044500464593751928087317026018946918901985937951296265394979571145736783777769091126361617966849633197588087232996619162055885926039006939885470972797017738043857632018138102680565093518824806531191187449500150880291715840547341085181386657948721409961951409004728367089251343611433572249516832290476011784833877739907187465350779883229420124589677832116764667401020962857703983231188197730132166413126948069857335523084589995091661064639936197216123457496761453027970744192261857874913870804773996548526521002730598438280294841387538609736714603273133833482220816189924046460476246035718119897397998360478634994859003417582987613008424422468766273467444288877749128041789470409006852030370924558303412504286443044188167013147894802484488668878785159228762435212429183662595351547390704897950277615363634001469095158695188479129138094524986773226492091099103717469721451989659235710229366112978575663247680154861846621719629750564040745106430652708910885644550260098638636342434859935035501396683444390866571687051371485183313712704467574735201635991697658995756590623175553662471640007404212520608639980182337761306312670681573272032005884952974721650720742513463124050325536834016754313717580842001887738986167674790006941175895933170220202789658463130195010053355862270601373751828723179240546980287491450530269804779469574543345668579623370321291670285013593649321482273333591415895910018392821616780479226539300499741765597349437934712099303523867328041147985573444518570413523705457904276309018902493067186659804833477230233320485102153767367639236066876498755756147978188377124228595884993095257992179009465480124430789205961145992932753676247316924905141460035748577749050829777251607189335868474075697591131309984286868705935381029723926765129284901959794920571203696851177354898245523258990877408380897440982666671802198218629305509773424147887198257507788908374558513668397400964797033284232119846370576232149202609007625002006907554744800016712408866211693807554024880581747669291920539040683451997409398229885238688357585817515627139827894123947798632324925004513478918208333045360995005152012812064896367385330856548611159710081836755917623646215131093105289722502354784881623546365132847621431624758369276574321531631022915831857158948842747056284528206850848481677932199116673657713628816717344875168805267023634226279348303469823499994632379101196614076485548092905029751509062641920503868143463865033311569991026585185026834489870298836731874952314267834525384506657197756168529320796344877725455668605900206752216873226399114127645530049466564570036229007622193985892777698996684117175330371004982512451982126626748570879096847501237725637291673927029643527301867645350251471891506096031970068840827449471637959474395680827743054712408316236331576808976452649278269349232235238055322044125689784482442419292809817528710262306249357051058054461299061896012458424629999028255841164831529696688043923367728451073702230388139274050099217552081465887784265024726226226170907160195065192136646363879655653950487473878758604581237771970761317146052755385196643802731971378674251814336634807349543380212271060096264974213070603434804967986262935396455813384001014583271445399224132130053627162776584418826947227259011523148210928067051290701003439063874158813109547696944167264759648468141508220843452783915420083291330002893279230754155096696546217239439982974599507574039549998561287540268213105757428600116496139306243579356362850786068339876501001594492495439622738132807299197130824705908360730642775145602436809509741448882517634470821987915128198960995630457475254232595880278375608216795655672556915507422219894989956764526865054030014868551813172437349413097258953077248658218045356067721614246226529453223691630630617271118660821135201754081439910886750022896804062466233704672719603010045372522611719811589770901608030686767657516015904354373008113639253910695736365485379875466843970038774583134734057290471983625454399695936476950874226492207401175766904738682899552739221661083603518803414563988777319046352463162669318953767065742369084973078062476944600172251195949351326428649959949026878519228920533479409845401128689483249297802478803209012795028327705313372042390309372516754316990156337334676052500461999458287902173985405281514187271691480245987738459305940431832742573095392990586222419844894459993504534523307152831099760285180758537402557907095803732941175389440140451232408680323009085533131173285130204171391513218056253121789647335018310624502167142850820950896922488968467027681995081329249982372543781389223119447325920562757375922545185568960025155059126474305178494463365081386346338128084512773787892411108497162411791767519861919563115781921740952512030394951154215534441425286888720927781445539970209909682928875881990210019260236192365695374058960296593527066425126445640744783349563196322337414296541853946786223455357273392103729070341001142179451461014392266219258751357331241543925503159540970896423345340714640442032616100511325057840823187586615762007448175296656627502634721356182971826272325908659080207016349393952633823138688809518168713100050099247600985048713302447083952084282865905583282385482963674704046513073393933487610922197812356268429074406634795500507653173168271193842651781467255923361076918300908348109475529404051422388790705738806900933348730620879615012652783293304452988822169808744240198404558426421396829910424240320663238151348359549599196980275002958899865140211554508927101620144109824339646529785663604581714737964541242177026146392639762953900367707809333832472683818556785182451545475759636550364694887476204469059473705181745581939790306509648665081536782841552059070277308028058071096169336816622729728584274005208416318698488429431567538326889840711418783505101206392823138544395643233910262708263678034513191645788250636854920053168606851603828976213564018929722401273832899062490622044923511106787012120004498296465324921278311499948613425260168863836442486732170916136464920368105066294938072472388769850732736490884206984516456481190265508189498147900934732018311179213605652308793863069480762989683180344120809504988054846947137564481839308666387831648728126046687833743966251436355534920493455873400862524647053291223253840678812577954020686682584437022784394530530148678842930752414030398748306055700477815484539934130682738866325841282687212785741213312990041382797900361126713314900494951913308874667064623487797830290579543335703093092521834632525946905658245330514195834643756244008518343187463725763785033067479263220610008933747224020484202720857315634582150973575008183700128618193407711620385392348115451426657592159255570609893733225650231512939286001336474919817259781752793151469100962153031819500504715081413322618863726946825718226305653167527690027010275467908607270988657015721200437383925609545888916753530178320483537857383622735557611338929874317560918782228652936205628996043735659102458554035112914496484276186863362782079324483029759627569166389257000052019970442104794101496181862098020413305184904534757047494906862376870896148148956981986628866735355680547656270897133699980292764876264351188236080059311327044834522562949664093482433337512080751446400073817041746803147565406338269916738023567834456542428386554632529154688971315041636279927910603784011167658607601563253891932624619867630717603682013185804589411413754370618548854951003371924691308584360634542165474816475611872490897304325976465716194725610759858754669555104952606508789476586144115624059795646329096899034767904647104767696110720194807936273713802964265820107097515731662006960581920713335084525461390341242786659905345526423515687102139938158683257826068010625908672792449782798599529545032229452193234370099037918429420561282455911427958587345919184662877784500431184910276810614960203026112626690010665775477967414262867760133175637488984183865918894798639118541395148165815892248020385531127552528427929864887520005295180866219077841180413447318095597533414213383025580414065723138668607103565542494379182775733171432907994934303485941533863345219324441043807097144254477470009235331060276358179740615084675649294459414621372025303577745836491801903170474585936987204758661063352016162411794798994752128984256844466242534655485101834689491675858102138706317961447072697198961234635846721730269340779370782690541954641840211069596925611776259514799190120991318244371532025709561018635244696793489376645588832468467897725826735913491621114349641321121821655871126917875935887640069579478677659908389977940612109200541879507659102809739687273342082081962294457174237160455346789766953676190093723771109655900881015265660310399037154213969985466555734344256648849906730906916606340300318136982240181083754729710900258082029404854884806452267050632915396667270614208292083386761128309487217734576332457784699134321596987591269242906867341174130463631764066541616807406852815273155124748737486688316324361009581870130810072611365681517844133685917235609408211054088293557880194760223061223109560109632521683070202756644099095079181468255009286760686676047334954152596914964141586121234595693522901382850802550092732083404123958443443492958912770883186478232460646510017692964298090529117237520710648367294562658547503899331882197147790289359523499880225547850759269160560100090024298751485958335454957510988207526786695397205098911626762255433098601572565061682992537529445927653758735845135536210079960318079142790015454910945768048148123432286299803232647842566648905644966348708749554588538319035231455453906503788992673309774960756259230159792644521238901610166610386035778380202999445808178282322169520434940903946883665317503970431551851150194479460132156843629778218183113349801902483246754156169213230455280242941571015904770297708614415201747763510612785764570852282263996456513011472458495149637493071474497635733098353879524727966118962997430079935701096534813506037715053155302165164288046768780212422516617613121222299728730096496789221832210180096379195399215195986794091667559950436028066142436447491576532719962208634750700180027903181203194736649218510501484512117626084456557451861735423814029197153821198076704685087566168084951762469493607103709012810119958324236428620619287554811489356713951142404768775204766543620826904724693413268818957813282391063246121028751493647465623515400959429880479106799309730475373940980705534695285898495558448642557225815781718728378774896271380776740155462616004506021744580578939233616045600639241901840839089823862360973747502270421744508033297615499762657818134560964946857826197657071532912287410939779709958029128284927409109879275663210941123179312969028629272836238970796786430691636820091360970703390106470069829599161046392163406136344746600197533056918126439461336156188967043721523722228100755051850750795660748218980383112239065661603284383065000734602683579246624654709034918074338517312380774794280373111538970370672047160494334582778640909017972385819334638087672268108152792073957561971878496790526104578748936336204754909448603142678381918117398780344289871765575828606747689046987408220558518518049053698715058150461387930946819829836211917669161546494358609644941331411088925453933839569922140941493456440463962863720085482751038975619092232853617912241945133513271090056022801666673328272088470675826553671491049332592275667678118266911536232362342054205557725666721172577812151024948313605769058549860312400430339175677326889592555692002334732204278309937138817268968252574847421990623398115646187750820966235659686652877614666988194102824063644128740505247987932163109507264099413344365173493889060241374652974106201211564431875204708041524817157787598114971265739541189941580450226593192635750243499175530585394067211288454478316938471594976097433574252545810367327277193966606184681477376357902960147251058928250825362177633192663168743411739909219229226912440409793545458616270773133658781731766689323817073847704357496074584029756039309056083213473613719853828683345982324600903440124953983428076900783392614548263670342758518937067879775848518263475894588418387782007975759482514115264471425133648139163797035071196440643309289848472577707802562160346196675828668052732244477528181538984463264696547785762143771451432204201700376634096649094427223316565496334362400470856935504108096476918302087731887430887957154991731843379903914008111503622913853271503151054644245064879233652710143842389719909253942818358476298470980383387526310499208721754774392193367760461641009987811557927085310693447852125359924975480957116855795631640946053224960473359009510785970453399562466054030855948823077474212829110147494181659099599190398511172654473533978202944359115270486953694683969912707400299454535302910780594765636722309612999420635055535264580188656336025175277754681330062026226974124735516050452200475498059029800974105610983716596291249801216569020218312364780399089145609894133885241894104599818622024964237167528105318299730433388684367019876753965038629351948418752358941254235743646717948751227379874973351786848238549710923989910084437614762126434777038591971010323589496915095511210192085425026660314474919432357672978344789468346627124355570659860132230177289411643252543411198207253230178193612646049390982313963896321214253517274001704290925099883708448360789892227082415172389080272164489635418149219717142769135997324474322564767866234890469465581060900514560543450318367981800598643214671043789958114422103493511087789966544487916453456269205241646731249029719763438355509911277133869133285781527970685003316812749353530512151656925843335671683333556725409016225459601116692886833185270036633608847209497929322591556748728195437130266761087614911970618373320147226826247557021880099922624629248628940025705273150909373560479117962897473030687936261773839001519467757168688569098448586663162209776002202482780295570762499916384185081424454443297237237279674604156799028679969876893248254814395172159611362945227440496957179033589886805112878410157922368628299703797831954819855276027246815658029693232148387888146240355197972561947579669878653106233741770567167011908623831244697004017560687277474830268065254685206788570824423754047295615842605330285216113607523593943106635477861588859149767913324603492015813462457431543289093871307766042443702221482891023683190263825055012836227331469230988697104945006746903816943672310520264660650148969353789634232002462244029383147363230742133441532924292122101355437274248152120951551909482322473039176653884760407638130143358545806283359292471521610305536020895248046809610336882401559235309548685578399641873480553638824440197107533742729854721917760182435830147502340223127112588056399089645565588408529581311101293894269934804604215098344273418707429242052338916259397706652981503685876092138179786837158556049442989973020984784137610869955707555263957213054150191217638439317852297693661583879953054833942141366478423716516409809130062635231694918938474698820297835723875601068604737703072009756113920062403662727202378273202086947580784667543596879965964046172515770290598244218734640877508776401331196835177782951849439736783445988538804190021671004502724402382224657593950787105675568077529283161986687767674662608318184289126261302749727157205078884960724509248864682627331808729306283711646410473992525610384701098161901518970994766945629988069621313129487046893913793031307603265648107442281528045886019984947863312800293576074048997176149129576075677772991183201819289524382433855849631705422816492027979216425531523465996616202345154258619698373823530849037220793154199795352397660954025205184673063083994949250824183346431919379508586212526159009292862366259245812445512414427034158364889132746729408395782257140704530443938788947958749077853823613238675802674309064976437787288160363299690788278124461855866645300896062597073499860739568629558753974421696537844156992096760596389582481164849185502122218132682195322422652430585482091973522635843583469225315133112330381162719655238369063656164301351195659294056995887100464275062016237092737615781088508045136344182639568219704407526825874320510863745028628978107516402439626564405822622135677518782028697677990996952051842230080044928197026452466132357730602178706340068790822759283075053726447554039413611607583140169148014130639433796367264992071901808875182237850552845922772136655111882106346166372306603594701505877922461050999461695203355830043492860935652669403166330139370030735684329180441646494047469859120009352501822620225191695725152119027546194778543161994263385655760512977143470422849320786148680184318494302371437541346961702374423400000397619162524743349803804708184223197855481387068364657049913034289714513571211565904617617659773062190288592608009351180135045495611929018814607424618446266909854369987481413052980110872902571748416714067168589915023634022249752110580360189823968207782204327791749072673772214380227268364711089795387299763887433148507298419136743234921128513175632756922032501188779299217676979686030900972514447385597832051946246367728680983328135571474877556454230089354444154825062064705927064055946227829651307317021234110022560866541753864410674342138596714954042882481939668224849583159431197593470706821475348650613393418284708132861676191483547544742345091119070607783764059428167961314894538239562969097809508705116396011395936228018786261085146073252275242101786103359592377656797059535257045214476078005281801798220532917794420954732705041014457179099782035874448755868811397395796710919506462615905160023397605714499727760221821368081429210116865746898457287331382326996403142647462574983069439819246064033931068322156339951662222063067809253039257315555139455299780323730567774099164455632854904787786190520900438505344279540900466507893427549469417462974649793345999709728732069974484513598898893145088751742136943397374833178924915784432629522421102701396910750185520526094289030493812579958812693906318760886208833949016000522944114662510218314551238899593070094949591549899864320231936852122457555355651648466914997800892671775498568773023631426217357970589836678927494189629488671002258542636974855814568057388048532412230005611349222656950359793504292436969030786351656747167472828831841643799337591423468964497704308206164769841897973440343715989761272419819741054537904434876325269871777781791864365607699009350288156967601660378259510317654766779162445266627365940830951399516920262951442820066878963075303052161527139134282528936494646660555056634735388885920012227752790001851496207079206028674028257045208787560868056527025065657838873449823753626650204624852997562989004732302200785030308717006971435266723813449367811135035281269145038734559156741515759261405338059082192590396842607737974796896715312177153604890328016165296739672603081930364284616542760373358204446621564053703415217420857916293843690523559226874849557914770441173196629542173152429398031393199995935079496122509251314850365371794351219662237683154642449505804523433831304463773493286971474239965140197456314105581299513776847100918048020125470745363912380634026856049581529597825971690090237141826020891026824926600087246918513304841501447077550209037472203588693194368581203405055301202472305865025038240669921355929634087473723139224363558269623772892660659965780788689658950559846781499300189435104489862354002460222266858776570436270554161845287138049012139534322323505707644701345261751377984344245565384048588157850315314494912975036249162240596743931044766055109363496177521759343919249577023408368352467612231737039024697459785871811156830555294027223932766639462936666622997417965181869929152802864880900752032301002136013991377846349540649979918278543983213588286419598604551268918543040596203593217822019878422325922582773839984460622997861358179304116290318886668813206145481872063907369859322592716014803991380083695858636914997347256784925404322010124674361666583736969960567011670470717140616872164473423446315259758178992796783997254122163912127485828007825855500724013362043789021386137476278430390270112116142471544077869181187671004210945454584235501721410622845163424391437905639894963072279814736835716358393653692141523386537994153068659475612166482497874803307419803366225210821660644581592262046358779930105004748153065599082717182712890279947884296869851552034381886617358582180771446478302367418792510962701272434448894058936007461780444414723167262000129794875452121291310893488389346804665096149444675434340815011398924377943290128403346720939862845690989198627499991670404609735729848263744388423234653282330298611095492780619329599648153159519323851277159186395415318665039083714355642694651745463875461339390083598434548163161817729723997758866438127105443727675223169167332651642799451148833808361982618266584513742790768116718262648065027379137325114834887249712977012611704909053620012406251145483224522998208093668898615669141813473958344527714626475222127748029846160301260956819906950525971938202733660756434863905588049722542613785548900971702586308053299446247877081856922246014088805831791476299304848796351925250161904797366090929633283618036534839330183199427790552762222721681050664046376406913282510194620053498498225271507205470220679115881908893094544090351955458904680135983175406893671413222669821478714672357601214098800199229537107554086935885826890585839106504568662066598180888155127688486236879799331717157154601235160784039474156773738472976359714320424161280693634154005567668531886043178007992924346493856699435399664885434883251060763391099906799772986714563155271635975141151952487825498682245084608475448777347358003320187106809691282829802886495593890170420227615714024464171823574905629213141071057211526134192495574819634634258131790747044954138296450800477355228787008484826568256711375627404247981927545990618961778219038873291183050420682068302771172584265776732948864616410151056529445890891821771540289260548048343090393851212661046695451968245409584395505454895514934530659134628128017833574371649109464071275704049508402105390394761525110033614197826099275814254959366765927456014336114811082566350781776654189611160413040179969669756843444509619315932825540187481396659201221594397502766050265091137757834947226441155571895352653591121758503260349574370205680007376530475951654374579520825739920258395249327359511112273541933342765943951036993133553350887267865234706574833614656061745467087830193507943926943021674177104712080505544570541102259225677515854805118075412684362757836393306494278678890195260219341782006074153745259879941970514833638037664278969106350955173416446864944788720326363005601531284015206230476589338392388561457104171506933606291793200031892231777117681501853475654595210218759286255845417559368077726134184450181160600242375812022407181166640787872479231133707710667360456298390954805857779506643047017391860284258657647312919127046538450230656940592829899520317834305066087153668062243359611001471984502913241862883126838723708435725637495514259547210270451737568585309507969828584773614666894396315599812061646485510644246790344871334243393472567183901075357268569613635298062409466412230304381069492131609761958942383905813064744969951657244245229963248646930788103139334943499630198208164678650592007454538762264058056499950112129933782159063946251620790789547819432743152848278327392277300358452496928712768593856965707179197685211778205789888153866699783697673749917651522058594816722803847036988508517137033427797490346901329566553498276104233720273709393206564241061348543498831692706835942630933311683356820356008208395075482567523340380035563053902378750052859432344146753185257505266440382312686344744189859866416647650857957428865347524943845234280111233204767301246723610694087400201733651581055856105448668749568921080799473505033301867515766826559692800994335935697083740612116254518201286743038019155595893929424160540513966470959843672424864122904539720597364720090321763778407641262631553768905968518195589136604821497715779658603322487556506252579597278768068439591751937292141990839483903853353991043403948779454662379610277985445115216494423072011807399345832439651907649961886722185610328307151795967087244422733373440365249861158378526713997550758849507221242815094398542743000941688898244305493136134289227384649051058933947898569402140268313912084789751940236596749757050077315333925942328141344144302412104759334460823332542937910702790530191212569465673672873127977659342424450212824601917223920068949298918786416077109012541692597001739034692477399343589966413569919645063197624812905369461517499322313283408889390451810626724367304283820759058177909726509647816359027874950549375770426128608125453300584913867949414523818996044009673150442541813727788320932438825640703441600334034097164396406152525477655484189485908491161779446780828934079568351623562248202863787574980425408237905172760452818806885656212725089337418160492514892627391641072083669480661341362847665901081543096396715378972394536710501868659949554983690731495512721082359795931619632342111127771464204546389315376207823105757259833818596167079258333826809368786340229607521764881222814781621476129670065037124303952434591784276459995481755371646830154492117868358036099042743059162195570314634718153807470547817766600256811700291054820676346797477469160199679562609975202776092550987428229192339545328939494745438709602272164749466262216484110406470145699350312946476565694206673573399814516511787383638097581510098120148018466297957820931113599910216993586545149010860397386513573633092606158855424715404510937567347585659136760588198176873903667257375117693066641265627892358810665707624554051054730691045314333209330712131617289155410004601697547744647237916172879152520995259522090510452869894234153669330680364469457734463344748576906362767114111384976396116971490497401369763007664906671561038971595175168289122086540176255310876802477004065830021487852032832184122103540712277508328765792978737179894725113149665234877326694035968128707827447640980449196524186472098618954787111626172389819531450113258749863584837319764945089414220715113751912146144195471762267252457413526859248134548483485217224239598751255619598479900844091497724520411563194651656400238614754012872469694642811851137770442033741870534610615802288205024612695175595596054898488787332498161322099499849622438785168222669184923231586841970643212552836849717994532152667697609333802960736666096242214914158783527532977072684717459353267076452962030039780888547130293034626726501414241694708040918568614367803831324600924996514863227429139375649806047247824163238054163988669029183357412904615095495738899659873061392547698477597343190559027143816185766222243822619799210401655190228846399164529795030451261474718969529754285485807449843582201834424661834080539941081469059887669801837000947093412220783375644102604054201662885092826204576268442731956474076089960776115432912352308185293002590665528034914199706156862838489373255632079241248898463296702048685376930377328193336341642926555972806325349740448300300367079125983511243146433264537175709771543901716785269533248193925391840913200338593853309840035012933173819268062211010362506636063092321186472678538858133663819122996984114638028240048712136580497953631302635833230622131513670382656039879003391209523347286010834295742321002016055843355217072986382956504788547009306362824526162761782695051906298322878389511382004877723443575621338692097503341402463306905911157149889217557763825823512157644736216419587692449932432344554492755802460471096344197452336852134198542049748096111323898011210588758140638917949524581910873231752383481700088685675012790553477363632067392829683603257342756741080002119113241217144230580895102381048445175928864432727296458748062965308578695489975407439967193629977798452773521585011644771860607104756328682682683739011021099741018764141849982782681903603331349879556582934876237775189590797911314454048710079128196607176050950041233948202653459163881472129809943912824029095248380366482182028900391303188724782367924503155704637675832386346419370694531615724826964779360534593398482219821647239258711302605223889989317568529526914355155713109320131390960795246482293038985275740834289169271047013925063550724563381139469941720047924856705703060823720600787211487414145069933810674392667000128938723305372020808725306465076642493533629367335253001787354153930812445830383817637567487141218490838017047985917611222121106397005287276928594957745299867165574368431061370230753349617695447886158826358534583525715451710616277610417913203152556255927593736235833624013756453318851004482559620812038819470566170257256482308673300784716006056868412039971957530177197446068989170957407226872008386332032087290274479499825960517211689386307537403782146251057740507655717864917216981460154808206821344566432106865152396545224725780313604543018965307988580154428895309582178345712948994604567951339610011303082595994598844695436597557019226577567892865289832613182032732244680635205196586807292873493568633110504733053825306516491725290088475177364117193760077476379491277489517814509114573830464898085206095421338637387699099505364570158697893252215016120634114114785361661620793251748023075045718797185782091797715672599138408026556291898102047330200490860886173224632712566030275862372973122051998295619698881638499088769859864084194949482286707640205002693523447295978038857726931540768455344991775680840404983378193643218109345287539649961850480738714437473250673753269956020349201842431072387671344257673505591294838512753254287600935056101070654878012257387816929353086216096830290480197007386099669990521516596069127464522500398516775768288120295665677919698111884435167981559960280588532366580820321692456522567054454168234350543282689658072422076474821959546540971953154930200763848024080526539548283179949552140612944050367706669949001818191926714615992698786060841488392356825729309899849403328802378726057785221807411093706213162303989375146568913118875084673036349478279371131095255338032648034006709347985171291867501725256598192418111385570451395864841785720884664764982236031284361067705649982451021615772106510696664530647108666308637084321874665054015436193275389553893173694436616240604371381340015363614603359320831428251823329797876511322177455661518843540728360339705474206160276505692400796443049456152567599645415766549287287669151077014964339071355078019298066781701952412062776918375323446244490528684634834751881711935101383019257242219083367198245184478103613926080300630821253942706476129058661951050602573136328942348084018167159440178991103928983119705351637915399746571384938441107135996688130442803461125675890994999436949697682455950760994904144268509088036823819187358994440965418714046992056906753166078291470692386028354608714118170993406967069421176140578409594976177624225354044281497886753244854306402151466457858823328039960180090239845829439467955457640632164913503561099973324784402784908558373703785214960886347132059396356133880652565409406205505514294564469427642040796445604995296602979575872274168826267529366131702350976555615178592295013876868080273014105504074035087992820785108556182810735894314008578203708766768056957076608355112379184997563995157920383986665273694456491466466243097481171356927547076885954173671628149731175510087198437906773478261566533444953149060771145283454956702804063254507141078278676729314731164458223171749941950751595755351304197407902628014132210024515115937510810683723916319312591657111888248177047335750374449973482097827899667020916479115217796835786607020114820260141246695380966940954348591929580958814242573913885474353765043491145782687018783481540023618146639326926983521990666814487962848661014750234731144345835775833231533329883556029559049540832567548032320971982851016935606530976270325937319856460665344908304725154123531880217933266918877846044966779313295529782533234712666575611842344604387306994176952982678328783743069487186287195931520748902489352356030832809134141827657829030150111648630311301903896790219481762322311172604313396292199861667891046731565578876346061257185472237370694262152584940261635432842551996089576906957564431568012050879453250009337750422685796189595728620333771183411862840738643715646454280507906298794896311267800206734609564048470615708688666912527531369517363205056115566754902365941257403323025931026699584949992517955218906407785654581974576341503804349719307691393294903529936674527605600694868397935338270255528287490601745038459656152143906880255796569118073035979558758363248576357923364098830327382547163642733629170034401548693987285836080927779825668810054138298572105214351106778975048146502410118047152541530294025505992171687654684440842037293658417742696584054367249518557314618972525382222311598776052308639005358202692689336541950236543519141554320244041144249779489069119416615350253948797933128266925333449808115849350607505350456735114275718089304184066614661004815370879438135429590307838823756206417763549122901392216034238088856555560811159485450074136797549155449038332223912823646232104150167153876479932498883289216707945777749198257564246172930717301951521218343685714369335657132373521749417446316318510086641896612681895957618625550736810959069793174770581926477268787750560787447183002305967906642483792093278583907891679521545680307858030238877919143591478258697358245384549339785057338946843306758961729156888262572020220473052768217174166837680665799494780919676625546524286485435965414650300631297127346952132784193734943793013226846837117677880663166873698118281213835652688342202818161604053959967584224330655746474839262806351643436328530115254771196777782607966033981073594091349493266379756854915300140615001375314777830343875800487725296110257202550367962064754570696452049559794922806420967260714916051111400638129776349094225897143452193231666270960300310474605746347855430846364275963851723564209961444004344263327754708290062957715120877188226124535043143236180510318022239339240276944437919832807488941057034682749168059173445672752795730822040245609521123999909714127632388452209163021838328769899446939843040098554929259456502634374720072602965651113375505406491762466128367821716423393847706335691487908936244868235413950946630370528838656237487110267521175634487780130469288125161009047648124196584514793444790622425984531483790011072008309370860537271694389056341924392067388774165842176698218036290234075478756813081024588475526209114178912495848774052054655146605543150682214496449083475606359572602077138923868352348673809461071274389773587208854621800603150986185161145116360736344846073829112404206653807102052418161324123951976987199867575646559593664436304508174934747267746548828959725071788907508554713637270672420728115182546265853359909401453911383600394190738794890593047785782246238249073795162781429281737411087479627505247229711374528088423720321937753132055084433927048660904996776516077681498157065712200111257716344807943078033267197421178942224162497246623673991207088795270539337230269800551085884967926424245328630085475379191465233044102081592979554393069390996877190341494135295944239035915824847471740235350495494471015209549007740179142472124473619392039255280595303428104012556167324300388035816093726952204519692712366260967091533272643826426842536909343900445655324327585861101019494801359751161528553985009687521516695876808645698122021832998408566100062063134955313370437327299172946628681086190682181441539230990881271056632019452432180981865705370974734778975480051331868957713258123834304623879009190420589694174650654234191118582531631634383716453528165719000173647079801855002300009609598521606150991417963837162300626309334882355383376337673002178086844007063172537190949224543187862624751753537117185023554871647983590338464604122175367605858027228605930139319559347129477771844263105027974424971765134885055257462473445578806551732084412840754018161702659610122228969219036097210928674267289275534961978200952004623801696985773638433420817184168692009514005547502205409899107223108533300890695645302647756541536242997507212507247783024115186993339466194926457315305808710542773365847516617354234743273744653713311634329346177482685928263252678577298485174599399634099376371523322794539468538699940455849063081592630772848301549018555205379617985970182351679530843804614141194897020404265281987308343799698157159731562223782993756223046677555225674938880358039819147175358952491897492082529057902103786787846441379565341594496954957546024553975476731956334599494080916909124290918601789740854458375489492176061875574124582060164977159760357526165133598913226934551626015114381128388307180530960868834322114954409121743198611780205597621040464310140330906639891030431436368925153835551719252034655816719375861394659901079088640852397327604204908258463788789044281159454222646941615843086943189449657724912283960991280578102020001915887741306135014685859933505615874101377825543382359741002480895615582277500733971967893128709744449010612862844451500430619987506424753284512515078480934511595769016270835380890612505840950564690194811759698419644356287878839409273435268459572396064011373516296702158613316122066066306746439906601647795220419063773934243263040110211268003569587707491465302831403344221714584111989591516220311832142147633655739695092137972236944894530211453060342052687820903618305704440316469514506757189385393790866910426929701570988239585479554058050324297061912495273118524075736541914237896751803426083621514203669376283443689440634682480450049373145479400496210572264612870331473917346899968506917521034986137649184654820090887212963143700487932896721852884577877607248076028920570976430496418737942299182188319843900055967636840825504889438782091408611419892614400430433698833735572057673223628001930047957151565272672549854373286676462483861522754248746265225155282332658738322378503557888788764381171270028721632604559085091421530202442155404188514822203222356175366136093601925622906295810999685881113274161786815987277406095300989256596809124842311013026412151835652656963626280779522929215956719127521404696875892850663872374306214141921780943654257112595353193331637759521864017132441943075713098436117015157731519398075757554246938298595857952040440450448943595094956218682039978498430632028919777107698789735396652551852441718525219969824583924590708619212207247756497970710342538927216518163789580929417488917313448905608023177318366244323649318183672240556960592681868500467634684213160270011913709776848443287129764548985395054588622365226809063670488181036522359939934224140876105996763293612019932218936462482089312140813036762182033402445022301556706376138526191409384071098806859676899905177952907105733521183822999395338977825362475190454758192825613006861403554243799785529562556916186538715615843293998026176225352442582942153810436544835108138431084732736847945942157896359274314696591452975800196886904274043618942793982935585977540876881595027323331023320608801344772345062422879590612239456680309054722313762947939213651980480564274159686898175579139369614206637667516732500721583586971245202569177570107178555620002904101267002758111490596873720012747526846564910931024533502742635112137247727175129431655203216082761168641923437703089582593817216199048586243866630112607296199936756790282163758529537388699567322519678988662817124253755099072948476409570832107123830368967001775654321753377704700560454189031166998587521566414856558573700598856183350893718692498012457501615015114868405528498035315193342456725093593410385272334691813741683795954782885823799662053486484158205710305877830129688386669772559673240862273684780282853608604180228203077141540115266419427778083740139379867507126735681714386619590710816133887274393026995927340375023961635345688902029157653721083949157445199473908805723079610325592453218101230120187482816341933275563579712811464943943273265540441575417557148857332213474834851879533109693756547171193803540767885112920594016002080620113884802143977051848946102704522583975280073758270799791840667966488586169080627314969261287418701349395090398813062855126490025842576721305299949948847226727948488791930754658914370986391407852794568783393110260363792909060384377648077527911862536201753589467272265474117789596542664293351114320749276451145819278374217653957077161388690387330130567367451280622714571903559345722709312794982306795458601349790779687421092247844936669330825970004935185392090932921106406645764581203945327000009238773324071433760818243571937458884329302371923334341203238605229772366719122087143840678385056708088429955754440055484869318925168816594245129532813709895400897684952647845347181882656836460313764015554439950719324377482752002451215251183386608346140658383017873639333423686487639457463726413961047012306628364718547071353714525082975705315439041729318655536180916438424746595110778591786946594564488358427367073470477664452555007956312981748872034140373731124896849112736448413022541598668047919275595693402081909248884370434841627454260963041154573779335489800881458415841868797202673654070367121605030715470287464256225338810311100774917938260365981093489759466559221014655416581184691383879683035695524998772037458226614746328361285085009806028646631458867405418788538199509378970125806393851057641487383182156693296972658051071270729123499049974064184013142737916960743446533972173945459908727217310377069209135887147510557410061941586536811507579840993593115980618432043721883373642021463191074285689703164809911828833354635454093226105992609020814204583171284701698780146474699835655748534911833609020422654292866208212931238589185391574875734050102959600398191602313481408232907923491718946669664422824817182358850654513722672468591710575913299000945043930697146942885775697839159691653319790158899846874475638390144780706921972746016273916059145653183379781768539642407100958249960561677447828901910730567839960403976494601807853148879141650307015611938429589334637216135421775797541743761015827689344835293550160786481340138107975279697779188414014317076212233164529033349009229700704512313314629679109982511056051608540216092700012523539472031677629357179468487253049908222231102725745222539251709314177302163306312763335749606559867754378870102778172828159143666503323840548083923419970961040050339071191939798330320373649624207574225668916579685263857837410996276208614551558355220760120537264724252300591588111255304095667941975506230352500565385740772209702608081606691503198012691593711943801871462177633382873859622023360788569648498088451223127517143756675022687789578965637912586691419137802690634745971115087524557199179102123755683949854788479923024675341936610105203558323531912738693122784552230421912769479359525513565468638192114921463254923741058089482377287778990662009789206396587536809801705101506178071212429011490826898469243199566337960707310332429360725068177898893677759244889100109786528834072172550300498714753415923093561492627221738167784078039039633587724302451046436886361879698100591580313091919302628990419347008310436906526360192629426170426101070459664317418997457034120870948398730898715327486557338236968733530689812742581721596711894213911169885694932097464952295509685146440271358996472163138503817178610876893566806140376654109984240786008617717433540906695798319191075763211808410568751682550174480814475407745628660060704034394139326459323112968300498556806058919203211099758467974070954448292788008499973932152614274130731066835152103282274602191402462354255565776249963683190181732141266600738970115644329813659671163314467290877501949424237562202055793308344615477965130159381906483599835627732758744730681171848883528768090227669126099701956205640718344542921561034039060538537255588748646159786413841800199662906122710190708696669464930268503060376372224799828609202490645339305655471548628351916047884746728148985557274069753577344234797700111666823956548059372960955311496906187375803728879153215422449650334546878037920597816249095290899884180360323275751620520604802642449250573205263006214901544116308903762623448377916353573981917701473067459896896023889786189331302196517133855621568537091035308393729654591321834304049741630933819815751752420053569144873801788724889804386579899050265970806628089026578331262431536407383120228570193737755001395457542433480926081557481759930929761312087309211038186020990914255418762855757236052669539046586403113573263382660980019655557193174081254334982014534940692569768197520096738025690509122670053981509005514787690439368459048923841688074946702740063010111382964868333533778887313799612755827401143252606353382887086921121943844191296659057973434118679376305605412018574449005225727415140832317972783242723578461903675353441585211489077686103068439606981346108970924481889263610981035400626238241901869481573404702382124682741158971362400559707313797595688557763858097068137073831476076413523171657877508260651231466530588931933227853585608660464198285419008533163494694767623810391345817289946234402934267189246949127526010833342784864705685675087692611854927059838884955098718572382957153430550165366176995791169486293133351896764163760367225396397010305414984304443930202590804357602498988235453557162484156186203113071548538209027716375294396583517537134235850184178361642215554076947108551226983886986038072469401791749591599159858006548402884544065590724478131764092848637044490419136084504782628893103001784618764361786015092949804489105067133487143855482526528629482122115535769762569293159843875951190930886451384689085770693341259987254399230975339412806286361324063095062274477747649779722176308530273255140610267253677197666741233762983402620346887729324460957168550440433183214204871375336908541910620015492858775780634341527441870626524282616168098059480531429771947060532375015251915649533815934786983769050984493420263699094471107973873825769709006581523782077667064313001362555887114301528618569368976043828969624964606816012110401030872137683322792517759436185211683123284716670779835776798666785065800266190654036792600102844093619391276191926936165862718588283808376423961771233102286026023373395483766590201995176908429905566418490962935702872058915938258040772839719007403128769860072830189219214327048790504632437313806374241114222042233394605397018329169960105368049144414814162409455315995817994404363901378021600681868696695496715510828234612477001334292344247873848382933199777314041351237594373644480288731701492947900284113697584322587068371230657242175739195221779004252133809431832411241679299952368186124589825795104745742324141513395195466907725097933456729355653090900376988690647287358383220572420380211996974975896135057782258021338593811784549571740307651329889529699255672442639393161287964382629954958723310949764323727495621202312471655286509651710986143532555896015602782655961364281055647264269642649760748987126390127622508189463883378270878072095100016801386733886771022887268489214670478414554568264436910252225790314068450376175581473986430147979636722117638704875354242419011884695294243933159586576151961327186526478861510283681166260783735132629938742228322280100954731487314182365110788775258635655477097356742790943238970913496727692051159487586774975165348347614263337720140072489979904549796044412748837983936357520708853809384956078265292659618810978667017479362944219078153492004892836385164294781327101471956709902884776767373605921785980974863857554562658178426708005194839383404258894804294875357024588812388309530266070457968746830369801265028198300677793009393287794861413776558349921975925999597606520184044345263688827195361929299160782451641671134376703318005220772581045562254317593035210223813302918951782409589590130185929291857411861532020385620786770121079282113316768724150305266825321306606154880531278928131528330051600732293616708918639324408390461686791503887212069589743157018422806827870981679380768320384902496974068721402235981646704722986387281126211148329040408015802981401824905429664807637438960276190424518854560803777090550787406928661523105882434421699863494971369001121155577445759852597793289002468790800086179897005258073996278583487235283656031535068824451497957174642877389008641053742209266939272335373692601464773470785669573612075853677169277137330971402187543511639541502541551332936198309952572705640180130421371365494037518650255094299164191925296495161425210309311473386726180287916517555733882301381245154915564856659471737014418729557856528779693142688729980210632054690499856814940478970679745454721421577167439320885158551460401537471169830414046088898997640722378165071544144765773486572799332265204228780838012944960354557296922935379964577394843529778765491620151938822680711315710888217742666087456892023336696518100220414492942366955636296436721532236965616674940082876527000445493547659384615899527647158988053123963216249042620279324443497051059099688944312349799023632683162236240421691567975182708696259241665198258287764193592754170726767108435787919266167577324822084010732269838204183319965862457893745032436714296025262031964904362273095217925831319729015909032825849298459430985655929935252610946584925787272488010570177592766967441454283834189304306099074328492501108201203470061996440503284927800876377808173290097882428122222466193533127870316330578150231936779564912139254490822180863805707200738088906938748634815413460383458611262683877858008755493273402627920463208944805033366906684176314401322042018360660410328380635825540446321944171130252308489719830473901138685207005387073859455252926030983835304714519618938535637866127387562000673766667376787660608194063053896375450519930718413153610586470587198705363962693977027015229267520102539724033292272097791616749378977818825806034299265859770763445601893461441767666837101386385531050509787186579138271444770522863193407925851903299873802240776077577830349759819088694823194116427700272706611627039674259221838998433021806163822771610582257495821976447467206704138679850862480298537884779189231691367951333118653987812885078255077283374412506355932487168596506300044854114106240414920422450608425765553671105585095638066341921236194018308261169762970305879526390892471617139701223166870855188919205950412234551621096509020463805972199757077754510252511795602555138716978481496658348629341165302409176392863502584099287491465259772233886610214084199584078114024982757234592367704060052908585501298110473681367153683209661062578183395228443695940521465938056995835877039331103520060980162343730727947591517833784077750170784670654736716223712058051321673648683209278875908715377913393111745258043114721122938645562768110636220030559167114789408181757778057758627052310663487293427767280187348190449764226701803823452109890879803074053764578928755463757840395388695196109524441516426010560300053032362301435859154423411728075984052013004356671877016383589082469512878800897677287896309839452985403288567188864254693404413838517550953551495358178400909795802517278801457190274854669222300096753812641729421676297477193724439242835218708805080477887216750574352982117924423567439153713033451890372795034528384157481833754046446047661295671917541041465188854429731257277604014036571522124726730838291918105294863462811303357338675142046361412031891255930165469988879267814443321637238275184773492782732476707089806650364863300031881281077857957616009541932842294220396539046548032901235979726637848099350559216641000827010433513191010502415723086424500550415179006154063824479036636379531631302948400336409179946510287966231138883949513044969099261677184585864487154019508510233608886419153807965811937264116517022056849573198054621877679266597284290353338191558702594374573602722818800782622623966116747309324891980315225626070091466460213802698619444513193544480151654227833528641485748736338763287834843245962558745992629024921200331763789923512540572929300740463777113813132912101999265010926564309901381271427709497708871812910136674286081800034480211558079267415109665853015099011625049837576861488577222155720120387084573476373241296409184055202586144925649504670601609454768669773956159337051855597074976470984788933707045987838939218528609189693505854032535213660788932823647782655954294365840159007174140336362498164684635035147025604857025311728748178255645631847799655427532597625497423194766956877946537213197557590874707872571586209348152630884792741490732348624132249666081261648069366540650085227089145176930397712918149892984487613925764173679401278552187201564250766213212712189380457561275283945482549303171031319991897905696612974116939113072398010778314209915067400762657825249171360409225958231282581679548072558251068018456610253592643824488333464976847070318416664198849657135566684979056831064657576329903033175621747628937386100615515971529122584118149807349124125473113992252349440214703112471469705562917185640140670605440021523130628746598336430936803706596320764669429039187138221628534398519755262621592514214957800912678425783060326130560115491377741082431176987082277648937033618844360223343707735675498837845964115022663076401710849136278008167856223464785656421433273508655420159882016279466198678796277218699551645394816980199648088316768034538542821203014219165439948174395741475300048640292054394706888743229625222352527637079730627364642901993298496474772816151409220993417195210604871160420089756369494711940157497286310966693663431571004215384617251326877497604909819660741826598341874171913008146353090782980798487736448383307987630360025493542197970390199673885978565783437150069147874660519273198178704720187975097575881563804623479199562772970569814356760991348080891632764777927216933069688804152357262772494502884365825961457032896483336582809919302423971190785656320342473769149369896475664132555389546938157505237662218770025812677261781075728816515063493006940405541812784657409035668358408388571088038397364512240436114201156493496893918311766652167897170441185521810957628319840180340384988059549840479764729289471899911317961106926834614488924651353876992621143231158440202959374735676778447611012651805839632259828714734524722734083866087887600527185025898504133045450581972536926589315639144975719948737717721715749505019752768785324616283618024435198839503343373302323806776645734729849509962098488491673126288383082758347907954589236160961655002415252681058392914558389117058632976556623040087151277310719789673600254373245485696663385533556789834904859285308999070150230015336027144997917548311879725861146651197993156636441984984831570491238634296090046705996028428615568521840309055564063300510023584226432980605595620583280744635349486034692973686769767529670779727399509725411131131712917933246241028700634014677953533241133445526298308570304985882405543973281052294778245479689839549019818849321150670946147896664838203607272038837523362010749390292456493494693392073283414093637854329348836569905775304519526223806498891317623477920319223071692142367679941488837375288448678206394321600284840290618814329218186457234770367994963886856632738694622743120453756664489702393971196654466952585963178541503555274061891223705089789272337581648571906483884581884937851605571092661071077699323047405841691175268319325312003452545051892405322747595770430098548150298974034166284624344282592428461290978809633046702795828100255996101761836879894571102572010471566984420218245832828628221746054832829129437111673259766549092441773336742006351602732867470214154726673319685485419685084351041737472458796400506071339341746921579380556472923639136036003218665022254543650812232401467228506543003495194012985629753515937935827927024134075671106957675101790132142615422912257224008874176559576705936168389365188272768038114316229872579343473074858407788236256999180390908558607150163912666348831843495982398774613081300199115220179973694443227530006918371980088771413784806364245680401953707054902422382532189219486335340878340682423535760866624992263579419392699258158228280574103706810588992755164053384695243140282201506369248074436836757792043305492642738961676447018241607578632264672424763958516052745612048701444018695377844609619486923276677503469935710158201910679948579163161944977042314682259034955333506241919187773902378756075986163150683668032664612979334329075379181703800122656644567823450390876329379787884702431388187969099656573669717016545403803209596797308527782747414856725433242504951792593060822483551298696815599946129150895275184429586674592309573205111396824641944763835622106303489813385156193205902222187654213875248685826011002843841752423829748272952151102587174242098344339924267061571724879352096999685364759908288913806399759762487345314909634631563117844175810211815794626203593441774891927222002986236834490666249586394374940618352063409731229049595136052644419590570325526968106706148774155490977202916048071290798803348468406927713302782281510887492369646820195726723991259017045344094335679164043894846187511207823508616669973932733781807783679290245377443893589244734651871401175342793139634761573692517613924248337811415243571450979149549660418363327365776194884138013562807521830691568840793566370365411690726377928415680959618671247486830033011450487072694894161757477503927812053272259793555306470999019703827644460149380558477023968732928124346408641015946596826682608666719762011538631856442320602675996921816926883546221993966345273673735841162047156990261364088744031922944342971155626719512487743232197664272706730052437210845315294100253864035774499725065018145590161112257023475105059637699649926203024064680936495065611669082661788478403935568554777519018566692666677376225514440319723478531322056573300584233706994254868636176022848137307890122413400419821971498985728227153621982110929084185141999501542135742324035734821941021628249949627767114665108886374242757146121401807323078213484245190199860352141244511102873569938662868033651660898065372741604486235237534212635146009338355888066619484078111573118643725454124585283116696567879073802482437871115604039747439300567838871163554686282106991711886109309730470684321610330728094886739703273993654495606420878831128645819751306049736861546635683087158795087009042547971501931576325829711678588366497615892307337191746176662894993286005587084726268088258074903348742181674236765393640119241212461639391360502506858556376026067121391251074371444202098972822021243542764030086658116561267380834810137261065430551803540715578165352832062280735553689307902405366853480034146026239493644345373379278167011694867563644432091501475235061334031557610311360410968483153292378346865579966582617571840889615614554086805200773734179891799719080143541926577641064405651230084973803663188212588013180529667754304644039044179220794332639786906140836190392655403960155111126847600350886356765858057052423318450264058168785471381689990407987258258008930760821584627485425891607463759150135120623603924480709546651764928821134056960399837987667418105827982203934710332200079127096476722044920552870155945351103629410241696991637898645990641750594783477436591477265356789565775632067278866568797633520953292519231633400776303337988126350527699869083133912370006644792611804988257892381795005794001754187006859232435500620288385563159706785872669846879443276420056864880107351455255215775778711052094328894917524898052593038586631593382293247923997902640623157249419814246536097206142093624185194928039924518329726763059967379536543739440713276373053767505823363185463259776809933485019822426244390503219610465920521505084053291321200961091942451069709997036770710183190794887255402452563974937864974195439855479575189505727068243533157807793635723366715870802800882507356455561331784639650001638212281612983537547904486915805266411590146593690315486057247976896290148359313928527652233568690630350887725002016713989054191006813958546669210646151860159878785513119206925351898994182574518730660767358546387602655374259434853151617790703033345027990196656604639844068343576320254017735891644744614099583805145876256807682388836509028730811153675261397140680457916661233356477114714669141352525994248999901753232547328757364078963128950809853075689964599218765186658315188656514177813282893627411784562763475566742026310276043192450209150037918379498547898626170506866345062198896178362891226339143326101311525388293594939605715617857828394829008476748208778149676761132143336039084609664684319881858278515452230402134010424931473144111775312970140577579402081696344314301177947544130182108591051193967805898829939943568119866684403569694086520843466355482068295606988890044538417863782856906491066942221772027131244274671422226918555914535324362450365080802986733539845206412726692899338347945108535954898497880856420037801871510160888821445352747966520806792787492347062135547706278998410296749555120497886975779574378317426763906056795357988127257300381121909311942173044580223658649169690136322936505253550462075152339929715600232226070376419390302763664849094788114751569918106516548954003524290581161983880681317024968321001921063172955306364609659223686883713714105083360699355275397909753101940105770318661518663180322274574433726308752731014272153096588190823774588445327098480465075158510181227169199279611298776942351845424778808284956398828509418827509492772102174455500024044931943164646662249791264692093331571441498757823185505722651670725932795788187004233853594721275436602124398230630680452737485663025471661621668390025068325893710027258671143230363984666751407843861958542622756845918223806413604339910712471725251807649465719072236500153481139687252496306165257795397401874020040851297671319346317100834557628194771483327159824604820519581399341605289620318180898815565936165639740126346989424688315348956436137376567384174908008328106843739746378711196910218947889806140074799881608765116886332670952379831867228642255269268297125198567727876249934846168850575981650653777396147663744680171420980411721785770950394040303908464529165315674808050055638897961638436168202591397946548719970457171517940768057392877789244336997058266474674941747269869162594700091742691497078236517243212989469834376062750810258940466206555828586506107661193376436023264053916718777684170064588934595018169480721266909432252746864223322780707808009391974744112398317087607652176286234671047383139552624449024326395417356975971674100877450749545562381457233251430834140375477489079017761464773134625188421921814733074712997668859021510321416512803689712063534271578962739402389962401042255399556216273005811950826351462721026985151953223768848908675878450945014409145276266754713638525130765523603769311766730995413020028487457039708941190454594716283112074588441652596423077203453346933765740696875293321418822752818382445249529029892677419187535940334185117328108935010891076600542178014175365860201443676735505431287186931016714640422529159880389180565393746177731320217667513169768858991384042483459386671368657127673545797965685696967827081297483438313332992692842431397136176308259738257589881276055963576041479451251350952558178956843534085263164362460225492634320152491485105707061089578016605120102312394886454196437711684530825027379951552631821359865730580334938943933999973707395181705569287364501795287056786576051766187632885037093309512403378893445500715541010246680201042926311863461964944233699066737020917088329209642229528121057300070486776565416944887438940644387926990209456979078026306094839569948733893757153738687224800817380895655824822083438958285264964932274342565625584810837246427805897394297035317503303528728232430329142402361129652789961582274338550384239218462246029426364403319055382396132060783025319564027253346444127700549725525499474705321609840807364843542360808273997892357136703675233191790867311221246286917836729067502025367521688043191045410584686290659371815190303925266923808957519148021265521849726508116587303912624842143023718487663195296669134132373174040310823434982764833953791340538051288452119405807008497360554222199122520573802125677055570111604741258427673299991364815151135237547267070756014018794761900239987304154488427349288940202078746786357452151278056125361887882472462527004591532005602091084548169158080121014600986923522902234870748850058919808136583187424193918561282466281157123799702113802183066301162754857133304058382146687457021570948543950258125993965511346295449071500116895221940032120712807733626055653210362957154817182066782983275564483592108472321863601500681366835625477383414294668941186348857414921197695082844339261839970685536031553862016732886596237331611706615165425610748967938267057295718489317751722256010436385949401871586128946667438431857240218100883974525540167884386824060478769059165863139353390391005544427518905410897299833057894070249852611703736516379580207956757026030362554366953647723004541559210559232804680294051142003231352081034614533318562117352137182275237878568280678588807518750653889645293107518445518261246270081179027458292582621544562534093077485930268341181890252401865358862435868579294618119575668555606728579711522397027363601739174137869701294562328715435555370486628463936364079933990836973000804640433084442032816819245171677951083753024577266970671406384319666248402050467368188993633860255071453956059161584572725646002720232365310941194822272744224258925774073299082818707570720269060532593015669679851627177079827583021387179682615174809206065013350732147682742353531558352118776096117574122924390848204676725745997696731826529185557248262847674259319164591518849153826574805690064140631967826272825962474737699471798736116228321312135153897245366046147793388542494879836513964647176728810651461339295549464667054858125268144815304193590543087725474536821474996568685851151409825536586648550663041243731287102626435821889317468134154163213927124014487140656122484694522211122402995779041406283412358741778224630321305709688276598448636751131410170930707052322873127257912102220440417030347636259279207381780743469428819283812867381374862293034881469503119142339434727418158150275592796603178874429369000429615928715340610024564150339071716418462582001541366578413986435065024812106914637202618735351557839827065509805940123018085411463509268424999972712990419858489238894745150666310350654493435416938729328229452813452303802169865409781185494367594828604044347345503640242463607714785214301724586364825688358787251390756098908909617704169942945357001554706289635282874370675544628064131065447675676540858364337866906987809317652502981398323167353502724566199351881600383303131231559599887978519060254343506945782263907966150015294238295696482416151077154046234889739960908961216313784422051326583291887306131675590288780564241527162245819912998488519850247466717699167250235463466056688545064833352798574036588164317837362834607986646254647917731118811509091349467324547104134207187916956460237360327322590421206486279794945822129230739259962173345994369031554488310026875738021204974720829067435374603651041962796387272760371850779790837152301188482025988760163926831806674536092402325344154632621378193739107655366311195700348698325571344585525005946265568066652439840562800972414973970606141781741880847218584551059333134974717325113398982922717339779461729417387476452977891615196754880374374345927500097363995325513616726797836621708002591207290035796424602659668900648634006142333371171227874481940418864426480351157537459604696158139531444878539228844773622922546858337647043178387876165165525630248080537569657440929950662092827807749269000338757578945352506079073994701373445496786611060953012112363502602656077487749568979133055398375282354997171670863892680577991191155887590825861971292901767466207802004701290753117814655604339784417359484266608497022704554709430666172088511105082528425234114236661338703926943892010056535408906555037146013874509421281774085811100492391736416001104513765139412245638779097017408832759300799073063757395618723295314159270175616935813287147384429369304021499049756750061587776978940275639367688732947579802191816138905448662597768434009507295454181070829833539839687683614242548049323338494929349812369290564006092908787149634793587689759607945402251896499953444447714298305219878251158612259686297367416636690524221116739985481056026486879755713293040280035531203692813843335109391097667174061364860040018779012256830584189162006939948087089704675757534409860827712129489049306254539978585533323602420088890073166625967498871898108388032479766459648226339091095174722295845011172265765397795331534200171134059862015379643554409172505223896064710408819854943391707500252656427186439774113854915110005005014206555635916389839581163036111690849131548220156561582729899009199514034192851438076137534165891023764541613420551864924373092333989772541338805571800903684515617235952091401779859733835890194407431057778092188124235466518510001096436018089354695937006495574662598856381338708881604745831984819187959218032271132457216145943186497268027468798338870295137183468733851385268090346064026439469130767358375369338681862577580134426674698449861819610693741390477897580241828912042053321338015820854479000901708273004952941013516319291412572991732777029290022839373183454595929687514142716801784620220451983472482569331257083772641118790593132603586788038436889759479428138302821173841769374119470332923869505715850016740181323354623264239074963453949766775204631261704763073519296390255271951706826801294964942127221405633853153298603608377972846537984038551516958911083254165865491925474248386386698643176512504796366687957178828772124551295291317732458524046628628437136697080367233627574795303914869991304327977174996090557735904552445886722581322676118491016887554127361233964338944139126112427272209435032242595871402827474208326765483381031491806408627082063427844275508622208316915907350057779849474297193423810881748071823487984852327629600896624981266775998971716097181008467006236651278552251988922233603340531301334996638212041064655802830713709066570073423902355227045265536686831258488172029451878323456397674495447483286116663798409504577221337529245377292506759440434510195893733198233718555851060218354218236281472256140077887482394193373631446875372275986589775515646862927801154040770661314699813884036576508748952574363340945244546537032296567813034252755026504260096759523001320605389188096089497613933500107068447870863715209476099882951629399603145938923770320473503180112851080937279553563450663208708717934219427277326969281890358548828882586565028371227595919653468135044227658378979457368719356662472905828492057647625741061444238812280419111278560709787599204929869911611911954608377699636161807176228376926593947023541029081253307710404513527349596804004325379904447244222698428204228137497041280463108171895212671346340083622352648849685842607077238565840878181753433437281678212014158685950073205598923200490874813241202047220027404884699956759436932921723126922636316512707587977512198889800749930479194426580254334670085289693448683130294477998392383810531060247234284117057370104103968559158463943214504614106143159789285095988253469691199358678031382519413574146642419293524835105821393297020117708494353053415925569572502790716117855107007181789627120971284314232926206484406692597390553010959432500328981854846966982187706025601948200752859327329802481543028800575784982741828959042107307590006489825802416796140481203484170249352362602262246542482950637932621279072256063915636478620878322183905711020134780771599984143110148871903248984263475415715305276418374758173734729246688470414908922012191301363602193508238117334715791607809643180117119782018030193196808391255861711835538647636212798771080478376115726772555055130965387549752852241139149172892706591325306576299495950309865595238848885730036143463740244197367869201454030636937003165868420717816552519255075676647865937832782334309850614631705636181460346850613940838791760428684954645827757446530225235131673476593119657523213603586357115042264965865728559098112574402342010090256431034805381687020432845699148361694931773592364672230921538638180401172974513936197125881427822366450530031462720691447660729370600127986174551386329725083894839933752147290167692290174000941625498061674468292418405257728821341471812455715392617149663199488655672569142400535240874031089499320186672149553550041354810012448650290236540564799399015927312588358965505961549780299060866821144095578068808427550302355717698110690015680041102171672801786826153605710967813537776371679517124525522813733478164376141790345321388572600293810959894281643127317308268416569194274681307536719514475149845224016617690741384101072795847262099550124814649868710030744105755642462858831158079022116487463368477787670655586776011584876176089764082517536771106617413136422784294863731953139664975465517496244587585167651595342121099369758869528838817308785486550282872026280801925237246041668620717857982866491468613625236143646985424119502378114283760424597429643740959457673432231168667654877488078588306739233919470771676802327724739809451275073667007902354048442908901692069029153240958188217637357202861965001370306601384827680480705569740828184527781489112615899293311899919902067252782407378845515691297079286843311316108369638642998045049739619739031720335980083457587613344529842589938188561111829977729237445060107613995863366222981219644262000670378598605510181741978603476755566998152666931024189406901063679460703280858690394908738967334624779113342451964558727065653658166381110186119008947098252159383639930618200857599261088213024708272907474190288188927392554111320516659528685015312918577067331723116493503183708709482552665408226467790592745431307274190832712060736012324614670094417474590178982905322516117022369496713101798057977943676126993053001625092275674132573497185181665227926264623261668917935498826496584812338951145743120288418737569803347133577645960637074774863111418467504341051632881205892187683140766863577885627962314581217559461384443443188772988365570886878091889233662748365450203920507076505627677741384508845666362180164467035280851969254959660586253141755793373154249140618234181801437436867476935433749586652498043718459737414132612536904904212769008508216878388404338704942566673033041405298257851967046504956524324400070563753353029183574756504672862518142740268855954602516213798830212857590850857686363926582399790101900536208129149788394944052361261358069405920661014872162478247402220242797457371893684912282202200448796584698274208643327092551199031384300138877217005722185690043797855722923911658868836035363663653166759982553811856507911523448307927207040210535366178851283839562738320156197903076150216970262308629824722648759004633743376486277888387479280600658983574289921864302741811899247605169058499288489574219988108124068307979837629288025546845840566997831444088585204898927759627033749545971652649454272586390599392549935281228616152867171944345655414287801068612551943169537536291795853081949643029658506878210525350769944287942830033273939721605072810868225276764822041383266738440995874276612417025238437927691950790868950688137617402309611750852767290865928052300780835549227670843432646781643481399164044909700839581721679414925591205518774749022518144207814875856552696018732431472769250103833777017306000983682205216664141982374042483982737448613287847492426120024813427864109142268070983787805603922559016043609763623535879728502288510136791413907791685622709282909384943880354308836686662694872401446077701150853481950866580848467548555812648633581731198281144633287919921299982137998394770082119011991989465958992496196124801035086304888517950006732570331702006508095373063922964224624478318331034353442915777069943508381695177043731162168320004926148401289446991699130482940106066798158470328850172991976849568038307374628515314871285100368985407862615057174000791821005147668232426701113730481910676480890809759950138628863719403632852959744027600746284804985669539758491028862967126007566291545320181943365388682845553424674509893053059996506950907710087329479094128676009391496178514759695993737384938424839108302225778659374709532767996429062010704685203087696171489186180351950391317575552211875214596116978635964559651465641458132939512445187722349763078388498292938327625673898849203997945947586629774260830886902927954418231169388372205040872618553736084585557799526155530407029481796852137052195087529288139426658996450112746561222759574726349697521903981668427851571074658258089658745621961131324738305203988101511059633735194073578605538299016519129211165784807905359893770694316720716693855679933348642600389734130362320806524072074448258060347262889950091611669850273143386166177459756414048312255556220935490080056491216758997071983773147052774250595997400714129308478834819743989387198743459552237674798212023032893891965789187005552379573162520631748364265381859857384734067224419582649036890347349631668314211446195450299990974872982518109608898359447430584765286169090775551706055436767478753925082128583346640739701471386963185461909836571864323394558799119484396434400540490807087793512455842504632187012701281784778286596358354335827690503708270745344343112651723125813377616748240844657014790350838378809076378651133511422556352986555437404383477936082786561143905930364467712119309301893423655562917478647823194311205646453903720189194106427741250530943903631637970513156803302469282829224323392391474193453914535165144371543565044337439758122931881037740828030076620875155795302808953252018991845044354129477326175090205572075637219217829879795307271004205487031530462561181390974350526670865085945478789608543268394098074612840953388971402239934859647367541609943924088438103194272212195582765627227898251549820479962272806479038121442749827770409708158174990832737243679609637110385158784312703566538806809897979220360362609859690339961911691516712735876623551986178457780744364574163137459695763075009573971650173802674902362572582645469225047859739417769297770222298131864732683095945563509494579414464167847438423453100008365587843055765857452532710585583771420712230466748358727655842196237388879252115384838380418298945755017264524740455370209548477487057994419431146781608439158346760352971087513893216456294200961742540360558251174930564964646161024069647206888132269027557373396322768344277461608596340923870261745853383154109149036260190220055651599096828858239458881180449428735154915081806785122327989544338198730968411159178115293295485930218763772613503226269193371529134344288928026413994160748465247817081774209116974167395359910808144517982458303207817710962267910069202647620743867275524055077517940255194362942240229485336229237550479595331150245481232938509487645139090993995267058037704981387902181162757933553751704253529322300901606627034940254495583027627940714076145697564002548351173845744037927930973138213993487193355361713997798231152902412552774259282112305081159179784338550863891276855456773778632327481496855392832575367025580493161204800119768347518153117502721954209844972664679884045402370248381566773975876079080716066558837570888247444996716174025426436347276021063625928788086158017273644820959136953475842554783624981758017166851809953239004119515033474465673750873648031137538051564495694019618123915311134030557234942147928876823958878982837960237162356166922624344134198129207264884026968154413313658859051187147615009590777271133733013209395397922547793044172929900248542880394086063288738809849046974745494986708978214941181264592479422584718557849958166317492327694989915053867707051643552980125909632857595269980913067587101394120477984757140271798259382635339105742761003057788602976232430081625786403511043667016062571003973065130133032528309577765001920364155901662833286145321353691470050110602941809118806384735127288662502472331134394172381216435094709221482624706914310908849467372586701202219649434801855228318184465884264803285913853017874062232490436876094799684515073106901831377859712032368058666702202712601615036206777707954224795626373743004038125840966647596426718430085324260397958369678931072443644300810214162912745335243465853608619682759193532377442780997537116771655840559813862427851897393403933597631709879148746662557151606549962119507962744893682040443987937572763689859291512845930893353774259578454920862970693501679637585846768712401709279776021122312122837765644456543866836216294312493909072280179391833572364884416772422545533862465622949082849971727138690679144340941666128120964530357556838454784521368723265036889747479965982381648792439430676358379487033655872326094918490676895693969649043487180419244804603306759757484416873643898217216479071927420260761037913718497803566304977307309054157352784440495576166079556541365275594243866974303385280709414340080176689896074394423368402908248855991454353459539370585834839828520131439001763365390132733816850711831030713734215662194479679094276553155999243989413303711657645217928685590051569955967631091769221509974751499266816926822746699712650839581338703136592851222261029788864151239452196271050735675188808037087841399055736039475897104727487573438422954829429886432804061301809902193587139512453323422921173846770709629077492245272337148274133969992064462603860221001581486854654486396067679721091068668597365172351637754093777609798963340374359281506054576729193722411353974362195616281910664991313233379825768451611148621032990560032145081698241618967871399520825474255600116006127315257415169776878712553258288463147589076521576362830974925663658090045332800399178846540638811132017728555762932422066386103373508873359564300975045145604466811260447677150673173090415327506510496312452307234336267443656886599172016594747030480565234320752315266397842473707924676751962567238002523583580802747164534020713425173394795066646059357753252371651728674818809613811334059385936164135214525218470628615705890490204062933910134229352678123644708578800390202110030862337977843108301708802976528288321450710286775642725848069487912656768519541498163086709982770503102934587925022230014103201556365910374532810272131284829953097780929843618907094882673042835664387141888361322283495888423240748214135661145755304690860055932602989595155875658480114301480062805789374314688424989830732031087513949499210844035545660842837185801327753451581222823962593102741950146941607166860360477779096520504355099864832136778250806527443965709993160343637847815700431155632761312084108509915149419181750026601447498797239216627301556350428727941051058514238186802661944007283952103042852247460535413910923562849449762943026635649848158810101359591568032286366450136550535497002239009409534192285289137683103037788040934579132877251730551532755050546399634937861783000982444282708928764932140299325208243676626721076358394524929263418573642208808638263259896614560556281035798890788530042077087123709791223144463027338009857373237390540118478873259187665481225290048474505464760988340882621591336018492939229265192501848043071593361582724624204066974618614591206586562774646754626972951811063420559439021583548246568343148447421765130581379075559800955293379740600323585289792723346123770348849290200670713616134406728666362019552329912266063695796076772714842454053305891481392358305500532913819843648108768320641544901787726443167542737992919079718968068406269074560742630540563187055368798023848566826902905474814442246255911233046266372927331632542878360161398951887753332867132757884608740261910868284105721311743182331380571310291177773995309780840966976143256307336760278022236112011417000591132729408578631511342862260134572435368121742352081636205097094066006018326103390792513380784648895701989153426908080502684208148775006218405617384061682091429965894813817146103814247015608466285166323578352340033726625392294973500142222114974836337584115372486030723753587346093080116689352933136730958488166021439152601781349344861492072418409896172594295948719707451220344570752229204821706327371827926929449769883372101459280787085291837123488127997887538836676968405194116328850782835543249689000119483209094387159228969626509507927100993154926393109000376780837163640978347265902738658477466272937859639773861751483392924747373332740429976018583415917136084383203517612025239474430593503917122173487258357338173034858765629687178441106887765957017455639340182802305130315490919225538959487720626285203149249944396835696211317959943690131822135548501115822996655823740915710669242810286578807728534890321101207453490833704300940397443317083700688209462033957845849085441660055639477845460395434336634306541335687364467102662589350749756973112388252524812907487842572093079743516036440034336991344324851342542205335605648839839126630007605475959374015435223985877278243471932032852794115219848848927168737201487993926918466280667022669995107672187575871550594424187873644679888562391432975692067275387807379945824015811288373355354872836085041488245892042919206243075348152830170249391212463679837992954282190675166039205717131783996288457362794309023263790028388318670668451068028884071618648325420338949162302766462074945658439106997030808250325207064542646986762933057076742422950316256010548164930572422539840678032941223518917420108611248337903053552889910981197783253054792343756340817484251272697422359043034825251202217263594908677706264914194457409062377297846549133163605228101488465790296990090675353701659474177983871504379693087831473610030158742546795092512908058080493816097089042787322755363103293213770090410057649544698868544173402046272232218194577488025162925764181745754323239462452593084558331896801171862481373601038615933005378171483361804446714473947037569687399509115982915779227295972687697930206770637941757297946794224389149659561678062677358470767618110048843164919540562622971548593122033197333552545559434836779723814724562299285095055041250827207143418577390746166446436127482914311392880292559472796794357753735947975686708374023863378682559808654480242842228243131215290336665212003126349203920628313240034324220370179558156227063494293474518414259316682896856782674962437742852368394103649167314829474277157490446289542965768861466958048544715747999148541223984552599867984032617583435565155731928461379069839285578673700265809557398950621930171453141164647006780016580262587288936472628599521206056175890030412806552700554618344219244885775529759718591954659124925022034641643432599472648938669102410002705570038722796939641788409481003640359759496028095693372276342517766838665365972240433743572435800566044494846736969204142427348328612633428132866706820528311812365783430846934746014911091004388716878966861304177436262825944380476582884426266226536070407532416501194331370415653479314061193221239685099542899013771964592922529067704352553522463229248474384376801462698729264583140782105453686566538592016624820640150594939437839513238924773080885295149804736374902559391105641666971951584949838173671612349829735880783117309879380396247931236531761926146588499273262184961197166810437813382507114053671830857477639932172715174160649917550954430089759032710111108049461554893166063690665212390578516228168175817075303413793212516173209303920837496819672785934517782638344133773418497037080133818513488486116426317760332175857144575501890965042369095998867982514065600954290889629876574988989763577908781834421196306131207616590520501532964981247903596047210831823703279472965872830324056303889106164742745995613928459413343862922686029482440942092786022918372792572882528381183545138924289671757226383244111728561264401731249250895747558515151017566125449833086837270866773403714151763398627483472319867856468856837094649564683531071665029426253424525719276671373074436150203022776731476719582276795954280612413566395824880586783680208767563436024488756035337201679678244560241011263045078917791397279426754824665332045335697330515645820824255902523594874126472408200627301203592604355485854107151220610416755818058695671826082448203475793470074093962391516974298607957859760744340086815089273282080332193268366085526555383809985396183239133481578284030093247963077644762353142099285165948657818119470588597265228028029081685975721392504841335300426647494218537396885820162845074011764788359835519256747601657541262384745948998240091339578024038845157491999379005212213283774991418065884487647644940713337953458472054741499614253683837790494705049542464658662341319400791942725352433352795850351447556960423117510680030039813235743739308127085114136765038155180134129166988763103193921173478093311072200017910450754951637477014549272195672128744656546474976380367648691396954892759585261948517237508388468871041285467090024788476068343097232437520092788052161142524683630797374620346769249848092904717644615870341371575130853503289506726320063028677862398397665145609035268824112512390919572381811194807646615150648064628355317631999780634334183312215468163524866562562997538753144757958337841143367796801621721014671468998492796648863172752317231394383701986915362223948014082559193560152437882625738946835571733238469928502040889904062245287909893614470645263303505515024693702371558877924948622875572567907387554105636038147159714646814444961385164396613987263580366985535942327407001826340819945494171658528314559278944591790605932110817873225493949365978167973181073679511056441855033594735135864106325770558113612994439225273655679581337527753596235920138440825097533308197209310658933670364425790301480807018914550248759166941509414102898635021812277091714741316803610747278584767542686153660286484536909342570375537267680437486617249048575996004061991390833832224343231423494132532794117755052056590013268466091986228613431357748365928162549182163104547994372167509752446613636947994375069284894805102575913474667654247899548800339569723986814367878386459366601941682783858015611455612261431617242931974878613054410557473122486133581771513864901146664193751074875529895076195634912434858287767042861372082946773031279013004892885669574164655360704038821042406303147558260166135167555535083008994006565571000992138262020612944508382107510543917748840102177477002272247064378862137255047063032854680118530703380243021978517195972415846924409121804491766928384969702500187084126032180710582301799365690913975961794767254858501064855725854117092931726145224153791685019216040701417815288620890786089096212743455429490771155434817615272707774907140673825618508105534277269502909205382906652252830061281611816540156392716976100965558485670087663943731499965974926939711127998990422077535688304399275668412623722009144065484217735586999073296334504602803906020173891578748654946804215328249573752789380155271326465492208055748471825760743169761652258072775370146904618204192946087521282425639168039117546567067227852583807255279973359797204004767951021556409630617874329744376027769130335157965692276176410985537076804634938148651822240053418001205742474298360337472877480636022942052520216331460822421600540409765628989804283144223743217738249082477298593182470847708981907031746310374483179334249717314766745907951009681981856616016330686508155753448333490676085151921473759164359266639581146361149264213147055401786294437856320315308722359047481210083963179275669790001877082991686656914371910263485135193604785883586635121959041470064286563676513422417334470153808345444094912178529616121568153900527967427617262136468741206817721579289153490590680337638000756893750844788491355122386483170255481601955575070829630941643725571371466548918706073288102017664985287779326334194821949192936495749132344417693037475885138021418799600706569114129806603780483618467833635884705609447531169081452417901525761727484637097574665746393885746507778107542368489170037576105075942346007269195975967401753055074383655444836152902725643013704644520115609704757065351322637825441561706961261801823473104731994068165752765245903544064587080729758340231639721908620006548292757126244894911062242309522483903556028574851122782743092722128131449225205396779424757285774332638792714480982484163680733368447877645363952083144872360750419828744323743067629973093109540446945220074389008865672712265082181411844753199903494009332122329562830105892638347568916500451422710057568465926067541216818454286566100622615260603398548922189226117957673464258357212350420562413941921432180205664959017553648864025112898372938631777956549042749399409427719970084802194119474576046384880087920581207820508289933643781433140765265254816431124819939195374980595685490679135125870844898418778689174428713704428956785486529682730641592635805635271160864173921085567397704373648834252611627044363344982748640038104288615640213449403476521725335383752780592922743072612416631759836777965180321252936965590742208607401933151607203359631523175939840619800652965120914706053388419816927262797855476575706315520828866601192779953450959840776031489582450878523269062886663412263872239581483316582219860824232624272745336738816020799042356445777193787366458381181960100156864720551348931109216266835744465124634450764545494834769536921839282454982622609204122400939238742773035210922664977874171256883954167117922884533824622359804802528510679661359916644044837461042853570275590686034154994786971929051793781016504877734353214158044262985686700030002682665003773868266770764170696941320421355343590691741724423499531444098108599833663284813691093504723998808806596751494237291090899185774107241183797151652275730971651401587751897874841553639267117616529087998196446879867284618872239553273860674517513003852284259884801210572430957796377300655458469464892786930002404333451187608883738138108134894821291188761975874633220249716332832896933312677526548549061309795409641478958429347966427994945297177569483613982957223325270989675991409461734935575448568117774246494908758367472249584024838753091114617334920473100847170080386347041217416459472048224380363886658960829934303030684642107121289932985307486624564884474207604545150751052869747614148947238969991301291485863959570042255315910148083956659465570973878369839141554471241620979714575059626903608966530692970758220206373641056391094711843286805996265317643420548892189397605261703706228633566146995887757657637805905649493309268601246329104926355009340368884285473121002563862047055143696894021468885653461520869057220029609284523780770232389587914171510171787723087858655747671455845099613987616782007930262509843509924445149478042285566306525211818197905501826885418191219987838786538632079652470548685598981104503711366242453849197632370603144508092825133057988451079793074456370720716837788080320507751718970166137862402023389334967707992257859023016672197594699336515614642755577770274002812478136339307008091405969163960132164199447989889621200390631062973371028805326660276828214469820595559657033139689745928043545802492770290000173833910453022456781747317919378842547028097633950568180656776735888037667612379804517254504051410282450538768781071498422225384289552412176299203623390720168421309379227460032446222893301190500293130297494162515587849180029703925319175055476589453326858942930682987264709213119019681432254297200781425732446308188708002423258760639143429763254559553561351848301301780149900868770141733348054571436083773581461770693151200925632886615155303704513329428781852455489228714135203689058590415101746384637934829607090844830647133161730423521539870408139081556468389977460286493517033838780964793723067792718439771001091769280662713503399246968168555392894826700111475156452569288308290690022270416312219781716274794665760786247335524395348505458286404331455004133098385863092798412895755858429449893500344072213719352167674673279293896105118616585513866051192586927463729081221402607676665254468479187816701122522235026300127119839161013405557322831170296416448878113551857596527954639323352922758070426628743574596259489015901356767387860553150967428863935732710519229116094174992385861374801984892382120879143645591767364624243940668520295042115318388635799513312958362224406765529601357968927617376027631461648977762147848282999863998120489964499124673526379521491031700486405833973729140012014768011763757034259013477254883952405346386232703848217452434321396318748056384894124262065291205769569421304053277353837681072836241619591978777805780338705774312521733479268239927311700646735302638589309385054670934687243938495202902814694057257898305375080950914428949145024157622241631284226611618735447699693229101658313733890081265410707708500674486186100906523569007707737857140191744431332807548513553495019255661599609275381859537730314219187795294448329913685592847788867026110000131678840271393992115308126024933555430984637806504931158607388391842219721270654568645395911616424361743603442657109951818381607027674918237040097039904297555092498042475644724273121980430000299727554718192066039816778784874223616407131116288149356371502683283307031616195282301039429759510791829380458113243485654179423321078963794983352141440290400927203833827437607805378298578173719632055594677671914692860279300937954681801518422575127390442527310866377069264408754211206064235189132194807010540490859015801641537073587662989126768649941820471360694808697819898362297347189295320637804268739837094599278372472601570419199473241407276667090016024983369702959361450764163039763611834251773831796616079832512411003896123976924905955268784683088209703217409249342471688667295630186428131784900872495097021372408431931690585627462723968634981521971863447457151604023002798863033205175615172315582880791176554068327593696739420666478767230064471109064863926345295403945749018154551677331900817407281114047411515114276039010319115271010183602114113408465628961360556480259004373411591642147612512591400514014815074304303955522506144868185819881379406149683317982740388755767446249804594028298018284744519076537686361959352044197696891812709605714600452785627833497585800714469556013136476079498209847465845017857358264059031251429546859770410806831708431334737169629384401995973325844214914853910472408238925067542856843359547053851323606415431454903937693945483025939684706474701544228567918056072081141259963962975322453024633859166403828158871427291374003196654982984731527642568592161472742958472135044122174020422253116774968997190860286434604159434184215845980027509945245637575953523320908247358262449108915969757169269414344599118457028099062644593907293221872897672220105464936483479599097586985578610949592304431102056076010697965403074500485753825194407500334417420814744715459243940924747259401446162037325247758709404671824358881620770257375730067493471657244118280809980285040849242250694687619358171195667968318472933378684753170977093606191530911398389853758573739696861290721410666156149429420102646274204900346873279669867445135474056650252264274199121030701347611848173104211623291056104928264322271162505737604898011717477102682391531546902139980997326414463634041643917343918927478748494580142589363012779430608591165048230827988232774482563906000542480032943730759948317279405865436134585477820710631432798699252843682577519172449785438455511996549039996231247312110069353586943465225730615680688734578023498733278654677337176903269043540571433586211638130315753424844870025136797644813104830079430979404921769573513984636397678232618637430140976246584665532844697690025676911428943000350873223953240136407197432864280449176939208744310693129926745787900582833511646217175313102496924447507958999384907720895066816407309476198387183679406679449772840771269878981460633579744115657061521262149175304592767426280194288444310197084830102799979599460076884192951442434892956667310864278917448016174203401649074687376930836628200935600079758214030475872728503358884328462980825798409684621856379398064924543186191575876081682874910580891482469881368390271813377200527973562492960277027844960406539807179504498548929919015038088921491708496715274273094063979123157901873519506572599579679936247518606072092381721238656175300887915702129794343098100010617696569371666708553827325542424534693353942805212451337818702725918536719160050388785905319188621384233525011608896583999691480303224681657520133478825103350995468552141854698489269529169765908471335020042457455666434325789389688097032935707411705568866490844945629565585331478889171314923964620923641112292456827773852193988668906057820985926620971923501739221777318116079332669230435153528677666294081598145551105314460929895398191802419974944171720695317840450902032583054938675955558195968839384038969680652661611078313838148145709243575179670175907010883366103178284673361104517604611547560624398324787830664690090883109363882400017083576586898904011510955811248711845164208923722520768042040777671319697007485633969252163866664167722782626034293859521328271185670172939800779708188750595080189676142068552830546607828653423631829564654788965749665469622959012257567742665662465967727068123488522331708114738796514840739199360591710241965390970508771142857963474075692417783358330985336789735122993552452385620192235388051454221462513292706453537521795605115627665871415843934368525922209744509576040180319168397150594868172169327078304665786598659718295405974664755674318350156121275896153400846443679124928679706416813894331660556827542376203948218745054567507222301738611359537047083286873190204158117262865407363549963241095836038792922278213325331272106223941886605226695190229426852871664898960126910709247720125996205639283851941153130452900155178667341712573734357775044680706284822950550623272509498956005982111332030993638367712377271774830144995116605179597471874527162818714587175112328607078633726432186762748813766421982323390226418858741783257480421676761645857453133447960013151898605310081874417514293220443806913497710096136746881360899842446305186129804835602752618079168551779661750488181217001268309861182135268865357661833328190329627884407249335781665225014462875901749216399205763623793830084324252963520271941389339470964258098966043545013611169397319715636449210267415208859102790444557614202359406740622102044112418719378332637368181324627408914852680903502003409954430179270772729735834190354821510318537706847161664205736983927905426280447185383677108296316703124407939870290373528486762720455959434325658292800809369632241426395389962991151263919527543329618150135533131665034798790657659628952535480997919096450191697876482696273799594776705657965094660827417349710462015979360794545014170790001573593947065554573106413927322092705234571191227806159562796268741564981052120215940061399888635595949847001011538237881191456619688143993436218112055690612092895587707240917445246524918941721843984713434177199485650272427296180749920012445615085689604130157211042776330982588514842310939762950536153243862202426295728035611694582888367190157092630891972262785550258029425252005311930803892413702206938573594857059911921043134731557766568768793259983715227876731937274642395821981253728824834284281188739909985160614789064351440717224017474141969520227031363051115741670526458709081927599438748329164339448730099116502481597546544154445168543791397377082928867445548492974725298321995189212313093685774323629937433923220003153127044260160347205597833839986096783640914873431817446884342214803959561097459194400458337476754993124116802628963478643633269620271524787448059625823375831931558818675846691997848250005011612269723281200995800701022698506871030437650571281363599085812971277185503152577732934970844047685510956573588106608392892812120041478869976331624474415392372483232049069774784243137267329955235957321990192827456283661868662754003467443159657320515905474883276947618984440592443623349286716835448640057802750832540898622210045009284300605762598351394780108027613926232353657201691704167236773333624643127941826832357555546046332252022823113452752314648423867873561250662523917007279995473863557063182080875293634406763033999699819636379667959998214698494914182261149135796943383195110816310805322273265948951579696785442145023138112258413743371563645556328609691367692529993729480912657878790383115359304829451131527248331946626726417883507878486826449324924174841984233496606588930650273413311377980836632336796956677352331797983736416180194840709314790607698281180267702260864892769342597047468723092346349613426234783251029697085952809290261487799587711792601622783223833623151142336765591025941105356975808359441886758881173644850974381523055987037422804089060513405207012950226603112016156479975325712924299065268912154372028692649437894186543124768881980564539995456929027820417272249329194419565116962059023025016052364358255018953053704969185430978944010380536535883678637011990410462244161597103670805352128357656778077840074728318707933537807976178272183078212567572847541226352917112467966463647557035040771676145583050333214447163913749357251560475869470468591159357007666303801676310694513580476866835915076374036784343897465883952401005065445107938062704072943085200331209563743939205660927854925163650111797333241340174209410043280844244092182963725929072261599599946089794926514090567318845225046248472704426317016087746029817222777475333644256824624276026437247319847546479777246390758809642190230206163503513169770291164610227348354940868923248919323873844163183618699722332409707971059792777486578888291637488660967303858055219451137008083574152033986931888694406447966458843298661684909298118040325202503871995849526925826674857194651631087055958401239994396844205641206028216863648740820512397492468906971185009395460772892312444489786721162751043259761302588591026567328963358001359259939026840174132095792311719204845475512676076062156397754295523249570978619477662548757879900990585743287713620494047336679345692272821829343376991679855430312991424792061783253156732653113170236116257747687852351602474627082361451455268117662507447344857636568867571237280922841603812398150685256688327364277835977957409011124930570251257727735702502657808972933894017213104466047539195871354339650687687877728181082198197796232072454980392925430627611874736029163944036446080534098843224085281038246034046939241059887216859586434234220953497252463438774911885988252676194051238699882885858249392690779530004478285866710551841333057899541804630376626576989639931670727215705928201417054487631138070713811700739639872983649964485471302798896687148295754734218300658804259820217152792255015210645745954841246016022494011407667635210623956852705045312541483453140244349932622030864248071153846722718887002200461993319854634971798055223703114584560867614981524924015808785541327960908430781981864077586521603562414649053061475128269195744534393171409720018991387670470020258456056379167277619774329343226559336652774250010619683425122036834043207385710666422281141418408859658332985814895273774060803718704815319478354101328456174755371538716275561182797940206186339103464131798695613618914476268875677358921106666707370461112649202819586649267828827485000993332878412640179969346753380093091325862890166696001600791905402937000215986334775879059073466100579089890466647964886043235527053249189522944231131585715495851669474046652687483505832217719932089683808907271253945450718905553000242201209791348412428580997804160559797463332604764237126882227180192222264701295708315819529611273196379596593535101146893004203154229633137123433691485654614120812638550391704644856394648084522452552520023823621858950028366551458013592585305975318817146334727229123566796399047574112388311564729948861795366235558432561603202926734593895505811214544771942332160253209294498773149290987980061857592820461758390088421858819106788741841234437630118597270731887543375189904721557669888214459641649264813823765682638647319956876547174866043196644236205577924282879099637173179272611774512486415497990082078192903093771111493655038816086626448645600698453224253864537318704356150056574173981462671780593964976098939292921472972886420176000545730615650204459247717906272313588421598295690906719722466806036336016105572341577423074908278657362039549543981135389988401848572542891962029309039871894611351279589181541531765355746652319911099242370840541456803251130895000226102798690634053023309568578395562092689456877207738600195654587761194225452197500415761475249085413194359075052349129553329095241012020411897949142230104058646469509586212572470262132433473758291242137771200753155623542420231982353540892906616179318673303331741536635202019565326351930198550577239094473281567019348907425168588326293612545837183615216132030902342843370519197328514648372279948658300491315473539727541386618839588836134688266614581948763477665889782923610046057282099207523680036682264613261096980900020014455333524912796525258189195770691746127225405275484748668730585737303090390869989055063134034242832894063094648747459539809044394243280867902597859846190218944859365302075409315357796717288091376777421996825663671387014654597009021164178983827094056942101703025829804522503550682048275264959905471087049541704081739406573386286888365573196704837683648868608067895320490208806446843482130908274405310017959168117027206399778497015514994688512736289828049302423753524960312972682041682913283290434973175955259016237358622981369701799030754529149820156925095043205310896995077305760317974413776221193217618900919482820045257951973877700670958041484502110409268051031584362889780530701348373998490848130801216747455027988420137586832751948309196187687410150870547319132107239226905064135243648850009985420997059200972050015626369391495233204327380463776914303172147877145097479655337680652573703620600304305840073314550498170923305727572020875220321316872212208375640380670826681813315186824546979641380183408453350530825675986221818351349132327277606777502106656656043015575573907939824888011843391274246863151427758063110126770278449403015136649664900742852579960618754644468615731096641621281924560231322323347767236842827885178382135247421106373345657932294582842861846033757265413626346179591422774730151426277079555169167654425966458870164221243606159007564358939320870187282557447063242806289856977330189444479052785850431096599553342025192213773894005122630652534220180518411461924207299059916491782316748824835931979299064808276280359688901364426891881792504741171004849238075593835838411693142056154636419727071423190835152896295208876861271236954368172676950152480466190335516239884487135856826516475453350151728586908167707083508312432935324602931654666261563640667767280935144511787957868207137455959284619494139162777062265835063536108514903594615682914029187141560166844184383530768877671791986247843624119802064585298984544553905280567163786018551106884623282717067157760333203603075548695046376875794383072813302534442185362892486139877661469220424115126685409562137723225973716966147440126661959521745360357825864828432441434569304476958612856493492774174278090255963268184579747262542117687318060158649062278238308352453494509795739706101280393238232828372576532838726673632453982836816029401102402014221766389556172063763266193154604091349560913196696958914482357549552436844916315074976224167565139149541044103707217275348609479429553698108043123103324560028894107956204020588196417263302015168086094584729909174467540352033778899288222369949651593110867354046988312524523284627242179403206836792293286420753261302724182977008591110513741431818574292627291200084915415755503138355378179160053835165467735160991991632092836046191703297161090992293250136895627659761795140505848307608304780912288437133259216604415233671901922715115629798450064431185175143844829773538338051945581602488280024384554959779571268504799495721941338673808495268023783231465551336563451665390202360068331371735012512350987463156802167465380345470892098075142125668455386950092411045050847003707613715728935430420205771353748662583585637245875483481652547882691647049824606541218670698174934585153794019434747227172662721932162457715370956274591872526051681336656796679637231378059904495099810855329940662589463053430376450760783903274744485111962430785965113198900668657213894262826951566921686803992655297571027685060183849946722796020003768516536909832941640081251255669062005478777503031780487469804523902865176093063141061304527771840243096256907145745342082171242447115431601870029424011268192821591661775645660853685378226500272954085409061308911861045223955476422141236612829583879804561368664166706270302599855568213523618021555184021732946080534340954745814104335820527182437248423718373649262081620578826221341906568934146422435249053837154725147713892206940615643841862927238137340669610537427018961054495334688986113289572932101838990465407424784377057211501338615246744336114246911774213617213082487148496059306328574662474949000449144972652083626744391568676791128797486068485099664658703194003059109031940126417874828136870516081364792970498132078115614293054017961605279807690263811714854587309378798840610371339228450174735004241562080998717894009029286171412198855684345815091986401250411366853001806862560390185363603756131860021661530614912891405681266218825171658909445662610438730837611647985267607577475644886243311718541940013379783127455400400997207958934091900329975057735533838260907524741623403528720606699757055629136630823051461177361145431734762584199943851591572884771596707851466158232690314077724892539438411983885078917291133706521624280484787525081114914521733163493338590714160272211542783947197652421524319952375419128555021009667613916381929100760768818824746032587426851698339126299557450499111009935391476632188677394861478622119990066440965291674106291138915740361947446776928736084568042566612347834608170514800474035756542548595972713714135154978678393373536844321202913082137626522034937181811522041599445760842924674467100454878086942651671286394452696557760399201137721020859752435325997067980653527686612635548812186000609803500040993472245512128720361642014290996126777507551242428383081074388204801592208767803622915316228276985851238591140079193500390839656290269661820222479960184850737423547585220286826998247231035985572528113792156983361486193665134479829287619628894234651309192247179743348966444301211910140852870098720554551492769065059421012713767660468072601884977149918790712965881241014976049291610005859193357305956977472347967915543024176133658766204316960450049177943025386540690735779326672518294855511243907598717742546569369682334140766971036938646404344152335662311572848422563665951952310777659043222365572848596521490265321806270575652351241996745822456007865030739570063787727742840938480336858007829844774220572196119301476181381385796446634598660029517914169637769595988676261205474353800756022044542220117225744324496668208240325101292100413366943740836842639923719570033241836087259599221082340506123385135415136175095967935027635689963815224381645214626013629607271830068683705354574037371051658712898537600352439746030813189667207818912584580064666587607602864250628535027760121154858544552027830388326183880592337824656413131993867331844882452629228352964571275777347990514547013731650270395180596268228847932927071323570133492650153159554407434695367921047317848655917152954440611614104826174773643532289673610138320434148153618398178635723482656924852643183593516745345109639662049125324509525172647139250991827950311642419824258440799605117118520948309131835059080191127358948295174691019956217619890538432910409433678357185492813218730097039873755434883326778525556882330464569951875330065779422485004536017819216331858396945215150554142362646636488898336793933170196975422324477887783206894672524274582128249607618163946127484587581159102390351770306349125761114918855033219426982612749885238747884931765674481567356763522317208547054398596702618459151970159063504922031661568907416843494594759268879591987488632566384467565066618321943257672440675929634296281162353924341629524651121750142884634084581481803550560974496705513157817715736134501277392806273414616363103610577849116329269952152995926673145351693906650089875965654308247162997451983036046275727082268011308292186180354297679206932737435815375852038152394637236279418357804692474850772943668894578150521834950600912832328966403508079961452131332991360841807532092362525507847931863567665283815702854746159278457295519974966484654558155800418535050238811561472997648379916800211256859395203226002981133398527771142350015731754038096020188142394045742746278516756360780762796986014244717299789968920032233044573882879906008626897617928711554958957012089196532319555839042352221643357303028742658728700239567149171690668620083381317746421305091612135067410235003630688929621664955493577542917267161819612932306228812032837842728148357252102667309695256741022525340052721542108904531883889494193182503368931233906336166060175408131900507363606584235349192323020974327179321995569016597512536606229067849346851940194457106960889907792975621915981482106265652384600998073696196769948470023724940461568348041804607614716264919774106235854937492587173533693020238121127258736570088770450888096670915398711898531054386567078903540959054509342180943073970446965748361987240497122574397031543563560493276076277376439420915824595953245285605642200896192449581465003323001019854592251523601822871038143096497648977772130231369500604594861397692348940998458151458690819088310384716425938780883672382008588163850941180136278128019103017005273946653450148342470331504280557792370666528145801803822272612878948584272395976026862722518923702635211719665414481523579572430811084091003194679855234794385737655804716649264390363258979414659974145792508200790617720404718659187378457726579172086750935333682514554299348085079117372171046340132871397967372051375805520796024522459873411113699231220388575667943464807620566450293429616248443137997192028421180906755667074562768219782904009131592844588164105442680985058503874103806065216215081360480255440535631844139155454419945032767310094668808606995711952015638721406716452520203005652840548999383123361400708315257298763363272491676504816661183772689580979108673842998792566130496007568285924325764585535909789345522772152268448201740283699763609537842199523566342769835048183664561041467804144811129984862248479963989832716710866673958645803958738632515409993769858616920322883302904849469425117107432718686164585435933884140478250667424778740552580042765562456798686410331757585412245921219895783732378354916094929765222278424412276466643324466961379009489481294118147927757630017844626959177945682510712531834103539116438061503706948013478693527391716571875542358832114131195091523251690874131141476606576516018747603781678460140240967356256433196987110090168114907079974383964691630067695777473291520559821490243111777517099805813651316586833173497379302057099559716245397382562272927555276773564810897809280597294653968914036200496673031274940170268985654010311628627140867700536623790178860900996030444512827154720533722821015227788422085185095807170620465548449725382978365420913407216817859188467141908668452189585037090507732669773963936978581073675899464831337100442073000024793932176368701145405335586360246282218077870490201598996829188579050980243165026953289195445716384862137719800459341753834780899372750617411170409852652388558605020378677763297770848109070868242323558345735698343793362730884653170020925209183491052507489736781221052162113226475560395238405437605272954146026605815233522381479596367049215656960160001387057688068179893800147137042640461388412136382525497479221750067365049752814207474268175146255736863674797962460255764242631550723408535625285940487946319234505988897351861608557543019341451441210001476519296229373594394063584944613543027742144351555369424344238700899671521326267557675183100371092538853010641239693605961021541534093951856513914384027220789311790047224493942905554513251274696653250110977845699910288916166600984323344210266693547464645138997732707246609990529224513240247768540326170464694468193993993891530016602819339687682480440616536042649403959837044985841584458959322643982489671647392828968138532213245163932876681082270701039881125735812628211984540919511051333113926362546442148700310818356735441419585997321527371866406372972285627638276614009944821096831518254509561873460004460778592512137299137274219908355993706114474576185599094937358807515920136916679736711189299766287079392340767890783771623591527033326677345814893629266633310375392820697920479389715859312997785288720725712333268650661835044514466397930312038778111291014002265740337222693212945401798752385781876433271918981252424492854902602158680017000323780613124337412864019167540931382444938100742487469753731839348284084418090479007178720757958879650550613529940858697162565229131451179700179306598274596762711302970181212336893026298208595122152394783668886162640183567955883159560741141928553374890437088353975802063328480150430699424395162799790977651476978977930908293912222855635767831264627363479910568083768321983527697349796685800579245138959267671388380963562109436665177932398004593872153160884933039653215458055774873037757896329616403016855827290683800928604588122456508052620098145886887091686093807542534828106893288464574734386232905425421377138448334117079084560683068395658148093394130834957361403807531795763217778244224584570304983101955195123278735368045514695901291147233414714940086596565752014008836334459544900974184543744270531728605588494363219176193080489213534371949439976286988688090181621734071858081968444373924916592169887516760538201479013952991019722689689875467754429691517845505473525978314161066329441861864333696584917723295568097411681120632280561623020009058480431659803894577165503263880543016137549363260837568293936583709069648174326589572261780717750851200934729014292191512392522072897541292943110319928529015908478369312693355457983777740456741844342243575488095327078649402263285860099008514231669252063743383709764914057389873230013538948434734839847651886824559241383552268952062256068577712052165034504409785264510207007046171178996185037940550668325354031486055536899616857462674388718170466410786470646601722587763901990507078441398012101658619849708739303905598231374495236726841550665985751823540793671211187865573921855171046462816824844840711115260923434748231820385721934228656212339450365132682600060889552800951330266504236940715491992718794291963143062205658608173541880719915239976158056544921035023976752309129902135031528460841170038988870383211514394053926093073581170833009251911028395624907307099629198681149115944997554879283683957998087732019877712885069753892861806224961774555433038175579239867011849649795668464792620013092198775852249901871694146472752700577046972484098403184160885116885171970083066257894222422972015816975245194609928337146749085101236095957890380198986670245785778998493873601943632339483718437154709630960405935977588804794317401249725893006225807231664694852069348344088973471917174712895698278363937562169059963964208553191561180543304484782961076957192959275525723030635472439284698162354155437445518887939244560798538023835623069983329177946064076399575746081516046884647576341809022371090067990339109550163016140410946816737829501558281424298394898638280728427756962546422701556489782889683514263475447413635453902688200696310869063304802793809309105468046529606312461037465444374726217477599723326902174083388511009812992821039771262405104716124481999603607773150180259317615819322862953448327281227335777990581777469166938930229042501609114752510572801894406421498301120749802288740166744062006350440229747498883728956442676505000005905661777942149869362568671414642750592578798382229204535174676663595537013515756393231814962710850750192714927970938024018111044038523244768831620756502769662957794801511731254062732628419150899456710421678276615848605655251236327925391043624647676592402859609175859560204843411267054833824475836100470471994739820612282194680344364949246489633583276353833434812089939305263448482382723444969888101699687050979286678675416263504877812412192862873579209796363234319594567143185719277058090428699143516396704120290329053115006646964470458214169783938019378301812661884364421273617935745598336869972761589437805895088277899680058147137487802048259547728845436143454578690094033600277950627857890788672357516375346107173230126632814759228420904743282622108354680040671273022305344398582631874691976757408684729825405018805121791835560110629395631194578187936596068828088229861877630190866218832371270352343140946054852262953307758375544830716006943524519457501934779645648013838952383792029167770906597555474579474079261024829156335694882749623669764283039743343796011957185201466463668843240385741879387362507053952922217678772583297754185851650537894473484127687903155303039299990746315302260403161636849209995182894163120641030563956232975519654653784233109658802105396642267047926564105453056200777984947016670560233816217889890529848789822084711311094501988578002671855464481309033341501898701036978166434613581135754359059609999600765208069013533415846003578047504176059087114674890719931070418066813043299799873835305579034013067470294093204020195461753889813813694915724163036305561121001064595523646908594541008662393644584299599472673377918223010227124438209979335509439366952127634643849285384267096365857522801833061816455999969006104656890708253809593610727771371367086709369400085944639920202866932948925841243054406766759064633078254576308548993713121136791032783278968888510602512992052005639185946435977521311985467701013199920465562337817530965225395390093059182904067318503259334827085788045343821215257268130002433915965418534988180359969562913323149406733750126930043178682196965047530080139650137893026969243788632497805162605360237915541586320710495924521665481514005180005884897652673007272205987848795281088088966900835760813045286884815348674956601851387008279247210213930839409544198497055022223865605773748738823253564764786781346060006327961188391145347984399560424796200691758389121909158232492003678714249661353232568472997762719960613762071865117931830797232974961598966560915059172423831723953514312801804807589830196546049312062960249438171976929942361322711452234735442093786062510888255378995374185840475155371741291493688353680829968258835634452653310995549905285846108227771140936164580182099247508734075354680672041482819404239456751259572415521025704834737595329898699994371128721633832305951011092911119078399229843152463040594335703284178592311508780002957842819716990903062177344949725918853888202939399601725108627750934461925347560068470892230078800712666891142029961338501794790009524637243320305313012077014587850271693147082233769558504494335017299203986164790190197363502935451451533270710662512455395966386267160912900122546199440144760835024039352712374104467482579531986282075687093137924047820087399461235684592813676521740001503258179725050330144094041056495549727167808016810348775467315832313667678658802481487162204896163011093386555251329255775199582316803769109400851829045321442293284956744722395984942941641026608814874939988589525282625343052058937240299889993518896646120345744131075690163984731487054640566054946253042329190937267371425588986971686025497454377171553641022889594879516218854926242583638539715066123757761825649338030621010606432225477160562099359921378238064598143947705655518156891196593892139390807419950098470669164006271847287463277488757086332787686006434734922732835230135194533433918176137466790869311939524700386128941744679653214759151332228291706311954456927490395741660807499126880064208953446717526098016331091443722345723767159193735756564820259026509805465429180010244661694731140033539972873892228759136553635048511230153044609720003810113771467909728890488030316287913329170351621738849332139879343041477540386211294414909677730174658501224367529210578228391037742384941205019612682249209557234592316103340877724412027079595126601409275592245940935489072685964749001627778470801506028869985581845862210198403186331358422434532071859779488736765297402015667788184254063737910080467788679508228546934408394037424701867290375460683822984881351228837978918677146928520864606407264149577131219567680258997486607907565673263942693087981162175167787999012897401841687004274584638711758459730777004516711588213340126787369968716605226582240058970483126578974956426240136763726038230375108990432348750039384574509295074313115266777293321338010049337235607780245444371239949854725544787067428735375876563383753782415981745964941597724590605831462434107857339261381272696478191829533961235478070950040907721386329283012100523136856823125337521883322126226600831975033953641805137976403218702577424495361479723389759230269590170340301978216662386892765028313167873014770322486129151627283284835683236660905192072405790585986216282896933005672374696026746962341848181702486864086419894548750852382443118290692048929158888474008219081187230533017855229019430076309643143493964179260940467231401511618693101317987636141480705595285336060031927275321491148934119782555067732323007297395902960259212331052070185846110563117775433006474458690123860843724769504548263172537874091618895130760732397481319558585588673341650586813964594257847362747113909264911818551636501523823224494721389545418089868805805633429806352944648105485862038238390267309384174930031870953196154847991966304532236986332948616511750954970413121413641976305439157190067411772609219018624200070583365229974598979155018141646446186228795688038755872418215232034539998656357818202229213996283639768517140408525149400331602409736340819036044422309089718994622376744396993670317658557732321465910579194907930410137142126749378009335000529547238490701436466863594091435085114990910630694135307878048611023718409124237246117207074001388224818781418090544700131412829365468629835960956013323679715579929699156023623018061159333752334474902463182420830248513894826192864279064872773129770624270140728929311105601618685519104251055348560175986599709353146649406287360764229784345022015221915979640081631886286344418635875099108171406374642427023179648340859995723042296754555512708701187344993053573807033543290409175062769698565897384986089196968080442985262073960800894449642163244373899213669341825245811425674581009089164166886068305216448301995245699067743897860289264360451548585218247460085920597589720181391628083772510963425232760858118817863285159789915922059527717622159911168091481762444117071052792888503855122055161473790257359352446445701569202712877088473617353985251839088594242972046507237869373607320077403793434421916719254076108055914728007423098555919539854322609343390644150476903535155067246795328460457669865032010233394065833073320464808434208080424894527054518753259853701937621840685910887925705849117467570387861375780538038677022249447060769074180518401958405856023088338619504416756351284401668412057459309117088029831321117713688324782738347906288375585180980733012897394947232676810788086991385762356015091689191514203747096473815549712066228204529490268703899688258166734554773090718621999679077252905917603782838598687136282468219421094697522079560130156146660431043420889847636303023785984733494647719227984086650899352555734200721720875620463879588972562620190888099714002969894331096531305018269289653290470886098820300417680172615580188528421799888628701531676496162288469266210892636819731832941899359465441194359572946219385052637611455698749114531163326549736549368735047979020463391418869127859839440539352904561500241023548763589703951463574724847191213219922625165195147157138574607579403614131998978551322610935961222718113567643426058949980060981389986573841700669817344953083278742127711094314425439947137284441857201848977690287686029137469701740285629328947315260711268727553770570383511793222674494827199120246735473538908957556086654722867200678657848731273918636950363441689597809103486926435530596559119431685323282042349831903529212342234329397311468829769348955114288795705682382394596544605397461414323640523259850769365071305380021604025450596301464808259483498586519188229572838611949974101241098966634916780237121499732361824658819502549663404847700157390728857219797340726586502382923275461531310815505656400084122724372878835727890288134262619336969153512273527757298852494276263801020383715923549945558964174097998195624226591768959635754938277570479290573284360425921556197688177084135965678025360050262126097517962830914355127221607974029129836536954233033423815021729009945075132507940162193125055338347264392601173240969297778177782488951140933069937297600447972504355311470795672436126693383632502081847322227793523443439370657562430813550040748129206558778413354243792225767686446199850665466491546109664335168668485046314713111852433185580500264292727039763603610867747301713804440924795822067818629397746992881110669120516197156705521388220899417901072561467113363651608898717580116264016135462654091921572652110047357629030639150865803931738745780038505322191393862395747670360549157145108047898600558713690929353819202832737409772020650902170789116562085586182025848897688482344337652361056651115621044600312394438664070780460848226140658417481530795344897057002798052193247148726215959889101677654752607267960555612979727182307330145533025989098310835103092371340630392500919207203632090052178550489421813270928009348496739001358521664976655182756092145587850747559509939592415661609498056851543183272342134075525589090905211072407490231866678430687024703293415260697497357317754537615094458243954500965611261208498649455804368381267528033685258670662625398836274170358982145472559618040439283783304548838062661107638979621527628518292367298674842564425977372205810822100051297128839545226484228318687774553171247334744564702552420306534818122708723590871450420994798930315575246143934390836613834023025999845592695791568616827885182922003780521258055390196900758575265562298885011073661578178977113521529865958219164115842508028001004840833614820381148418486029763582215379752216840357491464982637484914011465349712586488038390406932634549748993991402940076648776183707797666412833806542010126454096603072754633284653197264327119204860906913556159010704080734132937977760183789182590520025051511166845217845201769361457433256592594407161913401205190344071845913136050638139900274332275648812516083926121038600663555275745838375789607377732049611807138303535782832844384847971488057351815468904400833269008552588505763429661975836544835617328244245348434847052777733351525474932807601394517698507009445332386881880941352307433329860296715621573225690662714046261804217651330033918238937866193278968407953938600949403200573607427481347188162393779347973476206942867376574835637053562239222155991199570310012605241467511950946992178954643369682638783591798845049264310924560201076640498176248124442196552370079702781063123262023777925999169370819179559268411731506709189002196382806599548824598651232954829148928450903765901219519023277462263511250417320982337408653788947371027312486846763823497678715105434060497104198712860616519931505468521769348451189190040928086566842843579285010912711712536285569219959927521026315494958290937006949357198257371024136199184944928297385137263468408176548952288998518282731645407293105799178278397534800405823271048252910092936126928240386717222987759129352946165613532615686840807943008445151382659448793226037650441781114511478724694859409651350073791546343251111377190950050995555911673125894425769701124364737361572078580530211231558409994340358232614852190805078332897839941337991703692328462570504956396656143318345987663003463801083766330099951325992119674760625285439721433833768549290045365572952042735896348943703791526887693326798947354811341844338117336020497926436168556815286738524840185073100636954102785589418279885616946549636228902891208019660734791848239415646542125455177664547643539137570006897790213811051927680930344545857241606737236282232270591773439013283543880838730491753956971584214951544275852165235754449458948462435778322189180804331981893369003630019830412155049355504147242874908961842267178511999253678616410647140622899574389296767742994538803464823141699006297378748544703416532053657054970549467308414989930490965692581511949423335454204873631586278953066739496169914622281174009173976240355025465093890960829697941063679952620350601967651544316134278468896972736201418316674120756258059386410085760497767468879993814158773295329111453349993981818685431516349807475676669762260749826451322527178569268133634593297781903414932126057543759874916597161822885550296117165607665060730776585590128331216559225463765628127441317178929115815479228680688776634809500733989090089121033602394023702375066575777438188894919037089920750418547447967115198513878919599783307582129099118115258983585888861953126116539465915536148766240333120537455327302435892282843536300790829093601797664664611565919727522971206036853493060849771895342231648884436070344294498072673456945129454952529128557306178468345899314546931204539055613239802624534370081239392504880370247063778565008844782549633343238728281036512631118525575130718546102938860470788696724685332446681985072922758574240192357499865987384848889189917944312577353156066861865733943755681437596467914261753229914115775154752332595605632858310234607764400861817844468368217077391133426056188470516867661991463451533950776558426779473508600687819990956780349867000464753469700229347920377034273847037881455385788276361720384188081810963283013451026896390920017650759807171076056647536729388965119303645466325342584965607114117937936914895757325802682561545788592780864112262217922601718498507044626295215307335208575756097661783956716637292373240687793668250279071895871385523538413657133669216784237954188838586561985079018784672602841288951549563730017720537989800807819750783006259155434050171088583366691702532719569767112079868423844254231615795018819245803707711543067393544479730488553779172603583598952636440992592495269713774552069146033312085944641230435711898867169400089687911581582021007260571215004501653621653848117269652099525488304313445771711747486250239419517459961537559735249672093305113239198287652708733080394574232735050534300900749235115106594766039093920433430344670091552520039194735649990458955615546979870315451285337823417379858577386569879926187621141649214340788706319844280882171114799739490228315687532727312463298347102662618161926230500519793913138837289704489734960095631090520233591776002920215874155012242370675228092970043329647834990672593234706018434676729506071278646914863859272056691169867397658263342486206139204625694398652131879565577976866253580263997009704174929683862500844685854516982102279487079687227628480012221440521679733987416890988408242947608286901683820190333077184775266654296293706724189265738782191425387182568476716721121116393006180834912512860574298205620723906554857610992621975057671825686378483127428266600316050220924873811359590518380150010020362424316556670212833758395359247061393530169356331656611716782631886489848800539854110865751660442144146189680575627831537270918649034426804747193480971986868930960622250690741558688170842000092846342184876115900257966737867970959546244111498072372579870615474657848546502984782203812761454418761357639572635853202026339736943936260030216337106482136194800645744997191373470912495743642870699920355073364876409008231114936349279133193690504357549438927426826239019310738914005894639834630236033213543285211696400788312442225884763104940923139359064822010012633572900639988875479629780973465208635453146119559840656667675499750700651193682072446045881119215455511389539729634582062886320455110651112042252407490858878458008716239835511945867827847471328466730436988189058626359008364222664432692134069957807098799654661370079716309872796426011792029872285729720533769346911897200438950245885495074944541591321358435774056658025327520052097440881616452544503816922141871604906077892194936493029645928019115052450478424257372777425418409099750257906835915160385509651196371072924603358050139709259398167966757387586479563742385000862849548113166147514003128491775381412280371795809890363541311867359529121744922447762875745356562092899807973338819709624821788194649755533612616698443880976027098515782539384876930130363830393955206554456709562241610415745937364604272459129957852650215697548905023870050911184578774302911547950962845233077136439482210080581883707493784480807669820832511448768617349411753546061777627962694842508996147167322972109474240182670471933380801206887203086587111958147847872473844300316645550661599388267923444199474627742350446532674953323339414823267992544810883401524195038265571634378912649634480111704937546379384238613744284758166878378252542209215336148132631243818087361494886366756091943759464967965924119045640665121357762881508451158994754302706783352790248168298319918942625637779208188354469852517342357939074836922051583754360418612549394130474368367652034069999417990773766616346464335473892619097534365556552879397638046382544390644264879262582766230184046419308596475206709817043806277141413549693619091390616853496420361860103448337552975627869061076936867476390760053996537402244207694320059221983573255277497522982592193152093721254259305515461743217528016966738682297737160559343811254421810282294779075680633450198181578564821717862754549528669861199004415546003856063437361346529359997223372415417544949359430661857940336902288661721450503527396615190845496017982624244717615751102039395078266800715292625057531642033172399357899850519116455366172337296624730383042242682045407355427131922736568829074641927870087098580155225912135226806856380453253876085505739660742939172990016276053905112889429105550930011863886309500735578145674776237458475588825356442364243575808874244249420335012721775741474574427255243972945950866823619159606326775178128389424290315206959186663824511848571326880430073329766989732018829266774667335004654713765191515922969474305783150160475883672333224985391415587604368655906688081890400047503302489810201706942022757870090680371258673483641340459420985359729071327424598492166223602526345223621742563489409292440578590379635566760288835036359324471628102857526055270706400605118047187360839922914814051806243331191053875514256489720140017421266077003289751085929227813053854407320635553755893149435812931355520169237799480350398430187327411765821315288638355903089092288126654975422548227172036521485640999065636359021103470938138409834958921161537383635671427203247529418977699532805858402281676976031867982480504043221608629546093214743397550666310745099864185064299126785266381520482743608446852431909918926931881541467435623231109753405069984184853718677480855567356709640396132138063711167257268393888315324935614985612201086573525532677037681208482493026408442343639644514309977154110178191557096667556054030267190975586671453848455864684565155694290590081960476281466965064658702124093254084181665922528425943586410842277463578594025774733547177487614111988286460400873208167769169587856568092010709272137474755553409412519119188496318277281693170501806084542541847322930322019049079469459205999068439847699055950570589203770173145889856277597089542491629247782779940949683898179041316934632346750632582519621000500004604376297178837282300251350758001488958378794560802547351160374100620591204530075022068588956304947330382354617702148955257382298269419237226065468822905779161876717943013992395263846261310901379699414499465692113858922995337784339437281211374019827813137235097241374844118021562858008556317372490106859349176391260628996662528641310703676030839635444793260788616555675553117261708695936676197702043679121495018719482404269474605127873660046158762412013350858909294352227927438137943673673088187202030446757825091681084877293961034578172857170502912793080672717089613152382243413379923395403294230171678644758415124163772028455902841244816249439979141799372424202587925478314920658271596763012397267178020252650535214586633630850446855739842051974426910404381733005042905329952367660536736071918566309951528635127037181000910824974158156872518370375600203721146401338527349639210421964811281954762869001703020504974033732119547285378838845983566628862093823125390366931671567349838967983090651631039923018637404075356140953624456967056523406551997980240414897874350338903253901149091069555458385198338146822120428369805635635394747234568287990557600732969847463144968209977819031888107444931331101528028053762184760251258825880554572139938161265238903664999247863209856240614869126400167948076853404682711218397785179595601838570065759463503732153531301631479724076559074033219649321574703404104171905345814483715289579598283721556414301768157144873590181256865240953809761355246609567493934295406072290992476797933658165392890730237398105984107227888226948309358600056746474279178478452340112464237226541813269048876176316031380022785931612697404943482794259074347108988052913780359233836490490001138096712268445977279768715976401451232945930997551825595561853024160468893625772152978278696777336600412218449440616429564235988265742534594910398376887012447588597721903841641772152468026103645036952144459190373582864919543794035546441649009832270154732600461774654719405042349276300086408500441675767928070666046259321870961822271909750088989927976965093371632978589626305032371758720717579831913447190518573085357456934798537475434598968205068643519452942398670634978710597504860339978097649955506472643823072552903805678059781605588001448935900365751506038107032175282982783417382321699202756843430684149741174804692233681032689126717588591554915887005147563510740594044635835902378849738495157546070852959264052805913227802793472219165851848032610138455393685973706394322110269661592322798599890187602504672066198966719587448048739692182361198478243849693658009144299056623838839538905864700894683223463453568655680794427629739108998065215801351422973983305615475348901081601749688928457378899867877343898816795517160458889395526377443380776671020261394480553738908196307649140798883031154409271753261792016921486348527677467949161778453491663032301630287550246667719268054134631341440892636507348083042816940465552529288805408490447526094448844404555398443506134181189321902806551497092732854213042137324725789382367969816667696246429780736156073487993348203937709094590441642900911403892188220873679933603173921551738791041223983280273777489692511174478741539321467937208666354703593158970253231038635262187219947203707026130437117392152878464836175016720635850599345855733597730069466627212091001066798259590063006015203737368392448461794232012040857486917030471433301299656147036387763334519890811844278231021738161133048826734547657070182218967764154452952701314486606646353332611537078350235531713149007447052350413104424598496501864095468676933926463685011205547722545023960275313872143410520683945713749077969724485633134589665715670483282348593926178639955779502978147253300945991613417608626999633105204868715351031361606447033226073622777067068349319779105898073159742827687064286651237421352292728779985746573200692211547994376861206861734968101329304391041191604952598395922190637816769301876667344353821069426569390150858829085981827751815249057445113756135338715001341802226945902364500173353513659381591543319811945402836827885572619224569272020806035925890015394571270995022673417185688048863795323436198036256980862182871975197425565256020512038347942692622054972948734253784628258115228837949786821640670597046144670959368272573109704497366656666209532567250358137412434807109907810639946339969041283312796834703070054320223296638852703550623425901478420791292147044337867476258938628189856710426089233045812942768891928605746827594827290673986574251960969922846997086326628942108594726153739872124379260810521983704617479735870286056778231696108684501017808106071041819452199429386399453291483435925157016812952785071179133225665259599007960741792158239094457287129088329873223622059359477779691346416391644666434450896757774434870809454285153292412662135366970881670360218914667891635010183642836023645350095665948450849788085045943580749694890046015761250475759241710818812403636545217006429770015445254997872587465100354571244682865265320845390741751933592587126614513094199944644708691020211716169068227979678607987616122423857249836908846777195560646470333078154382821088660902257999100427100835109790325000433641602250458089348835973395741598408164351634677816586940627224102109947141423291290864153356138162741077749358904876030997626276068517302714892790032263844282553716772142081866129077139604365493674718524120936207542248205240705661779196686117820281756696400549860016574456627981729486462535549731035326546820326506704258074563764460817842604810243420627633619613279567588622368523010225125596199981273964930967236499608047200281942573795332999108654284077387452774895789939283379610902690060656168194916832413813171065547471475684133973193079700057255163507541875417278798221645176612440023319835913975980872065362174608004978077166975216967649664109963578082786766977676042794933236368237251621688633306043418290242822741127466594251168906295680907154620764923608770835025271722993540770451186600561105107619373664759695752934432662966213419871428856774003862759046795726237314839737688329717494659845311796691341744684285370035004410955869881064160320723334343773700977221753513420876349315159346259336408038043562369023283603611573524632731393413121160214347833918922846998174680982834795796066044000907435887559169931562686250087592067155088136236379702622045715116158844800876262489787554695455468067946979509265517314169976142750430991216170271605789066479625225160366122519752444916199760578315731946040213584572786075254219408161357546697202539767814670420189213052499766215401907132604780811930661872362572828413210756100744977680527579856707962952672653344979572925222635233252361748223202889258834286418071231769944814624556332044891771359128896793753779318739660972802168008049688947480037171047188459972372021482791115700718121909604046204739380475209579920409967781630176422706050617173248002810568538744429916259213980135859357446781441248720599503271110137232811919092030357245739902483645434862216587183409945546535892322582273562729187853696360358430717190605519245189048394109434283030576476590664967042238524929541470066901902084972677387340604426925357662671940497733910506107019862496056172370066011157990038746629802372127882836119244811348788584578704173559557293044896142497712830000623622947659060798900511464925555673407577776212089257011894170572171195876684971918161427987632610256227752326326958269102115549941737385581400226718908218969786676660568564419050929982771647445357441977255897533534840242801544128100652623434468204673822750232597526793176186106905980694865880842359232730426630836785100449702873528375196452787523342448003460599870845418317367527330890906235988909687733161376163309290490538961944098894894932618688518824441617950731033039426305181206196113624323213498375057956537819161574454806196854943691118947349489692596099748869696696711145706711522810936166389434177230647169767875570164270759173489588425319397137940976373958385952474736775348553564125648989484442298506173802016473927879262899162544654856904276995728474077465911627876081507617236523459555520248638668905676523871742688491558041839550944045291857877745810183860364240690537939093782100100389486725758545794942051884206911929864728577154460180404050829462878886568718921112266063289835910294451423081854903992083004080093243556688033592445013087107305006136901176691426794771771675598793861519463288537328049930589153405962722364294914520503734995981083894905731253965804233983921599256244781180431941824522818901425436453723385919537320999701704522681320757210257389722400967773978975870311200650142870883447656034827830815914690274455556634553443860429692039731527801251608574922869480549884154428108396952256949693432390719224217942148801755367145735679873849311760585880810867808635939524747026716214184706941501465665684163374845085509198769117575778547893283126047112321521486000985374697623354554669463179086061753828552834097557363457285878137888199762691305583802599471162291932871639772875883268959021108502758260079992692995180123766045056453362633676049638239584500624597253094154516709854738476138541609377920630159504528202660050988262240246328477621650461325261327859802514197977116935344782857334341403543118129748634892327312590307847902319859433273641944360811632983932009117207968132874675436048646752920213378602569790703027593485204473276131930646241702429131898359442142469445580191992338851049681958248568713450276912822717427714359222629669294148121398821177708103504087635077965110700459454794283012202538084596365273598090218863153033965435244903111322846956348485319860007884181842496018998901976021453042926796995484648750845795122573590613721492594093885620630293462265999966274168313046203899054033833254136836044621677999389000950955584252149034894734503256093098521044845086572616010618622410871845277343476751006008988036872290445910995035203177315080472348677018564899705251677610897074906734663551276836118733236128066181195092743482743145935853677041753410250894168770574974101330314108087040224170792822712407452804750866628738867742754617881048226637415725995503438963753281501248952330789982257176763157957028362311026155789926173657742898371214054306164323840893296711092647859447719936733765576458154720072341358874578111633604485087265091044291571331412805587688377380408249866972831365767573679039095238261218694881749686691210974171799934865425570607628046564685488632540563647057485880600338332790698739571937298840086645598644263136937593229878054253928166783790828966229310660837730326930344426091317095683972731006364098877891139021055780939497739246088370122823147107433656355756927183423163134820497764670634507865270179715659204434129286719279524016576081506622742490534941870347165121206293911279619114698435476281666773171768135704580364411479025964931029139031051337742736087066830682005800845911823219749669919061455367962871307041534513925836643627907364331254152821885846424303724589556464770043457122196160744039540127311937237938583175429703852900109881131385472866522630631421871195966503763579871977310775070472284908322003343693634567767645287636238221884342529157976936969848310513269182459170044018490979330480709490365391901333659780725830681606933177910237913924806089710677990522313553872626901246149075522879768725402753030339607976104627119869964871147271091387780864606999702601400153257265461496310301112512067800559971225493566524318351895669044827787909830083630878671260546984588756770174902472128875107316148800488559214182995842171999633545192292945147397118265426386394987776843281623978077996595970306738260302492629343615460441826457909271933897346967414701351664150067476170050941637198731286567420651200249082742287110863088066438388193592173219411661374416443712328584612645559774035503941136961006481096623355517402107277005537193194469990064578827741750359977096351760694877010596165305297854864274361626611307249385911370334360537850134186557511137574520061733867250167348855011807387486811553493186708064089567888865548970812929955559355917507648754613308519958371349619951437500054902136656068232161140021450827868115271883576250749163541534876733202658107660705619340804718058741099753685000652998260270729581180640785089248594156175726374436727090898044884589924482935526840245051619779048067998861022134270209131506298398732332734532354202547050210710830291675332991640206161590976323894744966360050568057824190308698389250704242899436018261684666811217425578393756845424494928310303990282125391542530191066962468134814868627206515670212716085925595442991280542044463492174627172504764304083555399066903117914565020523041586340491986548336284290613552187931866857124947510042227302266976800938720486827638868894295975325171630398727448581198907784666769577106579090225534938839780292581895910503671015833170172088210136869882702834565526376404137226301842091127725273524091821499067411465650470225942762837494284062221995472869016373820754349147664939091254100131433369878090731462786302823752228918155407686854219250760330457984178977070491875239746645393524046794707526544748638316373185659364812404592739112349310000448886930283627105515557260309347589862692259620561474081007933676853080188159332210663473024301085459253840368797410598651112868316000238758602432012602099872569607876634821267741532443314051270987097468460485435521670750289445308832759253511176652148690570870854130439433550743459032832155979908788184573110372302602813317343221710189022468923379608377772536297864551615286285870725253443429604979383700675602241424496790323550528532338956407541331710649025721888528615171903878235165134766086149028487228554566098606835313586977159286340844715230971696114661600339755665947113042739949004482830281660344124915850275402505538709454940704656080496406052208026246961418402259356629130293727461482673728511285086817965485651892970200958633251099510739212292263018956202947651694079470908003688014344628212692585498010262856546109141586030553865210542192215232990783827200469204261911795028934906374014007426511446016489593688911893125961025216951287968321302391620023419316653902284735369763586637270647353440194533233845027462272479366354339954495012620014134845917698667642474570977273152928098218570806156874111778277681791863037523983364663138117037373888475378690142786992603540801189721774834599381626066268026968668095111045125518127792237094443506574069970913592606800433162725611893282528508685309160764681736858506877872808459747859185667995396387340673044258677128985703715572139426321169333072819113272008955311268366805121879707599295300401841349682372329493723008475167106272720492106710810366527345045015720285031563710673948331182746712091739709963389475712806170559512885402659483666961669059519960534398637404671063629527853825940837156534907024458757431541048238625318622557415529063383238272307348471182158903612316325714041270376747078022952510450456563969891599621383944784011423672959182485951462377329599323627322692123372019655465410582097210225260855113544893922549925599530537672106857283506719843581759402758674428631771128337813339921022696950327237931067465880519219883507878132457259288472335417900144631844460108440190339398958631934064289412513075769748550685303887707280119336839907156857934019527377877793537513678279192838820501002976341235320513083578256662286174607275847636098680279398793581073235421094415399019473631606684622594653967314037826362787869176757531295555167113626764633956100415631831546110796130244843816066600121172957090363227245973343448822603905823966984317698961811742391752095679651365794469069282333296188109796997573580271483938515609811813490866548009208853975889632461764488375736445968603562080430317728223753458715024918061751510097737440385879654853933155534243427705756170547463349271785610632591099018473868208875837269966920154098823637978538797601534382910661215822130981917866453899506367996083299795440424707025656677357734932142874257242291456138445742833298025648968050426135995556368013447291220277121472174828227097429674168513130809228522250516845729019973416679738567034006499821734101815868650046446839205382763161456477220228896030461659401940294429573940198594394197857344342229250308045625415084033205537005283520064381929829977949588167585305757503062370645013837857936341797809139947785967610256515492497544888739944546200933987482262641656901748437225175966686746069859921294568948500160976345332600491440176731454546074808462987848371594661717000757906626996838325920352451735780238709711087997698172397328668136912466951899629646792808312989592201505532414123458949800246949841137627630773924850007472479202603681993814823075389417329511838582889598292873102267604079277039818354974807626183345646033443138997774856151349867355307900324198112492689607108064565009170754749916291327787297979424137230382079776539174845462762061438351784099201489605186581266535086103556660624387536982221119835556638072038592844224411759775612108028767751240345371388377480226409840048721607185107206110915060762912838593713326319288480990956528715287723151334167445847212733164351227250875662026587984275198023674747788269624364904307219514321997161223146231667570567861301166523357666593858534579118478091681531248847160549087110386160634223863743802692076356370768349179430070355497926232234036971157815228283078938140757422743275314064477198192857139233723667717228504862674267389086043443457793026675987515596588853015920133953980389597833687729135497756117682575995152326365403693229705196084028944922826657783952844477299025378086236482087733459419766001394125024967709720229996372875271921592467802858528924480048335146639921652339836605198721036083645174806392312458022003452853030629131979361466893452096094527711170522382750025318565643730937927019806322383731519519146866631808637304597486890858904326619175370983303737050937034827689553823497292948719421294168230663398592545572576177538429519572274620029114137704299628679124005904309297452956209382651197448385305370462815216424691384317557266197379756581000142397102985489717871180888401993483861682033385745042468124845878769557778561880376523720557568069355574908104022748627639478610487259743843577492783653528915058885325152851984757462732018354605775717343937999676822571351685521722504510706696758681596449564075027861628926438817663175307154217033528290696283232795695266125337873045210026078791057706591860193276246263702026436715361731835085034459053341533262037418840860410189709460502039343738886282451151521207319334136546919478986725956262901614918194200475668783693239121394588185314097768599798040189239410220543948847802584345380321405325625369603935354291297701864661315267135643534661251173549585578212749808516410021692877519712752533048631828509761531799926281309617849786815371024787310479129022264869244470018738884456119120307290107645971514745946255272036997775171604599114118301260097088180134063313452249064579537818984472990091028568410484913760836407609959667193888205409421985383882626661518084868115578717990867061043302663590679308950478477972148459705840473652651727203622545607755948610686232224708151423796203643532802565313010433782145264826043541201183868320627659444563730004606781166093708500162508167175927181612555354547878700221027247521594816018431141866891173352829300249301791438888948947562412639242830716648170567969237947103308166675696379605613029717849162214211998256571681476237400764763686066068070553073456065176912031723519869678085558633837244996905757796998594278985322157464156331559309350041934210652805844518442433645262303953667508356465566991111151405279737048520988075768740368709929461547130081367401870088306890294362340900007624205343197269751099601798614671231381059924198980225251837394828490451009010408021145253221243923942164637931083623976146516813661723856281854601203828094823531126488525568365143984927073646140030817884428951770254935372065030645436778257470522004364193718942717020075707863482107605573688911741091259236195129181794069875691749289009391234262555838021016754264862516085604744884370924088228018453440961141167573879400945355002424614767420568760065262859319913340142021636048190662920320750434556235088704257321355759413205616118246047570799212825790159827487706601104565259080032293744730234558324299069758598492269463773178220224954643584621526846708482220726464742367139274789635044802640469652496737325821866835675668262657561858697178997637918239016619906490961689933485661791675240686538243603254713986797237485482415991476475750940828222276445642948565471111694327453862393618353202338048852606388426167199137303076393996551162229601583680041035031505437651139981445990096825751803443691289684743454119867608605829167087079574450833508986630292360296561279941998220952883109900615722179782052588211705513696128222468409399722245149710686872223420751553706121150827901211153004625571190038361965459323040369766109217901888111774992623819500668968950766149243545019079448907648579023343111709831526317933171211463682639551387560864663379209825594054119623800771903510273672793744081250742671271109223857475804582607352709449329448750558011985623473554388400801706097040883887585966363902754814930100529599616592683772359583433873719064905681146379388031154651308344991242697303001431217058702611486104204438378068110713466920726496762293852685337927525150004175472559154875803615279967002451187033691853448714107851436185985588569401971122184965466780403878207107966364466797772126120064678206332179227339727338368310218471577180471310680071477175832555252993187649277164302610753097696906323948697741546811615283793927329431014218783750262899572347399141391533145734636617222112262364410522034490097828906738618455810283905160928502129595105827404185910587303538300529873949047944151184612343953599809637438854770063037007543533308352357825290709904296663827261941555376135622303303889036122824732314996124860354155638300211099141218800392404550500391081328862669294339943044560760746690094083471650239156698255494378635097284797820051146423417814768224742693892489318923622976928747797382401061710392454391465633142319742789554010981871681822774050622367578856652159508523042670175460535715280968898125376940805458602995474111918360351749977302402261365580670272068868430444682699308900747487495103488214455355644472470988794935129705504085669264859597360580293443144406495992749483794898941796724919517364126716316979970498747853669467171915975976222664440170454538639629031164053403257137093176439186687578179254618849721656189591942917485206675610233717954077263631484701481950274620687081624078265409519081583837297796262637755550341535319029171059650456003609519750023678950887894247940405217016164611304808074115266044705552910971948458107045575977558883446188126124586746039712470041929594625066716890036284576104417449348476835995799664651034992708374189163781670483964151663301624693092851152699117165338208733705543304441409167231481537235080926101585074739218455672547853849958155019261992345469762488496242204048258937749121250616787708708469091045449440042820024694679962034414224047375458151797957243743854675300432358675322232302458498512840395937556524524218547958210130682675161886255306102775199084294675894195736455225985099984888717962022473046405295473653835671801312078918115146107305363823585329548437888333545799734239469446405684124771309073355301630103095050814472674502776621228024064178849691818664297966444735510184649588455892846576206520465960662869484570021684244330234266216372596572367511322286083612460889831790427725558155573413287114639499498241473338213999052023753063494057511644554481207322525903209439667679901597674859942274075651105016172865110349369981411396093784227733834673790254621311379534035243429058121383025286090797064684243970315214336368074686200877366273712571845572463475420651184668133679206545253651727970207033720535005536309669464394358573357924146096614069559670808284857463567250355175755797260519690643712404309800983644141255708159454291159052079697115182144661023795926705068135937025668097459814791650698126556887475418107809657013027914427401760756856823909684737043407212560684403930609246080386073099631288350653222483088606581628290029496039209175458032809456565934244142940040154522673657560513630920272875382552602389461177902461702409089971203912272530509381617043550009015862731575248382289220823704464821291069056682491345307923084633499105040909071546609459522037314611681899023096754010373437935394737236214075344265285744032314687088412216040013677394103178122903859576341063811535972488325909930665603374085610537684790966788533020945688789266731074946104597125819905713990051725384010769997760438046804287533387020514684809967856945789427497745678557762595720417022082157635664952834674177423188201784948733609256729942975768323509853768704905113408055146542734437941469685756689979005460166553192753406326037082562513415499136655372353589753908325183809158400003751902142388035203493305437951664087975597577555383266414206508129226366263675952627824047890747481010489499811545783367918177998270895016283157374346301200774220427135285756682559141033284342357583434907424777592664654594919631370043487009322442156718722689877568582668805933468344957292461552080124451179225352481234177088865962392775202624757471998337590395024046798969528268656824456157740948100153408455598613681076223109380771766758811466407580333414025361635862099092373952136630826841727392819351375729712063457425209384093284480687114514733094615834269080640501478266021082928208409143179365225896333194980987197273471387550086577272050014244066770348581316876669380093348410745391792512169647477870345311058072796208273490972028044147588299469522577336244021816250753118276865622927398058895264544873011641396404669448840472448321073589092110421636037344499315426144469977853395933985588737639216304061920268179608888735169472232678819745914498660319337172207560013708744286061399350371753205265381013845055343534534149686856886789805853319052085479575559671219559227145502160803091381774023742588631062120160849691624708674401185234262502241335037009552309701920360550059537091586540547360394101343943795860013575975536047214517086799322574247895780532224456900558315465583820733998242998252920864019916821194396100338435119933886314369194101873526821088762190695720052662695478143360509891201336143718034737410630950123873505274453909344409209011097975584278260349853583452939410965671431841449468447575422135370282930413306875397740790521085733405376306675850329616474987541785833428915033214782056390870796524817313700256598864540674628910895497677725143628893476905293198075649229638354434888355635763899210229655832135483269045470334838735936318301343857777458827448189494102528580666886172577453418599096655056072659937731524689565502927460595702316642893041764317090544483058593017698587243089704400015811836514355860457345306363106012229803041990588561266461745645710710977399654144544393061909130607108706147954882401361113770553512137440764311815596630668343250027909838159951657288007761468020796880568750098302077010694541581578474549161979264177090563791550377002809184143872108778997387417874186031494975383791964205814381809486211143517483105844403576173121235252532931902640537273169531775826568538234537793593818305026765425090730549125546573358915633463556385532211844287355343502031015912231551121965373881864147722652050731653518783011342647602703733536108610986489051181978077630561886926201782877565782223439923219244894240792675165457943444213278051913825291191788317365822620996379727899020693410048682124256416337992579017918612460480445791506863057960160599615028477005307957000491756894595294308901619736207110178442146669441079869806766032698619457826556962096177049050492861576686249274737417416602953757216041114776005452115661719803522863742912713099441208017747186188598608280996733923271311947384335285797673388009273342552744040341426511856069677357714522711143329865275795238897540006846712118734422271277814416940568478894213092306632848926168704107505645990315590139143426016181251983468287781365879928344840085702127084152425961297287130712735401731006816037170325619418092048793982678068179332611401247197604660057673648220820982702143267841519441550294363355217491854404531684041005729595859809081379136048544756587384552043659862151499886590506383181233231489434610499069360086403934778898803844815739368874363413598961476198796275058066579634885885798865310606231473847622998358682379036217842645790588228137186193321125206633430728649969897484576116629157407699407224845471863036647918394234133190985980978611047227846400512432354424175362419824284736219120764420683361630137170396038188665218976446487972074737988854534262710166944287067090185283376428187197888317277923918050875184768381407494932300525311126688065788489250110104367052634320381683223181286626541806840337319518855164631221487601755232640906823743174675985782837059374706551776245063197505230125907727885999585424590527885664210526182037639405836157664811170511985904083017070281642752100187825542817333989025484910028628115388389011352728522231405002920610819012546058964911710647226667142368639946802713384579910780186913900427461349700513972265313694463679454971999254332109655026775015701198995367318857088517453176906500832304855971392597620290606287744273552317251102911671808183965964610908146192573566801303773069267242477946983355161776470253193142396883699587494214573276092993087445522989116726241989375181435820561013778183004203125065094841098579901068880110479836229446647018739120313012490136480795592548268688606736001451974219087100198285417836158121296259215168549292657454632973177545729142649556545532466981256901876100642184279303415596785764209562316916521180584257238072628832525798405982373191653386632864364386319366736477228551194405626546107778779768177854806449742722805270146015245987149153531920449448483237489690228916490932006433070112794918860444701995118977113617395306500025489119893245209037539136940690549937688623307638389830184505189231796332983882911275967856808759515210497223669382451287957411637528523180024013794696425751075348554462615990847160704640304759059656688759301101748598503636100231105933439784041018683992487814380767276932847256402180755856497650222389041676251200623018702876955166460057171915608354933842159512311217912442683653818797755900633581080340813093141807295574262584963847781352742690438721071166755694294137674344680689262764274759029079195564420378655209750704875631446548237784474341302369923298684010426276618617919351275336259608531788071140020091040254006310602697947707382578758944061336058674779635855063173271734791348124818234076402982233593862950321694254895642196662538591550391341267050049094450901900453555777055335282424460490444897101351745098448453010228730034703159689932305560375752109954000060615605675240179145517092081829837307191136682653365425908695482143234302570126109680670031816880149721271926330419147403128888059970487473101397009729343878877902630777044749516859544499364251761703416212413678971932676843850226785350024196180151533090563158984324310717494241445123239909598482811770076899285494846100295551299045101983568907648543279128672870104337282412782747521334373890696977459526959293473597180011422516490376361145256934761787728139575209533480585267215687526188330872813000345305542716391489710584467712722930865309822149540644394407496218048252757766269170039462904446307176717453827955846451179260434721474787656633578718951896231451793708278618608549392831858559686881544597642914014753423545199127499036764660337359685248746104411175122666428637821341111982066547876102414782598834843158916732207629212208580918307126932993783927812653563850855759310874292662366497176032722857553005822419438872311928964331382710517960117269852115134895070219303087492430397125959962636799503925114567178248805305663441781632777596947924108645120033379607122429919573665757154688695152619592734131539388957521913650488721042184702487525731282294779439106943430423867104613470789021999636098714039971289407812318154270215159700591334608751401447775856211514289365799450124408931047499434927626333624890958058242966135606785263944254542422284871942546996984968190671475001203197157670541595309421472352528643488117583926889076215350364540055911779129080839404667684095772395780968099627926462634734086548719718160036217121735991009799746484647076707103154884951640770132215823298802570983331593601459833035496240517844478010856959375839527301809438421599148435678836609097023449345857069065776238303916853432125843641861589649781482861820227957717961279258883109944121816045396292467190230743870547022378010379305877998267123945121858458155544323842348368113930709417491067731798258044539800467508892430628782084868354252208073225928907258093959379854642998657481006765162036580527957727683883172431395895732961317243343478922965815017423787263643540991273072622185636251203067752573029216059439299513166619248427556300622255118516740428430790193418309499584402260777282387852104394723613361863602161094281433164653086963512348238720387444642639073015501620142838866426751889534644510997468478160362746833546326966920651145479750290225609139159992923506158626911175768729540830891859308666396483102420045291623277071456379379928364970196614618416053110841860059407071321306752365566925741868028643317577225515827192163469205427796594631654297786961831742479599552407654312159736011532578399601408834994957908187370298828183773743094794865605455869369542673865627587148773726760992199204558342450906518847330214687491970216130267046156162911816301153679962755777395826036245071058538011596689511796972987364249071047282200568612815984223358180011114084753833102643677603041845444517627613375938455331389927493991904651673057347698536665841354929893316275264857895189933776584400398957793140129348331634526232483842210925411135762657880143095301361820619624385201297944989795129003412738626031990740516087239541559977647054615379956984634012558785551697991157769958226735772465750041724445853983453751620515501501502295367835490701157205460775405170037327060046083711908613068812200964709887412858666757413369455689293976526326267104759739015704521029897815019343843432709665502568513705112006470836591920109890154061206185773361696067372345058861626589151669447337232640788459356415086878452883180758914980853027707967193362855457754892099359788036181604078723098511888851587433097251642121707323211644711843594422643368108663002204805248190773984849148195151220047156199470470816128544526635043127633010456721634681322892492880151969700729992853230822369006047279171443448327825064943413034090097326157356871886400896260174704270515443516576904302673016635380266748765825062454300262710956750951517720525107979689663962671748299778968246705933348024452083191420590032662199629973711417141386763029845882115920692387606926157494809872632208082294608900455177173296324493991907737107230193176763924568325825475446751557865944871120919756767999479725240475538289239777086168448146711890940172434217215397722898745564061109408608584025934057696595153928346065770190286697206702335111432938395468635919818225940346432023557488386344237344297018979180468400469193318715767938691624834596237359393969014439708154640728201248588178137190393103503702804237169105611205864656306081607793259577629786192865623277847808739941460155000859519087505723667454822163313064953227680296224519227738368805478470091138716752548952860107574909904977458877112380402288061780056903130378906052108115955878943124260907295997968213116102233493123560837997232911490092751286723382668647628013124247346802187843969300714952753520887339082626123090046314146651806253093083588684258176899422928441246201090043968974426763485904448258945168496284472911174678242123092130713035668960218671014077546497728907283532119770090910072173200650049155233793250275131859399354842294639274334652831066574159735087214342411048134518110780757660991564456875491500122297721413772316974101266608011755476424796474133016485678548531725440860663044211208764354192210314878459842630645402672661945188501426902764259215437130455254022088629947960394452708511499252401473887193550530938758449715700761489649480574976129691091142715370445077853704123241571605794042685933055808332782131055019584014419252623288409059369972529726245764108199436797890925690586743814163403146170512236376352928589098194625301711996927094008909524692850788971426125365880812359947438632378528270166588306489764068947258002846426673642662503689639473282350625204145021140704933638346419538458459061859065341688485973456088786166570889712991064343953763819376229325642910392027734324044592427750037531335146557596246934371680925621663142084358921067086387259745629001853953526224315851794603643955033861314352073006559228462720898310315213259887989953879887686523739434536139633876676045347773343460317114613119617306504165896504377936407945360383126807080020282538850951574110689426052971282340188050900873257942733427755200371982393519582279560988313202935801794423175377714286123806169313148324920971524992967665440044233030994801063742377380203673026687512797960293320246817121782654355640811343852622420394071191056725267328811367882977297047422167750832302286026634835261857857198829130370617270531343434968844416881973829229411195691637646938154685389508745101291784046381172564074880092121841128654055436758221438413207923720455192494895241134108244566428029937245935140758224876289075369655810235525874006730862763914022001926342638034429131969479781133354289390915586496196784963573816987117886081539315037099419656032662085479983804066115392517958220591858806027360589713806794871739508872792502923327031672015095825860371795652243558642019321523570270155937798577318684900319057758901725487499228945351828021289417106835559481673757658000344847850110888821004814628069815611228596470050472901760335431287109309974678566761927425464620181088608264036458928073146324817878656922657364183916428411832576648433944905817804577091106975994924433611163261748332464336620662362837920660357013338649575028825559638261966812689290243121339867995508582891085218720208660634707165349810430875707259840194137620753354964160845016682973518608449730412608856575659663060888202258423769732596857136184718618592652157757154069453361943653843619674560015928647015822698226089429716194631140731515330237058026860951080986516578927455373249742822226636328247279008619466564423457318768603288314286191912158119040212211897946274295231125434775374948675827499021090249012576217359948150375200342438777348448940172467843444382709805026283065158383965020960857836000437108998964937806411067214235604449422677806441539637163566948915385293484095269549799764588868742665944337064982674451253305845855313708594122119905789180227907110563271836132587260970467160051183203362991151110120769016871087940990379297169978696631910650408835394841705212444952433601517652703990937245691917669058782043935537468266866788549567347644235120891328540478767030468091535383225240437534387770810872941124427285138899747133385756792398410615926683070130904371747521224066415987169122671573068333824105699373024634177746656541536403350622219506089742539148816358387670120219022977642418393515867299606916107548629246498762184537021257343703355255878244241531005545590075077512129527133823933921018046944364011962152340733851630630691849157836384232221293341465509219528130161531682659611659163866642053685225915341717407446327609941265686363238540313194707996751778196100931414004616798051101798735738006119551326827317361696482282527352052195283002948400111623609212913209451371271238502783546892356736372264969236837956866689442183998262961445448293159213369119051195716921174476400224505883589972800910168708247424196272402185402944275106044184870054365635674214397123583047881239341643340333782147875819932864477377604481481075408847910841526318102698647584941294984146679792242907925767079398733764600036202202008545078853408425955667514396512808043023757607687351785801955098350895206235416385707918867936614283895550223615167554968191891556781727936761955752291211088222849974533999743342676581922153457371207301534799725686215058714191844377836330706439593779391547278450180268046275840403968508229857522871856922205053970558526329935109945147626820253420945785172483452077931270109948436466169010611706534230373982145029847881591143722935013642000264741447690801160103355707291082947143060163203156561406932018575265555174061589770893860354234700977717488718342943753198372205923517565175742296138564211418220599685323059351890430641364502849393673025423207831158334722628851113591613323863036770836327305963879466082006085121006740513292141849451305882871405910436051589994360177262193825067383969470790218444447648161218072013923205863199102408201113950224007389896187385654980897688244379548173324488178896398532321268482092088377024103869033709569301789775696734286048454639436130215782464899937237579034911733871371100170428413956155772486607781950252120023283747210696527184485384154145392690387037047365218969460989694793391107887262358038609593597944687587667927341536799097390500025164221010732116988768479659464663834381692187213343555742843821258860873283360409020937076685368066514652807444035838033553052188945527771611264345025450404105676547482285236968157186817602548012772626999263772283326528221556449307623578108030254182703501148993750586747942825628592723673790804683073224206619697706537503113240800840241581034687904195367055879145114119748528625792537836115203290736445618335542034228617515804375912159624249364038184910259438387471613618769525060300711089907505320538110838120303600831174844219346453641541357637921626117061470894726455215354444961194699999071255125694050843294777932573496130388896199949453349956832267651087135598082223601389719056260642041705344620706385709320847682204342207200680076157540361287502788115634634686385899277806116483008834040822486560102577478471354092603896696109460992818744016651386614039319979280940436684162378327179075198926361423560679333035326077265681988943987914553758912095894606962723528656998963576729886646488354941073025593197447953043214463847103998503630245472696913838215224537937611889181909265257209109504169067148225380671935532093444496855414527882577981026284975876830827958844297677468855830195384102548220844133308886017298411388575212465373654038671873671021959884758342883045231053919609032923444605282834313708104286044220684618984784575532390259053402770914091345339048509197858860656704646361653077369498738347386516057462640059444061099444676385504316880781556711018233235776069302915659386925461720945634066528905541705914460951444317510601034883462589286431716694930120404564721001040888105034980586930966738539588423511876627325328104280057871731157066271497548711210284412928771689200814225312943113864468464527689933301288753255787282150411054284698928136521191403700093590417338380562383383134751503356280772343672155777534494633981751055231000756701260946596493058365231197090244354254081621269355982109351809939423837483463420155224720214259435966430011564505926152412699531412730014629785757623443800198832760653382585411172104897601920729191584237875601226809820921823957380490915021016516021535411957940519827382307119919599655553343852916017265716572709901832215921302357457134555177818054961439922495306940714328655859644552002232276303128761084318092980593347179799855768293860146176721084905799230802655498571827568932140239027974337460130556591992057526790966061848272203741675469091282207465464094401377949126764805919122510077878374649229762314449269129832096922409312444418673716492012568904100904675625243586343874622071843555111271945328141967446608661851703888863046432857515093866971438010713777155158143929980119801774285912805475420097702102416761990443220521552447648132684555043582238940535220997795605913097165826543889361107764899728353720370287371329211972027008373660583346014897459267021782945088887854714972143010290508542131155188210422239126163302644541476581510547524070380315385010963268254125390244663226660240036396169196335847131435335813342996374283656828514860812863583247765464757388423756515450997384434545270102168309198038231271988501346556795151952112375120961328803656122728405038924529064815148019985136490941089252345331206143106311597326950868000272966481522776412586094328709082612882151274510193788870265459794174343402661520290977135925357823082827135149543264722792343862737132364299822977578724954141186562192128321377746835180429894527369937893267822257101698873331521131225941902879216610938228934839010658893872955060959559483654884677292558308089268439844084920860903436812700963247564464965458361349568473773890295416152386072144198318900680568192456652409141436042748110206115260857192817078022303706052721273958259360434605689489639513535438358694840891754338725226485046585693210316438652125309351212116979062145001883457704028893211225080416815288683358729699053739335055102094643974778167756820461708679664040159966083633246832346931945136228911970676452295154575460188024118289931774407824239220819992659294565410142056693249808240106194441301037601770741034957635394197963295902714647968822531122505521456105219884685531499539995212408108652423749092949579291538624626958681196685680672154511451651362865457405258948334530766488680395044301937093823355551099217340652393482937295121561124050497023145187132471082223200118597500147110906266919403636594399547295354120093301818474329030281174653607556952841344864593592861576211522602922215484631071928224519178647032778642993115405018834436239734692801053884806583003407822942987140061487216651715242823817580524173397819064453520951516338308707807467209392822421860740473379606574920821276061212348335827933295748264863259499628116364058632339654466614698586129667362234207059624310957756824558552312777093350139807654865934090320239519159356357464698643451414436612650335317767206628714485371708929577080932131639142003724388175013962988122807272544153650668344633265022314595886050187193580609745264904239342284106683540467873327269551488901296017249363596278978678519869256399974627940962317476709016701726714636560809832116089113677549703169917900071103219224771697816075168779030398980191365721629316271570476863246523287440471566270234540151088382194203953824992944487056533609127444491186750065878503575171557846999774424881429184951701759791864182953280121924668444305701689482111365298033212665673501264848112617703295131277775902715654711857171003998665796264496738966490022066373940621734613954681190510127528884285363545579263814174464823335254299805494759167894163026258701652398396797718239028908343228907192765468707222497807268162614224054876145153113696113642763366585004838626896889357141198928232381075268031092677901288266053998417847383249075578362091937342040412311820112064150336227419833245972306395405708037581288859821823325714460941461089340016374578937900621913415890947001237760235734498515774858624120178346162786185887003960364253728387241854862566557818894786265193853504126000323729300627975831963367148391188539388441730924830823102230901453700953296000959093577839599219542301245621719514041410790215572107679659623426495398074940499992118380410801293301472315229802451264760066392434677489466535289965825087260719099183706689810985732070436676586745350885948746693312598744896397961296312197913552552689822373964977705001812715617604946952824861145964555094870048328998092394491435076104553331543999886522435644649599014866731277789634073370713783668343624202453947796246042854134780979416004727322691726255781994373989498110139712791601927498612724720522319789735750850682531230917706559391104014300357052902748198627814956269576448714964795068849557337484752638170146090670683190501933814344293508892879006579843086217767415699015676324958534203281961496306902904301659512914148392878881036105580392702301596071194702580724006720738230844353853287697787182405093845846769748924457637424417001682798071650419751260979512910163017756191539083603726057268888299558877552567423805501105359451728748850182711715546586050521180440309697746538628950715026115150402594927853167018441374700383514486657632580619062253249800140264275505034602222709427260553463993234006045653481023415666195521694419261925458251813014297123417708683599659262549489939747917858031416728428727450729766469060243894555693656278589937117688140128316613903189904291883697357768606860169107187465818579685821076440867807458049660287137562369550620379120689660494325352384184483696403783569663381258275849554389518797056434240654807647292937955407229592135008409590963840671736617802539576369919576779702407100927041975171791071287830100968576522132706364750704448845925162631612847825905187948676067953055190357215905615568773692848926104887892987147497266419113629401166283049451250473908635719780979954946538934128085379879595355507194109681050383991151183922829503238945582187714660621971931013879804710180337393080738404967408488110867856668486373844481418643299458541523562699614457942867884575819296019888224801557870802256296506333144530787033514937532405286624515461052515016229018297994250334372413686477700884057718543743278313994377843374664270711015449350807535254039278556259972385910272615530385078929631815211122132622274787128519515925385901064364928152528398665516413566835544520418261375533719469180736195023411552590047950401687065374935889221148057993765715779610045581613392503798740095297057262171715107888143641647633943519311556225910902787741664276363001369383378744434860433969555098597643054831070434719843223254274736599576218613210546725143368092223126510802236882790560656145005138270596640710484247393868620562501981363525404410993598046989335531856003073152332560638129764236909565053174198177712995161027528158805848725585675122049463582028363389665899156304792467743702058911908130343733914565571891949838895197258856577154780202596871624181184889493686200709330387797610511986030288032697857650099819117558961732640314082571950055091089180721750583104212528688959811838273208170005324696706273759777219381500169230286460880205372715794046439456222836775752553464072912457883266890662203037832270502379044210564927699632939819808446312544016174447893250848648369602897004593605569481685881103276924039433413836718201406042620883320175742881913473519142465068174301965469516858336607475535310484214725114408728610462147884637250350735582492276508650661146069505332397226855358922180811105188427807692669932535290216244156967231052009131139165725754011665652222804406876742592294155761963011546597013850807200341698334531923619795180018693992698603971068861401391210958373618870322535616229565972631882689125438375435610802508616586337194544625942282169391137399351042608434327436142952556326914358335741712310967078252679770298717706324068959746096269631866505619054818387862152384097603120894348475163339804272886105082961138492474799502111766438986318963972832382120653026989585093544979981417626209559581678163930012383505131158431507831646418092755098519179874106516584415293074436663633503197240094635627779297297961907386210540412420003811920739679355164120257732797432279147588689823982532190250499799920314083940001062647756476828262421752823167052535652890320939669925424690349327234930534187426402601291397117923242639975143850773890385767487251401007537716150423104677050180822416205222935470951842643012671577157451413460253126154563098811000651109721890685337548161117665057425384039897455799991207951019507920271720812779588520829492198919047140153932631805821402786680315363948116866024068692570498706973559785804813169159845328684278231350991232631537596108560995912690348997834257093490598119263993592111969302536462253717776751999945528604152014813066147109490390946313580231562976575242554842524428982546499841718456058464623719438125704509178490559030511120268479755650511528289891017894474031079074416170818047322198765095359140527871543668750393861567109231076790563126829349547447331785715069619999085657881527635505270434828629450489915247893152431785180404542615665976498260310843079697288256256385367717010576047134459624495318901807792077072116122387635472740432022194387773794915189196394317859840275615674493456342760396794556613658450057364437204080520622061975535589472036051763786474291778630529044896836500530868293776101747789755622832687378169763384129184952082487366401534758988839070403918789018086389050341715541349238183490364516428771622402393612481162215201795694766045199595497611932457709986705350674170989221893928886614911003058237109994774375482543304046570742657808912586313114458862543203015228774852737473434886756175247784097126115349701970563695783889045152901793909369430529219951017713515486180534663996001467319042806740429552386232028321785363269038683087471527922217418067865672751912290683012681824249405153689166425192451970866801969670081400264199114323812840508562960102766182027465495981733798514268098058117229723078871063381281871355602569452572264173249827226321108429596269612882886549463380854422772018779187788594372140708722420025319881458926342996343378024688968883365078346847117419138316244125470963429033437851208597453357586321684263212216945417596737365535674818010464674284227392313138526906930373142997831951337694707991304752927567946622080778916426452824958785914132625932477462266947463869690664588296802864498459595712182459770082635506673865398284630507779316366210135857838552341144031314499414420590112788926024009266210081824814694982202419878144837152864591933064348843713398770301673962980221537202205115393432114074357999337020184376959447866259748670511636673926713019448855875050478866491446552412201737049501038756784379072172527909356875577448308140486805078238349329828212071288617008858169859712597730546003532889399927077707369570766000903008433734559701627373043219082072737063785771738584634897532117814644136151643754644712871195000664026733424119158178682966171551092400684394552601541322840726006426922193765288477951257110752509245495092611430431002727510106415737170847492384896583301565013149191652224314143878178978366897819263601872142425854853110946103709053971207231324044964781150820889196384163796487734516012273265278056817892491462757465065382321636282832589030307322940685118778153376100544774502919353342033592301987011662624160935357785241825450630011731725409764556296785765485097642462344635661918021039169478513021703749334605912961308182425775036566334547352277222165694624180681009105443997851838373790386092837377931603969158466681356605777779325033656023088634265688538615054371832283467958001814267682222741388685869387602569876253899383860252877046900353318393989182958511394514833620591579721929566688882710375250492746833562741660358488951381292100198563711627834726799748127002583849368245234912444244943861517495811130429269981395034104754993545872276066804555410971222129142189562387897835848439051511143134865739228290981232514631545933210667950880078005221393106777833499734444080474236270223238032241410843267191389136002106679657960807940202126235619968012992565491129852210698791914267609506344935725157417816240622947411956713867349587956748561188917958102896850771527717425290459478303347332846918546990388568899781757252812263527559581989343944007837930698705369180490934829214927167964499962486345943344586301026724698817015661106252076327576847876060963807185941419068559196852082499974594285148052718047376286573275279517424082078037664611296265222482413309637864370179802444637146155761380917967529919691850328706083533972082304908042799380004198254518445737665197761034726868596215377643010225594885534104518714349421278708056732624733875777697289414435411315047554535529234602339376978114316313093203293813669819279912760123884087583494276951234805624255083191436973725765315915887833955440387555205518321885386125248866419069983912566147606889208059030103318698531580407663665904202541893120246443773708186835648420186164152109299280730614043392592128248092643722850599917004947551217287079318311595899189794400651434169476446337003969446147362093602867865063825847506657620331499073968771981121146499429987740594310666303141114264257637628909915037170353291765041887474764045417007629163442882626325831896876512562564069330251339731174802548387350602213831964784250996281063217695818405683559057034344965936201210542689578582363044192135313961579572492779142764564696578797000849870656960682454391945789523612060757333366224558440845316297395489838966873280199210547553433570136734460571789698559503796743565261042363865800835735967652078893162509620549619758607257515052166148309732215707912440568516494656543750977341484671727061675936782741073461277273300124163496176038219186274178169465912464336126886705131550844065329356254141583631826092041549815163687068452854239204050773980921337055629641477357898362293273121605702781742160544352329258035120060280458044509574880376828469331402514939674428551813398220909782788623523638430376837638364218240424852013895743550772102768971692139833660959702257972548103826899514194077060959077477884265000007135628067885328096694685933630633638800414483466260222527599225367284259253080702597771375438798487240754116423115447343016200516972971589662771013738389712110267279500323367071378561797883611914566560486708528916267285333873643557273570191932450812103872891584151068516123217494400122046781579263873005984125831179100404943736602053654074106866858241131556583035256012753704053471430557397969557537973505681190832228071525977533361243000166385931327422467180146801362301573672557313304142091356360185782574404023246175623044627268739281115084803415009744866942468058315020166149055398284669756704189509709979899202804723489768371999270785315468546252493314005070353842826151773113259908369387309598361777048231766477957865959035466927554213880882317872565102339112658992948545879459909015030019321427322836644594711587055824930282054218038245111073543484238673549202015953188092490706826391975187759491209670881656678225293743598964314586002513259703475480797615861721196806987399318006815214311881578666503206918074942136834604432413139194344855789626359902162921372473801931359694525872235582122760692574707617960581555991938995860978735775108185576162473945517730868080938806153795155045224523317007696311627286315369608425958065049297616219195669881284724278883676301992480638953893764070439635234907778936095928087663846196360842842684932485549805550056233916261681360217257745867392915902424968117763098094811427794867383951459859527306850590387841282257030743103463639814333660423655947676349409421285054365158278935706905800704113156515589725075369207716958706410309867327676683728537613901259039400451095807909145807998205732788384150546233709800397996116959130108742452134355813326097896896785649329915767172092316733141825158382368918705773231729541046075180569289823515968999138528788659836110236430065919652244562321095198249057255177567618215706330641846112447599425858635494392456926757646361787923819937039423524818308541500038644357358299650715107494934249014267757912030381474615284801678982282329984435847246725747511104556703596793416269048695032130409579588544041307218048781834468885571539167958347466766894175674817787848212248886780199283713871910676256046594608947669008334413810148127624805848975059196004733988927775692379610129097189222419335396520462137671822984497755837268472078098579199555143751854282701954417845070578124632670414100237086763365721607145054706223781312758940427111089476127920400859481832498813909461312355726348612264278490786836212720768199975682862089843551408547157131700523861499765397803805348785624699908668170157242861068703814458797485142015445926777269430435802856871449575718669291130009529000260666866502622652371898199629844923202643938983688872293655575603772241364287963288258541230488557700557376478871841135452020062077476720271123441814093591011465140624845524064168766132751965366247410013946455368054139448582178688739178591028206955638766013516150332827661169701142158402415370882748521039462535802457323729119946109208841085435258831995113168088762452297605290870515977901618423628803809852609657347736180541006409566449711085692421026223638167943737002111160615284572469933564742011496975745122069079374291132844345195551441022939925113648675613814168425028610954510126771939759121678544403020006469888185510173649669371825050873545903912254580072312913970644655242301777297721391276078806781988973932861268611222431676943070027826593457607294408638854646564537671678735720604407936254953521600602738374285467154285594949935262482771163560323884484940368901611023605155269729769270516069009586717032921394462093772824168402921620407114396176625047213135941870456096635894323367555176923728261659025303101547522555467207846662794859806029087473651265657422186019805088181235451002039144890629165328748941735603150188834197953503073262252888247616693423817367682465145376529773045292244095233825176968909239911624795067783999502293341338266338495183444692652818747100893087964569988624424094931100791151093332773108027320415087728245448291295488713239985959475226153701732196448492185363844459327399668674137396245041696983405559742376837648040422049334105752953449210524870624999089285607170754479105588364687578751284519029400389506141893101331135588074058235428972637997236258162748839432001843629593278736531459291323266883250489308574872653453826535930040445359904280208939787491671954134539511624520187605609960358198534438688793014905840617712862262050509737035568397041687637601071017048342408608307340874459574817749819158321000600134745519363063886880061868228736121299710987929775446210930520714287457514970739134431420832003455444081110896016233200112866297318131221497539906871302359479609197609753870856763604525536138293742185869954371455867065535412177844965969025761798801046632535183784807659098860277446852942404282177685039164528797199704208864543824943939225640700531106632597636498641164735200218470243841768453246611925182939552452767876074906192202400058385285214757603631219924617596325363433854156177022628496919514258363478960652372684897626297698484276221135141360677819972024358942204733730029719171357311658085680900113315810874528826147321533494633240719664612100462210898322610404391965948265105813949648523975529951056552522128867193941686176829829564674013400183688079078386671383460354218240775679912660492102219839835466601762748163356198523761691413479324085111120952061589129192178494858054374226884418533964816058714853356302170777946059026727513716041011505398320569619306931463564410240849013774998266644293320850500975023527847425517085362203475394241418385283868162084271352910159182135024114844705894968174036089965547161843548835439712142379902319888055892226701844204906916881110593816117694441365293274902479707017473705534511295517834434937506962057254760617520219470372450350182439417784249313708954268711420838250342900217360897453797785609186199857129295278677910016795872557812943394607232515755317578750968561415226282506716375645058781561136133459025166006287078034878338152119018041920185557459423581397274585296278143930564858214247725959286546440815007113088922773501963193407728134798941812640626022244731196611377250913513404819987279466905705109369826975200735505269463205464420833301877951561191530520024847306664299376329675049804832530266870371605459451956326881849744344490280460700016948923432871686346334972085322390741189297709551085407412014833056819891379684944371299733735550971903726891156483398740520022178899652531436812693924267965743392499453155102857566302195082744641957944269701716417721179803005650818440548945803933821749639121960130604023472434581105823476522781015018526057066785494184410129001258507447926304197686418661752594473972973122894172692556561105453895536863701192893218434057696865508948902098276054402277279498730157871941534251612026589184998416311631105241432107391044689125854535714910781112257211408284155891253530290393790357522236123529117400099596898004946935244425078894005150132531365674956504130678483842364249419341197240055961221178886040564523077696820878029822088005844246594746185875915083509549468802285478014173167532433131897087300684139259555712052028850925895892110085272779498084750089439851585817622799949872945278260295049819573286157850663657282504969660127892959246959870309250320670244417891038353926335426034865278487461977473566055669335298778230983958539619961290513527601718123318253529184362867986057032360827630141190712444798082988024871611843572248323535869993381888793202537070050867677213925180306003762537933986524716891194880719359815476376368981371819242301215054270966885387651733659259920070918666525476059294119449025387287178110978818038675852002612828813871671717007130329491115842920767560360228383248270983019604885196905497180954001842962933905259264549791620147240099199286740389396160336516970927686341029640733377915246248460618533938817978205724437758416970659459687520071185991951590657810056620860528482088493223162439521726974183092715231293860787372708159895760270218516069843155531218200119726782644218907101855505162643323834351489676246035786921593920148621536317868655561760333424495502459233194609741467796969510190645602126214561924310828803564671367167998439372581531588372077336170174404989209412872892987685207989792320066832761209366342881670269578589742353636664176470674745958871952514611660406666656478158589371538589292588395574545400065563069509090916663115674322482974161627744631185801769153976838370847689403050458094326274894138994648762660236339433523759515961976604581296050187495067126420306042718720625873980717526482487590573479168787553609841972399230084875947366870143368861666405409700788299780425525741835783392831800276048622424979451482682514024544833990733430432406117399553981054757291027045708934735483235560924148522703357730934229127849185851474255545498280631540681147156412879432003767373100272361774774931278800047401484706110899130940111173283329349225727723552080419268846744967688584453874905516758753996725721978675992686243707965989419259614093050367908620831865110670069706783961545851633050875196226468469994042481457220667531344002491343895276104698922040689782713436529847178443261817098861687188774088442186705259791569698203774746448109033522123807336652133627154382496878674425280012336930838520150866250113965994516988307081579300018630612875754724040487537536351687779583118922153885492286386241413842184985234925478222292925823235300789322830767820936249530424889234986149910847353640845397474638654513908892136685057080646006793095806114001775320390347319057150635153571120749577429780071029490406487353121874320930754142627208101454104701896042180003705475426524079254119997560102584429605322574316540557879575545400446331283890724717551526394635396539591219600901400770891933854901982190730907340197684195704739111858328473938493053497109151719252160608857022910350309614423723077811802771668287916770477245786050309860970862183380340515203541556493619233927562601848498327223301179785815491297498512333659861699385165093087406346041935831506833177975711852413559379019789225277293867497704946414393483876082250845279133849454522788773103772672261862416694659941474968026597079352072173604938391890373207398124318251202515243257065850490692018812008237249745964958592362049892541853168229656996452829984471441765322226432583301108562637135050219730678010740506073083500608658628394117064666793544246765517530862970719859487268613093357574870885054909834029504676535777495728032376799585846721285252957271459898265795910865015851067437695666390659209568231828475784413420455035983345037826321330588030614450640063803979122274922197448067545221747733898310617161201470273616029731569936652393932829984703057365093333725843517971263982115875618273220987670977406193987443958966430430166445266732575797007026377126633644226411606387749166267371228109894685920765801008245883237211543764558512800292028460447223501702305691676030196169983679803805848115897612080028057397642148351888743203986817572506013524395656858069698220430334572592565996020103092671240295432431246599399053594832125276570917417858325643243813274799253042034766395888624748247782028975351260510613679678816651637977188305084538506053786930169807337680701491882942009766092129208795969844095161398907757436726309221512577465790023757313751226774285057674470761070578783812583046292977592888856143084702240218746116355888323393409483557351028427832619582856290663834441343657941225024647982981683206333293889148582491259920115751878337691897729835899389008375461854167381371425296753104950150069052690588005433807020643245275621782585038899287829015350433017781267570510231469150296947917328073119904500755274514692841686484287712810976026714586755058724108041024084184172390304178721094741687832568539425099955544887828173414489970804158508442779374236204424034033824832438674683771122879149503449708207280057518943273093436036886469142180771293850269331559149731703244611093584388394080123367149199082521202166872209644446094454282775822111677773262432193866972120499596545306277504375496577831752861598028202728750920332571997147181766310825526377499670499503684409624680751748745127431219402806333140763757389293875760403102476081204403529493057819019102382140799713384791907140964828117439363836720696436970876968889920987279172859705482863399078025448608031048991727879177922719406730321680387513483155075963954805038848583799921822668804636062026133556785091219816581950337801195666083808845018869288415950208460542223841225229363672734497842352242055776616830985659227368324185918189507565724137882452567195177461964282188500348413611778784467346665594579128706241233470374455297273488486146624493360488448355005285871030653825880548546125016810599247163365000215787182911389609694185278195196388819661839280417245778293105325526664708644436083559364853901675755223442842650663980945143476170938129370298790820380729720706977457343587337384562456580794587333431487902759859979849305810744739519068459983388756964833744626962414994621689029079567852998254681875811847697129868104570879675809006066139021498350091534362623499736933180723877138217369512129764423283249473264127004267966663349975312982013853259289820819990941567154779532302007411309926312829398476975972093024859556021494898821859101308475711803051161523991454916599831340141648379496267402230288751526570380514170988694984882893030945798516360649041379745646943751336964452243855300627432508536116096224132727606579936420292794161838395667529654615354728067555462213910390501131274763963629613700219038796802110043373455594784732112194107943489599606593243353435356067330940245929769677673095667875636089253750423951514892676192404586479133908587626966436615476808876876100532873894311344493687278911351477698686843391609309225967762190972096584318403894578203224593173000087287484803221463108391328355570965391661725801190856913857909211069640319957595691961293472147340411929615623152141908391824818151498216303178824840049403444857632335141795069371551496118508369490324286609005732498388970172989878939835383569274396462105515365501840038605642701765411160354058241762343403184533848015552376792784032179183490101528516948053349396054466302680869046241351469710214908014077904025866361392934341342465923623932706319737586340629302005406598187648090017339794423846345698527641166578287639539491096401229601331185440059470593982021850390817648598178195077779161996177970130404164366810848373712520314669335425039593548317767987398690586704919845292572949254922757268213343585912050449727773378892490037865049802207422790493368637690153678435208288267752798286146234931259705742422725823228642727291309688064217300244499600095366135108109156042254136160833732815827290316175942572280203736219888683110204876034257862672211704395292790262075089797776512122769601582627244313362191015197807945946841209154961475426287512576222353647674864020585093028607280592242253550080338328224310128080253123568182858363965948086610772066385596684464131375383086365071855362477943073845639473093749850091593872648965695820900892391853096955282857270227886122146777485880575482456509948894527991247182716045030676593942609901155706009884620929065090244959734322853718142588417289391201436272324376131832701809822978485494735934725248006478627790943119232126921047761463386481888989461639588226407951161064499002589634293049013096266942720512080922004446111502862431185044470311568545459453167987470436227950836468937346576336827769899677886950130491608858843894567875799500053654727959501322893166558045234589469441010788746006736676484506261546058596092544817827186128385282487557571218869496275178872555136352858493939475704694614865584958333263424614971398631205138196134083292995711211127673329270873301089286309344423197689173480592428191168472440480716957035277596419357203273369175043091614324273044787420283113593043270115877263576124551851022159701205920945507365468228266891607468458573111368796408464783143869676352212317241533358439728742513803598534667576171148173830885729582859960434520710813864591666324450128782594886975415117629056819281891381662013666234196134242906268928110972869501119343340904808364653713787033007763361869680771346776171551999061404488280492375761141231678043600851930850685479465550884117532387907758676576609708820239354118662459538422078854482690022299835979735986206151147940534783215514313166889302032989784918254935190826767283031656901706423531968557596551147973084855541864153494044149497593718340887360552218188551286468174634651751683451430135805094078471369193556750856201899852602761144800999350263329292139670666889126003495112911824542004286565017227214007123705483244638126901197442365903338707199608092842288385016080436354490169759308654399225772795045826954304406966807567547758846059274385259506503385103349632732070741171895980696939926492841892111073089651028098846105636219610775545032580012661882906933644693428029844861762567757892906979014716444321480790552711365357551208245393365162900192264777410394176213742859693733575628500990717217935993816239704891214438449393705748539082202259815013565554858941733261155193100561504899064732270699763385559571669331697821160574185414937957869298750295225065012208413032099889471881896378965483566802780264826650128538591661873312721447167710637025015018343211085052512227289088577590569859423779699279766120597563088172141156667769768463052286149397120784274112840140053163540474575878833557088103825346024605939363040586313095573400676980510049816781649110236001550604802561221057772036113724850985728210187428227634865555023411910026183515106646749659045933170971434122635329394396929199852240639509158174981673457047055075466840518378329939832633964732071244728493742975199188727765934177500105614185786229372002459967735271686016156708042277800051478265454318263743305471930404984548184678666296789052262360792512506510966636560631466202158693622853200541536934045280446278216036520416290332112492747357813475125008465587892146128797031152007688894297551229427577700535311518329121441643871512376759513268652427992417339696608735712593743555786240966003017601296406459294740172090862374666205656541572172647757842652865855001884842090488082872582765265409194616875733791179744792140890142320741105448202566086735510153230123053162384787424985589437484512673117446238114633645948086924493582287461521940355044095582903451072140025313021871448915515247530617473801287419880322845763073790383306921451690823489029858286643881271767247163211992905874725495466903388255572522176671056083166190229401970787375928015066001984226509600347352152135897311094770807176555277201473707246932144626357534184583415486163890170814820900148318369485909990503951570699549680086393815789890250489128083420771593986862942960497576210322576397054690186629695912024746536405930798375876865837594015424527216070713252214922824433003484421718988084572886711473184456308550771259401255589151000692212270829420131038811258716446504835912381858494446824688656162814037463518152017875715552445855019326261878097234831343890205743514639023251523419085265924027065676692326778268533914642743050956493374033072479600464161107370639518118555069146425946445660369781831930640506681287725278265245812800924822475927100557385971146575045079247693373449543803257710251178995228091845678059142786755703340588569248415467708718364192207577228769813636734890648202532178090188218957107353661440371685673010244893032929800216243488256750615075351751914801840648917018221918496301606504716270507876955370632769926213828810922357720446268049122954887500372415601493483617435405456616064350813445105984014985107267872476808509093232647756772554476866054376339943207209765346388472636035994209380561957848395253201897171500118538753936857651775524222499749838199989785548030504856789760759371889595483867446633192789216737680137591326858771829293547446567492502531469188080650811399028573229635697143941710904487859002506719016490776802469519721518378134725630971344351575684304817707001807158834409594217870041380882606722125015627965238680010382183908394837326900564018149674459467261355773808689555910333885634449598354629509957460459873328437329120559858130238818538619882848075927691741274735782256685040149128614906910918560305155245889491129477184489205536780513946429724815566217860420378108204672637085234840888739340535370729200611539014412845692270760349993680055106699477152331223281428213113951149126224261419269505586329771370531624054180395236516195136668928869970875584987680228267739691158115304063049111403830569905500872546707764854264128784108313934529106973386321621034512288171078309466702349712397780646744222754928280296985063196536731113373001410371867093106257103763640447108003463447920087640659841439401420691023767111021429508731578595244194215854214611273865470229538521797006741371769670100951761762945203402689318308305167793514502212516367403958120345764181056398835937040721773523698985547454535403415596060950497451801387548941755739887537058842038349954527566258833437891308942676398829345284704858847726407824748648058832086809467608637487198393630368371936721058157155964334544248164271681500547268908538660015593086827037282947967934479720764199052531483483392298089415011755620918145109285024898304467655292635227676147356039220620733840093164623009061289987413575703634682413420650897043662934981190253461085849803709571951082343790301074095597951075420095110705848505081797798236678582224315779266455418856560971323250129397421335448942604535836488590567168748177276584788870785643322590072262385123743281535291547387116174863266395551300070398178385734971764698154557958500611788709778281295130398249599883104359372642894149642543396043710134569739249516649748753484867597160004581047502619122533764163432728376272330939413263744898554813444371997061610859529129499340446065991820489904115842221978876078135241699545318222488299565967482157027307124015212423939448297056950038091309207178908671388579246922068571508210172852354293492188048519644992637191342297368709896783374226239536232464066301493347392001008869186849580021897082482393703215031994889238544137825511903232028725076629964685668534044161621368217581911711636311491641812230255155267614208364034390470479650634691011546543369711655058171294695917222263395723901527545910996871778674220919198581994827383538155646702019912666142783541120179273957425128090488984434648048750457600471016191853140149116166918696022189159670908426257017548970259046083216199541852647700216329733981234999639251916310822885943848453340970202961457488576422664968514784166233464679396166777320010263843863975376338723630234547987969775470678935714706267901172444388640708590880065939014550027987353780974611553309734750723228197149890115547948325009788490441558236465326538853106466161591014180538658899241534029927093853096029119672246501023571457539743757859284556036797161879308567169829093398922795813797173315109977701342510127871104485508124391305649271072720682687774885965123745569424513024172594627331197333800460031624715342014131330720881425215120484877175822943749702811811169612088801735361453620456609744158454304721929924167938542788590488897334368690927576280266798831274444335441309998372027867102834012844881693961618119846667206283151978318530214960650605132144258256573551493064048416782292500024340310377669016123152303203846129625696518670312195695963233642556074791228588413239912693601790268858430201364947705889854324601461905103497866349505192986219731213105285489992241651385289739599196317782627257488770708686839972233057070506993481294548475751746257944631528234272305471743651683680168100503977892642010892902606579248016096240714243994523835075636092583894722849523821507364011716986646051998405993715993366524881013659306836628497197944014677686515165329757685104143887472233118793385717777125885712367787399460871639759540002896441307364740498914901599826156582278193432622138632427007256049796396614672054055643821619250734338358480095528534032247608825940303677302197503463204397599266674977430292543732366673431358990868940097666496386051889901753387790766241565985645680450012989684223317966046504420747870270676696393199328075176627955723095368672271056625742482681372247681756810090692708172394790682615633857134134414262489160230015325780096593878996917989892908826140338825683601505888677184721760778687957787426936817395050148078006166680905164255571062649902271590874322270081747904751798957322881808850384643860571544264692579797140641263591250206476324839792013352357440677139768245649021808825007393317971955534738365094668385102602203793407509389972517491160178172957391580485973797325275881427807270389319482615992709536238487544448132302119073999191389190423466844330486736674813880151632991319966522701319413223395216846086933207445518675849701948005493744020874294754831363339800457017695337960200211377528205488910457352658951829132109310224993224655955254400447955882660449846583411225563778197897110812443641124079422183787818761634646831623030410820756513918941901261646681185039363884688628526861058567419145696595977332643235024427717936395131263637709512412840601834001702154316927288815802056116652534970820791521726261511291098626507930549941865715952201068846865212321919232998579156970244027171818888979245007257931824661354124403218501472412477130278203284093871696325434105059664106327722963380755435191902062750851867410209892513729153937459545395238634017058987052158986021537010492241266430851619770427928583419805239872164635157226861997336608921848834839866098981323867609157028275747784403114689098671185005193597013296641262888826827902548086180665912812157192285111116830673507224271496050322218284644105215052721618357512586361399312303879315947815124725002601560548346000001501880917187897813343001181307735473396137310660830180114388489611677379966451395847036768016545635801651784614683528993196015046524154328342688225390701949079621470640610421102649777281930349950460942257260158395356716807947666142707585566759633886509526265056977674006099437361915177624410097261659475703117276540867085004891129507191712406021848943698634371503515006465852532573136547629971679898509729543205945816927280412673533605483340553126707571293731213682319312392975870397355049907158488203491562603772610634374992861166730675455169499095299548096410163136206158728959516198300866937292107811034871858031231540193937813111862464038980161281680170549272550951971149431969482051307962652470327402606405604517525270462997479250136812684738544167406472504503744160687830385903801129414124518674628675912039765714302706329544412913693501666278091353266719435710716399545097825623132086772086282695658539361167954162789539161641631860783463304200881250376769509097013918861107832491726195897218823467148854360671706109548585967213505904945042332809299395155923392248698877863537925335063324553850117624296954376663343588279740699183434083123517074762731262797528793218035058872939760805160939085879535651910466540155304739454272715611503884551652910389435619068278068118010434216927465473714484140684088426520767584483997262017686116213814720134734842761371640896404595740067072003893235522334337563713236800694889506925751323680957416880572457756499533845991455113836408454652473394668135402627867756885048807050687305187163212502799044122321558566272146867262294439550835210899310035973062734040610001635059757448881244302278176830875797869127396397506049745326187009881928713056138963837487774016091847683797819321392895500172007425428123315703172840747601724734118541809241644563664039532790720195758033492373043830720044912901220969087680106525679263111449706842192785625159739746429977647604336007486175344463030257013006727924894745690211182257644353266999722477937749506050592656475885885735585556894369083312984970416264924699582659679520314575820075368644302752070269116030976135299659379425028520304296114588286491930858658625797738952726516913669964118873567268069097635544746254379289136877636423886502870060098351250210514623298866468414225050047127949745788241010236121369865541605611087640050637791631584895016943227930890563712111821631700394034827111302609351073141211047594336172365366508386661086388106393817471853650970146919919995444947766425374834746756653568378323958130348244208654907550862588914384627088087746411835899654454404998256500699470935175497623895729742805770578745709876623430875257536871740376567874263232932520061377339186786263492734824393927766845569497320723556664294942955682841972673886471977354725969536457386033303361376124944396613894280410667567864044132573116013054328894856538002383763580696949820893433311431612452051516081318029236320975730684379101153233625073994816515583929413010204361927518342961885044714316459577483843152960531562843111667064015934307180848120592666795157868328785073201915014150334560639045863674754672564888949173676556766151675107064342955042819539000295441656433498577408742361841354633035856852697505854393292450437593688841386900744265349038815079192547847737194238651663236211978636723228448883683560803172532614695702224232305083372754085871557937708183025559662180270478974909844084677875360960456217445069988237802024010522765493168516933215594181156999983345340540425050928175506406418451575247040890428179090466461474125662383293074770115058271818776953544648286435423568501053091250163370037626033802939528995886010104378171228183450079816621198586639695143061557497815747969631323035772769453578613312529701525198592948185585689404290006573505037307633937153426181904473797217843916938566283911757310007911941625786360175953184394415901322314811028626961263154827435444792903212914116969374130131723003195989735407624325841693377832252713454705676402766214186072919601534625117872960864914368794153934739468296142255142924050675088175726081643312842449593371725187168389590021855657635381902702747081049122638000551143585003876330545508679372804797588387497957381813980955306219338803325733586067622108576566903440113332418077145081480705194091920060390254454958190604660281208279416044508604013380083426991453254301712512745630518403603112267508141332695757328725508506704648887124331385902651161089592592319300146741321144785481823587294295681900152549186247653099847646960508558957752108211670977886683468717129714960702820295354455968293736543639868925258966287423043911741896422995596844473915942991302433558148984165719653379518515918406647395975322860180565641929641464796646863019458470790417723959544371558095150361126818273042248881425099493866950785318980671024600558178801193933070570423028445602135343011281971337701077068526650880027318036885079879798030039912615178516309617765331253311460722651753126770930583893361953971141775539625527749077367691390013148475106216795692195147969181649132227210254779207480337525761170005558448772821514228131106878643522824484893513711820432584079599844715348369549234898934431871775682959566756908295706317399959474554125246992155575854807623441813724170055964225675728868356884150426082995613484091731677314632552435969652243166120853736517943314239064960153456665585889378880833247804693996672646424842591760783267644922951250553189970815552414099753568551243033234380085707546016569863438087858609630409825612965117494001800943447890914205997694084456976023328571613553959183223777322456535162659771235835741374050372825040335037761362967988248383412330954742652761654542862778014107384884987906904148848872514822120298694930102371169457565609797076349754654346480252690937458526130509739076034790031832703914091271738629826184496132307233104099205644527925119305614551779737263452845429416885590478410904462423232008988694599178829202568738929088506661146573027317705246183028517816634339846471485719128014107804736965441639774551815918987222436984875774347000351109044693073544100029041790039948091346137671729094765789562980848204173074459573730931183233150214140134256358280680804576114729511545826934353723906754666974761752263195501934182683712173686459723558912014473779185311851227014245148171863388898508525650752862541441203283804633747442557195250928761717138883830177213680946768655583883490173797005821675768986797732923445759290968807164774625480754391768530468683751116011668830154573957546041320350902306093467261992349932127083729207210005425358591822404909372371966870230907139163124481159760322345223950633763844938808801746253210598873653121430891592713110606257019917764922678751795792750648079375305036996400427224314118333398169580240863149881532399783737678227186027030506421592500560055782455359519006333606724860566169191370972534203040166902796568567047565339589076975023682678468861868063725505932916839891048746158552829112003373959196551846992382427492734802867293535948823762505951878263457181723628206745953873428143280320505292356106661949523393745421494771083781082366053375977318868562037031781467970037814871936319485457244696690365527448453673222189078632713536732559026994769658963813037943769916024152518998368585759265998590210132940734933639092990160994388353648885685324052781556115855223211368628220290176877038408111346874690231874380813375877999765630279715677546628416321691907820989926267052772026179570158094375381546135338696387967665632861236641273832022913323946988208984544580226524285123966600363830381574422315624243893319262722081224051147942775880531628085892495407321148092958755367585915684643009106531677480381486192615574564892320341022560981590500006392376652887778253753738295719621564555466473117145985412448109349211630369554756290154999676311228089686600337559044726652976899398255215219195375703346196467955929219226691164707511103154968130169963815980054779865898219779910887696737691537300123266476011288365206364714562406843537328413917925560918266579174248632357135257235364648761323604445839976295211000610220165069395152013455967795183565234291545989861379230031249440987573759651339174526243682493570456357956511723763555843902747965413324884195022283916565880915255758246648176132985753406792428590505316975383197872610052477184133729178426820220778458652604227199308649677522550703373702842944780373045584902591904459471038083945657078009962022271239283455634679859458791381765826573515286145284596524089178202626402532492105524716457006765874900377369070353788674381282028020506726287390245999810861133141622214567697138721293659553173700664568352674674970707921124611493519140456915156156656304846028113404246637650783801843956219112605239302599341626159129766683323725031606000903576275380860688959165630066339935267332419827757098101590256948153912209897954129894739357184525731642238845178118331855338833673492986697621028625197288334803931415726817223662195541095119242480118168564589112980454450367596671541770909382959447289714790175847444402915170808559469539143681145785707647204490312859654045529977098881046788230572558649928246514661291884334811148115067000612371971484408160661039937570827002731369469134471032950460113231235171960883757886662046643933654901619799751856662067256971076215197770125306182824179551612818239886136310019118465341202837763416700218915919017302121443111877914685542527896998140706276423941006984911574525575450482139877603406778525482675025058026533520873871528963311269142462555092016607198899728729292416139940942101386927642643600281188807942882933133209727971065951888587361672797070514450124174278889886881682185727333197477570063828415436127447065993079248610636847525451572236099901124406888868871204884541937647526277569926224655514952742464190556379862783521180681400384680643231892451970578730520958101381686725152419404370436411761056163539281162657835838114993590416849470252456468558346025727235229406473397743895200206310222474257652915311468947851298724950201234558852740792893754649627641448650296987207329754145251093529891163352180334537987566356276439431883967989667731373571370663779097165074121025697360953834278549851705842814965496615432608552480305387783490851704840156317086957905552445485340963976303730936611011604725716825197306981096890713934631540387196258701279030672002465514938275598499268605576077059942959512749099022867859766445525646059925827447600675586121832359280222797990970658535234746964877104006786435431952549590603561636219212333074808249834177227445407907030316953487628338357956944479900430223949235051890922847689205539700419212807394470657506982210433614503522508527808272365516039952884644711694136492343836733670497544476357967386150440589385344183010110113177749355371760363282330162655689173084464160758969234088733293771917691379406444005977993243412294570102867629080806907718528736550125596363907705580113195179745464014593868913449029397078462947386294809041375964516824731488131499933669222891725803658945756559939530002222610149966190961402835903775107574728070852524561222602775597601234676770025426022305005728299073181877510479348839290183415768447816192743110428647846439235910638564902592591092030543951490584189872382045202438460464627377128176256733418953147601107072317795319349310563970905016569660421924069931142640510431690952823584610366925204089386838780599515025642151929992425111892868851830080722094098613763529420860326109571088611946976614599316246770945063117108698919368249607131751993586480911543979120241888445095541068167572763491820616902470312643101847531184645672704288466544092847592486550007519444452284152129976272676381923956804487760267019461694368535717527497544271742048318391561070247125366130735946820791723861423112307005298494514648169208654820253654188163086421243721052454247661842356890205439133596936634589034437400403220987862253398335610166575554240781629391215251890310559374839085682896441645951845094592189647821659380333951207092291963978735116107891162410574814134951290102601709879355816297309723791290833520591649156002175148410920639273714245364671927510507551081809890323633673977672282179562575566548316267494205671309602512060262408084496658848854363065576633718493578249957278114793035690713467474396369218749279850776651350107965632780056189852570732152106738960533166983136379292081722312317727673609317615155863871783320531163124556910306576700462563718198978660590813921898385376678519938012669905480358257607494065571038886341139926178477460106155696192960369770448181845979000059832120397733654444851681468120490939876294337978135447865131278562265154063854454246982575368145744225649780729216294009627449068480964779499659098811752368719507032291008012953365532692928486183641764282326399252814933761768816188513248159641153541061363917486462841114435012804367517136151041369049119036664519823150594304051839606777499379798972640187560783739188704007353923146667378687695229827108416765365939716018465521581614266442614222145560166656733856907305729258021411864503257088545372483054300740165720440532692940101619523527417782468827454889788456555342077090298301822868241642512196463078592586518616211677472211385076616575789314734329540298366591187502815696908050901753449606582207660477959095131267220797592362716910358425497540970468053832909677615077539568484534735679266189033974510731358453538736674831657433843973005537944531364557179542016662248670089590859439169405441609324188666323763626900482979071910431626906576137903469146822334693676063220233475262414059544981097008124990488899864855524229870336022803716603005310990006351722534131408700004415120792792462774727011990119308999419332483783045903741154621135824413880751355136164784954994393049074761586865512636540079695186114563138395025653727269036799320874964271303180198682549471198261963814041819682096754405619524052868967322548123306239352324825703661482941305270431136452630523942242369157448075676887216974562345462260627106738030601390795294532003776448576384307570075179377194138905106785283612899156430453254795269404271584074581454426115627530875336340535900235738842619844259414774372487036701035040341424262379713710257501868034399879070132501801516996119105740890516343248443566912107428236382732161743972225987850666445777194374208749738356376962497575966955496479796522815306263340476991737127104276440880189987214501350589681497438027192440532604457112253293570850937914009752679650872716905943246260406922823754327730788284382794575449072067926238677356780147253384651390798881317001333028953289722403967780431366724763063015259415348274756557703372026170682259106649744110955664747823076032227929440470517833811043101416853433299799343610647593832531004926988654363716359757330470507659045849449517356358483557915416744479892805654232723640751881065261490760468015161507128999314856041091401767202602150931272684609298459976783360143642271520274930009031551098701307659906216951282494421799682125529716221861545542812295110239224152987828304054947152284845082484647073569830372468184134890210163791505913617925831604680789487227629446811605968211842477713583626800002923049372208552086068614695615058118499759854871482218516728773976887844719412987605296934830974078699250427226013087513083741891153490460094987014545922407059489588511431262228498181591522417230763115915839974246557235632326662106740276637039999955651803102063674252884493807038736130906612430859356900921842334898449534846935203697438021356324287753668637988309493549946329499325200084869558673938769926530070744524509328791457481923083531498601905072020442420617591392516951214191073470798962635582573130736755900385011660800736755611863917040795805998086549409391950732942926733198442187123137319260533058272041417751984531054116305837731906135941154023813271197167513114469909830740028207688603697315937258693699946777057576277226815839853739915560966114055884165071991522365408852342770668345804355845354880451564152416784641273941932458612049123675381189778563599181148521520245494839718747569557405927924718564877831366002902796918824992537395036552924391396321742738489231556540042539553973104692752203224851282904968162712294323937819852795051085392345041646368387403648336736815476774154839637088259488051073509792837543732953358991448208642781572196980712116357753970871261686072056810465815214825525628804427210961433129153719718484370227154039826997697865570836722481184805387849983797265883796064933210546571903014932064655976783704237104301511309208137477222721396672348091062132208731417520624865644326778423001302339401216170735461758658688112135632161399286454053098352878529556702981968741635613792360623888634848694029806053989002231211957205284121420851502382500189705612300574195703284537727720822509454108403408335029285172163108147159503880202443255266702236341719909338800295166379041311927827704698573581411516787261878585693058274943486612049722914729386305777166256255253557374724989213186003779563502728283375918217496492554579935812537883384255065649506928195940966264433355513822453801162906843305365246105294307075424838772656855126586894200089795252891656507492696882882141057229915405340356684101738190489625297048807055554768250653419662810846785392464917164457991082334949504158106868380999398785731043686289165034330405861383738130698101732582125100099197623882768046229724659916623625600395030213665245394794260275902362547987814459786454762774308331852238191736387381395422768114515955372169744498002397842314339171748009224976043733110101106543898703880152316818022000659039511713568538991618373735341203035101752103144426963953979968076330370755035433795056573125850438422939094046583693246824244446318370628487861717723430851219276069541333149710566720172977467802541457468702284080178385878390445009458733489328046624366006618598323999079063548306757076790691081118096789608810313602089060018803535481265021946513848432696538711192060604020224184746476734791304104207098216883962338155590764004318467773687602128531951109416354275031167629750331264005988804752006366436128547252203710418249594817715294062583719071962799639757491398291094720001990405571471579783811051802095653257018152980744417482820803466962514418264486317943322156602948594805442075568744488436216474080666189632825104017488574302036098999188842887270240158791761189779120367634409631862812491606243387681003070037381556941674142344056432842052336794397192039366641595566543522466848196336377206532782471559821050007169284127378524175265141986203894098143615366587137256676967712372958316329819456434859753823155305228909513208785597070109306878668660402413172488317022838092620086094963256485213201174518092267084317212364255157899726099997792870280103023374069347414324674364453900261422089916337375276364486014351988320415364018789805898242704074936230006625169711510079041079749334948832098616019469548439620929494383824938875789574569526307685636780825185208082910577715574779711934416951374360324787296588333864490659289827447406080125889849404051174965295084596469687534630680379441629851727019755631532732782779482801619222090717327504731495738541372185144191606258610344292829748321887801737511241927061752078189903471653292071080639682651553605518631296598900432404690176124814086093017769516574323902554209679051757447193080510649625595447047464664461504331258292043696672316305810918114261488743725118921104072866393077803825641539202628571221790246991343392652897088495366291067124645804028526228285367340789744824712398583604675053904236597919395503085508192827910546053927464864174482664644158183195879993721446980207911235882793170215274071644190342941442996166700797081866601264176809642476451301760511410739737449165587165339597614810977599198074716330083754770699616146912915110274067473468607788766815751544513739361665189855483520523080818170421411907732161468051458099664407572479931314202581238262690218694589263841504748275146206380818341290360974647614461364748190913836169331526777328177118391739066315352236198396367949761136990544168700533704646170027149377245509362841099144562257986250034024600357597324118665612617344327397548077604177938375131538145053101568842002467666113853006030012787987733729239728781079873055235823223876773574015065442571789324849957191761970021396945998277904950669706298929923044343836347423113181127302923422996332155093628860108300361318015873715786313453016404432921718483024973628974220167674250123585941068615913516867062710129960756524086257243235780744133853144190876768644215116490384805563485412218564342074416669240973008758269686933067653584737239016389899899947883581462766670895361439410120904818106141163000579454561487544738741794123302813017476957786540542152559453671695413175550064953446362064150239875007020245908194085280264377468022983776400649736550716024613014165556848235301157342358901982485143545667760528315812041925652339508207550821745255824024329943705580163554744273637707188292864756196087948537025549001463179990253670096368489311992075620186406908397427085734788695009446614260751159538967833056479417677095744802932256585633358086687816292281717402542459470223278749459112457760674663825277153289447549965425151079047793186302896695153692851439849741782844040011079985869391019576294722905847356937753843822374511743618572450960720285340735727402619962740331744685853714013734287291016449708986957559612832371611642276610672189901360755579958865739659140950599692839998910199877176713959333099786049643697478986429268501077765403888720313973485904839876333916430570864494423311407413338991214381690040623088364251323574118210914272499748620838399092752533101908734047078354444529348919282143420368132988269411234643412627931927548758849386620864327052529466063944760145363235401731415560510648087761487335053594962531739951198921713028293737026426671405224412932922340198611759484205222766729583045198079372080714734905880991509057678352046569197875724760120688087787792621312646794401062743305655267990817271053833197858403486569668986567255601945028342345104404714985202272501462469887557481441693313790960142625035640268726026594005421589836753900162524236792087027863967215110937255845234870186325925629398332734468563150836546298692041913596326712727625764472506345453279459847447650231317339107219083635109946567326458035278841673897539484937751294206334985467156250123270509136370171415023113935551114424214115587992459721258687921175930792632447185983616881529074169421501897371034261515808066917224764766274480858913920291204205396141966244239204824063771966413252023877609044184455911441641306141073886501487073863893755988881800232283337243622132614293623296301333750356055221845399676190260792630297284849682310186091896745021390951610821242797965970096916335920353297611379747837744734284279957087142472708989234981399268911413395740256102412746091818470901398726220936092683982528662848208568385394613601189629586754568462036197337571875673025914483550617036809838737034386197448133445747650307807716732614398921069514630891198557968528919510636236627217930524520509268063545640061986535675944788725487324740048666568496834259359030061562076475568772443367905356324019390739392420952399998178297870375178964513258380416614165798270819218367863289273461231880890734022071520130564570213791826099263734987078211103753389911676667408145641767241554184894856489359330556942599757548155467783042475615071477958320078990526092213204929313908504408395173563833395392698085771552457577409321882229524345599605667205144724669029176240687529352334906220604416310809630442838412366415269520842500484749869717568763336681782816335368164200157879790663138685234362582472959549748437547319051811871033472700026289788103903363576134935939030461635251201826075927391879531926425220255301291877253938874350374713666614380789086675439086620302908528813594769276387894659377901134050567610582917291931322406449491287097580383931288087435532618708402581542199340110305416944548964720306639524211394014815475937885036648373106999108550946497586319583470603726147037903857655085471223102511269838418303731808286975107072888861726335389736049278617082856718268507843435568028222911108249491812473581329809128008045697681775417159735510016197666118234732539507476157798040007283735963358652935445085279949350142707703548381845100344828689587036752332241758038634507089258170955498888383722929648506392261209393861070163033897288509326831845967516972057369708659710469460516677330047466879258503786789339020142193840721061728484929230736608867428647577144022379781427586376281564967975560917642664714377111801255093695226787210321057527705351902368373380794162182947094840069587888556665011635847131971603798944433543501302001575231992562056253579374572842973943151446562949709263427302412797722476225809444784344813796441845419925725600912490848307183827586568251965349484642314957326637602910243932525731419905707631244994226457214444878266790024246705950902902399717717525867625922131407391377583843169551151317505623118793272263891619538472779142697128480594274294837353504991492563076667704187371897766459059094357708159562104568492266034429457907087994197185260290086256870683399550945175252659026698871217444040234754381393235830510024546687234784891241150888251748623957683109244796943575051445734462341790304660940767062748255737562064570935691901277400286134145020909396525565530459386072508251025950432572039571881630806585984331240415372338703267633984319778255349780839304048791858173203550400068690033508678080214622635701338429247210808344114745285693353059473403345056813600106517362593832177949254212604607947695914764226483316620881969469992690907883845528206468988408427102836197902058220658793657741065259809295008335911990405457891463813926773453227288252625930472921490206249331497584918100908192522204856693482428915189016370403741710920691196442670896408192553201379966131368367111658464263962206359657322417151550704436639239397443961326325051824651766984511745188945491400773684811246365242062132004907606712212453379152635117138622052943879832394879896942390831565551285977552426923748815254167985460453378726028363145526637945106567425685025469165939796938221615578003729988551959934799639991425198154836471868609642787721922316766480970740346432460823345665538291531518562045793227978519578062523351224416120045466299682422991288601289509515938336421488250211881955536319180385592646151430672365185960687266265925830858833171628714805043743629261609001195362523869378376196832347372200175763306457513358144995879615675860448667645735809843783910468625288985652125097387402891367332447500303239641626297034422777527136713000115331397606812549166674716445074290213240338858518941161089376900785073712956913083011206210575365270500773987417651052237047113729501669230553058698670394363853288274921674494477953928510585210492251349187418708630055525844944768713388112303698708641402607787972658689745336525057123601406710443841427155613503735967869815644626846790319547537214256517446719747056597601493726421162041383964648740530239386980017854999780482398017841517306928984586988657389456110421957161072464464764898998774780865222610573750575794412884806133544811696317206158316044981639980762154637117604349804367770074764652439314246068443917770259546911067430579934208796095906050208249431452794317507022318498211477996339539365765385664621732785129173500055846128291633076980732944633187427089629708090013446446884342068250425415424209177283547812610256071929541998734093915249592891124218884659180474435393900272872918727780503625334070010684540685577739461906714627236107689730867903100109574305867059370016898526554641760157610468515343763778503085362180373063562708456158788619162018149151616092547679049750696756287501103409376385488674203953711195738743413668960326208811012952140235478763846287649046026825170108171452727822199466748035148097657788993575412655265691174565200544754007308334443213275151657538436657864320425824991625673495765743004532638249607328525576418974486925810038661333653151197669048723125261951142714266027823652441300175660559624335618900917062141204631529497462147312971001891147412413859559227668104673616937927260852476916574780287384802392049067954326212096287719138374441197100480946028565035355549074349969632278076529363079611320286881408059490430679947773216285910931928709534997602004516430658471821299858704348732052386543286863364485675559172595690482692289839242824111829583736622344547398869852075665843592768362495787426074117782400524617636896465601401466374432601526459961591868240918832011622054772947983789458764606045771711221949287186592074669647755835742389787633806516908442738942081947020824508249108523375550662245938759083461109171573838906382112182201418661657124057003206175778602600084509846304426437452007382210176697991897803130967729152271335077191557388996204500043622025177192589052268505492320965126529932575830647160927044932454881755504508166972632460573266227880183883708214052073375391726146739969510700569964152969072963129448108611998850343199138960587310663447384669869447078071062098564939294166781784127133943927774067836066846005604992772399166529552301364759164783208446340214140202286818208424270116251736568187377177336804231966899415223013628435255962101488837712479220033897357453022469891788532440617328576120393587061614741648398440272995825221381365478771637676476255665483385361819436820772329894321009561740359966830819967499590798933004351327616912964615273277876472538813522615840410675354294103772470577639162390035453304183172118829969158754075173257636229499991129766082612490905165410223093528303128791093093119781044457149403774172099977027320252582267973636106642180618621410220699807465814192578730026783249667770469743445323884165230941517728301150415574808692520585287962664984244179204340476724354358502429875282378785151097155674957618179731583390297645899880855933526763166017870480271830873425976378574994318254326523281131842263498280908630005067584709463813451976978708894736133374139785315748179194163876599812605203546599160692310275987515118035314727488969311810199046064083102353895090878482625757215754217061488881741933422144068153088749101409416093545023392098757912256641419637649532843721188221066771278216629104347534407561123685724357730462366881602200704104537983508106508354198572995260436280739131318821009178464307524042693220424628770734865355328372772704784075348393589193126097394245361340679062617091027628121988869180241764649073778430737606265288725346919403112319909719624869122642886695442331426606844063053912204193979762935790702016502626551884716466507620939607221885248786476954229659786445346721264172707640562423600460617845611212050318941473850396961066276288065785702033498613803471074422931077705754414159571576902349968713874268172826906983380393076119172414152520592991659641634122198836114321656470726410244567821555730867938302905859268376300277074491055055082725288856765111120501390688117647893589205756761126751992435006299372829624356468691218327820406369305071807849547629487052442202052064859954762990905500403494992693298218296918061568886800593288083733374548884622501663592714522822800091506675015095219787696439854164368911173326467164975004952117358800086790892686887599311026882989561434970820982937379520469579299003867149321111428491319685274906597401609221067823891565905877174700679070768269847905316315060492444060796939674283773075096608395484725722349450025692749921716714168443245316230252056561927988639648645892556518304045739391714440980883730843073595018278018797612643921386935035806163806661161216259931922253490887620045733515653043327012798212338836529113132363625177430465432458074196555275205605589254938386763366950079177812144830585729901898594040473880863018446127683246964060083092375498412583450992234674529858757153043176853611941218847642819837982611444477709809308521849531591224716493813601318641731890407055343146513345361859731237517679662550455844932782104504929688574204757331748541911948036572488809694921415545633593987761635996408735055235213209898436021207330707766410577197324468598815270981589391307018626431427765777437514798794670457468134240278924383686195279466103782775032560566734733717749557437044473822799471863878032500585767630612313242339406363579241563783984799471862232088688250699963115705684033171039504291901564100310377147016640556290040123038791575578300403179858906428507847789579521547010683199699918785955454169296098726762791223683822603624845786508054008472473135364613697728533787465620385459357315511842145339448079337175744257202173997792158889726049892740051330891239445186137245813929628001075634213036116486380195777758252867801449806391001401211137884559579932790329354123686712737048732620024281023729644659978141426889723549058470034880888521628752262563097892322852683144823849571424689649212631001335264863877837933813908158415603670477405857760880183810040574193403359270944714776390592469515539268060660024845664901025303962233227042389526101462239952560573844350242286356651566729826348086109286871829137955615307187806578443950453920786255578909488980680021206039595224221693775400174419105707016153196892052858051250079565369264647027916813704444041232211671334254929014318634489610379304709664832058789383543502959613133352826741411817942848596541391858156836359967024394016600401836910342846242545247603601174359129403111388423471650994097919100326178500197120399656383493539171401376307346652476665158139231477893836890932428545528329242144770711128054785026134988641519258000585992368730505932568574260470691018710486467612873742224415728529831797172074641811081638590704698346225209855146724475138550909976813201389322145135412503683398877936200073348326628077144297737622047451838942066401698473665536318415855664036046995994065146070844093976012380791774989186761690145345953603874678341856721679541326767061088999166023145894045171253820158669196264904158109840151415316366449900823160776093487325602029236467033943637219932818599167955622105259976927100594981981608497989134043433517020469058472354687616921730879780330060462887563446897672862177227086547787323597179821059887166818868933076997103823866605203205478130256460827992645163950304018983706865320311984890290295925705718101924724635915829403975197253385905045903372447212036425528241051142181393715715999703684083706960115934668433422101402182387027606565661626275977238988782720453294608085021374633585715997297359921067759954475549422454279319431557772649707783045047888616628547593619049143274726157217349033234589063734152215942929213294047814426309256357451835386155046869475126602460048206606147958034099736888596450464466431389803009135883433244673355560819169902817651911752163259596824762907925671565722261528348916113958037741530270793307053945170509800170366942172466373040055995750102551054803471861336619166767132705780843512312878584729183005586027139508774388751061190512222014374569229077977530263041641751698083630512708419422594620927781074451481880764615154593423940475970661155621985879292996459779392050848707862621830288189092220099788748564888927710053877102192625838356093438766033940373674888355159182181409515943525644929912470136559676450719242394466018085536627532268043476179324416513604696834182398516809792433897164302236294357929430084275470444488671398152104905003361294989817834362701789778475046641958638161039108586966346351327830355091263432619600149946084598756249557997326118072925050329856875687654166767580382171446470994963153735584246606984509130129001604940914067327363425749025442182240546869316940634090752274788820967695609262630468142326465604763593975916614207429927330242618684903229329995001106534801516163256492326341443034259742126039699076401241698895836415849997322439698939120498446330097748662313997586709970926358827306337388570729155972684712219058602967734681641866786542133051010108870680337775725274741314393606967189553962442370911385596106547026182920381813083009905587336002809265040954196658904194083761987646165683410797986353781238616222775742448106581344037233217864898623811405612801147103430458764844800667238746880972438542749818559465936613338242283212361731941440314251282735537125410866059967612454028003954254706759315904414071072797180138126851834741946704645030005923504074343973841961230039864377300528776033164613674006376248522361369250949250047443491808070895452831624985900900215879517325194966617988204633516969408801419598776749927076859080240340923644391413207076394501333933456964801583514901540446867476053268379509649781079835039901814952507444426023700324703173726207654179277006290338244906123913819133789886049954184570711287528067461599870975054139835167930746632811205321846299555060526965150810570451839175828467575387059309004929480364507236936402280068076008907548217352223603064219916898284712656352685683514009201589533762988917916582986240931570360622800211561743133497389757224010400332691628176787486699700581364350711029459930141772981773929052243941530128859952884667637953466232785571192007470326692053288985368950899880393098379362463358531766080661268631309051803060638422054799960063277251178862367011584603876190191065165230734467375894066653910566056424073553402392897108922648255071261736901036855045341162199042491390844833563156524198182590299614674980953162736614790892853992179465482024476570701038490244190575897802544330923089342070079143909411345663078822931095747993155188431588870774128421844131952072596138762921128164970284506362856911811762762439406909061114186941472042800903079610225454737876090207610518618180768927882599968175568197938227152393149785084975908089893799865256552791281890476963801156574657707697414865102654358253525093960609631357064936985434886488764747227128992871486143780376879442801622685705619561466491070146718253016099976194965625534613914879234219610290720552353935630009022723816730073477034048049521381495079884389289127888210946418680466039990139184711536807533502028087159184131517915235886450383383120647382536154505057245153797817365180371156349470588642581434053144324179435320301125887692386230158488034711322017789608192748800939199530224485823879379526487869377647189768514976898256914524250603830103911153669396467506612506776973766251863882830530914952633078867405140175080391847014043541801194073069551938301845305206123196831469148471218814038398491277019836834809109169766593465599932692449558730766324082967971772611689792087252604361347033478847462013286970246800585405684443525256796229971786927107280183288718833943549265944414545699557586216938190337986507329901050577489635173142396828040480777470100370932785423905599082352769232548002411652219634911659777944917754477202350194522921446275501258346371534948135774792385556089374601986163822969925098607404444291625023468884555413943435474577489742693739863444123322040528652173883091449878808559163862181441545236259195320827608821165226036057767883568494956053980754295780825538329788469151115319918797455563268954754978581011211632411727045308895703522204435810301034222971666498778844072485626871704722573018778938056975744594863955075726882770662898222896641122732683546193330301079725813127428464183601697876733183845090402590176514109625951005882927744160193383432131274381551070457209751978411557984024520326411486219582713320647181161682165506898162942178219054719639194045528454102837696416726456516914435815205921884283273780224343610986194489306626062958786358716147577998220417005759388241702630749744717732309338945966211889705168896403030899774167844535344260902943001304620168262306827654981602509717818790661856277170769887511187892596896673008385230453302104837809231790017953462628553418538001907901805044298384999444730066900361418440718549619690397327600183361971497368299691745367093278660201215167289510205599328580194101715303603743003031797941840743305769765015419056051072607530360598139313225655653648957430434267304334180689231217944882623877742768171070379678167159533877981221073281597633740134641832983136908957652027853834050445990697600464724467695894732573752726941371061897135278471112577886331313991355484786841538298185944773944693296348218101917989131689695115424419259027893655644630804342155876422727470474286222828772541221568804457145806727780481027693823970706497156354956323427569971047771076935813737243661073024350822483400937151686653992555022093016178842475634025661490607574332525810717188959830272187520193194007763840500624660709705305862958949749659292465130446980553945352934020206080586625062934014007000406891032983480979953123954788531146071643341438098130159648495634379466527232100749116463598385790696189264457887858215151218750849943401987358990100433832487094281736884481614831904810278066617627779588849747952363402839149180453849261422834178188543478311067473472303943916606121602404615967794306238157689295452691512027166492283440675484192027330083565161126666083372509781710177762170342647317324657162619697107656167341509064055319413736611589331517067970943965142098058576960037980479170258162828224763160321340694672524804987904786696455210686731773016647759106511337666511859782541148389527933079153693383651424512357677336516100847617982342437861460074787377535006395782759475989830306170120490319114343844609883478539498621447319923017823800469383825811426059723534892392045878951875724086308795573335706931319424343610344015604153392361292593306272433479610599500907712805445992755407877657917765107829444555283640277802551006731614931715515104265512185549092588096599163681911568108940059225968018212677228841721513139310542659504973302333338080366909174925723594894328885267489822133816174410081913624411288528566795678052775531771281115006429443312813613495134941281833437962619945497446080469859899235776172611730548176395334013879951467643117694214189152309598606647973605991534365250604639512387360967429338320954253316848445952753606655174256897262016889498401650268607976031027921510719475806855247767878126454601585064484005563933027091643172428848963578930108030205499685297133380812094492838654704863405921248196630580176046818540398251492563008986959537907183295282550916765664468300552183836797688851891546327885792089706363549214476890316389295303986946664319446661437368813984898890342719445568818367766881850041307215340518159854920565922130065579411559148795687216908322829261205929347090856351325432568985953932004713909718964306786743040022572434553635344711166735054498013829169375869605318321187031320078428828625964095355928904706616410302599413397206056990769092363098122597957104199127054105681809210029830685134550146996340173876369255085951738167397590862900962068845871138865698012065478196286017139150608847553224260433474671110304335040426136579777839105643963380952457055856812875230397833456655993416706461701737249769317578182291933939047819199660151868583760370294836519100248148087161153081585343193549397102240642675999443640108431894801462200676211164118711633126528265126671314926342758951753162654292761439714812696697555840428843084813552285524185631277135610975880823064747648943388391268530266009362458511525550579932943257776237930166335251024231055996785817270215264363677894727536314056239237708422259039266022856557975146182757747294956419300880584833308602929391693358243109315341701399875865758711024435257439343741544536282530173539517969777054374893591687447410491239631455982343179015657060151921576675374028693674274222987945723534259729572411383975584276127196654714125839302510764692010617465626510824677046454067329819222862831142718819800570726081012870364471583419528610714045411523150934050924927198952949122818857212991522439908751312012099361924905112572549191239920212942620136278368024279815119935084804587493943317522482267964960176265770467231608076273692067599680385800664432905543987613084501087972511296739046808060284876765495781132400713623401142579748035215711694585818184926060537746313564724699456588188236118801811304959057899327798146040707179355948388148679307206990379579513513597886265797039423933523136397582588447430123789340636717311501008675491061385328543814635526412949102836436114352103868376423230680689133260961081171423973943303107821661958005114364503083191898900830762336183152177548969716993014156198799645105662351832992179871715513412029481358362310461593800340464495143547915803664995428278116781803224853407971412381509226910801657058556204915181943524205728691377188256637697662112540362387940422213886333640811094084861986672108414221347996629704531275666487697174362561272799851548748444008886031436107160910740488974230589307443066759922687939648215584605580270306184207596973917224017843310345904698952054473162632115556438255687496036373647264189379993957318483898204587368820272590481065784337822846125434652569141228485359548848722779698641904410105853063583206461793707279486741700576196149843484982772162805419849943192345863398249460465848662678466608947177254959057539460386474310671227294574559102950247134823249929133872959286671228281239902920012075952721262545462465693728532929390708365253960176707194050387840826399126499279833337939375015467088265230547446561838176808996662476548694751813225955026242769687508365597775900929041377797412732633677773664824045229278146548141980729587375025005377122670492789449699182986295510286496670044212656193871958950287373673176547451691123612678524136619035858200985978147276120184735060439952203274461506347330353591137984353850778964986282463188077368554010698387796591973371741091121645216794068909959436406455309281458394396538765621704617754113058133659776500283084668348287570235561839620534971438871547859944382993901938557124469092083911425015198259730673596563409460761482551295796166159610833204131634143068170217299499359263798343300081569514891056468186360096933824324018666030334670480009330143996071327149911763112512512579913401338033593055705950539940582266223542630073101988332314234010783961176299635937516906016911464400888473052332973360279852935950672388512364759334793860047115445545665873164564343983134394893339671087012570771959562270035722113905284770402118156985046104429319829735012996374507075655315925867691288333166043137723787169299168938026505062543422961261930021032947107835730999233378573123761004191756096268045539421788902686702392515913272022469066427419549816595818829000871102413362994137010876159479708772571041142973401261026965590283427725614454971977913084448747370549058131715130279599981211673090077143922966230270141653322689448651152034149489881972396319798995877968093487302727144051488832275685529474099213147080744576215111557928352395172364012035651823738590862022641480967584386917878061227324898527373775797318929541689719650777118754726739516886878806994037382510975895015479749873107588195861278067601210148780233645136903360644041357778574958912777556203156002259948598798230647288680358597151436827203205457688408973074110926662580763001427138998866584859118636464304114794087055666872444498547866931561430147048212275581903411943946464571466278716404055732072259388624926877737028152300766587304732464580274360174450409070590698404632564013527575815646149396939552471856755120006005274180408050502732654257089937802145915633442286528648302427003278044568939477005503145089690914188244146952292366816328108952275591343205238410758761375555964713580204143547238705890635800647982273334532812694450137219253502676949980091425103552819328389599083642606935815182542116848350932163563716682966722802452497425114585526605963508978082040343456756360517523942288764096544126692391244352296911237139816350917934851484300829139822350326914217809470899220123453928465936168422863326315665016126488600913333403102633017977191407179965305231681120849513867431238593209894494313951984900755161204093951126722095261097757537494946523573923102127521472833361902982973168046525753448599029594792313868584438004695948625222194382262052193776713179516076979293112484765975141666507178599492800167897007827215691198084760865972075328847169337142009791772818973541643029382485879134893466386040323230610137796298827536918628006628419266526187841449104061630045580375291655126447045838382462035181736355734572105704066661870418327747548209618563657101847882073287062997251403221441829265518207657950623798681226577964499514746129965634704593838585635653031926439505796967106923268818868243975889087400624522747670432249279103943562188023134483991836214566131580091128616443499794034155999853148189927117411080064302062190216854595049870396885810056470306892310190684446398254741293863660920577361855941530287981372477248174230515936943713022226180225327290426590163078234619229336429937313129696621620481465411438866018544629354264124665931791625083324485213490849950808363415738574748895098467318388284593359015203452841127630052812234449219804232058961990132722521757921227688540982075781785066795682153775372984682335700751705137452952898088068403994866785502075859688433602247758800072397892582449045746429386867364384970493516508943397888550369531521326787494204778051771831951155710146556016877835450758625814674835041697320053834828542746573949687607048523995624225848594017251999546312863763648426453908312472866542322886364290441952910695423713560041828260817984870111386239693250531817231564535979177175966316797734938568707440525683376909207960791243358070075298406918519403340679533027839782865857025932417204072665207516031690056660455323889882033165640682158136186839976455640181252650529137285994680271996418793619179375897640979788268569607792026329938773239173973217060074009496837118342974405163167866013069367562064883523467359664991340450656080586533958358309135194516639767102281616442615021230953212454413629207683295227638589700003073161348203104783565898539224007920686366702708424056889161411031981565064039715906176729161640217520020696641190906927354599257418741962559191666040975291475045901116500669656925803489946246848716146055199282493106092136454387876992898845105665851511551360379344954761041361205786778614620994674544355662167105745660143002459113121695704810555966370247656756215181356825627237647092131610769320319870717354172663457056694685142873199235753853360879257963858469757070671100182934281017283614332491667649315212949357552425055090904749179178233278325939028936948227699102089788606945888802897438477402854221270619383310196330371791546064312156110787468151916846148092794365940099736589379416625517558109060750662621173031802457375409856201696638757756497861241683611680254725968514257639123806923225300648260237397745571248956784253864052692135022968430512262300776204834791598208128413627944372637353630300475328279994420294069726326093623355721805381707787417034004995309109465695545285207760572456961138403178471660665165947886703208959447166064351509075376236638655983353783702241512427746256928432638346945380124106950584823882337660982348464967439084163820277190486204768498176009312727850100461541547366722067025775988889016478655117260074459312692234717622914357939372024954185959986467890758884600431072943048993048778746830988948310414690565245235461575691651287161639554747731837043398040179239320881360625927351237908662453106232435672098243783836100900272686963847056529762800293085458382584508694514638132320406557713841151645164703767511325867251809235826177320753985339742898032805708302788337662987024846179031159851698446454274069134814514526824541023505286799654648197001530010503235627781504679164976412749304199177815651597085111520805003816082986000472311698863354638054666614748724113574650326541068458839907585641935193365541362412870282263878221981081143600930566322061673763555580693449378763115026086576023390896604191839480882049982398427155398126693746231083043952909259929115360929357685072397661804237966056846687528336333132360413850183001292271570969211616542094591988121073098970516436663927459740719964766645991925926091292663995834301652763936097595736190202834054076008503427893738252450202396990997891202502518199968668805179027148935865597354486343874451576742871708710278813064106933961383364509310009818607794732393613787181558366304946655434992541122035935107957695458899026693311127379023413458595625014508950024107526927351734178435008851444619441242303035746461858279820893837256693679962325504461717471758961449653833494277538766005369166247136193748865008659257180330536942102814284132955776629186925190818677808694377167174431355784302787991487300966563271224748134373455614657798182601943740800711003868630646815456063199839551251244112304565444779071106354164657443006401851457834314864515242636787126953000863896988473578080358792722026985463887298052244182247972893366910666121685838556954543919216617156328450615487286352500820449821196046054469745772415932695587328868963430553146945434917262728398683062834692005214329936121583736884818377009357052784679872494104360835368023016667506076178897119258205048144824638986624006284158193363963483572377175206403976517873236841702985820365404344382604868345849175987912611155470666391392172112575049708343166459064799135618459044342179251505701280268952691123229203983373206992313884266628660351388998453085310289502180190581437474175274622721266641661729863545199263963190513160930857935240439743646694478150228914591669898234783617293149525588554686826652069248017955772558503711933001440520121662221494360035625905753583058043746633100828841055253132806632117743085412844048843262395402951592244507963078301154404024783264326162407808796478633572197198708398331610901686923808417654512610626336554649259122991367906002292789056923931191607219011098125805776917054816554063855977096633844735143684108942349588730529100359629357999159570206156462020046200533622414695561082873815191868442001574259714547865653439917562086654415359268744388554991341089597863947063193476997285492685327930653820332373872287909351754674205423508945727744909204791176133412497766731584920230756774039496885913756235023345887577959633058753721444739372828498782645551593040176099456179099763135852161859571690419525382306540677872423073875820986730999051833935961899879978914094986686292571618091775645823083020475476845289579595557552389948121694910884385240892780384391445985342237546179338066964323922124130457640202921100306975216444243544024554913125383977880169503755030153188680848019990556215535159940445937698390413649900013786749813399252225393177716885278557387503709539323837955567191958911993049018755887858419738924011779654708991450667465948236686443220748648741308639902222479447076693830717691606316464125644762273069994829470147337046932315195370991807938595598310981304483152041469062745225086251213933484384450394412010361228567890552982187074707644238898004744100190702465258390817478203242109998896450642555829793047747987218290964028929564377692844947523170730509202418416511730419392644899903890723522138082345378553409555971851466053800924238816869633791430805180003136227690407458213096462776692718555462858195212647315608993542236230595657025718813162816114561691414111620378833251864114735925425423738121273612550254059249955399701674399148207307447708871835105427571040757781046538285075716199236164537579412344125377686505275258861444522523954869270991969703697033759621559952963416085615907623049940877517626218602307716948590224862111951825545319378038149715197662781433716046327560117348352630020474737515110846160229849813545122957165717957982648677937520329006220357725148138579398285830975629787576231912772067423787575394395870379718676625968723110088014255936716224142908909048188170709939728692059635278842351597955701282785263545936535287595496751650570777715668469445474993980880803032249742716037050301910643422630588657105059988134928889342353298079593264983585754750883382058507994082194832645310213357901690159166565249764581733761083364361235232146791891009669637719592299797835103685526994395859511530272968000490590684049973568596685944838491688745275815600967845396444143026666208698324287970122890400085588750735296243773321998213523689408739327586035692271181587997449206876030338048352565984600631283546124847147608706940924596717749726738873340551722764456043234318095885564663679416993262724843696509242188178916451022072594140466255856884740175707877057825930582292540262175377964232842251838840346214730194149729208413563445076194876371296470697650152868691489136184898487074370790295585273380087005068518720502363296167926103471724344298501474427478973758612100186122841093623331077365172984115542700638497549610786020994662346468761251641368734484886741626963850562490871293481354027438843486758488510026033915598626159117499191874422751686089171928124867307375905362139094684366014582147009002538116821131269619825407458629264785042073322946047342768926669125131792553394586175449381580653531929738439196520405142173975671567972850086831683158417393757381942835165237832322002922579338323525464539335392624386628107512692532005891606511000011127174455268043971682614657778624861642441037262901934575505073210599602095576119449566175394482691072865277330322405548646455484074484472575601728708090336947172670721407193419280758041412513650285373060881208535956081062662640045759012686202078111322153102380126671873712050674822409683475714329395736978371503859481676192183573483042023709173937786564019545839145525007454047846596055680149105618235883188906197158094372111375914755126995207100462635885954565720625325803712608336108211459156349142184146081230115493561995119347313792918092186131836097194540464180230068313084931387526523589109903585498309613144422651477697176696405103731540240455129491794169424534936133943644627037160400414223571667789322429111930780319492509762193347306112645671138054609568028072603180297451898652036324924336712847369044559330490879286353045994087164043003720686537672180200788621462389982312992172921557710945910429101075006539141898168273334795794024548153737368503436179281860183715068969736347665700162036447531549484555467430028756920571752071405439805047671673507196970550136522252101647687709631765149397054538827871647344365846458623537621186343064186378677083010894583949482802866828995862450762435070070320354576434787892399979197101077426477869432114483479441409235788827504462035740747180911631345245274898273635072733122288753859037613950465960287394804412873945453298340499112295088083884025212710389111408875150894919926063614131020651224338685730450887692001178875699485281815755496488526484732216911953167184259429797317165155749138402604135882196037782387344203397189650695199616405465753746401195915576848739709456095886982446312762814338596152286862640362532125956194395926875958283269846889184095239615702026415213941690845933973009827415483133694882684310149058256018063750233418947403430496872935493518773022968479219631270666082309764522161108216236872871202000328107251738707188972904158792337157630494623532751454789195583864135152003832578110961030822896957634152668285767846151713296150240133162643120723226640555981977131705714472851462828529275454225796302460124482179034226450946565708649715754476874607835129152052523496459475563412127748350712123662749620007753693049346823562509262656258538336667137443892773752646452321591521354717297448855602205422363773004419240428286760944077682837731059908844620180533216704568456146799368471087935203171626919331289093386625237619024600696229027300451594151246935503488037053625849587381297546120841591173432656395205850572640854851418258035795022433215613364221765906062142778748761057938573282194330351892220180450397315539701609164148805176726443826153120046510388397996406298327973955463039664482116309504872659850575010640609709752911888620518240971917907885917864439854712218937398442247700710268488908751532063907341443184621901481034157962003653921678379112466369653282718563761790649694623822289979257515044201056028552358590890414723887193690225363450568339475782491614926864504806776113642836563820060732793926720200576378993990937770850938676788165856253659683656269145717739578412297349362863694379567538613060849435797853102594368237912744512317102953809041985305145135547840726453694187338689645884991845984429795357915980793593162985947679276554335161436340865202216595477246194620710896176777119784281706491200864794316578956443555049219538978882514639919283480470294191217208151601569597368890756612739303098456214330006677119717018435350621922554761923497183321221168970680883622302682210071301478025329138287093337728377237205536471097410613420378164012497346342608509307415832066251847737348076411879072053901872821543223616753013185850272723416334801700293322885565158876665463025461686839754081400528977697836375545053489868270973543233907159634585205821182875203624867527526279086433334261837123041273155095423702290810400050425957417937007044457870847186184995488535058339170572373467685878050611557550380047342298991121892769088475478545665036504444885400034930487770853811419777827080125548909969902490748863742178255606248824259775440296455113212958006874632320900241029459782214230534135623423820892791755159461575877337266582572554697228754614127757042631445953933516761562421894628125351435596729918975709491117489974085961820524748469690796722934708823381971931902305366057299615889803736112183394545158053366830537901821414198976397319515188412433603212410359120321789074383692167674022575112160121288052822017259815216582716174459245959152935604767989228636375516093282093120103662554096956723344241819171752053389571537191218652116904711931500173240584356303994356988988201056776283440218594310849966763148969375612332501111345244533454496494832390873594517639317843552534037010349047753793254907468320367410915218228143278067523397278065105785266017424237832862257935564135193831700653231100617046806176032827099005621949800648285545216374276130336895127106007182009317441165700686388747534156210091257812901537851195235028663889856667537602341494451945745556785014937096919573644225362433933082232645094561203592839978381003257296369783000800361493981436461616713389145704043906619871707327753283532517704700408454174003890089739559712970054637985338738975336995395107700423002095311917850801598840103540098516125420789486850274286313511628511457865291946033323952045755183831573318943003166622595231455694557449722964793383047728361321167173685011494201904164502041528549888702813625900386171365138738087028743754188414317176310500363516191073950930338168108913674935260765222341933704217679281250421868171681043029126629634712550355362720409915585046101065779975724654345369190849321644443461461068444483974086996053309313818193255737000365603693445736408751166958602708691588670719919090987747779807629133965735930274207664154922650406121500685238448063501699809916105599176502009553587617280933783867031526772933648991858767106885084138395098747824418467936990993054224269278346247066126258495297270263668455022889234409771603787004102535256204439801421878235091232429719393907593861722611539004736780723760124744123704805972241832094049529740092786109162191436845578386039056270095075346197315185142167955691175378989579530652095610288148203087266317117639299018035986381457294039420426921328434018898678280781952106957327602656879418705278211640618089691700559658212295181793009261603158382544320478975182303085157771460383376796889965354369537000161677874799657726187868213522152520334167451780402019202057938091107235223336765951762139605089485779628349171397301356288858188027753507848563551656948118153666363134397083040518973641219938780347585403212296304328769191886472677737817057428730331261523733510501840250883925364291401276439644480238490776846277186539590683588592103330514040391050741069496261240865237571919715973195395844467060747700671494030205828772388297149792955210055966406940333039967684709341575024700463748104667312159230820258900132494436879950985496944903278821827307010226870288151779859042106271683818714555097715095679412014071545576523382300681445185490507995122915803268303764529286934014422874508926594682267831535286055294026547887338908872409050741298139176434149980930187987313531611201253050724364016833325723171942461171973741973130365345231033158500327013062031413686041133501901017191284378700936462581658543368426910457989095558110995185081181848590350020653280810791470647372245586522068241104830718683269056734747969845872337315395999010467858853105639623320240193862772027041207718883383595690754639470200329961095182928518557304749972714001906054452447403435564926061819633084593960467654457820771012019864250213623250966766879085568091751141449950745020038799472797923259668501462316787251358719118616472216962836466869124993230546478375159442444286500642893333415884246653515593458470571949981122629945672935832860096676287868076239732475259731183690126215811297465669206640835169835120385514323441402586040575088435697002840314330279623423054986877711894209243213047478928106536277573221621588105861820937741575689060464039456514276642194071527715711567044554940093881219002503478928762546980427152866981750664109998575964329682952419679281821655275848610753181203008560137481667665140302953206756405640689319297103367001422939573808056956417630164684441763380324445999861239224626065040759106426297103754409170912495287131640825879769768517960766513465625188967138827431691959281261119201988512352134111059971352119245341539685399089524207951316056820825725014722393963799586030613844577933153800874669752792549863631691553669696480213567741841583039329136974234772256488282660150535740117856433077892110974986915295439792280483216667604720810646740389117992593124416463167681960465323352934896725005803365740010230608682111770828458414016104092712100926142081950268656802183056494816131269967690259197614870293387569885258547899401875097778489931467019780059211384192380543593872807969047118866516145298942531656551762686939606436652014527534975312115445577698511093593027564667354461643325264181086600046940216785067234605452791362114813952781506070325988201812586183119541662819697939776605959753020453560778697141907983057300385753779139193795509755065058426773799562767638862527193032559384726877687044710832073849951373853293981600480936626392987913760046876737897763946406876939834407598273772536518148170460255140278302983913862430906349042035472475405084708748243442215351224125268076868697655141838884264974199488268390359334885955497998858017562434826480226042340535291733677402658363306051879225769294553559730861600543141829575500901430649204259019658238252797497855080877452014700829862373067910684818305098310071425443430859720063125060558697844683272031645509831601701596991484191122077098694982628825930007816293509765645651452630577433970725430857395078982867309728670764675066513331249698211572886816412958219811495612444314106266186658220999566250351302871004372664053041298162070927499544930842412543722601699016104622263303629992094675415346004741934014822583138737680913665710351796574527678816795475140920732101180367588955167635095771733088336998510126580915703188095812358275654117932409145431884033439441338318142221611259675097861791184849351868856959220675505415892964266865038053518268363681992271384582669099292351252732064969123325616313734479575696917557099012200086589592954377716781499207684554992010762144311606260189082285123116687148225195825854828708318138391968060473704059184809161494175079078524505868203537613375049104361221298909932193742952916098078089387085050022822703818488934570536207571915914224687986856355410323542234344009270701657616598595916371533928259750112829609052727418342556512553008167732404501858043696672801658039611923401773220672442694712932119924590038208272426162742072776145704875463490203450185057304052625808684111513805842896256955284220204227198960642732900176690186522117548000881437493360061642516518324991917437319751764626074941806458128033795292762819074265650542445210766337659072197363517318642126460944070063205284502606923293408353512741512474271568593783874815253498302954438815445365012367046351221559209276172956539928683846545641726847086236514416682967329845960657973075434430584937652397695285626839805017534701306754614770454375237393346708376935844597678053056661031969880231853769561579753178022918839212265760025849612499217007072975996211290177505995287515042219873300767397576875718058015590828096158592204121489774434946919273039801993666893756362481940761817252097253495947435981843767673293150686034545488770007321305752381997645393860813725178345707194876764571557024945082025001923258056113968446062360279784696161839302200607411009597320668224772657385018298547153045605146228649492775489655684623874761582048018660011403014443917296296515479066963933750706240354601198112378540754671436503468818501182612521703083918298096428406296417753644260709338117344300893552497899360877519503133604517658466723662615138991377898369887910043225298422489063790557682212397299749866607476196807827855446007342353204860474281014590648909636046660088917553973566354108371613347399526483131432584494980591440385929052393240506327656637252824651931668578231705951113127644884048826000969280594041224240120881112534174796730156165401915974908321063775048162952166953116717967788641114400367122928685567707464002066610442479018838779024351348513635387345447254691533471199790091063304173237236919416649396432693372589767801377108307181729294801297707088704386382089681593796406158985800625071636864314182723883121862436417190093741586000111036498367388228167541161444752174335914021385393191681499176433259871494732028402567905001423874943045387163413030405642908053304340141703549208910282503858541943455173181767408177016548559291565802126375590114567997140385905584485855782555281991227130446486103938528620868524186952327689672625507802845868389901850757224559994704637612253316679324328789307170633757849041400760776773203043156116372179483354837012817511220774625547237761976120220105030356505705634882542738130998528159374715530469096095913220916850739926043793031876347836380734943629660493232716623444077318020951978811045437868099792692657793911818720383472980994241274137322202582912792939056843543544610922115631929399763363042919987186692265308911326502428488563932803717785675171125721709903364475251469729939682383183383989798668739606007413204758337396251296558323793865002476802483990941903784481321718793543605384630672577906675090937819460507121786842328354388140641248519984625033631868824561694144491847025301314813776631142652656388385619489282343769023547498277110462770594297376499746560153011300944973801968596807969648511418640826267664749541887997561626221806267925155277592338401414630627055244682285858169115316529377246543106926436478954129063737964551870247021882375204593535663457285054549098904765069484715801265711853310734998097693337459799839822474536440716098677849661493235199438766926031713718284369359718830506214892470778942354332401621447146028496738253003443486608544423379798133380102121461579075576781816400145078245227188748394789485912622406697798629185684037703084642385500625777662787399606188758450068277703580179006793935215378729617757691665058432288882194121615151556534939353217462888296871070646701727172215407427075777623277422833833821264982991873141578011486473567099806154437218781578373296371536319877889003701388764315239482635217695271242519615047500155437174398341134870456028348428226065453074456197666083430167530174073613770399463621257247526172976234851431222310694262687808310541212383928354090202284916879960891838189704140192337639068748686140330936199241049830589509840953145201440831532611829941505211879172973109565004619956247435544865025904315453389089011929466865606063505779358465158496770557244857740688671466774574894047055002735084606090179575167022360409270135129730392374824400797926812174679500879557903885715216648747184634105338265466311128199609412112810234078676855509601109575380516074285028690200225523776608781009880937362338942600981742202790987118155834375815190370029279322232842896152312643420394663982061167679874826524799542352360642890286968100976710975568560580063714741275002738898493650479549338427351800899993121588522938251011838269995818027384747241934767101554692925600034142092361508413971347616676546886259679634965520428238459607078030186418807644117094021598837756629115804144574987580225291347163662471743053006783621136854981739092496365901903439462759130212150491307242521884093354961839249787409554997576567839584488501551465708883612919365957959272902990475109481303210129219226512130873676268307611546404631965736848941545177185773237725022124584234552002986982894898190129827829139302620898202010500436246094356170309412698778258029172351989851050333240830653862632849185059336067302171751798520249518167133125596337956103321421935711258876983484392079638978007939184313588492776478346212740748018659265226827767907029430689246472679068906797147163945225732598209573957088336330466290107542677928934785486893781187776831804745227059900348594019185246535579926614839794747521506988083550710722137652864968741003370971406395235051010974660048216647256794650803594151168539689832063312327913718671299293253395926670651078909587826746921694038958554511653848047043865485522815070979147074358338076979326968391319665458878729204345806334393056771602989843258785970140178937774194404715964011605947090399243553188734805705060025399211154482424887338210448572664894648282608125197453892940772405226973897909988103442033494973808154249921733039754984806857535777039701355081979521707401307599167018598253504807577813812813269669200182728890277710031438464968216995108605933088470418097112166868634190288908041441077759298324289852488118981864480499247818562070114279236263755402757885906838632100099424212530085984764847465098964458166777212050174901478587195241755309558940869932828283724553211695496508271307283204818719672292084079974996280874800817417390927941305597447433800970229917835725505859442839689033269773208893379281667737898843291379411643639648191894612333452793453778160286209543025093628145154104691903746727791148876523528488019235253950504911905950864851526468712447850255666814629801718939054823746202016018383482068606112507531208767490478972023800568676640919226976696541137678110269177120058502430657727970511002362281535567559634634790396105043351853664224352252994369955428070753222558527616799828002759106000656612609220058037275396523634820354047805095627812673906547849931948784825704303520171471942631230956506855664655403869468453631736099829985148799180544804309152520959270644739693101088244732941750511119941040885151437195082204265329175050533479179673324532726103629681781537833846780189275643502628583210400188628351878140531398684845683932761913365819274162080366585994322896993766668899122757159739250587846450951867772301480574980310128874497887596673780058444383887145803247065537239158413702234210802073899047190793890322550111776528027711322674054146916134136219767388346767202659710850397495027300282874501956779806094123273081702996443601906324272857229604548886268856577066441209259843173782387936793781518426126621186607464656449735621406454838416216656305047644093415261324317731175077656159715442294312395599373559781783155745493781405108760294202793925978164957441400913817443294403132825782107404284697832621560223120985096250592023589465512734557439356867980545277659393655080903790687237334063162652211089081376901175483875965452456118904658445944657444650658626188079546145421578409639163035658385089424922341572644913777711061089809697633389190995500491239763291893151688397133947333897232033450082193095151239955955592795933024729209151861016039894827999345906804012934606179023284666727911889037371358112222700470207702008375841382941750640156605541056075395025469130001942405074768429386674431448907295471682320461174625350748889990756615664140427305598205148503242732021257902215368420413449139291189480252291392046203766020818229723005582524242902879014096889139244107656765550006251873450039540175351986859813825186048585788467567393848471641608388013757907586158437491322230456547479305944909247518699677321426549086008379291611882055564008616688734311963853852426898049811950523164110423862072252289932394793662981768012343847215685817025095706620296924118119465263013374544799088722433922669817540676292723317301329416381756140782427923281586698766770607036720646406736570330723977571718909251128805108808694623111870585804170814477069438263175824265308169992580471611374550467560208255331701836099480488307554000928630416476968273782439995524935738195326210332984294671311607725883389164286533248036559421706362495901522665832964233120289028578497261798612904500609744339167152032001262691404403211084852836898836513044846997850542449186208534606136273168735587925445109123064763726367119627405376720347085573407673523314184391487143142453377143130250952590789060930355278747156466342637747948894280345577280154621726264345475910737778058792507396453084875323107517846457085683812306126038879690241641548477692029865826913119922479418454857039967833903279655514878653102390693166600708297916085279197495813015586188542955243298645132511146315123138016517336403526274108865016955339574721533387007047677107918521275616026770541014650223404644233435010990836004325621651529893884621645203844692630002838255610816960818912079163645076486390295575539982557788941239544880003157244872701466159312613419206012277409071269450778050440309225624329177481266086524096696023243265713948990639074114710726003884636675262849559739622132050570743532601110891387088945935776061548147143290445396773135551170607698569140441517952905066038153875153653194729813902192764802122864529282359034438125009879426276486450393632102598157952824523459226223004552871435130767768058365410733722955360024113969559676973769005914131949520655437608241106664994525631614425781320627046366609188237393751899446273438911099928092199601308251433772163256466421465559414325049451127740068971724138845267138461180950296034362492673314082325408995061001619822459986253174398132307260411719917749802881062636838728645878191675175077957811822958425045008252483232333270651838213031279800428594737673265219026553599289754570098918789363074228721059604981070447019948396162773939042737466020321232152158606246071498974214402307416352045766817330513476600736120643429695330850340669591355513082196305120084195125410342522665267299505728375888424281454592128134612585285174387845635160361244268634169614330021345204737396434416386712580108993509562973943543516251546840304183315107490403707883754448579536528457035212353816394511595851617141718684458458735595178226789199025637236806583217726225438633944956922088355172348007428160621034084714481517122407843334659285819353493562551189167663513575151266555372293020311064221381902938728942652181282766938175342411778744165369408574659807504141374685901150925405123975131487343180052915673699843520424710515821223801220716996346868772986201353968909941835156235399447285272268936915864488555450289241615765432284651167151252785854266962286132904466733034709075299541021056965370236680686472273786333177864883223912900241591352804566301972881318821643622815540530981777653937749418897640531610903636607877349279513106246343689965905315022209389586856835593685304218241008498632726941358188031419131149362415709089849125521145931319393406343508386518881681243253711142623938958102446251100904316964031254217699731124871140007749303127355860531452801269046020938270129050106560029827881945289038448868821029818813701960544770268587650411974950778891894754124730921948625916669433569373945249784817914633985774855498906374423559909139538358138218195344353579368784511071578627887313549043229469765031282377224131401656577287434007585260045047578313221320744642336903026207839015297898651879654693200767300159440706500345381107774395214906976230890765339772249994185910529362971238496228904096464223258547466492091944204975392107166040924211078906532577653120760762910723453069796502354634394596538911426808908182885717743511292380228775362259003724072671127685877564165950255226785012003968321200845163716673479546441463509055709506403332669921512728661074450104430365283204578077786512049112189509123295857988554583879169985489875110067900048526684135730132922354600079184206515798964185877293838784593839520351501984272072174130113241801385775787988744387361605193755659549851202168593920917754553659867538750808943180547270496022635500104859600118489877046023579659079208544883426937364689350914298294726611728167570323868865027210501124956732944554462641120524726466458443502655788997263473136376353178845292734243957951159341406616064116763492699722042778266616375626439243758163697772986588934617895850208754529981048808377432682537027366397649264216795516818665997422652771004292715541135885640901072250610493232547298079453834376065180209555110961412854080059872076692976328026233085596785986552958987877128778031577373893683982742781310937889327341092606816705778921907810919599805367144737894272013569420062769146796840996460792403069167098777369507549262120426973617725455523679493417588716989058879445578290610389548242343363111678364359469920920920525114422489289232227897667777181898222980697819145764147785620023489864585929191498708874367194084252155415511266254434201412576809600035751719957248460148295806983274540883648653660570818222506380508311199045349852519336488770417178439402809116214614139442290117239914241775836090913864711393457030230201219525913690265613813967556924092091735943904300085128803267609896009216579090401428374158766643205635887229588145238994901145314696802496048369747636836811905107039794361741587630400983478144785983373480776286088154225291536017902810026372648467568196033456140173695046084380165173393026636166513624270783825098551641972061552605234352194611923372722182753826974750071763775782006796130224265342358577346160499119042913401162790957551183058674139303709842597934146550280216821428194093873845997618522521519790243841706461434908687458200202552970278126263666592005033740320462795441240250145269400858740154987663233761426859306071966735637150636392361487500518879401104875956652870875951838294765827486493424316675465199781486386064495155580774430385859965319861817612510034114069395317204829966633121146831343772008837893108768432190131207865053878549598016351124238770423564515229608161035415922007087277303532967623554838478937865321274485125666566606167541620416105583042020469913908141622129856355672762796969938233618562247654650049807658325600950730654211695009214310604136679322795883615016119928269512673937179033712243272163415325918077846307825437642999851188629759512941509495342969488089264117188636612005388038952240379862819665768638440886978488355683084789211889365570103937601415622059239712490812210069946063159907707076255380758731821227279962889981744533142730223892748241461001086837257910410540630508559317839787435539231839105359080371465343982336380697439764949933097608558803505935335590591475222510413642710479298670463278627160197039114067961738629062032961989011423375467830347284739179737851951012903890752628369090158353452565546063443397256363909674437547981678629499587472198822427151159432001589355021521391179944904388165532254408126625664323210740687635322517578353975144643434820961157176626014895097578207429040606706154345016389321597403359090361652657256475177037203472719926429960507834431539614684413184584726582774338249244428708872443969602285090375760376523873303512244835217608150989024850175619505612473846297097408441845219530240952673289476777632462991584462224623527792985255175954971900225082621695687153354477355538669002197915358474945311444643385082531686596835034936138577164578443531764920706559379638428294873582013090195444781331290101211255660319656163900528232725168085763084734714271233422945199046021522718077285135130469714695195378053515780102655012273885478918663635121754363017239859551965197575339351287741521376184519190958854080478792284914693519187862837340732330699645795837782905780950711985518937249543682054131692894299732527159851744265808137521479721191486123860846894348120544151978591987789416407628801804848048319285793564521079877349951113048608214740142759624633576934702193973472171974012147833679006912899080093219118227835634148882418024385736741192055299217367831903853359321810484184665063244773103791336331856435370796678910604205963029994613782609739081254272478807976852889759088613726262857627970121910725878775396934058999008245435991168050114907140111382550978836778594255975196459109998156839604766160158434263275194026361347413084064528370607185956254410176993969323253556659105373539723158800200232543026186085383618147208549245233070093403029246127779654971887977700007100675921225600723783687710453799452220407572001827687468901667299762363693253174485983084545618761021169129754168175267574427800544405419606446125500950099189780150261460930978364434263112056513598892023011373829842393538653949272527804084251006080391411844086135042627244246125959230816465224553048248577690752215507156338426135233714586810092154856144552626739398573161409140687298051269698625301573333284802803429288450472887431504381521178117278159020664053005825198334777754664435651847407428618512857523676073154095473211284589145332367181834205095933521134562653773883486745587134860535102477515100275162499183559673987506431899206724108748673209193385586329024005686168880445312092630022789776220172674173875246295931686015264160927834207820465809586248334347055053415585900012436723380169287213984234276772758378886720575834520242367292375661834438111040078708802993372546721163816390229572684610854534507766917601538193536638243345116452740570922590698483184754872019880544687015255096339654081900799620118765904910568904070228857067468044482896520321258313519637902640099961792429052532341551890821286020319003940658144707578104224825330402786944168256870684996796768031261706779640983063570493692081407339339887541847568424952413799230102974289322362495965292863339577395571482158611856879193508105686084395744686711092245346271771750467124654882416299126525283658438468168841458397271037867719942015399572986559909543452095786035441163094285191535251462803480813665306389078421568200290274764246947716108770402611879143389881653499048318246973434154961456673343191584948566461104703682838263628152653916635208123979667226272934353573129603618196223746520779694183500200989960775975570503664502197099827467234732959332758007374128113607054319291495144318276761560445987405766807395458063780418481552054229955483680448671480965440888971981228832604275977834837318217298396576882821768056183954178627502562815569501573561329848322589073183380498314631298726791068935292886015096843353337451812202786226786008395520693975450062656565626325171268572309405927726590955715734465617046313578166708021396762544077686187377822968811655353226288988913920161591314863876560028443391196958079742482907767382593979376996069155150779805430403788917938017909506828894706739931922299842447991334960429470899840199382502804423900374674260060842816929977557439908398319192068357467194022670734898899359045753234898093857072311960665308598178499243461621145179656745479724987404377462923164406916070796945848522183440318500584873379541959680538941264582454422388821939593170811832384726812504420735700348329887321972805096016406490936653945744556225754383039219039594130654690537270292832499615579362909076425851651092941596962295057921321906810649149614427989423076960398252258465230541084361844016466229892063346773087299774260177593936140944665422089754622254664777802268035456643541312522615684413979777132088038992299557586369922563761291427675768335265590776529868666777012928801540540052594963871422331498667510962283812520854916601337646458172949338150096826828207345914833329550542460405143617412355915501553537468863932460346803410387761741883320438413431682710867014437325378129716593471368650101959902003128872071598259286290962886405078657940382620562018995134016962159030320716907336377039611128624360389314468742410457204095927226175917678061011335311651016364829382575317327207875123267456653998774596136644505713089029716928902954536672147110565497613629222723525654473547006150039445294589737173600845297199610642159259173918680887336539399760699327883929272777409552289580683276104443870491659053083797184777649309979136439997788515811900745050549168239875731040254352026654418821634861717887216143812402544223323450408471458636959857007392809276565026936384259891628968072340248378516676235004743024325828983207084012025455132710723416623811482907169917699081781350209967664253075850073028415301328964370882537587082427949524348302121802133477573568672408452767532350346149213436715617657500843164098802284732255175574404895728068823056644861408891264554851419386955711612630491576659732495668894946088402935373400526661909151181839375325620771721117663731496395942405944327013799811358495279332796542910079511006941333900148322261907129960148077954147951532778050435013004344321813485052100229155872645007805697306040619237918418460628405539474849173293053613522479222309858155169653400088706642368836402372377039721972899738190146654827445239698292110457546634559797024203880576784662760815273433310155354359310783209630474187778787983345044437781248367227831853870190983402831965493788457202634379442991578592876481274401964886643487427904688952531413086661559732064150463677033218644935914502537936132891412184182289925810163368864070304629600010097201254501910773791628665616201340091841910870166459023061564599061664160094013205221755285398797980264135166288842935332743673045138283814594214867833819069751049518562094005428448619431778996805208314793792381245920858882778616647345004927761953387063306814204869397980729573195263011427795979916120355733352994014995748375216590553325231872829173048991498217786651820088968074973182407524044738116988429027013576278997049826160069249087171867096084054776400075988220617729196953696132966554783155073500128045265396024013966801621873101750449698237606602260652484234167742824646738342684943073396346035005727603344782152178403076732380450106085100554763290167728358227430464399565656347563810787329677502308356837008240680496224290367167660351231670658074800912502222931633551815919001954204723538382164827302668315148767899679402639425645746107210844390305156025022001553587107438549114055896213257622318432246209075742173377769212918046808114864056207676764921268563255799221157180843150483551762935829347032942042692261387645990566674907359465747762151964570638232428456113624432923796213271661357666836696329637700192484434342563651292123631779336175080403221714092644931008862888568631269674994552645705875896609424267082354017355570090509809254464992986717557764145200738201329212181266452408639423183982541259885178846972849588187631308901660362342365316897516503602622670137234409243501612574583680298489258261758014793490717382521874474179612340395878105911184965009654433359378052417202150073547520784612826462291479985436559670427883379772217023832526148410320896242583192098804178247960297830323124674549726546597569679440062663564046896104393577313097342549685990228302492861352145582744512671430349132216929499569664641704652748670816245785126615116728871718168259218015638705259405820818018852774123052441707496632783480466941308701897561193073377830884268561168591144839860488249649096485565151565570869462241892128622374737208164444690828554907309068475535296167401489682371016043824793843198526536835560551457527511284556925338656345377812991485498884791740460218424168800183865120708714590729275853254163882054421607319466886142101463563250715994443551314326022893157980767133940670175347705439752417756775448884114583008740998101874829561214501799791618336908258888446118869518314588960539898440069076727690062545779148355944773154705857517792583613727468922770658655488576924161223797594839890342324900376944285041965622712244680624291447155864927125958409116322148664057792583630971589740690734291332220580611064254218351089577642581008866545266084897153742694609261675697954483744828115366830528348905071999776199467142210825005287009053800800741390953681352134126467185701626011100261715642374190227120298249441745819797015348374242929954815057759300145337936928159746520165370431674939113239295577645166761218701389690376667853092111466605585218229927062191037374812043523454620009319896311223568362332678212719888877968533549316939220531128065335249851913818365303038413816354188965874288037298650104670317145179886857461935817604773805931121014056518193943137682190858553071406514355666892171279632111915195349265310804774210173805344125926258265261178866325915968056250439418080896883416240443245227071961760355090211363931399009769100216290164096093558255248349338579872993760991085678928648515676639770778828670376919050238120257539024240851731345584839249774041826567704734874274722163181075063695316728085901565916090308262441504354938481705368458746362886193976876828518546036313540756433243313273696952233546692666706743727780513044358870337330285692407417887075868345645383509591281678805890674456444933185029849069853507360688476256874431097593372953888363324151846024292656345133631577960718797395476079468318199461088003614258644512818873788408739291015952754110895962234123545386950821774099247146448902501481675599264623687674327852188661144437765115312448763833028002476634085367899765052038036345996990588732750716028329976111336541561618910319205351899334696237715099581398835092761009327444754915380117902938106249797873193179458637617787115023850993966541619766176660263045547454985542660902768583223393155772573521672810047830034612208265106870201095940255987060335277136898953577647035037260586388924902107332527366963693369020595600458973438433909373509805267188970398560937186631653581210087332142827504045116399658429590669284557654789147228388965453065288590608824488706137665608083186581036177416056777101556390869213709694322325934176582399908311560602344667328694635279227074386278685154826838548514842608062285533707413000080658919533411865089915845693988449958632028453950576815292091656694441765141139186628426194090792923425824771793570921557147457075228198772277531302835598574427833344798543577671148577899365294343456470628731515707822942203007772467422914418170957660402095995988363041158298644250635980910960907583942330098767177729921796669746537122710004974479513847902959333761226907085944200299390519228275469957384254288490354965187282460385039319640391010379826526600646908573895443820725210133027713108709970494425741328185819569467917721053632164911090218862966119414254499157808673877400645215692353965265248988585358607793037203158754582596386931621869195611126801217085748303077927656723280366034004117671502435384004777053949368008710520581704046635248976938997769343407311425007771021578239614716424491622955260049864860243354549206625398068092960435031507930402963593146567314451957719543587821228371490854506409399993545902341550914359714657776621178617377370763784505483800672812633447319486221473261948119247433794086061826822893334113546035500277949255001624475687341818004117594937510481566194279484177791216945028835709974625075190850683411923753848325143389446395878889680985992652027231723990618850418980271907440225252178026130936490378853478062675852457584732378642984160634597074888651094543948330594224214889045183477360106464878018080195637221939998765891897791647448627920737204961185844993387437068739862712447424222901191819941713946750044653445159559266699285037552533878670177537012270303817865147425269638147781625154639536942181962585400428769414533242320057308059352786855163782116536429792324403306378808303524832613849844002842822482834128923855175282816816557056982378066260651067166078140023962357612431950803683105138204871204555604337640339871080846817785857809909861402663081579453118249220025818959261914070089608619046294627524089036940121502585982108893551285301875244014209273156943790801434939462072173894796621586535413538750231027762480858236837363139754872965519981802575107172398655163352757034646090908819534170741557963354451571809518907600052565230233909514790049779084243938320585222596582511021547849916900283838950301360538074022844581762012259850704648481226283260568068886717483291773738771061643823888461906342460346241470651427080097767641356603272671068288849950790011496282675442729884153950133720054505712536428998703397087237318959237363967969365624343000861266934580004472269273872753910202513911059565672963274893774851459669766462938548792120251102007532277852048999983577628657698215377295547759313768163005006366000906477398988816099960381727556820703142589594290839768512280532080654567869100269923827731513595936153809804454075469439880831033815785157232461076477122578664419398785598778683738904445794629665328199129475667000617442818677771207113206600394761616312749242566069413320692226709026146760785375360925320802377018120757264833989132468074087025504447097464416917088929406218538203067611975673970210596954814298194687530065857544968162738504856609894155655946773586701370540643097272803424930768296694188775514010678286002725174654557806811430357184320051484162305688207523087943233682684489303750567642267735000457521273069884378209837191743533154722760253383217374871150979261348382636964701303481955147992640470448352741368516451703862907199702455454930613935737659291906809989508574870478677294283372395387374602149438664189355332606396325836104971052656192658817960710190950265463123024411009898283824671521652926255938943354935952785238969301937574693038083972139022591282786690825436697719092587237369996395513473955881330244685064327882210361035509828344170156973227366311138554770213681770972681796051329980022530688394156493945445586504196448014210867098029295012417634811754840387265808957524502702352573949673901462173758914699054845427265343865869990616041680988669425218346796872629212705304711375847623987887402094575086278742762410647069131394823480853296306695929006813246789418480880789949703498246180526524483278298842507813496540361826604066981007271928870504795688338825951434148552796800452031050286768446204190235951218194329295482294295236239554504751434888389405995869853103671209230246825393116320513123018068223640050478129226799797866687513937274828430813917565977354659383194088980520750063403734736472307676419316010553221610908906106387899802062588666141611120511402299677620788434476352435662814969938174954904264862198540270735146379051783244253701822552836804625389571512809887232580348187353977315661325970396712628827794711905050405147337257598662799513681404776257500787273663336232702818310966526667779012464217058148031202492153001668834888154585274585200917178363375755693364778289978275390013200292627352234449104021965925831277690852909642331445208703180241635100673124069688174416940263313365092953816699135523676207970258116577516517312017896947075879260377979129282002232779642237385636227604335430847587730604613112935342957481868987588854378966740724413696531849772639740586723836881675489889934468630431935942941013652134243981237293049079558243329085993769020633517597178337906367179581804447397041642348345421747842535399719841557961336204812890487937526899210070320846545458650413120623028608676664066989389624555456706257676100254402082613339650949277744166942584927250754761926810589592157142718071265899476461654039213230848661555988320648841883586174748955785841357818315397488347634710758484299063984130167928944416706707217437938948963047316703524114714209690676306570495717203390061161014474574677193771965723359064725370182347942491394566318697439569115116445395684820562241016819243880896358589745427058495058559683712425723641171942257916581363234854349385119528803188570813491934743395163601552780157840875181754956520973185597420745853947900220396757673285609829912848446437745804494426172049765990573751204699377147823305437819565265121850482928494288860210381012009231778538748568957369612855136616588925004376114225827704938731035500278161472118377626012868586274203697623358754693466582171391073986050367516594026859402494775828717446238545357970413528793289792300552797909033801025533714485585056951209833528466833764571345626952870090554802860136859083806935032341770614138835008840337363402421637361592669835568821446001918263718865407053801728827011467505596316269793639194123033873632853026758715509577023772423656845498931697543631264107321758805673209594768931199384150600492034044278168821950226269359327697519280782705213383974722996669272604400806108702420333820910032366924836414194776095415398670435734359319247266509497918156585412063278263675942141640841213829214478384740772502351638401847363740930509124560330174307107974480450881851149095710413340233728938119309562406347540960858813634274811907433887181675763538228157231088848857997147640229817165421986983140587010354624745668098573607084308440080211177265190228355611180619407190895552943338745423727120963870535817179835972445623453910626798071150802519568957616087237941704600387793945678521795863321869336029509544175244552125531511961526289291092852389189773940120914233649057509486832986105725569978965313371840857526348600930985058740925575429113464064692424850637633899601535542690420615660702320943210791261462128746873106879870186423809601723454365304870079820118908162279911135644145250453246208850263556265220776664383107507552475640329136652590961058746883490031110630756362458860815678039029657109240401671048987353857587030059044121262748052701146086719279080579368281890846638800559933969649242630272383463995582648354793062949407723033535817057518834918217713781081686380563155270057323342369341691771544503983230465670691050266780600088028006690756784029083997541874384688265361601293635057186426199801994856604043271190190315391374729847291192315921561302842137662082790471058553445668018740735824662293587267744528194788148228876532672908539206666239667349968655600999481809974994444349165222305160289298459378915429633845417981765408856172409290883793001426910422659926147681015090546383052101752525978471781047123319500940798097217166473057755166261631663412171237938890539194879228291586564722288051444968985876126218241340956427246078006879888890462480463937491200591874846511779035532397196989586844668598898846842592647001719330001516461313568358999191506103714588627909881709070712913136223222902852156521740960870925741958408277711942242817998075821078329602173082159546405103965602552404158351854131515045506306653638778229256564950710213510358925655278000473403722077191649613946801498971287186510370215119491173567345010966369854472871368695175880182515483795473005612543297294265118399874886130019618846150365005833919014425799759654493120143060808156392263433483275196991888573654238857519067620275262723333206650616620443270657810126888389644564950032697251549435371509520996223652932400300150797656255776640777553833308231943288877200872007064816417260687530917199336212919613627078942473009253362587179705599504003234045312481831751113948364930558580215330137013556458319633046500850237572135936032573454582757310794274637885196427995201297022052554819762395424380054803285309665569465473503693134234945399804534144944127248391178923767027971770143261216657499978045426567270648860399711594486001898645311582278137259204987739708470374277299792107001566247723415521532767490688398961446157497084668413386886984674203916086902376956852227997888480599439709620340120516146374981096958063879372751104119190637170702715926343937195662849275072276304136649288809668958698132691288186163353682494514709238569465797175607359732236759775241453537144856364940502189229265705789158602777534758927333383434162446319421506295523923374883815640545046619853968944560752733198260653674060412189521123016903347134055118839322307778665224682643933445118282245359438914203054680721720667408308691857946387463384100994545022912307666687054380073105434081433098859440471325231230313410967797324809681054873123742130287379739366410570415982320970515598410885132280383438702320654350036782576044481690399042151393182775156029466648123206334535599344467428623959021126714151786137710816289890091233252825570518546869080505329937251211544015394898570860872440405471541233107791781563422543041808901192821970850876085715845534080945691633384425560121269936680323110105389905241544670109489456736661356437675023242161559371173112718080746470935006525883079559732690351857065533757814282075046681321551084557894513210555013251074972724125114368860239276690637127524262846331581929121251733547136484442260590171335637731002539746797115268571210946738615867344762772201348154019567342500077118063911686069590222878678997912238632340688324604179223146020089507096620690121157456192266794382683601564613666754296465585625917061340537276862642947996375726911594077048605542275482327778569529135598631630888319135452489035853416641608864833704321757004081652511960096411538080653119855129820248409391903507461996259524589971433152917092525292367411197816368526761937788354337115542168485029501230840798921186685292526953760098865205540293069082025785470385697152543629458850738187446863148511989443266223495037836772711514552708693173123702701106659454703522960991072193066077115117627636656176684115710184182464856374567443593493115671266297821233603650602178593212419063892912793690589751884913422795928214999807543238008284373999619004371452437383397417387985783422849590631707950352141490743903307009566485610802028502522482130602468371655878557636883303595215571290090713521931241612651797579623671225451771016700687425089850416871630560031294494518553136171782937189993176112198220538556764478667832597946270390039440848973519507926827071949130317069863153835518957484672373466632872953442477096629102285065734158039668320373238506227130262193848529919805265861174394277321927757788011117870955427098901949306825890048672259570160381053414826246962044077853371374422647686231005778173925899277670722123973570835893670938147779307385831400416438728363726599331956809570901784848507321042282133212355391064408196222415091497601070415060655567185719012699198562534532396967713453910666320706160327914321579458758614403949631020861746812499026017554498822136486373793035010578116671993298855358362523323166209219395085260425922665441787511275138580155492001450104669140242625485516406618763541433392126215026360508009881674717041966449687704171601655085528118055268574487849623952482530201087960523905775313123351024344760151762228096943945401629878817960363377186216607883785629855951067284089280905154248166242467505207899614243333751845993744658156019535023144951443213549410933718092985124463747265255249999504464842841488986770523088056005588163307924791211043700912337550592518626391148622537238042277740077694118067209514568822448406590401934035349607747017964305116981198537572152026226142922658500663935053160896109959370281996425786213255787928878409484493939058887255125535411345025498460084522732701510351638344774986181447767592183119851975834709162975689432944562358400191723506137421739000652174740803813326035429836214894671454199466151317330388820655550268106448375518360570801523605388765051779926407414065877969149936482253278533445731368850527923095261117631868247724275126634340920292683768287920306095058965010122486903012758541977945677562338983735928135813174269197407846371930463297874426649924731099523257793475430453689814056996912216733294963707400771653710273639852418680274724328296316125266889557666396136340403528981407651427102465435402084328849790367150929163558174254870560826067105311215551962649841149374662451352426068060642732538769244456636963032454738884883158084666923227192277172728051682640445991430537124724250679396823260738243919511285144270466754042969305990760619826365502384218211063230281673715799142488029120117113033715864218307903694237737895297070260056555412427120304125601610939926867514576068576644128685991624455139204375120654667939510792486343124986708687284964276282335017159218628983378003711318536558626872363935014373774355748739361217977975853966936272422496882471188195028905577987259381027447923121621389727748841395213693393485116085489567319856593196932653095191767838793476323105162661560865915983980291569991111302936554028291343625074446524533891603865721113466438440630457665851715878811066353631577136178593342826205877095507316974773746642187648706561124806107136070408626060879145603831808683982784414126281385970017432869925417095479056117374700534414303933401433005657868932940417678940469139025522681155667161474635189834320574899797431365784943668176892084228139017650412749364530113105086276650029731100351232305595539915243483839350435422627966517124311649752661546014724777338976162332651818266255108261587495875522431043745491738752434188057526882473620631531004103644000633374395318418218614768471999338526984839440048293089935114960479357069248596956047258487565534508685451892001804997869139061240880547875086836465681046968152610403122978559411386401594351070001714874194202028817139773289373643844533112609291611893932646807125138710877893110828688481592625160858508367065914539271032531772744983099168119627983005606500946766902170510205666529988931833783286097864887125599285101626860615759566905843113037285749565734914646787321454937250445024479630508017635823749032539368984864945492907986571033469272863633584950503421301503649248256092316441060920151771829048578116335721885267854551942711154129812659603112225764364184976241941585371264493233660689586801331505953764981245527299920108624606691542027170696774741458841297093304539725129869344634575208921117675439238952359211938167965866612147304244731834462128319655009457085720089733261609071396614429544910276096259220032668751235451153627646480856538630545565851310030700632796984263838439036285435300435443728635241875004004982167142140134617056251270146672141705536738922797632096403207160531689003897014116922604343316807358302493700755398814772316983243435327674097223794444875591273544544631028112963912453066991923945966087159408808700129495342708151655632227607518478866900052989103278740975534213545149461890174068927040112497634515486590402919820570841603256423596109238052944657843220496479799352592536169084699843654452989136288544506587216397680515799211952004683477291565842072309216022356880727069003412238055195921918877493517761610253952611544268775183121559151581912395208569657103581074193502718948343730888319869528972565671298022054718245351886209426072033359195901412560815327995797066313416130442422169492222128385508609023620887559825281156788565518503471544549395277539418043391621384131304701437656730114448933768363734777728621521905485166785168736996047795167520689913385046251523778894455939867108288083632547647467607318280060380673261558341793257986398388838327550118673273084997859239364985677619078200749689557958834544089815760626040986415014301575584500280393315088306049069525781996335417676007761487660841754928416224573205828601158787143433832618172401023343062286012336973214635173027147296516198525120373338742072923145636395533192003145162968362873254621656330606395621604435054571123832911057187389346660532912254177358973518260054152951042259829266085612153980336908529004418871603648009317614562147482742910773540776846581961301212929545043155483595849801558511289330668015058168804022067784343146900119415804352787957109133478044133943334534910422942166599583187773875945749342181856319086816204468768639176266275697358226163220544194996830547103872633483708297382403887680478763376821752007136378085850366660744844311455786721832896037080612434938366819514152984271244274458446378501111225396322966061970346644073206850926918257597722588488391628166631265338029002111556971793207102100341791389413381421123257942369753939501388016829180934022265577732071837063830515489903963170249235019385453350914559591292293487651460718293258085200972185887296438605580379606725985981807734822792137551093659872764455705526329377876811740547097401411994696065074447128571606393640001752896970687315009098666802287387547154671980753825836144774046598187443376814732516076897694277087185836289012080222681210130788079145656808675298767632629801464045727343072631608107396645193425508373797111644795857581655776208880959951320549841725587321389058327889969899398524740722542355643402544694840202222353310005786016643176095274035217854418041155037730897388501058298189854547551748536405258273957587907846935340376308618366380031358044994188541569722679841213634269208316970343026953558217223925571435498535481403940952533209115134602948393845073048918127160776696558665385568889173073715040638385929476653100832796653687893738467782891295514762404949547788408222576498199120650715031141989589205256451168279182857206361657770741860964774062911425142582238848024531282157987653684519430328904707933967435327547519404366522677808003380094433490829066695120440501769311618816795405124126979398197115740801592647356260129529655528912656614795832170888453841670719260326407062622297579007671232002185998216426763756844605193757442202554474581289118632416883970185419917439505013535779916742120625596079460969032834862863463119672329021039962876780501383818663789317943326540779625757977559509061921322351628623502277214061153600711859223791265771314593182225462558937677847217457299438118412747181818136837613826452786183633583784680714524062754127889162683909800985922636591717436637313518137137129705641531468152416228610936239990732666914011574194991164784062394772264569596560230332499710728976251387628684748626509287511074861851286915948985274341098117213151193633883215229098759953947398219985974457197105617639762876928890107490194867542831948922370766891046972791754510615281528038705417509769738740911748310171389504723932740960074672282142685102406893305438093710042552929073482684896240358507218951451584421573073098438004901192997457118404249414534229959111074175188199061057757454504124068717350931113818508830587393921556102419439633358751217675260957922705950048090404752477039698618616242223717414694777530634600746615831304381171510624444389430110527189420556275112532016699879556759546220092762588694022472808993477385087121652525916037303173710381190853881655152546053079483962592215165586908681873708473302926093636842033585993718875241783162277598569133706276659183145695396149010006901636309810623109135462703664759408941024339335890063938350985092899282151705670877579053897011621325403886595870372777652963331449667667143266609255413493588172717197748552833396516568734431091009652772463091660643656931536405437778513050910265610495301286104402244557178454888194142503432613402378646729501196318014765394259155482294584364861768255854445827538246642212013368757550583372164514873062126463152821729061054662189359376804415338349177484776278949329374031827493442499804180316320894870133630082914076068461961917376687989533879463185553225979285026700480204206558968588577496285582810480428554529635263204868050603048843641098214275732747076227698879557390245697926365282585125562711537423397465209919187520622858680867874229702491957374338870919569202937221363645699546853190626348649103514714393469388817419316258702774498535442474148024924055565408541227818127565452026572603521820329144879714444690771708376350821118885296433920134577298010130149430617598729501756595507840010305884254950422697866638407284110198881261297973405190501950663719861045544211019568767667276436213305154090988203390088748566133024085637290844672607603766050624870916344147736828310521600347280150857535034084868348623120874154981813530499316741814841558210964421689385114271096462857980968136808604780352486164482472037304966344492583703495978984743812893564172000039586568321767807705627074887948464991533660232567037790792709313129932754023201668469829608611414638395963409049660387418117765001369949918481717177907440236086080463618834170074153889089803907210742092069243085608812418162484319645922573677819270970452972287741580020373031465245941249015854925693601825099116476172714965985368857792722191198402180577064729163690497631514920017871010560735307794676648181933849556790377361760824689275121295892811184389658787187216164319939236329796954396519911492187064114480058282270180343362520821691942175003203594167107059292615828555553538552765935418936497809986274342757118219908652313438199768600453424323625517796156075679067077072923992614022678896677063667779716212510809648695194564295563281781591994087198798995799245125710493477164248849319831475945462668840097683328725523168957976472303408689008218405578208029418935537408996673751945162697593987340485799782727130257930903736723721937696936348742196572832627954418714695834760855407356001874279556909629685395667909271743506203328865924802382384575790237253946791383347475938539943308994625571146810050351090498320124703888108108782432228139353643147359315732418218387183470615807810739056165590215174996797118992157561970111512038069073664313034853051741144653700052826350806374636385616378961211148919213504907044800944031169824346824827500630056402590771850197229262528720844380379589698659746244411980756361506588798686937313157388725815359490086811322860214094093624880836882956488070289730288061618115510589250849254289671254073954541367688999625816118715379371986158496775512024816637462070835646084404474870100373367126666675542528864055131156275478927710985726529998736121240832477949265470863145265479904472486379020741677554255719913170363626109254231450364950851568901690645659778860805414149054662647969165300244545482772858338592677140116029716707192058816397056706373100725696223493967285982875251078890799883298693388346709822254522226878354423335101212134667874780677206944103541792789602807560152947346307579604256185366459033940835592775617031437384126690023480931337296780001296960704443345051535565027033134414848720651648205708720949014791026104169384762857568002093425736318452058303624704349082785620856213628601391743660053372579339398880768957109036759104319064629473059294979464121811807996400672589249519241577887064176752729779891416007660275600196901875210137123228201440390116754330020879216882747587876807887088720877570527327000278732087913525360729849062757786689590603748883651137138669281792592462211065826526987807422795516835683953114905538411395902144494268529283998580936730249194348665521021986498756995795719823284205346244211299731806569089081649439895489154492195206033940802764166253597647621540973968747287643513789708648148159217441912622864893975535597027362491310319459293901263221834321716793752129166572681625656544365203234729470390942595032790300049986981048254322978209715806360745803873261791781962198354433046069090051965316081684566149005260523930369822162227434706981057566159985769038487506676527798726322024968169609423076558212400439632874225628317199493907205734147048419765955943401679843446708996988048083151630694231547697334588100341924406443657811166702448441243626329289014134692879132619205098329962754402813154740117660964925201991092037098102124177946920467489524283764330348588683990236834536075905654696323588358819187188580722994474699060330311498948327553434913849763456894525367908915265438252761696581044272345028276682545024610656797855353499990207126249955421550476233499230559843603842682499321301050707713344939964190355021315627524730164994443898664580593788920702261807483810254209590567556717675999253788166935542803102814206712025253572867019412406713464350609397201463114498607101789916668860769264875594225585470622141596173325304628490715848338428607687131744444693430069650873665988429707928739667336948267863502898113947847785367822744771138973425816535761570129504698578026809720728787778113801434949358549118960298263673820521760894723697441851198750423410231914325867845790024045990140075983551544912186245819195920568980658359977130414411854645486537950655854847850656010717324721811962319401538933503609838316156017171736659396042330009883515778601073230713737281640538902984641759049189238454742167610628859490638755234151812705384993644950304048597017234670997530293307521031978076139162985908205234853431056071460051284484961375670914167906101730912923922626940278522825270749429545178661701216561351896143296830702449160349004677051936620845242238516424266511540934562170970190787549880312387012622589401944113845714878609976759208461387892498665205990792054130652414117877387145675025678737349283774450053060137829611885490465520663923825330759192136574463269855094450464946224229133726219814779523933530249286944655807803342791904117711629927652192140250587504943538048374011644501650887986992394310421988748355108480737336882301372133900202727720548578878462674509670232145919436699336791295640159660486699490109147064269981285540788303268019725547960190879848572006514765011473741207076022693245227505591360571515000545513614574527340589421972548506917528117900319975825594208470502596953187062646554096594966209969913218755009277550137569307820773393580888775955365319458041640638340168925522921628827629497521462002034289355728612933443544735304124848091362794009750466837551731041495537976845088722733723771367730724641578752440940661833207126222487717309795128945093121537082538767395231367224306530641513596157695645998030523698704026225891566094887218346104981709172701482335705430133173268287640901738403052523962170803044620919189323736086243231299758098392180873015544429682858411479398102257663692969222308989212282278173436360327118432645805719706982169131632918331561914716936052290284136566005429061832980200694372010632358767571826109550998716364239381082958476950810807092295909094223769871850966638418705380001867466420544241797986286583448583739397290688413032234206281297688274141655856419707985422728725822964221304316959920087119928216227967680977522319350241510909989603205844168919004053947018319201842593988134505284081007117139009210194217125898435119683483401363764037332082221351430613752539661831061883204067875196654261688980312319680655411929734764534671467915142637161814503805887119770996668489920340767179161193173614414588138289976919541149822088184114686871531137774319097467354029752778986169246324447256782692444376645003950230896146119993287016905789852676293968230945590701866176137212351787391080069682116832567976897007860036529261739609826114088725966168970781880888252650109471301106692697632438942989148107981551488798883436224831596763682335661640380193844182672799558992399389780176431715174015297456297548879650325145104239325359653186641295454505995686219080883737702084425058239614180591761632410162812392081606790962163934074239395131061424616624253352399471483713442487111274097928527510662239885200200292402707799462843026042750954341438963347073590103312786226908176699164919570178820289267941418773486587707542175388757182713122636136630452777853965918725835012996102651643792676804799161303502843898373754819656439200891540446281735369085614009441483107654834948638375900734110016307168806900681225971220445825605759709886123307557650994179612469415957569879799166256721131687657036142714887585232113325031192937724514408251133429603673875923139381539717264249337371744235929024510969159918968799639245863198151252213571586772163027966455355839676909976928971846779032385472724850134851997086780738630470467779032650785141735118500049061106896508549964647368034244332535806231146389766224001852693579936680475420972432344374139817986094820713078715330020326995241379707910227294867980592445608190292093000893480976431245394001749307348908564509554079322105031971939477903582247058640669078523269658611397176474854145351804984203276687916458300011801263205211613091961649265029193643869318732927622083560409634455454397392403044195496767342117708068971375261028767211203242581890813618406854955560010641146493381042420441733631646583034409933901181234003548769537005587454222815286686641882398500273615057636677858630030166748952010913167334299129715860217173070029206597228111606749019024502462815587185640122283669280794766112701629925732865473630370915216972954507261099401127211335477020970960943532794405499013313661750043529757821804399917566595528129041991158977876322812486022778935428919137236878988269549977049049489971929413270407107153351326708142999009023869164612297383493899069818725117961145846589786641212014446160725315669113428616853306835189451079234519212570172134775935810105854961920863668706268827925095126603052026799769774756406192109732397501245813326001497409870989237267905137663142424182624400813408061976050599767306141101186149148469261401563532521642270431049542661914464827034772533161673447592172824007122318389766677372716439736588153752354911468155251297139190389815713048204737454008296185457711291973624035898839680973319524781087210012510746077292838038359621564218518253511448855260308933535586974440137883722761034155158521854468999317507975034721150171799254774126001786534705024840217048084713463947836849839170335911743155758862676177144144669937474374332901076067973523840501972211650745067722563753303403551028217320780329972918744968781593591123723048103616891301886528578772489314327630041959383065871958340525271288461325528070902088878157036421597351899685816659732200295753756742820641413119137066191909876829275559657040408294623804257775750649434969441864044935900133433197788988580866172910343951999447217691185633987862799853018829026238387358354626310815767157913651180156531593850941184831043773747333183277167102683411172840015019092625959915754390184277129442290447993289441814465945881652065001720516515296957228247237648380429765863137036475881382832521696231724058938850225592828332404412895780170408877099892226559970759419903941200733908321011341393332463298348444405115478036714954601544868831376390765400518622679644637185104725466469556683752013825559679134313864039138886150594574839250579473704521473945734807663266707937155670265190690390097297245797731626000275571358508496455126385018801852197455912503484755335759794690567831952019355043991898817498430801603706745184193511741137835699637163585854833814325043198684951277994780148384083935585016740550842362364827871751374053616088583183718782531727713423748852636422664135357129520267771139549620670562459938360181648437781224619455335567797280531644064115490123171818088345965764018727626698963283059785593822446847743752479636741062631138854590897926378018519018323918855278139521793160251642784439846188863962128360386641171145989496894146692535609434770135951831054958208001116082381207651895248197242780955283607502376661909843707482591176607743819333847076856894404152761203826985739701413351017961609959822532985087070667275827359336533203846331704789579106829507568720589929838470117773544234912146890762665847668104383796400916677678381473864110340906296705489894327954644018936448159243559370461220313162016172553451503793710727513862961963068765242790575152310611211481131462572061956170307386032762974016784378441924520490501588636716579397318682333164222134311294525765839387928489052179404001261641901652082562418316591260252188226597898906834555798141801359381221237594574629174926046065049910212957964988803192375516472293072088766182887659280534473592878878587705864250684318058476906568735725498895466648611618642736338710785811074291384837797440885802457359095896862446023047711400859546859127826036831151586740445392532703389671529330048341890373032139338179773351793999636055713212710582931023574122558852916166043743457791072033194579049002303182267854101506237806835905295589557308086174445224588866153714680044388871148598347346872815667943790681680340224947472220416649073544828577529772721919543855241674313298139068444783115249863469304777711468383875567650554717164567703683679365547775980738000432864999125113653753846473166967776834483049953577655992885038473908563105839661010946888403527377032858516066597447244314937848108768612956509159982725521519392404313937678449450601974568683344723716919651816419181531271072540658674929610322377536410836587100024567431729134456996549962986092045864723175560723284656136099573831108318505018675775221754850294842939941198992707519651906096785096751391757615047040290088648206264251564836273198957801257944607913871353886780567588848518165582355791771960728701697492885612438103230156302366099970319705491193314693528228232102872749920976378547528692144497248732352796884648304144754137236420612780565175166790722194538042132404664021740195670215445753569763117184266720406487803165966046431032782241102794736474031834619731652258239189632691778710972931020598733826658323671523334735035379329743072082601374633656285986906068917473382236259415637824167786402248354087158580382022149673534927570252525760411058614685658294491190164830646494166406874880349815710463950782091436338779657526451449607113932583511992466677094413334194047501549897511865339349526241363303831413915178945091140532051176700886903105650986627226048880136329175824410630079617950522904853891590827796764792892161429861510970626630647368588006390898431572339892071023520770432436289283155739946020617429171106768978711453186665136942289325003488163454238925331467318232255907672681480418342214836467522095033482242777537149884497732569897616141590325527941556740166495503973204206099160323743375602991850016432703532225498487826106053050797185341770259655082471879093898985974791050658811085034589333470436278766505167115315715945571994284903427407793050749421852746609713976943783638617749094624670159830099531952610754308648742587852009580537390362118022085308730265654813603643330912470651104636204611362270815856032118784522336812920897032231743756039165201124196215415788969170677135442502823509807858296976467925522041532959927867919076855935083519053594996301882302006906269920866986574360242154242867539076029206775528154232781245698092074785173954939173941837773662373739284846541817835563213590344584500385280941455378006726962321539311184398202803708966239675183254729551841709495191868065323615097617949411981688024066863838616831915522820391107969620162745100509043450847123303188882917433448157238164618372400175077009672050155377334945110634397300190880672180961595404771226423643712587095185975388951291347694051538622877098544555652307396392450658778600032997883517567025764582644405811214179263134704676967668515354469405664008382614243199373905280258101844807926265859263569398417252934560813951529393945290333583803725688666782826841659626850844118454975635202824616819717544533161632336072461424863821868158490373190954767190441809969620765877300775993659845673607704223992721876490708539582654965720785119746578661127444029147276298788744064284013927149659387243505343614265064936019579733557511456848512364553912276171704321637265042188861823946640354808012870260471316652718192100183694669388134394967212421600235635371904029414537701595404386180168260330317195926125959183641260662362336257074525104917890880246585595450112275813210221873498057331687253282366448449651446103945873185170040323052741988105252156825772478447653693272591005822418840445788657349883331156113978987314285417901417387371789706568276397211701098806096933070430717408825773816106146161188393720290010991507585753040655287700059683697405026841740426310009121185087560244558364029487756714321665454183265605892359722831565280169723228059307618033095956493988463404851685568294144754940105751215721580390658933143573939059499846378395152543353003218063266326100021854708494947049000958931406248267684996133047167720189732784126589917876620235568232784873634873177092124164397195898400991206942332045747638187300936518383405633623376906791372846290906513919522066076264352404214324960170496147835502504414015852835195288273033370998016069490392395720716406569366188082222071532125550010233606408683667093281204210526183939814152171101959630628077289460816268678212978496085586157523196451336762805828291838193298596419293673707184844930594145107728591664581254241398622561801326031827653940798690088382456602316359785287757448014075171740525073153226318004597890275265302132654910758541921978631800160453840222969183398849687971551716887159342732911708196847363368982019445247714875502673996195567592370371648244690952036637240683598179754874166333082766439160190410166898643777514755758492800462911787273855473756463697072385507502944034795744270154187217647129586914801864128214472830869507717651681158283715379701516095229478290314071613764363011454426848284933072877998866496045738665859810614375697614137397946139214154464231829677296951473374009169934086777728267500642592223907994198525576750643668639232367169011559008339485864519376139895745434245007796174563643761358617634232219527297971264594100890896761920452765831893897662041864462352291941491192459181867091709252761440059765163720971376479742539585825096454804037529799177458830267869596853431920748503162721742991454826564442253497810972352212785146071075128022663865757827822979616476890780573040022553512231336132613708258807017274559456616400772366903940858681480175295967620033223948890556996769073126176273716995557749636459002626892354581658334189817883482124939023149996067976503774054913662551028012860575051128151872512889051048313253761672794327189824703887086762728976232716481483334283811211770745057122324920566200255391582082821468845436057816059980257402609873042999496327024360568652296312726628188599249449539949575642678727575387774609555339633815692832178488949521078162898112761368081645742499237125395348719557410670765506101558532364790037610920895741396447317028835664895741088989485038157923718629783855262395811594642208634941299083122154738997839871733465038912040773173372953281292649904738172467197559797697518431372732951121587640255055912151272919502197888317067807856536563721173102405448795306085105045827617937443808648455221918683936522188867925434775141471532412188051215078489025415099306097192400800672017499888650227151558988646849645649858608228741276042703097952157897289324359278044795946763049685020327341531874509573652159233169553540058205693138574209239633277889460613935416340704001209791454585671941773882803871243230715886050908963768041670206887406265662397941934112711705401000715426239121799136958388245063164901793944184694221544596508412918813789189852309416545963255170217753150727570503422741513133004372432108190353186747486439110326449348756114411834046776617393230786794902995032188188599452458774667293721302175429682913411282146522775991456426734472205961852564073307123333419953088283774832334167689032053963972522418166487883522949345917717470746901380696106913162605219106719151915653291850072587852039975949995479997503441709487437797084726742068486133288615204775611111429060639584924595661677436421124621515641552451696217160168622329007182114353523767082533725004251325934064471358578777269036211700129035529859932198767694633557709427235311965983721755048016376550390013903445567090860013365862350467496284612753339290533908338265341122806793755000667481332609273348118747598131730981786723737668142670065223195429360313030577180654255418999597513393827326653510468716222339662659100804408249691151305727778077499558547472069961832872082836351518817004088078363320610223149988499704080165566896309817574631547510378919310396464540093713736055931918364737455197070249573240377451746289860417920991898802409397070064359947723853397675876174582730273123931666768642423808064394387079556767670860981994181892527929357508548742007331176195718229538810995317948171549966506685016129485547311748612622211640905274559145051659538917188267571429734731590864284721125073338848814368576033714212126316243143909088349163930664737753699677966625451603415298255750653287464043644886507411604530883396500223482641797389423656190557946392876156328275764781910087282836078923117940820432749320056713519470798783359774742588837000646625172918617279582341320766720175362134289415949107078035199748171578656109630325227059851643773561358729793813197874333302128789437008878600739406081833598246490197131996734469320350855519654973005371359712739283166896814746127443039037637062752689159389948785013604295414227507037885947716474955135725226110220901713659973998521878908598815729471865130562651716465874266383383716738267517276626082502690457176421955016893975358165724156171723525503070474018567478527273733164735712759713186637539705626940927634341977802536996318337949661400792380169926813480724887073367137739182053380535904776935180363678966780493130434121592515868881047249321270355282067631177321335502365648671150144669220165641653665662155639611964195082684690999144165391465661338546648285615184699980973926167845622744883114403652304720883713792776463427458445185816158579914502501501266944630897556998927198846418103151424144661484377196938022643788087896103811446504875788297856331936799443315779056610663726269158208123280902165266999694348443996245223358189352213891691104985959027397093689884650514512290127569365739041966770178523389991211771630207324483076337471518330978649233990965385689671325536755718696647624411500751191879005204802060857727981408787544242937118618094128249663203491005870640564481190347603477452806147468830575550039578075584692157360979170607964977517195576542263660714631804762374165464462597028908329789538900113226045823637014645586928961567571361986491011406581886328740192599636335242279569121901020833110998012247396552913594772870766630248966487063164986840451140192568508267929807339968812166946420366354949738982915088893915008809266693660054729760754341531269376501964970091852801654349181411600175466316381911933304935505593268133589165003181324163361935794019488035062834872289975941607440997735757148611857568056944528517245290660398399683288543695674551721835675522860494579616649079594805782899338533402271303768620943879483389286612747396726398517276473831518424984322821830003617425434673763447250466033021814570077920004523814719335015036889938788768779500280447977721550940989742499184149295659370768365701830965851418719275490715822228371969722075432984632119220185036531983728515771386600007214104332020420888704499198096610426239824242798184807618588255489050487624602522678296737734990890531353323115418620791836849476778420019829149827247885362818271837468532731946214053090937784842739652356507649034756418352404806684019512480565795830666667460755321485889335103938017449109364594712174794968752724786792868536400322512328697109666104867044501731341323743782582042519295167345486793316457600652896612699573545764451392454617523968605440728434461779274140751034737382433876341208707314123102417290575753171229865297672856500429858886561587100773895991804220759396930573752370116499984567122074731719739748981873651452532290841557746587128622718472022982772210012227194634923844126736766887479833358024533015456623748034009103963247895626482147469283400538592562245705474082136624545805157368112299567454454271341341874112950696023685408445405310637011457230023537664843570712214565367451446087896853182116449104671783693798866306187340046733929279484422994791016717938448848602501157975771118739446644178234193378110806296910531300603679933606636875493625278002877349745937482379651248165054245897995859790526586389246677945036503739129097087556589880144719912966734072429866266736929901995248833987351378291024076087714302194360396558189620052524800245113875516864988062981212582006089322947067502258469581848355353774221749068464960944006051647448963456462938187948587528767515185323217593714685141592634400111347081769145668357869625103840981279829546618854963690898988107799163384049280842229845229819455878065648456254686245476074236501262532396117187357486786866974682015965952971063725323571520512873283898231544344588875688319177884729456404378763019773840044641769158922797556199430296182192901962078797245165137428321830526872437692648769633963548225308070144843296325810687481794950245411956184365756961251137582873157800841839805891072384319875870390016104027674698226530407600371429730528854048853274257648291484745520394378986794521476582504293361785174133259233726287418704629129248446309434026719435948938574035144503382668329655588506864212855401514962246522954297662253924141554407962761747329252890772556605263906959029555912695842049947090443686480420959357238322770284317919885400792757892423334571316061095016635337376712685767684147023133509764805128557682957863325980100059144960712082908257724636224587238503441734560567534904688758595296280565962043422568241196506292682112763196065535727314593238638113440357716863259434184082272035094195907263267131096829830554677848306549579936425040748021552569631711588504570565753613172342835669814158944303271476233838073184155066154827281131138775630209481374880243632760621212523234590515316073142752333101864174528109722724925328097571493400792001839404867445650647706256943612533900548493104990107391612162127465146262767171854357241382859900811498808759064835736692888212849234077262010411456335336538689872731461374983974963322662814436948880447079963747898731464196930832085258923299551769213604794341609865221985118322099383607451026687282028388868080273230503628898768677397646362439769415956947379043384002160093904247291985335608183743801253647941807163699498657987960942875275392806198000922302494565398181528311374060624178442730251505990837964307810005401826527305509277628297161597565529756205888170140716545760565368359766403260907749928238485553338716302970432376928011738674827138313404199755191323512851246677352509449565570349373959129047945796365647510910829175913660151695181320019585455290541760004092922407439128523045125848182105783608695239855477366580482935639454262448074155065013080073039135283925302628587940668077034838755501693392070191754985989155429748586620497060258863623763943407066557469519032410880315152982498649956824919067968806059253742762241239788485150245368932168022446736652795058297714688457874072487933990729765599395385618274699949384321307955381942617739253430503432969448446227044249414573570209402742898857415093747953865654981367774946186733768445868973842564208390055550746653174604322909147041444433663886537548666564848065367900358468737679394527587068488332692082401408516465563412251840506376560131621063426400207332699739605248466517309823423241872490733259189131063389369318057276215713980242642529679239363465359280556140957851791720169002792967061047198432978913429587606989747135133301503733102184344254895774148994193376202910528458130502558324369594321342090848014814848147079560445194099320949681380902488367766817397940881984271694959783117514658626230653286275563222760653676636394785769471613321526227569383271154006512138460455315573915337792768264875930315200903093831861105103350969775256218957850422343980971065847279368675626848598866596161497066119601307951395743437897776267870954015809847998064427281935481592472132798590557000092535154511411147585094994194252414527027216637220542366911009645302476277093938542432801707957398809830191126365680172265776827340722227584731849699282091854302531571972456230397876598174682965055796954688690384683748040296871681590346270647944623479064279830733943271265540126388923758178631412768009027272789455304062513655347719800267499136557750085015808573624694456380133890870560252598076297946064832701265268657973904550637044902778346310870443109592141160572698618327686724284670495920962074513671736400440521770161578373797715304471237944455058474717332335241553108460014680009607810163146903556813031739414219796936969731727861551905126857264387282378756652236678635433984862736959204412333631245430033791095479795090582446314633109498746429159881720253670570843332026633958578584117797752497513955107699073618926362617047573108364441023701463108758299973537730332096367982805052399714658833662860909707742930985144323284997267515533622949572838068762014629008599274549469435399525787193114839556659711418949730717680464062178803869858208298902860916505697082293996288595805995624131412309467406425411636820261823890927971514038970647131780451049130097902486584395165609128648284134607035333492393939509494568521193278667283174158103633693288442153868670098234605048458259066947205319993888920529448587980440678682844135494415618086976034988335469746861401505352707809719543717134153076397370585247110157371162291085575436203602804920336958358613821634516955667773383653819219956134425748609586333920991808747321496989236429784057360382531717743233063690569659594979868008445095305967375450843098268649374311147290483203944471858236942450600098891494110434749995966356129524613038879931800397012922136380751652117032061808310361512452089807011569080703186362601188645787944382299886508336757803094343519463655975604487490092058789509261607198818466656825284278009485605251093498036465155500844577949770387578047353417979377559318434325588969422351619462868164633070507150238065463839446556113073263010062564581070896462832004038508018061910082301043087844975057012610512651162870798654572315763907339339074256921166356430463667636099783559682973916293255135550231865153941484277563315075784918059133651200516050646507020977638463895825520823687472615821592295650264592281230823166090674008743280241261331663377385790808842986474935628648069663729009393780091670471216521054392147688793909665183635332264948137302839950192408166673717510388837251467047415455426734473169185688325118452098290886665073928076690823568153947762228753271901927686779189262142151217795563204312564099412062262291525832211320498140032792132725737728906322678558263847172401011776809620246182554377454068429259618206322257288821429429975611890387066064287705165051762904504920089876409209733944573450637909919421686684764655439029341023041471747287585155432978528759619602436168522569394412208135528156986686400149372665067418313421638276623071664188758754621440636878511907808574464322127534721766349674244097564593914253277508482677043237882403860134893881528915412137400036382565947296642930467340826492296002055810125035462285240017174946149501888014604872974033194451649473200046911980022385675590313283801652303572536304314489302918797045147013148911625592210928341740978027415807004807867771671756677616678546471780146882071139322078086322427251892549243912331113257862426817483707985136209333547428783811822005559899589303248145799426314280968799501325190954472529864820461028346993125713414624939078192048133694325652996178051564995391830350436189435341862933154201655270462307609864767766132110448157654590890909955194963715581631839980030990940443961485360958455546448898690064451462080826425608584071749105521120794972631534357685120268563334740576988377937412307044468446538541532919557941905290461053752412108367707260309676212707724386806396107579306115331855651924579087754736171521848173053773731739604141418026127607717641664624981333239565866438279508009209779740049979843158507263614478733153053521267973891296277977181519994067402013524525333870461096699419423472549785079409337179068816041945475075421472142505127012022510429389903660760893975198731561951673045659327203079602545723701997332324253034547607307484165663321914292868983567086329866948955921920339767527819798661374534521954318122572314981196315533165879864053051510868200513418510696097223125921146239608879555678317319277565578244509870491580173573183590272853415871816335113454617394895389567509524625960137434739274224186426061185447690802644761984354228996075405348333894061706598152617352223029587276913161370744387238868216124617386273275583998938620045995045552222335986892266321048085559634830306367314361711423248708345781725926209368496842675275672907448284574284681616878144219758899619069860240601702206911986968552134524608363608394007083570079999663727560083866569706911983729021209070886899975602940701160607138558588613965064548914224177978622728039382052971293860846963707125843147612562746556755622074586616868501046776160669321171058955336299337552973989388225157897638632294360965924927171377315684084467012966583944230742851440305249905952660741025563051418885578196858545435312465470672966924769305158515370175516865814977073575032908343495623905922210013365326311888214861364632604643594479655485860811514842145743880430750501771743752067756199861753273462346321833723285635890088667346435282653589213378211087978075680479037049531921239281705152056629160854718445323999921551327594684448982864402256070600960346799464823306758263243877682679311627636489834478172760271450792720884756550782127262131503596824775163430290662403210478223743648120697462566786780732736108747231766899349179908388315346760679423908650145564162904048718550018325465030237274372925471624015334028631311818199841478461068908753354223609697378608343900854267633779854348885910624974951780813701493349664121767245161142155826845445226707074362362729572986641083572305926018739403528021840223250233854936122170029578200117113684288956177213299395628643456730390326762372731183531134489579698299187517030572633843713656565208513852793449155238318894083424373155274877251567236660962869500928553013073426048088065814506923538048602960062132018416555574525115386459990061657663684040315326286710561335430548480408563896742478899053544488715717875670898749279231833916024947945174945151456412859102187394398971760559011586965947538120355544531568841739008185956888364021353249423400021444713834390597222586806605125637548384244289550482426342768857420168215013011357366640142089847482453404558623281801490201183875743991306733601883657758883976270455447228745888775777750939528819261814131564797101436152684492169045450012753632466232093971027680828109939231503064275585860322145652270406221221018888140412920761422709020029410085086522687097572151861955565191808059295836617138126940955553121190432934468828448077718282936627480646712837348346083083634352837245504271745246786319253071651543776274262542278117316461591112379712934337882849082017380026801643018293275940208705640914933836487624001732863457141295607067876381641140790923421367729113579839351015184608189457981169919887415352630638669868722929032156274228288502404730467867262951401422541608702133162461391106579781883521805667899441643932296676804515478533291355202010395849623599249617438628931048856855641739880341137892890532355526092351511715534325469361731774696798449263596473534614178343054860194538778235118975493963167122588465790120867806067169668268322289335447884854135565109025410441059210680198429813426491339305787158670064074312763173345501555794266724908092596421251605793371811710670200573710003756668347781526591701219173260756106745232414443057560989940461667930245424810471336396782196365041038189807730667358327569819045235274501998455365487399772495615537279021353599499925388425710899010226390628133268046603953603606954436740389056165510411077815663874903536463769598799733172825323500568820862718779073072673533326431913021893228450221320591667207520382041530288352350448102383876636353180130059804450106708985302397235167495428452146047311991562837845964228278967344277202644984468236619342587133613373360486098920086135799377398110522816063484768314887892486386380774850330285582534701257724556959881236126534028287741811793686309707549798954131821050429848314052651258882667418283582855770778950075818409438429976435887177511985463749587728825526881857021639306353264577988532650750599734721589459925005122114262925234259380300464893335267389543969785328809519544785145073150199247678897543184690190999105168011110959308869667870322644295672805141508781383855870243748404626625797484935432093933182727607807417563598607786792846390688472359283542712028621718456141452239734490382078062963640145645603749674507930944999331695733461515965745924285656415264788442674324981469670793063777829665060101510269533309265464306842737783271217554520485916450061835264999293727143346388525286429862449257509995192495117431155733256630780778165555773762137874825590351410022610927164728194913191032582909242297536437333227567370640832240933015683769075863905161995114639168227736056540858180778434202616433382140230196062203290707742791180189040450945784808163645205692549686999825555544730935175789667890758190911978889292074543407504808526393943617194171465934399348612913939196447583990896480484467480711793707992035651031311104230685217134658575798883192973511058262174106571439175133960934291426637192955286038537882723686844415316652206090960495761141556080811717245310205073338452263007134068933581017104394185585529312687986671250772820621494797977266104867483599328777321870977518697704855461113655989047096445417865327632240097184453985146839861883313943294271203346482688927194790564118562049445203004650277670752763051163055853190850396600661394140051261900981927911455274026652818142876805430204235244928127265189481101583801455963323423853948121030440984354876828294490073499680816889866600316274274904123018663600754828231208216550050620798934827247600110602818912773874286344019124508756185912091753972801537113870378045761127607176242811790615335073157424171859228589504701711880242949426902686232996769749598980294121962985042010840744849636481112651369451130478556679616071583678958147117256074156434892249850587844450341445234704598314023979135240879459409926438293081191401604902130211618606972388743509383492848175480260282092163454912666352879606164182812816286578181025153778104017460124631106665272311760852393798761991649011849537993917481312616602336971898890985068531042068638753970105962519491333841458563639223317652715169517043895138442664380259454000969738033921459672882084139940750106508777246704726133533373139681593878332346861501536695372448536521319258517534516699340203371118422485799867022387565409395677702880759743630651236247872799556876622503979690202234757093037845828991634439253613123890243316351408254533302991652412839120609690513366117596363294884399086312354126071888546923324215979862818298347114451514213306627753667358520634357464701406925794710428594209044074147683142358793707882755608691526609528053767977571597581306923259370214867589088474625095028110280477253847360764805158397955871531433713245121110494725513411916434184602202689147157250999956229703134413852650426502844965522461682459341080225380096769279501504001992938146784205790790849197648803810430016810586653058944544834025084852875010719683334044184604888510971223149559821297595915527844477106975881925825945161821754107191302653611253452772355655144009492726913742396501867022740642625433661070921030158187815937372741189504774708753611803804824461000546169426320363728492638409086416630631571513344595021660698292168188013122434059298779009070223101121183294139846720937175401472689761860015635392115990128081673450301434074343138568301444726291894412918792313322295163080160006757776527848194822700503454223468801155191712700316673213275810981411906985046425531430153031474562294442801391189988176407976210762840964687823761304812228857593148432451805132743277538428451633305101417078392015805691837457593032802022320982376150292516326580551248899025574356634819807877537368938557516346342268030985599713378436656519070012694402239696536140791789212134559936873108584628237712729597658056100298531493915593656821560091145077576909334845613722167528320715515060100314326316241032985911098396234354054624616741351795877850648401194540638981788726576322208776533419658685413023553061194736342462306948844575046695766267345374073760158739314671237718098491900095846072912688238533653955235368685835573719115341663909477152252339571839066579603374905430870925727684601430816554793734477050794862675747657132290284627139191767114564397177014521381050754399691711609177188664862225899079988466865771703465682746580280357920123664989580914496662008284193771216504075883340487215837820196226861430570825146598430703320486307427949065369338107697204824528239609780504211496103083218048186216260274630155056716777341528516025604686063267058537161779460982467852973060403036186637262029824063558263835147916837435617203898105085063687346470267015152932139225571321533922568556371763214830846388027791572470774016437251371928109329181847831669301094222782518438725487473278311637920417827110863831889654625119985378025508713683548917624536640497567434236696052193454218007999058662025965261627672446731201842275812832993639251523626042182135332938436420083423171772149228432470696789363954988800606490507783349557947866628543623702276250883782918754659740773581559683330768334091119294366475508507654269783495473622110082504603790899989904046991027472873689855762383409352480371294474774875774724729212788993532341144866404465022122791988313882146850574357315610835140431011449782783129550746105614194620613748453088904151110978844828978263073055393625375025384635284063356209002217475428353244959596769064465574500965226705535413817663346170177862347969273499460457279649818873575494281213942560606476552316964467920209690598976347517989086216243717779551839617257203827552532528740285165120134083238992467008666555457481907328500703292693985839441227226178156762634600546756440459950659591691262269132419428876274994295542208675123758478220354801072503635994012458335446864270926549021668663189195508026921671621763039403242424395304939840330795785378207693746279086364776908171861474784771994257229901948441951234389801449944335756736618653886046099049580823230219345187335569869430393937306180695552888638589299544616585721431090183205550675387914603778570149741158242434229627174529947889048026775200899672668925996774016002165717332736329391917920402254960582923527069702077548097324762795830608724356776253052393887597046969955202184304846397842007463203302486401758959473850792582223804718631211530419449753354201118887199709915691839779080399436837829285792583118382489722281377053975504592052208734392451115253224983000261280407612390378789149032429531569640248040332882695226512821748434983827578615121036872594515387852779297705638550708216170384574598488779378359684650287208097915799236035565542719731867730432256189492475901028968925135331175507325767223912865021281691570846818079456063121228439208875663287997967504178497086960330697746894452166510264452454170786257113934791199226607804949072162955649460812011448413605246638264034405440429743666381538292962968354257679840474248335592266276690178279838663087482991452137786290537787351363745283009797219147285768775984783538169457414853673164703154969037980701697680308645503015200423702091945993817241075379601305267333559574933003409100330602790093701788469216080615985344401868953002445976169066921081715849355265276349097139136146178138507358736806063211127351783372834386661341661895358214660371730416364529725725627880902501541790172084023115225044615261021764073633210582142817620611878540049173274855650376037840857577765453365488591673283180404374022444876451913980094047705281971284128643617119358830566825234257104305931405230768654397175064156443627636026526659733009465481649945429187124960277657935912938144539060904789689875091855426518494300695885137842663711492064303833305956098697395836349239787663059586381262312400748665655496713066221383186319123562858711593347122956445583424543331763313804668554569085940570865821487375540844134800425551943347665021218285595260025145729819762465527370061256907931848368281533608878116265032197859820704575344579463520462998977447003202560386039930361064939611225917185843984841805434003622601374092167364880983199394686173947891353483687277067394291667775680824841638104632166094981104182553947234968123427741710592805785990082598960003802820081915311035140508331117060595942678376443085931522504408775098715036138443283448459698763516416537401278392596510526725748095891096242092660536772142892030779120487779264323926539020090414146229037528903098897233779062510268347362086237531428704052602666157379657264336415462961521489987328692431112418279578600104213848249180799105140823958074068429091704296140146592782890312732010795463381085261770643710701447497549655219523698259803517007253129444047439174045287874673392545212040387635150685708340217291399314152639831844495594923293097473500126891045524470322226690091149999216097559591047743775771220842878961993378501175373039086209262386430260001255721675915116154476657445895023958558316250123978840035490284621791005958872418759983756901735546639258037888400366742056060383383682335041668998178836014939411744856766716495315004880588147185423947869824666796485913836593351103611694582797349807174097632109198634848883712631044175890293244597547244385204500892322897405181757858883102693242129239247993447006191618095239347580679875318887883523535484116068279332632357287064404218530597119377286448574317731645117060635149736855080042543024013462347232485266693332086411595250547149632538361356258424127438390901860734118312118346900812245754670340941567899684618089711650069808815404241568004337745943861986819086449548889524001083133879236130681715967606694941396724488786776350142513481216581112498015983404991429182935950794049263662222325580076421511823513066069295408234253041012426718063250428889324810623504953945003305370169875420339220556805394421528044549064738485731889065979008242975207535878655293747210301649844877742768873281032260875145692427243728404356751799938394938496843950595566041026335132749531172550595617318499392622420552109510871581751571146324604639620570393376118465712203902918076371947027721977912199022611201677281465286269706304133730674042499993493609573998548039598382930215547643518021990998336643993529661918391022428255899663596848144914223084495902809056606310177411445801663267274591266040971368420670437910681311898029273808680802618242171743058720171052733875257029105046425908853234330564388012967114541938489836830184045226258026012311330052608183395444748096325817755171959294770180531099030898862984531037171070295310483936112083044676765126867515087154237898077098832914437424329443445104181180292268624686961266449023289738968960869305342176011673597289826239140768768722459752324832675071859666538930587644117928724160574578478439900506644791897776444744340030593145527891081929404349566008712056730433300159137588148006505184385121807051431701946382777622257534750653039240296930776020307642963604272718973764789792949494605277875489249790938386592784356504100991332218545985513156564688565507184470259500583157598371988610610376101105428959499530811327717585884346776588184802678337230772677694594613806165885642998390835569448262793329485984808965418324448548933328349790164251730085363372194056090004663195980562027712752721488224734342512465438987381769451953921306022521671961000282378047464807269318956714411634219890852569654099906740480057334347997028941438296024070655121892716894916388958683557446637238708301238815713006273903669139152152245372677664140553708660056442610694303302203187751298698610785660599914055745820680878801413867711282792731391988661642244729540687997740994907060122822656978918135802116022064618803158451611182456840657238545072234383910043563479131150109602225705261662856453829622327156713947410850804273755294235015101376462299001372662133740901857119465467560033041709629604891016673912061200761331320979845158273518599464095396658212288580075487520990049522419188778261358971154322392229084992015258649854372336134294031970600971400636126572828597684744054116480384207658512127119713383359155251427381187696813187055059007549859869033835830275566514951887738593100807493541775673297960450323018492704564138132925701217901027995371841149889346129679926359375838747591315970360103306456812538489422742359942073587421098073510138517680738064990897840883158650784272511304114140494129507486615765369416572713220527540225111303900118145280677366444297028818195068540059483313178771735213437256211146727666279828745686859091052158121657776900267750371108554732272842023934623150655312206739539484970839098237230250285270618348494369388670155714522981948612796667054956028087862339486959795141648206297447267985038256558183169421939648234692921937196671285219398712622642424442669641402027855002345936417673580498890084751004047619971785863584382406622073274754124752899740493059469039060761712546291625444823180762042661174712453330055999192823136456961817576338966364693741589564694433144664295755510688060914335507001160719019416950821096993120426483229130342876345921007809546355665430717019955332821903048032163099851883325864609714607228460374467498558574543678222526326335512267981114161391373330844236420024125466586063022338030589401770733969941470703383768787857004453963469672828228362988464451957324051911155706428116804756649446465285942924375878890346163585906237990436492808940714686054808520890241177556629898997965325011367796892660179827523925818985330518996880673635336625101077282399640766854235479412254078145242325906927347833132365140894621243980705360500909640503477328744508429968095196815855810706563141672864037536047217054713082111843588575143073718269193878796512172803083935827960031862477957909749432689447293344970600610323203177702065434459479419694019482685036063397142711126203101872505075411090338581460631490023138922127463930744626331470661100141963817773907284237872243763847409715249620530345743024228983002832696520847439245823671107751274868340170053049718335480590489861336846813337499978464595465967314275479871456023845427457456599287075326252353479732347497004672576297154444041862900160336582878337900904924855995048625352958889295920689715058194341267562054132372612198326871425903838993987673752755064205363940282033836512229658351076835914771162149900574166286771271167794241575209658024605998011519189893769957794343069556104569593276892756776731223155331597000638402141474507632093197563711055927162985522064364112511370935924864584928761471474842919129242390125363262062966393737983353143821170346118044961357286715992418670773469817327633223365833099935068438013072297415714724168319140326947791362132119790299440131169438601464127132946440496278954896622105699589204684415338914002581947800279741909125985571210341389023472166737311536741542880734677608351822642092694926786326228763145223531754669145866909534298109482847928771418396653533889578497187413515331740386787300799558100175388031812437793683215424995543461678950358692081904826645590173187525168848440233229075366772689303511151505372748917291617037537121360305268154637601365405597585735424711503087138938062494072225481717593862532601650231975427312243965003435020582165798981350002059910117036335198764519309781280691082868018458832844522212537735994301461271906307625252442495982753848011842964575625511903122371068448946087834082606695070267691826936566163826920479938796201427993096924722080133397309115812220832790647275339687351157848001114750082065742010318979737459471457296906391487029375366945805573750372416420841176718574809546677187972081573855203687754670111582468568890626655389755828643689466682801500358287518259263600391701423504733551480896300581483415529227313536360863699033709802571861219325959996163368446776943723220670711320394374994075325639067588154327170025851282232524069619172585555162072436844532381106109422893381611163692158392600685945001040843814490211072572210369359253150888153824926648683651848066309406428377034001403443042542567391840497277386884434915255116781020926614015936581002529014912121900699468071572175862975385160821008267993119740999818823693440418650617505958638080870077606247022809088174748782033181203716377384420218564806047697521466474142824463359097860115501959721614529557720464575105646622686385710392232606056338253121161544308417589424496537494216703717233862856533859088050316454644364031243924119424362670013769467094874499706122985445670147176706828046640045407818089464675831904251597777605688576754446491469273597466466995286022398539536448583228760288370787602801311937045319756384227112172542769802595480828833074384909849325126254925967581999144316311229710936856693322033325271475877961968264358557039530745610853841884882172528611858036253010205801915270386779841561663835053107473472850978525391495029633438495002110755996186563747246683548479585147221751056038454060787893776167304514459805353353104310375002533671895547020761941705902716715677749308536729593112815494095872204849318748862701510549414654160006651029442833440808202187311484817886478471471014577692509399546541752934767319619595185670171687810618261964401886517703718755140081912943283297612447321926731772159370149965017224196128217102836394075345424926832751517155084947444853199477272741557785142917638107997681910194545622909359859316999163074498390138897194833785713719594196348149077353190847141706983344400309811688178568379551902885150800685473109760087513052974473330357103956810116624152472414026250492518255430122236995886244056317415855088666922391561213996885346220396227255560538582159559990541413888757884318523725534765505782428845179999695266379962706925269367118960415446278336534496514600349538159097952986419030598538020571724542390725866742380407761484979036249534437277685780246239427491982040680985941062391652642892506677484745054215392035882710269765930935258828830384846137472730192378833002036757239484086405088919550421343594052713261659311623743707260751352954332191635666942583077462438492477317845181473090017091614235552785377571588581083859429503930326244016094381014629210390844931988005451656249055148702802997136968935310117995718286962807672989047488889851923949813325986335558543354696129354061170724907773777201180056581098059914159890834740452901579273559619495806952795891947716026212235929790352742267667712173653625977096040358058481577296615604016003753012429396522012808280939622854655951071648485120396187931233211932390175915522570378392740810874453671623684587459987999061638015267499298053216839940183847426067360725392684689872429505837434614435128275841041331710562421747030507991374919257199387196310788741553265365627473918749777249465164205131527721977232619315699613035214971421129050331631354171650908513053683358833034144883850213288082311860264986105641874533363509740142234811576708407450049090569261648851588898650613047337970172766676506349849882156047677523289546140526401800337206674822037399675860375307805185037662635048169968585183376202200596039704600495674450894679590188336893723502989916237303510010687691699590229790294990052328336311190350670178697896782597957689376708286283007323287542773592219534036348297239208146603498063973166266142822471567346094935708941007579399678911959156420812813720058100410305117227946837184368907259341848548039635178036489140054411371220181499546051899528061140060471962515631321258327625438151670859699085519663736991675183024990298973680874621338795099749996364565357384384188186320424871111612642846349634538395039463978795032580461161053587589537921974507436437847723754449503126531430640646198571376922901235704974268524111660729885315478690605222244109604649465112574643459231210036764317359112348513210729702291439527161698928777369251050680389453495961478390399335117866156939165249612905460943302027263552657190152186422178214375794309544709317750265468782408701779514467392377995546189376826277439092175849936498119342404189807963265872031267976740802867576214781782646072400287744143014862930124836641168036160558626659029728720545863472397889932275276547729660785120427176481275541446604097349780165909645182569221721690682089471935074301147518188910505682221827475929188163035265008412310996546998916057293684043195976800925926227679433329816493897742664341315522169052120009351445235682335155201283925951798874514192336140423088972625103718627355943803343387478828962526897761920393872262131869216184186411622177374523674024108272036256443120660095131048164012740581518098738014017349353503860930212433173701769915787610785955568995462398348709840629626597199928412754131064712161221628132646307553645183103235245279701636218380843207279202438668376040314210617521203209497277645913177153078216844677674573442570583434933622771683198265471376091435800098486422179063601952113139038204453564149002158047166679051065647483235502589819090000824110765203765559012951306614670341001395977855009393257048121685093719983234550187294814172604689180911347798585260837472141648619506074856224303354255628113247902626499493881844726056598014756891932747868651199331392189801253518262783351948881476848637823324161885345160876553776900432613928815283760955413379669162871659533657733750802969548768578920582513423281516898433827001793299703886834061092153854123971998060881463292753762999280072316838715805230354240269528681623168910673886569448641536798788197442826417698033164167722041480038631256562513553438151935585265755196847666898997931744941789583830706703455486290755361702401288578207813074710668923854986468994114531065125848536170773452562995581079727162718409914425939532411773209562494834969273963035273032255943732182526614364628012599990299373036503280012771647608581106980276442005956292752529518777523269806575190136809116706059385628046918370821335077215180362033916327428739756174916548430507636162673415274878080005077800480299487527093685305664903262709049234956346285918968632027929850900420552386040938384184815828447245989125376124301504418862960259210344515300980428355412769543776787441438798816238428275185905707689799911887857091855954224510500662606811685485356399901083934735637914297747513565902724273771278916925947673086393781074567089011672519999057116376463315576988979398942114550001109985786631798726462615317405355056346986484090404216351957135277073619593177337836992604698376120315033656049998043241284076678559884501355949057852709997161773498210455993672457945490788496437714055017325344128587166016624095143797766632380619120216968745286597722389925904062247436293026604607720203784225646548670939794303617889897268185961163960704441595488755435778881133551366504417926685869963104010243177987108909221802770765490929645093751416256367044074677716115385737681886621190192614478345676772579984597862113673942184939945089333218450430043416386912443625742305755116233751299563638375829086160531638226431226117133910480112817305528092312389613366248953877780278938324041148176429781456681851546801861404028216418183740271119408356345615787215140888607959486280877082788939509570496534152245271570732248877168721590289361348982296676505423302505361478560764945032632755617988317114745697727574582388885876094974943665639283923273090631006328324794705648464887814824511989366663894578069225859367155214765870296712251084222605110179073481879912231548916610682925479494261989660432643442495165577822432338409169648351522505999383204633706624721212539159198176530881644679934600285132657351557328758754731199755186357949278175456610735390468575169689254426020599902443734307026204597568515278208941009955320366777612670548428564455845375057575524871730932918480911855170078018474241354480890722740633393195605171663835618191598110387117453034791354236536087912103180406562934601094333826840236073984275576186248107498807861627010426257412517819318316381310165048331812790313799305685270166869977166477622942695259852616782117971278916768001006460241642094424589233018119053091233567299180302235646341038128114443511716274323575212721508340793158160296673111033633941952695682291004618012544928794635689850000838570381264167885146751212583285326368970285493738416900125166352103615633095947340669028760143878939871859143128015533516824294149402305205821654106285042232575489354985586695992908472911077587750131260285548837888660954742908930917953204300717543643336224431913421137716738647100584799878394948507029706363247780502731509501142028344374469493840180949971332326950166300769347747085850175521039039051476889021481433588718199957833649144486861975493244153353270386797339578625276257503778187516610726866679167685191809617455273014260572825889750148891787029778365991752164439849905837789314160745695999229721746207914423861509139090377922113003693183229515359740402665157840379530696347790443129444516723308322277310597946179004315434912766161775760735243768249082851836836176625350640368142049615808888463732188028721505840710835358091483341587776676411047219543970069469318493630782389734300919962467000209542818542152752956232191581013558085405530678594983338503494707353910635875856501659543397229163644923747991173257861620723094861681252002219452911515510304209638898416253565073814240486547193382256562139520347919491831286894495470107076991867568437218220601669333562740388658946498643968570216617015222595849493317326173641983697856552087390018263997900526337716158829667652918541470831341453017114286431638743754200898377403919418818873422575352110983284939921582137859968910256326875997891027705707433114191430339367973752040661458559930439087012508534893790054769153312634640822513404112660951653628578427909577428249793656058907315369368466707673538052603413222123211837165149530148953166265231226116160986729966855268037047884468601753213039557615006813921981083817651803454213179101152131468553135600366150015337793479277215657328420967843351364280760592141997859359725295363430128533063482363474848877569008214447660341532869640593933398671575056100779057361120692227908874189602419227441094821945347892599793215482958138194356531356324807016633890822448991952958321118575696309507289178057298273861162037486060594725628204839508222180502438998315678948187598213767129952403796460504734969112684332436150687938318420095721088363134796552063946372117529613385933246216831281697561300568735527496662794648718297427727296932478160056133791527342513547019787391220299764647242389794397686700344799064710109708617778344538195208342687373420784773078526057389035733734805873414758178775200850178794434672841001591708526553553390710430027790190475460080619175940844339851912905252048035525855477056627497653938140527789919739773466876990642644047329591577252786138223445972852941644124856160966367347236934944673647914583877571065935711693188961713805195331942441778329768417124889173587203780985786725388552879362335664284001522372309945443523861278940686886133544639118846715395757422517694572254083735378842659646487083151062061986719300327716377927872576041542815708512412763921802981318084697144203788836009173513550909206316162138572847740134756356093425607093677634225596937959597861022162482921130232791888788116585022155143468400480347635878185423916140427002870034891615911882869694115201097981552739133169578866183946611824304231457340505452832752575177811352236130279965079213247848757305452149805212574348285241435245655142376536506791715425528848705477877095558130673026277881159735282274286603164101271924216963037487081413816134957513564087083112839671926296892731432547057206681134900624694748808272398925183105405548443208025435424375040377482378307671453909742922322015726298421923713910333154641602676397853193869616242982912576564144224527579684788340464975258240822770972076101623662846616619286013490562004242876950445779971240705835070335433615688599212142112142645761354989983862792397826346848393904392969689507063411942560056593790275872370464722544264483922601992573707366318758283229228076003182043800595171595505288504997158769594894611527965220916317099426152517648297472309695976502035719858122516790099689330881704821152192585899529161109570302619738214115875012010142991658344201158246989283716926032884960069673453345419912759046674516558686138225059048720495067386002680211868897253700504241331551868669404675180208382562508470367130798745398457612780729708110415182560904971085424344061332387698094329956985808160537841062384023046767276524268989777280842551032719425604815722300724347241984530934816474062184890192064166267608241261114376757855992261620557005338090435809490244635509749412868847565253756623924578297552190616849133004144350679764551295045497105284669589973160689373212207699546165791306017103908868973793001418548607281805147004996416434376129890562323292082840857032864876941636266735675630604288014717511687810453134017528039345726589591116837577818521348903973303524556697154910796811158412821289782731910700180654369729104756806857141980740400057276513174777127826161094645873547246419950003737944580275436938318557372488343336377969407100518512627112455474863139946437739082879472155603353937839106533284422161781613041222420111082380357388381917317349431703263534089046762130641062010889730515015816853169121600319167766257185478343881643972024239064699760001126326979796301325117514234419569709787631114759010089943068543386788493739586468702128538624902595556722238910326630932421064390701678652081116350642897126758111775385815580712038775930838940905190814580675700163669711280337822410242606021958195896937741844755609674082088550524685240185366578742154417630937349482418876553966325956442085143320449311267459421283291067659175859222282538153271329873593256539207216149848205009589648274414235829684225518243476735000646977728127538426445453442669472355733994923660678126327114588489038524488128104644283555616023183429397093635128540583703149126090893306747629419356244373225318893990323985165226286806937792790765403515740279812643982899438188002274210369216135457591084877340687871251962019512911740914100663046347599594987188155081715961915156862336278692399343957031615088214106971574391806645261412339555979493950845525090576733428081802818887548517268039767243821592415186017193532747614790551207827072791025421442947392638785339228442286480339411611228620556704932213587574638804056426283964933843048347997255154211105036261345419663819013815090082035760649712709309796597902840701206149521627328624195486513548728011664859286810449231763773708015330189382156117323688121718443533015675683349962240769836244977117300805084520660483633212271903176437086390463039401518280071408780969802037986826670458733604484065557676008767305452934278403764884094373441591792133367460326980769597132008698603590802173951021880935897752653577034764274873463273399393436392899549135912973649954924787097159567486452468382825159110849038542341450915367428785607636947274998280033943487034729332631451415153042952909015416519148779150220145619214356948010544611692061164294934837213682267909624605937811013684269276744261696146766603230364287425569899078701016925408846140852912400390781382467420556236118556368403391913673801679987301393843049244958630893308849015781359328625632852583137470369263578850654665233509423632357182595612848535815441161740427454384883764888949680290889291335256690693301872982402972328529958622922862906939619086307632050586002161648783022127803651176411503280862684039217260098908951151977299224699428112414304003360912516812608062855629907089711900848780645414104613289282913640531629857692649392889563462726002318214234774388557189674961025781704345207161599000439243766742031520071432521569480901201277304046523954902012944144212178002205067381253353604573443203571177288326708698841030296296330626209870944806310009080567354412363342885051550749193132365941329060176801292550107573435285738523887538567165197845626383971622106278985472097221889600970698857782578207839852076322291598738707617373239688604924270494049592920949929252582815801628311311257552417713214954198758231033127700291422108876237392345949983946658972113307518256861449091075079141086245871394057135277910811717756187387567272356286029495617956372596862775020844474090767769696060063094786772820581329583160464206926119073445475982935201907996451372541086744723072529254169469806756366519490055459038720319207678709991705163579567818937835841030499743098994884869049519835921199545426884835678046380388507341301394472097191673130872400120414246229158824494461896041304557698907967104770313392956899463571157491044331555403432235130489395185668193106359078167462708573690128167180899134369981583669303530999321042739724545654782528486655531958713475311154025670368035366503635418195422875556264451937455193712538235393680309441232862833539514701808167870352534214529232435552479535978415493033204514196363213870794133787825473948773172218109941455932572212363371264466403498237752152218188445213023678062082074589435873288109440264908990946427044383777563362284831425870796383052574120856012036379313442356580626610386188590789029370349878740879261172703426625477675471558768800519831996682876771588288794543334467654653099312890572962660406834412268468427680722037221360510111338357196248335790435150414905244873459811510101157747125467080553187891011181182714731185982069276346199886701905776777323072907796661369281164402595626155975802308744323195652041213617186920404888205641029802251108809715173309924781542039754829990566461721289683386585773440386174472233831079046311810339175620878785536168712585359966439491119358101685596755898919618710511263556455611383444459777551867456615824881562164101523319663699803981958337578528046757265141476103953892581529113341811559854237456396334458214887892177252845670970225594146983594499103431526452167639243413106775074698147048893756551273072807625629516695650322170242129118635926583668912138368846340736385624195775328605892503647526630359669196413872661909356322612189742499618960316763600100985400135599785803065263328132442601545675792210389218521937043648666274877408040532796564080682781964140894302618063321401268355578397153398741326484589791288189414304873274148585109107220762599305539138236225998824398940006710468714904965909293720313851894740488973790305802479794526822161399987297271664170882286729855207046390975130612329398754088932246453818271351062774837611681339697008851737375001144967469532998899462962797539976308403055927532953449724479903321433390887069457169055218316090220075382899409664076409297371477391760979044670471786560949708454521429529180318571480214772186891385539415835284368266746169919615057174634006872117405168406374597621815142253308921011810484058160256341335775936880119738805633688154191040526309254916136776582318304845597418219698778460325827594473404714137080838238041667450437337696312966848860862219959635372665908343301407036505429373448180057291828655028404218821641580327442328126649505944885844914695502973349610665562160126591847369323664536429017623322123845728723095910515638358347032519692653180127689213745991401538709037649903024014777302434624784041250889803902237018666298368162855886280889029158894060742602910044670889184580336888265629350205409865603470562258902356330399238970544073374142350812345485066020073182886335999403465970115377757568558699670711045568184330985227479472261435647780818447166905896257346223506352221456372049097208141511776726765234043650401342021287698869775126788065886245575742071838351697130453042530951899955406447724361715332241670157348116820530934717360714081821273748223583916136903520966778895213184287177930264598930430060184328296516194285216352392858783895205312541923597795555799952843292051532247073046672560974230819152121795173713555205092001815091362368198885529525044817899401126359404646029668275007671351469531142386173959182212734808040940254534400832273639926524644510767139156121874319257952498484630083011167962752467394804817783564770036784022504942565029239198424087677521194794309641817362486750658203494221272718481327916193435806866242440448177889528115414455855662110798077899894271711774490353965859290386411214353803832819288363682763561360532888363479748727582122860981222453561292430843794961946035640462307623752659469507569869695557786422112259231092990118880992115782155563624318078737962721223605008843676724394930468946453662037521183209600520100712041750132629235745573804589630659707741321637809702366082620638744773757123150694240936281420273703063804074946525872974572907808264386700525134641068512565541571064097298680313795162534103417677484697548108093306483748526565268020940835956817941317828931789899859234532266012838910313669844270779615123335153492307558786029122709655131562827250998092667975438107305264983391469599366828676735028315336342272474446057598253322426633234030023887153600097862635228916581341916210362530789631413944932523755190615721089400462211455881227848625794311612976053437078323833121022189428684435031662238745217521409734704098018975856405488576870888269824054906077998215036569037107088792186913193176602365725599604019789512848830475364075935837098123169766438641766320101398567261805193275891865735412122647875308179100402294477777311916064973881806316241836686337281751764010589917488898734622980962295603165732024016760259315889521235111907760764223619931012009834730212135797828465240065632744375319627603159967301032141969188622963945162457779652594788940137647969113095279681276020031119415399016766377415248233656797332879450325677342478880565431314113790614108392869145153670036450502100338274845296047408617105432949405310758852555390653904838266123474192410616247362765171332668175433476992261130087929126933497913816648748850648783696438613585803323833776939056137869119974256366037465137580901007159095644478553505016649521279624944789579786477444467602656408534207704067905003687238006101945105715062140505212344617757547990219786047121874177066417779926631061815963217801163914208633926942520965682435444963720800253932099531589347978156985938025192725576747121544433331567222643854980008207555155082499893540104978063278550229225952737402413686566074664145507423050950224260549488594451130228387693941726533133090966203045016703636511497429598528227135446062667635931943465652430958162034444220838597756829855970633920504502612309079437130330819091882081213571650331404363228512649360109569110825953683539320359345168518810413357601228619603427575226382912094226827862247464679733675711444562341436914791951581403540620406704240207574981540044768411151223220866217569493191962495993046169797986153577973831726836409104279919225758039859955847325681032470166360794189470027486120946882967198372000227516192608981937982030720282036287680194384988302538591109021798843444441872142383067686933213534102991284388492412238642129196545407452838414897315792331504142274959483762133611044912246358640166360228382194417508730239828144484927815607858868451321377035395031642679026681183342026998225799060194852967102791155646492952915212569687694639970598551333805651194083560831242266965987528066469359607336739216489359757854349881685199769592355197523997510370573596366325741620440975859559235918412900246586307652096013495539097531859709227267077521462485915954900964326426811046588313494669342112447987144349441721449950867339964820750894691463612040315125657025486078453086186934181051468922323962525797642307936719834000265622533177264867731772836924956665706762659974828384952913336380203548140045501255347612043143357827985702526713743544584317366764314904780172805636171720317368091342922903617148822377491954330207380594643995437895347490796972310144195622787928186257399429176120785954211475839568291680139537139868597032525913983656797671073545699286089544475672326385826832593513918103158926875165855598216686059587048413140157135133621143993271623727832521797943958709024518954504947493232950872838810613537753730818901058653449733767451247358019650547722647564183334174277864918649973912105543788997793651831849758612102124371102310915377935450831091329204350372209474714286927802519443499126000468662748293907302930389791920001992188282077074375877513626107695501990046999535341892136761404311761123997640336677909234258646774564237856130882606616550407859961423826926738008660911247893318012176815156213507287491509787765965053081099848401569147260517342936346365161826178153040695114071140864177436585739032140280903553939732196832206924126916703748443283204967386008281386586451345935667127864229759988959010937303943508914252692424958546875158939506990206212310877133999331453005747224086041590303820429678371567400832010054612970104534582308731123085818673332063872430038815014371220965758377873054842608214802494754610969298800613892654876127546700221574148985363458888538590172547077237194752088812345589201251802374144748922298635576521050039699434760634853803407246681840221148252122844623603481850688103068076338405030726759169719369160068236671012690922098534422458915184010156539838415943684647218309395263500139065757099589810886437714027014792822104868856589934739691384639672098322601861327999685704520494102823317710835961017612719100873464530118038909474666293700633767387343119031077825794984584380545621343551300166026128719996640191368679761444477458855301408869033669027113496090195999538117496420582294966497161618611559193476830218537643724715067404653753402110659511251340960285742712875299711923386338824836574474421450877897753011778963897471542231700321587251134748756606763647231098810425697949003002337629037140679992881581729618086935808692211467096062845479627743164956159603018638740564908117210752618726700518320049221792717785371708349003106270621051100735897347650282510384029014449356356189748949035007872673241326467422426214372285893101600217397137623687657609410699960790316118761909301260683703095224722164821692301647121740672436341734064734601767153238273571723172892880078334662938774667799317616383083618487102589473238579497052591592131775802507526400674250620445608417868359673768738955342419355034029262489530433190018154286007854564822876880194710152635564030673907139176370547858179611322307880031956412792615618476557433291497608288728257763118376799696404887755207569898372611679368803963795571703874112570486060624490196863291008263531745444957834962704703790097720574623650074481575959104508868434845118707547406953419750695269123938506237041993386853477225593499188905817827340178608663172668084040489766367351938137462655152462865377811962556027441147561464350371116460708977901715203322153375085662012294215494070767753015478789491378465385533702047705014959168467659306705200735151321919464095296169932437173659435161503345896404357742683954224525878296736435838943780074068597132759339341812091256706758593362983654301108353621609010310963603718160871375036548434993951979514868396758379205417192588594643641464414471287337262227738810632175429421543636217371045064312453401378917822111581993685542997229427778783591741232277606159376028280303608148339882094922888188293610634841401236318276465299313084035608370066834498578262085398657744708351301758411241927151419885357606110178791153993716161989618311169400155913428245684065791685646742974227446919940914980779421790637234806125895881967408439385011487437505436108723799863243469253241091520353381210446919874712304790064986600951429764189662406235501405574244367297381500408061200350563879154896630240450291963879555788712543131820970661224967822506521881362567479447222138314874035585476212162262282300791867005410545480596152726895538603418414216344577853855655441042343935344855338061480861564474751387320223843565223587462135621752113395259630766213365523113026170970849141778100453260017125574843568575583897072363422663108431537534732899344542210180666302737106587793195332676107096608094720616920785409051924909371905362021273227622321073340338830238894494518984835027004929966493448283300640374237409652092864241588952911592819735619787373536709702211569116976353652347230979039916945832528997625649986202926189873900137428112421141041162521461646618902563670998460358982802795169307917295719078723166306783216791046384174075702215507627821515716854521299282239788853825248581070426195843497915206171643725766433710044225258463409525980234650509843709398485376417334231118467450916307870841284249105619004708523712193862943665956714256727426855570777876460663387257136698509052845170494546287127255108657380919109571517525374290908371113847067056931973591604699453852625439915143032552261432741911136011844002796394855866429995363543042791328093409898988983628271210328566884541197242200313127799083862902905066703637870353301295174093920408490249156110808593258842804734370549863288973764748169274642680145712438327676735654917676715932296459785464332049427897596476128658254412143874542224418850115604638442836131270715906000263016133112732027224610290935014811809128566782362184950387587538703820531668274053963384541429783182546028765691850193517757181225477237704911886127571202088575727036981138974786219191532317634989223580023979524239702513748700964450548971198794231634823619679796664830650453938403104534244644335700021768650061998499511034129339412189000360799335239105687149436965373292421072257350084337231894333361502279177837847045057147629895747121137718012389314990069732162443720812530750706513115108757375471139492160695966354510272920662262011947333118685330374787421979524641344910966099487495179536352773699456976816330434076826748110918627353333939181915703145324315000333852031152257698838048042308417855682064305891990811721064778956090839494270083771040939938991397194692189836529758116119985237993900543565830797186662551650226301182819600052819313133935781808181787927109257983909300507403118507007323649991644864089801081829573887655329078356444942907746469316566983171782666955977712561195485862795107155220350021448197241466420261695571978786356710827992207091245325824290342075481795376298090943845388497924965536229533912900363810948354787383089827678802483126523815020663362905849160582354127693682403240064155709354044481673493584965958880771155537228654838154479206911305186431455893339177326106550972423057691782421179958049501718296531150005346944030700106198288670845707425998481943865052387408204521813330363705802309857607172586580421131970866853433051295408432702494262627590900672015175127728275314762278463580176371522195534442754607531764039692042625086696793043340663359248005710090688190786390915960496416059804554893454104091093726099840454238426857662600382921024654952174804840284302943578590196855964308395013124331891957048126333199880153591448902380014633681863914288578533911102626828678784842072250332200173712539027354299582496602613994058348587779215127158245602263688745554757063914684175213695252511956984286100318188407289830207639340448720122893333237254656142740807680663708670944778341673619428257103070809332067459537455082625177670486339651164631450742346029769466013362971326629289405840479324495942204793115409681843179216451093089291935750952238338192135698844229207040483297182159151782518486115108514332001640359751860165769688839938475101659063093958108616027909115984520852764068446575537215032222460849173253758537866377717996584998962884154189482540317202538229102049083883472560938246110959589728014078759129892158584939806678221391470020901928502152432037882918393676846239097355997743824940835443188104055037447988338145342456472612639425911620115402581612938874820199014396856842284521995302274203767425629333656377252370275716475196187451242354397657776532281522612771803091851572328412683409796723956012962024891521250279254235628662992641892256109065241010782372154096342729022826464514544270076937651013115868505904286613661580624190363541330051882076407869884907727809853775279129170699036185897721243478162978461008414880506717117244420145481502263450531257770686986238883439928666552808550472558065074236307229863852521412364574646508054972424936046685584277278686184497692324913913508116688712213064815855952409327149457290261643381806477312045852204919485629916461000701924877218228110273045729056506244292499916374086259093211901821879274601315937730425033928045624356106291358590128963536131034800257760979470155012964482653125467460690586213024853390862072629623908992996201701127461014918870771270823366546001174146955313919146009212851005297627242947302757137568108123835066613913579873798417721712926561991201299662648006527907066248613591485625053680588262308190732171768289590462636600555832501353523208724247012479770097016066881619861391073910014426141580069063370841269430228615584038570408701614162107704124001284067236759608702359140552271316526710943143324182427776911432992292285223652071605766740592171953671559818552453915306618787455761444823502639825507679209979177611698973177823302711246075004520042281363320813306325090270646076290083005283505571933362739676476976881031889335055631611567129623557787669056850416503612401995333237344217477879955688715441682894597474560220669801109032558174604082100778088414810381852795920893694611043563943446698153230446878552632111405928342638590419650255586804493958179771538465742012554267328060676383748272855507142294848861252578624834997411744508971138918709426806640945444505369011818496466154897915143207503132481969519968961715448935985422843294492435108934940921365102973932494098516688633165709872718499967720922174716113530919297379393028444366330490898923576033454285263866852873130075238269699163768115521441583564647693999407594468214067630368450825464465509925069300744088459254263498394753654323825282297632811916692253391891663844026113198276364428705642918674362858599945571281965956973376022150752346163132929392848315432632411391284066007811077051796122069800109629459636261147631180901961915634788666656285742125181188795590153039505217688149793416770989852189272329615483113466618645624824463836703310412779202302849119958935829362031110304755305734149657123506474037965987406349607525820453877731016296085523772337783002169171680172066680959951792474409324686862914981571518035058281387733314447948260546878889901121692823684750443456006890190758107205795806087118478675947858101096389382089891241773628893015648165088472677474027245278789561900580575078296367271247298520579159689646405742861316002262294429853324116290755270364671217636529657319018191952800967642383236704484763081510273826353954034208571655201397069379272283193274784087022779392606518678450603740060899418812360763874839950268217152629955109788205673961461033272589189662499334718357758717773115310787424676009574869249670125204049574716747626074876126100268442057473915982212057747281270576028960947447399045509370440922230083737411227135377055249877793891969363550462045567967226475463242482738156654522403718793868473128781851463528200994392647834165021117757910730244051417008729126645497413563837030471264012562047680037799022792301100970379866838471570629199571581673808544811404876434244672448596567870624221140020526558326983545398821880731754023094622323360394113868715344666304133447232501974675261118989024586381090335486713801320744322460949893034057134743563217643852955635496466557892903091991741276225269687082368155785734920371282481107631210769526140366481955021406121968814524315521117708660650042471612900608118115061030788623388668664478930206762076734905660445095948737356891831675838084960468068163798704643745859415927594073650294788084317077092574742191741861723637664641331696254469718269274872965069831548636814337781126275424502706911547148127991102017747332903097682169736916366907245700937219705080413893658334154168706731843158574579990522322884729362235277431252013742726590409975349537940737235784279908694369481700615977079687414146264946970367755198980883079416490584726558904559101175018251062843383789139988254093427020960750234079963664414139616563618303504691432748359701494709152961598176665532072857653529956349951581982845742333409562230856772983810374110617215887986228923106899870145867216033013107555693529098175308795772146374794959719471279854842973457657669021184217721525779544146763378469668055087482078144229791262382181143999385514740508961082657008301604191948953025872945067058426651796385285517068621548290321597309672623883826438576597526445631511181357740164302945981263877030327583492332365605871557281508974900004233553397884696899772980072950549629103626648686417080554362037274303241351092686145370401511613992624356913990348661096040703148806721897247007541383650488917305093927547038689467456247904329397379318443580272327475623679353445525371590785376689157228426898574040411215672253554226542083483537423528268070130403532632110697052662020942709268376303663316743606737304477591277336988427016700306159726505176948311238009651811424656103390755594429462461682087130218617677125529323340113653714174114251377796897060372580424807554932216857362863515093447065786123038195418039924075986052887417047827148560733438376335674230961959155817948190686599112884849349511841500428003437690715252454006976584051805750332679928477307222198686818035808942765968823835241823517348362086615934932330428884741485706286937144139593420222110141236003533391878276430787200320242165282991790244057725666406122045259012023735428728051193155475747986853508366802897927929009017659113029759042093518193762915434150662456039046751314665662159233316995654966869565396640781301091565163585818010179209602090868439892007516040222590410539600847095828123969744248318004485270843876711110820937293552814460361311285343209577232318728947367092428105341909542450741680330798182949720882075857394611502626216060809203512214419714813361580404167255056813211427886113225374858150842357527538800459442748407997816970773680772863037354131850300908077955555702692152078036509054624227787939339788222479493903089534486887790669151139279674124119164198277456967088501562639916160083401225157065797091718174889232869557814161704544930261227926272412163720373675129251852355915509970612228353408881779798959310224846233028379766295804293616185027536964020334170334949069822222166197640825125109563605789157339927444237422213470056401756237713490511123440062485504648146466787959230610890166744732615015891538400758556322726918875293409896029249003827510517640581549475376256184944005309104582488980661738439441214778342607119558928618061159007848861566956985404996152934186387459052282121153759520954230217144089988890072916683066268287515978165502564009261013098246223518868613487093812990565097199929573460647973233180847277962401056048265450372173126063375996091412841881642238944989519603461581224722554110135913655177622248942838406006827436482769551546634996906322645596897442024815381748206616292655067428536777600008959770918840704583297572151947272810798819888137526718416915583471727889279654970407540964992419585901477792708718577341467123511456218682536739606135124904932374594850407949833009456992032911650756119929869343484410448687755222050680143958414403370881811270924225867336870781665538451111777680626565551846258010725876075081405129636981521797510308775733061699996038171877010133966783140860650570518419928655356722070082261600364980727972779872747600408769062503668509806777759574136425005347979686411042126233826982458418715931887154743518953025770912298292932376016991279958697638403271818013266552480227574842970403326508424425912117712022742436664480760977298863899786336052591807818053522396546656473477268585571159178523516052574323679103237449977810078330804178255549369412330627387515008653449700676536677073478372516058220471480011786308534627043723870917364816758521983802808457371447128359041060416319626956709176197923628552053668975010481862174083434638941909519456307147287254064982574583835133014082299969138688472316440064385864846985729059555320239031679062950987289043206596545029446364372410990146583612427432307121637507052216489026910755673310628418734783208486839386000746408835662832001146660366793115656249297674256298372211085674102425166322237677638542851180540818388517210143200475577706944651657721307763804124699079918260307005391440564929174646355313576858367109939921484859906354809438948495005954821254183372415902091582926771625087607388456539613558143234742371633813375217005260623632038385264402269332625532406349042043405737040498970198257012241729682752697285972320671729231511623372813762469575138611683517295277979451684907303755659434079253933305389464373186661651200352981547660953909540098033716708594952993218443696395006677289576693916251695830586751115926461233670946314935973557392606208458965787124643963290420072833413110241277755337423556677819610260341428914143528690515412271721051901288951214741866207529313912425557030133896219808071844450652432840564418737226535571096286606126927999704432796437659286853895019763231610601156629960506347681428109979523274392761454732995811433912643931836450340780027901862767799855895197673663702197416329754706582481224799734394609486826817983589784526450668771416455672887457570240798722651117040383475588907527542746760619008687155073825591659668903163169045827169388539530170104596863235022937778308075241355264093693817890228986970859588349020350113620534984635572678608796497685130511952698722985518271402328979940945099996712107949530955524887937853154763482910262392402525033522299295473257560861446204175152358159092570267140539337400657873617562995151137162155096724248718160694737719297982024959881289020347502958373390051507403101510277104517571316663749861293420680477293522294192038525809174680495012264716828684948100575261919449984254423996619247184108890663317583961025444230181736234229808512793333555453189762050006564834067717623147643207061478889184975057829314537848220957610145668461425511415599395591862254842012569455836876947501108731955898225430002208942440240552068274169053351741209158196840087147010738310909293263377838987561255619667389604629627518549474760111904153546532554971778200327095159387098890770222066725967245993998976669208063140254723623763417352254542636095852055913144719870075758303026532620831398383511830275707115974307777442769143093832410861795302709268468073875122792993311833825449569603144773387577427844556695685571522276994341815936913133862283184706914279307573810801036588510570368557854035536005127435444414763540787270441088883856092735503865328406801815279091477729904299583045857784067255135364334436749197273030315300525688207571321944643509584448767527727666207490493515422161206617361680339404578382727296917922844968236832357835765880515158164680032781394494453286191513638415203921796250789399709315304120619761931561796587822499383608540100230550275777339237891050403221476595459277693383561407861984852409057830363208119922091035713847273159370204684331740599977870693160851097176200386806730628260130546098951726569476802047919481310627779351587843268162076720882582651194217682613656026114864522547883386116687141953615880907159034778679174433214936207655937267189589670329793352406788874957900613386219227878929976787267220868332306855560982945106191156231842276620537125728012611953044248845054275837648831641767820998431878177577505543076581736698444138947250545795181193441068627121155362308462429871214790259510769785036241121192931408282468235531016101059254540284857457944171091217759277287482345624633230570585553093405634969943391586445247602686306372738424082114586857409603870808120646011815336117559562518305676088162011876041192864099572625290503833841108352071266309796695277892484167345030324239631213067296845472924138836313019646709374907595904655263720397007198340831515638308893718375514824376369630879710575686576699397342863352222370855275020514446284746871016740363627306247339813779278509248230764380540383531808095675580801944374300489342570942544330665218307151546733753302602290082087487596630824289521132706952392847857973335079215462789277721341846750640723298153678300416934466274811070486250798910996953325989563160735746240371749699446714743044536654497468869584206599181677179156586647141973601313379520403513339100896095549876702381463025087734180775627797532430915381877866901885600553520541847329322313465735684948142570991261792635399901946159312732830035961968865518868798380035980399870212807493213933170828819024856811988053967812661490255371683810400712209219153992354875437986764981379997003147375847076707366804666401929648187298328464149773979596585272979088913058118962349000251007865302098849664295167150722323822941964310535016135465274094027339975627890870921298588667175442057846131543823700050378935293673681820297290282954489477591402137561007400088153681858997281620478498814260500699581419795438773286108944933973124565770193123358858528895796212631427581716002430749611069925127374858991399006214337444801179349254789637678136716491506718154185926297736606886240434963962677263730926274464410198442209371129638144380815247037746624491200875040772590903195436826194163057597478128211187314712498379146030257982442910338751089119897116713707738266710989595044959250991473578446918537556931626463667404348811866691159505295069626611935710777776835155225982984369316122997046849553397472271307810893683666343777766072813238493351255031903200222659262724140372033549851993809459435928148257899460643962751316001245146486215309993205590643196488396749543248983096746321408630204325257375562919244896583521684885228045322601003847770703971291979241523155449405775630081922667774839470168998544164885917327838891522109225036228922624533146435740275253640012630613602423894949139159363106366795847095040524532483297485231303131831167481952821419798267102096954453504104190378142445791765070319916719636884389669856089177124459149506668643291425937583176738892638388809135706557308616202379316718683339142579833016055083565118465396339880881779484810556730045787345440077687045856773628458622010081333093632875228992922846200552152410875277477350514399141516200931097936856295595865679147700869145513672520119498449262304041598177170899120428763374514417120868194389944325231168529676697492277149953865490114074489703453236081514340933123325662799254592647405246425895521588159879149018269901897958842226537872118928121942356278790941719970967860941442517269010244256583347899278412042922359593355045821399680535208173519681502385118735335263460776576459986850271735701885024641204671376086470866328903493670665851652030348261233149910471253064831693165997977605234711374991349632012357803458388463267497756603495905754954571676479085158742464196758658203801461454898024124443632658014838146678737753398917217648949263863891247238121859481639773960823547818758554463061027151674311013379040184830427761533100960387816561713697918703251770710048463892810195157779572345157184837702863247160905562152000862481380187227353631979264073792447062722978580472920041666069260397518887360813336696933288838485484293157810016890536216252064656905541594881233574880098247000354786447168350427943457075200219513304686082363380991278360515597161063449560093019574717802737320554182914080761829624457554972838942337095937124050813829223259117581788557424363909030965648711884021972563214808939353005823136646851390456280934784520999086916654550783101880523046556157946715756508550225431353068456467780685213877023053244533845543613325322771103358745018854353919213798035653551907370719896690646222559070165499887590380689385284695173679306445405213437949730290168185773620328051386440333900439891786228135090457255365190843594085027387414007033843386954972079215898877663704823057632652275373397084425718938208086314625254082047959521909236821720001012776711785050930174220629910206792194427914874582754231782346411275193782587579825302548838227556876166318689647708108135781980008828157626866441731622595081642021287083397492440471252790653784615308032983216291485611620233923199792821432830857348243035345607764274901511275020989410759554466104305799972880899767128285828867222159150263455587497510266859291476224282099666741081537388115214454663345541997256331319104118414753033355291259308298602053754772919799793143762582925092969187900939846626468948439304503489431304007075676678053147188324720411479608614353841436232018984563902439153988806085560836677167856313277852535398032524221165279815010068314643731759144696721185191314588836813559841040379104109926620426431700112552259795980950926202800286494569191297320268890478888766244394430837641349804016653567622287991757731262902120682944624484227367880652933329851843116813744793369639464736027307170775831627155263615810805762356889668697779642140428870245222905725732324014427558562873375936509785066709738493239171090244719461326193918427160468288045940905943979767764301764562584880398283594243329353821722796101569467274799733292421949145275932675307286709307623828987555567831860239169389957382275301670305395687325698931831098005402442585363790802500975782416621870108490257347879085347699470510234328471755147156013969711118607834993983133119677943353396722471697674739931165899284996707358956702644908408110898917510839878885453242048742007196440385166644272839287973447850806871251965072403559188164783560092171855384640705902933299564161600753390886071353684478296862219897802798247758719001544387244850917650918705449819671376896996126973164459625811387733534567061605776689980579739608050177694837617000453711483009471289370562199562824238904768971683725808955635851912867521107414457167213610007321982412139532580283554636436969339484253267726476479513749739510862594205939532017171717975938098827967240967461172535840588819954746614892161294071447690516267855114354196337640037679637442051597303825726837337974574714471449759271379591541240708383958012094122249338833844005069547410759579394254697754136669543384453987014858573558848820201434229958631552054717172767261388355562251884906306896131354530710742685559678266426138347782255095580989850170101936046176440002829157573132102844022607066782222215081484230256167597663815491983225340604310429724490128339281648567080866935260931960739315780714066981713228475763874089790851337986594739881144843826329360730142274996647521166980431315375995919627972639050509686406917985957788310368251087702582105184168117163167402053203262287131773914726699390660743800784903865019383688067588903275899688176105935598991419289062524494661750272094611871947599312951835795408373009533930596520490431384377995022824249912804819902932583621172334880110840034801882087275003472905181524624388882187521431399004583056742699444673940223236520621421875158579050886226417918240955766605963715096222513825149000976013965615331266291346919513505731303751380775377117451548696862539844101312147651419714998549223501906839881994389385468876398036324349837376351425722748211998353720464412302914089656292321064420925277353982712332656482983472195713022845914419768628881934042368004216256112716443203053824090877348916630010495144301973488182052521130740771427153687550205586604580234239350129730298122227129842411157198293278311601825825200601858999238150877945058151686303201995282070201289052327568707376394444315226744105450256531804459205751261138229444644856496195751800086772267093616419496000688009685636926795742642130819775212575874671680646995343087851667544821700744291472544675277334855868234130950427225707331922877845511362232470545074208845940708991032477629277968437429436432519867165250457897249467338860504206331129387228512425315816485410176317064602898987463979896643240306664131035675565462489911870709851145038618646125457341661087826434768841277069980227575534243749846019753077864835117718452768071888551729753385346323630160931843612637871966094742518114823172336502162243434690932826666543222614190672981535993997696397304243346144856814766449406558268512494850868833797161631978525174241172718563982671871539447139564726427348700938565250709201994288486433313715877643445831377464031457889541182487470812683451965370646140961213242768037289013961438473196966753469149604554994170035110431320839654440821342549281982422012406576933924107526278679704269388419277757830942651821741057759045092147381593127673349555894747098490092592116800430064309163627650129646062124043245429822415712628018782920481394023125650391998072479295174524801670076551539519347882263029232410303833458383851793612768057521079290769088812608802255957367759293453911522363798186179980756542440779430379176205129154450866499441391998783930094510861573683194659546662054132570281002883549008848132328375559210705089370552437952446910984538561896460701988783564910350206649525882285947816823402041827705915794365477509152951267732011720684105034223704486526465526937981177172663237126621267362593765841423977740410392433944278356435377045018140914123115098437227394602152337945709018644871251371671528650635175573022828986604196246147176482857369118449224577673528718864291738298320947541582856818359257716810675522558463539881534419007636838108854178688766332010709199134325089177939305972042443839347872088956928863050415538699560960353552484986711336739390219861561653043686680245843745569987671128944988065914557769891037507870723115359526477792843070140899762342554090022953285097962225373327959587291849032357539364925263441389593719211913578183132787399013313146568298768097837898528842476272765207370583875819810656067151267405762354148766070418693726897121477933020961572496860909523346347663500896201506123152239359059119251504983260002689999716313024855314334310730182253973042740530496109906682629508580117048316712818970196959324955321319947994967902775350303488123627685356128990663447316380630905811166711502215238603390740937780391520370340135967123454822603730717927362994655766087809813248810113863139884662320692280620156835477403828262463514002151393650641766560984948003832195679441507108398477249150602295880460616158547078661609207565035434792192201070501418137679585327351534750151027043267149148920041942214166994011702761181261727615606882486669211937427583581359061699412183582638420508388188236751298701707463290377293969329844671019790079191533380317399970150919787613944293334698078701417891698337976593772939103703130071755615371163783664785300277416583694364338027324900953949085872910044152762127665599564156091398307964176335579431184967205844707609755698441038992729643337587489192704256729697267182796853209364483409493210313526203019145152061471684339566871719978546415394647045547730542469490776534289768810045753828897575167872610382817506319413600293669294631480104324240250257478299545877756894857827555712797701254371378492628451631332367821143443644800322280076880778108795791199942851892162824771204305124512038605415041391174223420008936735860978756857724484298535526971603840948580074367652929453005789128268478750914760575508813867798873881273763202182676530555015975716445974947812989859437720744179911218740153981063310905209919329898864132586880100253119703242809321403994916961793206478976556422773199723684107013094614392419593817378991055443512265135210334228680141209811137285592469186908917069130199771568710874848400808292796269635643944604720178722428627942592721176348390601023452192814562367454852849405519739783294137171634086578623098167746766618553198286368494122112675612167499078272883873996294502372509981976311357745780653123488831163722755750222086362091074363966268985197208436690169220498321924815487538493007591838445176094725798779201625756515770388267216222925421405982148672239809663455995297579899799779061921125305720014226831783302910535644711280601605520747898771621270574249930146400748083631478286018666659605565040867840795885149645775853496219090565886134971579712472913634504031096262278852609752430827963904233056216929891902278026840984765361727852219494917241303825913088735930450259246528692598897533901598073127717555792278321041223459048116914819920340105032312785223641162896771822815902080083498851766768929626142969317201858364470713697605903956044918743276671212108140115401339073635911614611082850952087815255488303914781097440561636529835095232590280698573632384871742862733150465105960891067346416310640519722438648333052780467937976120521217728184417806592137907141408507507507716608671591595586909583338828935695498411044979530498890338974739272320191151648510758780633797413475605680378255472393064698946928769070097308369074743868046983573696084557684622500775034374550345203247759687946849614383767217256704744834478361290976818239721583121971762995689662495184906405194735607708827001970601679733273390132968914599997311709617639147112154784227975958283269591767286548933624816895237271702728999131524890699685699706604918231581299297455647314114710582806655239756234349443520907461576495592108026108319009976894058189924338001465710443459621235576275547279641064718198836549731305713194709359225482986556459574236085657082544608470395121199103360950312530593079025969374163888964346472791985485065505425820471277164014861906144183473498071881625725948051992015771830519974755839085441653920373478561636688098981628381184744476862179784147896206533435065931188471836002827112632437774926427914740169647171997039070594432456541042809793468989958621414647214548751296696723262905467179562757351277945858475907585452827247787570897957870059339771924411917388551179542648036438713873811457237218763822758804240642079537599009399763186920932908890537403026392191879718307745088051985193384442119758829975654052591116575705065901055335106265895669024622439524773701209935895881496718596235240196142283245857968564515293313464075303379735287022832280053665684642533358778774116035202684084797120607974755853224966921493050880511057703358503736673351947981884904368428094201757514249245415274512393051181458436592264387253133007290424649563502773258342583755537934351531175539079890427100204703890094170194357176823451988237429355536585111662499269839024820874311827198429734375487206792341474440000963280403623110167113542799477556226602095561737752027611565311191391272568753448545085413309656699280150158293753397388073549738787111302916399255133980195117751851420453081317273187671308043422733111382570348422550490529841429841661268028457986462290296288704461009125771322326796010798380607083763580004812194508682436709444668969800152185614431009994310276974162656768159738868552588357065111201244273015532351611188666820506704463556962764890802106751002169197335348702582190758610177253971431336123870999630155851907031483127047349212201993139742588046518723306925631896156834617046287612102566063881131264910403793066651026263277588965642099490274165931384449443163469205844037189110866684543802369315778809568778945053985893556648166315786197241692553528215258575346968443571874413356033633597449840817189569082097577419229542247851917625548020719826046991254294714615976103863678343732371530834497364811155062218921634760992986942608150903965768299714556639214429417380342774201516912799722509369845747698749258141032540677698558833472054706791999260666549354632973761842276656430917237534102959311791362816120839740457760195470032439338485622930809389996891942456759216773527149119090556157935302921010166955345148578433782352595881589568575918638433641358941541020247609920277366541223703435881024929707291094852327789327268360877383916235515110999950162098695017658241041285517907898294995447486149734095016004163699353202650263732320781382440580014987681960641032233669282957562836897578548603922147713529606352475739158449809725662608253951507853582633197428084360502472818148580149065059608838415302698281950317153130070344053399139614416765168531777739577566258906272808463148854248486878661899020263648631578513746377071204308262752426067329584600759185994727921429499867104280192961493412778171494542203312136076693091542982154422032809243494938140241330312293850154594219195904288938920580069516593416332377458672948309436689181225009016813235691219956881299799944713015660963454752285131193518013354690644662185095578049548997193116651191470463379564776954031853987751431083647188037129537052105015659854633960155688384600619922417789735528035218009404785520503054047200629669532476011652364810848913903506364606280601920906892028944662856710234578277740142169851395696414836088367881276625114005845233199377752315108762147735405938997958087904935527146010566025999094805237996863391767024243182425769690216155141598943140514427215349799366401018467874846480465444946970228940782676207298296776204096085610199040594093517480588246984560125171119627917797780817108617096593020592514145061332878511424478616801644906787926371842155970613243609814376020543443377287094832153630300075495760653822102930451378617030845590249231874281623945410220591710402213377357806560919674392289435532375478053523064705185399670611562988107817133015544465801712001838624474850705404332477874390593107082572089827889093553679803818249373758924190192467025499965786339202096679552500090694162897849726072070123683413771398475531540127523965320692871592012083230422405925353134331385412119179748870919349659169953740218516188121559445995079465884732240457865137344458641294274349388048696541933186266942769258563633074990298328431270617474469326104613767018283015761462691290382578302387778337316971805652589254805643538131806306048564076971083259268194440156084172000594510189614164943051579882460801073905440451603618272687936906820732114257913980843440316214809822352962111933995297295849854735125333370926649537676344315325490927116541074052871344688984813503720404810481249916187114642052172190945265683300152148196872861018076521207802385591204476139261969860050283826230393802067219322466242693060955307005030589092241821676337465466838709226920670350343179279557167179254061593991747969994364015023852139810637209647415039206724569994822881317481691819569908702133261165615003527004130445531767037401922529531071984135804083967392592894067144430425078916450629893397603007060502314706416334531412138474337614934151957587320677860614365748777060539577247006940018754468764191750812536331851008447993074622047166082694531676235505947362216397636030304683368004952623530020440177907318965769149772665438182385378607743199411800287387295362359322509330028178596702820970735139039601716314887191119185657368172421606534530556050516514329444303150084192818350427253771343527158761719871482004672621652110628248972729406473023716960276269630518921338079533947355593119338046570717880620528168011730753589811118674933719018444766368239049160665733631905147119744711539306104149380085273308404574207947587720293758644621036197695979742712754547569810173653862478031880095971086749982213721394407451924212463025242829768938574279684634760505626502644857563783147631568645822154316394054233213567622867789678368394164430816569093571622072345254204929275506892470554033088678634135602004874618137853782879747223045538742735911980708614773831648060650952058484411613134093045852849503449462648090945774298433223144201261129728387838829606069093933119926305794853901500451851363243383982887572626658766679729525101581364384342323329192097811504491037894540425113527486108899921168030283565190465545384216312078414894581331820993978192219476502852428543815728276611631423666811464208549913598633475857695230919859975294706903429262759571152753774781006075183880706427406607522382449260530976687695084119439232303640098229055021589356994650962960579548756413248091107872610711053605999358860815443274169770983843808396633206128137432157066799137892840149446364759407258439271475234003326793716933548372475286817682920923826895874986007452195862688122432649484943098372491779685715344932056345901053897310007811275937611022402841160929527012156586681829859519726143573921612988688508189745467398269219343980026112278651195368569383198137566721334518381348834241275545191766723041152837679289257203130428497698146219392473564428090164500205107816272210630108370151093926670504836798162105464165092123758549761571199820656649443818745781047325450263781624111947077250127249790566860129007291495708480339104936951234371650510217260628776439081696727260287730900809060886381084192057466498527514944334647447651557455478869403346547748145473857885004834810015988113088856897564548456220026084587775558448461035104194210761419349682395079497673861975171738812351564019719331241982388301144395176189853805333105043583491190690069496789550300680766731391870711187813710751846948720992765152248286662802158369160281150631566721477691086263778183740631289553216940386775669920024216596019821648646095645677912868501417541897279749332413153757954222904489677733968702677024969716965613358203176648780136211980402254948457442651934318735717509743587747781639742402299107259540653049861024681253316311690294314222919223334500298631673795316613729836617860079077670452669686428855032400687784957047342824500222088971043339631884415454811185038434058011096000061342032062197841683174371560369838624368142094859032727503530021195033423115281769012159895307039958631799625176053349969115331723669213887770537490550332956139469653756236058689275424934749755513712448694219575182004096558892242935187227266458608122204389237320704130992598624336938164537022537706022716436959816788441485655348039048135737625271901514785814125320860394930670874638664341983347966874979849717341371336909442629877645831838614143434473260210447184335928034601908733525924668547956124815826694068936640249080034186105508647587254905207213504628470000878489840484465270463161992805261682066203174564447612028902529515754025130949146312909081617948784364415415658128370609310689448471725855899717315996642390843489027835392277089226119520321480576390922692384954653096474717691843067897279028269707960607428237298307354460594326656119211867262994494396673463430302762597548996709050430906467229831901796555314474067910983397656172019421952565085343760546760509687882188297594221398630778287551214865623517068689254390801936643220008238296586601253134549477998259727381309899680390915623798052294535383959392611667585688404208782789725413616893957288048004555083448193966533753932939011403292745149907160775561035958429208580614105929064183756590304671196455146558848212799206852014200567168239634852399596121442390309568952330551009779316634654587666736979064799922588582481874870320612427835881941246510231429233581299811683168164103500387759549257874129297504129818707107542202210766876174304856738727904348402158682247414941524479951997549253987467484902617517986768193696425543501330177210750286515533139562552162316474925199485103239731449554007706779592086036213045339224825715719166459141553420122398251679447954846542239623826373214199502017995102986788560411761734554179457875593860743611413566736124915244421450476243648684582370932338766948909215242303577756793996273484189341362230205180611302242531378153955793642835047021120710193850390757282924514132861098279309462071539458339730109561013772310490860583611706151160604499426425356767422948784687307149966862670833358164409613258803888707335514247825635965692775479901139444324479121170424402987424519177716851382441237444078306142389368677540099467969928493890715391191222460240312905192887540715063050111809194957462856066907852767899326347513498572874564659444099670455481461993375612975278286622527905523806588257963582275000202762790598943661594858959479506989111628709764920345162722399878750393758121432507782986359160022994757869710601154998265768863898581079930487029201701547480863706301590548405273937900920935005115385548525380311705741544576927095768534691387446006077095381859941194390121489723053718531802940240181383055548532586978138607789610253674295473134054772253086080208947313362666719938087093451906490030441564360284998369176034435698961113302930199948915310249517925832431176494018964545479971730035358123536017407900107130575361749310034145619651029722797751303472377022717441851856870515450133127773084460115870683742204398040908762147593200278999381082163484054187095943246591142829379047296337821115817581531075452765075122779038125376207198584486442070941545550466107168228084181841727546957199652171869754599627004936444986637516472028638567830726046191838157120603819146049711348623960710961801437253670848749300256457241139513573990007508727899597792427876663953127293189954993686462528134515518940490116612044850796439652706117959986023268678092983900474045210282882304100194679006493269611022088050557856054272595231964792888810537649495782256400196971991796601435446960404869643448191261937530866197548909711991275015810864741770903589747025452799640719553654159326338583430522381083586806524906205097048163216967369957487055438446997046579434097693404279352417988522397485619756201962912170109394914285995816481651809143355336091750116563353447627784845715291000602971772958802615326162152097035998922136557867851939497910973055683905907066982434902951300297525323615734562647679114704856554003492343834301876558168898052969788132287920146509936598229864740454026180619345408021966562719527912960505877349666696933787101516511165223974106984466693217078997948519792617277119562988809284072902580844810735315852530021039153790309359118237543546737711695194482318824658300854781456933380669841124304211226322009491821587905565976998312340358732439982846061213904866403991176969662572720773485625641057713480999089856103697645660002527614506484050778893763009316308959815635941481110847513424139267412887325284224482714128461466871000086290244146084082312689636292220019475170346977467390547666904648890617053355987436497856280186568755302628236354097700903294435166134872573872302903940335373036107591233864374728619161837038768040052418008895749107229966589296728756949003774355107354335191826577309227132178328528354261231819304182725075053579486270095228053264799720982083252547496383004207986835137279664009614845683604409927894302696922201039575965500410718597818066478122910780764236007329555235433320996415733664529067779970961329737214843095253599663384993708560145551953741642411462746303804918649089486313187214445057123999743651195515763638848460244002993207146651097909653650363680651302896140097838475134091324078128786453947549475434896402273961449833210524015402941847329981123693991255089136213206742810949823828025734653095353185825462319468626501191610443093092641819904576861806693108668183910584698506433045644732920611917063806235442903910641662362241123740703683573427253801717530771563533375525907937556694893865214922351936579321953544834947153746015701396434300695851327222710481260341449251325621393534519246809967206898081662643177584804300906824420380787227588922401573819937265620786775188703746468766697456569374660409084749741827061025653534313476501337462634458653123478423657537056531640157550150370690705945994568658782198943748352986618749652599225858081058009539094682987956582162992729662653505796367851267439551075979071165204386301183156569854095788007515683840954597024710775131874804543237700596581551288458374004243970778746217546980479013264922649625537197169050130316275385953676670555282051434528337048602328953373696654448073357671175105600531490832110541605685569829539000529718368497354026602145139218710681676069497545813114499663550511333512476392921718374482409617923113482892295438164020055459826823426231455233596932244961015607822991290554006827832183202291036664657265559239840159855086201426282321405207477125151070444401233779330081568947339575937765984627156966055146544707232103428376892400570561014594663855041252466958651597806447745902990405833635597566912950971155254331656508908801959679076960007304836727095821158995676237865930323128765706716188030589445470330964707914413777269221088682575064214985832124862594813773417429835755417942912559273013763082841207085775402694182885836598366197882037672054942301123909175735969207971841476576085318667254737087688184969428936453163555711870387658557670960308988933887171878701375937299220032524243852340742981724620423680983594538442916826242306472987760925955159261776958535529588947511247621544787128775681768275258329532244096776419042238502490584410612968725499126426265044904688693232563665448301031335265720545489826967252947883411118375243374987075246585738399012104403929219635124258843986782785224305170460597681278059716018166349438293967277669788035769231724869507900758051969327838496231452362784469660525722731234132079728522321429222929112588851515493769192492199305371112565510746757543393649654912954101038943010649171573482176989129768603732610956889692871997612286270073375933853547762971183633543885022240097245493274690595218369676743933323462967092504499016024154784451714016994214715359566458139229131223429138498114310874580084864709349432511491846993437451413225633784291677285312353610532088264512145622868404633567424616277716256353330098371067151082874021866889179094506356815559233735480236896181927628471591825978500414058103315122158630580022605680992961866743940220980937316934149959266490971041377828205913090227919738503973210581838025267189010166604125317212171993201281154984755338865750273896274247829124699804590161656069203133486143906063075795406116256937941857381399894790045346320498550606236416605927259895407847658302890613056576697295250721378952803089013649486825952935872447570236198916464903755032673115297924136289169919580498893418009424875625721152117344711559919858245222770182528738667356555770696242585579301083737788904759662913205352128342305993033310537427402802951258203668877925613746327186230497199582128506084409502252727499361659527401516825031081644708786733714772799219537088248220330505107094596456893188913191324910281615614215656268664470517017343370808452114239478705389196046865957002557221692280465738013252305826769180896265840250157503457880559154745263446735907489209232282831283926174600197461652253721724184985051777153617809120923553847340865656054873793500235169306675523893887430129107240145031944366423487772205689204692145394141223460053233879370327808764125903298640787399876774679400523550654922189084174401674093789543205251409666664013936012332290045951234502301267199377291864692366602218422927378876187063073005794143768326215382603619696310257438820918648584925466389482196038516207971748823605549495718914190427399933158848805062519633307444083835844218894877651773489728160002452031218636512555204338297044103364071278906293867883011882294448862171564815169526471019533077680149982770888983290373579353595832806962076211122145554150744521714915127980352332997538129948212499387313693643047104046832214684217721960950821178461380772831718388132715235885851471914561234041069053659313926653143041507147163266280457903335626651478763968103196298874452206893840102505738721886519618406477545058456653497033035854449516297634439863922704065404123167667705128933483803285691802869124061673765780574477054702520495637612356282858467018092161932663571128108797876124882849336425200427624704567473722685012703050199547829787485133648210219581148820320109749199641003723435688165200028874973443626434124030799730819115690833950048073196374941842761634431797886384826454424059248235943089048641650181286284193316932802797200649687756204223209768217887165018367024184040906400551297376394836869470688830822722369019292067992240377213370403142061233286823143781752739149819748649221382918625503931872075953498799459783035277485098400506775490712691635359426448918294267831541632999295403064053955621635471614497081806896314961121800340346677639053036319065237039829874183079264578391800845696135483474527095853647949430147987779364212790521965323861328106511839148067273661587559971646007893346962115109552673455234254216928018506033596076182795920606572525698185570570124418455455572990377080772942503085679737141107056493462328210343662933907208349969755283402638602207958800125064326679549569832816903199543580322487456609840448785864139210681768184043298246590148682346186114921050322115742563241874394512865283175707379186957925201017511905698915933189498036013738366981518424634706075377542517844636204448678060777588699222057596313375229450937924843031658193379825991912441151813718426829201002747751491998389288612583285840815544115522809019559121478650152519760738418921717558583748448301258674699860125619579786048721297376100216904308127446193934294317792459890819442949989589976380507268928555583894530788949257428998255944377003343339256159641587789164000334259997874511086923389362563310039359503359960128216377307368801405573662281354337615389707171394555705071619688000316829312083119283321366875384366365484778362303989015862254151559774852760156875795837316229510115004554917539428017698266665923459953888381528752503632274127412993006506868479257806595822678839398934770136637599056005408177882569728087461983123419056233380286568989448397522524581723603586087553689825307174245886991400797372522702496967930730774638689433325230351014110023480525332466048578525029662879877104300050235358086309253919543176628142774485385253399548688686367699145909794098552607284114933912451814045845844609251103758015880476933473124233226445786188931801884762059714640531941431832200476841663141491578306370212215893878795672737360775862095403709349737258151026401758695737083689217282257775237453254623275702955452825201514964814090676358010228235509148938328361875415271450408946021096300488820455633321434377175745412905406582673125110720786683098021589712697304045100271749257925031473970120125283257520481698795656586841503078036081008274788105661069055787617753453051821850580755862725869432789253738661412916964370248076054938377972683571044292776868925093193933762114435680388268638072300095862865887151610281543932922348620558749767776664526880082777115936243297744545334184427471055305359175214656715161313387267320223025121836031268845392499288356421927872392619164434551855538807184860518815178265132486627137362624893579286588938753187561440987077778832707320854663223701233723305724679168343847971930117275353389135519381852735121780623944408991571538232263010685772125468800644904736609083709136803576454877204001209567250526624515087912850168002898406870590766633379434001023084017276157084262428775558593911141722785866393702335968179870550133125886713449558713667810984573058811097148100151068059538042989320010970983220904303067863873138363045275649426619406957948732651347918944985864996804228280062836134707807297849793369605176139132634591473773157789179146508484193298679996313275091581602970027915243041231628713615527189308591878299645531144458933286020393459801285282844075341792723276043302739550170550157700255171351384026206707585514410663980831239537985555911461376387538647655200331652988447097256980235019852614938235664476132209899521770836416319703871156818730965660598274455748030714490081588951641190301398375845777182408502587218041180160576010068693691633341259701120354246513681193988309770286931336283822283581368980975151205029385632497786971893245621525693027485768667095622685214068830515546618812742862930615343800256426386283189203565742978545947676579769037943137146670288201154499518424705905047460056597696295752956486837701419601375757205367201683146973352733518042752333607189080979237278103071929839045695290995796566280784069378842073780740697456197380244485715010796592555296852507937549478349821850769951156940086679473595454133030635938086551594483991527849577040583811298691192104884185571264047270196219569456978034818685014299639943732577922299749017816954839129219073687187541205579307438066555790468446810017993944067018592742548414845548768482432400912298088635969929577767098484959913139873779507389091717233596270750909763921820726292633296182323319275825851616186567081349488910420182075897681917353421479827234211979741496001948080618912125237300085953832276388296509750453727519882704366481811484729356833831789639332947474845899401352806466441234243539931440889989837321582768653578433467498999880432276693689077580844770147109173735545546289375196837533889420670479237468569851380870911472396428440686088165489024769711113743496589667987536245462181460401191250550888488411815729638522826083893026235970051088282153394253812892567734135317716938912746423862099377037382803909725979874369038657672136911343737058283142422311164851816056168777281475498135271077743899460441267643224246788271533430694007458718218962223923364335332528107678092412845601693228488362757192983814449661320995242635204635329582026305121635115391366337546542389502989148080138454982620178309846305853611284844299587482375155971070464484204726683916724416133851737619630279506200886915777322922313585664906428123483984686910664475203946130735556410901664297363352902497087156702458692423179010093051937875244537946504253559826099983469293906417970326235733956422167897697068670536549802311946979915406414559164257760895100549673449179048179350336303668378041121010018826674690299618315290043924593491573672816604520705840278024241632529885941802762906954023321185015962086440118398610184016719017323166232701246578220197334386754033865938267401465043271259522401327851744328753881399762797965474471763863672246164489721022310473516775899655777227455714219652633454551123728596660713453669579261633472916880079122638916904188251754622099495995742639308834549888446426819556842553577836026657843494313597807907767023092062738672661972259797763291422460863273667955676139817884965770968962801132785676899737467542368223355935329742338980234495764267851595845691033676024893795037535876008298330177723748141181928315519527939285204469297124234237711805411459562764554034648695010950365621384245189549265163300522761916584948334822218717979286201769640634678328653734517782459898674031522016010331927550750635649380133468478360465560434908174208486037325318555711742570255803437948308604963294634894674536855379486119619401788103701078333848099682602279978697912249448101350488702028356499139983451420734536048490571809599351801628261925313936700725889391065076215980197606454623860961773965172683268211736390176028285759829663067235788236848737405394545151898480950014271797054698280424694673922740561334150879791092219156194573785968170273582803445789575854233677414625998421815468141784906125803628751494759861840635707982285510279137758095587155581486711774514003082138669393899897885081235644415047190879762156485110624416493115728925802658343323750118691047102112363502259601276741534477805279982229552085483905124183759338995763513465405076493597276116014757070187590176371845224308243354229743789159012488561938996539935303572196356967617356962965736130108390157018517033262746367987763981535893327889900428253174283006226585163011169670230322546605605996218534910059620560258397154331326340903424002746921372644335893904339301940139395442091877278420143294614216142746898650841119276736779793424154993353603802233090861945186461360986108503337475424600937037868703104282520919888118197461686700884786545866443841766782320913227751611201183461148601864795531569503876146672218229652794999396107398238579810732544081912837299651324598124888140909579406501820841107913407349084915832139700730066712506550573003948998868518058551509065060491369357736144510842795091390469180978725888828096020723355795496231387059141320592218379031178054978266764496003359537930708976957409351190891243964250739471809638885648369433680962961113284980248997991795859022023540042099358897244080404583313736410723996491760234248393458253357253763698302903415208420865221315824670159973532323325186930346439058331637410527734098642414777231232109595265082615188705537743780933632808472341357586646056132004649497531153599514721554536523388568933295481748311634894770080722312168306691150636543197000377790571822845249780446715679745244820198198262681645164282578438287288183539831440480207397520520900398779180214202144498842480766346606820906242680728238710102258955624191088094088214407566703127927093177959775957256051176381042639432916271876045868775072219109753246986846534229410318741925407487284924249197149267628986767113391898312921451233070198749204955309259944737745958083125443933589357470513113088813789992374218756853396529657008629655117441662282332490405333889949682751183816572354166613547159668060109394987106787426570529302663485208980423548755608049638018779845736460416314545554862870507677886131100246230664689176700896276274568412968812367473947589244709961219284515722769344196319816448133245532605567697946972508903611858737838792157721636186281682776543783400572799187807057231970261933480490761917325515366920986646832788943402932731144884746433868513341852159972646985522816323389939736090143649099529071521824827026179626552016891886266182728437751047146440486979285701530712548097640562722552902816106148125029165033667571833825386755063359587931248982752481326455492099043877168920857792267938489483867349525907341189856621163376012321801402662705488945889671036028477113401078994837669409019645388517800101176514731979657216668258915452382833100919701540111155490776357040294042463353262170871474452141998825907469153676320230539656406865091293945203093324226405137471574440579134777956298880866125647032837500169385205696667239898109502948896724938296234691884510803315334754442272948204611407680709803055939023739931812698230081591162939014803265391875556084989478613087863234866542704009753920145691786954370363729088082262999226745779700188570361401811825580732130115604371327899618884869590920071096238746545284216015360484845446185246658991311841375109719762829825028595364610159122881583192255759935106957594753167397877508662317080331011773352016137850477713589319523068104804098401898281349188414396315448554102170920454088519772166856450956354120857918623687416311542654548356394929936537658628996935750950774721611198544086180079022822533557725768118104143712794147553133351934902918080628756531462152157909228532877944787279780683607359673461807499563056879537698005809436879548568594420168231685277481859600318519684356704168869160547990963122853721477541425330371809715315712538443671573029442254339141991059589658844177736245296008062497219860431855340305805171592899341914240936203722100444900797452419144637355211691718717703688764953094880807881608015889376319856891179319386276643272097017466320964017815567516518068387616391140267517517028966430675286559273529208591447433835113552156078615478950774244415961652045635933121520616155073766441583465564979882931499366303817306928278752620600012290350514376564402344125235329193038241350843691987455674724253459398678449032058941920177639072849622745950617425290122621082487383525513218536304292290155611908058170582900510171358031828341466447232117181323230185894026663385375923031460682116825484806450864170693866963896315387409186775681018064622222433108342073580437003954715696211205753559256049879678323930764694624964180388157807335448107550190716345194065926661342100031651152690221971932915415530757182398075952980024303683121803730217566097130604458467931762254907831711025223168602249537988727316915892769851984884949133259145519760967712200843429276891079611406989945083201942932550223484946501372417357105151733439331548954176803887762493196542598067064103577311324322343769760626992466716620592522528672677641966706016272018971300115786337347081926672857521976723423436930882601036104811762950648587740326643547715910925114935309893061353055163714112219292836992300116853261586722437408449109519555141857080962150591259244371927992056719386550960554571250458500243660200853663222947580491651381895425501283346262244892448371808642543568483148482539443355274469510897623507205449643497083360203895090543008037865184063630289020575954139202378963686485591973321675317748354368894352544033287052155868258355452207337409069255980683196232451966511559976030124527475694406226673221224453360919572654849788866188402945751473993922874374861361180445438884936997024268712585969918770897601259556048500990829277668314218523441807462786737432094307871498695259470181178711838575326976876854452417779099661017486048541388814714844206209192182479117920184053052842964296812317662341097093495179978949341334426426026672013663015369807473551269978922022156162911678925461353278501344900874132262042325706477500609536508500562836025757799524384787259821293987441147474377651976919370370420516076459610632080727356802212425780018409335777418765064634401304448760504672307402998010293973306732392162949298151440982938966623513371882866405719414395496162011215140278343328998305613702131683066402975334248785545265226049161640075747399093527577315642789196754323925394333719706445634265496116671487094923566595263447510922109828947871588695274400608367789448573203263309181410569104411144148673503203609401663103826891542254597801527260106977536830104692873761180847972154027901009010098344725495492831108535501673246520430865375462505397233124508676312343007075701155441802979494183900224238552347871889143150269516613768824671394560071396769248441445613289331689335991144747304502549082573021585837675169930259032317073593736722748580565096053784791652744063269411384511104423411215676660360130008516365001436349778811178172642355846509483750698929686737314628857464229145822615851908210513293476327867890517328460823630958146008372939007949609797964842492047574374457680622914070472741021045300970807418355169837671512566019514022951586280802896243366980170379719464331103201075362991971098338572780793739249326093609966552081889206736633819097657695991036970339194415173886552018944730733229815407535064552918464916808798620559193113824240729911941662770618783847747847683657437973411700363086055460855924087358096586539240187420881210933466612149479582186879180561400444068081986049517527659100826791460182885975130800931343604945094757098319489739984449612766197091820928430102703492252970918457768728878528526464218293533549838183832948445155176428042044330930683344056951052482311861437026326492183411130489083848997314523033772599893301685786817192019915006646158312936330090769563174366383418962403731039220455846083897594588277994570446732980045545628832906052127368562244670213688136453080849371471750240456365054498815651663604896023615141807341086290098209091710161179209320624186539243810612561192197104272163740347574926570033591579385953835586280753761832076828029913194009607682030772424961830655598274983247006555173258849807674439223794173185051785048011334213630940886253702874495742065625458190413659815011104821750659410828168961400234714832421264230245788360467241863816996404329437717422129660008623832638760663514317778362685981921858450188904981140760107158198366130088698146549584591407568534220027152062201125616550154390557794944067000615616364689829891730291919857207436838104863117169132632967571859880739696824435291156219735555821959080677929712562848734407375729058090828710886594839786433889613642070722638065498394403691935104917575903016512182250337226325866378710273913728521987993120811380482898456804216786319891499778185138016263562493919961751909637553637844997941587911288307667434349838698744140807547586683678826138389719296349569056634912217277882977039665145070428917673071682898686027116138941093086116538813048626557675440296025066186666558325019058079474519143797966610987204867635758200017043985501060842206487795803127733167082943851832264289663650651353003516874693941998338303973236668873147069068571538764070742910428531126845745832263235955115197301195810679636931995425972988768559688144597516885714516624825501115815466634523769374317020343967131389076589428570055982904486635807178921499636100217466048132198064212397885335251069028167434585907976034345896102108939552753625438619109266036767815947097879612228597997331857800483343601287089388390099774936991639885571795726957001039342778915253284069063704179799866879970030102235936666026693253329817846096851923865907033389310872592052679753921985977563729276546584839764639389364487705551832209648914353027786011794894322044144500597740578272095506429372325736468956435808872079793142830795913700959195964350417807271137094054657735859212698122102801662263790089812601644225075989309783313961504627230856172505269913905753438239374892214934411834198943125989495189875498592810008987376725693254780952178501777044480928126800965444336773358983228326090081060422899465994652046955236208181958738681024417253087187064376040541015604582579830306953393044169745241927869052365989714688034138962482112560589662478332255174036047453809204069370124165831231523012694871908863361908332133785854184821893724942956787131003691188630027699335503951814417820793946963451620039668961003336691359807649138924805003576414416922015287533924120021139183135422362967038623784611858487553735511862465643595067509489495669554369977824487266585760404235455516793664939536734911114351342304324664475936625319696375562935445095469770908980095924873178413102059110952994710600367850346509685498262062442960987255517678972188234271184483219258586306177043272389044239523321066726099594760742424997288851530937048048993526866625987676805553997936927826226814756252897664365895374511798112929961313289898919167709323807901319518259559885772446540234158699060579438731818167243002063020155429866748971688814992012390374776893379417520555545271828948099748157121966806179663186129187918218246759989600586930566689460391510281159189787555121296489631059159478996991847036155657800104031927488417603715395387072369035709236380254997598211429736150450579162483840759380791854178735607819024008424178520999117456900272080528439286627055534968007586290680062537526968772577781288997761363354077572970618419092350414022803256045553866427276058999661158640608105005086392311241284500040507957761166057607762013373339999839313966737887149038771031587504370931051467115188548036830263283081140230637922896277776610904481531267917270206708928083889890861837658235841199323540102628595769642823802195006584982313157584024216705455334630629336798629455236261739677946061857337831811652942895506004880763854751481230802076743786789382610969426896627625206376792649719070705391527074650351398340520925393379322764248245426568351306514541651352183187286000939998983746781517027841070431167843678206034795796293411463072920129797339180950776421799054161228724327475602752609159740456588064861030798771201822227567792919321207577508539064591110613096371354830066399404443276690190815083912420511956382237819778544156697443016514386274871942133961337489148461531250289147495474522438931495959058484968878460053610796217421562160646353941717818966482333471092109919087964333041519581366009166652611719290277436324942434589195455499723836214267690453508359991927132271107027592917122821253521022646925804778293706392445362185496842391462201563259149654683043901868258335873188283759975880150315753745902996625474820343337946281060124551698590923713258570604431776900367382852165231002779449833722254852450416451693911131755624721848087574089533880505152544584714754022007236033406304678392612444091901558328788674995728057352018467466268137213594486609975157148579323701742121792771220466794663365292653132182149714063622068749913895619103398588065046746048403792142712424274059838484379561206366898488025134837368528502392062147488340870707108029030398741503361971421442120300456391310775863739532396450781751863771342660928220863756502354806752531436523594964567963538251110891521746224992120064945290521770199279644917091334953019728217140014380791856863704803292168916769062198582961215276565086854232708082495808770307577239861451766787478142956077834993848863904345757591054406342695707272796285777974518819830359247298987510188080161362171198782845586108822054140542868589753723468625784638326925793213808873487849365930801859205236786015200667591227070361976139580776679728624835013875185253536206376913006245260953279515209252857358642405703000975650380060127850680386458261108323826235702566597178208817071316644357241407437166600947798954894555787016015511497184472755492619505798448264687330993282725883307598337867635571592210640979507506957541631864154038438859470545649102221367024494414660282463800414294750104073079752930697533098625135160324840241835916746544193728890915578473110599347226300588842053269722357199819968283539310045568631215423628365882346512621373306047080128726405231075576620503488653605213698487500340280723323075445868311793797212651766142313538692654367763724637171006560694833693350795058472340670661618255711683557314507392620384101095243585870907959268348426561650985366055574131501502222347817225311370100119595172591160061888177543242088719882426694920945848403224551088373477979203834446395724769605251579368802043944317137922500264596842681070437226919794770972978226809130438810462889513993455283965021182599581525506640503494628076979076834820308567026690414220770310763073980897395312592891406339556918400242264871275838104766671192821909080197225415168802617053195414933249161765331024556913443039171863011542592370258408014509635839869817183949847018077471290516635873482046378445406634632936864096193666210406158643565394727261288291153202499041465341761799308783112319193181674628870960861640517069607443433349178966566283201980495618975873176197317692470012160008655698721174625696646628459656243332423303999451544158544322411925964574302732784244181093969288099079943964279912366318655024325768577733328088754862026132969021263887808259859660697096960170888308305744290386405372630710077301243132915364902667768000768147182865540739628498934577021322302373841730804179134823380089488607705887455649294998034241744171203255505383461729645153497040020782238536397486061548564858143492288290451146760796929835524093320034795323596102574176231970773021098444223468419028282122985528964808825395971821321591968696945062238151504431766596037861049528337017053041116000320479131253922234738059006045609925602005346206659618808176508446109575816829555431768482442093363530586358946969063318153638350818043470549053901147956216257801296905003764177137189567854685002851200717819485187073851403438434402190147894313802900828381419698647805875743886212148983090990686041813199113048365151219971540782179322603531624755491988904505397908904905090549102313152387195784492391386823181424341589463849746059215815804657695114488182913844144980573166082570065920871344958536470856727543875100472239072322885880776000754329891798256387767908785097077753256112708120592588463271889617951509814258388914265816933669290549873393192045789022315325624167015100780991067310422078275603731012246386460514778947725306798025686339910174620529493890588134205638542941525886228882289556028395833771063467942857421681752010031761486201519792362991390179647781167990153924309557336596232342994346793025653651360689718031922824844248756344471387488264577637763630832352508812930974004326508098539924276697177599166927204449899225082582739936526435975035973792112852675170105476472378539461150589027457094658023529559612163728387480604360226534769425492733728728767332482575095485075528477837739286698551744620456988044733945446472053920810496999512757733826031972573193431665437584789881075913690360504717760894046502013520824029051983239517759668553021378271653646528020919468952610382611824316427193647964542571623299746001529448228642627679705658130396204803934444373415012134466257526576164804661822741318142953439286344016448125878353945027375557478071546444128128322056155831492886500133582120411100065620517929364406733713608125489575244408864222012935666757874404691518301217483168283658128209175654715009757275367934264975488178631629528263302570726916247681654327089314117748761833627163020402653862922935590544216165916354635822716495112599120295478725725886624284238756032756927858526722367312956094191798715169176249658168520215930517832725181543544652517226889427734754278574161931644408214708072904931050803442879795895603836076134889770079164257741297602747630092860499255283538717164712223094954482767482293960792482107895577545072994574964386482448885615149442439492120381689508769915562481120866047387718059861859417491592952870977986283415316833707544741732513235186126174806883342783455392879471708597692352584100799584031368056580071856061295535892706423766979590958190529621688245324753288348468366103348020789055796546847640108110644382836964091662540007533891980217651787425386372362575564286795211204763925557233996174227030051089668996375740497187910333365627077059973461378477392608307642814489228558292686856431791779951360824758252453912730665046557150726437298981876719940117181507289013118316408444420850083459118232683792903347747387846911460356993622428004043301348765767640750788055103350433571118814109749927043080279479266676141826872627575113319358247173943133449455637835891178510706104302861071944038438582504989815793854820302395044987978425507277656249951577069278194575623485897098199610056406424877478078182093786946930424341289661570988420069830503421217245409760928949815380948007802302748431522595568124003529147076430324689967803484361335129324114042129875233847168622092688958223219807523746379675697214522094295420154361165684211762765735036503919612875328212246198634167260084666859351787758957209443538152148723908010516458786653290914105071508316301653893644213633587719226935725807666251735574476287280392576231339640543923745844097373491590128736196453351403199423472280608540315090858758721459121911948821400507563576555412207179688818309504795296419749619267310330168450767788171261603877769232512058169345206200804048905755172036764388424539364518618926745929784437295325949016754521153653450238617025308962940100063123172908588985265454990262116883524043188735278670510323156885682766347076868029550327683121179955947588943931107397979457387277649992968188373235289599553560282955866338735595492240026629779947232823249970908090196451553983507225236473387410027763850410268816302436629827974415565986040045304854520958080746855861611642535481444336175164515956711121684104297684960562597053072740013444204875074761164828361288230109151352746149827214604026890543563521871789389247021152900780584290702522581488231304302626023858857039296120132254590505307283059500239919533907477847856754947059215672553621185446807871832208658914756334910304450885059550142634315639446191326716407755021552267955277582378627793844552625273838901996707617790724464272411090640106726290427917123444614651141837754387251881372434155978217966928182378612055117400060895729625649836774386557182756232596730473903853852155108175266163081541239991903997777575727008588228697266878625266578304320762763589940753585860831680581911812433434014157306829627120690734251328874998057643648924257402577816012211139198219376761150492474762970845028849221868869352288367239102245776315973416843700571340148257745613179042907714948199094650294369482492919579460396155150150795990709912276727286222314708152030504674934514478262838235551726285658636907907718188932553066419827084366589534020944966345148538435308074305073694272187291649404758776072763088184848970001233833358576518904611827647161086526403749594410891141493541996764497572753506373656050397306975817244398666465647287302538032746508958339959528771861849930117026288324338430696113565638906010790287852075695535350537096198360263441742391973634589928362003527276934869843548570162320373838145132136536802223115024353123266797524171563638399446560862527038261895472184590221131024384075436812019202668048722406174876430728821936877779874855624661383773391289290804207143838346990653502077509234380296966619122271199657250419441573299673788138590898720977978777521453405650707436019824604755603203515486109748014997140255595856509152281789657714377655681152188110491346560411252408525476491681747189002380667998975492807727264529001556368764098098450195587237205211384448766450940062191154176864228853849463389230682329065498380995253477152984405530186008925149319935924375360262324787916481957694660921430681944829418757867791738538659825504907405177960418041064737813791031627097117489730850894604214319362178925381571086451298413298892861814668337216547961702216320647804566910080160241312737896992362613671066507689023690478246223773592240320999627415448489918485632453157054063788327501240646037097078287453535848742157269042913212808471959516113498421689807814230173431194329445665297168240172675287315919083754974853595985424199277686170511818373045444343013599093478169729001813935231521202204689459657547638937523263264033116594724337633407258789404382283643427051284393346955857244553812739463562603617475179662007794628101731800962623908608733146488984732659287658727307385733485840590622322280411338013259960417009258987957227624681800143365950228940481396629476488689056675596705860421111713558121903155653697823565210465333691816697080506703735325226329638711865134724316163664842102623076083078436048321736706849787838943815076264493001887836599781568538641333343047600481611294082007081445723736360094613852823227881435264624826109701701043389143372946470213655585365515975866781442988279056863354987750794702412576920893254477346716711543029574197346435153350861680832118710566443504759700910915872072201151658717483478322103513762655357232708640074631013898478610906235108751447274282810295156987068341274960061717248033025629278571098509434227803204591235278214345671494913120871263939146953478405860595801770689027972016622299565896914466479688535222543295297495017907011168283921147639961265180018705076022173222641981380524008684396902893871886344574679860527073974470708621431053034998780533230544801090479365721135393713412909462685627470539477974459169022144773235604592459516498023895045132762050648410922729596973851138984804841905563098220222655778077291060421882907169378352064307805453397906064996051840483272999267583748745557871945782573468868890959131001865930164294710489163546756317190022491098270123060772786165460337254915380881932161768055324547275210064902366313552469029044534481922343645708625923263917989260791111272187454171487346286340928013206434928762793251511667241242679218292637302938431928432514437763349541417524418330231456322468902059373893187577898272871445637675132918517273115717414325130737742011631054599775781472845529036709814446624199728237529573215854863627603835018607810977266157192618990459578888416046860180326142462626304517498106086589845753004515548515108103192630600821062797011705721833989855542569839461497559184893439605451805286909832621242270438635780586253375107615687040334339996665117606413856540073536884705911595244690757116392813729119788886650489480178123910664493177107290365924638393095836729926087475038484867308975090809216899841064492601249213992299363633794029966165540835227712375733638571502166971622000276171025905650345479438080324656344114599697302296278191732054468638688394912825389428858100875668670950680061527274458153453748621573121948178186063820852688509583754161149246811559607733552177315699528747691330144477346769236119071312114452804483891549564216865482529256032077769388328254780069382378163227526010457071820772185613456812483309390913889849709475837409392548978672477827253419585810106043596497949439334271142198253047177248466692282178225702763884874036368033159347796541186587566186170296151310411213736775154019066073805249049409633590181472772900657890209057839021476130379653744646717177965014644806238720479583763048980145853539629981876058576091003756361251609109030807959082801258896124075686215089467009300774041899412893502550774322220576523862978783954832530320919168241638010331070702067925489502106517626944264293917111331366312235392821834731431089903101475797454632408790033254200315639872708052839120378698191897309796920029014303567918573486313874176890322761383998565679491606913308239260399815668977405468369375482809980299913628114894718590812972945196727175258173163702942127259626303268840995949664792829177203486800532804999300685471439005147073937371157323580452922926081084974386449429681446348484806861660410731306726819176864976790563585410540468141432415659064202678924215928089843989553804813025456110265030393774673115927705385826954217582536350989998840381982781015481458737255123285538000737440000734271730079980055899976317592834401065753556866296749696206795895237065269173489963327172323483206775292169460287584862739274231736337208763258898011629306899267166705376239126282634254103229748791102748776546434373340172353766259331699971898719906696218489950267511746145614090570398497336911241957800681458386735223400556965288479840434489713449628854048599125417171921494325046119780059000115287889082046733762704386790491899345629566585510236603343511300960018361089717071827491120745642972332137586101174895923623841782866505962511791299072148594209824050531696391857540545285130386631298699164290875113824888924649759377382651749637141363512140331520723824208565224485188340006671877757164702794646156305594588035966284906928034935799829364219288274711140411292417128171236099791126667913822885698215271842657779904791908097706432902922092464989683487555642717941335249968017710216593086045384803588898837394584245571298139053114832202750820552383242924743787274960131467680994928650566681321180129332209752088518562558390494062050048678530556103913662789907877785464910349871537977183335746253837425347010950767977346387124321609926448273042762974053407431054399998179786150575624190115357021982709161389431517116477701255693087517167623857981294780033106249455407157484712652303503520266272143988278637728754391429230267296706446370611166214031455559208567026621021328138531511384250205631751879382616661823706293550817020412899979677343580146714092788281532774532951285711873059237777094155083596775958044366527276310239540735109906767764206642914146310197114912410334135248408066268893210902626777865492892730814194509922045894639092290739476819429348874373665678437307952317939623666051351782361764545849151323897168369621961657523409010007700023700275991792696899453660353596851131283925152121187726612107774073152572712637833873368787256864652744137105967192122372142566287592275811501929202997594624219367706303825172094657951152352739771076004093060692135321835447910755077770176018013068008228013951388723237934488620004287017510872488332481793870449975199155289459217077655394803952852646548217551105700102358836915877142625203615389222547831186248422326772623652760008762272519210829518161006442787370740522890407783210289360861015752514478980025943954921585268106106524980784589040205992050417996637106498003962587230435490185078307368632306013361235101951804791238119864555529406559061771826640528001032112353056552533232546679211771765485264030212959874904170227188798766023293782801517435838568595896681801209882635570977004218307981219956053316115405531859109777072373307638154096129465106565627255591292479584352459393436257211864030012119785059103548708518553752739403969921488037529941920591898379324061452511793979380880888235195755859523400537200538246465491496006526188776707149436331082525812996599466404666699867173074306649195285492697409017228671198985561668044471466752453389286148720798777841142087490445190095746907073878765351608160802132257388686580078312774492970932728577270375458997955110260909456847326098689681152684669247170276386111592127290765405007746129609132997121644807509912527038904950448680375216551118706488036366492760251373169250305497908745655106951361777737962852882436933564521892026586757813905638101973228916843181891339871048052344647463238261144771847915480544541050696735046320525977123219251369638234215227648338998464514835740037313521818294133855239302369618289526270967552151039234588213692111458671136830114472236826045763988343239360887247832253340964994422075810590947371451024913353084922313131865772448513944370342999766205790383704995777486290370807679530327491342392944753173971460088881069968217489992240035744013245919295594028695902364104633738353196378284959101286728779635550919105696285189785271789237288459141370182285893438809434311586501899817428481985360813856720101233278068488023133502720194526837973250849653408983040359268933836131755916685459722247184752862048214665136682483242461670414855834771772614131528864091382352597334992589125179097635425617761905712082709168298342359571762094706935589888384756079872148434816677598129666719775351157219365147119324396682990323275866749209062346224701926914296279983228796091051968111720403927836741193711155762523724762981839123873290250701948170096067050430763644131834543257923025159982315701798913721832182577603258666986488974954671419467911049084855207231503011348393647078185914298590449238200482000103814502153476539036627071080519069682316042670935894147508106459877945179685687223716873686950001533254484841127577567915502752892164650831935223710344955405125011099911242961981943139207497273510680171152395133515622681968713692115254784902689531559473072989894184446877597474890437416215277772052867657048765719066150550344741934214562194674135799816118159647484949788474227526042273677860526786944971384511636406585101200566671833508394876140847541725337739043586503154112244071112068052580398052429580837793197384688872960676932871215570608754879516455352427829803865600829648262816240136246938974474467583873241417170191176580248636061269560111265603979366339976523048183057306084814968225113689003857627348990663080866233747590157049463730628733545122326003730385418781181716215773995996563707865967082109051350887256279732694060239425549586444212927586818708666630003435602100210037742568200373850334198444996815453766128702982596141064353773179162878108128881683383572639695900438508735845856872633742041702368929866354038907725806121012077597481046292574077639575195307725637631618296707609109633925291395664913441411851352163453380417593268686363746468656177409277857946654686881644040967244628496445156890159162343304206905765223402553230570574141153263636247807077018080543032216293747923922654391444249644527635908074150518852131933223386606194282545558184301751003740029819523140978128602002850392639182743075533647619909655147042660720378193287119022660729026090331565091649534276269491204543245763176299563003492617059056031494782995987350534652545947651779824876860614697245639068660672586830907384343740665494072365604045880511269675482373360947209288732941355662630742095598969221914144450736584796722659127477071805751356844859285324881668078314909813801707037812522613383130760820755324821120986739022337210288541943283560937441739045262041992026857726885310540201807475449729215338584740349498156879544528529703538561700059435505842928734436062287201640742855412077220874765983420921749150286418963297725537850629679953601703481635884113709526074191337881375885660618832649811968113222123166958682572108148927501152150589726380184956876037515645068194464242410893010619266097322891545279919938397738124283567979301979882753735561785330117274304274107308611452768949956912978815019960149846759403787563655910101242357551216608539508518981576142543069515497733498784135975960087367447348098377172777573854922633190377007545376870374606800743660945152153101275289271080243699405975707603398809227222430897374543392543132942839379531508401311896584804452600842238683024443769019044085263479380150870902004808845781777018559766768918662101238924257524813305639122093031792853673244846662529732797083807485358477477779585269027854042608326647357651961988027276986061602578939163124554071105113925191179660412509277301818893406052247265580964715596033378969688513614038629083012682406511556434678548880305598749222171777439512406506506767950714049076064585396749408183943803940808467164975964329454014360114515389980767099410145644985119078072739029649148921495910731930801211139489512435547334206274136348790640188372332998871283448746382535999137871812142847580647956508720011627275464037044178882581590542013346256494311024024912053086151180805824960773099486346719536869651731807502821623915770931813132625352540747336724091385385916850466125767051867367961954792776972061209153653316625999454713305590207062859526997146486651055617886895652033846780738756019730398444521976095906089810365898919607881327585137831960288874550946155322054504204424125763370228976391573844168928455679658884465697653042381488078638600223942741613582031261811696054171774622275386888559662175764725022647556359062227678566568099492860746900259808396304677916413771699151480679352708486287956991416107252610515067697980558412319594734133355736620739801865136407675170143029091191252895660500466500367574664322158940819016578232381770397598672477513494885486815969224452528860109177444695206342339737458401181813802088777503828524086207069714122367212635496200959300424022059300541014355829545972885777235481558581942291754887592807328013426490594225241282524295244139543367037530554476001730467505487925867024788072374738656573473963071123730784252779270380546703085687263256593309321496908515891832258311572031467382979345397157265238472399488676381035516047368098227692401097780072313076682209350283348269496419780495773994564413837603483140858964137985794781527907612298634488968674782907203970106945969416688035709344143171821849476326684179815840474855771661639677973098714802758095789264434763168905364764115073477397482078932156097521176103181639785527968594452675168903712879477146614414772893389880434885070035489401693196933719448771696930083502748065705903486336140771763919793151764600041303465083744753938735464096710052356743700398656971280935441473705210535906042849185622207326342485481567399105153471824398093380623613016623222365578545852408700085739356990973137998236321506000418825181886532068090452388813594237692540093586335073383771656421249235736854693941211656044056922508929613197359091892362501824639511201012207631963520405648365034913198089442911630002505002083582883692706130602205020010784778331740080108771834202182700276071921386835857094753056934826492775354849645829002147554850652941615214230237801705628060439076069649511436682468394465423802259129469701240737508199059721138624473110130627931333604399436098403043142871803645297849120646631788328027299847354754582206038126210198827087672383559893145793894486629343910249657518243854142035455610945897444058936714913079966378275789079293306460977478883544955410854324550154122912532888800766046516385310932950787433342072942200259715981663695626152098319409459658553325047844524957318472494584297823907904986381096307809479117001429764593400024526439638908753846241305859728496157573830782445060037911764256274781875538513730254435198605636179417363453843669423397522011760282734383782528417956813211393741960122454588853797644178440436338078425238571935786614191500724952271284001350260528451863501676293664502374927562010569638573114174700414879075665940352235113949059400629505308240581848421347855720192301326085738847098187425363851701449865096679103383349916428182104036664001043220646326149638037412119598818708173178477029064187669350716525968803243778926187617862730539639030254089214953503257665597496005615705565110087225747925555408959035895125473574554245924955251667939755712244727334531382953742363844123912902759659685367998205164551063738809687397601374326934914558276327444552404177781972017770316181479481840797909853751765077915812890946548892767971449497362367420846834682525142804414310607278499030511122349759336592991165007208471627584311591413030894411795648695888235547833310863566283199116064829478452853518957040056031584983256874879386972648984940178955644080555022129903860001392552263608141961599331398887540221446199822830529421428743199827618120508723943562734828210057373582280270142104997956771779154297419541999834324064764585042714731514717431504386277886757640624376220854921644357385813524123497377005593137636709153837083576416956571579836140321385533392088592170676485464916557949359014236917741896809199214746832103172784376982368907178233874523851567604367193153713582018567416826833498640702270789612808153493836521821445558389872679948370917610050896817797391240204257581702025881216977972230238688641354970692601438566788965264730809123646790095685056822105350303473416097331702164965862110751061173350057641723780631586268878005108873349378079731847103686845399728514190793002394934892936395199520715609484996027245637753421743531277636353028986892800006350705563110039791532691843167221610020148705752785493230918154831554779319896732070302134487584465196008582401599785313464051613140170461811572993033619873237697222466024610615242231876563843675244977365532079031088356284558659314115583033913880407153045335435590033253641506128471644946651401112796323038706883760041470295092521798429922442116007374767743308437659843250236740121599895464441619610101661961835074605682419210764739130415590260701440004506075571982136849087809070619485057916948130197970281342248446600417750048186498385698299023724932406560436859209587792874633895791271518957114592090077374057425524187991051541736332069956532382321468205034935016557585089803347444610557003600503959375757084289741606846822579981676127665338407374652839165542249265260838825413086878764043764010015228234375990856920968180847056882194257102362791556560541960728414810697822041360118337196002596138594729432230825674457464128550495923253691829798208965195229366380274501386650321695829949884376165962937093716499030533843922292064182176152314876304362014511522969340274946853652520471274107143418693371935226449072720462774799641690795191688163695200958649082417899434176661631600151938114670192348293315246375184683790566617380763492620671534829685054650931488500460826837415235710816137251129193658970404154097561580464615456791148795689115701909475238061148386272494690223144879316771674599174771578630456958669730248900403273122765477103627859628754823234990747848203336218302485198720735181676098966203465675494937932001025991598511109569661167601343661434605649311500270068419281701310618182295035539367808614137818621463444256269253152298520261334302359372867158698673238785679133761314168066939705579858427913983398439216325132660311797555417317061636491291419339252540816516847941985875474723504768346612333822045528873326171922502926919247512385172053235354320502298718293699730570329147174539277369939119872364814196112916184734289473983046138174940199974839757455557267746781133680511028439822403282640560649449311686043415513178151001473488850850118784163992792741460781310830503400300009477509682522497071317758262631051387573463302934886014120919661306162673368570966625624112916419824289119614656317736210042989733956233699288238003439462052944530710988642924241477697803481640338678870781680166852430702742520506734706077580394559298821456062156268184675891815197148983365719889987341534295363840042790229277356176489990402412104851861363006024771314281559711169628422845492267326097241505022542614437284273677910839386532107810152231775234585547414472918216203146504905082239075313595985904595991983506808508611111175615903610227065859190054381355915253877876681658686655211515723260677578072902136033899802595403454294222024322587183176795294423613854576439655780427682385728225984863193816538354593053538952423082540926204887844550610349260429005059372205204058868328829516245942471758835324192211186159193650643165762101507156191756880497997028396416319200152329913808037190499427226646196629935243542648736143917900361119357429756122544347199034203887278807893600252481186551370065977814526546454743201957944172610299483215274627105223700762369919318565049958497536677741030280107132744253789610167291070415084420052339443788002211259884841725598706752520600070872169697993571830996844570290356260267105982762526453795908164511717636128973073602532278436562410013868320525591178001144671771518937910626182290508186618723519890462525753783230584526838987116822096186666161065533967104081349621009408306789512662284656070601659883996258391343157005071150253579543501431162963278251624002113875790208395420871294177599440184171066633114792157436912613363026592381390062934398867243210474257782054397250610174070319207381595843566797088692267321682156424984757025509364667491348205451728975132400780504501522520242265945193146612223230257296683005150009653427657881223584541569882445847608069600377654588334447633124256749774815194370851796395583879203209679663249454440979422715094440549378901556027161415617519550884200418911862882700631125483715311096188383981312861432571611945077786904995131477005322454187993773812945183809715150100288208944411023455067251667239090067777987732654084236115243594870140894361899096180573739619829915830519209363984799503472496638252870814972957121259057344295416557798773172568220203978006637528899692067220944399116216222407254929931489083725258294742507653073108077070508012379473887300218697327580794895800751968659605719140468780072922866218739879696840947662905996992276326074212211231820261523313023908655038139986697417012763073407690505232297676664962935640329516048646320850190708542216280115781764067343231835529231939380973382325691103803953108943364637460359639777913455297225314866003326442998218928812469968145927506272343634905237756459425854390587304358199798496435948565400713527131367139016663219551521134774838807123342903216549956079656042546302482999571874312669443016368672045544780571394876127672261163241039405049618456465670181547806309994754648518652824636677697694515944647044544295668115496287174788535354571561537130839670272917975762294998330832028204319970097066456840322504438389547697265841569924259906164367907197955435254192935226329343800954587828401417175799669377837806382416225204328460750325311078800662221892328484909184477083035274071056475279387714320933084557078744187686698092175840008732318497920192860065569299253412839395325431939313280669222542748033125892712904213963953511440145491880731871450544680428776950983709817355877018183838462276167767736995359400772742475684567182288874039999898542269265570291437276354737670600693232521247097608486790096186677159627370716331070265674949419087316198031810010940494104808406933430781857501522330233691155271507060857142745899930602521561660564201981230440798972806960649755253920369821107732461750292707244803024827155179196925408183588138871699869200699050569332275438433991290885461977281669431449824684084993247570177611184298631368210416279767820777306772442814349995946795011849675230924752393768560897168180997977746086333098667415528387693939236337910937432476692242293384897263909905386796343352685439708953543023985754199557047571187616301991804885854283290573172526361707876115276792711113774363155200367758542590752259302939815826811373276070475352466342593523388211255187570731322313826490752587978529284404261738576298473781233787995870066446081415826874450173231063184539705867357699612358560954014699931499147115884995770056798525743014180356179105778509248996142640641510137432000911782099248323884002082181001223292406838421037961541947142911407788493370348188840790330951473641280630792881088024439111117296963697200203182044276917929492689225194265267065504396279105294137085655059178590567269673674069227991368081488732213235477164157890010908675296348706201679998294252377698549917434037052305006644241430519193114440745978469524390939368364528097585677183125991608923491352728523248159292815447878967757266859527963646933463749042658941551192811310660778117111119151538245641445216236343785953364685902377517759601988920959949052312227452431899359354505023309459154752120510624003565329353569383965803225802549481176081895858719405729265520283271471927516307087430156910068569416569832704163003613372363327500511868492812119698173948152439278185159824103847534105191971116045926714311675824822943346681842478983965250653191316367889102446904184928087013477948491603156225056734810511662974014878694533619985577735794032621815649772332580499707424296809859324950932218914945093696221348909170146808668938758485161059389896090279821369534888097531877901410998977471687885531205338418422148825063308579719314329418142825175174632494459413939277289430764730105479703634896959722660953268903526730758637408698703036450800085200868431096966607136477199821788473906866169298331042352415010024751714172404448343393444461793936165230866123780461006854741132162395455931297384091209788194890959529491424794448166916999571454524013868324177069039098820510562117493384321897739236584729485783827108022999832651387805912509242104127251386870193032931592771564489016792271707979633039946620268251359810227107406657970466470965389447464313458985011834032933810416698947824351900472945930718318411472277788266108789329381962304732463774200891167173450385691013111277467837156085164078356809713185995287722499220535160205463263078274552809982428515650867786036155280681674709547102357383855053304105214076835644205722534907077257147636523258521071731495475537066459657050284718196293354229265252895802785692581027528741843085023836372279954304401212074225202655504327404725355420855240542816395694723493470753016804448839330561938959531841069818860870927789404561143370817078355318377983821967084851190121566051883784423425747656562109344249347235714301680979780166719962124599328106656517180845255997059545078407628134088124649899582288384176145052069259687681309033497878015739305987929390762585719633366614981200379658388349741406769444849698894931009074089125594532941672058854259827138507063628116484323015969893857120981598471642354025013749437074825880839624845083958202764328489209834426150783540705399352169326564217048554901716533496613491559635710514903268869132249103849465031311342865378377613471036489841557257437582595203988251844441028616591960881809981896062115713873779806514121830547184639471575653731263866508821448586094723756770361529164360651526511867838825126898728173950578513076236126358192397813526425208902198887129075349931083317051593953340467576000823167236034282049434806927309015096872932177620249724759697823751306602311223787920599510309038804888112566375365674037390828676629468102103265640461347439730650875675666720181583544338182533757440776889716235909989419769396419948570386351196930567288005611357944205982739122778311848820982491365264542765935631767127451167980357940489387527885437135934706172587037302526953330689218537852178776574609774464424135777695686453364654402645680684340788216660577376394046550656062295586327068978372292496594428287932233921425240367028966100248980008177210877567785655169450810410047239510278112597616111366522679560642132711339531239421254231347836002765453283665016789608267277239452819770525752325151700472602939388136627290018420397579445714153923441729410817713537778944247239072633881503513436835711647583477221355377283763671518898971165986083153123304116304118650597069114715887010292691904823412538120595071653707190235869613402173954707426076379258133339516044201159102083580996539681790937108234891490995185785628276228254697175391197653262912905441411952828898729082235703899040460409477892797260686680921444634293260469270332917762687041692003287569794015244049750103755692465902221383867514055321988309720108195603860924814669938752377323552996249232437085138296512486205845407899115662618991186145473097345164795502043383467469732408744488871918988697100625385835319991623528191916653692773269565432088065745665016907071120982753511219837577881356966259940832640583036687264993687350358895765457811722075391840956682234030890604881583888592069359766722954612505900072077344865675365053829664410501186750545565717094109479487092037346710040252541219318881283126993354578450400765142917924916360486168158704547079358844590434069617069287881731753692997549730560599141182997898947077794516038301014295362980221946758550814423993164500069503232416437787752102708822539131353039511754724780925658675978834987129141335800026076341962109330023940773269318954769584252161910761662829923639798866357344079638885333914716252546651687114505940976103363254330312038270653498697316967242832747026875557807677330256258729194429580104706503325237139897101105438132672650527145013622536027292934002027616475327928281122430533504720512436291693411513514997690377245356201557891640178267812348020740459786052563448822668678698461403941670956136533341297544096126753266988301493888414155799443748012342871319850493897071393070467546389977713714810142600984656054847970384941418938270157603084396597254866237225047366653847618184498499446892057068829325791234221908168259605875441085384609746274914965240714325403562188272991509150754692558600385930901871992694048155447897297312878775905316490633535837909840761316443514419667671744079718022449616309440964889422112952094655205312826774996465658592465884222396431407230355911070328091652609774167247323566673235126093102956427079076264643276282902265712456528197580079448971436145511142954687189209371920108349109872610812044941948597700033879788153964405569842865400278885671333829502344284591852904619844450544989443224174041002268972518254091023657948920357099043831086508645668670965468482726652060662301674573364231400445120933549694905680838010707710685404676218891781270956701138880121566355478284610021581182436681385148683108458379148879530821039345695028165878240950775319395178925045288280378619820678868126160872659308197246329830688023272685444035399759589896412908320168809214537946568590410912198741713587624343547774372564040681876634284310941819139817767233350075207827569096041161786561386835310152816176029898914476989614366019643554620380697612391686845542340072748159447231262333007381667409313986888004033930859103535217486250333446928685521835801258040361199002244182140985318138791397388899634275894826409169036251233858642680892758977957646511129211757671966294816613984391685843993553873820183653637874979294662920246356109948018638770530520939676665668596734753069321200703488534226753226757520347191588681776879032745665383516107205523850961951922968274384420539589744426338755264679751219933153432661965036443465235676326175058895667862400222990105703883891731464864476384378253598972568076271436709377265232743272738740012632703238983966925430795736134712718465464500543128243483897891912664283269470588492763236317173144873490430554053416619378137482388817166870670388086445406819785289593137733436785508324200713718510794592572955075290685290590633678581353381811692023945747756077886038897175715456601237903465424333195682398040016060171859134461399877970915508030193839748167969189880837326423745489396747231865100488877040691312895299419305670306696750195460201434515013357000277807019223121236872017972841676630796287507709518543879189640472671100960282002922700532695105405661334376792744840787382569579431825300339839339305811158501072682549303695186544359229698609258514907437882804557433697646741768782193875382934148027709629632855790699554873243200782966921690205372057558708072980962336774600416527875066911812910098832669753780058404042467156709910250597761382303753803614160107250780177039063607558167818790011575971940263069108250830814864792844833360978711467048711564895277154176456734181501378771582321827857422071555267549095043996096856387087655286995458122323740656556556571402973725798142319813188715386285003469473998261042053489114145195073218868631085815141847896688270280786913635297633023743317767841518568793702635525598094173770308274262705411947946199153606282437658497440831078968781389436649744871072683770156561571427821191049302176055586477089759819955421250300901061715654486587323917081520362494101622960339106784985894650333756493992220980766097863872190886682188464096283709779785387539589354305683785761794795290012110024152307374785570608324685280640611580631898643412254342926212949520266698858221585063508894893636573622948325232988069205392732959276589096038874526531699972906024854616254763805547893613566612867704306605220682611202158775207417822059573448682395087780793356636190102552633140712593108154380566701232585684265966108543936114048294286863198141291887706883688116668703062469157824944514520659058023845364847343018089021489795544509756860789594019374898678984943373766555143760722886840035710661308147293674928367294731718035647150863054270087769295239444588361033080785189970763216989364700966167488365601061225455537449777100932965314051728289265646853099068751319814422758055925633716993582800539423888711567699725824811894178238900609684768346280208589154503453529664408881151986473751999225006436451973594407573844986786696024312315723471420430127310870553719931945066251225247085368375680981736556726712896259308596146650777682400519942413993891111624608109460372607095711598589127278429351163544806213686085821032926961978520906860108246552409238862783911543775077310796966759229765041012457097210617550549124858872232769134663725761328221603351678310589152849624372682161266575290773319356320839044671427220296579286781934198091499093379505085700394381590309336240389432702695060225136926160618847339952662382619412996341800516529714770816227020697939599328403015852938059270046249747740733518036729873214801437270909562843660424922234883961209928703689382347627323110242916776958986601268955436723854103467827881277464451267694653894949894922934095782094246043601394807165195308856577078969425014296735489251597207408803610662900659724430213114051435739658932166628235296078103569471072502953273657097532952211440113147065855120628097658275843741059302626953122961918241725926502909100082966746926153954381217781920800233600708936809632528295247351234275520345659924498194722375776507734046342657115265334716807794219407049415831668372844947486188559010961900486674677536582289560541072000854408094809803822025008774935773006360798324042690134288541816287641257409377242500783697562983941900927900458308760299812419239724930731666793764461346756490366685206318159486696940086135493691479952230730159822940861090286281226060019135609737366686562155345318151750330963631311358111402849300714551994442461708599591046983163360965275144440419891769713075369812152232040072120822843405897291849287578942094658113986626416342453555331437360728011806449595124095137195590389842733262776413597027274916073561543451253686117011135250480119967534196312638547724657349559146693245044920928218641931001964208032501136488863667742568465013402003148862299609335843922037798809677027455985250605169173961043436559660581333691988242386927863632012413046310362186159942514084758333093052503539088469749637867518606455393942420510636536056206676094287374676272969529157985210207668422121973610951915878504665435726939904052141407915740237802267549646356741038267264864868309972041528789025119088664658931515437528106772960995113040097745275835871496534508493982610189764681717449556251796266043187562863653083820333199349230703665198565338518967782623662429968262400668562869541112565887501366764952711328228900597585692201365221661126029925320812055489790287354943987391547477225166671354207789096912736717560654040157598536636929575716527133049072771610221055423047944252041079236596432170044525355319782192496106395871045539987135571569688990002804561816369726609156980130865546440647809637244123133091143501754157846271489768151775025825947477959824474370438429394293531877889476454668175768489490418991515724801921844318187559308310322656121484468514437123622059969208126097570465993827367286759551700472807632415904164756833013031196920084613356268449931883367510299902545522196277730966832388367924549871254294149190606459268042044502694175691337466385370391803453221443469420508490588238827561073335282823579771424880067588935842100038049782978639506562896157151105472765407136515232457352643811799736294896160782581033113578439059706779100166925192311315765847713474781495505015453827975276998632969470141837149550048276201292494441483497241858049162953827287341436238909960223793148780369023220361644534305199888615073403748214734852553194844035727195233972849960800010233541795305417787412442862341632088438577685021071017601642712186024842754414618303272385544656324485481713356500401018113262056266435522833985264231593406950237705813931700544692640883157045799791113691724018484718184309154040969808153984382051539109007683531045413768385293956274841816610387675669277034758988337912268857690622791617644381997044029431436957421594058014488357812885675566341556263536365330101201044634228637978828752580335192723528933715389762168768204405685709215802948924912544217929162298347186101258457605645479098285728081700016355411751198329614380743984871627382801303822770895536762839494108604651250145884779979986593051034473747826296869273512458049135216724961694111970499491931746102070875031965864143468356804994817746959996375012659835447995358688417721905446689563871387811303712104608171555427068389667171344477898957899021212192551711681858260915970396480511684515380520551769679975485519614776198473771380023789662871465735909265200904333499007639942782543804119392748801216861215642637191335120393015747802365300185224771165520743646015018654984948795059961304954221859831786759541393258212277401507205516030951592249518478375291962281169395421826635131507247641756904231707259891460532734943131988500728939431196665493556282888333071876387235651430659872085415601354486971825839070995870592092612840986825439623785513251323490783234480648428313778669457114618353730762418928469472920933909940171615601192325565786266692525110383764281884277091825284684980540784436180621068788706001714970585195144339138256951353362120549549438005397198569405331551103480495059777669020024372478975738213800411483625664906755535107940945032705214067363426832423359348803457547785922958035887927881909398520280415873088943888788563013261445851415320644251866109724241986303568431052352068856800237872778126412992708599963540072927799559857801288081137676536210331079466475896302394942952728034109487815658601166812441919878216971521203956758568985027622245119339217119645704453956800537717174866089762982979491035714198536763265431365099789881114914024354843549527385392717174149220470349906520837765163495393970512474178725018256869262610232016170910308571828864332877701948341147444057984702532767809921411479347804318217870338856714165732635955049933698774563130795624545032209948106691615713971328829617217529753651753679815332863186742668037978127992549066369757577662787775283925944321585003250454600716959495244553827679407415034131707320213297213311358961366399280543916385994934202191021206076996254606091499137318017154951526998108062841006034124453494191919097776433032803173249001840048389603501016887450327445070498797721855255050069730881347804000686867667075289911334090036967647340911125432698811199784532858798716762904114203827411544328805524878282331101554992310994530846429684202045857888713603844534078266522449374467268913712555223019005457327048656790026057912799313577793226779882579683959369835824431205193567989423796610872648884073020751135683726377746098745540398657125153700971716245759561839369726652769339175820432611250700238560542512760318614998576474452694166430800411325856256051384424237126993509903213483886355440474694748399531176772093699911617007848438129559950842361065818537307761450385523727112979622110222411909489476361810798182075824917206997253030147873451106247710814681356961097024312909377093023364858026436748030989023732545033695661551289975270346879617290896635607460354301903605445263917868476317702856741840277658346941429563707744509100783755642882167154371528870385962871821965186400269912259839868749187555811149331550654960009693753257297170443359181566156805310382215757172617049343905817299780133749652244906108214409789456689992506414696276903504594832546173839380872658753980904733562118223744147896318819825249629074852079022621521365095548133312532216853043178605306870379681264306045434991293085971901188030315948329759805043092670776619701384778482061498422550050525186211711456855400545024006036763796650724034673517666159769473898795341795306875612767996254315898583440851702237087487520633230692264584666362819370138306258172211020346281025681369950720103965659103906821790410373014848387943213997579771748283168039099120951466476004360802235713247244903165497810293207368766643373596947219335447086152499511478181470593605791072411113408774080970232739770763002246063261046384677359820027545259394064609069978807421719329943577434722041662857864279657726134524133047029288771656786098358465279043792024248187029603778235361790063878264231987725359342721955592251783660272650800460980726779907528318603398081047807652232178091941861125321541454742966015510398340431845154731546162342679807538297098344709138512440692804186881551945526673126113196171485925747387548940533158635791137575609498310413544195538964032035008084620717260437878359054331493135731049455382499562730829135621637972585796937803111366246745272651561940876771316559137454249609347700620030561549902522913068472225763931406635297824456145597277527212470494272369286769794070026781529543836309097793453443984481221724128826520188291028059472719227758727761988129974194309948930718901329869867121583587786310894269499979531471081653821704029500428651725132671583353308100606700288883454764337260280479242355409712744299245751160046102435784325395034114573451843531163559792358246587455997143864644839158772698299603470043097349216122260795054380991064431875127940466143800863869783879343928553904355925317281623663404459166297823519830975955767266614559435412289827846210376048802950468460502281980959063260017086540199586349428421165637548668619455261528151845383338078725254880019405063559423619992831622640482768719443090324167191126668906836309517323857433450673204172379685406662041463830165507933612731080453850886656296021258848965820431618348364520256491924760892394661959106806004868634987915067120691823262492540910073672645987573460361839764701333077321378720750227544541068270280915299027680688239347027817781283312505617277352140701657136522894973768463915531828567024694344348480145767388105202415743009973054276750566867481513462787970563430023991293866005109825238924163608503094127476791623842695853822392595605824407812045023751968583205471515070656751405078348120118218987242716982521150308700412239207817394356901216234173357877085895344041205985264009453398353777506041098366477873540452252347579763813918593612512354347978067032022313786090726548469968509103821129905191904225636423104016578373841375275639959899596391419623298332897515301011975301650624865140326731506726454837420094068668301424698563397004629013055542149140864752332640084759643910746821551793460455879180763532708462931782777957940323472177698796083008894177384298891920993096413499455503761315699788756995876296569900784441752061693411356576991821784027555803457285844963378230045766101817884058867135979854978321443071853326197573816241380675950826944768949923015117659759458538584194214750005194635344788622779450139328917279600685582520256233024233514205942206760657944976535322895967778499770856600611678930379792696104443696867706305510173200668488299598724867829358310956661751324463043489170131064648771591065473217264863676511191647826720122375850005985710655216679145744002502512716144651937092931168603744201975299823893791828870069326168786990996937436824876655550642676219996609772757710181744320080413055416336374223310325469038385011289796189075908486159116330382942885505730393295106876909714096698663737685164853869753558603408789201952227941183249592549376546728342519613992176711425718609132125494245033557632117165481122287688395191314789717245361023088676651071386023733874658352185123359526715023707170763893905360024344662170477375669561164874492155384463165174576464265897633753254615547867507805337780669758208757767073154945269628923634561805550483661684841860726607042151228581988563820925171162194772353736715653731819749822461120222402467719391317757068497204909560607342798304656978284032247749117111062789083951204273044797473856035035348506436286353370702289353528763513110298798247332981500172170804019540932045052783415799395210713350898330502471574615008580037600811696029942328846498959042911037298656912831642479085265749988346172373095738007434269681748125252412734654517748191754897968207205108390748727460608499730476555675670819966752037167779076606913702365099894298340547586663377078441920383160333406757842168524924410619276378527223896479690670224847302162977423717355400682782926365952628555316039046786095010240995045084221655637043331663568414567604931743125736826785879001343888885336532870021421070582277485560480254805447176222062041725046832909176468672912979837826130525238904379920663242377591524166678183320141754777947914390902137469908505183733921322906385027322802801259921345198439029825462595646024478802688164501305280433744315872008022079711651085885582509415773749662721773896859474132234989041729146323406652455021702011821197670480206954753738566974583822243167054026456757516441989526164505986649419248057528981939755115117984203829183031265245593808431244505336225305471290441408618365520152172817943857049814888015029921963593716209883588176009113478839648998155107070073798182614979793475446047079473614877083142809061487546041531713360965081857033932592347651182131974371201541137907321404700260038706994520193670300901313159349333251708991640616086994289613992120433369619843168248513753536554144813692539415439586461480452608234450787982950071522135797497951020314201220749531527465085807074581920658969453935249083669847630262333601735906456443435599670673711612096967513103505064406587753318417754355916404731399140036576083197525056285960177701112856047313532417836680573187299514349526331107727682336232046103821256392396347977656233964908447275067501962029849507754166301307630078087417265060950808894826438624021055712437058165510655907265685041191088704266480206400808146107180525771267809926250401835504684909807538671353159775617964324382383918492669546266998021224937027011507435930595851035204668436390042379767272418449222539640815614253308388064896769863153330939130429191743933253123577096417900261394423159923992314046393748865051696623226057782583854459959051161878182876694522481081249806012536655728019825720238799199058303557871378073920656015141566174980758392854849396440557915604016509877509489117182722947008185941497870799852500109897832567257668370227839210032514946366901273809748565146274322858047665167355030344751045386456498754270324696335169842021719847869380602871613722625889802945622651497937129413778648670075139655409780330634313172213739865129257907198781470381925874395006846042184262754062849582017211103566232801645129403742520013700440567108795968634808465463418086368209449539681915553645865518477110398218583115976067438408061693284162505496385690871906486592051904703316648626693344919868093878413071003782762757978200713612936986409857593336316782535439328485858731804813628307723245350700002130363151659165005617184940080510914219814632353171932270650451969970670713962472794353119617841888882762867239277920873401529209983388822445180648540380939582892500870187200681092964567312318929517651407226398543602103634052198669676528475992893985394253451116285814155653368733851250765949000547482717187784175508251401574217934860851252580926002871995537012072482776259573118700913505654510601464546313081263296569632654772590184405841692532651688673997352345012063480930893728089361155006728861975217082631074175026532118200080326436004341133760650781158514270554973068887129630705126269249685359114512947230729162066655625057852706297596870728672804055972356799144926940357116017259967276134982240363045497629759672041400964601955571373576574848846055291349642203488167820864578922412322942991653188906567650401489705920091663720326307675219822886470121351289735119842170591342657374594925384438014896733158861602728392118306805845180995527540998002983571270358379593013917735473726276683814598086565951395965704934707469325189926594283777504077545340384363230354692492102053094986735554085202318401064475257104850052819906561324192466322207223397424184292372776373084280766799684415478084504929341345990896410844216422658603176045145638988081525170351462138855083308749771893623762119132532973180689732483534912502336460532038450341808277632988829657622137711291237216726024450691176669900782028090636886657200276660539807778023851627863993955844313029638611339759324817276453608519724464742025366776237886935496417357879997678251177564140881889945480069504771758140403544263836854177409233173363629998787814787608078027042527540814307339067075364511368254028190636811279076950808487425220429552134523178003179613961923314385373643955566644785786069830458730876025662850307909633189726747126362532839951938456096300095149687401135345799398017934669416264888916203517549150072955516341241580773532742112092037738229208745623506578295160623500904100404447302684776037645517631842967395476866195879964343868593926468808042168671896233803131316978612919594395931890301575888051185272154045519207259551473158961621890207284567201668570650982212966155476922722319001425630702923194453639086043782928290492615637175476627113814525541312342017347398029724314153209145595585154613475388427458184971477915900697442170956649841155128680250877698397414179750571068939800339574137874613299453191605602581247596067707030393227508310032359609980351423801306226724197439376797093496593448034993886141992129671977243121387107232963536740917334564134205574035718046164024517427847045423935582518060965617089658188706892082196861361889068080897308392106731222261713660418085189816334927014858198946351614291442989676299217949016253357100784348045636179677876309223142098778749657982155357113347685761965718793606142242911899687962488736291530753018850295778436862966396835689325291115014419777043425292213580800524171306758399043055325997557222353876489547325383377868750948682714049909755901829982515121946953976290209422584136359177586741914487586513107374327497615334604468293990276142695567896042736878281977901443813415683365576490612977620009920341718526847097350531542595902765363373243582845950589783532248085705290571467074668324842450033546848246963024791254495206110136089358318962091455139886240899492173961703902839771486337741885193671127444656265034396532021791435471007870923725920733633845988358901369252459673399614794142102458535915049708207939477121348572459002453656255767263962624043455160462854815599414103395188069732845463641199027752429495592696662187042365989620797008189058974202129847455000611900457655055463376549870671430379962847728976716846610575327225489469423604946069531320028513239620265002761166757353910288989676443347228970473120052456243603050248952394428174900118600664046724239976549524308964596365433301314227414563473333789369833127642191615741276750682346278467630854112393084707518935412965342915232336320722795288608037235944583384086994773942660137261895066985501547080188943018523489002610855711188055295689735433093375992286817328603697779665321213817356194759465106129166848608930725926983824200719002572119437108921907720515810093223788706612504424888348503892719940921935229911990503244824572619066192575627551245589704250511820417569684627396059508200442568593100027275504788888482821291009249952359352460662150735253159542493480601695075411153614130128289398229816014794186950473108267320627919223722603728738243461776369437020395200475526124744079830647512351410679910528791328965371891340358636445575724811083784673670051682790041896634412503305253936737199190642358553915086210051854161640954883881598112564008421579518819198073083446362068870298031822613820096382441850015663910782734509826260141429609776427762537949660272286331240732432676169019279265174645228307944045835957905742796426382206232402839290595049703146912978526667353151900699169663351143722034736801082767895794415596318606819133365656625941631014876903560306836537546047630294325084416542446630980246242371689459770955498968767455412843293691645337884761636695210377039909487378333144357312516985932564275450655159208513517924847079214584052579368706039885120647106793308353770671278205802530172228320311402546824378312213516197556490407681908538328453553508281733073534023450602991305407936219538694063794134117699895967352816430545188846880227418316956597575218898474114706964641838413750278876935133983348008541003792989525751049937838906939718605365290200718903177489161540733028829227402735970834154449295662228417200527362644321349246570062726022189776037587236129166065572435626685693388708619229565983128739922124940145381813829114880118545092898158495501891538171665245822345264484223481141610556933642551590920137376925408880031440256819435702588500483438489484122890082015588565703815143442693251652861424375786175724675482321625757993064730925705605463454243267870383063408278850821565352593535415009220523708359293606099219241095223449181057585525534040666192055314029229690617773765569760719778473171613584670466683145767394872102789899973329941429504142339434459252683365513361211785226715181940277396456775010016627263589428830894116188555314221047627843251069867267096320801937074700109906587984536824379050422596652727505409466564158469684674975039648357264907950239026046023825798219591077680956580916744507281171176247506790017574125668501341441204921734747734161360855149992342048991423950001213677967070996892794285448679283690817606795396014116500450948404710968253696483852947848897846178717871090966210976433660315189315822791131766966629170325646246985234407294416824872507460960397835587128104615624189417163435712294750602917912360930078460185629889633951410796402100984599777787420685189475677223317439472626016961596902423221656441575995299526375227811440436911212013179353202893538850933212079123014774876663670698293506979185235095031766666830659314744380917105624380155261644611884200873658603338660267543794463845832412765962198944599049237274899889490791136300640842957445402270431258995544298035172513688467147296381149981280881566927124887639335744227422876850686349107133481631224799771389629096313359950615616577102610460720243774674392086265035774904014363873230176121726788122091028294510958041181655388749598617757926390386991977090720554584028196372410657934494124941545098093720806128850255460775802136809322086288186599816929182197598373160929251963028926433402007043742642062151664235689490886433403352875125193997699796052163949390925844200983764189541059150187243050468963921337908384696458663813980583911663773430544730417690600108844132668977276954185670841097541082100313197957083760038819107980818820980287728008713299306012308122938426632452225511608580965438495451829273653686923339458271881836668070373939220797028644054129271908173359297566301264174487975238968570534271919847841725192992114193444737927632311560192874260310380556410823747977327962032492281513309461933025923430552996970249948028758476448539490036845017523339111403407314181391226268323142777340624633335833948586996758646407055399568913754902564519482841756251126999872648556719756033365243866085942297600240842195969299507702073647249247444706778829471999694886603720255954416834938178759646569675245704358285048351504724296441584032485340419782590624186993856075947817832036959732503660509193885580848073631024641520748714116108468568308341747073600359624006612455719866498851714653896740009149465807249288114253984962270747124199230555052927355705381821733664843295982116398543144702254761065791832374653183991431890205145243313345550367341405598693805897203168529470571544174706759317386570115928451898122253146761569791293334880324182381323263416859913403463348555405170116665849921534211018870811430000287037624009820670320039049026379224604907757604857962334224624090470561183304545323769724115299017152889796202329281589737113261895691558551863443462543006664930057149818651397602165742968592440791849931420558630008761174864619745968335783557809723163206891803277070654097086938643373134911091811585194671708200568786509884024747906422472011039969812811049961453190008566063139938161766016818611228327456139280463554506345606135056563074627439964723134265085016396739865875170864618314284526456159308522988513982479490991992168431647034192428530897993904010267236922045261700017722729713954106327592195396777415051550709866125284954334190201643877894067690988297485149905468175135313304908338734404890539576984648988829556500010316628055264964377688618394511380107983424899870983258293015308403919844873300385319202470993603934560332972459492316236275592957952983526421751870951022745412145246603188749425846901459641958519353998459855637129569209336739716565504669330421564997751976816792380236485518512009763907204169212884188954650829498512961502408067224147708919698051894028576001759655565666169330677122955131681598782253048900450637454594694782281216084897547255395447947895681623946680565726974508897920017974360269679745106538637070284334237932712829207893822443416480725430958300723762914388793843289072310128101640755369850785457630589949509070838649496478655797028860412394292272987809432483737494230936397720918994346571472802438360111314117205675373728630625835530885153990806589143626357065811400432730465449268795987200989812710100962416500152631462506704094476577629315212378273447191012251940214331196363928196624064264699445878208099328514783466621431866044857905051575776306152196948398096590309903471210879204317484711972497959410974799630586087718943928123674478768096088550017377823836287506280752991314363278391897478598966902472227125746229455779280415682651528862719584436536604652182845028520238619799440851612046043907101653884654069779106451652369822828867408382834805120515322975677005041414491623992997385331058953057716586995365023314655660108642902790662011443847379120196975751909493296898603342793118847895057303361295839537998867111393604604620930771174599104133890438477948001844749688977064959603399235742433253131573859998157015891358187798734785210949201279703945581287228530596533691116213698261257333155887460038241606519120814516921369330459111954149105510542150776832366034241816396598930438651537051026349334014501528458494556011009962731527738131689968255600028798561058146116559276528719505914435085781762998094245901089868811034532166346042439231814574190938359180453625812623337904553875416508032342352010106701898781952511161730353882295928301997044826863863534261418489795384418355160728563072342525678023568758202468825439958563988690965066284911513356291398796692486907447404958938866889754353918874753425367589439797688252286009213585592307669786527581768475470000870305092587977313410170251697946513442517170769273500051270268742943905766384332691483426230712678286096790457730735226834685891940973903158513419074330738585828344200876216163350004867257109889154029891522971070681944463962648382455044096589821181737866089968710682183801622576480368296437845206302444999936519610940190467170084070770761637937299409668667625880774952450705790376211565433906748969078390843894716270516774467612137227768463371826369465034709192951494973683181105405572167489654894447117731188144005522841624430695266247924810668677152661329325091879703286764559254588405747540576780448183002252708141562059784574068760839140050771188752216765186880525047793991395395820902968137966829613176097733733872251787354417102002999965131727509907324698481284139871901645142122904890546552987947238532370274351104540926600674254412139310803505481530843730912859270916959730173077192996048756151301203563917502343815729033338768839667689162247698673322247094024988383873729223848347723344815094111104285660608470051979570652121149183738235054595558533792074886471184732851144200584753268445784150389629408533043711672818402179584058706027692737403898556660570978913663812443088354164539396112669637278672638493217245520652282015649953948440628997515700999318583556332502891126758503382625081251003423099725018183487309337784457446738288644775879944320070337380348674510961590596076833609440745775638557635989784411532668842078958758572439386830786255299397011510240322683263194441066503972738663111234820379117241717230639424041956740826976331889886535063141129935964072595136976956608034174784400649764866527558865228522633180874220236853708777348634784648955072939536885604044645974372614410134713847071818519563283936634816311233436558296617928208619457105303584918259956546608800156646443126591644204778809535098206459782607571821410238025301523956673474414857926309966757281617530073967179390450651477478365639616920653948494029808191421659185072097886997244663644510394027421316336602162091404001852325070014565950212953398603988680018389558430162262235556251248626527921302079869447288496348718985494480713898988286122376704576611837613459722100179432905421543931408699208625883349974540446789845893803873142324962295836648055706321025849032173387563649367930250889409304868066371467662196299400320853696945039966526702154295084756509889944535064146319608924480546724543074797301267100692547435347874180682935711818569390817430510206733287261839874038467255032344728760084509330301938858114586457593109496044828633257296977116959477972341329573027303615932489873355398758410649944455423313395666631899279129416650769969873221120687137241302042702819616421398858038466695795004772382401464822963085683882835878295824708827365503017800334765003439910613799066664065688619393207040742901274655289521593255774675296146289751809042893234576071341936872775212138926683320745760352434792177817188395655842470249449972095865128827184818371274437089543813955912190581936275435232191159791904176871378104489758021057686097631001458890219082659644968030538422786579561225384592530828798848152870883652619392003060434123745146376889679413899847575943478127220606944885654651602029961757034965937557319793638476884181188144933152677773767090254235232813697847598898108594858106781286789852297313182292356665643095467021778959308420999339726461233619010710035492128857405198658623945177387173875657969665013961598646019096291175434088799909482498088757770474756288780232460516153540634773702681882410527405774201727183216374789284375367287747667226248908611945849365540533186021075136094516979977143345472447421225548417028091890172882271765971432164645885414040374505981997292235114492899749488945808503594253320123436011694845819578253712016425945505596170102778179761842653920044519189192604229442074185816827005335388521520038115403473979792947982239164371228203506046380754947394761832501325121667871922120136647442541487961187343841003861405839538005300252795968431576565860138112813261124365088842267480036278277207647142791949543138066933587878812174912263878884908148788228330211324601370416173500122061566258381951718177023140744744191154975831401621841301221573471969926335962758783409180684011478074438357553498133803046640469931857807059496673342577929614431506790495558007987196494512429261625903852240079998061260970419087451643393558795146441095355371213558646469934329054540715046115575548743925649315843599472683881432174829403683839223323492211034503372637344513712335311630054940076939847934245228605529679332566595215177980521134784756813262950274350000215321140012265036726452701216200849974901263342973264597409701143747526884866909707393518378980951381109709013475703787116099158112802903214253750279149345624809073684445998472104824756956098480504791367218380223329579929188751014179344584235292817529074701659087981039368810626638860160048407788847135283061924081538466675269548463404382699052629689722444270281997043034274457978172730064320329707675029139502165166059197471912665271878229747565731806948575126329985588409430906120818229923653505308082184073839664234271856687937613786374848399965889585845513992211691429360376071538627106133242477428744285705520028573995890871901738438283145859484077531081449746618443904701487285267100111030497360041887015847453889294370729138295817630980330021049776209834374371860219184518113774588062789195418653298281855026356313761926481416688963404310990069489045305198257235440662865051867824050065907095037781953022900671833083111470111108679182058661714748136072324391078566867777288726533921376889219675350749564634418011472552221341461057166913609618310877266991439949336193618832864707903060199583125562554274550887058080785627293333837744018499351637134121746730470680511805873295757733340229546808011048403255266452014972466142564259528492807144658215793641943343587106447456424463580125978031190310726154424443493487331058698625964187938876307104662111466973830198716696487347896623588958899537508621530036609589755189891189475590381619446682325428773247229983629289057272536765060932747343295278334615706165471326412504172709079989707585502779946734134369149969580554097781365743360733590492100539376890605908655526450060477492134816815721335361402353628211699920138748284538469005080266389898062442691481193119610410697803943697612389979752881830680688182385601764858532633988377330344772682806566002078426242129156695384405992982836120385164252474545340113223805066696188468568368350509216035996705551924658056545511490320186652632707050520104069780378123078024096297903371344465104538424958105492453662723289510069228046899145514044153840412380785073301123247816040212774120311946094327604356932064287744645234404982494074985763566395390803883475846318820542201001562515891914784160911108336429141234392405853433262282336622957644796427017981271521211360229299705720977999957158261774790169942446447729049348402159120655191760294791111415351453740232650777659745806594693270039143643667370113567124913426997672355116932445322565480175338828798016694163035375279423861332603445059080937220165457742930244730200432384063767770898025224772062817069921231264779408321928874865043035351424638009047858849409115737635260838194968427796770461842568574546183907433157675243852654081268582555042855976314097022638793669563481913233508489205025756881172399661820755989921595550953921737735887490782196344916873717948876992524116592507786992524481694233711039690347570647460394551964397208296188776066383003794846237180282571388946637623944169836242315251895889112949534204818938823721214871753715410171122761910965894293380976640360633805516445817128068941082742493023138970343821716832268722651238719226920083106466239829403811702049547776735598008221208155277122474999677786056340591238842812993082584507845922912567528521622110024000618718653587550565522286444467560408768814568793090065871546474043297826201223266201207369217984421946661167257326216988948441670577480022632401671244277957050595619193738789445208193918476698639029350164455507317601199343569977174977336378698764315981452131335607869318449037260053596487478649469053588766406031367282679113750336757422475577897976749364811151141530665536049594804639896097560885291769510933001915084472511961792461279652702693273503804253494792070276535529302131781420658432963119844563558852364277111447197649617846547274875194784806744346667529704280058361300581994972752833609744220775567694365363947727111359007882695629885619802550803657779738185527220338433720694216040170618575349959757266887787442836562121442252104074438458320047959299239145197166094198020055455368800418448508223960020023116438767055207623084001627954600767990688344086885423835262262788387762763630932716693204365211445102243800506343870581179302648238813391820341483183829129682664690734969334376775507955797388942035797608320956392198259759755144312782775704022944423609100954846782492678478040148018677433308476160052314605018110278468019086217458711940401753964509504799368191141111715574575796410478397273259629817874218497361401395999478634748147960489599233128393803141902002667946705138785871565815332557761761415507780885785649272265352795324042610956287380432068183750241331363449742471366443791136536470048735502897631104155164873520830946665230560096066354988946680369012627563091151824534552070444588040183808480151172923948093152693547174630877329430975539951428327535356828895183387710685251869233796033400112248081074338195063862787601227760609194667052213102079500731868451330761626970013787469673194060767904862757316536627379662514439754434207654241509247492368176295769685643654563762778361701601627226792981498044676820511364778982681776453735890269089278844341354046081287178444361457786234559037404605690594608724793700039361869875895761321901857002764657372133069196920362417396572940862935487078976530761627823170486926962794484804096854436419305655801871526891559961769168895229520067397685125877615397313541121590511362380710622949724540767979890787598297040556020796391028477015223300237683899799123479723041176281123602911819578074584619956800624785365944763642921450750812103053749018029260543861653809150631334641728900768935586291167986837207714845143777567181558780759474804851141068262495513708605661507505533801032692483271740120891894234340550453025396408762426638490486112282946585094438416693707845253282034899230337310837404244313411464215894153099683236721973446872042784404798083454745288288196223144466959474435593381026231541592209592191143648762053104306994490719285270452976197450987119141889412144923690333730619151860914345799715111046169611946002161316626194383840645057258754105995838002322987928695849667768847219702323454070820062485028864010971625564998780807180780505493461654357028955404613843410599525851316276397267831783172363670300429653251260373799349675867657694583215320794679432858870698783492999565416328618121589922400243745708550405216202901038172161905854035836066738905984632968252505631965740235859188910897195164643301158176427717458327405106201983070457102276342405813244763863376846830402479030925151235910339845555118194377836191329034444599058732803662814872341806274069752473676623342222786602826367040983431923864656649316733866749449277506905651606001856278258674613479879106273764718372620114114694265946786108597148259291702178510483808417869991760944456832854031393967855387929670372300928741979193727119240918411042523583496564391074408911029522357280429482152945553889559499394034038900775258571666242702385431807991861457953155296774059572965465034444096395793753342936131618077867412577019590658091241740087016845775877350753945203148089560501216638642521569682482422394494142783582725955603360565603326847738715269276964780744186967804428770654608247140736710661229970035771747531794394456048336804956415720815284474513718877144818807372209203393822781063014891065651390605280940371771328046115007484098835576680426697724351122881052833813832953776496252330253694456762168333137939049368837916146343926694397009858449862305237308283893876867955179312586301096482466176262317530532314443067319599672564227597779641110916988470353076150296487342740396218770202353639414423370221828648969915611042452400123194033340257424302680126321009396383005055245912240134325354323762295400488850506543503766911543162407762144116270721816474679943112856787399904177317218330358046231441199744472153104852614321212367903077021485911778401841493226453821715197481402163339430589373291641930491263252025549529125578848407560169932983526463291010967506481905944624667088289680035001847983018414709091933498799580332995771377124948826654619146801041106721007893546910332290038189153269791909774293035537713599383616000038499189895906562376194175930724930430473251297527506522212420663204252485780455673947207652336979399752765513481853583627610704407069431963741345004025330217794783877429822994610816866607824578608972639295283845478494825291912191858859075958785766320852621227323621103244915210365296052148408449140724059958687986481279358973707595654654067880540175284309096343200277708049891526604940833325638277610256159541680067640498623836219239645479500656782284515430347066359844048621824692833225119182515818027022283709003499682617301215492309320479020737700112040782800032310102750447415311806737309325688995285312847184908661441559719104387503513386592895424704108842191303738743065880117458062612331417881241279273009478820270472118971560026457548697597519767100961949726486536161775156424690441364023322050557302586225445548846605799165875719581506013287671098206221999651997765871128671088068763212381965873840664207717361783206393480600732515061421812758237207458840180042814232178841397258215960961192631414860684078581566550274697411081638287532012663715731448034738174825286359542285009164825240317106483353000416117771823649374780024501211935065710593841293972534396184931081253505459707598292793574802267952384124610119954772209698869615668969615749702676835975567776931838605066093727869485490916107933374990501309183950678346126164897786100009558166240330399534326563945214415368757030073361896267434207650342644611181445217082788111343149806301840726790136548451616004106939974902569934110476763174515965443235116988113624320748555913533711867639107767386056382317993414122260460410503080512690387418349059306453504401006401728268782889948237379869226474755720996648602062626360072706737218002737422005547765844615760421107652359701566866371947191602615640433023318813701136444028215997618584267147681303655288126685470279474270240141025869007663556524464598447350066540336269310584515281896749991836419487298734298078811627186779774466224767818027890144092852388976864686063748633135642356220254856656260226526332823092057114891627120706051610316779036894558812480378335459357481675197636676934985877962256849751437849397769654504960092686551684618785761203056993745444701784081033864087453997224172481482871165699402908644056147372999412947773796485704380907024341268153686014435101897799916233555494138214424407498241257373758798969024849483482587393015518612674854111613724800998611484218470933659561245644211017138230841254028126860873677476805879745051899815511501664762426422010647092709119495481784033610694907956572631119213624580657155131373245553815809752516886587876103712306057052887110562443974747388234212216227934171118932734020093096380286036420869370492411174127365818209990282926026726698756248700522537414281651742334636039364378642089963843914080542315021084878273511804507615263221340309019488131925982952648780934286207265960734561840978475820891144751815595072466331032916830856624078317424222359152395237446540915562723621154850036152062017236401539328699952858118452536161853689257948705748781294687036988164901019948843655360486875008866878738303488283256315674749134588327040634519903340284238977144524766448756277353992511869006952550399495802322327091528651340674106341723294568715193923489032339914345401941916902059614294048015798761328733206541004537161906680323402286144257099785788400419414272316370999367444548283197759348642983579831317857164530563783485227346185618163743714583348561087000920368875257896797339283205274912092781425665742714964094379941870205660929271510131499208158479171375596075953729186260106448580904499802526427710802387484094254561130088954027749371337629039861008406007538361635797988026675231626567589543613662495863325073372136012184203874531271638972311598005021918097643643110463301553697135199859066944279659596569454476645960796940433115679795009186153318676870756521784607932795580125395055385042183107993712629647787621939858221216626253963436738098930606992883068198470720540249546380668839088182217223709135289976852851213678836513577746229686569825350987908705168332151699702383478129978954226942133636335093478427539810889701361345236095758934677427080014920229934598873618118463903524327234841969199048890931282523641705088899368164150403399522836233315219169505287863582107373352787734793710007070716596973483110001145797721928897398518493155793633696841354991306804276816653519365401276996947355627419280401974320041416416345940916061371988241177598917909060889024979815640502034108879602344400584580607492215291113713575795364862382527618617186399424149481584085060323821842543354017714048414723593307204572030535490016818407866908751499942932787823720111253893120203191236672536356278329832927863063426480436874955026429584321592834345202347044472437760320721415395481697441290803211292479705416966014693787780908065477148097010008063518789716795250458531997540411247841527543182115861518251834787048612781479985848229294584375426372168518388564796647436197777805157544273517540251775099533359268697724864114930946238613426653676276558180535470903758719430057778774561713478590412650975655629616656543842731099514814739533437516270184456265563112491597138765741310665933225308991601967506079355742943283459298487800684146303999617136319748031959788407230141290516920279514251092059247766486981892744611844825519342905927357256329816100389830074104490392498935036796475844426445760159433378088053043694153028768862768900170578880114994272877246131130388838910892562026367133343477232853439539368947868061241950014936184919412217667348338308381875290331738385406374594688143108462125829947939247787376871275752644936540759524242878428123025844417943519261984472643762627462857204180156145791684230373453864641759611902279588461012653122737584949015334349433012576306653656021088533678979249903167690842012429916859668477898078347988776030194333078165882287799688198363254368879576777655036002259564613747892571571198584946556530963013899108498876264538386124281271510900242980327407856586734255064699546503107429442918693558768417030373393228640510784208151614242552864878158892381743132582702333426282615528480382272366803478288569082273651048791660812422587707252347349752434193084878496854330220336021384394982751402875281440118956540295440784255407937730075725465708107344544210461293478705465646652635818918441423250394845493348057986718207119156289992700219896351061325721939204470408280327240151241276793648179981278903273387177178492617635293231870860213406573633788246795776102948352924270255506644743576368921529532209610256491525967149653200292712539344166061567890861654271099620536863204813336185479566686599245640466462045851353219860010717583985005213792273950890292867135327579182366763993790167084814502307289193877412379316495322770225345418357223001157174654795295034898698795853836849877072118900162119627685753866453504377285658473383782166774180641629604773701227871895616824037088495534765785650555006653745237227518123288316196863164286434615826168329692383199550466655517754523005540798220193231618028709871575691859718648630930006273070920663444889947504448342524068401912339272513994244919044236943051147159079535252427114444998701216780372100421247989904200632616150396689908664830328543252681300633986700245566324254827003501210252295463339111856173747329614236203558596559559847733590417233851133231048420721961233218747049890140935504387689629210973050743936665622956148167405087173686309985035732749281379591022533067068722206411652006787547617857339211516686729314327262622481750073151170815630629748241320716671233751515919690278504324350450416026831806531479444237508179997264743498621821001835869507020162898785812064103329544850339898466153503911182054843492135837686815466877924764202235415491852982732902375963395486118336171611476694669686839658628503040748781077445288643809090774356070959215249049248641310755031798234143898865911681878840848668266760322440284437002447827172945247446476818362634177949775515666888276434208167057145010865014626991856207583687618963774747680536569072609200860792110158865316275547364812605467487372938240585263639549684891224158337452259586277270271167639641187304120037890272988006719695634795959353591725059075270871918603053089369404937994289302076273175420474761984661264433259170563180534636934776402457318173203786941541826758943351050438972451741345409006132253685787630910055644918460641435521495821599175577844055722621175841389920872656960471289943056734389096704559444347364804946486930737556741781358928822986483592324243151666697574587330878766749175525989509238340640412772442217855318902413648746140749176833542917529388053977218641961813666677740698723933703847027851853542475528892895683671855886116061311127505902018371663478987130631264000342065441368843658055893945950729996321027572040964221818742318780863902832963702529930496435555591170164878259638114266255686415245037959531560692610775958125624446791351339290165192888834108157478411014476561794238812042537781795028893618380363119509566089662419322325110227921428645409520563774237802087250804519676380808993552903753024968106546432408409083346138514052954679553562492012245732022985269242774416577060171519359445287342144030483393618356490343106353707217752921213965725716217362499908277606030560268226676749592399716207480962219485095898177139800985584471995176706035078502285486788016684825651046512311047802113695880384158121212589672649582706903216894265907707216701549746746098795211831823267545644959789232249972352926017447958587675819388500072657382216017945746290366070351197803458532176500024630662979109275250798721856129247755875091784705177135455362862401632647283951313308979236176684946840125396557566954195029205671448435177488520109959834981794327419353722230908027935083874856836310153163449565256029249653427372786855558644607986818193875448137559610332454577893385941308966099674650778748527088965735288458843434606217706156462067561558654565855180993390452951405186846087906035238745748333782343895272822150636927994463254013558868686752581785806603643495680353156760861856910728833779669888167697522107956478516754301686133522316853959370815814284975091433012316005550940415827570284968520031407712913132752617970061099155979708851650592802115714555043391212297922112509341475270985340803173615420976313256195245414982380762936803632982572729390499019859976357981486899565102144388925113956423348852506359520880360522506890526610146252065559120299754070965402327137349282576901538769150310441133018864435779036732571135533840018947704161395268692046509075791276103371390103890440777938099567974775320398039316963242593376629591324257997656562497619652315151278674641596032429207159441417036191271884277283168507121134281702957666105224023795011246201749911523420807703062983020781421479550656939948688022731791456634961234840662898622059641914276686385272105853755405742748795189538854969262554678409487219702832674571202599374048155443466074312663225221978142326751010042308935936668345085803646706820939013431687610370117921436359517189790047949989170837144182704864716386625420941245176094361540548520195932218216406202660874767091015841111005572636786019834912973651456365883204387573653619553772272943690481188876210675944939102488928453351373953122598774944196372588653080524172961044638539651702247495919776479796626348018313189512748946380177042747920491088808074617566154280585480919348053393051117922812678447657866927576218798067126961797398160835950827627125201627775327714462287094986137303245919561251882970860603872674347237451619663085059160833539909347376356172948090266946842281310211190002789923502821418497182376159128925541902749222836760893771801977618068151900077627907716200759954666553412506030676301154525515234198947191091761027244254136594009819273954550896836283871003146389766957468672137278944206800284421428113218553622774023588330891769282094246225608454156694056719815211117432927423091440679008119304988581697934421984323266079658854744061454636336510397273062452522277387507725513096433646599469858993496943822185726603765549403202632968429079726011982426358708999054666532718742175925744017766701048536921182172086815133203461124293634980835433595557042192547560554240263007087095541487799504775263440478525612589376846691430541570019350046526276345348196053202242682178612561287000431815404450103314929772873703787703948299838225892275631145995306782491056996932893482916299078499393051984509972156627681401361702260611611004205545748173227383968035898114607611176275353974804509089869701585500878496295336993085197391641715486898004845139196511398473603018934568500514491581293909337090675668171831285161637685629638056457187046922998583602332143428333244955117942632371005614705389768026550896301728440468653192365263985660909602642626700594176606259846136677571741030833467675483607087898156582925498092710141976855676162652309869773057643831265081183027703471999378082913779119120063441199970345377253528525514739960954471921285002399257925035227184950679529389267065031310252720618036097674686070707768703122579991697255945682210818535769056242210829803082128180680117205682361601589345806897782220193846789080885864057433154042500350031397670951225021889358336781220332900122451173449765968498897130956222681698532703691864667149377507111580834142942502296481454497933582268248190270789869163610279323369539238604514119139634125044786700426655071642995983241423268118261130836124698359704041623637915587123591799864750204311157636443174789690801819883225461848573856836074355544415523552915265491552280131636057608892439652439611544079261769101187849362211092730423401228656197993967719779594253443046212242053349050510906010537347945568600928227918034180705475018691517089416385258360662581687232653586412219139104700563930578731667308871907611142348140900996593551514917290632599634889423568348592122198659878347919022661174332218079357861899511786680027555750914216479360113068787748739313308104568125158914875206733793358986837786561149707544679752645475362784417616728909975936152405094676168125232822089261345170673936300600512965917237998461833257699020029173052639614705250614131104642354287776139242669938691468644271758381859447256481896423716834321325428744938217090659249635054455324966125397207309451012661878223092919962044296003663355522728226510437368132450412242891668810218482391007350841559067681434663633625579017095786555044620958382241415887096547676136924011559239948916485480454314896542693369198721379232132624107434122028046104012747036085887700282867882956432912746064689912098982144949940130947553700200559925699965781832847645821247003027305394541464285596546440468044939891248919744513618186371927940947551075531810340592123203664937479465859053977165109422719123746827293431846485857633997374634422372333332904829367626195992167659846744858090879544379436749740765205500067466003713818946190814600078396195031128575335341853767582393159344108175120478653642473685723543063253136491880023456761024035727364102042891346691213496815996166286383858430927409873941646342234735522133327841739868129971806287749272801936087455102340770673709418048341615326436585296234321148342216105549494049187944660264989611763555390726387179608961674896142966173635051944685351245595578030890550694258305861026819525721286506727076778961958104028220508816247758469006318087689372698622347498428231163090131110296814227370482645892567989520991546099356108275794002007030959370123909914811932583448501409264371876857215844917374754689040024969769179153714677608217470286234388006458525775331728670655107135423128413998349147933959801916076770667583689924093554366736855507663797216084741081476144792155295147138204322161143522906637574088165826901081142914230984222232495062986895132852190196595791260919793369297519510748481822945515494510745715740212742635809839040871320055323284357071202853266489537444608127360880435003614331987375018777607070899282470149346255263015987329278443752770686228145464923385482768039944613472223864399345037912786892300292173339602387940048825461944673152598619706000030899090351225138508813969613160930568462777748094651270187704390236548157518940225209259002986069540685242293240227189234351414087093765559594076997846993787699453305441036743861151807696470850868659076546912147487752420068837086982897363495584879439890726819193770796609066884155867605181136512636419472634610486740296086838545984948659225938407794162230179084712567686970563747129106192261010271240134328901959072557392006840113319156356180032171955046566813753002036280710853195796965859428653397050746281329260590329253970052451927971772216061392537609232942391245208941404331579350936049709790702944718758603462455782693018151360442571045094980648529935449981559853436401089237597360255003663604889858105216252617534186150105360364195974984101133364763683232763397386726443918972053416510219557387041051633432593613921634867054676341705025620233521501244177175957533897759605768013592267606994853936406694818048622451186428742777518058614064025022650891309111601463952057568824175807381342485828758662024951853356828775516079310082041104670163035888648579010309639248814031790808183882164709354919051107795123853373837455722261977214395710477479668281078796751271164326063556391521813274727691775645222175160779952970085800809410536632756571029553548469106756815737582108037118576554618705586666018531194194144383031790606602221130222157151420478845958415133834469681613014865412014017821733750257068926577847050300688768077677292715207708199882596316881462665267937553266805722710707577375594681025616390114617567458076611596671216258124080989169460521110589203665977377878980179222107191553888127399717650855827913347614583100465259403745975388504437051153913376217171074658834180642837927972436652448672820678620179541135330364474322440449716494159520229564871226985752002259223669502992729362471578118198392150636357783593709733605548138080295498650426265512466016792814524009046955201022910598477139226756153726159661798776684883837415726254796121322033452293557933377275722838730226655291506938240819295202149560441821860858704052942702823198293377850949902090856395942450063426676830384119405624464986991892651581925892892238029344183989145825383281932797808713895294917637132727293911837278652933150321448978141454134270124190807073836416734448127176075976670141819662938685205291070976928912963023865013270299368356587264059705030363432449366402924124722617761358999611247456612905228632626588894079752615983094768181681416288076595624789977095953074829844056462651042816445270306522060191018891192552253180592519064455698338347266636989848315489513601248686610469740826057877680503009206877026312072573268606828861427878694468630137024382626726729426649485151199113575384158159103815199375373118396365582833598083765064089554672434856663635182802210202312294453607297855073683945366021006823817286504604107527602967615009604650995597279369781262050124538761837364504698397876236327300567852281061523738000915812899106800106177424047176547704806346441769834137825004021141040187210790810830381789295066634927067071728168301041003035758724251414854672607029520396939232993221031290755471944103632452171539678545632119441187680900048989291613798716961993185234682332691245741634186260552051092484896855458977110865783230332190301165746809749455799179373814688117734224363222487673337216387448326784253652528833555744470301892345225407635101875396072384188677807452982032490880258069090352121625098261710526368489358783418209397155593483198549533386742029516816119986084255532399808899561821568630532173937833499218542008638317394127543046989775465117387394762821794732322427225620728138437127401362057436880820669318890853475258178226925840360408941460470630332833672014378593920646833782479035073572662253779657232948046240907993831437901531969499186837407840004515458167969435357784360036361393059948143985359582961068054740012396996318296426796763440427175977188252671661684093354538075199195803252241597902257442556630084980281131108399233715572289229538593563756250172023920463229044476416443555691677111429609629259729422171710702860327834069202008002226719826465533491161158848652287137073044017297482709041644847723752664582663604572738170924267666990035764814377515336380118612483798279500863591214299284589475151874591805875553993165963696220063110485296307047003865800376871681176917147924884583961747086072179481161803022053182101081289422252968835177926296120132672230121561177468022733324937425590900202454535825043227497926598174797365442160996629488144728794809014273789024687383153306084344256853992705259462178649265617858779869085903796236287912608301181234710315595797818031341176293938238260831219436284198719035758582370116441773382130775558529221154205619715505685807577068296024789519103439389492129579499194527709784927772881159410458300789058448145299087495710871183534764300620691159784350245728541969638689718750594918551899285775240233879912096564947581286341296768164239454946739275145253749178515229721382528898038972173893887650589808911595444485769465562047771985179700907597548486163891953422698552673787812506778188827526835775249905940388093163836829935739738474689396814405912575901053001556573432372458595944471599546896517292247005631228902803355170305984511697565636150146029763555948414427131289617491047181477779718719772719141742359944445017219652587254799636635063779917004114327360249283922527578086713181766899062469885291088306878660504603997968127514667185123789544723732699778401731923574452767600918105110403621412372554727088734418275583510937007072482102836275580850805055812851023106016724329338225057233215378385998372598255843629333010080757600791573017634996176979516524732405232654022301692082103690992655755741055929069371086221181832930685688478562861606716070059053547590316364971543178054823944363873855477170985916794309703722263270723289210428956590085829329306446815067907647212504220304211760015366556104032758207040110826263904116957527953868629050554894475860718004323453448744118916944407491357746579146040986320644533643973229621424223971612350869325460255732008663860117375360067220747775769890156296808026941943913022132527141669068493617350926473893055435931966973558771443976297368502979208234676382966443017187731554009632549347128961921508465598649115608480649623700380683311336629156759131613392882216433795229302485464043032168922801866224379017696097493932697603033673270734065970158101459720311709465958353388840240881475436445275592860465048743048306841659173593644283313459486628017007362655547896535884127131666971346245415072679434159913185454910880439962018447413986085220306787078543992449888500439949412936548423079926342604641527845750498173894058876786665094268595354484016665818641798408920860993991252740061336923012272985249982807087186945990061310060343883696271710758705152185553612353356931532552671393780272708545725810874677012731889788788260585948301888934468546120827088327875280572291272721830327732741709510224985999175827524398901641507452004107159056910091988812394668461827955087437163519040351081358149851700395048497024046126495832805853164206783697988123065543894050094136044694171505706888316398043576833829017039047735971711937664072051410223491250564904375267815325789922317670513859025576959395071246052080563936263213472213063847188151737528948251078647069444030543246761379220617372510822225883152190000208754555751774210297516697231868047089263651818509759801968655418993087090585846713411032445836106863010399312181382113228933855194997500384537177409926405410239655795247103309031741686918277088988118746536618234851021280965194634482076183778019709152300922982692918506475705744216047678861050149781892452085098487721361537891527963536339768187039558169233571875612686046130524443147349830451719668476822521303837081645539429812816769701327945779836002039922331068779284895762113594620930478264015055688938697849494448526341849053951768314324977359427991853224401309849707082868665261767082851363879453942702768178822277763363393096912979569635849130074490181567828884517444391588100337202457804271321376515919578372137920022150784758319843121357828502039433519477634181604338287444246470069620171555731171988719410901977090860244479714315672237123277767036822359713791682308888126530734286090792032672304685058597314806246033302680097690130952141528254932935211378954617634577186023277424304847425810279942002984043223258927265129209277159227531677820523516022675379774815841978924289280395043279783184627986130288444268418789189395714496069621959166982367617467421527061324889896535913508528420562982005306178535596335566354258939920648385151951663953944542946206236432142096723115196384200300597879743580934070713476746676740423369638593088148080612557993691620754602959661286608524607624030924329784483848938319625571974780653112426992462955319580947435701252828713498422272616650143955780302174817872066556418065460618818196982801100705938308259412631606455305594558198110831157733458252115819696506355039441711653446876435731151007901101047169501685350374177183596172928203126620251148911618603220431398132987552981382492699226813088070841332706833856593003163048691807115778350701431482458856885669972012675370665301934548938028198870020834363030446270487884239072780916752294590878818960480706211405442846219314274598991670509526129810110083063777946551115546078143806720858783586828975553656975319538181599474027075500978283715461960295158615755710367414131778911660154106209066838510740397431508443948695317871864473116938871729046127646810571311429814721065650629705646620057842576942494182249807341232689550283196156967634224426014107858703183317925010216692121867277529557221730069486848105723317025412876303693236885582721795339290195746232779499187967672922869867278152540879580518112760806656761032858361775263203707167808057079880578393338130041498530833884484280868168045465842552968256452977000075665288376402863447706676605900977654418230162886249970581438943869892811293984904387750955547502740800952582064983736271474540250329751821694223891649703873924115158955153783433780081281366682769799743367674794520015766905851206145269739556094598645468775676132853188409516730876156738301459067279914274865757682963821500483032121063375340370879162927967387736342587067106994910286609732740124817530329297273870717841744539163250969511657167696826238077644435640339562510738138069616064964832702986445710768174416589857947628582677788807246286911643715255941757067139420531545524886856845877267657147106817673917743800509165538494684971472199559727909068196086559784987300776080691612195331818418932799387918644415283707000062252093396614815033131883229738001427801195163141944499076166953119946646843667846322460021795598132185400003077641779635110899130189295371910742208309901948646750469798987851207381508313688069632622485330797330970380943670515718462117137981427247115034565725367742088096496462444651035599627164608507945139163381577115492014983460928342905022468095793979227606344443781080603164749743531073381702952728397081870817941903874061099553011757434545274981861451471340839083575759427702301968946185812193375723706057957633722554548795959015874774185160583778468659418261985049195661468766167495426581921693130965493479532221202447880345502495774252213135015230288232169475953733067219172661819292658516196599557504564261419297901900676814274240251962936720707989262321743287216222505612030394011394143449768915366789554196861337184333429547975665260673695650015533604373141755284760845337788521639002708730652843665042909844761437929118513862787145282638593401647428183020318119916199799707761495782266993352289804854392941601811702750847418620429218435957879887506480514657850161125444345887290037497589943513960707400909922829084060093458276940265515972335309623607631813210644314210780984096686615043620123701907224726069682139313236240973768529825709485166593142785661079315745482806727087577440380936311987810910676728665176906745849019471347404784814492948167641722248741273303944767240577742901708085287935994765914082604948763003457742585220200240424645919670679232230424582778109480752859433047547644110851124603188656556407037655395864604254931120962881067293101443307557170867827994193520650931461237317387171903626568334775969412853092620829302407169605877293103625019547699076433284135008492102201690083863400454141536563066974318906529180258778352094586368526693505617681698637164514262937852138361556512338869728273372577422346374841209161917976716080216757117758527269508682225082960894497430767673411566336834110622548558962741615573019413750526389896326492175885467193034570772021069295497696733364984751317987714047801401834176490846671042742472595132881684477129147291209234209516020101179754657220131281384642818488004390605229177139357054793139547723057900514796964739813829108180592851270207636885844404940984973167439997589463240836953991748543228073004987179794986153687818616404091501544222521235043493964838178795985309809522119400787760943854309526112898707078490019991117640671168430072188834432451637394387300325741033384985149377824083761059284378851936449298752656473512951175072210965231287392425702709417500580785296571726591822693445446247271411980845674811601557037081342449155241959812937872389983489395207052208977736346500836226156022536475102364195401793933845698307084729744558408343856106664589249257700687289442080832821025659941772419427259930695308651990629541925637458345337908547077044090448420127908005760841740546636762319520393542501755470091619047981970163688532642023114711921514068934058323731076072787220810619009509844929157667603750163599407180711218781531654952830789477147006022732380259755617310262961125884657091066713599773615942667072995385474738152226761629167990275783790823628700025627636652465239531457516877777446054902246503938208563835314867259554197794014880744261098657958781200462547395397747158083236949642971302483524643956696998439670029919232126195241648911431762515959861445629206744552873567842045504828381325095285070011076501217776875902344621083790545503965440078730724073266843600072150029286434900533369612876251360476010820558881711928518692594555403687399580553813971052923797069810256263953371180110811633852687096762275625407740975657276774058144055220820981963756727497541208842551918724542231908939771584987908312101068334030387924562012313746854958294657625752647166404057168109584581801373118542294737956722230043841418313671416429059261017604959562978811757700903002752563052682969830418498068546249418136979315917480104944001753958988948184914486681505254766883833469668483661570970474449751274607539539654260179527317297449588499503809673709404645014140734238104645368828498768858704264623163850195782735331789924407645358181815143109256017288409463937535001056065240995867745053520212880786649563242450301225778471309622488641224268883089414948168025075496884122928807905072779281051726640610103814272893901027593877068557220989730621627601329651705106519499985617397094845440128320577124288156852696910715252423478785399417179080617294859785652960937258622898684542149771661317284951387952467719458034513480176106439834940505709329184223915070164970762279068106768540682775668632931576378485136480962330092169801852834200980176447214773423312337700733409811218248060168270345128670203823715655665890232829284320878371092715077554074396175117488861444492148188429463151283224735584842454344662666725887885870813057326768196230990720615725437502924804046651795907539158853848573671285055000845278893203446106736527742196168177369907096912173411044134782096887046259265611610559640132235492740423272868858450129776450165033287188349009151136105443502463446677069863529907261323934463106904078673728131744103191756417472564915261828959752485529054203224292395477921640614870813024455795751843697258672447993227084307851750954590530292119285160703967563123479628266155084495173620219075064131454416213488423401729132759439754834869105618803787049081043177692303545555562081942196152639496305625303994635906789965918279353093642772477492259136525021951083902111923289349585257848497971114349286901079043374836544123998387724767422817522989632468702785127383970302181759430100197880244103650939666518856813742236600636235968510705166240197964517516915812151781699798620248069554420781105197243722464886867094107083435532529131784269172531667533014039374843475009477109093322376549407871957963326876525272563388452461063342809991230349534581552037195352706805932657586748979695786577313299377291782633317875092899142823579062664618100485199719036661650866678240532546857117252164600954255726789341487116303672739600673659827517970853380660478939242910630607499702813840749894622656174399197225742834576485585185733397703160748668032809091410818907479961615980127318286792584183961855785953806359655377566711097993593990696458508898954807875981434509772148940072860493558637571189077016163847481247974688966235120796164573960846543979273859896608184595305337919035059334241268840747501920785284547548394883857724797315172960942776206608141611768701884185274197198330063692718023695951133618938962473324302449021536655188985645960221427789371412754999349241822456299478256507837237162437413973759085141935465099015074114230948435484146468850644270894816959111366707256428322641126771830000891994874540281745779531372013578537850539804040258233585703162170036284795749104728259456033742491019002026023997163862100520556908334313823585895328930147770802300196258040230461924418385464528589118647053606658597535853274266678849154611541067102301980987935815288153681304201346693066740102804351091968885193828128569611576395143033876507841531615568293000098647783533399905101303595120555747203920653656146454510401319837604051277547737694653775556057690585226670917681766197268604323924018873606953936436207865070552146995550155064553440829125140868639321269504318328250061716912101528158563355918690355671842820886988586891693527735217714330345250234688817121663458407494681473187282795108005705846951568587106776228059659052322470425597800303005483979658684501327789080185375408075287691467050697779116248646638207545598826704466658850300720587373462421370927815116118500826060028812173972609317171003374345705749795697789448983169683358683809149620357668267217510685565090739106046829189361478838448350192230086407881672308778635703662036119581019411278592552845991431653965252710229665644613959629850725722397474299564069553359755229994552566043853858007977095758779777421580615822594365027524875405548175103691520471387507765812191476686238884889070727537480828904107664008433561924928677576570889263647051891166659839862098829135676955343639408679452866742685135267481451468009031804663883229177740526561171242023607783226694664742452534569946418883732022196132010393452880285662618804696121867123327495485002671312707252224546894917591265506052987384429566598541653557794281940274057595311913531380910773926780894515351214376116290343489690948407673705139469568872886716938294679895913598062300814928763740581586414485827730812206707342945287102709476565249621129198477492655626561236134527395965201982772024582406978717453747718867779080107587787214437912614898054217767224823861859891131074935499912931161145667536658087650299719381638216241299957352259599380694374140476256243941163789622047998578491311790263127775941293519507410930109414751004981905366933414307284291858136858235967773198348323016125448297650831160579990430725816798543975234831493905072072071369896211734666717767086446074991134478309332064344353781646646872049394950324105522538801190638017875917406166021171201138791733119571038950247653698457831655149268654886048986273881040478966753015907451417358017249826866258998976478593412669279096859965167205476783996731952204310971711421625672021230449070412847782625512501355653900331221191519007014739162113719612941568578181027472371477476014257850120474034298358077645512859121051514675972397452164683001061915632446189007123877036169651811473438723396947198800555237970507797329713801121623046037831669312252089804145917849911207021323476449540572953380197279810391570811960525799768170320860565879678576169925876463770891068804167426596149054851510779021240064883882788971335456837929760596527414519669414804506125273607158222205574412246597253212726717178881682952771835181473958772347581588044573835539765010916931157491819401396940428826811099154085405057098978167802767227852499904779334118031374267965275945218948645439059133427458722675485071765905286510824636213932529146101200384289001371238727586825254358246054623474308410115642312867648740454430545369073493547958114424850428229444104959016057743308905467678888126168029240097223988006441487263889830541263135993824181059515368783252509269008221980173836053300232713407868083721130952192006943957884791115190224399336786905166664971976302545115174523936225139811016820195299243030641794774806481040271370853044176555446731605958242313067958653283553856250567488028841995255757674555892382587158507205833928600976675951000661563254485471913193304345880204110567118851936120666449479178054851496170704277725514790102219413154935353189050167438536305597629648930660170562830182844112666814685895338345021063635174739336043126966175987513718557390542590055955040019925832930950243700866682393468109434297737190702577515445959331127387428079676092943803741145217109181249327689899749078732776120465947711830341809145729677062783927489745774697078739784277550843962282289302436471329297361082198608291726541205337892497066059926827874435313357295079887542747735623796438633254009094979546936713743779610659526366897069131854422589479001396969402192643077148631027015993103938979528426454645485414140828905201855003765743728947677457894249219065614820076010509791116333198571231105960950314319885253914789096194858550834269740851928331460426607221040793731333096903356828746213264865774132023937656794320519289937074405653608777493629392502504204533223520286750916062376286021604912606911412630264741387291737831125453246885074498659978631953640438199080921068695429892829323224386901312559238857715128030584960833527537401332039576686008921065240445264909107984462319768591599971865207362651387498063405061057565762472090005191217592759630612400476668266937312240221850572839922897549320392157142085553156036760479389785560511075291200788731491923345925893232140794012731142791347946810220432562998143673111553119176511719158537835613566129475900532505843310058652573230011084980524268912723133941541062951738484891889515117061975404440091824416826771334769138503589625467430903544241663509566841597272706489512915486787840451813705427276809906335493381972497263415349652532544717682558622498269043487641928111160893459737418504577587488593496291609092307122079296173498273718470985967323773362049756963783125779215645111609050634981075584364267283158660526032462745285143288907397423856654648316404579484596769206946257138046414981896332610151690250779531784096650592721322039421164391852659869302217531421480345422409083664669595289338428783895632650422649154071885864608092903144458207248998283702212166918628809216240884233735845709552082785842076465430587711019925892833595318709900914718426767330425787450027235467636300809243359193853838234504687169321934096031434389283651234922470854648568136483171240650302181578174296866625656877207036620319786143145360374711312923786826193783798140833871247663417593105457126290615090109525095661548701998848958311618683221022635170827903544983041327682768955629040891714474291541246323597641308214555845446913466377138602643084343927801557652025010683730202906999817919253448083563551934271562482499324632071053204921732885822183188767094889544056408085054504299374589006720868714385949593466223416912526375339579864469694881444749535320374667958218720642393125343403214626781258455506213647419331470743289426647985711589489586143311870907980832082856608744136442017268227835631801119224751678000829216505695763215043549867938884524086540424360197534147871333015404029681979224990274217032240461251550826119792155088221387298064314991609861796801474975353774318488595432028674889668050974606484182386047389811247190885704655694719667604632475615677777698231202717754759312340140206992887963515939974138958136568137403722034275359772354696199367079461715266617735877043316709021375087249223781388041360431443766957950009737456899216469744393694594593151191178933350721651420807714857625030627026695395517135746739760948691951304359354057935102082720167251306174325849007462402641627623147440495481276161909730311512711303890643437697293566303145788282567868021240845434327766879721236534821161896055174210272789907053703523513168450071263863175814806518069006344157912046646608438988297709388118977239706762150748504383369171014788789565669405402383811662632637397440080577341689790962058580538179317568835809357709545656311096510732322101153897967385756644281150529365525894443161618575592134913911467154771157414125483714170396078516683504413386891450531897915017206745351275098017031053849684219204102297713471405885639690757830706105997185695218720048396130272259232784196676532493833283420892987094741702090491475525417797743176903503133443453421550061524404029044797208925881402180323785166463911770678471129402454405895791562741539986166854837091972014586221778442225024819943793266819644513862135196771402486425375008892161595148865806404469165625872433765450486351634425988813352820878114043994765115269147352378447288119891039722924341916441749069377451904517784558859903380688619036985586642466277932868735207814461862261696174766607160036794380510000219857394085402993579337527107232934029280750401681849480526897308789007031477537501662374464491708808876272116112083384445729124212141476175301907507290073670898794156012579686503032768065462054975746432270109946399481715617281701382338711179816344607679614242405772962102662228934521709812542250790395969880170152913311373539982424470142578264053917282369754663553505861929351618454859749405857185631724374680231544347724891989087557413700251351277713199459490320557963211609283689141128937875265306493568112278469118140737491439972698302005509350735425665082709832669764134615560122603933932618594846623048920440501510436424941031026150144928731475016413571666324224982302467314402431452086727887338213900389081426175252392007293241188660986823449963035082979152973394671276589297038551968047825524500946354282974228613914275837986186545579700269347967477167423628721108740175996362220660416158280272198487555810232449668951599183688134181633505527593407988086732869392268004709124594819804808708492060048889219871887143504761580904863743889736524870428780461824016701580498781801510290048920907829908906609487624967650823225538562863023462778866250644918767842071258308988674797465048723421123925220056552463504573772191751925242146482474391973160553607642110347462752461787925115398056114858980846816847240655152996929081124512550281219669161254698769262708048024132000434718816514566817689077344604342352880795943408018665855877136197386317709099240511301283747018650134239313808437502487406061984305229071388412568054719402762301440498608387307461190968335137428359863957992697262905142738245144910283948365733348980619006954936995605907148382988023181554388294533232581681722237225085108321036375216832960359906578350932861915987465873948145014340806390147769469945668434228941195726934425951186463600045825822062790062740286201221910727562378223163455832243705081224863887315088450904106429626785370730496719254092312101582643742111635029590173960569526534771148192959954977430454399926127230340647607224646807423341206478952575233008494121862120789051487652588461274260224190879107416271670539829853206456196830418099980327290657981729980129754891322659089980351969217849793914461680410941146550860005562679425404530135773106011674383885182693951257975087486107480753814819296520196694896975600707997614717516163395986626493097249040137771161840533225442229295287383048699348143010140444306790781372016731449240297997507207562297306119727295069020207302436085463960542843180745794327049670783992338383319336152078303824988576654905138428681890213275884637662348657796510454237495655181809676165512297400864407694847827738588217555316197885451180046010640176704440797356133440482790273262694698023972339856890236324998425777919461678648657866252392165177766810355913312749225166462441176452999637815684579342268183339919175132939801833332795919642284323278963606728311338268326174434715922523363743111481633425841223918807678465064997570149137171519619020164253626776983624927090897356730583186411717200174184459630513999288469578878097664480273929749212727605535082086088993131370105554440249600042096715313174474648796180039082947941795290207258298579575241708503033031524114245101679162152193636582727003406112756333848612943910731107730083267433431624785848665243041198535644857780686835287264456421733569971847986668149622965790253449092439320657212096332084390492933212009692437473428275062737023315011613340570479888913111258352771644537096865682690917136004612793995443816862421203234667400813843110759598291773454943676089050857229321106826705703675470208966799425721134994208147090278094581567488977443050836671123918457114385500211559347696481524693423156331427832630962596199102168444549022748276657964026271518289379674069312325409995984419706458527842668041009068539370013479446778568228287207891146972597918951274733648378283696125177862290098066620274262145953990970715646633604713638332470932352798319067340875269322918998122244324325081099685783617672630825112839646483272909472426642702688506712437655165179603990870960595961455660411912566574633528730816416665950139159349982243990131152272858079573190305123076395366179481316856170013546354441009665704894776843059556860152702307084297333572973245742514930067832477384246014734354254002429242673583714711514316922393823181367121467101287803826337193938409343129777494341452412009023328591272929564725682200244632653766425542607547786790559727714243671445206437253322748976874383589090769823563038113654533957678690267588126746477947119874610002174292009752124245728318901699556944982504977608388076969117073379956842045774639321210503741178946376517530756886706251269209508877499626905462726796744872018439456217181907228551881568445040280420277786712645130614933113839332881859805486355446733608070908846622628089730520544798181591198576684964300122246230396479734974244746746245594277166019941022376358178623468570279969470910371740508683902726857604142228555391019213715845526274720318357963055117469609115355742696340311056463384299741365240468608565166037320751154090568670274392828481366087665585034470298700733224856148162166091121861290357378202326873669079790257380641785716034292893135185476920889542860940719999095496736942292347108016100126930447530596912288144013576377395578088345182538670298107678331000900540173915467452056211279673969142147666693867212286436147933242543397169404344380770303900495030186960808908609240000553117124654807892877317373092763097812544603893389875060457463458436468772391917576740729902942477453484285868232562781778018073253098855369541507856913719665149964026883231571234982002219940653092725460511461390486363540184768529280821369236605937056515841396504368679964024806863269669293495376415381139233285109025848567912805204933786196880649959496881881243041885876850799868413433591818840735592695413758694712187585278327587565932246598082413349450183056873240838210680905487030109983905309062110693006367164406533905220179408125032621053813354014793522113935144450916344304550628306227410540025803661075560749012681772563343746063296988507513907486002437102684803546611903170352244512070445899149768427300669471245852657172269965790772105767764618879135738561438754903635385379732281095272858812838241998619390203225369577498828625251932510644914044765163926794770548361996600902467004937928522029299875679529908617615050778222996163586322155916569894219369975230600856798397773005386040081135668451356872573674504004978368849765331850153744960984393761489518233245116113696825867024130951529971745835301469132509604439203909918688999076105383518327074143987775076557998524277796663521172926013427301357838331385920317043439137605144783218236341453747863961805598101576441440844837775890165970407779995055260399963013639899872530416989212111352011961562258700139840282446746533557251213297310005970410370405961170324649325264085796008148210293374206534489932475725963130941747208029775099931481822390098614794553084456636269193544341300037763769741637361742705389922820333268475539411067390298987769016837812499879717886280906539711989828453341189417435978738658382210038442188091691486095806965323549305024180171059979122132076865147098809189718591007959325444905204794756982010148976079214073835598649167499493426305257913495974622121850225680469244166663884213065074205851930828280134779650943034675969477706111956404767752739473306008544414192428940121338974703049982964754429422207091589536928996850679376528921944408674722360116741757348286396114461069107934760046418874537943647734089621760681269478131527425732455184740396544523742087611954924060680936221593678693846119914946339998055960480767550999920497905733190210616624761788829799492257376505201229684963813247434275785052237301921839813800952326058889763003595498677258891531540914634984163736102971403417108942306989695871872924833159401318828322149471306034627026679500965804784836899100430025005215801779715117656343725102459230982739191400728298984692070067275966294481337961184207787831302099099559814329883940734016666860857530063905087897261160864430430652599166316642056159179715516091122704949082086581465135662189100350999155944346321418162154542731478949547708633981883803527690952638036688891264670348609007347883240634020339755798677752781632051395858211596084118087920118879404630808676852096994384268370437133822228297827988349012656473493374127588886942271885491265238206058191253948446429835198461526965062988719724946232877723954774462097176398943687849917223205373072902843340578541743850128771691307086293656850612646310471370297541168900872742795840032713603962699619017545439208612861051624341674688986509189701252121761166692213338214375883675813058771745433015890998212612445830604430159812924739112465259070424255365686618166360377900179083839749863060486874863563646525463740845531394849301185066229215436358853374045819979508886841267383202383967438858145960571271630593626158058681632759234708180143023865432387990200027287692001634674531816567467999039054692835478557337095013865198615804648865062963694041996301565613125425646617925013704274416743014505826860923798716406382068785800512245174721995387755928965745078750305425856110800872182884065384307534010990568989587019462625580281799873471084731900351779016473454446581117326060638817393634668180086181241829584937610147170086943210279580314561695889781997911647793447251074937889568584821890497495989349445873871763406516511163771686660096909312985043395428484805231061150045107464257647703205656883741574160209263032333834204106474198277735194934424163731304273112774354224249141184069706918881215549934952460849824686027585317851526266195512697790023958057274424019983972100423731490791767033368519861319416775298091641207282186932469845446531757728655715408975553878902473088879753533334128382050064767760044443337461341475827350515243449263877039913901197864242087251412831329871021295327175428784201518673348775679219920413696572837979726635723538618193312201658811562554822298785964908587768342461652390760149598721529859025139206960137792958575127664791887923152292909484942756369393495508686536291723254545947482217214709149896291091756911977832268827325351175643684227907065034365042966500866803929698510415245613659370546814040389553197814767734398196372189472136192848709384003588578089862944810950600207225109369900537596754656370951747000303470019627269950659174711301592866217290453452909525616336631130042992149719074682568664471040356026179578341735039564184011201151449289286010400183510206134876125285383719176950498479405115423852795751392135675806935350839958770918762666001980780925842251763278204012785638240942360214025107347608959075208330327076571864118680168724532047155434445711077385718030014333866297492139294075330753804606176943776029162649964041523344628833792996267513036324241477215968838357834496597130753130442716936462071258698802555382259437450983996264392194343264556149769782073415811354318086045439034338087856375403152293061926761819913905000849273972791918488566757323766515702854479758892633387155765513843736292022421285736196104934544188715089364580976812866521757937255268096680032287312430896216924785283615069133053872866220975824923311001998520883110084155634662901209844513146228338874032165411404039381166153087447769632721199053423682385048861223908410050122486098448037807830116763464918499613872692261043665495463536630340182550830387829281682885761459659092108740527391539917676654550597941471458829318599738673582873782272562270620465146688324511135515076659178423073087091812064330166535973493640305296745443391307332548436238466843979567790727723743535626915841446978845187089263980404506057769095884452100177527975479568420326825374579971020352945283587808639411230104857855657341836523714502445338740372691137423225574955550116526175780436307913568290496826577217609103269478767087595365506864123363892537356719737033116865625858165455014238174032472267054498224405288611440544222134998097099139549734772535038509615095355083046976527687381391776839515396674963487569541813143637783980614766231844252589179240827875395887558668770130516257875320260744470492162765569942959834845989585115304900860858018247430666521476558949868919512187385892358822106627013414830449740998157227332370649098214871977465436147267912080052494786935279237257699023661367745490852870370619161094317392186215156123239271409526312946592219052810307537380960287545902478796229249408067182715637473887741352796247388163576997659201824634455719509649909035094399264080462371506378585010848738845686899767922668447531995593211957377034732965639321537746553603539132768663799182050265581944398909356703659720888618709788742950609527524640864393874115199855838897211618186267525980555895796606114076353209807934787653699241347300495158679356846607913649634757288369171294704269698933581623441996808105230842250932510516633764162227849972160070689551311506449528004104159543700782533115165529017624283078464718362130026996875187060126293761368427941600222301978151404948431632260960162153356587035745597152755325106366523196756058632586574206198062248901411709573851922753581572574870299092816136346056200892219717050664923158638841996172078621073736087690945615574872480775558018355627396641009928371613903615905953284700091966739591667008614394651987763254603333531324534736625506295443639680616089594516209566871075836846365390021821761388604986171079442523231691291295644944785376113195189253483255638871821544286696226400098783391321135038837199446840087856426026882292854067180509320451209931705293135291180307559040705034161207744337360283969048457456373406184942080545792762112332500327718335389062154685266213711481368743454811029527633855402377954319593463581086768221436128796001072992125647597110294975061589795504245002112650833980777364894694320167040847236893064394871472537479732531923180125993185108265274769812402082957972703974171614586478523696921231813142574429491103409684057052666680937691460298182048340251960189181984507043508809962210775779933294208812860480666176100495320730787723256802335173076407663092817685968659028553491490072353269166940907498944847015234505992048961882008832089559913208052101227509026532698978539623658754504779686495771842323307247272387285700670934256673950704790159865024893400924050746993845171539050713152573407709998823961155950769100743422209995677388546325136673217569628597231442494935605671017402943119172510082265128087468894546916590767284390454851668001655626763673507354905384253991785271461454198602367118433293455677412560343199759767428982038556833307947662130573917236428926468424953623961858789807630035853150285102281396317241115444867779222894171336367057984129255798994024627446993300770482696530816441778336009390020862617641608578298414114504871502479264773065709119457265694773143313357376857702808862906376143285097707802470821756940273079252027357402246761168625416101032646830995796736606401420979128032775458759673098218476116659176413871040266334002504586866916870610010881325944933008878061632714520666609906345973427509123527568879531424833008720851662409317549192107911685836576719461218218441557268993023032237809666395269549137869780904981650913557138721669591573956502882432223446604575357711698806323306613437688159675707149908086473493136473503964541093709345585085699413110964596434643279645053871989327349069692322931361548967991944708324296313254837386992717775567957384848794070846744008270329356777786656762321916440342905423244541515758111313585220942549516557998449706835406822367164742284587118472163221480369044810028844254049575915176846708833841845195190588336685875712447821366240733968442820627226670750344807228071336296031746690664044955302940847872041385216651100596049413751811538786392297264580786471030562308084310762274373944734015710178410693972688603039407575572422589833962775308178304341999405185399596888281276403485384880438772309092641978357051134531279711470927820863834729178079615107709702023377222305394164756834058065290921998014142836335307937972491915289480735457976323004249173322232490513026034979328035894673654997010344849807910739806793329634398077833688490581444172384614243712918637659575383129062049029198250770706530029807416838672881246856243825907845546653860632065637155626255228028352805980416733831487490960453105414768358546985273852398811319396262210648922392739148680923040119978003412468174507940892107715138726862429305420228014287075275182339411841746356072396560182752477294065180553191199260129320769658111308506746642792424939033517237856686282836525499102264241393032559414738885813121786242960987583745831642459168752614908834632243636948043980713277996521609452038457562758359746261240380718168084551901358992318317047962603331237282848156910280409915721351018850330940060301860392445288453055527486735814760909948450247193706682018577809203611458683335096899503009052813454427875023922593914342574860942600869328552768417503132472660346590019147118698918268760409374575489573341392293665239966017425370173926286224629473386638271626368630818309078026451093085858590000816356657650739713653807491420301147974061925275494617249893342022521012637269242243069006072745399563048662211369717171802897347778258451671351364202496799971280090578726719845326604133251484710308229115865426753500269602328369778491341057605276533016220335437098581394613784289328687339156627850851259285392959411615943518670974673673193470070079687034549293336409679187716668961132741511064098271986419046619125507512122106435648992321165464197133115598017334858881067518148538637937484478736791110697591524179493217300254599858497186724800874058735813261061667751119778373690923122495511047124829629279942030811856760892506875212001241733570072886344638132213267822754931807429985314315553819569398282516849654201608470970544953616047679047796694642923674082241047502225559044136019076125662445128708123190765274197046604130069670577262552934775080674354171997656543546948226928840299225489060509759456950240467323647376250146218948058969772810429920529983852606583789517018158459346351896754056738241711909933005855684768259021374779480692693469099872730367199737432524353388449391354298268837554303081650127219231282597597035783946072916439370284227731084600039424889696209983704860939832926830944658503107971912660183485341644997038874705603141806294389688757955945256944065176821619522520555284761337931307815198540182876520808009202624189763849669141958002648841316591626041596250302758998386085072823699382372650547839028447824352427365996211752960162900060611351544585281408065360126138304795405632918926651416990090918856710236882676036699525358014819462411430224026225458663992712098717086490404975979446743768256647995656967673690612626732573335002880481562599706902461104512726477430390770168412079771313013704796068719311697756351893570776245916684336708017236207806165341250690878568653764569985089486674188426131472889960848391322087920608554475897119013901468888086774278155879221437064958743158197239755110551961455982698451707074988788878971741122196007074897977715358986853338490974588933924954845023156708628676346391331835273947176364710957307155232311421078978027621208162136890076150196203175999706545728709497566460843078272030544576201587865865522482101508156526275097073394249378640874138687360841716890809271625933629831690769129900180321434505241940486704326382661602398850689371068449088018293339218566898956431707467447171549160436647641058442100316056925580219761461592298385343613625677134625717871206743472132184784269458219581585300075363476423818849755624511249700174831767298718093466765987498699830378265349775385074822726727380318450269000279678138764845745428700579836262981329455160800649540694457190840293586309039467844670643910215566668132804952702121799910052314563018670543593186434929917238233425062480589402313960577064370650913622566136862501728807293311457613788683039494550281738999966724526117927299715491861381155268724956295627199106183472819664557063268971295432813858424310288681168050291697614405573966392284453764045987110467202504353778934883842121849221696955335007945740463604077799659634772249529215336011206578825696392021478988094029429552165308157506902882036485017211818328448829087647067903874061862012821139352528401981275018753558159124430943006178642522610283188883948158225053871364263654154435611200914921689398756744887202436130049293475762898517859293607817953742434682123231311471057167742209663320009324421340249999503867343256174105178912782667014651245639424653525699931801030525489974062954127256830537141263465464177389945586556807908856165043026177004817832899673620312538548098949959479899968992321650107391777371215815290248944947902863956050968185636896925534996562695218936634703473792615192791611303816525957276108604038248622294542701885812172389993371160007526165971036779413952505065000650762533222023936409632626304727023879222630469237100134970967506434713127572217317247163496631210324685308685866568414988929976917743441439770599771432306759943659827109905977185067278577902866984903485412925741961246811167465872231358119926937429544570574385017256918481658858178602633578209004358462827886865628564478381096987706920779189379493335590903293465458189612942826438031752537535332392983240059489047763118235864801858550310683380317501581877955619316094399876465625258354429305154842504753365447381065667004649922616791099092406796199420084059366372139470086991878273074446421092772641369553891768668873572186251296078728118611558167075291523560406928980083473263795386791940394876320161648362600910362341576245901071124443397242204937332776359214308853314116817375864609742144763148288591508614657306122717593914873446172354122040085219981219983837228652039931480500489870652596928746267591233510255393342687391996158772458555322804050102065496285970252722774649714875451815197485536254613327928286368624042441655575547241691194252897869996821126970216019260352534826023999590823213600045055277714101257551673552509765736823654186331972029977162216514080153484457889538422193756122215645019255960542835466326539287750890867211066198636298548002826036898714445493242801994222210245990419600232021851735253939414628437273981781666251280349969099096231729617399480160645313394703765634864778939747722192866611636978560088132011517524114305389703838271214177605426392820344293372553428190942909734687841708494941954189966394046377814032846750741725983676820371710853034866378690763455673322302675791403073999166235900165614027678526814345641798294305485139682620930191088342280619823926521172388570337695522104175752924832909458626485134749305771739283351241802698382753550267221025788505064519245485740278813040405406152330066936210895686277846488741724272482037538599764798637490912815116513751596247359044120494110654006323100615054238702879377757458138386275706983867329775157859200073865765481711620074883020519333775456256754462275551906376601405895224671323561110223532915473779964006837875375241851936043130805592794782290226286190172369776973230968950927881083438558147708459685941979600548829874717301670601855353001648376723851525480592236439032337648342868062534753717631142762259475938336255101952140848586019123237205287843096199441764016758444816804826822106156616270836816504047719386314998587989568397131278882173608396006024207649267237762370455340764751009517179995703775352170273333378232450287880504428745962476800710119595679841872766736263690400712140889186845473447514637292695558449261792687936280449007053130201718817138110943034756874376543665862111680818056870127757803849363635680561407290050519391378555801243282613467312217072421491301446137885448263651589342158051239725723158354089680942800135113941194916606335871851172836228074438975328708764891077137586967372278858022044611917241294266759093491104223030747068089089642541072610124377840561397315323155022041892432776855201440519510181025650940016350774374409843993755617485539419850872677590052070869849619314570585768827886812805996122619028970731952002676697576891371687515041829191450609233946587531510865422746100661666503689790167040397012484313739499403570750236565043517008856950824548481894134349290724831024373258430967257509339081535026827285168871839955302335994702959518657833150520372828679007674395246800587595090647037312067471954198683165823074009152277336369299415910132576203778067567104671021719275201356835068543813215906676977332808339528544609968925287327136561062338664615726107938806733889381297243844441702941242460970707790459970803478371026109879285995005442113016784753349794853878982359716818395300104838193891470708324970613522991376103646346133540554407613198942541567186064280110978936854908279172792760764307942670410912142749905139303721592912132386498640629521921291888882383598181596757327931672933892144850508650942339874797781082042253814288576687360188526318780499679391793163370057978130235839359052180273334858532415662625159745164795745693597766221609936657335008791866104877527287547179907921386437639304468975155557150458817968071831970563988065098698525269324915299420025040780203170101378514491235555824004617644237621702463658405309248507428299405195880741439566635622866081075969888208883477236140802802105661013683210101490901326007283537074715857658762532432743973078849098944206087351892464047597827588178749275806435191748863663649122626246011689710455768640362349423825998023604570786508828714314804941746787909319126163702872878124434777756282539567771043009627465790371659512669817823198032826094459841015223865895915128354595556638185251455167524005625243398111057244862300955520239351973315759961201188108846386591906946173460728629218438786379351039197724857060578416308434030602173342061898285892145467256299447103771938934157114639585255445757157080522867008911334700260233551868602958939730933215191189331805342534291563313174336398310269444437525120667728623556566009349265593263101124797977586340823939908449070186014405811414530803767100506564383068734673313818676830817966796833630847625078568481764577493324726473340651248172031663848588542983984109627486024463700312494597868571213961695967795880494460603057338608669631032192788894527953350385486457536683045706879620160647081520824903852454550936313649147925141054860903572499146247942611297405509258666852673285225783521746490277230251167553765534792334360320456526602784068676867088442333733172563258394785636730142780042749173037410351968310860233717596166221880634140010816681553611441839154632020265202655865068028604856328126603865458961089375933200481684992338440457405487620255801199524838621339986931960789948441816937292677435759019428908838168237209068016666063896986028142458858201463238107593333062324283193838489531184094416686187855891877000571046201663395706604428586701918040562222721045707666196445499013994915169357028041477715963873209546753136195182338348577024149097605831012067456058648189730241302875428033711379279466257649092006506699780528616164525201176020631088963024182798120024571155137180001470955236606857972359758241225914216863122879456684875524970353487010992312933970683613278468015292973797033633843277532272721544968310183434451179637116324639206122966736374500302218722097460062731397613614236225414324216425268784378408563104997429729246444282584686413968959770011867714789554204912033628707346817040677097004501864596074245805571913844334624124511668644409428226038458320679441960670257745027928436220409462318342886127767584172992750417381026129124968681489291338854998966867252638443354092028760341560750517623197384586648769780730872288534594227830991816466058922866027030744468617150317991689141901680175018250600345394518240942071862044933619787705321958902531915274740414471031179774312533952997410008587892776544797844998127544982833738211785665814545948542591847074458853156605413774842115769149601552341716431609334133641810164713767613183325665464825791530464318554357674228812462362165998296928258914618065087700837392739481031319994803371192436171386330632745990650291738377796133917582838971783637687430740728474698897897138040988024855604031555410231381703797491791269205909632807449536905698050196330884678402125021014543785401331565098900330489307233037230494466148945124718043464555980626489626987302532639969868104369220020827084327393840756224830998123474634431989201981742333224930994084264272660959433585903012580155021952737252789578691819823648169140807607701319595577066742821360589071438825146310963869149839407225349653476571674044725760018529264610376318412784424228622224899554342065880058109098992880109741774987070742072534040125129793889406218954508651142191205745786308058664147227035804987578591152287378588456905972771431495966015880757672285208882182188888633531803798356265683931404057314639226525604937643721241261877045113578632924907587875684186603929599129590391263176162860144674916861724390231823146460664201058988698118062724166265368483514400808420632936776261155824944517859399618727910603116203290530981067516771814878140063675417059538916221528375277240100739051386718418483566703113647609712834006376036235788300065415781301057212607197818290340840223000875004881250516881483218704092203128414754214155343649210538996842726947325133098155082267886145594441673111192697098666936422233861610013247154688733422462239279513285628857396803557719123947307778127713804426428754464485757526126491748865845323101534717480699282360946809120438656110359651302686199483944868217579486680945155683208754178717099881170872011606807312430859810618767674617395910298032903988390112382349266925961131334279091042027478786545227811356885119773727760252729692660889469269088653246971588721048100844246768345073228342100198164503782808922270713969709140012434591747960190603757268970006010719847959844942565689402219300408490328668030302194098108555461721351496957156961438636571663022897774599966065800766611147380827749900317301620982012266089606359598553790078617159808763572959278135352160758705329946838511386929268079425962172420896311443037082452344705903272234236522054491548908104925164788963100652478133418688817430911781711000685153307910072605495976559089463226959229755215616419897535496638565934369723670738159016405592388470063143823354320153017381960102465214336985311492885253466846145525373301144972557656998395977041798198806499255591442108056997470014629827189184647270262600053964052006883924221082724644791637698486386804391655498602545704910544745239651664688935486873678365366798687341970559750788419009056601327449993228982808906025384812128146790316537150112190334360418224644517311964432757043529692866158984010480111757207519195608545600107703569109325693551179634977562346057918482229322745618767121549601895965867769487789043256485957670029177646029110807712489980382095178757736264553377842045257499907292776130167282582718612428611660836060665090079339995137231590437961655978594047790194820327668649266596751815719505677578133791455592915771505086829584233650607833071505329889196540082994498125785912108248421479030120022892981591295418280399924493859163640606057504413061420919553401543671563715460890855241675763094038849552048765572408205675908450731044167184281217753044461139140052892179035628735310366421770090137050059987556467382997220794632822560595251884401305528029939735540798658929740920585708308417506947504640493577496248472346977511127396522316780952309433290132385270041808333119342708693289478006678729322963808111980401783961096963871745039084155898083347966531439038626548430540174420026333323345953089736983867551120586118914087432735460759087004293486876325909424725162568418351621991324801428943226261621123181185830222333412696183023519671875830218478668452646347204733130426566775565304923663101750937102194041280977207382174963696085534335257000480574368200721548460373462589375857977449903789115216919365554551619124307855838558696636849051845400543682926823137627026667689683253052226384447640523588518735614659895005271216667173602991733072015902951048359295501823149592948431407633946725566627637953519239431351094147456727740467118359525782196257996992985677252142148668033528912290894496744545592138500516904497940898642208140698123431128928957899451150133329013535036235462191963289219068449335941327924920119095237596593135603057519024140771615692149786233991023700148389654306133927107747249891381192724019398007357688172305002670066414058297320184719877406162217467067803602369352042324226429998400350649155808768103736633775246279931021037342855989059764437315228545388779351098812634594367544430436958681155456861929819379190139381323278181317613546368029279883297105868713485502574343200009585786457439786705984939375687366287664107796949003285801131031039522470981611770160736869665520215714227269425899303968842921276948767552339740888901199748377198746034308989744730254974322664139044329671106572741621102456162091125538351839182227991551616635741843734645032117503374302365815489575017060700740937265756230259534712854678655347858430318713203816384467061817260363356159854144026832367018394295513304350003914893113855318235787415522686065639888104086961345192791889804922779452492598462489343756230599202035203756268898903715159051598486814656737226642275311248736921863227084874339416502860353004181868362708020863440614799707769377448572673788749403093196846307007625106347959122969766946021449912836652095406298692739623188991013573170193021684984609664701321957292905270826848777514095703939754487985463583235529276798592631951069141249261006571294931034561829088042971801426110060679000957055865520000186411029050018596996472280798213038299954640910532373416894842803349693223321195263583199068946789376342943277697239863489957204210224812277038195265691014902164545483478953765189184214605163631825946033123102355127917386374988136758400143235955221723530882636977943419846943976480006623485502790369938475324172677296953541250630927392392434354691557508940776789618329317922512932961306335797789210199655380644622260342885081687924607267381175146647167830230859969183557691409280707865008105797016586073853015860315291753482660516112013822741052606560281904206082735345076989830491976261315024557592588011840101814496631996834336627314202412814677253661671895147943350058737363192748137296096319978147383132066843199393654898223547910099015158392235573207964529830831348471370734395821054178643293329148591517941190395513820508650954956383730890418023339742471612014989613458435561995261135209562100088134390896064923443658945882928685850240905659004591482808185998235506842037994693496069189364086038423636079059435506754515868451881560882272688155435889781233019117244722311368447294186561947605173561123484021765092445747266506458858916272869514795111536362529902404926692529092049050940162341145866624728957762623670846405023437247174296968387687264760594030313334473332180194814084671442121184695013822000864745652327053469908409646686847101351470439514442235250510043612079245684311495558440310255425917156313004812298870746872316552493087342119011282231134324451705567539418072026397711867059318156933669514391908199719458390197963475375673500216143802657351218273133413155120529538146920620152418721902579929644273353802685718941552312272995871213287420635012699640783344789186026926114500062381331151130137745526625404402117860752457462591122637505713159721035156262934383917134602881368159649146407063547663021395838210931030868710993518746803854590472364178700342784923922536203841656529810885479340989828818702818728484680417912856285501280402587444542310937813733601392257662559870880475323867266581256624800464329018660207424873238426521914887604062602248590348433911959200050463780552313996145772009293352491742908952052693276329827646482324905585023534542626569499798466178371489639242537044982488275122885128270390036765945890955879173077461131376374669068227472609214501392553482721292244414539508286727270488434925142472200861897891778084695487400186998085058683797693777206615132393342931197709124175736545322421534413986422983727920713334312964857483736450199982035021643468433374891538334971224693720557366858761783690961961464744655212679779300498737625972426962591321800710631266545642724975889141409633931335261016011743724360424459340596226221349594164708837578534336427672254043694538717139490882124082815331853243119380652510280493447346179278717209281453313172634291540798739681034037883000478301264877145194985519130314541154501826212869048522363712298684965970613426535021167957347576477005969145383919662142873821619572433844437744956035413790804430161050333417412827096918310256707827488104249539758980661396158434829989906863679692224751356366708060301955515907574732824668309088243382379074065387393162168381341333823650151097875386613234978393008389029374067340989675906498199250741035454741156777632652127484995906524196736295564764236955645619017676424627863097718862766022197160941593717302771373299331594901203724872581284589681728133334657084397961571138817407801967422406633822610484662330630551424426339477455249573456448595135599647204806329936354341281133471649088618044185100483019888083325737562586454906174797164170248273763939299437587688811164622890946019337719152304953697652244329790165466737591082844435701606547426432305877998356209178756503932636404191768896620160322472762691380125893815016717051751472365526748663903722918664112062031399334903085485137743663357197347551625907883389487591197714293637361362087604817345293865042056878298165851836134255588722469102736542878812256767874631758415961718856522082673258163464687729750626280360508593764402911725188812060753016830466140799170252669631001632765062199887777404014309804617381214394357883444553765444263074295440027198860342579310117377170523488192044514459493163991754680355903934718077685188234454209706905189036178288247865477898082401718120478875290201507386563332499941551822818759524591523484683247625627956098868967810575289360636159747891699614511245977400972163143751748195065823680186145138296510187272491211254035880600623530238917313367015979594936725874426105698767081362846138505040890742578635402921700971569522927724815838639571395943136251820720456226851326993490855531883307198063872445021507785855281573045893330428485132972236061200110216995229554326739070068635609121461669087462916155519724387304294184155970071759150495154077321490582228199871288328151637269718287022424264407005747844027508984570254833033397147537301030614173591223274281570902511363227163942541083831948686783366527798419801714914669243769835147986878943775494092923884078483063293046135749753045645845409722164015844955811328470430894577553628026681852013563970162535091007472843390867627660380563630320318499975776538260150168732238782939432054012604691078888184613806918824111714216704376464393852302828961978634380661278123710146027996804880147932767916376483848800930239419480606209403574368333343344596713330655964084502157799675307963769341335783701033100122331382769660043240330386159171558144883202882322267200319367771358166060025764193594837450494741631308365485247708136699134821099222613533433740500049890762812094628710057439777767260636634331592961711593742533202888148499075477417544765644265197151223797340320997300773797816763859297894016509085095897506747685271357581140210995594731571817929299844558015318726008543365005632744174879078206195467106936796914315430343280681276526532685223677461172458861961934170934877746610946145398929908293613792926517913456513085759983600292541765524934993226602296124038291588539485652472341163908619305454102090210202868136436715382648967198776061771367277546176542444738929893897133482203389466041969319493682563714522205015572260122435933294669623709839135996972699529834213252126455402021158672283011122706198884288937909251208106776256227139519313640941076362288121007364179017645213868545897225756897836707158822804629433157432291981875261460348721340466867313291094228633770720398303303816211956324447449268943545898605044203065103069617159102615402470890039736950214458636027933233678896840520068869701818967880833988422676973015052920334955138823344366669958385774563281939394036662998501818530478269196535494536163034683949378419183569613632848460700026596493568621863141175576094224871353211741952551886110637212808944108034599344988615980055399192875407542311015941542555881193640346647099678790467594973367238886318970612862194744089776010568905315205655123663086232932022663561956175633876876639729106925467915711684284709138599208359448979886533468784923722074525870113895987315422516454632416579140280997471304396020840042572418544991577378151322585819995549621670176055993146412224910427620982398412636789284855850740120087570447338790087946202710956806919768960106200452859999692111404033157892225692079157821145049606335936333357261234525870313350645298015172961161432652374872914641351380328716264112517996047764831371280093362677935175985628923469573326390342801373469659695707059398699520344921229708254503706377492719625571579474704802936815335574331706367212771179609307469634936113077124275622166295355712036483580351904918269228590379336825689928231731798736609825011778332683831819419140615367943645018271253313814538458173129111840162562344768740265369174330045341222484952963061632688458977622487957901033265813663707189896977622919197614319717175072522653644752431955478551824037779438879332937672006723732726714122494374372248189613260863971687326028496720846596466030890573124203972642408348154954144710122100290755589253296844261925205807830980282609817910931615619183529211202248044962376809219434685975746074088270434739947911575922517481583594768789570927641479154828810518241553319227281952621915449036544217646505677469948361946220752704114646835300295355587175687516222094944046021263262122478456926150444519159767032083065397745062138468230748731716865620023431845126648129305641468743636663788393292699503016620952115969988886508203267835855534421112293446870924662943411183332877951281500563626585980919004521712736328763523758470324669694311763861648092650866876462950189245678094513083656221512260144814706446388234866208538970139166735957247392791492710835930975379126470802099393580867291129920515962721549985392242616834095644706486819128919572908413871755165995755066061197472529501176523824777088362120422033372359554723508597155973295250643624180927526937650174511778110730093284512173661067088401902510645703813376153741435100840718484164694609988960552888358651294788696530381960736321800035202643583778989616793104807187224834210215004422426345501315544408055113961928090448423822624442878025038753462914064322564743630799083713480704900435757422316416510773594358423631269327069129310308250732902241934440534134668586471440551204649278124535584745295898412349752441347275827150720447022810589906877041817679485209493476332204070270757331233600784161769930681165193942231266548126486499535139886598590026621461020374375068227794650543638756865908946733792609324075727373774988324443037774629263178608426693625575150825270860192541996832855417027535766535629641296922080656960828813956646359641202564122539300543651720737268456688129392576357791019421995062723020061269203591713813392555033554033592007655204452708272515878935527847123037089136429849685412519427689730342889739614950509609802850364688431999999175178500600969671514765445254753881488911085688800304534169081038529551071867753733448712149627058677080627275500219016312846013229149664352183429605922859045954559195644834593480580675957912712710496755333537368855927798988808055595969873455727218230523930169579008672872294892229023755719296129201271102003678905105613314394335933697858174058425152010736692712372610069013788918506132797444482355771735364837325679075630849383260243737956309775118545700682598674809514788589688629556401848894405628224454611454848295642881468375963161440252202747803587475119883749846035904457249279843938966392446735016492268792216129859661858239522405693482358402965940009859810285169968825759072997000997649041654813505094060627846790326994050820482276398068673788388946286229010851851021922941417642203999839467145311205837331367607263597527765065959346835929432522469119663929002196487432004667755645343335002142033515915862488841504398491757264440654800453702847610503860516577697708522627257650392060463743158486593149840356939633352905582741782967217046238281563007014145245769725241131710691837736775986777241618256230020997079325734218969003060270254752257763588364773110235109734982327165907315840002561999864832353744724431356800281551365259754859682482764543616488205465837479303605720681827995007792092185739201797342024396125614361609913570398832164066313487480038797853984351706408934250242419354812339849851383339230027979593408144847344486561684702436531574632052444290422596879048253675107322295583872360972737586348498792193436887305986231211040699773163921354224020108917045742336124779334316183128596585563131486750127593368058162593887957279736485074957425001624854081035152944347562736513373891131660254404448702577689036592780240941440010290281990325079832428080211406757693733735636902632132795647445950814676114224160451787257793585336160076965240846124697665092288344733992169153059453979559081153383125847433856791656927222791782683876023432228184423557275153479112836018898656747987827143930281682490679264064406348820660823105496103355921779686276865014631344257249998622817602229618260630694258311724865202880378290449873031744995081710155983978084034555537349155694846153951443042658223555962012290046541901981360259002201399232653034253538234969037626293771925816770709201216994748943257667786531123022525300785054810233829468225494692368624385340810984390008323208853187887985953182669161355684680330041040993641956020225244905679928263990792186008228434445423623082754375980751405933240211988832047604906338111176351243191905998395219391824907501698602604299495462981685087526140191080350634044627988421373192721707598308986047097737438592964896637299896692447763508914237847377130812583433041683698944947582056079234229433393584726631863482634385523880044894520001541627046156284264873627905846923758516666519451607959286122125840400463136928720047947490545107703324748127192136504228992036616592682388607315467629571621312184753175420463914326688674031664495988175918108231585332023608809962781792005572578993850540392801229319381950202803187949267271267037572356892980545774440579618213738349078793809929082506111834875435564190655227379878306202174719357289930433970048261096490150031612695084253458101688039712299515987968336904196432291272271347374928211667492525129100257421682527456305191214057594609699717298771153863429007184129283967900154908896253847546209740491144998403997189681034185563659392819110988041984525465202950347654719958665848373350006887049161145820562254060350822158446621019395114339124248358878223529571296920105990715085449363809105410956721271132945855081969850083205511153486518184374647107813161841574761012622440492135107331111653280640723673637482510121463267032368929344477603746201472883022556718276972134081688106098675813700554217332269231195140167402307896036429922362636631775398307238674277411992325021027153423702499930450883349569084751184623253979181304303261327135119415536714652116609327125710550524332806402482300577479466454825016063330684819664409056063310787224231409732403536371817994530547326099149791998504421818914333426817429431255783484946639646721904552636395082227939958225107039981265421186794463685594219420806380596480030914240794359851135546730725485055532440337334545465956790416807239088515022631332715678582082074958124166308164813265481455255515568019123500440025991744138755261857790098173343930394712327518032400573163303133571982694736668190322430850508977615139012867036907129202613138692457619292719107307448689116719530486376015312565780236123442673071417721757830867968418309631115422507685458931795059318950655669959078160293295364212164041857286049527633361624090048723964964377960195038505990387289466255163559320419113155237659294218588532432166807209320303608898297442164841675346469827280214085189607845031324343077844837661901205196715486897860908777963411682130004644460168467761788023959235977247958682221054385849833448688944978842733677153897891754903156235127596687918431310745397531819810832416537683397171368954318597550116908711361693323241680188702129374342227050376663660021595037209360989254114183194273407880734015236906444113386019221345713745286708491477155059748086174226443298570786323015074242611463207886847340686742026176515361162700518147069411513921970283833116683151093349726607584871709621363617515224535131179663689360777172592770320525830690333490323146133929150557462708386519857997022294544574870862204728168130555337656103008971568659850892847176680298740502806332923211668910608371456423243628855401219403633347669807025763484550593295652493663844671659682483750744120954779759415065255894347850022339104698688172151227790915051950873033603062089066673922937622095573530883693186898114068089260253096885673358698904328284363589860938723186464028692683866399667570842583212726503923402571737536774658455056609817751670582421292337215256932116942077254724350714790707109033660284355078809305772274158044390870437227121803749605993822626671147842145583657108507083109936144984442541526897718903250577881943694041012682294282691381240348120553005758221529065706537449762291283277159384663418288473647130567651784589736081332089518079837510931716460678601934892142150991951545010192814455914117437296066827952410160842106555152833240854009390070008903395294342213589017855508178910542169478409312410779365576021695150291998922223672464326978260162025451674051177380788383473120768647049903088503670340787064225376872814675651621035846911242968322910297423840208811444627799065492487591335694346279417041384086716043263325043244700452654559600440977649517196596772793905973153685174261427870083665931819205707313300952269510234630550152473611597624849226189501643200923987322845705876490503487921709982468933974592062981290738888288873042939951795633766892970235871287369000983077462262894045331789955330708565622104940131711791352589324516194193180773988155304258822224534517298039261895675420848653377427487690741492112807058396207505476894619713997090906999971863820949301642804163383287937828788042117285569189885408460953116925156257145410196034755994672948295022805511920563127633470637488605008471567749217573850246803870761505366172966601530223044918538332611510876022207128848139551903396052160415123872785481117055954323255745177391968351352736865132143155852183327540535799833652335199394559327816852032833400304906173025054558121444809776073652691754120172720908582788523128208447144892055953371668776245009085103178438921978236655640285710381091626916316531676778783432032468163132867815838372789249222454228706840230226828819626688755829685961958575154816511582420186572864473379621123079872908401493927680985463201225637534765710923497813101835215350952759076870296177536715848071310826627749058102949832657439033976164231310158456478757260960825396927856419446204595102806898393424354367167833612864165152339808359850446648093176907849869650555435914167711108781267038859373021737890465377335734809810437930059061029584780846382920972199385651051755471129821705807948004461380464236157939388964595714401823937282625281084974835398029772233226122567607491946748255776685895453704185909055560954225804621076288452524741192047984552006334472112022392462815593744043477220481740988414933633945162877278143215486454118243044057219993572814420284532517572737864620206307624116560341073188423527850982905394629340008635793723872837679026252638683256946775108685250771090929320865979985424780990708174215399336165356579973434837438885566162766421353456406038977192254064525110464673317106003960040768937392128741052148832106488474244874400104611457838439280486273654996168593476952430185271908552178186610913384452511376747412296417750029557812772962871152375066792030878629526841902897929505634908911477043011507334491950888102117249390944873664574053146624380017675381054125850460967433484221790414003257694120653870029611980901640582929905569388188264045974531941299021856951807225167012509183600964729527986190886119191827874863711512024121382724784668117093754065461326669115078802182158972609395070975375522877770392089601095752259050703691082939203319265317367764709349284004162292674139786733434089869472833214148277873893675016451410209969774752467193416025165166915962851984412544297404871991871189455742755367063350598596610983136260121459943919815972146291188146545328917103166209523663166188270011925535217958623945772395479420514406301022215673969652480307467718041792239753253254356872791241525708398107269295491475329710518363279110167702028941703243940696157242394226747359398604855291351347288771754921214989889873729017619670861076684028202344935516970660444318859451569323109286254839894434896182608248413271154663347862118533405062297033542715837291657561393987141105582066936114660352740483629645962813185061091960364690007087360698197344636991052086594214410624589878903214823689898366894122514912314301900263252221831167619640196282991005082290328011542643021279158581448601582032497809077455826418205813952739197900360746489409404159793460423475616751380638294163793602942271105813414432613537185924843740749814090813489528175696263798621512070860033275184457107810608675669189685465037062038035939196492658099651272484138677832258777834893085786409545930991528880458600542845798460933783946043753697514859567790768474461608994069285812643916155439922596824359980499484584968988271519712592910907116857619885927521004307163758596867940482616924754336902113637853461927256504716424930175241421727017418139218522814106335697447137018128057027383541737522368911860318066640229898157082502016981252950290513667283767939260616366714332006210298733303002348142176366562160541467608925987823465956509381806732833634458524993346808149644127033889526183281508156846532254398580447455136931357521088493318493134014950341053398226795262758248302784416745934049848813134278296038019122615533815604652171186876155160482557617674222932284151944926607790691215094174337608794747902543736075046365544379417177493411969294601963248280258843719977076551963669202786186795382653815297928955534996333484911458769159185314593099572946454435960914148986679118247784879183460132879803078420196028011670022693878994449855350068283408229842719374606476542911935403053059385967172538770076497726359592324424371012651133022968232772663032891272730348162300468948056252007851492334053708113821472462506218584233559090589893637998648125697615098659065817063019246284348048226716354227478717776461914631856875361741404021506349065768852884718552948409667049041911345350686737700724737340123072528582436992629736508845462500334293714552757516805999293294685468620481082533870475097298520883651618823084510713575747158290082885363564582270147916486219433330746823332923349066816665431240851222391825842473870250982441831266806843977254209931492218988029498358523894992362164398616780343770327289725905537996528067216827288763007250065388820552172979618305647907188765508695776625151309582935813519631722670702822887670060163466360155486535175692536871590591676100161839253820440711262451441080456176037041631519791003069041745352426298799551342691318292730319989679184039177331012012804118198412605051640053177311887906316527524749141499873288088889606178906573487067548878065156327990609555228559312484870566922921505138170683764320904282265712703471721099316847376233617317383914562510561472733577757440944424182802163259425506653201452834464018238037813620137142686354693163215501911559073553648788509552968513864859815571859681009734618975859692406588642162248435708241260186214827708601516448675110741288112753929528976100700617466671081504088297150446647401813081168267425803651552789307615900843169615141171540954145639623825544669026102894795416559262777635030367480922411835929202402872096048843495574532319547638167170695206908422109283953676549972153620854199939178584367156706670181473521279326717095222502125466998912034517164275870607272026268912375478278639035214509641300912187051476789254109019555812301984364428214063292629179337354325726569220068950518872944410561220460914862088620642327798981314068335203985102835213380189119970410961783264608745217404856411706690095376070366519419759828738605519255993082075255970245050350681368787062482517325699859425579698753945965917393658659732063264561071560505498325360469150946878311064069792090338522152623103290248654873721332311754838915090716532098175298993978186100247454346350367051269301442181198414549783922628821020392702627561342667935768048214630369011552414224304315565504357405797170123536135689134886393562523002418610925288219487151474777034428724331597196088747550600647163087950202011297236960924125743674850574200168129317352712541612376681406575131941477639705969548244534256736561659143922271614156626844984195437347695163635045217939148982351722908597472727211148936933572978499980728921474783553877235720310332536423301508577880646980483936957249658174916246638614744082678088910946389463106948044406920567465749593259216935820060520708705313265600555298476578219597557472202674555423605729771072120462688782111954950297154277580001084595445197909213954724579555776070503030746790959912047645152227561724598907460990594939633494253468535822069348031491137816593904141635290643166825502180513869373315801229413122389706903835822652797596968243269326482714995454995293293808079840733779094126161154938844026803159181676271121974386575271923779641037746547311029650168419009085730222150122827944677410167695751363166901395271495970102047197095345926113572666005644149124111445655292028603588294799486506863714181042649159003340418981881860622611653115318475240950811700617541417459941757451672268329374856952999824077909660521397103403070400656878638857782138025814713777899839247032108677075107334786298402202886309136737235860785397446947980315265216129484908538034875523495934996486845154604352003631132810758720972076609208604661657712188228998526397293896266778460143598907120329731228348835382888366870644046221563426733068344894105248335133451631372945809323629607544784042096579068762937501002857089543187474141319054394374778317458880338630305370317550809104033579108972090121480638756836259029742614249696951399394872623211715547242315008396062794509813459065090702515721953808022613396570505076666915655019297855576315695345681343502243631545658698395901660141274541437090415071283446307063426153760040254094401623098070333710780287452647810220126466348018958669581390413033721318044603001300669325741248857444971895342735336756250074400415035260374355344929251770280314699361702396342886678750205950046309317094240749979288307645757469557909082166217752956806433749752958631452638784922562163642536513562796843158643122248104230841651156893873597585121592689461960892183598260731902380689191517021921967364988297792382355216269311172237344119749094789302266144604029413251397703413891418318311257388181111823802829941030335319114699134204308573108245965434254087894789638493735817137659573592952866565276973113307283235045163878081015314910751310330637449812333994725629275501539220221982540296863898547393949348018764311520554511556595856827518300718081682102994777620134360233629266025040309411636251409770087467093752504482612921941700942364603977826183733478447794846125293517927759696630436828208867819995573726117322060685035986303552524369439930953803995997147012895574121723172520117130669257786824141067986862557433077984303478181813339818522765952879397670985429968386362140359730384271626582152307656113601240693782490691584381280744705365153402357193799728477932792717692043353004839160529482538846710200038879351037048800235728960257548846274471645824678053612328961306206103482512874710829782507310152031428051559914266351277826417910015423286143693737686599977032270676749975781807554843725662177818327601265176600232034138527468744643954410807340996500070963975347152877454119051501081264557584683362396532282174654178984767008302256234791859914506932314059573838102071182607295154766181409841467022427481016966063970647342708588279117600374025564045277699360776479694128507670758629253006808812718118797568645899689021363827968776210595879450308885693066126044862140088044049973883024514838216863197309873889942045711255069244122214298649494739624735844276770477515469698788375814046296012717202212279738333518925421683423652720490458636043179731574722129526008602992326885426077370132530920471255833455798174875262412675881033200532352377589446937769907331645089136827561515254627309855297255865786982729014279421695129606770635708821119901213296665025849284822995567226515751415779010941163903746015387833397975819217664112250332697428992048736725283769246165782352294628499282275317553176143603585871774786527528776901517926569765436947582380958691731996720887719337319591948177322843725007066404100948516510928912425343259753248437352037941625349730883639083404625457572878821185973412837593041487186781035421640430926769682437703551019655719413997446181801120347316965454593081424588625586644880311273441698235882712921263565668163362104507245210227357867625203892929580229797835986590902913859272094164253305039678594829531072198133466669789802295973958683115178478924479906186809941671049086446303979436003678201976807213070714791106889521494555674323388871864486761659027638128157799581543139630114916488571139169410928972354911472484951665248864761756903910397462528313402558021945831512796338819396239906799005832842179376164545845742211790050992258591807499357969482851390687820947960684540206005608271242843721733607492547517513913789436127520894770541323781699535201629527240540280794016623553224262208637976209834274889820450208249557724726697136433821846020873175749561199444504342331844899974749919021972068597707261410995455193709906483616456509993577963372869669542946810838280750440636308190595256744497126992704536190920265442974485456247215384395138710494247575747640846342481605789324065935831301378790667791130766855497985653881104783705755727268071042350915075020757875413214119885789805564437524016145232922022858659196240486965880701894929877926557725378159759922775399864686898458948703651266150475148307377431672914749691859229494170635159904475578210839936685385579987757133217683116610648733355842481929555159624768841521996479055628777022022199619839061986778992234162908621692902657286649880477773585740884648191036976002906546654838980536139317081764438294844132246998350937249191373556400252022087370254513708605969922089393735592284716329085956053058867986772756430621450722509460057039372945633440354442330198230315506145001129803559343177333605903018464181534395677492342473405277669849993945162465456077519279946535548733261841077324092286564831966908099662671147517692462221523550670425941454544509793345542721481188032108628043025886278554867426642345683746360731590847221681724879315395900798190127579221546797062869937876350269090366499131054321991989938562738136491893788591549128285337398048034450200607466641125409650934702812619981184596539627484253711497684443493736068592478102564134440091500336710701884633355213856032075876367944736632782285641593018678250360886015087427220255480744953025120735781734452418457603793113291658055092197154474645060139058840912302864548545198872436688717386437685164129043625361576117274361865211544422718264838170590347626397164753308520813384479579351569035950016325321229068653539481446336384841459079891103813347173735571870250229227525888796999344046673062708574765652524932607736270865298179810172154552880897452653993038831631171476304870720305147084736888393850836444634298704720233476184296297717306825272346533346785331042677219648723812005887759776116071180306986928095501950588352359437581468625974710521749365793322388456375886498328835969065089928903360047609664019972102780327200289335590127253953018130413357824130340462582421538447460741849952860529004555345583451103116390485597867809712081350722504670352626960670702400070591955437810010625483779257035500847866745721371931028601307958262714932351387476948067969551363841663823749023166008324567252087227267774702446796540522951310206326432268731957172637931704813301436009560134399703860279805036020397190864962076373371938892711817118128717708037719935162600852706820313111960160225818681495968268429493122041110272360410468925173940350044051007264244173318247730494700807451422796199165293740750306096989763554835493642452809797668610991704355751911437152331572762202754499640921301079407396935920792975119138190700758677824483942944828888619474770767589536043637680016263866806561925576639448495761796568927989613678460658605027182938534989315198273512099443993150574780893001273573674374063271270899633150780315118848147010254892118069925652204276053600887058346962280611251026193332324724734012278238090456622467228261115034383678571293171714663283899226819686015102842652264818243385940116513275514691115469553208246881640316325779310395072118451388596775182111564600650813999643449760863879090553127444133145397727311782838959367407373782499495515381639941689942068569142442031043834656910765669487765351017654481534245895477222020306948784070345594631174156206399153186540145194228855985522689830099254520175681867665026134263805924656747678371730038588631062024392672801271387061976649446931833345194570423746423096588678816520989490182392687942236053942851199127408422427308766309323961792241866903452213117734816707786755155657254108571283191002361459530245553770461961070247969582800276159850883317475628540137066562236606068061140614097489025667847821741594599602410326726769396012342227503699919611026152135989195021164028833077452890686026744916293440375969959808711141270627611108463245605571983155303796094729433406375006243208052049748439007840218267236058763530827730622852990373278692845704023766790153491550018106079969511597959164746945082132560944124747032948098069583807703093374751552392079110389049977968552954635737394053019299960353929657603922632672493322829746188050390762583288368602746616855621523842638116377715241257766271117546872662412939483746801672823738396772659600536158881450476682227508207055606694438486858905974963871383432870417605781267210462756176498177344211530335568777304456856066661967441028338344784545461234812581822347049432057901435335414629680263131922286749527529121052983074095358154226095264117837159750305199033785241083739598591404341435844437149084629065970177454219064829803998348826271352147867474931789211691844820483710232908601009229737167035202603057245478068088060180128508275502463690086764525323575993738364139590194401825312985237780043448711156963081646707359871499469094461532523854015681776795862957557413395317575596018947154748672948582211184023340548194309211064426708530038438166497905290141153558496770048124080277267748664973512434406006811135083270807799748567107246266555360993410930820685997526577076997336438990778445784016643179072993463131574479319110776316300041591608545218348275312599272257856410138594932703301411180899087321260313276325013816050955867739356244498119452788297481202868507768353553907625630534600791374958534663745388232449365869724754899801640575375910454276523441498888827166085787444095314762041574304155454793106246792030670973137408188803306491887004507166837987313354594423522795537223263778495810059530461518347466110576923260765329932554032757279938761481460355982730118267183692057594046706465451608028945229432607202411143160428549465480927901958606691268876365615255634522557360721734338380802196845864244596476954455967303718812606123832266074859152139168464213195265716447423210923478392550926497234149528744799068615098384034332958036790237734980675555782373431736260201626657550495614714771248887017621678121931507070453549854434546561856025873533856644815062844514928180294626562090497127789436635116388145180403554754570838572975340330931520045631300261836881565664922564551474977119173390345869645407086618218957049360942436632510473361787441150532534754705974673956313182002338759146299339581286653853691548461815442955811160418176494067170937760907089321645334983178779168756872574634846330863108591935349683955201819499476640104501046926321975236739003608408802841819690970096671383283452449627373357251640359058957141898446824422474848368635005675549253170883298783814561866441357165996877740014478382699720083498726876353083307326952320318710343430841930947070478131803350448446964104858187407028734601355226469907132138352536419141089385438341974259272709358748300456492190271158758755966344290360914750781501834009736078688392556500737710888342518386150774903669401873786577291161210013449656325305553378342929607622939787245529331523405930185614285818781071769389478432457401345414749608350782466127442902880284643325184112283837593906519317574760217684248557700849768410547414584417608492981765689323586266799840523388946682596795199818175082477536951559044127799891841706653762300349621385151306498450953294392493868179477952663969115186862519116169536755249434771505676389038401060103581574326973587152936419468206234347426976252435919786028292561848495324218385915333661923147002417781732010156120337888653465191705609857603137369758860873312731788861978040552440870900630431079754075314223220952221100921547940068997680325124738989307513495893420456718941383972252455173229134880335424683964008096255886600175848127356031119439651229153173433728199492911393876928871251275103047645238049777393543844584474486096690998239849445299466182477303235503583680203532892912447563556162098111328510961279339391758030669694953564933068535336723704904107106559812898043862827707660963375324736780998611860935085860478557130042257548965779310352856810218784113203823612394788253465547766660006107681692401432267362559838729902862137525962949722834511063091694251986913814595151059069056790015053205094660884088295596185152071641284970274846585156340404402755440440335360229904388696111562138447321048389162186023466799969747045738414115720849754272606105950956307752589847179989555514961357564915422650330926858848013851597492340554385558026037003901464449276397793086383637848038167437010913310033464292014748385020976024850011929604119040524749330164195306948858010579569527449564157956836399444866630970805354021475188200857417978210950245741713963711808593215581702021763163525150854315939409952559342723553470160911921315475091779657018256246205379863185794224207514616060347466212310487335657878863225321995757582291956932748551828636823915895429118903264008668519670595396540065054732588954093166692702437468512875464540044572962179953343041074723759177549939833962940538080607176208287295415245859808493292308663538044265607191393201624188855738317085297039350533904479276160802580523563015380283995438270441362944550259109227632672393697297535650460172837919060567141159941080100516637857934388970682018617421744008277757120051587752487568634086918224374651879111129512332676219981819965168291944443667002625756589292776635794640985710658519234411454202866345802255706271995901913206232447338936079808640561696614960102524215008695328647774263734670982326553830504671604416414092467231631966840504376636513750259498173088401530461921486063439224942796796401577418795470644255933956728817038193023654250722883254528174095230744537383845550543831849676280888588231999985603550587122465487202369483967087604913503761402545944429072980767310066313690005459609428968313323578658207087693200928172771969842031829184687419488579641474084814887063321095087577353282234893006757849930478123651119646641007750752311921472573713560771320056619606385547916708287284939776030709364611585274944250942162752073318625008981940656624855364282555196623909750317854674390571591969962868674197755270063055425430186049584609056998457843898558934670053172282578126515800863071084448898589664810976082612894924643538142296056211018925777835311054246375436587360335882034068927888415544826892518266172969904031245951217895493558627873665710038385088029537409673040672452707935086166175372115192579111151311301242100702112438282305354567306682722986490276654478123707814724479450148022777790830908336173514697035252825335230530022989109504093861176381983366434026428827293624041784890126477673519195817498638895339760655668260720577005445936735685537450414514320145111076335281203225227427200818740034390859315998224891371635833678414319198354833706796863545211254916560053995135396658889822864794818460446164094933462768803874281444567110275882028784075310533724980417333434234850979629147788409812611964493274664285774866104140451879822291382033029119964903942923808557095164988977735094531003342456903558107138187606491119353655126760182707017171099964120611163649160218617246843829826666282187234172917590952988013742538434879050168534398941634267541123719422517243287430208196755837896230284424943084605976942107905513934192135914322430754492963089185183927700173522574006212083498632385701834631169581773003336845048696884494885811219878623334606119449287455875848218992789462382611427559500024932661773769255764155521267799953377911297824956943107493831582994181849566914111724412827333462825398447087655236521871784764579457102187450364158099620050981031294177631980456874949757350127036484891933703612061279816268288859076603739698669655882544980013947448630390994237024190755702952163248363511539594950767084189022373987004938092200755714328844976275791018582451823008242124981644195951235413059754296002296623725888182846259631711281063766472408138500237086528094909726343362791693539059786924169104471271280949492428654636912152818140199592927439050080408617279886646645111001604754243991015778088528738687817580188143814297016789358957514548465428323093588423731167705111882856385523260061477656223103296963347399341926095730620523596360140487467874258610996848893465723331086830252036645665197393749153067626469193113703208635304715415511989202315700507387955804495890568274631998624458147577259237094630816939805251598635300425182489289238209564911067283877156865280943520854059481883152303517551752615776667209702841437841940086999203138195594254549769603272623923116411019565948241253517846874154569882719596919036258861094513554824828914110043714465641132901228797602532403884655142958278007071781825991271390540669292719813773714912699105668263625186202467397846271990464948032247842870978397299197684220747248970199583470219564647583177370033525198746150749769725315421392616142905859823532232388784548354341808690702884727529766084988211312721150982944692801681834226218992780396619585158728195425211076956027930170849813981439310887214296145611536214471138584676277926204975928344736559618142552902921144065317303066523354875383998969405664411904955633184698475515378680951731192281172122258232655822471977862145066319681139322131111455664184628378821718473880115547024553212455130055966424330814063949349971555522982988076874619431844024842359772789342863331018794782145964914501302329337759206671786157662649313895250415708989416940233742087268591981266636088305424312544516175293598342917929860690536402786742824263158636817935948375705298594471285644026537557744693042275704488163495827287731798633076803721173975667356797196931748990889421785155765604509329971291077495153823163912371687526919421921443912997941454583770733991539473804702341567005413331639894981221039660190671022124136331772278538305172415120304247838121447691127749351730676924165134876256672896750491982016268976822658759216585355651986968979533751800624909123805687102154792525951858438881843272411287214414687675975686496663770163476860113573022402671709704042560379201265766716287669223941422340339898708900565501017484059724897340316187370240578218334987170579164645720564629176603042400096720835246147919722574763020365176192453879750021911628715470935672885362823645854195099497935133578056081107539699667497929878814700258989093905633397215361165434178549188926525025806814528309818568373208513796269862254248083645594913941981694176067204218870789509130783903792323470211150817354486196909177159985096751079502046334311106826443254045274244102162489659021377342189266675698405556494993657175589332788508805657983319184495731308145249398499436345281416265833922821478503501587664914235702127983229776027665425670471250110495260295778148321262766279223869234170182886437019528043558614094415009482211093981185170319247249720281636765337749462270816103805763196326957511760822921916401179665444698905668298224151828373134166040783741335074771029941092250115095731401190200023334157422434686062977098149934148835059767358543432723032375934061131986454141223967731711925241585824339855310006022803441506511705149803362327576249823838549587040029239113113931141479964880910621755498713213820860687839953045961552299541145161998095017560439505357987997870160469966770502490648986497145286447621044908957762134359648859081240005114383742578960479486465937144124713708474144880949565146452834174918827710175545148970467218996634656195659700856303073223036374439287356883269123129403135110084677472226972063799746504191354780044607646440896791724921170982026726059658078834071805274179678300679318282458158875413876197412904364801445512982261774729153450539467835864755097354107095098688867536035359023039515099948327121609917469254668337965719435274853828405147328553065617134968342549234372293252540922287721353883467676041935808311280988027026517817101862247222767727472620215628790245505564498460610641658818631188381823000000330202608459340457789540902760852707733589514712976874259938602637414798462355916219983413939747503586070367958346418332032404318661494239048287796009328066887387673947818563805090870195134265807755966090113658151788552835582129884002661184848200465867930103976030150087048564937379811222822866639476112911218409867104568362609125367167056638420758314311997660772440691859055680113621839931090809323500860276668471395990164881237011293369453940663660388032077623571295371345244372238949088425420386213481663997917580532458629139494337521829826103922418873282209135182825585903296021682541777439541735921700948401524098043588987143255368555880899735441481589894454497671551605526142700775025094931460926068632697935352313427612603477050926563025126909382521319130680858080700699135845848214372223334622884067136394739838484994976219055125781416966396216071360450586450396111109056501403918521416653408692031685279712852939012700749917421188928887691577031929522233470150106817573710463875409531924135874531367694516048927596903080891702251780701580288736311637575469408899155763668158065610933883120825339308729167356015478345690763431573092154049358362671087586366701761606434468429413852132460979618442807820877270747861884394494313278754333579856331469129228058947470264629811599156248364898932906124432138995916122933786180752424380330241663870076189097065734482996291334154281131031806678082284449457443104553995351621191577001997958508257965797045549642037130020843274242109188503264561424522352871863726254027965366092628447087291549456553824494861853053086990147863073172440277258774654599576342198853424069579469627136441597283643948292434509565429185229736463812115008985849702957538953425538025661179746697510959189801595410972025636708643244425588245571677655343300717907439158654332633473359490543063298738555401770620412047183016968376457701504255942711341189337697443463047842540953080926004329629787542277546139605214930124922452234483078743819598483415430957997280163964628224502161473709979524396690638099906898518206507864035339013990918328097907792011683423343322405922410542089623497852142341554415614510656012318926621441426142928834088399664215526362338347632948133437223213920193633008656908216211499765177958725037279502408970462045250926882381319745118454447404309414504481883217612160002951755650650392511778746970594982619227778416736399629704271752436224078558829552431318737144765359411015875834638485374728009502433068745484858103077668379650748229873894646626835888221127983029350552432917122107227918797461940975963403605867309907463745526281485091120240615606158960204320929845441312714802921522091162613233759121771109357688981536003666495487726857013768893052544631035264419300355692419322586331733510896880988916474359867306540925908309141370227185674384281597441428925336003071983247123901431521633323778353307005151163608400475044502871337989714739707095133412834855766677667056114771381469098744381650274541873935237296173158374286483907566296273983245233402133304060896694894137580797063341208561248643556288587266760749740835875754787999247773587333891313955700015936081442816427242545098955805918171454200368164616865726007973981680983915450607282126069736121720234697105130914088054237457609100451526796505060814935721255325454681809354581571528170809148903034206318600242066932844429422755197964906517466889756976854446099609072996822827262534292672248387855828264005239830620647751997278802304184000736114050417006461627074096621653170709846018356559644265739459617523227524988312910422753238642679000570736332547647733375923929155036154349357336769517162770042180602260962133573743897847466805553494532441082705368703412777180560157327258983642001057897872639531875027248806323788123330000625717078679156054770861494683479712039803713365849211737986483216138286513816320169955563441036468363609052825095457530212719293098136464959835200544293770385702886924170042957274438435417186239312956994846609736540082880327312008707254239066624280068016126944876380644513090627264165131451941028064284085733878432062217119897583588745282042171779037090803525835543086650530312433375395521992215040051478090537315848536312528178196607262559031776512001816955321946618983824449984488665922928238949470995706762765928010961626841226718569292604395507088892084354930739178861205027736687146674532350859558155425565523084413992579989113985813596169877017930473229900741629380463215819090720876190707247803407032963411472222669545350189648069212062394304210853815169680936064908045481964534526578511624457506896376554569949914922495505029060577850777267830400021072893358938257373493222559314635502120034791713329577073135739627499391199721556050591519742292450047508680766477822608440755865002669204510341416244335528708775532405670345506215070855656404372139918439111100724285470578939463424361880899180607899621742337563904738019740524701179024294711180785374895113324288653382539147573188659292245594988168245846806420613922683272478294580587475085945150097952557111008506739219236295131256824939689998170748375067884839871870577167837211226595484822450313403886509668462681827047465191373534716798329972655968075176222478441732028216000405152292449162268979064396941052672803697910100143455633293416534728424890485136515934176880663968583702831116013128440690892233340742155709292826875364782210743158730916597209683724855847551961243341815229277542838238521375619355276068324347481029444948463462003437448053103823926967176937310009560084658089963530103494002090812727645866632084399424789207562185952107485112247781732762286265339488245134874842719935705998300005485206762542340351080797700229879982602045407618327486270856037985133113444814295162322786931203391641444498239245468807970873043032773000511078557357517306658331814185140130721227996956727646838796299774187245139040024019411693072889198814645896369963794557931988676912393382438867535123815103753059536654567315569450437937800965775708791423475827045992199394999303323332680285327922767225536037327741833252856900599142589408698536016055941450506148167329436673153563013338368528061364093550411758775563262100189624096320818688769360737158911146516493506220421346740674346382180384296078988412798480164432383118072607037471144548726146723423827329606988739105278764732375342784418634014716721608698485642882327516016340133161709331477859050638164413874689634773069077058021032381924848028745490422640453934015277461412228385949267263836086448293386227737233996058913903080837443482284603231376244737859968698186270689711052910012727441007862427755260773161567927381800143687930270696119474515939968734833563054704162784197325034741058224524339725823815392572474560009230296559064245282574320477807191842170735239038994238904421463902179616563297691976823552717108414470291446553634974347508232991300597362562221149545045641605836156015222504856736048832517813401370394217862663435315544969437654292356786676206193349954498881580569224261806094902205927223986899251468165632207526281648187311465310116244474075496569487992607194030595193884969126086046947580833872934820103550447651195672446781629603531764368238281498481478337651090022279019901566414350601270271219879397398040418114607013105225354016516645472953390144862908953347881872802559880130790770148501174367392702364631796540654687153415883950444404917022313943431006814340514451923471530272502025817738403842636483169282792600195032228189587265142884388352607918906000280385085145025976740090568599447032407159106175243051877158709938846523005222466102002961544315262494399000019696262780481418596668993484803116086098767302818962464691148742453329820975182671600412503531725509384935113322229674836043265229978394383537205656257930221059427300090279504263764232674060928943989138740851935725404413281850487740614410231851200892334263374263606978584018193477620353436351624560477674119826740681509999416770466504775979946208529415146174706907805275884362889704380222349543184304167229059416958738500632613081783525632782863193269005177243846380330557773300092261363219382737281834322989617587026613095223728373503652441778476737362910292351629838111694085567255161580308095199076363787509053860113730349164339720375820666776658844648698424310903566944816879994932224530529103739539799638261478598574102085583563739342084566377375764616202703637205125373409828082592251678184539843795482147789880108553911106063202750241884285211699957185670432727711765597364403045430224949553149180429584595478647932703999499426352691834014890922535902041092910407340766949486757725542099565481065690824416703103186373632662225631974821274133193157554215010835297833686206730960087499744310586626681902428931316532258320323762228542387450329465502288282756811640976713361758651970876759033307036611781632627591465350573718646366156098503413970979304469665848210919544865241761896121459670964340169833644958860204626407506986539659871805058669091456984601995321504914848265892668333851762092885740385376138747632981022207258294487660757808147510275413305156314905621718330993945509789883722948347868168119568929229958710632743525600244138957583672094666749730847696713487362610639565334878777548294990488962998647202331023903323707929096741018279780730075217077534255261373553982167723650149907058759637762652915136306693131628809481106547695926095062288585581259729327832690641078610471371974484686265637726242488127649088601615424176912744218894653846695178617087405459380075178843073398199014653206865843458672292470960136626753507269116613381292031926286720794066885346259264022325861530751758274754952751021415327917495389865508776128838248395656735352822480739315228136560347580437652764813357598636938501446654166639189132335653889174471769666400025598956537454667759508679150667933678993821847229443051058236486945736950971325388262869639438347962056733191829555132458916050862733876617275474238448940104014158024821924063847711842972167415334318087807000370212020142772503150887503071035730205102257255674463049622896984896221329286573947650151751613716609762009072746098874012811301043416471957645186941820250284031230991294209015357178388852118803757547000372127947961624111874869012352427810572200752763273449546148165477256990150444918628833278534701001099012015492725033832568497528974953310581435419164500503491348552288234912122171020964523079298024449557270606242775095577962401880414399222933629534351863878091165914201449468480797814640003023873469143738569454329736617684650971698345435150085979174455908757647195332314412320544059062927479653204970775809933034215968900065668739682635387912188172157744176583841575847976046187833873094341680156574087892942236178104550655438864360804430208745804052946812098923583242058791928253493355719300016208258506903825778333090446630026482130778839408705785174163449513008385517231455997299182526285406883202812174708308200232598767255076435701859816555788033784190613569843627557250688969838773377785315718852009036361052707280971251760983319296893137331548882403755748422979193204215677477505997716062566505675456299682877096012343251950466661325784567153309165947920032386568779011923098143868280332921114898808591207757971231672015644152075674559877186313662971423061498750592571974720675145753808784914939735838388822833222893115977645565929156511029080309143119667624330616118850240255853675266647213897705552424885967238099042619227480077567998957599126813925733264871897903038380644595170422328087705364312959869814036577950235619584350546294603930552176602227411997586005814003674989235079947337867080723625633680882509595903567894861686860001044763582382544840183161670846841106201598611265697343094215392082940991387023503891587439516710670451376683217859821980882026247365459914782751081735129114613633954067469527862998742032898465459814086657217747108468631282259972363901679767367754740347877697801298201416728422495467296678502445674039685381567370812767218164162823977107902620754966316983923615425603746436000950032441573193069909735045169803638849742195509444733190119306527774463925622271944162893682342800530846667422458209102709852942398370286131600928641987967486992352720860635169478913966892366466122276416760501627163593025780328369639943963498351924555930851705543853643203426708797073848799487918918644659486263849672598578243907418662001955694283902369946695211026659736209628987075436593788481156372820467707613581880417532691140104721084508281492148589888509452336236282181147533834160292643861844021900213181923057925680780637566946943842898115210810320115577687160555806167362339533432670175537955485576634573200590955798532392619211447260566584222821847957940450181965373430965059851975850481592353299889442197620697466191373181745524000051819442013947299601701054015947087253266591224344888143683145580307794115407294870786691130005909233177338364284522982914010809932675429977808952228001120258057918157642366501390525881418170758498144425551410476340925524667223407568771945218728978499587608959557521921778851009540381158686702400498642449015654809968436483922254899384936110073977535539636285937173912215783161790460990418466996996356049125281776333050388369799154313866332840620120032372988497992007932773420694532795168128462820561163245300782780970309628988709661845353476223911497937307527889550398046645692277113343718896292105364922110963240068782057260479157183821594129235830208324700698964126617351409459408992111362062429223805875623957276945713156629930300789202332826745964631631429842131339095877769432940274685391052838583061929134401950470033086980949226960298529394261757564395321632447043364106540110123499444018730871187843869929929123194929008889680582019467198591903898007856166490188929338040070784258807683262050278889146730341553659230109648758657599060365568741134485801173197234809829749625067627711294061774823364548204801592973697801011270195154417844749176483280364621639126688773344025024491464650500016359343796062523841067147691389653258132013735203037487127900909578510240402443389393494494878283313835238593282082825622739050329148899504260261896598693797715231356669255448013376450731227811543335684499641857060800355238572986976909995903269279659613913775055958250512450377342063304677259002450032897544775748684123857602348620593018436875173853401171620556677098607233709536770658501445513744201928317612395204357734720660014627418112958477875531767683257309743968681406118914615066801447827110227908094348463921328810301121636701863510626783213348917245549535989928162706867121989191776808560705489971428340399432449100483572657391057682289532443750018794063915672039315880973848912708836846343971317009306712946246390600786592052794103762951327908996110420548123163273579943107529147885140057941311358262627388874159444664808085089847656200073455274631727662176284397044370641577935958346339421348803583359133117719464202139422953372082958171050356269298766044672318682348438718635708751082358162755724635011629363246347039699947147193932353413174620001173632162179778211276379557278073943720713959744264662441844539386860874304564035824195968321020265445397742802708304242391816418425569624076700319223704977452455353833336069644840697583394385863393308556918074098347392924597690761452424675909288420692105522066320807378752334447056072766971900070295521611528787030159312810084310673157727144740419958942116600512054427322221904392093074547368213773218394616692951322377098462836220971360916509278895847651324055410484983037621454842964763192232830504554409388121570201695447957883151978495968323088258696818403245084145902920626370973872344819120026115322249127564998658136479377065683620674838392074802305541378405196703490993904533669113661540560200815894197600916771564574565105506474075068264180775369002174427566725046447612903557117691599260980133073155282275263450060051308707751227293047266623591237760731099953328935607795935080787746115486561838314621718777227754384915823666731749588469422769573937129699150814852326290279597881015606304301015327141265521842390906339430838075954280665998797729111316376517130724704557404036502883956287635872619797427051349769672534286292873510464928819153581674429934366224041515608898359800885259380931700532321689992850432592700591908455045822924054489552765253448896571359035103892657384710528622955458085586274304741183162862548175027908218869158016371227529153000140672817336271776972621251988799808946538787660559356850921399154176720901655945965783702933018637163672133918101379935312720025477136408524339854422299778508166393393876273170077554221442894499430844023168052890304505076852748409644706541285075436326195780766930758751639960660442935371479775821774020789890982791340399019647000202103113249074358343077838507263998289315157980978489665646445964570365756604106253436428804006688292350684356959606234382639752305932440808783915160882529558668488138693062676296485841353727231724090629797587135941774956269493026245130835610279145685876290310438214072490126018001694379103963192722128537719167173831976728596880336257597939442175058699818417721274855234933048711438623091115870482331579011132226357790648520861818691721871254411198438051285086953029542587195246042508926188216270228376626171009596405740748474924888276707950178344245805563201567485355197839219633733441695100755500825390253607478897449997840412836008147376241550813682597742727387696503449755380856846580979014873652287517960764007296061241641333518668801211244149283216481003580300721505097706673722693164525199378087034237434026561463102389337770693507461275129783901176936148910118597883400646957577254951888437887946478966898383484918882225944274631412060935916034229177685963575983520310649069604242259534664794679344972552237579321289193475288807244719107889371927422026657395256132660671805742442461559639329352858653272659272032199390273341756004433756071148244008737323822264645077029255994466102137923125906566962598034902496981400650501370563442959269735951741754044659175819487091524922880479017085811558956121094609809240308968493830359581156939922092254374643735815064424379293811674535471112275672702552807056243467517340242121295046637486367739853660204932433290462127075460814338696781783471095503211667602963532598517871008850973066440256933468582770910110274053584868788708365202233146816071870063548392351422880798697184492212829880277474656330868175156255409468875702457388114413671517066366269094661501781309029883334770648009227617296316122909213419313124034701382429008088387816073589611893368304545989421651424284442379849313534907284687272818403937983640917274791619265654408138591503318270223784169890284804501320637043410655413339704207326290620431606920170835687655598625522143557704880569323638304707323120970486793475535129819908403485158628132329711293393112079763970930047058909608150625327167812220836100491217709712749570289334453983650270148842602852054840436457635750184777592026532244783589084022348453029508965787576970538834508231728773081639632816233079469752163397079096641506536423153024735692477563375097880121549400556392360122751506676051379055130653940640580229549973516019636697093796021026188549687448033257947672232420106503552533383729439221375035252492812545984790395855046888062338894512752150655335326604801564613955760188323194544860525806770283777294738309591513789160896421595537312968540860995069243552150527283157375508383368017776438741002576547807109814152262495008506368589387638393008945254796046926150220190801940682245117322906044146353968178728788995088720878234433461872990278126141649374202972729800400743721332307644060840630083094277664071849842338006600486600389110575209101764208832410914637096439458379149964759999593579595109959456551918745162571769899992363205156922278998298830974929075698379726692321050574035048261266736821435960645597452305704633822827214242988269946448396493225226466708549623451209179061193194822021234913129081093391022153102816499630823499378673795024812545579162971144810500494765331736658683479822248348513101878787443358404898391591184520546532985186844327597898398605127363532984838633869570628368306024664911247934046314504329536906462499603892363890771515173327471639235484418199981999075039182835027263607071028946502112064628234642598187520246639355610220351177800925000017388314058578848034937068044668209763880077177478072324405701216864639274534218776646991766631782825481400590047918170942619373284766747083862594643152394610157689972695594828081952603531294726988713123538104158129771933427885125860097154280550602030574856063408227842149428503604077675842576946636892651844532481388165710183255528398072560383591676520841189503656938120714448050510965563892523483505392495459056852126527520060527173535515653199219619121992165028113406564958810845159016651086921450229551077505105595867025145812042601186944959940505678736374047293608548270607794976732729869510603771072080316602302886340498263947735246632286144056699750311970308881497104302714211506006472870714047434532661419558742265882046576633073616547302339744171178220504160686066724793124173723901398042921493548603088845484841076007277191791312806191806243061365849000873160664664748656695552542750884388324615532535178535134927853602934886505158239851196240347708331024614836509230193824140577824188126408194072378715394434736345208553432998863735763764650865692364089915776105285295301348066039706808637872465465333139986836783757856177695131435832209131074345078094729976087587229617986861387774205222242436331532563049471735582150367747572932877406111862153560147473203388704074164418932872768949304270973664023591490044486111103642457133936522359198378259359544023282818389914691556547036849390118968000577519425293422861529488080867949079223023975745016350807570560247718896499408160500612933131456962315777843984065618894760777395619481939540091561040321856097033309629067588565038492530367636414268578341519207825853964398786192297760449912110898601331923561845862276413037529310595530538702751493299857456893532820476502745539364809867174644015587693090338078760904566685371078472945312752435788890659019748213606342965278827859209841707459615214708340715427893869613224716925207915677099536059980791885306890426433346284574027046820142785701255649351226138197256214211444283451357260491704184584361277768521875971345768242843691820457137516333520802811437259363929773069771557424656326098411005929521828202292609537127807993219087396380918774230383668296725830199395444396267706150424959946622654233082278627727655774366596677691614538694686487841808353463991123111207544914258032979683564237191088167356054631148638655304968531350026180484025793547136301166179390445276736596098419494639123731218102519004598595147547411786340905635897014084793842888235221782433673715284839509525079367523287366787303998909624034789506446622058022318733484226572076145324514360166812722692248561830133753071531066768999675121272342959025672302493685444390841258922366293070589185197938425795023926222671935854837773073005459987132742182273398289178936607448995985609379365324646626453243244976797597607314440721962440121983342576339571948878600414144307689838118518052600363236185518871168859465637594418913647112759883423680877214029486145568109438160196872911295657896085131634312738447371302874094955560090224314196166652273243674636349679825192057338578934928536315861164615763531577884430391299720821386949759781029528645257527043569589650528246912385145509709792489259877470294400383883143221873457692858514030150492592271809418002557644772591442590350879348184021516931283646258489987355266526610210090471476386077222777819462441718141664722944289989086255347029118180925440241366529666078124997418078784161871779842823510233160031694539161703381031054869872305898842176859577828059571161086677473997881291517706091513077825976142567155872816375087048419791593518851291286405730103854214337472274884226585047445346502378391258667474328113284708737665137889965528646723982191390977276703634584999333134918906170543797372029443531642119872416699339043842095557303382545628315986084953081671311540315813456714073979159840678282226123809369429040718239072889994502537133209312682877370842694168319123874627305500075743464040457320461990638654537759618820251356988556837895408640837078050756995913196895898503464781165783933022489404407169315352984882875632743117416934706036105281612023713323205090551767906444803335302699208262990757532923869486625524242563317554153072752951992742196450721769877640988894994458657361339216698840885347435947075644172908943955538578393363118410093637784855985101531422419110466277946905749856303045675817751265241983495521295083705032453553605123604755059171262612263928034571504061772855646885781720125343931442455455603662137415767729626033823321980172536607537624237253628254693796362644860778627309048719143796148369790298511308463523549866668787233553324386237438052940880200010462296535774120901185281078174157570321087571812546618296384542440558003701043360106518394106195995096802381851911862769190864838290954508517028032957808387820033137792644868426731427981244981608736724887298327476710254678471283155122584758456721502237560836006057466244524491500581934339297432359142045216574995530284484972680931433892181534300580201647206882336918354794870897952302615754709744817183539891462450142631354964693835880508757903180750147615152761018652345535359535759228044696473549244878246155547598633023745174725488221991411648548619635842668571561615798434231735067704538988881401625957159190439224127262309601046582721289921383565262488554047201163229778468525218473669044092532917160627955805714595236860352004625060643076802820538737070001482262229987789588379393323657264392114372248772547727414587077864280121956708430891368183368151373847045530899912754701667980809837032452955103002492685286190936033731556989264696341432313051774733375516290911811156413834428917219279527695091751715738172634387100917237524021179718412831086596058202466524204983183763847768412036079043946855771573836885447283307698152692932901382838601299620941495574685127926645533526156738147881248927070204192875117970067705098798348263737190475349612235581771260357687984375580390693619823522867720167469192884355194317697555991819081232779484241927188057697664012894012574809759096929107030788020608166894366454933062631499822398441709316197190504467913489139153420071025060851955935786230310637940930813055970554143797959740082835072227019481203491111565804208239194853021749697516487173434919479956410894163371403917421886157745518052764792308515823455384571298591174770486720200569199452431829806442415503453580150749356794427322002615894119343656287392593694126260930980060925464392636349661681652769989581451703852545661268347940549364581039763120384862627305479377682473190365714161087944531397065759542815274794720313074544956480788744991571523131057102648937468495799640652731524879722539055880265097066092668162839250511101571429674323073218352176561032494548084672486470684841349378265798153977975592812888467144653991119891784506448300215339269493908184386829972448746771591824019045590646578554154982622285611087935726429216616120070066467537635108954876830883758594857762590961045209941384865892220429970691469185922347778693062215409174919843966049288783413262142861312039326901152077132015084829975469580479743263067418985220227344068197038000362463689333480351977366064197977964174373291417531894648700178570220989986973678331027576165391545033666291287585272934510027953408744384278528084336741127917775600236525823420436191039481732128218396009046711532693123398885381487066458848793112645318423733858240228599188141437433896852113043883511888165112723796597825751380338734858878513103160797188999529648580379563708808255100553130546024896646772117186743260537524287255858932571714627752742115428508152381088165586100276296785336112551434485506432648055728557460802914471443068057729582731927695311605565118974559252325000908680873221721634946374617033866369078838037037106930455550927903280568716814853077789564197777090841361893551331064149528013098302339911008350647212284717234493111026608200982983630068488817662351422741952132541881488736593998917279502181788641828771537520528850303263392543950640157004321938553798691523035040599241166566091834494211030494412258253073639300174622868058693130651562370819339216817801720012224386023356843159126473013934685265482707902404141321571087111120817494689731253742560184663051547790859694765034794232683828414661448568039405198323806262109156066375003812650411523118745470230782403687425851355463410057392114769262326870308859413744632139469141547748843994574279028408083392110032879708413785272293450448183964565469115756503144395683948987713979777911814219249039830441723851876173255440954720196604544416888580969101995049247458169942934994619121758526733004757662658601819116001850337399418112770970201449695530678473452965600800020032368040033356619993570814751484186421270140448245554536437132495700954939715957354313071369934726900645616593982727349327288984692120905749458911971716055271957946505954997993663187172331610744087623372257413805351599966637230093204712800339866022583272637637082857626498770865754618406847750878673915628846614472627525821283160793138852008250582812135271554255536110011640391886657428825383206599832357432244184985559480362661731590445908324683800850220837471078004715889087562200969400399229616860046935488939432124393640617619445442785421341649423749218598371388827908868825585573558412476774186436574525672484614258548049757267153849548624413509139083786135198913089741696298972516995546579672455001449698981036921264350620348844574766251269152150462407970594538990229650552621438043309964474653870215687228285675828825483208419140468490591860751717548279917396553639061552458190191161640432030746583204224538153617166344743662955737867493337214457504602105037381085906030730698518215568908541361785246109854069308423059032869294623448752501260815957745996684514924142333549227446414165148796504765893208711904671329576882007800233014414445968595758264098982549788767064414434925977020766167407599115235667815417743569901518747160285777490267755284266901554580373603544728800068584683861107213473207453206588833096892116743456960167428167741976441915058671986161161937715927033377582183997703003655871408648458396861804496365321588295448394789009323016632683011770002124623179252074582833706835301472797033493814470627499160949345004399795272206763155327384846325603120348912973490158893604965094551191375069362247614874174326467427530708457934109051370878153199450541378799264495154971823633187455394952930144735048536269883504330358578814891217933893294175182806823794297563360277385253539768157653703623195977825382031451445235582156481037509075233566756537685391156550245773962959239473726664550895917925898205680958881440937912506223751918608825962801127695252567957164767660434291400399759087898753260289350806912961348969672985531781553759201749057066793523195337344353557383186590144399183779569156182486471695585607762588599908833294790912032227946760583858094917526529913674469792485999266529618207352656967532769371101392373849190851700062892828657019057704936711381708262538159096837610143236700524210807819274231418837344763008588070069262268262310716102768952240841605322011372752005323090261687984498403552141639033447146004053776178483419778101247415365009922545792415518512423444168790038178897973511535548867147649226175473907016896081215083087572369710625356104312803308009761318277927797106949333735102060496365477827825575110137441192210338015960968943513104007378438382982465468616164077206810030440616004122977831509233268710520052167860705388704987098065284633704246980121400144965630538141935221669240129072555424478425050769620897614586054589270990438177940713030197931789856888419047256768562980178782983633862200055971639015216212793121687231222295482873467879402437208436314070214671776697515218962236307367180979447746373212704793154974829265593629760908554177778549717810844426016564763381507115123724044386783133782803499961349376298861286009282926773968147798077587437147877520589080777465403951700235748923012685717933163074958491289227636151201189286267438525227912726112121673910756731047680989033254864365250319298641424210085586210113234999853670155509391532551415714416874884363146476361329501806679038104983819146252724685140959025814843408471933976910543719852324383617549944747977294857130535379772950415229467513863977244156444249666570051244241788354996891209775412825779424415349069313244750593206514989155009525158571214580282042492866518077740887748670527568168993821610286105894248510494881297418404168521450657907188669888675186204616382724827610578599065838115034131627255609341269516814537872001328742827150251377079651626844781120375449957704088036190134015838636917422156470992653317945318161989750879268432763951188927797461530260951276735134968971813673193476314964424619184685761181023607930016534979806490961707810128021529726268404128984639400908794747318492631173345201634549997685125643500393761150236251756144214694538183387271527040253457936235481237704016327741058466304063357859977525557207687217841647560655594826166649915186088540496662740096319443388485292572031587497728232560658909092737406545803182320811935399846564098716088487124346177394110731202585763841032586958091402425558813526266074137242864641658907709343461225333116534294535166837241187269383416207086249195592511220091923103748799580742716305168461967466799592274934700134923816154588524178717573288208976954919450908548513478444506808483096638702547777131721613681919429324398068690932485787262465570460772208845869301109454264761214022170666240639551879588068876077376737008398106227655408129044082874858364421805609130945673817375027982806555249921800656421827253180936750205303893158291105090580771835599345217567445311366052847758853019583728068424300434729256767344086340332815986259808650786147195753220348541901483864864129863717802601796634794756821079117470907359321763359088314456487878226451536664562730725503357525250853768795091503792303546837122397469560134223476596702071737456877273347255025485820740796532658468543636280562163546895946421889823841342982625414339758807936037491704334227124953373764656480308676343925755869773981812394396727818723549662356154500293607927704909832292260528762500573640351661896227758125336245147060499449830659619272636158914552005548015651461151725806053816433555781102603111360539077119530168915117850694444779388662250460638829160638621322342263844406595259812371806540251955598605760956556858494974858430179854555610433637205233925794861658308980552730429992744147429491239100988279699277276554403975875290760234687531933880722689958706702933540426527570651017144030378146448801964368055666131211205274870044244253553595968942327304605350237824691700300918808029624201279680462682803282120176063814528175441264881269360512925290400641322927116672092770955033395212251763574568821711022512917964802924672375483499898242338213463913841666338175168279374378403532852033028690451833388375471650601560580616868330914520169207047052103138791810116438767376195027024385646081886558251627581225548127715560912160147882022614229562475401277897816317492266397623684507226844956452039885624088342236474893845020675605914846233321351316903296134725035218379495021042027137411306623925582763706721562514728978872879779355606184740880146858047019182954961084476367184834754574225509183918941060903780992392928137232668517034670926828052017720555169194193699443317340345450817166841034296751043764976829173372466291505230706533751213869487496871924916078988710480594454324874174921883620283026935413551726375427790010227174535411468613560863525978441987089002618900767315096041978816244493631823535332175434357208104340874527445045789714775439532627139763857029214309297756568368227622380431114072216670701852033348616126468799562377103854608028158108131820330410057459191420256463154345427976939710960401100112552388465871909180911571200891578323173391466540225025746635787048759110489397934610659252594858531997465617921824743691200916445863576158342542361167300527924275799558902884210799500705996537867741267662477487870069901460524185345855717168579090625202866577171909528896706716789570124714037185381375762117738378277412580559158219570217869141458493360401891728846551527668618353645823171997185863678553350165442396797319284470889497422772111035560353020882496487940194062363657054683606513704956966229255414030887351970690653398179773752568303282713237384022140008722853884122882516765641491061014428679524281568749330876875703834854728867724603698848148269068431829774962758578205529504428285828694267301946008636062238839536938910862655300567558764458100347601298243019450120111097891555306125148065573901921220892406632165594710892313642651650009774100726697364328536305032489302068503207005242930105749188596976103770289371665712406541864504254714518655996297605797995669328218957349222020216144506955105015192357465710349011311822068037789353410513599079851050643991661205105084999172445804637550233867001427990096036254404492846223690693164685764353892459962560197935368264468422829036607755781457685788689255793895545188381582915993830718088283659063566920378106618156605413867237916023658661274464827813707907288273847307038691189661597534094152303355616862470869146559357555779762041630899161120616909039839727932156558589342056841201521060242159179805164107383027862750757695243204036850751252170448240562333621376968772895969719843165933402592693019703022891605870823212333528491279238576851174926617874471389024261714928410597137096242909365926963903220881495889842669060057490208534697947859878307089770700030689367889007462041475974279844967470512933735918256034754873624853432754466160996447133167367213445419355886722180219433803489151248989065414236173755391369527210174366123489969868973160262772386799702086262108753845764049165316522244104817733956884845088846677060235458761285673691116874835296767287049016577103287631225128317005646139808398180308455701185212710054264235792420186052538350293069230170659116667209997239783792360638380102965329178702496789037165698375671528218689435086601044676058836788676215466086931463600859473044067620742686025493020148673725400225361848105775069096117336341228212423303889958982785853134485141236686851907429334690704300372245174231740356209630925382372088771454338954785575344462016556114742474221217849928001968749927159245167265628162412028721483315586699458509560969149119511274024195089120595575382082395006791249561319696665133581559125372825166492548893356348810232316090227040845702114039011510336874516795853281077291747995035700023027596311130328867340423700645652190757860018236634250101126862824179389559834398132150574569694283867211109285191340916422881292319356921576718678548443437345713571071817874345593840575694377577897324662585848423410521303612669771108781710317435655540262787275425862147494352143913660828634444268393489630490993163957402104154696210095704970829178307351969420675837948415621666500891266664834334035000593838510671992362658652852614750864775406134793668862479765672356149130573049821405335651638455360212725070043628062979023667661461371957434119330669729452024535121260725556371401640438621949482121719878971086533560583531427261014211706231907365115039493873598558828857972742394852250751050340251574814634425462374627027758266752837817458757963915860550244745003089745440860253651438766072004597860380942786885335643851036986439660336471275960612880878281272766476400981847747731734562845332398345489674890305143202271813580129480967687127254349958153646812903385196229732466095789246055196020597233144155122223652023387333085570523487422280931350356477814479867138827660510174430801780466553605317706964120732776903932479956772060188569149940230115944990002841888659713653568606305633180685116607368688570931125799936738809311885846352482509545882716655341754116498602483489257980874193769207675539936575615857596349629154344330856647570402126164422105033533602345811191122632965949367219078506313390323619085296232642529479198693743672400189240202643276105145381554806887453254274698771897791145097879080075394274903301240155792616925947938258090383032441835036097522167925992174357464667412607058023952560776187140076639327222506236265393024059967850416727775963383874293383290401541652738132686073047791537062932341770595141358208800344550341497449738551329561545600403517102038749526670564292021622304311553645807479439121278397413470186139959291906230620672849131495541162174389627889656664893582966645597781989886632405713781353703268366817229504458745120977100366544029644176401645246508696871172680966680093003149931417800695418157428601801633395885248969785690539690074161832887065243926236438520749397647864356772043694667134284072192789370288898444849601750610945114906477095618397430259296189794100174994927374377051497339735177977084874054412981936096040018735618332471397838465907440880526666606786326021468807060837876532527567662988082182670779135609846676122079692227121058236037090128507102987878410192299459890761704521432616248187835300070030608869592321190627835507375759402308437255354826641901815008669182827975197228025090417016585130684307157940101604479740979461858169735706692229536201003384824923161998616580563663466573019349876784195548320636778682935192440105939898159204596439119503962113503926225481318374740503539473080250595730643398720290864642914984953149436962516137852490778224454143685479822175994476072177952125915375771643885258922974955579540781051525208285530856625459063743466403108903224257747193965718161480669422331597507614098486041775646290222227146731723478327608434245906319696541594317835458782370199135546794184276259023678098624777526367292717780337160819416896734826569226722210892636076948832559464546863059766755239017295435944632397289123704239781454907435061703702567845867285233478716474234235082547212768928002294385235504832440044533001947820268251230938397493853223526768529162092637545730796388519698412976767763611339875406961790774379509362206429172186697880938150817670642939995030205551645661895189838060773753477393755016149264875130513567749950427207626993828049233611347260614892988317780654308120088868454163778765381988141592742345468767369872704605461561406284668882670476118512515180976972743994924704613919102813439988326436677417947213089885296164585645139779463350005231292575157808823086672392691158137611969996615973653627688308725835604751392303014684270224454300852057635488201597808366425487718565766285492783942046879671034918860366675789876872530363775081058229744659364171611618863513810225475785988264663806649866875745113559413275272726926762764492353309857219477074263124267213600929408577985907272773036570586112265563369053253954454846662387344870499356096541058539853181790759117652145204527417461815582416338458877818150148066115192512940824227218886444344788574200753800275342220724694802179811469150779318208968930772604115938027543266060632417067348757094072023057944383724538045969452648338775275811223628613909899647855448234673416926098773463797601742264941657222945429488967387034521363835455042287137094603626712296353425891715347052637073749371003116451969624495799551532642812457801062125346637971641819296572788719749577739141169543726038631572160511910056530563466587311069897771792846667449524430899395299957056273996764446408070585303315877613272685174328856835917965068414101006762469184156275721151988773045378181157663875220066894215889474918871174496510740865570173154003141324284890510010609189817457187320014330963974295264898141053937933922434015278338819310610187220383900429754910702787750824700569769787633392955830123658400823971282344287852128053974051155660924955018505016694620503814910915207820554555364120151635426225037901397747767402676215388432139338531978234800943227291207697482561186267861918889062465596718602466278219144108975688740814576841420140059474401668782523606243646970859291350076381287650969962759753099491396252462045583536787881514576279992592947173179930336647684367577174865923038705612896706103418939721867808479036119989259063796653882059523446016451732129996841327018748649364056235838561957366559489797109386511462435548997737415945406129902320184811736764782259310510931515680548040711790783026185323685027503591897021950435126264271917146447501027193586472423296380566231352733052800058134562588526801316037408583436186206908943271630365262592871077624570852589095507632265877027586878068277774033651479310812202441262395554763502766918378100339703414863592480956602509300211145405397405761336297810317746530487058157279244150732333374980653463867611673681634601533116842996678798673863827704065146178350106259299494265116413028670104576955655243417051254367080826746576944651090016976589424701703402052528731956745192145702938772456218710471981816663675987899219880906965363887084590707620972721279886612231560373690671303349121726058647814263793861918253458840202507695861600669760304996598047073720775770701037774868574242631410324826883195903548957954530795241597779504312655566601925134506388501983120030443392687704361521026908445068851395607687499293787351153982498780716980037484075703851356441254949496343379485365805943134011857310973480082234197179847818161906442195040708208455912817155134528955073288600095718551200766264465264460789643867950152644737380625381550941549920612092554072250066190178630696471387339251219402316148503672034520598021044198622642068644676574081605183354259931533152103803666431856811193595190635118643205802591508489694188221095322834091971775802226505890313725990273835687263168519455543959397475384618505885961567973972791261393780562351675441639477550107605929694881990144620059731828191784276265024452192897458091820845952164588505742118439083247706832540908566951176595195716611260486277064617395582897218141396505746860970842639227928530070469008915144007385158253790024695825544635140561335502689274790261609006238535172822999009745035785535291518040618659536285682957378461155230116049868989372645274849509888077465132231177786300030443256564011554969430504952137141896122290250392328661546178433411623908923859050847510038854644599304084167393431016336727417575875115086241909675794520125161295638251446996119471519114895219066306128637630025687315958529741332807992687290800793776490860842849380607873615425519169598117238666894089423090658919979371242487775528929862398760002458386056120448242449655803488158410275599852069441132168367325527494317322758667409673784669528598109940207644458201023820908460618601402833127956287752708248624451371603371263726322418118274214491729703646926685831096663571402213493171195436392281910339716371508929731093756411185375299171728219239629713690867299531371330817904627708308589581877169481575387107193971250978466306821925556116290310623941901793633829282723113824845347041942676211695163173597257158501370860002702344174482947150767027103426991929478296668118674007700078108456864093295195973353806041318939196081974485717266402597838600282876192671937058073583238556381281060564716705629567971686727399304590443871482673703598686464248977632294234076984003029589299589712293031825270613958747467358101443000814787614852578967608000438200985765956337488203782445971802790991522959728148895260827391895649827272698835872927063030838190348971190550214328891624877467628773275109969389537978420836880341102693848999352322098417980334866631851827169975456211087550868272779499882408181035700501843357097065373429025873367937385330060672263370893705620178502522630250526811955847802773848693620478011785991853944346161010672884053616690004762527359986712629075450766421947890429647956214443666929251248574129867830655963765401105074910658200075623881585801502709717516588724956830117052407906702332906974466674441448816973832892264106048564279653806426276397208998069814594762158784442632499983741182705473580346471676629555215127745255879533146711058078577016671389122349601913572060088574275015023724728825743558760392786931033782792988224625023925072986679311098983548910327021027439078841633091783752744927909535082568124407416647290915414339318434382658233893773739487121913979808364421038630614523340171792989451865538548358400071449724646659396519082667204682213154456405216702606485562074276236629069766038221897771103896625781081679061496017304966422377309480647405842960982073899430659571160949182566428570610629671517258524111395854023721005263511723793209642966603635574993205127415883742342307031431689067720963404350819145514549045957887772126436421171141224923643089293692689092783552255017215556559424988830981779360435594160920904041292641500915507778602767508223182736558171462825261981825473961431701641050124215376216589238552382608968585194970102825271792380381137203095756102324295209394066162273939445457925106647845236877969163112202269231562203118926598805168174221162455221850742602267908478357989852289262436440199834684484515521001034314051806368525964423743569142059794792481319003194101042616285936799303664779318404487183880028994883024178778834110388874089962203376767221299339417227902180275121770290082333386336178151930503166356026383753753138059090729318989489518638988126237889849644576658954745196548522864067630787251540720122525722713703479162548348669966605464995417928985076217733840939915904548362540223630373588960572329234295397869266083750937258298278231119042846599719273199942703276325591392453729355750517935204922549173329658162451488285478748772295440575040812105748741963063880200811950845825523328254666049200655293897154605281656865140653136575397328142738394486554097607108793407831796510750866692094011651454113529687732473448668945074750057330159025536541060671194443397421111545762238786064749499559696756367213462372033258002087790364756148866045624173382192134734485884157575760094781632771777815930013750268689203237744006752311416807380540248353665095885689895179449920949259402821369208022628726053212117073363145452738702271137135749764271705507347691396703913575343769101559756958638339272638018008739824640448843656604834843588766654700456059670504831749683021740922771487996452689952573955156072637489412535158451870342659410855728962298707847439122323598030187617659867939808253447939918079484514135274986468779005560403802318486425218810896974797848710684034656555599791597600199666547148202223123791915501102905399426263139222499368326941938300710513843289607837637224657270178729413892826843065506630630487671707811340283877384892790194146046990954822030338158779357736851109290512687129977454501553078127682807962015448801929392547259478796045071780259859298812862384517484024155338297577128817835368573186721441091995921413376138171082101737891757089833523547394380629032261830672798025636447455485761317768389432525090963952563065504437775094957514301915718461100795449270216231827936820399870351669833678734646741491141318365431907513890193994104597224715662493049442819357459439029132125869219425600781204837579233972139559988435580978289895994728210088416311322226396009253763451942312744433675272430349724586302386747659723962857399003072710299611364433774630381036438120466861550202020164853293778354009850360638890130811703940529512519920463411397137589527198989403798276085286532476721377808855150286460022927294679606049743669500710755944427725802178436438865042140763645941920565083296917637241011032260445334346066602925664892006302544673983518564918996706919248530447846202938718361657491427387128082160655188785042185948263885920617305857318935564341326286252709545234658264285550101502863954792027794656185583158116842560449417523665431214887326093466201332087096841968439199197677851782262907846620610222121414436253503700556160574143198593124767439724863030208518238686418932837912525226119542619995075132845065241815693662013664592472144548574347683301175386195988373227773855789247396974706926685379168665295252642769968235501710348263555299934590241866610612698642725909605535100791114031470729319229187152667339483197641046315379455710498755222705579120029243037458204168924110598819548907282519319460582634215043034892799613714685339306427318391892922477706389322153818541784760006672130135495176657021206923712752473651628348986534020424744173940950071685844641254581280284782738324561011778206249831344974119153550326262751766393605003836835929785395801882756825599276667230573261358286373590569356891662591890214855616427972255464231494226561252381190248935539078367933603571520176130519828030473285935667462722584187340811113516632454691512851767090596332776880983949262633803062143400306069940180797499807415633215279395394870273250335474528183488390926558979214956948329407636345876504892452804362209015371561563139085839766773406530157543109392720933888256991942144228206295458560013136434609808003518003082776608947038910813813748377908838322841582947717766584769865527142864279103967036241996748774739252129837799002394066360950076720391694630532603736100381189334717622058537909941655246656987057275220438131090311271060181325698603280723060473838121407802173193344607136351760565780033058239515206617265528910132876477965366970052540438994231649098081622829592645751293480457250737431479456349165511423477857574125341690331352506114612872915220326167666333083314481556841935857364238755339150415570847346928477878784229567315425007857091222306340120009591929671560524020634573751450230955695959373616036096278996960348706261944243447086211179160569214318707962519016659748734005164562315931288828769901657060618696961480083608566207378448915644427015386377976245846223346973671156005577329455696582539003324492382069405235995018447331870605850804300577030760568341462738029967671060105152818837437855293865346321708913199283695898175121120893527201338562813476389880930940076095662924061441760400732973625429510386661329611553666752925686405263724991945101999332984835439918267819721976084503973050549828283883953894177714148677835821763309824433528909834952969362746769862614731402489425226329628690524395718908771450070852708739765184800573148569667531500431762717797742852571821938568498677367312020060157100749594919711049196928831679443896777616411033820707712501208642242153626037349721128446413547121072278493173570140089799977152519256194573658416812285468944721025096498773006215220787183656950342463521296170942831256579507501348470262685047541452305279455076334469780592724616150037161217999996230002509298147445858431392031547004119684031420325070026310917070457663619407671505501416776292847457164019574869399220527675721270921410647209686310689118520615192585209857706198677403026346053855263216434631266951416838274513595422408011436875635929478919954971955121309077581159045046755213748409648532625753912855787681233021527567724029874919666023002928482398691804969183167223292861316396382256048313013114479594450585705337932714504264771178145422453821522090099442906773347352684982593702183427859067993181377961418637343632992991605628263919643649980103112831717672954150470129654470559774179518832495033103022140246364658404147369670437601704205778241268510167895419838619330356479607413328417155803528456178495501504984954240611109049949617905371016062260045452533549059274336344314730257730782159241034064805372587252004074812088871985575913300415447096287966162982339731890869746750905061036048603910069821578157584374247761576593886261611865930672606726468497338249147635975424929546860387536550773339939827173191987821289642896591196289789734345263314913455236005372759745597170707877668601486938145589761240298778578050900094857329376412215583209879979223610159424809402562621155145483357137536482135950001692059776585082885528656242366041198636313707144805778265823833735919472741318301992460642859250043197659410652085243976395031222995609314515491910352316450158319925052169824664189683951351719986556328861187126108852672317693928337714850035869500360963427492911948837099652734006459870000580632553420056671040089207725062495814794450745473545888911509564870400123641900460240298438456083504043861158521236142953606277518901308612257552969826270639317867972441559721341786454232268099058950106453371966351407661925074645743347257647616162576876472229520717043028343974339454163871161075903192613701372126443728681972568028658641228252434815050555320258583252224111445166913746887622445654975635608568887608831839540124764241087997012440756927585898576351894950447033930972392151463932221269979226105259191691788965571465171715854294391569886100094138340887871487392640732242010911525848589801230841334963537701679322768414743526830758900157933977117382607133998239555849260611914917313327520152861233009782359997794229161035365940917766668307088671681219650679766281693667575347700987377127347135070777095302626780054157393498460600155271031518449416957409771163398588585590688944027330790188062158868006419049550472794798529497855873581169404191898379260477717661106054290701882758909346070386478828687974944263731359432974879513698592812010797135756475708365822915791232455839676539796818499491013027416322088911626345139407616411809873393010949278884634937137387981286005862081365340560064981972455048266365780351633275396697300460235134755773640340578498086972290132453830491052753648860277913102865848529968655334957257191133763781642830792651863223988406824099282626658691451784927230366390607255316235522067915066472827942397991780740633905808619128823334417496071600640836438647972030545887010448771303324970688776999902312057431345389319643268763302609699388138159944039079402646594160397447148446260769155181497499489544936589693270577598808561056136377726780332928900685283590239771960622085894761310287069400069269961327375780664391204792220830011215319870824491249411466221526497516881777756069718282461294782646969466094958749183611862099800185780802103025623833534448812171153627624859819560074911570308095292096568474835192015521089055613882157856872632497677965478039600933256453189750916449177853344354286891492010188857125546193376813858542896707741676872940178615708777220921006101480717960376025223027006860427112274563876613371678097544815868954893034393812123070939552158932220587924920522567385660446887940262576327334913299541944526349273133563329039491225625501733069816896480315921279279746986652650628484565897394045621282322781271104108584512389653248098660113092317068205999211499743818814842220924958634980625198679675929115127660211028360742763202744650773829084672938407256321467154666770925095449715030876976220508451162424955513858694589407323731183442034922906854525499515228897458672585586467697617609309716101058983810140971501135239105777813377254069221508846296878507430750906450281482947076176151133188616022548446587878077265220746948098388758606824463702955147263222963053295102129844108331757762663557710518821059336669099439708697700755039438939062391118551205422145948135752768335198606629879337529219609712194965119790222495031405734775660116484155134828202573250985505718017948277551965860902930645878133077523223565091581814570105160530889188696121659636463925646196324865599097547163427186801638104754930295400111727358612821827346139060702959893457848587126121042348306809312714682938979526294145911447721357917831751074829654858040062016573107034002352700648147038749852900086769959849821882134443240575251602554209740207950116275655853682608120835244797224919607348789220432892966285533768714790840325920832969272993132081615515967542521536130916015560259599790338845136462274861629784753450206436922576384315448395104585625826740199028400457745643523711431909091605744683576322016116497850475001931844247646316021932960248151439567996718997488748109869411452105902291458189652856792278733781306102568280293596937965965543330305982680486440827661970988944957571018737976591569414923762883480902806872925678830536517469190369961764833012164179291002184909996237768850455542885117321983106583456757382627896802097668792936166537933487612039382183558813922534898661057755805875293989228218212070797890842512503601487027227273288260963945198239057776406789359340858777611991707673971567676266297021765074080089826542747560583545436939744643875637548945976586027832218283951278968716600718703098944125580386327597858569018818861790459552240422582149301360647752627785093974829594078121514340410192817088428156718610700727581251075494204227692012419561870789072947882191493767849025368425192501084032978664113078314776556378364056695196472750399693258536604317201538498049651463327877107969567796226918068767140200744279862300079599737827951997621899009412920386188025549587541161363179416204436871038113420949748839933978554405035487759621285144184461927295576010070024857590511741629749336392237040729976624788058285673362292071089764601418263250397418941020641452466590444721188372592336016398340169030129567573845875287686615913586565992922698553663621496238645442686034186530836556354768622134709166087834667424625805072228899929113085538259388633108674826859527393119110396011804128861259303071182937094068890430127406647182418856099091184779839971609881452440892701423099668038483299439299526865117982707107653476135679410034527879707161582085495156390399050837670633449869449965176500124047069125386392559499521603410443145381797550354961035950941807800963175672945213223231883362318563543481892000529611472701169268024463091400559183736665896848418079226729354101838836251861728622626157366083059740870392214468814207596488416989706884202916719777394576322332411012447962420032677684249233450671525960174150382678370511356331558142252895154988932121761760436141909502215028794214966114484503952261228331401841924318390555349268295976991427109080171314920869647885034521857749432147828267613733357808052952958578352685299695567561637689345323892474869499534153721352514441530781032643591274712251385468174577885485450621609082990688195328181492796229826413902454541955697038369215348431539921051694684762150703418555459902734791028938391128902215161578197754557319707351549895923191251182397544518884255030294689868234079077005075977105472192655764484079862109427836751866332943047492851361200791790795603331028122274878960840243743836984739294857557749948264218941079071331382987814869402375211920520469341870260684502916742741413280583300566517534165666005150752674437942414925252335903073887811782936015057534160087444764137553315633925720118405379277696259451775978567854790323312855371797036362209548781153056110792363093561584017340040229067845051219296549522718836097608951744241455492692396676049061607631530990154443486567018291060343962991764867475443812788967325090771246630719315352743572984760418818738103428317281091934314894523919691960887023401188879854120105783740209533540573962558611253374466903591066601930666811715929991104428834260436783189153344047163876108480090961242122855932429058930349412226195686138341217812112383732330034587116257087564468584110808743462370252824093501456707921392295775904075996342586208579597390736395658663049924006045509979078582612998818110947259108302401740971383125809096184979972031478572437716699728216910702955050335545456235773025052813202274147322687086613869231087280454265561115732266639613838240566952536670937617355291068838756198780845189248422270971292976190834096111476861656196480428372389199516862121028599942145562323939447009015559354128628612279609893802772548235596840834442545711942584282380105596451170668986624794114426630063266988746002332605156463585213195989754011346611841967399590839404307532095800165103000323027215757608672915715733138620454185318120400566326455736279322731107339142397421585951729427067792692910063821558144532681661908267755896162855555512830013643202111627788978689294292550575745242583145531626167355239431045313637294959097218125383603676668036690605167483260791039831984251913958368631326613276308078925509822453747217725814347050631596739097319687940215967984945540361058105069805479368143427545064919538154199449407934849907180496555848768641057406078062543338502354768066451001645798855724707079673115154868077892260060937991124087869942810911606130296705678397322487190016995232371428998470782298682783825276181413168012373815891078690896316063974200032306910191667196485904128582267075693427483929088766929747389400405778510438435516705749702262143204306969058167183699807601649812049816623840816544173948808909215653874252290797934687466525046849372497290651554773078208646837166680037922931921507515479136436754567866235257005957627341580995461462894139873592986708590733135537159262204276261341382195655097115932681791006476205063293157760187728557857542150000404681033779123101310774566052463457574154478717201491689410134841265394111201493763681587390075149423354110522007912217028203043198285365767127596944737084248841721753145633340542180826455607975467278929920699761685539247788781730140348522599716539128765602696468629404924376920169265550041986276714526588353003530252112614318906136366188798782532389155299993750050598825886259107357461559477389705535139614473692366793477893506553494664566370165131180271949595291801446618820607749247281911686742918969966131373126058465611332621448258701843131928548558459237791539674095445272124027570248166367162249002472118239609337872344377388805725609282808624097587583844442094378488315972554707795404944427835291220220814142167379322019776357154196702795601071047672555995315381508294294336340375182054528457092563110109844069487712678697591809550344633054338977867510205031727053795255631251575653312947600804050614002444769481179686916653781522404766761057399009429837779949845489620482797917378406933801939504160321678137653158959526596027511035250384911967489693527238925314983465254637162201295477147547504802894782360958684798444067589753085848492686048475438012845109556957284348886689518193394457734483933612300968555078610144850479507130487267268806123476528363379541830676278247109742463024210781916401128361479677606892906101818176777686388672040125939139688172476430104241011366864868721934694843875829927435648775876454593246511292746080331421775778216773514630819694629461548796778858011200985507515683246312428790713780455032708313692503841372232308500569917277599495115969396593518202736732132446392717096210669302874352271490787009557569387420076882361473502652486863946710783196132962718821818451063550958484228282981940911262124274596346074885582335177379776847826305501178316893735645666653050492014123660484985054416910726629343232864148646698067360752618862220653798632198523990219915877791547577905290440877074515285307240215773598597227671271941596793757466221633884401971245472760226946231420410333663480223160734820572652003477076858771234372062157019014735507920022759183297274789395012726609039476223957612107055908922127938143386583226047296373310494393427414281473066792347440626784526304096667719663983390877923702522215365198954867743546882974238053457028484656678948658486953812778437230762583061946387416236450761809822427861876513608863221025891248767829059158274918063344093079503610586709062327456724669154947461008083574820477722900319029202959948293382908436243250529532355044052857657500548147023612414448585271853382759408565045982967835680306056379077703111357256622882933958757829560531851063055848597507757374117559017626806878562539051198329296801903033539131762978634320349992161728893198835057603075717745655900076381940349893368932789497105727821313718160717557829801456892111692233095418682236300001059102567436927511599375688571086760483346877046492474140909132562293046327638351887438739599825941205684124696275217076724625118557893487825605990293342317973558677325084827308484276462725012684275664818211144970753036292360075096693697049980087636292666433574423439242588177864541348874200639317720617862303960883614447411812283518247809682647437851826648286744537071707917481037828080293255245588844123857605944999629048104089121325252685547846939150958387720895416732566634256246912850952679193596800036598059853755385144046884869951336626844648961880468976953746955055725290181319007109175402147815395836901777451683985341403750384171100653813668207480271286735396071099791003288209689597359181155457286286108694707676959166062438422070325266413484421975124647360669812154668879464001730160255351387674088890090747500361639751886896968076333961289493453567034841138231268524014640636297050457480033554425360720033779601177499925272170013080094491453234742303180347352252318273554101165698295623034897769694278717106749093416097017442151495166355625547498386950549665760787130143751188262933374921366075337368445949966660587404927514314150182445978686581671256981200496704779539933325026897903581990948347037730585456154139141806125181503101693720445929875701837017645899172550898167301923711470635969832029756483190772978765422483476998533695605237413568227346445103662518103101820256867352838929572761377467106745919942322531662681222849952580850067576102371028625581270999290786619301803075802304567337138888712483189575650282597581629907622492523762468921215648180203578709178817277168052034816928092073822789453811966690192540449634724207704694155343658734437940085541793399033390098066265838681681943217821383956858433370442542003609970639035501367816265539923152900807755662857250145308896797679348055205909090128020753823277649950280737105613268065957480562387081649851078491979973266357696087741467799465432207627388457046295161509728741699037641687525412364993281831535922041350678318450279383878898769754672882910452635688953617376582091176414234801756686467437869941720349954674351755571588526343364284413775557091934053843245895375558957798230171747988607658176865555717230955858813897809740201707313601724859996917722882729551345552054199993362565646091823214385497269637233315904120973700961984237537590843902390571743440785310110438448090451325602926142252656897328364523622212191980580755653595908399284901679531933090901839324499486252996019919630438482429627824214559548004042284818535056421777587858576860318192583697332911430080388408164428216799630263391338428202591264137917873859112745447494305119576967990819645230271579157562301326633476350732842936550812167325822380659130333892648922096295820208955353862569826770097709441380545506275049507906283938505524090918075104196658328748035073517661309700746372737951896752019849640932209967668601640543107876939526704882884999990385261453578102337469319582053281390870714539788565317319409354373578638330142271946315757448309382436018717139802041267344257723585726480881592203292819273671908611753964796599368428268849049370126792963523572680711667013167688971674571038594878375233081249023835475358406649573130674772825888268248875896683516509869932486207850797504390473572345435351390923423899863700292614951240913714148756769741999614575221767524369711973057581973227516019689039125118435632893197845566936902094285060221615988433458217363539926681413956047720702806597096974385641223584058949570141605549178080690406649197212572161365536879595196597470164256778329412741072851463986084576080588084212771156853503560821935954474892768301137752116777453575362014282918532919493860227902124714289724812483165712974553154986659303074199055586391031412137821907322359396916112124632218271365973535181387057189754213751571472782913149260310493408864597700306437370561617714290844975451061358188066590909365071375004590348137498792271820957734001215172554192212963942593436112856273518204106215470346819497310155784565694269591065613909810975216189609935613525465186897988046316945115294823497908365492174532096938946198584783909453336386115268680050774035062176365257134179873367211839515381065621427361262316991826281365955580721424330205004794990301384313313543611349407564652212999340525231964682314901146520020160170703210780797125003256377596869839934701796830931595980643232173434019557734261705659353160497222907763544557184036225650555576277216258042784760905435784482505603210271234716634197824139444372871401173053586358558851587171934249290778524553677927049316930151874579756406376309619948637872459407021064867230623439591030556050685602504363865041641419276195770295561280970434840950870893025279379737819958948553098125575990786199943413524595267113889918274789836268138329275000895974629833259057570031200633639218902028629029382608132444089527778145450437945209738276518218734518715939574013042494734248731267441319073157122888174192918358197174772617903758167602108703824036368455078202115849755129078352707032499663963290608814244825190927679448825219395957050335711407372318588709780094154574438973546297828091430757025981191998268137948580805380678289818158996331811595256991118576423365595507928242823790944662401830115789111068176287187477088710010463249747075068090405487320747780617417186967667973824076298112661981210597605528935744417586069166365314773034326949905517750488476307089043598421697009159865698223971718545775646235359837238250426223279261490220389083982774959199499491218746701777736154612915186433992170882964895590498700152679807432370339721467047886238882297083700683273233895934558724388958339768547121589171751632440086113446423636218148597708405685320988683484015283277154071809643380948233414029152869086428906750886919608521535922215797099077340906377949279186830261321693980172732764960682861838051136401702628657765178966815310264426993212548200134594060663579795541524956544293097036469789561383039478453166610991258292115556081430502186610499900723594323160269088433825600369350071959366205087258343715117623947611528938744947472520137430604983267027391974439674044799091499038504582043993209101347553283571991445305992892073957602565440904151581672092578224649178196408493750830637596758311507996592609741783390930202302529413714736073110900050876482207901414930137927174875859492558519163162082120479078981584486091504088879418141463955832267206107451860967307824435646593220063190112479855032589513416166734566681956255951556911871639806484737973518848486828915397418120270686420331981821755935143556709247183532723982829653823691019488189363093412702229845767069532515018249108605567356477578239919569516315645136198051940051615564665963148937596573771491922035418197303338277890622715724864498448071672334630980880416036981318529710235879511611613774279769065560882181766523881026651680993567814019429478363365658477192744511003597459442175938471018124557151233388414657812900751580964765057459821201571200958866616488425844135567334969307692423251133418710773408892497908865523368778871561086923009351769979758806436078474167757630020584173108747759889676086816538096261471179236144739852062049985265961585056999661924858105276284375242175227204161530074857565721130053298113947804514760390432424772418497013191938931247608377806182779304552644993927074030600044335492212132369595526711825610856600494395999321063183015497853571669220965877714836066320181399062036578300797248120730442979985867942775205508756997823093448841990993110085218037233771890438540680901915160562994330217575574168662983844483453153357301292603194986799883767034208038689408559182195548362726666380187020950472625511995584457160079636500739659614169109993623770609932239939222969493455870648514419956905173670967774757625962497503911774128134826644258843796042538193597041452952505020213052768320568781296064981132960799944022573309179114687043325540074340225372362102765435291909749522727238774575599739580439905597253309249573472742173489688336302243011868167829324876310593509959042917537330349826655594191634244366225411823518416735406418539616581215087988458372605563739472901421160262592623477257323201782481174259225146169854432032230579821334112540858442500250822001584053485400230048529075759245656552594103517205478058677580325712660050680675729180950407907486514357113584445160556031815778877897098227582926593352127686891987676676262832523163561302313562159960494540687910043485433351748759672509823078258380229855372181913766513990792766098365124814547842897837817550223085261838460233672610424908680463656973536766763266895564155861382177133470973856167584523072753762509251433304489738790165596736642639479489685308799671526773137687695319286575972709277873584717004072380650573885065255679282446223240466285748264026379459621250880361463726246807579809440094603555003520029785075062215407429533556779610011080607512323456632755474471771068849063012290387468422289224034914206237093137799976415266590671752511321326436478444485344848416037505553471221610017368985842758555395458190860691363253015736484626405403155949744375164026171423579707892398377070959998154487376808711126581092421530351412037697145464187535975043708172394306268692761743522636731909466458749388462037942923569037445013549065414089754624550175501019749680984298261470316405735025124775498424251363827778501249821295934733183828242860568135210750760036282117517831451451363917741004282745070733099056689006603996787690843599513279800225108768921630527767102305852946298313670532833175088536512153163484726176456556204114408454578323713344895975827380492700953485719796093236690314335330414199306344788249214721891475181490789002404710158177719169490067341273520812623589913052404825978880400001943547037343304797035515950093454354924465001173906812879090917177616889184093465881527654215987274630784489142072842621150572521612196315498383673039044718807408987359825974240648047297989058563945446683468431222420934269900884966794668897490647173415304413584385948039219297432106035396043923331968727414425412718765864381219424146766834139214667498382849024661938323797319176209304257001289583997060202289895099808495304186713232426103845983926564281643397951784882555633497180575409919721345242264218287916230775380364637211909260604548729685894568261605346923988916726238627709897625723592070906410741890450427317208736022889083463419131751601476950670461305316779446619292289504117031002610002809926246415470308522841334622358089290130230513546714140373607774255132257581931459441573920687829775825552396050108867222914488113553004714821851559226125305725829551793181394344109574708529998137303828843483579279217141730430920478784741290158731654987741708682555629858680039193995594765652326779947139360599795310286336004653734511295685194847744746561631807955651474990977122126935776158559397424487442632697421739882310771061962759362278429788702142890571106136674964855679125112672834802633427092555274123698633894168035902732005476951766578543662507469553353589518680929601740632367558961337107239132843792705555079052002449641495809206302496787747439799298546339139597865256351129217968228003167766040486429848941696613374286897119615631220207025038900824982773781406188196148997054660126550679329376128211012436314885966315308146934797373656746468920680851944337471668957958286417318838991979311586628665918839514942031668540934404561405076879012547428915396757208672972791098002017293086581151192820792314609925819105910187823452195199873152897685401621942647419742143347681027520954208372601245148335147818807389270697931535749513918905217455765732304583687850942005793021668437488575746479835755537197094100664356816137499077674720863499544757834862497436323675220509672407804868146676528039190164767214616095960270608021879763868732701427990354936415175931803068316175362304787238869167056955925507062235759898907511231387165248838112691421770886648006425043059628595957071868161134024169395551457432508503431598824556869356213115131874544766727304030169810878449563107630001912742223229244901862646870175935013550264454853727420240884078421122617884442481199718743419233228995226906586812098260815620462005934249877170522716584059116702332722673819585755843685372696322084715966907716319768020405831468144741349559375286223514839911585845215141606936682245696765181096156994554785189649047744995990378476208645191744969878361751445968110465581513728827967579313903359762594100292466245853170075061560854039624885462476074019525451715820745624836824435208799886098131589118828833228686936891947198395392457606827810828776086964353308364579110592187165311552965851382680990391858927705898500127176999507246603597375496767968837524100432023678673376626275122222147170879108687038873006152783780896898987081273960671302810195707869656458624495343185684544084108120599240239311102190400327894298721355196376203222605521394800545940953138701978752046734740807644860414940695565573712169511537156216781808495199498416201371905904980961783856808663162512319777569985810991571011075789493492478858943676660942183503140536481461667627810407469339540486398541942633409658204278360729764369549315211070461899501643160309567634500934580476115070957548207904512556561998383859252049787859548534161991721192068850848633080664134235038511459663502782228298809461594085240497034584105318404900922766173908370225978085160202581234175903761517042477054121559966605016191744629274191321007976950038730713999648587810072462294506659943140539243016131385084131456652910503379711077869961406321990551487098888313687826587748106486265463957111573232298102938460949147517308848024181572618001752361121157553408845416663501232273044866227721253957716788717206422964634266354188001201106215446343239483100261731305661615119677141773522582294045327957538883246544550715688936118263933249031307726768457900339681038355819046773347333743890876030133343914543865794734162503713988281825938796582789030875764072050709033222687730567060280970296104028172902933190968592031005191636201850800854634777851472147713815316466012447164992208886946600455172755550252593171052615799240202738621424679834476243457262625567234688641056462225630756797223738878863074847396199551124455268408078028398869229073266327633860517543059020013924111702481042111954135315370256006968367234021638295374207491385771146227277015423905258283128426016600197427609627761332190174404133235096933172316437892242063108322849433053640343551335924565115276794878461708885483562593655811428312284860480806454111115981902581919657393220848240632417711144206624365964708763012371452659400885078723774310287352767559486583262321732080059165695489359236288008887265841956219600498293097796474295996015675761275242722609544795422473412900765524646286717784444079517205870096401341769446905454667228029617935545180070253809762224656947174243004844608820640968030631057859835533925423830435451215688237806617819108302896415844254832783454058505502624749920483155625068978208151039155108251232427551386378097861186018822209908708988922514669278209387217512469128873951339843429832981668087727287319574874945728601051491992717939637068489476775251171424977643821615919119634640582217496567323267705497765061683877786325473797180961591647031965514313895301155179071995465682663680620863339355992000200678176177987464812738913507419873406853850203898218311882913393826914628384610599207804514476568791571566736366111709028585293959574060422827633797569709455910008643299503573852351399512515789908788509276617689204803989089301243182177676319614295756834126386181649539093783520864085984700760948951071090937163461484338785783639078368315254316889865151796021658155074754706454457589799660633702315707838344384469900568132256555807492252643778078140542210689732371156862801878354099370403108825000590636048585652513627069153548772421310255758133111304919845154038312989808800696994060863068669504120212671387498518389894230944560115744679991838545750523318978709628159269089425568564070935968382008337470011520386524849934480160498676705075551967000715505024175161029753052580367101339159352545530554127047685932319333860751148713754979169746040028736354261762519888982990399441553495414167283398954191006000619348551404843819602272686996988274038974152588173973651137378090333379842880927643056835199814777145335085800820024751926556214570530142693263410625328851013602421581292057420432772240447355873782108895015615446133709802549478356753382777630829327324026310141922873018485435392407288924627921300593479329372136608855906223977877512937211743208505154041262333903958269306924421980018418375880855108853213031471721541903971868503087162126568873490029075891880907405205241975949620617627339059461508867698921509191850772916762652280042275741604240980792890641922388183383859553900477195741205825495723440604304498833607914346171328652393073576352194590850708847935569765254883074759995446797706986474994403096755088468838859400443643302284939001205183780404009368217338977472993981573384823033750162786629622653866942387867091132584664651247310151303477772336431518819650210015468161653858774795411483561265657242303616714421459871531330103158836987490367825216223366396391486928776282836702844400650740833083654796909002701673091720611054616163683293483058524101705270984649356547820392917834331701089354160299335152274290181517293374688901218506146357629760767928551218552018192247571719146982354507432224725741056211929385937311427956141579483010934324992673629176603456425576354198695570101427582557345564489190399576726217002293250512790230061183117862022135050278890989267257375679495283589630795965761026511865149597858121450031327521169245061225433207549426244172628248377334978275478768420697681379834385888001561063391583041834829178289051257346733812865112688808121474398180854934880650493432670372102249123487733598495094013434116716220802179061980362482399429457035315428869075295588786061720493065855389883353139012044070928142404185924365027619271126644827808918618728443515361961392405402697541072465200933794736133885736629207041237701124854531841066111469513999384504273393478606523036631507347614073434528160200848432928894938587403626386651183325652386323169722587442473667818642987233729867467289685319158808769206129994426441386268854300269475663542251857864678919055676301988169623319338504463309694034483108565053573128667340216813737956085252013547612088759429521596078452284993223839534093095727868078438252839958119792044204543937364101351541394348132412370303091412620141208538505054954318974906934925833201025281600484740913520272215770431017943090166527207032907759577743892450321909961246444321682942402184998047536544512972071175450584093904388471444732283544622677416488969992223119519801376161044116918230157466837843816280930660863914090770672358021105132692424925632427288351691071598606937558554410486847745527338910245243574554416366751904689614027781919389313073045429815328527335319127883154446725605528097421552546456996116148209574280538589156885648027971284980758732895922715070302360469619801949146193756816280726735197602412735977952607826707498614190398627584409554672719354464146245143080342416382372259840649458533661094200121106519801904269082926467314846324101873144592677839176063780602738941804020963346595260501157661795111291907520512964746724600097435204300358849031973801690875261040171421637157096178701780823622750199983454301710226731249591968096364800039325694190191001941342780162089511637203793127867878338687061556771337013857271370239054765194896094061479127119314237790586069212357686648379633909888703095968257210482159408070594888357557589141444697477464809535268461488486171017708705214235656557365817337195987120057483632526166663125683915340104758925998998910669662794157156189867787906059996305222769330077363291997318344993446801636155089751712341278539511892847078172305667334714836197811373402320021407385009369302585507764006425272437607116140325223285264469070370736641043271568982684409830412140494376209329969241395973325598404181067420661261957745344366598655124779831794334660040695720843038350847131321689019176996124133160726105351817406762087580236234051140441071824929198882085489367356848840541311785993577761994715177786197709918506166094259054823735491900470664238948326903983716962118420429875404321673369706810079857379951748085881275561311022575735361290371273027498743610809931211516238958492249766059838768243211395463341421661509712703777851881676012078229392870732953439525641346093048531500560642919702467520227429779683573937966848408935280033022022211962594400543100206140742518961075948678308828439290135119378386408159254901922479850218502579132901150358293639795671083956005368442168743175133864812136958991777772538250717807996919141671475889787979227084476422915621293119967210386044739680167624327720756312169977756212540583722398922245296142434701334181339390299382555993778198713904499450497947221334651698271269322490326531137074414633939877261515182224848807779685593308797112352294220613452138385252953991515834160171416958611864947469265715194792491385441361572633718710716977830958128537357466365466398156821932506426137838171798206265386188005816467258547489058730743358388711079252971888358222663439122855221351012942322514094466880146558266670072378628246665803291088360715936845973955302700204270344796191375620032378009943705643274852027154668484604511294338284783908099360128690211654427104496779894283624420716979226874195657435630098615745945262629035865195005582693280086319850074668072885120303025937493390579951036596859026839440666304793419486769925867605503946417675293995312133050262796797049427001304597240648350427395032972271196487636590302692874813931781513535962647053895156773770849710204202585457044516370187978665795696128067136649596671909860455465004083100982409182058838389061184514493986851564587524443715173975608785326231733730780410557006607840146851611453037565821104929549129245550823237932135960523501461860064078899907160291992642944267675001094859917317839384379052249735583450695675218396067821757267642339186026951299722083098121717772828971749041316162650211802595358955958788365666051837613687807845800715881281526263180765643832868392637279394153460078260029185629508664582566763308765222974795073537711329832068582247445204940913264398743321196673910178670812502256724883531771302510393484556646979158651935823802026944055241400504649131317639158340975014888128933581084036590446655414000877849183745660434793475640817419605350281463235122774731114537849567223975428971089648195752835433547437690589428109844690229384731854565566893075472439000157687201318929971637749612563545062895848509374815194939307433106268183774942730034709889028674713769289967419589442429667449751354496031660361103288667540522277699304350463939879381430381144747545611221427883619547726401363377903917385886118363995949035643782456973320682498731987698550547608624794853255075791156100109752066121363633074908691877380762624587544581127097267002537152211413880118980291202843139850611616757857878041492923420733037630145207721201997685019995998763023777640679116866729378853153896902447164485798277268990946438840095547857372026907951810236160725104173336534908939415017021167754462641478784173142839727658147068215431308372245023342828177737202939450924930316790220358544729601457840749852137931924486702146219647386926851519333155261684848152188584957472376951250127592522815087916526446794736822844888166742573244254395366931485122723181335478628897628653370248370038661672799485863828291730086364269007224225037855049120047000110482066837516447163497825149782014384764061782263424382401476604046992383725985876569559812293222432745009490222300755446582166420481907490498357920730640349824400557135171139045559964577171382828943513282744268897228908876800238557920378458639208223126778805067947237781534703645154087040632771052699496345314578119061394180983019675321519120426256396273237567216641578607735480317926215050436357155879100569806365379271147293417064256510376169633387203767045002000839126057942489324526729779829777462893886346764184004005173974317647263158561724349618826129227183862200195060247934737956475777642563074148290827720767883114588113044849568277639114437565048379672337141793337799462497405776645203621727905842988334486142345959533779706523054807713890573396666818419622391266567607700354886992361302628499604044268710026688327912435248394788639105258763662929004079558706960062747731569805539046900901041985414649062879487595349006060798592538425787014228711119946327331466481783998286883138677812413619788746807071009676667258948497830328663116037187604999213866536052596074059599988517300783808197533762608522651333342219254318562952731014431400056578044369611487846580553197253621344712483278414919703088123343094645335300934408333267114238118625004161047728168097756737171221360401996585613941067698314909877341201159316392537231948748779996096853007856631996253675241544277771307902616130500907340445176642089783460994439504572774636233957831349291808903392880025882257484942844107542800946861042834391756070932811178143731147035911677715068176639032750234931035684634848085813663763389904110755701752747414314497505870563472689824965838385585818862816242783203757778742988780532126413763723757291729749348896477908027005895550938081400856496445000509326794914053803084865249372424481184922703518223930156955602962376708074147822561082493518855671765559399242470664928503287916696098613261217973685776272433405780449907008565464448208318722739119307323873554986191274739550301101216352100480382146479329885251007722301969204835518883743282454578622075280520012566955751370833000811978122126523853454989281497792892259889628154263921191855368514775908353002933048617609043787108850581521147469864612446607758892680699940946639285852123540552740528200115369512574764536731200582895292185879412295169863380013525556301234366517490810256998429012364461473429336993660017682953050459142964072494627060306239898159615566136054613783649280040596147491663433406134211269237827085159422882072427845934911347293983730133666028587355608839949817712864178150394261964062731716762702122305599636994682316747247697618925563397281190923928947641764311226014174379067273879559898628811576759952009451200846434629778160786133168329658286381127337069465304448190006205812718638846210429547911491103035666195008438319633054398570949768097237809485765152635224749801682659109670066992802360688317738219897174007982466833163474406137434237273430427296868436094218948455508381471199857053289552920253464605322137453249292075549770465743298969936730666849840654760719518337606343464419676212917869085963515356448814954783496640947085654294812987501391183981273616873519710927423766666826098206198217405204198974627982219682253067239121442613362487498133494243496638689111900466228807860110774607247168846487366570200224938588373598824623844294900276324207535771943232210700673787029343148084025279931851296551004805784002582143853891537139053036175336604648522820359692535937189518102289103245575660841372357609773256437728177931421785491319954972994612535150787403550514570807711610485211878465168872444420634077264839709065375743307976236645655599261000002901910430098587401964450365029573173275269965846972358580901405298356009980213685176702860249564698197738938016547542292532779421117221839513700846310641389731167087616745218905766562337377771801132157386221746680490122958758479417805462162159680578045820653100112261973013750062423308244026784992213491910738580871133724063843011772498264538150700913097509172848527728722983530960016970581480139895215430803150585938682837897798533264175883275565173157734956324333570318216042431484796566264185361971137959900929632524028232869882015607339508776171491967453297840253767250202134826233724096158660178748517704555291276320904770715697104818832993254170884931655632654707739252495171108941174755953103842443502297976326555973376022443001550419034543878506239553585506309736455058082700755367350127023133840663657133008825287462902504089767048747367020387306233542551166073114471652211047319748847934564004734041806684866675070761892175553182889316521980704652982215530723000624402164176984670765902045874714351546080325463529318284858790282767394934998311337712138150682245694232827362581312291503691239516718716446692676062119155572279089673148044156723715888200583623325572419126477031891128383389212566127347319694622378466944867273315970699611720954367072571097323951044286142313464862394101225943648101899669704269996049317427081301309972112436607463226638492457440479706645790772492800060559502950634620295540068106063277384777613784888497124270656321781425848063812744440882611985347090236099948360217055715559159711530248994171232163274344999934851976742841341920451750027589053336526442950416952784224861973919234335373542272269943015188914601464801454750749670425114728717286310641265758796197549679116756641827676933300982308836131278635355882336926177112493060928394566405973786958718848951803629289057421711410879512814550646454688782513992102678900618981241241158315635357186333731965691992565356774136356310117738053787494736345909724722779396643533728741572307848102954940292516076782362875419766852487968149185065336304778884289526561027685823980741983275010910162047740357556579403523226335436884530290621143349177504726223838210925914644779341879177565361329482747192819942690311129587310069737787483721892133557193704969130354851841104000275119265656794530497607364417522015037669066456153701166723763618729239596163233400686772237231325640300284907557056380023221478659728989608675023316019490132428444146290993006887339406494914014482258840609874168932231389137548077838630313011920022107920221806458423023042653442398281435065958111315253952018088807978404388019490499281378532441262668437816086802675269389312223990826914435379425581526879295881190774109606094904991989389782230421956194736014855422473249174681294362850903946964192649177891308732830711284204126873809744816798722979115739460367985987831841801076892336924054440654005231276331924078183802676907537349781806898873826879603862072629907357369988523210701681765598563960608033733895921013033944979440297297960627532650591734306063852535193113622885352831541889717259877890589335878348148870590677816770860426698373370284257435648378748685784051470790526456301957211042695649281659214505255715822176162065988874365740888353075485512527951713509582080999524207991404170902901465931585448549941674525844342405798292905349291782137832845557380156766325237384425644997375833556558756802519850544462873264532538385546066977118261267502353974853648082927817160766231568539991865146670138744910242199866100566324685620478207749198873709727889713059656836317657633695522798757397704722897145998198724018278614827121747342196654140719058354464275192960372880077236518023706029836774515812505090457788044832231207238942623043876971551665578463787801749204834437052979328689727774555024985461174032497480366917676804674935697543754169342010044906291357273723687936005570614922598056299087525244383221886975001808387030831952262986918069384530007187724110617906936558175607446609273688807205519813470054034679768673578331294091429351910207253220172310805669741702500621198457364841736823705860847008091842093808946817158190820812998481658812380391198864204545614344838637423903239920428451225493883941084867356376848379491298390115987241353211139600214683403022725667028414900994729797069039750404589958655060575897751597622050327139317906256310583298357648579413822557089946108811513639866877243413697953806098508842201656566187095526840264347709967567049126656273609025787250036060309130871285655768693345921994461919646283432417425369299408333500115589102384378147947635703003895876278407995072405314874169696091535111373119702907214955882583804636269445108949371442216777930068466402617894354075135014179132713236519620053843210318684939542360701024728148047869418481044053983540157860164376491231471693108239329270668225961338526196974723517395891062728567615016480020823097476289717879670715118896983384613047960514874374630166351828007306452683401807802476373967966649067855979297851835301921611903454446104962690033229301210739726420583945066204015575475312058206743036369742224609824617130344151750552299079976488434906084570948811840662396916262075220746371929372035803397131609429396696103696268642849028787987850515786286960176492024253028797086659992192371858398001058555340183867502869369148448421897282721979456622935449990706378124019846999134188464550543988840200118525421882228421023921152749337508396678174443796434598407642239723071061806750816538403960851678371894470098105216690064634641673530574587142277227896637743661447155762031218896333730984951479300214644051491254788483057877063009201329236841969599452884694462936167659930686523097829343013922851401150545761853876818212649331532575928334132648067337160905099873887544000572579262822357481432934720665288265729478025703447304492116977053576964244336382656934289271010770150199497233190665498025858854048804696350349233505387050760349248270451036030978746927293600120365232941534164444218527179304310817069413819809304335306588570362571962390867898047572569643635398610852658362703622192377582511773911064377852206792911714822023269254048632456841226400895768704274054948792175159396679193410779751474157786873784946119237751121947299128719993931424241991786738429634125505472209806790391532873264439474752390700573326389027866365246437951921037964153320618181153470290087030038348817037014982299003473252472296674982509249042019202480802036961754215759833454994422166145648194656476198542234821616038349625993597078751115252690556125871790797900137089432793613758826325959079970244609058864034711815200818081297912667842091835991625643581945840316693298645680486580906436923172513842053049051769153291203787081722646229211438794057124232284842685428580883203224150477916468064063777554000442273350177040953045040710231177221953920366143431483019728235527937213027199272362678777941383257648376123138508169195072948956366425101734500164286884958714819866189311908648065665471900074589012546945810222466204227858850017009341717952051881601545265890910323055792181323122909568888838786073405608426253402312043009741496251127983567677786669920929997652096590819579496840594419484742785178026706868216299642218167539023973426326147728128600489352415257384500763240452983499105733903094569408499727035024489289927481010031609001701445043779355950251272534640043837195986015998462615646467131582664847647302003806641986320504975639229759711126227006932582381766452662792461254238363078782664566845780823163413778547968222766082864378599860764659560357743291001006089793925181229834315423357614116883494342256879055002906242941594707242906701672533604604566645257304877136718259278292542036502840633031487423330631041482278885399126367763648058623112043462144282952691880617876763774435697289925286620317351744391381040704892524799773798385831393623962110688014169454659222774704717189291440693799644121699228519826720556505185209230318860534777384200317022154629987154548569565405811027213367559829426793701042503479495790334325072536438813386990997773294124214564770638545157555829537227856339719698786188499280241800725384866959064716937484925194159267124441230088108288756244540207133586416120605179796044739068858336349697145740060487924229481930939455555619298375758827643740748203581837725917649380748158185208477351025628976758460066034640444511964911025688186227028270545297206328420417199919619161078393544009900120885592031974378883949366716442829417719046716268966870336924820715516635524750187201967855446347336680139023162249553574071914418260493581122387994116761505706739370905252986518703891406524599629293864341538653736190018891147987018339446058860549905518536575873455344394166925205716517567314404161656467112988848537415621131945055402968503740885628269550154017290686442209036000953476476812088364328793964327988458496358235804498268597621353380863548860897636313902736825988107404705185717718624591497030327123836726956907260641730384128869239871833161598519603105189283440925914519200671452297323434394411400108806643148675775482488835935426810129624442608735610176392807396268413484764423072975970206718621953689376747955758324110159746852574691463880221671398310249265745668093978236000988575720805012619953722426877759783302384206963934599263537549706052668332664183491738039375105339648219166254097375873728022807155325556865135349772037927619366626318782786804907570070885781450390191067486063712813735948449504450462206857540008316017418182021065742999610514926309581170765620247186871146043484968457980653582295921460018814283584676075353527779414141583854476408897002036972653143452968443298877308661591293321768731885999178701508073660215829215237164928781189203092204507156095708088198078400713777212416436641010777648528206357363712452732467526353121930065787961699922098806477882279866662659961287192103401066185036570899017570254916761881644226614010716132718821207798480634459632408232331402063780257509598000574440392519262492198649472800378047373870640768618186304529713063890113823991170146529922291371495007644690179182371922589407896595233816632291713209978001838609356201891746638003520437385947167604155646418217569699915518526797028050100353108593373325159937496047427388166874623039259018354082452331264841444608314532751105542981617578743731559519489811373883990569273975756597403699202472908797655923604370550929814058929044818161117682472266383730275755053397327730685590693436296414176007226055023555437008678753531492485015427396959984259117276291800284866546643204167830785752902780344156406764622851223421437808640106408910524405704678487845954040325912885368844744673326731587885515424107244018353074021716166361592788236275047930870846405232663271555985808070323286713972005811705626102323252162097706943394281807665000490643359710234387027148062439275040462886868170517497547194969960461013999315767905103289417701779170291964484296100715571559249359681004088956180895793646365491252464340162675360119662469457078668854852327079612385525715073532211620148811060107047666599843801088280086768288216568969117148892570839012308841830569428041755927110415284731446393830950115538825247020897069238958379472742579145119178822972139853094579430326590762513392690618794552636025917285811123515922795879355625374559448091833072391455209406985928124669875905931904646487461986743380977927106005406845263716671939442028210637773591857980924469202593828632150347314430583333461678572256419788383001162943672253893569859307527778138038729178755035134962473423963526806416718256388864465568368045216718572391840960980157877983027151553228797717572039586806434024339770959099807914053535052185328220506015844999107122906361611046923945849284123190693172202940944643248514150611664405038394332990872452408877676811903996029092391377004077501986600319435514579048964969042336294939044573851494709425550704413542895783368318260458941271922687634332469851071501281708034693203054337560879369044656035374439104006994137491275216723398039421145944449104388890195751639582623232354709427610953726339928885215686764081559937464251770739372016607250840673773590729628249784426921386655309988087765906817872301595623052532032210531561441275277541608650455733369245175703860734343308313471188981241189309652111328590803081814754439814630492485974653295546015070500446832112219761896711024144998131875482233812688230011104719626364659003175507334654989217652522575701064973985488980447161950077542618729141685494674432570335434221692234255207508108789495289703373885838058591420192880989636929604155667376722293008498595285973669417028789870850261583707839165551315834765655345496939251916834975815118840225629339235566683088837077720398143993330682296480311791506328590394604612171489690079388556171647604414556148712830739842463132966012658571692524320794276918590941398211572423613608756232730398670584833258283316229078158629661222881140020495867134573168630354456376590604286307526355605937256992967992391730200633853000744123398641366347158814812090973578925628610653165619442433664064892129012695973159523434876309642397543480640265131586513863544809476051404364600960411704907974470096406134727510302268672574283251084221846889776469072608352275291163239237946404708021742912489375945348055843741452813258319874608353587906775076839034418183146390316576469447744031363384624806792672502541577514671928686756610074839403221643261216920805485131128205256939472102737871274681796150835449574912037586470133234311894525191811321894101984382959588639014349932176704672095626175045815316045890594340619326914825798088723261009637568882469480576036787739207296091262260908618474239587250022798390733736410843770876215255313365172012499174018913977232572918671979291482676382914328119697345515577820269973393195604992542287847260167416230615099803520601135038772757321656517738950214295168388084893759513247622629426475580875828035454097928390992709326976073817970065004526258672365683984877799602039716263269760880863074906867870549784989384787838989704162861366843830410707917227220456757250513046290681375328077361916520871869607395028689274216106073514987408414418071133497306684620479476337913375183054249975454992590142720981666062014317949306278135243649493663886931103095550673869712582820611065665864768237544306880953044160356908963893398488401566248862837029812967104307358894523854080102606800092432726243551453814186949259639719327994608680145501365293117741321100835435383514078645259567884697349236376759729461454547866499676039709534298949720850532181784287877513587944596866349665605991612533585151160226324801346362858085424636316576668560126493839510771373069040783474793127897998681480398493403997121399841118733669916485273096173470641936370802291200550085317456919258037460053318811512050584284185686607353119315855915159581161249592210541400764552473769534244774532731656789198612445128844184606465709515248643764430130475799095763243006540056513767820243053709114143613716392554661085033475689368578399799475441334316604522673474963636058265770544923810000289781503203065633947355794447164293250603985016193409940054931950768056100071550780091249905522966983231262913480477680343481597430332133375566674898342080387685030215797852274744160254312951176083890071537481540439716127063481763556551863722535190642552280900223671555624102089195125281363637698932773078669671945004430046805705565371274082940008250317269915291200174916957885472715020557792225678622456636957791464437748829946092152911457799043680746662135471885386097479618890753468310593921482990089004586206052966830955443540154521409995034145000122127196867721037942372063171177965982592871117324882793497993850542301304058425190374720702460887682573154802855589531191347212391380255240312624348922611973662379156214904176308022644872306014217178045030855104358421894236207853601286206604113216174850963641793311053342884258929972175944061423727819262871412609231120289425130923728236748012324385386977452128211005043783271349471065884220795111809163079671238455341653484070575525997164156606743139464763507316442879783388422682692429725631276092945383915890690312070281343559769229293590589619136997442876998919389303029037343633894820201565141713079533378721974931841439543424108067013619187236736239374481430890787181171141465814653152507199372083787078795849854748326248288849688908750132196056121503586048691957495748530861709335734897686528920612746961270772153783173196263411767692937378531836220446072051696509719758110642576897908613569628598992510367578037236718265967742413216907246018783538730916790603600665943403024524967178166155444994726295710314648881198823971849158076454616828149998386439410988713406650421003559668159159327317332749529058540185613199124137838876037502885996835709293673871738168755245354952632908548690498825972201026569852996806617483669830950924569835432629366451611493157743094270683439054298946029210025134332404002999533858826029067660494101544266484353347966324199746131425293525514398140805830586815560423969733067122370860163132651289303526044752043739914941014031827339389462259151016473745692112840888017621372098465496925378206948032826127699057816018119221273015816682988818402476150451599639982559937934987219121157405612823969421149019193255437192005497125978324198293907501248319232257180685945607050993731778088016222749281182855634767535201548943668227704767150414032167532433044260951789730006859616084108766991587083382521747080035725504699949879939141885796416227815755183718966569282571452794141282465390509599684945486105916374749877625462854625635091912318560617202487772920262854597024563838372805810624905202737560649702061465884674633380302144469324430666648252613932303841442327920958743690601782718687754909863580492180869635919047684267231928679697576079098760287241668220318410240441554801153306089309143556536707349459225259228125420164249335364035308041267509411002180495773711883890073846147887936090058332172577637710454540580150888632989569920319576162540625815935845787539398318702036967925208647560041943759748589194655966073029352065332281245723404735127493071914718743501654011392550404572576849802039068807220183098201454190492947198712611799033807012004036780551822710499787361034717875237248499492292194213146387681717017159325389071165707128689847312625216606139261320527352142814157469641946110979828915861326680105767468324798494931636857707861878818023289673843209677985114816104242047331885220458501069002312017020044354184797369082964102400450398860754799649665519377327409994629068841912413428788010391743523964734488593158307991790762275077815884046017108609323058168554540573824924013165639896142640738637376733932728980136909527581940238979410684087353098993931166798249597142079779178908861890371665207983218618167071678967446091922178749924315288823734860862301046455203678571728714047459454065987242557040598353915751682941680829917524578417966351149353106594671226684169070996956705396980356286505939157747476200455833580037592114990466168792909585475081664380782409089035544462776703546346259914246841091118911028116395712460312689747263523109229995624959128379611664508192454438524756745228180818139204732561706165183527750954742516062414615054084742474085464056934487549133633631060330892508457260189537036844277807562308214668764579295559701468236237195722665896007790926111257715994326342549190186017443523619094455069801071966251897663371028771517500038492622141583069160855381476595358028521561932610367774605271429697639646590744948709267291613885219305800940321459701477469581303208627554289356038500213831658566998182604112519459952183403654693031487066807150687136828664572950310539531532337913463988353900152256395171682242180795301814369351507337944248590829008999275142076051761772828890017763009836589149020981206489607938528246169770526985567943889998958723610690402284331456360360841743907512212330449625244844891655279429620892842756026352703868693234178095984109112890356012103795151161885005425402594328107528503226566752883680591268871557071825880336213174235421938801072608972527250691129262383902368433308438240236954015160906212505422463638283616387602050463672826764547615549523019681044187616896538906368700223775504828247914729346638878955722148151675083234115749575502379471282941558606795610527599512642050556958295803193790658266149218551516312996909287456718243317101884896975252545104008991016614136220795853803282275155430335246085603964779885002436687470660067327353687268249731973849408182011780964722738397573659989632651464628005494486091568284368420319284902964982733770720259327280142447518568371081539126177134885938618898377886684978883381031628256327456515050957701087411410848248891140127850262408217672284979061288416214151586718500526916439619544893242402827164917065643934615653397894636286692135822326669319949225676723264307533487608862456856782422237331225938779762175475821329310605056624851701459796635202264036082215150776221817845957446074413507268856888660673617717059734517402446307460755264095077849882057255448049149892981249243798758418206267226562356785289159218289528529740264157957244738521721188856051221684139680308451137644456509215347515945957110750595370787867763405342551664623893426612295805462904562894388379447620546066053678740011358436205264292994934141470448675585308669896567614805410215867368539572215000119638474213688643247064111923627562282769992528748044905414572608784627302805865227072631962547612631350013590657973373021233393940537007747242499234909700564311223991685456006196867286766496627417851510715536145743594204455083707859311856836588531840938681607915587617912048133424807504465014263510334170187584219469255397606935156366139739940092170819011096582833449718599467370815448633186058433075229251202197656167231422355841245272039154380363903353276406849356199545910788321597267772078802068643723001227080691222241958739739216012554404616707990937999424896725381092571908822727807558044274590469083901758325177734221959156572210903483812783042544297078127786669992429493328880098639006602599400746706971990633110027156355527528059112080842837440725991845634135446526408459284681706105666216325725357028657035590452518444384395779231064120823364804464652124771917119213570506596745768018096949896038548260492313831287737806440529520753257283797757164201880211565332734880075808713985543899399696609304660066308146522044861161113158255729051563821477376316113422074279855615234000178380572648948257126422601353179228625184470132453458154845204209134110593487970473096737095220011728149031442986900535424896826286024881957297842186547530071294140436058839304033649021834263321482918270187965589442291116634723410888489883833197451985642973652698362104925980445598614521953961819746069965439230368319331979650374135527985978194896482990747776115081812271720130263573633912631489494271334007714250126288319755643787433554631480188739653031406118798327835886904173377810539326732460984522943596740736814289613746342183475538675224826499769286281092909984540724803516799139274002675200890876780680442405386174942055190734877153432962917335884166388929346387216348809914529021119068860058083859959906475071696000483605276892490480434989380512823138272673838516742636319245639870622794119646569037662788558369018445024299102393244863843889636464286828187415873468797145351769348915524875815638154227568141173093137257959248938248679271796722987002624864225740994238625136574389150787677509811384876605223755548165504286271127484767754181549231315604146609599463999674036300537966368368684435910293191263311346867399012665228828745336165104938977268713804098135064604850893458086161575943720186190357067367492853318766346810407742245671690531624664575497896123393485256086360607795376368305497457965038690205296532393867290238923166625681514224505249114026237682848536041192967878322448788611655300463847139434346925585278488565615382777099413861645390475990179928391923849174664506653734165073267758559673596002734240724711817819729857442803648416196052081993556413619737978074631533296033459959500971305078504582672012657986476447217400065489732777593721647274583027022085463557715933570738114417965946976439198117972667236020234479297093107351721739611482656339670141092945970947661588147352325574060355441002927242667044978881725489878715466270087867956128472393979774716601926493995030908711651143105046758626657076138827638835114444583970268473865299195207008297393521010883767072343108533932722219926575066155976422158729652747731159012625768363915328554517082083599464587769052545096239775864703665616426098308728366897164654099335809251320298329379930696639638029800483124464719366740454403507718611368240995186464096408551654014689169425699700288587055671385112968152387679153396806818175519220649588954561745583055557429408643162039197505799637018618727443954008561446623345443459762437556187308901951235401234655601143999253052493987967052065006661789387764052873695793360632146954531743284964509505090832084579070101896558188661926178323396360809665908449672763682338187039209975950005704502942079633733985763559558201779710314579052113506863430990772249170767222149649911186504856794673605676258658104339592715909082584642632969232212350376425026943796048553257915006076265709899015607244927140628224109639421520054300484910408455874446946167739377836200554641346829031910290695944726836148392218901875312559660536167531636191873844657618729721026989764230099299051901568056831188134963302759923529448089387596778730599186780688357163672617459196098116508017151549189069636638570754620240771918130436068981116047447647151191255153340082923346620704799673836566821900055956093357066693375533748291432167251966537395183846493975301856130886194602972667073770579335412973606243071575822774941241934596243249215007627391720376161271047361964964435408978945082345910688482095449223659364893305055757499893444862936611889966442758451560033707528991718878752050351382824788974743838989667991614713506086758172350526792216861149110724409333345506193935258787408647996761902532191905614586117186628825028487610025929966279131214218015780637889834486442423187924998645687967930624628049665312837439717119091587173156295667891608910024099770739101247979135285469752402424548016051085900376669633088552502473497090419811477705385258037431165094386949908261779925786876578710246780690818151913366144519653068809055013047655840361424094253525898453032892971268446865723194767435008464547891620694919177033657929525880607879801581899734766410654227904756095317162797216155612757669545962821205532041514926105901427135369365198852829424319977911637416325989254835174524282410943572000736854694755592025280755343386784179637044196609428951427594062169620117044846741984008789703449703052680387602035250628402038475992875650425689797839987238101570569153010989531253084361682221621284636259633195364067729125957202357999024464741332703510557523791012326433893712851819706048966306340502581744522945707570677718739674409909285451044711498654339641175270870386378991302540439162429163004979467082901617211183489022809012210811403713051147743360062313459830966336920348997380189120791574163006804521463856075115417023607215350780815080457153256156772888222424382617617490112396130577537326860039342211659781812276922255663706863074820424041721967381233001602127075993955960332507024926067305710731254572827829556594944858189058953997850107716039261735337212478621370160568051175405424129629912303701026281052514549674470262966136553597871416513105969794588083835263128251706965709517853048710764375884422680388128231003564208939858878086562749735459558574259982025723367178068435634527314494140814254972909021949012558425178903417155534031392588912538068486528666197781005461220948861531840498548112429859796261784355632808686837370467984025093267965620545390725231580510360061741965813565131603952722316053009115566291720446607262909548558901118092322513816302073687754820409449601848191084009710443830857169924457044284220265025869401370405974923436593714856946827528781584196920569260289746351930441349683974749189702265984922929708638029944391933627389758076896089751611604414020964814128866245755501583097215869300551031191945022306980206979506782806621003438948157386627501991739311646713628704526184662461562498613112764543818561377649317995275994536112672313131360809862526691388321306860922416360529432492860609453039093592188120935390857997797729572556783580344639428591224864957065789084660846115542436444271170188834517219260668584254131183990139239727871779658069693028574681602562098706877439200881117754472768227700060449314604008284522282996613219143604523479631861915119668918945831977419240612904702804089777386983922629683251800968136646422929353279402115600861791082729091632450725749237264927146059585406371284590899188446936527019681110331617848492250028411927047945987709598240747168692363424932950164245214024264950467391274395719370736773451728414393254203306579601937166060499083656597560713418057811737223017693941657978363670533605524773689830523316407227346690597381339633201739800201643744790948015246242260015669868253090729267048326888091159038725819138301040383512932018691399206575393373754888309712582824825676556704741101209168699681865635962406700408078448421656721755909409339636012914677601104065502308134588404760332604163073782510367292054574899537652211123607166446059254330943344841051594837562148550557813644565240740935455024061679178494769565654416595112011236571839174191867413560525216694007300916768116494817792195179229457802832874249024041088597504857198984326866901793710285428496961190138102903535657457822193181216899216301714255059458414487617602864829777426555354214244362757332960697063844157155921473781001345192794338486117386708197432024404305588087986990849163191238807032530623162084644837378696472569453668400477405625199303759130417715993116841931066993062447830403944147683275852923840635176976526624500315249982559694454054560531051173703436176055244527421972228894150394539269972049412866829939344858987792217594596508186186792032994474958464485191595154484832392383832022905043712286836826149720117882402662274712151111604704335057155536630270750487534404648144512482809608364642043513465705173374116025488651257736527535209462567195266701828039233592307975796788194098608757299876085513543857548226056982643290484924072008893786769657473867288849490081830706332377714350338055365676524864991573428319406622926502112073947473287659092024928080093120347187624638621086567058270216202432324562880479109876061377928107385898343317003738411887764265154115600288700020700776754434949455939900787586009398077623171479676041856530310013296362322531382721266862849018595718321776782431316329662690306945541231425181291188574882015245690020836570472979955830361817726332206016936760531489564825672532957443854901854461453507813415461887827866195746296020319285684250085138784462899248073392482748064934927529386993460814805850748618899785135383293497660862855196782912248183683946081588756325968326421045566965729530694361247757222504369178166665599881888063766264718225154665623176582908872533832588365205818991558655291621283761056752299278860591190704627610952978096051939220007005642209627207959168363752252521680499712164382401860892400569215048405472295302070912314255355818565027160326014184179591563649409168734748876988709186917281378686908621351287606296934758950821926344247908188952749948476458984199210457782503207027897980265365704205966757296201447517548329286703969664280451171185648199786220272135050663648881704801950442400552276774823489939012443149102248142019742962719002958066320700271048025602373190105378055289050601876362731809634601440068542255520493127376194216172959428887427952982150717535880083962552874317250313425091866525265590562124487293785630427130709160828804512348238931374061966338976820666123154104687177226513466756266427683468405685745167809036871909702923649339052414921469079652578452257489366108048072700312074730988960005783669776466021807245739241145862560144656566992373929395139708859480257628370819672098336106062323769143238947915045601585331653439448570958874842115158252166018193911831371454631646155189200168921303112239395640109870773644867668864458302357769703090225683431270622888333656131522663647163172801370014289393469239762634964282092283726200106559719888773942621802863542487379348381678306742264942082656999903623043619102886352237449111089973591895367089688524642734037893455036458885029456509814159887355673978055585579505055820431071355382558865309833156368647618550931537100365597712947710423354366526675155409851470173260080488326175800124880907718254727413396629260275295552753998400312784511659050310106550951017015933301913522334637958012460952616288684281925030528883323905485322988739075384046117335527684016683068940085717530568554582992404682933698907778843928206629112702063794867728483914645152929733637364517606153879933009584356987613386787901815326219333140328747083127336138395419245681626242644782581157326704025204724180085560132585181550187245228495292599448711650566377512456791915083890238310204179893412788579821201124068258214203840900337602071746966346944326884286602558521796776746156194263838599921568897444537648292399178259906176387107867493814573206425969917480431554768579270678517841628181379457527571013721446921605084940295300839825240818724043157589298084408804801518572013306884048031316393698158932897314822633404628197231272385490042830893552372045490794517127290324250463996336311096537049181120353527090596870235207609490330633795970208417107225699812743998010840418983336202442520679045279531532312813738711158787202088058740577043041363580278322381947697570515289365832396579667392651978506240027211781819999151667447779653249499887095476059115933498702910408905858898362970336131156923552612182759834060648732841251811090483202477312263436934441370383694969501008031421934957684857578871632879295144841526695434174191971960895093014293777448462912080684520239095267925745120865290552409373746331095818717299025440349294526453331919685993700835278395032915501186416677272825315523672138173265454915304334144223218622301187178379590448593325605029405893244995470850035674585171287903357136605349569610783149907293848897477590326342082850375064749214406285506103507926291428956219230893574864152498410146667182889828950018844898408633361178367474671163245597332889703311930870147693813850187734322594042452873874279171702744297665178822034176528035109786319674142602564116333714106912573708987389169109905081163930118097867763631856772334439922810564568997654200469538356607304833734825544187739143031058073120388345457674148157670083443413914414480203807784658961162205658794014567806936086075636562245898295700365537037496829001778960519301269715525931705049820249118197628389565838549949190226242218145767024703505689083457423170387455608241861864939128673923951008978188315946684837811579924317360809488174967429018677970650175489095842303786155637242073257667722535916664551803921799424804030611465370729131612805979258919157942913987980359799576964357746479906688956893519207163430829251490567410458510427628864177577492949643777118545197373480196842670853276322148870157062310233106927749637383633265110296444047548465976042592867821784133001310559745727715929719154547631423540830436181108407585123430602241454387846864289665467982993639654176130273095695821913300090822791250852218840316089646162308274483963590071473652614502452452404863357761178802365551369188039693870006562361183790818242312225437708161502157151795109570481120520065988351339933478890360094111967919255881758532162941624039663115604038819370360804535582665543028145784949330149138629175436216804154392739354856110890922384083739073446357170941452152957449007946257551556027197239521026838700935820467686292626560546684624687337073095228839448339628453712108476939289793739661727586210268606568496328100412775801755401232907385619960367826856775554350783047075639875720914109867613097469149655767784430021479402656867324706020094111109200311655486359155002660010834848512207436047826883573097057946939859052554645256152763796902209654323336204215072231628507042391980917690488178588914723626212190967833306311837137887425242289741661818360670538690742145157406239692484422217012222078720358014223382235143945932033803764861672315883027983856852078163849880607508928472495551153912984300916321535255453707632790159723983390915291599484780835496580384461213629664453694377740346939285540600719024134325692080230501036620575167589509146964303174599379680626047252465360255600682548763421161348498387194397162629158082433115016901711090039967334514984815629253213460588010028972637771830735536184160208159517243002759367578706398384012731088762835454627389049036421886372309575100365392171334057452699116549839437534488571308480349173036220738009199186815171120423190685635659588561010748407923200769921783333224946245218611084459349946448319540831161113665635798831787293917711595417343243083940635431155959914880305973525147926193535551068678451221441437391281622563979797754716503525994438942054321285886367723864632064840825817792667005296479309127348592050191383310942818307446672803996242264072925298014150330719822831562435650643045169956630838299584313078844320106123303967695578571241463712280568706126950570241436499893650194552991225666997855644424546516493991141908740100983246313987891431667056916973310110542354516915023928326995035079587335217637513937203986439772155957146336132742478454770783931512518735020230994171315575592603179504509645285635536703407631947350861464916222014015924437854267717095794759311346481948905441965979457252927242061196224067344591737586340788081512079792017152045191392478017154998613494167163110227025595031427889347178210273441800275122256970181294027505875417392144995112679865325181724397773370898134309219990814368794443205402019402850938974818076176051616062508069428819195442133981825959014522157768405337376003906185130809844526545269673596331842386463615608021963197806708266244337634668758341592405169460633202456213552012107131980182254919633273189447167379812883897754161629504371416351198605651950142261803804466972497484146467960778704327251989471312574373172061879433245743966877657984410987068359093933757789099399680074795863697093911455301908128638723500288595616850224944351777707656587158473987902582557729335418866500331878225725491601439868849949317992839563131428240587702666529412240436334430544865536524728769866520505161829057126533036370179030269939059306850608507600663008087602679928956935904949165455408742356492304330017204991349001201290593039733879373349853791736337354732216087257399566419284187718732194217756249374832528367802579095942371909208163142490048425691393958055895953606273067202365196555863893275210715545337714539737309753226505374731213904702571948255048851670360754733321586513826621900255503888820660050501029427491510004595164982527132737171198019675935599232173970171480674675708743576868902338718466395449040374899708942344811826047131932678940079415653766555345488350337332901871544287724549374229818661257804140566457693882068318338785981341415847688426553431624245499902255862503218651597014657328761533676664292553282921465228260185089229158079632257508121777661697868009456045123749925859076432478659358927557206900294437367528858400645526194816215848501856952118003300379771032222248868190322948578006027236467513498844253094966115730827395046827252737802790849900128920352043758191196960286932652220282064850200904293362082058433518526968512438919288819507999464359768487208019353151167577125931235614954943802788712570157692116837502259618120737545394023439091528147207007676017689578922219049615427641905796051335934219699654476304289202995216525978034656061901325807340537496146005994287116354893504311970317653153179923278279513622463060868184739078409003630105952520771817754478523718170083490355650993549906880089940554923612818344410681892947047638391884170764282134014553737002105062241479993941735291638405227175269990516888320141621561613283929132116054449830885240725935316202338331702714965841778300662065205034661101917936159658096033061059801410638734107338288254241296481480782303292637967591430759567578942986006134817293387481978110659518375667457087094483451674055968919494791455582002598293201545585353549857224798066505769986403630250315563482471167975810457966406965877393412838792590589234421613473428544398476032743422238266348461332465623749831080064093412717090487990077546258319137539577170453218578540669221282068203716044555749869145867359815908464577814908755300051237677027149549575143486591768676107521993999184475255351741835650295596455214058542796455326374875183413313579185271865297566727589862247226979905479848517407704278277256735687600147368251871628610553531989478274931414791569232510417260526543916986259806245039315467962243105716150043394009020514826549442786995931955184410820504363434156939146219228228307920234796340445765987246489288087245698515627922652926822726119125810709141939158070687320807754741077605765284658661193714994539133386100143347095665999497261142194048479240190049815829397318973599874870804809185042330565620523661830695188398764677472974007033269645628735982488886488647308441924535698849381948679146787625207484442260416935490486131534634666055575744312247441221641740224592240534615875380442152324070287917183312615317045475521378619732824025509170081480424614640556553523887170444079819084880879946295942558255162155823424968683758190262473133566910229073878376166791511663975277454160853698662205114338068870562439591747500920675135421725780241918816617265953234758181266063750003616425896812699893794527564723109461230375922053937583415856529446007339004175598957340263540666080192846868258397958939190305040764511292558857847855550094454639388142286190168531706556713518282121998522888022791146423132517716503708566483262767729615940822556064954027328023903575526095038740789701222020787184560171887401726338817198000281774023363983175938161968674678533284141295646020199456576065706387594548826053503455393521879540176063334957329545216993714820220457084868234713788125215359604309344217492513206234391559951088303613935580601659346261322993897101965416502431511808887915216477976617806918446316980714033812391587499034751268135792180990807096164827970455267791836446054833847798930544306650724135664062224175996151311303532786660155798438825311585566505478310782494471854835139458636906237218798344062195912763096964253684023028212451910137187902871470907393116576102934904650115523118064825275201550965953059030739736110797621478910948763051346587758651605226252391330814273350916743223709020397670306198935776749299180355374308815642599868888630281438298653374174190827025425176661304157800020799343791836081367039709741749265066746052498995416648522537740645140960144792146320119301960711786980632357398489497712701513414404767515028453154290745210833965901112644631106721289264952175975350347599675817630532325518819562068827299835503589976153796651247759812011774208070908967921915912876433680969853782178172110266488546060423616336369878293014672172202703893468698473954803910479995158504232434602933859357819164067995794817120873216674612088195041071986607521170958592460528885623365763454881175592141784854375792982141387707276416291097022525105720220334811703005681195460539120514854165355607233802520414203027403362563658444373216423655011839563037271114933914568103009975956246651696293504740716819502033346532990104734323689650343433277756261810717178984398937120349513411042862035079656179955284825749173296496179299230394318066209486851514564100867011931846303657658887388898341829091660392460411097671164367723860895864096229332899623602708574216455892128090178408900088729617561909017355658299259181702782501742700682944809394797320790286608822825839284616095543061331648028767320637423218449449170744886929576175973807138646375913614582219900731491028928654928445905483576085119792899370969283356258669653121482252237420293943427357789403997751752322293618817761378851935234604258274518789456452593950436011312051493263038338531500577131333699436479498322328994572877035664383443904370094360470988262559466614904781788741165375595904063566514174239164965653851170886538644012726425083839585414034443620923337984210412619209076340369630934760654875078070338215105000497551970754326712112905525719539395646889870951530122421459060032890350625524799537748198281118451204224956997907674174433431745297427753730572848576687481439894085658070868859501500163900946326023787744206464060744659118783676225396774393269453907788120074393835720581598010113088250084534126735978359998233042320013699641424536605946920992479200352453854792761236707494398110940606880394185466667649473571316414929826021110068718071483682307062917392436477365525348672664708919762508877538881013242907648530393861579755105400500894733157563723269566956821362006409793453345485766749432299801414770551647282647781221404051129939404420264479588378886754659694760402718177022317671887289171400404417797238711939087575069296972073519944285525323005792936546745042687734361834039126232225284028427518229144464069863249776761247648749449613260370861084245368524216675759626149830095985232796744972604570156295264895947796831241491612604749980515144721238045131368882080710917367002422912225007133480283233150944850318948022780962804394898218684162822131862714167153913072362245030624090141404804951255408301491018152680679957334607453580305805572935677889425083768401639506035181665345937339248677684049830350886654489804131972708078785523259097063328290620123096395644232874191395375769345377034889106261420768017891702754994405028011027907076462914525762730649832959747635599996456094605266003771044231767841870552888938000841530147021561144515569123191181271924761288988675455305401531194503789722769940712598048038021002639906675364304244058723792004215898966144738908355554600722387772905574073851316372965548727904152831216959866240625762233549136283090387721794422026356132704922594486562237935475890539370277862730083139456723211633739279847390990262768530149880879737953172199604593778448470191067831513821251676980132814163623640344599705102695147204429358110548052810330372964816347361497584989085062264997697188319837825850992013235433628276532378159908572040849432356043555437374001927556567935949038831367321154419103937485368166413327902824996234948250165764270836814262248108638849594564416501431139061597116231705067246436506494652142658908526779635861512207581198943020411620810840718456742361301718554308307186960467302456462813397770111322731709268384658256711057933421800541161161881261961171554572199136228342332201491260783853797534191261131682426594006177703771834883779892281068463344796850214329271831315323835946426263598101101853457080341381758488267131527657148676220956602645521391288422422067071873341766045687236401057773757155572137785343482813210044570314053959343596973555761886009226135696570520095494243736805217612690632381696513738984364620005618041569604775738603288891212668188433885171466517209817939497024991270094161097179775390140769608764206948094455094220074806447877984446107526941124361900042128612530302731031383888184422278616596771257816545741342716153379667013661567036514676042272482949991317463538383270154583740483755426556771587460859146164366654235690066139319904239938020871468671504108636138856664486173390706477838611567529045255789353531904000031049431742980809046794615732310435732276010735363488966951341403923589187755202968036002656312339165279524362955062694309354696916111831138379644950666496053120798583139041052721970622279671815450591816655581484659117954148320959807456330706941119418148135808626833698863687389481099111474974904193796113967888623112721088194101060539271148808758810257697900871520059288011341436534245970892571264245971512912626632456797748872360137245162955894965685479451815001026650255403330177351339384868762082208403924269436325847808994867296254901064251837217598356628335422210343335077333838389330545507257561751252223858634147576574100358616559391940256645380776485927118010693733500910066406629320903091483483573049391863004661378993782151111491943575538007110508934914832654991820054106084890591902540200275837467218266939983603855963300160026108960591289463145756949731126337735241064358746638919126830135606394263428060525910494258255094235641400028325369291752320155905592466617611170822836901999691916511561778231571688639762817990628763872925183567290413019344473373325080006037789168126413660339675319995588946610092594335710749520441973639853319261272679135660248848306574922971250065320248232211271605567336274432086023143684798467617296443305470040399873949942638464308611278594316822756868936813528439052120764489211546529825114326204132269199666865024276720233978687574648514224499756901605563900991986457071542144721435913419794814014258926926745481617920807410886220785504348433262006038273580065437682850847394428809901685696156114623061467603912895138446394986770799565150957104845756171442932653466254799060334912643734819294033472198177576752831576331107508884535455047942472284770764356916951467628629657089417287216234408767018039409414863474079612791711292247501436396028353188700842729301084657203603105119291117276696705857562988860671212314577535318495442586166599626275394642269065174171511933688605928339175110157114689409232684465056810811823682260781806367611493676028185681865684903305292363177324356040247253451421701373731807034775974703236900676549115181416312045327114328487274760643819793747318689926249590206415146947884107673108095718023768529549310577753199170189085239614439054611585182730535954586856143434973953557243561491428137826299833428262331602131299777480049056369923510846760575357822774340139354247886942733466714225060277016925035123547740154160841923168531137158356088786845863916610053310256224594222864611678646736316530550018512030188234111184250674720748761734397353129877024371255252376638326693702547897675006531511097751259462504751724619047633763029266369609768210652187352888450952880748803174380133545868666790501644896149411595371681409600145294632297058671072518999283280452549496164353099650186705032432818843658341061024221171491405073318251261504373420603050915820811398140530434151102078974613602814468446777895431757413033842120346273970857502918518577909293065607303848863983584505261520657674493285947039536092350635669719755992398311460898315805111454473076495553302267850166965132329144381913643863026492564119722321042257876183078010115312903266163258586538453506422460159855068861451228929855105427869621428031186568981830791125963251864757836688209686786173060821779521375727225650242090483672380685752442228778276062124702358355760985719360729301190663981283616042086797296757003298298070946224253874189187974496329149213294339881701061740883527285115600591928873048755269392138341271852731769058803608107283206854086670893979243510987406047097848641198672444845488372238955968515983838599469068029815064570465023377146997948930484517545134417847031017787134356844805117557738737210741540538479099961298794537525052508127103765108297414382793661688715491867342820696320281590104364279310040711234177847306582762187147343563752143749710927413503382385128371275323236324855875319237043288638174435044586864965377703404102148975119261739018846964199429785096028349872434191324049779511278388414545483173402584464273265529886821289983179997004255914226999033350623650058275740638582043239670375586323770764642781738391110451362263717210433155857411209537213284213992704249601449191412103452408282299739776127921132471509614562707069133076604065908945485234557898814943956317554606467616446279259743089148042093903485881802432707558302196871289506425562732768064943390852710312114120585185970948059456185976710113249307720203744713865075390905923623181911730012166746302758367535661937217256639422529372478965270638192328766009809675360316594030463037418973163965907619858744237850454590570066607260553922129502374628071448150478413488633634547637660035008810046017068931352060842337928577014323019217154902371543118312019683101229942043461738910584907986418243499304005583713675528650499398657026421585527601911284408809310306755380395305015561891213386628966421852369605955937755230473711436157647749520205943403871735876386074614643884641131776113965149962966358063856819199830070583419927617883780871513661339886454009520984270753315225163038883873893290893156235861986258461807093630847366986543834728690559591447461543128978693429118556800600785019911997411802784088072898366890540716278929597439818922171956778062804223319974960075621681539464331772565021356951423690052000078691285533432655186419188852985984660748061366415117297252759846696620872880912639418136733985861039072356664049118902014607824366722328562999412418788549657029115073598298661945928342779002834910863726837923711440561593770579622012867002216492102994388474917607492586939016228812844879603341725116553431097114119647196601713374095208930874312982897473792418166208546243018316064307714473120655695530717421720611251197029256003814718478681997885499676418527239311200781793729031027404351046336357755755687309474297717197020740969456736359885600045499227920155957023312748820975227142118158458840556236437428877525573342514963932735770833303446844640323131147101403484358774072763455864843934420353005431369041379958829392216367954656978137904752409324162420536878366005225949921797631289470087989312488329069266198349044264869368029327831738407714180120530608072589177323835252806347798079071714684460260588551426966834730715364385194640534866314965015349935096061929749025957062667308953873467149291487439609066866496884114672708942283612520897856538544189811940836806137987867546308629169217969936170657521791232723975567547218661530987885564377507341177657907379677491636972034850654362341366112613735987135437805212078292440348595658111650607323657340538621159760634375029416165766209386780940291795153056099617472446617252461546111589438776740381313014910061461525130858492438191290919980890381212983751137830541693342862779890236376795768780589515839727989066727231911462109225201489868407193864748738264798385361648112734450959891275512971919840273752362757804467282435449562337225312132297465550306599171519651511048780046500041775332572182557733523187187148023011702157476575025605513549360863456599294782986820004696497523740266174915296363551840500272866658951537243919079030837115346434400794291455440556211057174389105221745252777965980717927942109603062865952893490806411270320012799412470545059958216614049148803695603085883777426788024760374055304111160220675233846168449328343674215582270032832894768292354330337969269753214738494124519878774902457723108373215918271863288099493264905587410189908222630698101875399138244412614964227125897087206718654167958990735662204452432872593811827420181530916249407086738404195922458701485145307882072147567271567742839721458480832531231102852991666161863604893982482319582768098227947795451566685189229970527310850442977208219427102328328408864249414764075978348277385523171835717693064502794884654078953461720591966861164205352435257956652057828840225458657513734473249332385796753555829466955539511948042866556620729788239923883512118126870944709488489336033777191259842846205720290016658430708643178180545474505170478882521394019286377818898641360093224398537410390290221287706847750913351341476263025361823094737215459389610814264172417367752397223603699203692870409167372053454494244289107785181667690446213105555502466130611827634266300867211182323589455963454810673353561700726654708833337796700420720747576394613488703612024615965627033408125875134618051376661883733321423017549584471040243935410874322288473654099472009225064172190723996997633665185493179731807247231661969974928711750706195213559729229946328840138986126370469782720767156849502957276466089763106004819649069883578283459703878420186312584528696019195964815920122409632092176206398779005668096645595895982155330729243818761185503523067627163319540380536406233889333342795102561694433599501291933449471834840841637981490732482851498289529468793349179117717157835721980704842916652770926416383454879679506153742281433954447100234409273984811791931622575580888079884203204422873367752924178690152081578701921060773487045184081749670203899520276779500964833198990902687276965257747398239165004484239363034566674660522749728634971921787073104238265872796364828341809048029194674405501718059490874448904591514258016090065093799198822197819133100289556481981703293506498899768075597434969820017504626617238961414766122353343433700285799349719417839693476164851583775397676056892985662771749988728755999062474134997875472440357831561638094984175056513015112333680852545180954165734614113646386231820670943673281233767509645202535549982335375589892120365164837347461282312243555511755488866210251446812238134971694348614944321560805735039316651619760469212644671491371145902044268001937887758793894541607864369880105679562036128588965212788130954335625890076797490184493759551092682716955027939519255911443170003108254664379228151921410336517115983100858630719058073436445678458816590350294649845562497279902104772654947542036961910267919281901842331618923932014324690422998988096729699982912731558167850215916121286190810800373992580065843009937595340848025379539890171111674664147860085898467403159416671413203672781895467874163715399101095003192549066968437124513785578387094238347037381493031395040031145402171307280957103184766759290178054793507695847436030274921868149394878353076888391736986567511382488935919850478888459764954880833014201516908327526977736961726856740493114845942869054578691651563044470293302313239694988065310893789437245021382241066974236753258301075746849888601098311996977625620285339238031680078268996620218406003096064688475371406240118214457445022492322467166643659009031533075026002985543101926041367902046094695519786061284763356030521996588186930331381965206018123378990393216576598546605389537799812904654766628854232354723078345598050082014751778857121102311480352314078046663486947301952677690533851674127583062744855781868720355916363239135250062320716376602835293786990677782125075122239698658877601500689906228948727424136381111672435599908049548158040490215535918923155304898371589366608295704368909112564119560249843876013698391297883763322576500429543999415475964751169591031833298556393109023245469159266412816614181083885268881082180299914918001435217772130333479917188070772960875842330942169020776354020846282981473308211656156376572533500811675806098208917380503717098312948202745447931163558110124569188219224250941743054638233403830406309219665242549989265420300353654540431462867786088820474197414207450555406974112754685466729686677827450948945201118429413191850755443854478039810352918356217549756001049947749240983896195831593314156149056294824505400118075192088536398691272703538288154910540533470416287701951440799809066863148235879831876050890468554854542520117869711076673078185487169905488172910453706119042270760730758256898261781498189670013342320877288999007548722253005725950469088809905304713233613327085222277406886797658573517015603434288261214265677666421325882296676400383716424684720639067882520530527621847045984549071022960167237002059184053684589796787649461450865047916281346624662693881938832432097162259273091586795454337247570860502608583801168990313190440199629397616259600768626772685775385596262827506391708318801104918463036601368815027970650920874297882166800044032159462093106160488074885861697621713078331424324331625993084209060240395693514006935035324878249671814022658823648896129996027924780572035704060289135420879134344139762420661250412136675588419408997678815910730375299658181921707870266869477541195931167524957974459324590044858746610350725799708100633630888976278439841595750936951706721695696966606875255685647671021378660170749714630067746006558843486149198138874207181717695380022950386135147479580598587819555037179876239971330137478201190652354897154508601234663325055335762938129630198732303528157774455633623409723654345319559346058450635534841232584114340651542669632271945045011084749090643482586133891408713443609686945435806277927040769097617816840170791291445473142882806374262096834206958780545753965638377289811939760758447136734898086961026529951300219520915998175004525166606193484739321132958529041663606399767664774873217230250004670844441814484784020536433665079436524100357390846265022520606002864640585326298121894639032680515765369450032137474088329236722361809678877136868620280139481012150630241793754187049269353041014488852206480760065927981083478145500678205660652720633706413856853677669508314994656913981966495062095966906247243658581999886392944896469558535454142338679169153224398288965992824784852240795703650692797058203354465672548140986793955250543325147960030653972796425649143751828224815697149728115644330702604717213265249954262388125095434689992926227141453855654204865663867247195935558071625110634311012022128099073776300365081862513264653812781000529461723494150594527237744399368816380753575623309865752206484381503989584923208978332325225869053057661300801649942988732745296621181906624013950260482490539631509898021780012923278667167091569052351291910807431924275729474732649642496042057578767446789628565599699311193043617516532030280682071831476254947461129738775730825910952014981609990770985724076877623304249996513955922535570271389621547920338187199236988751801730752239789101672641473210551578335771399753392341347085790821654628097895941427061349916298935443737867121171148214289341925258935981388782843508657138850389861917112355698377558944415170025374821315957568842351084269390383159541653705125027336610022881912621298544321870601607553800789132327574356557761603277398639346131216372191559550153707452628661228745937909066620585590911458355470137374782943913039511573141373470177788025317854479969062305624358760164999848773907628390800231132450186548541556515355562186975695636385324727096940118101915192864838951218532567081175662178972375572550264670728588304554153055869840556114946539313198416767649071816550752751051223510633239823948443524026785296067749893183837990747889777728221644587588987582776602606105601492425093666456205475470951161118466028656882636704337125056461788656537773345161792803636907166569686116925613675686067647370604910054056259160185780109004937249581460443218644810260484823903951448322195321810818328696299493327140430194095432761241305007606235248838935368723232398015730141534329841690236622498577389190259925962335441329510282391388081938662661509580944389364353336025878273478052489562846769866731418142291930104112694150807060245428830399237548969824908360866901661574115849522298605238238918055337528401833976672114934056735710113529150833512056639800878489892035165260549973630899337074453379320334763627082225522763389190822229116476636620777431575854375861721766125399285209257192711103895421969283016563068149495085368528041714047135573309446823107273774035016979317212212840766932454967855079502450294657245312848069786809429334110938673810115415523144991947852844251820706302596770837843493970594914336468402029051966558788040743006018263617128487511750898770642549123468299079559661162558360130165734548800870017084087042960419111657861352258282988890219570714092490054569097719643002446613668274676991541621154762862819162872412931388909841361738846426842995819513422617014988362314793127115762947904745343684259047458835229081713718797495951648560074678117769063849452032657891528328421975068160081894254539303587984545741097625194005847925855625989084128631131973697328557725393619829722550414115717579458051272863379029928875912221144881338162136928382909130743747590953121895086587849425616860663948404929094134121192618948421012517557519511076363240665349101658413452997423820123391167932655369768871708052773339746572836106395099927423352669568813879689590771430292633359111801163574199645728932717045701313437244256626391934641370665420613265364609872994195911110100317199933150292216878638903841725227654662830781197848239854812250199383041238111602593500494201511008867169445088872077219409122075704919573513384173019739518506274923754044975335320751203876915655102626770275098018808505214866430309836271464220513058216060045499971150692783789826224279074598684635301152769253077726896325123549607889216774567106383023626932170616166054573582576457166607598271596586772315554170218745970468319905972781177295101329699904057623055408636538358235822084738456168599492537005785174748825514993846658585418234066964141316187809403029677954514227154805535146298202011136920311154330264788574456598014585707014411973776156436499150084750435255808553604502422764204026070006575607441812574381314808309534491300455536413845586530127763120552411730853712347121628952704094507681981127421883992807021731119406460079110692763431549849880253922030548709839257132526440636905634836230527418498904455518303290247810162272609533847764726356948203357416671408774584097734955982736645397742688405068390493145125668944863996563947902883166409212919060689901603295354474094075909189837082560892454254250638269127963258029909201878004701449963882710424974674112772478995289848253357304835544494437119077645191366062661200612116984573958286933641798302799756809883269640480590182033235475766854645394613327132226462987871982938281854717891892372304529928163809124680502636151979794388083139610331282223646235428413334671222314658668395419865132456042369978545717078430436791015172324336214514271089096718802819380822896062074110466266648782054896170442618361273371188743160961461503953071417089120688072043714217782841073504660771623301747345476701860856418183813817932326699221145805471905590666364489699103478964658723067342357259596230829180072144889794707713280311096190006347108470298124352785741602217211674113639751699654762200698565638271338336592885806290592804577959215353291286832425300454260314871443489564797363292757159913571664214966791416618860847481142540106854873717577582182597542693471351878923690203691468789935895972407414203043013482683212369555802891398474858840774115739593303975272305911083523222838714791677583256143064502370317355908552523719709109444933788943883376448867854882665912321415443012878271981124088450037080692502737425282442555717116369405709553688220370818082211841440604004166177529164783820447614454566459466753179046034670435767456524054869535821913676292740062640979843931915614524207013878974685545284872917574970339821132523205009721460597923023430039983547930877071152546798884936916492056394204174389866145611983699191788255674021194032930367075590953778919178887778470594538551028201288325161262459062986633457152403955991778981780748623419210366438916465642400852502920444436848062234011466284316519830728344033894413705328789209828648703495623074775729868206992370154084910876171383690744970053086373412730601235089983649786568605768109010342558980686193413964219412710148964141578299133628790955993873261920331910507688302120074964893256969345758112131531226729742475749300317943424096851384215772339224217191535655028931908192239605902496166886303249256422759227097831643664157954483059168055904879469813699828803123125006410572733415940903941374894404323421187345553155835051808649307559569327413851339262327526779883897864487300279829137755813108934590279814167822322541583435473802824605542042508349115465260516095299198998431943837643159747511649538399738041511167957581171703401830257098929177105465441033142331656651676286979437911865830302047163482711173896568831807206206491654970751549531301241590646366667043598966512770579156858067381258391456068969957503263979422341989382425166651609609576618691599652923404657499356468432435904781718557377760988115499983211326140183251845132803640752790143700635921750671603267472279013615466067217642021961009398038879460368680475188779090893109042528732017281352073846938902955307987068610736396429035893123539088732748248646547016450944492006620488308040078740431038434897979494833570592959400152181472010984784824518487641072546757347667766155233356875054969347794768545793311327341609701796113997138256383270449154114281702259534921041881611762044361452179792480686293963041618182343931979963615605873966328597968329367927025714323448264115730069591019564055483030313114021478802748687205267056072187104371023234140135522746495626983394627303810701588251329731024692605387532377938907014742708064664797385037160187340500705576939197779514295107047021242702817288188286177904856978574700082328301297895076678281390197194376270754832380576116879466841614029690610343046433098354803067338925746755514454358343611104802048276644945791528263775257076221912886484476988998647741219977783700763944876804362198315441943271410968225158758027597412787698190550317937460276582888061899307520921611387255622360990804201297152250549541374993554268242286169230233011385532340331859483103519582316399064322509402463727718986753475757776720102607293343937867663261311550751067509674267516894183597445050223122000265885720713438698452094383229888314924896485071946807339120920613938294968040413944025775684097355272719405810768424082625558634397772659994088740001034573714435401323513255579440306426248351058164716884258336114597825411418558663094888117347716145704335720489196106597809192073513570771174390157567255373611803264913654027504615078075108263063802600442850005468031766515843893677260286457362617713082309106478970930395716362891800376433609360562637911615933762625384869607455963730493188787121382687406590822413375074370732538002984520296536662413907979846625169206890523335400523186680562788071634414531023789429650355321268581724342337028028843598529850617848567499710689174436751994039306262021795078462271320835309503483673670733550216693403694973380622911861144499096129302470766616386165086637784581929203603503080006604359189246356467771808851911059807833995794974618086237142498816168838808812207249265127978389687646132873051029163434580529269980569112567948773657076267814952416930505556884734244676166066945387690369059734304521561720484254796249313381579479536161331389850066916207867219673261455227339719926396026686387056702013751251890954416633579810904109925790029699715693112930367779484999878265707673334707698179957735377592490154516345399277589920028138456773865351452726183973842312325789112309550450922434259764491073771922165250862079511163924432436845849217981049088902221245977376306834962455842119530189423984689999484473582216838511792987758989876225094106051563071951215448095147975944007169167244149817917244370493720405486159221050326064102632707294987052582226504159029287075960887285375909853690790758462429045781411369182497633301040744953472733330162567529789083610438928312936171692251234201133818560853404711898843778916888017999992591592756896161158522197186514922211932639359679255657960547925545069670546803339944278304211210699013191787234314999664212656358051179172500251147527909361033297871154115579363336197590294201992459119969917160759020401299213745994207056340331747296294003512518732546384684401163898056859094004520159789523268198110473608645279270882231504060219134340554296085468323533045808145005819629259955531504940755572399023927156386824140141683684499881310754369168444716322006352898143024984616248101923615719620921757652994247678054497078610229414874717636372429282963196897976231106561894604815121770256063648230267451425004328907536278074129502416186927395082674206617547993609142673046871723127422257810543297947218606782891632016972599895043309782229867606723051135826070326250938943176365582289223889722473397337006194899577540275779056968618608436474515894104186339954592188727076793294249989151978493515513271736025576834508544847065366282193071165166101553581094556906218492031280444082468546130600425406900488659312411486957627760044295058264342134245384368346402943025204645930083802329158722696140946350581028492040652432272160986490778670298239511217274717642446537108670209073690231656181940485654336495320870126442294634697199584554033952734382590407314313600597175962686494059856909205621792522553441731820013491044834397785205061162902040094916174409940671001016858979183256896092471498507243774282345814433521991605266181650230468328567824881919092362818605469789552957462081524984908441221943674196557033063414364703980971274882916697308497857680219771558635087062580656734314438730442761285268767942229283947788540425907456178907908500695793406515043827085661199348359778177781515501099055315425667431149362676495545228075735402133413630271349866438130528478060872123438549875814970696382274427394475419811527331258411116271677411235731785436694962958925307669475736122970584901726703323529641786647698718368684737217726884915084037889385661772177496398019457009005643950701094101434183604253660334485465071557714926770855431139468250393072119522278356294248312353480855829277403337146831301034846936803281473506906440687623407717496939599593036691736376352865785442579134257980332114369489283724091888307586213096102228106408740167685237063857005004915379385820679441489752994548126177701526899444500929037421297695160412972190285284681700807211863794972262218282475914110685064908171418848696321037249082279548339351698424688236541385764794381035509612620884108244273738652381353771993641065867325859575060580563803869897590961508831809483493779124428229401578905838182385730314118438560445882791847522454568702318142348972876882289028697888845525511641804821610200320079317535902345028929276133678292744047802596650512021435844307936323528631705416662652282602915621620565367109553018687206489135238275932567448918518356020873644168514753678974625222747022750442318748226725249346673718876933872018221149775225095067196062285195420726805622199081362467548945777499160260869935824365529866786523500159852635875824415188045640603554194930437425368061393106150177236714638737099618176423226340185284273254207953367343430319505028019968332221235388059625005130700712405077875968599469700645238976326183281368155833023082606170292072865617622271595360969190155845373463316540075735578236128873747135016541199965480666271505715834833244769902983441385840170028757908748820251372851744934831568447077721131166625927477257074321635450363136674599410150151813354474553867801128003422965704170362891447300329660661714990168883189043345478989324690159389099206202031993885305123839287330512252503899639551701573468424215518085414868171425707183368133349016899573104290624564509812573385620021676170780370258170981498011559612128177327698208609942899941502598433621253759411409167014405652479729020414915661221051795983546616272821219002967978461233186151597632652059656488241407327955092063193511113398900645264888707958165232138016020266496053063406645694671147846825908769303214318572587326693143478232093514759493682360938669658041097988607588969357711207609486059986143809905842247579779024578409555701874537663172874865016150164437726827698497998106321014486886859822386921193291653098712532445083531745811192234371981642124369546168659285545095482264639696479672009803129537979642821947634386555223849672829880466716355441365974774639034477391463846200408692051888062211319021197859730253759335625583802465867618843128288397298554091938745456010921191769703622264812048514793648149211688264944865588032041307729631838180901531471507549819936500172448309072161053779515685245987994919113095000038074860113829565736145074247018745138429166301565376878401965774758153533326934675483493927936612712167553977995947615045820638829764395450258331885764412463040814462083524812848715662834171340717081788563002010626221494744238420347354050734051652735250128033413982114731799060112344879105496601102260035594331285611199111751509573030763088973673012265294339958653831651673857017374461699792660431393678874668961202285582889013307663867693516311637630372556867701312149730537224688153807758866348635423717089225332293141651260838122908926289092311907634504321558466984237017999463806713358270785034360162174376987642755205185650135358719918747814923303928881412049808226658825013354086378259034683685140629531390525145845692126623625629103898676411692937858337211341581246872479542703949542842114109164593244558600287988047561465315273294821763470685539030504899310610802136577331662082040750529380003652629705435284470011977153338458777477630351936648383852323954429310992492520733002035744583818187985845879193271512926448256788905661766244525264765619167700748716060807567024516315209399165622393997436874769244924780754917067286451617211468061009674966366229485514176672977299865693105535822949159346312380810678066693139466902444406700447740681319222452561997321822190674463151403683995398093768214589685548521528369136330531510155684935391074213101172866336006831506853435283272874841281800673192030922906164915079840091866562991546675473369965984122548768240198764300382750889234455500963933149054185497613815312254354663199862172379899525040420369163130665436309937766354440240248483900288362141773637125164765619197253714773029754557549353801605383316196174807287135539940799456963650539886382325746653362439359722334795978986161961226372666725354007886868925232726408302456052573913862582808316692106168235784529486765001889460751293669635417710023231049996389466045822366641865040837461889715311969397313294169199741802040255688052291386616208221361754387080920336914295677676439431672042388981853703230495634432685614322632578168622572146092893502346378580123164448556048013504105031646375655742784841797259257726735723718846572409415358243310259539747191973650738214716276069147514435871095716657551637425636612079267283045168188850986958957250962467053164572026701793808576795049874189566485316206496862900135481703367024142583805480293252722913905658512009696669951120619235352052315371876219838216229369460064866377195109104228801503317422974211941431464117710546480302167982586535508169714115445818209366959264868947815484637580210707894248796527007469931270950703677388961313837690673859158894711322313684565446066585260241738647047958989476949392656254057800770341778630382629425806783720389004252019157383909688142549184830745126778522462411089913939332672845210603365466188279815375912025722147278146187125153679706924435596625465072475545316105692063995297156058127476111024747370473679137118135782785612090729201410257860821984970628825440831491429203407462581560826446229651364212033584117516294623294449363450771091220727308079688534302912491421290804750950112138836311926210684070212248421202806039267491352141287564507112266639267120530263602510842488280789471025520822513478162626177166231615850270440001047226524653122273298184194018976506838828877474991559533996975901814366692591927819511606627999263538364888133930906679854212142905322187859866401266616783970117234272034189305078375332069719781557683313715440680881606688131486571677762042769309690984675150307639271489386554976724725479719227997450190734004425695353784890152202404447545439167451865934749915873792885653366750654206541277902377586965335467687690111248663973787957922259315911579702868218485354995373170953288562471374113160138561265713325600167202823199860012548766412391095776849266835787588635317952762819515853506558809460682329081032510169568796959967545361553194203063124952245832903813978538847615284641351958194452850209623402086195278203816466140506134857014422292234490728234767940521519386626549815917385823560233570907669086350779801196836025964418132321652791943040578296571951666650028968514843928157439889982554531635190888130038490387163611497814007121772646977128927232299013728144162950089908352444053583175080115365811353204386989995432953315025449580818106532017975362974178494827660547566935377545266524314308808266353954975900008535590053877853002983572293534163047265925194248558816760990255254121331227222673663391103801942875942589788970880567990600667111204895303464576676764247002342160687106974837276782640691171349686676306942339422175760353938497006192518463794738355417461346375005569789095618311747899580908864966589607676085378804636244346731968773472529554221005256926513485015207443572556273093896552689306593021215317976813927017243587778632138554423556553160389028762397174548685674784586137412320106898099112580661025963115140262495122799319774560171436916653423454667342393407711531440466128295863992132377322763096600115459316874274067570647167649987495451056475618460444041223239126686463598979013541631134240680381666424831793064166981085448739262291943171884710984294896777781525787975239812475792774618769215221096765509273772981400290778745128206267172917315476406865303988379867459676504228042399206047829301965331473237036447789467734631634120167591230788520251245628300656303966712440618616666469088873090926452445088460249242923538775869105614671505741017154420255775625848134204895747434220804232891098357427565727583214512401745475752971600852104847865564071781811139699007245870458011162902266707427025157245400592045068696344832089433841219873320948048834231054935432745392822605599543327416531163540924861539241948767001723106566909806938350037403693831264869079655820297190663886194602475176604253363927140529307647453153921240297849419344298115875484162038427433072603153631514287633246871769859478213844262250043312523785732569205363342053437337843511125807777958955052447034824144020786859380498072439932174984490631846343954329386904302144931462234951767072671571121023473817843743403524654861692075006657565641668143556141176385447804358153942792999375578654373902509900502391551574911388129497975842596840362657707568891586869023420850676117214315415680190702820028872833796471723355388235602836225816693184434125949621390750508519216740389718357024050716035569596541340676235064426776615560150842365868229017300897594868923542269399115722627243058597461190601450401701003980721508750573568656140052046176388248536300560700243981922393894939994496673064958848276739886209425114540414746742920321114593618700921414088555156583478155474880867478792895462682819511181761518255342157932159535815384533917414756181958754202855846702844803619676313239711872148254306456436860862970032845679191613463782035252043622404484088009672151813057049217848389784303933583977176318151433675259144701390969020450388572615026809565326612541517492693255696796078582329562581429957469181197064943703914510873404966818181196973038949041546924171712605420498004036731039108936480742569292691871815081419546350077254009422350792515163535925058214041211927118188080182771656976700112537039244658138139327638762788650839391062683974559222764562489643707593259405421182835121016564482915647135021807717541227787696675730217989011566395551078256741173592055374772172485392806439247154999103907524652108411402464741838067438028148039274856986636500527109607655041250241256921175462315380924034495223177256693566403689892621381177056916856365148056959463805921617745022907012202568521452580813030861396348241595805064967033117694359927000112445964996296462291226647498448627319730569977568086468299313910525781986243634462787308905702447292673527710241098253436431090639276645922257241301716863017846741568537685259168572584470689635991124082116166199422751757248462093395522537014770382142339516445742136091945534199434919781928953134585926784231647269535414554203470421851044756851359310111402592969819364318945865054856495251869975781780664985358458955857127392633740397983936633814855753025112901757098585496577365363261468027934352236541841566756193407030401426866350325873442112308622769466021675309694711004887819872474847493897897256239701159846254838003014719802228433497238793585725554745240193667868581014199667115396701713666752081508557719827913179829528335575921003649503150364465409931383978980715077359735570484099142750952070915148272507808889831712959387611316204421295001774135636415833635562330437750975325466948047007324997614192730198389254769991015533416868336514839111629594854546667264402380622155077944922092582166204698344188057535483040922504263505619299184679049599106902455094519652451117438188077830973889787811803029798194916968130628209247850229341816405223239195775182987381078500064831833386478072405931513904404366639420536142258688745992186069370063105100717836836201753940854150262360944970181921833135887461542102648683029414895983421905793779032459419048467307324535077598259931241663152700627479731326013195157885886326861477236236010422841198880153933958507542778159591335504589202105310107979956645543300335575117041878063736540020266629167401263091111816884358597359095620448703457683412971500379262494359700069606283272382765231878396982333733871897475628944899903245002270520007167051737660328676062349268208806110029588019582778242311721741436788413928269801548432924688446028321453834010136460594556631050144994252164571362591208301237689019632608059054859095223657674197564667561273609051538658815269577287659045745984185243801420827812316700436334996888515770636012059721657163173630592627615927603861038813059403827923892079772445997667118804194392380359295479277787110525416150964975851247629058997576741513591821546780628620081927217991922708270213608724401709209643240381963886156516127197998839134458868480509636266011944855050248602067321378083302989554028876269154183741286366673509243063880948072342679509252329795203727880417666449566751885168073361228127425747997280953428458720969012180834901994235527934912397796627787745922213701183249189022317653809589855105674698211651449291766225704616410159389561721313719636119942684376045275419306529072091434197557076663830802950522877988019584065986663383723283050750755465200329026171356809587110268806623591106530565437716003796280325031774569754539972907866988540442825750144852485697653530191728780112933810588833929213141353639253031928930461383709258953511092493970193586362477667048290604528936648731313765535846222860245519037766222579491243246777561410648272093872906824606963571823017072870797204703744055010039952155634024001447905739977886063850493336189964872662674080882143592001755840143471417546398855998751626491810610678503667748409054671947052227860197571006757773965291241088123884433870514708559186535733505229782418832322669896918463607079742869893456931754876120856958337378250541881538396818523556464750991166420015996473691116198808922192608107779687234888151763476627372149324508319368080394291256549373763773475150627541734066940797137525467108624096810785611267067573848674662441439523633001136663950931181804634233613126483345016636629756690026399187202207157051518065655286794894957560819239296587846506656275127714419021336856980497681028585314284343062285670396304407068933174378024958615676274775180895109598930067933573395763417931565742737583328523763474044706056261310038107331541258114582439461811390149480371070098781188775166038958175193011825855975243962680317238941801597958511521204762324912937211941146619812701515583000207943876553328106644669922082874393589179216257620266641927503292575669189888463208465255842354076778432854268426198731274456264160238123417265793463430107694613453197297844313626167567721827609691894596506776921972218389629445950894450111560205366591285959437059733341434265133503970515110264373680979195825723464570942061770991381563680380187449266464149870818424396394693900007920245721518237725519832434268602831588082275291957202737958245712273064270177572173488004668338103060680222598548725869243367472930570040770383465793200085389159437863433348122276034426763071076613435440157891820988724561509681769701818138216685634688364326576252934871848948233274089458137214157625652380385784815688045410902208127982575013337876944322241648577128568275032785407763455121803176673395249341889663459078401340904815982985237823428386296972073108187356002183488218598169883776418515495305005410031933029647123421485437412682389392186211435664498839142177752112754946313489089514735622686251113019274564660994826568983495828734940588817839073339085464984130871658537498194127229841393212174681964156675362310552901761448281648857234890730139388220994746389175749251614589932825418510235142387440970782179488236868096799969345179619469454742684614186769853124909642793365290130769741294908832465179717112104845133486710697133952936483120567928377996783674206824702787069502357777976834563284435264994961643252274665451497988525614034436443341837989118141231795915854653760712467894819307853717224382579605244319752833365935503470886911475555174411587234300543533931240920366136139692319823756769627651654335330589940920079447790243962780220989250875498712291740940856856094472101104558394064959734931039617990743765803530314792206505467685835637931423576118847200863923550884541453476832479407136047216599983692781454378429783321243031773562932790393366411303538865427791608518835306778358601331937155361570533253630189243502503717071522556530794079385948236229943163850365556296906474557945634006860209265549775998403349665874145945250835540480012896621594880362417012623428556529855652686606231994606534698925146356852285421385332959067096845001981306240265623799083169370799683581602552008110663483448602873112608118817527176517781467245953898455886539280413293269789608211325736541194585159855033089474353791804891829620731531789558172269999514324536903094177933541544614350608378942674878900143200106756799353425074020858776619700406112547402330182643362185873607401679525506338892209457002893187135657204854673672633175487326516266179511772658260742049214246458273149472802136121848746213051756885757690396134314223726234050969255935288527183923879992970269423701761917643910587088121185600216275010775367702054420153015261040269682944268069713803952500216443785335222165393579539880799695233573108068095190268773641937530662145831539594972078906685424887230017598447092069009794898610182812755749818782387628782723212094590583987764587729840309907609231906594200361967740916460743896721279758482828121734098191144456004058845457284117725063999323223347294705366045073432798161558805163917751682970827715581852438026581441090857498851007379825548742701937324937488514791017215952971739701848991078572831447686684691919141806455781795297345277242563536485267794809030088466774238638210636354689748469530285425316403350133003984626397486977696353045311476828137317480504470869000380297665182889968510846399016989986103833362668600549670483611014167405228166209404027247645191434158861308817683667553224021446875662652162309078942795338169679485566713926755469775948311447723646498856680676779119682376236851003305008420410231792725232296575838025229593518704705499942602571271588100175986739538567688050189605859296859800608484788872058421268963798106630896188023196963273746352428143560368186369681940732881596657156596161606225164024939101218192450113712267173207121299468940481739478526206119752698533028336026464642133443761025622318269979241833609635181480198868664211041446090472190268491750465021579004188971261264248763039508391351928284038277272716148890861636282478040617287199364598861224460351241495069290324283289359151010192703694280713833427898483250957974338325958983187297188281856377649632563374299366978090069353201658980561718021638419676668050858329475751284410725661010463476040700097476978445378441073475516559736304149538830957798837634239709613806067888133567018453655779333403940583730525526130322566610843394443270698804781505664755289729687419953922124008707040480000375668460620684728585437866844007460864779361074327200034899421148716805608715473361796062318206287600571310205646984357850777243213957141902187342035359897200492081094517614499223043881339658431197993559320510310427648667689485775362644807858704191493470343382188775532239663087342434073806637592880358184220045904555029843820677717633237943718160635827538964496350493855054873421740482230176677850649062104527223506316122041903299367343853104266850047510431048702752393601639628943774818433782717705889105645173603276173156514979204129648303937844408332555248547373925773076800063246663571910887756602067521311203073741963615871159548192913026396480837504875962889921533086742708505855995242766507636498687618585976403524445886880269427587926206299287435030497667344473013995177760018203539826752569949454753999959857006349563004748731711650103778773613446812681590716682157744645152109185997612843424953682393395014317817504875205971047051280866233923426925727425293113699954781780773617427506717213249912026860568264336055273426685778645858277750159448442643842253366249215135639679103367303781567214208518062998193381283776344306672078352637474036933481477081267484203583307986226671638644678705276691140240217323186511899272743183269855329863822673184007916606732999549395887905108930514559820967706809510390287028115520271346043223699600717487318574183419997831284238901544871748350690617154674957587217607086868671428503506441676786855398114026225688670036692991131561251191734728254832761799515653954602836009244429456920645380659547471273397671774813303977142243116225391160456948734241350075775597956056442683494816402396770410641179255219692524814698692963911553555748345886833744998385304604752304324072324889752384773732095500938364475579470342243063460188146271976550640972439866094392552958998749777871525177531298978026878158672659891444474647476624063729156940545294528747126481129769410981848665497599759861234396580956237111064898237929064197504618576412926132300034058878734259855277108468479285281056335759917265796484988912179809925328990766967654966103918729640798765448566329675311882708384795531004098191584207226976993634528745101980107217024164382734087933812508089225691019303653940924069724076707027308980349699273436833900777996910451757607275699436437759908697897646864292057085759624238869247790208801207187755444616369716650097332682809329796762908811393380503428360077543191970253382199109712174966869935434402949730363862203798008653598972866071848198373251941082617742001632755698535140425325356271255478251571656741635016572298604418786500860291389361799214910752260807870066164241275626735896628228249445216887852655985135382128872804282535876807743693291348416469520153934617661777325982383189499365422936202034820388922981323679538740554727662519238888982046430121949099279810310392921368935419384249389082448327848114063976621524514323778622087855969867006406064795893286152687598201188753318819078074690305433038517517283882200534845088405259647628107881844035318167537026669034209455960364571143920182631787495716685360245977518334754932717202855984282444779019095896781664458192606498147722053413413951260838560954339322631364248348049582160386927439646836979001121563877635965828138362010891791131148124432181778225569566874968162622330399164367390752919983670322571932541846590721289850476299940106893337871963935038513201957733758343362325441756433315298935056028800228927964053110649031711876626614547561920147447374107074111546571696131491016965400687437699595013132995138694279632542944163848151266582214036485736385841548708667837612125086371451050488032558617773866616565915268746141099474693116652531181447485059107894405054591885226009168430465015470257784563185629382532907422024075669164610421638755486083751732382277859417700478020926958428176900857881306544400230403229185184976741975451367719262308873627603940997254452261776896847559550584926198011665384374094954457414086167767971906629513648780762671584035776660191253041152269109360470771842472774531597620708795871944673003575456085371077349260223787524733751883464391903616431168130478187716817713316493014387755014790244785209051804952364254057144716329231031850610642065322384825471780066717984628560346505909910989941119586480835094182787883348513067740433499284254681654236059944817543984675966600968378204826017474869084306173341325221418574664565721233337786371419013048446497341848277090306275915994237487811848483020721309683596012090463160982305473380613911965348168773417610296755988880764024961030220980499091928242268400967467252887026471925595281159884622659152761741440881800925431907837214555634933546996145484336965219043960504721572722383167229556056827055201427906633161172212779405696649431415832530972264628244476574103088483980653955731501260879183424000786687702108979289837422878049862371915329715051963313228028684441625729903508486431935473009296727852352396854696010197938707750864392991730484810174070022196982735181516281275247250503240192020604831066595462563285079906789353833077114120566979950148774279435199357981586878914786168531669323588059585983692141814618148582516556855617732216339746723336767112761471369895959101558975075402596812426927126914820655219025101498032863995467781597459444780625142679400358713320988532377052430436394145136625854662279678450060675478478540307544921518494142816165126407133858105577720005351899345501490176155381459321574297515320777940028119339646641725230824953163188638571637386387760449089793438631791739205995573643432433230957329857816273142588099630564444805912247931269098325031312050623217592078049196866354885227998601680172007745483674966841170378226773564299453767039916659618605903628139675799723964412006871907506708086563910829667129305347189321121927230215919718419286998116320562302379541139944234786606604157844182856064131790605824659371186653032638776298201866608637320765273736525584395213730458400155857806195926492703630600783509137400991272977918687119148908246320857282670566289204434287399016598714120655161784499975809575907890467393704116284289692758748937715226571853154071028190933832881223834250352648636892897876154355151335882666111862471078400642286449533562116048202313499336683633801802500771822694187542246676376626347352991862905873135760579666660154626963220948106385089051585163326926888868974856270626557390947713646748589501206738543499442339648509463544682180500813779278934240251400933868154452961035754473991669571087465577237137232080847842555185063421348009908029062495447803033445540847626394047846539983934599976703062934918064922269554245399097553517192564368062705632317223005940108373785435140583893132682528892012708900778765672990824133646190822069437671708712440473231193623647888837338592466381275984687419565807669019359288903901037156358871458809292974649151842547448599717783473936233890189104550267056811307732726515752829927133203453574050238828293322308500885390090471918305300648056980195442309228093739462747405856032910671061786613919025651144267795046191984886723087322873647881191089848585943343077840611029654843399807969786317596612751918419486388042755246525965522859470112137688323574714698246596264910199883064544353884892579491233668031800984187401058997773517652235984762329280500712981253705629175653997638408688576140617399571092107411408918328346642968425553161771771233206367880601758317050362995534111088496474507792992964340492219090806795827520366158214613705436110843491287701303130092025558515429106172980528465632008296296552332042835318038807561551724005518099950603446539216007002539640081663570059267657933816191792580218438157543760285248717987588491624277222879972652669641180530359733108707445073664927775142975522439157858239388872228513889381248033145605563554981812373571214194161058484097321291960326401380358254796339424784893372680916168258233858321668214295567102136795779424264770487106059579549526181275478487472607169963653848544334654063093941414673224175904984069124570702861605540381281475101389829401997690279792359887388728632725447330915815722535755705496778852715395282472879380804183600357386130663689349131986613921341696887092256747438647627458671217404231700500885796421983995006204912434482107707933316972869496222984021855382769652846908814772176215072653723002082947418347351588985604020811532436315021093708613906939540824141050739722720573493840328762902197283430254760877671020663625111459719834095447447078130243063092805602561472772066289710477944593095481928346643295347826452937569888695597361076611318217629951007638029825973502731823724272962751835104038714845723979438598652939478796375132282493767290930281434758627572690263572075959782781387259878305243605679740817301594386137502253041041748574617593127780460735631043973760010892562198811280270964046555904286747759931799741907775670531766642801961878853362368372065136493957011436109288060382270812419067605340553186705551135518861522994985334390818476314446362599065307413401450149907925958105305974916394448447249081497996404219074609400272791119195521397827638791148528392451558295660736707790207964076020430591041873726605375704528931278196781233560210266078849559839277687156913017340032790015430672573904868083480619580943260289916614559364151542607056495230401197357862096700653839154286285641396100994346135687855911602683671501674589978814115012403745484239135998738683281163361693415393401547586914358512199818608219498174404657720488268714400132470370533804049382264972391634094867687119783107447386678395574753161636158717845398135037426333866685873693480768123011564872692349969672189254156105263530495230895000948042317545286567035631134139385459813315825077365054404921028851142194149448799425370507238154382938722176433061420773861678590501261299448605402422800910011203476194252671151803926137169922320292193851209252044490572742936271125479354379627537387430734212395496513586296345047123995784879284811418359137572986599448815134261048314981202850317058245652474294149109071728622515894655636701001700678265083701669197269700559648844676711894544538084383626701808897436673729397110434823339047748276918006025396691345663387127441586409855228126882402427865113473003950322484981942091223329875926046071540190720633203936928754443706509226481691624972164511109621746422554246677953378835951042693114094107061754672709011573624262510658945467751378794556237013683128505687853258894604556652602479759579360670399379468224668030146784745476954140743396587338585503043821320772480526697997835094029698943233013744610865889151277802238494037404002258453945389464203990387540941955737971145510776227775352682012041778622543112816170054215125969723630251867599210226699482649339846811209445745104545574057015272558524938858779247497046467180648215016032957019409033468951567295594538184450114361476732204324039942546217931548328234967180818234114663925464593596895635177323727056959205403130284028916213547710122213216709163641087577233806285514010746592192042766375090711741499419719473247480363174350305690571239568078253180136054092630475988862888764071880444766398081432587612098406524947091408804544999977289170595034495877302612758986016226033483858237611114203951693722499467415043152326478947950728416913695870717735857342892430051653734611010120789604420883568220773288659111367169314126178940282469314791550050166593021498299474662587060373852310239660044502467547118102343435775778442522277511411009826429678985614065958210897367340329613829290727236158331646644627220826552968452027734721758210687629778932810890652652034233366813761816357291643338652025783663464894699058426416002510356663285653334696614749335992194961170211687224508777369773214258506491799037561168631029700179225971026771912532701412994814179622419083354347397031919911487114619545083428057611588172342019987708224141952630935940999051587204288140787592847034925428372210536644606700793919478254902850086579576443379563760298268635416362625934430712592022862142960525391763504364491054085025931175188506268227876479601329862129311608657349352677251887444214638451738663592746910543843967821562147097039850649489364767229185635628782239140578806778329202635989125228327774637299300704964711697111940807641915261621252023103959689547782001154453268536037429820991844006718711325469165885679612754815424300405024623790790383974374102624471425605456919141499909234834547621640224459662798307604485315434581684481771486722257794401532350281693433562354969620058324493055082612305233382549025082828100445453280028295598868279747098742707323575041234698987705771732410559674046251065961720008933082994895918342998130853696745972493945215662618572783345452923597909671089731440828649300523164871534310073710574249918432161191834774339629015723506959115962817827994647948059376678589726477360025693442999285559354297560482264925165105526238639223165752973819168258139894885364408508370797309546977704079016642036216514597480922325594265055573183896235496851241150555284444989986537280539926435963268501125540744126813502843207519758485763046476328578205442617692814397390687164855010045446681043279819628673696673611328544889498533249526134884356640514032817958394151157866379656446986009148662485504723740139568013988380899138154847264099893364071436785276194933890268091076633086686499795718056591301033746035968594274064072552345131833975740612164087487150845164344701928341014216945864426940494659406210293190671232251366509814433870146593848510096107815760947586730615143226584892182252586404568630645718271548985119940757339312132886204598492619058980341984503588498481990641065005092079823478846948477454370466177729645904095488619520059505232029058530565375194943023560276143094524399603273088851804412566392122748322268530723475448969934136981662701414266178765176262059349164414734563450937476402845710379646181764216708232280975368734980972328408146789094955999161260836158473279414335926163500343962075777046862706720513428347673048181091143582548419537770286726894045030597771563676182517299163248040983565433648975509440013585860170198757484637347606896683371836759711894426817364334879676456330065383186070209516332367505541758771816473203979493897280103818358140772795177360853576980969544280132361112847848538623658630711639332702903585515565775138407364688547879681597664684155086764071299483598929998907076025607975851114502824145409446560733416428691962235053377121956366504600137891482642603337307562622043778357839396811893193489976333797691055290876852645202590920108716123714723668408285681629706943355596122365853849343135539532140708739457418966989353816847095084821825743955873580421169102981374996448790435734222402749190555881115433632043794168469025213974205321490592353977560162109303680544829903663938479768986265249486082036445723138642433475576450002048350062236837217525245030336319565946269073738026299096813659666710967298321262782350015669134716437961982596405607332497233988930704437346175446883442539084209983862146638166615612837789317772850672836069516126271210559244915924719876019705976651142206948510584634942911585593609474276156731541847103553828106822042810223129034978815430926157390627651063734110485078170866011526498900843008344267517456999134423014738470107983495666685307598903648067605285163285129185428024243107859436536994131683897699064275869101798395550288715766094144115142621369831158425882795840969369165115416078986451529058178586156045011107301586798757770679478079625166027646415095221096582066415998487300246163672834895976373873034301046397282041901737159002155077706321752988644900962583479261441033210576467317937724393636324442125428606264116180241277397714454575412065459263360046373601450801485602895538412955387250494097004893513569580148168779752549134369842309621690449279022879231421409060792815106314252805453308072097417603305141216135260146871361102513583366423796789639531215104486898761729741025393065550657926416081646578154228505331042834437197378065682695125576252192596719415777702132218162230157992416925042408376433897457751591944176871741835159062105943259361622931591105187690773683106067240815402321624763346734332074543407286880678579242875639510537275645398201646607740809395509866746770048321815356707896718789763680208100167967123180504164387909217795944258392066572065788870010236591757706781507674967503764179583698082122532212502092611478972861629138297991798070667706899286460224151396216573748511412518274967812187085561564907768065469527449108516586974242631815532180396590113629906344428765985739269394106498793519286563962586257113520515192450737445061566615824592832304415474235711524603623592558689211637954258945453299543598589204566269465472325855824160740296974720872405080917894274516763668189750580867002966210738260034573348937781733027154768304720913907483722124966824911780916820514483575930351713696181433904425281856213927201778628062185304854219667671977392403255510771966929288895465085905444258268956682829897378643724550294774439693051314942522020875886272966823016719662948496607407437836050449252604251900339451189634303409829857151221371073957275092897082387354120589339985690502556173411768985355517603331070770678184827801563851355345848743813530067058975631769663486713132836344864119618371291741371038962677491456060327836603520255270319108691229655543449587106606264535242117481444611244458532756179377991073174627425848860320460578738780669895829450292128045268168144770268322964836144347452527483264472284836026883509908722985928874368526646367124878610641572285012517145462834060824560165269498204067753727983439614715795478774018335291118775036494867423415615990228782081345417810487710584177587022817124884093691113043686578231268459078313688438155523796979017370765722676988242749698503575389040775083079898216946606375774297949190150504466121911562017061914229487815677144344150536812518622505058235191921705727519191941523324023298060333878607636815752124332760157395707951263902361852565106987821424653013823401418643451739505282713066775822095246691712217019335382815028276936370296472192323621200247674062570979860252623801815794425696001645975963844019234277670048449477781933899562522831598170913247268832158466259574390603839587311322223530047449007920663805278507496880080906384542755926766176660870761874598295786941142547184523587159168278112718305176131177663082310411856586262835418149055277600963127582770528415638962317212972883927004955846913648789751813929281519890582358158789123586511126610577562675816085702653570415288703339766028637266684426770260494668915780027530013523619146115828180256432910004610471450093334949132635416401595486853387197614728236399043050622726538479550356445104856909143871118819423787463333939982015064020277023681695673678129477940967088564560458127149826828595204269814227922607676237816430127691304856263532357005511855913776880140239947107371259557452872467618373570714566243823887206988616146120832554599908571158078161649353146221700609315824478305071489811076331937955072873529301367761239990356978944467130306757973123095409681989035120855132235999959494338435803677832330582812234337628175874203634724522942118093890324397204024360711676642657705712097607229845616657299467408483027341608071833474336635884105193719701502662357495614243254736281685330433604310484152557921541246149956444348986505456486843521836123649626175026213742990151383814751105678894657638390307858329009071665727910412299285009551294969898713368642405170006073547931961767318448710611524487173240166233716572109100077904046962135824257401635217304750152384127912555413828927622417365278227640345835067893646262228553996164753787511563371873211121112298071102781351353480171204008314243569629704525218254997167785765359674368620644129199088836631135160319573091388496921876396376930514409444795629862496879377547642528593760260676083629557431616385512006215034310120733051057581843862038233634836329500101200008317048560842473331955897823733569361984175150300858274610320546094816918170890991490932112172687735435724669028112902090623073435612271403650890433879449919522096334253543141217157195695025923098902127400901535974334493113641373336460112546976116559710967018405271785546896546111493010993492899445903248006652185235632977467398706542923914884974923954909496412970385895674172490714921367686687366713957786654433140451233821442289735597340411691467197647499773470330744433505379882269819960218920587413875099923843089066652464314330712447515363684103131680528536520295148295648291997207584759680520952858413669725819084354051025205151274395797470481216382896346057815659123589644517650203392772431219196546921921292129928443559167894843667281947189053944008610851098446694329461405343227970517461494195815521976716236427090867575103319661406895000628193150093279318013329740133136918779496391608372039733461771383384526565982420254621586784768688567109800853867200175221642250359501678193981423812012848461027707448935453169492142509828869390088168886652870197365506239241671082289803640001142897351788158060981897769706313790346835036528298130686426316517052525936557244258941812819726786562065834647451646187961191989656907589292447744719460861093003865018160565515821775324526648300147271869192987320034224821256278988702470629956624571799985232839535810682484377031458907320288096996040283034443270040229739204293822972934680920082576529960974756403927335147205943308267115331469280807795182980774557060637768283601954178943685554237283044781922620032492004613935924602212023526241915508189872385819855968723433759523531927348113091849795616779194755463589730704827134951969832178701916067925005009653651528555487849885449833634667186367071027385186079862477168902914738096406315585551954661317977653970906858206794627862350366287820502646791201438065882603495345988831951142694023783490858498664015379430464747294132218186721504119698672191831125846879999170084102068129392209816763812135016935404641660638573662939855721428622408666002011443037395599129892336818448260663967072136578686031618758490044521618052270380308484946925636999774406788275580410673873642802679012074000064603520973628737469996859966664116576321950309610610603905932109569324576747194882368891477849919459965630433594833676083418863785170579716964911215482198038289017517799462049180655404997951268870051598530228857276756427501119781710094373925628381604075589193746851537547865557757754113603429520785704105124594769377987937742060321830338555491116319199204072954725842393233115329533219399830691371738686314302503308162198616246556678468618641137721626148046140476576824825024712906055634582073053397320185607140612041578403052501718331672232732409680361063088443502463705628673561039663664305367219157184905341364233152496977602747120983199848336385859982657385325438876557264944555350395607086395615756891482976261751534075462473228632244495875138699923006221132134117456132644289126880896012109414808362422931683212623212546004074502076415494849069064049989863028721192347461696920512273740216317816799599037188550048661708686101738179496848951409012491896905338887378385053949724634031168224182477544741019514677499356125955645221394215461576869943706194212274691415790148662952093335533305561248027340689198124597299618092667103052167130355937846058709020537879044725354315063981208970904726878448171765962657354756664993702076285428987054516953277625969357470082928349731129093344486898562801665166355794280725828219702068565819426636651371278288553684724052699480878209710602111902542349251554695764260853142797967843649055132456820205898237433396294645004023360688506516433628195269752378081849216199097014243887663632614150430998797514056458022734689264815622389824816841298951689185896789033177549337042586793284545638265296969927144410897364230184544800927999186575252150178360744761779530265665976477949559080715108713918008202151133390967146217281925004133776913199834278467214848028949698978327394385443410926591844954810307424746069903331353699723127276392840031716185217113386139070851229409211178847866221030550635045073741874669231232152103508023247010432471100618940341264130910355970608031294622722994346876601449192754576333999135431093507690591524538153454288266884086612637059487625717434722235389727122580842938806731812137619166849627014916077347914874758933265185820779417841645551132444130687845355087484440337541011309674783050557656227062324234661645306087068111171166307316132255888147362035907444018546757849174401584146611312444137974851734869277276888431669264099686415537799708723671973373732425352633279644328307800278779587891895226518117281951883332741578897699545247168302343621737639615262922998707624224970629607114274088323490410891489173138068109315864213096544138084001655455186297834690009479725788928135799403084299892226479705486826838490904132323279800076271171920938410059189193430211493407300909367023649847806647843335936228567185143927167079723831294937350551340045642270221925359439756000977228417432812351664782452231379277003152936422632509315099741997934900113539299436106489382384624621218944572804930711961093373417203724842942140868546148266255955485423241113473262759433760374662446984398122811038317719567421982518369385134610697036640426574805953510565480956633644060942647189998759473315000065700398936501202431909782508327276510473141466188329643302573851114493670288167297629362864191440219889159273633726839782392203560843347373364124083978256633300709118819328596360825541871884155783787340644662141788831173186423434979117682723911685767046654998833224561158260058686698100804717330409258914463547010148899527740592063968650096166588841147086378544499007582067846552239403912170705872586515844010943064094543561251653595103061982744857546084828618875242148644625304743046603603791744842241241101824949624200212713197147086038472066663949309022868937917550274932327608037446550949988216127099615116302308446551997911808673142040706500877590717555543545105138207997477174825717037529273268835746842345575458410522807640291363528740573041026096237868599339774568719529779559351927118281615318198751955988944706280929531584594124121281201102190139956115236348494414951707387008594828228744375219305096391901590781838026109070223802867179715304570960477030390050918766721944976950352285763560769200318818997387577810240845629165609568853645775993247311977580671670520750804558971563662992030644370818571668050657656791817643566411327236183446970768872043674757021222933493811522647537874702038724344456370911249843048257964324803546499800304422069197412767704789206835423812753368718752570673741987628091215252246213912527975964500859801327794124165950400351499337727144671039349132633220590032027217930220814073564025211112754026309270167603359105703825987640700853630940172749465584296019361363515749864224807292495280727860762570606094905832751690650990075836171016667587098410705368287593410425310023435218971120326140453403964141346980542732173561915421536173999298935203003533290554815980932788911551916549770090745099258589318150847106635421564797079613332130967007943291106022849212761233881144335795538489812504575147550681434604437803730237587729099222327910855566689464993675077277079530184845040977358153038671625294661304946140232747820472560687024316091147252305190977135780636571679508372167913275466440357717337960398184571938693806832616845290095703303248171670576018188868450022984385375194152548028971775696556976107692323286793871492569213382688585984162927271494071818936644127003647638423136480871190584284222044574115884698135729052468838442017265910709025931365847970657371551214905387044622526878685817213070652746073010263584881908585813206042523100169830548312986614448157737717856671647383884626973245588888354105843841264869607282880672208808833994755445273859704351315712139646290656727086444536227328182113050401942281720948789560864127825686062624314639175516440201827470691166599135635135775226509403866577639773896133304523067889409852667103330908967105732962178168728528846423861628595788042115385475448881161986515609910068829794998385516817819718236122070195203800581255994957084377689054054689613454013874302885521123069148092670211993763184793029536250290300608230167027007611567008079699574181465912486624937822034615711750623639035011146303084086338664805850805810801606479387613130790413684525153658362272564900877345645473113256314459269640894400021067319442155062418232554090149166948924529331966813846060775287926860920906591842971551469007842806053269884140135030749967232911817776665165056854877378027790702883191059933004536735960729409151197583050458710114950064513647657666317130069429267369810765627686452523124986069228171334578585854315269697694064387232193915767212773760754167124935397070569214965381202167458754652066246124910554263801551735780470235117750460673268974111640656699164339974657090068264371251989457492941424478003533815484987733718208353971763877699470988009667460879860947201385222727141304508944570591832094459438460898847933426122907395012767439986376245430189139032097065253035567716018274989265885646725662086621778721695573057069495499368447360056521287826586070186732296722148001761639469340666593681770295471577496948181038219739480603332036567785173800971696949845099836942336407915765533083598407093566690928876655225823628792333324763721662803476071912699108685334295154060448374111746860795044840950478985055745339056265141575767606937267162098931948169631376119753465612341594147525645291371090575385150727067515740956687418685578538887244926004964552418067598920532583842197881954943909971856719613172868860243012302301540568152485709665066818364524091539567605485721331209787869047068857812065243752080447701713487318429787183329775022836518527712754529726147491336185100844904302249704055841146043298577634303442367098566058500254425903475335569718208925509741508391177086233331227784007271508444009408601549361383187000591284177946734396427666320497496671049067401008023426650710355646432559604285100329935687462897044629771003576893793811878530072376438257745410349380134054361377239902388282027066496198872484571998782908920974266414547224340956096424814231334171357956636889929259073838119437153714605790469198523680849462531057403967110409363717267882069037552686720626542686285000043084175842056550720766006039716209225908014738386550170587715779936687404317497169602994799025381655328767122832131943361830389409138561957718521408983847123959948681868360898131041908222047871100530561673867986192629885482257423088043151355187527333087089073881950872074399673885550034661834912705090336980537859509291991692197566703858140014163615945763393125934857114882889575576504807307668809838008271952254504614769322521670359374945383619890213518287506122608817020605162429178280252475552336975037097260246152131104761770844658480272440628275098877262197418177137859555536330264467126344014418233046345669984426295343453011535433775984789700350000183620724736147006442871046547080994025401618244860725598976625851479875852528416769763701156700521232462028613333110074851337714847089168298332132866966448726637595509703758799731318888934991749278361672187390906953617914270701826962812776364554724924824430965779530712925051605914974114195345294358837554142759579030781709694535388019642629338221200987643594960976774457600775116016365098373932088965157061117473881140760918216665354625876921471251689847211424756656240195841762607365460938210222839645111366242231395952276608645492695337786731836855391722393015942011975469386923644236004770813771635047601731405962548334236839554471723673308580018485301886245368382922331241883215842560146974415611746570916498941928062664943372463724861607252436235396376961810505097163897879136674989848444989017287851745813196825623338450808570306583516355985302268841173569858812628346372465082772213999094094841391772271649421440303151361471237787551254036848897000885688427704684886557505764604908569878854519370977752218833900935078662236939908779520371751650633907179633249557785283788924010465235779910283968783614405915996352142069772914210520968278911116125289560666231502224022555890463991715264776002170387274141490915607299725094385598336822882144134181471807095452224089487347459354727438061627529038816834091001693356968291014984262456221382164031402197174738121755101859038472073167355909803827049229671531165442672772590133151380112372367005290533032362326239806249366821761500349345594934907069865738328089980034821896854853436292246419832954834137265682097514381777520344791200546122665707179868046721028034268147735143172628843490996008827599242734112664382055992018696648505543243686856173753819036505932509061359868238016387044751172469391303924250757741612144402183963747587801034337770169184431276975438714729729120530602214357690918456048256340059886823032762002315850297591321040691097324567875291132369239217265533498782294842749505312610600990486914786372620771995620048220540712299184350045442848817257397397372846632589969892562523710159062587914337383091354646321790611226349534253870595232530923569762266791848028598577484273786301588760469556740855344571500446818311142887753695533361215518438447021476616666722836114324931370058008673156673306592897251432583793258163761368726183628885404362407876187625576648487043861311780604013352059380024423541381210384828816364827404955151902519033454051320443224059700112044409683777713201279749923910151005929334045282885520440198031040498046356061440216988307552667166254373035909201306767066087657978960639569672657799634295814375950425487187333136887982155124190633982887965788551162146898228845487044936057417986920967368087795315105081958819771053554124552586362772783748936485714823108000488958042960210138210181766331417782912719256197397712042673719534890692331518303203317254178247718988901125766259967211872378271886031236844856290308986622526898840046580161189439403821785944792689766317031403385208765613406682702585135594730175237791353530538032665802838408858859776276298606202088798602754149480457029281326513677628045113111812388378288352619130697611780235770219573620351233748879634806984206547245535386092222839685486970983220150124710770432242839415276901294743628444821335974137171927374977761885758492880226344827137422993226730004779264364560886363020973509829977013906770756829559724828949642149715978290900319349116767280853219077215463889821162221347578242431214069906011750969297495992597258706204057949651440424927775493599085227386211559399129748574914321691365361273711147407200301792521270399726297650974122396994949955662174640484141082716392653964124590929211026556590228006175512738677802696087756314627453652220985337606109700914708597860811459135508367113475669272401957700299351866249441068553082178569860145166585971639547766221380089223375267233618594470104691731281796232022091806267050773870953899933509285175767997896489228764234759743514428770528184153829380915933623943404109204484286346669121646187052459307197691519040793456887840453114357226570300647516056657596112934379570827352125293404144822959947861261426795275896736883345295115222247297421191359614974245355542393409668136491669106410049046969169319396507380707233188786173784107765871903664740279170846589038777933753190036951337348622761478394113159652709958185582958012875992007187920408412915153487834984872828273151589535144757062488332918508017543373943166724190680406418787898614311565863794065190596321416552494317324189161696081355421977993203830728179645264212759206533637957820325876471092860813503931656870760667136693463441851784585459754815249315388752246907454799866854675869636761133374070706207219397590604527003977520310314508839437916345416213048306166235006199278619597423627373027040030898467318307869189009320305053188929129597678773615674675630431221489438429351752922048370603644245593659888912618159730700439942187742271625147122132414396470609238507733823376039183739454329025329029559832799452975050526940552435549506513383380069029345161414628115503622321257431921171487176131865972536876889332621943494193357641394001033573675165473307893420038369971757892552040615403294814267661354057088257694118476058442200677107860699090559258065490231825829336839678822708966519773777321011551789984048595855249157991306318735846686360736188426978843965113858180357015105447593437560195026507298524981749816120402419852248355322027530200099339068597711980016912635104386311324235954551332511290556752540002621819617694127614404895744386404232603195171755083472654391208252833823968428103834722635737391875293693056011321512487603110599112239553550153663986932320543259840484755762826684588557756010476353191432360158615663976863252604068418381600293244876066981885730054220626536087927376839756309157340596707555714205639864922653825960373350868227952600343201743347633479340244904410694347411464404915897757144615966646969993422461774814086215283688900567745750083006875498363098430511683076734947278455417987216739514584625645599669642115288617232059818463615739403385799786153624095184574872400471388199322689050825906379218139105581154267251254335251352668860127517072699713635098754119350433777285802812356094868539770870319616157150111871472693257136179056387365052445961260422294196131195479592538693649245047013936062796645996394676533314312501158413760302610861687810043457847682587283614898716626949470023603452907637798620644009885956880743413416679296712499170379986809282204518432100630670280827604585092050411581940176098675914851889900809069686811688954938646259649452025372210693701627632284252894474434564863125231683154295910759717181575323900105167740781178035413815346839874759911865565582893330418293242312422333610502825307111095220166683920568643884856188187409492621779661037916593861382431866952170289899034262854037564498523561993060572131113848757871178854585328579579976421228706510087714523065552492917363621507813009476590170591197839082077794787983527956600590912334699110714471678886424735277621821172229411304747548306937856323074081822745885231837628427249598080792566777211831786169916676752201849343976029517409947153700147801723165630531849726692516540792419012779445752583628960478645121778854142836262080772749234930402855078672789389734893048693613773186403789439228141196703414477914659803418100402242537761958808051041941564119111844297269619801264112545041405166102190447961545019519264658053030209836193696197870699309264430418773176650379023534825938254898183898058368516783776989499928477883928911192409609131587574777043966338481292465377231611590945115327044117597218013767843477925206513418831933275165104013043906661102254787635270840383575103891210425275229948895126802020567521663814622533073419722001887465331608266317402195745319893674227957180017527968397410766488292859190213864367251493570902544331277930301862881366246690952344624101392413467321648515491745486102925086776372701178551137243471466774787705437448217152178520479452833101441062585478052553778762146917919163544239489542860131350514247177936809859923566687403414235154264636421717802295244872952934460118428787870969809739081447929946606293341819866473921893368681538515851844016421545563297171582880323398013120284040499694070513222961358672318085187578674080711657062185737414884377964007205479531018507379364010820495495639515128022586411191989901636532544061603060775144792446490745323911869476400010937117410959314011718465924724507746628793122262902859766977201688114736614653002504717835047337276354254039671008429279965810997303086208301328537901646155630961781309823610409470279643221391675628076788551993480186095188531112743410708078805502974535186042421864575685797371424393929995962318167332653734896088430325551317063906745564557301703704025513628451470270517708372091521221314272259515201958280961064032952920351600001402307194674862833763235216384605145038879717321754762374583560702902736657827932148781147279922639903290040758225515660443855100511817942370717086282563145687460723952808844222155965006560050711329472621592657208770669212824161120350607761449058763553622465699526525313712243456573293849904152226511450313486241955290778929156393068653171593123556348559946442001854215655606355095775198724677997315431939556549821789835809154245621742468832681498142403459023352030876772055601300771809129081484729565189807547089767603333449003577847220788762150977664970870860877091406466102152174093756981213419945301754001144234704447840960111317999665453930652170912193746240182762087590027380510878393691392885556835602806096992691298201469989885204786447950281443347763834940658574560575496813176044708406910307152410867237550336854744274478115852880595590844729635225745440904607120751276437199219371116070965850760374288554173804278838744409878495476431539742223741849008165461278584583123807224532677192033891014892033732934689911406452081538275885980744212371700209732138994084594626462671805216382931793577937286540765373583166441344420050445687722774683074354156229386056945550880913135512900021135213422469829226983860186712557018039326423757003312749051813038170239217989618537531783406970165910220828073332139392384791658115245445978995460080050825013280111949912015346993901418151495661305498743005270198992619902140104305146215111796541371828557060110405876193794145562379888702573378464271150015480350750483849486384010068924665383519999677124233451025649663602164563434626453827634128747709825662722603180538674965105391395559440585103169726084990781024595614621000364541953252616119286003975448878689199826460687495742716698597084532867407433731354382300185060191112096794809834324374530898284372931976127422274079296113603177891793495829492770061876043988842254700799216689473804422662018974156069325930800643440102090197863761639185938926729846818962784852551132784033949304217718103908258898204446224876334384614281101637099777332087123622045550594710214556442589853301598953099865011596171150075511515811656021987802599308693833409549399538976816952019315756900335215872494081399841586162129366029850617567970586391299457454399055454685589068194799442384435551374641512509813123692412397534285583307437095764864744549678345104418585515160067908617364377975038768417278268956705523019323232847335932920709116430024585259814072590872201518460800574452935313144511001325766215227889000982822380899315993770234653935987528186514497422156756436874833923115961770083914553272797608497378119480531161038898665889589363675885301801868198753512183387407797422766789173368507309885716299431344024656137589081747363128792853305113555019984265885847193584171581996449966229372456662055741373424539245258562802151358335575419611027357829683286350767408576037709628045120050852167088602485344115363449432121890280591529051029226514569886485432163298171707498409643168400067201861967573925397716460768439400277571343234593821420788050054856090276090063302781551134354725892674712402713173331119512451769391757446895496897493523357134942141215567936813397575752451622709073222157083217362589363188533489531143188293505637746902985219326112150227381745769882793542101373650823219930017229616080931672584429952947766317495811214193897338930040552201684425261107503466932293555668624269028161107754704304298028503289064781138131232650756900758705499478619018391198311932696641035683775195866237212706720896970259623401670422387736529720108254753380682249436855538804425246029612591477804621177537414448977890179188269578157995257578886978098221818533616358004846985185415780654474267026560718399742995662983408729640849930553936867744375697263620308879455676525563213132330851184127034807789374697271806844744691221288202598710882889279955999721524857549066260317872964921883761060898314434296455682962912781311563437886154433458645529832377377976641750908923840995898479538924706611900095619567937021276382985183042911754122681276342104126010189472006821647916677454103889549958642631476904500723096995617320185239712287108626612446231765284979428282879017000839697858939403276366777312920231433948022559977410204075472931633560154603314219007599694509498024059934399744198672634307863098818087838648527110364977837207812759507511324955815244888697790007485419035312715918993476004703094313405640615939805000677111927073747732989436572194204810501022317204410916109605587941521626419380690482451211954006219474498925284171545826361957323818067557660225318811754936500344057921587247731477486928892961120387038339225960415507811160155241840689485358850564222360087207733253855432641146418071661442492626780264028180138380009186848406451496996471951894308751654606267816271756447906765996928348641372183871551814260544649986804035624743173679742423088944820037927502333270227875834859184751849702584846822613276105731276904790493223131323511376978103751657265795425884874144203008721338308445672842057680882101868774646938998451654072751379402957077007133785993963787483457442992628365901339056839501050452651023715552044420147603895822417337205545356079758478249475220432671669851657357988951344266043933450356904104184356495719129366769084981268225934915842116382878544116331097153100441278681776185354489947871684359935163898987798414064535689271433608590975125072932676437121856392571039622183254926962650599457645579023455839105860977193217692837470148357420904205512665297144728570750332066477426667324248997074885153220249104052103918642178808989171515888463492702190817524020507036610887766631288961570794726957393220241725995336664175289986250756157714125567500618028048884465939190218076880326449803588601607994312532358885264969331931737377425138254450673777364011487623595957400509852638998026044726666838964849899902702711385389651002186155241943004667064147876739069617374635717255027955312546644741014994912686214921109492443127437715302168700404784904997690531003274925636048471958078548020075369695117541836541619527855143122094175219703246134083426036987696809841765684687066160266467012354721617891833247355443878450150709713703114727517242115482334244303648609017255554071721786527284414954268473904797997930829128897408130543978284087725956932701754913126410414035402149163757248650566523493226579948033988573349797272727700395139333222663675530899868575848517400958331398247805566735852293892010185406805184075841121983360109274596488994846895848257616573472398343448909936783791174505384814040667479046484147353652682752566412270864339237640597397116093462084556783047608016500866182614535279578393312330123301264206154594328053181280548060357116305438900597804886575781416981343628587316527249001116132919275506312673760408428156382220631402072309921984747869592199961632831891044280926734715097643643725429014872767395714569833876471951248859761597763480081650241440051080940676077975358272841623234097655301060217526660875542033045742957748748218718711422175970968502819364286872195649750251416979573606299075261814644294577520509380982308705843737706801157148101413510143894713590246557153767243199970891253778966767992838555773534516293641134506599645929568722251221825135276276401240990617524813603844413833142959706890358928145396044099872035285229260076367069573253444602060875273776264467209239964104894385620338129131952766508255694412575256411581293434478256266922469996887945356830255375512578702603900867750705930660845699733404062888824918126750055768504048180824994721879522528551682514265777323534140520121738106683193350439768642319098705122372408945529318200177301972642287480457905958471926819084984552304992391384194005641003186860499492480837589581615811018933870108880892079436442616987809363968207441182706994850877614938138469319223138980213219317323205457241503336870848177498984720118395751343402357359149944169028166145635685086998892878108763073537426214360988918133161786093645229841824883106617756461069311323716861025706569687049505375042661703812836975841255077247050988271206883389202134047167370319123911474419701626854410161590753588978388399054716749471576079409214955930967981969722494622572445514788688166809235788985933430944500698818619506655638272306698643361567211119975734067373103720377048989796725048898357370565927334489772470630935097758436279745848644950886188733797730295496724204378484694130980730482560096454063943783802861095690597549698976433282560586260998053137249659138728433989236755176305791214556590314783160152502300104529340024063471994325053957497996021664874450015251900823709158459127359191042413932773914566902675754806115125786048693757730756147220390976092575059250270570448132939914519544236424233249051271266643627018523495892359943596153971300257138892568724707346807906579324854569978921542888730737476698594878680576474378195440554801538269761165626916719780823455564445810438824061114517261391554435787279619463106611700355964647467817594895309094911905443255961370630417551898874218808544866764332917534005647865655695749219882773873805791403346209696336699676673091954484462149377889681023505510660388457885396058231831595890531527873714730424581716133327391902325787747705153624303386917631121644717742542021886044499228418490737035382996961387140768451898396161655551452727278201062004435470357611941061945401576987589587398853220623218635593188451375035563202740106548518172986969794346864339039616311433057569526777530032018826833926650456821626652000836683708372498302586421036767555173187340443478338971458550643696956446145774113504691547149032303306219671053967625563812447291702644185394355685319514007944204797089394609867144866111052861624056238209467845699679835144563104147970467269229410672275469666177120762264354397048756375811293043827520781435627005679625550608177094204258782315561771709574604851263326514807868958448874263332106633409376282650164025861342773670906524720450522568340339358228849067633378399865732937754279860266572081721969537653378458947146564641705476763148007680104775790040922422607463475810397348865002744114732161076652942530633028553829168835409768494010207648830270367554508063790182125643630638855028013707621585760212319512842821713943638913234641231304898121163139018625129667571209524702139779666695723554985921434139431646129520241498901994003868377710485580271669309155194346963703432211496384727896080121018567165742613703180685952942408615656306356122876383506189198973110708825895182601586266500673277592173142095993893670638643314180555277601539297129650944715388375385579567941135634280231820347610125168500186488334785288763109557337737188538678661640585210815954200682575572840232283164700723964374882479116043836695972604134036664886637015252509933118192042028205176544826663392624816340066552485433047303234279539680021976822043985886246563826177998798949714534112096302308353030562466526217998641328862661794512647337609203874148881293833368459638042174163343058991593722537147535633213219774817246579956560337849146697891202657810228482399175691354656276131466156504643454713038739685647436819561146531303931505172039911650143863377961711833806562049563565692181012522350897254557026040835351253091118057440851307627100864687033810572468497356149497812962992154780708690985927056913479985994868790644823939893035264107154790165539694844401961363820165514506608752227352841982377106346682483154517090559931989739725464226099975228400701748658027674077108869567219454196588811461855584727811429501085095295103732795220574576231551066840672031488593501352809420067755901445319014598211487794231522648840448435352104122638536924694851017840625974114997221538347185945968856007680231885150625766720331463956642572233303962528729290261311037604087218309646380305332848531979584296140568929002323830766248730394580970317236979186323531724744261752621200888151510218115939439682763519715675202250521433377129890620315597868797930371821120814450147617926596564589013651255580364752388589526466835096170394995712023090899081657706258621768100048768094152877478940617853452521983161705903417880262233543697325471759076010352942739538836982403651805759075986082617213874680563985413353580332492289108422149143621852902520455946094182353205777857476202138717912878512396336484932208700909871884179207461322229940452697546459300745480461382904710075966251758419900354302520330606882655149111064056810859627054243561023336880702843371090635259555201068229659202880802779978123364659374838379123679575593837470419639278955653056581438316579069429218820991206944079394334057114260354055075770468725058509218138495003856731323977407237413674944957384920726369212045349606446896938943204869967391806921506971512897600945608909188442328828204656406376914115164406378724730702333015601811683477035145989380092490634864494821776291921966919270357150403430652948638034350753548691474462843847376264843029970284065924316290006161445747426496954880016152491972815906627518374869632699152648462927956809779019700745052479960413839991734168505774445180474467205270964007508753436638963748996408768831311184238758584900866958398722885958927122907946675599311732644992802652722745476421783505099474670241580947909164315586727278514127966598884232275146947721696901902824830523302534541540095653152304693183987470690843398809284873544963459779334114079344303646728322625255106538493242096132286537620119093450378002328795295361150082286975220673945829056115796118807829261442013548696821762405562246098713387812597282004069454059949640845836506073614962067181234770382912153194520572960084598986611927662998701788470074686326161712020045730648969336986160651936612004690754105127422197566961871772165771354776288366107083470077660962628921752364064075901432766686770348974748641894126304218487565266207704495648421029793828929822616470616436967206827758161900192403388607904908040308604459706648408780542218487209238067883868170022312981543962522820736916168776623107977802057746660213426090944362153432077667058210092467496618609702196243934097658484198352275909397897429222203731633315185814414314564277462249787034504998275337796142756184939116095956321292625393328092810884688367003194135787984391384498350292836683834662796534913623538469719068754933937512873196267720765291699206118113439373427444583948301993155486241744211021696808392505758661349456762739781219957762562094374391914442262857754161876416690445804781006464755260191265179946075820804433645076746223669523309586380446890585224935921133507182140111906083976116069863496628893563283364085246064522092264213747733808624009304046935189987057593988126404665492001283513815635839111160105150532404782578419795579196908386081481137170839582248217604449232733116987270931779849598478536363697285964367272899360086874991935654936986717304960011902015313984170653378922134235256651556838493417823188687246852247467679741542110361676995497256911506176773089968014577131046847333731189177194272471311526623035498941700007603146747777473211966972444800713951763098819446690399590435472130617219296326235051820398639206648660467804296205389493654763543718586627000321316847027659056594178532380384361395150217521000345717535180749671672430341148696918178134339665812823820809826677089847948892411451723754074987341087927064568886607111726560667634646134479999556432828300087713307029271018364402322976691753339854384404510873586396256145097309410093443808595772242574851792504182081825377213709071666965637749843570729372993993228204650081893137798642717985289357648802137089042003453838951653284286497422362694802578782572329616408891572251764922839394393932532486858290588832357756477167229707890287192990519933776599770415152374572335653052816825741717298130437789788544094346462892148419896271231978716202893663322884308440239477655199489541742344810383901142285455273805976892955367538438807486468142693355029514066498098493679739894732622515562947812679650006601712397077998016920054816061820013400174759774897645492856778867144117401880771755335600764081653451497067102495396114141455644191971252904507083166001286758024859604627643092129629722686257359944177532109463857305210238287450899169472486602878032124840345391996269385091727500990920262109799331308814400963868120399925763301377159475109791204055450448405795922042196420820222548730162731501467121288231013933307417808564692996080104351485292208591974560871918019000766566361945413175984116832920747668596910892116943428889472884770592174415705499329209110006890543057742447926645323377385291080496444480304620912275560482374762320672368956681141627058867448236461901343600990483758113874313244422769829943853561842296144675208789319447077355192609661821446596518497726281531363566146473280983574510846830845883052922098451882509038130211438439146140676866227364124989025810604653527365169697791758454165746700577707683501784532579672827905526944301273468036776959797215820110143512130550128380134362639803157319937693131318862223102820439625273824569306150686275955618383188243016678796605240138968917960796776415367487971177133191493375587086186967176243349017257467188965849495300484592209462660901306393412146121217885974409930872803878667804930551881578346547398502065161729127313897188742257291386439655501939802888587003740846291957419046781150380278009469864380185635946522536446092015509717804126390413071885698787304847618684625032651206731904288464508056804239850794590296364550317101629167194028812497035733797606808943925998076851693136516247800934129639119302856771644120807568665070070076069364432714487981065470423879490530380327167257939844759356693869234158045676800982064492656746082057416560468257013472564675202768339268007213900495355572668915320230602155671322347576999667208777713233604836166513402002105288361689503041836008658296108258523991057932904972901639600682367219274710805978621679340231466162236056316093881250461244415815988854534745404391707824379561386542648604218037155275270773785132118365322387156729800332145677318153257741425302552307357844402250523382518609969199944533159070277958419435613413289464873420328991880454416775838534385398051972964249494745367522725099217679545289536211619887051339726769340488623602726241014941720440540617236547174454961489357070610053520373729899794595558740861108381750382360035019832715966761813165840129558791251511988860086873945700400419614279305317434906346793289234641349120404861624161090796705650091686143156574697440568888451687639412946263345694355540861824761335301181023761931792513093628607705290846924934963955097570314954436614661231355830202717707698592737851792923588026612182129808292562588576984165532807538570623871910161594238017712549788667079599050851309891654280470280331025961358275765834040333438097508223543816872585594177847126486906432912175559337464522971414088364991065270610372551240730116324746071531559408998341939767438421117783369622357606182571766219480848845814557095576615114275699455753179659208381834511696688699833380830787780312313528243252540065862550356439444546206819452655855555986514520589121716993506638111413047817495133506405290985566591327529471389719697712448846870196393891898644999104416514010422664020785664171486009869811502541824832461344538222374732584705754542111722445515605031185760949248178872023981951363735826248894916759676359718076488232731053191458037569940296650021432022910235064731434443517154403639446974042177814802100427133521124124421633408658779141784232064321859689561635882228059663315218914839352582700091880226907446033967456995618998083897564199737373027763556074464825554916629732167119249292606208708945649364399541328290064980895388079525726493125677191356485490986885203191802840837946121072818357104018677484270141061947805412093892374483884861626741183475250276726547613300830586750943700738639781303671832510292550589476492968594015695103641920901228649316589140660096459909306025918192570391907106155811080216841593354181833680569850342222556611699436722362998493103650667703838084269364031539972433761062734901596300553318001692622579876297134414996424157852787217689656470877252197621383921343170786565208879116234515810573009419740488303944304579119232841203000555327250417263470477514021229071967918841308067427065140289753654144364840432324596668414672039816651088940714189637112136241499044427954807459097899471517066325090029517408643847130714901948219543015094089209682326747231021392453766483255585679836777947285097943128213110386640886101429619893914865498333561243509060572477796026508011327631109797879329847585227000594834108135933113774518098194594365845040219390502701779589594130193407744733648423746140606498003955542268889401728429653404971000569665967162340477866346595137308018109285119055604815204873535886280773337031005975503355325993836851050335924757656632289397001454986606011423650339124395190241645888024586033446751230291631625102532925441934064711124494316501921592634324209333950875883288102079189925646967915385348654140794274230381989518647903182892167680400363886959975712671869949678356957328181867680049656372723605750388050501580679120020928942827865702027108058550539328087759038184425164800024765471692842084577657899446516505338358403729191186618395850781908493625891936936268304499248921264477516515635129723920049396174839574032340605461961246362941141596856866657005259375204454070559082186160293817622547703119241786503773427990953957381368016741541505619563005744072201692921058414396173448257126434943062765193090356400409184958496235367083024621330205594187817364179197734589454643549143699084071533388940915945280742165417905492572505425353028048696999786201995048511540740081334168992907276501907342256273890780398459009382652793889082616960581071942027802406992998080415807645382448890685658553788723005639864903890603729669220502579729766621683913146967642216096720103585346244840700231213796352201196817231448395618110114153463520835189517729589782376584106033576643853689456438313990696118056329736585712416677210794061547485302681172208382492616925079608712892101124245500139975289614660524390579184120762348741862308865745971483631956635623200985091058208658485497007257002836291103948573562123633229279488393584362914996527076324537631128753077492920873847645927428964310267820070179990815442838086642853641958280190855033844082647914704683898370401503400298153817333741171544893897604194172657496553486254428024069843446769122812698137596264943130274948086077669081575097997524431423844484591750921880162889557083342783325337721671587693609855075590213921383079561564644091758246914138434805652538720593157909771994932471844560059616530941466047814224421081884209250637499934166626207284009221671685895699723280002512229159497621331234828637488648306473050490012045759544653621748808069312179456736424770921798579375587850303728736876856330169788506139151402221756088488531700785179049661297181927174118914618124056900127592370653855151821769988273976649779225922111786831240588983582213202410151529698481166947491499518669961978288774659793412117694575896978147698710540238109965773036497752036057319612377273597144617909778544156900524363587743993528111398939785169506591623331744514755471750643314320341434565441898952834256973648990973973748640370921494499086635720128042452210491243455097573922989709159787541128538479396218010355232951970827624644735180793765819864642584788495964024567937666599986434047244390090232728601922837441363301255088779662570612943852869622427960530087228884957646337968252936439682644785905513284506666608728431621859884757829792498194231566372620767639999983039916406745765809956516773712362622084543656777653450041782190380530489481821059253158976879071855083608266298920587421073290249648837386412755730586706147103091026803720553437639766821888185932403926823264459156129450116359114292558792548855005869718040815487283774764189200508285716994164590087679347915728227722255321839703993255515613395281146665500096380154254509859119875679785394777879758990860246655150185404378192842269694990775816114708993124564404939768058415364039772296623344585380926524155786488855267693754767945245180688562011459615765897175484580425847028507015248197166872319238438011136283450260393055324210107487432584848387081704034645180745297214419311861614945925153631370635782869738364523079571391257070963951415257123421494405823933660172926960657187949109269176998906607242391392667542460693825533261670317741615906887813700565286533042565818483717137449484165713623176060162343338110700598194167851935481403802412917219399174120672052788018749617474686408046112290353110788479538542631717653045366434275578720851747728818128422642793758560809193874670690581799121551464902073926140536155734416760879846318887345536015590095378380648228616314867464049408661179242604636621243964861411648182331924141135602625403859864111322344345144108314793273794432380307992918094977382692093495279038662587322746511596121556042430482566047365760891860140641598122950410222449320253467026490936320691560058783838429153311688605530589046048741707080320251192625598885262432039248249705317608179018484776452917521206369381749989852398224063136576962808423450011229168636563197322606992443197284008433367174481330095946040498438267030484672472856867920963312346279362644651387572665377955380675572886520197175181455483068827867381754859392723118417871859646093581076653699992014313913127506064740212282420318811647931842015333450183322945240300964101135971584502773719568113148705960774197187174496592199519651969311592624644936989556058940786560272620961817884628701517822393800800820816612521609531104856800960525250195726555761884820482540153409771895708384535331156469749849652793990050851242801203502772672111356622486629919248750363286360898462253108231006850108104334991592784054738579459564272723498541750499186927974976195644187246760215740328895887431970533732691676114668055846449028388492874940722145026834388111836720843014986343752145415658046285839283065308808195293492382317524544779202078814668596615007133433442774470696076315462872184960800522737132331588995236611461317688819338051893636554891196077908650244391111278671176456797047446441124854891896530054790073995632876766299340568038014297656379802510445186815038717237103497495303529012187817820859536891292445276911020255677790837016392541501499012142229747943967016383479093490933798599860782476093188130569954526192498442056646301693350070222706598977167639088377181322241329918993394577031642352050302030590227777424153004038556709951851324655966580504670675384603410557448788863678126354892174727067494298637833081903129573536681336464704573586221346485238383413718210637504523979183841505125528537416691126819586214974065147559411045753286662476437826822377960470222164318073659445824400606298826125326984351915786855093407655452111186477371466456066078597794690333419513509832307391585097591693313625767978650734187422867496178124367887247205922227106674657147974814589845588727966308994672169693402415199676914265292334135954926181873866307054639808055027954622528736937034216556086739354752551158992639175056693030921224298208783175402327344126310538579066553551782882387113692378463396695273167030198778316230934273745396361715829504653424423419442961810125971456529139070681423193084113397003443499286783731848131066022850092034697392394207114747482309447575400454631165668736882129083864353218400405348964537896378883080658349666368218769979451315150875530042143187968805121660057901998533822293364260748422868627097317642255561120153114956150344723449377065962452008605671688774040369226224044434776966073832048269931010201388257037226182528332956735574525007684857582745223732785666449445618416389433420194280448876867244580529628167040187424271125037939438560490403436321907236363598514627845732762058149387160682231682017507283773885535899693676598660897062341487832253399964002536156148641979817202149172313948602475975582345989932531044783038407071454960124380864460346447572296292070364148041563009077705896922568419125772923989896957521892632946252762449668083807312172947344974112682466201693518351853323470944329741502928672454113028161721719253459473698002359702664094824520819502156733007844450656587271781318298391053188446731271268868473422413227685752397457789289456476596278650207340170461749772143108813866538019175349257716427296717278144804702471000616560200873440277963957261475012010891085694898993936683698151133630837056029269712315497435491929306977632280543782420752095916478046960398146895254921062512485975610515687535820455018767308172557706702879034138610357022413174725765619907606401833937366988482748916643766748679454706727360463679957598931634115460412728672350831151654570798115357129478276315351341853584123015086980825639933328722754373298861741716467301833778115846319447265297130550005321590201347897692252794366728955124561858451012017344283001874604599508177092553820965816321464697684691525701488360347237557901198198663980596219386619127713694134183833649505939939711508545244871585554316237435555165552242701352118892983800230548621853377986006495266973760027799216891775371015094207478807673205137264859727061718553761976741827282944073020901913385194650592106427472863459799491949330782251061952835410409723275538188822841222597342776482738543877351802911790487726982776973647653003994107029940449995690251124237662652156852175124295422783540605603121561874923788644094007911561908208636651335921275571165724541135453297729511148684760762049039501185917214803976530564300264384209968209077570264225165823676423747823226001390969629414503270741339467642248535858182452141660437132654590740916058178045485957586305466009393648958625370124427489993004484598125110683494376302687276005657666811076954291364799336224565864258513083539846517679189646292835431103158059307681091575018269632296648638007101135250331720231583464277984949605307698370251739948460775457039890103250333040599795386716808430620751087596098878388977831091391776679531433423381936599481725157024204138021848128028671083130988680569061087614486092125080422863504205169866204486829412675731485373860535781941131869205849656151552942278771245697528524253855955550547600663066764090206354189325376051863141924642897609592587822559192223217968227440654813635210988638553816054472925041017603611846947595776575909614061559655984381847656195317783824508888353106107206663898112330016273841966688414526131930086696286151974887968257631095439835922799283592072956902294436080684627256246440888496756374563940959719089110716162457780310558673478595892839692050060170462495892577945032369109470843337259251375479869376007195757401815665697859395963567311759833265228165101050343497124155697495666476678265866843989535816457130384049709348975426693847379015855943063483431403568496281531909189950178199833457750449895769172569134737821412825667172596666374169853624439963372857091411885928946765955907839288527207612152665428072661949245838458652659055411120333914853661623065316718299126200353384773596500398322761685522415623531898878828046161328090346100255054286986900682584094035457731464688388360869765535093201675917877258632661074607028172252231672910310806810231780798185084600974267355871060362130736713939875363995175714390169393822062905277233862996097955865160062642033869051143101447974175188330500209522149264025256764869862753171627268077877366185865305433518398873142711224487664261940638643191051530972959548465732757252246018000745007637208980359228306816960140456792646921577315447393406837327969048657519201683181538377947621816101173403382037062993529873816429598370573025599942810607783326825857382010860700236683343363665630364850160301157079578250015071129162556687235293828269781753194176107253969075631756515924897360274198672206260933085937890421434392216865665009952878217545651798782471371721679751001065358304304837400628274031831595198272640318728100360221713280644758477295103593681058202287271108591643879375198647616390410301678722627618577941680322769204454274046434383311485967513795554770482449181899224631536922441721998235973228154035849103317159839279296706574983976008060534412031087735933415951194631185377896764411126031060855751755754301919421373625247549616712162335561922308099926084275484528352250317459791248636565847906217029677419278584653017550080024871169581842549593836010619584648647696625817564944951145986199850111527664912507283037760899667790291271796330712607602938286799460926156465876161827401006743717357408066221014582704380074908379151092024614750780371071149570991271734126261674885516221552372139225437429913055462130378910196614239124169955457483695072555944166732425993192460267185574520872937810205444594795016202904923899359921936045420489394919649107186523073178245281161455189158472235454496900580172727552220430433533202116284930709919205989985493443673794988163669069854390446980061496661891756853048895543560524591015915928645510345308955522236055063082234573313322903875861081073492300213044179817065148743155280834809389436077183501205020256853452144563383247000415935556271998556657733656237943298316015015261156950753974822129584767904653511062214207622301391074118222158770139927900659260823411809255826020295044973162607165526081631987270682459428970265496721116390268305617265471527363982448776113507781002983241553423318059626313799742871630992472732781486215277631887213062589151415802238760098257449014631358752023193412263029137306910989070612792159295596507121447168611445861500018625104629348606118663130901221985106598923019774009457880164270915485287582295009252894728247060712099676631517969519394689073084929562181565585131732565424884752545118874060149092646491968128356868734901939855840194938731253758826455980627863075792888387897596399737317114976297172897974093170803714746363259756201961858605580394127625216212239610609286034213286775236687734205423043975338416637295141160802316934112373470505314835411191049303596927898782844016055240059550468666299539943860838651028734187201561278132618325294184357211289787427881982019777112640482001358735605904207404211184639600955640499632106943251633988352829485935780987753737398357154689959141016765460011950179489376601963009405757280291603680357114773240766621100751888191606587202227529207147559203782212536588337109303859844101581592515062599022525090338103673015356490553012114315649052075857910352268360320114192548781843686450327891362971895446399636338498029891808355401079922048750320581692070269697011807498199826983057374701841392553530929343291626243693402584409102423526021128163935405038483375477483394866028338507680317905426493679519077154867698138173223220129503019387138238841784207602164050046206020786465241133507255695242871074827407486141254379252378686484263382533527865162327872885210746434878993203657299131615446258573248446490844662368294795655420324774413024276540781686813760409346964674282807314132746564485034848884360796051733013279561616924460595759267059739168320513927351644142354801800102377410462636810940590181764855041789147327104676370256098772321635856346715334693757255058880886552509652067240602415670406991993659064519152622134392232728186989666304891036775195893915838298525357917959841882467014048569304421013701984091317595246375803054420593992854823725353948200015195243518810865377921356006391516914992322849594672191181598411232911246007625287550612557752169926744585093334569961720362441310457220739348162737814945813271514566779066067924787882990915301456669416027673217182396523820648861804982578208431129132921912714524331344406966614420393015818503181036874690792547580414969683150988049882671076771323456957686231522785698057678948494094140888059115892083567238615952937384593000067034131334977016977035580234455523898160503614681064453347162577688026893062203358552900050880935438617334347547056519703536433202939192525497756360681018094139254018643272775975669567154386798787125230990026905228138158947291303889878092529997255400488354877371468524565334140864233516885151663755771709521495751908353820971833388410994808750797850411743852475150410040639460770481541675875101674049228993745800799151893555467183920888511179147839911492755700542069823081851419733152469903766817943012984720639552237890811211383840439967525529706137254310361577728187036519231191473564659393991665742476691528083260145168372274138195810104508360047393228078497676787594041454908413590198132566566104812981050686117094449334337977676070391002947212659550678424106598016444507710477787201616605914112053027578757220921293482071790593726011496424972532316841128485838555935079130578794194821075761967853621927508240641008380826907333761492213390263314924108774555295850604698895553843351020267335239347338721892659717449423694815125041888613669986704973908350528853271209919497909964270575677769562792141832741618547788829764827637616604316536794010290513837407769243496728438943407869966203411341170910191861904022880051961478276327740979058353914353500793631669568396999270004745587080272432933529414974549217035306081476482375285397763473910907346077847925443668464845331025685147988019290741613291009087798914321580751642676562625838493140868435796472411501587545643186712736189164124527677662841781136483146874714645385689902929167663865925397739006807216895798181988021010315235505124335720361065621195335246183517042875575055062034186114461799349843504977321742815885477843409553481385403673434854115632420353613395613217153411099229581821240229837840161387016682602944106879463898258166854151975294226199120654302471991298711363991213091840106397293503570520608141302592675853132550231706472795073436572428437371132043021618527650754056766786578540285170331630491812740152701034915916771803968720725589814830905764630469389322673895956237028412612462495137193890056238774781792606614107678260982707178767495481595011723811869369921012312637544212836876187349797864479722248919781254569332602905185294926786532589175167077536631099069402238848277409513144315807972896101324508463993366938113454123956394622677963941381689700518844304864242137818437178083948919537824568435530620214421176518836804894521997079128259038239239577756802558224092552156545105144077309360887794944412703092162705164278528318940145035583526460918700150066227454621427848843641306564357497109139871061154399347082265577618422071717218789328200456992606814874149946454372731366039445755917546246821973435763024898277640272322007956010519392561750056832050501698346228718001058685654897030601453999683393255124115258836083898958031742807221070963627262187578942754264995286668128291665798851308325198268251433509712437646058921377368434266601151125811353302969041749939075955859100515669807908001710095752939016641018675839469531836397769462354175777402704444459654028835369313557819529910117553357483601500591831929478400153924603812215222699479258283856053713282548747695908208382681435835377869347201817740886021781760662675476418154538831574920692078192687964227520171520865161744651813209035711588755068912102493828638332817005681609443761192742023947617243698392512698540224976934742531855102304905128076755837850622292164886489025413558329516456952550297671490996075978301593104254620703656199735755824649061294420401652006848383664537410110851348953979508171590659994690026192437680839597223818677049682621155503811614564243439262274902950022202515429930824180386011454376855344413749787582980249835468840229561541776685019450874064414215336399066002958788484536682828354477402246282873584704238482981711053462321899268286588556100701185496009453529314743118062729052885893950345272923196611393195168993673911194261760352878225429778549748787933091077283108775195620973951701746866743695554557792340514693539301424158351377876899569846207703412913098989303951789183646827298130643019582512946524731891941389281230553914104331072991942505964130715169562660429921444110713630034140544121595418343298587703305552906132336838884243914276096739982823380404225374295338747241721098135958388050211278180310764961462895164334529019932160848562921978112573426948864904711359718754862807129500291613542991963351822989313144009375246849453735818438982353386096513915769521424873976769619859252166179429366149894154827589127468953491420931635519523902259226821716757343707559496510156607848320354009507841869557854303412476529421759500443571053418358146709378192780700283029698721557589087206481000112017964924606471176231219171555152268678349307002497700475029487918307010397989180280720027466904266015857753690710122644065269948632591702503172674817135640803500173095172858381143087025121396343108633114960636772118525418182214776483078647725047452898448449510531381142483639785988265179334218345243759663722635120531544751001579030451160131861113011060566326791471399379590639341582432480729854859234730164468545109818065143617149809356026034193763018555447546227332205244535064465455554162037272524843678441918373601654173712310258838428991490080553194912515695314207299042850445632418910933248088584350801726347618596520099053241017238694322790407244900721236033734829475902954685448471337110032663108808851264349392661548729099257098552333599972300696293469609502648321467395928707701072193756024320495328753599440285996336713432714172745106895741307619938834682202636045213403340445606786108292969993561823071413825254536547194680787274677250552154105593397352786841103936422480656973369930148545360760670272798104424788728439359514575666648805513721945662218477401269694969200021909798140932447678133740115016130510002047994612017142381796780747651126283460059537981629034265311293430059088936263624992257864848844803723195226830457065278046480663365843112473542321470087455540353628321367077702680387836319069066754229974141601209975754294881807742629583418137790326003163761289741455097937527678007940147134345902135694985107312909792661646014494113737467132352841571848313798740657603841376705415079831387995276775978213675286134205021880985201925959111081076472485403821679493415684587856257303524687584718614469720145374880158715245834058309083981484931730709148994361361808728081286487148362480665759686932033515771618761228022190596852799638773113858979616243158447034728482012531426509693037403370078671294079958591762187801310672104013995112371841335298339637157564727719322353080235571192925932399449883572662031410507046846710940554206361933135822237075507380121612039587390980439271123959350280534685413244477194235574895813469470604255936919358561960199878053354528485877879596229547493739429400201889689211253274752472350565939246862568557865978772053667197452826514628895597882153766638011983834966354710528053832577268861143296925636826102861101382663999597994514902940522082768755747171039363409263435578569913578473435235947056485178879261709192347543910652923375892703941851401444078606269145506284533724452050558636374297718919500208541978577406445269689998354703239061210971856830906277241902747793132757976874156101133266002796478594928309890494503581252966290411730766640011703340994855552743558716691888432818005130403289499376500449121737493960233242333876602216699242618708204277975632669008596903145707972877230967179890778696111300903186572260950186509869128761171448314002500380903090121507217695091088178627341227413241298208666723549795537138516117854277310691531909841578074516289748693462216372883242953076629756269135263406395340418573928667502091597691807102898068923144806657343403030352825129358126276579970930490613080318683589160476770543196364620135210571111916038625246831970457497682712727356056793488923960307222011703124842727877083564048218113351960789498915069744814058298071454202185709833559724254735902296640887575861040898267841430623956884047776736264506995472900485942192288635711733298002878402086218614571807519571406843398991921926516240778251106222914987279222497411639438926867529303115810796158636401336717646321022171428328442314277945554603872358307202071067171111792462006839131423753062044401786546535373036699579693007711021917004463550326034866199968570144129668542872073469867953954866284498786138342438584848637218185848961571929289938697881490066792864243198619259645912152339344079732828696189040506107968503073489695401760259536131185343713191724682544695099249716427501155384644626158096825622266409998697222916580614681735950785110546058850497813099096324245795908842138024419505002219615311220270508763859669161956836521656317366429578188613447863038868302233143259251294320205775729880751166484915298584940639242988101493212343543825526072265482092762653530066871533036659406119326377269885248655517051529650851022672794069487073383124660410329854758276426024341308692880297827962955064519669831435866776203878561477395917539727973513715522611265170164496367462641193313971986297672138852884406620908040667642227350442931013906526047617178928677127826752791984304443447058144852543661129950844216894929702907232777595015322780774586316785142595241498253707168142682013822662036804147259505380052018128773490797734179232302660006844289416573192159936298908628483299116608776219038049525873599633121860968401841486187198515517866602463678637264196265564321125359268365701830723198294146939665467531169905114469423264293562699518604725581411115767535974968792666671568144996729867259637625594419082614085499709197366606986046152177765247666808360064785230451464571803386282378712246157885229158375451207343315654826600442257054973319527043747400425919277211975014609568555083211632117225302753259965706964761909538857124046535517591683226089147979255986679837266749893305605002851938912470534106664668492057933800183339138975028836357275458629744180928499532706202368119992653527792583365008567645365108648212449343666121351794905081778935108570250501425803056177236509141770650476428458159456709265790202411521537542266541134691193559438267431460828654614323312497672351136709555704548206867595356386293836753433431172939059694875695480095344312105270362020905037958376789481002361105825970418790704195723793588201580401457626935658630248707071885451628170670483447241157313647428394336373517195134220451223094223612180574334023007983330852089806487708710959074493364296640640369873257734587681113969155269044461306417392205214113164487494866747889818533168643256589496623278162811765430578415183772733884411755460023463075442984754740194122816588454395835436661292117121810153217041122955254963339934896956113574480837163966485693827685185809458947675722082156637122174989316733110469961354394721900810355785361392319596500860598097558081292948984693004495447250816775289175300632684108879752910340240717382214527045560414387284020534191983859395061398440676193513985601645382508177009792531810396042671086591304254956424101291857035687539138139823589420325575263663139516747592796205373018710628588869390060549705537925782729191341774817674668019901455360750207341366164355637043799391800679901428224469750858752526627698955054434503144671902907791556442213314253882112608284416724627613494163395656301367693168224526165527864421984737587004991480518766532028651255327625302611079306786892435557705761889096811127592178154524175362376313226477856016224791674673847843045624948970534442311370126253353232848294327767178910151592698012740539856897413393901771933684027315298917454081193019602207449389995986273633157155887497842996107998394852103805924629140516525871131507919012737916075380717302877524500465110949543562827742276255615234883035594523809701841159003065170682842772589713182472384639465916996712338160279235010811513778421961687076223563839262596357048932086225573437056883962992841463018330234493670268374298747573032552256726500146510626593675262910312150094944587799542932819136818539293535240837763404465378967899164172474079522350064961763513307993811639242223688076061012652569640731715240698510716031146206494580519017320339393312495184369671521737418563442260897333383198792007325400581479260331115977173215952961010026388145335145371537108510536875942339812872860055898849529388112941498472245652796367976735759255867227905497072629801971594903795184655289374021562522612375262235706549263515753331053126503257643284849446835676659760384854379748639981429279095613379866281091987269628033183150186896980790317493026084350620667083918349316050632028299459221592116487698961826146713262421478672016967768221883098725661558789438088240661659181572274355534063513860242585699693032270256690327350447219314264514584739914006779134949344436614084075015597362152782984705353862619408876994053587687411682289649520688261018881369862401001138105991207246924408078554104994126429764859743571891325282902986197807913432231780559180094890972714850815180340177311769417330564865631806726705227746178198554984682034970923487017472860443110280330628903652728595577720235563373544846890152722842798936803207492817729650811853721083173828160288231749460592439785612139615756282591159588848240736966456879289462241871702589190249465561562423910870979162622222694554657563054815141513203498207317874872795704203008195564985268665418799572705382800304472711941013614947221833997721215463699815925772258382053656987676255212272312047934291365950881030739677305442407016967155989270161047630383612758357949343502142947302950766300715635337909808071853895871366662727453938055103008105610521500089031948026344239705637272371021562508791803999281938040433745496228633279658629664131196172262979656080054155725303333216777486018657503151468289389343874636182860569542642450067251392663504863944519768504879135778331669526400998857465112831699024110681956741918074699083977338355924318805194689722182392362261148918552051455646475989519139005051624176778635981589358184281253694372723226873679465903793846630449971364657330648899810738946501909891451288598951904345482061957067444028703143622987232611480673856770771240128097630051733829407090142093874411281177623020300774274045010882679627892224499619945272465491370182958480160111866238337832059874532372745626881432154924822537297303250010094529218216063841459213143274811785107018714283497171250709926509705780767178529310361271954313784761944062980614485647217438272738879162975811117998280610407926950061816855942639386731525204786744678701253012478618757337291852374087080812514858032325621980639487012700663768362119482660325214296284229322724181357840514543114388215674995468926996405127289544007548394564316611841031004179831224907689245289397886578837206262404339927612472273660279677472384212781034877493642039906072837204525929996804284330546144902881290911472259298354678933238384276679893271549639784759250179498706018860162900899134196785747008609667306222687709059529539745924757176093534620578442680365474801614651651968342328918439174650176977181852392936666905309815678882472715122362538884352161769875816690846241114473120147315303754615932134002686733105640042190750881360714681065992847355107658545428762066107732098181397041807667365491154512175825433884002301948499814524701950300979239971052801993330925798560688431908087806414039565861518126807322790492322890511902737188052385120308494456349166772514527736178499246695794505686480571958291450048791027396713395277622881873139573657082804159392849913608413756167809864457380878194706007354628921810304243396690114952904713252860230186509363616302550433432712199469132940880240240288987259639645521208824186721477723793869981657281517831271154531752314407292863274209328684289808310821408593384705064725590899588955830653474010408515301877467947171549849501586385876454201192630594443079257529483161241713719615525445059275984001616470867550490526597761866531165683068880303093711506424651866761663933443498228585170781107606277732399910350031017553398476670499583131358633167833845254194761411110609377252345220002698434300423480888261912955034244045245378128606041070614125623846491394532369256191179368660293850356929766008574920893345251662271900354742123669709329080014980666220437867054319941494723492470312494142933389200618633794548646679592673766496931171309228602905713418106414317421452010230096859883551547344280293914265400747859998503319749460662633144869432838312899926753218501942771382468172085044465889098641959517016781088899895844487840509921879970139852102880485948740160922368157781963130845980051357358976444998054174333570899973823567763527689190779060070133795621761946032465897978017821779265191605989038728720503615110413826663447385311415543693706007194981802861316173600736277930450188878824120175466539869642175851619842166551422795285267704577898384481736668478241201071357399655509160929421698569858000699458903702278620386769647949107876191572745985778062867701403558028648832211753656874429078960190166445344798653921888147532904806612086344291054771026550629473658808784732879531083711904088023891645555031449926319823127316403216771989934914345657714384524226940009492840276971709855679291284567479701815260615366752496241229482443669536504890751453930015081667819148286091689805454466902534058077925901650621444545558543251496296508073833485683539024913177626888282380524805164923631430071635788273578209295099320299268889576077045782865484623250268253450415646785478551085622469427332159261183057808627777322926821787887185703217144168227647035202422258356678929690511395180950558544552113048396082222875057404447290551665558559578312739181554101171876447309000192395968449408991668007052668321844926693518073834224168135234500784853024351514040016415116954248405700789389945947452448764218705817052266855506056801888793234877279986110543518213787421510160556055367966533110396352212396460898596851244241583045654782811358607109107102296234064204659321840921213842191172650317317287977917481924904696492190786792136789528862039790625859931319752028126744247973953639975573088473513166718229777584083200699160295933492797733972994308758870317995997166140930035798313083957465905267685482360878415738802932498671456758265083046419369409464980632972765134027308485629493084352982698023496914423068057892760279951410477978458871187982382015734189918074953832308185706060856729533586340543894267484505175462584477344221845418575501237170151244799148849805805985087040253905547299252424834330311465312263348555481366352248707302694265692840723618708088932205739324230177545363491687619078592523771570582950867354326614257078231307278633047424823731474778248879365393773264953016658862162536855536966962776366597017110044068327951534475329352001664476823873184269558464771640131509860944019154744852410286115819487081091502871997720649456835989311955627961993112425639131843299416636020965995522461164978252336512735022085688649244587637231334802129226680996049477414636247146925058950911881064223108834160607946642910478493931134720779781560843837665718961559660580109678443529565500227493458082460454158739549662086109450933757525938116131305970210946131162682355742895401977964743550620953340446235586939448346567726537057250918338900940695095621647494926552892306206187505392025767827156249523380892676724205157683468237518588251977175445226721707102680993629590017096616737291807281178651560492824252849072832262413856084148027215549972926712173083568691416868048478240706565303209460504226784199878841972841289817104763764871796656885658947951678960472486078666834696225044638764242122481333586121806283815085960407099403231470833366468616348041386661237452873012351802621079940539490242491350736144532603432861365201439764619393753357758530322745699462623994755472380721938936682412984678585176434092203593718599559898079575297531017823356213439160153002540049025613346670866361169517555436128296734003946816518954118121776882473739657790353767538853322088220114882579014367988884971296000094120882621360286907638314037877996900991082867825330730681201399599080274439418507734968212863581575218953928206456666899356374469995338593083961704572932751624222627187687983479247312589516224834697918901992118816022623968457540428983067386396475478815365477107136280427424845841414948252322611548934895445106673437101758020600614315610352861247415818777777371794228601681652234401053912564545646922987139721394857444773051702296601017482914015907502979231772595853478411078073749065343201074797783974996460833669976410022335364850909316420198641998127624301293746662186383330210636065045319233243323976154870954284724008887359183349041057105930529333599167954674901184234972181189769616424942393556559047173007666173755839134471131610394955741676221960367428689960974968472486593636476597304889647726608629116796825215389694485015691428307475375470573471197916798652672932033965410669526036415130979019510516129399735296300188217556679344443879167094900716433263707249305724118350875888688736245752735576844802673838537219679715766230833739890127869322872099640139065552915574792215244158740793892158178379886021321243531227649388580303826646417387891375640677186542238113488835754819829199347138956892082529614145038965168194412730460947028784769657906768627723522164963931133424699676387109559471993388566830793317623731018999740042481485697015911384289654499911163023481409675701323543234940235712351151238464363424845293232978218085737425682168091191333004431489354038799195843244073549667719735436712839166238628310689000043018138555020408659221866970937205843618328811647560268540954782045646280718601785140991276884040819349134666717185693286554337726227695274574503277476531247149815360479643891220316227304902564728317081508710161022224783132116457103398140639878777324763097533304238856405739983699197416282808995717775381627820783180649429004906993634399052591102285075306016479774250398771893362200138385116767258920275162756215150519555899952688724798620814495288770514348749767057709694802933513474903448208053041326296541176256602128619208581463072072129497009013967465858204227846098605897435245841635563529887033891562321414730071097364056513237847157645403714621348166055725885302928654347268918665471356493997775462625624270514137382324164711585631726427958682781544119382776828960872164890060816080266040285039581473667574822453202768042395502535666681296674828816914316377002582117611161789679199750753156956190258294430882646186987182952960906028449502253078372000399265141245204811603806123479920214392136364469823039887153535851273771718355226961832591498063428718675290317654476016203898866515371560384827460393904571711462782160788052637086997016692134234754320455640450396705738081988598566337419626791712549958352903792760414927213170973566575236029790908631361112209756349129472821798505724587296259400383921059130208247808298613937806528122240239405346381074369147811925622020461945066918931604758882775585055659733750660536922979573515568945771835299891035576947689331486728771747039729804149707925420585313926105734895354180778256747953320892658822801107412736210412002722762806874847940514591313984350784491857573151632292877538059986785939243020468994912568091956082724864990491004885214517471082197569155221151349820717161790345286932969654098413697075475072715559255330662090242061511424719681813579459391992508996468117947867293765550721450153894156298160677684416937351962680727807531232104374403154654650702970956613132588232164954566815889477135317815922296661982754721218801162214480153965711176881402278454676024038869439206064134173219689062844981838368510545963869898635208074624536140283881670950488622930287208545768323447038944142461167212877007399961876043500435583076902811881385448409645343174466748631990367581447095513834857116037790639336166335064870821786516865210747587806415141048675253560719410516731273833033878536376428438013602634020345780386956452868579052157606022191492050260546247242326070825005876328121765436163237113950610655450288419241591897132873852085275888227650794032458322880817272723317105955925163229833585102953120694510893838057393270609787045038007968132878463961174102847232789454378169278806538795063422734758740709611525726194581466589532105057508729556620594070609310350509822616618414408036489057063993921569458122571125592648279207545808791355397103241615491778662783105096924489794377618677034983425444797463804600158781012501568621862905465951617762601811396422745175216125012406813329475939805724666310058802055497998003932156958738338003557188570138179152146688489559404595572591407356209223134493098711614676544148375461133773610917128436906631041529662182813985990113244225458034978765652339695279351855120610834269923432055763346583403790992217980996054777829747109305605393144805783310357637069927248572294609891647750926057746326210000146940265833467195502657125001388638085929580445525401622754340739833046014705810663680729576701998768577347315886304008287137775812846521711111470025135218733077172562573590581100406456326478581688203076900958535724782559342938165357836396277507636082579140331550040366284780122444716773731114599310528166639947338296457736008900863721015837708038034775873790975746531211183748311959313301845469699090344083323152055978015886932704376816534479781071326291244123925912803944664595522244716294306739676066598195274642945002394987415554329743903333733540669216880256477384375800580902270796976586989895544145997833809740218481235287600814793008035688618931499792270030303340313843281970573102217981755589908362228703154986688426084352039157345132341348527737876833155433439548270599194330446209801443136467716442143969674418064459265411876935618727748167463429512735211029085599908663705387612816283828817157472447900102355764613948755654059710720448574838800634148855413198237543284684092754969990547491424989275773115515185875762340924316085322743551105656791030802135800938357044443223136214006178260621554217322625262666428380087915854507572126174267372403599354908428527890130820269525773652497313392000147082655588878195708843249976563604783259552286511705857747532149556066528370342555506181904094525845028191638900063386776637801350852155942060391962809813987543246994872368906309536532174521798429046697803387613665839338901099925526415399396847437667725588045441120303764508768567988596108849005620537529636632669732228773854363446104702665040057849404084237110425030215128829534756323446892437170864943171758916791914961399698366944400011526715363710435647291881023781281052362113472180360620991659551991599992007272453764430886774816064305941802640744202124365108044931792567066455337136174447886325448918077784112087956975034298932592813115967858723178277851439030161102004620472007923762872638860341689003532027852654633657615727442313809171123267118799201145666320301774249531626212542446100091611500430584559704748466763807533848925631723613568477779340639727322244111421287635135017409011057983027259989654159301745057117954937720859843498764936393241704478467192071859085859145756379690542922535335317133761034119443042621648629426603650332825149335328006714471723614671088097604601861101253799332985259727313255232124950798761542854435700355679618092550650512990082040642086843317964426073474728780467167343998487031332896084934195031849692208739338374997137215832981207105531198486200474685179580408117889195678244801332351560035956234845865190294445487300705161343164250809825204719857578013537023025388868559032357913496962479383235632347481755036802140077921170982162902874813280794560761590669522357616564355222756432161580155948827608804102410163487968540935847815726144222129455530873902505966145563527143846674147042394367867438401502877805147118252807502496171189383645867657782186260181278325529934628858889557743479774462491481976606737176627319210143639283149132956260172487502468088867934356449561744888113062801590632491651892411988333148071011885644425213276290441423586458645784902251632061142798767625856817804449424000061173619159011983129795692914575132190152940859811050907166003993692681414591636126542732854217309528036576209381198720777906240400501945338373673571091926799032398846262615836449999106537684823881226462113440141801808167828845679783667739495260531421710293083788979843683354333940613472605452857680714982167143431037805583685852175426860909847224691671206940858827961553928011439561381202820920412149153090190479119590946703320198295203756460104018441307884576276488178934737182973157173093062680065319288908914952348097786328138686610035836792621235549058989010184456666393455700788709815836460341655768566894545732758118216884309557177087352776179276177436800404217008417377817389688840714657197599233595341415064741700975537837139238692410334521576354001332378377165031628549232519103536965129630774088176277187612943661116723495284555825968973315950535222432235306704266199448986904644986708356158897908939569914256303570824133893299220345943140094857185516082285934985280795507392666821741371849966732269651044884450542493440551738192828130744038883106609624001046487765537451428560802466919305243724475168788314937013112814782905598407168460183100489056767524764851582215976349204328433930964534373201461379189971507821312522970842960560439267775153328047195009780154862848807958350511604928888332253848313958372556582010065051762202680437025141838291920001745402650499906968722947674302895126437661897226430587417116244135328152076634333023227586912640325067062477539577917724345121244343686132647651163529595961917500956395439692580274608462313036557250083448185004321487910041672559359996659038693861052288785282709593071845384931234445866351591783830419505994197166482259005885739923497650315746495646126471385429705067449662313659752512140069474362936077543520119532601792948962936940051148842787407122367595656722886856476172488213624380600354245279508826228871758319233263804698895413149501618931646973207630536885428270790149178913705095179056637288412985391700829171840749105129169813145154898761394389941414159122383826754805740102265671907350488370768711777832129865496625512653135773011246781291655872598023355785207955419165575686088164598080933992515786162927580291826287643903510593611246515081429386505840915372335096195112613191471912982518182784700369765231903047570951587379569696906711510097178994340587883852716696189390057848725521155216378485035086352893233550500109785332369315087806076557514659807549562816257355200334681469184774908970637986601988651429539321034617564656720709814357515072882552553103790492333543954832031049609088351456949415545159733306723918229544736359704867105063480296963830041454687355500185868550009786039468828736834340441242622778099508131990480890883643199101207762170803256912476112141138203840167566035685128221282507982803791903039126607187763053557302217343594522177613460952652513637915175773314300122698154495535180832018868595312614238630126153633168381709590485063796487717687645196181864094890103754072177675290141242543480997983767259143304214160693696398133336296824875345825601722031880136539387380141478668945970218684830702556699490472386218649209648200649596200460739847917329870863556497845123267139443380004597452760798103078616847275384394541383266721632812761905131368313642881606727124684977322645775585863507857232446052637026502622875115068497094083518946655643681869044971196300836232244624455956257142516716595240457660430764241893504824181377513262275689711500916104143627189630437962877125608694040938693533899810475824797228208151286593257343672946587809188543762454259672824429123385980335344804130697166365769973979293206828133361065305797601886122685645695286010598035858179182295357342421488028983345646650659034483661167177805286160205874278619969489636899925848064052805716080759428120969781732298614856805598311921505671327099875835130460644609901843773822383174133532141676302529777856677288807049729394359634576718469086405591028356427315192680309828932363130910131467715620119037863337291311657829687600655169185746344936902640248806404185228258963626058003762173813392276027242451820406526653411291335805514297041652038893271182125554261404007144021113064610148399978932966711565203849953318448094289177484048040652228059448445418017379765541457996475580435806898440921503583836970253980628592742264979446225910382065210138058734061495652828672270546498022606014726254015033460213805956673781991900366185164363569482690943214885434702988646984318962107358493320639305840458950594272086334893752009334105846765726909739112565254923240967008850628034987453847463526759934551755119368305358361252349189352352135237744422771457029675401114859432991986975687864153839952412318307010956843229840804777936237979162886521543049937133889142970856860369430504303701862841251231811391012523276835722846139050933101104486625176928902900627662204373274177604036294701016212466859965417617609070205860853981928349913550428780521728756178680278839334385606530190505100927136610785891077805064565103922257825408583772024426002239614898556543313289566705457994222537202859959073112488709997442191030494575157533369486529666969501886087399050254054128389415142811615019147985618428111491302436801743718346333862519543295572512290570013558395487108836894481725851255445564631638142632704267459942481298846653808245283403231983671086068261528646567870972211189283785425264901702667430465625962939787804123886054927685740005187917961159860141428902227812057645137767333119930294990425125601282841915833784506521658727835980279840971749352818977750269987717374393132637908880610071399930683857071226179675277058509007562354422444851505972616150730468171819402135122636562176435776111796435611042701445383973207009338813420934542888135281246986710041769001815504088121802347077835099247989693192624164666122927976929092410801620432295968533331739798153927502808391888724340296032023139852854995431870345702580995077407532824900430443024054365358759916755648157144806681201932388037213709514537140819203919564474310738624377754828444524725596813543538977472829279867380669862372237622396915025076925659244902226421315434074051301106060716451730712691522160645633828535594826439168561840297571367997896920146050576701233230846142715290219267065072957421346116146918456203270203348956445318489245989844643814370942603011151059575249239089262019138820968416822816992202118616268149764168247937090310263412614198851024946309916974216271536256983613810385108524216841577776647746138642627909072315274988231308201272376015074294505056898994792469446337006176853136814673573542420515292788300131981000818844432360948699532579391264654773759975264575975984770747692939684099158308481845570701603238371686893005082919719212795546864448255014022904663968469940753949309943890811427870377437254755907838095098898698250599472312541163872029245553614229094592525614113519322208449420604398926371829599869763745386725895407083262773257656256049134538679234665470615833685439615118474665733199911737754355586714388737917558085173574781078183487342608448635676271693489824348821510826002670400749191025941919368915832864387640231997396816904726509401027976381641078278037901454882225478229167450937419773738730448730019768273718022907023988140887661907792209117480938330183982236153819248395485762065456401934733508560569418196649879476160384224597473292681288752329276418329230766693269037647977574997721612210322189717596619349737541396138299631046914661830014729680082244536074879509529680262767630888877329533665452226227595400189549168310355577229817643876088541755356958745852340741679770414008829885608045379321664417175735111500854931340775061604998011747417664809647189813069663564563306655959622719277658470071614104784674845726906870915649812167328602926725181133700389687357390864637842371934437460664219853227333147682130041883324551689952237112992943858343727449244559580916202746543665729744647988306227921549732697835578662439637104194681136351310744645486661304257063433394003075584574755253030049834084831843697899358714895503827538433609175445984647333787517730726667521686804326403288533154735046654948925933161796232822256038887035889566166755813063297341196151276593848482903060720334000550818752777346099558204960415069186872902344709707104417815422132815153794254144815425168772029241002970324809270453213729069053948190428229019657414765547105376238160607654247139779713790573468168562464438126206880491838890637574832332601070650987798095840372687312081616660596507693134439362898847477396106746442987171081078669139105788994553773112187557519215458721391105253885136254085954705451518872348601789591501263400223705216722557672407210722335520113218518556756415944421133991775487058701413246065399241364026919457252505505032882003771034779791689066732245099591159499164198344698418277430047965075321271880013354656289362587008799941361234499922667553423715111978084184618685310681791033647821294537190656282657869058560336473279070327784824145208957864558783845655141859856556388231711480887192875128944621081969238756735941688777470622281185901214683166647424148504417401308840462782770227490305472898886361187212003682694790820012068306201863106638810176218492714106090404938406681086376736894897013532440364548869216122677295657216594496937974165954906894997900537086174939111203468540100401291638240393638482511717130864022085675743369493902496083123365910246166969052550841051174214773676600652621509067497134797712496585080495863601780629314059612415998853712630389661259069732484723914210480716337628079709040128353811877756757202278429907630059092355842295731909927383742530570450040927784632743146169749179526566525191658941659745839596479238795519634981513086206943244632152053439770768321450730400636871051681472763001780072956184885491069348602029701882137619992055209579072621078672155502093858279434454130643975545845317134307474936461464346713294596442538781654022953035857208970477756887569424493322822410363608761726543862177400624316433665821884579826812294573496348017395156148915740299322355617662129441113494418936470738506607204632592180439064784287124627795888855699847290499707349492606745033437174714600442826018491326829920159479547334667728245426300491814475528993504259764821694817340026754031521848215631109794303888227730242176765029445202027001503102653197655337668169095488223055476281661729434100098304304153319199059738485290550621107961586185733293725958725246467630726774335710576979432763117709462290003412102160708005191473137587654156410018188202370959301996613114405567884520437716483603885010852085361830128471327520615172327662399021173828015901079912771237828926885714114298053777631369781847369007945358142208899249727087552209787048453541804248890296251857624750780379721900790797202428144324309841337239325855444169176698116925960140070482100274040685045522338180573037026887580549045506036745359920957554179911031220541820588039653831131837617920809658791864659754578779191193718887983522360534524785834855755953850519407226920964155045832139280857997846290934657357011283023517111707395109205402562510293912206207202271887161962346301903938877589194132420901806213719670889739625116662445783871136467938587059557833960339773039631493097092172307936404638639069875955151214468767103782035326271750420626184737057421933956252838659668767920206148620432911551545326838300041977608819373667612753087957307245997480184361995136870781475291281783189089327512044487357820631433210513318372544149740564779809679101015242835852419831405388786624321742739290305923751033491183768075190895062013685865457499843635244824124025728125603492451665291339966216509529581635244017705137849879768453009922451934398935574357320250760951923030072408066642275198955089662658504713494678509150611840898290872433960616164823985904691700834311373839322705118201679646929064281408388022236369421673361091514711103596463282580220208545025741564340977226710964753715184382285966156985668747171617746036168261252393868384422362210923739333769667599613770117438225774371795041656794027204845486585710374715864880647321989603512074956382673458670661897258993767843056707312056629386777153331436899784739902577874789146884922167055531056859790067564409909916370272879870200149523566763752901706684681924381716567370097743503723778854485354970770474868165215695611240826816552655469734578830813676518758367714594480902575174075254984484359227958926325888219461280424979445571740132589499409925005168146803328792483865955264020148759068257720837902952146871116218629789555958228230651482646164057801478755661385294042391477985568281776391751145719507831474997418625058452837832082465794264892820507054279031487950890321500711421789103188411397484614591899593077444250120486608815019531049692052841415042666662553908664622320725868742966938473999657835531152992119236359610050589770952318318167895448744019534815387848341909214862832429332032134766039317648468449902835440378420528166602321542431246146566846090318123116431355243094016504753094027081112502500457849951305613450422938950630641301565959942199829001385550009024857269350867687265839166086792790119167370747550894690951710302239009839570845793900472418346733681849472250684082894903915309193430975187975141111053301042307948554048924414203394940867731018952895355129292627214945641322361634252597603474171336356015492245803591959663223442806585561481513594503063608386818913264417724888665269733616384313310488498744904997716251505535195242947532036740766360023306399907840750335609757959994476172916192812160519021377044835343770638496318273337416736084934640964525907095234721483953341500567556053460825008083201771067026638990522919255901791458885807616000348594635139678656171187706896433185280924592430079216898864267051159473788994318969860339282943009062954195268755228347994955805845878826003777651288968149819498304949979636427932602033639990750902487786970689870934675332803648792473542936912003222584043757824347089902949639912281575662613379634144026859082742294108598967777567833585265273903672721330193672801069863193582085983437542632871206792916872943131412402770887637615040721260132118546570305718018256259274142261878299324739821092610992202841850507799456493058032470678909831340130545296725943832404643389686507699442061682588612573838439294847781514830879421593582303954063101100454043267198615354355196008323646199366177042355262144918150038443005768840863413711610996892924325282896878522240883843887236094158063493063278949399493082897420081914049856818193816871435502752728144081280385195992766555833255446182761007655769336154646278661219066184714479337552688290782627264252962830098399065934341391884632896853299909745703788531880737061131149437741245732115926577542464750592078824623524006770430439233807336916239583841170986692696935154295942485566556627157290323525478678142669153358488366717141804831986253503558623660791472187962400312016575606450824581028301164899088611442642619470876057783497012043127041476362933029536417107222207201351140681473932969126717175765668190016287377857943508402737551869559141140801053164442278752693136607089068402865332734202583416772642589385860701479308598032514658563496462317314576226797582789279678918281538233229667104335086924036292475986850412878607734046139573341991134243400864265194677130509572876336792541321053855906388710270215145142201208124266590196735657070372273830380426555561501848071358613636718065960399264950805641043680826235832117304678434186317281157996769185924426708522245706006536098979737096805970377278440433199408635928701592401564298406160615715388185103980005766677283371966715657759123362216292231257150031440429573107927784266345821766655166632294174099208498636654885692973317014192426200862603181369171354460732289011823177461931609647521050740168751547815573848459017834305348819506581152185559272240594265861967721879453068900023404605799512169819029200218599529661380145231263754210726370079423564361048979082106598577570336298571821997063931228737647037933568342710754486665698398720102895793637075805757977826473006102826625929265240016033456586708015231086010098684961522897455588771973874054551820393002642249597412117965652283372725186166965620123971023329106349840455402670053929545891823825863493084411714992565902445712990821721090423112100626703426178068416111829670150543934928217221180634367316022400426297790244945250595271157169888719565721180950349262362332628664099392163496983450289746946333438307163622439417043272565373360334004011899121517153364394026869154638971225391812795920367941287153325267002593212132640011110058912548935985379206043335877471452550511081501213320306862771282055596299147786719606880909734138253529697678880095668564493873483302712267422027420640349096697426408490925473833783529541818616014990366816847082142031704941245440830960065490683421036957577131039861106557513438063533941337684254686482076581574132225660835906249382592879910248903127608106293822453214513455528984683309548762366553757549186830070637962270578247179950123364683585232398575949264150479428312009903221506735765582009641074819243276015200588303522234202755185657701358319287074254427685247172493840584058452600924926245853853832067979456381666325554485728735866065768983636030441285220808087791189611946982372487074694252822931626526845212861185246714867165618872832971581262073755635149456235527462389219390017315935609569350015656383658672005583535249455405316170238303647976518375354111040995999483043327184612890763472991991280608596763736263499967256986455596243223532280686107384727668473201385548536391759972806957931850078353526394491380810905941591600062408641921093718206038875804208243211750033224764352870750137526780590181119961750549734160142461129177880945578815215181952426653763386463484464434736494520341471016917776899133753032348136310155581107691588077305159044403822760795145109661974461666174826593442644554179040699797412169592882527622769354734395599595317562767219461231031822825959898426876680644032528793174204080463456669322891817143040530608804761684013901169624665882413775686365692724690753357292828671902201895873778825445626005640905915815608709214189318158240073482332049432184521482781672114022142115959512389147686541775667479372170159356758376511320595359571882462583976363771633637955721365989887132719733775985474398248473939999512995781403627753167718716931605842799968004633364389064373086958941013325103675910538781236225218951071885863356530307648290585604206550119346852028860700205772418425366036844103256448697548075443298196226893704592737284690267103582730889497330787488019683735811896598357784254175707089786824421240958838762718788099118672229427121504738968929351480853887498279575137566710891594641893103787859811048488276077573820391013971220565527227435414589845583658839828052061674263715372518634449466446766872302889056472121126004393396725139657153113989552767132078291496797015678457298157025442502982121561985302150184014557112070367797983901814963746381735662705374256223102140982099041596616772686557130273762766251137039994898374022093400959657015938611878421052485419561659099768876658525566439309595637521565230680068997389077574698865458817416901382450278313183992432795472801188628190700516570449790962872936374108016137076022237498478751668598677087978622853451474684359491583343571972067757503940984147020707344367937094792271952051428111914486555309993815271793792894577010529125946092559414012010882168467728647298781294906672266645350445948066103468063253173383259763869750500354855798757258261256769319993644193346370614274670741933855310097622017125929649495222082346191154866504356316069932274820069709308887420876876592344246146761004844764596721432457241005213567660355009026139152007714790570107757603626086039809950608110145778206968457804283900383481584496237773653717832562385987859947672101518452567744956866865368228952652579808216047788340163832035539343020075436382750782665784685310078816436006902380376252763751379703404496793515774822792974985243391770218452242226465925764633976216915420219493643711973075212827260334129547046053546280953309438589425457067531533069697796187583008105897236465261275754673032825750868360471168934466821962497990195752241340148830303406930270345851350720183833699068408881287038108014448499698512569614673353528996758458615089039301069446069285344450375273409529460502905810882836786172295312073936047946775038557521192901603442372835613298182817156425890924850757830466930031264081267830980871949804433357516073234842077607281528337423197559434127532710775831077308461091729491109988394571601853949004582263474923405063796554665103196913143663638053700114858084528349589089525424255675285791373622685935725047127117048480667974905287932555338797575736900809972987400452844879565184681147454481965801334801864817397473497073679294512270414981163936971975734289341091591073654292610779383581748921630658465898949119604787361873038178755234354113711954643353921865172185891324441611964264956143724003773219296323952919520518960719557738287607386576758118920441911308848992961650109419754993394407137792039486592613531983391125772134291500791269594106016136741297904912960547201598880634009827535962590797198359926426396827516961091522261526993628334307498302109559661914845689226209409090691609024949893302111589597939456183557989905506086412016488112063725225254551766752904439799881102795730310467258752769378450593485519807186377048260013187759591004296306727398679782693215783123757566269507389020631066828411372486796124881431704954724391809924451622082894342664072804233660228642683497078397653650450151186578202090766570998700289123577358119158122526921280764077154404655733135650554062907858809902379645460226727676336255001286791106109988381127838025328327427352863161924579005098370311194619735124519348384013280892869686011425363205866294611408770637698731952575252807104617190625266072241915523284697287982282928079454776196670293950908123383079059418545910666566309645620421139285664034095653645010347065794094985761557538349355426033833265359019197625601481258646019519745603058716698967016633428889994430223963879562523717538196220446680317660269351196265116165914415434063076950421374748974018736254903029136755666665065596381596210470115692139902288172995301456428741470628318273512618175054578144862011168984534715751476704131146564269453806108866953409945614496840484146792531511739280900537960726680531394774788165522927526359470359466811519525409303166885370404458239018653723032422743718186504223334556416554605384181782821541955579593672851079221949591343905190223075590054423138723060829644903704582085664154363010840740314048907644170787186315653904090657709672627375690338057686197933028771857331421737199281183692500985090218368488401152709328751873079549541212545635529393313442587349468136521233704425174064452610726680287030121947354353008700108478666644228934924490441552561355953623094343255364786053984006727248452261229098178023447429579377629566578335489024291621702837654587073191269135552765537485392854747238396259383989695410217695939016518581105338752903445513502033404097291328114057546590850762116814477956520549875014095637627424761217294785978569043490128966630263960073658990988365531548959785515823688231351375455106135101489015104774708526890113535602176478048134834467167086435323484550392409634709328397383374773758867008622167738468139443871136667944340707878763830034491807025162521657345969454502389472463239096921484553492798136581947010596245144406121327226321688008799927849728091428992676446229086081291586318131199010760634139852594079917987594063630313739899821256347450852598283872900481807342069606082606196014235124307982832192132581649332460174753326533728744074679544567448008147373735369899986840432783857960004912995237283493227170110032541873126704452710560652892225206078424880800149837866628193351413154895013166359101115600023480779512241731546664730163372079237142088772855123025074548641580503119271063053267876766741371846919594437799568300322910391004442050952208439599542660603332802766833596114460025081391280509409706034428033209878941305124030322759025298891292154619980629829808298423153548798417402466890774076335592332464051797362840874459589220493390012480364728480841337867510761959288657100097144602425071258242218764334281651519201015234394720906730852195706021424114236458706726714100265323920405608352853867404233325762226467823636675325352422698234767463837984487014704762399350621416112693340548036795230107893488583194980186663063175748281390329437465587253548995410310091457594170846014180367395567355247762380293317516123983230382121215784059095213466389792174390647181531049185541056967915301772026922812886728069311985837798090852311174503621126966167249944892430081522856737241832252558820465291645654589244909914271748856010754384992770020845164210085101051563153567601112955598541565357857732123046787969398139478552506886975367183105177193573651003482074629627404835142175649772934432160746726692442535297711297957140713063200774506586362277653035222970062929063333612337427707967790678963868150657305456612786405293594255316556701260839163511558186610434318317658828270306202101274348354802008293447119892698668763664102625692184790998203498598845628859132165336818056041737087269852831426657430496526314705291299070804413648415363455214613506693737436360762599800872415564546805086711344731322764018777054588895227825637612110209594669877851306151448783484023231321803116341963873199018145799051015523237475580253499228364650167370100238600420412008169506130223536093433790692627231813783482047352570693655325268083147763346355058126369311679917237712091466342979453360188087176632033598581698448946368419767031514398841359393298932720438154493922595265840869823689723266857698350976338641214135557709756387221046152542290739208216171234904562556250576910177334394217581666890136185053006323331452295720935706892124935938815526022354139802300335543694320590464344190320952483326145254417498894328245933705134870691352997631008884286555221653980452641407181299043234007447657952395447299957066331129468295697380764285306615026788545829481280958423448971242660136937708944980573569287537974980280144604521762410920123590814803364799274559546218544749640148314005724917028771471684775677733962124703710883662810259517579794315486465621917395215238169933599212898009759040606577227005223649011638145879152873052463461664826514746667868864973073552405529380897092995162793737629763728760949894137138961512047491887915487094121292206536726069652155560669965140583542095416900352907747081021945074835270238791454567712342856260137589464531378615672557090723839266893913704181480024222335197049247865359431293936457275704031444471594069668485455131370708346304743784149360439311362414903951905164238881327106434864386697148405548656474217564639553142667936224921198413137854270119294802767861022498681309799126592599120862205201901869245930400523161617483056496691542012141994258275806988880040844833616320739850826635545991940058384922902897589440534597068703875773154992696380912293649023720762758939493308608622706521869446139857340626768709807107363086033614187071880351080260249076604449054964248908006908716340850927210114101454989522469730208755308149863880175400059125275452288543214595243656052503044413713340043409234649847112058009846513478788428999970204676704487627992988200679691638518508653690261387854280275198621241817401735048573449020211075849164873101799056744100015252662507676009655293496399641739560147795644197579578177276387284376478716423100890737293967261677745365395628722065535624275279007272542221853644442689387306780433299249375147212896904299674981775991997087139920148410620832731065702766152200874818997679949847269636103500493729409228576906410828693991012768190130510190175294424693321264601216497714506066764984706784495268243235943399253222862101594572989781980466612452590595055002503707703315923185347060572150299008125609275118959208615734035483064127390783578125710347246122960940127237850938147365356639785263671576110982952594134590783869465531686315721830530624534440378778570782807779555210338102269274063553256536208326531089637680260123378701191146606263637104456844593661033838346715056862286546919791601000933472670159035308859723304958535881752587762640923814314703271719009286572977129493491470308625646406544619419080926850312904026822461064031016678984618065563054361074572380023544511691135824274979470761848478653633015927359526820950497037627474899586839167032534028095979834287916148583988360285308932840599845038755546971258853671750984559937156408839135584937581630302057110418467338970479781523409679637086150915002580456985215565731255412568038965377053261456127760868508437700655499739829971059420071623054113493389568824580809546148879447132224918387773155676045596747967195805574931508120488627603495624761991792778834162613270043749293619530753146858895029729828664274718592204206648701955217888296303823826341108501612908844364836557523530269556438267145143957997514779684951157188594076123204784583314636686430269619676846946178703524465503808023245149864307754377289225677111684092465079585513157890218652239108458052159666706216100866096278041043121480945694137161829383549104907072885434352006099822656289760639961314980438528120806281012812628290122833699829523942675359185975313357498574941696289552071090799877005239737017470959521515122970672644489796475385674624656561470387417846344723243916165484050418920764229748724075626337244643246715350211767623221540768708582135840323780325141911385771678551908011639969209771221852437790569069281265776260105908244345540005094704585674541555687070149642461662455946097135738282438216053892570438758539413077992570075775806503650147188106763816120650451518524419013752094693168992202212532925147968546361011914322095888240989314587503523223902197808697271483293099018943666464135807542970802811055955355673006433971299914110091865432208766946850717241174691905306554081280479898493630694977029816738182907265181310477489979481955075014381252011043662547489498386992491261793895462040022701849871623750812902858836695494957087394176883595693119186817382391709942144270553820601237664995804219000199694786107383413517867634776662404585412028799558646460757911766162614316797717206455266789135044169833118579035100553741886042850660218178067930607521764116852709382953609826721228138041746644757934587055771458625327244167488016606948436444162765434433617008641436420862198418418302197491765248385419828858035070458634570647934507805840667285394117336086728738301936698739128832938588366522654558807974119544506503689958019885619070882541457644028242801908022838918635710912466458610440383527290312899895115223531148845460310925631421626486856937607226931315587617614769815336028155369756557071393362426425707224437192413029905797685116278426638600860990923062883614733366553693964569485694466875581776375362498464913716178356354617317493527003724460682369156364791996259165542428321131530234324041743242113680718501425422654177897708092725214771866476912562358327369859483922179094304502352622516450704504371349008830755786777494291582559509277139078367605885060191900410854929299615238673343302714155968960221297182967442176290744006472326428277799362213118809854686517108431057840247447256987903425252273651892108145657016376480868675427635135228743296519597362480928756138289363426953406781915295974015015630625925144340389556229625595558774348464339117205757959840121967652667110371629529410689117538220985706799891734954378980441397037373475520756224538064817614230478940456020075762446707221677587742634377804394653770220289363960326666488455590564813131436747460959047675633112061632334019121024126481946493075307314657097081178893056599531671410709142690653029728399875363241291284620980032088556910495197162726276893815222077197585065880485011925692470333520282474706437456553015868949562226412760973897212443315581757663789355837317718714642661317302322043171833101325247302526536204597793472787732794725144352519603248652650711002143738399600234026734007929912505631388802951250343872251606826261933116289246893579556171344941344008175826226320833044221280255102768783425199413693578907714563166628237156513076507897167265476199311664099530931704186904299402169060491024043874500100939462365421679370192773363961419253271163270660378836649122973573790192027216845515622755602030249962023948766224080971432517904382263357612429444086198981536082643893945071032619097206087946913454072750304726519844698128711854830559351813042157550898439347526404463793938675056560077439479190252287825290152889136620266780632261523770028264014413429394319471477279856404412606078135364677278529391914910772006941178781069963037173909390202809281898277377558628795219277021152836888613165695844515989170287483070884700451226396657266616369871697577335311806517332101083260244269025463628184400702759892415935623031690380887428757729725424810525505054593956138288392649982129585048017858174062906894833581006437014403593876278318948345428096168555940109779746807064686858865012236233415618348838780000415325341304262911200303109636589277417044094828179310140205433373029687890068268362972325305051174406368355329787236975224172406979066922756104186181625227257383492003208353931763229884125583383392756043137187648877809732573679927339835685960079106727646758425368983135607057888867609006752063000530992440140563696536815257562629596537043279327490969851269944230686491585485927462452162596285716124013631266614688788289227388441983131368746851229417343267109857374672712562462085396133128881191168555140657104219559857109536351996793659312950244801875412977837060561898619614760050683535691634051731692830607554429365193163080481886477430549142450001842274654576231120966666912310463294012590583842501007507705434821513395759420482104357084155524803510576352063913718992101842241310469766586747242802819444352152957587336685257079180115271178155592451795987616279875555384052850139328628425677039595241990554582281308891669210466768819704101889363230060610672271817399570624276883405196176741455318393595577627063186385163703170062968242239780934199475597304911865370156707161566270229725547299023399708457733641735081141020554058837429781220177917113249469003368956368076453583709132267088052913147407610854561047597824256140612850274512772151581197408485872980685094140162692267161710095786561288021736208138309415609760525997612986726417208645604960378515404875942713555143010176716573176981910283225501709402445293959210116434509718691834041980979931205134417811675273704803316601082219831880301557005365326257198522518241500295041102701024639801095460700478402374127321854901403598430384695850775560220849612149535991336099202246917315810389259752079195585947007193345489870456581279647533574103448194262888209282645336126982151591520879334015195492939170273169044034182437425873718222271964665674215803084600055887310517494378662599702751416589616114216519142418917950456759024547396478262504684208880093366855657441881015210274411808791735042041083142545805912982330411391067849404255888326954607789785382650808467824975379210046432688842452237237716196168322085144834246603942917375602320259099979657982185330544798388787604678909465776142029099807447954610824926398696184542646009003497475797425186921581387595146250589069021980306569460818487999096240085415026943598573244608355803597011338020828214830226165690960148123770152354296679957617280374359477542470071720707105286694237835018501545783396017792818814151400610676198380964640625594338576968515785784175112214149757082191929049344255300299204927658932325238818646912363019130491467394976162863872830910487394335405972051493839133421887980878666601875768371244509830873038404150133772866808838784300215872405621039420634540161475731534609909379669435307785665095575656678156251084604871830561949069366695851626152861128668604483529979348369651862913333317394610211001319400836182618929329560189421471046033630738143966284104668757294707447792299782627833430428265379380057376097478519792770363983359085372450489266877293225511044577823543317251711310190882259878698468137513902124966655945391933702515732812181003073323332056734881779472056527691388327078244872005160778379759232314225562552774445837744136310450858586209504198429330261207417431490755802928510790191160651416466847635080630528419816445412809606497857793565950732809894839874624827358176451064180061140583863745445525018587628179347753067802278941716021815940721942332482145327781843749929649170019683646837310250691811449958810470920237904042428206275691595231984201347158040770270698873541866740802279255364541400176371806823838518236575120527549438040645490983665560174470535790159991276162387857243831493507316602621178475272867612872501064880395554359531223661156100832384024081646727753100112565707567977690216421289115398314286320737147150394734681920903843353939470706026702685952271980250793016879057496489115795720920652131505952027750472510362267378684200360938473819025457682180813532121424133030605772736104375888024241434824380707785442894576818621305159624003255901123381235896309235292367053638396312911563564536131673783757494770424901435320959777759860619515916243685132036362823554173252200342764806829911563802502979477321072752008684015934073015014304038232398359981336190875862797368141631915392165110057950560079416528506595801962768425407159271767939935196280614896264637004397672096006095482032453598036087404621677974319712988509289013408539650194672484030369114217404088480530879675121838632527004590757870543127402668619899736473874073464007713975106257508203522094074817178680612755551987480535642924566347624073709041458127843095251239950476464381740986092205223945944757150554197344846383590706558534847358699383812490178384730995953864034798739079619888143752541715116820582147657869059067491563425537606384251833435495002752680243214580763623225098325875183260582088429295116364525366944065307554277318600154434826409812986391636213799448722934763779593616880472200534260037193313750225768194082571868975967626063756670917929830738312414697454898696750016437922844005790901582898564817705979006005026473893537441530892940400531463400795019399259107135695950874462787995835115636883566192013632233523193499132536783664235884669893314239769470805734449420105620690280669788884545501967108172713236708762357838298286658845364689925693764806998519691544379957742374759668996582183811167615386262573479070767358586691534624097528372383856793062775982844051853168669751381612929557699395089580885653121303902442496923045236192731676967053401557595819379967405632916893629032827412332988590081846791081514869727192329913110175927830625311257299267786913633378429068833198333094551397169205426176439822132322038018788274435612103211470478756105988748852081145551620507863901991420366620308111803909247895657797682558907177646508097216334593365854442994357934151351719553971247258038088427680187855444180594679312521054364149869421433413829538417904592438464194807819787956756175867936600610414151824621047525601920064892466286231231218239052985394698445809944109823208561549970674316427907710130607200092005407550221891709899343847094499095765061475946976100630361917549034545295015833760859825314710320549531830940180185194820203611902210515646292673173278296264908710541777580375284781946973458602635417301436247905918590569941839142310650809467370994931190587946541522275676897330093440651543713023383852457113131180543759370044081450704196738856315709011664534303249391594568766979391626474027809058696337989391328296211857333393748515190897322740478071102773140231090637481956179113505120681555420252828431648239861720350986079349559345039075282209701162797627049181601473763966217214497396502701118909847405125413112966807536758452569394725831547927817163441615920188075690378629906700820070888179776001743606171388725971209607894671297114137857969307389065027690253231427361318618235728364416422955540736050042920482821267874367520973451471911033944406003045519567174022149383343579917708995221058563479701183119839338609911930717654604478363384027447330785977114913684414971027413790513235905675817073097120873299564177541328285434419304050671881372856187718282925788627844867245969270674857973752808499824057324903937327428063203220721306944517962512418494043936406180785547666710986760638745374665014948723487025248350739536698104617020230346128005574968187176029214370537573566802736697756663457077664688816271489933828517427860813988989303922679123450220176873988339225210128706112642208156121906565864048300336339471955604819627294696489136780751413050203011478358223788479050577766720430386690555772447687395876538147938932400746453223060644154730998056038672020859661597073779116429998884249536742257758034359602380779901158194408289450879797589563841250857487872445139482683309975194752242394594892229008689738383808279299285786185044695670489705058120019953840943275379835357673766503298766384366920946896388380108573389564389462092726383704189243417167632147492338060931037236211094944711461161766735323996475627828111495410544944674107919636280068598470597423598121373475999680316031369386491847343184454881785299864741924136512633984624520373705105246072309253776442079274407119402721123724199786629769798783179821671027319591588564770184068884623397860744986413610840138496629285630682105441647857277398812014661839951112014955248899765083903894863666166073383843263165707157979242978087268220446503088644437568273836983585822473534167500477103811886641701512008259268407199071086413138368875876844579469265751095794040324682222446136437313035014013660177679451500856499527613224336485997075555754244940620586031766352756381832719502626380304690115664333752458329000340052009240968549304537440584929114212022910488013346718673206534204390333529348134952993835669289431209920731376563325592558361054085038443177787482858712934861652141369429146404271446206382747281746053587686594167386603787309762071249223197053098112751299810990089214726961982421817250585827922005480330610423607645124523687545853912906864761832512019757609523172837810312370708592079000545258312945680272135330109586471392229374579851658266968493797064193665697187001802589040440301455947188640752805308977180014193298405836616871725065870593432251327979149789411069212907526587403696457469299554825587841701573677450076332846363261509069043777337838232269420174708385431705163041919700771889813354718937726728371255551541416875152980418143246343190653913203136551452622321428572717978346887475874454304786440594718580719389971321054000999140505335345232280900683123190070291835433681698519891485603781592642212499998909737984500610328642045160376449930363939141308161135189982051089454151832007970627974994073022726860819327587001898274982995742343264093378953910806975738272695407657804824490278052730137705239418809154156202556692358729556938649639937399691935301346046241358484098287609794553779975391229877302958719465255330280321425903816918977048973694724154442522991800652293546270375473867500716375888311939166923978345102576269810983871771086882374796661098921248574691779789197317980243102879968382141569464329279368410105384681882454486317800656672782479846278038255498434388743307593822692163455882566456789768760604830970389585064417166735348636500300397953138894852815986621630081097151552412217703146449842879654760321666257767529703215522543121404997489458942464437188674460996601724630375379212227708794530919014678400621227677929256249565301982955281684453323825346812471466373227455638505975950394594951131887289777529607705445924003291535893311705582078668562779813201716237729323362663109458610460028998062060318170931374838594080186888069611226566060068133051963668641421070920363609709581348049063692071388993321244081650888118813148154739405559441116037918779517789141894327052896644819291482491688221399496905559083190893901045306053559336602493410310509912471663774403026537280962853147967765567267939626658436058380306922032728517768750832682092295059126181420125825456243646091043467525020848887358660178762302067787748575115988039758770332355097759984123037655806088405475035693532596753027927585635569410537796798417882789771634596768193129237362379017451186841972452645791291729180972060176405553460320886010575701097093486233125687570925434229036173552633262611464630397656006857016668842949933595943213062387276109204274650818313937765819792127495266269978903167541511797014182065235164362331597508558176682036694193396295661873841493047686910692853056801691488063051872828699334058117549713068781114902971282004936641450241752870659716736356499323157575750104260089638581691238970369450501692519912752025816389146123120077285526383973587664713323292679310112036437490736688153027451718016531281711872056094225096425369972434899941266622469833912482718018797488791651927416822754488212084500430546804283664001050975361967751821651343020501606963077360297551823124213688954072900089514715046524827401113760050107727785911825380950522903670649037662943792717271799931965239880439225605226627182171774837638557501300897033626778756303434414965211492071977616362484171899743436884259146789526140684867988189303868091532078357356254506782490192678673980837098761385869872391911177950570533166772215221896576254315542608495196763786610859671568983534014468374480746029728011733014617876833978476009698008816205275669901680623037073266500501381478957465476122749220136785422542365859051540229673033509714872395392806808607790509074773805735012998299879691269061692889631363748042804819202835726458039251832350033212217442103278562072360884198238611002559409357619858360500350190009004682149471501929007715210286371837285013120539450729896397353751584718810129417859162459632744136609973886145737641040386793643055085237549441352404305272006562970083710073869185866634768590026249052571229667208247187432035561398352075672794745191800202354869137422289402852409619900212112001589498231165864818494857260142137546860257384380656425283896746180564820310483682242786414265696943180634957721101432464143580534161328071199720935988421877214793552504649168240946082320161816180285225275465458870513078306783392231207818194385945737159948817989638230587997310438470069254069569530809505228583491280540509878711612477245227170187989564487604543702246699018357449954219342732993754966007444661537111450861887474352023389378080683970327915967024307618371712662598102666035229199407687104655302170346592412146511692051193312684153201158395559316057452717221510935784254951910772672595621827978964995725251490685561600700902445775039694118662040569700138687705235760412768786712409568776356857748819720618192759975358995498724782364334440386028707594632172653622588811666774485856887631254257816616333830030900419771783951606065935879119912632368655748608072096902270505129842821217685450355702082076569959356154630011037506216571991197648339726353766738449396094514619599035124234223528300177350667644014143376322623225520974919324873493870666296023322403635867423224781491677220795183771649758918628267124414563533732547224782358935934258146373387384884216276659816499251489834340804692786302448024120623030112198710502072472087409827685563854784709839393566992087893088809526892597461540715855254202167875241373589517970588301841549475461264287986227482313941220295732529892277222176457371861434842474523090768753163113215738969039216098390530412652933926054220015310315866892125368934823828794109600227109220743454280447184059978818230638846817924925499025095797300802520642361299401627054191285284017650702910028160111646792756237507319843703199121831254969886584988890082681777617634470936279351240499823156025247332304291397987639820474950667829209776954027996568225030642254353926347108739088422456790627134361075695120766394715057787195649645341934416691909667145882077183833542697354015869196824462219167529758860785308896018348173240961715728168149225830952696949800802418879562077956287997865205494507686044842468688352137585431127429602727245722017583440870617628776319992921207489658206471312269463806152949676790752999673726485318076086367172894257952215051637018280195004904994233858688502556739546524360663030441416382234189730143819015408247748726744348278156205275630578106746412357214500020362973640899490707416137489252093886632482523155614290569389954283219623327602902616540781036271131394924122267256190221441180932364040613143040942809057497747574103158548310879945637639366509185236808521901842080430703484936299128751248494941567630084139344129645545850368291900386043713453085428746718654804448957590909873349792315037226307706826053640591401121552412055924996732164629751502166648047739689769160698723981302462498032351583256314416638337960688335026353522341611432468999421643723562411419372696605917092168689235210869379284275130813127321425211576417464085545366982537558027433180356684694750684096625417127708116221898864231016263601890861632488057603884201275421890560594036717070640216787461312250274739965492211552511420585391122839366737320511640185811134903053909066411953780131764382205076534139352241962571706688760013177717201218014341777147482031916024878283466529996039052450792129721407897278325119931542207648941537624587111333844528431289155766891670208651439278520398319133315745731204576204879276624045918537876343011812136720889916140441285846138889179762931588839326428664724717836549830542582786264176316505111996733535568021050977994049945340286408290140587633409454218445577833780555250272192256879893767591884086354912104150649900486102689870865452432960779763387031896406475068163984326162759306792695760467286910895325977576422732125445889807022200392579576348682481081029439440540650750077548398274616711414046799261888748629660992332161696592074122065296781223410712195715801066676516267068274252161405509389485893996093278912389041330639558005413275236223773051224106385955528194366249845191129366826368397505940609591282896428231383042724103009390505326834750678275117254395963418142159999354492379639748858777012273311021545843292409317450690048928139360477905088642553507469325408303227969390269768355283867958407202011838557019311270065576557139624347993204256504923315213796756431779695925741761077412428706760782072982281015286947363205258200975532306685413709876351243985721859497258112092138255146044298320281133184471641210068812764332120491206672080835446673225195989578341523412511636850048687976682594063167358431228621526100529706967306638531258362658456410031821855605932582760111918959680048716945381026591077343122389877558653495003448169664248818267694000685978090791643457121725293847649696699905264543919321207293917385407523832907183602404935507624648331941618618656574384753952725402988523699272214144368375366327026847414334015608873273990539957890428816939123225033296369564083107668720715201523895720642319873900410277101974927498717235293138345770726506620145078501607522964680369482940844125529331074223578171764649807359082846871367228207761438123536841792821620248003926007730232197585009184841731136194397615368797451925261541898986958295414162044424809610893838119383398008144845610516776803607222227931854291667760121868060065845124405090695221225574205690738900145830315794735058361707533403656483797966060309793093295600580950657677525222221520461726120989283752370050863907150329426544628953437674461698389870718886690025117906773624071460677903659039360160639401180791495377730904456675238681557900125375545551391282812652793188030092738892118560791719747213092631359375781939827399284406103420759808507901057723211953519588880149399170493781732319990565373337564188581087811505551380134608606631020793034990512802429614706251688022818573574944512167588225073539653334208462371816297877198528670654790457659023618941816266296510400455731048530626418130011560235187764536543737233968827325818043404527354586417126722016878185986480051193099118775475594111159445826982206979261332982788494754488280056297588365696761101092771301875029619913695980292927576981012045508048128924136706639645079132288434741405736151169880522420717925276798026005929829652383137043698156848878463163247756079995887063796347594771519922194027242965344112031087781355673869980263066458092568634093219842212724734699838544323474693065409674871276980714377137617927291904133663307039390418116836203943046687138134392678258009526492048187696146328714327825574963664201753850681674473105772919423174160173265764132465446668820946063135969531383286700456785702731327593568421284139835008225372053270992844935012466131966768328414782722568971303791682301047697261041098929779576587970775215362384786885803946790980738228352811320126961477971115836196879916633068186414894694842602330012889093584844491852748024018526172912761777877100725329667279984886966677116938829524633431645701476963799313251718998386720418245247616615432326268144897545768444980564095218112357528328570508516620731600177653467298071791632167168374220745196972110965084791830238748057211388128965759487737144282116438436105006848595057861328145576529508058838677092250140276117254996847570922751257084454899097485487540538295375026734875502338442629705036897332715319655941956825282205029806569829669685320167358071889184192316231991891716906421454401317661829558123067607091012395474429629493698000110750351892090358823209119559302250171097375316461689080963424444615314555658412021208883141906497011207324326756881128054456284269472851797665659672147165415918944434870745154272152405787979119145872649637484459820674973282965614628411474380153470502410548146502501711100829967135962271085752659578449803355697722283422798881429031579877421824226042116848703248469765943559055233255572850367730021485292695808868593425702695086753037868808844245996365812238963398448489912765908488905518060016349897151281672246628920107576144763169340518458187592969742304243684616948923611947329000760452400909964512877435079035270928602345788893976137887316032747378043249672010064130633287486117028751408161927470220139364577350051389772585107877204241754262791034550581787022700921489226494168248208847459143386798913237035375593456789332909004738250810367518358970515672518807676564595681288750063202469636699289377801642975351016640568617500306577352272582523739273596715170930565750827093456017100123132054624466107552848002932485287115947264523563146988487052248428030257522642747287514839890633686564864541219770421752986213929424822320835217623310208149613984601981271654984744532992469788655148903756048969551115618964328221192694042611675957987926349813961068682069141352742029142909228723352425083840520378176211702253587156115783976400962417227576448247467411375014134655079678800657952304542930041181846509127888835378768602031400527249081796357347076225109708666023533718373978303095651710817760630484204706119014885514383274339306809138410335428795022201998141045714321501287580956091182437930365120865960824772090514736119025054677668448126987930321916992222564307697749859253941942996825330757415179166491474953430206634365843281119587633115001762543261023447397490453088104776068212056419286954052282791406361494360172793661528168928598066872334075596413040805792409601946060315545804495609595706420012289506069320824825239226127717922106908633598873163731070392994392599898678679404060661995641421342262891463171891409019219971257130318450468212941620849907399894577807987867541746142662185076836106848075907344321298960523727978508942574925104943042029468100655284723399358272690553329683078346533255823780874104965474774374972920002850636327458207917235618068600264094034768309939179905458787542592341665157946540062052352370385670552405158106453299566981222368259300092893006676639750597495991366774022250799726531313595706036410507421868433892991148504943644134866274300375177474020184287405258951107700414850610122202253855478904671640055914867148221104418467166896550721984938605275467989661208771831386743838664649949411937304306706928979622947981220502229457969414572304489044174193127941254769630235710906699343373760039397384648324844138790778852712285025203662440301096739954451446949786632007092319360575677563249043142327895326139717281468400333539897836822262768646346010871542083055881115174959601083310934752345562230934477816558784114380453628683401212778890983606326655455892695279270487719380914777150212703417307749665630387106143628922327215782143620019910455974970276855915670789101759213296693272339622454688898602048963839556080476362523268993918472543448515154169596540540443791905719041416229136657242002955344465004902400722275426510642309844620352434309287799503303321867437862577254377729282579751746507381759652591017233929446681627981466011357957790852405489053066391409014745559983610981994028098545883470556995281328024619936146835616294404908321434904677530117813177788260669826311249211281055793667488013502755673857230140979798190628809259676717793326668934484030820167769009873950577546734492649329593844140339979693246166004023568230634921960474743482980002775277165998635098212364347396186201587188430168905243577347181882317828369776323924733527129563254525838791430649916571578699145694057885186389041326386707913255015707036101032659431127993978047776019254332123381159467553245308165393129194547006837957447837229836492554859656585670610953773661809909774272449902596534007931435923922547459714922511454416443663691159150400030591447176972431081566234760318147491267661403146779634561308377093294004176173771441499262384783714332624992884214169422599942959062156249502334963907383478445015703775766834902741236924027616054949914491197066608553912749691584614207651114223701076947620159388028640370244220543656825742864974110942307231356415479863145872837915453867380914856396886187421085488781771413550145644375253109795122904219511883732214359032447915696410483129562252163757101924385725025181908854444534288407792931797602108304219606977100635537291544145321439810385512023599852172918532540945774299239314603445523022658358755436622677578524892039062308436084576456533471054961734208174187922698547264146843099645361784482222393465339212625230982164181472663403985945420672312813107400523927478528257430872888815138279904194811864100690067172312515916738941105519941498799528508313796394348417881475947332616458803954064505560568914439689806632556688520742341510352579583806642624895639063977383463109518531091084092307054741597241467545277207216633489243068856182187866927136081255427887109636641546522162823293679820183099320026383478133584892931197679152729208948285704267518706053617640921528575191626934753132194395128116838806644751924811511233560258159240247910444732868406775149758218625769632300070717198035580591281263421934906136267444997975860782459083159908559719473129393545860717691486760443165672114616960825536341730801088264594312218593178490259711282072920971612226588777815012959596890289529392827138475014877627189245132368055087864760197120784235885369526262495271015543876937664929103096377684390830762922489373724922338054953351162919496659379899635342004685534733420636271357775608788960092118377970938942844767062095304496417444650652315089652451555463118900738362082039323451783029069365874886843594453461664732859411423026456825186889151297066232042902603659400528714609143538857023334564820057183764787045961332886843080123060239870409603906965992817229400055850945811011540503479328618533082299738173345832808943123369444250372468476058186122783854077926667394190631103102339257641648329742130093003708724340672295020359176987267041580657060725802823885514213698254033794727628934406718170338014965804649264224312633095353333713034025967174997211210381214695133035720946927055494752176332708075893947739346547763915589157360654141575109900394169208728559280358134655124325847628327742298685346451032374884053115881739344539108938759842054492319414582408884733104144610285359836308270718445126716657820642439893219092209144896095943029416439180090493168675720507385933283148595852222544053449065214690137023290135874022301140963306061325005155733736999759449330930511819302715851058479595239713933247481741850025489664904161869819813600760447316643226413698305649865187733848623210099816081516842113284509476833295339748399342086551424957516167219937774820715019608730771229504968467115559206549162605040556985428676649767987952128284071072718418008420361227063571081086206518792416177093413799126541547547891074756915780135158069311954504972830921324109212590599035160828214804014452190957564822710639251387813023708594202334984505493874813049733740178817262728214597332047697002088304910614877708720331407903985347376723724798747209414782170647320830398953430373634880411186933794530407840269890751038056860412342367405412110679713862361076700574541904006059577043640773587320534400004486798483263007335427925318410231269807418078342821010775585423315594417730397167350822027400311915381478718407987250644349883006026049452704080843016579436763865196854340332161230853591911798677677332017779136230021719121360329617456031574990950621681526468925496446936784192263597862490021272693856103239826353518565946902591537911772323903358862569296157997829533835008748150173959706957560449038707304705540812848924060220460424271489211959359651738484450617496388032136863284247066977069158791616875186226170437010379650925042770443165879672643810341219583482184496889387952957970750462315044741352501310537143675017402131925501645985568549052027991195271624090030588812191362669352220647713401464678200910569872031124572124095833235733520358772658885768022916082975765376795986041422223732722079546354904527400597586554757522433841047630836076738507675958493880647905139425077169486207129568381389525288559510834078715762273106011716463463929171910412038806957637870627871788168081413260013763965854934598762348482222287755226089586404011855619404871611649579861525489207552620117321399360894395431867869004566057159848071911916675775165683345592911063889990590654042049952929991351931039143994236294933456986686206313925474036905270990268658120858170540432080758918936069654791403536818546104447479404211032178602985770060568565045069408732637615039922470643370847508907986205449283171015518213148284499885248173667367718603211654948172637445021852555105637171912808216296279938204673953375548287504474749656560356338072145334841640206523358604836925997196405593295725259569353332521434086283371414673159380609465018559352971672346726326571755120239086188232801994276884059724867703979082991135425258119607335258098865697696336987983097495552829745816029526172979304185682522573264470826259804634777166436932281007689327701915670640657407895854362475851431827811263046656827275203961050491285024906337496931424163734957435903941168099750924540814324341167576455490044316928411335702821398708260589333660658356497154087257665772741984461361852506527162542503561624532563742543631487359923794003385803738069159850454312172565574118246248866012068114967968113316424271349992959773232873316814345056451885551069424568417821474174247162866325499190003957071582916697849135280039855734132924160089383338156340802221988000063769743073299025600494351626896415526287566113774168328533827969575547635645815265188458865763463395774612069825156209643219758901332124772333341162600526851279552242328976085398331535130787527728224085753334956778630354039386235093719880227978369768971625644506260790563892423567063307614284063832861632896875416032987300017824589341967865667967734993395084625465903382195680904960423033916471679822486011658132707266588622005637142394756054404765579462221969691409861936644067054510081277653044743208449624675017552768091127028700793303382125349322612353799376398503959265126842050713409921223672520031939134685917723673207413346030720593485099303339682342039752164181195363982758126788729536953263018981507964945409819265920468292078595839794379415787237481997669259104116286418497108789731599568110626865224080310048888122209351481523024808670230054445507467449260756766075957686522244253212745416909680635848520034674362855594562752075946203605463555810529440770756201464108414924546411546949558803807490095095251307412427488200701849634492173512568566807490379289728098649265739488835606895937902842574382061138364789746798119109327276986882081904072925450596322134342428431208204973468326502889075583243113515020927687116033767969370277559983623518452800656129483814026972395739042954399263844875606975985843526558256760059173941589812946700833809727260564766486197597421759177092901274977481152871121781546318914490778159799712063370779713894256728778624503069856065561984385410109513503731743931986098360628818263932222648054554502990242128937717111364832968336303068107836735838064934148364321550320484691355940451445376431984865164197879970373620480530583709631273112667806021124910535785930840449426459454027908114722779347158154996730959117800656205981118747733869028782609547149466504862398187394307396750449493558176473458791202592800177265273061804446636366901604089766256429494978534313674294194532528547740745408994021369144189332607629949745809053531689716650844341408714897163362772397747496337375853322345043261651986646866283559857312264813299106871791825368319293574176327233871491170315140177504520358683612513056408285460452483961349800623185276908882063890262499744613369243074531869201053675387131568971053062819741114659870995220622392153396238087129728153732304486946068942174418310047964085362694734548128977904496936443874517425080822676300061498445418473329108925035078936116307979910369478015601459398180645982547056133975893389461402823382319066040584182850677571191907085553683308681011073340089207614691660005619033932535608078563215500856348027282588212867580453764570529606552997299925366222042133870490438586337707411356980500429420227941144209111122256246672294188578903019085867938308282828181794558008417270171290286942995974633789577671886322626845732975970257465261141083756993336362565719594766137008043700145466751709348692371622329509495331570564309455037971976780188666535170839545807867322332023912100880368488636823885603799870783200937971968990515254363032670135868332072105696309855782228687350262572133380172817869756785094452238102174559609335570689770943050755466608135653627441451475047045141925762902280970423503674644303252682891491044232608658436399304473813624860928428489575724344069004052937666227648890737485007464475990157778341201664089963615274167763855337958748583072548200859278740312769572216245759821485050584531568032073665184168798973378039500377739401366092956131636725690549757191596600499977770429763381832902914978075753022282349595521654064578057992296812193285241687661125631007922672426268153786704054809441117731906838694460767197990334794080423628241123657171497010758634734128933276228540988810358302890378010571356994294376040560692777053763185018397428520036401399225774330755039228635887140742164129025048471534932288941686432108661924731137798709875921015401566356842204380033152464018524408658947032922443921202932597639387637015661733035265610814391516074258213773463760512849545364721113200668256109690844847736293116549245736475079821070043337030137505796228354036029984820027717741895385112314957489500450036105909985559246345452366656135760699236230100732069077512560492492518486187034059559162933003505805907621398018301979414531700439029836303021639107252345756381819788035533722266602644755035381976078435616826006002016083847929338065480315474069994138424863319975814959614379059132332211150732722068587148068032055625428763007065256776698131855626819282408972508199986214879500968986216824089130555098333113044061934534402990866587256625944919886600311668587470095605921712199796865918642879187702435424812722269594030329252706718479638011442943920691228360568550606425208590852327438484917252072335302807506450325463338326682239384189480607580701052543874812771284919287485000342965153868240208121271379291390169275850888296677481323668089728763550860186652331958671778148344690953581245790346564324780950412491994363818242869918487221747874074004883657297322636356088855731180150942173417355315584575562440800998217773042439430176114878916617928827079548864990704225556364981175270703960516321322918688118516313493699095064509087056350326767931232265725381677327849094828238865408592898779674082913512406580356991481040213641037893175907696336685135060986535491088348225303701155840822175805731029804888111467360633550955569597242641208225051566314663093747910973042099868962575381711745951493543586722472267048941294722240602308889814703802006636002088713548699729851322545096675374344087560114593659131563660148681176893367534008012924084764218374980203701516797216437281207447786458262835710297101753356062147310500325849456325414365546991048620775122027909929172057806005802909198348424596035098860574853508561260587874634891191383812998153754468845091276444016745827385098072255882830895896243125274055139200308308323374227771468971529059144635120609305581210824979163446680699873201922184266242329631612700721790197501214728215383144645011505128413341622054927154299536787450447677356101841090579799724527092662849572769584633960566756803286864544953433837322260427636705540531024783163341778276195889740222968326437156437585863886859888973975559727874077122961374187041681573021777064305454329330045822757731966848713002698272972438729690281097928997244203297371028890235974968372693952200044504983698372064980030207452812064869843974441044902001402368923215544838547624995447634798487180068042080718766178787696634195793782282799282125346122397487686575013724876616140378573030414609616611227581756279871575873909204984082502972012598181603114847959074556106513511582737725397307867860923302346825782305296769413852825873855026357789442236711163710699899428232233766210325083446056093784501731563781233950057533441323564885351795939978747640816354391200109338201892359518552225788269438091669035914201941084426899514923552375500497767484585161453140575144077798511806002471644757460258709646607027781250990003543646729522204021186232094084245916847237423757714031608522590436721674832219887807784030767232173172259180069045962555902496968499817524038573081119899947037841632828369525501039808852054693609275734917948745899005555490140014286595483454649754439645949588331639000360834095042624356598197040103475457763800214838775894588571708346177616182856914751409042762337590933148378306147322759112168519174855579410749506430922320104307091925226930724015353248615717541169260775056427992846513397889493439116172665575893014679164068802758449750069220411947701571506073073287857554410244712082501891258210719725180516159452687435534729781760056408455722287434666937490708748718097194901328153562390554201205459938683448273400166339270750497653483639197796568208309538298836270266793766443921431256151536365982481339990814127391707136620409391619756127257504699790932268362954499513869175574592026526995083840910739048625152691801465095139154943057164478862831798142485648951139477467073574661780033803381764398780858216799062376437693796734106034091973857594640107159299630453627277579625443389624600694704519486086410451648720136945615690316779937405419246874317535086558386206703979524156080369590365568023453110299267323783142875571015066651670353009536775867334567928759970330364758072837068966336437896449773503926715057930516109709216348520647267138384722319804057661292353353779708093861785504468231452606656764457023411091076545065941025487933785909994381746445755707720146186085506307450112901999023542056396867457595827997479205028322842606955258984155704326829769956669119257295168516631873121780754452417604346603924962787732848493877620659015730870573075782797349946995776322450883506342564187840022461488804442652210892192034095468272348265000586667911940418093511206192800843047636156345494111582933500117232765343162856829941676165385892820373476980371096352003259176523729319992538345118854480776367788617289673629446711616796885352765041267498087610677727913020130217641343235080362371823817372817788025554929204990155667575506003459845036151678096908391057973180912522147367845014274318082291468784179653099018114339148127840771297021277394891443925112866721771251012731211173960223704234162736517372679633477777875606311136984410320693073178913222305771689210480923513925037487986998124079190035380645342858873519809238476889518324471239502272943968746551324755036032738186792277479608097277869103700443670145498222465273518034300881083332242372354127033565146931324815252713598231832818104388015304094276864291705545245209525469009467153702820489125706305647931160422107919930759784522225430076474209209867669126943688003019953099734033160095517651789755863791179115036856177768799141762405800124720476728980579810771611499832704487169743817793822712303801072893484774704186813780308311103338564892220174885624945146029625165317031945665944317417749562944943604613808367717970330618790556975535528919439272046638210244719996350298201629704819238261661387764514360022863752071517330092672700769125684682138037260130889444518387872277172274411853817532808041321724047337889769966359059536812806054437797100536496165208262228467226373979333256408868166631479053986519722887737202467270818174211508297707202242416252267120885601126653575441947456777043098442308490984507320498733398663867810989777781382150098789435685170954277608947034358923100594546184699680029044152339272580829446501231895357234814280944542616628572545730696067569689781388332696108498411911041506565535579122893795619849925768125383602043700665240846575726101369596824254637341731254233152037882624211063030532350775446538522856970090797517593703605486700549801442988981433439485456330225147615330889758645661060719249298603137509957863315525802940012307958272611485250069814166716853118292347672337697297100534343464946809459406914046571307350327655919674615805849623604118466305204827748083542948450317155460584964109754758964133715346075110978651971433673708501172799696189025416074758959428666787749185922039691616244904033724587337259726985609761639104703007871731987555728599562797745136454394004825313424427906199642416401221255309878213907317613881918938265630318243649658397308057362506517905932966610230900074923958306184820630665022278551771685832545660347077169098289551567708766877517703713804708836959821852630621502740831620345959674762508432137084950753444556951515467620394401845293070282543512835026170988809294123499909199293664850382121739631693873108203568029863648083142434836143953355808435374113502984448925547437267416755599965454388103278987231204688511736747449142543061231410458489112967475571337757686382395056880391140224905101364433857234941938836880220669787760436641266260555238659100041828381296416687655647941624714127471891585071024643318726735753983888972337259152339507646860617923513691506572060678954341188860815590593239909314836029914073023799547230249990788519600415328863420299733291153577624344079753819442773013357280828986028718697047566760165615198718798262411615815880924834649525386945801981275372921071869462538361063154701015072139136837347587519303951417296168801088201509762931871864740882335443486451460901264884900612331215518783753336721457857965994816507068792807943083419205587918005539625470566399071126195752620565002839663065976857571292675001872413941101559911279204546403200231679361653139096280250263811305583147966659253875721018949151068268603802254516220254962471471035111653052093173626239149168290403270932597486538823081258854658865543024408608578670005325697834753038684209369795316828625607474427463649376253705040515264119108188191881601336009571369875845937908597139166347018095404797512131808316099506063898721386701495572327082779025792101536671826709843292985228299416876447447262108920536168757068263158413190165737615412375157939008012419487769014170259753259785115293069037885850588897237879763890869766593134275499344901656654032072064961367372766429519611699086582291715517113488706967594023007712589141806949346900394965478992448476438090680109964246246932482700683044852414192915757617903823060634928276975098856498087949528287114306739166224907998726451323503854267948566376093612734359634233733979183498107692621532253131742198107721265378671854069988260331423423143053524572336641676760095836272682127606624110174471656845825598407062785666817193623606804262159166445879202803505758391005587136805706823345993669792387974319762939468630787193648633049512340836397381883306461929760944897176036391860520672827339511086427992465087626381808199507083229939865475437831014390751922163317417315984752300104238596037354842653374869704177367363388601360600730050448162330772418454133609471111997031625084027871776754335853157335677302868885750642816241844918157294942755347545862735564409514470997224990994655404368097557053195012762233266244323026476727205752022503994974978533632214674217526587861820460120744254499087902369540790254809765486300261155322217252983207068938338228380568279288293915006706219817918294813312907911633072909109803046799081230071008233108996541052680692626414839809730762200933937946390074877678191211763633463766299238261632101959610334756672584858829855159702012764251646481495508585962002686023712687944189061220221390279482424913267804051081590037308260278470182374425558589164473629504033581385553835574284195040606065142396457571543089778054724307773962299016421725098323904176650465462005194763961543407950886478938872772334934486726819134582157909244847756559177165891866793310997781413515677134486204287936128849705549430825659628154049049583462044210115879889469102730767704790791715068678982883518420856984899007232156102585391345734577215845233372670353961339828103242436630593661419554255292262070808462384825483455260253736655706058360652401050485431620007487191689805632321626965239699531247456137311658317432137277987831739458080420138122543797957207819998375461133028641645139237462999309560458931993566663120430364552080987417941294954930245816801657612931172597494900021488019515461066110720538615641068806526660693104359172835962094564368818085534707927483580912653693074139505038527272464388818384842652292655871468576758640782407459009960220709538039734838672499365547342256774044006439079081076002335130223735465265457110979973198280400503515384316473636370478890251267539929699351596299496179775985424620092115541990526488877368969137978529970215035402287344457234412046694209748644006682232167449848034585902962026279461386105740982976959623188051521530147386533612894794194168825092005250197089225570187704327714421368897853258190553755790138090588834622781543029520125496693575373296088556014008280340948968405840615068249368429565779217802604058473006527033906464352664638531870528709928830524675181395598887825428035805254674222214662709065481692136695691654637895550889178854772811922115004891876046687657364077777528765897927564540612814048506843839652342548263141743676184084075216774714680929943991524087312595029243909496152474517938311739851349381277090676302604877492068207952619117309710379866789588293074384133077603714620752576896589103941519557747423108749057176000750268024063470390379713847338226162163451992226136067928004706506181608604174720516423578726045142596826128872221650012817477981282910837471750720191067457163369024473047433032715294808897340864555264621068761261323353945223882451870221736088397939141005435965001523455179302205750643538783417557764204846999899413101869031299056888593629115912387755102881539163788828565428575086768174852755048310644599263709452537693831977528457855926809158669648597541505076637769056835294249497838986659136470419062527670640758468502918062312194845262609403474995077781721872352398140475372674598371618443629912054519748088229689251269613699082929726394338726974847735866392434707897125239676835380326644294199436832140992285983075571346907549306957802308794700807904978479857058000255337896030566471887479233844676099985342259586624935747245074976341789374160875287041864468471648348778896154610766438784553430654156239874995224105085039162161069096072449634691790718398286159859867426261719365606387052018662900317625570000815101355467495835823741010522434944761949875738611939846369003791699267565747732154991492690986266757851047105930496419020151884082223857985652201039662115965209044073982668141922928446767246009468383930201475652127857774425102005082751687789947488399677416920014218499668379257421151010659851940236508382478580595027377431891017259365394151838871040183859225970274898673668761859953124010190819243700731888929850932575790800214072780974690821002014653892551130659550215280009316349610076190073723339983335515713097613817980204027347904147402608965542913033571776945460130093885291861659389946441245566958425796100469584657809479376878587534499490451375043225052528079294683560773865337236145118463142020450495915945600616531368561121173953688213377279185837090616742627325495833765126762021335485261673938741638139871584331106259640629217813409511027931837286827719280591284667287067849654573131986387897183234232048461372231789261321936729511184757385003696927872568242940366579080602654968283130232137671349400996576605571521442547540227180535901460788298294948672451907602937179581506284897176669499521205939432977686423586329949157671720848151847827540217930066046462062126810576120509409770621496712423870749663964707574351966498900874951664342775129387580290001475920091504632780900011794383456828912633603749630612591435508012256936250458206823207742413409430228650766199568124239968456220860283103716818796360142268789067977498062694085017076301791260201749239795242153374169076721714304308208888906151566794384396975243474407686447507161874872066282987696760258736193017662756542023978702280820232470114814810742965293142375267785222524093465557973814253341358384840805302414537034309331180365595270884132713350114126791316964590751120288818107153600435606512026742453782675034955340618647287637625616272524796832632571637174866282864251292556109892679599408262856423933137918519641100940597216724272343106441431980552660084776383791692143998826366948845595235115344039410311069636532047849349830186083942194872497934314499519188805931442549237045692950230869115758201596788114456385889262017405347661550820936830055547551033836190826274116645688036007820052087057719587570988860996609104547853085529873041405049848472791427748258527598587528868252599051416691511807146073476305034766172106052439284653055613618113704174469984218369974623736430953359529789351198334385831767940194763826770377651312435644866015913626189624211043049708929754335548511914833202530020879839722477646910059651269104045355310254852713844340876766243401635245782607452107257347346324191632437224608486323987168907533201556802727256984436832073098744351747907855543246618098505812616925039392638498553271435897585267735651568205501092436669164958047209754535208813546802220555886420560039598489706347956029393824601949579149490902709321111101699361976092434902100952559693681115385976540656500464419073774599531289583804121028380160021500680547406651473517896474091900882274073872004052140861389135618606894153236866765571334550213974075675204042492960065137000163930122880015708888933575364885794697173489672836039609641956428729052089222036235789736598216498605162723968272362366356965121542344189008823008495657687344358587734551675077720526007862072661824499313144737590893949958552617486385010624116828445773993270686221456521947884694904223502229697161002988939021902299679018357429676136486058736311852028841153984811505651368414792126538295299356907422879962548540505170705242989962459792464912387539093663365564001623687088445308011899261848840771556498132812706859119444670506763000807032379234974625536511202919954549262988757827682110811481926378497109024920394837057952260600980886974686260882581654792691567614925519610093879794222369205971530737534976703683856067537909802896495768118478841289719724212923597183103491876371454072610125803233930526598045404266125515332198241045528007575183526272115503969773570939999640605905286055531394718209057718603324978720225105076026211789875144064965007627556692485579111055274194243243727509070645248371281087518613076514599912063482334602992204618882439432397286506028069552260548811577492128157670748972959618109979356887511879960497158605018646971661430103919868042969168641859695053923614465432690919572036862844748631698291109407498196850226334464555550482847516432889574686066984603562570771810791129347217842312683587757835909742258361797982986922898285631052650091875330261211132025873221161888622910214638294687014002546751555511120152151887801546831470898587065814633052439319052479908436979668335445993596682646808351142706307773283804045730460926809367769131367608109045273553021893383988874286025583653861171870818327765704040235442137567241622532165336138538233329828835874492280975137664484589863837215285064262983950500560532116038812414905187625558336628480285821423754736838507583004841114718333416290022808715892519100420637711266324321854422292231178486364590916972077763573899357963106445870464941411936231494623479725752164944953259131355422492653003457575140921038957226595536000007245671950755839652943050792257902634246626910556174705533865501642979812271833059519718679843148018307770707738025549222703997127109067890487081866227831505083545839157640480542681464684808888927111350992029763034751862624786312814351117446029262553336258155360921672429274934960912603499524589710807895108290860265574495464146393102560083699480978903075516691566599717267412722520262221458262629444475834845495765245204923564517572510515933841994607884252326467950014135228140997937633515979633628025489162734832659793317548265935205921142216613651524546271467082544074646918640951686856956388174881197771498590886913563956906287130152923491745200707293644769714606556924775939388423003943103841890083982592760219092967753538225570319862586197670991008449975184005372778565663780141074320848241416684806904485172529073135336650571452689162730565957020061947048236537593583515002209630444153087014760207686055631393915284856724088505363919563134746705016478024640883884288629031854592279019773940848483221025534718067450533095238264002419703056321287545447124086923632548421217064718113376137543374639447346038493034400003371743861139602853641952418138616330262498042530093902729896836017532823876992999366843930482387012096206374575486329280846424825413025077288612777134140005246246177441110143087420347653467317279667731671685075291380619185601647001801690161215225248947178144518685878133987543008483145230731007931765395255579554938271924898679346309312347041920164650836703335315921646502036251098307379519976437370831435017138383724055664390857275062078300395768954596340785356726853298254754520172634201978267596811217206097881509899139506243135399057264293608614847454497320206927301705781429022078466107711010283207979223806593050252434995901004659945390734428057148559241352156344570306274512610505984058367625208929413224840764108328014395046729628423696135766420194417986199262715118930489904770739890723598234913950156904571945409039503343150675253103898846631940558230613042076128658423606928620765141994389380929843232507854394052152077147523038318196166217645569113081832944397290899455626265847496817290741234934724326560420083865948677403387820996598479771974642113055753841236244603689847420295248981484601536712248087926488884207682956048444784874667139803484377142205864840854219724808149393446000596872334301988666143245469320161556595272426882309705760212011522685589150621525458783076716221576332073342221377663883342839007920946248294933148275024192875940097437880784672291125116786348310844119942761928099809839858880645870729774272507662047407701209036006063752094389395605117992595761778137501124166626979598778350767047380448572529891887369172859222411422112914190626801099412617904086724515019990415632941855915453671964824734614101968975284512332804838528412588903996312783657768746568288162269119164705880943424966653464592682109749423943234829488925315964197816070417448654859860282277248106754963175261714775932129608059563959422137776513217778386237863619748480876810422945916998953582551652218797578381807991119330441660726653760543780186151332882967474351672352364813961821141550778560792577061686775525563647747724156769438122683969095388183682482823246242230226985107300176169887518382746099750232800717250009158429534623008704598974527552873106197705142640769718520248740908699534320596073620478230891255498767395709972802857823629981543533190785971046763429122906798214493090432165131621334276602843877834627349153136854571899184241387003059666345524445239385003095570247374060737596683582993702665285675658031652182424403079492008983480848306325913799139042354429598037868835498058503028101335076604484423926554691986751803667398519758435305864682960931836074146934418915203023734061672953619071861753080446693000126464405991713591269039499410258285514259764502956593087705415013295675953550168760175745180440544087808140248056413789394556327908454116291809298652018357911605551124968266602932389621882295063739761093756094784444692289122471415514422224939166030625632057078283961329763261278713475345588276453005023528932094317463413100236871950876721446314065351899060961193289996772263487476496633789814944722521762783167860667792737926100375657487206025751946284676270847669582789121146521031984863452736231309921712071150124494855162942322118888718862255526739905149744988190483443549728602263209577503971458913517179402212027989337789204206660660167906394563106128644580085888042584505917763083040193372748913585232354435547453057819370403494178517434238866685313445383570542179488025164444702461890245420922440110679846812863484561254573009878072482021460940098499753412261261022781521141107970484896232265524704669240328426490029261075322683580083568282842476574186230331117912209125067774435728200000203934789360815462649120087745519030568869335584030966239195235287392083059669047468800328477413035641503774364861730356265861643527359952283401422044432937706768123682559044317570711152256788424548970047887118053749310287230739377677931485828067510824195221955644635367165709792938737106892577521096525962395041088032047100597847793821025905359948319433865452919532903541336215842820166751821373124382453129077388717659327542034892613582814904227771525409311480063386674493795466545975203127289202035381762789831403971367600381808346629074534997500872539721408101007863044025570254649638935569476243373074844182407402532433964231544850784959146937616956231019455680810577846834979448284245724807192884677922729214424001748566615456626122111328910644790707406252474953227792712505475954019144418234633474203384442828792744201310023473253632874945202531429087625032061298311461223805384459960615371333940609992276889925937895218869365347078714188877671250889391050420304441943779082387329891453575858568307297454632268958260013013924009561371676385701045287638710898752712605713040950839149969281598362744647255180685475236129628360029827397166366684686497730923368316429332975248659452037592383553240565799185622092218925497694325008741805578196674147445084782023802146304469396806692335080558882017273390022912582313719685905874448226769737305177686825636377078894424277880900634592844458038279491139853853831675099422052410241572339777819074217248960375127634688639128306017182940329813507764614841818946341055986844961481482174323164042591995777193971918836444498842747518222956115349499733902390979579185986675817688235765128709344111363004484811850473665471458690708704032364373296197986503051042557070234653666385215564094609554223956893661466591390257241900511848578314289145024546324617944262482860506357097722038386358553530272126004152304107689437777393341817686747995690105855884296066188742374948756013925177478030296796748369582834869384525465358748612296062149755527245540784743776681381711639715588253352926488104778768936050516886268273821545540231465745791845928338726902958805671120976393522556043214954317942088771874872270639875464146517202825409145559496913925781251959753140371633031633136370256013616182365953554628004728183121169870071548971442656393186576156922984495760598512102061171638032231157295353108295045110593848684227855494475812853448353274559911925059425393587598398291694073643710852145006383238724997350016557209421171710440129444450392047145171506922836463729075266437431868642728200434982782013925752273989510741267576015014607867586388263021645220829086058791743773448661886144246697433098294173409874716747300655138419575235601813304222375941988780433416433296837869585987214728772590974769477161540529240733753906454384638511774171360876402909767712690851184530241447897976418338451880823736954932895008119706555841679799523885049309910239659481648837342697099524970119396191909679004070539039512772752060596914329021230877843870570207639025123592938814808238951802979915388503813892305255190466815148308067262381027077516475630088529984162503662259529336941784030924925624731817308878781792056535909569869855021790888759886514131481962879064662829622663137425981059532092874493910126113692582657124687634604844520423995974419592137668688035344934261690167731075647062711168799435284455605432199232413705988660493870300642687556409505957286561907201380393611913649738553014838159599893764081393832317217803887952413074496085511136523426463528133783728037060194831982963865716153118149387192662295068591620623304634541559363709333408961429300631618709001022284861925161150708870096298372741947475077954712084456558857631899163368762429810168404961650181539952762345676550212721403059460527403521349501063949110481005817499495534781079226975786888630174433039476134575288753943231671877067122446637797946950243751351331856057511990213129127057938225295231675312171138467423503502638120681618990367449137139871599199757966204199904668719453383924631114510813645122191322630311358650119179774151116057941495358426447867776847775988409264317004108639307034741637784614132759728538350196984780130373110017815325717351777073871877399115527890308319984274620814494918659252093340244673151042962745553969110605120976040093760446056697856340371905795824028905543110334367039130973733797159045966846214916886228432622976384062440524198887306257232974834053200732352015317211657155003021576719234011690340771895993301326378711927281665486110481265033909685787887167610469809713025569616319953165047647568372386537698290880411901674490834677286420595036208836464732961692252470975379609337542253454911851792008335229225430969686643974471217127653536288849415549170401053031599094140615790507901497589839621537383089153556982434917482404281831915320025127950938793998913735412938432653683529178142909787508720056963483430979580866780425452392842168913884622430306664040068381297053659499519518409814369979125490582847265429333858481270366208560860107542302175291660666496507597915637455486634384580137460076046912737053836078015558398173229339656044367423110163634925116428971334785970284250834149333151260906922133226059989319651065401922159858950116354055052648733307104870980630953274043812209496405571262870258327763562798999306090293297735740198159462382998011681823317572444958329936208656521869527503895300162795039237534569827242862629296767871053210382708199870486787623798309245944548628489675854161805298768308142616244348488968047180444245662550311706002107596580667732679236233620005769072759373638049457043298265202757437275283567727814132003965038879656347680484531049365405060183327499749177738420328326174346944141093512000712387709945857175857437416652199371459753114385814473262014939261948153539612209649025880450373401868737731322632075150677948581949297820428013657103598713566868705298732710917805716020359152496682309591298686087873038174742884631884958162826284542303210290568997406690874945636961440409074954870717925175821988855800157477036264807990445963830728594965168676017851978386178268013130074991882153653431681371972881563515137233618496495563690949207969229161779350006499937485758300642520212311065125684427740932875086838002467734849274401903707536552257374492322421517791274572988492078898275482824967020932953301457740205130241755219754178566613688505405647422780944813661619485929784315223318348715696325779416090201175288133087291809316060183050098546877584296743234944963789816065892020873678588845179604316755545383457229204328823973251856732146416287812988867124750592210330371215924904883075607425409383063506895516229088389507222380197630721222139197623894908561988802550679362487287044863234729035269980567732957323152832272691989391703413414444310405777246008262971492317204691121938716839297414368071449375690662194134917572096101803144998913279988716898720402135189134428454630804608226454708467277110069452827504898518463452050337948690562368716509325690071447070594798237960992695612042933072880482327322151950011613663735822688897039438984644013571275659343464011622300807199362073086584232625877646815124805279489679452909402767400576827666483403813225547995737336559341778512358694056799962598397454450059119046092772268641761291849605998091772304217313938332832975452259940048248613166672086648547621490030352727906247494668892469996177215990472295582727280833692852730504776270726205132817839356384959152154573600315931817279613713337292012923193038531079484080006481810189632090662643184461862389841060335529602605353668668914948575490076224811183774608412718707028635930131865624444106563910903541631241451163562346579239308870663273952204625009232594708905514398863943624052188485905162986418142465403213804121875462433246907191311952276459639580986269749792349875250635416847912368904029401294262899728452660529284549905474894385103851649866885022220437415359020717703920298013312739886968113234037653435981632555100836886186457486160621705177624979617137377721740432558945931059053059174729575246544316819351974533143404876821877386185870088609780671865623400145770216527520116943418418507569560935516364426045388388986942858111685758732939433443363271723308861210379309629150810295541685133452966461272971637813546916481760249499726229264172575450894324231944058827989906308530588400374362828749359581287739210640856377673569492435179641852216919874002347629757535484969364144471110443495479670120767259483189157759894624886346910073764866520688823362766774658349207269642863469754786605859810010904657486227172307682199767043026658875731434012721588597701854875710138934685178095453111018665948134161115692726526878562477091285771609503210656013562840572040374558042703435061027623177941908363397995384624322944500527157120961700830748714741886686360883473428362348091694059798553979101003974759164239255286348050933894047647885174258328606825960662193976445973908421197656365921735455740469011708719696970292248291865423146714550304272111579856194268151740914076302455288761987322856437377409708297382295982239286141176605732719975088224234059203998876303271052869179178112384640193794882500554430086926904784699258754831573564454576444800150928413184308769128021136711974020281643597357012504200469240547566426075926400307490566815190093863666857935611635519446035656678476227708006482323775313923442052664792817096230068104962828950144349942376033019383521177534765263098062595264077173887333801427918241576216128578997252374052484692753415070813032204032638757488551211824828434657311564278203235644625413440235042880545289611148689628172730133312661344051155490948079009719321828386131412677898327694412065107943422745724408509774111097221419154972983548296514195129265976471741857396633404523832087984701377595879437722966636361712817864378104548439573400235000040254288694216606389847116434905953161856529860321952043478607051013421239372752565247900792598650368662487719026667376290595028397751586954530030986374864824747194772491819062444813930263329189295114717141739616628157740136926152551006007263137483237777685555729725912295546280393016914880934087118386973456779941888364402045768058817952372877227043793860725413516751000189865470443713579039001292993292029117873957730068415556778733164196354901110981485363604312787514688934641530869483679204961573860140127305049197989842388911263585056872488840835192369228908052859177123349565257011179196704111950387274991461782202447065613017899687707726661718625773852040224781594469512251998131864563095433918963025404881785122486812028060184068107402130285691948465703910621504638583780579620386968130667090519253667509291457585587227144865407615094140031651530421546515804780615831052778027574626822969013671456186394590178674911131458768926681399971560151478757723061713655768746732178081435304569804511141715795039526538304244422748615626781589217687217858383364688013305354687277881491059886206527930518958136040766815153773730843821751298750181106819055545618951833968898212168630115320461362203257137704021022907095805637648765462754978913431208803841238669084437740327983218700001071128946401466073123229928850788172880801234406385503071371111511555349275387961242953651316147599516488054931626373137834322941013061456913672483082362211649759641446181328753596275677766482880619177566489622627403196325170876533527308609905541274317835089113390558639870060549059301777537998761466970563383040720544274250233919395096341156636799502622595260841402284546845582982204526784319602065986533701021232521813528249771530895272735010503978689135782729419400216854296151608246881370277977018122885529447374785534102312130278578618474854373073043069260941577629561310081736226979627040678600108121363068546996696482857831121911914612149831773081032213266846189193398262778225059194222658496930538647222925851788845445440317326406652294857252147608404838390780688684234107831446631570590920099837993809338706858731023816025786121360304446569549598930398896646537706599092680547354205566109234260953716062310032768949785828764422773079547772087470083598576582278257462886809254476910611898071066370445624839901153695239583974407819278718285649581473393724619015310323460090400260461852666818976138442527788985721898149057509170814686115431791020932847795013258933140079150845726419781510802764760304284015971676140797971798525425060877550566025743075148361468471708431046199422177722165664299629121574817463576707238174131951188921777801900862645066284356272578291736250581695654972166840985178339083782759822196484884018590653146095175111982167843625779637436377725699166341190442711219885604845468516232491962526071456985179549383974117494709954493105740053235353405486471520402488305289310197993248826544209584883061828362482073194516174737821674484169753387661886549287894667324619807105023984586762823286785562333918111210503849430011718606447386361397191423050649241581367338817680859237555073634839016284729284278160294040190382872230448306575559257683451012291525297143999034190405065472692190829006976799820867059999161965980432156343342054916906604016694423590815760715937985831896310824077363538728247054079395213929697946548786119505042219126213713475985694619423958496022737577979055801441233205467767660268371153649424855773024139591066102753988670794724446835071828972269131702223001528669434770236117670044226977747709988377855099077610929004098354938093544878309415765248129578512329593399274264938116081492995147267099245983412680968575531297146576218617799755666394390578280582796621835150835260917087945420699127044318394965918501380332173399821543330374837171965980323314038821847600599378912682041258871032078873912208505660079341072081210174371548259063970591347093601533983998638427818529312556095959638449783439651298074180337366411036691112133559754641754453910762156833393804791898374842261390744677892030749874435896133342214374306411136683476243736297216114894006328101845522018680473138908498009501694551089637867207572728904091145296453372091124725047780391887891560873824276207009477668363574408235682022147294737569732325836687107691802810116476048271500756396003394011998096271093150119438678549288769622873578601566287241149012810106149973854556691877834233568246707427574787369302842060557960621617768594912914899586363520504326851584825335989217364068353826194438677748863890632707890602625075476007252095408608818695394720580160826755111869957080031221552124595390305351211095216230736435378478047859494370982082437840811284706520820087638695429275626005515020222729228865511044147737861584677865348504060281898767523179147406064997004032987387807325493797568734621661530776611049802518865021968170751952666780218655370852288852575710023715667477055305263996048553342958880422904357489083956265279937588014588565215271226038808003412837831350008188550379176556066951234398000708512294868914139188937712242096803702415183817614700865887422585249287053450082753929080839363701219607024230499780161414387162882805382486511374080167750199104687920123341491094381342721755234015060942628232872321767548032789296357394149885740151207467612653123212906341656363173010021031778525841086109405385811156554982877701333037599122656445848602537556540767138156490244552291782381753789228188789762743354090678100528880818718756378973089770994143113602361251777453078019268304837997016882588673364309683539123979910041827542243978176703455584204999865708335916073090026342032214070398872608170588496738873743644416170683371713726187326011981550936144190050725599759901145408941810655194413733241770205961063120613684751202450313070454225148857326250596191934001120673178205119672074714110901692529814094142819643309546696873661517187918677524964559972341799743077506759301639377910763768246128133787465010681987023278116414262755048956957545409017506185218763952784563693794504611175244071519171566069260854071900228893844411498558199551899841421608343645577929549900388559507936160209942007534872119747736728694534211100071652719018930602566004171573645105337044976196103738667069534334311647072072861953352825906467108665025268126700458527261204190281897344802074437103929620658581079177236316411336794557712203958110230463094615427384387642168821869634602805616147288872860728235235535774532620716587794752894596153476121616489614194696730055236111034741249155780051904363459073835489813603007535815910377782017104208699965002284990682911536513388948923633611772569152022357694360521008119234909575829836409466848257752734664087003946781286585543148621519181117027768860026249071106338995081525919703968228496446147985441823549912820862786587190396617910449479848150290570553436251358930271403657680015341350626890593753528172547988643367860951812373792189842946053230345002346646524779023824182287986521420953541495922585657246245194440921156314147339761300452507005152709182650428134791552929546067814890889908176902253388219110277242834572091076843325320538656069596098883675813197699891051342123023138819284074389158506323469433541242126183855384474293015116766538538875993702953234393371545415224595294035340122537738956958744519910040093316892961887338618495593622228049573244591867407387551134013844083485409064360978104730218288926330104881661868704026730251119330641355989010139475734136394997861746753421626434924732576865276667430924137377970739077662396214798996646010050457201094343048042841474392484679102733685632686686936159117254815685666930559087551960761685874825405577393107924884738641702110752664831289720395132665704004403025695542729732617945977772224091142022790542803387800604483088579236078325387130623516174200264241649280794941166086852111377163826982705861073573760684835596970703421070902775905710216973661856949211264437179874743936170089814204775395543630581637775788343988445722310779888512433760621300082461288444529354059774631088416765969099780831663497742967837477816140958966575145345201049402546477266832739095533571053306775738596091112609974329706603325907449899449895549988452569012913921457000555389124631418187820013662074226079277157093294270567419760672081259571772368751492900079702584930149413256279169347473518721155629471193047355860407669647981415788949715308767729882504613536549837478734821762893095273573600219205157394601518066457855738071444809094589922190315363191374166123692691907804385010725754749023303091941056367200068603145745056910036901141051667897367198840258615959297919944482327262156108316992785188138357279401597967854613619582820641074218856820089928306372671415412923159836088336220416788260988654336898251365981894270918388859327723845216713946159650787485825131977415089034459765678863617717632033066325027425377557509088339887163845489686741346128821768088402271652672748304132691863433985293899001191671429780736062886199474213024457064139440446986766903322648054707146391050898850550676143431796387645546254800725925510540742617992265952563822786756822848495736386792493228997611029148912486923056729841511690657744543001104734983444336031208223309807868887018616677735309034010395760638615571766384163698900557238836448939509921471186394846669463644504396417000858114440375596453631242901621700244367385417916316999644452568804327598069588972776501714489320384311799083367380972794066466921266599418903584211661772104816758374892777531575127122847801423744254470152891561404074281698451083668726159819120478141515560785777870589579877949486420654022149722628804072294280216995416588791978823454536501659672203009850909073187129108655562751527001074243609375608604808292008470953888928797667852511319049430084215377905537341619001010667094556810195501857604706530421823919644008001751972911424100860477068681330903111670670934619855961896232484716308069195685085362851626044508474246590050543887867359964612966732959040600872532562709958948066394456323113891167443910926886121306211548110737223017112056384604632330629872113390374299623333391383833600630747355602736826490737308651806638419815166058401635159197542626170055010915222700330468144699870858672903443383096912263664186119710297625147107689244820214606474515441778962522110862967454577566169026083960173741815291827176567178374962153541991087532347186575665479056074186998385918393017666635154388684521307830098449322362730125069134745245747079055660603571723343782008895641207820552120839618325057490234842822527310075455832015407636355851463489815152199978028472228080665888026831079225287290081822902118627109584548673022589076722023215250581231788967275447583566814717215751216328859561901211544613633021646653354706316084355348261733750578126950183242280566753150394905669138835380443223447330076059120220485418977050895928765396959599324032935063416323319346071371048705384236947216630856525285193285007937095383333578143652446001745083778765595457367782464493122407422585135672758310607173287651446756674926664643925059085253761282307243342329038487056073133107274748706243182301466933451538275894719153673628432764100554443578270516311941977234357294262118448130532123609733528365877212165908947034966013988196394065621428158010026921957167603249422748762243433435908669360925879166254503853049851315521742057964782090816124905092368019985761033514024615297870281694229037235462514895102042335361926569336074687115936058982886655204299126269617765996182253632430755403228045493840605370267014176354675999712092502305123112947949271457298815810886425719864102344598159466268429628618294522451603142471275733032550602075795617296499534919969569870308611771048929664633224396145899952727308956855365055220218077211411077261234067643530730564542133549651156833515811586827241030354464295362170148320477869669572596370397531378287227049165122006796045561540429973274660436254537113365404708046291312159359511987423969490846483619690888432010241216753572742425638101843852154559573415814491395772750821461262219973977383008147802127116347249074140501639944977214052528738812398628748745255435836356201628945539702911606978855113783460708447016076529142978010069313029004883121319796969202081591807905381161712884016938123129333206387169719694548850009273259786638312655082698295728207729719124523635172105519804527267850743912562993324984112864300320216327510236588914544843732291258508942997634919875143731369987945393419375918202133659297597627991816606865317058650921667480301551950326912362755432905934557511356231345753206011662953602188954329541925574327066333610621853482398233034313078115569129438259653099605782948173905616110942173877711833580544947624722333279432360120804661410382723336948534847569229079688894981786707648474689863695043319536473153558556717056525780114143020361722752393074000291043287037223061414232550014431493916109234830264407662527731246793565807833262599552383524621587326488644216532838430063888342851184438468884734931521469326207184467167673601569740856002058525949517961374899674666660975434586927537628941576977761624261870658119750541757869702036751232806873231387709065302079798659129779472729614776369206256730638677960683083313411080747237773551956852755453188238466719145720571128785448100816373891133605389092428971258623603762784649852454584045857928779660862191973118340135837256631719004444957039259565296830288743778014309886303042577466633715341977861381105279392648617654759863426606568022932464075267026980233570258861917146778461374026073591116160128994705564171207968769163033970917827957996849513584669051752598559514052169108647612692677444410028290518436755853969961549111086883187458323186885534486456201674045136018307240873883375437513963404057277865578726464041270813492829639614534108865992065399521267521379418054687327099811284455265834512726776200105916443394215459679958111865904798370712665718653006145610077990851863566612795772409346899737972812722543745260135858267206129312641189770500137836768695300433725948263908366308919116895928579887405596137708093549868669572103694560591502976016309867785858957713368175190959759711946806767297641788418260253412603182431284976767239983417675911634653611520788349105787690440569707388060884057090995199644912283490193926224838559919908916657506845988491907660991371668336530285566814167860913624412756031386205401290524321807215011740320724781982414812586265897108472458292254809879887175622671252502192156965691308463300273023811078043252304921954376395278281895890431213387192881575807828528803060682817336777991810040618750577954639736163787124797294041959508518650179329523769996325257443603922992607911737569832930098889379286084499947437664280591640060927942417168240496257187998510684778077311655551017834061326521722215702061930126219943263341831255871755615407269254024092121629865971972904002904918272784684532291480873617814674326067361106031210680046740994132301197330100960871549366455918499934211166656766714190976555592106768486614427594802942350758731524386027732418927415261212976937049695138628690901596874415196001455332263524149547788324569886845129287440338285610761521868094772744545990149188107889760006386229554373604311630772734998589112285764853737934717425707723329046828781028395171327555947331129564555668375364538524070648117520619554972599160181479744259498412188658181421808298615534489065048429901991924198650725426691485415062104159153094888368021879517944868229205924584899463820749587512793063688291745259211341281734269121324903282585602555712504135398245960597818207000402279865217652921510454236058048802127740748028902257517791148047072587495873390517689286174831103285204967193330494810992152184320901300596258348088972234901011405778027529369236161375815655858704822746247962058186884963465432213804483640725728351078413798528302285845478572360973893065543316610956551167200342103281378601230273568357804180682408572184526216424832130067108990226071053621390333876804966650516550444218447896556225827414790705188263188874212631504970679478820102131067860994760211262323172765241048445504176614612349250270179683025575938824545956000125103828247320128064019512132965885349507672271261326766352772987605619233705954714208539890161490655026808279873878493873696194763106998319530252864011270027204282327235279775993923249654671918565836598265746316016522334837025077786903196904824572140548527367315982757713160322207251084452169265588336769851104706437631198210314600458422236561394327272506145114283619892277216189861748371792179179805017181539288527679691080638851595997740954411077081797448067705968844300971591385476923864895901193719280258213951025738791428845489804526684459446673014867729874548433830533787591277436883117264588914307481336326606158848494777725665499127363316781557317746961649234468422803117361357556527253172483835712575601305689872158655901368402025833376168917898025380440093350374371360466922164549148731012291157760803179013461132825020319519963206330161477850727517871784722995820303232043797625705407717623769251567052149270661139260329357319562201882545832889859843272244278544826573911222690111337144340408000727732262619163094052945954712372672322032778088571544971429455106019294329231000765578960977620731127536361353249116321751494486815388773935038508526789034184020020724298210274949776302987555240138248662519246060282136459551288405319204596025151874551738911709552559192143556689118344406760228929662519511501133465972595377532790175352092435937212930240501142555957948614452621893253839941161406034712221655677862260994907884789100168795732072314502541022006959470175040849685364505436725540782676997428096799409893811254960556553281543421196626857489258520678842341663009485092004093254675284473568907241388728858777576229449925029641022313336400900037923327689932174452072511471303567413898390029355627697280451486535042742499349588692735790564899289532140950562843956169430186569951805972367748005234115324754181435300076901269761573114058132345522172479422984976814737410379626819382868637432427149960402462027112449559905286237198731643781367594796462232957669801322624165618220243527025767440764967656556950815479730140070341982168476760075149465589687766649248331125940860769218770989925171728824045243934075655231132842487747965874052862485751131669445858311270418319490581899502314047110560849143846833556572497752935523791473284074977975095298934963322944823829075842269849836390379048487655188897817279210315851663188475640546348757478902474965045694770680915777929043110313507804476432855229247448129371602129065365323773940223579705566645212592217474619815560580058003499260200742706314450654998442435173156625725193109815461306431700311796644827755412511296276631967949355289655759729517764569404287457904382816806424087474355532340775450380965966421025574089570433810613340777840259873583469194916241300593889833720416853244877499935806511603586379177518361840762450743028963395872340016776677950490502334883317082635566790234862134611945104756438701050511342606857774770427554990400603666616417584197789646057476773523039340693631390757928563136966274538244644788321600811082421903835629229659140647266047929708661543453605263674966617727949688703301285042300792925719802972974560290136569766393426020634675247895765808295599748377594396908740604877392823031443337938799896659549939707276232163168246444755805988174344408363071230009579643004024710910178406780405842524801396708390766477576680222878780495308542699502964515773259214755654955112453665958981260841685755561461862429938383762715061374436711091114065333818602720252598384021408418905309916280860789254564833684453141667367950742628725848204882199738040859838784268768559569803758865058992787096296170479788207970910697783223151616391915427872948880641002300738275641758801556114822754989978889524501884919984084508298371808010804259739203819578684060831031587988183307320583954654274672378290174362959323608745454589984385209429773965932233341332418348975727868597855135796080260206094546803040534778547236151505104095274100858509903572892107572612885944182618152305119151813006872828882604576886860771005420403656154632192953709914620742677831700313304408654635256874239506411705407089494878516116975812509068458095831508546292608433472233060705744284125513899992596856020436432197464793294812316811281965330980342530775868831273109088910407922087772436383689927905382517264819294113272777637961309026492031583872406246288557084686209490992103582264939211999648930963633744171301435037664209624941401095516499432912695645045054557132207497580853890656416017428921909346576205818835595004806532987168435093501931283998606539178499954347686986563010079140969239496045008240293446617646494805593127542621808304957548287990317088986653720944819302140217933852757043271252536004081083933338058166710353210907905771679659405484458156255993752575656919881578256504214317570312883534117910637819740353336365059773365370643225536011512042040818686454353168580771791010101320177342895039020222091863600499375713469037645214875958541047319764470784813077054754651502096064707068920916123694894122853382875598680151570199877815494008499160688260955350122092549977591347302645432478676193658817916045731163581966463632186152931775824746283922658924354411123508009541126371495062927973870719493459547166929968882980569637993587469172577072393103553314847137914268011160977012492490744737283962940877367175851759080306833952143086962512381888237016094778625837007082883043333072426732725904360460817071969731281631788524383248963858211041985089782691078976020881258737089687553157219679916037189417249617186809077335134957819098660569764312947264351826753427551168057467814285226771115936895921241302725281936671265828181715308826947313421503315541382279553232037712283724291695273458282169377400870149127833374565605731498190580808415562012631432878737083622833044213712285633947899855911066492259049055370583610354626140117913288873193391507572024722962634819193662359014278659776761659272204818144032792320806799566254322281460035928577547527266573752554986553961828335623698563665664196045306097244173454096822658905506450210020643462498766411127764437955343907585698698007283782716727171911081823454440940636431002199279030729728538886169411865936435864319508169246191406820849457491034617155315832002016901143262057836062595397187482818496310398616731568771619289514973743413582308976236885381051263671729693302572887368310914071886687177626024856618140614464370766134829254027762140445695731432621177367651814833196849138082276633438534604213785576330893078521626749947883345767821050468504652537075886291703113956651755434396410668537642166158199481326626477074887726359795578504667344903823870408524681012363886229481800503687803895652766785483298059676761630434532164030279748584023986351178753903257252933018147708113290366715287108083528030193305313132812235380823829228832054882204234008607180005125022150933280503592557542915261978348185671540301998197605743779286754067537047313671849112694962175808019981038444037057580592229983030089553698720929826838638163842253223298408717956545305045136069122310174149805786956013485524285390952699506040708566708719135554628799683832033252109120324074421972422369605826036567133622468915745599055720861422931534964088454067219241080807777680425650621587489528947577570497656816981041831254392194212937691019806633436885395372094322669556273713554167733110751037662356122586627997925863237233524328135969251983569769154607560494059142579034024812708330749363744588193538154191713798827388406841163065647316398433419492653897885652239443299011232139824355843337055324546469134792621503574660781157322519282965265811641054445002312332852707579211291695896571211577430016703407850064841267652611258205308024582669086837094704403596453044646761110080173834057556777729542875245601356858570062699383419111313037342737597564891475509600835402002144682620784265681401803574035465757044367532721890691307762418406134203519201518037179672616893314945173243145652149119307639854780837307826890732753677467966084800408572599709593161300936770938454853087694142392370246467818423654899473049377240990713496792016507073059409935299715359408621445371367645437465797232109516521782660783014504330234221712777174762539311060874930862629290658855771248282110111899645909478448368858836982042048392385088769673697916392874666444020717500033072826997494035993781083377819615837172863605946433937624232818757440225839566383415449992719923778072894403921501379374471415310043667123359056894463358077978183284527430100768260964707565386938044558332834512014671306273780302735561189219952983352035040442443267116137302488658649649977473970226817270936566591634065773550099840784478120746572688071622636686097465693681773364066010997637547982658553740320354794874899192033292528147198723502156143007004132139758648965764212915278375545087051124669918603105047000897132005858093935174769974942340476910617309382285501627933775106530443907449787491861054249265136968431020465616566347324673937478539956609794254602586996034358053896409848401160275588429346667806093861588251856244574695418484136853705651611219850129799671483203469359609452314441512817248126560046282411844555577399725373720797717147281998777797397377824853565422731309839823774592247814603441785651916775554812273511696348071084273240204530553778491938837106810323688734950258352340751471976861860039689557601622398748111426415043540608999140912487351357234053620624388445935693983643193957967062779206804158172107911009836052272340016198159771364553674278861623822501571786419091086032820806557858955950504018055264495637760649259077887390278342611956999458296119995677910674408307491337065023672970192130021024436314198438946604581528185171440193557530257978129209972280129787319780218115533490382952147029112983613076667155039975561992163912772657822419021026622591683268801676004318137814438048750802746975089044730356783286028402363792373323847189273879516320172445319653562135779754674775765855582356806538952532573237588454464992385434871784841791485493209041273841597127057916134074855494530618302925315401172170113430813645479460047459411015438808361463974165030974572937760818745452517945253191248948897434434892079523153862668186024582694802097743776523401119888893848664106859498249052499536060167692319977252779032709980604776508268682780390514704369444115824407374867228901508645982718202229782870516337448917396275948849852940232885654559462659540006624879579390480332170534784511559783954719563660719615846167554327827614486483510032666041083819238054577719615943555622815390129372453048831172904891734890384170414626231206903554217604902878658213158150011586419336654381215736909933918833279694197278151548393624277656703145685537553470978924931836814827077313714398640226389706133204993435860194910053518069457707529725585976600253098671815748463812514766200065467771629224852730708782660474668301076289007201556269381367485895276896730098448722463137466552553700453277401752471214550279832960187065395068147639071622187199878530474117248928744392950289543906042328947136408549005960780938935633518288527101912588184520081275458771462975815049266888894379397235355707595109315368771033430185713490410304573203602155910665974751530026043334937007535627787395532385076601385042238205869019798002864912828089161063602010417325193274907619804926579649595239425319885758659866774732513492384334943736182746428749910825338497136557250920147196898696041983731224476947402640615744018673621079807951109997399033697423465697575986053018141761329306565843387725803880133198448244421445619891029169039186847908096095211513006466731018946317067117808093375704160327469397429730462676728530232558993988098522614384392859025893953314124947042737761297281087916042661716372756093556495855392785615072603699288662780619591436484217321703384062751709844448614996659019478399065639592248364199223879247566006259865829852903016858900338670528299197395205882882215309798748225150421336896446535393729528638396084748972946639826155780229672849402757865328255174053413700687829690351987729666618368466430910538892233473234935858678585250181954373466358375986026054286595972323182657850746726386353448755762949207823776172736987473751963706035468632529269838005112474477994170792587187130754503173704689385585820242454262511344515146390099899664416868524965031897925830375347283688900297298766919411212164567727147238687020738077129954991383553653705450984818408489797414789524528009468469215521888289269675181031896345007709278603718309724678803052893326348636124128221180261145718089675556401909875665855901277000015778296051225650468065214841030908312392547613232420278300251881456709680108234565152907471020524306197714165362466233332784365060052826794844162345564763852573666623546562240086067141049179123786333276692302722976741484198216130709109142386611504541714109082796263251085841760761884101123005645963701412160421639568271267688220924406801540053998642710925357136869704780950849976093113461107852798934361442108332542786258860480955316208383538890477084359628913586954084986904832576697333417473594713137092311323877703022168985105683120046518717164741059162297787597325645056819662580147288352341685680080146099003939484707483619019910305303468513612066906988039050918184170733298030151254980912051279247013196964869024509774676770144856120007522625544668460014474271560815036859463446374497643199114801822715534629658164955422383009848667153357041539155364879515003746502345623220145082432717522408114713052133107427373850224551973871523612031543526772236646221755549554761516394924703019896840378330839882641333272494032870210770412560066508344565989899572088000614815230983031650532239923403767400151354864208159998209829670232774839727295372218344162593535057576669278774110092790177996230776183025176422215407834993968343017453442137483406270979303048962338437247839584317991046264286623667869860443513228416250495415982669854366888104560244647044476680319479958962712720843965752960281041951615423426710549580701518780674534396994754089762324756807293685101430618669798022210476926498170815109665872197981655928982656370023724381895796864544327368800383389516111039242222624346993156070166993100129041814804964630610564821681058721904271178989638637195492714611298642994177818826616279216845700609103438649868754200742934975501320046919854337302110684642011477261408048872308338909948631263342358697925091029854751454380276014754876830706351163685502765347804173795364361481843277128188797626918183020455838885446225265676215747818853570916446608862533492982972680013300932952617173753956702012648930800782546493985501261349653105997550484932806346711348624975569407818467221594015972976180495116296792886558554685160798542061188433984663855191641828634673485637381182241839690959541979550237919988828115879699901471826618062727023824626322244893985831297333939502893947941993455064814023349619721522344235615858461358737054293973484147312796234997924419120447778459039561185896926220809920786162294339257016592440162254955288168498693957976757705812212656088565480646846059022562980763328023359608481819721147610940093937070981373111558589463802140752655549769750409405357197284060760998145144168264604508668011662284184591918900387102418276938642761233671003034819694780368727413912769158395866497933572784250397663883226668835230208040931916440950200269753569158915748643913321805539455300719295949019944371541829585641463403066479683252691867543093849161105633882941049434312549195897605699725519607042593067338535258815439736578650143207323889219366660336339644003345635079791034705898471047937432875015496957495901936691980691334583167818135820216856250238299937417168645839883225699875473320703345237934928643399280976533649804708877720220775488111907555428448616696904136955855644447699510370609820998724022373718223368918944714640460869206298186223680982197355461482080120982484162687798877775840287317680527944961215235851103524172148675830540359981994424498510500991976015158115477988650367019819853055134353136083059361176752920783654934268749017148234333026884937515988641878425328069417682867916712960653981639085149043599605244796051766735183209437861001635258316413487819561192076809521486081230110274110458696031903959787486620308187777737086490705364805164242914109185760734540056659878524147404746096784565969980424471471364801761152923476854516391186113167581453201116358894866388484065597523071322221845610823342663064903895659862893321416291508119147190274189669017459752533220281172365603687474291252785724449924881217561287039253750956468047793414505524879422626103530629991978421728980655321935240688751976900336159239434984328205642328749539754720128937685026546408416633933402838262724907437582915786278073253840752944249117668531267783402226781985188455138241490804284491769752596695793923511852610610633249293818546048137362920680090412196024893035600236365036596278510653282979829240643506095788051582540643542335844266665205801187133456684663923874484315857009379912773567207430652289250404459504913573997742669027530543653668237003285877974238305385383832561256374749138507251453944074815714059569951661856283898356727010012462235649292089152117054359444674502840891445085074054687178096132284764920266440063102125246497892261699194114170935275876351057538846585845998863400095363193443826354130882882522505877806713909975615178759900725214214048962026436550301185633346217368289872624013416362307438905213614428678225693556426203341652817472610358478158930916785353601358549428730633531194126793224444060203730300122639629761314473572490326973938553592835624597215109502209491366148414327311166524669000448633665576803131554134331270682073212733478182783151961843484156106540373479596723897718618277026586932367140046926087532352372144587373661539570474676495930899102647869970880345300392849930134032747360344003511610107089623822659526178296002342665826702074278811819435857913813037825048377778724458379739093757652944773656096615712369967013870650172149303972673767164408162808272394992974700563395281386874830553215598901682937886360631610600444593509607706461599736683580010294287120056908593071275586214763788401547797115025951595285357202685212219253692658406277979335283504296258967889030624013653692760580188887771262699235870981075849285435257151986653388838430004166027366211595194014617385164519687836419737619261110751253443950048029288749435299801218990060099616826423863848434272970961378560283588298503267263390674157018904483221534063515689503362901749880004387744137067128514764963304902892614958862076535004580592007343064268399537945799220466448429771319183939744250246739415674214098288192457139184697518986661812012479559510568001392932566029002838916212924331789754288813510733702826146652511908293560993070760423990437375835473053256724362591737147957301156515482474897155148863425448292355070222865606737943667153903588060865861606116039110035817899047793857909018738522894453279542125680101886995345301008072034736486696178310670963123012430955732152029163465559835930864270698395880911439715742059611110990574977663796653225914691523676391735749564633386691357896069247201819630995572900963022504636115477330321902560310094096426582492477892989788870554933991137199671508904962233163611729411209916752205116021214597253363939062937868379955903134003435032375903748574738273357550676978724042930407118288428922200415983779206065100724376921055904947635325814594358506812277712550600351648323223687695284458269983356487770766242077010453545316971991108721483838056787270081868053647693201802296107260658806861928907151422354704581471974489546977482608955465391766164565521560946331721624553318275763204951845598775612440823587252024864859480936829077748025732323980341804474830215006371011347735236212664475408658549236967912952952139275507852340592427294362822246210995054920015690313113324084495014233948559541757676090710267298801580049999564550446026213760963231297011361925703513792480124048622385291462681116280758739976315138305653847322818355115023360336317042491179062031330410601040337154713088337066577748510653693470629327156277231654364159394654506564060758562273634274177044116929329643167280860967916707378491178570777639144307981572870763343236363708455285549316788646329587906567714262209171955785159874090254470305470427730588839150072112772458674333957646311707151349087683164542071270979618604836104347956570696748828609163431488267543956049569256435372129064238159152360568018591034426073769516057493660966464310402294068817830200191697244070907404209239623020269034122660186623677319401698662956670297591891533727306093628895736828222116732038199972082119762187884751192282313384248131007523211984914207799297775588307204409279396995101787494727645364022545906268034652872026029664733753105493165738373056971059121870990982580009734342573825997173699341625236985452145012719613202487705375156916245288301226347667950902816389709113902677319708513255008618485292160082758797217528735906597103720159526356661914043904863879904771713607148357344447331428752039455247219820206995362623965452724113808035057088297619646030481392498713697470338982763239248488149622903513373231158157832264038872100687592291561506237128547674947954827742819468825426706338310598472706969071987854261908038037635734434054661057860465724874740154271668842133841872273530388071656871320123890205419858643163597393919408099652577171293117235116645089546598752419899541559015617887128065797719834013156988842372050408094404435086684653976858094687463483388695688155273821441716561082150162920181189804414291699986692202101731865127793949501327855753538518143365877989739426621285102273376200353223763609994106190253244593064944087538747670985504890064670024368290878769952962800727331081237089860074322795488012551512703815289182133814909032323412214415974117523102586263561143922102429527472054879383869073037862889261813223415130078248227468787291148862024897175348110725539264990311432975424990457581788557662865100417678588152232196679253589454846147467317885891433197807138389454030035628637707510117039857306901925525302165298590240404334553322074871350639618335787866785872426868480861334394300488072652376103867840440814356460396638343989821907476050746710167080767001746036354489504905797947751741111256907629763246375551573611150705108864456104321411724218431411534461023021633018319537915582519328691660042762544575992628555054211130273005933300262048249061025377893012388297474224082505932207364854920143741736142809081067977729605678519208841162323826865524405412039283587515420084567846408467619022411243428161518079518831813084818962079827598426298479401802140138732717821401146150824343841583800453932663871441365220157568207706536103539294217349268628841064535275631207598782984498583642561555722809699788722428158927581083925074759213573324757171244369463563644031585235517932864379409626197088577928803302427267317370943724153342109515190124221459568260994800127646990157880093436698939009428827650200837611312116108226361740356277667581586354201512471226447105148191628809811414869173568625485075001769794900646584251785963879015002489297698075945416439822482862336841627228849539387922385367621109867881995367607505301021941071127702512751588176353267001095247015503493505810135554229930791981283640381742197057802188362695631529587635129231188722695642653679239390989176046666841451673005918999502509714143191322538787607387875945628987865262089591197714319011802573654697585553117780509781295831409494082979813677185482970897611028282011726081640875116313742159241020532834323446707090263940251222636500811932456348679803520459497546890944287681430746026771986535427737849781956999070435111499531013298548419406733749437555792512274963649295763884308630468531958058887796787854138048172550779338818977378570219977720044395685686324532139690476531595528887473649507219428751830011521052122999552381350501566539968628591533865812561626433078985395932580324299433287333256700981788603553391714886903231560509874377922276739458747287217567047969758702955231605535123128964622828039164469945214268651600060331727773921899435617939334661518309928600836439045563049151835689446179695350118069757066503359976712862568426975513038143706822326759748325068253603797331154790566208179481869806631299503292075212992736967100149905530537026688898269044396163424184034033440085493482620696666156884529590895663848730355769664231806928907422834870111038863058735831471557342451826039493433708548382373914663812914999819929653838551523116745109949776974695036003697672626877603971562461553039408199793079577205185791996051047431806077871243234470690818674436901223946707862256648669834044256372608543578300441023787806803516341930452563866208176807140953221970240863508186090557613105241597400133264226518634109164826325801342008331909698033523814160590280614189556362520296759011177660141656777421922396847297732324260259211912399418302503027647303933836869802193834301485176748858559306940749307421794673302063247829222897191925272002681739287256119118007822415807433479791100335400208300983558915521892599019639793652498624718045323478448053288848424171874574043876643605128396377747336877672307496729956573154381462575771008635682374412936231610799119895125806440665209072885312273565104382111056141880104416188046116932613273106105632736492958886540976473077632200651401381607417743787985121722228108566441114778933853766533475889121290548172691896341162049024605301522380916696757327859911877231364710874527618048365405878187294917317803778926980858206837706411154443317561032729911232848680708423125022644251439758721521153254684690138481666795315542246690690706223390676659430558579979750420300704727242410722566397905675282258874646488460413314140066475728869979934286322754515828408725365524963638880845277894150570164101436582062915065817654054156552316150512769472124010477003429458280055419734870291151217589810461942576929085868657319218024038619676836145310804716971037386368255044389936065682389583566648267591240586122292489029741384711678685365932856410490664235339313233792211715670084155217488151280329295850694436421143692031238212931350169491551671635223738756640648214296371375534752980509296886598591368221711924622426178759344751875071215085246258161975299456345951514278194642287036085236805438406018592566370001958786122581738784549204259413471485863317481601347977287252743746858249204071165100695844346149464959143893891394239121982706888814594857488269716559659404817422195951081330789370676872882423723722451528012174811059940109038994302593027383021812510994336323060754816924323943741899627486851959802727650926823058732657686089349846768459397889997382783620533694371786743104173449727263080461217792570421972192908559715204084392600269102129717408799457464821438490779407848868496603431391668155437954929036798893952985729573647196224604845760617220606693085565332824661074449622938125147875979074871123690371831762670133812861971888415012306605833027851907844990820535559992952542663245159245515384377209238464160936514159864705074994243472889780715479875524309238105973984267480902430252484176489533843888222150202630090270872321848889756921855210959947208521413817038185177470403972713068166456653690639931204415863164155471714308272703239758416222960097686822914907870048259819613984521174769494598010798851928048407843953114497209886881770525054087823027550905054432058105863456988523468675565856136819575681065333539894987600895122511927278738692919908947295084954718176589979011080987119046102685135067288079643518928495728506564649440658569645347876980989843951737182273069925643235688608724937561077502629260183145028785547944502493435422213686995392186102727698678937868389173240473519540022702590073402219626524105347244995679043807712466688592231603743395624478571323749996796105230851295559102230497425639498306399943390107441466314567340164186610000366686689812819235560532474594811089380685991252656901761606600567304119785406472072724119972357623841108760373856634632037786928827074148339298661512638744919973135109631931041783879336796911618233965870453903165922007398958374106084574862411331175710783099825845926747469083399838387588806524487977049664271417148101066124538348246404448096325915328396217977984276367892748219570781974928748423631287256656922732050332515723702653767324952708067495210694517039049214038382219229382845236725594931314289662001291760039404387324421256788138868179595371282613484997859488557186201628959035042373845918764194750005291629880921387635055441786209922362298523467341865666002499397442093893307719383757857137005170092459816051403765081000670888418161306719479479642429461775862977904428583597947212566447985911899488995427440872370877885044526764315490619721392700615472698317007791064345221371871297830964067750516101110510079787621697099573381211664931099498659368154659103826592812614798522678397272664759722494764959519723410093703500859142167490003488752151397831116846393660577114895739585245613145047637788989799113469517778334952212533603765613354737995161555231057177469042958846957586111215502342802561214043958722356619156763536205870345833867334809770029250030168091557865015526599382769593956983433535071313083196959005245534621812018269073165093033471767269848731062534917820989626627255513359209737735577520625260255200020309161750164556775707226955810709983470366557325883037480163486484610259694372170051359874661924694574222004341722528630594005735121180039593826138311638692078895933420439210567103665884516973556985705842730821716646366671520461594197430461345810045021055289557256612492189039278097630850812757221075462832903588288453374684936801579292637388261462077907198598670057658686042112983017920027346457646797760180205162097561068541229134019401095742323085147634721061427975404094580873166377542290370950501676877050667471474938145479688759900789230525579662667785249712568985416783144087910141136679058765405853597842279851193978399961156053376271400783555502818085112288165752806830238131477432439549370891094732719596849423448776087791093338753339920054854715557755778205331420886174392597591148301964129328603136608197529829379205055281017750220917578919267008929747879957676788412918306723247135501254214133613001708941552688224600372043787191350318629010291552229239374499228735794813661771287208827566489199644504248539859666313603989060660275835411630399303782756246933216131764853728005847353761293148679220049154593917006438744507212968439211677631308466986792850182472433444410462781765906796841647408089251845764279607745678844612675435097011740035748760722057131860857559325545066454673075600243734968651548260368013481165664092403403551692726063324099425974653939108598046848228368335293394568805546697468937015172063198990792620227284172123728772193104107392620554095612163552405117208330578771614963482347944700089002604469054922214692551644708230786096029678006532606607170182972130626480337369057057586854306845732512684151372248382531996850631624437576896710345054794059157181305679080775756837202134474114798751787007143517662870838559582885802288951830731086777667264452194738931329118107777309239401890632560407467971682207736347018121217969062396506555490692763254966729939579908102881708417801386540132987957686199352308677202861229001119572001784146697233880919836980922692201074934792709717906767846644175778236716747541715318547535318488966079791409428839818170784397959533750741404270014093078653703232354688755309506966333618033602010414634135198557035843932156977859587402445841796476573427920157743909770581661132362166706664724861473574535783642049677633344916330497434971868335306525398360842582850003731342985650435339679445672715666035454468210527476700907901602187207634637549500245833845214202174070066512514642630286618750979847148164903089703938126167747583644408424495764012997260804790115720678969630312487788267534238682890851908703134665953235160375338896413905645291889511898416277050621347822995109837498791536087518863344768994027013577590088058061221775328959904332695847285471509309548086237034485912359324343195699251699393612932693492090993428737705505764571489274776693971711652135784728617768540515901093599889670390320278916533282597443472898498871851916494816650094953780891651699089503370988917082663870969604865159136440324505838427225176149379100736161990783260158551376475171868010111351577133935665416818146946532323285514532211104931753979695580746727130966433892114111772936354933363098081340416576205302205849548778895026067216637269144476537634547817526494120402979355466266252305123506864199210671462739551547014540836853571427939049813682481586647376132534775998628253040419618816144528222859365049336629003344747969324549248587884128204770494912444218879602058479998483015822896089769159894349194922889532083279994755468478910356520428147132222530689801411933135798269226520843724437935739285639214208995020989710447770099418165240065727198642062617242067788738981120434084313153909459519835767422644080296867243217700408915591788806601038869312288472713531902222539488976139781089482436260325838722783555865187325999869853175949885009405356352400543493250057258967849564328449994937924124533952104039448392340106314099260007177289591692169794270252135178132341442261089179107546622327302146371295200572817204853096561311963174349859162589269897402454025009497190737777163979916375788106644728298890251231727014394210326341042535182361126744344730915304921460032846458322044626896654876124787116039947042279972953718177489747980546351358702693261947512848514912230350928706487749207322653177531479634128954323913677581674787979962465664676777839339481326216804407764786363871614220865572288192990589849641900138920945735922808035666800616985284525269671834785994337023845144573654045598614356458812270042174239481140127974257268177052187535893561625145907294633381653836142787399406164188486532668098040423342955355635547005072562688976495961928133853358985507579502057519361278551063983192228099906384046705588506449095101603597153678258615933469934657101142634747100470471557194989008702562643164686595076069775284948585897498477429893796205657246655037424964036815532919105754848096436935811660757852246975348535617386209885513103940831678980285559347843244769498956982744759152517679050000837049472044381650970164872467629011910842774762972746787691189177144083976880758441125486851048713283168936436256690648659601729561306531175053103687141197015215881726646830972496765584641513359837412451106498344516476467754914139867654081041387663328502184349245072000015661573240459249939088780146624530078288516507626815350014534921935521211295982114622786955631114026290370185037520307426725502055224735802511055991730023822496731880010842910729841482918273121565604845583836439770995001302881640097414420700070955632029630126422439216765059198781957268423770715545288118718888421411185967465134965120266810743540557157692570711239090068976068783316979560119792233813494153783748162196963608961301456659385309916131091171613697867363142949892303251726985761652642889353550154816494572042766990449810668817560837816899022969233843670020582123940348658023653225058643310168522187718101113916585875556822550229425313034898811883622322563988446844489839241927090927949177265456759103070119422722548239321009570415835319610382353631645461541315696857552420003398474069309477897390926199974885841629721007377661427100410361382856095998914652177836663118018385438464053694168301651017309056570052362011099352171521743618544187628548906922428799142288310808589343286544237800780802685268539615642695498737320862581222670260933809558893005442955472872567295542106567079917926891703901004736688833475768526042898940773316307994747916393936493743174448374743878094883709908397198976935030072471409949817267399274162189103814091148393635545350168748443400076155575736434793506857551147763017093042676407162879282462656923883373632026804373315498328800730025531505620467680662762465410194252587429413228837682618587098278477943707910917076936764709089011582059284779660043499763353900438318215135834812687737912638405379089057599019568734466684235381023537738210810333398981349791406724202551291748024468641273055162192786861279079801558159962539720308190511810659143330713946813623288371289369692065055364503821487442493652921905854560014123265794043653564204971424892103937776715971649324287969885422724361436913713861345528081132644674528859250189036831576271264047413807844387152435061574502442327188727147028213450470282245318262322779138901319088762571541612387776824319547594217225489883817169649138788490105282251043714024452274361542507588918163698715687682536006305761893310575558826396421765925693885114196754964471324728690617022650023175133619749831251763430097416345296854437917070094896171291093138330108612569150279474733273944374675664290569081061039471434587033790983810687559632494198044267633795834861624473593395914815643461680484212749649289047936085987154462198692916453560115263939672517709967168881161268068720590200678679339337342105419422870944682331386654766987190834443305367996910861504408653463650158478437995740472720340097641749848064908811059775407957201757356728422750047715342810469144919430930902966259562684339439152355627700815567865400546053638542585970086803396121227396657627653337918838738718253993364961192434544904327955368919125431028083582998600259486244342526884132262754813838307190649624920655273240508519493598267187875693955486552241482123431938195518945257658882096812617930313586275344711907239417914015064383823393984026530128090694305227557169602920686744184519286536598032518095616399957038559111112312432228402595290534815262467655711120855686604194713756967746213236100600905113372764659744930333723340517553019557069017545558981193984584393515433547739494645492865870926262868358740378837466261667664560798625858730908439027316328726340083910163625543363649997353473662046599183531669037057520849692451632414998313885512798231181105629638077760174002049418323035312630998076739323854805342082485435880449243101716774397070319145450265915188984956353013738210304751503388219269959724306448049181892074202884878519435746984529008255347912442133359697085146743469669931084856856509576412491644401562953750150816441390156533974132998660913298238651121292073915883480628581572426244335704622233700548347211892363998788780469151090057701710891303395605246491212137053111633254865722575994225381984773039972280186987914124611527137550066511955791630146949978813891088905795664962136980270768143551312350776658050388191577263317968338692838883105601922936316762827600125905227296850875125775944072934186755560710420881594755169857824510291765761323046959599750196121512192516160377043818196654701589385012480614751234878265268466264669560890663692346371756561056603732148714301425621317107193673417076214901326832399167620419186614051003543169150201268253191544931920123967211767206061104877308173988384976887582764120572548956940787347021828317052684024285540043184989961992579125142008617669460842615970756633040685124727392465552200956983294820330644472364622306476617319679885604741966491571175332621095707882488356129800504463267552755923795499080179446511714640006526493165883261462233353300084485930647895124618385327764496439449438678173547756683829282040090281318902314969085254896054277929461229295908975010331259119748415199579492109571172946471275083673703798377321112599029916346980785900670377691685535967819317378592675995214964278679909598319615798288017032938361449852305220181911294544235469907027300380258617833252859333037030734138431745667573040040772614313857420587768463548649781434527969523023325759799778920730760400226255245469186266099137112863601316393964669915632003708477521790887583723043156230471549731122918286899806491953761360635008580059163926120499688336145228090264278574645112036123874347190233361124264640114081645370878283877401618651505465531976576419319075096213135558736042259193280659340776142496735834665352529386623407684799690620008652010463145212147258497429799045109186994513873441722539659620767352458979607124713875132732639729027214222739869429437178360427155245759171501792197095589866651277458651631636906867019126996114372844763236039764421469400099364142666266422627051156390700757332133931188137898060875292227894410689696378762321494113148874891171225838602519948614646639963638013265686682905434800922753585191063518641522815980240381941741102024464714233898419246525366900238025169231929836514309186703728677367798006281923936241141856818309274374308265256818995787799787330747188609503097842801508997230747483571479791427419747119857042533324917794635306081745323065258419888790674476219064952377354964135551701206837561219511498282500956438803678853406613772371325240377829779888045199358757822747501519743178064225783078481319272005549942708284398016141162504513671555295493402551850776378655498104620324989022421892749858371343130421702441386264225625338087754746100425265829710266329357373120267414317459445750074860668516598962527006495471945898449382062082822387224820274621219910483067878328092205951891142141875667875085945902694217560178664791896478817914401638912941592256468177537963846072525970775750250209365696506992625309907514611120787965689895380273065235587545801481026962016124019916481237854981590022673466058154486333332115400104888508312520276853542700608093645090994843680655774613821982679504325491132471311364513158280261987027030117921727869264766335060065026007619373261764304362550799279928288718721389642895143670187786711669062272194962813336050477554245891507865746325866806999231170572126671882231523013981527970499979454761648708407074264990187381303129250009698442001869941959441544117477895371483953966164790093553253737681724825278946800629756849309529689512605244705866971464126558775407451152274806431149062971288886618162917501324831272104952114752669694359841361471243649726391080343804362298641395614708855326060197380552801854408706465515983503360048640897290819012791965716346925264688424833266701781150071503758913776375471598157323480810319341852760389949615884381135137071248450521127370137518351251293631107662361512149572465280298990248046887300547126550402184379140790874231197312538774175534785189114608385103366577349332378459456161053830659079287315883743119184651343179045680303580778430329524279184450969659295902982899536751974240624004543557170970777367250890463187065002810827353808748291125954891192867995539445158054875025951383474880477007723033840087485182826182762264295437154586727498888950296720855197147574596036667882240864066041666837766080566911321433584973096025823154725929448472278598440501065468611511327844462429414522757961375966900641577133820687423618475651389480292355020333782216926478908040199051279591959957980682978372454028764992815948742029483343313473166967959900267304858994010178394392094001603685703674937783717662355505924483142962969179503540676899336330653232790829578516259020821891894400074778551963856765808564479554557330932166494845192225117533838906847791271422605141823839026701122244458470103680159702916687345305479600082584327550985703231948678070376322630069292784585871728463169924368554764113643105548172207710243952603270578513707861511474038589520805912607008397174262357240127961250173592657183126777164689913148636524993100102118155591952493152789624025308989231590034006214889055254510672230012829177549728415411967400235481955360272380083682417961303112692300040346427363318524120154337757561558830102963810966555360177319245026408054863143073495237576438870400264580917222545311290041412379311092753533202837556838620063704382834091582225906327917051227091016326896786336420821210721916761367044077668013842249532015612847748106155342281663671108612051152258767469877724522433109657338505150465720602739755150953863286536612993648366486262437715998075608094081629930366959425613412622502008820516614301570157069241051634273792983864953600454556176988117132696057021318782634550012471013473148051403492915928746200068128206912496417560206315200046322484358708781902755937969357237430142441586410426659805715324135293439246028360670009996364543592768966823866688453178085163195467205782291990210639098302932690486916525069505596267498983049243898197684858116536745424076975086026421740423630319523438156784798250348725633772972974398208353927389722300613188474443309397876655303735524199313431414816313182190006966709850571237446672260835620558689495221132291008475992817881368633908547150795561377799267360010076219242104252066072949612046059856924403235766635934449352224590672631336213299765836904736577345588704857184050547439444729765176111748324192136193940232939653784121153241843681811074041684461348791460845443880283397305714550550206429828346015245017430423451642408095878831251339644033997873549372511224697327795972869994284591824387980826791217017384016014917946502234824691081830821275823952621344474473764396206801581413329101704233207908329978807987342016348146292778925185335158083236347565524244548726802340751167901237409598817752768484864540845735832103143724211637932887279926809471488781891008086146313702801194054090337843905573758671587654147099752406991430181566441115515736602046462911540528375858364932708131104708503510975788949828562455204431836298276082540978626228563323672612684456961534258839178836711676607176496345900953178387821356663540859331625223887020119058342946811104336430933406871783384100619445402028792014309919235887185597442096996272227862077486354675104847703994053038770364385581273733303052094091982575544910543191272023592504066228344757996272481213636556487585964254242345929772622586177687793940174819498357666919512254589092662537542319960034686800386311976172171338454238844791773986969896258875567332250414055833489212775756239021888214173474044768248914587336483500181976928264274859365980461412198944717283545488527287746850802509165513885726481673329983898882024631022644070144253734360914096039680972571557601589060416485118645092362049014757618364378052483736050757234593678049195684275357323464099704815402262982319933321690862252260321829481668805567349251415579687182822595819301030045958951941409748263668715123882063399908079371270517798708004824688093975817454510145671547631098289735328148729882936370446763564548957938867288823423934452125509256611116329205033141104158166889658783057228943097491330563036367992127327645170533975245184775344660700027294746950352237544113175401419892264404973141481029623787806536228121568357356096081732263180825885311789351326702040846436806212889021676692226569160666026528112745468291793965182430426769094222587811720255241252571938897174755951046716679992382935971053366180831946349935793329846914617960425372923650437029416491650191224740483021265162047665624006276566681933389601591458457932862196862764456940544981162599385144226547794540361404397846157868773491366207595395010629190221208222746331842481993380195811699570604569828410023720567973798349718295651337894759293816898652405128925884309501792653973131977540133549032014620519544089219740426063149008209261983087359089236903721901969729449924629987271701250760777601701387286609434788998425736486748627461005491291146383651573751134936996172964033496861091014148802087379694215756331638821921990116161352410067066536809553461339309101552115702745431692353445621631225080185755112930572672038399273011296257502271399691798714649820648331033921450814947367538114463196872989913626659069114189126920857571266388605710551469190263320539732302762193715239356448036569805082401745621256145007960775168951097087740732642313798827487690463539475910472553543529635811381427618128055552620146688933619784315466598417357938393206827159759033451653032436620074138296226948543304137022101056219112907819787126228191118448892020786559334102700740587629143961949365822964392422999958486182207557817580786507913611798998717639496670567153199384116978540382854200720467243361155318935296051466576607732108627980265586676689906134132192198411129976847485297274766050723343989695382827797948418716039962388247520442709974041314356340923032672881481977926244275297978938563299070823396182903028270608760181220946641478714665536198343967016345899701324122897511131316914993442843975816727117449804897914186046106191836243321475339735780846898064886244947522754809246105014600765613881022049223089354390960478979646526740280722836704777712620270028877281791914252821931164388864805228419584604258900439953423657244328495298599214922071036339145692435500562042020192306195043250615111521435295101090863802506202051813794240742418972613176286513760450458359689480768951105343530020507487061277479131479323188642099964112744523494603274849911475987219744268330720374956698033748733946931731180943013385811955106890027497563775906094848736266674750254611623173801123479582213332399706391136305106939184069194178123908388518111703991090360234574640157232280274826145058955222801063168121133123952783061746850642719044716777150406282983700679227611443248907597638163126509319591770889364625998620128025749800223390756798843448639413996403808544382352298238220370181699232361567388865064899388166341802205857262781818632463710950561674782567605146295243063051915981441922504877888545368237206772919924228115298877429193979723816121749474813459418887401624820193387311516434145391933080896929358581962201501436438067566568859042960367060599071393662260131323268337763812367685663198705557242499365945605629527792698612000689165761295163749385471053277531972543614201873780865376526601616213414333996116330703331223573850608739397846552769639110021926054091798778176615079903391763577990052867455102178178473164623225499572716762391129399471287126113332677885057478703665886100261173798483278038431255679937389266528818550393387418934227962098601583152974804733936953010378104200630956755681082032181038250746759045348461571649060767257479653350256720963370646017330295978459214142901733823470321451932010271423822549233466528511330506027230189719133238017931596097030228921701440252126082835135527613720026759016065761389060167424528627576970940407474972516789429029782197050793281079015198405316022439873459082684643479211375525634932428530220813350643672536580967669190772085051452842707543817730733078810543257383125207904390975017910166445734445517970762587687128671377680658091768815929968081637200773970432352590227607313917137101524720908696917342420050432370765725869405746105989183245914072122812012173835228384577141329309519312905174170050963573710770080440566695040312537089757238452936654159168631315734685868156015683786592301155168683467120233837587098051615164476659499196817801014842915432022378374446746606682735585832162380053806561940362522677768958163547031124391817789434373217868179792824898005421193732633161158662966070892983624560312811276519239876610695448925434075014467406808375516476844035727493571453206323289752950168431129100648666812252598269137657543059970325115331454610118339158467104180818979096941237963380779225136227031851756800518266824997810805326646235688774925379642835510755131643864847553856657773332687786128136319515167958784040816264672229657428028490604309363702301449378975587508795053103505694977985760534503289237944534963822631052058292067962202145739592760775330909915221876014751334647607041104005569811484319679580795330978361043629011001037688148487563706600822359646072685306645994805835082838844127294166586825334477156435691754768654207019642828014672012067964490953549395598911913588255231622059278690436321790006733836027424158865000632053720317678111756361847015287472511374516569829802812229772577424726875977736826274953282727458898114882274335540057653453073461771751889225677703035033655156873915067249487541800487038903946717189909641628442055624833619070368273643478829105400050752160416538369073324390446944722584083023880696972083027285997843089328199232242683408304332517146778842471774896273675235796924676876128298640540553726413854703214761030868310946117178047654284116269090488032751484401476663990848065625630557827878165748495749782328587412852194071333192103238170155446356142169379646628997700228992127575871452254322320807160583646753831554704253860696551165325076631847529709336465185454789508951595431577103303508501629748824936451541657190207376966639753868670914283240274815523060643861134964423643633405389112205048581515228778015722158258440167736331906038924205766521686136196898337015231308692974017541610606492018852085100369538811755321133176241518850604301904447087376856981704323526215474125987445852896494960937227178148298558204485346606566595812685014500502812561319976610818139529880599481490816697671193731313930684561360208721582882467241042145837417999857772449756347087932690589720331383837673700890929155893978064220671575944072610466336795730631611830450105020176196039214254408791708530378445052448067251909664078158456347522946970578692380519133036717394494407723302230479915384157324399844197940341987125238851688322836327161476803086661002493257646035464949535710223609861082100281796541354100680561575032801923407801802310771958216882784715319578917302924207404766863136225244540071989513740627541929861219070349184634140940884388318736569752988618668143325124950033589176955514937414584869099888367776730973742548584292444524329440693034233290070345498173863735596952419700097488389692801316236689138391197384151586208406557805978910830522042477649870192960375467797898734726890943884517628585253934167009543829370659436662695443305706868570167907640788851202206606047043876625819351476501621217144087397790696070807479429939257833359541187658259737751494903629546686343144304289805497684890462883719914635871526679344038390647752727247672905212758450189778492455120550753211168572241206626737958891821678529648994858480350209393399229506364608003216637830081587660884270437704137599956681541018386446529958738906880991728892711216905402785141109289981524657984665758998312033458348898712272255261939101379750169444019644514150680465045105268833123592841529283663634059790055528598349793295792010867050999847161325821003384939423316134632185997085617173554675271405671167959465940609523989773366099289165535519631691895464955517890447309799805228519041512721880791003505812202371899478077901131295499557733873335184964515295986726622905122446913938825067232569125020248809889923305472304491993184430170827267856434390602544445370658588657826550139841892051199734797365506231736683934752710787166424868541711709793845300451677285162227181341710380304954805632782881134110189438712851896276616200944150857677532305599874931678343374648500482414474061989492090496911009366359398406147100508945867189756493482516660765360212216132945335728496371593664449596763044713946928978567752009967578322331481763924178744159030221988622400566968326426962849952493129694567128126469263783481710304600839717940213448834971564010234026753489448107225814316281578902443498934244823085509847521067976028057443342376774618805532696222206574865342290492463323093842182850677422981301984484737109834297394596067171629078421627230637627159702670496032403314111206550416558846836776837773005644350655063816430022406521538351497845102334193821612240427715022677407504346348033533427487170937070128411954884199221160896263551790670728812710518706700304364445041658010969231389293551798405492201554716467849117788490740966809423041402558235894361522483793526610587455391325732110537984848863162840249868610118342895611582648602805491555423020608056702443698985846448401644883539363517865119482028399865578442616757895137493962559213777176481847304264878962850019832212566392117304380056111248059902668394836002808088152847834606019971246223310837536429408575478061092641450133028755235040894678798416816478475515289492412706413023595379129158730501297350655670702895548209975294139851306113504063221853895125478866219265957049104911685613758385571199335504312256637028186149991629771624218604233131744524745095959686316838580542101624124494139884106145567746754489773535811668432912215812624840325589162602361416353378918203255345231217616464920403766668938150542235925713770305574370685690867965590664313940217962549175944301310807928173460574975358380453456700239068604766719522043227297183760591024969489239831079149155419452767930613682174479761029663992235368183195526185358083719605760136505741529374463132653059602021896772445085387870691864353518098445598854586118291035932799479849236166092117246511648383096878700264829023695143683196170702985208364192035523471104994740932278499428483766371492090763843152486115402335343491779850795719553710267609088651494033251495459034250984482218264268272950583193592174725646296649160986818339047811779655379999221795550334138187203255685869029927383292510277572349115356218568334843451484012724577865654874164631260190688088441145778565653373587767045256545884871716186123612387903106329714849761897523769822415840115670947530478266866959185478509020056143360242462623911975876972970069140874759436259612646419195019533498078370241965480840254865273284495111584217407048891927408589610984072127501921508430306343942804243044345543802592323055651055823745165436470443362951408306421121659690010230285230277008733815220721319226058179054342918674774601952172249062369886925905930272349555878566468254262758324638588030921846686822703142118723130499842549141034517816469375393422030692677710242336198789458866425247644937525637112565262282823433284331410509251962563069400220059829051099678409593796063195832897985975322844506455199231176610994986230632536529837795426097598794606823068483926719694694357961467403666364812967253501171774584420388151695568757672964672920640025669689187432517845611858541305886654702969031175780173392782603075311967510414886115111858754052283679824812259056797455752652589666123818267185573742299181275526305826371407261234787951405236233733230112173387335663693883555837013704633361583537529529876897223581454710809666436792143502312066166101094948500907195189063552620588105224230892854595176895915610952832518701895544481107731215518014221676040186458155293913386041752826070701236357409208153091260464222648734550378793757904828780532529854582615012122204718623563558520857791345420363456299420934864042752498393541402925143017267145222662128858836774959684189968428298316651030623630067989445397829917118754077337906858469734004840567181316053723825671955931766400150741705630200485609640839566318232454208158505945520613612708684898734166978581069615772256514081639644341922846700592025488142351690588069845062484938145557498929909549375053095425686059426541642343575946792354726205613177581610159735962633120946124759126424650246639674757263143047790072197708446692183210788028029044856164543769042582094890176696402501939847291618502672796971380171489581363863868812593071706754749563001840367901987454347032864111487990494711256769072552263430710196090887323024658042421869417199964240947011697997553876917089065196672318580351433433599484503900997590101546475862807590348550971461559216955561400213927040255005518486286902891230289558237948626424120204380187610418042052898549856241517098834852439110457887888414201161824705224865032094461357466844544841659662354736821794148326927465740295532143184897798452758130173870454849299534586923985361963089845797879098355459133225631185471110061679415247833069176407345585797741817177170030443767695111605606940180246041671600247581357999455565524808201696850134490190915135178863621730487258627453522548195927930490391790854408611845213271469015286396523771971560936616278629116088170244814234718172757239425036004827960081916985064891500415457410679059157897584118726202024855955827172501816052687163400892328177871734400467730172099194953281770108058081689341617235778836925333696932488230143623259918230735783235406855982613559633108860132346374424127707190583608156985281752853264584530330902526629574522855811307065488050257386437615094552038277770812898773745130148020462601229414429519941340519683320604945028597042291632205313988694179172177796066355982534227617484943103710389203240772049060364061197731515245776663369746676683199705260079570850669607098625746649521377425608187685457657673769054385669164952409651225227127175564870597760436176812925708336710523891789179377762200897480417120672513478853423764666454744398175322053245154563596882354125443433372536499898839075935304414888523555684491212189582863752408139303900640359272515311586858648965488396300438034870267772570760421830580286108195498553590529027544001387663687077798155812086536310610197238466791399724530171240325291275186840857473186673384302521256018645975572990475053894589955836752738216569982019336381634562097531399845260696854970060918812383873175584695578161746532382451434969634971103678044458207058532362094881577769079269145058674721143343212400505508645504656083735980998543855581606215945860584810118823253239913776370592659255952409961263932093706633711622263469206631826351736764453573996995679049445958765398064647253267797065577883808815516777384841055993841320713415106757224554019501794529344403552007552088875930409451676980363792334748205625316099851685004739175127576809898508962443853207813759209507579942593841760939827046060600085410075949213334061810473001565321903401761429548485698239165930988626517586111417621950416198763441308953397067374722337331809038374664271328589890717622006502297887207689615472553856789343761521349552727794517742371777664779251409601943772715031652108763957763473478775480559724828906305651529831631353931968016993811329991891058689067404534092331169889567952346914923695458373551596219132896768005417295440824046148886101199277617756063834891391359243176193848932970917642397639866572656707117776746912202251690175595065420116347107952070526866192582834513841950921292016223316703960667790797625765250983008989150778542175107717712888957619764714697221910046864053237630386395161292844461514688002901218977659207244870766410592361019805218173912628478065795194749525071527879825100722539668021070930041823837294709907948456462797987258618001561901574180052980406366598846788963642156704819731489895818763504503297099656660725093832368091015884610115664812449446492639226613222836944446621342128957380190951287450720876974982600959471455305541690167818228943977636576146543822759687120300955586316779817806206627336450854699490371149991637672665260324273529618256326726859034756311877590729021653146408251507131695319620432848551450429513960026405894685462728491889947526017748659273684431114549868769455867323330428750680159773710861097534127622878535610169510616330790748436374211423827350384197846059350346128370542805007070955917958203085268546483798425141646605782391495632484036175525046054916960260669291078248680111780801254615818323898513214162397810244064304024695517530419661932246360457020121575503471932158306858850007805690256321446848905224768972857665726966512668855561705158501200055672593473228423838750571697346714056305456747236554825559585915141004530255810456767418045509320466572371777549490362159581071869508139039538436530750192469723428031803539940347124402854343895228396415020117316594957883902127341843646630869658276203340913644512673096003412517685580199514225162142570195088940272802187762188639126859584162017527639998215853220760466080492756462982174220280347258773044788441282731348302438014834035506878241215334091753337096492431102584386469202854147235226043962202631933083253614256661663219859791816459882207973093918592656759662467155458193925508902538325418735937722786523981406322485767820157237750835845291323008503711073354192700004465695177842355732807481417642986677155693072148900011019076071457182564544304971192287011417553445099316970408705453529856110225951112113147917331217837489695479708731197898061400628759957626727576583829068628007363918045810240515469283490851092321781657728798889421284301890293417253849666658673156097995920367407267508606570859050073869719114333258821801450972928336207730995937822538401517745127427388505266565512729907851047925590178738638515320092852643363454918447354511640727973104598639809255072040985177039292734240387189390000737364397690844332589786597351153037097182703775020791037128281071636612069315942514193677244744284672891524497277204035511618084060623026459495149103531258588498894613350228054035634499501724126250451794660985125986018736573480659442015601387421677925327645869088723596461674063971640434820483465616868305664377073156081405359659645457986677578688855025622171870929983243344741417459496423460260703934807031127864506086087503503445953302965465589376140195845251209796543467082308792236677444209484184813300314907764730507563811468883893977920352843064189287904030876051360653663193475657207301826523730391374418890068052012340200663536293919268936764507985452916533404895126883907244286856518513009772838487970378764819181190661601968199067516933498151433573095063395598789414904129750379628667457561113710150542447784479825960253247379481971178017424306299594667692813230198021237091488490792906398111953288801204798313222239753587485492563113305627928451130702994203697408857182048989044318062755001812897565875242195561952896804514805961973026872036740753771412892083267791825575875562109283725095652200203854131678430351173313877441322263600847127115938023491870564782383997849262719943300202184771037231434278581696434513847755853003755891423978463509679761085382030953317633870751903407723225584137685399027582412883402697459714841508087799229117844820717670163273441949087527802390226543742280700950666473393935835723278173903900761027229128965854544884667066698216925653881362165742543245138500854847427625061170462014896975013309462020555121939739505555754048388817177262072831288353301476668421979976367301416058039952099626414831849782556211248531359882964386501458178637823987678772308653251900598198218234975394630860838307906600500513635611607046414258155980564101765260395441097440978804148945750669163760215457752247237560727632913851980427202829613631617200456594297039175793847098868113387432214054626489559260899688139342246673424533561702556393385745965602440889689293865867661216005495755422025173480181469670228011183689654734834259824427195787253291089210216322023327656880505362870428632023130006926592346425531228527432020532301991265300681793665972552080948135920441531459192690384417269717040706772091371299713393808538361829058692748271836097744805976335105517445153738721563758646285077241509588308222043206104609345811110210408109919434946043482557382261441740710563499147668936780835545177477790680109508866347023779421403586917607348504633685675566561070417012335491478845825997345880879874483118957334036268415512012295065788743956669596892643650868880347104474508190445854548151063712535550319863495481504415430744325933874237870767210198225354846202454947918972951581961362844058184452303096169654671009092914910222163402885452598157108875389804768997565712187856764063934860472787936229510822400770585831179107699991373913329808728540666105866180847945264635553844664452996633711692872860194364017431987838138323984495028114086511278906122132539241681515961090950589296352520952497057735264641873999418957985503713035632209627875833259988730022835876620711012640913136276556736538060606391391510821735040729690379395332139932104976478943519283619747985237705581401620554847981243669212444110531402005761622591585918513890611415885032458779497833404874453869851848539814141428659477184277725882898707217820848647894536986048026762075105272049415095823488444363955490114408426920134061070622050951589168407925483699876670271815719653452114307713112422372103166185603829927719850106718431282931452290668647010951093512280292873938428230879239436475805423299923707312889783127045165274105054422502146870403185218877475234326020867693522662475910528126805750440532544336168602980632857853307665851916554523173225746476367612733744127089805179006458803821186758840906740671499745978479649121437085866519413886675238660649433773782802078923864073887118284792622146083757889472334343823952013679841755167655951787551929098267819548039075138953616758164889976681388619658905204797302367635200619279813053898144596338671612996668889024109263965201191117654275283927901137089978896214981376298440702887983577979101037404878042585732812836754378794673299042694570737861851464068063913531424156568537308183698582966019881390024166505433492815666732356595957370140027666445061355170199156483037425289146601234050121330478504019058211074177573635189689115889951176060880823373164234294409377485224574434045717031280517184213606209559412613458316657915521102510014135863310271570017603643533434322286465758774138224183367217805432737039712329173176363008716145711190000669303482523385715452711233956908233855201775438162803154771722025574798371232267810614472992979589282857597804359784170044290510498466194720354034436005949532722660601062221576760769803860767579050626666757838787217592289218742713015738315624144074643981682165185377794044894109227710955109943813433583503744363833972567073189693848669530278915021135413449367005896781818827495843442091785957121197272189914057960979923319760086854703826760890631859480895113206805321037009932457444115313218843105693901279638329358685810170054595232902922482413001753923933127031279264229595147660815697168419100549834882148398198864703747186168082429094329845124206699999975033563901108717980863329868690786570981234172662602012873595027489721578648509290578513353122629291864673862448339484844375894729484253812639338172897630252897894242337027557122183456582959933615637585150942915699995385504469467561613876205589204933796942581849933305794071245939983485550069460058586816200392848433816098779694249589576999630876667941475954207597062854229244529868654205914719003280617904062154751094565098838570932228906907696215246455778519458070971662002492633737907816482000125353311654251992800328439228508571470191692155958555685343329207952866444448648476033822278515084702850447198606718787317397976662925686557789704564366783089217188627269814261081674504280740008438294022804728097470034301332657035994376063367677719132435962658515661101123564640113736406106990663732801783506590458398060786823203336704268335658639045843451935348861354590442378683185075647955849342031482394048434906542446136800098007654555823465785019047910326748356252289977816788332184687614948855667669832037900428213187314977495675610819182073589921479671902885915796305240705452978734931787803385425989734500500126645397719570118137997809894479710051669015177200387611800795210341326586834474681124585640818370140629114304266821670469567734236265950297713834806326262947864767347244151621195796401636844385705197623687691596660717004637698263614150935715774751576796609660180835635606600059423349366662285205199993260312122372433526102568728998262714206123785590776560840444379380819715662709622228003547408880017635463198611374246784665451274244907450447747942892188002962751247333197161816655246949744168032989600254258456300478539616743046936565810594710381349829273808218200990414975145393784104571467211750017544066356030309421328334005190591326324220008600585387565113144602563477422916839900303187805851221622404756371471922176547044356228331710064111165436609072450267544762635190285396959380532252825130773614645280240084861339836871700597715437115719770241185677787170701920314740806941502337033874154487454132955205087890060454458084160083469390374045037622311766412412927646128650062142270007681286356922534528647466520915810611800308500279814928227665701629436253091808031403393086768767725952073353450849750474741249755361245713989004986851278562500310564404251995121932516236442231945605328633304012777466025186278332121597533007302992928439214388234132057809899156829926025078481679872419501568005218780251444552638103953602810911770530566424104970216590700416644619941671155284732428391262459440138841918328032725272901898283345790047093885892167868698523242589711552292400466108526163127089573620714283748326934482297937004373464998704000788957854564413378155402395805044473847868620624093964965881853358469549196464071506347833744610462084837887971962764723770418668927099293280528240764396834563121814334072055228747560861454554181946175575512657261597494102361984047070641474740460704429207973463065444676334853273500994390113250581641483508313856673739887279106147971680750191463114116758568297990649018381357132951813275879086396701900844136070667612697957278883883747619669876707920711609000169245594492954059717891870876373427363857684636569429221660982355408728448143706637830171394203302333376201009171669204066136537452215005470968729639373992141394134375087461790825069222063531547026850595926994367205198379892734098936956246007258259577553199201928398707991501526550832585659966843938860337249175713840614876104492985615524867430888785328970142390065158490947916113555000805594782597247081467555940094447943067869044846670415861099648094861317321233079981990295910163612813599777669446824209885981548943808016373852448997917825602776198312987967622251935798263275201172054454204643824829636862414908186163119001134696234913239402988218219838510056597071672296786432352843561990505514618815888466637563692413422339137824218575480421144478229139789278046160584518661019172960405246417956332344021398340638371056327188540757243600964828044864390376390823109857251243187942556352164820761422061301957373951599161844861184194973604072870223076338375177565474770099905423039885322186680690019128898312275009740211861617139352564382032696867451621640383861415166293922995296147136220565662852670452364175607329787362935706454848830352354912349431506883533702709261932406800339533669699319765937619765353499552167853243514294351454226055048464497406946808024860035314512853667457962767854086820614236160876519924933217416275925037723150880779081758193772310276037508739804027192861063250853849938752672635295380399021427740102678339733794023786386382026919187716278647109717734899024151405761204266959072722718928732002528037986588964890067982187021477202816840062400522772175691673699114105698564050040803489320807337122188098860227446851768457219724026155230969385342576211329737691414621569762700268856090283222273530236934977053504176260267765447980981890210967786506367473089302868251143740941505209540672585866629602335261429033863068354545136564712449384300118224229040917265901980510422297343049763291359320210392811647587585944025285716920780632076337604003333168378551475076697893929146636484694597856039185664359368648392126699594326156598645182126686142100776724427590596914766712896583944473631906937926326675510749685339905119396134167055870727542766347949380941037283912247463036590991089465156325613815714807470906817943281728718722132283442279483554625859606285145578992497190232233778714957650239492115240653786011333673742609752286578363025155832053138675840737847550206489577103941973588218208819908371355522915555738759587818427023737152390779577931760093588591331332998692619263924575470623864581256473563580904993372919367861597459761099561511027242347209096009867883410886336520573219239131310154868759085763759870868035641946873918770457700509663873662629375565659735804008457093606703651407258475454265395571796701161225642562860336583599759982656076160641918177729041226010961669454396962246343924304030702014979183276419336873832711296990625040366175855911360791812781575399172823939182578442820312174072836784803876924687099519209343194983747630357670165287589736298524343583852683637362275163512437987859109711420257237142811277891757219809561239825192476478104006298168954066623684106645767715383669615518869162438446175162478102290966093018394607809710247866346606236107956831866572233311505368642791035027623037809747031934829979421493942859389660537785350710641330883277820851360436275085947908674735656750088256880400133757137115687361190624235736659882700918341029947290664383517497425509236193503082302113755312348471235812872509435669681438658025646284181718742004878591493105025683515671084376319145285415348849839413988031536428260619187974836858532907021100105880644205898342896173358489352669773780676823961633464409375753035480882826477171853673137027495730483601246822823158088916381387895207639257038535056504827009410103974263411804696335519868811640037296573242091753958416316001892760367054054579235092075675862965906240378030979370075043541966178132432213960043242657126034073984440035936734743285897978078843918912579034745085539817935274896705894280782292936366138417815672598859167466645840800705036567416482952493513680117551091985835638419420455200319946926699183075067875033663257979854059856896682569246635549253120356381541920186302896240370053785652741112144364500078420997830577416974130707421915250499193414293462040082348764284094927804212796302849833585095803023736435110608647649257090697238220039351204649709536027615120071337339973734149153332061597581614998172192882185781050359736599210200996936691655372261716085798553795463508193570797632287022488101095675865152995813145903942503833342324200279805728926644195920783637556885871832249022799382343897949833351676727074237998700746407688288721017899189719287823572109261531144419729758467486300762088560417174946892272022121363647216408682366583528309137974426046425072787961942206108152763716437734861285596267593923673584569845597590993433868945052576395795744757430530809930923931018399367534311105048622277976333497541631021733721247625364840504429189374721300237423439993506437836096923012523580962735759744316555465013917226110251971941799697964283224837530980159217240400637303429364753908152136238042205803489514322252205063241896306630939893184925682356527800510121067056553497772500607412479016176535142176258261052863094011435076444135445232837329523093782362590365121963473696525931925738450615620333319158416907919051328901466842433589486911368817814796392583889405090288856901102096805269543590145328599902342733740955418364438555027356764409249502902798958765493871194030930588170654357845236376188771046475249869530906852428081892836566610521760235940863606350832190459697184156145170084167388633241608147862433875702111904137030381853757509737466348559027893370638033117671714461448051708725413646856992582330552845867053440079390596822308716435298965755941482593643259231085102787623963535492156542348951004289309936337874784071976518704095136921258897289116961952773851984406175176137370467663587892439842640647624876720637159293979852736014907098730250181848766649079116681692960458830258096702650905594521777534861059590518076905112210390621548233953145882360776202506895287032562288581145562944399785389182777606358440369709281657091768957498283670005468180228590875436015102822988446485107309816806348288596954215960881994284154908585569595291822885023943537227962108251120618270602441059415780818066538827995643690051330340270691164886723804202730160158890091624004159002161984184530810976062151128950349606717062392706445498832433157100650140628137288506000111603520128419387769335799744061553392056454572370965648123534674389012514360304390361939927444553432422433665878847450755759614738038477487948047574453721041445811172762706846514881816643793704476557369636525492540558875949126858212965662612565039044280334378743822099280440441955999496775801740469874808064394583173626047117585874640212018328272877520655279650045352161579437941786694323796026977819418076171053828564971339992685033548072329868949496773006473116325266896409381061588923214447590060731785749280778573686353877982037698859391671642669298307919346788850264851134519246216293832047404931539996381479202178483517769791372564483261337631941215320515522293576710519201606249028609676267038269106301758423056759107099110400293279192754481995634253169264471893558865063688368987469548661708512776755200507861131733133565352505361686463618006989191546070526773179556393546521849232810189101104869443902200952648115906513892873149255383220659654117206055786793037939323758859257405168840445569170137187014872406315164539734312718858404409060186115245242667432587718980276958587019810388602265553206217658533425001045007540113375754423095195848782691595244657931087690126281511179573558955085433600982869923937240742207700603472985585439175369160217977215934794932045824116091816835750971783793053111989302602353016755240181375591289817048741138112315996905855394753306240176693147013474724133015536920534709726104707564841688131092348709091116230100677344548648461792883717693079406007035890820406647855493830027304699461199756120436245552396779391517269599329013845259399336261045786380611405765238815133026184239217348410944953353215929444328405786818908662632533992210628872981351868450664339779207664682825737724095103930593768727773604529466038622470993898135976576538236586961056046529338857476850735876175784894711435983332198408350805995464400959321084906308204813592640164012107208438554334092909183012069068666217125977243810158329780033196845560939407932016954454863577097878608002178696876885121407146079183443955325185555988236486416596151516596018151049878987606193549422546043497485423795539364203928450650604034387811689344969632888208206664092280803459247906921827740366703761857098098109827885641932644973476581699191355584343666068332566394630549256956805125574980651587642534307084295441889203536397843027482147809772378679465940455984483608343359150881309605584946716993981968963871969237196156587978461512426035512159739613483434849392482230928290464226506327328565098156776061889287246408349390362731240491907205699626167754989269230439555606377283445486815762926402003908027556761598401939257618816996758322489520940603399260966478293626087956307889461886546073445754422143675134924460684478441672401916168574141979315761053091060090166147491559355954791392917043386054529932475898884691976257880429149946726555332734986028267527788923411492915132069590305263923201022597313515631640382823124579225063393137488237841089144913620905957331580416835414974414544548396135291387440193120357431086381723282769782837903888396656581476406466851277050336833253104831463216530801911007945250038605379247430938039230834774683632011944023817367119239817911552949488653566630655336813626648120369325458438202373892226369061862936433808243836303323524761155557870718457942479395547266686513472763325747986258228832747399282862402371134350258041562338444072052632468604581766386582253625397403821073024464517423704112724324987732471207779991112586872612210889922949572808733540260087186671246962686221530716394333763153500669046174032852727885280744441292764638884570461403221643744959105435047225574536454717866340316660228093856015439568204819913231603017210857161106064978409560173656410714981416996061227080787770767717575606838421108809896735673308694900232323917955363683597289739753328320819204794996010006280937902825225642656698997441732066893409144249466529448093976058534888467069156696992076669830179076978998723392541798740445540343204496740118551067035716530792038002087613551327349978404787472254755653897495964683824750661085393251376790103166620823394375707359792031570896138185597189419053735409197541881538752157646981131223441758153782050751883626006510146666942093128849272686037658488102477022380922903011704539600086658864283012680977841690240360905695399926401344793087180138043186790035855600044283099689427493812723456838720749222096611993259149586750502466673256365774672567089023361588870610529057150753869946802019957411470831584912991288072372694166018802256642251558889537854772897469902152549387692186178465263131147042468908667273622158483540419205383672433990483944487973888075475414355579940296729460030119072871720580355537212448922427186884361867064667460981356959869916663125823205767603744135338633952650908824145130153712997065969134455302335876360164371661044786072425466082405618341375762207999565416834976632374376620008603399885251473881541993239370733813213886913139048121366475274292930915510037944714469651765480749453991780448639406705103947607083703186590689473880097181921684868790403172048311946437085518001685679335273412180248521443606544078828601722180616156471917106148077648416149938070765112361262803652286489530342934991000740360271929301776680948214031906722136841998124337357201543735072222541157128587177547256652342938706571560530037397382835567607889025411238385906132727110845723854447800007297875350418623210060265642732582098887606042556243100182153658414960728748096332762621843657255754546680391692207157082003453539190468806853432030153375661259380577712886774544802105476917046236928713531708550491636328061759125453264980278734423456389834221733081202192778561244676481877421216925813795517639773838414721251477746812158382047541099733552853669136690733331689070757484189281538135619243926495732360413590291276703676438192382303348016192266516707914933730308525661706897865795726038162702135381597961538209740129220192409591939154153832378544483637328191127337601862585885084220259686477721184344782266196602410572973177125203868787709080227115735043470877258893893568249784892969072632140834603250974523188487773319158491483716749884711152258646567740588885253346219726873980112433884203232440309202074821537030353639428917391022634523749792546367963632107734641161400404323229278373286160489952171503149156903145320798180019779279171371268641921519284488171132044389416974073536166473320713831841163071429389311750617760799136970663871285397657287063495829562264373050869984165232410545098310875468320672594520026808190379143148599176023448459958272721594584185735972795186917401981205493007834545468457237605602696577279182842622718272242623470532801321232615349521512918602312347646345405556073544233748221404692002915669405412942516567644972895888911862739124425011615534295606703508076627667454494827455658895564107738227140053160608867417665461242259871034432741580003262099780650913118615183359459039073748275605466063749355210371550737703369628138002144175734800099472422771342110702630062922537120631788555963027834821488444285510455119082740008977808349163344604600484305099859979517742213893051789982290010991462417617056734138895044577106855820788178639567228206060217047006355540684289725768105574579911797103705410530993129539808361617796603312975249240040965583873122901197386192395414587051240842332049316009073512422878268966441792787521431596420565188347390272222788670234876565992182288027973798464025515368123814806485327301620365578885465398483941729759273197604936197396453054930148213816588397756933816386910914809549453743699219719181166698924819250786090465011021781837420110902748037917624865908135633776196554776458943758993374571505653755943913133860557698813079686814634392244300712361021768444269464834566159619995285179547378058889871748239117207507869357755895561118896740879326537754581862256298191551599451175341317747204392277260740496790414962203349560363190331064930928772392832770099080384787121150726111361700124671825777198858789462885300930017471493995555641141590639742774097439865745124267112268072935973543325833655085710855622357465222700221707520004207317247460313858532461365656912000202360247278613769133851951167309765543994817018276993153504833036200661928095782176467860637183501454129813314791272302313549752489213650771673884269526616590611152592241184131055360250361299368251584271446181735631278285733847161357840067489013818075889517100496995874026062322979876417098283398898301362456347233567565392929344493252322787177495056152846454962748812884711730879971683374931269128548508442300660086266522350874707143022813207142103584324561167980353649968775766875871329068458681188902937482991471617571653012002395890430591270872407564056884169114873882053562515709673671858660826179685934434025880552979391965258492587430397744418520950894960820280929067464857978695806867355317370279071345157976350575387755988712030555062309027922203748316748044959105695065826453850257069091174143508760160595363131583826488009459786701688184596772307361029184233864654005252226698660180063517300332905564304240464470437031988148944799787972332768245441151021338066285598344882626146407087681048122502952473830353594679837296570039140111742932468298334886904835251956208550968530504875143798704594565986479721562250327503066801076656151619563328932502489326929125045473345708953450380217746225368818291322448589419436852072063443629697839894676468607828189810520684390967726921282024668653203339731738568829135819741481858740268488819691840319015665185433973169158964611481869944138455432062180949262410194191191960828688502483480547955978202083061199193271264743873989623017432059643054695561448922863203046305376309093609986012953423589737614966856511813304267061470699988242364558958939897211019685186013504292374340378184818325513597131176874705388214082253911888184188339631968220928013784781725930571085602840082870711351595439586363835905542497856255290352735771066049824726428928932720594479771912954967833558986858236612354782581609696628772111721121882555465717536939145984672699807404112785432496253261395662483103690988148745531102504365184290984236665749793069836589977953878099426259789606963888647422256974149313222873205262092810752503005334818092344082677310884171343016756409809204225265731735126288760416096046261430180635837166953104312975223793653455926471663588874441364356627102565066972837528999089541092909654171664589167167593351737348512858392516965058581758612185336436440934585532346369051231224946901501774476146008289802762706933239487779715056405844452635103477101577825172430932568368618206071393382596775787272851346642103297109461631209418840468241473159047853811761279176414849252356679126241907327640534766782212401656774097278684139141987589431572750383625173279475958577581090239924858423164197968697306398175618944041788143663539055783895133235038996960331551402348172637475453701030550127444412653755800648318676202217602446351264320435728998238436722230791911885437736111653649458385774877131261371443852490787492664353715150030760478977644640591147500153721927551308554051022198994820772695131847640223975748080617913342683205380061198219873756533924884310080437078524170998173501056617921388628372971889989085047070740477893360742770000814000159640241494306435539096253181256947450244857364702156960755901748994110971580974570830837423372882501262831171388743193324698036577200704827934106375403832192973282136519099236290455959512070364168946190302799340975289143569827709046170006350373293105322158457339355960837077114546133199112380889344921397128546742902270131961230350504085193815006684030778328347859823685225020709707161614596999048678691818104719526379901476452372386570587025141911839415973797868698062779902328136663109489734133750992644608893573803628461826530672841444437815621783003712185263519130901473719146825334045148898806987210363734373570062003848499004246402313315995588393725707773025579940786773870225472736553397904435115208623308706393999378611244804133762636655734987828684097705676388202563884063469852739355263048778447204799709948863991187161287124085465280435927027234071568655502648078884534254820682583462953275119337969291027851318420465763303657435827575634270684572892977140368992890875524391678053083659018088246139605844612508954762739190526308037300920444231963526858519101912657408051727393174468441361380960792073168023749456867970060118360658144317195388397485904958874980492961273940325127643860240203961198775140372449469591703380633256228002422583403640022129541592179899081303129665114277675558006103520501051098882422197430799230364891664198356715316877400269077732359884047552010465607014460432978386197530688176955513387907226361062959349011509437348387921364201550348596188591440809121223011175788561702146231285073877239767834038764250165756309374499064023643375369361518905132978718023046376021505384278802969110060381226859255869580940317380395149638144508768849541534551799420743677982181072713203410663336533356551092424164882606652350967511329111557374784547412780084641299450690080474515252370799356477848299880558442759805778074660661739028853409960033577977284201367544842472145555408941198658672240340743332709206918435131634401768708512327953744155565528711589140336741259109448485237792488218474127490898292101357063255645479689147837858567898022770774433936075612501713286050703206430915832948804687896321280968241891344710688204882752574800264380274914014119267333391730870925870455501553106626455428456225610406325589890652574661599855855270858361995513920084685215838177185178119576465847770845714036482710948204376204348992367920600035443725402565051517497775015685907498729902170209781967603971493162671162012374171528127843244567751831921899709538844080990588258525622505687992257289470348283048538704380793854510394737778719026454850410267586464916905337670900689126801471819242592823512704705613634436642266685213528118404113876660728464224434702881429252662064904196349453449973606685990372127032463941718220348356973090164358746391580096422871162287387551319258527583162722343887909899371565597331921362516456764987527282699873983726301736816392573902275460348255856944942010506530603237544981044185626429025306655896685413302738064354117483399550467802424557982218827405473598167361225470004746478315662205398472552484985419012940965684899577586862322839804982757111257898016454899084119671877163821243228401924213590085894913062903261702623219301300037339209137204871492794558232480616321340296363588683448413023753883760672073142152973743256260813785405000430390963078613823217577773518886776646549252359453275922139405964723324064398992986658715330265871709869179548875245385282853578337343844702417551229792658080166260977686028848131400717665597400322250778419504237968115023106484142468211203677575986743923931554565197442042660107943911819840449316433360154441571919341201559165406285691184873284015249481749905820472917064566458561890884084048092432778868027181021183131645329090176441327774113359475041619744243296834327989885739779491196125665067200400657152864081845969264802686857745728266437584853473227383654155763495614167007129961436147243879278626332182415910420396830449813299758523893766670200091465456911198359621598720798191823929925702563572399230725989427024896533605630472786297247103402833476231403709570594881572153956622527512530316011184354516481485278603087458296428866460607782432784631022844209436603094787421870946626207967776382498514376495434723716227849970465572471140403465774255087590681706560084337703673577912124779502638827350265538479013586935093838224906753935094652460579580884628763234924000619148510279084916999507820874162933742941309272524743073800265839898365932322419596155615459253313058211780955302570116028762610154261188046807939702428647281919495596653392496652204814179319790579853426902201617268678700059079411667567380771271628317053561890078962638217595578610786602743483983876868767338761845265431977398461066685669128392693294408861923103413478998724835091633622589727747244707922557944897048596442995246634131988019057830089470343964486720754007841602289540869213174314297231754692513303081994844787947514573012233796463734487126481932252511834590762952227457275264668930236911014176484355202848641293024700660330429371972002601206218361028471683148161669582191830434947381318187519522848921302510928197644347855928927447941575812830876714799782380451812783247814839183102233806655067847897321760914825402811547163757128901683687004756532574862410596728693508561739945419035869262376579557016621903322941313012487849199126676683739412603393484562946677522491404924577430383782580617627691411561967515015411267343091212720620428687984717217179831709803148328866322374777732148560767553719221763519721903122303681232020084961707017810293390303362095525922367692554169627418552357382927152919413348982840258570396331670613335568148942259491775034925852774076836418904586929792817665335705155408286256911942505168223757016102942945610108349597735224561209450369785740323423747652153933833214985113185621144935485198687926287097039029492457686779833287817666579193911468503842195182688084281007192994552692705064687002157227816611614640130819626702777945544556531800706329894298215689854381727934665015437152547416633652287781456159624117309503049749113501494593774347263848492951725197739802867295937367651781067781655097057435090866275330876204877077684030750001426914780774908824280520760356617663791750522041029592385663563301462460998692541371976765927208029703154933276852975385004771836978385310631872283570917377846460614963163376753352369002698493887877597538799465999496372434555102215805461458317345286660406182891976049546301791502803342409083761213542045966276265520357729663766067757018343257515363163134316766969796385157684385013559807478964282346657760275909867749767502186038539719471704937856598749616492259912123758433228748245995758169227273225102127182468687500909392807553699795884495662082490642206953438072416240611482778511929654603045278715423826815664985564866794850231997138014199294318648762184047467594292359396250976074381365508801364096577687613461635591498344007937005421437393097361844881256222884326024637570985383135727217302313101448267203161742375170778235151193584779056573018518253278042281951635476742498750400758999064457286654362374426136887287187636264128479030703697089127349632320995994090117713378828090843558961247655289421630710647533046938333282700412218549648015936916622695364471410362122822179164314396184241079482341693327207034685965330692307413523415104557573814968382516928142220199720854795508715953512327681679956791188036370777806533518362223191179611212728644416561423253940530371203737734162169047017319554799980356397382793194956152064960402540659408797554910277849616480681256575503920196247224846445704965429350529093894311449402616382459910624098838470128828566021424312867269681280634141627027856281781325460747565496922661102680410231526167593795440907771691008944717805559643708840473989035287379562523746169983484656450042952915873288923803096345519827852167470421387272662926987198749420381958551904010166515778090461613467002923567483536036394458585651127642719521742383667712049235218702363914054839880806163374055736877553823546009242543407001577934680445204921518986676635147601269844757377388097221413706004717181360371833425335329468343503747231814079508528674427833437858480093658031874226167156330833020000444962551019929078318499501507174707749667262473441952962688592033857220369664240721538826475453463069836280659708446612491743983369292065787968330405780879844421322578297910531311527561788623799831752235992707946049904143240208677229195461979359063585574111980781330013431202883508863106104923134128218644783376716183868494098861822094554680415554357048129699962179454783430588494098050301417364857295516434329482876802580504524098616065983185436297883920910053062662101609414255712217434703116860952493609480178435991949698875657571431553472549743419682924717225100686852775725820409194672472590269429776439391888765206685303476818232018271284696509393626246060045801743615013866919584676986990909855618920051127414043141599993694300389844725396488561170111616049226338812989260694691764872772098750857083945027829253771316479920979155456601176511248556930439099772180735468087595657575764824947108971593972720762348443385214162437860863704529272390904847980105860364062213196113701912989034037066163829981202688938512958680945788923057754859740607383231995979044789398605632798332019667213831956490147623656764405670826752694174174317712399130772199751796127134887722509826194016602249131490727482231229800049339682391202832879996418667787141066578423967325840906232817714964082095391581108852379708065252682075464060932407320530120467670380004722285185045929884267247433292469624229410562419690191478286302608539342138917170161154436968579224395672114646892853843684391885736169680907896246851795280060739019974425886592366658613553640813808802983361043469606628787763884120114418762288364009365067061760448116122648835367289037890059350732106539159136314929900980377410967476757550538653194186593235908043873265225004168655393349274905522539644315517390096365143226163808329834587501095357042259514530401922747461865124546898568484125634712725608977141698632403421660378470077175349202335715454853064949265628528680289137702422812546027714317251434587716158022125254162962071565034267040205406342253669289339417291130466150102644607203922771315809949476708402265278008191491483319043523713080058026430232693983526918436412011757854856577602097066207011245374986016381424852869404395723595252517916431802145155634924651730196220888105173181783965982632055406071500201788639451215283740853294684821617789326143729050903999963725862280464243539389926260689230437464873303743782340460198207565347696635004559691783430527030448497481468420014638514419768775772295176125343019466215093093055842810329907197222882892854174576549869380775766839552773379447035694080045781016292911257734216199725041152299232457242110292681521883050104532270546862223695702020921264306578642257677533013363385126517153936351868881239240794062579846458263201346813908063792810680499713333632060289955357772934140539778930629807256504908934036347684435872415105806079778974682914537714113173593747922820159552251812185446477016140677114263974054952366256970404893819934476297958699085935781488501252632418220110622183340100216290965238240675072917754613697142611240265557853487481558822756986607582053162158312198796235407842516605094917936951828494391856182994866699356443853786601419734788068102284307028421733339818932485914004157882887916644087972507442252475323505435142550988474428073322770105193589000204266541611474045173120275607316580792776479337563203448858134519730851075042183957248556815608554846658642915307855417995718084995872850839360012220735752130548971783255129072261040521015935584361821924544229415746531881495429912747782190163920285568841843441911262476033528066680281903958183001398350442702979928440388844807037029211608666157241709545544976895612155803634118261341523238810290124872183758296944344440128539033600504535407486417474268762693391560299212765864519960328781127409899505713461242858439273428554363777608523193907762990196378729594580294369692535505271086878363201520477299867821165446253554142628249948457689869587878722330006401148147767630055831483708076472309891800780377566239104347064635122910682234596820073298551564144660724088142894440476646934542943568094284588568935974639799505682622993566078693413614152247572056499855630517057514486574490423297414983611676621060719709634989547305061825058608996723463855616468746004686099114892539734786932520978321382275793277267199364213924357828068149997544979893323032154062571190390714950165606384643391506793721782677900329996681364345277692702543962126986604094429281003041628401983573434576920033263581323250512074946953726747992699247373728885818804071007561919152074307664500151669678248801663046234942598444322235244307303801477246365422343260176567313015242045675407114097772705995633072356002813334475981316468272881548036479994411111066884476317057806274137115527471622166907390591270491421441007739791377119381201972355726062720144449352788286652605320264020729467833921498639143809708225448990794759994016487698835011786660320240146238018975787537191902117358549650253344524624624118061219996073551233587107476202347889504052366065346335251126397354021954141924434416163639601241379856482010301216334870279002680187199754778085530270131776310534738246796736659354925672397563177398016434214538849687697286474637063068719279209978390692107928285180674572783453210767470578420092272334462529160107212155935941633629643562902929520921601899707202162771336656965895277495535045652034325236033358846378922830553791009100156312610256399875979882727643299709536862224231828361017985001908787856846033789367819170640355926330683539630357329372500680027865605219810958701634221780663607207822659324637646131000713785838439309450595123418997141119910247800601137999281743887634998560200637503564112009938266353094994581870627350373716423831712970457720657199956992016784032181512852832355095680777048241967556118917792598491287741656737256361608379065489342706716418427756584164040634061539974477208278144450720628233221561455444745705601288427842274095266249550866751974132688700513732143574147728329402943470315460769618542292507001293112171011148408671429830945168873743498031753579960599814274073705982729962344012030327120378882298271412295231260579371254897083191188333650629121881461528355929923154873331151156511835716927563783710228712330356035509701666885205943193314206423243001788152441897922774104075227641274553801450227558756985562921014671287704832738570776113711145441303567779185908786090874791082704778922794692307877925874300376048493958879972127866771966996631364495881121481311810577991270015315366408960507015688068028401117264277544348785431713918812546335254359338934893156896129736944847993046256951389893842920275985391757790313378419408605507474926567117523456696936826472840405465354530091933249384712616489105994455819243009395228860982236235718937102549875229003696189959371826219712752423436383659304604209496102679318383561597560989888233582809944965091993384971502371867248174371030800424500913514516897582118328849310779262857251708311452880634316044571092408067182203752453600334225087528719998930651528474040714672404542816467213020966977071890785942053404408271533726358815504819219204844393780734364508695335553832601967423043316735608351326774764234572703408232910545796747261273087928163838839183718075725869187318972193206504182660065851743517314944897093474093018615155251216955640296974236327688981293657697061678936919118590538283388681853473937495004409965810902293047477825127403897626022714124936684375269599584294975842957878134397492747149464523502757924556445808845762092157080991641569380236428349066205600526953437352635454179596530554939947593253756274024808188632758713066362060654499847049850837441089925287913850403503249751888313982257329226677899779607213245143090596049954528838306013263400152412348112374268244814106583710513539014853970317954094468834770485494582516170421015838142514317876905423905391705378927420947479368578725206662127431747898346073480320016130309586673351227534540559273754166361291994011770636258180691877854984745700859452801169104064244351416674209757115452365803040249730532719709824620679252490616407049765817198600063277431833610215870603357961074159531297371927603014152759743632813638697027083266347916792344837317613938893158984094338927117411494329164124777857023485379548519417834229285606302593873788967584449064815344020097059044414241194129277213061835826376374799919596610962385756347861608691374511648563472700065386319752374549151588241404624062499355415191791135940575084729952191246125185586830496822225419149864668766985312002287253842377140250475860967407313933965769912317027026752155953668734173662048040812308019032338208197257409482822720125731341674349779516013496886213980159476363046761041511126703173611891749944835627679094125025800585316981107437422933051585447742632311754015924311708704305368117518988947978514113383483559818678299860589322467529983730789298969493649977486534538583463422884564685586179264639706891482577010168537850561642683014690057582209575908348604121951903786451484957013004873279553303519535718947616867612950417515030031605803094482352756937154978629950749748343039241835581775398485896819110195546438360158148211203755967448202417220560109248027158843457929925242120998162763173691481479203377360957241065786513010683361800643252680305167265801916463995927869148142279234466745040877965497101816637307965045808738578632479565701307546859710646808293266838374509134539906514246700775551837668665335957474229757042967653535545829661074468187311430540581118874601191450939342266566661318241176435327031925363827650044682931269087822277644682352637448684206315458317658939818200234092019290324705879665537079940246453952017362956594682597458120517917368907566902880937110614675256797666808346933613336692806045062801294573166769590102166202146396577661687418249679735903952250487428267278154037035042619990391062005661727678265204580851766984707070084759958800171504376246522441644666688539903091577801257693282149050499136429677637517199676814104699831142108704041636794182472227187836909010245677016482392109410949940608943789026824536224908435541312800165822938829141164004370371513033762475251137996278327894906003123422234364807754207601048644475920344136775538420745476047543998716430245197331470401318899235216963445693863288696068286706864280382113593630237714636325258010911089784552736462285516123167181673584988292795963391845377949013593218844900400934885165363116487095752709388482947646921975098249092353281533443711333296817258452481692028760720101979103697146887117487540946838511459572471778673151636067851245454630353239281855309763396881078010168437614238782626226081347169179280071231346744316388356481757136196544545561120467902141805925304180903685340029935735808372516333156130583191047725987664263508166448223311223639646600550384788638145449499487430820327103216381960185613880509627010311278667195708087806440376194609210027708520931709555119346947247499010459330365887048029678947807815000318350319924429047125485410878370914885523588527824021385894800793427799501474182737463751202753855741128193946387506658064920202395609031421213621207069872146814896664708096987688370943273722942698374178626371829109480324205783597515945497347015309888361612494351901344291316169271526311446354216073735885297490599937655394726869918726231758496513740384237545200296426148995895675702955603720694669017090649752277710825863773706755611891877673600713054787216416601446809272589830935439408966876884492963296228720804727706723742052575322212143611882929153598164541517320633585043311562174724307897544126092934808034560075569890703461227492612169734143349551588010554527900498907391674416610736885429557271625304341855882675464066171968065251502559215936967433665019291222593111874129799141649685462382517221985097263934197022062923291383089681403097487102582649315478906964234683953061940139086427252189598136036602038717208593667445140190575968714752903981289823585716020232572267170618647266616167205879541860719092864963786947313636204516858723688540166726928108091960729114688803916282701194411620390805185522607757541685473062432183113775114637159244556220032749378210186197799444520324956914523242648837702277721141410423614658169987946029121810440705374938117408792685806487943332586511335940711651552776311952397010782659251386809734560406584768889157606622985967177355846577352968248932170488320442155340719999991578211083669126191646505292872363107995343316865559080460182351503299117160020166226020533290020202298931849472053986306570701882312272623418236843418648964667776765570022878071830212619654086135808531310252633159198826726725045260521941021747492711478199313597263371576555989149968492351536824083126746619613797766275389901087273769987733847439653096729050335977400583243080798542300120023618657793016454897843878711788638495469686788184811604300474172268971094854554445246344078235867018348807498998784989968888567907717527653708451814429794640012341041639354653854168001010335943359731536141084410553551346955659884000939169686792449768250802175462688003134676631570064871875564361797185781768276275797175422081414154752972435767472300240497290419852263145798642410344104459487613617199716066414968328182737969832587149655279406155706326123406993024923194308999146192274236456758971963955639825171490077502886936043472030954450122630394523445379632698873010747769529938273134706236980117976879229534069340689464346948447989888709303826563214198633894205492689653064809049144878804343716732143897660816001584544959465664677324732634596538376907846852879274672286624190568385349327563675815179268656852435179026059608034480121308451647213081313696371780697455573497196959644926665737624258891108558665916046699525943070267949337041822646879202775334496996824349367877468459925663898246605159080718859736173111521603973111963932997722658228771745296748216298643546274429363099915200479404801549154205814109803784536008485420433103342337555307349495107955512115712325848907581195082810283345283689170165683651346129511043584089217189254247228258977217482293021143779516785700398881485341807719035285112451058358149984086961200569233634295763525470237974938734094176382511381908297460844050236477106777828759416681335939316316129975628622996329937357177306844982042610608882697535160508492011866385303450643125460874799157119408452636522676214689722004832433358607654984465331329637892352114989730048979373454888740484872934427143145006656859265899957698002481302539731266463365559517731274756588214940510883779160171502202250359795035598578084256900515811431682021583723346288109126197779435324876721066999779199926142294484287579038361079282555594687349340366821680360824874647405836166550577747516043198163493159257006542626516243283830412726834462907486622453401606110443257378501768485996093319573741858590310562120790707054834692191666019406332992601357180391276694731200433320911156267969867599682848768489024817136615511408813199858897314902666641685733070170846188527883560421930435932635881029466918826475570813024123081608774067264287192202059875041040049799367158931800214656677523197720752028422857640084092089463520730925593727808738522740158773097794505671656961931957829118256624800312272313412258403265298903535154751636400163266539596134560643712767925556890625616067195944895792497744650357293599511264758352624751222949769790989372082770896903513473482773434668775275644445472525830978011519010633313594792144147931646185762077147324953392022136883309371747038831153553041697862332991608710404407662462947266795105257319027480050634442345189871529540502707520190171089644562356259939557391564780410551083210231672651385565258496604458440661964010577511987480833914752827173149296341372126719707607001684977001878972886655512005863811636217349209078483854754513660669359070639196202829316764297477696341690043552505762361231337728019197189039320497539009057621511676641155873825776760562651396859638579480489859216730950000491373877135464856947162876656861492013888750496745953178359931221985686294917864439576153357433069605434978662007890480031947907078060712238595407050126207993362524155379378071276031092590602611309428472932829535611903250301260679681677736133671661743154650597806614770736835392304720153344501800797562781431513471710792856806037607277361651167562484768865719449166806781645933826484608880809135924704208922013397420828897026659999732435677442303918482853812293501581950625286886103241569164284147061709043145158498341302814194245604018195588496788710765197300465184825655765856169127876588417147724344796868697210491589325738918793600414801087359461814078397518368459174943298843371779912005653181766196568410866779905899758238025071425335529944204118076726889362829432521038080882277041333438789332297998995917343013905233056932776663766499031969377708141079260740023502070372072362125136848423878790808684834226503400792371750643327557161351705250667705656445605533182788146218666961204192161415182047010884413670188249861706156961980729845897417367155742287041271526940763465903744277849738008613363747191283929131968370353662890665606617120016482654046843403379288164633749674209949960012783847555252960976793795826842392776854313559543261846607230619059709295061160260705183123731058571626027293533830879329363225607663840830090364628403525293862731131103783634609025255712922684477201457659114073439592260504289076172566604948093170853893697409372786646977915594530248361719473242209034715463702422751449553739803058884670639766696424862720114248354096111080742042191364256576496265525883654721870929819472236343300111598781216750447630666526496834699876683124734510062421866548113549790142384913161046652265416994809429877741105476169353159840035930658612333930864076355307028853172495111519981868553636149484756368209453817667986920392832712699285978232366261568092714977140657477648411518342739715283290753585712219658904864418406176380095943183692398782518914773536696924247588144172341121689779615843667380441532831491282578112278172006668152901079855528083548112395071434835091773544969505822418406630573657153779550962797824601643011764711338975137443991116723698473393272302510403735548260443332016598959984029531819299821623370137830671210333302184622703951711615311168951356353130582695713392897462743561444923797011482657695437039087165188468931358263388277475933592604183803866485047886407028208835977340229623202826050052874192687993164816024150768812461210285862379844345147900542124899103015981982088100449348458335772738005632558454322508942049331150784515098268570835031094750409996866130100218657636375336880017294580678153443160536591764149266908255768022810265566386096085365379811045516451723317885129940256482258755649146837989312694068902786391368573092271195395966976645665807166316304460639305434029251343976613062420307200902258813025223270025774201013717466036044981050684789608857153400177396970229036775058653021141735536286587158682225609387085010288113345582146846113283065786816500145802169070765715119261931039325476573913071944156343510752944744218795982120446923688965669856198171497181722457781347018514836922485876122064153159939539361929209935622597118606194673146903936306176229616922611637896065582785132610830934025404214216998747230799710102055969195463730384302425636860580160516065687126895896030455733340403105379999635647038471628617636995824638102686568568371387602698332671727282760491825618830675180623258745934822548134545630107995102692959317999766947889622212067534486618298620695600686877561030591142296666675752916514853349224885382804480519116582510975613660607960827391753118752403698862146790307308756372559644380902884436493977937317681090708821286476354824207306675672707246248767101484650858685644705364939885636068010680081084890880810966645212167555180437720139112511696788360173186306533982676797515895858967346752169868969335915759372370465713371431859196307934357135705760441273983438241775804139058456425774709840969105936209227178643811547917774120816814902270794307390749566257337705955059855508870337724784601415701218900807481971272719542201053338277522791142858626718514731526406562618930938914740627948624534958169712743628823614331621354723099461265716632442324549678070817758425365383064699269340328909039574758522378783237328502357853069937522448075354475424581946861016343488910079220485308371206569037088498184358007193247752695062221764206855363232061976605098592059070961959152183710186071012450778894747700292802028910113488451344334642772966018666028946102642763696212646598546008494539281812749964580745741631901923052218565642894477995825420795963525961194224634471879142094549671232548625918753897309013799871529747606183161362990059960076847543103229577840294065626645013461015213105952640481480984204527995718261893111108698478231815932457972677056259297223330965077174489272618688969275866816055888871240188086923111501383018739394136717861646318663791621778558499196769236769402796370130596648254455521512049575747203539425815486002007244722754192390574743966522577199396683476590950162728941424677708573341109274467783045241385831430097476310999585877422673811176581032853375854611846165382177128835902471604471494196223465565521995459723920796536609430326072870477201070283129792091661607135025638278087474272029532345841801336998342980914109282137762467482273741760460118898050594083271805960572655228294435598125668280324843584363348550366399496367646013330866528344184250596231257328038721030329189354959161362745549909918518973413531146266545520479486440438945117583815203776818766765474726829421498412011856272446076889889327882260164782546966071376598124642342485293245475293489927980108655360257655746137495594137772221518360390090467520521832545126035197281985133737044768996538337220355919553500328470292672719518745069572552197934826403129701265484350806657611580105415138619430651977354954244855270900223322272625271660174831922489483830746441855818889432267648172468140042425848280958303621118247034322906793253611495931274213085130236011848601453250168071321472670437300954378525219138568013844846800819590407655771937493955232845647220008318710501757640814674930366197935704219340949341649528856375641609792967573851368248816834360402163847899048945232174784009502473421690492583293560261147866052960748824389025026865015980688115030045763451321717143408256514724997988397917582209630719007481739159549572860600311943482229414467947704713967106127626081797447274089811928641374602257276924795593642206889211401250471849208429920218794387797247805194900052311949969485931311813368043897191099059949629715701926470065205036553399727693341472939818278643121933735306918245661058133769441730818077265683394978824599339890331929091280559485745606675774418432592911674221265876644129837681234749058856528003224978623398330927301822809278529094281972268422220996044263811268465497465912732684006416399579882897540715231807653230021198105512587195316951317907770247361353396046118055561104602882311755302400220268939256463100557975663713218712616400838452916773611662887864210495192827158172504219163629655215315122614426668571499903284508085936687709710956772055457258276912796648350453075023931313266464402926797375434093468002885022815035085287389050706854594533857597844253091776813438846254360673627747364916297230194420536375722474893845026930877073758066444412895882508192425659707433285166820595703008311490270304322388285116851086215237224619082138835455704289653374776875526202118759140355212372184189480221943634526259050037981044629521617552724928303633010456954379202863220909258771521876321155344349274222600385122031907867422055013873625909647582396949053674962844193890178357472129370733610037274293133854466525108970402599563980822464264381574354403071003622218401961125232387272521818622565688731274488719379116802114057440295370061884025935514099469098449094209191462237317413775574806162742147490942974719305421610893859118585959191341865582972793397458209994649253499107601173271547475398940418106455175080911768523591047103504731494388593153628651196041479260677721209706286430077582947089554494575149289349132617746271079858644661082271616673891061066633215524108763227047121379725163169049804565594081124977026266163561284566515853496806931530616254913011785818197251415762884733579400677228150656424640285275327713001000500063806557972472314317523092420023630373017700360594855506948446900946490731528911883519686691948225143937252875369836719720961692923965448335941348208224874529085624961453085638170079608931684678123095440077177912747664021764852381588697969537617318657877007270894663409387501478374434274268219809147354264195180469898183701152867712502812716378349907422911868521357744416013149572551986819883359922298863302128184128828879690281712602318281730783188504598643828279275422180695546557206840626700539366391491918970470096775224147895449835717344335066572639441947414935439943596080628775388223264749947203199541341472160301081953357724135883440563325823121349380958078367777605100787317162772429615871950477493620018775835144717094961000630293517585864605206532629372678331817895629573761764132019581496600518086943633379496813776138986096694575322111445626806852398462893550128538157869180119729521666060166776651168627920198396334945886267621143058184392267892732769424894371677828908771630760798549359856658775049561779680177741271583013345966419973217630686465407129124042047752915350511407633801925600410084222716568288859551281701716714989682335175261384654783701946540669721746094348167326168800565612402525756300170032458233768500886664860787188420833866275804534187913459309571588492559470906891027624501477998466095163504429645349456511952079276274944520854506700484878759152331564269862341027658213549567154304045995890887950612036841057712390106357943666742769761884926406355318190763481834818517962666971936246006870752338105650087652954963172866968357658890403308993268265016791620034111731312134847531921038002524586102324125363471459701154908255042710751887272199233413804888934074607998839947561215504088904108240326929983126619928797664565338120051993968648258194632674936274052326803792791218564983187682748825736303435807690991866836637470496495589579197923419278804943285975946404462225901498160694714322846585991556300880595471462430950926534452442102627350608926210492402916350319942108257239661389675680400633365863140211871079601233627643865029827390553001371693833021173981622410309254994482178774956710132459477858597326098821153133633191508770765535645016339243386430412030730543963317330026377153010253790865468612407943509404969855896709525359215848745765918565477996214961447781212052596486635847877634380858238494339471175383590444597048376256594534128055887324284828422945717025656385631984397726813519565779139504828525689755840017994209394996532730628169014621762399390919929244500741208785218983056116809710092102203306942788466912935063003553909753142416556364380904141341136916795512006150258073882483267428759900289784520295510894935983159147433963003545968399138609599094371003594937804042376669824152974162108157637080024521168718998361902923168422845258023101001244124917867507412952936611585971764814591215022495148796125755344335087896870861628556593508394847385168917221887249344014990484112192332564354115352422441432985279956751568019684525002432490032249945419294202601931715947049703815409874422351560382757610174326243426416519297322155543160021853516849564377026930208404842518079935555824357455807415342024740690892982069756200528000259200435613368925994422776023609790035018845733844289405006201999056156230226372068199832393090649976250116054814807494158409638834756062817058806950715379665638196773521863554790550040128940217056454740717458809765771301449903895293502540533957044316786043898231951670370304555115663052618435284611588400780060470088978149142762449534172858375493689932025690020637474376445230831766589221966592975327584671288319634434929990300967822515930439336874884417602672151409014133866683534807568277208134263559356088974619616905171364097925400291310736787233645425764928712462289438039526214970237299179786220810754939411949119975334882925710420701831438360218371489860922905212001999620930174621198370492468230840378183611529850286157404584948877833452919463619819839060279559746456053526259930663650728321241593362047725253574104573522998869524405900193536106308130204259877740703813915567607300749748770158154612266390396101751502522780132675081441635971786793512161649378523382708948674496073690807934784262419466315326800151039057658888780278884733702055259570035360864743128986975466057939128413484719041847351163355277501689373458056039334514792766588599938050590887229720889172074078842536413705558672162746454693281343313039616235619544716508313448093781399559101368762884174253786911892872761249968682051339222032769313350151800733726014292549274148414831772479673017314704882644666050955906087570769140756624374113329001041909730319225586728240896072575115048405738239872045007613914577148860547275165165540144167734565972168352194246747612492231633447356814809805369885672397309149852492426331460779478314775419627055814169514997057758269345078676255076766196413987229567252441934993475213916575527854283502641765367230570526845575064561774953392137594735895412014356999154173338363114648039854246562902244013047521442834670295996443573415246163867830487404093831475887800261656262158426158319121780224515068430991997009100404883220018695093058738848051927249604514896325297936257658459199363881530860616529917806567879167590584769760167884584186912362899930159696237942565347827507867787672758371933354983007006122507621624386880571917279883651586037280614027901618723688853371606602251389086498942928067938840527084816622339499448775412212269529085665558805670878975323360713745532068150884633707063225171874753970147117920605836494489378206395252285096079461818152484786948432663187671824231901916803875710809950234545479337211528547101835069467322854531992217150643819207575789487034163111061452120319982599665524833870869312702796120428540344952220863808906928300951260881639719154446428924007289375129384066771441235603836114763089686411542277151259821792894953624727735524003133009140173507832733478526694957330116092314340159299606805766242120369942777074945465700375304215509935391189039485235651926115711031721281466612369903476161522808006886262596369447041409700062493773631268578220450103466037420357963907074488548591409347247811760139255053526621526369546164524746293663477840655816624752065026945004695216333851687508798677894577809075354629053317901628288298798890388569750191841367572632499663210177761477015525736310539920917818380968143315939894822029767907738894199372482337426028233342341847938733844166976557100708963618115966240498037233781986986951193149619266083461597495018254395068138606081793124591837726803849092032686702170939670661647859447434676033271264828137975480934135392352052538301772385682653941487146619130779138446209502150892075302674498208106937908057595458129506244385500908032419440133929394892830046086098943441338943852059308370801486694458029079291254469323780416166712104079763480974711692494765831941888080614950333792519380629318248705175807874519212646649880009518180641923541999654442326392222218175987250842334331780475605027159023846874825125508920828882636460259508143379933882675531382394640941898491991401104968426274767565705104156546541288119066468613827518853202889151697807293190444194570095152962554713167258903367851629200447028010098930444396053129432497725976853759894967258302496493658797996351744639444474221525693548132008342799523420819272265035135065948976461646004860570451859121775178483937972713421468537486280209864505871230602292347152444548263586395570417545241318249375250143426742856727087928167659272342047984768715186586424342502126503130955186680292401856904925771067629582780210940076528554551137663911407227590668436971241644713086896413084153744871416617398537502115726634337960366110333035927853729918323378519759329352780647549458679199844929750725328572575939633589385472816689282428157991553957765709691258921479398456810601324052709841458821634215301372464197210652985371050180543291177350149789632298185415881682000252546696546444750643441206254617343055505809440644234023020608941464430279425978062073096669151694876375300258818808935985817120190380262522717569556062886306445727273622303180955803065040680144008107497667674221422392106491846370962031809933164627620387166827310058443591570387780760669533458821092066741634444627300415089846538413806332465014744281980766367652709115644965620341716931328733320479582348141454957662589793253919715442100888752667591722725750403564368772487430967776192057117155983715390297353542145384842959516955287604323405761909516396306697150319834091886474179658339013682754168676857087858653865236758990535838261680441938009248710975439855120372483860164529411215213931342153353033836044484232849145479932345136632145791374671145437941382270162611077391111745024339110348039436240236788868251338942226315735063911863299466918740438701702506451299166890623449317622496917171151406052756860782547120859817850169147494620978853289611516352618044056658793010126063408733236933477726417823187326100975955100685902047752465601510804738141358354302838234122631663647045203545528165283661848806334400672059788833285370994372066288677208119525812953278133837482598105358780058318414088763937236957505836137967970251740234553597809107526835764416346202762944303166705618864439480943684514426028607413234202815663314595267523471072786769464778384792994507372603834725499751821466014199519253463966838003237337087210404550996402977797767461363413255181991237513584990605120577884530622611030245932242081771126066817137361558610511798553131899900404906155618934225203407320847084208522696073136943175302435872615844603409340497757486258006691948548954352757875446012195614210201236258456225741100999618644458770323765143247599874081229478073212312928832211297542197763034365612242549460371752179066056000485427967000139000583730686981641315926592943239377975081436052377886665352197210319271393758509737172071599720124409305702770965196522254746000995322562288830422702635969563524771843067491187969830571998482497715063536026172232857956170699954095157599083172428420126746468192760014580204799841525025937999643031658474734055806410070548083274296636140362763511261650414945248410039729529425179851584291561327631477131139335988781699778265268362576717997048286971789536470940577658467297193305803678902055313783597693936825654918483110871758968938612115470606586217218005273858868933982855082100017331134796486864271292798783990332729366011136894187522982169865438095381915007214489198745660281542740683346872429010112553521600106369162483316539487503510278992516548647845227632831461445581615802322346123040108359088406709952755382757131706889923628586415844650390416959856232453827220038246737945517787320420537566579882424645319329043687007006896171295451205567477157003437604553437430953279332182580725860383563010870461025408475233511416653051319704407969777090789046404489988515422700313966045782517927544633836947447873015734163353567547103014459750161514673701052544486042745626425540782286977122533291481953429069979200282922080535008950240878944482059473116309772252998014417783167485589152571265982859695814918436751721959963853709177741714632050718967616511400443893697741349095558027641067249819494246801805762412997198989387806487529162290128496347190087605139179431554354998780804890295031347074814980402840156774200761466189847202305455445755784558415205355765972101145563858077072477303782243156122543221447048955669795721427820173954878593107756593799557535014564463352973711672683200046510431068659019205002702162226823218482227570160247571732634748324316395163228651420183696329159625900665787992781670089023328333846563542094747540695944145934562170888227247584886508632166232663915502073843092879564079634019012116102002328986500779666690795491123403862126201950742548310969553725149794408184042834021292199605441340869414887957333988272424874607172124368729979948360946019775281929753165291263241743637168121502312015151361599829571582350297725365935929242266407117601797160808107738666807475079045444295941623545249759690916680407871343757615694527417550328771760643125404202549971909195044257993520232423907873401008406241467399409253594900759112800798841357990131442791106746548687564754047321818619379863895696522315698387959977590039422022383226746247347669408247321092810029670945476716683837839420453219666567684712287112150741043749859894734274608671926114122980508969864265470012610740466585415929780554091311844102971451256156830762191013868238586731836288235821768152293870325084042983887968619709159723078627435580795329082659016372780292861068940595413916526366306600440982319893083657227149839424972745000202250753833022246003373767770252020618940318033785590938325986337454341174786672482013728198903011406070763918267356300181072729351135840876436681251782204546046775344994519993678995178616062729373738729206226308851835080704940154567854613347883965778090770358400752693332640024684757606140848648036941734524196266379825070594358911145064849322283913175278824241366229245095046029621496050060329049507154622716929792712184911717464600536076850991374904323564563300194995334668188396543653969685954788561385826274861584959025811992588437925842360904622330301513407342588269073016523105300113755324423146187037213950186144671948917051671870572796278935301117793633007149814891925595642978899937587084162786913430507588646151959160327907870981471082597638587099103326300574011891196382509597203891730003327964400014553645529878001401687161638139665999653046734082766482644843963397925762365867910439998323953456609826136448595457513983681805318268310470525307873695437672688959590909523559579757330846244978612013044371659889896449014588158149978734387765909165938361845299057594224564366282938970432179297100356893087441337574636584741363755523213319208657300425429128303551134193383787695132472394150722744007890681846821799551241797784304747925972848479230104655447613917067167472717881261174890130616770671124265271692110002473082764045015569916110492389426664631398496930146782344460423296962609944562978864801867552741474447068494604528628304359765700152536645349609261742265909895362493206663763604895965098129504453228794055094792729025949315321922346116013058409351093573519139941706996793864534938120099662179208121502738533914039538974638538961602665502927885926675908570434351561988881692811419401241920811827914697314573876864735021632721966550351306006797697557018072206460184020740013190266351601570185800899564939630827095228532387500890714750358039478076292601178691212685541908585707398917010366684636088515066381521615215351383939532642072962473255345970280525732802978055804893843619646605803209908906035350795554268817681204915631073637690813665290781122206794777171666424966339281565254603255531509956607992844256178444475486855236002224028379626105229374319726555262145127503016573735806756847720637768413234974151431451056552875302887019471817077891711472360616120555401913880408098417034917212278787039529921093451291380860635690001339178547599634104190651898526355987388178673162285128506353981923145803837420255239708366516968973074344661246046031830518737021870177799224578079424162866743951618182867881145470298408400563280679271827361785803851909075665761446552830790959898977770569410889924478795024904213943975456866144645649744695219537829507649793496151995834254132836245529623732532763918563320105109914445209562613849967401163779112018164517149964610182991177267708685444565336974590011206952890604137902696217652606330817775289375126015807460334625011124932893915013372190710255089525371301373334852287847362164895517855123292349252393205402101958237740847679032965926102186232667793896552195704911270643495299609213352914840959145091435333914720074847333030068682683736791766213974766418469276491123845147866215962218758897377064448255962059618447875662261496033896602220444781420747597031762412908344658647304369675938279421718408137876799790530312580201736269042562042112062573825864467463225897184527143024575802453633811957561591769603127852872885788139204815875454980931721956128279017273214859919787262828258509949668859018903659505030929832379291791231608231800549185884653998022016197780960030218315189489191167490275776779321266926502207471352011169037814751855036248048193549960014595530207961618515174511153005824329847663313550859218899499668354393538851267758278272181468946239315679093516112856009625317436018748981234905686584691572677207934232637191376833866337212032998330203454013340828635508450224238949181406319246393766323291905061187708336603443289988254512576107212970591005566607610337027612440871542827615129287562604646431718202492915706064780485365609304894198965600638814396922995182654895996156203970364541834309301384632560242722687850291282727267761716803839522398705728486398221510498365952341277603215476181059664935709274265314492693458142628851798340017146385508437967420641498981482262362712877634855734722070443513716544003873873503470828533546625055758878533918078806444811107867607942078563687123708083958108235458732552160983280559099037570058272782577586624636442343309626799860431313500081472684359867299212601006197798492059325571951663227472333523902227656805622000462906298365082130038809583806834257890287756049808332846001803460595262914706476113992810477056892665620964060324807490791402825077426003839543525634156592762097264236433198180096337085572952734502261249033424563471470015207489523080599066921974917093422260924293467484689192861173489726102792703949263354210653613669049955053803987053836655834344379002444379192966747797025264461214636258250768792905229150831306642800016626934384609184914805588510338032082202087552365747722297893599538450281481276125080788344555768103340115997824819586800098277226783448120633977455151002879580633077575887512331918170616061417706528095631612353738353161782941058622365885309355519532031750842714770004321343190522035720576153099450120699850422786579312662177558601983757513023823549661188633830292676975213835863807429465555996302105742348727849551513294243520930651773630253537925910371824079993596768075325339419578166206448448921505103173741710751426551084455152735664703129311046828154354759580714004679956360343143520056701761913446021148787132080504102180138354418735702899094514169840347769602951282830726274829565863171315065532483798846401080659089760121060101647744195679908940758880928944517624827418782508346358983000684819482925106975116326348452437520205634408071390683640268929376863966456016061743133492872308076509293532004641628482670949351037866539605475253218718851072478008144355781777285978054244136634661898327216706493690679589001901037293748926351251928014130520529609269976248396349051993064861868268480074648362356438719372708879955965172693460322251943470602973358464324265777562616799331909306193193307810723658128861846242461834420421220376356066889999654443720782714659519437752196643538045066990898878430491444356736873659916852192184252894013921577076827384655297305674092728100784867289199092378556244888621677222224373297213319625363049274149587576007014517889518274924734563218742526544830156741083018864238353872571183621833134122848865460209106196495597752769516879736680735881056074505871735791367602733510271318174647609504610677375925958895251568217490564516166374025278537702094990411375814444666700584734377188724208871096565286102440199273706331573637809523602557756707458012655365015030749112715469242711622927126790743215325032409363426455549399433788627681480145952016814579233147484734407051321612005349285059075254674613841075149363119599192737439494090831264527247433510878396185992967141371667390458990614192123152989093957554523941261358894230232783638691924995449270034204826893645531178885198231231803733468753548859835591666710653677084791459623914294606190295841486232364759175315021073852048844759720763129697425518041455144156531796333391894926187121558159508717086908414178035009869157432949857284401921091743224662767001561589064083934986054674663539443680876117731383613779870231449509481394247419162806916731702462943373001139019863297330111325042786969292808678908556770851292502197546726650625391009854075098319808135026259743175356517298472266638862998514303159980961130126703799102860023620121431503501757617057504418161526942827251136356918487951360251615012465701028861296738028593122771181961644765501749199733234600576891680919368952907055360087935426636967931029908064790152533142573043249621912955453612796393746018037378463502977840849827509580360679791189211886445627161166528170812955018374118127145665633665253288515906106174545379930404970790791409261156054986218301731602018985996749379516325755561522552486555495750297930621395014386595088364123678225871067674169860528285101117994644215706291666678331744736836483780750912395845085228989260820018108071420153280619402094001372545868659152262534340263027085591457457057704749050734403633163210816706344076669073730026804341552307846673502621169244066096981672230587479117280260043007212713306808481373455399623863299339960946994422777000025359349190520009280159808832718140974355886972332788811683789342001133171984868122262005302138866225630081560043791750173091425496160363728952450185670333954987928398271178215675611091407556601520100954376939182056655704399385190319505362755199386412258458035608167679965242269577869072838628589035548852250499452096343127072117257548411262253674778035116080748305546412441051880744807799654115595124824361025619143751495002648179935446139386499115414332853139906125258811320395471975166705426790484158014952234354095009080267812467865432585805617810585622819652366048050536116910730612715736640436239629138735815427521532515514342441474019831913635549414739364071406978184293273805324315866306100631357697860848262271817430641297796984294696470726136892135218108696922444014339987082934040381405124868781224755232421901515105564849646409558018532405795792801673606797991977385886429846381581719126147347613496035745711535933880427192746968018451469358731057927979264607523943766821579677684511751821545480526080763394581279557166822638619942568382011495858063071290999219122727351135694007080298421598766939251462490866612680990917319696865814842140775545349124111673059651729136362895060914543853703615369122625166814465946285777196950170637060640524603694212062032924188232325313454344998124009231936561616181988423009509374457043970748944583025726517472590485746451357672909755393403482803270059041069985654803097239319321418331607899765765769418826113744057310981143335685879537181027956447280813518290889321187765444718775253761658032513265208417960342064172232325628934344856471603669362649632465647270855766870323705690547456353046035566253174737514633242025605780639478091743231783445727688812812396761334310268437712499304335816778784950369966202029108345013277860443018016606042555128962045711861830528099330083388792443009039498673544359214492811702719901235254553144182970876124958172022250609181595333173296464512160822666428328260665566465465230513319289757570574958294992589368778675158414190325018926642243603372416992618871058803355993624629453242969393597357085891175823912806735829910517082611927711740028342008357913920230805146467916961023122256983492166229103197979716974084943501619400943919618822496778300123628236788793496047887613754983859835765585116023162455142786546035714319033008234725627787379888030369655652788247279633760833611208187922996267620599896678480747246713970365106528907061463183013679844924449152571814230257551409444672063665017527966276437914816954130672152198513111023653354933979741505504112690408223148252619348295975134091326609747649579177414450847849076630737083011546131181266155343290424391329908110862339395191925311492078376631665589287217236292469842321630979966871104182818143045130007340276977420760652424606841509436035636204108813548231912178605644028827729632864241273607098509307026625466013605636811319667064236054282080767668986846506295101453641307893993227337953796790377660955385752448400361564950558791857130500278161395205962465701505584711258399688663243512306256636400978546814145169153071932791980097044990225801102231018518207112487625871604681511238775362377868917867576752325609423508993673592474313216408026255676163366625768966484647397612190662741360375690748031646469707402178834075905998922568271359670663751360633750420314186963509094958421340805674694813889273013688623130416219388869026651526060087293182927671868914365877788162225257397493426875582190318995001144218829342408108937789849719839951663703941226300875611798834993783503353311093250124890143426973342304266040199915190064457902916225420678158643434297149793841531793726411804880517982908376492779039273642320025715445747883333513937101824565395026364489054815489470010721371019654584586885757083781781102578288354050774467878110389896951453932408509519443610166001643258704014384557420589864074528456064848012381785986417967934475639739282833670684056271109427786208956669162362669795112837654728313219807729110492488692723715077224833347932850879600672625547413036922169072744151090829448093819563160387943383729197294340678245944007801412013798435964960285571786408306698505103888600677770549241785241489819682084029184479690637309956773965855701483166212918211006042531429810791135274702065362945048348586800685627753343556473971284366284957371665886366885361007432663831282121917965909687768593852170754637048382042404238310623441189134888850044096092306777479849780451337310340076319996280532500176426509159114339020592098241650307953866899346886556562114145897434782654260194196519401853968107184066900462699253609667610657216955765462568318012460154852160542770565189671294547555439425442427707234917895395103394139191124438046013150437075888880293316069653378942251419287686396071132022720415066792449722033043877596667379800658305976047626000085443769477537999494455133687306233798239156802274248857359970406212559609613936496270735641121279924711097126901238855527605194843752838341982551245471033092140085381165444436371617583185687826561967449818062781525259631889348559186979643044624596354835430693641856966734541351251077136879886342652309224215069220194778000751244932498358862034122831133770757206643365018035819204414334604048238310922833860015291878430072543433814070465439342077625164637331203146022317854973099224642837273584804551342062130749022905255198229343994608829802674661446216037261353681486648436796619295141888579892180469165682179012302869937512640298318284744524582480618544353376297908791785484079311153729713916612330635193010848514566541665124851304684490875240170152656398628523090621090825863211391127578550736774415189849322975524921955744690930633492667328039175161215811250729232817791263005409990803231862109232102877996010421545096818635036042594082324453310255150594282040331057252813110254630884850170178053032768172362845458053580987273440986950708619640889391740616121726177912351622408270293325644630040185745803044936686830504789500926027119510376303341620916145184229598055415629915931164688898616074373602875276249606599089508903722348245419238501876871741942287405655988293798226350272568845629064264743226646661502167370766894097744395575620899365495869494047987354356010646271395340755170523952433909479572799222267830915943284091591365995650130410299775371472988292350678688880328431979003266788592233044179134957576710805779345871726932562121591181303554008838673666493055235860977314057733634190128221282574100490988529054427532382305167226742202456457666472850004292272205297574990483873925296362596011083715117335757792814875707225435325598056122862978230632486595232113767762503977227997584216028771740835399575321505654852414219050820588760604682201211847061417129834539171453146933748071197208416673820189008246130950929771074518327147781220952439166536286815586400262857566427717127763880144890423335549623679970551557170960757558725349634637987979512327139094874113988774968718327929186736623674232192356227709360823051027051996753356637498484275544995476077041527219221450957269739245158547033329612855708517161703916602991683609915952383712763685720955267453555193403764502219781914981573493332908130396681363288190202838850732836596320460701744175495720431196108642248450103673596593411366694676994711952699589524082954452809097262197217088888995175822243442139864152433133673874937476137407278373546990443951163994937682032853988706288050707675967709599617675994833390897612411372878801861962754270648042475445019676440103972141521665817083322193407803896979972294180614422901181110369587091399582671545120923225743779555859970980979616605017737534919927919693406088226107800689655795304870896698953891954713326799141305667733118357616447626845041303119912773446142298180912635579691325680584446697620083696657629277682174423222282297955560270056817712347138453755433008265016299375863957561769853621297173691548885452339109952449538977713560617033814607726055355857999035601187153637610264423586209695505348023456030625502796945572975859823643282828379701245269501908328138179136025987722975809102414356632831457710694625251562202831171829997776517493075000543308929682946874819792854113738018944356323897093889120989295792601742482911078711358013825080213101154576258195251364164993391307946686782056134263851833111575168014214743857674284401167393849162008339117943100900676321296369513271881430915426063475867913905840448914814051465615168507314007241315613118950437370811796248905034588437570752039460456066165046311753399034675138423706911215304798752424069048907147502416648015989471790158451612166383365695786336370080209349897996115789940686996547453669809993163973931647975371571013808970909749319029598432508200293491208569762596410869154577117923600943701391478582447601084296275835979834501162427359045382696060893537957355474045172118048333040699149391183065395525854590299614145441171278884795511384405015497125618779643431528486650170561034399346886511666503623756911982237069939891146735835613533229389289308016564587217530338400759788561217556593195694923526686441815683833401161927440905697345558053205331754629654933444978347408150026532649747655245469651378599150483302139673818519292770042979694476409061698459198161747748287963809676608783555928398722727638274370249693756372774350892518093426968378634654384417658694323825225748381311263200323757543931818344778974496437853127354692393102535666768967198454349877797296765272188315219913073790400904746111203499221392420744191090823624897514922626958412615316845562054783859430977464684517363965356687458725947337178075369111931379658851942987344771433796601521779956032267498700823983820263439916030352833750331696651598607715590730209139056632494527673804765186694869182608683643135911159818252474694221943254977401948331275256910680082278305155280036007479247192013067825732120299514550000094825667294610186603680539192866318463643491811842737639138598241307017148602073480814308456365479902460998649596804636676493422664927701063412190198521217036925549356255179498164963242723278177947989344738227125997794194319930330371237213676688439612956830267261661724285645174279019222542122541567401107106353109340052291967023328278789382783167225472742488002405723380713820955036698047183234053338535386281656245440788131545019960120240369709881294597749481656339995044846971848176996592172371486689677802301660295747730429839686373239281995348405007841314847561167418662588689907072283746581543061079918788568801447916473695073212623029566309790129793871291053643974760072795041049047103389327816729372041336471783261375590353271266938466080850544690712467826816934205006838058165775306909870057043209183139380240468122302544946481378767128534768171762673886743994080383415914388067161598502723591444032227100324966266627402980440955961909778605519579992968574700799514740454360942165565678271089753324149453846887026809333878755797824697167709892697960851136866675360229710273285637276473459152374053729210728432995708748424092781551577525601524673795151835757993130540118016156178995238395459238573606716492492404574296011478698233010879667980093996125369813708719573277135095907805024022708325699302366536566301462479340683549212822436652329799151557639400745053284069585045551466909558698355790492937935428560439919074155118577719198408431158055079734588597634486427673883929028428997554041362433829198854930123624019618915261693724648151077915460630020964374378086790475363479392469100370047572401189532567835630467929584673986186538896666159129309811694031696220679286343464173054911090681776558317911219999612161559983746032956933968522668181057129132660928244025312179141978502238192481345423313157306599960109184684700341117721587033924273303309359638056634010294900956706488859377260755711545450236775902328522758817073275340117807303877121610689792372009698676711077253292135211460057816976973029635747503220731817138675680890241483572211476630293412330965682620755417271334920110052793826365090777212672440436869027577408424694267054666135316604260652885211689829012058610630049825277240249234657489429158561339011903435704063950148214889132817476378906159885045365006483653401419769368280698538850339154678975561456049846346473778650398535418007857593559642651032973074635820966709659957269515983721758305443345759229020843764426987259987926098281379232718788506958893910104156165282240402805647832727941216188122029077111007511638300061280860847281344551552255426264306151913309269433123334510811993046288301251148842664875642314121400880088295912279544394494880371612510263315631773828450403053766416627926806298026194236651273800854322936204186360338435196654958080717712040170839764320751384312203260020334667827857005719033917498710647138725557136578348185549003591951770678740538353185339839120101357937196992636099248762363686599627052144326930932530633007531177435787660191799358624577415054468837162093623436012567440774980994195332387590128109411076912651290574242625171660722752236611684728978370126952400881802569236934157165611689489095629567759759433081414779333997935561067397461513991647316153942229288935257768365380828810422029483335804536041822099927345132539983931368335313657872359257513071479066223851841554767657275963436547756002781958050969411164496524589350374977237801084539957744871505989605138862559094509404541018404513299918891686952991901075442264223943019500294869813363511049470156189129695164657256264502465062502335495044771971965904357435697135619126211791211437901104489250758244922473256051446525650246297177679580870391350244277758177214546338357299543621419229085434649680837248067582005877321607881432784384604801732949982381066519417925986540782475893066982630415725765579207779197588140776030487601225693020935152819090441961347798761589670032030874895101487816964030734652689074179050263374723184901509937929363989841322012217139645772845242242073950472118301934818753505782944762939129255712384943801949829955203842340089547525012500704250951445912378319309777722983377338665367376015030147677499930320091491200851995443674257933041905055826199701418208259953378550293436351763768585681879146009842882716329334340978673831228338008282350294368889770017455403000224467019677669923627023183321772232584528093877018987074515037362339709524712773537747352995593058604878276775883111898415760272523768628099385675007167730104694415327672145978263298809374633887424790572317404133321538614050039095648102619377847308484235585261948041126494949477853091266240101538677790592625166106459666808264561799560884437716999592122608375544400994358021056272502839756814252023415062721923997322316510359733985364854298014418586869511230019221772678373215145850422832633450012710273030290559737253944918444631935289097498871357914481147226038746315429794582741846743889893276961394494164525659980005924230403951413439359923778800667937310064783686994595907184105083158430391563570399308457302593268618788879449174604494500543417450274061631431543774740352343832785098118655729050327901100829966240515495988902999364765614382192463412430144647071955083144096155634474500751712492255575713989707278744595964796524709944243142777700595030879757860445969573647966608550848112416542458406478332746374195990977984454804173737277009918084880278616684458110769055735330486915251678830650192450798196201196717652708181036505252484592163189136829822905455156905077688987233607281609042417320659854753659226014999924355948990535314970902253480987912301444217142070922656580642097933377421799538087702229632726146454253057886023968305944006317642210590166478874777750199262275920195406295322824990044053651631106996991600756378724717235800565404549422824347721180728726422905638482025951004110472099278376977843166709796991853587812380099717347873418436242127600440645946091199171284094723641430989236935931754121716389313011025072569297042402219338320540373104108826457238403908445586771418597663617732891447414760213186920991400387844731132895130313413083165985672238747073938113565497208216545380952823491178172057711859175978673117120510507019135464211518497227022235487930423754330925710210595687639227365751056994257644735855068192885133709040545280115603687161963498258913383261219218590612599965795614683437777220128189267835158247152276432051337651531392880181556017537451448278783943145619319403373613446234782853183404121827057661097026377620834091548853703916663451777337562661820228821313136358905736420718348204862823379502360812787173407389754782266010284813988298611549689105425428737021645348539700707984124529568925867094692723196648387941700054754792993103077574694713299603280968660516784274640101803776379881531200396867574460336945116286002435092681965791938808529773075574077384292807306917867545332195294066787257769107745018999098508247314240854505540938638239369171532384230002705604009393429760144750685673633589964211588280335802055931391832538524238430165112638756080300118968538729465231537976104124304649085476711323015942270506212597375300585672977747227467104199243702166725461701161120346869977297632975261509355179430264527239917204231592154880244812396457100107312719117432925697473294812611793211799111751980179288087718944026060653167561874917437901581883576516159397768639920132321878331563243357202977314793445908290758293555474162314889556364674793192435544643580128114839704598051027973254284407044468395553257169987287965178469756533850297373989223059026825503705892067639217959651767025107825443574690378539482481799944792611470783487147115392543986589425171385805812619456262863650271256869317599577623952993386558495883332948301391418150215453061407374221794305070709779308611718536692843304408372961640865989030541995351584980138031687522331256131500080877070240048824039255473063920050004485602277850254051710741588783273169033332103709387472885907131417953837893595142714351290608252656620744251726901169947575718968802563545759100137542058321414094733846709062810905448172971261859662499733422476981872606606007513454720696375829457400384711258683806491455118634001618270563111482808049224870123325838280877874412195494812847190364401146763408731529570230764271309909549602573196947594784546589290941473693017447341310743420093272268625985793767665845251514362627508836601455315584988959032347409352161907257959220763197949651270306428169972253589649211212892356095677291051829823688046982811394699791048934945814307067574833130921367172324683116655662658231578012059928633646654568491883116757379420756604437617553960326702247721314564153131776248934322570458785184769669406928149402120665743045428933823923578432880306199326249042422101872879844736248600449376649261644252216501197641306768522173260828675803604941716338018338877842216756387228135239876372740266185754155148910443357717127901182818570786203724867739602878434620437791083285591054525771522368553718014014376382783772678268232289440717984852559691025178606435466143356823987912150337226805422680534940031791173731018796320284076998816339396620702055350617364816411446419028480457513873117697458602602991050643709034407346909715434332711933185658063524886164941758927083363875027634839853047866142709100202020250199237398682503258652791118026217236775236134514385811122403583058488256379090585720971591121328606260860322473764286513439767881784788772958084059297244728814950512018485627222148628442477339818129789579542466314200524680463640867006902034142746462709694011428719223211100074470495837160332945995831739045301556663476759074388069480170875793580921836445339464818956458502094273286654920206029303597546605133276440259365540743733059399317226120669459190071344156252918593882307294432718420308127617539145662001554448498269612753342015232271049935229125497016169397206241037884578132006528835717105274195641675940223716203428115200101016241499676762586677946361726572447992769741321101440920948703217042247751307205443478173441446485375754889731985029521145670676156374207889504848178211651601198036490620299545272295887018506668054436501952462100287008633747068413271244502204092928460816651495323206101705686255724776895426182927462980640203100868482712665334232267935900294463869452076158170724798933100822698619597007269464440826881856875282158814176912886500712546944529249088386771397823230472744718018410188844374164835015860490109451130045440245538015885792723238351521691031394705217445000053362255907801665568781153548134826998989514788968330362760830451208695637963630147114320267424220513255688278552661453854247441252289787651791885807412499936346102889112948937603840376134614571438831660844670791210132129041997374496844125387554265857177535644295391830065776819001982395270918353935048000691705594326696636902184155791291278922603281297729233688325809394039311619614845997238410333640849492970613808321695020845596120561258209959392381225905046219067852348068973221219654693539897373203394598466414200522204904208338169908882390275346844669699527353254276547938687470339420668143206834089709516101132735713872255078524389875753447046038828342710179852969946396741223446785991510032614982385559927232400030898217213967737250816745872595972685688045787155291320148944718942162648273651492210391235201659348105394186689468841435728808517838389703521699887264509321550666318116164646199149236338589195171236774868639669114281159358251201071027998963092071679375667346777714127986411689800666378200362915541463608766400056483423709461717516069058680204059567554290646992033559554446374304252397831545919721691886055273181443403933989892348149059102706806644790727314216844383782022989817658415114116815561824765705260797910446858764540514902983864887866002670996074542692909245995515762122129734869195757292111503047128806419028058776622195224223902329209064172258964936459658140245494888917588311781610350117822342010147998721326451175895153464416054027881831265664590032772518052082623014659473916399767670348794662860465119899089224583556989825061042360127955653080354719056770233582923866187271218491784981904590466450736881748798212648782361098046174868159065580071054396127583882290894202970074800105705088738668433321738772770486928060942020656390763901967846689597966727922809393341228556188246426414457207462490359362933508966102663041636929261239939225383735007422408946902264812096376952954307619525473575657951077080926810420263333906343827397280527298461300433764162845639165528596570420965082859120927621281664207510454895925618341564827440654036941706044544326930060251986823133727234710133682921671343662226692207725070888325712207671109285486359982388628650874598239099677039713604791660825448324729171548513774515783549586351025457071550133947232314079051863975470396090359962012514575195744507735864980971054824680967532513933607487815476557812942809461655880775007945764590209471507432926001114209255258513863874242442212692713000642471223417292853896527762137815600112809108283523061160990621084269227556955037392621980161855582459493665831037736296746919035771120467103933993487387762800508792940084381882284158452886045163508286420867899187992119827855675907852928741823654081405081238886394304979130118799770270673713745325727552100135953848431501520018269285098943293969590979929682955180980385133778893430108872299406919937475216696972132240709383349279230166657876195360617626957774887803317997550221915334473486278285399705230248428633446452582020969640458764779062993536216408934035622189634561750180863194208660209369030571492754761820998373802850068267307581794379237345581684358920958502197740166476571981054917234111353202972073327802318968621868037548893934426460577058647906522069945642576996704623849745130149695273498779307439375090173708774842462516114430203226912776028353709606274979294813393563393292475065540336011723897046868881174841928547150568542168973249318569233323513391727978969681288027408161725389414161358462209359278491859614809075495473789206619616987197004893352381647032161677683375698297173330603052052519642596896658380531650832430094713051353659094578703643570323487748475430359353326866423566785106489550366954022430379415216902755688008109938066331659824371246672494943269772686209739338718559842338038166898906114656921027872911888619070520359883220032143994175474729404714557238106124798260438898036172842998370239147787815719459629659267557822185027603306463297813065919405152172923284207936497684284855757824137404817686078242790389117068042487092811776394679025112411214726954074819662111304355904436198243547614622067681776505620893071201994643231709306655534843734939649947988420980903016559942861422938165007843733591324808791880268702232919689044717181560918343934262517833235731107140584122844276846050010587723025793693730797292505942066357309006844858721341563168978305117945370815274277008680799892626870812748395182037984871197681893353719249376794030412496701430726633375151161104774603708137670995116489961217394462990969778853792353760049895940365604079012679555770686360596577362399441796838054119359741381590139586822736066718338459574851035815137811761155350177647355164712856420080955862482193913323213253232875957088580022754525215148964039948639944393224467088806347231729016280775160025156789543716519515384022003339339156789354244372936709607202909353183588413289867439283635229985323412212261804404571658770103875045614389687566330401536495780118668711033142679773043717383750443570564771724417949963215486943734957887991702236707768361701942946285031041053536286677166713642005273833612374922380654596980890243151886357738259667028608814617426860652849979505200422611110204576460575531334131901607407858284124801174270019032941832843377699093996644109959499069322607653173604847009799489515140310167627618714933036540121658739853351568651072795250923848398765802395756587261352991805593767701599072825105926730384621461484564944304249380193307402968359446473075698241813799098350932224167577540315027681872394343605249433468979334249089603650104542215749330300285215700928795033042396739491083076685782698284628423519094096416738825162385403328491904169512043790357398145357701796079690021811097528602845059694142866422933072868635608871975222042406439727287383883939217668624966518749822581974893736162166711794650168300139653380836824308172929791427932110788275023579652360716319580256935729729972385293713197568271201799446954046100737763430810206311059360665114804264775915001856529292491504760936284437708363299330260256858576956288897209774905309997603509495749062850787723287283031134896370718408288701931643241916217220850940879222166541433268839792317939784201912972156700269213093154982319418685741449909653392662062589581140017281150696731574192605582985073274476460742346224241220390867322736948695702285175376900191454259608587675961107421285092328176996746566899344215628073478096700712773129112331136449638848595109580527993671441535726767984492931860379940909888946602716011047904341137709718319755714828438932385658871695536161370041013582294129129384911325892505873932466985092133880054895899328535015722533023941232782331989367119101435562098449185018273027167599319075052836928776642142616639046189305571362572583248947633713250318530418445521617684967959170318590246134200905777715832513559071043422402478078059220412220722168997587547554215406290903848056667318948874114229882368949867171001163602053457398342118509274081639687142818152392949482590331197989827884117999195374534885121978222872495950651631153663341055082364760675951923623898841499822307326021540715250278885949458799312300244626018588214103151151228335048568024131440358424812199388275093139729562840922761868528374427707379391035762668165412157407251960966828064848233008350791031312346434223595773415640881138318477872203040702046722134891571677701696699283634381262457871167493789582943592995151708583706697667604551541749814962863715887461765492746338656793616525117916170613472739807297650841391720935450748101328197460190417493161720564463523213359405264764157316873870655490802685835661929557736406285853728476947074674907924291177813425944406333646313503613971765138653692467806904314070708658491080660228232925564349617019790839113457940745785224225109847652452879646437573401412824284897397117349787273063621851746601476568993771955284698622080859065897367863625633411968855496623728336332335426947898127765991546850554087212359866628828441855007207262212642419420181362439727689640137539220111681774752318515133663477509913759110810968312652562472558693022858188796841786186246719273310771391261275451588784643183669228694907919423799522367336803157110046818660675063823431317895559919336131838653158358116087873645929410682419173154905741796897274867684675640548183360790771694585828031072918992231082327270958504295605093783903837890781029026098933723737998580045079345589107844377686977701326385745419217975507809158471971398238869506333799201347751096229895666959444159205016794425210454564785536458796745223337011703801644408498822366320840268327482096681649511140033991807093121645450935525664526475041777395815508367798028535406643196642977873220297072769836375546501470505551219986237401300935864222345659319675394364249634399665095257388587611335927087206574211445558555102928222238835497405855828558505111049804138311582003653582073064164078170301586187260595351582068833355984025253623002430792069497938158865222811509320779735728473269205413766473153953271132242148785485944313893484144022841756713937748332902841350979184495173448172699997979696645796039426605948056222473408534925206886110363345136220288834841745779353122788644851083368451327700150909928906555376312047126239300026397298306649300755611389185529312289033554983301489986285047308542567707905956844894637220617225835601997135536197606581781939847869506124625060743346045729277399824968996743747532239857865987935669539739890993841766997316520077102580673341060001092608346516929145434323821063635355362837426956242624896828001261775582866374834878358777326852551881549001639884534453111511115823361541138396505663919162307778903428571444867580860113768358356000353460749209028442931732645657299514034742396929957120608296003970742726853821298523440077245801485412609212795895228799096303135019968882075722178590054766775249375639700846358625978418472252108882139778142357221692609439637915661995161982553384879626722885693285365013267022670364135870093924498750919157325179613495305429615984113980685749620285949962662260204865331305139729269660895966940288012682538417455625559077288241996746652387225211957105498160133830870012509765673384993894117252979743054823093454888167914234876020606782349606356701542275351893969117027274496688556163269266756453134312528350847502354375968228831226508947073792656008409230561832643630296911613657657503135743030418342049147449756263004258415785239564252853158709285777793567410987365722799231960184294123075067694303690058680333778163715518486498135424594856763090946207121510208813593888382050688308446785912778334529059180138437225959147992402046796898691411588676882544786524497917097424118515900583455056878087779104761504675009715605467168622584651830392671158502208108172874902194747686762977971192668435357196749861667756265107527099268436551891936617778580475368727118627435321651297252465968677010912333382157457357049741287432431171273237156110509137194525752135801703672640645432665144824550815903278494803211021518419099281863122997051200159892374023983330551152038124677193872570932552987163300199651751943790625085731718024889703644727029276865268094923151701552929632247145172091173057811552654007684244834284841623653590455682952925241391712075784749816974757892387931348049517281593168980487706032478499653074298065656415529272667950999768877897710990445086806239366133587420582100909497299491074936095243874941615941488620047694623302724069368240644650791609597006791009202507600547610904952372928139732929358025384512871723803615791593295450981325317943205207185743937878822013538112269538297435047555289717059232219433626828062932407465936241835431331049715085851782484436301787312696552567114631492607178527772384290567246688822369688958336164639291467982730159628213471810879247793352341122603349173251719823160975347000209150778562559484513560902081449339080829144702681215920456646143378050947590697201538377148960832690537582563474867053271168727182583049058716281421099977656069532100368390434397957309183270412042516996093648894518039687323380769837214091665064860376628325267446257545235454849242669781003563238342676479186019065241991259527298796509837061644661641711340945920473347272372754027175481412997228588397941404232630169904074630942428155995425357722933836753605468414201042734563685943463820410024355321391072569626179910330743616593844409049838325431465342902793312827041199422113854400351673653466563035427777762702440425556028097811209195681225570495875081237265779289902771192725649927197214499546413134421664833318828701238604874446426822716232526667757448540103734233361643434156091766550729275089197060269295051073664852154801214976577312443608999890819501134240536560019422948033753473331070071077950165021384854639479257614600879129129434379927260673029254503366383968259504345254063276690570352480930176251587123456369845392454650747407402387470101687078172891107922789104212471483240170700027144696142306528310479085225197429883234307936260303405428267698114862059079851845852046380882488523865359828289250790354445811301743098406870847331132113835700290606200906364509274793869516379809107411342194956160479501502597563779174527301150374058857200708048424437930967520705998151791880851394197310945628119465654817945209793511813433577748359009728323106558165624610337876911866590130655120653704274748033749861875047754050442713246127838668536393814095759489971976652859074465064227844205083900614894422141543206932767260591681809900583463728135548201299606341984151072559151050446429575641727459504286656943400784829466637667852869206820249996408551355213118939671991108201586942093702209434192327542156971669219697694773323999380109962373189216659925250073461738472983011440098775611305272474008798432883549600762312849230638693434515629932785553303249459890047318765588670004479944924433470168886355633842616474588397296338402728818990439565455010832187776707440273456012242885781299292924661017696590285932531490324133486784087620576893116445643686191935877258033209670753870022424327320432593015519781682025242306166925986528878331323872352781222538896315895327439497542182412999166702713264765056539157929662213567388056646741890649245739574548960805140979608345716928058389008942880541139579716849005314599611670660501239083427464695231179339738367005460995922259344365030131163996771187840965310663342690990685248232587765418323865280727071311044899881904069565102101734322607519494604677622329311084829090050656088725924683561211462987575397801221075232350175417911965926787779482361122065344913817007977834391280052522113694751185828830622511145311680538314313916493379145547661524571920041731165065354164050781441310743799002766170360321545375789083515820853570758808135481222705459382215732756452212248981860892295169923343327343714142461292404516730000041163861654254348168620351052075888580897994562628768477449106617578284735288598488128078483630081172823859648522385125874520974763353163099620568262997355358253510347521564909507528314636426480898717700969473534337370577839008065357349058832197712173826745613671000839081081900679690189891153315740466584864767740218858320118123856567028055864121033795335045845788756882421302543657629259529317563149362953843771415319274326379486447683281253672395745799978035664695911516645323907947666885648029919863670796622995218562336190128057117759231494952916614001788143850669569051182278881426303893901644181461180117402936446918039816002587033421490574957216831814238292077139477491212021859964073948119047611572082285490846296974357427516970075214391258002051240019571498946621565899907596599956358686406813670559440587412730780445249240834115534695185057044134354128594297637775796457719858199414673469714659844879104951376234097958556767458099619892649623465604815007122681217889120955850240245158941984235826082278217502678449225027815911142945696301492056010668267949317606518986065584490197847235915655043653346045507072580643246536062821323253568434419943554347008890654358497570284159586263431346717374780642114794689454888240159205068758497183502188399770536288919316398663216726088013576645130840588070055317373152114467372219624301703221400381283732491953928081727435805631957299369584271849558903107794030606440009959634298148663760664898356814011230204068362295756173171495485566542319011517012278221939672966583025335723211159866566429056905916120791431842733092994145785931430275523704969155921393960632272672807162292084773934710657928257042728479155408625571354116496055148771530350627996123048202005920150201992536673153989662037335766276949812953324041173338257868053544297968685903862301559592444713750645853993782447967145104188231569040698421639534734025189290527549147052748039015986809964265066464644815454638736892553785698597989994323133769623209012793746651875016855675417617585482061579114228146234882672170931747944007738117180428348226436045248557447652706989494348303324098736399144779997954231688568721518651228253165732372843508032798602948881133563924832679445256412165612825281017232716794826873481603684464292678900370240434971683194938723600455974443972396850885600110933384031392537087804299781000190787821286793933355186458385025736565653285643521679917396394761227161148805709463963832912237916631719571118118155490299275955785726742178060375413778122328561119862143617304662692756218283062116239502190612056044717964153264677116599296422536280212568832155237141965071317002990789402986131657471449764283641540992937905617735906496011453832906324980363847251403381766437555338730533803834134439026192298224557339426055801388100766364196312005976052150309162971570236869829403001954135686480862213061096016545544027201799168869335550592178388287245870455992480528415634371128128455285042551382190735121317613381301995911858049159060358994619765711144416854185667117018424293955576077091748743248430149746251606664698349436173366670578452489872307482429072956086112794159968421149477365720659074936629644628233042567981665491831552554960048869928460023918619899501733152917434222263875968701135505373378697256758400148900747439748863928407172948743450292404192369666415958546981586023674832143538349050720289602653027522052571863127920362207010096162417642703706287473192380232529030781011844325646538673130268468060102019626695225437748979734063582635903797300137738141337563073520639117870750851531145862762069556353736137784710501475915115996875540236101459709527130085349755324091074676424074351110734863252793952792584001189549643167680846294218040260616537381091131941379301620945720119385166425394755576430853795738412735488577551864337180141718991030500095129678122857626576888183006636964797744017361280807702821982649249057729023159229046840942419585373445520935622809444780041509958935376603505281488996884538365227621052329358598408285131004845623958546455067510652360816207924252148975624899019275407421742615935054881178948988690941715608935799457067680218737948730892315578157597426134051006962775279350526220366518534509378524862308332624350816659080005887100750698110999570444679806742850118943400512180664309853650990123136091962467486664079189314922603968889797417637220040982965640977226402899645395002647344081873724688236905874937227701143431280256567766491684359563230143922722389746005183051925855411705970144435196215201938336860515673851652900439650785614292110954124393025678021454520714963534803520491158130196227861540439025122498472950250106122669309240100311567397035269883571907085200440131844114575359836707333598072249182511806087165952010588763207847143691411430623788232386685356500632010058638496931480021401815003021775678682747571825176693526562458386297146207182541174248451247281168594967949786268684790576211706843650281765543990146820956953509862072598286691528419963915735478845869163863099392682766784357912593309192676760990670706529051984403017501704069125311336016684530928596012046852852124681450035882716823806791801485096432614313195237568141433891526104089298865681531796301807748401942645860481944064078428288722750731389027668014529458028636920049428585579653810016464230982758151926583163744551315680705066190870192322846114048965353122538499351235449249970281281325312183051867872687859815430315775816981600108079368669243616598414231964486468500529585020398386494573936225689108798745635082682700797602634574818617603832793952345936545894432205570161324436543005727769510719178663379721578920084820552843395647694248853535553588487069508605130946978454431781670145621380416349186051043836041340484105909745086375608967463442284768568819756684841250150640179453575309267169810742280389839371337832034248073764374526881108027430718666714729880260088684748515170914000599915362926655983785002989048560738834213152071649626448228038130024766503567785500015113418964023870116989385650854304638961212497310177577009154427796824041227340516547013346230559774280072270310935140824214847463101478096159372846100616623165254531191953158120897965862646861567252295564019412385582758317458752091314510458814596070337003012969866879852816994249168470790461310288056779983084324303151311251388557237517986186244542254276505089271692709393922399624099806250130290721112399955695702385765813806869771085251063517985358230673798819891687602317016563647312924995824607834016613917432905405839612459952869353740676416704691491015979220380618952325911761371576927100790168349098315992949425329097162208640190666672655253856028158601960506673936440437652851424089710266097918648703325390658274623491113518979458821963755653458716477455730539558025147278019069624769581252274234880113349026112675991408363284792647165192753354155009629376785765031483372706664107170887801071225355714510283101666848891051586858466183275804469556930195207769334857237538605712443926535736441858803144456359711069184210187402894265245988468181282221985323453450471601874454218652816803855331449512719151716296983047362175580780456658326658304125794442294667416767133594801098451025138639912596812452361320814295065162908438447711732203919372190323183020179594274407665201992332647130558372023355144039492227182325420626637110331427490589934797883889421381653125851050755560378373992724560691697483271871100819343984930875782380232638840098828581982742097517223076409171069342194848104149860419542933360722363538132069616729436282654534550319929658117339196840770696477142613929461689031559906280582197977111954610016654735270178820767722005961197155826776518001840651085343909377640501829966986306729215901555485666182435074294403816692382036952793161840088762696956197524408630340616354494064319231883150780920592001553315008742853127968012114316635668469723620045424675915525192927036742248401219422728756553338889892390040321112584327764034722182325011866731683723151105884012549455921419541737255737039514484301409155536081293642964258975314213482766181247553921878479286687368843989324548869201010456232396511241472875909880750120633420919178400889358852527447391154939842713413326647591862683918852018383926813722968344074957482581438888751305924741374112195209251798371186007168813006696305241091320125283454662196093473443157697341607541392452429044101391028833833753505242947249671675372064815131747054412800918626346842943587613600992735920029314924363786606885936193409610952648166164091375044046891503187071707714163460531335855184490309781027113857804459981431913707121662971078931483420036355288820976526230803983381784752152680542370261857285583619153367831949666383272801707476591514977572285180354576797552945149064714322198051471034643529086264086798729300305856122137543553673847050734479569756785727220253042523197346017460247059850830948492462121135239655573129265411333166922347872880804158105976961946775333057028116342349166332992936876134196186792285913991165987343328124258792821632480016049166074337145789383451385484137884267637276567235284803851790945210381294637508143741640768234949685128498469561157239662818227619904197789833299095429827452106509118608890255834372547899570755980853827419196997809115924486334381753120218341095030957298771121902965150767269997321555713414099583628376432682444533860321096633317139509475077784985428421379420885898683712186075384885785482999297467965168170764615353430408711512697005478746417230477014296130746134933455683138206843073625695370866257264889214418683332076716745484472424839520529003509734652763914094974329207855332747791073104920325120876794281959288427610905769302823627907721118888090650200183521252316963637720402177435434666503373969023981258626686238366615711918868935609108726055108529354456879190197153509611545976016755377238587329937180307148646140991046007431648395076005344390721014494308485718762195934640642714710944359629605966481005895397301370654426726536120505303405473467491413695319512031412038921989564297553125963091120236378450339858782712073700836304151567485631861724350107032910152531446198448202234585473545538687300623847079021262173531851878768707942866813504607544182128334304437062851717128346864441453595488185038072828559672911132682151023008588797838924252000432953664223813417809020159948936283784833132864319007077235280642155848247477021957189451584089085586288838296743596804593930639614706620844311648789078200106508473136281315553311051233284839091373455398931622896185493375701450065630423307581571040216692600881030829342146724964930814059491424363826134092146121084557875540291615491527790123357187019265425859468172593616858008326408198946509058446380309025731651911189428695057370902249599283006586362739222576084581076776369647236223972965792652757835838991701645506578041632619319773455079304046178853064400992087941588796702573222706592914730368753225289942798370391872894768292738986623595979173374880230591486022637786672262424056618054527185172880209782654067898044142543902991285192513466798474830120261147131986135528481550447340855950346564606512580582769092476706096276510237145270289103558373530295957812832145435695829494792025245544202752482256019654887070994795142723569085152416288289979483229910151104360435233413292368806842396964313533788321142753585932492264919809258763712483403316404276696318044474787566442791708315301786903536793649740681978166942865420207175448100895005646439686232094550963131972034078633100074193403405347302415232237932731624352892283905644750024417736958192413717647681526585542668784815112439554875041500077218314490989302861929257023346233592719125240415238721000329241942869886401007868028701470550716181017876838563333663463230711010368449722017469302302809201993543849378534781902392922224862282564560264925998788435794194528029924914745159098926682341053433832096676898676422647480747006355030853358808113661469189937064289855005897977644594576558634187744909097614924997783145293602096729809091973527303227542100124062197870142758158689793785975552883874242618992359089284074625336976926694097312732862225797471134576251076294013951947098090523290303185579019978786121346736701523555657868654015970727084938143923610612245316960604768903253215328342929790688657862666752566980984334441982151618352073378967649299784197691090891322072127421257504713336580029005716334275571875064633611356539550051877219912852997231802163819303948342154578188201730316167490138678827660287815597034830315986550245745310093071566887167265348279500044317885108482655399571699243701768124473116279665053632415851637701303093867451147229752842477266253603172872336737429469320167185671128065066815424779967526115368755834258829966656646880278906613567646592712716458125758925685365663788195957350602441148115257288755379983014070113714890440974870923093637576655478297748029324450908540985355422665898369548283998446809616181694635109491633026850192239314643060569362379736133972874239277873743624535124768193417603666463678411208612051341375486495617218159224027723977302502176192430867039709919611076483704161194117352309255619332451260500981129703204750811242195716831159428574959558743180116466084773986877924076739203642397917401978852280400286303604380700138126408066909494922771907876215445533032789998503338726558059789708768243171321911573684377877552892268524870648578525639986265682967166471184557431432587460686261261061191423818256850009289008836654030014273683979062978093813335725871266142042378863530185642404029149957704576311797808969927668965753297618371860073192980906130460474615438097813326934225713971293072765725698616676472789777635219270684074758102234152588719258301428577071921970133973306229832549584485316220122342808998275348150575702877419924310599667074944520535483232763893935669941707432100325831815643145289628322646051452835834152865946148705758458150973584803644390544131747741951890967087621490602418541440626158788604719918097423533186882502973320259059153061588921330919387405925386355346633471398302873592202190270088908128457194486100614851026839241758632572776846590825634285049787201139249508261723744577455185455184824074591520064893126911819382391986984761622315117155804231342961296097418337380092664718978693764554938278208434073765033641171718388653938204085667455235186602595799330836654545883662355219128772296977419430281198704180842453208968438166785568164720976195649793680943496372068781002093028186792110984425593883427843680477102248475533593257589193970114268851528204438986125717855154329886660742226505293604772320427068899920972559354569731410103317040043101080780498868411396898808305774857914874739435075303466579129243652603883727151002632985615961914497822142325620711577009457536636736096444153475931405167852033840520438275252489536948294448130586394925820237819825549513286695852762252031183074411278107033073631379854078041846947362687125669795142969232899500037375696156976829927235456013205154491998714238276493583775877023768631072446959850822159706427807285454212365083512003890768448046335814599333395903397825866131173497106419859822013829403144776284768768768589532619823032651060678376893428423218128345300954463329433060252194832212416266812071761619504955815208072605142358466729544348260565527941591671418502255460955129291390449961527500980428734117062105007704770031342988604537939623321402774428366972348815738209861129595512537259821149164615649306548664161186224136609215533102779287548632467059562471563585712875283405974144016078504225507594370620562994395078278042357815580747918865576741712810654326065376111884567729094946495156608185656167597616018256185368266073615947945278098207834911194326986187264414785083137823911009172365480676205483314062970084695336858408228533758742979861319312073570411399284845228271243710402167861925938156238703688476307440875481877249469484842098689775298087156881902392945609106926268507009493537356725486224088167579790922793685377386869400017746671556293195831661351793949707031974873708215495735396917475748242975094443347689105602922602852234669057932548767467058816324914454631070006781889679610780971771032797128056826734730717164679924017242887552374109384154284035604737660992673407540513760474854890121970610702872138816673185696170889123603822222793697032151354862566310726521169048722808608742966737341250482751461865920957415195195149538477883759279505987576777231656897239165517341221045392521360997848156071055085570533792828785570186476939276727027741621187056225260419170953958497469897646819442882339759244465481475690016884324875529497834923992730668004907582604060908553752998927989027306420112042211444724813303809411399521469735784231318485919886791564806714995060780864855070423695608219311403181036890707843870928135235918838111253441833274241599445182111206306865482292065007618928604044127058788401422520336946138042286549307581853227047153488185299495080993508072827361210391586989166397399807057627990577582706313010067665093491286973843067072503173466942366325583098144634345036777115845121039483261578041401041768229576409844694258357290730403419577432496741273867995899410591131741267962280791239832046675627501930795061120902553451871590532838552050993197292635278601212652458400957489159973908496243500443074459800543100309164146576861807392972260897388386415753319278805722571929737323104837384648878045333587218440595411384053108048654990532675834090266436360737355135261506931236193047555424694628781125419746056386149833046570826882506372414088649993142803526081426350581683408015504182700155552810265266545919713312767812471217906824358591831031471772878457549607963440546048342836808018505948474315739403948282274421326384670088459677015325557552872540281873420114782605580545146975779513935100995270116124477539886788396509157980073735633520611507922668410050303257815920266512558234861897286705848924854642386759757870706988121140717279360742005542801051138317430900243369638630373683487693083763888598219936450254149466021499323089448215434097592880892065121976353456137346964356459265620498025644242896868790278621055556344531528315076804169300305609452113305482144593035198009203254949891102102346944792855746849741500121306274952457519359337737089537722433279410727770608288318588058507248801941576189984119456620413513936606799170372446897385891212809236159713964258677418632208122269792416054652949160094992313584100144589316929858272450430638377750345094506512678963460580296443517214921649859639867441775634434675913889502641277003007247184344474730195684267619152875698479599160472187797110810867409904910508975245748992932109823080618044921184410627003971862810612862612443527536647467642015872449297246981948653551602200463019234598279380807166355565628486103092862698564859947916955635660083609195391336872535715721066112829173873916816046419043291165269793683915980591545912378223850038397109875763367615750612364619993997015144189470217384689255609943001966695083366401753224344861584987081415729479216157754242021288001025436091185680012577972008848280903371518543677869797062224404201504563154161260353338956833408813681971040662641942082000062107430873200142829431762102291174053307483024624431328530764624194853948980939766351203670854369921081932817955757722510762326293689854255860116715391612485562219285828916742555787740454843702018554403861529995236800939773300506691967766203197762526476792254908601005303229745006592633106058623235518482103818939750668781595518498355479505420830030514637088431753683349638422154972171185975492975494726291269433444531323999703708554786947048520909251294036835743224892381199255737308144727526391496550261799482209111425262252063175995719499053716083172083716321408892841035169107862792223544039773299939548005667126096075206956377234141802420784806398147399842542864692652297051368757155687791350328789839989595471414020181403671972864788812204734355838864314860358397409696547530702698307291026323140881128260066576141834945068301441295573839200624954523471361708152323946873089930294935806827022360658717900188364818511962718120814732489481407543531624403686508699504520438420161533260636462299112793993414599218211854788988852291054384131291498423173164878555224875725474800446412828107600315273491554205744996990897807761482808525332743061375402511892836989323109147963314225888681570534362226291925993662188146070705538156380336078550227792105726917143192016268489471096428588935738021654736427140516921780953850477143169125388999096391764020756998175004865811199204626446437112845336217341912526677996156938782132274419478603941221872660533892396248657098574939738799301651112123094329166350233293520755684774229735288049045467840966694138261035546151574881592898330124906896475572590169236410411414248033308117189526005449192921526617376990112155171378570320067853867461771834234469404423608096362048453093831857233931494539845942326722498449870386933699534153432243023791671018914536900997505812151281545860516067584089045075217089433033396136410236570202568566533768843268623310251153406922841262552300252554285877008042361306638124602721482339130524122414309859571317645552973226942878494214704589352097548975889304827572113421022510619235470523722926472557018318797802366806758253758773659206044587507497579557780884522432120815543040271655114290280253856965494451009785684624716238793247189921368493288780902240439804067560057744388409368775225197830425138412183316088145860283597969267563904707900115289878291022515224528092902749388855390347188864614887634803859355953472394588875117583789226165202916669881520378899614253594350317984244733566896187391896313900348026348482413261904027015210637011669989946136400151328058284955140883459050236566627359639491171915206085878768046673394155601516762738607453865313277425436076165830097490931152090241819281651021275699599057336711263065083215913889310987634229473935631712103175914799800273667979799605270490554855772538664058016140173914502208097400790653546538572997979220152570556572166769361639750531352426084273475013307238808081080685701305775743209573801541009360681752083667251515524331540385427274564802414770793855344732144974176942181515583086609284784563940105014422447168583349416700903952354625499262895641325418685984036428365353209835252636485385837752172942400800925201296507955228775466654868581491015764618739534899698520073966851169527310522256659101447573220865145545586556494608550529730014201474838995836700938004484904603752952911453145391992080228132260712181158024789675402334063488993540903761060138777846430116828639113984927072699932215628847683548596323326539040690682741483653041676082012666138301443565643531844051786310893183496021547079425317630593255796599237709421817886365781288919147406704565521738760057885109702081013729528861068399441164798898137903388171230628517196027039755081181949679960789965810144612241150849756496030064658516885999991208841348900940845546321531412471043167428350511467524285867760332550398944893867008880463315471531287606030657275852993091118159072664349084886743926476287026636019414245541632954788476375718055946033181642102981801282399989023384366854432868558839477468259252517468845873613140698591485137612822988793358921267200025450620009998605399509945963137905517034403774554652549102041175963873563467981327027747737955356368912766118770286788771698101604996908660431927107202610534001054523930574798414209072662411895544907982939749960738906598253026689618597683976770485237558866478842686899776159098373162942357660717642035682080928683273893659507240016868730732917531633015633717227310931695049836909931773918195973348390416414008336576266994240097046974834652190561961581360500491310274230090824386578670137552894407602321154401431065997090761400192935024155177439816866109524442655247163881946758284304807706631697746630369313115098061676199689603215507947306712800413642295334934237073778077180182734376440827075114772935581274510816982315130360231568492632111337019538076606373615033624835146108477439090320784035098734399911336982857263475266001924754562821004703736656823903811335831161516523594206759588631692075054088875886622081603971419411892758272476632374091236409792211324437766745921706573340009353323098091176339909969250895503459045511532012444706111793986419295103328036792781888870992989732885935630355259773336931427222119545042889556721367440836298577103788364990867587249626321232657329874500193734809413843802820392103326582842634883905809997575657747980209459384761397812368755981969460142151327694715579455091773288257711351714596980585849103205535804369172830714004652442817395145986275540923480662425251215986558507881829895292682405212318789048254075170026045752543679360989823836472804907035344127071179983649392284471161742254694708224587721850601576594475340132075223017432208579445983458105581509531418667040568464287722848884970769268804842420929610588468339423858041666488866599017992273421389591341019563372917446307663091507615035522350842081349987558110066306273511652679320636376031667029783010850649682151010827375015086898034094683727148454742320451773869425945853546249352544910264169549122010507917015617309466951029986364513062564648852658252846148081640003105843179404824419373295903925207418765727312765877456143003494349292173237007748798299556800172440581063740232111492775199634109239376248964239700365106349844273669287814538987666243967580660475243741772657704026479819971947378942075388408133105535632431088611702891949995069308862695345880827912638299930176344760296339598207410201183025225035066145107201757539069164078878862091264042062074284155616581977366289897288134815772316259705184197873668291693361183321336319950942633359720398551431061999427363740959295525174880597849418305181322645797547878231434023043432744909194305490096328939165118488405021660481530441207044620186296194749823008574183264393651938239973066381376756218254716186214260744517184034818106729017831958084002831197968332445852022374623987217387309298111689144227075928938008491876327891890339516309258823090021246174176452222687229651665726086999623229169219708411338680626759520328652321019551862984216822470597066114205071130959860503893208175739547984530366169904286348619730120584436031348471459458337861241180582951490114425516060147408506886643691443567313874754059564923218842379287407911274751114665943727013930300028313082024939217065739205881218680379202866390930872903419778454292284165501667834574524436620975202331956355408629103985814620771383009276484669163580034475006125987281239685888039628963872807914801953568340629466772009062386642381328962060072434911059609487910455353754386636627148132531024676482846500737420471145062362882125089506696880409066245557210097354417063008647928191736642503478834541422684150306956001140627954816603678639155022068264613504803330949800390721260731996027966804740654382180146134656056264492725004592011641927475697694985560973409135177613912228053710696131453046157178025447477892289711393705711467999046719931412582692067478278358935835778801649644052349593136610350138581837433233897427750166796845795853695097643625352379383407793956978531229708273664341751523809614258728340082787844827305210580494710120504028146840684410935666130699651886073888514674091314931182676156048293761356566224512981465064658959083386983838007010771107568891273430027938210212890491721436787119419126634831503880942837694525047146090663785743598012666086745958096605123259385391499087081183654200683315148113521643415350894594543589869836146110298253792799449065094062914464372411916087198854249060947396308588943833875856044291368731695029123419301114010347465869983137689135605650730635695015021849362061895993396727370589891639557906937344866138948611885380430200054162238241374641022019575368859465816369344206589003479404323346681125944640890656559401537736774812093003858962797329685298500156516512905124049190481518603135347019418109512845176023230491528019762000386189558158945786756088620049717075114571657142649958317373592971271808009437148780415790788434905105517795800192484727752951147176828408300744074024031716967858917060676392259709925682595683789896037733080486643255479693928033658117250897573481178989457462908075243899732045796351919859079727060829884114046756430741354536454424155575139530484325163050636996491449610692710487107253130731580321035782681504716631400106180604340859371115792459018668057378602303102988443458958204138114163746477618338314414521529242839682179221666566269120438348830739596903468790324053065233796585026244633353652636452047492681590752047405385624810028533428264858423017845212345522226046240078635657682650655784171478353458708625691163621228811913012562421885673511133230130776265445963645609735708688278133720213592202250697124479662325987708581963328035527850857632956210910352566011969782544781874569789322142999520861735940794093470816343180265661848888191672922697442470199391483539972709817453845435166276051264227133384380247443321615247672557647634992315387187137454448814232930735452485386485359037648766566928216688718947193075993351299076308522831225196607583857495209279588505114397978060838140751461315698764240777878370695099912010073411060063652449259807326583744712907400266745052332264892533560786307029258708274776234213333577308456302825676665330368959179926208001521324796497258782253932808298735298917219035555083099310528111851745043009422569522764515260840043175470972254379896879836025141953011085090241869721157968259568620983376774945320366325728241769881822630789629089207120764056760591335860258610538337647706983158370008830689205735283309022378895696601775875588936223807770253122900538697824458269679932076811110527729843098390048229917569029715535863426699605593805793531011667879276476186027507159262684870966261234918049924373312503231259482425213930089064852696865190789569439109430086001675796224674896380510622890832886110459551013808448075157342049647717781579891201625548870547078650959309099660181467708270766145912259364606602861230913444167880047733416625873747175609368200778140252052973474001434818754234245701250913811247977714420917905661215248483537211145144253300822397316959789053999452124779813943024012036812961628712915564717031647479070881945696436604062677891227265575178558547250855404868183475639139857470514512549014856292587295971942801030032104015652622445713895835402667009868634078941044756018028498044369944242660838716516711473697764708328398680025405954782825634536162043244453180585585111409374962666339666627327873985156037553640527074340551798317773494809968267126292658146743556886874430807883353384053011607804364574589177308212886223726111004619474736255965445908175569493720144420189498144022051250044636607221359812173682292359755571057381655445780055301454534055000775188943264384852863715764445915387122353221090536073355470084318013748409558230416824672046183857891509283453400716828993348967808103385119089060011394505053332312552572482114235987789925231864128375865081559153004913194179902393378670837708087365558342249841482791989782876243390850892641337004066504968610115052361252862337185329801268335159652656828136655442453410227217571710831260815447377300913733242904236218730381193006633230798688785898857549384158900937875954049878928822698516132514232123954732452147734650794682911590838947004908275412143703828978785463110876376005097223637241893008856581889068080522084631858390262334879174107439207392051942154396363482741957490840542703240995658899468856765846294932223842288514550866773395778219181651623060186765831030203040669857011084582743929709199788841716531344618430749723318863650168566786396723870814434315052115323361921623343196227944796070468648625748276832785148335556960125755789884369460009271708556093408395847077155110115822796891123549505743956071233004099167351605707706414108693412474704612230158912346091211746171520703574210917828448051250621587132667440629423007341088733759833865758502253928917829594203343586647035792899285930373899044923635177827748936344906563292792413733018380594076851448023211095073598516113903013498185154575294634811513965751436543283363723684223131550783720732235369772544903600133849710772621864256983170923725456345635075936692314595706882464684182849559501542888226321104937544811442296087974724200274271314206656200453086654591004410426293093682631327772066923022039979349848977439822738930506283359116718736706026526407693808222843068364835990176207488552514688708825576747107704011911336332005226528374787644904161339779471092198171318111504036034760420994980001714551902733888906928283715122623908629613361406918974376949871659505514713849374768334608781211366397362567372188179119125093211079455344762728428021687969093456473501310008501392901785850253436938510106593770201059687953939268914699856001321839471647518777910768059380222544697934567672307591825870264557790093365175564841013586795360929442755632946291928740387684232664982972232343679443453564127690242192603672538825296994432853350263880649211158105646692528319135600448818982382513824666573591020266587016272645325517079084116829099495100062192893870464576354814825439377653413022742650095584355861789359973880254632364823616537608761272126197653207816745752087596211266497029050919575422528954748231917204585519428272927343441800403960431932190221577886983292095819821640646561590396185799509270557302527267189656082828986245019530786470969131383513623643434252091955202923250238735614795104424160040364600862482854474521069843091467719338410867171453284740419532458975502181283573822927800947519936008852876878501629111587432263131405229582370727425370111067645165823663266055521444393151323873130052816927337817765290633002745285420619902974272794317725169230717480018822719428136827381186832437329958480065354893826586523301365387455567649997146813819153467497276050221308311128033467989511121530542438858776538839788632685431024095585907250877253259739305698563253814925483165031679002847795455298264170786533482755164333029183666157835243789463957791307313896417600095324759793869962868204417863096505906039467370732278889832578195647218153862038098847892773822437184766334611220463426930025667328415585750182082248530355623353248000889546146470085545132703277027484705678184912473945790202864183147125474037029234929483613366028025228558754597595396852136114486230641379149894703999554354222690856606384528271960702932244947017442327073996609739436904384807076879442557311083550373395832109106316935097871361159808843312315992868277291889647578640768861238074795160074062458285954389273920888840102925211779744227090044114228829262649833426022864267054381696425218419717172988016754161248565313563519973023736385804750206862422780987693159590650075730322869793524960331846152730891847495201248348244846585069201787543706569403935657417482107818205438258260079883401004129622050710858935820241555182532631847937384485382652165595046928618507364904233871666476697683081396165767858713408587043535340135537276534917625777236316818149921860042161284524028937599760560798494466284040055459849481085646173411508367245190307699274370231272094324485167357118639310264096618361234781921068551201438530402085358375151431455795046365463883836941603781936030282266693865342325920866365531330688058190343897170925505638353704986834583091360351532327639726481393666633704385352210460538616263244571935454294665260397258556878289635427262249305556565870460473122196271427683842641884530520495818886280518926169229585084689431195038111021576040044800222937266392359441572289352085877458088830983808278307114643205189465743869481149391084819799786187715544589993310824522677767128972393429906040461096290176222898398239611857919441784766944022874009885624510088346994769891127115283442316979416311150326533081430152536582763640893202166315973518145603446146135567608349295804964171055623776034347423013489937144628338695059427473832102603734033904236223893001961205685737347746790805564599831589710009709887023073176774068466541118739878004059839629688777585209786944169438507300294507045716651518888372461737347238665450504233412358439791610846109387788594419371843371608716658216664942751100601006625604588854615984913297509561531738580678956574913721373854478549963983277240708259010134463347734639705855198778013547716021721009584273642937149039846326351977019349189639909142558440379503920927026707352785427381133257248937655005122912351072695038691433996508273135367677590105536358871615460320508320743715694661096080484955326156137978758531786552412508143937118606936582589963731811960239941527250254327658170116696318256922962376042273875164662849498751566786804954977858802070879106713540832729561922137253632285638536917099851640471651299098527312875254805542275687767895617929999004166212812427217307551355120001192596443945483317172579754994344243854719498795238202119434822293397588502602149647373066885412021261966692952633000536381283576786520088510908436887906829373487388935993259241317809009320883860341102775855267646942156555776789947708201872744717274536810358703402656695563864494713077752457265450499022084496768006479704254269149951031959590960624721729941901645135956825007008944473724648925778897635776146189816286476724480011531829126985915922159059997033447793429646810476133290899809931048866936017124116807443501338831417129348653729136454549423072515505486099175208832227532759251906306928271941018578918625880866851378373521866086059383397253125240691954417451209594050007632153737060941400635159788091198944102264864864820975225504128720727697665219050191162563175183910322823429413412862523249368367727763626776715526637053243332046015761123620467988757475533937932732645858215625881206023129708510939209180650421708444383100339333714971775051902454960723365457055961776232776192336615886178198864740433902687971006264295408261922610870125966069168104094804211893352869661394804137376522495401028876685818018205899055371464540628931100552851690990599522709846238476028427341407205903504092123858721721069287907879230838467208453601010016650267428213936517135520466915427940677577776372023015273950865485048214187351361603810840304605201650924506845265472308343632850728801211872888557670201343756349925390539696908188350226222946361844467710366768492427808989906028709030725709557145013808403501672234858381729780722908671373849208328011276140743242533804618370940080292852456088076383280312956690040077249920461714080958338767383309878011082792319744655922692980976719205564327007473879446179285712828448579295216121597642833523886986376877944460757060818645280564341866111358613715788402364806124759584536883609083691886829428260427103786581320255451425008553696990042464534284163881232950471311910731937702047277834762149083980824444648105881041831137826207692540625756940969718390986268218048185907272118369154821103890053634834759830717614020440331294264845990252668882580054965392938363910947126881323956741398785003678631725430775956789794217055429011358487678885625747681311554932242185766358051135178612681113358046770207095501822766744191674134926560997864969000642414535962496761313574945149026874318026750846689842530402489271699328899098681342906907067592208309681481791805615211911109094680174606261412837745381951010217850546271156289224809196448563689738882741533554702725088106610413954856968434675257909244034368610165838268218071152400814388442819583703738351926618862198716059433828069656423978968233112082839060637989422378390228531656050542387264391540889336992125581748630883592945470378858915443625565853640941664065479855827600311697049853081658761823935483837470897350325867640711870747795122029324784580319087386685437634436132522762970168226709283295522447449164029583442779700650483905670455568136973350296721018139484171354442946141013356939352907181289029541460002992509308157177248337591307180961153507265697470170290566989899113277380800882275480099488418830988740127689611599492993286561157093723649415679046624430289660682772200107367118340534807316183978118264986993629657201912993507677576193852878977638095210917034156231890593010882252855975992218891972734928141153739644494179038243050588835460752646514171463007559473768167145675684706314398377131154148694368672597449992644982679532177433278949631200438199844944395548328465898189957134675956804837573017393305012351352190837607943073968762341363572031219154033862067433898105600943775185255244284216334890087009617595976393876842256865217608498143459639138675090069669877718169974088775522759759982951660185596413495831197180775557544709982901958821451802966457550588067528666013663519224672537813854385226237969759004874540558197983632708177223455337647920509590803158436136719421750807987207315109778304570767191720588591602803003794595112763832541109951453287056057679061231812061011762380577946458780654808931380880881639006294596776925744225479036812757882967666945347049162707947317316524135515665339397497582442617049082291111869333983335894117928195854619333841738959783195111018903343538286439241360432905421984866128072229868289857066823841246865708918369011143418438949914122176886200473984442803318363762107316419257547699633633930928300470455433527626090970528623391561987994517414174520989413664850520590605360182022529994170056863512256875879862833064419157359416035321746610876729467938772122824865176032192764513761984179924180979796586637685936309101011856570532294867440532301502150383471606222530063014393544076449262465816919855666457645612714182201990027115181549105877245488405029047811962435743638370861239000023223161791010956170488600348665884160334619382080470208408673209632569251325978953045061549401054380883717079040470644637956898716965259655513100187494240216178798156861589123227248543968692011069823048946387502193731159991781593614453232438247638546560564142560956408244072274923106891621586813278524145446387912330018381439944390537654929248906509895513661641180509341587550790089099984658318331864363539695931988732567245230158881054753226305971531026110840115460722543566945063291912149914300625015785517103485507146784330877979271013352770085186511915036005526953478159815705302402887820367512451538084241382987192445638883279707589762574063568663843203723954767794024332387355514078885692725450149981986600911506329253299633164050981428440135058488554513516916699115035414694779904824072485408843265963685919991505155380594279724306787046621902371789792336571547950144466062846251964222287541792525079542964906808769732425411414892117807703704636801392591344470836953206966520255114940998993731461337079712657320270131275913811459220677880468295022827397607737475531558454477145786209822640463931924409138560226954466924353386904349659992021195864462126038994005698755916385361387726662816307510322966254649799543362819958775817731976370420208683616517330665341995767621289041520790531082183124725615374987553128443366249270776281121260145868949372596974517215187065494896414225294724133922355395481087003770796489084847443630889337811541094607618423317567601841927899819970912345979606757759154309170184456180920291114571165174354759571773422802067705161816359973827304086175560849980689500990803856147200307500616844502473398552720329300368359874007097315012901961442704500334877558291393471677195170353078982669151629522595593749336532292057861210425159222735278146658820896980773573786368577864047633121235290931659353883408172371577743109509481276579281043544571539951270365473020720980754121453505014708168783272331243856707765283875937570964215063322465333991264967047005629493783556115632492306457308760027101273908575421629297093465055368406131145477997123651765233215633576438156740656810746836370244708134319528047429314665440458201273299690706264728709028784224040921529820386092032150007017950271859814992945088748366337301000174939765547942704326856195655129791164252141052805443594603018885005811676482680399105728492339228299362966897568313714648249904838558284095828362079749058020955602179529004901622939117957663571758378946839253552572078194459112698990221807921862036253205917123044640362883229497758430069252974893663981497242962735548676177594903319426689318389096100606260780954221386523827458215021565536184540207770745172424686115045800832358875917041872034239333785201084586812863380585435103256429064858084384897324809403074079886602636390648372987298390416566999429157587617776995877294890419336059334687607953712439569646151526118642372279639534491828357571457939266725775604043238289963869565548865921499322661638609382193083046358152555871139901502249330526788771150372247892180857913270266948732332773606382765152453692685705853833833972546158288305952934753944336098528165334177818629663657436192471736883180551077911822748178031006298475540275812632548564547970973828591999270508006861989544505188687206272968907281456576057489556982591950166780874284250908137888252286609367657491552001403565635070660405997582824393146915491454463853029531526881906405358705705974607081725278434323817522244994440372023400490003407948207054426572205164676285161793933001917212346067690506495276411930125831691263794209683163840291110336408437586419517413658905653824142432175202890354073681332992823889840906761793002875098848958455622782472155556014717755060617364118122133039309052486035763834282923073806980520817684214690129329649020275194214979364308487483366216114428963586126150699202819478883726245022404783115460705341726027163662586807037580820455482197886184789195600707955984035751474223309742883731777893459284682351897231824625609325399382051832526410879309901398582466265090383102403303999364090420841817250389638942872889191366554213956627520910305678284127206710829527601739742641936200438353851042531200326488832389722190105261334244219995303231418341152709081842275475064348982226281647415729043546141458102395545019320330656643070284847372890766888180569772064913684744136567262830588891559736203326654633975244168186785460597779234987288614864312421883354270047086220222567549570573461005808477856634553292031335834384139940883587930299879369817761246999166062164752314282239572115779041741936438447975872792755682717376906201579751691224460357030780445744114289027250129871757329082705928609852781428205472635483427717668986099509422127711818621217558977138777228641969112411401969074502435175090478732046446617739293670782250058684116838873168289318305433140825077560970974619938782372032903461059198725961465795108395341614046616119720554105735100834392799195460020444347929957869113711771823155343102960456877483831915722737923062878336676524304619074486430510821660751688380395641921742293745324859617402204724016895035460725634855279288575805212124606494943822255854324209644156806709180460691748262345310316031454167947378342259835835053599743536441416810724696594881923466568169551465058045016912170385699890641731513892060179438870565233937240184536071179117490145272105690366049934216929579196962914527158177493831427406991934829593604803482434330097573205641934584810077500072719611181229989932074867344443353441903829010210756014033771598253651171438553605699254697114467281078153478877646908642311306239833384471880992546502003350567574422166472296045926113081528927825042407054885681855260645549881074677890313085427209331984832116564395280281519740114202545940904999963901851514498919930545256586569961666201093933974169220645870578744866915305715703305576464004772790554976600767420465958482863868831150682962156296947003384201891393311685160945968012315393365317834487347093736769020628684514398076421412995440714254379690071275887064402162186067808775563804795793559475282994155592456003451139265086347078788643513699596320846511790535659878887629223264514046995290311195962733448633009817704021629869608702353183770863398896524344051786289105332459898443392803970737297038833805458147510489927783490404569033582118453666263325972101056854126666228819098183687243661088761050224770435804414295438485578710538560935989186072026738832233980795454784069641403262649822646850901217784651980403395425720287220122833913845587809179904199317101757239732602560009695432995856398965030983570235139142084934893298975609284144322711686059335316802338942848301019121933115830782616981664813389904791041867930490864347861556301960241560683878592053351982398872517738754555416609464957349978460343346896373705584163399077514920362398946900742715483941080668227362291779693699931302257650930939426522288898866301182398438950275767613293561037985617734307452242271234849859630365955288579716738925780026621125237398996943354071960412416394944600752106681461983254507989739851372805670135811824689501709294824892254102475798593151241601037852628754969426756987211301673683801472026490817239711593945867773390602416862065788799846465215246086849945339824039125462588929226732222119295599796566226080807943710692305367206800052977446652140132708830794925921469276918348060442757562360817068972711711443081592618851858907384271707325484379003711450952633750530233862688129073739391718699363603060409328122756208754506623484070853698973816357836644933846967221900205611342107468179822905761752096264047568105639261788111161072167703415594416990571169966445175681494035585195965892199682522383708783607702345005682497282108980887522228965023596581421295324763566320403802328433801894058600513079901202979505166437745526136291068934580425771121573636412459021530415190256273746384896998671880754893771858985721865945493946901028844480204905033388066177624941933286140687309652489507661289288795949716316636063538342787189684875621990693808146718889515835004901284844602398136466799043924690717417194848421356079461726570247836574101719507895456804086956992686442969979429909051179630457551336595356352724823021375875437013756201626467510209725853974072911334858317393617139821559153568198071125414464344620908720151446765453722486340931299886236520403021298829748095488788455055740983434122177586666443198208020077567225807987128601317756994613593362292010129088558441616412904727823600231328102236101552354802531594711960257983034785330924883680563180764405200723760445061624801325794582433490359919426510315419868610029629842690296194796087832124330460952262778839918679701242528279728060809064065474800165537108323149296781142954646722831960830655264858215830329336021629424847180140199143385558886197446453117409574441383512257016004205553842612415889584123361510455339993251315502162094948439857825443223893041261724705630864979219954606406874670396228209129327966961031129460587886666624629950525446676082517092830619072773298429174250509435514016280838794964891691604285347046205979047841598825996344991930452491243617490528049981038988587849888044468452875804972567639399527182995579860552974133115088776162230905276724413898742622550655508855398695910236576271913127413874281339252041322223602731147530939022643573774891903252317541926611865115405462025525102290721922975908656892370341559880865265546603920853946032061924178486753883063845386985908482099361615349624578926642308811414124241114818727446997182507820236015900623422736635127129122022048717354691551816073744363509022534356997113379526332423350199143900355766855307315119050232140810323411942471678829663667003536928525639991256989028269988116626277722330393536097152328499083650162878216208897107008378269608750350454319924703323226311579500852949542161816837281508227992110346763472783675776516272817389688126858700161460579155430271120895385798265417801813612464224270246307616878550788632283790647432967767302765599252645076347715460910880379075352120546261682378532011527365322449419700817856347449387571844296868398748429986178111212853470709297226736479332068000356702137760618354805194567151876559173152651084340491024702978324245844613677868115336691922716108617727682305203576764981581769538194530810856741587872450248225885124152564158778884294968246643191223366204099756499647466661710788715327623847185192641837186990822045938063849420660521906554666806191021638844802965797497697355458464129033809531573305886230730951247338896320356400523698602404620018069726465153833129132474799696359351468586045819520238930741822105597073223518625011599220337626712357631771005922455236696514014872112802382820386342969866492868295054210572753008706267732913764026889917845503750756331586894074665029499316393571800288432430490064433792460389434863454992067265407391715500289786806659167472419963801593987258513476001868413603473010262293602300832558888147026691238423138934465110782283372485953582619792075765477937357741499231591349535118407634663444182722180540293761990126902668703756475954481579453881491145060024931254030417753127176684583115121796136181043511000253089671432217918535325928449962748513760832437014557140428482840018451263911503153982151933317013994082934958041041289289392371333658826602075509991979090858606632399768626705371765917155699020635278629508551892505432586545692079991709847148375569994234368929476340553960938747229946520589970204701780689122281146866878666741857077937091924903793850694900129357006084525628824821987514760675050852376923798091781476657392094184921331330496070788184705201369272250763231926082704052678210323713553978527399409347714487909627481731668378167966432551356897748980384288556166119646437754260929775365790282916448254871335929118793684612047166710294717653266354744465798753075043814130986122401155414165196912287279554499515423049068741083035048917244228762091120372970861426746958916791341134285029011724524387491924199364767447506455914743720617101547915874640992860533412371525566295335830816987772541200021522862718731768110453281222098429616130051286449759171912342763543097855414962090957299379251004006355175315746240015808313725387268203062096357306799059577572606261528274969119199357940907823114460797518684738502225318630169550788267647733590369192342025380105171349352065859371082387885294933809373501558601613515783183559092249277645091130239296438535211122882296954455505120370598449173205964366688053383299888868566069282178777134129006196490372644591470694768175246694110558283792634380841290177633743901232046655925612494341508612766983195532369197680497141666834644189279842321188899897521871935837963901448484964655836780178539255090165950423059226611865862145926554169482592959284722563244733115506047107337925530865222922738498116381621366080877775767285119563486725368738887661486888535965058141382250149272918156705881463136694186712774319844138034315283248076572120901017532226039670874486205982101527482673101700147437574583608976179104196574494175049679053363826979933870617573015392437536342624847900671988505756005588148462172375082024118953362291370534511970435934467776969751350393389196639801383871269722154371440230261840426019573237826193441983436344219089856151672707550666521890685807685836856544870032933319277871605934395249461864406691021807894311702554784815282934592056032817590010087751997238903344094395132873549523498786160467495232045055275307442902201818288495201339673101624222899056994565274010251802951323193101683875717507501308154963690602192814701717847046902910072063292057574889530525109448674124299071049739570553867634894376909689006050993058779818234947353554395560242144092664695450245821623349261042236235682300087746239519134970157069024048412886525726045510313421017236841999290246656618713847731360154753083258685841997767908569274904054870107368496461980613088087438831581809429282330518634773749629028624055156856108278009639913997087584761495558608809671493130279437813875654720337286325382678930458450172613272614047850927439173851550064077972104541237506384833734275782819984967338762630733083021364636898141271361169472223204626236958731645821772728252352993315796380709180903047763773643962322461869145698912367456346027073391156473441552850794965970916314888159160288979678125038983909493843274214834301736048966931324786316353567735489474352542998065333192538314304407091772145993763972393952276316923303384651092680464263249866774298239441968107144987959634966032268322479011240068406803625432761995819543917617502822840430154159466101724916718267765248868604664339807097501580981745099153977210466839932825812004209888837952396556721520107786508934489343852731517060726700152331943586192688834825929222678860369788809725965241736886828598226120062216986120853542361612142296016122337379137189056897098849023665164698904739496337498358459486336884087290331941067499099192680891294528838145131019082302945338690910462070385111224130171986187450064070037654509152571423333702776718599744692357465765394033421056479978296377516744224385120987509292410549178005436490614849753575635230048230793496127604737103588022105374639457645411578235482134115869301663651059658930124803571877251823749129914871639813891711121144957434734044669320716562744210816993239360368260924509057367945015832297930741853139914376040213102123514360136928184471350315691358362567230721334293372136654657441695997606550500292747585383406049413442655101354998308584907705700738620046214384556819284844418374224921504615233544842294250848609927801188505519675300382972263491479685607497852792862643861770357874384546652161798939889002598577477335360894464690385236055541742758931196987704162798344660425190290328143713979472718510325407781085870842241082825685505269476100682983621478706551010600556799669957562316229333569229556759732112567586358547883955503016609354879446759635322333663778388835014295191358488533368073715082414581196192764874311133310631393603601796470696365352392567700433694802415083536610431891748921416468186363374317184946465217228578354645652848736946314451447314212101757249680792717931426847395407555094430892013615732840327604348347812812205051431629783246675780923115842641244745584419277721374903875011068341243465673482660917341154636540048646409307035799992105611676008120342220165659290872516094318917051337537470716434982900949143616940339938291311913313360088855380385349430950533783496053764041854141665951428328423155200397419280402185270488291239449915207051564038385100930456357372073694481421807901521833250735670504567833111828026718639449297739693353062026732523650335901837106965917243853860084686708899029458893382176075402305752143730127069938015966287317081480464754002221389574903266812524971946407161761543409648024471363662597246459932252477689411451346763210081883653865527629064127159454858911732635162841641072358307635942011058237402902328284754384514350088594557491986140098027817144644650571818879326424956323753445834261791318481614107022976873399701082449575864271405064289225913137206057580323230805747373606806655138671963420713510141454371680843534129206426368575262912667502530445968599501728458791196196861944587889313881117199085846663431773902851223744457071839543649398603506446656178248485549022154457977431003975798740024590712714510360950431502632085598468584303853177247555670405281551249352066934441521666936070002538041653626519511445417092178909332735305514667098291256995518401202405053210366263074768090107139990775559286581299756235582603518982417568633334232741068002819251428949524737651780980804148239271154649766416133016479001504632473922054053062764535734196447294762742166819278209626855742189709621133778968410874525320489665611788119855938556841711278135540844252873963988933485774600571583023932401516173849213883757496251684232341037399155770889365395082407514160887002667478077577666026989887140326728229242176969716852194417757183754566222912096879479446904685128561236565100667401095441547893800575731126417388324931325067753479831393342666680339026597584592869608861698240581843217008047030454091335349975049517046981502298398308770503672448166623956748215565926661453074399656276104672986008587444668707244426089236855197385262826466644849266631487290799564331692524467819282164969053054968440373224372184654506688687381317032805095780645164301528257064738056792161216827286251972113481038778246010297598595049475769272249198689399898200493864469289226473748925841107405123934687385433898934978191715515119528913972444248843790575219693488822026459229104862109495707828070779262164522284131505172481352430639209217168048505929653506347550341040929964895933907694857978665431102190411768236500052630325646147918450410400413340095917695736760830830565073297407850337562761969384861904005477055258245787520791768051134329271131446761061311791078072174372847088956348839464450381034558981988752992428256538864844259442723591741825578906627562726067280454966636058771304356587902734558850047969192378168095067319541790084983481122762775661235735244163510465086198862754566132472917497178310338848985122476684874885699871363009721439370983356058233677380043078445533221633929509029813747649406454348994049233375229193286115595775962292689741486498748238429834903010306959406536739288578072988446762168041426643828467592798746755675489098038494705516033576833070823032601408364850948550867325693880697989673449181929452080019984273125422963401232019601789376128478324997809397617830733145242622758529193423762165974641966058461880772001266689285008541929562973327456461045473378291331233171155570375446408929810393881022202011906370117252509460796195977825158163980923957493075515694464678830535205224719568983949524601661043468956300825091782267822199727790320928176367972642975313018684964947412971244225527134682045871989888249172589891385431899183265168100064717703398932467632825019186952154751023974155327988641985963466645916758849461212414316291196401639901043018678312596346943421733810432870703106179560143696335662271234538335409794501303939272464417391074224446111279196531335935797428274282075340890916768997043666047570889194248075072503946161763018593455170399766378500244720427820464701266458640959077732491525908008011813642019008008880851282821807070596675394780076862877628300767248394287413139758493188018007888738757350305332452100106052226931004700513494590631648819380320142331861768708819042329916205670440542613982534551341291677372115375738872489071034754994403150039118050310665240486677648910456125695461915346814254257756955229143347828261428072513527370844082988664545218591030952629425673749669784434405941966521648076125267767667818512123136441591044108438268646292530256904596233453214941812033761964346969603279112124121050689578472303251450371011149007081107499959585239143854310558143507163248287653085565587844253240672005254436398777283981806412520663200963800507931869634750294054915985995942127592362321867856912647826703155467223289956809779160077896639947273112011206015679395596885996296178988180066622859506342892947778944054546080014125388948740520697254631936258564133299081171088109891721401926921122083115987852367951813909128647720452915544340764652884869615380693864631052164886640343978683972599961013463438170166095110795651679886385702113123653205288087780952838329284698308458347996387792193059035944205368391664565330429231057328435178754867691884693780313077821960363456777153364488915024085669867426811736188095102622654697538707821271181258084883691654175919535402744222407257286912506968519211896369691269469557744546907259234628554091642383051213790764366494500876978029821740537143645513342807987639339364350827061502066737108808025726961871985966347271862135115365819652152286898132031809697060107142972761307722643053749078765059735189428918907410153448695780133269852099159456510708185946208247419241181274505840806805015363767166887507645993735050400372933436540713105712104725027728769926149582856550260890581377524192543248927282143589371227205277407948092863979117330193552169518718335916515294182825910341300513417557823151781840607348616138103552306348226958341094889995704037711088474691549184461771978692371700765567779882110836369393929715971665745182858783593985089736728400271976587762855719810330606740109610587940933577992624323040901470283366828444253491290151386391363563617998748604468918432482953018936636855692106847710298654409728537097738976521299018432592004192920319895981783777704768308460520229540168573230190722473868736110203597946426089939783624450099335019154204443209744353293737820625512656694851285223555595575840859626624923629959339319354606223987996968749484297982404717120208471328146473268045805226493145746451123432556431183704414533197503464652128260184303512020245736674227346098454254816890180338880641063451957296146209988822407642165044272253409137804842011706144856787392304514899438354235038997108804093832218411544867989995386138656887058694826303371323357355929697367086148963814175542414097772782327295341526338759940039993728768351811053434814059333332493666626146957910280706416888494149302144329270455822188673691631017188316218938738765395892276769811719091950146503648291203827144707296065230099513368591777774978051503999295224735033015306794822968825339063770279550014841346856902299579151827720468434423565764062302749960701756410406152108061598786888768405656544703643847917303100818557943882004764278746068697269334786414360514028347860684599888599057981490017843969243022910632303649033343608209393413995881014058113609948514901390225081747631522697916202741011276238131644552356757579762264507015866015781629977662426899083179898951050276962702772070354169093307327215630791994506730442815374034759722674530900531789917872623690101466245865343545942034430297689073608491550035232344333991167322350564230213859781867262763925632416353992506690161828997637329086189445585194207153544825168477521801378891523902889082698533569323160498070508323649477087679349031260160309046460619801645357180633961209471421858600605498768631624798958327596457861933842788146406525440038075629271814906486987686428313249725664853845898439546029040477906522622564776396871845194261878350015823553933453780462982763939980155558862261113445144705331904202376955633575611212626945169376746178800971727783130265320142647237223087770901019167708659318456492736046273625033377658413806515352388481732192558119386272976797501732034937654604153677171150215008044484938272549951559119100128800329265139543518989381755769820965853296619399863268778739114054409873982547200423220619317867029482667116294979028288627579549491442187180764089498150203545926973044326193739675216856955793997194047765179922500764055407831619038174215283595819284204976455682239492151207406711390603743443473664547294629587696019414503856086205377086042111855355484208774194436570433641641823555920368393577780675022095229358886921878676122563873871793908035850475910771384473461363926183810749873660200440182366750392739262826923139873464394681425992621147030579331896138512938800081991236881582214689575669080688033424845464645139090336090528534105977833400967956275657153568429006996371195274579160314662531492069803689387383727056434117566224235678250308307565830357151507198233027536677092367344851520463404571420828350425640667045813761838891159138501270342128201568421745776030993565052070458039342461343966926908672500612099605736636749550005442552728523379319626198474866103028056835728538647734866437114726060036894657765351643279571521501110127657128354097384431559692110587455827578935542406420269311052584963070617439047667557585365049956306557913295830230286450509180532522660303669300740695505109981145969703356654373052999112915245536111361417481444936960783510047834418818654577529097116033491027085517949347449277744550269521982222955884694788464962554228733169695002311712983714375529322431940590519493981461288939993511641588985288637284711195244076652663064516266245185119883591466008311726784044117740326014227829506230062441541928251185775416597198961375310293973061816857130255041046452130717985308761212722658814611669343534441470521125553504924292738855415832614478022114309816274254451306745619146950584080540777437451800430835863327184960501238915373074940587584788841537418573285701898971140420425381817379575874839776968019274700799495303853398392779624246211067493490639220781587331832602151621717262295116942187642828379019672666950715290918401768866167072002237271399307807443905369124475326535781076445403271261190972070440228869548956734809329298069651031396576731546983995466093050736241148945760699252526433614186185592516965804301631530437395078354380811421321838357918824123051434005142936405953965732153517751762142694272723804049656717983679235559021924487907826382525424268398228544806150730613033181890378768748452067205117933075023635121540686556503668585005881779705897247390932153088189966728484545641827733264140122215891499093858842285141621679800045899109965745069925640974928624086680674331658571384112000592705253920820030279209382889243355122973275474349970424859362221759772678123418841012318815541455988766177101652994449554484444615046047316143873458987322585452786930583223747855006935785913765094882481381886506357056237278087703897217080924181444376647684632209998052980254470190272451074860132404768570996695443065739655880632801812950406642763502351596979248288062913006121590235049111016059461186744996584911540240331042752036315598771773202645616184771027378021186363330166129161738835853478007037629669442678232259844249364482914670720833532446547873301130624569798970570294139322422020704792713821346062698526769221160195034744738333015749039198942536685182836323119782594476764673608879502694246807749714167229642668587978250040040193563568039831085202288191911718749860496054088785707503958661257759820291480978865060165561472594256596860964065091156397512174068912961147752436253455273367440015486243007167856561019838888117228658863542638335044504089047559774311185852866982019773698468171668718427842223013743792459152288694366607154781648566445174499651691619607327052099254404410299756742865723976249095611885058429080418490928041101457346904005206119964315253608121239020425858625343579884849593472636858636789426628765124464855207914584162736790114922844058370249587686075823998285742462019692498702216379224128399672571872918094854675674450494187969089982825635880515159098965632167055084942892024228547371741904061882302178248344388073275370872085666852759012901016125048257944297350471045373446142092700795142828778760501193838677730397949384971490295004996010285248434578291643798847181441133603064906791846121095154721225866513039317178797549734938031837513395177535144600637666439811625267387100771886816841150865085651019479297421849265734410089551935936471511058326225125840994842276257161163466726789927398544934377177400923747964003986545386120726138922443040202323555795869243954073397890625455189017824466460774851342086248245429081551310035007549252245547983229915233635519531664829072166556028824907290524844298750224063997722346142430944036999811608304805137433289617127957938803447957356578003955402503229344195309212705933677429109486115652314794920768636726995462715450063639000418154854278013472957077950628240893911069707533257175750407379260023276197548031389615778629090413184278192635484064659771866125680524157404168190541871338075646303380534100818276000787466992540923990132439306708016341862345789057186736528658698477281526372106261639730518067966323428075196605662296777673669123871218490360591191490920584663051110073601492322570259030897355314879528370904908386536732162744102630953496537620155482843649578714748148084047435861477735883907846900415037789247838644715275022894236617066630028020587067775034314501023247431081538798299714356995630792476258897990609052333488904630913710385369244414859691201658329273574624133152491642481450622005361539827712117851531654027223521952865587517623074526076914108566383584073451766279492168699540314091574704800135657580708942092187136392909780899783433627475533506922710280603028458629824438330785752382144428758461413494044123118833545593417403658316381281044449835757506575905593156041307919719576004719561250872485631284873978329177989426879810095462271337965041538569288254404090433385836184504865099973077660729658029239188367505098135586022951594239909097882507385099090674392724706201478775769016409592600524002870118570961951800801705699033588709277842092967472826163572881288858892732846869257101434693292226113680084108777220454985505513887045830892895919539381771756254405425283221609272807979390687761850194192036314691890279179776190408426075999861945312289827137950167281946584323544085831158369038120645745126313139655559979327832453463811083914239224699049522102005636927197005706332300194681986343222780711512719484557305312845527750860950491102632921437172070501377067869640739506345512715171293424039306908442178719849827040680880100797289773631608602811504824654586535453753333488176895578622557592332163986890153028548576696369281942471123032172987517045264624794703177851409136953102067769327029345083898533688666535933972415095802901212461446305227885253306077861910079039504668578190207127583441255634508183848707274430547407533953052500887674610363335650244574835843559683811633207578591498487699182402945297562285495914060215532934570798658292668705568638705119679980297062003205132409167816599698707172734360902752548634470208434994717512640774035551133243111329502586469513861054673101568305531285281742426610337663809971366915231293463051260737908084975384399881333685073853898710147482906872108107572104799160170221604377220858980004050477136450978153341298981959243303954857187276773894654384191829000806052838551419837360836558480795873428643099665631249596804582787478204116490982353968711264955164075415338103249363730466815862325955609677135565605446121874134275296819698172699577187748664142486710512306337429320543197006573600522105357342106133332908336085990258093813442931661886078245915169589993507298314281435265430527886868312012947162274098269530576139726573192827373404531563103426337905634516279091906745557633357603899094035396604475461694685151660280889880915983875861124077849362922820213971421523771137064761895824006059297494571385236527508501675908876538100309121901991601294029332546774252541938580224347776414571677191392402657511198887768841153312353380784863690552258609402936351678888772909334260997142084961656128994183221205348455149963252764817732108789337854961893648962752068645388596647684368677055347661973568576322608234759398958123124436464733839657789650680359792023542908787214237507919350006638944405683853449691576356939150614764162263076759905488638742716148395106611409460476621066084756303409180901264208718124484069067473684681708315895307760050444689957945496564996155482056931849510517379110489756365012514605971222839116095574343871649323496366601631747127532431489519233707315971996182366077268047856703700470786533293724690050708288319100197126408286871390840076836974328329856694145584574380622494247875842412077317145963853465777330720061198886821514655948230191648284909607587718704170841048494653686859026732835473266054546674445769537893581693886126066134424364719510789871161199502944008144958568298146458620969375642270756221340410313443871544748508617109017443303620914700857938170563920390139050467022333529986472283670189304947015148239965032343475502512048756464159022425231636388393500607327814098607909766694630910827427631172896304016887373758028801700467705626002051337507398138047748527071442026143854921339060297183659052263810240928145496184899696458124933319757224121064317109302934944576113287878668542898038481801799480284884517832247231569951728266527578263259653883421086286117536777264797299486966433554070954925675325345405518016199339741814373185110927371610573142918102366900943409563775944834322399389776092407639832585254043511189561042638895268552640075442948141908813258604832450656378044155776897458347327798017864604239820829162941269092629139981958184540416702619684091211261501084523520518998928882793405025994755427933131602859493709670239657954932189651046070938589294181518690656444029151545115101827273419952987471840220772882387089597055819210598416223885470493558687007669101050671584869360217735361255667871544675935975284505285125283553003217942973018879693728774230474499442098374553390382804381170614518738263534965699170449125997702986506542431041529954055852995632000717749588458688246038447402240550316252771427182766650043161398977573770036440548103671997310086080300930640825704855377149144305424477334977849487787274058339197335441246138853418519769826268132839955526958290422520489959752593542978377812421386430815664190463712622962117225542255377546436468962411018571616077140704593141644027468109414936263211753050238130437887750146075298807914186542677679985577388456382672666336647701017003995748276107167411835513148928955375569936127745709063804845558033106396346993744749333703689269120550208486715248920773357332186203240261474105347507733506358675813438409773508018368305751686847022830345917754957620534271871549936911071342632474016048671062865182580044013022188819377930884176817847974898392349349668485471340434051840190283461267849984965099632875916217362257130384239905039140080197575282131410823509428420681691088421050392467304084531190460738344893096562073635307700719426567698606118173018672655513557544036997433765508856637079548857799772159091674798024922843160994918215586572953226148147452696107032180204604095895561374438979796515482612427063956661660886938851510880521883235244915988895753786254694426992684137623792640671465248181011979841800270083521457131894622874499585291514437543050767011912703150962489946058176019046082720823081902488123718710072075890472535315462196799121923378341000207791055562763015222735825643871099307052390057319974792764057654407431782399060265040686149114924169358625173958244465162569744309861780153048031029094398864653764081285522592960758852917784231209745141661781546880075949702424587037077682838454992247220163952212927557377878669358552722934317155873286102526080510675272873059731711711036115369422198674184338103695306543829478557634005033702760245948950692672051447493117885396765703987812543473086704189301080427125533932986925094166962407392785425243040232910953988288088100860161267844707714178251764893193255151231183033576261375978236626889371715571729023929517249985104713955421397305632695835944787036146885046313420994111776891473478256221151446584968747494946435887559285748857351769145866673105392671287837094000164683484551690895335484912221311273805640202601341154382521559920517923031932125128048237761118282178625609255157806527836927577957141982700764127681316819678719096053310357186554034403499699281504159558101499984997258468289138021582078082861181706180037490084460860941903154360249178235165395274851834250417602206450814749165169889155594780236062953558547255706592083582454621171549646984130633251253382213748165770547620375575929411765661575410517897380498189965011079269787284692047194179599044125317920110138933762959754815975785335672706212472982158877228404274165270230001007549976362499407972045369668687157407002883621954927347656544138345460093122650362542940294830109859343831594087633663664158118619443132323246448735047313037549682460915295296986613369235355167227273835028897437228686275032276474342937021416572602790763444190322799948225140155942316120157051423712008688334064380668245620860094962265494218624454121109370319455736436161951796993645979573084250945741382865011993220223326011695564882177888272796997885207228382864351163972219073856280616175917629155458479183893562145741907873187999966008348397669721128449428919445757056575057876468344260435795897972598648229471983194767831520332042947823685900788483741268753671115960235643204281273998434772294670699496881977010121985909829526001110950884150206920364414119823880669769614442486163326641307689352946060376237901978172761125874426784695842196400572745986989234777187399356793073599502131235045952834887546979886914438757089394576796487513348480532621528751871183995363359306593808954983112822486266804614648295793197026834300579480519026998771926086082221811501332813660035051098911025230692171669816008668147277014657255672551623249505425197073799441360420545739664096866551098542329771194325804662484840945575703581541486521530877433402506410451327212021331172410986402905574534401858648405289461478965265504140661770455591779823180733171323149061319269182524631701993110278249899087630223666592656723672070755232450569774354977749888086171537712318739593903724009500739412081459744377802083825115049801916713964784639670401599513681743776679325468610745182975444665001188540682915738387377181129365464974684273193641137948494929870623668017076317486013562675706523753547926493632426884144268485155058929321950751644381199621104875832396629988602120618323474708967675803057282962904070570471844946615081288018684955818042168506970339561814562593449960456608019700052374400011897238554028433266427521767260440665625758405329389314484424582085028991191002518450977222739561874969981683639719655019343470633801577557645014650601480667184192760752698482762278728625669098864211540714799775091196471549288352320063333066571277190793207059038927326395892020655174762048169705190749335249221316975871411974526755292018647882278412933825740309200017749167831291586232809755501325253768857325218267631267721859516618420467035098751629811807485683661163350297021492053335142559206815707999431959141184295463713099974158174924827731419123263007283727781000181090223395446542235727281237808846816314573686057160081203843443001566293662419698884257157336116318821085196389507926211117725325410636732685714863698805256377414443526122238867623248345264887306277543526766434597187371611890883709400036811577497007839461606765075573128974194965239815839938847984720715852007893575733075966500982037842835898679428087111757114339498511618260350696683707879188959448605086058800176910245726655162626515662335879937182639671788853503434046606526159911369636688102055225186806512620724727392683104157780254638734375820250067706280869778938195348739712221599249261140744324565373604447408465231503703149109541043558793985537264872976907864523561699075135037155620307425379292262108504398307596739398130901843407526661002391420064803701481223554818113520920978883669549700335917027092412327800615400784855464065942757558458105320575915147502812151057957654967833398301731158582150630578218811479776955091146766332783046861922846651448927969142141223225346289845604265814946286528772749808133660306708321263936368726049091129889974449250735557558677441399271473052383182203336834945813321170960511474029644142688341931331049643577043145331863513921457289782854817154558485737874136452930318981496471756813989171894461640279655988709671097553041601705298019797979517216869666363499859798796947137120616288937821383409555756310386840500947676222652335672700684772413077466558794374054602022405682332970685980426788005640305724832436324215220214028760770852573410075374108146569578464964995948882111566103895531138789663928319126419453073724223319689215523107043845923624501401918156766495662542142474486131827837512590809649326596027838374747966019592160726453668123977217301615517454551013935974524114382705833823030626326977466706083969496760272127677565907563096356437562466911802013528088775155262032316919940304505446220147299809033463258987989705745134225902676607409145137913634903049082620528849271859630047708127024639321751856228087738702555718223788775031787634819864924207031410414743712085115814301289868165564445358789804841686178194387009695311180240602478061889035363781068210103827220186374942073504220763769840011189854794760329015557834764852204792122454570181814113827753078407083376884507107594637744182891835587672999365574418648301092779357379089698668248499146033560822776497248820797297674609496202679172082032756605187273332069633115030061836937813431421748053247625637661790410090745467504581329743058397360601045156941361512892191685571791906886288860768981060615941449934983006816712432574987260827080403873621483919728462307949975328950975818947206282014734084243861030041973555575265675537406903489285505249463258137403057706300915503407537193848231540223346272692239058175263865958946004172788549342720912009253522564578707679799080798338849063313152199887986969301920679754175975951873464900739950073098690884734921497284096409221762554452200582271226186131076572393944458048411435963893248458350135153688447051227898384147640377388704759936832448926720720304302478938480461752720107112308666730919493323534503837451435196034811131044909027037433018286638842494173023285425345275281891825803230870323200992132945452000217542231822765617402810017782864240529561567087711383852304949927446040290640516449068531463622903580307109975376593860337139378553297089853947713251758332496898747343598769132227196401632162030112539570827104914987714042447148118573532611120365895626782006945662413204081247396277866073075168306729833650095242118176408762193959872677118882184116120452935189476899713624508831215263208441373864343116237356504664794469879629707930865387592543422882633140425312518848138067313274697392526056104570758351343000289556882401680084255796440142863774196909004364990737040105894823477753554273450632293065614577069613986093621108594427273121061947665993309032344600774955072644045896838670596311758875549752177661070555489084337228207059621224174137601454052502084702087416264287734055625534397684270162533453519706109424949567435229732010028603958325217391265085428783903604852594259690827806115075178387025191902596252631989304732839027490507093069401890812294420413038312334133919610147038132162661598343339154086654351880567756470617699205430080657840059737314093966269623341532085803711469128174799428347428015785875015317839393963145334935580323356619208992531070853323021076783039323395030621128452888471128406418007436861426368514485599944122138526592361557938840494039513008971205315419498309529755877450270676208753146945454809911983486948249710241307333982670866737960205049216703242241539943101954031758331096430036482780241922024073607794414182163155398842695498673675890995746134544002265305616262878274499449714734449927871317399776885191567724997145159395944539944575050841507301367248907955236589858524899897535020631421158326157539502649869844598495746773999463986471335105915281666509146974757396285660689908668664728216584833169030058917772967230379144172452895132616717303455473644415102316185077412719709355813649287029709440277045116672676611249548735233242181178728769663502818564897198052660961009927642170658079115799852452624626776837387254701341576242444007775969602029958298766822298694908736209549116134382015753789371792939933241165385799784693633362275283934951978935773431934586761256247708558934659805476067520009030500997739182744925093547676670066007427994847213523710999656014248008272824515206109614400333005732130385271504758751335739738353349789423751306147278837115238198612386835568463196029325314605569786068710125809602659203241701404575989850664623466667150599218480146457798921952668064540154609750322148166119313472210206541001472580572205413786183887545684902272799566490516147232370778315336859609013382249698890488975827055221363891118033502688860373787924926525746215230596821521494092224691903039136205237513753585700348430580437917780954508171816637977307575706462613691376126124972857691231945707379122754283512372337241108011605910436771067445135116565292664616039843771480884749496281435878429856697455399593986442095563280888974501630289694951689224879855475191251161720580155231655019213687747705666940243380962325296059514627030577283789014402362450226339977267856058576212476863523128539800281089127159499798410340501796288408804683273738105622108281384541590256614192979626663472624362508231648530291342332792307068001546046296836290877151260005293581604156899165325686607033686847039906230801966643527491000642338976140804940502140858972966700138538150115573975253034231869998697137315678347637797384083146664491047482116472791467745847595411018768929811789142097821099817160321912880901938344733897027907274637012037858353949148279744452623322194363592069772097919846253999822120742678613044374087819356616598859312943595340827056685180466140569372589607354717591031882579763852119545365863847757840796868268877282450090929630566191109252184724596225529215558738899491365860459713171925278289573266572557773813246066217343812501014230554282083641630138685188729357889012510060579980468280534825345561435900812850784891797857375355022210437143445416573452005583410141034820586711232562256047963658431350609150035616510503465433820470646797754762100812113921888129257643643575571725866827789782719779102807149437378698388921802619092414894796475716520970125057231033005436518716759367209659329366628299451942686989953255701235221261954794531556379442374231519797322157835073592470778981908418414941874661705597721367063766170313472254786134416082067782823822720852510136083474480393217897878013791484801663772698416861546993143103830043341879264795725647080265601171788444620153850177101041196047038570207784567311638407501636998986716139204246318944620140323614245353665334249624985576102817352980824590839039475665248912008583309329641173797213013909320838585714705914212159216607403985496648393360691491061064262962983134227203710040780898751776620235738252001843601271691446884988409460548139001072823219823779062437184517362197025997316245092190213851703623142335478134058660011406981711986695336173412606445495382540307208549193904130125526206704915705653220708296566483080943353263498951340990926583240676407759825419004043483134506130274830393931982787431563214991588798406403125793524330085788330541174204610747571121603618938345961275507380966442072969403320244589380526277908806682101554065437511370668914856337394646655863486208190102253105408009322667714255422900946647417639511713775763721489108759896211856392074829926081767775072317279377968895114611419332947881511115471722377460529069963896918296984136147342144892022197651848031848695670621922685055677281174965442979063416624082659153383367606037766741513771247848182661349509392337021287829676135330489990117259769872196261950530840802793500888117935282074732917078524538405906301440566039315662719370476588739276130794205573422321807548762161399465109189398275273875936399497298236293344097262538569540042257909174072233628041573116458793193662512207655362617557642429527061411895179154045393563997584299189595158422198890263317549186772960916537545981666983483488846867653138665051919398280554231416552082180756460606261429813464515695352657132855276419343226305963553170736909041228349705219974458148594942226156100438035931162436840472868903866259309981892584667318431787656804564949478198352489098491385953876800774665993017526581666976331746696358959509375005047081899523751916615714736841272061209150882605783594067948596675154536297108920676521657217994030201721966401444611366399485789341331158058367732036980159763784340715167525448505223287639410198717135881102623459357166055877915996687338533627389837850329421148533452033939541906025571151402535506215728955983314412201113293246919873555953014669493929395265781113307225206000900850931439129121700673250275532759055107670422197085637822585681574648718580033019797524978707643632386716500551713227227658545772184396785286689326733926367240692229877274422388934556018856853452995269664167266145566713502297357939319398029559945763370270430506468203644161390661942160055904188964646165508759326905674410336211111149839119183315809411159372189423230722932318473150284323529386577920941358170303301092155099493213704325214007975782602667045724289658410537309634911682142909031139733631665939774416545067681132842064101786131834382658547094855267703569572584741461404250381735536907292717366547174999927697140043955512762844472940577147319167366820669145605361235425471744159191606576131307406860330269897560871271092089667045533014647506799054014763551865527134124304882253505635170385908653932178176907942642051559197431689485084973944649655078437786765802345335646015055169867515308316847978558165447317517848415162517121134302651833933291927024778902806116960389532330629574348580785217679623440823208214346842694021222673369039779240424721709174701232944005791480373142479747116111799008480352440309703532624723662089750315680801195790691397405483301835270740564671727471699780815042858589040898031016587042882999495211475718417383432731548915803666493216504365160804615640760104358060489582752494771555651815549422508584172022612185231923148835621791189687645421085152822801848549419993990449473211226591007141426654269728620893453611523561037469075057613044774185040502968793931593891887409772946309326878795518101958155947884831453300504671451153303686788298395467912482585295412096590770003608884351665145315077212669202656543801377454959007479199316420156087844968960414895316690409938225515091443127530122571857322184400481375032740566184515234356677561857286974803104385432688486317923623603593057450837365868396402324105457978239238439199569801989824841504558176887878150889702589132877826708013058181226523474999772214391541912986196511915774561066810981635949226480731555273015070129846533113021255744506799909975233213864823849229226699018980428240990908488709561389940684809313739132764124171093873339342457366350335958554866948004255023501857102014982278490811706195464512384584333221184265087932163756786819713208125204711462136711070937669502515990215793454274737552772437933079109328519403892990646736852262809012332807645171850396350113996976743851945092583901629947587586575722581173311664310985330920606591156782141933838075170053467120344373518616401769017160783278258568031232325413670085208839468596581204468892130678431221546724512062763084303356974733991750540461711144834712812945448625795640818906310104450329125121858212144689878830261487237300023508292501875550704598093890084814265324731811701286189475786465098213314206779760556193891817047711809727877686609359943701437851218242258651327664666031169600417787631430229417184693158320194356217771898093285283811036911964762279315704061207574948731898600520683579081388656015165880666131801094322037670984556321687095539549305984158728387936903263630780951809009646594399441818410500370141694918201862532183509046314002548797783869105643619546379949014895209425053051469052106987676687137489985535711436665101073659621256431718806132809400288990485102564603814343070998335372742162263498329937368937858533184127687195111927285091861535309756534500856239499310529200245291665635623983639606484267204253217394802220172163524959039407878489395529053394730411736351660786210831852327667285986664369422841096363644364689953100432478958856447817373321702888364296734408321466109092937512332709856185877670211807287572147853787117537835108914781939555177205175880527111520933370237257905789472401335431781717731074129104979609217027038244526009425829128989094575220807944489989636927009246019308389576026797650207254597756724838413870248474676732579933521588715343321993734182122282290162500635897824743332338633453470458633504890062111695378958380916549138102520258340153016831981234709918949379321525767941821180416326979236431223382508715859624903735578053096427904293974299376311942475595944157339250187482682191778373368445389774760667711631653604934159155414824038861601672327629779997019857631567094447832014562774600620304461578904724057478376568056628033867077132284490910289616007871230360570940818828378647261510531915685883316503222169363663803837908529823212667361763798342630096418593553195738429107735847511478736308015814706722257350330503480406243100232375776863417807383546276523510097717959233285594653786469814527637488978447287571453268886635426175517280780001945445042184462701561703193671339584525277202434183110178861124003949159402029273993424804030543682088159194473039664558495564018264308054993711213972908611868423553436321070473851311447842855779124745160685227905842368273623144145056140435657161397369418095205722010653972582132428526663795185506253907207827646438149605999328984596617892683113006971701853556652926851972753285815198017642213816350819235659989233639208651156255480717892448551442300377917880906225010795967337387351724914876776156661411323600742438604563340704742074355765786717113979081253221343917827252166400409050953049976072745627722563030154323968795093552119092831570993294375788476474674240739024351159749846235110295454126727832968553268387859866744813360065995025610302440493386861477202666956600744646649026129525075475696546094340300957405706761809901354237687443251264530212581142383988612932891042469869454105837052605797403586082419448954308079530379781457546615394199137450143264624716625635581436195646315364553346136416695620245691500078773882704441192442318092294192927698804162896616294035666300072888202681838240203916816679700450397354560983932784454548034695416065174267570725848165320042229117318436553682314801394121611130491045352238673166548269960483557705497186489628979791333295252397374797190872845274481231693471415440115270836943819088959468302810884149791400946161662596622375048625265102863231771284536017394223809737127347491929006284050542930903514736015132343926568302710266188874586978106995714021192345236967211675814693832657620625196637511990620491010377132130497920991018762641840450923830918449075171527103159029314332538462388502230068978509203999584133353310007721487841958574219556193531277029877729880668701773179278537090956404475167387650414516061142938860200128044165033698184725809831567949458550884588543719530416080804425276669085214891049827904925142295494816661666641912888746927445167165335251977804882264861277636093559240780833581905123191090188214765778165358715972786887899847445511524211766799517977334883493271047316706703729432869537346199139836598548060579637282507922036834529231046067597073190916040104389063076522437448189129503555316443175210136751850543323900606376700834358425341616059076205974803382867699240326538122276756961796735900039120310559559734190254693585487430402432637309589368520497539096342499530992593817844621703570887941925216417174030077090871712424073481738944905653301004404664663154759820614046112320352479354832813173740173810703309292376826826709271671835788519519700003555553406740284996136424978621317596403430049971727772643121835752697813058530056672072352211086824389015587892919219584274669358489799183084056339608796547317704802910553431015030031339432365943498032388339526413155205401669628458254599067445682119310182970894461299902479229204904802400947043371198573589723600481876617284809147512700339693277234443635353855067049395607765694468835677433660335222025575384333125358798656849066537994551557954632000444137555214398122507554825026964090745962504494581513005656276279792132031556182532958738441120162573829926845080983998818139954692357181040036852619219266191425757751490551087361604285418566685644081347113100788534559858325655352376309592985217416956495837096514277309419525458906669294293426829738714640672437851124635703600524967324352787131852199097778934108420956568590187253720963253675396800121097638889265358371379184420374767476225690791713242886488891411946098865722750517696688701107123059878583788081940388739299736979811813908206534175923497024039705713430250285035580172717219039239341868277833478812134902809863332756861283275124822994225423534933443131588280123567171847331244328670380030414190120273533327427736477346630679187243261401006101678989719291131476177930615142107681874022563561385366518142410673678481026673464656044932000726410276257905592132436795446179684399702278721608833898622956139851666378569069470838022377837393632431723940042552592457129809523195541387590967018044227867072137244075308482707336513303206966697411147708667996795845447504102230526462851706239535084144105970289486336750758834356161749499142698400334606934560302160189793751436673029423771442139401313973090656842881161426707464114888154248574277533670577195929295989962127988841859737036550451147161497381010080765612787138632021691807831366293880706420288880296075518899974836434516488731638565838307590303075060140111925083251703077072078790981386166408688148117330380204112694387982778745105246207453405578995648586483484133692045397957734168674345020934321843234055845421706981385061036801422917476396502839658676058091041384108434479358053857748413048578041305540216798048875649199965588992820099229654392457885872966473010172406073077351302258666450985882257113646683738367215922420734165549387503123512289820704779974337149012476139378672884172697403020566586759322323277549931755002501268032853853818737573396364918755308349576620098295688880377709796322647025000631576403903348408147811064730876345962560229780231256332589349143023702620211866575583135865199031251725097920649542196946053822328584603602733741295339176680747615074281342338755750519642790208804498824978211324649655294109420089117473984365722418099230282663740037784212836369820446425017830277962262603439222697295515301360652298780860901426954431660126404150592482588721491996692885757212918384085134210490250377968223855789472482427288905553350811507745898231607359362743144723600325168018509822962134437816062295273226956683817408552898484241565056603624974382329972033901829003906059383221054106116647970610449088752802031715097508081460099974812736827524238217129182355401659489296731248810666498239314353799105793123641989212098458677213961122178001935703408567208283248561012075447391486374736962270036598031527910591004772674300572577471526385702606666425318127745474117707712936730730194033314906885246515580739083372501288001404492328405427586393575223420146359115128466076393478282107779987285537963449820745285786519749038081299532152631789335870672888943344062326575247891203297881691436756148903313952249881898562912323289377416118583438639354475818768568065693290663991460886658410930482988618335985470780329021170687293868238048000659701342133075450222040829709401845541535373348680907137449842691947258624294349946968652718819663134449435863785465735319358228994369470537071371260529008232626203015795861696181742444992952149766015854113824339795488739873488181877380186081210615019160697034172195377752448275960907300813417709139883279119781047089664833740183664151095602989569294458048609189117520074718261584991564474901811096999164268658472883735756430851773339715065418834054001574474638158653996065855982410721159870177656782008678625707981915513264078442000856418231184842536046501867927825375011074767005935273525900476426048863684958246232773815168883776474185699535892659803879992528577988081497595333187446258125759921317876606620696978715560423159241870464752093873589320101186346095971304875464150339369168743652406471229163236215486049832035248652947866958367350581206406340503570050700549043187578728023735075354993570875920922223394466448006880650870713327906677538537610189203455659016270241842114525496307644311069637745665011673777931818593342619069534435841181017700691099614312896014612204556180742477051822164894161094952040619220289441600105271237597982357668294494145022092209151081157087426255825644790718259003081965976011117839154465529099284108945215168923738661667489114153489529792641830110240528000460285485310650278787566577047321741764550811598039648180354900598286831704171929864325622870487722515962220988448086907737228052223486707499530895340532875983811289333539357395652119453800563951442847481106822688155576379980712174699284497438682714032336676533436210992429899783479918721796118327420440295531899213791288644013593627549859233728017745371599162308825695964070429584147734292953679688905869595820351196726926801412737683987324651668034873161330036251463657139464864086087673853136056937552019150490971378660815162448496014226871223165493532543926932568205918530669898505437298977123372840651029700282328788815183136699808952488405110877654311067995038526634626350365544721388260236022072242953839674368392932491220305022427945475333153833318572258904976622436922560608635994676342876026111886160962250003219892177450923852695090533347994895807276803624134449076665236147167753214084818604540217680603655199181272826516460781321475873249738371376311273380693879532302984201140242430323166650404169128724156933912270602532816393078099973977942029156464551783741882224164053301299363312387683739597913054386813726257884570303398440861648006321255121052861644921525330874552835997732375537345620354782585711609183702898807819668509283786426477640147501365156327425293417208764171784932619422130018300988692605211208378318165215743622443820663369425545615275861165778016021085297161112736118283392268843030873906470269264077828052054856622584865322324749025184854369726184268507122320278246480214835736565065746697806236943436425909372371474163906962209337489858583000460739551771231244027052206768290673468000858015667105206624165872662088360562363005039758619101178954681553933462523625287186642396430276618057429303888559313212253601147142542766733197169523650745796811511431872200487128081657851769891968936201208206927624448842420532110885684609989647459147510446168755908634089874754834001532469024187272489508146517056080901516257060371513233404229615050566950636125223168841878506434801937349547979587748906132112046250453240621271990213052214462839591776610280169028296059295959568018886296734373865261038691622586835811595204506329877510618087321435598231413039538644875499099589189565216457854439944858024566527784220599774050487868421357423316422578523714876375415546644892177187208418922576457826005794589711896275258154119080204588287039073070284544976621899629874638450230558053900395594127938418658590878742502723842235874048041346675388156524538708279100466498700020399764028415830961253390205713022164973688708960157390526626931478845516145475421624754955805586035705666813951262480163916618733632685927534388710500837158885732883978445007744896383092036796298446204256202609618823585700601346733901532055425414186521334205365793389236014828372799431568259182260981935688723536124789024961563641452023619972515941993763538903351010766203501147271324448245642711055352637616611025643808336309772903837969190957794936676053922265064578419210341660418505931321104294575508424802906245727881017379993157468325486111132280696964665774491706094883322695308904349775665902006730096751485099178993773409485899281249000536326036646007366196298333600244490709363346192320233502300630068806534650899304838652358526509791066601772707397492701813087715341461592286655004324358122882748754360774013773614503767191050455521533094254848804994101497238371887164068118389769519599904868905209555416533948933955447965538067323403302606074421438695040706691189467339078080256792349631721941035162614577636933434526960900238895054850283494665930335550732299999584578545409347701324253470923502891504971488865076972640650104758501314470301659763470223071388214853237119922443745772962191262075691134542930146616501303561270465718301969761750104231806647986322467992089131524041948176955523538722177799827622294729920727662733548000286017541531593871851686676344867476952646808577507488756394980287267495335026493354024313619103377472316234956869486043521801901667819504095847103778438011269751496162207420023109437329909608266588178846223828101153003292315995625182108786045826525040284017391786749273730888503075166492572158384375368834016117054473011907386132776081766426084924372611051153597745206180631522798820450608029832820622170097724360366707504020762564926947270189492082536775832237808860370528973079741153227705307988423519809341663118851513219271169623518959613950119493905318084400126951217059058343368218654070161593564429827950431961845833943863286221757370438232401700066607618354162080317923951692452331973108113492840878288495795238855963941999649868513606309217745666695860855131926115658759314446249311011921787702001673963209096973254617966181091327898975931058728011132242778735625755416952972261161612555883561510023019279595919790951401139293229488663528988005118826273439744828609716543033627763296533173585023077491499393565262441014573178895801074214082488032066342528064312375195883836148292465213937719088560069944963381539189322440079327829081428562683852394184274998674020794720265428068762233294557214343021586766657130381515217919443703993827611334133640741209510940182963991756957724602283803638924613595826547620687382411087659453808700878246999302251566506463928436753753001075678720544804702324568675368037357425099284444643994100224614634926576318133475441362703139255025287067040180003966109568444588583460764315041361510324949926188331842010041588388016165850519111447196831764469312733942323394459584577018797818274214368899776773002872584758848737485456612465380704462619779047032346822943400454653413638046314138335660931805405730155249803635856414751264740943033401150037017873934746791720842703194372510733786590426098735507831728243597218383239784891800989145135514693353768968774007954349617636118500927942203115135411979011444853088292616882805471358569483941988325721522761486388941847787908428011824004270660074887884877051212252291773504881217274905273965154196363696099954387293986255509901776081295923450096574712152574357274349804995624542486044836169219376419413815008505417995827169561931375261996437352664642452369148781778061659153347894146509465595992409015852653548346869498786726247942040644508757531213972855501887969534532555680556673705776341127697156509284683845595037381620861138266009037263781130743926448210590182557366692254871589419046598703475519717119526312625963266445453965473269498215225250576603989750605047471758565644193711972457198992804846475939452430527880599703497042709267595928263782002702627039856117552890456759835151329749744376672414690411985141096886209951737417292708028282250611052276233548882913644441308727602972423059477379726327305121411371763295042126114298469164609227465950580913928904171039202207948076901505249312147018807080382968293328984535708817110455401911755505117463879749897302973213351370308817386182898163123175626796983199237818385364103693214386443852130587989798091435800635417366554786834707870605673445499534120602517037785481328496190881854623439308159223483954338059511868738472898824001250420087146975053639460025073831281298244982417386392779860124846672214741425538180202761575629491184483505220085191902580651078544542190920404797266336276715790190843296883839183336972072976457145955000058586273250882806929443406895262207592039818210237967683649798139770272343341249030009642139177352724804471432205795056902694980850786595115156188048384777624197121747283667251770827632474202418146306284527723772740355701280410261585788546233508754219539577414331652185351879404312226342066190181266879161329714894632309951966649068576400451255149597780673691138615856589666003328615693708184208894474091814755292041933226863863709546242081286799880596402284390023008309573652733475118512283175271708882113637031218727523541261331842889776930256782242954152111697703226540356489443283518128012695912625824765969359534887793869812170508638827414352534624806356305728089360132882523051150359598511159452528485026579285043927309686895644585084907134165174748940383818789802618394005271376030285870856134254720669671797705874055334568730441087676537542379195171505235309370603476804657322061686821629853070848684781511328320274862287804928278496975027743819175250634700815924326516379876108957247673555345863994645698541079626008753078451969991512002354636235039238396641209590857258084559049401328745356599355508271680870860697440581494435013676438933374723027318004003832772493758289985387122956677199269994584699026293309045225665923705216030221159405734727937256659482196868627895318822758513275242430454174200656667530444307457180240613282037034409918967432459566326359733623765680529847644763260251298268644718830890850526869269436448472713736242329773591966852055399265070739484342158252681094858669857587538493415592471374003633733852695813729436415022840675810508532239799554041863688633417284927602071775531320303892830885462782003812777286868947570747372074826974705220216585949421286647267227429938416514419121330594369871306298820335048176624738837071446754326260284019925946227863357231901227137913401736554581149546964513625187611411320261210710251197390934510977195246972815147689475942003511708983177196096835904462531044781762398142799542195212555715169123654718480159998827166723667972172342093353631211462735061922092171426276277868473023887574201247376853037709212106418891352596836421072901966627483796513144014943018337738943284108648089108841667123538827875295007222203819498386686218528483811212058550741701080933981256443123734966395289221773946031472101062644397358145076702452286027069053047569512737946382620693789279936895157994548283589157525735776698781178412339956252164190673128514262914918108439940185346399320343656640450944996246719352452499157180826979063310650536884723904972586905390984974141541463399796539641776867946453656909420273437041471926611747862743383768228694874321614276615129481345895120554744441886914897921085619060876758715541661729028569095023931133516349748250842372194232826663163562244420808615027731382005153236915291221599365341416678370687239489804204744660058124343568635338857847099059821807148962641056668836302001049798097628147875162064901946017317406971878479365375445513484278831672338413365700623415915585702915639907799529173362036588860836294188593953796900102841879326064193346530472190526571564862992679863250345464717344841938075104075252956046639344125118009703058686331967823284397508062346881047888933929836922794831027256360674188234165115247879638178419310315184012965951442139891549548709381408925245951163702093026737120486336705531184554913843046691023149613979534603140937910080659997287649867751032596520100653005617873329252488881481641533505663543698073508997955767963567493706601267895698107306855234193829195662663598859321745924492039446502925784859735250277084440691531047194675991059152075997127228148592428916294617474640093750658770043636548016906076010985142247537521928643170827513547002600535829809193537932169315669749335054712586245229801470768226109717875247678711191463127189452069967102657136612390695816430866915152097753486092154655036104590368661968872667102352364172896582357437091560021769811641817932313335885627753786694937966992538044079832422544960292109839793635042965435631162447649185146383716040363924335616182842276962024341289819120557948215790942568419863468441603603381633089828634511339982895703686684306625220832921789025167415169749492242298022161898621380987945147874224864429231360919516194312049291103828256563787718663235731883060015871999143909945674221030502701612376095647101653621375052080893336777033164801652698509636572433504747568078701948883660151674467543045108656412482626338682134260050946685444659553769297921221471582736309388087005979409216856152782908428622534273273989671571222963438221446177410896844837947099059994070670428428398739655161176412968502947381493521085265729260870436331956008866024380976307122318297044088770402328131548931755916666670479825766017927534879263740737494368167246164429290804751346851057525060536820324797908466798462077348607278108080928138784997994972255152520070696936810316283510822848784260707919994126736133924006709364341470906510806279612525676009713714688591476626721307544723188688868326468826254009986865833217574012981800510563579898757863919716528670922430519573374724512433818609679712365155670523698855891482819322693451273815941283332274673946186948403557361830374827656400268594515346818926743828565931884603370207971385781584472684870200152034054405015376417069851285072998933858570039572568103946865640010481737528133878544264111900680754341383027250819440303824991239518803707689201762117031956107916796911095760503393392988323453184589981124891858957735768517407900788148856598037355571498862593862324765426571140287653112826890934621373551009725832295157423254622586494808804693615573140778802144804891922664908983905431787838068161088979218950864332521873892468659671805286359712385807457489490800678661613672875829131822285038953632575608538051692151745234584449005901099107456209953930516950712506926986272200676191821613288119537253429833884632144629440095955893038305366630902298605602886232365881300430602214014455727592118525375098360672726697986049457555010514769701797520163380360527456529800536673368892467549136283978964719608397790060012721093643901434611326570445902405615044352547366716555905139265634748308784032304426340728354367594879328122325447809142676391285200269069542487102870866044089298254647431934452885312321697372228338737528097840549284397463480572688767320977563551042652509968723372377180292289834419619630946049651469066473075393671917799516027520192479503347289349012465729322267265749382036108171346994661282405914223576136593857519975659330211114579401462356574355873627720434607383297876428315811052047776814360615601516979584412572442350505254264036317711182545621963386512989332019002154577826803681340335705890432795493754706892958397003291487513968502990224489890827392137675535898451814664604771687318124954030591538534160541921356992039736612565674782939264043222103483770540434640892370648877894395070192620203690115059451268581745082645359838820242176292718850215171013564238375282506718212168568883768537849086685053483117315031856998950502743305691232942916541887816634569828433834270969693984707547368572034575612267558568136010906485835070046479534760664316031674863570783633346423244387681618545165519991730850697754809861193118321631521562412105506779370174775607034194467096437760400024496340096042910817562447086305711425029788108304151610131739181571746093659441270806820397437282179242580197302455311490780414940181336177958132018164944130685957828850251118090534857411192881846164465020136496374247872798126485573847149721002783860837954505930275936083505737917051382136781491483300870414820678572782027118286179254620400813962292144717317346768063241276343972245202830505830276662396821504269921212616565532418892846529695494653809477416054489508279491902290176003687244997586848374229472579540786192377034175584366576990965617576760109681214100962038934821446204178783202714233474103859712857964826453376188696702445779760062394373313009032561415102277394861034311659135599981870709350570967848502257334723830157180908298231097137362915217241644228782269104443082340318345694514557889558878885820750577880180768295946592237298434467077849872940234434581704329445036321635158043504216873106666991878303375841913774445720088460121480416501965042749035391216776535171099040516583767065846632666686899558234110853951472214710337237329779242265115235141857313014835480024991837027222999622175177726280518285107903318907690505790613924279117307928162697072519978934293043434575191478870276239345343960607512803632055844809531889711247159718815410152820159741056497023977680845777378343535855105340700886689115952198314405509733746518784498115815801619986272455869898061159648469657878587231752174093065041560729706706231222623591956734882412489542173929007305117962320964423757340535182183138165005464240682431954994936220353748735733657657623725710843363334554997760257761786646133641976542558632084576218236829069523920586362650016731584672177905652380018971606998885005507981888151055401450718073826698343237109950226513217306092259341495723992037403064504370838857398567857302556474945108962015005042255720095650190909225678685764374290164451004758368990787536069767446088760197947322022564367335082816837999022796325570889971368675990294660669588241580295047380297023510584516639999180282821928311078978338575547856104428024132863634117764290490383649961704185083634832346137291332703200246622927968312167222190298351808189206914468404472738774705352554755928836630832714117018978333649278303208616567345285805434384433871428651817295322551853773268139120322497270974493690526848658536855198806057263882900622714036459172697891548837050448265046665815741554979020989684042264728246768503609468105087095541761248666603888012948390033236702069637605843446165480034700464454938537521224033190677066242583471141992985323215517581739302771540036433589416555972389708371159318367225503960954410410333659418213790143332460339743130526741778517132718661075509864927543137052638577212396285996067072818227524296080291431741935836229036179177594996016472733143118622542286721026563518407038630434296769706085823534051743606757743121758830667768402973648494021756344305566107893867889928761585391846172519032618431172538566842081620554736587948230267401205682391921941986928448824067133549596935566207110387341083648384577720220747285064036129029778768722201929817174135850216972647553661964451042983216746853040567604123105588942649588590434962692766442213792278372468532762497993174525676322160875456412084733539276573833745570068887908458234172657039774897730245288379473603824383256683920709438624899799128953949718261995484170654585914047355601061043325801629453023831788289766708806041279037646438355395278183214862311092689080491309624895710257948023560885690952841598684291343291061973018808777083715320640971074941523564197514218337431241602549213148118354374185617916601594556481814376415056833163267345988259175220964966987668753891532633034236102567901582542210880972115340134667117558833106848438238411980534018327141220619305431477648957377759741551990046830231442344398515055114297281396094119944192742473230486057271776578284439809533955466838738344164165790671639207030049375337679744912445632125061556667929279976392138714148621055006434373552850785221338344692965643820056270092172542743547780879345613674391572787838639753934616188106707928390483992129659109195417954322791097464260252330273028114089723792723542829638872166272574671276029216335888569866072316187497996942285113065549885311922499720545981670207214418991112022966792727819092613339708343806907198219933932915846450116932124176824916451265863672981362833869983801523132134280013656599927521838066613244118139352363494131000491782416791343764605823624314703581836827151316542761461888765082517114005060158995825015484526423251053897070358917650240161171842376891234886217033794311092994727616883782703498929460351476838031552173891307187144895612539539849229006075429681790408014813356394102214593719187436190629781184826355689146998128241245500084544383320623385448951071817075202676148681826267349624776607914701301365747696483526612411113952989560201887378948378574694407895041677544635359700409977762161072459589273412754323421412078468368519517628425962822251625334003143480374658357888724478914480490261337201547958056391732609779044898965979835753161833441127939605263185915810329912135549220223414712807594061637261275608854605057656905916978937204347034267693031206467836808475644005591963564671497737043623795460110894867608901932830146211199526332049575115677444627458323725383311925418105029100595222201150900788292925386823876682461803321930631992291627024538425318913103854389383205730528000835143143016155145395716455979612440635844552914867552687697934105678028847273552207010646401591296662831488749515796769166013912103056119263040767312912522192250303752549768099723703145956329495571595651056288840927567566431359763164487516214196245328081222238551357182201593660587041506437381354309898514812863479694779128096009911280512581238169065842928330725223427727968110259469972605218515554059155163968099624394265256394675518800207540549059795615031276932053131672202689729053670582112939496278845826343109414563375847557038633627010747140142170145094451023930265866969912989403892592320794075642852918939604318509968370337724359071975528728635057636989170962007602480443565275125439212154493108421371493007995097114931627281875776033706663735403937319209994087369315608492609282006624649217250125496335826280818712371510693759868995963568921244186968794566727021220420433529344549340513403920469326952572661541137567861298754204214301811728077077109967344296533900601577293055949924009523999475012631344270619611551055104326015383225249837591853944859301916976143293896863258661763855547846732154974702061493483995576294536793159405407735371269865157578654721939743062223939279100948223174365726213818304000679628108260996295761930482456127503927042111221505854964813489636928208034050144231798838101049960811426644232059204641106258600049529059703870030840122669259458408446677033326164538070095400826329401232692244435692594755992598815008657750081987404182846396802497912191996188472294796285216509687718341082161410944961231146001433067492050944360203407879102714409521157205554373776190539730198740379935080221587663482489686422120848753683388291195884082115852446042808563098000915760916757366776676687521956085069265658125376555019702561899619294460873763607659446609073020286106323303645207115580008863670053658488399543549352954513172540675760503691415719889590480956223918991060079830351273430876899696693765989211414261820901855785925874990654320147613380732399865189129658908211162336984697114890646723774649791407132356732565004745238410908559811847965576551442509745462391653772494573473007945672271234184757473562900536409820842855083267271267786254723830088081570132235433300366594174892594928392971040228489092784253687414730140518393068249448360832696970566643055075971947119774214792010345967842585176409962030655469516916697542410994335630362373848400081566439422006126693611201217800371240098652468238612511043257461945223062276973008004602174321500867573986799404325132497928943816696971145512158180635076580419504858252816067405816545955878563897747524723509003457707761170056644430672879417411482985924738518702433146584767660869029086737604580495486321320390702874908027763066859798019663041891018833126162019109412806329472696860458403470608099136670232682724058278444688950884482115560561146381561490450190871248059470413780453980883227688983644383986268668766052554800710630721414091720952354205943150596088562061753222162972701700927604845184032372115413143380347565367281958229163468931107554595999747264525053034873191228228402937545185432228391050346628845363712449407001651792667634556077757086844677655015337909801081508132964568086679338448062677473083235844393111657391176104608312055106573937757054119508920252047636151218328415224032089579559576184839976285622163832496874505851490409091606333601989617793941516857006469042559202235370229881249425115769607148422162584600539899956903303938290736647745035436008950579060770568917388427135308728755114992910626727375520082447097579882509891784558442510652815943519805879903111651691800226490909281324388821092983881358254309593835177088650238074119304459631184218139979009344201979790049536806594528933373866183497659587532157187643251664690223575535705010572200394408288568512583344750309221774602159213914917843948916817155839327471993403288460955640047216535617095356048417025116111135318072416725656159032251163533846037456174170945834761202388231096906049614046527312730019681828563723593647877167754275528620587401440892590787633672060901590704051380321902744571349403855645520756161716758390384001711454949219129586464103108552428530512419908119261212080881705713291275546124655852505340998952627974527010560960377062522985924555986396676538800294823077506092920033893930552401247906736666783077088846067500357468513508603714119465132746794956862806926115237818878585408652096147126129024212243927855831917321629616774629402825269416495255048472603834847963523843641341326241010049046863985059905026150308156702525048576220690450110721672601929067532029627444219035326054963327278632909509098459083051092336604428785157256598427811474787669119199642721286071669636900593990609074521819467036717428842110155964775881803701498580992470247963794558478118905513889840917277697682519331011157564548159669524991131146083536911692295081937312316560883671691001318262173143102621350061765715129431163904727826539210913060168891444170331397416270887340299597113200424416409575985778204065880988925226919491153655855650756119644733421770285789013095189051477495805160400314451823854168274372254023984974570931042960271878607910882976114582302986054285377251874885712530917405030661030460243102691643731140640751761378969418058999427947564045791907171969772410894624280146168184976934922119880438174367558673517674488290822949791193602353248935757523344023163850095204557265605031048493904485013531327111982273137419390652165130069697268386459136894681359088561136437957137893377515939229200860568711488566635337956793694415725431478031969995894605157386515692517490333013475818103265043629690465522047487665454172569422260725362551918711517215205375517416281403075685218534713141549551264310961597706039400596830030606427700430986147979230702804717676839760170831786469757117257856714072445348550147331852880381427187560022856339859132818969705168129705686565822119799698334640979380439034957275171220472551850683466196748049770311590176743444820158242304680859479124464439298474481932818412325966000184130911267320990281430789190473637894203383024700575557809878350439800692323156754495772846688370971124854782305324841480862829776607503083688746812004101440764507132507861961666475129062235390872570219994470073867273804506627244703026345704993423847855767755223152007904459296454928142586158674461038204988169958282555371216574490595292783764573279175584847450957566248156934155397725246162174691343324394578842060154512067731657742528616618315101771577018261338316235414095187468718537054455100343082744604572607263247082742303058840960496977208716183770223981182858752850989091990820245478575786939614989377032518626567511972853510503564551034210646237715349952425961376500931921852655729761938233506832657120422123195595095850558307507203904423074555376194769012785127873984074408132702575184282234781430756752864475391510718772483636699108575735548973297789812121470315566607022017207093728465707761399718769960613337192464743670255923573740103619815705307914760042044422350519769777298843650759540193429768910845932788045602416527034571559815416757791166440848090521498762426490883881299617612004043448737128549364704878647911119717533369170025320895170679999933247260970031782618284083666869297105265165218271009324644589782712410611099182585677259635085178601711597990994480747961108135147026996080860159397857503349494649882507823771538785286499186221029641578273474930292405312364099965712122337651716822688490040093060708700285484004512352112190693348840193154881279488934665265426816818643303522439727186656023271670357610727282011222866413587003218820251932168876014334206462900601376235377070083871821216034679049690301769409433627439658938471775858328057800007475858965666250851598518479392317988204874841690513579019230645089533724385798209527000670016142539162038461768411356034711013723650279701023752282349740654241836233758779199259909610040903972593778626389849989450643473164063340523595968304457011467384714011941488881176590979650029921675928508214183574359247597216277999674349068117715203273711553996467877619223097612718695382478756447108243363078183229499152581139428014900341843143080810051296318589250344617170068224584562862090650974791855359928204412494443029902038548089159102696210264324723934250718730387201517746212637230759156831354525903696639096873621526640775139153782857377251696361296057713606519090184821614489396100585442586296373407000039170769304722657127938719802550357401764643486559110023492382829688609389414567599432348869131939738050293255645768818256337825267500170481855354357755281339225932489531301048243559465945299109294274752614906899275916260014670135424205080983961067936201906638529715569539768985992719108498223970634923725738621340645516662157167997136814234814654659946539531629193359839185909974729266563951074499678999306009508861825771266296116296378189422873027396077396467724545157223992229876275295567713491423688508501912101950185113976104289044601642075098666205486452977648421124772523740492710535918481368820888073718293887994609021021834707061267261981969871977155091042847055680804769742005104730633413126786223354832830826395616086415338643538016948425313327865756241359006864761264507165524802933492214271931819757633957235402822352095231007628230861008809256675720358824220963443675012028873295054156604523690033029547679461501291323329352843600714124708061104264058445973851434520076742539184741190132859557289018465276410045518515755698691051304681504436278044680855271872444849952771908740042992867075028890490536744147360368717714057414842224366288348171691630747054648805513980737730458865376446422772704505473112845017070853708256357634264450578214203422486868359896245659686790352286871720421494352007053270684037851328844924130350977471711533091484163458985796075406643648294523754507981953710447465039895856412529595810505739004074533321744003660283361850666785357901400694728125204455936712010986107812282871172227346210266275419370795778535819034607297616077347358819355973964584409913151623159671666385885299604949717535508470314008147681764990486514908732916480140297456591242237106323837879585542801854173795053244586690574308931300353231196092718757050664713424535285443559346580295619028360501558110460104268375959579291467538174470368714781756794823780932053860398982466035441952923964243878729403422043228165416755056031847871925153046099914215581208778745695974559801881987669217330231751322511445900134401160671273801547857960901314594796075461188119307212448986060183173121396558709590374106598620548745368286572401735145219383758865021274075150350445641001554363097139700466709078595330901515675841137199263230585177606113533652687492920727521735341483065901829804089428273068732654678140010605509269459925098748040294781180182136940194249819349445819318002372236129908218695791656366186442101842305426585384055099653627600690259372408229759166206559999974762624661818690977599176167583539513572009486010146394016377813783110931241806185290058044486596345240276280459965041918248179165607607825960673428320276988087903422817882769834450201243685372918897958803206164018818697336244630594411544920905233384218227012190616761358116535916915724529064546553956479787840565578175943971014476411361732970056770114638295101631509160021033856525981512062061956165563878688362566309220230160440347419855257890108225731721262211837852315285762723113901828038556728809231330842088708776293537918684013439190533988484861990950366048510648829313111922117461546085149788133053116420907375384578729085344851383722911278347499080099742605963889641655903361709138731368532164347567458710830982807875890576926092925641603918414950701208901884773394577481639895062114411783882612342820904175219884153332979810549372572477718603517045704163835648574772248901749718611325955879188014164158356731666442903747192458071140238482133528982905844404315217329305242551743349138804181583349095169122843532804055480560107184922802898014871311267145383503012379663991444286455049648876619821119526867042447535567271366926920322598898539370261811247032114930446865923656302382230689262460286147590910753579906073788603704117764613230789149416470290502317338699595768024799382153662723615251850719799783152587523509764364424519899704789136105502692936286145050681375477867885529477093799987365191685936613947997535988042811862760293902620579348151526916820006694231903537201205796239296641102532084249552212768603174043056024781084271935395398537454155672242543624592989994827056857433904297013115905514825270278974005273666733147750198658867898069390665249745794708947053085620764070991897517877324205408425285374991833489538840415614923735146969284686457365817363490418531730288181134784786641055502981778435428830032895723357773116438183694258816723768527431174651692556769070376125796473895530473285649667236167199662140519309502699353649081495310215656040657495720925626143255662153188832047875776900438608876729424337704165522117414412638307001794686478242460991907342709607286392754501795430980485935897651558714060301983635733783886577483216976396739730033332650016162752339340586470096428855039588897363244295502397415219988034723019619470687049364474438067625635208428001265819900232552621225664717354558639519046171282785854848047248258371822118415592597616085125510847287359121638813975938219151948427671107000356450953349255366986092663853306133515878708298962065575531073132258162687809574706334842043262789054210396410377877870657448911344562078979315105452330376757766038489408147690877652359069459348579761039375837247617081707589698810454692777468612340499650551986959114025044875677062524683818343573525911124740510396230247630487619918611921716665051088944512170267847990591250302550115665458747927932005687383325065160314812439460208773182676092761326249593050356155435002645996796871382884104292288122956405132941841903452385654403080397723224233465559442981089475576251245744076967377434444288906040611762918817936137526322288544737794148738434878640605392613853298102565325389921168570637654962248894720529503851767702447516800669305302951272687364397510984130485090707978527332180922492951140527821662924535868364893736546450160631371696127118497216849749584808801435250453131704116055300126616894376457151176546464662792688389647780385509552824648672948585992094966055528014762263371226473261826369736302988898636369700461362911425765400113321590980657898626395026161996071366883052939957860757637058915996802210111992379007563666442402349802348067112249599825286349241814189915224426855924248816236464046086572066340240468921631184007213614439886656712770547363413127337060969520783233855205226023477652490347064520257638597027040905342335193878640903950723467577058500932148517572730849950065396356093325580924024848479412835787907885599665244385799404418718728755910062595339493048259490521845823362531421574294182055825226468015350343134772908027971591121316194921180840874027686595398600171082687429694483432266393025865629608146529054478385596748576724544940756315574922886901489998139377987861321174367316653821529362540810267135928184859016626568841583207263796282836206860733016861428025760200878452716404787382184210780789287408311035245674331380573648229719018346907454914379196169064841378901980357111260901900821646350487426050701529163221194017584184955729076308062316185178377829701161603591035620511946966110969392972866003178217762040506746480580044891094029121135978984701324280099294407650794745764138075430233331427594365116869127527611980727152465203751722732377499761037540181120051710972622998466861134628935881457500021221919282504210401987484588505520442098762951968120592205824808393682817133073655826688588691833366549325337109484991332880468807390153226951449078015382439033218061418962783598760282120862413127161895637290849664672450014921337295312980160065019403655847523933461679039473591748725645251517251842624386424283729803533296064187492820480455791401184220985651577624083883132957388523728068314317540761377931789103839013834912207461140089041529978273028024287237002131905662226653676688728717930830441412126937767174732043481276336086627332551708408097046969078623153396628379575740635342066802825152312791224253208431789475869454778056079986937557548567925714113995960108786304971438665018506440793312756103292665083150957789329962529748378614578478611148170108555952970537045293510804044027025200054769284690133231261852571874137256188905704263334244940727189848432117923059860714765751892278314890345627934969641192344443839231553954111979357814524574538511960529770262197846699788444179329871937166198053243173135973948087901619920099465045742014250783659706597325495385594995975013776783837022424126428185373005268387733763476805918606445214027188185302329670224086071533825141745379690603459357395183150228092278820822352188263144949182806336101679538908060524431354126989390901015818480310041208298085684405023225081776984851841050054054342572530180946682673754900487494690605151987732008634829893874870867240314802669992617392966118374336507736460021319934645434466998353970439727721446824414285314314384913245463604840165552592703180646362329025707047049369418113434329432110906019917674431328082371686852299768763807960848897992972390596205273657887994595987487636936097302117990609850482612969718366170116198456065469861479158981209416043927248884961261311276515534902491423505895253705415364497950331662791195144304316902410613283827527304681216420872534278471992991439119707455245077520963563947762212918513892372923724654654151809301710945311838276124776655212139095615528048176946809171592386706584377096815949488192030893163719847669308370268505773773604909293254047393712129789217343651854370560749071323046513442138349713687785763182479738551170290644639453367825693724356513832971591517382682941865357491338294265387746488965480727143933690071797698303967008067613665453464254696129527479987051445557384341621873592198159436828334818218585890527155832960808748821330694520406329223328923843367468334496061214269172552598352840592586875223697492734194243321290467775561883437356627584691498733224816600528247288495994215691888060969084446918994574126869028467524824913717451972614457698984272541162382933078595973474347067854684764000506946191418782948407715262654344995876776491240557292039876171286037541236214202212814928634234062252466962302126390130419532079263249670705420532539908479725370084087301613162010207911953308114982745060559529478754783493402537617980301700686993469175358705067231631446314513465798622555365030190591817960157099111021438683420936846100346431047265613800950118033764417059088425548887046735412966131316336685901929222331932479046389097771932321281606352695120404670288457396356516044787591404779568400100753470888296907153180344520208674780375121751305515084095743831346718620421090964433792064137178445465911410886831094887299740464488060508697276183252613829550997770654948481459559370134113184117890794802435367083519584045662716516783368024915854584609301607093700222790929231574121697669915639739797002573417384401675762413604829790005022815938558709046145450778973460281756277413187815831351987799953781286780520910133515503965710559581878095760731486703288642066326179125008676483840533360272756260615930658015225863335694750416393288810845585477415235221138932478154300163742204909542166721961353205512302514327963585868051203438189396688160628758042164029800922446362345190470834216204806020535669454994418814269511894895623161433566005500561810015935437214474188745047782340800349967854751361428668046902599218548892772587495442265071802268616871363854426363795489667001483160322468251417409077111556253420330924125795468964740014034964995838313445238621123690437537273802941137381815060104215881618722719951444785145315477685367441104030214314539426405707025932557455997816113706736429689266026925485465019980880227019437346651953926879878344541231362875785570309065987655489517386367672768170606105476530015355108847764543837860302171210764019251434400787465088274022958877634088451798272561473744384554014392792240248880167854824834155024795556780781178278250691466703684224263197142400850254446973883660097505352760520585119356519834475595860953559585985768975973553252440451726673341606935552181614298340541053045893797938221050614095951500754148412338600367343218165236969241428608810525012666567877539340439493325243811765048407167805940165076722386772953632214379444242754314415653869930721343138466513966293654955390659753571429444918746158190535396118181159400341796088993279326027118512923199813047441649974705283016284479188962042195938770010777120750861225866018533218989253955415234511209218385516316072384495136668932434312159683500063296250133067531786069365693835245818115188997161258623880161253919533722720990931676764907649422083140311977282265477087686150825629722089116442497226965951117838838928202044094497442648143385308947035449415992023778262572148983611920510076649379093195962574582147033746038092996932163392008725915789288824093989405730193030667007025333809670668215616028308484475217054386162719787107595489439052798436077919963398375533402070530195177708975880462903556967993286212107561029236526264057346767008664747735388791221331417462707551383035790006087948495660109821976997118809515453001904024217645673580341464500556169208771728593742802137867572232251682503660047951883636162170715959267389418689654886853075374203451133959705371857437963192903109769822413859088568474492815057077873988466588276379272134235226820089339706694286463709364471731789978865050181436394831031658232410066968955363817697532527640037977780336897805534734667154414627613241027335480832991166244538278306946299046304593533233648661138787412617029383690123999054646004046522495150278445924134655140189611520685888167862381873134772645854801336388748677954757896223784442279155291645546882469400064651554753121286912704612542027200185237464303930370147486704225535760979023575671995176648938207319333820134419133605496085512067963935351823456335974216025805273141643432434105775637608327166247071494795296581821602451819761097412431532869783780771175148937072862043743986716942104443242207475611771497439794887322605937540418337072600861236146960554862691402941088852022465475864869617067099489380233892499925385255692467698041283712023181765891254812873145661438791803943241413394371011637733624001966559933744758939481303434694793187987949768192993988380112458802526609463612376569373042302381490819781638340695591963819528171906012899318114145368036932339219447895826086743418173065873375745248347179152804872748954561156162359112321376937988063532844791441389567480018250397800495651376394835320823926360191900436628579524807279326447005830025099011008762319682003322309144594363342746263628441451619539572464759422579209310172205775367497260289119989888328668828013138473603425234232683964008027940577865184459735043251902885067340637959503279695883152937784512450257822953648788860144336123027419105073781854157784708717076697168664904678349175152072214435157448017658782739941232796268978854167950982731600130032564316552546538561317313417667582323671433082129052597488055681697951934453071431571878165219630779524764772711925048021466314183681517077001010113234777613752733149389468413802656352575378524496177128901719319074942378401633173319593388136771033431855296555191841887381350852445221005926549598202148432821785572271458846423122072590360753499972003718761195504875288927738100460759056619350760952876207500770854401731318638492102091409315006835423070380486541944917365713498964441225537869261702248496561838088601559259563040586212452177237077896930211501790863910966932618736235703935578846238383842909130144775895712299804821460767774155225338629779365541724733590741267282571838945988949353701514693995293558776460170897212741577374632992236923919902593874855765855526420951150756856552422915908378621252356627534508282559634160230751027740870252575489592612937725090032153820483542573091309052913941042761602909417991772746676781838344470058407548696524435445611481357818237260154789249604147100856060644677097441414983288415655646621101282921622452270684299329169902463965312192583321866822905144136058132440949304239460006234153366375781250014233732219146806529453427001065263904563189302754880390506561963691426767455318543019112811626034077995387408013015391908914799587326488230439655259060819477727302856687346137163331533646726436362919717845945273480505624996933326286903797971902525920774414431481207916303800346040080130632241569760817057251402588531622424971447369620450231134814368744696259827150569948816132377850270512116615694355432371470642739217455312820078816367617728816166930953706699299723279444119788687089580861948383297505092043077227866974574898085037972029265213106039367634858603948861627966459602658748099131498247243727594305762203639614335777475060500462461657841733761017044867185140572079214650356233923582758088408656187748760759468624907495304739535054226507640744215114897687851668810107304907495828528270071005877678547452323103572237140666246439993887004054313275376672342946890024243943249660178753112813806198730915184104523538620116248681862035662309795348050795144170860601537760504658279078728982458423725756796790509329225045123493256760980474813750111630848358615153030677871832594962108553994506407221135473918139768950834976795344349488435260200403834486325628242725719316783870217216314900336716865432793077486056767893939031022311336698595615716075827695806971392927171549036299612622552051901291711778818243434422441884330683917029655510352926721174217370000292199119752173089813401817319142553561426649895693276020068289154953563370882412359183017963463245752579934680410065243476744497129475172851717926045486499747882978434835654928779045349568753027410693317349336876309335307551278013331579723670722997585302147001731026617328959596213942726668566468953537145761790677607531358265157201403226462416146034564159096366280278664302071722565036889810446631763537677913806358704345947898340728095744185987400419639932996907337458801040283837929553164429922190937909233286088992115880240881131763298634456553751099352278110675523334949934354732838258698432350723467811026697270353766646950770896024317544595640324414699702604648214869927899239826563513977009901924849595703731580256620916090872460216491148294973159664646729086401242691577389010246388379632067082917053343592347374422128894365147560216751225630375879168774854062037597864541951413352712566758456694936399877842246792191900993735225928700627423373722825816513547344210273469155927008426770803240838520862659971277663534838591453916729995089956718750429333433270179169713421784772530688047068594425182251779728972046799288629452469469528754641064422262831632188971120023638832835420411114971430304095806739431501843686982063882928444473156558110486214544272868293777902838502196264628668917075808493235460039290853382967003182737070672234356307855633999363568676375119875846929734554700048158592435546413066902720428377685460793036071880755324108558162106357072479459994084383770064514475317893711176995725861897097095309526956900380911689834420670206125581052283561898670853835713939779667141677751253670968433654861671142428169168922391665731939056134467845033638784601850444591646767644938031353340895687335579832511597515060122044853373613043970029008060103448874143430684749418424242208645493331216195020730299372665068165915784979528263181816899830960082856492108928065984406638407154789245343461633247896294843658353523906785718014430661666673963592308532892245484238371998754465857875735798641782717825749584132171273167407044396711636304547712928836245228085691839481169594351185120624820844980731034135543465469695264129970896440117345263897025348863651736201786842578176005965730406573721244015865243251075024355192225289745043440332716403174317893984870793310956264645908471003218782614271807940532458757712264750090440468345740982170971444718832793634760998293569105462986540847760006678421364731377859608353550679481410567116911428159282885347786863189940301235645819116617937820817800122842560804611078061283705204508291812739121427124542546573073858108512466961918166704944801810186032454965250450496732313633731823698151584956056777683247552553446456673421145712584383202346988793017222409720785003278876632788358878235951104489455006485292783715094030065595619685039032765612764171687642624082554437585272760880575494188086325978395174536298713625399015754348613575645181421005603595885941327310087066385131586230447430744768616345529805107045655095679644094174062057843953112378184632443885730824575781621587641681329787323740879461478070085293010083383088784121633439733371291170882092203140142756005918016858967757961383039812799055018620777519935641422362474217250801488221466862214689060454397108268438549175995205407455066886753408874213527983682180788653628074392808875255079579853499016773273933995727988327062506256511498486798984418260453703999051580675025471433290709981973302747551694417184166916876765615884621488744474817600909701494043057515379795316585172556161763981883585347201948240293605060477801116503129045475052871384208580180866865316978370074909314795583252102119109175667063223412112442205021535543947233822542104988494780985444922654134851194931851547771150840283459961709432745288212608163487770856051876677168835107748158454325403874030611723296165114622032043903676379550404678035562937411391667806252902414689605895522312827516300080839624901468280580019992559080061181444264693790872140470488814899339843244335812300426965081299441658716955980664073843455469710953455848027983924848413294957146990459151013429206524692915498184203361787267456287747845640358830283598264395888119511600030676198556374982585407484483368611732781109043302489273975092479508337311110984459613520771543327641433773562009703232999271371445994115728963391300487214530306121623842473989776854917912790891501860126114682445807702224677429409401274236959252875939320684728675189367397140877093601367644534777714711158448753248257144286516683684326965607058906549341682373859610709732582058211778915330514187522418700419439095339738011107191888242085452967655165798209952932034485739265904947484922047127690284656588032571476768568998972493128192095751517765521560389165915432012217868217996352833939237268148920316553778356639098203910513679523721633652753285324226601521583573583178836803402305225811550187217482883330117478902516676366582196065646736204954166653150164679488720953208342756241543655126013416222295529095408268560451870915128121171210228798087617256453071255591075988750893135119421165450442141665531063663855251212532748930753244390981094235501509083574693932141810769210373027214568013697259419514141944166932969551497006648618094891758937895163043242576239666387572848599649906768743555342594132492064647703924954624597510941075685905583197307830139369193733462155659249945447172174756750044165264128104097231716668802627985437969657366461089984618451953924616169525068009232067293954696032617894768421329730716594692276511083024226379967797291467334333207512756270682811265288369085361332203039128056865740333864998492623224671256807199304846741196716742096093226279211732847425812799510513094696866593805290704355972447740702901855634683021428009966432651135281802802791137690733660476294819498521362135274143563631936870288094372412734574100327411381242426134377940146594970514278100645031479547655150364711838733204342393797728034818370947742561954245524071488708509517919705110759547732981508211397356203890930662196026609136826405750570773267357097243336164611072488004008282627092696592425931919855705950902522399435777105277766374941278864651481494404643584980758685968761856692137060327344853239414542815724425032879739553770135700500230272646894650281364621448873446955712003486552633114071464430516852606240707476823968024270725619342450105362445252035068481496245014817009063939564245155503370438074625815356007093125219622558915447378798754878053590788850535963122826556152669055631300056028770904063550976824024784917944701463494081379311325375399151616320857550770101537027207199227405333780051947016475993107978525142474083155356777899112661353543590493395300175806485348101603538111484312993358215580173622005295947862183777149045525454549252470313329868148187721349928718995578268513600962027870794436479001198763580529741683432196114161674887779146635579323375184220878933662834933065320363168466623660631110115192824002606804765039416143490267079152358408231375807638342401452093370358443891633050568456211763846037079165678146970914468857061326911519403487180802075284255871442932244566154116824349935265945108540632145071742814336780853596577587978536778389798975493324184649502482081454177163949153755964073853964034747741349526632701766928018434879046878472196817864236525646765406498323334443061219146897906639324334739501740932432391418923900859854008788736975222577621660655422809193220949732903334882805757247924851342540486698056699415202719976851299635135810322199406017959949235835255038952877059280816645301726412339246521353189187130378545072084037249447553099483004947575726738694777235721301805461584871516094742531702564714935984575807638244166369674136553932268225437783233726202010916889376335842045360808551888374177656437821733868370634659319568844305835202748455375717062989782009057109603075404652138590948931970611037114033055602846035804796917320392675742029623931181681807404649337933042063810154239491885150071954674894946483344431584843234748234488588308733207675593124579056924688855431536970105261054684312109150104503613810249091462401287896874661742741085974147692318156593544150477166836366953257821568372735211467211206854275064172801538222241680627552728448076578724180994232279944451793108814790152281874046561159229838441695502621238422636650425235825998326694712995573330023259951712502885116661553823999233863727698049286744920426860935219293888522860479337248881477927402616544530994946706025910265441938982578748747588456514795150834386603650054354963019519157572350669453794317174518269046736073382767607973332701261071937031714833476123833367510633172452360071149584770307069520512926037253274543280247855250485791318251024681949934535891981971417584335798059764396392103286143390274844999634915124982426796740406230531954883962781405700662926416856197837043104604442104606032622916236458903116829649036669559961802451520188524974560836160697163604572737728774990304213002595320462421491439230557360505647525555976153875501303378113988877365471178663821724891990372178193503719234549774399843683682072189008213655241386068852419269796521727984265019136540768881490288319148647928528367854904236246450078569237795549986832157472443858332026506164934389536192667640915299026970280242869151337013291498875243865386349697047752371553144844751440620044627608940382326423607894161868409851571358378651944022523329718431370205637256507616584652813813645667766448403155678738088811513172553191561133805789160677878866107275408410358350908868792179695928627475388145849824191431456217265840786811354644774370967665808706037134777400657078554402379238509988357263953332490716380268465962596362006215824533674950055457689471991479806529097621711150433507306784691467332781725886692813210330210113571235562334850579519718657754764467628502758843064358185306675971535801615844546203693894074433514817969899865772762678621062925705495724678090259951624008641105871410877503977112185129670346276574538374056414143920075591969313113575578826219066265879813123731204497408038229101630830686776113124563201385426613085364225088703474088662766240008590744156833132670012930077647777242547852429540996977816785428063855250589505556764367832013398864656344354012858181511604448488859185310540197849946211522887108324956597098539784753574905165051430237472828711026877509822552916935480025799239892037957421106306705550407346715625728948680925998925028573578615320298028669611242128079700993775106733151202841005267790123167577977518607692066996796994921161370579341680716646444812158707249184994958592370428893749692894099927995541128812127670969048064183271705216318630666279248441719133443212520008106062389929812020673583564638332353874442684069247483131638061560370281902599354411217566532783968867525341548110484258147185184468079039005204159391240269834905810822080271118457284928336442236099617815516913304328223341754299869212926755282307364923065200861187272568919082306160416002996593883391760915144538595776855461087198707441767065970265853874860475586729230805646879975841539136679026099338206051580843332522509170633214183144391034530227877892082150217863770906594275055178582407504092999459856864817651251000109262317405077319172290075384064725031179890144811526630918665873636452814891834132335099279558633396135554118849978302924048182828000675745304805085352945453464026265448967126645783091709913235623259862803733278417639848533988973297765918644173042076379244215633875391823461382185729811791335938190969957892782963553772966066597172309196434774154707336730904771824676339381008950587566570884530300623659657790852310591524014009871179992792890201855490313820582095732328839293425225692224799759202808003122716503217594392845129906157137777228257884303062708419815159911831982175346181367170299746937843168158740265961360745601192133477206554021595604388880826883747729582466985259410469176320505903749503366366611710815352517050264775719979062266736426341233513380084555464207514481183732314114782738254643075544723428123305581935424920246534950752739440911226685234784688428242964182051034119400742542449321532860402337054027704997100198151040395088190315240475368789806097516893410480669949482345384121506616726390939548226975236209685960184242279573963236602055420851699077575156310123063765403267033575461211341758716097617603816873945717915352196648910237241876886799870083752147934873609779821141613529521406859776879389749563656552950697588758393746738007539899383391178464578906261331861009293027791843225639661095805810069775108873404656446352060508829825805250519674155348668142803025267940908972655147306724424155574952248898631988170125558020870917605411034814188317698746652372762598105067838639696725180102910554293124540061448116254858426628030384954811025188118065850563348159017264669736514734600776975502113281271610003202155786632906472513832285020999039430312934484060601248294287038615484759356705307550306712889416733416211967493747170741830894041190459896695708971159302527371067334295585247170332989682449427117800580997337442018120524312177356003246820347857846199522149999669098433571905342914406281942021323792551420972739418188876954148822520768122738091240035014194402925391175960816744528315001292067077759381904918524040273907997267028934022317647622321715559971626440032230984019141399465081817124113523748994800941023693152540086562682008467895366385318244840381253625724719836506405642764718612399787028092602339550602179389257973896455449872796442555404720559356669960534384827994839887787773846136544103827751526618781830122356588970172017811229185831476797218999564333879460527311659780777770911752804663339337801163463333191797281422575489618237954408879400840796755203073931884784536991939681895893882704264133913022280470835818510273346099006715655395516139230286935692107805191394291851495902508082747969700236890332824549323827278288258332727241744137013746387719870154060096567165401906480999993996184611927179211976101120671906732776770666155625399304354720427661040856332483470668153028672970974899331361291488467281786991314873429921829748417426885381966239630138234137838477073474813327386289001376001143662106958804692229339498728957621186050461882959795030369221210908692509190097842329537873475736434086817198770167005623475777433606605638816359206374917809346540783558228784599134932006224773293922386839162976381179073394660373109724343551002154055906457981774145859050102870110118233615636957273472805756453246894664928147020972203598685549561028989163981807024885324641585995625857052588517424940053985986852343472530238799174224147420735229551088360720656389143124048419694581822219836905460895835674088995278601907724112382823801131292206739638151176771706545374118034217799062909476918461650156219587246761381214037427569189388773444580956480784402283759287931023634032056488275183303260607572672770183043261763844349005647185564675345373457766798108682181135039382578296786063772246366127320597414138026311648833791842027062414720582899483235076356070383160100272746317227634922398028339494167319272751748885931964911504798389856491870224222948361012984891036336608764471812823417635250553492116787992627546306669444105948451986434406198955140911144740376267560611678108910278115454664886622948919440763412518155244867901835258449399078167600303635681830567349430776330422257846299788477263074603528202003966510194005913556748354697884002562290306549490055363842113913790043619663127795326671296887127367410885506895437447061466294612232387304937732995093590664888026020989196961746133824512116215871475485491521891223371608799066938992647385683447635931372301368126804532670023989731960068843438149555521480706441635029105935348358927188136394691857625315543515368193094366866912342818346797654857870795462669187689624412873081171788750472758365854523829314415906514226645256574249694254782964828230551950598770181503849779222757883846854691682117755736660729390848508763143208543149480484409332223109694833184970151468650314270580741632868037450217541651399756390137065186023773191475744930391150728677014501617469359606468484205274091698377732094192852213086072604328676385746906094748528030837643646843526154236508753187142472832367520127354283819165769705304610326032372395278664781130454948092688343325967370310098617800981806182911353356744593311640994537837118491902073310305097030706552700650520875103891532250864746801169288654492744779123794106903018602266136770005857011456518579004297354695760087913897534066298670390120672486767437392319658013020751694107737875708413304625192222025206491569070845730848442624172766211887016370268268672695630367896744782966740066488557965947449477796808519157307247012435371160333331928984775123323971523624058501907826352558684942705346958158799247068194683595012478155487324422362842764300984719140375932578693761138957318609628672812552695850895271512964665153246261755302091294986095831964961866111675048594527433642056031329907302079340361294880333443375269170133642432017833591488422116559557349140784694056257707630486052657452965288060219842547715528394723193395535832012644160487051025594483575894821498888286964562560128903814733469660173078441820294809459110151996102054021408610045245282994075567158244902919040941111573022374072164424070274491851868335376311058750651302423520687871776955520460888844855619059777590160780181447386793641619894018535075105892875247004499440117596683421910025488690041576479858321461030215827799237960956498217932778354207834213380946638476921690174540057614517258175487587361133759000807266674288039617262480311256082854219941018898157966846604155371643814704862459268062275953509893680757494310568913387983279769516562284141070325734394967138434774710113430932154202044310716456697459011345270091029885601764673763780104551331203291158325465132804139608184547834164842400841258418458411418815450239400479529045918348519652626966710944518725184676307770420540771155023540145699262861045550233400314924352927025926420647459043131931500601283140779954604134653965166499306890541522294649239395395364486796899682751378229349902936132731451811635625151708937631321265932063370802900588821790649474041163455937517798439839989856181329347613872646410462736539746954560147650331901441717027664799174436101261154182533813089070310342013394584383923134342311215078973871511346679750246750782338519728141620014607045503396676057087322082730388507430848258435668277476255147042402620103214530415067163764672941268038371404866307390157632155113360274845652778587662920895326380643075751445169306965354294799898124240058956012472729675802515883181612259385108858375449754702615835417720980039515231823347384104015808385102978868251915958402911507391837595422252860224741064553009897448523411366587744868636875386380679761689894923498294513225321438766506822486739966078500065818327370746732765874881748218253704977597855069550526043561996841482087071564966443727205981462591664914357970146802742812208119438312142533066187550961746043536182090666310884021367185313979376324205283963702960880477163113982770425904888669257263094254683473971129828740756098310866865047015913702137463732755871516251552464415104545582731240664386470342747648501233276334385959235624956377960384803265090402196959879584775311138492386543570655252710082149046673793413267489888140007984731117776942015925851951169906331481903504324027505407770351375405680250050186112481969389888977525904646954278647043358322772762846752422962069894162856785333055102559451878818020192412010913093440594139432028782187143754321659088786335326409474006244312588786747485239262427638288180750802587500713105129928216522215731774479243863659335428354656475013227894110930450795230238681382259431663680370029209676918450340857303205573062618853929741650931759819622300324860096582095595855156457473016799341871277532209685298408983775791105631667512327782109057711336029191027133058550852005643606591187721212280947299365249946643296168485500257138747886849540358447295542691737068722133823347027343277027610627232158371370198244703303386933258291646188931241364187782493860092928182700693133131266204596683839635081371880867754698173933936215514487349661598248591635093046511663344086336663363973934575264757067767683964003076462436960246134437434606117378366521381608923672238092584982961758395191214657456506859349949972218732530996078898739471111514776676780090186463582439016282591275705534479585684271500238343251008435285397303665657136527674848054281555301039892235489689570310863651619893502771027989378038203416894266294525739163704809777274635557963588694455260184022764086984634809887992400326723147987109885581483601020677309962033219811708715354143238371731469346656375260253194937927937536491809649835929266330195876558184568336022044417867799669185926882921999402006068699761785986446619632851381338103252400456072409904555817131586940187267340801280525537184250713191603023491936658713371999737934082656400762074690909552344269151984976308256671987768344220734853563504506372665481206698265162755393008949849925513365424975107042441706464495565752172688092791372999837921131187283743002298242238156400102342079176970582911796784065365057630634348392166797264080692942125131063679691551151857182113818896203617895531783261629363457861272058758248126936766659182561542551775018900716633915431671606224220150838038864651023497238727759648125433763330452217685408036271427571245826653911855662696172974472553897232920741446285559688476469766873013156115899499745189623551004031081304051783757635051395634403581552989753363208954850269304110085015874186362623134728938835173180734204655230038731000442957753290149061862199952750294710677689231017150687792882342847813669199673619378445261246459371298733950060993361126662703357735964943122694686117048224581709533277578414615846091464981877445384297832617466585164541189277024026878305307512990291558279872193565593725698668770864240787086208675297156248019035868367469502166242812196244644902972637399095756824604685072361855831050989628239127722293773994380667141371218085640279984541516762540621711700031596746959205297698260664172833900813243532324774386932682313232245044982432922147286252886296964746157230148857356557635042557558741274341943339799011275291957683041337864766081660965136625505567376031918904867049247089939832691874334752295473250501051357468032022442943963099043293442819752942788973273673910016354407508187637263001936522364837708716689891576167004215160217356377850665393190561889565520966791593166559073583655176754347939836491828004450506661299871222662349046469319080282748812657754085556493286885572648613464847392653787870772702444362649877662357082433425523451117182112268900656213980388923100419717407126844160433198812815800901230794062940318002861333092688735630809056578676655026204550603058067230102658396169948788280138443232985336709164999702547770738785646185054674244471201659435099888828069745650278341133794282987264623677414791611427237859027901251314273981347131204841833971492616197594322882435936956516388870293280403994602161744501397267682711972847067086133029931022690615333833374776716714853446205862999275420622811825091398484463773033168018323008954088469495274342191117197818269342017861530597539675314519097765169612567794899738455422080131715457994598181907976175616612833366807635460515206690681720728472276622161481225926730599337754694066259467066618631260228850960910694430938923283284320382682730042493791942464382574911368729494788251834639835308684156818964709794497298149331837049191314376252528697947933945557423386726608925122943882773023181207836953785413695565468639600313994531680633921134462262166006149226447640150893330043593592630615398650432725467050762257978536343375594839780484368511973104855866606228430036405167691456677853236475549019251847656367224324973381151608062328060513657183961388612785311245357653927808786262893980845723414664978169947410731704775759015170360787871409653473243791639492366646977629449900695787504474604753675775610876804514062580044884133055466118348225432283811557494458667520766876139913562898968943047371317234090362183417333824924614360637575807797152152235656556582515198389490979455492883124380954743452795970897662087633120809218885745096332686690422209874392101644842754184803944333451221699903707749054947832458219058303013902446484859040972386096965797183854048432812339393569335461725212905539108360465912798509365657655094599333932662723199010427405514905713791771276900818145168058480337064848409491157591119340797981508903593392005195608745346774952400005774488890771635851627570824376943810699659932511232406446377360854447366435005537764349626346429236832031479792878817169327464012446258215857198906778360396170399787105072618943782048522120049061497099596361253836899187248707556063163297054753091359792493261312490914602340927096299566198123105264030266870551770618871031923316344160375822200039679113367886239642051583323853165765654471333676773625138579908102368223607331975022723023845761741776556491588325985025461190989287454480144226124335267080995931099463497722030065580232413997563045667046892268549148784560663561219572764566612638063876032191861397816508730242509067954142703447388236626014429989982710581513762133989263212334681158053670460477901371187973493523056944803201830157543886365695348063008139724319444477540656956190292323236861786212835212211781714805976387100077232238979406523774998150293973851244380290591353246450967622737055739181766028624606356741841125780588025811497401844223665536902963076852319659585224597083368549207559480589315130567919902378474800679193061855527077178226144501142175509284393467971651123821643193135528617130081745918447247472428820223538532761445064465979088100870596107782767414265374040669583514385346622757665092168383534068166854868662182139441840891658088021546819203944125867918954545574044084153953940891820992004691247356161655363564230703484734285123613277231367797043048061230624286909179327196383575558551289295211529799886228877496166081986794223614993044110499338826043282626385622317912143857155345115674380587027551429949570603438959879724020221592986437772259001713432199555268265068149821961947168598127049317852627543881217780613129420443059611176051037263191346083168575358965255615923825939480402084171732522538654887874484964376899649847791965007509982566700048552572782385835805761277534713193030620863061160516569948602559116441152872976148325990121011047320007511037464682413057907952121927152666096499604273398302730732230812283156952260064623492084039504214109370014484857077456399034718617536311379261065809998707217821895207307697319407853705505601597201087399902433525301306847254633585275452519760785530303734507026331912468813002296067835236001767360007131254407291658693773195748717099307588797490845501597348761915371410812793376187969894954046975857010451187736639335946291462595101213786992537216514962990781617311132716410578153111875494869931363497673085978595872179381993678785757972079532882344265390961197443560961847437238240130977065977542794439183623639785358512579104234890877549817861944926888697031013872555900097592553516035620731424328342243465235883832489519634724488419662790044256496908600165574876050918012719150222742693258168884691087591764918040350283291390346647541759678075930171209156852556199908816751288771908727070443751126581605414256473025138143022297180508164074969290769669745954834872197378304241515106163919302618945411493512386281354162574900649656256760571287379161536766885075919705570138525348685191590202687500172192161332420746824688397926786421591036273088386296527841950878922966531281436663891665065970250091012063813987459531659352676872909723869511792514365487687509955594988008491006210155636154715000960756563344310207301788067148268065951624855989963994544783555873495755865272689799130316229038753100539887465829413939226069397562115193778298148497790745567322257896390350620625878096594429415603626187162395886045595824784493436778722577808577535855915561174593445058806977505523133276583432655512666332671771996583592160197087384206898152115741138467694497474378544385960343474450680902603815665949904560590826799684753923322449063673692306787227087497457034239861475820372811231336761223892847865500009366913306168285506171142691865723337390836078802089221026728122721334713170990827915884561745554996399385487951463973046428039401811635274449668551324340918046925355704980210338452068959586102983394361378113045972183269645701316021923321317903841900382155104583921652671049667274901340268729654990142364767881915771315247346961809248467356134254224805440732284753057559546749026605407221887211132697848810361404153946953039583458000498712654856228502353943396257942806473024291826373550178810515125718702534188916472640436173902721428390658633697363915048058214375225178678359984631071605117867892571147339419886069821904554803560378028747389544353423676393039973128839019739421990044808650062426706734320212279671046993684119086324017347798441328941367115106728838374744772856222092742555558285043264206594635722822448102995163380616065546443533860414035866845859767865807007128716438754844863917700987104866149425401303313016738130164913497616165672455518747809082301951826812201798000728132423585810814476702996577097985979654926482935320708562592625492155759695742477973436750785603707733240807646634367744183638440705715128746637151937230726321500725519663969104844692839571881698240368246383351968640817718020912587549332964441644671395209551418089260842771310723986345681187995098626268509075836566490139296536588088568880204504447250039183606993422461777253521398954341032233765974789412202681516602910239144271075300728165632974297524352014704685009358100512373425409384769090842520338927943732899634704079515253614597912209072582916836951977172095142995270005373619427184317679797829449009134446936289472365251532362991240513650272228578701301680721153822893723714502355008062879689156813337581853037255336440175492691628474974978607726966252429518890149994241920130117506468572341920228236062044772715369970632307887073002743598147793354734185608960540904618853022397958959156092601602996342107018979876967659828953027209663823470707995229099782180104875089777308822241363302875969897031899468143513709592868951352134732739955971202697097702228575449948407687331053452203066217884022030856419006395710707313631616453983082524087135806450178370172432640311687661160114149480265627785919550682627277608856124773044399538478906307268118953662063352858572279859845632278437728287703574476622747900301445278130011307181234191089842731069578199075177284593378891990723632228579318594057258043771882284408287573899051446137156934872909112544228762193708627706657394854139904585855718299751714888744499368305105541787760631133617519844037626279631075190940656660359738069872320719717406826048188072054947688410979220553602324230573621435520934766642633430660681625022852200799366077820208924484879422811331374793877529244300070041548200968543020576938662842598220325476463411024075991763692680583320199678425930421778434894614542650978559297209981799731816116092912815769070088948543498605855108703313468251838164309846231042862070458446323818870846149762182135356025815506779878544017568416363926870024450937708598979423709122972319280508060678640329005601679133821787306601886820671442068650034423678954710665973367949408264246054715733098694102157214965828518463478745419943634730567758305642328992417263259451926680533638264299315903147184596016168546991679085469103209521376293937231075530261676471384681723851870072234421744094135226469435062970363126685592598396661194370119510745869639882348052073636841902506194790772293296615584157243804662213442674459091147462915864799332502161883681085348140450852706605052610011946661016289058854810506099813545373104841897058060600569528478676509758072235281115292891911242485558328488924532058882673723052260566799429408553173644997129561277742168942067946427016899469334683112604021370129661317473106271786463812514081903313410957191627900869097757870729634434776100170109297036016618870317440913393079240963691962645470026265820602495048709646874230880631728134595495628260202506995347622594207153581227674421971073741575006216818133287845545950924113899952196377957093230692313309458714507113714027337981106036572921778596989539948370210890495944552355295290267930770978159476468025928553630395422210793174717318684960122194006563358751040988156808449526021492515326598528285927594130735393801670555165263785621841915756819369706581304675991598775158176369474681627856563298560464362458094172479139225381645586936712695284879757630819707435085421964657933490932925427354392172117355507625261439974361770845598596776334623063278645245842310338197042824600687215457998773846187077931987549435536412156545791346908446724108800942587344572805634100435389845424216650184999087716267343744710721416296408850485621624033043871657983563430004664079441651707397920456789714325378381733517711211184581027561188353780470395901173924146553841367714949796831949478527675532818089631805178314951454869215571822309869513011821651060214081588387464659652650329965689444494040854067057629858378571304655573324567030492509434877018762111055161913762278229649871563818632884196463946581019614782706714908771344184340707497542297810680461094748533651271253105359776865847027585630717672540935673158867665637869694637245455568391449029362163510097923644216967087461364299462055656736805528096504589198837745789397838675009843947596455493764973531719995342581869550003237303971135449758629306052780347811736386161198386314790164098930542515113619007304905515516912472376743032409702847238127316892003021800101670394452811436624271694490799520760312653232662018529926979575596784534844130712983789191250708439958216540120221877953547539272127921369428372328496805652304731319146328362040996237441108704997938563247036550360886404669021282031668851575780951772304267465103906015603717595841267202587648519536742072967352471427433652052873535123252699681664113997753977719156847497891296932368258477516402237119014072168977130042209827941757808401043809159705865719752133199950207496651485851187159549228881219666392372183377393043641664012416889984983699724172868354464089791247409771937543450644923603882684548050813475764800324590321930358385920576368341772072895363305035438089497153232413425524821854659473220171939657051243578867352600830832292765860438902436988722924066518961570354472557834120449988355128939479651736223554584911238023305221130938298597818895191642635163814449954640704140221324691659951712642969614548025712033295518202715863620977760815479224887456477928537629330367200027446027353294186359426414471958844275789785848681126036824785925133431808372004732687211959017135872640728151929020725988801976428114609959783388278106641873928263603150551540023550652909436813782612492071458326146041639083802988914379167811372616704275724143527172122593881066351363375943283007782956070741561302025114069862378075284923780284691331287528684123235675550734563418083385982122391307812909475457367220022611765865659925012815365956938957704159646362455147158025168459779196671269231738453800497766832830481817013089326921981442322670246507765685437062997034913970409592183855751031611488639134162854295153617660976927293242357554893475105294647216495929566862923631133312796719672151460407994248768789510231715171164547594841123438548664282457153539800093304507636151692895430699316268296552375246467719070718299495171940536257330333567928501968692903459765843845577607368986950860735316653824563136719569663320426715495005589278036492726775762429657948994808848481054400550555834950582038154671027444958685411388348055064073595383586392842288593483358029750540479071596188143232542717123220341429453065082001030673499167866359509370094877173438589872651808794415307510586069706697969080358471522269395116384649797702536174154888884311799815769487852998882719977520187236712140187583739476985645941991392225156784529604815087067307039569343740395326063848689684470168324013969722276908113783529180659435755420490012081854257947816531509788651034381983249285360554342795446716417840208417646633891598139864053282597718806866477851412037351769352812540424809755905677972884488221807177150901152332185162873056907020548696628998142730070366171187222578152233829038942327054484371092647632684430131503683752661135954164004102124880572727283584986417859628047304315825487765460621485097672549812041201541903228680365532611720527933671143082015590827849508559329602801514112580692828526431304693272656343413877081114275471926256607667751982813384655561814017963080894708294636111555266996738638717675109124798006003990971745095931293581705316778093248360400208830097570107803815595431971945777312037403496336799878139704129040666751653269061537803021340588591666106649111400823596666599988184947562774125133270701017388637892708973852001582540603647042051831297980986433431512718919097081256993487990911920895636844328839473961426585165156779856973661471944716066233756800275812271684610962313072058873472568853449676749723953726228594974031134580963465309003752884993922258089984967676730571995422170843014048602252694926055928315791419800340547089473468649764790000549312967057483297220031928188242517456516406046914279831956118760712151456334519845604503792547750014218525583584311639623010047731723761631229122489150209829062006774299462623943933568911490675165553702297535577769994450698104986441798897089832242314029638619136686577364454476149570416564923826578608979655716692882062122356878637100812571542679057495444526255582414529813657257223571485058866079964531210756790152223613645438332735389012907710934224555585325949516359278776276870743274530122766874670445261954053629480532074112081331029860571835223892805196545261125450303511343351826406867499466238400222411736211841812057897399375186695978844572950053245763626259481942946048964744584265324059295864436400398225285481688997458240375206517971885592686431816722250869882767543077823431824764764332442718004389063218513500618325429033431454534139773960403872096869277256013400889773765236009084827122881516448951019447771506886339030938389115230599304524216268659831948106509089961668100449965275754198158925568882655119853624352728674237095976047538032170541115883575833961587881523721176301702167737286675120368053545962911730051243328420082743698684388662527792393919862945942704489103888371465598099991131234417097628099327174630219573690324202539622951922129230956278457589669676884011656505992792546780949147143942294726173901651380196506480991429472895040957046021303382039476239661211228019079244475759433291130192832733538499382461428890962424044775111447302483211972707230691741031485858955513339763627279682529813515088176533251420317861128443370978686065916388389633161942293910112587389346800243432459369666513111142639596802052056783960458044640773756733726461051081978935500363866996389779998523957153213611785773361852337124250651903798836670752962183624455832154225668260466256281762348053863798077594950792670850766557275163074242247824308627285240955404003329412539725808294034231108686642911998290906655373376248824365889125591475967242114761590310618561699007733128873368965653592522305225749068997174075697233119801235508457129278556821172850458602261531320783440294368343268460501209224872047579136359372685970316577865730616237444922938040501164855619423435275591528836455400587168052285484737988572026212073667984059216196957367272286285710046565348403517651618433922305828322053339588716344507087489658637440584558517454579981566777439626683358434742963113063190813254642000456198855778414478176321231007286058715512356131639820470146581761965453427347453592354552239275229980613816991071230498750782580137314910018738851723924852964152600608972936316545809691764210524345960155900977955371459551152045818443680102650001231950799381532128506935563532821115964426822348223091293284235498713697143042958194795387519690647213272979700143558742212022841945791031227168395056869378730412064110047278007600325697842956537369615129918565141993982321943086597479895766498016322535513979479495156198625563955725788167329915667296798544826409894345312585468258589724676391657440321374633223136080081245851782462837300917115741194497589559860463127966042423183131663490933905816397400383414368704880118599411690610912603444271765022220443607852645170528436655370668235868359416426222651803921281502909846613792880947412074493418013998270846879972478336607588690165886951539962432286992217042063824717805198701028786283901552449177401067885176918268525547690680763524293075982266226241974889530057582305881662099803089918915738556017607219832366097540264404602928214122480594728643198147939527995185530194160389461749826697628724765536936870521177963535564021659951022074026707966375898817339129136765618850835359787515444490311350478150458503780290519786320956189241761930918379238345226069962156852548081414700656545268688875195011210354348172908250864398370245699864016669277477230347347461840193618890617718544335184318228536902274070843691792522879513608422762234362970472335054127207585223155447676380404916870329089955849771526665168618307503477428454456833889697979356579886026395414801498683828767521199716894419987048772995692376626620128013025441987610381438492631819471999449807699200994758538275988332000335674065058291985835668639617954412624526427728299342441904629170682954640112847749831081067470795795169576169860210482732634691891588593448265116128136763414862227652515209447232595227670879982659906785223520724322647824703519983295303968528669991107642836043748196527883182160656796643231342231285949800159890536210068203293941993941365825089390390667018859928902946919641257227379179084476374885396080223743370998143402816096275774706035534841841705274056001746030690641848704131351247700056093539875433963049872413125966634908661868928802401786218844948412238441703358140564144573668477595047396559678176422977454536717225981089340701198113673358437647460093777399893849934888856671207441858233124361154878806897185442150575594074408025156927935216239464707347515261042863391410657583446998812361400122837408806135649024985754305507468158225459742751617059349489636333832840855188740043310464832247031778822341303753808875541080122415590849686033074588007575604710098618577379830000115217378249331704111988996128997026697698554628118520257326645348351890430740876512330450564622012340573423787884193983886007095968317447477305686560415615961815642866495008048275534747636481500102245646769318521729263902109220218747308339881250778334318476586907020517069564257119686713764574257008538322545292652190068434960968817277514398739685493379321271550422496158271291041013752286256676753371796809846450246172585672104304990776075727626611291689114040082981483088563074649793120282765521347343437421431398122853726465623178523434357107955481111797079788348108095320450856924396161577815544753368855774267947066685151901700935759015390103969062076074469460866837747941278270660219730908762085549585693869832503780200725017485849657320353766161968508403339446441713191437825920349589928069290398428456758170251792907175574925527398126458189149838212563757077031220057710543582645467124856843357743569670760900689681241093013639370455417786716402221659404465232046157373173076190481905860808806973824786698236373272805877005647754926930576879155357717561643168754015076511433382352448709465288060090213990737083750128694409531977339666876859405692908419267646469255194503157059956403935606625147152124970619135327458344623669645897691242965934884223115887012692735927734587315862967694601536898020894669524966912195550771102388091963310113302927377579374753094375165640623777001599597835080463410457351263298698769492406469471311300211527159810382791439290460238213215390601040224254253581287571437518282323774622865193495971925211979934513047685711334063569568191762794098781061451629163647199110958385623907193574518809931396414933498329063132185211003900349315687729212616840590713845815920381862102231289373597448738985471246462035680027343442114076183614192456082936436775487232454219793061022143856723673860321399797226796404454947636030745563776605629652606709095140413183327377906810909614897354458231105067042324932410287726834886509880494990126117774145249294396087525480631896040501565347774144655846242809476200831716078034969996312198394638418236930405901397269573946793618187135499893697362740229179717762447825574235744181345605781155643895712858153471132177265867743521910641387646070311550772304015404025092151177385193484999892450105631724130991248713054293454109120638834470283160737445775973241242597377250802042170951458095836488553383852690215061815429064359059854151369687945972764164455461106796967744401748877072356577212449145161808868327156139831894602394818617034876753794839954774126822265477013052571794012567732044852520137061848037773760636583719454553802449112469181690428007745512104724784380107328279095677943851370316527801199313369430007840946371812571738159187513440846630647728566782006131451911607194330020644709278527745366090460327572901243445086123710659251715812265995318273627169850951430651879327828093607469414695142141440911921700662113169441657056297883839149925278723094832787195283915667842673149253405018044264177317093560716868273454232368973749420369383438373536084522367322314361643025414456398488612195903300778624571450585618074939469728054800803553135730055833977499538241680509430891278835732386164927913461970981287590928462004431250964035390884935743595306029221707631674438672149317552651295635391483442209869530081001892949997471641252478567287758046602435701559409018516382427419773222144894119181097062353201290772264336693629104048747678616333141492336489356553842641866176096606861437434099871121721290696179895654295455797684735870595460502749312851954285149481691316635425548513840590763514991287708025117845650602678832310567313740804408572305099465676226749609092645223071542606841682576665991784741679716865201476602462972944567800242323999326416540762176227477693998229459870044272348135291415904729393162787813131985035131650138299959450775784740949530186943511569017115009392020005126655142751824032163416240125667758738920308935793685381585055318561585452494430236800600778865817847909415055506401689962835401779689714013968073557669708220484600462518127886461746581110105433522869382600685057574083719129405445554541461940605118658881303825377801122268650109007059475151018852864523268512107218630054969982966655182413345184009130552716278346860343195643171269315099736105514888661435389961542858665053271382890447304476178355865272914366131391935416504201122927460794312300255496924201769910571243270067131029098060381826696676919201323720781423044468483588015670747424846202189015457408984180900470949296431950550390341603474394390942188369716954971068520515668834898129539395639021060642093340093078950534682854222513654369378473228534575345267177080810456150378955410981050821916906900072290118886813387574027525819198186404477827605460455309036390942197807770924751946854500358087004829801482943995878431015703902143381299308237193630164451151581930341933488553696698179297129250536601608226213134186383555727038430466723011670515266834414711065710737206263513536255232037668350758998042493631845921208159587233899135890772954963899449886591565645442088949561518774912152298120942834674194761394981241046014518258756170014306935125315013782174523255025855814017559270858939411798255974124241903377255279035131321872554288050837819550433130954563684868980975589722477555848965019753137303809017635357481217113315062449855992293843819558046504181569786673814492591364885932582726072469514187761599158981825578743725325322424468944007863163093403596278695992046135948454371435001077660226645528597757497732221055997155767226466238577015523544688958308149068915313417176058943150582999025537548716471618099853610182765124497836489186217153169342474492540211219675631935057904404625398348704517032540811091031817509450169954253096464202697310798913235448283647380100098657527370859821040720533490325904616775348794062774410683684132142317413749385573982186623418303152353105080858518649695497617873184491399109573835360673869516373498083754569332600793457364689562807380655394557810586438135322015186906809450674475222462945339207589098712544826323305811496252979697784703907156640694035153953735258920956631186698917733871725674565168672444647640467031452145680378291453593770572601572143196165105646823405582405745753044070707773168050855629574589187625505339092617412857324915839410784199457835793158943299125694365760330974821775730090789697294868558781388330839567277977341005729404448013839284878137607408597899145487729517369540734639835940805619144789207124673870908422589800031807430653134899331610765071798206903944022476466545261850678316828412528672856918786048188453306471032104970071282315837998546406312198680731960642694578378402815671567851004435683004311120594968572081834823839733493681697949807703725177734929760399011738085174429676548555489669660602369870398889163738652613601869893743246746988294164339274109734041710761307675432533895687379352917931078447763926814762596429370119413463875086352015857243414441218042331156062845029276767173963105749585292298679374398284059388375959629170583200919397637869222779957945614323801218441582741451705410260904334097549515880834414577859501704226155081754024496523846726461501453031474650973383270267282238787314524559772890760362799750114210993853449233792017700678706549886921597409065547400122067896849733708495292377319684269640843727989639742827472259341839478913083638737119992036599192935907894829782232076741917664564402535016062064413078431816506857254729232216081762500059142766501208706154052428820916398955648354210191255379379220883983294463756414956235001427546221575565268395919634911263401286898799866499763093853438383713798165101209670183106301810368054821831727521524001443370889479338589933295240284356007492625253882270590398417646165594686346279750390642082042345392496948099817097892027918729430386540254880761291923604906142396415520073765781045615454783842063025415901211199157841540266055311819502373650509995632713830060998178730345449614545017660278755287396043196880888377773710893752425872991592483223456721606848443254020126086287561666299555736472693343464221267053262351730590879394060815329376860489126499760885098448748064963082770958703799395324029923292521492232318096289139640666249893726190732910689211681437642281853250779310955695661235980357989598305645136033018194594522875227817344932672174212814285339191808131645263409120163518400226051793457635399799452725981158053924847449396681600903693830331261852087813327673916291002060943576944911418483066154831455459653677929301835187641732337006209057555822036797372547384123373602368144881670413412639985185810889550914203122699012784659757715321617204107745938996948860562050589970972156313370435840567266064174584450803341185009957670765886815593825137145500252259480656055636554160713075439625043404195059874269802463256165716967465983850739567837670667453053238596980328341686771816241908268660947413482921426549883710055485293664527920494174127956422539256814864067680638710715742301523657861821615222456118640082026180385183081019999159902574851388421094235458889808970438339177384280553471139123041826409316060025371093470640305855639468958520213422545464445287352919782721266401940873654359522411923253360719448178713937597274632869048488686050630251962307981741164453370352082576612425874065855331649909862769406097372212974072505742947914541721411502696736601485343619883381093729093084550979123964629124066454754004305915558990797941601510801149506051544131511399199553308988942079269661821894037480043056866385419707209247093344772374352603310403457831637723182018272341360251573516194277436993948965230250507199489105338427529156722326600691370459330165340118448187679620397398184015088194710258633993211570872148480465854694294923991734688341925452537734168198108313139579000895398847820109720873702961000356388243497072525152896788738576309941841289955722561756695667935180854357831589530412664990058556838850312108185823433167555102553548647901102759777557804885153409583252616807411828352237034272601288813267460999604405013466149597829104850278052531248653711557746831976342524651722529948590729404724208768769959076292648798992761891441970426170155592943206311008247049834499843896282622561394435421375838391001695248670473770344162790998549723982713162013219517565521791707527213057786071186148414931917424122723689859005029796387810903106124987833210135537880015447522321397976097162371976782033297310849965913451672302991144139189713592135618790670698025233511739242949570498246916331210442792624626889180623357158316230052238696084192578016411265883703905836839725947724442326093965197600449682921816970209696890156202003911520438938648640823836567395945721822228414690609210635746863847323029814168244200094399937485153705946562174445319266762388101540011424771873955481903598300651760519689570208786859860971897137996589220692673098688327466705559984784704592017711902942253611309019572037764222909094800503558826804696893915466969588803857310168501908386778222482562572761471982659784992780020882118835195205827648480233411546498780924248636354096781875025363967427577264481002210021637637959373103749749561738779140812206100288960917535829768771753058301935609015156956283203510521689717677002545640674259600216236170055194157043787125300332166526360554458128809999447185847302765445614796373515158092017799863851530374396099439556594823330851782513730322605037531782724572181514271444062164418996892504681729618258298941318916792114714395100992363290111076113354863716873700580281130537715041626390889304007725870519444365577352258961388190706992648654253325398246376725143963214828371301959935452440212322776424691164378163295895070926064543779916444916954446276265712782751835614212308671239271160184979609446652826389334747888679355722053442997253485028950963147106925896102428019220708816750558987905768480029646213870421032590637297795567310208967142864665950498443960637320301491535305640567851466269145119057216207890810209412374856472525539031358619813161737614868270609917950550021930743065399097773025708715895953365941654626274100349692241849813958384413033875308309994376645804991496920003520833283532712407416314317233056530638043719219803672124531628771806829993240146237147939815496135928338833588200308203748421832762118692770360872814145306750055252093499652821216701551692432565320951424868313216005428848008142837735671943060506862834371792095072526093756043200388827340210574245044230919102154201037942662248796372690161476922008281486488250918370300661583009627006421415786310908530705991032581275602574609015354793265511094504615570968659138935049681431154259522924852365813811084172992069128964964117534490417198761793080550609847090746873775727232645667577894220138156298305364064783176849381718284232472897401920745792241849657572547872319681942179150214279605596398996897051377509016497657209728985481142614606479214410604643783593682200096897480802935431936448971176727606002334492855429311326208944633448852956697565587428441995482935153587226446482575428707682319451056195267966222880116048262120461121766740194895243053025922547260272182003614064289663672226959055826485857573427693462263580687646717729943094421968858061619150684639087633449770431322952627853380402936023549701865499009547595943471886297823654971488884480089417367507389457888828714454409230850498816916796566977056740310929064145732530844205758158726569505657908364660079687463265990522212592482491850074372470646932296725865783687661318706883722055850832640961650550715424637216517195623276548702902923308258962469182627681645143251485309815593769812706098862828342484600916967446555348311527007100517755958701973443877252455516261688358027956330759959969615944745171260302725205983325138313703141619969474149802575844591366193987256790091591639716445266504678720138309736606044507155270033029079324247227042877617520948841856187770936644499051781803547642844676314239860165657862028585148328991411171563448372354180364540622051112386391899884033859251089800844635486276698249885478280898530366570736143398658452744802367986941588481339295479836593926198368579430732923682429399985508661864942824057739509729368753472471162583563792101097594080061536145503650849810432793315834717786587538275163738396880965716419809471751827747260432389685817702185540687625764248913890257355813941651711058269426541385920732596018111539153593858709458901593619143474622074747489788312148836443015945598805892989166189817593422660208473820039106038924583203271301845608740365093421023531357937128046972512814258399496747190326561885729464154441329187723647765154672254387207293648302344754938538537063999844278611263132253139733951872891923003643120418743820319075129951284224931674200018150524586785319363783304772256822300716098611014723790133132878542281206759372753096372294633047787330917410900617982768323605226218666279269263087327978086549425944537385947189356708240831997320087396326179271749708803380217799242440076041603694191126247598916159742508713876249213959187104692169184823974753840332629994137478226338033745893181777027710193789810470224878499913818994702457734961553056167904851387362859387868919854705396454559567674855311767410482794466567805380100069351940305063492586391711700927623260430165647302798601287062255110390003690820287091101492731193429194244511568405191916498690060554638026427996047128557222071346165481939061710397478483719179637844110126968041135198325755528740497529478019490538391685487347737604621408599675783281799136044526861354620388820498813618306465578249769180555246981666478422820109428570950915754441339875982385167899564828978117698122880631031786105032959263265166629683925590222242484005857629037791583669910221834548965775277731471564355285928638386506480910654010112879084022568444247526944684314670100827279796959485296803292678598227486367830253506516357143845528184451663903405147146574996289898821974886674498603320458138082322678029257793797168281506962783911107837944533853246962940677966195127342629650265944506633341988570231532197927069992801100796831607508246413911276027223792504684297858872875247666520186817866080390879606765840914091160517650492053528115797702978638078059630446161540776053808271696800131828296477390186050176944529188153519291830614953820624311218680626830311035766907652524332153031246346617263561550063409893801063904609843911330369656272503615851972198645157930217930788383376607864333253485818098422796113110273094547444142748852272946026748279460016904978505214644774290889263536539483008023554569416547566789181478493616885872906321452531403943303765139877892010036366409563985554931520636375007078113120372623032831715849216392887846121469965070364680666820267627193505803231477444352440235457753683248700798271128340482282584368039231945980389781009534120970223344870184121185940458471763450990803315266070059874861848234942857912036894170081584411955607500198735315228694023615052125200368694698828494858575258149651193401902093478846685933880287693879174121951878245526272601766900174485196810930505744704979518231368548260128463455963431598436445705942092351633794286190046401555586634850097775408040730090270757080103066427231690972005787732865060988067461463946044855109058687712280257267939355595656891316724641711279121114751680827736615223356329664430648130099100005166198222997550122344275989140134914486738099998050794482871357646057601482369930593398509032221687282675379584362783719348859795219843941501158840713126897592536462887177536322145800560100444029428500914871650900845668746463387033033598315332023838862926426249366405660834417674142983534479662810851283440899152516001282075584626042726650814955615437006463799964171649476844037832905748093935090963590631340672651399807670964006693059864124928315093775292770907245983377904503331243693629617911640050466571706009746002812942835211640075311352388933528411451160241955691743152161021757141190594561875870997330533506298105350994169766808491150385173329898921846397385271609167516926878670758683019537584261139644988979296225810897360702178099072190385523359179287223859910057582059348322072484197203837372105022958181973338693613989826036276755371070345345272436936535925846286908745752851517669765007037711244457725716088269116635482148241294075539913543323520855090967752366488674411692456483548630271039919454293173742194382191947740506400981733982257233505061810048840180284053501589132595153545524547007302285464312465743423169108101228689213597763668600702698619796064745509497973744047405385639180989347996918307123127205526193151322433551280285721565186959266903571666442799869469308419865317170463956259664971736807302169686274746745279429029592085683799214157471678909262752753735441738415217888553380159891959499540465089364559143977956207063344774230261892108918284352113749759782468033228598872518156008764933834595872985031507718278225820247142372230160991855266139742137610805345556527100539116724503345482402384909191653804298599037038401200521508726898812727266689932352080672505388626112653992072731808021087698317965980448180434619071770263199828115513103068777011789612122342104402185543714355119818878993437174830377790213568374300351360907368320196846112305757529139084654255372698606796602921666568920747701670707629485701644679107370746759228518572768220503297363748494530291525927369927321367792527209893569545615458163231881049053915805758460732273273958140424231813195409734148702194261022639429781886281639751445087021469184223925367440577427476841489173759736141179513612904422316908459820449614533489200236558906793302233336454418028384068041134244977072200917855096993815468283996559852878506699982212833895611451338599323844292833465120515852583908401351558602933207552027144213445685546776231174718522781133379072368010947435809921708637243213110827606564343755408150375025998766103865273882814789924361033783343534011369176837941248200784312421286898239597569760342676133548869038637874990047788136031611102233278225812910193291541709853693232498690978777724392926133929689019516886066866038336971247570184378094253349351697086918207778596394484633192007681231483883897321373646240676146007278013096868653999424769868743648546817833912830802405605774016058300748856412876838469218834235955103292830182239549250916592313338952281586234472440835136963418822598417608885964678322425379934079011281123680419944275623437248186186294220919189009557416958543925884209546777842753649810956256172413420356764677853013954928234748708396305829181253240821170858934663573687581185861430795397796563893851268947889325971422750163236895727547634155324741978873466996147912868139367775695296791889456286793225399808810426311109749246719550720389758976995662006759020680374930580160128229643197379215156401395872917445390395296314143815862920151616556318646282037294500921309926401631248802543921336031992542681321998484184727314458705386471523068508029756737228472241149150813974678875335296900170345219423972730685325591814149085679530263789528320526502979622396173670868039574366228905993573414798412221180734968083099633667053249769540595452972366897217960726343403774759454946305902055243343547052658857931895508322930608428276298099810728372886098427377149722103754589488941158415227244326119017561750068907411413606266306086295932201158564150911486079285242116696734792780374765206597422696400558415986835314948785820994320927036215041171047385679874089740496122366075437145374704485891836265836764792356711389038497863634490091748530033833234867258923826332854821823284877921100045312646246073122561778600552539646491174382082842544750772681798134773974388521829921705061558132416598781986241069427794284665004059446058871786880397413256238074325341625150147654020039722788141847416383360965055638102240550371533224237221897699912524681633752386965320621484235977511736448430845563503489198287384228778464853610183138101487874366160732719167064054701549316182942843434345664380449387989444947574780282693906730541029416710381953712336326800783830027503207197223548961814723937767712827488231255955668631061146490720475464246870186380312527701884178444936698734232913771359698332692594061809573587193312916115970518438683892525882000329990071669071964711161229776533864293422914490079797111078580260227870076574896917908002084421617135392622409922928263819901293569681704016569191175838928022956098329431744817914074287232164765923377920793330627002347845315677419576621975080711399362919126978307125726616624324137285978899276748966702136783889178944230825797111776314841489599960009492320219755170906091011433989326233922984204180575394418595213636123755311915878167330522378182411156280658437286163991388018779343080210211824984989773100356221746576666069687638820038212942149494503702596482153605328706910302795816466821894787308127877585698562631078660251283908827092907320063640752264552656504271903214827820584898741240761321932962510087520328076071109494850282060460951869820782911418839573428863304980676631262424013945021115187048852831526908569742965289975829365924713717923579158790940825012696689787542372947860913283944154141277425299525093878786136171987087763530928834398609499137599313850576721800058530701395566918791699976646420638551784716234475457138919530397953789193364347046981835402021590394663120113053763855628932769629349816523643513303062827168671212936504149083521975588121371163686759256288717358819776479891950150231276555481406508745024084928142456430513127178061623205046638159567408046559966017462709736456223091102007653486292597840143161995553464520984664102252379917426010986071184274151262426978209831524114390016251463733154529248769247286432709384735211799670876912845694296147791753763905473143033687757008101411049096113588468965282727066841860809535080813317739374931144598488206234245712351259057365674514844912590883115151246965349858832786220247768986095507870556180355859157730744577401673092445772418861838906738787713553585057975741407800211428056924247241961051190051736478006782018800114570646977263288169175904578320490036967997871792725827238199799705751321468914180839072510838066142948703739895499607895379074822147171891320396050473318044133572871810421668305534113250957208368256479533097182660806768451576275365191892923015523162891164362740337357885478977586728369027833596080019638097341786097868627763332249800934963136569132779217714389564735109702682926296868998885461500401516732984127786109968946022038105304576527587028750486614196848106160666674003303835912676278940615699724883106365976521138578539446839811396781912235417207149726542793989046561721555050141963903779233969748190738616920144866715100653722437777474566826561102892241584450378028823398554607256795448947284345621031172336871757014911106254620224255373557508333070253773823049309545906208901343708787066058707975753265834887597968273883434257147660333314177415775203789295862441765080585067682693565196304542667992194358363828298512840049215666206589764261527586447095074981110587044064019374303757827923273226307654264412908539340854617307267801357366515755525869862811650518565136922868480169660568307690333612673241089431571162018892144541147826533548803964655250977199502981134367665351285741235725600306423179552488497270139191133350502987255047332534793684359857114600867184394658637499598073786640941025276484840984284226707160483448063541082965548123838901096519440355230683958247165557405351941145794754589684048580634171815219035934878278677155364804833581894511245981383457833156994195944955226148635933176807253723131643004181277922122339715579667418393873785935378633617806927703477304241354041229941725949210859032040213590033088881167681826951505905150160597999779402462263619756408260828806986604286616681466730578397063789876815536315816707964400849258893430750953643102319306791427307498290936653464513461020631152357727574557705472527151692495700860925001538385890255267456177318854124202122247713698458571712717390554938218640768247979871081589050538134687337086624901685785259046357487202256491021296760632139213964228028222933295513754318343454390979288046146093369284832092983369851476160925938279484543349801386443849504629913400612781441404912103028799283714026621184920907151331715381289642204548040836239761864376165164203112086280076584516516073439075846626911775273446843259682582295312299160264266573681374984279028474324271947532441369606870624614256913231837433718105894981691769042938672866864817122343208771353378896477086085793815909349648733719539670792564914131916168153236850240014853790426736512642786622334306295412018934613131276567030043294797985485714348817095541274686893011302877727186862970949389542368038057184767250842835688720003455580784360113969250057623263198485185674997852433792019754370288911084097432496440793344161847914973647493655163687696715195583403590880151294680934625648310448316543710811149800927556932407111585700189781151464585685933021273003308335087198646380390809362689337998681005016299546851816397215581522598197109951168414674595930855290990872037274921697923393053646660613476630314327410941067579744780531000307853258127704164427833401702273436436601263345718725112537533884820866893297593181184611897868086640909609062829316067350465690077763792191671833703087029821969000093187329958722521015569842162569287779270744785325143018830638489635084178208122018649578182287231090922382300817819168255403024479492438188696523068735650878863407188082046187577677041960123557464425292351880978024870960910437326733096417208968695426736522828919462224061107965561615004146691539985874597302216530776163592855061552307742632979787799739757128518719688279867902677766037980934053065542500049741793294357111821709133079752722156632833120827651904776925216623430639409014890685161975344362159955179867418436502008155084795790346384178648559767530053798355095246124604143069837914161077361528346835684702684237024555440886502979589031467977888062784280276603558549845716220835639817202029378602147488953194260481780699601546751786520092558637663238666095343642371033223444054598946329582535835844061745881553002044489596366929902550446145245891284048976187490927649642041798415144706964738592724386482166797634889411149026951427430321857494756782549879984072338376019348647278750160656763887610128880667774625521625953189861872527251032789563525583212651439305973604030211701452058370367897071806963496728036665365036407298747648280581455778925889336347505182140149746825626966434599070665227556216891932753428161040550543737223539403217605564680722425220857335259512944908776118501931221007467686531591900492364765163803091324652843788299414915855535044802119054463185502365575293304282023652139385096326507629422357123530867753120703803162631457132967579517169393378113625502182432977962161912872884819831622043135321778663603000991809340294765486277920381769842655007659129455766986389618646579807496491966513357398395043898458629516318741976779958164949896667226640968688011583743407776789086904167292335636685063171787446972537358516881357354473295285054684080129720339717156881696522899121313658241043230032639853057770603340928693053363040871046103661994227677561012257810280734359551597673034801858754955699120748157075286986888840790943414480703816773440255590198116003753158374554897063075848268573505340458985295173667944256642507519192169879467215868114999506295324207040850389411647930473175347068084108809044522944719034895836430626032160963088894001337945554038442897802228434909433567883831115614225342649602126095947235933546741206977682869681898656812749972420636022817455713852270898984982809680222855219396907760340005301454078237237128541375365610436487744072607429771771828720862525210802535768888462555754144306679262244090149100768060022891769482385298194827253926165101209085425143889750847243021059907269104184302210172263978748858377280220279516018113611024392574564602403692524083528478462456743466642222659869080913554485766178121449570553845052288594841799037125453868615442432695060692303751747285785129317871741956267674514750546805189993151182302708472505354500591449219058555391290631168719627168951519184489280487697813428381887911622649400052608745041512093220391044971047376196704760202177641633987524311390803354073028791594991551826948704623839673726687020927751241352590971022360652578483127472511167776765304209113808558109578598536601736019388059528736485950787674509572661861021271084739782290258368589941168457353292148272715939218637799596313135878654084870988158300929047020014435274755588290391476879653901121615412570860508060111632581950343956806320161509878219208780096123084303482971138414708373505262242080142566037289393962369130329799072857298725000092630327807647976193104448243323448756965445370612367304098990068826485336565093917636736192002462391595234251160874889886596039524569582660851197425073604904288604432976507008019164761692349167434943330166330717617018703287969644153340337203851833484439743510682521903124637807599015567430544716743477004703347849109404680031217201956485045657257728906061175921118423808788148816472112850471726466100593899670188608255189654994607023422358617963907531993161736396213782184248706476961960628177463608393526588737149802975250960438063495728625094708047273681996729827733699150976977374471086795003269906854138283937770007022368550316320187290309218481731553340582524979020140389389464311832219816483717499343460248048788611829610405346244346143134534246338004665821686406690322055284827310956324169432745045726725235454952248506035595027359118381091915982109097505403498165339791516399269788803776794459027742530027211614698527652824915345958982954142692221481285439786005856077754481948303002193512666588268186450287100393068627327089221708567785563184127883162937024257626477696335424446001085422960317124419621362518831120966849138772091755334589724223065004198770834138494961703469368266581954710778012591413971336798558989792867493286975306729151219346697598906419333788052786797726288210890158897472391234650981544013781914937352959151161549851822915568112380446962643359759603504852605522054945527799900774611822018757555593922410790971629624505980795808266931362304624538686837944414086371628980890260038026032153113169017111288542258583053822187394002079384697845851666779477924373566073081636738397744936353703149696243093838368665262185667817878368869473109829139961942656796427713422327304381913997785814773926399140080173104756290096511033501096777905688957876860259887396560480680362113998201460469620944455845740925889020778137878540739437635469240817593965754778689553831766291595198864831579824066982419341856404212929451689287315440412670967325816528731401286549724599868194209896602374561728834179866999029695420087198443445096889416296410360075386567372397276170256625043420394823433002378652714009915721887936856231471690895630171632388437197175690048537277505602419321907891410162492266728869720223815477862732158742091792748686875083709841589900799786559636595312241570477577188310448671616264788465728555965400534029124355493544798519638897173377416753820006890679838988391369941210591900875529646414032274727956400256411186928998988065957800714510535483120846777818946515527625713026198286150805443746006938233148653003280371887549663934016919408876772028176134825947912811237667923778031775951138068539060925325922617007181053592492759351099107112471838880320652522002764789457535835598325094731412219466986068122493537188223859188950528956258093548907945527224864238200902841307519294589204357902815473971367679795152609836685522333623519337592185380214264847843662615685733297556491057581126856585140327388534345235843612394021974327299964815711612988330998904761312165754676719249516972916345241922695967684547479964818460229616948950910209910830568560276467685883120310407274076873802172454812059145913823045870391786548414662569368452084012780743154414231602406545510146628821328293282907735680499474246884977493289865603078064152352385010515665298487416870298483632054119412547502718236554451791293038192675484709755615019127381877673377833763329074979756039058194637042229706356612831858196501901988129265869637312347667909657480463977906857623292059114025581844255330961364366089447899484149458297304414124607199583181334634101846234240090266835195745417355813929782466240188614661193205453229693862086519076195128677179497212348642470888285061945187802678951005174879641703094688018377270520273037075534209216137642369557602003653889497376870265274631005005119926458985663311783580539835521104933794338222672969816536245931965452786068896148386308713037472740302697540179128764800980727234352670096028395122154767775914375857874598387153340027122131610545754812114579964398915831915199803385477218409824917292588485436170767574932926383494168174392684193930943219919114401693235059071725474463518885198233464809865903979489869777341736389828440234387601361026742916775126627947859845025994766574046732309236527039350286577701522031298481797493219727682262182084705436849463611263443539700592528945445231024581124175920094794444318364037630729496667270128839980046243718600064909088300362166331316176817795570760059328188948950957342438519437517874299851378584598255441381183258260675883376273095327414934086135206623893857078382549609743196824946669983875028755903445344335147014233603168720820284860284983743525595198448097931423571069982676501781844283860724593580443124819507210601368805215754631535156365944381081980548893069299849684673432293597216536552113033470363240531586195403112409190367249589220697085382964653638928398227592586606148298832052181876702246165998543905005307429963039326069603689187302558924492421127182562654207146394719411384141789445140041994410899709186458759699294425005369304147808980878620912196019057006432823790667650577037578471591681027159336688935456595634402949839391165082041138103238614924429613353007447304673466337496399534622567653014971378503083016860929014842923123436100270760386802814582319949132842042206676301192199829440995383773360771798177096323867144205859610721010828758391186306423814631728174528617836012491432024874284986064948531270763925030798466086021828076006791975596892910118578064289821894981428671335908400192426623786727960116633078467885802607934700964864001912927042168108662052441775106031358415581960600911700673544488320325745722388419846617478665789408616719731204190273445361865354145250878044567883977601119280765352493518255879113756851606764721096216861989821918734807684144601412386516803396145378986132464766985665212217864989450159368807599219351738011140835429342032581471679663767612501610974579270117225538959878845900467634887091608374453250116208236157838737333127553842224824153959489408271977258339062782383272649504218875172049733130781637206655998140010827152663200111311194750019542142232908689220499357781964969282999438577661860866723817381991452130004649120195319039217782973431104820615020619540609721721788744426811422518983266771100418748362827605165017385707413820088485171565658139619649599481435723721247332992456002042772907853690915408107547041756807816718901778609701058595404475749509587271843130545845371713213016340680927046989270718571994396899976220167520670231028157564637684115975167912002377928693846956082143512291703426738674703648593952100710480974034626876727589354435389255466716811661025191169584987282326127427086978357216682017062902305288718158542605052003100269111391302450134921380930487914276605984025783841262496078599272726488777766148968106105357641651101685374753485755259996014160619029419957604469194544989270000920667378215059196673851409044394768288864169055139831488283733122584452273209676921752486542874936637642695339170229812113548945198935628759844617399242282780126208180168005943358160953167597619736455030761297975202934706326138662081531019687262842005800973982618433791568237664205993446243738479823119032542243073912030958854680640457090267131667316967167217475045399795224686208375828362224287448484208081209078412647434693118843703028764065366990124850702133509107728946870214710485873570470803970446945582619579870350279570091011150705598511928921181287209548247041820502613585054660465818031790445035504097686964392723431493045463375812450622971099016289394550147615133335199367190853116544132143000223145236679007484194076865711907332706325900139518656509653299192841421198733705560586374211729929399798843008624611637070968373738088134447561699160937779341657655996625731100061894318946621327454879823556148496670631865843580329587156505696633590490645727242295403737966554736287003421171776940081890466220992128571389656158222795689844301496562734779672125439351007928980506208317131895521618866744224845362090570580073334774074672097848687142410101862488007876761986339393347748248348836409407056378316420444918095039134261833218703150818100034596872795834684871942418368142867246375476322828452849846423388903460821617967642027881016259903291659451084130312279625854564388958233298936600568265722071422138236418094936694616964673269971861147599788801764173905941084587322153921968466684811124272113559937516434541969411288552235699571348887101931754725633873764098592619041164202150954844900776733651370396331695867600458920074585973110713761443111483226630011128246065738815466938528369928685804598624788168723155703912666880663643232045043232636555391813369678301682345134998349593660680965833919042352957633055189025563062188774978344767584711690501082731245187374442069402984146367745237701501273276531635919797410872574401649042744759125482048532429690344872634480131548577408210368334892740687671330934001199202953217457788875293001154780098038535589053369921601624485535788543359012000648987961303440344406648320364681913247763879640530666139318035387328237541490619588516770321526873627808952354454891818554159979848123516478627949880008403450599273567128932079201348084759207848714354663427739126300342863078863829375376249914545132726090110691116851752217322294657897816536482898049841427115673400726880014914409064162020029477321431490333579779427762049401636012758844293015288408209351686258759480353297707213562287579746598091808725687737822349387157866547038295485632555085825489545868737168084511140911786192184755727455232990206710598286675672053378510629377669940240285284776119505922340830315340815067566219227552547719969724593230670728964397666018560329658502204806598924798469937256444519318015836568444297948585445227339470849818510011870674362858335528521904393992146940261011052536677756720653229123237582676778941126553261262602074700087907433331068351713331128460723585361307030668940103323225717647737912586292146748408149547941097544127940400483612388690686423538880427199789595116115821502996676988987033222739317531293495762068773636741045324031199085464021107337596053185763556233338533887495345145771650405186131197540570534867670455715419698366241562364203476995268494686732006364476723868827640624398184101052738800909880557605564887719625380944521017580082929114696925499568527173830334721068128862858223929605486675074978262453104230027013244274846271686187521700944308706951306271451063805448302258881392531855612656823591830328747627253957463074154092868086491925158449038852730122326774797416208271315623191193471544958808550541876744128669902493384318987662215804265897628290441035451607310595333897744758952710681227457796334953617230127608066283604116343050722501872477956155682545968127124831309008741294078153989866649380364455787657558167334006478382446549693947807877528771508739822103486589822046770091953997843664111815710180891750534017250868736195059801959153855716074289019993882125712809563500569502072439721612513696860071077042271445536390667206999954136237724771493264321574561393526216320376149803641038134458433023136515678957203144850068576935806423828495671383496835793911853957349428045221726364267975850910781541320800034944029008646094933714686309182265890110632958797646989902607620564446692864033267724535316065199579771535063646297009385414665851988717487044389553928070597546631632133292233144143115355372490196735455281235428413437380029801773379855275180118167455851982093649402708421228285863619341894398472782825343844350648049593956540408081560859912984171940477635916567618091651657840698470107285155663242185881960704098288827661126101070256921390490864556199553439634510908944660417932270189571306302955487997546307422380184256218957689616879511884272927565156047456801112542698851649655882158871227598846081073552951445862322214337552491697552339302415674933257455508106717680279685716486219507612199357187880239018010721558975690594055806880323304918518054247514270130031047239484960307266695810458575478391508089964972874187434627283066609543201943531678461355963233419877409007273316586066775962167345226248552019688950075985222687728743004921637479097845018727202671397899486003947148979476366468211904952495648199767305806275711358610281692973575175772714290512556707704826987009688649642648785439610451187090550835155039861436547843815509735648810894631852007319657864935182203941597370339591638721612744567289820484276273971878305083991096035207100901591421381395543333528942851534710663325142040716400434370029365743909879990909773971043838453688899349822537324148886833130376003060846000899460236751863201865877418708121230627462609583558845699241313381548670952266463616583350476173031003872593096705758852043606251121741126358710562357104274039627610197649634548161868218326649684515780646385241774643140607511211037463046357987855191596899217569172305466312761341485282273692691020357601124622183224974480794069271991332229460296608970283302801230204295095241986704527469258344074189638795563057355762456219894626337820197173824578950278594689527613386813610543038466679121794820058969137985297510054803219736453722873764316753007902602673973876418376211635586625978982459220574407283098386144965091429761590323162868603104934313296358748544339290338622169275734156759728397731691978434729825448368811486332710700971885967635757478793244670014514023923456777379855167159565254431235794943760875759802427500786141487960146276249480432974033813302753979635092807547622298078518309245090300077001521416111449523912076255690981187014932228140053921991275717053057770560274904171061742762546973191053826073283693978888941865251856748456687130178463966993419745625010440965193677732427809892943733016398456778322524612778577303505815073376848399729664518805495172841973710434664943200903673903770986030645901664463676496190274443493271095912724393744064970191884162470320734472771924468961111189284316582480863349498730399715791213917043924680534385088039421322136232319077582265654092148389424698062476935851815822187258171320415524216116810312489191294939523200383062612790630716005396220604711849495909127011667128397388019444169834999042544999088392659259929147680807970261342197368306851224924466657494122682612996827774450623680166451424714082314871130825058007788789956599481501298025439463428828731547901618234056144436302228828219425279720664676850130267288640797889692855590594687846652385061740363174295005646062302341525148762282398388066765197628045038011661527391193472907645060512575080031775775004604359344433746880808199959072633020738539858315225839788542695068550849494900162177734335131903973859616583520484112730244662818340326743413247381069389511102067696067540941465895014436900143677635456929423814915444635699811212597313933083792122781836086980403382177030669629028911998405322658600999971164783911685692898171961120710143507257070529654599364705030642157782599384932458685803331331014203214489172191592134300284078687284481778035470802363366635785475822247575497346201656936210046153011310279924942787761263412307441210091898450753046388219633802694218800335171562428526809983701488861192882082835108465688679003969306966542712936151156109891185174981651561807073516779952707657424361129442595521628357792615727025090304970362725326266328089130828425106581776423847914654505613090007045888605136866889806053235365313348991535523049697174872151290049920205938814185495041361472960066872267329926308724307164547497554334687647203307601702931374695598260345747890424457979148678031567866213010963121031806731723782698384645977833082542794591186083423086601287005813522539499036031630247925922323552172512080773277854661553324169696317254574418486882312283201900944284828701174845786530183953052833646201877977288539401202908163262495992258982625483452341487681488567756924975957278552185016082532373149130463285348362965115169979193821080287773760071924310686671212753687209366585351015986243272170463573537673171992248672248357687855010460489131613634658269600395930663809833134246934132975641730301448400532511858043455351748142296007885762724904686335159031250563248668969757972750580481981921100217044801191029387734625824691467986326474234369785197597408802002831109412472314568455091446921895454524609001833587123077175160022295217031730732535569598189262207122302172326887915526220561519874102505163352150507257836108842761288676322790971729662914848376706325440277311497225166288318319533157811003381350312129242219204330874411626247745560224409114634158383111345540136739809006231831401888918048051590529337437580225887330873287343574199588472623837793469994659341599209318167252814973162308227950223372714381114034263932108162157398380672044593950182218948765277690089535824719837488501118516525731913846242550838098476186769695185081685199000104255585111723205216399790224469432478000157364053121101542822285348226693496615897531869377170329415968917735416475510948705783900488898385209103365624582384572462722409340229045882291264649579672469698639990450719112704815306188219096495108926711296362059611476134535271423849482842144387623844321776765993187441516941167171148121210000570812420045750548027021357124435213775270934168440408814442132084379158044891237978910434609568110199798720144348064479552601060934422250743687905488379862481415929488648919215141604731602791454263307892062120258877509057366781087583549863430688575042576424219310931597596112695833600504813347158787745300033920001850383214071261848343367736170691709866035750016624016576694366979900842952787511099391078367371838052208070617450138422231990498373805204197174938825593864702836087731742012647894390565803410109922688146656369201077741047147269626098953766483646091556470671816121454650305591127212854553285504513225045186298555369336249259686571242551428352529257864228378043771268213672415338418241137599508021401514816884032403800166054615594174805764607729994129530898267620412706886126672196343894841073861393764143437139672514529691828090402771782367783077115518037741555282770446265261478167750173644329705560568490070484358069226897992042153736088086736782650960910545856606697542566582250248054093737511264435075413703350326718853036473130913753883017091979603659385804658373911507379299655120142818176142607491291492021554663899138514474476261190142906640852635445849061651844470847968803284006816209356345033247571515534437868790747927378968663813750248156831113590505841369383542580717068362958762336378972778017176272813249371838006412978106507493784295635324560092158133391246681969996865696290316455115930970535181970864887786247030782522720964744360083873602184968462561336224480630102209598244251975035904407402622049552493974454083909129212406220463303151736227233220974512025926735864864479342388553941932810012704482494408479105330793828315175308691798307460606381216645025521898233765461761072695320760679254259926219214911529075987158709128555004454355383964120941496557456959649024932027251408430129817606753031020852336084238004374058451391461726750174912135986203554046335321767334916925414426321264051675755744840316080887247713980923575874358195923387687319984611215795256539447716072555960777667356538458607568718082627540240638715464529140621460015804653065819822798569672000413839176623404335767727493300394942670619850996585616499441920160373252073477442939580234089708459654994155037125945696109245701322649957412668767301492273266833841841065651863936869888127828168696216562930144929739455573525606247780869809762518909358830747153612980788917558440336346746819929645047464897161379151208726221285455902679937314764219990221926558938900687119575060700802641255380781869928033252392292272065691764175948455827224236889087343942406765219436344101310469816362172960682721387923299827899542766974538528833353655560824846439428338106654140106470388076465812170236236621078460244014481461179576283527642003657428903494661117174836855581238628957106869002874217479155097413122552678598827000870904134983371216961571371051346166988501361703157889195487688653034215754833263913668907381057563030617623227693379759331010142806464082161637475647425752553213438738622305808979502679747946668624747597951613743066781348177102549658183740467967921540863296906267671680802126994196978401661248037394989502479762619640163877762639547078562280248117095565271179142658390750392166548125535549133903016810019281811425091271575682380700265173596994794971503271368689532031188886929661403854657162936367287624250753348409974673289048853767402366353465045274306012733235249725577360232171763110959811012650799015763681056172914612054537401145106691812587879319336173512704484084590693654248871213633929046070227704181908156289756636331364988284772164447581263021746528375858384016207022028753537705384770967459275646603103303269187585679019254189077253007169295839124114511014772398198984183163442426673073654422427601236246383291204125789989224710484329533716567253821178423053671771247858715814990393820792846407623656321356549248726979166008413033019376582335779681337746820199829347973195850512968214398104793817851080841010270822410978433059562174589455386245943925550501975451851534726385270643096500515636485252863693731108357830612744623088316030338970833698393122719732966755115168608883140626315432998249115802436680887474904795915620402704320664809985133936265355713877475648633278559088057404689905239199325166255639764999844969148813845469271515811668622756523563627233007774302719646877355096639313832243236297560989621775433050527244119221561853380270936902671983624554615273825013551791265795362098639431137566126559667223160268794568912377981802964249372580768549598147427924793082231643845187994233072876331497148373804130515111591553742938197259031767967701574285312192163008287493582689921649515090031954475807610121191403906655793732778839672272726667391649494920573760746673210843860079521202422931852425916579140532656766171932750397405486193373261073017681296463234713869732115760125890387392729765521553949617858201232364842263366742917277973678341553569416747810420149288978949158996757313439307566413973878114469485431588467543072488533827255421324844921383202945530308703032726664997564219368949608792189440233867246130169307238842864052666319878815096134812897177419393701930916357234564427699659052481282012038683820841273633421530147182044893060592886307110160985359916211934722174102593472908236664452680225365533870336547844515680929015994641185920895899825521782456804960357459354027294535369315131672299821954845477319818141219783597885306660509927793012420515883171744680367893751634463221442726709030380291110044632834930657360377323972580005978846040947302287467013254708711758157854009972700588810374848435964810660959791228300569883904845109333644336591608523570756274420551120941437486937881240347861904370601767098375483433932117464126919279157647842632138599327073050881832413687450506932295893266293355613522689545398959631960291148918319641015098729301559278403703753074836563035965010554815779431801841321187789301970106812421313658000880491761291217773053509518949272096370759722595154207601944184106475894083997595963414810252162348923633656091682220217877629343652428970025575518886158934306693674835775511353829292055126946575077025060011003037742458753667830780458142819348852486481459379736662620117687105009118346480022016334752217652369361326460021097827986881433629518325515999420572342306418852976517962063336019841219972283484266193305216439880878886392836289413523361242055124075773731530225000132683836444692242212596090075996143618792391436156812447373709943802002081850742773745568074989711084113753212097411495611016006174379765004440590648870693166990982209890394351293730515108661202787182990350615388852230848675388916962065834872905284657667048446766049836824722201059746891246236204612387525912116808851285462374989148368690637581706342949329991873556770608119241836618251054213154247531664184171399377282461953113131221586047604719582787550235335409243372367995218289177639925336063860583431102145683593316132509556587133296196376124139852163567929887848345873319680628574114580027230835833677600327737031402482871599320769854017120528544311029995822145726047304294925135369360463464843771086742595494354938902957691219307062186173282304786785046771710601274908142057005437453269204659564829772019471617958810436090877019846133127710575789593533921119124362604259185186460349455349595564024614191817709907292281123727076975068733572147364700702905601712372353163261263233247975332929330224424521801176560082533682475629324590542211580610725005655041900300456829111656702169275087815910927148605163467258862264345045645866300700532571292881020744412447935488049146882812768970738355975627230560066798691496131139614887414404063711943982134352280587826045486342136564776487838087138076025846777369978830968161073292617810437051466076268068403853090618239037025682885275036852302737336042192949273299542685121111041262274664621071990637897311814168484172356847249211496732548199064085724919122825945438227147540163131458797985332585597479135898457367997328338874980962331077299483424074369757118285156513824645539607412140259268938798009193435369680272135710417518820389063951701008400119035786197394995887971460569183338454713625298024918190659460872220922469222551281138795731518390158340920296639185686740859207261062508089055966112516361071300303090211197557610603203583750847000167423011279839865458380614145022697822416711096645423623751631871310902155813611950854803296517747362169494331904107211410153988201820591101808545401181563180585794366515410251442008856179807531999188210056287911989849033515030139860852236206694258361461088573986414665333597070952532586942615301296310191607702461208474064116781198680443529928791941401837452172703621517830068207424387465516301241494654333898221285542528377433089154697291882673271602611411343135353282830410395449439304885260834606316060858504159614223594081726078885761662687600869105483669110464242666031471084268477691220527920250713233675727274731068402159166679988257961644697127138181878804544771785279122599566976212747094313959828161399120624444397175568231783685887025414858500046050019033376206032974316783856392920871391961876315733195916065636833472549032541030545624682213962746029476642024472169756187930399686741176249754125977982246202252959744027614633772898794414844637817864147318593554808693313734759727334946190977191519513997714778991810504508260738523562541724552645435692380836124300473313372439277948306029409498604622286900730555440126931409645713750738233570326351590977347458827610049055074650394802107907991511870737080534545592995360616871488762608113533798892814844535424880028163487787305750836466457021127972374627202077634195944804237289833257695828453959316739435271359785530252021953072363979536325025606246478632241274785750049805895196010413824815254683063619248702198720891263416627986472374094698813531168748700307599674126969153623115420748082713219909640110504526926311814485963260126458744649444574700302390663972777518561116502978405806208986285165890846257686958225716530804710030079391693613301556908525016024851632905376169576612694885360755709635321634558882013586430785694187319448927622994256655976777112783194286143928215617712034463758246506716336975616500291915402803979926050833457904232399212264241009483202901207951094743096024104791754820074689385167861265841804398597552007546550975549902349724935317896522004648575866705758994743138648575339264856871136565145956786173702303754604300127984292792233091963543398964464684717148028813874029046176430561797460370627641858741365756339249248434019965308000274721833153950256328711690257128374741364297580144033594299395341311674267681120130723354918332911874742767898950732438499192146169583431884304168594056291478331226314711667768214744745043732514353648689864251955579279009160956230177504974000506049181099445886540477526713620317401690151289064961949368865831353067747569154624718072497252086354091552913206842923452788875636435606887754319595548450534882238440853512141114155737790186492221875293700886614957973253806361959795898056250469870747641757371703743013022890503228433897309350263843416333071443307228253413783467133510163763575253398647530766466758819857707979439574894612124982887652183430069344081666490160168612495565612213688206369629340434753248933905344027420599839820752162782103052401605344760213702155296946937801142578987526067628861646534706485929145924268316068415443336018040461007270854613129155586738290681401479598883950667014243301929067483652003917225428610586395491218000123550908775967559885275675263937477390981801300991338265691020084547917974184318262680381963512542128053769988952036547190933645135347099714157496926945676366484254012644866316807469527068182473100409471592956755266911784982999034633045202024421462001299624716992611756776766167961408214449209644736962811802048587400259062220126629724510493647098889566147463713807544155982733862791998312624308016558972846357278570407468729834251192247563005229772946993521541240402258430914032522153812744096747482200751728088337476850661827552245278160690419347545534828924508811087471349698389064923342336351420653123106859228302400844685797863249495750871345892526270540674946764924410667607510654591935102708973565482113004476820070442907763409945647148259797814751890498805827527654482652318796507846706209204797298360478114354821128942885455641071778703579520088936840889485904634941209070837481622436613663830667026839448503032838747797355727038966464790230599252224192377150567552610667071623187985031229927760993765017208050073174148145071257297052149909922629104511299175592738973127998041787573031144556442489244822700319057456635834642266283067042414894727585938028397701052500771056777540862294368766405399973120824152671524995676901461153447340074464922577328693850248875921929109177469492056949142871215110701692849303512362190564537389985678249317258115427703545515922757234041646030635642015924846236888842925366207305464919966094662722753297696170754199006600557351060277520277736507327909966796139732612852748565372567236361746552678256901886510592001828335052373976550243529811808094679154904516879709959846478352627345132372708218503560914401890202419097878451256382602397268702353986981849657486704955789898543177554986947172545861268789226020901211530500114037032769767629011760578711811028951025096795656586562369869668166279902333766611468068835721261001180237689460064112283241232501809297960374543095573566733975688736814376289551907941088456415487366540659595955606226208589850543590992421622880382043798460599491109296176193658915880227194407055594984311051335793330317892448603888190377529387120598693046286490217776233473647134739382619044799154233104840140713029108418841541186237336274152896093233964205230290369683700515962583554373525336534352998519933624312304156582530613811113407114093068260109779490261178004101454147109967030879990498801564617837056537747632749682474084987574140415516067094959793058930111120519822682901610027923417575193778308124170150932295919284616974386982874613939632225301577990024130497305215353292030822957743341250257599056328900746448758093533933552960869240476981989673996326927846528539252692563470830557339359433064059941724631303017293079691685886229106201953912589066076171859002198422275082754264071768136325715678495332282282387444892560756650402815579599017862953583526065270169454177193811039781019767602309413400196814440785321076061386725642955754753294350685218399633072665564978691900302547464350696631958599370828204438383116977228737896608955183055255046418150458081753286840649604416443236376440336189460271947403487375127818994655834708722879180422358048387634575755574310843321335701432567514645050377225802046246382102974725541621057216202781306629447773434107175906801506685142533266296584740853767160540901779531896642895690659598999527829364722494040425248607259924020675723000449714430300708885051273796492367563537197912505775981338427378792300376321146732768952462428323516726110359780228176260023191926490423394073258144922899119892669063017219359900234075180550855906248012100010590560120463299355350076664221505933598433147035065897927177686516531328775381309479864770091940186163850837481319473250447878537780227805002025883771170307367982744046964403322328200208083847903158844495295262670447327282552266809131416051536053843865537233797594126907797413047021028949962057341549033666747926521005438720874583537053393982308382659626555834913452747631154618087692796301448598183852171189878600167576245771677270133085461173125867644755232931079389827412996630659254068948051619890867537615822385149038877683998249206033844949314609741368231303647847984468716334269480974479362216338142825147787716106680816883731068609998810607096421757624628993600900019913928805427533169828086972080527519179776311886926315875803707980655528882702495651490428476302549865314105897216645161676272068573830103113159022290682388027285416431463288826024041696435770477103859288889598026273185471311957215322750563453027092527680213711639822755964810995218694861189414580883355160663188540676472934544821527045203354673428703706640531268003219929234848511738257065890317148722610499667460970905309032486436564234782588098271483164168156932632414680151213297731655446960371679749189655578253607073036562766681946873094644276721534972978442140315376383686263107858021004114644317949637746579867049102704937741565763728002779316087817055342512802617939261587828491555668194610017756583414753075394533727755061193403038840526806754493967103468860939803408730977991122841482783107940931481870178331851780275323982117922122648677826808245495449172964380048148424954026685431772623603998292732852890209573518673194588084728641638251698129880325401792260047839500330000051435116094282980949845030422004917821040957120546981736454576450036459949860956410670110365165672148985543551554557376603350261492457916476479239199732941620490500398642039505605516701547873731523175596543855462675380487306963993918800160957366961257296878558474443145218315046346307598497339544441209312113148598406256039700506250303001407907686736990147188046151180349257534906288211921049591872696650258092263376531186359416989418479404399764589213792046980526480419649520249437451579622836010904686607567709425561445797318013788350507384403995856879512264547352632683977327810029385272068388254119600101399715220953505974563360280439647789325722233755084532009775037572048676269969805485199749843498611539134558151069781377013749683440906572964025283448579687153599043406704405128240583268467618854432761542635968401707082562456624421501773254851634872000128447541134532744626231353059052204465404182110969570362380311501392487932230118587817590106746246419248129897465454911268777703188751869283093299304060988725204070868737409795181119013522170967130681653430373754440410315475950064144790130325564503523536224016784302872790240552987534934596007382072422955958931575021315571425150911339665655082636408097427173283630949740179511270511939612103247495365823034631384848339101097805064644973335761103468937099367022650499889002677747548556421991713619458903831236849516253357708479483445287417266477785958647592622798026060932643430672028610205629156492269832204908863540783032121683198677243156463201922665237816384194342753407286806609287140704119057502011372577472018601825519573253216727900539853360386574545503909522165652866115534843657013543611526559305158893261131901580056871345692153439015081469495899657801679320313524053381530798933503010897084351093534148607352549827271855655131958045593539256993473013125442030164017036940418978051848342966022794738111618952770536733633863685142147336410143339061983526349796387362530895064992271045631646059189740521620437301255131565777834256373239259950256156347436901499379074398081167587469714817941889686302332619954611144275201507796763522818800447243404570048143979179858879107975042553299192104920661360851038636023409222901263522270808875449984297796649992155718852088000101114539345933945729769278508767955610186478306997569325924087243260820534845261742586543726032082931134043885323121575628996145406501403721247337599856708500904001892194969441875996799813864815845640549483847837505637639576593510640156980245871797162333436960041676038905355336024147256209875807019420489752539991896639418001471326142789424606429482529522073601337195390739254133688898841308604585653890260271654463974229716993574459223006612346366282293519491545663190664167751704663626988018773589112496881249462724380853075473735884400432404413006026006729034118130672249794294249406527476655222000189175228183124492338822297528799836114905505784071416154989488466894294105200223508096370371877386845695292439971912016645419000622094968529538628910354318068440389257068786686894701461814006340566799707117544349444286625253568207365481883079887803234539433655919147711033563266379428983058292704407633749626160406903131144922490565133385838344389334818618831660789032264585004783830865702638733400786386207476455988637704205598416889535271105714821569766493997858291907012107414356682193826959836723323597943083324054069129623494903826054975186410678362056514315183559440231013361256175327625360821319328207976810113961014512445739279337408703560405837292565523499555682570565198222957520824827469140384437913453152249793601255294510643075376703196267760386979259261299069277683936952326565825726072835589044899431899793834244770550593945301578021142231359202152638771432885048760897468069818276115524135510913606494080815571563308781606634074427798884276951978642736648743490692518637720202682615229657659499041338913584633105031145440319003480967457643627205877793846648374078637562150119311018002094550179809390302007335089011468571835098340145832479670680160956559174690380501795469499688464955474176496396863381677562759745812878826321889259482043477913707938347726068951994912317451077330264256048351024475791933184491667962490101971682026422603321661468557244603621008325723228473426583534008742309023378432838821354606290423930827476314704147145191662838022796888277678576613164869067835244885790518151540082482532342502357010131321666140439754743895591305249930543227796628944514378115380992004929910701149365868974289137573138245744164080008069503607870655092217554874242338560966030665378323900202529886159259229959078511442760700895338060575868642479242601812932055096441564690355806433385085644183323154253487082951704522732436612570859389072931820540872466391429966819641810305680420395849515539646043115970670059458772895335803814451058179119840676618962386541295278470655883153715186042647810243178844172715718854485668764676544339569650237417792492978580795490983359922447592177586318981430839284509198036964480983361821610116380936842554115135159538951217906548618137598253534072705473385715423587947575860513958086507134682862829564362857553090489419776136256906892851925863631337773678213131432030658835435320152562760727588537139149950113982180183033468254283085735626506711966381901077211356173725060200626709829278579807323503248141897411804415931123651377296124380058975463358518497394769307752246942898164023499995546459807889433659759154382533186389364521722130179849983736931570631189999445213541188954709120440889511955412700018259568081187715722448977272253205919443398790772407653887975845720662859769066366209300900185758364340032757258931469632450741246241153453092534936591855134447535082628416257037049884589021380260565069795647904720604058187725137423424444584647576198639097482188086822473658680882002725808772294138930329103750337281364024938216318198139181428516157556860032338663292478455281885452618616561724577314847369231566867858794053817225291809388971339745348573958768779964551054574414014094376694147573609399118609464632495023382604059228022206926510544418811695592892099205615289706653533310947442181801480333305940122315121796219962815057105527754078939451003611803944982559417774108797917969069882078140574891223304953278478870532312845941795148927870207937509456444783973463071239390280206220830673502593304959243454098317769310232286272612480927697549957600945671496720635452370042380887555250246734142528009240459781204175717411557733973313465362891245194368902938797156428983669040476201604245233408306632981303227703136785209127692301633198509598213004024429597074643472116996635031754357947216769803301200694904543996113232530671630273393846754013990273581108128971165403052009559951143445056091644347160793489414563513751068752754603717613507761880335362672303597757623269289591636667108093181471700989779816319079003102247021477170055923559593704585359637466434108691708958721108038994244530938182555405731707391658152600188062994303475481509040844089068482882445093700477512670764463216601620341426315747519232455267182961850976734660701408456166049781184467733162796507295384114338044073280802385220540056457874905704536178323141385470569902741134040272320432687198665913129442174738174265510588513273651329491341830479429544925271546802746314449689756274569516920192338398963584378346022018489685544776071604396022247862069652801338515333070246509845792846813666419181951307959488989239096018865598551730863470783122641270810423215591008959736954778628618595979122785837520816838132143415735222372335776172148450496987195719325178970132186776775909353390133248049660143867061119691397027858847160494030052596295943307811816305185612357837108077958912881999540708446936003297332010634113931598670334196839859425120934824426894611264252155741758528761054346036647176160598069008432995966542353338825489682661651542976327003112196615481192840902423622589658729782099733797630080402648880658981606628662817060665984253662510116065858992051631070736964685475560429473981136950037879315635315569239209161812442568355149880487681915630460557479917895066402427568012509537971420547850760436851680485980415438869862753177196992111095217151210813659411591372924149035010297035688276436003832486676763471298568088140741125649700241426204933092059213142806319641130969410798139217839566440004555100728289235102355728758863467661395441743740677622653619052157571501187956285133635740025820109593242956947008556279825575656910426449559046717128743650752856504686865998982854824123092254758975645067553986795689844742427672956435302268797058910051604647016109071583918559068293428202363640272587554174193060090176792001501586447412842368196138941296407474306325604129998723045147726939626039041639830272194447922784144787825347376341234738282229426437479203717757435987609707984327077208764390734740251245861752685652992292902415597467027361666949522607225231983085968298721777047910171330799433937615419137070681025804211589105456926197134613769895991992008547467166033171461545882081622183721337575061067100165198919563151118188627161621123744069790724710207009454953405808071598079425646437210106811242731718553864046587872733762095717959074657230660507732283183526355186034373429828688276092973259850625617635619351991966885606616902132999733589113453448752704856502996608466318085236437213939543902930975852076918451461770098571742003050837958018588422101968906290740533052098287152512388218490008699066160205802173827404532424044842180736465392386905785359518751035948340809531263277536245740907262394799002339384436416993466845762310750255386066414733468700510920945729218206769993297821649665192867993143479295059531030241901363601505505950468515723588824265177578875258376919761620553931922955196634266205498337347932246653419156977386145145109945409830361816640642066981170481866638489692955710427946818507798750929895016553478414078930060097958344916903715856819834427892022184166011321651888143962800150917835422001351943478769398130987426762596852589043807324451939113412962783026008183116407872370345386954753088172609779796792506939968143553562854564649453201585447239224314865480309448750718652553041482026300385626800336224111240442350573161706796432586621490319417921422976734614364451071553488783724302318078590904856424427743504371269967728572182963369855711221608586599367343974361347927001609484195138684565628804456580396712242882958491440927349992058932532477239475529200369517715039714525615594447722809477870481527258460377708190471271807091313060978915135701482845725008260841718838076751848387216347997244625982532532367773542087495428003935021565252520319362342394430482376790267608299672428643955659377956805660217282726113480175537634831853932305127687134238639559916114928702896547156129180024850194627186175331981788461340803293200992796333307494141449224935010603388101610125704148736313439473788882668222655578764028828354544142780582742541677476382430655019064769476260215680453386249591194077008788072237221732072999443426833910887051641194587071016936277004847165354148125404113895940578551135060629318263299112563431212000834346443233693982073619245866909739739095932444567990600084587535122630151220843347779198314024583512732018609393102860012096259400413172193534016896350715128348788832270802535022736799389052723692595237990366545444163758408196469075624104542223645498918344621838841500281049237717039182272475332877653839739836165809088478138111905593111111250920560304185247422677001496049914305841251173400366214139826994214514397276497661189068856039614913474266429791233411243949280904714103311532450389765160942959549748893691526689793920360696688246346152376275647134314275904077363595437867005418054251421411479903862867347988346080762947150383190503175459211431729762575996455918009901048658508761581715114667297724815376289425599717254594846368103478917102642320204319469426228762050223798810258151160114716158462148271350910326941182064383106873173916846026389446581893992251436199060005730730464247532992710211519520586256108295859143720983045335023229073698311532367955592423663124349329803927867359344153437802300858770582246998268318287918385201600389139874391757455582768977849337350377283551701123529005520607773207411790124698490592039774270779689368487651783787996014412650730338361515306946603612461602526989073242898717888843418561186607059085340740923478915167440185786336050266903571123107228437000157762554929197002989815629824673415306760529864853779413320939945827943664193443462732507901231599225286474648389671257121539013162392918209681089149796938414527017468398462874777149598968802044246145543887120243682092856227483324789100503238516720265665714724121190134804362681404832531134551751783564157962498724196030385721739059290552597516441780061377303348854859926358729849504401850748957478414046098039629048873277188741688805527953412104851699734377937982766107228595682070117402447616440674310885562954722768045627912473132212561589182798503407003943770247870467196813124049914869714649100791209760180160742250807714129311359199110547998626014288293199661534437900929824965800597398141212715152236289066921501376552533857685956004170832881589620808959189481607196483733825491346558378658452227560971923620901080379358327121215880226648864016542519298480692253944208270016404122518962286856726470706017353003479168753491751213224596022969197878700410864115787788985455040119471941510131932241971607983121098182997675724819060100336475393344434432118516582269995311320988704300034838531909734715377290732818240842687712075057481065971089181045035792724696148591871365039832656893723624080555710081937079570868298606579957981356964053606493031352651785626368073690017710579352733551116413483060410851588891246250305615519307595480678644886726909257547729417631033311208247327357882501882016969629113413663925362605238820287174223222915117741271858015660762734757373712917618517176404701158937780165993989889459211773535981473526419806069326908515952132395430884685911887984997579742403590907393384954081849539436597270945206877908154063479232413498427370158101513262969201142558089590195747004759963532063758409767917978251594501941234028363940174330937272615827574673281228794601196360882927963941224957435907773028094876791583843658812934392086185368671212651591022974435152817877320908453574608612733259289739717493039069247819768412443687691722995337866295382215867274083162612837049123011932654131687756419440249880627387844008807401017431579737647507888874949393805509609484626865746500074234711849580346396464565603618016001182596658674301707471710712705875811602650298124617825776507113649576150864308140252240766462584589555442853301864683436996367251028118082908387915219842407199212128143031161302070233349027158877965646263844898507795249112682159905755826384608488436650958137924415742830607143290588373543006997936815499308352050348835610244074755259746324882741414029004631594972703487195030340432405512995072224444853471801922392908522648681066811533889619159205703665112355099792420183076844464405748795608074817686438044559353051762984417345305797380740111249670303728402417741535125206946550190926992542176418374149748324672822771263151308822894125443870764858426192714602024672680607250337971778921009081273475131900679689850922643260240651239454707079601951657146993068201007978644813537833996296631420695312593632296423098690010753954877511512156006910110947884166031999756609404767103856098867016783555402708863648810037933173857766933916259918076218108477669016354326008792881859575135703230764805259834204043794384928084540003391700082613512983251221400056600508461630765499720278633737323960308155836611795055840580744910318502169009563188809177679174125361487397428737636082407828403602422995148698435349546486189213827430556650278876412028903902565257744470148876445997145473593919563660351197704649364323742265271965973699952388305701494788422239219592527123481806112605562468479958192663284687234402834204884452349852553010408635241108243743760361910809859089625593202740333923623479802515250197391727366864267081799203537161835452603353184322896452062765897964455470772114946412492541965084369219626557785351191226090794192793571539021496021305096862760340322059258101369984888300144722040125727228198502760838819705969515441137260941490283093786875187018164106743251423999257374741606910471557888266881331747935985582946632665212317376429291935899783873052980057497629593291099717815344478676258952130069366865065256635993863223970227622559486767458529734784739519615109205057352296295239881543105690047404677234874234398590765283572253533449501270492511161719865430791242959026555630193091805398143838911393654274385173571828297972484176801197866623799613016460118160100849214879388054836496195312618329292270118570801645885068073467794754085607276370005645221527326755908292998532418216224601674994434370748586239162169622527601080846802187030927527949882201216831967001367355506603436713427100078087961982354991015684679291586317574734953578916816815306250429571679186804027868569599301809159341518699694897213427101734123553223306097669855424103664596429439693216691328750471882036796543986175794393680328090907156082656910428649157449706407023207230499576574683375525943805481453337064561052134059564882786246230746930351325944187533106907294002514840722054587284198305768094294885244792912967123511111952806268236101502572619169198098608779523867287506123353993492384831168174663697505791058932200195805362394404249744262587491098539116172101699225519948112247802466226076186428788473798086727791193143222422508157854929435335284551713117794294002752844618482989848844917883172350913046718162102360900191689800427510042217055475681274155098442224060132573525843862677452671000738479292620748547261880759474080198391460199318058741101219235637455382708741000690892714973205899528305357892032631201478004006933768052553347264823539479878147748460086252637897610571243371619892974915637936843872296402444009424878896011839459613761424056589413282185440819588707575316420676440467732120181348802968794458783291418425931452508243175129403106287799985903539023777894152945115054942858560577649099330333495034584318109337031960797478374254419161042761451563333129824355876672138864680043366966157657592071799746685826734381066849781977563858727312672370980403044545399286272721034028790937073024636314490690017255567463472482268794944252479799952345898624255628066935280686392240796617098061119749440115803780411121873104955689769064596135218084505410366469669612594755229552975061896467558453772516069656793672265073614580959587348532270965966319932440463320559760688162020569224686311733924792064299511228733593466763051059699427355063432690360768909098509083144385465759063604269563503204008053433736707637253601710259190576834849406601299559210653531256124172710606170413986713604334171959391017280563412711879524662907538420952273428303848540058880015859021505946112473729778277753882231059769488087622024855778578498450450052471569273902868025009512255963781636494543396888944345550186839767715037427698743776915180208364247446239222963902083266978861051438120636285049001423671595455364785863194899085815463582812664163550826719181186051812956823243620242342708082539584458304560649311918362122172479083333212715111903832810197197382069926336471429028437342598643398638126202898347207273750498412958287843044761550507201570828787608683964001052702917322396574280379676582350423508008115405047743862587298577031902280382120374913247377905143705680555582842936697331246753612477590827416817343838348536333378514505089769274754455973800919879934034371693184465642425099950650948220865105628947462575748908564344174681604450073458276897754640100607993480345936256898265347836101676705161289198147560976749759614100622829574609012033137688138597102327275144719802080266608812655281309395083855089315918634383732817803844792056698454430741908441499083465046450684357115053939745692388731721901957776902163305143921257049031295840765827627136201481633917059940173725852998745060040787854581447142108470206756732183117742952664502089294084258154962014197577986801972537500684387803886035615938135149928419114650086406636330276359639283985106116681926418612216416248120459149050999483899396102596147941802592490325859790347860885756943282055652452039854649128846492698107035201753781072141643272400403512313611933577186165195868915160957395731285358707457484320198679028920436878036532616898062122317135419798758465757570954679082500759281905315179626825758590983443956354167392940102512285483729152844458845949242641812372065912708961518313718278530125524000170296269916175444350339167842626067206294310838562640923978954417263545033043992942217041542761038433064110444989210281176531415062340041360082367778505155437692449746429076736879290292821641688590285813558696372708617272253223361022524453796283144243665573796794535599987682995513471340588236773384014779399576079405811093394695864307192028286448229724502054048991199400545725010971312175713336973831602532436719766492354131584514031095866464047351168175446156453525773535698531527343666239389827192259648262395279843655841689821965227072581684183168356312525140138715105549286634529995968503583829744864017251147866674011124104221686652619147290962880981581336364988751693745889664586050758552076722235804271380351112255220873908032107299640446497665556439726106375624202151441203394171483547385581501189327795162538423333509963676419058681357507470037648534892076930133361352622746112689540158394811083577714627561012582084621590555669880900268331678804179386791230979718690649417686582368022668777165174373761784917657616356633192742341101777016678085270149691259084094309783674313512476760877962402033736923066174026363722927098053828316827818319178067164033955587153269369952621319481981270531226335867448740695255335430602171897868915825855356242674341473662115603900271471506425657122425757417916661721269587994929133413432780650366214292280568916692917086201123580936724579334237427040980506066369694838766825344806778681329916391269986996837949953667901997487152029929284717598437778384568569769596423020927588006089179042521933752143510521644322576953889885385814697849172217764754412489931701225114815841941607728723411343659286145165263515121369262288043110137008392810824162043091090797721573209817886878756263183812860337593674649494368249859826709163265915496351512208882773755186472078688813340362948087670727977941158157106003165689529006048725189112048559898537613574636683043619000528861941145976959272175788360838963373527145766253476146405772333948155765433631255577577247275526237401370444818548453241522391403938226423191118560872328292057232624282158463857733039663446639864684398587370702123239859795191320569101550518120229305520051436780267037629595932332629957182250636263761758723766080023036285928299975604332026483842336829621813994002684499359720767015821987452889349343673225389884170569152015291580998782387982444883934441835198122118168223753050933743535546118066128229061425947146330465531230532493606969509072081544498132621552814466254751668608273704080727613957377277202671728977555567667292831718399635030829671111126406965385700366693704272781847424067874080104215680713263199796398835733397879789066217898288768138699376922839285972482555011026050291209543254243539027673031768442930938652530281049038103194937290645429883785458307700778076750718401628911541651971541652664234114683211443355017608072154942552985098766169756559556974513352477050123653047453434507057742406607394876298348871282954254238679170357713468036586299132503020962827560691303508297947186158723995706202829930230265418769886132071063507768479951909910579400415401600141508456612685404619745290743238670747477463107318894326572996996827126592511279590544473525472987865084999703295115676596080665335160348759128728147713849131802353522798094999185728845992348852292489860780486743355099222562429974601407747667285053019741007644239156570387029122310042213583804247071426405771213294452340793113407036692591889338981445212472418747226184678401576598838085795267117230550098094960626447121421658387302883291077030310564124766798022714105522846007239311158283425462260171766663466060250325358815624669211045738421178889830123093184315874010876126003493159154466311708708685286200771443860807038286764663618112232685911015348359061949569655688168040516714405834432449522620697810968776644554687856909057348312847893628934292443096979844210952093579848166384409756223698805510504172859704897472907927195848910495176015802649857008133382753455976505834025202641444459375545815366462017818664306208636950690474196100614858568469450687515137852224949244800135978273612436349870532192424231131316718233192850715832270294724410896412205084612640048504495019105044238903140981851102084219547459003639378185593640406900786439917540850456848117202049197398731242726971866959821691226421448109032166819390843355212999134603325412089821450547742294380663849759367918399272410106966712081220221351379602978825322548478414405909858408287694592781244727761247844065110048913159989847396990913714746599601512689542999487376422084754168717827648713003056869500917635928642883141391572333576727084733005809355934129817022675271678024744685042933840800911206228239637365473228134147607815424689092213612615147253512197869134426894273178593712327224726005203474813418947905258313554081311743935046918861337235409873969929617183703375092158729995030721104793528383683766959049824641840907789480008907766903980591700839450564144613448506520354253487170502205086206892348435370052018285479443787032238280196015468361535218604495822383924517659360552508724788753465026790929141391557878994518692771034634876832891728737689345215572034245738203725855388362525666637738683494850757447138338440307245506857190076068914419964789940621088233880063849040987372481877726521427847126804453685084512595767415373598978118289983933006908488202514410029670004988527047789183138276386856923780872669284965273724554161174848012146603170218997230004260536767260630688139288856218410624784566389436176237311042178236925818142061425516963541798688748766682692561056672553773526712259426751773380615217185961069213294764052588879567527024016633207395497574917817149309013606260423381269729978102511374311539047863494489489170865708148680094437341984643494805385923280921738778103640867678558064500097672784792495098326352509060853053515481350069996577012695071002549227947213050659827115781981422307604952250047153072426802978732383605590812856456145273579962771504193548892148213997947993343669909622458025453879680263871980469908452532923137087583431969036291180597681795032845279830062413922144585764283180425629451188157292545053123805795659413594790790597070529004383260187718049238306857779295420143515227815478356166995301509125265296536001606888290839874673044102913834438548790306744003279686833553023909879412907802288604901393959552661848167829777474161175117492176964739529437841062597965503497520158758020384859668239755465691655427585611146409690001506206790653355503733908929952956472073526877062715590173616867944601137755698461490422384523653633923252020551868468886723698423035564524005055765266360352315369829596145922526385871509455918423780948461638241335553673718025171188428819398894846914880966239153914676893190641016583712847788450863756047407173313039113850514478588105059136812837078786158418021327064751769398286671828888436783343289119822952799020298049501140777937902471091109695446600022508467344178553475228944424028481647151306541088162314443462646090240332378161279581370768994185940083201138093349008275836748482919723265425200591696491605448914712649249411446702076078075471029125823286703948702033083497031547494163839432306621774014361031439275228714368068975178193363310188181389455243205089198261909510334911209892132880639885695348495906086999231472312308957438651091647842915857901319141368250993562211502282158884826397596436719301128203051097552627506473730402054926404766990882004080171123171936656631342957805564292618447524004985983056616847719461881013580155964084274683979572272928080010102155599245232081826217766964697218658402913258802575791169083329674906176931669985113299398419390084316541704917524238995750293698107778631473716216601728052647170500149344123016786887714067137628436617015170670651953860123725696804192530215796444222055573918900025990726841146059234473462788185001256677324519741890861427563390656125932687476893285099175142049473638601224902997779761196004914190252695912727283171963236743126894754963587600063207836978479283826680580214787774293527034413684507388558605835798839392016983557144893171553634215244748839301037499240098660640027950130520377060836199613740522317089872883763013170374395314027322685273440387443102853011422705484664198915645021059111893737224899481754843664372898730638508639695731852336612882423533968405669274388219182846545806093352702792427231881706220159466529301485930321681098044272255316980492488800531132861232220991204721048640587348544002747763216536816341462875338221477054027949089707942744516773341132894088314069831635657213532737520517764182751024697131937171579149011560176765201141688299977220131939119098715227591247772257912155299292525305308286703496074575885027225497594311230311076423100799303793802748694065274682457828987625257256375270320103476097705355028576791362101035615034778063505306254966790865193165288902036657720065285561640840302043159118739063235445356275650741175945579013989839166748658369770991197698900986139119543453100924245134389099190783363308311813989375478935561243869747504033176224485393657466348419104783085428114649811802443961097243949427092997289959802547851414855823211929683560113395287580734502927339840620316697353157883682618813737161449156903974120854373104214881067832858574163413742473594068038825245889602645364571753929280406828265953871570584993879969977019062480095278841815828034005036746810234538190779362908128613373467029427894752862002378887497578112366814901027019294067332173288940796395829694444992471737517359872408532620077022912317873696049498681648751984836418284430599718630980892931805173019411758503802419118043870616480902224744621141404543439978424465990501798934676244632852283439350407228337261944536401402557312300076126445136056499250734076985247840240413118974583036827789041650895160330679801512068134468365814920320716733323539931356416244881540143377438031063721228916278175192337100379935537103196604457170944928036631709409027374462474849662944142068820658745670812766164025258416427335271051716861130548304181489302997914379011382118848877995140752968797299331683814962722258991242643401616059040836348602355542364376802619618617067859588351847393232402811969946281756240831968675772173464203665965707021717927725872551249840264510854894265262531873009285302818821223815296063109573334173012823227868822455261144983421303417199906612618297117219551725063416093019062616587998383175054204779151713971246318537229031025874867039916592974886165002932896941596091002727698141074910410765693731122820678274929011020129029822664857223070426776945321363909561183713900096030658199278017137300849345457996432690106765927995950778496244908807901492845452603797162653749105512190804810433062784413499401432268231015375284217741787292943622411962178437185603717231032847426114830382877501554408934369665648076777976526536334894440289347626478655701270783272418398363953252419278256283723225601692241357015123661343260319208228943695700589690802652395509776385354527948063042517536820414684393733702758902017575905764402689273765714274262170963674449421685896310092165682291200436877921770008745176707831841033753794812329222612188421587919378094281318466473079529546788371686022394055752646300274737612808301101849608900286565786670052692730603506443481417776172993167398806152243184235638317089068749579901703490227301172466179328256893353393193374044902077845350224768943938386647869392557336217078626978799436730221008114522350039909031325193855871742542114291472400693263523180146989392397274751994404757902716969229714637417430387433577684380718912580005642466359284393962867877865174299452579530259870803867064110755260337933198645959528331042076253622298736601701511143532433196630733826559735454866811089948263632243679693458317718026555271997604443506355522182681887483098506994090630790904426901199370970569192055121048755580381559995038366507517464197255344949183191830973209754302097340699664924752249712954666049084347410896971500497111876181793530644103159578078178948636382133141904274364703294678339021823024596720689802187753624122483929678141132036537799665491616534596693290769864608339673100380911196487413169910936250708326576633176248125257731711103932833934225255955106179596653839716650150137702636896250926321296369246210350829210695006267796375870605076251085268426433315993290249075059938195566920492175587828743403759207375709781180394272851131066252870123557814189141704065143655820902162575988800873069079351147995333269918403566814195821540221156811671333326325063987458742348409555263680820605591177173664174545230487215860743105218812655682641230040790023297918887514036826218409267050383158165058803228580724406811210432920506786802464093121003447888377357850969178297049197063097614454663383716340575325525754118951334154073242586692450544044797930616651734257111664840044536937922416563017772893065134583035812251173702483896214010296500515095485344060464822677195075136604642261465899066150803380623679368212479161129193925361677596646650611484493466723226974681998185399318060980402982610786309428513607177117253100062863272811760712387468154800550337165484316133791961861945239813350447251169159795722059403544820165039884453451002934771768127970176709985178491235198234056502323323625606316830953252870727808941741660003139975970298241550222094846638360580585223762496419067346067527414570137149750621597137035765842530118603493432301998364210041669680828567566587716360522292401257253664433365759668040182348321412552885338150311053939437299365213385727673200056723616804673521383910675156672713625862736350908854811044531812577261238266688446387197866262684369942122553070784640619759573987981893090584588031620454435833421550505813202405379522435134311118060120141912632045128439817935117612259468807098241312531326635997676682396487812107245205573793474542881919855809324096021434801289957360061375947147394350078710374650362978769229818548893392441813929497488530263051783250436780267735087531108286499028932669814583099953727833989830523103566160440608624213319233473230157358192928311379367458013609556430426347977537344064616984310980671188450456632147853852925294578453392310014903402296307726320690082690661727583999786235571234407260983677517394062023717211191866508150458430947186390777980440165277268597703826276834927832163813839229073413822388110534790466143113315010259526393504077399303103755380179601889206121519017861501108575086132286303935264523201986071626931209919701685137549711351614393553913198898970001514604900183389492893950126580023913185050652940944862732665952173670757522996340612071432271771308407249488784794425127015796411643836209317571323146732015984536059191853887719928281224753079004419881806213545708167393624088177600722045121317485748850535965086769020294420408480044357487394867346361757351314431483307496553324071012895010679968311514386697025921514773141766009058047251334738459667972625908894785767566008374093257936008697419164091871801344482508453041763748847114989292755600964142862223910907233872200673191808453878233787044378546422177314150646307186724272815412833413386747393640895032830246827670632051176935381584005227070941339969370694485869632953459700136188660497458159868124607322330425453262652885740889617555539991251614500231894821925705523729207777641944612714075723088658839737879649342671079780099536399712899938986522681404328817058253109641946770293221126612513041398149614742599526887328414780926201405942420701516050185526235227579086401504084805345575611406667109971801824060327554437632813125511159157019332676054802224609524465141813716510530280469431170004093965531486225642166467320620681370561321330666353276669989174954364872881847681389634247303579185775067315932379623394163350522306386462073640893969856204152361802777935959093614021191520187662365530428368231447288341391495010059144329466841008664795053629847567210104888913416572483841857234606526562054510931099040102773228855692448080475240664726369154123191716977748205138900396817525109996400592645381946154659310750055503858370092946851113715816778824192235136494572012482207654779782252703443788316473856287451622428585306357815550936538000365783790882624501943753619221159762679757536257544864721791364393688104750737651818620098150147680171188620298871701617112355428838708162757191951597845514113769051047409338214110072178755516656723443132567225956456809546865567505019957339023557429209879942542624334299379080365511173040629190498935139322124670597267979419669451224694952739583154344830486128576099409311688270313343847279043253018620751437181575651971273372112631696712823362391122495070674751788546497285410647531238218245175029134908813436706169674198049268037807085622659947885789579605791701225745101683137152189565090198790266006218763788025191931870226395684238106571684153520481189870045280543826385588920773732867613199619772478553327161120378140755566576002852718276238964042264313588425866123495927580649504831799083807083289375778012807688344102240197895884267487856025252183889919458324273793525017704423712561099979597201646124963673865008611650051776225528130817789730929319044600100996558590152981441732046577251535487363122648787270118083133522085430278263081698776320453437971642363775133873656104474347325833928030914793195369849700038949533749328344827637507348043812126628793608006126988971228278198918519530263984073700576398752479582567430137492510389470545623866922427504553096459168892067356383064800892893989910198745733202076908456189491166723479598230881916670660671057883347639178562796026922190276703013257830056384770435236225857641063669280107136753945354621184908842988267976702851569137265647873817250021591676767071602357787746996863625963447598114593299764979739085953477723258795784178710555892515046446455473827853832898632061568116093886653623215740040499556593915012770346739850248174011618726235226570989355378220193403975204311720709790508928262075982376089108817154464734225838889712511275450467700365329600621661622223923660562750717856268616962617079182080026698351790866507888389582311314135970356440340569684206110115318133526966655979404003116500900742718722557557178888871342689515543341260327424959497605887481748403194102554646803910386709918478699514023505404002337316759258550379599752215835993182608996427370499660338519202914965655608053435206968331420375557620595589260849582216914561752052447416306423843135678155101137598946384684780224691660249116283791853015020039327288208360146040115350653363971279495948768969060401928420027798919703559544010786158869900345162694303696608962866462132316450871794295111409181735659160084647602356287437914985562760788904236847879637483623681773322313887353714306696904055223699456362246276145725906470010579845391467451237318372345920875343515228409889918153937649225412210682071846939602282070745039003264948448199284460700340399805917181962644085042772373359320421672345574374957996876603465703301955189848528842811437712539282292078976724069434015130078593821928537422070892838484416758789641233147879173882463679514688079300577987618765375354305749407210622565759205646220403036702948549309523013569347594141825313900010009468905542026718583087218715182987687751346048525424724114613576897721988843374256426236678190320294598579489327264181292851720154265589203753983883493794471320404140810339463425375786949152664666183236372629771862489108562284292567745994894859391051881091971584406083521668014464451473270543008950152672444190298053763475599361216269202059478407923143927812301153877408492580686582159672380920545596432342797428930054555676667932706837181438540192054263011214657004312727450410855907284010993899252048772835373906754308175484023172270631329927515167503755817963929618248868958040673833055495553329216167898388083481866232795974651494388241176379238951702350639798996279767849143556530340718841983709035797790968109189298248476345585127855261779884669287131333198084878882854155241918816694473895359746780007931247109460648991245132179791706682860077700322008698920156788501502653744522623929962382707000760443914321696508113320305853179978728862990443201893810869326564501595469347143980061763168103767094514292783029680558874702373944071977788191767202187077343137328824022040748866515420596448716677438620270290110535916975103734608623745037769552786594714944009349095971626433697444316825751292281272457854116240451592767674401007002138805200798991695759189532078301805394490618556910276266014731807111250947519026259800123393619522341043897857434975336337547846203057006241829934106879902293071455625137666599850132636012600875567004511768838627028657300670982391616925218963505019651125736955793825416723889028492795532106428523273777585692621421857642518605690720796784148170638997387738148594492771577759412945678681627027315833732151758456169689719287216068614950793077172351062700838022296191632342975658380332943322495770593338501253992485023540573933401085818880781156822143977583878132385246419280499732118125182215148905522042240314664689515341276468058394721090739780292684618413093094016571030486895595995509480961371785186364452127266762809788765269259010676824270522950464053863404913603934024028455942969237732005334692257593942542998072090485526966071996184645458294701293437565505012845337892553952319621437206231044430102001534420318328871526049331788315573463319834187865511568809801992551600471167060729016383498152972627404219245966236831852551305796654576091050403501110537039161042223499275306549525605646528026671987657007691637725959028538895176208945855963526103829424260847175456394342215306868801103836995263014280392981191492432846985483730780484041124611527297772542239223539779534849122372222559290521190556805044528307343497858134887868124352892557839427723371072792012982097311321743274259589192602502058085302546320685793464934332926684655187082298037652459488491438725245279651188510852614853935737961306065573355420891969737680633396572357945872874704536855587899460690306711673632724212270448640686681518280009485231615478582453205326627121176142203061224333779450028653337017844343891011780373255181544099606057555973064442822815432923230892897478925172008827326054099066196089465481927429453080633909694379844745645329939143311236509193387959164989541288564580344121996729086540463976135616988188086531922421895005576808320880860283138313557776714178123473680926311624415683576881274140101530232687000397033257623168089463054709151698863725480109026763591014387973195854406915382623975230078517354270883981947439105450095272713879720001761127153688811778654366225184325290024630233923209102785413235398117570853446768281024960918320674818484938554187424728488464642281350947537286551809616600445568140286371123551365347196878993657676814546524454627501176941440720825399453205766664142420248414340693808918633116049682960744525731121075759958524759411170677965463067542035641197551367844351139953313349836325595902852120105591165003277247105612506067694311600582944095768588267341318519571147258922608909788888498942996518627862473656723730793438854303241873513482738908449892725797581027613125465312901577212748143518959367038369242134963071890228745261071290169497147865838462748526372194504414136942121538387575756188070622118943630580669902434616622399899782313459547693802370218228770268250603786595904920435593146512070011767518366723996773773120085345784688541125663979493334674111417709965883631681530467624699673080172572298914333910456363364503517098475879825620019948229644461456969269314494129629247584631133727097743853032557940905914314188099561960619299328555493616896586172326081930239907502706784090813784623001280762322539312689552607776568221521174021656049441450575571236954353529307408580206581994468201792726385243656733594842678271564980745763023765306614218137951354650054956838029392656650517117200541501594225449286199606844378563876782124409486348543722003946179305628164900109962682910355192691983457689636085722180203731703003682297898059209861693149971519874706309529311471945662752556452838053556386426722424898296956949465496855529622953045729457231245650381378329405597460272260755412629587276832494466719236241499206997106251465121379685632461981805054170750301848056175148997925647597966731573289357669752304310052884018957667172901980654463469619699131371252271935229855472346561632406470791694479099978402444111652776514033714749821705486696963604522484891849800864242269752291261254688028495812399141360931658753701661696454735781584571321652442219760540420205648668236646998780964390462047505363331319115105363814588119823146110924980855171381446911171818592732031032441310623590982910418837220091326676022301490970374711506396760159866790192208307689070071379050164727365560358902313504648650334325415576259355867087019785742611320351469505840970229430035654986644129335850522163213579423842952262971796118293038523037206179727129974126719372606242244169849685642984644223052809297216746895227763439702809013214422027150671478733930181887522822013697785524223936533113698971619285327801324432048933008737454742360851918651717133908509176612056803477596025861039010731480618373446056036615252244693666310173109444335076753649079506297019447682867389612100679096350926073969716001863275369846005896613621136845210480719986022650132755854330109511653435298108066059607527826958601519262877641905647335471199285395389821799463336977409179170810825300534635078441091414839977360463781514537651534739778265849893512515195898158038536475085925785378549897947436933223930535618159810976072391758953242405368841862454648268335655014751597015274665099072203615219809003670114507827410728310568294154307569117464746771137822347289740507377848750281518781435861026889795503530271115450586940264541077624980025969375156759807340865790324681750082100625293883696072134570884012856309784222018940263197180310021572329973494928674217350186582819363739470272569054772825263970971317594822172021709709196966642293788295701639494730389682574628732141229805887386661528827348167721448096259782632878261336548942451543680362168982039107012991040226455171712212828068882453114218017554235564119138678998483380374948823107068864027052586061780199310870725933073026463485244257181461378306807720674575082728651017795553900926574322498219066478008526907681860647837049177823605708660496584086126883793150282613728233475322916305077946099855641203463361059392422957725079973573067357378332522807052404176640547988118025321813502619231639923051193767727888132961695878550814838507855134799439137448756649119721191620639280671303338379035989856394071036881764383488854285698442178336637260008008466187786481831882839964936333400996809053927258011880438699862277887596388174933012321472457253853424250718780807664389637252290767473047955715275236577488594851418724547416308331635267176123065690141603114081815299641897214761943139481521820906117693941570090269890567324113489853807851082520830380756188907794443034338305818267767304174547865988601349864365104867696983964916506134564168769789134736833243400892972336538506588857872485485538418120988809163802481301272933121169136052201794640765044241307377178109913366621276383602739697222284937082926697107314875546233032565014141940049754437679497004684677830191000736201090764946509106352907386173231680921909945542387583623892154470300547822569927402270102023354270257678953158140613008888800126828365886986379608044966840976244368669569812628059141083405071968625289733378640738422026812463972241254571044472667263488481674203234159529635646204403057448765134375239712232921730140776554858796761233770753755283123868285066334637382235884072420277502203255463226401167493864919848738833645333789476300052263576951382118298414853468331256188768377997816357143886665438635993949908368358234375725400033012962479588791407104437634892307640248464468302541639862415573903384737981793897388753128717474434908514863894752589822656145058239997631794557776166786058597833275232989856282327610734603350053075626844151164294089330465337567718257997865650470317604831176327898237744214729993659003854125872205728209351728516681134169675429473885820361830903727815649409084999268826857402000026351559334552200213272397705461552891975402454277376158376967705107404647787800019510312418770255255135847492149094701230655106064068237095857299461896778595056010479083576750474095310347412753720065255934455026579327954179052529775893302378781199536083933487022356562193224771377210820980552969877519393824588811221993595222153515434189623108751992757429328116554384381457152131394892390740770894752586519715724729414829644589486331708702355491911869590006595898307776042668522441678761344105824597725608766679797560642096846538658018666470422660213636593927775476837423466579709447425559790051683678498176767342983279849371407847460122451777879388835824304905408655509131509379212739266789195045905350355875859491250548864741684032185164963716087904798078327995716702120865350267603191306481830117607391619691546993282842964968771725568205081774064969960026390654776540252920295264976903367001901193104261519140811148666601149605229084175807927793797219019835626416662314245654109913460920067676264908055943686584077692455391211699460565540902863022662161577251022635397926385907556198680353332874225388999963447842961322172385012116882859381547481817869815592962059519522065781820462702402222529792564040333291762233921633892770024577245209198233263345652814624407823105941529400103746622409518544108533095153535561781760687126392023417379116576773743007694737167437099227389217834669740612952684168728408212550174574274230803483591694049287149981290841149839812877806715446870180484467973226732809080427338014152504993322815992577449346038890582009396747786258223166287584864436748127498164747994465035075416820316182811389736136413816353002668584028538532517621781288238103042622959494458487083554768676993747004726658001854501409815036820919483595228626587159823025969909391666879171325401017281017599131199978561569338099238943060855058216223878557681110253013693238940667895351622637733521566985150034946533333908852978364133479308195383103801390691530639233052246188917492022082401970330727625384706177596495363838107821601270805692449330755254259107899587097254745426171446115661775015248403868847599783075632689423804768540175217739769734486358338048456261781896875465636699489930343501080573511322994412920481718971557265262529591783627829004133359266703720143755550668858663690773591024553322442579469338485448862346138151953922171328837756347247519256164359846357891135863153122945411913939055890037415976670041305377353338086693105501737795852089476783202482779029042793457386270264228829975368374051989856795895152333685995106907387648471693581521056144890541968376567933722160800635815983138309478614625604623025835459620642032335900174350012682174434919131389692311275200428367515457198857324258392504703027770044431386977468195757998193307366615005156687328761688170115603273936754580308862260615911187238708632772809819633827423986173175195238247968699492489373653472817429015634551934572862889475230677839084630899030731250814557199893276304711515302918363027827495412567670130101024801410648554053600470946725356622199161572543584871820512071358403809450022894911442730248738322474086053864345477036260599202765684532110649077796700775482115511220396281261543903022240743629078968028426398879857889834680830768100068393755371717401404859820282659403223929603184466599879484618914571468592305919410868623469644554423251990340441007303861370968082867541923838150349493029102109449611416473522347824214320443471809726054337498451093026346630307759077283066385020160707277442612567869469815203884248159795628858575041790501175585941026604860760407008500237083914156571663009016792116278894031312652252170903698530403730443332542397399780515033082827087583646854702774527808138549060337780883536505215467135607294149764336477635473495981506755790346054492357880288458968847982787866464842443925766182223756962591906182526261929223311814850812298033983427078426863232710125084006261778309117807528429252218415565065730051928987125815430386259410467237915127640248108431924837561719334080782333707074528125537822738089002201101641617767922099265089267975197062777997490135848706221008281680493725018795983970945359913779181257611846051292378864424755087702959448647496041760548392800843667638605172500436210372961395718799754796670627629925220955616353414493241448567917658134081102951929474868787635623387356587709382413438154237975070577319667339872880189755224464876026740966890016180609553755124091277723984404231919336183111514468714001569660972460329759014203805377150182804424307412490852750436536881187504976405827500816278995037030098442349641379895695307931310203739044598372445865743116261991764001172947455569005633462498599119459681899558719687203852169782843536902659821160651625832151722076924968894716909315900480603955982171916116186095368288699775316461164116183955682252060264975960046637154629843255343392974096928842499676734959244905161210248528012664049518543151971971178803025916945617503242338267585861190621799152407295750086743855043527638581582718799387393296959795426806807928191691133344630394784149571639926192130376756725083327172787525798018194732980794375438449946318879428673334734625167198254702404870869335935858476485872551522504782156220052395630559364763956908955017966246466105186404109417016338718200194484102278910139231598678418893872664446548977232623312849072824009529587479775419774501960101562649924139260921232418882771093618062386689295976338234742540773615845451357948533729642305303698739269388422202357882189419724846172469412135300094735991345504070946707212464911511486808493202759266852066463982075665501309522157672484442842260419955923093608428540308746478713784838109881512632326949806207723454145113317457083286546240874831499189082936562012232313527407386037013630057205975333119277308258686863821909761073725455479287252614129673974495454859182307542683906208725005162481876365914289799627711834753796647209040713229488634249346259250320880896150286119689572283663096918829507782685018311691024198639456400283786714838185021318191443926109243458500250272524357381197823551680510469094993802963382366667060821257065771995958869107553690346234318558856129348715010139138808980292918657566924004110782030436289103607629188741213103003900677190954817952902995953604987428578104656892024860579249972624888040957676362240812653232571463850577902426334713393250212240779580516856913942566958760897469398779660507259039627223952232705724143385644511482429919147292868696937686020221757540049540063573882299366349958239039617592512542067377640737674027524873943087636428522544614639486162839597168437203472764882549977967376424104551060298166368639115719837309878071203696718329267485790644033230121371606225989082413038648786713591870991884631220818630490805727232954884325827378082206351374189847314438331439304958184222915156681329665640585986178925304132973900488797971208935018985749097997172914771787392741049960707374984785814247991004461352182247045561113456608628393253528296987761443917282781144777425937810967582006806898778332760537157027132078279476357280164533078140258381866965411655614415829782285284063159590812964054659090310319374847877323436556662582867306675172944187966522107339416117040069129061981526753602495668019852461052362170581526569187625571260440642950304037290205341572970563540824944752738367666470329878199054130806357579118723466600037305007523684873716108981871154841421046714614782590691555516457501459110650647264805916029610749350987129149269804016307104367799411010249018289396586938855613062676287954856680794342003214410625868508732166887411619455567339769965105526170175911378277415963254923704965767112840895943948843220379880717442153249480084196390460849280504510579045607152549427938879490228513856835439103735399258628772140052856436128953768664325076384111771037869892811149008348954008716254454310036376867588635628763486088894656528964513005121440034650143440419306749826691860065888139013476502791542283981757899591564692017673383500282967486247498184637682945077118329564158226508912011218845635231595819198413402591541967641345373918940098574244391949824472453898145728619922992648766067279102634785898121618866897951031823335843988376932923447854075188265053618915427574873191589197753712662796961253006261099273597687322281832112998635123133618625022572264866233902082332787713052628241719277425042330311085183066131088262657555721692438839724042356100278939935030923695135691705999211934826897633165711823381051427319267200558114256450716255929675104093809816319411905560621629673436075644281524322918707753822797119828330556180876038995259482408217289515695490896122574767384426273165791029908752393725915105593715018897917059979840307633073636672758518070941677656142874769343922784879862289315733717666597145597619842138993720636892194495256228341887282298220261787325018056566103368334149972975342813202838764191703171167049218095018719044898536211219208807176269436803741846050901906409559645631974970704122109640085302765563313953560644202309004715647322318276540905684111952587350060360807328003582466488320145274263833990150360734136870946386648318711794602073281281229044504302648453263245519551460955642642499114834889609903692954578730646219069711777932808622265829394597016498262866523607068124269065354989138541895831811626800788676875708521344704116787748355421976859706840745887233586157296751426762285487667754279670523862527916861768560311333714232269074315261639570296896923378802634437178111308086195467204316972659700633938309088227090378385259314263257810155045666118674885435774145998855387724359106674581270425716446456919692502267803192926413691497613167427908542953063417868721318128220055684318463883621492605116399705699419014598103562084265926822034501374882482661977065327922047447645804964010773551729619185115579730591915913969889009429080202231138510955030477606968352945868577810312305195853842191567825169404304538333839031265266442399252873428799500636242430666530293779323992051550305648589290631100864444286903951147217876694513015923505416866930645341096925927990832840288965162354642936008032233666407231225321718297101949594072124473408020941298853326418728681668881937729340773842083786843951754862603252003251712421486771776291696278242019401659207679023557036592051548171734531252547002611431981564138213040779166613792519646297102002227436039431947032905443168303835822121492253272152329647257895492413989710615535582474770047442616181728392634996275568662678318686397088937220795220320601563672593895305184470098908010167381889155136348679883963325596023364228782661911828913593686226890463517880317292406989548826454982977984107575755920032182819490885694841501321701703327465728777495753230655083157520704123752504854495436737908201731129791076273344564972261010158407100461980124555494824554334517525238317592036178701317325754073289362082324306328263888512416724878966034019457691026162907364802589800500162335956966746486549716602298165017554640890315906575537448912370731463655280428990028354871483969238484556149125573035943328469721192144699040212654745098461963917641838555417429460928529660966036358774440170638613491057248018236406178234476966550329004585830277551463520577566147619878083337397205777347729192673704471776829017422312747009668941315568719020489879891570248392232465785020069272070908063925612301439151312741798607540251683769356322770415294970232806172850687106990487563277408111998346977029957651816450957923943076752705345247917600749777844787174035625477087152220294546391514813436672080811255547525694020801126875714247517782594337498562143550447017140112901813306015487104266326804625599153372688633212141570869044817002727904003614051167177192645758942260608377663592721023473535390958222004306376220945845880141228349646359343743197089229270516205499226199149783130326426668025431142297492330167265666693184409065344277762112302409689583824993545023515007462558884746125220142559759540901032291606480402568965271522793422496050062690671836772994089427112587994240586363902434915369747426684467455465353894076736781039940903608836016922396417999433295330764097650919304100470655302775800618886783163427988751785542410361757181152291431531137501954166307878021042336244507366136513306280683069927048528679343445500159317715157880666389651116080289103600751439985338834793373901732655805317334889379428922282719708421234590249710215411884250221420555518468166694583518867366431000916034185943089870095958959262417233305626838785756419922303665204989659845351700884088832316603524510041078130530013439055634176433340500992837082857709209016125057687297335999322369587798877475825959818625807167517079887469962719579150700817653733956837164454462061168321176007257126106896928545572390349403242511216009881281220809961433167050795122607993283426741248974902029178832315367707326173876654507188845355951538225504098252461219166437504499411877465738293074024722160394843805198089251454946960307565198743573118764358037298817894505761018035308068334693110278802634359770840190470696442620930343556601623421286399234953824206701585942031101507350924326495547893914961197384411054361067835696206505364343555491827537853477622748589274231970465899598598871796417849763189951466554658064430893830932961348759423897740661530213435259393774081901455630445211842801562736673991588439846512612242970018262161338368585247839706354300828665809935571243716662787647553292753930483440106318442363952259241804219105574872599182927013160355881773849447259992985183774145290498452083482910979318640582323573306842147271895416609622467392555100795263208073236980677501816906589237434602370469875523478564790774960878519053850229408168301156395837948592556730121686056218128417548304760207038692084759781881672398856510855464296431303508031782195075164154152583063039952323729180458714424672192918350327991966873516341897200245911578786460025415991704687311879976289916936779983747600158622432262742738073187838600915293055392560626518794660991444009716948669276474056737521399229887025843464755615066130518343613234943309951204898350330207507881960490296347890911386792078845598015668986405394588297941144460831838672164084290560945427424931125461651052562671462991468478940371634178474352468375307658853242368149436610346352210875782037653717119558513433532854416394342535826062452517163603038851256619778806933364124439147832213215870662887896440076177589378878741417164058123794606381306537842394019221637931455547025665857709219468326651482494900228100080387416115267325602701296359779542164878133067111993237904944720478680298749275189755739359903453323195897110924751710974864894199353723531133337678016561227032611805606618488945566086905954908705238353646736794223193367862815149625071223556146992470842203394207825453951374292903405418747978626469792063755206059644942916972354295250329578170385142335908471963871125456438013361789292026105565948845086304022194702807948983142522451899106090520828257436644138182633493905950957266432205601403748926719906803999371269475075565776203428639601743667605498425418499280447113496671610846423397201229353578669940055609904145244931584290855646292266556852242218189631478481581306112903654646506382295978688759009019752862144543332626240425020773550302278789374492518030972027191640332946804926933254623958375492520539157858201203876034816935705874038868880496744116387027776160087298907564088446392810409963091728170550523841049141696774517920125248013266597349986096073326614612259944873173499524541414412076041925559912176719456864374366662334843370178252149799424680337559077713154803356494236856144211600078492729304989158564397760131019907903863634008782944385634282417729009301153731310495284397311265909717169491397610217014514988472421871176165274078320182769088944943939361026028048402725747672580580287976798132582831548487172602195324465970854598290226135216894526606751547705901689995066254486349975169932379827537959136922406273040826567924691287742203045027765174515237191853374938383680685651807432003900138275231326896704586190266686580966249405131445136698099169364175899578331665844604362038125940851343091137224386412174869332700807769630613126089347596071129644753828033487411201599729316031129485894799591873675887030641434423910780638640561153184100142858491263327527898329904686473116643760031683319697230043560791297552567933829107882486688457040414820688098739781360779840364870930078117980172940863250091541926851278921173264790756892510752743993490558289551015859818206418968964526606967188966447239772516439370801972255331067000753392334437946894701836478143219015812506314569064800079156218268270753675340309153141786923986883797027437400503791900330156547721924114329645920271310606267270633127302438985489684407869026697607763303286942561489087083475695459585031266966076106532330657240815667742716979062144089860400307148521328268672660828924660267824636789839628987051227832527025473882659989298638734480503692842681162128407776871171287897962051093741890474361116564542703663849134496588233182422515128469895593239155499240423050051802336483991800265412993245028016797007474840583024242009121719821136268965421499325494312836651715564470217447907785558143013301636745176591095307761709898704151425890003356604915011049915937557042809330897087520469351930299177916627311232342856910810492104980296275040953073805708531595581293466235894096132193671835322186736184871073628074064549177823636332307234176942808371101457421826689708287916966243168859860761809355659362065873070517521250644070356675840307672578392516087151719935428572183837769459942152154664906034850656683800925511264780234651233908498838642465871872489169938770423917616265681248307138954538691332571327215970043241918905450612149308708389357483380626023458074624183744156133369284602704637002090823870497711975028823618921328599854001617976182190989880695043931078333800499955532791446345864589996208514518855928400449516408505885965766113573126550572004329299305355686236228552123439653010886463937071807873250825579176286097929295074990784366157365451582364397729069944563119697266684701851767232403953555600616980187560350000009815128227802632837135246249813010759190897532020991934675513633619695135333176764870848903800871183477365228128114047270289183041549160326397724489350208399084656938706422412584114089589308092592165949040349556506897824410061758660120252352452709919142342103451041413541372072573009728768957910658329461880169416276930981400079560060740215733069491116599730437235442059768751241651526178375075145044032711060173053224177981443718963665264880286437781124144261297516467243691296873789318140257684062517904876493881242047398053125322567584097707439472731894417380505903095178443081015737958950279747223232754867360473419313121688909254501882278635370675752104587964142960376249947123207320236037761246285681643101895693227612511862775516992947409502216136078189448316617080562962471821217543906085626158446267696457403459737641743829822747172315919449336272344255433414812043000345362636994024867686427902553863092674808307977480637212819760704247663706280072323293239260922349577496121873883001068690838737977075068493767086550920677119521211849637355630950392114293481771457854594016077541993892027223158154818116040552945668271487796601495157861637518033139170269907530632819314111632593885021427344278060395879346284896341289301880583569271530383247746171809768936954156102247232829700613962706668645432431936097554561476290771057296770617194552431664081111685803944739115100888939139085899349221197775495821081284571315677337479512035650414822523724707311068068448131089677787328176855758469899446745226258245156760037684207922604432114408579697742112464401408155982443860291209631284446431493342891969060859630779014417194704457050926922977189228672374976061345353610584949733913134060208835363611119226532828361612520896968180147730891283420739120821743607398652099091671433019797177410191197571093662910484815090966104493721838813227736065581902634968291180307845829192874821309145185672628957936842877364967948318546030971562976559871490429223309756996702491706761556651853760348359775818167462523698941863096988221010071131851415664611080702553748097958034143832472202008165395062468976684627250595524833126786693400726736655116805063587353175248143931729746174997828400846764731750027127110937521103870801517696473141881714711155397100279002719698754108219755204705912474888611365802487123598377347360416828464933338240594515368166581114016655244597049328985621091386223512934758014947925276766788300745537706694175132051957873456692849725741966776631293441528720976837585241083026423092244613935896899114855995377030094664282808565901384098121381840197041015170069802131782967927161165417069071514845589333387219301406853493295359463170905222218148793543670024890188954769257793219637455040903857496604997386578013658068054686180695907860614371802226286659632674845080824114477228718553641057687492978864258842729600774715470258654293591710354549048100338097534880580487440081204318958839029257187566980121320211159617904874681971183494352063802747585785787053000508344806453248753062563068804194260169073475282575998967209042420461398686970451071708330310808945560238149574172457778169234685016298345865759873992320760138802862981832671946289416830183540433814633752059442646087626920303410814782193025906352991371249193861832168197594318793729603828692740378311161376084774912567484846676277716396064495836991748548568655192986439104926375105126371407322779747723395975473495516382608723760973267206009992281707596660428294630716045872906427056587456756546101999344585492528535129815126569900182355772879139971694910715982572354213503486199841282607364266274994038594773184928735736571731564126042226595726030575925760936745824785875700737192116335501960384731243597496838601562334591395443117128417709663569055156134091874496389489235858514346139123673948359953405134363292079621846534394302874978992997776785091488442895367877076702646289792138197431980050998973262472525328307001547813619416910977123450937601030190512255748610876025369270354993541041714670440248159367513347747523454022134293133313996047194895063481473162309986083264703471534158879592454564211800263158784788560562738156819121715294416475000202642645653400492044712130297399670693709546337055541136451129071436890261154233424652538259397691347037723986335958549463883032845375788056403092381798197197802813383772635884756887890697062148262899137134478098536414928783060710995476695912015905472370664010435246720203823519495135936851680969489593906852953963076931579855623958554812868524134876285831204789463727085280014538087742359091394965049260287514172092484403254956890927468243846575291778223945920829838166695747977676403912233101372345377258485986085929379931781121147903189565055753675493140128016228224826693433238342990007520750831084257905620409033516894820492700903433005639221221040072333855579828287805142077031574527390930189416238962590176745784696458881913104198191078671240363396225073649689333520664384412441985846461695639822810130031479069911246758441204345450011968810861126989836826704952585638985261839653749375657074581777871006225719920474407291396414998660727876908614386614859565573913265366994648365118904823090958543334719547864559271010695743905555111145813785545059119559847578840102072940800824467746035307667348262518016741524075026256299160140563091305741528879179360441988519369400813476081371775231990411730922642049060159638738850008466359622422898378497913673710886441982188948418868696483843185386823868038028928644822724819336276371790106213168897294276951818477516397386653678405635264238608154853094273088206887332161656622274534829475233623024394078941167890473616478460341816866108718597143795104633292062851920055955834582264356859723133546294033801859200913869402322360732380775206565474586771557366365072805459236350173266573814783903842990592391780570779989527462633101885035543105884073963400093073209069105201673953931857752701192750384392379013756232700095524164698345835899275512416049554851545959213034264084884782355049248126009046836932668076677447997566499369873468488208689107337687895494689382104381418474309877968109308199452408571540591695642892364650432550358608285838333506941753738047780074776941925861714133616762739389315631878233557346186119523762774231961042083474321924833639587706963806652389587892380497488737638223379830408258985841963904061858578687585239562361417515431412419788574343384071765917333431546488873292382444324618591992558826255698379466535674072954525154565036442941105181347858661489180181953750302276140552873608663381641989321436642074861913193339374010422954850799003210165524053640696218480623995149459616925518993768686421381099055817627273059482677156135016390791602521835175411335111677583326800497707301324024656300790668750966964286488174395683759095605644599443729609745968833549168712121888125534737035621287710098242900031305794798465054170963533543828011778319747786334016010224499983923245755473385955365877246293525310165381608436691800168057081794201815380520401831664481479824283767125397518141493212890439758464927756657897180212938766284441573701681948921659010529199536752216481579895864942388266149960627110971413885465846871028415092790083494877524426743045772877007169627323512107742380004144461708610462736616473259687670851695369406596726142711009044893191887501048047999054942870831429868785880771305585542835482831389973488745941065206071681473976743887762109695286493728730519658492551144893693804445724760216669631078324926852260526847902859412553514789766711155127212320871692548296510548037359633748898575790240854587304370531293902128933201171600245358920046442463016497365517220153853968830057883242177776682492346300689604990610280628904821616113108582024563472026405919051915430148276235759593059057402757277179815735180918075584196914764304881964449680385028212246342223129796816986555682050593349230303983165693418789551353368794037664585151033532706730430455734810191767736195040778801183887474640250136454197784565167290548772162228356245268354970024674370829605364126107579647914271829425376339873171821572361029099116929803264424935437617184245854774064084501887692287841424452367842589834019884416868690928298746287695181667850879504405804253592383888867591249209646647508000544676335869870007930161015160381737331552280526287642219523155547327825321505440021778146363156504012587499175092008820447939854580758865710480515761356361945211509408721412546421222942440553725994331629743266155235107759528178403209462858213521235414258808542400785954429829471167401855358960322513404719634620129594582617198690053775869498650058726624941116584635039908315882693133654638832394897276536569926477255955721257668526569720379519687212240110102499919739935531668041789771125597810882281171347202165302665172703894027987770344494291128176314103875019500605146733364147767922580364657825869881500260319792727588959130548298966432132078714078825239504621994049242241726254387708333746157551874952154592395446727939227687264951643673649665543137354218182580755331776363369172878907654361447566028554007502112238938822303055545586171769916602304164123648617354627100208446449107222144574893938712451989586449372456227707457999378675430586623113536934971258969115234401504761497557054406711103855716544056027204503399187678363922314691772556780313052256364399335647767151588440173170739903808398519508966799096380244968425949441606848488197410078778316150761485363041501208265744884488731925459470257760149013913952480558679445771942139139630126485508221444144074934784187850725839494780379519876933149006445067409753203067367384568312502479743994090815760675233315465407772341514062302625683375633665306041213581055276688169095961599824912056518508493995599364521110498967882163580055484158690267738317191516621908523722203779297789099074959196430791154916436855790636268675594745086338497766960764567362326385604508696217704380911817143929961182528760475299891363179218556086297087803128801575682069468807287865465706632313857320419953018624583085040988672193924767733619531753501255444731926069298529518855140148571779852555789708934841359502727486172825023898952178105590535163137953601585819186318216367809629378639181007187926253486278744321982846438171775145398332847800578661731909354353544100295755865270867038931557456347083101117451499508808087945928097278085793131466212108696038027846979795831074348644567841051000773157227926100053807813467063227359423176826529723053867892598392102918401620043844110123591202331933471084295497674041505148098911918169659587176820617572008192829669632044044923141345458324410041385480901677894969683757248831698277359293526322575558693393863218110553550734133126847331225945290459513225217433137999702373028036286253673173219080845088240296077642608744375427724564647057472109633357910259102426519517377770104623156307794857366567613150351982150390890116929864604593998252930577175319930624121251009838014130168706032711388615754055707629354120471991793885409690726462248404523681492843595472284631022750548599276042353016005669449698556798234370735818120459830766029105332709316720966384056187947103906690527639603751018625680215456857404494389030315198063706803789258615707631131810847514708058800354310901447761019629272806910152946462443299491059807610702291492998344304304834948719435156010810761115225285502459799620899029341935917287990245780607976321927490682939814841737128471802910208966551560861709198816854847381142458865040345500486698140340001632870075185994281075982383853429269615844033766877110187726443648174252081811495055021971061317337087049250423652189678505027523416331468082531763039428584839390755098308923346633210846676580813534899661433973098976339282063926032932447822186457654997455449953123476264930910672770792756880360517248270041959611189132292454373431099027126941782272057763845609269180526943196269872741281399941624771569434698030367419372638496445150526753905281025345401849859452829623561679056828323494190216189325428541655128567394440190984946625234908538272285124870545382614363365091483571354872870999688398878893243769532395535648012638927730661268361050861645042502589862188664227536334503039650246792614696729473396052192456537105007925975681929572826804157124779133911619064312992771359949739075266751682713100099497564602697264097155799375633454328643336729866763880284941394786024332005759685455038495745438712022242556052986484788853442650811978402438544300972055104037569254575169477531790321106023035479898140409930602216487523988238012636261960514165830114795106007554284703925926621851579039990377000319136398932967356435237907358074898738585170240988111347977699301737459280230924321179667723557695338325510540685055074093683841733772191724563922560822511594836699333170451537267373527347927840343409174207298938097370815951373478863392498579957721643877292953703455055907398934493507889235949877965549987099064070976148847324090446984922734432296759118846625364089036741529192700904230665044363941205437861365949380811755626865677104383215028435824266680188907938019897280500999831530178671533625470000369308624580528643078473810302357732744371645180210277094211750898065963081418594014144533639750945481548102267014723696243071625139359357920211061998157158570677137728557604344674626452913589972393620962632132879663087327842518710455097941560536839953795020815385276670991999840660418347194545170331185737120469106860066263468752383096153834545670493850663763538255629954606455280407553014724956082438825595515327179528597996845603717284865937024731544489214137862128171652709435317497239025522110428251253761478692287875812860921938257642689757760596747254970679981477981817357234536851131588897956750571944818456297672580156279637094216781364142611446511609802034941194833218631453202166079959600911826814192347651208165245659719474920720272685853668911703325634172703827317623536532445421900578624198856766381223239222547523029052949720185846383272851744522836258798026035000522761871035859636045674456299231030327376277207966377632355850977617836149170915945874077084891038061152001128699984266925263486565297726136336878696269613166794632371591292687233501934032796680884680602002204209047753262392532288417801748248494436352681589007140363002157534036766083016931986960489049619818439261962486182989366642567603530682894580002495429053522771284440762819930561342183328999666832701311390460529695088310098316408641328880111755255202259207860771490956069036574124714102640632784128069241213513255187005107290247722720021655027008116552066262914225957856408486854455328455888602498277381793610391447378124289464584002590990764139600509051473408624166170448224386743271291145804617644757416385896640789166018254063332285649096189496157529461722116750744168206540693461197541025921202195682711094009596780915348196570287834468998088552589532221167197310336914839627120432449298688915647421165855521251678254332033885234796997322087828412069263916650748294070766400434335975081400736425099171912056739803005295737759017727112943180436673128612481947053780082138900076441526728421469780054849307222756654456699644083849159243411037263206823595078388665731075783809226479862854118053913370967411345510899063680620367714129412050750875728166574609934690647252383584896241164351524465833220437740976149799355790912765922829706256096648660481790577297708010982523490503532299704192409891525084805284609470451467536876046540458631627754611031612056847051248372641907565454663829912899984601892705634285475295842853950665342212269105163304349054615857735786689152049208440626049052408770501506691657363255890449125791260311234786159093577717217092746957925520188538402757215006378689329909613483934461378981328119200203287065529855138468081176164455212258453256830395058572275885377766710392812360362005078987195171123554128828991874277659661478530281135011413478775355119666876513813517502309349935740938768359963619617750906723989631096920622223555279097273041304431029294809157211778021276664130882111738342278167792183361741537158141220062270766125212289724038038018132518566281482361169753718697394522946640333718348947011172488976659166824206419237057938735814287702940621685892873147743342967162908434679477052268452129071351984405703589021156707046878863427277545836129981882961667003260220036641794874936507510621084769767678657517110158171478945611370865471767977485579574894890827830080729021309106580272029460419526134975001006836635424228291314721540684722965921563708183907722243660709721880256223684321466734974437198390702132862874395460005701373641537109326002741656511894230583470573073736527165112142051815538546556864076611311928139986391848789514934603614380973844659009151707018115552871563605687020374904298447078699556779202467689691199463534945570940738014748966012572512940954982317657336227391692227204695843145526949202189718035622607634193569237737651849795748397396670671311634307054280372681042662642485895294994488591205992344594898330619058281240758120447938131088269232262504245110835791211428788568789378126340864292156355586228082493719362274640995578473184535838331611418280665613024618060234790518907437503282309976420728414656305682129855537787873951067570764025684537628759984909181653680115606930584612971540206133575654495819878819130455872757025321944828128998840490586456934806220412567331810241618604682622159666285379148318011423137747338109389315889235617015796328578282003674909671103482805188279095106987741241888498690744439110529569398803803838632511241634025392583693739269630154940183834582119268564142541761622161750961716563032450069783873252860139539967497430660799791100039054688770372813397948468208000251103528558475908918542774003690472677935736885162528908328192396450299554766915933256495630113220196382549338356128874755133980941311938562282930228621330538044230320611606335087015146446564971575518505134388011675831676098918288271902888364641242231265860478588640718100237683808833565031244612834265797223312111982146425450251662688436384240552793540776170748961806720078337478459836313673355626376304041882010642584329082722001574135494674554810587447185218445233769762278335308940829322802158466847961586073591575987595830797157072770187909102088936626579090089625145157138962175965470777680299619297786934413920163581263596841451941298487976932342626417050610928140670852544738633688064069127721997588119891052379828462063262280563699694184022064905994825369305491268102525893307250596070399927918377526088284420141336449546569593240056628441847421364048269269138695917438175945549099119207799561370318305140186697191197197309467428660087988604168751551929488653910568418439221857308448244380020710860916777608018848562833272474524283885579300710599605305079455342601199180481563637388136976797433098740041362317253894147994790985022111611125238689840142145339589191345090916034600999826631885777993624166149120859042489446050962324825540939834428433154176646946066003045577535134523490247363800730584106049846582177541993275515900076562075408237537387449645171793187940370048946312958094894575709871085734027374710172262436518561371477264791885115883474602075412343687473337194149398988514740558967747178876844729559766079136612611498074312070141979566440415710540014039218825083908886877111050952261505184523377530028809021762573332710856443707826367610274054716408932236806889115763894516029952266767184669472893817855024154651904490923686435258247281528151830052601530482040616663247740366020336833156547897438503917833183216929685540598862307328647995105689435135120506895663863150732446285662462483540020081870729026013970825396254499769525303718449723265565613297518395651848657245492052890617802682915711048485091767061223232807323756666299498412838887236964299400308734435591209028425250403418711807948629106463075987678448662329608555753875798453011804790914396597300974678788925730185450262033936367940221390178277177033412102788039443614841053972942717331830883823754160350820421047432380282895296227097582077092298595579148566745121173047999312338823215789251867853046124666420272073208353575589199280869437851515256773860961652134069410970043947864627408397589040092059307756548999402125671746277123133524413726004255016096581215067076810119146831615475091307643159065061839379246766291549530452141089668505235020339753835786614512653482936059152728697987856208923539170288878772233187907553928116479205127752643021218615273587505726269948890724172100081293719466653904904399423762889126636355411957669841353298930823168207463899539524642507294827424503303461110251458007417701101350210758790553075590938668871316357559652517823304073593584527451741350435966942308158450978993365369618403459532278343514813500301016590995983033490586076636091382774359533415935982540618836177078536290512210704378343983875540064956855296001195391201377900559400437610054538555618733766130578995314539626505965310746457143789784150026316230125613002848551392522074157667976625305223299865879130349970726797646197057960189450804158926345921236401272389869697409021924969368829488297141289796184481435145284565540164026491687651143849428512875268144990366412913733523735864799159479917038290846103759895290950572925187059859874393415121488414290590296676346094820199577361191441870271832517508974602962052342310399286060996210613665630649794647342712461329624011770732589220841875691748175887952747850841356709964547639438815112255329507719281036474975851400923961249309304059791244034503927446241195078613792596020317581765993175488343991819842411857656037147345265234869037733027487834994940502988705502168467003720432199945811865044697083979960497779419635489990781454961582048148581268245794260119526748761070097276987505119630502636599312236405132341187114692121143355089851128812274943897522123578960642461702048846087801934647945424041843883432319032436825694649107184537696626822934741811556362072665314985156305475786285773684720737282612014835075193038664239156132319413970957590589322729712328506696799541908102107000141742877882193506022887556240798622805619640582958211617884320439670773667412983919651106259246322064745540538601641359661449979419932912571226342818930673634197425054433159350543467951217671569710563640276290365113895496312890048953804555217985194576447490837339476270721199581862987642753616241770620883570093102682480112261853253063044247916402593789530971136182774141070536250829955106254436066541235194971238826389518448081178585194456221509234435578823961129735334498651751509478899067812159588913126995514368769063218433543525238424266245260895563234966082536758779675572362344077972215833339763779806831041975932948039004049394107457002801839176915176460539607296123502620297702104450216318234480841205153362886684294631310478833267084725023547608720963809621388505465435940190951793940824891507693768264319565084019051178674137888915151046843250658791775661783007130508654815555097967445028207458282644726182987838742890256735469900370537747822103600576900801119418529241286511419350546717222395724888973161312566649721345095558376503218863854511427749093667239793946901203859477119624725230965407991003325275657411366978632673678190868357832691394271952333272522827680197348208120511019196255705275605874149831178260388830345431176849832986323066984591430167778263122168768574455309535913387790197889918082994032569105623096638589120595819723443342505502114380074599818613181411931116394702839746542849170272648570639700851775613784391044877512303274062865747190093067757439926867056441121887978453810931290582102171775474205019171501981996668992960646464188773303635680441211329782613231431744853665015802664614677180030526729938134820407889201907103759869318590858460594297961125738866011990672952404591198336060131663534367159359453510463776675911502608780224746935598375332955276589566515645307377466376567363230192031252237259958460665775829325651442210656688238815340526025270745971742716749901926173272291046282127589898097308319267509302829417678597518883847948798378988035391813820402234325783518205197029052924557149988613550535532151995344370536794279516995772427115825369763824280364266816516438885931957014452200406810253649337426246484849547421342840105036781375012563912384784378939628180071675074440822587561170190605877679032499693984082491647495067569995375694227182612895090831855968165938706747154627389568753478955749167188605053819864591273560738536893567073419310563647397418952438942982563163638812283822250457141869581873604148683506557490272179824272362769716955712494773057108327290337847247464134723787620915349094043177712383757140607293969866163930769960862948978951426046242447418568288706311987326732699639169488498245158535531929417942843108637292922019707274858666874208116356113558726359129633063052298987099764359490055507232105752245559190624701062400849418317137245744294905558604252004354131074455536277762202403600660562451177259468313496508529859522118566590324100501511280757418122034168127893186560492490802633899770299095329237894571020061443152124947209692449516886326577453715424782697932454772214567193494167279837237620750408440573454635618941843614068335032538206174775445240239158568066023712522510098094768645640162358505272118090929873476996114935128714678421586559228081725433719184533365543161417408764729213624634968919522472046334186821424541384056058170384059797279885917739221707337654616786204177654228098553748457788020215477694547313909170675416238506846834661255233104886398399233696918209806025695277884806001705146970994269043333651734112217143203925146595228236632102870096335238138525727494143112287414609979061493021684787338872872688229382911458701267664900681795384301772730046160736390367859714572178977803577252933480702009759216058462543895274538440673003239418005852602750876420779755786095995192786151667032017860993441800178562480918567498819747603166431611895702462990132827565879437007292261641043097431584591213559069367597339487613304566469136866814098710159531061681490871071747174605156739526173597010462763211643184573175796308501851368596907776850418177499484523429499682780988974200674685372689017388795503918719839330266903984503590241302900507709948982112121726215610882831465538868304317439547060941243476809878646240170821813106468762473549767539523051813006125196133697926254727455009930307545884152187935099669551943083937326125527266633997807910020082374640420391084612729830563349447070998845534370432278857338050424184303248236720418332665811996865540786973635532279514294399619103549812722531448706916531762738213927159152867026971232830228277893272773843644122324400451791043808324913014379692009953939817785912166274047570285679760766148738481731291713051206253462574386754592818765608306172492964753979920624832297439933405173843880859753684315208049135516449430216566602393794770236486928262468636645018209640448874793808490448318712384486921340702733601250292173528661094450620285749381065756960563990617589633940987223064169847249944431948805118516436123896294285729955938534083706168358102968436252180735871244436136191803652279670477813187024282675429400037775403873216079569165070830027301731816726811207133769269586158318653118355479910915714051698021404635271922627348475479403518884042788842514379142594121768556115626934913962272608018114472567652636571609922252913535600326094407980896360010206243342410701531515939507162199197586916154839655355326063615947390462638935246743070987239756906886759611844666360399501024998226160815690320111784347363286241147614331986748165403297331621035250963467504387417790579195302381981437731268510850286361576655471050411756985646869033093415547188741421883029789817212547053235682689664670544577890934429089870993648857940686286946672099599191213886229887490770141043014201878432023028239755709112924461754139059519903584522503896626164359404243321400728934511777470369041526961722409934025718139543902019593815142252581793767647664420285338956195720842669941218684235563431392317554279850210842961839611493377675206614073124519191442552087468143787132660667302934170087779655261740698109451692445915923039936927018540736532560153562085404962874589248887108824255331251124830851864793801099719962433820487317621258870868479140021845300001037119635096141343465980356612624999221006912280784767505113864498681882338639812370541191895780007521269479818155430656743332378503122825501492124052576669822007590951078920566599053230455026648612979447277946948506346871574638297890361915169133887139350390565784395633790677559473648485005425753726154937302494865139962112413204563758209387896342335945869106176326786488697166111520959913416679303788289532137407124581995645169928433054815524835283849438124536442342776464561821242732931701224663567971763023523838461763657402693232412649145533279540552845164501922020587522962623258610031707531994060451812705471562773878035790810230978151067103505237538360075877344058279876630939228792105612512672993706357718946155626923617126570916003598518033776942188838469232859910650093406421128477805499689196274662521086755748552254645115404419109268855856570566232168795733530048016057662823162554975248210799212206948486985244039628791050116295928483367671103783318769979232687286017170784815210120591986619232540422531115060660470944059690125092634327209228262254006123375823469100630877120547777018597648718823561511734147578376372216186957024780056898799926615832803354812176378967385211759743249606570928678608817695410283994572321159509971332557262956559560445127026888149723789436038921897765814107461267365712948772856045709364927188803752078675304161385434291993871807846870003306334622711706265989281208766829552780515876458698246594168268117070317232873495679131452166666584490278431571725454983422609495852013528022516472233556020044291203817463508275537526617377146012125683353297884745798187322277868930813118088993861188667934700245984030112174521797616193470410160487153939038329915945001695737189997910095651367793653022091947305525504268040640248702573684827202005429570270488967481353129421317251533527254987074899359336483461262775903078169204784153456569318456721057930778097271697881107731461864873799695453688935831537891861346110927432876802436626406615665100517502123211801264201217027845703800695214881990879776526362798962898759678564230517641118091963081239809083072222181110072561672961225674965317112866244587609733725214378267197100003305298599684832795519285890875355800320486720270810531948840125483997731089722330188505946471216046809943132428677833693406049076169162343746002429058597512464900497388156635096529568841250077826110501151300583175162889819034712628182879058202210996773327495933711358886360388830838403822503763352225421519825762584335676107835158320499013363360485519957222830289832986383800257201456000808131556157134015597707228848925316601122295085358502330820759485455937151079559967149099086311367253699378080683850257787833420827565041688410784108361499318126652297820547213232124229054563018634224293418676031408905571476435133332801970209450997543246381157575793702784369125536811083909047890167251221793933105716860544193828442343045325442382942688329502963275483187500535903284828636751933102392861093226443810914354632938357556263896179126072823334265649094967478451630308421840225869891779044309253419491323220855495877744193829958999378935364986509159662834323695233007311710244741216424887860912460950122105219038335379548748533147513610763106321234014961222065906639443622522748757893157410988217649349921325831479987200748909323803618523372271681373816084303158450773704274180446539613057760380055131177222723169702939876072648477885242853135195235869313489185650024569259889941858084955133247562473539093587701487560705179841206132888786765315181546806027169418261694632055068560329799886386489719852766779617236489848982875044126092577736522908211693300686924383163044446733312209427124712569973914172820299753198206989672679814052831422075557835311054053416176949179234742598341467787191728391780027303630415795955659825530013765980262428385718235720873460688680357218043621062560814651905456010395230082818788805711100325943913801194344106181909521971838306741581533851363984368899080548929364826269045717985399164858948172682166707044454985134577457913580469709888174786401636637343454719263900848295716205752833038263567512201717469832772280232532028556233821012007103764109958282459542548976845812648576806525346683116144387085927086377613765839264793661429827482402874141611732597764552885668610912532973021026939601692353578728625400970424605403161606529065005899539946173212573876106150187628939757852655611483561143195480048248470145023443421464837454394490566006800948984551872747847758342658078009671562066769880466577620094269105274913727880807402787751425082854025665856184947454179233133934524000047480331936381092892397481798109241858717591268745335195262837549919966068021373917371177755293412026601585992743381089033132063557271780564940329428122460188278262773256852586881307396820102496762818110390762852669138079451442291768749827597540730690752187676257393428648720019222575684787644555315509304426209763377060599725591304751815046708562014443522764953252895149934626426324748227466617624524346778209927467388250686706830343001540674482635287384781529517292637049050049141779541438260384815530062549820663463856975259354895966521084808045302355763277704683513687157975564211855333787970922164430281622175718052643327240684197842730074418135085376755716640923381047043971013254238761340124621748544563647211128396582173841514915348701304900751245771456358272357628284973929430309683909159144375128754674847169945628631028671003064747043054030788389631839950503698473759826517061884060601461622376299463280722213692449191703220529540741872600053797425024676907345281430898698216672741056885082713425035358921691352062469864410712486524006630341687692411255519625924769561982085089553813972199366448204545741868570125227400359178387976110825613085233740809319440173726629693515032105276095105733428824769829282748785357109772156088065406556904023816476909147702212730530053064900083620098920776480487974085682479099824479839024555313683585340675023335303649324150287922526905652152496546067809716402271774864400729895028976914179767719321981223701272610041611666336554278617895822462203266298527733605017039727975329607807277159494456234922101028748786783521661431048438262687691978315028381260618395199126718399306415177775742520258787269761385751225371578181697189478338029749686931565740214536020850235908922639784411153807550803006125062529369701403099126364899868329935148951001110359705150599454788066160839166368351523568545897300972325286523671899988978123388470537604295460842026805210673305352396573177327700273041131142194548105095079966932850429877363722822505540598861092680425161552614996506254533625435252091060454499259638802115151725575907551036701183568521484445106944347966508690124457984067294412988698705018101102757775180376257579378162815415286700841491031633425031575906756746964195567334369425723961480243739110031397565540517150647224353704866816244166012716008756214635613748881430435284863337798214544416178489955791906776606081843525657496229434718639621405239687390019603879713900449255811031631140518062704152754735518801572663728165271975581377616961188981468024911733303082211311718483540023292878460468298133623705772767362045661293438644267460846956321006827730021742230269598865634705325134389355838571621425836589532998835266150286129608653905014231372671352006201633014799332245404437135335574922249885598971930364273650886712624497988364685221553797775308859814240959926254531213982444044780336219863335897142381267162208447041132869632546462711516695985125542307775484157006885188575593784505465221878362122847357031264581094792650433868222564978190992867810424723762459998569028877794748992183043527602386697488688806870287578057952160084742619574623689488868561647512885407418278598447335786318028342856912665120180765368011106817384008772185125699000216251634206829128868545202787898911452009266138029992962279454707349160306048868467273960672922916371797978947959632666446135631292389128723728746148821423536392082162671778040555175601571258067426156208222025979151765692168118111280762414581597961437659025560355228000473106879877786346313385657795310017209475638738683055347123812295091812632081844567749433276930087185074042049316073693069748684636039525940199630256939861190927667816853723454109267767359450528534502771748979158915589889552575823458363939538127650134611832878246590710154305866728584087127070462991554366399293262202955715535922519850650530826749285949298359628775643381357448883215690955293452859608963021876980009850743161226373525892320063058343602453884831818298253048501417936984453151478428378606407036501333548489684060707675239223438916224650232594311938164025891031119886649702636399058123680625710061993755105772042971372513265780830660799087977389220874085664212894541023668343929812128767691035584530970262969240126011793912941706313659999912304114396721172936021900076107195327379948959808511715768930822720274214674661645791162795435132212474776454973172155887880978315470627981252697882637866608596823288465681692659210951167749231239904479802088872341950855373171851449127534579742748937247713622580605953520633535495876215324461360091166382103125910151501045894460177914628503997038325103938063950294075483767144772514521551414489587074738368600649802290853520312564126670401421262150377555352526278173685087972716420806365126907679333863393497062201082577052625946544716749297692906378162020182015018663404082846940627560100461218998963819985978022840184113364004037390393892165905096706235646362654598641710334272596709553772041569258003030119816388679922734728545774053096550273049674898924851396916316505959463243962050989405746709465192227203593834622999385998329989925077493850032577870666203914915695864313536796953790833999654668424141453730510141597158366556493355142762507210603415255642049457395793908567947948480551627356093575342179796257285367146508802442286674944510490921772131872141959984965644299615683630322490364710066968256119784983153596898739313638441551767712526132257250813026634658795083747022441100868550139547136962902986219545305599924679469133812614654350848996623935467283966416772125806490360505737398079321659681833166987010656450101102286675426035688402215288145058116169139812760763571205031167258324935381177630820410095922281070978867231858368368884824440726413586202950125769739200336106859710447016163452161206707013989174944907085254873195631365441200840373249885352210284507326146616172731834448296532686987127905713448219181915495666577663933609444343084520560980036398371994880951973196093234680500805251312826734393969773680184488797027196594859142389097491997100083932514220890188041454869492881201998865331885067863971494849184764693748544133938705770943030996695160258468178153459727875659834115482273092387172956882528511451102360667199636515794851166299046652321747476113037699054197553437996662300131236401847719315584705675507854792282498055944084843573643541266469639512241190561273988959513747754848948377796433693061436252360251229003079586468498878687018996092121503400690203003557493548931238244628959911796943655586189874205601174197161015652351521516860498248774267965818365461172445665212873064666214570627861575607085691976874878369970086611147183580872955528644634785990811038747426938049237690945634534149333941033269502153639251010537321976703061043392165251801753066937578440077002145318664064957668587298326012419759805520036405994245027783328467907811603097893914325705770533827884030137029739399916577228580004183969835718485889268405413191650685528351548519599028899603676320427405059055759357260150383433575766699338520728791001414870188550186728650344318947135437889820689990367296738461125152525107197762588480808623321954781603035647099022124274286147216844565301780910311753825733787399036697720744634938691255624662387954381752856014853551332430439612230660745466141592260790982684110762503921857582606977216981613295837476801594165760932365104868247929566979612014500009429020667370626655607333190800215725311095324009679299874353885202382029065409572250092301600494137296829514134788703707713538518806551406413440880632724577712947274592993309279920694204765057169672875820712865771760378339488397581355423873869093103043904168628935001333950166285251965206298848491882359164648164155042160723610482844086264523400652225987679693154064289200221180640147608719706355279244669049656550361599678489794725963970435729729191194936767390516419131326448540754432353284501996898488615759563129117700822233314455387094455186828064432860560082144649734976199129890497512136205977944884140171680799506199445315909116620769843717882485232274865746359520531507780145303526567599671127100228340864470589896291457288999365324729176971909440547057928561246880472643547130603071361988909776056058311818219245756803367126132380345711823125600672001901224607559090616503092756988990152346766752253921612696258235692955082035802259958939661839290814875780819005625077164356992066484718665699433370880551296098422585697698785452997301848946230996432043272164009278487903937277950607710848754375847049393840015604022098967503280910821789803204643815022848777224954181221991252467261028568358164558751739688872270122445491215715228086961891081649862366145643608493928492947116910535533569347652038902279132509111964643141090290669454000754704435195975669064273821336863620181089498073981336072419584005179308949314626484967315541953460984798015030432086840464982910868612137193451190755389121497876523648122193263706142250340061669962911720124827630727526278296800465367967309178798304569649021157337057610730703767669563013988294735825361888145059462138710356710205854621054850299233742580454310453902023985895195927099704484890844487234682778962718594397539934951591052818166207806711299531979374180479838134870052825511085703559744646345435528152558148658281828066460929535540561059390476010661698738179281811466293115581716412534072659048466790378721107283056866525466813161020290504461069208896100855081951953073680467895948764088685104516919829743306397772198565676115151287776499006272762961254477870628185862670850623721304373732750185537386029631405594920051673205021074069909583901641360628327477875034990377101897472033370066902890154808371407289660514101339602186227284710822086486581943844759991226700181174567668988615951798919353413099759727564960212001207118485501912227636012648624376386162180222876109346916719685533927867811853104849497549320849622545032647621876611632967135058347143944178570300443651580988370176396443864120948878009728323966673395629024799837497800644699578885703910981208843736291978952227231072857793419462554910993672594959008533091930490611572722812380194595039934472447927812428513499918092139159678953423421441763276640131055830687067630545644773384146316938852647003464488163959263508997986632091282200797815253850797711280552862284230440067656753783707391713685200607182750166651131945365543962749758873247509238646608762135263088262894705211094720167876318399715171102233566383357499782367863620571888344417849436944754281296407041624761392134788405695989330226150723506655541220278584500159771712540291474903552253682623749758424731849549775785552922619573099007860152738488277914009093386227693235845138409234034087401742749894340624390905849489176926270719959192237057411386965762310324655571399264625405507271368241853473725321923523936077029799424777845793764085620961931257815900908646914679934128498576677808151547876699235077663059555124967849842989708281284127080279193534762517388696260803163210174209717971087997350739772442681083977352326041924019167177703874217866326129798586509158154624131729330927285277418933247983504039487885830898733878752199775029220660117592455693437080268436170043006796779102761184583369763424285193439348757899790632901730431921022817874549601182309534656899014579106962441792466962500898674745738149859309843839316034788231377357892380786625061863676987104772614216535893466199233360736006160599011682088857124771326074902556101871311607114220535448549139566446341514718807970920924330437601372966552112729780797931346065015938725043386882520413465424720802515961471593343195110000838176366180250599673798866688727815389780858178014928593536847409978916458456594281618598807359447244789792534290876264621538286270186846690555556561273162390755495264201202108958541831966231025222659996941061364065576180109669266290535852370378289512483706734307475263443090482105298370793682966415073265595755311984522822472023398021991332987127549694947545758358014015940673897041313498300647915698340222074657847116033287436870652300583110742159536632651093239932563149729354002788349204383106074667299625021812725727452208743950787081827340628113958854400579296630012659061400071516398952657462544611521647538344520049603855975180798729266855340847887514651087301692109675778128271495636491186960950340785880755737737003886247266387191332663861079604675489531484303622529736848493532581826789762549286555510249051325142549617781368318939170300469715624307288802533178786346140004634782828558440839263230478616374805752063781784770090212871996404265187324356770765340989565000886818118793386136403901792055823827372718227522360298053638495285951594898375325615677657850193634348750812374569526493551515269294746092663584183712432286000349364027179541644141248049952456774150925488779376509624639791758381310158999410586787220797037765250218413303167733495459823286807029353864446635860362832013102623339190596841693911784270749120117795245760546121754416278720176357807970331975012158802778846855209814493652730328782745904124488705388756902094599483604621596183001857204434098692214657435241474506191598262069254831237688324832093524563179449115064456922031118159240068279022233125277159892929353528278509001465516395472326476282391662347387235448403029873232625232243083250615670383121106825195324203950788707986149582196349329396596098964531574054080204991234431663173146566297782135925293765499327757003097465796411992871423920178668005111177624791859422218415302243833472796086555233911888911537578920941291767429278184584879488636403775163339436510633263575358335747175538876891932242565601847957274441589934203172113206074630512386062432418211749012040554371517544376082621339705357418986279536679935860486211381042355858144113282755057852361316281846183149387173032225123288834865633123929523573762147260662895897744553887415808955307547150016390911616771240005416162570030392844517962149753228299422587903189472573707466455471501770646081552836749320185793845221490938130907582541281174666309819319444367770598091295538574610714866435712580525770800553948415767453707012879737200379096256196743810241618534446298891775460391052194764960623782424128589292568056334164969375274222052890151540857034970696242866583651981119776687654621379167871358542543434254647853742895804217910494255655311352491813321105160223901977600031873352029096776365119374025120864082796687213158668290062323852163734700352355151869422266298498335680062804601548359260778136934477320971744918346299284086552046799823711026150949325125185363343309676688030327010620038194561810747940244441148488547274215638162763400719093921218714770053804187068334462496641818707750687339327179092356228827578540670793924948562167193218323826392794389267408229858053296092784375688003328479228769048614075906155953257893569203492591266067018025924028521965929838907120361081141020207312253150791458265100326302950757048231936190473160480957700622749963295682980545060160149690594585371392757590364134175227982406926524770838512924844129865795980645803255911334367398822534938167394382364412422447018772433447465999542212923207180560021589770040591303488044381023703603576936522473896319664126683205715383842861333327358444156111351076204223328563416144588446404217245310239132883609925260249338937690666016563616448649333306296705832815901665839411268169726782971548060659252584018230961568139880780145807418096554365392295889014353650134624470760301631190691395711754051380957497374640171353843409119879024715343105458085303811320999978565346908860049423680880455153039928911934819367876450224909986890639735637640638715656043317572413445755645539467609513434422471500714324531844856591443106649319859986188078636234049125384489267419676010578772221257426625645892882259722810699359582303115913395277592983439269797115706056405130732407150504859669477092413496656673815570219295657580822160036308089444972140983897770811530930226599267658148947697663139114681151455480371685522185247767473569052484910343790587156244819747324201298944575729816667863805552138644629370345991705618591382104163254712795934199772400119900318360823936422658711824057294862417438497375731970352050980370174104509546164488750948649319885745936192711861287374083897142996601962762717890784009489784030421692792587031184904240093991969103456469404088421150108248985181974770006900211501540567173096055422358537892086985362853424125508136668366082240548831745793901519159068359356757790210345864162176116929873190231637774593016862669395536648215164670517004180887199644339417604868959909881298177934412046168339805364271458706280094216848764293512453456579988239590330533474530230313603279492598279465486824091185978207291650451940090296217696221538807083736432336703923043299333174914510906245838315897334855709790495616445873008887743495062953095898195054523782286299330074964623335483406601357994190249101413104086395833983925221403208294750025796942917380248826307198064201187332750712228680151443461915987243484826309436036972543857822188911369481197098786760803032626899272798322346943590821088707136068418581658854654472252968410064842105057571982590079898672350872378325934739595656951111363063388232177560197940871024988592747920648171025486947308775232613754562607803837714203495873613622609669004544867070161830611262593127506691191814435818134626931043475040662612230901934028698874447384536884030762134799145870958069809194846175690089341498643016101138541541550563726462666441252333921073318601448585748747789972183383458864466505977906132125980211046860421981759213821381812531095088462171387563083815198078553962218997078913163683460894423488525451770545459204331478482137538700261488864149256153625306653218862724538775311481158803108353702303128464343473794261739411675869598381421785433406030482114136771826412805153675607204184267747520820723750433723990059644595768477571565545691721178335545331828284863801270502149285566135705673578408151291898887619854302312380609960720466261301169011319585632822176800472041663919795677443654585947889803957576930725408363253103799560018351549234660585568671020953589830493425471664085634052478407947540533271767927843350912303094005755054234523769049736996405251693069918202320643448112491341747226693330787467510906102344748506348411930786367693725506316224982611387641654362699402181631739187112466521706267602153160806812714964372644706178630092744088307038394468178160989780358961245412228792446805418624058724361035458678194861208928757890002365532193152741286476570042060228211837021988034326107534426775379246726272356656876020357434560257291244247540249822868388966382290799585475857081088343756979003098687707738041415672945381834997014008852743322267231389847448208738311396623791276662709494243522293670460082061885302351269139471108945077949897685125461469107279042127455946591964959137479643104973202785862802176731040024456316601591904177518103662418712500140467446539003503881085460965298741942146084847016347876160000331058831684651964257116492197819471731510372242021468798882509548836777498468305945806873776768106329510936944144883805230492285054672353926963183610784769802723877797445206931996548099901223832020585066297820707109407168923725652502997946531923128948212888313220922820452587361143461926717340969080675639604742613957374554006689874101847187603572415330436994003423074507136666505889966166730833986885498593647927945935556216355697197320205384496362049512996156489675002704003229677844291261985375201518628148587053096896887151813362918787873172873067151050057336792256978884377965078356529788277565647785763485491543441687685572563015083703587301661439041600166857198492587963495089432123328419297927986847315666102089478796959067890742347477424681873956750395089382816271098190361593699805642780653151368992861945778284971828264253130838806420469074214952783882313341569693657608726890370159763665192921047353455034664297789950236553536236506519934436273810826497504738512239563637974475969128415429681564896097227688718475578961806170900053285231380861936238116466767477361076217087289622573314173093073874036957310491691886333562928241798398361487964672660843189390502911601971529944169677104527633189234965762280160111113424972173739250234109216655622253742671289254883670944814705328811507874510081278593945680645282426338813609356632374742003275498150069314887208778243408056850300939172043166538593651055957023896268724877610198485454863271043406863597585313060516791103726438885533028971111250968237440136843292386209662913684045439068968320095888269998997262842492881838288227477520077169477765161216494170130303437011436138750809435052120502657999122100311658547976984006869990991394587407124792620933449785658020156754175193383445531079928793543353842131700131947888687534117937157146589544764881340100207500750655570869975685562764513193377783917997155006525982761883566052718185816141787699368663502421064169673225859545725441652190104552573338196126632152972378470395084779350086732262563213318291313110550257095420837207157183361967205162643252249364575503041690926670807367447708451366595419656865249381672254226355896359926720678365549362373123092319576266928112905354168076424642204446794055068726532139222529392237853424256497549216234023032412927427867251740727893928585615872138151326510648153136119316352445642556088256221286287385636781279494545997071579137289731090542409780394313697984663715194102188329597008836401230837311890938955778612873766230766784167898493491516620812662355628380733077933672990533024978664824878551337479076825161097035963007083865613441575649922973038144191871822478252732252775051784317566033003684902306700836875042039527019800155895834785316890179734464293696398906825350937065183283671261380719321600041919117749424466615224256057223296754614723711400471783083180086397406633834011015261247307884464065327596180812402281724061758166098107251684792147658873019390584289078922676157235650821400023853640168432262255311809770193685545617189101125575917289065235017766625236379048767973879474087430860172475882695672634774360574901659008188560416048625253364541147054264297990861706138691912402880811711372707075803602177792007187745333292606346932890236255006644452384612302319073258353745146966918322944043320050234590419177936158357320615866686396463093462277525397856278315426842028565479889259584741226981106280996287555681722292293580199174957617197404251118242897926157163471917063242796235789299268576341838954513492624297941881313107357871744742970376039430126026994629254234202892644576700335241264750691678797445855098039427286659823678069036447729739014896965650669315340076248749102596363231187354065116442489956139652427777872039607975661273815100602005504094272390582265581560205944902273335468471363569499111003687620222643273317405025445235289782617543563534537336205338611041763000153537705388362254597853748907735192628028021497297433764499939169633417624789220781650945578815566505142357340874412725076699813427029797305753913804345586764529924625081717998070840688280328641970432285581122478049395337004974208569797084414112609663549225079120632533785189520869088123478045292373842045271390531919471258809941701056651473409099766878437608141270431662326833005782885702145249272860257645419413732031749246576058908583029159043554939521646755871737000943068374155732552711718858284614527125257318715748754828187755126618540138317488978541780354677978184006812601359360518034596212652904119255421654749503285472611839574298198960582715564196380565639579944782224173808825531875200208966619192630742250572577339193065326934426783131386448776870745032482561234754263932739325879171564483087161780482656059160048837919786849169444494916231251975354073033739664051281934078243386541461335823461594116255446426009826700038378899800637690659812019418973549333527170978511208121737699046771370512178188106688396826502899125794931549851747483373147358912623076517165378027317505777619386452136379217804198259283384924464572910240450410875997868035681016537282862090472545981063536590783597924144528790388375460870315437499139422943921798825790172656160269927699470703568282593801442052130337008522976620151068092735942445706201117063679285613087569944609250997843702977078507214314655532930131124764559949500234486666159839085861651259599347021928206215102187713920365847201498925172691161941737208329107978043554866331827344304671777004395835782599236151234014369920057729856523578847608354347053342782659370946608761770262158175317660253636702577056691501037777261762390041017745312377833688192354300432270308688931816690394597752289930921344330456468174132880370273907933203892825549627866634552770083753125756162737089027740614250987823424564211133003723258667726062411219077998951230649814161507449680453704629177729472378947739749308406475184621898252942261394883658707325456958114054403607521117805772865283089562314288047906626919592073815550003558155918348171681890397657508652166415127076528654096861827642097647824705996376939529184448222020926705376934731091475709157681821271867966647434442405345786670743163397490949142012005296273271443791269580994037069639530409723392938567165214243475717354791192144938012529827729544871327706123447588991461233390536174331166832675522562780769998640506656069079663525913530576009550610346755024519688651531552864799565672882106911718246164419460724923758888736353721052641218289471184748155102314118712338888861435334185337446161690714877369553841506239219260468179257570058160030464162255253318149007261802350080750483420903641901464200342801875159169490569412075637117813433198736488357277583566934174904274066671285018095063818943553738023965776110910582529761092227817951814973173304174111814505354019703813338629161529231003170157239393774978791161673582467018115068821503599313372647568748654821015504067697895765631496414119026453357335457348207803050866388209596344667355416385857655088231046318237861522473150839524923972887804704320474806092023208723202806830994220367186392957984711351745089558435623634014133482422302841034480001613811413452448258703114792598036653619696560424299558009266093031340636523745078390487143609685917540889325187852018632650860391461831065114010018724867170996634742107379732888386257132192501157829223442756580803596948322557330017546856055350164243229732348385247367701836179447329313136475134703028266284008113203542123947588009903918977740965938452197837588613164842062167587887550915165084108343578835551659476183852174979828231641417937995517615308785043723135492583711021370907718635062139138203231553700775149539935715727009492379394655734610495235263354996673187497632313960748255038771360613047882946314092313329364492962309146028027572238290983478741240231839644658614279772937050159326433957165594982537460089076949551828851799727718669757956302927403379536124247128342295289074559014640112589420293228774739814905813081031986886458906323450087822340272680390145868998079751759565069919938855166405649639101217562322504483995724004223974621003681427119666402587712276739696751247736167776812456722242325692686893166893709772856591346262002326196507255463626636349147110511917636867777760937280372904704145050424249746072410281890267527122996859237216110327786523648725942602658807534387404311621334817298314570584374896439435496143633444799449931958722975996688202229819823077541013148749752741983347196058362126475435818875604056989802676336508062814494289587642240677431895250663425583883339939262319675140837639172989020114506250546709661238815157019284795196903930045465251816468790945486551023606445033712534838031164144772484494197893521712443722256665300101637548720465106932642736794392419889425558971099959697742893308346207712325805484596254620479345912563043874082803324895819727065410328557454088072060959926639181704697795560677837880824314858149024784071837013529694145131622184706058395491057100582407356769311690141606745532094978203533438446698145973799318285836848424623747345191668540650649949987607517987697762942603929598237619570926019480371208282582321469130842910858637354299776066611333171729654670996241974347475523445170204866602374405383482388796232881169094456255180680509415054790980410874088827255107876456711895486410472975763409523944781225542677144899591265395816006635801728965694496583283981883077285855100386682410380002238842636650659503212121842978198680160748613651955149894951516868258671926208751183712014398550447156673840376509287348605883900117121161120991901902335139311417830926039522169575356094765311082142791810165053430768881993130719733683428600878056647894114321221170737491891782399686443971470466937689978089987195466299003013456859169113936687440530285823181821513250561031669623279496200417844684915745092677402523643573425990724209031719489629762236485333224003459604629149935890278943581236678836882422506901580351679416454124280965041519202667408520839151048278611738973978990897331911415557014498979597090610003920663744220315078085178169248889308323009875539741412887413709339438465399129902891023133371532900467945280214340993660483452463330837128639693542183099324638507550411128588249117961266825587458441155362151582379171308152671531305140594804331859209802421258783731208607300139820906850357903998866429665194806746294492304380424647522685525448237994103579439437276253725031385573141612335569567918268460578512082584650247564947240363546654315029074204067141013587931164015899120925807786373781651410953491426352752250797979859812453504683400799560892171381769827256762327705207408175738493025613250661609580543330481167212980639769107243724176166071330265263795574608433126397747761919894310710205168794796696295726349591506986469468987400721333465768673884597852569213574795107999308457224380360559156650657158143002347009138669324940655568486834557733686865247159714151824268895895301925924957187298807965179132638588398985962943619232167860075068783574232979057952461755614299835382248067563786302408828601210748696852671960625320283229085326846041934404608832703581068981269246922200577466021242839914402446401359937557132898288492907961400042737933560992880679494973595813929821181240560241875827168573676147830489432240636395058862987845285993627929150683500534511845896968246722337945941501937967926693056209365718531631122210292994024431297292980537866821226564685700187985525248416945850420754180465423724057605947074062931326233034350183848486992232748236213972307374226484698322474774832820460190299164263663126241458525019575040615073772827972248948610798894696511029677965795248027225304951402865618775017652643680277505403990802575088004677177591705872984613456354469504149807732664496797739163735395867251951515021414115687989879662338895155440649582665468507549471858162972131690766840573262880020391215330507491347026829398564060497282543726495442512422542757720570065202798429208350022713638600134056593945646317190980687024158583219479944855833546353768222167241608030358576407014633092657406451218434514669055001918907531137659231243642740852477003642407851760258128241827581538868450897782105548958219134889466018804536682936568309264529379386930731594474776290516844804963505875253523017279844476884022848175187708714878420389085050741007903709029306558930823803816783133630063136514922170879924528658982989938191040723730712310716713669967872129154026849865609753979781161022756114598862440499574088755057500281712762353946930473144450622491045009586051611629686055126042919162824608087468759140378144241673218727990111841926075849712156317654910126580264905540117486743752643878149504370644688043235355228949296699860802688718454862002276695555471170322004899454966726162686546828924065699816773606814799587767493370605132270372809929028658551562331412056360234925845100399744791280300857164019635663991665825741125149213282059648607848600387208421082606157186839968737713073748162885290990343485481908133960849932280698153297387362659654833360973671679173041701930984155952498101210542548341062095982275385238081747005786104671933056838313678544185749392515841403333385377544544961956813007275324973658209506737343432612115203272511199832961760372182933388611761609823586456671708372194383060874920203260556858127043884350850965115190629042377376810528116906528779892301480504595898033091995557761879181679344276382568927900411024601625729953138577245748861021685082609380935232936156427206636301275294061812607945603617990303278306730828465952357152420075023019916171771493191818016554596890651059197971245193941590979379516229559199540949873747264699037678868808684026221815219312257721471323184300024308286505982936948805044546920910434549404577050695294615471864954676158268837424053575411564941827063285404091772692392013361927688172298070491401013165030920428036756645817839291947199101136674734154628259534346651702731710315399878724414904682504448714636401712799019257186630066203814628499722017784121613664463662249696748883581050584117150852920944095091357612124728182929806192285644578669836043755197024106986599569918417755883430271291022783402887608015398398369249840428662237238747515384164871680778851752851495833918527052145355099534363078235146004804436142856688529663599510321936745345209868070052130396562702666293169465268924518713379029545311732698869697060084097579123719544393108188459299590598658430544505411623421800515112185005388168236762915975566608190482298351364983698189843293502842476205552460007215098033206777832188787447464198591961755098678625071109840054388280521454966431224119926247897364342874196246071567476786027277542533498809283477235896111335182367588212180178196586222478191863363963362885543697680273333954802752722841412380242914636612240510372791259548040029361222784261156671524465910831222979531438501244215589565692525542973519548714636619383467207151834752737992485197572930491180803058342531431264668002510866624524747300420603460817076284893202126415204712528327494036579427402055631385207840176638479870452541467465998556221251575355497195832055398775010727927233529887062428016693589371411153725658951697885389521063939049697934730892294113224230476819740748766669768751157272329338072147183990060190366092160339653823445476789911414635639442662587994432315997921894244402262682014052494146564156554799851948955690737364298783217560512430920362504625803175849354989509920736721741862907876447819927052091384858232610155370782284967966191989762948591934997398944950675881095746267940946713274921823318836746605147611402317364326340404965404754750334743465343887803833154529665331024888347360385986508552371885000889764177874657870119722896167443440792922690203689962184573473166862843796635279392841255027270125990038891240235397450942142311132746709848706701093066696033522652906184028201449046008153154808327710670860358150703981433184829552288343668692627390819946450206523002203764216246655866824879569184826812128352585366774056761891449203145638032860300214114499108148342479233036441792735633720428284726493938140252951505654901639504065580627719222283047049667653948635613955885604153809553858186706978771475648877099543757289625742937972077085109705889666363395134379062563690136526945071547102007758194087660894908738861993358359580812171248807993056276807342479856387781798706080658611236882449155840094266732535323184330485695422561350882739544439962706517001984021783686357445072265394988944886619899346967486230416433145816953369759061022242307111301149532519958400433635893401389483457319495039341204745449645876682984087643285617204424940882021788494042479890332707864248889906958691392234104695388649417308930946255920693707353671814929461897815471359885945603062762924035528005964028123378704172480922798985602298470462016410015133513613845599640493978273698090140987147218399700759642232245859229376104023244927066880371123203218604972294505530959819455478542582293323600635057785076663742018019969143570958367153973105252642828542334925001720192688018448935496284188713296425135262881068843735441800561675273791560000055927431736415131677003245070288029588091036338110159180704392914050527582568614090921911760985225460162758031357864704099929940580644525586523204074709091040456666182720120674674918391084534165867223997442468817784935069320394005646027516698482860190198541385093382965750639402185935926496320761350250914072887552280892897181725006659975756954164773510684220834199672374489361714096741267889210548815922143591780599406063263944313157760545080412963197740671897641082208353972964425630546149180938822282460349820081334879059520874086307179400011835945224637299471450854142176782160333763296016599756317077933317790382429579632231265832626876411917608568151411731492733146145138392342541841337187918978932198568631926906424767616450150523361783088364730087458188294668083348895006861304675333104093131891829871070075084853946273990001799089162713353928849100026957834790863994862620147349568001191884519978980776647445733744130639388342117635108910551943329154951525233394076104495760585807779291217115588522919555771162867055838442958239173122562890836621120365181647073902256447566375003294550641766234369177401743667242262688057673686864040584624155773221916753832633059527168193234776514810201151116475156868455064605350954363705426671610801200365796088096059588154511747290099723429948544431719217236200823291813489535538209553263347935857264747665400874265057253493078336930964517005414199198138051947155600526310356125120094085634985369076188271717177870764998980504641239932872873774348326266815846706240964992356257358156167603313664272947504885566083827747647996715190763034199239126121603567677494920284987171555904775143490464059652719378287802905968285654729669461819350955474337852739231285280978318819821399303560080303815344723132664280773818791995996407580759707284834817618597677081142817824217312544609911284276073148793502985385607036315590683635357126725872243732211038120148212753929175301244251091418743235772059955009956846110576335694436186653019524572600702362497163895673091547747635540039307006552817709552627883864668627202043830224198761016496828253550049526750789055078433271190775970832291118538568958303894542966060722941609830866206923564271067155391088062530009426202901272873183146059249887125208308585243367628586189241293454922537297722023566347497591144071573865325571208612855953795820806453871906186657458468120523944678278534310582176409495198560041700471429495204911864412573034243716544695118676967902376533974971283576639961151525514905316318702076987779831946256092823154526270595527835318098090385872979476062031948676261948665119959802243894422275554048990039157740763776767441408029649560527795756238330720747649276005412597249822095927833368351621150244242142079490901013403176231338650459224003841333412966469921518530479461371843919108254506637123351060834443956422063348568864619930960775547518489870132597635630058407015640395447693511994049232594996556450411025564267994688115124093186183009149512278052968354862791707408492498154335254639100728765264031391022061152224064087047996715317918225238875773284463696855742139911577495804406516656986876360822344752899150701429159536758024207811504180173513371731782569741143994886785487823973998625672057548297659024233282250184782519121225775150286867308130855323317124676839048589496593876392594333366530740314188344656657568871804058034604184403036995698223377449869024244366861126624873646960883546972467705479142610944059481736151555339347723259098752794359056989588318394286218685244757759994481846160801884042340316245013445331332724649159147430281868821272256288035530614710847001457442409615485431704281367956897392914542816113226477382309147873455290092415545658448874715988314329973265510893422338839241719364575417707774286596203341568687274259022040559694984459403452020273515992362567517355146483230543200754016166262361857775822576100733568615305640321085638745807774054492368776430927402769775637028890904488153776894828669972675083014074463369302340489043384906200137487262242369279837986360351894293364036158038109841241579141266222396343058891076357274860476979140945964306257032111065235855728332101019848958771579393041512331317530121498101216738343940705439372191674943319441487862170741056473575393671397519144729340165093348710221334319572443174694043658872117788649878902891326714972542753088051970748935748903355445706316300440877799042549735130479276150318920302618647606234631494111472271335922638596493080019832267919228973797156417199844058960885915064325314417358835392109420856427493566368933434318684849256967266524299380265252528707670725585121257494935889183727730266769366730881306068890926696008141289650472474396418994824174235429365444490502459267086118183192942928278555685808189167707373428184650882246371169218514301749652390079927544401972484081737366601921668872101278604616417168078056059625519467501029742909456065337582185035433685038789483487982174772437190469779881903633387182391913336337507893077253637997729312674174908413717014205419640158687361085378378468851786417606302687302464389189743735142969744792706801119517254810007590396438840653983013971857817380457715077447382772187767695613459818245967239407225405006934764737722127860280494416041352450112600319350891916912670180043834863271728889845747429678278627408974993363484861555385684277977245522807244398950524135946647716869266984051534680928293673583567269550045078275856901333984910746665450308486299276685036055104059063646949824004158597517244901947765468519130703836351952300497620392294196698598670535953481445765140214319364357868341011839141748507739253338548645046123695255561191221405167779146486070534811961670245348175871304898017780205387030246072176668939969638499508731554775161221812956337335147600666001803446738014405679873097100883105903435816045320061892433606299182636293395465635941775544112127857781448369770514705685005183707686254316667458166403951144482860137070560734658186446049075442157079230683079181480280009521145541651449949552208535156946536266641825625910560052230253466965903669174940738920527129685762804265975510996337752075194618160267318131468323283874923948486990201206207500210231268875101524060564570348309111711140473306387557782614193989884818725488413761807432690138787976768828900985928385968303748586917576571841260726623487398603658036035924866061880449245342992034425691821672235456044636542009571424192212849970578143728147116584106049051677848677090879222922309484761318988457121919996822032631783894606189706110008893380878273888760416685397952086350094995567123657546621495430506259947207682908913432075866552210922882449874857755342396759227835730897164666901854574061196328513010215985520492630693507999038970980605835153582429287472440723997730031126880421659277344554128873553711025347829497374039202606349632302392456381898962290233534994318300564454825709357255655609111150466396963324453341226608440285984434100839638779928952335741857203948601517235956880763739808069220733995017450548581060381082683659302772425604769025508366714179660342740373321415999648943473338812149891342677938429356773101894697320140796497346557577818996252039391240120830835991299830406541993669204052342123855998796473989069143491931420227902195463413599256301616284253846399807716194929131905239078019811418792262568860454143711474423101541810948905639354251316522458050204993752206011373156827328266370441141826679662529287623780202732447918914424536955442036522712240760929539918708584240741609875020762755092775955176042764533218487931904013232646115581019537382647201495928847401677388955640977515279525734077420804597226835273658633357197160703995272209513662372354176675664869842048855762372335735871290368092287981062018240641618652242028765370096479114682637125912803658449901286197470010545487610070079699670321226857450864286291977870771016461260896932764631132596746101562031609875043221366831844685611185005342442527121346805045030782332741934302506760952932564158741370494359628528735123919669359183714659837443537424862362251027971896984743253549782348456735738517084668391797757464554011302961757582319257495076710592850672909822623883072156127919913731754780955903718789664953012313629277580438702058180644993370126501941092925162360370032810261260039914439751964937934630667918791068554643526021683086636605593431668219784000683414471582376080039731428666331722507716996530996044522723185339945506614608957557010183590986296358235776356199957539738247888913151824611304532537818660114371168196902302177906404722903775148848423679701238888553015799756749171580897366593770877894630351206560331444267188442764880496082849526322557365519729830339268141574805385800100628789718629155459423370495692537561157050624468990749040459209813076073237202844616654248675966426702867602909473359601846812319934933836737323807838282510167484223920403445802615480157752203029188771818816717139923416428251257481298537762325774687438835075998283833201328715931894082865848076644058452833199034749418664385328404000516990820077775759767598400760348068678598957349680145401989811920091872858382565301246546477124226488174921137881158471599638804028789951779602493946477312646929987815204130576581896143861882156098312209048298167898972791562527969678076421543328668527465228583621909973678870999744186153587783094624783805358634761411551483190463279263002559284183441491952772736190180186175881298055137602267869162379165830665784536900237598431874360859751699069586000551659927685825832649689915666985479089706630262242414208457988093562069758415791342997434758105917814318837746107362490170379759696925891809664650432880875538525872572366423156751949553053942931524876491699198061743816386718117937903578975396425799774489550607853753263310640801233299530353824903111369395997161634644027595018351756663496456368390497206311668766764738533133630384665487113454701216396267798025927440181783467532665051652420696245541817272073866373076777853608524569789736199292093124610304485686314414633824292210827166309007590133330195367213736516034747820252461608476520379806505941059521752553397617570055840786918497052455824880227566382411218259146835418155513009676820189382048955001620709752958510313621511234599851855316805055059543937539432229464996361435924589751844915453822378619706873519829597123139732672338315015715012292881966769538549172553128066561134277804132666898590451578081691880753429369384761193989995764293052413034366092993676942130281611493716151633415193812088624204927649581715553383248032561209398948676186905952462158628594336177257159996214049064716225433596853240698319808243914406134092010068898066831501488079143334731602351986673119716510946033260076962894354182103034539009447752643533057978998812807255030118930312339631765557702005305200049845311560502584049691738477079912600567459955956924008238352844990319446117129987360543895055812819498583631454144431953902880845422932945772404324329840577142873228858309038461491977070929621198590416900346460735421018865050936924517173730603606260925063006646291259252819850037112935266693451869005984412602191138837916365383135210829864585542507289381834320166618033912708586760067848005910119749276873304351284572702555974561994060989426795912973637550566408213138528089362717657632259241210411715333388053429635457176793430524761873742211913206057017733572275051186324595488180086349781404480300658867210424792123967944271033382518007889001978638200313775882460090784010396684405387789089223982242107161867868911169549433123160277316510939599346974449834505388555760494240008869835644163117475611264259825087371390528152921121016478444977735161531197551405074000859236641080249868710691078518392624939287773843113676379481046818309731925082657185565587135888973595483327990892121106361849677802471327532949170473789842570308993001074379596722994634986857442162690637410267000588981848267927939168916712337978592692647711706011732834040558950057682348420153395332117144689873944760218024582597686745096775593620080386757364201541277385386015436827763713580211844557230321928039463219689877852565408490875590556313271628773678864335818965515287146261560955954349554745859946494327343512159665319382791346861351895746415404705813112065496055963021383345604107608304568756450442148837197939813095497925504717164611030885019476433662771718222004480466857143007230131219955806317540414631756347916949570626644117601086374392935149544456126577235069060648570352889552043377873140490161753220767687129212826043977517339503103679599241122041941160006940630911779503958059584655385094248502040203419082183024628188004853481385553849820257474121061242483346543927125005353892580495378141366926834262883649944540280163060465706281097992034543335971382807874555146729158142582118458233890646446767911894029883845739509940892668594159253591613567712911721507416472055333758543245639287053296122368050268086399906034114384542615533276130990931372194474409313636929537080547206709365555493578295361284353478040023341885172038349518285529051302975426746547703574372671574343553743507152567697565475321545540255033428645119703436799224287609597379488673762836518382524863964515377173255641449871807938765468508348172024664033627666153728858003251365126048942752990206975315297468932732547906854532262535955999562669151966377827472103700159005659006447606033805686956880328369003537639815371235920095614529214393304643876384451150425472812328794781076912840007078463346541599338028339348206729870679549776944859175323956174747574182003377738363239205470401020537800032350329396153169028410189578143290115130871573358048064854081469095846520797627813007907704179537868310477154543083469423463137475016737975907920718128051330181198517654394349009735711259391221959261171243444474037121350425991716100191829968456922184093007087244242870778197328645325794477453138464216750042144557265179662580216919900139313245293682859294608959682092498396448758435224643434744730827749542408322877037946584571622917014959077124824079913495119709349961769822576309757730799647687036543103485987213294856330023189132452904366743995063982169245772602716721061636364753162095010893197101039996412861277392347594432130778289270482103301784463180406842946394145230206992861435926265514460648967145170440082765803416747322732753113414075918475344607591328884003243959769714935137622971239984517937802228862253132631754857741772618903976561996325825553178711523092900521873300040241999943368111404614987471940842727968769561071528157213068396613099240595383260876304143183640485112777346782354813825718955435595215856656801023425708115888237157322115497134930012835601705153701606967602231331487286941365153223445815679201605376730513410606724793585031512731608424253386253782661910084485999880794775210789031851451458838694879914688913108679006973567727387035403513108420511307514040992935583740134193839661700115431063909132139004516403067675113374402968422571637984576925943662340848667627464722807613452659695003963839080134516632038063030509919930919002190373381455342382500125734078656467122943330913825531052659575645971494553219502690214245406738199390321074642984599310398322939501841922629443244555099405019651823763083187163016625531988552308348531724082448533966536171120757626014459683820856878743159254482955575875194322600946293740031723005224354303321308312000427265131813217617492852613091176658495367124275652138564035368625070856785471601888809791145467952421599795875465880367052479627546094978326533249929757006735722841245768647222950859362039523264866504694514041707618620359047901246796126301953924781436744556881604050606000621969151194002376050396520951322408335365534596752721737342640937049413778237755655383264387331227530517199960005878790052718901168809856807020972779905514512527449041002638562243264156368601028764049474354458548098075984212935950960324254468018043096365653308026752455544232573751380295632311602986100623185397995929080694148170743753143837281316282457389187251275345143767467789123852213410695746880928549330912456945481870780288170302135116735469995041482441923178077518624897386708733052021238596668573634515560698846890325122936995692688582161561351118886194547942952272931782727026332317989810060874459878096021129786026488073681211617588459465208938037084923608512479385671311213058983619995763579235258824909506931143565344107993599366725352157801716833481837431997788583465902046534936313924246867997640994370616401640972379167007745340068103915881910101841891151904437769035824090036768124611841558564328152220459649214203669850436004856740054309810403491433683865407039874858519918511415282991364053675110410645483992224231365604854520376458156121994963149081680635547047963707362248286773129372086041573463127779847435731201171209170471773345813232879854220778114892747591037569141522810441151431485789492432694937449536805068917163779042719720650652563153809479437493567523942139909088753866130322789594666415218666749927308252137672441260667545917006082491226448137015056504654740133017025409027770582333253704387983110808995819249220636883883715790671727490227479889844921561040484341237710962969973203626243783251871390020068454112735910596612697346761907834441172524138961689476337154969615955910762675784055569329725670345985522569834986431668182570951108730385703262215012152478953405810215496339271791089166601991686362025539235339976421524864177926822140728827056914394153262769496321092061591631658652909574621207462674608534102721071984015910404935766796518419745332568860122896267350048823935264361499573116819326734344072047417293015383529909610059440092640516968626107856417406061919309426272620238841621420395166018888205691110618274832277361239499730598149821594649258606964744117886555671022406870391613128615188005417255257564118362527839860208978380200905892522197544157506560902936255804804883220147670034251942301566407037538774911013898375031476415996284468752742778515407092992765861113354956157209019347558087746690815557204025515114228583339959510783213728578467596322160872126449032227157293819617248669415411664645406562654537825867581275156607575162097337576160434879554532801815601091561311882002954965972029282022990224733716630190539528091856595610228465748088340244527627780021510399727474713805407550843466576096412790397378545861899676240109366284456031888481688797632914055342810282648799128596377276509130815906841281133700261602733454310640650799366201220214427268917762453418096102619943425879417636753057053204818722011350435334559930573792374112447563144198274337244970484608793473321701929600681939133302272556333930251160089391552911941149916818201298043503763861201285865643489560765818360308012112163763097074211974877896918779323853224238170024040528747951604438396613954880274424008220429197191918044105758154360074641090795117168550801434564005008751130493392704586884730055434132927700248877573672559078795428199968872001443980596125546892659668732983110117688614899662720224582211855001673511872259895854481418397399320071433955978989535785012088695268210631204618217013091951302492234826821698281176597795861493060930428192647662569079620949488652483215645383147739304856090066817984196031509535101656795693380711753599293620108593904495519200649787402953811585145176667415247592751725214552526357573063951120566395638875734897604390852912067867784454154700323829053556291348370804552773177135041189568626348391668397304774844202161314167851869938558084932134539346539656336066751651274213488183954491761058302966372577691354012804308435417287411897457542338447722936699561792978696432523474840767446374398416396486646243469277183953504989986999937979011162200316874952968729154214931748928308846197297008715445215295491959576454972500412884063724580627627031226824346756736553949272961501955633801768530027185092305862344481291612290214131338156778255072164974910888515092309321102116977099882469924393194085554588606559681514894724559304175174210110175251163422447741095524203602141014948891832704853681906060830447228186489007511973901763925675430898291983818466717862410080386060556095842854155599118437960596698573466473457499856213886319100342167032180092644417427576484121717522095727232376609545310809028901073340010776599510430559995206758326401347953377265497133732781544079374003093306934172210592605146974126427896546700400363735173013144142535021242536694365773291157759433419938312004934985672800965740128752494892029743117969343798876374768425590277373504543275210884112016536078018531109428025619472438002419492900266561801492875287528488423887872053694950011365117841262174174865523707841440324404211778426616605146400509066856242697556016191028607982942645375025067734247571740985574882351928199397397638316353883598149120691438140466842754638450009196433289063316253630922664659155905717634118174939124804185503674289931490973459516524521202305538285818463213221392821128808738575535902015062790075702998568617486300650153715623728844884157338350618464047321127413157436317334207927992859787329045113933626216016397078552051829743950981197155620483315219399386494099822618152871816572212939597412398513362972239743806848315260753427011004299459296595392871356186198964787845228170265192604883025812594183109880413351079698616784807763210550110371193664267057843407429108364560825728326053256327243031086503118699706875068872619895176456811887459160584462639001627619118937897629798677336608874329641849618447407700023435810773129141590277613656349828886965926968488368308373769443021768144891027801023358572143869615467717843566027517181866974476787416928984367693354401085178022173900416373258155827565947389527312486213443023121995187819162744258099263201290625273031686318291359832680158742869774746129331362806566713446600400958221442606470551674886324657315162655426154758384567680797759275070107525936243225978581684648569790090647460933831335671007596049032437126199217231278910997412133542662463913683272892617232640244798488222917936433964677911528852237608715139269034531564640145751921230513514584903615136990162264930023275014507698315834360054590203552683973883045030341306231124959042988163377689855096338325946837679387143558262101091327836380274140344646686472588463455047936805557115812872712507813755293024137087465890877854163695362016259723381289189309929757100623849812998015365475721008253666359416023094780738986017841114530742936150275514895229103533768212898008529198023295376348412779610583672497616479033352537009105464208567989545148379788769247324445220900789381173827822079681542140646491059165761591000741447723689606685972091600189394973168527681885948718456717654527250701998925330479347632570223963120498500487967790564846290326707756009137691105730749405429823612820516791385176934131441326494688390038086761687501545993176341536354043272573929736237341690361480585882159286594127048459077438415029624914151312248912660334704015483108111121180907173257192143166503636107271778350962164942137865997539898752794714537784280266795715602084994418239401449533418641061830856075671981078181847450641802256897069589678000239245416441449234804011267520485362780379861319940011107637805702648806560794082684616743608233026892426758952209326086471612173376265402244899936178486564412644045824637487079695444279199210338956715225094554712696017584878213799137779745172892918498395173163443193655408156548446152294527015549269538286669013915701763028454331343538015431446777811723061027827530243630361756134500961677305200949845347934411287616939756601225855467883200863123905791859018660264320610905431632037492973930258744864359023482229633757957421464712315950591615792479966641757787269368267109698758893921405931570193697463600708339635443507817533963967877221808672578498742640195356017445319967180004819227375356614813285124517691418276573063187535726400134682388870286408926795939845867084003437240863071584499181039500929691561631189177092593844815103501048386982229009343394650099294546793019534061863709350201796298290516017783006229791851949071689157381891193086580345053420195502894970089943542411696073630127665861002790532907310859163737151449217032720559176167216700672552989825961057559064397730294705835418775077383373667221982966723197169147581291356720151492775611428119935891267582323013073099170184558085088878627028462109462810545237248019997192100384029773670414851534024501962753277792891184475466549879238310888889741104538516391637100438044588992491473349282960341034817475754233835117225663963563467756478934104873080629061052315593313181097888581101324446122830107465220432223095577501371439858025821640923082779986564926015706549434752429054536731418344649635269659637441020830931395630752003115999448760569489757296110081755747344657793157132327461118050956321038443787598724813301087689195443518433586549687596350546716196454892459426347245928464487354597542112103389150012922118393897073041458010250228439154452043845062731406877899033969405432032407253554277639749062594533190433766601949035021657321873519553055167084712370203513632323731720161655197657562264640007312212468154015408995087510470343391527082464925226850510619964372129660313679070885107928553146458810620014197109821740459924504489543770755650728833169786670776185146658836863505857111468541208467154465725136025005504040179699703303111882417746010403357214375278825542473333712961675149837688395215409468563285996223171038394029857468706204855253422483219475489300176780842609496904178679071813674849623883834121673335755959081616510832050745110797586007471713540396789426139739249977438637413051829452460649290674193782266170008975453754165921107325480796308058642989304872717913922849941771346200617971939920842016883555564019466528793495828462989559190168187844680623646889608685336311726142193511744725922380767591019045742772430303001540726864792385636145101189886408486583377454398485175486993993636982549350111302789249480440878169924043384245880972184877189879605609741344076842257666253743137233519518935184843490502441360771386419367612772131365659202448238833919524690330271053093751014906913767886496008287831470324405049083197130446824165509124581929862329905106893246349510062405404312627346950918797986577158609642679042859402153085209942585096972981349395037898766185323071319957920186672511113264206214559989490454003419947309241432015012124837481028061278382291654703600413766289983401597873111068397034764322416246799649012506747239139311753007721857838609989961136154130629408277942239929982395639683000110500579880394905787641033532144984524412834830346589689041225336113341049616905788876956206757456103544133917481508743398472723925644762361522674241014378806216374131873011775323352234340021620704915992595953995342843615162702690502721554232607136511563317857687813673844790125312846930851360090554271547855795012009528294146704769868244526470138346436487373244758272046771041994116699328207532533836628631406174757202707924797118091941501716015947911641178064104109457889683330456661760419052739527692199246371077998478161726101472796930061364448577984613887332338342893158689147117074433422692078995383602930240003409300202445573777493264901483935282306695116536039571655412690411317340561303424208156140170595961073718103788398283617686945277857945256887373818589995395469844726235101489731867468565596931459651474318300025917767907919083730047407741463776026697674331707236564493100703023812104476458897511320805986023588296735653077048996106040301716340309810684293171905936971366894226275740342420667184344898853566908850246260822459911399466016094091994804966264334810845856351694737146836579842543750583753622921164755784672595397192040235595675917531101159554627784304321511877100684238627146509208194916438518944878532694558676937438325204464955340375735178057271541931592255693155922964222172921822307612756550027032178198544349656120641651376322928517815770094497186617483946659351516698870131688364728180426569170650156962507750672098807786284323353022912384480299035283107916071263853221679664346947166586208157575468372082233284739037238963679044855118577408519444576034694032855046150082262781011272507347283305935979808540800128149216058583959791401036620192239022399048358923238487550146860653451019404193635850660630182034010121318624900820753302394882806205985579662464228827300324930121566671164329166296342764405244883829665127645509130849800358835183294636046324729333578490888656409102894306451465541856410457795893495290810579952434594830943898594973681713154294830467096495821493890667239127915882204051206147452963974351136919039799491138647456826193949344645439909883888694121291551455659239542907729264741078022193181222163200609565714332813741273337072987716910353828143324156669841182081489716687344794457739974308780209872802578325683079424391497715515957696200222968691938454573243166270734109977586158901264726265611991723457225126628883220559484916529370669000868102517371706886448723343755154849157240505875025287201301653789460084441287505396671827557344351967906806274986405475459633676779202591231571547951821064343321775755716645227571199121820666665231552682221120551652589346972798023654381210764133394869280321854222721924826661409866825200441016619343980683116552460125304346906349459116558496411538721641568433056015693684035712699555726891589450960087650321454563137909899362813793771473896489860444743445924868991060824806871648716216129961415865022111969325541268410318563635763754342872815471978426275411742800891158497086446162221867534946760607390382403436240710608736656047513761507048999365076758903397082522517414778229211022891617315954098218041168843703635606763079493336071758284615987119285180842747472788811436948769308028628050532734061784418990604298499022369367836840859548548261633866540526732164013405492423410469061613534135880740865700143385277037544390874492794046057364497222069369083323861177378928660702553918819910565027503944174009152551325289493940976155938813978480533257641101070856499390260296293817061641935164575707388312615741323809000225453777752124713105738579778606884954352861572712404048060520107213289789515320388227915102042372880901001038878607837305476929021508480835575610647722381535179251642285062944910622448795125494010121545660544952188391145252652040226379171350079410869144394956876967895958239949326716048268294645772571427921730635066305703509703340144223310798624658200056701291777707661280291224971779719595075458002668037855973277531799527216787420123042646108932977718096939973465087485986682499004123309504177938789865489815426803023961812575483295625279100457149589564027806227039273713234186406321152060696807641940159009643432057856951414965448105045390893059205548729305476615714024681432556301891306907938718792678099725478633955177898870616113856587042463048770655992833744692073556720997013940728485894757833007531140652482274437224432711139269189628331588611722814627835685317511649643955401392072301732684823514552770342521476807436433026206436536579465291051666680059679912279481306340566891710861337823605000208270755497802898710478640544135757914076565182282149997724743310110711356046239400567792145570651323691732666879389195436285809784460140239303328863125364663614614295736290094404556518851109481313126069658908660905145439500733831668511526957164347474384358418294971156647831670351662663526666419841852602133644974254674489233760122761767288163679107739008765870513502434055203667488376800289464200106664257622632983224648231096075064270146894635319316600804672113004909367101572045967151036387871102510909704892826234592427991979072981771875409294849284933020286641062580694347144040874194686753529650246274965315226062498539544965455518549208115005297429139672101857082657506037067626194861190016115623508873065494754066893709545017063098061790430916667853881648867866125406447612730119858435081509859486325429459663717006596356572984225979826226321328865201006099076194098097799221562551720582565049870281883462956996864173682573392631200310187692746780028384897923443026907254556649760656355597558521062003589036531867559077124543548336346354143613240881205908876502916516240405035876481854266147479402070426443439088341060317621059308835774920866429587946440197191755084114027778600985537634276660728371754064881364245405252890108797505245900626260104457639346494134241311113412945581497505496481819581002054580999769177562433308302525450802332512199317738584764632282694361309448875319763364694586211372589854489187710336693231133285505989159485972935654664723394502156345134079519522382256001524571736994331876838736482946555391412640901274015997958890927131835278582249302941133537895031799288078159855187872203583379180439333373219626453664060308247628040940142646612732729047902195948258353471342916557230062511557270897811056904203348445272568167597343846412221786127855548776320428586883983120364669253427718182301794274657633704495585511764044810267001966477301155331192084782498487945641047468346935019003760722915450019218533072199641123137998075451661614979556903720563718411365407038102351724684037401407455792876350717048518669370095739420716808450787706617636838307105481440855684374462448756364116741276373140600186704005366132105691760450231997698008349650096724744726255889814167474284302717142781503931882763146073762478119924829876716412367833229532975557887996444753211227062514132155850595700253928002839382229384422381257764387379106929539943781913876853099014531304552096304820765098736761950765757514192892561254021715318496717629242010868547485894077991762658038804083812362660619257178297212772913979630072551252822863644008930695138079874589832312633540456158000438545144590698439477384123254773992462354504716055943444980832622910192558501555420100625818667024594932615147239376449348571736065062897616373799451085163567872340609443719660124476475181555920953307221105661112714474416415332365571039622922659745678405812721434619463058164909149727906780089865553371097768166126666332171089717095338009526091619301418810971111775940133456767761878356113123095543187218464819756646341643556692903773323207522965744608653370032715398375441408020279381074866551596856924251979652836862243250685829452025527211705674609345562656476181195254283456567143218587435012161267778930636601750341317477548031884603987121530370084551263663819080998806601558812567246560721965986393520669782739911864147096449481749338801965301028194031789664107416581488066744359953427032701773439937378630587817087909170448951941965953899646153824859260832728934488569089260292503030223030017772689829377076271992503436794724652817065118245116336324973314291211156593393641786637818261463089967155448098360554766460315916668764523657616179621547232578987585663119687426013131348283942593345218060109194300115903685475737934384969082668453526899726066874231590586340966694156914833271150015173920490646281357493751643674707926900188520364270263305517955979069886961336392243414729382426760202952825501091457378386835710636181666634915480083222146901696385878231315464010888541246930157403668752852077375258147536453966152723419366031655013694618902094642129528244405536401627676304570286980723010992307378133443055534577382299301259276200214094584554760326776070394241335144526560247760287864365789413267031756432417929826357066345506058065142671748806055894642122364236932023252871831504136040933070011171685639114536640005497777689782583714242770457026964140834049113446658009531497863587954795278200406138919116999143766974878950505718473781152769199497491722415784887668451051966577531241956258316575940396536437574886276179230786490633727440699935708268992802275427463980922305380770393047362632097070873810350204045588959925539477042055175019887023746259808095357975233953537084619175908903943174466024079095282476017861524649728211089473100648402231121497245792006257436316762909169367438390399156815500248737865940486360622399376039828569424126163557796001028003241210079272699722176701880075399989036623677616728182572954387761672114596672718234076976178106597550834266742088736266319405799787625847506151170371798300898065571824175414850366234291572459116092915282540272327852552787633267136424342210410663521637806075930491488496782718168947562758902612740440993987982286130131519817593568006726904836958856927794926745051142651892551057712970676830620492025140260598966399641988289346164373672011720375663391770719009630720317460064351592738797269407592255318907493241934670823207957135477457448655196094858587902099672922908029031486755146513066951550346526326246014239009348654039759967795449368507922677888538736753589980224165624050309811914836184730824323254606446182486671745649270410498358239037909803881848470644897490281828261150572495414511226318150984461173927138929055669729720008561963687751410964133834791535587248873379517060636130823652770444269047040968907272048353836923272039857974193244701988747787481621350531096369641631926574033363757756413865527192107878663550021281156158814228781808757702176509457639782483119007814807325236343579976821126571708871956762894804089415472781368144539107189048224846018734165779814605215269890991661258794663042655924236651179898698994247629096585901058919119405641778024968486647264927357891921494634334282754468558228274135256040682631403300347697564876701133511846623877049200950293745397898257405187662022132317879037839219548801991549266744682013319414228545055876070535471966663972590394651150046389781241787046522149006072360490120304755089491623979835402565456160384352407641960559720592448643136043988132080274337834733444050053924956616417723697412193107952505838071789378264125325724371491418188183609962887826560436430016880690229092320686495755901834241206480523786461193087892008476824590570803683963283714972168652944124122857547643717583868509386341646901455598598565498713165088018392632696733630129424880589711415883569418535196571969488194657560627987421099967122934508137163898394488552828507608272564410856154363842654701035923876502042340376451943196470828946202502892606174411170622856975318857202413372090053924882712011914348151212393942237157300342715481956709804078791010670568645872471360281602096021042927135883116988255071262069201282947437902256835236962783372073029258884905777285347258252322895907103980108291381796044715659625776678474347489470998713451104945772553521374153747125627315383539154526558773397876197828479849789590480088641001917508927208357025167724250782694630307434197438719637908685521588622601088456914524860072617351447134276602109313369199034376391770188732736030693023091397439389333930431755410963581856873033132184078079131633902598776255140620658795266960263623329432739055597361172924486685680337978282360798327951327219597554398219948724849709921875112532780146023424632887046471092409075842211173238824044515145425395468893273640041347390000950912006636935313428627442263941561766843133534778917133400763367458196122059259544854759106845127960795129103442376544143147290608226953121282873599269410806715267369108170935090694343054147729612067795933312157774912642801313511612778096158099503162616019497688820698950750801030122800104510999300802419745113289850357081049274042330784331326638717812216786955424198595480811183768882112833861247494531440913230465520546278108066571083990047754996781335566104471032367448576587324234154368067679257321309772467716152735728738654630629172470101160145836904199156861146421759777651173522526375268253904830489264407496759222326262045059081455773922967025057701838012165603054799238492142011780940156917827722298889072779309908174350183683871806639211698689386979966524633387389627280989821757030586092369676892877758420519144152822367730294247079710380186106389199893600274978674555193701154132546419255813886962179050904038355485888904728598927610261146121001001665969333379575708063422617809613945727729931035365972200918430644199767388019389335051693986909978220559450610322944711219120157006485467055475931441101398628502567088267305861134419219566931403032901158860288750464145463799546636749888721300794679002621091604400884444275625588466887213895820514717137937523844068672058176939716108270838993094746178078757734388573593470204449050701085470267163950667588699843090979319426769641334069296921478112575791128858826553610734455344028887285694280002651253152494560222784446631534835143123492787656515919304948970584390024008359981935532130751953796020528927511487537622496930573297858456289207114072714373517817379971388515279144292035908619667110597488372555040603059582745373436361686834556766598972769121160106614306740450493983747037463701231878277839671195548873478240893289261008080787722038590566476672500570407118222269965647925432949895615718766898445872688911120581315901481283526426436862197971793393763394893041806846714388421401284922328236342617392785236674174556933280250748019786983419765877839043581600304937162401345715542082402498680784212370027725825334996375592356230862195206159300408936755019416653061354519263996726812055067223944652325584061059241538069171248186436795508910835537892679097192203816402814031112249489294381985917552884919319048664081614254289294672274789410170978250569885854945732839631560228364119564553081971349627337244868001749470041949966548313243018872679154322139970249474638203544866118827605007863941368058247705664693916567510072031728318849444606657949230051428257674733331006653834565184389891984653782771419898305932263356445153600067245241553611215390883065043034717699745576208850842002190913513470886865676829723466908653583624025430577902505931826644882736243571116148544101474125254845637809824617718431144496103122731088716824528488178653462878450955325615025098254549960471354323992707567235990556103808663443217038561910383726473539594254773286863754052509958629473895380560900488180023507548448913380011193941712338649895875014154758150496679336144133733156183731017153057184332182252732218709392869958490195089830294688165234477113493096976173305029482880955626930530008141906770874305495524733005740678920904521536064707701321376282012803773198031653534768624459876072037590051666080785807113161020483936645473509075774981532084234595620072393169057392208783062773818023463056979553239772431136486392680582802254716897714120130668910623204977955917052034573126834923030436855924359643308441822547234472104312062983996241746174737810835011572078130148446362214273426660797776218134084024863172106856541514597731157143163439251263169014593342694209891561568847234439955714813003924208455727922883100437471953515116789110147640211277748940378507214452361305098890097768732500738085100869298739494617626510618237958333215523390220358317680824713434617572458255528514543010160848661321832381510079320206052817401882341577042936545381546094776165814192770110703555878652688288055913342119334722220161932318500651285522713341157140483907073328510068257194352550832555543954498806759313866558549089997558391622361283320143577115055375388902218146882884256572519858785224121419152083760017572894661552558870263165860094344054845601090627864176337812655360067298378975691445053956148007054296713535467581239555960545782280753573990161249979170204645001460196766149330013880884445598734248605583768575858210288590432401111421418569437511927471402748107986984760437828913392441421339101869621365344989691782503542004778252736007036982358251366100170507921803959827025082694576106797777049370484854747557260102864269486201414976551924105760043257300667736260654007219688112159045038691707071445204636353760691144846764210587308107606769741365103088012824601539339083094349745134791129162597227456288957658759168827268680037173753916866834149300487103160630205300030665169598708039967840114996719471554767979237453405868494999366126392671889623591113361663719946727252841591538713415858843847654379071278528512048001748758308649596526398545148732137526035093585911399426750675670075674504779392467837116099862184031135958938136778608762781127183564075170487603899841303322064714293699348891713957673392400969687655651421799557141873842420426104459053835777409711952232973016433360714291502791198574409772399100536816507041582606502592312332189435904093223483540147314085451122734119863040973209155969687635394889905638071228589769056740381357043107850015978294825195891275826775703176699853351238952420120912737920828831471578000087771128964153697016351071870165246594767270147736447122589628724948145033802723188525634044308031853638110636159950176107387128923518091959038530353638309915368297521651270097726144217468302432229617537577461161340417135139772082957463645382818753696606803951445787745765158230325738657671749307859870283286636028973045129409765100849073913454279981912696776651005883678956200767199786599198603733481465387229393109175099212627494023808044297454797278712082629560264610164927807560907850016644286667979539767808535808658670841393819216391764992186677819179284391217455649746545836830346921387036450462097794874356648938882854606505571782533758936072011594544438320010242811494572884454175989021910922816714838418144208313529936826617787504375787715495529658620152635572390225354956820773336698604188594482789739788834745917562601514943244457621948260372568429264044698150455118594536400811201638545525390738496971171204858048156767041266640541816445792432637298362304654656768738093500396744334949642090756005418137916016165585350709727478807816947912555821868879944840329173167224809389532006960865241716816851588448385854938620095587304484075417006714487529587352132079166922988198641911554641432881376019298670790458011678050827495630625239463694186898835768687104977403633293916387738489167548791279108026461944521516701062993561646665161161897497697812553216226312154115519967672450748128712525521150608754269903561172415829039944952949474944699957270526383266505116151599258296864911703978297010760254137859373050609809932735949738303090881846517827873383528683455186387813883924522053443819198379756499157152175343330925387260538860877596544045812183187149750364485504492235636398014457012070758495611105386339848506039539428018914498365365859448421362266960676560879232857955357944441720556159383070799728070553068435561540976929794173868734842325796055424190792439689214776947515963289355873729614412640577012079399147243596779997202238320969178162526630054935359936017526002596358920966830273392562241513856335671399311316115645762238495252486799024275770678700636979753715215863611447405704205055638727127431962112912315704779602951207519956301867002619735340190955298362488275962514752679558815469285526358217910312229593904994698036645960721401950156534025423112950791229739601944939540174362788132238277539350495393241872178359880086549215776797255355345406055500625463279555566769441559398210470408475935084409080261922869961564342547330041487099099068140061530945817840409034301707510024920662108964581634698509367389473644206950714527169313891625721075221221242748142156853930008809376078269310714952329076526425397527535187155375355709672290107352504884669469012065787952150821181653371537021331180464141315559067419313625726726411297010213824346031028585892182412033765174078709063674335007794889316565695464201606785197831550979274819271814037145775394650990139289252644865368002624419971431237191643160305725568332372140987536277185726243380272664249075782934473079487434118878278825512394380962334110742306984281771518634220534947843537824584124249156924588330692073941450936528330385016939190952394726788453769471328025557431368810280077330419874502012370706669552085924511494769388807713679508031649031657353023626654704396902134987284817381748650628389956689924498168182756680265573217226374330170597401880870532452258526837060827738760798507477772913090892903767211165254861443718374037138980254294212132403542318643281329079296831185230637883213062505275479615208629221179081512531137657645047398038768049773213558399264320905888405854511140823442801891816359474546532796948883099360420977219853654232889648226278053966513472939105168259032583440821893964235735003729951493170106981627077548998553939270728942476894951408127803930384407351858336433559196611778311207857291288809757631469955956644757388220829434694542292811206752360772549361271559862173508206148013479638026942472127834696268399087525326903136106413134225646005130433176933172002411392520393669491194046401966616630740748117545994853227059245236297095462942933574989813050896882386853812159516398587093918410980731462903338587653415239207178883561380941018346499932482271803072017066004737182744612108609113779538255017950808810201209857233805253359863448939691468381637121107779309481057097264701029205539011712983134687795279459657094288175979187427524663821430777503069786129799613960889147648204030178795628298301170302164588466299321661511306330022599737026006286204056971460624338525104579714533832473889187996255468014475317822223263065129805218174999118722245560079865862146382409125786423936651656006318336304739944167879661162448981714160907855431308408144208983826383606408028326603774423835390632562466659183055095609434457309509449012226404303553158535443773595517962702162465106186726560536500096593669506423150347024220195140822041668187190674096690765411048842144163729530176448028877075875873579482721676195642087148553817308211916291877037813307187716148895066466828345762930757725916128530774310212329286878899336984823532968145681946507915953068706241727668475566714231870691413215676427458605534579940565555580513518919036291002778375147050421842644809431393597179100975686756955115049114108825848705356148355432635932857848048888905682298886229681203949404661854106087608420943434372907884017448454921528799315964476957334252544709329573949295120808417355457606766421157946629504627527268402231661021200977959888941058373873584227407785870089034478606576032140114830678502273183866271835488824945348493085911071882899619897068899445840667759300236572370671856790553430578165838610712779126376456548759985972725240060215318426767054899916317244724371309647843152183955836944215342781879255034553141152900672267184880901958143498596907592047533106981773546641713599831351371715282832204030146579532237916680517524343454371613194352404431526346319793223160178712279488956137220457535176205281644940499860806289920261287969864519931314615717077085148268017718335289940304098265968159140919483651354292328170734167547829532247257738798469554882733915664141123739338459579648090075637590521388834894959580592967097634621690966966172489850888074590610922737359933808616189770241255877742138882101803326439591776093875151865522669336118239807967612729064083030756825833212240305599678374309333191893983594744638724255854626356753183444502425469310192271276503198987516521182324608572769904401608657450846191643348129586555328689576218359949843096111351082877696027763335871659964499559768458154734403829333928782305289456384983839889848454220320858877132952986433792647069093219467501519763134437043422660582317043156082557070557056626958488073518757201959542645318089329821796484330619547827565206833169454013389839423589938783624804769965999194745871178461963615476424919759695129645419602882958691661678658214198574455882767327310395989887996392973289119616454699277161163820705147428873640763432110249313686672240124187515360766742624487730328004269644095558237910721955699027439496600682105303237529515069155074119602205568553419417480719533987691649335039609750779129740696367243961769916470439891353015492534090044987029251910981320222226945078317981933131912333685039393849564192548490558459820578459791783739429100661568035118910532035411011425219311353727052753696934420453838029558535531414354235108073388180477776298723909081542546709222307450310814565378820387856785822740565332848465311566435361351679302168292049766849847395748668235523998211456206910800966117401213133466147864839287489556348549876249990507363175109530956072105022004776956958381567414412818096539837940154081510641441062072894075297634301042531514265702365372622511260469394364823136983459531322050792614814777858556845102967693949498437379502209237235935018885957716342804180752792787451473264886216901464854284802253819317724045277964626593428472556280105754463662678199236160613506805198030147615000262532468594295057454318723677682810320579662540770612408040770111944441661408653634509010098369069032646716089647666343193499018788540103610066439893377853646487542769411349681139019239570606949951595198470561350319560089508476959339908882341611299044914112954526320173092991199120509378720323958045927022999964624182573406695326140646295881348544225648638692774522081823384278268989676077365639857370060921744944936790948081754314151873225553068596326789660457938576748094081139714518320564728701202721881060756775590123147298139295978264919444111534706328550725217716977378710255515715272121334838411249265931185462311035256953783817349131362261670176377777242764955140197543690339033084627994476861973595559874924396238279790463494398609166213700784812423024367844444791903966550323297242984244047548106611055375158459265790399460941723818649915318411305630559457496027153805032257904051113397612443002278658036528270461000191218271905566749362711034828726148939257822039273965314757322723820795496829401322125072768148803681446074680346310166619919522021696173353937262778774868318130128314011072004794914167471788665409107552948070534979466383243306913527565643823425064455104344452123598562364487599590041848658933291237752597196155514122918070663801773331544784461201688805873846068516795170429639295362294960163069340664834210642132373728754821908791749706281563460693744691478027729534365112587046975401817979984598114479534234504527167692965186846571332704039180784828473813165347610923202312712475439514033159707973541447253167424195618411802286540121292678719328496859339853051899430528122800071184085218168525488966448246717472526883176701383259122127650827076172097244401993988531441055904831946460738076160114920863533274098365927240172137634473125573032874131327000250914273269130385738575766830995325332181187525865923807978045438338229997461188235159698970828288861290580230033108683684870467618862126365845093018023023544040522396143601710947984535533310018790839714533556439539251871029364108885988865854246567636279413172686069775631706953744310938334537609436830307068693505780369404408757247121702222493422731641833184594726905799840791769993480092157914441334814916496888079601259592315676547703596859158495237921455347076942139943655976633290102857327552868180446294582623841223420948616332714828118801524926107945660125395499151270977374939768572599104953848484292450617162937135975834943503078701263823471829779571947577853452850350567718852085993772475064237357572044495211268291011835561831862292311302492286978238187837144547795907287720695002508056199815457261384599469272287869494975854096065646353233987017399155150319041225191984586804166417599439906570886791761001895273956844394748925762429476011391956431456830417538236447696002386120817696950052130496955835394909866074552339419543218411409927561084375778552579306592440292259370948163119150816209808771049840975893233620703300540749807207641549002761688585209429996058219866617503946629691472021429972325953088779862484958584995864635490677095165204897542720450424071355522556892232695008590279491518732580814775173306925585336365740494817619452897869611967709317537954955247921616250198872179599034185747526003472801544006004411487108459894445436966456945993155129468744068593510394105610754009267818934370604655070186459489872407876572542878859035570184273919539933420315893291207774253426450532143079278462005196207719742818325872126615837010057145028243636736857771961567087594043512653595776955389895949185901224036689277219927882423705130461754671244582069749409890679597576464590970558597061535432792180947142834169555734521303138155602678948953358783287782932660364471148602797651704934911201353115340581057605782218104131030281914389459799934317267776405539115181890478458029248139114991553352842758069659917148840537491724296302191025234772334775115860986827722618853152930418116585099136161655426050163839215894837844711622640791514877341202300362332960824723526005686035769989134167026485350051066640715031590803981443288256330618778337416527761726491224645131401858935953971093205112984928747215230828235269553753589844404519254968594668287534090874641317217520725777668695301138539864041015049803922807034754940363590674862830385280012227216401137338871043690828232265605436637316111405225006080429192503317184176791825514873167485004410597053757062287939246438986034966398606875590347554994688029533917779073676556788473174953377810232623781899953984405622750852017672519713945287785670235518120451327795416843672165407412214784026907059793042642212822928616768689379923538686378993856483667662594803351664443996339710595730235849412280516923423482304563547745673722816384592703994354210421690036846396977938411561826213975289593526685462229819514564653646203053731413194646314363251018077164540430084815103084938125910488945528434662397655219983453172024673446650733665667899109116639553693141610631831447132846552761672008356718995872856119592414816037347646378141592002576112870497171787105971168779506933221931085283819911360569369690568482139348393855289303950331216901925390832723635893450227939576495442873423527387987674671739349088593353959832570420689769892254240681614398426567044124533738203555767473469037386235466879395080820846035439411822147874844854056770446734372827309042595745802265607260854140961534806044311656654053531380770435773530161703596057317654615516017439647577727488761942588433577298351444122417244006896905989439023565730105347878364996300489528149033211992356663146738993604227574822685019071619536423030988299968058501672468260111037578837184391502090858297126801202580178522289264921374244363843262789019759500381376217393051781992323496912209060698551456601186431980581681044229341745271411508423856740895018576532908964137034829383662578208538947148465950799685022083172662321987054199493528286768278776520183742642628678181309077655298923271887034725149244849370886433390495134716241858784965077939650536547502514249557233840536101331142074940060785226699644728716865974592616615298136626120425474735513246233941296929671038507664854053071361245122554501139726685458113495110163029610432961254820907578387718770581180727604982527178746279665777986496819818453051857753904504813242182471409107722654287763658048484198124190257754893455767417296105632643215086720324175609802135161700916721626580273708968982251848994084114313138679936091749135031565064305610224700558744789396382249882137911445289263350509828277819642764639610609553717027069223858888976042926436866571593752315428984107693434862871348791968723306978583778155322544091249034233542655633246346596890839421369301460772672552465138818087510779506328875244163128597764473821346184417163101422249422723553884814602139508720494134024484806112179982787940891857953970168933358244012463252327132263914859063482431776471448629446965604871428033989270490217792072841030594291821539842486826209843729442093787768082674163753565171495086887366410222096205288335293747250026014343666711787055245509228009992489280172590352917093341837116640282849577769789377156651819133174464347004688301863077959891037315351950562353328265448631782346121127383804299199339701184979086359538451512047485308086143454201784116508608724055343298087452941293449899193398185412755334639664489529796183994963746101687798984557494266303394246979386536739753332706091943787976711795846204040280541933559094358355636998290485130827915283248127951620913034275514732697169128542376120742006853946716360176447451648581952121987836067636684234759210230198814775019244302932818137758228182427393599224455694330121213809085116430904385339961982096599182269868129635900468495293597297414970642035281322832262725133772982948435517072052123899564450445633100168985829484372313315153270469073094611460311927605411828129076692077895898494807938859249849366018181439467599852038231559127551704346254484349582670092791852495870067518657308731999213697775322108074067344503605380548890726527037648043172670224511673174058345114190804190683090069749994196123449526010487827298533481669905008261139568776934488435931029897877392861423352705033148617756029512779057101828447283132665466213970152702379004604666086014665765167659270389936531635073438480938663200487014096238956539675832520992361699851040992509416444473105226057646778010285889643054134865066853661476752588411406257461167961419306192041683298419563667265195279308891098357287898654020748006237944155358570920938714895196132973021900959036295510328177789399508062123078165932936598467574467209077558040722685442580947522013757283608948097310345932590391776281534103930332039742702927269710160775348843127706597156585368445268828244714386909825856352042560545836043580997754452584618988218800148476044462504728991348570643979244202999506157472466098608665468747136429997421818014506832586919462139896200519109346747775607559724150122003815889755878192827793252473929064609335664283037197014459771466246838145626619936591119451627626197267045013669892735678756899762335877486449792801688923906724681734743526217648092139154528275337768940742501022792893373145969077620333119956411224750126104815496756465426334890834233176865513004720521512807351150342792317570601348714355665490175009273946786644693182130587048794924041484790755391456218421357906488524572768843857145008959424467564382629550262305932975671110735458315162967488185895608372256331459970367010238482069539434525310093825313721748789669602852736255624909247538444920947468282855346686123835088557692500774038072102792902652231344575982765852623285216828813253021786631126773372235944954322933063628884389940241934095480369399873114158279310990917176492396365118047939964765818481107904371230999494799500219635818553298471257611422083757172894790854380759038776236168771163336299638502783280311813081464460546317341078227243935625507954689089787162657251779780038727656970137506691910087276868894523903303659216772577508696298586994359530397774517536383455292896148551016136454106383925600982084171562396497989976032362299785376105269055210984911180007360401661650125800127068776368306403175263140724330824312951534174578649785131142765574596717071934268438498914154352954945883356076742437089125513813133063539960720846204566554820020566019376222167613542309509822211438663995765476533670043298774902344118557785261201890419810232319356290130145430127239013325470439516300489060908104776913032552477746849352069068809447022569532788609491817465693521011115818353806125590627615890979788399841570576050491197847923767661711553056723218388889118401646487451272258918708446712103111195583797432165401940160772679746647135641736116888280644860480732678496749107156749476319598417590802954570799057491929015058684948695246863521289288309644037709694708686267293308755499066653590436663950969909376367345954743439672714019881387970636679496548130157579929207330701302518731222993271377310464911737022522125943340499207654229567417837023443808048099214636563383216323183159849803757007117528038769724877052671238649548162922740921096649389919308919564624736334898844430839260739766802133140357167668346085997353536813926041908517833155478147637269195075915683059328878604289895543263345515428871907583357064300879483978994353943362282171345369738059016980874854157559669619307624637666881807484894048608258521877350029177101619550789906614906816314749611917949025571578708230501905377600314069313817727565204481473521728282857156269434555578961973338083219485442189968394948796108430084607172891694919185298256842839528907111324637446710411794122066548121614899281387005249025457958686899505689426413349937278957761549964071187995892804539228372684558223717172389661506750310785756753903572770293501835821042444130515904497587497360641919278918831064085559447960367374577980955736383336144537834483352101079972619920479254739587857919263490235412875573460633465153188412044439619973364984307326746804004233883923582707451783570331181847513583518885250314210906973620620311755678156617896311183526127064657263570102192014068481379729074619009704034589973130728315743411664870055280376009102721531096006855134804590516177848321237609187669757760487228261206433549084864379525392043359544289725904629923292321440986515524945731196004674156052290733494938545008530868070716378813641068396377958055569479195829746080924338042963814062886937536183928185558843599502458146487266041771373788036681658210193310512611834594169268009699169017945758917251062745257242288797792657366219426773200739899464164976421995374256571966977063206019935068893665344075599987208493383966401071860436629079390956573309553738507031533558479364344336127283506558797388949187578293114460136174281033572798382145784926169706412684341187351206693005866171093303247816671323812035026673481236049425828937155752658175816908609107347896622628118947744856031778464285838300942507390025989916113369785190086390130258223471922084020828600904941115797906029697576045788736655120243699645076267333035283204301420933113184338713097915069668057034318388541320952579333364969803020566944591787970911658599553596914063738140615078571906460755077214555205195310929373915345605578290175584441506369873441059752629930754657364766324035736594067902795573320670906198879032520091991034619950182054053941572399700953518703790387991967773283836193484843494498468122343968228134633796152285651643506835781150204147070602886372528747732001153043990800148770977205255109989979959617741849179328280339732903346690516887124842300371606906631686384775616814916381888903676643413397390031804460366057066427972749984433896099713445464257369972337869680038698834593811871644122542414072476706727983712909227857261940268128130271216051997536722687698131817095896176888198081348156897601516169152535360474207194566932905948932858133777310451156097160850753566936472838679406773253428010405974107620191169245949288744167369936404844873907625976211238104047007280973576225005442165083844380216822846082981390053079310061374478079054769069802178035622124785903231946620094148768010712742041912468069718511997685858234697599975270501593798014066423188618061914172001305322470680674511960701857629332575360249041157857743060791689561311314355104285604321358737670377359785518065120555492083383861638100143561972701893648363874031482740090158338966878317686621171242473308522863833683494825823597494096011798210450981177376035832269229091316036499089823950870829664470646500465413464382580615880420999075389998022364898164720806322183896590959270065051614421696817071592787243171476790557722989539423015985187522437465130943941770795348420742396445716543012904508331460278333238614828927676531428054942321228139633773912941764248861593976889543197993112325682444331928376673583818603697039704423420186569788082411564702478398664795994965759274848263232821267346320055338656889307374687443827691962276646662199693831253253806290680825040855054785432905158950691411147393838019838887069800486748449284795942459583317120716113909258167812705024627254305501541507541585296453153289459631663145149582511937314572377168095078689726067703604759327890206645293666751473496506552596096681617569783353408992431743145027241679636739087596756717649632478471633936045512959978444087881875646702246167399530517141400019948328323430493632093128085398692669449513936156124964805713584940289865174020071451028270279637824742066478947181677046481838677000005368879917449295963082118703371198861759252808800482899441073997489053247060408311458422802178855306537107506946110439927475614701038236784324683409996254046233963367651318092247000505560901499518870009520494838927836030403288078538599560289540374470701723668733958936773464070234861352341596827497939305789458213383083554799845761335085106444908291324991795782031048869046457370502862232358973323263398611030828083316680274985835283377938956989791460525554950974147491212332631575310690935568286530830939230743394230358523021698043344760200721760086416676587506416155280667610791055534584898211698717099113426597779084827535080780671789462889826365086340746476295869883484369952710462450065437465565473217180853778144231814045908587398442360377406285144745350036046468799164628439615094393942009902796849123234281924122949278154294470630194142010083469518815231276750162575580353309590141013278137678198301320076532752210591794519778278706409245543738141158765270359793758324403190201164198381777726371063090394252258329697598285521098039363563897510575703286876534388073066489942706846407386383970938091719378604079686878061975649956829643176899991464718704473903561792483390677332254795799579160211886128252651816604810688859579363567631350231574464483501728764954885262380107840949492767749260208509960860044547855192067607840766350552962138631136816712695913686479342087507364864540624279732312432398832442243329067473151603189691914749781671433498943271268872024870899510556355917668390152840052678050047527209154344738238138251603246172862126041258069906542514656455248985426575024200792955561060299807164728346352484953806050396473699739660918004949603500439727509075354631214700047840778294588616884442085475910698842034701153810921984799635831481214452662724195995687598078386605843079651752582238751214597502425195206241242868200493743207429945658252445964225472083223456720780012670166810971271273968567744499014807731837247651445333596154193590808651693482314142775722657108583243455041702103491063377244713706789348888158158507246748297906505225991408893156589059312689860849342201708528430029842736923410139332038379727891194591226255763683924644020861953700715354764034022739580872630444920300832245498602237547639425636918672206439837064214475075069407377523309426326287117995840751923199931104280374897632596586516012542092487184397728695430286716492572783332419015978504727864988757024165217961743759606211059598817207730955041015320921104885221603548948078583857493648521869899230149515496695442230857357674722842657833738564144037217912771840569626445169503014813811152373473486656287544321346556541672195895835838975569232614034136345640799928416309853650131320256514828142008240058384178113754478840412098160030279443457695284844986263355571125894775465240144086543308158170337217792591862701887202295775151148927240917187483369031343289405902264989145836044436222291354565497808428589809139409076251120864187678916417536790841749236614373073674006409471814059200907243256471920807941410998173582329262369874298903721996128156318058512538699967920680887419245328631881883398119842212265422750799079392791863924359920868828220927666023769796281499240818430624983578697932745034628504852698396056127769324056171755334649880636360883929650953985395364526951457058370328691208052746346757668423049687012691275128373887486243871961368382585759488185039983311330459255749600129361944091928364295212154831917344217275220073757371680513752051123574620268573441022481250928505800391737905901567884686517969609451655270625402804639051260697187436746523489808526491685147564791690858828469794914804753696787027749590767442205023220237794018244317640958684933477736069551079895642726895157621864494648337174869638597999259806282635663651766254754875613648583892261147988953112372303969656216155107486809693917884181239675819557573982236986622901940386389561798050161436071808401623049299540296770361701412883809959360788300813927779740428884775098102755869139618439330232038520959370684806032431321088987815614022138430351704665008127541697634896112427498924958261970665103910651900406566557435794138031126267447701207634569160824160366444224770202769873077832274546043716295228418530707070033070986876439404766416613689890271233745747567671877236477197020704127573385966761593984336598644481262543448177456782009789142572258358220904547904477008276879809062863024229400903770131503926201060475815075915881666123493610913628259878566363979261603747863581340668454147630275667402657969496437871178411042813203694835428228902396650765052643329967282710893357086005116404242552765277450978067190411810988616808964258847961203014691157450960534303411624639977863864885488911436743221336110890792964237548128064179194845930889559342724590953305075201136085029679723601537930631002364250805453610785271585168674487382003993061995665535679005918584662386128813470620225871019753396483417450876993875189886815269867506912912595792808301224398143902046140365095056283632172535300657335262186499789508398135022672801999243361991183089887793425917212628206755765146524759481570717661513245328816056030399312360812840792149034692337776937380634612277239721710417644856074367264643116916828990300911470417577574780916000147616427368343858351885628659106921094645686431596079131276620571050712274837528803075937650433696937142701823013524578027454134736242443672655861184644064163295703770968372523321502411760381543451976732427673043504162868570821559253283581247458949750040667265714145408879556433713178018667529622907834503033450948982618751161034450491967022205185233785196939828720763093503541284042345944647687754577093322385215905793202868145355093141462273021986805651552167129648216492398086178611902654653886380561702336304787582799302496122783577563042729027941608722249213633004836988853957077559898759201391136894004937736795714166239112914459212860171170771121142855355351805588838221092430621835305393076166296672094177563498930860406669732536449830144042744345328630566799414983655214814071834934536150587896975205938882551768987774178950299655388110534378929697217947944583360320003473972060851347251089956453157382749792351724021697420898970315794549314176130740023328353085446523933781713107966357998984011377124407710381298055555532508384234751730783880718933956012952576354336954430169594071044585223489141532666927737144580809528898944308440327745647809143543983392543194467295535365970802240635238955287703093986241773679604528122644594644264628103999112083285660611915772784894943279652490200415057045070243981826109736581190418049308594364540989981273558000386616922512971436777317544318489604596878995358552648653520448265530622043745924051742512708879009030484611824726568351165895541855096915071719586770950305783569451618670436093128647625690500390124703334114989075962247021851791945535681175301372290130564109721301347388320722655765226619197907775712308465436317192226496162157237876218162545536291576556172171144436549004654952379449571491708866540024193677534426055033487201459499770291730078885692959968052728520054219128090353504726620508802954586435889049166067847101813754914773204724634050783541872568009847022631165666583173018720990181652426296698973694554104819362027399614283085321207356167381884703173042389240088596707280281835243564427352085345308587960304362606592244150618177330288477214112722308420055256124308459915764286272667790968798685652980294640807673431950285847168144312036030843945512044474130766236626945567895039174670107766748527968704059648175211730326534011713723534171468603340753469655390763792788948145884469491599549088721918498490080218845871477542576534200286424812677071578325198047533329523199927023392240604946964658682956678447615881739986678348449671004226851814821062758682801631020272963029664321429581612901212990108978324760128905951088984530008236769426484573138568715894284761051172919570798076394043233694936237125767673932749489397694242698438330504941497764847527361456201747986512622373355317745699221267353371985532608797381124170584940679330865829823344004250383326946642667999209755275903863305798733709638617019535393235879591503961388777758408234939310484574363494517715625738242274406134335719313537332785612837916611011913956426480691140041663381619635536452186139585175164834731649120930191459122639304120479974779158862751059405313243678996100782892571580437471932816003388875078866994049400738086727962818262381199412369955431052067755515716250254674221255310471209879734646110353365953251636052188677503009273458667123616374526165235875314225348705742692464037384155308695462023090750672584319587048718175461107186027683091721536026266146399755457797326264849382286962799267098392112798853883995880869878388114956012839498883022166542697990254233973680984976534527848084595100243548594959326959303518740200184855382196923337149185891253851448077980874780161368157567008088376486982000080202304709444703040999109309405830111694691039145020589778902023896109005461987627816965767833903459829233516611922164498296877440113152501605515833896637557147003007939882942307593980896662173642046839969631914446871212240137316996526708546410222411875640755661051243329732544828819657120089432766166653874813996643209625015556369591828168641812870232229216465527808154203931261092690196472259350080885053709643792555612069323728563407412302254248815168435150008013050469560384697777867133219410374419984682221618730035866548101744604770059045074717331041516795260262409431993879152556056076300609226268677579288107429977570786660195531201986717953549142541781115470630166717446972146765619337904216326167126852021309814870494757907954575117310424167573175875329730608704567414579786038099194437747591204719076670411473257475191573854789362125758704311962305263751971317277704431306895811227519345031312954692547203867098896362141738468206048002835099487168453024627912909490042948770022371958167929679659211136160621397203552068810074852072523097790646910981533567269514627142045472013609547350116758414977487631551396617638545557273814189057916360964424603232364734503008399417811696609155743295303158878555347104370296857620693558103636162553944915345399999199050881660798008835928395862205213998801589276998296027881464035163471672066533168671752477450223875338910063668903268843264636627350019801183742032211098616134926929246146148684322914300695803058370058001439228439989611063929099436841417735779877583798160400753514963434114578453085846423897022727442035168961729910353907491844416129180180810176949863030361257182968710017205956258571556985440413392365707349528984201135200944689798380439008692964327661041990022698580201784888397748441448843102988138578875160166512452778639458656809133877615015015510657762452317475272127465566990589009218347002505112426938247087085360344662149225720261337598070097066758959310363401601490290145715906379443493632231348762781273928151829710429811847883012855390334294787735795833290951069605960694878095632211307278794976490093273264446860108419101502627063505706484406711992424602535904796799275667953447006394943546198461482862933074928589990085605025696948941723646409320585143108910680011036848546683639266094359624804772526981880973209895324342380742803022205920033699861077733039297541674249254243840498735308056068552763866953195547733553315604626276258595962007624068932244312782670059981022683377949193909639411949522655903358610990599574980436497747948311346901472577641371190450642725319814895721170060979906037101585731310112822178079884296547572552099420194708938776687109319560515214274696059473332492908193457018867577415730720234748335521358187390914406421912627023214317818348673564287503657300115842688640136316012011459724345409544219806877345908466644290997099474631266487864880726544543379009201557604652272489482683400661633516241597739639050274071107074325530955774973030951139340859959439454382353296345693228549794112707393851907236283585140024189536156743217831745060017300531558968748417767548281596961748766373695836204312239848946102507223098484925834460550629344609779229959386910274927481575248795532754014725232130327235570425070606418564603601363341492988538121677006203926946507498609900502221988261958471288667473223339699636491305578391685571604063228548982513809314923242630678677492928902550781273139463981302479011617545453401191768416245519347674285499523161041979783399252151635091538024161780446800285985111270057744733504516284098925519790078599933873626960936135310380080468035818604685339602876603996932940250663529810248967876452833469084225122213501600057149662375165109995248869162636007046964512552813757914244356393952926123645824395605818743066378908557061504526637396026845660004982216076356909203013909824685090571067303019793285336256757789711680557550219755175870073933977881438028959283969662068782326393884820451254954718768132534414485820673501419338892210031967569791719781572152217487925645085572242027147680004215292047857834885433034758285471427732223736347403063483122606600737584580001777153743718215297018412224308484358533152921862326333779397763534996217455973466864799987123234336273709978397823793390276762175542273244087522432530777168997608762733766895079342032394964203503081168504869020120181425001844741348741723745899201884476527796746667324854754163171131655650123078485622889314281471841433369187819662957862622066336190966285832652389198901764358078167845976947743597770939576302271436822838331270789569554013327683030789596030876178461186141525578496730278185561101311621835362943264981391913042152605415354210171251595183865424839053028879757318718265040042539716610600053505609907153842604056833455059214237747706041567893279174034811073327020913829817385381700729745434390348342162254160253410386212078075042333067774952794855477774404350267689768546200207382173646966905620885746342699672637731667937654712451659623660167441096751743335570657147381716554687691593774289312473829459693648586263579483449439555479848327191250636425316405917928330527895851380052080197571024010529420409754210159878198107219002998585605278775747224798860510413127711731101263139973130428355152013408597444136766726307819125563913769280407200755226027512704179348723257416710998151990556885067895542591137311108158675700740456797674069151836024624431134731949066541507010449304481844608752123202953421023819506120454163529191532937819446588092986653461557424723306839659505572616647755438137798181866375621845692121517193597843281571202124175642047985318288093029401109422377806457409379639315166898315049191930978317414297517231432412471727100887765626775450304497010672473908696880201615624868388408193366466688974664117004023422378051504025065435513689439933838536182537859527470290418296563602084930821225249536329784097127692930026682835711269546816375946585092189641996976002684629996112509095422944751819904947645920094384162441380777444887006517789969190922021662434677122076640368479352316776631177235340689794190089966195026218750510279143740636254185220017523694146932937982170393530394607798371542420892267717669246443782467955141821327080292142368040826034460376134011734783689434371908667704304135987994102153240785748282144022992761868972738500025901929803875435638446705093370223673698262753686469897316125087340124394481966599445052216861389469937836904057036447639454340490369295985244725437416518568906698057947112096927989757002951230295430897874552920248314348873803880479733228278009981419084804348533457777994888671494847236785432852329709590858113033292931019936050736376966523346110752005672302789064384317129035234644240372350645765482218925013024347483273343887410984527726356221461825915152097974363760909125886759437436055887441762259272118068405654467822185631191263518317071987473389462583924438097682178222283659314568568550396585452504630670231501288565721490763640010398310565673548660047490354758427444776591847953853708127199273859126162371933418117512123074956089228860716399129502604735571348049338447448609023959490844707694903413274788384122629334531189877685174228355628201572371523429468832647754461484877349694959652583174618685066631265260472787047560896920942589903490373601146106175561947247998405615160919640057937679305908437841341838940886374995017429490612304027088446911071610776696357432450616987598137207104715294573911156487212996642046874247163312170586639367201451136629030692952577512731861587031829442634043767099622806524814635856429010395978766707937805516226077467443197181161772799046846010640290437740072277838161430003906071759921478838697540453578241639993627719984103097979449852316395739100659490973176243228217349989394570354445967549325319187105189776743455901086848615088498907736609312602463285822017016760076435855210076782953595812560542962457767642197842642829794817244330382832207532763079104578131260471122154204465441612351113254693001997070604700445412128422742065749004550158934705532894095839731497945505342091519047916764163091641874226735968101726968653562140968353130556232706687089678588352870249549969550975354062890632785704939916225444857001006690583222510847719239972605215230212311341152893847502394706280708799464684589772637402469225779292470176874052203304885926816965746080700102331339051088595103730133868009612274762354372002594481673525507982016852898527127610144215503469896020035750860255876350920998534422846015548487705453043026468437730332329189340066962522919796543075859692182315106009363404319317716881473463264206815351085261704519685673443577535412315460114527063246590183839803186527109378478588711360980242863371109546966503857582933844698496127937698792454074833782057719659235469762923856948069398629898476395182369740845518168102267199864618056470553421439581305493308937651827214393551323275622488009379106867455196207291481684088032293304228114214195369105162219051086928658316909214287141607210375483686343036819291182489615725823803281492768210229215337200509608738756784652884051310125497648103150176624581596275126145869135143066162449381541275685507373803427133714070060608617345160232146048937669438496254989045203080657722587064308391740359736555300893101999395330542983104516388355543445788946735259595414505211844501658934847515144388810951314694584706348114429614383429956747462924512168885726465810480500349916160683093384973512987455574089309768893607201569755384640882702468607439924414384253000501525632166680878189101719114910461996825712279390851282148801048438496781096185152457435160557737861251892253797554430692231153363685417862067928094680082573249110086794883196396788250823691904134364902062328902619216480399569944073430097304961269007494367984543954352764873916484127754445080557534291640031176410721669712501053136278857134582045693239862858123525402268660733959287145367590025816886132122539049672926364718763058947677316170894090994274638036645039662956181433746438671584820645949070410544164748633357989374010248634963473791824253537325125444166120939163021612789379870993092462224816763045746552973041179780702915283942928059441504293267108536525072673141777165917567726232391315560836097820695340796812412079218027085214218383819918170714715534840639134164915367443205211480963960959880100822977177211069961399911099467818614099841011883293082747938101498527964562987161577498398218470641889588285088298176947399945180264127711763573909722774950465930306368679333107315749826695466636364270888449450047765784710064860468105843381409973764002654021378162580633741054985468579029537560610713214075322462129722472340807772439543235614799167591926391349697184955872961093245673577639039909186353728662003179078564674999358089792140716496892456993542329344262136024810572498737577880607327175629102845600098195733395723925904761988825747952831967873561224625322592618627465519738367338297260069851677770133335899077909113627305079509836110574346510802052265452604637317889339877038418403472455071078545971568755008332968620088829413841989057556112786279490650549360976938817789876335035959236105016055748597701138100265906947789514613689790187773926920061055397230984576711183651709056649080258636095262495132657613129904629492415032454538389778269862391844554042650680064177252939156918027050304788315504167856772821046564556325317831912290744533579161222023286015470805517537361392221208494459699078705164379177784567851528457845619161022566255081173375309990293727364621595278545256774507795328860452755083033266998988455074726309609455958398959084879184656757319644716049289151934761016830087468191331649447065132252278339523143435112593940272185623335841526214485475833206772185404313402512473727016284368283976970484539351292869401891428138746177490393530418963863039114271277927944208548820520171987671075251289133135414444897529392758611395877317059203322016778189109718638311207210085788611168311172490540925180554968676958056354703580319432468513474159484191972697148523303236531901503203585537132504686798098457261703120426294094630745321022180217668425737312491768822180388147027268503462480586193630630341544016625658215300054323092583313853658475618762692695381023952521759065288262605506052940694110436477578219858545099776229797875954048337444764062782824285245307333487844952685722507978861563621621747711818144499262725545452716076707226972836671445083895319280822741222115651856199689180164336612796098999861612373330932781281987796569179819489039950504881820015363353206127275505123347867193939750578773730429462584956638068179176700574649093519750278087219810992022648979064428953008657856255551597083002958553309013562026984240331758164796435690409201564809846597016579621554617023989686334991448558154717868380919275911559259467090011491364199832660730259812605177179501791017275363672207053366751506911104511987340846481539935930470717338761538506526090088964711512190987798094115358021152479520700014464696243980448612200201615394818225443121099327131469831963021408887579992617340878871119134758347443906420043148871560482704711287143071140863636734197003087910607563689717664019452911166005370357701960663892779875130035115432514392576477508593946768301188232702800435273670356660449911707998009286129038746387581651859754478936731201725020144984689278686897414706884543346804815266954305185444152780320030572525266424963204148434517379677812263132200685465302975821169387338711498056557126016584291360366857340390700791549894600412792762840942965513445871527408436812195985964213956443316572934764343551498798508188769210416394717610321550907753428236878592328598966472558254547651958330476689674571111819434067432812658613065725368855305540991025335439583420106999070626964962579801389373964310057967768309636037473026155939048890484668329911933254373031492657600423886894515967801227885202729093204678644297377359732383193114398505377876481588084565532845155044471836714392798210150718753888911660695464225208416610243511393942485814900853139620908758295689581891167081755872401571699666871663195915130714482843734862537127871252246542177404253551485129049071648962428437995942807810499827831630145294309937874748524299970591454844609463000782877126462184753127189641566724508976646831371767628291371351335910197486408222368050411904550929937429486370725560424783491973285852782085819774030201420166294280341763537151712961172942973412661427352416398780108268671617198566242103970628223692534923039321601687023660437476444800907033724468989421344153918707562900669898097253181542203508388171507719715839589547589672862694050398519932016699189230809981085709238698843951615783667516313921120579003915173741629919376778154259237025813753401362182489824035135266286022776809962821784151767471014198108812867389412255667335440969895012434651652990774512124584563019881806678803557496659971014904359599295929553236986221784700740163949938458025569255692597850330453914598458347482253016800624929947532790248765275429221461848175291188639112403575420948591211796215093214051812848267145249156430343419673758041821576013335386740988454532545187642335440349368371780662069235030538511603233717330077372041007774331078815337505928510451678977897492768416907458474305974226278196587502206025025312243923817478299061420446600603944215398356332922684411750615717206977109895177188352463378189049818282649781278945800511292126003791376053810739027651380840975121529020397248591629509066397267652505966277690076835596455760974714371029800254759007486697002261745586693734738038735877328093378127277328836895330611069811297374982032866686696415189388216647277294424264197674571138152454007103128346616496192358014373088406201831259094803332227597753012392117554027167860195310911644952361621562125309575475784632127617760803274660657254895454996733660190507778628568142674139663237581940794994957556364294862925059240251547088412393575617232040082060937195463482874700485807597816443733400263945747138399566928896846999777609415034390175038946861289161919711277628272370241261937445522883250651335411558954924401261296412531448429500462107036075435511274675050235831103550165635949707104836880972561333418131242600858112886844272304777166332585147675776348640496093163861372388337953900877269606692383290540339733820908089484981161382117251068806555218451508496047779540216050002673818439823255561789566420594522859842553278286161410842386045424718585857328437306734583437680995982703039324283250438316161339911515717789162350212398235327743172107432632035798203340660315646565608051251047040142795558589681052175025878047337176116465333529543713595982953220985755450230616266362373119165023670804019904065119316223644163218222885547087691482957576669472643448136505734180916425834106598270025594800313066359367264250171322775390553103936741168265409620590971009886666795111873917155474526528174606972431970572873037719948625429050000027169302881762108716310903049650646931907883570824123551982197631705904261015655818832427913084425131143566447658576558897123275102899533450488683728852928692155699799186004958143957008024620649013829262678792470597434990501538762170396852772170235018096498582134314771979833275083704831034529575211451334779815835419575391522928675666514133511791588871230378877333934429864402613258610088300820736457871602363756648907711162010837276319383186272995192151138705990157084386191296307458415134253852848033934297398866732273332613881059138441467630080684431650321589096744052085666301396798325889707593064785135437299760167331314398451498977025937562848139093668219018828784350716459845826234951784467881618505817348742954648435792098540096472362340324634921507213769759867226148142401122916642768550517529862376303404246142381208688832095164176761461130085953833915885748688102141858513692238013487782868536286011404374542810892742352265180944435457186985289143134150150910143064061543438806615787381615737784289865375077404282454750851679155197927410761928544603294212670898394312095138701667478170760347501918860170391406889987092981435544963078981490625725652656741131456853201802259717961879679091873438648353294796377943951773760974403431467254467999589271882742554206614067565113976517956265371198788708040670281062021915993610104050411649479537098256417637035653135767161715794021768088656662299844515453356298843360796371895435039815864328381738400591638109180194539917357971296096448592896155296247236895343816738283226756116265694770709486845158831164555544604468134479262270004573495882436909521173647735427386277795660249790854462587591422182501380329397257133153454927187779504048293069603642615192126378760125930461302605026518851501558211227254802609460102237732516396874578553264060914744626282992080984547160239017639555184529191092212567367187005049266267319139339969167232179368271685408045281489728985275329853624252107378915361577605712526987139552344325432144976160557361392717239317062165716471511176782303043601975933058699190861028246148480920568589099380551356541845600197191301626826328088266017545579913835243266707691444590101543398914320312344639386691790686153759217394473085820369682029874286827108118635509053571522047062643330928297099227468836708117409924896030501244989404708523998731032309376730210227481104355245203335854106462446202198337303253959507851623999951109297278034587337766983150608041056034560726809581502439614508987840476008533953198702996043510154842252599883761974551056125311707923476002870176641568854084754681538608578137732491782723280874626874658445735380598891600774310915662569672296702145669306409311834738707514863079051786158711411996819466011910799936726294302876614792142968730040627344391741158945499077695497896546280974443096001944836291955534684596431492822347281259205873734221274894347389177078340430192167338765870810115225063362313663497065979641348607231447085090473769944444957856226015222821512029983895382713312125628348695263419354933273370087354156864886943872365454581696039910191632665981401601113936174227659986099897785823697081387936194132940392904335619235703308183084877381627962407904735965857607578637208254014277295002109446772418337314357179526350310001243870703438492276569361139397167086179745254065233938734804217915236198054119516710477425697541229703077391856207474064988592726684634662343086044535305186506999076640399208476368499951180621973487371484875834779640966322335852231265594797482929612934061548798772232001959966772372407015842435066890929477078204284597562492109295716451714927161189088149915818035880201283842926067302685684094751155090777750021723868572100020369915280521890615359765146129187409302325038176273257035960159847887360560931830753842921937766788817288792789205300576045750947802671881715906019169934482276893079583864967235911163109607160747494710386573372272244010671459346068492910661378305936796354641283703255674417853642125579915630279586198765528835378226477219641967350635687451440264610509285122652967290303127443503960837246608343925802111171097282457984198092798056932326740070529946257726885327454658099590179908530405143413734062898107130118325514557661975350902631373671634179915920223167310551256835648596847092419150877704223199717954154138064289826936442141432915226865245904930158906724723654227954115650302082577470114881372867533016644397744674075246113698098635021099987363300371572955484363939018913298759257193466313302873889091634915405605833581131019211578558764133419253776501187940448132059893236980343270428495950017231587942422380698691139133971649368758532865254325628263652012020271638158887563760733051824089077773751908942106674970500634620977642091914069429481157098902530096328510802542744198383350321444226027831341872346057956229806599559295981376253875789063944773635448206534817514548714710977199254644170010909970260316743693364348687020277794877993053433074947939471750746872389563144994107926003392093477023589680287185715009874562389128514299831082362640861584057641817055965910820442434382007520218267390637562124068443367377610881020996535706569642011591935028079888039479057581601175210573748969434262480745458497161244671434381262345092519733761501996349779034868293674957216565342469914263431201818086483357715050420353761480228594552309122533807605111233747898937053568184472674118081205567940017237761872783896898415179917816134057223770299064719872929041843246406766587702396325125514298465794011807081232439670228969506304937193308933530683147751841601913157322119266882380099122175381764385107844660647093019601384571105694304452543478432348680898231296010691147688898450898122490844039076516076963163420851168006601700191180295725243847199685017562541732734090427593713727559774367160430621718887878989151230722472246076742363896849271784853732469890885349835102802880053140609798523784864482152452325898098764898617031275520569456921165855273711389444177100413506253970105805993914863355726971480166781354023494179520737714406427928128985266570222795812649135998650503248869378031859259907221773140598333981785586947148137177745484393029782473283585180396526962319030179150074298566878980210699933574647107072267923185028927495625527595204047048989875559275151423628639709212598954074528464916341714984096370110467328274398138908433045877628983147425548102867195127630118230168827228624918006881055634449563133136738027035858372982402973954809488918413915394649900582017446356110904073255212042954694597442883717456736148963232046521292685420341915680784581039302456377994546660991035128576745378024905783009774346470559624041776810502900199544396770595324669959501818167593398062178570646565637635497335927558971997345199962981557962247121789738355830831612963630775995623275470553531817987072366590603982692594490423844839954766111472664827953159743975303704531061086645740655232478672822436250742149407373240931095602181017924172793317200963924287527560220551994223109438831484134925045450694404592545427370590493807617539585252392463670798272696887463277007235653239084494537065974398187670380797679977887483807189643469516148804633660820290887991891461616445335159137820145177331866138500876376242039416024943536072799347220107748072791555327623150308965717808742706132790146796861467007843257402257704943423872728355353845712647498642318879150367077698318101968927678005704401565289809016695835321328872628842318304304043264082075384683534373737125325443521754436671391729431062848539326646794394670720138268886238609398369073368935357804708897278980841786282707349480388579908612435169343625911560633973894294728484243092219834707065469271579493526807845823280175928551684673586182905925031364130910183344073275872614910262034704744855527232632477449949725936157076976953647633673014403639920730946914510602600215641798357467638338128030356914266002351506703360497100219241686915709666223617795688866419940384619053549448472295255169706396394885049449673896899784268947031310162131237036899177700506377139056171078891973718320833009262010777108883560970097950538221277612808543642227695920504733382458039905484705660219466225206195712710396878840298375188950706980322378810192335587901278155653741962139249408350621583645324637246325909085420427521501356629748685211727800939410446590577506982138138793908318243919287716559344126846949038809314791032512201084876402250632342821438729743713788896571340818366038313071578729517531504781711066854229087298985732146380835361099724784225259505356777686630930270709005568888689279118821061461943726745641566086706565277147785921896436031591587422162302467872287265968082181787947268846526594073471918410107707162068352088991143634397033637839264644493969633735564428447531015288674127052404983628304746628579133304554510187946203282692758574127751913381774972106834990444132375817167071678285847009501500136153153839895755224177084090584822297806596006790042536896883235614530987110141440476064279011842646018058029992662779804075473515257188567491566492721906635065526070199074638643031946828535964641464814645370531226346862080284689224921176819496957429867912546032350770939343608188465916915374645532805016496372971986582234306511932700444894698042968838259768709049517780731585294182184696109755870955082509722956547587101177971645340668510277115604828692758412355057578780500189695698816147729834897649134178299986296088333991210611072157618986787629821799578199029912025455294299166988313482745969440525644385791412304529072202811469372396884691493168041431558713251684781611878339024976011943649653307430391303364993875692533872705127274077461178443071528131825063450189266085411305444666515431172320384965356331488288926350421070837909268500707150736839210028364640089529158475992734119699880419230928946887510788872745814299785595993933138640123739980451034734579556276999926418591645300683173995811571319333636385887818317474478098831875883320302861527295775489988111107627812005284611221285965976660884657388088432846449435035732868038156056966006063988725703349433735873871287254445114088200251360744543025347330991412865163804675162588166573022247611440354461784705636438622025711164596713306422735604600430568710897499933496541349592625397493286617232123550340326518908231853980586399340495831237796053997015347509873297915151495473023756432129688389246105499602760539728064937391084392019204343454586141254877787995992323328669091188050278424623334081698915597836522791526795930199191986841092151087863945399505655207973851870469472757184793935477314063870646756889760724499745480101294071370649055234210052955941533690949704864035374326190863543150935349212478455484630690850874489998615284164917969172465602785006009672557962300929361426164412729617903497799670923912355025517850079424942144255682595258701547219634549422699970760394304372747846671938670960677274167934050938315677287323008056573524834086298758188119162576192369416232153488613187367357131079162963415442179159110035908646370158113286753081937855885079578483042527644624119676918677941358905619813350732608623991245839456385737182660517403466714494972108480906660268940666216397094708412911073756846334779022745734044318982195915138109403011501180687232070558526582405317214116965274664235271124446004191362948296422946239156660325466248572251266941011207021959831296720207134380226945702982791373863640033844017002638239337502333557700348390239154253887227269649526590720158043940896555088673590295509469723262829933777987420169560390216007618003098138766930820640983807938251782771018576385321161746919077304335662098236048187298933955516694318783593163541425083136083624725100659762864098137092269274414919018651106426155068555884334052274685434322850907252863006506598012960618390988603842547015159105965423848963459335488337038357175369932327188526958767424631368849153581214830269794136027628611309340139225125853755159627743269652023140749620857485417678133283932131858458439159531075114169823737210766082486014248723935797918481490281503418364893135050062795531305452538069759813864023969185463398503243678978880800636686813212380579767763517123109883992874364683143430119311505047981560963582712057197959052370037326925850653708796655015472357954694066202828687030410276507350925147707384267930902537159358032080376359460662168921051379067609664460890335359000916927235672168890117006712338462149535126243107918579620824565578288210065157428756255397937104776380364409565786379883738776084170223255299566462485849617186428463303598101570496744889311956675280091401634818370031099656940933552908047972047137655014554269019856090557987788381902592421120640451860306132861223141471036349943486923472318433884052942670105373936622157467771610383887495479179549985415991226959393926176757238057583591794183324325259575255207768163286646075230285047854991162180006111717951219676720235910623487294634203746682437048646206563192715754782776674603156691751581824814433623059320653707923505122918468649012029570109997458418215285053528980343206512063269764137499823397740774890555987436258411747622417967873293248185055820295485422282445044016839091914553818121874545158867497815408855416510582404296081296873337277610718630994691217859432400791592317826813292937497575466431345199119963570726023606143288711258235210333644473387784167779051787283807917241571727677746383419424405730810521549306957745652724312413529824642540784391669734586383078268153503691898319745178020234926073060103599817235364674538943507762667691782169443784165168545759609644796704613440280118704320694635891188299719495075280796633119024429522496156489709799240294488813830130809070110783752885535514623623645779220200710734544125933146937536995437916127527382651003436395260376613519179971390949395305074858186241150529943281273467011027877975251587544566127216550507913361729592160183048886477439252681072026639506515717764098072355975749541050949030469631138355996164621647013386023867621970383495868955822359637502465081658960310058887866147919524390301303322255423686538820529700107587501527856382941591962213912997235109088447523942849682755036838227389265949415832665758008978250999644904399572098624995801149964342703145830658974330987249945454764975842474693927582371667749704875048608286373086020160379423290004343024310961438779125180586918614070747305456224233074637646083407712053979649170499534781334022473437759240797288408485524801954739674725327464324442660876124638974273500741958583100918148563719446439632981714225199418736155120026674109643348260030480479063824033696946537904934878765591988742889304213414733218723256089657051053160005711280518807647317053630425952727840970176815066026921829228222829126319412091771893658405822372429527597006857349040364950310407770775354597531830828562254497276398991491722044673524063944277138856879165764299230417009964719544296646256462490550197028535554815566764497636659775565666439849421334389993116799672465878678623023832657704057015783564123288832817941232568663160044756719959065127063440423578975873879809535169027906780564795317967570157682495319919831370204000635832344158464881924149958235393197859702293123083436371286184641569167556333062136557658217312288891097372781013516483189616105079730773593017493871292186480626919351164447214285741707527913551815154471880161639259203487494797948765347340029482774248093944470270875015063236074519010720900081183979798510547041167343253348247785845145468021332163435390563340665728239734582876399656154903309216689808645250093452171970923573578908727527690578735041668715137552230014332878560718157260366298881005083834172747198932598900147743475163739754823457169866046111823905888069895279371156200199993816769142904585207343999220208473403758424345306767778486667362912907511384726612493419273924876877009000267140255665648431499341106636625193555370779773524650190930666341428338398352785791790374865252300075642895502347584614552238158869284526400319149519488788054707429036823997414987533251995350905786904310912913449391651822693453703384753479145377503733268195852463703081447116957640828330167380877498675328904606330244973265831412226320681913054547893331009025434498433155437228968717420467368165783119240145826527142579068050694736406929333216544801166053693949150263020499115116250940531750154920540015040970137827601910122235595343866861872262690392082931071621595525695236501326098576402392022110095475082370401783152277469360523980160865925579250663939992330242396724129595842990125202692105144047199132570685519336469635884965509535407780664254860073499021011289107113732173798837638315950224893487029525096374652702639487764037155856941802470533283853540170287050391493570625261332804562276789342145852061504798460164437393428023340346044008923460887169889993667042349186565645184217526307244363318163515282030889228879267542576425489915990791306666632784588465546222892559652560442014418437603355826436941179904706117554706001527570093760705828377261191120913901197105728485913111186230045315710643361217535823357443210221012719264064037331945512033872269107094945046345325456942624091668976111890126819381965318502498981503319203090792857311303428072820346851982592039703938230916416689241635661142414653983865525146438175348716237691498501859256677567218172595889351326926283621227335382906165403970740771009392907516181349364992737364241920279395399215599308330914265066818172136736454749890328858942661253829846172095076640930726933100997893639343709243067664282351664559988926561247168554662891479791615577813959192735387919539027103361359634703930045622458033883429443594531165040349464242313637387942475458866805828801173511784813390656051395796843126882960831424482905534684686667200187400910980336254778364420090821241318341509337279358341683451928335514000870788079510921737069771215504035317419797730307839767550580364471322634170503373880039594091358538466481849536876656965738789052295652732888709517541432978465587191236494209077618303721523497756980622595219691226116293091955522879881845394888038212070718800015520550002287080912336129447832415551210587484436072561353634305016823625084977320807801165405399230054952276531945063487867766537330040385517408852439900758795679146331902578987617851502012862598181706358587748326536347873645418413019192668118685759208682039611619342239021137789493432254637126931417987018706736752220843540925906287707251133524741096547461444395275177995170525728823783745381563225830349095229070095262563702078784563075764506401702352969791062802844378264722049210779659651823756785994002477216317311298424663598391851532683856706445953733215136350228797527913083934008562470353691460140359649522357983765092233895259994882639522820521796875260094546068684802049195014108634258528710571645422306292076100508070609572185913666328620092466002683717033564574689955100571280347285369361799607682889604772634313469133766352534620858702116110819603917966968669988018487219456171010612442569286753755158359460159293210479853415399792316312786494467607906245499160242732666815749141001094310999849027991556526655196989004089702133383634909412318892176655309781514908370688709760302018564147196968366283338045480603026636789522098227540145254350173834532480211318991841070777156881419039237107448598622269065474824500774516113983894672595184065862891576839646556023907946088225300134829756635887115142561817408539064778123171484653466838657460637619645318995636532980566541657294220491333249398356655333388985359587066759189094412900419983553929286209394232682546453614092626155612706270966927926963979987721324861716921738847371433203968243731847174854724848029155995651038286845362171961311344137028112854752003347603909472621386745502574276858369912233417056895774609764244189482759734275197159985607628461092598909913139960411950717228285016682483976252171515267713506957994361154689028329180092074241691719455314068677184669315652851984599832260128986212580977883444760483864561089140759367464247366389643911025506927853481831866405955519926189439058839465589987152377530886462656168034170389504686717556179488057860537251626459896632649822942942718138872970650299922325729578316800719690956417524120634838015891440679649059782356003534869596459025444496674725886396213379925176251354171770383121249756405826370261686771283659084980716387228586921033872101369339988101781014083790442292272974755643437686971132638578719903747894555223931959923022172709232496054485587868808665412399221556262206630031913885493601110090305332871090744494423593564256778032294220844383435131429361963746479121677915041376586216786032125417312605667154071533001072048305460118877859586964586002441872385323935083261139633633988534190371259413091275256798514337366108469544406740655058233077683081280443866734483840996639569490725930917419748029501740554391619801162312362118722253993489713906591679959741592423214247322437796875533639413181267521948809265838929755895246261939137059384343494951440657442069966065343393748554371114418287800499003124526954631914958108922659744533836536721444731869337861890313349571104215299706167461010739489793001178113967233087431907934157405030666149836693919903847130872312239326417726084749235862525790542805337305556403868480621895554945029634464931360651080309422748070545981439639058103326302317789228306162847324316802696349474416344886717063153374678191763745087162997329781770561130444988900981441205790013868422788691310922491449445798621808395944473213541624613436181463169958767119922090470125229182886577864769705567575616327738313516047685430174845412852483044836459302554552390155474203433688996219460942075814050420944125810900188619633107792949156941738000312950021803585904504823604806284324531710943386214413964038841951118937994513406722303221667092422757891754211269584419656705026161787058888912397437971311265383463413210157181205898499226464999770987669012678333658069882863352597327544412413698994571696678861862637153383830774262919770312938818081998867759270352912108847170164760189702660357483697349273285339218279094508191274921474898901165426463990688481773900585724819531611851052725998217374470512942254425001434814472062027778196766938032693125453616645843444668504762624635604688151762477941869204301316735525656649780578076701127278459690498438264132538362891338039528581614771256810242367682977205776007336368630841309360755529848884818524950518473116967374499278332606857177036186999563626357949004627637537643938220337367010777930021749075774769124830987225064651281575338469508532606081205783059645539725190702288604650231349736009158613505221542544874195098302686847646533842948177161935393382340415008144812344392532491718470735419447185566014227280496241555267393483471744563394118339817526120683287702902888932094344470485707878598621447284393478749476503282211317452734195512907176929065472278735748249507606648613029245716983631144259216673992985796260245071156383722160655605083163612719882233371647870165031569563146926274684196001275324189242447402815214395771981631313092087301317279850097889004768452019612308135479598554592362692345856167786924565738343920751515954887732503804446208347628105182435970436325032304770686735853115257812301191506142903574064968673179516003927244309262921636199834960804828518214029218978127634055682114633960273246533062102273262204709606348742079794621711212064895349239863292585089755479334850164949189981289718222493434689570036946086477240722119151687053766939675181257770497272012214661418736561389138513598241451282454287177424357446797709699869844611303270026269369532894407651845183218547577974078943046734610901136412317224403607479211674851254661469053183219434377890618743107297867891799995923224533342321478985891543957051921023677437259445874853806418682499392565647875617880158467281974539526830405572455801964652370031700036284380641995025239163922237039963355694877629144640832147736725010339061174162200503742400318073358450988822239999885484277650911152763009100632245123237104952122409242708464649679352127483096976854722440157626084521936858132319713427250902335593601747762112300249086781884380843275599164433578017292184967770470465599626559426185244378245141976056360871460669662375763839192662074305031273259871650161809835571796393761495212877418206418346806768252267605713427072377915281020622117065274345676076214868657467077489134433360369594168084209907091458804643638913725992212323345656863491836163144553543101998388366904040037564831741354378803317886312169910211096303399178599024417704939325032995193991286783080250533085355120201269211673517303743982102127409731827999418207584515799222857460350492193115110092223193766807123026391097592172439097237222203504939483596864214402888533271747068801413945498510613183102482493384544800676829277822348372587206579544727019978933497610603661923977745701368190722597792381332006291956659487858980369463110499021253406765273943247392122999964039679186888910076659379987645776440448047208782335968452898617742449451386592561977301688805532596763147562213262370518334898085740711204665431160916519496987912650513933598000486494158459688842244896274638927020249548006817979509578758050866771228178552895973845529496448641801415517600244944250755434442010897219348562428729370495100930785192549568961654459865036209302896594307209410927199718106886870201284063593790115717287198862941551680138737737272059370321000319790734676240251664935362972659612996680639836747441837633791476911752948333748069292211901219993830476502119092429831257518608390359169227201680968645441044720986674974247877361853510601397479258623912870877594122761720104816886002055615559478842669047529406796522735762538157396520133234747782659703400049523013164227868856371024491077683327762930256555859445505926391407908259136717676166413644931409373524206294398454193992913110629368560601982570792096680955596518823860538036442104898654699840632207623320674361490731735535421095082943851934065724244691182697534755882648390252922750381870189097909645588751871575757461225792274907654420619667677476420834874799674786792067894754067785652862793825962795679296360340446634368854952173066966865648605514724218300273250899665142202328564861918744400366061069235647306361457020629831928458076048039071515499393883380057904694438006593766159257677070676050833600000951580805733534101331366413629925775365752403122207068752464537400548178501719235440637949609388053044090761864301482285062636382329716905007979090525213570676345893790826781769072494816689658267068828956706025777783425473950265879535228444539139807775598592490182260882993052008180444248487748123441860878728418069603628714608785469389310107517881553287071286015536593653191286377353831839330925364967723908964916779971963568489012687967066017198692176613924986255637867284064573535701969626932659758190376268335188710668134772874410770075888128280377232194146068054173952877159719787578280424302662687772817723482371866938157570281936923344231003277683815760817362115702297913381385921638747829061629065398148183662996017615033471414604142040509590720606914708771459781551129619860865676793629227832820394297181322248216034910808817436853222257833665975417032490022566833086429915810273937614045509914267766827312353357469994302213931679623572337443957961630209066952767566960821383567264366580645184889396621443192541117332729143845904594265825631272512768908147036970449459076976061289059734664881367463040932771388029707607860694701337262283952660718974554916479722000249476336931655254521534673639646450709032115408062966746531618957931585642365598849367699365666280294666583380653583665561783244522026586985522848055716745051933275314015347261064979508525946314159059722344363587052485908272601196579029424443295773978642494924036475347812092821555449766798455680315791429312614131163424121859280148031695539376561486607743700888482981276253255690390508117928296089540025775310716017681565166322666183592224456993239501832004943399155407496556735436700338193517173234306584172415224575258623760674205640898218796127874282578744050413255735987687316264528394209689480612226572270501131274093475979974807335454146268135354893799039640162862908185145972458871452134139746703268501453149762454986372969842002803911390805374558540659392075198216119621510400064473394481521773223585816057310718970440714467157725864996467661948817577855337211786152421239729444995880647304626670234330907161057634097173315646488003823156151273305045247502471600662111037908990990565347554902599560771393187256389342454295546692146911376509196936914316815302023772866873378588018104406259756992526844837886887576723565902772081646028447337431147505434620457715930428657375280413685053687971018278840827918579986286155723664674383224461202095161089127165565610514895166007312251465673434175838868345537826316738081519761745055125517529821887543343894523734928192484703521039966762490668636038297918562076602266945509780865360974682527533388492438390205533063454961470421583522588370364712088635929751856508720584628541057653981128213441950090039194814211261206310448733363606017530619637109706632718917774356223139041439704473267217244506601273393906259594884121882810548826775938413719653175418340473485150905885668567574378374614895746123801075803096544592394344165283174279803959721510462695626319128945696286580594783471911855468119581038292036319348279914530075663382032876901307537225242543676463180150463677869025526713712594424165175492337965382668309943860517863639953229169724311086390414347671588056602614808958101870214617203312602619288176772342799037164191747553293977090614413997079005882211205488187087077392724631182436750496914834039894019279746086803139383173770095275063139556077316655489235413378776719452800543719428443575004755317765193642354820656773757405761286474840359834080602083637611601406531206543648309448313613626612497658021700981977709294418622845432305334315602761167008307018085110176400271276239670236722812978324660566458627317929973206343308899514834892830351152113975551488588274927647603828644704758493240394755623558910038764387649252147628661760094440693951297116579154404927631277765706150445873375491022635524904657568293698208612154289772638650264483107972842180749527357495765387974315346050624229911844799730970725979668366484507033977104607361472227583990658202713576690346307256431297590954146759934285642438010257470014198028001197972183932267436020819083395434655660642092789713440619992864480567724209745959781386925022189239975280413030771904103821140494281012538283801451748659192095450658664490110603900905872286089812407539130182103324491983769444564162842909871713655318109889532838899828292746918212255538803954238885638796023480627420848554177497116548951984840352979445808227946551774881908294973090557430480439423642175242258588567234706025049996140691038546951941162655360484519564752798496792512273739710646091040011246383149697300930739563515882634409418423336497282776375869832184564292280104940561608963464152095070287377604069254157054684125903525610008914308081251424951675900341458393584339552952574437513755529188780718025474916087222732722999758672202860193663198057809559078674557587611049064625247269531200747207890225683949016079146704875765177849941312377476819371877768602238990810670432672612085081736494782403266582284241171370276309523492984359922334467952132439343357476187223080818623882592231686505563367438234766593645932211745148364052647147477525410737223522627635052017986322587837596119304747862476247715316080686672560048194583518642837371181672146179793178696277226176715291563892995482041285039262931065270407597423348207298504671285025648623575789508384095839133560597959024200934514051334178602531334208612790792298735097154710879725559499050233231690277280332528562505067820049736582185363781415955149947050536244592802594877743448053395237328788691343137103606340938751811383613899841881522567180251568970328145786838099070578011240596739366352982358533861858820119044375711876087856148277952973899501229737532706060929784901169627146480599911325109761569222196680775874849707658556317301504602767504397153708788569144864259226393931880738199967721237568477561966615119702686395596143556277596239486302059149760872614816808456740625082685433884346340131769544834614215155119011207859749264414688005726545557277959825029300893337615514433898567134536217002548496476338846532496699116569171459229882779730734449567432934690157487254710558065111986650450415364469326394678856918612943508237200754586204808318079017471920514469254478090520305550100770774907090075864052310019278400659718093963372619582702149780872934909122308115708168961003730744096115618836928729845182460799839964226395180232960286329553040968460423400470295893232705635394350934419394667196558345234785506812498959747341026916965252983436706861652903521519097978491367837592008480413626784980621502893492457530239834195311660206394164455814960689483776899464559490467168048368121702714893528019282549079882794656274414035288059106928451449544331372316817847842762401754789251467500534589373814278047073531128973963928240446433564040219283730227674320164449174255238744856734222544058253591287179778255415888919128820713309854063761758698080700475058028746309819823158803728428570146342832693789739413893014866692261575681508601269106710378866708443095255005213784252514651580846430304156203185208133804672017095639703667263083559622200968155566102500719246906382386699403155118529961903730891081971054563254249225290647971269701649215991941775011034269290637623114020046074863066806152106773593319961489925029766217237765599222302629095567324852198099024570561625053970942496948268170785131842316615330836518296148839454027158041326417355821938471311129977625915581697254982099825082128963771762774172265338476598228770372507916376131529119832053805494186438707065260554822881826609835245186568076215148459515764297677901412814440764486508431755202665918428180006003862981485493894890352547644121756127082179122587335457593044196839955693392670572210904369430713615391479375066754743547233323306236915406688019935752824246105141375232649796218023361273745125959553297410968094609969248563510670216431084861821027490427548927483587768734470841217037228429208558249828114643871788462039987557285753004349718216127495972990524963144261118409112389594532587916427361634703718781068589133265920355883620327540709941921422520386825099475649909530475822632595280239580716516029732195978741839044692863620084719277470436311247503519234928358775745534518736103377309680232795775381281203320959317752926776837857209746687554756703565413768433216586805671560591865751662852831620377928131265037113485511779252775065510801837392513803272749046124218397118632677064789220187966953907195355204696792370265317694523797795518072224673533044755690018620181594602468084916765629551927335522996225452582548865250915897669984808249977566702506608128412139797229528349623412872764922998947371604383554514492742562562003862688074950289826315177518498978459980533721519111900513246385554892738892339420740765118316576843665704360456445056052104830180852260208547884464050246322360184527257082605016406068549918898980172527733574501693526637569480796261104415490696327678721768780449695739691345992907694296612916525425741365564881519234602520859280388268552114440468750150646765979278075749532752132269413439892509884375540114226846983296074984535464709784619831570122047407867124459831427939982463148176725425854046359134039127206081190282412758809321021946516234508120574479937237965709953239749311395647207322948202392567543633072958981243224057870853710589218821471070931382697850278776269040053555578458596585324265067138209458699783182104126205192469611965366821846266862073461306255910534416443577067791622524590158031980343868010853050079208586066608930517580383663143612570962204433229962606598155785915698761139105425961585227630699644216757713827426294653230664471442225236553810031878042124403144094669806817142783072588225404542721879488658111737183884004218478011704320392846971871690558909525732253660749315732300022518054492687047803796122855343760484977206218823230678692152309063375508723342274053348881882357556501144422253327862061202233588181036143605284260210378576133439057843837926709771353180246082239596411442782816756864055328458763651789397623843073198142368033496154286506258259429419081357021286536154820768949300197000297112218190898279481009300175932421897823126090033420251078441408656089950803714906529780655123855353991631141846730865774803462947865570974799171055777925822136848605845525890306606376297833674239819630691897608931334732354892703514126434744647830868517156035211553076204247419141989603001533490065803511036466887750097049480871953968299146044015196220133746243882272711811862171879682493708023098628516119860632463732449109783764247854704215185325883732468581542983853546269266442487843172719992776914617751734953764166924591478670594285923311392258116055241882784867778256689939204258907007697951911243911567102606549767476407064866543662912422625759473858821598728776113287394700307543468580148017944407877253982062014054920439490485871537299420685384846962047970106149586479018535601636151128552944133500334063405868646131998412463013644646660073487098781052871577577260527006258993312868782346886487633844125691506599278219389096859121424529760078553632253498815948461490710838114596583243254238447806380165060668031893811241143927729680697256041381976151206005435068227248909358299808570916701044556427873527425647262622361723163881509799166284255457226928066385622877212633218840762787018199495953759727817202630782873039775756958096717732283076106043506160743979632768968392016876396505194028252103087817074609460760918065069698785973139336313003616240867142351442330344183268644845433660614370956133801494121047545441527895530230236117591941771235460120315852197969779330080256626354728829054355393056911193549895706907878289270842703608199711183594101818496090416025838310801462427404124942246375902913724271667224349711771141255016070999787779011283187364899690630615207937990535871307617472873883152196292787222154543050962896133505455945961743927959430735002275101164142726172136676873488206568404288686413114180093178058668433857703585261128175197426776108723381590541142964931478183179445760943397526017729952416034783795999633818508048114076199567227243680790140618972396721629091210739150934419853952483149684098364353522323462143281015695853364652787348465941242872872838844659288604557353820007951146537401018002596330985360875636219425340013355847425770530039699447084074242080020766422702768311578119454512601032786336782459972482926273742581504553942072625932751683755260483840914408597712765648426958672512031758051308306990556360129710768685054108981290326014697367001257078893671826825973380349682563197392313189261810128487062219972616917043543131573406613549495864964295259376298340190228501108206566119953942174246764629706866665835260825672358280771974299556440315059522786468417820871252635668798413651932878007817062612425860840950429191002197630162965823546909276190811026822916516678563210301297722231567828291104646995922644218594536546471501092969331501974346924668444259374225141399571276076436856031210983444023973879825616024032860260930548654846709904697749784025314655597742279984722358507806716578959002664201960000560599826770105090832331849785023970640463607462917578953082334262500049190814262868012516329676843098293971543490856891706653092396637996406324687764013349629745605960134062669214939519269198404314556114315815325322054635293575040664975321491292158386689221804900402263893623216343072381432355199378654562795267516274741432306101348443672402992368075329097196718671609349946877483445132216904232892086385903280621467063448659012895422347094657051824269925865887835243086509921605527709050212604988810823972189061837033918020588720249046327140774180266193402300470794160809784725894265198056747208222602366581466138106603638965623827891978568721419060538317351682662779819634591283475321801360402669766529622449145185322196258035441820928128368973585475284451870837332248427715385687940800628295314112744341699441838622894945147787063497977767022754027154414507311210507781568846751696405719950762477679706079697139048025051141939122308999676505446700143154857766921781835047612373693249161554334317850862598078589252985164035551623904002715047083169150314528878843375523064062626584379132105271889183873993867483297473233665705224806432190366503630794992911145761814352559694316694304665874010661960275227809589122389822743535749263875287321124740097503168314664567800688999855717137259353963688840610815791231068173443858808170355547439750979724797426375667647740323028025360608087261484158951961833972618290947084192553329928968507265252853074873230056813155376472427345395589400923632514913106833395507636820795727126595802495998983077199878981309302750909082982715346023882051746446602692255033467767137522292205342629179185586265113827651198516114362308244587660038215804641210718269394137004811768063577773823415113601467935591993599435078600191707873536941784323564029247051509710462149509616983290753237912749054851715728890040514160982006930558838676225477970801787407410885233130872779724748185394332430904862468809599374997594687211536736866753348033916338108186865533760517992334968741647366547702156656970100450397463066938396100175359517788809105135482536483892740043530009139596849546785408619259404709807367759577343811644229593594143498501644231787465551408139626130270806609876220005969608680382972738609844500614209614357042447232840248903855176919740534320377061075749651215229976238946893844447021163756888742083524969862845480545132101965946073062408293621519528503434172366346241099976316535212307144610471883141884591390308339869022621158964515065973768007332190901117165911805573995526059101919780525435254166100492778581755847322325159492453345049040608033471896100223646556731248788891021649560429693533639074680240019689138727193585737701709445377429251806873380245180344541491574266233645206481884747424651263064769676405346981410598312701219079782302868257204145500289725714559074205723795666507822253619314124967734197468481817415554134523879617305315560217692024979903702091832249476763585136379238074978493577241196862166933599862947421284925856838551433903454590808137727528591277446137822488548557867245765228977002737939389666852039021109549078325309530313906777330894527437181415471115259761777686389018051371974401620282465501876221352226190531774430613149500834116452482294654352128661033662732675471135712923184127794856672303843958638277617667370807116261821036661027539819411571858960921636113114091262666044401525664244943486295272484092795254961080093432016266150226029258775972211422949840521343030897278914323238197679766866247818490436788797752943710460377319691458018848897394020600915571718179208154478577840675828834996058240773858558296952231125119342272731975125179203350112721607796293139190010445257504672900638681078458159650466854145831594929495927446033750232588336150853592056338069682053147642594616026991920271054560833631781478430233067375124904824453088667072328097116424243374749191131403433706908084411920142282327571227152907357381488973794301960485202402568334729934730308918781940947386308304259300680739808524657043463847892413167395547182129447760989144898180662887586953030021370430692289579708935998244161842204941620128529946588550865579872341820312331852804635395351833205089777681630549453762980384629220674696361155258199839146097094267172063044892418088190272937547560608107008776893800867749687482703016678637688571406721400618799960088440985817849161536688178273018918929858765980520025730212940148208210040947168203577692126238519430609919068300641941389760947416311613792950690746475916782535702534395204909023929163304005555062025183761482275613782011652243911383732357200195141710512487788980367419966458352448643391213679597880919888341314734930793404004323196888863957258918574752529741419518220246404145760401304091857963776580485120993313587677362926211189742517699703682678936708308653923485662219537965670667344630232474280922505822641139875925830056676920624721485956963677856302425428044265141945952341260557442842167508870523797317566676179848953614232997071032485996893326493078412376284872420053729459548592817169283004761020173455626825526287696358063465791239146112326482559245126871182490138082467650791286300316721367086222075901406149143519098531590452664957264969590282414299630953653618807275705592798959854760208054641611962076600980416983717285260798232325310926940154464883177873666490504170022577995706671159293163634349503829901988235969815354404234731069339552255612205692682265481882170669218493921253411216265407026281777166785417297578725830543498917245349217926715405097298093186484127351544575074499858897082031400190098233671629228175238454059434291653040033996470169635813086712897800862559830183733990656977062469915829826725665812636357337366941883343861119398639433538885798137259620929732838427786652235400029086732626410762254757804664625108318725246189348991538933484452271675062933933476565365617437396997909234552871242888888311901816785224166068957779458640836026611217521724364039429630774182096420966535641217269802145953631614929040371758246260922073199965190668567165994755382680996358251919088948593494571006657218965724211672947057445773295679168132589345380728734227262444382587958912930289509464970634096573374200327463414048388309154706068448689452370908765029291669645130823236444399873303655243854426050750096635779485262964493550019357098833336502419237554580930209042397213336539288367610390242130427571958801483832094118910490702788317679366286294250570834185991444527771419692141808510705660169634562124456148829298508966233089315080766043841924686011931387613478311603024144814435978200704916480548193085656952581832593745953722672916780139057094285007778557829389727793891371327673326069715190400804620607500244588326073127663191310502088078328958864771137231572436725080520018568009024506882884533818316030821779592632323457001572870067965042033633495855342842114417431401904753720389648703970638003932762546232255734552430419249215273694183745624481419777846889799002182461912816141284012397562826614330874704798923322056781728006114302780139185994441096093384613651339084796286269931646052177475950790001747228057256800034712698393852659638530788700244160309040360743607929476722176064178619862561724297177216193082527211359329000896304314467240350737932395915798212233106578536959924597098638359275574966891369059599107197711465791435728621356506208525357813959744932223656965042011443507563706740068252925311700753761961627819971938330503238211896643721948171697260323712294955547427316120587028512285786702094224695255237099336402146077371170874804932780595002669917471558425015004668147616905255249462021036618636505755545346046331303565859195209016474111095251096519134199808948016109422312992758543530832837060788214367232023966038301232143559180772992231820176490365288166753975294082977911286227847090066649843860529927298685510431024414939521028334668384227463928331603315964170602498850339285483632353599179555865367820797833365913791399830434326506121003145071614418603183997434066691673974378086814809983330986408129038373311123058061105024558862084423067884411812723272483911291018059829324514937756201925686667590970953629654401299032238269238479951288463295663143245121321426703019311153234422695936542513461640285587483456377856668354565800176324016469515276957101928632310609310016221279640913252601599887545715569984464794328825371043857559139555356300073217299734448575481404603569672837169811129190166983931487041929546459677363158213097176921614469118264920192165712154779085861407916552041927261936351671156485952605538611246641711149966655571083185495730095351537464890597849995377802858222527470473773468015564634974929117643871911352366490436634301657557612956586972722936620057580998622750612904485826157089179600651271546738738793075884500254469914794941465324012954159327707341466719182417488598720610586108255547314469996810053407819047587373310364479201033152169091769142347619632717419271984340006389919161886345567675066478579394058320652445356954231168521582088842626343107586294520215190813445548296946940718565154409691975928944500842863036174895500722963543699511273419256448474400389333264015786275092974386735212905434699351052930993894051931875608969346134441652115902051609496261517044842331443751891267034216119257135439086343377479688344774248245739531970919399998040691892077549484078584471646059942833348854657237937443770383372781427952330601182518457743230934175269302322214028748294365665128930104147217011155950777380075986842581966467104329322267485065097424692322811329873596282498150744649696327802162954005228243185373612675741871577638909688459043179302540546864415589331854709255741357842697077406495842976542008703711725225221584522417677191820713593695494721032204527743354315804284921625246567199095266347054700794027965175771539462380484057052406899040757674931864072008351171981155972947281177179495598127955383820988900034670022049412392227437495923372703221112906421824179341818061886116468967803698729430694756969430310595670821300533790916349287382997117699802548060631383046134764924997460915344064221866896230035636249034227243891842579405541370545434198964774924859898080349073556196456523178817621416134625865627560389281629516679404382289732995193701931609369751890955042136894831382477278735848685938581982923823491859208644128649679631866446043656045419779698990556260001552079513975384565552332498357428284448653091068857816224911940490331237172936464228703336150268172971861289738417596696931095860918315002908375183397058133990718026491003003465785372845428802344194940147345307569864283179375843710939646600114663211519127288664569654606760095762453209164481142450725635285709255202043861460981385628881240563362132509578910864182317938677941550715910236747007087550257620454142767983322282703795815219303265143340239418610527126267599935812798012200858773417760857694121178361097784140877375532675492398034495169378609868988647696612500642614548214507998241660589809700583459600608187859501299351611918149355817043947886940475767652062085769073755203852539914514834581150678156954215323162595800531617258252174585903396788634908323155735932304221272949032329515937761888780286450485312846922999721363517659671548966163483350016513343591633969622580178833945816163828561609661515668124474224184548329981890304897366565310015934701455866498116048931258644442577008526554306118417669038814960801109464799883874473573109424647139744357079958456966384233468398959464642093946368013510372825351608607216779783917356430767291128434420972096462809192200590691757078899319730815236805253823105674285529129596108851192990049576135595090861334954068058905158217779479207293357182594116776233500340587653285569792131473056832977643186602921123652224840293349402039490806967591489827751251953960124369711536732513861491319573703665218374399524981702581657700237914378163138683002115947418493842009185746985545555665311350968660734058576138885436867344647468114338847313728725076352278971670718117477272710506801846082508179008653605743715107940935808836227489263983284903985030577607094321445853578712491476320499530909039611422621139356740152843814347478586373162449218510475955209511020070458765400185761814510107051305980332460526347455600115793644784112539329484924040568907900833656555879537482367743131407460094160281834406602484050767154713993272794577324243260940976455604097768526404959476401237686578104338944814041384472480389200309199545939386016490211120987558167728216078486367727533002234248722352909266533854603755040760016253875718318342502073755075671687405803306503155204891091824192725497890604097328705166597014890387351876465117386162494149313496110976420551355713196084957709942274574484315902605905627044747385307909930495648399324638352937675634000349710603783350806915335407467201631642684195218713969346849146136226483732484229659023651266388837922207087547658490404812730773690905069969481932217470174732016440309339846141214716814550652769892525908239344642726742610489218054160835893457546071130664554540775894448747736381359261770961506769618399923827375391247550885471971462778790795430412182477868100041174918114859447980593746480297706142715056243714752173361910055730074006735460373619434443975550460178699871722663837819045010822922944254421999534804916776260537338422744975984539368913922935273104921259949989438744734167632175628203199223263056788935078881132546121505964331938059691653821224206886966672012169055622757332212483093686112285772877605380256592968734834497337076608580530230435234272618521921881288654162866095430673034048302319092264386190673971518969448131062083144771858500879027685200026312089945235313436796151569121743668370173768642348641438902027692945443597063486995581047070829320228254875646876761977693911522760178935611317947219748661665357414259830565253312624096009164673897448462488095181742787452477605164105856847969143738506248144799193972856917700288306418534019227934623048380337547220579858609895674414524076699645751151061285661973718701236232281800432669379093735396834100376900883570396433332570197950761972099817108679993353250658521220608548781876970333759106012251151041011171163875338881021087750967880986741923917645559723916306048776850094236649885889760536154830860165270428077426099178037116538244078528660618612412140859954185478879094456088089680693286733723057971145777613299989866133856082642296706073154879465714136230244028996940761898142236803009512371612283776163971567543678501953462071003310731246581950782313746849982746204840339415703690824298975562306926642753118834828743019183193388790268988878338087570821939737054873631479554412887231872608705918199994121015170573032048121263528674103767216803512457766649380932843894420014155801833985433931354351731149292085584816035219305979361799048043737956073150116511247550963930663073690704560893989807136543236460358660159906397641940130079623807901734023546367436197382612318315413153998684095759457671385779463204630931467303385663997510271916585011203376910170749998324749358896982185751613814352490194396306541256857640924897349535339657769689895961857745373014549471619566688343129680726554433860128722770113708260602376277259353884086964123181755886821760504498557338679283651364874370588677850280050234087377785566113645237021687958581372249305383373936196783801697505253832143751980692614757711067929077736001253211399365263576695500592617005357476303165632154489564647007209312672206354311058886516365106520139643485911755966775970883553246613279044936165267500934824097102894702910635785965822904109490205069833938062681499505822436123017659184995119856767751590282738272369697153217255554999775321421599630532188189853452845195684736321564036113720780298313122831168190482633092420631816535593959103789382597644142294764682330752061893664647724398537868306903410219355307028196338165382110837449896478135634414825945025508532222728171017365140453548607923678733925828155538971377610539251521586968471114550897998394059123006879088306423642621437125608741945052883825729219669197879925650288853742702718448182645489885584336325083953792198497439006119319652840378831373835642299942215506920993794273909215347390214915984588205078758269211198750867544931015805935965147366510911213740750157626725729369080355134106238649532352253028986758440339768183371942804930474261764349245550093056627489315178115475296369301104954020606314686072918487730505086595555097935869815501051676996830814185181397850953021025238886948167215187621805468311054500215047411620415368596279615164273801352295383267446448814953056276736836325861290536108330497827089918820962020736804701860462300419524350209012223356563889466628532026412044558221854781529019030665726873187605138828936690127519844917864547388398319751803269718577467861945388646876127199467907541532527108122326264345283735097429297901957315471870883235441674255064584272415902722801596977517341064655961400227245275230800805663890116537214490643003649467253952920396462637611659588065681399925747232694674006385919737805208639140653091172255599767274343884733437402830849977142741013262007020845583343929083148886817530208057874536762418375979667941299428168147581545607973379298775717905013895703452197619483995887163221030426752012316077275219258811026595825183790928100041665585054011314306094703628191589752251278190041126998731254182823149879164192452524471775536196679563517107227866380637917983140104057504473703882026288777097370247435255133854674226920324022574103713043469850928192299358559796532625042500263060144920682780361473868504943563759336677426990745674032105949157500689298924440168440941816353957682875316111883642944626441450398833641677304977196820151896264404751773241354398518548980629485824479806793988797049396945905988650147443679967874800503497240131602218372429532643392066202593939768843717935387312783202873933473939375073596939264944379431987045566231579989170502695587831038241257697137507284138013353222266937301430115585802201647105795427101235215792041191809119494079330737441065486318403075111148476046487361009283833542484493323428912224479910188075100875980671466525729277998888506861423844004484729231169837426740068437251035782541527077347953089771866840550790301915595775006569256409247378280148749403677630111320678010177562579315556342433967460668883168743485583091222090623524089934818380110892800371499322170891822042512691769360348713659373323425705792143514465690860536664864114397931196660333290594111928209058995505094363576163724670235081806297514530054080249626304233033619701802368386014593434466482838282251403874816430127238751639281628313638201029583374079783995333788386542210234358261242014243607108212346166685091665691143761285664712104256595819905101481681881540526122235756824633845617497128559473995891932414884548692031408842362539791834240162508496897167384770351191174354069481939903683139555682547066213527153699352774572491575789219149413770037909012224529879118858989500260922395980780349252551469695255474370026280491754936257456069072529091957073498305390752487908211762626666113817390441967567754705665079777879103274824877929345642627923783552673738850522342040488865636409101155054834751554092549751321603341610861921135162692288040794177065048597445345934574087998395506025037036361053199489471009216254797487478766159419777011116603085278633072061721880208451023208616955865727258603096236399738368555106366637726749658400892054134768729612087456396570198005040775291036611825186081583279255101318590822207249817178970205512800974618160769692904921159459628041795759861029824520480407041361109908461624007320048542907378357427936050692908468420531597497187181771142505193319770498748166747593025720434480196619256741690752263417740084833448983142899155973923005995417749744082572156035270518409165690267982758488342470859924758703999284443955202954640441871975249422015835186603558985362010673950000375567383161184686782712501007998039160765892582887056405319455814798967774495282529209802957375531876292569522347371778620671061392794872694730817730853003214596670641813714946818782345694754670277957402245138949051390029154757472223820359738817867808603671213714739149318076265180314623028680430633964619816809282223662262101835847392299136765054599685371449069363865617855101644335306758350278454257067100697201960036677148473322444563672519564674009243802794650782379420263008302865419977280106299953896704201585522995241450180077741664489977243990791583126968804904204449007423852092292238667401621586550235357591304532335503046815959187013969709364914720531914611843256789158858754769279604862909702541561886053414505759339608485235847439392338039979956405595974567210605582040741755620370935751371212789778366071871330115779593281075836508771738750701270049979690865619038890131976253401463184886075752288912027050960833884151668001844426387668336415978331932175647055126324674103661115913407859083677351177589519293134212711847124869703249433730991783788823187817661949343672432702434100647197904492640298490589445868758394323733539314754556731193843094552406568756728577033800193843220412016314401955719624618755154924274105085663876010094495347555260538026665882838858030434182764002419191038048367020341762331652189192177441398692576057444347222802924245325685501765398723313442032768259858481979321326936658092773831733677941712749035496482913051940166637192630505419899018021984807429452888950994838677495853260887465532857121547791451560918275785287209715842619130736341424475770178658531105522894623512849565944885247455545452861930474261642965166740790817243072204807986459639828499894027049294447087119199675583131635615617945139988376571980181912750181258738140310183582159983334590407410586023220146467271039820764868140080117748690033805429591666177136484777172418860414470756108570955093615419040153224644139683176446309433382703402943286868295035890017112417469912935387729672264751723106773013503111910611637844561284323285561812951516793075028685351597071913675947983547213052166737004151066357881231681079344218615290479632426964503068265270988424165284187641163123543129000430234739907921366325084453802925164847772479833590134644871267901420824182791122231294319829538140399541578007152766816159127746684366664858996487374644546970472375731749504301124715864558666962706485686447497973996156112811438694992878193162719132219320538888808785777506551308073028111878842807326370977777189326253404142632955661764087269917420175701587000652727237584827119526750400486985266157011945671575089977003692542832465098752368777940220880694181384763098488170838304164279987731398004132075852614465219452108763031937985297604714874618337681905473950735734349101900847570680869980972710837787776068451141180428213177998072882855754202264233730687483395419040724709431612913362718700552189968496442345798220670122417538805864846110839317114114870436311562486447462296291520133864128548577045675518619083625435750568085643763121562308571449607663343063055161317907167399204861455959569234125820353905837458896472005956326236535771142618784536852651311176387612994947984052230101032417416887199705143659532833344442099139735744438336492421546710219393474319161885707610191407758494453043363871692270776256328671683126717570671702556514112249715989942358779764288891694815241838084477406505568372868508988808114664631555873430219091656309037580558667675630318625183197235069934241919830355353654888958808732547279888399649232568136389662223310356357972884216588111303542379980954688638281173447707974042593907218919193626175110492198199034192926492091543649193989958261888977413539729931400255496065338899785499325709298364347044531730958114466347020586916626271499638707480643856024142307000110921222114793563187391129241873304886661398606797384862686230604078825118332574484585501097569468064829714937726390715640208732410898119755200432990476925487325600257840451788322700904806050316041695034697755361569764793702573950690702350545185219825355219189318819795382713499081210829440334748873695699533607432986057223286065440960458113244357796820388531047617635823503484513837777286320533864824820520518617519771841916513994292954926675562422692051820816748748164902820830502920486863051021660452405093770165011562094922931619501413017716905299844644225930496374460397967774187178578793072918999315024305282440542648754400863140761482527378800370307707375778656587379901740957339138277805408856518184904708636455487497082690893710725455842644899325797085737320070271563120909054124655911914520139847801195942439017547785923028943864696000651541218521705025615475173367624074167080772001074409143365099560051741778270422715704734663441510846804058001771927798550586337419449848946202695702934639830883285800462439116150303697522223180214471051996026639658684774588090591667694540647433565908962351185223162398213203322406116777841898246613652361265931973161988801679364346585166614181291476663245793502023669325154292395526709673962326298660766095229861397803871031339000184280581889621230186740225226723481514391932818770605767554235113563300808701637381411783223558106667128108345950206250959643083722193683170348049769483157073589770087308721554405786786951486571847614745962405626456819570295416447259806809698033337006309462999164042052662197445886009374413797542129717494457277166300210953845542299420365139711706084391290029487370751096293624498201530351030791099917820753403700693659274726180268594313389532740818941935271326080068633835697857123959243331211519147712831215710634838335008654671944700854905164757004870884316483541523624201921117763441496532179947766776677008595044076472691089439682819084077539509248247491896346675259500158962749715736257295444663222922507540380659803837474527177467955637892540541490274561199725905940329801721421414208978102441063421651955727392581269470269583763922433975003211815466236385875374151647281111383529397060705970546363513353635943267053011288417529586927018873269764021392042801841754925657372324259214395362736702746992478181282035482697068426513208149685198963634467428637672554001662337659704527215592501668569435860325366846848554686791210600211449985298253228554569327044700106639506133840344557444632670497211068361889011687695015372862771495638618523721018016404122778781301934767993408512024457061082895106989459217439431805669153236538542687211508920396239945934351288208170837555635395156622411566747848908985442707217993798259121512867395296891562289807109729783023154295678969681757739823608810344852063960589362618206489828160590445980782055817555401308841658734247834917647958550926389223561160218440899541651814812967837734303122025596060800448523380707735210778616060295245269260593501042932892379650335567571280365519770779328522456451026068584145615106903192452057886472498349884828763350881699843895917850686587020621649648644467161619873037929772850306949305363761272260094123691008293547849420080011104327108910910139328051769519459372146988552969875937514550150050067163585505362954418522045628710018649219892835445444392817209433118638356614596746926535842051129695821003028747332027210215093652656936599651287637191485695084126892902375813294389323431334469913550259310234009802508624934251154087144999274454717111907531554472110213944473035377261912241701672240315604738554954394283057310512285626066443882950787609764987484320147683495707880661563142931970687449000364179316211123828933059879847370444145790874857562663330906586395839427324054845859291165211525881652810882636919949164801357074413715504988332005016742928604708234394791557708364853389601801096970344254105819680589969532003078752542337064063338596107592011129629061584447240236588492892990077527381580665080510222593458311383251094656737794069264328504918522690113076533924658607581268266470207470556087967935922701104150305826684420783882717400523413419489350343279421304537696738496496286243891880875689492223040949758275234830494884561715385941106569523180565863453283621848280369394972605111985943029046927315477321112680506454694276864075551558366204455582779425819656619044219988886895263850051888308849301655957304821577022012431417135793362879201370114150633455723552659981669892136793526690652134612806100069967586699015575754545418886069839892252755099358266664533520407546992713829818417991710071832570651399721018334559502426768440882685758889142167228599678602258698038811178553339232638108936263962689808380971486339970270492913820505766123622221693692166719623133496175066386811758323260157422374561906488600636192116023412031712538044047625026444117291014361779721992995339067780149879894611037068563820906506854730786429140633235167374593971493498787381323905096035255234300934175233800860344765490698538930192919409491214964753419662551828240001280877349500433874771155200673847802508885682232656975928812769358418220692877285600685434751985233499581500040995893740141550723213135170979610241800761564608666518870300706024456775462717680590397425048521633181442272806314116397016023106393405544757892610183332749030555565911487263383070948848557980937340380382543308836126135462428990384689286687725272106860376196316975771980288792848964957136772232140971078518478516896214083507344987017024854978429092626798027608736630488929608188217926299115244250345772859678235996020586500850527939511860964545683802017620260798149765244833738135447151107327242142382843206348595901868249243479381264733567940268512282981335391837600676785223229719781285622200106183610916517406534726090253206703780421991287283110333856282499915690449510096745066985731852877116658049147898445570322175116559174198057618026442582511717114729414179502836607979409859363403535693160961547468596760219921787137983437153068230703732164230645715865642560483116468052541249469639126878095509436265607231111709468108977437512524257043096802406968493068043234146636548522990454344240982383137109367248147186892934021964018551767455266109357612134356258371563375828318290450506858584509635578192650734542042403078170289998962003988822183478661681165858116128068995527338367710995417534175065729664923390723162814289099859342291959215586021184590091492828724857238998718706986197622874684625320808359425335398801578978495853695174863349830363713636524801981955256076511395991738507951445657825357600158988595892232197366202232503213691204362950853773650535156204278282480373639185082965094680861467198851335687778708007658778584682654704567883453128934948234530077933014388849538570785764945465379315207272080718202665657638454752589661486698897989200681085861261466525077406592620825001006087061221354009932472740707750035183978215075638581981642582115070688046541129937260788274473555553267644458585795775409376456324079307373185141491632250302586680899724824619467811818012293111502213247503153676903858412707714554173160331060712963867414629409089615706566933474200288965815355227612373724599403183891715817223998669285216078250781895231155810161398645991679021426163126133394194834501540959026808617737601208086338665033556072459505177697491694016905350053366087292543796610524381346974881267895478166551617620268958533585052776466868923384635994024633624762763244081928911797302592865073624915051909635859950059622773131709847675060322639490492813150128437869418496747129816867923856781991255756995658907519043742704095230358960512725997888561546753153312531195859080345026177973029071937722099418905345636997631837060895101098125397202469118420291307524793707715111681486651544203174677875068878389041558236492326147199536182102908688980206958852182157121085850829690240202277182813327895049774058378906785870526817168041110825909185497850082262885967628171852824167783479985720388521341651251396080414836398884379941034330986707388869158885835200116752723649847515586806631892987136985746179343389242865326965214060835078774728932985431880495060335864748068824099328322726626310741375504754401478400487172998798662037181580212596994529844151314630727992673098752053595554250224602216337788243270862911076747278958599593977648082957011379666720114378979089090296567907938765416371408851249915610315561476114758167695007585113794936197703682981507246374900142794608444453239390947064792287605975297992221777702474610622493973106177793711541846438568571940816345990151584542573793968251754073727000500053903120776793136413635769671691649316009303501428726293645775367503156908147967221535551138388513604198332892906322071770227060280635797080519349103643320650636898672019025654676537751292893341272772074890220605829000379786481124205580349001142943526096928405906190475696584271205973203454177252077331987626534536667829531198585214760980355427625824487555640874529231056906627020167036058584863370943983696576781535354047552488570507181046835007949241405270909259505730195765876655625373728733110232123386539229647212489324388398730935843800349299287143992279983032342357804604600136445399953467268523824192579750322489153285913065231637701557863299227944642004373267604840256582699077739418526120498258858528840979841447960310950567446902979134239274145117286415164059723673372428065053452440117705469953960811921266430313477510528595234537656896756442880424161211112307835547133127449872935119747609679191307088038520862579559435115143877144156548401124850870602579928117602209659359094927432093082607716621641120488947222266597930528339269581025604815928012744489800365121130465640438279064788664149123633181796214122502762082400975912707739990431945252372437740632846201274455409966767446081647002355285079828264706409110083012521886674476112811689650820423315728927728085841324214453962797089157861669736960204565476408345299312482097937694476252092969600472912595367916726079878978006872832381041240516891315355779390700228106809561845273583492112468778253680284320367331056502275573572708192000663839798617836932518309488261015103581162584352846671755246631949022670770042779373414232333891984071877277946066909429428491372903038399237307280181574355002583786137243106328866382292801533923484850296257626739133361100426218896902139953820024855603754746764690196080191619708437865082647610038123470360138275835794968949070895307855208163804458268412640733439694630480201432481377601317529778516418975084184136322594822129089800833128274253805277325200603320620111869495078133749651162286393830314881228380502374776014385903685560085604238588422465387405516438031772740837490472538678240553111554104428866505687660314958836737419630969815990545926503402779956874737130716778367234647557575813060215366816659368497746666184736056647898665513263349946236459807682076667635755288352089317911076966016313269774051361481951603402639704800036034876290656939868963643963080071173303722140769739115866723412806147046639407414110519150725483885845399931667672594649172387314191565027386057073119033816555992618070103698563019120284894728619234169948904725355650203560933879304649014611655436096696546773068672311995798008231225942011908973128014603478616665696858436680307436618528456571561716151804514365087427457756998194589800450154001528196657641297518592400747134785644745195461953818151679562223254796393595212192948981296023854229474990932446827105899249527344350665983385102361494177472882810694124829063905802890186919686432082260047059807438912084798507658658510626383344389129412660600711091324894689304391533543042023181772697544027937980600062992449468964226987723671307589988666163535456422087032048088558178888466670405183745855856873935197750022889867795738467666830326761289378005773757586934292533648191675011847175258611783891045607257850241182042998664226530929258734017824631258669303525832922036940280130399004788941360454444868187578456569124683816656244576426026693879442677400351235092866089343055338794839960319865832972351614253446310126997711474984297714900690036083980780500396749663363890252028524846680864883824848159848502513587087308468319641804014501243997970757554946156189194823046165123598462286418834494634848801093078944449675910103375358381275062736133448587523004565147350047410358276618823006112825478433907583486022394617539134763364163331591631090542838441791539331687747654664644046233607539803643515628732193200922811780890511062215373555439247489098451525033915197394958052828365615385078285210235552999328412229815707834716952641696517153384961928263560832405859367406777180011017058268210529907001189047609132890731819820239121335056717611954232932476957805001712633347855986419828605077782949812794174006402378983824378318434464735478931339263588102118559063006003703306125598975080136139824301488997156915204190259208746097070133194282856698103491921207509089999783603827058633868676214285961655185704228874740789309320189161303909078526187274489766089522260794166598866584728533536195928014316810074318962542637284478579360544867446505627857557937677613779489068857004450501332812239199532088246492032509601410719438996693310132958148985348704492221364577046230996040370418406532706557230583764706279730197793036066717952427368437666086476983377262708057016219697162081228575977665249943178115198851765357864066173003242383236021119480927702516572311874150850631480307312798065338946843460880485282757514029758371621835857485768591419605019355132985206742738562100924411671884224698753727915598134279412508317449029388275580664910719503598841377302384947690377189034588131479861804587511902985578378935493811364909775805378922451899957165301248015188926775946544061594421732274465562765423505893806993707270697269394271066247384532353782645791388209579961156276168456844388341654940646871473728556917783554685621673812949592174756429283104683509356035491696500017706714391223901056981835639807520605883049317625531443668320117319160377897277477589213444395017828262761535337618001783389715649143398367259088745250109843892347838624782775497545661655689838574355174891018755152042741632567635741727570454729217564926064326120047828376029529877682491868468049879678111426244589007222586898489098823996013243599347358174650628553600997640633359880319286999238089533717699150687264108663802264755547102414098458781029164328929723718507806173068971044679677577946049677618257730723469820908826217609343350452162397604653401229051814068576702954683471554962518929612244384969679252621278736994727071838932272399569332305747750342029425418366899794329061049542611264844553452745358784452520731597788556085248630179468911949761317509096558192446816400683633279570705177871780271084922972809084791898539991037658333431705661796493548750082838547913696788451019771396959983124495030460773919731210684829673001666695524079039730889685478334014213161882279875371001446456162159443051852997308976152302530087444060536981842525680641227883909469044503104425908313373475729412733578859823445930327847698876995051908128153774765308871580954378998119390762454359901458209999934266097362935982027843330189488733627692524778102212784938601973307541971120538004268994220951424036013105472370944678084896515957143187063236107707179992606183579870358999792986114919401799135700269842610236752281180263959480754571986238707437590387857043534836595150984098166534217673576037384612454476731684005215555292461679544980897689020163467605687656795653628146007506525852871198237715018724718007894826848934895548569422782567853534338026419926408021146654830429641467840309977451660566549442440390080773834177693629534970872326627992925392624956503277612561659850494978099261837037596508514091772543304508449445925288272703334739709422564370409451417668376001334813083181496601920506302251860226586488321129407373293371025019009850059001884108237557506314638018413380950141371240481260230352680797443798329823029805415297511675809171085833415972689406208024990137477780201989365862093983379320692790387613134164018654693111022447818832511749144507894029084130700358365706095052225786108965023761874463921496059074223669117694154889741657743502574026263938256937627082306102270806358500249289150213269534671728631647715363633384472388326072874590158465955677717442458992125444628794993717951844208869716068240078627444807007777297734201115793801636211033880790469764752307588569858100922531464228769519110764550415605562633171888774787488280285571168979520202596760193216752320169423258192882629208089160612924096091278065635485729717451030544027550509069611454304810984966168269932594659384461514968146929585413586948369334335822154378885269908636701255380666086690080394325366011553724797594956255774322016100241065411979005749009766268885631627355093914883464008631514281896010585300771713851592534102919033502325069473070940697702165215335298292060092130716731687980598283920797136065742107111486790460201745024993623636512356727684459063090209947493677109411303283523367450954350029679482235034961158731572649787643973431491607162121918493106020909834613071450435210051019225656916331766184840453492199482589822987777892907218972380501799551919322179889358560265712387912204870635278256328551233937573820529163117590810128799338789493901296375184898964279221840913588269002701873605054607195129226980306606854119505066358697006768555785319208261957771273876322181234356269148903123425294681050107785894255238321304400049808795545124991675218313149353741829964348608435882376757427092008123127905013929239291600931594433957966755924846645604435746017443601472595440052532806572429732971007468577942481545669438658253725605870615006184759663158342530868119900317705809072055817610903104208735282004083199195629091441392868105966263613403565909891942462101946940786085062834489645278976530032239025534001409211435170941863758478859052750655556257617129029282055508692775203991832845274884436030560512759294911846134431738543921081480712380236025820288069089719479673387582551978466454486344867100781881571923494774668169983628767332945726702063654391094004876123175227287936362784917079486584185437561600767349937949584837006324348712817303017178983470524476515370446385189483143872094144755755367372397133348725380878235932968845400078374221621689106306591869224678502561320189200473259690775055156228681068963879202241867178517203020817099492222524681662993585404174061318572299101379744817765434588788753176308971424832457906091642861694948611080917525841436417383290679744415393455515410982702994645710640132869306220777714726867638690490520051464056284550231676534297023705402408151475193415391000908147842774277974467255970449582512028389683932197430542283160226060941519974630182759068202878300366179881379630827627948816877248398121744257744600886540658785390376407439027397348194516605220163261502080151906208495495066404492002053008414541267937974666057390063692675633182099877417012744784592989811342905303353890952774009330688936530975789276853340777095343984292631296407162784702366710137507623511609550642607178532731895710925853665105343514290982533906447187776294138638240359102664458589955222200406571333974594691854332542946505177638760762388493298900913503795269746517585702252170149244894875951154260447587955883790187773830517969392115975399320477337309906697037289758856112529300807261610439427535170561180659147577224040239966452046886958724997880390259914937854106256252167503128357263074054867817813213171879240450074957250167962755668497084630153898898135483401871268159836616415185628905129593873589816032981182756416376086784326872165445010378640618944652790319537394811101409840976490826670697586244397386419985213821818966499670513747589786883434851252468821678638344805523096103747677375508514727791690374785954259819724965698320276255431470931601863689491626506042276420362665330606387394680838861694265049500432383545097178707614253396823112421446989345497156132287632068887278553227731936731791302488587535539810044732629660044182951929098276564155759362071961954219347867019367747609696245492749574641146222111883344768799831290064688487435650662838209176114529436222097206844318260618116528251446262044218948836087004908822762558448302346886535863594678854579849241847630880925328295219615042335586978950833949434036776993834731968899905293735662061981490903723618961370308813754261335815529247550632867958879322012366418372989485214129944382705119656628467559968097092814780259426329711043804306947278463620698202281065421023766567002238304774015978068679424057131745476417823103141410554060984324287735089727050813600310015633178292159754795891770618165726099779130877337187839573928752351818621037769725901726347025292484643852215089286271607645070039095320125883451245874615744942291889363904247353906599021041910737867056492907137479751489888582689637456345907571147871807987022146279665218088339347367316749441081627557182602531193278918790752470366284860484219909464399065480284996905951485442461783617744847517091850627009305191178192978252234437149588980189739661674114010386334879127962229599187783208344800646532482729652899483628260956856614939674626379701399407492793397178462898478496226999161948059388002477659684634592312652928652327635606768008611503916929662218880333928721811066764666349678358785133455007128914659344087362152570835422777764412737447567141382624641502784627458925808971752537964941173587788194784427276679651066756322037551309484025304301023950023250945651306798945432982896578087291976987645308733646792899622022871789529064787602004217487789892169974482901821766405512275774522277844424805792224550704933791104370325507753300085990667208712707793148934353799703551111101178944084806574893818784206743407997043548062112891759296269932066213173248182518460190411995864538166176496972368693694466943672358312834511645436677812342478948241140445106234142089980731601800063771746103634663269824801694486329206159858773334065469606267763530421421796531838073365339433052239835384173826625387632151182227742415004648830151233874243900318340867231945565098446922626448965015076674413586719279204253230233501142028890102523406574207978520425940580578658325759252884239549435330327000360296647671261395026217854064315352759332816296200892037569916079707606346757953464474734380001224601297806347937562827136844631757955500329372468315405081647224825354215195164742949251854275250080595804908910802154006207078864245776358132601562296342121572685786630694985592568573853980091907114209669694916133389324097167791519545747267067628197726344972545649924446099519382824045281651987747844976426754569187568853979273182729664311998371854377017699827868622833667683425746689491449540373783264336904419022342875794067558616703730539105947659233141309176001629851631803843020241357909772624938131499031487134406628295987159905727599777079149372466895164062490606800274834987594061628712875971702381933173099414645686787160041040793477384950587983802036901578694455290785375963953611002790246331739758279980361780839280565824179481823995797798961072933352015757844540498957967513619166163834598448937074723097839791952516512431996390513728671071577226397529705344145337799090808856852738911904071518541981087536898040988028686862824776045471823360006240860462118108539160679322886661160240373193252536045538318137829987663882650779965210149732703950802939740409910027614920087332843626027876458670043575801514280470334676334185607105562169498373450963793120583713408224610663008698264398773710494449985393999588430992601423000016136497256388180997596034492666979891349326868491510969450654226459772254630728212280078204082827702744214760796377139801964344400660479210610976847634646692618407074596184293830285687360380995813036287285033467603076845427895360252913683872224159285245758477820233242933662215615022770988708784833114005163227965815545024043447666682263556673157632067248024639777341832584771409920780983831623786263434968776126702123446181351040525333664580905932310244022210520444592718766632448911682663836464438738811018885666825106866023525677521588740862182952236786957903885863733983440612596923946275955780299454937477977235297493924043844744947022096810208048312922907000783352730759279201547433176231494089850346567051374107083002792260390835662442004373909075864268798902036956167582019858364676810448622403181064817726463431820097963773458876906179392395473897120668265368528622694690929585162961293668477002004942844745536379991580498122260291330800864202522784611437530257012309236416399843241460323375908120359854707527955180816671033217068319803502042446559619090228072258038497176311929722819173245863487463948220675464437042764677264436978599674285575444325259103537457476690890595129181758223649505517786647436849430976460087564268744610606036532233788053037477112773613819983049556167765331873812722302673924522579551218536594882857494460015237212995366963966742171306939107809500822926321572781546860498067061942289541493423919634251985259789022736891151859989394750793171538587869640521757583063257788430559805169192594363767756745056139013461752731182912039047636287467997602598863980067019124101615946157075423802164174868226024826429169337637279680425919868875288018864082238628173124860724439322456194622306060449460113623297066385385541897320736034599877301651518183161779635131544943572399768009248089062335976103005997046302749360013505495704481220050429229914034818443261811388410420373499983206262887081359648112084807277178992706793285400421437297510607380529054851013730260946206816511598731890610059403951493599420696622014544435209903128324036203593264930038138061111321080413111578132673082064876267860767287808497112518623110596967373537590755266816697725156146476754502786487474517069847650570901221988231636872507531408705163258017184979502224133957838183380375999243239378695145069810589119330795785084204375225400827877177450950156595664066943319159524981588815084040838557307002960775031625843026577781487583633330309820717806103974574391253408198885745975258333889584237596157216148299652401114668581799345476153942578073081972448984726400552237515362622764235096627466226601037465661281703828122960349633798483931611570051861745467905511774363675286000035676078105796871981341337698122605847095319279363183235453723441599005539872549488469767065068293976421716283053115549570129485328109528567951614083154642021733033143457580721445127258697637065516682221865272478972757874967645545431367675659056204413725226192224357830680789228123694549202249269953861360353418566830594120214930724164781683913620081786424202074024595857336583257296896668673314424112718409912575118046789431102738849722959683225632637589644442652869443611772736434540076976943330526094057425687646089863707091375881203459315691584492805522436791636147431630566401923942118320255476842101839894120483742257893688474030884699508597623426593288083406479210726657970287275316728887352625629269620328401593314667204375443638068403610861820376670492670029883775404341124113172990143160311807421059037415204798976055120277821541367546567611392984257496728342254586646147153464115035082981877812538887152761076741673448305548453142620495043578573858996228967229043273095845315277371671466731011713077936097040799927123249859554457408603100722162711100245615668469133013144491996645879535597506570049121490247514822507589504705818545699406228606936500055429237785912486307715420245001712387774345522501657525852194586149418830700768438036714381956299156689197110052645517513708844748101800288860093835516070669821288021482479935756644857797639471461882551133166573919563901871686854326991051020445531356708074128648724015378294978839744750506306030579280199815274515644669459900271037959854967721188632769664208895928390173868432709303434044881224445816605858618290004513842597927959103264361725850515584498986824751232399614778056203343658496428762131810908013181169728013299893384846060839098682617154690573586864790237796326305734875261430698642073519790768833823602611872231782750204087586878812542417638929438812016934477220770730848625508051501529595475244914561540349653457324865222036859446045849918392490358198863646426814607219209411424772481036038859628043748995069294679216194888676168467246174066036588083907431186291167119207698294763923059376752928117335554000900669016443212843451696513222449896929454293517156585770028898402866084128057176837563650363594843253009833351667066287257009873074589114275317245160792877934719221031843193185045776552829670684301303263754558451982640317528337687535785059503185632060455395202685204279065592507229097753657866665895948178219674863517563595723845045438712091601603801158983817719737179585468612223025292293751627116575191275077257193706660495531414795877160738053852211785755749847957431872894167177719275760741497435684846848343148913400755499523542248018730432871049311730701918262298629810969200850872328027509283719363558141238829310403185366524005776834499478155298249667003718976701271542383953571103381900551501534758785265478836095018940870786827561922289390862333232092763249047541434748701192968902727774336391907482241670810841569114908150016363935822098252758928060000302469259415026759596809759213426427374430437967037976885630081244441392687727323707180094517735275526111478099967900718020703360607550577636959830947944993824218405723883836509150742340374570065940487741030482832241048636507484552652099324751109090667963017775890621727401203679106898115219457586221099177886672409424333525781843373630785982756522335676381485844326054619531855204734115347123953477460687765937036697369774454214869321244273526198856824304017113030657623329023394677433010821496262378157581718764241402072797630946530942384629830241583663343606836342271252258674254147717781343483640175183067650506574011010161309096284638789480939071268829821469352285472857783799558191905742146936543870655385515136317674038792096021163457705346308640330466295946075888091437038159462855590242202817097158317843560267808037350664573455049531991199619632629624299752746942691038368439849180644422367319130742716616970539051623686307095235375880412889894874139655746151610317520531766137988183758386988108397684753123494060609280927784428098373082238489063150367399452971243505892641863975332868649869617505352423405755914502174424213433488004021153666875075634181235581972209601299275650521773217365554210920693167629648820498313545603452589504982122412274742420642285537139394371705814642275442211807872714491919402623821690782224090168871569441923390093066853891207546396596689612948254275723324989359001918611537238654712038054970320014208185550190182120941450732310463743282925102468765207135381019828513589475907374612838586486090239265820538427588886870699345365197456862410925502327485215893410091663740323721379335693211547632283470837711960487737320238873688092897424606873400469567639133594520706709904914915324500036652305633636647581114568061381296212458207763176996614832982460183030423159666840679474010445537892143544817989703537343815651275398672581481547029846552689352094279221308925547177191319119072532639671186489239451583862300090727930458580397172173120717422200681770646113260052027564040194727842626440917569774959816135635143319242761536401118104109121179731185154672417502253352919627346826917243020649866540303325735356238151726718849767231763518721405926513807213287217531365862422217622591140026182020171792937378064333391422168578335356290489012686442775152698683988343880155398683340162639575854819080388471846047040947066319525198487279391979675851958635829204063152471123562995927767427135575806604749121569271541197070409805794374377147001741112471356149863702759428789549548230741721926482488047998070384111350692961673599527253362053344921506224544683889162828255688870130643627229242499703265739531782085289090244221657655867746393292598378368765873543023158755308861465997635619850932756335564316265778730601103781879275626337601069873391536477789425713621866440778481284623711804425417304780684168596085588009856891739388606970333262237585211197568069294428923953369755549081245751522712910486759997873975116557174270909905104713594525192873806333726705867686502218245533592896484990725601480907906275894221886197672843525740424910780668046637812687191724523416714538689680420490548585384167330602449656616401310781490019806113383492382883043148941788173540802606565565113810371326397254094844748520577975665714900693065721430144656104308387666727686075759433482426582585120172139395794828948142320363684422331303355479347451600752252255090211847530677735600472885252121147661642507004829437024005522078550836807941074099354997799288472637566255540639559866992054631658718547200142538984653407355350926351069394942732511998444131617108664572114553509373725303843710082979993173386218761043774339933425489403429056230591553998318581402545183317983000510166417278561260934836102139377200029505760099731596692900285602670302957527468845326059422052386920436423428341019700957709655864894578789431171037809935584053122830735382790283588400209473023177145311368544337479738943343485997886476315727911453388442753135954596264952390267466256415937400921940585609107833412365767569596443872450963561232243287637214760347833494887186608769122835606096012294569914495623548738393009306917591957586578791480797139176650089406771448329133238416901161073882558472846485058197418313303686213984456666683877393107063830551402397450641911033275659591363146993655095701021284532118797607736938075065615902477434117558340079789401833062653216661680990706482671855322659230766717674652632376954371468246677514055349054780306804191546805237585751176896212296195499347705019359919363951075780168442370682066884379166001944456807080304669999602230006944987764184511736720130422880991780477268890726462846244069866440468729792949359330352303428624027288843788161014842248053599091239308869384410494680738421121381420245050630163930338297214265565237024343685197766273362765016665310609400580296377452712787284899490212271036833864637447881177619138321128878948000139740618581150044761761838401115389529808264027674509124179456611114468767729685893011337077039414294580913456863237653328439040193904325552418297117870535297882016318595899820703449960069148940935701100650824487248251756027260217980516291845121204543983150534344280824890309294575957213639294411734930513677826802456867454219678664411124837421711369562243316916933417266099367114299377483411566691966554597471945881857965748954466608988704317559726978322711890322054681142764084671774994938741244523525718738964671738235182199345529432698132657670179689732727899280171258354309580402379727180432059632684826755518714170044135371121615410727382458045542778495273671479197120109833387137688602681443690623868510181285372421035411067603495599171649546099817032664408205414194311153568386599940902573267386008430489028914915869244661464122801066159112559824250793858056133326638698760967646705213313076218390937275540773043756655858330859308428215973865315773031117136916602233253694385537755390348126409116478351505014302649222867451124380525254354034125909619401716838206328638306308897544913968586507833785994405102054496870997645680441936707255949685049499153306734785647265237138642061714352590366674243632019285295029227350701604630639866439492655186862143040613834357865975903502607691738070003854238544261555890714778611469040917491021197935523170774729480671824085882401033746294265670843000074211408987522642090440452795477609389681359391203630365671515912603695750174145641687480477075995096111299620760581350375423736644349790516143317937477792297745538914968152169616312906975006526840539871917535603113065197959769496546476724657378786084006767331636663122086229675384444994181194231267505388077525773267797771284524394065657388938326575715057360167279465835511176635479385749921117913716004666763193919541127411454735538395771244721183228870606530025160521641162308635226625817457363218174295554352456494675819503921636467722658142853196303338973925871600417583521566384397578050700499303581769038912822373395492682881437723487578421015576340503823421651959326256616181251008749147682914876077371760051025921066417139479305643286172108024794053647130339898723319637256552474738065814556742286457413278018094308318431028367004751968352662513488706811796296484197138823364997175746129035462210919374871827961110280230248984693607401504694604306846152036684270716931487629453252171773548926405297702417783027972457341563342494245901849570538607059419850603543966581432204661869803874825038690745660555331864556214689770423491503637775349839253411632771671036045285838221472658962570281382671168143567546185739835222996071733122617212902549572491368890609944588230116170436633586063348819103713052057673888671552101888428218742999443891136661898138158376868541800669069838438920897302172897453463750104246632051786469603186878405289164784607934163941363296138116372899400413844957840262829712329939917880789603163931743866555758759918690288572240587580777927315467592078925184955376101915165522022988939824916173502879709803486845425121634231892289577938961584223070148729256145551345546372293538551394618011518854256611151277778174761281032141259707511352246070603090213600567341298006883737780991479891418487354848604282654094162846481856535796834021977487667752780289723837544360139445006460735692883688464535153441436775109392765182147459647956837707566107058856383716524264782253544306830266982112164103975679406530161033669251887953097593219612057926725341685861288231109109757997614248920729700801436329435219753622204513470555077570159029917528264487128034721032480377402184448541001030971550633743646736505100043520326570741959378116839462013056861333908222055133396219690321737408960297251656741386799856945448119958946844482951257735905234500843224621099715915152210416857137829891347954439053892055820732339930661970360160522778983006496218873818497467900426467351102927191351801221986615116359522745829949088937687549426510743724706298411677283759085261450603543656900014268731185020498317240455512182967131552093637423063387506158482182520192321624042666205793437568429095144052484088512578518465148928832041874218486342482906167950810260413850483607363909314837521585814934670691424331539085461249148806234682588888023303950777049189208155221329790831170942023187480715946222243438051979046643672569758194189950678605500709896557835605536335551997410012301508830435295035295120852370424778064329777901304779301865931040108108607449243378199482622814042366278540317398336524992852111524804252423330647477618516539618963064192700842611923828789906125574088585501032891542979338648198707460382903815696711031465321604628766426478138555535402160854947655997573552823928445664883932751978724962359697526518689208857406327098979309111216304257041252860706762135543243163246400545396933888182680497209460109588637174833407373052598387310162802830882976756305050034206553674673365748587648917027047865736613549184411259060586020979602997692303808262823624775165099555572333993924360898201713860261818824341887846053960889453790958309037438177633790114083899417556408690269431186749552080032651927936164420834148714191655739423121749220566293000837159557229759390105042259229233709300997181489204057543205231845539361194412488894338189774202699554554873786704295177036069779699160900893526178595000474660004773105926404580068413611508881881587682683386277251527107211575763115986973106416262627242874538773863181022909711960829867039833467655756627839902809095991502644118025160516426265805429595844602239158135479651964323940680951215980752244796987521840902902681121279407911187825306759680681856947276751647009200924097765309335251261623556005648394310807540838298817463395350644759020194836782191846284077131782075417647063785315222201741534105186636905605330465624662266151306970385419628245120804866982402464824500573812303974260200669124629532138830211652596043209354987313792833249030387653109364754207132552184632017757887987119130004277944902856906830058564946458793825870076828326749033961714189328792937249312053500651966026678692349124677630337483342619029395663365969646483975828628025172599829000645816136716067100647515328928778260650507798859235210934542875597732971449904481827916328449011050057416911581565034207871988679876361855211868299279178680368566409466068335663302166343411786893084697984638414050345538452645357956364921931598507805787815908902659072006024625179780082239578006282918090970768408055652550311611932929936781859150642432427069131341108975823755722471865986821856879770916899966502086472272177098872395192996150815464130642554569792897719839434716122970090609653338896304744571946639422452594490206856592128508864656610219282881841916328415293242641990188654408016572347771617920202654378418216578021332066014685053686651078692280094797710160286562013134894684947635882584762814511887492020605128374073248603337605884161986236366135500169785641774805887381582305163886784998579172563179024212165166174750808816814721227876183770342881023303699167927622224170030858996727754625168222812443959107395328660483302989366647402148528167909039966652665212104433530829998750980530669348617170039236424446888209728104026262685617627930932801683508333411862958962895267712440651826255360292937799572657913018884715104197746446371619712825931170221699392516237902807257829409857953055854886931671520280124321204127073802695387635655299092079812803224693429294690738893183593094453905072484867773485191265253552535926229236866969342648116822561146288960117124305002318437098463405755438288683484797628062757181740221154612425807768817064241885782690075457421933085912032711966392095470514500542663530688446913367232369997845054763342288909005127183063228810091923010528307668948854480703716849857811170775576499797597302071832822454662411955520162569314685999467949129907594685655125024879956726828375743501026951500668461474147465042456626524662128224924607376458241591291049602225986147135635361677208443885991609282629898172575686927164832634202893004520689775260109627709139896989399421752562031879164292131469165068187767223825749402474580278509293556568007855794850562770274612763069027002926172025791750326677615898974157554167544478648744828881391155463253873421554900248368494797798724703289418341039849192081524228228681242485194908986873423845651077696897139277184075138756726516244614727274885461268457343928030881273529559057911694379975404456684881360404887280320441040082689292521994808209443515500898652401580125676771584321498337917539946394589068491256868303119016378989173799103332626229166569444936308679191845213584472036608494358459674367509310627892172333588015067618662036112800346967939088660525090694434859897967296043861733952040980444083233256750619708552575226506964326708756078924946080113222724702271626527819182978192828078085041064807763814622241311167566783594269613683721855004209369856676465090774936461866286714412006983202716874161398603171980976689158016317305261984693283170796779861563863482213806309506564512446824584942963651241028172727734442992326213080152095836211389305676989956479385710993290051041753668104209679308521147813279297287964519502665342702012671589577580696730612372411881263984597715998119106220731033157028000980160046202737666204472189309725848135055928854839755562861416334677981877840501058311521780034922847401308876011887213425741172020090037910494982855569142127023840545942910663892060169055854740813740883663896993448673996258300806654641506649632732563438240154898805767367080714327888659858233629815055602900454642579334340361429528104584580240082960213717486853962795494101967613096171024295715872919771555411439583387447133184390326176910129692170710790966059848323748989789885030090262842640585660724231556667275174367147848412235294523823825724491311911082993645833478438811353598736670253096182812659940227266528370381827300510249944212132501146530832660971327436556896321244309487313864567569999565514156858853672437899413122579426904005090934668628535498549294484671929199270944575603581931803607346033245446042250482224584589262497515389265002667941939291902117375348883982596308259917408855386372211112798801664038441706421115976355089515698891062697825623858817435180923516441466805797819137628104732491634419670120256306091747809221806380997692388220666668141757105949460749997766270453279042087399470663536753122574898361516963798791185780819426573269836094383541592457886182881153297956762908336919559577856885544282035340672268629438127559863745706678521860891805492898792198637473571094633990880811942679267718391457296045447200764900060590976870544258081138577428998165858596670098331283519370610643220576632780417572435286162643698751324624203075836993052308241289561413907583751536737459265782829005571199925047415737792752962786534360080017541678802198160674384189003769899659191496303794477101734434167625430994188386241273759890958803338522015656722597629382364017076346548697211947579772872228336084788731858231497777338430042015433912768760221753896020373796400692942342831523985403068301256631940354497809497725613926706172699693852212940905659117581515250407234639347137168517116145183605070487609865066528172355908978359112005280662287191891359549452504454874929467111742859007270481420417551689869647983557263380456421328828896590821022506392960299749898919500514907375709453305071135825561235769648950477785307069561159819208528120760746773651925470246706703678263131931541940140510385134144335105883878156866912803334773123853305279216150196608109644340123915436194631513295143063826648250554986946644055327581806043065900169243771261655349908196326911141186433630869487527278837993644500297311310293051168979683801664231675655293397834523634543003257528064117409428057496901048979659033207493898318415821646504002963605467244745401182312095603161971991566922784548679754930971642387751934600577912357179186127689397574067795273818102098924373255406114451327061203311059416776194520306423337295507433086914816742273310461736088455753698752697677644865112016312366744932355283751737686073235998692543573045796094675443872661777822623929740747945466594055624872703363074673083952513081679409518091828836111265838908870633672919069216094570231883498582658865124216050338782347054357110170535317974411028522344591783820585202137924361275519747144389897734060510960399070552738220364952948908689245246870652886439937458459089936914245776480056505880103884803960091462935150015044435018253109564786560429777420429362410541907793484998756169393671949247807407085945841057116368778287251144792535648214348467890929757504715098141487966907299666520347662506858389736384876523052915665565822084686150372886340609044827922205503226869791626617075572360256461151554087100111787674492907126137218988099771959829016882010880824019103910354260140500900604940625136037257312456632328309868327076525395321376771054024613372063328960135855947522022479358516356675373982916050039335246801603075566226191948887492365213823487759620895843381216205604131940667768278197656679602697300546315401705291994306982018370736696632831309946516685115127014827083979358856350485559229911109401911635710456940690503702088817848661364462811086218430071332764278109807953707448057768055305100318221775564855739347667781106490420744930228649340635504295644227032163680597550884787348262907499658971226065118331113346604010130782477936418466456924586880728627360279663159369164207243912798475725055606908713352784515288103837649250797005734484289122930308828531919994964810149870619967887586412147453370867580875552448338521760678536584420305825775460142309455273498430311997846517567576898433801843973997814598781593956487021069872087446003675581967213417866661631770175789758835643774909898717406056958504702569384930570615436793857937091088571101082683651317408404838814393523198665205508149900819322206789384616093789300444228674719603151898173711844553937742556170142121986223599915798987695307394338792040739660832921101317225793696103452580174394813621993658924257300587220630698031028518938672200761124251430769417888652428017318165700311850285362314430068051603808816211833528404817229275485161619754903482456765801429460362441778238687788125966067320935045450670857750139998305746450078839561829687575530536202010994444467718557459764517750738922169398220950335929682925321539267966448866779262900370560876757404047523844756244828385580238576611804600574929587804292542988012597180150389343322856258586876658912137264878228481680644153511573326600584097760661878843509088832384109564759788315210784269214108232955017717843577531428001422856289748287570997567141220670380008965498688792580265178552534113360517327614597280769299867246543564269800324016445967108125327054515273631758578390751459620193666007143002950960872948236908799024516008862781343111795951720316988270475752518450165468336194665920209685290820467413218174851945042266545749425617436503893675956250993939171467459904445674770882312652058473344912699388174803296947180881769852677022472704851889693563856832675552277013551281898393977266317483481631585470936040124678741410264652606695091802254100338387266564541236371323580701078868612898901288592955885689671504012543252117581971953165105270324767460224083583609596069255350935437000046074023025445193189574781802854047316396105975999572856177896540031462235349424880986115735547411179432745666483533033216726690349822690749927318161939291261391729944270881070297286278395154835720383365937011918014012240307681942428594623308308583632498976585026284283426632218343880447545144715733438016423304899501967647439122434441486140213517514110992206898669328454017984825074785923131718026374950425391900852507790508369667610114968173598783128097572034243781182703383581965877442070243134176521274439422744233460546954658845426465668543631765644809929548387939910750864419541427468545199591922083588846245952877230470944729634638648381931202333915437814427649280041937835837430534746487087599401078957553406171479067753537108656620425622105936489298547343908507421534694039162102611416878454472806358829798815551844526518670701019178972436987925039551135330697509934805321738795662890322734555866527071370483775272233986076564392433477286323155887610068846690969685517601762114810629461359965080487785584264328097163253077350764816978945390456026370196672539033923272917487888940572489016560906261142604233778155333637949073676375207914610517656712691264322581928959766300708111898623729737087435397955460863537089813446397755332000955998641746120388894917097610558976814773518767103827965904474578930243185170782220126919166670378002029185107647748686998339533590097320037931684593026149915985028556381380527746225804053629392705173712027094627514921769461689205779749370371656701253785586355036190888792648685135035584080780203920146940032884769672257817908161685974802110982036521503981442532181530521776318470935964920955130591986523988055795515136776428057411339166110649688214496084814877948872902574102483491846605248632731751976071156971167250459950181761768538493142762312666941345101617389314553705715337285916566427454109249791193602803301658155192403801726322497216338451090149832644349364758605884759348255101680723727928470374317347516297437976207219176256115634338083805399296982435594597552913585461359851032991960081825883944479437241437789559295958374549794020828194300887454966315574806177200479723075309221444374759450348663100184189194396418633999532193113780310452922912584683602592447769890397515690278868176781172954380219549647778114366853688807426041229891609076220038172158312967919680502785024760086394500591335358477018234955066911484162075546333667342471368892003642974049856740887347460630309082730741371075789189181850778167700942390576418056168681976628516970928701109941674926094464201026959155126148924137127664700554394795276349596870045216391488435913943179168590508114814950530034534439922605639303537708731886212432418040162321942887352478969329524287357330137211261328993903581414395066123726515520322357694952139371552697810830788474288610900940985501780771642034972552995573417751634158814304694738823383387562111192979821935817913900422754760369927251284994308125543061205158459835831484325199925432774352209922211834714145816742041824190454695285433891807164856216947156621540859548544617852798376271777716344012162503470543761876676859913369355409307318055134409256981740139415292984452567170062182526306897754643601531808041459984069051695609973846714955872011430570487264157716729436099994651193508893950147939835815643323376971178480739245204347265899997865959911846658527518855147160241926152029058767895766180101353357816531300149972551333183484992083369266172442426580547498050136908587636650632343637966588961850438739002369210520919322867406988079422108910239365920794560238899793201815852155962473004709218123731392966098645055882599197854263438066319901447756785092434821141167927505124114889062104812302407467509595662186828588494662269610174435575487434776478094534248645168923264917644414727021074487441848265028315562422960859816926809601345968981091364734127071779647147264283350595313329922817763579214183577880389678116173117238945908167205238444815478609984622566071476751069278904015834738274908188754373414287436998603414962028739540875383197949518435855985950312243442506028577552007213061299856722027318906463361467415970543871402149066954660581883158840901292861462180288794211389981569856705529880871452291285561947012919608854885053962603261284206608536319607139435489603134389544100922681094631628862409964208134560742378033543479482564314952905325084084642767063441643176322336036335192826740619620825742050654826064162924127767265971161487978431072462030088456187441450047561801929173809579705233504559885614253467225775247263722392714188862871674320821850459221843490916395556732311609460487947306398947121694052520080998636549983368830787124316390203085076080278492105551300180484024705360712371481519832968992049771653849607980533800335517085620571096025818686192986045122313501857472708056963107651241889497638893930281604103142963609034047800082749231458878363212720972013394484870281278229063113682164883591725244915771296400865917926692985010417139814314925476423747191833220054868059538309104576197823675408542090759851527596480396295685949328914229857285574320741831874194029835877236691782999049601167360442873767069864803076615611288581436464463035409772537467408856809643303503128617672498454120237171584201952545799508524358262009599100748950819069180879701203232631370634539081191829657370443427063928319154341369863317685272713248397898476787305963895950444922738459319066990136391018978740440805772198877618353347483530499450730220206112473618065654874139343328695525014635061844848938965253821153359573630786143514435195533959913744628312733872780127910001446521639110626024883971974733668978880280054202373521380101474011002077206948615254880500693936828256122434175978549242656490292972274175074083154175180188661242602388933724210874695441309427281620629761126705005184384338737504578532083775179701503876706614477411841244466075743857238982940000333569651734493113924910072367428197812757969161833706678876235367855685984817163280570986260850893063008779272015295841754777462635253100275629685034740926925626349863264016857308923811960805396971785702108551420917827594566035514096583629925355792285902861939737652556094101391227977389657862414095203112194268483997820041111803233998027492115039503588766492702128001028578640585424976828830511317428768965692215190617802538820123175560667638473967132673615275242883146311638254709839746636600489012132682128755320046093283681173915323281370234445558725614779676734086386405781430231719123567069201329502331908449221786237217075391002044196973252365930568800835403054276441907639083001074460142319964174253142439709659616295666521966712058032719617856587301348336610113822780337880338617476279052783509231763343260938492666949533501607529408189757068984995398201346800175755571037076086456186015572956612346524288294834221566108647910907129043809202350109432210822605330343978465007447856755654182408493712826068258784714631871973188108615794279572820736403072500325852171336054530968374935535631693531069149143869087971767864473708852555992072231595802455584919720861873749271975240133757329289949938611698597229479741575481920314302193974059342282724417387603236655924635493713081635513468541391988339848132633679142559775504611994949221121731063393445146827470935448347783288482714468148934893671413644421967011234215774487327959045507278422598320967421175469589033998857850118027710685893432086404561400638451751598993192628082016822398691556861076445982159009354472182629126975571443628255302540980715356537489927841173836288675607369661700975199750858015546752750452023149348850416357226394247914458699850683778252810552814083495839728459737839276882479664042504554486961402571204140220217081740738427215349723658310933626767630272143786849077564686743852566465895825582617074690678173808728725766660740772289788127588674317361712511725478219206510714524244225058892488540899188416048950328805166681582906090655458596075436403396783846746981225015202713471494775417019332911158371215688893294611822304542451538477249571516723488497958091882066193785636756753739262063556391871187334237583737813835986630834549469409502465846104168100453191016426043681401591547913183200059526475755983835473105069386333353120359057268510070734900551702866808541790470444901293903246589355007086483548241463010644290030376189946546523197104391782229638900208358296177322912522247316185448151562920116373862825322270233929724599056617780469080873898538336306335176052202273526569049935702007965179487282288609440472519314607865901275148654971313296535474135015319186144557167063921421649562089438897398683972090847874082360104145836672614722147010984532739295148216002324181557537546327652960946466717270225388568924685703284540830985819877087733912024940702080230866745795123240655597246918888539045976779290263087064404446301886381494899777045401535977103707655505727387438852529831821271222461834523735732781169365900608861205758630502705904515110062829049814372795682795852075743872598081865024540024028456883854692466164812775055650527506773237662344501244201540138902487690954592765302780795310947486535915169347586645461264036494239033761578150995084552419861606515096025998287161729586410905482936491206650676405860520708295643410121537657777096232625340516877592777479871374023594353059182551983582335722449616031149781911741893662073013662456265014170808145981224354474223214199620572245160147474839101933738125809797823855923170434816003541120808962800021021729869542131662431392650897439125091748918143791587789609012806596188445492274247110990261024989186017958633340089060023004595308421106336292189172688718531285368251020309801289805796401540709405114746550762779049925605210998984362697589083217529932820345221140910386734030655106797437315568924140036066509973884890172694451715980341061044017134920961573930982143663718185862499037481223791350844231891411955102414090471968379062628356994634212407753259426976358277254555443391456432171444005208783178496857239912611801895001966633765046493322322495978622547758037393549334761856620725137684857660964572286890829641516233863224802286904797108916277131160892730802288037370455385190865303513598692760706803481061131045262131069331216752524812643576139718153515498753291402647689612777250126213191277879860960466431335280227978925801288356484622512778825210761791936447165536208691064844837111212940240293426947252219828357407315681294451417627302780232470644310265920617835010632314241529151097939919786782759813941052536667985667500547082610346542732108776287926898334835389681428096606187050173676744398912132395410972547944402559572491301194521295404445308327439564613066214746305720387411104723795474585086500836052680668650352859341333242123246737570537708004081407666848878370661181223867035245391873967247885498362093082652845413072183655483804560986974751272930364923312553119837120436572394218891700770081762387054280192598234519595053340904313459390875918766699907595668976421621221008122628827404860016858988060876854908383408187010459016994723070690067294244767912185956532800284242068119486030114212242834636268213071157430924722846661661573977264869991314179631700773667906055526131855240140586337042732716912011499625860621334009710071939813617160026512820262551280036041102234008552504038425238465873968285346753265647554586934294281163168579420409262321432569411083550131512105650163642318775881937712407541501130275848056863638039468130345983471840277692794282303317755000783331413458381114799685597968952899404512876377118395533346310012978228652819428345001291892623412533090246424358565068208361805903563501255172295958041059414875305127151518031836986513077337218691525113198332027303906152996732209214611042140328711868814677012925498955187115908555857425171857861150568911399653059599819814185139644159324881850018272982266219151325554445038322137170764549473289679399449630629773699229044492661180737815031177853443166635312757185592285145928997916436805141736992391720546975988061992107121944120179837734044927240095115043080421799680787518258089448712721229296197927208842295058117408702514461121532833850130336814434128020965216268529939112670003688426050391286113630950370281918819654812898055778325904036756631659618782380154346998480828097587219298710196269367409002299254868699361672173309684800000025096152613588304860106476260366009606570764854266117308680809861660230814261385618210998219496776927778216734335321113374692050387462712285502656701723631514964463118154517924165626290441769186587131653453076936048777847913449583199219887437910695159078214969853570677320599981068001375025350335101001365576993456720706946797440889226705275896955151936876201212314359888581476658408374369243757115507453187916506133979950981795058675614128870564226347177851510419190262146627790744285927868421954083409349944991239141155866417031599207198059001956452325023888880768512652254625569300989267386644061372921733883852559191155367484550978727044740491859869244910025674087100231092805991970868007556410442843479980749323731763274665793580562069652939726130840502558164506951472465093913114643792518500524630334430474204351364204518897632522721053849761426573346291768476282894938981104847576114420686701643254042262661390161502150607378407717552724167729856094561408343914266947053335202897122756947674536471294430211362996723850870692147380000263077916637071185752517028361251482135407889008816287790351225093154285512563942340064477851227207692121410661347395287077873398181361923400495685662313379882366958052971748066451423552411594114353190413457656190451560964436930831951051748719811468646089573011917574694613385299019666679430590816929295481421323129888021456182981623375555829783873826101970895730594189695017166881904717301068631503634245039820633884312247382423744738547362557181040087762489250924462253175618513982474592578776992260682238967613028220265202962032534160524952556669363602888032839701087512668414588547910719991965829547411073273026658923713050257431694114881134356909595632510329115898185877081206509181403495257534766739042311970357564988347933296814724761281991963043213283704286964955982600042182252064292399667908048674086954207185800255687434633015986228298804223750639494408158732037801234975399703203503687674811399088810130848075037394477209570392580289110323755310815194804100044160717293990874801770096384347857370487471261304607997476633064899759141084596785297463379668871567275297801145405903443970441550092366000969501071249149953944391184268934863909463693585013499251176292756717853383474390425619640830584067790525795647772629778209581645939113218480008156130577308809270701830875375058134420066232626174005157489469347107519674566655537998948452042176325617074343166514682725150129039673540583050431077461302010258658418052899632086412562779238761925452045505246276553930294146533677847470562009205040117877294876983978512029458564500849580089674931171552732070544993158164304840632742338782212936017931692282183149670144877727812327733493494582062972773814804528214145177034723346496334604190962385235975860532403425331157638441392486365154090587365709443127032600174374108428143150761266684084232707510764769219166204561514353846637768096569256134710957230982758702163073106438079356973844401363662963819204995092213887826065715375903209178318309414848137099552650071307364149204383382180133319611933748433991587266297131288963949645570342904474180096879494045586741355801946936944579038747694625426283416129808917978678781860017797404517929908618468716868567374057039644694449786170989878671355383916950188073847592403595893567473294346117706874750036945580104314285746322808719358971510987226629881255132030764787337782087619111669746323194104475613562887000798058401990085393026799045920395406129088117257564298007763012953985233136772109923983209903617205139627773242256157599853230661690329586646927130292254827742246101307090863966514203992958120213397010755434033454577418621981205226518329197085579039010623186924892056547770719726516041041956107426876562192728043889395187896536430696551002970749384924843380721493140442807504932157112068779804270812747106641779244206856657773582141492767874124224470273176041910851318502026127368065216861592050713776564541012154801149370227360680967856526521406515278792614704952208428086564907859166149285524835012973220900080399906744501023400383051716949051307671209682732016423422719051372000653780476177742910626538903119696390073072861539962452718206841962602644507437253340123699114373644418420701073623729048411140443495759576081851655541312017775140417701191730398714459195197437819496154679470229059615746855329215665119894845017584238852173293346551842194949041742349092191288051702901308694997732744396765432488736808045561880781416799085117483646790529912308554010249802137064865316936566406237875332004168683641040620667747153811988229696688415511302099682177262676525906471481553947751707418769341223828827370485173015321003423509304723239247528000308188571067813216653797922747902013125254299234971684684156953546418473829894279877342071911892546133336787764749563601748240786039194923816346865272770183193709559945531010119719726040851948186989562499531330173440951247575975613421789603624912688557863983898412132534179990079800895094377070080782935344979130046040921436535146000465299225810329311311759842518880691144314380416124229598518183035444721400940270816228859111084606918548602468625715612068275477237237458322302642109600928100933026863249493460468091488565948239706540835611121122903710694697628228741079833607260125832044136113507452585513683045953519746159079329664785608720408130748863577028986190114166650397584812278891214989929351713048215870757622517778827744314395365659667391824620026071424196247294842384047284022984675934207040110042613317930337585070671954774902528085419257020017344737380453800455434112563382829868463876039349926214296119633407628716321202938008922699660844764019963967150517738689540134565299675393336107829412304602369536471711009270190777813614293791856462204237005005521494777663419739338133193201836480302630000254466945645909278032182119441416499400411488141153321664492964524057904234382424718466589015264305188383801393440713549030597412846697964541698189568498716907442832885358757497271536911920651022348535037487973149186864197311513425045260395864334730177504295866448524563357549945671183990897158174148744089796042813695739077645825002102976634297889266185166924723002292395993424823582425452627210375057025789045608382649629470189076719902649732809652547457406461442827396005883648069262626233181979149268353564325556389104600408024011152791033144578958656730837387295631208047740503029013434765843761050623676228645119059722804919976825328357323949501567184746397759778368384477334588071386822072473726677200510181452266344035450015721703763186768423011193043015908068029858990842228841563252467535523999663287301001856421340439543134300808780662202372015698999642731241632352413363326450780658932657096269275321264797935086265743858931196074192547263877218905605085507586798414477301687160445252867907746379758972870398770453698211795079378786163247230140007784763259244551337497432636774234812835681410665579250942469638481828032880952623294617034816141188326839090238243701897879101911306936817512400266853666652366342706087156794337398238680560183910138534082877161665857085964043491618335866076856273248326687648414227553056699832035888223820751105723005289682723488599988991409632683979796106611398175832803860542112155935722563594313803761113293341774094273063537291292767644197713013809661416615406699186318629031487320385139871119860781265859367187862385953983680761270228271744708545567065571074789213302590246210943752004510400030010514022372265462597714653827804088755103758188096213413700203950542148015861788103219564007017777299093597290329837052259174281016591267238427813134757227764988058733899710893006263200003360432915830526943303897893249313197186921527170530165065127693513429880073493263722265067634161131754206845749684501276109261601237397074592639304262532072255860404818647934864306439903929584369183255906439164089950683524254032577699958344182878305794364940756665698066913254549199365115295309282983348932622337251755510409355897251231664003645715078315996200914192693361591438543658765189425653818950858413802935921300972842980887558519658223519318282554088505641660198190437181102180848628979399207736654938963236779166779705710513883247904575017650503166159394905706235972996099885373056368610220396018080969152353661695107834155228496987054657574513112646789133317360703142814375625990300233890954734689302687710628916624035374212901793066485575088628995861345141440543431981685046884856410425741357296729659396870194665162134819221545006851495833211814903642431877001519340554646654138989320454938037150154214208366779229600487081246073565371147556025218980522928934760255980982366243074722809919753596166736457310113866671513096624287871917359823275459504079994722723681074163676919912629365975981955206975113715466952957190525444479374342304437029921705548094246063181770477789384327753228630613685011527861333589897402227779055412431784567891052521367344557535820048078182397599978384704540489517874708660135048207278977361760140609011432585757507313205396779953810729174093731696729527528739182056042989185600960158986137175771030723224088443757767774851192793499040397737228216958453334703237018768241216505510911039767657704811534362346205938783757523075599873933161536690340073835708136527233312832761238983202105701197591487400119583297479515049130387140881913377380009048199211167275515031887556415575286893309279781429598802481477421177283206338234155816180754863080751607870204214350762085739911995245853103292702431270453101778821096405497916552242333460595693764132819600443577057105044976342999954706367266783357869625869548263050775879039756822313077421598285355088007543100510699011631965030568518164283563178472279717172289399145647519404998154031618817025130469343969214162296299889097975736331818294514212875172738479618921286255883688963189601215746756111622815329687505485978768003215391885383207862094123385578186411705572696999240248974577637593264647062499389239549527798163130402125374067318177794191819519381309748685966847720993228628171200029928650168191590532768295409900545838311156663686003002255329884583809438598102452528380082997634726916160153720826245580950694707245918336153859500826024573486958827227679442099377535726558126774896717956181589287859176590844359947169923062678668248842189640809639689106258250665526429134058165120908208765835101592304015782648123484855850319260625351192924500843529789783129820840747604974709230553905289317263390461078185388220790231649385743049318330164297816608752783386187803068085817590458305108947324279221956808254983560277254575820667969839162852618791491022479624515871628431893108903593134265061898073771772407194098175686976581328028760283682682396067999514375872250925580210295392885047971040395280874926344271149346020049414112278381030465435846953796178939299917514277224499121431374542248785911623211661174052012053521175497043683147598425274334161670796560529836724639792013713415276707474601131934679161016536986591399855577485707144553459143284900778008828292214269514379760013399847864366537444481363752336382375407022748676786278422037180659854356710566928624550532632360618372021955476928796194528773642100412866826219968088469319951011329298644911932956226119201888555651883392203845852861567797885495209864868657451430318103569306164481630719846387338616992226403860273519671752441336791041049531875684650489364260225859531365009340876490861560512973934906883032946568929312812026089267687164307413445432765703387361178444898740764688579516615536500385827625512508841591272938964812763802926448176430289900897781719211991377287493758854760919860481833789826489529594169197823506183510862125707379956745058832187960365219372579068990349782540035345560519343762237446138315249386611646744617547721236459826209480228139899396406284308856835860097185002506942696652045325642571418582100550541221455987070848462700929954803459707832750008985112091465306748421423298676139878529532667231775105835719610729450196564143645690554128654844803472397059150180764763411636088486273760421261194898361545712760737759695282819811785115224689101547096387262592822828175399295192805069564130733771842399671761522205982679926139149463741660558067878771034628917511744918217271812427731164388922326333226238713811905776089989816690339155044035542956873693879966665937011335197065710942859308446542876035564575458357137437614179607463565594692911839678716414593092957469050116191972263817999004198081608157962269997629654972005611425215351889167127975473059349627977404713725854280515705979802875498386225994607230629260851378579453213951353962162838123994716964745367798731077930090511943927337822908775024817788889284218191766985992629450723786552012408925654994269971260661977342639248814360243778507505124673143984645529992388182674262224399440809058836140854393032435753195841906649174822203634108435815725615714107717847455457760322694426339926615248563164642151318922957313929141111921353032009374627930620581774582956721899584294880274989415004628041904016023378854506339547688657365845776477553037961959541462390194126028757167821970066124015301122103310522450345881410792713951319003854179867872830602384971428266630641487330650636585173182329415388380415548536369451472878695839801360468813484574191927697763807993390374002338327818995221662655847277851331410276605705481856051270350775235148617936083737662068271128075987341166248660356708048183055564949934249218372382191749948894522727389117236811210161268166048739623719549546367789552072886559216580129563689297217696927054610265312078739330853149587578816854975743756446550321704195609468448312274980970542640532416552911948206609764947026308543154835860349076873246910762263628767663235857149590825789293361291764735157656315543633611483109220970064715329586005249406629423289336915166186733352623960571765091567616802430538167786310553092460486392094677304850629530180847342536294664246839320245076122602920714817162601637354800636895783662319746021892745048929233669725611188656877050913056032892595351800875484506841148611562084210227479668670173325375871556914016260852221547731318182063438940915215937960079505253025797325875312929671029041161142847050795991336158751188691098528454077414958568353398203229115045423746782923324544326966145004933264567470482728875246724132412234908537710664436704700206742518778420028727833554870828999428610258792416441586341329551785869981190517911506130878721724666450879989669226064413912303190982518466471155833388026336951543927685845718008094128182275331143901401905383194777823927580830691433605281415986642798060601748098452981108639472241591856316739590551500864597870628977479334806480727701848212148733004641044579849278274141835706506636684613426775974198707682400695481867688186777963243201054561021136844872297739869843364128741915210674830969788037394493931666210279606099818248392899857705929196393118941599435942090427685144295322068747547664344748670093984918248307200951252204472563589279279875350537641432096456193906474837512808422424659765990974151151628458189234419460470815048315790529607311773764635141195416037400593496889857012976094841426589273139267856241934901945706173135641081860216047604328222918936547917409968597195770400322566587362337686433682310927240159655731458299419587957857482425450563481771952833341528493923364821776015533398467559544779250824185630614418837232581085809641438949496141823482909984173185471707863290397473256134776804634733948233037936241436812948093681717199188564076498364973622236333576178796810540320448380430944351688149651431035553936597907610214165779163431218378014254030594374252756918382636363363863360224268807787863169981185817860187270693383384065192081455277004449915119118964224557843729196884215398727416466060226376171625203072099694607241848180876549007467780434071434049190509220329210832877179512177799820588368652789440082921983409938747923349689852412783642892998188166230397216356282506640109624962201487541442782348651856293012703564501878736624767760022095970226789084073942473109378264218910973314394092027309240767306318634361670388594066643912153818045873732091508776268593342074509439928063287164013142509691161808864495056451698542241355211987893908618804129689358404447532331232590783941952253607864157988193383128291191091154744963891543170952126488652217702345655016696808192224225813943987190020004308257355708968126888881650690371470542862673934593260676183895672960384290450388727246268032777259381205820194791299743311998238914845957401301297409428639829509758821525359662185786540322154003971109647685205083560835899351934529474689562100227912859676440658640944997205189414614490230314811543780643950689301853655441432834862097688621297676676286145214865114228403726887257218433568449009958879620098580847895563326196407431301357809148232744367899609184373972992378699049467863862586301244781146880148920597606455416121183645345708857514447615876793694607407001052924743608957386270394592469100162334582635742493571258224358170823743246854986280345834728028272429757396679309538539765298029540448368627995913959157713252919012152303456337805830625614700343628270559282580219470500062997049139817767415892829706788355604769653147424796592731098005781114595574801548276360009134043110839542179525955395682228041164378902495486692511962445096352761097793467263987221590674179264994788439629344954605506734126972837150525050928851376683318098143168895542543309377177339968885641294575626880841427008451311943216988245069679353016975324077442327525236751829932994792044410348847902590597903670333890437548826144481434280843711008329186721448298090097699773766956729607925621106071646623492283132759781493054006936291437962601865927465312629492176681408783039189555298266237373716469719081010991271196876723649130384116394175625257677806733740207579780076198567246508618495053053344852985677591711152290659256447631414148938365764359809408718036136234819437140954471659713183566052045047286845976493919980437939423723421050479319041259683797481213253534204792463371472827176389933007612252628720121006412950057569662556479247937837531590070021670063903953984808721246062320152404021061519395474521295162943691727984749729709335230814242464050804845439638889664795218224134633057102947040632802251262959004145242981501361500790052802952668578201189633477139490424762197954623529697499520695702531180067670108957054573223074052610738693276154020722834407790794117938845351898500887332000705083507270273031954546012861632899908678395786927945053021471405854809039685167994166679027307587480245312463806921794023807470634944827296986154799742799424813062261185739670819742372104454851936821989171687527869572059980151047091198199662025709650404487402896170335075410905390592754859347253489935659828644235860244955951177637153979291365353362616484279982068603919974098506728580001560147380919015788205911499111765641380501555204865265995143210739200622380782226423474815010297779200692828248581147671713610842549570994718557910121544669696533810644142186988248783598790820846252422758657237038592955597892541471642758950472753817994195133824781642950816486167535988977695813895679127925523117998645563443761796730659843925157809563336403398942366649228826791379482839075533975646774523415561820239079922839271889400025605054646600358524692749833194210319162467859063222435131743633940225344774007019998873233412370675162411838421494884658186450724189195488612252542089256255317472233350633607534669232041821153453032703634020947305443678535188521332631118480834556750882727484740894276718637942554613280685479872527646313828597124248052798049404380377195297741099686312041519973494245360334711314577156635589593379914897719436346819798057920438252641975480188678465173458087915245028147980401361679190913391443668858622029072736167104286491736081041581413147598189657126133380246346391360922554673262703768144763723701699014889036287198346899052941539531842187123884419252389895518687397054107502412879163155261490647655772813641199800442565074218935168714068535732298324571700473911050876946532168955188657878786462682687734472622789428554105235908531063876067570650701377718818307769280750762026218460924958322636679450424328189939459956068439296511721485167587517204113780443496808684798574935787417784739445389738062766386471617572398761061168466735518102602172657336354463830115873222332320520307329288123435032274851983244969930315663650081084332833622010486213700885958710818731916166457385527104363114569457657235574330171778450184795515895766938859737165971662925422141072060725442730643712579357285717908734695793721346151855002300756281519730509591900981316717522753942876933605045268854750435162080380792090043025752104142308275712783908666599827957624687796113229909408679123390529670261465356589422366780522463856753778542191465280141441051034948547085673681243747741034938056330824768374965737050054482104562295579346876128149227773664734715905160697648859538209715242318852849304183366809872740518871645465825381972738282627381566787397480794364351852951249292440607099075151963967088150466613309001353074411280410235010101316625138936939082245196187432594250495540230654699399571246598189311818341343208343654426467253063013075059062577517966295117945529117123363272243686718689430570399223870495543119898175550857796602684134630619728786880875769666257236906619223064646551749412538443398061820306528665111596847861976824150655021508592081722746634883783504496352872470144356143075041082704265144124291010185136577710974665747989654133363146134966543564888199365962712774996405941024501007272035101187808696888206111229877953782981839794100050407387613536045302480612585118700910215549761170389437865932858498850167724370035718671035539509989780081614535690777410266278824142489515502631450351052074952659517331843635602331829512898998425772563422640158881498445887429752980674566670095959012424743701953092237414098781450327389799896318596309419341007359727960689780935222655394521265478264522314660466311341781491280873746445830171996783441501973845691416464732693854494998772203536479385041452747128230821370135395259158240464932389027525005917686728696628615439361189601858285709453222618299113445807133962131295648065234037355705501601571713620751956461808429229599520774768238139706040950246735916866943937376379418585200877867933186418862146740425442760280184699685685443979217622627596129770242828051983084506244228328433936077018287650714419118479935285551058285856000706834435218805828604938288404690081841243373414460012450604365696253493860197350569386427856852794302739880539067563200549831277596947824603593339627492080973664184447667342729505478069875424005402081162914515613110721887894074804251419170607228976839168323253654267104256052552213120441267645637338342327138385396678056021625731653531669483913257377194211872604334211276392695561030383264276682318958864794081190937939122644926229602634505139463233408411020755335632831334016979405388918266247319065693766993138039451647005345971551747814683560795415633145961749086401254124795294613514269192034545233879249236481943158898601942567194275243669534544928846846455913370388814173767624990430199894966145971212006009062643802506732880456862537742898593080559624753767205667684940988058773543440472844021131191855457231744536224099439759776468504453134296431065000128520355274506436863626937752770983195193527806574452698197661640926019534153709863700576782265096070172965205822915299981430255183997916812200963108446904585033483484940186804158251108915998024565112749236128037003283607198032764777550423478605309323634189757909880002637633872014462589857857033944593327574879244752752491312592143479317190516646253229384273187072811301480173256277061288551527015090527280405632563329490279396201154496066245425148421740267873781284839534076545825624561020832037714630885782884661516547504149990769743980228792926191211656954978078872149017562101389151878686059019168285835639015185805833442066529517069225116052813058280966753500212790040421356949618761929417218780223087061577010520490605102613521157470298994647789427913049635228924520141961654360994989992490617275580856057245207429813557164568695283275023738017549520170820925981566352290778179190575414436027289000063040399734844452412287013111276640342903727615493937858110640038971792796215710080415064658635050151680328317943014514085923190924662812916600187582191229958375936551965667422883576333163737534866703508430885118866791292437738324028607091601590251337977626973259002800544585015490628584091470428208912333951820828412231584235990739758164144055459126016987533798212693259817549097862523572979057383311734316726802408261850883038850986988163312140366940374723705126067185740860046384564589337954040020091541620640816427617107749666304946205433249208566606938445274304129077277420320432796801634728051262880508174735222250005144623329716560178471668990133333614872707556441619528382098570300638861927339043119813595658013805512415275399694822956318898150521269821097124742928600695980816986527349860821179164252164405980099721239184243322108614057901865410439279636229169898489105678776338326939727343435132360692572541028051830035121893345358724149635370551595207864777074024617252640647833733613432166790390820278841708306920665768633435442217051196485934980404567448468888414301624539756290551843559965628834771296908737047263768043756352937570544763893688768178841294481114440774424337648989130209977018844014277455922671016899102658001475307071242287835827484337976591889559920904969030197928818223759060790500254610219830370803907549830478031258206091765090482137624451590477388612535260615433041248923527652345904018316372140926493742787335343790664335126369915752872929006736282682441476643419976146102019077983321911771549471850128853725257685096213907123968771515999149338474336383612545276190276416855246596543505254035838921181852155344590945797821976300050035831255758771521380756894262312927760775656532407537195101180183430980653943916206518672396811040175279037136277997022419531000421064527846239591756603253629532149112223467278878078194322187065469050909351378340684571858333226994786317481425912467930160130966433369656464081420692796670835330293941511053417212649917339571809463697856961471301313773027922996350654962031964897458094309439983497694239235316631647354741231962049155381597655926453881104687037466758532136675186294700172138781415076934283815771536637219195148133189722415831188478275764423855418282920423534626923303676922675463873084587125912789313622857274103530230317491170130168598718016469654731143752064021847783552252003475201965030802398625014158747844946311939217176945985886243132604208349729565686204261619686730487718707007404582209891634711241148260321452314687346204506438113197277055918014072896063710294646084812582330504103373092542547579560726429746413675524097852955177906516830489309499856924496187816666805502134427511795835613938730948988740896400810893522770041198456859365210381619335628060420090166608052827355558818369573567162601138989851550393328347869515227193485175968417023780044117562270113245693703626942503719815906811034296720522118431079652326017561344625990791590403289314259652929821239098346099575052149302591510467973179624053703871919384358371157889361331769272205024017987939366686506851873651041615141387777217059248266173871318769763724523152273588290671610404318544490562682579855647597994950167341695660815636816859200210887880611806447395557702067160796313401872706890702417173294959012495826218540147703381328640272199325171247309124857597673983545593747571671756230506142592517703401412182421734593493805258406722034317848753483635537192425655928514433034100034574195013578249451145737931302810363131099438026048058865973098734259395699031153438372093509169425191495236569524092669834905940073330088816283898294217945656183296395044121631723164417391050931695822812625435547085756382403501099367294994758393457316899263405279984556868487616607192259658847085003756888773910793871910139852388668192906443563962178042504727845940915804916640108636718254284914408388058938502144706596672233397294396851878434632634494814865164499213749974295805263770736069154709131173664652878236245919605647303140833179707420567647051800772908487294593189655147990503397203437630421387084935500404433445147560746664122210177672988571335197670417844822409414676433526129753951684851991213164992509961249678069189172972121607903530295270002808884922373078201971763686497583747373189082782118113309248040724549509421734306674055400558101263428790890496286396386836505141422358815566808099869366571202536861411043696246546207895580540564996318531167893822101140734112303272990652014108442156345440413951980495144478094641628699938057906932265810393302854973048741720092646513172078411932575359217665810375275075744285710012215886360876745032559025980276351745291448678797987655651085202601132321246276833497540884287737873152026246225452167652930377134590292613709628820007341679806102389530528061443297486764129264243584201699723610625147688987826165120229490170078885588917303015963187600905451221096107881481559456112177500275136278321408883842896442070937787614677156652196138851873762961338392119376500376346977958121903005439627130226070654841134522091523115078888081367168660605499173021062428981156889422656848510891031158988944769727755891970994819352734662837487569294082229834248800288549292290134599673235035873834820687692754019935345239923698006760255250184963828945586523948516965856986184415083808942005577174573305246619616390772701289514592881950541679560693940867695606435621563209003124455146278440358647305430127513117685239065359425843571103686916423495967017837377016148678344560918145395246286375986762783000750240987760756624810650067147187774800365326254365965988835093449183451618843533398167888467542936049305397640013671646147997806973538482428912578390900361277864642296160586642877748629334674574205477086303277800927027469272596462926922966172810954465357797546517691629238490742328149872526121114922835062362011777841554390369853617185826821021373911780802939765397371278349402110236865573475480156488652637470180751148347744297361338945279035102947193220630589342837039868601110773012058480826731475950795023912252746026769117208106548644850104492185879664647013857368081946134158892580194645333713814408944429873077038434725276138884288908275949029829782657891149658961113171645080910865215739741220254579306980549786733549006372890420588471342264904507889070346658200179877563421785923888037214674044378917295040723304995364380087409682381993905568314961097327940764124632109798503593585622429582612523967380639952398117077880681280432450889786864443314916388586813715001749667752630011210981988946154931351349520305878547650345147160768075474170180952154658086301142072170696360518818109573124368621747466110795479527217116244952325598358605395277015786813651170771073957880710801562304051424523295097428910263076945220501539696372797690963336553303517966902196031712691229232283872903411204412923555692906053620463816455049115641485347116540659065872863447861011183780001139103376833384588753861246489516479133281132064744752900401373365057845621138961823109131352568423584532924559077633386223498330230017510200463595537262115207427535711481072778057429681460363553116996125355762439589411695442117255702227683116672196138143906309261285147424601241349940929427074501719373799115270356758719330570262109589474124398777688342186429598882954233452151287231200664322321255403558044333462357574517479806728344526694677890779386012337764017831648374278569497969202180566444944582869488946396695619706016849224366777817413280566928184446561722450278532047392992201213125104012321106070894494095777496224331857517260999264005867070902452395305093812696907059603464752390786630952393183844334611774268770778645611797701499853371510010916064480940394269489166469320577242753663302174636794806349138496318705203805437353996943740625258950709236566409422335584368341841787634624427524887309843338979107314452676656113274427719739549520159377199874461839613470006775485589014801826368822287015164256858121164609124377333530165394330840002806791487008460766780208549541112149612827003135665031096294411637924357072755773701516640470842665275770182199907706020381547023163881424561648284224566454247594494662504396185814547106039922575795764419844785912011351874514349341977749327696535939225231809511709105644380908991812026772484593417442662827770401511720563675975455578191232872735964820814141577065207749492762418171752566996580901260763150105883053475800912960402671020055016708004536180750448253735000034609267313183484683345173297615993015923398102005403367050323066915704738295944010388842205060856541470641991016626779738991451953830208173434712089361827823191099866111261252147621550719162483082820527635835373821616538553751512161417567386352882992728250878579240992134764057083645320968195890267658816444517717558633234194832430099473982890188985800942163873892397038196870840149186784310741570833432150458698954081569081909853198883914540098979466846662185207295463150489319679294612705974853813023926419703115757058877922757925397760862572942992368348356594260163597509911517618748900881864457972935781076965545824056878364109376665355228971467982904435383707057728896719464286129581914692705180407383181794102345251129264515706184142696828364173112976794756643109938899742370117203992093866065531160859893136952421912360724107108504804458691940483057360379772312871082596146428871312908666787737587570533443020336840859245486798905612822403164923863570123335390456731449622622473559473446659721953933796249513497495072679162367261134157784343820363938224322205844358073661857013527864777738201065429793181298723943532077641556197483170719308135599859459376065941710902885642618138310732497705408027679302505040588045086439488264739673983990397496288092409350885205641171847408422067977889302808755846869805323813455991617503193202473710040275396167482720841712295702398792484383372232550833503173966684095433567842664100871135466358696763594619010083015224415866062056186050612536318580051758932123788080745308985568738232405286374565847448065856727673022234198018008128085333846838749996753664572052813379106447065684749550119876107300651839520750321066940799952489788542756175433714148040264834913277219157704354591630497325874452113082174133998642739742913186053622738468551286451403435743000599295862028228831184324667230293651948225848070314081001696574623468722894984604041336015415281797036232357703409876630718978609799376407692481125420481234211883681856528870578043360007144135684141980836572754102068393762684791364689453446554982177477345517603531041294931577125885366689943990627432423379176949524501278460016197651400048872586459167382594882187585913622767427269114584932522219556972200008357249913421984680224052538973122664639612562589920560333009966848030561150778299257782596364938681414452486112791086619302746248613781013657604328507831929663120899243253842672752074891717336548506323228203419457066192019555750720280564121991361168517625963507631525682176004770078062549143215483855478928307036709415920553024089564270739722368960135492829796006585298121032851383116346082146047708315669217878815336297622989480832332464252126743309743733928551579279238528384922101497342301447603725044440696830899397438014770072151712731424688290819019195841901520855020391325545085671573046574531657577264837673535689041820881742137585845699524816104457507226993332528904618696305947732962296039168087895706284892880712915189628644988303083540264888085601364053516759061244868442711197127264090497153119573105751517571604160019894823102857964328796069158098412093729299714535325923994065353617355484836140270851937413397935390371094886491297323632635173683447745380475097815002241426038446699478000598994513325588506029155070861928139237439258180563414558739573132293541479484371324441451855847072710877098901759096732066791786981624067869490159642917798061338983421805888201520292704004081626791489945992615421625282900695736688429409931797152736659383692230553417793871359264950435702939140949719156266603972240511581450925440411922514007679600380343337953053056459827714636398679210711948381759874470767589498861567356941723003223074337308369884951665719548467023053989922551641844714066508995621189931311516171440563632832124578633926933225245427500860525012352856145577030895204378570242260497482008349397855885085243422601343526748499134990003087371759038597157418998833143276632894347805050663225557822699176263693273336866949128103135473683929511191820124769827763855534800885254242302271364656745719247724066602668809059976085892877674321581690630680420370704039838541961830433612599337675306944597940130411030253997994617965505955208619243238981403281878002210882224205151260568238241498280499039621291761364348827289982304377013967904101030225484842472245675442721687019997181948367732114535871853100464639934053743970062133751215269575312658630816123078774000811535736562727333124682094048348044837804587079036700070251160042202001060857402003752332209341579207690112674407526138130477438903453218934754787713013412972249536363881059401898878277013943930103106182004153069954998007504958906023566698284066874175273540407342334731865033247768645268852466189020303521219328874898464361502409064236958312230795011722162133342704625795226852753712871729886190005534990206197561372443443365461908379557418939226664650795489581712928175339850658814072852256477449987122125690074942224310756582968438819048499169911859705016383501546604402738635089643792283735705155672287813570031176398760297301179401345222760086617517900844453114266811839657707951066594457026929085472929387610092512858024372665315880068516716327748598916763829167594042856466101215112022969364626327536888036936674017617772719728980637556094980941236338391767358598473243406748755874788697148173249883023066986508351666473163325609293214499340675586488560257601934208404436990795172804698617759599135132283913489271506806747024926276037363751269278823123294179890795526200325687245947879053804413752924704182833447076123840551419042419675125648426583554787575212084323008711260343551851205051736977966424087226380640862785890673519194592361430550439588278289366435743528918614772047012576608971162492037635410064758088759216425091161889438360629675207884347830594849178820035786456074713833866437114956127617900864176929444369135751567272576370537707282422851850466991629868447842919251067245442214850919420547151119380279718551902055791896359522474796859599350278325035951096665385124692758953415508413393820660002280143709403927348880838372241176935983040503848496692544912127774380674659240834062720154174687952081540156090965737852805996326918415522707775157677208365417442352160975707030778490858796458245927445759308470036952853150730355719927737790158861379564361585766252467036945037291655065327712506570265697167999826322122763938446964729485457855089516282839044389577590222487864881763886267519740258799411771459819089556427128733852507027784328436028139259204034427144053906905945129356015799200541785142239535390496708535200022957159947549848564460160384637697481714830637696958266980176778371647076559214743639092920149363724784754390445774534445758607315167146142966034838519447864573707865524847759367400734012740996036637399579154082688271941701977116206169569358375036334442065033878469412669006868845642126284125682943133545356333171867263390820393473354235736585753724003225866798523552198699363417820083911239980249849964067104297780070590963307166335940278656221762876280000361531049451008286745819447754022746957063760088288585271256025219045963277476414678572860306480984030071178951091419259211770303546901799625606415765237059625089550414893688271158325707386198547923930739019326323137377274325510915405225291930096197185731946675701824112658336893995715386536278197728185451877670700181376285041950779652864480222713959429521385249146758148357123226630761918455027708488769008420288075874775226443610569466849262169597078761112199300835945040327317051856456369383686639074661008715229274489675838301062056381715695108991379905247139530157189804424618693730505343071039157970300972880655730300337761503779553071811495832473093991540902341231577236806031539049156514714046395202358588300836038935579865451121368434631187849046109436696700840893897372954673738332374997331881656919878831778874245005194102622687798961437620323852902980846071499789344741179650027279297927315881741693429706138264608306736498830294438734911991654111586266547299258380803897242114723913498774783602863263097449860094058483446057495280340543671158586437421094928075638164703256176347155446158069061119972039076343759653914031595856913287663143707644427458922779726459785251824469013770692385847598391429794934020364196798320232082834305755077910679129152903347883858139068984370881373480016301435364890289112883886436513644663981866494296683112846661951976544270852763452545766199891015716151287525060469110311075848713788809146026412416909825033605926970810313313792126871362318361839494422978717088771750033299434602394772622118037810921018496674517132743591467225505349271526369821964902000968341695619756522624836901687293499076253947827111863438626816256376531257714743935594120077720149357770579775682849878960469904351273082318671559613482619303812948007801445135436528751902214088055803990464535326179275938881551396540108121501155313301852957889839830554821318367606493517884655968745303008334761491683263844317122379187751384234441661651550027212509770464276868393637548944929173090769147993706786552387880187017944335643362661903979746498858510135702821975325136129575968932115539553419646604863427239557557340013814252257175425290277908816880475565768632255551183121791332361743076181264899274181513803347357181628465238210710440304886807504455566419775386933892506090425742281745091424492868650312661083956361572753518075852228908000057478192066567417211897475115527052927700655946788253225794035649225157195243012746624201804779346214322676425767084109475240320733609592361112354797921720317507881235527810875045200266819198955339860924022232474467505798947286224026483560388345673317153622889378663851330144330243138015951533673643856491390976533650447411268855518459831852644461377019045290127290951975241244887469359845312599435074058456670024247695834008129723309332790119633720585732426531957314087857723672696169690060666233181809302169156051713576723467572722162988735780789721236287128042368678035910349564939774198594868052682060889433017771980297059059195636119771336746338988544723622417078058351838268268313104515293657412028441771604150969934457297533204352788010143219700779185806078130101533167413041781541913775229903136978986248446743281715160360918039637305956397059905454266316081345918797595337928437535592321809154977119233922631751728959700877308864656993072879772565477918758759365434662736966136509165935233678420139477557457780530654397046897524181279787591831701329020889268036541446871908007158548698497801306518208520738595150617929931314374879417490033489331275079384692198807827048705517185512555692457016433047307965018078630441636741082873772430774097910574899861781210299545470212843022513620604985986498616689495766514052481544319228027643674774230517933955928007538561383869060156638626808981290000252534344371018183796374792501763348862767440921539504487117442104251672739486819802557468223568328670121214495543117935527867567164342203553389440697328696241596199623904267255857564115247233295237796677454913778432218397217378932121241747381556094899339112953764168722351928376212484083560788935085859082232222112637179612760664214014337527070433351615245434261333284682374643531829347997564769689103956392716041754542135877613587340315013489572670737350528298886208510554778227583673365673439482976930418804683767226316603287379096378496852282726998628621448101006238422638485677007585668266569258864356636103919940486457380775668425170966598389054594341633785387049663677299781929051424540182281807733851332669418927817449811398826816537527490191786280035318243858601661398267264287502812965424408505058226478991414715078374628948593694895766942388400364590671663855209281798083742633917743758917039962255642135364503617074723427150059044170273641593481184813715252237580399339972098272652262143091464298011175579885275070141640349567294850534643162834957146719465733642547202499845099264830882771407283957342350151041887197895441474326029448071665224075013567882409893820047687789415340658491060128384952064712921197489183080862282323454755433619255553687307540121422413093366465029549696164727783943292728761344137143622015411425417893443523475878052580404624460775546269005039050367670255849175508109518617651169144604465287278290736359655253507631456546833443029674847577589638854178436510562553942309229530397377875309434052747563745369695739819970149174293953221441110534897530417421520280980565053310322640199119552810136672577614602725501813957900079627580754340773202034667000863319111541321031970421627531251195772042356058254744996543540364784057733727109536630548613710564403734457354770922383970769158647836612610904212879934220489515614068205868770554488564091294187235443903211036978983728386664233176939965518259189323784714708049341088951073316803989198492266337924750726754396784354796385772008758149775177240521416372236832596376856540620391245738896428104899006863474632188783956413500268078247309825965236208672698273220409569344483499580632706368168086615274924530077052571021056436458253765442944882411420060764690612868644133191222034552883282796279391660796853038261736274698288715745260676291290295453419490205204949029545574755733732115803195573129864253507679932686973633922754336824628860486816816846206329441369926148231063138797848710818736053064239318838304555367562571245170069599965279432651700478043170116905447726001651535039301502549990185602538471191219822026583090555910310324378858268997927324404637703493824711938046860530885623541226530301216891068085908014314682460062488948277673173577876441931144431308828165730782937211034997626553557064670383821339649013548677335775888019218661691809057115292864910315098327092508167761237732182732842336336608102500705734688191119640891658475284478413186860256753156379720944546508329159951758238267300365581598729791021957609204680016105128094066982954982157529431153853866672816722025216414716285711797125184936637640826135418052540475200282080178018238786619224532998288843661832775969783568514852053849039019214747565322593134385521687620593948473594853612962602938724249169192567985214589178940120062339274692834882820336946912043013891394962015398244722062313568542418060671446243217646119334973254260572819864600556126510133613474859820037341471409687111426729209334990916308359948104445744467456181969233688266760766377608309940237595707544922240472020454265988465509590903255478780294974473647971187057946470851547206870930975276283080555732736819789210422640548057800007540509369270799096445138883367834589827928528031379305135011034988772108144797035301278628363916975760819198029613954480131751596678032771074953404033737569669241215237913382815512692821358587881728152643244284309193843518915198609007796305965668645117870139677103169421650636252466280616000420944053173454010248667622606993062432943742574851225681954852563062246592842860735222514595380078226695443246329997863714884577299790638405845894587338322173354364214704298214548194959721400692799055070158301964235143576234538692000175230943200652445062253464683037244921491286523077381974459782905392848407502939637511893699619232473337721026178658257384437280491112358133767153599234638141573854206873249363214181739152643180205795484312836385260727864949976214491137496949445298694156954912296445330085189655767944490694772189299533473762869865384947908309979516598423795737584704296684935626158166977415564171337069389528637855397052863753076306740504720497866708223435513447812659759271623190235774306136158304461873176999998813153502878294622099090840177271124724182938577065586609625124084956375127859207908998713604234236448884901544455470564247511362070496917020083886808319442371071484330870185379146777644359102583873360227918061182248089902601262443196355621657984090384951473096808370913649707297778015377860840703177819137001381503293816308770774215518274983590423124107956149786064952122408202978979689897424541392798023284735881146491305028496747452077919259995696186489096741478388853970316115416054566463672677873755135004914573773193051375193873188635491703893441014408167447164766324365145628972104414582866089632843990923149707080436881840821785903637738031410985925231371048649027918697488052480555479227572420442708036561917297380894199211601920113466591043091065551545522555157870439922982312989853753118008767914632821450603859713217883891489363094879210330337502491863519809458332723154925665206868707475671089358652052626465714580503967627809917315550490030049817057954233761012078439672999739415236655140775555696425544200621210612473381724000954376570860720781436691119435882227450642411094377389419347017233395393890209498401584141796979505570202906716174847817507717050260839991360937339669205099301179234078427227473955471659284763719700006000947096657318938824929695765500372653487239384117536686416858670148462731036119026592130936672241992378361744232331509805492224755629225163346582046736492136622408846124305850969096985302691756501252815667609946132778844334256623073664753563049917708285916573956537650488930290072996561384375528798109868706352597031227548916215980853016823249420462285358766198618505263572021379400605385551447489987579307568705714118403486885841204765766194078536378215459361132862302873430168986345982823224000027234421906851912827138527943464048985545163833949267271358108747279539984387555398736494481724650105658274144165799435645491584658369752169454674331227064497925889366262945073140680029478630220114422459449996686780797759527293271974865793680055076630269769572559708147839277279401099013155432920344035718244212079573109205559076884773438163528609082866255154935256461978479569013839978761506215378629002653880966441606214963685553432892010175645680069638115834672573925308329565846516492895743888183654305052923826486249175554148107395337865953842313805978303454523189175819523999672936204392446259695272553914603218221413042284361546585721900435392290048591543579883568466814860455581170409665177041477489335137259596577388075952335094452315628424136226504949277348844534590478390063678819102620342947588950415112308297688189658486389316163886563211587548906081384848024552485585228016651479896797134499195721113491285847352512336394512197736703753126595473490614751826551754114222511802839347987086200630742118073721855329278366713450811014762394971257648346386459070305159515629208912701987087737624938559107778126464062233563639458105515925508767677298136249399767812791920268973643897753750720463380310330620411041458860778453520453679431563963180279100034009937277938898085372704777825704103003596744357039141429263175921272709497693874114163444839156642256454726645444060228218420302424003934369661910921112984784460036744260350428447234510233647556934443551962599724912206381530991629336589344247440063295749539724687780635885845831713929885973525927437360062499534618038702047502848643901437100389854941048437542745775049475284178726384341132424437381405889840347211737139282943549275463682020634932440269448288113325256835783061953545401011380907761367539807471356611052572711654167633256542182483943985079611617389590315486699296484615208462268046735824170594483136606540851021503267084110108685242718832685056551774827828355761236944454018811684498378158146323426363161845464375150515331094803366164096591511314337373026920834688657959010012143386845771010305584408063041608522820552027874612931187036659726409379149195327148715554575373012823781180367824414791584960900336200398511319144563393553727416169490151367099474729586636855933988598385885874143849081724327008179456708619376458240522109115287339782244602485901736039922386969766913302207360993654163776111295527708635086238172385460064795240994435167075937458871355461568202879415271951579767275927427615719373740678502817163829978686528966814011974407508740223377343188312476998574789354451143318405433698207842562301798278565091943292384112739214317836718372481190729778923258623659887397168884972198854897520896443939165533551064124753848461875932918559802154232429791025866522189860332904323906673095468292935268598319030312210024647052008972260744053435178391212720788630157766943884359417882086998358390039579732664898194501901691314530303488635141497976641972610815687343371016016392310433659887191984170996023584522776594072898142041207266669526098751028297162219873805363101093683906482008298331492405575683641000443094581410450420139799391168967792419666394274778625678371438050603061341947492000863033320972863639058885329326640992316742600637557035365719895639713343663228552369942365341843218669716972998671918184994996214786854973296353225765750514124429819803090329119613086155732991475195821505649093534377916834316268745826595508507946410631046873952817782474065811166429987389251705729123662415705457876948267072004076555953261498604288446491234542059896927375078992907356028986714124633313002613711035877233224417670156002568023970077030954677605352172066632841073467376181962091510032497544023087665903036608559965814072856752621531908296900846067412729501817741307823294094867814393384831360285934792299346322097326431963896688028188142038435484809737624437365254487402765140685048196949826545721664086488780226945520719019053358524010976651298609758649906392281314963038639556316866096615166808768142114718502549561142586756096067181320998172147647450907836656605423802047718006510679241783702264099371720746523755946016251797865009124086944946193992206163754968444571938645008917570302001950743073699378255732466456147432445868430566028246900708570633361273750192489256066343074709076507464030997168379780416467638291301113762914029558477375796409783015999886298848895608083298037210006942273835395887688204847944270439797226824428216071206197033870924512284799849904840815668555599309546674101576574120050913119572432342068546162806609253725344346726495591442427149758776156785583136581073068637056894371429285012930239296771141931489563580410303407565046508092471560954633419431950555881139125208889975534731618727942936079634574949309866282500959434645808781546771922055446684960210143924671405262964692200037871671102644609161845472289861894218284220221354383859760208554055249964534924521649858879759560930830572484256163159640852217353907827423553905530111878870008439046023749118465212600514390954608027515687570860262588591412663253690943453499731725378077237732858170159374160412101327492838162423550706345991937682862280113979741414797229131471735829138489342816632960782647465277225752129584621087965410546721966421263250510514171555584808671933599516735721979702754821945876855342749364330598315599940164374550237282350917645313886413379568836914650063057847178095553828842856502886665204098057812986332698863043306159485326832274025328875877677909597062558528024265615793452545749435759126130294343405231158240642826458963829194578221265141735672436538817461754704397984956096580115718726051623242278949075293167755479076696495932678857380906675386499077742576352703101110992846375125946198358848806109993218508207457659688422387733591619293293890222705855860307702813364134804387616386086174513516261591879245275061021534823794026648884301117531319290785544010934482262073458998324044548934560755880388825136285468078627771637829576679143400798101528047498681028830775641362420559066496924261358550380950045560464936176276613157029450456748675387289592924228285153106840967702714516329194701708436416765904949441389121480427951013778549802979907864477076479529243226167803046119565179420600675122472050023385902094762843208246668011340593479255895558742101743461479551802926347545350229081940672402940224899502250666605260433749395211671587102186911959122667379696826596989832587645413134069705190289701172403104118584391749575700314352454140794594024317493727203862028701762259094145639367275792661308685843186052752047278227542327987911792272763655547624490273866770244367458027716205613771964007809877806320008069030196432896268293321544230461678824252759675864902652630505748829746419466704738983439714802760530999462818713976867007490691023087897173766938339604305157640145430137522999995046998532130442233194432360601925562981094801433872655883058451527433088717435616778302870051824195331377303993228072375729025531893096445078531456117386819821809531181392806402506325811755478325408540049333388071333793441481948604310417166265732753586205026883797334286562009390418734155111080107004358062147946455603824597927923839009722923978656625958090492416918574963309690433160710611797455629980971412163710753050282135306134003832542907933204622784897526608145023345832402846265189929911392758766227557506847110350049932785776141677377103168296401970955270009740138442939863428122388039281768442653776475909284866297270056972324982413567435881175678116149598282816887880480635748531136771927593480527581060117214742393143477145220678357055317234864737521827471859438357613747365315084448087993089790444057673376121395012873379852510660327011946071888797742365150381821087240913324167337812797233240897579719804984693735737212145985604135562219717430811303804365697319304897066801778414465539614227992153398547877192620243549121055838280528325501356231954215503620173077846819689623072424082864632796312530299768794874680669488321649076959179720508180128831589956119772389715873675199562342501693720347949783430514415311284776142316275003644280938757883463397037938032689512450139798303939458598868975697134611574610914878713266452298179231515471035816188970413478953852168215586021002933417183226177051916932656186306943148662906397787874957109262434052091800165537247098059567655475788962368416406154950051936948426128589465055869602937728136723791425272813929659351940795566234498869617256452890716580660700399939357469466686347720684833128454976349420520852883594165445185297299568063454461409784794982152612527587004509292953417794957090707794691204584691695462978281426620988977786637024030044777021673907480874471082835183020710415233431717186593633942895874961583822730064166282429800769559890885022437649098192453341650783736636627932825824927074532775454699951497941555227182310183784044054063435991359259710433138855856227889497267890618894629443442947613790452456998403812955797678704681805986879754851503234099529998564758064643572879897736283230549506245311236689301687887601829461376639411557921263872395219030674537360865290399784689002100296561307019243447202789494225584297681885822888042373479114243408073649145855055961158815582716101203563529716668857469311007752663257241522804075174534942409571016515989120617135276027656469926510574612490963086405689626819404565053061918311076576533344186975044299126295598269139671346894282827800778792685251952260574444593733091557215745023346911770985327258381818090295920809733308962108169782456574954621025312014694563789916491067029635749351471832171469679328683146111231669227466446149312785590212570997729067742071270850001288675056804448002918898325941596836373945881556105021243931764299416629360556114945581136057924479127500115498544412226537873136880164829567775770353010836294424898807223711873682562349295072329784501105053307407600391950467437126466965693706329572319202989254903490839465958484724611894367556342806044714178806491676504741311178929759739468357639574610457518777914815320857895901226339193033603337089877754225778301609984308352399027722593830903479501659063520705409759608246028671612044465091970526943846774247675867702494763353518352062330752918774119092113162255724140041361879576336980201636179927862168153361653280667873359076799951321214988984216485306731116903805399242131199564633557117866715184822730337775860156139034704372677014370033393503056188765882908250051504739426638600943593826884036245375535826690850804228454064704001499044558878440726097697104114869711901811371733344877991348832815008092004427924994847788204758105374147769982535965768592938864508332389873566636284288776648109340993654976964887108296027388507640507378978997216846166545607779419157771372572647063645714014146073853696056398560488783628548155886015130576374789153252008029344982400687099532681421925792371654345061037571480681539307253759947655613459222920829571350142593065319714788042838136910566687999752645172157320120504599666078860051596480756807053357987124861363021410030322680470558028363174780529892342792022074971004854489372973389596446071538663327522273523633592816985848961654839597950850163984323592661175440698992604584953306741791742017487611147919648219328044345546226916562793913989059005355150504381361526022676058678412729146235300151006974446545907513013096011410291182014869619387042820198333336739233219919724319195841483947224665418330804654593292230575301453147805418186711700446903269239956237193770520804412983811894378262619774686362243609400132318214788557348998076753423117544144487110650745270417391610037417953735926356961299442050986645724028010453602698511156212400568496529715787616460261474583226425736118772368080267894098162785169800068394439897069311074808829861234588070010832030582617538026004862653542044846718085213842907973835311542941452553650296098982827808747435603395237733584847658363288032442080040554952228658403076399860237366847012708541976943068814156793190828675534643877105637185887923143975241277651895898169830241170605297311541242079915259541307138648608320391153743958408305619235328234772701873828652628308699543590845961205414708407102402438527979177415235255506711329164277714467820779395988666741744384552832169956468110934873982968976067463716245062418386182498755813103924457460532736898256928107020490690991387664894474639479501670786295684449250955153898231692484757608960775473011165747334178346470082637786093911128419172608846412261494133170214585371859650526586378514543957515479359938565152862731200756326133402451453805606416484384199994233006219024263655209697139921884882879601790696881755111648268060766278500697785725770566393327271023039923966085006917183973349743787417272507975460995623284018323336102054684844922075935031704057413769570792289749485574248395664587449904082085454020296413738241743042872977476063379803056078449662743700624929233293082769801712964225010656784424434661581687608306250864573488061857897545421244625118951219271461894259301944827354758994282564893531255982846610136446967493699154949580895346304923557085843296067099917411898862344700810618652164085206112845117965451600061444921043326205815603248801307758406000557205792936313478308597340985366311979405821327968320798204547283004465100705510674738939346558288330293225408735063513674718723258529561402966726320243698045689699477832825624935637098823421771515113274845274365829855927607635726895480355900883136125461562462563952008102587454380398300393190688966158941334506072726385706535537869501826341695777101214829460183452195695971488424870928467353490981999978672457033424978015480256798305601240100060512435495283705790494146702346778328836823672875116406062985576790868841658834441328433534410789180351475925812140120575318906691856570490814277936757016002871585072896195160792887087559472850958082889929276542286694440264364041815133003491852327086555840676162693101078381917165393433143490032320071597316782010218141642293600349378043505946836098473402682838112034273170722831183067418974457970397390273100572287014225985744068420731305573215480484994075514050084760144682104192501716771492065104892640355523112778710562514138100358686086296328194275989979130473653733744835387059892083157246540413047656010759159410700335772856704567857050928060371137363071984375602373649206333459747620128160015663574860517418598634031988857897992529007808107443738729439840490675152570965120446095239868992606115272592547915634505661582011700364507688482374658434363903665701820247276010561474117657397697981080453704233064897311991804676316497656738179475469146417579195223448224070821375601689727460871697082069448720901579940610719183819167115237237428546871518887378129923709920549741795096688556599299265521328064232011838750225722591319855679276525850136861095173535150329161566353926637215177895237167602910485315459962755927355079747286224553605001211388932767979748153928045199433282863361551070595092347522042513762560758403131025464986915087085960897302352048134647601031687833707205337226926165347470472597276665681979774015310560910130060224903525762915751122827644256664284722928153535433966309478885710636930344093692095431546328268873095801659586206185035970491442822337908861801117241999522079577585329301362392652011339575830911097739581250833431968548278150894806126500224563717772150243477163537315036856728183556769952144614117343157062381222162723037600672637877901566792435783457319043647957380790741895243491767960415458460024284886200400544933003790948691838232575868939455402030003611350027688439316854865391326701992118136693527862360832100416734443885623297223871608642159419310269205094661108003313180675756087200024463142461031409519929424188731028983032278493496803107132242978874414380079653147486982582121775324317693026854730875540867523398443252260152427852090874073747550325019900253061958968074347039827730546555185969265014051344545038454847296342886769953405487451963884429614499230363846734544623044478862786105193828247842001473376478115976088595909969152186355464551324246737208465033163599554511908427847148178932248963814961073505911643616465145124128725955968433372466122881300295611038784472143108193500903920074649894906106159000969276089831414846365307240154115513995391105033489320727217157237720834662680193650288848188836782690485037788356190620224508809212721690998913032933299198001072525470046639621091630283562857905214518764952705987848185931544762138140844940535666321829645289637882331294982677728397876797014523696502406827167892368065317640124980712850574539748549363318273467370026165111168930128884990828144473247899091399647643442888816535701925314597733810470549515193145070174324524117095754494164910523261057393286574523972998474653476312189629398690832348355770200487485948620842976426936237846075137827245075786158601082797132042023586749016009483369098192278711272868220202746593543854121154266712243078746165574285666158046535394588746519724272449885905528240154562115581513799099670242589820274542938107096539068374588369523558356468195004609007668205120809810437117394855818121514871630996473629324160631618488792758921077725289870038881456872848693928555192435484465049826344046145694931198693022203408228799728726080031883058237590380663318554910182960436665420205764221630857360350369591556818596175590396630212204729327672450194352875387689532420519786845844910566584796145415403988739057789038444901137400558735835322974094845762853809758599363111685890776946916531853838494983576695718036664557918098776754176938848908061184764731060520144773709637618109127184641335244110589485761663550150127336517922123201896149416282681467720240607578111231424742372124441254140549465602599420163269329579151946997242507404424791681752252087246013471164769142752228541730910325962659263453142012454100207453450695152316546960851407844346498267412192382735985551131213918271357425063797967634193288987240988311821105261377472993280440068160367181237051102917060432249464938695198074500843006580166859442133798968024777338800085527751905155151563588160855033826875433185537746090836035377264316515356797801784862178094001848569008740332601689349987984239377037801556520599972543445726776562351890303287923570035712898089330511940921882084092916524102909103060064342121040880661665069842012346894741861249160843870094959483721875287066857685339529210708887786524559524862648357256330401684586757459143902608760656566871617633002291476548175972474739013797498015932612124742846966393102565680475237367701860201536382021493692865470410411429541745228895199503967307375660819256926819219789384885258042250223543061198448289786378838112910536728979908862382259703343140690469403861207185838752461166088357914866000769441191792914449764298529170437728527493306142760561011950532551805923780826161979809383934326464092473075507816612609256864507939165578942988540662454549095735265738761537588838051919881320817231370888772626341365743819562851755865116023519561475299510897989376327853401399719493669250175520414900223033414991043446101782259619686079985229540936056662672105319937709372675266449878682822398628511779633555124586637390764830625019024608309102397736777830023762398105434502987869549333585115900277282242591121990638654170082235780554844415200653165135505894726392670173962033203896688495794088231678678691534001238592007593585373518562673290063997514044023443094450723488862716133034845374227236261132081443805260604830413264666520802284400508521843657875657643183585913482117565217266813321772963442482702079771166246336706839668421746900642528552751162502393760524296294824928944200071955162969828235883256081457351026122728142458674483816460010608109581295152117175681524605238537640364322298327950040276836415437197619535742908743342783946814255665693102582355476535364120741275925006943859263809530101980422549072256889268265594186085210918271440655373779242397104874555662559405351790933603184807400790536760662060217107569787379209137209272419905654454007905036159482292152734537459106586365274009680485727544594685839157847609264624951754047226503407356566311106493857302996130366664507037834833402511449009551862938267151430668910367591746577404397440111066218446064044496787887166003688061066069039302200415243806220053081765760087899071533125884724216064931512046173398328833978555880032267684945864834114792321969508335389941311738339346055639215560344710424498339072354896201266248023252438186230280291553921629245972248615936173572345103704696639111393078810445556928219020083470610040729266591206630234941019285700805457879965412642192604280203611118766541918283720375262466575538663347941338994866255763112864768191706287091236570043960141505590012955783736850122096537269656604344327088730178119112090192235051086777904218512047633881184938626240769525513295679065216232346822188873832140462688729243083090467546712001483977584071404327841312044038306900850951005337429805216128320790666752394553401206330488376115180603224425646837362673895295855704299832378574109920681692596946028032662965139798319579396311841382714763002884306188872922295892232537709541194803329028970016580302900527766696617904860328408574991801059323222031878626470058730841906710738959021101781326987208510077999547776898521204049554624444620961764730772787771500696351022271378274816178779478353490834015239672643414501055371203974455688952741503848492352923058107376139276820378593721032581038244116973641959311768008310073558391353574577433196788506063954138414969369612344862131198151152496488659017518598981837975478036300778985280255944630793736961778843345439256304766726804709976026907314925785946281708681030910096841407997063185910267878164735323564654653328515609549309040750720156727336692713683444937278116202603528201873862402537149036685070826195862589920854603483675157882611167215558816597571161186867484828679750903253473258115724926617387456960759011591114431392785273506982396813145743168996356664118934275830341945981512693865024931133666660982527766519195358934795302517820338812507783948065278323128233206119735482630952776981070292028908824559519618821129599159952958842268739132427580616632951454522064970640399017717421534233884418214604214065820500231503036137810042271522414499038133912066669400580712091547320709351364497396475311630849527123410007479673422542726476771781980888638203807257953960136480653751818251481582560488422382445915988054254946318471245407940242122537240918151190247186991396107806722487386937568943690435707925820502597699837205580932396305503710391038011621788948799500738748192910840789670758097059529734117665983305821697024149286324480587300824173368948547374784291386826883001222990881399673344885715448080332643260845038711975236660181074066113890894147023546455020314762633737276316699279836655712596244597068416369344971433146200287039343157510746537162092450424643886578570126290393949374654416783103336217472227492933104672155750985575083049706015712054751148854131524405711650798592657128127583420142235331204220019851687160382321440920288325722805456674600107542031564555079489511234960932669689069775394164096921774090762528963880539900912300318970176171527317056469936793479322553867965092174422067430444675255673018370601773117969173006053891626120079578911786646863153371538176189047726757998504133528124263269461377363487709037279400163137592302783611089118656983269177658200495503985043804464095788862687236738959223708825579710887705149781166803082932833395266091144133823746535848152970365350675909256703336717284554862431939513572720220957012904176712370371138961828842922187702905010882425761248367538554720380793050493475132220112082182500898432758614361380622357597096119252674731781009539954723489757539147113889746413979550196014111154186499683281813502564188426817283225169663594870458456924032150534714578715564842830503171308250757273075411946372033009879808403661167074107790470632945500270203689151935848161803392332902515924085526251301445343611383345397374644118564222877733472370886260179358820867971162316312657507715453635167270392888880918200330038103557967963215033375508072724289658737829067709217997345659465397094129371109956088173875702206450303228488147127187158991392009447550064473593445475752130401715304465958577500608747625102397642399184348639695739194620483744945025384026261202035033088680179308897016150318992876610304392861287757506606287288233525936355373076761899836380103927062535133889841984708274676613617049810130990975201646186473476980111407869509910601826953581067249786255197977628013003924701353732566052011364015360511379967341174429963061370765210120674644058136230050413650013324877691046149254076831607815813389213070371893419427197651577273574351076109241391439750798764211124510271105994646324311873129546335518386026483427298871825125988785245944822094818226562107282065963129056962606138392041344262649217431005774048289190483834465512571196367393380683979454534526372540965520209614990109706967032541244747481499886343407334086742184153715091526861325822356095272658465217051685088446654117508558494122150792159357806428580968003837214726560862637868919271825590024768820825630151022276187814049283545136626977204292366791687768924899487156039750989735359455875934282690441846581763320875167598104182985957759625397186430799817217512843386183014907814178014162504039469308904842111666561242650557502137614459890000536972953672523687790737897210363040248272555448744338306974509614538278962417036517864215416136160711181483709865347474705708696019044321020798260833993712677527140315445041424960808179733538533792777396264992871620940323062883214184377750405453217716458440617838680942929601338911115129487026151799003958469316192498758635606413404048749292624174152091171890339872844948899494606208847494173635413738385018441042884349471490921475110074196718899411418132884283247586172563412927370297001615753809113787333441225776430353247960334988224705473865134748785889092713476650825200819786209615392733830141966403637194632168728204193538125958242430661619365462526312913868898807827650092454226705073213013585368704392757059197794748543577122262085566643237576197739475812207680030892459194758684516285045068935542273349212835981243262192964479013915605099588053697293533315040415929922122435240031462608233279197460073290362564852076719391334812827485009334957658526825280999368957149737238695177735192269967010373499911458412099718571392490663596897934478488825249949503254028816181814041618009381424128244418572238861291333004408171942437855179122208174199183367165060477894319856694062892222209951325666883102039665307573121208039535073389804628056846774496334416133783280622495419694019961044107108674021589383298600354343906720610265430222824137535264590901991798857241386355351220622141606980035487981020281786239209276566815557088487138916698106839099819011488204827666758956905739743630530785345324369501556299860626078858571234410938238929684728776989481498815904735577971505592961108236021991442375210182579299232087743598457248616427915803916077199551099868295625749580045043366347110665250774219167293241815906621445421508844963923794175797939001247017283415398471122365277486615823308913044261235899014297867535679011665436506970713809419851945863580808196066193692901818232912351675926111216632863864791639160770534081810968350745850749398782998368713969736392397840102338141597898125878224862380709965013190475830979543874772490974489115205608753537883511998128743396366395488836352625348943141546593772008648218345277817884545733321818339175217552896736074984536350541515538138644315638867925303789651279913565217126845241432366890208453041406241229124350315324284007430236309339101150703583918625831770028338146413734094722477895693381159186309480070633781522863157417174681032817898978253272070798433653398413127127320081643351553102571926196304745479899818360552352377359174681008961523510820602647750773577863709398154608288847590728552896846282223804470366398487796950791570220517068894304423487422237463269674344868156832008172520501345503296176988187260192660937094431354154983525746575521041218696205405635340108013841617353284510838504757126872838700174186055425793659656486389937158725430770719686405091005762228392977045886485572091588228822084687979514235879213734226071381586120106575987049680659666803402938215184548946062207069923781802703643944784404022914478208809410612395672895285872083992858142680571172873996737766893226220720109005118506581169216589060955544821405362805830788676476962236457738828426242521150483623268184118490843110663699492055414782258527088731961288629701179351419610055220714663062652925482836752372008827861730997173528245503423519784697849287885149921777866442587965938759516633379112562212578452024677805348117553165583680079108751000557971875036892258796845813154610527152133712577440539435268727487234462202421438741505616225765835017696224885537936946057417219683695035705493488028704651517250688237352826349661477372871161659622133675494554001295162826929935945914530110322767954584384982432663156850411279886838021346424856016440860665900488470691277676612163007084410347478768133795769089222581570189116671251561912062807733909032919377019010015415111502470900024669373544133336405022059253572744208817410535819037681513510159790506401543968913428728857161793453014631446196992167348427961135016266956287232285094847899904187242701123065015946077038284405913540910191992637962047135892116376064718005873998477205042915657170956424033289665289991882259400310973370826347140654851891181622536011157703374408401436671123884418975953984667007405942403592011759046772979289297287704859056410897703211893071254062029764424811639926157266048096645011475569296209831647517252720180816862959530013554043430423688609938827903792804400195567343209338813049362511190328282207062928319685587870961618288245148119337921968818459743493553661193747945511136860535212943494714688241651093425459251549433635691711004109709886048169893430766088896181938536010978662891841515860548249427260383827607906691037540429013951670536392957550191468070060107635702513594954966558964999391499485515801560060351452256009791894570706244956981967177532007048160261960494960240973423233254220772581072412982921135963847843574468131284943749968185693736681724057502519943700153903355458865543688524967715032038946851136177797149966548765429427000903089988496308583926681958433718063787396583651125063215475514624152378830528833081856452676778222019267277656683800748995649905265403073961959432278240917936349970459252853116095116589775946342083754187103998228936156822468284490201245546648453943021374804300557978405950839932051054260078187139740232994086587386469028615613570816514709187611598022694107723987489478332877614882676869410052521875374238209547423499407934574215492679787859013070403302668536934945104750493695409027004689332345454293870022205204529133130796093627789752774693588989007861131948695327860588267788217024350003566902205447978442213240460824777367843445939419885247535799270544300515578366931738974188317089331510012448701875965555218124980632921724350554874997090036037763959370848034779521723924796387066250602328525544091590087349857794357125939008085273941835937596386229460108266651049450055020733548500706083312249364984096573965687246119350530318958175985025764950551364827055265489210019779763170156772512844918275097725240318681648300831757794990021831917052487700025462873109544915774874942596485697848107226051208582927536533315358511127802464825686678900929668256875488800367772899990119059693453993920679232417419122539158353234151647571154760710956745287603183210967246766334606485603519654320052093762479763023368730500097596706016162770341136117386450143526601512313451788633135512000915673574323616839098634964682942282933891010049626723756365288692768154035643623508728234839166412685540578153028507153687066968891601738967206911467423948916105916903291443818044959804778998489934279092409084421498323203240934766165470667431841828719356031554445889431536357278216501302428891859167932173094840000869231841735021100483637364681473854188066954669575139681881712958859548143559191001967984953474864601342740582880632446756474854534736678171462846263953979439698687012111316817526437092126520586663063132766707429918805576694390092246224541869481329542161094002073864766223042071809719330217975613134764655610160805751704800960803614336909841696711649863041266944554198216968769704143448515299008969748278318819761013953476438701047876778846212107549535503672094623474299867798229520078009959525391063174857833147795055046763829705009751246109091641578513246900551386978402608826107346417325761808159867366460991410317291021229328622534660766188453131190039331768773316357383134383315668347583500268351925109664249596783606319216298534572105784770099980603808599371887910935711084648521587683660465349234369382050680240435927208300094739837982089148173647740057506328528334164642097370016987675796345495927783168412869742151881905943526699830223787913823775172690442476106982803243655860637225576859928406997096471093558231558751327162823665302764366952276591912085845514951104250253794535759798177879711201162080450426375454892207678127037336811729583576092916597054989403074120098198426900497034530064721416726442252367519260292392031180600577812506947716620342143135780081074706793367014935883756431075803264493185727108442892298627626808459752294037401596759091382176804103514308353846330600304011967356697356811453615596054902271010841048917486620670904555381674883939485412189767334826800217290835846082036732558660090275745849586587073594594061168108286640660955393179086519619469599563315341039826334431903317164544200522150785162731262456513236597800072723877742321315516318152404947930871678819516441851563075121807935190129196652096876126471531985267276966965862412728814093230260166392814446515059199923343450803720793331781327788737084338339757516281326262066729359836780268040357015802701624055639889031571374591276801601321769527349890922218074162763971335804937437303785140714270642721120241265992081991359609665717161126530011787850816992101256279678987990416840921713368246832016877237725856302517734295429054780224816761425059572700122299579440643941778862392399821445661158532873579784907352711087672630572806141553816853414525464223330266154896054245308971124834161810354596987839964318068720558191322334647469580848423765718954756232674077225596351550311449615162496886342541453781175467944891525237809035679705695045103307010972977079861299872743721597717398167296670210141948002296370932802724794497701024864867676023031161213609714604035446517348670788644904045581958476863017213808121597497802953690209412571117627683479605019561499401503782411132592455809325800875639257798207318707122124597244208735026986666707639446521394931604685419099074021616313536595322070341508144973831102375299201735875853340464652223589953780735530165281644982950668847748977310666807433946234968205901318810640835824987955026488095562169454095482648855330679194431958580292309826965632851897023161513069069705031586122923301384354329617733892076886197321916772595424367225446772427958336284618415996103274064289316242978593334927799672760294645833219008263703935404387082132678227581152944383420953120202895969871286314409396248897592693863528947529769550815959892342054591748742718530872123420164327177500602807282276738820570634135533498252498594426783223482991276159450825269739687653283219825715795183875456099580413073146641137630224149802759074365454158646577079085779221029755975075895202859812047230452857543654090548638403322530946701977212846034873524664452238047672749318851754081604009751558735896057815629598839325952413892429314850857341655260364371018604116270395931791688193276312726365513089268796968796791468795325541522414913555982294087627098673377826995927030737635508469599527259541907173148216229803357920232853477635817522660182113648089348684061546499441050378380959246250385067174964738518649010520103866897088462057980022057728353197545386925412899287684409359904766915968390592708444094393313597562099174074824622322303214340899513006331473510970969101566296489281955047685660500543274360279269834975237145179527923158177602773946141041563088974448400016509653718860942609146400397970530856387094255750998933538266310260575985430023808573101416537176568966662708295028903376568351649167988366097310617360527244682351780142473276432620700480118417538282547313072425553857909893116410972810072086042081790733065342734725669337388051496769816141160381197266522494761405772995746635540331911948290147209347586349603320615118860442363582370857975965996806410151961533268277977102801293974793861276757558933839895646772288859467186946941351698038893846229003521825217051027867661248978053144779675061000789149070521891119664484736809796439431224157179940540657605847218771372754255127472226931449790830970056139055515435199643396199596732851082201403150968814250406275016567461772837102349850995468232915694549810122068891436663018100078194013750848582960750238758157656673203322988176213784046713249120992234663857338143872090919737487978659597622932972708331095061614611176180432583799653288003296822714715643770948589550149848206133364611321824658879830101133824519660419469518082685631637430826252781137154704647750793357546320315489318125795881522512640630684871338246840212109326887847251326297684106506472080043810932660178706070501584311058425705436143007823322420378231403615872036138305617083122905566880970786267596641051467430230430877888643428822185647464026435865454546550546260619645088692716818418027748333672703862244055886431045996729725729300404920283576106784165198374827975669783274912065532179226143119241218541278848307670740029656273970040396659134049899177839920058707195980163297534747534956071298107778934929536297509751592349860875213674454031033706788788459854010355683118493503300046829572306202299430888408297743006069569756424322859581161094241561543676822664016212360992940628816986790930329083011550192398227553559746045250401877612554834820628377302502302539784789936253841580494811576191020475405942557463697268101556893807300421942383533528558469361994827526130236505350173871632570784375062143777823823567320771340370941442775721043465033432644438886665359985752438717028294618618635306497981340511848077403302495454617140456599619210029147100275798117875313111172996140761716529338693587036392719428806616095020202798216702349832365638784737332889267684879588380314895011804046224023415596384668482959699515733528663010836238520575440000845146757909334334647682820178610323876231759002403511268439245182386551329672084719217790411015274882615467515711796471306607151742239102266912783256751151322108329823345060919152990503935325604871571055796267238904034670401430994270210779444934661694610591480866758915727543607349307507323646060873877794692800935053926786743338946683269861024907678852004505431714118801056143737743892766494233548028707052242938922322259159210367267864488338473508579665141962039513494915385173005987587346492233007084076112310304199062609732912990690016179831781200223200173060845042616914885821726844097497549580995014407219525524443069846077776301574283474618415926334997762639223246093908483814822289026369673542582163498827174909998226558308602898463341310437967045653771853234745325250355180631676755251041234122278826075724775644338421354883224853095749478171036014655875540199036224039212247809740186318746543365260303853207453961297414643562363547130312719769351230513820704717366304541741224746235981753162687495241127294582610166196017057714037315049081865085798146267441364896479196509317196112153781456021012855488403782958051857355583473227091842599591889247772166044430680323386680963894118364297249856413050677253629600512648857318970508456532330940826315974984879201646636551311548163034637612868648682649706781588727531682718105609576234763812513690802043281609363805989281840540663328851663653601119231161806731229561655159935616646618266945141038051822816371370936250230714042815450897210286939594876684289027495297097337841072582477706587453086938734012086303428081279644533103294785250370688833090718083736667072027576568776451250189130152743349377088144602490606888378596551401384519322351237867056149623324467090660408182725908162643455888751293744473434553371398577668062348309749914667195575122216776893578213329709489116653016144984980157522050684143386647730671736910832215803561408637178082377190482198091008867159123222393182688824845308226327649964375221145117536074819451707703162056297426954979063405809033940362655051677039430678319625273418043157036351530538655710334045873278712867389397039817633300944801596983506746462632522322940726063267401785167108492946298217130206305974289883234754097191378891211231430223565338615199745013808649936821850125376123705077428261243243100134867816278158208432091653408756634771165274138446100750015765523294521363377588626409050770611812748918102290969449396109458456454495379376628111181380959961474319123992003495141272295742303002178013452592474383325044335170062382762533133256541194365691367186320524737181554495384780500108167765311342983711279763359377676205964499050305531030822590397349432174873047188099357377079620951670738342646841411965750885861367232612013250052104038903181831743328789140786980518818313240490386141401672995104274981864399090304641004841074112374989139511061476180834328530608809632477246831296223639188396871774757460229840324412457852198154431117844202394350609907255133240370116375317235849597614242583616499086249430492622687930455943292924465660235457822197545335421285193773622223885480250608792560435285807765702543195807910747051325077739057824520736623808822877753080592851598082900532023518557908536283376934868617822994224341969285705702210981844749993892912676542059183057226064068946819420356604679116368595828916239641544500680461308061182571740871244228149949720252229655652504412904801983742853448910741832385529242666036160826541930868070224448634983578929185485849201445904724440061311056447993764355251074981096123935496900414812114031850779515795309144310660441128678155317776247025560049179765312091597372066263010237195033137039240511270852574514458981900274756806478533751694773186970601427562418750784480484105920104715500690346689466400668299504128105963861704193620806043054869292253334525283827908934923017255769724227851566730291235371945660519622162193479447127342267543628323891310409834732619342411274988109793880165340684025617524072011776467958540317897368288313522286842103751546637029941306150738037208076556206417787584865923847047698975493892141357137933287480844054394514519970943906501074806449134548910084307988853600674534070889542382874311336252124823386550868128596945275446437402398569273307329277030186080470953177781769931304661824232090112012214216249988261450157141457770144141761471151339379158078727741407874810433354037156774686722417278691879677971561187283277361352067456684059182958696834823980956962849707890174027502092595968646427225220239881433942127487509112407059528307284269004747611572205910926705051673713561833037808062469188528283703121361049071536996745180261025783895804107050829636605717922262232264365252676419603606254529891070990249718090020470221424724092830000754715373309488808290508784820019321968100229379503048360148327309335359532617551311590538457803461068540439192864712565974966337966745280468965983772528518169633018334354411861474146240901563212216412203641994009991775721920718662459713882324794277993672834042292482925043622008470683420240727207632579058228736803780693970598465026828313207489403787834744516622595829938568404567764966933180265828076713490212859123870883372209496340041506531239454766271381426657699737872507492927610884739631594135763029668260878675573908292696742717968431752414297867501370000916491774960169824425163367186725250107409211421199775402912175898358490768519044256611843613228933895105923060176033637982002359816929814901438792280503624744166234159177684240332809549917589880324481681382833937980541306096057551479665391838667986106229357264518848866620711779071598093696471768664496890037586258570031547536324847986615559388047358309805187734692964572537738879961392718887347068843265804267594610133275494496229113783698116621534387222103660666806294079182359235875595479551058305916681535919242690529119337621689728007183515141365555502049728711930826501911933059805021559587923767408734727618201894304734367265156783419163544003932697958493333433665300604306069113835778121651690280663096160561653211399978871529101121373883782003143203078867496989993389889322807075985038668287525478372084889452792610946487788740903295444175849552307112648294952805931486844765555541349214931834175569914497968620336359982443155627984994806576757805277453877164978974004279471180624341278542896904926271662273871660349374515863641114294065782568864774516550874287425525435182899310972479606364689282803632290766763400578184582995752659401539121307232887062909279639956619754812061849659023986504527649476271675016490257762920689177439088404051003204324078434153485027000051288595905968539413443768441799536458565326177232692362099501883419109159416822451513528050675111338604002172123642510535723770947884281257354825625451065012375747420219390573189168219164249734151884964211487021397487155160772465679586184324981967302595283228370232536279852902550319503012154490853438121230859982846082275093216971105109286008197535533196082954840251647524253431585450960706143880757218653382663084127292195771267274374635499770736943075086720681064117460972363876853961203522198735118093349909886725107782937080739801912010495182188356293045861349359608950367313656373269570598244571828734450327583304093801435343124565441353068981485953334762338867255519173593689835592566518932156422887923571281633168187592319100599872880232115763883900852779585576902354447718273387916968671545740832168820227159399946927602308456078489246798859140417844442816352795835690430764334126658290062464745477836950141422477919209095762044799906622233474127244852351739327277828186091455378558815148817153176936849783073336734202041971932420142359306540951701827555818039118921098422564654431892304679843278829337406145111111379142618564572571090675684505410199844361130028640524698143364079380449587669174365715827016238279877897222856396928538813152163977677848734981059473786766351715430234187535960800816517327369500271511421808929634861351315939098440304208719040039911794798018249420620796225742847427283864985463095633501298151486682875132347405066433630008024391321577351317017439873534033715214690603100003262085710817669427869029863088199432023513405758080762758810888547212458007947628647073931184586211741659815951309456967080941461389490505923779657015446122511048918912204665027659318184738509622998873339030200388090584900342020102366287037076912713985106545060544086619858204993273452267636329989865098572403102629409031869255035407514167597825962329530265167243780239272355744522960939009355527347226844068561267286745198980464647516062720242230055513904233787516262043972847731731889027236270080947557535312297587958284465180763452073988517280757508792860596315082503057003270518213695856543629295153780218465807216646793642120402895620109123741143972964762622570984723122282585827457908656275685250707786799638142275394659512406872738529788791317248658925948233673574076170163914964552993174819547321360779743299658829264246013348195638792558745233461882141454013399452491654071844129264393527130205290404084328011491333438130405030159761884471619335509543942646363973162700457360673315779908739910598400733856216014996540173896189415788239076395825611170242628870776277206942203121191815040709795646116181937051202464117024143358175933074008964108552693673598980529123696215546345045607154270730179190575316692690474306353961518358573011259838768805247594597986513295126885548990741378038846856500429479745865216091106221572945970681385694634653535413729767027516458362367288659051467746470392149715535214094908103841723666879517855634367034442030030026397215662804069679719725916486133467974308819769584538394098497438216077520108936651551565796754659577055747566284333580199532965035089979310934293229497328834567698259866879520477573471746382439103793601662441036869248584041625987696554722318407336000129485946347370028067029213189123293035073118748411024554585127404488188260112679344770889132342922373808751306541417365729500242205223173931773285317648797387545709689786984587062540554292514955311174880823594225892966587762204471330422596431461692736510668589271346034277524393507308547321043722242755516981199721697933836969016977605173878696838710959917443153552575573036090041254830864482483840008706841672386132806877220995963140721183805059500196891325017835390786773236289258485052645334641041226895954080409677873699693843437372841395826144981362601825939144124741824478373159115242864737853317209305631950750362906930240583129953503658157866274341972670258481111932022859950719008112454965669331463211138813967832942629337629118244908632871115195717745165393818147200135059904174850571854870089884464737117275922639267000563918723641516776770119138246593762849254552653575020202944045859207905400039489938549241016658907728726265870879373462084705687893439595485599602787850916848817328127589886143969874569571782560005282851214799933913607906595138511558849673484779857227071451386820668014980473714514720535508818765137785286445417446385654244009961244837229460119274454110522259885971880158699624182465092786355749326265703169656714203318275878967543416634857068079214045112524054467069439257729323285698282536230486654816721056788703548011330789966628874586764172043716985168802712638274957512734490719544841485059959778340751678190442760864630221805430102787093994177925646457299256227798022293115684287954986871580065766951457625929115077044502422747013108337765021579131543639990093355148319919811257572474884703634222961923554398684278683968048530754968621731432108727510967333662332206680578919993640422687128504111700165499846887393146267681008971625334102569463573106159418028938620698210286719084127984699814133719094832945641743154131612530787871342465040933259737519462265132788902234118488459201057618642775323784021833270625980888250271506411525097514813192402005954456470646331288539393929092936994820556434049230929826033266322795475935945771196920668146540389714028316306019282081191608305400524843971007263651556756810452346899647298576243252956778185246528920180254058682766392053175148109439542632657994347384227950746737447659216139069593638424366022981676267926584069962362451911877777888656110199298860319463147375321261685584162528693858168177093260039417762075247597614271572583168181533453529109740475006701931316029923840444581415754592495709304176553031407578141435984534622849029444211817154482612546291216192407139673020041465538008541907623792853427067625322579397774999888482935387458800003566023745583303563201547397960350997773252041137327569778171703659828489051912675402475681651826475779622615034306303462099103760066682663358798220993540015037059379257094164423351208907942926161870144370882637748968037023560092001007583199976744564569918842768195206016440933538137939937214887694410808832519225264254371558315595782269629423068057779056413025317616844522490967402553970933681687639318631603249372974515996477997520303050267064579880547617577312308732391130717311123890721808832969996321592656112534655075815775215713592886598524244160216452095706688303365687676081388179293886255910527629060602884173864183143073452322532054613771185057593963126486122197304862916877409658785826006331985671404808425471920823458759812215467649336140168213098919679258725586018945012155270493305652700961143069282452105311721385910398731425826887279564227535398149954043041113645390187508565099806676226291876750370839564442726065827499844282134885272617994234811509379762685905783842818195943275788976598257490711855179047556406668943956927082189688164595582331610581377067501083238678479034611009018882727496028240076021673236887668151797539606245162116102054616121187433570099597981979406991895533639709444222626733669127282390136293217490923218928954142561639902071784523233287715941855480468392986913306401868343099295334350141962869094262680254064819216732178064396314901771880833168613036119661612398179316640385352388258047795242588645998620034676986694234973065376387858674796683588486877044990917608888300588256980487383542256375298692845504406945191240966905241726401700630210988513387440191212231168238204818399426366186727070351748022486692612400040528575211750348097160249144990078140156390280588575021866539934677577049974247165926012715739337738878794452501448653752867172164770728927838079811161567285471108057509450684790652066364999701678842538566951249423837226456315888600285352171323659299945162566469603838215196870559513341886261872159760769191272647077356902122170400811829464170868510479697730798857591349149188751004033103192416587033577064091579775956056848349814212365662439551973709519659440130492382472079608237094524995020834501738672675365511696136109266171647177469577243183872117010070127083035321085315734636815413633357526595381230621988320242258962809220778910435074550628466697718646661919643208973899718227179012227146443028186453332655150907091401304375137872887794211582354046091381036377765094531308896312525262534676934091591508571575206111265344304003222567543000835230029481992109927004606540599366302670098122059723360733035828285207557812865196761385983195448030204868837111708269518257583757582884203634190626462476742201735962146963338654118159238573081740124994088854828218989960338790105062889231026112744816322636626160866541000759922245852525437854577830432500584130655344075178899762986649650564774571266121180612850428306834700271327818736792076859637663031245078264163744899911473743444956110486727625386679596219358993634825430530397103824693430671691643153924985733408040949642419100384837420976364557569067877809921612257021890880076243007408467640652537978226748465382270907470647410943213589478665737597775959953277829991826199369907297612742762079202846924312959232643348690398172479223854299424429610395878750344485482268288720073557362610940578425386063409606364500287627971931692556763129255765077342962444018737928577711365733218934951297170444960153022981754535037732386607171422093032721180652899321244547980306504547233787823816864604650557871527421032447040779589761917805216508091177075250995241121984038217983856337286237970187794047980969605759760850080257865435489912193307169375899182358080576204665573469566316442756706597557712517926043021045728862848010532662901744462568889602489166905618564191517098467973598868024661901486246955895426623625631254482875441980285841846617532949968290275464882302336692906337924920924811942218325883371785316159515298897689914191919033285006322193441047478637260413196335012247592006968393296099608649472175756485279233588858335823259597867169697917785285686475745324080554956719429776109229915063352999007882659570316886982405491986775284267741547820786572970872781376587657524080669195072969037922820051195511314216653160533106864810863804767899057098887931039694393731951206286418285697026023649594710863266532922262281885593310194425605787486972078015800611016525331789999513505207015636442971179579911869274575880596001056189615526633063685200915714392226139050357606057284678836764896009586131019419637064345032699911103265897359578618781505752890555492294905428222234391195072858692564301270021131271612885993055858960278880133126589356824366155084263899614634871435282693641186474339043155140369989950317315113028520840211401681822567814317119153179148328392815870679332702231655289146470405361553323848825137091315745980233114189652906176927926173924290198791494077130834385321721087427254009650032045316273421733450497986963174261274976255418829489672129946787287673168512814290072071410960463787508190675899321167477938700347575204926796699599793809706748290476136323851393928109109838539461063903764960165519288660535081636536135390321429225852824392549694212849680166702606784541339416696148698153295229435587079442588923859920017760846339367456453631823225909525234123207392068267373720196508116572399850077354291238967817736813571971347760118136844491629006079784477290960434576916826263067706561741118836141327588066935887340482106074469424080706169298848857297533595657222525265111372165608086626662342574752021363288801202516433154700466968291589917643641116528874271656600524968649826347808282675180479437755912303786776106415361039629764665638514934515344991689143466392561612923757631063242190825446261718419930107193271055562436625071906112559272879943034233665825922780495473560796188615276661554045531818088219840883375697929346203986654973746708384918091474537539763718838466283396120439654024117886249997947854910968811314949984532005323683032304351468513004234212687433847203370286051804363261215066557825386732830022711144492741125144285264399305319138784728425381932377054635412291722745804445109492535354554532705473857028291587961055316196109055605928009522418169701270321478806549686533981217646208846779650161678575242243772215877516904148589494015311070030760233063907322469244290158122291670218191272480360863117557325620687949764506722102352299799116944288080191074067565582310948775285516168889529683251226970204394412474184864904956915350908180570218428058218382344415455832540376523511420349351298708425564331917321804667396845717072946644594249007469539820037507653158424299022522073680769076285185950636713383487840013979821425699380409883409752036664875510348088012405907846275649835152769528562863387167633225116163343031671149949231128770533986267786604903449661906297705794239861648303704872655932380792881476185156429784873512858884739514743372124155694760892953594372119548746562442376713494407868683291105740404256373046336364668945420536521485384378264732811241843877330089430541626695334244355862851152946966866123039771788396083197466023570070540618161102364477412013116744807466559941537292450160808392758227710241109716292901504310818561219014830249370816514148467252641541595991094996565869804129928462321634176902488710556730824386260097714736858173979767872184256222183305615246881599609534357445114897761838184316201353274731640592852664839837236778418920205363689112551770623430999507604329332047644131917022472512366949742075901320839861565000196209857637913170113763456608931574094850013180249187369119381504216798968764018596629281924043169077211697975498085777224449558981388500096719136795053181246454499391061939391238830753586797410802282290995814726334604903349018488096604013325911129043326863401533444568693721775125051211286151511184022169649848883503136120179480619663238653781195845425534785170716972669030635141332612347102168838161114998807801624962562663538020711881419151587567728015053420582257436939509013468874172584840441685862508640501160907379142330183933624839718927605039070435670098462459705636931274649313906958589738591706899804979996549370342414011949465222020711349289707322533198058761294156141690942981227741738856532745478860374753863913165105775728567061016910664275694706503563527667760416909845227211244734539563722747576029815406852583179093294533475370123179051684931918423921176671254907135988829069307639238081860708666871467212307670090590796248570603638401888971326022215319560761537166406409701493786008497549377838729843880805986856184181576385993494137074592619574527770508387690943101011978767111066572858963534746145973351954342476345673625140007463087296737850065487032715775346995547675424199412411548110489424270889864818337518038346756805989454866661786742106476126953528546924760919553091000941600794225629803211048668710023387306843293096506142560002305054265084721045499833985823098343734385604608547180704382681515400669754797867413894611454983542787390704855682296279751879774324644752713380729558079568604366241751614203933161048117940069800811638280919282245315240143493720027186823982677357987094445087710572275982513915763072132483501208012983672466988096819364528327036701593677764511527088222055886421202848746539250841341433810944733103484885518494591623573866110959953963196153057244268650094172236970468541962930588341339191245108640369684457926432024503959129018513665428282705196903880695804104308659896099745443037211092321562548647915336096339456402228822810028319552864470050096062209995304695802977446575639429632346687453369942501407731498396500243337917019438517615329148460904455262570690779338997745940974178031206641700034018738879442469681477113718391685546905196412448456040914250747227939752169210185416278162514197190453202223052216928972944753082155052423338345962184384601026309474420543525269317385910723184541194667474580993267378327064046327564919446833551464537637374077793988553121601045743525823015970029590085144669906875855932040535449884043414156815521452769299229616374894990468479038092571375434789345899100486133948856489701228026089714529215798739230813758142975337006913941010991946844333351097063806282267045749126415698414680942858401497587268568721314577565574220888277247549984939323881981613156986369571025464062609276946470152008842042321217044138032654844976315841757748335025578925063561516246954151073518702723787583825013016753191593260691903354906481981233612029601063954690975156190807828618985077658650797966255121770394579055099694198397044413708201608929782941194636723286794834277469573716488100089649296355761637057216626285939862681727775716488343136493295047972271966072687330219824899118088263133844500947553209527642856455896608830870139904991766673112788576553336506646582007867770053449656531524974083311561278499536988257140407716808204712153371933011453334505471391428505160774071889639123303272073636286652052099233169594461219697725995294541914546418299590221723765543759619126698579048166413281122452279076054845731776597161154742912055431930132042544798195147550343760861790024346995602310778993907761454454115516939339463805420412120652380592031297089258210888709795771197985374654632470234001018274140845623658494837392358489420698343771437251845398602936010548092654043849270868169244850161081452300549533437001218567937116469738222807569910441770186181641068452304606311893058214129386451082167405794409721820521197444788703942761851693179615447042007761294960754335570201036932554737740695710534486491475519311367784734803009486129901848656019514383275171056045432539507870138546970191678678831254313615805431091933377507367920166253668633086940022068305099994394664475833800069467996306653044739073688752748163594460761396875937841404532157018098805212571013718120143234572715829704294952588695101612106522561295861900891331761436770985306263739780148195125361503569180309589870394802827528676476594986321881540501759638099875847479554008898439244783215655247476945104907260018783486549928489406518341945370377797710072762887176169735928313450564303316469935895481711899683035051917405690179538149685936870068966904028391011408016984630481871450873133988661958235036330705436851716263836173542771207045545659678416054287905057992447827312069633708036687891985041084480931448188305987220274356394963042979376565852728913297781852592610760075952297622327160207480178769744897956764932900901672791516387430007677991963969935552221064961602263694214781994782652204061673009889527542509560060289425352588642692853893439052009895624561421379804501479850974679354044261351861944920795267450530909655568528802671986340580531496498424366510597569474961347631583154227843212398468712564573172511891206793398479815728485731553776725946748022694833866812267682929677413141689875737215550934366226714695118624340989973518613180849673309224291852449194202221979390823929123538538636213569045531769847393824224992594523742622683521692422472397288940765843002414988460220136157454934050908978187105911638488017084137596314449939370624452035041352371105716030809499275743536184722677562439766616576082812737653209316694456340369652159182718917698983074678064859048796130127287197676034831575604111120270530158452090287166836758813800800024890869125568271280796585805096473130778801570696183918793649259444462742217404227137323786288140756287375373722075399222124251860278655908209124008048414625131095618591579511985762584954925721257322221665560733276038247015412206333479878286686657871610263349408731469859583700817065197345332436437788808868667609166283342554541313325047325306365692377325826541579643539061600507549859036533586634308462637381886880541914049908365553838704617124426398142966308365099808418925245591099073632387965068752529774951320584873733566930307725077371153456301531499316272503128344001488064643502879683379293270665843167011163934136592266091915484745382630049134887556290272002742678545525799606774876889049375615337710527590183892180317290466573596171132428488027024829984535383980178707338182495398641748434103584734347803645153800521904898501010929132089197091414409316172435185381797723536149957656863444134013876099097963511587565922018977200333713538378577143450491872487211590330531033235420873235974003598906073459153204421787145128691926836767209265630495319831720825741873570354764810861226076009385978000250122077110986745248892366110431273059215975083454206775925662374155555316678350848566895658336560018139279262836198850018635789666141342713596474095377911774417340309291936444428932819495345090223491467334038485015415907954659477740451678599190235710497622571453238422790819931269496643369204623978726436407314033011349990444640927414984247405655753417201482534528195842928265335402918448758667007051873441529076984659725797446181433526695473308851417030604911961764199622656299839434914527401730694055166048728295964176994448684551814697223553056808269291558214115676355614147437159824543539942352149171606197155219870903044746239006846888903085609060739192588770198354048995371805381660286994018908696915846132915998500130627781005800766357243742732003177926811419523475024101890764122433467193898593282518770035744317538482915306726196171470989001387539604113300091628088979015793129139947528453464470747717365123105284491946450594004915183291224658610372709151459499354707547987715090563693540749152842064683544536358615629547540497349889971260101504411705150293757338606977332446467195032548220487469087612871549376648813706318703117186148315704355519288631181032200601314948813458402749177936495354669320005753146780904877008259933673471218583898403013997235519322475778792645628655405386570452032085976565969306527270780170105056057512406617108549740022038464490755370684594395580576188209137275957340786444702785438611363177125717289034227531894743049690836498322150774117364884588231209784686884239128132076721186131040931199634851842156809822370844376790110268253825832138054273731640757841617264417921844545484232869876876645379212991313032079772191223235423204404658788389594272811160538813800401516941283268581567667325026242137803381412122285363131468257708079380093906844690411049070957583791783319994630594906863614720936326139533205876902736344361951264090459637570004794677799800737452981130619911624460736828599905262583438549400371632904462797533408626408421186982748115195659431947302722786930632915037418303514698462309614651406175454070457787895302668265115910288378268501012283445926115914473291368792678637641965932120563129324885067159393582160074902556193483240200690047865831953955460663910855969176578642392122908894534980948436847659111532061549896952343951808055153069726613997873883478497342961373453567879019564404094962493582076555747677111753150932081176214620943420595749624808965475952023400802333326685546933468282982443344514765894198560228387153584389203879215684157359220471825113371601163873349587973595127224168356042169387929425133608031076285882837030353373371947518238724054731494291828508752322619274770702226432407276411084519557037560900155754610831008784464773544413264240445742612616166447547866693056496323388138873404344818887539944949014963498422407517918404546018384306167026619191902788205408575732336377358062951398803677596552232198833917451664471308418121567905891623006982066133334880341069131819228353587609468130363363777750554404686700658831971541817096786297009561251863067162991978104613022937855147292143897477669320674336142766790160937049121864795592344197631895854464793598790687807182221563455493612151817422617493888487038374724369584870730354487097728482515554114898967873454417252360585430157707495049735855518425034158524187428452045706854542496566641405472302742507361555885969702079322553498914246226896312728960456866595341574410338829387899969477092808954458762566684840812138675634384970075037977674974627934950928768026754248860683431262201784372337567489115126089849579908976205087969859643028508171883402140656890838983147627557272706448306182658459629265322549489398141565174390833595335725394792192130134328484857065865262157115837677075744752036056259396447627689555000483818683204228125608706783902569349689979839936221934663267946629493716890491745653628574691467676261214720845116259327720994124011923813411798147822083687614959734455335156940301849507993752652420318845952829828536488140155642650910446930539521817390646705227620207384227588749933997069138174706261003573165076138295959727177980505725331967571055824986532357732659246573534409145881210697221916778764281662368061356468727512659272038079706680465837158849168016366761041191254752493203795204195898543642919117511322689778237137635617898862774513573766862930611463330214589369765059675832792798711939374103048134399694217198226029458989216053132354616656412769721853909125097583125917611323751649813423364509626882446153552439365368070420086267435628469943411425616414735974085656692829409770831208885492467397652545738837963854836384474846472603235073753553699116428570598733202952990079557270166821171683479071916564072084767417923757701678361095577561344081700689429366007419887821003337888787231766635411176271434074156254124954092592674784611244990236471059463487858850462201342847674063611983175686308071417804248242852014434507140134143465015738829837747396004986608570591663604056244189638904235581336396778157953081128772119740177308048144830103901588733832496432982101093276060383116329808542734554669474187281641190831807730404787758626844234791980405704032900563769805865278584685142655047549022790618088469956591700353253576960634680830413300588565949000330453543495429578306702613049760849997295926048144974703744296696245481187463860941334043986100808406901975450803085069113000630230470727620271824307276896116822512781364321877821498652913788023678406900128910312890482140272979534383617610116820773774750861668351875402363493719028275437439142349090208838667520217536699964443710363082301014420756576240575886163293548426461026720446479898263903439683919016746633856694937712921665365152825926962293094900988181046343587065118474159920465089331171096119362548485965081197985293853880765305834940794681484034983091699611080962792622223252382259360975802638676875593921330206489705938217542005747268726700853542295307921157397462010353262136102564665290325668160050450588092006700398172707556528359347425353027827538940311123555337859350370084098276746011775742410938330295133079802409179776496833350994427675519621818312916736474947141690163831199010815470776261252108614245426655705303999995160282106387262266577430273568508421579464548617199312941642302869912703760987964266846440208348904041590159561684675159878641794439466615478407459809853869528116415679485308367472848111808717922791454190501585171735655156622110286566133096031890000409108367312846550012697974088395075213304692038123528234903271670593971173257814163694038456297777820077595324037127078378539777860585018177111181404412346361877562008071939175322203581315667614109220221441091680799422889945561571065089644554340913884528003221934690467896071035209865326394275235667007721694010674985323769619223633798231144506928823181293328181081944213677007254636645434793946715566429930442134537643823996768345542193686695942430021501000047044397054099427029065128477255682722868939474024353043077846358594289013259066632940253787770473807006172441065480954828142640686509925392364266187343332760663949260101955679833062407903074041719880322406933257546283830191575177586127366753565367478476015224014849722097228504057689487980681281614973695051661971446783717233458351683524019127831962843305240277604222778164337595328567611248657143110310838390393067143113569194027653058314031716343362251665302530994993596518607275812523157490218992883934846364226577024726651242279065743924344597287114602298604851272879808176212453022110483643234750611722341113498092298500267475180416260988363880384495011738219327676026888476144951288736401431674239869649116392613368486747300613663807886328818145754461352307550398524967419515169667636924178344481621391013586718684284962921049765135327085157171895689682123438755731830093426200435904926042051471689425314583173007434285205039839669090313051090098137439148626399130847914581001542361020607194077286827220956727548786731377953880328042557195918549744060871442478799662595463715002632030151812785076768752554963476956347058972364723584915650399883284712569014993293898900505172754501519165301314980359022442403271989516767200602665393524120130378794821777179533419393711540794966987678833127790862419731919898119893851464005277567118918201809447207441303250929928744442565595351232114037402159135718389006879447828435036408053275986447049696583349321476264012529885334311337954584009410384968494619083619106107769607677066973086615855241592446605653715944663825972246193146139056523290358782956494565073078375821076723915668426310510651405385883644124140048047256908872457510766428638668051632102530228986431393567679223901424542357586277430106030201275271011065846450607261182991074830116591424060485024367272594042974457843410651722981452496810493425347753359203911180289326566785457881857777556061619438953440565131311567086096343036932451179322393578987049417448003842961633083106396734246300760593750168051417883962765447388084179950399486352654332441495401325228406116906558821413096254105463992222237279101353862835786596521096854470762005720071025612340934682532816498997490699328257409418066997085673491173205543051248117089409298157015259123995532818413823515459573493327793311902171849864135183534119147994000801727288276428972318039946785891110038760791925176524957796697497263762494599258693996519190505856919671406227733084544732172895575139356859761338059227348672492497122866753837933270741619830426664817249499562671004010417094505641435779715328583603425589390961932977639592752903418129659676044875949836437354169580088416960590637935863103363104639820233969696732837169110377615481460589694268010831305422598964574686688513061875586474853239071106559868232596753400385196869954632669364596403357483014755713594585847645935934667880491120443276359421536165054758551276958184642846498887647278286202806917275379383319374155873451972285238630895773041409322632333765256169100283877231114189850197519433407508709233451213936151703848362199848352004725581406141296766741264960130293738966783730841388624566723936242503660806203036073275036218593615404437249073753604765816671553048578045960532380731135569797955520306746905814479095486423176751342605617734879076311750765054215614489377912158167894177304923017765774568911246308634333255297341333602445440170242142800520593615038213439156577201477673027442995331216171938734039043190311607730536084761152082466016863612285096279605663179674923160826914033245983359378473210159837458598923047737443893408035086754854128370678457072883639768238224513143468296600698550529598064375612833173677073554057454443630565075705400755382104928840229400567153622753049759763472232948844144554786116825788918816847499490582815554133244410275307886967009938868004000875015517943786312681509690176493981754456539697616676024864330174061927696549873321966936363774858645327352620631956594487399105962857448255150273763865891833087646651733699651659519642269703674148916420901342395534699003324633844797758648019197746588816044121581315079802822804526036837222105737783779711528906573716379804479877724774299422320037342389620289973987570547879112155566133031161708574236245400591070310851521030490254894304075661214506580186170839744616592175373130645342897020942455880452312155867960263112308414943604224703682166438324741907313993148857127978812809790764756952631893985532405216326295476177821518686954386062493644842578223018592262603670395708628693753854803373132320626078319311002073325761629810631317121584127200928301273068953529505419765099438052917838655340409704729806462496787759193746517383974184954953593350022567888465577829885421446664026460406092733632906237406594401205129877078161636921298652099542700239140004000633577187251177638655069614684560049143736713480704691192274382610980445303362929495823668428853043715923045357625751055587443849181298804918060858702584910382550697359095654659256021227183409800320408281352835894876371655361259757906053901436231061364530171252601602163592225049803581491032511920575013611424040471956541233549564032337529675095156059410589834367183685897228276604199767685691913386361127494984577390211406621813600647006183019874892374642435916455809131373826602581890013711320818226984863080898387499446143215608252147967526094461140159494361710163430076423098742888415108916210801986317551910263347288786621435503737390343283609146354423684774845159935153250005718190738301549877968595537197383637670971620016365019627187183732177392817128238464208920640264934658865795562703998658751983448542831917104840242117990936299947303778407552806587345443465738895024237775565450747854266270896426312773670378139244349533834252270638174299507390030226621332519791977724946619391899222603851335370278529692258439026952193146405979684611828357264754716971037455714884288254548725074082785632273012077251616368681500169433823885077404973975441640073833971814255735109823972350542018958952066886948937289925747045429597219735125394155940902346933775310963056407863109423310854734587950945499535264604547788591400076786902993416443010292898793183689353205095087127789431759398979138205105426589102779151107543813606422596054331062999112627294610997791318705326848095140697942378902030574613992303252995410527738849268261756015588250658947000708388920848023021356379948690226462482071475492491035098301817388869321169212360984683992643517424968215832828667478562819907772624008868977273038704882775794397743823296762887200277731631305773972080632359090974621971270979726657220082051776472280685104787574800243997821966721998054979138256247479057798897169963004049107110192719159242493486148208017158863423097051221564668551402687368831832007709538091539463155087396284594306332978099285803361368331415299838713969329743222007194491772847773688301690342321779294956252407853883372576678783153709980876642378803079255534457145319071863049088953991773548400351004187819272425384674712150967056934326343634420064059700811363032275045592451020641259843966936041373338395026188333307241943995133610057989291832157119660859877345872207579253879192384347225201580882427948183997656945089534783202937427715214899682053869349991038519206616417783444064337277293481878910142360887120726597333411785932354712753908277954330016771297966203133024675657319909829211576400820357000894931338127021111134149865195588151240079741450761529428810939991396446745245270275661623851401678451760540524808095296600313410380106088355515780088362901996558051358773174054760263680639663518037401138522651995252757685372357780257506018820038076395229167112002435570141504940619706745395546920422558136734028100064753985600759583428933259423430038218170083602395641787063815715952085598766191700683122037659561377643766240152018442782205171777845261343713892565211454826986930470041894122635158985513000510442107884289174924522361639712188042938842966849237814715124717594494288731550015512544609396275744225740676477641071804334915436978260637466954610367423380819430103980239827816138269675844310724747564852894548219712050284629062401796939402062343374790409720288917110328447256393502135514556227219774202945642394288670953183513219473564997783398822695964241647022997526139191228874627519656665835957087565806399437140956150962221183527134698156177872938101074965843441637950441263275958980400081286255557142103233592816468351143173885173509381995750297132812722937980087345455111029085783938748656428482808326397007580978781470093938288624887137114842220035668670644435868373312135579056852445074068071988269888824789131910100330770835611571849464464714310244038972269559712719280648031554733801004030960544037618395350802632983984568152059627944512450422598819735056459142734069650915926707473121968322083144902495101412621666544329758563613736653310654312879640251474872547881077501970931324861549505972966194179996650522465960308963569159631257322962486939835834531405021554564023566560258288812462142815012568348610715526847216240182461993762865280163288013996903446575989539165001936373766614257287408788770175028617507968781918484653928070175137546437871805367378839237490583952654104915633804831271263295644863648735401871033622204047012805898215061604686855989901227740263245584424518991537264802474085212517935172998029125074693276756729721384295752629703324457673523146880113671227088310145376819398365576836455040799045815055298635813735028208181227162001365565496454406795415170001343512651431547487369475946094095873567538450888611619643331025388544672397984056958329386966521412619123363876252548346388755525600228452311924362545261544231993526915707003912773964383077285294145946162270284492332512733427470589476838120026021595060415991754651265104227698511950901641243503228034225572719395458069965818116674318220312115848859686884171184399115145015130946210186089114598006785069833432371349135424510713742182477140035511250803963623022094483109903582947777286338958068472287631208063018692212024978521177605575884029375303977410983501701157390741469487579144825253462232883894872404190807323492595918892926518428384305307828281873924289263318044762402687958257048100245594929823046104802202174385968251059835735248387863819046615696257923683369345226788587474549952070923386612791502184128842541757880092455170151403083969987700240797473513193064586207557927212242142321548623248463061084980786586323048888045082259263620342338993671734167384992418262606401939987228382409890771796533671453575551416352344604818408841439219881168642230499991052424082701743826641576214751199987553899277877921081870962979907577110690321912205159112443725965737921811579442109243888139931062050516940692909229622244931217146546636119866575735402113827612549838231476109007024080592090327105584486539635955392933646320547886009986805186021034764484732910266847552260890609595420747390355008740869699586861800958839229998394188033149264506641048174198968627662358751120219315696937095941464178283078824557533977113209566564336187891112325692040878048069581085823437973341836738694825703182435807720271105443811891524558200481240677280185223870775063122954475084446929700147155735952868996332508386755612280513730153560089307158728047343782155534301522089451271193515580252444391324963316338950477845799379931252075405733619089656562651714620359540469729939583722063584000119492640852334267012955194973934326775859479342875634652181543948120947812136020589537481987517685557678886510240310734230298750395865917159759111820308340128923375838644023736117225210382923032359413227207873311600665193665411137634383320309269213670319666085589983878666334742738923107937694789995797521797339307236680957650412181825402235387692418117457814609172636300029880294281065310452494482821404076140035391880472728716950011711051412908323521270529523803356022113692790524434574872916910887179755678980469607873588531206703765374189782284317360907977761721502938280117295169596687029770531040574936314240226814131623991356289314702925115906847920795713182446809071018512143281153054435524373948744589406157678077931987058290996686555368270919636742983886200931042460098897774854875582074415595435486152933364808378773625476909095120832797607303424593119934850024334035043553200995928514289223656435188015594556976561298768959375553079593862117719529599513955418691925352766623522083585058080797307096994255251239698633896801383033626255552412418913758583545721733953218926995848310150990709167037713689490245508511185605171320370906380458763310350782845738516763034915213015388245157429870101126246415145700979887945356396003568954843999326551952815625552730894227943568922210107169730606973920977128014497478533594885979095362116518664445395022936173799413822448088210877350526823992723899765525302685105116526682478434148973237187059215007402211650611371964320257396742892225360346335592855564093862446001981645754126100509856576299236972517989706192860727096618510261603858785879700974053554057133477479717313006713376956627714267944845500652608053973652875851654539846169728264444307510461832444349048945072747537095476083272049572274778281639873236458308359569952736195131178314146894653819264036993730685870769533331874127053899008236349328935481946526757247829598071216259405743104492510111570294873345992168384957603692074988897110535176464919747915507743067697509300214430353219105398148428681135856358614319227480885811552986545238983647961531040753630209529247785512833857127755953445911314349340599933575207288819354652460297954984964581421353653416224779949041815405055532886162333083851969544525843969729945361026324898842106717788079835742796194380867473456858781593579059588399067690542211241293594944016987812539274697643166564084675522386119346839661992077672469063679577165794760632365041578616515176315716627570530310278731460211458750815017166157104178801256005275080603734810910475541246454165991362384621779475423605073157365205209289892237669757379347373463086906184319650271025973276351783056779032081919828961164106453482132394374207858412559081811430382649072238836617953128369728301273205965472698664415836457325178515062245548585883211250702381288244286416614212248393953825886737974092270076548171899252388086372065598419239894204719452283653188515581800457044697188103650291179576718547678655034566615103181861914599492703395380067225331835535707657673218642977708380961898636934223478872392986522985394811999170480425356796916227031797437886499741585009507859617366012175663860980559358577768449308292809752391323757100280793255480976435861830424378042068617839309318780609597778177720917884301864962128961805211234160130692220399489262155671222214998924469947558854245001502213095152123297939645555916660606830449976086632293174886228713750692131944474244715715183356056823696832013464064307580523924031119562255460263343032480343664970547948776932073140226664228813153648931223111101775383678254185175488251944130927574076959338581791431198770411615308467422852596895294462483889060707599612774877379117205380299458781303742838622075853729696681211595671406459097456827496317280461368036286540471332884010244068985950590203291378078323009545940777336365677050908443866495562693724094361052454208862175424388840334809560378876083741747348961398414482472661373234036933185767501864360078089139894693020872398598426305483583513798211934449486626467510330907505733993020200465843377787726525982167559411680721718762477512360794975204067904932647570830767907136535301387562926873753384460256071269115199551090509227227662456002377930251195283682157177308014436039827759649964975111612091647738915530060537014672915919961171525772072489816949887711652764218650103531348172947497901827687032242679243873539769097425762995734697796403626686702373711288694800432809074668964074872446755076935266371879175127824018924054037921386827040140422806379112951451272185754945651609405434274690002958569197055617212406229275683707612305457655699677374155180043021384937687036959102037443159234931975012857170422173549468169207349611152581950702264915645902305220536032133621634643006746438149023595886129628503739747824738083236818998851896889030956550324135495804939310617532722646007787893419784097585281488776305744178627551977392711309867264380756782613872479842195614834314287217358376977536671354229511497725319772462013265038638229976697360955174107218474662909907950175528162785753078323611356793511437565205180329179535835131802364416518172242224691239798281787860746758250354030064500899949154754934542702661202616934125331620042360532767744858595324336693244097883271789917614721628788783018283694064893337462603640893729946774832507554773667498753207617737987581186039463622404009563966914944924927787616626863662648037199068587829921032490754912531220845506268706368589100485424690556794046035482461345156239582548119525190727588191707271268189484503948427321955730597452088962826897520085223394097325899010223912865230819731965796292218260556770588812589635556506044127827626365768019756890106561404738555877256733805186708124977035888717362968473038807184040443992278780896352220367985385460214154108602015778996526811503594240980056093977492189948997318204472625438070013023826626707564283236780929515726350392034569790557772063305381661896564807032007806504191554522121755312218325748284305708410528960269675202009961887436469087984629837591860029280850080626315192966256103837126018338711555340128426979758780011997339513662861318314758014687408046608436026454682551034025897889256912240063219523004374888809044577130467640662931746718820689184718405489885839145540265183457959238842308862567382194921620104466757811939713733127953851485194968687464537536798945431761770553496086261891465170690858106716581888874264721915672753085548624811648842590418952231838890487546022594836459231759505752814536373101595161779955588537906583459320292837023768582675430631724862662778873612931717376213822606512157907265225832750614446252215170733392676166091535247350661722250465664036489231984986680694394199756331401206086341499696054882459435735580498741622623841210903114512488085273638388325300159326907711093466169522806679886680912551769726982734301767490782442927373830655302707608183351028099059546040468661921626375373946111046123706422360770648212313304435153254941105781735552689336136423546071974951616360403940806474889041812647203025764771253535640218243222648701800854512196330260658585264548790082130969227430790339829338165911667030933286763520499141472172137721221875187560753451684181958433392394154678487465867079074843174231489837619883790046699873936162474844160978225628197681479241717668209147366289241018343371127858025434164006189959481837804042062356451984959346953170487385689847787993877956015279831843462444189351104672553187178721069328500165128154770242055924827380176518973416466784112526585546629608152476079320234889553967865623333913633965051651145541561903497991403076751901610651504245980720993910531209697680554346384036695845291357319430589059675645681883210220571476268157711829416319019643876557720086419731445058430182863287764825307590095247483158991895369444330994146297671104276502574147923189024784684176917214195052552095929110527381926337543308376579830356045148373858559220324930923450620076001935265483666629389525246702646821164026757731725932514424363679356547048132106812185842358251792893598823055580733848949819448341322305891604927173826316376450278375707220152119144552115059099122133021687032342095339845203193410395712663673429037863641391118261772302097007757615561040198880230882475190175929307521411211588904042466321273647435131039985831691089463355437414925653364445099537352852728710833994659387551392957967494336357675484096057735118956056283253910505325043560474964006191682399983138156544652422417680170660007800610734883795871045809735434173801551212469274552863152047703136105137362340305037544709205674246169479261320965948461835080659043282350290223044456238488411826001834623145208042103030770299788502176511171344789980169370906334051878981992127971862767260814018459914482489247079157561195247186613492881527515661962561212256942888011305312014929764811885627700114127687517946212071465328982390134395268384864773734028474918376612857821388853775500034615823556991225857429539082586151199929285275671737988102737377267019960802689258241593579832057803384214576878634118585109036849859552101895272247691210681881120146407766174590060125030407734703221736815622528969668233121522830529992858747377708060480532005098003329530631439560247363449160454104972366535451827761907946179955381009833394387242709396199084068361135508958651148611066795492867343393199130097055014465194263291004516180639467653671692793742194498316218418219097219723111721152589231177569578326295078514602513079762236594244153113815737401268912123314494236005170202716935081715077129812686343246510537602900259156725301584079689066415089975084117127849271747062550885677521029673214080291240229254176408721691452272374517592592180338381534603298606887062675100137053103735316460252650460069160362334462257554571199756493364458245206586391997927504509914749030608084230073580511053000901358427726718343234610914911509386666253345792626213850918902495559531623409934622954071397936480551527976110993754507765047932328603202163057167943872609097238886116927188674755628286671403195253953879512641448322285098833772373530275082393410057539915771092252071884326233183688709206663179391063892462992769617856535509951840959057882357869480877235624262001892906602276195618362783391992263135724638071402763780393625354608872210199799303644031430391626536953742757084135514357041043562471168485628883933680599043902549773575537530133581964049345906273911363728496789781764384371521089778862215587356923764705802029523338361315585767885258131588290762314077863380438937758279323297846380626645343394302882943429251257039609426453095179463799987601394040690292100397229897419057907399463355605661730161537781224894152921757756595465091774992161897904178910434896882858243771757958057679458666266082146836483248635653347601275634330782971148944446007344224517294323084637260348673099406634529990874758442294911438892847349229786133549280086327379671975723343518925844846638476818540903709218066119548417146256389358633261334131551026366066617515077818782509884029513832850561718665981199118225371521063060258111028064929677587172448668425122757005704670243931473567359826728122369292241145692540532050680237705413953832111214488158656526334102140290436980080471230349678168267516267553353946417870415949954146640896459660253207966793051687895001256032515395667219167465794310551897263037121766743192275363998298682122198787267805207566365867061994714261123004457443774490712489196778980425079999827411518481910712792323801056586632865659593397231388152078615031223733276271346433467307850826303907652161525513129489755552437588197181949454013623506612571767455131935350025983491687579390239140931361783222252992417768881803823288056908139622114018164802268518299269585049036169327458971331262647943510265841682491175934741408998014409329682557483716938454243948418630971276355994065393471609854640412914956413935692319985344150078964433349195927934509908541873126571099064680045931595840811071344523360106713056636087788333949778865045608080546122565570395666486400061886998662964500341104758778241947959097831775392301394921825727379034909056880361325409281074968308168111158772631865279053268907249986049582666136092039473072413617641677940950920008951200054802350619443090195939863692951243821682478820510983195261505769727725478991676177207603907764000182841612266069894042447863177833331337225465649278959468532341357096056890850183025431277602895509686641752198963252640987328992793534115397050427794164139429938458950390409180807075521707808156380934228866994052980375243893822486976368806522099552857703321575503783456167493438181845776421776654730016220461361999934853692849496833546169875181916316845188156671856222475806622030909625417428643892169743377105317975459514114541609280274290274151758507139570871651451512406306725151645515066031982961646556221604364646242203613383194012609182552260155914189893493448120329567255228375499988773129680306391959798390912834384684543172320067959800469726242115971512055616912563965379910213662598329014564818193090761559589055928396170003002618235451761862613007429176489362171739584062949476678255940009171818976901370647241236263000924740064667776134014897162838125539899809737976542223860173882923783237045692492728178293000855293081723674381323405023242175642321249481009951973660157382705783661758240689279549079402029755844659993378912533571222407574136447191366926095467303379646645487326096426609141393395471486067695815245176027316445207658997850098953964061601692069381632464382432740572713013316246823511629134198856967849041788232971972815339127180992689326979498458492045036435287341112941845022687619076659242677755759477206416896715676675992313180848050956282406085351118407974528943438040555972820591744569328222667072930060519099546737081147916462219716111953652608632819056708583533044599270607326214583422713222047133476745638019383840710471411236733258683171154041977434185134728522768075955784421051285982181750178744491344354957932648338990814711644737609984798266539257775725626355468492627098709310316864563204475505443919889999252692382057144123893703111317528398980723719297800815813136427409587088240620534399487658324451701154495845588089516555236723386670429359408902370615448074682931820340454218647186929319319579981750935750085863821150142170741603980417315284758997701734524182268931144462048030401695561950696893364367490334754184512569682129088630648351005402401463680184302210019844732736239584290346508507144387016204116584590191599425988820188447040298789884933750841312521745077080285710533951316688340148533559072956157212304589568934664256244369031978814650056174816699037311806183153000117652022885887878653837628197757572748491772968025006976828574301590693631030008176668094293221083143423891746781728819766168124812187808304706548404291886371486713961457442553755429333734427986667763087505776853987994937287828358281650186871789221767248904697564500319469037823984796961217650537176604228388947928716424794633178072713270037952492771139525709630559894635544365959498975909605777232262798891663300444026355500812306995549674931458854484312661130741576396585561745625642003057767690626405492662346069107206380456359660802944260860644294131071346145925429635469732148164986690979862204430566644261773085655232986072873258735537789842391048777267126703030028751016531348493019302734182094180092465155590481926525178769285105848037466095053638109490551165993416090952161662226752137239173832451139130884711538798242094109679788526574381354490694391577798019944037293136585133680782965033871571770023025986244747906391330544751002905616922824519539704901702659334392053661828881858818791750160095590109502195429685721438034806778490400457973099748039080990546947048233872470342999234094821725607270839639689162566168610868292334088531104891019250606393587614125469273155944403932612980802550008392141209106886977114018139256977908208376382401968517418658419204733511440670126097377568164791309807883511718587027040774698711614549007419093862456948134541041420588579944401590992368452357114589597582080844235798103841596196092362974629744076656496943493449668759195022432395758428220614143515376659861945641824471002758536458777252446764378034698625089697294122956490396219840936340537115769907377338491745444896232245797257943769033861180952066422313725268280622115842616185818128253269798031711566605021386306588270585782305890970393818966862353352070080130544555254754352370595647356843036814596953975638882408049253417437508436436979795751945457322722520880446923008981123156907199476788524036717265733633407324845087630271755560629511667577816279637185423066150446855635168145594955834230431304513876738469021250933435331524546615563472658956282616382398038244390754614134885092467555123868337329407356807118593581775618704750724488584908641392173092440594646478236394957628044501881128020042554756774574537693202466881429921140380558850896918721975292854423288462823206203747319582325731827204183895550716797401027211396803024219909071134957989763637540328624645137241197861500458642440198941804099378345491117926154049534083553365351313362678839175804245870308234312750008845871283648285523494567373296843402139431538831494554128214230386082431575270971065634546380225851228182989780294753508845089758048155535839429020645917998939862288741785644735197208368423540788985022130655043520965078319338542998867199538688645110938955004696461378635638432789776724753936100699506342809692621619990289795548805774860212164926431498456866040701521411539175814792201975465732896031991887238288812699443980595296182004931117686868073560161501294540446726440815473011768829939602408929209440127177919881251705147179605855898138852710956297222370845903322741796151711550536583902007076344922435607183222078732477100437184175549219290528040115202692735449568911741291701516039275250879812238874917487376826589308571524334137783351688035465523849966658598399101796528587002161378459242309272254040290137131374671193647691286966848837826598732399067290084592316963960797170455532939646761737234329151950795717733295171789687946593442658065325548029398213898119705569874306589258605083066087121043137002768485765550422152206905120888988050480941584119009618908464573258193259067921158735043672332260747516153498660925703499145295730967945336477125364428503528222428169504904706809405962288022752224057075727963552573349857376669648441561378118759163432294646429148968908376933362573294360531889527880024909915639148383518592874356273422987112514192963632922257404249972939076852300202411282196929992834478645351834241200635991559812881134801154060647396579355949080853367734576403383470784000282742279647669396256595567617989607759712446120704510932512109602209288479351648623171476613769627817456388244304960371538343378199095204267018565186153082341796928171306858038168452970472849488059556134585633596774588537246784644765564177142744644848199746109828106671210328479645246219241310360405214796772442664691225170447345869466933915994491621171630996114778809597711900324004812259046029311412292000832751466683249072484988153982761550992008462102188904423907618746795484794580391135337684882872331655780404459727081989098145929170871827571591055511701318205844874544162549872895011598627984709368598967658257890355938696229178461411081033444210210055000762792548591550095355284979584009202944083275736253648007890603211154506424684011243801818083999396455820909925553042027198217027670676063245794996970949353089152951509301043911445644043891771355328450153828303365960953174908356842679658253824066011491809639998311781335027100428124073038887464212867593176609078970556260126453957543342782848763299665323196054199654053553967312478618971609947693024384358937499449074996114697672803732007891097977817467949562815298184839963401649746015280537088801966197723600528648778168813930291576360024277540883007330716084610655638011858493939665223256863832634800282077916440876643858612132326082176371880791626254791024358019399240157056540870303574535453531432673996612158013106069347347335809803278547051871928888752512604542043877698574572592364931916663090510597556032613731410371319462962010233100910888772568119580410381478480979637181951469473009081266757215633438870276372213876256204501666069610443343617979180588197060702429443370866435129542568702214695494460313996844324527892909552504776136012554847262993557252906596901739698384713979810022898765024699620878264068064530040020212367863869137455925695377487631074861054755824022469736496088591777118057496367467063045752723187961524735340793524466795288451675965596171138311352619332310513390571041845430524131548232855694530557091552230775833685630766083194106669908408304932878002426585641048667247207253633267393696624700749434278085695343277097200624784747810619625894282184980358490405529877474194425150271727105835720184838878690402424944081418938123391593933024166224185665547673559950189909844248204988360587447429300707530440359002198701395726769519275180596460180133151923031289520594653202870809193139081846824658895536530996388074441463116417904127261541655427902538569937022766494959776159254143531821677004866498339657425547956921524109796105444222049022502639059378289688040574792184883470343294980187061059499634357031104033435046855299335227744225231777166349338452744608092753612027131968662541853503628294279224240556778249325707621431578441110018467275092343820155541650260712273749387396309471860038316554485211576793961022830693734875011943835864592279645817050345769029391545517524298749345911415190917812636863710652122304157472813944796333828586867943634507728856122805738374117040555727342978984876179229315999468867907654189927975827947625823289143917087736961497129443488027995657409831124223310142544099645886569857854940649236406117027165620345381139356767567191124413616888779841806601376604773422525790130335383237735424928221104537715756465306669414715822397485600914283710401379891972360168123294010427186604464351377652891412460122533222653699279599586407945533907617537076132834122010644602439773831702254256962591008088345028572754499209153271594076569198801586607706877678528655674772683941894695039170250907809249984554667532824856626551218810253056746877150125339207518026107204808381025574200527258118609218849506456629752312711270020108007031889906801336368184152952294872058750478442494859718713245579354696365823121246212848623420678453896592300999595632988981518700989769981720593189267682078639136509164260675931875131092982811870042761159220274610402451932047382118882223410251224427716463044942891510297371543303843397276141877699351574360982681539792305890277724430013802641728620493598839184172304119950470802167592961162553974647491191769061256154590412704228773508954002094489735530797148441883673235995397716262266625857282333283304780465839327754408386730444752117575781506394940766065523092334910855656876574405766884054493390834521554978980842311906381024004795491373638243628638774517361221292550626517624650281637492245608146595096019587359287379993332306172509698591785116555332730693645912308433476410502517895298556639162346726141259526359652328372585479915748181711311015638958249229077681142906348423383124534586238060523702475093133024853802261193162844809106061075275278646463886586773605422521589188377998205678192007339048456426688585537372752277678454922924390306952604950524930977448522816053238993241669222062816979789626634871309565230961071950873073493546165711750025846193248592510946494891184451992719682107756703600919297094130368321527312020475407836346007589487054837495670760090152308240120447790728593299567375823083199156417943535318511712343189780961199874665690852733587281055345360014522236066401535407190220980148152062026378395037195645202522505941552299071417991124763613650073235209001009331928957701711025192498963779258108963578863144703250779575976110792238288793644197472607059217428790770647986124440369548728920243119010047374547232838925192940626655010101681363463987812413023248774581143459744192474394692937942021439748813677643853188576577984445183414806333853328399801618092039963081544199720774042090888267660045756640395487692902121072915664593964318756403350427398802842097672486858135351062579608435137007595875956983457891148767030207566971227795846218699922439901231452417368009948407614685439215450647599808560875367132364772147127952823994511147877888279727029969221755735875722919446873632192914207645095293551265120398536199393590468872821851487261753933690375423610821091799270174019912570684174572501982310471426413057889631491455686938150528033692908524036232158171368278871156250317382664489621646584906995788931837253935919263985934518636286179495548044608043526819956144403839001749838088540973520690288789826150145395393955716232179053106617927661218229759857746531073151432867648333410945327983698020730484070228000111088274009547558418514362125535274146327854179952518886595311469566516079345682388909342781384187070951287182927919171142880018757086767333010694520554012155515320358436828984056177215919767869500090277423823415175836887517248443475426792358156050741236945969654266122962037143557009519471775642762384128672890158662418741286579992415392671943414035238289913432140742333240823706944504872279191313365434299331526025749793826913210296814369226408564202729855500383390842778163001009082151668160008842152945359349705905650343766269513503479991903752113985729758424671422651880528642514651263139403894316698190711558089824470460588227699780481346877187988453446508918444687715150509057613596736769981626968184768402123052646348167718906271333354245157601007278883037601914094123806393268543617390255021546402998884742122434845751775988972037958471219595734711957839531964350391398063907421094493333066497704413074096071753156789226244883435359435877474155823897586940837270174288007259604477447641652131422486611754964323820829985137987754081528869178922859913671040841102435953981592306152720407554183001105620969410722050850854262223811027481640523867887927307206538316914824158496283103110256109723963763552464732857187475825392070361221036239058853036161772780525590320615964516736771020575104073498986053906806923382182713875891334773650447395186201150209487113135097541861796114331318528079251121124443608360265354927319664187561606748034212065929780990215008693601151483894466879403299815962601889003061331248507837214449760353234556566360394211501047814708878290419350593442595836985862702824431215419945153839884718099179064815353335305032437090256530414732718681876075918025829925670107086076627116447666483254834576006441720870102978753425571221897434388541616747820392566001385790997466712772764647591782915703932590207121243246113180028518867243201120281579271771581285755006712133117233246199984770441376882518372588136746690980259133515074522660986071390120138474757648810570538044021372624413743262609538553847122980553752654442418707651356350929131063071307215746463291432755049134242255020146047601881567448368651048686083928073960613248120085555753176873574722335494846627277181464578129875622086452036780105436517756862831555174598727238160016219000104312247754435194497480442128701440054930067242461008490150185169509872436642454486713875870444291978893922777775114394655575726114157920683876883937316947878153387578689531331589553786311720623193793951370617706847501763382791155118386935207669951713991557923937164934982650248055336852855759635423813955608699637547701901693659394216663597143281349646461972793507368308693795571823472472386047539523756045421745080082694677271076111232728356574928043916886671424474849069306830392487449190728172394449682433115553914990219056389162518063219193076828431213546705208176644529306491425859853897845121401946101581091694420131490625669291171504839246782165165520240629049543714445299453606895298035252549768497251900013180530200500048059035820903971207498999695479374425429349985073424109027710688088753693610291528728765684168528602663564526527548664204469205786432796999220880931041706320883620837837849803947468501804895671312725852699607607317557015205412037782000203138867393541849463058838758915806909409363713572153940836913534127681548295399623864638923654495219665496337963998438217212479294248261785263718151911418891158154780310360286362983953262527388967047404960364965131598047974173740088130737585095999219125871822513327087462820382595004707965321357336115467496202686046929046966007108018166280348639975679310186124416402493810523372427379348888237552787501320249283913913849288152969235475119482032918026237328928608392409239575518702270562885751720553182572761718423455601955956973700987905168088122401825630477317674290305773035337158891356939239197335443452249163756486103542842012076847749179093113853040497287932840163504373735786719977553849063333628831245948401108742237260519480117899557059201917248846060118994209899321137263462241293492272836157252363678756494025850748376992062845232651434142814900014521538406444494805615111016148326453333341338373631192001077598767130753421613082340540321522457369870803468804702559752708035743786511676615303843526625119952328077221912088673598527204628732773292913136730843603594229065636686962026687932600239251684103932580058624370356754996566620064007035639211058812951141052103916345158959366115225351138340259471097458348573338853046576138766119178984687922155552334560466773263869738126512072742093673161466074010386150126071504041574373466680232786659215157994686113823544957323865248227118702366811222785891561780015762382954179562083456371192888892019456543085579381585771965935634203085473899516910730781033467144439640318735607821542572969108015993052974545416290915881922797534272462879948229421232069681690082755974840110358649575266763560787669223509363250333755671151241954340920087339433473313117189138395312838827781636058443543827784493715760881536830937482283262817996404704482403007178695134883414341407467760168272221328437447214160285341091565118067989466224675623489386244020458711758192072425154439396970522361164293734407547791196850226285400496260330995650718830958814477765799166030971046648552941369171884325290487900704243300058765221809053053765263587382954194252048446371442873308688285637290036797827528976802787149461343435687399388592307514722054818105763661893052006899582777656329395271322138558657794198366780462650653747708105009075500094158381471201472535153337798318295115586921870157663495682495120912437424105134370379474981767364537856085132004734956411190537864288902436673254123404388725900736710630676131429816045758629058203424091788137686555241695427413743941723430771908711812354940728702163193522115307478983984113665926099409708545323425564127381888833527466088072943847021494617798776141261355810346234592062998724607595586641115695246842293014326418219687037087751901401044418748144337525272536748228878601878130972263892895987679875399328020700372199022438061985697172769076483294230065985663389739542074044583223029135453975904884746124190846486140642180562355674065378802191148768303380225194446150359987887805064697503668814343834432764579825582869308680742989836123146437111348026995802051714023995503330300564305792332238542010631943144864767392283430219730383762342507884478326255632524030791495798875816366795767763181566939366073136768402392792421628203452969105253472242475727229083985487426264720967736776882530782622155459727032393797269056577259416433712788883850767411349204717749242239036193921503779073038844651918347066036608797982140900297160372084747562478428751004559724527806437510411331436279240116170796551267634948439442645694151313621633099046131319033236977219343324888319910745793417326933314921337564378333950195651168324564492241814474470077723385943907199103459172803361425953047637420454829867104780862271917650067565022216932252883316619963542937838941718986111351145009158114532651263121710665275777854499949166566150285482391679684925305991943623311618438113171486076909539274495379460081913713249030505857930641769410775718826484315231624464304586468397373376321698488770328064863779604809842497970788352920269443819485587786512287655970475474586499545209389434948125576112003046347172273263739860162815804837520564266925252797523330744776052696934028687437914946214088750543331850237297803861016696680677499604935997677254668092901242333940597101606631915737990611173278690241688485144168873734221384614966038953664699451012173576759686565030279985467239208414964386919289165426304154876604237592654740290605874953060549210847443495001035624485803544151583714314573929542115302847314055892920538348816046325397976758164169085602259289211619575833039723875690064000104587947175560687673956429383060985507652302031394604018878007211675911317346876727253275962896385757577409722583924605438914809445852204283734363486330125697434848992664738931929728977379355811776776529094693401300096795259718838876167298575365894621928251521568990724680172377998879208258284775242733714714591107164536767017355312043165375663142282515029131501602563553739635344738175174577766991043358330212387249847784609835363953902172510934179488010922457777949623466873644402129292765709727153810726167744488079915191628903033425044094077033699266145387267433363985228900710513414034642561341033174773999396159594786137148502349142513418248484828064655025183212768245689540752587737836210160923468315633583275048904029046404681299693179296267379075260090311635380793792260153109633691196580272982083125727376508915360195139214597976679759020820012788149452687520686823043313685308256267030896143510404777268083966144370550778889881300777333986591716729388640071144878969430940782722232954073339871027425803632976007863056199327750930764636738789868875108961299211554820311600944569825720759648862917532598659066165601695133047368007503384989582598479998722803449649389915016447030697264543327586761827595033821045678284994515764637111989252281122951034235150546203555480943789342618685631450450187305507888822650131179964302848430770450841745514706508381947165328145415275134170486715541678209195428102833417644659299631543569825789135205446051333814468344696917726102876342565487478163496985372479541228354476423132598111720064526952216078412946602485170027841899919141030373040031729743060696094037158952970608189373769433832131042822378562240223400020970474683874044272373633953649549574676093527169857485786880059379181196935897721463505938028787033044529778015417580509570508360023923341980222534396446239889353774266786267216133595829577165236137188935476722810374705585951857276990723485327027385748666048720337442803931243252866380082252700791942155884725975251497051809764765549622211659469615494812938459745354183590420133738395337543763197421585830800918921765108753728851569165091265554077610296593319979497744595481180654659370971166699845946012613342173954879518238262845293770547841541702984567854269607891160987402016548434576279942768133638063367335468598754136284315627074131536359412107919846046178967653789591856141142368132945053012188790183672233139947499382194040345213149244315028479595770004878539431492350005586533342978951234144802723454482437248567812324962819032830921348317476902004502969799480229387667812650586163272269758941309463778039167954704725846725539166129982401612767598315080207158563355091143463109030828613497173674296130999029043410311486367943484154964351261980821180962214792300417024055528732211718346404339740568296669913421963454757204198383435133781683002385494568984717329974647978977552177448431847015102337696289610059802746538612623713561129883390489978624479937239144517520661997069184950112874071360216935333730111427026516292497779032200725973971750712156521061535990357524256703331279582906783760774428586665176633105611140516330340031218990899451038131162843855185153519057628661100291808686746321304675293907159530332861858267048537669971583319469253310299284666822511032795259892227564114462277146458320220589405749853086975317042098010372333592714544298893300167161037848456429903996735839698549629182008533678635324168189257416129988840133321523126174156483996967358704696819075043278081879682448816234012043157094506799836311017278864632830269649473385717502055987504403987109742789644069064900877087346023820112950064909187807077113722773251888624095683082377985645300632182312923567960550684007879880494481352700535534912600837775368068395423994470883544074925672595794826722163333743423907853035681585324956339004786099379543456502539462580165794697423871001625505575887468404230266309383518791817513523477083720115748443514379565785621176231890401623236354351997185802707915308741802992656213289565044628608459786886247156772501553777569973454826512484252626876353638739810461148420981875319622643360096562242516024570468007787325082729626259325884842247792802554907769883276525404454701588592461132262739355885091763388217033585587590195389542352799861353537766363148035058136330892934457043062189399829618079341756906042558677978769723744156908536863896238505177777855555147300437278834353637463617640794756559454071001073428438531270722507452781624354419011984858628192971977240146962883052553315791761136394257031465420424151905827791116339753374832439493370518883001949666025514318892290493378737510252516121992048867139707853250726040471716674465006021539623719746781959266733220541554850280374836254793788153190860138347892734792203796786872941712460619593707709982771276544281421329966849980200370754764381944917353348458416111459969613261890767535313666029634085376600889308330183624596324173097584206985705078955065029247201207169419612978613077026228476626920515423441275795496328795073887963046204839255537295217281468836427450277951944347110548985267480443603730434470100701606925321997905824102630586579060805251233124378817016700738931239552598941887802958634176114226096148239557805066176629487323435617364434093658788538468894887275016488985359391237952093197656658356949916099800860859716715992812212254851928720978986167314919312858077541355888399854487986281805624608995197740145117886018830321905352268230398524148409260578865310243557913583927235723308985798512176293983095790135988012074055177786299706188837337627454123237264786766054029044526624013112124465522330369669725591672641948175242897830151811615715376682172958861361547093683303980574591353145939812241310854550446628963740875587479479525784920767318000385830473306012940014453659812937992278314044627778857043617375802024180681124297018575718993320897447716113001289918874607308639534890799525724101253541327845688443212047599589209834800668981936653219961577335503712442179457463564949861093538154431869082071457966529092405928526471758949839580829650217704899196749668713785053245563234152196040244186194666832347584067511946432337924392932527426656913064748064769585490559269520470480255487172322327657000918557968968268217007923154674864013605617882262434807516030416576647039319570138638185951404234588679892745707158964087617624914223534866466271307554316764497312150940226294399410414749955745078824461574324628657152165061804706155968382643367463514866721850856822977065524702480182312130148516656281129046000752520995410597324224081124313433893645953664153624793050394580692092904758704834638567323320160895387097651149514961512779384594999980523571925707501909859002094256585956947121987927468700802375092580236883513053692578457467168931114153872048523608629581881015424968234071558204968760760809746818720850707937495152483144379237846379955947811608244235349701433823696059605655264454584429194664314969484384214163129113805994519052474688336357088688231613299221783772925004078660741342213300683815411177413897531660463392628560101207424893347178122743176122461647980855224275072496062170593263291437880329678251126866426884775271704512716450120620622193441228958294335525867646289365339852851198225666053788753493797206163809721455723016761199062079722817871002424147618153389538444532656438494007275798718459413309735642105842723434384157798937232008773918596213883477385766179615724617508570532120386602969627234881836291272405896405272350601625123754586526172721029586925860556716106465722312669464861457210064858498085057115688249755296514039149022905551090195972485059000159835020082305982060079935592355307012615746664727212423132573843885161825802970909922177133755700274000421863138827448408693948773946493200466384222523503604725667899990376814204789019372108208571754115019753233571403826478649510002916229799267907499378249749183199019911853112865755924527234052625272072082147713923632701355081878908400497811776712691689959190793449322620289926968117693636808348885757734992715768522507090867784170501458991953581327339034208483430420739183802206229640983649319591352690937825494315008137190856894316082779545171886814234495104219714235700630988597438351308561547124636353238432885200205369380803264308592371118064213851901473937127598482758955883359566530024036501433969216550548968941678345053550271897163787629094673967727683226831971638463430434961430616260172410683485488969475700350178708742192322063408747067492377760362088127416161311343187710578291931709620101776824492630234046143378255023885197268750196081441763630554640428679209044793392386727990925900111741965397149838912097179899374329133841850804717112438230556301678948392621583919627841763844266882277773862295432896865337388851719086349544905907525457249797773302447247811730324611697935199824379995891037696096520163071184631693122822510401292463162457575142438586058161789236569900058262138777302330630963686237624153174396531149308421356976938552028490800188532691761475413549955967363868957742740954680605955749710492368567068018630028938098651853726105372561370726627474908049330377140124535385630566696366991162825240140636589914908308351229647653406447848765291067102674276625823609152975711094615023672381158676870533203033192088027622194933906020843944362609782798989637215173494363505494697487765311693213341197283871848949371528911810334234600931273390868931576364361245445013670709965324337456647611662930449293785300205808523330956997451588268105838665564132720065120600418175658670410456656153013448103203163423606072599587355798056486590613221343360341187909396373253521841106894223111913376582909803474078708780894903271396820812938309363675066393386880184290079483092044277443222840094910893273606243199408012757765103858199103050886814243099885350813231983559179117250264356004172041091488043111296354708409293920337021876798619732605078309871107055239131818324217974022171114593518512864775122427393651090694501940410372696859986777505602722024270921721681462382197776593835612103181295160817715125751457135695562790034079484774029524301973055294031507032231451944309658475682157878275658337088604181736478464077417899633029330096233855379709961648505065788695508068272215207832023170061628545959468125381274462915622099041453168556623526432929815539133535104408542986668191837423530686139710714140233061604257335159129717049597610572328675627084347083208923173101148770672227814403716223321571203668873611262971856863132202287472481441468211178677621838335537390839924532829771089422536217180400477726316356233988777679607497944861711619643170829333903455819215206359888697928379649582281802258516510093480497516599534008363950983222935558084264694583333054676945747676862102642367627706235559211341484805760394095262638947483882826810942877681805523219439943806182338982204129883401578879040208585239868737458975700372927553395861686061261837105886755899960187349782801433111016595988779746924017833685839415308778990260882467693913449827057537583241325117113798447333779556641940999102187390109917222968444512982326227766168814212970382528448380221560010111530031734501577801609206704484400523922636155334077667769370248167613478112221584539807580988809849227979153908185770438444630605243429035028844726856233842739564092628170213962882877993079501962332235116666406301830792103321643634527161520590734024223774448744463375737843933493399349802113051047325264049976338707008223877798490186236978518685298957536358090250197212966485483829601185434281083275487025076476880996380549996952847704165336821706039485087754135392112084051478446566412426352112008942667069886658370910417594986800594400367694966927171337243862090508148385141145266005718961839034476997064884323770660913342003296829628302999013652650039131890696248099155072878203863059912825396944445088416839145006760463063188974441947197695097946616313821995710187726265422831060160769910925644201734873840001820424629418795624949455651875610991722703087415514429098970644649544969907315745984679650971047581050429439784506217634766305641586935560636325868318097592906461222139242659984111179647368313143917107730386294708372803758528497906933415335833419315124848167516472776625926451634592708849530836589126380327843247959233450409897456457812499368625926751960107089479052436865214711537760179909544787421578515781382056976888024707381148141894014179424152853010974425574632994213415906760153082593311060888319787191503944428812800019323928423499451699030676408978995801302457749059072568819915560579614529057170443466970760232814301939133158596665202639519631250844461482813004198535135582265206525362238649209350215295346798733529291588848028425159836438307177826255850827315274813540745750984888508965750610781329874840161906516565527629447803397796598822238973169635439644998763742908061130563881488430031946014724310676270523664303514187662774196514146212386608852434169591222344499599351477181284169963857528327448991580038886565491067052165523688820355384470362087009808202810491347040954874141720946962232870811487265229336368528949928712569933733206487378106356793530630658853544295682046629459474959646981954653861551991901302486944669514598355289558729870399887298962034214134016760298832669260297681055104064219789390818565779848958461763595880533344684561655126429816473107975284841115964794384314193967833537363732497912169358157327187340236933201223003769743183249546649486998263427142668959129355986980852595020103022604250136552412440633552708635071756112798502313701011222634153801503818629898047794986306732702752313575019310276503778278902034484694388452643926882891007635984325124376898008824614916767052559889287719133189180917245114045699916563719228906807589187080580505692410431577289944003684006698289850269040732603849375948547781710797766299882568345563137581875959000682911050017361837859815161207797309350548302635520143865497192795382344703731353951059755768100808148670191173377309955037769164208258654903352911731689183175049315779321049605757166608244189226802554952021089428285281283046262919486584063557839686596712337061756554233269355657898722505656050147171503645986947492242626470885774297447220512215536373554260440264024691476379186495470839127639787555967070394074864888798095488361313787790266717028386470380308101566755065200947656546870458256825627663969828757308530769416266293271908436265921033724341323479536437975642151754286071511064422624290504731465249694939785399711777204139533632082851546774289848939269760242930189457941435694228617242082096840249141380402217454210429036089847818893051970895257910689566688639259121752009780502100906173192805605630831044947494681319777502315878011951314461992873389512794342773651758973833372157602480854496812459528617894600762510880388330169459280112198773043984512881661364360332079489563375328299604063001409516628931898985460987276451213731342266658004707433078523465844578348991456915255920247974516832484395439782626439742960073686169055489220965062227962405182933247479368078570170009915008337473954219235710377792420731540253334200863712266182185844354138451984905410447933271340296519158035018964126554207576142569943494018649062674815174774071738079277812201696522451597186003294163110383678707439370896280074946849257277432498308642920586931220782518444022136101229489428803858184564154110364092960887053574473439578828158567486415837331817518996025391034655701327035493502456280691426165693771035653869502557338388648431309072648376503813240158463976054353816102762567740144271788204394527975165757232797588236906622680913220040014535203661908007283507015310941631932291682261946945147031043691198638378129623135589872518057301394140698801398407427595520109623254739907573996973718887201689019748640431733633908213034412727287489593926418199123319148381277429308419518118622179292047950513636670371386961077596821487822370695365278949553199860904062150276303006313769261590956020951213032920680791775181475269891309373502023649375875684657328490596061839008531482566478327894649319056428814234817048077709975296281364970132270206497003105835959471799247639853404751366222797069904683056937679193772571231813787787603735929412611038960650281911201618612417476048862351934796558972918579900705496608580631925369374822467147166374662939502815948818871583340479992943906197617531427240487512091325301659615790537485404054070219176595286249040605595092023106939849594680307281616486157139134243679036352390045139472764939493963877820112182896168673733202153471599564680966040376428674624447246431463737599711012447670954169313550306442072449104541034662071894828141591744245438158272412517271115763433132913853638644728180670535408090225272002298756033523880290937558556227510849649175412479394715048644138993183995036135375260286816179634159740386305684836984077600230397587316999828529878788197015227067550031950794754812971438168051743878432239980382015878119051333199255606413454698107086094127391832661147711435175841367635514474016629368418942043995109513550079435244179260271357792663406492719531134086058919527395194915507286196080350453790237885501667516035190407881479713637319882785151754086218022519979959628216001113352681770340618617204609890252033907234734326765603692511696458529772192554979608558938665220410302632237014773534782221640315221552956719696777291477544486773593247487436341274836872800259771050085111139115686902764304123219349966614463799616751256295355354842712087424717531997404002904893851471227703605084065983821235858766881250333268314491886622414456224029989065567802440042976618302949614318434205680719185764899480526142446608335088769605468978631941380582032520760729044083990410811865237506401879219894803294971144150798608399364572071891138613768015016744128054785234757867361997089297971291955149089440407042020049361599286758179938415721188064368330513593542023305578764385708237996435586420181166489015046221207438097643130486806110503994313212811505162377168879153199708738886614932635472118523562295254817845011553031266688092895043338902552198660733758132946322555667641993284203073842598154196969036422643051930547100477431837269745082727310087601767691776909615444553283202361650288079233470979036006311616092546115599984964638709620793563639326693001688718431849325122099078124242651994181273388278493025583964984415964178304741045985704578558672214073182210575265242130095089077475926903816707770987364170689731812507841266138224366751159919176312743146672482890983694587914044662584700557345059880853152053010665490823049483288247913263867802434853890845519399717630114725891238051949559821405967002697510518126933677311298011572757158741509725863056582097800122488119758164750218246974709212592639717273393286880079418279843538234796346753679414605419546974221686151392799967775727895992601284344897641934507283258445441949770369091624153725907281793375757514617827435270644008325340434139383726224991335427577139101213763565300139518676500422880685227677838945612115528864933953959968623844072988222619611773720457765640191427713837284888929115999760579881245083369904091229411826657536092683518507604463969707668897819781053112163496404370032639964507847813726613761572624072251662648279204872734849778402811967447951292618740020072029420997763168792755899493501583654145625277941875982826588992955469325705238312311748914937143034339283711447711039976866276080231570564719991761056180286588128645453969643885333986384368608603214428827189710176581153274672376155111407143638508835487476993824454830894966403065350058022294602206380551792750589155224059896116812067828806035125460067040154894348454421413352352306590574095841828693782777484409814104079398770071568823913409320198488616231128453198867906915182386643213659741140731098458991559500837961759059343564318984778716973884732296175184334625287049947225372377629500940559870786239986750594239811393401449688778740570472100335919418819496859053184695232258825675785534254470390846798710065930032503671512726858257126385714905202427207070423441873852833363058628421756452229674484786279981732196764301054869856154460415888252963271005642559119725840722088612798244239566914139537966512777174532550832285827547476613925342367985469221761726080462019716773090325829400986873438642284503517951435584070860827655147688050035416866394372072223766890181176110396525396403463342021245466504877674808188422551238169646712273590230787431760716960257644075559047407215153813434319227221733344204474735067106895196646714646170509398916246200645748085343170735324507041243731209183286697406482314018267169130520430262381796814230281888958234502783758907984653762836678571862058207572281595280205604168439378984609811057849948815448359973019378443416858664803851165791358739058348404152782741606875146884661489217977669457485391910748254535219923704425224887169394930216596019417507056971806117866456335479688036194767053758759942027257759273462318052101922357824128655068423291698899439147929353813926347598147821710319995905858318358008141820170257430946157365407758318140565814765468304583226068208456995395946754763319708678352321316465429433104771284591274968115114654789500007667562069074503101268534218621130754719650372977754136061553749264728074176939608726640657730523651681711248474310055674576665780221991969132624020077719593340932755870157293704247004492332219311384235564953294187929673415514484383499270361166809875461990291000014532080366597136334584943899551496542934466483872815926531365179629913124683002193537058098305264487725566557167123941014921805750939807850300842417105863881197663841113661159019948908345160475132904086326629918330066000733731492008342496676138076214952424134862186181363203009623878452580427960493724061481578454450070152814920662412400926280194287524870760304966735187528169973317570153735190908759486151444784113475901423827996607606846030111056989026137361195399907704003762240423072638655739960863318472956696413324631961427168938532673318305473185526626513475125258380331305987246916803189665444071887847032327485490021834081408410821805577939390330334984903443312545565904503410957531314747205604892158560088364969978753215560983133816957201933157236005993024675578862586169227070567643471276627109819389841357091270457426694791023995591034158797604295448807338407765742569518256757387838439776963132742111370530597941550598023436995653331812549238830912748037580858649265418518225596043971102204258699355562745644625351053697536709150986952745197998063315143643291443878186785690198892295761682979133965739569537765100442589263089365950370262282304730187980197834875450500684413278800575229018576718840231651692823179921745658721914144819026237114875685076871012623791714070988105817340343091069800853524506135788419578458856334961254174182587839693723338883857214180858447139108440004030238137712092482276550707120302517106392536667609371937760959426603477254718213422267668308353120387247001974288545406541241697439562342010867682691499013446928926615403361657877392756111529914343415976685919457927494909969470225587287411164929957470769135067078700542429051782036060403111391644927893943462923392275335669656061352349815954213103968084722800916892889112203519897045843942582924145530157415202723671861026428259656218937061233448155395974097028035195897074051723374611861274345849908068817179995227106068280515324075240654331707559714670869985743038811084980128619866815598282491263978291490998289283764366997115475325972217950507615677244641434967812306414593039218332521839966055718261555646241954758597733905069457025335695378232281122922424858390274205404107351213551772774223636337844661930058385619237581306880463059761880892973561629731135963291429135326245133881082486904782955578452243843789303239891253954362043404846807309542037018330298272912433112951685887572744335388315506933876744132342799005215117844000778634099218398150592664087227116276241930904131608373242787269793270715975586717579577573542991974208761254789010235874970479760214647598824440998227743258340335391229746406140118784732731754983697200528485534203077725646835650799867622895247077251973504268243470154537792737777763966377789359339894502622534054598429374565609294511983871609612269198789618573192210989006241158910504819964745999137826569980057636262031143398764418769098139345053840360301553941483956939187547232532842527029234204548459216878452657319364420404098700530984335730560959824005991615551072530570249850868750538182791373367487251730368292732027673456558940737900764049325471007322698264308227455577591013294247893303521715650767084322648856289576224524562138712551737812885054925472619173826174585019435562149460621879053511769562174589351547634103939815182089151720213918554972810403568278647169534300018371824662725147079745956504088123913442557431245641227936956671450339551712245500176113062519753876569364573126940676755576528778530449581523478572874498586200836170799676838694336469572967931991491733020342890696630808187990276709929612840154179353307607008226632864586597575444878685613845392831091458332845676758186502693776709764670755853231792146428655757709570501462661922271245529243284357006306402948206328719435468128854546996672360673138564520221622942226400573457438004617221415659816343328490526597149662084989156870782056142769304820274156847014791282752403795634411981649531672638409175472204737654672736703038584506991022685606534443837817506584413411542630276147716142349237530378385508197074170230965509779945092908327079704237933021930491330338877838650259683018981352273888658105988478231400756406997806988084293289543246531873645037574011496999463072110026844915625169894767896070800592343693711894725496909405228972810566117314751116770709178378769415843880604674377050128421732771479748718251633580750009425843561546476372805812418812393007307332837759302419759754518269326348610852798575090639365081737844936360609106981842125391976043781628377644037039661680758727977943344536950176753444666990095268832945572206366365771363092114676814523278390246230967826159789796617768344862645830405340562776929818000265242651056758559066025061425286828900403086622708272121775788769673202115829316899990345879606401444756390362222490326140231903498414279297443104143069450684057789855603615183643786693998615842286148778977212219609696945519561046255062358549742508424308323946862520190618323567485669304597802666965564368916853562256417167701002612358815137055580787909377888672413088762542713224143446184054623109853145705379547737718198378586889210091422469108531147562617099707889700017019020670920131841565536268493572418101004197613787425666986375701790453855990191076694786997977975474342823389905606894902966847675927853173463458026665186002728324745943548771998138918012898752644588257720497883750880226635481082700840606193464753344786745748611650943209876915842861059286127875698294511808922172489000708965059873579920057400045854572342486481420127753781724989786778316901309009041091911433562456237073925532495386613296956759589695190133725896542629258281933932722534168609751759971962399938450447795500523456222688282264520006271435379639911111209636938355233019883534381483158166950728471451926540821165859335275686127509408747123420014357731572843303113582906005178234948043310503014906456604782793635573939440597951658354036228910575477691785642970633408765771072192881589524209869700565023099664221705367369134351507974403102903227519777433878367396843458251416435719041272722448931805358416860311227355467168378652509994143207678930294381873110991204721408945266067357764533317627385330658812603746272428639349052532249096507419901533021636938833838724063922864710158488534845592311912982578792443512903850409203860840046884516498688051949004137720013562614277426811810372541472844725542043924087045605083185356255573659476152196240611908089387585485788571897745418574847210710201898519158251806798738286222443803066980515187411495651840492973054837470319479738307283987627579656314187080844873182988103500100211657099715066171965156561840035704003295047662177085509489146420404086172532111818542705894423701484754415886057848210131072842646642630023790850245563062195066958135968758894524634807790539630697206885013072036455309892398236133070958054301098600042852269749754414226926331219778970926086346685843709059464817138274509122715561106938520783561569464801273198919738149460885953698483234694489497701733487053819064754575116235161174346653148125772330007220363572258238850741754581373016918550465832905145177498708092981871581816101738166496215869632110219012020748855489205490063347202704795945649186254125290827690179102147509570118330391002243675425943716118155494481047989037934049900397394197463093380570634055544009318310864699812003810220791082656285487659800899591829940452609266090429971294803530572186463043669433051234111140796988219793283022276678250447328969330814328218199814062096264305466461504297871026580190300315947134518310085131481195915277463536140411408143077492386812632496883496012616932105366250778284087718080325642571434784635023539042198510616526559905703399053441187364341877733577597195118760640458249395941817486603012355141812103582557955874958100579536308654306029502302711290551856398868406534524943181534386293361125790068311265023740642108760268271208277690151468298959529159726409238614061628548401929126309550003400377448781552788009954323408269236199907482750398684924051404467668183697865799423810535040772459073607104612823681197870915997547717851166905214696006175672236789175553533543240953099307776351985674042190227250507747160315781003062396483562870386593866745500242511849534357927039606713398651377662065606262070660333167661265946914442260818121194209256499853836269929089386816209865177008374113888636956121355994949223517531409744651433498208763617752558675055095160779381640091230324178899499301562006689187952587922128567601916882244672806549933536389074473160499678288270463206858767551960736986802739836237525779524640679421682351805036838988915297447355923139655361436277070587426134889444864250995795099297112329229141122770221351630296263384105463692628212389184321481954934497078439316082228948952237914909444399985387434303538106473585216581426516292547738630883953636371417211427683428450781694753508846120053235984819338594559161176287872451160719800651438372468056546984275744391283817695397538461927007444972575943055111124645856835548862855801708861927075832897702791606223344240579802799926677342819877652201542684371720692857066733966638614742284502674806147393127348606666068613126144953697235293656334975401692599256261628299695076963571262920471552045138454821268937676815910160087222487177392082612696575428592879849849964996349898639671137005009097181829887236475274791307098312640258594312572361663048188456599364241613714968220344329046865888025110248142178376407534519565090537312489287327768632368407369117669460378501588951507005488421400368845214704537563190777294270709138857026901172595727275623406813196875678465786590242773864065834403533398335032618288502008733277496372890916759909013025766372213999132574243596618084674516926228922036106270554687180408066994891854296553561787808506066941232697998387454543108696136840819652061421889711956639606569190580896310447336408703407421825448802507818566566781948010281040958517310766681947551932687720325952979976440493884663020700244649218560364905766058244967069722692583942487899656698682078647879728203597553703829039490737084879294205263483440365047781067799609341008615128228385947785602674284913966665940240443752312542834725818219312065991541536084978383958118386962667163675516632400012596261734983579784389730019697507977026960887517653923243953332026278811582780658266079613197861838133567636701325474063440571011722631880020397312073545672648631006045365556554430352696198643110652805323794924431689113220376561733982691930840406152714490412807029638067172715667813275479561008939872618634887479571764842336810439205198971043507143841862494647626185599100875730572023337823935232519116548343665152462899022692441019178154217269316579080230552473796857036573141417985972845240882423766070016894422760922983762315518321083117976376781545905799077890602964489233922344270186398728040194663845131747711791739744049405439459080092120432241799003334934257541510120419369501999431955007764403228542475548903975438899797712042070465776771879560430408175719736229955001352458849299655516721320391263959963583075964455199785222603939933451245090823851078629880423457324796976734130435867267145638337628346522916272320736538135510320185938909740873347040522359654485764577853615444184197357132968905276818429074037614996152597602969998762907960728259922353917429920806396285713251396582497503427676471278029460677299819506605042173404955808922848673379367142825405418790755921870136533300112427579099337770023457535424219594560489553659479337729474290198874361289351634139381236457974060442717021280482993556658839540623212177065502390698800268907662476446270401713323953258488076163733461946482406132829613603115222341571722785736207872016037852243881421432418499917438116546583645517550125071878176177351428120621723327178591365793393327630692797191190622112457574238751894038062915377368074835825113470142155679674130304255166811364228409667114499452301406142159711723461735571674234453207952959042688360998643906353858382369977731035541588884258569894110228083977626892508318652409791591303595742569847291231121360155034068099379499651658320536226084446524407344182847649551009241723135465366207542147915534166596395057901612055430876085579826745275233361490377716743988297298313296310806122478853617184916280761578852196004938026329060796521315103599475203462508940967671558322278149645753132560385025371359191368037449855925659315402583120001520505239441819195513772088475143068682626168120662510341034690749439971271663019133792226446937484390691101714223734773261497274568791049349819320735514856148169950697043059239927301804376070279068305836399135442241871213804842814357433609378582265251105098932027909129843648915101799410880759046041662888127522864306773136790346632471679813882850985558488332910035951348742697772025102759727150879890294524597303545911623208290925838551797390125400799113072968563309869340743595477754283424820384425799907234030962707574208797773408299750371260961858413626107529049951022329064271063154947761917227606773937241303691493798868303237712372253861137136188108762112958897555641440780029410682332696204633471238544260247627379961058142118115101916782075163588078795186081594295219814045012474593804754510120848961260501078153108413096008125185331135547100316751426329195019751181037821118327235023829352326081184535297827456502587938451825076379916856466702788274393295107440370451912534401348404198610872306915074473589194916834093767665663726726697560955566617706232546932138932378660224342543381720938931561758972806651967379736532004426037252068621686017667365357445020677576002487574331890290263038941513529784191441828399594184212655502978053224725864118812448167181846722980278300483322440734561847421185037842287356622396706777125192637561841355550527662603798410827188950586411158576355767802793785931029619999479406014880420555515046705323954482015936321554487352422124122649899866418893170474054836304549976720369206444467131246117391141679588481016267277449974208641591292833393694930844693583551241716220684345084424590038422541419154153599723770717223266935023150442906851655127673894504319796748949717505096367391068090836343792226596069877994289680380100457193143994514969681789010763566553977070344868100634198588060951758224980525402065281601084050635518145664893649323602344708908379128437180460263072650443604532547742157671230856471568728822541921524008746176194590766796039242377259330060311197507727133350367899882663492340510838637944001610475280912568202976826034155751495838354062498224043005379484739939280925109424636788843117842764314742679637330806538675946713035129242218843609860519330688138694018695858181797590609691552352963104415719588630734985623751065736796274472962171451776926711282774232930733321035552968618558207944782890632801116813702350540920020832190810024601857476530481589162046156832935783732583206874414078000518518186038930409988642486586014729681172150332931846895425790350172427147816967036924571191412947125937605916573007562235020546236517612965454107266310369139579927618549865344440954041338476549032929751365978224816105512378189847521358374603818358427829184511137566776274557595848551432360171608771998951354067167258599671049831780503173877287049349128631282524588096789253711194128716683138523664396089210989447266014618948373403559891376188143980456581375027646742167885991222398039171861156066205291861712799669979450662858846590588932007767893746621075357176054940510060487433212140615292639687774658131752660843942632485554608523420483025447036663126807768578480035024272946479935637609593376688852052655205601228785069858403803893120021599148611516170849785467174568444463475255015705501166334364768680705959825023086909623089908146156137426454659811809724007575521090312289061289623460208638518971115010579980846841534706727764491141472761202164193660689444078898282041660963453082449001733350618459520767815957667541041649445394659970080859397733725510850021488347045972246139850984749607095013805180437758505022184811696687578216263395175172412749320294959585459451153175484579169816328466574347016797568718747987218090356646102891365681502764697277376388469434212414810782578969141546933604097182305774348660288119504435782835105152971477790720131162896800172834434765881553133718643873632481512924117408717699369149026430724669361398195369209519545348891307698923731646934631684255370902525457476939124524723127844795059223177291730999215884601386807898530609888357299297851111372087037973953364388767428814325555736516509076381683927182068730897916368369361904188887711177614995776650252177508638836703841153455483516597105560634130887781600074634183978752369581458911896387423610630896284954992431924640299633008556057922640778075774651620401206715838796894069796288643318685771602344864007167375355043179195292335902640061989907779767325314427952594198183435964051930624853358644064888788610245964847467159134653640416301745600593282722458738216999121933482073927040933599036075761803475779701716180800157317417073396028032850336853875577707035194046892669458820882627091225804491581430744971215165438127914389373514881205995026905327002669469285674484203490805640729444187959366917413891410642010356002575275965607529817504404304349336191562411169242583608938746033178676298115342362237896217142645465957430869821148030230764682186648597073632994314075227095608632566730572476747840245034293920087033678761068269106903252082343660021693158294920958343051669250488580625459621355228094340603949967932463356288780927897372973993683428330378225455606826494468293651300920598540014678105177210402095185951672581651565288665575404547384206579295674244300656879024225514818578705640513284252734846481356775118479418813620808626760275762822622869270336136954352120291531816871455486988974459677063805687502214792296831539812685336303696966990730951095074982746505269807283262225931414448478534412071194769119489103842326384757050466254767348884737164659608440501225338280555353377043860467782300049917090453485114528725474381962120676252014633225981168900580512437814002397916827619655291409558351685426461624079749751301260750377986250946161624685663851649160603240590905507593569824820940458271159881145281089082497500325775890000956388767415671845708633049235254774632039928386750282183940924980902504616597243946655496706112654667546625687574396587924340835760844270698402912457943845972349697459648717633295835287605460477088032602280257405314559276604877374865178379939289953367812491312044354106589324308085290682207116455373205134034313958398153836033250690686670573736619889092323786190389588050911873693631419357303699337736914386890985620328727292487975477929782553266682963492579659215133709543216490715238388715014237298658354890917345180390211340829870688698579901924649074746149479982374226474096856983093121997996432987766797206601091802650190960959144605551029799129767627792825311392454457667344324775944467353517086496277617357946960457614663334242363174379651380865554665168001573695340492437649583559017650574481033845109648186372248313105129937596077027661049447164499273682129996085696226448044800835377780686496342847696308316338895227186213865612262432344051810957799911360296332237398274506427261116023334100842473966912393821392599830756028094547843775543478079029499946171108841877213053556887865841611443085769448947587262761255369304801977091125450994864221967917974462699712119355054980663467567371818604584905743731021585395248711599796944817428615642287909025597629314173625090047237489055071801446596602679581685355819075492320874742712271126669645427146116939749362185401356513525295632194278364396717639075781832103262952582176187531380105957233538148361900655029248842888353250528908446977862129949303041889874908097593218724954859239926972126684922691223608350876885782786665909292788577063580842390553283320548394299806986412951686787737630521662654663373921796496497378278486438978740179777139203812617854025377192795713837156489367752831925605719710487029794205839436513132910109252731318137922570210314359654183146660181510144212795504706118789908662515086209977619684387215822122127123438062374052707572447723024436147919137677596908432962714051488175553790119821829277299677968316099439578699559989262086777978412233559404041328911557967946667674108754579749347740640341088344504930977606871486670038706397737362665700277015257981671364526629124661316828339793651424989152808229026990403919630576761041474022302031463239013195530939883957829359669107112817554556688403650831839075870082761488901440882717136110395521198721270030130703517057764738836104286179482623347712399673616276170518247911463387655110207592364148882587926868537149502058672234356134606143980050000714314438492997586877828604564888395140490187648249836448925220939525591004747363686796084133172690095975509146298165351537789276924800658174767389837158939188852782347710130949536030723331655620007664249215027596176190721651991853290355591568069982001139964552490327039611097440375199998464853420634610122745985261895638986185469035097943810604353275304196434936111017662903758682945325172586161826353349066245620320775468300704615934198090604606904473609779150171924566454191315172311225143140126390657497302487490992635358712009853489720783984282185171239325838289176275005939413399901023881361779282293983312086887488706592523959617057958902265277475258484040054823680058343179105852566603339037459259963210678390422457830685986249442295804020522420919899301313561546052166074459826536357292422469971746699017531970872991264089498587274640744249409948927269381484963465809791282377367244632585729264870401868443073551385758847266201143125271503404249671354095120289778217438640029171528159175573141868613109779355661207528425186382983835048117511699207935332337570068891571189556980103081034228918622388385748175361430553611651382940089871355142441386863413883349847750291711307250475836379774776974469305502623079800073530757060831296382606022421955896753823702585717172802396222371447514064523201110470115802864891123806481845169004842297205949720614197927089629722924406221312657149342245571541008583204291158056581181459722603338697998883091979679665196382289463734445756296007891893939681524537270427657408696038499787107678570827065155643137307751614434919100040754961598012265736851923853352298037711849680198718228944533911083957032756489544430850583014717872271816794627466605647023598256637198654936793660622305451936080825628024353994267959727690409032541385093247786697349132332925391921518733094558704931412576462209340086346905536227410180383140241219569956041768345628398965780751090979563533375395571033122197788584504290018718620590838768683447134101314158370646930155532678163772758559582088976159534664333637134898537083140488400837629159920382017112153779058956454701624882229429029831273019607660580369555122563861764346167640287084760145145818401262453011759716957617600596697272042858559664999971367483528569224157670089269373389777000268790858250553218028714895662776332576864838015650202238285481212968304354026027825527917885713184376540480318727666487363885701779926544314794375719325094560987954234898814243011526296781275284375860152529704578541089495808542328377616471129253951584236656227666394525979344292246232064090890081817549990754269632083810229698692675860742522429260575027016991754846700681732184142159783926860539071952868295165066747906080029570903144430454955158720318495329671740381408340540915164413652777886192325483518997857379376418173611320230266341169834532012012096601807131130473420167734902914443974007497928446540651416016912869509638028834553016141109347236835959750964504025894496284663156061911249498847612601075281425155609371697405852913808259368433818666178339567672357507063605198330149531208941162402321048717298453318162174574224005514567034215076613938652173870089667511913683776425224060383453030849556855185377735741229968198736868383396256536978460434603325459809963583313406235047207717976841654985426106125495190628310322954430012965569135139669783056939255632189059514229764363446476686549746577422969300626534848705824258303797652746314612993010393968552644536208118477739337302880127274437891315215667607669198491805557566369471634442233346995178270976796764894027405037876864333452630148828277682483603967212989948406859537242654521849133276533074448843567425567905239032655070518907941941029059956625338208701148093765129585507421366332718074107568920581302145369749054604578291652685768413872707162562410940964823421541520644435751508596188544201423600360578240027263383763581039334036010353725273306751668437466525681932696235692334345176309248237876061049592089371498777757136026444451251951422811651897762795774707720602906388332109168420750804071586705843308131464101781657566922690947255857789540887188467306170642427343544274722751390940794014800195179951058927130346046575532442913937533876908368513033517032183378809788961534339807971359093755688055782180167427475404626025573499382403953386281932864268406469017860164723103242939598818374446624292794883491611076193059928385635104975995821179086521212929565838989585394805247887140245481226348193570022591124179938298974193646449680234159195562486491381958886765458117941650359974775762837364336506121324908621909583527793611485462648169800392687376319694242351501394508133251464948450102839717309088921873473465499376486967317295488383758220529045281960488582263431369866259750447734932003720164406727327527871168853584097625970621148399023774025677267411124680000784340426213294584361188358171159040484869962821283389777849115954145724473219240161478848520579654466894450529245116275113839703370119320581834551930770704932873684831680644948470262005587905492106210334018237943116748778305755301531457469222463716143438934439091844764041357040693060601506664426277332156256182174095633318238710805214608765632735081278101622634971624744640874466445753654984624709791765150496966075586768060871042656025691479862516065499871017197519121632290124858177323693887080779428164510619327344900099660338628343821732944227274962003782186772374736726203663450657237178590345266181216738023454457136296240928747104278573920398108800158861121935218353718005267095725173407500649073669827723784486105572528296982497606008082330644579063693982626339232315797904624339225324820013458907372548944476762146124610422386996298675344091783390059999552287277716741402038311668500427484423390633655588627433090811941486948750713445507816631640918234289389158712412718608623460417360297801777768695260741088590321755711366178477837362269376244504802774113023528596903039445365718750838006154261145062851598512342509200301580669696972324650889132395039356166314320603585883092997452909353778874504328660303782002722427620904675085509198652585003875163308335456745690277851472737752088276709693959908063928047876409259327399146573856733835824793848826236418485191205844836540955764399340717834659068776965369346307253677816573649631160984932548404818687408307784466397309009367340366868921877567886286638748774365134598503114660750311143324437093904877662014117473627764458321960615253999020035429046244083013362763378329914676396603197962390126631256882350075928480878787106630577583688816072715729066406118467668521225878131033259367011960866914294980445927539634033183689787153171499261473463362521369754492521150767464920584108208146314484786746532371361561250309427468947319629314336310756411173465350661460905734819104547973082109353365407896136782326704370536751573550747220618332826829237245226703019010369636955800547109209251261854179502468630656498309534297199911455681462401204224711900851241889809406780808969276693526015897424770415166224765137172322605321527420743352610081670960513453788415728305672605758258103573214240291648882185822712314255860540601738691808909130256842566787233698592140128850219693520088610433002183837081031571128052170512364296738609444631876430674679069924255812677955935164297044702031920173994879359268162940130155948682330401815011341252094367005588003516017923136080311369396662599996808375113570923574683238791928765507744124381146848676123396239080529872402099090250326163404577048941589222121444876511134377678585572656954264996036713094305079240185663074548328330623738104877777715740653749435519737856946227745571969656163687971472830197364798142214883041607421372556011488352732094668557945004710966741008267973699321431347059306505368454456274244000810034824707277727476662935150831356977321757124505558001224004107575684923182271107057897890229076882937743740705856545920763721387291471353426147981857182720403746992153066914430666489355421801860780081220708611546581306342469290038960019904093670615965686050356011788167486434932683850608483190389115718805304016291746772915049093922663422052620268721923753006706620364109489837910317786966348185013060091749216935847840341278394110548613499063823305019443463230704870950244497388914454331822908824002537609321250019378815282274674291732471587074304220278022094242050313975996504641777341725599412030088071514970338590422177386821993627011555981746965061921567593807466530196243755812376497058679819271709964989677481757160075771955893502054668265151880016935476117049168831129345868675813247331999008799698503956863348455591940779018677474807004323787621721141289163663058462987244352000815760678550323201965906461068353345523934700142784251883840478326482817939006325894028022821274739348449646090543427194802048968665904561890406255608111600280820137409809054035555307790609999185471193283409917929583706892131169514281622027271544241800620394566068847955465061194735974279876713805038230317615329518713355742688920773066878586384827469812779819530711409868950591140601008900541194991913090217581449815505043745728989571983727901095351864381529627377915950259895559821201701646750049469244160725971507449870023449518378922506373263043403567449764000268439322451928410012890794591299376047198389084103684936485006740323019602805383947152286258610934424733270179368844232320569981658286143229538401882655853848822960956102002147444465530785988108250796900639395006071749970438810829342738873167337122820031373700152337189154366115611138980125780825805032781623998348617973395275099620262975369978057559696213065158989802184220749024271661747060421783695016270544337596786584180886730998146434280913407678755842850864534922466229572756551894928980938374447103862765625121269658584907280635458642238470088208301837172431810350259162981180548444533207604614681600485062337274623702142352133412344648502630456825255833586426857677184431412471906449903167896088140082398473607176000507094094356917758374276953299076365734605781531342801345918966693743375681888430658545947272321823296871498495380724849805673200917174171364983181908707174337564202741134386228131601581370024558537772278712850293843651721371059275263338088437736549967621696479045363050029134224121138664198743252838159356026831325752193615365759425064523323781865708259538713441646411988921671499974370250678147197289739750080028904264051582780348430106122432660870933912746509603732314076909021907658859522966717282034249384834819036539993389815738499496216890045955807329811063928557563315657930459499415640278803242381420577272977517039506854635423116926673246209632419186683971790545133594688661896807551093339089577737445477724086460866223107805044919718858890488932655297235068457302072578254296269887683650397896645043892273595404638903997087726149137656100237092247654637515933137447925221764895116202400812143283369381680233914169440410796701714822723098160707648444488036414375668209321459830954735224477866134464278997765058373944009681593863117656466389201329794936369644171227543225868498941408070697920767361038791771682552497976893056656667155044776931244772344965967604551477605102995455392460147591281393425360903810049646016329725459220686450083394347972409270668728374720963804132737228890365551244340521868653602646890104392155352335541995462645825507472640411432649449536354361665033929190321193733098761349399719092712140937915703643418528068685559653165864799067656002810551648770996791227655316161828594180603652929534767140289484481324466417392575198501363351333171004292032726722098833838974000824416112678269145788656344278272773546568083893493159768330008344896964288285185627983739429551823415919836852638292324334299651596543058526430885252329912936281541012528900973508471960691872884872199036900237358833323928878206711076825523524842296853443507785956928278079265110310276416882575174751804341580835575224889813836458102789815043253079847732333370055535699651620424950868345555034211965750257697956672830323060961665865176391561421880602200242037295288773387488432707115721033736828369880418365254776195787184381895907145144592862161259677719567451357567982697799059473295635653327083154386425477768661097923107327736141946676687430519648524952801770834384024066382852844729625366152383219827340065439942284935434877108056999254589273160979236496071859499280704145286728057691083900206134794177416708784568198637878225544059342273963090663914160400616356299081001893281841789614977354733868350966377319435129530923579533908545549845677324611103376094140944748417835162325218595005433209287432740399625480895199428160484591274078630480830999038886628551983587053220382781502502532690433761399992857997721797105549884861153180382627310331925513683598136462940441282312988877028877975725771626944225464401380991372696528388882919118067884352173269122724038798701797394551250277716985822718105721011268403869527788453992075575897280700516788235899672458487434599040653749669664022284098551265819963614736722439562962940201511295591029753454892985623336189253215500184042105537048810317523484401369904058466699349977857117103673792514532314342918215963388856711532943507402862882897271682083983907277872184285782455201339370585603368005458142482229084358529669525083712664517266555104678285929349924943406749750661438525354328276213240835080798158514243999382173672583777566517566508552442530100261206215003309989112118069476550681632737213479249129490714278733432185109620581326642687666985737978970185214716231131482516359308429184694865433489494399243142155676923506659939619475743229433401628596046287170452975016928308942418845146423543402594811417404905091070250357480628226612768815803322640147157817735981129818500694122683301765532518564082973485391311702016560199371022152488966527321977986774765767492428031339943540103616010172772540753025353814208463212784659893857113527333544587905081986571814771723035422840238844145236012239914753612913936741706588489635573756725757855273792657655781153000195369179950115334905025722853196283290425957864568544819825932361914563135325822217019301856768307288587231036242606502150812037922194572448934085488091335097677833304175470770799918771270989950765017639280168946625675524629806018828868340999546865392295438983897321765919389618035344284049262114334984070302755913035199406525065616264730174080058399821671855741528540411416584174402546458101144923311944251536871982913201669169389338121702730512585401534493761752477967550730123429669027614923034800719746552937435585300508666747639531363811799195205016319199811730253207068457466132607473807140364975888565617461028767930778699924422543948788106995444030307746890311622259907080148756340292232106058591820966525768730810908916016868853764022206621273042661677654171447343328691035013822400341960023804580140341808237683626148293594513851686173680039044447079311005957919159198319513766072451190723823602104021548966686051051059876199438916063460641975740390461725500961010129094947075277504682145090905649873828462764411926822122912505645512686244642696862654966031980663475028278848467419465996358483867773720222212271932772037986620809891506548468054257378286934698692155080936857725912501180277848067895854365989084596230107969770934869580573829100328688969252056322541274613780942808694583129725192606342362227912474755080769028036604231680100226109211248692353485022411792666250378006814887162799980956057598417286236956978081597193328322031703698687244764749187296629702191217518047464362912026992323963334281971795078466653936371062969283899993400141651675941671060343675889842426415934965989213219165473737851428664667830405654297930084041749574682154767937969978484204358153842748311718311137618085431421225547821579554617358663339693892839613679453275789938793104391648580588081620930247714969989022677136581215389152446388729815816161120492617035786887706085344804791493333341567570485207447099579319010737324201091635636494920797463299690629025772249938390748294155311863108872173017556041850868391811124357101650785422436865966497452352453085255424928982335739173686486295596388742611231360402742795626888804686820274018020848001339070602252031451791489788405435181611809608845189477296488784599141227626905923891610512192257869966720580303859233075692630273180010105586270212530150253599583152263488430232961304663636818873580927374580555490370325649425271012344642993705354494984144077257466993705971384632539275719508323938732797046752297630460930628746533385117590906580580837988529262581991327649231552207711805819287036015108867028353368477020292754033558921311116484757185257499441948227360301986386868815641710274407434229105344951828774556299498050104019601073114551439095713304226015533752129032101110013039374098855185218740527466242580595478250866054650548443860086531963989319513274300878926579689250375846767049562019048112193296873734944142063213149347601362534370136727900862908535764565196739895202933885345357247939500048826096360086362750888881373456156308423235751726718599624637257322430766096492767697967178901542202185610675528722959612288876506296799429448390380808855582248561966190994402497404358820280907116509684199663577668787116787554752914852050049158221188035375405862768612551134608947425290250210402859989475724704574462831187401704275828767753938590645533726542541693562878183779474928010222619556284254116374765007219756781189190920510576088358541532314427689050879065788076226337023862295484534184856667109233690392953477597659679859202284884796183554828299798813273436111871664423078081940798037679030200872121355444113248137569705476809715069115947993173431961920856975801562700859440544949498452447797088479831568239530445813283519657967535936868903282366070011300262711170241654763235904513497319909756343605297681333625741225897248516741501620999706717299132801206745897900089006011505614567507817619095919472008320893802004142118800520468514803943030466255576532053245941078682262481816528376826937200009164692499734203360798037685180732955321547743947794580449136790163170372162158164963601013436005348304570361489745287535787343687070198777560582106979781842256922650160937455838075526028434466752836974565344946350369066579400161699280217441813770067202963418129454283656806331434531534479628388267085593699304120868452568730115281287875324723371548823569583256760297191117605444401656740324013048126591449193447662852716443301076621724702802942352835280378469902166971036193150144650124201886069649415031335429788851689186784906955870441943995613182753690378786855805396282250107916539761727652896694174869260450557965967990471134195262533956480860139363917950307063927681716283505721954587528040445787132087591883278890070316040800418214677165792855806239891000675864771865447123645296629505434707239497266434261250389234643118728202270360599199985289203636082164463738936628291989276970930353232636939506027542832718365523663406951614926591771848219917590345159410364288722681299981635426937486184010934670953583643033045155690515567352640378933742203976548865598648136830746519103921561767463276193252641490642411461704249842130124153441832510630594678297622476210563398449224254098456763976134324940961835326093567741242002813497196215545987497136350391891406725324622888131887704798835210500031683251629342578587434653063689512008686004610850780636994035307200286898041277790519876125971977817216669878934667261020581113296340799477234050345930180378223925611788549577153348544012631318954380763938620868567546235333575526522509888468454374054887510137369155990231391541900100720986688159240799894723686212510663305546360516015080263882778896018615803173371145151955183308061252516378817618134099450490547206958140384366588984600791906791992832776956723706899773829801776174801798583539242110370626125382409696396807935920078644038914922980135402265956879028211969527794775553547525204535918370294479436056365498704107507927301009749047365075776811495142694731989638538329826781486621920729739040010362977569939081594657161686442741460428088329169938688492522716208607292319806133439241484835880014933493222189905415372576407502535576760130677691680930414789393171044705991708858247865059711752942281272439723133255139323113705759167821037610596119968892553882005275157892819400524672601510365169314887243929724034229973666351855496978410134665256485937977614143534910851404736601173893725621042497569221096735742221490095849953075446321243814240510575541466912553487004742546067514491357934364650378400363168113211572238670958704283417920777070022170541417365574222524416716325573867449016508019478278839858369983115132619615646268304057064459315992953973072144112381622174827114272339020366131044727469650237148046624546313931547843808522875383781213180042960143456492629916784405884269882504794426276804102338104695716450822473805199817512388779387678981647048486965889428967532594715781503679818014468021731542262365993526953038151055209728507100924415453919276478994580373966124004534973169604149612288506013209008749907969853538114715639581302665302308293601109086712636753740951952506315361145494412331754931459602719068428754920405649966924654157023825013087202600155288004189410770811164887976129572532029626176921813935453223048160553155583118614052980656056467747441957496729988080006100644007709918926777980587806436564615531427131432741931449996034466890522910644317728879853971828719744586307904884022006428846134591855407511777114849774634507332466580155460305587923149885687537822737582237225790701957049920313187744484555671971443761324766128768766749049866292240509470695700365913987938946286483844017230424183951642015757314532659242174386439848743453664923594212712914782612220462107927563208472599414690797995510823098814209615104324610049717648694243393222223659086135320638859914348664258540015789661630315606707967414130524754469805614957743829035919689153856574796178033394837674275633616042446475336751582317334325334535431584908932738088631803299047202206116254424350667186756117694738201308371031882795599939945038557066599746975931460728206945193056117428161976154414303966441644341869249899109058478779471496010712274594424834782484879436911929135145055421007622605254962901779313874711184033741834580792658354728001905190819461262962766786903324310488358513498343752298817188197870908030359251676957889258836965509072749917430923759849269024826728298982767786944167422171814436784489916939912720771362671629231677274300129897066411054697771500251966221148990750675612645246266921286917669875551439558717748509680200815141941132670655231775815241515868313477325448825438131471771260764284723727237075116565290623318999474535666267694148807941005550926631359852110126986721465800900191941521551601154744957211199389061209901636610200837062669300976985013436023278142668424678032703757555799169206887157781442758697809700283814934290720777184346885729881210256028019346154539168779295118667833278784129729368545320679844779417489701307473832286725260017195881118187484531600439989180216342504462855587775832066830208024042250524888158576912142594167906859234307613567994352738921223067800994312769558689861405887992587211804172191551985401815084920048711595718119442874938641454108738503072137668837516612568836354196319639064361651722533915668400577482031736721616707266137331312903975115261258054705327803395859290333681066990161131499363865855030515073187952655113584933273625039742060120873125124770015184359624201199860128801027765003546399518681964961040778814084567388958562113656410859014367222468543095921194546955032417412146280103067068231912805310452657327379838454811487054291193134399962534844465948735151707579049579596912874053134517553249753599249811891471589850793493462310450620587004715468903359471540384450916288171349152389716132657694431888159414537721427653756019035432356131559806632760571101559290202109362052078371338531001244287203461909026222046956371446930593637535697367341599662438355240203147992536321394367645170579080800667737625550949396169896014785235697784512452206956959328915061487681188366513220508094880822343973730047639355533079027689739701073797997272822218721706688295255490817970299195165940495016003709201321811759279178246462020564095391718841660093578371098496174249830575808077761136865613343121748130617964537074558098724329973905113689876087173398609117550799173555409517801815765143619465405491434735836018383988397210546764058271451376235874355969628123784333506425951789685308215672753001910479511735292991650631807228214665006864340704065568662172452937041691105667604995348888679661312683595172547633357647672606031089635394100972082625100493351688177286840500565469180521351684134296380478125191284316937380382661522745423480071933923219432973240873770049523217320645800923564094290624645064629742617191899596182163847146888808063543084394562631940070750444395839530870516750361215572910667231973685415736110152826839407082362972145882221145424440286616750904994928531775768402057439427864483070567792959427158338634822030122901677952829150886811691633862252943017066248914437905957964580695012696659557967700630536892707903247714955416233509546667404719910324575164063881805807074745848554283371582725982201583863602190675550195645183716002066641966810480474486296424028285977735027369784698095270766430362853561208740070195566646111455433066136641414507611613499576598001609663603496409960910657016621063055418251049332742540403228799719943602666921092097744451052451513456731215005292022084234105694681713454064987770864574428354493424375386059318930916025136214916425358706953703096577230179131739157033605859411337577541411421139541925927482441248029433457956502035941531848045122241100779054577082879100221922203054995125131334330724028373218983451577864456872996682744712479186103050370887772515284951765674360598291892512486186887141584569876312240964568609760720046826527785210110457833061739302507551365670293038512764018660088514324867844945869315706229411760025416418811542067560478480926727591522881412133013854083543981952183750249857079675430991582837279278734330264297405771487102076277590997502753955097836526727237086880331500700271750646472914604295008516397243031582842100633203483381101918830126068895424046085113759648801537135495917624672068364205401837445497998417835329870165829818258605432027110013417135747036219837005769914208440381390192074488134617970038222614957930598745716996791415496380212305538499089997954926891573268446107852781819684179872733144468092673620016901127372026775500905281433529411813416324417457693293459355162309481797462492496925234614453980984746548506757651632279303131378013821955152654906262142652363349263771701820359254305265972778694414176903629832302133459355144811701587805720001430395062325611911927730254622934263584650865712590160009893154568960243908335187889647767974355496505711101898576115401280144542877683389270668305458017363487842589504074065291081869786770125845310009044960961837677995184481445999934302360764318369531117244106764975905168794048198259168002302943214291640407566662934750289188835754866172569856657485160431849641081271731725226768199396529840089112808413727830046393808608179701551833314242553315380883915983320943352932079809278521303684235442690977779805651939824920375460110007347637727778686047016852181141275008823845671692511921026479283846782478942921748514666538977584064776950626512767735263917848678706938727315822452066524740629428559591694757545931751895086340736130635956698061088171792665209541178404185536783112559730894257555503012966466173974803520766896517229478762307855692466966678859561987362984636574592225624448446605890302792787042438894235972039656118059417230237376504462163175856573987970676830460671207969034245322579638348580858332270903785471339381379751632044381972564585901985217952797357301928744460557353555776209495871692665358936290447117835255668880510650790423144799933300106688538940415837887064273776542921138903141983402474487819352312386474695709300177918441630128020275136452375274765915863401450359460454398889571171711856042357647058816048700267138171308147607771772060982532028966038243596782284069638256833042467750165027322969432832302290532011887049952395659199297306460897414799447157142172827022171931113427883737629867992659341323888237549264597772207588046014998581496467082578996031740796506131311248061264144439532188246280861475982259344999833919400213412861630111759300276559219098251647031015191095135660697523952205813623496368776309823208660267033048412785865037702701645746670029521195669798194614275955030274341976755131216328899718414910335909713711067549740527678672504478165452325920734096589979370867262868117648188369451788396172469649724200242586184985399379502148088760926452788210201992348393437189629030338647254154786776215973643846288141905950511991332014778286134805520924225195445799932694093333803330473413366026931264513524286842831840254912769227721210797237172298923637090203641369757089487630076028222748711383390964809833585723277987835483495490458700300074948940095226437562795470310093596264930335210753472038300172987291138246573015508819119925526294156258763969953414389145335487273179679294324435649693340592645686207952681735353046000984961146671678164743080620453864567494904287444230508252085684541437182006301724071201754915517582993530677125048524463707900110741317437505404037653529063471608656411808888865923765448374095938992429662876739749391495433849594577979914396444354654091385645435038629917572712849063916025475687391032040184625310551978201406362710134429615578189903421316732481194767847983375151963905648822698134611933374737396742991566865574018511631337844469018994808989947610143991064017481368424974953289511231631892311292518673430896698250487203958494919800053403537917832224233709605990097868002678418945827906440696811460914134919278654826258246044871043214499163514545254010905878387619113007335726810913464366922761155441364934088116522368547994462965719632524908089350911674652970842939360773312093861691999267554875114781987075772959642222935360339754500232934858142859759581324542022995568544827257572990209226699891871129945953208101602168577959287064396438781115974803848619809587116862395872658633956271904842322054797515257952498963614920554411053641949623456743136706304358023168961314791262268397381752176350497205120558376192903502391497263663355743621234257187955742904728392191049550089601473091612218387476108867045445957393812383233126997900096563523169089347451406223601665350049491488128928500087769708578953297672829855070885362666836483092820346777658430150922380708629578905248841299545766462979278124230154846176965141327437735620556583852398269300084014605243115197194203065205732854825398816076442752911905454814910215021592380495198724794274125964770989297247125809297151706595805163201560148658211435253268988607180628234876304021214221090226507946272979569827222519930093831591527897419841694109342089752961001516968186159848431214212513002205036542632870340444181299942126285111943871729870581764158880673879789543210157794053681637151004176846063342678129913718964582687279977074008069759375506754452956534575663597915348424086798234959157123157306478633122954408442450394988158654087837375540169512397097373529053900223184350937096614027814793397173637857731728972600074082946334009551088203255182551477529736439621639269055035971418636659146991240957924427354024444515731796081718385136758011792805900589293724246949469640459668993867546134049025417548968374588310378417119784207795298042018285353362534389815417589143952677376965295134237222569833024962512173754596405737073367579370535091381202229676053502890007211621332886479115665534931196398508244320393471959196727862440056786625399213794049308885441253899582044262665766796510372933547727146446942142293770513666811936602563619537587483156596643557292971985879059079130185040090901796460208543120576182373980533365401669418788437649415432052154830826075526389467305617219358690906301863674897872739972734552119301864906422277287877982413452730352379283744412846857519607376557041095801410485676828187439639255872161258956001827827723073105433549876745161122812705416421261843743322614807311716890392410059426003244063655290047447173077790486793195486170585163955478102352061363971203908818143018907338668840934611371687654017277270108945956159997514354113401722204024728096931580862585517174389675319759917062416482968449546883469983592559268931325947019301477334638395701703136080492119214978951397630002669686521985841711099385588823342910268275926135481119970712779525798361070708721432042352040211936364748959422744889330534359704698128717988398835050070829241229081371117603279438138503620727515139431142952278149175711231507374786380133315174445313689682408755298835009029579767822550252562775592262575663068337047517545462117034260303028715605858505242613352690186551769037588849027079737841583258784714642872897266287510248935517385770296273371385528000401061671946611638173916879565651790036134419655366769441863394038415522701592547677767061780117241321641011852789618800744399546945163003351098937399470799693153886074111311895614700355576370609790421049114560101857777145165973414391684498631777656297273126680536457323578948243582148538729680278056966385597245159915752595940209969978861133673203156173880717896168046474671141928562403186445916274326161131181927421352684269467686889634557145940744484519993494980067751846740394766112527049683238792761369308667941501099720169296763433567978022750521150191188038615967131510103208490950847960188455924284641427657536720245299945332578873496832860841000290697709080224718880445072072234361810165542323717987098435660073230335276343326067699888110333411504113221713553133262446607798668162317777122431271617355630663507112070169854845742575800622721345714207386500200429943783478040579341597625363368471108959253429576214916440875307428969331591016516795071843630395425144722183389958507518796196437715639215960016450271977697406789552940121107224309268790258869739713549158554402924325981459260233243491552061895474542209173028388324643414192602513850950333771217822276768026721489926100966434223546353714468519055164306720823350459506462278341116820563392139477569311231911646078902241823847976995831718564553448073199796459544753111019104636281398783703272742297762833606703318740799781543699038421276988292044601712105279205003496620039542443525026830546468096494943668389488505191129365705474511573239728256046063444868501262697492828961307719540008093612209121303210813548968811621708344807751365658627933283367530177275415731675126658992116258207311710034127002573301816432472276482882409431247421692269664836149446797651409801367479338652792832783408358791709086663735643291577887966512070334396638414300261280646958207978576915786665383142816037250229124595263056695578381876887241275536430865765876111456057631870914070274394520549815947632293441387234191079239555362021663569032530003970978456820553381015674871328028100452329870857574303980177655001472630296767362421283670681431467124157760288200714369880803243381482603898479783328100532959076758461537606807001788766166227009562739207315285316880860406899120200382104661653961639584152684015084387738669790959212727454006074385651060699024269038540906526968292377729106122178091824476409383520641470961618323481748115062669077047710885388183455954115414512328062291492848976795391642611235882657950765622403735032707188355262459761106044067965163504483809566399914498563430351301400527148462722210746276043625055063043007595126152848275317282487866924801771388472120116739988493454730176037123931780662885235451728359784436608362716008376259583379532977184573403859764547629367292495074175248310794099763339752474322234186525639411210889816004049994145214694987186604896194313077213076842805708685201361897116694416359841901920896563183227225807656162633648773937893450398287985207504180646984681746386090123238874752242801842561300852000609586579292652009809713426796983549472811995904744354881770466423549401875493194033956702956369122564208737756758418385848532987205823770892073002829711055115813841702161658267734521147046694276092257962639990124744594694336693963336121287217090859317001282901819276106385827179628348575100363928563113972643649850029777171830141758019732985740362649344736581082796309944007606387750550781253860117114873040573635954613779045263354362401416135105377649860359812991030780457042994534338884200062036538811930556889506091826243323325275143966512185323438133104237929809842940423605198547979421983000336494619554933766924953899688014413194380668717446142306867069252856998433519135069066470303055741119560997500074003555552934018997409401960512852531531440644356912821896517607950288836300608726759931709505565764580644434838410552445307829992426282502559671356068720149563248253900758958890703559851445287513487304821507975476531904995506333457198584594184204232137497307846274628657124627306790449569293365078199045280192570795156196625632059514956519689521436581216389066454696686446041899475601457321794150832444775510595693065923095657845019379782938374115670583093631377469473090704736078947247426521043828199816106483226536243627864695226951644516445598705233041320676584794194578311417057165892791073459161036304268071676453336035223891221004203780334117127662767111397691324286083518085654883148104840400028424593842798603584120066473845608406608430755548397921021283339566692434275765831894233432500474108822176633063382739130194725041253810721363425586045831436370914972670350472314213768830481978044249723664761857578817952425101283192018990104996441122267262980393779314849625197854118302569024614216977233000654325979815360275408522316751202232104884391064447980325507080434796518448985031393062671639870277598270573842128578155138308059001945040795666990427843188310122220815714444006026263591702789305673846650874664182226105803576534424723925151173667817049759830294892881121732034734006845914227508346437579069501292512555732516295602694915608591175080963263475629432672759134695286898110502511778712908413102749245765899375344632517355897226779757974960162212162399293010744812662557404163145101080713190741961555180312357081111630381918765457172454326511528799962235530777119097625697996424634766681426673050784034669408188043881805728261772985858313571370669097275154562234880666309397119868571731232138055063022818042941753660337311303361776745519654138274106772123969773504711221243755701605745352871428437067313279998903440215409097924703233120790265116847590427529840321792670978174769309175972271729779506563604498016876840532417624753422148245097723410879551523986665537157475046706557748160647018450338349943291535456455265192685640001135210083709334092355533333191444155760756381751776580449685751177850885446063342232156868014806830656386859423441322875211729064657614109978743376228826972039707150717216366383602943869766772392082881856597802279083734907641165766774494256361966371802459187724821005320219885470618754294587893568961503276709173521527762315208877308450640007118464489427544695691335254893748637554349959829628134497368033943575280778009091809574252116442384563875460418120841951838582076604614818458748260649487763608319521463471961892451873031960657173257691133028629378086327068433685412394996023361022007752141621427640320325033173041576192649278085721358692367728049263293367116804237218573926328103756646925308454065641863726955451902339283016303141133218021723065071996728087145154515100276112185008524415662567437074142228252207084264510768950458182028104292113192669982871846584207216592111949778554480946342171435907286294982721037849853862810572365624256825904809509499419035348314625262642316896847080545272167071134506052743495531234418971702895869810946623795121129413651913127655855540734096271407769365351850489228306714909316527463477369462667243484327820728823580704415907049028879335343726723147176447053784687572920554481861965630974263322790076641520850683958576349617911004340803462292867665062432138853143649412320270796531231821698255433543289297413611020423199566604273895975227122251288133307431662322619312554543290096194959585414483767356323516024233138682886871571243089851617210703950263237308921635941053111098389801950747739292028275416377277788128787997283399366075414787028465093825897751602174574077016690538664657632143892985901437761399249528310509655931773340552519604429446775959905393576190137073678299896167822616863928635950384430532959336110053534216745374460841300752397962758145252917694581378488269251543303132346413466272026792975087243191624293066891287307924408246775483799718433469234950296950272740359005360662825667612361334893724285897465266875678129155564882525873659377278326546747910496910481151121894918612912007431324073455585301096604217247478537167685787330533479770170827093276375095030258782113813492352868755992565581947739330144844491234720967396384105609281298692031227713974198902977548549112280689407995543473141860458065169019761332872508414638792659696603409671434447542511854351747634413296996111823689475895114088584711861525789673593278642702563253180620565199294904584284674366236099081118081343356775613448589782075602438794312391176219146604504951349217023202086989459429214375166513830408871836589147947938411433772056990598756142255348912387693027488797534434391080495461263284086717277186985433206188554299710830095033355150761224892827350964006869570113478327611342953357255847014609602448622488110443574679260581782569294537832065339584767040877062917219338289379827195071223657146394714982515489868942708414460807044895172561831225879146334332991256485027737836514079373258188067949098520306978781036671340247199946759168353201499442063475641797933986486557820857305765753320948028859350337223899136499056161175673363550790288424312290563819692231576928237434346579420205860011345551776939301462436509250526877500783344647498244775270000763278508122364780104233425514069450845540364162899088247628638968454916182471669749068196432250712490810572160644089778149088382181844674349260332142256556938158691057261926790687451543484214127951193007986113398220403689275483644622019856225059361293894836345136290162752006562599413225107693611218295616563128676326617340053354639795353019385312887968502382060361217745229540291087173299973610704152770682697454325920086139644306444097764761923104724191150233369137012039037505872674805570947152326151528790066199941210916178248939500644137975965422769306981875304542778976201334160695322414472182010307562367111648713636059144271753830354174062747770975324697016783852035348041669621500748834081854531036902265751913180272071360793208186842908602962592109901572201584524207107224494030498257766070231353890377765438315583239551840035139252173060194436715879449093496750478817260987948473979418277853725802088962530234596075841273541143984427562501742969634493046862824605989225021721865681298463590407964121260453113743410918443479613438686037685150643898549237481383863588862757656035015456146063689520194865444730270997339732026582946542659341037158989197943190194616324973831499010511253708665029837601492019008541540630829153223963922196322307618297872322062019164714497701005395441762420584023594464076739627366233863194195398250146254682429298571987107017878799771535728298718370820549951892150395768648804371489545730474316225559988922407257754157465839938461860301034526805066596369278040572773381831365310700629526654103735452612984394274982096825760575633974454184241425619852816976023935897818632368141824758757228623624857500715246758794785153007081053030522787558147547646480016122354360923664619774826478279613060896809788987263957916102149866039684766640138470873810650193111788107529943177273241006303012537231854762987743122374687099766358691217337057613361549873858794954648327693929585530857566050300598647882010204855317573254780009459326436107340189207049662008589683243967172646528168197936889226129892571057672294905717474922684757610729140193705058176419889609830335925158821394466288009202552811977191546089025678050118143705589723230172841193797650117331396369979287513220657050368329661847683211976572915761834440949994709231035597561205236652925021241477588160874425667673232732282317042402770012887416108576716482893818711892138123435432012779564905770263205046615523116538710459259160562133559675423109539562726025988610041763238444752173419528411719333680534887521665993606952653376114045254134456443201346210375775727005220730890769177441840798174857840265058709739596716307747615824553543189907420718478368061621341546485784536779988084073362644461064797564786290576460379942127171498728919943957393658883363241010518486123492498190164279993508059290580244538520545132949409534247144186780628636356063455394823422141401414128324256467607649773254481341593654596785750321476230625989918041581389711822437755058251081030024381651751243629287000617812995476947777078155617421060175249644352484340636940415636693787201322838179810949400867211001171463558112058593337252531375878263833943575290463402835544292677868864159777908569991793525867508561240029005488754479110958411391277295772499954478439034085511239369938034301000242942865405026305155951756737930783744435466846611687896546660337777931656619286482662846574530760385999885071675323387559553581023854251111161248713573113875924610212553354581512482507371221091975531768336097963099797978269304199170112694177200835002220962973011088104039600338827450709604375290224849815831356684074592689488555215896068116065752163640256973628392042336563030004743785369283682921159363077274644447184973105873605859916583143077746529229861296840112870459767871550510841481268942497284540084973039608335803152126164123107531468655351112102784219185143729719403587479628442596209506629502658985508470397575598632595416688775324872670610886306036051757106561661309105090911243413684676599208552649320007764168463470702154475037392212079703267595729202541863389575483535829005826205628546067852565861748296745619417230330781812597585037438875163157398405565913727244358432049133022836164941038428709957868061285206179546515486608150006914279502364274299996098476045645973620896429194149465831124145087928295234803964630050912204757179083684743401444524963568236592940291030200082450913890685420298638718339078568364192727237100981326225112136997634311237357002378616863026856363325176269933677260709864666305203853731242171350123125244127219049134518815046950379027815231731498826679789621602567977425433530166259906699505682991460922091262928004307129152509481466842584741687676196590473203508202646158507109905208766611331877920688187823338046924151573126747725425192660409345400049700191599276678271218370437301593457443362239494322052580099273411278236432264547303339796114274564040615614564097725054308040501309347641500684708713831260115004547700107211076383361944057608290949050480504715751468075717940666791605829326487937080067506546982871365886787571629829454593394206040525319230019308959723814401431940022973864686233478529992829341245615628417859813903756358334565408818034499683298830738883159045822368102810891232637848684970083655696612884089845564885217729708741100585101598067420147455976406172833149143413850025777225391631649731945931186112942168947543948129880172464928364478264240318795162272157586647160298037316756686562319316021664235226878345444013433368336682673286662176734266527511791341820457447975797027367685424433662911705605879899827933428015742735787362283551930209243997915422952459913759145022671665419799961749968130716045743556784437441166759523702975838780939572461991257960124437866932728295656939449246909715736785175064665976676982646961177132560030484651357692134083649133699475836438309900312387971710516708995414009802163812443741347142469526729624524132404997792701794227294490962379576090925108036571934362561165576220604205083522153266313052176543791463025755351377711695650370272127832877007577392523040413527979373132167579792537452933823434883185751868167497724849136050316650551413885290465665566417291009140175279514087509540280263923596877030863627965871990899709765364507422911817741009615431790361384361767325752163892822499053928311624329789443787603393401153358148565878544049269547277692925957207863864205529895625189457562098143085262978130623534581850736122869433879336373568179479013541401184766857860937651697938219792864591034314212318208351970970714979251635667934429605592350806176544002419692573778375684491243368920624928492452420990144838608810376237885842735070389784733410809388586262329471220110703553102077429023028347612815955172853950042820393756004193952033797585921388815119819890168912488540619046198071647802885315502303350857095923178129354321022625198617315522205744676692993558857983253655426290075448930401888741634289499197655993164442965480830334956476108244584100521484196393726400481165933635055385507697187768521381487049645571458141328743521492882138999317715552295584768692009149396300799482906254699095274815253176207173781859272429781681560792427702408502939318979523828698232076071479069005711885561915699882653234291816729144347728914803850734646547394644742191728194135302004031969263423596308792384147097628474564303363976938199856896921576687027276423617430885702687264346092779363297202727151979314554345270008526663347541714344788791007507878303984505233917050806592627353186141349321114358822985328646090984531591472241054161043616025065399837393753998992384185005520798845864033708440943664221453590178867445423715224587360973251631331266806085609280388961978409801555250747792640667106531949565317602814861097125245973638266030455640515036739687860507737212727961157057667869606320101530972726580848982884858678457134580848676786992860279431728249571413999143803182995767483478104914273397913811793750587481856221526119826299155243235585834709937707269491824612246575881124940184098569721373088627326004009602488991743100776478962655847355892128940405325665488349055217385717498634951126564544205849879931828815022498059407531972985850265112846914176524310752946866229290280620489496885412285677842238130200069596035742114744036269133875931057852734654920833294697380969670640694322802481978120811813024946629280945557218070127833808039919395292984172120612021343588667086623161257360470999835769089433797704408173471579897332962126922141611669313717321171181766029641216739978211218907369652933734285913222215874303822577664218787712720466648971735984626953539443190551290634515181499882628283147492873084045533050491437023803934838071622949555160087686595438355936080961376094106834937933095269307758625339283782258218273871523831852770527515222444882414833676045773828220220873217990625124847322587558546462997787574435386242563112540256864290213670027720872362797865221964643414194015178430059161134382323248102111625628868535389191261464519352296373720420884983113714709361496868707985351101069695589295316030186624354174592690961756337201252168482182157085888598428292783213733231106386234381905980905916568473429193707913215652725096507318499955595871302052166191465393741707700188911156434301476883591455361148054288770193932796371361099663174643780821633484156206642382248767037819000058869776517435345580727072605794555191795571586860137870467358347998344177062976589624151147988105422865441124221241050923704072699306481146375353767128983807012690485628198176937713332585809686703858116331769528508269400334949968827672458170015205644594513467153208595466078834110965770179697620490010321725895168783482721013568486759780439009143318467358252596726295117948354030652419850964367508975476467811287839300997734645307434794692039167872085198784125774202358434263098522964646850574296764180592256841799325434070658607499975599903745414412794591384799406013389000364921856357605562539698797387613732925822160139581375361747128345976429241887795469284359286651071921262031315306382824996502912587212620867667532495247174552799591684215805398918879015103735411405921533353437071068251462027180301379084927476516316430230564985960071914301875698252531164133561090563139250692983935765138312829226545875804155856672863873668922105842326483010871771261376394399447253144011742126319504988856255480169163959750760532428124705915191116537618690500827209293500369313954384865404701002369469385717736185314974984637756960034569203650807512425568220555213531727298577960199631813134751527587741830167136217467473587596418039034589074231542495465752949034635909922082290318082686422702497364527146542201384780332734994781115367376971932204202961847005188871273031464429808885110086280588640079743007790919686810950409723974586634235156771098578576883580087697382913194323642429270236614730554369796081170255512619626282732468906394892271570701625672683432099188464690343053278620902575217090301625020258304511232092019152522893070280322705164585527692480785461252147844576470640699007745178366224308017479094038652401578634675639285046504799260902570239068752106985073082776461779016698544175494955262448094510601017662110958949104026861493119095339381182902438689717425732883305526969516638111705681468025483316230160711438450161409473227237848153447130970535926931526656575667162554795101410178377816309257031711274125524366548637097532667384198372909108409568067203955255698489585196335017263571210201379418230831406211702439875632641337677904966895527713136970550012852223632470532799634249752407953369754359083038212421685547963696756361303368493782292763533266166980387180745097782183318164143347632787077591136181779826224672577372163628582697380902739225758448152320094641095360397442214380304464226653534284619613263221775527467419638638225322564193483119174265300947357479839730283227713311205841599086771997589113880107555332053651261318322736766566240101248409589030615183079396320978403855297974257567634026533806294690576447682267047397905146863645826458352074592970782352196395165686566053595613962405971237809740562129608654222356678717944570321848880288310463229481571931318285196469872557732009057401279373649195382174900456530053927872983590436500877370812579076609784933284218701260314590262642873468350765893837018315422154478577965683574903408696026294356133238041090295306798043430773988512930755565395041145737836203971313778596444912585795489057293822516262879545084118152825976507157583127050027899393807561044980375152904647743089540719456020526834361114890804709039507408602311471777412635087574746379895782329226947708078658409188939471125243716343514453530141656620987955460614921274933344589497065783769257001461314736052650460916216550832895063949956802436625683967194041639336266664387153900996142028696297227222742527488962041026519881377269339047980643453224632643547072570049015604551806951263830668366741936547793272006853619064450666732718318641343310884644690013418437432183835435108687357212717620636709604630644158899917742692248770743021551063813404330010992243428026156589500445301981648877097199105593532634029304430533299003776376490801794255627118794982680179453421853548541466859696658436182413104446483817266312764175598087605082121168431448175813371740155852777273075785516099508860410141750101349574861410520690562327656373100380902988243923405983338515973420949133887751124793111894926145778221415284729523125862722908853625086375319386106824301235907114772916890070865514158678415022300296298300338611438583425020672298869736841508664756875191557057033002027917071321089237456188588297611360830592694741788149057857816632001908453398343005379201845229549109982410332941836849826785371867595616443730870508054780884178955366573045357003208596589627475542125886198989099927190339959170411217018963917750924437813525605190976059550891903303268615196999601091187725214095615177478511907483840976841585776633435535693488205739716212506651094282434756628132643166721957553524686618330335750833498480085985595223768819657070470077269032436187072561512221947879667442321762666306452038136742187802171614358223825280298013689681884064867992281664274441850935670121082126807275437102999097033026330766772374610038165275756630594468823997041306724741054699949392020112103182752516702569462496478100369731607000600754051509435585111395445301442387063125116422303185466866505271313902781833837009954640392578950038425067277812611152629393299254554361222474282123696799238428643172341343333269083414854412153006211317916592440126223336130662082280319485374442959661595647797443440791780723220770104423285127403063960899374914776762201046531115567235425782217197973125816491552694780200254815450118751591779911476985358411775251233270419416020023728137869492361627523069339649267450730254839965687906073472534583056687446366853616105484358760775207557575074603089382709396021243866867139775528031275912073929126831421648374557504584837724568414928059856943468363120226916562992998795825521536603538929670053107802403425610609286646114450027553782565281724697777064046868696422372995955395885046617720538136869157095045278343244777033435703845064762513133998590721916867454831908813878531523707387527553905777455659529652240926419017328933554015768397126278418697989725011192600939684207953926872549172887571416406836077491245621912342336017925448757093005223185041431063488641896413383903858016740374664767106662514586353991041943712006055376237293507500001196786412144502305358755134898363520913301930152637127301309846649890495125656498687251974995793955821565568289269134429000377337095589255647422890395324215624748455722779891605647189859911240144635981168302781811361066978139262021730120935182196490473258642548075332140689347505531809574250650025480335605091367933972683634970374699187543593831290262366034124283870598800613432931991650255386953735433671635429761076100440566119220321546604889817114823118072581598247362133164961147256966371074239214762883666402636659541034737437208779453160045322783176912348144435231077725652381315075274243157584202728888704623094525715379778235470052306601787746562260196976809148440161240119646918919452733965126873984860453012963678423492210064127985845386063231437180966179935359022639665626645508398837083319485343134012703319108657954684693783118972539401253066828300898670671003545021320705423652396830081313928782932200600473749892589639579208435268221867929916029908584314509359570881099645252498118215062494833981969733533280750585132139375403026007543248047530881140367532143332030754303703020784846123704916545144275990645581064014836465673866819327177747064349202365650686812376715488090274313775282222017332876306967359147940992876250072912754084604480735132060456333193094306060418805641724327619386989941787860709079435192504173346110218690558894862297627971617210639884290005410965760213578100548428224480462158874195887618717553633472361914615561440872025845339336723400885277887892647390946032835965906384315561629316465772891062246525134954745170082953317472990771886581889577510167000544526437724956297623477287476670807081504393037300491038969121402508072473605327711049988257023160244048779855328172138681282527676745153426216909813839845084390574374887832778024302920739426363621038360096972539989250569667687958161526162840504648690860774331097487938064103577428013276804053328677243578133108457114607779631926068743105600229629212357958106204441509264264008179617889787587310711399218386082672660437440406352811953393517347658684192658405857586420670310305010366327883081152757217014860283402623232861859528898707955767870930699684891345866791281748193544696596407581462400140576683178130768097663726267631602340132560972450154222576669172700464724426680721019577028039512928969708402397938329473956438664992618978197641090651488338270599885190914245903499167728295216744971689017449800968329319424658915361802940903156920750972209172590338838297099055876397469418549407397317225583245894589583088134119360424370253202358723532190130135704036710070014094185481386621220426671474406429197581993987013231125781203359709752427637345952866522873981816636367526925407369857865465069414469964851209956771757633928674924689635262085521726842023923859393625260569984677687170303724734888150184855991515794391252126752410937264331194198354382653541355647476807032446181926750231362042177213432982425878473056082314216018953526643136862254618404590941016594369967016000025197444190482759314992636811303807021178474252848153887361478676637436151992470375514397250299534980831734252818673637566420010884875054990229717703968424965521602830705377316287308163492007876417743874684420360416406517226272682459929359582747615182285981739143694794445207183018613553875222799140707272166272006073011419327443757508376276477471033544776493746734986304124172052104080069612423664106115489719429741940979862583435655144471332833051514941574259449041809170169172870908694867718362503191879727366743220012435993137789101847845950157937833844162795860695447269448473819966531894950679094809470590622532434407772730239708722627898019118954090907044824220999170638866131015427110337349524590970741644478198486700415942617324467069630183873395963231470894425738868998856128280903080833816883764705793707332762810454749431883004229053480374849871482834386426219852093243438896013137711213213855892987159791537731928241469940168201095309747425468536964399243247103188675379944198119712791514328036530733520308015344405630595900882720307602805949601077128369413957686113490342689551725197816751408189978321401320282247239567660129373669963441401029289914795558338904391716352468817211563301857635607753113331208595698843197931182140096270201542108460336314597338948018213979296049182902300626721766175184521532445717862287397415874120205393543059865388828443150718461635380589141351260114185117095971056520787768921250725167782454722460450531096701443491851453654981846484259557527623875677372268231625049644799662002337753551375797417427308173599527933600829188792877328126407960402446425120824606009853844484555727288406537281944241245630579681328148429021727920545122038673053712800360791126398358494652474312144975450224870545912408464602281808742071945368149219053131540649676113530681304548015129316232061975961701790851109135200860095513759909032080305251917477621844170121299758655759983648969300516972298560010987524361118818982562866888621816599001898020081993905088520315402932285770094308224690538098042191992112012846262015607278744004073717042816182365222630456008830220260563093600635180247313158805296888274098953232839175638355365210983053232900776993461513624718809048684048847812177014649643219749114298361013349867461051100727889074357178876530303719215587511173698432562736526109959629325696946018684621777759932407192200299046559608330608056360261814948695806105234103399218947640699074852305006047980295386710441974783347373538326444183104086284264268179929857666089600017935155065194673482533000281959020833629669318765949600081002823324636938666049910575707282127144463754539025288699858451325760750496086790099171431264331223888088756696345614909601133192456888397403869697357529927691425464915623153716709447322840776047760116952829415680188632788448846260138046889770538564406290946261056684931924192920193028141569541712935178681517008074285090526349271222069366331182783639854477483835003966596167816967971351032020618930049878449842845806452792147127501371042383270887532654784683375633212056427929969661797243595511475860270439474607074004160436053527342492708174661880718394877447471058085489270681724615614577070164871545780134388164873035553004308125973594038967049951081227502371342556866791521752691691548238098103263075882216526520704126868534277225577181584608229055283197854510656653529814458715055679145178766733136094155481914560835219602213372137520056269572020236497378261449281874103816843077731580720305210844490469233801159053031147003146408140432301665392892956603658686349496724240315076392070115460715864975387588707868753246128819862605933845259203510731338624725280245874818400360604522509560323314641774041870147840136514277817578745574003539593344585356559777806922430467900004373070243561211589357402638704160023777306546888185277781915292425553823546688205360825316664587878544087637916773967066609018651157474995628769801848687170447992738233987642963104712163031230319103283192876079619041644952589603215332772445054077609583979740996398166176629981626993334369671906616810614941228066632646016156830554026592616042539544737369574562764038085013516809795300274911544693668126827130045791529233855962473831938714608255442695653913598055055087140720590489683871389691011909481464785901932806055504924487455194154397236207820889498123091256732637570604940240544076480134202877410293037311396423179337104705481737178419947650653284510588108466395476914048811622770630877924723105744985298066888363798326099040554081768291265692307724022652991550750972227038618129913714825718780583694943912184074189549506417365510107972378668275608622604871189665384877183001203136199918182615886870139935807118254118547320049596369086933474947399756805744158661068871636085871548697842914138058527801236747436149821974108073947594511154102243673699884579304274746732062737221031231652481803827487945363617460691282283276509599783045186124711803838247730602143318349000656846003527336839090784130597227761433510787321240400331543122220621560524679651780443171307670634906232390956209003490935441582244141390602174546104927550600495788827379584573195549261656669732981301508045140252241000029976468733099942896937779801476231193868205116791801999525378621963172229666971076737575371205249259246047194375943689334187866177887496385778244638834327835930019537456040494620617837710753186031133186100625213523124060974590431356569852012566186321331922729901445277596317323306708957629989249971792532206371542989202602599620384234251061514748394709697608233896743913386651112827513225784640080776273108909473399948231660728316324475518911973916379441560577144755161692824110852510569328899425848638746333443579198241730818068802391252482894580386001164767754469927565253150913692002801524583550682562997367538738373599038067188283627690826093878924685504988918033657914286007065640400791375792347947825823157574517268254247998768920621116100024493149122928092706408393189859304808658637515867578762568786716078417904096704850219498546414890735470526461364778411366492463039399320901086592764787555719041821671357127880259758248005806352638367634779582589155546407263527680722428186697206633812189275310867601565591553918315204998626262152832752095739778645884488547316764859496267281598244205418507737361887570072994612051587523333789110148401586802809394990935888034625930568710983144941142222292855879528579489284147113264543169424645201190367457926522461256232557132892274975732071257921467780898770907123406121212488747835290499063952789048651869059548273888482126070817695909645819106688641083378465124780073589990932649777077750711034186347888516293689023792047077750716680223150639601370616836345879664844416279582387678606106158850600929203422971762885377110459290188788091180638311215834741394088229513867627960104286668100878158224034478342476966181560969647731038021636487729930077701804830080920432308915930610655411668653383239325032941267484492373059417088351937200580362456304287164285754255484040717725585405878108552655537215135038333793834198122604637716551861433977796500065449557010212669657311738097816011307133510707823018207092103375286692476193230791418787894870915048980615116691730050512169768783836851069431014398512692267508911451510459561978171030935103067690142171049254821588585108992214847903600340557711438154268891689988690017163408211652919896891348041317553337646471371780222449640908265585089413133978733642715189476420126484170075110400153337138511705433273993010513838017844383212662328614475608906939422406600349140618458946091643629131967296854124298817331023407665587336174948073304534351195497408593665786220788441610650674379051283585247058751111930633487819941389796367203349109971521060211428906427338041438005770103703574030342201318437304246272329404114565039881678758792463056800938668497940810386966183328161920867795708830435076586620534002541577937403222585654221776105399421259401012338323462816054067650740056134711771090510436893899455155936039534756423254524965095629706865196035235738423019898406675603635814967242259936956611366361213208715868010420127797839838443298179760608013831121497588394512494696982776843606845336065264360566343864098393560335766326164710268195656604345003289246579237564369089663966246996137426938622360877746310078527113740573532294073849212145217103542168989331209518946042370034340464415000014463885681364338094030261663731869301315932796882892159479646578289376961054949000544749102043235916668621600381011204567790186776705203718743128709565321309567329406672731847844523039422952813914479067782068289230111388362446327927409913210943741599190992914702870104068330638485814422026888700519155390381657706907265182444972417189419627095510980910828557012466882950271854613958886921907393843206469653219469988864355097562739560296384142174657654662472203220890379243804924398045731388546321596690793662352254272222011597877752522882070149099489370350357996663235130287220526021609783593819712614333903324753211473502484530719538511487653485656103422229266644723858806471204160611800744447110357225979994887319273446375586330312206413877455213076855026892928882006873643741807250136952302670409914538567835121435066094917467073855590240289237703663723417341001674374200732592434644669560556768542719487306135540245364637032356821730526156877455418788358715575161395653239529708718074959290419677875369543494001874507656032055973926816951735020646615092238875533189330475855510948915632619260143007145531080324070769327847344409031994476444365491502317709038568891319257959658445049253500694509487346624283790212465149449027057680877863576944430843005396840744713711749740631068676548713716391265265804935805392353951969763333712670399215612235902232862554802507232218704672334059837036086234913361696345406507905940038410308977127411814636519027798970437024717147770615909984613761310256635026810436370569013372192032615704524444255207609162855678692261600724625192239481458177968207223710994597411768597519627305552360051117631913149830209186766074531516487805024134024159953012514945624981424664380757903185193323132665359118899927604636057824997128569645791410740809164090407704973994251470545722406294618337364838615631007408199459919644283035010068897440284921765644757268577446559910092763402035050001909936755750625310420283309932259007830918984573597176253150084507588064837192101644021115542056032761305461370319965281550087154735845924907575080718054748407085595659507308813853636403703353286711689402487465540648893145614486448592105164779853995131624275324716241697072243591677810271825281636195881220970031971616119571429429949255905055044091048387214815111094183034900187318721310793563929555611883924409409431407028113976319520833148257184877561802676536362043194483939538326804263090770334194376236756284281546935045608566908447096021322778902231545720124757592707266123313405885169429723882373686684790612298466111137013300517116649082895182767968375097575596078866334714609849326524906481229439137378934304519391793370370995827191072607445317387056132308632487443223174128082254863619347831531694649980860235523728984167777903619603730587951227197473966164067559091010460119379473912654133252694411144112616071187329719462080667575078347756034826478295019451974219593402985047909705069768042093450765864094014225529916917105852070884636597149643180922487642154236699355679023544826727914517704199453923322983106888647450993041177517676818806582446798166003369177274297167748300210147270577725997093655102168939247470125067847266763599118469663663985970022122476806952232802642323697219225027338832180960256023995451255005572051110003446344987233856626945914801261456514082333952209326403909585940747875500016537330460898381854678141086555998546410998430463398114569764951989009429414379986214674681829329759788788901756174734675624493937081121905103470672032344245614261573113318964565481058396516286856986771301429171762772644958887322785562646949183007254423298321471714017915555169411803827119313002700246730300661142409126661125903575770816528123380228302259878524182560620766945430147431680039699117710001518661181625892640189173139627157508081671791296849184326008915595308094217937037978275246884752169192344021723690164501170882143583196692049321979853833110223876101437231428078412583364311572611699210174175059968377681738001908982956769106767130476608466968394300819929176098029862759681086861068111912390439792716428871965938619591221638324432050903946021629027589800102932386175680439168236078958451427511019112766746658362082559330599000516235051565621958198724193939354594878806537348198277903020025046660720268314632107331224410132126999577479160484944555293411313449142017495134547419770289306189119806409431532192388052888966034390959469328847656992372564560576023263428915359906708367641115607796101310557362989889486771498082533959992351346311341054474983659049128663598660097394602845961825484333132007992828658746694264843593727635879720249859613984626393966326900454140092906007439783019010709587800554816454956976682997972535920096249233502373551431593039622579350563631374443569966110136566412130887960335995753798710000547775138163807470186123833864648199912481742904175680420326143540461314758188353906113866140840339860630943112268354427195990144405989305376196740667624426295541734053179824974412615041385001897468735621858439215438356678689872928871368569457326052578136574152057964170025867000325675497295118803260468523855433982842056123118487409756423326394650041752430172965514047396240050890344814904935321727410936130465575447659899086507596489052435289843056578467911006468641926742964296126701996098582751635239545406731155331750477713872602335906641186661629926250439410318434228767646232400256070255608381712287773012245497644191136216313867173969770686499449200387591402898373436626657974405895807070981748391698401135921078201831776749301198459576896787560992481354387103341800194417466853383830812102171910727221423959320543907184869925883852894923954641658295200603591986942379590047068800407765193912211080223013421392860781062189807322981980766397813540202195298461291072621679862968416207892320042664358252587576754341590032852337297015516185156683347607081040391278762172953485425612788633938788901412864214323787507850244316835441469236106052853106321739341352522282833023389172983247669787780514943887461238233991680386025466802975105525865542662733775201876151001623741634138411120384445095109756884195384476486389043042191056260837361980462803841968823493738204942398108761377229721048036887668509488278894201337876530061144927747357492854071923114864630000187810408300610911978495080396333882518453521165634875023519678287139234227697009043754728699822571987090292379547647960153198451851030016124637171413642531892687886389500554616137047768417779485693260352335602369084996517163243461727584699792196091395929440706593173284992074640196072813650443607457670966293133911520406358348976517568769614069454120392646880564968467265124010252422495835043462453741994748576474373359016075851284077583030740497136494246613112756435211048257836750257753430738345554895271176915755689609490696701857919312602218837057162301415082683119927196820710056277646596514821674190301398785511797144562508251808024838347278306064573581677646511324986284951391879530963632607392555326145274747950262761174701696098163171966442107095521961263512222419431604131785031271679128775048688415099914170912668504833435779328365933637234819067068212324286350977722127255704689114653782164470766426198787352797980441182005197859881028115895521329833400480428878264334527640133252000065822822873237220349316004065699072048836770053942281238169996117787078157001478972909278969808540186223423140726327493956346797343732379557637659784782165386789435475108964000038519690012927293878615161008546690970316233732641502509094667261232993134329912419945147765878535357583352430222910885970824986360456715579584031276561069263566490607853545775207202905594169896666418922532422285905004973206509036845581981232408394328377425920199831618608691618195917247598770361682716073611068564000509657516067335543888389138012051947942844067949179299863662380450879839652602530447846386924868145884905190037234576648238370048375489124221709231594593952288422624345374604308408417278495954011706686975844747823348190427487463608080534196108138962036851661966804838016594041078932348881797320435832588634218742676073330217112429668331638637319588074813845152699035997529790277074131912306037220750231644318121471805704094598733694868977938770447830246859788079143034053887599337137422961408274452911334162535903150052372243324675450975471632465417222701453823932486260028199801863231131287581954971847022472777724743424971376240389574012501475477585588929836115969966076377572876453059937170228091399746965508020394999243430584243750169904548641905621365485855382407371051180092283212599578845657228426983891516384035238384755881509413483945953736736436353093084330780515407004250116371924627342517878194077052459276356957529465856066925211723016424843657489350620785928065310969248022902370732260422732510808044555930644010444006047563950634214297941750235183126552897157757238929050032933509076535167011154065601733520072578386835044324238962937952161792376269994014198923656003712484988002565495854835119328686360970709967950086168447533916430951484458701881055293918045271549129693170742132306271075872052900549858068643032893455236567092713849285481160727898342605695148399640891542706013170782061705897965817434358557041182287958220373631837472868392986936874847853749043725322939045543210089655824941062752942612193012034767817552853944162813615719847118522135227972953069818387369934339684548952687784646920249537782051801591195098032927432439976714940432643184726665502251956565923576822712401339091845036721284980244284550111412572613051848508006619711516664538030118439343954381080689647288402627408618948034358847874330783434949426031310122599612466854465403764145082086650202575372208571239635710386643047440727689279062230850121584988660182429352691646265704537775465465124900875750974466749729359041898175060903878774664753729652661979634644601492623855448490732395931102118311020469209524968559845585296213139682788513147466724388139206469301254955847392547452397445942386954951626717380181429598355012473957681748938970813676566150454132225164596633914567940049637782961810893764783777415542678375847907320106900216357830706814144544007681795237131360278552738252154865726522534828256917915668673818230862889756665128053505820238832877183733209196281661783976043169606479211611378519828851756545044347121236187887353611050016734170194872560314500621174863687025696717806568109199998650537621472162850026078522649918514210832246018337299011415763733157875428835429073775238477802955857733065693011252209528358910067920808830992264706336081355059735571131992689772196295595653089568102102113299188691758414188074143914778601244492843864929668572702276711702228523435949046872796881417250414995066172145503599997767200967211839196617989139290608627288973760615207084230802845609597107185990055174868152905139072052114906077299556333571959135156871190545716599572647559910677957027333033862282910362801014635026648409042713045519389685591879281444811203200559750746076125799836297928867340480129948325058868355343467118672495681555309185143595426657714639786584324322445899331205474060072399860701625550590262759236784325742464613505821871361678120271898219094374324484484645865761251408215992271038491593529655832042188751698808524727105730738547426417098912332018685819290189130302772351325947133178594872265465337728084672559503940077523148136708290674987124457280683701040911226244723825762921162170824402488162180104755740903516157642855508346229766469508761276703268651703250786564008271600681785036174019454754473414074878734156400195619121708990860161998853560704852447336181730177922342814672246264864062598406430663984150635852010359363817639274086461794040845600611217230244332780386728651856759480364874976181121001021430698016170410445645060643928522630860231022840492245164241968611066656084011481485363385516094492980490320536994008249856697397717376262299973270072327473813222387670646169262176316611580659849602214522985952992136469537886791624647309666004209519288746069271248616922596888931860420108971371735281428603402608848341106178353825831226912430024179379306690939577239778471324889555113912088731670198362469101810383869255771114124344192868095108219160974944904770586926041366606905205993475144669479463165429613863565523313738595128531155747662674965414114798699541378886489986632819326497646144872260270042781154047272815823937437705838686537394971076278621945707595813523185624967808989219585258648582822475046111773341083078224989343193418353515120251236141079046981586934663141882903620393817572505423852347287634237047111924704059765302002326436330734286370473524517696493635135976759065795580979649581078688241228661121205728608693445838694499177779804358324119053917843440942509515446932488186692108764433991316998198927894988392577355796778753199387330418757867363148684985921733880019652422284685280251472692584190121934577803167879831714783915630623309232296244928756457589140459718839866025896782049986500788801851421654849836965513617708395034813552023119115547787675283541819350014057461819779501853759004051501239626826833314182920418187842530611646764682317386912855352814525481411403206572048810775218375108020149011158817833263587978664230327785472848955732125019039331855894447629965832902119575859121887381394007810460783150739466241882141037629493030829241043691603003018440272448603851348952831320451092098440773251781978382384401052321946548039721521100093647041148321495468325395047973678611397040623892337276922504328059893999220405135833703266536089859481364361409865325689951164695100209629045539035335243021022331667274227615319540028229552967920146854335614710162592303310948730059515549122500864292884251309764832846457348421205362684178345086665804347802537011661539331948846356420636824982672859738085267999090602336181995006395037222863096460005762280677623366081221608469034863341707261850095497742858843290909780829503353931383238476663140740573008323312556397362056816270967504435606611590451641048671544314083669979285726933942597647875961263523598522900012932938608739403878727158801615797532204124833797221326845906783877100970506631035395658386406919580948028047999954924681128455927358026806981637292146141076028489803638162256994908548381010039464020772378775687601237871278407511384652651950404406956044423931837179702693180510121152720939071238266784697500737103347423198727130527275854324714220675487828863894307820171042136471212844260747826085467457402998941321025618876794949530649641175281599444213991164979765371703948027090209980864801771780449293506422591055091044243169556067648921637896994566336331464064828745570947721722489957698967244587633958681850148191781375795126525155054736472110299478886412721991935318527500349535292322545171524330994636926309671857901987539129430756253776607450960582525571586378722808206032289536168277645845874181589547582118982642878142517034955090295470602124682221241791233396793844402682633629741656896984148874837819684336425352775271587460192201128055918228096780602732660003024410431167530017625653913358649838085161585983685174064730395478473296758229211309525768555688367246109665403521557703440711791554570654877093583350936542936505005321290729545570661007797179775060598740126737618484063149961091350336429576712836103491856769372983996195396618497208408265693926036216221938590913930916839794159374606810207540062191955332107376593128076784648511451697581458930144865501752405710376324613795634119938686734557336532440105221751751251997332623832309382707729052964112244025684224101108014902396624937923335268523875129072994357787941728840380157285823459288663147937885861743526165003057491500617166799746368131725230796475570161593797106976054033341420034997191954430523584954637984969543370424603457867343855292244557504586165515402329297014008966157659056720054814562728216537502003714223539407616173890178218375274490029287309749640922455741453337910822183069521043859098732895810909405285849120897335103931577455694018319436022036148268499119014113728232510292832980261740742204495171607389031423491140392301734928053155418482664162714809953586381418193925764227054088996788757614323449161307050678404515467444657689798574117797745216526160421548076134625729679491039340137909617952300627446702026194398600302723711378095196264239272237447356414557153520555549707573914601650427161417478209213892380088832030973400512564056621321056977011933444751835197334357273462379953115602604933725938567364300366782877102461159147888756649796386865337815549888402673499771380362727555257282428345585211305264834688147083158263267082893506594229811332206486542318018389134548341779520769976894014563454383154172729366316547667345338713165110391723334201983719072435526442476264541673409906046851737286753707342746328806278330076169695827387580419181950755824197810059877415795666056184159666134546244243373605538669206067348677573349231661367709513374646278428090505847362171764241909843595269796027671602048837340115154589208836757093796796007685080700213991657701387529356828887766121474158241295771302125648338956583227810061477149317147872483735248116536408405566098993544244039941428655055138802649050500214988768527756497828620429191804844788361693665090691147464296862479881735998725097940842654237987825736248757568615414595304136425786502587907931381616555703975832934520631289694600500482603724885041570377900465709484102952317148264383359179481669120077851085284203424506446302195898362925159744764849120197700664455723990545420741169282998947522329881783708602759699590268684043611353935583239700070752296191163818003156264343679230865044536727374789495756075693580977510972914689868906562899462031848230522002632543799710723599551928818550996066664671258117986267500991745030860952800465522992096623824782073973425358220582829674494934491224015354542255083575362445577928436868464757682196746885678058657880670388459250408397404461919565997307456879110816403120002416797927825172600436571496365196847959951605884487188454599612978917268555636378311241885037415928311214507262138192003154908117988494234187062762202608149932143402657676096139259804769435410970810960602354804525992298361178157069315538461080236783287619315123178421499110007907731487300285299962313931838409685265108649733401818870405806310327812144128698846439861674566596095564185954761143189134073056007319335894149842529106436256407003777341708220843193454711997216124436030366102786277109785122291470018929070603295591472800527472890160532534558462981268304208159170399981589256881044062566704890066025520173861921504186282957205126371669497040901431829610438719745985533671605602161925123662582239530673276401389219801177436041487195526124497410660095943632229769678512554813226059335080931400049667790064548866429200847315717262733474648400562563703038205278016550322729421582931623934117898755033602742930451848968888988640640331207113882908321855994817451297396874976257704877706988912969485289504397977680215901330656180490808208528094497644342992284461746529723637063035271764903289266985121776307161023974947942808836037604360575950648873351347665676951965643298197813697089219190491542456907416908356321502756238588774979012385156794473364207213097725598715635652492622228941066605878783240250376381326229511733101540711731852132880562408888202294916019596061085558562437647333698159123224810607894462767066256168380590658228158645637119666737431631613287477590575199943992629123114608770610875825219407720753061647635634348500568818490302336042054133686481901357411693255349434913841456311057146256002238221736925042074989785044863908591939492474255535036376515490822848179190070156897911157837065050000462099560786390883442728697408866001670604873142588575122985360015060818273318715666128288674696846243502492972580823081454168111775279954807721180500871483892931909225698295528706004021324616358915192493442762172594565775392006776453299576477402086461979805180559607270736545397189687123267956079449567230783844153585619280190324454222672632708982831841524566507822491323338393828838211630454935784864606109097901009450934233461869704852825907531159169896277232187901699323723260912646414033177655625214979606211721920791625949278107999494356769988580428306515018802746151609724244279763633210402385339890596082166141351342873051747658366357622581596682972813017727947207032909923585205085498844337827842078692558362197933604484451544289304594627176220877459920677153838754086566346549795056217116301424579113412202078360371252988290661996233991779712194385337884614396524092639933599874978123431339585441761370556455013722802326556643083237037476416919889698597649362947835026801298508458442490629642861840379338834831312966802396436133984629415120218895270970398477700170765922681672151635351837584563838169732760999153508269745613810037635882467336574072193670871146355527520303068538202952294193310801265818746375175055855722926304216118437116826703878865897888627050162679386575449931615938874557452419301584853668596187718926851588096580781164565114988811443470589931616996020214293930747323504916277275455392948620923426063991909077233778697778946111277915582790447997177670181891311386951599206605605438113681953280033002891733418917317848882451890500088143833307890938728783134813090078574708840150439525058806411275343174287953243172672329811253824079932172137919848613863655559305566554732124936233877145850930953805388429603785157641468380276532812520281147090024400816344296798895613797686420327141414373618087333711719564031120722484939601205228278697160507857575650770717278060467201722036089652015085167251498146485572654479741595664676525804311440207600115292898531223987980634924295022105319911050655515360580011344636998341749788751847708189287468887333418800579131497495021191043421813952959075134839912351131444983891734925078221867615321197052286206761612068711106230271858141352154126033350359238101268742721851391250846681660496946789042867668090100992785358924240743282031871070527528482567111193995660114894030690033776586910714504614248360145475592990602770077897715948417566528927515014388422586785771430678968523032522012646095234299416943023885525072501248974280929955611171335112796828980863924951077059154719774646045036741884753852098568964964457636565447023788063814132616224863287377534073498048268089676522062481500044531225901804368051096476541667592522267072044410937494719894678232933706714973202700408719299295520758040874738492484073236241291268281638787034020706700143131868043918481769933481019411660708204420311538841649072523766981397741862080339046582954227214310621038955763242203915531340580431852803653455413228641553417450070522335707520275881915880175217654060914339440285067268454274951873264276127189496824025264578929712522006899160065740624655754916597668297736204789805006577514542002144725396308076073270363390108658157771333360817250354895504347531332190877522564379789604094006925543360800324584131925504833449270924208372146245804230675643018049040458051524519776055387765198871810556202320516710486143594655731476470277146789907658855232643601837653990849813832941403776245887632385452461298345886408751389680744008880439877200585300238230149994732736732698687155799277655853026296720840592681013831383136905891928920741469870623614294377194248188633164884503262705550317561542713476019827442322914487623424953604698122481326241642722323706729853154139005998229808340814476417171179709700291128087809560407588663592155261769013501360181519245667556891251703778561426883039153924782860011097362841088902489465733957250404394574839504188585554698256241203358298198547508361235269954952217927503221293774348284905740362817316711843648966615454679692940588554149546320312206373559824086869056233591080899130429043734391461421031619281523928642892648343613899570894226266482227916254562935371057306906786357765742055186730773975584275234861565816811869202782971921865063005277891717689334794125215009762589064933003463241233810529710588987090335783417679794520086516383488853976710669876139022017810050088075017233826340363978205579421803674906940456277294311491924245205119509750494445052278698222998134261035657750112287073231535265657245314589900448022885430287144545288201172381068051014593517773195968693741435852322607145091055299825013493963051118647355063029740384358826556260739493670462775931252167213560881777584099304266920933568225573875030390064139662942603802691152301279383575821960607361446903639329631810333590543162646151444084829314735899763811302898902143372069774376847040145658353257500816418332818095472421720197864321145880394255692244369419739329847631085230621415770400377804668144907378593013357200307122243092665120801553505058302720913733721881222009039470206411166456218291085569090952155307493214127557269002923392705113012130557561539245880014182885077881577396875991688706441768363784653155370406606706803703907653699021403084704786432550724051395817613288676978050803483785510233255873543693872618395196534060112722866889295288468886418664103260514000078389028187325799644044370599817321475007405982066022539354070083024079711267466913719646287756264718819574216535472475830264924785305752831150678879439409149642761383168968457845949787027662383809189160334504971419197576549918636516284023423154685515594974094178038463404789300686565463577085938144656415520585247977927791014372809649556449340293612329745195450237868926636226118250498954239411432498301683767495678184825923189068989506062599624900245337729340736580571205259637722150876387551349584541306052799244496464576726534176504165044634319727152507995401468153651958958427503010779553512608156596103454385376803392781566287713895577675192544964212574707460013740771236722982833119954648775950601878385118246560580778850519050136497651374271093080516110032149846849488542121859727743838130984462971472374797478173921731569890531761775122200737495513660898168530419404243351978496328546028097819119055598363261889734593018178563299561227307318668296930630292175248726209190164703085970264687339678954938005901212830974029369443438615890060638744998535149755544723221741050712451526944490973792191462051442489800266332558489816333701823234903154525612499518871608102820152534509335874378095310559409301429147244027993117320721568889389167510367756041472239122617798948508913731152143916818670457730858373295154191425930409111361357465501836554227714206208582825556670849039636449337292673492022544243423161374953038006747703005047858563802747375560392181571690098695256789369494761231504263247091153037556615176986624428474262554554553338661082870610151206583807424780891738539957560815155501104746511382043456503857736575119349515565634153875781766138927388132162506363024992476573695641511753625741940325415317641733461745920987659500235272237381980172280867421608641399924146461911068769865243479223026886837861997531474016419425325374056750667818198960512707083233027378045185938365011443052113831315548393969995547705520310399647834867101232454781973689381563809013356039369043071895528099908134985861554953626607374832504343756218556438797143386930828738249078445161265067121433164101883691928973501750872651720400152367377420292448544126650776564293208362054532552777978065539316353402647214612699747665183965459685433187372053406080713190043431315123342062397508513807108712492819811890008556031495535641826373681120135831371791831403622888802081132365008200262957565865388203751261881669410424861484778011575653948052542406165545573432593388990737522012284713215948794047950241922471036016901048448616111096077700778785079504222055463115668346527199860710588964673840546258151320631347506972964072684946408073183752250341201039801399418634942966641935875389340316192314802729091098477698782523582179195298129481466728125554896366828547492723021269129592546936343289275347490411994202817564807152876863797042290168120293138013165830614469031212779310792510664754011355078157457692039701681421156275448042925999709272196328176279036291910185255988831301993367192400863987432829512097066959098690547700572250451584912390785717445769779558089395109988184360857407676082768374264992662451370792981846770155008617263338446570727065358723022113530014302632760537870926706705392752551945270919308752048132903467726865085013477849502434039380656989529091346941635926650601438800944210160366481333123349683794350080483206328997003338134108793459755259501492844704901038711420583702025911349367628556117507790825925025741555548244916285588942498434799324064780133879245606905012490807826946734892461239223814202408890562748766380710470436179677308059907711102798957045011725813896332963706045125783557661328804408816613388752186887186223977834047775356315052596906058003082133429949810359349461602594439280102337018205424325878219538427182496532824361707511066781274102790581222926518535842865809252684070858085576200004409082682853333141161276602275172543941398237352580884762347855690256535085839894891085177066247654010342561281593828829725043213753895983616581315886542835861615324903886867928735733731939374417525151498748049462960216747516602282635428471895773925835584693866186921241925068942411508363726439092624735696811790189204565458807144906311914319148011536203399173531640497948476736446430198700454390307299127920059210690905746992943986012845025035661935852352056434577118182077043961120988842149908984030236440608704968997551619174793979137284734263924613834074100319147255344556879486543188160897262822886209185648518907777628289450963570243951085181945533774702108365714884769852498623683624026620224040551180131006404378282590158654093344844466614015255653700039816112591018929649927778909368570102720336902195479098564998703862963492969284757995795977122865607350641460628368275649261851270492331507422511469819667689015543952829071083278627681545809333057967811525868886508215123314028435854736062261181411677837247458897881562904729670668830233179963006601063555271292962108591477535311301593222327769726615076446854107491839093606832921630443938953813998739052330398847786455107541692803462785459371864188319359304895910795137908528203215370384200584348602873373317876615936540888172720930012000986422866127139113590393534535714128025771875331473925662923538676358099716867402785286243042184736749786959107303368916957771501189314525507039660143883743829364096692883912506242165042234458458191975131817545441566120486959519713404930657615731916309787854044685731793715451808706031935796552995022473657157005080896195920392120222032904975867700107071012062232751497140187896476444515918706797134210115831835850467368091776839104724643273413292869779254727918039134730154101826887068923248873670973863677860170699854306866580153404666716692408795027404831323888604239529576931740397222574120669288472915250383550370685266915904342607101077266589593173212312108391452284901723370019552544832407846746625265673202352225777061623490764310481561621350662461825857368922645377342963862807821457769456720779722216578072766385712170879392084250374623363867268575208247854696543121310338969520531772705106480363339673884516075367893480848558139721432248685799292232880033717775526007828867116960195558261717559899673949364563410008655462834560527022698713224018934453528485202392574572130908380070587274750721218748701562101158158337556884717094798093597253727180712808782380904498440156936336862678832237714001214118740841343379076432894505113398491535326905060108912222448941372901707411362697207172067357413025184415562252045508214883936052680500634201157016251315810940566223878145237685474557911930336075191477305405961445069029864648435072635842067364081623848112093126902015361996451771453449215488262316016644499994131889396399416595595427034463256785806204121807397635574210201067404593094909720100582477919505783317423790622297895233718036153141867800874742591231077657358672619277387306480839207132446600571214014921913968849106411582016094497166435842169600769723220528227933798361749459842634560720327773373806217460965546647400453317038483562552145644800050097923616476433016898310235132133987313213672243269785031790668020863756815650294386437127465718237500777696921863502909330018093277526728511806920852637434498780271917117438543236192189198671477595523825684236331499213434496792957491454363525340515727522306666102025802946794179994815966544985535917270032032729575489939351281980580061069718448728687171508212646166831729183586244468333117757188406658988960567856397620910035818294122154695669833355476063461690803116977816537833586255561042749361793875281661472807302101072110673502301422967555745913447563374232126581540412143468085918855489028669475405779636757481361203948431867469789042663351062979392021030178392242972792176744717193304737154733933544314205185526642151860062025600927171303844328216322592542834523985615057973735251888562377640915557064349715925566984502202863950360466617307267831852473483963457035589563438642568046209062936125610430320445729119397871437922333327280707609244870889268785281355493117090965295040148920098820227803436125791735173919992847885971185624789696598557912413055214341424902027898633876043228621578162981165843078381445471628728045230166589495468605656541195366475164053515099199364310025059450390339886835957249412578016803222176647030785572028369766031693898601823244351135607363191180674394395617841406695942253278483080571090700312722314098102155403255480609185809735909786003100692796335132602872869751393702242768738837528626353559868339962881551570405302307590727452549523411031826506173950297631813128745832624257365912331122420073454749834923374694415569185562248746163180574603951206088538618054937922060787244012403447698490942983825098812379775951883430775007986735687006111750940540546006437005215070319962686971439673595057112585699181190509858249183109592314074832398253748136813736262290072236071311611154957964473171639509323893857237563887296798274100371267959559626720731590574538122253372180706639753405646916785858913355144362242629631167948132082691398439715658669947521702053469964894064960780948418611001806770263217866573486518431775334431678293831172472851044273011254921617956382981956548665985944561233978000128439202638924590910047305712708477350819861531437368143744461838715701760201882751593784800519139247132003109582273429576639021440063189699577250003409034670598170916473414557417905110469353192543907851315837982792026893350127670773314340367004952546746596596617845083144644816392222253757511913390165660766259014508591086446898322728683901322369592388912842747928756889102231776493529764448730315576991127866810877253116899409161691525722108210503902554765148637091598766660959418886971286223936298910586663239686915771732969596925191174900927737593854870348059690978877491316843036746316324693728514650153712502416272371729222534147342545595126908766383753614459715301291056847033029221325534926150890052015162741522058704677811035048723478000270813822203316780085134242870054891643328921468912413011191754995565544963905097985404638685979959288273042552281539716754069273575794505131292448635379589062582279637964264438712592833733224899531355978157474812241304009596579546990817529424620388744671729220577977466983363832832262736046929293467369019334301364329861645621120609034059317788621195759475227996549386430240417230546116910947431197490802252321008455292314830172455193467447370694743622773749324128135542390286302441532676353011951944023242772039914836792866640312400631220999579208880054982742384380151399416991269880028412779610828538519877297602046178074995855309425706223501981233573549577498801805097852128096507342314837432650821424159580929584188382276477157002763765938721136207136664953703163781656726906330050697511209695736134155889578770498790239465277748733599746039254615466954184600765817843715403630144794817002137522976454753613946658161703827517859313678083770717361296837825142379067335509904300645575338105807897784950457057130685479767984217312649580867164959159657838507213189254635160611401084561404070319219757224238732385881694901418150019763473072515555495249881173578906147228051458363750432305474139503954675376737925705202005794968083247479769153292883344867841070421327044365499811346704944743802264864197786016459412336607726557278105496443572083789150513451632884517938704130652008666506331339535371529308062687759423081951190006338836977007907532399895842405192778438951830839973460231126389099681731318581521380468521154048905726393497512840488723881060571586731641574762053499871228709411272598938175108299292447465127623042605567019328894152831264914575515898315858298162347213500976977128165512021379407475916440242338588320878935450319989077054893184306655373430024562155684315083134919487533951406383016353330493010850586544513481268316342925626099040744622506008462603835870029621313813850119700557055567359057900202214140795154807216715550916563807777122251745087804049503409006984556670324588977681674725554695029375790389656784024585907673499450229826098886733473310021481205051042635573866291166765791178502845738954327736370889167990522691731124426090982196519593521511169737013803853478717179361520261278624357334900558402635338396305155091998421242416984796427820508864407154159505053951209530452080068723697016740954278168252383331351759867791617407933952161609315587114074467600460285473146639439861794038884929395399290828387938001288265086303106450422514569109463373429782362988671618697937081987278487150783342926680321983673261628636442799172691239727541534304549504951966274492287525763917686471670411535130374679226149308389253013099125744200054223006087395594980092389068210536538029324043685004293963091359748973860087250792783549988650860095923245588453682663343770392913415372959200299511088641388858235918914350943606779312917796618191047324627517368398927698013942940703523481229696152973685789216390411997319839904225885977447736234390426513877447694978818695987259145833499568171091913141567229883664835522972592671552077111046724162487639157424026909431448131309865367658594833473217005750795996119394001511203183333678814526250647548703843222168208488687712764018234912529777616294424352307242690578300410518169524256801108104785357224619108481609079277917174563028832031225332702333289798718099145202159526636499282078246444968242252455129814781721444494739745971002199859330098307998701182514391670491423867302675122315204389686125978187814423047261897622015961985860142231966931164106027583010145116165056853206856202218345693410569995984154024653105958751556882680269845895574273848974259990135694105658429989753473296943385696867548820945993062195081509202259757792568738738185610906609416663555482565317898529230305299993201266626379469033603014053207238996901496544729372566744086701680819547185074082347405498433414870069711031175600576201761152801149232148686355060400387177133973526789326904800289401939793153364513111790681648802232176180850059209468203598230639197402848900703914807018462525142142171498850801221984815206308469962826390371197851205105860371442565528068016993062635527482547355379338422718293177341079478135997004474187305741436799423417656168030087339585922199923985735686126145092806532615675844892470130108893652296967808108819202702018815783262710254589175762052545666935153420342430321871342242426042377824803969361179481990076510259953260691854033736028377521747935847702979606637802252080632045653379931048317572462049429852966438112220390614592446695115681958017652085004178293139800801684709222568032396981910386127452857542047980429998679728017380565494687319128683220288119140414190280331628480304512436478488975579904495168112633134654207920528891677996294375524812357421213735257261598637963404842439886610122868713759846671324185071526131065803575508185181052111668407107854864688212884200701985597725161672973402006067940087833418428625010774260004725792739881231404571910699549635573350367670091133337543159283264345777131473351241475661677202652214775929555982867988393732476686733469887137278094404654438655847451600196517701431773232386665759432431199510121922884235730078116709484437553396753655973991058224379878954596901528365627322345564044684611150297664489764391619004009286935797335623146045665943475134774946944514834471158504516706036335825508583853335931206401261450583683051652581601635278273478694327892967023195640350701162447696238764412802486559430297179188412334406019869883547762760096529696873499799369780606618715231856917009871863865481345332960929996455319160732414837939987060429166283596549587967394070599910839307443050639423335568964948026172647738899846366376973274102205819469902340205792562642885259080463364011028714900987884827952410752153248746593887974359177498244317383839657914344344998217171002752320521311238859798803067794359125554446015933233689526668785786218020733300290216078258601945518165514069011882841026253351270852123728427687792378628530149995298002701093910441094734521859506591870100877625178390476017714051791001922807614311428723908438900604358088765655168781973598506273434609571167872198583337161984566308251461477694698192106739274464555482744070610442460310227264170566623157847164950169901614687299401378434283855220487736606669685098093761211517358765508240520618653146379659286434955467136015760739845809117820001066256235640746959956426138731670859619725601956510380717764705574314327448263841220408291574172587584361473396889560112581789557943786126425715470790928775252212027817406180572221072786798671011420643579383316210384506421295773189717763287592384979791918082861540984010921143979900419499461081220664438236806496475231756150091361614088977451547305352961144423735109414142118071913880334219966300818772708933683586907722479223603283577785373062080702798228796861666847550495125210632824732932362556467878847713099955636439825057671335735258041020841522111340193526614178890092814231341562613050269989498909356978905142630715879702578208504999620422325216961291389170426249332781626799330745213769088349690884058242175406662685746424574233429019674206588653327897491484582927539188955960758223156481183078818659892737350383944524578309019062169043872441811112576140693464147266888798450841561728403393549763360730653611378982912514225773032801588247377375293711707500000274047720597656864430597994165466779346075708709778414190581218696963651738232464295948059931330776317749562140380169743265707992200493901626776877230288569652826418581737630229836320913985910760823042649097364926205267405195728477189192234465210512746789991710500981412246161595262988008583997214307639683230549262074965802022067046092509024446667555567076170353554023161429760414905192873737115628838687930673844891639691507855051411209560423550723609534342405244553382396627244226294117222006200735049283363200132027389946469247808925881523235988322219954653858481785382784016006131789645021890653067135673258418812623201863145413945760552883552760833101416447635437634401679748007197388940304189481342219331618756827796521381068761179834878526066354634428745633160303902435040148888418603091321043926913393815077051560004022964273722404611512621421502200551506569688542412289951815482253363765695839177182672170134699921451976690711836279799741469318598394404460185050074830800120564806184040570565879778527839079594906358765873135361487034090037457874008663944512914652684374177476602395597016461099537830765307044501820408628792338089791249114978549680644227431169998894744145535669755201929290585389414439396733340376151007243339189730299855978678190048613948767462748264618578921201648452994153775193930715292887665901029930423784049898200789190537192145215507734422795117491954354118178591835674384453509553381389303661111897685960264670070119005123889390123425333665218081248942092457203016305711631878070216996548567959989237211436196689681425109554803107365197327659859355955214350336197544705974525035305619816616509178684218787561860004006675387624507153801027652508172239103615190308835612077153728215161588274205157485046540556084208515329090584674915507136420619639215096524706560320203087202949736679889524166816039132924588348790640231650152721866822147690897441913252812241257415523934959739769892667820131801945660972174480885977146480002203319972211107816386160837295002144037559225549045034938461445168311608565948334925330303936445255769006687447180840317262357466158124594052562159432594352757899855972921992349740502300137991125936144339538931190554306483162238620644404153733868488507983806492660969031408341470131269735135114691025707001477127811798127232656705905782297809079799510195989785507344254582669667830517677846132356135450038050396951715248439436266537522686416620694271581472984309286446965330438655510258036368297304669688692979868469494297768799406371574539554453835495810711895169831601422915722956449672423139958226013764119699407286609825803107275702049554504737494104146546050494419092948457281189807465463981627149252491619821432719479098586852761488836638938243505242513035273968340130769647630455813683867175964972030921816210163116985570251492560964321978652333901572721494889245528865030373300692372390559379715334614728042018457155134576279336991069138056405409640627633637508828433196130920432428296118921928069099420414760349365326614045846853792087583514289116047802248367637420153288155022608603623630702677375378964590793188284860633010383937401557514549155562507541642674978721624114283138159118047089871306276232096274460286395048367120433154651941691045653427375876155908436730824802598211073580241601080396774040605822837778716243187454428958608253323632559422726591832331944631213679375025982287311875992237015491058671092901973719843655505508405143888996991002650491583686562096720568109478796466479280977122688630255535672249482129042063109328720516133083562871021272992353379208671689305939125678885223816547693695134078096952891832990536610577610755361669644631668198423161632176269024979390820098172528939400833707834913846812658129808184957527108769015308760402766228430472766253083524652149341330964437929959795313340064138146782872270016396748851381077954510935903308236371780010240200967325118710319113876770084666399670329866457491159339509151223989627360511222501776324259646750320194516203648954122593786810827449715996635814618002841727007762362108777379855789748109888494411234477450109166243111124360531615856424637892264256277914565193172983024590864867646048880145755714853296773113224036011105504366121673589797142431194897579793413668908344180719274982545340973352526413112075897595900543914918152190460274427341934146948633976690597125167395151467048686973412731327345564186152014043290014762954291081408148306740702062789034550201772432936127126325955270369262396168832699432797338078424172674838039530046370385396871375292468085753070634692671337694340101307742332212050136721696569876754122373275376729291173039202514736702606966639867946714118188267389529761729336858415397084948388863033189193156937444870639778034769130786088639808053234807220258386229184328807197245729306980925052655073631692686673236612305199151152437893897590442690690633558530329910149147889490322241390394295709469437734448383231314219219901902839079365048382619139515467467648487244454477496035728767630489667584677480056397414192350079419896228284897413687057399382220070438899515473753839123016499333908262043989730238210608981686017050142638531567985323393164313983832604393147666706248592726184859535555568436917766371921145857453776347882923774754824680748728849826613853465180305499972733676856002596805083150097687614805644730930327043558805839102827046098616463405467923064657587887254232662142063041502091819141732809587524613540362704231649862788635144564705189784190746461519793589956147773725582393538877783162254617300155960779326661278731263506716545049996232683967319847477683916971213181481858518510872041554147086214128343456135977375360625327474525925037745055150656236053344057032047117539477530935348222303172903137172011399549482387513953651916743547333813820291561284337142325008668728740337910912785554731901532129390902436904222261800028034904969702387969673688266765104278789239972491009531605143351979373458045825792323274123170809136009030356515202148421052316680900806879458860542557397462594851365228760446746198525455578395802520910479357064946078830138131533468341289940329070157563950767970380758928201459949301931390470074062148724121850691407072663815606720438391822607784639699560290886458319144871641792474691125119643015612518681774641356931962170486679183482699049970717315319989805999707502629088562522905003027121879595214963694339229658842888827525105891642039854785298926445864314245518510015846407021699340884940768481865844615458559890697679294046213844329887023222759014807724052049363088509699113764886444985073267610611167415258773402878276201745752063050665469939188081657393374751738295497574432464231252616079718714870860533140753003721172412623389231279317008053587781461951137390053041263403219928794079844341356077710851351137990520475219602544804366369284882622571824190912685748052838200670960174777419229801257846823066060312120180328456664269357070506150050889754193121664067807432725297252368468838647390152843859804834699227708827862620413830475635868628737426120185998220179770207513508774152403598063992498099677186907080654286168969052577132180176150518002900866399999648496640206251196752429774801439519983292746139716312438659563649745631478838194656941871374100629977630496969285137503308113057458670311349900501140056738995939305299705964584641194648728495825164063939024564324313480105427270325374247210587715019535421013459411272644282079691285593183152266419314457222787575148295474083084734780750781211885968595722146711858612846171728577935388145623885232415351423847931293389326747778712920146371552977044364889991149370345632123832983885232536722900045285683473359288443434488687146350968014454256359973209165154834222867624164375136070066266602087120901700807655828828765215973371637055072185701717726562317436912681460412224025900041037081231479115771003018132731018572992984820802766352652680974018205977087837644735744020121743522653285833673167191266813353824785728645324176149242283008679680370341470409779338563534497753245526389862192338783261129979863874505812568558183320318425127843561660374484878376276354107898379502516574337340504476438094615278073470010650743538022789568343645705848274249980227772182352009332119420098441187908225881194173318927429371239630325257883497620012483647580980065970663842045570109177532898541092405932247829680548425616488385766137827295681260422782956260254449701691827074962847953632772627953287661363906979922906838758464357220759036766684553928655257398218595746853877544900365738775436874372750305109149506496583378607819454665266939862234946013024455060502735213434566080984433995137372219100604583234280143617603383537439102763634237190033920224599639900009143585463507012460906474451638415783599597153966690612110636805770195260642479784229604716684870993542441522184054982474988989287336288777130655692678173099234808217178118094228208810521684895033681067865808185667048671996101710546169211522406721222846624890592551782645827144832993556286716933064372960808072447527279250779215976713726434225777949688240270860945714084856544213609235581919712544856029755373457156597910553918280989298985054681379728322245788135473783661800259406310295322396579035118020515079287330087270324453843166306759876291963247419947523291162255338166937797933287753296023760338845433865749108522379548654793007135554511609937429910690446505170547396730942209517787425277272468695323310736167343041358796867683775651629175566739247809928209264103728257083189475612177483635675728831007412430718381772789030591733135437225031789824710625384223868864459411231981254529240447463260994897608864681987825638280507739663806422008318980573541779611701755715483249992596934717067721973550665114696881665595675443104398602967237105211979942951061014203128814275126836602869574075942474481149441283057646242448485702806987461165173071021480069254284349348109252299714670803087331687570777436849547333395363109549021763800131554187084640489184492105793024071979551749406377349189529075428784740021716333334022586822528181020496678916910623030795611686721140471118508668732943656190973588522052358818497451895710717968504458886844604260108201880770362345198152795947637474609701559484009904374122571521341095790997354740157250040324318916936643490215512671221318565668394638956195455707295922349080846512786612242028396074178914444536441594760542959709598402394134129301879611748752623041769896917573366150160183764493250813315199084959234222740615814039680124806277285341449712949890805251787854370393815981898223738639520960846059767681107689173520582541994316857619152675045722785176172255638107673701986111111643062201816499586198543924376742617377228110361780431752320586310181869494824590296162627730154046339006238498736680330996487032805556603836545944792261469590450351092971361154934324066111729600889972543045161121284594241582123421839850580752551834235790379184039240515497203686948750623205873446463878976556555786494219178841502286161079883514691077317274785850306868568292102547202226814885263546935622621073956551792171866954683429107002443781812732520054070259470528136696140027442221059288879974317153624478636854468795913316941538333453347546213930474520099201127330501290691576566509103583748524330745652064238628435903876067875797039983000969788987127656598646378147991319559384712657354791803769094474493056410128768197359682638721612610845181707909167928058168618696026082130939737459952334240024897106751684754213144387877244337017224712340269032022664578239941993587777526712050806076466147825967840959798813292660155675260487826296360827102093723773083651213094623162381395877841213042758208989910365716656347993797308954840861846479164557357750087300495514247763079303214768504993050013746966822943725971741852550281059456361986189341447348692064765518595908717685150506414532663500466619067625789424632349593034660706373658591149187204852383225890961862565844146614670440140016048674177433104812030988299009222078747315088251683411393170269753319481750626872107433148258072036539425967667904634919391347334171395909084878906829041846084581813788306617636067391806847562265817889885325299030068076666687732692808822556082993893245995805823432844941131074715519593290148963923367160574903062535013662589500629559319597705313944400413681335652969282632883326496765591490694751396627867462559403515136815017663683513483200871351388961124059404794858090145278234552029546073716386072503926155718554604516323189577198583220972326378807906382707021540014088446585122013560612631657216070572261691706979436666142717980050236402895281157108295785244563542792507994659069701420904985042328215483758932505702458988078076824773796779548253854649456306011301119339472498171170178458353959092678129057452381048580967688086487926899091275374878462200880055845854246203312694823408869980277497309754975256708113598011453323500560825848964590817828073948383606999997768877629094996213430363625550234044402888529728810930703252598204223734763203663376113693376054862491491997238567699255568867858125598834529167005345427583943092409980585836175252092045558918331048086508824052103725496523837456804756029199946914909015262127992245637264292024513881576076792561080471173525652137083355149903596295094257285771419939591084723843829980303047432449085418471838055265225070806113425571875790005839808834281004139474556483955620947360750129113112033481172015446940293646178373525486657465719800566196392072638388403973495084101178420235798371543032277522105395435322852428448184306804467846352579471034817133627237785426437218640741439357278230390913309623102627976006863847915229606267851862107820539407076340456474645979055116965961131944493688506938115364056088336470500961214124377678032889217801066997558881388493103423615732338839022721358657462652793994819053156272763243511329134872805283532226571195816632032900873404214722136770735444953896130108114698606917519640037437755364040476206214859268990869307456399191431317652692304533993938371084922053301549671564975791184105538397716536961690494812895081191477024438273115894002364728663487668384213464349734125286408353102098332842287648552565712138122772010368354635946388887938189417643601961274104355731799584551998284111917349504261248024611107394597451373680079688583596093212825640642135541303619688220579671267021994363681093134599561731603469368434867761100485576213855663592320316201668588260105257996560914766407738114654133606578222508610306078422715985832162367331915708933834357134855004343449341499784414793063388373921611675411355407591346516427204159358962765245982107764636793674094534820146014979155705012807107153582802869812894708289893354256013025733785226431225171534690584741539184547878674421441961492453709873463849196865190406744366977710800974386394734924936312325908630380446991117185634540754409117443588012301624917259267879293524950852051089724702720359108243404398561784610890785770530649415384561679083950781905864888187682430939255396468880321957242322068118612745360309201277705400652490333560658933776249668159801458182825579527407944328445770761096800220237149918623575586224856210629256129795004552499518902267961368496432295994625939998120046155618169721911099678399173159672959420606375234574588839030171565492983609218737552474727871929491132304052247482232318911425038865637587629424189414995131187965267335595993008490654121082709181699986624656119125878004690925902327774246356479100926013940227199521923309210770325643511506001556304053340218233629072558609281721546431227968204196540103165872191326683074334113529654850468192554984369755848680690632172410755260067516135635054277804018987306592093098292705582558146735444939051692926694185134028852735471721572702169050378551485618834332694815720929321147883037610108490721978944749383552532854301308708260400968135759639596793780511593144096439969962819841304672161947340672620362258300461928355368474817480254192541318504768821164696273857943446451181024833988969066228094906150273671545957709532262153897695776103797106071942107096375938406587840872169544834537823095199695554271137967355373777659978163695895111305174881478539360534499940772854821953144739340543065699584661471836421416687397833012527703834479618667497297498586252276706006346905968474440311765683061043454025139758169828313113163813912133069929701399237225560946286039246883917062919288200404881960112476566661856295488692117585544094512166644022511857097493464011329798245478823391829178939028156065456574634377199031934649454779422952789311604897618773934578181435079643153110897320139130907996169415426737346213256546387707108933118607096353515900346786379929071659116518904462218921515992686648724256686920754643932643616089141374054098266038357021746010388083605464067698522933003170957847702408357148691000953636478715922664708756790301768188234252123774921065764515223374509246976350305299922933502940501621742174007806304351731136966129732960056521200804254072583883943526058911269767220303309852604752324842865136497840653742194740400150207923809571181704478267564604585458714723613342578216654057100400961420910741764458279115165792307473626206183242619785283238969679686470354885522858645870831076727821288699854978794994077058368591495284417325519990174803132996905959516813866320258970748483042257818363894070305644990240559300177673621499514335885336946103748626799504170142841499217873450848503218432332537386632526988881355235974396147250125652709221712114818521164572116834022993390079148002683258712552677802067166667538643176672578775330965280582279704556514648750708931767730839991621802414108391520312014052250969700912951403974049512947348087221325649181545876353670595665612849008777925696206863919469936015583710965902887977507778024452006914318840803282883052378815950146420206179124574224117478082688359141587920953004616664149960411461980956539694930858393788612904005308104127880813974295026082221067690800776857994052368572950674625449884479024687691766306724960901831459529256851477251430385282585467576292718491374688429122723314887657833797263768273140997089740327576125109509129184582378202559939060592362313956616383332074223263781934441559920547184474483933887276946678279126706293566402627932456818512846038022544154684177166868049700012607813931736306066807774584349156004043183481469844752539255185637243834424878966434976156857487806732696797533482654354181363833560599202231387434271648107708716416519337710541807035643012354478242759625169216201449951438108595383241230558164460240779386041372694652139262640303072887687280950477360312539196315584394913437164765251068667637228619296806310055367769314832604881641564679941017323561809106697718380058278036964623834316191572844475613599202135611195019109432666441942441516171711617034855506894266903067007010040976529008344744367803186970212486212691244825972065068262950935671506675089176677020941119092687577211917682078710294916039760550501608974121677150836713840255393574502680655183420667931588843354926932643104495069460082489052392524906635366749966745041586846915995004762787289246944632044877319672815912336363663260951904188388256411295868429183548361135910155596064343104171631632380308107037177701548048585951487271907806469079202069147496563484402795615543719273535218414344177688105566444915996239456783324412705676427184003015105894738049598799524021555145857020007789979693775100416696164680507211821227203968360257167223378388885457212122933147920892266237473305152132623071456372449721610256888863368396895207218909991284702605617633847861697967473958439845273148892056928993362104721738942896168720703324094822942834402382595550529580203047383644056299671983631993984748083880725465238626384598774820775127930356681071952079129342680019735498237466586634635722513625646244518987441422296595047148299335601227193626769484825504307993555464027294231807547455654807369916150845572059927817241112905418649308113150341606803242871293920309341469371974426688432454940241323981515861878092120216026706487280288128736800595170374550573796642167752505246102910093824554580450912448658330637422275164672853305196546211035993347846986785151897379063447122861432987131841620675243271540895663651270223248002652550500857532837508634675308783038744274781241205944521389373761269981375558988313963255638645711644072573870121942651522292386140178384977585312343030447723131350502841450688251433125821632908722443183610793609920167384606822175165996479032278059041157933078785860099165366340665228499271776397961466813229845264533249092334760641678858323417271107534130954966314806578391030494045991041925463531614952155737263228736175425317610721867501647879948324267827302490288531017421685090624376472999167221141131115696189723010527016324163797740819650521221030904430137826307042675770056363299370288889761472445174582976904000165463321466693389542121658059339067463443310936353899345951256682536070232411079822216764267067656113311896225873616677125391950347382422961096287107022548113211764019515057052796407111298037564773397218669272672126785403968323189079681331501889735518235953431660098765118057716891912304823287636798073348801301687856651410604215576990365218867887967508259136236450451829310008316306510460301767499620362544209462602605887289821198614935896392670961982479759480855716122391673525704542308639816158865053876851763385645891054720424073569963421360391724960344647140229549451535903803707885532497675784052313883082371259438261841014921906906917388623477583566169099605146460858355159581229814816356125746763039569918987520732354927268124279254527261651297402044739828571347643266497714511114942841464062021966435128780432744552175193436683994139450924253210128715632537926882734421172732667082207745853657861941772643149286846105583019455571306341364706988141837624667248777779827828548413510143405802946268815454449395568795393320282485145554944433885951639245754466802256109021044094704188983388531848984910220868984084909293871649363769045533760847160757495032133647499442949580364036082210875556730074228504195735913359626157317425438302282667936551638294305141339415576733208776668101913684423763204632603435568187001619883240845353394082790797858452425072583087763657583263891136817036245430971349668850542659394285641913119930767479120277096256846134152474683274160231646474484125938503173240781729031914431748207038616255364972387169855309659270185118336428800920588155894353511450915013510922578469627013537069369246060008376846151686805794270947524817787892129729842212622268280839366687325998832377574810962259420071838030879048814064451896314403423375051940441880559600731071305462864763495290327934841863965248967655295625901787713961153462810585605326791636690346266163662287105538220855896899456135209723013132599830442762273195963890366547840135745245432299810321766604207832284062139582679566341026303547714754880265952931957726335016393097341234446816636425719979225880487751874000388567601338492868940581877249754373361872898741077986553262754289447847351002455062916273437216212157884974227691238032007463394690323470439505770574413213656531395130672483953155807371492163830942410908228891710542274192372308505703838173263451329299753145811412030407174419866462622411158529055769768366811337386311363897383235835337366927290457629568787406208679433859039729496139267120304384208681462106545974427052299526513287111867286342242831431933285934293485087189977932135727073660366200043888800171698644339572211097887541079555777914093657859589173270375031065574604700836396986576792285329522241387804855845567621388350490851157161942066127623529499839446539662618992344964643611261149854588938462502459219591487232829562451545132149241870846164537208545887760713431402007951721995907162802983138413797438371564551586240002206328165297043509652350806489946463545083945053930938812086514366881618705289749621332836150933861679629967704327332539114014000449693604615662564286067011706317990773595541086721527322863147596806318140724184362376008324213177710804279628626053439443950243954106630753021764390355012392964492159255031707921724367673185199634266734424710035947994026539423333735863654671457684556124471434017670116229906024201713365226637020205678890040267065983702441640875439907069804320750764007063760638888761070534300704942094819498879470953765525278637176504878316733179457136833361052710833915304180458586152670836733899075303666980931186745239780485245153420200649450466145944250683900435454097002308614146190438535554878896899238108605585700328677282425455438131682287574407320556831587240724587220401756157465900698067578348640325605351430622753832113741307286645602905609401987135737772140078152888820057002045380530147042303193897509787912253889184408522465007442365416417658016816775504238329060639627823380486919590307900399341667347273761950582411110168042915208810485471361948056682430138256990559929991740763752745299177347390064975082565989043924816159230518361121024374298082732201631873217290675742170977552809381727725836940170290723779717814423909413150088766784872803116920996524781345130384846247816062564570294408669909084309293254928277232453474092035956975695675461986527645460051453154255927906014949054615702502510369115908918702937513053181692763730076529230496712121842506469689495825462356157102554294415339877941051314761725862891508234882528165081731154552643787299903316513563885397229934261303786472989740240582765641355895317698383575717601290385312871752697768253939323810828698616971745919052709722204589123616929935130052745568111327058934687700968311244891728116216095311275672004205372712089950072964151244514068190452084143664087068849647918560224279671585664359066679495452526391310676595420862815006223758726040989478195025925051252026356174673683936315909813698452586799936908756155070489655822345437449214834156031856183242627850522648174450012152758454062182125838679135772269276184394566538405919106724725155984277585043974169124866413258075297346490487849233645433681601194291359747168460177500339326592502463712970339771203111498538241991706598260850733019092074452977506291575640445412228955269169538531380882782448532786750898553593909743926370324441338529634926933467189253822413792136972720208911316032188853414222203396067734063720202281360755104948767619755163361278906357491200529135888915178837917866597441082097104294946973091087907260879387079386362555227211320039892985459366351165807468265317260993118627131180704596114291605495815469013724061304393418192216373315183129246862895488975217185005545948157896217645230470233035521730995648164389741386976904035527848091242210437542493094427164278503869748806645572230970367988250352031015971884215922821985268837013221004357377179175295550845659186648399089454855417779993838043300886796883592906332875437482636283870595047308680092411322784772872806692569817868630818224756486285866462494478107957488219943160929005398453344971821899112798035615817727343244502107395663548852294806281681139686791336219047008069665960866504983521050893617767999238232202307946157415156751553641748356040219930671083606600160883998934882221945090889156495018058493118498484344057998498605047086225730424525589662786764770650858523335850341296245054895796598438679153462963056527421824871944708949225249480629470593001918152495123682909749251967853556812287803277079596399790538968245511584421367866374245002005819667932660698732530257954361344075703297530559187457586918237329772124406522748486214985385795694215116384263817501698884873483620866376013036464159138046809544036713672370820075199818735769581363348377060384164541337038251640944956791148510342389988784829676935302867471540214555021611807098701486383584332785414970999891670949675128692657925567655615038455839673546351442510124238644051598845872507202778907454907508659088517443060651819410018858660857113960490383156220302400733856286171347529281241283032154045093521554440165555748829081544720551590181378135341433838913502244963757095028138595375087215203049439600147544752316034096802345722241183656561078655011233048645950681088602976409917378625837577202281801527407367209639747936135925664373044560481342836670387225029204902208183582410547658317642485520979842029403429014914661024171983791765559305198608860985521496502710040127064340821628664367633359690058162487249197334674186451782873955578741445200754786394535658289780814733938135256207435503099968337839419237622552280531118670775871879980633841494929379117903823303778453549602504417677665466795758416203138872472036241490822544644431820790111509953611437539119521127408551870125529410699570696871618876631223553535989229284359889438471688953923232354627337864430905706654650393331361360313591843781006503286567517961279972388415515418124784873377876758457537510846599534439334335902533375669542188980953109006899633316903632362796683926556566190897619778775124423980612113353091053628677395590435049897970204287560774106464941328325030660142547061378079532614801668083456258980199221047070951765009154206328132024364512396766742288196456355816209134548541086019015659296660168357327988485791954750296209912825615142368319762792716148731030944949174960779026170940316266865245043238255233339137899837048732081114840993475301493058999218513377884305687753715944590128742171876775012312269604550595331486908257672393854446929584976521104927504010189066301668551804456267060448651645950329504190578741512145389400056298385103734602323824702936369597115687819976042843794808393309383624989458357801068000583026171187893156050688357319177042466301739845326226499690241359048701885647661025690577391838454592274918737318920631349139623561090047980313486589787803794791169655052129120907929934097785577547893502030203031283134275008761564478602388194473529227110754943396765784986811156996673371047936255478532783958738348757403560247049829337215127619810073818292130605563744543808159143343315492280849137955447436211200993435599410924484694919234507245594761679660926339689338785589790847930204887468033372936815896451811094155794054204373297413815470061545328184298295171959957193744438972182073468248927547913215633804019636248655233861205794114226596409254560160254766714537374700634821962488492253178158153030708366742275568801947299494927959532411755111274280497066644518194570248889617680246436397388777847031695468186238176607842987472513393638787608034833293480702259695446822944099827660778397283290440135685804859624793676375789740806860579790168061198795073878409157678184356124054562369165187141486642671034885967238422500723882019107972807100328969515971098784977237590963950092171354722324134270116187887159941739852732239681022041270657687048036191414371689291492683098079708247276116785402552433942018625065466831017988459072485156142585731845263206493227021343215859781919695678545903421027361203691688835463973037526671719978810804318138772418322295943282566373515916692780224418054928041866103540067312362815044128642121804880032119377136756728461327374457143032714161555762498422256403126795176000153327334757529224656010635356664863413108621185523370712476727284708152252049967406981866610172068625113269289126261643744632293263564067782745644448797676036423151045080600846173443503341176530296457301128383416032858107328077373896108572630251051749850758876383925672472493653170487357295639523614036159612075910889520917305349783259155468049203306515499921616141819686473028650216144875648798696685214531040230119707948177010425395970651836229492136858587255353999230226005696984850081410912840216963114569500307663482148239997736811465927021462577336568210982893771890372777618291474880160914766857827290955417692932018911890821062156374357692717217260742715361156450420215966343022927467142380063180816301339927200810982474502042549997292914281378824908392524973501579834190702408502788713142668283143379818754675320265127928538240122737583414952983053909831319812810315313070181788628103036364590089738708498492285046124951749294731147430262349428840130136600411946112976480376692921290086171519451727930250081446288358230901267292773184495679228347951790383370975831346648084725897590459475166708019631678497627785088489198485245652846272964774282030640316120156709454402501260524904787830147085859852379419589656019125839571408257682215903388589492344324997073061208260971250966257976991641079219835955757172878560320842861136603903873205579179679903224464934967834825584582616565652679225556009017019139659620016143158079099396760416155204654521399948768972581672873259527356848512982673790366927348259881293115290611831611901626719869250273911864684191351085886966533663225553459091769775054370508485625075314191041807189651729898845910084444005498274154983891263568809616427053818555393901925253694691414092684178002732503547934285193766722437976759421976572853534288660503327375089073422887278497445361009703403530731193902495614414961587358362918473698964629261271407433703725831236625434701859817163247357606313264070058140476912232492236873420572672749573640879457519912246179209471271574419031264267111051695367330243452862291746372056947052914353609070166545471770358150600726361903090382298388784708695553686898382376235279969577213671692624535147567998623280876057380895214558737340310867355958162375464621915709574382482615353127666674786838271064333688548318378975651838110488468828898288082194059694562820180859487559313613367024904731655931587795777765727659131192132214174889902078448479709093906069626310040175775548213087241802488228674678569469058410512988897148049698182988626905841429581658498078645282619105157001347488788741503429967646462378581570122288941435655063079364642301290359857459575418405652837074722334044246595809612594420796554210998420052526106743899130187433296672607003864995703885218972536142532104075299057960214616390546387876916899978743740460878186720048648635614916389408495552128205874472963589984906494287883753977464380263595058522736908344412560036288306838766676517104438858252933166781484728681117286512027938657282660673115003048408097055520579434719355874381355903327178374283383796664005631020026007851523458147017526388123556927669654289793220073937040370316415961971882669148966698289358143013094969154201892758131939736541491189069404202794114877859704769983792861120151768509660589042146895665556301736171492126535349577057648765439557128805835380214011752099280548470084042952300258024519241563845535602722242961539569876328607305752807417409811339584036257463521924150358198764200006012877025693458578273053094030602556234337082185718946685582377140706579563581989118156464391318760916689650095872792829762841727078383910539434618559371009684132689073711502760469443346046856709239757566870764517600651881214008875056364143829465940838196677121320860650883932290874523276350683028196412269449665488249245199263616072744981044042767868007320517379625427875099454925210138402750156869985175819114128334573037325450284725180760063007844450714960095158495859589916628383433279338112518101373030929648363375950004376806112658669734068898731781460893409381768733999193117971326385582499572795518530256696715335738583285428937030526332792507432638099987467301461522944191477271986433275284647891037771585549071117940473675847727144352878737330252121288357276937063702423019126198722625889090280926842852773767867955496058560370933082358534229788472615145743632072325930988835797303469621150709820575336820474374593083387062906882861333379432049816689239445466253857610593863885994638292101020562893228753778487820940175478317092385026564854526062793655975846095960313672934244840873255032552355166711993689140639892573937591995202829576842387628537300506256341865750501150275043175896732385725847240771525133215848728977333817303941328049998038822560031522837150371589636954031940663911769906181341962362410341700476252303729566815940523087097015064183374778605853352584407832835025311626859574652918353379969790777478702433884705343411498751489787273762301096196183114401502683249081115955388585793975587348765510385960000503711666784995744907422231768597803406401349506834086275653511515592613364930243477139190671304958133248768403798662384732517790623755349651081221594485156767054805598853361819362967967979335367931339035927710240398577020672097788222995715690198132832936945552520540586266409383595730974572153888986067429252034103819584768823083866880530792326597515897885612330299408462671286267466557304474526061035757385439757333238033760399158521104464038676686924174631192402732017965656304757848418123391500836248988677519177127479298225863600989396841236009987936043487287057598698832725427053509160978450964163429508588096659121179380144870299097811665674828104205169059226972084061817228583579551289372129633740737837923051694772766216013448445627795332472406491877385044949503517055670838805162640493454231922369696915253682623835782509821224725243374266500292259508288037495317082617538424708244996268487835801013663567339404406278822901416424989400763116264796572444714478178813650605116393694205004758803039050900108525532093476472918134316446260191826980577255498468793077399419540676614200273350027437900266735229136183339874250746655490746977907793194245114305899357144686593616774576301432183640187440024107468964550290743316416170060844198059057857104877354891003373674616898278955885046004250634960614731944474396525631516166146697427374379968467955347284869633410444225506372067230594078896572314529352046105534090250672790698727517713891377713329292854761015869817731142430754215096297499458848558648857481405743273600998616651060556789863554918400234796677165306849026246537869716597531916845124843981301464458852684156365025812720819318030815263191431076479864505080655083688794154480811653654399523284371468672871185305072739743308883893703701620321812874248831321366241200489826631383982275406020672034766949292555128875748581510645989186955225076785661710157918577959422033708909715926537960212470073749544288911094740877477058353735317084268023824613032194192546907673900872562892463079264247299352799556582284466492419238690656294871991220091299358900305636849328408883252500386242182876643008171853206977255643079142808572695911799012243753997209725729838076867089523360391266889088211216162937591893123512121471353018269395354750399272125054425611622156264632898780978252375774136971091775023750719535755359058809795944163932698953133856165778070335558868818891028084485989504990663660584431835589538081463211218273132511220554583405829851632753419325017755340555421725318285597277489210146064903360438056061515708945412655764444963220134288428915732339613678701088166139050853992966053098385279286508823005377092297835787721867748911263878123043907050924207946935599249388680511694301212375585860529129171265242615705384265183653372618617976806409009971221006105989131211175217327761410650641082808849670828790674662084654440818027041585689648104643428302082394489881867663451664789696124024006777531569464457784284571556821815019652213947877775995387446641858177964294993565568246211572710753376962062450684349757416419768748728588896825166573916212335881247353880471595535715793059046266319583700694907354898471059692034544850911705561721157637332465900012276280723904364335880190413968711092145889073521561828930465585869416537820110606375646106835803120505662750884626301403881709287399084180096816724126720626939893979175918920223919708148234023331725371973814269844836927347410819860258636370328895818517159154769257645728666424812571926661141940400529340806214638037384958227050526144990221859034546639437652162063876375473300609665330845119082767305139784424018847916203595900392719812314414123003805999090928565617043737646954745109636288329945536825300370021368425847081291858467331228780314678337275628703354981242710160102674905012995214547685520626793673986666326198195042793898390916229116126354236852442467164487041405658279465374586488365535689440750530574167885415924884498777495304544095610066649743613261116106237761817780060998509954928543665385649037165818702212334405538756070285433244227041014816446423928368978269741815914857543289810457117408245538533399454639838543837835021279728551055757154882793149256953977951121390234131844668355229746171127837886612238579845242478513676590022298494915465247993270692805316106436521577208160492389998753490492710398911205949153467095940744615509041354732556557251903961939333199876053742944074218754667991949332945016727220206466613607337267040713644700529711812892271143070953611050445728554838015118226276284459141829309859644330584093368159096021330673372139523845433082454948486079942551029355802497013251100298134357569305745685630778114327481725565430064012363902824915344041090587073628659309034098706704846885451724612454925262911538181375292634881979760010359729096352621683441407929057939062371569824634377610264833979649616523751048307954321073749815350165747727385735138545212304000521215850679057629275723184313523714024997358347889559921852830052249554616459673650646310432230291453043008750569797865736787376117940656879882671509569400916890404591860883901512963358341481532946350655497424279634194509468090044963010998412896022797269830216146675657560390263926757951073203200279785653271588218334269249201648182406381722615192585860355260379249763146457277920267457825294117708618336974877456605538221764488405879931281266338708286132498253784976452613527195234756181180698951409370658050631872933269771526594544823008515202174597572528174521638037469326144179560200406470199517665821097923344750217945510102691668538054544512108627301203790656542397166862039820055706073903857658826447974636117861074243811274464604179670137761330969084268199383921488496288904781047621684724590647410181687388612969839568255477912260466168020547750166334988125772413616359471086875324719599181316020774598416981069600946236716946203238138589847120433067871116910565984556988500008658602068744788879841537409101818806001482201541823012703779555054940417479005834167330323901185842486449352098089114349071969683537168698391991948506588666170466387748696080305555376232507434349536165693119903243042170202203815170190915312686857195486521854274508347332922266720053648486165860415828202178808256638579707779486003810668929097425613317107248943622273281291393381987783529556658401854000660418048881009315145380219485067233688874999603493270322984689552501747347898059504663297775620905323204931818082555251775765731280483945261220187479305560477267925212724404511240267077930639251469931306657628211835337030957233125788466713938926710481414064645091030548996962225834996711831138459735205964788323360786730734855784383647744113706612183722695195151784902439293589180828109217968375080263759941280877432841930596559662906793070981512818053726736228712773691047086304505613373730729931080366736037506049164843720023006082360258749534831859113594577885250985165537266352611193835699446005999572291963192111392205799386882622919400521106238517466456964926581083608336465074442734555118856683968449031816077678270255995819375425502303238676132380887701298380771609300287825736075356499773896693387283135204358524519651886078580426034489299007405442480111537035927504876013648770995784127587131953642254805462485141196465979435527700733284145368551913296759877267783496074255499234469774342765810184243271705405777429120143799353062807712542763021702982178563851029650687062500070930680687959709167890420340138344556977932696712749713079178779219400819458005242929155659376901034279558773416735007640337052997257397496870904994425482082604466955929153530239256645282514651603578629299645802444783093576437760213335639564508923928357280823594256112236669122662192974991698422696812447616008108020863265487385088020362563557134312118365652121964364308829429276245036886985481627898431123638771273625108146847397444227704314084211408914370637249466466323287517666555130783422550645579232728598703717343737495492700643908344429529457162766281222982846494466138384043053649348324931291853681237763532187670141707380899236173784793456144631130246536656815216655832947724276165668134753107069399744011328480634259141583505399493238280305229942249186231779951623426087940018881478894339926754613610009840283865691927962377982299219695088301721015967911996342064940827361377452769487050383996854588896315250839351195384812574288389761276420237899855288503863440017150685585125364718422161819533368617505931559260778153142957964577892382218856391293565246912564107979132762564089564024163355512622662769414816141447093585009970371327099411872906132191511026659539606840455503509182082022257634811652419245283119298971162742823694989482507200324734519551761297662596238887179910921674640608957326885374096814564724254468332927731074453235447163154716600250686504935090095530846941843126372903524630655783982412485365463145613078189739773915837463697545535061316372508754605035200857981255346028360801551704261354278336208132114956092755536908639016442525368846274300121914315046978284387839338638016153860952255147062740872313107928460463323067373701457873501962708705086085322568701863224574592434921082092290856057358681287081643738907107708000657810137932526767941880837899180644987317559827325451716206070477450733910000513736123757152274753896040991364543916442992537497289659088507524352503419727344330566699506457360174316185248585933068519997829491323114382364111103621089974599949751730344078395024454151495053586209079858457522859477643248081659240495236558770760732115824232094603893734216664899697163625275246335954030967233436580030758669041244025911275657543368216644507680488089414904153215367282250762816364401352687389129684508618654000123174287225221940253837703354531787278388081861827539965227187754849933819570088782858039611757894193492829550343329767597030376245574429217042004312523397274639322393530956277949705204623489823884961909948091269604499801489857822386896112117846239892339900157613491012738171302171313591986775741032150050072874251759829654454107418395496428458058890320524499006268120482787378851042179415234309376434893787873808398554505553203573843927406136957110755349087702896638861370949658631296046851381899456331653463036524112026388243093554860788545174998240966389478427173437376674113195140319313028283052283720206220237387321587162237891207850012746702809217574598692149892328432010290946925071084587095234380525142089783047791143610834243199093691012092068139524724693865185102715977906899477479742814373260211196704917941449635324145681799182061092401093154965594132073241909280339309726644924982509559815099436990331311132070897071399858766146482792780480263569290492208962325033427665167278861846841216587762241732071799467946196288456788567763689279381888866587699208631407900887181908758827752181749342088327321632620772836007285382530238408450863258295078433186741910012783540607594260687153953220087121819792779153534057322076242828047243180794356994133858427768926983974907900919537973740732651225256576378183037806122015020725842890798733869804947159609195611200158703104056939193708015273303268520869984960962033560412207207075392743720153005519549179129117469175432623031828343844133464836456353238562895944803411420716038461211199417825084642092823402327151274887161944970646873787992560223820611243370235504214221612591754608380134649122956958437269126243536304095671136666373191140636127566419887392745910646541164221234836089314163795067395439891133808923472688510331757868816972726747188088861032038274406310875062875728901319603461190260834905949184783786756896364639778006044448196209367514272035381867554014581329160413642454715753510161397898410498768132578363075597445005025701801095194863593975972236463571173720334977118730596039334290166352502402194133575333399547131541840767115673475651740679407926995479040826477928427601726816406457761491976883680130179062408587684434072416085508288646165214390436054544165367038616795655720175081644634786423284348545944888213369170063023363066896819252354726970047070062634812502701436074191721231075391420705710273969429218573114873017276445617223695683951839989725436577839218212752935635692571152865258781291661243715759441261301653267028462199125881148503538833181405192381562425299842316502590431986806293035945620857007722186852753267085371028464007367341383173717876364318618102656009259663592245301376364518380296559889050841600711661286495086370863542057883831872962980053823961006316879344909048029284206534105941441158308887949522381791342043667868438126892553611721813598299234731736356457856237494638379159349932598284739505656985398359017320401537628736319351991194249086486119753823123247617185362244189651639722954708536383531559008512651812543175053826302489240868498753483378287133521222231355779000675030673775537693160326334439802406820701794861469338376096137324920418832065818234809787648163062308242816202440250755638004180063876387627183577151229438943416802563649766805083055995136019232605811950474395500172963165737311634615219239466639686845500590512951690243522794709979405135010791771253963898333443084847354717656602714468361309931802861437863727454636563518628305585972805305339034546415435644690511388745195066387226715692386464666231002934761253559433006897730208643735879199454431450493446691762242390707458689531391737506541211039387158910305718719999671390154047527652641344604604913531715869652168001910833694563665766475445965038340358923493930247363436459377496911884396800903566306802888865068448163888727980479833166843808101491959919922109378339133145962407234210560500354305702147980781894601157814656775507772888527677954410068728221108924038418880606119196790838014696566304623628826619291564754335502982723238991121420130373058884662766532459601505050109828013464764500649312357909931144489633773095116824293004777465585588555300620778438023839066734070244445698313167551154008053706595963995525820105204668375386231937968614811985304771065641357228892155893896017519879617726749331337143680734752428530571023209296183865036997146643839525525033408446358846369712201647968217916723438210556722194080997898141511721057308427446754458540003170816087740219582223271478256259621959373944317954111358747215874830813102078558673576725338233559170603494718848970381857716704375164859182170794624737681069245318069768185103537219676915109570473830365484517511984453233592122629701611028689205593004770102509159937795744632403924785459287134972997607820171467540247202810058621622667232918052160459200649275583596445510051592998751788580471786777132293698041921274207522657048061319423850326189452347826669629889143077375648015627677291733937378934076372672012745675741939031673428504515860881166002080799672565694678447384005471990178223319971242392366320835279806835317162020422161877611604402266529481778397495879005678070926418836643090761771225652959688170878239036773246987854565261060551755684079146509920724584745937938322760247508343226084313041124397074479022900706086397682229044657102106109469432548403855614689187508143061005046049703583578830088952416788493352727426395458483328243847067464023271296150201381998757078278962404762474660487976333612798800092224098698237243587356495432722619550642732016056054528464682759090581508806052041100008102920780356238435451393102247557778533006760162233019943069050348955799067272120758840892143709554472210929803401477527883429208202661499284678618089491053773242351406060452221704728116844597606571806267934310098916909756104250817139451416874873884798156070997013196937956408838756564483486003477595100959419446967430273136597283894076620083206355594105448098735493838653492949905657881344647778341234406429858707240506403917103994433396756179403086707931398304131814923664468014828559724777456184989155169316487220801724375947415790849277097513659157084016049905608663822339691695173744696193942272257025690843806430201045210841017309994965294475226193086089014095861282465970862315683142924607919857999226581086005635761918487751423512871445241182139033802352354120574597018317336389922331478411729780040111446103238658611895059237111780977019809173270205203744418884033491868632960469639317926800841400909900152169374597139077284718315323237764622110043854235358472238237417966895678075411287692001824938720780825078950878666450466280352370856364413706721224068904783313105689141550598604083076070458273790716126576010369647296743194770255124429515904453114411383747080228371106559304756591586435946441358192219398102897619618870137621637181669410655771890397968498336414198554316255209140488028119464869938638472466712998079837495375206436536253888599039456425277821879828784095078455587328314115738030047699333157016317482033329486882235760258890958484901833610752069486399132100189100301186909097775527579360438903042411294912475363779703708654155355984238748803262647881482084359689480584999500059416750540687810516519425026986023599762742086493215853771808596415457994509675409422706608464535412198778489968575569426367214560398500243781522082749943103994888709990495357150083822205144594478180506987818255843013705539640887604645397095353005413299872770925598953419928308991717603806045045590520365037939193739485852592287605592243592752660918097749979722747906198707194830816217779745392991400108694484059188557900731567560742570271738875128220646753975514535381803104379315802134752191274744289003295959654220020999385092299106089043974779735068861427102689795058973070562994253035536172473460237135657437817861587463322536299891328587121113401754805544114555807161084775385336915569866388903673823398119412079302645868371236496936666006070870363355478012850492433228815190148997149393542973243919489534430779130687287852569912819678401265397559256497448098732309809636062205688363586124260136386097835434305403346538486763571304684614455847306845056707148984478292827145019183552563913068626104979465174659124517362795992138970512918381551965361555984554235318952845171970097469311108516737144289439952195108612762340524641807773892065802717956267619985234032999263870919548994774204381399133992921411797549252662537624780979586194479808047078370513660691841213672037011739369305552625510913594912743507626622961487460032198603263320931896201049260024667139369233933682149712213505783944193462581796541806954900657699514946397179577200162936735773697006995745823006467425971439135791361661673720567875290915609351994394569071032781765355141020713186922555319082322025748070775802186531385183720836675852409803551059153915565497057286642681592211598074033176036341641493405165513233510474036389955234665109015727251666729522532000362156775642170616953365308916437531605676773913958098456171584211477685697032963372001078580396672298667491043938777394957442160361754370156438440914625636470228600953756460208549346902013749528629447788622101094795100972625607544855416777499865001327499817901914783031465068054043135701993127244345356587326677884894609730658421089894684512391597084040561463126673046210779805026074932316423716685774013776704087176730597460745662254433044694657498033441309793625518217368186093930133485311083275478958442593542625395950690622181876729848441735679679546133254069479915087101586647956928952733137244962891821415936055589374798382405651935159361314135962973760541447308192478746928286333620356715366289945866878172817715012703070544494650772558946283150884722488891251538309067042683521193449758124684117195723707343105804258350893754410121055275708007994372479221554509184712868895961539976160000761994194714751959073260124713568119510016436094237129995746560205276817620390075511816867716362292077614710613347770129898825097910260053148180922826765728752424408248940117176140346688943235981457745007740149908110489911904524712261979443279236110901351199166077315730442231292929780921248333395309264023422745333165320647050113197188065290984501508829876899095412200592677113121504832226695124133562774865077240500458463717496957327180618598155526966115470217443225687337784873802197936185091071305801531231285417571903534615754872307773908281430378240421998687971091247529610527548408863146373550654538188863558138833845744910353193379802643549545634459140318713463512006532620240377785423973154235472548738285582672950635573717213255562708873023146594292549236702259792956380529699121708708960336601466504084728317990669020543490884914231885282465404766586433102336504844322967866423129709081162787232999279405318117597421178255431479579650534892031095925197241693347979236761392999496085323929831952272364172500211150282920048808403176154132199480377046596552579489064892132573617432732772190629241360655450342830003885696021670459943898479550802370178715502004734556416269507123792624664455915495096151774056420128334047718724910620809439085643500369587978912573190693832109066103354431791517737402277955934477638994600497125662027443335047489252649797026566005868087652178046182135644401587768216554144704056010603596189198832967698175643777326710437563632390926124707132004474387073105389640528838265201158254915130860605088235580857350584708996511282636521711086767098299429403015564541276448008755575855834568480872931265711664841025122337984783855748353457097346033776013900407185453514219681380521565690519878577693227996011090759743283775731565403957297498688518961134035239955791143344349093969381032998967686066462282961197132360522418558253614554256025568667477715936950373455512195702874207815450870591924333328790080705370574872397175722185958715924019079205445820422593857221300435669527189181467796496147459622050037315699889197414308332869135073699916503924134979927343958643728625939799358727956547008489177156232086153449661333002063550230082175119712876001121206946081841859152626872198427090457499484688556402045937612901071587609010965925089952561960879164883047858656480750982268413632953907836687418722589845016526851036189380580910184188848839938750134999910348542764847056800513830155023113199751462328875422651673861618712409226316956862792899210432215676351873355913222108014058045159530583196068398797433174432228015697315144496700901435572396485020179213613006235742899427245706661381149846138960506694275015006528308079832045030446767762521356493218388570612076042882356046644871715536246862544942577594268788314862328420870642403012261276230619701465509200202298361101389111682988162491734021271499207143102473873259596010333991378593346520401495193571564723082524368078133965063183130298088365076108417441046983929784700664739500041994376046150599605463353764904270024116280003528752315126558501546063922297567891429018863906223332970852256393244009324420274361303449776979655271146538809748174788096906930061234253739248713305776990050132605360324734807295396589483142259778578983525556113870475559851900182627036850361076494900824394719061928594641825725746923346536956731451407341261819722640139121310742946757944190276172849661277852558656443360837792254604045787190009062658103066279006731158875283113737237387287701707015460603582399795964300877838425591937436837680510933333954416335528704790870010282223202339008306540746141836094436302377347276083835080123487710806637313731551708032230640917341847836518296299850177980444833173020258429531864780797240633516698948731136916472485613007618030315630293686515322862481199320387479812672552117042665879963042072252168831423429772886319538283393774808928126316127805710948210798450133338681105185959833725727770178844600979165259994936775236559891631009822946613789162204980712232957583465746544204895118165245320476335625639560334054641800276460025191921548849023801057022493631224086835145593755352397970619951064408121832133867119871101045860233950154532637351291135040775098599380002849836184284247433653929684348351888717063267961697941765283504764844393051935537407432199213598309805272439223972838536438444790272712146682664409081509399722219299613134344725512973144341861098078229811427722258651273522841571018144620435980355904461930390132871795163693889143298040063547342507337234812882230706562448312530276316562692002674482095425897286760372011265997580567095122311368778970412724489561125391764076962736978691736962613303031541042843845387948043246255540254455339257554457476487953353054783961007319825245683472991245185390732174721929280824034960418877151395187593920653057513497523321331620885633963310535943244803535102836132645109103098196735783432774040320342051514625843512895031466317884470001151915849244373420747761870972273386010331140762576499671935800593793343985287739216758989242225435947613824525399399645712006337990811754997639028690059185717511621330152907531879523354098280810966966362516680045039650262233947272555256761331146783839788929756427438148547804856664801555139306018683048241127592908244903281358422000957378331966792134259527360983107660119124839062732852126016953477148793735225940119802225962299003231782245652244473091417933987543130088229811435152829411022397510798712778242269074825520239160185864081539239192162636347715325977864217754746675159111624605867948409590481541381268389652185563732123834185233416672366623787357725823197251967904211791141146203615111159343828343878065806634987672564209987424714929643747252225477776423953190357257679939164799514903040832625276854544926195321535664052673014933938585739055682388566196795997423103835723386102322303836609633067996329446669074517644706206153295929833685540986175902154861956323718793052573552461281244106250373573838076040842809958540964094471525009696311053582596753148742622428650959317478440661802318805632384350730251342370480700492965276195661195728947115578577246784870126923634175500634480330157386190933501247816054710562116427043095172716983776567099913625803652762339499838467399349501996904805388768750631161431046173105534294616286587601381379517968337764345239824321194414759394125493654868670982596816901473853891757248225284453396050021807833069472251799883318544544432146510510180355350495163610297392648430453968405449201944781938390903611188461191951063524721842759768352854618890216539133266518467144309309441835639304119056170868910625508445415603821423174005913593452942168632829685353754163584310984009326704805174406267200341194504980781020478441253238506553038069523542579440472030290217975846561878405573955397965623247629883636464849919977479144069379169982782867250058515105783664408492025943473645577744640541380589081935118131799203541462743195311337857773754885639844059566417985194179047428704835447134358332490060097462584746439030962592579808427895931066339720969292602483747054406984022531098925813187611444057515586954348845335878039011439748647790091939725903755946132729847952505147243854656813684833061053922116625600140958892219779541553168736718427597395427185241442101888452041079989269425828869876287259401754424053244458084201601888454612505477440176451491374629297315893574148473131414123836612738835155113524635877357954845181970971050323880517426537554490397733816822690865408399888563441841382046924032392455210394891870994069595428908641055934848957561561308239542512669381440099912440133306157348685461275396808478109199294125041132780425353800833510007959641664774318192618681160757943199752454332712902277625785222670788193113685399599684776374348680624925097451572000190785290432265642208003016398798321855958841824185707411615984378932299176231428359364945485973315340400771525914485708968636566313962563876766142375542401103292204608674689111201949227519271779326584582993013858693258198058591227828406431948264936969132672526596795071226677086772065654412317461881785857630863981646162477603797828884394015048529739595959281617140083683343976159251010131172669046462448911346606512939785669937219321243337098710659263847479390114349638476585827246442475301567945336016275986876540874825340382609940078921922914222839239863142541164484479697958228125611743784978834799560772153487349832869780364008757856454594838964859562393513694017584633811658296010875149232303162937760896004468483391937483878170445455907324791354004831905200838404927453515331536540529120540107650317966586372453732453073059409333984311958117150322714397965985774843211266739058061483545218634108236846690391130108684922343992904458858595058886587905531621762603415364856248112806791946158415195566337053806462178419172141514133969090696390873645286506050645342281749303279665055477833433605636828849853376855309463868504596522502887150633759532033630856524371005586514350144138122554350787646871833538077332627419596783466377075830344330773507278618995083077600382226280756610655323991260361552151903090625599903431589406108882393948610271174706039435018140789035653327468378897501230962536555275459084562871359300702830413117836889645686610493259215686012978718037139593850401354630362070750431638539771503706079773745934914087637590280218554374469395086326578689454795952154551316539938458804261239692262473184442208979343597729523389725686133931078075519324054648514260065243824654695834751444860746338116985585528901023898813958636503621777715169121004422068234763012087004043815597079519133387666888427641550771028224371614982633723266041327031561062705806236604040621762777741929750783017821517912314001812894800551019722520688714056343553069048894965168992970277538338446221548456879789800767530684895788921018776534037681604793256882932684625642829101439505252886224800738975209851202953627980771990877224995414995310829814798122090044797884865099970457778859742692690415237746743352894726221710025954585412801828424091337173590705041031419373859068854422571920746173638977774037498315069748584196304165279386209656804459520984599680953371607703284842551197922195520240037210369318060766754183069150249181138997234596513669148376037821613692817636080135450656092935759010146247154546520484690078414725608399460581245080344607265975606518642216800016812983075427373559001959614134323072904185611531110909321352408624006987865106300047556747149564056207094976181597606970951144324393398330393130131227991872501223943635692778137645421406457764497159462890103808951848262136919933194875192310499499712648639039593127101632231914741243747782033276788892472094953790496654816068395098142309738030858625274876875716611519335248294700380858740843487181969344464576457941223042289562817511719647559256118003875678603370715791530785217931189424298772312667772409060323962245074813143758060425156744837860119589114784150239565753256140416327845528241489225294511399005931993460308790546751644991821736485498608215668439257015217227036491176885938790036614515713413869626928069021598657692170292825527435066209399205352118672702599564895476553220571223324916971667803175191294959819367412393506416360504959968601665021171287521615109431547991768364319259506112171165769797852077661140870034414806440038342867579800218725670166701475048755113412961159000957141399394236412657827082179388583672593807618150093551612594408187344992264249650020866281660011862656757854842030402107606021984744720399212323901210428851268784447458501988082314571675004889718774201626722183606800104191170991158958131189219945634496842034864036767319541843865190287091002049100474936832351362944409301950177596871740921425470310787472895889536043053027988685602574587982536330958996729862493304765722753830604324581948050502557355278785514712180155113958439789441153207779195603219792563079911654429916620918047511652922972015986139532599393387964562894447516251998416515412628982421126465329796235104524249560434288622334613481664459671415091116643932839835648524191956771254080923694800104301179358050132357997076012141694765453933710289351261176344265702685281508837191471142769890291552264481814304204028583680234531253335617559078708103957899637624679392475053015237445122309854224632881129096451255459953498074606072020026924698188675916948861783630994988410498042709104149985690559731457871257080861611787632650783531198068437288742935446021630120166880830628323919855598566689126343845449221650128078420494979208938255926610434976615181258031025335355501224586950239618231916734989425696687724771644643685465871300885049506364890964285504686595892903843445109710627104634989884376798908812691898836908786213751573920312731581625332265182690152977045021282347818295639874327369163637887039304664127161961375949968933612460672511121764566266451739750965902112366028134842347964622764003521669960119074419713756907731229156854605631579726900305072301285144862553471188063975373716368652276387218838962864245103997102934384597102829292047254676334250748445260900351135659065728803287939956127059454226007064828601167522827056871172071059421524737928610082908415919246114657981962859014499742292390393786765801783253786893965593708146974244165937402243136262762044372650484689174846934103087346705389433803860351286558578869086006393468018278080558923944550419700603553937247753478210843586532760890368490857195542782933514000105982540963384955847027936144363885428447389611413746759399348146439154543496032942014982324669055472544416769253472815989489988391963164538274875268194707329143209732605164337640140001154931820218165436878675798337421287818529888470771796412064362573216077588529318990961239707468833906088682690942819333811477036857891732865218049899714309781277149980706145471799668836238102206916367602866577063976910887726738266717724942553246217428546754297624669052772172691288639880621851068966637145220112687304454827647429323502022455929571215790210768082668198972213743115434073094036308861551835309905565664157540614583003511672615675225069294968386625375218911147203518625591899192004082046829320110503797442368494093518647879594240823795302721106159981214781516848837667551531778420700481355600304320114814532168705212281516593637274491071030797408459164951281844831343015089266060551755520410826004478097100407322584458918761557397697289535676479800021242302495386783190619270094583030609475311259875061916831997144951988047929197919861464037931736508115899630480837700467189969756246202522411072064105588650424461146283573522526824039425270821253087261896985872578671266809504332647165013437537291031786647791599856551393888297243747380810416576996001331631380323856265238051833668676397714675775051705779136739577939849494490901313886480848370311005212535664255913712708469505290515269456010107391393906894522773398077057735333102085395200454817354559194040766202027180155465776885711435977564891800112564133325866332689530672846833992936684331896582165818018388426664643979137012030166386632890220894804364594295220406296004173553724471636866596494383290426642509779096902249770998786329465238941124486418140157989608354707166168880156664108055258455941367629592577932296868645819916600585880013805862785225888589589076277364057338783929635528621830722808950735889341489782311347368825313183674532356524104890521070215148557892567263235438291912470415946093258748905851392149385173461435735811878469304749505414126222440688845968225296204692135892616107099716689963331905183227279817274293582907389876543838398859681317311725850254875990093080058046186950103764310452760679322138691418651192196578998551921008218765606331187863717076076514785540524031633351514688525706086196321479888662404752573797628112547746316727739209474404733494963357357152157969867629592199806845842722660258203946883893900194506801048376848248042687073216228165221573593115828148752609312658487821155134116629462150163570775354787315929396758443851880649795448961508121579869930635084245127688344191178079766662727480057919890068344628523892012396119669035394486168366024494791149081194901545995782840114737627800059915366843605432142874632960812563332277324478236953141427324990751851504227074786344200304870960373806193343154133726475794534111375139692791721838151990708999343670877717575370794430379272114648749692719529707300060290952196768636354233949340846704759776941986708829483645465543006929612036958361295380188280548444535029915955284150931264897292822808610390109744884111567501491178035569506961838346614739684168091648141133264368220912373980082134740954162856872901497214935979206940200893146826543615079112870425614728262416200419472315036452902159443042093403709900274379523393671792694809571292278566686082256868865963354030566336781274326294816078570397843649126562921337805951118005830519611584365375465542076576203542846652895790188560719852573680001497891118558116397308505572974820773832657036552074374542176432334253265434863221395131046137423146279455604814926609380321541789578610468462176362557240345125797015145366626191339415167511378617827749516965307476375174393137997836845031499253178062738026349447139138977582241701551489698260050316963068306963361586025149876116312212485595989798596612902624697496994753288229186428662028430140556766608951681478086525805100681997395453611736393066461023784200774020913504959911089833527365766850568478625763211291943877333097403764340656349248930371116547154297324970713472123068724409668978541502939512716063550897891337036511542042338598400114615142412003675321178908584872094734521493111947108198113270314109330219958875971449366164937967231866055418457721120396356949244312298660548780813586180485431158120495444847588185265244089583103386986732297006108980395075505459480792946475789670672257395896044305013575753440037924273079995589076415140897148908800808343276132895542129312794211949198005920659304904032918762417840390958862865459752311551203496675308585171718418093020332674323251523559346882585152256822946519626330276983472540501831750293152327001791872628164485696746183031744746377227655099380243799546018193531802410422448438028851008765559471911307799391596861449828397001340854105933228275585284378210728037935436439009661116714561066726606016315856786767006012526468567798452029648623088845003521531631142007556269600204792390817975738616173798866167870452418399267775562694994714216011958719708185781020673236965462832796297501549325733197268755088772542698725547136373737571637730533992843149290821656722361186602951469479587116401297233927685219224353204591332517157796850180388993979393570169199162493621222459114565866925717912846509502047026034476066664035377143821252050846777746273847662612310025702104719135930164221468543544453896889232041424182319130147826722930575947829484697857500023687721044217399334842841861338694566211177572877341479197912348590357335439142596634807448294318461885006351563282242625051411696758769706735154469021219261495986821920742253332123018880185028710931774796270184426856712889659873850804663054779520660449090408914823369953594463953554492621315775720704027204919448812397034639862438859940087944477212003019140265007224452839731499750974369317920762984798862571713475343405974816648645400731549258698995794839702697947645637447336980192448967487902117008428037001292698849889731835932365343464307091775910218510857316768200279448738840402221084304673739006366041735416255280969590379747219900357102823820822631514918630455731887689219483927967717854875880542092534315732569704683254959427729313899893505190514114169961501109772217757554623753546540349829648913243767612662269216034111135994492501867089546640732459463989078165910230501556590680640513237296081165840855980446032747464443401338134836516667954765484296003386541737082327192662972522941260475664141467087063793470338932325539260311844962732996471485453175022495820466994383379478390382866896730555046740488626089311300898029842682281098312191675807888924055273542890987554853946189938913590502154474340214095911438082431932106973148975456346761304545117160442091957802550656506951059054300566766450940286503244291570032918709115278264692769098984269052131195568452147570544754766900026686260757349917364221386490731257048378470951922626520214516499498877171116633753408191198950190214041952641860823589360375342436349816495329269474677318852814382192442224010575738588239742282976131375780996053780146092041737908226699745549411682411224702117296562314250610609346090450397163865017530113104209803849934877579517395073498000042471897562474604636868504195231244643016726099132170977486244972081307906086935984973964472540469976911249993106091597889974692034383212140487819383067144324664133501312828434057221407303768988893136619678982545649349110009543601685220037095059103108386932489921730431472054754521588582567682762712854282693224292771842313746854540819690553468187889085351460696853492712092408844536481124932786865494680715965547148212603879522684793995623592186274607795796411873302850324569965318946674778698078262153436659512374960825178113691809262004362604689183939174034510962125211946837853639026147964134464083217104190699785009173548229824131845506023089323167128338549740018839298761965548099237943035138788173062868964364081423843899151276662405471247315463488542672487572975258608615146600417967883860391835008054324490504526011866667047380511287567706388693857571933596972314034874177478181499648109965817842033874602095863140326913477562696264438167371745429465149112327280656944182838712730541164844758961971519278627378541904054404559699190464799365463827475853430279026438878521484125639282722806547018987171322288897798357308228069657102529799336828414280552197527486665955107933488218178783384761441426614395612040842899572567998329317426325792127974100523091116000241664480244298774259653696500272144717855040292805356327500738300027298049140159441260631492547351062726657258742377842075049135674641783554228317636835280560916209270284594079632528159642641146771794120446039588823120748565441931471634318425866172598362838115821007228788495735019386141517765270104730045250555593926579277516799202432547573246920346039574930300387982517336808479391203857852330106723021428425915706660778562574252281586695982750277565091314267963073031681354323362896273507017897205984449597288385917005223528025941251719158742547523776295485593282280850403917603681881170935845338721413174629046530184425068554293816878908306002249226511475262504455609639535813168474046208110859153463992902903418715735873825254148031518924384418045840009749839727157353573510420502026945014295704577183614911524163686920051264967774832948288980575515797782770721400912746641449215152159292213973176576346554859204379102498054184946776067913417044958197373640640355040162305871630711684490899231098680572628338458745420224657427150801739307891203973618245386787331835574360841710832935887673923556697307712346867737160388203574821103753548061356958231533893406565485301432384628426219414159182233168958164615420640509096153432549082687302874239651932248577471803013038699907375044652117468714366414890376157968369817553399763087510924072273973345727138489086564093653367723319628476588574678929361687183754254450570897034365555576159739727615878348564102925911077781393346259963035549586104938525603220928962849845239075303936567696634130360224086153669366742056055364691975939867732960715533076730000317068889438896633254244672344774367656033033242918573137872501094820404111572801906454494295037614592088216484858562357100240258094214487035571183341963902621403369968046870753388221663196555950077618567814339706459888407879373991940786026611094573758482259894654105098323182886523697579834645658265370115328276447834353196094779372924160939401102448119229358528034790497767127203345449827321232796554210743420806457535137629375262449731546341590445388809903992290654397030097391396880036089036212419540565409415507818708637145506432698206377884512189008580253437931641464697038714632786640091030737102773424820246860901773360197986662205139833832095345365036144855989883984584199314989684490765176230728820591210921060563524155324021874930489116953603383041614401801833655366180219536370482251209279496746695556232251517946634999041614843870100053310734199645251545429794610132678827765371976758018015480679385203438851367218391378906942129257312532680976018355433669665569525743342569528909725166660127078777128956895747243846711533061152124425471997330248941386988186292266249020268209861893210608154647691729452565813169541673833076787548664660083056485137125405075215991538502863538825854839915560797255190565104064871419307798951963835821970845629892809288577080119100766614711875323949733349393504068009544618524262566146637343502895627262517926447101312856052206794382877444199857990172785653673157281539148606293097876977932593809056980923911774696648723529152752193628096551104063836334471935086142652472584899489446955089928511335704537643876677813004225082303714726333566376200911189919430879105660544553769809231503680204905505220960327200493988622418884587817256122296254124983452637017570005602660098180102743364371779129003824905329133317757992283453264697860537585381410048917322952360129617405271826161668434879855950296395746305019902878218807750556862084824461000939287488200185725193166719541878783442916627061483362857068996547864550007155090366218847510397723301873631901914159005481287983553347528276751226550531555185297633438591818198084828399230441428327181073952350656951400365521753847580768994706004611139067993991530202937695977429498032243464256921909959173571850136442497777906158397022638503676099300487004100222484184885324135409787223898985412803026014425620479518649233862198460630671549156924502871445322498087039485348183174459863285611227526345879157237547573570797387825246016828868072733193562455356296043156206351279602781090676338857933070105906731722467428485826180244977073705535299127378613843307087407774896537396557683850806378340660932669964968467650599576947792211194778724760646750798933268194034725276621425961517139420684468731976077031286274110236906022923557712486563272319994772925728732621931108415715865568918150428522328032124126159866554732398633235522806213096778992382863652832773569816937920040691586071841768663419075825777358657871181310044041419144707934622720328695000778292423625824228611901999997247473376250596307768611473792570017622557641020385619350289842626019736739803146817505607235910284674757644781785471623868613176642674672575664875113477029896339818239731896724187741219767539401073591739384270553749309994378832777136943865117195166324218394331008142625687592890138754667069639199103819774241468374667248954192532731263992111127123766377909988068128132385429412030634201318265719306586807863239850420358771824001242468866325201930012719697564670092260050951619931436201887036977719174529780812669543315016219858651468589605489935874871704036678507736741930269115130881145130945744564400162332133897157137232487104609602195345522898190149850098548125644332532247621159107373593042805513607780055420601652547348821321507911650282334988276182887342339454714964852318211902695782763187990918005374365652772751996561351215807269896934891630270015819239362627221496435761842916574214277275074863001809787419620097363400262432101758128612652951598718008029617047704922289615259290610289287426852501989048138648508444154426823060115029434671223753398614811861877313070275546337619461434505984562914737602485516682922064500122882316890134713201769810212181294691904210810756250192395553711647982896525156430424731445749170188205113944004502978624183999330467198571877048011472261593093638754311137400772750604892822669259205114859218666591474123896583487992306008781790332668890255061632006109647485324830834528270608485424139787661876626197823174673789392035766663805918438629572724273845003186957906335277148839933260886465505437654314913647404971773539393500353930848954259768549227144786620585621956567362987517951843639796939768133867989300041289238648762770732236674015048496746032863273161912154272002650255226265552358766493560542770569889676701236049680636933279784842688360506561780638959610558971441337318970160027674191715961950902806466702240029888255394514473844555319962162025599713567375833662478604786424928326387553470794339540995811545865511589069005207738166056417492227740018585558371450708684546346189798787975922709128215861525660215678246481945163587324298379112666360425840678564598648103120618716464396627581173754915658301047050261620272766391097366939205279896809631841156145311662665769657800125698376396949452967947297644213619577617328224736055725454013363575106809418611556936861678255046736582810122599459893412471962132335751352305821038061016518177615991683729503981178230423846895706660843837162454076796062695596650973641292383963705017999038070457790530512016797085774651942326668003828003161559164394131066791207678492884247439454584571012223314618991299356477582159018115934926034920051294668614794346769698128338211127550041952750175287448020439308850459488682734370497198104400808698846158770201915856915426347264079153564597680110250233361564063872029299105137256800527030467208851069578570680523453434517270079072613133964955446124129342039331721534370678256210436825375919348478262447663905866279311753963059339557760960712311295481340208327394665202207553818784490867683323222833951918196373593036703965387457168256245886682466389143797583945587138302942808445178964232710047386719478063099801165508815808876981119407031503648116267029872621552160387183711925224772801913437052239361892235708783333599659454045397833971291310697281924984788747906312428101024627556480003266602062648555232364336322039579800464292080243387284845660300350532044164996348376189742528189580235994098799953964642517003760421262429628419856853434216524882476540455347491418809714015175704810935603707996287392130136264878479446843837180080492857006209162195425013076564128572366534063688407063748332434031255472589189727581703507128847681910818113700667513274013663822883423495625404873964697910426377988770971557717467368743825994580707669239521226537938278481754160421518541202008107762283288101975804081264918409062074103602077644897256500641929871898053815935577316794945329915758314942807692740521717281885339975032282704931458439473793757995529397310187040294660187843097600544073381248913551067585049427432913014250344184495016245067416873693118348112151887965577914793920811781961702685394679329045825809608376908413967901493991359021317706524886935943000355873028278534638946167252962583376377714126801616919341054066726351273289286133009454151843265528140532385543928480342083189170144354014746693408830705156629721871799816324307689750497381513062961108479989466488329342405739381571609621981860517543263101104221356571091440490474392604649805302012855518720074935154923120763566898235975415251600911308508809612810889425079252108697235249199212756712408986990775427556773749915028136828358513047616074959960312763239585736175309020894543656173357479324095799009903738446105417020671055472632010541739605758737559414843719247037163378875225878596434378438194986018572072457272631479104657687732694863358783288707345388044004067403643823820061997611843097105475496338980330623500257716554487367930242073002627185354663874562903899281863110455136655974531266974124137514385924714099109243129157250518167774635766071655411664483776595955964168467353723996504653696883893981962085522238822424196883347307984960152507118838385554303589409673567670678367113851282139790404869043073494425156084720546446568444842613112457614793206605542665142907967457564144622896944433283875640928949743867203184575208964650712885263874878408810992060063250770658478231722908416958577504362764014424028458664276520246025668049653243891524664371100381805604936660123682086709240679454076403437592236108061525934784325716677231206013563309268229270147928721624076941677642246609502221927634555771927410811542260174677544567146357268255193782716856035169425927702426505721301076872028403443221680690319035225577205675392009777176072736575965060232883826815193299230404182941003309516630984888594334619946200472396107667953044162896351675876087321223884040961535746705971693525678801652957180052488999324277685956287662489918709881269259076182729469458032242072397161628362050030173232897469137344558828765673566870638738666267912923144176140312741966761196480711210062461694532398387843368748152128670710485181466061835278522311153178294684766977876352097584374580995498235216245596928573709785513014967221737753096701006604231347683606694856231840253011831227010311821085880002336410869815769879751472884317619241294361189121110409347951080595901784638797630444632231385476318898047431322092289393949342497589753160691841103864969552131656987749672329651833695496350175976229479032631859262431690054557863158913448584680914195403610913506605646214378836540991133685553509462956408033519201606476215354666694385906303385773084269173757354274526815264734094081350851934101810655067621947761126635414208133525351184807332632522070411507853466736651694179810200274678350107732901608588196033098691425462961653122977061772201734351295335068498547669942490755499000392231011059988819555395293519526370893957854467142598228559013180914293686411547991630168740103219935386821796533372072353120240640530562612717932513788481673828363506533818243814019430858421621995299676184557183452242893132376854420816852096026613570774894268570581524397654486055293394352435424176495341389158797154335647023302492540709121531109588486890747262520039040033907392622866580149161454447970176566391230941253441349789586161128188533355202544728202469342002540786067328685290341502339327623081065729610685264254540459846786556313449405514768286960723999294907149334803878002278093511484742667178231304068738890317200194519931459942121418983277808209019036172289018285313559689229546400234131163761795294188844913725277185782739586726763127039109387458121043583399126175429639715221585154294055965961644725698213928149314352166598522676145953836605641780032680936811784428751915529856331831255063981538602293445427137147665368828513897245807249099244935866129980720951753679454426073150039490825280275951355067131423702073423601690785646600651346433631925179865894775838494075600459875769910110987251650216935875771365382667161728281256737618119822695148437010218324106733906676188557064156517567985927272648369826246619346918778809880440013834599766279218825039124522195650425123459562443892536969210731906487202412111510201685140079166098231794501652186666063002069263020789356740871311455077718981502268899621070897121456066857402292591736028777571201178390161612132766355644806436578742239611176999300635571317230346019409125769168787752433911210731424468245323384427613291876109488020176460567654772465416285347748936782462641112237265930275505524134173776490705224634121995689955523676806049696712677292877008294753650743156701916450238862079953883615027935380140456464780622822788902511740171274088540982989944404989115158876654029702746542231722447463059425281890272041532848537536520262750329730179392074441672519474509708319320113061572107624318046909686570657334375985653634669022777537729670808190580097726965907611567038589837816815090248299457307940267764492795617553285303603623339993190310097870495108039657943820318571645308963263960286548988073802841145576623697732748660682335723392863826200010933650864654100838383700539357487824827537828762463518116591817698012543132453209819704943295838424534045098326755898300698896338380868795603376401131270196502662130864437831624143061357052473519195917414726752974728340060341335272202124630701607206452010821227088874694744469025250533808304622828166631917142046280127910107047244843948651542989633247783123559664965496764796568066600021185437938622217205407282699619052482715018076716078912918476146217245613570318841596867363790974724613408126854786029368264502204907234177277846714257180609284519918947697061025811882427774503195401684668914723681002699433001577950901190483279617430134551242480661135843648832232803316278946510011511650795133159390192673399656432138057726402214489961136807160265362040604349763549904606601431673659763948185818540131578426716516484062930822317711294556942692790705203760727681265472584279475466055085433586546391866291142934725716449696833800806170472644416888898560667582819360909676429337997573068542016096428612880973882209448982267858378133481265943674189246869784731209304459827625329616690252603256682568042908493774853440569707956929654721114671477917893266264281501790172042520314199927224138741881549186352445378053120081325857298771989027895610591983006710087077429295960532627328793271948070035533678767812044760359325871371399567984645626129836388917966666898063730456327578839422323701428398270361499012888526274871623812814541404536842193166827451412822028180511323949108652852188165097889934482982114217250764272348468981489624658200027439097014280369020136278905810224826842263038540197882621888273046537206751797503550222106285023730718651355867993950451503227053346087129511553347681197592185562074024746111695210376351681759545876400772710009711467115318803431406264492413079543262948605327235643063536456942676459867568109963679760988510340629868283088968610606565613552591360908439864772509130046135708262573615109313700625481327318886198167842158957733890691934009949982877918156885714741790707092612129287253709303593480891263943433888472791564288572584282474627566601018804567735428226932740518051826055815207216620737481055456329635985953344636586123478191927551882650498983607026539569957010907149076079161408221254254024534604421188318544436684759570529535993452229497984471323316660869259437492195811737992377628896843518049721164125608584081727037170927721233325325656015921702175253432548279178445551853052366680917642253602882961965099171228385378378043601425948680767856720248289585888736992360696469357696390322530787394002605522490761969244050058828781819445699231484230265387723470679998950963156754323376374262946438325545369509269141102748244886201120010317446087831455436965001738645729164966262001856753536978875979242602902364555396150407072852636821804978840670096873955397132315446026272120857914155629022214059795376479858006224517771397397692279555175024925118462692136224805516757402280485415774316849300479937083108828661993996082494855738980423395372517894546034579784377225987269449233248624556141683189244447519076314574849667934272121113961497391212600077151682157082660634410686453029408657290647085709400334030434081744675564144888959420144777372138941508412320296198401603856217766196797460494825120087078769499649906633878609100972197502217437511456704717343248986334739630720996777866815531259481562088439887238537961634697221437821581671217932604479410856147401746512250624957626028079733137639745711414993298038073278675446595818174352149131854497413307731381946898631236805974156669585780076558426578899327391792501774617554711823665156479588335210638912286862514632264555950889449240476492807457923041196966884389548467507073522314667448662988395406540489441378177220853640388716892625820511080525830661682510988078500242412859335956566937552953344119858386549906021586733024767839173600638614335337670902390183648517471402320242776584614302667347710028633876946446534365696673827990228308142724451382181724038954339297927839997878266464506624160199301983173087254265002942861121261974920051000039071398939953738368958125220961111381516789730986609914800854934416365315270445366038842349923881518519124452354666942572749271182848727690813261435669406590241598720208342890032862230134871387073868453936760375018956164301569965798339911517739346159261817136922454047841734673631983649931846442694522722183926110858710190548605650942072915874989774993274674799524473908657477218537336474796615192651367560226072377959640824770758822566772013932119012743787886229272099603539015563322251568744725040080140002302033063201274447456186812452234967812695051830878370771724221603373686706774303142064734148863053062603417439438933587050262782167228603090589791811490374350907946224165446698317187468139797436398620029179980115640783533507233826128794966148978405327828201858486465825035472264761039447099829535135820064895444288293852645514732941848232582538088455377417869714703481543901385159090831525010380467804458402909777635268826646389095909176697914139409286507980369167175535525367670874208458504935424071043703365198782850673898113370444612788947814166424311437059962032874235281321514695335755209633427134630674338674963626134739470585894971331178731058156995248719300200881862383041538977532874752545884927718197579136688853053489215830375066185776374020996431788999089461760172271418523751439253272885745813081953630968262688307325686834891561095973341401387964108795675765131027581487975280252984953747341320531036740069248255677734628001780236086131411266912427604473536098068134889473374322191355353653089656538307759744996393130533834013007834404210363240164827047739542779328125508033749472196872437796811528564654777678765119622107275561708840645547339891976190286073073155217670972231286523626342724771154624228773486548748785980271020343179499206770399396362700200024897785707797801829734194671624614305700792585660891849101562425813053375638960899296982949329699607421550832571867904499143969746865229157825114962975898808561152068251262218829554533681931415481254407467632559751953018623313500659149978671361377813652622875597746769685326696641777733158700368938583333722301280379974704249333415727754914144653622116188232193467236975223306140443855126649779445683245721747489516691741643771277604251756264441658320763012696934412551953336159802494253649092189463831849466631162173030148368069339320169535533457815262894635635938736630063911510045033678227281230004660355935709651891630870333442520810634866041900527545215794506774750886040789717926966904264716757442618241802390074924841511045946046413060896091778156495136391815433652199389219482749005074872540484514373326323668950981528716676273103150367726641247897930242437774608393548329299610251143522405476556297632301965564104839863621560765381851862479393901200704043194076235418926963578322565807431093162694010712045432186035925429839632971037773364085205986945312725440970076578514025977431242452978705507834969322032748702301286161831752960654164231877569281619863324050130451629867359829945130781836985207103341083192437921648871314667904444145216042103080609428125190339005768238836708048816365168869200719380894118640910611194356028915783034358337675312410856181058991439950338216237800783187905381302671504373976315490846230139285743473330279397916643374932197040705485420902755951316021588380665017692623542301415595984340900848617454207118302140826544487492661102013799209534057872112311101922052529529666225377614909759668617911724476889484350710684504835226069008909112549712437015717733757255206243603942160412204929186222368369429326411660399096603352875653430210810627692901336275412650717804057506577033739459652375138595103136696450589108663800225525632517160624043007479096584144828302149157420869829009822031634344845686411040237088028372974177894047592462311465284343022173970740002772257162001566163737810660105725223134846123533823471489230559231155542193648714047274991727012266954964154228781782178734919757829800445541270464976523547541562131265891662878250434257937772725438663528819872727540966439239534004609236569972485581899363557859600844995229458460999642085345748361442472434216274407468376751410915719065625565688576983416969880461777147073663197924933898160690543037146383949718022378712189048326515668965023599888928236181194288053064721642504889636668129694121957608960946636583855902933433329365623477957485630187442073163327371711982308823014519798548768382710718054644979134218756083628435596607249997257823249751350012034030373078336039876706836659000257687645606338465316726717004276778281730046313400243866510421534873690147928284585405713315739387698869986832604814890324626397962869500721407921921684437944098318721197841560856921735867869997485009792162563202605086798804158550524201465335144014843495249736044391785786964151614663698369340482593990355281643713474437810575115263122306346565232520781698898178454479148127370139021712931144707818944902689829787604984079451746920029054941113555029862596970994685442681096295129421891190634177094788267039658146457504915340314257417229295228263359859703632772013268819102504223591535781579611474041925331006802334058868941628513677990947557145412003720370988225658831356709619898884229233449012628020206126287355866215329714969340452395418294976744173829460185669710332982475132689166826962720858868369323578925903309265775016027297109814293881215294929358993410121635138987576486433253273115329375537127584020249719548981019539387250224896174210441326194325124867598427902838397679440833007892698271572607127835812400083173451705958305728966749844819900769455810014462751930788001607377041067201403939714386994123842042534808060890971397365050364350972514166632927960594083768818608211292980225364889238126607303596580055855675710396012589398522039838205883201201904607333148197285894175676458647258033299224530221995834474670851178115179755561678021943851547198975970922495768862491173142594502717083454652667307778830295450899145696395715111607237119147296173080518894954336046315663214906203045086427132523186901724435558827698547743751933578895949441155218060274320546299176302584011948956943421860352244364644186905693302018411618256045422813358148656860826376852125194933984634560600925696340140916567367604544310216932441118472523992643514166082567634535370784795881615228722289464185853542926651914841231730757396937087145525143261805974943550473023619485397020231764575055060856547540745960115989196177874432194704353083599298900648493746298419348667922311226455813344179150396113831648462298533456149369142682938406710042466263055451279225075645175296857208268618356917173257468726530349337591136867856996536031595649983007502592187374077743837755224082506583752136242280305354787625635710876895815163192829531997268954426985644665909518462347739073343303145918018894148466795832860642744874743542121942746216871175282814167865729385506823001091227108709593969785887767452011186150814670915317643937730960991991572905334040583275000312995724785263421114013624481932971736627712140381213386669710827394375357689265128463301840569004452691613668644334403521137962252736901637557095082001252071776105583853247015781583895666953610766492144810417306507361947714525688200244212019059303195822097938897410360899226415117311251756249351508514034691897941152261277471657865042777596173951550913370024830375741494375056581231889935321078012794209100220841816208984608998925520044003755340963789056687760387181893831627425544897508275846723798710805697496842457722872431528403434815772784491922610768310692457108042681986154644646465791354013041705094813548319038850874513851618538024540434878165013353080710925257217277000152980939179974207994683290961576974117285112559720954071698155308158718173729561361519153049545414054574239453450996381969968094548338206857643179293132141999527587630734109347643510704775170179479848275562379893288419770176709017034578083999723355732773546635878267306459838071311600649209276400077355080317165343813344364427333274127367416011902358034343640438108362526962264796555940428724758507739204624338102493313808593433885569940895281531858892786511691891844418840814304177309710405376539808566475310144041015688164292028984554914098914581623931924439397287827479481219660861148683532443275634249457061755198551218299000373249254939643261914971856550951824694563611134389000315408481816958221262851979322956796220723575498659411975704132359048635232016208674913160998047104912846761986662715521317054513590354480485731540831110122100049176454586354662420499355260773160028513519394770948497538054522686313518495143836166012726631374273450954661554464153000207958077890858370078843332053447684705496181833647229175623305378076106727699723607134674465516249124382905724408182089064106558721125508229596822602762463276962503580466161257553353863615085671230927107320509683671533955703465713200692488426620567750845519975705761404969431387028364970166553357700980000584534028258502595297820204235266631409695689743461227676923930009288325898766019300939378991997077220149103400789325892592749714989789771663053604492684252942168167573182646592020334374280599495592155218294015636360656538317455326995803118545143997395324249479953564188556453354533936094308167802607483509441783373966555104804257499694511580495158843569345279571094001251892008779857434670012234314565365252917573313332537352727962476118637045907079094897883089185542453712073927747734875174379653576330510069311358799030804697738712767329852464377984361457490148341595846125914128491983114420128442934916114871770380599432514729650190166060613327739319160547405383823515279269563864478164211199737597366706627415288972665841489597649120995674886356115710500899312195370293939945527918984957448234203714511999530253727487707348488565479040859852270687697330872911097122806751517551094466293981326300247837313969467674714254793783358106032545577129443874595002879919166551686363407221594461903708418873797316702901090688446141276372772796163423916709601066108480736524295727121446887201275265924686873454463422724349831618160567932654574765130437386733173559278067327687043593717502625860450762014590352766748055358523080928367880060221491626183341474498364881363371064331294088423194428810863912079094397596080534416910537022764643721431453024813669829932078924327586134876357099998504540718412884168056704278960342032910022983100345915094542587800069688855002721071934148634587253483505559446932715196227364695546149633241638751020468225678757512748338511978256408288020336333178402347859756729701213869674986871616552417816471117142250289512240963573051533081522533646823647783882281529073489268089744291363197722219180308468821180293589226105462919723983244780535435524704139399482489654272423058550494538401197284499115017612644999821738350246566718516610165960355356874297543024928178449243914609248482995077759317802924449673487506136074604197441705245998354573187128844055196750810510507623254078603360045379696561537629950770054868288185912924797031121881698995917131149886489092951495178170855450880861945771065796305156890933990610961203974999385677885959298285363012583606047665579678147647616551247820047257118536152817877616813820936806402176693524639396030824718696439613241997269840245470056322397665095378672714474156742682863612879427591308457514693504723381394556939157982303520229452969639443694586785425512305053245774726198697694819754723930567813520410159498872299602945421864469786103146517883448878038458706878714002961500025376513613462985328775683754209151631867186602598840407201587832379869633163097655596793593150671785697645804900781126170014919981038577778978553443058020491545463705989338313182141002526106831547912170707074097402953041659075109649756493360394160585170022997824101629659879211606884826646131054283188446454581830843468800000655630927490798819560919557925002292380807075472746889445147568266115172066446063104251993026205155521656938221533834265525021600181293134480530666218859284081909793411599449319275089194657295218945474886294343833928897888152663083287034361777663887012989177200600154194394833089389290969933666544482352428486383762980580339953562513046592608804677967197764213977934663628782462312337177306585959761033331849491031021587192559138427566500490910569245507297662662397209662119487085261549381701136011802265295676029361030102488432765463563334902205247526773570033582312244462808046568660064053880383820581110293557967484200754561871515552498770887677393853991266359470063658230404818137020636588877539930826142886363000290687420206320003215701309680040923172627736512224193421795917614275638447629835117749156141561097885528643743855204262282994263156847543387834964948526132812360898406256771098717146122119286705440149374496792745716530032413328380663661846812091714713672640610451558113895879706308238075788198615362811960749380537269211667157993111633494559165738832205260555230140634682150628640713237302210405029767166703716237782437963051677139077014567556145511550981175435523946115934929564785077751485492019569701233293035262232261820445152144396801248319917047672039057040959884559718654587651401988228726277967532924524223388680161686169401839624897253335295750636059204017608027914189027369280147468446249273925554909753862276426974535445167890493878055144234940989245121535686378024007336432731227789894250220528242499118486353917488119028625009142644623178420684801906032138082725774753237883208451964254604851170470670638998893637340523959826096692863195782290393994757731585638118844740615701735391141082137739306838721766550233018063389103385599753686159244782214589232245958230125600574330557282381331610627778541031314931981431525356290048441574811027867470818954637484914101025518115104290476843005811849120162467243228608460955562311168289498617670357706237495521495272836684630591664710793186353552621937667647193160824084181185736999904185479993233293480247918977639931665516898986987587137040385983253761650913153649728433559431190772126185085381986968967130904675703626194654484919841392988228522018917563388645339562711911763425372582589510848556942843213812405993525781706314807254556811967233851169634763243354718877111555286368167198516186236427188850770064795519752378075091414521064545295352313094288146991459959978774558591813227030264499559264271875281923112239557721811666138355198071167265246291100004028150830598018036681483569878014017606674761825591468827289972781624524772242237310580987550861812059640766014809010462281092533029542090465528614688130506623414106787514544453481707879277323727546516187608615062468033313033990625293795217319986248570213853402845838378867368773115003638453657706558452682846328483999170415772001460477113387773677125247079111394247184360804142194592599772918831136905367186234078900805066275850870816543881526388444387383509430534066288349058845309023176205285980056126403205720462505522042125596877486113983175936518600818891437157230193205062619927197495845335026707027422841544020667909254651941144183938874625995665884962513669742184320412297684210262577501602105905800082777723612189811258669219064505583959562432001039158798776332563056900560676198538955910766906688615487442015410222079280637403281211113417029936965875866124343851253667803345872299558672094691834195405655031883134526391634074406412750333960252517936202683400416106488035201923443271687722803729739494681189067163429525703285829830563276577631926339706880693187349213456779662380259529336643465251968578869438893875386716797531871097261414298986881870981340155904305983469652425084245334463540181496929011488531915850632308048358417764288408331888531648031543939085443912043711478606842606264837666993696738981721821345644599214793562921622496304676676940547150885597625136465087535972282081715530248986361526446932702095404397679121547300800961236713668013852531493546424246717357728940089107897810974002002129048075427294226187693762396084213264228091163216638189820834946837415847636640926282351440163253283417526464033108085668092909841746162197856662431693849146197602989855974210144245368211519738270645061410455222955067177295758143580379624094179100852645899508030502264250234722781739795920140340113409773187596090722621685700397711040693054384719090401192469825867465268363932183142833143595844249647493496959488304399620887477721356570814120557372106908632747674193382063381596155303549725984268663659251742580795796343134138009378982859139017121719212134282334323017783794893875661770755466695590864789751354850953069486461333401609559904997012032908022481261243103216156605461877944054135672808034186467823172001896837576726547295581748200911917171112792477276261506275925394227249775243617410390734277207467892829677240267941212134643722950215076461328161508606844893190063076046643002063526384725818549397594665124685599647517698912106808021002687786154774664522635604550623015717032094490141060961918702709652601855764604793425092257607331299991472271686038509888225117939995613353906739465333773158458719350416891482368928548309295716693815949253004835442733084695040667242818633524543272142206461626990333220369365832925953914976576117893478545729389645466357274435464020606469956224352672179032600165518118219672009221304851902034737014014268547741168052658726191114879226865396616634962024436291539496511390002017621568203396037758492420088257398038731029696157908650231421643947679844016355220693187790063182707907138937661260635565384359013110438089381055166484848004156119586090250041491172672013393705499391191036949040785459767470026911260402577644493746510614222290813113130208468272802937546199630708914949850974669981078744957746671983583064796053649907857075467293009998450254884308750885539489361246936512099538751624600103172461425396382642349472575710203870027515518791558394349933254420614838043043785497342704494817857007001676761128935892592634486946000735739586455917916599604505381391523240225803543203345328098291812969933080687342764088941958826796591382402953093286485804968560803013184566339600313240468824374374685640850462666023793157505414689051513629664436777307984814205339900039909235704359743466843204067199170665406191188070925916938451622119582667068844896396761873560772154907545475440713073861934188827722489175597668677074739748000882076529220187042152987216564044485834547358069879614335409722177270203719746003450491713665143138936156484501456185068211019456436787927722788684265217522171836233554520358562865895435019304301936565324510984986439749168624320054950133722183333117292253265242105724956276305108980267725806811162942766685068461409474489653807247073707241217103569520885368121376709772032614000328415537685442702659354205512510458843480792363074659811385338385587284681262350106708594952494749868645436848659513066778629392150973348863051581223660757483287655608141221236076154723411766870616373482991490155885779292050968560400039601550549988799749690911376693108940888944607155017159600937537905701774201763775768878229855589565301318785554286419642250576214431922016573186189393491635091673976843794035966025757256807542455030942055972835521359050287224303742088934718688308481115504511526669746128268015762095866199317940546628292979549138435527077335492576717625006830249223803032126974890334370532682900232935127912025584726267958457353335284048022307172322411109855184085580063935899129574457654190871871998436487653561396441459568497553422888677917091018049595081167246069087557559319308502578399480065465593815788565092938129459454734367360049513786299361030116233459841655945080436567899606081913563847148717332063174806946524086626484657487964056489721205702147756702691571096546672326586336574258869286359716889246962672362349791000183333849014765080652124914966034413298372709961724849514922823429867264770094957345950452377659930079509461676498756118341176468855239315647989022294314734716410065853411284139110116108581560484073580948609971501052305258561218404174023473258288438236691521776974711379599989562777864438515643274153881453913704363844028978888856716839944766648824290292925203522132803561285932480424647456125969380380461188976904793511982309145466525375165743360718988804507470925991165559063063047363253664788576465700610915154033467915128654727826381321315558303791735308890539742296038069405284085737994107978720495908351284394566151471314608135148823196519169530088766452823625785911485591584773283566944273170819067747981696792382908191763326292990041613214490243802118303224613172660889621004313871740606476222118935418558325932010661312592654051641623401019206247210382664654967685787399137469668931330867028204695366122795420132784822721822759509370375226175452774449464893201420937413367338817190924988157343286953601284736783461236846135340777196284892156903847478627171895952164259091984789926661584030904035537986376113130880622189016844874048415210744492571028426671914793724097623611757873841350799343636735470273030406528603406887524761097965548060680858460664960408012801536435248918323297510642743623393620344743945474137037569880861063503783177941817374046809946579172039080465287638903931234385366393054863167367813375394737016085774077596124552249941957651615296077484151915760954550653724413113418861562839516472888634982612536937045075494173574704212052937668345522595589782120089402254128538150310949857295171421507288733069436730203311505451836362200652310034519621731737096593039902186022672077538072272605691450668660888661180031053395562468098593541114243002551079415911470352680804521060859672095934704630404028392402400655491742794031408740683309067973821183818296005576317716694689558256477743956731854977256032538074122567553288304150916827181514261669994355703860298471859644202274516316066139924864725038331838255403158831412686943115079972916866877460902173646149990077512957785593224854645783624463058914261382097932672046198181543561508003416403379634526895293909854181372868125212153954601127482880304151267093658925695790805455416348310529814499470095194671875342669451523514860947053983418131384542071275607672279122220165017006044249241443541288078987306286018943284895051925862149621427965061311476960884776869543120969832466097769618228119796348935103866001459182807651125189041707883020747992675740576504733987315777936642500101158547245277854813247262866895268188345535048979302054336102231413446613747058651268029773680669193495015050317883152787729750017864807609750305318663266256368906666230733348844095411705741653090210530273693760460790023110276284422437874242849202489553182083717132318644409380464683996485423086134198212742797641210973574433036639599194309053890487591641956464928891536519538608800367571255929743733377685821743796468116301464584290348587938549694230369719549026589291736838263471693059231259296996359122534428566163860615773333772171808569437516367635209573225074349002044373008534021265648155885892632022045944284950519099204936027829212323221872608006416719585364194753757079819815258231782624183242701523547015904043744380723386773591984666508388558639265537842643779342649993106152288704093486609985853825850749316410138903587962607217284027597813765528585134021555239190340071085914270167391430092204796905928817313670144512736922381705430518542335916516856130886545656029554160137326598456814903835841367841384777638875819060620700034231598861875951005797849897125815974433279361375949736617845593286984256424765121388008781659497291899659344822690247830452757458919989976039353784656995280624015919159194808709497568733508150822941835656468242817031963409412679820529700234944679622536055656201608373691177646437878014413799829190462665807457420652524951612896610609865119957911050725778157321159545284951147970237736554122798061333968825532912694658585300326205172102652389975843827915679326605235246273533764152513283470601510426441816157719340084657940183650374925096166100325811839687106175286049942755669714379367987392112397435115697637294811311902088872352401568911046774994142990747462009090676329701169688156270234435984184778081658335544265601337544767486665812860162498427402070030375900455003249647039672403419596944743908081177928419336468923457084004065728518336103099391420729427596151817773834903222379831672586187273654157969641705364259001549710974793309212916339522507129098539812614727267158169942498244179400991136376215555152164552961185117157863549100679894947675335562265626505560652621368533036700820783503431194092645428734932267313765663543796833647120854400592726791792517021169263814129335511232369270937067578370032571388803848322296130983785236646338045056630981565721591602363030566368623635026937065143938808769608083871723527131510400637158910518479018142454094885799540328629417130426601055635482878301275860723234758562215042679644895023160757033734492668682577427483802738970198675136139257401468296685818333615306782312953632448876375494829360589747389379304559874846046323338300108463009789340837806162058606410417437738589203644565753784075565000819206893632282312052333237897380196196781266549602294444794703637679878226478415829162772885058642327931580171772024100909390919621290889357500048173123484765359283989872423095961637658210387945584185956757265251486225816188272752523387098227798362744099107400985486533000933058139939875022264479700594833423946052221427111082141229725694022134555740583154711912672433123166091848920115232748733281252981428325877570084205913614374523776693068237675243319929549184327726461991610940368413856243725481698364003153650371006579589380125057701738731362692713254712057392135841047447443557224443582466060244821220647410026179338280456081406405776603498665871201423165939478884474103887684020582928318719715674366590512352041844916517786046140892365513223237794347489230391971690063721662356191975576569335629209555801590784788226523751112143607418022279976837096783874978068343977036197871908639693455673912609962083489171743284693720395546133393119843625693386625924826479740568941039626339946038084736192660863391790380178175520258385082919891420756907238172304529017855828143598389754744177137129965250761159555325614785306949103501168962478297804840181556845752513761714857081739141284298481476065078608122768039250568185287311865243190416899031889745499048081780208756581858160466550308706048345895883622203045954482599353950153996150062352457356424158847772357052818711873552837800591595322985953655866120712801380855604381488617475069712659507143040083772212907801457286814439845583579956799308460309021343608129797759540604117282130822164278275702621393525938842850194821761090185439099296042977458662413504078339311249069848871065465491448420380543725233085431669837226556959255365401301125957519568890622680359740904160378525071897234605843953571228730987897802350448869247220528549489281052299341996022542184166179126571485351382188321857435338497500175069139046202575099947906388988756250099599654234307525304317678805814107896808138414880783295163261459409582839180696237626254933400722676936647671987965514143795531006279771402412134245873032880429637544825744833671083923936653182038798134127655405867188701911857199590757865406291497232257363941446409714899260075469703897668291933306793823700690268113734075230233998774097855212210190115012737310139555907123625743215639116532925420844810508824753213802334634826280533147410900251964290290660370712064979944195285920652341711186525298553340916727982633157083414339424368275039934228408405591724416085745853824342596496548893234566140534389387507019625289060627242866196094646714919116520719864341308875893681947728529478837778480056774164790866877649298248738762538572813792796995966215459037794879766427914308174718105368291290046836208307256659136260499497792491261716270018372093919856073358876546178286570773548429514244198627490635772851740676670609803910878372193208635762634615110249613670274613317387511364901037750957281667159070464973558692354725025130822716723690609348221619592959935623598365898198561521351723482763260420701947915025624329600106972298051321317777897852134557214877828451520397765510027064681949977052167021460664788139200961434902310727691729846701471116081704385663068422423714150536991507919973975800744725096695247774733380971943618896180930181067027506462900052440399283984143875091670827949799974065228204552541223898166859212219891893860427455594939953510294930114160937667454469030996384824051512087372137222592854630573216953632438716054287030219604659161672497377214668699719564719709520680934912755346161747434888486204363965705817502017618037368119774023931010257033862920456905349428911316320368803780022731178029343874336938512417056009060471499980328808784951599956661798056492143244446913810937220223468248361351400736221536442762083041205743545978471687498617821907772817050751364464860126904760585989836408320859706826255710948262682972211659958306885499883966592805577859904407435841969714945878390277158944064034360720947712555440250723872088389705087812235180632848059768156459615234504955383879344998713427966820843515993602100399420973196386581497793826579433726478270304753755539193628358457417308466350068597395688225361227197270218649653837439506093365062439575542554719347673094271051157054646771037386872546800972916308796239823383094076811180365773959523326709950098070620573406782517720681417287975091838757144126455095576940685807883514039183963844440313075946525079107014085175742711676186010550958171460190988794796318233478216040271470615864717397198075137399803261599599528636854066096421752870282525103596034749386525684152036933509280738601145056300654129018699585018196988131761801977973949233124381953463168759084647413533396774607092999485229014307506530912137732337905219442551355283387612644311691264746336685843385656993841660633088827118479193764152079498104539268468271607092148772193039377606962921018261696653645103574502706482406103087580969025777012280678219787412996234529248626894474457128170559223592564859247746157107487930745619019113900847977915930119211818201461746986346439350758429976040635851436020731949758752272001655131020632972923270326463765148450188676340946867904529005198997522271663787497037098097317641126275780063623958227914783034666270917339927027711262897158125406504024163467718538727526186246586131138270893072206351285492190845346432677281139685364859309186098455004140417590830856292914928732693293197442558163472355475309089334547113943283273161163601095494489226264360617587764916089957325308974524999722401731710107559858815015631226530327531489185858776969521440149672393913872365226178633149638391909737674165874252657642255410628644820291460007284826047489880477462274505816771855829128330400970467471162160552987167209697734363167743065805227419625034071615459492625855357792934487888949357765183147694404344675927371409318394723923058657958930670829871290926086999163859037975018299931655199550389367990765819143660393404499347227390668706636447463588246983287070278777466022922228610060333796227455418779819908657350730084175853170279533478260749497909412689344312704736268940191637680234981936683337521143106304798672777740309034033166936840673602084924844209032904498265936807386326398241989337228573139539806687745181096583391962024689137947041192160626651877920150395216311694741426712510400899239191509929813846989811105058131318779216965902428631117954636518135710568193802569529027859233952389836685075418518037951654832287898990598306942710594780692553888157893165454206889756445966894918472562367748683958082228244223794231532671977506560571562011637173848386397171005437833033019528524542398670111857619397912802901083850846556232650363766369492456671559361678549775996360332967767090936304073975436956793696447014034317976839808918390309070791697332949883628525900936744527577248059153931426162485063079341912932586698909764571966429136694844000119923670309035872726933802878744384506360741005687928242666555156384973402576767942954501026041601393706722390086919595270557458051848126629932392142944224124170619816364988159454180578655908659376419586588580649340813344688665388335606174166430852548928473881380450613922198377521041409606016412993427919975036670716133451854666525340466116316123593676541233614036938220226968653575173597491073074052561344563137763826209435834305111817043258617384037466998010685643144743622255173532128272923414068046482969440772274507563285117861913086961214080073670500605299829643174298421352443059021780369702896901614311103763207096332917934726883588095194627298326478932466117279954522195720116378497530271488902858734107184672340513860982459139419279133386367427815595240659500991770373642648274163220063682780072203468451381214573048420105178957753019199579265519066239627208499781402447051898969150030298620826485603502767731366204295050426359789686869490311570853684985026801802246831949961922327971926295401210034518712399797796991299640291530150140907519267060013949396598628658795110681357537846704006274064026689984881977451829487562388315431525670422454429262995892169991000547020165697612623259440851644287993502546751762556109786702953442381156552218627433199275689820108537515127014365488821926480431646108007300474943221710169058401031538737181239028933528118619882629425595547856792830569894246644132983856831585449984315449449213888907290173416100323432863570679126097636696403516367105211349564830520719895472728993507499645568681464538271845187768110620438056664406017160869915555308625490686459414221877265240247606017771166378079229512670792341975673107389596556766913640298990632066175938218379632825516728435019990204664841815314200804600877989382192776530941380939278623967110144213393413679086646835958020489807439202686535849844312643948759265854810272379472946575778442736119992461001979437351580728342847917886457220033233296801652832621854184981349935842504068102229338935741580137882115061829642516774272106131190834326166461018875804675661519314425407579802398000369256643148138080931321830619259008789841498347075362651266270405859700424281324229180195422333953183306215096978423779734010827736639662256168524031229836795433320097020401723762167843789282150993461524322796058069906528703973070131925944792518082437778764092469456360905143761123370882997502341874957571377118240295134025848138690108449441745751946897476319531386903802299251515206237855460770204067740675750249008532961723089889225444760606402324293110765810521388042537764477307181825622094087407835121382434033404899767396034203461922853289538223000409523623145016751122762598180217774872683417898178290102151813134633337826338588051522235872879881047888328370080120393442951359944563376487622256613469484590881681688182122822798908519509911635115656975833131763191548521111370064754278124056969222723604586324169142961923971889601607281418646664842704091246277528548315250199344979764735295715207898302539444553035711857664912435414239144968311933642922192845610810689516062030156856683894994188505165307066993146684106490099439300979726292505923892317932114467175834179418308245022476532355289477188957669455256724441967015678111151397340236779573300565170564275545481677978382007734106062164149336359456365693960510558994126317413928209390823741116515546788037831506009826709947670781943338826794190320409438798982209919627782192440883644519852676518361373389271340860064985420145895520959967957141120561022634588566034812555407821636935986767589592935669122030614865539883445820139598836533020970276876166913578677014450213058186192459861035183010940139178815442754654909365010780321660942400209859055224257994976128069833245152996493855965978913556959115399514049916104832235024391721997030800344025330722993483410206704945201458089697914832321707825881691908580826179106876619243348174684408787986976444860302380370139811346220842589606193047642952709056358994825075548191712385882958505418166591501754152524242732267574006598774263001255057375454854454897793127937213177511004434159424502073620925284147468333760956692213930394596129013568758130384736361065214250267306446141240715326716207874138093835333757502302127024024962900490584590625042877235802592632361956599362091625892183610710838670872929300168415411231517594761618697338049317500344694937465040904751387301233431558631187359924384261109014048748095396212861800929513420823087620546860805205159767905517752943912056869290335093302021622432054769565300499626468645983637604318590452394639009326984317261841255940972160939638398794980059980794038262504521520012472069494119195408398961001592359738469601224747608588095445291670330373250210328272870266137118536840684194353265995007371063163662179688635805729382200533608768556253444848592815387907651038968653397030481055636886096356230512744360807880739456167361738509626026770794225776362356457510257499603548248952913354257007236256312304503069927470067397365440765226300375303102316245594755942989235734183013304170994643732325839152541486576531886732790765810485540718973971227499388463585067968674681339516154288911162017394862979215376077544998168701488283386006191433495971692667790154644018160847465830741613449738323044489841093799465880931539725046765787067029524655487776922290999315628053386929435376632773858763243313177200939334297704331350611176641923282446122759110663115141944088594234636812205634399178438488904846939618849321636216945547395638313463376135078847316365342388384225681504613319075244729086675868125260634709819324460152955063391526782728721761482370046246304374133525911290897626651795352730579442983409738533903039340862398138046666377900732025830216942871215502514262913354594022300189531899567077892475623471289814818190374411632047035617304064672868783284029067522948295690611778763704644087489415454585018941530010558543943728148752027081953892168759707621702907015710737096212002962594598177891730360432749546073163627418933529648909502994745495202338296967105128376537078943935072382537791972456592662910023794378822013604244427747528384605993423158752225193667726969063471977453264424443354969584762479262582783586615501056723133647762914851316896784315367394303336305944011602790987717722445370131630732744688920152159023313139974504545671197460736515420011866687347561255527766279518927708241627102446575344681326639247725728320136716474581906698782600477422069659100587449734208073730406389502667179971503490643397705034201495975300092011617632599145702706236030624403402555059088634982316913844041318121830552948811417601696462674424720792215739145395092594485125746071527102936664790356821474032155883660979735933399319992807049937812779929659054842469450237668420303221266184097464745564018279881844777247083827175551184534069521172052671794483083457803431016578806586112444941272800551018192819084350862912403245458010653722755660356088746986824114548801212517893261621183584249643002587099228577123088799339437533185464205521983419234834076545449765968704970305587972310027558770050105924910147179867578154327989448245377454304959023950816305168781609242690344501397647223819878039613739452270127849317655574435109164381128257067561000061893530862114326685013094003589996321033627358672102589940650988036948972444802937372098549230272475684605413284405433719330532137745932758827090927526684211345545177044421360323211219863261313101137098801185616627459357293410892935126428368170900478982260621745448691242690367791336488603711004735753396194894200411249536894049562356264297070878693609781677737680824785428583947046268153810598778824492927875469460391918596523836688093485350469611266060117918053046671289601421804464304264944776225531305487668614080222661967106845998525066594352011087829493135841894681777753694280580703296542191618989633644866012683662442758405689007297270068172143335582968032309965077403441193809101359862427324311389705865302195627003453761245546539513650820954203481485306470334647977976863827704675663089008924780359513558172887214741638435196542684336101681141785846740567027864222078510851259363368988177194267409842396035079193773207120628782468076324633449887236437939806166885396715283357647019314085235441218303215385935529426471644879161227990782681782079244216189802323721222149194140730280263167925751426919486094251216146038462278087665323607070126149351492041728292712902839165385338262000781129855234413674405065131136268093060229273069619606408980307927778598366656655255123300478335306521899055705696998192357910653866959962814483297116568199554064105031072465914681533562843690200943783450729130144647917365528623587076107877417934861772623605143070728206670816904344600727394495238348848858865514468679637421661452404207092185408721184756815165110288204772504510031755842207978343016348469538880266018733741689566728743353803574074916121169899780939878842348779194337820600397508210382182632149614021858841867028131860086139047106957986300917873847660992296938942235435196686649352065699164174835426364823917163412882220601313136988274639553390017283155223715875870945926762951321109466924257223092415151756292458583266688874810018202656699060368747094288550314493403822051208680673447828804988365955284526276869433003809352496430314502661539701216237994463392449081026177079922114076687483794668298332060597394112903637528555694711595092393455483212841917298926290181322764100787002965681596978605470605670983686115279726973923429988404910677782362491673023455066714842055795263906567628598426722189236886619454027801013247676734311338073562436908756239629039163920054604603486399185023857325541675285114604908974603688610172017409736766098840655314593083193455200361891004032972116465948794765103674094970993965465222958903889515392279160672288135537537644655148368044023372104929420444107492851359783347081749641495585836311616041413306577268905751115143709129954351822042807918798029169120735592549852145610556544867160011637520422671309122389352426352741668750464026840862276842200425522884588852169635413132635482492088353254952129688633211734766088879758309246242780179279942760455657097890336653685844963424391712699538389835228098537080400328647984959821154593795845641706773552809512036291053270323697089262527709825118116990490708361552394766493041916000940844236323655858241912310772919518219754307336909521836343412222131085839710074206870542234197210184627596518002735167069950231434823212905189956513351104007381176165766574036661491951200224908638893325852526668188862068727818553334406374643147234442820325818976817330230804966752574232502077645888341815102002888950784660023720050722455107479308042246441770686717459918796182328309649324224762431659902989868607788089594309134197450978627210013877984891835309112181201817257382650161630355921922704829730053202077754336306114075822051713445287026832766914586833720017768556854726716360329613230614045483130094683634785320932734271333760440942332627464719165433201299604408570874367799525062673844458375306017356217761368970680729851999642395358613147121935795155569843461181431670319656460018910215757243689231544218115588593374389071219773590575943290301677021551722586273607458371350500106635842170941543851440757470632040456762412805066319474747056253348730992400967234758079420481729008620306882408370444727895691145850574814213750240179697390361384740572911041025713495654698411626682234987602884391193063542191167341073128771962514543465411628500418067640525225585331492512012195684727327810008743505940849020250001666130247725766044339237278066945529789859062419054685620154520844570963948387275727448549088758722335156590858099450594358571036696360615882763131046919041556115953729619675968073422831741782825189932728269433969524245131792981835253217598466146295401564442613707506250873323541264479403141482027785548252598009924119992032422590159242519560950097963787782465748269848878664368622967750086666934917190193048888112169567410024091520699386011653654183005943377869682961657614285164568736699216472201742525071079661835303900965577913464535195302780834729224264978216812186957559754107003745705146044104490696033904338360207035942285473853302657785136547543700562157838734483407338540698323697501553398442067931078151563233080209594804278713599312695489402904194628808777900290639323213741610026141045482647383173790509745729868860691955923041488716206232685811742575208473535278463187678096044032737686558192464742607412335843549551991956946630396855017454956617056141353905425108050918841940974203213226575209936121945754306838511441892466881020566083499062387630051442718734443943552721450770571324084826436251936172795529564870949355907411829210097796014584874392299051583241276990524344986518627186843072124729603804927795967539529204239023524864185984512796051589727568460085130654331918103320614310151137857847204470420096738230026869284125440422477394186357746154664544609818100481696113846128627585981439410210988180963705924582839261460902074575763921615313049602475964060973024741269073271022738892091642741185197489932667837178088341164228411708023411290232567873764639191191834153691061825436616796815366257707387939534203148685255727218958325965552489942764045477301341431217427876004243380178818731503701082937119516824242532982892965016331097118221606246742669118034592572708642305879108010372542477626125565909919626575586628147061894095573006712343038011711673978466860871979389900640933071606151578745379551364218648264083578449999563781863434303861389770495482871637881571032585747896926934095418257185918535986960330176331950222177946243732339627584733849832013495595884482060407889231523816669017879300279603258960656121783608444351327859923844758414032784192622911146058001143371285407439712034914843929367355856025465236156925166257530282777555577037382718524948767515034042332796071746780378625720814037949041000963000872251697682080640606058676892211898220215144780006540401098050553087442349407383691077404785578794974571194198860094119824142441260741034304714381761942037264186216233468830346424556021588848862720346038653903830153142738327442968932734734165325121732655129241356255873968426104968868175728389195778070836084172553593944681898003533592229245420080958090784989035871103743757580911336422977209865176501865139808145544204031625402943923116702754940008293323107648390735902173049508388898136452552716631060433944437348494904694825139711796564718949011589668342508114558695804972129825796981464877411813658039412296093520036725524900669148615034875619144452422723792011728382900160886528465010714411114352813157859875548377471184180140883686904512446923049511036998264877691759602288685512057579757059979147981322128806325311465799657246849092924754643885616793048955827926748889742824452570784076881098208290125348619016339514348104949261754619423898082471592817042083011773479203706725448304337153086896026068225272954629778284567329874000435850762181626141146512127341729848250395718571203048249952589747199281450406317417263321253749664182108194419214157702134726555132300923205139671966638110052462312749715933687190991279625750555177330656590301086201244230055472269034182675767678007910484582892210116298812629104145755125532213935613774319586798878216864831380515997412998872598874317437194001743685618401899222853893294013272851874092246774866145756539334263312610059803764856508745589249489182255399107098075966196865075168872406240094249286636133794175723719714843305442211425684407906020187011083167214234597308072015303868135066578011148841228934120614226167347241768840554774696451344738244974097126707137469431406598002566852887719166828634610957719381192958447934611449996895861410903193233659802201813362425552136494161464714338272871722268271623253493665844226933511348820960416589544170559940075890575392282287313825269496128285030646075949126525685153650749687508199367938774470943362874555987152943109710693256893448041793695101112244377462513351147883517951229147621319459917541043835484932241785598941411050539381843407326771890528789338605057753579436137739547071795490693796517994433557380585890913540669393054054940869906163612302342510600673487843126483165939097191854121747282573207996281538939027708350917508092203783325062317340007498544549289652224531683206199693486474552723083901041363071170904160421863916897409429357074949391335143822154298543148183111746190242819774688187165181095402637199791660916877709476155898255380228890106070912726759451215055073796906685935324517635179235653433655375188173446546056852123392833633016299551173562204619226805199924716645215984969390395536122531992765937004629266805452986268370883116565354360463712988667718380259169898850062293466988738256432065843407652524498209852302587047748575913007935180790227139489833021192630064903337257919192428727149646684265149925436548192101827321977509943247674274099835551282670815405716893117879343806335194491613778177332898966207911613225467118312796382566540489511552348009646644433101991146564329420950040425388052912856265338947172664980399736364331282973547563121628841174747075930049206730652504034983183734441848840219159830289924807061052459431997489034915122852228201601964987763270078468046725155207620798686062788853369260174386450527690479152002334470999095407952130256940597669109463708878378588442845486410742632179874814990558730353246843743369466676924035486461961999733687507151141522741839199843674135748421100423382876795007898155652153897568111167293594713052045549435223396401864652982041294371133525281626290591543411853757807611101464968363285078107694235256921545352760742122316809493917230674215881133227891060644514242592174545604118751202421500536055003137979728414393327691670905282599733545951049919367359125760250517646807767940545684199436777892366227334875985173920537863001131282559400542026840403432084112925619166057714864568291301137359940313089575281028947600243740660351879686238382092707190626970096819502173466905865156271099787588631381105026384722521429530310294520082710693149504542505841232808471311629211818155790430622045575187408249647174380261749154789814675464378999321074847299611338923665188117990728775683618033934335288169328133609537200070070992681991764699114885230861959479205221506510793312489105216578959540550431226407160441516584975172679348244929367716051866621300769659086959310824454498583558877568475438818106734710290559781634241811611847122069138936929332312753540530488470881425596864655746066827768503052769809450542592809792813143726357041401003236990785104136301687622833095855234804723294176927946036065451566808914524935255806752902245145405670219840690684079408883193964491958197655787534171321313804671909131641695539116670752681302612266585056274502591388986161039733744319190244739093245489804371151044762094313623387777721553431227067147960472055479864145084906153631910359195487110936687156266706666598611478464216041369102349761650724753473992124787992847888074740784386820257185396964455590649927319857080417620280522730751227673692319430620262809830963543818131214113032151584463641000148432090044789547346992281919238643777238416512962730426024234446721828796763995432132396516476246083199790717372733412662816486093835798009870215275755047829922741718307343078109298989067211094189629708245090290565133950078249023535224007879104759328501362024533308609781266026933576783372680403264243362478361591428010761660175287557106024015012443683490845475022866673610339075374778900149453509234674760571527544478842543444639129455995039335333098612912474039946065866601729398706708533786969294662965191078857561877018354629228492267219303101962305633522092319851052523001272042418305967690362530129184808209710495603759861031265383966005496222927517506564028989126307375244634964570765381940116527137896062143348913455993713894902204502004861937191108569041234680361244363211650157775139171392648837445669615835567472018176186557546687108413224914346754194874024126449682777609460470593592279276719189585420167274362334263205154898345671749258934902854414326467386659710344447007599225347937032320928831860988877249608964754465862614959817603851485498602359619966076653075532646261938776454618827020506392176175918291252769752721074018699640733911054578174891814516519483209707101650765000194084495328839263480363397112703117776098206392228096478642242135207239028548632930570020194557824217667861622245351554547309704526816568674159272008148216405990168118322234806170050136429208034189517923875748017859059732415473945670253893228359308898603155088956228599870521625658312699965064957661426737779181227651528855053620754200611509458842288484457678403095907198988218647775043834701832195580756647950097373781095140585657897018651614517018729582753410440039029486207587080845103871671375376964642000095874902232576538565289892355675450729768144435517250251684724053224666910034437434461037684971606251949123292960915586170424179140745771541700210242311487556991879422029454832014629486642630373400022497601078152168608596729375648417055654756069790735510250180190044735609366352619032571517466816326110919021104756019404656124454526918270448855500106282342411019850996714047962862664880932948442523616796958052520603060919456826629673219878975516398147409407068289140315380250520360285839328504288905457938646861307202762364630715853063622604905961344159131549883927653331850751832991516823541396985878247935076062147711093083209506600314362049157663435600077953782872621071919280663755307043242154431648493244951353361290100242083152632740541010163297847795729722537149534921991519512360510070598009286375567851543248390571747709052992079391911742005714865821928429952160872629615469434937594671225724479945368203332288539920283797264385641636883500335831170123005484230860897271317934861392382628506945990287348732341578864345143199147122276015627801350747987280069469560974763555386790020250938276903939434669878691844225117099588633925366190550274307470158866021409597488973588768751696249932710561391843596443912206858858783380757734650776672101352032714000962814607433532270145687164696142711987339698833700651513409028691082596499886896613485545463797679407584441607289022365543656142253494129528665175648967014631053481298330772767142725661604300857757276150652927261833582140488994390952424684414572119298485811136870646135591689571735667342011673886320184556136607886068367355282322072858856581048898488834257795643859716580903800212219111423855300902489603189887985949345076378328239219770971903031066791636919709484691663705621558140373491253104019004588351578862862653148809269152348559631879615232420638716278812432502852579200489470264909590792380218441011618571112411602630975926039186261755307937238967806907888268695962583177676499646479631102977908965839613983434998883792138783500739321228404967932797489600679219703390433629771207567313727956603261834379937705642027844886309471945306147636258989486070722355562758267014373869871925098794053472866021732068329557016613575823825907244249465308833610667816580915072258070211620584913168663832680413192549697896455740938679956890257497353211738716806032969246687281067223232430836294190211469836865110967847077019800738120144355462050178033924305317757737910640885947603920890646509452780358817217478439156493111275842589189627022629311290723055254593283136256865795372776129832357084343909595659840792374913220410378647029139948585469059064407636389607548159623860676988720356843780985371895527479825625292545866874999457028062802091587448360085218764914303613574598008345487656356091913132515956258310919643788796194677810904211266458747496855939358389133334936455836334115893197833959554208953166975360610951468051416590323962687414606255736739647861501130597391243634719630673114465574161805010555225872428778931292361421140717455323921033760435396115827545799491639092780762929624176335508702720322497438632604251652965917085040758181483586054731274571490775441586879043015885497648618981249928753496808956579852192531967480135593746410061391706876126510440657993762020923681395411872384892352441281359565508855019305705853082021216975781087336073946831017648742809073803301147432295974168289618737445792483495948923272888928859810891839633966261226701180727315863381461510394675293068131814646280392528133088504289234382497469113539925595871366930450332287719246945263093032376512864109218285864290573394648069116042921623016550028573228759945532836296816032943493193595497816901157600405850325206981228894365868548757832797930851866659634552926919794713519488414877819128757477927369033552409772950631397621480530579570040216847603077783423604541726534286929091192770708590264735148954046229250535636297249244483600567938688522967524941686845135175717747617711626517373665231661598017547584197248677211955964345217686192348628043292277910482651465474758199722363707965008272158432476486047047458473874596431662543448080853026425090539613575443617739491365961456393618498602042127305575165546885164938742287004026517253620257395477542164780198500190725749427839181912840761434434262826514031995771486972879536375825059002218226295868004222615541505391846498787947888828487125127466279652657724113299101776372483735957399420954693482272284546262395344990544430812576317834509466322676385204251747898523146525681533228479530425174629228224232120496428613811878873469857974370741970613727308513619435441927062902481812540600453876052097039134255102507479541160798786216385434188247887415359773164935309611730088452166356261112233505846872967313919143371527270951017177858071660479580275821465233844102261697406474299887872562314072766900149725693982590072029053015110836946356003319717283813337551380719451855800186019918931766580326933290710354703498668185279192641430549899820853478373630633670766268344864244847038218626170500838236572491842228907875630916864830062332838326903575272257339559126645339856928461643518128145457585671118800360757258607248816120514586347548967446650159222388072156083778969230168166226404491036093590797003408443424226436057060850603250696360786318162533220509859634286236850943531802874631280378631594898674430452018547360645881315256003793666162509351908317865953992480519940743892226126199544258337171934392660200468092703581742204358601347349770666107963625855197062136039659258900604618714465469275957184417034924418250844366562670972001257400272209382156879530227630122947191760549478124159755799147484884414019235424545001182768793610795733457909889725513916456848400744984902770392734152918815777445638024488431249276357306881188477602980607299006718183667299351378471734786310126668106998651790205710492598028665749097886934551941605427989571386452491713011436856910744435821142659773628243704407695274780517193081878121626398363517005174676736061259702750379610726302522257270518783552249456371511619160585091726712590873190825953755070591148314087164657744066110618625180231444290411463403046263714527948923971074305825782878945240763332325338680325011302930525401350660109416125076021249788873449451964821600663557062967975587189489187792323592097366249005078324002626851449760271167460134908652468554511076212613589125007570136345139571596508848238422471253798181245494490394325209788139665379564942410186890379100916148831459075207615417949804886733823688194331348063537200044050654389451985950789703529084884450141160477588459885844081591525545229841405009019154606214902095409456564184728739647123736840552543566839600413786748344204866545078040331582912428522297806932391772234823015442939992270852668186259863191092654126729913220751660415740784129071433160126578088857241448569454144196176463123453220253051671029111088879649078341581961916070723993091344351841890196690792446461847876690763800994852879509962240119298593534788166936578925809551594567106390325432064547460522135863544438922216780519458769332523125000384059613806032132942761706522167040803770450458710124964713289852239235547358484362047466913731091999807422564922574379984633053745839538902419194903625674094421066503858929964104990195592061874390847970094942254125239601749123106158785543123721804097390905125418372785175651796477134240126048332995726552618345896402728285220756825671008178187166284608575221988839631610773723477876165289600245346614729249937111258096147252160299345407846107062401239058577535773328552155558220543797843069193675327932948623412940336879001412868686931100341635954533749071618367111926960210748659257212694471081821122656642251383274191966355538757253294549131500348812959474403287285774349669637983975491162992446209956663293310902435662943435331694753470701277708492613475732075340621086926423042868793502561065519065016275582144019280033337418193270812211873250572629326195233218470518370030560043477956725843189895473722425433842081699681867505953548281255418092579421421242995436782775135375934595183682439148932738014652310721848279950213761341959335653381854255905713757617956356415591939833770136962639605238813496189588513678035850506217904311416030787639275768756855083700253476856689214943809596990294046260984794331701097065743194055847163133240008011983878503696263323495964301157490332372774707582469778943834425185718564368922780510128727548423357380538106735235092442874999072992800265586844508230315316840773002331583321563251168306554389917622839661325963418985865902142884025028664191484244284234482169726522074983896944690092367451092417992614941747533571075086869515638147399971700218566269406557981957097549006418474786432366080700098213583744885953234376926645898132729589180477088632824318739312941289265771491236054677322897534874946845897409755184382095904806983165916593865124678128814707201133621281431292191010522515145786824276672278008272309322172244987019656368301878690371428782365114132735991215516307151341956690763364415133758418139533483286866379548990975963828336912714160045323801892142911363884789519931061927208113041477614276688315830842707588609009573988225103187901075331594308066431747644606102457439144602312562662480868825183266777428063548821612547087818281409399724166701488329920570292012506988535505724894662322799237974633731704337899754591657152904969361442106655851576877317246585577259321922763977719193451563154767306072916460791714699506888610028196623999505833742018281081468852361706358491576963895263195297982328218139634233102123384183223150351151305362083695988819944255341107322650336522338808649242822845804672298953736378813268122589201172041456658541880767468036677876072177261093289618168844819370758405629801718228339589438913481104668526844868767048616982423581875975158119106023752357550185176488083659053834926357340421297299883274765298798863452806392924236386516117094484921712454129620115495051428321938689020768816257536606700450514853363885708584029684219266012474539980890378657701643915637616885882190775513043433400019711769885911119698973357078419800280645165272265143700330845417925658898847922995509398138846492719695297213622708475838492599488377959001142866613078120288881074395468051102152375878948169681306777096274823200512347096595798055989419965000195917672891344484170462181916595126314892116161303529811993491408083242244785639822921648623792358435147613604931055875438166858367182478065114884345924879751174597796064950668412878853913231937897626882709666662043917314027847123694966313699635636011287080065275505910970197257224426142349747182901958941087190475620107092710162103239526944957200293359779211290824771255716296869082463155551455746641276351972767912343348229598739659268239750475860079727536351966203402999631139892852402517056777444673032066351412860716645157379647411747634407817105376540779724913944307716827305849636578636791709627883435179625925428291168382195703907223024767023749175705749821406331137895894179070772189430974241917625439260119891770160289052365958715158362716812264163876090311511374943593555904001572914759111316340832049787107283598043816399079061017313884166070671524411465981538678499191781341068516230456317934277024562140907782849973251114167363702573368536722059296131215068583383755704038597871779313578378648225388515958108215460685466976804924708903496640186364526503774131106129057030331527602791146940909708410643966066391151628288442395531150506137148891779392851039554782046393004258982818547466049422737235401614200276160986989697397852072175326242678143627875254880219081958024238476598082021631094882873916401508182544819288508207251579892100416874915720213896296078622321227809087920860591906711849447528524252749493014883953726480867984831389186994013897941484790879409605391611106120234670477998557972154121529075558928458265413248524182756258510170462804827949702160608730461384216682861097320694115102191139343284633644699855039920984522073326076096936577330110993068514438581127071994664059128033098492727209831391607575027553898345152948891907863220620159602877490499964083179744104591125791075793796030933273332083623985638743214711867851021686301976545898059901670045667016950792599870753843372589979502552999394121594984147608936646525250341740289445431245314778644779738540425899103018621164376174819053537394514023056522198043820267945195094173886143950527741061069642642809974925553087884286593976318076984464526913107071469257367909988542051010856335487469966846859914161482395144896105775856398986104334220889171548839425055180180016936825538864105878793167691917439355236900487470066789845695378118914005074944481570440452732236972533022844122676338800425168647394183366466237274969027405737179734710062496128015842851528582962716260214447497934814863039053072210852861082235718949047971091602987269488850104150671654888991923214807780480692107972328752463299036091341726892025390594099086731490708625149825245025464913270390476285024257780794725713974487237292274644100388995143032822692621742344802728762392324460040537055292137762264316512700810478902967196544564230283816240550403051206499967974029821506185298644244961908860773328119543734731678474010956067118586887280603626030799031566921635848145438986665361625194487244726684829275710651189778174994059709801732621556251213587585650912921575670525229554939272256881749785860326229545327620183150596043259791599791876296058606205683140188978738600489007084606957653742900076836676483860003884973768889193263784582746297252272912181229173082572137247118617046829575152089413892404071624768446119623443824740846406244144940068624363628719163534627959289224146056706069141855691573530393774343569473744856031778375072400338973455913166047533195760447167394295162906315306856113220247880012593811736895370459616787306918628870946498646697337385816031408942359569568479028563612777246512714253796008465526135229907269348302444957573734614901786393068557204043884435335696422949815610020915415961621543813479911006542823252253105863144269430289745090746529189059079642080250230459016201169330662727086864628861316294173132347430066592356869248979218270310541618664122469325862977660137611620588937476782519785356997276284041386951454918783710527733602685403841112674835505857083464447303752885415544605091704053605466794996794524648526283845101609548512067959081727287587277204408695686951460104289922528291605808488688214139907155844905990228898718577284020485088034257990379584406764211712310240476705495293639446188406167773836425536443822509275170774967776927248214378750518716215013664396481806655597035626663265176869199800905649911889772186117805200085223575669354137234345073944393524442274886869975258035864978212990448170521235836691951618287573093503722905061244371034603165586693037119665545988222747750408443216242263964695098573050159990810383451940872239012371600602976625127141884396023118748638001260488566870069100454133770503247754867098591760778136130279124375463045837750160494304053108050771509907284855733680779422160804989699525786156619575927006231886013175302236293938231952225609116148567839681482013642921930770421939356499427952142314352523995209731360075755615189298909421420310383048190501173503992000501868439583972443920823372928660161079942528592292307509245987426291259437810885817131786123875296584055618025793737270447469239780513514560692493207752844784039890358616070174635425745788654594796358579146169764642257105004636950943735382864514035264957924086518069357954684870753194266828366580275248840597493330812564669794151000953859272776582518874852333718592122232755308903893801954926064225018921640542186031503078622966460549026588607284207594224567550296363468279805538565316830007051510274592985540638884295316181314273952685006378718730822790700935446211828479039208626591519665781367715004174454887671683297273338355670145265826465145280180014204601212671220180469638649959445477171463902043586225181059694630431028578743973451090007086427298643393881413916683349947685141806305225278149566177212752629146889324940062794092692064692537680274602866792573377326918819363168370944069916063082839176947030713877376477304094807129071355735856237463497839772355216239518619616307808159013300666515435496698251834261727580392802068041226838335598068460279698766296339193521956331145614514569485962784381683830086386450015451953536931882058197048694495335738878181766261070120505003650189805226844309307281753246218795033186141725870199782260063601908228641389127956662458935753205829702932005072645582528914445577600982219502000214029143855630496047962484863099215779664577665521438489175344982752494074177521402180953199543796504561148071959206691225096184202522345787389287236162312691104851819412918530573069560976874177623395569102836460278429189789208312536537606438890727872582023552830078801812799158936360807301396390682730969905242657005615485120062693177230026849357162818343977479768247960961805714996536684072263427238570508798876298727295075954503108853512492991664558930607035742201478836521048520181258744961602981387141833479784495009257313968343355967691838096154385970408282834619052282237835505667122480632721005983200008376826653322286993817307503834021420643301743279913913231814043899490033731425694440424180796579749256742899125102503419586012150053097292823653860380035761271030612460579342946329844634827809566345073621764987709328102562996888475836063842887999634179138539522821126270155333477614467092331059220135041284136275837465722338904272509737417272878402866516722887319195418093271832235622495748920713335976117924041573015420173589586343547290499117979011406766647435257479157891097347988984464582311795561521617724973485973769285414501467876078440731628576349209079503197194170868176420413095092065375700491073664215186498101128154523774672715199131257949176249481418677588119670170672115754588428698360920368832081039402307353245785595961572268706515437455752304864308921847776339366591878581402261945332480976441950389919600311813894109389521241846861686088275624404863628844325777586363305458766803025148206168799668120809663661560850625286273855994823098061912709187927738425359750518986734304938831873766093604163301324372486245004528675054011983225087471191053483341355580157154871731809591503207918024890411153242607833003056794557777220701840023593915732856847143713192137368043104757552206622286975649780691744507378826310429536436955540274804936048171242922044223142445372748231585471148285272739183300286095102196282321099129118841613050869790059231315944122362375193649272942287126246455468940780798430127645227494100704363821383040293213449241117243299990936435967412863183654431668153770897980917479846710099949417027936039629289881651652330772376996744473924573356589907602762030801091573918620096152273596015200782256904142624633442586652204562088200349617420817882691001408655184640052202065341306111164069403126927737261327647369902716452172783509937610990904283869162435658267025017099511611624270972854711111612458242087971755295831894388245205347756388017681435153175720101872803999061568328346076489464257855083534966780939883338805490537579898698121523488448527965477509115126415348971439589086514442501625348821988313564815848858485755910983377166921144453906497041115062295673616272280053618830614903447812713775556682084028540805753782571546465267886785023735556224416487925297893014914842405547893973907585188149360169736294968122331054348077606896872895815044412234771517125117906848348942733934283645545126866828119046044578581497412913316594382271199883874516730118706999185431227412965182303119497634500827680942437837760908583466361953809885778152559576453484327199738859816923536156669384692248166362672349067848134310783987325049053507157494413405517083072952716525157853610374580393895330294473911990477286902295326815787036719316218261784829969977158425091373361653036189742496935421887620546147983390589668424473917174134067975659422344292060842032958357102762599782748792485863964079337899752070769208448441855007901903069642025458369335765819715719904760756861794790418399973280470312983511925749084488924584090432496834544302854227968981600341173834067634267236832742846083295079134865191508886677897107955628239408034272894558169762071392083877256568621839059268592552008012943375286515086425089064277989475070957272073657249194527753073252388343392585679840134184302164227380757931534629977924711384330865163844458289402318165471453622679143240002268655893705735002692655922767304686703189770913603844594591525595742349224034478087056012693712588909370519734675484712993424381569983744250887773992436508293478567167094072066730261220953354677636500676527641213930041098835969514872026031695344680983845419932340682967977954860214010588162282475241454634665927399175602253655366440922200644185248924020747279442822124860599088077780444247863255945645170631380587064727321194762974103870615153282386908747727009036527205753654982459630781334423173396931895967315974991988565790529424828126775427684058861342526186382574375363517211296603845786436744227837064983648049334481101894297783604056971575206622756701732400273835406793721887222478846116107852391929589043659782069243146581853615884736806909368611892060829738242383052419313740340206237164808978041832685978880818082747227318370647694319127512652058628375869684085662931482871103432392805713123407865042486935637085489299072679379938897985293644345794254376386784930006665182269932221607455570762577802532977828691959206724120939176923445326194115353747807050567689885230782496573556023021501178070815267752643533435543381221497063406926802501864805663328674000918641097024775800189242355968506550029586246270074121733444289570619590579461202527771637237738586749941938156140581567668707225626485769199397550236403844282370659182200719335385550259928537318024444494661507893152735480447016834539306489284129795138194853770868234540243826702830562052453266572567955504611414772870942582004151134551096723370050636017471119913815584201254614219748530772431897055811456306085454688424948183462686554718061530423571264484854525165846479674920651824499920107590009511651404175325439591389260195462746919747252721747527708827831589713067688032232080057187796389164045398099447876625668507730653069414921021721436271514320896490162438931730187985154747462394016346581917766292112491865425399069918473979052519603727115133218512203487344952522900850157796665895047646183711851604407258187849656289023654639685596667292306608570970529086891465767088269656250613586408967432045504948097381348589270587229398580147101759461334704208670244510831608070203963190130434460648162293129861554762498684275827766633897455039614969513614112031673063241603368540166744754229328848715607352906550353266264748665441517632240014062759713317644764059916471778982308209334213232290584455224082811070158412441467979085326876546639792697678593230259115257070681046064673862921742680719636808785911755326944780861946159964475968147286217483070366578970589888208698064744476430094779597887538665270124582425164533764322238970130530118131005108444079585876888295659085230166193843609432669190160590629947081964928796352079992635673203035827243258905260320170881943725039451721172498483301527946934893468108365273636045811839864678662676494057912943564570549355003830528046151598244405737739620498620281602369039163614774677526745580880641148466298487671219953463277760097556023256910602808143302410801313470703984406635967797280690133217362926292083227613853648522663188944383372735332533796641493585224506162480778112953216045755992505635704826534193037115515732931677645576924794394663992604968453951265258039524003497569954227551857408939999323221392018811782636730218538810852319965370405148598635031566815425021811536695852032270403140889277043681863675323101552753443441830314771591308137750528812941224644573275866576783822994183233947735808133101411778716375749586579163700842601198789671872231019017698599029163767584481796706611606367982502570609015295656794534418763159900385225964613787058296488137482120791166583747926728423426826156380989463497479936699823127587718249182004018654079858791374422531138819408453165668383276862364057561663964625517204910689405473969087676596873834497324263915599291297561420813233373459754921304115610363245702928167310192518914312293005496277661307440762256202709583295659992694403976328936321786107463529494592114969345730318390648375397058282093833300544187694227296139255054110740962385976947133985331522243293307056531265893055197705729882359543768248512038529900953232995534607874309007651685804849335631234030993799512779977889403368766856009964138972276006255486031703568521686743115891802922770970701686362875070881520833468562469120542175696707211862249468411071540043274204002629555095877907045216493520418739228806992970474901689315746930388590655779657538536422192225196817100390506813438287423260084517141801755133396120333897020122371181112573918414190230604083865963031908336762135900289352433764178764958634556602624417196508404408567041870481217358662535108112816082226948262961077674176208232849240874633281534904189502157205870078507348795108115648494006342022133741751531524463989339485980635425210263971346920125652555532308361069965583667072526815981544790385399101369656505458862713735968838841908067449762664282115536889699022223361413101045676634687579783528738577512239452483019328136827134305774976285133179978142220581831705348471679118038264902869761203468980937854842774751256012418824505124311967129416858368928349613528641527832248614661551376658186668948185302875749499652851128600908562738790930763481768269303437467162140403399432314008634571567828243303396094168852440073028422637859044229903020825518911676008739865199168645507379490992359063424154561433799501956796149026655166076063413614353720161105731756954178218218393791888746280570529468584687732790797218727949552700713214446428878036436771818610406188385222295417479103186894636670380519785802555020325135540486794872572704156439564840364217857577276769231424002924113535513210852199257145408759566740084305836091289842158681697976462118264337870553152910094886962172374292757159722764607589193780459495206090325191007596970987821390167246906801212027093038547214340235704964850020876481411667254076854438424612914138832876656443152526414512162128789989436729922079768625279355536886111551847048623327652377502967188683851143321838285365391182882061374618980962685252247199550840208260311121173357938368464722363859980418661053805518658012215610341715731086890743173799985888847183968782585253634194371146106905750416144685030315859900160132529727197321822722243454147316723115857575667406960554817928731239559918371866155562208580649844808400817193737661499678433969175461002794103425298100234676600634398454677628256326047685054118924659651980541240024636264418020126312342379655891008276081292985473507823319577490547462182476819278194321469577997306922664715742812476036185715343745881770032603668887957037013890324059267535682850322819049113173268341433932213208658111651610013800136933648256730786424016495304668957460411322129125052655711652627402578026438194929491561624824163269442591187719777969460871866534282199230686166777782406180175745258813049533301493309477772192650573402897983751977871735127565735547614853169288056403017461688368056808232444248426890974452617551251004506410674611575226578736984781805357289219820115019122810559148295439838605412850981215751379118859812430842462728166395907613995683062278746988421474082337840387965729238765287232309652101183339247638239281994194687182044943454251731035964946806042182271152402159353097876227477113211393158082671440635957983199628742931812899389758287223873291207550896910547069494758728875296360666838333084579960426787366332631024507347421275617782557219082313358970574428547971281921653208471675554590842277575433063279975455740831380746464160979629223663689843765367254760207622569752497666839963106610964086995205512861887544879911496175135148265309247597181727173275228524852774179684535350739353871289703178368892817793897127232353377122041058971457290186759103612532909891332537801496979207068927780413904353468882750098878174867257893329650527225054468673235417380324095785718706242161195199029788459333908594086572108171921631728111058594329919341895072769680637150857986080422961582306813357692496631604746634093833476989009068393752072619951461436403115540307187216711988087412796830364334648725602262401884430249921682543749121080961001441427864445912275799155640810696037545010902712579506483641266813245275296660864811828969282778247296033128101134742096690117017114130776069288186933105122439033220211583548921367119224890855864502454073784775817525722704281678819594769533178515850104112000459666074024225174819843692961270681189829816122542313454759442181939043076860541485628164719300209667825775331195501002776071244361049851026054153030598304409456361055233499591309277473678508879991155880035698778549608655184945536150947520363178253729806858470953388588098579258676617703503322440270014613821519867639930664794690362910152708251036848532798114390836655210937285318591220440326413119093457378125440383685647514001827039504501145487267805912714974246026902292151359892157533302179164118371789760564141640567942536530773341654945654650038999721187093672538471107441646696189497277529989532315485998608723082341444024192724167085447402707346187480911040191838528567818685075142109865327479803871177510302460691527366441527720728550622993144894503944005724839046234065384229037299438454200051067954672092654829494364588408757616597856150023172680278080827906285791198234737449790443746377312463787615608101459448198163164439845861890263014163522983391970436480215784699922404910337586142065793590060778820167813179243835382298381056092421401384483270339651515266793757908283516194583150298766040384857814367889681644632941054497802682613123293298533171364351507164891178362069354325362192307550322928345356318670973084484890146492844414205453635083417930991630645392950769143417522103266800169566129508242773040063734993012853453171728818447386886682235086394953619833949322115032739289540234439439331034935778711218210912171418318617760857426221022939878955178887060052374238330657427603494602406404458988889505404541795898182696371543477614811034252354855744634721862507039058435708591293944018855350982727267546747120670815347645459908605257811492960360620185752661128854545785107175494847701307747648896087102031375994368155786353229333500041855559431876980432990150544578141889258495844547855573462777371149930509269842633950624684348734703483109647190848218212987769838120281507398452656376265788683518409272901149231123927365119029764300020180360872011625082780517703272671811369104591550382720208213669315516996480255284311409699423291435226878497645025957152791546612615563153166667539233164547148645396872005962272069029806901258027358856721609559530352577626954750422613332918080761771361491490305631837134329557253790177298399771959624684924234554814229836147729186573665600098937212467056130715852997257408511392587265927939911605191341768934670460168444035006063887130477560072353956909307882587112287166849824549071092182458668259276064718785718877982240780198481747105664800301482674224880244988184396660618931055721630301247169552001893627896781948031341615617051509838478505494417482632693635281780270432012107419455925427425813540001462239009320378703657469638361554100742245186134849593151384192538568494646668929679114066170223056975724433810949448743481765266096883607871577142621168967266616135086859646815862120107847245332212613654295059022146734690900669287502909528738129322096131390229782129680583078200496148814194316492145476006984838645772273781047906896676224375607601206424402379971372113028514058385765740732680077039328587091245209294063876651042656310248590991256511027455398225107939427379194871572150480889028965224640253216846764803245143802245704580602839106956394277685987384754192777623666780638567113828940515311771972099941557138126169539544815571556124321953214469230531665396635530696594333342138959588480714849889528085387929917676852039349948550319844547775019476177951655184409989596779105791689124507833881286878204590521669732929048211111239214702217236675700308427473496541053787874550064453935635914193860433215356346012737009997242536774037503632241745210463560560525392368910959144574048661334886069080268024125999398871174857150905439910703267255193229425088688327484704227079458889427105189526545869035121570535341755812019489927501920720866169792475440051603036307450538587730731622432809082733380682244015771081218075473128708741081822903622635675396251186216234192121811929384442273843141579524592534154917357869483651798657440362342430241682657941285401627037419538467223348844540415498990680791630038417383814366134662570960689637608319877378831206583812598992782305043209736361383857602833202699495903864871363003508318315491588304183632147713648112494480609434854747615227520031684596699252499398075472144779257957127509568112212135186783504558777501622158694278679349796285490015060243195822438521781582977122940237486679431049843963228376901987362804377852614269307120385328528965574609656672545171244554018341286321000587344254571594953308463193204254725032412070780057078584414522242425696452106766966467827946229284630943301377005444632920525004662041002755710644946423032227722814705154991026158315190729554645664711894990839492113249564880846051159848225462485069836982208552567319733586026070198534726503162953681825804342238489716697932999987718555277542484794494341417807291300808315202600299286532422303074145777141133582124000330273083052232443228459771348630146984541754044064549365651572560437307005139421220120640744159298165423553990903296121054428136620559484140313393332261815581228812881797797744929868514522847495968649657446973180726143317861401950569759658185732826524767481182581138693390417664432323715510000983725781865661065385501404177476996871907743875324275422135564210881939852551435544468593100025442591596530844750384587090789110532040245549030517350122391303905823463436328578046030946893520317628835307850563538782157998073348049151194227993936334376829802549979112436709003282911410506459922416395018151040598841794678046885667393626117467680607895426882706935666285848733720032217096079755915144082141238417176438178319557217727186559307093392772185528780056195454568823556400331077304478787314274308451617004176406632633590036625605344259799760867412455403382993635755622331155802939295569295290069469142168113355018800626827572720667527722680409328354612027069479408816994138855240883219555591302953966073184558508595098645060279695738423886734023638490145790785959858202294841462887671229161974827756399140894037097063259882109917053116340615541109588814920581300750667380319288484222997095830622633191259541785274166814365238062861181891779292490047992823979344452600430655979161816835019458959207863709668123325611863357937595418865499726875206775345998893607581468368854192181102596446338622603579275327415467875237129045080354260554714400639372994668171037731401088215624963040136533092591436151114319970175988633192693074657497995277065181830820525818087768262338121441709920612613818405100026608344286769281923344871690639174778298000768920569470521719329627362689261151049690475801865735064684227679043603714251721935102461705265138879889793920498940590852754615846281447894447204011112165970424656429850007450779398066463609058575489818572027295605611517876283556333913629089620722761877850629083179912289146386560168055713755056875397709871563192970962363978077330279419772014680221811858579355989694026260318532446736211747050379571240895075976763330339642632092055068880684080249091321235842785517172316662418425229764503376667987567482283825638748117917824833798535360081655888369746680964743584654056847137040426723363950280720345440369237761572036784701258504372275621051415376883306013742580675010610073296172222357006311775541632128914743398523106507781707097096899962724072655547289917184088516325863565763320479602474096252155439772065205700504330812599775020827270842329924300283178501412234768428573631762155682694677567242578278302317226275933034153665611992495722492832633388544970270522030988425524026622013698915744286021992555459121151520107734503751159140293697835654591138956375799902379625786545506239297889074452815689421372138314024410174726656997507657186189615810349194694470814874016944893978548946632695946466664756276103830193986003942233505071155267237254940244196081604227750721011840710555142658918275637519560435965483153449578778924182774427120003149565957924573710251858374294682056521636539453051103583398919435887690459681354264673901289919339419381531023562798165794956976294553978470617891498691095445185587624580479512449097263912927018667059765607168027708089957062803425781260606823031856740815746646774336064580258256314113050443141922482231113593204864072823789604170719484308805299829285498901093132649412681018115837757312609308782047917577949290017964931986279869248033661284432732012301265963582362916178500468481043902328556437127546740013902313632733786142238979974834855130125341443741583613332479482344719695573210547818114035346038749871825737451490204301444021713599133739929871731880445771490077567579279598347746817635492764642661847142561422969454275767934325835982507877984435552446103784159082960490437878635426178506442739510734841651336199049532356939924248239764722758750935388137270602408047152170827371195122658451503471202089318664681314126633221663520157899457013136556334661008790770241239119752015196142550717920623601921691129105458337834856915249146521059244594772004657843399217444221320553248172774019039485640483568774409873496257993242645550709191666148403411116122790939543263067259679368004283941683980939167750572006135480627376192600152722302468539611518016297045911812833499385157422403256997997148677936916676443171666998159023924474807221456604346004608879583062660193814469247070301738420224243159652922131984634181024072036428654835856762178004155633469784840698524303463358004493377726527526746965506044209169992346265581205145327353231925369135286747975778817519987091125740744113794039076750391917371662479517423793976016869463109121133095130941770500957085199885076171192206472804347463962026168956387808608730197309844755936766665775054951133510739254357159795461825220567807602169153035865231175067860136202581710428568579353996569428029710881788695742475595212585423753932664488832547501264337830040547479740301157695269722817940310464206152005746676031469379313783554807016180964288961835769193333632327926374448909448723253165979076825825999080974116646778111761274903180006192520411232612156686522538631579441013215108042907975083448384756515633634731865132752251654828150207327258713621978107128286383884454373865978050913393289512008963745211290338174422054463704286982373670543440447137559009373421328555044837802183077275800705423207982620533695774539692046093025040546752034089370204703870180975458718974835824424743034312566810727886414269383942655637473671746009202721989392134771409487582168100015801788284756802488769397718980425566634633233342337846536444512429318591226571458358425559645930569213253217150013030247535582463856871011569724895072274802405295904803277873154096007030925241101675608982111978524002281131490969701970518827491103388162669109158297733809283629767566691566120065365900043255389402554976986668762005377761912567479369995551588312774908690757234283449490676549879917685112451964305003521597881778303883617556531006515730212360493210493019546980040771619377633968335471538950093842970685047491998614012961332326070054903731205353344604744886362073943377837631178665987389035822014869467583758542203758439744905644140984502625672914473716007490622403540783513057896851555942693450985064976133461366142071845006642710290179422474824530124657274043696942775387250835546534450415553874560089723160309799791067125625798192241915081096173800402924650302862074359846902040533869684188605814507190273268219050069405471778073724256454719465365656607389236951190405149316889254265962125484273226498616757126383276378837277212227699209305409428246257343990752948759846605133464129046941253632308885270296606582833276614871612715998375222534567910103925287099637371090625187647912755100787699833543128531652592765173812071576413529323594095406970391807461869531641972184876840983344593256698828873490866528054630012374563055550896210198608043952369631142525792549444987926944968103712289316646621248832996173034433683919263186948693309475795653799111731215360584518300294059445771623478400850882347289028134046680673865803579038678509062357663842933120820964490031629190730048595508329680695510529004230399766104850763988285786742288030254554785017626451146333302684435005702932925414107231065576093558987839348594954475276620064502579299017863683932252672968737196620789627293878736025310401183054987083284038475086524416137680857931509824608913477025948502228262562543772208528788548875380813977855892431368115444045124153573504827675373784861482741557953306859181031621768201744147103991187689046894893301911203520144279620377948209222357074890709770868903617887477566106136240303474399742999108490716906684998803763888547936326188321346301627206683392327263579900779577424552660863815264802308497290238588215500710841110791986063242892051381356415310513179748842808966305444502556930627329484119360407128002686522444455450263261251972460390867525755782517235798318110100394962209922187905970138637258473606224422969737442103196271409070298481579418565260088566939401498867032602536516068206673808691002345179849227070050596592474801603249781485362997671612877103992693855361681104902991736148798974748807319582614739197152827164515549300487063550933094498053808485807935788886512409907423931855830475736998874291669292146009716058238564107789283261216482945975933909508270099133382175411025348318997347441722453517480653559722469975043185699928017581611435701865195218350627347417386846275042911172179916853291124408091218899834260449345100504876062087969248682197017234878822944031002326769659293239706315227340217921781520172471458539234734202200391844189299749160708835228670191170916686729824614438908554129901354219257016700091470107548752169351660482425829904107281404745417136072928702983077073733455172248375266230637461257460147782668819080792113716020405845052163343254950549134354847893656131786544645853592974136457175367177326800756681962465361003897029392970477393137423707527599749069193175551722704213741538241683034523475101015500462950085182709091303149711362058915594105780455971033059030741943345811952090136321586440881736419740513817730039533695009512657479428290024662780871452195545692131435904775418387548313120802005483041725424009303895967431836875726223846533043240258708660767729345687551125228282065245933120731178578446512779350382910161757803243272864475861606184889176870456109622662333522506932696654663755546045954578791238920078466561735137975392020281766046639201010072816529871916353148276464345021557518122819714122543160030750296223561171535231027185335717683615589051760703360099282813282753466340395444166858760325929726822913807334038574323616919349753267541412093694301883281370507714613530234984498151777202971100470098416582366170682424298940443983478012472353783325068351765501025531894291784473996575154844459129959206616391422856373948477533068627548047504195704019260485762110190422106936893697654003765076253602380377634034621969814066110576991189960172833315255895860367995311932742749309048274845914936829017334180710469997922452729411180957356954721408765491484912922166610421916950425630466544665573642582572302166736957713234143284574149500059308319247622436273328637356174172139417457661971270431347039806362375435513197171570348458215598257745227845952634821879748605940777061563570001364723666492614649087741425078981087790377639685090954517446917098358723449815425232048498357827980328387124958976085082217981624662150094130538670086853773650505769635630325227351932695513027967211553998938105325551029551936223595281649595054905623682320118952592971439995713232734924501689216799545314675193782487220171829347511995233832782970487475102838069542981037399320215782713486974355097095181446009831804781210927560577483684936408795561719507421117861316739844116767195067118237774417922725454902415749992162970990252379598300482128682178706691071897984269595145963396094575216927776359586084612110654203272579773033656642021748741319847695816884278906371116593657026456305655840979535539241073242264229524589439744265632060587222978506131676521047723184324853175660834838967856250033919720604575840559828107377572148302096845844019910266975830562849172176368922919859621539099421373836848153677510856015728218858688225371179941126469616175948084630768951805255888340213526407256996529580711220607951672069843503630493403989737021963628309111178704473043962415687076344240560660439966170574826452196507964318700831000143885270708673499717036889432881350618968898533498384023622341306869650396274303969027803104493669711111194808803242996776398900813060235149824329191846497852596980201005049317579856927795103996563742665468224641138842698822225394940017959187367141113993327979119711536545965324492653932955891981994484042957001322928919660984938863450200024046752251775347087645264301863171443748292804579990144093763974133387660903846847685655177344915259326253428917389348830177727038735635791206320497695337950164240248218237931373134082666264927049452020776335106521795174957211003314723617494956845832004460762729652921758941136920462183109868573721207392247664155621929352743834033411314703123935927052583610642832002457018852913231289527954926913629089121717746342561393048836184542555865772215340155474488979790357586357480499480534204478374399966533352469061294619947621195681578716318662941497364660663676719455307650076437564995988396503276220319681034337304495988985748581674500642037411834981843697767991822645055714743743487244443661507993110627294084806830897130780640827376019507142821458673507983312455131850124911972204687240121400314230198181546630609452400737662521347029710515100431990436399307713751273043298874554531677105360437701890744768261642753833188677398762108197822589949764366851777553669514089656813604177946320972218705073790876319063575868347732315168700383390391948897514420575040573490806747435570915010108570446326682387632667630979403228331838591516979882441786834820488204088056040350624565558912425343934146488853403549297562734848089123665580921420710307421006350239310665768784728958732011919498174233037272380877155843711949972333206592954075883630681771151632935729278410313649356750894328397194938802813298740062389807891225121091772558835010228501855080421374474298425437822805005127731360330108685059816130132059632211697789259912707435970651955313107146264391345835963281728622209020007852978620001114549989068364634834000279681222075710584243434395888167291038647877332062978211661761829445060733656724848293595819186642204008999772537831922441328720696659487049522984576758322183798139221320297732001179105896834632473980747620761374766233237605025385599794702540014550274516492283680291450797473506355772589753193965985576828752892569998875417599831036830143950492284836074788466772135804893425604443421861525674687844863815265303620834511508111756399254297639608363845307822104150461284863613465290971542323228000166493222817369036544809205218821936939141067368071324097292005524888274734159914563690646280874933489477968946871562390430378436626169304314103933439230873235538804392722003750201316548261737202476996574903411144858968374005638269111122355309240172581689488948587642790938372060595753639823496898660457221736330310146365087323911612107442816333387871140861699768611618179424544990853740947281493768860077550368275152684889234697923368485389336969309139679236087524863281502352699933820955588533332206843082857596372446661495397800586014803201468878016995268109508193747175950546840913768345289910357456392936285158479890585362434616938466386198423035050131463730397048805808139701538134230547632831536301020959527213361728835652130072882789861803091228382794486822865098099236898076478771038308821946726357009806848732501389217502778221043568293893756914751302070472174282940112853268007128868963030111425614914882743858954443570421659545232679599876093946298356251150774128112596264473609980303482207517526546304959358747419003926639517046589532252291472074960764157107346964624986957839618320201912830430608852631595125561875499320023809100173274670620498141056830659646011426390917974184507546558375098169915662206105250597643038224833963643642404727558043875028628127905504346584752708625612816271886793764984383353239551216111256039260629087705009326743296446667087334264649050701613104583728576095789339240028771177313618888859167345953863203129009023579683841598905747045542954749036810940523497905254921644815373570751822164703584533436804330496902042306475692373099343781667017150904082036031129580655296922873246224619023681856002004956006263951174012054745420739858802996117744599115082863897931448766342311182938847658421196799148985889269993524144044209224429381336867579911240602442304622849520107369682340962955801778042145054231635928002397852925181646214293779507256206679192115504642019458436062578226852461910726223471544154101090583292013793775830001259034450786995031293951591030902428654050206692537053302924998424184630884065908789867551003926148274846491363569757444595115634603528951351055385665222446649319800372040835453540077154851728048823291394947079940311092782359850415193421547085368774488870216169744950586152229220803022528787686882746174555169900376270495741027126194873938763438125405288693097507453100987756504159033672487680955951646019149189819416308197499719670018681079070086811537628941049339839849047846716203271950509616783863673615706365234257906945161371117896758433982419964286334286839442845683823567790633548847983573796726108655544460212884514193966272522906505513626577295167225410845654282747456359788871410880458973871908892591065672474415478073360745506225910484717633950339273397472860022440465071760203967859436159073343057943233851764492436008178143130176923563976994316215455423434125419249771795776428060298744574166656086040225129830983268152786652427205536911739130842672989025511477386403145825999236975339112493943383641941295145800002813898201522845760488062376726316937886616085824349036273823395427613689647700240966000943164106249817632099246700808977034698892130437274775170847298146679197250674985518427480202682438721912887550800855180386592340270159008587846429322542780078923087728701619185674274267936290842228764216764548180991125164721373438142818249346023968428381574759006939490781353699374110229529725693148483003675582448929433693540047998428777345399219236518229917122422178145058979027837675794441773041302029933327984126826641255626814461416265248183402654005727776278905173924613980093840759255867408531654833999315969609257598383320234861447385017656121070936884394323311863312616829226385075068706123357378644282437112597732871576036305197755211489196334597873898781975728269419900368906563356334648645945690091664745424604544806569425470149235662423457929707280042497143813517794136042167185528093620005489672642784241896581371437954077300349901458883120192001355066372984343480960259217470622703066244727661822814884677159281585873344465795727001516999325411066788998813307905397333928241469740941836484197182372757683872461983508134367116826753666880021324101498138331589500422880052473847269194119000649960803777198915474530247914963592489208840298113643121852300512397776544092013310020578582305883752234805569350966587550953724936988177013404538499018042687623488274522781943193892796316823257348730313022461098673629184987719220786333314397816029727923347460652649236883215814549761494132769465660805536692731763965551032953195163623476214258860424622042853028610047340950993925449322093875999620594981631608893992804005301861445049484409522285520633214082047914933629349279111038360798191835481181683713748194301577031659448511128031581505205995719205174657984014088124012161644474225146281054273352569594371808302570058582762184490926603485264217706754725744043058709934691000928901417012385733003249484916662043296806150746807099471876877482462469036734649101423197941070392581997569105179284855216831003000920913398096540371491361172405755958204269110338065058084116825496189785604579420906586107657538992448379505463389687005391247213304338110679565770054042394376949426148932392057398211153676147545508716826934583001517779013614590910565477141438297447215543865227257405750275467313488044407977400138543742153709451542561934995067707899928534806313322524052909790416824071216610511061636003237780054480547297126772345133014990177136528578066104500730847921508524987654836323484599862097799147172853410146314035558837791665901999197273335242857819054711175050830206371045457809518776623732397713042558571188806354223302390533206151199764394677141340400117296360288710591203743310653310331758910872271809454409628815915624821896228082944136869889118860337168254055644929539621053005037466953451382003776639397233790844932241160433186944035039575059787647971399795059624041816797540276022287784482000203721095068753019961456744826694478270514275572977035172766940094651505810285134411590574589946313810698572783432588891869085067315874320364052007721665449339803224677621804407658548700671416958839819777548531124487975151244676525538482262012288097716457620904983260734141860091756247195724072348268357389845611077546531753300223736491533631337353758767465655664695143605943234071455507159113659489315508153907575334452442092175947845993317615133520527692055451270586893477435396793093865311944771240103222654254748765490922853695192234425255295325741610106671624541146898398403326854813615188011824834755120516485900343222084198958867988174835326143809927222731528787775034226870577033871305352377350443108401292811235199078533614895756935927388964213491901668219025011417154415451522146575454345633498376881782053198431211788927101124334883359897083824690910299330786945767822153249393916047165587838923383440565574100762893966170817442884584580401307585467653194509527486153199501975797236352637137264379114841096303178465552462067720291694404609341514811388303170973046419373282341092426305997299180567170727053315003115784785031953349492138034535668974129738670986828913064946378945080516694053699270514714990792505808212771341017600524212117847049041184823837322134199069597984805199406466379122864293457856434543006575348269943834088590854932126001403268251623226553113952417669672595255955191818345972080021174907421721634086430392359253372138609364758998929713946897557124477286521653638961658732608320129039301638127403234938579323193130558469199274042421085709549085935105492655495629602804062117876113098302136821657257790442273334496002047504008908679887701720244646720956374754442851443441528164257469973411979328457125688661044559107455633814266825842001258562058532270452071638950160685513423391413932383788368851218816125569803520405395893992900231872906580788502854212275989702204268862466185421174043775536624842647625995771318634946617375372580149943491126842310927160511544509283195948772594564836004580672921636516575042008280034023520235125712065024079653305969891747295656544962691229651520076195559149225872373307881292195704492070700624085722354405288213631600533519142105190235863575130567898118140024254715386084686249709920805009469210150466830186087973043345228882794585866262875495796210531887230082565909731010984312610766954869069307367598581450778114413809994748991808484430374211059876588296190917788501048033549296724451834990042503285288754946412423404870075350312971865810684014411816703915979496815994468247267493478898441032718464691543119525707477818729466425482263083523165823844000560447437835564782515295037942216851680855074994313997264782053673817597753153803419685143938649596845583131844543894588054419380117624706428202516836995805825916696902788835435324469302359528150110706966824906538592242491691021280867354736539869612643665305524854615869503734979272150758480689726833231551500280455217886895178944174600218886886433605188877364891231431660311720326532895862793528279473093510379419271626162481833148687493975754079985897046941314984244836018759952900150081426873755166289732620319717905873227551352914489526287025310662961633094236436474571682378292087885777382376128425946245732780626523867745261736225062065994540414247738227080019804344446026899771547652577907621374444450200924390761146221505895381016325906027165245383718868204031673019538652179354326827155212371890683395933308907862105891887836189645174213035394416940693355944010655278756146484394071301095989509196621063354394142379177780297073598065111174068638403399329556274671309954825521747654335681762229528758738441325836955060335502161068094893612832837855114956508199377305198704978673310875798307434935384234133072150582990522175353909529904843490666642959778400152336617144706688142102397001879401389915168772567299041903746062576817417023997333633261108857071303771780217282773342001758489281316456566413907528299682799584170194180408191103599640463523856988724618569176376062505764783631614008549912409803640749306615591513186789664256291303330741303907468644757941769054028910068754783369205635856933954980360843845252162444442161476783628854588278901944502331141655626252849457920945822458097595621688621599462031419099625739099224339973449088649095457955675200147042174612487839087336163962602945942837244695681161559717240006232908813651626858486362904803557040442509857507931909214223479282963218578108367205316889873553640145202672314274810268442238609871217273520172614223968205653017419568087274934653711623859353453459701204473829527454902111768305769605037258844075937731790485134960062362267762629437519246060424943156592574188239466762981355502569767905105803009381868394154309357616887064310106720680979920215387269384655488983125217074572578559788945327980732145314257879263202367291385417419690431379728208634869989619679940375169476808155938148871888251250873979012359950726084708226178863653085950975231161308319168811594288763430197691218708177647247623284435764950945673508900940967540189644580134253800662454467547919632998225135299678573193681937903313402466236421284998704117333036207231796776290766733756578394270489824417416575943559672041727316097399782441741046173133770906614656907463475152209875010113974196389822102740337944472089103342389436386172949617201808319126917628902635813340892351672421843013505958249192420604316039221653496522109190245454395934869441054354918042065085797256589941753153413382936631932078097286068194761399763555635442009230719984869483255175721190302576853054394156245754973947830962726038478412548801938234106090167930406638015976635725243014310931762139219156369215209949875607305814501394014589787460606420354500689193394680232560824309949658144353971551187280909073344935044467581447899333760250923459220539913829403867811152073910654025325307909517019506520045136912467942845851033501419954644159785476441397855897201528163658659522108549717383038158724698254517222349174649702682979618149736404740693305465849233549008798317492520731758089047722380989832635204318125646335898311736766149090073160247011793801009806319961507382172902389046916348728210280590230875832418579599111177169826136614329043365895268614117136690355275530936061046332441878085865811769741664366520114958492590975925103148098125525464831191747330793647808310192887172857277317472768387226319849073207705675486765961691755529356492728212544035152736422993848891527329661316582502556389346736112387244030470522799161459058049205805265675451163029137973890629851349644877734055265780997327247718188332227285980844213275588425789811907821139106858004479804706005013741927776778828206385965576412315927218178212828333096897803936238083212817471470089315302042742201436299187102099247420114625599206615788884074790642364999447695445864610063144827191166214045081675332417373112070374102325438842165730776723215030503174624408630646015012645791391158972759213610247425058092901526209068208065092747162703943818852294437623960560241674409476740674950655489304146384798386251961388973526364004987652063798318809588510434022572987115622477999344767318206254714455612142887599893454491560859872658638450734132503043595776868772736216934439268970040359444707122293169961374145154915502701672428175356020865829698260770220184116817037524596009183842449796071092084646121965036936050354285104488985910594062665904896479032548305968234554264054996524575903708404438287423868098564919012413320228282397811926419449020467310852883731122798906774136709977474964653375510882870636410058898088696079597528110478465479607720030641517911166963842997694055080669221781488313881109436284140542608625564787054185038755352034036643976652459109217118240483647063164059708164088974701866345591573996248680350028550187687147452513508621621769477624865814647553576987524658146857796954846034734339210390760092179176980884630788229979196623453666788377351227803052739273253145432273389369305803878687194913532842250060087984298730142290365363539356321898282453531064761959637375636766962654794310224917138126465686320392109416028668675010006968992268313361447618604855603285401199801689794131168005612628197750478705347051571647735597871277785952330662188131975201427711885813031187282142775324544325448975146172885902164182035852306050104623584911008961488751404368447166196063535568472381611116448294605513900019418312442254711008391859391352788191245234085234336716696164219955229036203386190822143574416223775427809753687332356776414551421263897223523013679200406987735373539936711135455100398721794933893989307505284252659090511573487699459825846845683970194128051283923764976740288589906142472333966698141716461235566194738210146054326869246816691402536176843470082076797113543599091948191212500302819253767595342186528413608501763864794497966574416694718656898859165277635610790973008449544996273352610498647624624524533239632454489911498502843689474872706035000824100529349428240345498147197019013912145815489723491937090679128291661856265013490526252545184339235578388396485774497820293286149870723297190407037556412776110660158802789292033522153712816247392543157953864406730610177119498109920874507741024910233237856455724451550806108054439451202145969694016649265964695471509834247937620980865934430571125195327287597867214471440248124354904832219958854628344107375946257489715541428477569279711239889249686674810438813969633398124637463102796900227680291559430383820842283150036871088527192242081400249847641396584561937308036152001913977036973915392613642287870110010718434909791714183140790149115843750102940927468305840911754708783620405717119692776113464638751878986856492033441759808567924462129969275372179099822713040733566230528498754154114786933494561042144958034600069204028483915973790365988971647838455423353569789834847948370108737345831637632806653232606615587830044153835818183731985983008110807104538505660690957118429872045613823490490018188870681738774040439427533078622036217878089481555767698282041056942564291607388015828926488571550832059677890301139576307391801604684620027520671621554464245460226237035865821805960845531156196006690943819418035579721386101678609726226541284125365338198298822343421168779747107139799617354072611288379128789508223737222690355005491122807419303773042570236088422705470361067083740402796629574950094839370684627555437822386200838884417763609422553594068605252757146345391803607038151411710128252584177665153456175543769123391128681401930604185070742759595610761578043037501933031451707814032858635773279359298977023557955744292563059173119303712955935119798077394300721641953131403148876418955125183022877670544826812945225755804403796321216531015922065795850242379187990243206890204008877182421671784965155261404473388352458620117893462368484053945572919563772596234314252334748352911496617753523925731661810641755948894154405638632934925782125789928537234202768565404399482270533936441831783823968758441067589984965397223173987312115266351623954617702627075131270468625012428795388041690301790555584978426583001654998605746010453282571430629771541943186307409035886571988933261601108721197192879833049987958901370780351696774129367056449194645610833673059050817162344892326620823217438637366110144407134561738510682047513281033757386582046513323753366082415207916960509211078900821051423940246893282838956691375824447835684511716747646659844804919813603725229455609207937123957191384530437938325681867690191325821995512247726375421049083734054538943829675060698039308627424484482588951686692834262991636281163428032290930196290774801922944937948974501794288147184674816006113379006330882833091589428675927567794914585059950688110129189328163829538716538625536781089777213339140314680746489688615190113803151841859182451912566765644691956636983248988158244552392912880907174925239497889830658911351887482174403711079932548402083699962356291347046712057588987938872494919468379839235445020198120658018428896154555511677843920943446688855017199196209997180815716151386813389867108741597712063188222069485301904512333174585180809565977804628368627244977744566170918507128495466580451715342961404346569602830941366841892687673844698700765209058988982478193020960992669125816438734348058453839975246580875667113056984442007337117404264030465391381931165546783272774685075761146332254714170304398981840715308334102597571199366937795118848251783417160910245945071874160630450153253280721502989897753148229286697602887913794706378299001160080999220074721316718193059418925823210776131051208669857414722643712519571597267722398758524821649940698163797292361749805372546470897502116344612152282856224569634991432833281700626773821477722187290352075604618830166143281274537402459954133527688027600622420610116604558932264208099795968306977173979438333799751049649604899615106275906205449212016399300257254499463189243518277036492739302160806645144858544367594027721788479253219593145356008905102078571108571822040386956928554254291489464965502730168997883029807366266660139729543168129552603182863329499990324985509150241628327025320998545823875691623365770490962775304230713235382938478268630020679505001296184702543430438935539251316994121175632479000045889941098312252767662621449218722698905212649895403332302238366948616969569981762316589659815994988956871810492020805953983094433184339989184018645612009000330316917805408886629737205472571628894923517020824524971093700776227073754274239519959091612409170869332265782425556941888360734727905921687269984233560120065374246214963287588983315418604417572744783007063531448283837647225972637301997689904933778023614292080563775620678739709704875898057022865101327479667737427857784626817758300638658603594542782353549690324051016454668392443735602107216282443615913836839634026644582044914487972980079583427055181800344592638933307243922985130479810387063931374480831240367830350921697152775758069081904717128542922409456742786191155793759472782175176268397966261381409130002917502617030962006539622670380285726895552623173019357300880021908192951076559082913326750138250170023701791934731246563855134809637068836390709987716283982316855213473337963508915277838215849415246618514051466620110647034872893232050279953389939366396889645389440270591827757861730734836388878187137082760236346511135959970259448380048895922778743698054840297084146863870996826772846920229014785338289547061908687137426690273802042401886737138794929161173260300745826825378115321657136809000425618702882013237707180189126610819658299991780694235269904711430426531967379374893443407954022710587954433877990828637907696438070742892896060776843203668938588171184708379372516781992906705903249016685976194561139177227103189403753861415397371184984502438517485841951771422017930057653825658115670908335618764330549862465227994279401538096430454426573378678273126961365681895299949310725517870450490999444577674758242234057368741201471055898247805065123186642287082577886929699058654873434739531147925541879337640243257821295334741872251117173913548924993018722583819315825191129500721588241570101838112232220343940656662071215557832446172100713040939163779437380849362455967395761833371083654058719612091874385386468256775563460289587369744814812068694819271764005805048732452496449548876283024292830655496435371423521404648802849623647924479185143098445597709366041193872237143032061084141807943906918531063284881879520900493727942496268717091407229865778553157997307206944150652917122197314289379540619197395172715362991998822430332533408895904670978063199976819483173444659051699948396205835914414341835147678481517635494791889270298750522454483850136433950041969430588112093445970754507983736239497495161717175683395099756287231848987446032936663381129295555920625548235737065663703775333901055046218433695416817929697502963106060685621622947277055019236396936521940116982567060629840495481457325733914261923240007309115351099349536631105692354620701798091862455980787537187099437616659125807652896719243387236725123705028273350748156012830861155868319443609497255688293045237906448936380061962301281683547274768210366995860211960755870200680526432236225452727943378259181784384345852614887538705062064575752389222931707815118176171734652097603943892308183118103429920402851749518005004759119705449931464305249696663482961646349364233784417100191978625387962437753338522581915372985267351142851511354428472103843627942596426407510263567732710474345673647597878980024061829402228334872632934359817119527859089018627169687669022185243944671674960536653584087096727211958929557868329671545192999413598131051165601334558505567372340592546916844139689707861181201751739439545942794123783468017884936383582923255712731203036735883840385413876380078384987211551868006583259699875924749814321132324230215191868484224065803557794114122239284350875188666168841436030126232618369627379099133796833418336405887962918168447006381963056541111925393918337146788240180679636010890293391562124958278437521224897752457214676568214101956311857455813321899123938227917132577474376104725780182060257330015158435413170075406145096628618234379332440217451617093794928802363938706338829724165526649417365673340533387788599685757491327111788182113506525000671576796169156550117632085673389459458461762239031776319565714575757973323268053671594840834461005706883516098682507202626649582550805196776093410108411507566984590050830391705904054354863191369144778494381831361747929896580599193760904179246842179780071392541055662712361458089155231431789491965295433770558205243538225501711070277961261103699353591574927997013806929030491533805267121338132848962221307129398679448359939368328885303276157876663357699219494503399726657074777290830224144975148369246009109414829635628991852673511168683893335100980799711857732237275216507787465557774943133986735694556891624632304208872777544888381588555179144335886333339007130379841885002714935089383702426997026307454190325585256160350543196579903144943113166253299233511247367115857981483427126263944265993353103085897190310734778942895242409845737463382127380443044563967598426758557486701538329319896673383297257557731046923285297342252287564890782699924412951162162751039261019438481196342262521598880619943972236131008041969908917616476399841856088712486505255479272416167052531059114229376683277354683835138344863307070754959238689022302632254454395720033078595202943241758722454950353572248811284352270522729490294246963730010332686626369361026559797166399108575066489464415807033670951738466443590173512737544902245351875062300996799747232008120481483266503133074701365553328379925558874536753401087621286103339617922599718357783331033039435383268084497287344627039340431526732181260549820648721445240606514783334587049020518871444685989250697206440286008753024462172035752448227163490776504351182448330454036548548761042021515624690866094074264308584431448776690860605194797159534301448301742919925500298114840963798387022414419946551317323814494184468490433480865805474410024021778845254916348154853855522958999562541467926376947344027128104736812578575287477104515356112895130867338187811632674963022842334030425622953433674246959938525417249030181283472801052218361287303865095903955094992274314582146183988333614215310336987955580202189663619805579548483458221025826416170756543825725580701926150462821969497295557869008953035319173581717175842911512102805034005524273001979929979998845515334823855184044354590060896487054068597875558056386459876214465092620226313129307804159608568142651999487098924815639725493048216503576408756410266211974344347568296287922629611408611859045873037117173352499547676885345392000478804658896048279744845629922849013239658624220741975127585848788130602494084092383638797665371336024141393006608136448605854183876400421405802227091689228989782818784784015512571760747678323571674118367200364734694533021604469947463204303916626270888813088590296216225961860064037043632003452384338695680087302066002000251795542697278552412386826103894792416171967476836294066094650653902763681541825814755592939529598111149394365474367720749727361173621134503541794135821111513267403905897569787631363156227806271176465119009844292789808122956177620144603019628169595952073786540950416546974371559376528830798281888764710495797206002436286622805600649277627786660239611731844163652877080473393477809864181122140776200946901030310677197113677530941142785745281517502723573337048525150326593988306297041625707415056175226256932709452815844021785737482672430468282943310930263645265416549619263776398275043026653062332156608446918317226284218335224024857374548698956914818229420500389057190042467594714006026655724492373906633711521232706900927631743877888091001974513955945340526830686089264199303711889082218899841071633160047217900744326206427139966802571124081484816529876987175900218144131175944281218077317986277919873706094593950397723159634293163257542525883041547463962202809672726438465603044749199760628468418922134858713917804597202255865957298509166706904842702593482834970663825354730132057849147760748789324328489600521856166452470030775600481332022224461454571714876593935979796237020088800475999652111321406235539659190240312840730285182328868106228381153063088673372683846271717141679063978420728220696526156868378341251477306948153311623176819358446932724950060394073898532736945945296299580827843862780921769553928450124741860000178681423774162446090686084398043636184732811483246485647752697965193657954648118106521517610265209123943674525634831648571154126083688392626992433669246524361243839842626513642751533975027222190359058562126402441734655695651870160721182837936547414672341083214999310139684835377908150986103333092490394148494229977795167793352053317413918888080576505550582641442741994367962476487496887241875264358065779708539266333232526562536257411359360121241898276294535716182685779430379393845714323391975517553347830180560697487201291178540131987887575614188781011851013061424137849921995057489229624718094215384725214226745235550425265140643738407946081574958062349572550164478824162977490144565735795665818338956159917661242195578004510940147386604244415767901698233227249365547015289531734170253833512858040034838260430332718767506125899476339860365770770330502204610051011528079108591232582610055300765710277731539758107244716097565139978179006264123915114136277184994229634074666373007478752235713499769561069814632325672198581599420687315916654266067527166391712954053911436235389946067872367688198612930967979551254071823440236529385222645396575509121960549427146348355093421322838424317706989691485960209943481097143805571175477748614421867315234585782490311331591614839939071517645601743776387450840497283111575463022340557269827474701567552705447051834405121507821068032062066933409845995002106317761270503862667294888542453330126818843791805240107961595452889085550554974966890904752692073629283334355429851140250275171262550574975774622854701630296343688875527092336342913872673450572115054504041656040985868000403907877809649657067855900513366847356548824791319059156095599977005751195645907652098853746932907646775599250060601389342913727968334490975978947321919627021179140442627292015101962669825023005664736306753772902061986919607526408448177373538925105318504811627211195084839529589288085484417319612122747205389025110704650697458032281646871034974828181256148372672291753774781242107915717837398194422604341392957678289358026262904834758504693234463721679519143202660197393492484945560375227842078569667681819373154039514307379299054271686207462029428411262745991547855913772541868513712714140060161353933526128653874097528467442557330809508337965327081513946953268209268748157404176021591143335247469301547280763120268889750779972819695652449322374846898871106129963299828457455425124232612755587385884578891578292580658935871579292024616516106635985271917736939238255852107198729655364643088495849685710462202336013677828793049256585294551609467473756200848726858919068493037004550459969775545387427421745745688895903775809280243082890604889006404829389831061984984348035408039794143822364576803113668281046058679210434757260387862165625428603687189619250294669929058058489662707838775750995263611898086361996608200035160495911649691616536128916117272430149494037007257662615951175619450492051982789545073264954899355709336364185589271503284885600451288696172916926612983508217210929778916697735662329958030063260829350739386303269646506941882218685637965198788682561084672558345940581780625584304677860508349179931125148685118307647766055100204938304673741940503591656023122676880020181889096656586431937322353072614602086397911052009577925808936559691936802738733090928470982735212604422228718300127166089948901442859435439271403095915395362118007321223701568721175940736857208149004955108871090733093837724380865066852639100819007782749780175703194048851537590840317773389910149332159444335569083426915803436004689743015381192449854821121442882666906292410460167651512051685312844801218965606171745643367365503701051963362813639070734763022913273541826311894416111582522257151609772389118515904453286663509060650466090753737557073259318586212637576417005786765618208204628677121055270155220863319456314174984906615224975608330201577816945458128465277964783732300925473958110280845888203599028542066620230071989348003556609907646585001276555592682481098022987664698805323987293497504083088629454038279719839023199975678393193241357649462807405177282952845290205101690536558225884329011580836661683594013787671025388115021907425257731819875387820729419448231765207147295246311531163179317549526947350945471661372659020967566668690369334871546672991949007953136893489990666798817212379808581644919533820525684782760235105535036223382888914483132986692236351009708164417105856705793742752609236053365021122395891029147480597138680488108119473984849953082051171784853570003311040946989240400477781812586000849035432212347451900893568072159042384697942007756743426514687586909269491712362241721441097650663058947004819355157430048162172636249620711196211695041215649839394618232192149550052094983414310580990696251373806154942021866388711672175666208478623755416465977373433124717408086825193967161105607094186129486150755257485232600799662836476529167251535052563114667457736365984684522960206757868879829234210803641183421406188720003239787395449987626442527862570663583903321677684660625919291330884518350292968011958432943070212011005606211204243303311573677388089417426322572035947347106887017034874410063355775635254984716982444035227160953416488829081584854256387242343619179413761526523968140283050620873070782972477457233238862434430281288990415752746783802832086892109613835269220244161755800032173830097862428828757759410808422697091198469085840909804953438592136888593377421994810566341515633926287146185379179260347496201228535093636910421836911809346172353711334955131545642052133503086733950170303425559727522698205026529912323074764648198381938117227646570477678477448898022520403864557487105896159981308289833514672395617765336450366469251241209051574047611177962775204769407590693080946810091704225660359345972908267055781987073265117304185186644108458993692609135482269170886668318415973156155524323711857572174671963576745685350746912364601768574346368359523345277081387878643142982141501709176201076728925377312568219480368501081159849897370744863179211408216442408743183164757662225867803156605485131933301459293083709392627303263324250434979179196715628479826265492187034416349942569433454339576396846872464323532723018432105420317189889795919926370130135992620857228455490059144237697838020890016609334888028353047970166134979858551027103395058874608398962301016210686702419501314403046443732812640336307615497877801279922401279960332700236457796319322502624928571214137402050456465576917128703335403676327372325483924026603454203332785075489157148736074600440694187276151916456959712438346954120039672050754314512704458766311307786801541190233533936742903121031116198441193938726057016209913122915632045348048793460081931656100863966593660536351169606513948812471887425629276522940953250732469785806101252599224029749392547133806956928714371496526083319260687073103698453801235159917501359525075052874541868106091013449979029441512560923980580312022646224332489756943034287991728005666929372005860638416979364417510518759181437445803043897667413975325201213970165009013782160064871024116127381595393436401762502374446454456700809620080930144701151316832348640632824110879663356422025382134857974105087741244343897074912511456901331783422412003206454349765496585260142458799759650504320146451416044442546693031006758180178217491629841866481423423908842935104635123395253426191262455572474739808501993186025990866288146965864445571898732782209408690492835983159880093031428041145761850701750750234294661381007496865948165942821049829462601276935533572191577684180442029855075291001593045235396500300942550468339424523337557248917314762019259562942575889236359300704153705395923302543817964635845765176889974368152318217887589687854265307400947435382228849279772742095233730252634836687935731021779846212074113358552778916877076667257911374677194895772683481745137150437205524850158955164377641594403251014601255779062510049094021326758154021768539009725948676789064254461249543052239049405281727218871556162164288201708741136390827616002408613744319791098196321452836948863188604709063596460093207545719712915514704595302928608646149966579209034872249419298538412106596285227653653599506265173999652721865952506140442433162699095191464376788712629165404779695581188336007045807937528638672402275387124925924582198219920649979073418004736359428321711425984706613916009005158522703187145972046191701683453892365158118169155640821257498839838171893479931967545974025307738460470272051561013759612368357840503082487795842363123753021609441181969056061305617406475639052962561873895029295041338056018415189021287051057658164102459045475400615574475196509230029944681469325920358537140635651148883414187583118818564807008741565129362328735400103123068606898337257698976243855451679234308284752601996961872024895055046595339959184068910476625181281075608260046395049280209177395223175392280858792728205878524612781438282947692035276401120515342794784261161386621457686582088243776959803989440764558728249229442615738111737994871013801866228894141468776415409998909242532179393846080691496738556410846447947991080404353813355986154942965274805632269072013518851388104941783303889281109915388870218626932708124182133144162016486743950320738717259912932356649384103509226865998073936048033412449102162173622132788104663314777072668623454703801862538115372263158187737624479081867825710895229820183704183484459540666087147428290044894144975243701464184550749114145870596273055967662644110474672531834090302340227752194601019282922023062583556069678451722463818154772456204066695575959829913946519022847492690536729275391518165049103156838384319705991630728971667334832065066252860836398294157025963129210863766444315677350101988725743942598784163389941053117418011477332291261266315744074504275050467080961353255561390382507704942852133433905138376253578969096340947846530037805594293189304424904081718417959990902983375338972041042266067498386453403420680037756429464143448031253430431032740089730334699679681962800848653700476097126136130259423427222313936293803646121073218287167176985933899720608532515927951545517148311128195304987457812064597493069403371113513678871264028610861461807718444103679349956449528480555920796664965629755122581677746036496474335176812337344001124478887395584700764362535092617904138907175795157361443100059021998754296246958017704414851948198727957500201719711673400566866970644568161730591211342787880838579190575024087518270889302212427264736658858881753738457961006204577876700618612043601607622286313881435050752615314139089077576756589282956736015417702125380308996407101057081642023768897716701117250972244127369886253946440058018901586192990671292838695378337023584159683176385907515647456568239403287989674316035304678152272050334138821675094154466763820639037416453783623401148898908346365344552302628238352869735492759770004682236252116442454473026562151592056894047823374793744173520167420861482619162957421693609086094765724021735812170980096850186554449185819008381958612051832734334963677812858654556166858898715594593406233198184160594245933549140170728067413071779126616840787714391633049351946494918940522404424230184782800488524066651030986411476134003765970680753816690743215760073883058014642257091645905188221089998511010492069855891812300422770494781871070812137107235429255402178996108997095602316379071302091167972448898344580617876171304339296626714360153595442572238527022195171564088126346557277044318126778507543908391061739335937423259093307630620232749308292141484699988539814598059785124420664197227112503924093656484354814709043710999844115745921445188470312550248337683737035526954534310387543083284453236520072985881638980827774351026947565246391796754900246003314852832651005080356085017947507127735625152585355995662734754441347466782790852851514252393493959206583498463519787816975992945111016941557566720041192199206746922668524713517849791838803815889220452134606699575495317864456356107477128125230440985536391759686081180868552680938646924083273684356530504988332664794294879541844384858146853271325141450658196280674355191800373067171662878561363762730183867303342236762486091067278220234883978502368756565824523334483852173130484156970955093146762861579595404192387111125302115657095957195232991780135829202759815309807445210310189413904682964892673240780281073575218259809599051901648011191832959749261116851418480743533090803732812383016032561648437396964258975695852502953018033806163225923333454427978224639024494813744128777532875831567582579945894023216146465172591438785141362375479765527346431107051285866090345651472461150103981260097679090511532108172625983519739370464728643500192362334098545800541804797752037574468410895309557491346398030967086099541256561999773737764174214538365101500318353862805906875453165838505025580396745720069495171039999822110860085851158823443675049537520678386334436673692035767842658335633229477064898519810881901789503015876496046153026689112845796498050998306839070913981864052914430330255204954253632337953170716979066908572923034647383239325738918327666921250559259911669663503040328421766196993524174995394050991406375510967788862695308221612388336946110752640909113244082083387618847222666496360024472910117541534870321825408977600924308991224755070098701907644485429774011033173199619202472022112216471650310549433685446512179624899616353970346297970183786753789797672822004564516945375767853080417516736570309293633413980707182308263756840048614595781132665242707114750007071695003516871408088438794221843345954070695590384612645199749488161798821181842347057357179535330923964798666897832800043254713495088051829240677590017462498630440707403765118583884630697929835461741506688632310182290969258303906170090943314866087626650790906690345709892297142727427137782544182834106083547875727442549598906396681051651690627765660583349319577040493996906769180701749209860720667014309455747310156617370723043288346552340124278686550356346529648167308548002910364679020836916735799913084083528934242648219588489561440105017134726517137766347755783415400438904067889184793105396023095276363182984840293954499750366968314385505592147968307944782164775033783229227370298020692873774321381990671693640974936535268578220832898814967498810774991887133362765977489316704146169821119057220151602573346205620216465992565876267624599774955858889545507590360704291366055400489051050658173144258493480524409345103121645139504374817933883873061783788049549175024939778467089577720704831892058001168791486964456588620578454733946463641902242665010416384353482456217803098558273506498565532505530873999236942203797457251881907117676968590399639659564030518472040258012806081457369270022101635871412096378939750593335181558160244012987103029392723190108071337341035717375739558831296825048305693678093677656140996937229995446467794043770229858311501015123870874448269221384872324719689703282968192132101741159909207692396870655913951565379667455423901314644683923522848383242077683358147804339011747114304883339492648183692733819888422010499706717217082748205563439536428017531869249176890023964275343246596628650741151561010848234785215508875631780382789594795566375458576056942431716607068702269440436419751878002540617810244691491095797987019108938528089625211896853201279751408824084146143354928086138437833385703256454206023108863582327792879687743285038255702200775910103608967565459579191374635910278595367515629477607131642696158489525450431331046753640068738508378730765852004723129965209579475666183800265709419345451682291110906388329026566340454910966308285713890888953247424465623737376459271521590881970876681562834982103983602113509774794612808959394678554624517285040569989394977858776828230335628516778009666000410670921053908172505984682516853553054479696224100701367197240006099342176538439985756676178811794983837821519713533464356254559389301128753638971743428463049307949524362807386274250818154507698403651643479444206780769575614679804936915807138751610474145540824267132611006253578011864826181383978255735454574456674640059561248847564953474074990685506765217771099337576421589337929497043465713484954880533372896696109998962803287858656050913757313351044752520770860216825518281908585686251298319114605260529088372345135449343549235515032120088868013702555060767507508734012570801541731670494366720052038720877064911585640374310323250009036909173410245529819668526442269851513165879448624850677317663296803690079764571544935087131013174074394622436244490417471040189691252145666799223713121871718449406919546156854271978690797148628196911778212118197582370525310908809231230433647781106704506871580525848022986419358879953690564091212670245706620914004819336021451866021688856466094774068808931053801519247274584125556408441852156991331848170480259155011583646523873377668315875748877063371512015271446990564113058517410658007363838427733338993521740183830684498908476045251031619792777180167236118888386921783296199742181098735218847345472694425309495486635846522999017549190145400252716413223322396395729371122787195560190423033669745078949758952263664271690706278784357542573729833973062512597146138977026017821222863939381518018998588209787817686265121791937997609003819393169795543345823508000372627195372110171574999544660372643640273521680961480838587871963961896633816630075440281018647904214783395930796066938327904080638303448595646560049468189118779230694779456486543902349635761599774134349023210074807986379726543466773044979542090997210005224583854358749438656354106448809412804222658532731456901690536222682901306768484636797272072568341575966080662008855089373727760328569816888706164598837663572838532965106002775536829694045777205939458882615913652856622796659408933929851918593254953536040148322257983785635904209699539137105596941642298461513476650310363080610726163284672269850403659186300608355042919616545288457426355679691656849824693949241659656743470027539920657491439278328689679587423386353358537435474267171079155930659077629339162023584742615171473323527620732584160473095848563554774018199870128850557487304321086556035778349749347600482517039903862462249625899664223225173388525100947477389603025562780285253272107200460961802758621062597501333059937616560867629951878711881332797353252247679253661521509096083020877867586249404101598891082855169995354399130846879198709230501038968941810496955426895191213157051939452561605649377120513972383177566909883383164751989671378265257748041433196006366908160574177826914425131901300821972137542346168023050771968835172884322805720938455739326302334332352199837931836343398482669255789237244319464858164209555315598112251594576023828309794471212124984076421153473759905416433192961168564288948162714829969069250359748960425084959933885102098126216352850433368771766303183839036382995715211253303642436353059806868891750661427365443773930247347672051589605201239991449450434948205768663246327218351130361153935881541241176769608948105513127443486568440008567089076779757597118765063535224690810619902667644103567641100112198269773086764610499954815675570455534634767104668967895317557722327391568653060554245357920126456084722243615486859210622131855349612179796896239871188359937829372562697467263698944489602504560377816163434515790475063450798493851049009600606529680430747939190922786079371408435100067091863979744401391040690474683420158253320828085451868816806739898618530312303483106403871713203503179345804438106547410843653952816157278878449677289880257070713098970574062313788910059057793189418367492221200530464945571250014643372302107209235869049901236067758030939743018974527684418389481625436480072381098295971398008326925374449486181149178733462049725592031443268988745081281549486433855603221182077477876233644046365859417627173282461514612578553599955321080070769723880146348191531057060363533562061123605502302350142602988243772572527784779941624684814788563840388893591965676844047489205054923847281657837686778658086134109005146170551985671749733650958855871238786040366336123840649703994189162085181753508470316128592906100718523068612923815285270920597846130876311443903509492317677950864468571722082498050261776279842683261290924031465238727381645403033764425795431882018112948993121596197754819335478099775462708276061142697981750698879010720199823216863956070035030070818751195321808537948352825619756422400484126039358075380961730758666245365248834850362633506888945023696643205099818040671309080659872578104033980729889388505322119473904584097221536958261111530570523893638938085836951587855881103151172941450199485667914207025288861210223311443939349948375808113237341317305947202376254047685052099983246707831320987282642771520456260346131967924642903050607629901978101616561402236294614368771399374455855781720105954579678714422239263483478472732127481599813687401004354939513497369887016136669896536259710737971385353160293397202660295995458202675059247353199988179995339901863923007254775871797073772499019246719052281553218099777609108109745069230562732480516985646732671273769974156138172915371499038731255905351760245015745727130411305003014312804240158897207573417335730146831116698673411077130577919924132666580287098504426184383465130363225818946122525582798441860663043512881811926474795251545441671049708279303854972785585152042696612882655218948287259071154247964104691675399051605502168466450764693364332985511330558278126786900574152393314090133665565360846035462050438963874998600327272004179990269611789395322224487866463365920553443655720141516069775238383760297100142284738961137797578281224017292227365784382630565569147509204235517248330527963060092029304192587834963683588979033296298448012758227740395039187724921590426995080456126591218205104651667132559286646212665981542841130255430129619467112789182360357182293570724650617698565580107320370036124615823191944816969980862163586761945124315855206500353023047348399886182458451191167112921226559129383956031306289873048631802871440776660078210352661843931363616824961511442558730726326989644038272419609913426201219515125334090760572994881315995536355723641910138858302170316060593896322570132797571159165119587878845830420020703047148423562296973727619760699910639446224995665081102952210230145855071683909173386360311030391796465437470117397342507721723868989895923332358569822937278331899888246188285919086492629570555335966645343361947648699808736666107658516948817162207776366849170617470106342612140425148764991664261581332133983854045338592754302799155769094024503485237294927661493823378470904475035085164348798811929243104267561226425656189474972101278276045140175065318394968619627320668291632945552684282177488138602252619141743166639124523105432904248819535900920661492132729879033016087502599274588628839056889216420746896286491245482791720707433041412674164625075906964746096939205637013841768409223199801517423746256750288870299638739791074959662799856553373586915628503334820425728847792052732628812292617245438659951156234411113019534140275841163005941800024268608745412590114211427399742858501481624542231947660493829391811841498374681716855977975944454040393457135464043156828060380101483913073820709777524807074486121266349540312970018922777554203051252011753497050469121453990580267161944040264982933696505286443980688810858144631967966674685250749330469403605790475445542117027688107989295062032052842045261383467807470300830012694306142784959332662990280629345763133238903521480977306982954048877888367336442811968973294938762090789169397032627812792575375860024127628222407365184394881334182454270420636470746082617651745824260782805539248478563357502522219776981491036930186765891319284634922908459517512170487627315321666919190196011460349089379523957893799814105846522560561779031321221766847018749134170349702122737221405367006087727283549661939327004203989996922549197530826617477397372558026995745883648626371124601340066580793862440137617546347783987533528810296098142134593861713285574310667518086816144661861922955552003540614952418273526376961940388530969359576823906552734800587451307418516178801405461606366942175141749159181016182552312198709252160667530598671674132224376947086114859292524513672767737884008373893053925190433497526488230485771632143922539994706563729998200827117717535339485484561072948675164826145550062564066953033034996182821636620660548410715133258138390954514757457480541530370108052663460218142924070695078820889245469413270629015831097452075554510283758535339779644275990224129679025330427030486379230379244025711797732344828843070532285845452627954581163703893007741865001661341993335339744390288534573301970956902063310950178404323508199699216478120461491234091639632264917219708140511178478177114574718057613372889281353735764218865295124383106821326084577989513533810828360247876684331465229013978423586697709054623508571372944772147346393813308410259181042823877139663828051112592928236904862251479837838598209220120215226169146044331600839406723665043464278778089583437432981709666771135466299778773276540173009697333709507852920284125292454737300816586870138112462897149249704260938662022157450875294180713178924415646497400280027984700495005324365789879150976686108777884422141775975826995965752904284692886277139474274790549602014411479076205172184090037737023034839920566921197201663487655036606070862916071543021382757239627099704969270557702411215767720336470846276235098301038859443366891493220674836630333786724825762780636913058850910041267874212969140020007711683665610137107344292020209443047239386434292981622371641176592225338678848265503208271799312846904881509637125966002846030120807938032518169673730051003718256715925805275237951485944318361294547440781466874830247177947172412645859455790968573335140265381146307450649057608522169298756525374590862152662570694537402393618806944080936457820935660438634248070528711356418632102396178170454204360461232341499154324479347551414536880423077946753279121486080849406450852154624548975653227019930333864359250205791789336888379665375022580531175207908484400054811666537417824316776148243251906646976978072526260664749259233906812266780001326181718117054682163606796420117951200025223828779872394830931618980007963233274747166648996376862629246724267302131023672594359412895899183185522561824386878179318282588018888156578343824581636315573157274783600843614291873087638207316104150608049530456018043479719662821324143445024332134495068833217030533411289100344920733409417457597917281585500094538197281570855092665420780401791059041176860136122588931999854458257292549271617609642923519717503323465643055362344542279950052459002740440179822582516506163986869931727913702270452419585973120294518968620090372899930930061831737394646537883887241134361500273320892641124799739706374572664289376288367571408690443539275511112248096268811382224200353790721618749999379192892737911733816152798331406277095849072332586305020697196731722653928944201120669429288330288746917242295618947009488867850032671955794117229500268443283887441242239020638558136426898208117426882433980697477700669558898770163978136383874487781392414580871205458907635917713777029340229979042146083842297450380664719546067558707423301480673465125423411173311366080280165120371817448908307440567533363499835400896317177024710143699613542437825631772296086015694602094383385586790383185032310704588796901088858514013733391458441857474880004421521428615859048127348347728819272742655793431480184504922542572368650040196251450987293763360620918710742288823768728497629097862606874116976612526482343313507348327540018579745846903850727036339234397749442017953015744302969086193244282779437561522603899929058187646027324741115050671879952767573072004060344206412961912133759770652186247374055306841207012910966858405915289109424643468750712621508247639074052355362470115701429237943856023050583720439574212159354030452136603402474045865167644239325426606291321103547290024719394787974307446815763215870065191791412075047856776944836570293679060319798537960337105008021800587776036448279961232785331472832925047608921461931461686075362919657295490734616372829567723939247804873228985142949516997526550626655181405254696626079313266327886023802968711297940059797822290048691973198195264073641027135112484559803427164385265349037868945695966767497190391820385575023276965605997747941570636375131620921818047556377349926004941575640640643892027025242708126291101317400468874873493354740105358571500443364663096969256101352079202768344754078634354888755527860374459235315475621742911321819626362760831374869277912695024428291145818487498321745104291135771163216656857826684617224353141268829485292479810468904854721450678462684834903825164127412806665670949551309980814369643786632815750667218002589990453216832381374951587401862197261680258603073602888596790923631977148933381566424171357229518469420465547173536166777929633597915738096083541057725447906099152643085436344000829509038036327955161121398526993695331733545782079761103108329384203279553825216647936797445343132014800063367635234103639270126565383402936147873189094065848444702130522480426206641548226935203622189628043475277669833273846499090504707778188274973796293273858026815748625322778441748859069935794532414032228578096979049392600404263584127469374466623603155795278377454796623328762373779192738502417483189543357477865492030589901222923274872869458081526898230702938211947252009681302301504508225658297097720703951248017366152635304363347324344388488426443310733554973842183129757570212175305523958766912939859180697425693390572673696427974804924032472540228674444680909202133769276114584664578998876527239458581711336024009019794597886343762195956003776983918276516550247455948497057250779532760133899105354448043528478842615193194818961499326095117116365798181437662643308361091949458770853785266738558673663743343933167382344973873436932493687035640123669697200121024808580839216677115458906473805672742972195009295462971104479162886941226855120083934246426928168514947293844518367418172240036723145065220717319931385481786242639223981502523369305938326062722413393864210358912147703327908723574130519684217931899614088713596639651158524875645835622256953271072496819917901789037580084932315292144048835511065078405021443149611489297093692066195585966100209515661861158344496534500822058042087435025917504472962400091091961499695602358300692279281955201772076618906855692457481066854392130359092548940168547480993031079615422310877359197254929221368337168150213072752501754163507314743064362654652102688215576808715008179905223249566468971687560597388974266131564629077003608738714857234366598359988047787922328488539149047466093778485148673362760746374986799792155207432319392526445965846193698095072191224321182376577408545352847931967231968377449344343834535715141600513619852712175410500087337730446231537155969822427055724452409161770315978318841604901278905064455279466614214965039700399008359375409248282014010035016521940904134052421046280041876163661213805671454279917866692668815400272583646182264997927154587346231588923815303760580774281188358295567733220021296204757840951129474376208632762606994605227707265619231985425327158043279432734462324525397191679257975835344199352932856508654284641423122402783841770967232944023245821418646271408497155470018747558328739748604147323465571482703646522037936701943276277402786089135192844728037556431876200971618626593034296081009420128486964646190881616354736580976743144911931543827731180163751021611324160763364673427918230179626222304464648842279292131363741992521380112325955270024232812956811242347498638846677447533053766066090174389410717707042908746182485545362432020440637597851354214480421142087858477666567868062387507908838400554416306340374791786659099251719382483636127053955169894443063356924312068239869667035663679581167821380698017876614690440109290879137381742609659878118593607393899622773914531171895879390503647492882674476442691998596463222280412039545640959348468981813914167387636434043540377434324649069466348596860016619399954912186057203985556577326842695615249204539964730711239504043900449325647824443668765828905161634091488055130329542623939385319867427048019376185106880371461218320853577977882459989349574126957868532605908498823988795184749133295515193943824922477627311135553274295528280532436030603016219128894177059062646732833613490779226815621158769168406960311062171303311181290337220192771051403236422105651741447875266800457049053080650769310058555188897821161021643278827589746087332262128303827946219082468597213269176253074221336431653410756978959962994928128245860399800490137605959284186491343819706523083595978063370389885968211173665538925146812571283220552337297528162385376470083567509358709938266526994004815189058004361147590293812293056867178904783748825276046144615945227219887179977038766821941196591008452131836914259668820418272571160661952851194251604522264550895085497087755445120668095431825873190906287623405639812361642261210694730292587101379504472807040542464438720653972289165227928162841328429964989604117809596402563756817854605890280563373258478440782800213571456320151937712292110337883801998944680499165500114211522996416905467075007027207232900535700477638574845051263256380320669964145652841269258668404646719001371545805076623814909304447524795075562172892246208353027854542036233295151811663302608644041488200488919152555209339854179713643461272063852668541964508030555697519972572109756670400870503317975248484809362075103021154578711815128526829204131507747093577441883336115884701338864441086940549965488512909715965953625264121005913535027383345169452540640245631940119360669329995357268253519662464584446707211760068924666550434951327662893562903897816959449062993978629567554792029768692799118509857745608510110304010675612672961215450477587602842896790917774644916809686615016492882184386853392306599066368954977329814236793288130618295729234771313420290359258859693353198488011710908482718103183206702826325528616913278657525165170786837273911267224591564741018843813930626560291645080614248195185992676205330596894712079861405615160797901230594088901342441537306579972048444285955961322251644689872733356382769648111658123394945973111539577947520882979879707310798645227029552909790501477464553799159160088040635111313294894738260752234869130913550026456069588630115443823934334434062840655206366562927605452519383340577622100443459469636082176458061160133717085985625690084146244472695352267291416277343429385360345657427751194699980875039126277266193229199046201010206333949098016323211304434145975238490703841993797141043454338275190920295118852328574363826047359110413416195952466914348435703212594466231474687604975110037287083274131407324112839107519668150212877091010869033512751868809332280101236719572373079943496036015182387014267015517019094187278398271266659946376982147895620658702680875298055326469699372774231155507487821509507721359369728090811190165048213237196002861599722869288404513849095398919725837027098718062330564086952494017209814365988345587533670697071562394067695880798480488983976969892155649673923923790787986339760022618301084412404392141220211404845880163432148322863872700599039967441759796531519374381065858242008285486882159914707560361612323306892315859627735127727012641981789014586652268516710917523592604815072721539528939809683155510855076188129060770679724818032866438238008186752324745017356420435878022650248330160311963140695474650013960096016370184019813223701254980294133034985361669792660520105667441902558689022577857425779917847971637873320978397592666365085662056738900215841377429087579663844304571585189571515168437795764142718558600824831883836882953294509687960057748809874445660481173645867841435948788134236034531252214819406863440136826805034654354563086708008659652005915349613110901885311570907337069289882059858542565444206127660240236360829634898763276267894511306136737825836184087518113439391770949546719280033665064434251532360854304947903329874579122206121874355167761095146573545406088961714291068382148023174781255067127465220245874062468228763318795301059656635831588506713954027290402765787548305239639950203475169841565125077576633633047803758071192784178837528774903969529889675167287940294380465375560017661843232004899698372273647983526784815950171010563386880463645125404992524485234898930082932820714174357932832618963460355727423649320837912565598024443974856132790025890517931413444913507254208775629134316493457741573721685504158722820827855740837331548455438778676052839593482854185405290802330128193835327362474289731229977593281214555023121137423993260749419754422986621310922702440490827087743494525011523061852600465645584984847844801109343488804527458804900474623693210471343885900631880730250143731756514504777654126530722128206099262680423783093894711877566315995437902048168102643684012752404835785263560900896652214554094636532803751486832741966449382002953542555117145687833447970156359394380405495413001365128800045784727058739901636355133668994337670952766612776954893717452131278511650879452047349784416675656715163082220034704385293193683836879611228480576610500892537168650873999756248099100532665743782834464433673747511462649778257773952884801743227309974299124552038425170485106525752263230224190873319845273375473987491573038294034368733904041265465798286936087911761255463481998840826889546554176870165487498296730632590303526563349321451393201228183210971456333119429106021530556464206701400280886555298564684115472996001876311101095808348564748586782349270308597979237778038308194501807719859617034983466094709497749450588767521943030757762072594455262953253832977771163748701322115321511696880150767302878812709889951385754962101425546743624681268783109368576029835393840127850585222416586034113669075623268221062121306636576242048976371336840783148336004212195300946187267422322712015516745132993459956804756898324424162046305890631283403861328512003267420163784433388947717637528418280074468906264087051825480741148996122114459973152749708947036397614542520008832243046914802949934534784563324910588040147672869847365839178460300732377313786600268681261686311620262641067925549095851372418699584877272396902271170028053246723465447936297246045494978554118342264357228101367104442291783122907640377163878694139534364819767886166688829141955415108873327095197189641424755910053194732152779545843966205626674289567195215426586213517710519327558914171841955593219317995181364389541891882337036143366075788660305933478356176373944395650973904096737173340027759800135963676956293889860618328659978318256519616133231401660734671633016426464167618336542928788947429957802707293776420027704790553749817261260858869545266651258949141109419645865137258356191943321020012913723007009912509764598186868375558015854103727903151988548312039173050569294546922457603899223109374934870541829635672524476903293140431418589083329477682305278611019852386740422512050511079225307574113240918891316193149265457319894664610467989296857523325197607778553697858685232487860135747304613267314248363793355096118265597559523328600507604734947658223698146308671271652434952326511990753340387926125624948884511517588511988835512274243832103649502434584170292149188443499873530188134461312763570018147582374988416236872841772647281285601766635473442304171917971120138153431039848138847583540632736039081301475439190037393845245374362836251742479194231382407121561756183552458886274870092669721681089112255476024949575943651278307455059275948395699407706428703462022000590997734821219908819134042458729034135743612058921211605719065229083282252499113281159952925573706742275254030297347511654403192384825515156224170173650711004061564832126358071767300255739443692086885764904600834544037140261467890946736307336698666795678313407642909035675267052066744300308347550964489309781073979124466269502972471340078543647182076160207536082376910651187593165908604805708050833207164025171366691262598595313183319253860722626688978368395784793920946609311787789468202062614114321238322237876436298565936448239016142141727885667317403464155020864351714674796845835862505240082132244873374494178880822693568922395002100764082425835105138490536225395401755537733918512355504228765627211760576941913845805603048621726688109932662699761894078133647781258872811498765003198618305498917370413177436901513867480705813263728367211371206851554129503649982080089795374619827395596956710917137623113149609666774315101317142002358073929895781975116675363896119515584886115583947790617469880438536133855106517209039551842985850436180906740708738679310732710144702800555037848732060084395817523679519324710227174934713539182304513017928741059259408301004970273154145735097824867649044156730166435699772820719855844114727385836316166532274148146890393482716612489094125631738923774973887208453094134173721717761900198077451062616307099366568212265287465645519525708014816127798810574670008335297933578306863817902775696192003073246071600290142833602552753666677548479250784052475232670707527869506148639942174427920788874700114310818109774281760981312651531008616024171844793824055521617216636032401361865598768737338657050886872574939194107116784157856208876244366074472518547933478344745265305672204027463579917167205608642104408131268354997927669902407381365652197393224353482640163777481569737964377368984407638528752032005354560948843132739720546270817641110486765704797210076895732087692048592089443281329687891105753540114972428868173619876913393249762330869073125616490454706855654536048437594821298572168749443438681657346341019216048061325923251603585384574769450364388990792071552485194732672303141305687168026306785213670500929740918777211605664991243797096466354760020471973807381947173380107575159610935215514906565198237330704169118428107931787639739964998123068573624870465811998436242780287191700412547656571858346356058989891215275341538845089710193786003218124274566519298652726667779970467872519991682278773021378834449178362248741936997251860733477433198277981398880539033788056815995363529073684802998161481222322693337601412181209484040914512882833028087071081486276739992906527050852168697517021475221287719896276292061731819697981924670615547113081844157211019840694243893030982211634460190812012961029004195487646901145297310250841866590773009627908471929953435880530919938557438813099788348948975143935350044502634017765486291893223376017748166178114450244776680046188530103061751329277218780109206091319338242137557421481687461560777174341453929435803551420899022298234961605693555148224645555026993458615470015255716034968284025912842144136198791129480213322430908252442530130720748103706490441584027903796235298726484325591142487057952154262091190153111822001641784929321742517749972762911816990380485433561442293608803524650983528698118933460494273950213375489436758007959248109326699603128689723906321993545274062904860845515672830358097110804766424711386818191010182272855154114620945856800725546895082135954059309902984038170815444547145739118504480133994438675691560532817771356080156844126391340582752816293175340314011885720886109300269419504397209282303059223965966024739893582856678060660716947279439388902992483807760246890886408565060995434772782421975285876378353051359290048482446312922882947920523329174341608999244381483691420967435444394169766949859827332472103898144114967831519361488610626569474647752494913244216190651031515381997474826583699692667219276603834624097325665670238998636143014284222560173375747108224030249565584017115959071258242862097934837682627719182466287497049703447531405012570322261369194912763607545990906405102435261003295558928487623857939707647326326514689608257073335417251156543432106826761301039997960669633342508918459673282805763142855789706611444761197473258696241532814627277808943939692889100778070425583364703630251083812650800609786572265651136794186563324874302234244547101374481006233992088429211836154370552038468207852769033105954025509126498686637963797635179511852794675195584534836336701620424676728280275112339912046440033831436721845227072405335009573863253221604711930226641541869583190894353257346579278185458617473313172098703354954580717541157126344321694463931166575452648535677743500028862204633472783159262025860643382263002381082888996835120629366839853514413333875093780019555868798101201536359196225327881643037400268098832139055589186322400114111423255166713716012036574798269875115397822925535799533346347533759009135203835389023152170080591603343845763848945339094922458840261611409927297760083142278730729537022203276638731412290845770525162326592286840943822697483180147067915002412252050667564189812777549549422206802502985228813309245986874950306468340146629091122864827995665986363104618265829705568241344251679101042577690111267613167807022392131333534163060330462036218994740336780465929327682873302668019616878632569129679925644696907224699996579472732761961418504056950309690850914644418690507365389518108960287915484622129962104631972707004772459792665692554389119445989246121227905976738374433081894433968975881109822542073381531920743593340328147718811727678306163549341877916593626078857414878559434851832428260710800189323296014703925068454905006163189374748569754008787150384733460056758064266128917272325577110780852458630232104968959664506495180301100446599753687022001807353022274364294997663502076736108646233254664076443234191755423253158158071636650332229784949025976076830232746464827988252351505612864610596361194361914771736020761088935157182919675567343384008059959327190169908500413287504824346654598607117863995735965808960126060782833631920238549070207181678845901137214394717167349661353409274944314720512428401547744538736058343505155301755470738366755926391113812691430027727335981680252447230375527707368088044266232208101897614349565016021102034218182669060623579165374303503367764015479684986191115618688775339701539192608486714607336806665116458756514383927681881952580395253296456890815947452367336275853317747587318820145950580197276128319773297828558784016478330293552733648546002421426088399822557868833846974763160067249948092677047581464280669872561213236441353359437838403497571037766566772683418224206485940709640476549243716739553044239365311099462538987317833868020084273303755366060836231917719451801131979958475557128650852537353227577616534119631656328518664005711422217765613454977784387951358282452473634952611876289141790822474048257945856904616460148624228295541682105547995908794493032216179471965610536209992312296943060529346363371080012306505985162411643387430521745196941014562637900500835022627883991739329452228407030918944564569151530623281358400570870462482735220837078558585448940900823625026682432034213085663620173798423919913102036742895523670645627140578826025116180434876744089708829585230484481106720593738649136128462038010798359147248191196199479955612588229491290697391047474033753966338598979207762436844390167455477713516951252910865706331748367627494262041326963184314295575443560187904508145771617456260503840335195691922054283182044282332102527722791784504291703026870319023045587422849063875481245851920609193838302123138733767410506132873579752225850480847034713609592618259580888274690593986828618936696375700572356877384176106852847897505745089843228884907311025673591758531939721739601269950027222261305688716246315772223824964301360214976681141994815880866931795196481319000288902813896577029202302807101676719963828865471886583709160897236799954933754138141108423399911317548277561265679420103837055326614385525802099034668632561740415346839511034305161885605609026962208940471601047306425512838031897071812029304672246694213826844767335474463772049723339709258255434934545432721021601307164569920396022285807482944234943435540233617929731676323863350000667914975358362740772542674320751406084292823559281945892929475339374869008970836197633949028380907305242863063831348660052659441783601396484966004976519348789755932313647576250269573159294107050705837215107197975046144422816397285329198629032851422658037563673397401821072066945833009909903733472606046030669492210078410240143028870305667180390929020666152856626648838704456831025664465699096364442356168473308047785349686152462258731426525239068921283333366978736516834718322769735759045437861064805009412563024276732061067310863556893426381055987817826153249845781071229907168752413912198470031367330000819077832823288997039333541187036714648253206574014111979619204430210291228679380263841894670547689590516579860761695532636756226868584159832691204425455110112509406705437687549824294281720486374276182660555680245136856327321792054205286971205182790842950300071309730874190949317304777238142545139222279616507801241040174159518485617235049154982265395933540873005737694355658743226495499200587471109482153695664964047330581656771769879067704279383530183460781669690443403768269438612238867845729513496163405033932953195337244733589508971577439767858798481262300065984129890037276198295654103416008282833150211355833024860943899024194380153326760499686610389704813322714184270552938968889977004940029926718808920547148580088239550287656800118914931830113813387663875256250782958872426774350394381600843854221419200837600454040542945934179392688616248876841663038351388483000930538609424638928330430194435980495525427831386412690864852536274583763861188717279911070498425378593361149331801083054793514272008292410561306335934338137941577245516256404556838833782730986309101267806289752959939270637739355100903959907090419958064762693216493887809770419943327126627342905355308308920052014596969060714830371633678421873178214554131244055282458258297544904555308330166903078743181982717370945227836996229594202766167578864999478724532898684588763517149636084500548034966476401160510193211982965769874255965266918037855676597489912812183245554290685455090249172879062942126047622161223653185089738831163732177513089020914254066989469296266852173714232267790149753423393013816305889497784544612572015120502879487203233486752887442585385829662619660668237268906482198763993244782267431579296077735922092837222481711772215364562032105019498981121992696625277581999061063988048873657746009846594137787157456010210177148378515206852454381152398912881671845287190098688723700576246033656880551318006459068339152494867571962068751279031572099274759058117431420375540603686613008405705668455114272477156632337806849258407707136050997850395089771469012489007602997585854150429739643224650260949008863236929956788137024890401561189982075690496413489948857002226319719727258600226178224815798596932264868306595722471755672921009627897829317664195621019845670778492965216181111630935579482476223773222093116425876209633678456248230675621750025310866005674785633668360098530380100027570706755442773170332310974426289871858395557806466104803588933383102102932804982125835635105149531041470690619946130637191029491612403652493168554673275260460368014271608917978133289134794308079228570851332522983768167115664050363336090262194864654785494890957904030428427006667128325146356219152875819483360085816381110702344461085820201652583494335396107345747429382350810501539499901080239117038913994284233084148613762698850452791639538173043395669657202388169528239750207443781300054689262858892535466863567967023208757006319647825869925237856753839225855776680434504061348346926255846345352240234239255387137263132734304910600588665178565161371054587615458660594839547453744428608640236967239748005148810551210413079499096821188078557711973683925593686109139567868749767409131313590575992113659929908761361884683147746546491661077290672868974319378681711434925992795315127153670878262807901630764272586857498710659046522962180334818417335100832524137988841916720941580709653019653079582952434904819160227585861401405044138943151643998475962707201847186248360429335977973896625012516607391276196137220546810944812793990748004916117971515552068934312848286710093544347866743550296736208701519426063307085133199724464511945709770531030702847486618664848657417911173067474157595535176511267139421911910333688888801400836591551377118676216756288576321313961030513563591149093298564343808181425939526582486328323776250974563731728439896397650680552921772108565457903851001081184415278560848484779949169645226822677662317768903598445325462473993882469866134820176366771757107420133514330999169652807848452430103295373523694539223078022827046869285754445286710989533757519138625334791368473786636261401591517174976113721163980685713472801054516030168531243839099752003239201273155449485029337842399082683700674136485222269009655731207539800407437895729280825629096584798318173404512450450809344694408587897372196534362072056180431237620216422780111965697550820180889861525905504421220058746649249228427795512134711501275778554318407436747887455054119397706246183400207422075727481287329457498445665279593269034446829258620686660717273754762654417348453856497185160488021899276688110809266913442834521958559826281426247773808094852394754357426487699993111485492775587773840808104873725577136311319354515410682452963014159430083685563758299811612201449073406392068283853254035086505157380857049988228264500712105767578784534588895609852383323929872136133174291641041223121901210697626967355171144643077367774585343889198278915827446941093513273757323501021584609361814968307074615613349513503971360768164886627511987337202425318036126503207021728960292413791378847466555587724857790755473813435622901640913369271197224369748080226004382469353260245246419691318626767361969286856078362736503410036458805423539092513173512198767077480578847666799757410477284788570353108990831379220005387937780405713223437155067569924480397188385999177945171626886562493882035572716086919667844413852661570700368610840826773063889577189001699489567862434647335430306795542239853952920039996381634221453913277710389085268892496425148189696592031568992912489441085201393784074441692049848396263876463857169029297020256401634334048395349910102363583593675932105807666718763761464355398274634009807476278043657671734280489341944767884107425992479465286222859463737485888082224468742915439496964018582086697139200745377279824917420517873671088794305513329325915431756128752668437965328942178327209716078852319531098190087970437467543423168960096583857154362516808597780614260778006365654341760982443527318543841244367526419107784476439531568394123962130610894749928308808599134397598973132077276850302830839819044441996162682553756595473784039836128209459257290767232541614314917571500213554023588444951737950515769162691864582676684964125822880367364733785428896578650762697515958906918701152636026734716976162230963234266996917847587500780903592535201856571259827689754857859874780661304807028330294575196510012761554729307010454142040313406733197487825124226989199930829423261872575992166132836936082487019005825146361652009771698403018745364253333988643357909675074094715040809121951251133616434328486736966740219858615466417897876520424843063237626081375805410040189582027511822083978080191124843784093762904811417328431570296073557725825320296678393411981563769968446847391648649349454004583407636872161666288001312211569764596600429311989087666370555008450655821419557616197474195241571539469564380451388906923026778772643615654096596952683371525639318637883886788098629067176698962880633009955493578239166104665904716952356283066569873896998499159722267506327263867422325089923253861493825688833334409304221771830275608738713951563173423109842360402466078647735036874211831808313563302881148667280434063785076603599768694335469094405487029283009294989978331466829506713285036685431416933425786925152201240979560638779683833999893139057296596123771921678257329766744901905178358394414242150414285150894022986949469279760122687060279914516646677237522514119198638590808020997557466065178490702545635667285266031819912016688677489325698254581042508031446915837532115975240421889467350334521222116857536738218459780118152198899998193178921375489172260018196972415181741000213229519706688953315387063193511149075797107265023736530501610202132784188708084192613812257832403411229083961906348776359080895083856358194988958251870801824070100628959340271041046485178514997628327660986735401064563852164564022039961565870289479579731438162896004858853825822729870033776652698980965448047134191764686647333709558595288242798547036894019341944610583228936258188037971523104233347820605076454303208926510702522041363998101130751588356049796087418683955926610730706790616003672396860463894628994458211636517937558112464683084817102399331799215290092324744884411382227813560309915613718620842476539046166548961650125599965804346855349716809758312365195527620961185610467840031357305765507861530472890094790697403292501530886307366445229254931299402893124384665810786199580548934709555017498478956702669103776617784547636708887279708589190166557511911069297888145985783256048316668861222036168564643536633056432527492038482585484877879066975767612362156202836938436179486682672756944414953612775722594969148990469022256918066584347678649479706406619196972155429904350410426543645095804927852649357872617952978776926697947104195929664611603589252363399149760736370214214413915714738785497465147807717310784528582709203613076180861195914697690640444284315878217113300835819752962699202066626693669386982549543378366591303604763260934614171353160831206801155872742186390304332683605121084771859761968936828103900157527112348987670555673624428392968910800270605420822603280187469962216397391254161180407687134241779660241543162032852138662236179807877095178713030705201442236366782760727999705975443696104114359218162612879197611316783124882714932929289974133438180411215968349792525863836340978895409228958742014754797751740392271743194374340919800906534511489815895567922206846127521374051830290495656844632680780533123174263215984776225843085386036821162774869538963210763748542393472366517507439091892225365545886623741954904508892698367632935666261376204318974786773451774875176137105285926223690480059287007431159292739137216896135879036196837587431230486622711784869271475296176502613530280042201115032293511671555992907069904841113648290976232585682952385733059416460052372586772430987372519710176120972153661763061124649567921272946168997415059250404433426123551722952259377682664863064630584502577954795486144380076407157817741034173685026069128274719443041728584050114507801365331060365327932890858637403384171096965059705112986436800686450452102299835003117750803044272288268702860144188226148784299733504287728577498863990641806251738725977967022803647073969652518213124564410873079931772618777655168177674937574043734565223090763263400233708553691980048038039673159563274126860671688440537857791008144526417828930396700293574934297156788500092307273667089295478835998535108893392158089154189545598325525501181300624809295114328797900854560592483473962143823078277766442604418616239383068985753898534236151106833292733212511696025838415349713153883589618571448459777611716882698344859566165494099477092712584708770221635889531749511629388678894329075474112085120596358542458994131965819794074768057662537356377059332555288452166375116248744546367869913788549516415658389531548778774227670602686455573108895759574916140795227613012032727417895317924814517625419146946975296201071562899898040556675860934056457246665106190008984280631392148282508423587565560058446244546786195171503038914912476201852336376441398055409964291172125198812445258026184599908375320524845157611270749314415319099696590665109837619372179637091633599035094669981384046649482809424179324549385407903276000277832400764721324666185940822967156667065329211763152611195393579654584537534570653559674730213776213058907415639297518357971435272725170268217493600891631522516063018037879825496797574179626956781702089968400297370813407412410622118549063249597954881803019031189730994871793682245786317919008295375634297328160916173324748558658101104259728875161859333931409825854291969093350325846669790725180183418574012322934910649358549160820966050598625686647944051732986279862617891502619220491444339567847384522511783489833014771486299329498203248744116547367127827473322923641301496011317158799070447614636557157111424902729461201579694928752306598933756554298471637984400219782381622951406983733944582198331404564129735466882858164481306328474656422603169055585098912777417572262666070340512990156533515150613330470356914908108565274702517075772437379152833886027416415200505372842260930682575074934971093030923361443276564771486680120288658012406873117369950064939608035608758078514787120444963432144093154524554725895008949389458504697595306574336010624585790278126056930800436820491592960134583262757595650596195801579900603134695063292392770271888974947829570215037572953649649596882463022641201090967002916177213566349972202727047177450412584435255139645332470702841758054771024146929453490308452425658801279587140694101000477160063828016327829477853764429261358701157957381980116753846669361360637466537643140263719870829972162780778632701496393916177259460989712743294079387845465562879164892550996489230654229020842299413835409162693757646643928425656544094334953253098304893985927855817587703806590397404586616706554428000367455802669997624738392059306809016633926776679766464201245038659961454190268302771619326191443161547481338615318938129945348571038338784987944234852286826559017131131140005167480184138136255702007253281605988571784469013770225180329829150801015022434245998596846936499943953633632754783206002968169354352524181307738905840770699322751437412217313005146979502469588076679695101892362424714523316214452955344586132195957313132882310468230928013682668995422705942157560572374596176083710910531996689376905039293306321936324680853296232655906843369849701560740762789587883757941092970727743401524450826503915178015248436038002219287697393507797152582336704296945994164574971028626950867889477317776666188933546033174952353313729952199433125463480890634474430813152180210039632266262817769271073155968512430121616654819147051364307569436514205660095887639784608593757329337130959989960104034512362871249525658757395770958122869685562240235176329743584552320861086863624789148963011446333458621322259624518138585523106651965274643473281773116949797626215932027939121106854359329148248904718170984820924116749298735205644221371884942194747975259577094044749683443246909676041596630377649657922546542758821864459431493287266817237268691694149209096934842272387391134166611177769823922787362576962198504110898178272254694653916492586501165031599959399433773368103153513306796508180488570391935566738509909420666731058944331521094365211658515389729967625253415164541540095801882609728700162347906840438570685968987458394835730240977773255234515863457700836074794292430026650065422615767908508226753779490808218369488026566166822429936081394838253254537745710588971953099937647864410361043329613506539668218073726596196895976279913371434785190071473617287822464387942998938941389993743659570235056534237452868493372466114757379579938344189768554599282559793896695642904622931166290592272018459302700691701070290417386785674876053560553372724630843010959609382541694368714404694753824691369425408265872853846786715033491478420903848252342464631425309646717456058563809005253757020889266958936433697095715645171855512139554282607349739095666327692509405679749374497109463283916541418327747946994740720541633782338786743882879638996079323939574417330313418596982503288041088138441816548201101109762727274309024951780039382510365085491201947974903900241468821249870031446707243574836622368302796690602606645804239415829938074527552766021523046564281439870906017133343430229435245670110424298018177569799987014147472202728959977245165072388014135930968460693635137519883153881608734890741818386177217682368948531408753234775545875336607667348525308766346109593545020381446524089592598831256133223953766519709027657174690471411609102538021503949126224035139391271807261059923988818200167651476028417313581216208035289285723805746100854488133569517168373819461368542093649351310590340490009369915055356456037053789479192477803517518991561510564415414916746715337377763485051864227042888206868396061562151033328589717044991908354369654672866604695033489925310414987557498667753255563833768471271641748847347984156580978829921825698356568350867532662783624562127876984985768650382742163152755371093302128267880383248802552504669811604517131762863206278136152020133407827522777006833468688946030733039394271455631365912065547379028464485272410927110175816664925869083828087118970194491745967844806213045807501763078890958421814353621570817612217184564256652758013218712284851244997690380068155399098851370505248565763320658077613126611294598859397863010686509527164992291255839540284770916436509713412990941158813366889259387094289189372072226620566957002844416080639403863439526531428481843275538773481645122575513235139105300995083516364635800379770906135549019054727852503801157118795203138233161728158776741116267278212939635212061937594976366374075219460113545361939031464309441925440001169565008293633738193829263332674715913042578721991265827428413668326486810881503975821478954534024689863019497876960189600087753923652133371515927807586419294544741993543803884653695252459071862779238088232569381164316470798544654577833056580903785665677262915178583407369296320221206477894315468916346808292527498954653873844055193426769129399506354775807226400610438338939768262719567757253599236094460714219738764142645895828435066185953988776533514437870633013834414430826901899326393451682537165414620198600834576903478299832412557925958399055515586593593351533644103651061052585647908502207279052638124909858646218163614534471289593266635101051039761766745386975967839198581789173567948273481414344812374492208035410686578622322035153191211339559542550632668335627575478238645900365539951327960995836623307256158219601118231272843207466494183897582630516162806097607722885541701025189848608117752365276368429193443947197753037813049196776337879486690407438871940962102415619042765473942213758560779667951325377807707659121997224089885203170963792487097544340763750878791215010604330765879652446684242697808304051126955307123482413610182840473502230489684980706235567246178239248912208687916866939696035814588535979333427712287235962532516272124587558781363440763228632151780010556938005374163768654106997184725732112412758470159406252478772640135393297880510329403051396265741732148253678284738729537271781030422207204446752824561494909702691145861430345811978316577738222643441763699555123116103368762077822108673496306595825909603590466610010463615456023051306874973126929866864475130671022873554463421049702417701675315790675099413723736768937837635327809043737733261861257769118188031116405317057602824426171907482744862349819009435835211395587079920302517482113436781433889174581120458388184804828223205158509596730799689582460195150717089713206074467141576999837231805338637276759517841959376851415225917089586873668766811749978960429750481729430754616307980044847298052127629464566752768233560957186101351794805570566603995896433947474255461509141500291973892571227737792751565326371966527319727442341948917714400623859101956049862509501179632882171006573299738058280466941398163108145781174861261521401138957736600553059247177286674743164179934154769559467698584591498423841503614327483366016614181173255452611490010598427481055988844147436681811668272203413399937339482754333073779206291591156477317761277283414855370574069885205201826305769444783185857857922252255628662786843443181856486018292618096727525136149739611136163954170778767864697941307075769486755097099303304369228634518247446919976036891439302106066735952946362191190646437151602104039612126322904768120736528754203294792441713812450141166178582260985623628276789519260504858299469361596723659176577735663345390368421589440038251085834923044597193392702811172093670149611208764714836028762856090414803361009860966051609073474399246490256151594468251312835276477418535901422529027278681028258848498427891024432315965446832806133857864001989641197616968568964523884461151830360788321427818002347189447198342674944980687385171858985484978565539754807773828781174350068870297935335230225299297242723436283999077593904906448677285487794172801964737321201689562292110500321049342703859667270614978041334118589562216877351811478600168160526104081094579182318498376628914735932207971604708930697221599969157257595057125097741947415067200914762872457739870444049550896456747207880560695562639911793939877935344705680715531807794295581189059242348266928229464438089683935702219621715584116439651006875622843828755677204819735650350545945465166178841581813693678231171454701310885424418989521628431454649110393725331734723772552066493089029726704962000915923111658649246942033880392746377640318168719984638976748101964596191098532675341932532042869148815249906062285473544716629007093149354689487102093193457045573979423063676553902250115087216366879297223905339952049523374274340694917616363099765530814397796085999552925329399294027134258033950631371586229526578964723379212621682872053857700950991895762995382276290356131625824721568739837436304572591020680655222970646555544800657089400940916508476027528882388942929998390156756596903509466131400004136018474859902119877593627982623816487205987944802791046469448967598603629624426067642086517444669414821069453906298214135001383782958620333675503374511585524300914178581081579759073928380479569773134067237603153870399787133815909547426418676758440445008008188405479331983721583121983214935433330683234453064775995675854578044638279634718468406352628768949438873338111696775550195542170057748931928918942890760799983218486142190632522134085930148284021564520302865291787059814209933479870180884516510823204545779804818478270063413182142682460003091995927467588211844344666380200324668895230392621457012747813600975233088661468296035027169626034640019035048394476667975428619027532624540634644360194196968915607072501860673724891718215100745630563651025514246091193791112258140788999670410680627772794117818875075509791744790675170713139123942255859371767817905559714606033178662409683901410969338522850156021766970782890183953791999245138406216142555142853081210454723711566653156294966046405894718313405856893227142391918358387170222820447857822579303154895194158543638468437379941835093431599840815141691378138138981081903360594554006776227098029280538215064920700479371426978343909376802392730645322075148068912514644725212407730920710471037399008418442743137978833227764416258931384625935323888621664928332445102300128353658480391617885795433856866443614031054520884919919488034805345137604895511456085856264813563118099157641331455808866777238407464190743219305111669471065141796711450810934453827866917214171778812156332881227583951261424751443462785835528703500498543300088358654323078878319086436567754042089556302938812936740461018242946763225638764676333408839197654934588831162234679396878319702712743746851489894835704901336393539538254899571273032285134986760395784307628321785088595510177874753098563255161720994718357924906037300090422775288225022715377115441710179555624077772632610153305274013158397029733880885848813739148630956478009622631044772203840743387164660257333031222302693284221570563280561164916021722876018355433851586735294311863508426381700352203608204321382808510182509780252309497622198761998157806892938859433778266802571294152162331265063096200232502176650158777486369462617147626668619052521668903301037954812262860813951202513446800030914046691917162477299110096896071104343047435313842582511864628356795187840572054507250257472122280602300156295954889736190260457915531085811063486586903118817088247578674227442070428115541052234142487243768192191166444633261611545321455443112361223938497797108320965719658905835907893072280067240358045413985584428995199720530895686679638081814704703452572516499921679670823209640111468933416785186216359147162424356154836569863156990531579563234273997628820276839578765732871464923694494677320215592157597234643860388894942616354734233632735847311825462323518270720990725837624119291573493213168825055250035395663213922948326288122371789355245721764487790531634210367989517094420254220009900925506039732426314488727198440139861602094062049935302712466412960768718272174530562228755868091939729433351756866587093700157468161322807250627394399101541345834349739820622109684313086294949184549864177455863864286650577278294000098997586686532048130668498500814891209247492198622854093003785949413818916451434916128188908329333727472160649645926825279796992226651866999617657319567106175242746062358247293835333049645446264912240983641261757957623829503576692353604011397640418886392590779455859650589517528242805308307774102908111505631302209967219559090513755908524001536179829918557722363463489232680676345833342485604954057676361790944759711967282687746516919095613654016626462300944570618957823676849767412407691593380387375715601797895412839841150068514489209529934729312628124696632595058398897183417008256836851224939780912849125547551577988983097231713397138374443082936616316632059660870937456595883847201169069897663573303790580494688789496173074968398510607336528460305482788338695901115443292873694940382227235272274714543111258408094013883435215852892849024805528086884102919429844954245776074467621277143656378027482881244150906282740848741288757216053145555538314971559449460997456113525100675388935112764991071676705449848098498276609738837683039497224235498538651378027281694518475142751457857389194012381467089900500901374480437088397073762566323952121324297443420988590931210383343798717303659683529483919755624582499750786619146317023358450702054544399639461319578108790113218293474775127824566635083252884692086015337748679074611569185781502181642369167163346796944720148947543030771875318867218273229076130409655480316306315738877859113256730115518638064866176973949852676233945692963206229767877035785020176471652245236097722263043960596032159378237808514540274582403047350573158830655012344836119726599868023300985609014067118668060208097548052364903779456240572906131088491424805532193771384798310744322372897848926955794479096120613089593004076078857529686834175505801018236719975172801092755465065743422246091598462057259663873168535464482761448766562107078526611661889992100486561532121767807696902739398641235928934423510926383875612054030769740710474156549588234783525172088024479699436572538324121406482861452811090539047483330577229525850084356069742454009856513078555502109739290384246040015642314483302333084153409316808661692192562427926890508466330661243955864097138013462026874516669708196863699589928902299647930066645645148197636693764885898188614455091028135790807582718851504727633953902165146621825124311946771581339164181762240214340052240002911713510215942431368120645048506494385644789470472767896071649326124161133593705835864341522618501614174359046959969010485632511472931331800340907928168704122877328726716420643262745071187286109187901434422058256243044508220034009995540014748742000893037906049894630077082439437004062873009421967548736343026095325555478289518682220093367939700764219469496140083138769159613768494453612175796432092641302493731885943591370258710883539172176777643567872722381288742423470978136822422243134177995939886596494839774520230002613853926570401230552530800268239553152235160560391846963515783324883375136525914935589305939831773306270880525131144573523418620793177759615836820789707960150659323925491615040351078603904132413415667250777377880334862539746010913369867783301092083978170488584307509846387385923180820780334441179561131258302541097832874886067026711198324686208011922985304579969822306796047940228552448914097825465883327898362002398277221919591899389592336788833372100264427909179415022605342320536653665847658951119079484669077160177531712924396359953827281900025318285830863072873664047900395208869505938206424457445132243081516785067341316111173070200766726852404509903319790554353640716894524428765088322855287870948562827441185557238161132932363099881858651018796986669574875645926419909624920196733195082778581063214690502106361590810856690603898124887344158646380536982481218395022819903532999434873685241110509848027723102327160778194600866355598424846968609583823362754112346672057654102088405457006052818470199366777253610061771452159725892776451444807633866544412857111785449507910602758758542007556894517693632444994172216447815344788047395572243533967756410222429872450087325349460653188181026739603361540102504102973217297891949327547700201953690585284742738189719470560798445071212624558303767907828842846352347196345382442694160198266346897055223408501888916132435848461514446786347374121382715054036686445649633826172674617424302465723351346004488354307488775000336174054515277336431998755917376236933340491621635054046583424380808062617289777927741210907507230599544938847820916378689815447045138587367239331495674336691013099154889098800273691852877163412158501340369565060780267045360297403524746024739330985845662238079418078107401747936438239811200712965389770373281690832066823813866243097820101250058574348123069939612313032641562261344592964719464056678068777727129509519072661160806603016814141461884697349929904103181334882487518936461810650140970680578749465452937212833781540725722742249528895176772591189951974326768477553227059525589188810003691458324159571121548951947262731052964311224031718704907723737698680896409419644063952036880457954943030536808108956585819936884288155483851600338933197633144174921003985929574593468823983982029314255570860564050235253080045710260145586495219559631669859905379169279068192582467370522239087382965155787922780750805235912357455585086551842733148024151254897986160460102378341170012553486973796984606114542072211575843474733651188740353253616004034529870499562580100951145680916239112895450949693725784904720808981732842884980334986105421213079922137670968106099102691213127882178116017941097373393739658720364970573844769835370715013782769222993122708839342224074942760158884093140435674926685759780101166632854199467817408347406604473922279405300770993286367537565297574580257500022074776070828646731614984388368462892211008532504084249155321500560120230704850668338202656158953694238493548206478597365139965072069873258834226383142583905120571857548356813402572873248276808553565945535155599285256592630322393077370513613691367430326023451281564258008740390013056125375286818875046917160660297432630490354681398850180628124504729669162016985568056170219514948629038281933050806373043483849847919273719082483487264162053200568586123014678351474174796758556653533942159501443583502537970078463527757909531862899678529741300744144272818435196976909960040466150739010687410509364530427817195520224513131753997828196607565757591651036296486663966154889280254117403627711796296216150314154545582527313158329585763950532108180633523505585122515198030750452821209335077754695878438187480817292149446105829053614935115897450478969635137774514914603870425943216109641797051668172841832332725348689725126485556076289248464241505279182313777411281260069715396645509646161975276043208139996507365709479962915119666869793848412193529763764960296845543673742124743033717836945553603533228351450791088889593275838049874655415177657442055034332009440873863653489313998658545385480816998281681753536853159541654848515629674940361275881775606515827377315400593387148127204107818185504366348474761326967025988585532328292982618055513882506849993836166028958352478370132412711429114570890152258689898569865091560157137354297574166558387034009238723861852846237190620102188837555079903815514059222057794646776912571927425479246670930338821574664473024346918666081727671019723003865621216327153794283998700133196519782656940494669630509183737879532112139059035468965564994409746925307034858847035487119097615674216426787016018063535492422709365000100900064613576754053047689142801873134097885643113671206660918562708058924739621058126879794815179430225072190128280898845663058159161055078976023734687854844346968950345646463870173106373520272924165682773215562544044576567326453581161040947436861513333666947821177173780976937715008884552634552143223628129142291799476727998388104884057045688691305669197158737135785205323029551041982262477803352406069641577923920101444481982281098863665214299435485383399650743054127945423502567634439388070043928502691447108710544164102851917058001239020916878725352835581522108182937565977906647673486830260803510254285121268900792702437446855128104975720039659312533276629743193266836898851801945725837554235820010309667707147859663087586687430361809693200419185235403497519942679780747719030088360983089079683861485332538106433010130183990906640655038933029129689697170695391376866294938347197957045483486967716912146498947266372853901998165704610032476820296535871409918733535874474650024926349776725902305660615087000120355069583018394678956839781294583663915032992582019582594349462604315732994868377575921858433653074831117775209022383305144346198679298162409420547934602287028731363569323062802524457399447541445674276973130366116838311249448617327239251179234420259396279548794036730374903897892553591066855820873530097683514747464365311574171668402916408914317114824085923933961519690603641542647456680403387445189110657043536839766398109268498028315624145929013047730933115731536885470607488589970094967438103998398611203021575719888977632703656470878863295037257892295107783684911993477503690760817737643351226838893498203001133115044012527714307695681818556230580194064087291811795626435366017352026968608116249799549597335483154156784648635093593648403418140680413582342841217739357122431478374350738243380159786487797586616500136613122918304233668280704978192337723453948456777686652935161344957427797794802417422172802459379660488819076986391491923708911872956957853214065154027496546477972243779552252145515735677610644229464861680740128882853176509552392116020256457739077121908658889691342308514389880828642342959323643479572959559223240932099771273306072940556425027264809586093250921589166451734851419903000306556104616736010157450388600926429152077870133602624657916758635501394181350576775771134570996080946368901920627565451873958499750613386338377693361512421877039692030415744256977557959775638978646913603962040077571215395216528448254339529483019304669399611215656556268572512714584966674990583808530810997633470228094548528510325495737526514988721619287727885016870944429108042926430685665863165543869848420454685589566582672176588422653154247442503558234187148581931390286746534065671089070001025242412816895329340413719287315141215502322056273154550928849424691161461617231830818398080061695242979396649039147452741218028497211093053031832383409123463967739197405321649489599989115116750721264458594268032760606848352047576802854455865205101427103605045479087843160222186501416144574961401836435377758401776969442482677045005605416259806035516241467805627287897927938789315888199272868498943280141728581417209045044472369197008129708138491284856456931294077090219298697962419683105905607334996117391150530409067467170158736485132468016577090469620502782032159853086017175601377932602702886173685172447793759489077906957512838343441815006358782692689128961978146194399545610440682988656436023668243911786104815756979285675162810910555002898052831334878168588274333146296159253543301742605068811355103154772709583466619196410837006271057572551157503304373183151351595241245958403457821399917550491543407892585643593526856162655467334150964690234649491981893372026170000129067873836787849420729885682940571417672319197226149101295238580794591519614362537926653422413616170318663026020057729419683709061237680837393622689133613066134036720469489211893515291344461256307197731125513324071119300636685670699288376787049854432532421436465228708202255849365628090564382341285757971446759337606660232444488195380602210921970477216816055689227840013624710368054203234206553658481224394243924700977729500969054049720405328145083568328928172331317547342099969839898556123106827585908073411741786167506890266264766661210471611533797499966520799240409837074817700734055842638566790951498803485319110847562207589589635462083242440408488196435746527749283821890975084469065555005337873723894621235415043184798225507412132249459769938108444115782965624173968141569728459492815716275521292783286036946734935256877928667267208890360936092444847975743694990738253774453519038028853299106460886962976793579224518240885617147100869343520827797045758290803469824017829633228584753287690708370898228170156286312799736506947502550991683759647741605894592990158436078944316128274727954431049036718690573898883962030270332267107985585367812744178224033547044717632422302246749209165013556186596023632992323870560632837062772424806866338867050620243605473897272989730447189569782886922062755260410293357642443388183147772503294626275166934806160701584759173725561887344000416988066212985634469678859587642339744422363273607295574787720221999107524852241253855214657538013823189167251868980698459044217742567319019518782326146863799140944884265984592261216911575108879857822115319964588645410838879372857726118447645596576865420474397242213076689730660071292721893130881688169923947984870732111951051768485151578566195008866008188761117944510236842254828216435421778312330517115796471634725867080986371374885714303149776276117170884159184311075002475631059629066572557244825250265578501498746661812203030425390616892789856858193475680987811071705838876785044715092793522124304509930515966656207397426838607412983473715842784603485688511830392290876120049597181429554131581321516251011613625566628519748826777875731457584113353941687815935808445048900164992605793673400892486749440550936508370628574971831847324754417032851025604988159701962862488206091598445784765767379115531623729248890401307664526792293638070690344055524460093400642312253693087470660886630044598525636618098046178993656356054502205328637626406355146711784267922820918383023221357949618457591217007214235893913387407206925406647255850553536346361510631422959383905412497709394458784559735784102939416798800898935336762666953423298470412836976024635574980974742739243296256224345505830769385877901275743222768142593382172238189485177057850586902073383553588539851830851351252183926431526521373024221241411008562045290967757240105645721105616770704688049627430868011711725685870357810242399165061231465590377190784795916115038372690693000212105778276961429487065251497169459461144969041054119205677670856734170438136975272103171608808030133820151960605692871415613240477075773891098108422844502629068433723470591189275559118922406707497610610433272328971001912730810124201948682356351907409323848903397072648124976020426429735467363741292337234422116538574428828997636891381994019805548976841159671702480924010233190183305478671388219400875330930767001109654660091658561770232613375607983758351442240581297599453130039630949498085480508279378028856190211781852280647676252108726814211681036026513929153332317082187512129374951015531414653232044245674379366663333805136981316579655008918316633107969337705798807069387433015132391965528690779562191269314225956427969829923706302148019447938458862802707579425694867408165896134078587362760677790282921802247129639365218330237176137704694266503880968703259318813166511525725465437308568446151296694339433683185084780060391819713246458491114554046574479059428373278481085212313397141899955790883349965386303015677481803238027138353985023823982444519074268527137141761049570595623212490722862074471836024923958854869258585555038424186267819704533299587772113607094276203382710422496634061792929001162497290398215039126982388089510188224451825022067257286707528352920723665664926608112139774526572680264200496272045937441577264180546263164020554494744651277822337284923671320127069861286414259827907713122970723997684743401819505471333299681803016395669637361040327013852536588573024223171859753371385321305370938446441262349897981537874186142670345914530163561230687172124282402944420782060190487996887497431582817147916460187342545813589452059688182836385999028885636236027378443656326886909571537490665859206659262683074276313492478242676797974078530633181637606302756665768016940824769581986303405792399889046059879532939221729802715422202214854612504394918254398916731715630316738587083961875909079246796096127362339382918263950506631971577245789235805706084410213145073996787462949356473982614699969998058487401092383875752066708440143375329665412133153809006972532309477846592571558917637269301380631912593691904666988975539178235668591418878617857463463958901090222154915304407658424906184086805622437842952106510072234646271684739845247281969656014125633025225478046666180068394271343838920121294789801116040718974341477987721227917005470759498430685722591999983984375034499351549535525310343429258815144957379019584554893582449976510367679602225832328446104514627534924246076405918350578996130071300193117146093166902564014181037043332924469040807195268170462351901113606537700286674844171974159939827316001522424820100795035152902503538928120011720354287304902351556295322733589343764235124307068640224748340187327358915354115713495593399717270671329199572702646944735905493771472381398250965682142299192319832967564761346789048446524009159255038562276136307363831811672570604607971925961161284206601115518562326930161929574950768603404952044031325349093899924554402603903073774298740267314059273059112577556017532829713420371112279619850818967365307867935862997886361758063854050162920330187869874933286207093065270189659526320069984156660320673823330242148828446754990348484314403893931876088774185309500444776225244668570671020776405871308609899240980777077523724442962909863463146547424399461800962857279508315890893452436724411731473628317364519313786298623867360137544672754435173528856351209319573934362866159687493183156970551057314446001456567720087905897036825088648257936027658132544552112164241726623923276475017851164371060353223333370658674738361576906664967368108777617487090583797165906608403858544563205270216615166266672182864796922605319852791497490296820130155595919044380601951273736537859754428325469983039193611906887661191320900048605343716245047323831314252280055214104384403255459246515435205296665237397673872340496724451294567461171092677905017080302292348881080896973619185621905290759035716015834092735916140088471987340826882250392958313587447688545553692183439073639240213266258028741354310236683596411244992784547694902369434272295344937035376951904279106764727611180262382557211598775862445917100212935763306596817133004840826464222667922092509520265601544956491754712228404177365441510016665459273847733097278208903941437087529418117161255376456462155822376254684931912735650962774051740733772817894969726816757786035778942269726460311069584425983426218554480303038850500297677655502764085825269595114010478822035148168377327490877261273651336846404548230966017173699703705200496303228183274149348692643747472836426875377242481089857106129603872075403799636756976567596064111621348468600777888105787456029264351190245999198596952278986294316839866985850446961358998220218052952403737457978913991446777555045020535953183390791137655814386422904619339738210691116810893160243296000060969201684977086747124178557241564346696075095859484911703444812582947256061034925147348478979895750833807216933195072965973349980120836428038868590066566576160737224621177541694162008287902328749891089207444541134172297994381226351763027364225062760860869200234502378066902416417523753301334438529029491716840192830942988302065427705151714114713580405986147561085041768844218258307762114411864730418733570581493070798090143617265697710989720144301973316498093845416786209851667978769780254534531198420510172167159024543127135403458944430565252897246633738498356110593143271477320316986191758757783358525986679782636098087932285233144072051931129680378532690229815016368881403395371399072491429130092924818556654844013792649925840783124245231782458275176491938635299610050777223991408387277607624200611415330704563908342458426525634291937480058782030293178838403046255877898010013890807130906689066948016427414799543326456400898000909319024805051382273342785190070352289865154801241521821349046791936754783732488366523760478215379812720398152298527771223710285472112066757608518621642713418753009482282808693280669801932034316566270620935012497597128600291066423374559955538789056541598777730408482507104642500000961167298130863566706989252310386164368966175408362694353410178670689353659437766031570643787301694926050104374444645166029783261445194255632180213894998439326882260857307949790855960747979239790892562321183798530505053704524327652517123600249405805992345870611526965591420997785341865058869184145369377958098500258605431997030707948454800304765630127696731782152471391195900512303284094876815160727600550683954179635106531571292706525677839128916118095256027793891310955849639619887923843818278275796730822974527857673454255005180137243537285614886438099903740873661139611679624328648213966111601215559588253170144636410523581075194236044151831139252185092772341217907578661712755060201315998447274197238756844001328966989802894157573487661875076733020611891400908488984328171074505175338373612040670969447713711861715675182087560985966528595454664738141954845393508337106970904593146601784902386489931024915243226616674479438398313766975677522063889282389031502149917916246688632402697651886993027937628975174796809089947268271210656329051690631458214887352008169205129593957261006601699053982858823012819426362576016992487903964094030477498939383897104090001612341747113165008744582913384176524089077456203798446548325490218888095850247645473141177763542780898674134185507129532093814489628720559266290028317267610236133728850417915812281588067797574752811500992687820124259566355491733658123902590995717756028865677314295889904690442703957253935920433564750542992876888518494299916184514429561400838240738007567262455762770330292681892191730891482202218776071063408163168072696308075146138636058846773521534229501829855245768911867830007409780145282060492147656839622725715744688035135694166067249175599089776676971077557493486734074378271567397968949020734498190847990858629695624445071894374045071482240922607533440509212540102665640478858393200811674930216011498943049547524238778360377069624394273353730590186671697251839847541356337039075030688676942142876107369271460586015504313974128748780588904010271230808860970540985734274840403171990784896152191197562731924743169690059045102411887076777818299302235347543459237659181037537135751540494671399009359088922653784058073366825362128074079502078485083531951021973923259010231885791793706144573666436742674362422636658068259034888101491717219619248455766918828891060940057995369877363457618080927989676729797307024876441185406890041165700413785818331738341380398009470408682691689343017593769895722400590306634414786818227751365919879315761299485750591661438732174657121686954167801981556018492825587352172280552530306856238830200516570295151377262625302855550060734502176917155064805479037881618735834525499112803479629246402669939876600889240818503371477218936165571419151177967019794585702579808694603201533082300116335471216346276979817903640303561907855745080173731543178704731066930831831902566637664238393866065988827124881215092236563825454006985218808363167893892997839208733403662285958899967308727644799247423708089882171949954191837650191794623195581068170952479754519034411831387097275939141412211111145331300710647523070067778461366377574179460555390519064588633001998421835943651568017090538403340580846578497618885407210263531012779215202450743438984717031725377513856908118202017189539768041829120930379488740928148700698689295068544082869245326252977236649559435481025847146826813228688280879513290769509786190646535101331666733817013425711913539438105122397866982607715933517135961310597349018146738090476393168354221221990637644193523760549653335249228853077331650424052437567226422806209585327494661544995954792193218856426305634823912888850620780717775448080219077137450495024425203580141732243403639309827085139438348845607477738706121202533919460575278403718363645881535629444767141110446464115576144497560384638955164019715009577193071660902190393924038144567897011763260304686538603702957849047604024520523760114009257492678768659837891691561815238763466337647857906634731098663267738195139889579764190938413503708312484663404512650483301743574274915692099896549934851644292338322793143336741912418772546184552768524892092003747815797752278864845304583413415641133982878360005559290734504924059567437240056716957274816486618675428064088162294958696766014153611569758370517102064356898918009590788323280139341480748510486433030043070360325823754997451492202547784250947319728289045099544265602977669722262546582557261116884976390240493966057482839749689790875380932834675248213974492546005644450524323249039515273515211105528075471382025386969800740671047371080336129337179889574633513078035861161383093377224030787289056616950208627158468399848657229506180939849583035671882810533301177395284285394872060120137988329903661867959244724791471951882899377681910744001912007062879986881997763399758347918476696104697100305339699702484966575976715362818809176472273837869534398435632975171853875157443149723549504045892083026319448498360732485853041503752115950597808851980204656631926856393009616860183948122861799678818043521331105703533497408775360163581903069127175121320971335866028882979403903782762779784565153819594364394718410479210038148733857769648436645230685274449269972742599782286209303174090599486600887882467874745086840695090477305465683870577992877604481795785980301976496839703940721297503216028914484952017798912888511913659829307514092407238042430443640699203457713817869153376973505423691622434716042186261092298908138209033249939225878145893400218149233240960811642350864890397149612570454007084547373786088058178393528007590901008301882815062939686977989823095135969240204995818627246379809074777571804275029616577398370931336194079101335529668777341826345629068464733946990417117485960371323100451235828326484146453643325472311746916523273003919653374979801673902313782366803041176356007417259466911550856095586608307924733317705441009137508707136404454584052874763091876539888572142468816351814912851972987795680661273768650260098096019095841899301861684256371984395449091124095493614075240052938787790401276860409716687964044711552406735451752445942154020792890649210398618289704908061443069894051635452029412636098060162862231905794095601821275772407183961083881633475250410074036155827822900132808663110936247259353303628483849192601617890726831556454424294686955714207843454740161515342689705418865995673238506738681647723776368886412669314115499092741526255456391311343507344041655851637079332841841943681149782043754530180294126034431601174283288624675443577214097972726158504417438416530985774702591088253063037822650715175515959906012720865226495351087713850533952014635196628731133984344177663700810394344055887048351212654477445137032650315420105479588683520296721577889643608754953281299413768353725111567671756681808696436982716933948215730245694303315683936053480725545456791915959350293497511526884057463222683286269585524706875981342537705124434275389174189850423283316805713175515208318388058944176796477533449235535146089206173695063198221602096409024706968855528882992714758829593688847499138000473894800217834459115097169780362701396459812681914460151387187895307118037454523897495844482960731422484980210002821722349756306623852390102659776910927387154444100706274444981923779840248001528932065069744807501244425436290286471729715237048694089137176236895489276422460520321454865753188461008962556314911906791878237878829998671892492913460831472202572842563764113762228996700345297667222449156794978656789119226197951671521446538740518848093645074727235619143342804289304055503146440708700175959633519562231162433025790472072741323338153293185829717260169576074870875976933198292028577254846568294489053254775041960285680754865139089595510179915292857687305584095536329595087272683268157112867032346800498358163156231477837655302463081660136556305265049651240088545139598793600873776417564152690794054339217353839044736214150376027322014671498711958951171807871517482404733515740775150474837907144224141328608386213347809619487456597963483902004870489364338522976120887350294757540134736525740561095620407194793046213514406237372765677002576435055621934904319813310711885157146317599438952411787219915679286206530816256694336806834724080419530360414174046654169145128095808134033141573094372661629252460910459059568955648123740821569701551833741428815665930721293275615633654117547850497777843036746821810338283201898940574342938371216812337907347361906828302755174791875906334374337541334615454289958236637685792573547778093024852439789526927361243548638391262425419146119520580703959724026640536987353736653072388275325349005366398022631707950340103036499462921880279517749911185400494646637921161159041436706677417774554696677009326870356461511025243101809360106384537586190819604979798865312101717429591743521554390001747340667996764679611380707797957724535293114916308120098218269791006703661965024819988732879094335670344608885357462748103066180595560248411143441343760176426811215024781723750412380735950495484536267048848596283753928609237402443099149502742145583464088109702001158140560608032484378885200653379146905780876893002713723435735576677561554199458793711013666456868667671926704214612239288324796037784315455397463772817282660672373176036732450701902840296491862361592395787061278569758438156841699118791224932803663756830266291208501661938350373684085974636708588929359963831660370280767778286578191977338072189192300222095290577964078245746393792765185886965905347023197832468320810088345817612349601501932482151805869824154855921170702191043575485871935934211057583513212006834180259773483687045341740859140944201747761534127927162825706547103523487368055586072499164943618251067254558547963630025616375953563524720642807343587646674398047520427332292466960183759193883897010788817009443906806126824088481510511257214343338741555722481889466437536071063663826594610004682256487514392530683163730315733177228364886947482593995602190030220997724450103068574630822855878242982472638725737499299100839500187854683340419958420196792743981228876067254393898718325351458191455562688022449581150245763447280403235787692184651991535587649432420560292013087992938166379745534203184837740583060239070055432970139670879433491489323771152380291373148648816141004878520804366901029039469549221090502360756416154218157776730223093216886692272530036011130185890819171638277971528396323498656453098766139612572965720411732275644721864580636931898698153589885056854043076369585570643982616439995381850708648803559309174373868813574067534410316641206793174845702387474525548968713056765241716123390610564384805031902779271181137542999753465118363324959401925088311244263392782257702543566650042176912356392172698660881563702217130337525981406990853505652633782440658250579157592435625002503598709694893667020061069944237022389436358337369542531687849809831507611736552281329788811529925068054378772742578402450588621451665695705256469495005928187430835227956253586315334107707718646935967053323862031289562900155205479187312837033086240095796555209306320709576018544351591475670939951993120451173593603773317631337670640851220515661766397587843937478823339707923872714674404875149905420954905710906686121622171870900150183306168546502051542526491132277571110531949364576380837956798402875182796145684373100558045228726249995734574767700048435853427297880828752861557463135248629689042327203260901852043215486628558956538769099287131572244346872650150804613533425354420306449053250206653788258892720387145658252159927729752334310393294579408050823774574852384293537038232352955945939671764608100152280789599439737683696581715099938816080611372297288924592298670377427241573366167876852975109799625945531269971615948699224815429116057318074577409658501787399274193619976521538639901847159793464440888653396589369560252349402617846702352957166689807029981980963537447580252542830588895393586038044688604112944943591957020207471581451942266587635707156833653670698200448929641843250996057963711774509202910962992131934197604929610937058125783995676814198454104177874537575493685851674332870156347270981166745653427116855567984404047419631799149757560977101237578085573326000272678490693268423295899706820777000544259978811856879096630617356082694848879506214511611623156229997396131992042903399868581514004963583107091370655437829106381475448668305013030875672569696766036109800499205993171639529757655645388203031760475664899020761501738736108782700393214558210370899597127515174484194097934446792117212919718725829665114174183123267177248958939445633479050961859673914130910201499284260550639711227228353087424602983425638397648690654286972928293978836200361456218395665873327336841107449422042835619676009833830679432315355113610714358824730556967603218637167613630497447734607097159432870425412742534926360124726391689182030509258293994162107404595109272950936184655499838154703763588458725330571945362732800399530564949635263862921740985001314075915377846656894203796732476391293165308037064685103961631458976945971497688161826486581864085139713730124824287441107584846193027957308186748351721594937786369066141487990558123599055528986048640866706913982692790834009350915552707315914325595953616448102274750989630233657237496988675505292050925323845222792370072924393668165808050281436618132636544085194732030999340623218435441858014589947786933160783779208873610036757187243738441779258720574768219797679809474378369824526271702494517333682996739227923992278264288090266917234556238238010924950805831141819141931484607771786108370381354819284759408631980644774461857820411805746684880858291619719629815877589445056990774287411739634989580728956698101993977843320228144287984943018007933446680576346386234536752052491227720048554715176016137003563313439830123126417286800966651304374965588850201479228656927112553953597089024751332381081424352328755087769277888145125099040959000993534795953773020504176129623035770214228099615719708396503172170439147011466214985715767201222622779502056058214551094444211700694377532223229475902918585489805506529838384724072324490396890955717154453041345094458289791161989879434691042763103149785026442942979074539199503506220671268335109167785360588598808123137315525622189497116354433249138174152349864843944265826507445658499448113137540650984442282938515405279896091873691424408587190335782607728028507040362318033126506035052293911654091946786759739995365542256603745238096211312751763322525281776337819207033796245606125611921941042698985593979984986164240728925756455194315425833050677418266829722133886211910275386823139514378399844257444895403606866033343903879060004523462958211244954933553730282631249017579971516591934240899978002739764714887764844733179841577721429615206517341816340692890851318035871199537616798654796639419502847886829307310484352121388084392253942096813097922557586945041677141063068217349233823980285694292537433401887257440495255042143797294269272965548289700165670201805550407945240264188027356970186214572024291004410297307176983769429786763608673633562212811575618748987564865859375853977540043121540044868614386050672483174443065523390025669341813647226652676725355395228561772979797348441570888785987041742764473576012374742391425150469162158738843366692041176514233147043097205321009813645110784750203569385848120089041472142439246039233214639289504866868791373986218389867207467004402154831006536404166696688137578487223656360395804734148729244485110368055169147469302237448194754052343049726039329762982757310589833447377450441224892209033281304026453778503352073161521982901519103333539562017116383086478439315277831963244735526793334830237541808206220203757802980201082515905612385503727169569870397440129924533847486811077467226996887044494154915297887964232147762798052625416743481335942616786400620911794269979430066103156641951365449877166414032653997909818639649344064594173020625956774137624136449607456691242053263778546266325153118073263387726594212544047843207734477343005912096996827648123050342962509685348698511274257539967179140225848652641036383528280695287905384146436214367304482378996479184273357337335874919057704543533194740770555763334338596417628658196475886014751016736692227856266517639535854594548729693400081390204173427359651503605487041092560028360623697330124939304815641758959217986311063806344291496316091289253308621127971781184767010256322375393573529607965050345462373419230538927074918646382699758060906084086595368917911938903849257804222556071272581610040749432636411665314952610611092563587006637877179052108888571075608915422508723585550145546934586859960175305360060239639696007607789571469259225760826955521934539840218717960356333581198194436905081780347133369071627476521309776545931233495511774617962248121978267350034052041169564263292273795047061411336094830784931649675466826793216363460401926155130669953345284214240544729178856030534196944817824364713716500385622130903541155685033007223447034406051188685034913735921621892150612622836070767573238888799322364053054927307380332182510102755104895493415462999258396921914184107939493442075035732303157580353195103302337160699636688698186043478361090977940903598953820094109518612152019427617496406806827178698845475627021251283378649360061809940869959695069668858849385383415438902031951486735814833477107216437265193921233934880868582165089938236434803611679192550619678891784689423290091998665308032593054726577644017104050398801569721454604138702881842683081955916235101615601794470848212233510963249201983647762393549986310631115385470939080837440380256491391259528457261132693125928923491747955567245459810142101928173588737508665114442295505686970474195720969783249201305639870042783937205898751523142852005994555388764516467894595311569555906416710397966445411163967857215140571527477678283113441429529443363889974593348670869309686683552026503053249547077183009985099886117670101897603833233907224327319357409593352903826391926742299594517627112193427674406081195417442165013870954285736244392715300944732834040298453043843835023969290720547350898336638768838012911673330067514921265486762568357094742011494902743650844342213551187110398208769000644990324651002116681109515695324813502819403580320005584053893887853698864420567821736934430248072824279881451919572035395480457391175800758130737942183633894088405844438665073377936159211594124987612653977646897668707296630689206989927835022753186411632000423247126576473681543217680288510051122992614657389339555606337956562147918155972373298379241742886209578506969208717835699578598296443129162047678604854111128112697802017017259820326677573987497491241564638937390369395539940946120381964444675686551567200027752444807588910567015866442160539997539509742848263422864659961400298401657040047256987576380194956030713584401818628535380569771605419987921504458266921132449847168646884510631049906170464875441435381327251278434531350328292941809918682216296087866957836535988272907527061487934115997046396881435091876396134784955371507099532434980676404214554933795792861172020882629360044291589858409726101551898137651438749762750245294977328562510579762558043149545926340607800343643963843946292448687419867362685780297138792422381975358916643190158483307094738971858894647449614184483345880998696039865822174332738359928218746809385835306980933569890471563925229664831287723336489099932086901485153141240585261334116219944207004471343519514935399693850104592276576062086595661716637110068326760138735073366938430275486139693182334903214490780535989301004680251139009138012175502477524274080265550412142425599930924134474355730247553288020536104298250391825276203242837068470161512461536760303779167889136858533378757958416378811754069453307092777640318259737993642675307137486172102387103425776319180443855008466069823847050382844029684386361673865509927473353627239482294210559766362386916594195917602773498669242595330020516198053881774255267291989252863324403551811563602572757699594977400934129034759800566058249915329618477838747623104058110500248582468289454819795296653409225377733762364261063711032685412321148407624502930940004975948651787236835276956232334386270171941736317836928740790395022556527323417637174099578807365088535143243456743939137633355024223591425886882471979910313214400916534842779681157428323261860514805637245890849813430333475213370058188300261474043517749419202706233761956900230172520222100677481603331518463202700775129708908986736014131401574024685818033407441001138886847416929198350341556759655919660559660591294110218419605927488149775924769650447454743802350577285453241494590856577550606862346364911198358180494025279804861939249268265412961322031836187244223964532184753408834095373630542544152096517998817247246171259636416477233438535043473819178158867339062488128450569676883154351601009863259309500373902385260574633109728293654857999537925368196844511527832177393727318793821040707982480365280391597587434176726891120664062351132396904915182096349540656114113404144847967658229793982350542724497750514705126805405090133175204784400629943368209787029902209622150941768383049530323135877610449804892315795853590286988782006238480782876676692954491307905768664094702485853919470503901472666965477396176710742629027130917133745291816626702156441346475241273106104499114816259838585033701816130231439788850513203037363296560177169496745374398407206344965104881708117099592885273703830502824103647941553830620242903520818978462128629001853714319263704865335983277945920264284136459289696189665900408964298361608364924402269508994192568248392527438909488256907404363163700391165473746595371624330505624712775456959618296003197440418536117566279209782599190997992703203922927409868831245636171709029483396978466750950888017171210870066110645496961412848702045107349318188905610515929966911864543877075873294831312675027605783347189082541374611932401676484233325198628699822389479645897868445672257276045889451596784594954478364254511323169252139823750441985617899416764465765068022246678047963062144680723365991598867497134810460704624292155043664873957983829554626826483219414969289247193697068784701444877131287904427511740549581465267306232938728631238280630008754729329969720372425687328737915008734689257294321730226993801597198722599837285753742423437254791006773049266466968192943231582477189511222375245330185002827307820909499701802695386988727845479141287812718138577754546092155061298636015587142707389669746349359746704242702900330089092531678598770358468210447480908542975196426604099611949681761169071784776999636302260689351813999361842832312584237767102897584254155993182263552528936598561048167709701597012569171101557466166907874792946112386566638262041066416563287368899758859724158152532643175241642985855258185473332299856841708559887166056705856294691426403874302127540812510671181927660956308677148007611085520834295303135250204194703176408450564936024575573660292299062174498452922925340836949319429017870005572480753720828854492971294189521107496640155002211430819801214360119559280778170182366784967927485009529434226219632881928858131473759863598863227715131706513361346436599153132539877054965116750596651789714956993811139199978896246482483752247202393868995608259808158270619550437836392758363003199015069602955235613383300024243044947355992670922260651208924698172719308421261399124023743944593441081491059435507776075905623673204904958711187926570269111520920651551340121181455455322082370524035043524025943280982662874693359289680614055259172362680761229063932069716535525461200008148085327486641624235931380160826904160027764958598441763779317426776957750467833129928142413303704556633964680627617053378992973301585542031513646025897306893317840298699031619564037401354215917526235489547710908976534580565023937695168917453684965216648907324226762380405214121320418998142535326586871579500410302374928992543724588120297563253221187935446723207513276519634595656970362243009195778658269292090906535866424857586385794660037714749333975512727450400446828320629317711315980294220856324722035311748596789099580247735966119673485375284349440622015409775257306060061678004830339541495075689545894489008425092874292917754363960763275440599168712456648261182500022241507573971464767303914929395837823388455687271169317415913351930102467644437401673826280519199164991165222621332591972451671028194649798933267132424586586641476828442467595367218699389279630112613377095779454630072811889812014960416475835116711827364252140706766648914929277455797961061506754450486130683562645982714785307899384630047660925052120417222884984132852558035036712539579420952298821602726960685004228305590916373763626465730022774197685105706881655574630215139800832230921997516934981540224679470149435166026074680465758590257239497018429775422379149743993638374312249984494650341418982179370196503080231830082331880013841457617447300352875139771461288291679915125644421702793696218573471364173675128347018397377156846554881041834083574549752686163496410721154500905798708529431324308562432027727047807996447996415655083659474552449862905663598642275053907352380291638707998543846761694431819589928405373313467585144249748527599128354648501277022162865998950962570070684071604507978288505996527168183769420320734212403170026811015557240161130347622523268913362694032172228528672100394438853525908558337229816201817650784429578764882475036930043475191683923097149688075787997626599654514029546027716258591271524274946079718652166224610262597216685507972163087734444359807031780963700372403034254958715071482775142342822206502719164327613347562866841819724861155987714735821355338268020165850040819098051651213676421094942853578130355438486839440373494388703284309033439971245447539492364261602519357447543844081728165901228057589151917437314159218652401422129828667259387451802552831960713416976844750773268406650116853599672742547920456006918786358198549469931762488146044715511785359140699617257999571281180014621666513394377576264946106373745358131221018706380040037075354877735141436889467837324478988837288519638320955608820839825782289596439407623715898993220165954932138095544996557813167036609880679676778740829347507124948907573318359599398345850943946866545823986437652619054592788508067748926270732582545486047983753233110440624157419642937625871950885486220658419853124517291974415774147922234818106606607074908597871430483872736822241182130040959910991990323899539811398721116239206082308739569837938362139442424626923213256400446846708476056122124949406884729729059706562351628925782067127327161783988466701426704822191170776737435781395962830507767812701198794794562412733267740248846539326480976186891991023748397145168630853965315718752598540791916453177677113900868418192824635075088023745340795072271207566644359131961965164441167888141404837091006791354828479216944256671741027289088739795269553239221273313523502881697852386201406756255451898359069225560929318343985596251634806440802807136527683382944389395019548223056252387519507406087952690374752864980768950512633700393184452627326365892444941446255060328887281172997517381556221022436755217038957309621772862740050561939020127829061739679667570006691226040884412984000449142937628514933954707793440524750767579177209526280625479079301806556203083060387285087228797181424851005374298654403023101557013617936176048740976648805595973177908917694709547438217240500006276741104600095444747193054991475471208963562379073026952042623822405369712005231752035975274510474949250984908420085408880383316296774628228642250923284092716299698400205601408191100592063268924764823908266816447951669432872474612068454571005604833634661830436246026793369118910637654593883079743266335599546419201957316775423026334564718130526334455400191076004261863269456975093529541090463969288546761138401013416743488552438579960752130698716353460668242294603953882982002911491562001306153025901094031807593478476728530220591786042446849406850474070217248522035162055730961954214738389850142116605206068439647015941296745708007419379053037949065639423018138472427068537169431448901587912141536642342141556325832829258047464969672140125426277412544861886285393503021288532918916169595578371534270739045229300096227804440227199695994499186565600999877133184552910758680504825510222535118545208874868768932007009078041467329331912031759576763989355611830706768840368427198962494851813566608922332797498985070615291107114567535926672313574260233950017282686891371533577761037780707070585887013836647474615253920024153899353389128415115845244638210903014226239419183663515014023408471809063581542420341166130944819158211896956600362770443360848038318922016954691028817223821040422637586073050738929020324982338086289620485701378101177302740584014723918964286795921722678513058875045318990930764890776591794678203873697638901910141252754380879769281633985985286438499176651593653295022281619342453274374298987521060233817615916086579346268478987490924735019770891889798650258194570123037965206706568814052221642076892660269152704685852796652942504085032649570683194331097517196786490975970585983711457428159520798842697070444796274627891141513465489662648362009570411806648652215127637915831787287986808050482428191064648145457813687140662651824580856761360755953513585493480399307598548925773554682547378084016888493089255613059815477769029159600690007691722916237326644390999814453144031925794567242718557098795160738589411737812885310521422274687944954306357638310740201865677930115441904167180561673176216361597184379984872956458206703584011485620462328651935975010668625712585321780537605552358876309035405630166863051384116011568997052434900861157778481566161303857629774567123454122872922528989530083807120302684719177450326191759172883980370735742187527355516004049055005928703945478614649435182860940206837595650470464709802601297970726828614263490269331202157574203055673161173817293363963164283336489175823691557906859873997374743592931346939450055835572831293697910693293781960396706516883584507171379669767561148659457585881411943547750904267294418772330105787821722766842798190532531420088901963181695267327053454337333927753198219784552577363520438334788209394379840285719001304461067917373853823736319337797826951066486191601698544272563880166983823352565551461438844716285086743439964817761596990970201558185825501170445506983256782474899766255326856035238095819500740750194132996393357219799609449611800906290049069347104369176873826148337617532805048634028588873706461945263180756777053725648330377811450777520086876559519047280820295583165004117781807110625901156664762714006743978464109890856181606642282740844142937657154593122064440460120835456049871909600416926455125479718148085036537029815392995251281292452549040187123002225792062699452007160405035063890637890356858981403332534031015339446100182640523347385233358977462540117281844340026004053750457525510495585535647159224134094544258134541887977331641069114054320218212382973826105932837773948821871796555160692464523719466695525022659700743737580195489054889710440648121030800133549678174030123295052016111725123848475336588169884107114104423673284469846869405563739549348146097817565061948337022172361074952744402279824386631272934767923119271417794163955096609181222433370560738361459466701751249365550102501626885094703648257763786140862940103797626107855405893477330693178575717901687368783919980016702794708214897639237472939478591835273484564810070231903454244722371671460129612650876012580829905363789476418541225306424047674066116015879798401414867939522346996326265341522085609497707794653047945135836797951885168062386041735151968201730165288987055618255831303923120463495023379452504245465513311659855358359312998317209632637521189306628105218633928738207506269120567146217827427873222032084618361672972155510006775413499787981883760054957732996086490172431685696026830802051856337906791331998883884583321661025663821447786547618074279067786153873322688375635361164802531721055510751980645228307764904587454951771218505781812494189276882843434852142103220378318972568217372954851414606545176708249892520628206509219856103010464867342952770529644292422367289449051137077174852743196074977210949924392767078252235138183971256213176086957996098650263787311670870119344749847828555387198808766749624591704342561300916327942364033439823452078139475962001787045447723103686890277588486956889222259502759492795920546716721593030744067320895259861207383722352484334022118820827890182653715875864616016779393756591747580283474048381786952763248501367737411948051306962214042690516718135769189970865901732544249134665929416506134690522280432656415648404032709907598280644210361630409601877756705915241298985266141517532966840162942707209104860235170444656585423500249110711297659983784787689733260311359277217549797036606544569197229731375631859451696615608834247585313525385693864551525098216798940862822556412761743008890942731740806347889495408112665487611951093521832993923453912396394366320777837791103675868235266689951764954398896114448313748666964955917177171400142997555172755727895969876253828121288028361555075156550970119743600571307034496891363753818856419150295894378293455413852486034677110425940638894664112380420974209725739340424627552230558014835101104377186989651711287862221053491761221757043424023504605959771640157736135924574012326812961093133729222454607568965854555324495511176863853157807353520856229990640526042908537832590476047156520540520802233372658447607980765262925405806206885316437556670754064466588552712963576212498089314845467385921612492789155385010676128389038718125224343925355223018058025776946656014287635080064712855204470148992928419648960987409114131663456511437786036981811945911106946175345492521049367417952819218920472583841002125689432927679616365570205600130153272676816742486089387725639821118329672237655942825111235474425576026043464375024237676739460771145968038422441279395015772335498649573245481469787679599579654031768713650871477184749364869195734864500277979483529119368242176171385835605404379343591310934926328236219565628209641329532555621603363685341457688326670367644986004451166867295902038346351500857057843862107302641191097889809830742922791283393459304228966072611375607948752547611595354252708843664581167785209557149449768331016700296413596690905172289653324053747036324671300454290961825368595914419765849024085714772883030697417493901827334466855061350001411018580112034523187759649252891090060714698794204315237422360876443732959832885084034031858771798554321154649809626393814997692907081852195992776291301941867722738368352443849484423123995253647465538376905824473161785601395914350317373758418235838044447648061440181624593481686759522941318129611887542672291004031276153434416338521569849990803135194644806302806199291495296869529679010441570278225622253503415443287107131547862865071753603484493662767840811468046804153723522135157058218111961526312108059170929262863905819925017599262003561635796533383700666611516542081080725025304236534963194764686973936358600715674884146625621859511497165303785615027949201514905951211911220152670605821658204901922433112780618110585563594058551629049097280806791963314573122879062908264192948367050821529629344914225431906685790481508396146989085793601351795091313798843706296127390340323320997457123196848463573150984850312522633824931144983464897105131627352868042875641955529147627841416750476608675175153315044509351345955639745392646396482869807291073586279135210609046830707517310937337690415882074731091594880783751573156081275130973367317330578764449784030222861100123305026783772894289491146135823170615117509436521924705908473770142888293752998238630741181209488979353591214444603330832601823889250355499582080268887381540208342711226382885905144110963581631816253101960679087762882679779436549637972408076829783414288026373650071920488777117692723409979736522705392222849690508186382912250690227928314437945860404376649986015135185344571364321972961749215896701652238849830532745988383158273335320714757102267829668252642296956800587201554959102162288658874034045082706782051464861621561282795590922066538623446617464641600133934889393823364971832625883894841220790340420218298580335757851365725325792182261667767854157345176368108193360409720286699715826884290084029098036596048453270507370059706814651601910130932428348608131267473610223024048340102671609667513560698272588980984414650094834923597813354823241817761757591218953115911029968508004613732807785359477703757059147804712613895046431009751615694616114525986199232535731383530585936642793777249358077780004176689888902503860467224869053467392677723249561982410993182176353732837703064260812040072122157755302851912659879367236536883023334127661634121518678778106883906556586014572084485291331345249247216206504354219481056760434111344339312233711343583213731632207406922415370395290779060991038920467760050257149680272883392801982453093587438906595160098538427975157209598112412406342267684649394495038211494657372535885696502924016200819068168241810230135142502312873878657532045664093563840350442609720426962602213528608785187123967157603733222401130812795810111580692720752926359175591022952062280259103519050965710686108019703253266399050936827259534620638944653885786718640905570331682024227705183199310211698387360333748246924109669774766332664065518738095388668770260598300185332623445761408214057063258182004585482890146756603693763176896856062727872843437036827017009470974193201716661431133012041957563931728387246283304023908465151517901639930670015943002545314934597514139019705786150141213764924217041067198017838960117402455300013497987775980239290301730452570703390540912954417263297680651331775222265850226882842953084507725498683348083615881655838789468264982077953437278285735249329818800154663118551087133299289632931423093937663121220548286192602084929659755681305160755655757534496380474336013748017500116487670457663961744203577826276418235525491625956551880608685333562878758006093206933881854771016308335657185245416940821815635332611028237130836462763284072641393401555488774198179980528658489314060931678958685126716433920913588006076293178189630935923306351441006576122819297806982053601402295268836994649654473428283737771938769996025508129997103893474886228266881881314941080734664191315530529740694652841231268700572509725732128492135965668364537961656649828877783510707003123299665129306502017904788559950192827886103210193060085480846153749155682348516040882732279696828514581650510158579694914174068793136812284696337309241743471182034268585046779501299695184547753744221735714095647273093312268504241162946070055915733230355551854863513643572361538592759013341976697242883723653689448280129414596192335570518074347655274764691895007488369258330539134171413279614997976813978256115510385891307813000484237135433725341746521548263983459177943673916911757996379590025481861515218138538629238706673327784844783427034929919346063550894983870174940968516081938734207350114261804252703395969546997375095877018793307270029545900419307996307821116849433303084595088954220742945495468708185968761617031963000035092535492443480791916152055412017008843564666534008628954696659844591836209243476578703533279930767794892042396624096040599234054875354979399259249626792124573707437369290809569600875264862255010117966836934324566807810428889496477299799152055481683569130683644537407235280613623511794972610338435482244262717395155754932830759266571796970691957282280296478005563026862181365315370043514331768690078812220562046712227555894849701449454304355675808953316441886687912362963104225434715088034282399373640208889090613571530086197149879230439384799956635996614467700318161970073202596743160351326061189994365645957927228953337437465457957897259430511014654181478524978955579393568988410304928381811510270313308642406168101396860951507230780099399172624751075465079000555186446717392298300510476351418897662866753242542136374252634741599056471110555040243349962139625042127733653575601486490162722654861722648369225160694200994998849684815582194932381673719629297256634413900296995770221077108067348906642730930000668547822450732577624036709943336889165906180693770593475352726238947305773544967197904318214666351248000013028622240957124571234262500056489721103614561189371760173712969262453514681174661016493617160703848084223580131203189964734150323626140741523086822517768044296643913899829530008314732653430954220243813097468187229563395468421608884210318614760005295129865738658748970124444378376107716705438602780513981548668128560310198052065710283855157409944219914690709089212840970513288965657097838610665992287012782947934180085169788375064176635030619110636753046254293653349204614641799017474446214324401970530218995161773197607754753827625949671052732032933668311077439081120252650058556466071045515574066709800406582121691017117770671593435424204718494615482264872062286463855943168734614129684815337232023581311298485692714069279961522556188422560257356595065038334813426833207987397363809566061109456257430919014661269098440353394110117484893906109413723847241893032564344286320262775886403592260304328643005259641002298414561074947571504554556332582124748828451027781453531856452402803734092769653510205237218830590931967096907608817666601280170033369522536089501447806957477256294155724537833726158471828326779047423623905737726035305258903328305916113830637612183823016740749446189532197731359377812640032458792359803895523302942593697604281947029795472865660775561065311383129222279947522344824691738333137002367323760747427425401313255098152792757889049233872417699536135829264619916902641425854631537821802241686717468289281301143394143317220842811350863718303509041909038994031786612494879580354495398769433586194848058756910766799347252918401292494104277963810529481079610920502600618155749107548589920829391778250528065576788040970753120481710133246060841893713355460004919669392249971190843647633914024348932631496736230715294839136267838886533898164357474198211437106205012724452566073577428787798263712221171839748275472637971073832856101454836272460484537493915834814318848457301428630773895920912400761886587614052398098092972262873895509946055254729068611637282119728979693372068797614711100064397912192665177783453933139797757889562855785763910386631958435049906264809411131090071951846528511234189119018519258412942269069830909014177070623243506614625953659189880657209526893019156187856101863359462391577146705525237346478948215636107118462974477918641341168851876492077925923104543726376128505188619266459212284559521431352602313533709722041433206599249603622650893308745754924674536665224297454501760087294778527699683921688387240102891850405843223670936220946668224154227820751205401311903190028781443742060855119952043712160317283928319502377354629827501652578290508145692219083968949200208529705889855041550883738769911519598705842784418197274194934186830772864130706726766316546761217224116389382345434778274805495688917179602084230086713796762302484455779755623006541898426077237834210289800269552321619700411507731235244830831143127887115876887240252330719576519228070649615485885407517548497867977925657860427597580242428728425627089284596065960464468461969195317523657287963636093494884617569166889873866366902767390970820544421030123759214039164594602396195483388231127385541137626973639251169707242866068440511846425606190900219632944861362844972464854510170107801668837325083235790106165071050322896548004217452555914586537994190328476757254528242708098193135136937945152149870760732675942204557242191278511551436751562660213726994962246325440151079395775784856943049032226994801720974528203513774311816116479184965988230132116132629636321692098729234607082574563061214201511135245167406261894759460603105338288926135356005097479640900860723058509340898887957927263113165496638280891311592268140706437797112234584399139117696763734132667309672674352012677146815849532195766074586261150567459932646813961223343738191188823495377280619627292675818766209484506315169548584324660072747912080543303914942686595570875956207939035641600372065524239159521853675327755045621727838311450288371838906640131666741781228254438781506533322193182814349710630404750379556862272509495558550259382853037867434583346495538007546885705036994671768482098346731288446595964984579840170645540812531433840893905779492502880312137257583103547143638522701717923671403616204374900004350401162304451819643506502644028538153673802168801782552492470139569193795130133721367209215903040867403246525664807778185571590682239257481377431588313920701262927578169039505271981989301217834816700948434386329172764812966143516369608759593263486552662204304137036476648113966152838851644491307755091851796522004455462057974083298839140284897488073459733538842800037617968393733500131488072296708284425273625799681871227770495170978668122048963185980438454129987981285387694612197349695492460935945945992561969143279481824256130179277281716108299017471379133244931189271898348026743177403164629484553285016161879115529186783504206750032119989482340472614162318442193766945846713548273377797119295076275217120031124448676178984262629229294710059371500889993401214848843542401569229775508419139146491421426900676993479435662163195443139924860937001050740013448588805342592350589260174671781899960538889361946270820435382512213908517558858334281159804476996026037579436812750355737291660704208480117618979197434397284737210296305186713264289102581521945724394657527206787220496454969033534642978015933601205443829686436517386825626522562166105518478752919025026063329528222563080422628830066703949753168622348108270340435735093511502950444641867588853992869705501602693462057669588938169893592884955807667976691770642039581197694258072084852442377714414202629786663266145750438767676749806435061767741051889657358281846119704399170132351909833991387771505388260386661811336992067994695822339087307329966853646109348155970454954512592856419720059290475063865905673558847021208881669574261993877843292251807105566147415558763251985738632626616162606659683784782382321535870221361674232661442664030165470993292741706252565898753277082600875875741000858102996298659656398244414872145858783310801734270980094161065641112541668881198527364954207455508228172029103127634387701605828039066094026909396023803625182845199855505429318498185056266523037812046128512492658687581979732930374116829761400084821176706637015872852744649403739481887427510204977651235165487233185664221047188071684899289279446056761802784585616533690608647762278001047440581849082963092386021320174745728886177549044303993210974063632403270806440266668051088228309288603389769441294453953255472171162599170946920954947982870968001617382756596812729738050843321888758801551197901287717133838014509400646883260386818444058655017838526055870642796910144228112192703402025792357492849078394051544792749118689709251073688948353978339505613990936316110333759168404882167386399223736180139733837879237677973776510305039760912772271125543038418167349542261405517675265406963425183356998468080828136789964677834534579220123553547016436420856176659093519748917490450444380063067892448396749882052364670283023012585362571203863937221891605089776463398433843470330192712909701848031125356107474134500935580487251302260230813536766820837163921319565267477450268393471133327537206564592344855306273726381178899326106872868150521126479482419144775756332520331294774451292337324057761115187748547883056051500379813347142433393459154801989283513843959930738689962197672140040480782400128315843971112331873086738128632582018659464054389282160502306759100919793284745283527823980825495075338069443498182334550564712918053447873158341386271449494614029458926067406169009958999022700959071965058836684880633639440788350658395567604204237507623727993860051128196367538365883870899804286307317569218929320516870442920126130502086109908305615131428359307653900277172319086730450237677321201142530380074750890953495358096332806297727945677373538115402962605374680432131736969237286035316635711738458420741432970483555548874085272096022901548463355083924400360224173991717163245822232787192904608162092667200838172855297071247628068804354524008516706879188316389778137741030865267020042042268949053250283851039526745498331596182800581688390088408411152551246271460351046330140978480495393716923330804535022385122839711871379276006967180289420166813861838711221291756396661027727454830313545424916969581564455632285253040589421858469323175317676770349773572050944599331902955730144027671187780634822025643615107600673475894394612649808405477808893430451391950466086965243198135890024968653641167388322006391725095804100750619173851772927531566206721485998323243408719147718849458086410512716528404530499787582174396314675839903858627900199209518886741007219890168195569534442725204444233497601799924680641872995100634883182110990810469922927580385216532395899228108798529855317161370373482901549397321795189609252721617908125970940820685055227983751906926704775228029094629374855544213793333888384867530955557969771304467212058001702117887038222856464205186149753590269028223041571807148185886158471671729205498499381588183553852318415820681109111785162399455261386647023112201589034113874745059942483055455143768499699635614915494134571063376796668184160355055099092287279330953780976701612210200189655608748801586228029847583374355656712322244638456869563331686780797473589138222036480346333157028039511593163052849821006965918799300487381097986451726674034198312984056453112430134374183748918004487587238133467157934596737683242511749345886124700680076870659942812560571304856850357642794995841395650733925335183580010155230139658075344541789076204464130213004933393446399371888695810782037803205249053281278357033876746673461014158030959458083638203270604495323209998777832429185343316055155297858714992710950639866706848029730249398743596574913152608300075413105401214475218242853727495620632833243983300969890153084481168148106145238721792818079291180118585037250585139912495164671918415605082231435614097655776642170708355237410267116637752780142055241741093099597867430631052554202431911691532314862342961141498916910248616476475718191861700376388424159508566570413035646348481054509347221955643620629814119704092774508027662862316694385475492749459174422585428351657087003970011506655971377688476616422493480534187284364645515205474460221974789182379313671411753215076900432333501899608069171169885700050198518352488801148631894251454222468989859898805108450937757607765376491654083599314163749431787870746941011679367006313291149756470096647280400446854894098299713855440362982232107818216044702076076094145110563615876374526300417021440678064409163515587946587935820344647174706406236832010654510545234315761747960726851688385905367782910144598614299988960180409950820772464963561638188569851031716876488299659817748747738432253329028672140520638155300848135749842780920157096172481647875318476479395340423455355580891301253320719554123815581111220879658140140436988747526136326247722064407479848045145820747216278945129902133356224512072938611773086986674635865421808403668397871983553363722143261810176315170101420534816132703765288280258607879669860336318081537318138415090283278574084751361003445087566096779199541589116738323527102139277992195056266553492910651535586363648351239367804569086374781324190773360273499873840945930662137722248435496384435258693759941914969231667157742403873093692192050272258574592234001209542238049778695751937410843866128085320174287362518051619307383634831165147773600538098906477428488317733690912157011835969679009812551911901491748199973001055068523440505021475295797720771803553529303719414987358407838861845192239382508911209195959169234528251255645724561154608090389286488586468190653485077030228810431018390576594062821760740250244661892656117158063930321043018795561361147922016674894324529831023647922813217039673654071626673614420950694840308071370085163276261770993057299419356583338278766258631765132298915659276589896269670975963630913827454671343407178870640854364433981090368631808408178178984473051065458469078402354276378673853712884266099851258013891261341842797490099399951758737499957184922344465881475864676676368329567837864593055928637502966354417872270581440228200171768154272336529634376757779239522287475603301323641417995312760688474511562770017160209845751244214254099368664979226818496743236553907576662292364228883509400446841818699937684007725149904464613843037450848196475404266432119930637633544547487000246417102360808232019331189664213700022054950807765126268986620949971726234275463349721129673390776097338990564674559444513414216985181568116528128984933171937338922019229870206017149189792699104848953758665281726302976275717670414050596420999744625830616951113332056366212303772688060648866978995401011724439917388098100669302518140651995329197100854763643723796127583909548151908925636265288475189040934525198460004727533853544126284429718100848101246198817711231620190590356197710586686340726354517599315851210812214089960613165739993559474591108875533290485992868261738973463835799110486541214505116270607777429698565979855908196803643085958530743604131103040944240506022292762286192310063806682697185357978921009368951318112703695532003603416684715965236329999180881726773488974760824583081736641002149116689871426454866969714860947019268739789585762309002255760976055864353313219927631408546879551969137864899684994795569907355859733593078329390785413613949848068390434118801153428364159986028019097163273158813078258268599930194820315640553309292676759831363060896486797910031926564233975252113263429575456707683475164912425735704443755476899430676881673810262883320311899139274432859003547033124572752241765444025340805018976642184765710559853755767835545320864968575162527991844340042728635186522838745039320059903112124678128118433445213239223076686507830886747496329782275258884294054863717354658372399237495488982070914219348867497029029619813506002761775763305837523484430276210212151107569282050760847303055933709124187490814959638180080443497622687835981235150798529681936029727475494000106695853633305067403939580564445175997516267555564585664561808271661361193603951210077011218005642393669132025369623039652929773953509252334407543550499758091107191496505583611775489600490119163834612813593937006823625254063546739947561689880340710232940227726482587313143012341852689763802171770395384846876030702881757624716436365300599738605656263564559475882997081941941613175532908471006310537212843581282243324677377612445856230743113653027234929201702942293619652066583878032769080534567025409696293599885152962722733052287206786972095869322335050890786460057596724693716680263134685707599222339779570126864438106256308573237544473446310680359309723638629901476401566971476394045378362807804786044680216717955855434313348601894418355583205846202873203335234386820911649348183994043002105340431033278254127635204833588125780459800929836536595713961068164121449917536530496601872963745779670548015537163369665403058782894764822334541099546659303149989788829211728703828507618503299264758035874490007990256914266975817419477820734406624205718237242107730343573514893692693957763197695581119451811327544936077120958425716482601866030684483350113139706695665107612461678372693369475776799267245524659972517854753535715129392043754266982652150052216534292618281127510764974698591067036856739600955437889259721893554062473158928099656851260968019271112115988315686364259926298367949031599735348548042082961475728264405592495398056256852007998881017505867224159728321618456714256967935037430577844168099602060526942866336593067295979075530427856861491508027283290928497555269351690646450662534485772850659937472467968301104118705271216523515309743014192551410241270278519871641409529302047515356953158321792689884317394739226807930642754977842440683090972972033016394232536057653606950309002554073003788674076686388054103709598333417142927672740700726192857837438016296539753345325634614381655570967621159522031185581510993867299676046080608960442304635674606717816142720928553734640679401067537498740217233857333371866921131705197912076815926607438981141899680657265795279090140317923390283958602023050816795300978915504625758727792900870851429545540042060402858715982316063156081676222534875890845307095903490029426014755982514664042793433872968766342386431202245192741515508502194567836671473153152278574026216377610644397362774095365359809528261007065418213868073301549892833887180497596000984143061973420333494749260478539356173223935417525830417415719273057451740594519585715318483899240727155884667538339907421602807130527705559141977888150530744421133662337754285749154862529781073886975972818404429991246029504915859798459011107683073764022154726320777745187815184427922891012181735286556771188278788571611460787009942315064072121080299334990576709733480194484359307441297685439916563975909233796861511252187742747489998602812504936410579271445374151134846606497902082899402208653631236912167934026737468627630051741517357157278725493439870484924373383513880353063586743325746094945124115728809166616408063705359678030297078427400647822161335897370654792792480725723013296706692971293747141031723738629233583539340959864051209879895142861412820968102028061240743029903329542935461740429552001515997821729697372790172055118946616531332725934318097123222290886513846251641877764166043559111129896212968779474315993045648752060180232132282134679029878756954846117557036406744496147549471277601988666773762399012325770906339332982830890469324766029303671805176096553029867693308728311417633793633533148307950105148428774879355039123292921979107861839219883265633562265181791405100293448249394172295562023821148745726418923091770722689820485378335181603570855613255485969592774805163656192927930679941608383529243183924086619781396449776119001502887538581428359294514592626159348567583886606273840351724206109147300588257113415891183048867597099977996093382280709571949962441839708893470648697050811925983119716364688854206936219180014370949073365572511487565169238323723361709229334531403670988778504180455838175493822808503038788997034645841162458332437374845977415733276904982289581094600853698075342765706817684240993576512340648693485291480255826808363289056401580456868153729319397700263236551321765497455998890676866667348906441490218307295702731986391898236827931148112537323108866068887054605029314511167325615253352920892755546568764757714069886779266655281131943166606449610298602428360753207434738980808144637494829333232506506495129319827915337265291085372296220365284121434202446044528883473512352420455290852451426554737082134220984229591676353657107158267064234138192179000412456522636991037455133113996739351144856133401019447078066025966630210708086045501647242996462151595920466992531428150317587754645569395544130244998793373073514605194013610268094499413255841785675823427583585638520546536027219241883676063302207103487025689624962816776956700686608028923705668878455206249875704590993626859386357100195853558859717728514602007469046349764122978716169377368432002020468199967127051830422915788276296008303469505086802160942825911877564199744558710308406306738787461192250974277526203801945290943780854740131720186527524721020889822480821419572863878627851492399477402379977802927535761087618255538875943828476182791879214476632768499662634685670302668614125938278194051806537129014015249505722260999542947306913550454330709748493450267675845141088514268127005651743284086625208841130629802265436222777051659747410628965022934543730339875352415239443833169204479135843667430555885429878419088264803160218764039022525546876320572561180096407004568167503052877115705037738340054938300715450240318885445995986446985718724553110928376739578163812360620005736653158385123062718770194144969121500754775484708342159331427563905193600888776935650032004625874349920719165362918141903910315301199553068845506857513309284420265283767188816688302764134832601758535860984389142813251535169447369543263575111211143109191421367710739876017138838159216598921804221061194720071120472135471091787361973802504920864846673528561951636233499040813788298073737766943440308801125531735271127670663038709206244678562551374929723388921952646565136909617726772308688984124250429553580464145491584836825161837371623994037903977577866245101956370615948434499150854372104456385330693225607150357585487260411672886247297475896862168104041402688418505444266582762949598466538913264110186021625829259332304088302283584777925080296189782516632730552426641218979186836086548432817712259622628372809538580938528441211258880177336580945129272600257244082762482557432112848827789982780934899089518762210385885023457021378695449141208393678574184093236951756106077464937165134088289251834749472317916810695648397682255795775051256766217783757356105382902317775161397806130214185349011721430578983379967245002173970567904139891139288344247248178108245816106964080628305352823094925153419085119421492855161645626375030797248652022720694473269688705524453754364369668627255549304408393787578752381710743061621465115576969454675082289122635783869691082173008048723405065869920539248806001660421770368910263279000090426327122064344076275174814733687729642311404990313715376410668987039291165008254429137781209917051562894527073594948137361564897507081277904045489168630219943773666151470745351858248215601553372628764900625132566334627452864513919524360759051166300250842123538324397719176889746369595857220675149475391818934237438118793727355093034580547369985235493039392264561146019254836713426278293427806477466438679860453897940003506794660942501217664456885377503736498442243961143696715355372033175998122633857046366207262616738610616483221386913971584505551266217082725735394501930080583594600487480824211819586482925626504152551663400530873136642049788952202582338650761409988232606108085631766497445408318245318027607803346690962168264042291124121494304131944491196100610087557450238397494877162234267203598865665114478632556362820378987815017081398308870268606741163029323161660976255339371474486247563903695250423857177345285666253375898624228509017890565167906765451305730195321563179638981032725567267366916304781927949802362502466537271223742863653623870928580146901045775515885162911206863788559309841601074056050831399229799571233812908314216412004060102112788537952353448470408850071424770939594021565921243771965362023671433826050782092453828632990245685058522982996601093787748556937390704309419148062885391756401544908117186720493313638793796117211028413321885107319848624631357154442842316480406139140746302719828775730043449057180047871465953304577085465278585419303986292842114517661609662597631602514247216229048977816890993882220782727118552419827576060185682643805401984908474545130013940901669450343680825278109334301913523701907984881144606771849815541839626225830401564237056890561905199625371227033108896325491497025908681867694403301325893541189293125966517189162328681178984412391498892537114945269783662877880962272465716669336225977292896953442934495445865902927864695326430927449626061026385413173545803445573446532304306545475382575477143081135829254357973424930991258751676554031007460401271046896375447537702597991848884918240040408725080480617331834860039048537457590437453855261457488543759948730973845632823671408486703100586919914903434708914401341382727103363140947228170774159286577254952549044343644923553871668137821413082839237412952870997453523254518003142089212345132922318070785850878274310889529784822393420898275522473084543477416363537750479139614484230986373382842527497319224815261007667759001777512140594892224597773447010260659210571471188984545570764753039002473426732586075676008444831275123617225545882262517418873387943228413220931642279057830111480818134341294953525900343689916489744306415097764212661759931743664918431710741112309196800112862487589340739053053150922293628918208838085164035788642947177075225779063309710647344775656643375796602099504578239889037676146446077621288617878384112560268405141963735438091325575161701423068974017004237541052072558534161789161666780337829099160026071812945513782317980903317471542603593201887643384654601115482225697340551759833081057301326179438372254324952683652072091675974854095179184817323752499266682412736037558474947082060182351664859963193844028913629695909219374090676585274258226856901256165088468625341187809620109686110241351023071571456699845981830005822337802977621944013081213136709422025781752517349011514442190721870862203050027715433564392962479411107899243958563232727709216194753216538357789327831368029085581328952214107256195568849581509317152777846448385654697462296898822390830011557957831940915900467102654444252515076543463409001472975728326986680632767429080568670777591511999994994633368202723392507576770226942663740311918924389057633213796264022667959587076268753626180217357769717196946903575552883017040887468374666409175864565955604959473743541139517248545121257992917749884907106992227439270665209542042300044665160872924629664507635417917753856212556143642691662829347122629903628789125449996640859863417328874132493097110785065191324098612427883838806817990562555510717652732998206112705598347361353357762379969258647327070211765298835369016442838885420141064888321718494374653849779051392979806372935749301487138106586859195321999347650450042058542540503157436583626654449704539251829930319867728875035338462235599446839979428714632473715615878873062728673344871252975520273672899782997411797012747027016925807273428684058628236435854112248892149080390081132980159262280203220364471759205389994393972608952181542762125557934563939159416908860659999933294042851051991826766354899898235321751346581355831812751515163761043935103717083310387242888794748862434825127303391561422074690870119579476443696673757798758873457322812621067269353958447394699278952344442281236254279054364504887786876486589292350641928479453689900990693151261964428752210621548631737315286712284611844892444373804314830564830565678584536261438738623343116978260115998230791005236117808104703871448207874579631614099054319134937640599813193129255565425691492025588602184919635496816769824697786146579854798975582578354290205918382405427713877368676636125383562575996072691176233295207966155690716618783462944861315437735653316099159979209872029447565713464420678490421846450314569198134585802622956128967808651124764504573668415743926986990978749385873862757673903924295703687385709518676471655436478740859189809329003703293776814747577982133447409778262851485746090753544334921791196869952571237557105739095263128109435384506574774123418688434794382173358474894692004101334913454911563551804124349841781483540725038155464452784493127460635765557175673563533161894776072956423187207758681510380985957321671371877326020256933289997602951364565832329165023564007501854738011874558607300790393508624477732576240248491549782543120679257772786033965552615429072235673878515348753713101458964807490525459045946130725557876546672158596451639672123148620093881166797349332466346387963440296451876550364568177211828029634345352317677324545335559984726839770066779392839951189712332825884692436729778107246890803714438993763300416352345314142643583500704873414915221268061706622034900393423938210268840531651452837882495669251947529967686472845613310139586603899145720926101248782844948745449274637811316135881386083276322295935269058018843371492252495192625997875959385051407346799813660752034622563114543093022755296777613690194923776106322844234943504120598997970611827763931719082461174387648370128631976849899551970446655232469841536058894296267141319811958358758026863505024661711907786693607587911351259316675964067485385422931657028283694573574758671471012336205589817896565224340059696910021903560913901797449823972701439143599478683732709259318390952676326790961418229627455055116769946640271228283980827286381487719707027314206552836409007876933699994849048129481097161642656884779549960901095669490535523809429885387902513947254958112564812323452330541287230089889229563157739938842698140319859140898169408334892387017600950853011163871597777076158483421084442050574177941296989015566952114769591931213489859049599122910456930225027857400193515502062792550801658537794363728790132558894130151648091541965804265749704182471530525316362857338341065668942423814603433061148207959024432586615729076122872644720351294533701386555802677526258486544326964500670089641759566154199964272058670770842301771222912866638218194435480722003356735162037540278322787803960371864903959618739112564881140694495811792309004938070735483918344153120876238337338475353223701595344405187267973666964583061207596620639520646609294391646995148339772792763295550597952406513146490601758046915912308575903707791654453595896018779083521506751963119622461432600120429813941247759369151028710291121733596485701923752510758236769551073756759698415908063553159559673516937821945310843701494214120756651806634217912644304451027809153532466417545049335442030159329621838888254487157660206511762650781756856403627440093438347239930309572522689806626379357826980962797740524046256159689528598805174524126051502200115250380370495386099857921993826923373411425282008987234751531315222476633700015796672942843489328179996847386801056982399154229451437402780857040714953872296994459744575716337221903534445965064599814144701687260236080505563739833162680263708460208187477995974619690961460557584432301561051404916986930011946490426151423447047907221871451109371015937865283988470103866735383337234178586399016722138508995913798297348509085793193798660974737658868060553706333750118487502158675029239322976419764895945114325446807867415458533570901219816066975992437820820226616403708475798315925063123216506084356148632277324371841760675210795413621759823783944824711608368473071325759622587987123405090414260274454187997656294851762240379604964608404689200892691043606790227043002085391137336887368845309806285334382420334317833854526590680734648012277846299699365714357214902429479333154580708841102916598019429729304754729053094490999671494754121952041015582585536752538154421256033392084997692282970259487744329435976416299276514585951757504479101450547900118785207982673002976142185926280922364937663470572774050304735889620288451013873343859960492180352877202318497881576279816514822325860930458339191648615480237931959314536207426765153495846368335572686160770018486274947075758341288102057779986139552024788972029101673696358602299793408992757266554768624989712674481217459947681017592645888187346370886962517592325121663300509462775600699319283363137107492251822637034051222673931650334431480714539427087145259251491381723248717000124543628745502040262335725572782585812213428119755224706727666993424511996724573818153770328555013366557915480298062159064235019960549063221874826384808174112190976552610228638575494636625652231039175914550154172651975260984972866930874161356786778075043063857902875794738588880343058018515648374020891218616754458040097142477746348688154242266599941589969348433401424459700405049707606700004861692515470884625990266230953447627815702562991531196462339079639117939597313925190638800749004993027820040315627587743902920928965251500190703013709149616833696445076384238724574265795825887737640990760241869657600051670284156834239966484649525089361227380248077379282317923375281617607116762369077329734848653831871392777263069211111324380211525318965730325859818268765023983065264913835331346801101864924323157097156390743298440197378277406216852645751523813350574940788807606471587163184311897625829283344031175895473730529552999932425866365961050269224081107990033941776621460519631752185737661967713633339826215845691265012723220095381155524448395908057274504485910103288187954177098813664204073290926230313732503880524376222994792299440515668088715078155658355925304135457997038234988921781269470412940628637783725597927539569374615105192766243743793474054645770470833094413541265421614117041688754037692239143297123313797749313408670085702279527363460622674048037202327247827004007909242412701807058573631574525115988358884804335510457110342271860735969241392243190961870158840443414433558634955376987280218929540002936633218038186502109607366969084848965785572602106689294841349233481114623472273871141075436251962281280256365633916726502902083262263082184978003390113149099249551365179420357094637334889386124806611757340322513010609199445674352825939508884807522234397443085773890218528255653659832537940056992780552715686306757908740857649231919084548493974675667083978087708418862574652605788743823640026073606282912337233294425420657429215084598661915220213876569111484049481482473578992586237509839814070735954639038205404336601643186046719652291362009940617526678548023497137784016088540953792486349861969152642596995189157673480523621365493376998283076900582215217581442634138946607320688101143909235875197108873869648917197270170645950610105942865035849625051093492734664706108634210073776768521929696249750131138700031668022198703747236806370576399155021692104839753782834827385924754141986319291472241311086967537594865305183744439258762151509275175770248967834591147271847037649239702513148103759291590020912801133911489934304898325135318444322072539813446975456863590300578587404499818826575741790639980114094916205156872673013100060960710024435218639601412906315495958927006350220748128109261884181661899918609053617252820535413869005856394956828124907908471097279733161681106431454784519123050062020824851038516248422367971638042435531882228936448665692181871937351572979502635113576408719461386204977301096463212405038239251047939179778692652657377247676193718333071525297231091250262036152304078874297670339065762815707540104935720057381561564684048196511378681674558141821466208421314157550983720299816182981290489644707712414697914255180810987006987452755231943930996373479335551440389755190961247979873163859714497190599702412940080971280395711308559296397268337370659552880406543807644371979210448652475851421402398237820301769920324716642105237801688923349035311735629168984606120032038481612726843300380921982677451992103176113501683097143802891736767405478351582920459773834400589183695943395608599242473218874737995913479922550901982940877619069351733006317398515005829878892745182124384283545949719491535269673556335767301652459891874809372474901344764561796303249862529170494498563727892991413080794494593793261003507776060900027905709069882181715456860028749094022525241179143645856483066456133781087651327493600586354823719336755069679229077244357251806161845443318017793465208758001588027954782590830383642251395120075886019086690650815667080664659835303857334372172853141820662676343690183936371764325400711310075749332377019230643607308036018061042142711368893207705139896199283616036899830742911402129457264987565828563487382616254114599671576302468005651101931332179362749501064016258278954769619397846577130159522838214029551080625008357399193069358693023711916882357360568329449762591012982135860012986804634332811956875703151138363457533201493037079703378731384990047008786440475215097902597472857735167570444414852371327797984095534840239639728966904315000018656082500913405596666317726273886232226638109920011700193341778544574077304546137634988087622548211774334114410076675602565928866441858260134833127044547398685261333881690956331098141151092129893092272451278098599584126163904697028549362443324387558384174711407622310587086672974465503615287846086704224201234557873717658919362307817134002603010196755399690536401918601349374566082073305597901221489792514906050640523296620909791140528211947799441646824624930943159999666077519907125570933826284867081367156713026999470759612324513239768302554859781372899155142930961814961729801901135222344981566919426099199936161576616497085233413257453300904765314252606097480652562299911207711047047064264476440505684103096500088403176717963099555511450844946439937466405803112579734210307297482659968571951307631077230167548885849783340478116502791789934515340796041225005883317963830366032717540939694197089255142114962082651065243184533457585314000871672987851133023592378753080635865613260653216996304274803903864947376255623768973862538259199206175385309853985247370364262208981908721017262813682056326280113302357286176441489278240285040762934700378469799310734467986794807606112217300916643265645067538307339593375396682961627882262211542378529138416832325777022421841330626835398964648381804574909309815329758022981658883705411350826829464572712525091120871363385781078467597629566511883689386681155646326520207777680694830961246887358078972653051790684361560333841302192099405380044219676533257942071497558327891524533733166934190300156558819191552504750584630173926654997249073339101198890027617083072382675556651550176108797650588428239798156454370605510479320794081637289436213371795304062446175659811895143442221164576776261814698625479698686672597476311867794894850213338600452761791381363172424705016827273054595182648852101423230544930429447367947563156142117127857248503859383173948881305819213054412020800903227520348100234075544712256623767096441081614104278780732885530437811438930283440510277339791016325878578511850056890970005667160671036048755327280065479246491243378286856316186512837716430630080829226159122313438719372026880487206407866046906110242686676257814030769356724002576902869828547277861235301654737329913358372887571053513806288952438328247245313589551390095187488495602008335058277105699990047749273961622938046594436427755900860291509137587201416856995425642126980897862917418880435970710888105558643672330513860719534194620463921404844724431523636387786507889101220551366930510341572190046611412285402168759984355321827432862902812018702218683478985351833584695668128292623698524048881219483049518970597174476215622809488752333944326427673892845679660684764306125362170088436621640321068104509876197535957519973298260388489927939530120319428913132776850811166122951369873478226320925726750001169712221517252328709430048555841959595138970152897230218785322445203985147790467822219374218918630767637349628104736196688442689314743243099746416524520807139761555296951490477511524152951859755456694780812660124428462585314838744726141844436426043946431130308863745919101784040568690017226694790511029955266184316691119891295642098533997757623819027168905879229932429476576407943202998735898558738419855139293525921573744890906725027728342369502046568687780889750584690071023877372725881909263470791042318581721946864587125684606368180461001786906187856265028492575495291011643850953337722277846434108022139784749442650148430560104821456258558792878700664631334052909163317831066637265766498371008220780707267610058703581497042594168734201168802215487939314184268073330302505866769836589632524126775752226123966213340877687696603522026490140934229722684133679905054371184116611595149302437564381233307722562336883599246808229426611067516852903971465353243439829601529527361436101327487829334474947391553062934997844048349719806380024358898925590985203217682008380267654390320742313059003325920874605691412399250500225474218862883697492228911715520165308262096707013930875242986832973243805854217519424331930321495557568698883742348655988734485977115634587455419886114677656314859661718434424578170987226893713155432645749469508947582098619873920378951207155485320330706874039698303989358798349154293855348881689276874623676404621391864628668415023959861157310343446550407495382551444140327240759608966023588427386299838330719964805777850525668569316563039817847499295919218479250851169135305453938087897739464640253604414960259796354527622138461243025831279393653960171170670239683918951648485146886689029643432200807172145318249556025090064799247738100301403232659490843827857413530979072588777812620179327754628085879552696492772935408064960730326148825900888675569011963738865708410999878147924624510472878002154725320605316736531642693296903349187510699462151585144912344749981849530998771974804512808817003556707952037034986819129494913123623236523800343022744318892684519419876667107343826140031808067334366992573734379932987469615153306567803110295723455177875313687793749612865798924869023869025688298280982974367293825855555509635774864044219184106298969209521578464734306755452598252649300950066774328763526791975915530177600187832842887493383208747955735418363831264329075666013862534567018616018043094806337849842761959490240273074808106714378743870063440056563441287650792908390569938647832328065146649998945463697886274142101393503398465791681014368625710064974781081632230875404343619673868073565262681124760330458688396137897294414538566901141764998052906536621120689940519450438118512820118083224151248400763194505574317633158817227187325839099059243857649926770755614345528751616718555109300504937308402947190796272185045237252404925682268526244879657017535892566599586367273772253317568317711086042108453006528094491426562293881010864517591893536721151641575405714693296156438056980081957225565514146827092255034016030745228204283625720849224501883382555489051615416930452601157952940685951627704893235810730210550231593679149361011350412177617524627144998337069877103931080735461602850695693534093426106724295884491932241157838699758477849039025457176340653021203611057818199643581984638953956053715772879709635562333441325780777421284741065642082861866847003228558938700325102903764135655233039113129727661018256351341411986962858157360456200692624958545790375502551251401777650396326275200137370001532974997044805531886226453919678910677238342828992200108830197678995098133478487085558165873518857265121343931546674921779411988071299065416400245311030391201169947728073991729842307364481016502056965085017950065422718753568430797126006347000760621970031003545751066138542860966044619864292382152629654998558066689356469521638935477996869654288218611008086046690043398492511724918355914919261799615529266436614497692046439851462602039692836733101845298897982359669271186992848565522368233382383565753728914142202618362826573190491373218789164805895566238079887882386772026540275685712394648064507799610270228315537807844746403836080381456816610054860841499084950472722937480447315171229464076381101217365804559710757867418868029649442002037551716210795573022648572088913462587525671915485621942768241344567648289586107146605907158827594926805384454805624942023292324253018410501983884040531613461682486202178565481852019158580966857796651588027825415068360528428310843716414426927389858733139669468685856772580010863942576941153803715300258215474771791427863727251318835240000647916463772404813427427006513044924724716140883421475173791074811853300796327701241081935507421488670900684094000283157381569538312277255049727060561042272159442375812303166071193391526207807371337687943617599341298695229860827478088846689069515824330481896429624707856180707111455131237522643498424430586675194849624612288681193450549278819774819303733709598924751319679863068325631069442871416241907239060237534475011735337389161038990455268230946002543526916299613121495092295602209563478265883558232152070974002325858631866402775026874811687585859686881382662571236198021073226666577692217514576008747397995226065244582866807481754875187940558199773299951709983755436065386837971808128897682022392316305756349060644650141311704598329141987260334038505333874148763728580895345144847279351443339437259233034894362408615878472048771409831953863924829243721976842384168389096461571261684195429678258696662602283537564346033241751115299049946735544576259271822949315022720131011259169793106376256448984785243752495737385875901678672204838737263142719076997894924228831993224039186037584347158328196175068283863058627729015773585961336686965496939398929228224549901673283047529652158113558280455759893623878162881213542462797305130338758081589716827631126667418423308032570776761578511868668398561124273619605480938420527045808682281455368741011012412777979649404634739403991603265640178977442678381745492993124234472479200548266384987550028800369045002513289985843648037821676320853649286608414926490204986576023762463251635324164776883804381878976924797037871004845867322627833922900638741597947322790556375784155594794118553568562282471317453198395118592303145363537198573012258076417698312361100371012569690271530548946883897585751274829820559254826115755676890961519928472846100714204244091675682669945425972480674215564233260198388580913774867845496716930758488221396369228654260129538075438704001394140931417863029455463178135907308986500731845735331085242532623454714364092575520866888032148482917724799987780530039073125717022827419590229206094349077904675606280346176501872748432026737349704841211531890574647038432990165880182790681387238353862247694639955721872549062074467507838972548406848424064193724904485302030756806250966798036446665463094945885670433872095859581885151900433511390489836237851622461749044720180329689339725783924483245505387722064841206746877257595765985744684778123975626761497793485527152524871887943209535219880374405254138956056717013500844868838388295809236062020848927287693875350763477878132073708322546939677122407819420806362336851110280835261604807172055184599318693256861896484302212656888860724885433243267798455691364866327300501058913175095063367900389721103215571527906127813075674344618488054840249570510559154439453369574551976392705388434914577495953545721793663863942804622232773581602682480101929388453250040843925307280855586712328301546717095117084643842409165586906431926560606568491569029390974033316792776519330004271237957337493195622378769558266447432114454168996731704709886340791160711241507829589611813642527801703979949097708402830627468529304923296736855417073942081014422811905903642772589828399443488649104706941952930236900884638147804910052510428648790341170689206244329023121660630362024848489785948256822384449266135497017454130395436385257587963853644612542689560691929665043738514171193278836551554506431811431982554537011444506577015192604857768871378419409294695525508302793573107706051242180894278743225494072689871338124855534511375432906166581404318559399390289186898482330427409845139829204523033902259567254931565993552091493095029421256557311164045852655971678754752847532001046322611975303210153641322912969537787646655553443340556729180580529134379640687473272160807845638210174516853704417814846263984646622936955783010521271882070786599145762478274709157271370472774509375151720635762994662097223477808723038070500698627730715772848671097032638009375960748334140394213721684141026756954221001240255856283237856112025554830378316526233508683444837360002181546002525690352558391763046341865589190854374710186840255351865676574065767387163410091723118756717857332496125208568780080602767336656421086542857025855569248824783690881961471326119077436870475092945028853233216076741359975671204664878919155601855692162513340888379337272556757104262970193492146520770393784080395578939914438338782660323291226335410385709877850235083421681835413942574394966700696517151253365751517079655540486797607312322427246565720549824641659797848871406591474460721490670753932755852087361053570680510291796437855130608438174707610301338887043886119926341491791950770152890022535442945385432355502952577478298233455600145191843955751161540155482242478142365436920295055267666825739912638551919409474233733748442500364786960292138597458647470601845946676956345930275289824330289872889908819034459863773221506988647076786164361008579365128024437685749147120355144359161560127690113529017428964609905121822129566956922655782560789124817359014912147479783139465779717156924404905574313147528472271105392758077364896154148329291811405591096589477942703834585756696226703742082802599726706096154582213739207563961300646710630988967397950547140500587073831612859346201921393715713552673370832270745292022150954045231186763282022506397474290056000947150749213420938483759886638914980081232165547232859306156220717523585768024710248099320282942264128941405635042534547643109263066556311755872470498345489635456925971273194814248266984112146448399455710741660622642600127975161350546080143363645033010879495090787744643316769648523325842872438315829602674221315696076900414108627576870299442756948054530952079666355575810917896582740591193311746733812359193226227074842465129324437602143186498349328232521495724638389695498264122028081803853688947667298101138079093864872825068053329677968842390919274641991616200859863097839903840856543751368751363279175981070491933399435511232347270181778036654914018889623624254751498298764709319062813847960942674965804107347059392585216730347029000026542766727959507996686151992670732552202689782636576037541393367802499443718448609354646346676156037926817789437322547083773418450342613226895671008338363977868621419462289267484072242465673521961897281358565632990282986402746635363787034121557043675425639953672501959077394168811685265394528828474548805016476513325705479613672025374397584076381159560483075694339909748658963820062640620620863603745541704240367956715149477268557535857265887792319771789610225891725783988668690418595574991956235528884703455822027203776833104717967417247991436463085995948755252870032972932968927890490706391953576483035557111259901807454691235342504366082016669200338508204438785387094946735308043410486462333123658958385895043430308750472630901280995431467718572917819319265170691736295186433639610132127066343069181459022365538499769878291767399763555296565082664528547362740260705973668825419011510828293501447124047003040378001271118455439985755026065823422899717384561378515181853686451329095767073249167504991331249008775711449129872790503831767065120619231089590135701377592793793249337226829173924184531847623845584963381314932528919030585668905117943694654500425053549489440643510834049419553044171806123710835254779893643539998216375651625797449472343810765433423889065297879585845301867518519150411133756907032847451563860238271523505371028962142340447767393165729471174819371072774282152016042587796797250042080775581676386058133626773560170578962391712369985149800822093519195066485352393147080822054724800495209899349931792908884919837650937764993608304762260694226687470063545264938454516620642766043181888515142291378337676025657070168430851253556782799060489689430683187107231246392312563285381070052645333143232688232819363912096614449403983190334055603338995593911386334478881363722560192340203001175647982558993934031176356863539598064656680540703889329776190515516800027272733338285131846117188131272637505577918509554657436763756492810179396599214320808393176331226560577635168686875261752024288413655700413520315479849146203886677785874748662503369255935133436346021614528591840656760122783416212074161044289815960576927585381880325858272280366146836837442432523614253854110446544789178851476828583814497612056050892624380004684294060841955096341937812823090199218580901263654664618129929334030327167512583669337841447916236490687081467104646214135782051060832183223273790048322174226501016197786093666936160050896995130895332943045631693334349927181899714941850103644448650484915159279895399556761508952244303649062940203534717194499204925988973118997996577586348732069561672220268592176392391473432489301194621105229311530569724619406404548429496345455566347819910084898459034738185452955122817481815675348479416514091652487379234960081891323004256515539767701461387269180707785718007752672714800696306903841632169388240626297354642800288191011038236758354006458377311297277417539402861067237806464709743367935359691877509147058171839459777738638369804562295246328191885611035400894221603588739422291891859368195067957443195423396432137081813251513426130338808805611802847614249089647357035083377270701894654159543794743418726401710582721355959888307722942892038356396290530419865144861914816315005785619444090560236099987686861773901236801559271678133389668003164136652126145805460137995881446510507051816911120515193656970102080444896523584226671334419575067909588773059252214190317431507123904602619785760991170704898037017966814574849926637885485786563930483021903185855584497474250989785213829317314139816152880782783511305825845869252343433060379316542820265817894929188386705690154310679044664221068116085447895107810483880704874315516409844597917307484417596555181488069742592490113948089864543246667779236511302036581066511112942386425909584922120122414119107391643153830336630130667355417142983528503489079607215936554772354476902876206727918215597183278918418150792956125757572044227184639882731345281447669614477963439897082235206214156130178307974655464383933812746603699615310067823060008415927187519851173354558369086331032988911545025165396826945053225126408023234984332807136309239390350953048022042853354440036896394001700117918202733845082200451330767622177924653230477724767439579873497212754220023816686275604642236961467288416831064699800201245192003672938487284513991430893870800112184714110403499406468164213323692471859428552236470571205262694706922537310345131028806514890691200341221308392651480663142467640554177673054316747274548223557764706001037926199551966429942032714794908048233230719158994066127139353318963988866953753888237617581967392329666311125921466049023196611429475554046083694112276502178608798520368326849551238211333753497555317017517820543805383378735632816038363297627577915025152198903060364165682514719112638254528442491184124060318964644167346918134195709540719042845690989231786349786376756881229761473507608512096268028588823548676530678436195381185214844305731431225515913731419179086771712876915861488058603233324115719158504349493710989239206391055693841411500602731362296561787032301715223563680944694081714076447988981889047620100144779211675450014940698009210280040615419112868463177949549960180859081408681015023281145698665793288746008059349789432697719717720875243556914281213224681747277097420605286296356825071533613655594281504386134195561166934717310828734298571661553224795457005056800262490154078524933092205653027268258668260553406672455636206823614615671775634445633001895069791398678673137815189734586930402751414659152680653702604593771613662156666551137254750119676644526134228914413180273809103496408715481058924052996045223098960972474874929888873939230608033713045827236527008655377530903566472146691309548028788341541486369582336176988906096973707788824833307896564479273469578521409771324130582933830465207497503671538992328453689411223794536603328903321027635637952947042884827208836075110837135307232398828626756828224298935483698153791250047768727448825262422937241357925977629184033531188076072705421816005047148437689220833460865103433809152663475510165161682492950427514750696255485722244757638857340027325013031636475549622718365935652427636526175775850389973199507354181351077263639222969614381918198230546305443481583367397903629427381734229609602043147194498225214874116803438333481914622924299161717922094042195196286597251227472114402554142077211045192099493554532702035976480510718432050111667108657026173828211150773260311826099165539594881310098790774050210143241680910065017275378126480195910099624800419811595894182310939637206963011049000477711915126495014888788803713813242333891724076626220395419267008414528553859514255331335681839344948080029608885466573770640243679474761041026758549107821111815978447785992851683635387806457329294754406235184928361733854527381924036356932733818187400399780142903855101548737994237883330355745175102491091217378104147814454158189777511378600386518866443432159615564134601188005074918241316278862642317403302627057901958890298612529801683345439776706941724135134692323655834119978724308037847822145715203224266119467598584221454515962624802549166141629345320175961660000915845565458705359492658910119493573876767489530409892583112435875211109307403063987184534070149869310223198022194937449115032149657326013150067471795012490943247679953309180136612123403507394399215652291039193726110460632097506925058994007167253279210824941993374596656314072901667662439952136463122725283174490797384743351898337439412668193888521447452732825998462166914195268763775063045000673836070783286637519355793786810584776350922832099944755145917696549132684921731289496829626254022590723700118700603738582733080689007748452366975354729128624006610011228323211963909042553748932823053691400705300138722238637158698759180501710313765522524644323333865862656895478875691199436760013763967981253104333722132855992474015886887629245922889711148307656006133350946218711088802738401067193190415043395684455678551688942288972605675983903604907837807922879259547050349815623971694419944332839917418885895620087196999870464289371602229063218397905182575702982156564147104995143449547904639966998127590854324377381870344542686451807872527702567751253112384271898954693583985104385011932239645559441515680559310977016778116137173886031384789671407486812084614239807689414953535723251285749074317324809166506463922470177241937231500657535888542190462656562621701538137943832697369690771637431087824481713404704855340926218390099469265457924296342070882909865200613028433018710722599384620384426639682616489548456619060228092770990228173410141076021236675971496294537623143334878407103457629749903028483116597210874762749997691470301597831289043184813624515443329309905698752013608007556057547197864851430773028056997926031876372962232916539542922345137708646883974382326555090688320924479829679888613633197924706836567353265623411583267890777483502898688964842649802582423331042067038244661980001778599083701373908087809324417425964736611795927622590991821447368580088847375360647688026584801182547358973868682285985925124989899054642818920217653198697424949583675083818099157943638448117293246497378024949825793412425841649814776032163088559144738522580693257039132677097718268233115849110295803770059893270888863293199315926202905513711427639168679293139909252131614080630773236349461787697512903540806363909110455554835671913903401644902440714283278194732089625162536390352217446794061913326090045682375195651716171250501290691680158026766877266812672096144899002798690219848106417429300179317653309236428212948189593856922636463567888494497370337053641866267327908751960490665333626801828393805116682560816740739544995799335626169641888317048273280399572674592395126062395890920377679171295160817744737894012824690114159391875374159174691950396535661990832190938088315758851479306096844441733165187016194909336484608628092141866662094153290162011976555987464323786296318701989329902501816152547022829675772857356403976514905939745311342172818349244417830996997560051742998579841306161500734506503959397761944721611742492325237650164259569692581762242545676676591325965029605090482527239335833044744982914488079605651354931200213404375803560530301583227828864444543973535865134874561074112899562104816684061938052450211578366372546137408426940540029727433944964289818609830419147452544284731004830010436152908145231218895878053653465508544783972448508575387757111718463425552872571873985442642195562483551131509120425502001318586480730743442196133582506482051894321389461711944561202377418600137210396869588331288159184588745632678097473024812902341379850228723281792587414877473667648505899212331941075016327646362927937117584590334726256591108064129611928038102114493708124877509560340315137603020792210836251716131318206376240040705657981259971474321471068660739460190065519733107285192248546947629412336237185032622305916064676458797187357634350440688680760177751136636019812661546702722163150513015045423648715500882921777738750022913090221220907567250882395678787558522538709744949665349232080279104780252812613731109452285246345119745419499914163925523436346965113502975976147668224792499962312638516725832567719211081709363089873652958893171922702634192112963594967334221762065396619328840965345023297728914051284685540496011342295854818558056324958128902972561531893061387608931553271132512057227425853717605424452025227426224571630151852725413838103582767001912055323270283508072157754637339610934847479363553854255894527247596430837382472048322043408961451292676655053930648670832488655394723847973593828186352000843115373281808111433419266748785964521339614470501039559965246421131849097198745164971097239589596052928490055411041836594171730678583545674219052817304672476248648175820018067341047739101649995385008761564132356797515846440145137052546597656434750648597984165547418837982610880114436012953052207144556169206095742809920530990014430410776507987465774253361076656159452116365733957477668597688703647657622775566286568655813696988231138016869265576355171401812275950670060849173613059086145519580347346452420007642053224879454315643841195348793076700079372781157897047619430098231315592245683728155858713343197268253218738730615556743732081095572018195909885946774090452678346473035537145264256292513277829874194737023881201738522014508925260314621453672748972275086396551663087801962769671679730552778962782998324122748115107255806153758886535265510322206886531758723803806283387163090965680765466896602521969174504295318110639757825713488919562551256492967632982576146899647357783577530590866701922894209159709124767918931797623753320270817927933204563321804434031872861837501791586113712091611889259353275550853110322169202873076823845113836654833308202009677423076447062489475149710528457619776912434175004641290099319486478834417727370091125853736543852331943784240098422003948833122513822496571644544167347945512077979609691425980861590499423323639110757395611613607396574675636337299196110373529818484860681694886107946415903154502207105716134171875826901797634397771893708557973007603212847015782292855429852899889216903617095961921938857180390849828335828699339317316547324718897537618279762321628430553410252440251619682038861514224980409708899788956260233836514627905425920394184911838710071191360109978882266529912017186001575770594915284587549419135817275129117612911897943572934878438816120401775774503029249837960094524152627890800322058312022367836000648513636565933140524122858469870534228092799388669643299141847294486455305070993998313360858609895814082639960941662999043550248311080234764672013995269108482710429375616104523032901726422630128760149633137236657892298584998656020699988427841972183229699122626811546966186922273183616090361945746300176595693978800962855724658491631813729411232003322234235965546168492711160915193661085570240858216451766715669441635670437085122937433215665214415289109440382397441468058057192648169303142476037088027359776152752772286328386182947356179292110587886264401251849492174391800579073394568385470525952909061215390224005682282155659547995760912287889941863385847223457792270621531489049560329695041533016800406294606337015449582220583886185625769719499232499521341532052384314402483605874699542939222141087937770786467628043644431827746346299520450302249975281085280921580925488309510904720492899440994233012145024518824330443045204770632115376628873649312263651324791499199917655183823169654348701579835976877955549758347690194019963892998385138667605195536871957075324338438361086976582815784481797526850203583368599204088107104135562058641538393674600191332445781224758750905607803813314246614160568458735537692838578325339843022951448308819543358614548448861933467300317061530774762408517029681053069851766208477861591262299597299264049923218599490527017444004910442368023633072139411772967065853467900841987827614187379238180648484775967081542700495246191791580526635071779329787369311707098240823919471272812028419014071020263617738577890246268180089604087001088415360857275740624958966903495279954885309294463527195201516471534375712654254565480786977074452170576843012831733803278572722575906255674946595547946396554366992479346511134575457393960258554879042117580605696956956794679321844195248903878948392356981863985695886159280172603843886401858385167786457895403028967270247090583424717581565792567343909328008081130273976375949288040781244054261897868498140677601670707758616963905039302264465435276225902849476664666694420645565330552167037863288997444037774824426863286997079864098927644425128108762648975279160693899917835418345993273579582061773266498335692976951619342457658991938721409380469061627616058328715415943374737798872389360975639954931056906115799067947254754463623496103775485082969348225772869576386773230088103311515327757715430787113172953490456001069882667486739114444228947116073524891993490967801429951143883202605605586168217471986592513531206439229463263695356278963508915765831799233030968587686643902331591881962510155857590215732891487511568367978908872683354125943807368671007412940142517557106420990026649942676421289950442471528028333701342930320790413958452878066794605580885553490372326938112181366179529231083735489976361837191049934362025267676242625622588648103180931187503654807500537460476899039579803065421926760314350600591713162328219453313106504393871468637176631289013086274929412953161855097427886883505290363887347957539841573356134765967570289770007496648577755232391049479506416061471443199336661772235235954366149693230449920676649379599561139691306249395753663739229826146635123285267661359223281319916872003626816905535667360311451343021256415292811291728612317566921004132190765312932249616494706092380386614220204944287284864829735142164641209106666170786921131063455608583562418308593346555814467004239784801951933427709848278784806273658643190864680106561773064408793095662902587146009321300520938714674191929102904779493155630221170699771985990670141844981231897408770097368961175395635074726046368475180628928363220494569446412675801116254839139260337246553624368857097284691884362664063872231108817634898435292781545961874139463186685260515647688169667367523819918519383247503138808613916913083302301050125704708184805120908630372678109003422092688694334331525513141780256088561527742220040685342082624347611609674437951676809644043169614670609630833862438898688686737601991026763881301113041316571460550270465484575018875979359509450650229578707269162939257999389038114681107273861396531436994076548315896567156344254621547204156898499028761623988545735516211343771284788058760334474745658856215477722887645519134182305441146842806658899712856112679705087814856523101887531236938710920897470551982883602391330428720137719314587756521836509494228154078499005567053574208053300233865626680125914591857151418165165427026391145831988964199964564176641216137612239676238506213653180425653368447338126014982840301630779369086348056975440595702130002359200193995529112346570867629492294667185512201337596916715952029943309355437237777386839630646822486782862610745952255515568704439204927904803206383515862078573401294561302352033601697202346552433404760468637660888001717114593998258346820109785457534555564782785401299640034853899544001857579229211942066596259412540340923832450739255956788661788160255567087809618032022645721009865619625975678491700727221328331068822616846830085463045044708950222799542634416156275560542815493425053099684253517953585112642049583839518830658540129743545097652166443695087272300279868713179267300664975089274404791924870711946513874394060328364583629426975294973813164917293837112549039684705844733932604360630438854486425066323949999278183638456073001935508887769457415745750112844826521867680692366678664895448116757427075296480573728264598247982507867260535283154917513436252902692018500701299438725097394047372635815427978869832168423367774692778005987057881947062176768893448742702472008028776468172086434435839762549283350568855092270216127327412506326916926315475524636421969839227229522684755598416869653019748804452766483233270126142110150843763242105432905991339385425282193843632448024464108602980123425749377568305904686782674779197609861649586964015001888652495728295327835589080053378453243114209865065991523397648280033236265177688569126540816865079058759644004277322052948716480694092163462812878254810085242036447712882387398632031071568499684420254729777492980645140813110298802637429411982799128840950468020236231927599543141494982779901479674114169079729638897121386552668476820337845967976717421509497838580784762307180366559433987000761161085469513083910110600591873758836720186381786079453591973631299056303718824317470225342469655738267920330730291112961865624188639225364660978307567696374730612077236909796301138377238820414246024407378153416412062772690892735168660532136694729522587994912691136228643264945182267845788212637473078916534457021812161076782434725628054117473627435439235763066028797974911142171253806497143413971877650164960450465847842754945912333699047811360051115269023360298192697140383144377385976114694633777102692197006751119989085087043394824829296458430548224406346365223683933208807593549526793471894067169194593285571430276792131640683423665584102617929497209696812410461296097981834774766056976640330014417113948329469541882890255939431973757966526849501341295748616804347594823634492054070438311990010020669353661121282167785128063616301434784675080239300308298360843981288568632548126104291933382466513090562248651852258661046682598499705684658887225415848610043155030070448901063425937268680152649404075232046253456904414314085516634748257245463112785955766716501199258370505346268606319889604590299949225633540873669892963707517315575047206122426177481227370135141911303908069617928595903738669192675547057608811528913614601109030007703346197293162256344731110474601242862532167738056359925417350824486609329491118053553551450703402015450685563516734476123673510093475720158948933999965046575474725070895882677464057593109149681564583443751204741964462963245148713145129373687175760728592942274344794571078329380358471956793268245609312134693647285153687297233032115274543952798339459180643037660315831693433864308681769037734893020739537125780500199594055849564902827303035584949919464560386191337016028692061823113096385449758196749444767783523150735622284923430876404304322084935822427766887862631582672096505840211003761422452639584773042469110031039612604343894574340627709318990436270308985075783530477583538831467931192487370258404725647646865420364949527864661296579105429560436364787371156295771966312142771880497161424498908799183247667764918682372578115747646402509845961848366502985288700230971017491599161366633847985380861388387459381193526123242074587427597107422407428056690136444888004217867362403404608202038170076559889417479855430125953149942317645265762397166728825814717051251092023715357437327474811476657917155212845849054382201888923071109314190271469444785029951125034564939860174013676221671882267438362562553946289877834473362706923275357705364581469017257106035940042576558656939467719663996741206496083252382057191834765166686045260106322715558798859743674803446754619808676878962230385503387719699795955798067592315070666499520367366317617369403674072980275443137520716734492436174037313816998454549180454943755809261952600016692417399042047720395953342895713916652093029777252798180816347633421032570477359422785327725320591365043364480713489050649705207923125980225942938994096386608073311872606613630287348933545808571859001146378952756978024385176417136883851819485663705284974260466611901039361863993296902536511807197498393426079284346072071584169857814201099398993779469764211643105533829378318077684342439044859966734948905182389809956361364305207359820170453586742265510045886203880218446661825216325914728465607466319382763044278676930162129219864664857681722427169003612735317921573457242432520743475870731530993464970445968563917926545738229482874367512326647634319637000962779381579771851377375469574980729775114042226159012087575298375147357945666604654162820635891918675843397820279046640410948883232984261770417598076638388318603498333808150623458060940219839026933167076734659084964886831571674548376098218729614812886760935085838606229687991615029538893945651140084121107311755085288654039638326778719561603253464161458097501017417607598841196347627960920874550680883328135828515054685184227800351620092268644234648694537155829728739785697879689908920032682593359415468846385035221243512849255418178807272964020112158953542523219698478492897259667130648914769397071027579551220792488092302622649824426854713558411674953957855247608156806865265326380113203635602298622217538387851767298681155348943859342249659232664929971283789568685696491605424915228953693865413401117045113981229575023490760145950378200555031023166686254828769710835769015662506045438333258708446305545470026752237593266152352793402410590369216054945645736055148772741976158994348587392951940234536403459766055029666625396158382587568336004661902884559397839650734729197068669390082504490395912590632669087515084435014354565463610781447352498114189442185826961992111490868834158285824471117301553627598811115900838083284257929642542109420169968043676994103897722209987097262326299204450651325886161445122575209476702084770963737352665271612259981189247791427761028477799648102226845991020090665510428048829837900469050917019581039018934610228983412768867817213687141960705328903559088026304827904641616132521682725167218130172171400862611277834069674706286525831655353997100473610722709729163622367819620572172798729608317519240692274552346699799041039877060339276642159117945492357052373322172088187476723022722992945745441082927087376095190048502173647190722729297425321697270288594423669688608255585313619625596272836649156418357614222605224913555070380231627297735453727272127651283172396604367365920055074642213988865960030088191505110597621967944669313302139477521765996382030066624675501576124116415128219320753407444260303961120941327432391808147266445103203043540186236511481830462599238873000445013491196778330102728082329204580099544351386891685621201233847836004295523840320876923980282126827579020201923126908934324726022435933102575606265128463825568567620460885253896551033211531783426986375463699801279409089013413469885168577662734639349219058538546940490328323528659540298345189442232891191438906076144778000390208707083310120264845468504986723442255575692136054011200500451725730652475694738419853859975964174924959456678272537711142081616630754185070171036996293899151547241654615394557487016903080287590777068479706162371228215654215337200904978394827250108373149494169421570958065841969471757290213062198753133761863252631667045867255153260069714476050564835140769864987604117588768857867905770392714716801579880035458566668948593547929622506218038389920987869209246734869993104137773947945145059198006355340752786644607793098229144923304723564618463504213238786341519581870022095608241245934247181000128459267117381861205312510373512202044738116850823520824597223840906424908095605297362732163417296917610702986785515044296717636510405738134014708541216747484726084676513926709788592318740466065452388241773542184286513611084787367229310339974958872250436476420631893756135033257867707709100024028268036912373997088413912818353563033866957895072057067256670869452453903473705324052784970720406387176154066665628384588011242822978441281653930843678623000327647604378271113720162375816700873065361042033433610385981682477513376516825773030955631111073355835965309269932088221403369106292539551651507269105668474565153954238095299806049927485931005754076465049250146810135095794237427956216403976008491429182325146838406594280216257197846551782009233997060856915835603214823900153003454429579893922940555315638827793216709264777132616302772949739410546626056836666770719352670408552063772455167429891519757652960294041752233978496313945730932508567131418824616820820733304257941514499033257971488151721493096087728151533102804525712786281541613252566133628010097165961490544121726615177056906720686981801511943671941830258889054725408487895782951519649195149195752499685581569530698062525914783450462845722805826188681398404498683581263181845573493814912185390434167680159566670530979854684456857921266042890268753395827540409080175407618441140457380870673920381304722236524962386526464996392713633377643457720210270220607619154624540319829043996641111402082441681885862883779320033050243061133647852136901903426287232829841291919440035428942126079457160777231470034945342850784750050306692568401972083321870557457782180140123037300832019198904455914440331575566758149037477751003894271819226166855510204612438642386164749187966809616508010143855572183620731698702550891656548824470167144136309347102196865219137155704933774433674755753353025061027027086190399256538207203677778202010144110960730982424302790393867521317729002147255101374193640097636341648769536342670414920670265705368509050229311138491249600100681333393289279679723397739964451769252453988140579802322635231184201781159516555801179418609199795594938363750055629987372350198059684313419959172747594140168561882553435803095786692953399459421576722475237605796755813223504460023125697298275485011253928151794363392844581515264756160722405524435632552208416294247477390524430719293572731821912076772024571236776282573690414479173548809746595369693638050652095191231546079448139569916230770037224744519682481088418410649365261744750312855925174672161184403459730437540101100188009141636131064269473024186500220434764012654381557000232239060229923393878521493606929515991430868674247479404581800371788897293524432488537938642836930504624019987458259680257955872109816748460816205175646150480829267928173281681507982430735431901493286492534318935405191700649281311829383795339521586491677132048966695384405467432343038348348856142766162030210307986917774849328485167803895115135542907098293658357026424769633176608950249153637328452797435484379654573712923217217991762645635778271127816511590429816492426284148431634224825737306260955022614218203875353506675277049341487798096994364327855348699864785774407766467693743530064161491956693226025817080841925487336994797746983346659961068698125586789890818241950047272403961865580568766290476551363534793938536020878312756325344963697870212633794351193309134164837550704399853951527585985770404650592918238109376117855495277518033802389317187570052364172555049261359322034092157472831312181276243580163529839134030145262962702711298127461191526300665864422803122495491004206985448638831629354259720899291508863172423034584574016902105672263329843221209728680628488178827014339220981932778405089030772992418590094539357498930807578035001723250604438257853951776457805977442371377204502777019110282471318324762189535411006484443034164139757141529568912456938744429531119671628643000450879452205122542442259338229484546441619618486995672839463275914646283478280293484725904240353754768184433749207348919118666827082157105144994518526697984849993026020078510527544495053531949308664647225508968468938860688881505522793557470481255766376725899323277473683247310567946248585325521635014305686500505190110793757267989003519550456370191190876768296049639475666470074280895556161924582875313705864885547313233881904445082906178889827170457584683998537195423372094052102756075325779379081358929723396790903048393871786667262504566940174565607075510359982380006236170946261879346276766467556307776223475249889771763210090482891934246142379064886117929944083633422922674600229633068232091277678247116925331243195927130305924587976607372353411592303237849166726217623283559960304229733695830554607804802659791671676490024508206618716545539170138304487618556415233347737685073596506754841425745308153772918474443930021663641289927225450989024256839049444570330348196184068632640033231173948877892456354315797407840885348778491295947312096097571960380031517488502561041621911340377125636501879934672963572337873501497910570202958051884348295877404325984793853524753599354569379754460036237927027857791687888576613213064744266256883146582570400714393311308781901910221780519855091680738911715639340614183357071835434524676300190583079046903188850517655643358788240886379840786428978706929598795594301196727415272848503404096187027387443925697620641705629816761226088958975237705725731109820246054887553015637493282685008318614735946200003795420258495473821906230531911406770265436844020664878230359472508157139887640100769370228517675092207195155129567484590785174544398717045546861950337622275279588193548831278156094779938395116398973926990006797413587248857195841471783462209479584530668759710817215747487786451581479687682164041623446818571702449941315382527705165017363140503768838204692879261966068456860007011373870329475216397235388678098341363117508564105968266800827524724620635041001377489560786848564247004263231062248686900292897190707804692047582232902840280701688893779860168830042068713676324573394197710221711192145921378401634374132868626246217993363122408063529944860412234006388757315622961062741589429663152060800823649662280134677083096463935797135570023518164294598642414860371108899521131365033973327605438518406594851094266957722833031873312413824218452719546444916787447661012562960956393189633414983294707124828790490052988919733441295524552495320901209507586977219425036244677141617539828378577228398570424162177622179208679295223815956279209308586326313739401357206671643622084594446956144633561971772451723543089964380547306364214078871674542869509502817542568589537014097397956888310251040031551342281117903719603950383989042520223757779808315335289438513007692472260549115370871885284823968109697016298555718782070648887949577732134876458856664120659719923129562087125425018220210378700330494441932397040235516959193496631553711658896829670329927507056137870981362601971868855956820172936215455602449816162061948702815060528181052910190034511331562271664332158005907996718933430918560818368614260158727386052413733560612013049310930909060421078175464579995460764805365902886674926588265879056768776935469045426996686604940940699996089518344732921452866227267649317324023226020403726444457515241350371750100618612151486406422322066522026685345647931523993016146457039065896667056725047204909695510476837979594390236635533411621766986260538780775615637447285081141868309196316649526261281189034589356078025461644209896439612439262528126612564056103490415658354992724140733214131145133917073615691406569386676696823330576087818651350014282764786943355151058768842129040332767271679479758337101307500047180616742610484805403848010837266725313659824876251625783236243638169243021503563992093001776342199452198892427853437660876521244966728177873691583755233193987583373311419620185566679286572428635799150049895171252862642617833773109099383357515533337971119766576567732479036332743555890248938962119892167886514318413774496669394822773670862552198022001102475571527493029829811107365545610590653337913402307662361399542866537760056784077466101858583033455631442540899869475917881012582416924244442187099036748210488277178238271416617423569485014343626684361889604764198621444792772311737037645427950324879169581619261309253211078373547347113818969671094292439634707745198226108935446846483006792873227070883976076914177714101845125780900120736633273890758318499597733959103506279019466041842228424765986442426117597144159873392617071563910342173546489735139513158953819132256686235606951260558395472312178463637629428147632112862377325021561942652691584370937916805821895481581669858560926195644500927946797393007901604160541853182852265048223599376254069326316746493916852444746342621251269318536948223220644602550858474902592025158173599097052975079673296951487369166321084867188875436085028129816986710282017272875777339635355578860279980472250684254685210169775295678093771465449819492801505372810007656332208611114078576519286552305300154258392560322173831750057580085426781188614698090940762397420009379883590742891317736894664366137094150354473103539912550633918975353956020066325573401529752266833850947891012249684287354490156076943407763546577930423496036843140681678563851335626576219686561271706928756502183676420875477500248268844946865844051460275248858817313069207192047774574228794986554461002562367099187972601955748710464307444568961000739032610652436536648426253350358333187376928025106096107509142947006836128945566039980882147762782650099191552756319621768102331221507832688973773745061308367973929652929561878156338508348783356457390850574783297790637574811164291048465942311841888941139834525462833343577591179542759232913326803019135274671086665984236735116553167575214089971799129987973172475400954802249748082527132192731086899258385099488312406406001481371097144729409118133410173484227589075634257211476910601226105922711653929089187243927794764642108857564766537377824743491887213214159396019684168992998013223431802440682201771158445294909044518694753304046000690039192420001584878403583438965070076930288056893538440247870427564395793221431173481114732284741153097478183171082875155803203675363034262421623105334995934273020535024375708438961383545995088521543413886634179167651316580357563365416680672322454626836791923972523363633561724193324467093380157084579450241920854682767474223001595526704028853128147787468685095506422900016665650833491403583488186701733300870705074094304523436240806006800156875961553463131949412760682731774620179317049272017047471719994814739036026334720887833224320071488075774128878227593637453514663957958086231586150145588456427482062676393488014011290889587561997945536885275375429299699885327646959485032589649777290089657427838249139482792236914849273715848036357094607670218364237742142120536977394737994363490497782707889274478141331161794640195310247481030522479123504045678527137764020239249286536792934777967575865056623781384969136873719867531214557253582815789000726500259583879290056350180348055878859418122252456203174255430415245019304302468181730735834022933220376737855293666435870087462692419833207655747273668499444741348682214802401315420532593957566763013939210347186614141429159611354890151318318598180031624355125901895931834130609139014960262940069726266138698772994163297355845413257557299570277916901872412672389840611167668951454235770715558875150184186265235445568221497979097498592564764621758770873890316335160513536340296146627291317540395208167867844362305570557152503192482023035013697459852175047407659238900870383428588497126849615048935710089300879079026989447528817776912086962812366297629920685776105774367491260347153871305779466626400094645411795620247491486222570945998909146340521333011439030589706153466063324223752974889788903393121264604688765588720819500664938354215297598508633624758600295880254164280567628403026912138905407744957909862048521840986043057245610143526609355913773537478527836580320395785271004645688501399064628909411226226840262103095415371906551918206443802686250284462535010641179161316073187881150778510521842065558622277285007077011949252487124581542579465329046770028661767779088900713307761180037333952770893108076240513077648693576624394807678124655514764179672752328279597841338831403325652874327042719461711798862762960302585634713773998186760141259044065715101989826269253032854463648966690450350590679889559300366693096105176194896477472044616031702692925564505214231276086629300275258329129321659026937248382626993586897950977320491485721479538637503378715886410768043416864263819737469524309972538288237784848304769944135227647017082009067484617612302705670772766983587205800395924791380493148807016643851415062111315728639640280057269290550262269941459788633556217522028587792140177298955073088834602250759999329113645602492171440615087726048434450013608955379487661906918045180617761347053893624393336915160486767768596439357726599435442380605601179292808580830665444092070978107299176008903186756382624565079395830927891531845057933401977808867608539387003519689615481036148779962998032126691932166437522441892597400835993571139609095202565879289878797202257796414828988852829751698282351130804276209168670711360255904943130303900807256175750505257224466294532226075734587892939802172934313430945813732981346970244485462606091442580632044748112385899438468581512283711090763760976564858529031528771760743205656918032038121730245273874607684338978324615472317500972244205923959093791930517309458845058772265913137589501879443832259359863083517035366653967749617057619487573349181566883118772132496579972622876515192085862074604858718889706204225333523476949736407758213626673588580366342970333249376622352544904443091520861219756701807638673282467042437050834261204121395471243963389313138337853058940216555970141048733948871500353643017008859420089207954591818579169459803755783433764195604139352525207160754048913087850849273554831091027064477063392563988695116323026999094658558417288980250940405918161212038149479139414155882218861748828334628549511522332436015552365793702531314503362888947414072965614082260917909934012766647606912942475546249399075525004410371122658370422001455970210137546425982802116351769949628856157363156428370498045192338451704076480743430706868147066708990039087835231419899278148122694760454026160760212941696034277231782522499772861572502930555185574926021259582348600314818573647527648085950462277616717257626446517110077703771366045177973054664594513316348279425202150869586814206180951069845375524928157420696652788512913821709050056026911306863744346412208387378219591974235126127273759392566641683155268664164967781008589871623360481813809682349612950586642133255705728514894917693537876545734896703402054350127115030122439437254210416668577160207446091326098167323498132219238435830538075044644181801145866088762907075575115131522767814623057056699050400915471128642015664996947680302429786247594299536091475311222273114182176382735117563990653450616742149743312624040261204084295255514413977379407918118246507995937335863600506264590362743687791496433258263015693184056386425161508114560964588580081734001630824007689466356575345607468510737424114693831753600112173473580593876973494054864074710608134086575144830146797498347838592212142905206529776450249337377797177265868983168855676790338040317676997386026616832233353691809542989070760869217148556583064565616073839676550426149940208806642145220180049047611712730283120487858915522295281527276177990037688992262383509672421184389429057250062320804311292801747177530515642512035856759608650733276635904146064558029933331621714722085146471333159330846126422190197869580111538577833613315052815966924577017392892622316088171386914878511967796321212519906542350924898991187578789371748810087336448196142508889933876813469196671043362120266458383267029627414869400085279248906040190465632791960082281994931704088925663353296015210058499214419256690078051022013377212486590937749480629046537805635598112524879973611231211689512756923841365749113964300188040684584847572432814776909787741219085606067761577344709206553364225901539188896904821301781643612201826102544813016061823573475177868292347054033354390774375303400929411609456453044396135026271479769549950786748268180401768354345119038474506976856110529180407926708739957763940432294271698152945621565663793803277551366227400574480138957696240517622347740277155827470620621848095843376232075545670450672741025497922623377919056854110383939120371685866032895158656507875231040099184806860915435751651601425238941138682161473118986947629782810502903266374104982279076253800552906150993381848248436192064724220609193953918797575017499715232378289699300189335781278054460411890960937302824036075616465779032576639771247099812575511261826302850861570330687993782736471184980775524566564996932988095796113025237134077042634755702227445491784541378678060978040057189553620571773423430843863642932848868770310575773049909247853218306120806004930346172061917715765652082834080093124593013079524266863833888287399130810941768326927875327152210726874929038263615215209086625098070975058438105601326331963200818935207788628495867947990309240901338404096063712142994722672038299841283408284212618033288328705093312984194302261133170148457876102897107843863573766980945232460786375292158999034988706670837741900942000994241318230342678498780000674479354087515487651629545770617194337432933242796817105799079519933235324544842463608619544654724028307071359843548517783185831626894207333557636814608159908647302626864066087473796456319746171347507056987152777102322140164954874414813269120088090052047728375266617484947235190530139248797688088150551203161473345666962496765498524366325492378648050589756075967360441673198584862364695865496140986749264615187939716087474714770227375900685764547813103733624885109939895682452262670523394135777090555436783052797122577029745575266877557819530544965192391336922595173172686896665321195767341798573944883044763994880956411932962742024340250056152901812760759541494308463250905836316243117380809707067529059740766380375984370098123722615698669716604276342424802899563716869021296941015113789413583299412390152378403632703020788584966045364152920759493966975922785044729295126380466169014895773349809167987556951645340942754952693781209395428919676463321715120967442612167529967452809068415109361080510824561005860122346180645955131032107419100401593657081263120921521710302123659044189148280932780882790720322924708630389669856447561570270002609554346938420217949170013990369880421885751305563834251520741071630235045606148859936990344742493203179430341198319115985496206873596321895545545433323763315263122939394275556245547507132850874290425870696497866340075709715455860110212607948621481381773381965676503835261018048677862638248985242543791717852086810503222228781155974684294183801456451588652182765239735950473689348015286584697477811171099961067621572302561307178280857179993371268675326934549947994983773224806033078891827706447048995021230455381298500931475950874880761138504672941054241584613418589372198901565994058624514692181329671789934292692582385359081748507961566313599063748483450706095974668210962019601799747489621383709194662939839177864666927274152552756825328631051987015045649754687891519923712108794858513819015550742502867434392044475703723302059180193935047807595177193746136324048645890831662622825354655498413768321412878255536314706562259327384170402404056810795006221893964229967312890895624933474203596822143468950481373232360941315825365292698284970053208413138455289888978042826953351550054752553594928858696409770390979528560119588987714478980029749083055554023563999157962804307547860749874407087732120122780067185750650505701420106281742857324989368225545651215703732782919424183123448610229711369485486177728102123460137903991164713043095566738708670376639678683632380865313199622904733550120131874340776356173079275836759010405308282863880373765297215513874482409113424447876628771779174056768512673011019215188215597359777063113057487905154190494411379745736961718428553376172457048095654958712554541198361015975232250603258600690561647286540846481728995480892641013471743898360298695042190250812051870736951971127673788560271212704997480017228062180327467630905207546114763493127935971307630024950242112338678821032580338573420825491992748457107231853878615332461194345554789792636469297234660137225729903402427154785958491610815105192976076896170085161380731970521050402386879026760134374056783725763272872234001481245638949597983357072438335080284739914388882882977456418655947688291427542173658493656405164451708702890782293594995667076277972381875168737846885132603783902102059186919775586843798590930821439101819930467806915221128352478795937306568445670170791944944468376092897891400850312888676144092278559096801326721906786341760641136010146330246116393407922487289805476745656782359905458921374900322723357882883826572167762226622949061673534365058371403712467668353575542599166614667257470017185926101388465512992103077618196521247022582344101217325084799250000813817495269310519910178027266331579173759645884402707257485292783995957973496902310687145094734706496917318060678803634971402846662356858310207157819602006817232905231441194138166592428926831063949111698777247522520487574735064627033385964367677032773923835481317312049552914449979793308748468208385808783863894212005017648923498844146397904790956926485812400198951320582465317331699077010043587715505604588642490049314624021082338902799538063361733604981710852027317277154627367920893530591178527668082515883628638480518948704069811307959435368712133956167705970358895978912054973198309049641477740065552056440205271868963282790139447343764621183453123256454992896761389428358714892491220309126285947265011632646126157023072107185496891550043645164669406737600045939965554708865039492579812488658643282994980304670312987815186095846324184424860732089335671841374714535271332296129859057385421045434577301154248122917005375009937620046784952353965575464142250252809646629790846079939042876351114997057923917056874034649160590372115026962918461123953208779869721536953352255969084351558526526005350497438078852181519297606571700573792088275782622128799141998200126828010454216336302342467672136304501336966619542736894457714836707080904896143875186551017732766619161894754411227841608885199718306151096854313605518275230779883968865567812459064599707616700123115055901256345964224826319692400173009265786402004777499167153496544349830529196317317125698677599111485723990108820371563591130274758909463072302882946448699152775284864688178684189809061958394744812459505377464869004816603857342019034209823062009727895737360458222526866893184630779182032635049420647918433572523434434442911746553196402755716494543302152101092573257085546239422233799186740533087390088209659268759844307971390608963005998137498190794640369207780023097664923936620831576093665838895301182001731823922644028904443292805298188785155185971205763001650898917279725374063729938132987372144413348558279150877676781380871072224166945176661915242872792041844390069498570765587002648043688278233649619962481306678281327544017928271873050271059438416640321536747193416964240636824746416895047528142905892598939486182442543746011961649359100342022525416471274094077092912451788163107390421300790269279636323454969366820470448180774338773175827196062343705766349078564495327079855058184748590696515946253546775653129935446094966866292649054836297680059514770484778166311411000930226318962481832493486315996766054810846784384674304288440357508974051586826548186711829261812690255625117589560817923789936634637080480453287986274679515566005077912548611372251425434852436836501555306187973129640445753328871121983217436372074578269506497642356149943115576530263554797761335598228784756553321438507916071641584935852719594647130541854727745050259643657257491912596624391047813596771476680592612649495728492313512333031238033040699772878704302571134314553971836443565180295737004281632877402482009706011314722961272554622549470382667347982606996922453912673200812861622594610801529609657047905929104986067944875374098558852436189615903429429599664396739872551974785941642795699442730559489485495511701479329612408130120039077912171932176203101936886854800878808312140020326444716944495707258941476046845895179708733951126643563634589498582827454494927229448114542825046449900474080525166282567114494783975648772897149867992718365923415238668894106966140711064258785707613039032648025559243834433991400185732728090391218217632236423258141802443155456109137976189684359197261797974665490814792552805748915446597619738385532395289143491512892895616356529398337253944963055272745730792048488713811395262823892043372870389321693081046219713059188042016425229139384347188372661359944223062696714672119605541936846511311093310857086554817716278279123305848411942775827094679963900596485647722803202584790863177269499585522481977142386721769456714992187897079567199755630906094063615674240183199772926128861404642229814680763654625193475580291933834638631470370411859314765723593507258148870154389581196514760400696224191615101991365290920211939444356202852264497269468845664203727379571908961331354424346961699450821410482168089745579356970918873409057084082396592395472083525503012781450722955947853937238774828496253970944448792606311772395490386355214387568892312957244742016107903850169855158073055420936474567636551218730103844685239065588581953991450382655430837917205015538626906578057253699160485943158851400223793773284953901286631928208873664693272082255784413744616665442457683411761671800665823002887672232950444445266132464021174568531505833040908141259835651967618653869159128740094234244388708273751025527276164386781586456154240906844012292033641126302818100952250437335210167959919307696544575445176372404515921033474142054237955415432325584612385208573312147236156780056766920264572666292353030624160455842963987430222342623663455327257351241748267576150513361598870504349277735168072457465476211445700991262537078812482845201231018858388093645217230933125219003008302258294669673508177575833822878763983014113602737464566889127475170950759633708096975369488057287733907366837913514248310651450863572619459906705192771186735777190017863924681755005492916373896478115408154428662381305039485455106014643834374581657954613629332861394098683504756585079268579543658758784325859923696279627580091647090292612348132962655651137162570413591303524232484118260513263565168123748465050436713754788887560874988263954862438845532087165398602772511854357344663353075473026954401554994388444676822225818296478099438285468793485629858649554236578426828050446839904591576995386755749838771985857605689549051945489805035637321885397644210968722935601054287091917149436771418318003509485238063852852171478049331094440254438135257920526899120354537800958601034608660409490452366020986253367930756677973065259431961910979493443960809535238623481010713547801769342110867236748595316110287100117475846811831008369305157327411572721503271317868355573395820395710061958434647451023794486712821175342820902686446586648833272542293599331649673767715602607455249923000263706481797248743478878221706504934712090184537021565753334025985535299891211004080723751069404904865523727236325798053062942981771399369606541758569277054385114101180804901322960338213383543051555551527834672047711355912945249843972379688247598235694401492079581724083221743669266563730779858018170919542078099425605710640734414271448924123848607845454210155404452802195731732838014396476259226731757253803947439412679200330492042317519671831698322026715653122283154484231333713009616477387967960080715609078786740108522030743270739429778195809131948620884120661031627746116505706604327964577556272306787306892804114094539367315099910008627462081388460163504297433543265058195202541313395943427476160023369035104275494235640187339995233384543403591064041043064674295882739092698573491897180591219912973226294000123696388449079358628448717470533219121566583844434705864647125049744706504538143306399371384469256892242921123190137054590880928924727001986328187985789383663055730722709348785572734819859046396031057027867318125307580929275952022616017560677302553229190463607028497572575557794939714061751939881082445891522006187222405499547970835777159810832773825871910454306037577396150272577288132393154365009859126679159098757978299410061437965824646453199266144397360553310883311112160618337570981500866427358774088346721186020809369509281533809305000088885532102302916546236914399752105785810856186596142137770751806682245311632200351214898566131710946659651059957969136766368679030109642745216383381391117901179494436148048220738973212589153500807977235547405970413803863984134400096903821528527614547530591448597444628220249062800217844952790138483060334869411487266263412251944622920808575576256608613791541457412324663060266014209491642494762031153829525323355600496579419252665260357144436146485711255500081743348886988971150882890418333865855439604950651538757200838352707328733350567607254070134185702206164074920788380435911268161109468435398946200129749910700849748994722410580610566228853938495953347497777805077268050872927119688932302904158687075659613393568990470466830839415901946245310385624266396565915792442812935650591686976489092032075346849757637009194960810800279710657828282562698982773500832326596111792277003478354686945402322787233008850117338148320127535357340750056436804587234088661558548212806685638896524507792957937183969013181621848899476936263603590058693526650437951690752756864663277474179102641620373857284616180446457676151805232207099479473263844941897938780466592961580055024047302825735953170020471531543770000766548220502775851537712524415792786133284324133787376958586181057613368643749461822608976596185090851792420402876537814007744011412796084413121492073428367777316700775365016430645766219203216106304391294805817364561210115805663839657745990769652300552056126175755649288559121112055349054664000905764919993544531398133919243631004325637365428198994569396350282957097012209669000940741816341576908905881600118855236950939040507474422839943232103883388928138408495903542549246992516048774616829302316689476111921021873803541092754679079472916686527876216704672138549486652164529368081529406894918446665175890151168383015400495664201935261983680290478098989601827030883430232039647821075709903442214283650457859543306400984755125277150429023034208609151344706780787413710797997415202628334495454899689419556018961348747903526903445057107911838645238469878963307891472073665213461983029484064139748137463567113642617083753696268221827358146315165762523832750237360245219690230523129310894191688564654644842325715906286304497504134456738432004862401904195079316885885336763120701612234437524730053767251946417538424127007581485929761983438376165949596489558842389093491085435314774837057523061043628700802636861816363073816831446583814129459642424712047926348901064854808518061780821465653588334099967317387478111194665450747288271613986104840988695475699556164582323068705643260640402648530429571760396139524540148569141525133166379861098818464975732345381182906125935155428921576840024390669121858281459291375004897034399052317488365588893250653994669434219772187068794499531407077468788765550201086243739738078531712538822275719816582901176107692841097756043717011326980941946346269674153642405422567075147152663385649830286359447885659691934692385747939884810914961995868202139259784476133059868014091461288021447704385707470397893949821503749149238534339551242345525689824431658594371558285253131465014570852619046670372074004486659708740156580036844236747652789660184426174588526293594709425071480213098200587196488135159385569762649571666068447423888124477118884710244278743355081332455070839899320020028961261842211956720848310567733626123613240774275111437493904046877675448406886934725238173228361246231636736243261238900706893347918649714119857992095059146422230343893164836118466885928666932593149281853742411007611636953188096271822968294309528441659730860718856872438655301573806424642594007588316497345677862327502516682539060932794417809861560658460856461514658967400613088843188327968511647305472348279677096348078760249416911279918005304508243206483499905165704944694051464685231809434158439944371560869374220984141432999914952830559109090207301115554459628423355041677100755535700986352823529025541016852727192957962863252669858696307501100389474884765831843373711741218307782704072518294750553982162421881469597924779827657401183578464322507086683893744149705811338304923275631426978866484801975270466879869816461624399473114128206866810985842090784128368030287006704386830197486646270343131278808617831227308232985214275409076657217056580538050845978463828040687890192518568862502716289131089947355763090144498251400641959959222192186602951699505154458304326376679900180603934762719125722704451307598132955750074337191156558164149489498528088993501105042040809737694673637742237281143657976960748570672091421341214266286438338420948142373617306326631541254672288043730651556996136689740800258989401875000061256377345850571317215550609389204164045488959946163218601143886676876628701956072747535398565872398788185538175416016496097377676408973202466662906698339791251116186700844594760445815860514166467679770562680706100676854114235668500391072725194080957602183610780256778576309029530446630523610073729197911661421636010729584570300962341788134954348076756100637930774697031110723287240371815392629446283907937606452271315840292536529074756163237272330121517020512962529610802314795600913331968608970497136377918108927655197810997508929866231269669166503087159031649776010395359810203614405792848648575869621862744504824580494346023969574966722672238873615760625183006842161422756612670681492711097586773730748276083498572751031501926743482359487963543689661248833516067141400063659043321121446712057062366223521480156613645162053971774521556899796737018103213735387788188130209469873303604494002329003253851035445835642354782548146372128689688123165283201578418196744692927975109907499300751378508106553360901741665977078824570682344011085881420380203422978684185925906971587339949187269266407798970693099022308785220016306272122798569651885248105455621923065322799955820786943791239436338301343473450909567432583532332437289536727382662836073717783970610439703990247813436505302463741953913430456623940945461914692682567164837365227253147693255820222815539058589303675924569609287911152229728105450295117053020439535855093899151019463254232155890081540363778358947355360858905880777899006497053215497137802869210437971641400028889124373125351518843015044079534304104015006563721073094022275037296159320390755960798509315260873841757496992134408636403049017469177316043414967067652508887295708979549413292585315452756099014750294399544914142831300264013184902980911817543762090994949941978553846020192821291659612341621086016503228114186869139114576233363972591238964122659480674598345223459852187573252974985553584154591815894709928726510200173461562217301191102736855145396103013266993475271350288418824148439769302003394711253563880988752345655134019544071832419017795810240167113168831582314770581487924177120544775530294319857544016903055555439117266301767821888476801368140404898259772471104623805089945027138783267022132788844278026626945121124965592279691827514988862753927594539708016616930795058070239722823510935290420792504373264209957893293086775640695197370006264230207469351043846843933497751835574021576233182617257558476459457901695006049417647311204674906604330365215664739027128322302395082104928861809674176666717525896081225506087524295373814896925654523429906078901777414583713248744372854804043719924625477499680918398217758306427376034169822706220346027148384119476191676302316352823150986447309536447614891399468965510661772534870665362668073737433902047325558031926780947592636686244487163644633167452732756206806839801865670241424327557904467578918273065165021530133657150049767110071702916309934072799320742255486285851060456617904406936913972726804074949273780920151680659682395684779510198585170762169826087823681374716434796169238271185861005343929090130771736289466071161836532853643837399301604866288514759159216652298175618855932365078206980249027951172646616317415870529854930536664783667597859775764934534449942365106356447471270460931638058878732990884838708328172725012115420954120531519524436886205056358425372096445102524485118459968389010069535041563368674091141221375240811396830589990411901858775717804330838355262330948883583202865526646358969705582469812280971400282278235801575510983149811868041239559637108728078160251503806409030902544598827564680972408022849840136689303145960335240751841521694012808912306713823046478355873251182174861440831464424128084503634837986572409434972597060048292320961317305924137826008120457584505693822211055745228967924547161640637252626256731581712855427687942835207896989367295673900012785482179247863455907642717956443186753963936255139338774780271978567189804315673354913801663283839256496202130794752249140236143054541169130829789475509394175204412033366344077710905032850704972055902732993918745735762860064861615409989570448753514148378944380822392241579057364200282374363361586962203337172208209558693817632218596463732795959723574564027061834563124995644728300508007061138221969593881494367225540641134102357945710734793267953858608652826851333223693467999216867192817630104265906481783888670851175628955317194333564036914587680032655380785797206532568183679159132109972643197996473112425297388672768406697277082817898408622796092712792189039992801211494257635089792424050592564078827842457456015253228446541642418616167495554829321153551939429525127798472945726982774050031218226695830905434266132687803751573803515850614197370558341452105527676465962398107714360173041643393752312490286960986181581772431110894571446466708691573026258673113786399301007528771626359664802568575254429775846628867194305643727083142438452950561310777387620205527776728470015418623085967493826259763842524803906672914745404440128609193643296091537695956960309550495309040976584643199275293116028334350765350970729889266062426721817613534606815746337612152949493855679065076023896232972324426040652532413086718078642091647914533093655294139652668955143963842054037809494370134403634517137135931709774008438836086497733068435031127553591756386644197934773495980419534378447571480450578311704640624201567360582781721522639573628605928323519534250629322105425877260454340026049869660132536440526547106536623888994911597852215380057187503453453666091068424585852088615042519222419265506362151657804269745732037725762258437257489840528287960865145166447972873469805437026662964325698832822211516796869441515738107653848761802179649247050615310123379891637062861680719562813025162492956934634815772665462741642230888648977136534058380031122665647624916347476856164988238047870693460959766314549739778307867459865484808806205647140812999816683951433238679425635911762174827591066638512727648052770659623729043969523005435407954096073727906528098336862109090455250808488282332553061922154495344342509526524536560519549038411044239909694718287497544368864472572487183400951425602523119059604587715487328348024967018617262694115175184859273361230141908877094440866472870207189467088121197644286274668117560209981394932693071518301532252133124083053042383912099773779458939904104782160492041721311517163942905296733599596126304339295942531798670233825106767358582950631239996059339025668431243270278907021584775515689787692626705971933609995367768585311308058528029586822105002798237758926553982840332475594063053943866179626314239312215946403024801310279518758934860909157566473452139325824975062596095087004217707829615510396242527083252142444045447412930509263687918369281740522579706298751805833011129277743053109590342644060960139756019941402391428950046940774289605544910349986823376635950511032381053371129714497577511129803102216884619550894252498652304489627073020646728410495307030183314107191944968489261254643086335826270164150144351178498971688590057597994842761657387325003673069315255732579690764223836886507312981210959682987780452653740459135567646088634958635340554165497041244412970709770865477222556974016407221106136087876280655273042744982452837867141220104856953113907358400037742850666547340416268615197460695159639471974959046452090918625613442512715901331563884371594765274910287434518404239282390300432351255870440431568989676243771440527005885175882146899075407607972066024470165566516445215913021001321228193853638974772578330274716372527593117814420814105817954779694686257512790246421603698414908519284850525712189918125495301250435083000233543667401789999138316706287283434720928198006396456310118029090800992186020161230371516715099394477208406651470424012073342031706817342663025072623948383337110234889692337185041639387291966517044843773412268024015068590651324919948494362162322058723773312964233027207146986221986082702254468343450182748323991632936482722980562119961076178581150782188800584770463212923901210281633602965688471144031112174339624624648469119927421790755702293146767844692356580750838104101861761249954298602323132452663248276757237833332171736785195815525266288752027190369817945433084902570500365033258077762885926941522728707222881443094210941791005479014829436941702454535405355077098148790174849066583931147031850659681646198100864124281459672764717277502613891268061046352205410560229813893170800920826754428356341478947320537320323991763008457959257496770116849109023124049253835951846308662080867530838058136777105030433124948369104035297418618269985424476840090419070249665892346819617875028553866036316767536975459775576490344882301297767574366367818814226948800042639296473397402738034231296710291367240269628056075177259789352502582836330711280961625317683121860462073093241134919388731351244115156076332173440115815554583519961042122333505579522516424311876266661622836337516797343119702634907164733540781097949588549160575882106289345075041430209772286062298355980485876532812773628610812768077008323502808112597690224425307143010968537908730465614523549765021700121305154488454745116353395895254249620574546769873732815866299832292290513051169237942611234587728952751070232614111121619153565348141796932357680683064550313538219514852556932966608593070123636469008600564898680695621595576018924211939493091282511941604006254833963227391237458872245820307824483073893928841108872583985713256303730598299422662198738828509488463210817959584098805239292329195772967080020202195458362827618772483488990554465263335368678050413738049465180285159707127183775887196668164538702600653371394931575592933824969181300647292240769239897688017268854153407969466788776459742226721597578872520680953298060736006237581356321779207630706267262039856800315234587567689119357932927667531784117533900916022582019479246417943347753633786629829099426053691176141179140742948720173489594293471516757408504830494912478176860638890169361812590648388433559264863081036481381164410368201658844043273851265872171636604722053037308227994370303872008346501121432311232619833133593822460881433597356366471095447395445483375539822311091326140434103311486368643367018619984243824706614013995909494848049860975946917690934209367477924818693394003601163247999999529171511630440881108957455880103491223770919899947933701321451250912622653656182922849363587975414272098380731658497768706473150273885931211130312483433511912970670425728198335243775269541610810388225793826168035034036217279020133749268246669517632439323421477305199084404103465273628463181871359457276817394522411393719702456808641536868635305600531759643200537045484687372760836507685620814050689389511158402289845469635627963607440488849754364426309475584788862939164800856566475864863011583709333801637640035564221335909071715240236584918726624849330348951175307620621176264455251054084447299734749015691574914371916429848408208564636461490820301376593359229914998026454293990823497353042778402317471496530185253994655122880018668889225643598343825076262574686220571950258036332349131853670696172427488387514548440364412298508386564198548358359035627391147069101801226916806059828262099398354779186646308311654945733554632087310485537198120527010441177119709135410467264829392381181984973706980584173971439207443806394291210556579317952396902870048606125979359908603153110789481983055723310298857114470520417146556885872713423581635805745584446206438426762956650645108816180994734783613612531543901225198364201792828966541123292955702726722792999279828439685622676484255554430036387775879634522498115593659137881393988591692983330456471121023347899920595126430282952237623903957060660590386595847543604635156256163743308402726167674142280622828565575988076004144999652299699199620988162487659523652573208241684427517774873999143299025466018431481533669367762476293920939890561386202933815166792979566589447794381356680134063824690835061055730332889679649322049317423599484224585938985784021371025036023414659803497173649555815601228744907528710503695596892892512319295077465933434445040465869868870559925901962533385253604223942707318996868711770984777610304589349464191777110142619277249792886512906871386030824148838499720357177972856488636581095238830912260684500602984151426680937602927434086064565394588569557018597562542425891140758218686472414050215127420765842005316628126014310215741041699251771392887097833807027500689175753723831249178581561897431809420816218382951030999848607887599827474184707615597399945224012415773903518462637700303401793192045902668369905896218280392491749130455607680638326723298398141115139143421004192137461665307640072795920300029783658807786069080190984771729141785605899450511268107583673912907668883911575346814487284563637716358902407831555758320372360865756637593038062342228508926152304171841832479610608327806470340734153587208830762676945258338115189768939424701749106131200785492659672139596110511874453576521702943360487336215936578826279921743541454443840581896371355940567202801031856646583227666906868444460188183634607459201746530917649807280449046616073541562457577423887201057037892182379430500883465455858910530032621080882501060121531629575332085864544963716312899103637743616852843927496477438277148460192669522727322461080552144930326583976408385070817046276237732470863920538913901955616885044630382927071027189985270284094841520280921655817124854653397994746154603870205981762766933439670544610492366053754602377098405251946908084247838283618608426723398951422997564853309455479276208788792667248193384776591187564942045502870694987259866553983686704674612195728379525956521147939759232446885128572910464745627578351979418193726783609192802996290373657328278285674879429759863409851538742261576412013427511881082201653701532443609633842964939026405331013883667385825889474821864962714319659005238383404487698465140868595157156656778337909821533290811743232721340465055189520379205140717504356930650830455719307439809155088934393072152993836632343784341079704299643572570378919666563268696885587122709797471435628506940611886197624763675582227782896204653865460491348175195821809869774116580935901498920343689684042161218436695816147565704058865620022912065449049353643360849622817303822358416119333147463693486320622957428012128626284570793653314610458009890308906699300948670665048181770020496695817874449687096081749595363087659920558003695298738947536945815681264146050798876855262037826956985471393631906946317381470898522362849646764851419387996133150520400096141031274456216935375863506728343890970587914828373964153263044032591852585080959878801116203001299907648943591394671467789478994385135672099986677926157522644815083421643379741667945117956159405701708642220087875375488950637736480372014777875487401535538079676719756144860051750956236682247807129914533984873334883546409749660288421429127462117609580341323907094481726702056436484945494067259148526346577103514342538698128236800607321135909941808233699161822186547336177574230988948262314786164955703693451992159413714246372760847608338266415562237369975697858304330698067265883325529786084060223483264261235235658103751788584836721432987366005512801571538945205846996848503845042010622558017044868239231620755280009843851688410615475343560203063409279348430734204646772739336164831670316349984759224444218969671194119070425543332367236576753822333534909023453637198436689082495240859474838909647644211249679779867637440206631082801627279358310304681899248941678426266455825624733780573961736572518539816786244376407206372798182803446344161157511261135581274403668376688939536123974517991561080446991817940983764286830767671930267214814693124204441058356166518565319022631413291169153728211651465037444210799391112662765747533728033187223725716912726026612174502673723143756129840124060925998036665340834827468222549975893533660169049084353594787368825512112462595349536348590578562866834748513029954004859103399481290432046900669477267161412529404174596993870578738444901058371715809294058098339194036723796093618263969148675793003134191302313840252675547551059166449510646285200031036426941751032808254029161492641656402325871115432699937970613412631384917322207938911232102200326178441162329434615362327555281452082436890813231056262055777571308116199271536722889881238835748613857793176372939781129962469074764301218963745465394137729295336781306895635852445815141671239562207204298990617726034226373279353803541678248543387059000536169745820453071331120674497545837313131619519201297854271978438627887517331963109638265719209872090963645033565369330522875441963413305034687455979307133470062607583336203232372566382202209578453690688057485280652937436004181739438789631468645526916473311128771106153595766596440790700065115577361589847088961140989305266493162782393711669118152166968730303603068839113964079167143152931655583492643909550446130600731992871709223620310555044557959323004826150177896005719185621867840214075061924428407054775995156418306443149589212108416926003773963178103253980191215758373784620859067561886591081780201830914220528413785215444663922066134205542864479899607449509529961243058635589946645651372215716439967762240418990063195012684141142653157216022101510367724577081242294936562753934361755196642752703802798948083743540063005872069198100477681485022871690033342088541832955305205474394447548410646513848612984318099064023819138209878133554609965904861456144368050322268635899844196946719375032353745884676420825534634007064494402022611601376808961352274793732076207890495345546306283103714380146188765426562288255295690357125177763374638007256729077680212070233400936802989883018739974430310846563054727562698759703152516683964358402239398741438794708336235934066740344664327765347142282980366360690094500607724627534706977252647033816664993429506891411935247439376857971923331449681643031241991578362531176351338268437031391482383184817383527357191046265854586368745178417518882443758104738906675397992081928447918671361838353726688715853880661516387174993177466828280434870710167827935725450253775117028803117501364408089493494998434476055730429075244134110271513763235666247759188354854499035473133929519161962081828173094606957701433105221746150429243599840643221214020085662256099098944713151250922527187869495324829105992664055205599441392022019877412350130969474389790490509448629168213669718614984491061021395305073259839838749137486136992576393898409459054517860107688238712790020658500190829226404389246510163373070189384681570689432196445687084988358229789279186852755120609303978540439683557191904706848657734384970709444502437655194800456401676755739652773822488910563445789223520244170144418641925281397139013165017065689142417121837080293470583643652077604851571798565960243404553690966102951671041185096311267389186002351595558508405574172194408205871831558235027975250146858304806607943463687555528003137222208985340917989502712842308265152833599572469585135228758504362185339108233373609320031739653948129927838909269393642234557725560084736182194168374752603096712274168054137336056977137162179543076180197316252302767617508874744936456261246844614201170093041378097541506539535567580331923823246382244813514973278723206327966324397426504209697751444986010617335119346512539514407117204998924356261049154053046428669432582469819460913695177572608708210892116087184482435657765829258705826227009282022836052830991842415802431975199352710804886231435484142275101908440896972050034853904372778433862890014198507422580925590729876559478014726302078806624510489854144854677533487054552484796127964602912759568487208934289862261092589705385017029595582548940660622701421474775510388187501538770932535890227845759223200573417733666217093066503197690947463403421292409030405529281042553868757501197692261719307497135098579485128285557066777222350411114374618145706058032235555640572089281969279194376323981732460379640753305925541497415560300837729338252921872409875918763574954689607225137158714530497348508180267708817508398063225825310036871918592671332357779932330619276756811934720869178996764031443459832158382994954357247858972616047417679030654051420700877571241125133102142165818883519415596691312603729139142127883136479734407675125083424999467362865858042173133734523142779079084139122094884246213973260492849016115283090414322803293411672786779328305578362442014346153236700744800271035444725541232587888638319385354418925143827526762807317072312726104315687572653058669356576706299964376304755819083632127313307496458024895052673851450493109130412538586006535049617638560143173345015257723404335929347926194749028800339860322608385698517746466176671802021493127093965384774863230212645512955849291762963527157941857932240644543096415732980061942519757225242846556916781525523702081420633745462060729636743379557308384695398101324411615226137648795594507792968623544978419860322444605819176565802572736457875859848435284710058919123068200758621570324399811536948816211600718735969266037043620120580281796109343066869514116402053489813664314156387539058717457779459673996451373492904327089947826168626390909740398710759666669590003207288076618512676401725166570539794552892387196607895907912697091471110082988713002171133417366127794881316714853313691069496689048372330749534293100463035451156253317236046055841293581709443980307220519464501669401012526493708663576138934116307491933299741345005637222205128692726103720573404602217276065008495869517177807011719788990042285530647892404449075323502898368582959271627658970071783992217653330266838043603111201020920820761617868550940598341050124628178657330327407363583953034612673188924863620826753994005217326307773529238601542590430355488505305166344830939942781780736889270321341410098631345166139283143438064714841507784450965503352709388874405057106777120677539133998965047196532844655948162841827482435112915682409516654881125240754344512559329833614387202379919562689493348195654958482873408681584018428665838283900487737835987515935208418930432918963924714593793922837465626107736246964245451045155661662879445130834016226865093100939914882796171729505731708323094998293982044292532369752874327761145456962967499761796462198843735576460605719438200331225925465757608790633419071584046070830854874990441884292107733588458918035045942474102965882661983001350216079301097987549205854372360120722374359186252389046992286019493563333754423306863109346516201391603060148499283774240183810517839230233266756508105913149600265640458533488757328916732527506550043607517007870615521182781491061876744224901968468204005801805124619820561644782712788018165326926685711267555202577471659090004295892629051659986287377700122560674392080723172317785148900311423915408452330479727638412482446950140085469552646187133022868278892626014721118152772069110291233170295259435870155888836871074795297360759149901710764287393397953437309259991044828077947799039061789802841652142476398862116139891075320401398165568940096079498818416587724009069476253760764413941023083026119214679260994944270459977378295560978963457696666933327396018384842592727833057716805306118856728010658562573907229253893785077759978588811230137201909330409971267821776702954012775460602977659918658483209863870819035757984931664392784505570710591345073510467334949991241648827247463238464445979578985200869635359325648339658588664457349638726302842709080146147431214314170760539832509810448772371499997446839902760601537677188326257849106675170608563944244705231505004631241306336449248878335428300256841915590356209609006429288437172573856613872643781484039478779520901123635698445970146355063945578114772218611044519414882867961071472576172129768435261073592801560942630558898246904565810855202386569450591681333736817067948158771962952481229499523556289879372643286115170900258980790394451870012352109122128186736262989491801682742446467823276762140301495300474344997706408231664544116800809609097658591432984347300060164002979553566654646952051452469173695135430833513992400462064849292349686813006545082050816462251577886551268697943577378980261675357052356920261031213738017488276072045210526809243517416252002999125879773091657487496686813818973078959927649320689743500621839009712568732433713906084762137923341666082527934930476476056710141593150833745449228217170722055477547681951972558334322122494484353471921312404402683356498429192926780958134710719268533306012399862696799220340754582261975421296525115241566994870903996207797705506637832451758055109681936078588123124851666868685233600963604872106048453517193806397602067538896361413780059040925480087675148636724458747778907139448183299326899486560560902258704880274703740466334777578858667056056097293047511346872184320533109794628359111229806013337603906767422717012479186201479492104402827852849399458935706952154392574432041823495044995810637091570054029142573462815164289384877037371154689469055826716356397568554132003638638065627307350802827296447795775281692539453675075723383437772603219913334609297748486582856704488784941632803675619485472991625931902898505433071913706358146288826938543444400221066137170827520301706278001012843130806311001114051881546131864478023727695958683003785159566527487681183862521935594565307359975887857812463451831237409582867783091203093155057420698284760243282313335789065041239106230542152978766829313224926787076560627000356771678719022977329827334085531113573232400635040503961343788801960958622026946683778325948693399427977068555918551680646206466659956604061275468050571833679855521039116701068166560870821498138774643710658762903174946358397929680742413578724413062992589043552983286752267269925570368252747376155648421712622115200393419351549001913260515380841602450991334958275752136616080137210943402948681095490217394505996037506496318272343589422355759999473600054706733005423383235124026952970358955075388387401062583675294322755372462764920827918825392869682601018899049730527762751710777135258453181677713802200140274391236662286404322993490565115651992066671306570676788025056478287262576483418061565938818474288799172904884757120790903191803111846488984029021380173389960013547238851883929466394047495586171901339173735012845206405765286348408298132130677714804697544981364561153976355974092824027713715218397123777486726273041688821429396959876994731960048318821004662408255749770081565985218397201586394013605467595146576575909758001106194130864878441722295639039319728199294048418698605526653590067665590104042120621171641166591822351836150691477227971776187171354684469947684037510234679971499401618774206302593555543006462149266483327292906490321494605001136767282809028280293881734603628680246348490545364793159254182316286891607801025682558165868899964177724443320754853602253766297814668105723747368137417306377085586450127761080065404673243965147789786142949803116157145263823530764538407674069211153710834720592794297890095491347810052158739358448385423835140098646235219759073912484487124899338095235642028188413466765274199868074173533678168576873700402874527384459505103183965041336047866124117525737422798408223921139335041404277893787267809724208358183394595628542686710139370683651190431098247140524727285499890150963454751457321238741699971846147531001337147497909128500694247525391467396989281372691465717155415003583477310631987826635729129442203316752314051355654004714647259056210584253249575365424357746647767954489510162052147863197686715578391341545233956209402259998039542125783256422875299760331583976055358874784727126731698660072769225793780915876198821242400124322051336344350898863119429232028182810200396906246488361953424209862699044959813377387650214590110650476159131183650828641066986551639384208509891284914977080110618475425831272944282800317333522555868236411323458869195471912481861238379770684056087318350428248642277839889969279399568317053376571412444967531814289889339250007935147418775730941284173094257954581657436343886722751062398664502260793889995946987316148803834298706809599471479830516254031182724187697015637749999802166508130161260587613136810283728623515996823754387054294366042690489321047372364792490269920985587554974223269577665149646157629959155558877062315632145196855296065951972416339147647347835919092707061195716428072401042827621330757295435307585275673682634664037101250213664675449081882043447284475824618306835827599044297127831163221754073145391146072628557017344597120281605247134943728621663124770595688572497530724339568888898098855196210833011917016864587149689921711158813758366023787507332446426773037090516533982407848496474325975691391460106934131359834292810816026928166148929859412647594074903211154881206679519599286043166273808983294734591205947592737323054009729014058544525707077546403742296568183653956734240687261605353571757150537188156591831996028711132706742349481944971264247343144440254615477675481818827487216548958042175164916032078908258739032196900778845217222626274664761659491802567708718850298107369051428120243541269985985414514838470156753328396794311970063748685578221407894172338943482316760998028648445833040959379117874175638601024323666355673988448034834167938632988358747773154069020879537348722535728529477263271639568613144684824133722521141805202370938971884469379253418881853200730385108990367598931985207595952439665531216031872094518791610581981150632521690022751592696400766377812919299473405794756394327929856168601827643515528480589176040465996504361217949566994788083840682772322227607800685036816848915394357306948521499978030439974765824062749780417856943705782627684983733471583825924321951382973673294897757058770573920185834668328696712716795829619513112292169182002139384755985451931742078621372678828154745016396784833338802925834137217269274027162534643470507139576049243230612806934778294294890738333069631084754900528409438537616485210660199443142934194913154322781971438117991519612387611474960868506984819240077606665049538047162077086112515674293511682265028947235873395691057744550945501269163371311780518966545491315182008774040171678129659162248444312473512841616704348311203397175743666497758279092477093233453124486522339805976693980928214303848277003312272253604871488123008655878474959467280017366589038443549241881183654489694988130360348754297254713738056666852639754351796527757498561122359533228524567342538841384479653370918814860476151258059335375124551037066149686404233392440110957716295014084887135044748302604494322622236135641878479197093350671301346201477402622121478679975801854652668787058979986883617032161737575587968641529594586591207189416361545915120284412823480737543892522525866630277308325606847513331780400673575446862309546416489878422488958608744396826172449056436175502741175305195715301959572937736101178876820845011674247360906862134697083305763929259975792050140673101004338654855427630573731658674530048662819763362798839119488724889732120361648821482634317823914843538658101870547994615297678409794178307310045552084414214072258512020438298556881759294971469406194220212606237790782185764134560561856468927845495132056091267498665849931703313692515388548646911318222110150748158779980182159166592147711332965580216223014022964587375389976044864762112053992352983695638050319071834115879670851039733923891674205457804810898549376725203384967279746503058896388272459604984930874320967714066441687324766279344796537356675874553067085293140052370612853951084631499227800342152580133063366154548222577184391337974623370540253036428468435968602837252862149468417599900242043097209447083009343945357941707939333348114860243933230682712953965496455351645210256079054395010743733505422681017510141641527471038777245659461377332165934486603127606294724807750463734161293513925208224863969602814143261895267504895081221217437675947530249489132352973447206738536344467641354175917574550716180744903345308346632080036903427212917156301814504165817662622991231815996410329449238174652573318528873750171108515168724639315166260976463165590479005883651441655252313813917809435168130483988033018017527807581526223774131055354348057560631670385197562261250029141051401578311149205188607813622063211183204887422925551385550505206502336314264331466389875342818767758097534739122014927864354642084510981892620864451779094258968660565643427478145056422298040779758098549620561890239428991985926333747324542549081415289963982460843491196426302461819306117710714116220952023700424387811332193409210665346956274813084418072357070735343407408580830326093899576464037778743753202454244207034592025703127197443348257549575141021676640902874291034132642148208883337869740878429243190448109019452613562248813475246776465817633325156510201369762179475982496961465225157346174151677489297302226587324177922200688680839273634780042319556367833885443750599310763996429750412225383930248268347436044855468576804672731683710348886314519840762929534771688176271743311463260152763162064009268610678970502692592879828881169321796131804706313041675465799229914476137223410004603918921803972782224382244897593735148895890873699025827358877323302594246788574239307729118127500496605330623645256018553164158382751175556771737389131834416363504335932453721842200332083610915776077807150268203352591413410367939456550097083304523675701253666303648848047704668911782651106216930807261163719993626270557961520728557941176898660755240929884280474241617364743377007143931127017422483558065240151643075495721956729324722017650357931957549467390816241889019792988035537491420195179778075537304309097782373656805857059142169343429023463444183370345988223125198028128209259864173447447069434558049543866758475857295401828232034483931312244180654312083277335927624954761565690902265415644063775623695475063861743741702092950651390211327128498731064380820795244339919852612766475332881575032760155827284786247544995363866355934416396211085470568462288771087902786773646627701201319365873016930822367299103988531406433918656714400128135200113511677257507895840407339254235005112974428745196399671632904436566099138061232568344430827689603920671377190457350229495083510290847496727733582320036399378339408643628848262828437691884839392763059202280848924479720668007801215519588149493534085388687367065993036657452544668336399342959199774934606242761682766521433571867677630992242834319320607366532159635177054641761263620203667587076661092981529589481741992869574765209073743909475636037450429082672394563078474199538209063450880808561932540344982630983438362352775082676008068085429026418720290515907195824189820119033279766253295031654737106657660941247969016063463490691553522267182219603184060350718559729957107439636111318877166958841987979338862106120994267355861364059330743093636647234155325437508614998895840728449843017469817169674988495158048797501263368133914350577108275199694764451368160996733427953012877908903465469007132658207932246186121410745001722353156008604801274161536155027173337403694173883765928982192716388661851903318167848743235881709228852689322883443543348313157437911591957363957959948653854852409134411619259879967975858948026380125034563971891714960474199634197365909034949922708096921540571548644895490422910896382980335806709200995990001109592447911954908525300353533061319509386553850503764186726302350967760444056096013094556676008693182098012321893705500990875402523782448565355413152845553186531698380908496309895677349628817130928770528205355620837043086236864303921045437691486980303552894082059822415128477243761204875822807680695083766919355816713742110897696136724734256132218310997445162624867152179987757138965517114495888997196513937383980980444169329575974436992996837850208609974360662177189460230456024938431529084812875883397188126508399696229039406771979228722273182066464088861961963953042698503511473508392862969980953449221996560962410280118292054359619635317992906073618499712641335479344869055307413739497634602647271965213441390554419230705785764129907880421366822266886919089772843583612991094285744077986045812271008402787436753560426075727555502374767651447210432670480961308600605854080575132814691188019925781419510760922271334331648481214535773608752609901613674448432819674181108207501220283379087913593585775860717806708568465233362105646820092350659214485677512134496107991095700926506259075827415200480432300404211005620021013328123001641383420287461702245411543893097489214594566299219905068906770130725347030137589868245457954406300686988734257301266412109310446439241185745001068522120712716319992534990907125640710441795442957563577082285659100038348883457288791368826989010948502177685306120844008973498026375917704895186303186523097932848855027479862842733066569518325831646352241474757603551662342051726983424606694419202898379017235020545335566151060685339809837858709011249904040596241007164262031128603174755122225868548121274251584295736224750235789007876420698203431951557762983908986038441393806336277618828344476300031335380574872293727347596405472852467861887094834470675608093530476096333992523046691822011691954536880568528732657382588573371725187952091708970738549036007850183206572802035065283686937791401974105385848605543611127781076200676996865522943781446319175091820584471820101431815750519051207279942613657757971646126406691361745494947218125365608019528685169387431124055892749520659927829659536999085885584183452565067657886937907140471451494800870996770580059379248438220830572475799369645935685773528640054162181135455434985987774282299870040718521650694956858912343536110648209190691852222311773570113237204361091748560116402749080952846467643542270502306931919246100399390880960916470225405354973628222122871328862005610691422392878249391005674298245036968710420615237559731626186886326073629651091866763545123424689172902681905891034874129979864543749633186309507500474912206920104052859489405611084830117100742681036802422356210097829972387070708595568935178441182099844699081762287521853235057302365414860360676119497164301659826661390556151112646540743179479251745394324672136259945270188533308599648584291278853243923755392331398192031452465376766908708551773357146737452639248182552689705101149640334860676443043460662866114981612385401826714148711800782634567552864240426797924249213636168315372840291099282998628395830102296595151969713327627427405445223514660292162664353192631896477843658930261806263043490493794838330216894248076950342412526881108791871483627734965782560106351749341110727936346848365694403033675336162546433519668755914451224268610364136750850059791149879021014802972377993540058605148431218376538619602679041075905127865827212597893914552316699061852659609858956424863884951533884576999390310329142601873903210827688579943042098423299917912705253983369105178853931410634906568876839647015371557169440769499033322476977481945177043553861615999832381201533219825603338772512061816979748274542724086601412604781085783079327051705379170214702887525965623398338562362801933427518291158639442276257778226584914223454916393601788599467815919873626272066913979173914197949594376102468760629950168239931186370243791053493741835634314791277643087381640912229657124834162640431640277073168500466675490120508211159755945112726075746022569577373683633011638618186995877270453917556785162764784476037685593462194012488806775686195886604476167173354018407308007051663365895611247248648702550393682376612517060509175880011335206690721269509530532637202243577916101335121966436027564023456977152087110524258585207441578409741297707068761081416240497821207585472059449751510115607258503806419786601845900865816115082860271086913508357766421888578425330125143379318478628702453110938586761312025992594176025286563699198896046985753795531844499263080311360155343604959398147029518393117068956964482368829966700251833054560282245538390328580530231534194830715059067609174931656048970473966941610381832548127107676088797325413567551688361579098413852526478560800711074319904654787254830221694126242509805369133210920332571963288457188100174078930381619767326425747874013073715060091765596456100717939931780641700983292109779084502344272070321026008517642365936485440698339723417170151950982837018184416964963391372195171505878901407016124126379371730049225226978960054215006417566737784472076813694081385895811071289679103257151180387968068228989523516516110188696459949873162994765731479493838573164116793384311216903176983979046942473329238193304515833484688666368994257811964331089418773315659317758893302125046255021782773779377767207539429546248263388222478945717911022622087245310082377269597932773168934039146782369868150443109744144677642591630143340261394253976830481871776648952284098924032341449463939328152075969835338051127065334074579195337930333946156308753923481956576780987356284365817806430529752507268220313634045474415229997505907499291735914402300588315540869030610440892792879737500713909471302762296076697078943127958595049702885227712714679909725833728561628225489443653160402935438295480455372498591108739618057305178405217762506867981550165805626288146208836979073119922152413121986865368589152534951986525764651371025757334484193078054435245700481401840344771220051369612164237833527129280414212769593379506457812744926946204745183600993811812684451761035237944277871263839870858554159459629889537441736833687020115751412635462676340828500708079451951558013957726413271999417702527401165854611122057438132366836484972942810752707676125578750162082963683182120520730956438607441475124055725151512973926549700251395250579515016991955019685221499107642540768181938588374261955480688264798799459287580296780906469980796166044106326457058207724703075246137574652581682789664134687792110793942650017068176908064086838257013556345353812410525188510311558689025189576182396624954796693215274263996087191112250095137693584958768846049969686566247896913382647260695519872990552588337599134518284723766301937096620533858553398403525755800520128070260774623696785622424669497679759558490652461237116980199023943792030924837423068261472953667436533247389261612873444031916264069676195408349782171598327182562268182532855050637820093078748420126109289004542765719614513545840402080108465198704712992868915165070756749316235350147610218353635265027434213227754530085991796245662633679417110378996563024561570503042806853094219819132689395576876297247910778655588552633974780216687339848450375042790229900764637018601842393533519934080553264901483844812371825888362366327935172168161367722575364455388172791000870141404993004738759898361398557300515690044375454839422493333446997196049724760987467219666305433958108156057919573294467367552718275755618612571735610973196560373884084423257508591476170257721206170957010358285810251166106793701861697001450217045189157828496188968518209998740395835559202487807183181897805718196497967181990166554534235235724444337507565755943465949997207483367698926831722343692158266024127374282438582261084050538653374501525746164907616333243504662125483042219809666941420163222418637734240599060887760208821085853229302960723967611293840446496140390020351333159530933191893064235985948620695812939495346333125977419773679759376849831383103922891501704310254897814846716335759020859609115523698101277895065863023475684549742549709300713369350947017259699027833130518911856740425904435607217264933221118611391654913953904890832089062243570097428918764327197125954478645508551284662997487007265545453791846220320080273975722917816597326003334635845701281075069303666796452313529943599272074030396583017111771072831172050580771633993438830188461132789658683975960376091158465176713084718199738107426553593701528089379278683081716521959006207765445635985077257611826744309582686075403498165433788639366684894645869001448244813440843337648096904770263964554415956129906175778208877248278502653677013914913516758705943238427765781907762809110005116796904952620744473330956678262844301743300923532715401598414289560559800834555235135468665603941052353312735281196605094593445370770832219744548134381103583650130773678664003594742808568968652687530100819292645702061314965542012685094836891423306208292827526522676565383834043485051194972147711342187998352443180187614588834401350344565438075422424441841222873099875740992369113962280264380809926791523799168608750479738350102181607961018692946393088049954478387617217506872655006322354438142053284883984942417003642981457636343213516506062282612022227500962985474273096065495375901204535766932213841929209645123589270224341131950358125573902232497188737352885044778432536556547444961582756603031576643597930804315629826522584912357385031581028407973136874572454666103529534126840870592135724506582979594698545964327854757538612208464564972041921629886321123472382314344577517600299740155219432776181872194128867206689788164889764371268441229509583370771582503553987694230688897913719617500818031121158372149538480732620993999340579920194668611749327411161553063420149625676456992321034451867091931891473563804919911630850741898622034945124662167550581134140375580061368905302760621903609254317859480212627673139181686884637026178150376683874386963147762643679483706911143863263698681119789565897788511457855547487487853525954597303581757282759175167758176046040001244796133268974624135592608198804899115150626228714243980434575373197571443392037587302637156898844124497073325999443654187159613984474869458166386126606166729101270618190743691882182466649382414834168040766948689568392126363512777069478895405052478933426246753252640835855632857855202212737515409764001991676227936041885365143774992784994931291265588117642484026402605413086028927703273316757208657233608538968071685370131061851603324673046348458634468480139541391876995976745486849799573554397077864997507456326029583446732942087114640006024508949554940500327968319727086284902664536196712661078182123510085850230070155496649805593200240873048084044981486099758192773888050242524395299362442087453939020162286046348155856267212523503710796428682513768372905981259617553726175286822524814759431682167135006275214245028906250610888958953312055363154284633821697238342199003893925836896481637098850786090456268913020732622208033021701366535712449374253665095438851711206825575139636751227076267059321410410155735882036335768254577307965206770799923423616586249849977134220485007003617745018841388042365363330953253777916711161364148196811517567375890185067145659539068646466990033134864220126473898031358300257294829776388505360111927251126281535145017637521345285772341759357843921166327341632773382401263503689557920096600601078719939471644239552751802593010616321649460513858936311871687053725183211792353319505764552349925182890733019186437358572748411971832265474253273682458700670285485958964087806093591225716920297441815695540329955432990584367279837501336691841133354260141744146167618818519187641728985907225357952366343196863124342171669046764080591820904011242267084049396261457958576359430222609299719463087598762852915815253672027556449344746762754051845203949454102815527558090747011161725653342848590169134286738252530750818700472050389501583294515683299398998969839163204389010662199678422554887052222283902237372192365550059280529334907530459909191672368035944863232861696590132648621734927943600758216170039492376153006257223664588367778966432623038430659370192376682793373984958417134798596644971699401921884771255919828687105118699997001878264495590776965068187487213976414602826671462400730606029398612078828975658591038175809444260402875452416731004437405444130892013767069413453432598479640496653795108134948565608583024503588644719504093336192759471554511267826669380122646070050109030162171320968443667859340975714602923065273004464668031449221944277381370267636244076137259022023779406084877790152193215205101755851062795595501403949484020065194315934361190789199985198930334393951732173724478948989740818556974344630417229215085278329717508529348522145676880012234753370394388174753957126119837984509773200514904140196099355307894217255491889602350067153423785476345364561357577693260949999062754774025453090930699173867625992910908409135663634044225116304316499227161298581011492440315519191756321323734376616955264901766642540040846976851173669739708299140481345312117490527615208833763484427272320292731141875523730882543948396247607792846456488206597589341468495836905278412705554578753550952171771590667808507110971000911159657205905885751908428641208350986574487273808987444520834514450159293477552251336808578174338686012396762099696955120244551016193087675826777423985114091210665079783251579967157463788338083186570256065128138189356188730800519643283768046927145679459826693440909459336309142525190614646758153561702471783710358538708758082275849547896415116251313703648322583477496618134059711634788624943508634727071765686155777588444459858224395866563384521036559321324158270541434101340603707042477025964598474867250658755149572657599818366852794336945098893198435662673951161633002232349068845639649919958702307618067562626631311630913557659183918876486616106387757439622731253028103827841832957822545388495036470436747255306528664038995119991194014018081204081750422966613719722129788518741651843066175674623668538719577698373098537619473837702327769880009820532689274828513941776691071598431386920682755176657768877049607983042494182761597817207035143458540664670995581707881799833907725218224105751882228230695785582729418712156549565174606908023000218471974038093352250951986880782761120853023402773144145901041689367677245379025922513870730069530717471314834471086449716380827611166124243312173412172400360110993840251769053927874352316702276391152522971590707006095908411589326914353139749928254605834799693839976021282142047715384240680416855257677326358722264829595875171901601140105863943723827408045967957738722856560551427131039483010031104449759307073671347361612776410826044669604540903461889531958275590975883611010197126196917753000523821590517539040324830357529279830899828088443072790956985064871811192386648265170546076786292913532299386538268899680215353233180838489132680310407322705307948939162749369652776178728235117541160199586759096825835383435708588684590303500707254606217186073980552163233598695866736034471441638758444418444370172995122523098207203267492188548824917866035853738292562096386906758712307813991909737014980361629274662223897422242894296358051632102553142195801805540552546543781695754190062849993036003344466758183544800921442721230492553426296362016777828180423428438833091740735636982325891956130953746059649472982935485571369852580254476545725305229033995151690178036760432421006709310197556740988985453344224687955096460781074773397357123442726848617752161538798548270144738993322671774868473372458432906277956392762618153955406990395577574787748409338387581443847736465600659778576605767997497301495444111887194617669877918192687870486983516933094794570899338057182030848157689973500751866926733104024013704168884141142154956179550144951747741306752380107289072482154901851788302856225180913344121357167278960716802284518016437555508654036211913840210612584185650805605654871012055042445070102797956577681563467719021570823886530038744551803679429018702491504189376162364484992004340508269121919267909999323573793271581155222212145808645920868410080515150419834558868683884304961910347139820790561220537997649245164632832788982310466344906192078727334309317425859940068849855542479138557084529370815775366524874661263577197157024724006147487546365396876628776619755889424361190282400330421257528953818805805962164715676718768931455753325379083654600817649712604639298670265546450818589432488260054577353861071829315144653078543739570357107038888502819615517589273911511063899812749809607992225890570174364328808365653217598490109566152121869128807028346768822345869774760260923659430546819185457939719181823116878083319445115688895129173658528467995412535591892734945044795148113439299497955523781033229337540881251031585373643233294742594146525093496489979890364640615648982168834069430810515151836036844747113395779148325542474395932900806132500428801394109692117029698826448171061539762052863579938660209507612270743750426176192533498318088073720233431981677342373539694176852470360603687215733363268280915466343802235767073496861036790467598464481944663935296136833511968001041650223312900789577827574283903505193948708948237186841351585938153550247669325102698123787282973003586559627598177329858288334528508835286948362173341467477447269526301521008117806528977450522596684775464135553379004859142692630747062685546830089183886348616174945275388685781881329242679809693949137308816511581208097068620902426680183442501006251521531949746299486077750207638098859282507801287053966838986866915820871876386951795088199591479322518204035536065375194048472314951843376877686143804832499733782460972824200928739226826668567599775691333003110418817198704214814973304069948996855945392440656118009145576839861985631085399877367934283496085638372242834648253579809232155716059583904327146260413790167237203969830119638349047200468377123251980109378986627068852624051098143946962195452379200115783645543945966277364122109981870675209298147363442792478804432125323146865083240019625856445467670008403890650242585779978934477412688759377895738181215269701143977333264929176655265630254795742170480648859012984082380810961424273529413450066672193018230953615708287790737792581246472403925744146256572899947479463875971129761112896963123675669852820560502839644716900617467281415350854349130103830895605735642623372962661604824669207207152885000639013843061911323582037658223890878478553939715638799648415427280268714780762854739058434257013389507913915923256362004678477725414694921108187049470533296167621083019007561348399646309771008032668320220765950926322331534878672854597580776332241070513056998415857389039220779026189293867884083394791919528041074102053234952893962655705260748806010339811032900276079940412874594532169220285417347509949814583649893104556208285345856447112555438337800981596267550398892583928561698630261702123230375422249455161220252230490116378585716364451103996226701490148793808454025191668420586231705870419399580048476165828350135963252766165494541391870974711283252808197704666484572408566710716409123665907043409225704878109898620992479156226455034605274925101540987002993872640591679092803304593034265882643520029764832837659266309682135759731810911719750749975103552323297866346404448277753279110824950288092514333077922332787595913102116959093523750252052671855680278061647975273409786009857624163466631229987991963247635643716612902248176706464009503655034058407423916623677460412143816817986619940354395448450746185823169924095583610880071517006346745737418308399081457349797305533081030161533547231381466757323742214700002863362218439330609551149302558778871898533213244662653010887497814092886802318344470129159083490673372609362896069330625544106128270768824822905512713559098549829862311004345335579990532248561527599590861433306063834666367647702479852606403341831864149402356803803207332956862808594712765620361297047454903926675631517699227457531435086878945360603594901323607272861268326937152603482937015916537138862487894152689392130825947346372379197602867354305602071530212930668279529401337658559399159078615411967722650931665694248625813441314776513162258206255213451230110744757606154854896414179508761555676335946647595196946818388620541353863207677722438049970210198983589951396233569931692321681395419659817186872460600969307484493137313705667200235320893694295262410562693590772169576505568740700904503671727242724839361457712368420295473173755913982012051711726367391080657504197536810190966707308570604115418391847958563972218173095221346655774178986464368014703776559975832965724124855820958232746263296993692486165732507744459419180022550371103052871845636824041325282700750652830906943310879568093220967759460737603361526648731178269557071797108365740059133699877156883383057827667674043505233315815098611253282350255114899671471622541971956381651298068424028658814687362085181292097463906607487888193864297076734389746059468474719342083478998593714916571111469809217701834412891050579877937648744784400869971654446658542279669113431293538453595158503941068974574236912673037524794062525319518363714640476720320726319235175627826353469182204798686038236290882930609953788183041566020663345524485910968641573464019575826780335988505290594571839272804528389945031621509351017002891714354933323724105651447594015189401252022688675826921980819926963279020153774534427980142825625070136376167333543130408547950169444582650938048459368927752389162511371830990887563476677306235333890155270782676587032532831028875563072999629241258464192026740427204584860914460413811570911162034757057239417791330276300771549910517170184555795765745731287790083593647165297826376942303057310931108199677184655863862318367005294092310793191019988039146627168645724716339410052953453117120583218814759133588591632228446261785183279585214867965061540426331595422955932260260766053193343847858270478785039182552652949954180408956059307975149947770027884457495660044043771274629454344197946351389513413357052703138737338666498941308884700869872813789081775461047129416524681433820456855634335527209336164431809019091667422670997546192812312857150895791606997451264457416202072320384403959306974909392602805491390297860576795491074738037773448676286376305474706061968186362365957993561966947986286288820867151962815001801708133098824500183761061933537703745062166915292897433739967638047181477208213283157959969780090185350519915702213272312925381599809603132180106725981921940805416711397308937662880571526034491194739882123589319760217005106130562317671890689145614256135521989412302760529762282745403380435004015734572711232974388133198322313669017168963129265792935367903972040417228907655576730366665741722629666118939249821808556097258580343769637551647357919421578800642421192107549228165061181585189852864309100282776421032934782921711130356773692812652841565430007031588368360769616425973351840641207296166739005875501426902766058602467361187714137633410910850255775032676951810773125960367199322121596113385845625058127306818569356653802531782658104835392337481917279706082069425995637016571429629760696580130334911850826222947896115944516184324268967359620616317818330730356380908997823541816158254021459956665312249723040122675598764850006898337216930293753135941819651522520504722456000710306819731125221823662113454823199445208264304766075074415119213060176892534990892229938143041020804482191045257658075237715590888755524875365320403637980135319922427190652303374925675784258932568587670062348127442305961113945879979672349294324265428366003710648968824145690970357609617872219859791312153436391175749519718128177977208441859888664752753757432467423397422372101163425805468526540998234500509601585976838450599390654191354702941157019181707650015082652223651454059711398606696987103870888674773293166099144996130038575451230495966194048173685598035539036477753989650062391149134685373656723845296063856086853026055857429039037944804297075464424097475433478854729044403025272481139673560240528661969765908753830033540145464768915249374757262259027007801735054805182794807045876474109723569432299331089630943516396101197816272057653693010054122981398907740111988539931235250603801758699157878978720151385569417218336717307752754476604863370094348912435919371474903006201036434916756037295079345752064346557005045870093109618545160266942937477538000194772350576471068137181239580166013857471920241857235149190844391241094217303081747050959428615661662340600661504794153421892713288965036061131469495071664323784876945304288343806740244134152485865487677391559134813408266650713513703027582258362071642305251345032078037654755599493363943361558039302281521417796872373735873700974152609924933178251947983819771924452804463268403269277948678548612576764640665942801407785137382450965338220514422609744496530201774063798792300507960281693889281018533360496024968111049092561386876750235420780784463867592348678999500139861899401415301192254339456043292937803733277432840776804384192287378350199837092361215548227216325367104140859040852556971727903693985150162305647848001711772365593305707007077806476748864097619138732078666162671259699384128142448921824663430307872155337160793716680106722736514320284601132434100903229406096653066906553551393580331417649022380952792527282910419913743303896581857751812437813199286966942007162991000433944417102386135793344805315717151875139316772288399268558057335872699957516498177552965108048431848921096149855739648830423642377820267969924616970955048903552225798575305635681993062724683381517751093736100616846693176002692515314002848503189011724505985860134860202121462810882648032587971165232002874286238808699242482974639782159254602150850167134668330797144061669658403881115448504182933761332561654705772097303676851902785069991681461494114615622512987318807833923812571449804185777836657727593885466983763470109732558648098494679444755097132670306929738982552854301910854054081513204634585398554323727050080345005132149280183980561867596075838540994147409275298106315186624605780556275431803358411818714809509769958605219344113169115816328208942480450524209011088293576057293663330581369452724560043083405459732854223384151995562417202782028699700452933175210811393888305870372165138376574948833815753399657337121686035080510107808543111367010550621062810793152803199988965946852291933082080884241911459883079614886538996698146307526864828052853780744554413016927431909881284596881959299790714726564242391428433334208807216822346182766724190311882972566108031043534056140551850403398042764300320631277557636847103549400046469317232732576382436563998307575433463463067407273358466956351559300436196831861469754046116254246352973918780237098362438566055039492964313769204754701485013730148709825200145121658420217306004123236714989941652434792753932570462803889499220856970299337044404747076237293378552291278126870413736778374562573484005889648890916548794210665968027331431110858475990425607607036983632376468868194439262472668827232116660777029388364963254809617010708112857224887912283316121984582455679755927055561369690431976091326876757425264345760339126044617989019368247793928858166636055494861201395539627380716993766004860828529267213966583180493387290175875149240451233471104592785668076449765617703142721367296157657861451364033970866809049351337819436571951986277184656610636753921202234309215938539520167116351707043912021131955527850130417055674692261591756722036726685162575383924997894540269221028209624192130413349123812701150080979191654767443153262639258651740972996981168460440472777563435205399114988232562818174555148535665109989700343048687009556291024967414337484853687241078705991479168328210555383264101807011332157381275049136144641675767808804645653354319371611271373377148017427057794825593462136117781960509485647611360363751834602167324876117007607371794581440242495881067728982282610394513751574219900028200825276755267701994928100953183281238537497861432915970112082664776739435115912744776876635824148031993693416016482955626282313906710791775913009966712233364482425889950536179033477560433090407733881968390131637612404377475186702915239571817996117680005376731057905760663982167462773845960489980515684500392453108083968690641442217444563905795738275825361910679840832862375120005518265782303391075749150540765262218608122824510993748936354741929318908421048027795408885663901981279217476451667902068210100762339415442110653474677343077499195185002774473901303026200313712433850154512415288711232700552263854844201705546840995388933104281576267379453491660252146219204224222673034407799841343330099571034558728342852944908967739597481786706037136033012802523185647330553592498507002339304171371416905346241496628702328647817012306234334907759428822404475973170001405860517683111193975939668192048471480406087360070906574591902947611562382807824459300508091633632676353213362860133231956235405875661005532603992947240674825407525671538091905748657151788598414938549524768142473683824089004820069638099210818763345062536415962401860716353050762445801854113128471875059778498731411237797949485097382112125725732511418599223636522833691984623773912318633983904989913445577071023772906382695123115857987423155463308483882323597261170154161590532673196254782652322779513359369751813739970905741090207477159592356920694306342120919855437669946582536767813486460253434716424503757961501629312737673463921211568356590062186836153645346793023150507558140320834412404340228428368786508226270031742270491216607127926716870136160733329827096874878076393971096062940255298903580847477307018824082499795084681974632620366444081708767740797817502931144020087420286489354906860265977335571261469133468087057520684862700430859052200893731177534433094084718946118952553475816379467750724271180642797315348442579877718973275645640179464041790015669824811501749088911893080996319000548357018716094607862478384430600439449574383268228444230278008875965453869373576090629257950243084110063496997148791659644368065980532308604371140109505615529047648566105177487294667626472408356902510928084935988394979484298722214861709391938653147130115620466463151881096964909874800988782119233370027426704580505129784234751533999547673772796322374634970034189784072140715906247718474002995545099743805884580818096741796340468468681652273503878026867266959276156764807574923233050246967398682459598761450370688515735666487669008871535965121302181190509106885462212641649708467039903361469929393042633896665216902353392352272420265575907253341470758375165815961819690723143671124273089814293289436614384451096066269663762441108990976558919184519196527564264116143306834901704353913480030668868135609683578268279784674929714741492279192733913395266794269295002615585708512003877987995999181555114510760896981392694929333119299679455355569599834394860513206932991285213050883229653428495804262586263868734262738880270573953268681737297523406639221661493600024485786019121436704292581484871051415734472919389349553091475481770498100262296777876980206650349713865896207061513525923018686489630086152992366381476849082005276065156822118106177227528846279043385947619804749159541113129560154946693602647959319994538309427776645098723388980864725976200100466058922094315857686616504380743678160673800616893466179129384458117718082675699513713027490858397516819275554364134074853155141364126498951956234723645246329536481492396403502246898618145231820661417444135256536811693522808919222700968763375711269825236880432324356730573800214591972055608021544817171208737445567403793874436335246917049345927387444538436775123512590071079587250538939197618483741853222838752579233629119814136777411051019356369586038025397095054557162343329352961335594004895996999337406850547629737364230363490682649906865596198501343891538143596629944858941377989527556083215445027217116452949968180406618402252304571023522766376709884754579174243482454772965955986098260807490088167850761722118461015778515070644892732905673222263305487794823456844368665848612203053284042788343231767983443031151838629403235308016970640020989541260301672395207630287686402720297302983940495706326592493646880212040849885169484933599992301865595334817120333497259961402343333670549171554689382610386846145515769243448961044184360446660674334078951240860958798444688258814077316425840979161262551325940157978584879721152425180650675209160120882013695818439864441384988146085944582599346553222704133536319259740774959729783775693541001914838773925422550372661153518826306072722149438023836730782232992915998875861356004569455098025494611167140393382331872457856289163398171568532684841672344218538263172871422673301695211782398448715338097764921353921008541979943827006931545310276655221568308169012386431759616598123605603346416646469311233547165148590511952795346486902229746290391039937611659785220505188384693714078771787324929924107799195391616764990073206559130452766777390787793578822657451315024391323037702187089865578195519797405931642774767298706007126834388796087181197940179421791560029295466052218417552186590082736324908632444307634035234625380214563784669197640829579727067578650699299242336038395075602624215659493550370753645995186792099709917756478180495642854592912719657042295994125342964628799216330200279068266154201870344348631329688227031665937768727296573596118541199647721928308544712918271819956257271509634221610376670994693493815324154919981484276572274953925454123055640350489070655320984337639376982952370867739131284711288473957268632119513194845970985685850006236848593832101780430404462280735059327336275597088241942903066222769672200998899003172874585119600249625015729225335284629642100299218257408915920904354487790582712043033633805856184342081449730715789715142298124815104414892502174249957915643151265351105865042210767714473307230751345226122563805399664518291594747700112309071271126930180634125472749050010709276786609350776859679912458987270839349168100343849986615538406520287851025245989249212071266659377098800942845376253305017875972355388146508241132220137718623536652143551787640666355973063893906603715358174638225010021401774083844743384826472422764998202395043842615060114505029891795883520979337454539525488685194152220380955091665932470175313666112776608222958983736673466550194363285926560553358838755705036709644954515422895327892139835592907561166610697224627468752033660755694429460520439880947562589665294662339851899107803526833437372633325899615117091337614684287554742918679007642024635833637476762950264394889748775350173570964854954264828356275379158453322691579846927651087807681283186893012604680630484902739950036309242534041825283896489764468979243913044893097996886988741252586129335725339196410789447833780944656005726454770889282886373676977507694485390847889778456958160430652004517305373084505387438555674577591325763235863100019861159714664271573972492904145294631155662824046584741071872451459220206642779729132814169146830003723552345133318647373150152503209746580633001473227138014742367306801957654741728233406276048666727826153734656098806322323170203217762971421972646606342669136880738394480909977318606292021651090748527464023459161808474648329870286443219387103206727150514799772403322437272679937508244438823658646378588833347741573012235155617826881709636609406040374749724227684029657317338031675933570147680302063087391032756317808207998747986323307884695730953010385700782688567440833003059379139811067815665708113180452843024891144331687736961402865826217967843392083381038299617170115246863299427961657169154659453432352183160844227231293395659356559383850037804828162199121259627105834386819546323168997933413823830917424810167092068430124422616388327314184144765420169034984011711994607230927185878747103737108958119626881321279023252002150106236327793677993804631334414303963174905077480291228795362815754729775420296272966290610405232071618357367009044001114184510413038761545729236141853172532838622465569946801489576217036909304427151619035482612046335442955514899612218933139546547351193352590682459918857415067976627531431630570158956725612130094851045976638143798364702518149070322570781173062451096895535952297176097832858216659752065469613040897040705628177296788616088469973883250414227144165771680306849119927123358478819677870965427563392162613915783628391067620137594304554382396612263009820535344826392578142579214315869349654691970636627442645114047812927911611823447954319203770110449544717285856825564645407764388667715621881722877876078537160549219685918982624936504549311708624320168141159232131780101116170875028456690817080203532424958897992062260877927121455447365855479954368308597567972641875059148561902867003092403718518870850588303520259297108018967756394206513872137156561379843456256347017285111539658429323126377613131916563364248051245421096376892331575780511125147234475201760083661623604537259723659205364833365413524428216822618512006992040137195098158189419736800192909328426253096354338283751436079164886185426681255803973943140412491768191885089043624448377534353220235138872845594150183239927828351833995096403218402230057417774145685793811083355999201662207880535576341225155109710884162846052662490245569535459052972667214523859162697383848929249237155480818270611735491226105599155179874525194083482581588565321407666126763808258465186288723945633638350319955190290496888858630057377149046157468456769675352374821734687062818619608591759433156156505501267782527435346986821026428418271627567033357720643755651049533933491818509886578046084151609805916171461230872425151399424813202835297701512079267356359048551632321804967481648303421414032528123876226168982195233968338842698268666461545019519840539817279523145861467596938365269694711536910232811296570252746835029890402169047295148734607397460122677162137713573411045201550981557539543854762557853513943698841682054287485091823788200851608920953014883978620055068139900019699441548164964797491953207667108006488929369446499858888071982843117041011586898865467009770437272884270252477825017943374502935852084343588123527062105324512697333672577559077206672572091015133331366116845458912568533966804986596700243730320112935646880660898996767379613719365770673040534822095681870829590319266935472112735466464301092826928502315784427844080496491021331052897980892039014452951310676064653173788169567314357500079608349657604725866983573842622911644149263772215595025403334632505393774142134126503005912679150608101021794918642127003272405181923657058233731361185022610320497607899527682753828263737347071390346926056061404082235205129213144310300998546331668857679598413889148170312737761345880242483779323905537380060759320853051945379466492077142543557735934078063719345134042030923005763471973049939169458095288537626560505282518482320355848615248310149989861803457556561262275439409388035762432266738205131406336790149459960232661328766461472066803313514029577258773581222477663337335645251371135908970738024005344855537282009725225486433537348256933064722321430351901934950128415885966130406384131748894538679660234682845166782652945194206061195918744660998070163423547353963874572900100467518554047938909072962421376661668837839556035915855923128638987308455562222389182244793994621842833855195157013631638665838785510143810199920327173521271806314962406803703232265280228356152017308054179886524534844575917619082748786871895469449476339308401663878838820397170147373141123331697881061378399692412190612964755628621994488300102081329664998680510596065324043415573764836819188312232549061971922567380940180326202927032382302379815235231700073699619186614600508937309765911492937231584050683928680121709518015277571093364515624432963572373368956290112686897862932216701123177928109550717839348527279757033014350386306104499284952466139390332062180328338529109485882591245573577880236286433436069267103238337236519894742784954787412200337996584410818202849298317176212734154253482043044640869927921702899299843027428053800811081784790916228783650024474645456387546301523296874748655804615001484447362548769208821128008867326269018019740335908824649521527683100741779708188338446601293419443305062362119087329538401831305525928606042294119919303527210726586512744148071380607608467375808282407339461929278499353987902070094604070397957935160668299006500330031850437713322007657070454609679565836230735913311102808694634430552520673760961022255412091823865593404308817330411933984651959029188059463116911403128678317415119728006734247641572057843539932724660724405874963389112277763135452177838929354944879833901237282066912919764172054125184304804627838387864324538760258458602028844481517259769632466167071897596850780946905430497278341001539875891404658668093605500479582724455063628237691907347387452381451150909766022778307629699992730422582166366395031856808113152253758193772083220815660563710856089071845579552400007386703520740423548870075425054263230454125599206453645387517006945125726470041652681841406342727099957967036795397684519565773949960524863853582776809713230959381738977451252358898010686606316408689628124884084973581551646819113228038874963305599796366939245620975224920814406281417055424292444834898791850735684725417733516317968570461404469482360922950570072673942634120562262551155178609850543682678339484101186344143938871549413557853374246407920203526257485599956236059802981192208381236329295139003807073393277013327519131263178239093794030122259333539147428146980339512540106797767713429325376598466774808030965991105804877277451566178798984019118792175508170594020372595532472500977835099704366447139331917701990497073189858509131477116887151910222685523579760606054527913136776772392692208111826266243671112762917807310804260688782682462638091285571507456679992902016085638196160497955010709779196169083976985304356852795271994019313019106383147739067093034811122170907586617320527921051329391449661467178611859819877158089261263132708377926674861648824132733760315548900701525193034386442633786992278284291675790140189507319737087943619618020538316773405467800760281588395138790152786105570931865913220048153503804238864114405699397993788446564269235929231994677045412420412294632632778985208930181155483148478215437348739807677203269124793841657714158357951219172469831165397681169286155568912988456775440578775478079393409264085550141865346995023361141780462934995927748931542017496378315395565533771669169439306330066969055056078283147582075106409841634302436956995595192078711474375487900994053433902449808273047292664886169219595524410545333161348087899275843224153598847097044569657867511951590761073013244635746431160391048707417287890965693175171749040412468578450003501410385004690631170184719383748081338351347927552715127403655805463725137345276148882671137818514192055736280055215602092128652363640252511033974108081612701514052321290641960575552092706924308014111646904525594141570743137058054428194370151262490475020578519106657836867821214390243797440118071837612518330739782403897175583818573370405705240997222403155097703565573812654453342002727822385244882734678541483981601209988585036539993005632080898845234864890771602030514781127391365024357469194694907280852151722782991936250812696936449101082340741279488393032300365587818253912490985340376635260509004857096810552513516759969204771387393148725911499534544059917505732706208105749216595219970209568381402454076242152765804111548592364317193152487203828422832453312218352737539955692144912688032136234897115337633409373470847590767947235571606706236545411357981488601565864468330951925933467059148949950433342788068355554250241561702990821849862178431655460729995231865073958791337191376489678233798227043030938705122271911694997869935227475803667119259930105921177635341348334553886166822278676487640784685923945121846960859652208222667356618921359500674489031550348095027178831912212597129840125370552415518064556752073003396935228040676470255071013019836532404030390771000610759030279691188448411371931440477682183249049473220162196854644129959960023408062882640227464174954514387741059332524618736708503374261616455569325357220495555901063113907135159208005084541734703044926638858832719109256239397935633051756986798901530265684593322928484356746148164469077071248572141415481896998240911481769808196897653022856977418352683672203576668041590767973600142729792622001624495004210477115053573180084516965084671992401792950709986305803381906429473972311480440497262893438320197977879883535501595601963261753492562274744011085858053467978248921964475635303674518679001360924585883908788602366326174117622605341435156453399147417335090433679610190990062013820607854250554209218639323063381457533796640745599874012300892522629583007213331114767165745998815160141074050906711761073544167264194436324945972176536340290163953195058728974845726903822480234145015074987019407890336982386707973325548873646782821803593453215191166893925512355579892866909797502479388013694428439529004192396214150376298440577087860456390922592076895138079430515434287684289481890610085642557773673657531715281001105037266344364331163032018769934736191829077147512364715786637944567128474315462055931282796610122757001061879238226402211831049291980429136235252717367103049803936720762142792572763739749663791704461121904190189567401089223281172652995320565797406775058553024975777043100368876936680660977602168993928762984361445585614973035298233340746800820396012510063476255501125215111284725692043355959984603472784536106431976547691200205110926392812116715457122414381020924709576844378914085826677840080832925328581755057429560025078510020075480407250363704562178338642321272830690696276274965058184734454471251187048094715190809326529816647299684122942828014370320809940466503461879201393677139175134299539900476951659909281979195807494590050418520561490496255844476599308120358611468192161134385556405101832638244769450156596939438931738626160238727949654742152861942430764531914212481597722368273151436442949157084001340089781426764634362117515450449362086677014968763482663836639162989083663611797709144164170499152193764745345834266449711299615754703817424861275747585331679634027364178949023053765041545532492894352665428547511698508798681567766297635150690487531780547358337369071967297130314296535693818987133692752031829142086312866958724808289245371750730117819390788393923461893309842838947713633772332767154336596803641985594530694268509494687170581316371793203957440235011835036194900304856430147415538038677750084539607509057342432202079839046643272830245221121260271063368392453013117317622511503825147681577016811926147602272034993253811005459638246575492710438629574477017123774150745491516211611569961522852216811010796287397300086548440443288068788569039480232150998235969329403415422292587133647057280004913480244181825980086248483593847443512466365514794740839016518771746267642862957505733174640875464848607621390831004342114565814294239747699648562055188857258722738782144921674331968125011179515719118009524476464885890693312616532021841690445311633543207921807431667789276121783386813604671936776562119438936076110634954911945418550822597119012509460014930656618234936215126075286357338447469980093264648616297590986503228149884675480897073955168335400242909180768024460459683021355848260628703425893194446107900785357496148247158066305565724408386736860722326722006062420900451229070453747137226073100988149115063873020409780080880892347924005536967077530236738253909754427263855280784920079612617987482358591739542427289558096773932734020308467464555162669792337464143268011912153713535853893001428171949625650671252215188189528790726827421963304397905864600947207333468167025574187450257397250195697341077563153342897908596816851168556753120406305749590173930253592936117879961348592513432184653104377888255781777498346228859834574225064424310232287034241634998368775889145471144985605058053325691564427193427299031201504103240687194040407898932547642739845479485016913780050222017878775464408169391644736786527036257262097992599115204574078199810820085011142620517539494339719574512406683955667949353732093969032554243975620095062158434995577547221720523818558773210013475083774331780130694292262670029394859753887027356216660188088341820717071630918146213035423460788693413818533620347042245817895040301350536938911847473348079580241755222377671743710049115896443612685154652280091076376952199911710154146894903638630484357338004631081182793793689229255530728164955889088263092733206571150614272340855364195913674294394307392561000787908312100520803752533443091618379711585148534300438144962726515705788480425943706267119338367455335419958728957245531325620557391677230112054489003057643617801838458941796181573489251228594264228327052146447753432011332388493056080748835825129507746724433410090601188073941111141534432791292612711336268972690069045715459771346971860721024282031697426353341437452980666577874529321672971565260756945035301923654288374069283126975834300649704366287823484309327109228927236825541528886618577007768283508693536858708831037232596248412861232216206894582126479919245742261994271125873091518439839741499001905863037951319287410876800174115998986566925381339889453257572826725756832823948333517061055859070351133876858040371798609611712583883686856462762987872494367828638471410550054949813644194413054067509677100877355530653005568642193144565501804109944561593507144976651373259378973813034154016258823065290499916169101407084681907287869286257693122323437228099181131703891695832631645135241414461907181706983739402253239001094135611579804063954016251624576478373480593092852973711061136527444240525229793444737114899308953903127912531821718598487048540998558565968484362544242566837091803272036266050843941926847708223235162837159887808868186375815696126447637618109440935600191494344868157279994383313287865447291134405839300460132593597414055484490273340803589334064658259537725943580310738287999415975873861125957232445274671873963995305062322220540400754657217608896755349572936956234905924995518584709763298316660200467298979424530422247633168089122116696612658297117822920379770886798603383233954739784400669703719714417689219726367836083667935231977994700107265112653143100973126498032926545053533932602969648422031047800796548294432950606540299192795859089648043804953410680356064238580007887352424285275169503054672553601537420533548856030317889323762778044545426902319212111564132066285818233559822483664980078750419220032581115246105345389768291476626208494784676499240688336725702561995802370823158874758315600026750768893205909606927974582234039950038839338690627802641939590850678449499935415266427384913295505937882820120043907069820571536302465921299328721950327916637686508740889595623595323691603993832808358128948869527213170038705611754168700386720133245199554043377318494867186161820525383768103143073469906482410310620265853349537854717245430909689850238545688217733540798032486502143015589167268317116950789537380449406011193903757652028609935096089965041720432294370817739311658527512639331730079785040536494362088730106091585417049185278712305223144666035233057118081991596934442726008917985409416316859012147126502891148659230537106349618332665750071664885549834279935005675076386853528832242811674325364236843876639009661516832233403782831268357283600905148047676929356360666045410978491970655461252658209963786060054020018793858865266841760907618425747356845529854227888953082827691597888684498123913047659168834633534801503282706832038257068288555031026370888022612421973064993411201789908699160708674233816212266571612502938632707274573435584138987636573475867409047446290500996044553572274873360412910097135859444092641787511992282558651114161888977500775924853861378761940583110252067152799426028450942746796451442292781939690978935874725107534036612560592404227956985489240812094304267991250783417660777332934256656665803415181550915683952542603466146280808456158992207482572582734431859776129455973584262437863918935775239927289314416033214648134068725885899205544686471853261820203915236162525854318164806183466160073675719496688403696188022653075834034132923908139052529410919831790815376467659337660277708845545897305676424403798190162483737859656292719853672031923621124111437109705391606926470667612531193754613909756930537878520491850702685504145996807470063494258545809291917176031793877519347063689857172508029597845606294411170362549209478490754387812928302105589281035405470536842094847676543057230552795917374619610011694011311719127177587489736701192548040049799709444589481132977966788241660816013401126326265806027833411532716358817287771316384203993538282358618296811713722076986637863843611016940922655423674104954383650290025891381691226747368319692764425141353353387287099619847997570724651167682431362389689319675685745918116488640484192109372417240741023059594187832207322769497700174524162429849707178751819857556336586311360060752153235557957102304412895220729633485460423702992779603875038945573043274563986144886002295804928180023407707930414680867032847505842822579394046206129593633379397834363679941218234735458793606478727923263414301123950673344467601847028367506815624566625751940437391510094520648295337333540661085104365756020226577676060427407042260493365622556719329510115653002573046325164046614712324178809674129351534646787102092179870003823614417584224713582836149564937090940817360832355440725249373159218555788524880897721523540696919023831135288904733570082067653765698044039004763756841764614002532221299516873218203667263449272812223744394087709446906644117688482059260147298680310742003994509572815656093674497902230438550925653909318628124795123754396783468964247116128524241051108308781995008079491067613045804554379418951431651062915420274865402798778200295939707570571587595363424579541988038539068762657785152666436202549761774936711835556538560197046540814207094393062268601976472626810812245354106401364059848772082389133733187563054650055836333224515555475542357756298338001503643449841059981222914866373759054541513413404529513256291415950608654774216703909196909033122365891222613794870152020067756372713200592231131573708842355206091779991856623628740134537131766800836222840513095025924833416712470441599398523478068582089751182909804400249996311778472582592733061098216955568522126750029890119199070519846607860897517980580087670877707793724043992978203234315933155898290363127924813511512949140813326774993767955033741901611165384345535364817816437041125746633622191645967859760381180706055700121115540310498483708708380667878666364639321695801304788015121553044758901839078734498536376779163823098057257396281640763273198823059415941157489600931773419725389956916758529783042134248903456924242953989944401161925568810313714762759051372009090285896395958933944671025273446063246901492758534639935987296743538963126367866912960843224601620125000500293726292856612418470295772889548299628394917687479485530424515304479927319821678454569010752914034189392419089007593560884640909610661387359969719184492588859316189131725472868238241851444487626300857598846574959972909182776828478027417899076760641575840486256278362483321456038986463651820937671238181126217250546351349936212236357718476203576773519351130592072387188662286381263172558267626050329159394352046981029634530640647469379541064804843017938507852134312347333722621265323501125823698741711880606818188757985190822817922409276710751426902465505023106588056818232237629030519928188474287828804942132907138972341727416061374115215545327169986997515144446729683943101502637491129950520820509854179856817205425816982923652070103898349241997787705465071509028490653786113067354956639057186921585189806387406614166401813878095826837100821021032467518186394660624536005996629555172594284220468959537261879972798858911000450856822893704315880886146859665152171574918368609131226770041870041146705917679944378636931069866551508413562238780296893929234072880693753889555670383612043959738415166484718759779374633917217522488562671556233711947472081830267414139018511709674838104684337728270974757909709243265810823019316310542411600954875163724892870078361385841266626499161226976626517177945826317679342089359225449242496328094585386242572188344660593547021355622981792868263668235738027466092922159617263220636132340144485134595084153072276745213385303470343117529994332220893385586906208144671931348769857763302568551578550300116940821851538556485886765408376898323101363304510780439434193793051315861415187874350960414085230800887493612953679803789563180312833015668845089166373887489035975016060366913491376639305927880284059722023107582305565385389561681420332675048224843830323168974542821711763172585171580087036518286133269784751883157880649044491946377186317556242362337625788237457578648748435240079420834106845392233815058013313244576927047631310742343249034905574478363946559625909270025296243729158289728426244012210448645719715467942495720761179964175632685810587536758390725653855936980669238990550209620395703181707739043062666192907957601582159587865744241578981698412210604192857981090098781078426873070017534655607188158101545671445339051605100596771919306942026791379295384995699355360622642951263300552107599617774467068486022789530623080843572765423506808838638695124405859794313141474869624127051195025415360916285040062979907611590366702810005663555470691432408406142181677088636953995161898397300537790628876275883440215421651751813512538342950942312359332071975437451666645220684550713616249244296610881520914525152896008692692649812892413483708551205847185903051933675797595123688207960995256909740889596008326699184186192974324260786583330158472055918226720184667796937297080261744028861801969346141791125548884883078486080792924102040124299718910689858388782064388400594012708823866148837748790229080895439520225084909380354968294466986303044233603442448867538213577870871345359575933037003173293835917452900212263485256440236993848544539714032959284428605305865652635053234826365571591603342687488063945201504616145973035372724648984945749723094411434075006720479734717252874104042757095426935060330686714951102785343163518348675410701891844755990915871820187527477218644727106607392054262824000689424575353959226708617455801097682132829184463494581524062950835394120386775173863049008458309597847952401680611405252228284377394704882693677523310575122799412620079090862119297343111085642460357470611579366163900821679839959198571845150846540173844214669257039436054204565571358934772654307908958918372090446986411831293693848466954471130519133865219616657626699234061476277523779251620531127865959817329261368692911133310354603208314553835583386385898290181907494766904680856518990361722955189228271784900962449010825470521275011199897333461104706196630072463027712381960303599111384940272588787414290474993553922655158318996428553794395364805683761376691916878276317032438105832268730877344777363602989466888629102902097268136820712179499903629350629908722631715550758087313853813986635229926866391371252482805961150842920493113363964452065943431677493454284667821364085575078764314192203317283768930036333011072145996590817942549020873719911158095377329815523542690047125576507371770733343625350321071083054823349972899967922451432875175955762063861876743167910070449423381139922602184968631145553949323151748561901838543074393078757682179949866505216460559799323542799397145529645741230636697263912066768896103727155281577067544209793386176085401454405106659826357250613697923340491902937522023910917450160760799582405663106507249974341651826500177842229388849323541390413898304248760314113140302235447420043918235335125978311561067170923518050103164893087396471437846733078097048652367097199383065379602921857713641131133353757385853297383432410924604939894170088454740092398635468427819307129106897464563610657805572189131478024711826197198014980478394287361283145776926958573152733592216875897138950674722093894221340266133880053755218853508563978758413425479915352167538810639852579683617482174724774047752683586734605795133078863331190899738344911358792576382740908591322100054883513271321364419976930298114999751139490240643174781282915482862237482141355933060192402684543716981936438586430058509817225823839197772553878673306918278067170378196388895774534879915820319019873421941266640931526894105483600648284803980246430148235353679111630007432392573341724312827697976122266520271609166390462454148382054232243021048294041678618699039361238356696263578502019676972873418726606625898738075510662963911783208043659047000447497009515265328029829013474083338600821439732925710841777678284893776866674513382308763657842590311151865101266655186645460170853468246832100971132969653263193164363774062807018558705649463292282857232668455962760409570296163052098922314286780249086267786470952450404876718868414232231367732673789067337290400556456941579693370139511709261269223922786943426660230012068448255330853112115690169254550402045540128071190238332905306627076331716476891699264786186504971736320345052530209448515460962379908251950145091488201787176318982793805425607247612092236150058544558950110965965390694951163691922317351326943223214764738987865748515343742563230328560909232933701136778813056802073568699176295466482606663314632777530567136284685417397250439559609142031532969781147738347479170578527185888822898501033897545652192726501369748236796796554384614327413997210669925280296778200747912438609456933870601951310315461731269516559207705025643689445831368293072663680850150039119625817809919129922058968829955405250213296857723259027549616672127682726233236899588282016700129288144500659082471541898864792644052629196198654764595875519397148011512356762202189321727320857449488250261675152364551192692214627070483295857392019946812648591352282646411920057188729639992076684764720213082145776958596758098726841583706813133583827753528953401776337255725273162793633149875559716021987346179244928759574013958051711952222449414138945464637987102004061967607895494061068072312772607816563292824100458701111461827189585141633037842642455980269859764989052196124925491766773538302857088647865816412799060588421401399308358065840265610111053779161805077002887863991114453182858678220964572105400261030797624097390920463233733106963539080102107250435213460193200139115424539674238748680042647956827242360367289194090734097858341486231852743713962215609636168133803803229471448694913332621515107443987583840622274566378320224401943043882075136996913782955596959751744556547258705501585764360842813511731086789599754663316051809976065804445046544582249709250696576646481196841012914986424962535469979805868234729971970745103765971913498172187974355734831814505513963552148020167273087741687726758621887586706065359517365336583655307057669870953767391919871877786110801829831110639762666489892310807660203872301560778403899060951143217197381485516844002601077818178372857817617736038494496837860899058140255448070632021088288402335925057379568966462385359610816235050683056922275197367021067504761531118556353632500486048896942004043377741882880306279592100800685098379011310019305700541104718859481059554524412533397021636435883317190728207794080378502454120337695793552974480386682066726746898015180057318487002570573452106966236654336298306157859601910318037586516872912764691793222590002953491776731917090697318503565095457520908237577489276471957161352104114560556129155343827425244156152835692487384652091060460369311427630535096039983430253756228830349251000577941627315478232694934359229824282560308717679359435169036752770675173283580849917072495881568513153922466871739285281536218118049399422231316760074678208517321417581325227290908811358459184415860701284109099552300383019073167153935652551637801076496371424490401652324631373446739790685297129775505231137312732293421745730453327872934637468668908603661082584836860057987250872437716372704254944341109655728520837786063640571100688357281599863035378219742956125317907512158568928082708593571671577436379195325688888262511543559787153233177267163031340492704870083028555742385169218066488974436751189626721386417958471747291028518260784626119913017522648305699527470525059965720242147822329586481490689590190260166678048191339766965099943833200354913381740783257065191258904034391366416610924194992614267441253543985404982099345726355565214079863941634950444950666406673890056379546040581996522836516037861601670914548919682793947915232680142447434954229410578027811386754218340900570296978308766010944763104774345032333735745154823643039743564400796416090136315553418271058743619380366861534039531432340105563310717476562826223009443091286780319847123830928175326747197627804637257769374249569124966871142521742229537844394917926837437797597213728505622125873207030741137848684316285499552821480082661039112174755140088198626506358685387130611008879484129270149681534336152737717963427953705385491494087257365530249191952734073717576602975822108057881097091709942406006588236339875370380314639376577689436599578158175964203766847144841701344647021072897989508712844811787882500337440699601307467016483189909357742230205783718980788599969133679255207687073210328396047399811094845677464510232551887562930569831659582545513726657952534060646540984967823904052936850369502711300932974216749505425258817155091822204854274266700175780256258339321937261176717545266916346386421281791289345921131648223738423815599504053809649648799901043898309330008172119769614816424097051267914801852445017878282991470225553855754660416635194856052015001085171229264410651208969322633602953608954057434916271345020247420109176035647756111536374079378118790678375832161786022172109839817344374263850764643698988943016579544500587340412323813312586238305160598419376163015843460696553998533564099514920371733691742106057930530186955657557959365662735282370154619463406598763239797164400649702007008825580421251297250944568279459165493464009740993735323182962548311999779456227527119760921382961437024570936360011756849095693620202809079956154664290309099566317399432023482458656614216318096251429167220100451459520827190573005180975558908928472164900554462181853062222225088781383755804788280126324750497000366550994244039405280647592160849067807792771693226975036547657202066121398381411038020714274317360388822916733878778934022689169703941271860602376467858355418611386535212981436846840639030850826761888692971566280853614085006774570887695572526133447160386495547874223126535324429941829037294430907296524931682204695691405388524373334836622067635181949770969361844101253710826972748620372355622549073684808312647245565657767756113483982594554434364183579774733712667285169212299391800967922815543790300529017451767220208578586142281479518808854218357524910639758445522344132204276398990673814365924773541923990950441579995831079923080205665766363026072353910153552730152758593321358387391340161456812438832684117648693425569836342258389294541594864134101557119786809947800334312153951630445900339283202540349574572266982314779171156358516447812631892654938881598341548645013813703056869098051562567158502937389308469193509063641747065510220120478978097654617585275335169843167540137785348624420518950629201666762150889976751469964439613118931430622256046044823350676807027002232104571870246429897447991006423277194161209794951544743319388787131061096435275775958285135885154428367640606620007283346344078026336255640175742642409955308374826817150925739043907573988430373582256025671946278475402752686590692798178387453668303239548986550058905725042296260482378147240742548229937932867880669488536316589985376300700433039639932824296839241342713033640100095652704572761352348978219905465473858451715857692790999982825820788318313058354821905795827579854373593736760531866662022629508180527183986062759740556420354945560850085651503215558724417319633989097975508195701490664974667847673971574112415974898886456988028722415752883623344107821776400628819651418047700423198456988791954379953021263597910209723262995985826163171123055156472160123557148289163894948798536438671365868592888901082500686892073104424016352777983651928838992886580585216242479353934602128668540301732741010953669423761093695846486280159441570330139841258380466170269350302752567822724569026552220363538762418981183533035407092517591097700583710437363133734597284806973947923802565406290920329262907231546373289001283667647907882977707706500189158482186071956752384298493050802802259205380794339569724002603590945898255962253796775023572961504566969267019972975017591797880706988585275041102787072765746261952467088108442619737430571870214386012663388713544587380831964025437521734791580879898740741286646475180607194614251591021268792647550474146382364318231956168821093055457298864028261924807509115681344636758104816564651758099960312305501202731802204807293692948885359212603860600037971955325285705033193744215577340705215798175729694820585101982641192961782006650114583103398038539712043889397364390736341290656333343811577418132129708756549241628981948455266000519749753086898023117804735160974644781388811777923476476003099638287540520356094579656920701348231519495274538739824756432410104309943519545006757127692220237907388161172263770398032511399297591461331989263266844167296735148494963140463092083876014935287677554921602122504211883444759729063691039558568559327237092191585290716892851766571635798386732345031379698854998009316228590655240738006848883970555004609839937794871393299094715185315263794649105786698798105985980081834493253075229482316867397976878212608667162897903248897360706576277816211551193188977239218466019226728930778565471180885026593023902060339354166466152043824250699875695741046518174347104759468843766700090778572170676201330743913543289196411492458215062734379344286756804612702704924207040791957628226736502928134610991793716974999151018101099167380713394317957520179072553249750995266624777380391582361219689267961998293310024099596538459403449859075390194082962374598824594547299516166200357539947030542591928662691911544161507943885531876043767583326919950750643617634351563527311202295293130117012351699277950281698535139386521763458899952166144384588727893302565763343150482787094383593904733627658362639127908453382080066216764486548750545918393887874892623868989196399230443044581270542979273632451774554913590908089707475391367066386927267558364034885234715023259343870988551625330009795420083350146498070486016120958884475832330116343967497759735973113505735099164014867506250301775366913880227998432901521598179894188190729925473555119423164103580089594667055814359742045609050504878030713501077517067509478084876920720641662857813093312811091140949407072714410555855768838441156105763918497724023575155709628562456478784299501121979146523943948777689632138964318286899455012907002463041522653923387181911497263570523242242648022953674765920838297506007229845512908078519248531961606654893170869139575719853986291437847235811618137473230520498759663356454382166478662925984096393185731955031902027024391811776121680740568008447870004387998353155396715466092296420245898287113990243264542828851744244932359530304716386625913316545832103875612185029228626518186130922733857265438236016493385908622487224908864733125287303598797822323860262837639707562339976205331137058998986212720089012642513059684511346786101944156934085781690255424653187026440326318800146788425761101416210976148551725932214559153576783750384444373840170521712473829579186425622069769246832933018580275755524174746880705040731852119357006745026901283827008866922983453676660563254964453946220857268712549605064940264418991719000959035468862203321521052218705540744819952169660269148030770142601018606953081674516954242238374703921555799875794291916193455427042172645143947449687183915584659444793118532384399229588675144122865520601288489378006769294379924746790476126268652114801234256409346167404229610045891394271735983540910831485341217191940008800180814304250528722870673007256841087695961225447304337971865328322315553726395118195147746796612524587838931132624145168246201227663041790900939433080218482954307667419127139480721042326948869348781068475204832186069297272855736059675658754233457258589946645227451707493272053436539694149874420464451322214591296647175967452303908588331135847344593675266931843164231607332788463163729987641262041428236316279431234648669676288463681517020340974550393798847074491277223571063758351477826350956757896426293577336725689935272136565739984797574246018224290665960246288936486048867229170213183938845154223399140048065267587907913365672678348372491856660466833753234614353797118635753069010056740337306958042506945246117340339870757648863207090566447412289506671313038156199218007070455926334240574659382147963756811092164190811970607019881845717369793287338962111807593874164396801152545186818049818966275449027773259522058075906536012041574893412369662615845630691816179241571089844113959217458280244848937177305883375380769990045619308026132622139952661464903779588577730574284166799093211015675181171595748283084997072273911598877725284731976644561342381712542711481462445157906114200264741727827769769469455129901389794343712831961258794604804028691130719827548658304331106149797783999233576410833371672615060791420686192338860680699637479265325119838292392576263515202256431532642897425937349912164490927801398125592769473805687169573528396361968094733596620796420431098177352423908876232320783686409832536863401938245097527602868098051853502104116248076264784275704951601300800619203212663565881812760454030991206014063231556475296492622505739290052528992942191504322448350617274589199044597211481151355130274053718791701395624054656885922149926429269393403776663777780973145301522889579312616146890096261595508965633800115573822345314252143512230594696285834888925008853246360295848993486671286375614084097551621126951002858055402938701228398549283782400331411830628106013112792790948515395912795756669631590734749269804736420424053690511560358681530992081026864102865756451787226306455491580331607805130834605805304669571777328724562656096937039278174818545871408206860221313130491978265256653173315622821554749923762236608784696150019895698235049573795627816314875548458436300062335808052794511676132392504974196470166158139461166752541536121046837205404766294304437365066179392225676935540056340429240390661981697976917796606363386071266555324761076926923682440115417595969551762041472035941755938114019244670160226170078288429355321842564192348690652465061459299362622712477357423991524218591868604044275271561638482542534567239708247939393399331972653344040554120593445222735255091141265239005477574350905416765765506695196316738874276772557015288883264395645453833242906191614569040843001347011025612700580108722047951015888099777376117009923943216480274323239125086732330606813551293171213297297125494287286886555909793440589026411982946093979831880525815563583504454236392651803494555067310369883779404833277516825632321829235271837907327495693396425207741728971355362286376997925000155454287492041772705749420095781669577969863061641851360537914515099821868097718645832897785561746854928794044128817365301945370442327329377382407664174962403974200293957091640714231015886095517743613147138764028397083811503978943901335551333217330713377482525789663529227917228449573075825496560513595857556711206123353091833084490256946152616714626103494719744074004195888261103882690260303863968040162410559468318379951240281296973772193298364414308264175790208258220889672245646718418546748529031510513636757798296776082405574527489688872197254876879542421774707682891390909132899530434150777987796928912631273963159937246955412840271698580532262390631849318183360444708608385493908325614843264332160620708060651307397769528131626474326714068747185277964568114063655070612776018785538822629609039767978054122939984684823373545103493251497474340729716430865243399666435453936618567786819590324171348252153426854084387056834587077079584354425468488115744333087669720344467568111702545822182259782954307709799449284184647320383881397126796251562628211667606096555135343139363298176374212867037057001453688460892045279250336193880394273144263675526900055862087468575048381296037321820246566489418996692904436551162296060679479723881123468351766660188839481281943712387074091701651869482069586433245845220614703891974372696649891114139504027445372377804400306510797671041279935924573647926689263449380544535983769915427679687525334726249821997193606586552809382919835472478129654434618728371779027186380348393696981697709895339627871752911971858551297787745529949875298471458521303412700869652527968306896072394058518379924609538204590957158383560383121878007085597497468198094002545153660724696473124473195052419718303684614378563311000458792388844936183452681981439945743820536145866533574676952166610991064968318290604624869560657995068497847329298464994909102745787074417125257312614299555571688322497463550318103921615915541035964142973539720028839123458752848471610543311611061520138036066352589726595128483936896102094423278273056703490239201284516486448270124699914671412080691290348039926476692689108356692628844579537806688964378232043546583423736386917292956286096342520962805284092707798278499070939472573389839662088472160479641000849782700614419495333836649212464478158174801143563383999786042840023690185952848379690683467553752747713030739467754953168544939156468120347414000178398345806419526252088594865449544927394551181787560459379300500177110076828535622429594139062546331444840966468628468475251563842365769368172295837465954057832163625533542985919925396195742529512283855910220307399237787383412002796654869227317045271865529738152246012192326775852973589822068015587157009299503493162161471821700330187743769117292283823198006348787593919161126005858794765351528783185776473997589296376590041117449890223228490866663817472573648333205626718326932648627830721241271384070642635323804378238134772283840536535362376332176557615622008988319673918154032657164646689331699805608856385874902652074578386946389328331390075505780484259911931093154310534716388142131366640577963153821588390796966538597178024294313512062902765610970026420983684380154234978655472913275465322439023659133525681636886148465395024454345884067863267463266869531661724615909867426711341890775092917741877030171191893071187798938899569917191121291165923244723543569494031191770813658346884021587098495972114102258818479144462756549743521030093192472308826548655319691628173772611214151152868236056107690008962482427006728922950703188780822205814763616277495409144569039658997742879787544500300057079915289355345494126783506786445062312351898255364354718959029052028496895945070506296957774754494125124531664498012900065248845860613681866254472512061934085255779724525417168380978959553191200306886359194931533808658424520194991713674666143294234927805359558032216848674470634085521298967864161561326416309330938034402980681811192382018014590529072380915651791428783187115348143114978179452655497217162392374475660202933089183295547783237513607992245233790915406597648179189848977537111980341806167333396667414418515470559059760468772406078076863881837621687142605365574929120418347913554009756378727657808774190773040056171033049396644217214267500786505194845093083876341778197421977471681824657259682175319867961791876872409093196590537351997216658093521409224408330480332192732181838328083907220883392893003357567784357651388551542796590417164361976747251669955189824899490853501014396359451588692361755489041531069163410863459108954942848631060708382990569986967143870396530077733550141738475341310443561910178687438370052622809104053267671566224504471108949463286049342336626317413621778850638482605839596982401948958964361327515121748530546186399201812278114825180090209563545589153766344068539873223125420967902437882887288540123318632514800464253158840192729594893556251043260719203242290556659507900228082296743597555916124277545220533802624816997757660794144793442452157162958794037394283987691093398627286066826180399450814274592682788489473114647650542229460632907662580108848762298053414222900032453924820849372076448113321004161494902802620869772958418398900850133990821432700552534453922910374592349467234521486774550837841306814978330293536303724766824785016433576752042925263468015414533019723010599068326944712651640904006399339123141448173345985312881986256152044702406489260704963028593563021062055866251812399164928167014928157884819760954988464575175649022861455773199130593312886277381490384627267931424283707248294997996448675442729368779329009613990664747832308333110793285790918848688622316084140290665979339709101529511955953195366291673295712988464872103793237543944671454607742531757333781789271384223658036602987415606214345223369282199859350116271357479807162373553894918271176147293643448683166350115207069526770679723417528753192193487894403967118945255198298997916568970624769445532476696946374470808102534274090645411944881153555901662012539553061572065202053740264498964890005333809527178695698999855412491734939620546227288618266315587706149568362511498207111480557877073782523335597102049441957613891181620564059558762652036333983259946674039719139134053824586723471158016776548417754306894779435259093910769055794265051159299703258134676887047908788412024028446457662437610211231354217437483523537756978107919747114621794933313857037159851586173880529356604956163112589470610879163122484576966929945754795971681829450053701912525719740631514213006718832614407271283593867938054148875860463471828408622125856776302303846207423187484592877229568722841525891545124665259270584866664115552779291213061833368962746078002197022810849494832518689440296712370461992009844966734463413692560311049181080215216045892389741534752062375809295907296290862539949687274554903037786568730258248424309066106244445289365447213387070942366740361116106700308043547075731082327253901301943436098420474333609187292698749021424622637114806448768321967384953619789960540898707012109749632660023581167602295065753431714907010292308980046919012493340949752177719376436951194362920621768000375538435136309603783057682617359432563509103627246943880133009844830609962543125907410244379331145769422252708244276309147169721695276788762560025575056829127190345562768766350464008828950009796224160045023960309389563718082462557484668477380285865238195778518370485249531554323267231840813727642010278915097322856180291354674534802545973584117356624851161553440133538363096379803279578793054242445742399724898186169370675135750943747751738526841591782154658901386113092819744579352834080111459607094415908221581870337404069672374897039529413229515480190658717687197153023106420777026412673933742949172795536442740270959181582029929436129208692440523685212861798330282690199961818656052381691774080293799197326120371589401357755546727984146801577247446325596716047153746251231696916400550467864147134824214240925964424671189602043168016092320402118490225569161832057752978147927074886711581424622189031264606777532663681209363017974781149105139345327892757943695380787691116074026316148216300877631045604501792712367630420468767334966421045941193259860622492767518202351397654683131700240782730956374027311868586268688633023285378420967194135905950683050321371585836044421910577841040682878138035657821699941549227924590146691415229004156373629766368192896810879343945882927745330129631288805472857219242540901461010557080283274268849982443690471871677820616623863454277359723578726475990872147495444595258644405947104102184450083101049555494917901612800127013417657204795490889172780149147572539489446730239571885739137033408752834136231856556663021061305189519315084045645276454918730035612309852648081524635739397537877284352265345477935394903981966707497687193262323542731328557532960920092521169888332535601506600050730947002700883533568736227268565671025768176737698457457392612388562330144369734792366209828878494828414357144681690546686810199772326346511388001520479398843687112105823312264242613963152050876604299476785072681458030846427700138728740003129256704588667175453194101174309344524905153175564672021024126131470490244804415787127605991060788135577981193754848325307052396739781501178982007087096127779868137592325008570212201452410295697906273431873707689031340578231281969988059328623212206100211865310529726549331164769336155280833306170025561961231915108662629986530213005722975899223427432157636089516372097485623775211596393060865373151191247515095661771249554880867583274292792615802526392229515468468503217969099429811987739535023871205583939590908098336938278201104483905474029012329677432108791096170496468366307944131644306014146472870670688934605574948343299416304240505761623445617144301435609745964325059329688451396014800811341405758860927554806203679815036432946145102289015380236713910017792979890338168611812072540097729094314102194398029878149422502603917000556199307354401756907464616317398418673854419444562467834535661166434378682927630015665068772068831814165923257600727014919101324540987945634456891498454327588382590154079312823752325674329635240431802708896962876803461529680022149934868225385841961250708231259618654506599234555525137597086932553221988418493354177395025377921926853146826530768230533449253322913156362981386623670939804991828686586361881916654073071552855335973147479706264861121949747619128359734492661587056855394749203410974249302439356743980991793440147573553665138928813183719892508274549567187667298649391487076736634363644006926012911735702214487058008563011787311054809036278393058361475805551136916333939828463368181474351432298953951413608525884907009371317071162937040568305520862189194556851626339774666949545045135794996242567249771864018783279726548453290312282776453521482876610282865679685127715601234252447379603022547707447218938694116984446744808267137125587622844074923177931435161326013734563986647635131203349136048501125705480444102193103882969875281485457719783500466140402262822673860758874446377759719945998518597954641778659215355675776096682176492392969724925848883850473023654647202292001284042640247888985863511016800689952426006468511080345197396727133311121787624725991611930972189247580008989654711112946156280759387703390229802542587595194979584682386836090334481842069293640780673412172716579650870263661719156953484384354202421122233470735978295473961942511772860534540824933482053545721987571999172509385044903520787042422299095780028840522725023567873261859334768837083325117644179457384463734329298062977207879394031115093836430923923921309135672144054526904398132305224544353338392878719149130450414712720509001143395970007820259414992183353453250075403427336006520505862584778555908611230003714547206246845092473136205882289168289070796565385954751390129538010214837027469014790307848342534033756837040305695160161207508853837371738391882302918087972803995294630375693729665627073261220429834657535287305174664973477657383937465798932040105012420415777993366960407846014993887439205629811737826589699596205318905862395824295600451559061633109703570867170677097621968631784078550381061578258281756051292558037041103050596440995104285764306722530819466426880166661854479389111672226113989003434097363515360458578701523988002484310261288348096218770842000880657120471729730772770923713567922417298058069622265339352143431574786274468385594136139560949549628386885073706353233304579157537219360042242644904909997791663690457813250734095171552347439136981521588311647730090576556461198111946192726441443484613922384810650911940339502031012133034814628692292389133501688220037780202990241707642736625006045619182046935150043809397450168055697378627710753677728635997108866901304732744319354236025727501999566533997585327022710697729607687887760632905263190385640664224467645535470673687777161486948774460763368832491588272827500596152150298302626762830745858880188403524480954598166080760449584766099307262778277966316844323654500095628167078743846368224762918614350590733516920076140856258838421978296983842658915479980145404369663368714946279435954449877820554378942644733764722246862006477582721050158249073226716782137407138557008791226580904405001674198353836151913608850844223651748642168414481877399350446118378329892916584562791618553290736188998220262157686266274710292295939195359460136400722558721423998826020246233650050306389999772267972624945086905875619263532218520044142810516808407346316666465591132068957254696479910908372547426861660165860942893312979217560934749164283639031731102720958202580269772918739821253557004786447052321567883002594919793548085314916100497402309994608415331854157894425527610690166613992437073983534124002351956195307360506010724557036188687676391373286504890794380977920466136005380089185318702389354368722851494626304269299250826217599426013251234741401238023018914843673244905801968303385247057693631297816397934628900928369455095087795163651324904867974093617095644467785814014274807666580203021575816670436157810172816592375746012966888109942368417404944907841578046411260088178998489037111918799264527262934592723512933220862340726694541385601690037571419650868728354310683819486200567362879287647246074274710445844225499315281065824724464874944799217043111364917623737359988172264924599884491271456654857313648878122534349069628106888892920132373594265194536869471510403722274040145072474606126609962470667996789303389334211406312436246996977801909000778863817948931446082249412750997951500294763735866027705819045104539638358312948666647463872079362617670616534383035959285308807421447444624042518130215438796971764273343872032542987194140781526097539347519219363632247861011743478402190073675909242420786562431959564391820039956533179679888025769352142175367793194186757038444655063101522399211795326592074164482995817157615393916658815603084712290033940171512710346385938459723491736928462387919623904734975141980537540084627584281974187426139150483342311159437758494849778004727162426973887243939727540405163985111915659825875811251147546840628949474424511152516322590269607307599102361389495935002809953425797382792506958850527697293892870592069106034600542330046948779616748926939710570842323324583528744599571496021423808188316040147878804504696115272640146655321562378608710300003617157172194237901994149977339459020747063050468465905963876189613787601492085997046617335968673846928873469835805631937509615891017391055144969182644020752083090989658635356543462310258621027822316408975788633631240882268448111188625652143403077809841120927645136647281798240246612137620316875686535538060899626555377051081359499476991744786408487622530588538419257347652139794628911650002598343723775793193115142414312138396094320686073620522482255447375778821977349911054801478990089175708191059645730629303802918239194540888591236471465169700549963961892098798395752209918498861371293517719773366570956169567551633875757562355755120960603246427173990545018564606354484144304059797209488757632939548499113327653091167523821788906146099072770352480076306123713051651769423617880689450824774429209428926939369956943740167342349684868834461641967705474275623911787273360014817457906171299721841378489128951573620992100341165601248493048129059528767812237338711486952933989359185449813016484209578431101349717959589602442643645287212450904284716687191291226964298267502760865459259871490202974747913407090317353438682832198985710707009366937389108459646615732468961299714280817039996928272517998363497418146116445378970493164604368305414821742262362169475582774150917183950058343615723605292651652011641022840262269250218549692368473402920810071831799901366077116726574734710581803921625787590544364498772435017473300316728911282383836014979745312340822847925177446615386102210745185748831320118699345510239597230195451109037588736760562571347214017297805433960863712824519763312933937870438495781453523476574061194380640171016058816991686193080146397655149604283576821515257337491389308621360317414506679414184598851278394441272927800068576514552328043914045470762538739936377700016762642906703210133992588613960308232447287421255686739124737141046115524667975074679723761296428963763940692760241399918984839911763549908238136248125060466861814402259520775187737167745321440699628768678609212052278897538370092626501935297518997797600929999613340411060621677394552158796931054623572585955292735240036362515685720544227567495629494551718819271234347400445955089995362590897742347137656803759965263042529622533579947181314175575750544323702231579422326873531204065408270058340977567552191233618686937957650956215126063907001346196366257946933277613899490159467177143907790131924235743941922116806024194654805135727256979691357585017381984533968959831088803050172393509982045632002435301277487833911768197916066145007448274400619958206322564732847026179862159500323347327767742539130662404718377358258238212360159659097209481480718627489333307046302688612881952306092880906156951317382485574196554056334355979128045241096230512777650815318114896500779697672331372563267266517293158463961768472512932484050818347854535700030161931393975856364528035660739747779119216984513168672726317797152754009069042870492972846065200748916929257340204665919319813631493998231476231819882917300476406684873981268374171162214733319943820848978436957913403336029696127311765141649712870169539628016335133417383008390454129576976538274211874127259865218998636739472813252428956095660120968961801475355979039445906663645858310411869466752517563510899727992932257857529723263640477792419072516382526983078991197061519062319015866500959355004334399733615456778373819172836561479806374539821241295667225634462131688950393978746239318927038724542006757213484191949918671350482399216889095510050019602803465160276496102453040022534030891327013120230874332313874487474523502079595715360927001728558249125208160525628418634593033652418290066638027954720352433785219194356344126222624586334408262932685276157431495438846470998591856049106711657476783099741267042381067123138791319368276902482982600814462398363491942025935765588734840741050774587333901747716393927757413000571667394519456191628694726906863112742313758796255219516920168022266433412006878725537983646091270973414548037539105104435314320221769563197722974914572214106608724304136558068122176695204570939589847181417814431614054073944205597348570140996041925417657422454166092379862711932337590029717581577837661203409906411209745347796102146837761709674011894481925133085313768736927584053084595573346475597957152082089683012358236747735092980592509410859090438905607922449075181181630793916169041964555132516010739116535694556278984285822131152957297202944351818398780865264630997875255256105353900712767941500088785883701188522968324436704736814651059195637443586844986302717925778119567765796633648964468086795308034089796457914059229954909309766953401707603061693021897435368110107471550263504626236091789029402989061337732428897523302145602763182817960915130136430465630183722490222895314377436959833852683451472483893001248320936685135741891077243676257798553176439707470328236487633936519242579262950524033697736505478630343208773179448037824687700006643460248533644784243118202573561714826877145289267589649356527824987295990645379314244968938371116954823063913158118408400023412326659145856597949637020063704233748020084095913274245055923319372355937218592285188401023576211478213404930551701284778095065256129551475250813128556464667844814485523404881735188286028376922460943053559336711516495531016727503919292066667352243998622929257711526769430026065113547844256719801212355358567781064436962636555771273259183346797395425546181220128316285512145351816309793022844851537126194399624452561991839296904963633968238974037478969407849235450309143754121436583633419971672677292170145054685368799751147704607090822130106689142279131066570392816644437882125370066024190135330174875005610573036895536712459869136893798821807272867076851486860326833222120547302146761744251995163289166584919075418529567962878771487629378570385774199433934241472580201883680876767845944840445239205360095432009856912943276629256421006234349811481023865260584046702710409904644744533676684530548808910806580467961990434404230733162233318489723842978142550128446216390546307382482206430370968586099067490660287791566232980836488941277659440903737740971588008441924559299924144864813488453300055172477245079263163178007186673832913617692498655152314281963923991917034133254577888782973214925781794683386990678923750525699502125114365764004526052345190566692817935365117646604244723511964026689404389515366219905670199597995886733809031138241189425158062282355357670694929878761252276217717934674065931495444209897661639848189609388200773212657668692725873063334734306623338500925261164078024713891092611160097109739024003888774035481059842449975147324050989030872956628433023632470099557173462283541234810319840843490520018982951480579915063190520457764865022276499989854802539906627214460062605019814152754842377601581475293114386893285845349593625305010832052612973136859831933537690898467246844346740919577416572249532189497200183152003685680118458984632951168213527236809542205130319763119372193414805237269225983176601252054453774582586088655805616311624930491467668911889803822252953309949916698639452825905755484841367328098385470171105441486609287595544849907466011428194747411691006492864018971155220086674398601258207785053483906335450262640906510353531663814063046522901474230201084261371030585267960850178620399897921178679086720375597167500564934747631739922939658504148819362586108571454108092926548877382090673615553819868928887507729454638666647298055796859358067125263201199059069275977801294664025568921978326685049839943444751155362460993570096908160722323227892851005411957518038921792079732092853933786333108057316827883219122988139260848052634096464380754126381781923631735903405578372380059290124991194407537820616780548543590475937966976590530144234552150544123099976293685894955164123060345142666046640172092144493859960329861110441667368343340626482976610511599345257801847827083559840098356086028174815403430669018837034910599001486614476368078788857100362576838453443487096227455099765048699982449027740603422314911661477868546396837638606947670496662553705777413971699324969904497236601408664059078264610805542912302193485724616019772145802607819452732739728329663019675521455990723662562823279724171197808614190778338285483097756922850914034583246980001132529272487108618095767173524731832066813282439505892504512446884140762893755717919968883706810816441697757409175921117450909861217835478723316082122450485562934513932856476816645692651271371525137750884974530487526984232672218610044208850424173348060729362970765418710553178705409789956839220440728626763412085401157922785458596365814093142156044395510770228855758680884181112889168586641119425024230057476989148946610706510820067111685382033325128403290670898719176410372245360414632234450266744623652734322875674948532138361818268318536776616645140048897280812585316740710921226946450863810901405326353286552079200411003862219510129631849620344785529769917021032369006625722176691603044719670834479050697252359056994829180798046428494647084113657123422419453728667525816515041869230333457474415102104902368126023367234192800446023674440092821217265548060493634851905943048847145564508691935312598143721742296665075212743635976664490024276576009026949528658636397371834390542536747584044171055033890667394434415892374169006017984114673071834985488238893373640562272948278857411786440326080291760957650711815486942315500736222344992600082990353561388783714603404847019557242377352045437929244950365011767374934692905438754501176579693906203377742914001898721858174026481185425269614528699017824627620590654879712458815484164409169030159377853519151295181092498607725117281844036206120928121877220729266309571693684873559199704449412816324030543765440750205427792292077203733235288138094136697526701373179994072470888259202964809252535968383638226591910679636977129927511907574778779440292838670912620532661574784250329725458799517727347102212479903529667976284557242774975462352364066731950058848145110259586878567695604728755129160659164830508869026946123061722814389076098115934634561060186096841194029620275932305123884790647242288918740188715878698446948792383038871874314394653232990026910760798879934011754778523573255064332365898727290747040174415915039660171374517456793944665627982081259533524827991157393728365891370652459860968694493059710506746942591808462242121119979215074425400786952798866927236867143998069140792782582307421034423075786969967222299576868187141885188381350217067310435485182042439977124698478955010696054154626279168841677420600009717912548023219855056736825069193203570769567699501758175348090509818622994391402916887350586256740171845688541449641821731532663692407803251191680067847889367210753320170725628071262730640735751746418487565713763323215658068473328242823854497432952547794381257384063403990151476214765949891963735742768546112881346131659770559610619878215538595904200553785230253682524925849672330663796127209775393084880988605493493050135850044057179423997190469800912041349794647718043899403400599990584007233814349195071148018354444442716401806226613873479163338781090370597012946512251103284853990729283665464709911961649970593538299830870026815515766142233212954404591314301608081372317180782060507925381238754171017315681967900651125087840916585354038887631621345086691016678879772327615305643741820305727262962418261740406076958340351654177147935459274177132367702793505977193751796563993810356335710819314303172115106352193219160291271561180929177316585072858131680482799281582164232001167477934017312331689825193295725375713943617783331871542069168816535721276068446649500062936572249504536746027601765853624962939443559869229563599545970679265933037021463830159554146891642749067520818797263384655743709177195467103941295727696589043844107081828881617805679891981443799646527747840866440606451787714733216174544966229179352969024274977271115999654245895961909204329895158400510837848190311514225048398297951087474143517185160917709671751921748499838006294088525862899410390746099337794147579172030145426261663502067695318155140580778310764789093331569767657293894924550494007983686938668323907618366797779284338833361321359387273368498947590962005407784571332165364157261913416005423973369415202085243241813838045740204847113761626115081030696566640012053392533642955385073673841010135649356549930487758269103558615442155720492675321637317130736599578132507842478185947235827926627159402886885594346314812451391900602126751776083069130529005451836514681966316769222024171043913973001911024828056668571240844777629611322427688852300927900742891416740949006880086949735771335944416350373779287690207745851220735788718267793908342053614976702938541885050610273227347127066617993303580355994422343407003817532676904445854696581269705976133105597231637412035528576426580521904880866833920511455067806583097410923775164124475552358808773765812829895065309626284498008351502094129881991899782445176050674237737873878405681620207976196112700424644946890043085348771275049392672773420099133230208492476137506716948332445798583263780443067382809249983740911595735216264752454148629944831601022060911899046606616227960339041559790784485525008153999593807313643757412647215421409743972809007392697247682306055728970660073837071212884861646343281256382126543652954266028299399745130040588972861904155794047574988819656752257347810427089240291363261625854564714262087921743609935421223368149806852778632697191956125702753154234827577783050552901779728743123219164184285851864330061882493506845332690580731496820494435816212673428050991024705959839902709117974188475682000614546661882947235922087038765620381099132444882733150497191746414812423379790201579166854472219623139377725316851983328805676711736916167520548249415557782466194292772134053469923865117472838728655071327083824061222449471617526936630259806005454002494918076154946653896897691468106583661046989652047509309415286259886181594743531108579237277984125273567348014791111751809936253478474365945337585189572994019678652217370314330029479414790914352626246007673892673955867272707847204780360134225611344372099186645780798106454378174244070810910960062154288508507755057597508341878932164112981788724162462995079926352367401218122478091245797431128063452149526186294324971702911538927948523766615184710153789878368851528778742944273601162656668285468124298329381274353464291023896908560445461436362087371625728646244433857489412223385211046913251210944343000239145890790119460941219191202272936747855149426535778771119688976605760885821383978067873747940149736727206750330655293373126886916934798394986179085579869571806720787407954369501074427984452873634469351128745815845151085444644277481751217743509742420203640326699230245219919311925154157649640062275019291623448228324279236371139255287185455198711107545115674159876062176467086298043592636523176472786250126909529886316506879210087404600756671046674180066753081169005843471152409005280412581168639504969990911391408188777328038324043162640107426464339297126268241367969567903365704323352580577474293961195377809604762551309610614316295577942524195204434757000153791156903947925157052339008854117562040146426488254135768029019098187833874760235269087941396835230952182173009298311949706467569127643129085960035404928214098033916753438812954959657704371243611779092553981033253206227032282013884573334518991741228327724157680489506076476924195467388391237738709020076201832503729020944656281545331865889597536087680187438835337798842394782715067011737335287252172072778679664817425450286132891867560043278679200188958900485784192739588951184942893569620574302506289081837702069530651717762121503377051692345291519946057622465934932957567196657989902099238317626029835464550491391258190878007896115714561754195648591706801876361458153430099365127415291514585521410720759722880674375212256196412641792343113131498346361833829052629870608158402569134657115265646598329032658701570728018909603122736033744474861108489306179283283191964717905866823274409825568344145284392447822750566289823968882523270620317044437633841674331724579749420698969781392443713246722251769694458086409769820306534543359249535566491280657787000342521530444793094496942094234309409801946148609962166296479063942547841707481037204085360926439317263128107871349247377057133203031278569290401522977041842946659376574989882290729955194283053173477876135024841469798125525691174362094522247979974407931525099094925425157461824590425023887408610866003303604508082154565492918591722422886090730072688149596537098879492833014060354372003097222506442521506703341641125583517604300755311787947964697435613698257158866922439268196092631749026748114576998882785039040509036420965318326381571668386173506616459123655084453664297832513642805322404692791194879905138119155251330454507963686876398926793278316648320054847150165980155776598358882205037374309578847440909695950149808127565366104443976257039675380883647340187049396158941109375045139825739022998278175666006076179775798859291272243714459215961211857964354618930576443120202355187914863915165701272772562148952771912640873487023641342015238588466009766009085877092220581730205457810587306447726739891610333233349374197779532922266287397611122657797076772856553376614359027074714275977595519419834922845064235718308324947026079101918998920320379296054981083582037999900740073539792518399174982476302124825263569236909173477655377148435844923702514596301257676131392355625098899831916327925521153746218911169578605561826684736861418619421395783982929706519083074583825109608825301924017056464037754434408003113072080748985421893625622774305687230718675285620720492839246059095268704037943899203425627336111246202915768361540348241387979040911714549812438157940212838182091348149431467862352603410750289093642718668346041499486512556517882857462002294937146852680067003409763728323951299456530508410296635644362227332371751470738214324979734995401330108891709506978336337247869014905302749112260275116640658792441978621392407150365466943185828285402276322827375779590898852847309483674332228824399994290581953005517703256157590202480212526105926563624336426770041040708172661701039664786005824967516258872339883258615967177911195186992849282954282353171729668271401231566293940846057041332880488910407158625900419760136956698055179076976847031277716884301862288202404122108076432894064459142627847766442176418835003924966077975239937557877415123376204917828544611736949991801174897105795437706553683382763712054274078339420113023637267041840581707281189969814390462627067796155947766495006759752932204960523148785598217911435630632742018750518491261909522403412541720875298409238138033110684377916563488957127812650145158848941607804346507920005125692800783463648847315923197787469723395486099701421215756652467726339016019242419513227480012439181541846697236226869259824559388391041619158568641278844711166983444071168847600612470596954346754503513109797862436023063614192168869195059552793361183233879353622245155657496153633415848349359979641642183982908594832385281910325323625412855241788206552893039530694330266201510335815468135156539981377595220018828923773023132652097441122448092043424401697154071354683768411498475672718059148964820466885318716261170671310201631413872676935544809838552267885232344359102778174091780473988005993974139557109903736243933460789926045294495259539762605477528221719827772786813207064740820745601902280506922364892762953833235833443976987560692117529416059241434338323077430443655914772151165511680657703896715640853008673155101540211805307700262068028218657016999863225585918373110919876112823930375711522011289592074266712082908069975520684421240835887827891276992037220115249708652525693885779625472106973211105688595316393279675906825425908620945875715610021618158340801268351708999946789507385525748810742797289101031533560073057226102741534280580410746435324004400966998650159031252891922091331586604861488825759211157628364933127942645520343373116663619965096123514198162992063009518009564729644378907160885866271528876963058761978936094425140486015291564464208666586811675671096465496756923697541146902976258759032751022521305025871750381346469014140686607962793325985329312838220311445989513179670966884244363743717772454868318149891713970690177264500376395456503914825057957425386587395594246022979204338541185617739031260712305637447293724890402658038416558563833718935277167086795335752078260386562509145535326241089198227269568287664099146104240168983594941032363953642535994826308659525890341976584344668561555768652859181038793253822853368791611542707945594873648402462802318806631125412708061683983001044988956190416037796654575277596754241032460523033796873179626281959878068417642458783707668380971453914547584266820498639486452814520849828832539185021294600110789078780194186216977494490509248668563673074172561028521073137796841237187579556256320992594581295350428134152203363713991557147327057333955598406728563534404675223645719720835734438530575517202468004601723215777438780708425336247167563272840537941450942519631069215612519133776049253196392875379806018154441330713645716534723915555843713169802022216151089214641213020521354169013069228762854393672625935376848946821505067469960635936662700996119290023676780954205218896597840386304729683404043321784459745011322233270441686593821015724838176778576168771809200648021525055600917552905821601822281234281920822619347145728660487998617599595952848145055180144719485280619048390753135782522921657440929461576775732053463850323444613281135251512434467994735749500985817784624331903537653119365250225047098385913460780525332560661275069072868989031360996690029925980444006314504244809410272843555251037359787362987946187644588302876328501021140642458083806166010541470741079040891303771843429491481565898453588027228383522764374406907176514033208413266617004178455551926072325208001834893264573790309686627292096725185135357675253340835479585858303098743143491235520359592774256608825578527571287491519593265403551502149766972780635538320723416029558657745370125430632624193630980459565866768017384946846619918787334413007811452941802274616400625681100279214116790072301287075970245647651629371208651295789170330547605074573569931333403241482593199943585178924427078733058381692909155906545655171575111976937442307358440017735201567023786696638125052223865319696063849971383962337548436777780462128064012460731966804905709527265263704725562238304762095308858144813824012505886190619321682718512027459961334470947886893368170642460038439623938716767017554172250912943739763278212891402959516969199086426052040151917756497325624866866445598203809228655770941199303566640118176990701929408515762514137049625642617796245594912568090602923737677836203546478221667883794729259477165086939215162221405695093359372084071012212529688190552456887730876470194843460498641846464356101302412692100046099871919784870575506300900553092152742008632628789662536022599753228472771916697433945105062015101545322581955944516268775491009955445027535028891088403848328876462618794021853625618414180904240427636152640370175962625601245399768264348050262515590523088105376264550710795251632088631713725766149785335740549342997733327626506861521487919487536089460111633608914646643922232545303535600178854184491272010576491746778499061887579577856447811652081532724723051374154735009820717443303526020382047376250814464349506200386642482865570156324144459596189678784393414995292301933316886835091057270352734857499937200365794781219573497542413699733977428644961520747381466976070872091866120261981969617155209407853432253755279846775007406346387895827956163377521172185781157408615917868530679739316091598289054885297744214633304536825940956093460699918495438723099182729345053915102966715220712490157716805221399275991431066709236204459613738171066543682024249952258806440722657907247691286214976697149217430121995101671835536460982186134229358049904614093483513922799742928256367645316835562664619463634191480367964855936160017156189647943007049495138847431469058158048271386589427707451450239746471657758159214817418215977405557003347779306257873618479536138680438977380325252922231807941844075710283335593481979118733181953631893030588352357235851205552732034977640397678289031401390466800203985853570016734920628868582725402492124074160372870128233892414053133789433539783424113362312641711366159313372505189387202778655877840754010641906006392759403748911462437508427926220741961932925522253947981851166551253874441093400184359155906176778212710973640042957692348270893137638738635443708386355810292842203589266504856826554562998814426266285431382124344606960250640693540068577538822202238275015553978913923791810331517630241646942776687383545920137803453514037529568310492981406131230411094428414962108974397742165936561411253128401176913957234904378122157680098499686348694274166301030377446485424948817703579093242103497290508156194565976259510370477034921556041346505244362676220338412640626972035090585583210284620123867369002566469833823909510750862331807596707181359799452590476539302756544164925143555059974056781477967832875532870849973015138987061241870474777894053214026839608818244358899424402042124405486824806862598943915756093190535977187465984809650197204447047970799728790204465995691958590447519585090624565402279010233591728157329128635360438694855239071093794707609927723810872189830904000690320801992324105461832896302463903493539376434868076353987501929738276604727740740696928836248804576663944042808265055481883803148507322787902686531546651865261071082284922711688259334555781828240160512500141684516482197943219343384344047266894796028373577376903268141570772051543789280334579346060030338510810437398913413879798362346733348287837589112023995298994436860177700619839584556343348438260366229808218337306225045656617750852586377377638647313190174112017100449210469645227200974956543651275344746593516994816811218950265529409544819366041319149326261858972677701378899336961867388443139668818255154125229245198363232188269802767382988717539303748386180716707972831623275846073995391737657934934440604819207945924459408422863983002522783490239584730744453929524396106678188166028222924891137020198689632118076143418110680353095506226374029839627258122777430605862647904150883319421133586233811236560023215885952541732044035459326208383171047387376249898922721859227406798412911139761052520817570159182843160107503108785531793730285840148884513536622892864135266686705423512617039360767539112404349649166527719776385794275983845746409166945947880895334931870940788262271444529130973289767014174827481228122939848260296517568646238263926384433190227934127224419961257056694758945565871527394177552076506220405787340428506684034750773934615524506562100838878446216642250495061870875204987563231378614711355115459496063082199108765529182171121834246011819970169771019817880460414733428421790355361770969579366553288867213367963083809088187185079413981281475268181860081671708109708132401660658757076358307900639778930428982698775821889025885756681686191917410751336441814260061997132567336134342458509399922772042585806380595067383615564754795251458652196905193905646906432073069527104477441312052756786306034318779051844261330664042700985337498622373623070201861774192823349634636722608939219823737274371787066703408045078061098516819122937407325839733569855719149777043449707780834425415099488553313134777729981813042705747419231111754346051419457542159734587219917174757539877764485845891301186792703808007430878703363105188696121133876797193005570683621269094066733492272841930769703040659449407733077911467243564978288418138297396316708490475267041357250190313549376538089714105947528721814617090720436223610492698119123238729801045730022646549138202092994990647431925603676339623503753395072523881175490479617843716504082610564984079848695231838378657300573049067009534899052206497830507956853731404158433804115389460496009066376870718130566876910080632300670429017556995318569034514925649149933716754977704713636679685319051599860925442352837859731598472286521532881256542041914270568880844734742773490117718657705213766510646941757456642899395297457653041540876294390628395439083304037115893167965633480649959993385040453263573347194467673923253315990518007313896955771352035976832730988392478237276933928091684733689823022106551671405214990417077720382070621000204330631029096188326309083642319425703998085513455734910140951100008645750183874713243774970656071367803149720081708497947555867096008114486032579255160295432514438632417634752739353013950890908534717737590364304257923119708140894038357919847236787726513213931451829945940660912187133292395043660327025137870743070933319974308015083376495036990054946774615168002922383534446481239326856422076414757816380680205001288793959000387613547471845377952484630113065549982935717014101933593396539569918510578436380304264619285243829027413988738699762627184379679983759855218287637378655867626139296625888853787422400997981354607127688514937883445384838060748547387167042449561316375012356326524939305490568204572825891742822850464361185638362905925427615802888241404936136296954176653949436589735405989162285467001713869270986196122741457688629621965898201772863816965111488090054359545025688022839848553403731853990579378425375018849561352321440517243538959348929388375754937353011697747245861015568953470437012888037319791693029547168797450426592001807299108646861552360314385130274881846033541704958509718235611098520315748851585674029911055458156205167774686766390062466728293361238183860104738705515890239395265237503102266247456870168054817535553429995436509584255849434782672919110823120139047668891180541239801779759460436806658158822563599145310495634140640788993558597591807667309506524643857232417804950723539977185931967937077959756290483046386836818286980322511188538033024215055994709522248755433702667755479938951734902538689382470880603942312304042505001751018767387254395631531167529126798778665900195336573779733932999337528147779091092930089529583291494151314870908286907425088447276159286944979072867419128604601162886067336291267916438452497487568624171959571780166946307645605032700383810493242191673663855209432255706407510871029943423624897042786902284711356076354148198975849939491147384153829211228590443115757203015167982909450600439964001672810327276555891061355411931156973779720710766467413420234258602360432180285413494986580227216798558765088316284719542822793678334413031199336298374450230653918831682354651287205169661278149663627069901389032456301331931920876233846103093442957085116824827212998840541086674850913274500286424447546511767737794573301439624152978473547783150426020854273616161949317591310928191830652461414835085511866460802761343619881893490767296204007069895655878944216943934398882900031796629825629399365646515691864905635508409866176506224649588643340351715657565917114123586674434783160548316155778729362574757057279831882967545244122584251187245925560975694608318661468322083522452958377249057079111649802645008277704483377593084825339301567424986337619636013327983828948861897515918625446074580024636490972985639018090974912045417460449590866691162245523528937287813177030964865843243632178815973315197389125751561276659130118611551121021950207579929408831811223451542167692078986106335637955142162691289139938032974176375338665719381862642982184582192433347448515726621025188570951352091013557933562129070368845548977152145611791686034156999669892387800686012587145200985328862649725489629951463521306054112573480102713497767528709794952900309844609202532580244076367003447749891019862672894420797721592926154488018848191206226671295247189455058929553549487210587760311625530949783962313856985970097399255165638585968576382789501738184001180065504428968481211360881064215118338604148126772552320648085254995008959751391974488726923002739219977208810302553536992648711103644446686181578628900935426259523761370017780607592491896605138805421491084614081668180084162153995709253333670615763309373511729788026787638239874274344635509491292501832772326233190186066761331269843171580065705685449547191196122768372386706294018224834199669231092324918851088795536353918449588137098709280527422485701056676610633080091326467327697448044415658297793589128155289744848121591135850501302406641724763487287499516247144671263354439716615302714885195837239763115302166185324768892594759376429252586331461005721693542034147417410718762812555608697395508939777611743180445337979910858201223029877113915042126062777999631818837465461841605543204862439195926442236594193420618742944207596796569678269308822834147920711014062874525186763148378296667501108477314265996728191880574122821846236102215704620173437961247787645499595253284245153476541588928410810465387768357333089148066053182237675442676575651348966501708387993526732999736409550647576868579383637382118873058851763544440105245034798078118738260550912735890591613599772461483554189904040856219103808687509936354590377525842144466595923529881196993371080028207290216678755229150414940727500646049637438890572983317294953709565701291876556913473146041336286578683412632361086592296317812430548130249143982948885700300514338378427649954064366724340749578342941757673307015919776485100997303461447336058080298267412965566418091734620200412825729300383161553475096198813122949873871229828214257705139815085717627559769541785753176025545268828412905714363693144874073527762646798889211796444180190766873017058159238479221545754985552724114602546913103145467159194405300231334656340401326129958155068499946454832711518889389045863952335057234155738523502553634775039293568628403769072882458971817745980249901219457383929504344111976288103019640659231139798661942473401372312077013679248428519544325670471271453148060579491414288313122669275337580045547815829917954105863212316071443407087839315884228898052090160832650718688214179571845982098557291235443947883670633904355474501639558836625602327252493971621711618329076946737414939359209480246056763960401467970721719568630177697145504620341973478285971803652842257204257434313768971758829865892028218667269433186575457143797438813827835141333912300391964196576728230043527934798364016931731390465517536400657208369905112847449181652315408499223896549850983546281533285964835996122937352996540026829680408419165181593831524782750219124600287699415565095063714425598026620901077766947942720032817930212420660168281972727321645408920647851403302573566122440964638663347112175832587588305956383005730052863484260491960249825562987140675738990932587758449786246181675114749484064450497635824891910015044548010120141086627454195494889088561101220611592592862293988334977917455502927972330943571350564968729435614311670758894346754913218603975046743470529993554032586090184422979286242189728148332079593019468275759823075460913872445793112862382211929556072743661693865274000678376750686644930870168348688813038163422844756305305969094729034512558476689223134785334690389650475668209090056618562398206649835757187421995753260053609482320870536202497517886888760690864535029701835722216189866932671623521117807173644555471347848834229068655108129429653136857794342222266109335874982795532668641522047415989448589690998642161677143014732369164894792950453113141886127732193334487911158140662891383034058990962881708942117824785242516821689867917163709064853896668467410255868438205147265609929673069085316516277587705800478010242700487601217494375633599961617393447632148521495080979943665437895997591970272368412324782452332525629953556682711747821709553786050829322083700914745227456446167094839699679253403891129345922896406510482765703957281991572918552183671138854788113339579833276463032215554853212763720609171039115183672053169518190826636102353149521668677422149584870182358000635636527146577923913325346196779835173819380635201431602026547534952930536759179262140514743512029016570868315612679850941816854340003915978341583384186555308717949833719247130407777524583921990914516317624780500011708599147202365699150127418357983377989126161047998779137186379682416338056735027729461840069265846520790129299766210111741927698351586826902977591089440848809610157382230595153356874420287570352133879080555890740366844362357041325629268716741348731358195185416453150506329421735033233272217020960378929936018234680040999994526615201457589103591585226886338855910193247397317102324293926511458164514733907928835075031849538652771544945368177139212433459992872651137687187762379920711394312208800959109850317858753830620190758097798982318689127815641124402369457154611657673653815716404648221174497536047260959891310326907418883259664162066879683203962388270453688059301525665457157206691853685835498019026320671488217975624103708874139470292780549771032803882566540552145850927713523377888546362978657679436744600218466999141855979213400185933681626214095033614372783838178167908805091477748727570938308728773952189401781696216678556448932498920451989891816068484306902299091841949460193660653053184996864305708341564676710148745832247943438471868679622123868433115600778202297120889350219726923878575675401896274429196278077930679497869638464147663237389026198622200218670516617629404953099731179417042002683867818812558580494600942049120378250626482966326892282288017454152731055018930585869674195137546789383190126491485345829951976740716458403589670043262241897147495902813223869702240008860568829727666652491207707305917655238390874548613794001742410219483878808361747054388897954191169738274099870285333116767786981012607544151565908608002654836465816834081336622969236058262905228876080473092346873605965680505391602270243520992588569609040589759503949220547982934756592432290871197639405361938223568391706057596155631965664287842215604981083780194284783381261696199220473199376605227188375356084493363916989022680633787815815564653626242158447492565092138576229988370938615260797350077207036665234678727729937962785408610457143506022058863707821097012527021309810037721452215793183604775392929452709128418871404644751810225690023461208390989759907473426524389441446259418502845086713870388255258397958715432537379283424751403264911776039534116769094455649782335192699992322096796979168900812114171217889735864948528737896622128418385676061011816235985838142824091716302313831645414865681375970129940979716462435371764862769650741735074164747824391317786975477753010084135365204995515664654989973465319167882391603406787540382123557770888720145690779631982405168706878603627282329638332678213447965243567848516812637984536795526371843951729106140021816724347607946252803089025286896095929746368294764932340938404899164033896858690303600105336902035750887276800543860274955376426790857787115958775660687965908968739562074313876760201361417544333802165714510825693637047819203555216102252325755727476639794104782935169362439321402321944481411964886958832683193619535216107009663901080235097260723175538998126346373574327396763971664120498914045377527380698506691975639000166646298467828325758961152846407249065743307388631794991215747522750888883154334543627241391814909037837137854197349973951862856554262425827383046136389412066550499410491190343956768045194446401581291370837062642740529407759832493635289180836456341083023171081558353613714900497977476510297318145246222076147739033159050687708347137839442877662964871743041956025968861714964216593218376569540061461152462376541945726553820948563364853978721304519207569555669472556190745476183584447059151941871292880959831038339913620625248020147429544921718730356227596854521348721322891146760170303203779429465175332428855571088223878133401144173287985258115951955223908574021671775035467725230589065460999570461610774821739556417588845164227270487727634294041440656381181063868999585281317990436605183267277659307253200208823696058860541081761446362998767779524164135251566806139291188934225664860294631827103169301260589757155167749524850537845048395659210401857322711941960198904071693144938875745275028909211529483885988777437844907848472511095631750154887527260473321235587423572815695401690944774634547770071086795214786854264991506997329211715509621376513508487788673325033472869890228275332747618669813149473247590547421296486017422015965169015086155960305790561645768773117954431254866724959825721179082983977856682500555378863219532248798604174960707457549480762930664493318877028905192347519000366218956270651691854141357202729236587574881974343508454881018621808939443745706441974700864181102413117417817732909583140929073119876689869286051346820933450347469416110081493527054024620038464318087456170487708209654118893751489856012495032717724845724064050362277585786267179117404272960251240861538547288376864252081254234460964799158335913297920260663939656436960055702006774466232432328015866589847281387888291559178505272790885806026945782807606144590675912159816442963887962667739949942459866066505714775111435484108517729142198452810209955117778969215674158945868016769419441096609841417715671789593913452473993209263694339898395546280559708757501450546246610984149605708819840442329860493645585218454492948920424880242516076428808879930298637510341494589275676132664251051940534226530932948679162779009394492913734698226631638941384842770947070043984483012405981225873892051647441063221847274565177370640774275410847630337005873384817070055150949254790992650681511228251638141683046082762590603663954660720442894323267189801962315348991794372777450463420063181209796468276846059282720730783404424975369313052607023889506724142861464319496881984709060546990787553195657815345577193836430671655818307799975428568744363217405363764981295795813551640286322896378775375919744839000611714067858721525388957299609918612665321075777215127585070016976528827183956356880443706244587547725953998226101058868318470149348080622728331640232097966077795514340999469988020398643899437297848512698005270312434160202128543492869124001278942527642963380353607505433166752474861176123685377523303137178061504487250364890780472078265307235811114595776648436472434621412153990855856883296113673873801601391065363886426382912758018003264502217639762590053402612763263019360397029614384430974702648908469405342353982692587110509466583837012008973147668458196905485932049271093094620836673085360176913669027080907886549259648249705921850507639754743214980495648944793319859285868551555737290869574363842710097149916846684432058660857526071962654763019725950354800844146275680908334265349223554423909360366064947414925326427597755197915808776415776066665221180446043846813436444843086274480186538824944613130710951339538893387595500834979467022648211331037132118197004336679076275664594443794990132752318914196927551645231396296780481556900905692027473066661890251431334133570413958909666696062554832745405893028115848417754019410957576585568703715119910875958126460727222841013604645684488526581704351430038178272077457085157597442808122090957814434232270514682211941562113386909692585837702852881588895107670759816068355301422503808633734358120444599969385072962554791385773555891808001810086698904821755270775193074876461753962365983370304330459661468073564336405259038683867793849297108538121108451402407770298742835306458671850199283154148653447180438503234235923448367961301227895136686782799276712029944830538471439133970280408823621154368565105978126027263450337780086158278745010953380790429112754615177857200256355022523908299357954337562766051299449830026480202783146702781140798616502546712349596077448732447188197484159189142434767839720913487451233082944655560910365503540000492550846910599097930104165496637502445328652778344564950749283949886179310544447795279858602284749681183072536109635126009810213688826241936943502724128542090295157049817705257160594791338859928079235865201135363131684973950377560200788719069783382408434715067981695914344747765625780526077195151354254466779193089996832780038135630230169929553011059502381550400775468141110285843007595578469521341146818115981617918253667303125802468670322606805405111742120421518074491991670671371612793050285587429623463262094165725525947605861912772603266655929791188674867427327335926275731767075780534920851004759820804306318056502600870110154486632831864396476044500323833368481378837057897835296632029513682457399316717525856888542801398578059303637567244413474446277408598398620770276818106751741033780502984603765656578195188938932282343472863524680729203113128539022299447755847583151491749764825381977732425067360061377243755358327174963682989613086811198794445922292568900934732640641269966148615969810753329096528007050340883661142381648049296303359735580734632633425472761820353798977755745318725712069994039600127292608814075481376009968472259352109035271900120766604483168467125257939189379323002036408407027368008735801010977934049872844119377974044111424186558273066278804215587694666319860655693556576596632521956750048845576727822490640507154713340714111609816029362503540777338620023668620175126952964411073657827890533209890928003741511202315847623993683300683489178031015730416419535060079459170927304163231228580368817848601976745521796033834570463681588191826711070666754493749613805972170376436053767424952463138271455033416319952156959504628891949095772397556233911985479205571962613209720766224230108823264592569011499983872932633459022994660167842945849181691565529270267332794937424984968786041922366730698969254984753293214585395872463761373556767309175517474823355277067798015949254847736951820265863705249700006904732612407188203441110831364749479195211375227578500660967834704175142146638325035758633686446825321408143401024569584467342250586695856993042156865407678042646513086487694156256130708018588719885394782991272297461923050258187129600862554837739955217631068231522483799577734543401206437169804783601463745955426964222701533563513949459988854835546782431430882885685993128348483708130197198834035694543455865329183490838228458642180462905493088715664143850803792981924594415365036881216540753643821501106527422287437520644577835034797364875494876655584214311416509931110599801341162257864392949633691067555564701528039402593183831048823603531219101138853689326951019474749445826115411328727161230869429145312721896078340700677288435095085156016655755532381425230410068346769242627240322894420885447723498346234456300365390142594232440333399193522319189617052698519658819659792427024936807310060589983626288060983106350071062777495683820921333325042289250478994336600250346860095189271464572859551590780200521670088058419011076656415091517690260341575666870897277968557481899405985039713489789304392848332749312541191697240887676474801820506533781500940872902754233262940783882493935511342686308000216156626857860724398879924125483841055133163027415728769963337220798656589385007312451604705663057624283499316778967191035631171771651501945471407445461913428293692336917313894562165580764082187951844120948808109282578190679175739271133345501002961549589900833245571452825963016418872029938570553482083946756982978119580893851516109909315336404481029688773649496547171619834014254779804077388798004293536917354666409665869807918000514692685827672447013863054255673300309224870207582281653150579661972382337373383154622321112076704595637103681516368322542506358311130716623515846044251330914863668087443566636019487055861969054152308777847365360098551648638292680574119262746437306916441925054197130323075820822266746738563148020550583149307924438186625244892938336014520142050518744048611289776839855557586103829323203886139600581874289799886432835671468781546518134780694478735687632239309556340843164338605510131518622468077214741693395359954102118296925354810330061551122417899756606093462830534857277230616759061208122610743177035368481467303606946507195691390753582970773568216924178876269153790283481112840545520814142205505987929737630527843996068930591682456234612282438870875360108269160421512201932053956061881209635549165514128184034487465474426516746030136041521692347242631668580355664717581941664492217871735719579298215481040697551221897276738522727843729746503077331951047939167578564178412454158215912627018203755247228134465407206742494546886466027761221434411443551075311728218271361337844660226212388914023390485953923588767079729498829659795377070689722223829274106270163784057985851855237682217063803049890977204528186979249976197823396436608376823827643115184162127806860331884526954176115883094949689606765241645893674591407229039935793306014011856343526280187191298898967358239648982070559019746792350745701581827904166103827128815644949448276709079846523208114642708151323705377650795967391528230567228904703579006081602551036969916826276998703007519030783962331187721688257928942161945340488127679675206778068647247771095740106571977595039593231658155768195797978211146009739632058323986154130719806281526129313177816353767597586835250040360069604328230897950826444770503084397206256285013188998268886178842092474296330556661354765915042093112663724999545380849738427767568369088139818334874678789284586427996469219085938386220013228699849753228400769100949567444704725135046824651404895361742333949108534357080582339614615874405871824226916921374155070247911306142250884303342031282882521320394993724278647037582792417369715348314486347631673532471414811957880799993915274403929900734784131285986728796091422934575418800809860363705421549995168673941773692871405813004194530001703070908345999473559150635576668020973381878775589955521473694651648724942613582437262335657902542296272938772880469374417835542049877098166493507917193027440572822960186275823981218637463742424196684497935183020061461201966133590562534211138667345238574294100334209255241855476816833886083219965160090883384925425562124515134587115650592506809411703429588983100757169485022370056156163377038785555100867895817905538505660458810040503413248652888580555900098128992079231960119370031758725496388341147657682569024578833618494863068383936510299066246041191381325143047183226009020690289811943903244003783870696426657928566264544603969570409941568381402586802505544102118817779624580779959023044684066876310614615542829477774742909207893147541231716451704543549291121517549216477837575421532895510852453550595111657180999563687768717945124580957694345188567532524804788625595183202433537008225605374762872948740886541410634548573378172451425656877469672864560034908331220244925818004768383858164372411363098744332362958312971325309497272613230159073525211855430700088781839090397785809997709189017779342835498914394276527651594446813460437215777600375939564036431747867817356023955101141096666484736557890654127451211795924609590876027445097612678597090857388438369508080258491236168937994386287866076464192915518244847207554862878320077755520046208490930468001458958291747475226820062466975224970899010247921906560074427725362963832094662898045989925684249147275969058038908926815474582997997053211074826079098453426923114501728641536463311498995131354799241547670535915354578982659580503729082039066306253930072569045186359071771756564261718461367058068888028029796863394146977947299909201955380350371435715667084062224703229536346063558766271659794165365543590192904691937611947498998362170010113734650917760672731496299717232071813303892826453153214332732721683759753400777711508086010031689474327559648480031543587233623105913984264431709737758984230231994532449972450648449039795283968819855640864765935177668385018963069690902053204111142368153080617445594096879176141995802524652431274719672814524864664901007864644224123284013611033689083271488902275608778088171453420585161887586974463036308348941275419694886256576045315505215314485351451735942145792910292574849935919386071722970978302955881919887878855590540152711259494220748105819197882286314839557813555625023374263890395639298684696337698611076178597024136250495916410867735418700645470236181618770421797256572318877468448039457809430419573628810738239915079344684223320359276887922092312693672306831295567237793232728903427665450773692886393138642061307364758127931552214332066420832871438676345731045446672571648208006962499138494687355641361259155892486305496318221666825384205921367522580813155221462913622403031441186964569468044545813160128597994439230860728763481668786857757611252895090249724818548215722265112714489583665232561607583893306968858657159286483483856370055032131491719120829114348136704752649199133772486708473794345655343933371241777026045424265631715930134927549389163633716151908610685350144844932189356650248382682290035121265715527851853244727976302621264470655151715908500579678755786413864570610949500654123551108337108843985651468093837103011635145033801991646725356554439913863275523377290988790448087320814144980499547455003014169793217089775768083492002379213734918223899147924125146921172409369194755891641400324797813050197145868195866083224857631250914969856665838769844988582761444001002037845420056297561156123749218041350318883309373947065427583783651537126338236819811892761729551607748738523960666569592553180297274130352682236304560056650779589624943585143556363983151475978768963266150888328116080152980683467665437758262273717295606632758913804981152993512925094178556202317006700920153246509524036226265473450009022358203487516409459928513961142754977506370001268662033158217494357751167073770221931801807342627348341066155212689733173000473903150593452621908620770290246273849084858933888162812868622978986483536390614045086849766853792607348228572365218039548524642870559168315176487934071064303217876055520599931575526885521311715282071691756696300540680779332048185591361515302753163151632806640924550154698401378406464425416030745656447064435239051821613068559389363208882282689979162763557770666564038351837436231899129961591310580296816986587106976977636531061286526807357047184667373681904887961353340483406525190018622805498382254665555271807726895332734237672269515203456634952586379342676048503061025546973440788267515455098563289912492897630857113211418435963936137519546785530475870358665619156652795103004044975988546756355235934660145707585714831532899914250993844764165576079079172639247578776686656609123854016447196666586125528244390151985502727243688994939037611453041977298335770276111927367161412194919929573029381007453107537630142022651150204743395761986058926491503516286936303599214557034708290973272473913092205251337342135347094026769118640506139111582725604801485210852700856994131476261797069854240180762076387250508033374301068863438823057243894264745150411879147451901589399441242032579031559994989763098249732014365121590208538224123913404584579867094599882296673900838161095442479183302655511353384949434516146013277496604922382659943537773108389603213767498741532154357870937656696130966088358007712794588604183214124441742360913037704883728890294988202040854696535092718274084677835967087568321036578768345338529367311167550733188885501245478535869413486612791805671310846813749346982355724251221143765050095720833998842323075293943136435110263106739799833632017771637951497636040317580488258204491520596139836247961804388275512159826576535819457292043885418862749737824259205073595065133296926461029423300111600384846007546407609862419087105310386726104893896172075120825618074099955825751030581141484009985367129285653903532267649246203464045693597593147630541865423253576137689100077314030361309429473694351088802932549572626312601016700519804246065429202918673824383345171907918838565009605789802543001511039717990748526434197111843168438261294049360106090653636945047047686936150228265204849081158689709835056193778189624491526485527120102455662988362201001417881520207285026190615521314791369121521420044600689945989200051336660788925173900213078058851172484668430987673470302322892976155508042668848485728763271170702213386393917341712771787899823259691886302274649710070893705416190251598242960844401466049111276205142437221279475532339714179053629079360030483347684907561134057089957587197612788358886609034701275220807914505349732688486954107078224870175643522814482588094766952682864716481706555573115484998151522299165158262416661122475756855441573515806097268440516306666842199343176605213879939737200381081830058150214437518306496200235763832736797933465205207770975126387693630547830601547066728441778463517614403924605308811810647295421492228815479452424566273923677522888436191730627664720634765383854580517171333996750147048543455703819116204175128541492265025189667309841927274087260277099322465103779329609829673601903812382519810897519767665128562802838321030896605480489409515219309467141259619546254549574405602763413176787189554677421642527552486135433713058702053311579015135995761121657004800078620555885852980449592629995739913553983342342080803844047659034002700143801485308413723461155778468766136746355033697097209349240037913375778279630531901099510439032524679255954038544174035805319067769247530697673144422089031528444756820992683164525165619889311259467025252041851422655170559134988646405385440017108461675632467795269874002017848872384311124305475932795915745454048359956610048470083558573996020559300360445745176144412825157309745513912176379821705607627638729634844633819693167468102712124660809567270126592448346047237014925912853397821219901700778630332559394427269012323921916650907973927937512014951108761975711826748940596080771126667652476971172889632459491283889285046008305008896690870009336719002136708208976367561410460713862510450909012291685591137214389763862850734851386432902839936668212051507005050476828416583586964900526130329835199552392896940778328864886572734171110207311029245666052424972430227992825520237649912596127335301422208288213905910169536230892415049004504221784458491882458203413582523920435797744743656191792827744934613654472637091480602877869373643490699676907206042452589028891902277900882907541585684539971317293370137555146385542257383211214745249688372547017093855631629822838465904426851153009551895762160678933185368217271861979909275176987360872210029294886278944546000278248699125786987994031789839661015714800343029897110289294825636105984210411457704485587415975198331156233647279433006584596437440041909956032769046112677520481364098933601125177437665882877834146185845474878444665432665235271568574415157795774203057823409580223593706936006889572150596849912743501206422659016342882131663545714081786868279238613194464853234577755027747808457404703012066226593994995981583745315726643140555692680040395053199623575860296305666598811744546420206210891716708019524367285431692041883034625990572040109520702696261450531838722887029357024677307453964594578816344949317825540063717379982772705487174015542114628148066616826578615000998336705476278618186651006142149227393268997830551825514105627046834424221818653939540948065078180988561445998456946403140333886669407125843576656374877529776875020333023553741384639133996023904090667918985980309536347725546334560637677242323540194630419484782090361724344577698603803169221939163512803586190101392353099509911242607502067287362697861297410681396680959573248060241298186906582578599268786803323278207274857270632823499105362287090236060220068194478546075456585970690329295554380209058987714244708520648869598883311601484438906366157277984869189572059597858697695347725697236142806164862696991353948191437009100215544293967833105708397070546918824763073496935560356346954325128246590116206008739571183580313977026515937035972198502519297663899926352971512896665541936549123735799648994094722923517513133977145661826140837913876314040622302730723024032607310124166274975850713795647603342850705321122381974179169721602610006022171649595542321281280012302327629378123451124573711925359859269704047649058708580587986539114479243271010700274578579884478699362627701510906569090986586843296144449618387600534325045421789072343865644221522601128614984272963019744105540182202006866524136019104265075548119936716757941771146692490658188833998789891337094036908183623315846446187796641853503938220967501039402127813310112407138808301696157511074253099932207891317550073259330626497984683611149785382011627275406698021649960242282987233169394754012243174798158153136330570476827691341837489510251248845305402855620488572657718854847142931374849201833920653994926462711086410556013657289435436968281806162425332885400300877836280279653946249780348534488453633756236258802447100165155790913367390880933451521384581293219608609828261130089109832511612845995389494999927502749645405558184171003389744705348100531190307544577109054000070509102230411110774787415200291969302633743607841138948591303151326993231524264402664440187044819061846677194445664974479248902507708850687187235297795332992453535515485038959074931929301517349226984059801243404697177606786036373430244950799328025545544105987086249122337711735163709976309958369166538731263054416935697751499408509067491603281238243196111517901370030890232564589888943606990502429043463517312663226155114225807978669495464098962975338268528364569403946713741458596097138305647528359581966021183804092018967545321396586048748937751940313496926087590272965969234960523866054092619648398470478134959536189637652639956577176697150669926309535749281088887994327322607422148217817484179663387575685642038067397119516793122356589099854732022139622777229631125668980259934724684597169811977909624828571344457464546725699690929130488856436736702571210044554016536554509577752740432242836709167387211472593143307970122436954036820180924465500373585575789813651593283160770220742952958735093462546131079770115020056909328107160825854349853047600349021421701926326105995563070436887222138842882417178339989586528279322361590719063658069339558007219051989178552328136203985469999170750703552645175583589093014414569897949170836760664679322247917666030947605340172233758005226765895214938152791480553907085983763036305980665099658842331791344975784289867786657098798422418988500662949661735915761704888378799257385333754655635448588595933903447829069805742688075487110030682718764250855681651338883953949784587873688772368888498886844144016953250041109481053287532669306838063608302242922700985631727919502992489979385189940669641543401868046818574814360778358417130188381205278460824800963277025855789099881827283643232043664662589709877882437743912967724973490230892755587434352582047269261373068847227648754324280587626387926906785406790992409951688083504863253846188852835088556367407688658223875870342999567749948701121443046936988995322969975925022717689868418747392822832646024944015256806200449847459404572680074714144937602094968248788265820704027660674398902610063118425427556301584388337942109951332190310588148211041905809903684988127707258682361067893876658577895407967072157108149079469802122735505429940026294920121451138305865370668757180971328090387390482174841816217012993324420268828494862156246701842329978451815043354425979906311094505334923542440299979769441400885323733115042744572806472594659928572592965081554009206930697864219675418225502932629107225188659955711755550208082017402786336085281180552719051247223728536870415627895258598375368023014866844714172481412696511008189085373627079874049539184553121549481597684422223716852732093075135436973199863172931853044047156924476145783527033722549517188539244456296104292941269932268698366084463151662833771063723229667434627588419760446486907550265807873429601595099504227678909204726470673166485216111010856182844832828932298139075114387071830588913942602904254906005361677618436599531392906137546428791450872315194605893399821745596232658025811111978989287574235370982637235481994745679174592946562242725193558998799576267786666352987274835502904547765469639282141068278557042979750358522241781731694458769226672169033912474120004845356642540457680499319797131729181791541353707563519428219094346071866618666830013265809022639462847092522376767455206747398170647408412974662225944808068374456840022142302537483810897206483347361797336195562762587437649127758900528254382759314197884550837614371371573486032671763403291171220133792655008339662175731398145321317377525630494656527268318706259814773131069480657613894731802335240100940507678755251524245579038349068463459149679357007880284007080703597637904703128700573622756266952409085292761427633894655177170296655444442203880711913964156030719388072648079440799118074653279380744598218950178381789420642156080780321267891822839392236668229028534707148121440552268493014464077527022126187439003837005412096011806114077987681163599242301855426048876883967054507856288982022741349880105897672791005617759125098427312689950392959842974390269718390329069092063944553836162449877095293568360007288150133781018873659912422113271564035779127048254111587684977336141928053123666900360250934960541260040582003173246196520088383422442162453606191912311520202700050509140973188466156414282975972387485609605540361099566878654483780615427062341235291570820816511100673205791298374908578650700862444496320465302617080029660030430989634353588967744689921601296749476534400508447389972145169657909410616819915925679325989129722501907931204057039806744566080177975070145552990644338861960967999576678460516381103184050595823799507391173692760451002135209240004733573901277352653168471197441252510523855195905279747312335806233596559304168441670350791732346880009247835338455836805013570479375227986987783307216546672903064073223979905697825536383192319503963089756103718402816118421786415646846941221300714915054021305009578878002052784774209008312614066575247116222823264017314299730487284320993997949419593282761402153590117216595744031184724536772071744395776559768273528862505200001458931067371471807975097195120565394905581409339291618602823366634584917055038367203792391127879670671039557025818278761585730152812220333740904358101586930174851512053514149435883608982873358998000415971036114856981730165001635969258680008407254892169128461376249965828636890268030705191586034714875695650709739643848303838119135552900173742901177873699050611771716721941642154076363569299440449565489744858421917942093834877333992543875117916171390178422835879096806154143706054554929742179040597228333319172708372277194693117753919499902935959320043212453153043555697391902877565721229380273624053309177112776003594168455521357481795245736000206583827427649417889564472118194356543448036981271628150305494397447813059190307923363671845887186793614485329837735317770508946774860904917947889457897363727347438041439244590783352087185926249837348265310791698945893189973354142466300404767519421105409246708227166227138986444097272812569516192700835974972406162399233605159452460050311999833084215685977218283987449864850753838259097200257423762400285334881680034893586160901084328465407428312012208566578497998592763087549797714921500451759384412983151279597821688700396014547815857874446853980455941067087449371847434725893727922029329312207817690222577972272663737204127240872879607119180862365039446052643402415127001542525887713250690364766534027185776427404339802197695742839849437204973657819926454061624714069281977639372689021885958271106457823110194523757599116919038236759677247536864884439600545341916123697571293219249943121048571952605090970574965310106850782096551627721929873028977366273480641672630517652600011724850694248800864608795892038850315587693443103426026069474172072158856957255865854751355093810684899612903452829105800760558304471173417602083049910964000814809671062980544481640078918249179366253974614068904167286622719375858688933616436349097130656795892605539776077500084749859583856830039843052540460415604397818043985223475443306524198459649023863557695195661344977868779917716031240035507919932260887411853045506840563303757494325885006671794784192984028149550579466563369622585067522493230634030450932420035487593590137477107894709296414728651928601213006490912505617790987774820162134451010572859192631920381615387005887375583559103163788744681791075683757506291442981687212733348514577929451091850754025021461507060884142522057075584291849709677779995115262680565619598545167114704360986185535209278350164981800174546328546340908680597091961164082951188604969952740961772772191928315360335726551985716761502266767614026267183842863119510065464308825966049393091276680744039069910511678853945569802027853572418883391527963167717503883747956297593927738779559508086442030661291115189704122283682300617454667638314773046251961307823203535488943705448491570820839657410570584252486392220491912393633538327424912288027979354380728537521852740943671893101746122225552049479104759909658897865588257490487376805030255601983489361479486176581103406560252598300962031403431787297621628628504863568389637279143367599879686376161772902082983604881430233194962262338480430006519892681568531905857973882515150059265707858547002397455904261331198446981630755829455559414569491454241454261821239748603845821198259133847519147292029198316739888267519586516782134883262733305188278860315446696898290716740066616014270926158830097843044797221087161650489989506031658788868221719687674317756716578407645245631337931752199834255522394525921242860938415857586820987315140753477792863888847136037482378581700817588952413493129595890564383749657506398408688712760210394519753076299813023135835420261320329894768523653491703968713147495675213786507986543685173076497454866071386432485777954631567933387767443847525247410895380374083021863958886940665550645881519590953619761374125831421427507559634054457303779950197385360729877989088381149514454950547650537010733389445647019256535389541479870436705733813750623365330670118192608988556071924443355446255743905701174005146238072657399171360097892276272918788384791314001353833680065015817747921444361392716040384191666142519647413766860514873951567625772261675952760295135943742704483688874469475829101785921149722342023386351241590256645680201005880844821571170405123865981871545406395580047802491339694020956298817370527527065536914957407843119456592927080991994661826739660922487956124140692437738379174765807458616353814892695198652574073493442712983942475031602162582465506641739135083157150102978098003911737741776201325744417593118507631989411882017138828950682036887451613978242039137268855353787035724158324943867213978544461530761535618735846713637002038372543816857575417209777645804429923789998107026809296834132253737437560655088250493122529506040939827792556901356799669987012736400094158754036021258534920732490317993435077110974482721532797888758776865276239488020999590925707032034236166618351672024341180904349153771599852746680184016854849288150889384154910237189854120004007804290206246589496811471551097678443353340538144434824172036736346800050121843196228570126346825321523329714074882071346564199928154572673392042570591943834908461018866672757404212882947744820304923757719903777301850509078475456896009283188885609546873099939790808274246156413713839060212867575252184069703297764952764402938341860899905680716660760308412757784530403468029158042311265173595432808269670561506194202094936610144699545628310852898470839915265775569165767878236417441472518730762423994212260724587454530495592600053249355853727994728097324802882338490718783813691172461404391738922644306759545788950573370367561479730749564960293151054544905859549974660004833388246709927056581630360417710052824131489751198293362382187095177379969642883630163386745320481849728735452533068134018727069927992090465266561512010347927185856625739577631445273654375115256129773462506200741975221711078408026360837391826289332498659407259969949303040759545409639530042668975397355560908162429066687894960973781452075752054927004586046441975437017485596363816571610488239246752897580879413426452194681585896556856850636157692432607257847722120386828891197991748766537819483950024023007870185659458437891432141236528984235819521424764930934417697914156239612008145625368152844241074589661883824676138833565862016724417820266027039978734432519916884439947361886923032174961519737317885651249418819097841582210529127941636828714705613011604923154960840568463525684589356524666951792222037285105518136855693276350935722297402502594791548579555589660749049815026288739282267106445513639118637041534011809586265862831786421270140504684483371661287169014110598126518622797299918142788812200305689176517836292280679746167656843610488970010743041194516071327954341096492297632119589891564198579009291238470726020715883091777591823348255274853573950839022526984831080297815782007644301223465976239497759867788172531518813412440179117683301110282620718376799385195432252512505978906610885473203433903707869934288355264104820348136000338353264628220722050814294574987487063343425950276862351613763534953978685643943935827751938531411345654547575146115123330695688569533746339475770531626444490563075422686719615931707242453322275245891984440936302204391104171607148826581108794222588184833448016380326893699936720160016687974859990258922982519842277273452719979705853166654347806883004697366851047656598363407270278305044861073139274154549656300131529414779115154179854129670528664489373385646023567054895377359462459458229765744357607002880064876271490459647854973869603577780087561170292265555081001463475497692060963416519399052966691616577229035627283308931890677114461494884317197344179796038260424504067739176528051169655935698060250676564912324919090155998002158482996023968238110147875997182359864872314330396642823138667063826049921710462636711928986393514591380793275332066427657624677743027330530104901995217484272406496061695455166195429259519136590337933759588874238292922562494156357493152276112165918195589043873304047718021794768940331807381621749294605069735228499879285307363997849286824558510556052812213494235858507206585383397052898983455840648081309393202106439458846597862477289909431136376327548170146285646140881774850200834577608241291693330406248487238049949152988561850481039249183821151539307121694725133383794434003974301268421004535850575785937027026865302781293867858943163002063801439754110945145523630146726181260485386046574699018719590993764417186473339848618594763266555907184581904705794789864916402812006014830785759601784940467055033733382519509859084930745985440478904385986252120500681343516771081198135984072594525793573730064026089211361514525355474073623859853924231310335954184850279719129628279457265600773278231258127848472568848674909658500516090550069589146824603134315212221796587306551142015813595975168876039871938434520279475953276404385342207170042120206123797098845802550932876508985512497210618330933073915818079379066792215862044051264207958539364770428553679892523210784492585352124197681617528651364284276385228019838044210212723748734169786565686247425569611324575235742365866781508852955481632521141031996810655259747221159546777378738566237329953847137147020260864311099870440293226840952835135401172891357644286517700533649522127961463185426115152649015116337356449606773419957734533659082638929506371949313832940957577393493959007602157797588858158137087214135872466503503843634155197467589545749716991489582284684366835025954758813928464027167445478194267426020898032616549628619729483935194369667691732649357486003631501990511505763976247246573991679205348672795557627170488977804904579138702535712257861225300609062561336503158211537177949612716790789859442864098554294562135837517679040035324106557015727642493943059222104668393591270562469660410361738563257161378116209102118003523505625312962316683528409481376260523260698961909680195436083943556046529395233152061229257506409771498108637630466003916350211638503638304598069222587439246584316780039152758317353500185875480268600802382784089035378752331052100828746547505956722871569813179308382587569336226780207475560648860998179782211505263462421169471868363206671440414201308023010918844696214754669208057185750540222685397387754589550325479316627007922288090591801141479929363605975042099570171820680559774520898208467907482387602783050986894876857918329340379346840239350063496047485479145318468160518505727863171373522161643461330375443846596299383005274515688120031127406665767606141942441756281895472408986623691100168493444049396974363214182545683637153740049711398401363143763210713362646125080857458319382372659540838796303096756987629654563984333659402707772283171685506130342294954926292298937932610605432693340684877525427684965256081212585995039790264546509672135318447300669331457825058858331400734082910781103837085269162848284105054024498157687440397356368054781767770744930594311093320760003617883027042935066358358576854311476020640567499720142618018004857109989571852913568267294919499329309336253515457056533599291366862244352002298793268018150192512278396619631983151885591921417451635235138034437244081138324158276621837923018238786533837509483543390908700190874574904330881700161189183329480419465761263905423865652244544661016999171861044632142660112083276738111110267843034064888700812160485776554490945643334089466475166311226433997751240635419101193865003616893134929105141968760265268683892015955974350931368931366587472125940867774189432514823212872986049125699640219468399015285804386789409866076715723666671761911354610515501341366959727173147577162184135039303162582481695390644717309321284784369572447180844110993349325052010755689610275600171919616739881190295107736089627985593269698583112105351404888184886801665893298318936474353447098820028481917751317779884679491104045946555533240763224193352262182357799418412199871175110180299519810645825707781032424224980778770737382592856012355630331075532241522968063951942821903842457531494800873826022139166882373570076655267997555882852287573555559920210080895140796305933498741410131108831141474595491767034854207332018884897958928569320604040383183717266425019124583758260056161356857100193169609158545003709272983387325853775095472860423892220621505147856297044375672238894377419778273010764782660491949721047952726198272924085193256894817313251305183691918458199476259052999151615714421865611962318831553035655153425597822699860624361648768001347643793896818086380369351357251127408481103148487253291027118671309273819504007112586582064972316728489481596308214695500738289359238575726894303186555084488437506683842518017789655413212704827305215503376110468565548864907211770329329373250757848390033420718843946583079335570998828624576946352864329124128896131143906528804209216850518649605088139463796669994214015880405353165315794511054487470990376204026969316258139407526074282789628486629279651131512974863230192304647117931400262326457401305631692332855573372778706646590215419517729142135535667870408659056172419140763689861960058154702968783190543302720847143467049259661898954726336856929613617128695547765720531354824904942473359271842462832457005337268881366045385952442252405441893075326786521067619133133193321673991255306437470618815020192248362216297890621385280577342981952777402858146265987074019109412555035333863756106874112489663219691317443431307076247598215938750709888130383747359382774475559448338710093909805370485317378218320213335492485855514495105886720050544380558116044767096062596896647465334880751974856805313324330809226302727688199566078866519448120485739422719293792127154569861527709168218177768268549026199285898339250796157428062316541161612665637378353051354466207774255831045469425776373628631585803003352518390796099383722217894322921389278881953540141545490100478313631805347062837371936834589757469004525341537762819685991280055319561459534114847017682298839194266261456978381139734192383977820837626007610322093697217916454124153868573782012638599680375944684359655500722302665396868252040846557727437856631566102922093326885558706580347514920252461722251781170698526423542535944197180998885789814949872091922780876795335566521111811828302659072165540658597815969827625448011182126412679430486966708276702626295215303490192552475591121237459134399595612153718056400182955002247232119340697650617208779297397585599301545880709389631371401439381935963511203733719158537199547285945850745892243198312685912177904702270557255677210475083597384817328035665663526634966361062682072726197457937431303115628957816597985120265997628340265814324585408945566093256741936050023771603831454303659354570307204059301437794487979045551360170276308774436904596774849850168450545016593222742035658053101162689921293619501570163240139156562834381401146351879968878855370325656135394121644193947627169131507919769427445526435825268023496236247557391231003257291450917986525880898139753302896899104816593858854472712724226581642930320937044397887108471849330868578534259086796704290753464358785922574835568716001140387046349737755113326276705843061348631345590649708667094698549130223250950432310020401257620801397521055396833997434835922721028385586403552562026818705718506258058179322606730370477477001328638807399724135623373463827208982265364862292017434159343693459779581671936677396341897613451393440205709008721811442232671784450691045944268014828326685638840881554818969644537674368522501158356131818041149728002198729696272295622387125333130041204952381947769507461202579469278096868873143998879966013408972492193515477865799540762329455732473033528812473152932561357598823453802956503217346489864212873033220206734676328211788284434854675827424259791137134833273129521575918888261115717806154488936524031983807982428278880275434993301562611103650346981615616850678867224536649777092433608930864165659411050181230765420860676159631408304682293075653765467619302646059612536318770274493499865230619800078705247225528326475369296766985557484955024909790018623943596713444998818462242582775251396753795477490451498408914389398094628188406844443008817565974690958968719920552953613520446998051332836664611335835425299142431992704497786810697487340488233973075297198111754477930120809773859101813820894581417976524719709557691521159285036850556242368872562017208774778689713945432679616613131398753786590424660461129027780355992240945315771908488595602907922509531851599524561254515603186589726752256281450688487521166229599336604874726523478708897542528434821367421694090218897866335891309266404897405898431400160581655965333404885719584175736951190561222602048224592802084516532494910709110142483824543360354631963316584904746674914554602467612994191989567790618440145388113368888863424231120484170152073852501699094194708017220235971178632849039487702003189068484113430051563298078979343645634737022981711420925967036050694981660499973506570660882756842662897539539037383554696675594046375364686000338726508595371871067565505985561735480966786936505622430918816285708853757760179004069007112730179969453866644412341053846703372532755402148116451096359334508299808445598681722804151409312213991971223857688991660232753336498475999543121997535412570263837236937617808906915450433905171002655386183500592008836866043404928833305816083756083483612502243762209796046313413487525878582345207778652797629718996121731284166011715414150018024306153541355830183429295652990260468158310191823435851358141102265718737003568588112371464070721290825320098679817875389858039364219829876975494950622474010410773662991665649484116743119780247601621024800573099339212054561007626608697667074643295361065028113067603662624524753828059876293937491553928061790698130698354873388327410548718333720647627316562154879615386977861369592444046267147405653366655511805440102089735536277365331237666698812918656194815830190859069489120082813683169388390731128560356619086852354000734800637761799703760691972580455472853818813831422059553931080721483398508856649698711850568985123163286042491405653406130961276712096543107974758427482600596003732653245108999530846704035913844097939897337590600676224128970413727183379814455753287126765551692312828450197614346541840747161985936622184581612390649827789390825650886988062941780621468926417850018880317889891760902460671587904804414869560239613021674764437743967111227234058074432210243166294957617554251253868515871335437279880249728872457895894472573084672966816040549924989147662672307354959581368816921239994292252788592273828619372642581564893097678982335199098806558642476016269000462743316384875740003096324348299600498582230275929452889003698335649829361565312120329960301298195447472497774194060043809648879014366309641363918965498961230593486603177233998027815776659362688578284277383339515809791280074358261285170688472280652098093040293424687152145495044239738774725562695474955788961224629221298024414847865847115388985132582988289436591868875630267059631188415837193371598334249138330686056892454514321178945838774745484417469708700989370573625026537576566415862816564003180037180794234945706993880960921542206092857407636394228991268500725787339024359565127225975360569664340445606044730219598630206724858272227362400672273612894102625191492712396032312566625012390753895629966025135623476795089944254828345994021328199852527741377583027572510894017646893161825584935896507585845972701587266138593603395456441474406928068868388449700834286898736061807175343264879397110509348665005725918836249399890093633916744788707833476406197633721195953384682487377842758937148630115422183731115677063660803995319884816224462415623037194951440129162890926726876484777739157821952030782705981261288877158391980810660157110129361257783845861680076202032567300136616996522430233447059534752137370295546485270686831094327909692019684184352200181634248403195277279985173947015275462108646352672536359120165742733878794865427937668863987527082457665881688853595634050231743821546796677730298385203982396141537285368126964566331207186723230327410776951090860031181495521239973934955275536471422529941696751188322182993434608875587033834108415125222094525467306644537322118774824852420652503720608829816293697428330062898924461556145074965928998287375182120951678076609784287617019284162987949832913343455523784443999342501021331335849548506427289759277521498146656807341994883580993491649965824007030818379800250476078514006065521087348110414554818309132123056942931013642875392941046031221398661530738124556433932256871461141879996424173364627428451430610398570511417872109711177096036166824454241142678587385620042113379859855483630766090765674018797613131363053042632608183122353570438698140061883718358535950577264145060460131939052956564858939171470889447192356907157806334202168341199265131333599782809405669688738946893479826429796263382346733598383808943366562029580793196768693523047524554240370188383493344924043645844538235115607014807926309773327039444333287937351634582497328433050180117269053472749284912529420458114228401470899140347864436507165915959999132148053453004824191875089249888403787655379721294432443397476781743576064723888996977808690086827031538787151747480699970659279029537943051368274580572483871906172256241229824927833518172588192301940317801760057231908161193783521423328498050983290298616566995016487952948357841393773851594805964475135640159749044562805024795338112057870054778267477529481328446109683185956589488904584962793875014516582275995779963323031364254190494137225762175481046533727687945324686161978315156922145536385700048941264951048917313034941163292892900759061762401535127969861831502870089651358109780751410044588299171956422555138015351178870626855696769224055794788554478093681161157309948719300064356105844776872529809850669849184492523961876589667655166539756242804769561175296417689913210617422377142145954438452507284773335628296532814006028851204513585095040809380914353824108411792851497845849846601769706625108753133125784495990683790927032646136748168517556238641958542592739937880360145659422219821594092991705677499887721141863556710744574763108125959024895680203911940501392030359103726024602712329686121353235274014544014171831599188495884341911504885426155740729185634018023525124868713557572062177359747545684468954333109732598370320244910297552102667344278361753481073739060349144056398562054889121878190311117256856741054938643164091626295176191364239579549621347091938267135131951774008017413601058138298584053706752184724486760698669975664143158542916246685235775048452274318889633113724104588853409432575400284900659664028954092691033340916010535262521400199708225703005973735602201943182413864277933121153104444659230329628758359691714301044354684144946972178662625753684398073196245006623283785317094479693844528768835384844141074128628578984173161552051587385148785627220118757540925193025406790443423329633368371166284100855676343454575178713166277784584947084510103582139088059855317092624831751461222300569804881917418255561982086008289804404237762106148355777853267064461734103418058485158814389612964816409622558252370739274122588662820587998044954630027059448489534817823437873220762256029888539481418372567741711787412359546120105501635202658602321605207188335697154612694315816703172333802882808342559706192990389308412641774929500035647242677314812543408739266170312172104355976119307386266922692533179136254357378395888187817476060197817663141179903106111969974857183262303227843336932022099516386633566156406869436163217856523171662728160555006787794856156566497779795212020350752399123833927835111576322063787195309386947529907956438415958360668695110524438231924148639283786384937741799842985512160033549071401479936158492217415595309499873493933558242202416813392776494127611839444093454306004989852569011064965799727469113009378537136794371903690088805973601195932341496577748859959453961666248133089720537644395880867358279209333167835188663429814455125083861720450892823134163018978499853164374179550690248313267089507515386738927627109093560598387477692262726742423874146675534657857104547546126904093975839462206295369318755393030862018759384120600525468911025863231980775991690083312215334317157296178587600698008403607218694629552938739209738759272693069764400603879104268568957916605383875543821586952959475030702764794363599165158396179072202590590443356296488015490287324945331853658303656979326010556740003225044724137694211924472647034043057640885695336935511502730459965225334620883940088476262155657750270930623502561422221948896788387059748349692044850204229900969737543152108022700265102882176910771794853332058422402214280361619192592803002593841397939843869459233176130333600762258255982471625332885724129018069831636868826281209982253813625614950362252031907747922886803651684837839362085747697520609034240912183765159480068288732649584504370806910405935047675946983221579263544885213368339659612351941447390154731464788477381325980510501582273633209631502680829270923612013560922824809920702474653037296634719386295777655368731404195659498384794632024152911990521134384512526377661276633659969216252076418306225539923635043848096951216034526689299901641349220006593961654183812827882020990121499518714019393442599396152025032674848597952840484868980083483875474212348895737361292853582956733075090462490507005841637807916136074533418641550504575839806461361689472475684127513976238139806219416041202684298324847416665439761491228770809217659207648196284747018689964249915798834868517235882895320118585307146512244702402981521715112751848344389107296217586054408440870033732977013396967039102652254864131177228025171410804503297265846885256280535266490837013697369619651139801865511856301426291819463340043968167174407904953190081166726115598504976923430655678026396765943843796263816624887996890124297826757263619217098649570095945371046571274571810372143364312595467766486201642164540898865299617807697344118594655004844240143604375391679999914883510923731396243601949025711820147742964923295411243861767245018816388008749700651285095166784406345367033858455257984768498949052285440675909028814666895984067558479345532237539501315037291039769128870443345195220266009389409462809835137660817888448202970683527364646476514694352695186150910892579658468345013620983583104843284037834627137788566746168947819915924378581886759655355320731062365643944920547228434649536814318849519646511409145368935643550142204185716286944228595719206804659570980141014159967403091053914220839828708880664485775711359761198757121370881773015198387199918781104697999259804095181951379916607595423388230392105030141951688446074262601045612363782014241733166227591887739692515981581232037759737518443136373497033220707346029124306398070279005255736101542221809772885944946691668159038434888559703921157183229381768238858661058638629790265604787419064797484237374745736526696500909180640718555654564583801397591150075530063142825666805847570995831376121113901752879382130204549382973631107650384282263652086598264245578157883798901782978022332046333606183577797768218410445749023333353533015990521537427979480854786197437625055704263504585855532351391899633559444085844754050681642967189690254084588218576615588476739840419109418341394019564900176344785726922042670393218763737095586009580486254424900584048693398820650340636129043194274660204152302920702790467193193069734614676212176568783680841915233824751045415365290032868982254222160617569332361238777994960645654499671116687189172810094922163078745638905888890087297421094639710914334576469433927386282680354659175111392948588813558630661551229421472136000040446738430156057077841602633070148820660287942674041972751270954453415735313222464612146381090934049311547173679109837165912032989622828445638332817767689970475042453826961578276888880575774432541918681229626999156783175128351570097079408998983431549252959821644559526141019768571368755931384225867256607256758233944201284578306643682137367488371991281000015222519998711074460770994272841506852467799463684693978104207441246207129551140178017668412657583741399212919050738498793361352479115587501741249717796189580126473108207000295917249070862309571174891153405029019690781990182934574303338479313203824272567557313801283428696121545655974253507284006191680010614073530760503685484908940359382672828857982438777924938329650127646434525658347019290824698666118148188085914278285737976546716550037266970488207463781233428244636441727999576615354387549810710878578207717453923458762766455011160448394784634973512838016859597210971205969471239258603379753889505604358987416979976387918114897008431193791353051454746021054226314251812178687502043535067034786015993477498182017828160742759647613785927891441209558681439274726068276344036358586155371654720721032097553506342390102090177985429097265689916608632211548184279099967019206233568997634973192812056706473576169526914876575106618324262676014457506894171219165364581472778459908489204109421833126334046885379718992217193040760624359801037664288902880390407160384063898128064220404352464472846286704398869732846754638957093280260149602818595047107305754078161684432548081980253768807023917797228647422249833468457703834511809353585017681695399986813630895556452865263079538888486274839945555254839010778149522665363297790647709674140367181455210615351815356835882740852277425656720213933160558324743880480515043300513931006414958214710445874275347781076831253036601139038683633174281055570664570441745718943217813570360153863573726141992825166179430247766536762579438774829183751699709608231384597129678345301106441231634284714767782761708673485695555597437957731454183667556157316801657347402814078453146862179265305781327481131809309087993404827359705328197864044464600113750098762881428508027815613241921566681855830891712605694361390350514201235476338719422443948514926486359469010050335834293267098220155653855689439793966572726359292115332691651613923933231524267127471926971088623785101195803702426646746147099760630214299380356050324980254152568875460359453226299694664154190879911864608208159969757939648643986721385877690229225093533296065247554297395048164418839676191174425832958311545574314040213329057022316085788019524401389399862202203368800928107290670807455868851708431075984183295164966018656190113985007350923695797190671051205765421930617880042638274646864690858446145846547198754745915132370169722227647035469989198892192678204664678273104344137807480914499323002859167510199391814480620200822702028446253855575695666852068347838604798070603682858006738927957970129496067890999797348820288166525134897811419470535414955050540654175404681772412244554999740646683425058443454726702442734084838807571624445550962052287445722320779012568603852579660459656218625132790427998268230556067348195747763393889310562374626454976478818852661334267212886252778128590471257901019357962130561612378162931112301985894308020999154548054706086728169112958717362499087432459777249130370233979210813963224958716910414986564818985080430024369936184042228762783400336889413560953118056794445573150826751376622267908040754102085496877478413057196208450560749072069291010875157416338645707790105084080153408405293687248168574936956354995803403118777190245209027335317252391936732040816641666498556806273102956137349510010742534872565635445086349045897232975928926302909738477842613592269964407063621809999030704851295276020972775570827605073867626823817224917476073475140747837295637278107222203972621102903628489463360219842560597791644883393699223752344416773910051317279346336290040401070554771813756982249187935063094430149643850082824119991712317964393934007716314990236606048147653247568534077211023641949448313337358136364052302797448061235155529917771703146184330138826032075403790047225268565755563949391272876726774003295071122900344317069150710851147720798656401061524829078209544673806330409496152068253902244710457906425887733653469159044520894791938032682220932326953829928837502313775725947054896703995412234720245222768148667132954728313481696727282327440433975186301811953722751707127663667380277068375959292552981885810656735239278566315123037776504174212183574026817024336550152776149037329321480565353241058456605140606399467707846039132541338126350930586852640335008489016388816406932908896647401375194419230400492756714690386576365042136634489914827566416865669169317551301232655097150614480753984854946247383221377535999428284264864214835609358200850082249239887554661985671244943200187548134198143001954672647440197299970393238524554375880209186400717625665537965392769187652033038256217615008388440081275802793381748396216213828081669999656046507345216218755723472925367768699990678676649853220720147712601701915780220931681377596420385264573889267794325073575428085810595328651554757395222226714573913592583292972562973826308743847631032009045609322342444441926055317954167990074683781390556169319488291308510022442015320967431103139694100396728487176311462741459833973196398989860587596567679569574914107147027517414849513471376280982494574429079650164777499894150913754945418175205112584001439861819272080162960830418005492346829906662410418307378265119157170135719430276653296048504561964353953254540265727213337968615895586170943807730597161354062947667798566575262529233674838377325938910063793254277270965990947744915092908256089775682943877363543930704331999076605839948739419944050753413655565117014334983100135782542775758743725449439001943019589458464891638639934655676879185342430419728690691357765112667637344084181134043141809632565654794692818667820115969365526991489487323717693566699189157018795147409045778403184287200551423441637423998191176724921470119172787633300377291563648560309693332659448313207147561459498845515355188579337291720841953768302159093787868951673837735973394983271038661290842880554547322075450077924506056847010642681316600489666015333990520272553150248465815794238560620837750197257204970695423005325748181398597249011922947564160333447719363858791074186400566823836174858910084550807693559505243349114750016254827528142735934027775550191924921207114225331095681601942661759132928159244017573287087576063584040169234272080257423601565712349613048687577382050858574054755317790323339929465398918916478087708220043132423274469173160664755948308673721338153005128830704384050261846655985090847413787188713957523528839216936828103439325146128958170754821511807463327237971941011097514999567008783156815327579847091913738974796270344460345912537577938220839898377296282269818585397369260301180012953485205153592122446274090634760193085682169488386300164168462201011927589415812258574014969771027901516456919161322604478235035645983105053623528838688720214032177242443276327156492371702171752327014172891984073481664649760984467616921366784291160150127838038855822381735631174217908890752018224208578566489493954041376465362049789273448468967017953535532664515103483639730238066706359213704737162303022683864140115816436874761852026819820033008901340212497633759073107297563115918908741812548013480656989187449353502402919818366984776974838829993633205845854425276966851698073943259012172558414406753333809713929862870505773155611364480294707086321415084151790518452705725608032163088338808802333441432793231689577316793324661920703274420486907935386081725917320302322836290353755228615738628558306038829016084762003208050090562488799625907576975185121171787094856224985830711092514845628927097018113734585480747818754177201497825700703715660190348300203412803237966204950007589138751087097423186851599035761105004812869362038036281854489153469414077687400435474624438204596084909838297380965429177421369552314001608148363748892755010425490533735888654805182431580973319787229322331890812819458738377321261582714061516509364410540002294668088809994797580453151329345146721879875255550156385994377844557141549251335499543017993160956584394501543260105382821709585072214953616514115199397986814327139032417975926768981852457050660170412793357617911031434266252408440188013173305119352042411727349697819118913024936862556612817111565819342679187329882130386320624691384497016497562706942091530028411919548306767385985524133318425365264604778575701773815351989772539081158227537471453403983738504270056280748192485785433291445194864085051100452998912979173188562279495371747609845438424921482153047280264118199773377093734093197157129114364186932601711353158553647249551227180937134097883078083894155801856482937140925112395325451704726984202184275688572113764118637813770514407673148153711118858410764503346518401923011703439059395040019956612707005712050340885412874541811997106058166018351101057166052462819796391658326773586526628665191962600692352263333373996330192055848416515422312848251542725224878208219475047104261058720585833300345051753635690053116910649824729811148057261166192788262046988272941065968488439856609213670502592844564846527870597306811026400262791986228104236243530558219471413261998772629802757930327574035102262573713405359384345869450998107381264087869395228851465441943250031078207232574072891598043617056803918743151664770757994611694189154229602802434859010918567273534984022403420259863338366369740149164258219476317625974772022158198718224512359959157612063903651059050775022004831200279864164857187122745646404306988518210507322679173178679492268231493666549418912744605298959114439025253861257583125515794955847241887179150626412115023552026049387767487885993472795400386923799635250948134444928627584980566205013674121724214942696236124819126125594033871369510178643505201370793232795458052781811811250578489239891346863828313261362032405692153564500286566291497149511063584308502374311957323743441164159352266521478671518075588372596565629834810444069246514079798275404493046835566120423591633133853697846620821938808134823049003128825466132114681696319805608907584829733524927685567504690590984076949238958858903985278013775894828616480610055762534592454237186308445937296791632657545212100807638989885734892399046451386589687501342695656333058033192715749840593307190687297073776385350749857742080324633895429781435673284460365931873950465439653247130469637477895631636703918217246894330995805418488897017281546949823665532573594773029766073437113199667434679146630693758363643300876916006544160660769291398023175557925616275834611456338398534686458326945610903770972219488996027475195885946818859527355776835305165665527312595041878785640857244541619920419249145023998823412151266601389774418310782918613429253914903521346371173201261538695934844719303028900332662079413726532852091310668318167279345948671443548448334047933385749725262434148472646987198867278870376929794439045681695540350363291147076943935171541255535794989006834184473854128536199979368225785964944758781201514046828831734314963821251549289902434830714427027086223163469257337350952720900995668532663006913987798437140271886611542466136419215749147963896588640203186869041101278231400149102699314995297942235592664658459133315543758666305154789592153296424455826360150094663208359012912259324194157067868049049946916678740213637704837958596598059567699981018295189010507058580446015277458151786356996709471507429173876312768092276601217379699546467386974638128065699216975875154278428871868852808019132048673141373389737094507576477968123051265095934685997727911476629978112679538850831242105307346030897191439150201470891718774228841435849283137256759313546055742754085411814624576182015275475879107276615895497434345105727058063505145943620833334633221362159411381182363658037642258843581036236938666497926646094481519426047095297380134420911885233783922566872203125664378230609654615493286066223079127270588904380455002864540339063476289473047829909024497951958963306468338149808141297356356279258964770474420492196974742092669612151032176713776245182203863165160085231980269386953092711751324553696056362448191486460891554352970146083544483747242020445983725952507848109482567119649146926378442466464002216459300614703731078631396141005119357961072224077479132192037099008033453728968020139034425393831819926592242095276128136530245570871581868196532687125090137999540589869855943314745576666214316723572143623731529901005851455647912478981333668672896953477782106294143001721859612900473942043576558427395487226692046894176569907251074865453358610636122459538952192290884765847686935226144400296174055095797227506335534596989347107420732495085761701581142959053123430946114299840872909883785396314965603454992306187047396074367621778220416276589337919743067313597263468599182109158069528650561656344759679627290738388556975741644277171392244237642465033770315708996892508714166147976593321395813339421158704577503520399998256334607433890920735211104146530608188374843580057425663928209452632754619020584636361787477321255980941735755907946748628448737175825558617983325395436369761348887996421276400305310687273884901630556759660775086206328375641649350326829113690999508038002825788627785450825416500754888721660361589761461185820926038407429994501084569484104715985685799394152345616035885055293004412842464413374697198599052554690017639974321761152712299052703291116946465950223227868453029509747886998603178567746922770135087997432043856017961521726233711169563698418527585256766255419253761923196823309962204066284369860132118186618806347204261743458729043996357469902081515126077344568838086707911000840084554866857091492806556007641949742790997584776279828165661885490325465942509789159392562642262407406787210974417527493580394987888078144637429880856900955031336724607715804651931063652997670156940775817245665401952696385050912932113558398147142619696309086089509742462363970231128287193992643194338328546864497489935078105865511902119774542945802780592779377415914517664888104460708796809999617496281943240627463748668312267678396128103259003487528469306779824654849300195785678461077783365073466882424135991417228569109228550488167932201027200831932129484572848101369009538242364624948820784637979027291759132657789974995292509340997971547547450757738640251185146282968428265267186276059665930555214923920621284199185572322341364228385982525610199288596622638592118700963229816192295752684405839200664484430397087146457949611011548055337398348460819199695620613755182442978950707783192713978035305556834732529223922577360367020927918766691759330356245194926967975452179364908132011149735276334055607000791236471061779105206056642487544993000847765920269834136911557304186510885623368173483103166627335201867149780622795501724305387900344274939252515600489154584952475565066016163974747914254637774017905110862809608457944636431554820616070845206885051236236096793396675489293902983699412083258484400188878834252571041641069082750363748097892526491888394902128901800208817104198733494500707762327876061922659357160248731321879825034874842750488346700895623186857529610526596739478994850480358736014616101870697275374154739914760150672589299850396973135940801311190186021890709681968588105505685464118238297983396247015191351124007788352960564823128322701354787159269919272876169385658212632426024408324924005132369520839380043628676217801975886950620964876079992777914039010837268234806467211027232000141990741248255424848120449435232110397316155369587360942607663920647351304255818533791010778901165225655600641243821802926552465438479752268937548777863280543416324727394712263223924492664488924284461599003591556958291119912241727559615902219556698015549316991987504114550333388953328417230779077088313387798297007234866396072352791067058558924929312631657683385625507068738228851062792883367637211201234135432950870218739395423068053108220283254457636175186175091505952380626360245819470642512548338121298692168220404453607523395653028038648432061332483183731561498263812006534329263694610591919208493919586280329760258131275525952260400394153593364814786902624574064683799819784916487687538676741854713077710683616533736499609292586009033721641435271181517142113233697882761772219623496445467888276520195190079147682642390146407423627807022041137272416833734336757920891663125040393052523660884210707123443129780538471133879757859791059176785909887582244421974625829215416078667570871533198030969986131651824782696689684533285152836356301796524405912199202010966332623634497873301714351223159600117573140356871778878576228588334890765936990735169834323164481471499320858178658447046396236902014475789888132642010694976937218425788245860443502356191497540120433486492362981472122131954717968518323170731067911840527469806607064838132124614502229744441148490933546608736395497740808479039720636501948620702774895243333152621260735121135930806855478704222780026133663452685552633082803231262278019754086071117989072836352636510416894370159671294917431965569920627467627115676199673651887260972069511989419807559859212685610291892865446169865127596713300355430840295812662891032476995352238635859026160796990027758660947704978074979498967582382954363060875398321591165784522397770564881655569752770018809860048041594220642350565075319495569155260657788842961129145777433854730348356571231321338434720318248662494098067429304495856205139990685260250427848278261094989269984057846806535723441612474546383773521578121688020504338719942176386384922419851821589654695977628081629487525379514121084897114118381562110256128795206850153042012598422715660747157269397814217780032322887196354105849939059864603090447363370683684220552740319102902041006348517243432116804503338722992245629330976161462945725680398349757023079189722552732279251219010498828567948506578683872499943607835865657970938803376629726175728131412626005284476481029777259689686221696510221061258409700969479271600942903867726705753190419596886630199637556782554985274563890273918733760097749953574784338531379051542702248431937307644894361675589214139947705661533489296557866633817855695526310144321326674914443641537826104094202362315125997665366549788911784971952375746876132070216515480183350604334833521521274951312602086344076945318702837106137635676159589324171089834973725523682045697969961256542451042809311975898920588905035241729371147629321938060329605547217122511064331041601347450995596571305939503729746829096597001845465513242634056463459119374476533316762654983076918904615882824880246817091722171502624456183203592026638713427737560978517423706601464466037164236194854243324826239400685028095664089800949329847763961677993910890425546116857876931296073994089939620234343178334097866651540193655922774558429435089946976165582189987546514257341403593762466423301916229139550310431030476886219756902716618388114318850497844084370490791124310564523464409882248724574007750819011672407301566990670434710907566313090833767367721798404136841432723568435877076629392031060181972705493486148440404403887268139519049023413037391279553145114521160985475564324672183665126010469578685638748032711205436782496654890634571979874527563701327322606103107789640074772893144482331618272482211534716596220545229730164531897727931440178144746887137460523112111567835831248825122517796839453799579099887762146011817295066899112919523681548989752260010553741150739605649743272426725342762828136455628319654485240495329127909840781526393269224888705686309671626066133019820466147196404610151678885923750237408423410695026469879490596572454192665762377445195412468938397837437619325535273011743264353587852846271192822619053378875023925768885438022315473111457946480290652957707774914781569391101303941388235423246620611383321290934415999073166052555565790975762756703189720106439133598619793651189704380993035121035470667035781177568325740987946921660084967207420978144312734340157172477674703273123985107449150615555744330400203019355015021185693743504523482442755215342444880925141976527335542900048513180680282980332749250142210434266354740311929469702005020305824125612885374299145386328619362490962178313020138866349179479486340100292099128372348421762577028279630524721328434347574753318754293973934319622358855384978471996960640030580525251558992981353122918100973751371250304781301983481181751762865207254075322831771432720123560975731767550871453233487770015553879453227629990770587532740707437080562748078246203227013888693678319015423695491031450735131740738569118948865968987494222455131383017349576343232017013175769626674714580475145730961503861618876560796093463793690582510820990660741850819606471370757638575475024838591201835786065359485055207656629176152274031178518426108786342591425376364065459441479118815629154061747554005602036804030185679332194806338350740808146907570134044140291419963881745682982877641666638886890419443690603044067602620018558556143384935681625117040258271136413378519321323702455683778836073720579676622046234276982215408037138782339690114036728385930347910585896611347583996487530557944075955158433326872503320034231641840318778495959373301807965720351483075800041240457046613145894158401824626864264017736965952427889608975330957879579580484579580773005496446196210516995744275731034194061283178785278200021901609654096436002491330592322976702175223682099000491435731487388035685962662827363324181151283415176549915658423412093523913724107275586843896446251387491354593295379711485793837812436555430358746266864016396064196516195393200859011447906042756736290083728513093176115066836357648161746405731754123284430211413458640720822916606698871167776226441078551699872142537296376034374739795273774671600165374410300041750938602480890087825257415455296529010290129782136373691675092436230512234243237679072103364018227797314445033627170226231658437177351503258848687957809451657341155568892546244535024968664519900213174626804385005341029829529089333618415441118495097681284532653108507664009138987430754806779284412021614188220614528367551004979531425841200650051238231476951755071980841364165879193167676157001077274424865074184178044345316706831924793322098618757344974161308458471742203353880834044250493804720206899293735802511494696272533886917676305034273410682609035038709525295924667139055092868527995299550056861835994273140765185103286981997299778358649091998317870112936087132830182174522077021682526029608843727350451309640169025009046742722218704123546159512957520020627755006107454847304568462987962295484040433725791912934351760341628296241838802521508660358788908993967791295029423729098992526252995949494015037193683618270630324513681977232138972577739851878329186839143485732015304007755982932376798609842248358468226778673292175370602509424990284185925162238103903667530534131209977657435812253400073201731955010705033099049026857339472482690964072391904004981448493373815582806697438213585454013497861423471242996197065945479954843756030425223763605208371799994321925160256706073126941312126804275441349916124280298109772647699724614424245769417010418899031790571944304321027899779044707747897756363735440937928602344104479088761096115572558712423776324673731088402776897437493143451752317694932125638609610551793475873730234293987368566296444876559934834332082618784520867507882814232680035952121369103652319306916533884711234222125148898711806018411732910800934108124380305197032740932579581807736257770580631157255029841240059564516786719271769054943615655773476760290601151038978029750180400680179053349174696483308269104828836205040264863619603853592101482408948740607701565596635911739593704432017324506244126695189018879357380786515514733725832132158002981869274381175470688137076205041441226579721835333909638858101012792937787735618334966376378904886791558974788544912760124612508131775754459544831604225504487563252601778800128129823761732507416398192211431231372632499864448025742708282764725490265625700440061165449597164455967924636459452079214487083554311403539742333827673455905005399036402815799067604957820823578065612953332265283454081176950838338995430738715713541576866704531540237809170435780603314732066537650434867579196859961237947608410920279968657014448448225715055963768626359120527971805495947070386065334804706652946808513135611529506042659174194278376683253603482610163568251396658347683424946097845600165164747927541896002030124003092134623648648644653247694389978694587771310515516964870561951734101365628938146082292064601940622052111681475043487466035388662667829180975018822902603169646521042721023965921975416382058262905865060184848608120504953789750044377139863903115485545403316584124615305549622115032189407317030346843902193968320374861899639860113614180362327377832949747733452282197137771013576244091805593117871687687080494599748114271325769796757710535476572545658794525776084216810026706051420920752572854456979219673527236381966182278244791735554369621652028986798808950698937299456495793915050070176616695859093876328504854170790042617561253053928910876950671813346329135536324997352643001415260640234146561771569523007867294335392956366790352303468163091099457674122419612453404171258696849794599081937037067588857823727774228396180191229860121474164310164278088103675687035071925615639799094051318507128360345589471425741960523061767304446672623389663384725913732904063384417002763967820877478411895379323055008377258263272453587945633589501093553539292569313173572739199677480995651029219298703931431391001832402629953069846953451115695720397377442576525186259476060326498803144370729665263772875760974436137289744918532829311704892711026803642781352296164518511710991522863020317585637317231302907121762926496080791018794576909107383365458311622932955342612030354176339028884802873337993073932319321378265762932498975121966459412301710336811895564399712369278295060122646547545107826170256271500210586480037568848762008638947563842282650609617835838154004422921123593959133516368905853172860134837448110223024825694213857144133241570507511265366418724191014252044135259757208960904064524876098932811468509028884376824024342916273671179837268312910889521566059742926081172210276456556017762626968097980461182942099556628153686143738762559572588048316464505654850289044330845577487897272684298067101819759754257887134520551872751712516577843747297529055493473897515121246670566565099574861267747035713127452403653914559508018085262581038040057113429799288913079609710487753426952912034035106372579767550832908692761658395114717876465460451110565816056243871403692599918358020646865693905108464668069998553126413656228712046202002354199251317350703161186337525098730484859029219704512550640790985226209218293806805795351536710339419497819949540531717691370289256820266716602418706368900739409699083073632312863754705864409119055305375022956981123265117341228120888963657232303584322344030957849441372364105244369591603887825094316170430122230721970608370574791354626413739945414113805518012334363304051774649776286409864866985045491146236137282208018801495971669615508211605192332854735395509465369720023583556497063366779234709048263130924906416062597969776399328129972995632312794652331565410751385542786459743703290055282324090181868187912802537688077289529246301150615963427783871728073910892236724558465924997992402963479089018465444532602567231975966353102184899193817883815080089978625721776449790467687084512768188595273385432735765903145866512021465149403143691101169779014306432082179977217540651596632819524580302003309070787445815165595791945996355421243208887737212783506966665987911147852975124329912383952037416573507297040397326220219388010911520125012460938638247854700241186868311164488434821226883105027207552363555242532030765384336568739112737987505022539794018346617017199847355668899927911121418668138589843494882557555176198317835342598265984139529179169921801284309139212610272158540165877105525751251144290981406484029718844884010878462200655145423007320325433456624126388716957909258988422014047167899860966506279605799264182279857939989026329647986786689396996678030272305691802413713015561336172799271391490399239407569530246340100541574728315471733078421910832460712469443573466677770056315292636771163759581762734125956290092988842285428744463870175209042833027960314953176475818197678842857277498893945921534508400765670011898090402553275965146965445013957784979000917159047719848413172694334195183674410724823890239398922655207355321444456618705710937309713275125916303499140094709428093511492764494465557491321009576889693810051029951625527891242973780507125331364475527315159893053839640063984180683469046448420771106491103558309232893894478232331440574380947158879926672267205288175036286166598015700052105727976852033055523792577656297455265874883702110419326968994319790323648867150340748475846797946017055611204581662981025624044204453827583181862733452036015269802983464117037622820183273244536297049067580284221789807310688440538161928919006375011158564596117907190380590236075048996979438953278679487162632391795412985888354880868454009802363408176205020309700436784364792765373493940945726003939055258708960070864342415379329508747349120089910616619484718768849845680390877793838548856322059165004939558389472166826880776158573129264414546771209736841391073296391380888247157815778384102196920021411243373095189612402348896138256345723992194841963333325295259266520814556015475301253262100434827276335157550781518221402106109795201467166246463039864804241139127912316238361871055587840531776642835700543666467704993194028520589408297449616726439796787952965480949251147208592318819683692425215502778972604581371544331941970151204598656944543386421600099167331789070932230798244044496043461051127545385452504036297326089310517946442531026607328214127164313784359931187432238293500353737959670384126833774313427198955308294437508780446288372294765699946928395140237259969780295593169853065878587255763868597668176959340436227979112240546743151850487011448675673908659970677180569682955750712987387827683882324414309970859286857635622425807366026584459087979010969373991273065683080230331799308773440753580079074509364814820712784929622540705118939543475784327197345530301042839857969460178064331051323090041131535479587352173434087765538733328399917721171109028711779915815649264250187843681641402490812885871450435802320305679605428750135054301440607419946317062062213297868790348238241983902011731330155388472108970221688145324920314930003344329687188602127039023490981766819656841440248382593559320799136448785965613089617287071777266307064407408683094696885511282690867242667255226167989703070143604942145701124287714228686405828655546994129589861503254695657613734409972929318565657345826898239112849222463010797586262663002728112032015869104282514711979724887862344325652511019166706937951752979195087497969623042311115382706597661536578372667707258850501681153204186205182077645988233820324262966396129724506267268019390946040728723702929281638129378720600560293762868178930916829288959949222407602047206561456749299931968673441302475336873304660729531725098668366124135702449113198716570575167066282900845675750350627983988037417860090767449043219439361839828768074468410414391191293449967139418312951337275980143370703947102448744618632559499523920039984698256835882300577951602123896347682617223345945761293979953866326260021602624712778342650897568000555583536454390617603769772905183493638729257665432896786479291105666784483963530388749983571472267379871631468279245048832216303601742441635162999965550390686242365091119203685616484799944137368891013769060740475872735099604410512086670191524142138669887008129025303044151451189824336730089224001064579839029239327709458095295503462966642364386965340029426562973722386659878697298513265672481133241432704745204022620835583359707620059485527569545094207383333315313271421314034842357021298559744753361799836006399236313153031766146817226527704911262481687641690252663007403476481961757741222184335126351863128372204622544504064707943757234115218355742397414583588892825316665243720387264092045744680554667377191228197391263911545136061395104685774890707578202259511724514860575535932465349313728551984708523414530630994989344457088423900783318738745634222888265581300546268043924945165258964532859520253519584540292673262748832156611529504589157758097485004178539722488747672834751652181192825234394588759295959019288496697970871691355578929678165605985480351770905953688773834252193641989768142536372142378092261131565928297532111912221619300613363998178230151386696209612675364129673363765477473206690024616210875747575748595653620716430560820433710641836080209178006314491021412370903631427061057567923612296531729128776262577961650285575353873984338950830690862055020750148373909795578843259002782183515888544180034014113489346363905209037709663619674139140784409355026621591568849292832811803108424166669817130792341564786335368578312146700697346115155490086921488355666561184932027853012775522667281809780035631831232553307626999442926308235298149653185074947394075063200759658957888526143238825633886496761082649975950942224651251824405962782810051896402215573627546481750104243574628855412513666908488766180622167983761779414226145699124851314721546410104529695407219893039506679008328323672872226659123495078976518691405000550971472436787665716337374237159158819991459776743718307917391004789882717542569115458831465457423456693585301153262748879217718155090764435106775789183758421043305259498229719159986214369465464619209345130556612580293293083962012571245355720739632810629808254768936049637277754696508497111956787163126494546269581538327798583027356809481726937092361377993054295606082818506041155441955148721352276782965539591826658482122889953735876155864038742225357752352717244173121028760571224155020262367626292855194376949856356963179044643733300042415399020210798095231732167354102754434917097451006378287231412858525714612606883020072313567100348046141796643939628089952871545507515855083189624522965369670678145033263243119323267493111542150577695409708846481018629042338581774629685923969948135445301939070389757742022466257247902366151605736109770605920438211975571843512128797280101084276212762853310935784175565162951082167132972722696933536967554138175178899924200894611434882050750943116149547862477025675106758264502599331610714532502944845420343088360830976344054368728879616152794837981911404895710492272043190467951105224354358167506935165388781105163003920651219935552784803401944064347859888576427520786944483233783594824009514044105255135659909178496387764293121085741231106714109068610674572842806278532848751865334626522809406071628067773344039129220801984400870968763593847482141518525683093302723144878045428404149108768815455636075559875421533623300026461064617420271784039218085142554297175233700557929077861286093820807743206051344836725695616646620303548599234526880577064226545134129123508419789002239306816906254615767479367532528667313128170814469579225244402422953609896226156558997298133498304988530120496252205810425965712786886874458644509818199614358238626492474084082985883232309057971254946808600140079974675190654553084177527098624860437076617196739427466739059333582959347748312428306327773467604976107022609704071368976716941740047907959743705178456406673341808278329271318113379979526614689901175449344437017073012895940576029626080716415014964853533798868405929443466505575739982168799618739400898937546798318000854150157998767669599827942540670213982896248082778373781000463174447430592230187446027977826963223089676385329139781691395608440995876296584997661584758753056989919668327412176944294560158451248563097418645474072965650230010825256983221202133511219685191112281751167243075436409777132021994904799908548408793144848729188941628016965588666978697108203096209688891235821560443273629389773103644785212062635772532419419476099465213929459117550345856978350440057463681952373127672794494658938225925590354159192420505622952542814130337988897036849115433483853386407949654647287596833985898925281063943328629419190301195095483577531197860227754963543472789548573077863085907475946117012965133813885168560117309663001098799140415662976309853799909596609849617413883063051026019622595118271811840214920358214430898450313248625350297359053444356661073776349936034373874978086888233260609881976286252824434669886732277801185028142852903969571471645238156885702482492401259826314041383377356064182611311577244612809447369989097199338474633830134778186504555876106874472342520490948575201348400682354779882115477340439602039871085969103805562026812938754666452553949516325284452614717366781367971317263527654338509006941677877501593750823880971270759753511931128693715108552258127418166616017677704581358760454784046436966838650420526699996789829651196926552440076458076989432236847794229927634401902946372502260838695173557348789399806936183823516508100492707071824715730889472417354603123779524157534728645278017333550463397293793045809927850701551624820179150370207726171099329054129889153309685766334770490723818995218094911963102163786945867827927990283404540290645649346617724073521690091304585913710114920282177842893246152100937631158914147151328244298176181672510282317308169651637399316733068035196407821749125692031392292900247381560742582530075254349003479691195903539224572793239139929600225917495447179656701455927448756563989751971747116542055673986494404425312225873660873086728165059615950961660234812362166533889447890606042550928316421815129101097019968857306939146453836847356679186619365346894091746488307771340631432394909441451119728815118027340799815194766652407807204734445438218092487146966963235113919825686903386158362043179465068952305111663629118831722639463467221771691637356975878844944903403531046034837608976939019261362575837682278858204616261979976086641485147213458511514397583921666382663308579007952008793229794161146903044130791978710109721891478810545882829249987105953066360159108553633222628175551104753015806466547634391157275907630846045024923420242824247979264277331742229808920496952781180721621022859767212703484011818577430487540731764239467395309097784590946321930575849325991704249777518990900347326859138059037940040756273546405536730298301385808971070510842474875673711463513298114062113126462115355961433539691618059347834112969899883339159165148871379683554365234069632883276557813258852614497113327097033015557768178605342506131513352507113567425432547345826094849224605716907753114060711038211509760958623793739071470747275766248561788786842628256968242065370608875101972223229346212547188057546618081379154962327050891134158116722275362976092693417480839639930821897224733703991258771522722929700256530644364825911879063192977070391293162236657642804808135853800612306358921391672025179919605561354207686398385114104800915890897946141387411817253991726290855451213394950900728174105825265829868758291378068426737958365337216788327557916960936286644053813432850848638428562238073299803631798937147876816193161825449954963761651232702331398863633110175869438594046345429597468873453810190408062630672623884757836962990253031077784628264434767718015986985657666065156106226886091508335046840917608342290222879276337523560270504065393855341841698279411223987401018662819228869868663181156570553233000983005332230933731806800961866814030904304942662048379070684537418221574987694890283700048592884108757842647249022641383440847590689209318632570224694920212015312630658646079423200043315923641372650935010550685459562599390559459464775464106658755876018309978879233871694502971669189002228435632209679491225636524342171354236913353755493938460477644868802503380367066995293715103316591136497721781084733315147747733566028076688803602857175931039789985203939216124499500477973245674259395222769935742953724921569123054680260106082060697297189721717652636418494296000981158887053424824842886156394823635421956341495743894602708853496672284074652997791022200858318212354194771481535139815281596149805914059155058404809499678033750287854808300890815275328807979238804670235430558064143701197991452956665185223342560315696596604324987777056812301508993903590340437750312169137195242040637154539879526285182570299842610973703113849594526376154204245639689875023877620712252974627166111650058307778754627920594654773316972016743997931631474308751798449548351134343228993071703878198736150522915973514308096972688508394495730989230434946819348439076168845063984178950232878744330859412153848824362198477523895886494767004871096877256268371844629059646521609089293996982645457049212136785462068812152322330024655204972711662228543846081167016827005263050690159659731227441574512752230070387162603950570440339532597996572711897946676265527425003448320190981788153627381459672135870607400079090487379990939059649459247079998222865332498181085753007636000702901777625669756743598942317615152141738813773307150497003771053263052469958440484356072375657922094592359765279944015719573499707071292495044584208890468696527816222595589159665779673455693144375296172260773563792104896152196382231897427149805033824613290396533185661374072109268297507264610889409220683875648483858310900623876036611278280988854808960218062900390451645565952665381223122622941311547374888041009660386229901220290406351111004938855122418194325579646694537782152303019631055378001816490553548396671359727647532240224537973147665210810653735133930136068828029592379965344584590511231062420353894930147703210684575401000834547510590857673485411730742200166365039081108617939207244119000524429935263350336478115971392923593484563822598467386191229536834052834502464787690561253379850501158181548429368825909377197250987953693169968462793374967139604592565355304164428999796943102943281894274752314968791311012663306995751745805546181267189707464414103227551809314758530237945159352319243309806446093728734927378295449318210261196841358019645988707394654467405862464579234392607097174967863141861866613513771380726533220773066955576868082829687052064331202608393077973186852906482671897289413868951900029877167407530901484332918093591329865420201492729879347991468550337347297806300608118665690663096077401339093261712776360606395344595596272623419243978952954241772494440618709091901773326188098021007517380420942927065808413377101486127896401147442074010452923010092502547928200358479025930502592818947896695083022234866191183497740815452047625349432813965572307059997259525130328082076241259168544523254097361243162461809595272374845333564573050016033182077886971554701281419209503328996900863917055127873293202694343208777143409405043678548506579237613212358460379497940467016913850846300925504722374887142723529290312470933644263521488693040161884912806687006717608489556386205872051829836233662766278629359673253278879152674105989207536416968419543711434788465179114789999948214434932012567913367592356252605636058570325245871725853961365191852003439380361442095399487291497138290560020873401121514118204218721866155750417745425069083107751338078337447468625909044216860255706759467820942672704906824974358432995871870101332047610093173344227322285889974073063313833432353055472886750347825004775144307741593297760613315981323936073595266747148681400371371042703900459316797539878576827937847980385477193944946118826251656227542202881592573224176354114354867107146500827127673245699385842426285934960235170635278454695886092397271474170790844370244233437208367136086438899900654311851408699904610028707769972924801555454977982899637364677307898262567983029302280388665312133335804774406346323982745793477159332585219049841695806126440844542216714229487206640096741682734129182135925523303841102974794986422411501001689664268708959964412156336757387695246779538290952105864103073847190799644002091779692110308873867597814901163605385635628864805962339921289761773184273276419432888011916253718210919595216405319554625804528126242123279252819490632143180268897970624920643310914769431480190854036097896606555222309137210039842513609845621304253009406425816294011597432616955217088034209723484552174928855056534044724311305746692546720627341844654238116679804003642264858398293340796359148247125165995036918988855646915854945939507770351753320540883597375046166691910642077854255515137202617944462498346221082221398468182777110876092357085924531886384188517578956982870842117626972872843173947570291901333640728863443067533639426578377008570193199555977202585175954038376540770977366670085329789297627598661002164519571108637219338825844131945114897727153003804898661811037000514536612818972568915767259671267370110226570235533308326210429417487881488204372196658407239995190839891855061639746771004844416691332734295822487829061129023138591374297491879983822220938574410599744988764135929622733363168600637690548059884991410090144468894636600294141950553657430523215424140549013193315279052384391257349700653474351406386533921176781035017490573808432268195694487235144418610432785651131082718304177362617632674945075444395671819876546237437168605606334205392762266487592590363068078178633968416813980913527090227828212221628313539785713929210847665644046969779343156020030909546447917592385909896419149338760967367008581653911957312652661511497771955058464362412593677616772987300054043904687253952490087972009133645047599615121628334914141679895538589935228823252496428832033218665331923198033767140969577780882446287345734276626153515960584879602023000799998351175957645636448452585573336418512192397034597144897433832636693802313339105706847236680664360735329763902047373550727663706409834154316823887827525076102001647291648483983222484282680689816728713969133562402388045756155571584441538113083914885391884218653448257379043852916478417463127489431815091385199518527907820144592663648232638107201700991467972900765746364810635034053709655300367333486838198596481310263924525432467151295450299720808272279009586949043012254534464295426518863937047899691888651270620959540967473387047692487024371220039052073362970560335877535664998719288190057284138921627722767017034855128452690531604462384966227350507454808384700874076382356814587014730222313580256053066355433781057615917348237055401573236295737870658796143496058108292221761543374590019686902128569567916968976634888979449195704587039641499087463899960516440330560290002817840596498671681747208324518139301786997433014115614545407427740420049847594430842467294724652661396252881883646314618213395123641759972128042376314835041571210174002806149752379822211657315520046183598552996187377578383592178658796603340116453394201055323720299110736376925299634459272004552178487678780427395148211408721340508872918689929952234047676347096761174704904446516181192256710793276922076606259105768292956861031382014774133197040778308121162134789780275927087821223373244710911222894278359704163671296810113497244565875211047421713491415797939854130043299059653949805760239552537765962756686708765956454271199983817917226508785555286430114849577793231033576640342479482266557097468416862728083074954185598804896563044169351374789366769096239765363285214405515356401855659313926354073808473575290786076784613713086217567935596001027096612042175645525801055492780297326677137851836825894998884350693986556602152605282651428140609716536216044217187390381834171532601650197262799126168898288608912276780319087712834755010859281375388610343919340740849512962840367920533639572826203165100930771265043049926286882645969536970240729066580970805885235420012879960488404773895218653079182688577595228628400856539214546245337500722933972843737976332180632741712447214908307797375834239034975706945514254495129048295472120758624536106341474286103516234668752705424549113533023657860448013432843844497850916990223874191613463977906306805060650812617936368840680703455198770552596221452498847443670378073721166810533951453696837502342709027755396294572325112976505669039441272096332864137586816730947915324756476970064112918603420071728926380072205047736165403600784755972013592025599768222440297450329261880015564071988508347614768702119173524487317066481483586127338052780335178590674113195347351945495968196389360803524399763471306036226788953484036945922497779172579353005687925802119610983369850760194674423051795505828579266912262251357797524887662163661868795241100323980321179890931603629109863719274633899130401982248686135282665775146965935437742729234566048398704599718715939770733538931016301305415516664104317255213521864528030955829001591900370887142434036820927568195713692408469491927926298749681716043187400965307867318762378170540602817017971026590825527156845909445850591034795153234830599932225816044217723666545142199056161107726673824558630442727051406944373530155337576748102004223792391485168090570016028243804682794040568446739117782876476344137803462121099196798435601304923641269323159132124669696066025167961057693134862036278967602931947394682134013694576089881238196009615790233665170143217341564490677280091512992290877032931217173426701394217747990349417468966608670763712409954773416887099827483047373637139719427603301971767726956145690401050764765300921000188425678112818061066759666111861195281857935269250633352438438704761140275446990818553055101801750438413665457186484305712349542246929444917060964624058643205587574167409150847296993074521182298085980191178413169171683240853821875394605531034355265386095557022900162049473232374766567802863260236263933903446141417885504912430989976917157518771844235135889448778206044824601336135787428323563133153330733198120533285544412070149435054775706661652011505529286964578260145882099146973597128936988136112042205004206087267340284791385624994730409015659067059511563013253187026297922348937127019000314252312651679950156323699342697205635912819494687239565092885088606325730259730611328726998310991787668700541129254002152607040220363911012216548179090635133809119165207151276330922194580461869941343722400489184834904453464946662216804709174688006786440893203688893228023747761851330282090317451017372710105617522602649729598456238141059894249654527295893905551340407632605298501451169150232482259442765594886692281968863923468808400693596315958656764701482274604227157346823320014566405983092814846156520106541212799247318739518554875085396433152165046861713917606414982511277868131150288285196069914471978789347568875630459054210955132975770287796531003071897592097480566610372339432978580107461725166499228690011433442033306854304801071357433273626656119420992680703832578485378869806998133544646677994396261880683538133955019503116022870949429648216070414896921657860787568508477208800793346521534135350110766300245586461600821815264722211460023187875994670944445865914963574940677705543179398256067249106671683065651693712892190808901112917165449225356706826822159480238940322559325245174865476996810439028024773824979126678888254924050411118799139427821852542538979403029589438042658248907388239580525535058106904581488902900083635828207752087720017979822464020277672446638840750109441535754538108933870117599701123531715148548896369432728590465168518703983987483828942568108046798377912375565536482555672615185507864932892348595145471180975190851526686144787017130977236623373386100924129711459106539251802211888085397561615014316764966232956450266096261865442779280434096533437993247355722376664654831347665923397443497883702828970390418746705967373631469479946525752334679571674948354033307367976260230103331622740405884254103153266544553590327952746311967273458512329407958301075914334660937514924144031698707644296394180453012588046229615303207295328017192574017251091010596656895741544538773145192097926797151499584959647424982255968722676604611816581231273784742567861175315371675313385662767176446675800916029870422142918475319580543355838274714315564057096949999428755862523926537000605633283535680677911781220450003438763936726600359175414815619102078592313339719650257367143210089950504498876316776059166731769274299724327184823236583396528646985197037923472670278061835463957035416145330699548709311066660955350072367791528288848301350790734864181494213552664097337745844914407219870885391654654226918679798986451131734852966794459968587738840370409933543664123307829807090669729171048688948712251862356033480384042262586130504651520154209665005041957254101780571191473134487909275608279801970129394078318234315198224047399403164108505587401002617776791282273225612424119984116195374624828922836747033435095833065269641808477834683724876655665151326501770413431653524402370350104275852841491639536376055289280987901304456694230988592708838776429218705879137841457875724088972484090427404262529016018631923439289176764511338925365333137172786070870508122349809389107500802000592045875121618851689710467278801575513430602649163196220180232369139095704539657956369072798739921656226752573093963079758080129982047483036388667154432265477288804809269656834901410204041892941594912962563043510483930969481841834981379639462749031252911829933102451155962366952574793573094264261970658180631861129511041607166227451322938026554682174156174422038976575339811550219720517736936665412504442659542188971339404175689262753518114154086624366145621524318258753094786134218198284455659950283239357222469773005776039887539002845853231019085866566767560089366940013341746684701144371654986291561429134133156484189095542512268300208070696007680465510893692057372034778721655488651805527166571380242853764756157061601766555601977227695094584387146306252270974275552232294002475643508543549641453027310731549358728344523493729323575101859685669469329033013000424183648439572774929365419070757060979820662737388952284428357066136450574775742397899763859617159761609190732737438216756594552573081794698889780133149702555142356361540841631924342690409898856969735556183454678506818918554843803202712792077734751048704399097574354173327404002639394913004115129692895907564214794934928599041706348752725663648653142127020737234174076030598251428016553128412158163693658750626429623816570046981879792300930302257592000081477932382672993597994244277736471687913677832586541138567412133039250702971560618184472656965869048062418891502242765287914809049085842923797245432871094447621317892902359628316583023836368593281772630681592111500456676163629071653326778091799154462862268554324634331204587640813286539042521720161813316598040057696809339603001939143847732343956179739284392137616058115414198158382875332991772842847658127226043409425521218404746327488677059187172617153796341638605350962163460704352399703537609544514616047118697815972509238185230831773278739884049714391265478996230649465813275099707902061799147925142689413181970422679288778170954004602457223491011612388574720489280925018877774379440929916080650001668000148604483086864706823648940897439136715875117662245702706544337685008978866605655892814955679960233281966602494946358417889176623329792243744091961891070374767676041661212675224122211425835694440641520806071405770599832973944248826146463330040845186103433238166699258665558430310212021455610769853060954021876726368010755466736856704682354813597052617106185904693924091613342204289576461738998009226697523912504727810366489535166690562974560490482407242930961830150229371661375010609835492072551932859024130340094505414796730640260846961465029458389515260503887462263388038443735943349236601181699731346151591750863335086595074498370875237899277506090342436772904268376370965029246995799989286019407259092444905104352698920496574243335833258984846255507106953698745657343816438152291670011759316449460348440537556566629480952432619818477189094352456671568157175101516933649469682009096297388165225302502387623113942644890917299215178795561750362599400613081735547438148285470786007974385358514069105438150576307818751738599318501158564208255169126205367493103001792608344972012160192396163381133034888344250205088707826669394864529460913229119309584004797154098940144314159674490758680531077397843590318292698744865863789385855845661945944729367419246740040976054128398032811660801824138280898831252268558118032764142091593437138269276420437319622725137840221540934803982494100834277528135562066581748193014537541988548576138237669379481195253245613983106115860498846157259860478091080521358822026459664227969457857236110372845320100510618136913129940044823098108412418482155794797255228217902359497121137401483515956372604945821458063511488824712692361753033662380575483863601099886200777998652601766180092900640761532519611782326847760686735785455053840624395727108362548560998776588254789522818389732128393759622929821333228508872355741728667447778250769300856254343408238189583398396309531993419471671397635183832213039951421850446577366530719900119076321961824825555278471947515296336230964960054062583065111779992448282401849877937277564546073992790306584548888411343617090111982878545579911405236370456060036493818524034280676410419985135166400465994142315534590398406434681458948937375067560515181398595163937491241406752598821917645084212583961967439072781079138097944570123895091606873945397894554689973225334248712287831801464641079905459404812609164181653492735717731419964904440952082854502544696597898572023141128988507211814372556201620907341979728455645467689375065883736741276037152197863152569508692005356313928806583721482575598250743723389274859047301764327529145577937322517862975845716721500392513780500822947930499106746949382434277863841647900603227903212003618372678415046430649174314290925083401204966590793193448504163704536229378635714979010573619552952272170279156474046018309111473940171101778629637876853617566184610351003945747624552494102231406884050369414121450673816677447264674472161707719246142436790561421255600153685540572193868639742707179659857969786559953706449433301623112847476204628141724093731156213368339566135973703612707929625821424979143107933766266746956873248823086461764577037460739211506767637720684908909785968149029527373141934516072678995469701740743121057898722655769992533755736834351069222286189761877997751019940579650741839084262838501276892554214581467572836662504872011730141383087869985259305682438000384538058584656768302914804762681768497252548554855153765665862081698425467334436211371081848982985079705166022631868395857885998905798291671860947183948106778229580688717052380959997164571058098391116696469836501218477351206387004137051319088413121105353415161909815477718657812750812335744146799076471338164122683263420611402520515202795552748727625175376020956903016280928803697440085463777018309094872092781147647754825849685025857976107109120243647446238147128810930686907134714761944460264514363266486665637794943089580116387931709983724347543473219367611034067507416883983953916268862414670311643607866972037481435504739955035620748235627972536397755828030637321186521265701182218309969081896594069410511756899826072017290471481688983986050849831502962948206017558062807590407043237557146404568498142795111480754132207229903332771523132627971388358081681936350433126718075251153855214062221498001895607360058242211787586939290662906638609708452784560050763626294913501866156892944604698080911625155731943062154672988055812334788373906862163164895707195673184836126564189193434316596925078239652747646611179925290961872082955873872876961161667595959353378372394953048143649647907376822660406799148192997364097313731615564595625141737693223673431607041599122690191763148080170429450338397589610841047850593661844259438694902243244105556003333312005323695766940880805417315029931525391441391870453766457489927271990144023076467976108637897296542365018917138065660171026620305046385192422491218850424008999298289349243355344591551884683647895283235856093849082710224079961265393929822785923851259317996965305618515624147000911104236083826106828454488108719133910557662199228882604398274214656779406431974770081816803461609471863437159102118589027044860456613920649202759073790693526849399914436670765277016485713131360843746071773082373171120568842340774060404754234466209921044122644481416591340447281575390189834152041890402865297197309950090748620779807289177724054681892890401948443712230149392044266342563326981133730163541948165578387144230719952791203998307725659279549264311983108545529732200288617961495955288637096220104527819644862543163417444249237481499179550325018903997481927432933189021904671951300919122110279064752406413967353758845772568997295647282846967093818599282485272939808387893566264315015556084022742342207458070271228873389359080871288928899751182175162925060481292017438281499505312046059579370504681271608147137990985859377988097798341802747250242698724684236271443259348583216811184308699224466417120018421181998632141180202658150269614274680584370279266271963887072624520673997172666235886418288356920206380878787399125801650268202834061221995921967956883212365312995232795463096970988271612581208670551570848979972495140596521809821513196473500216184920692868398691924109457723588866885719717670765459478720519895969394546558084504419773158237172925308606405404884847144098069997605067166709116249783101906963369119995360799731383156850848667286271654179178800158684737972358880016635458897498382458685984991906761470045441838712039031664378194757353178863695331779952993569325039405739897620558684355728086694556414923195787164424925242064047916720195950440347024888997784253575336999112113401548251312481175082129050999522681049269174304204918468729065681003432935431744567406599693104039005671723888689910556863228825523664329478766029098122347077307635205493812868235703456366735096166133886648391738580248919702997541503142328892147244344088423940003243435627015122474235472257138206110788268677524074557739286741000919173593408356098125371528177549885509774158650133896060370186696200513586212324195865586586237928477700784599372643665303026709810300725784985983730773713759987893663398097614642180155080891287467703939467827053033574521264523326191324776009505382008915250421704294863109321464732909729118321874210578672542689284564121020839706301054670885944534713918880808023467788382010841016520275915864737211703497798776256573742967416341430670406398965625366696191549129058952607116843398609620781342248536974959660022713743297454535165145771517152377344602944348535315946907335291411868223193695251557413243941021499831185061704140943347557894650263015990049366523322689389341660138310757870840099308490483897004319575602862533218673370808936556595652993008574151342719792954279868060827740662579655802524331506699973124758597199944875159011225030525118425015220401465522623060371387464598658756661160019497529153568743715053273028046050732060769323058358667257222432949065452565106604868217943110698617453576054156263909377918481844832289163814264165537047126598000555128140595249177316592343248403276393591193793968798868968690823439175989174981323786585740985154208692372703380534424333966492130470883166797700944280595987084454630449859112672517681546504111777463036516972306015131953288906973595078476378224713724492137165051522012703349850793552926413957831493250461513463007258677947794190174109584138021624943024168904440665317256699790222077065609018992827241680089953851789322315762705643087253964539338122002571778117251359207211783105660966099934243166222387378271015196185859721141477443130114560382425945394014696516397172952989487760793039354809290692074624963409113641121769252618761276647737191447404965862987392196677529483579109995006103198080064664079107802713930155173902272846297276856719755736674370253547429072114972285511193933029046103989762854377903155739071253599056070396832559773481472492861891966852134670462088779610456954721023199514335429283480607252903460310283764068819664110618888122572539433751089780634206895261056094676543937818789697199667882648057035914932800642839519561085795343617295175379863403674071892779573888339897232487801037024266640788710536481036111536294823645194557028975386409514400460179109855665417947171142673098498143778879989058859212690238226691536226138733129754276362094167141176104635983157759755954607607102016135921755585826166923625707734468077093023775990348170797893884866231041625158572651935262750893534245411989056300060704823603590379485075535186025897396909700341907151826305115449935756114010684446870455067047807749295510774617855972199616472934566944359767957774008127444386565895007113414689084760417954146349992218920887061793623404883070763700125869439478985094321714230262685390478722711067975425234966331537944978836572290511614216950840205202477572907721747612755811306617992510929156425632851705498481696703372357428604097797971741397572610778471469542663723638709119584648685656785152705402485181318764169967347207133376436881241674701089030863369548692766773005233846263599892295556376884591082370585544277260142330045204181784947893564380208374864792837983271472378926290473540824972182005586415191087398060471233217665107512425062533643557705762464304888272424345167031977390949620374998763020161735058451923030372844787411061932078824678399132021013736886265534735088533229120127948506728872350301443949645809424463903445669706621386605602410381576927456668215256981566480116963565757436278110647012465764440118878171082265023742675939631845309421552986470618781524822533094600507758888595143250886820628844277170394336092490141217730430913698140440420131579571475939597601567124293650215417048174529168376551264848374930651607022988569211167853528673497833630772213886956925589516051759371035286604501220370008319006076352476228489821645549416493809675833254050854826868849540243971991676495275558900955018543249384663452952279649786161222428966224687279226642887596385435433326329018777555593022908958436751516787563914057021823926612388719856924718401497900106795100634461788990156703703227511191380382797323786095129531702400774481484280021168992094519048886764730871137481657301326270993049978980197863776066034539017393599331055810707366857108836916554811908107290122251502760001342262073328012375438502269834607343998674336553254945112006425583407585008071961344664453661903921087968743765179250786990021207345689186075234814290402540812058273885539583340825904249287576304625906545542936729945479329490320868973049630772809237364988961138096622720445010733762593184434074764377292859586532400547486053220595696483207248278320340585684074536878229308741419975902267823637181170572906951079103124168682483638907937913508424008710104855561410348013483946544243982830590335729353326619252057432015051365386146523260104430164012805374580051300739159148135638258994758708922793978908151414186048650435372578047303337125087360477136449092940228755283285080758603907924874812118283844616048078431179090232338334610960661726011794375365628917156931312545888636034820130710701649673758042296482689176719547358977235050436815358770945777761744449506473268929555049381737166727632294609631482919398356083900584164963081323494175885504625197401002175883759207886025582480126568552115236914387787948707513134408467819917627713600981250393049829188873763023273409266077263254494253935972055281822038639254704003357314085727852679124317119267613217146861297389692350068182196473896408796853936365121159642105050793550165932997430503879315594476296260675898240748977003670760140626185198669540506059311186068714059506237723222305554579653091725874689878319429877062916119200794201809646038642405705957038087505776425433233468224350298301427993640350896005823467933360868844912533596674960243488802281886929733371547303958966632524755290848106860407437606241399590241644082537223561659445746110505498518257921419382613826124009719881517713493367833194749773446245496173897525252142537417094567157082983931839739223613534911177839796190182742705694786026345153742045018664820740235868274369391040872611630460341106297900380476388065719320861914820381526609343876122353346530931777488102398004788734725697917131562443048640720715836332437793198754123180541120662079749038898492840372661118286205474269842907937062004240838975180909408156680378067606922141525480421897304821593399080390923263235261924665447071797901873975329010308095342114678675748946039140537741122386314718684954634823136907248718919004091852928333284188223628227688464566281658174885954821493915650985147412304012064872195787991382163327355538732106387030128247010552067863538902056221422406322336442210066891260906748879679836583517014620937056391006891463217921418612575787304362945097498253366137234409538845723461168785997926189879530626910409212222586076456422671949065421852208613525593348666673390951160494631986383009887565674043962454097339833915420762311956266213268416437782296911883281126553683152836626466693554247864577420934347829566535621228683695634058207854868395918162119069230131318190708479515238911130117801395053449539521469992999347488498035237470071845707935279939043877668934301735775528668155834049859795792981288781587534944935494547893670149924620163196111973198924620052345395000239173654419318921242176960421709147998948947546409274827314463125434368160246324771991425928635426052678082293960361560068732496246569718919156214104187056343318217430174019725142945801633684053605798477696424444751175935459877769320909386032826266011668756471541596068925752717874010085861126157074469257369928277396213152627257547636860065945310894187239413601143073530177214748868103129678021789840329202620713073885586602974145072983943373259531966130953749073991658038872982382510522069510305062934019255123433322459704600284637138720497475076199656067353446456272827384081972418950589619268723926181543242291578917427612459921975230925141022085041030071714623158441162099896968912126623635281523593042296405361390711517393304367688649048356682847171348537556706662173139287395380367391108144505977033422975082799010028528874182310834628978387239713097398193265425204800645028840063020111269566902402954102828648505964623207512271826400191251024810424406883472478009471575801009993664676517537838626675974540690914937970545486506492791001427743206390864799462691424129616443301748110633599126036190228057211959716381496182045185475119664170606826209235861941861441047801771560830380867651382494349876706279286080370206782467801443923993574255036720235104960068548399493217343758179861683811943127768040381270414553015630941516807447728386325863445998077276025071908837302599735372561553437645073431522775510313090993634570999915455608224192682778496972112471124980123685343854468529145240064466307223329039591989241350213188130863294669348912445933739441123942350636453237014510609919016602709368516795789000044956602900842565042370448644630041156925370352223416390452644398062448514720724502051570047635935272177327488647211246066207318648862312093342061658950268695214705899148854595591288541284524139756333546634591780067406626456333736813176769220768008080010800989636250092992836653379252368298715707739069416915345697548818788950073660268175503749600143758501281049525563373902662123284312407681750678416813942711324969920784148703895809625015602796814322494838280362071282066056581524063952415744033619390442182300658561036659294679701231314778375667561175927750396855537120423404234660361052318188590983045959213521070969135950728024949220031607306013438340023196312140107260383103534696809908597553377047492800074982087465121039350159348040988669187664700804393273655235644997295473002532842348430789724219830019286595889914048854817045510052556222919373987470974782087755973989251916350950254121064452729020327554909017516692831995158502691520804549532584640149315449028588251252398419583201105171561936669224696803011543626158889795482982744193030650012522064957122014200073112132514807391050552531036719591681224552701051712151004427283826160430765530461622000457950654786998289823918817711961920707484187408229257960800250097265485600302555911600348011383264337963430530384967070889253128937287533646387130321568794235867617591668070530660820668375687707623034407261112121418733101795873360898676323779619911999384712419809508885195034736361962892943822545068194035277263503677798757517788154274564667208377142631999945181111433889166080451702110781295452418162795890808984317349987691389471166430060121104472965907140879933054148196729393492628568569512497101737004344099619846450585754824946834546694615046304512921246884802518211283438974107950714190821445034259473094610600261665004371617739772597938473459088136202577172295779060268383220892110609817981707506930287777427568183988189085205751565672044720486279740882732946003853510423884348506660353796461337627291256696857233939303921665955626585039860572838274741712465140749385196206131718154741945342986099232120721939913025509308682910472004281752382892595567046986580296820579224894604948607789661380951184496520716726294810404633412778014850941960220034921691633795950403311874866351961148536141840631828227032950242206929745662414995620972017664827092124528510846356526541416702933515430517291589987392310408507401391218119523213695898239469108540678065811036293185695489038410500605859431977135495541364199925041380446357765561828153484666820595594340579171802423411604391957397301944000336761594267595096462263867479444196643595132442424361371406771322924642417063953468241967068639109597861745818627240512332047688447571055722180160609022499514175082522814499349488268783036342889101466480941398786446284215894379746173022403482124822563929313219078041129743991214847739187107088759989012065126857389391496417849331993643997914838957775695260421823238610562328403213262619981232283878710753787754042227877956254343148287870800755813398108668949961305153020969142889630700074297636180918902673309089054963565529089595321799599107109077375706675298384556389719280085541688303662540422523445211134851683543408053142941198415044361741455816245125924126074410812222180760605039370408124127908013018338172843216257023111914143066806728710796308548840713476225232256478817310784753533529887810569532923030743138675022031525077753646631852355114078351883651826551016434694906837274547523119047413863927310276082033719906341193426964956710736094060878937280026415457069026600393815709372909677935729124107138823116773832459661290918792142949385542347667513150617449062165749124847010726720033807306887967799032418563598010298149316340536611514337356872020424215492391872548504733381801896230755431692918028741667589406576920421698514656285822516588318917273330743073221895496329170177189145589618224983327005004502408396217861163343744700402873889415106908319315012799144505644868031033755475541198123866253153422650109666837730199679988884557670089970733393380777324417263764175053675398030104555840647464989111157148295094457885037290870503255677305585505545936258299606450890987014749366610202208425603281203229147275725025478241316121923317649612652677342045049298693946797531421834737900050848226351528482151206397304885855520307558568307691694653012615911675823193517030156102811878348392679688493180902854532838065008744039745557510316148413999130278324158351034834331162743820685752506997027701783874727889132915467079605369064083464757504250407313155766597389662500735474345253810240402469139480528763088431502263945988432907966601952150430025432807313646242431255454085741369736704879985297569193543343485014632863790327165463863475891612018786246582806684418597570767675982233947134805210086403208496362004010628916052150233666150643116693547281446779909821328784166971886042792646864443040327534906696486800765100327383991071137600400073946440232910590132025225097481255408549828067483935882965443077152380255153569435276542929834479476754506047920365219627793136168986780561747360367218650113602577445590206305842778839861072942700960477463700169960299555872318520410078728822995585204629280230262325966542905531511617069919184361347920848313403491108879040708520370461450023998553301692070836113836892331037701761396271933275876169153825162963569882643463408077583574970757963431081162241453085725880304567666247313430101017357554652334983644502728091534903550995885341903349576903709917030022023894267503332945199880250276339789947334976706004183015377172368704253212027947185208894558916414375863850160225567123004691894629213012195066894257545307930756927672762268024064114173741109320052859227889500704409710905777411265893755654353728624405120959905994722004075671363105118758672046505784063462985439931194871135950155468878229597334941010100231759058555341071647939582618787633476750263145259143399010446280241327697219219961473452029822068650572428692996083763028528440529150270397517478230968993002694846919652227418606371730951709218433853101044211643396418063870487494989978677441368443300873676977899634970575881310301600170489644598898515389128171016307546508711216539687005985395433046925727379756438217089799058470747465789443028639645619897377730903045197889985996814911086623339350492369317131067775329957610112527907769381307083596050596930329725455047375635045089816159717598858316616329170720108643627201082724932384445366848251545717743013904184911530483286373279292790826116327874533688934801108495221465448601798091041615538902676143708591974311310600504732292631026725524143981210215911095406822304977809222339097553690261848636582368556578793822020723665003595648518070737920396698759201187928370746956813637823978065326521203566966950501679059371284056498124147126571128860385139591795368009210045904048312702050422836684423665230445570612281180645253496534032064277384549941408385300249045017868476277462651252732626290311908945082471045537484500202952509041108141096554503684179722502304777964907763580253991615320300324818556809607373855905567302837362800334689914309248601999715378727137103353548991925606633444688034383645710452873688384363826777889441881328191441628420162536901906045856591507626529269825800183642165350877286637763647448218700677265088456706221211961073804893312824867282917538424651254055366771949818360934498496998179084656464148741218194920736097057105252735462996187104913769884613936313461538021756848084492368857033552853666820786416335802880229140964840704977443063992432253168733225079241276674108851138705963147307584549472072375015487288834190688870154675824769147897259907306240032656481905837810122345894093597707953474194841076545428958644146005636102666178472388981055542654868122234290366911268771982291019244114574690470181368501980218993598507901297213003179298761340256417490922098725097636466411009964291062896178162089557104977307489189877824710555178494363141930485536824934085919648131815788465293826021903295661603598287335194909825630747473115063746108320890915362614649751784624122401586876691138594809514498622583828773006143681433688097242789416909978482765726780596452979899917528519773936583343532827557349109981175506391999550058501529974434718663426189815931820463954796202102371575167049809392694235155480005207972523207220819412085520304390081543782256143743678694564959545964222710230244680474682691693769920826692457960705411813544552800241385452956985694617310463790522718246813297766948025818781693974838513209756047267525873661778803440331154491019091664661872304551145798679172188216189687896060972669882548774162164156838053571930271422051545936172881034726101306179632837199561981458865406921575968160018266179998243163177956827572473737784943275452922993596088766774291385986174949093920465433721868536229978535366378448133438815175915016391611620479090767729237018085980199401608260745798944943905624994782631332955197786935572536641781401257185532965789967771765980765942136296028569398913733573119108266073014247999912298701584480006785216618471355720534945189872484354157424796588650929103794088222790804120869092786923391275511900936079538181809377418842907386466530050775357223261433443562876782159608031819950640257396648779285415809649563146204293030478036448377749418208265961106415401020350178920244559498150590978523014459567647739601711624969879715669734685447755499719436701197509989228368158683455557071927204297731228390862588653173999918189266552787214360690959730596597767101636657701693411034951056745754572577499380357672800780781749936524634693723868954659772002793367160312220544737597020063862225298619754624017449979555019619123899884568615450365423690917379047382011265909791429672550394490497341627589332894237049110155044126911029257891952000603118295749237618525569512321655033128077219626595694843468435142467726971728646962117531536304927635826674928173718535791010880027706047576323035479784818092770814115047031345916280233073118724724395046154593256034276740566618773647419659855799637287493486852815360729603472322409946931496616484141215144965305837965692991663256523468172174470222449161275968476111775202118397356104267797501105917223414662910705765123915335891506633868456819453743567764309779343111976693696375383659676750422608904659160062853021275990388619048756529472414650682577412154879548377225682293585696230868480028460327259641609385899332657515136089474872675397387246085056334765039840684087293326636245177560573604707400135443569675757054779591556671667747639627329805420300806537768384967391504548779354640239916333204704562313442905541256087078109897850200851482948949291643830894577347114755344946235482592936994770559427229702167580908984776898724611855910709530236692254088830425896008209423445320380864357423273497951672016318249180871216869390970822361464704818727911807883015700760959736234815745945201708120568239104256074291216366041369758292572196321112509731176877214787863925827540363218395544954828524477793142693287703905545921800489962632952683386468284090087933342060814933286890845944574034882132903885155395701972852184413734214293857469069289526063534733673740050888134562759719235726211373617654368008406828818106337766615420749302276922383996162270307003978049129233715812602464599801831148163257652994603950665697042784580082959138075129874238256652586311033398608135719645664082021539355019808300636978179855920212868905936886244353584302690640562945640501114964440758736045954914065340114161088429798434760432823642839841465608635170413170281348387426485645208734359802696098873344533905385000739696075090622281647354008052186327496108572140949012229885153978686669211528220652025163281115332991124153419510307312643886966699407189623309257051863442220516426970972319477880446210332976335127782697148870245417541955143537483315949695285925944643883384273541897364880894709514076215535764504697271681089964235866405862564783714284278346535424197218567954933480731842527203665587664070458515622733073520654430954722641504501026379588213455747468981928809974912492419404446780604974844458791172621417763004484167818956102256155684968442841260768371016400488012888715882509259726351710294581148537445873022433792060186011946663116878061728392030441279303900386130765110458732515348378419964427709519037711194936525285920653143382298588066104052247109531809337274711019975128618464618646626356242680747839081554307373966022232578152506090155819842485366207079223718784014971292253511565924004316398981572631510602786200686362065680563660191957338636675435574795512836347047209100578596002185837489459756649873045850511303038737119554843645601169055777852956439018403574136704165966076539395903362469274623361278712585628654522497645234804162001617111503159839180694233887064672808344144890322365599025630533255977682413805116092924186680274134923311402904295694958540148051273347946892209538248691903691518829932943704129540382173508665565323111050083004041661871936616704585853781767118270988570907666323355637170988228863031759837589028686764400265036181235309578521386523953935591801843731253350989832311372468276018026522827569767295408008208730603894828884340892795829681166662845541240255854780946917039315739561828592284107124987534043591279054959205325708730499525076148069329715865594332281735165644107269295933627445825746621933270910267039696889728858735652903037262085216488523528495784591300030755858485878294738650731405471079067322431529868894999627895503473394187958164775404493883259846567221293466151381589663012747745183910922654929014015124313544466978053630724766831499074119405546378270556789929193591568144168444431073987779978930547629803032501329708727955094427023448922612243013843249710512686147375416524683180773954495379721852326331043425273729771133890749766853330873511062496753831257398920036821775099441903646890194374620521589019168253710859845984996113118195979620944036552289039135673221699218404177201566141558758937753060179792566828229199457995525426085349209055717213129914377300821325963458119753686153436043490659240965192281108193535792434923333134333345437783455536248850379724723447295709062841677346890723351690045375728868889070103631241270387948587408597476578265153234187510879960430365408290591045596882067090429722678603549981159801491290989852587348180108742832159903771770280967025370538436024405132528848957420211343496937310787190620915363192504231559772458358961242389957993074682618961991835096300852755293057092064762279180029917134611186170154707175511443612882206033402836234807770978951531912684645801969249168989528246577984232743826181130633595351456015910332158710858926512537526850810174950825934415539679827646464109104767188067344992040429549058188719679829423362391015724301143248249330225340047516265139865166960983487400205679354278031453231935661493194498917784220236868185948101448218739587647167091423578920937654260132917982484396613027248840815202552863512536263078771634583675269849692382503123493477542910776051040251142292579684462288337872280437155581876614871301156495118103215396751932300687400337291893760869367285216799825702301716018156948852961102021518661352701529429937447291788476690609164021530003104950186799490248929338086254717339073791647600223902892315566297854817655458500422251550767180034001006505345429118373974088572166251413522439178392450200044767838219851455982491060733658844791614667131678808193230441667328703112297030652802771702723785011062854437559352103904157510323472815322973876256260756301876924369242906109588995283424716812124464439768892448836723323410622940919169941588663306992175639124079859347868188339165413502019500311198726226435848988211915113617658165586504745563937454649740939947983975108349779395897162135537141632386099978847792617851329374020614627351748522216791234148289717628014648537178290106042066358131954662967345303163280492305285902012577317614282822374763357909740074202676754183915563437692328380709222825815028507755617838757581073581701687238239480973039012394903601236677992532355575605831110038095631705432861322110203915036960469167273635883023797207000712834982700982118483588568870268129253149440785227061599175472234608720251825083728394895944394939676556840516913551539634301506582431584688245893964777764336169937655067555953608655611417143453589180861625683039448925077624092630237242663156625405167867358901467389968386155836281079690795648471608555140136366108862115489858799556657262102883365165860874761787186118871228074384500186091245624614876691594430262699589132988816594524336475838866835200116841223650626920648142068179872606261445693710037909308988109801214555253269306181380515750221941959133261681713786908504534884993942717602428734527997664130464912186048110326476083215810905101186440157664199357964033039137853967645169008161736553575861496636523882787960037939364097495211359069514893572015183475174030778047781143842462557147915097767432095574223231968877284700204769743442413193885592158046131920751788242565064913258023383582683975550132283005745950168191278645712630516060316455814441885019981700029894519145304123689789949767160505678450276006643008904983043452654068598638176284142892952167626176444770832675486384706802588723887820494219441155728195471625053539120283589072731820217398323094906274841235040558400696962391642434763740383851407750966841069991302171620456228229910100892651083319590340176350763196174411557583999645766898047772736288522156110609832328599062467734374038480628610191111211615786305887830061619385401442412702709908570653003279231706529526268431797199103992396539042284790588224412252749051251084347526700958751906213868331015019984560487532752135644103901370528536247037574178833387942765970892555721234090132025870084770110326055323471076907052679664080601987788800952435888177598931993554057003817519501786523573125193974100869352029204719866685301384883745824965420293928565858672721867241391508361466284197216558822625926694649683826287623018189722337785439388840793997991182315033343386110060682482827169563902643593634825316237844582204609280311090717936108233160166371677159329830835895037901658503878852159342518171322788405741128686513190109193543470667887089550862336345113469855439786492658471159401196921394818806804530556859190070695523869178796718131666588006893973432548780586669164505965033056608558384071470119660967628671901308096952666568363043782641707466910049247106048315618935538900795196626212078572171727965070876437486743432937028570463103614787067544535119226022599266803968779304091605395345441499589338385311654380731093075137227199687714593050181538481556762135784507211318762534180678225543120917488186047552068735304874055700846028432292295107693425593921094611435524653453868832883121234111842396863386005190488614917415837176898995840822914993095051694642950682808314679927659764556109617778780088435454816152085552128252633270133464593293645198864457597163807473588195564266101969120557627623592486443448336227342830194127786055905883777428667557032898688302315866162471465114520618907978854035255659938052031977824655685356017479122265889473248518130964555607269464190358433288726631746133742630134437771658952029752408826669662474372378241054681087852641968059312123989626135373091630209778751662180600924421206568091714282556782831352099881683200153590900323206098476679487367842851863177939227189757798302738303781588950479766985243658344498210285258346979443043193884713207760047027276807872084190358840223615015611892347269430267415300385646034631083723881192269775316454191524569360425847759351850949811955738105889265405890640984170377804979813393050773808783573235243733955189424887068885068315752268799871560560039155858527875442584045013639793728752792188587837405203817383717940361198070165118598720617101652032619768475384994348296564558187783224999514790683429664874088177105004997105559687628670124211377328357133894631135326698943538888767282743968666382045169550380456349076731380264943588715513239271244313106676461792175509111585787591503163420674173036296982827810068027190229735112637620786730775697112087495944408843800867710796371718071770908998917285218722668733723038039071516210453123962663906857116449160812607145688828052102197447279732372394985713690980727524880632580507235881649832660846447565829255358954592066143819708151184527537348906009653564524189467398943638456194506888981610980376391720870124974803198998174367403586060181969692898173078927328809032838465331474405787764758914394614955334002316891884457202929913347589283359001119382398544033463713881661314609496192689586671567284121511567233518313268932703505541823842680808700937715201195961732335248183420054070311810120658646201297477640958490993168000099596889889040815336559131728765882589369323774564910162514790297491530252250201211276814400352103638721022951991800891359034238318070967513090750994740592753023838508158913523692518015153162378797999077690437067720113828215948098744291782541233588795548384227197581572146485658276767400195566767999120001068297167442824695988766253649203235173693253526626245685441358257593533699709613441364471942930774022974832018103466130004700594264367113848033890410450678851316465589551017556363981617928797395614172478691247778296329964638747404188495567845481961585302583484958192049793771509795092964261522987488014915835857280306480644006807581040324777010712478697057616380795301077196202098351633477529807755910410557109289239296362997150214293910941983397502611543260408832233057833238843700084485170205654387074361935986420373637108412905089224556498845932310911394251203496476494801471064496165406669831992618617052897406263516762637924428033894244462768217750558238220702381601195596586699044570438366302777692407860222136328445306446705672522762514635100631465422296519638500783875342339655343043370226020747356048620237931692995454236859295616003359571724879184641933857312524055124508675656726857273509704612384980351722532888404290714223840455280279795875861142609869312735271984688316032996861142766887495242703728841158353504825579561657794192740124247216635837353800391504114172528745102878809395852124697395286970086071530254409970339902508659610719485550272122437747962009308294367108119693296132812053475182526564648986307505557789797603366276991609463024043010859855194092244096064012660973821310090524261157129701606791157679252958533083661022121948417770517481111440600726135727737567503364990215611990608841117673938286986639740166127980670373044304639511927111369981731478963603480962776504336197876999458654235918971533084626388740656973606995305639527056702526406986072755028719905633886574790186773514521475834154508471578646268939451529416533411142952936244216016974451084771389657176738391712897816110428016527872249036526932171810206613252671076787330135741074264809055928125427847159567341701804072501410888983073639294505962427542033344535397664120313389203617497563388513222647319070143215610814731964423866125171059088977177745597236989467792676658478492999774629115820649754288184135830185238597464170176970389899229472139697631881224201359151049024131338536871319113702446086838681865754833001566988431903339790595304748521628635926167527252292839137352259487816042912589827427132067800401861842369397924434510218283254497747830584276372790325737939403743596505711306629949231956855386395471288850740311435274655719454732560836673411713638605658593190180828384788934306015568757855114043862899051793314274934563933502286158331714636031090892919734670332300434339337756643171379109701277734688866559116151041917330384662202482850106909334943151072869820921011771705091624677635997260807987469070931893195900114693581472671947966324540250987750697484528066173843672784127579899329561656275836499033568648468333761817330858123826603420125087917413319357802823507038671698705250914279401661024633572812691211293819127590967988638417125935059427193465225197225217841500663469957767302707230978882456954912389445643392779972595714811968482699082915800806196636278121371123239451036714239544168526189712847384240706719103651362111684409294756824163331525223724974094937809904309779800330640223653986384606577011792117714490757196240695442861445496798932159642186367537946275455348458220520814358896529605080729554131271959692493744407794861177036319517939033058473585630801198753192632117324976979417178330809027021332661786762457039714332501543772380142360825065184255741308559549231517627466052312987690313939190299779114298025633506869668894892406821694843400538373268192717879098424169942065458175711281191876299883914724983673430567935795805683489767991752298013190951995039025657332444318986485400876491937169695439545145658205402845003928721493293603225086148151857466511585025649529264388861949565205718643821326083890813697193793480321817286814991386062283622994261432297836701463507103106610885272350320240018812128981095797961026467804025865811087146496183464460802168802289554892273269960332089625195824784484103320614448149886569128610996098630778730212098085233301165867794777389439154599251036698155331633615227892667262911266709811304110169031754217638168669567641929323550089046404445216230937321464103020768749652355168589402999927755384681762967229228580142336310615969440063054625539570730073929625934426294741830989512704299335482550162938886045034145660056538960253577181538097912844977494897786921008912976597520430665223213189275646777846055265602870888980881040609791651308118219793189374394965970528694708040747794836096702875607625468752406368028177813655043221965057357781418670436851797109390155184489973344208711621455877992656330515822360399745622538593006675403497476905720986308318916002732781791406952218344247722649298686053878324904725617581667048093562216107620544224384932312861029720714436585132330711458335834358265500186843931245087472266603204173913270797019152254913897324356877338736591529012348660053909843698461860782261552551508087737833517466762110138989666480141012121719803193235133173545500048452252315436459926906190175021966224247548424221775867019972187936284697929385932344051666954211827331820641365895928757038182549918393587964429035969818165656584986207417702112403482873555793158965602044694698018639118972970999830259612054899994938279651859538433585693554604010762831797595112453377794787491198421462647046131331716078528266339273402395840578065638091461547436082859992571557816284250422043897128565845578313729280490753580977070948591197657001050621401047073498127016295860970676999189484192057057276106486990311885169042620106612629877545388736829592192940919806900594459516715503664849564617911500803844774243213597573086759982282522061601133352221830821630710858400432100371889037285190751632268730956353544661096511514483981846711887657415907552001059642247759139517292460035601721595464328089853602335675907226762844453013344454874582827444462953990339637245153514736831187414182513084153926475988325587462351965466634923694025274353584630753575862531039444339814180802147207242540276841147129900292802054230817879145011398617828230779098553877568069457771472757210694399031086572329838735923573294921294778962167017660448360457849489492416584605010781798357388631252301655553741997264046576798501721360449196388052181841451195497161865978831078695017904710590384236342369615797543592677678821914329733563309646050799224259403435648386658183405702290143232990447405149874001853718939869897421432998694707645691363876961289213783254935370812876545600611887643742438477189355010668942264647682442636771213315563772195482382439664251060288164802957429431342017450294603568477831765062265966522345266791949257175892675336746049585049081536114805476578007101823712215265451914358319708945142462364618267861724617274904301364451042708818915535114981019102733757769472497487727926715701110483251263877844094926255827332534443512663683023127645340433526603776534588068041897377267782019356924071636030508942031055705977791492143693095054342712740854962797905013855885832102428776398814327466729047387343208201441187587663072694819313439633272465754668818126248933892520614314228596235102609797110764823790659412911374085879816738955932485584631319482152099699092008048867462201866789043494974212449875263443152235127446665813155184317443669309105285046337132610751539582410777388059899507594570491599477007868781342197855989958387247659468996451033339951927162895940625622007073016393393750143626956586201205667350027876643239279080353171226382516741876977225003090823594011362896675574126028599395867214295463732368394853256146213829671380977683527945315835404115683993196024900514807248943679849640420052469435506020716584319733419909835496693310403003183455944537378368871920711246929074078658646366582093231081810672259802646458014583298799422693202240574566881778377914252835847083265806074612194381055045984587492339080303965023964367385174823821360471107593601338372802435911218163278560809146882633900418898522000323206547359234957998305208452147283038303497321612199956648970675417178767577481300875002581978876250720510206595882214957957605503862478200738790109377557603026901205692669858892948300915360093379669617674879591555589699018476368833346904981538654757250260644121586896364837828865548390628673479789499081508477334897115014991398501423854832703171049661660977955592029251240108436033418354337709202790787138767725315561226084995639474521807357706650748780283836455319232131588144024932931836675591437772898651680615068181844367574863468405571146792684728148963785589852447044939846790579137295892805840801195308296443522769044676775293116567432223063688878420781051823343550438041993943228157468729410924384699850009278132651786498425483203600516726572937240496809741565108087629629443504485910234551607655148983125257155166463961302114003430930750121089939058937623710464158380840805622524706068346605559077410900482974590848514837563242703970278991611645667122658299130129709952715234880266848103062361367492503019242305172212379109281241236278474986832001954201963086640762653190430244590139006879892152566643648719003691276712016593710550426661789297310056433797936932114522318811720758828406194093635691555200753874074756661622742386852854950199707806334751210489011756372845032385656840723938211394667147869981174549632222874962731708594232059162709409640952753692566809095441912062608778804190621964055159066522874003463643148021231413158670767734793207930850588502965932616499091598913782662750996145145336673194957154837575225350458069036698198764615788824550680918070712750394345156473738406786934110115235248822023349773324394769197664363624745201631872733319124333887586408641937506969769014862647294663069483057034800657721669893753313309547803605917009970441301847681532611320471394682680861323856687734263415181010482860410890313314740791382420065528085134635354250487359993050382385881333901276601386619581636428251741141170075531290558529154603955244661999428539386911489182174509360216958749138197583683862154537817113213466236517083146029846856633151674934308482290909247725550928506525913957124978380099240714350690486316432818122303120403604105812473170895458871095912218065029867701951542314285976678336954978820590572937418102685127971699340504002322079907269285315398599915815449597780229763155508331125431935914628676477392258926516927352296645541658640700873480560609912867146327884486261403391032221400161035924719486204588024444607801378950602292421659007710974654210741972184743167551440827528719846064270484237037321581012823243852775908171945844632123577914009362905424687964841614595499722152705066258612287495658166305656666706090112228369530526340852894912093820930253115081680391849781692247884817240689000713478461297533062560035090456600482928002215137037924644255834168532263523174858862311309495711870267781963691480310916249784701938883473778576523226358343068443559653561398570732615472055796034733191989538504855869503814650556272722107055033122538706784755358869100101893418725394615643291455033169703349822138513725508969716411674911520123437436598630418565707458982966825069039548414782531655607180242764201232457479150532839801983117015062425671443440370865730601947395027401168592477875657650552475595579745433190188362403566317213905037137941134271479747005271029086406199895995949744304322383835461436628913275243741487598624831042931212078102133940182526219490943413608688898455710629896141600957530464011939145469135625632892368560453226134294319684353235236877626370433234212261510525951276044094204935991386108028523337145872251931010286233469035193025783317268037487181570462181590894785369902496607701255521243309103034137254833716427811357082182434621186186930432875104886724027864450809367197902222659775382147467545681615323956506042686384864730881660705821451007291293992593812834330982324885368819421488378679531964889075358656528056705400321750753772030250924909347241468998808320735023551957086791537919314505450192345169359717180869119512279582594022472051445392068664044266788120040629937910339485612498385075357573984809947375203458970118264565428724918771440948163069438258410267803215203884933818993732795565028458112855660152349048382229026877968066705159186107053280363569314116151955029640809402640628957879839001346569826203932832597610847671975642418162235116154373909437837873463032022218976820616291106580775224310170920900109125685512057261561294864994507714293732373353821879237213406100273780989399492451312662965870438151278119389034228472991188696455473133442919731723860445113670296085186530659871508297154617702273678632470216895470753192041475973746262847147146279609279003722744389077582306038652562235223208386374705627841751726823479241317044121317799164430560238807058034870024246799180641718276440634876085857988131955612856429486478764291870119662635548734280803736898085579169050625446457856263285263723609749678287019775533938663886659023537567285842609832845272296302337238325945272695750447853973336927230009498702704399521056229178788487960455961991576130911269067934534748369845174923347844940120715647352071691132628880808512982989233811964845162744415790244543352735123732686272089010714098816154166032938285674726865339706426605014629979737141256536582863406478491518841242432309233391042954679340794778620076639400362598816695621866756870395181957501191456061286231237988252560708140662512348980447883452128240712209937293874022953488946449565027330947319849169469932752218196413032008804508760419844143818865114015460960479626476463539989743441389722319710035983719374935432639083893148703543131784424274213138128550502750686350881565198858896097671835902172500365392856797814372943104756515654848708241831560662535124964340022317652860099555147467874019483836206177185697654622837641503940737795740399377379510779390586720466524577800062075157615107081083042695510181484256639490249483576248055050241776023536044043831981068253552079519960305271407401354371925586057204469587506664514919968410138247649827384949535474052646594393473451237431757416358966616448899286892192108592305895990376508717530851244236695930077081155357546150258750424577876571063919633546065109244190105941729213444975358625185203065161621837203655758308311790065062525989723354549217547529901120435482784980996572149985717155299973287910488839158335082691975731353196167787358014169608481556260659405340863838040318963572122971039872298980781431154183170620373153684257121568612851581752060123616043933150588591094479314691056989995786625044541619358266797398962810975438771580417968888794874876125106414388154134077967401488580919402288396988485483618070099582210727085951593271228412817548642606339557142728061257407943455329107809573010213419598236045558409764534933019202059163053994452024626904470339788761632500315182415635589529427412077378531528674067138919223891946522213202518376814705784782203791802811910389005550403183774951096924994894460371083706295568787321095955815031389972886940107596125637033675975313970368729257289664084189445966737664570381972916633986470268082438070460723474202356095407877703130293967705682601000117911961546725865532798731882469129664003775037084848925865323091263373894238808032646121007534022127119268587004314554083829123142851410941466151971653218982654965437073911091772703870585054792943527341406479634414660116020252760232186142850523719953889951519012473915401405126002878782805265978589114754972493333019748791006331453849578837968433107046409112118217714378878129519777381537922548965906749020132476386385965021325693542621470198890798234062387966356794181578485002552255147608128361442890230110696319067934451514885810985205051117560814989868157605116463557146727326932834803794691069767269887742251852658395160813121493476345150227888058593628692553070329063247419133335352286166147450627897662386866740813649563111169926071389230081107813383392873872494930452905101027962813973454330141012520573323803868490573756589491803840433718528952157148723262141020808996915048796316642654976767530099488806814011568784118204427987945431093105569890972830995374825657986062997561638398884156557420576713886375751673435862238015907510799488935296181703402911495285236501070906282715496836358104728370366439812183167428157348803270604404943530744538506462948578923138816600819145378475861747948912289667176729276472093109596683599384897710099066789179620771382781678333791837986832423886170962684798656895565255507113144410910848915241395460475751057261961042998780350785378447031616595290057476522810481168520781706184584631116382412098404714488232002360878925850696984459287679792978927373535809965416883066881737712953231710629544705526262384283541914220906526529157974684660990941906003756954293573698401370078834803575233059596440490445650367184079658941927550688667174500794158185050742084252850302892185674518356227504830675901579571434177522509492577709068199496160634777901228038161001727275874585677277330529632446058839071771770759667461818266329600776536725386577721554513482705825573946402875226470404715986150384158974601825233680951603582784199944272967096600860142677660456824467109431663583457671006269492174372866606618830759046272928563258229127903131862741328909115917854817840280188174770559400710384601244107348023279007478026364994061688739332071470583790124361747962145245726772252775268598530914856372416465988235150655137634695917395802832248389079570156630291206772900345309155162631616553773537356654158060532864365127831673950259426054914112390017365299759846267911782292692309260050230966458058961798749289829299946203142033495183667120944998081255250873633234751760547797655765312742650586430904330767000126458144371776464984341387572454712344988506337079942581938013043000754628184498780881300022907678829166886760915405364045599191462119339642501462194399537372475509230572589044808557841883892281620700449505107208072658857276661228986300480764973265467402501767075803390195565645067025174600565558623166007676993612202551681863689330580788817526817689712373756314263170064108201894526402603219661908437882340650300779408372527491947134784397374351122147593461190806116764561894072004486681024538614863282528641965080546083611839701920806789906698561309055233057396157830518803134927207124577772609006053792499701901929812804449745795046503723635387200501800807404699738246052616797122164321129197507750955526914987043049986864452348398008456353588092552967410693097216191033948146127761315956200788984004980304341838730704299994063728788941509675455084463258368581811687959706997226058849779917678807381576728474699723509810535735316686462193687354725814289750376671377567662748975627754567952750379866623676754591786909031047052181852661698804643399080085481890400342860234985650783173465026743128479980717703754871177982982003129928699326778937045557572800156258066175451938568729450545520550520655014504359605370815943752952208131764162861430278821781746348209743470364378305680902828856667653327424558550212705091761608566302424309885640805559744947666320534650554422388480220480062768130686054086921565244731605918385068338434693728812726379990501522838381032587287595866456487354867784018961329620446255665368181892197866111316318086961859097328669172548135757080751377432305907418612957108540858029885124965487663689101780890031329276904502863076714959377289793006775273227686888506982378673167610165042656505180385014388012662126476911083924308745385501649090691238315347985045382277746264285986943207901600463370086209672451527129067136969294703962841979609360882659905336330597471303278627456869485817361941522896246257081185902416787900191181934056964093820981819710818662614394529543981218269953740164805854924934061999800859669701430281754393167061565805886423567684477211579458474929809078996513248252058932314811315678270811656159831202417143758867861271325705170923425944361429088179036353172168775963274043195234426192819698603473988319846035729864485685597254090313087914823123403470205448743562310965767818903720142595131137092280583847483466405093908839796241718910404216633159870232491275164173736902417749331521881881043894619419435717547037796316706681929045713593617235641655822620704547785335001985884798147694148502440019502128631790770477278582961696430809688668730616919582541444221047849312922870561076255919594273211650979259454731312554343958286003976947254006845197607353249984637646688659391742015628143056076357490241107681028719792806803325180695720165944633889247127273603254998348434434005021855702372955629835486906300637522245232836785717303650441531579599728873905197846580915165496133348413889619921337630345964271149205321469799755573716913859178532488401103106931703554834531171863259582282975697054244962383957779749120731079123407688119283911809288319228729085506224634169200112215256686859141142634156747434722949028809288526576786150725778659674363903740834432336395859748790847889563279479233384395953376247766846602568131345313979473625927299385163529395877941579264614258396029359757533026631674397601219847219099512074550463925684435793176700640984675824379989680305816965918770416755511307339584438593858733790676534768932354233243561665995779165632575399339639781800300031635357862969197475182845887968445567527012896485481635347444966584893690223019138420962589839375321156544229326817175418427640232424025972009573811081683709328481100155635688773166356807557179734824309527085886561004890401739276616102424649105158661689032183417949761720813128469658632086545678672584500176903379774965996956343866347215911618042294423694093209336813233776399085482730568455655780542611752040301936672052061486796055707270062447653987449273370141130090992701009744040102507139153624408157157506066200035323758454447870322800289274475576820671260679260973226735655379826005337828846872781186601991026267400276212889624697404498287497617539847822995570580920895612915261070028327793970208857860368166472922248509053815607305463381305902868144102058004828016864302720949700074233746426347507864345003287106353735808775239394389354515279583330407171083863504791916622915948088901512911791542160836360449297647221406964917335834326344463055997736098954148620831891371464542672280735456691306116812066526092917719761753592215792339643771049938923862155195412024995205936407750475060506853269219837357636939381165128501082670725867347402094111292362394698610712878541376132267087104730690516597738601953961021118265617699840386096031745488108568604232182464921083755332185367834970242344512891708877503039839947304366715220224850775217873748110627153157573519393807216855352231294799138797761543707757434318814190456914248690678769459143383266649038971772859468649136507597674564951892161905982201258870820063230581556860661756363028965036419782781824542247645446611674613191578502347718287243601294961006114285296115038072610080103414097934257550946836237767325723837504012082866156677744977628345927827633928121169562825083838431838301980933773263396930794816487762221469129791728021993232391519588823778261794100576736600138126565623755018364555643583179786251217090928343672705804729741898985882143046131270427746272620802721125163236730059827579900266654693217726149531561447104296566353839777917179671851935831716861448743959400156415974613900767489943262124261698936852203451301555725536558346934162101326766905101876131476438370499854705901429024780895624811461297599984410882104873459769015720080014680800574264556512754836254390626956000587370789603326978045239728441895068164330862851971614473092027018803090674888570996831177537981829616993619257240095949331464033311777941180793921493047698752083048327581020707913222175760961399426492868837579921204259474487930853084077136011023025028694989376515157751227402995325175859335073348137985858141536480579152241435486295903009669280101657906974028554105280215979119268636085982416395398953355191117383244673737900130982067760811472355938736026268940730886979165964566290137086418351202539304850708056615632394766081641763598585268508260356554736059681199495143760130739027750865547589981498799585649627411145973141714213067429052057331458664980528246088264177349217948063131588283317360866095281935126669200224959528611248674180452656001216717448778379712555919952409997906944793617165893668052443633430709878056013281221476228316983844243771790862013940864239019248937804353168136231218963997933817165232789085925756262710057542357297929087286427058273622093134712858141965850574942652596310057810710118937638232392953284890784333060458602986473593963476659401113302175210181468610733381511668239904936729075420536553098048336892543213652580958374568186649723835486379585336129199982148437545028584183191258570858544760117691231690440207041308338834888705818546857718389300926043203097107174336305973373025503122282704943328373116143837293927572500134619732735226891505864322772974429749349663774872687552577773786012737909506194730652795037269385134544521458997202683175285977311933608830102350361479402354205391597959271377237689179531992513991677747768565940657455334026275651077554363405216340395501406300224322236571443319186627567993952716232387223134804871379670094805318688917191117718575050355456737760384129058363550998268191474408254833466585650333357901696822075059884957330719271792832124218004163304841226904059365520216459059407545701824632788656190503054791346924580827363135195771828949242999102228953321447688794086456532973845127828441247493231623794922475112690340444288642369347475801769315000655649316736019878389130829451052338223790420988878869272650274575775444228510568076009011557014442705808501675358177875755410122675948852231586514433016828024320550693815454049390040347677723210937639702268617630290682346521662180025975350024961861664087233100370277919461616648431910872193680005269972068571591541720363967956015105906882252315673560808595758356870926127145814733173539102433779634815954656922779457603887049340245179380241697928899031527834346348354653808725036583446199787808299576232944960553057566728025271791302693330717460432119534521420380099902956244790265191080615977216728877237598681715224244208837219859451811444084097996729629623868513482525381197529483585480498371996524890255441526061109068200240097240013424775868253038216878033911778869706692899348694930074135690946419724078745227619816604558516256029636276694447557637081847546193115475892827671463493801967497175378653330788227780567963381932743662058290567850993050080754987890081387884427081274426666261408004286751250223088144156660360695357880178227088682539688960364455240553972047253613444186193030378685640538925313824592511488437238300360818728981014905418157394059832748630894110705938259402851395183362156437469469105416424434404245013276259214010179558517993795224924516145946293535126860808462494412914575607054345961694803433392729189194425622304556207259947418170783451226240396004559344468126527045024373729831672986329700887565589357444375084279542626008754385972972605215021415100231261207922542865127997588179574844486281249677446839982289087000340655238165615831661059957153991978592963221591859726098971036024122388602668873342450483607186671151150576725895042452044343461205337599222466195075482977900112306571498266217791363511125772701262644138056857422702289159119424665226857901590269286642847051513707936610611363699377924219383442584137299770689056076715245807529725973926015194430010684290500390526200052580260023181274982113731176357750286885062262510106785924628272506751391192147548919243895986802164788280524412261663237589647025411750559799742180981846592012998685563482931392120799487932952654257648315562495684871683914306639996279798605142060511602909411093728703910413154578768709893263174530844900234606011495808689871608559640833704938800730643887596884965109498302853195394201667728834680391045716173076458250448758783491187506668983018818853065949884993159294626461162815864050233629072257310605954016575538521091964783696180820096467237429282486278144734976031318599397353511234481842502347662479566500216890816487047512883405188774716077041378777246183888400619772126524641897261725091591530238014702542748951140612502521510270366946019704366647713917088382860929928248469950673385293094377391867762562290025588413874694816239399204068198412429775245955311381162299652428299806659177901976943682938591519982967796489796128169721542315930226162676587660071266349814868371837156166076571372377172996786805882683524548784948466125167264735951221646398065231425175809034252885179192916750381119669518721712392380471628596126230330341954084590264099040041622282873541883340533045743730436396788149845818464207408131137114585014182863558024515557301304610479579424446350043603394808098122893429428511427428200650602731143609667611403026210747312476295766407589013077396336530583773800348077212126897920729598778060023866258715454389475576644018987138243988245010476119514807881016007629824381926601993009444627681538827032404919875079289299540122106826782529965306281886764920186981203042209119486222188489589270899889890674917448145447540422642705849105072965439942301177248790432969629978860495246241530674687333220855416205940621448743480879953188487001099338024188102560738104441463211961695396426553133876666254941864080798117225724321719437197250834735177030361744676664180398267852989917030517677826062733869260243400003284893884479502748672895495803689417462102547028176041786401060046081880004202542979199301246126383319977330161417771413716595456080824581616942193048320796097402285203901082492964150433553790160357921795133323140652156047031126958365489561000969769972665334862731951320845316161816206191482692592871998818482296917139953236806423890924637667040564613701558881707873172450992192127767821915482102142722140112217449157340926543006386034389455825069991189526246951724594232925764287490000056638113230132817259923139640645241769108225064737854486236337170699362665169505372945585975055639271272490610310216179228080270336536269164804121768899641573012327268097331660534164488168727357554687284205571415921701157643959221435386636828384537528282033877651556842419482340584315951230625190803334804131347850207669848897840575851987993860298721053237072787127382660866822315513565301716547497517729082009128413119005071032896464786261794194043504296043002618261048757748002413827914766796241118629551313828639183076223186061802893359547487060495979906433108724280874110169844491309267555066334538448726980056096902320854186839402259524505133642234291177831425370495440617101679059402711789310683396162585716880430020207719516926857418667579100914175815731291018658026859980035804739735496379027584740281286559167041977608644647158523766892561532999750794421637352450609796868344673174926670107675160513784171086717081616943773386220178376114857113071487316664931456352314387647356382234706427045706648390143286054823423771836454166043550902108779807084384680247051737538857440277977816719628861792247974359320606320472757420552256486378959812595302282571536103773213626746128841494023389761932356285341763215631835188426903019097901789043189784553523450254368931265888440547118211890811852473783029716245651461415002793114916116157780811215780467960964514365449494800571133881667478742741084018813446448666826864487182493858837449907843766316015736238101588116529227765173188298170002214062893175108693553521075935043920672534405819704454225415314390588568007766683391450096626990799929134936626990365532682589311362900140024952984981999963984875280841454009054127772745250664632499032791723576657681806700655181692949330439393071461556934011351422910745627951962407987490939478362270095072069447723192814615314204148621690029196126019164172426349192433966416779764318759868320094983998859638331815338615985343997581694434663473080011298161124097714737706208319666497840892682975662866463200332499250590045033282051899664464888630805984813299664887226268228315369910282182777763645091137737725340368161595841962086540458726324024522895192117432506890381189142999444702605624814865211161201337838006492004781508110958856602452697817472441926956995034990584153864462793089146666173056930043843770472224876914735363961437775218137376127887515375124708315139992250765405257532395442554741256516304413213016269786313141901599957172964317212673424075172623186602604100373569998932357260973985276857791297565156570164749828898766942475164363692748278330007864086147200528944112126880342400503464908114453936218855911896682525221689308666518711370243044612578906352491427667728048855564896391721007912174282657087593783540162452455054211977529369546677099136462189644318126901565972759836005378564431597704052526683468987649020708353688909629416269643971113288460940783383539761671020865046875848711241605453416482200428167152743265385447010962743916638519174493236972731131171245458381890762398821683441090399200978172016162455479029500754051847999635651702685392003206897384788291042208847130280440755945241474110315649981668258063872732516570498723352962108890200924274279711825121670428982743419129423396976254856363913440086854393404742900490949780127887255821591314389399416906656511931647952566944140654076660874837338277599407743970601383899133534377251471813955736283145978035220607013514820816944021903436218946537625262023098772450809993792091918105721719080113589161482476948655916765250742221623140687714056044274455633558248870561406473165073825597593074667987141358372860508098628766004595211522480895772423014927071377670779644300677185683600923422317006868142101286060016644711391180774177819090864760126772168767015777658112353035839330618173575427884056118374062330736304284586144440674784473343865590448875130427754372275218317203888566573231773807737350925066518630193614210622295455077920868600735920771498199339711447816704167290616485507311099758037755963227468190840945315714937146159286953097938355333746859436164880103082279276178249698943663789604787414141362722270350236319398080107930777710519190178903936069648033387933227550058172628301241225897532130376421214684157375689657763794554736053919404434997832110066597876776640325007567610087979615257527796457222767912278338769601307525938733518157148555481484053620734927530414195965665320669328707765019971155136027440990276445052079334094789264794119350200164626874677531098525058861217282291569627421699093941560760054680841660605094980484474770849872591238100124653362314354598615399700927193250669458550348403916473224134728200525956388750618195927727909757775377024718891016234926079418630150919309635138422606737898353549727589161033925423091342170485530818659049582671911653286394504111622488600244501919741017526527161707662594586563807134363604850005203759326649033272060998592703215770311011915467488164186168198899653401053777710435556728879285466606099310032110157903762934141127776404454278820918812864435663089446294304594291685269610352699593573091459818396461105515817792008185486546381461263482695176669617299648024432374985639288517310916168509125847339783148420577974126795588053899336954192096140313312705782969513713233329673333326438337575706659196459329439947680223565751970996595277317234731009728117839455576859618273114805508207805113250377470454157824745012226732744276203572612002851562951090248774658800962713470875135689442639687796592573638407442315653486546183917895876421898585001376370250383860642597734267606924740065006132791298911506061088158996384807587010371159372531336188343490045711553280385157001999743417175898407398943594292748675651891540487964662436921123776999883081298238019447108271391299370210910582539958318991394151876389085485446129482704413486594719001747761615576876068870878892663687654533820824507289486715913447065727060561071188274135651880109550997700690551549005822655814234578475087666789582651123770804835068999836155325323523870342892679816843567630287579585470582845146203942428855766621081367619919417703715721474963574261852824723655157283145025193531618801016365576512231393089357989426730664759108379271295516041424685453616039403784181025754862038129990406772553374174495277243063914350997864709058727153600714506558571224360397644665760946339809777827060065876097116288427093152192321213680928563809244516936782394732042271092129601359371349258060221460403434497323803700214519982959657852997881563678549252127775301054331406539783497554667279970085545312298923785603784244949607514086962376641265568795757203546900799783564411304767823116436475591069165819082620095161191560366596065257208842170483998013384511561720384787049282908274385113777237115382666111459896639587113411191594096100392646998433608736098724062429367653044217263024539465127521268509024528471314161061551086015599931210825701654179624583320377901016450347940500317909451084137253315339833214144536550282346750997016386194873744698507494399950348281593861077377718535711862620874120697494243919893437266355305450858976569103030255606467073522503223896383402825495091311667813487710158988200936621452929536783975600481266659700433217206791326317369312456934019544654724609661585826266467389329053518488643718853412512331535556846688174052680556680880196273096431758453814554563834478995058920285746641006321714804184632278053099761990430093941627719624349555633218900115481463249701908582250095819647201609370596260733839296432281671810212369910100485538273513733807565725720768553540295042411558009748099824197002234952283317026110120768349324092097978169004819357142366093324431223637331947560997562241356759760095156986060069474089844709802626816447484418306050808853380530326134887024171099171686878335222297212891985818593906072620038370046824102548603076256144217745733409542092943759633794997596100642378976522154875132837802900112547799601637092562048150353991883275092424460130248045072608450571984645019304378967870847877314395878622066198263014813537566758304223668256112791201414080864208895284021307846955934695664285511882231841178128263975554514619459449136987579876592552778374475376006576223728040183236207946363454187422852895062535227874136263116695738372600053111969152789372066880162733756601934220304437642847162894652008268249475186091956265334278088628879034467569795338618234153430534498198557765995456590942404400510289246885767683170168494332021314670726899895106824473139755605056422857888901846924354421043225027390463374111206126093685404717838717015283852825353345930487008651317829033725696569930421438571245802751117470053706327993983476288233812562487743302921469546831338155463694515297103087001242010567653277230266063749907225273669045231486791620041900474754960707113299700636707822126047936268470077422668514610934522366223024331638030061494352922242379748522204127403604426647689129280641718382050990994129199591749253131098630616478380970361373390072302953320425327473836027449671604171782824616818845991300502785972620230837068990972044064371151745179377624568045869234093406551212244610058190486477989702437715750189731684111326260221189148444910012093875279831996613448905818111607846129414886007328073801475645145068142886650432714317815130568740830280029578844327923649716154454134763577097557794394294361194797703131973817434371857398460459856486431098972610698607908238068035628627647304051302463261342184542827665271416610018452052316019926276817061508862856969658257462495330734671670619938523924300821932927260249738450774913675407684590959439794524549851261479855349966038149440404902953276313041231166410370357069192683463929515251462921291706117325080092556399103689155737893493414565016032109390326983652182438298799432661824759215133530849074402414114427002813950725222941164586148983631369056476944483658852993924712503036085697214937278111557116770206358090347755759910493852400958957560904274041074591939643612155792055305981211492103755733015859776366466392314728889544039119843481167228831369636161776888756173319116950954359385706627424761549051768200707292441823744336796746193227198876684203972586487152369453442602602504697228906897698890840897386624489973735649674537874615637001347595800039539418356189593557003034461535268374272774119123699239143338115684624464863591867537280500530033492649629785879629459965832381066329449552610542798550504623682628278596771162056125727811369030955648177700293893335649380262090949431098454294700393138463140019634646341842749791371932039344320001099943621260956934584868082212267375696127418652539340475544191575269298569595421860006939143521989185179256559966292742309465515909524927457724912727884699798388971041637419433135538740214546825397979160901033462579308918924433616916823907668027193174057532267443182001593160163922138579222311833469704188267830756519701226097733019222411343191183070470928779074005441901737376433086145551982789336244030954378445696871349843135669588826822555863988432791344973765458389439865558482949951187316435506932023207824660601741822257676011134356495531780784517707080979770531698316027776754997227467408098699772194511907012325548527421954762039725052786608729378435073079003575040545397850373836924008546916217561415206763941669649700002246389753564999866352486856628064156599123224551719909158797898183042025857979308370319925288857648528438910053831038079155275929181756492988214828227264165559152664230749812625283964755437267433855940518601538170945766145521445498630951637313133965568323278390766290211878638106450082952181796872432843370738370721284405229888762522270569705825809263377202337026127793428220193721862393866652412258511521895855455972829015363160078916683625319897413526844833123176378645614489117267692589125372245654390441905722380718660300531957331879600594712048988694593714328258716766529964801405355873735395928516488383061603439520857135574606561636465518781551949982391153166048864986745106536745602583169834755577904516239954981421677248283827862662553457066810786573494193280040436000681245757404907192347054053561381307508036459099267778344713223423135687315819503906649946381214001174893933610492686171337466091046717654445499333615075665744972844251632685654968626824884766307478511895200297077461669847052161215218830532658942272446499391838813179289690407205118252509845656282520051589243541019574455137802031261448768168099800204780408212777372039059573088772199012937002725534012450852698599385587202852606413938651461618840215189638446896757148916170745038304961506861774142079477740758564414771014412887606233744394694308143850249593352785469177298446874155471845768080056554677534611800971142598292140057159790289807613385730650711276152064645259462586279142797395394626129272337415912737613724477093440666641592896910973336551484703259665804427204907306562035742005329568848254814178883281244152450081332168046154742958764870290888567425436592824221867495188477545768985954696310510577940554570990563451151089570282426793000562499149447615635614356479690193678212593037526358770808384898210894970568864444481877569439556515792437095220885135013859930913018070407149595588618903168020311753789773077412751247068329569145547374837717006985909616856833486144589342011404670221272094681552191149558991281701793705498328569419172538367523445087049158573105538875449373093357195645410595694971572124961660399054263171986549782295302682061791366259399299885829933831974635533660644008752693885155967692612282451102824518644114131150811014210507286675735918677678130389771209304043052680638851026189620655603977125315017343984538559207285410039407927813337971998510039685144379827307603769961478301955290440640593659443701566629557663799318528036001834823990349626482183106290122100554340255193209077831614310777458317630028905467988580957784553623804318603004255916587222840061222870531408395910059477295766859858742400550073860396557296852422715450332240616721442147087449968453597739761619295783730698388159112617498008445107076408157916944756545643006452764747981873176637371100809436324844749903841468073331492345247305118341766483676459292132381756792248109786850380779631408859069246239986237350152441301072349709648692900670523772369956538225821047540480915157859787071998613733481798176415554529768179558931230355939254719015999417730575809024736489129177604360532998931246079447338312982016321659797543956157524338606956313765080086977548281620324427035063093489628236524672737930954470210809136013867640172919686026300425632716370507564261132918184360330794350925803187229786069404026533538708537920213134109651923322668368817277944537330904944816971157413437319259442798802623923351387557616616091075976526444592088572780167064954967264448409180292941565772229530430378227589931972171742912443352143684062375098577047733661732119702900574184437526924663685709403534491357446631602798611129716686133475855629276106071427241509085412765729139632680638852599542737588663572038886726843668152192968764862289171599716200257435061062836894040120170804558904487830702109789615343951035334414790242618480168805186668291489677684952536549401126719028848954553274712318955834245651680748127898615193354412446472763510438768262883622816932304498341974745598348574176204550766561354573997318701766753928993342810816521063980117845475803257817925497593915767002952263133391312831164399606739305333565451278514879529203404095718917749909223088129161342708367526668215678402406820209076674051509117691030904251494638415946712995458653834237648172384034961326358098975009034264843383004936585661728671381818437264011620228899147699992545075069658128761458290346882968045370409592443817008914474609339365300757752008826148258347348332025664056552287956920896973194995192939727675377273398791410202190301083423243535970294250366202029936576705674184483019153057390725531033926095919439342154153719991244691030693022893924247039492295982386561934078407708854539130421808433716112579658226695898400219704968472970622891653719344136114044683792289347552060397505391516523553455869967524932348803339351438713106397167846053266243326205026320472308166534213549536134144715351659302477448689603385097625919640483674151801630564474485316892559006941639692972997352816050977152904832192496519117088168264722075857991596261987642751714160662282820493557531082215817847411669714740173118325976546672369227149528453404412179622790670407731786362597091228437383481374347479893676303956932860668988935207362768405365206436316182475471098129017602630339069674161035303189852561800759200337985025546993230461732625864733317406603789511593872446427945414764396773026774939602743621431186198298999955695870748411148999167466992279146037912712008882032600533071071364967431008169520261446897706967744923425219382452956617386998214103652443004690699305505346482437577173477522176721189391033576260874287939582961847327673133446883868595888208590335292412327683598008664518447101941201489151973208465750915993654527006560503516566526846832608265405970349425736391875611689141220866505856095485844829808017243181326785262544518642255372747902227794691705054063638472856004864975867139254666864703465285543067396540269979443026470031247938394128195465877949548144245417311314578094813376372232519408684032062218549894268089250121167697367001055001878054863154909050738740060801082409629695993344461236361693663767746186791892470905488910555695356659506615097819730976750176430970364614120728949423609322456158946632167421399186759726042211609327566776414912209564368741932273217684211725359347438772393764328405567395852972768122526322574172283340948142068682046538002755027749434072397720721168777929097327964048822777588502027897689359448188727384277177316426206251669930695536979798937169202180434139173382993833068835164549237338964927719039766228166218125432744558544352548511160241337773820899230713640500002908322420870916704137170813126045937881621200263904180905906841113082710602232794266027425688145024299022656875724583925064344279174263247853882955604986433566142589555471805429179114791439889025421580745293037913772250782948290281016125873706714832140555952220715116237004579441605208107349305900446852250964277666382520905620909789744211279932116304619061841797839733027764465855136309027127488390863338980196372027953630101588680446493817357275285249176070068062617997804032574831201332077343158888818705639156100416626704545036920680869278831581852306524298859551186700322281137397937800521019907861035257023485276727918149769944328833357150512351882536645661349105353133549919414323903991717094703423633058042052753084071992327741943533744092157617265948048018075305006366010967707972325869268715096268649642270368126391509993163123806249520302387624948381234482101861920685812671452188922342011637243640890515827508026779247825753721581421052254983369697509776906655252760210690486608250873667302818639780351419193370201668910496744923810862899372248257436515605806132900000832840876297310726357241711475511215480078734964952089834842648122273062129062847833146051036491445251901822833478658708503191431646333017835199959861277334695768274468930429317881302945035022072425631075557049242183449528546617819192761676369704165258964614728897237916020996626704821292361676224316106742560801111689880498408206667993240103828202751641773573494466899705074670750913368164880957954532806097699504917808127182722843150951343058131180270378583876771989870637313553266371518007135649573457032012425481059207519161438924648173226392046520341735926469846787622507582794691139646108088391112373275080952354052248378035032288432384955506382553752077587273867823533434962382580629722106868621868457299711080468440708810078330846382146704608139980477435194497821970919939340415188280824233513834974633241763635154878589526541521763638869659902189877436252328321313516293323095926526766935687401496812611859066629840192527250247372968410952859850041434637106415888024119760640241984646034650937962616999574334480025646501879439243292812916747582078685245234167965574789649584392737366794486473222481816135523343226340786454042118515017534260920121883087153943960598606134604300939166974299243912624922104978983258550908495104768016613562148957439931024077381743368571382549539279867724585549111759699028543723679911278777163586483292627976217234611518656494144345086269429397600403081401183854411448429222872074940881494758639235492484732327903584068695876508049181424617569138689818256583549476279775419101527877991700181539135016278881176922968814880543571616027792888322470048682648986689000047691204020565488332547200476596193165389164273616358348656305139815512672043671652164155792464783723384571738723929850164182703368726474406167712064797475989689735952730543515546484489044297450577064609381497576941480002951585794113127123242201554801827259778164258633039249909588659602258227757038275846832797881465664600969092805619693202124949689489644655042145880178455956401504120139341230852019155531028909195751216852884071091574795446428768466452752691580658690958355708226825712696094656999042389987884148533209026708466516229101641961634445781880216769636143913021994513777021478412830003548857254534563802901887149775983135304449045004854608619733098309316940906394979400593646292764970595913050286777144108712787639748864525621502409644527046031456205721256686529193083456789574748149792679848957613181013833979250457143237737260057635954159811075681861416391574914761270792637174668561179059453709567964987490573490122474895180374741387752332082388796777812139878746461761101218416114278979792733671021109630827489121289663981013333705381911460173446623853452196421448121483542142634025358109507921250660390854386233232268481693923642288329718288559667334968155484242094882391107880810326900295597411080454277521858017719839221487623184738905143492263850604321540564187820304912028488818326894958394466061845986415902454939007732369816993324803976369545135406960870094005330759941477131910585833302324302922633889582312836947248761239142531664493044544079002494395578782885465658243824568520700161437775691155897250484403269204529669480793214923778135390457444025784754737353746860070801848628170650030752719396013281758199935187655579765212971460969961769973226307947063949735933092009021036386936070616683367390000467127403837723711866671192264696490643464174690352154633517864164938838291820619683653874242540176298794161777439005734843582860808690395557538769656600557035235242807209125576140407845138160657441372607354980757435427243653457648595287061264136262459731356220042165173003993008588064803630315832913341265516790019992220907480384976285529761447735564465807252612518523130664524561338822515382199143846774054582292128385573077015312393429957116427488119770058154908073233989866197000730711284897486857942002121737792619922307375926016659588539547333004119948448985794936595916937200781090120237225469536362076799363786918327646973055408197030446123335579018373469284815263416073729832912093570085687292545796394362278429906145321108895262974531780380531156250553896856820717496215363829470305084330602028290316117971759769102432754094356365322580343601098781511224589459416404796945233004895843557217853100097804952122988231324737367492497024480056064274320006907224035103313386718863308361261612731622190810981743819724346070563848348050577751344136084641839173435862203293326078326654389682617366058524108159444019701138586606701651209147351060568725278335449329864647748062834675184764720752418363147022074435774369341282941661207965031581633976723909917914845318607171059437369795826457628051466993706806571882622046669644324900163106236383723087204457204798928502882862400484373810096312041099781516467082856618193452640597400955668972190567096649875783781134942101250323152092671718676498858780332852435761855582024487494796044636532349604076540532276683472333394986367862335365928082623119490002598602903047941239837210687211613635185612034981288301890063536026535022346237403684846917831121462805910071780062413451382152257202469769444211827641746910494457026422295173656271874285983892779499475045262386875758810534061141425622833959444141861649061576312347766162246126520012153754961592338870477052662013803177749604786113709563890419632415765061047848365390893019910430073450149595811337065079657186267780775482430538698685672975403300900848040157734182289167807481559655122717899374594713657363257593391980185933764934753649355457111863482293822001645402703423110960874826290212647497387486955798018834031937752124889683870219556618249370324434047175948881468590969803778710582302238857346097895628655033466950755366551948202928919239050427729029203106444545941185326675710507154771576664276804891819274490697947893235868784856590076955440225121860821188966195763725349372393567450820346452663108586686620066314871343165544480769587960683720251132015824890202393833475458436407061695971986489947235153114826156182530519008989026296129589743952652797461750881493869830968206271295767084529635632265180558560133059907233231258368564496230528433731214795518946895014826306442682862218308565812154145916880940292580842563602872935412069176715105624628525562657724392284744796364931539209771495062247684593716014769368677926054892586471365581332679367307314615786324221601847050629503041699369928615175996277900709705568111670055118685511638351392778816353934958586944270254708352540577909332476136023640657946111023824536648107593932489486861342975008375932146820459356741153684731252410906330292714190758499120931092435515047373399921846053418707562526456051523654555267344115494836658357190521116697833828278876845249839727118835673934209999341389748341398203548491033167442690520829587119197966925737182992384597506813420562982954021134310789427225257443867029281847500859218483300917306494617765699866924748405400176245776447618042835449374826927769094059693585384331310372453444751834607837225552669897137067938034960068862360534478172782502853916930410643765816403547757022900235504530254650448996957793305691698023408451531910055152467789664733315782085723771600834159571956367411711959777372717257808769682790185355779123184409420838412847669336718938553578787376188937842094410680007096800756524370402096106410554937494293435334824490540902912124451425796772462695085115524993494577706252973081202385663452775710254642785852954321239527476626494265462798621188991905911779863173929757212613188080039345808621477441564306263278568344369452124027598266706822454881745913605222916390057495425167176355809186044683896592235312557854465871214144086730597852480070842587021535315912353891453943515160544615263010633680435428979662989513203086814436550436681710410815268469028356404440668659453499043014950528931366872299361380922603329402288156363393893073085951122799658167868815852126955343579063872559589807952716775156493445662520577597757779848176429237570320402310303166173624690003329234066272448992615894909595220212648731054226455710164181150239924711971592357045784806919864555404321035646294047522601653589314977412985678952873015000419506450770426631142364771631539565723466383514083016282841893235399943017102875318813383837715939268211756898610083317024670185641716173460998062760200617923154711817121977864607621243132880504468804781186199628744820859049738548301826135363618196476981499679467767511179790385999373793308179872820207871082966997431482440736255824222539703097235976572810759927182626597465905985578216034892212407543163510840280581020962263749134670980873401920210919972415126380710569156051598064384477008222014153635316774526577126175449055999761676280026572002896659094861795962352314911402069393333588342057952833029661957487243756047945083002152863553146344009428235313269444165602449448725959489083357375632055792154983978641160784163256676200709702727134634919482729836430672073860582306036455763696350638115911291142707839989296025676008883111236811704516087926986817860428063108241916941623714818413457887974765777371204476159249517037966262618467553851311226946429145780470259471988400319640843038380604534403727085099809154736378829325622695189948076778350981113208875094731902095191807603841460352675309320654555911408527724016392752329269140284307511259410139301890976665556475916676334341826665718697687776348360036034806583575751562654783676662948141801784938091780418698805698121544336354058962571599898432269487752150726335303454703516658471902373981132745512622702498228060380582913530251521040193919155928595596607880398993113544772154010894638717615309302526280063591091852417417377430570239807927807621254125629323253147982657466729886338075601955004841530312949123044673433654427357502977573732196082838402482708886475888455925322483748315762336883565366597251544123276840186971587212770279488931289657925834207506160548319915153819159371467220688555847543668725417263397605154451866680638335455215204051254570910711228880740866385885312038842537716848727848016943041834244041565743411986883640256146071454800491074771377907018030701931335849924002084432346866953191134207961357513408828453340325457502663247459689062351657308107146057207033270577410934263305129409806921048186042514668897260771620604798500801048353440573996762980247794907589211382242676134915075768255086749424205147792218208671125417785642891761053773155913177911562113515616228146376808090614908726835296454018952591444597130160223290045476538404862077036493737332890865479937002800985263393430757317553536384119461121845363992725445470601180558921683034286420677733022919291623730321512853348152220303597076451119826001095341969735578309435790240176971277692051855480883868390949740720344259734035207786951509121667952754146279456707536835466413206877114542418122934205953017822971358542221853530874618707224845651097305104414195541553385880703312098107075468666692891817225069100176027674878642683382172858173319774807422977802560218081767852880214902158683997573135243226544660573917276111686831616687954923972930182695138564653026755328492048156035661172525524537768183845361466985078297261464163846076364091641273350210960602100269138369164190861687474118205980339867937007383891541456029524581766737233195839502945034509877295872044474845994026504577576624780999276243117819189843671499074264161965472427658200094990134311671310550516998128767525311998909922392966125301171419994082154323062108252966860968278818469916033989181928208526057037232771472859076217378757749970461641900811676505504395740597178303635034540805265137137792305820824925825881405328134179878271232814625246590330254539849614771185475062391107222820168415045691734798573123840304779040682875296942999087337579980875061697406926056853063625315637400132118894889852841884886717106038647628308699669082721425245740971078695462672283109727118839262237876463460730623290540948224705067242220087967435425746158951436900709616308679845031252924817008927668668101099194883738542513167889780611678063675952553422840322179515057180107787913940880542136686429224735444453505059120550874271232842364481097924165062869253002597221584864615966425119983503976139339127935557084841569436901033269968913230981465835234822396808092377367248849060721133745208212805138739357745708982857399089862086033386189347404195375953189740950412063916264594853879876207738574757862981597183889551090269522830254238377074104151971853022905176073686364208869487831041089201308931053518962085423022269409413783598637287965091897451314428989962198950704047164349986920795964757369905697478518135218727305931756798390529391391179602121602410421228452627229772940897371443033725600239044569105923825100544174451058353623322193590062674029717832856851001768412809174678531294902991312752203347140515490452801336501406364928969877348188900412957719890995943351844575504531269967175228533683053963959264692146753610213837145974092029895915647347908691197392270090401426814319118030029148877701002077174693674173212605979891731555432223624352400041741443506859167128729852052826006762448802907813993001610706045499254836624680934301510660875245265581957297293172117293801973297555581005319951046170432641562470427424511985378979182352497372481069065869982887022510607248756723063366599078391394886021322533890643707727514860171389121149139244378468651591423038542917195560957981817647579645750121168613629373969803662857840750201525142212760808208173357424100738141280926644802307384969788060012071335133736043657701270506857480964621657103530144571159151902912755028020344805688305423064640101616653335936092557435677344977590935252295076784143816813126103315881816864344814725829259597479298271775736285791937530854896827273916522680498259781819239679440957165299624329323160768058307098288367018354046611934378958882516891020904077799434051280354354781906443543896886547469573306254718818627321803853481259606658539325056815971671928868393232489588026943973350360932471483145090172791774329218689506900221126467573599597958419553470693966110874452336927701561262859290667700049754094367144869294123013036860136454282870809064902778169728408591034103242470303668922422530493438393895313783678235492564000720133778753183975830839290306261475566571787696464151994331212995718167610835405840002273589976230460678457667381893197971294350053252057095850455241389272961475058909099955960776404587014187172157557898181916779422658746842088856234374429207850866025229061095487780398479110385449680451877644210198278683619130703129118362706114690968400968041345720215468304042636335923522693080195494175288235965721235514954556967772880822454742598855312988088048456936023517882491497100481248499333120375535312003993012388019302483358727550331118497925695539992699831399346697899244926643393765739781840209597398190210608608249966720584257293321717884730716979995153503799145225725880105844224047544243058346592539901104051834428631991014281177148640586571321256016402168468742790384033615052372852162845364536704019841410635515403534028053548609863704075956906034123436258311029779089983913921345566569414371732732028840229693453758954949234280933122801619065276423636614047665711892080953973410377025698235225798650687286389231140147136079219685937866770730404514264071889913320620878093628953975457316436902585453608145966969568048537855687289708851385454341327949593360956263766858955316948472275252959223624433641599088975235230731302245140461287813544663619487545093999569474120434773125604723350049166951103644067686122405177585391372758620160102409293070778670566884064833167730610762533346018716258056135887473628877316340219922890372502462200616777069230422267261618119839109775069667496974269399698726863385458454284616868605689146078984991761553831075408334170703722264956843204139163148415837793313170550767565774979663427335226742953131171859553910495643649177095694583617960832676173666420881167046223549286280956090224518572807986435098720839163581839300174576703584676579994000956613200766404378567003566481070789377995350497601094484601526514670212163228187423585297110833134858468849546709326768952643948232637132409664545734726752158244348694061086702184518274740151982505644111630775638039370272827234293794959733184454819549493419677508657163008596940220851545170490925153067061364399898647473846844079509451713769131453380821267500207501275743762292343000643781607917617927264155884765649774063447498373181125825345382981090315567299331079210747048225744940243648896967025207438602872233904488074499219378331737432328290723761658448343458081644079449693381808972336037389034249638369428052411839978549751717928640498721280541838468310251304076758588112204573534687564345376426735414999072186364171498466689578713175967037316162323949585148431589290849431073327194157175528893435878274688293141940676833344107841020858616523634503789073073095848907882613627359826483016791185897457612253284168513233208324499454661132263190307072247702571462438010067315799070404106262909433124805715314705101595978053394513574369207917121144474374920514010952005508988892944588768307956193142493168879841514776061980828641932300683621200733888456776335226482555833544977981895145792088148219454000160591321152779692458045423180348868441994661080438467322505024442509281419169754390413184511324851001347024359038404583162637255024292259701793198548024568931632279079276235813446527975736499693615627040340376519296436046940872238446413433421268175030581045421729032412783775580454866176159794415739918722076158033896742442078467413334189112637176737026168502852389432492402932877665137480611105530607584603535525080782958641906514914678775867738512988216026509428293305288542737440088612299167976589105540994354937226470321720600960965877051690333618367431785634126611155506187144662432987242556020100054971151901841826441547098431124059609010334074638588603865588129682669763491181034943828637897625277119648290045112910088354796525026732373235847102018597008724069944069128163411369372557369500708187279348690351316276405255496650747431617329546537115019286325367278329641820098322253274467737056403597850121452332381170499049121509164597330769631850211446275174152188083437064877000861242321426811568154217914040284122497708964354223835587889165800412343350660372463129219016954018063061136759681323702621543633364883653082056561528696529874837370050709591890129316267038909042661122361882309745137242016068076073976630589846954577617088259429300836278176756272560284799500202609834679052395523529522099498633193609128688549931490430962154431664484094861966955230936910060562662930152661208982978407350124931884685871543891956505594588133426206732301435849934135183545411034114438794300181581585936102141563457144831862443807631946470826216133362644365463618355980841267616322399958350929214363978201882557717497142793985846149125276725976694080711152275140370953130420731681697160638542580699368378963075962641525383108726747471966389581910058876825283098408769192051566951272908535351703426736998035946116193571640042679638789825916483286469425336903068867852840207296238031390255295497872033752468914053143169978453933046337910948353367389138402343812797637292327027219022253044909497023229730508374669056169729519757580694317047652470249899478711515261918727657794194578308566446851095420159452238138385555419399496698521250929129949140177906117058742696306283445285257009349015488263078843348068086333233643003852896116411266034612038714835977932843856881908124421998133602699593063789762001889761807765439419079105846918879788181536393871889410411595919204603077277825253482902593846043063173157507463935366260174814903685915505581245090888173481312867610612199307572298947720280680879895492667212147870908278570735037684877900439021318397010841824652357170155425679674769224478962948173258638941160039007112351898768732995286740999203874589423499414539236535915140248792422719125381601651590433443797475201719380489526053449512554162754222467324634274950931040701050638393491097144648548739979234929029603158341332691641812731178980614811911466128916684313454610351908819209116827091684431631693411899152476297900558529996840162683631271986265036284447800232933854220952980372718388530892289548715474288131493932370518345320695059568110231268180560878504285962005701487357737361149990115747872304290053094970170278326795382811575449933232693440639022609185280314031697054968603047102289238662881498370451022667490022805348580443014106122232288784446716859858179761298485858277409347172372294586104339774554622176849402379707066780851026527253409921611672190367001750861858579843578884683272002390832715286777010534140339829162222410852080325881754178502402420416462939158603827032433000919367278357551399923260944677116113060565547280651471672021656093057077914429150030416596862966000334212837102709056635376203717934921573773215943632056002301737874808958652955694436466493912150768574604175062891107180095552845916635753916481007266843168593639392052878276848097086683348467483823489305393088853757326901213350396650359128927171643529080007822263574927373030541070927879501667378442844436393183789770403215157241601211411742808700781836228298051437240829209203621747735152659262204375171655198014836679330773568135830871871079196146200196728093182068456446865339384729997741182449729989009612703194123948367513229638240155175900467800902669750650001664020618912037571306147092761652536064326441821631417145706613069313127021302199690107153317310196651552534006679414617357542145520128669003429485846073221869988355348360132493949180099606748211382185618962140714488474474465980918038553833352706656931438941594952828108063272395919584216591731214701091431133843817029174683726119945145355482345687813372242214036982423979292397464664618012278298556412243342553910347229663934092773668599041744054516878583285602277896513805463072507728107720971272525469643099436870572638001026382527121637150163171087980258218722043851697771895128744651582743985832606684600872119136054058178540753317723183190047640708251071288384468760125967575104102185527813601980152014605078193558975719039065125982432504188436778743430633590099845787350228850563656086918632603697801905064685315610342668945143317939196953195936713399242543735746426879488416316720664378085809952496993042297267714672620022372956351079424036447559507219436093138855856738960218418015784970698348981619000469037947961493496515954564819317273049573630796654068797647330379527971221444360729803912418172228613905309381331178933327977775729480122568756129840323548741283436780868001469089409011908335521893914609102341772203052704618110293089332531205486775964917672639855266203176407904435633253612865113047649645543471290079968036949630469212757548145383125573313788761669715886762420291266041581730744267992550624118232785367360748606682743957832793413842426002313777259460642277212768910704394602964865266318647019242469680632030931413094058122094374385218020614701361725641152956631731541563784188745337054646306821197611404167920955415908914679962712408123129470182774099230844568517422451294791642530664236796951137832765036167473375090226446557813982524168648393297254808586312649873195647964529799181475081987625769347977757725012637613822056424629229946488947596772939522213741190386585313684401599349379662359504677627585095142516944252044787100577411972030018783735780435623248536859708719922397472369037402544876134234353256851035316813593648815122583087983073471958127286217532604088355827153878161949773236835216195226620870305703021114051251265525539874951321221904037228109976924283889362183926282708462180172947879944900089688052288024855454111196157790468024840240801910219528109312932910532839814773096969689545602165303237325214432187034264997288442843796709108471400840976714747512036435642663429062049841205877672237272994391727812769950461898582918295147113579653801766261103755907456889231883144481078923876382106345934004759050146084249623863951303863176824967386250344538940641160273384127443288845014569845294328106251492031545279729912224162927822049135877881835357163973808836839228871632299669246288891635865437458141434989184180415826037727501143787342258184272136233986862702773857459359582498223704586782518459492113428254803623577998373148813824314097189099744229930447230843886719808809763673868571305544256410748996647491832453915018302520669136154012826252761695033908049739850785203344598234854629571754182107733122531168929191378356058376223107850654968551288537400660083146785001441166218834148464583111408530348947800685627890818622649169366511167702595984946315363501019254904736246877623888868057984353374674386494606397933785187630804611475275232121281046191010898428119470505098266827697999980369512476617411799190244083990787832834483997259806632260023573366513484469977773084975654445585462480411494895893999699562789585069343651430215380532192545168502995675075254442204884604701538654637361918312321057910238620924491914682671971697505873946273054721684014431935541966925685847094625764835209585880011903458964265340284107923070663598042034417596615664824237793486533187733822846938405917361396389867180654793467731761707968493633903945117724569292589694919200426610556538433662321776773319266262610414944772774199273028968641640049423134959725351468897997002967269708700827253896781900889210178560778345866222577083634285972834207153961689671751064408529381813677039912097452494648393209419431731951439885203000180871118251617796620449990262542831787186094164337879949082493323297321902041589756249733011310806150483651591910901859167171036107591607278136524069470650136157897819397272707572352407952159090484866083345272576334022094494865342054998761622688826032070094046084112995431605512068199282452341884265636845701673265588439563726317121306799209647404219463234091947924242107077125465143092300293680002556253465694869229874468820013388033419087650773344562997566529168619406521807558068588400842600345723366879430473152720339147064707633269787430153675619119562114114181721699956495991473299874276241881938626654672448046299323838294490151632252746127969330995115583891716070179983332126439234414428787969018247933535877496338230748688577283985309693246484562494423957426969098441172300104681920698745015782280984698100144663332671772778566451817514043561070145032141598577702313372579801127264124083141999512609428614253799422649321937717826883302221532410857771002845236598644830864601831725134406184273554307175202150668239557752405894620196167190716657332825520319902259099094500649540382508027473634213571661611392119625634162872343080834976930149648168707360176570789813830500252707009224435473348527413492259328896102957867789146161400268471952300428812965469901157920154419695194581639966329645322396293832377380057768872114690474850957284564351386536793024397562469676148592729519186035452839411507421602167332420948079019882196230712581062855257846519236548904614042575809116472224788798331852216413253328743372593762205836141278661297361233489361386901929449162793486122376205818335831717435829376448891388832331713208581584812329916044269518602056088331328969116101073569969677448324218559873171418107895235822311743458116279142641083685976181035889709998864317667228658272136452661161905458757477818566026762012135312422121514869488567113181094719617398959635099372735705275272444142718596178684051457299820121015624032056115420996959198864738900842587666203717796771619537838930061647545825763781194364840147005284405996492300994252747385995182365286943491731817271926692852331639366942520543771165268531954567004348218927715537176609067155890294474469639920496652621698356166185687592161421270268408080177705148600386482587085525025793797916509652889400091255763649326135351168468316716868465918712891319898561454199978419578590632774942887450277625766387026121559269760045111682929028784252515298054631922325875541002818500680092458454914515528040707277226966190360498052936386414420762136019076778975060178302742585924949596197190122095226738310987439971178878326822542052313244747776316148534542905658965705743487291440699772809997353670893163805403828609886119409528836286593863061412348539118603449072520629642837576298539527144000558625770499768093503336211993875962524352484556641251145187579912994615704935894934114714311350977813513296777552020177960119255372793603789057252261489574933342337754136566215306154807999179729124371143191670321923296841881991744806992378815993715257774082753825166457473002925333398902841626372522929539517533672166744353599546238197825070335147121482664059726794218370402427626598749558808901555041682390147305610615160436703506694061781202710851603868164935321710858193921872072535851695747633187648160243788161676458545345779450346950190606124855767784580297707214754417350795741274558657390446685260997374636014966833523809728118202005170729535946836086141606617196230475548907317018994276273665468647185898921051545641403607171306350340895835356939158252307873127050281345900381251225578203033428671824843496272384023905890710813481978176111781468408060924108736964503920275737255434824515737315788798577637067171399916127783737964209598095481409593639648097935541877582521115479086811055999379391185793007034678702435145384229245789380888338005508140227332948132280212116152106198937137038987099186187218620170489991468769787343787026221506611731118843137514160022492506644771807853949868392126339825553092912293568919853495453402624711004667144845055028273913464681598254533678084705280585578340316488417827646905632633984677267982884135834639380795320914394051203317669362884843141712779554399914319837532693807342832108008358960535367705247270791037157002766724576056896725105523939290618986929366470106864586497361953627797075187455871419223682563635879372134722977872418674300961977246163821329003046859488822116202652290210900779886180126710035352116228740199237881805099567854613314070686260812550211054917640300525600528398722582295703372684358680025910317067164492109721131932304359053375816771290081353185026539626235142646698046977457908024837165361524362666143676288029171454706485267448574893156087530928628486794797136247937837917885311896118410322678889515263300934913096238910398812411038878281245087936745454440460097000401450582076207961430411115413267625727579108199629490646529269626682656941761480858230093912119796325877006164754981313738697805367238012141399129429298003996335843940484466974649403436012801142925565488951516750021855611702374362039923300933682536493933446557286102151249625461418610778792119381696470195180942850247571857047691495579717779326102591736685913428077096163186483492212179498207186192584571895341711383527847122224173419957232736388219332353211431172817946449301365625101789508618133879880950595207108077751407100701416501078812748490243891183660412006148999873612188976426297566924247168132739607719520576059214369823014282409049292802418569447974083202335803818679284587278325205718374446389401454779938401735163058009651097002906025395008171051231021677677129449820451736724433310337258691504831697524623118134678912907950420386956202498551552639077703529650343395604158432326800067000276874145893434049271581024210458943414843957835151780231603523141939498755947572045709801004499001403618468294661080984189333353234890763801713555553366514398884211295731014802243935263801515901030003321754913309013689732648137722408170916320891907859220609601129288746730805234943445769813244234484068670991321142831614828578516607651798561528219367680439773410313276070108943856771890622835014537328285496661696300343556845491378958972375262675351000078029504044742492702672985974085254918926921608016003122792088175401387519338801424581905342809666927033806297263350410262482544082074385195115418111993805752973561930376865782179508889536911793689719129534497422655402537400185937316385266744116202611487201468483489292072719146818395322718208856455652858966516896784267416807004648111768145307557011936059500702411475591573366430058232340688106515281329096726388669848849277766023893170350401052803238962627232736482397947682585138660468885516947469712697497660998430076868549357417845246292623015068619375560989262083106453170466860685191550345012095885820810616343773445544569081610982563249639794780457640659535168845132134819972477532337010112593406039279140597842101724318363844101111901599378489192412209439785655279588588424255023345251291689984697489651139919282072116707740636675854226973934803712011120739436770083256982060160929490801866362257684159882392467908652911219936634960925121408071967435349501451313879737057902340868660155614666303902817024609506343220053629667351307065225890850929020439545059878141774754111133637165151150369408392878240775581570480792410404464599244665562633086073930423282133050451113822778620206195263382475142958714523254233697956950789529698403979598690099079779730603251486022475387888250346194621517957105312377147343059761896679723260686276037231438493518204338593556788172831124568979270402638837597674226921317953058679475303055161130030762885983275970359429615840200541471514688691725007757236439572636087823958224920226922753651434905859023513413631829569301454041286890977258523176449376361878238492978842154621793696098705328250205820636372248624174725674063342512455612215917933759138989993357369266989104919018363995632011144917025704544444018026897231517160946174499852987537537233710763262326245136346801267232782227802413533506354940655647850802511273949063443778654690606579701945707030775543151521942211000682480481817704652542433639512527426816536500059419053955972284781215908845410878448955914093460256524942539052734678983108192317882456075033773394409319834549657990309060722923273393629613510414191386951810264623397175805091155158032305910385704841383240802509100080053551432972030785573298445612515988842283273080532602909568862142179417503096986497848794333214916939408829576083547111794355318975773296653469793280513213838532382394658798207463440094291621608411855449259356193474408238775188373383248715858253139308685668321807671902233097728420343856818761048924005557765741226851565441547904119097785695469195218547699224741530796245961022739480127861454927321150059655672593555241300489380584267734095392263947896162997753253354605626636132574333183522547033415442815352823063392735058088292356087535221636295800673823234556829997976250016382484984849001238313754907614418015244088499020857570438320400557352317208752428290887656591606511109859902109219298419837436119413568038775116323079815198475452710287649857052813781033303630054097807596997891796147551183851129742098058012425433665247387090187300864385521023203098944261903420507721755313980962492139384532827446229694370503603026915607986003340077770050556587836171776917728775302778834314597044569303292998100725468703974732194972105512603583011859874484165225721814271857167726470329631410648997112244191367174151476358676544384987093498086254541468875535868158154814238821960700319749347014686902311965466268241516242409523463631704023162864595977132453309882638617158867822219383620263404018856543269024070824600139958614876572416338303047856743994921407738427067771112058920506354041342607345954576415854545578812185181040330323882198865186436088081792639284528565199991037984522225426160720576392618813740413920877994162456936362018832914242722091683280102953596828317669002506575640565294186289030095746209796270282589814968615130844975808474444393790646246074736775893637548283079138607145071925483289870534158397213198688015083803497261965559426894602316746319969355578220925803307158206580968209182456101952690342483081874563863607282688160961133681174499410383823861130843722694970891284387509472118219032525416867749627023326937618367031102816217356651762825541967626576274830551131125763024342030493839793822464805696637893258510051042630776804670689021293845932268805336762033020276788221314106859993453689279597194443687582735372002034318549307825361120514753480175777126278635286086300863774105864705777066218088546099533708111669041435205685035446181946820148024277104460101464451485727904758903002634881317831790151581115664679306227865226563123022601284779890547580310589298616729809291430017529188110479077256833482079237982758302329218149797150459148494318846936231464290295849228263210310880502385862100133803618943136304240279118708080065523120457133892465807210209902309031059090891419905559308809338762185491231830810811578141978915919335975212269504560607849300065239364563876855999983756673255185521295393131982112329238498160227981277837860701360439988645645476803129325727620471054360497212879538339142349706695190589003977865087900952691001967507866615224446909862428139826893804381090176485153458246312075692134804110754916793794958748915408848182555827079941650914041682829099900063136913124877412048081278283395851636440218227038382059771004658443754044381069826207989627739785711576885240989742515189363035293807444071502907049829077659353475772461914529830124825868254957710386200071316825822128042808514623663916658905931260280927913533095780698762893744779140175430384844563365887081030393021593829852626989558020372573517481618049779477762922175687774979834049766328579776421333290413729421721558324373861033337138341489389982504814831724176054165912234773126464754489507892561455911086523346778483265241201478890591255968594199228821775407600932759334868733426674254737993998331262943991898981128662129303710403245057302890443942439934506970150907485331343621078101618484426865538241215500032747419533024005271324154310662121809315473148696654721417499881165251648045742486475462432846867526237896258293314586632735818022237345093304115439696079518766762520173546909769770725635864782360371890541025415177866373224483926193411941736467278896584364533393859583471202314794592344116928835471548810234622546929050926211367386423750681141571727515947691255188705520929189576808650088924870525107954222479976157963280606272352025513060491671221538372458010993008804971318901240335544649769506611550061606555901696396520051451373731759707928780460544801851408992463014975095136603281628586907220216309445661393189037329785048830907796255125594385224665003023770561319177347187593998062028910838984334798465962701739035429289818747549916311036981007364261387191768809903294849913264266831384239254354988658447190271841494109780755359073423786887999996968761588462507026986064438877669069522118238998128756757358537113167570343939790508717750990042454183929033180117761918226226066175910976400660007203421120582635289293262514451143173289418615529015579113514743928010510534764024667033539465850215768906376731643619023033651158900649122362839135252727884363537537259087438458553902482274185227281595040499663693164231743763931993026870315748210815053338419494398205822473327078645085019896814801152695521227638476091929021247191847062631287445708608929427668687223119413718819722797302264947373635504652006393461928342637439014166967985291153093976399954700408588649012116712463378842903644750477009886259358039025212563972034455879780688242014591145396595252563219894289286359616679300483763125582089994919767026757619569399712726830755150320291913668858752584456659023402331580622403803943452075221778648007357007951365664215127780584500948588351481883472751747286859686549930745417851150097388846827881115424146650970078981906895553908224384067089307703518265603875814689040522119569598989001359815599674089243258022237406886553529257126511815117210568753287672200452517702916559860259590482984106142320500749499992634439392395913035649059400339976233850611220474882827309775412281755604806354006460148205734978736190476884143769805239432973445185259644448956069491099610884287187496629684871554931486073756606776560780163130367312364778760229856506367625699089233815864917297397771882782369277779404312766367787706730246491305583311883793100623895290467606687332871799819431878790222827434060536138600002294162474670621388802876196193017052588059843649779339447444282688227729551534381414542853034565886779434024466682325915236041392186975987632328436334640275343708457451848273575056880198956858740318535240194026685008247705576001041608262462769756366024058457436395638884409974698244777312446420186249995895595059201512172532586523616561838185124372791687875377873125025809461571306751285035629939008075420104074055535446171701921001714604281443275570154338420736437133611539611051672310499632998056898091279457560852224754504278015795317752964226419649420904554479072745498261135176661016775467368575368233455330114171800777234464543051935268084500202612566433791170137853076233082435180699144575612136104854517628851848159112658182503647980156085847631499297039148476478805137388672287280031957965766374169142159970570525650639804964013149373138365154327847366671461619250575444150437370606199306812411865200638196574330065173682444238621742789291022698238293558642783274545375293934242397133909085984240265485371656679139231382065204353900355550674980970383515053698527735566814965548580126544164683346015399704978081659586650019352223577652807742149419103555750978565379525256634687773375301874732862754702565061858500061668896802562873885655279340051058170140194434687838201231142831074373044421041500436304212272119307493808918241250474631212842501517086365219341151625581770316065516236529891214302629574575498981757200513666507572100274431374994115584522992999080371138623027203389474036722847683556364286344984671825185851019350711621449975449895662349908696374380143325816871281546908301185759831340405791311654541853849301443414213146432860095021192522161787672711473062022327530819774996375573324938357132600254112063849468197174359388836076827452846740508092537077598835873001347111763888477674591667268012164255819380310384955298497668106633686759834152804498266908747353654222362762133770043052485383185006683485911159628624174871881276093851518011001802421248998586003764727779449425889485821451011971640726495376689113358379893173056494738481500906438043803794918089393065859500212004275455195400062807150321459110725656575732607662039736001242099695493498694039896228498362996171242897731786868045727382280349221402337289426067538029389448091061344041369865999251189310463723372011397483699798636895204903697719905390975917311988897855708393303181582139489590160150321484950777096659242692371999797669766629207014905794186112398069739086352298547996706233095995617302342081187854553386241077926144623257404966770867576889111804049344985555422574219465460349072458593968856023505399213909947647847705312571465035780764755363161876099454719059175460533397366429389011610483435720120038745011612756084537854252976013757179087110489776157092405466078506512712108585296611062113015714069355316513580245581444353724735231683593968173818361723720169905798034196912908062540435313888501248630809720423752476664119925675940936452078020148162318465214568617478339800182488552882795532177823160998341872975346845621036700783981964362694092787819534620630891602087325826002909842913006551332255417566536433915472476435638089911991646433460050578900144733122276170287473592158930190772130869609893147661128451710993907884516546492453304986397920362175338447808235193680621292671432728673928384119055167516421378595690297309145421573693242475925066340819350617950387171241213645079818576653148938407804813754074185515473265287555911211923822763560308159263531766819591310618980865456408893621740781682738151135602204298727243690504676794412873043297217463070209645278070237255398678102293477374888021007729016966436160245085363437032123152672454073108278635302768675331304467574615160437940882060315074529965519478860581287298386601911204634028598645494302587337154920184008917459525717407172710433282326500259733485327866641405712356114522299911680875131782537904284960386827817386064410758817268637251762101418815158220442887770504586811144117035668359161683809359717274591831326398239228867262348810793275502902157801538367864127602488384764033264752889403266258317047141201210616999907689493995259379567395473871005018330564129707558749884768652910282515474402526598891118509771348343048092820668969802648217409215736827380599662203633410117972036184112255644113729174529558820394450043091098287533153797037393307553597064720659354738084147283365649027068663227462691075950747499949580313412550491289397436192037792548112782407005460133396024258935784817206067852994029962048477340465771564270627803006904323849605629822388309002820862224328751527153986343919180136256990015529775405860986505087725982405877951422428298789537711037553422255601122167369891409092186212887697853554099294279936378717740780616617825785127715375879261304536905951156108588114055286025008288660138385952871717115429750881089127112138034335749438039442418969010288704507034557529145408351116575295814978948326633518059955012074073581520625036038093534914764336084201956762502795658922588781001819951512735906660623538617257806001684165724871733069490087400402540026205460506724351144519383879334969323847087199390676577317068160536444745182771510534935320560478723165137235090758011705065378443014296660528711833226712376249849329633514117699363953435478952447834175541960426703837150208385721557271331848656144322096201908746840852605106305735280405190947991049202969537051665933557666838893839838661623420658515884435856386758428835533959443942245049484417208186437486462365813087219868697722274991201742687503663378283344657246324776220369567021165954498551725150768276241723823807916394723456506626372098694399784294155437299020815403903104138529081997018142058648941402747583572271992847819279837715694474996845464391883214030919455184978518408065164649932752688856423905948046589208717146552268101922344924667663971633863988899838774303587123901312151139438534767720572008145226805781186590824204275589854268253718596254651796657118121603455595324509395723109145438427851270253584774078754278655661149867383164149448095990739261961804912935688987570925068649986688651690258373722158567167882237857251680192399963720158161789749066380535315713563519454151938095614478504920980356113852930210181047372613975127119189460448268598903534263583179452282311899967019844483525387430864821162223490668686059675460135282012300543105831266722860472381146273557548704332803905694123893886895808351850506981928801390081332227124450775745344817201783079347573928442068504787039215116336118418347286508517861715809183866823299837438047912810893793025559096210429160331548703663579410657935526819141787045392064293019161544515174800217560399417709190745215914274242251248564307162292939222016903991714377412046562749071813802151732611979504756139281954212691229199083279305206433499281139429337537869500905268388395890506443440626996379316464029041023394043892701802590109038000241824075988193072787341319854309796623969951226448615769600133806220074033538621861108553977139450620778230727074074109597666010812245870060045754075737707838547281789951600562738754767417408774797818526892657136023628692952706914252104782032404365961000071533864620153642061141489713631814904956544752876545687356132098364459911301471819177222703885929400220210904465703212290153568762540836857431785013636102344246942370103338618720832135367938493317465687830313582876396921925387639452621167324336860012203168099269334409536111401439209324515669067310951220680562137547908735731356173568202516430937772860716443988115428770224954046608375073280124978492353409497464818776167748654913463786491664902585584526946777436141708254315176536594472843725285902783445705593460116746126056990510973358507249877170483718374392526773155219921082176387870452640301338384940996161400609045686526390111657005352500651540588683283992968712087389448294983676439226708330592708407941278683054241130298438056081496811277763053939512852774424967400548112296497049206706346753110685715567838631927164713249132986114864349776289262911780451447465057990605612553619724273327327662383653270495292073928142335084251000073909967700682673651881557890064987359573463825692418423665694482332078690343861901495224268956261567845550061007308752496027186090471310556594576790433391481935381251359494884400975314669035307912675762482121016405981494637010141996906973881635688193567086484894147104175412540301808462942070189301096744779232303241778492792214492860871057253996773130012247743410530454047873123871499327794030348969552543764759646757707498823382317822149538795402277985954536381795460809423409243382429056167219318842288619467531427313466329452110763592902714756945389377956488573555455132001882485952384814305705947129325983898653755486064482996701193370995389723880695278489637518760911785522016598792219271488439802847692025064433039461551394886291229338118632713475732022887397162690568705078044792238364962467348890090064084183383302560346368020585538221676939000844799261598231533930982893844627089758514678007235408607739565208511918053515735741707654031774303198597157710776855499202374351312306978370707402232185105346693347755092892859331032384039251727648322965658669346312525750783578522313660940829843736036980621108408924693141923454458460047547855578807133634525602484583939943413333702249317045991669228744471144039874486522970367858676676173546147381873874879392756824349193117672853531374089707858191065729379290109889087567426484604581166167339272679307276439647095328637413741945328779030083569184365137531789202805600688830041566671724756716224613284491297606280043605919988602487114328197628513940388526142216227805568814057532045853156531059138692654572183481051995109942186345881508185870219418868118328620599509139210199891740132336532194114906899633877461065453709208122344505375418478064266503742910562716027851261751756432483513362377074879641354016251156208556876691315719122437180899885798222600577431723036226793173998797240030048345918885611659941885359842204588752583551739855068379570810581303493942654622590234400220858981697162811085221372462379643446858886575921071113887742715574025963466556985811747700728511965384779277695170114292384480061017295731130248431996794211102211138491612137372941413664727331715143820093535438102191415950230845097184440335208160380741137770961008729000303485094202208686033735306746091198185427585151035490997690952970852348736978084845698620576225733204891700957602199114796889448186596148072497673416828112398276524769159618965697572604001400867008854771488466011015708763615451216373566082216487460415527213714395254689344153966589967844429120380291051580932484675397146160890350111137532678403326591027174106300225289380765972399315388212962493970663903550391470590072581879574342639161350288378325393210452402553522605717933955942354566672050969548691881003573060798753823815977736015606179635528887879526923636666516979685353379555966956898605353716189558626033567998165304823807902786460252625838103733901092929145821247545452951135146381430962702972750485945776339267316349008708100454576275562565200384514823995845787831324554164485295717463797713599155426130437425118836200232107616129604821383798245004847643566252013609881633380907225896389510794689873612649312264670285763326172745293178363865461723179571570633782166984815740786281189893067928968297510379551663428207854721933141116357933019457638865557998577055905668282406322103858886079752245393262933276029438379966718000667347936262210941247589388654126904270176584375836016220136512259736201757029326257828084250482640470672973001503905147787255001774481825488287207477428562126387621508441911758169172550287194553990342619390473273166800035108286914370362253052386047717443181154331827358164740411540857625346905131831683557862989911972594823994133968370114136762647269858787692435255681452305186097741719409538578470159657466730749601065322073338043383677697748336114105241335750595353367875657196066877106395841682671288060937562326058985720627376811747753396114127402241346093790738374111145127404966388365782994251206693626815691868408675050379166021937123756524649277212255808827967206580030360124311853940715383166187152198893831213557252246695127918688007887759646071857143040871335524821983744864590334886705267785508603819947731579853972461356306010062856230756601076356748793801875330417940834268208145979898677621055342073763241120374511236875691494383888827698668306402892525779026788252310607442497013243374316474964294168220520711857943779659714224230581915095899518257050688574437284992550145578302755876313077690149746857624770693504123540648444922473140461841498292384908773896639723442950427482746517282903098884234295666086447699914332997823969632060175663835906996818323910508002619827541636267196805165572372928913322911909765335537070112208180598175975518696584508143934868509808024436795796543965359511769719379310378129086098098967348068979649265409364766886315527818883601089780816196307593513184131018633391653165185356862727021684259598616306922305149504886274348474294077325135979799103432096432352918442579169714183604422352973327134961260904425538590849148497580856398199389172073506872428385946367332062458903260183635040065768284981789748930188768282757471100206243918749369627488269935831137389552885151666706689687310116024380519040534009603328532433150988038935059296017708689136567874504955847608417889068008077427678476861170452455604376921338116989571400598165809017969733172503177044391171415183763649797748954310803407060562836139628514421519221334596456028108978078244336578986067230462247087679842543647444552243847886784176266648198416784200903692485431669182226615851158219079544169411661359336679555068328830926516654191248667632658346625992555851847432910569829342493026731060956750999611989101957948177311341350569496652879706564522501460693240461412939920195645876125156521592638460918699144870535127739320781275557927514422314936026932721213044714132205320939003089739815672075223694694217830229412930414726855387088861730586198290624246761221139722772796982327047002526257622341124360541912387372123615598298838462761857156264459740000101140077969809276219071595048607812625085030868913577357111508882426614996105298775182170950517929383574300673313669783448219204799982009007286507749725442551989324994515518966736359183899773572536432037784284346466116446426245636429631928800803581924186412646198016371773808031792079910354069003953876511994461270254686584446814446900863850992021193405899303162116608868869872185302950018869769966200338824749601783382838741123073032608778704629032809695516028577187867915393617693818742973831511501414980227438496716074870147196335776608124351796960865574944782730795002679712726582650482988890303689973879429405002472344269905898058999186775542435195840680247812614068454954478071714356943875064501336221600247626472657856777740670937593663978102155276859454710496052210714246872738829707708724796423363449206688890786154111934899734799391923435110381142645965586783688673443096386008904229181637843550991643850795155460151668540501253188964358362408712416923210846976774180671340382772583480917607586110899714543839270660443930835246713834387337108323217512094502821405350513140395943663500842629277646059376679188497973542029911711869701287651647222960885561649907906766905665802996522280861150409432478626020919103584498479454613459716739201751558848217191896657087516422824817943647562421553059998457982281131075662956098940632677103496585466544301319779655157916015302337744563367530539736652452024150803369749246185736538447452823117038158607614974341388187163570952387409080927550332774963397494025321708796456347003092762045764134710391052274435402583285931840779080264778192178421352642013547782185134091938284785144134915998588736202110198399303356689053376157625969685489046028965764407817548185752976626553064830668634537133184188409264336680987301304926286518286191127373435800550893637518850044529143808317934818139437417426579170186175500684041845377543969658131592869410544691355208931814974425315697567844541955499200910427697220732607581443946283713048622283441866878362912451465831774972912424966080172944211879979507805582544092468611406664521103149246029956338059729066320869817072584883822482186667565327496358551765296038510149913161246376195176510161825622460981872214253268656473149989397302079736622239903058889303430884427957596500910564222366507257048181639989027326055708709892111549819166277006155942206891020836077059817861766476257468215775952294100230505859649434901856473688372174883084587997575621865788020631301817000850991485062103233422428674500081315865905431919166380445420280564447937681897196151149770948346491900458381147876072698642065564709497751886991159666992872698794299084538473604259135814012508326577904671557641401310807166532949490134629523445125603915541220751680427175018862704131310243161806018273282281961866213582149686652002898108139778425820280471452251078107274173614497412569936799714344728557833438016528168067658532281016342233684929206458173161509532952218887758301709760192167504769074350543835687589017563434969120400040897709721957202102836209921278778094725877202865871532068894319002977548192244794464632478387088673785798573682207537676137119032139090155093909973771199367079232116451692646141603296356660614652763518161953746226784489154097555553510429199276896313695601511141269712998358615969555170795501058053237383429918182204425971563287213153502485111954973140039955313844556884387678307645721486496288365171361729192649494972376512070214012302668847696900617914409925498962587442143263674264915007464053198328520484433447333572840781628023836631308736943511669116695785757939913081431199430672948942653553553109764223323336086570969905230475155012008309693174057225125401427457475417031385157610854959732149650210003645156823960934885874158294808801760756180382111962597574035432754023463387813917626003538861685876005745183943700629967807535946816299413100087282024509546824509377747401906017039788097003246679085568202011812814847728678018839750722688786985619166803435235014046050735777885224622545209403841789532447584662691039024283467342710369575610061901556954712004292100269403911344235157907674071450740168956827011389052897697362883634386486873948797862694192336414713309849704056494134890748854809299058039085623335367352522504585246369301484660440726527340113640676450189686705740651103635672891810983029277100103260726608973340395498027471964308293918642931590319707197500524565096391972074375237088965838102560672826905876952613094036741228075875160408817283949876498857013901802283755307148555141559779896542927586890735795421295947328423404389843941719136049436721775670917293137009359545030082867313800553334429683389746324318701025939716209175031877592054923298486677462242643735205768970373827761656334741781220755225338619448589854731695882421980946007239396447821385264704892048181280923851591907624954569354274875834184158895271363540255158957465213713889427843732336759269062799444411238088079532647590277170933971511523820532952811215965560285091216655302323484384284752692953611455467154899095994327716724149564372474934514825310260306240089552565242044568219683862594679272665460037997989100710942549060842899911607969931213048216431962606224883840689754733473798363343452584352031478767634216637950024050582241946597738885556198913885301234405452516816934729670588660144439668357822443552008147777229641782632834077035064495514651161482973248942221812945864733918424040516110446528583052261548893693849388407170335503469146972813972393897357532572839459563907375786793619482006746595671743223138177062344130485999742243156674661445892506991503626313843738340759587472446777733475604929431830789761064376827393929522401180853167480028155216380312327899482001683621938849055339599342105067606606402528535051691604915324897043267404207839872059300949916515911609693657246525290913810415634209833105931148065181669809458993015528313242370659376517950151935625573603558744856074761078044183446061136596377834091600763040641691359924472279950672550166761658933413535986645181202901035063698162693910417034524331905556970354942481249049056729768626000469814045324231676481729788119435940728947375535791855490019161278169060223641638541665218487917056043120008940537384446663786393986921668543441569746364121350689052426089654319327544496452173485322157918774726809232585377030047170322864115327309224637246893357985341573339985541718855245302551105673478450843185361455426340494626752453041562546727524097414265671686058592385643652915009972135747989925445932139644323667624065452349842829343044046298917902584795347114869018224122308277766712382321190412628848795859577977959848270616783038284697121131815558405438955311793602661123883223570856511303985984485989841905466702932414316958136801218485249838857940287686890283952043152862634210659729687427068188096210771351659745415242018953440399092499699555999350580970027273539607412362828997639216530046571913000725456452855709744769969623063103567588404655760166520814486752514188701258084819648163869272684376940036872914908051406159825889848469023537261005824842260391270714136747217259802888400089180652564504512862345512967040417744637004909463417209167415001820547736936286465345078181558565422576504180331350262252561971982144962180226462557997618539075277297409485709696284054163260605469854751775895325917325934459418112292396492277940906144999667740335984502884377016792425747496779957287119056601864373550949690027632305269320651162407489491321204949632001709475451311368137526368200079559724632799549360848590681966044983924401961233672195481184359642124052813732391362467237818366407378629303292920641708859082247958488972393404206321854219717925590232283879519838985267463847753586815554987743807804533281066859462928188325383220080962665149979220335842408553079697283822995763490587281815113137382284304747492166894592413304774639144560497661470409611265654691411372162075581715090003008669977622675052635383232819897863577350389205863488590194870499683195225132250923307481405110732296521439707298938609565870205628981529381957889406671233058492627659317617759846019052670262582650021222914723627064348278463467101268717460269037732391696939787067191115126861595738989057339511095935116111547562410435964236013986147233531515133947281875249199436552860330571436816691375190955679751928954817835335757865437020909694439368470798042338346454116643495264203819024685828175328867336747989778666735744056186542758845170470803710769362478906516755470931087614939963057393949863088311241966624643430132701358356374669556139630226272477000729967549010677555269187958550034230459124125995295292810294313796243210571416747723350230376577900131134770084412236247273958324579646471450550771993130269470555722433202717377440437920812614545775429594467523233923553568196688953504844143296380297713258880809954473614461925597890551532688294565293073849874482045582089268519705358964706620729928453883856596775932806495985396391453527745143802681990135800073763076085032581274151319682769002591181582067445433573012742997181264852925939877292178744782408751064920746471173950736354118067166388345672935352253314062939445525433092859043165086377538111836907862159485701859832151741074341615190237245702733407083558784686878712195427876803038811335151547012533408364727548785118944914390953229803734940680091183139945714946050707345710875015026198237951022887123336398605234707874246344101625746759717150587338646489220232969688428972117877635057348914546076963573665945170510685375290687853729265514079148618576229642755629052721965292748485207055158933799575920886222546223770812990264355526322251178960062243503716020453546382887711433864373721461757858606708408016814727210339972180807490628838846782912329681161449376811308973312492334275556326927824483604337477743257073437005589078945696494577490371039043519559887827219400918640993126255823388297858025589748184332840564364861261798756835743417567480902939906723630863042433027827876235482644284772249213474202963881516313624182161979425083725196142876285010664676561433124837126463620948314582581705532979046093976034116271743598073188900956858608990435719234942508412128212308780737934389394191138893639194001127685669000481589596397772034167014977044812514972645968774249603990363170196144920321827126079144923256606378469005869256283370377074994651572949532364847208252478927117381918730628094300876222555652813718171726122185321786839370208347582641346985062631084791070261802410128208134099508072283373865784647005826691142825486106167803309150477619762187982114287422993544852415593278869181987054864072791795231162904118877548507903674521832457307658683037506832569374554207384831384085254738470108055422579593489266956186180692129005938619826563990803298984272494178797631284244897985112567011434847955531828154707526387855736562662098581147072690830228208403475749339344441418748203877340894259926955464742941447084676010142765188073908148789021668040218089373679019543742624960155897549883222867405802287772135246199111046540117673987136106103414422908988641895248039146454864487496736040882917800331434772091436119150689031828870851796994243554185695526290840403420027811088017392818349146172523492615808655288759880037848763153970732147042462012286621651509844350573801123090080018879863548748993828251469751609378622967568705625398671576530097555902817494897428035154813892285300435353012560147492747059090997168648132530436405391488080569097875565337130710813578637324230784995263201657137981874293190558069431964164702614775920939591520570104910522535393555191760457999932771139177237729244044603540531262261009735212675488021621796458067653766366061135257325147987963848744901380943573260164351229065776027225694424638238112794452836002354089403615914967880287148995839452762467809150397799488189685857363109325672351923907498455303865966380782213262718108883519451634479488204124062493909698944561194104639175776945635405029678895059329558609078136200671628840066939433239754960835109900447061379382789499665023283848175784090003094708820952732534452429692988836740015201600932211610277882247104500304220938488034501669830590570528849430218542615283039514461580312371250794327828881763389103643819213691096308656504075267240795442382559931672514350303300309257050073653599493501321574961489525509829771048812334653956666214500081736116048114840432632997271846786339967692708970805532183968051860751697722249364511681230910680094379755349620564075894161625815730332906735493924874141038733319237625419863036270552279082286462736472718082880666506926368263048402976885304127768251837812964868936331512793847350378245153226356244407126742443759159927225832363754774431345707175816651487007211069559238951775894390175181363024092781325232859590780252611084228411260234893854325614318016633328497728385975708313734869773582861029775989181043567917871543942600302569908158337265072686211119562143533078600310025560345904829374775266452259852546168321820393163729618972379126485090478679562210970337872131335924289776319310811860954183503203926426793637973983660513374714655561370553434699322553639878566872545035056421881883454069804567618829060913568392643852611314637367162850604923682673177409280390378599625475972864446816573436607572461160419131146208202359020428750633856917760511958634233476878607500920843367003449440713062312761563929598860302196482209660956496273054940409890627557108814007153210245250137285373079180787976737906377698252628062421604943585809668017787819525095313204741867485148513102900759301935237363969286087951637668542770493746396251080898339869690870633944259317696916534956662924908335267946720307245839929913267361459059464445002841008169291976638612738291902252473512066805842964508722858956654244154044015425876895912825419152988142352213194721688764469963688339309634955849650012137000887174876749124164949182042898402085067061559802781427303220558213173967750024164133526331996140029018079626031654636861477053501990778110496184362208543779964526120557930004314617096728051287692959525725677330778125751157492834579150946478677938896105050421785611043515008383780467481469582386019836441541109285077118595806339587368257698500854307940494916476429252638984249274141369887952615417234196472890026271910913378128177263324706201230914039688923899965527975779213664318778575921068984032906380036610143412073772926253594705970900316709992919595883621742200709377538338369338377344847309353840614478888352460796826536259275127962451370347918979835304239032755639290458338171519637896188322000248104857836325001784854304372797707840846319719414056770171115948549348285687663075676887308633291337578366832669569792891657236753942686472525920953741787316886575653768099291170099666682648069333576425630291187138706516269875702357598999422968809107964934996694738698594661417485088117797785300573310891743837455098510306007557811991496359306236203782876759995832343590706375470194041235168820367389784567783028905736571078029491079255736397734382714250713439187152498524406869462402498879869134029085558853940005722766150199595963275557854339130776447043076896021586076544116462220182202233721437994363829831219356647972261022426210358585028537497252221827409712974021949390054694832676277894343813817126627726579914603091903143113925917112721895499824428729689662757696897998692027482931607906431192093338597859600973528031721253650569107117074627922291952361649532667132111498940943536221409840509959827317109238753115180397099463545770294653276145552203969485005141298129180817583344329653927630097487921317317870691194342801610135875675434974617665062413511676772462261861377911468491500439430857968992743493690264781885680866292058189383198806881108218626533884802682198391354165725509559540528875560971531011661833806193504530312529038346540298358707911328508922565711837677495497948817917889145515110435639654978193812077460755898679803577455297683301173871358982908655895135030494151205184604792421322357285665917964815237827051002197871681992962234769301711321718097596252840612297180520973894410204313649504331613542778180470786710702499144757846890972476001654126562672465624014376609941167272392763350009988193092291275862365443795811229363239554003923441663683289049420318487603886578211376571956391765788329189710126656450884331200929924686714829603214530657505334367570048073791202106177445409064803349094991505604617044711845850745264477619682435061074962924607835409298559188942235563471646527450121837753372157150109057038545704432673555054915570692508717251192173276195606386452293254994956928016077555736780805501992008512361682233073449623486896554572892946744094129873677679332682283272774335913930629794312147904531576522796678911268782233810660060792643418225539519612504087127384605822834592953863207822022293476179499753538806247570978266393599947261833411391878678313196169695338332249712839026237311667920320625735393214601553420493726702624356948707660369150085927721291080875448804557390155627193036757532304397072460103259361605876874681624115686702049742114067853444809559822785197501491964888257683073326979945948893048849302546233347422452765243433647852681902130986066941071179900021233627425212099629074612224906418466538501360057233364177769700326276687674430802369907839767877439980475828557089783263027377534351563390859107864973266465121851328236802099091430482414188263830727922883267780695666576455663268068145456581647032885534987686274601613936914880295664864400419125278195684035583180224296783422824900897652365019695421402000364516902879684278716152054392318374918935557315831511547491903488529194401091041480412494196474186559949100320372786385474379793978377612372578889366064572249001369391391775252010960318775185257810112088223122904433197691732716219726532345663789890717832709370257113001856308204288334965697814425534829294989349106741419628124894781965104136046586328269604852855691569916983587898750078011573068635548783146628500549788731571385829600915855193027145310274707365076951264766543296546348323768480707945493792872834148272048956132143202326867030463809528189568317932777036918378525727165100654101636992634645441863509101429903721010857551519303455224326604336506720059346534974235240270640312192801579484890836475092358328054058709906602431128882999620693175032655013115263824929926617597249829186785748339842447177772023858392062169349197559001554682415091425512357319812535457537273166275743598694806057274934963924475499462851042713319738984777034460323648856103584560718349053883334213455355666609313668363175016999794170383340501375622701124940459305728488315621829064843078986016659305630389489715868286825442125830511366474970904248089256307457948405471962375378069112502612926079502763726737645984811029234324854337131846509088991609376016666096791070883924144382529838353105202630689231158648899281668135386743560894698859225691528800557188924654261794256801571994902736820647916819993505412431160660757937419113272866411139727653809312017261294389757290268645138953382403179413688412973724876442851493561951348443625865069577115928464035366249527407842671805347194934632393567684436809691409047182760431709128642763978291182712877692417353834992263721389831864245959186563846806112215477992479980782737341353948855233074575993212998762494060458808866391683054832381616443596607549601614265203816452820747325970357345208162957252955091961444126784231814723962304523196941195457582633266391289203667530308931825174410213562612646231141558805139201093580123517219622632259132574151916133182109073628773626571638599099632855163418372074447563804676347486079203172943045809774617303473838385183626397975443541894493974139352130848180561833904328354245937560893564883452557014062556781996053598188995861626082356718841962351861905177604595015739088402249282934917228546980290165442547131101785657198929167263626862148332980841082886989370160371769661369089791553180840089043547774684132321811255502026256931593159621914092633777649256299708464999230664425492455992425831646293236954748779832764306103738913898786919029980893773710032879549957623401167914258954616726648466879169089726473652630180167559619866252312813101448363053666667935403477789685081408632546378046787174129283944211976750006908963276938405603968686433387819959123955048868881190509537647369284085347128753795304981576602435543600756002285405725329641075788881820106339920062527518454414497776678656999991958282086916777179181504485141959102951522118434633861382084941494269621670534746222100425026214512927631056362498825219893952030436654464633172191723378090689951908576802179236611019496712516860567778317586565013070853714948912938262010646099126573351745017218711836540047698239664386354235551870396748146900319655109133296021872110149878756324034604458424595625437810670478457606008536126892161637152499892712984400996437882237371225323645002688960213128293054996125415556122214229890916458883363474648169495394517053345174848316211478427792833313132912686321900162761150188459353182278916537656884256981400384473264157740106061790031301335671734919859620232553929563214879626273661123961531483380641273072685985286003214517975970345325277775921302232010991037086157195013053998398171535382592082870301120647046571825962612054547281540651876657467025833027089151363963854031918031744481650738370442455402022852901934072362417190359405782191444187018608862430681152835916215122625867601730343979178080979289492718218568269057430243456428064553456200786674480929196541390126980323729750769835384358088052167243737920215791832187018662377042956021441113567575086577686583162001776161825935555553250970273479319717207148599604135142409032170062799363261479242804057173630789374715401764772467392098658560457915994920426302178632841480228330399630869304901827943515122139150040655297470625086016930931899914786491859865123387545129804709855508670808378796939986383228283730250956640442497474250922265066250161430569745155096943905674641602626633660571239898924269151899130203278289698362796254340630496866984836923102760950086984256163798722337974631828823328387730599283135805581585918379379183527319713343712539531269771961725321028920646881446006303655980791675296138397257716083371441074208062471165948046168237854479249103625749999266585931011969227344220513363607482635830927271680218956356366177236024206530269495534605630336072813911734871182894458224608612326932647240241509954374803433133860784886300728045179179481994333217015225006424372677057300598691798128945865137421215866066694222674539169158282683030723718126213427277157860371875353961246610072763699245361760168845350162353345099092425790549360084186522474881214573952345484028192731744012986515154239195800674226031114655949536886896929751511907987083822675211228016469796446215223918550656394521617849859146767371451649006460683439651179948575457249077186243152272896577522831427363838249559524049659594872554635975590172160327929473393700698768514764045513612697285359482381654250456916516913476581128245961987243536857047270866552319472205308735595308882774649646769435308840150343733192294197512830109339266082035852950426388368996070504475530843726969747666356587080358914382345682666481841104644035713257669117075572838960620298241230011787667097280887698866966548651167589979278028495097511548750201711470746115248481235256876503012755654352619853982789453128171521936910379676083310853618486652478252539801940689003689570267906608232506489847928954834735358291553245821611139310336395229052533215958431552991182841086752383482362002216789616210784518313643259736529508540476174410402616480564947397743178414976308130889713033158954013932797847792264416922247528444970509365066851696378260403980481356368491547873272581314030925465668531757759549326163834750952027333383040561524036269866563052599246772641473396891418797518442817494015149006367318668947126557440586122206980833092932461555889100311480931961231430631689834970252009010306192531411785251736436579934324682389862793374159925523692454894380991798982203256288230149494200088240865142726437818740350582427145643724236984547684012991658215041597305999296214243182045220730478964837552107041317180513792547947348939795317508617896341557021224926128018312164510770163345249264583753129171066677207432752613190833003284826401366677081673901732604958628710602224007415576523716702668871835788610362707251558650285502417234527476750418551898174140105445667180712817095914112340572334035849294848954638113800029311619754838773772472074518175028004995883305384644953359268659654111576883238418596104433824766205098799076029399325564689931552078744897806325534854973841906581961085491898759510327789819826066589372267281100510687719712588952471970498378284323124940884366931685474788371576452013367666849190977225419919004126698854299882016967258612795509744073803574087281303798447236592798957818958559012648009649234913641002790050309131382583498582896921808717448921697268431860762871631777813363898664933292349667430115216569972572465150456792703861255832117645139967744168445816027053516919823371655852594427980464948039714009151851180726418620852732843982117137408221112056390028335726983697361017522293039794447319731620158979533589565301703320648609778812724855345454951221122727317386194178518301151339610871573406190700302716919654797258013337217744321445898960387454676840989485075585627737552804000386484048992150716757362306993834711346797689591516919416763800718283341396350661820218100319849143030110581150944060401210096292937593705371560569177228400709218382753090849138266042949197081992674388806634407930966860705107139122468666907204619098416018129846053434546555490581796688566017886116493692336652626166851806694487477636463918406199171434084670220068355545042195156621697470768708844839946183629937284966570055442661704556201346972034954957082333984706176786973085925466880142223470008889254880988036332028444919524534764275035696504111814642891667177114717230288767390905630037118579332048092571450853156319475310441890715890984437962201581358868888594691319024995951033237096304788852525016770233912909400378522767499654351320419212261165695139318071091417227071394416340957466104694336681627429267229249802261392230889620086592984734477596970974345048949428022444523778536439667063318462936389829826409237810923974256649911848788259867676418596712146197609761256367242937680880732381206155904047710358550298158252982180157923940645492608279484626918804177627671403194480290768917583213934142534741569070188024001378267916124934462087622137329191789061050601808264250877164021024084471760247660409226259262667329463225657758173633371823085058050689480443830152189475648039067219198791050231779102854038810090373872665647909706800140020799027765321854433797099944320005859160313392289342594157492716767584130948728472112188458612809824076797903519231722674143500671419652146977983130628245190997315078927038063959194399344630599037239861610186136862289556141988030642898619877978174238125186173260499865778753806242463539045752084098707141648155510338215325468394123248128835668519079676195781486488162057820232971129479160135246734491050456152294608151195090481120616764714251999396380779935766626703012427429375483859442876289403730288500390764323092224075055189239510407667071751926454751530854257107350407103728287610791136221642345936724336291380250545897573830048101517582597640574201162776831870583116259156598690981610726029871441042467684623134531011966029141358142726288531370249247684811989653151364514986469038874938739758633670960679845021901944370882132146819308830620966721930757491874504869472586165201385441277969522693942774614558140106989493365319433734724005634282452011925659460768380380209204187203999271512155962370080965393694719958113497886241880405441225284881607787700535172349345077477147874013663258261687524830928960704178586196321991560242883691955775381428739987892878881458919776722460470426574094167430039559878151661357528979588431245218133763237864265268585321441011580100722111935342540879061303914419129796004046379192726175913458411711661394605036777330920035432720741858711051672392381468304923747177819655991082437116913518217168774089998305139536455943841196745281530695347744653617654096094262486799302765552940133063797153857400452082817516732845324095071562015818030162298100531100749124335638714286459569421098306753006459988928432140877821278172176833541362158518724347965305122005341593196607279355115522445572160760748652749012852168535214794184963060161586444379903991188081975152719817450437180895958158065410386386087626256201292487545135961018164008919977303953274313495531925137979073394144610746751376194728848444647857360945921164407219844015065843532161498230741059676476515906863492825363073997749693175189324863049704967594174062782757481770686836549318555919744688456202250832955538302468782365498218556529019553371102947963198578672495843671904016271374199182964757549625015625865409014244214392667977560628354300455942652244874512612389646573299420393827395150155900534938883200000607823704728487100633412252797226660708431275785203710762913836825554020174773731273813673795290844373986558212884552048530575697700624351176767359484310837336010939985035053480573046665688014944567640821209534828035194005808931290322770939776081160084735451969815687655658798452738625871527011699724869340517323207831482714787077607399719595988605855977071336672330684743488308814857670599449150495038342236457550183115698687645175408920158489854900265980078480312444960261320059895879083915806333685181737831890726491466883413493532126176453538774700100253726713198488309712798923249237267976865935980528038437308767379233934872775237394093440732886325912325952213031687564850574848236330382913598728956165222453846187430979028969773029198931662113350118130969896582062823168783121238606976857476227804185622033562642370437930350089820091160674871850381936005222618536372558940288996479426670206713926117277673861761745718245596228392150459128199563265796494262066363245741926832369653428327418821101226424944187674900214438375649867665736665514851803755477119686041607470507409130430580739720154115800636268718494342367543939770747904846488421213234621765774445495967784056121189531842764119990823904348044096920143437306957437022373894486258377516415948268766247764363917406043714788705886158057243372603450890961502207833623087772649325573650384092950145999004782824647757930620047368373895310683878771001289858030296014434172915300213609709490644198837630841656198475520190950830161379149837107527895292641679433538610902320100300029705767534445849197161635012053109249117880540243721906877511626424043584705268174076921509004594401980606974752087631184939697686679347466218003222521066764516945557184247519724032935347813940166313558666706469370479142495358747636389480078422930647764348215716531591976688564238572619161863257760603879875617387692265224131284488491666583911610534109857374578742074463383631867590974637511096780031191739748689219630670391164932867669254993778002667960558143629863740001415537391505145837822912945036246485715041852548990025316067388682568364168620909651662124269674504814671752834803552718019935301744437645800026120232297795580933577920659927059947232059401027292107154249220426806683466727229912969935457310274560700937983447757086627889391375024002379463556403204759071465217442185913244195722963214916258437244308012568059258747364015241979593646093127110449013590017371165979272216380445049611453069580563423731937264615616618074610722046820661634400388004305437434895449211485550895151705115345242996668286484234699837974624312279828638437933514252149799618255022827382779793143664613904703505438744453557305865722943234158008464807607185435717851055070197377187437277210895534923485609218267259184235180148445398420080656389475019591008857188758359772953537603393648492179860065314090126713845358901436652325439283138650959351596107439174051781706058714678617203704508553036639080893103309395224373276134339068355541634106254404229086093837617107054117084261230292116279824870845337500060559248178983741433965679811355071585950726081996058746527400139338774202889405446010917912599268789922630008402133463478013063158653942516371106048610793193849004867153297498341788749666170938252002903089634133328871008223471271412243158443815576458713816049991306311362338085966473146708105803116544964519089280096675597462390791613595407437985426366508190524937241559727768843627157864516449908688622761917114691737888882520786076097928507321561544986812542626473915817044802741236823495438972652111543088443299790388436005247539848438788369518714907799864476377440911316959890173477119507935821296380039556107555349902932428842712979500111918572722743759497014862276930941447734175058504790946780324690824782314762260101594051287141292249549258710942302184007225619960458274204748608346812360572757838244675973300826379106033930019674799210950179010119617908266314684898332976856633562498184171094608802608897888038811268399870330283017145235706366767062250980701574693597478069599362852169146799337052906974125622768680803229008318791899976773876163007244128662418580294811873597959401957042735371361905731018043128809327493883876659691298558194212710233587259983996975629191126835328787816078415261990805213499300050261751219042070316077697724688677654260071175558537579311618644178378076563205583446148489683063062982575808487765134806028933827135312162718203947257381108059404434094703907446582875625522962581681307014656341887538527178559699854585899397461014587633056568286367543142194785907545975009094592559565232689112700749535885733435788345232430921166858316748510905318579909280059705898087707773606966175948287239142802483175317960180499459285635230986745875687931402533595778390135813217281631648569699122798341122022877035207263830177687078679295550465742130458838869049268292775449547691207030789705764881202346517077519566438791464046975605690566224787248946035333692486022406082137181060246617497872679857107248523518093286977016725555988155928985601953553274453615338394227095226185486788466544027242974976871803147691562077874525998241368938864859844395065717721584700617434015187546871614167371902319752031201780546228269780109631326053790274532070871648463011145667249866714498317755349998502486873628139290559637580991505885114292630299389782710402478287802681892201005246206068904407142900102771174814417687548486818575840534060720730388608103018578779835323298716884317040090334401720671245456712351008919368499450806565311881628435537286629281432313011822350876012821727201307526840593311522454169674261846242481552908483774597613139232885330802200564650357984684667773247495422447694533813644200639579539906498529840111470767861476416499450435014650603577971002095680830758686852627963395525439142929311711158512094295878635403718771532380156438713482186888170771504884512766669694885484343297722204598444412444065690125052388449476868435695302098145737398085942456328207086010801214073473073511972365136457414747966297863079962630789053898538854538936626582125301939767859550553988580893536594249913266512897513864013055620893211765274623226562594008717896579270969909998812720903076500872950288498648404399438975466918702034829422628303191727789516167117094544491950146984512467675777265523599095814730951518594311464201864798203831421336801591284896297109646138500639517051123197361196440410352614446737408905134648181637275010680737349151140740809836725351488166699672616722108285042689887584837482683414388146658946884141310535107502368723923339826858079828657812627788552947944512951954478914559848165245289200408674426161270189935958611476209331299014768922604415643511801366231513701909502201912965109369168493467808022306998513138821325811697716125851708144647749156174998573514893728448697018539421270139272409406803155048148490282894497943970142378623312392253041862083357653745514999851046076854805381114224605032125325564090047354655890185009906939306282757183421190947345790580388971571400267083056358357538089608017494897406860253076918566001066905466461098059624135737670808179882932884187744271239899611955258289407155398153748118342298440085739004937258990084737948335471444366536633225249998859984276854974987910734644060210725820859924185174537326687170757183679935529162955880801651906059281069468534530516336837545428566905595008231640009359829065211178684999788664082689664266837261339449849387378628711381885449995130672892962495191898663864660059611676408157473887782877316190392955221702187365183905470951385841146304843736358753912956581707335996766070021253078381612251922084673598635772147087629722551405571434423804781912262907435218728826280355141507077742192382127358514691210833780277580096263119707065561620198625017598034677196394940017510662937855252183136651364868449424814041674684032956703456300919725656810300084166127503865392368535588604460147396956207430498257626509811164546163256719007690271853796994092094187953178602528169249385731211189691455032314522961341637851886474413426048678336459814294365578192503783568175265775872276175105851665237935772924547085662210648116688126184693205537965752884098772214355382174245984388253882763704319469529666430787338967754054405163862993799653771707072416184522831660816798427165164084900867374500807230050714504626074963178222834060403449106325071014315169683420810015419016407544827232466634488194224434031767474393211494812226635782045866695685691551460773011435774932705005237002341622760141978445875961381691425090874824180895563976334547896066524971430303701869826696193219951991986765156387171767591555659759795790226226995668089755187600910883768364532541370777356588999344069050187366622479192253525454765931050587402759619988964316403347575519019755178255965803471820210379657758867774896678201604834898709349009852590830192862336708106760160865999137500192969119133869383070391190479187839106635539185901585546664047219812124886244592950339437226278390695647767700944130611601051619404425173544313513596378422074289560858163984499624525529317136529339513294635624402405729908912398508462839239027457764777755776453247872661592697742472395198459888018571949232156460858068580756911570599198883411007757740359205333706282532073228403017625138633830318893293182788750414032709109254427671796980187053947394114275326470532701233940460143999168739588991937741095749494408796587755665045202830167947269432172040158786071781996701183482915769647879161424388066042193652201064626982603309777737218216480801820882074983496490863398842855376913143575032920284212542055113071869691553742388941525093146591395012913155799615846920243170785931256736688417197779212757641818415517019421969821176754666853026208054032164431470073161649905559617893196312699180484916517060916389832275252934294133477907148886685620490599924759447696327202415934804144962238140069894919476810151260683517771021306161272569168457119647376399101929075962742752234957808175632585622126864605669129173460368719266750296887033827891371976013687203256009572588983015429632441102715897703670268181381311031467214025408809428788160919739934013040000962745039843070311020961513167097621552698619806617992064205038421590982569282661994723102408037853673979576251692642036735154097850553423806016889024701296036175011503306811701046795950986935223734614401064006296863168482675873247905458727490919233829808279030844122818592662806326901062305019008260711364296767731154485051375407843566384949940366356440281951958673221950023294209028612150574691017189994607084255729214992834638460427908557636325002759781083546110057325831706802413225721277374651588382197405036383803725420095261238771760612992624740903622099001443156763515995841750614023992068472217283381693134125236698455374414724951804154185026884752720786270603175019462257129376708025197839316170176280725376083398315184728052980253299183550430204090202239707232463837218755325139899471094937633136526668987354640002962045462600822439319683308433975153092929184248853642251866893259179365162510731872175269404008659526665247348198477115926529763543582969848195192825828382615812993689333712389727122373574964243255848456191058321585505544753196610494542651945469283879069176819719829976831749161447608273055468576736783073086967328301991195106309435562071442013778554346465696762805087185704517596221450782932439890757154646521209507838347295662987457066111180542840497745212064063907595184618715274341010761217731022243176833500135476498571398443690263720580798238368007792680029469153222399088746371875407106545416611565708735383346638375720309135233074174532016997880836288735988651277418463083925169444790587066975139454402190438351418687873373457653751217541049078406251784131328694614978757179901130696465687185742180364028236008131302290636146836409605885498158592009769054508145307421761554004121544367731722020743296098053585456255015593730657564406682096632779978763997481328384273126215813705575805269162254848466485241925051975751122216315452341840957924261970032306193615978553021251504380556426345463789104964393338760481433002279553688087539407413798190638625180389549454288726124858170083985008763232088995031976248817119019365086578492949496127596860157354410876181538830135419667111360719813912646059530181919501283428308197273596740972837273145442079177283562426723906488988654150089604476111531686897777411549923161112651305692737027440515703869233649424920722024632734029701349974818050770862774038779419777236237154828033384112819555062694317745347421876366613811004045637506086097506453520793649434618529120352717739580706329394666388699309863440815834842397620499270065222692165023172634073087009779555493771469312402292312317471332688022568691163259417077158017061283833652936766661577062215099282835995039081893794681749314442835048276213250631872916257193361460747539037735495937780724487237317763417374658438531206387791285487497355630693772238696943295336225895594574082435146494629977617584166030625972403651899178464019704170073393876773318874253635922442826587845705475796048512413492599107418226208710611554862237759688320810311437867430239195378805370972764180202404295566172806844032558137996236431704178873319784732818350443181362484684897816525784307140626959440605384690608450646739289753743964871970660658989647348050632248056973505098640174820298971333466694685188274398289402709823140042842956500562531273002863702948532003500609396075357833287623755759935427845479290615812243741676372202215216157565337849999861420966051794279128002443569277885453879470311898474239873506873317113180659750138466042479445415343337058683948916472479650653464494560285106212059926523314963290433087595184104920874293478409648608849816793310200236387072699405701952442328300134241240793639871179254390690981667748004416318931048842090997963667164108774600953616392859025761270947528194653705903060004662415367332127527430736974337943112003761081059273575319078187290342792100963008743985023439252773934861764644206208244372968759755932658513385818929970591273723481409022762995826216839880747130168825498429410533296928389564612843520238381988679915140902287415806741074083672068300250375847035634886936580594933463153435563369712734616423457007733637068983539860680436217010815689057743505985837281588918669644231289917313048287356240382269278415030955052917553733662296944149140700331727475168049033782600350216402508271869254045852791497704197132340429713643946834740122969265840231707880268572152285352913112439264034299058960803389269462565340173382050059883642723296604815976469886049902292251391838625722638300815119654947863765635940816968798169767918164794990182348428169393598675184292401652685016739975139517535799305059341855326512038007287184648188503044719145869561442246378262198268143944848390548392038024694460139318177873938200768878221741104454027127070482205865362714880713553450362620350930180665749926150439544622574953037282393733613715700886037592608413033647026927960328805793491927579818706423255865781556470428046498991299407473956107461030713264777308047430522647135696573178393658030041316781745598608911782657936656796154001246783542840929682192186235800312696969070446205006615903701980342437524742742113164362219276661841087259563075895055868025903734215537568234139857151128920075118622132274090073753048600467110545733762319545283516291493198762901373711189140255787783076496733262117934779551372071874815161671745180668717414314586607406159831440759164431842352575076420659686321710465142475417817519523965599805521826154933721152594675519233556649309086062507874519623612314187578190791611374830994532277870014934287771382251460510843139224947131531295703663138789487427043836944833297567813484132847111920017026028489724636682863264026182312530166233562381472812008573061599703779776729934846103757559075112597798465097631117450147635406303173797103308537115530027812345042803303489393879690276540147786721245437503859439539607643037801890916312898300523573872739894481286201734435528867279213907751256029797268269440163900416239518662215988561412381279771889708078517604591357512942374258480742063217657209810189445005984494471260499943776420499128595478511154409517642578747077433649808910149363753786409832142800657092181392095215310525750227909630369205657291908088526931572964387384391969918879632352364414337200792740457926708082564932319244399524087554992238672809617786259166148046799093379778236908555154549749706382122521273881226258801601847192380967549072526504452644685001575318411232924926729277338952920555002579803632595237158018976045706179103566701320636266784850765170903236604279108396961862426763771618372324630904701835271076750439889681381652837718694090781541063123030695592321122654541551097348471222213891616029929841653122571477346216468016979835552261285879607836799813653526136741948425665169604943838555375649331546594862170856629570838117855812555515555732823934687882873686001676453151589800626537065717772181060598855796246865800969332318670699612706744597408619898339592089323188006379514322509169029606447097993661103033553674885009411452131599126506659990538531692224801407497638141050281191809708423125378814053022304277787774091491473010601653813678537725138503466499450139629866453754729447689078826123930876286975651177526424541039299543153713202295681376565709524777337229594853751512294864236013897532812548947602040697494373232055170201344273616405200880664710208429721527006791332554295690348367885456430205624328577824504941623338569245312250619722894679393036854924938637363771898191056770259521072264805436765093908438028749448080540595388503226062392514943017657088667301157678822617947465495194321296292605906984205858467831131079116202326205640170856539550233601690124540169695389719320927976740629699814235790664226692058220421694547940330845629106417514633716843022394623406474871010860727836368107931206578678924934177284661772454737491998028040243800556643146786850774544300758612340429147686955460866951165009503808899259861963801484836913041659623399868578578133700482281501877213477017743567134371205909095451451432447785052226320455326389708848103573978673580668268185488937765741044141188036455131054386577986921820748623643854448707918590243872642537709775780901116953619722691341081761290373598691882278269594512727802625939792227399337332319728500492857733153165565683706888857371578193638385068953462783809424409250469254854046096695087969396560812651445919795795085347709353255125029265531055044590913859021846459864974711072696832571867267592841576558928038558478949154889601707458326867468568844604070458822074079268125285987368156288573086780234063041233653411684037250410543192515296363182604490277917552165755837711828457809625391426463322459070323431291699064734338814427503531953457743308981477384158641818297536620188285280218981964828898605764295242076627513461134108686889665321382116265037189490029482113850642386302447839916983355864157990007204686776001059339477235580667944457817446750307323377011372188947758576288733705889487267664361459041081473483518862428617264034771326317328332745555701325466577945957355131105559710070463418811466329087043100050878109869035858437483215725259797906641845456693763630954047470424674545013178620440775143221410254995004523623544681064345631731526729111220740923813897930791755151452301361474039004827817765764626475134025487046154239987307279520532884283018195006787610191139795903904847674231807983440655525848819009521354733290986046552165811488788316248829751339721674448636296942152888348288904399061922218325582482645588637214597182978077752607692424023888527130318159239600360241563256008043240722693778085356937819532687873070702372509757106425159766084157057839903159862689944074714627600025947359651210455725242073686558481391767024550444901401262235195717630873275210787174515235191311681606911794089449465221487575751670248397274176243916928778344161126427452312565428837606400346909094807690412669239091286906704602366624817640804604772240008662390449006465359208508985949437218882866450042687263964455103190711010665759582052054741052335195196638203309563759347593522772759363152028052282815974135973863030984129881903243592488237730307011560162237784627351834230528785902895342175538210106904015860833661554790924834813756293554396842804299751155599374363764177126170551166026671636574159176686311965458053124997556901722696893021676031844071699531737074590822567444303274466648932214429222205067454800435789344788846269686141482816179330160783969947663818430071638927264832222927418695562229169736153456866623315962980796711239431748288133092651947989209669762942214393347921378717589735922876161251609017762970929217751737796535261915383715657829621187596734427574077551018226073642063988841117923220688292556571768253457759323059052038561102032181250615219799858878453346002202797279101853842132650008492204343142129598010867285024806663116894905537158719959797303393409825250917015262338378257491273058557715298273754466501405684134278357651151829531348509818973843096726529041341031748325495555498853167591715619791218982052068589867465136690714765632987855607379489445370040749549916037369013659691269309693205135036040447323428513424570906029723675665040444236280341392052892296127231656042178479461239199176009505292224906567638201147896544620144894416325160644899128877184129440807372422582802473025760784499962330119863702189700940874333649851043876343564607086319790572464214427266778492249331774695673160313194037041286504350425699110977721138880010912615905793978647851314209518470534511665186601539999478601882980488829105434680118456812192142923186506644029352531008496883212557049066804028090862929758736562931236911408151008479991217407938699245942856477668141577544722030802744466799115431287225747265009000332470559380254387756254526749729951434997491610099399323137074859697256185003589261318648905617924893426707271130741373376424960431365882727950294970302633802631281739102748225802603386887973690602116585000624156668975841041003868987541868809203695386869770504965858831201347208825738272928010016730209144346208469688984080124946575454225178561163538700106774948950577608150878849518526938350982295230958001048173245268232303184224100499731313147651003377673616570236411928650447167502303433661821103305510836245837931836747451264491009550337153784285224361010126111480018346060877598566292028633362974829763161351899518260538996487103407656279228877173657919897671011164112893998028053668500907130906411337918990219429908077960069973692613402843081777766214998850020600777800723243905532694600112039324457509230994660173893429770780366817341727473628129505763020152131106075857992267585067389811095911937440525866914294620157655823935340616582533831639245529342821734541887116724065948773458703578662979887707992323103213147387700309536035166435859959642653794107428510742671404790071735036901246113292183018919633286915495016025537163189531455925723789263274433322360126610647713116840938759573068638341653280457720786650630862566204640589260680769540838327779490475277813196543077176839074943651163570449060848263641727284916057820939181149821892871233500653892475184607814114103909174978644461962706423429978009571085310651767057434981858317847139371838065757860979632597096805525444362300748562876908615046277612770472191474034105909123128918527735635607956441491112059439465828456162408875251673303504750522135038581225336773706247825262597676542583264593181991052604733887018711272470027584522540986564004806403897425460353829433374905746404004415765915056578506672505403548498960179179996236809296572610499984398931052312076064578131572457528695610237042190176667157009855805128386957025835317573293792244450081612281744270004373655579678804185076210808474067944576853247242462439429929092807998827110370763601961991433236463880729837841755816750638962251837728259448856299145254921285660432546705534229355188117910246044672182050042530034227399674224614448979099527942759130676384936554706136886736391345331293664776239333299357658713574185000408632544720642769381654776616318671354866360538599922116506280588798937618990310293409698021199390819921426902897004486607134054747340596597352843234223356242313006082467198861941464583409277632685694857201952626969391884303876957731639008307058495280774367942450954442366274981599163057674847818768978958711018322111760883842602603598964524768398650810641969452489030024607247031686214962878677781971436543726158520118946068328219763319181710696713729553274726443579342232965016117898174913514016329922077222261653659101428855661639840717491362686917838316991405125411411783977444582181686929310065857446667874970862169180940035933681597425175422847241077084940767754464725337751107459451371810034024354906137619963872025467252795202890264502522914658306072523145881226162176817463742069007313057383790991183497878730561485039072877642280469554665801065387350297588059400043442534896686993558003992745838436689303368862073783164747021340505196655871707187189524694721337291762671329522870354855620260532353438741156686218471584501316679358844621402095361025038367372488342786278005003500192243258107673577757446352214307717352016518246090061340204169732682337634828325696395599190869226303693770270876805293862943604885826974064052116605646398826751021562008363027333500747795948212934306412438484242326946375448155345055936940646857598294606240252636892977917640869010530696831088363557179835833910923761728342427205250961484628846842278236767090484944960505546998675629648591948891866747851468471776922063234854499830319441334019720983360133000643192572941924772752237149125027797349043429946472883510625511506074133114880851678765217681614505921134356066929854529875913591416601338981019663045401262858819760340998214214901411032516062932210303703350999634538253740278339822103685974021349224040739062432674808279757001879894646754151507850608106095061789642499943156997961370622150604669010100680899308269013852673915529854201079716374745035925926320247311936016846709007727502613275585750189214242143929530894856737310411321137383229199175709895556794250486026489240121896091528168836061973171358549994226404876965330856934101562019437659044480905728893370942246117418178959986134560633896304532048038861554906133621981730816568766614818280388321956168183554706813892460066746561010886534359747213235402562476816411952670543306603945977566777945926544765727169520849292850048553350280401387255189608609233918342247701537241638666350747265959302506920018224803227969213423231201799382409000772935520862352798881475003764899794073681828199021733259604174007295284393189784720246272130524475663804266414095132625403482598108405293572396914541665267408964190880283972278703444927331821661106353099519685367537449783367640244586061473418467981812755276400380618396996377126845308083130682617366087700173965947344729142693344851636315157902195574058759517211721080069462579868873346159177831770377995895480896547611338236742278737706247146518705499051191833771916543585200071875537727563510809264500669399095469568242792084113976630853368124160665540644305103407102160388585575225864809931671084706555226261820739040390480323601636520447895315384190857417451839799470556511708689229426040381370458087207228664885201268318997056426749678287470063262297815182638898969565921465762470495177339146900196625574094883934056360401753302144882465967432346027979535088836895072817720305790745615354193348655371635481660274405074352924509989084904347863104467338809945259239456098853384518291698466149394919432635544862146779252519253440164193882483948733017641982465754627641062278847583351322224334836287712586249142344967018882022474294533417671950115665539781148988547067195730057519093741672383607713120474115110413502657498721839951916605134226328568784930771906998750141313843880626917370654759822082578989499983431775758934620951865788905145703287130661102427384774386487880216603626632335166633851289991745028304322875838662758003989178797719332969086488836014910425436018222158995736669257559520549261314076830812246236956678669101472461191654022531358840086834184267990402149990723013920216494934039429814175603065730538710294306130575746832334578985838486379344350871913260558446744680053826037997638359809473120707153403023129178286351711931068253922783872915789606896591958694012309417082357615844658884471275641113524261116166916890154213562020430321997821097318640541686629710520131507194594436822917305673864077959294271664466277794485578707996811998076643949699426022208654727822999604312637513130851842602092951416554132693250607574234176119884544420095480907040249552146536336354126502081794427968501759356253933241519811308880508253182595041254719234857901190611008886752645704033654443286523248688981662297933229657377380140100294381376613902587593177111105455740019369014471912213444851762682407992757200214558349189889101562752572390953730339191055952179207962008399633452577919480998010964384234248254202458703515009173304839118128541426974828051829474593253328786646271459555054008558242989961333038414104012191463194479245779750752855251129166526823560993726282327117726220200159480150613512977583675774139002889619015295628436551230110958300025941250333045594443257081807569029449519183006489918096855656181739545670445728207035019292179944410253275105415008686031298748386596981835156937640300079846285406498275636120967574005414695739628231112630283869497181599425622905399051155302406005749295142075171811749248615019481091507802831527733700120822687195443209000017146789740268079676322472455079127038355415579078587240668448815126528146939548146523647482998126490957800903143281458745997699182189066060884633418141383616766172137371309026987066346191468424793645363420081814512803387998020150339974998897334025014552136550961715669225254527835466751609571026952838462769618186218934758078670221336231360751441277088835122512556485033670944882395508544875380384890529803043707811355713392615699916670315786156628259662553994862550262668559863411422618008588947110950781743952303128944588913312597134585572311008376153731833123577034790045095002787692465193174437118541369589229240814383139183928860439639718243347727223295227115806784972969634108444350192632867857824210392784747489316862393670676066641187506630562945728656923119854799128663563574338396552583614350188151074636094583041503329501500765809750901778720490871263083134523837205965778235493262667531962323761760326224790743602659524628638779499149911310400929507041204976000359811382519190764027360619587236427991100209345244359073508439671983947568742602519978896841740563061855921140099857236557609090735962501699836173104701462341150525953037747840715811014832514746939409866005251288715049149238077474721619442531965836972217232375949759346638418461450859191231332720983841612868625630838642080446290069567300189229410030723815297370349658003872268872877260413331808152309124341504892374004716248339495200381888144601281823919452509285846272676724396240314223951646132865347532485114380187446608784947801447359718369634220145954572526175089377655574258615155461262181136786532904247290558981010555633045410255955191302780734404650517253328546217491586626602604582796778246337234625765707668949457255729439683589490895519871482623246055564052600779027430949961770209441529585952865785037851038310855888169651059832947586482127841408271932014684137931605741895609711290040084146400269202088503061686815463775266657892332165908158317512059136563737041294993303883814905428727975546340614077848121861359858976911298945951587478671307641288008510248971232902977986024336514587345292006820299038600549808725856915999957864273293277341056256346760917623981965969279233253272262823039675430235789611545080901602401990608264822159275344797306805616514529617033863519454376195660442543574756593348081130989020839123619718506779637997445559615225884421930127321367546804831354216922748083575163978775977608155326193058440026578373925095605254234488639455491073513159056257047640878827250971607936832607129210991071592247365557070906083847823510630824544876118209069141937017357830313206936031670780822042589433824216492927114985213560935635868319498470490123411966320484233126744272925449154429270715939194093669984785878562626811167968076198276051378927431181767511599838171363711437846022114048775517846394821550593080317923890474848971879708380594582347590424802872032595476142498201751113615575013612003401245755698028407919077206467424196329381469127449965925263386367592610734121060317288209288802259694432496821430071300412758598116461666537683515741817495247999764184843996136089215799301786613280063924337064679259578092894028106866640009086350266862219310669656900514270148515978012549498398650213912282533927295318288949567790184976059954807341448193893325612471440178098017647262901439699662958277197897874077195724986609607057883872319750493649684714108101605619652464597323538464524199213403552793191636992884273847999509735579088681400199376394308866948505713759148056056294319055294478526382020168776271443365130907158332676239679685482388630102800680981338847125080964959509714669346231533954165817819505594015300314083709959033147984827071355425602593185096155673976880969164983218880447556982775578641542676156429180588490226420558144596196310916347969382706848581207039828531225964120293186865624888995558691625924891730565659772971233731104444501718685812344007808160377973738048787163300170589238984086139853736373784549927407155106361294683311958434965361919178541317841247636158261325552921823568621145732678730836576632549000929596743408049779779403055000748511382897093817512294211082870955635993662938638708144305849009989177780056711508927252366369521654306917318622207732546216433973607881726784714410985090759980826417239466153535488765205361075590928338423049134239588826751110499501357549550403998151984903986740272653305404327777003254238894971260099211334134935177398965836599127376430137655688599349714244474354657891763387440318937978454174585475082932203321911805447258199584485534991082550600310424372118120933324784044687844125233366870798941977747280919070620339027675960966461726340540235649624789467786027005867965805416862172524894794051780763410955755046892709297133785352315414145822054622961516660164126693864708295419636930175911736708450557976875456717457000677836711842913992118508437912810139933645572222333300434649297676748622473910722386695221901672229334728303225365997121171123382274218193483862039085547955030086127306269241119470779710057615273803577597641570467085340973687222652089543322039901774362840239366651435709280873510928631440506152995453821752427391649577146381089956404461498596673071397492500597004690456591837137717448604423366941122346391801837211672370369842660930716194301087861546875238337770068873227862564901889893440785144938718454917939182593756638059197868966012634465712644680529655773092030135784031480952552156210761992979533379433420582266429789468785996176999502741961846537464358302725667828809223335169414243850863573099542986562898766907309121600568272663189549189483391306361410605312785761089112285564644707587307832638648912331926408236832324429168849720276016051994859776554140270257268306804944132465815670580553674340808201481504146161134255924975791263419629871533007553825463452583104776427032537860402559774899349519033850332079255026194067195253829306264185620284244901175201437521302697135671761008828829131258471178202205433234499051468071470617627701354418607734182188339469765451918187159606373575260531203450171966946488431701118326695419811247687531454842474887532701211529375564597765266915172011413930449870917200836347271998653334799164355051015480989475395654788068377985591070951604012404655871492501996869674834522743218593391036308209483332136327397783148278151914507500710086412032602549466270519289216739278327097677216073034975218502276787416868576944167404580051659925675443914207154332050607655712774179229830973051505799444623352127865842550235051639884155512093856442901420079568784840002490567548303667724380100800672590012857355437747459431186580505313029034727202722081236219929211694845937604146902065411614096593728717679174725970705877032042292772780552454168443109756922866216990572194013871607318521590105661292592196326295105453178745883963402009893845256043408968612087663275922892523998863707572499044348583514460690454403038350710500024089478894941548421547487758822344716626220418667168409025917554153239130059421131229886654917232633755393788787383567262491052139223911944108258151605660942104820238226998622966809526227066705748526174534250232175202623881523415805241045183482393576588066354298385693691013925583467838961122784934507793519625665304478128055548464688066131508383922720513270950994768841956395387610159247157151696700123605323964356206475060263540513339067110176708470678190128593320405238774623603348507990963731708579417995182452575434105237926805900803817387324621012998327862899884302882502109448290111833905408884160562751095586077162290546593964084883131670602448869513800308777178843672456195811771134060385927544725212245566926172995577456985584004001805862700737055142021845879804871545842382992836640127698801586407153330582996382295669176621089895129993574604896271322149345262186272534050015135031039774848432317689023567845789345263042724234563563062867735077893019140780377462142304496332742986595554959601438155727331307321980099145635809301255541669969842554638470344117030567552642639730287271749549672300713039969534556237194208245685431955800906258951071631797773250776381194470593189443404613134315372466683959774520391669123382739707951804651003594507554288953991855780147384413034892978658890163463719803974764837211506216861467233683444070366184823066477868671844926086824287845080065429346842330506112874362331348638444887143815907863584117965557255415238064088949976639559715516560025061200630774887984824333682081075824924548225005686292987333269739228863454740243887430136351744316798501620183484778739471166729685187943942089344219468378960048678006565455611355076975476531636930355885229264932673619391277557712020852551842041268070390765907810368433980347881775835370007954691467336480191171720112622538526015752033909239935747347066129233966593041714975121699526676893977711781225925865587817816552549377756127693953243258541436797484618908255802154947140734818916266134852877169451480328661872556845881675125725759003338104257412717459433252914595183839005310243255137299699088357881813932059736986775990911473377556846498122515125284376565137476609797018312932660918618843264708315217241573955290332299121222931752976667822983809780597638132116830576104131869524550959626332270535885774527114206145333392325416991576695827777310260495407035831694447026627636927681325144699546695532757146254340886400721432472908564995898312389066149536039336202890225388552831237939189098190778179239609775498744671881360360124118335235208104141382632810754816985877030183646865889669094777057574575567689863808916704074178775200526058981427326942601531278066758358070320369890168637001034213763849938339969637797217474106896288702150330355871498044415437431154711831129247607226996843594177681392610085604936876968733605116283510234691673335441754376005857488892798760184184969616001597405914209465788167720730896036418710632788255142194084383444600446619149457119242972842116358033137190413493629777352943009932795943943507281893568906910420738291125540619398390483243509973376310466341532489855468578035429971524898065552362842717412972997236905563148957309048440222965832445813361539674305807601612130009632001562761620770848552782798628581114549556380803573171639502021130000622197462467140082099198367816365361590094778372012962134210366559189130398645651769976528346338578797821707029816063523070543247603444784728848597394074555530824030620414079701241056556967634909151198403405026103534698869600069844600971567661477086281101820518025215259056047939813286565158133681916855636260652626627509803604866467199222458085160580098758345522207006442456753863474088762459196697936838635423002855744717830180132694984723386468740442861623678367051492610394544790405204114062359992784822400809592723539907396414432092392364104411526957059681681408309660155133805958808200175739369870721757770970662278491871407825803988994257159137304000453152948731338636236888038108165690008069729455335713869408922125130516188236682359080222513167121762815765300406805553859596335427848414358682126596627472203355216247072452608944322784743318809287652749284312390708264614719439288668379192790939419577521316570525572111923824386431087238585286852734027968732117993098005793002783767793086270472392403109290823180803774625438905836954194662621298080687896940978969968890002195096845308499109145722284772532659662023989174179677096699654201951783812424171382956394038385695336110913199632397366104135264980468065426618912447265134476218433584725402234637324039150411139680783835299351224522801926584920081106372239273563947383635230414331578021893482991707315586315088664788464957079504415230197489929213689562271940653537608834369089314695597986243502553404645290022397290627496259254255300883018440909189739955097087872450365614069503916058816048737728129643246741949389028250420586378981683465041651092747663157180005359495766032878960693763683409063759997849663098004060745828676752540098432363990555407748267207365723022157107563828497441342224454691671888731612109334641632267907365377767204956688710972916459401369146637536562563055338101585111853930445312487778024382864602207704641161179815947802891349575496947621970462847016093791773729890433091484714217139008332034014383534255440400237624888591738144377954022467635142179409300239382475829831961948751746644144258826231957468650830559613862442057606926704916899061061810213905534526562624842944053302709083780467957356506550767398251541710941612068907967507533650997001896077326650749830957537922281424598137987748334516178023616898895625230331845657187335449708260280378273581370328813350826198870663548953644863186097732024282922802157900254367926091156050992372729017289679762397428607717268410354301900079447996616764291632828889032451853144017314128714425851357734762129913113285683329054485208101412778635028790724415394407696380604694987018305149939063635251127991159444983694601155029352623993424773618266368930333941580554887211709356649218565377625620132233758706243514646413223083733505001587009517673233088864849917550628528242920148347683278251600062575574408184134870203511409307206182115271783343471691119278736026449695665983096480770436470614460587883684923863087615762477658461234859950254440110849026393642912800815889701177194493338452808876058064627247113820826367601577463968909349894508525156973196528427441936469442454051307526568126215505849084530777038918311192040407100315702335189360247449405117419568988570617731371552332086870711118476622461356715787910639792226317956624375093937704554824520303742307629318722973411180147782955538468613512147511025913311326402262742514896089764818837684617910459544598422277153523634419446892484649219379019256756587317906900728818261927948806585979936604475911426517987710774531482357423334351311046191917367783373096310055336296621308729154264834968167939255478891236016136229637021984835602136777894642605461797239369391375982822029266176755459691115514783467717072694417152247203063400644496245686102742865855821568475868241519592023079936477392176388457107008579197391463900352715769947916657572508872691730292200668627918450909293046932830513333548311689846947445315162015510009372735691180060131142863239060514019746157866176917943636737588498705074723646749846122125428276292798172602418741351587358721873812194830016351486649751975638137165813031372265319649257341862773752057502963120649308860116968373173259609735204258883714563249717410843118780282360378696773017357945220525005983848775040864248407073369017924820272874360641856969649761479673165285255759499809136025082961546383463659276109039037016463425702915473209500147137376438580319634900120134726901731816896659902849787403581516137460979673146082791086776677998159887606604405397759975470064533076646187327104415110713209386886029420695667405178193711394707653539592758844103285964846674328032964242743220037915551173391589652435001604856771501094647405923241662855757174040069269665982778074612505126832785480851917135557933832749491459126676344738470379771075111895217538565755125019598018869349513086149144928697594387440666189589596536165860992151677484148385823214633146467764148223579843517216099293084597437096630326866960493989456654103775321593689981356629908884034804498084806365817164504303619570749541669174457739773378708865462754013264929808564450257769609944081609451618119340676999715527909821571060106418015107072282180559742500167356343759363340254421915383263754120827659697894545659241333147940409714893693676806090900311690366162622031173954785686533048474540679802473935500706520041586517703107486027143960727891037876006124773021764806768696681352726468509654639667580261699971203842666085733124982787780833994790980168514737000092379594736646459942564430336373012397230624736863612764417047300845574600645426993679652327592563619436100305483223699774494467467552361135421508122991379123858520660306597098161071636035617851417323868869609449419395964564540095167221236630928828897819573698756186465217479769340147774109634308578849877309966777115813340083552665560650126151524853675870202146949151664266370721510201682408893964127303334164069738435628949972051987929909875606912603905224248745144532194371721618322126844725262041523295864890179587324797050281818749204359460375112248800964515995296732985487805754642285662187143315469718469381447356709046963771514421526964124086564716739527026891408271484562350083642148031670611455725899786299632416364923255856194846371784545117318679125734516163393335770738771145448776256060572401730513839863408401081819293272121636862773746821470046391782224857020186486829454478898922811117669420231619147116310451196120536063350494746278973007098950941534503058153881969572365650589190741897001048638824214862685207631880529937980351794442852541733705192994221818476678184251415239852699127762930605252049856924352305963813885507531194735224584203024584539496105701397868254941379326590032586902170721901701807242603850872936402029232559387565761249957618025844951737148974484575644655453841847137520098890645954331672016796365483840049891629260550040726302294801954046623314873289023533513090928297276650238639632867560662136815819783147668272016056965662999780168301521535654757072334203640204294304234042702094316813522060719173736736311114870366109039718869178302637790335579461002877361513779246076264975949156592948094920374298510336615206667286976478131093567382771961042223264839535103173102559299743738717752910823484364036475280997469284657224619859586544911619693394819489061875044039595346968529357779093925442947589060943765440522521601903625754126043621739505441628654997426407038558171024085843912845812053010606137384003734403471338528545119394953792215905812964638487527447424750766198903912904386863114777731642030884196816621467841115881678486122874091498169236595785647670739687932350191290164189775879002969725567577908644937749622970596348734764422664957208106761663790011409989595497812810889434548126818289716876865795321497733344722431833712408571672723044168763789242128038405285289601354896203381736242638972759034328638373995744721916122554585389731868854896577366212938176086486415773812101725915042958404468300808660034498126685871163209272729526413027988823478379793631571272370714171757230616486844259288168427555358372908660176296855118999429229858826280525260571287880877661126269476710102098697999180206806309137848609258317654524089538607903378161116501906055811507944346239044514889008613508641049563877970533893452467711531812038662945958030993911565778697414764186753763658198124046905216377111625184226761714030301744949052119001755393716762990329737872362597594799999723975140080644655551328368793398109840387729883077310465855239907302250276203109779732443008290656830017425909216521039653083313368188075597569090927045229557622484577057775640727037710131831930340809197417815695297688588718257780325089387541565779504546145402455294024425570943375566855362378236108308378252723838710262533227401406183006252290690554821490036603873438209729405820442336723282660970905622059291976998188889643433351753186807744957020821809497475033720792502465679409303270815913972904447215118853707081171310569649206466557094285796808176920064109633609839767434018488354370488450377205939983726319307137789193833996301175231789287802656323182549436994150808958024025613776072010124101054848268253909801570978145946107556420139469624304486520105193532521660412410273840904420314339715662707179154630336304445519668858507198105798612493842914940864547831534639384088412330094914877102211305719973642571349831064484523564100965703729594507949598836817794148110544345411679359045521360262802097883825167443848241166269044456259913528388851606648879507977417245449430209620328881940507661784346151565673402143292461613515015125647658844087124706128439555041774648090914652345019283620115876288350051436988048740168624887528856006877228762978646812829308640808578728886604399102565317407066487054269325925567270546544908118287374053841267609983228380493142197088360201102499683309991360123037760535654325016616171824549360997183602849527208967447920333525316330611323114651596102090184598433234047121720359446046128796236753888606383281904033565540038458225573482853427945758897805741357221610527786719721669750837170338967259838768996355361464993412182826863575975974158862212432737987076082556517454113031338123775850467617412639947012854460109843200488568077455775269175646731653543774743356316235976578435461686110379123075911173066041335121748047355406381334566298367117682708881130567684190763177671700693645837964189920078128559522589628597338616872524738252437355947839591916161828267521308806791202357396841436368775911272604462169736034717760338786835028362031957801966070655086194785660267754480532109194743090314425384859743192462706982982280516528178628574448496323575632412918123999785779605181869441474324655010202676355216187965948247915545069981266953126730654873534129103109612086740971966146297334226947200424622428953404663297689146591095825174324278383391957708601820347146641328889467328749366840667752712339662314845143420280467947682547133903386682811599105929130550297337923205646579395105295165480182905254822460618447831673296942462192254983129097994671152564705657183683134878259238597114835991894098410293537909877528619379670642592577270259113958556681225993808613409022852042718660869865693918692078498289184721299445120137829696359397346878883232384211940563713570418584740323352670876872632487343152758913009978514051526068303143594767187631365147577619046663809898370947310236814020123124578379503074091745431795314449707836248274573644469551240034369772256138418960611072525238881101998869680166020439825647233400613859665587636630571445081668317878944986018428621061768056973702207075992048470241485284797862096603068833066146782548975524320608012238768138191997600490139528537968652095905181391228178559529474031254859457715057469724086994168481724869311180090040574744191573272614658070608997201837705296357502462199538311183958680056299741968886034061846231803222178289507072508096001135184221543634896717069116201618564159002995355200549033733562427656009881757405517263678570197550935614668151962683737701980369695563132288121723822368990476392831729428455078658643374088240361123617166185339522430111442992361225832467653407080491880698581640185060113745153653856504775744114991930836494407319253386613395009393964645053665586755272849367824666480091536650698722426348335381403714748059370417539116452853570743313377596091073874269359395928754946292088127292453279846241277055858732169534636597888946895847358483349747863107504988472554506731438724862029976247320594390280886031774752435723077553713728727828516671921277487066059016655479356999028740844372646992589836393530199697498299761738199604434987131008842208575498763805063983369962911574461067520299185275643834837065549312100717849171308969846985411375857091635507091001972901041211536332785406301605459847286882204795597939586365233712854865691363066530538709039843982027326558111851912614599268881469192051679361284409442297068204211332567642322236386777077426610203861289284736512811288479849081729797140528798254631467928730749472952772546108373133827634650318450860589118807598130030687933645543710567148482729226103777501933533701623514283414746629147003557229127615731774152130936343529014232241301275000317918333293791802950260946233388036204905904704079180502339647025110156472324701870614609257718968057993453232536079237070142819653980151755533729908043235941596622537393483604776392104821719295418064074190914375131898074908664018559072602636782857828969564660785393670148027330840965431527535495453685641724308241067572986368354652487597081647480695074211297151264697123199036522814642483405141040794150413922973745001116413905735106300095530292081663750015137917312882244042907359188077694024086806193922966342884958652474491951431926630832876518733025238954042528442714196858845972493076351080675652206766362201830389176609701249232619351251662667772237556077339227532061907127364288068855635157295977489710354356014689633799139238838183358994516880424922984348636703332742415453557914059407026502912964865352309618689906637951742460938976785749061319375895270837262872964308408585615864235103999190202878126535619167391583538577606537879206412986340547185209857510768471396173160486969078020044568382127209330406486975019238234324435087892872598773883143129158891683302787547377984300689402374461870991992035463592565767143481344282423975861435089978973736029225524202667055035255560214962968279751881840420911620918042990980483718599356344566606777905512225052785309154241388842357739968212216882520874365011700974642143195613908231579563094761581203249003251325403988839939381622430869632868636683526137337614740857536796012486799125971600348189251488292805834139190669894966438508232475311049686985212448221103841819984385632375696718896686283813273606831084071405822757939528367693119709364995520477954817478918421831344367681148989266592287964941727579760877530809269268591169855868837427920620804281795879226023065821536353057392697568275635985630015240167488109591027726340252067408999441104515824379295049362985854993121224602874165718508848698591882178140289674951398248871395703861372540456078563647119202795767279771973539955533897033280979684087170225618682598474892043333251422624795425333452370868252419957017546019294347118428174834461096638688901537154306153643101280115337926403814815170219750735893694017276053778323172476129020899440624231016227682762706484021116112363144693491292953343192636567581979780570629467364407536803978326073495909850004834542774111842502212280810005859057885362946401889435140966828176061909843879313624471526479193235822822573124376196024232222306637771206913986286600703950325321560151890832799269043464290862982872066336626254436446781367026305945354331727519212399727211500072383103872643664637722231120187140236778493883555587242767187426503927209594440442784508548090550681243878172591282627812488084287947431589896570295621301696416105018237909061328513076771509139466421289439947698193996483563200266038326441076074058775500122219038471697445630670841603509734426199094577813055927081232677498547526186738777060866128976942279184535363472840734128466791874216446371424041533604560645139590417487158151864031616284491499989023960749856383179548395179381533754346902681563654013781755706933029318408029161322784063762982594374526027866660703529795458546794934960120970097967494982300892271541609962237157694328658224043664077902267005802449381611036058182209512779996574432232363913345999685434102783944195962096959643381224375551485196679623645256686438802252608353603027503547488585093644715468975939660308877769934571390192413294979112970710454496749885950784051213294136850830603032972654316776781776921119582304934866255745820715204510777203659787984368982010967225694458220140127397359293314377214453360765156750508058915698193318041616115267006049639303439858656492426522266636608035668187316672449474523755216470303489313537627921648032242841504941676977026631239833237557548412091834506747635425230901650369844937085685417858696788167351300837347197550195814519762573317700953473936602466791060123436939935996259294188307159629612577929884429629504681929617261096018763216628919380101804043733873561430332679070525668514015739609562346767021482999404164344997030501939594866214349883352877541901740420183639015899786731879139984447333759940131718361850289732753185332918642432806809692887394397600944412665587736715410042997238332082116844298096582604726520825420435220013621929330589283718388149463784175221923281883764663950145976612210519748879851566909210954503976582020796110731904267395014921313578112770488297882557239992263110838424190949507035027588325296078033750684687426019997542532705872614748819767136300537574884960196842618447789024132747557769287906194369196669116994504466719676046734352561861380534813157188961179719099524503030701873318899476028694272991219159288291949154038546154820353528938053095871749641022530115955000874800681983954708472895573661902819928469716500194449674569834978707023678268744601415315652921018934704238344556591631160102477825280530266373926269193918200562719135363846625893052863666476901473705739209414836954619889090899523171371945370369958082260155338813504115038129121159015470805042327105798002333300634700935643467766799096095579669217007817690008337166221508670219917310685790941682797971691559704388707198714083309910638539707663972136978852777935476790539057124471036199117532638084160020588464803056276364851938731483009421029444605565635755942357544506669546988223451865208089779994619645558887732202753344008144760202025469759546799708481538384486741899049931387694844647850249625428964065719754052490872927058131886947808321547557699561768193850506265062579131841969936062214362196192469902686693542568273562391158745064299082515202181994239906510664153109763852956145860063992763966353075798545683133723219427316966274103821711638270933510911690698426555968637450352918873983042700607521647529207973484092217311838270034967118019303523354871436212617151331510662419769464407572670085267761359947120826285195500513032795074828750242373745045616609187624549616066010847408715919103448635958990857414703065934747842604771660209720697217577659206931718190684373104647715603776030537742061553602878480189195765016307819772319046490837095114970823637731436096358106895154883825829521399658620627208581774461412414525386691348469523336607686730824982092327720648564372932386307178695873220164609545080313625783605006586473368051561658775061670450376594904469595102804641143894333246936839931318986971605094701635597942533963191787302072815269835059739759040524357074318548329223570852225438782975221129447688033165285273001920247993738797820239685832913401637419408360402974118099791077236475778977203715513124195323667883691766366881496241041550387758552729121842316219540063827273820902913636351662904010002237952768290340900907162572195947536413835374231751020667544188956600565575023914506588533632527386043346946620778045149980030616873512490655620797473102618627971027494431552655193444813601390951148605299922904617557325048489675995414105398365310871893514347272569154267242654948499029572003970594499808276944989358646267025026926321281533598498085056440670507363442050904402091856462567287396302926105127629104392417743665571552757381893413818575105188516326681318881684596155535106718035922466539187691136118714320526243476594407937897583713855017729495334195138357560645762351131535862995570642541557580573013610976237175479828680258893191248718529173716546852934375403195788799026347253917467634107730494605564777752672105394500262858553834195680637799837323457902908424764644856445169026436920773284902231157155256710499316737891196133591586885521323949543083550899052004148109113780828478933153917847283728881220212497167241374863534374895644292756670746247069205384842851801792609652939577424941886056745707167850966478343858013547730183297384416792946973895194230357917381656268713200509621564900026705986918353688241957181508952015607826780643717359981510388484683408043913622089019186725934189661453923231230523864417003051927487379846320819551859714931637340131310189432798589017713813250486218490896758896525907457964392586579573095854158579187769542313363149631369834691224943707119158163718235482270582933489243765484672289093089713021948890370496384933184221125641094281168166247513539141313354103022842394159321350214124190842624879382865437613029073878198214888792105940773139822081897995013681394391173242464322954713402050509046017653712622808137438835176515855826500482401816130557774733208035552221086809885916765409968138855474435740879169151072898804082185562815211416600350455276123195138625082340754346150941772339406816923582361994582919842627649001694873595095519661749520660102750923927367160177425992798411605354567960563041753098843988677130607660686581426337043107369622462980444550277015284575178475408058921569792330121922492266838956120988276036298250800443937543240892893047075952619377904744053770647752186462108470896069282785338479801405643121975954193721933886167048935539185710052556393373597760330790992674137924376704105327506640949421746374956687265968316070787816445397579475470390238981409289895448955061603616607563113535825919849849854763706685904371538047784252726650015015779883722870216916453977825192033993100270264950768957750878784308213465630534737788899762208733292299307053485239211193442507307105321739327865353232690212605382766207730069458518697602295487387171322480015520158600285980139557177703763940515956495106172421556980481040322203129255701198833061986941176180483099691511840580791070340780393250358593844221389057368148705233851846938062055293657370477156008819023481404222599272931965139561057208316962891539835825062270514082526254701498607893029428659330960066670478858792400747578669683696259970511224342652431700348407642411554716621688732972014979879487455598754431795711915045568569222579686718762740961348855093061588770005573357743653364048512883010452820416633010163600150100369809129404126190503735373557615134259173128279960659147591861592418492599927584386540762985143717474378544534389921423739374298765064961526763580533478518037810583409398440519913709718663858699368921393757948279864156752872140229553899901012450804600652237416162649032379616201064893873927239321881640416358356197837471819123530601875106525945906762722905543068344762437848387232475536656944632457667607611116355759009372888954020019731421511798513875613622166509142548697888797863934745013040438319998695644016475283367532518744888905305827236607513070073266338886949158424514161577081335970862159357123464147908990099135947647279545210854141675853266783387424113516650578097946799161975326557275977377777217348652401571739859014013166607682153943359864490187415440789325774900647161040692317744972378279248810355324308229539768945493639717709063876096966552422075950592270316518226806591973006734539375378299899712726011035451514137599579120508179883341140164089924020436176409136464453899889937289791988992854808387332459702798770568883542041341995918558586238555844945026378079338557660181679523689843241929702274938497865815882257949853957733146626585036460620010773073611082600548900457795189653616388495684368224916902927513830559034959790637343234943479237969431073804354111098706983709878237766167651402224263216731764179735279905312817412831384584528472056045141191945577595756022310396872177836202284379254396064559843648085560621856079610907964937940742819624448645207535581523050646386787007713095629321788879458783224743567811071132403348105097567393170665472812736412116472373487261344443466215795358922912599856126364859966829471220909196970149097468699154800867858511263003986216004559020141617268544543462031557859773066935566716187773025915280480417369689389834191629650279529316184999530136844324110500507666987227991853599250438460696325995691548981930785403447270383738450595225449074305639605129615692936282538728005056520295163499811422274147289331456622286159864668063706147459966264410770032185541257088671357798316457618319745743792357272988012198274159309645881992328227887259084911128077838466117952031938001184565950512019574585931736168578617262164159292455267335543590403580700259016237443983710824508313611263348553592371222276660830276028626798044188090744213294716269264194828892952743762883865585040791817586373427043632625114845263739515118317085250490434667578904112503913635433357933591266560406127086034879934417983348679054236095845194167129632046517625694436353623570566722521788163820447627430774052420214096100674361068475584122012158917608209916127399629895650502218221231723992700462177546066759830737217400351461913420684849542714660693442596454238379200199019743123746668619586099974241506727169793524488643861596492009555679785017428220908065602169157184918085969174720516773414698982289701857690905185920354194560080381559064663245575892978294425966788238873502269185730830628986082919981625056109510167623144395490333663670899009968276672443839790101646733381084009075295125966923628333771816527236216492883121219193695048079194453853262180700397378550733148902263737928363002651770713303932826064864208275026597130536559276233060189797582853275575032316333357150853514372765730543573584105493522927865109083780474735980586801732010743452646277207222555640873950047388295779141380520914474672994506770144131549151503289041961359270106452723099084699364945605388221052686542260626441978528005814667346945322780415141178366209883273161561818592350397158360510219400538602019456293426273019507605472834023039256842614648733673817300476131082861128906719090071399581359957439995548726805611669521095996884417801035805340779584129970267375818289302724463713266008213633764959272931928482291853037559372123302988026493528423490118716829549837845274223425102878279708721133222644537568101269132668932044902996610435452522543892618784967281592140839581329773102008128979448687553718316311618877897238060884842883602209036893673778183622168864780546447668053122083325216439152334110142475115991779594682032446623730008744256223747780067024364146532954501374514288718173051811212739160026651041179563181174642667496466507449196525368393023698262471675187246847948498674299896460410985574500671770103402064687521584710635924075214388523444784885202023477863051659523212686391030972350818153160337109185627388327794982552575737000671748451020230865947307087424375699990217457307966053021110947029596108656544126980278871230094187550549137704143814325840697879670959330851723915953943725680334557482478673100344683305166200303658038681241833833634560144542755629675112616657221845793042846184652461705597995605672878741459330428087736940380601958023556028057370127601409812367309917158716951107338482566039213760100183667440814963950916706608492756071893991834969936858443091673759105224831998750008098113735123322556690444802813364839348231953752199906218155333334205417988283207935381887046795682640978668387853060416950664750180389285068382453287538877215894634163191694086288409774659686939118511439559002566176633769055514518763526652035229393524336781860576748192555018979472536860567566114578001229488070786876024801939650687510370202752836843471795639755849632361404318073636619682516105088484091856587930404312371290376116985319754949402399131350776850619387478452736064880783938198247065476674106203581724343087751279353203387038575227430467863544157082923314067323850748869109401584738516825877355057248547098818096172837475402486131606821418343411033037412847827448308578461514396428314524791651664815245657391136066047013509913128108749488110113881829431049441979523815852692773840055823480826850075657519136686134054076170952093939508946943518787949968298800745592136606660804468014505616223220672884907655620737586353236950622078226803988978644389363293407946880153237494505217081489916349473805020914947979027994915211025179327541793053323168887188621379191025984117351229034932790304840870018876343860508453124859611404317726585559452045885535694656616223076404057541664603984137342763019185129187082125760040167656250611885098592185359930591729534155069993861303669577459547538268749301080994350300138420161741612929338955927038181429745950383958748423606886082419478738056733548181128300545727343702219810131115860934395307391034100659965290986598848799966910084188865195901858536259295052627974397367845672127177312622125338313528978196200219755912495051686056646379664902277241809804450888127982014161727873790995433565456197217724845729453648670568563915881975405543139389933908935599998372224424997959297039611079969820026873232235967340719414970556923159548049475724486572172574914506678290949522277694734278803763463833262491016137494193577314022597904064875479242479948904147426771753158706187520318537948637086921587720921601073856706874147585794329937412340399692351324121184984049546186354729264852907055910286171302056238775651086202285127521625375267893833733839548681164667872323190192015028789730593408770689057819007068279118607368340326508919025387278166320639392560142932318900070782738908955579011900653827514561720795490992832252882142108777925836849974523430735985140931001883527514979581634324806237024817046226909272469667942052947242971133859892645214734850375299837648914827007831852463324046286656331663785830724564446485633521826887685856483072583726031837177434225360894792478651259666941245710782586991823211330062190284585009109503446606114998728617517979013468227783545452471324544851818750259280795606388091506388629377060404390721610386329553955242113160662907868138267323882587191497963281955132103718798408355374265421406936252468087478268803008666533109237710668297848822168759141481886352618646760702561273978950873610785924366900893624628876210529579715820775339563320611705781485031728523990186876909040263522896854247779825662678995254607357441273365668892449777920590258933290404774256669689318409477016945757561628640505347280203859466208242939592377849406276260131630781878078157394348109845848856041273644900539385331365438903556863126937949476998033438458075220648537184254256567121388563343028021361620028083778069979057574699697906511377921625128373008652579369307135717526639200716329376531833169400060716792823489196755133661077457064238750709538634510034182614112237479389055111963021573849271581333836384300075438672620903300196768872749948075913621122953267104101921267061823171167503377262798947986054990152724317105000473734306609960493473429761552499924868748220904173405586918063281910583968416478863768218408535234328532548117640514138137797459809216527055377401222682619432723029118189220535620228813760403048253762991860728151730684781473403253086860933167391602886633737672666053344661750905353375130763629451425274953619305044845711809435170117257373883012674884363864133211453065850394625666541600301724695558591667553005302365695412505719419194341732036572250527290307692660562997982408801980647535178322736697108765413485503390714214456329656254739980531297517560963172320616305813358153277871296593199538306516779346295154445448845282866127777125872548391071513549961755692011214591225512280649414925371896095261360459190259891214986156506810286745654217045894756683156545143723237147529103790444671301126955835785476715067775005119326723393641351700885953098575599784604487048171834793216865224238895268899308487554494262745349762333004522278449291382030996638811737287443331149300707294233016955106978347499333436444683613485330222588945865551430197464066480574503255873933579564530649541817468023632244817319495083897983828518974454216106329801264900536642990132779423286354009803691205008985666345568551293962245156369382005489746675714186981703191279280920562308780209938445853061359616240601473266192949493901594426500311739022765132752065743186378098337543421492692544588652645186094117033287333414659915507246261203052401240057103480359989646071139315802502398911095482447229100628666352591538865237794655197453707857005464847831444854849160225769800118885041093256076351694020360635564396967837880469058966404686366908215864625124638273941723927139277241791378687339560478943035895114802954152616511224109152773405561088922406094282279530190656213375423161836711309233002662772113366485801831104907728729062936293838457789228979182808439326181020144121298151576225155593770829634026966450744549073016753235760120381091517862234467619446729372212898816168054075494840845216117718003012621204949288398038610345726252175217663351513615406446447365453194948511984537993900106197494679413445952962524442089408707768899130791981211973210761695240951012959203747965161445421263533519979819486250559479322926307281055589030810600593209678761027250429977315503846386632555874383390562323928383057490617308469919366187071384885346865795492496888395568659603085118923849843185123149190838681388823420906084080307198582500787084265983551182828441729202882551551729188510434011619737167989213151861430332455831653452828706050564838663869220629131011305756132413308550685553824482752973436031741881989149903808548968028757221105826835068856203232180500859955410207388796150290313465151341402397752913237570031986416450581092999969613166928783989873951059128529421996094467905663013445902264458437908374090141893026825010737968454596117061890416730064158231287765696440498276112725419246216728899763422751702977755967100173964217431371541640565863635831165204436999462055780231469568411125896980983091389404426872928485168193251884665997226771580638719195922440874260701186306227614420594073974858507343186860268927562024559767105871904870412126663769731690155663316167630947117353317513426379946632739864912014793789422030087233984810660490350973769235007201074824592566893048915067550041420438335914108920642984562219485692738406747242630087237103576656431023922383106480750401034915984032607205540955543781575922515039569029733353258324033335337823361972491198991458339034007742341207795930870787061803748813043141971286274859946405930365167424165167652162615221222611427534950905035471679494950771470553259199234051484314651157584117867580462717827321033593094355853589836786671288609897178824694803288699921023591717918742080658033030107035322377736723466947277735663805666927511015946756024896897399031252867425657702331875617864360976133726713425690526463327444364248437352008344242800409512790211076942198982005249869944967906727226358290958406573421271120035522408985177321340625401856514870461458531697739477220073900804189541509940703734549975039033557305379405864269367106157652854950589246792730921484090057155907177447772244673318108913678316834129358354329189261276075386944781185457994102334850140888590550502553649880817659057409630144439356450656841038025916119030518693331031388769241323404927112374660757657191959565874280442120179408725974375794914076314558211698955715736130961169577919078201933725595171520973551996521284616395426483348884987869732018436101907201200836989695741653921077713133551275401317017526105074472247581242213767996333771054691981663821080692371209884133805189065995352284743492233869568388964545493835500514657379463201335548999249306555367857476662979908827426228956088245098230811919156448362453367693387081445774005105319387274579835456770349080882495327697837045138869318172617300459102838979162150124537070947125716402472865999818460976901138049421305517359837392252278923480570980220084532329001273472559305687822769530770246056658224741636019871912939911782080360676879490570370948474913757595778788163524832926555220142616447992147850923122835583698597275211901709617756319428694780847401830742341186346536592268964202575131771625838249682918656603516712886134341613587646546056552412003294835959404368596719597770460628512066263989872766936980313183309301362886530953819232055231213483315293674387368496028896017296310778430587000825340968861182591349996133757738720046380106128235907873781474106224377170380371770991930321582375546937455907114523479615529146216427876300215920821145117124929418463843086013576226354292149015724610838346356069257764427838263279315134712429719905069667963143892224199830196609963912297075701423384532187249082304247769037238689927567613234553164319310837652890374411644926858073317870168059826604540323060641582368203254437673022558451143972678608508418873288172300102853898205673968798577178723960692524010917749174869182221706730908314304330334588574786199079222349679645668720172840825667092693722539886294041457762635409389685181380736004032890996433918994112921479324236046514351470194653785110863031503185830008410496874154150216419439759498797846844607431951925099370001662290785603181785758697827296630382935170404157076445701264405489578505681463648254672047643579485053634606742345667229245744250033269890836179686861190335110167505064192136319983556145462881903369543652541800711700002541428859973319848935244402958928743148345200850717623073990109840552337094347785714618688901590529825511706516120004505154276608781892317061540215871882331788354833333291411751559576857326944415031732426451255358561875786113304250832368542344667002363775210744724642489224971554397457189893603198961109301422189719042426674721494503596794770878098469030540626701599086177176402307890471906894976716564225650873487435333510705614850055821270178403901091782391122532748907063446034976354659490354955859246726856934371767801334193366719960172218595654701215595665841730597786674084149296479389997969890890527297930620828024110801604967431906765086007032717707737129613798431945870638438463860139071716947266396546204901502991661341011371723765724946988750380149971172806913356851771493889360325060808586935279734518193028067952698608568308268203564716231692598791915152293385635880743277571846919776174891328844025949033090672396591321271255830757540316280731399266949712564245498965563886143486169941012562130834534085944092525470866880916477543015070771241193628083903024956303962931708418552355905342237866341463896735043339697966762400330440265894713534998683121723722158696480305871876295149750148474972744965880575468323886311450560407284723193441635448164243918873380419859707437330272424189189270580144826449037070785769675833330175586780419861868156162366425821494974447837697936601499973911726814797495036644772869404619606932777216092868157312602024156841855982689119380191747494287433665040569858218353774786807109138657314624513579531270666021765769468443152454792543277258334396964466162298385972532488923102352251051008029875284030203609472394739705470626063344445202783241215657759674464311396540274341264846017625647007363285472037118279019986675903692682819376704403308524359749016086215059956046348218282968976839500005511316696919093494074812447951847283007747508266953867075819777494523901591225947191993593811509077312223212926236482834498738200220140223805293651639805101740607851956403516953470871943564806783997390465398037189778044273358646598276951552151326249221726728216383067186547858937898478188271384110785663058426394512500992007133659305146536991264532801388906994358584409779881250497135708360635103958831591708949747608455275474386678819071006869792193889072618001750484485063772647405165463120110096909102912205151408180564213869239705155507627400429975724655596294201120513275456821864633845823764188619282391183962981482634744111349021297391827541387785661366781902403411826922418492225337557378571111997397423028111374112073625617865828884337262981045368816036334407140437374381797892946368077668054506763479497197908058371768224052984658870112829977329412318864742070266897784289510896858853483031450788270937328582905276307778039720668050114491559585923076262484418589081337632762372851599428582927312455064334862711938276830890815526336836062468851965907282577215899297421059287926171583452549739589655579810171973693270060173081016527962916636302960594869988930385959242482078051539241886510636005243607559633687438414339866860631874110673193462185362077761985322392216161127701902859838953480615972985970411998250970629139801658772723165416944759359980308103487787294658928449568840902007332601695633038825851431460403963377484652096931825486446734423150342093401428895846165175981330449163686858965200707026960687392096997670202814094894622813632795467473908743675525198108655882053826707531947460108808808495287356401755799731359486221173890367378193430319607904188905455395955902357407729834271506490442923009280050379413966359648194411088388976492783831376610483224143431384417483302940579346844029843917295418532394369096326785533683187228458332385875228761969448406930261847036465223539957265217274247711624126250374605649839246096154959675792561489292454873378603007926260837079736359358410836562878280747812876637780117591798313261187846411292279767358464095486719257398299666506667120219909800027032215667639266172146570842129832243639884761676726727411043547927546451002047151792149406230640524604749202249775982340754479402105777560985192935640776263702105877509180884341052432944999993316695722416032613419752026869291364460979836063474045463720536992906604883980884505308810927320685706928589053248305944877485930964551294762473669808491353364057732332080105721755669300557959719762554349834390104505746804426850647515656550361684355855167844647131170205689958893659893100775765304339324512504177115785186335133931902604931033860647082856656456802805027836145052764803358667931327315840543242488163386830721775144880427130644121551677611097518138404536485112469096280267668156561396671728635598786407100808484331290861010693701031118772394565219740240040122672918488924831854303749131522935034423007101541876194032125499897969672748061773835982664020383859019906831138814127334176487161491185407242959720679559245161451321376446380631430375768881241408812618879403595625254005802060921505314514274114729180417381648237242085514069877797580950678136954840876233195384948040383201416798855022118811887301016920652290948509888251855876899625383977166371691245735935139856558410553782926829517026837693423425324864082896388314901437369853940375168452633760560543263146700310302047567201747520287109590347631005951061345256381812445454193349552374873093596804144491003226257391846765014343477565120698274750763118636768091978331658927063594799933570624317537163115432002247682353000640912192885640946980975778551064062451327192941898677996458415048361028301357483572914754334075603308630895421003237138348956442395930725435744794983282377515606338723189722591208836793486731826904650320082600338523030099177273892242866796590013390616018188797241077206050136744494683701224185239892982436601439691037673444389459605359734296300887770127207948722214408322080957262515572847422975417375080494424466710007938326383481310476595978604062242436286484640593150615273084206561735613303072363833946083099079124257011898907250708562416639130200211995344477653254243544926231640824353921611684121009586617561078531653454541874887851869808670110717877060856061147855063638789977065386825255056289875926250869787465126365948854642862661961968867887617688700588820297050758724752936845293183008186621664532011858832529317186128341517721579630165872377881381688048691498869379600171627238396077018336480350591038835342233275358850270596985847337768907251989385210715125411929916690576764288729765489779405392967035604312767569513424956210503411667747636100637121534742487114185433106236020878994512308708428467480107867292224479109927519835540368371459899037688764329049372127980342154754767649583306716004317411109433049603857318841167640789044777582659774373976352953968653197208777476100695017224540993460115930470835397915404465984327407457333497460617371099758463643792379460095447482354274140523171099016252778069904399761298249312220725197414085469513447776682049697233895838146689455846042735785601908303505523657232919621344700181669877847129080063729087860082803481499694040270768863420976329895559407567478793323940812053397380358680538579284616212336590954108854936466836100973877098134581074907036022867287467833662085921897900178361203488295967171989515758280650034151289952367498861521868462143125506080422704477104397716279650809680709285406735808043036723482016144865100466193536694358191157684316141699539982638041137131335271833193908805460048561811416342209467401710703791724095448007624100191595927618859110457357820543529152877674882517397091565276967280131576763896889793414620219304121331468984677856289037974624660052150070539641352652679923882036923025458076998382303550481909360500464193186107887244039360442669903948499271775922834467077906038116719549993688085590628064603350545149545806472964793943596955274669550286477566999168600396837041890111596654509544778791635575823400508241982378358349874178978260996095140140230734585672219152950612845374874511685975873757395948454852405223167068378511233305011574548154821227437028924045477223727719315849583363557920622654802780288273317182943186544342951615311578698119378466914526193596668644519742736163322182276153588828312509378052155044337371996759981027619681600710374903213965981931342304136351643334636491453878034690652352505664103029195634173720079243164321196154950386397155690890825667343923774238749279019499893003080018362161344133429256687666350391742502942749925926198041047843966579856661154187855570907716868180252148928980245254975301138151322956896688643704301598707292032851978455916455769168354247173825954461684624725946712236713271565441389887954917254080160233687826942747605792901424405892312300470528870335866707697397071737940956491385743487506557456526230419740094978251691783647101641972807593328701481091418050574717274335354373260450328621156561265236330504558636703199284093443081301129861085812625603852621374750605924538271601373435085011649525908912660786246357974849981632611326889702569533282258025128677251317601632236205217013060499072996902952724848125597574372426477475052845360737843417875798097398467262249776434383579612902233314083734966530181659896785283563617189872223685665930655018373002034026701670834624899217885868792007621520952207431341067906757700107636831419305208004977711530247081416032976123520761591412674279221555747634223965825275524914612132763013932077912546900518675754130360804421629408389666285420442164277734732351822936898197474966478242969678512950535513610742596970568028740697903853553927709995340186380009753366137843059660499686534667965282820011457494112184456004214368026756438391946355761808658110784013576421225632238185361845180818124697889659887200303152623207982808832836963651900684103903150007160075491941939145357881505489507707121179762742230026097798220314910983721912070125658288650808237380979450910140836972714933540625509593271659393759531561946047296209073889855583788206240172077383654172102461319706760943534713260864569860567927396116182590819223414675138365095480364202535475041191889351914023294824088233282551672152026719052388787262780361585086764321201004148184406658769873380244868079162100485130848300892703109874161361199555262390629212405426030705749952226507761679784065355485227954854452523726201926394956533788565315338003337596453614925331602907593477677173932717574164715096202281584004089587888145488745598057604548456865662266387935936397171210572103505859181491136345299678903015374613258117002582368987468783771329671559697821667183931266032174468379283749340228149116193891420177185605351731600860128850234739994411786028714457556211141318694631714394559238077020237471338057094443617668225296753380751049293711267390059733568142984232175638424954160203366230750932639413724517651778145381507833377690432716930771945582729316600080070839098788603453093546545345195359605113485734231209450375469684366678111182031594628416818733115732653372777551188895730358394259300990588062595244075977630248010068613503186458283553314495482217289225929344646650148298586254868967452777583279962829088587416887282292802711213285741942077406852920850277703760634203071857033567686757844547576007791256716797027289906860165289229511145640085816593870738568801618852572905307449060667255465966756691845060295767213994861596404699890922331810799475917525462005972267488182514330195880002536135830940073860251239453882746273651263468749340408775295575141108030018107837374221252802011229425627230682010318652414747355355480186144846748198765846368587457106439999567166167074544790956743159250181990385971417996528936707802519707534325341669091169894028648146441049365958087757716185832042808281798993866565725175505807561050542973506444822006498729065732341289339828757320086205354118874822157749068936591421819798210225244722257188594555624322657786692509325614765889122006619243621992564260540294591373767780715294415812584791637130980189028524149024886756047245085187060723733473544267283540367391658555119863030140059033417159633326836837488201963219430068502568149333952158472087721988423858069378616048721129575180975757941049513739812374698122233579851371015292755514532724590490043104440287282899613935766542648433775032262214767112705631399898358398158642531472587101169080440056344570703657570625479499559324263410573844049781235157142250094965138065497139595294425340081603650178064621041716826135771988109376263777615013681169172060623981068764595336462204968997422950666915386669027857281845262518890651600067685052594953061436368140909187021043107157358583783206782749436207359668957734763407773732938944149433669757085978000990876967700431343620217121026198318281526575138008018781835672859054273707454778761958366937166357811268442046540239369282194986985923738502970212320999894802905123182326593433489937307416512690150909611501322702047214630880537909963582109886677935589372520736052289671273074143492489823374226171519845290333506475719619528313350933993305252155065929858265361406277189511747908820798648010762775255965199089276936047170504541556062881044873226350099150576728366388234661725017436018301987035801115854432419288988689113143017300171628794577171728910908083914314527237149422200734855311666858188836636853774499292688445163959611753628889012579623021676548992385953508279027631367008917034266554751495189325836239475885739487448049781056059231702701154353163017043358345244280514982759486135943931296113901961737934470652734830550061455708009626193679223925766977259802052477677105399881106772953357380107848262549469624819354527491853052768666622301580694174098128824506781746764439405164752689610029187328292022876838226354160877524674562549989439561889603992123727233742460863881111312268969514017902934013072920987245607703325734369479990064918508068234298548620298532980221939636545305045667623116329363165774159441776283631276890139156077213064753320809599501675471356805701636680222910406397016883760963664240585863180267060618212426725413922467525706766609993493570226297466356804294420345908273159120224092750472379826770598277834694487404777999143970043781216664149070293660791786116052660704497257770594418795377936306184553069379665369973004190909025790764735592752217577368847052893090198429615454537137433071432670008665432786575430078189200003011460155023279973227059630074856083672951809857693433213184580483170351824714145349713868408832666103582304088696568129988175159992761722749294237961801891391808047349201525412374733484717636461573504532239601277321914280295092612604507488641586881768637739834474732500898603917767210733516438458321868748642507175585807891980160640884830609251842247927011117962352883396431739270292611106844711574532122404376228378797581754864171475120124310766480254332649573306911014088558696517293462115589502729461210676953737761599843930940004378774487057588231001116618217502565973667242013934899523920237927412271334940918004335746712370990337207084349859809721761782704627630525059457675464668213178749863178520648652915847121841961800280651319927703528806534250335406814374064676962844572343808128214586798904429772361909536182011467343259834272654969303328083935699593270224337185071163785967339485326904610067725109321995523981157746061283307870331817155035111615812259705549323311524751709437839280565022287385763816987442279926128823663092112361933341264091672643067531381073772598986126082472697997840069197884370008091233313781266158965240724999605164665529879688557533657237450127110921558098389982235559315735373317345267487455355154332749356049377889999849688139835522977491661790626289436491141167708168047191125063196353410473610513265092698373631035051878683129890907953693189674826297782228704355733360962193821204498858573256815965732044974516663123209238529529718040129059712467830908801373882286158817409713212290469472859840803924874579197461381249616119440555379898984556234331688856569431364763079965730411919006841775654465543375540419060412179329840946732827509630705618239857022085670449737136949005717261601539052836742612752011733751758579031785158837048129442598730416468000063256105497689307122000299522517154942797076211604639375956677277360191986408383242754197898461476123159548385467339330788408873929694243229249854592025470367605500189919785312314870438151574976409095750699901788032249508361404639653989467344435809377636017255060936820924723318585169366579082078290208008603679730840523269848565812278973517515549484761147525560227688070881473848045812416429219165176159406749906641455487069050172404293622682369112296978850130178634009905251591861893027160798526164319084703135405485075718585594783486174666368799141469473550049162290544058277449602562564267984863343055247200371364926663272369586082437553982412363430822000734331147537094016905204324481942667492850404630013235394924886255645173755971002764584679809628380505288999672556599838497152885822579399158635905580955275787468330275247057204061161989117991284674254899028464095389975330282410390678988294567990337706562339685583392246078342462171592409804019781214317915927716335085760591316623943414283655629083508751396285399312761750105844930150565093730261781532847043590548435900365571320979987734775348223793547233754645130419142226727399715352674294659853387253223875149522252028624528259936272113062775132453267225207231478764389805825765464031130138759276554564062906349492839437025288578595050377869823477944062552439126112436032727414451346035286693007172331334907448834667735723803132988771314464586971064609224501603626093464280365114915420424073798142354258766382298794492387428603336999798748865042826911928758037613147612821984607868762663561678466965131627162483790656694921043062671781346021571546524958647778689544647278390554064252785632437059985582493038395566911465406805545150543686930113589391727482792767584769382027637180287353888832500470178803510655557791096153830361450341700341820920433559505140318757668691693257195866224935012597494948525189593565589439963256175311579669908985043423969207190743890354856974953329500747000273916881481488537786307494374392863027602337918872565986190107131093474952636357161401080496412632275096993644797907571634657757374173300408584645092867264969143614215549710986016450135146515240296135256339256317945685435381256004449192424484667775019413588632148328723781877509608838888950070532660682196114218001969498531989422720066363408324568427027923446226535437695360029878980903431445160499760541630834028445824870244565453768257734186381087405527645145393246156124191176689314906849185539512396728737975436777687471359824541271112973693627276115456273009936484358356344205737987961628713094428197029376531756900816249558990129487714783997026125289067608920667124781856368766980147505630753759724310307443698240636035338824408335571799486622169473317707549392842215632016000345147799559435365842962789418954738489217497561239079145751044269886233916418431325328710834794665206146711361083462037954773648761514004484164030177736743068914421121221426954585664783582932587674097221366048614165070159817716622142473141730671666235812263937601954202607379143881569055712992416795914855668475449378561927625857265705006444365255241972739779606345214590324569580641178559226781020632967360935018542504184540861781734709619673323728098752910857220946094303347348426380555905880991320919007621239043051115087207550734869372915100518611288689664936211656128098899857395504559534130945515894587062493604254863728754241429634243174950562916278014204636678944993658238779051562582378295303724030473547634922073625698364837655055189450021467622155606428975733250476989237152912307002728535578131463717222682052669701881273262754112758098333948551293809314375357302864826505531791500608836912382776782629660041072934577154341798304056842164330695962468486124759068585059075578044459594838680888064980081667105529082825640338948437576863724366277951589050888555427485313883194281227398077755100125362379453688621744035533811734057022125652891619030445219525468446870137313742463410277755586249549639894627410240063556361349940513525444600291706283672474857825096099956911167453755290780023571470604298837689224408146505507585324459057449274891328803038573863523458699712904358306150233042842595117537857149012265720133071090143767712421850778986126532150355975756920003390380597374641941729419780029703780828159774174104906143227964868845759282386931417337178188994682685922828856995979689027494239934393686128700995506766760215342020813745223454682691296782583093981316957541290085583240075780926391349747456341721993153940668335978808195072455851263508993701735441178840990239815783831755171416497944073807988428495616372580113467602175870776498676067393265631363386282880174598342933818649716448899206692384221491820648812856080040453396177441383498363646305799688786551200486255005757502996685940468133055581845994449071669468394183792750825704833198774811859734807194622574926690986928109541645575098983260168793840910562154085635910937210287670169869457768483917451309804599038896728100735604773067846001246911933420039635872485552581395566045485907742471240485942211834877299725448697941590456981430314925342852800805520385343776678216225847432414291184875762902343401693461809228454947281707835523048995448417494074091609084349227708539065272807566737638248868009145672214570312455430647637550774137413122383685178485510129802040464726409227978594095170734195851173082531065643030384487476523125225678517274214387588738297605774203575064242780760966650846966168034279232961230069662254287536384327532591639746606996277564034420540357745192409623190283304389309212542099910287443384369948944654799644268306655572994710028376399416703885634436032948524347348843947658281872386988200669742945762068573604152282564942638630034903180566324100548465437564284702041513282264269918345205581829601645984624272942557791938164994375341063014802507554619179161586684853370425993270243564281476841910743773501499934331402513792214961884522099767924160307573348301760076563831769099176788332458699177276889630443754037514861053963371891062094606154552637674683832712329507111667353511446261343135993477683401459323791540890408572387067937118950875830882456097251501949096232899963436887538302826292406916400156999886972972583491644576428542756761028848390436531915462498085750702758588969594415913421705776896056653768285772374680396953045849197755402832758544429024144144212269733043860723600669527530139440352354888684659576126960589051911574258909594874248920012129091792900411728606685911897072439364416223405185536378225683699762120203009073424375579499817206661650514087711467356692515174189640640373183776040693979180040410846027168686456401426723245634307191147070724187543924479972406882621857752654372658381306590129577325943098215547931318809244420722903112424812001663418552867908035873308853846427005764547275157152178116832018198938001253442864103184798443322739936228888088916577413767525407683783041518834677979113678729882672344659842292185436795309253916337989262000518466990416296531261010208174247267218994995316853393672890211904469036838575858896526823837143443999738267361037705847178786907652894645846451284154737350248103383817196899442703345071882496932679116852106322469036987910796616383199152118245492132142293364913106302772346482492043327660017106578304360807759116504454177522741575756144524737368497001866857168485255786228784069756849188322225713713865907347356274552684295321468576036963775027342527434293657668597742295135941951911664243282929172796875193720327895122842766785637511140578153901113248944079895794746553137488487209223520347209753622832521238269010279648905640930521310311950749182154505450564362655087252971913846057416525298426754184109111398838070015157039245008434605127720240813766302035675573675574523870263291964114335048004274887395642376468288551917557451191244043485684905982693190091818793229448620465795016115627030575050294409162717760518810876998916842618339564739772798753858919411557289942568407478806904864367330218519481065439171491929165117435346000764278606472485014993940952444046929636309279318515187436074208172024195398911288975670996831433179120984476190043814416607777815955883581143509572696825152206291464870403993499779662443232049238296689225618338796877656701351534017362084447138850306263842809512947288011805605321838643732732487445367879504342281650226778975126025585659236583822876647865684316951818733257777992335764654941191059668772938473309558408563691384371555827771574526892992523603918865702872775724361619002437448539574338132323987235106352306397936031789890906110146408780657387368414759891369987923437922621383386000347620961031242191026671832021986867667735838211995068583449353634911639143680615534596269503657465208724013055984322638913234285324593395534471678655305689021250558402389782327239736816379072752919043215888940934181225221210608699521317199131154932908543805156416965867221165676611757507836724439400019584312621335326031684578890518891909176998834865833730304073047513374728857150977926248464951295689659057850739459302812044760011719825981530280434873401656892271860775753624581610018329811085259131354113611194832898401906738513709610910744508155132856642878150303478475226990234528869614284330818586132307763726044145924145956639364936490384301272489550988239711311945406521117281987037854032106842731508417239201799880920836096309233349287076336368571552445128400333108617308779984941937252071281206577522530723674947564748668351136027137356700224349107874915355507172963585307235528094853191655286202302799307397708931933182819450196698792461619624307635216692479582853830843091336345932418691811737077965973929255253430633146290299067911625160007311524925511480094480182755143962402292819291497104690455497000901880858668219167941426599771017828188398452460800252833966811279963875803011780123740128302451545362885071564983318800925824764300837272080284009784756476451709878568194176793075465704557603650465205881181615542568128021282308294097661763530239554807776160718310656265298873697818477168917571057279684025132446017511095401998074309880363419720536105234712591882800230195473387849181791250254159450098386556572817634746447238008201889249152380195798924473751138322183675266709416509715250068509722619658422073947188211595053629585323738623123350587919441190077199196188814897446722143336219583424163949502098304162242232655422340124205904491352769977320560853490874982449963962822425385583767668783994063601151394958635781842240526746332571487656119706327139642246266006128551920718162782269829594185313124536324475202527138106234111185387603999293907061289626632479657976838194595162292927675803245127340071001311653002137479040573539137353786334954541564333587995575234485853000280426775325244379425536636258751534772589422998208778606976922371404334304096046059997381060108755363970181787936196136154989734218630391019616124041481782026534447651841142906789757749122202966621280050014125224293543030789092501496190034550227920653132764369788491617334145830403745268339326856638136448985735323487459152544527377535277882087669499246288143906724265677968913710574201469044712164041480207249746818293018256347235328038607289849625110579875596724288465582672273032863296232763678930575348575023716482697572461744280926158128605966877906086862303738801264096402761027839444654699782380916316137925342060559093603563634347720276374180009017169534341348166147479850706022273524859201043888303434675179751574563130539764422397686017216350190549449264749085696490314901388740332824446081414067196540574201866650929048379613208957497942322742056747357942954303627863696902796490045450296541758201457729709183114517903432507066742634105058215333583247539676885307260020303806285619351362499199221984839449022632824474297366006455525529994154294563929935039028781410409627193206253421968675653590753136730331978588127886477231830040951067341497123739235032280042980701055221744688771069850172162829794451540000736636721603957510768718381553272464614729823507609111988290289805009335598485697138068088150930774994342386560239244378970240195962847994223509551332000157368722467831235735705743779216082439315085040216854026802507831827276364012778661580015306752191457612634021871018168639956158386091785771041614378916102731818582088533500813761644926315708897770231981348685699862745235120562380094570437633301170741362707700764661430645324573218714187626795571495412572667343936382699260284848189638225029553725980374173753841419175226880513171132123026507426620514886779406368873530155521750921994083757485951007921782915795157686526394915462419290207174754932546655766618181165353814565164873709998158603883698400504213189891866549579287352484132191555416297284110062076482942445424282007080560198356158826729052313394651322756313687668211741683011465802798047757983030040525057243561389223980624264205414276866375201937136059277299060599426205387907863544202753636857712160557970488838891412821475849559900752961854871615681535514081101831546342633084312979718896186150481112896852609664360180069702112627075423429017774948445139415125151539469028570321030050803862096145729281743778703834789758011281135313116274144937405195153063467914409991999430550395374382260716586154656136971433880654105045572339952829437928547299000624932703072480801980008164535456498428409848748188433182218046976467685292889798652891820647818723288524310665065746546650923962238196582198542008447584626861525554141510086444794768420472802919839677315891562623182381192762943854364628258943282780980033047264366168442116827523423158188158315088292861764486083066061623964459688332846034513736587417837051639288820164520549618863194609054057799936438371398782374382164023632417328317576306515406042822627815467151142431163242660213051726151186682651402450911696547798913519870249687490072651081048258200113673920279303480274189380138695019062510618174808868056779201246957510143992469277950156584303138587553610369529128294363276817311084912912798858405727754588150475804065167794072131188276095171674585906228674297823591855916614169704669952403536599462807308414512983629538973169373202204710632459828081214029541824188308646909357979020793313743175325793863382267939391248033662727701173003808104889659685280681348988579584681245041131430163936582333610574292384743187286230905076962574313122554405064166475480656655134004460603736007733729638934444660702451168820367784194490220820290161458231962924827406158514194022273752821707698402652725527037644222002487721758972462916985972366607472239041425427161280252074608944047468811341271544361849670124369357660162749427638347845242154452045282501811974260512073165992215685775108458494815579438314623580923969702124087471053141926278047563978324412276387877331098158595112545068614807604204418914182945775611864052550955048366733298064075369569771439266668603699447469034037794086985583499655923661883034370605464533008572024585151951463543555394771039430688074853562725308122893618933309990938368894011266677633750024303699700657313925715488281563165502888833351782541816719258940538784934721320694779567560778453409089148519877449738138294717451792289210905543400596375747960574619195053144374674851064233573573431294323444412188699544646363556354699732208018245047642410535152117633480329469645847454748571813398836792776628028185242588712457468153565416377133089755127442774630774618313467831859714491020187963191117918650824902091906777214842861479506553394162776739753019571884416218918953070036734019435042103484783313816121612419575027052456340088470900521452456564073353019908912341237978498901016022031306633574541426405281187771000493852547010243703911765063982741160997685004864551156287294346168288319554911944215368202223931866048335313446657768958120452874874823043275928268457699751724211972530949598095021169955960256632130056561674901415321884894011817787545202049355070063415651116274688560060544986865081987735578944966384787856220929014619553634965484402918679043355816664020236500111660716241444284234771954567930194691049060370812708060325010624605261893616116786732720107713728950643757272222569215170735841971208053921122101946421148827560191529556475444050622354915599376504996991786971024292232455099072710710079303722616450182703702442129302767894124799769075027134243971253797333441679251558880232823987520816618339209714284615360753655994040727025733323376836634844081068047750263184871391181049208019235375127418796429578342600373303379780236768225333452364252353161174201188768658252099821235953104994820435823709730752253061004218557746429079100480590447529048002278036636160346024262027125091182628327943009532807015421765172748195257673092322566452996120613259933106481036899609184314556057797486404166385138541562960585227081469060015601967990283284157839494530940065464046636627282768192709018442892462662823636895327993617854381155586193996412497032966882829651312547932715436178427984862401847062917328879883323494900212248134629692763998186500610844788250887239818211430888451979725924823412220905571912038199071385524624688027834502958153982116401312653313050409132329255757425850051661005734806866517932829207835074048334537071245922424622710873953564078348464869497153058113146195465962474283784284912668830185289423335590383463417346131705169796443228132058676076339909435068486973199199225937081398782334111635830822694173121623907091743646339711569134456354634916877593024657710016765765236862674251900689013414579663586296796745558262980402793483994368916268741889701863724474448049833659642175072243654397617060733341789863240867837672709499814491634242233650288032122412452962463581033227752230158564535634029630649567331457987611108277039374928926106773257697802938944377972958972408543873663163811868090394786493556179598016995615884535448576122938800007121753634864444871499142530076102547312031265926445744358315775239611065922114658643183005325851013960583818792851972953852074277105250392400266130531109682346558704996388842452640427962358852121700024259555806396737241613784017286606937980337658722289581588374882967900562482713466815073006256332013902700127172451336975670984090334918472190910617214570977152432373490175451695416223295278177951098071312704944046270842887374774163451920598618796543646248039393732400746358979291491217235017595478036459238366663437401006169177663648254536732186521165670036977997179516322274281194914230525072919551938934879073428921221328548069259074989196934514030141820657068448629582615842318755246517724239585146316055826897013013374557340123898053608210406691081796283215480021234916691807425626004276237537296269099328369410281682286642226938791456974052360068088021149318405253314959496589945899615123298631358863889126141974454477102033435996559488185537546122090575211634611305974697903106015549792918378652885463291238047323170673661268338537777402497612858387952971163003250612112033465985451187230179525311999842364644205797682151221788628005109405123412324552842668189646809658207029385898256548747341675050003195816523330423395520863873970661719120440891780419693867547753867486690298400662925836040557082027793930253588195196182390546434454177219490574212762453854811763971854491069721473967889219637182673883661614859672493471494161468192763141467744489145020592517887068236748286923578357897875600022388659170490151599954405131774728055662935781385531134728545556309461974745721563368731523282143111602428634119807392827226931945940993277852253241085745470532279458103073827214914157913626369032018282128256678434257347390539771774523357666996233832172683319165012310101943382900787760608799893465885521049736579958123334473386519647557688562864144131630153092851909573835960667020421179327317947165049264575158448290008761933625715132072702875182950198550610541726842512351252334694866569146945129970054652919874490205851569106585200503930640380430750501089329661087039287934241837719217971670736822861115244367302375348044028262643317949207939526330244773203940910419941775162601152065562520470453027060605406127224448396411542280712381040121764566268700062080489251242440374626242408266261771481483413291730687940607127186612023918804559671894722581215111803229653206219206670325882023468318108957078342590746919596770136844557978437179450499944629867416174973573910042602141030430911477730525690177217061337426576538672078638514375915263742688924279871151354921877494212010372211584213317472538604310566654821787115026390574362162869039852798934573200915165187420033466837101748924302303526710383994904067423467289728752665640118669626168996093515527467052698305851673118722554626188957316368398266331756023822594714681956122773960933351457088214348996472786010286153938202090047729897357866172981890475925362847764956139417887534324756614713018558146240704069714175966359770421333018466767451886239403118220889292807810053353930892746404377605512990408509691273211165186696648522384717391083572759204539877028774313574737098258247470638791818450675374182770353512078213331664966707512767513400626572964176874146980652007229496188977971749036955993085909527923503229381374957638091769818430013795876416171629490643488115833400453585885567947063688114586986969037317555797350923363101266081594840808449139931283737370979243977079869410064432506888645094045967584357935486744284144866368936806131236365862850643423263363113385013636920511950686381080815921444953367347872149121482974087557516204394565927059956888358948202547105212252194536650338494408134226670848739687939682072337257148482931763795664831329913718552258960584957118059046502728679631120213235306001215685877441993633922971478047004980002474195535285759077067348406332244053369837880463103290579634120288196402394825250088253224139093537474043809097120382937594597060667896262021788465126512281593373436763332464126483094204690973017896662027742752569264576309742104982270805839926203150916469874774707005681058816207850965517153989992347784057039011880883529265204375885371631184568494627223373288864076689626019292488724614963152999462575406730908574730008736054941393311577396680819041155338037845036751112896359974489082995160165431213054140011902631953510370401342261424631761278823011675256279701185670838352872609087670665654955850454034943768003051433773821728738371113843124518935690029912171715445366302295629630072596164860122974454117225848229341842842091798852988427018081617757624623988557434402059878476254720946980079924462180316342138956108775754937953576755726782963205709865819665835324295119684356300044010093452580492610650955038129410202892700434495043091141474086291791850001859852279027580236974940758458399220429012099862272821765674723151084499762499049277033834912274785758195422100569643765366162036853565516260732289765430556098381120552046809934343421426165668385277654206060319205955979136991244175339431803207241031635917135347360159157716441752670125169403663348945508136648120044791709789801072545721923448660160812858767584747393955581743158099009121226324106168396578536125021917627743059596467272579751919161667628837596420640309070691108843175294054356179006427805028385132177329352294485593484701720571154754314966904743271359302318802027069267385155050326342276374078715985093339559629810755608514888473641258145250478250098431939296675501229469456333689415464038062338439848114964571724105465676420039761275530846174541374647284747137872303372307500834572408595007832806281177246965938045672934372970923359086013604103415471718270915307138806646755437408515298933400373184497354827546079896835250186952484946294761276078900668386995917369487252133488297068486006967900899508073417978779627607719556785747640315808542285349855082981252647253645769730497403524012217856381488689853969572006735296413409176295666537958781189136881732572824138577744098031340912855256063469968722383528453115688214015268137991502460724587876718450171143230967438231765911417364756906575680889283875869157384069593057302109536188527075965074350837301917226923149154658603768410422998089363030965911961562045700778835982838136116325960198525565339741897955950358339523065321802632759389942569787083475197122857325916306520775265636323211949280094589497793115855737722722039488807276332669419290965991754761961234788138656123962607032283075666950026693825255435268291798162025489851732152954373446212375447917400219088804377308052324475085555704197473571059668157408066379106849068443210608873723086436621821296506466363466616689488786115221630116014288751950607054020683369351511126741179141920371198849367784171032940718236104865561691796313363937815180368861768786046204728620453114260924121389850651277472884383400369101343357026466534183594336765943215518792012830772249248445902764688201298759500602840181363504687528109185373116766182226964619556937528574099767305680156853747066023653402396195103620734468768901536823993041652361038884884438477142812895325192396537555236613045311662659202101084254282071189584621291711558212343920720309317854307043769420626294386255251397141028735399979302575724727404290707211181628225434720607313752450883365059088288039614207436373726608797374989195988027432188543795780140053258138455014312957977948379055164296504703794006820744149146445760577322232287787119551473566010961538866933007932015955620241968700734690978824743595548624255788641911577956695414167271341176097007468742280312333836725188394834681638043729739543015109630673520573879148735112839282617521924474870932423033174913202394575765207569605989610302077645828746069897160566279071194253082423683915728579363711478356055383149507506917419597550300397783844563886975763491953423638559833303274111417070827787739528276446226475185026430935054525215508208137756177420054637773547062416710393405536557533975516483036902742378084677182705926525735893763275063911918127230446971455166375473874885680880305685615107095662321545019264679894335222792646531880179323216111122627086728875468630950271188718665459983771802546730013028545204557258502603149975521046329375305739136278812531193466473787424075134969723274704611172564521357992342719147034895331869185102498265419307045061599123274399483596181833063013826658209538971734594027438615529163773571507065066608529644444228637215425264720138651885933701805358175709689638865444655599301972823461806341538398151703543892396643677964932639437869577211004385409165601207214479552568100904086883661873497594490221272621035659905241870724691034666779893258556321978028912292441002054839157328781747497552422740721429645007836906343258990648229592646361905648153620969347518223495997753857366917569077736274716398213044589674085297829428353385247510291707086903395019160575264845250273556985215974690064096725220666651803684828955234111021975348461855055890995032392849488851338824630132264139993122178710039948591224293667443813912270302483356311137417899022044129479677255388665511817390027930480591306313156752656078926519892030432912906145725491530125315591871805109852395057208474460650547254402734046722870671264111045794398168085565459342519443842322116996421869981459539975584023879076403665280070419766191109092173991899276832883957168934442001194671892888301493377244622278038353480791249338007237219153986099369850759874485431953542340116263424512591167827327091944678089309137591405788594251954336943232953474793947650640271584045273179586578385745407144780160078260416188517556614204889771829170836926506085405744380692334818402795719962894771750494288029689828378380437511289830266323851869879515464661859345115923432132730698189718292834729236389350363486999409012526789376992608279261876385697095437189907587230975132832772732713765904741524398337097130646728478724638148828426013064131841184535244360612709598690420624478546137714422080977018295733831508083683240233175426695253210609296543511423486186519798445632502100899963952469958223521198315315983595291670247730347783441698410383983849261080768121086817395669807529658474294126380337367924893531165036839143076503578995369259027471560969287688968344044469857467368911045322478475828597051724379818961361860317046138975244538987963898658825793069160100572342411594149961676415820227815467426030828646314324387708056916783346175622046106433301341479677773455380612077347322113390335766288315311916720461276391715931346067371356650375789849665221377215582959366939679199361334908381783228990266003388141578711464786349960980387333610162161852534020153155356177665232345597583235669064378985200975779313518961965195370339862728696955988143899113381906284582335153757283432087788225525614522316172374286983314580768167381484640209625957344755936155635664433038709949655518348000884883381652551282899594962977177120039048123589916405762007321178278769686814174516649443355762526558469495936521028682359235389738246367330036491332733782471224374523847319746267087220659207309496810312016868033630111244485047028575589855817861072244475174692721986400857307788207715708614860463157574020931364353311757317909811445816687914794683470909907374635756467061161980302678668815897467658010449010182835313100728963203221139091890985884082465592685269972932808447825551471760089782649654811565608324419692999429233358820654590195015809660696629981638286832699834343820889066599955409458198896726177131452241479939684251584801470372694566703156076006160452791675499529708499488386727603681159437038567716920864702603857796312760931566756522955453832716583406655983938386071185339546447363276291066952787596618802698167538803195298291263902130539578185379300313158712262185856083946693989508583528396504500062094329047666362597994419774352023326964736960092915464554561470659214302605680443605581880049345654728511748714154692469613119499677068048833564331657812081977820568915022236350807091179558681679842027755802620262587280452845577692699227111184950952356832453642175603158718163519057391604375558173761922206504509686804772623126533493687748562086961026328592614584567255442160663275029813438168988113114002764504610728090103189285897935838044177513725802386678065104822596421595622843658750615199017106535247032068829984536050031790045287651285576741859802162016181785729612825349974288308946454830967840283625854609984821270904344364348049096288814677768168090500101046294985221231236599296860589846965604863419277796066431381372315640851219004844470093240482260667156474959873851010813175915310431718887304966130901433314851607367004627077764039105688790901295067796347763631502164377978827595185416679419677787331149554257034510919762151610683297162198347405204178386640798713608036901553737016865334880341447258598954400689494983930754062895684870298902782231043178695353852403740328365021847765859983850328566682083893827728144270771696685085617428060921818208174023884881897363406749611159487600295378831318247175668997581447265729387524763491495605969545938678690814607968368303433042685779614248183223016225173301881026025159945024358639618839340908175651542985783704918937916359070896934858005928854709248086556798151044173143502623439200983455448875236475424034873803274785022281906193393360025714941516743919144016153527288633749353100109356354146140315984913624471595992290720121843849813829542417790442067438403702769875747291348928539911648516493449948329655401206784309997852499717785797769802250069215048597277579363835561502118444372626001535419739617876476109935953868206251961278470922814276421287612948171880745416597846380025340527349924618831675522157461004235334532375480375907502871433787164340130002157000439979421764249067643131303654759391067947006341006458583405765008034729247378275658498367413178325898716186283782781765887188732818464713441182216899269935216357645631649099992616946051633872554283185935828004415657391409106413030271175877878251858693144743294070616873165668733666153362935401042847922045540237447170502157329001183465619456455383343612025626106633886812736859473675351632398028872924820521179190484926942512192491367467300992730175294154098267123826371859250906127374193240334864521653267214683919504094887499267051638006766689383992791470147627173102283954294919632936500905822552740140437790794881483791698403339145580227195103856740132727097807803742123913343227802405582274149446976368849217629438176600348183412582496655020315437315904597977419223124643374332983109221186955966017237533961622993875605149582173437317114763357932921183503192588872541958793016108807048147095095760621759793465332688443018327803201026249761316993665113489209912457913348410580039859909653432006173427321376625899060163498988762060742285132876936999114073213417658350114102940744418034002246084424748075380163708330519857577819696950237702266724102883870739478180542745979341664121718514811367874555078625988777802774459870765055625153823390896110336586885034721742832623494002622093983136042163274558618214846975965716612472445167449553693024013306517634838348291108940535996484818918947921264505675216336212268500636714434978840014734629192492085238136296346788110952303351250128128838428274188807323458059400394098538324142075032997665020636981831120678272847710806583130656541260827360992297030604409681289631489723049051519778561934138409594049199726958581761128930583157203965986536136515785050677852168462212111615358453983750952350822932028922559622099112271779677965583724438955925408584543259416401977246888496296677280370714484027516323246822705384320611050771490708685816429206796716899095444020065266398325828790042211204788755974148540901883115865130308183833494554428348545233775500860836637550361842714513712431120291632688735420173519206198191491957373919946443451802780030115449838313764909566276815145106828091461080336095194140428382123820137259117925102136453925463708736459336571587563254826896893386036614451067473474397848402585090819708922392340724927080067015861646742534784624265758732477912498130951684040330163106431733113954769836434954051456171831488291158045790918457926966238761209863029316214878902701623714955056641403801594068771468336758042140293198328436112379021454504234142091902480758611293352094335902644385397768242419466146478978373721376517122540555521489448834599552047605323503295586130908476356895645513941315719615462882496329570276916005374315100868849501092964935723383380049526931038954267663753850723408844804988629619514257600393443241572467334701088393304171838755441733411060729171970604212263623154811658424394446673169779589793052261606923107296993266187507107826644346020530026331869406933895762898352523790703505323059084703320003905792288196923987649818376432432200106942547292033736031281304502356721396830162849132520714124810114465125377869167661283060664450824910949367583783000708282936490704640129264811378876373790219486149160725802987997514499560225371030190219330160420910017995313453887939622693717554719631180664832390724902268938575991972117164265642596956156121670904779655403930914582196204793378101785638089042256716532913489472187173685974459510782139740576742426621929834737635523732166268672268513948886356225516935692859220367395426320590141951681204806176766011484260606011409367925408523670043090371825863202076580180481413938845308246746679311852349780822605688144382821987425600036697499051582997354680989735630399746267683726836536471051137136261827045746218302330587068253613070674843566012893590989022161192776628652719213072422823596108534908234939941886801692375948161670710471834960490322960947892319110502739608098710093258627392755306553416593981864124351792291242740616120490392168957456011423375296481067989834262069933024084893298482509010829791113266337605615710435275361328447859105756779520980634859558530931232803368207335971307417936561322610059521578029077496921392424487994664462818045131051402551518985529330964853629851487923818601861543384167875911261709391375151716241844099036989185998456499270387773872527248164600747204984547125202694086365795230268136185440266759730983646310938545172473116955432367349452348866038637274076534453763176367740249906321519409943933580157269707334696444723291289692535111880208551180740627781130683092983437244313676318077911629585612074442064963803785449679475771314665705192055040778329547600044609137040444140896731882542664022765906811589281551433501845564607939098786167782412956840071825396301033875453848745381874530216963823949650277456797824714795929350199818745821446781642761515790276542319967063306222033142560934758518768317093478646182261481765740704820190672606229205110389230554058083865409471218556268901264186203666202964797458865978917744394703527469297400407778601502894355679248775043751145217806773267690746528349447444816538329849910053856265489275913726291596053180851386718372455982416604577352516761527694943690540935984535067292173930629631603675327225124781732242487919711374457377038881458408063267228121603271091939948057674198620572214369870301880467501332149622799978515040319880619805927863316075113900127628110029103715001532990622113221637548581032726943891768414635945246655524523805466978928588225685217957729681399086412354569150041583148500237473194009739464277252981037465754122633948071796399001647941425542984621312736394217277937032909084799371293621853934516226038603629954686274285755865192996490317732939297724122511530158615956348019573425959285135973312895006462577677606447084271183492041713581283306345526194518852331504827561161613835937482976350489000773104235299131753623535444014863999302067238482855683311603421695640310896989897019250890920158001829865929098945155649894248474521636572004396942616425441814826780826919375376699929740037170424021081407125152413903632849973677423436677539174078451688627817578461716624987198855943507888329221328742826801580201801853742560508105962017822257873052017651932044717089913749211640980470728546264348003329792672718212144136189538577183125455080762335336016006456672499633405734091244297940434170280005195362189405113678970740726454265807836580591013319713716812756286517573245958680964266790430824846620985975889903766831797058051220913506201969899344335891063704609624747968457579713352558794978197830684191927489404213810115440217153519170589613643437811264015996263545538930913469286733786271083988660817723145502586256651454097976390256922399453426284443164995093189139849503538302034951864506522510135632664146805444416455378657890409104193611931707169244268919683627471063129112649726562171771768641264283409009682433289488223519346509796404161049681381754738733333977624948380519878614442724612712378183583838482673220752903300544494005401865087608220156207585099400927417454414371193373787375961564504409572535819134978206895680441002225135123889838019344303674748298028042477337373824291763118297398503281404234824018290873376346943157348282300711537761541570895239018387636566251215948458206228593896124320342857338735512311451762214707236309583457024485188111016049373708072004590065923057939481551662616874012831537907264597223842122437183864098538617657829270594194998646770307748825999627108380179113420132524089258579352253146679175551039111697550511555131463895972995868132307106897695795928866495492733402547028879115260450267642270579880031472340972053404448506932108164447913695567243663674675006743443240756419091516537318649889543172661935475827739142756879682913253061290173698773337911788847691371387964847651436294769769223332645413245958512141634970593523022131269420317297894435719487261551412385491753728795366892392477762676914710382229249145232424886797320498521890958356312983124479659592295045490645649283609544664757317490704053614816223144703607125200259277857186367720196587789184230075472313418517299898639422115751670058548372941869384379155791684094494853031586235342776777948742031168244872605925136504857791617916552320296232806848930956819047058468777612245280747589622493115335103525270077620344837957919945221587266906786651745668218347110313555831761713437714006827561531264960669145507393222597823798980440815217138695076876956073937548587988410082298293838197252191470384343477574476567363885416579181379557032807610018629573339503501540027874091816051336820778172221039742398365635035816637405704989377751283176748768520441898864281176430544366155264740542496377427074868203924767641392072819355356709311463797235439574773934826756583914898606749023951932581030393003002217996022053144315324749466212714078579052682650818325583052147038577449123334346302729506342426218927013557335239684736648696312970291735320350885925739669958242020045517904382957628592396320445864582117607405583933921769655221807436133365806136530187583570282646776219767023588932777218886237566590681180975591596704214263512757471191140293132653856749908401776155900433626787636833885937082339591467379709229123775019537021627179076243915531458336879925467664190359812837567059176658721692237571074473640825281668789148370151139827744196430691239400262165249430984582841870640656356854043390368353117910289214960140592068977774333197756534172610453789888773109883177292311206903481832038068322608042183359244272060353880484757932212166596288846138812847838065312324103034069082373964891303478983492183323992102799857294732565062704902058119696533021398973342442284957873904960138948901185984841494461052117792661438896789644315078420094042696180998614953378554453654252995446089081185030870228129966734869113689865934929204133258997465477251427239800518708233093361155227904228234074326933696078063994252429178306421693103732323049572051036860498330177670364898506862501629580873756938410282674755244364078523192296864226685446627830387498921310749191922258086992659629948947737525955413005694250740651319116264975207493227535753011861672387199192099480434354188127292732773895615569559889497941281423574480944349501492108781884230350107074451980215929071114393430719888067562270243107164344716894249604361390961081065252383946238466889093981626728036792070483591584375105472624820227282360081957439000859500146074814342218726496722801696658310085194642846340930804596619037669703346673950138969743855229034071203681130410946189471563373581177347136166786059318752753681586457087745232530175024099479223467966368359932655682337074909811576348425143466217619088666751289716639415574265937199456231541003954777739661940900766575913441993890599332362221982730744477670000275200556868422533267645453315521092258568787395389105240532962770928338799171567812722424327998205195118086559102120590059688664751280948603662471952863844950516135169460071921908158373941277268029868599496618842032679107113379204421245742021239310967264388969515778976106089796093915880890607462519752206491420754556908981589126330107625577876754795949837439198222113245531189842216914855399383754609804816098655047020653868051434721183080952454010415725427058523536821593485372421533224382860909800416008755161327953674047369422469527726703394953300495299084269105998549772315737704302492209089612366139139732749243144691175467676259470581128367184553689582494487369456224544296390607804984499386947138314972337862122114644959583975905679054291791540039765101727771084169566100933524273892621716656504414408319733422107276264201099373329464129158456930765872137280192196704369969018046222052486555636553413811497038629835861710077833875841079387748033706851681553137992562560376373641498168418288178331303637488162224946441404461540372305170721488542060114586683981702305790532218688188953055577631846347280660273620939684329599900063750839754781725222792166151800314297843917956928501828614735410932959571930725572082486491425629539235693698446881571570038374150147051662628131348044248177827074470141871128522720702093531332878835336518061499602869780863379305373703969188200307916816015262399043560900959344694380631832032743377886173997357387014780036440246060226077151757659248179491139006256163377922560779579802657486035308006543805755161853957100020741135788169968133680534103501094334134322884677178565842054229615343551885695226986103625409999754649996078516285297500799328008327680952597271739788132714835032570073158916756974515223009857105368382452312584966036210380375640878779346115267078066092925139101688260434465443550702111654990924982846578557317175071801341806972966938014693001865372503722520102119664664438038217528442857359735702082478613286866553797642493400708267588926371900338104891043709405921804755496052246006220323747144885399936739483306796684214132303669075457385166564515806911577289811685860182899629560404629629705385420707018048022968422084457065702479331110772899191350929541466385334275868904369271845864546197158768938326809645492101227205881884921597437786675418532463408958583185534684914191795329207968115839301434130730458859451201932180602635653936481344147368245545464279780274752165356271567819320023608003853820395915983889502778855829502725132404936501793366670255103259445610334004402831708492701599536441253598584324035706434958493717527244039289205475428397969850939148011703096277461297842428372296680027285115775305088233015968455131623318456187579261234288905986029503131807363650915088966569026060209874853207277336493993399670330763939752395104438866198594756704479468873995881795492082509302899809330613668881431594223241577177253211097621603891902453381332121696979872693693734149345198715261993261651464460786562783427873189647616011985046738250598750062667609027853877365615687597692916182701834290381647282078305300585702218616127018654242313304392110433106729289253565285699456167417617962014481936622594448132272107275460453518295996405109576877111286294108043237814643707795638282905969432869882742298389913046379240362874780620226488414202263751482553625079577104996294709915794552328348754222848121763396980925182097703489985509079359927911659557241635121940212563504938364373422860361879797437165303649382131957755068153160124794459285824012775954318186750118808606655553593821081668780679953148452088761316607207997954143142320271538440906542992896133007806532892727492931993553283374862324102892893424703857151710132913210949073171093615848699782643249724970657635646009159377446987161821741462525851285347205796877570390991418354451599873726618009174813918386241255492804844837404974282107868832322476351865284620563992940280183612079839515536258696969159335645966339345727010967607253566648779961485446147916383696017584370727474607774170016173830616784107718965076803477832120518537812510647589285261667950333938096037409998423755499009784610417518807043452386710132141374582532309959886769231567214297783227803824428124745508397100829261580778324383908823645641586657183080621379695835997678605795458267562832296063158451951801744054296820947526031692540963261169177898397454327037131595230385983363097403880733138500625307043672483022080480327548042042919312267183661829715762537014050654563120962910282251039196819747729090752946072210141187099413473454924231683619798976406037389065593126669844894459303939979683912562599970546401602393031023802693703382047872910892327458359823516772535646338027824653739874229970012500484527893740181485307947120013172256531971346249870604602474431966329598750763226038933776384114751469700163449557795438909311836723324798121780537611940906011059857566498340611577748352449517882741702974882398967729689236425949629038953855864992826864030583553387984804942443709921437552304970507998888110804155969687284139942002141441436534407427261314965807477870823841446239871164925191546612201191685835044754934774184166854670979461922757703021978195477991043316348848140380468033690820942573586893991323160945162945661455520989431222094714096547918001832343312711027031245697323588938782160656149972072407381405990509760451400807325046302716495927494264039850043828838731251690181808848114541836665109452131426266054071059841221246480570807258002775148660574694647304973557436909179190147615943984392976276191436819463543314362774487458253558442570648835529539585849259002022008965736353843289706772584986093982763141047427960974794038606444558768922680262791965629967383236291725962818278448696254212357877283716623255027972987613115199386629770206275462833131771132113492914268366280232717902476711473874418322541541378887140779504684427352773818739721197592125517209341827269912109231350245706565404992570539625018908211196243618746210368316506531997253216045708799616368944104899148869165488247463024145812299336351671996574257852128630477303419515566761582459354520700349357026508905480296201395425737997901475759855014482186359987533450620048746759630416185882861135141617048415466621148831356376968654968048627673724182186055531007302290938564648386262046212904463990924918091159483648805862057242021994200415910156049503256637615588099864118440783661165380941519601160260742625672778829790903230235619293588296017425546160955063540885252120749129869843242975641287608224557551973823196950804574385211670068260979658276896082995903124497684585933479878931721094445116905805948747508217344836153957452006917755179208853762789071350303260193268357123418985677907470776357715427385473637510309791763177470848536449490651165806529344062037974513812108668563213486138328944646231144863534714436442169404937886671750133517140314367761984425581205724395813745137095947921162405952567170199156696817219105938397737721607449573389457034332987049604046836605904314450518474470685589872781360395558782755401898853150420897641991012082942962205609808959486076425348457427398421096756843227322699271497866258843784502080307545315119256384735475436670812754670761331616136737076715429566551433097866602643946496371547430364417693385143199965888801636804394748713796928342995083557014349242503770245745058428758024040269144797426475025347534684267315733363011757097411014692556348856429305575464714296916731828431570874426943519590222280653593517645403071177992307625127949593393898586634807204950823505012714762805663261309107325754310786638858479549418290675867416539981432528162051663090840733904027888175826391273938422743340799119256180089740462814158252414814197718288147631703511859203822283922255812561249256349085277249065280067624232115555959676278771378935115694464215687773799715415487087706654773376573308186840292022873612315921568004969459672852882493476377592201382097183754238509544284975713426498826248310762947177618185590891957506526431664687117062412628306901917081955582064389058527842234271685781591924120282704673908459312204144675418814756732300968616728146259759090395050544238962595498796272401614952923165490365614507637201674902094920021666685595661635454265721035324104140030028869428517467308305811724122306978650911907705517837321876745726541205818339475444029792588697857776047975576592366030512422634870705601756963703508968500905791780903736115984274386133803707105866185542892186107844233265082245686563091312858441974150366813061546410116312651129642853264738023879973403072782860653656632130553592083371206918308502517980830834374305737616912251847424563191370091191004754820134181233056170515238181840200525176431710710430747308142737699298243041792696528070445480512940427179101049291200162309620167822912508643698580655808678324101619675296280476751507036010417325030602913664120163005732521241188261012291107627160719062524970392159032170672039591740228819352561036903460747425503315597961028726328173023772964546006036028569327679137987096882195012405706316859588705942840391888855575297742334060640142153027959100942142273476157330806963591175916276295484445608740012976611385766919907425833865441225638205050364165595302495020997578914359930933759832140160350122742644660440222807218492307539239027860574610092216740121016003098092457838016472016650235700205606077865280698760525513487967584838824994513836994522335668953868461496381462297860769109392902080302267608751537796651457339093551469935452986170000316664095596358259701959100589456839659428195574412962431202516933997285417391711517200788219628854215712861945901533983997606289578284746812602342300473438832342827261667054526882609254021874167092962621084015690108217099594397049167961157783656422786359864245982021616414163398540021360447353526493635778238175290020798141798754394277825561570231297767833159139407515489711874938420200514425790722440654729165068153536577010772360526288577146109356191741766307931450595431283031663631790322993583256449707945847600337522739530628964863721974824068334281508901564107287549351808017505583937427025469910374177360857180724537512009475478290892872204069824472748857321215610215532451119113226354624632476767762406456353612892234559787786324135293755857717545633463181133501093933708523542740283741314065110364640266486079910982243874487450233994591906554071091924767215630441875994525810743004519068180495055274128611842896041065694802186287294426047986530116410141640335609339959256463265208326432050690171094606159728573719362982438072729045136705479127812334233699425585563009849329343853778021750731322014202827548342957767179250531832208327229542863796825379166635598058074812003815146382049625300802775177490289988936224071970883419194684070709641542383084923605688890975187993803526499107591981262657237756426224576697561161731827872944814486235700826331667312093267277890852062329555948044201953091723694021358986466312879547477602363112261553589449728217021105665301651281322713890576400152089607995610144171631603036328624440684608228364755717379687715998859214180970096484779022500603439341010875676930928557755794898254396656045988947266733939546001316972449935231111840610331502470571106481726865839547166995835898514089363227534506503456286610483627567723779863430094905429179581923298372911982485558164203660726351963266647623783278795569073402066533270154836048268854802169583002818582506394116898236625552288452918622311530769657777082502158949554167700027306046841045755355200387602830152133415118968211890157889553331203780016072780403872534804741190634271441743551072183380336017404985995292242797691190848067669376284089881403669497495309142099449048819919483193936204642189084587831285354336602352840842024375896002006449563764557941598100579505554305456229919033830565160410391420078779728517072581007422815454347784525537326656015374235513333188382763376377213357586387419183510376729118697521657522663442650573686062103332251231464586515959747189116293362719522255743616305013289696575204083978983953608945003264851257650298611599371919332348786681018104996053256385631497936528977365766741686595399291879165954851605353378652558817025975791705602396861614105075793002239398235047682791735350775080916019536796003463875510181521432325005444490359920497497653433827329545309983275702018886301894515362797958452193502262748931734997044892384465526564804420670621818477403866543001646876905910574289103030202962287307557046787636176155839514154648784948414790142366693773619983038812751723985183291040005366196673635986812090227122640143110687669541282560691206965513512210634183984122135305014637130614356070891422734868319202157171518576653499955322597958768284105519969014162786519740868856535758213274560995781778329609158141509140899755137680912997223201235588573437192395492125350945363669084670563962920416179757853324042927192076432919044589582343007879235005843735784043916179262377133792636323263094241948726296985438422565609166005328774835023630107923400019974991126811182898414221882108690285060709485987400244524324648929603423079171206505168877799671770728614937503488798785327458791622339621399814038166628025089916988793009354969890748899187927493098264904612103888776816264837098153901327377102062944509826242717376784119887594433802592164651085702204506479003720751986019613674987731401442961092302706173626132426962906862899104243556593765794997241514053075706720935384223413807356418261203522874935953007384590074534756840407184605116957483933752734517817473427146754262008383421635028133035160407047377488881885661619098432481435304622341913222388357409630454790993327617062107550708275787533379168926823007726434234540169278073720668329576224337592637070998397619855252375571455554037494817989994127111325511282367166202184170565633327562555574019742105103800029234495154854029313002604284965976635718669482064285569576047321300301627643152451114262282787663959140282329178092721565711673571299818404798426664483749611319167817419505491734579414410482117920993826137338521737828995236285007551364504250827899679040875720450815125431844858340732124234345429248289104628147760721849782381645443588158194523863718171828030728029776573594083817768035120785693064248268783029868790657055639399813465430449005012018474028241061423618316511575217464151625857133106100256643628834113332054167173812128176835312542659395048177974593560504502692134131332920143718750405012710558197985281815523363978409182782003628388314769289629592184036770754084975669415993436368473763462454106990910706094245362622744065652777189910942918137750886737634853323670490263087759190882868039040305806222976525542912321070487998853023975479877241908525366108596295945564544393971107537876658410053766368820934034204442147515232781182310516429390678562118751409586386099130289336075691695886003816486636526711454364003508318652558110573361957118309323716351840377766164723625379439470366581036477578938890257061443355758766072702866900465059372250288454463548252613315265553185912006696249529794312861877359100795265972235256628616518891711066356502242986694668330622623687406129416261092148533911531318438249379477066089717795382026753064212808615085665652852562311783979830202540931093873698632418271970034876558278193673952276797983297992265583828322204594242129482739643611573027840262259889433709964041530873823865474428656276911604918618276246653215956418839341644932614609653463211753815250862414071454706001551462303044900957330286038220736404581854822489597534199180951540194585943751124618440346657742558393428948328825056387355256020033448117071061773887751267366991005102278038477227828628975196171489594268235024523756738847460413733894149652799147572332455068644598687133241870542709598760901265045966556868626694877339397749566340677797804064618527985648591262448304846227040378110822550014520773057644989010072664818555112536903911095046671440491216471698926249333659377880010550425104036729501041111047266432312897636887158020684373680328144452981842123826184758008363503792140741208772186086206167243571205874821571639932522480045074878045791257492305728464515268749102767396264116834058266594928917751689408115127604333530854419450388209326264546066288015561513221403557132594532550551782495595137404287698927403564147031078972592975669894452473205786355783651220515781965349327320828166187091489116888072095657837907943858132906734773169117901400599621986105125266379997835259974630723140018251606505533506460991746041428935897149653992804348858592785628014782304310810907621197866477460925642059306836290965238923566533754491498246489040755293530734514119010304167418357083612617131991232950092820797832889562429454092529640444463534892492655933361838278339149231977713377598028380235645232936316501467237944766220654316935848018723764863584350139651468871683081428330014023743369322591968324926962558083854653830217347384731935690414227915621441907584616789052342372947231797720907375973948725166697475637379741945170967942377520754878869475109399198986115387111922402100719993204456754295023500733463538125221080179233007769676561255664922397279357626734487534868298052460724229758927283554685402071918922366137265697543007928894423252502408154784435295401584094130658340302632682390748497715603215087721359882992104848685453269332179435568700964674566863652183527799836510405588601067272790163075647974761586334557702880273917643184833957714985913813991875007538892648149831635279972826415855430343364035397951038050806680048793482620314112051250643359429168654589067872918714052912333173640815479777275734990024816951314386067892373225978868418433546702722068469167856020390876870903134064877544846160432910636758922324146298509499950250454470658210085292653001070789458227717663511251019863869553067678585993612453260520493807610833214862095306957971657720492283271579311800701344631347993461894461218388217621576215182791905441114328699253127155124478193196148990260680837684163309995569233173903832102211650461773003369028120261185207392291475303779682068747684603177030441545695268355570146787276995425018938189483438061984226996199767026645166580193673222961574095489907634869594949683725198821156409964871677658271980937270886939058780407298322329761390566655807001857242698370687162786521250413469750534693044770693450910997471003016728316904103438790247285655762814205748521771375465578044861609386988797391064140090591789021559770168133688499581201843649724541525235162053126722004828975312495137253655107831480527066305090610068110158984367072367773658843229127031528667936413704011333394258373141409110201583552178823124363942405808509135946473887071912692456096384621876692537665914162542089561299771586384720400032334420753493810784457882368760543911618312594953322487631567563924003602588577661065897915474000673474685055604654933447219994800883187635625636769163826483157206088652726812582566342476067122158043471778790673385245746391729139908134250791732085970128827937924041133603514602073686926364686461301177695528780695002345908064766420817162820120182051215041850673515376643614615944696852828150745644169442528743429375487356817828848443868455860027486984987795269078217286159401111291816774033475172962827956970835310594552582629397805348334105713290873011221336765997351955372102714671742009726637644419316985499180808958067346968529069740196239375565044860999691119198039223440855833320001294945162032709979924641452077781071341889971074580422374538393901532348347690750279424361459158833289791939114962985723775644089805178040548914036191199301386408478923169011406353423452402916575552726214532207456756727334895941618937690352018004063123070032448628521408362777730526973011375178253977492261842154239886838095106784729113319021895315680169896668402644098534660090891213522469146362877623972339986254124186130838325817270856262038742734782734513405056356689742363615184480166350363821083224957072289340981846692743628286381568314387467329520464888736734051586541966012456890740642470267565660752710079642190170951209632003896803825386219476932676778495612338465637929988224494025275335909685088328411495997221675733779162576776350951157687936877905259355331445860326512453555489926878949464242318232957832117341296348149885170195535091339940383031897394996165858796738093128072336886396957751820468006045825059010356528135052988685677404183914464770803934628701886813238169660616679523916961850886905826702999581665055168198960348340939051583640124744769192330136159279311706691202528554198382733952333834159881131913756870398488075448015192741655585930054304714775066021913105605215069906744884459611613124485944786737287374791985050909317689720023721255740519647003704501761974476363983862124063782720770816803475134510796354029401646115168704403660414536623503464395987188512943525924067730408131070505417659283504531337099684001905283407086949136785363436922325372752564633308538024981034899177336638978983008348587026783278562721466442982474815850132457504093722042616597374614811806402847807739637752054516965751919902333015990116808893126248093211004381597658682680161693123564966212701366134127336461188460869986720974397367212813377104030576887354565599956000532270229476923644793883373067058906258453487420071804698665675240792948331906225600524063851394706517354623656703611083719613060723203054014557426311211659678308442212554545655113712564613076306722781174755397576366893539756006294528475706191202628272822724743147690852058905974130272149004324801740172160589563432076081826132827513653490465563113234291096386316757017280854106178813447002307611208055264796499158218728490239415453443071142602122024700609164575888830785448016721594393788238587106285469365854180192589742777660562754867129021909494998184201623691468684262351495957931238860196707560423679355144053866740698145431630294495176412656525666264085716298289861323459669319956976667996614564956948204015513178951687754103893773877012680487597927386621772721779225750923750497948867397159655912785694645204655800351363254310681303731929013033783929725087383228866879243878103477938069957324799751437147442369723173749957956931070459783302253946991480156935673884374281246303419401952693240036223219456403375569364515660381345000710836462723237824865969205675124276406356467008162914695465050210663049229351458304683189671632647272384142668931664977493780236310809815519666530312417059012851395874380344300000279080628775415757830105004107450808269182331663877111771517836466291199465645941639718419703912171463243681560460739488239033070216756637863802046611360224878451904150650463198909035325272158249494819821495491281586315514416180177129920112018565714442721817676091516255942913597697617387876240992073419384499822609156851911420048457644844552525697501730481396995143693787099664911515168708663315837178645315724348310100092929926365230136853230189778085005696726449383981489788314466566516329236405683539065439764692450791381333942656872429582493619481490991550104552611194836568910573330048283481279919016591375127245854193325713436260994135138367261899247158322248955762853234142336372781419321661115393128034180845819040745630791742135032991406506417260381282552124152668303343513791466585566236616496796436381370520811536951731599772383318624300493860863862977107752396028662362128496483880105006802094905028314517786018279159223665945303654507323202942001116478433189043279864605009785697874329377214005350857706163446199658753902218365037433114772645097778006373476702415901295822936236329420138954488021963760943861149981390058218807552360046560299248451295892422603486382864757049385682146796727508749102252894240585707565237613465246163179760272475381975642609404952769226867298229369990190745526358949942432484405353694833905671312638343514382880429290736743337624960155264195978025981355954248986614673773967339818789707792255579660040781073085628669797626271548124813765664244668842934533412125279000303707871007460337172687179691309469959349711841132011963605655545863535349656900954130601364455792876754315997344073578723125123451683192111682458313283109386689446832369218461403415032872379836173317768513699990746905850294709499168968818892774900196893941959069872178055145479719810948174705335742681974839415431035611821514296250916850531474621615488792621734247754399726025777002391634439187662777406991010447328509856947403439239335091523156737439339112849289902059438385537961717121038852167329629512862756152652722380705055636253374304795535664205151612238713576213317594462291310807872636850101227074929449368159205541817361115625666544142657147299328241741860267573509460504226119066425203561272418154935579561036311533307327593155415137480812090478937641673934608489598348216361830697978085660945896329497006455772725729603801363009192110322471535749707832972450386437612601679828540607803656657718865114198314666513487303460468219109812072455165879525466652268726322045648295799411998612492134477840338980370692400951060776153053698781568724131981020099251548110780884033489857795169879870169794752341644045863061653141186980023573685735166228011596109855003983433807639967079115156554863072523354346600224746331687842704234656697777738325606142395741807507438767761495624814527591915200997488770816931520831482488563411986735174351734022594411467100148042519714886797768724924473648925189710499988992034683630414043331397589211596822647151441398419249865744731593334861456984200431527598136846451306518437662147639908738719569016634627162659723828761383484936705397119003823672331196539770491563321297538218844526561038923458037806351946424000200847860752514276466615748542611863465308975233778975784757193002251607538392618582854327263005507944522160719610829676832935495565924937918205252204726628928355160350333226044835174049637444095382967549482616614653030819611016474503764911945375311539473042353784445571706468612491769348524743320989377772093538142605912478688175156484948689712464538935334464475698652686698098812815418300608422867625386596767642727424787914993288007922988725210906587803558229243983620938209533170322702467000891265122076303730535939245119806408666928003180568919332006114894805236687266099704415198937845693200585618411309761928264926862046018822535928276717661185611864552417157004320500299305182295191875936997662867123935705570093779103072647508354725706909106219865393578383877347066002945805749317216896060453731258285013042760970546084383735089454422667519221815993858748219284959212361981476143951018714093349750010437905499488721520056653419843170049239478206222326182349536829201688162812961334278398460365887272105839902319827548021407860066085912984965825461467237722571784136704571565021554871118163737618928371316528551604018955495274159766818308869038799264700303300728537620513426537577295565794800302218254218906915300912614496908380329683117460644199317659158931083615193462172849334641144789860628088303307096008732541865936034857015623731615897632130312750350822768959386038330274197217612912650358971034876417506548097177264110961989579514159651449004519794645441042165235457780942976492436128174405526469872133713019066967751372340887161424478999083460784283048428653882231832529159576357974134468255581135652080411169015485553218529849805943666000631799925472068509563587694141617889774118946953356507058619377600285672599823733253721035385843265301981350456728235596887225952570701519037898418199971953464248841633347524354860747054191686104074075661434780352116089607582314755095537132073180010994449591086979187006857938520317180510250599440003084340688584403322993819556815933114754350718441768366648414507308776065934144566895352091131204589150880320800761457533285321614282813855100741112700627137308953195552716640011323580225376774225836064966624744903268563842197610154849040799410533818901255118657622809380759781043943286605762185498857596875511073594775470771734900785686217715499086844627032260937220183917833472675909852060033848614059761758296051129933875000280101103842695234173915982374794283498813125035953672637512131610444457031811169633289656871844254907252712950391331225534102469113356134270131574146147957283727922839461109806675419382817175339836294910537435477292845235396576083221132949990188637156609408424418897740126942949932899345636641768516579295868103379901331781140298715633459252689431558094591327973753475178507607644124332211872469231312192517537880140914652713306348747309267221897226653221807122060011642246089520481546865073910219048822829298497340845210749893384657784827826133699732276595431859193734772078588635045780078210981269444796068907122722804668539457407944231006959813567400143464231246689379458549170750171180484417957276539178231790305360883751110395668367652397439591146037309860322931292978079201456976099545210670246610809050537576674417528648530276099790062062671292398013092003425769576934561554807796681714500351017512822764471436921420321616511298537723369989137154332162149347674054818340340393228213940788270813628472378944494796616243584277859596598877596364015650039904949933008778359270149747251018029017841159679786978227291436902379614427970444623822379049695328261609010547823603847189055168402351690844756120491403049346762110360324565709714321576182772989778852161138517048546188071393217419799756165719072570761239715724233159394189939592651092918646079739417326975313212593232638715457529367181045720254003125058610444733999842808884836289851691399980116812980066610319801813708821673759397934727509109879977471005017155023038323606918901171343037306066635912602650179083505329680552118902711851449182448850329229497466790888241053110856416414882326069732938120040747610406308905623318549463895152836214728339890995892186301022266416348875815742896600852859376882799516323512093941287341365817298194266116260606521045791600205098172147853897121714333122028062616019505607524630650477066989420160676489714031924432069853850828021383848241527530216230665592754108633928456088309632622525246149615050018072987156906150014064873695381504821498412670197715295187361717046357448288807347046744799467526881910675229123045389336171957531471280397725609902743003713440147396967770070802580191848737513985454933251144613057815648215111818044524400309510777760215686984786796549653335358735854407524346299330560809579493722962174768235288129808779857460244995614102305161139423731952158833025961285181146249454919815976678085322137985642971996763694405828917017022509347904058336099330661605222703092765802537638411715601108926461261717780024585110238773945118835616946913640806270392906042469059228454302233417136439346386710490501054790507502878202586100324526116344114681215872826212521968264964968862420668987443297250433580510793108470393908531085431140243311167013879892424638317024362337217555864516749950167329499764824622606448049978183232599510128328152081428375029448056127081981278172580519146537986259858769548965281870724047818413300120557696935934770644471986305008171449528471847949992948663194443340700721397027142477540610255112939214015207170078949784032231879878900977201281348009904716593148216361420649878415684511902621828045641913120661788287898662218883151871274746204786698565000912826479092527897570588106247753155699313119793022855061691989737111337116192923867445657796893320324428148400818178295322715706909432308358153011987152197669284372796832184548119054805197646644771285568203214267735195431125939677342651628262316542711346632369535224599233005818289677665403556115854697750242490485089323033281636953468380646072580437628795833256327152643472264536431280739192542502198136739366322365798472017612013451277221062754780585388610218064289503676044327364197836270489997601754849430798823589726433382699704876859939478094976844732684515987723080320103247449667944540104824457233070811019072998460262194976379223010815334295918846012818799439425536215082474041656119472301261087282176177652481934096757234961391535392636153047801957075777799748914255871555094796299219658570366253685216065303439547382216990151617542952875145476823271756799294186064619842002025898826946652617152067956728786789808278307477466479511069758625942620655715462868568720774364711914599784576628670357885580189436776405319067528831586826331288187484851888425031873408270411138015725335979609465691677263418006388146997405358008191289924843867904007986737013625860149689786489590658209433785741286425386675132159994922094577151653791341751933740605977523146068437207366838600615369767022729497849136165741981779114711528705988766906640571621036249166846457284068462607070079463514470345150918435462445470575256408400320362273802401971668071716549568435173470315361437310998834888529322850891233528624299331652252663658516213879108848662111293779987068061399403514582660188579696687526882628409466536416875410942931100254854405762662471191071361560606226545302471506454140210293404166898858979650806102676710320757147893755801055736180627268093350702407300508315600204650570120455943071995142880999573625912200019397863453229564640309900637194229868554538150849836655970260175641097872872652739238107061074317688342851506314318575993832757269753683789848061193866022589077368627896323777983817601272000119969825059481085025758969760825703044503259817870935892676352714683583686286354420753968997173981723767853664478731828182298009159711995667219985058524686426642465180538243885588883174196424674924205224885344672138651515747601187694959473960574070228394594199498410296620193092187234179650185431940417513677483374926922857816687876409599507396625917305323769264536159232073214085787635690379508953062933508687984770757937739517126550553333630818437525006199632821424426105458733681344900586862010509406056857947694158537602949278796697041854701837434242227306585503707400214094595228874611737394019967977087272601407058720898050788310374405179251422447830492433212610970718782560308177573834250131834539933523238890033346553237800990590451276309988722199033367614933814654108131348281385832259274663685544501650426337627502824481141206785949376560314987694632386368865278117037990364443871405079485462666589708409181484915076950859374609753950022864805299866889463877086494812778917306170790641542716456081103919513989658597304945406683126904760203550367415643544554553013271489557041212561376404903444565358108408240682607636932065323509050776791266471102295373533648225897202299389012082801533100734898603911856288259598455505034024984494841043632654167970998832991092320310888897902298849890102625682703400177434213833744278098845286895998459855841788933125915747788503320002804056254123473096323190787085186048509468191952236460775902395224040092855781015668727517696455909996160645515284263525812793223349592077739379420113518882740150716340716629496312747986393500018093100311204601640380889623344298595536949847580592755305228961179688729516162634699774316567184203639150355005131167460985915529966923124236683585444529572951464245160332111312338974830114215418378524178380362970775454826465408460311309811580863201100079036517599740609558642288215326845101744513535843667259465337623157526187082012555904063416343550115931681071493724735507453581572529211512726964395572305632844003398393294176649465139425718726992248221998686962489327546320281997054664946678103785815655081706934721341915538644585897101934523089611017335185597895320012218746428152799092228360770463959262157480572147055677976533493302855457904113401863180760831237659137103318492178591869686309158652268062629721412047840943905198792489686052296789108186898285213158375359274162003536777041478313964488969198479766399384326004823483550526130116165821603444574663894550694858265224112791414817641417136191888844569269158451625093367192222265865192566894105655152554684968869860397541358241578107749980409313811959178623011742103192855467336326530219729017225986206085101820505984780578004137719760548990042533270470346774229971661930885156314193349039193082144139366173751099278008841913716708031019132395350867399439860459712215809638813757365979267952027788352679570304012303241417721795075394496475303998919857075478952947133664368420767133328380909289586244114888882420280600666828570065348752350077894985088568214673857857871233286333985471083150668553140287660653842484361117014315891497014556748332254698831647687023526016968948941551776261144142022907660528025714530342159409084840676966894220019618916994738164725481650597690415413205981159186255908714075815358540653896778724682716203719382504111546508374548995733395838411367944518156855147932044040539703689694745346531021028021923743126871271356949625632181306171020276166476392381782579222348274828282229570677709091638454397451578046772975365793758219438118292066364447836094190368122352656317047318578555997894794421788231471496959256244962533870913649189516930423351895847588146011579775391891660275518931356240699066934776761471528617970498240822436854147226902118314795413226750551338665916187831100294077591768128838084448168256887988234687467330827902648087928151036447025043977882779210223363038512540258515435717228352631481542515205929273317178415073903410267619042483993109251948249186241935522128444122261836403703633625089372223121701620553935225007687998282709949219021055195816490526073935809788672999016937166200213137649789110795676374770058201768985250102243065070528385624719285323401259898725133843479712749399015873197321869779855213752722929810636165526834292257852577236472559003270945541188103731442225370897773237595210703932726969924358860222474256563378057512101807990595997120578498931210824968572265749560897488012453011128751259120181531826863253291852854570760405844862247014049243437099127943628218451934399100929257213456738571927049997646746743985683054335835367573096900267734716195975884350319261775545397461012446359941887043927514689304789145834361933403117720420429842875891984294550831612450817526981170361487824848534991096152002473390861313569624624176086790836031461338171602386527491654343336336448164769274224142076532394058039248069699584816297755030659657532975379759444381207072321489292084824419045991261006387688614589906110622033659013858829461756815334035980250564053062363747299940311155143650307919620392524966242108198078717306591844206646688878087379200360970867132412837494592302297349555496802709807928635394865009546925100845142265307516736630876003883517011566956266118121284149370562365956448070808240002973937317843067963891626475408382480877278005001621289917930424471123993682621288653008199416024354211081498922775625243132058343145261029834220750900338837972638788960483398803797819846601766596841249840529002582584221954035058101142896131873710504328416236669331816348552604627922088209509974403474884402735329469473726619182341832864394208755020410789114722766391757072266632802767831620358689366847429241878785860912822574175056102028250117985578316871447227764463768647507252356731419914539461476364120018440066438305650687354100458795740719392173850047846752370351078660913172531175793929177872225926972543705911359237678391783901508824557240051217972445354536440677042687450855798104736324757839161451154702014049761008154838255964332995832733397354534714300660901393871050694983803623615743722038347073004232467997946302765142559203246314894407282559585762907937182039356217394877562329288415153467757747531115177008526095362313764822330779231599720019450712042075039669703937550429566147042844490422491518129238130650509270051772438796733798252982792748415476929800065649581147857465183524530681527909776845953285142794261935138574176517460856103465141441821752509904447993160611913482450215291740651978810392250647502411719680013455463405108670208890747398247807967131046833986394934136908219804173321394486919712141759487561406602317297084379813733738676174332040173033254891864383133330524454430674967183652529148486959730268953216387358420848023112395096914873391629079085685142534069218563749406189444750077078707974638231461258934414230036850997499355433677792184775901089780689273222668879298721166143449577900191414773835821722443371432477501411910667916253679209268591704584549443678940955506503872835586832539600659106314520287534891927097044578695530206733262213927764789065661769997745975426309174724567739512299980752385350015156835533246389521253933079816621790359465570638873566893858292993607919367206903306429878156557500780685018261097858963126166436872149938793772860575764477468515586846973204888976789215678603185672415573809387053513998798654646936340579791519473380430105684753365122926255450970355626008768769206571826555276016620360325995399568717830847910757580932751124644662976526608271542686272648563693938000708597175084209306484963875113213212897839258694468548420599480573650214688737765029831172852852965355275658248550515104114759632097027947303612499744023548701755276661886848547952450221765237635319206533209073064877028078589478830470386566545923006959650066409598023269577310161103658543457702412918880553425547499325003257250416458752087237351383891977729619533594695679096471055969056574139370630855494951281157041935828245358889472341138597588253498148311554176056829068969621183856041733898419705225569502545696230157982576347355024593599830154397257020142289859052068380263973586022590951891068319326125574423265630453005832126320940284916524543101862092927387208911701478617273790912297723925844137758315181522646703069760267480419596351603926836257032968249489874099614798330563185638248466931715909151250934664439063291964266115053616974754467862198897392213679669531994580640072940423713823311039185027330988588945965525612953424517809789715967449895837796780408781989421746632742825627473329824718233180188834123486165098697366638772593660545082333256193740416521742328278287767838755821333399292361344856338566131763684253223709310956110125174388733379231787631070019141236795027617218094631484506174083468545507951910881233570206368636099098159742092686379204623606546385519478315936687757476547253348403401895110569909957747852272069219684754315114426544655520089335567017870130836359045200424657619982647894911360403522821380877869860768652226207096714253693319186492412703924084165832058530762788961639762047273092080201248384041842177047973001693455873214728340052142088859866319172463683103892908974748620171054139483197954358856320636460537312071375648988998608819587482089919759979093002924048642590937153613893544083725763365615985484185399801774961643494931513512076841246698033805036075631463338524237319759497788658817254506302799168519668450609053931026648821794522235800294325729257734417846433259264128629736788107493995669788157744696383774542716301482302064680252989823454862776008146387549915658455576196622167076919668302628313777015135999026364593858748085947901782791897549624728270108981785583210482312280615955147286182144507376373763344523912677536274127728927653418182761053402314654382619336903059521653327323764904526207050523319362853653149650704958240956235166194298349301331542863637724792470144489033450449334973773000557939801302459259219487411119698611707235441170795427961215910827139396437424354692802564310251542794503783774464258233804737724134948964601780365282036405839633011310139924340020301020285669133241590300597362336360393349961416438248692241032949977579693569365564288987269663041285211329666690667619918750045440890309512472352856525575011988116187423100596108791577657079306435559875559649975113506777549438577874955678375130337492081975947205696799328830973686177834590642788099682949811669849595940933489010312078644393863853579128827534978188873844105970648201621345089827574387915318409902786895863955096950558920113313044478188155116867229499521105419790717485757342919388925356760440854166471064347840370133432315287547011858957387898114186876695903689857500253193435985720377742740110328344895052056314681194245940139316733576877028246807205091643217282368941487865219965649098695030071234503675976788524046170428987643308930025856957994941151665653368958329045559395433591309785534135369047574016933744635118203754922437842941627013256157842739409711228605076119507108771092720305163569120537441400402281311769998857421690570970297147003546566848713024826390482996113361554907758946233343828964776169203562891627205606622070333467010686213031333289018364768206038895208648618542846368770359062182806612162069908371479054954393841740384155377372475006075949882071857610366947792693123095884084045578879164043060415092653237912787826847742600523153826260923626712164515655856109279399119450105200422440381189132080424150495259965504220093245539640474715773405176133796243532401348576706223370001317935083958153724462865445624407520488438869507167078880523038005870775370329139152747623473805944781630093194519549305863687265668397903098347887317762766799396624831743146123853878393945001114225790780638719269227776804397002863938767147392452719613546006478929074651520968155009506332833054346264279266208468735648291117555844552361948154648562625837178736998215098849007734530752454613725330342461681564103904629497328939064445430085573708059471785505420013192323096206172841856363569560301285025951706237152245928772233606909632576504528467384086142846154623243383548590578776349463721168524889177801780502245897990023150232181704141945526754651284475521690444220836735942298798175464749881286086129061264922021101347049493488944154209862214557200777118466686581569704851583958720077450816471583408716960670438549832117935375307107462017896522990643611461330206109149782950407576540701276710757461716088996727515009168708576279236001890915177688707298654956595707326740563687206715656065831049362565809869885189511234667704591753398268253934602091105490320791883948777831684847759452439410084892064805122192458053622129952371044264239067523892209185370003459250170090727148898062110903750174495164143629745313233996947657313168235167717989666626726981084871618154851638090281923384615332071219438861987935482467752550314931908277478452702201899224977321044620251906397297474107314084488475778626219187665048793795577349969496629437046882971604348149833410290688382981191818842551972335165163161495569532967534867113958510101572400997539537287259680799881564237388304703382238435762695071642408132359467342477141055654964753246571591071193073507495617095404157836440257197783993326585701421479651468203490339153143743846500684375867976715274533039897644662260012272642010259968980452713943083972358089200332401974845959970942035404775938904472625004262249485026686476133852614863816652460466043772417036835514609017054786317665562602688219414713050059767955759434543269666399024752353255980903502135586100051604669854792693869222283870319134728099884294349765517835176387349121555890677729513712395891672767964281514840415817762797735225209635819722385088978208672252354947693977570610922606735050836628762982669709057936362801440967320093027442100816737850954375023998934773789353969926981443330376351650749493839483983189743216739220199158162913101997792322074373392561184794280971590244074574101774311082336120106265905157695078672411877436859202542038655672299292834661509399197182810790508822145154572963345726995788295490223544188730650460732990280589441093811703882914195203549036548274796859443357647523237205173742734877469998897020660081884629101479097133111219853493321626391870289236275809129159565954652601416562311492120659751060951254806561963552457263924399885261572335247315822529366835818355501779659702782789193102347037405481816711451699983160704059553958925464022368646044323504291067401816851757266788851371833687813495470900191420263838257177171465610054525989413906922897672559468579572131467505259944356227839865578870051756528833034834323852263653854618691012497427746780854199978877567175338213485581547304045322573236950008995680156522359330795919464192113068112365389473240603725569232606890580414740192279146252698263677698600072017291820973393229235715923557447155610497214539167372166529915757397254219014259526118153313648536958466965641749005789069755811015384511883902798003341788544020523675699431412417284629817041011228634263740355044495736869330114993181155599768836070296246719266767146574994386164503178191626666952599252204738502553623683781021632782023145613810220057584316559650255609343990405160558540008336996361828231095219668519391487384626116836876431765864181918449611616000465346432420138548435718048300687617141348296091335073328723477962280526218635039550904527587314348373014295693220057983007697776655110597266874842980646699503314223363159099608421086724674255418141205233472616995424048822062216879015856250519884678421212040913766542469047485017499431963984919196912119788857314059328635885750313391848069961087359484494504217402874804044631062874685794155399397839805707242933914373139506986632189480678070048739805565284295926218775889539345261070361685824900018651428814274703170906381114314942003436262311699771190488501780177196675180939197122235662580352307962994523269033581499092026775689004669664833808182424604314956330826033049458888187545683382576691529764343046788768029146989050561061016684105844040640853845900253811278649608504993153564804111339861696619948120346227573070148097408036818496046299156508347841407851703186444376683922755777425304382790061972814639167604862100097013911454218797418654075301222892876274968710477034095163270586853757568819499561824703261133178380510340513196447585560917384354663086939343268483581461171146161415776486239252253786384740469534007017527130585450967795934321615793811839501447843700402606174769254937898745003458554138936303157353857661695928616040871058836505369449751483906904936349690268961489686805713364299136864117331001040925935539286270766358106246445147027513133538014903802518152590690349195356452011117595554978257045687468922052707424752866703105036567221668319796611505163483609009856489638708524703902413786524385099628394043421774448771501766252500828599424188795115456996212083226176477433673879977395676484009671730678344750143588831927340617022889623492643087957058832640716131454575026926934970473139116413522196573522352053124101394639292536574123964572195421177247384362050457245637165213687283726626714441254085935123096536840428023599071506937143481472996506401700022486690241611595936316395737123526388858267971974019710951945286333482216808013795595211192991217552567308167722877237977289292886722631535071444853442093096277826457409086351055625408736818110998576732887674890984904636751389262818656047277348156941852419804817047406276072746569571564721699270317477961677885390594009044347928627033585406644123108281410361184728538690359089428609828732098182876414522252123941010006848992696719924117637175216353652478377368688976051531884245744176787797607007552239806872444481663651287667395775780478724109437742142836565925860630042780312711288943481817789584157601786937080972089504078648253090836978707310662767769490177439548383408328743282007142970060713388724523284786481932382221116074536979756675655198756428059407248540757549026473319282999900981885070232085914314887078152972818218606778727357525488511803771338133914943368952160997784967429582592727596447106782333518051706389504643287874795993348393961573084210944961061480802494214479785609464848695719886565846534531238238654518644204766305478211592763116132994969702889544363617757766481895170820332135847820212990623606325944463553935098985777310684683455820787117201404405002901039743467491234670036525073704510639994212427832102334337219472541691480649512143529935477240423660973834821927294383055746778311842000845247829109804573019316143814697026936895210949850788237224969965621852546690758092206901972842399018155530697562250603754974712130622050543985984636833431473505197766927890299611712183772723385982234456093236198940936803807289211143269941678763934479633843239259848246673351284161758787202649809154722793036902860567486087856306424741020290522356891379157516312258507707620878923982742345615431058114830232893110609375709395811434703297236942911869216342295204354418732233924381138006425174026152863020344955443288993964276860183965017290625859446380378082498544736428393316256277291312107921574676118457590460193480756249262903421410523096614931351991913588671685970403701848524528448394316202599611253961469535921117809110515620925881540211670075867439888193671267801555621483737796953130317496891257572589365592754919291392431323469357049635593379896415215565662828359865819220557869013693858772945795607547337331471971382301378483512647974414024007267618071449113296221711157971194255033832188198827851360067051249108509251850787702431613560468706306538303698989380912867101693277592008068116246904997422674260098559592335236155018806895580542980180291400613468446710012805173827438836458282863271635227100425305666244385820995607078484410658917871155265371777738975484830679673791647819208426762829589701192622585867309015926489245905241429821109939073504744881278128808558429395110449356332449265699989744669788194606085171371842739742131720046435118489004808804965543923483330816366176978561258846863693802112508754868852836486657732787255559459102165753525906135726398856625406152766130790480831906316925085145266043774796490414133925971734002627625606828187520031655888147818569144735458803254440449946068372556654013197977983609226960000813233603689452484455371344750346315372776606539658984921997418497540247272206549569408462343667839294442803531911525443268632071923172376251258760416687894986681589147600405588928632044452460546324697110450479835252711813128475319179063913676866598917379441066185224002060845491359769691946373511396616986400759432233260204516052635436854328754770451820351856591026043996141724285355428792479021469204684853273654169809214538375084386662343072624760227615175145803112652662659053245249619770192771594163170559244309534969466967689942581463627869631590953589779325636480951268869528389573743927871046157487552053305969497026596128337477847793443788646346185511548375010395682668309847821941417704882188586048344631130059461998291622226685247831518963543929616911436799795450972130953149450871046431977439266233680505893649386839699499413499107267758912559300588402343197111009535845481918506602800150260563076686368789805758047285056851922241534065198269133655713526189871339136682418343064776553913372177156057157029669126688437480385664156525349744544809897147309764667606623445411151513821479016513255900831813375306370715186958852630579294048839843949421287588006717687860859996611744577194160366273321706045605638024072412030809036999907655368015748447047960979889434651255010146982179312628515375808991362873265632424989090183836862388409868504200185257353544226943306431540092113037054536811180810203029464493886121127695313386761717839419596036305782036764830790287776384491616327344821142264328428705708769107643860470840772686262250492756851422568976155672241554222027882806911745214896655436329151647628756341592162332795522833681103826417990206086694068974346978666122924222665621074969068923267957058498306211901682045214318366977803994414864730017526360076232948945277805114064336168956767390377900646561723387044281320805240146790938421603126028124948866011138431656764772744921369544700512675627013114663706397589781752960228080664471556462239589911335597450852124166073597763209752916026594276614905716704861789252844422822738989498188468783333878611029975878936899080787124009966328746475387511879504534753226399952798755633045949456767372234716340151745360471497958975544222188534992334556482414623629057695560754760131096442855921487320350942412929903201223301188432841286714064628094305225064785138863680586130460663142209260177564233553782936900246168218513199562522653548231565351250511121723801605998943313608270726326510250744682427305547029272416839613329514203869771568583716789711996024910414355282174282419873416462109745502125170037961584638019343221706356380872443805061745832272247855658352998940934557264465752953973943116919183125067783830626652270042887961906231632907357904391099425140938525400214335591799547876607722224398972803577147183532487794679687749756872346787597667886224384829777673338621488673081951694928886066769130438790869402897463434836041864027440298638841207834001934803935278703631720287736440983493348628650719794317518067029683020895400224182804011947281170088065393815737517754770682181264025904869799983832109004130485073962537935793285418233572172223090206442186337489425063572421292334605141883322127229609440703039055453518845565854206354864499308981942007011260383110902499344712282901397753016284019898417046469492215676219011556318505980962455077190768000970094952080108480679240906958597600796662509351654565419597756652717854274628698491172867493396991291121308501662522357455983381949165683783312225151441374318947087484077398985065719570916772158520156323363008056861290121454293672076728819537916600562736944125515812572680814745268760764284635072371181252689969166400797540956765608900581164053678458285164965677162872144998938060474920871635488843516039728430895219588593836568122550981685433420916673234556383173720545155310354801528616502123074711263559524732481368801734358302231302296985569673482819901094250320210077809540503683132566614013684462556832137945074105548676685755868961479303323063604688462701879431049088405540497605710972787582983030301045138639082939876191784858676808493453853567936922219022004621672429364963749725661463705624114636286250178096854275960497381331804469507356173558947948759326894233092164162884164065448732971479256825380733866625367981217997347082832059301619768480695564902569101535552864806060256056879703255765111487353234879561669170800060540338221272369457551162054083817626700272663738408198691939604757603463010066632949603926396832728358881435744538600911696980190388084302823496337912724479487425333128089806572441561043693702050981023983442134751865495245044361197590633497761111471256275921578432848606565246748666016099235487036490719141980776622690047183832033020696853496069588252196855980332408134224372732075810958287948517413125560211377679651066212047442488705060816824540108538764413727231079742781379335377601812495674526520377825876827889540114503447735884019254423201624987485369309277158710879889365229726719491381020414252337262514162169907680334365681021036866875037630442090507904162955671113173997784400319588471909714117626420837326616095500871629396922561537707618420851411094593365990005780448441496253653222564414774312704929683539617483999473937103126064397782002632875250095966139760026411548588038455680329049314221858484585271053840637714229685353997778476382733889018672978579890269385311730356344075503973898366168816993515366861695539794262499112744693092504600844501272082155733905085548085657329564798480431196381612238191636388109572160286593330437932404125934957790583707046639976356664817411149372671229994490518308551134840704446366020176141899213004659682479346839919962079791079015127213262838279807165858350747110178089874331865948930239219731334163756033513231459476436642005116575139336312417939566688251729753340551669742375201625376009677833845385972451283535925816726028016903980046078716926950944312860729530479645212268923356093944559717808332625490554859721330125912048890969607505875527296875145202648837272945373666453432532765082640809963411742512856356958646156387685038447254118553026665740842007623340524194984909244997569164454046457822915244110370256575761507003075587162838313169093356624736422004197771576165373815332112670219431695618671757483901309982462857278567326760757261182633701735351295872261113692911016019132960862789529687413157551783072878613198651632897549042272519558897056137267031596975463832937586316065261483498022731074862321466879307350192571723795619590103768937436267516659710423003935188373124831088314154350508634337380464337763479963581971763765934021406819782214897035489349449876384637370215202604743807315809480026753175854495672475352406484052485456648908471302952789919007610851135941925500436257614860931952062112879001097289423647675726148197566034599583823674412362988397240194834923172268634755648293423114686257640336800046248860688642412930789697843365704206707524058317959632201855548761784256865654690326946122632054879645114433750168896688126460840349409089027092280182166840241602052848673649976301302302094382591557361816402883524692903955308276112099882722114753364765648673251751900445915762781071479951651507383309745101786780602011886529401092897892376495196104639672087978599761792290845251396218601644251573071035019969706418924663079653993961429232995608297445223554306250377733791308549931972232871504543347257307902914466456705315271826527857649180642608183498488712394013513216359755801142544883305846426311178423138700633869356766448888268530433854515484383939584544421803146721078080946745034507653015322657511891671722100354078869234729002772443436477902402010237151748532856797375605660440771635889548244759493827422011634234694220270895156559985848389556102764608288412541077764589999348647540051225172568067037340353452420302770352400982055135575027750281354796000089238795055646281104739656751584580561580849633279231909447231774724334580594129675801624771540571363361472718720240260116449419120543020846661886974609629750416840142523893324143125431078313913918700448622718500041596286198126005587244285488699607405993714739955094488423113291574097824047070798293277563167101962701080878492877961870272698909215512538051381688994540467699633625366577447888920056105148303277658663609864174918613857565483106029413982358750634131592795664529149826730193704523680941762049754892270522029523063488906362080703914440148583588221381400277329574028862058652360480582362643220696436387625719015922628205091068556882749792915964527445064506089347586710645832131415729700102996228886969441619481154035181128944343731852437340995750471289037188927462563935445836112945978551673765331559856684525854529448397610187050258191497509804992786391331243358424069791123653108646118479092479249993452849245793298039098042763267681460348872515360336441231683070548828728746407025913280971928397001605228821693528743962948740909145572854030072092002636374208424245058182800003201792512018119479454766212486139933953432138669116325955651812784484696182160458449521233944757036688159023614725626325712950101961817676788687191552890430330223090187881587323548839312211359289034415421526082933934873077679024894505199176727224329059015707183306189947843499818657059858305253540159910866655780812695525532100271993016045834993941299853385875763505731855431303109204374085855367288108959183245140013392956875516974706549672393949864002660615690341015998253897408716835355401733680292236968400514984166867215782996545989477784007339322268809017279369598231122757367002689653544247212047169968991423962631825727081947564261042586968575226148489987343910528580955231677835166026622133869264357486701997603636193628706449267558781054436586889659440545422633699483143894857505459034706208915123232395799179176214363117829462881609285776373733174056652738401263819136457028282663598427898834116351102107965441843286239302372774456588371389531113097405577117917059575471015464797501516334964409412315983747536439368005751540619495946995392737065967675309505987851496498536229720472805744482973719008510245529667849660952836810196461405131442465171742920013903238822643455927706034433890595303891205024067892400546263497477128747833533606872991793564487526860196972718897975064336393831574511198649800510676655749659545038655677367155167751917890999716901116452064428454969689638973689200500747436441916703736411577071297947576640269886607620728681190318006401868369940483032883365234498867855913958090378131512040639637999575252416782654691796927345696345660567939437016007527560888733741951559119208284218486090760882790398379034324865237532675543906190269090441837584030400370311769978746283722062188380579233380618986556097157610328124710860871835102690186275698030864280013116162547010888778075268079521366232053264810251456153059760954241543181873608140100305823231852703428288670407544317173980679555779437632323565243989640090368804965296601612640541736046133672170331086922461368627942480400118040733336595241680592745822341072645820274520695892433938094119775456859784499810022309401670854481181850763981329770148949098796750782868678344644792730129993499727173245804885670732944081470824630155123766935056945086207882975437836256367071835332752644999403293517742867602652806058969142892010247885831629071270835212927344162446147536783319319507146262991606987478789889549410003918279199573981002126607663874236777544981333823400284734262598053890295122347841882872406953545897990959329827487831930609333103454354045008850773016949307618546237107472434154160923022646253634737892253520713344778743413184915433752996509060226889381874643162628000104113974271535613508110900839881580442120463811942287995738337840663776848627278933620507932612267751715116838567830453644510710634976002471236700684214695889753097197673178209273492027390530052669428635727225994190656456540963164945104276666077854441600641493037958878900139633809852077153207665193058954295454062563458543962970722420660703689712566277198428903768311263598118227563919995796099750244506841715494166729114386967271103378994861526203984109852616649049385282548476748668350134299811740202339934717452382338576476855717217611608537904784374991216493362850548364752438474462961453581477246494500353303369286723724819065084953728851554913217839833015433082122338277446105259117095359995468501395590703809307335498266535079106717582989984177610591525014956349440978606029839290410204739782336905396215835956015386163348602482568435957000138602083410825888109120737901744349506691005155290251381124536226470552654476168357199543391020888986109578556393910159969333577800376268387994099605733446483091572646975579673634506455814196640653578779149263483257893860935827556255764669931768397401453243901027079230364069620669539564179666689567948150667008075341071935470842190104865191403783291097994507260166033230221628172179937766633873223812547280835664272874665882329680055313778782619476104516255697405038663515349906200047638994742066583684134447943821048245474628766826746486324110016994364533963078337114343432389273948574525017416982849076928794515071201086360669682894831340669648294870807309573482202173204885253121207884509205503506230132320821380556035921695717208420966731110588534438948984476779033596381937161769731977121275988075361446864858826984128866538492519296192457320435686866398175617479562681227586307951902413426455141391005549010528744530326221535131545827283297062007504061199744523704012428123918164562206054274078573887074000409189204138087498071021822876513533646866332510902508665697220427016954387140151597196018098241402978665778787291038742152298270473457864707746784401064691112313240347472328115637828441095440744680541542009211255123646825142115105980065079228730263112080771192976168209881148405355996068912629734340371481533375602601805412023809746686162749941541275062763141947331749572409901405355948887913862185838304432963153470124926764966209542320734577654592946976693705947332654835623284441500921538255742761972275414907405734199917560796153942352013271829206065257810742349459551589539731104528347087510036903558481533858674843714865766329508868499792626824914836290857056481724300721426698300378223267139798958888177333471796903242695984256715739088900575731115535020097472348374704546990965356246684850255863606857408898988567788406808646618576264146587971623677513048053573730922700365415877856743168107767068521025937960770047042030770806516778482824501746772714462142429846387300545036550067739421103832460010804526007184625827101334287354678548937515051349809175089878027020633713239791700840847213973200966828309454443980983885165965855213484138719075431225763444296158107033136800553973371009020812528348284531584287694273868496479459560837104545285208024389411633096464811969594952373334230869487403688504557164139045710699944035071695814500764946647407811740782575185241883602848105536826295883259939805531485537890393520049798564179466592063568545789475108110760776700750229194530380238863015064616269284785835381429521434714158580293938144968368060726690194831361738749492399924730060132449040922368609208413283386167922986446209300974122131569971736491672110100213869444035872189600355482850315086392184551702831109757551237249818783040657977683022262430537644437558244920294696048454158693493402125673948009851666603541113781912753104376174525642745138192384978996172537325775543503624443616322210438521057234852709222500331669230932600891372603027018153983274733666418573211166420343285320695577974352836710319456118517146123299484042484052773743474304885617344732763946525722567422804540932933200728658296563003173141934357579342963063681960957768378221366873135079957728742801544299802288371371101829278685501349418862446043745938707927336057556179488675539999373852561996466370360525796641288286642531366358606727808278943559500155080247829603681013253435150310093113780356065704472398139882986395325682349567490849225700525693928939937025419581960189429891316138615006218099875818727078686243534094264472126142730269097354604515169625814005356147962881081165930072768144920581096327154431415064473126002204401445861810481936461599608652292463129971435379446177102751692421807896962477312671212280276294936647288665461107540704136769492530628725015800169323612539054086469586962547601484740527611032124604656411555921545684732990145324062019311415559652603056196310017069445923775034107971301280930969160005466088728729793504187168602094268004297840367890527190776580138732113512294456348772150255688460045362202050376519334690537793923413230992807707846601481446682557114150404278372669382832675824359552861385409077285349665399986661210081106062961247978847642394454113211631077231376659949092524698286908414498915105101612910152120045519550981004903191669506048774994882424058448566236214216741664905660036419028328842276181070344577099685009865907193523368821347994209462781428770422259812193821103036118711535894404536617066359180351389482828678903381285207498211992014579400957229600891664201668810000219919431294284492395045442421491108827080891660736237873334719501915251769792738979482483737941097641374176823249157845499599274597330247939231002829672293977175114803316973529386208880266577582717491080066738255476624583597592648480118806233334390991153378059423005131685539774048364952882838507718466114993526205221987312377018831823770446150850801348853935360169265917535227165971250142027684840873120389795222866563762280293298309019419397802876107615719592824637156048595773545550690155526291309356628672297508014324094908461802239566617650121367485702584871028209866761148895213716206016625127918407751632528966765795477997000532463086130633998234129100124140980337560986886075891832057801086557373877906497544581283645729172397007312123964162020156781404803052188550994371816215054591287086853997258101441115787031662756171425410413232092153974713356768062480467361795477196771727333149943468798894443272906824730089841185876151153436887637544273335057481028688246594666787532085497819449032293193342079477955101080655275246622292893952957081481267279611161073455993976528859927881688608845915933181088054515724841142010160544170122908221696355884788475537276453027704369325574935181165748248953669600973946077243185858331602659724097579095587660209596997332696623776366089495281398322750916917383916949511959098961234548998637327196979120177333159296106143531440329146620621205114745033339491591606779766185430731192895209065358762096975887241445968723838591502803834649063627082767321977972725087793593922359903874411601342471325880976423277741012869990104597180314004851780141634986642609700315590708403999320725183333381180823356152589895478989385540606902063172313779284758384732801119436227075332104921658433492579419803036353294474895759710558322076727993922771818776043616048027822049410105067609996905714226929499758355743565133229340399079177584586244641727154473899416170268338684564974283873284142440668518802381265860624351601151054770374644933528497197257314723197994720137500326919563770310989721941028883036292199773120764171967529818760496272615843202446282721405910521328580540036066415368247553808219816598038757681716341534489716258355625230530170665238327064808294467244871257647151362436850837385299110429839941497553775485536484505233812803537251783762396587959652642619449599930261430778148978849182809775481090930437751685006682519760612602249396841305943468246087304860190570123239056258789867999522162851696156957609335694730103526298434901969390994997407545012544452249917079791102423910060485517152691956729926554700893758861011196025989663461399623055325613120519538693727168082306637487494897219517747469364314084767832385879755885076029043646110324685842153893880238814972737793103729398979428011964219264637337137278281466736602683944190605722604041888713306992367898179158061108906114716178494312703641052031694003205171294463137865954320359178027299782898624051790651116689958968326912701663015784821550772094429869408360968379358063939431583677687990804964688103003256478927624241742392402728016897999929944248849944051799358838026671131614281557788601448354950557934448321662567757948538854142826477987332735663117372433459660730090001345264512730384371610084321177645345920614484811652442714889343224301865626766405682214826273517562551310835486496327584082843009120446293805407903372029538101965080137746816890686527831063877480613686206493783499522860089545865763886076758028732721346705479164425849889168971865698383520253677307953626113932625897316563091475496298832561274951435554400463982308870879243516165958486019228845565985951875280143270616546014236111304346403106110764454883688200802701807763272486395527455406835611054945202199905780510759018573045320271124835778038940746533832962415780849169054742626020283792460198475917394189870812027486173719453410068455520732637887490385933074681012484385369260217290948457258153933591577726263553547818685221111405184172150572136802682974829174266563725193359184650952176884514929922920390817967863175786006081343655908073827752087686359668084376635628415308564953604877308344847509273820314097237478497344794267032771525352040107166967604677085662044567095986962910902712096262843577765056290865990026703458639634891824471960808727236892262213545638740575859987761103657479609329146524701417125704061746149567274268982592941490007136535494630374327609975391094330547730352071764662322131865635297474963812824439193150602199304447047204405393070765145228110323650515877230002125811760426542962693329029386557782468149104519824550291590084386831922540136570948067398333647426876375615011722644949050877213969741725356972720113758763622368137936661016445781161850103403403181101588118907932006748557051805663407527612989310682532394786166720652690322934214386749697911054514560258427860781145829647270307917124349843020606370702276454260328919860516716032626250190668882733808803461836999124147484307599896639714324089537057740891882463128459554975641100914565406379693665411279927547796823601688287865905364912965269442959753519408001933586131810877258868234637447278602419074825280701376576659871069026902970563256964287302939693276504074402344626021809135253636104043649129514309469246359653634135900975772102211182599912220071746344411682793069997940456567610568282625801217245970214557828344257589420218910785013499084453747186755493573367884244061489284008708592916056982616254112264935251387199404927354791822793132076840174886791928658717998944426652817491913520700319920445757603535585024835959747837701480184529742913835771391712815826619734272136843620425782417834628301956957779037373458573660800548806700051799482121302709289848215965351911694607855017913115530226594177035380103858901678047855827714479192891796403663086175695703869534899294597460961581981719480154018529688788802122983607455316455913728724120922231515000448472884241727725543911571850562953425621868371736324464533961671489427836367586391489138597350291720227327271439514460528204705787788157428294916219193210947262947150993377734658271608186313392258076835887679069592405032657694194012917816828420076922881637562218274081515377924928702692475914110832905107833426176037275185258423348723885562717108462855332812354148792547738521648131717371419662909321053097186692498459901244415294470279200154316084420014502170748014317125285902364314758649638094958468449563268339499320450957155445006080295745096384741324470515446799062935087067403798273388466038584320550533643668405132842699677429212365649963226062355584986987856902234485603915420153702551214787487463812721341421497497419470757813420484165269818279974359080636504000939944359885141456705093213399990597233723915132124790071061911647361512794785564588425715728895159470268542504668076166822584617241565681720476934248150631986124825028250306166956278733600415298200580355456499970438538631382925770032619313884020613321258909540244522566146980258715746456898603398602763855300532718214061465592918014325739979740258992951538348330885989295895728402192331462646055593674566940176163158014693137739388945306295085851201870796995419318937900384146637752119658792210455893802361647744704030026020213113517473200956885873805457034043714622421217958458781522215793947961686220599862436209626433160305069712225431920862092287735856057464383038091498191222094145213526118014119235760869425373428138763728949616252602309491159091459621302389496363394319713391730933800285951428806419866601091552870639443867852235210310249889186752741780269042010167745675498678148898210892359059474731335005668623425947097401947636421882641080338133424862819079524203314969088166106347264317270228175176490878485366659987017081788945448640260532515333703956507122702413302920993307754751503916827960903062013014669909833598018098947841275143315326704918128306531895937602932632931894647002395417731637660252738355459537528243337021870088149399429403439377751654027919599563626602395980186935150144491790113547406537594860115965655903704721372034990624307110541383270951801868748928296782651029489832639778267956495550667831718189266176936210068352936894141236781372380616142256244777605694994924737366593627284001672695910980084804599957454991850250860885766419676582331986429192352189669147287602750155248673903626275000177125371342870271054654770245810398582274096049098976426878227632539959611746198687584598767880720622814803384124207543092748946438427811508078840750416486852258154492618659838646009517125760402437641204027540884357924980025550027590427271084783544462631124730909283642300628539674937529076397476832592971249135511767500322915621582615610349981813231730339724166034394889450471980195101388219288440957160434214344172729698084515126257199888398630337081131358858243566097717446356969010963338089778316394981683485486488281150187418048681634003087925706146868045752707644584639710723051943175627816846546685231250094605404719995639094903787839671543996621689652906476470620595174115178378413946723251761204544042861989329920703829761236966457139671066674727272921739235988669069407235984098985667774198347969134206044021703576389212508120096642565498222214004732989899719087840198427881119198462940562095451843285027441341831432444641850405516582539168427612357576804550147425802214979831218347542403437713835797155087585578683279865959036580698153467115479968193133186662728282101171433344362903943225017228081757157157934365265879072475896809214652108626627050171632349536969568622531295666967564451111005574368262447819213013741996882663801267252418048092543866566242462367091070370976173763545246210413622893435529905971609738023321003035532590784937119819749746224843663555522245645838799887644055948784735590633716440285849877823987820882296109761971014809167342607545945386516770166308736443351977625898741907842661765836657474063556977880214539013862982643006010536385633714410533511925977580816312120769308224284232304483208590991047780029047411112774518668515844311495277783173974888775811375824842791330688206467427896566411653103634267084767023267008437822751358957787970103081011041148225436413018554449597771626272856014696494062618984043004525975101294334536232745316071242142825067275798718761940169143295021419774647707537230814952865900443798376232577501088932385709957624875490352049307560111301582783786208464058647286175102963731314972130188301887976730814304160233351054875072435647583591426656141884793641295220721498199518392088789709095043975468725273747311246365020581891487803869340500178963520453957775410106846921446794730903693255049516588169888830672819060107820583301197436050589720706856704527258354550660567223799471453435228533734977092833330944310645953941499437045329393869647768475240479191425607294733517626707171771883061438696435671237225151689765407991850195251790057510608727941503098827104081506630228482382690635422851381321696175850215998004756565331506847207154149416860155622843970763339534071698131973993872409980527451448146288800721991671217326497905554638296261010112138554889566566545768641755776914847799308069198215120082082420637792533261071245995598587822821038812801367147531963606757227169212438602799700421695258058667708252950810527966015201463891473690079228955099955102062202351884686685706481144341327528274107888407269758368934955575975515403099136354996310252248258335400192025717096268860003357522506512759134586159678206708493252551147122613445263297522166352695837754895641591925391725341846099624539344154934642153795498615844658411526428467268705966818563459339526351064024131092272001903567515191575451810548021539218442245696053284587374794976051280409447412737442441518848721016405505303757138694276499498353686427396137382064475241845356246933512266855016043781368689947270388221896612289211200269855193082589150139789098497979070078746004324459770329528990873610474462670229127581856752222366648321572686322687057803981205586345939771224786213216973191544074981542581823003020620840807803097336767175375619758036423062631063619752961180166125640227809043903784267927197674890356283565874339530311053565087333146985780633667409729390450653399160447130676055932973131666574931829175573363473421936958957715920732864499987887212292219628180957914463828838335861053303278451999333206371497821306695605602859065229403179120808772399670328222070425451644031372711556127584174157935190615466872723410940174724976790927824547514735321816451291180635026948971296392047048903962810069447777276122739086615221332049284609209451793828852104144249588223878841245798702430290980061790867304357141114888903938159638255198490599080789139968544983842313147316012828946136804852785346236969288582234695610526319771226139581047155512622688731403783831019782782397367849272267410429552619610077270667103569089471684185314869610017615707717187072931913387241958031012978070690494413453096949121224237056591102611615637083348934687107675658740172914340238630704714185628530163365027593909919104265023184585838341812236780468350921292873034519409441119467455703818340507708419074229171694440372356674682921337490087860109810449574438786504961857725772725428806494090378157181290520970681232113535728999788599951927387976921622160494669337563926455634421542732664472545842783986327119422599014553301906242296043592854227565707333991695834921311312568496750706579127113851576832718127683534658367283314737927132323697509165629047848880359299247287661457467803024484239182181547268555086212145917735597894140293371946353626477580652242137323057903175084922841086439195292951116478348387220951861001204895298938713557746580921234235874021555798128256974872754323670327074535093746847059924486881119477200091796962692950397582623672766846779702265993894840583805824756139977546302536609258671180428949056895325298655868599863448937940988521700416183343115056721112746015243327641570254631270618813827582530151405126370066102026898785439507822131142619295745196771630798406073014541171914023934993611729184426830820055606041104205864279465290466275049807091945574696604541556218816695792599556562706477008914942004419072982253901364932247311567841794884317984091475162266771518449856513285316370677830945008627421406118207758554069979292181441461161059065212120600760155057744098126666707678643768693786681136622634578583023225197825662618386977008187938833758029065387513716847373263382950742049482426003911418403269168473903327602897768108221185710344953449854039343613600365865247159857540573922106754201149261804879381070584902420243185623616972240423480400896961311571065926240238922068988168785802617904014481751870822793470151081317369332588512151692866206544584645173890333998155890550757945928019703088248776861438515185210240311967106827810660487074902290060642030941670195985134034153612600307339891138401172909232553202474385200299607872423579120655408329476821990264885717250880755882426700935318896090039225754395239262391093102063358795684824613155404052305429443838440995945653078862142317387137413216007520414290054150093132270294878430117212720684251986274157076797663074431123802609555752202597334818873493929399785836763503765443216593323758843009550369369000128818011858032885956386670464571865593135739553329744183427761455881274871552652366176356021752098325701836845955082656182978363570718295597312841614855420150552653425065865326253529180229519263537909321938432159809092369410729563290155266481009176448849346362797068111466619025391452739650471446302875737264747464825775551873637349551092582246230701885578207586569067825084952554350666995599551025515767970676433233843602209443236253726795944674227367198073286321309997711110128142465726397013340673812122502012050227083291282348567929388887001147436578954346903162311911640771592877380272726675086098334190017026322154698425933457995172779406754465861039257207737830401725252610355120766571900624940748586068297823434837580903775552595531924157420532355394849669010609697373752686780991570959095439154663348283012206352047443592760774647337871170940806132256473921750859816217911571732014525837527483532683365272657613315997018922342296163784196631389560228273945957200384809451466534770363289933480560136374762904281352716140510271338849309816393821851106301735776770894347964476610656915665971637267410126991892040474737550124156620933434544333333802277534216698677257895863886639792420988620094913762964516632330639843936553525965884200806862174702007784047564036930819873557613424313873505176902855786970761276739589358668449625566294848478651714028687448112391177465438030222150257371822924715374825872477186637978047792091661229993082518675544068823792555057980894866099728219932037219235041632053295777752305521982148593417099105272952537541055137042253260084958025245428554185666521296897239947665802340797609575621223282333387805458079834732760777340440409973837128257318410615974063225931766371474426967562974698038024566502526013081991662102299896773805933530026751985025026314788266935743492445806450857622361755744443776011249536406055419291070906337260800404708390873597702861076074447845926437932910456698941668942499507581423691401855188119997852159706531738684201130295331164476318630729232825463750676670003408647933716478377364253629159624489989253745284108880546586955651169380237246125796849683892813208011353143649041266465747653210760408308333858306435831025899038667316045436273588338044616554922063001584939373822463681129516703903941512082068331917519171644126282377881727229081848799009308573429389853285431450516157361149779178254405270480745817045102020957532529148473046492403089196883963978424948634694462330920814000397064248730704252358901861770142426038320949708233600123978196557899390059028976501747813107435530475870001048505690531147464342588298112671611914492587112406352059978430071806923329672805787677461601429569052680152204308016977150383633922665850740825471194027849641306752015618515205140796664562382223682004619710463284094964221609761119955493601498353198301136765245189077079539568312957528748183043106032901099617539778408002383786388218453193455906675778837360893209827237837069873810540180407087196859727780379689293310856278332451266328365899870211852045512669430785346236519688296532425593591051002593451513328541027667391127125031136440494861823040922217267740668914927825100695609328134022877307511698604206872271388244950381250983538810689405248302734765330134091851652924687726079902880311348908925114607017270045085981083878379040760817910663110452405142015346931135991640308022699118457962860633635880773403363536807401434822997587026969007143943449750099269746281796873096400481426765638243922837476986687141486744031872145888635423220581317189392318188857687546971368536038428028367297959938044306732109841389735380754369157588042445840250655402933492248796482867002061483421926456906174002831995565514960207250019294755066562092998403193891446744461603715590111464187225474050141282437748047080571964770539449134267742379519710943063127371671796882388778417708637519790488743446068606553578722484846536749294476202651085422022960881895482693067170216910202781464114092466072672669836173521880210157471306926397468721186477421806626017281291188686825036447244017951367378522894452559528247131201289882024066727974039734303887631811773168711403396734094233615891072239639509393438330270715194630851322871846151002257406557155823820601145434633226025849548161213194287132454665007311745828938692980230210016082142311540654348722410845410397029551786459754849555354359686109133486020849425559041914552497485973292002941114694547036305219588820132249850427273497517531459851951318115384119747567689781592826212862919513145860393375588634359517106914193158732842461611639996412898825422474295832387167675604241587730670557697021951597492714755093289291170110182818745392074876937649108410719753462687287309221591027840786535836287948867714476219614929658274638224567924375762729059005043434247809310846258149426560955084540691506863482179676101504971400156667177354970150501516840519880901618599444185466752153619540967482812147249268778784978449097432426604717755154704539053044441036623536703429620223944988566456680610995649559788177444328247918814849321022195600862171057603622773143038351417142522114872620107768320130364790345060049717000070499357307199521446022789142061918151991377430096921681202749143976547390866451172845925356767216531382551241161620266004730839289255457912810847517841599048701857849493949769312540648086694854398043520641754291022108459000452443012861113334266975054421634510149336192052098338387550648351800494640734486402740334033537620851070828474254338163311601904454521956076547206656876210492406820231047456941079573487044808277426168720255591500263305497613259653878373911612217258140237316458166811845818968009633354632565197622429553032130048384867100813292394541457116081857154861643973421165059266311356972369978594299185918823390963715471364259234639141875260469660580474190385573327099662651636716883386763401511687905656255358402563021222064280111781810756708813581538848177058434213195597260871589893653948883603764791467917738800577601969357371423529419985951928553936484226143987970687483098520270518016971416687840460188267124825021706829518324400253614857271410522562024893809101914309522684282536760925455663423335301818164382479276105843772511222751608186132926861217855386974219932274662191483159244523258198638529192964469200898286259312382076005126804093625731786820651278839771906381340409921911143843047625439579279464752929062448920898668741161792270219531000189545048354687718275920124837149276668146829789206413039153721941777656489773226795882357939005036780870063360125951162973380822397841900760572465343858082652579099939791789164602424299624035005779047896740169504912913592155236690723540916962028946504206652506356315628245833865382553395096303955957788087664302040081190899385263881598832391937370596265909415527761381279143905469116726211136181720964399792848846715114044592854896184808762827753831464623581159071873531633332227932927174112401643611414296632672287225948512408618493800046743871501422757976705828886725437435147209321407501498552464738187230650972960153067176459549878655940156877830434705436920354186835429637471939360421559909887869947780338292954394975178629973218159639611272567434748699199312161099472572544918325324843685729275547765386732172158134570215550089537719733428305189231070388516738788896485323232545060528010561200309992119347122676104235615286666597883178584020542422363182908787932001132115916357454950537693430863903689752839821877423467022610131828969373068919105825380084154190151868610129026432962547058361943579888246277524793595856129711036590448155345018298083546901423203516649170224945924597330359095743864993640805344659357069852771532433194291530595339921427301047102715682734067035764552963737877850308537226129328184315870404325721117548173941127235969984584207245734874158764077766350930067820398419264794423032453300595466545516014512727501843162717232385895591480025049062197542513608252974371168127860438581489252862432273905909318708432829259404052009626213176675471093602841987184606660508057517024253108466595740960073086583605974996056913461078882499296548036360772358740404928921791025515961949916222533718389901405559910466782493705315073595991953618034625677764495099033395509983278806424735645521913295202529630155378174305934269849071729171106203859746324976672643939732151767092480295358516320692553567057977731659058388260967643862816801760852170031716919751436581941768868480041666154814635396378292828820272254349232014279302949510188194884524586886388718495404396524932683721152061271186482768180922430911340709397247801766376403697932862672937852202000295859895749548267048342804186782952110442179663328679379689550200665036917971442470086856602382772739663507436199782899893271789224755230919217689326908525208304953205195847820690869175328872505107774837115646439933110351354224444288068918941980944084933666574314038127133580931269226402366041609982362040381613123909949238238175688149289533579090951513188846022369241467847756747326799864778494602569919172634728518743827881871382783199258398121892077255658487539982677173901791377452787766775918901327774748320504577795537086274953059221508706425703336243831575082232741169431493856731659531337851568423764080017655422567920994440962634874965328355242835560452106540114016513089037840408442869603594924348442838049782032109680766157680286120765352244281707824780985637142229208633486572057065466105203133836169662424025753310348530203166047680332434267454993516919435236355674387591139282431311687246784093629808596884484845245513550945168521803119252404025131256489315536391686443738144610325101071141980097771072322781682551219672267681082927295923774523943631943074194294214671149055074785521234571162997465262106331357502799731501466119735872169542742636446042209627425596220862402152054363328942280765847525710468466367173859430470444190318952508229710386902747414280290341433508857309120063761171194588267235696235823053779828656920216689960126896434323098480646346139384660209570744709316360198364594207683709237168235279561393804462623166217836739314869336126739084650359867072488530019985535857610947442883159061941717960392071967926883957080353857944266525532035485771500547247744483663722549403755501709099453392749524516926792732438691910675463041831509336532709951308698713579266126170329630556200344405856331442015703762521947860276126487576916460274119865914200177278469464128615491221023918681956451643039418518257665247318604341573966996500840365395448469113428985757436812711919461864903174033633278980327423479915821874127266587493072413947451762400593789810369647094223395826683951904238780077927808764051726201397071270338646463284940600328999076341904473578861287960785347679503581278042181115433653968271546052435894541529431074856693546213968252916026786187675489715683116508413269658265065586820826523893752214923702844236279734988064768106533684137917975065494623220924084670594000019905146427729460877169386859625584343532899023869033987336838365902713486558669607763635748955457055011000901804692229343211869729621615074324554562983394291878336814842971346339273014061597553340554869117679919923505546099831313743606598752140566183424665353334396920998461528375410286469299548177904878366062895908723548991738798789788378053528943275499590439323638197257803537053288402708669266773574475106186193523441105708165351995725827468695959119527740572318661524766039347893489364629436464203966563077266251686694082024809745905401539360221597524364106573034076281513691620120839941937925281882844829511150434047375243414313988320261017815212873367756129856940952439504191422671937849452713176275590912336758906296550055726481027451711283259706837155334690073057384501962322349210495525198309071508925896528493901582517464593002606453922438936060512196973782880290145095164559065581354965297754581734131810525043676573228095205153249937475542337762460901277477029140402172105814575767132677201970455922270560589862062112681302070245489276578455903210453217570591002720435531329363554724911382515611221054035946926864954403681671785695627957744110824824311026006697102176369926313767664272757093187111356584489366235606543683755274144362921267221214292370993890304867533302643083677596751442492712648688460864459200797721338449650925052022594742802927799444427252583229544616981546106247113878944305207893801312888528577646978820701589906878920492060378393193945817679172448425840165291413895903314049855760754090962389496198512781789411757736132214731804152552138818813420977541467269977162928248873733598589740119508379292601235452774706927039737119896072177616581405505674516338803090894772256242753495020835782490143008943852237305271932890304898032206484826628279829859703678842983066867435249940142639611640855774475147545160183462659930325178005601611952067965107860698955709356887110629270817688892472576189571440666493475393100554001963953330528554155048930220708400500953424791622530128548023822823295935766147665292361071939722377707631948953448297567267447322125382066660330663268843769680110758789790485487439017044004728837418325271999134061057375246077723001627987653884096287388891752348641950534371390773901831765412941999539699952217623719586811954481651411151075550709749430940316920013672289069506873116386247064549033276037249532483715905769244438595449456555399237406786583626055675622000161132760269874395560068543748310115305012097969018344994534948792541229427227783727568401726833371863741195061501306735243530184433363575671729204476909357539137950888928384718167942954142243413516899461223784455854785145769570480320033395354282811308217367772260867887817366487821827997970307549758752259076277433035609602979836551827848091342872047920060557994644019435783074074384125377665536027291865492454908749715349847661928423577319857204243808162962675545768085246455066712665565767509447298589350139297913592224189321677070722243726798144762016186735976031968822591575421647549953280178751328529844717688310428516013420757927295542625085703716260398390648457191479439281935496515047479412619656866711002490882773820136168935850793970973368020287442395404072328436534909461443462649449300727364138008756906174628994592869573491968761463957182535949025087479391015983822582366857139740365180428218203992422537989937800881091744940210910899725294017436791952872821075034075564329206695988141593968689060380277715438675028942772312295111414087077059662558914520713978409083278226582522350386272725818067717680567549790514747693383523997558950182757046904634286007451690694948715088254918159478980725594719092491168505785654615119979634374319825274661198349190589281078924271939984552890686489733971098314498086919141156760646952389269598134659817550964870075225639357383662122318458151602797298855599290555299928620678776063149287980139251102636596791320397431300883923677061909409482302862233677082591660649386887255560894074453328629517920619705632303370175032715457961551637630772690314403395703783494356978965936355298038863679511094574163054012068419739607559054328764062025329549438247183864358562113754318530666175588097295325889235976861845976119091769027093623682525807369304674145730776107104001504026935571979436364095070556573896936174491462739884662850872542590876845975714927360349517415607159985946924435202474780589750838092998067621823400527373346960650477549855266862064468180278270067757290113748158945295139289002062531332573364089627758099038854656403588079507295555822025243497112106963060088910271392217468698785176980305885040169534805315803647225011768117192820228819169089874417882158571140285835071203354147571499992645505958306492997094555233384859238381645281358586558649664113444524277648007915279040848572911562262840372910387815595586743522023897380764662714454990800155476145233781843889815530770157740998394710963087631677559391879868238662282411830687488916313883097547495793587847022780382864393078852884851567196412861547168542437678965047034571698953416969572181922807315727580993597021511115909869477409393400766606284200135091086676400563072246576670001341035596781092523248688885854409694813021484978608585194495466751194344915386806627999904903647130106917982082240053381192761951994235484547875014540522355109781387434018339669346186114818888311999887955053836703745095218256163249525082722586751637832304801649807618593910002652964832387435992703393806307229875742653031586274057966641040644934108897356253413362879579403146186664328494918870727599501557504810646767465966633758172636002720787388701633766865923184879471317764584575521250619959582318270593790571444717612560145423607798282002935162194284518701323312294376652879100214307731572654887320229324532217806420796599050095579244835933690483237828458878307796357036165556173537498778943960531859067913315811366404608342882862710756419620425452954248431201472331138502709969093814288828923116195869033439857558177552011946335940777103152636366313289374489644794732555448088537998725968561430989661313502462861203425139965264432654714836933854860880395258545624814926918817890552925223145810746157225810655012335724163817225279866186867291453520842651545585090414208572244262853598585868218257383931519559108875161745293930538590415725494446836025502981425971022287883078398605883767556813774186676861763510332044773021869729486193435551408491564515606377591998809155859039845542874596906883523743309426164791988715622187644026360492593668238544662508692178085573736305370102501904461191959904267688486825021276670241121165711406872161307046541087313065991798197503847033879436916079446286218762679712593707813133426648425859097277583104235746719047998534912081911089262673146548248405248478434584214818204279080772220899855677273100409823033577530657617038819523087715685768732800701131122623226731538302434928780440402237404317280153891392683290339563188338505421735714202025638249697086131916558996661724793021669301458635271348400894841822273571676302145084637905979985544461818030497164259778252116271908907213260036813845312714812708412947596719816767487490575501657884387119298501086943945633096230097564984277785679224184555113729186882399286478134295864537866107524393866807820579819406430670571182892816478720114602925299236129405893409503292179494172842958184814492795447054114409883729131444605784744192115486089863079211450991880586728524265750762843781412518345382845968141804100783582732139676114376107276528067567836265101839833562344464352717146280552865006680991095072855385199708027417297230069166011999449101732095527357017383076972889814128769792211723810066914803296626375059724223781925214636469558901395019368527078992752254794891894841983266633096610731527758314743580828254424643695717162726062856770819345891380004325446621648642893573722993326998769774230860929283897334209041026158538395020571230811562309926566695057365591796662345901308941189552755223646990580147836468881904400157649384029744452795619743863066488423697562846090167287973233766855768070801693978488054750692278428310925161818683752555593487043584449301844533577427830089870522233209793510467518559096171620545823052914407081206219672559902928160231516330381029690029095466062854781491242709554356417411260975550972797642277649111254679377010125162292565455497633308142340974926588511143207902388593720593297976275260612190818846251043904624242014663331210178649384481410904114592625515697078571494875507262489081883629727400759864493693491298914179105777163755411443592196112214800161835925629446437544993432380291817949213331255027198676384133261069911982482345210253521312199991648989887426691726134763407527529887685293711156566204010316872388076039596544324210870310375747134874129462063057669926191066975380583856352291794198923101350479810848740507668885218023741435123682979849591778040125076404994036294818642282088692668255311937083511899809027121838227101775567339150615005171331346569136424619645917672089465750372833195975350945025405889468583790829387733687724822259028251776021383628253304523672359619526358505265164847070344987402980077160986179229487184781342648365593277062190878363564459412465599067468304213338141597470468926904645076059027134428754202021261496295132880151692928857944076946095570807263367231324125139825043373570611992048709588798276054197227281370328235009075563461576294807682509621749290893303029346096492732326749600930426044834842578141710370142556202154232661511101505812246185675453650142819128198360222348056112913639180489602108821723441403705088029184499754084420123691010254799977873971032993581868938995100732535297121390384493082637170100081689425931574600298738200659337906492164440840488380849439772059069316205189387104659603044945039888680331701407761861221861626372432991668438748640173137716004524074813940151930105786915259277814168342823799065703064935530061317782013500328875954600863498006369927377700460290644074253832107039601119854026986993802646220010975940824124099915486640136330262007510143771900827724869034201048048409244271700605298039249945708574110137776157552657513740777606212216421937809729816935130033722414876545374662301760658041809111611135860325561759129021135850160802854389733759540924213724864250239136873387808312369284633231932437371528492804188686635298873527687509279967071695316897233192916989564955259355088179287676582800545203943980845849003195621414109304288151535635658239400690627947954216640525201645338670605642325977967644799535476882193822216422424002450982740433103650233320368955589675265136335443860611530342722012707610584858807280002615123127179606154667356981485374662272740517063645113489496003687873924844469762162118008233181809293677020561368506384271502701629646888653224017206300487564726541259337456354657740919495939447641111878866076494907829175232633864110367344515413066755120541737152596444252785247437585018442775118912338826307865358671642551611397894789387675046663081062780683799873610264378317778985737713531905316194402973763484631720235307196435619818829596417982959305673548825884384288672851670014580104715052189398897078848969171771223264077409668469120213986020479633137014488712757698400627028649590836242057027055736142721229844516913662916818033148521125047250360914885633778259659355048595407312859094050560756809884867543216733872994170422354612837982147166107290397534346833969554125609161034053938410946183512491146482856628997785910909535365015005425353645834543734792459770388988529802707767876472854792799505099643992795163941076992553495712683533716587856507630497910671400331062031908391074745982384480242945251138823287079738306563396024305778640039443717651843895807261666221358916448624581182741241652415021914199360981791994924404728349701997751591299366427137708731327069735412370632642506227721331936616894545904434039293925828847964522563284377809767027151077582624118591191009043026143793732662293658468320455896733529594344546544948470936512045519617136798590797692516556996011197289599843427308345076431297910448502767997330491655176476997465951115936277674266985052704580731378146139932321642922947424509991923084743450649994393778987366173973136540530281143170161309910619098405990312169641279223361159135257919075220648962567822579572631089325000540367396257959622116683960018857462862585408415981254785977241452279156114869373033389312884211723703840181503821606523137960715544774893007861472187438744793833766009196734624851197356526363695587624600449538392611589603313570980204877222774230745701102725291116555118599759187133053928683528188831035321537965205749703780147400588241671049129007926416779801653068797957229615285028968110262143663460330884253330867904243524692666475126158184887352697094955897037620821444734082843739367851528308995007691328851722542380933727928153705735934973163229037079062908746443630197047635015397494040899608899104434069811546560702232813209826301025552383763089577621408154902966065780030239776083910436639882122542272763451648738367267383080930727879001209014123442165713197438857913586451370009999195408450817732807529359453043258488700521894717304216950358390637843211702893710113777827432515876778658886213812563440506873615273275879434586592014775556767629747576181832521396797303424964733124419800655229213696587555338485052144820336521451227945616508213403783484218040548458060367151018816153107746404256438901454896359661306610261868399992995164362005990293958055127859073521166386779653388750416261797547503950495087842193503945435979666498535638683828549680878029865220295642742017120729935915297972658554912655708253036622932623442351170217967775285628679133362578487708587476760124897348968272028713057167579921439974998109585820960511563627086010393705214161613697625473670717429058890271250172873374698911557586635936037971987318145991812077073777183770576437661777585156326142183438155581181054096155023217852158881354533414055907210983111561211989769742568309160987163211407751202926405052148531323128242832358934573923375680608918380654002227848931367676092837813053883105707824682176376826872500167550088803239490420773737349080396857747614504452288014909699971316372977358134887743473049787111502480583614847059302512882064472224069074648214012873545024119191893487180916813544189301661474278253691329360594082728561871389565549312033423790648265572017312612948038400223761405765404397415440173045543147980802686047515477023056471172867177957015993924780098158609909653974961639664015109379283931693600495172723807164062157546326692782699926704871068335591026902458333271363420887067677534285699658467059932340971704968024076860177702619447961427602486895474859943690857714947847091758120340235240381750891827569802034683178516900621493436296550970817504504767326145641720959695013536987364076219250446158485061467871621398136178403036420903141114617284701416778001710318267392259291903569540052652910641310063804907150279244261989236296255873915070336394947880149966293397582092627322670628398275109891019275014203396733759463489846298672495680266914920199254804090847145214931538549585076361625089636040248335537513998483857396507627257458143278317380708901958150327802512778317843961953973569525205519531479822269294099328578401468650242177768504845536212042088038860841021997633620929589808059638612093985020274018629904998799837551702741139480306375240770994003399557710859271260757304708417783799875822017251549849277521350273006012499367880785664130184776592239376172037133524055805938195768112027783436934413342447335275188922243601351068439922879262941017291550875882080467928594058546237581352994646805247402010871186940210315498862152339759660710755659951004886758972373251363517753853499923991072677717329269631382703549127472722811218610763742607357692784576836190353297944673757097234835613427344460920938157899687800673002272135949490957897787427189509274302255557346051200328135414045813591958172547988582731746870157403425533338733441678566145721658120837060701671438294148108040427419690527776485942554781529552338758864057550913833030996594678806481835542474789253381494963804039017971152088718699451130302742326593862140427843795554585391099016785615286243558933313068293385045409259459806380564956712835531977975056385114384157451366914348289419545944823654102081524466202886042974739762185846263976436334187896489028886489273072081710851868632412963425307947716496751185693931608404338231677966187581293956974220484703825933218797919597727879376585598742264614487994788429069307765855315083868230995430945956302207051515991236863217549740648593007175385402992808924964183683370282158088963435602506473827802055260316912599236864313918878937219390633689638109033012735345882143410559874617992100134013160419886513059409531783341194865342863820159413515352341365225649274630626303498518616332923938694159893533914146169987028259140696006368000424294253539402906282546520059912908617406497178839747726506538095844612003203320116392105418178325238983914296297724052047756356831081407058797359977461955367155202845487235467868167100099067383367393808824393308998634772361758798075289670776534494158685339693814086272041318384625516681310205295206539580011649924140609852794252491120991657747120359075206097107708140010527573966995842715937741450449444075784124448685094727228681562842718471825358355274290436945724943129071520678362590621315839960575605136906434215987459831941159025872329027036435837394898751466902433543209241322812145543036045604223489411206957256544989803064824793140273505636336535510914445177032864511074312633594689342169267207228736291650723903406675687820516620695437212544101850832760974763553124342085187802459378204003631840000575699472986014887228323439034490619127777148855809336753002252136809145272029642172221778704510624380494763337621793126705172547375891341670630511111782463092179243823484410448435893993784418906686218357101999178430104486399614637390633889645409532384307493605113044739096488577400599690180298944459575139061932601159725626958492911509503287796251177159799633719100491843933146724329324452767645206440358291166630547228675802214760619871669015582424752831798209619937274138028316494983234818248281086962054337678562084097964781735587966766167605621381050336431938994073433083364997620477476516282103773443708011683828134830944953247556983641519823586066968223803064811144190030855075570210774504152231715515620925028407872558309518441508140493330825289949891716329560691628114510444654004302924987882730570941294808906723212655491523123599211260191955897831370522875596474773450258369200038943223839773144467053536321364024583448806058126201977098625191599280212932018742958968729059373973989785733003550561528418177958667528276656326562797578767879796430612832011016279076130011324943974326362672127487187515772905409013464950395471939340425771266825868208392870229445420604790762095338980668679609736929052666221560109717628262355965446268774820362509769021207047342085498119069520293529010253160168577928953384670087213550048648585373144019132197219184215612618533748389961703204803989401244147081884995438969650723045746268559578377576097411663350886976069730265358914828761663341903729162343120440303835300358790561372170314942984418714533383137578859779739280972683067749034891623928073575659684343015132845894143190515387953846337691587656260343366302751538657862823761693871964002791928045311985956661526033376969078041945601720827051773015494685428918637596296230174867587694283896048769597600820548558371608031904171346181250456915028754185632130844640251528142417172353898862649385451447357717710450217905506171995263834678022611380451653940428897976335689337228794471562407396070594538589847106265507044612722773260627131251753102353081099555848759057048192891062881958550294298705664601084286362724605224155918151829532322705015102296189972602440534921880075485320193591551068205619936041560910036289236929310693456236959965428840410553176209862880439508910094532746695849724248468926332860317407674579575587685471650265462590110808736398620052818353339142002882361965000367108972227543320700330797331878481599684522477904615586747526525767899842781200328359541770488635630218461886987258467501857875977874640929622416536953128556753122362945206692280347186861401686848247838703903073448725128025895786808128102631211136031083983490137144050940094469409677650920121255077085355527937234159998601191420867777510948680997537363054864978726194566457181152462681687136435060120446632288118457308420112360700094548325784221918231573862818545064684875362091037144092740931217735472560625304470599363979949369733544909091796605008120532263416455108100960468720942832525851521847854380980453304657200807371378120745385595040054770927292934574825501744544160223980912607926345680163452657001625425210431607956229005097298341780938062784884910901037262625673531171536030502147778980664702328458158049640099646243190532348411417416879724698411531452851557130307465915413341619159390671570926637741031757332494742087689524990430445755549638019969551260681342482789094060543852725747169188015757862334399699069878445182697720041867984347939464810534616738178110874352397302817566136026226585851615220174394517844365055279507072786745704000987619143025765252635151712004269661779576947687439581189924303843509993682028198628712367362508036490811722018551379784442723143486448716227980087513074698546630013328067825568163286214492927999106010595174052700161002566389447248592982272628939935344847658805630406683236792418977670214430171576733471998454636782369114514217143014780987882262521612649103062564061533687874678279073355605908682394629165729862318117206869993346841199657313375314967111496060977790156923145182317705740766411231440523984825070574946296333353512246585110034151766888060554788646554225081327531977629696192956811159498353264247168871748402293444989384337032841859004010618121636821553098395998954191534015861237634957730153560681338649081889075590872914237845474102443945776830269690180027147459750858154018343903746174114647651544993086780755933915259611693725665291727743703967807568202262522701867813232696236479867554049480210820386476744100559570532724148098343893403308429047274180135443610275413938307879094021243129549578485563031300291139455547680774970902739282709355569554007436372109373099557656069822063498564868209607728289360336748832916656895087596171201976792629342314773087711969161360523401325925727910906389297010182381238548507256967728701751895696103285455470743385961447005992915047554860246925021076481976056288448937613973648382002247917913794378258606785347678204717889005308098473844223995956997313749905107313321806186080001851670409602964923648293416581500538766187276468791956194121460275540375125050648405159290029358171927345516603669278426553859704220089088603686944257284926165851359919520544497469254063220822828179258272609913199923857729357965505509167875522862776148165169909869969903939542928406951619992275611875703264108723193115022611050329789199472859624648545010607505184685987271378465702455950189500053823728330950916195277784409526001193685652214140372532927077958455147400336978886704783997267939918156881594994921861879890252655632158055934817363035815372871933391476450770888680703773501690874083295807293160110064671321166457267926739289531483424809086202149114709769064204708619623134329687960932626682979659761718988290006972095068953024613635936513417630260558100389024810143644713372530047918346377675073482579699787854654012461322152131908931373330864638638122691080275077109916392499541593484944417118182952412084110287409069904401690147991198879754858442268966466917423886669656210656071431295980728309310042886291672597454857004325220478571502253519510596604596702666763310489922883963261133224872023453491126778928466694024854103156403032531120470133430225345108676682549173482253702763200850250382788620845894250824128138540292354024791719003619186607353876841510957583883323767835528283848103533404510296287253478983301119191444971711591881551028276370524993420628200837071802689974431535739273396584581530095416026240157006144693055718537147766706886761924300297557499770225638880597900916679196453148567437997445672823493109911544461531561937061351169528872407435296739052347397678152237409123015558895146380194498017172694379921415037152437092445821111291612597490619527562970333032053786067995561769588770641606098330286673998541755276182675901106294496800035397687789443458631203539793362181754103946017675939365438150488981647696821179888460156751828319585051976710575496923748671342057956161815449002767783093173798733306404369864787620210609008141179401147277642244235684306931387489139599844564660440414468512147025255161068619054326069416990455050698898700578951900863141042371762608232344416723874154101962198430242900078229466265258699492541012207664750373947672263869101197673320820144880156359360161679089436224568353643643034023930843718837625321856724395524484069707801712534141286014683980952094757711934367738029946878365398827546087997075610126484500990039089383623811925700495259795725625720307666891780060448938751327247907347144253077508195112839196596526258351451162173459464073683452004905871855785042633660406137649310798744951418519365770973229559493638697524391794340381894190145349450278038969601467392480757432429180795687562571644636730999144598872937948507279524475736304453904200329947430376161393834625479851843805158191375940194079030411850619044153771641366167767168315666120030795566440172705173402511960259124913979365063925883139192817395771549753343278958000412800303256465949634915135847274412961096419297396415910823057316019699321365231218734655540949169627446741183557446571897362648382864417621290674979403621711811737612715873803492469920246664163926258872124973091788256108490328268466120830891025628949254955637087476810530546742044400262139826740612805604780363061057731023582010981703256245014414551197499810552643362969395871667375268843842883165332463229737829482365393550431176571822418160136023306279095089500308447149042212809505923104217027364505705454579681578704729936596881522708740685016201699192231548697750541370591083704890856445013833556732596613975220264164373768314650577861654554053838669852951796092750682761461703033989071091110097515439680509510306671695984950837015235106070256440206263716580961077437742250555228947679990627476001045771915328939116469971384447957189176878354417676101626602122368521264638986432278028736716749767242276414094442106156078778138626630530769205189274669516860872440362449748015753441915240248667850288423176077246407899725742673945769299743951958203049878455689501656013254113020442151699664794173801115550602940626875444048965117196999415310046134948580882048767179501053376937312922079791834959919299955349138766499518463219702931499252717433641381233516858515003012838842434305264566795824755172265457180677374415296652580140269754550836871155987721273120831495982132888278900292826004066741484083594221071754015896331577684675583412280333768936221334102770934181420440116591489453189711147326087551361465247097074643711990371183328926170478782992734144596456378575670556419648785053280847456025128904141476855323580564919052875404098001010713965487201446816149925962325631516565872163448846175344098670946022039155861875574870201853374633480437308052234042470014706318609309675144998042864598406476780103606412680210074135475315815824448480552283131960807191693528243784524301032113177696639442291183529058891701498784354567722677271027866095414844830766173292557068182524037286568060019658457479221273700589651979771733493486456706776708982761276066483075018450662378575407470104807714484563017854464252579736252786185362907617452545505625125505673845907492242421789059862907957214609938496855954078344852506912359776196507788727520300355640676145347557814197480560166652362814557290171643886514095358317144983804765353935721305892698288241147735717494167256510277572254635611687610785507272248430724831677564627932780284552360924210979887418221708832506718629759568958761509762269475886262679542129788683320150317011991121247265125314623159776231357233357158877438937858568964038636499810013738445134622561404700284336332149745516290814032860208074116116239211979281907772294647974307872055377015685287626241232714004124468271011876552974293354495983485284268328026390206505858459784630548359068547204593175770515107241690705719041697997774625256923109327361705136367765222167469320765748155663376346263747915049952381295230796995398069565664879179362138663175493530161155069535072493120772075621234703065970225577582005851931123614166468731522924152280280407368639609410996604649769908872429201056632332327037853113866389848385870093861737583550454003241081820588938897719205045311534228248487286207785235326719073884275394995779381587164471569163176336705991193557233936604602370574167726723349142647904411779500297679180309450242496437181785031397050924337399979107500800715422697364282174651565835490381641814651206544418122045692411214252216832058058140189595993513354971548298545621844230620178259152038443204509974946585322631678704170540707248769009763113587471353786639300673510606268478490370857723636748093533075858672202448781197668943532055296374029009266947586846081742231361740039978614431566895881326623488865481324471880674795710218284657858921729392773233868582491092667321219280724553802867165478122628235892612439916149269809581710726134671663091957780222015301480788380513588715200105178977693475775501652183735788935270742735125400445828013332681950940419331755208933838270006857221231679971047702215889679285248780285991063858673230184130734186975154063816596977931425383452027412500891093191880323606317112024876711280642277940035352774423333526026119239822021766632334437948158608351541571103682062223133834610664819707684103356336663870427486651939886946978657331718431101534114129282060195773777191656026278718531168815519890708305625018791808368584274854744927046492029865800059407038854410603579363684867430942847101883453123902692118533254029037360986489147238362018636829196224901758982289908043364082433001831812803183666281968003552033626989079169726170372601623625944524157332044418552119167863281494213348552814316374618584107001276382963342760670327344675740668270792642206658155539263667813402793642093151670452262944779592875449126672951269502421447360686537614195423591223635871679962551784935239527717030467937991853372751127735198708788554963513525060773360074780171323090139579395994327825724081080967279950098714137213487889182012860977859215962130387207694663771368635180420881058515392170709003541556386965527433491712535132335803832892997992508449855325479780488682968929995522522451770845684836934652908982148479049405530466210593761001138094489675342276832625904778109073181815449809242496050706183512008886265867352232031085657124062188196176439154204438098216603375682241946708739711285303259772521009318396346850767836374483742623585542085653150093889736553305661242458994449343401158292206285617462627235069537953167092015401710843968880853895143805331357853904442720665467085059522035547928279918512231232503647032246935883395252426444388800878782316493208496213747951274668534517089230876934445506736567610140088082349712011393661371862469504268208106045063567260619930873555544600733515227394211750247997772119860776121331170617042258465313473500226761118959171393217217774157085443233265900895064596909985190584741523964986374704515193100479025203477721247166226819869669217182987320342863860203079452291651390740812940035741359435147776326252497048886033714858578302580841568824663381757940054870002183934017567952063417587394370449838933959063188592871767315940251561853972836596892576794042486389342379936136193679387344520647249450939897312247443338194898402498444676556019786911501900320026009380229798682220089561531449439170279611253686083884435568220191538134231441986420624653976778560348955978957543804445998968756316856964189868753468566938391818522533848782288464761701738869352629918120945416173952657309561269893336259135276961186679384743415492832382701465627277248652422657853470036725501297071312990304264278619680587916015552559294010852263708459483398213690064163508551836293085833384457768107488704534261574668034733495651623147891295276525561940869045425780222013328511708470520850638438307954566791708764083377231519626818303208786403890688224213071848618921408545491256034492918158595114351945192987173794320417097806613907309326560435419990316843076790674941328733743002160616979351250165336212144237979577987510727507873315609480044582113532075924946007811020700052116660697485974496204080253649289808785053752083916453273943437243929985118530462333210178159399988671329775017911720770912324129344727124923421409517007966091393367109900601496306855942852057062861672631724606633979577461925667835705050460136589448574248697690311005399677277877818993373345091421244215652014333411394687718332489055790986407192313333761374043498732221738669572903555566742812051145077495604550705959464808922299743294073998317032548021067181147718059137553327658233866666944144692492782451071430546432407473899882579817606729546681888252388586479071678567078638161127489004222226307903557613060289431647930972423798919648451211923599183806032032364486286331869716358191158134828664377115265478804915978658167944393295375847590683507573205651030278932827275628460298822696406777976113451371132211664272529333767098082142031003678521762350521384965143328318611783763862135177880875197168463215348132651401462768339536486375415808132465070682571591573606641840471042480374921985755025755435878185119916497971282557669175165488994561351639640417889794849793004123627767953134112036708692045867275527090853119750264255778385825269223621240135698600381426047254664436625356160624602914100391648611506116446316774720577918087646276710481093538485064437813849367770885129373268433025669750029480805616130999237796998467703533456651017053638823040163699856271830798332927579642383210369645201695389736176118799362244328511178786055614105672713436924744538656902928980958271969415970348532122004023768993526172175935769639978845415376423130912763569476126499153629791141962619563003745403973358364340262085210618603687207095909008763742298938281025419010131869080116240900179634668447433670319644060503729069750793538198067478382382136313109662437225429812643222156943084354043133670792015817828574753033456987611781348186222244786583722359690048602211074863044298327538425525179661747502928573284077949558777765555637040686009964248590448483205502240467141627912253798947405414092841512562277874838808008939533352471582707389557012030720600565040105108950051766041524034680506859662641490699029112479852349122808092751051778110989619439059342572002593367930179829137585909667796392977636975881748740330610812096319442149528310145825296874249640385400989533432696658467863387052319350425126922276541484261246208420048393730130320168794265515885776787479194352334884059354981527654148612029724415349075479704013846534405499761063872415671332866402542817815276083386223830886788223902506419233470286874570348919332178840022084702044234638975849797985213489659743672065949967291226167217298676848001904129275515575108806935095573645789739521495890675133021573896155886415135490381132160308887569493972430024023263659881852437223877136713999799174116224731103494470751593252397680496875023381041549183144684383626222684706380751579562251398159403821732477787372584834570856455213232160143537665606299115556737649918656622686603854270809331271116617450063873428194601331979530640948827418445987672820796255394334715977832002785288255719684235671044732804332997394406748349563912099656064556620032505818898597074536611861062950811422419823932860018456292297545672602461666660520029101948263865139635289201134391659843093734574752417330503817675863266346854942057432571026410676783355102474949160599098235569897703786611468954667950877101123895046383196498875460548537078087364634461413905978694769233641552227804588029163041946386320931177662456306515877651467769166733959773229717404880635026241686681506731090220426745706331577939953220230069859496958341452395902856797441658940932449762808037129855178617137488276278649579314255959489025108879996347905097739559012660774873230305040336557821836500159925503667966186326594192822511396454933623800335372039016996873632556045997719248064662750801783895413524361879263130908573147270788324223339668456304870718734852632441215641399305690861349166000220641264438633785254566579974044056192032039825974789619305816719617269931334373503812791471803463602825104299766690164130140737698870584807519849153218311910826000382479066790019990601497524795121747734243250774322602239974125258129624856486678621438584337895259335856864536406062732762669690236847856579136649526913320198989130366109653768372014095587226155603400099146033318568103410752201734604102327230951088804896902158400762687180006407707597229574166440418671107279956761050270372132526606671013422808440252483036544738950880166085402305458872329490831702330307707986827050157460924774336610034262424480315316255467632544519841596523254814252029903103410187577472797267059468630436746248354198488217175698685334824538325013360907108407771003592349532916686810593239664111761680105533608175497552575158204188387746581618094783133257179887699719992430003596070363984156644722603055856976568059907334116652426287897884327211599857533537284015501713309428228927419218841348236863311607484121180048519091426245592908447810219839324729579741310002281391714099628000626836798913720473990746145652298091010455112053081533669920243400255052177986406524935493128088899569235989677711808831955372868839814609621845987424403195229157276470527604153640070988390842781589760705698964431070974901043873311436280983751541271247997500696494788040391994825726883322561790149878365668177410745523644527096414711256162111238891105217665072468779243015437854418614218640960144721539946520264581917620643972435091876837786716182015656781040163702707799675842819069778127872807151269199995692742037320251358798138079717912939525931727384647202650947141072246243271583550382054989364217435213837637143144439376587490032001373532997254800981481594488207243934663589415744108929647746916689921865556092697545187013858949857088313053395438550656009200040799242067832486607773979387371079541057477068101052257492522461478101197676641861032900355039471252236363574913597712284083050286444227549906025313571274829927897342519428618125567114969688346573549721944648613273478915666056092265737909130601754898412309774105397727731754386030486504203760833846766556647829235790831557668698063869904224652027700544469195760248445203729843055434063987538800723106340534400440436445399527816087110691985964689286801854797521646607488429559463234790881518145186738267955544097130998851663766762541443006830591681331950593624430335117132342183940126286295537219679391517967659528824689371154748956834602559603330867762507882114767131770823369012378919304974945064564791395458461136008548231778635474491888449340219615177635537590459792291518678378516452210638216325440774009081057850464655129538025486177341854530029336796293324078980743273253568154992725777275602296316679494630584989999710980141259219275906040417134683175691006789694633124749688405298907740291639006244605884270029498067947371278874012612857873242426348092075201864727175890023331922485610355235293288611654408267877043303248111616639456310866796675093593209716139880432334180221473409153278636278695752808051425175795811508899856956257693776411458543574003920033853696839450597224159917393373337858325833850017825634262071831499167929798229683042135958951043815015734332886165422784681766277053706192111144111421450266506951418783035879722998902032159941150125920723085209782069910836066321394570644496844613086286101182071437525639393472927412480508250101791414160656498580435381845399540487947585112338486685282960727446694089790000513334133927849640468769649322066803556998010397162096257267279615352652492003187498250881194185586187227389122433657826527963587362569113074263226059238251110934963222503308500581310292612214556107392519599032657006465259544083731664646208122984288395743390432447155084896327430353495811380253555096276071186601836867692503018748088966706598543371797745835926921707716207617138869948510199769540384996786560904245578125355916888073476163272961569992739567851473295061427773842430078446477533145602795266372902350000082199836466052878228806018503636557272786006704939168798954626709016070888643518742833137223708013777043248903314024796322373301734501740233583903145182621321859098100558938834709244641305650420920616099797954679242850183889953322994487893990518421011316518139701139234308862128101595398361296203341308835899109382259079609433154756903651165952625542434873046159622732456491280635814228672021051233179701577159892908626442701798177327946652559793279234920153972393822398697305710291887004921137846309423168637819051786128753372031570329370587590739457725719413916003894940256733063941857330256714073344847284817231710047386171789668328732460077253454590218237621218892516697709265755039493554119678842994423600370081232671580239783715194741015245820248044334055628480613255095062267339717719607056717599805256761092837564185232765798614043312219649393723884249281602411924941724318451217229003630614539940184358214556605073214594486648554106427778973852194134166254353674053034615668401640657121679158574148866345246060280567390243524455949459396475651127824412491859069917777701423495472058822713736943363937407119956174756715033527463702737893150965817629672318148190936566105793298941886997438051456612699472729622956896150716353949645052576120574053263380091793555262541248570133422811762270345458921030663433675560310373011749395099576923573453061037510005515120592994650985401989859138603708907279057840781160333721263862467361649757623825985834161881824953056605346507173267247063391740703720401974143621542459816634343040744207273880831859575072382028535243133526435567343247009860333132066260762149638614128109940095098512965673811163722680036524008311883396216493725485054226610045861238378149980502299874515612692341450939710834010759089060880790758005647339266044692277497187575984586129336397624369542388719164520338074955531577094933188705030925712379832544729660554398374218420878468753825255130533594258403595760815546267229170596032476894483603537838478676080931858935031478472200705106341350308418665676308854691453149392694235749537280774458317718400170511540877344750851440592643018745980569136987858621630157348004487598034974239181692228704711745084440915514352110865270254198905724164287286936707820161373466573370155910323883423095901566158297851076135115187506161589829731942245956048015519110214666130761493888952168582540341907569732470426379742388695016970463806485474876572719004227230972912813682803511651863942842074550654707587905807702061825179007916469490093441853386678864639694381648345548372429582282410331532462067536541370253596834677306572955934581274138644453464375603624348371590421767974236577537851723120276415122331611857420036456546954403480250081144611788069137673356390769331117141703422553888358226298740244559329146419609953922814308513089132355927301089785329081962738238479215681198022232152332150973854625732506511218759173685299234086887883425060652205027003457298484865544271685942501015626667470305179886735962732084255033481579361798569935097721510134280442703302953369922218170173079348738952516107724728478479136093200727633069739369983498555745915322758618125081883143899384346438883269336653013502348779474949256002579638060077591893008475267277906076131099430151178046481739572603694134332140964334302283730208408314999172526845171431932861640171216828712873166565865714130861357595920841266243629012208533545408670381832440759200584875205808992687411274724077805730865993401874138406219786294524090681471082120417885226283733277651792612259187955541955978270886131564592623073038776078627197446833600537414860969764099332458236607600987287226933124573561925420495753820928293425440029125673237677571666285128012988238498781006742450390316752138364255222153451797020530637778580039911321398557319058433787704150569588897466489560954577320900303049422349758507947622335417614093551174390538344352302054055956047527782214643603081747682168896401416429274593197225034368715810074993760088483333382681552196617029070165060601844689290870409528074449701351039675930550228120821402053688836274146732555596919535758859441870280654290767408256817258682954739477174580775381344449710489082005375404899800058984780151248709456889670311878283103238314664712591597002728037905016491582925051257775136945320848551721850127881325366044519573667582418665085655534364496799504412043634912130608915166341691482794529809528577861699416117559828731042287123889914477805460231815682071686312107956409860985463149288953722724690331384500760417926860159827864624786445444533360420810767853606860443510530939672934846701375129056517623094710785831040369118321337523636008508688518688111933125142589843429298132129979851983264268931868067883530077640299560679536216580218832085720496027448584627926349399246434315207737926359372098397119532432155834549710839889375622407450260179082648644618978055665030825239369717404424649228295014612584349656360588270366738970935307844863880365783384274040289934066624719379956235537593613567815992154101700091243767838586712307960333939222227872281300034638212004895881964824693624152498859149738426682800917289787634780588965008617657529685876415409864583768722031775047705171615744504876292553787312151437659779327287841437333501935310711430784130469100108955550753991550000635354704045475851717313146954533689352257186893011793145143113916843101130140159209071373293636022502839413259583413163272838076921552899202812637315337591415670243897948529715312806960201230381876964285842741553853636587975459327812980081859378304000431802049051256633451999275553893045704311701898383732011016516749258716313402213476166283215922360190577317251266471844267391368266295076698111961326542418889744307158139041790303256837334117387668829443776141230871179370843339386097722863220153907390287183613799403352201812699191953887858304286741188284649879631904774082107402874134520472905707189272144496590868895800761319396332855746997501086730856679317064594183732260484064785343821971456751745162924736069354078886201338691485077653650788920904223025168535499977916534687200571019127221791502426453820579122721562978420127905786997804716272518457198447163029815560243276511980384893077905340641751360251897353042805013998689800917577874490439489841748918555145901188327912401014103155913671144452477293807921465518665961362049602927426805777228206858139388549977900522163683259894663538940345330536410870517469985835850075618813623296350042079389643869363110466505888835159133972689964987448653217976576562476504703066553790364137645255454041819324802614715807123950392386896389465168567243853477144647408713218725542441465155370584342517318249065605727947834451370000224522061447245733402523889556808025336240834373950549412130873957834822493222428036333720473323484347376590452908731624614217983577911621584305995181091665778337165926551977311213780290989805538525719678073553406684510716223741923518288329971819409550572185032585707242326338829165919196490196111459912169904262106246859286683710274926781958757373842279488920084606195984948858099372943524252621985905905273120382601090011799696195247260599879229253062201285098845514569570676986983851547268343565426631547261642198777408972619922841184612876929365655194842994919074261025869795188647346113330499217293850433734461818261970175869075921539758969096065827886744294256926755918790562395804895071944968827787466698864021748373608116238822363561656919315008875099994682723509241553044444870911118239358951494976584592843037104665102672846701759511429462176055517148144755343136436116393046298515690404582996899518678976371373009669588648582053293135035684619001806231941499218347219949990294387624293787690094193416562336234201870500269892443087883125642522404268511375619941361470500978283895593573945645651081531556653715107312245630896230112647760597326347522775453691648819662327817097524544753855110588302721853469409736710244538855625865661324230390719857513207890885442729180547100093788015248099399227691301638723579457890041703806184109040562860489764009498937993345382504039585465361896671464394404815730265080649315519109803628621970649588047234278233206735098198184300459640789368498789996113283719945891365078323806669811528040957342843521942169926286648924068601057254205646514320699559167124340714184739282723395882231008524332445714805748107883653591268102972036627557297685940823207347438447356758050547778248489583842897916479812465210524450514997831008050765942445939127992173140999335828767768290434741174498281908540554542770070549243024837851533327265732148750295127553920020732578285571195792553132010196584467625813761846344470141920755975353698592403857850016991379271869661856149862043365657992350172845111625389918349204457818346319609476748474014516571331920105322858094015224307380803241642160512491896006561672829200811210789285801818733019643169975841595619654078200626052364449664115152598886448866006620886052152137661952589932868879520465622233562690935035403907188355340627362731767174176443883749267433645789048804110714121161389457417800355603238853721628424703830586975963325375617365364276858550711995476849099535783926235960267710417940275701243019025795868189161901267448355097847622389905161625071081999702564758559938944193900788094499301146400014901730013998761206476927784528898125508958637521793315606309883237114649039654139674699154635981948348259250055407639447396468227894505554882039062554831406917148208699232405707398164672427213088696299351411147334016630633228843395772501297091596961146364954139317884939937752975313086378373917635781919503499700169484240772567213714707163218041026037599324263285117689652395496170406223580558719565918356636005483216809812826408085225820055555787208021418064984786725794778717938549623716515049583772437373976284001733692177936113007388031885157857386324348203299770882180299134275533195666778746959332689606583210588299305314148280447227483852967410215633454790334826262240754787907756165502670051418772070743954111800441225011877079526461173879258473242978008518008746276740631064192333296659917756988782166262479438134046708328869043707232296843708634003252400313886365441766461793628082870889766368392756317212815181532115527186490373782367849803892685888292333345154840404679005459080887087344306820620736959657239541623477353618686751010740701439223863005484434525866631535668621558240162013920129964307359984327249270742761535989009549270319012642952753801353835514005007724597148806764173305214968811211080220231077133704283506713766933741017424282575870426649491217653437969950192747919418323855186570707002445796142589546531584052981885086250443165906051335404210467462010185733023206039688562685180243489409854935578713974598293285660828699708751517439431906619860063028326330832535153315697876836546192753159696963604087285385752690620030769455235951306050437677328338044541204687965978096310153790866960204624865256686270816939862334525739815870535433521317322187258685771210146105444158749298898939536228734725299108786477329752850556116151663690513218700621522563011157404041695133945691395694208726765716713934164537254749000643706025056995506262069253827056501240999420711858946922363923750873086896960445470865835323932319011113147231566273525786477626393170365012327672627092622654850868605484525527159782301230768457013567461692106422068861769971989921768242276641320917896554684960848545980242896849164075822247752926708734928248023793605308004389041571560810665016528657151376806636068909923323479284561946007610010997640880455566388955374565512588274875368099778975534759852338333211398849477104425280000809770031966476800026009832742975315639632505714772882730400447318150635290436864526173538249950441187282351198469635729128201889188589621390634125601043348137868633812801142748758789136458800194779127143097318584792960183175089252616001281934057136586803575109871366883404228339096969653936168894960910475470914032140827671870164276114410934751335455842909033987941736750406504174947465217694194576526703835761027629795065774738595473794641411613257933876765377672432764799863038275530385480123418814315489984549846826739603582021546562894843047757938559181174408786323227758024997386120082399929371330401686629637255336754931528726127808420892874150919885357604475094287852435085618224436810735863840214179472448751780847573643163489258238373814051357393971784370727718476263578312689611157275098893538058279276782658392792551136672746242604491091832091404374669113056830917560460611172745534433649162324678905224078580066815265536811761794334861196999182209120418431753858957836739005420971424198849727344520156828229923920111709992646142444297527390886347056412449539798355708412051146740440608190311550932228752547472370154610124699687471215046316879653133991591673293653744933280754366795194565981210040949672240084432880594899673623689531190550406843542917147941513784246021257979749993965616575411985868252556089724551048646130483537543199174265849279225823920639418886767851055833718621818405642433178143929627073009365502113365085577001663409759570999781082204203318723588715690427108829074275193025835233560187956002883938255158540416575286704374176069072905276905192994774981062624780053018093944824363425003358508105934692498020316359893624502696440797458098004323429751719545732819592764913174678322492768454038492474529612361198349440019124462439720069338219388393130784615067298886744727114327527365762479426355881839768028445616529744387881770470244198360192684696741032387652314794655403281810521501052276505216260253055668252326351954029926557562209733788321095294949816604921138306096777471395102079484299389943740781085100074704505656136062403655764868349361688532418537132558743802590874270225557759348441413101048954863770751634536864708489783249148517525091317664764796243402249779454549188794254191252508980207352961163158412701068571430836609761357821885337605841669779965182588354692595804751366006665318201969916294808961545255462227110505660948648441104285911637434945056135445226902720629981083776463876886360501136830985766100063193104595707922790200260264155920923460106237980763703148478497599107256077965440290078609733896969718442175051424586575411011999986257385445831142783636008089675254972245038757974571817063061853138635501480085661662563911677918203483118789348479704104271903881201499050237834607278613789226827260672578808332202787839917459128914586344924861801776039881072373833937182215000703387186694199347646861415561237701463766923622548388360484582534341916514461612524199818457807981937947368735167465211012840133845016600149515197618366520520355518134663628242403553973090279799761544822558259386690876339477530531411696991043837045871575944128815636665223043794800014213833811051218209242513405902912832836909223908492302066188543887278851797613663408452737412586115769939910054803162996721974934458663700450244865963345400122473831670666280584633890830954769814981582255547669730394092343915835827840293511760464509669156276394397189155568457320696837136459365735545126207128959129958603487147048120652050379546234944444067122653695018202461352750164013369996610897742900036913438203388913307141616893657457532974204993126972728955613132478412793611305814218295130714295841113275435287726838940091294009728293884864116622661492390021361695086942454161369595040704969351172598851489228720651428029541125995638863657349938985527678157897719717417891775452063272685577574815455769439813275207640793112761291498725102991614735112369926790588111729226874956301933027251583639927974897134178000593521622689268596056538217095614886423154532679707383460192227420262852099043819911199878264450386527694459096020146161099538233473617695907933322502921350047581866045457716810573240120572474773303630622753507664648963550339563286818903466025529242135020515800008543149119380128721362902066378337107181444004724973258918575699322783015792104475296141664381432807924062943400378083663026015856332214509163332451671729216011487681736432006850174485534925032860307007779044770411682057216533491164131010593533333116738010153543658013525751311139579844897378488244710245676112693742775861176638611804462978227621551727767694347336003834313005051836727981577310633086678674877423841974549331600671033941979525170672769072050257841521625121349375398565300789793384408095651960009581991731683733132663099358889293285939325318941792176637383442924090439823552033684060528467884082630120351926210285921980705926131625261895125535362559650217620756572525127059995427191329072311183740250550454045955239347663974561364573482735235803246484673129695448915194380532384896036980742742553806395048840290260804051068449556071297183474472465528157763494879315558644122726096810144074609215880138531935695738704935179668745701345947071479351114972689958601029618917077397006923338131178934793715960994938823055668965385798944895770423799466326890663528104114826775663145841080243051959225519506744578309858479136832307715039978712139790052145451294108219926963335625798568444424275357882704500649274875073998222343283070328103828420020851716794449658452588194946842351290210652487809103995377327121613113069659540550201895073029220873075976628441434383045987252092093620550374323495523717261539213574406851408199109801212522711568557458152343301020451511913805970665490426960385709988105273986679859722779984986778340799198791538889402345316203308835213364542170114935522186214622467779300051235002823467309531191842637478053608571460702009776429505234593322624684409615480447163045677473372072260106649485518107876722015687451932766093442406036231899661066984558117238503444482109923106687280231630934437171856661365264689339553276385252790595941902896586413274803236403384359587990186623810080241497520796497590647276842686323837279699964447837104254020599565006152032240981019222840292847991066791831825803610983182612494816450682964408383874716917707737731052787271308678068034978618606920953886858619222102238045746003553830724215775001467678735640279017935456447923539126967985634605875622951500063796221131653328784230502283647561334275786383553072885176982012742133812885406385168132492256347832295117702284066306562340969128974619540807030586345480566283258489544971096851893593498204787382216758396537016040259038197259908241607190251444723695875139028680993076467367141636500727670509828050596216830591453341946035912737827241707139609164916444711964616686029809832398676930840998681785943523001535497349831600332607293177198268142782749874775831559999068888632998318651484796751881675880862567855184237013948462702398963668098566899859492387380481617633708090911934909352973918024276649747742182726851957814710573117803159481597564038048088782690605542804362868583011057002790038092429545886498365426772247900896013692126023361526107707910699759519272340661443459766243209472402091271183728998897364712689233197922777308684668234195261534291332797543641277342120578462781395335015401286634723963666825587707109945168282627489258042090286307147388363673081542968524253028978846032979635843584057767061004096978176387407116555607277818579061840492136507309177031924691386646973900398116089469290256113984299849396016692465476164656196123762792586642841133755274427582291778964910977473353077009576951229231916883243976169240464766417980893463277789697664989646465270100011244335588923157093369396692144482382890469083843097353281825725896656530990608675086688771166277386033361166616792533560571423040969262992189621379582669733626971241938822349884567674674497209111150089196227953077715357854909468175260408907403614330110062209655671255467676622138971109689268720654809462082461565465287922561940420374035172101890180756200690601332684499601931093993320844867923865208946333016180531275001389895929394336984002051304632313560840878830243130488065171573697863168675236621876339470759246500041259056478658376577684636485353647574855907625540354317463256722320808113656832781227479145858353858883994460522342482415929227816087950565634983970942226845610274820308921785709440522741872974713835056178516852429231278035699243713316812511881085350758367488638379840105717587004318898441898781259289605054865696297538866448964457355263041377751687937594019482263269477129382555834801468778719455708549206514359303792960592152505638478253097920355369688003476227905640134163664839620600027184328433253523156659422237743938982225105264514213192073494015486335806701954867812151082049509582517877476817078554338028361411595168783947510870829734120728025004968516146653248214557208590502166452601604640189892397542438935438731514816054376066663482467012941920133327208387624456692436330754680114037233854910917228630435579948240243209078796572040346920382956664371425786334945324441314605164208939505829000207551331368560836812973009929997090826603638874424975362126127704496484182287658686917055177559578130802315530432324760077289608430004773911502009448628953714719467165114149345381829752324126555634814129709264389223487040503885203795639028769256402149693430237775729587545935851119415359098763555392298832535266078479182789445357981653588647817585631476672249458239825615945818889039551194285074430516315129786990524040236205043559411028975681649743533596922490992050534090524074636267515311075335152786896666935195832472347261866038835474765479586421994545992861516315867294723334562314571173263780434932600028252460104459787640066176482942288135880938233116481257963446659946787530368914351183740186012938271291315636609762327992688550390601483615881097654925535210561362152151682218825813143550548334853144831563656847013856880458488243888797829820004115518155801807637384086560522697305539620763557112514252154695125330563724741247153151435848380092906985075007997364226761911647620326395697066742825523270935586756893190904053736379346257851867425894324247693690636038551250786584323806800555354328735135051620835536076969344165534969603247785506297873377611728893769502979621959167976471943770896517311079973674299826070423553402949014272566228554761588523103174980483084310808901722657819692188046910532942907292165196306932315613282435556903408168688477165113686414365649338910884933491243120971168741026010249860484165191377537000049349200015196823024971900843600432059122465266356835614507570212161125532452055597581937926673873914362655879973997007866737864191798694345356370952218728225576926667421215669265420017251794210238847548606710265529309301958260450566876047760902249616924984893002668158076106687360337751806445916714425978387522975747993601834787201608648450908304578557225400619899861738860764781449290831259808067964334424008406265158341710648482967785679068138216433813055666111419609932168082093315823029302639056540376926032511064460064901849295514065085013198066735190021057962189825642040285997495445295380919469557368268202299282024847580227818289937064639707404738386141386665109927550752047526239524748868219951813332804963904112631803893576673248041018178512033745731901902366890537786450375208454407598018079231247855543165133571994398228243584794262818968700154360631045832147821766242072242538108297061670111989254111070815465917941913173762343785884627932549590154840011455111544126685509601399437639436425964787168211912612710945243271168688069534230200975717454098436954183108552072965997493512984932295259440046631139809196538293224957368625382100809347302145036541510229154619712467009435421284173055159516546368886210570908795763277111325699386531190724551895546681882750587010919076645425430112753018899555487691718027580111258848941491416780999396723509901409973433982367577569349493580477636278244990958807451012538348091824408628836055117550800710475097884231833348483073615237173893458813160619467757029461109153650577519618972727567126992447772434187292004686508444433631555293917691931892800470294224307824587983696481788486640224399053342964914051177561965739795310827680599569947825379310470334805790219804507613719589027851040058228833147953736827901184355536391307747053195118623571734138356679354812031416742854286240128449200794300132959057770694368514813150273265547902955040803698496232498253419890339391743588228660568547612423544444470798931105425928487067427924384987086711807416161253071076321802202115846328928760707881683413265403666524056608948511336037099244528931046910189553800444732541366513267004669446628532873935378855658286785543272460576762567631671814951509825338050211047029372789348934617382971759126464787656123684330657140652893475052509939323925768832098649121969317509375048237713592739901540800647224424396324109654422337028357964574730033756812116493877907566452413293225476830469273694927430727454008156638276869812594757436778031284367011033360802726522714019884733711493626464271029677906269480339917667171764180682298307932283093777052285330884287366299780818948961518762199612768776136786826923914779643102672359871151339102791790777049624340388009360077303600980042238274728196299052785245887816710966073103107905865409464364143654236476719499940424279952960061408488671999090707113639717737633991133846557694205740279895379097569524052669115965067101339790116823487042747439466531887874900346354629015249496116702259050008919394558163607646473994853393830536535939511972875332334515988144608096983375611379604003960143038421129325084992161890652020956615253536719229323245469410733766707315929498419172614355134880384894674209777299909398110906420380057973209475987550496635965793271978077194939421898697672858837215666947755269290571780572219601148940258902365324696056346003188537271021889452777651781566478682173048234319218978864850090189841746769271727069816969212289289541925965208414775616753417602511904968697161678728867749932146286201608066129335795807555150636933121504203292416650381849348968071737628276807465274076170641660963666817129381070294086895779355708875842499492897605273491242019387082247131599686784847164638957075309402383117426340887138287363921646914587202916171567111830605446177523120818564846003653259263253781250022623149328762589493109923102910090494709083411845411094081415688949421971936146208797508650138447231303680152683832691269828722164383525973342083073209792509056510176234250201938955773427558880478238139803495169433773068152309215841619853736981623406939756572187071164910550960998335118851058766477961448922322831523555614755032110231016067225235376016704785110045166624774696809438386024352056567173679385533782349871158399927529199945749034223613375184063272090803114782640643068437911650673072574777313582760013768527717260491826153618915178389262219452909954473634339978339064988634431243584924275469825846090872499740186203710752310442246773671666371575844200636598597025045264566993779586578890056325150245613319894381068274481933039654476968555376362329568640541532702674208629820197748196477403606248323225898030901991177520066381509172148058210217045249687418205030650604343269363154663712884407195857231869013363690358172000512246073406569202268701333009149625234975637876313476056419480796742274954985698863598815207960487574717016724979375864195050642735632783766269340404379684330638827261339844275523595571362445419481978936721151715940884965838167671751918169407642529464787399145341277153493562160164076286019257175850042515549394064977405515575034665920121699037158821060980607326155798843965708208543432778041971204200452790108296956764808339768689374023703645783564147818129519872140251789265944834303175562530401822375334178447965070867389102747333057467183226658340763064345669251155066646749710951876202097360171876402619953558024741615116671729422958369998085072801245087083851487971856740122917813138288816348117606788728067369353635167409327586354197965467275218593817233289252767913839984123297946676536281643916311307762070588637237223193736445302102493731023456113314497307289104677069510538011555031628896542977515844902975082851316474780318956113549476891176389130117684166104634077311467691780059686817139999273313727319393829626944992577791207292707573442885437236609810671148458659044730219926813446743390933586290155164400427636435866419357648110073119999059206044934026169616655786352393541670438050740980306319595022688725284123873812726503330665156351266315161667836206935269423381051379095536261885894609745844223919023354025301852368391731025838001222061131180247246892411692793455290036539691674284574583425972874912859366592949131808914578047700881604756294621975086542446416058837369267431693174851382498931704823819106068888965800134388341717731629340219559935505644472940767973486233121373728963488221684683717218542914895966372783177646908237313092337994231092441229408858152299161651709308467153506926601861940119299686258274751117340950626622466384782733641634352983936139675498550084292455167369450481986154968139780534994192173925296593929723883631872498260839937533757287623238920757264990834805085543738972149969113308102662727877499865558535172650462767816027359434034804398423449338659539147948830396441300492976619821428385553952482572793188879068564708447308818762415104712942124046106579708397720801281586897256893413998775092013916456172071092168785961712167583765753858665864673937948367848256493797405920617412719841818464900362867025248786030882756724914811016851431664160768827344223609896720697492599516201150961894973448771995397233524097521698430787725087428111663314508680785979596766979395511159252537924499019036455630347174831383670235098394766590337115066536708640016747750583262057653415523344097918134532837543689027670507491871635004519544628439441386025970648225274251556441487087606359329500976085514717174516029933404678024233358067624208675512677651849258590710198665223418673516740573389898684764472848457978663053913664965940352789878320048753784167854763583858439150437640431331992951258644951048860098057555015830289325682694541416242234456117527594883012527481622202815600953129042879577994167162844875203485393161668431448728627156167348617140598735328248628464197662420465840660849550413421691532246756217301960787755683239389681100450741558630439902355373414007566811288974037533975013481794218952052705543044126242654381087394921840041122746576086045487013049674475859608848166367558344096016791098488549964604177862128464604442805165139336759256822910597025291053783257676480832169826154500975032768830845138848655738510359213502368754092634333126305414481224715531096709213412409896786780247727472398230064357505010285932271465110032455967778722947962586245556943533765116031634098751484375642608354985893072059967943338077708218238873880434042476974428424661415311162966022004542732595868846157716697658240776931361256237701840947073563310575181071236631727570401964330785392170421050747170131248875534991704998296507027405991398499245719670175219833146470172062397008011253058467096726610676860702246286594247670006493645604849428972272629205762647785528848564732992153885026704509533556890472972324432375339761603950614664202262470145481889146291180641986257758927868556685577314343161149438110772735376444809816501446354516205078240369471731048381888035841979451896405248622301844240395017145058122118522868841758650181069937622650285694237553386602738638321335838090961337368159177797159301105182293757520493516951643744809359376865890030812497619561886225369826684638034836775129738838318885973272073109100845670886008914243997602485413873507359358532778195491607352747874566533852888797740228864665359209718805066480353694536230761643110405711392397683993405069363774901937205412424665355233954162261624913862020616517054366448196062649475948890332351320506027451315318907780599659351975643351271165347221924437901797216073698521845509202555710283339002927383668414543874314581803924243930646672343227267672951860921321907154918300226288785043892398415508571630455130839449854914044628590093304408094234287604065733169464404817539444709238594952041138465238435739251198002234040455546142439435503414248958928710959140943947440076435817584019116927911462072761684711410619749376781633045341622542896096928562446727903138476844751927756079705421942315529174363558432060997341697994650867795367285345434102675627925887568620687590100788773386380253239330045048488753448529115332818711866802782537868637933400893935275575429330573569597478368252113817815430268335857602195938484042103183482300697763455789139665935212161130167911857170889279604038561586113905546950368892662088920693365828188030619928972310178859735950255650077175137602223783277532672406740888862574311604724352412805502315076797014592437660451859786820282464980647604578133691162437546908419302154700836259453862028299579099592552689220004007555296120782804557583293586607652527152064624353724314029515803754432171954151314448563201534525965377439958387955495664956096081934561602689653047181902901264420117261440140636093018767489474298911264984931072888687498486450512845233558177577714770227002774152264063141283834470360466415073532452313341687452187946553738668501918914469265730521919821907667666949677957920646627082773433428594012948062624410274449717823328291175609754496610946241799241989356818420582573771710552485090124628043048637061195200398190968049592977741767987015416827224874755104676297111086165541545668016722903960083578631378968316865120322364004772803638674330248642440650376930145685088972952834268155417328084265007269710929966613077041219242494318832837508896431825801970660508787500751660522298863681903189342118765179712920056153638353218828877562343243009554100007830087116003435871530889074187310884257390204650126518698145809007757032846220408490360899027361725926609441061991839805520281643490659805469651493452400709890725186761527707278694119214681068825772858091167694155066555561327781311934031955225865922556076228347567201259544532597753982016413716507643975040965719652378316526218621358911541245425570245438477384148719126982266134528273004977257829172328527455049474707256415300983814674866836895480152751519171714197156490777713661855972671458376123517097652493649562397375702498090811232386592720004054243697829281746092023143711285359821665943540888590210327259834260809420201788991941533056433964209053815376952595968983627260871732633177259623752452982995124576806198707631018409076548811035139871839515319471415926035580858645104012797464088762820286239835719566208232424388705235755250212997461536441461762552117979178047255814681812696692875031439022642003175882533582117116611360192211485248421747436742994263625269193773161070211712104818416016666265015038375856185676860664166362057967523752121920449477987831704674289449175089923639513524774021798553529165994889786792646884605527268190806503529801487744245443764768266345784627687434056317319569911533502137786747754945848855235493290194436297979951832650080058857211112185479244927857738530889605840700857870803147329876020093212849718416816599991837812167556835926151608803176353571111552663016169174970746077571495045121387226134707291874197216264795549194307208987442186199378915930153752520608463976222152009177481969393878980063955535480129118562375884779197386341020383146146165462253369205486699203070224717411654889197728043897956370910774153949439210083778845550494510376416411116631900328486150040000948220872264302618800530985186315728590397795745551405499407980919461458268732300048110259153833833516373999004491787556706778204837957896699753517293571758077766303960328710437938291629613686550604584784007901089666868609335781963116273293368342942086381771752745040715245541511741137446342697927060678137284206172910734003634121026396559317860795153967765058047607058899500218168425179689090705083951176330345110384954650959962167635146915396604120757249414149819165384237014981419317027866871432462668176115157795262977897677864102265745973214195099600443582004615696717692618221228988657146712155327170080945468364536963905422744330779808082462639819567713550998860966942733383502952204020235067364629599525885216024326849503052732006018887291106184847045557578725153644708777567942841654067152112715148233724820893581664112840500999318558448668215917684957356570058360751376367656514997191994541256988422522662726068903852731288089805069686677484887995586822431549233769875281004485486451767721655870151999211939340303785369992055032957995245432455384414957000464338433952234345367442583642451415102887426333613189088994818277869570459440700056407142255580354923991617627410863002689391994406272839200206041756003042552230840757876913629157304907178712246384554014766849810712480402394074010023240099453692004204415740348384837182083610900401160716366928715673279472660216623213703617915517524670613353746170439287891712846281865557351102883208838963028101480168673121197165041811537547173864693832281192117077650937329362153015499900626103645099226201543925451822169858964740229261211778165244910161491002460834810911850106199763247567757237893868013600443937503854492699368496562648079542670268533593642952899156378780480652636855609706101578633248870448536367150193971760824503025824769605965522897878899335672107464795306548452672522116219135205783396581396815035522924804214928527379404029937132935937140678367327657510392770684414400367965666866861536354161062869872835484289979600259708170557373784390396540250745232884784542655806802732394026033218259968724831395341686512540105286925827119705046858616129706628624503212491325591777873349090806602907481732067562477819670927463801175371952360105304965505286669253702837409759733555325370602892301867217772542713091819564991738700251310458991614935190809211236180324284878433026264592200212295043490449317954558130781391822728392233377124611883535991216395316275658391282810874879744575672310329145133761102941729761470423170928441722736439183320067937258788370312379558109635934117537868754367971729649640109821098538309674679134971290880066024299618100593740685505696791628386039118211092025792385605691423723671496872489396600526986986560710418658220119669084363994821796118832171685591450976162408921918409556655894099153323273970455927535654169593529960309301289471671898433039025879203781916159375654928163214866058933722490523060782741830962112019312554415319483106406607725348597644247844692596259103082457841301220461029290901822853950036782360536785234077356497658377299459942185910149543156734296526539808138331397195361072032339178865741785580739340445784559560049241826870591818071231261538819008906101687126454649448660443690166730815211909685113798624926080168310374899772380298386021170316680375330678452452474822046677357133959735708204304965302049897400247363007702428469485998100552918851235356451851166344137248637557834624651316848222564948243506749114626638696619447213550353090793246627986208355638267192795798020535519520981956891073823136495679310705623569473865630703570488802953701018793115721959492654471056193476849152097947822249099978303593661030655303856994409638271712810878019431488242348552726930944500379495974935085561240150542133188543277638819387469369268050502088268241228062790989727098526460702591830321637655667111996621564795507271520577986892079683679677644591623354797230851304200993241842909690084104806815564503823055858524118475260509987767455505851017224918085531351282190852237975126683259787619214309402239693796965627643875625536974244309824721384144865039131947587950728341860101498088937199030715607469589113418989275754378833545021112514374414367439690987841356666112847610017541993186845893185353156239256319332458202338406014599405402002382423829279440131428643105694646931959461437385472751915000552700962184243052373057125018302750860302564617201406689002553255767618927872870404503847307493198654056538112986080844409358634141934123200241181223599659848526756888460457591262496285910701409659919540621216580873331126063322434847589892810632510007460391165034205233996682499421358283552682203800166997863648308574757141037841980913576747892442061005504567634425938434576069747440740822981473763472379786817276553273557404811984467909529456161919791654944995708900435932080104258822876272393916382156330599063371700235312249265710622329233059517387776473072061583709676608959401223871129650323916929946906642384084595359332232315283344864812634589522004772050822690081543240478531595572172743286844301594575464444822041087747146033229467231620860712581084821802252417153452277378598821817837528306964570792285769152597852136352573349361096908974370514064894825918322159470582954593753219536043683865740664388435137904034732858426433935780643185846820770185366303440853536893892261380270081714370673294884883904691335067121449876591686276434756643415496663818749829626558576287660566416618885372104007148224578536776435106387806171265519131292590302044345864483741542211596984727946008612117230769220396771119194014678363469457327726642891824740370407653577835417186285191438185330193588245185570583209536373157228005112347590699726955353560956687903606941495072121538575679192516562566914676981874879595476299814801322768858499359643927499714505670688269055822472273393083252020106277642287331736132107180958873664705669477561616139495010341948463003142987129544549893369443097286194092926446160159347417644578301262391541703266886849071868689093768589502840059455599979675976224581407101903896328377685126748869664244818781336971211103474529910081933095064718804191927142931417497219732198550186555230829576380360513005394807649875127996038187955489131786468058316094576475855135072213554106080798498926581696044134662319624987529047492684702411957556777774108600319101766685102614949891191674016418413711084077802447862998726392708122599811780432634557828650345351744840338965156978337610542575220444478492135480294102159271336944293848066660154219069379311900505589698305599001181964560496774419154580620797545021374722957797160760767520276749898230367394327025707072633143548788225905801622533688334203243766460885028545203291897954912985980313350010309187685106482389843847654524354853067034356140070120485970728153410961962679002456680809110404585230030398088078960364943754057089587432333554639099413860788124606623454000959053893957311845894121359522468662326158642217681638131761739803226082127024903261759032683256509781920709351145188106245721841178138925023143112109690455722670648679820957136468861790100212398381755816164154056705438085976376595989663644220735776859938185347357401070811183479899493519169176536496071608513933216501548208942578625026644558846879490445084965228129612731982793796758996721815501839603029163490325999174259047289540894461193113661500106388527720396217467100379967381652556770451245133774909970379274067269698595428125591480298594635122670117738388779443108095429959779726099447436899203736768696017007301285461572546968883759510694930575291506066361868765130540576768840513471067808479071173383076258901747024829329649772099586375487966490025096747252020206707236401823771352641341271653827916888926509372476644469686983234190814543429671450789023552777604724786377686921588817486835905960394039042183294876261644068586311760753997936204751277086414582228582776347335355321873180014194887719862643189214627402674380562729719906358063524808422541870964278222870451842875564909621604398693925187831918351317374623849780405392987462715698103589631949359183077734180225341464144644020313116715858275036524751947977407928185053862106012042260291118050236685055109692817788825405721869631504444250258787592539260193602290023286889920420201535348043030481635516854022775364781436544340836012901770345699398428860359553625883511231176216571483377962519616097396303288199676600817903131722392644940367348145570905417724312131360390418134958293164018896793821373699705286286425745573739626004892862646834408180191777327992523827029516293752253448437907703286431013351059646439874436882763544681442102711128611511496965953222833334103042389352968227106700900902347888350777050572372332218748281848431061753734734786023897031284286856728007159223218237300355086561719709852554180901881392769624142904456883551352294018079069774662805179747109278532655811941510849911310282396233681574704097384414757266229726694988612868339207976262797418529539880717265574567638648760460289860388771023464208205809243997570619840121369188277079569258339683011168208624619579030799196578407048677454851498602116822735499293481494556175726481026196687509056516052871830745463941090667249874899453458434089907327974858915613924520605001128870115906184899687075958916219220014725678464185659833553506558036789767024815699098029126608751192189313247448895960607337791715241703730311126283807637565920853345579213174249722169466975123033263553483158463054280653467645211364049969006480872724609839219573085442938240365317699405069559604030420450154624801806592268335074738022452359123083196938444754927873961862141142949551204771883366671458330481961006594137365999115171237693253174411928918913254947074671818925279844544078599297853886062516206462756347356054829540871822353362408305207822395192801678034380618565212082831494064774817860700091935442507188441426722335019956625020075351801336878842422601009269352578965077617805501076415888040609067574587980995545875513408856506199843603139942537513619543050169637808967356378195156161938200816597390954840621674199865472500917449863489679351953330494300253259899298149416228126061676649572135856979939483306989670770682796073980031640024259891886935148840070855021216847972586556046056034661391034116300039058813147887278341784961548696511493150085274400501595697149651762352382001671822065490845680026128256205421206197319488268428412147543202775962433812020754417738578819985137999361543695307811220459884808071804565837489804728009564941975394628045301400490955901526467855095554345976896571486447856032910217748962979922214551595180563501088617339329313126631964184243645305208604800976842425826998458760712255571895127746534954757890401913452402207572419621516403936860741809420883893525049215827571965453157227588748520982306120232001835143170962552793769088870885017229987475061223698385009058718351845544979993569960690020273715697550079364469476222589663111321792482868218944031833712473076020728349062310944644372231797409270930839727508171094979558538806180946674833387102804546621008312691140730574883830774093466014309483437615125989028100573460299421691685321213949399841328741841787551920858996535569206659451610306388893198479098882627456962371878841283393673744884181518954229043277280040708684862569296924969359897658759233549989028826391238970118155217775074149330970827189791244123188377951617083738985573401656977569697196582582500776926225918013454774822967662883073524493568020908466939941368218137529133790483819601752962661315034116258589125901775133677772506646167930509492324667417009008338152345619160861187247331714452461960634027287951541203102150253062976541760374291373822988794502236469741312413730171342501159873424524807090966185602118676467516365506933836822160758366543533981070770738379856543937120132403945293725709578608198886624919683076136851149323160301502842223123503678143816166662782862798418330327117651462916785674519066040318508773005970645789451516410424389133975450673422154731162160793790745237557876964910174549009377490505183808228267770514657160016125704972338728423088752460394614877897478025040520562820445052271937726952411362888997695341381737894383891038573257575338360025554337465453041615376861038690965698188362574941039059961919255551778162259178721429144640842938757479399334329663574363972171657532531913675166808300010068376199135261589138310582966451617530077498402618873596085036821241045350313840971688332197902250933638010330389779303528697800923304962480731294389634738097559682980087706016216301397524453375968970948431511472164578715225687978025723913524169929872150354045878968411053462326384828514982921689619048085493378708356433174598634640150681641422940404630377506547709457141680655507017587668511255925749647795654061048941868116205394149370582789934696933151977060537458707750599126038771796794230901423184427917852396594619590374779245316349526648492969374369730287128106083521586987137965610740124797639749916449104119341588096965281307870623667448333859508842346060068255178457474151417637086177323586671736403230593140567079140335009037361257219226480464257466989435337048531264490668326770998426539614976617434126885891831608599544689423373109838839572067316878933895888896506299201065025125297116034730509453642464085215642789494919332499566643037313393387755395569319446560174914132400456987323703189998931602551110386351105058828516029637978197249754925743519528011739891864546624924266881573638330944804342764406963385249565495051689977736263007079096127842576917632436197959430428689623950758177974711109961601257616112720971990681770213985893832783754072950851963192195946389614939015580903417169476837810075536218390955241612264545901320812158960578265192324139657960623125639843356772901421205896233036503715680505784656429399833908004782782479927187039375239660047229375834285487574902673256841768414554301660822550793076364431915845805292273810541363665111919212300325305716254693134080244667991405198229594487095008731524765847530185558721402961354149224247592660073326000936864040026660401216732600837762398378721538958622642078848132243586996467388612038928906125228478931281624460491695047935167081443787582843033649324047165343884155601319390972790889469115218670041039098618404116397215307911821047182421139224837147333498519506260011804992934179027536876173526254669492087083406913401812821270561953058821145544878441709830470147910857348001973204632722021040860592272439388719066973028915822016215934115948427437705996522684424590473563642398455083372684264529658493580514114942147167684299657638687808711951152118341917417742737822676195209803434576060313559371963719307144712207183652123179442669352471372730350050162112370021884604138857340269718071366774844650040732371536169201064361148562036607076385018359603292685087307513708904882234824155630959167623540448953753289646044085901047438239681895740783293483841865548949306004991036817234873714085008132475819724685105387912991671711054577520561008278406209654827960448048993446816860276089028882452784746660340428708875279712996062013646475248555787129035901612440117859493536409103274922168995437054425438352554532856643150568045627553211079426804054806055983305437526601770381641387198122908477776144909214085347044353769954500137559390723297338828702729290335170353933991280948221024980219109832105799431156568340187666151833084816899072932228808677619702110546460682619888107178843877668534734632377793918927669096779595619926144724492669385561084287735489208595574219003192670183959835045304157180050883459036533910304891122639555246548830260352608896895570565359779605446629773945377114700441623177572885159767376309365153783598432008272040151048043543391774253256498293960599856094622270708579153530837573065583153991230563104212752714493395012800693707207535715297863304633057288876229939626530639656944328277799202110230930426784942859086381736201436276446285835537511146919990834643491179639978106756336103127250743252830964825914767084529578431748705764297753008603253526491710435371189539455849527981202660739246290692019040246236069626338118608606960919355480633612039918643334811645310102434008995435259329303753828461759902501359389659300725163980173998523370370916743245928950112995831250124338423731763798608017453833916141835861194463923691054157508012396391613991735549670415853858213538681273645057555136485721271723734974392422207670862388963133717390416375052898204075935475688460500941509549602297584215635774300534610857074579610354836208390948102198545068090120553042352151999490043011440713264465368370522522455791394079750989862466648694390413740595035342084680304684185856416981006545713379715810077129176267424626209947123033404719789038556142061910228828373320455409327932549403336047119572498137431170727086859584658543957400767142833967978127728038221811784418778239191038869418888694474484359849581200309478589177327337029172679980578312612202450591806255989041256429839974166755736002466813284925608422260098494604672736445847190567808005573775588574971153604943939545292182068219303100921747680466348678017351284213666064515186465194327321454268510240022466050673797051701593540084479879896989471843244023954035387865871142590100657692957275400188737545300239057035489965515006410322664259783379198705779316924981107394352855782611106997146636253380297107470019697905447201547085598403987186974116232779947808389852133330424450689143671496651526855867298968282639575231431314709358800616767255401583404674902787007883957386827128512271469059760940256023032476100997378381519601947380312940578714353946687998220169198081029454020393280598759691222437238371508611854887591715938809149736217188944816562257928015239197425627043898517103206731015156474867248161443971808674091226361304110899380192639128803133878592777214844553444121881338316543634137888152683575367235850962863760032932215420492779957498738584247733482307254714125152848124882328054927268816334989371727216410681471013070860750480642157563497365702349709907221966325723173750368041953859079162513471807740436188258031419173214162548010767746049183375087336148858912729161733730149481980580722072532607721089375786850260249954813053557723578784983870225873168972649836333855340365582332109957561737325085379613429761619532210164552021766154775807392145889166925039573281521194149444691187777043559752998546278179085237308459504381751534418703854939601650331615413377507459035240909487928161868149089353462240361262150838723651356294745409062052254699026817094010394679188868423791529218336694087650270555672094139135911697394263660201613309846572730914101778470526509103148368430119228475715880642077402391731672732400074947054105283579562568229899818255939691571850854110204677412176332681628965775675191606532365856833634778315646612905202799137672114635840876071163160455799219917394373601014563814267612553262506764860468773748164409524992185038012041343350872582457125709363326128997374810229059331367245072983647921542387403198540981360212960223058851147577323326756696873433600767809626108387182035001014601401688762742134451218378141280998340301730762965035756416971403587106320616556017572656685855826579085083247519136224781441381212754743565353034330963143982456117021849624476398273810752380207636255078598698898149394546141159528616727797352123371720286921819548427866715189824283161044072102351155862305399099605725248419195591668137611056886422798143891649901645388703321929233132551061742392883515180767479170352414720550947260447576219963544546123916416216740985744043155225568516261060601913446463203963235360805715800120901826566962827691002681317500284995583826566796369282198730975425515093864445777849563535794876845806529218202043452590643641289970518930188620440100593126183035850440780108734412061915885763767797467320712798365797148669567707745205601475302687360464967941902204709763136657132876375370176392304933763995617278829783469330367980846735077367253755688216836558763389885248259096299735137471358355161058640886278103051154280021675107796205951695515286429283727716882025253255116570514859434637379788290453448380566803389170598548553585752936053885047105588821196554200050163639358420366969005672275697130886729817213685670954169716484215190723445962796349428935157062828182153075612561707529719082975561349561627377041248460167936323212610646539585305166211748434866467779968590740615278551183568792530984371661748550038396455400944930014491136964487426287117778747164429787318934160359539793481437930008262551929636901842116084062737851649919090386029157628428303847307503527743770695260823467953561553108521824347522657322127976854469707215586430079227981875167259408420395855703200439007475999807613737852257378677373190259405825652286778671913819431190359351374293346444109693445872090652925198307384751326347945392869459740438500915325151319761855186713728132412222548108382244038840790599017302284698164912395206687361197403742695517969523181043802714415690892279243511339149559038788325559253033278741247040117867953030013210053430127296110958422284673405833975336233963589205954057100050128128025372320255935064116181746566270299450716146220408082245783316479886560977480377087556064928920254266486586587494675954670694139914038720047032263437108837071676946049051353819733583429221891622156871174488298534257775944199036880145962745067668165718646905641877915734268986381122050233481696706257490159084497319054166015675095981070888488171535357938928802790571310331503374301315827680986934359488492697856882073496188610536729911972232614967307776032504142527377684368606792288799829852182765688635659409949830364984773281134489720634324904881278099275524912511123928900053278838820910790326579940229635819766475113915036609380743277861730319792815782094719799194646279852245531464006172082920087673794678147408224899443681356637254064920684975427587573984157813399501437537448123128802995339330170099665277772844852604372085404342881487748105420490936986047004044817839781558094811848028607583851352846852415787425056962085615245092005735513349537468335192846350210792042841000984868896962531482182213640136926573489129745723136117042787261008484389816370280132970592031841056130183499413275418257004048845512464310210937273617394700403291263268432918979056766130020467482201390436073764426565248104488502509920611386015718111763109125842238106268978367013083366564767175301635042877126087775805344697056979545368071526241952746236380455667938131108768670476988901423069861650619092191178653716715625597949883190220121661109408437717763834183514877786459705131107558578642750857134049550251679922475308227472362800707720602640746799319019533343872080304463802766785364992447944995916427202641894742097143023652760342694061953763268656668553917330892940304068160517316997994029014299871314078495062436009633177146137532413467671399965287740279029576970089769064542996126895265295845533664276164329208505656577191469072806389128886373693745031253753600475964550616377858462360516718012623594308206042138524725646138865038557633052589351766655777348443551956302875442909350874042906423000786733567143513431989958150249550156891317136517457003876116720499451703936056180873505371577880228412461328760040720133467903163759402386391702795778637186814384142133335996847965198677795117513123590647312227204248163012386778219604080627015998514654418594355627376641590229171853737542181322222193117864205072789793853256419874495049562472057725367109618195236242475558584584214123322958681168634062592729271370995498855910651518121275284694923864007614540744683700685144323606718661913263789461524925819146826775151445475618567411079104368607449024894941759867800609237018072218451123733062130932002282450957970414074615975825364381368398722459884378548513738255544800686782829367311010230801568456883727601458570140999828951033849230307141677224988595747056663340744989844916763377541211681548666873323560049840198435224824326677729728917069593119384792392896280647450978147001832966405087834060177271934213511038295780240446407736714369800400558465645275746753129755147764106418271265519218552071447908296794557605376443015185603895489900630588778672394175882268891645464048112137229862856475923492989184849142091468861808411541458845497624677857121226302676180997709452773487422714863831825798578643296646238866800416201662259140218503377208848161250010443616253443075044131923228558949082749416569405161905294145046763036384090007834038614075864687646183972107282639562895979054977127428964952594158805986403314897433699095600097682681169862854040166687156922253244923502370038573226668647078787575503558452970411472448311746840572734247999718125235180674026810956635931825828109109903521348347540566000301124871489223135914226866178130640726018874510177521110620324108590011445173694736078882930571142987246217274496864409199971459698103382118288489778023038752113639157543422732143090531335181334673598812698020809175695501371805185361042724689590302954748364358669113146643510102906504151341927861174690930125090550369458768572161791528558387130151536308703578922270082208404988294706948811842465482292918323683641276447123399593841138064480178190223918434496865941976213538951991276526462922173010090799251273379292119164861042272762273828851761831092046835892771568804139841343330594257428842412377330065837755338347520149658111979729809175268512298984990228356121802682207571507752047258697707947083214596651404769073460843686046771667336676846988395212838748576238725586593520512104737378643867542459633688377823871696318140007654037860786190660460391448968595638672127291613838765492878999195024884660172283377027930990393335214961964175121044601425086518178167039893518469610105605931035498455481557041095166345430561687415509022507334961026715614866023613039114237006924460805661292121980027356177723726110731970932237167957848608348437840666372521634977756406106953068473670260839754593578610869643609740552965545538709021610317289190562296258010472806940645837531508685795884900924636408896521073910651272436974818064703655099435014787979480661953594372004914907031426450279516536955187380614569655134434960891223455581658742860097728750324999298521314652515650543095362495935006908284844934051640836926010124672272000217984405190342462543091850300268965490147077966808398774373563931501423312713259256343405511268289486472078080050293679407836451662154459430361677931603226350402421380625793826849187889053270160361348240857880525292376927029308858953043800275458479159626221121442682837596090379245189833400121542550122949322999739760521294492766382644979285642349151570270125926624676773109276788886804212437897089007591769949191772168607754545977348719479029996072093962670252072973790551722283856065249288206613547205020776425540149515501685731497727077528756727240382627876137488866273296201435524170362792123096578768369989433929221619279901920411132020729417550955261872129795462918637911772186741582929153794787020927874260411270586027142499420675104600317581045624928735933651848895151993436361705730744054462438110018446452955834364807273464229279345551084978220632362271779083229432508293992530042034140437727724593210801464710973619322820797280058591048211384004938930614687502974768122350046402190027885961385890507009791783690436582879610213931750066164788136663902295203905252669623765655988379032586088459647610558975171845100564413615729854891958570643177791907563309600467173545355347980226660611935822327706965024877316087940884876478843255192255770127874238846597659578480238501032166685905006447316024211518679234466626536313735652250249417961163620196491940347635199129443625550443174888514248765359928725918056484145150113083173031677497391258660963475040912637304894648242405545256409723114729428601257384966317528357695538324562308370727881929108175895384228877439980707684518211028755473748381386550399377332182419549864477237418652021772838939151852137125373697761657414516086796772670411238608285976432057475937482787675033694644693852548812307690848968380316854170164121389224270424143297744615503615188172915200091015753878737204688717864324054883356019635078137183367883591429798936266888799044535294783310499038878246207146021547328288751273898679411842387042070995388236127268710297757084727777007792886354073330454729185007422263932922269737819180997918091377722157978683950323066179607748060241557185357045225481579245488011598884779539466127346843235214215103041363987421382373481156833104316546265383290803680967431561813190069033113183692894634664725645929640996172577413606627823076826025647566813567655762738264677570232276539850452462936006186581141726967183022683407200417620108104153261007112649335949913902385969183881079734887619064265051165625718454584916223116301027803919213929114637360219946989076462452193588748852182728346262129157797062959091810850076821017013148045131042057094499816222765437432546510838214887754278148233287973782453719094857968784260165945264099564050614584068164141977318130472564738819196508881422606634399066066978670573669573524276870446739428223931532622919502649510892114183296366613047199131034206936286502192187947823848715555049773211192934455921272490654963045186774117062606495085470425326343334949033913446675288696457743633860289258483439100671281990062154070876883389539723771771791750332241595158842808566612884451380301946886576140032243182247915090329001860401652397860777318306187795434353559823667873785505643139436797109635000917890148771887911590999875404292973733260905428802841304189901255818479463338684912630699800986454316906522359775103349109847936788817875368926226175584477714979051650908508654721339281536586517382840602111207346062824200216376231287269561728968482835080892746494417273444021156772299906054168822532663497570165105762462255600174012530626146848947921609266193769815780983661109622898178759051479870803306991429416252362994615814407178358624565049573640943031611140574006315861964662263430106279390970333073022419732709829380855282852468640842777550889290446273645500411466657844640069218201257354586530612132879062912539817303082992025935042154374042176296243231047358161904028099852011854949121746900044318694593187226752767805039382289577452627855828211163092684612847932131408747925804233773824566026409121182167917210948141186482384906718327528863237242044951785882079974047854720129049694721496733815255289050195207928482843941964070854554808025592869497470286155323429584874158608067356193798201470954054589474785371150469528434616862053252671030163803170264204625992497089584773142140599380188745419798131423201770197542014217518141312677083557124466630227591110389881440575999270574637926592021397775392513924916956403468374924859939576769730119300736538194139203991842999336355911353238290558416333074004682790625459208951288563167435133517706522573945113868148720163195832079716885782568309281926938295348943444864806917137447453651811373154613395079469399140703054117790293745531058336507055554748188214865273252767259830261554061340204664066707149375503932266280748585540076662049763610899514403560691301538150458456676720294270780298253163093590304765978674555309054206802181520375121781831712615596620607365971097109427731904654461485650556557633573983281678035490741387713208817120767116451709489757696926085130823231126591898004617038738490515619066747240925944630356200504587160777859772320065438877944785116662979098196618838100948252416629326433592988820222128153456508195581427850686068627831591857217435030806313338665104012657774071573286807990882043672891957783569642626085684752752932395281525017858172786467979811661150176610563526744350658759225599983211719312903792838973448912908289087869613241818393318312273779819167539250239139890698356590069025028826268607406209935414541601381469469594773827130514782693494351769797449892257651296998375654685575962489649858463713832486507641742514008258602761041491320263099787373180412021929928568580141284743527671575212467427961236018097625485823219761755756977345959738789007397745881643950954315490169979755259483677221590498294721485819261082007447136284080628133619981299435647084500694575377578321159069536228267703149575439973625223502983233147842858791203421411154982419604202154297940671814741370112068005204269096977731824284638798629771232026625576385598289796214806151492437491015074666670413173519756763446217246960998494743356744138389901741540077143435394682558037598686407230713256762814041739060182769871154039586283898794779485556903641240829284471138923144368784614924817063525555741599635848212261810974078064188701118968358768778011147501998255179882853765248232475635878021898691645214536130419116343685629214937503466001653613501660641054858698773168935391324949135630023669124882213698641369101958508755534578719355190852349241727775435256956436133908243441443697507457206090798951423210183151830915372194502375274301673775194917456713615427685765583635735511163994239509288212861107672944050292794091453712747586454036457682990789145370791876301122559669415496748714840691105082236623896638031606892855704354215249387077707332873205258358482531705679296573873625891136899243138938822696587236636444708523146213284886660774912020744332268722981693450905964339288688670535899522899344598575916535996701876698557413737944052168372022660280278894425607283473291630186750123839663583510533245349568269445030265595842601526286721169488403531442188461132769160324646480418939824440241127678709009689753132189626727284582168181833727048098242466241528676071493643287942707224828670633004772686742329226237088848241370707777897631922934011976273883636440605313597962137587231412280127889215483179257840238023145401923886588921788856517820974953707972201327908973904225247072046300853814746758741490227309835399249903298694079022819360735219762418389448470292425187439915268198791695871894212546153715855047394012339994622859724495985839925135275854646479695238358971101350098155940587271867203808340787979555510021423651856163821159833775852578334964821252037691929836034535305346879390111628344523307125679231625576697826148585254272102523333944693037928944124309802329454028079333728628691870935283903692641492956295192452163182249182923981440555007702180807973168516352623532215658324221141841109533898317451095320338838535040024637797905516569348179605818990526753642799201319422508188119176836082820299347989022551427992470160032524660968312699965438717631597458025035043095273261935179469474689711593164419007614996097921508868646664220355330412888197044597222437468058251073216050249542607731238953564047193014067583586515838082694879838618574674816297089604765122719716842433153578259563728127254862642736492597491863204770916520681350778076056112226369324803809336887584334033145741258584290163200942048864540813221268092601502707536185312951660495191265305168428457596626100893959562465121818982077802078718584570078658320155962264271929824880883375944702639982849112031731442594682869430918305738547420244605509309225401655093811805467103652342306928171779060670048752345711663997635833245793111559458150072740505723090696868454464421370445195726121295743622937145734043345570922358541893600921717195677275249562300478316153573601269845062517209711483613544296818097772702195841046900828396167241044320718596981066992406503146534214279164676146041686515611587287435355296424068390046345171392040012841036785519247504669188956909093502556155872937707801634578448449481307828121173211411652522379159896361835961217616267973353588246014657905209715273666734969500857534173879893655031383269272026256876649026566983304209567851202989294638037928352111390241832687253598256681350622259104926291640914935268507052248260868849697496211806160292093518929416625188508899907596090310575676713624487078501088674321935105937911702455985372549367995909501690687913376564344384067129509187819794794737113217545412145102004345131784420920308490270423826155829936940152134154523545256702090942518961397089228178936421557081796804656405366571847940765768250840574500125059002339163657998256622644531538923785498392510915097265475660123372783567542637737740788398308340750057125479177837586660938077424814260285634019293330339759766907233344775583006181338001696895789300522096280807320999389081335311688938905968208549264498089776653358363739594335316853309549767423203690835679232472086387586023739079201129126882488058321134190503145637877410724056843329653454953963254284551445201044107215318742277367792854835560950801982788891400605772534355991052225221243300354768028766136005867444915848451999859111090219080488938386819670022333943983042080301934484914108102096304300121095625951411915473800152869539305451111605941500561445351949500893569420806831713839653329425086874882636392458938094320555702990575913760291033870144247904036474965321075927130768852447193387670852739196683798800751821018230848336648893735921682417476682438797976333991463436601175109502905131987992728046278076904960173304226292732427609508968711822745059673280508096695461839394303462377813794551455996691226028987847515194724723237097228607691958055602991279801600555653051899017501599786224852643836133218189979049694855279709858876917211075005771349381106178354072509931190559322291499177741693149176436966406980541984621036983888830783738292550277711116334771681057168389483619239044651663371932457380656870172423099773052824158171669909348597556733464569993031683264339763395157176350079281665438523462604563566950465464701105739594429807685532244476418571565500709765962114425838684573185100709318417506024997668254307697880598904320046871316384829656910311617491348019103703404941575836689233343445622111430303469973953883383956215517786139163220590596378740559599055370646282389349552945827152026314478037193576164617799462056491094751163094260621795389385716836619691694595981316062185676505264669967714742057364561949199374655680491492305988627819670054266522414413953944379449617671724711229704820838927581528021113563132265176390940650692950901921327576864577244148403989198241667881321587309184089840762846521226278295358791792616231837777159938348467492874277585855449519297671436668710397462498823533242794700627044494961935951528791861748346735017796248674198957229723300344374737301268720654003390520945180377918242754589723855486980764762288892816587752576342819706661074761743730346980916800236271553836787379679336499564336217374670867871106917321412983803794292535490065921738627840807454111580732931278967105688445235651821894639487281560088760598777345575841927189577020825428951988351336763414359605375872723179150993517731005119963937327351948319580986180814609531266483967026634883125118605209404874687511771729898912126001111062504212955828831035913754612920785557434380806272791527069624567047253754886425683588199683967425324034754176319216707316192779819195087501578211385826792937066095698595515158279281652374352942330101436324976139594007625774274500533581190056938550460958340245855445018120152218162113886294218267575189671904302061622597028728829571358062754820165574696644542143795511111791475551687240968748497073669153034241633559485629394923940403499583607268900695832430399122061251648585327781343420870529253893306445673024227928507180314660471806343719865601607547245115014523637848321478013225088897151242388697694933078161081595389798257202090355904916718539834443876770132279823033477607864177590552115780529442132010893473817115968329230940712160345475690962684771788820787136448637966954037162986588090043304663700892749192561674196488136102545426241319950098459895568761131563079218094061341236746151462404171822730153479149054703247671772970061624017336164447119360189006427278404070360351879340953163219825298846366920650463437771969782270817031910976421927230432823084005175978996024408452474075771569386027235791897365907041879589370114991151741175117888614223952925782247604657938168326877500213790189330783240724084134232418661157956969511263399780675447508254001064793463528925820465848161739291131370076653228621344769149258743757973928998295948068288722976391382875929162288781023409141675803115351630123082726897654205769249479575602492902598963522571577038888052546027429636641943149113175152920496458179194430439198338148111737809611563630387140385214139099447083560377115953542829985044462255271530224556790034095750531106435916611686884157601433408191022301237747228591653607355130381271721949209519277017614391368630205055532324156750083500572071332106834220225736632366857990670671871596661492068551413846786798926537204528154640424431617124545196040126988833381123898905418037574704482595936746406796896768764602410396220757989671215399551815063044715622538188219846541325237375277526227858394055259665129911022810057742553546524054782756512536800084832544967166616655644297040331566479492368421884362537343738067067300543849325605804101827270350815137840980498803510968213608880689374367340681645370539298416702475796470991049154230471825174358341648803858980236790380867197784883311779477832911743083464660451309306134204217570731855524662342650706309879199898931438815882637092455176646552894173913230693447198404504560395562926582020886085346240666955594391510657507699423935315270789337352593269653436081355274298339934451438934215582593213252086006314784329821562030920698795296717485774386534537854520514883745026841645929902565624254457842736939765772122508848644028140725336711014077772906800880670327722547160831720130239859118176470227424147065536610693692319553916456947064395037373185708978910544907346227240645812426481261638578468538444042369044860503991977997008285224995781371900034910266444906198639014471062539580588677209077059764270989918610756123552943720573174309155665509543118581764738929182845249607983749112073714095071792931749273521772052007575040689733838429642196218543711505166074724843810611207188739589965870981567672919995637734701488370910662116718179226301573383968208091414015826449236095912049622626361550871489327259836237985955326353463250195799003346956090453680380692767283187523422190298831389066387617431592865746284076652396749226572663529136240597525617143433620371610186776995759405175104583318719562230545776219007218901692476310380228650599990107280944412626744763426648772653991837666664065131287409484962576130008606371567975450301120545774475807074467862611406991504870862093075799336867231243575424996906495106116765799817958744906185454648023836756228912572492345470875191210226195840606569291345318533367867843845833340891599551810201003602317985402291944069300777665795418360892995448229899902358127132169654411052989971489609933387753340937902974242295751530480867138413246913879317397272337787026522666515648351092382862312383011073661306596369755807742263693722496290048579141555453229410453048816655558660586923389889812106124900211098625676856065534970845668720235820989222838321677571031453770794864419442413703422892294880322967651401469452588226915380613983259081593135317670841395448338705939221768951274780766985625435454466512156329341534820131175208785548735127443856792530640221841635161066315184087309972783029046127827429642598272874012685501663824917407158586369096198641987630279201270973903821330722499705416779585733639756229431614290053521140002739758604163367921339831973372172498153509300602746550953735821260895639685867371038741122500332283575029495656637337685017383751709295072209298278286577428339921383566572820729683450622298820730978149472237662203781714194941843470500682347756798953080035582121784229942615301476659627529416178961952705641879251517357004235507907288567308186923468610584366367043078357997805929673135812818134416923018722185657961475219323298443456370192263853592840773913874113090541042368813381555513413152213302558343747174062280559595490675275457165126487098844962234056676133246664631000024565223615789338909140351581865192795141834178878499467811690878182324697133054442104451445447810261952330688480360863073223092678758578181555845340216996749612269192892318520916138915232461482041634258340272209284123102650914401578302893406709183620969301876551412933451666951297432935965492316411988136325655991013112745259583169174730526447820803361744120392583885492991786579256511511916797768175751941622010384974171852245495345554577823627315841045965001867842621415562463190059699382090646717099791585574621696915485290713821832327805351486744601372798659864005370032074201120395250950337002533834157073713963670257411127189739817909238586798537294967423842090487398784741786238248827484832983647629814712114245102481757509208478493413997138888313765514516109508790713100393191226001158718619218177263483402063853910443642050420848138185083413101962952878057229883778416985835233393746861867552639467299087633939775244057847189510019846242556559924548696517589367469133719242050930786721459953980856746388678079549339122973940806356533218231605912074534555007634657694233796145848853317057531540497300176361018235059167109891663268977499222090918559223023091823960674978963317544703049787860546159217951596012416734569336431500868741615516872822328720058000905903389147049822841152640840160876270936704038323921682968984303956147087346892950110807801897553389171919020635053393551679147715355450710526402123167814613168824654562093656180643163668398820499671818182438250904498094954364857422268432736541203753893118622211688064174618629670444448593200982325434054368637901804264363842643880313798715579410256169822404501312219829414429401583200714447869937377885428171068717373489007326217266185209678139782457988116524471069747604429510187776398047293067157490492377236960492573728407337685408618035240549039271022533681616195398280889252974615051695921511276851071561073390932176743097727400864043479733055320621211120372802672208978348945669488684486782219943844659280928187583302573310327728097878407777284272543985166748667258794583433144609073085711034950439411141853288813499917289306589104054200673731803066795611378279538239841893995515795350786508680459052724304825082468892685546812244105647722794949661867521623555115523618187709037397027860310817931446954328867865818996492465845104822695899485528533449697354336929436957969474036028317859417157558715970315148988959796985301674480830364427409362085118019169472750442847175458308939155382889158749519022316570718607171089421162334725024956022717596276609606084842430293245557319761010788159642591487219482462263547551392630534228544929869592462437694273780931889537286371850188596365784329738654839688184372162675696578329650337190108183654425021118633581897476036947364911287314955381291296432301211995111234228940308774359513949116946476457415953219922252369543653001054101756396094010316371864768427380960543993596402015179264463879887904871748590775061747994950214120007983236718456691168103050229565469873164862427451214605323101316220163174033819735113175023247050782053984117483337787875112409760715212813250278908755828602791690772324355572970632633315804938776330635039600217433258971251643970079622868124490965022964863038091886694050358413582678958196134342220484804437874512642538489627288080947127686504721296034405237552388207491860204699247344786621753484626805781359757671466586706164489792887364752239249239919783954940193912799497735064989227114391923081899433460335728694740265496712602196415405297051731426782123807830498670601969528155153901557804814789607775897794827256692257506842163545163229735894959005005032360472315098714122908170298238195198770620172806817708135200952502381538004504777145624761938962630674091407951990880631593422939977631044901295873178889533046811144093705038856690433546847138524338035862047839580308849987996873475801911354870753928692568447004497413766042746506996479708968413363736823621025540738636329589838196917278747123573556431890452682080371620575206689362277031177101300113458852696806157597153043968133392530778572243758187841597686493221260994497794206603371564371181072902294731431273749662869841420152773738782418678358611790474654335624337404668180057183788512052099647198217330124514141442012189301731443962569389222616850306025757182489183722056896982489394974166129335020891992848187665884091151966229713514891794371266215642317263403671367775747894705891128110375124294985964007044713805809660667708937163019859136163069516795063660102193678153833541157713868345900359391806558095374331918608426795806821930276073209574861116803062564400716822130637118884878409528314686732061912730320130822537254994584792037215043510248179552832355863046444720863343061677739180171080309608656421136865121590614960550179538888087984790324928006640690490153780707356887687375059686521273419580154682584012576710641500805733539416662133710663108939773528078842720373440165315334502922529272749251324324947671170845985531984856926456339030219837807607646391949297684931193434911315851460827116603263318243204050076322928993228216505296346495953124773960252872079925057057728358704392615980621628081571571036426330811729882213176627528105508967358266804307681415881834549312019210603016567894180242064474509844397386261274351665943307267158702466631705778759989483482469268592870075774124325810994855935162459934428558559944417618425522053222019911865311603258600064723889195117474787085446639288453464398408218422035930763126632954994505703574221097433889361379122046572385525087487980653853709685604123727309595088145032511624228456908497758354696836282006476770474849117700888626934396668793230217315734510260928864644450591229082753936682010163942497388664814381834510679408912324316507293091056359117526403688241700740161544451475408944120892984005683213444340500371678559184567377284736668250755410197504974056631073474280118435544649022236071782243508354725673725629549908432290773258198331581201080017470623332506088995322055549406561476140939890238701727443244747137799692299132809230713870509250009845117617693211347971307785539884959181795250736563906609944126569387920781481714546289312758288862461508332265501254869475979451948571502760850962505097707984773896134037160115862881091347008746717973882510067212718990944564568636711927304282193665795808875593394358168274368888471111947292445548679922679615912235185760341522261672695538171446203596027683052230351124672664719212409248087053032760545353884375477816643065025648874807619065609835479702146094548598988871684603591125028530702097418448065588430092191452626399171000963777759450552096462483235200840883507131270016665645590333899888425719599284326663717479454117574574575959218158076975925395974378450080300680008545029624756908248361116337750202588431550410175061060674066549890696435375811991994190425198081186458496903422371004399792677431662844634797235206171941597876140189668008353677822228709080162516835515164450674785009092636134464527171604138554429237395782899398960498806272031517288232227282192006379651389153005573793784253828354214285948970227046188038346898115476341965241576445476265057047837737152054779034950978660491743970117546373567365260893726899896324115857498025774607357091016687093593332510338002423017190436354912619556300925057727620215883912140547716359372917820745199117390259461428805500881441906689542943296217026774394042500360754582538486590094032831371350123287674184290564965814947142908918786030291573589639792844440003327893039416116480836306409998999946839603475118281431239486794262940780587446168328493201352105415102058680678111462732861833002423763174755167917284245740284764289302782189825657564622622913567123685024575610704212247808082241779036737763704806324000571639807733323687075415272765793468351248638813132102446096927599841836131588796859165647068420807253965071343214595404288985254289634867248316904881930958124778613088430068299956290838774045934265661666737531447762108662946072385197037501266470966687329930691296842033273435849089074196030896930071613915343709768001647562019960018864364231113498885517001882035956043921587281360715289898665005675747602788939545370468883867790826054648923056256904530613882304397673611295977246005371911864750803028462654084011873221937339938102266315118473782963882734421913153829858991345011877055450876431883532134069485188900982730437940839962572087858846059332879531805073336750061382272654776825589879002632333876509665402869721258426631134947964859574552449017954976322811718319669102329249099957746884462294444188674946773992932212523625150245476134105524382063854395139209689382676233499058209260989785689104519977066346379397559278121435483097360157968949369120529911694107748851814121169632282338338166688885188319188859457463197282668730692043350635392931764477680453259110177959806300018386708559468206965493903193115000800454146046602093557738831166101837840287812456039652741548660548005184767186074665620185738391020972103822994702709106404723748271093100126750794676881033959272671993795805543231628638001326278797133583267795509475128730435194063466753478332263047791209547491526431059622760548821671446475181248510070731312662459332824399685503425905516951920112886982765379426784054414893379027629286407205460231259651660009981997309682856474770640075107552324482279788326534741364334879484794963732388833404791771985491370112045047193970385941548900989372096586152270117507268855875489669695889570903785851540723782546701775357803810966679161558504348644272403002347314627063212506895222818785099688977444198850475769258571786908422032046220006651693755886542928164336846219840032980702442409495528182183700453059297269306144544790691595002937118334467895013535604705298986576766341547261557400258223655670810176480700858518831415063704446652875296695379497642658849752247182215937851718751002050628625109794216225499487352167372073375422377788854741095771142524089242735047958039259548940686967309500892310922847265536244273124010036414840032234397509155878369619465253064675598401703404697692901314947618215512365678434476890847436800769993939644483765879167459876240503480834112950730950156877840630180064451544083837194482161871141017389106027338811635583693602900036465721484316958917796791780339583342970350425407256888311011457836784096832701698754661422003259119325506744723040777450337719592034001120254467226176717393717987428465496048783923997709418983060112637319445800766082108202638343180978668549084382375948710302141095686827607840344521380674003504836016828232896722542211676985353934990051303762944825440397362287916917617855620108477117530124648213852104562035379198729320504891096045086775558750637716809593286841270711600784473142356777735108101468092493277707308918190298737128712041889691846883393539054796020431676450401435147579264834242879630870435799611899453654098874220310558063069857273133705011383731475114405537503754536617798433087384994501595395388336097417768941714798527820062711045686871396864476128001878568584582818567522778347472265550150729526278222817068220612765966326195802806353742905043776400174817623189077096403455090381576299182107445001364210584155047036838030890546885911140343357184364485117976157732200837436959602851905649830605425828988481337530709085324873918961310639222060317408650807124597353602573510418852666501082970374800800936612225157093343435468400036111048135972180773737977878129494174770552222593504060849885057830726209204977260361439813290088815088624408925049728287641182241064109520823809279428760322235886278556567797346456955385921379360129060836163413595582195100954394872093726089787748709431427828113604504246614827168795790497698405397104237104501611004772047529927587224129563896204147070118603052020227009526729036405980984402709774674629640308412763764822271484279368538889409935165849449423298985872044011842111697204919814391606536512059143511971514396479478441166158630977076399958564547208590021098911185163625819924958419521240304675275318449137864516821158552793033414160447417335305236347556458819620939876920464860959517094065668026565095537046516512291390067457518035499773764612202237312394828475520564319099658901606465560682019056056906346177946042106739899891592360175310913598827911693015379516650980606193274863069151854266068024617053838970174362562050537162685299681606262557706957151633262225009924204516746719738614345830286094090510578669150423369256848204355877194620220276666670837522530555504504580851760099503919104898621666353231410517612536399423219543069615481678873087659620039394051969908482434288388116640613372196729442679183367162810980884885857976241899837131636146613210219719472032211163042169433150096908184863103744822291304719705724828183126792521880030114231999373555215736681722438140870409601886545315909890899868160024096634672974228220010489264287863730849415749168481265906635541205337603858832697457924441307864863623729739168936590801475656730556974059370305076683643112212913268770142660284746265487072648580266192950587110410071620358515430740881326875796091997218753554360236021954333345829077728089817963217993086471177431609402654814190406334546943486608616617725276980926555938651544303223599338810782194253913880436239245282655459173648962820663030492093001371444272157946439879698723861537665847583782876550228974371366359282458905268011942622577216620698360927149225919288910129780821042491377760132775265963927737538808821460147669497301930226750282796521297617341097726434093243783299814137340280733563568931965374585903371508192872860166736807491111465894630635379096177597682582310506837423201302146549883317735799822231415539737396551127632455054464474295745420500174522272611727069573614270296155943486742098735806731859590507592781861499455890813271897876401251554466196711625669587097195986014189553684618706639721209352374739570392442873221672155805306971562852494209717205843817347967415784064848495104744719027515248703532462084481348244615776728395545979116763991460561173634905176328326763639106076981073752613277508094872967280229945437909680969617757151346751619711766556713020628969372376851943190805142829128504641901047750256864184379736669451058674698373024433963691794304149459807251371781373476676784432602747154852120148912774745878335147514091537039607374306051900344412258275920168314231560680816181228878522634164756611361826854077839129353225428037364250888550618914281507045927375965039741840715079962582659509834349122378649157942336740800356069226659404485862591768619045886121513246975392859032897531202846176743404391365769600420664575546658652713011687098639158362664576080724951283453902800289478198821832018095440265374850546897210770688163148699152146371390194385487107922655491140738687588078570863950951961952926232204560366385984824989946990800383029687192620690356369594413489405607650848169913565950702205642099693564797974662588109875594485667388874973785530111822200189261885492665712698424829975709943897919968829904752145767271903491305373618907374517384864121353459546506101002683215171958302586091291999472357351786711650571987110026222434151822480541012434505166905517854039722327027640557848956905069616102197678255704841036936303306993787341627917239044445634387468218202130986145424583436037422899282427621152677390074621368691707163693851078828812268893921383524456520566550582609571603799758586457600554286451645748083133959984586336611411556179409981316796052347112777065290221055489516750652489554400113381994520383653057668457323601889455739575752973591355196516182340086238344229017843753919569665253468396929005667208900214431647509572979611820356253665651481935099269391467139539132143243503329248193838615882365876682929482287811158076441789743271484958468946928411651926088288082686095272519968869114719853212749487437486472952525632547396223234839870278673984087538700995695055100681410968789371332165497353830554376298749486313290075647856165483204864119911576357000573929557643986910852769963075419830298565261871400281061631923138770364892270104112135361803640863685568129661700695752976875956740025475130135878669849987898443301167092314578655088976874604975162457702025567402570170869370589085991502917291918848573499159033172296986206847029503816905960718543839278920040507947975628700343856330144124615508296229125885390448200146719092465053747657576729137210567307613290288909568939237790186365555975807288443912301538889227809202090299376076933909249470132963782998330228476996923545386995722553529057257769480175929751605257160499972862151614349954578092030524063023606820667368974233957794629928912377055852631579734875662227673501515503811350655075902591648130479085574206867582360101640137136589430497634930811136931205642777569111821562889737772883822431240477981864596629771102464399548986815498252481485617452737139208001872634376917991750617279936989020812935809710139672321455187258442452373593295634219464174922002829284350610210873336384088454519546185905353186760673939093838471089417458426056658191511622112875390812924437486391090351616496154319748382429359714379560565899270631284898576153365129191879748226528475280701492682092477033665097825544756368015072793020308953870770164784998076084880961322438376592804720761804264299676649572759193180817835857306000797167982329969579415330209049430749587950439090045562625457816011630676662220783773544598613864506397888988850631607631815949519037871313217030395398122276141553179552888720902573961301533651074569978862748471585914972864692522341627097509935380999361269786733977611554164272795647060911963749505521042678916577735751722095884343914727776289866849623971854826999343339453245772721819368362411019427287910902551949343597505013812812102860407133307792453094909672985585897299507507451811282480623383322544773774217073718033877069553625918585923610688668351315951828496641410947028312167902686016632929805808406253812848331411248543042048918861301252630101137726900957351757875476632733858953051027542755518539077175705649259477906326770023074801784002254431616235219164684133038495178734987875810305797571815671907918352259808395050838556410029115285560311809663456292480749799474973580994191217938959486265145130892281996138027956293161509372467423349245514724354673681207237458353627690464869408584890754173899361798126749976133748607987975793254225360420946147314214432841174848450111338142027824022931832866905800249653061978241260623518869523769955166529428362075587578968082235991916023043285213447785772637195989379543876762910561335185061233354222197233516772030690453453949710743878172577376783816269355721055218715522505277035186254806454445945160645241097611910345880926366746806261123479561800614646491891555213145013486185262988857887542022123916705062779474601622965328176381583954722273982831446888837497811831983421713725092786714500354987350600961393314553271790531256576770668662146804352129111864914902159810535509393544437713944344158829279898917346550412587644252955013414079107707915144423014651639772148780147399791628737194309519318715739323047710719558838509532168105386401291202903273467018576339419660147617284121737428967684599878164577967537647890515089123513642497108771224790229636015355620465318461685090604446519177929115864723076877237731991809280128570219732499822089359682246469446660118993740970988889790414002020461924717474657844530951163629535115790506524085412444077949215209130623086203610246983445112720944523604709624008645521321528938496865538389213985129166455450225003758321451550392213518282662535015696963894979330700201584290115271499258490509667462015912536923216186526926747226476333392227880477462377527463469542050090600627690830157334653478677620306806074389794132265980670250389215536189631879042308835582655168965931030438668738063210961265833465887675955384562070352541476789576829688483107560892789887643566473517575597553576687297884819993517129109255336425167537082593702695064126697783674674192414938392997551723076022243869536543517692000326001269979456118338372596944190135757803897590956160577044583544269755767977947137951270005962364070624693875167895868122622948105554106893969877821360153838830147758575673833199803239778539660312332327239859777893915988843178916417599483077774762531872396156566890884855203168594632824959917183426395483358732441067786279733835541237122762607032942230098806354704247032989158398630796062300118330287931598081313083484425665799920868980987723590377450178328240180066835981779434878523294583352544458851536699741239073917812114812682225059206819626385985806936254742783034946717811043210620109190518120965455215759583071763213088077871738161073081974740827278456953502969462059925790076001497901393815096918837389494011599182221021395805768929991932824106382923994095645312283942032263642945692875018218332501570685800917983212971611398507830680642733990983159756626031925727787169431475170441283694339500878826368433985528642008843839391380919783874932611848606415203798637332772896020488179218813887716399042895252907678873670256326369569627247757461607751433545027175764487258714651891351636926685037805227281962547081438956821800493687131512221040136937666202956741579364489541308482287801853318046164376815080191301068814513828706865093913101920874277142411648523911904762154933731946130125072628817984779424709668097786265144020668622881862750832835528759761591210345749996640805321629133376446678121643082796316257816255175090972488227933814934242675620021683448502074125911880294913193836685959194123848285601370115759208555006723378967165459788816497384737142047076536137570173318521340524846527583578016874282908621130143347448913450763967579825121316261229578353519615856987654155786466920162974789639187518189449929706183276733829582762569000342849711448413943489792576713905187107716647271814081103315592703549993584845274604112647276740563298590241389611816355242983147660385465465306375185075562149719880100331551818961349727799977783979479009046646891763840588759033480302996480616103364264349648277051798199128637213134393003898415728105657811084528331897431722261138022180708140655128671756496921553796005929638556137474111573219877615507823144310228818015768108769111529884563808697615094104371712448189707463544512243195120391708032910317181426051716596849321145305971058443228011189452565952123366112060575718495519087711556928464712369494081196484950883136762879652770538328019096699467553024138514938134341189861963937776325474622290049183310547240909762353800358145694743390077389571363788920902732787700593022297091311306988029364829155685998149629727641274956593576602275586139981044074861052768822558439982645854506592759517039177648704754330526220656351866948194041441584480350002396488404741249392958861722774782402708221602994260953925623749337140712121825265584967418412454839677660594599026388750150280830542685442263511043463742751935679310778738003933503818958873710361599954579522758683564600299058788765375468561241066023875167407044224042601765762464114270465395163112989727607571683738430737293335198417369732686181658609978314989691040104047113615022573490278945615744812732335957341562912551493336540621138508612848619028339562223363244169168445065409100530616866394240298408920725954346164648922630569923328647302127370711012635572259432529979923717834916631208648124630305275521021549385639747753819104695459478879762567937345903535085834856929608286385419724286018333072500246951978154125911800961935872821751390299045949566300194552349354286258912222505800405460617171189346466296976522663281990792190444904779189535626887763834394795037565268087043906450191766309038759577922436261517425289099348178241666763644408304182450817482346163262648227750496527090214735613869593193736137264954058253203488810202303636542605529851996089035210410123803074263720733202009259288814845244446809419446984271646225023791094532894296921655238309773710287355879732371488185058748812787666711956041032756231815678719893814454024650186911826276657927782280010608836019189353585835546733686761797215270250372569686386302659174340388808317284146628077668552116483643925846040343286231756442754650188929158165240809461276140149290945230285688835747922495455238799275470900884545411608739795546959897754570952629666627506226969340948109706058333144327978220706321010925504240787584579725663793528683642758198997809606787898342024491450058828758084894750628378840189035228125329885953187126981476219294964689189115879943898348845015202489233017627800412863952847293332762420119019744207222472809026545897396297365465115706143179486027156560556368468736750799808390408478751855180664568532872802316318438625945695591285278868404351251343964824873873426224995239860812216438099449298888896610227041293974131474054037844761294102995438712162787597565391453607819521113116778948430735979882711378063854391094889888028697726806282454474698425228362706086697373236914289878211126928485352643783440727197793219379498173642654460819944306026996466459736708543033494760545293478167501145839106122141339687082898950070758710926033179268847324022674606083229807994927987957367249814886826796177874098810164505014804280933341059918425335997444671300571664129936353770377653620858458371962381743428507851256103310357469312295354993672081159426360245309958839565484452802458715481581335364847661921427788139602905201624955265297363250179906060407497382673226281713445465949511642994445440199522294106810400658565760905652808087187899790266222638682625082894794475958972685674186202364364296817185300069122090912834290300539427450135083210358129154743454674983568243329417095109702608085450740009156627236943923552641297685270409581022021707319850267457287850807255901744189266961229006155580765605866126335155657240736719479605291309023527680524802091265233762028815240926563610640813988170509421489145644793001753134432534925994332706437029031156423567245958556305298268657370043086574224765442706806188886750993972923190969616401079922044868852976695719370277588048345783860702697858113721939018714681108555447632274798601795929357811925728234740926270598869397842794486793329432602309041398249322731268131814776409933239838884049756633807628576566177033396175395480810583484816843368144879229982979095411400357533495832543757857455065402303371509065694892887443105973160525390583088113112535057816774435823783118209153761428260745768552335128566148143377750297315505875316594259923142424999774439639732410442134382255848610118516619870189010105829556311841320134418800703563027692489132689387145716881914291089089547224648489173504726746749395811346883326672449304960287417424390166264113376884590265112645148343441044333410490435823250168514919309211116160686148109879139042563492957354292083295277977888099317608849823353437195492732305805206028622197034701359146891263960645979576896324499557857732587735776572277118697803203932003503075721606029729121807804784334997431671632575827053300705250799232534939941423670096933636506712174969399143748353843586311716687906619065280687751978700756904104706425843782103715060162670721070595722830033197815851122162065950180681459456793716042755547962907377398440126377348784379238051236599253824861660097304636683620032558240614203229060049746563427322194216715500107855406696798378751490089344987062552619664901440108372357168674984345508929816680243180054023856925969768034639480068766736540380449419906706893326011823788339245805527762208069372407196993356659786836892836797055515712150793651552282428401066265328583715717356004935962718496750453879578828561271888531922020872350622743328353667564024773212401701456946879864231414315544570437172179410290311037081889212240796347610364092023778673350390649856935559252279711778892717529270211963188462484148566895188551648057854024196846894672730691060724709875679365145749703146953007238172130297965806853707265790464214759379996488222464878865796540831291309894334423039279648117951799587264106283164861886973386005800822452075012695110555880230252359122553161588992014260515628434668699162239264647619786109950088591513132717721345207989937580902108813575467414172034119774048248787485507524517968001557525110517735711617205829580240653098794876873519600727100676101827743496219541449090416578353468022210851509270020414289406346598081265035692976334014414789118895783941131937392074250060520724126105763756504862947086103771235614058766431225303839692644401542638940162515527698235112464533901352824658533647720299028066290607005965844124050521933276132054017938867334614333463345148154922772901089831520818746255653378514034430680838043323518396228556428504753257669111072277545075352357779139832352376250215490514656448322715455940482276985579655000464444642978578895181270009619757136355909556523598844515815138064585953563807780662977240448275580073432007295166579547001936858904871009370458608765886882945954830347960725721174350198564498943596789825019627147667596505156143057779223776287076267170832229246560326648256312807736723114457203361673587826370436978241761212502916836339629802921077323138570062705766819151335542631650071399807504230707519668925321230338166711579020188683313710820116182912653992149432751988608974534520765987219340466881419413639470966161711683960847872622630697487378321316637600853043048329192373346130549798463468670429155235657764584362581880831087444729125873062939602030800245659712934093881694382567001548384106630932006198150627942090361545222269979719017083737797473536172418580083756959658385370882983741035647087880153784593947729984058419074546849674138707204381704136521078695651795743529548330593535361598086980201146481656212355396515843855305933868191922947941004688165261454026403174862499939236986449092218243230219976925168368045138333928747577932657497469161729523326296793901960165229418776870708351723436553828424659291124983802497731517693688903261025384469913783699109999639703115320187766987001882624372761286870122323883164001384123928763917738883845589112348150529972305241165962879944928060715859516794621555370174729195306553838522639534162092084253102782479770106591501749900260830801054349173071614189230816220240987432539833143464209916944668109130002741947267817911848075032545003594811848362934196590404762547639467819665616504005236761904235101941531866920370814168095516945243709557984711574361551073068183028039439253508628290787927689421720432328406093762914587160201564906757445310336077268213418260468309153088679417242174631010736423565451068017413991887451031732510759297364322907223790502645757663721883222633018851233920096308390504528331377198491848227572159979436091516911315323340392631127178946210213280581110617912995127544050587050797743028866381993061512168606442420424828364705258316434907132006989482656713655825180214840766885213615239201577374150809627217918353753740455018453450782122455816099934373232090647311588262627382193003549988564603421686004053353421546157387004191515416030451813329519797539550926556920425052178409079455392563506482621459081169031682508841768858747606692384341301620262277187576451026381841042683990155753632291353226061017943259449283062699277574148485246706414175118058390011367468430155278712114642251585982321876613164149284400575281396943137095919386816204398966116217792403608767365622061924875369774632073690467564372529657311571169890583391136733592483056678536073150597902796205970804094454123863918291190645836641191000173445090498288470343382129875677714128180287355429422533588390047167347796399798961560988040226355961673791642973641026436140111628350549124316799708053627529565796593638388619218509618330574720546020810892687466245441110523412812907795403507447549467708638339723468128509461596558883339140098884006528848532236862352710817820906328060573348354772878808958696865082013785098646859765695300381462000881923203549850733733916017718552864682797907635906220991718473295764884367078560496790286374913379938639466159316325268017525484316640983396720710800402966713381832513914293116619146629291678336589109634322992966316801606157098808374570328930311175001284989352387952852731457566372504392241076292714932576780375029625001848849128101261976885245798460217816621058074949585677491655419172192838723731792225428648594523300686095230389425315651184370388876697869642065483133017062326856862069636621251571041860058038622171468388052289350425622170828700143812890247455399969233391236173298795063747843618363212628439502572381320906663863991727381187657204040741885569333686691288340319489516862165299634357148458133629601957396500150388087356261069226628697269090525179925468724451093532666472681598506811312088107449181134226073029171571696607581837960477550546389105302487579326265863166094532690519100854063365605328447061389888512978696057784894733887102655502858442304831785096458161124463244460002321009742205580979691554686773721600300711371511577591152340267831357199003478305733211694740656589117941943293975463259629472430523962153726436555545499412826562350019969467929574578388020805601906056325256115584071684853992791368750535458039728702823994903184194254431418682838333103134977489729747168092955940386994049509145423975386151955762767359263208519294180812040525133268733943364570013863863118011516565675397906587713989875994963503444896700495823462979609755006074014247725457910307601695415175951590511840508996243720955352812213995640567731866408395498447141208517007071120175237009487466986519353694651235228504782612321210274323743548612543385322787229214670205316137043101384893654034122781293672875982109304635242847171669951803194443675266337828351649430797918226797734512008729980236647793401939095404923109158625408642368514207130843941926764145019814636130814094927191815479982558987020418380940818963218318088786485788711614032845630080291916167788719598888292246973291936395443629449159024114932772971379534676179771684734689885156305154948156711018589890647986365238206508084349852244581432407432691491709559268305246090709278456685484656188329343339049548938842069378584743484803375941934327939149726256621030664926500073664594317914981592605433384290268088670743545066436535073998102790351069443609342827847505680846808216577610179436714428898709196692173245730804543672997564601119755664776738846472885473786044708704875180798629469371682064322405254176155169446141563304934585542176322273669189847031011095665402892277569438502767524705828680123577849561592255334396875603249727319551962107559392079616238512542985312554520826080740090021389489222371142141536670259491928745752299713586267125361863399767503608618980786607900379507485643793669761796103380838567624544994770118566146038363419094208600525970714268673189678138586154739338015876188535430603774647492551218090456651655360640892230664589822375664524068589505185657709180383828488172080049352120067070915772090706930419814600232913957461543318805974396942480765153055195875012460233158071533081376735461806041547515957923051867081744130767583212903753531882088761647002754017435436920325139140889449770638365018436534225858531296466163925102141964349546279936949437446230659272421937156743414188835408594812726367493781441465161189469408977725071870790077645072849078492306092644055248183784037824536033103750619764658054369040018085155577349777252679981774858296414542255673860225614627235247617161609910899794805778012205781557258143891473026182709324621955295189272515587045426869015244234946509241424403542750888260118815037533586663810075762723995657576329898909470382765164826138214008160141836954202500148174375660813439353252762950531573853434009743274481187416509713020980592906735297662835665239702975296391773322906876733754628613890732454281754486293573609244234325498648588054949738562731440142773314230021887743368285176705878622111055265147210998282504417272591474731488121910604458334418539206517004368098529302994048396797791308769687453611262455663862336974587680065994233496153160477559846944960559573972064559633061079756364149760980880002731323209820756882960510691491809883014949808738964741144645752114799674444887344692207427994547408899098439657042211731276271659369527016316679800596108376693576112309896880411849601575526023626817718078637853776480670374164662501295397742347742304616025916961924726941682335273795320660314989993204566901545531203112611111623677172040367056085481628539595114025746352376229924678955757220005246274793843145949774246574941709261760824230563983486016208447889713191094564402943118504304737813668467366965298012887509070952365706536066363573317831847435720397200416627645153776547111499201275348281093700772204931203908177685525979084289517247245810674863356319251487854786061725729734963299490373098950152865983412170320209495708118956086461507006040676746626274554088432295190152066765487211702573008358905635734811311915262795449247696336198725901312178829764257347347765524468979423475137741396090000766969080799140740558446503811430812842697313482083057057538872828208993284690730603203558954637488273701098493699527224070128702626457114450619226589696985073556219595844247490141365879013026920693231548495445151818637116820078151560146631775197835797380497018446761507571836546862156455614330390618073924307005672500519844902505156852647366730686961512045332481744975883258383640702431839482958705308357002884372096419707960817849135646845984965834343670486180456788771004324535505745600265512704566267721711558107095961826609161605493168851264770830454133951631551684110701741154931585650615845464932137138036967069447035926494007696202764075558822944227071935137544739323554965013432032793164497813310811621092145916243349108854481819809515406201476111540877546988402838972843070504931968725416192147549679526748175809416772168951534103519334489819519300360540670032146032352920430869763935575422686424220966600673954591837850379507808207428743376553471823246064327308612114405887347813269987686345193135231839343794807629656490214938679367709457487107595056152023224463087157880474225886160863550987007683159814443314773992920269929177610958219659671074574560886514202747679677386967117288945580394425108404985779922857743609136793542248581806275462567753808356667351599452839735180845384250388296804071501348558476922459836595670338507475430762228791315918133156932616597810846923067379335624725398629833392276715672144408333510394255724655102065659581072206004993928069461102370995834757146703129398156833469207209373687138631540633952826621445330842731295868024708176917912258601038469068807027490689218697950786779022748195355088623851496809405178928883358742109500039345193048460536597130552856583050996878907411549641179231920824345064162591837249876370733732878680826726343676246476842187507828930089000185782298823563747832234290519580777186513593702006700566276788492440739396819812326259473011386768518941935165958671373448329363688260798272362110071499964185629269062549952311373222353862771442115391612270535803554898067648323877891158331778604520570023025192809374625961774973616104339954985691079757078459005742266856278729672736678448665705329277413170188657223293756198690833484970564848489596963527757748475351542338883990151184074872587961324436202241371903191377633603523670090325879204806382389242047361881431569995752639942342855177075353032226466693471060073036214277486646941300322877770297829967365925227685091105251233543819506422159967286942648896132071352655395552981072983885476218594863933592129258206794637520227807359574417691025158814127542629068456864787650121216963990884355358422883273350485396617646743138438606679102169151722240120242593909731497380937872842755271070484685407732081231844353854836115005600076203339326099469172519101466192787495511230715099690487448830993670843023694590609716562146166722941496183486677048666756805361579055276424676380976003642775911061443902551415843783654569181209161701001267233395791286417085321994894818951090857226602237670333191535951768177741046421527846846683883325422717032100304028141211750906682425980167769232158384853136713791720347543205554115268396679217178316226132559251383918881129272006747433365204745218510806769701621128560139541497548304596838049421279563094906521745514007990510978321338895733603525026523084338499539154698553761415516871766054421690407350919089713241796304234674899457684987780696235101042768527457919686999727565512049050745502082317541296156519464789515743108444144382176565271928321383695545709069494414320845271944837049700344149974068348229339613704334633680887348636325459851462773128908879920982911458974927626025473257938618579224370900270842213646849437537852119263109779526324125581236020334911279617559504076175979265234046404284223878690680263672133402064805359096612097096062965367500030106403465542362651525365689364213438305051567718976039785001945538279487116870897071868701251123280642897195386049485244832266892836308729019402116472211817794368014723444824768309111645400997811749642277467712948753872290758071256304387131290399865231174412559918357930562550209425629635332688831764596006097393203122894287075576395204142542009846464256934169382886312624029260284604166834193922551622616812842669652222204565141332911458122417514375178675153044352933242274170860237325259373905791786048004413010790794775788097934443599272377328005135415465382301660287330262750836471586782135104273292764975869697413069693480071098153853229257340720870350991470377195241009076176071333348430925315246213988867268878240369969025968131117502452247838202268808050473749145682086862612418415335543340992086950702136459990754500714166748048035444290765681880239796010508369952921675334689230748848632301517354836283116396269362520920134056633060877848300018353166601657324116003011051794428136331755054918735615594576062917988923211885257452048849947216700017422785425003223233581060509275919734825954905137577457471746970322930691632299380707265291959588493163339260585261993842487543773937358622316746339973637277730458031112102833436828760213294532849486696829599535301508860743390122385506008593499879111083472160075285357472427595139891445369112152268241642326270596662316323091132739277222905040861233513670789978960433612602511175849915833794909922133919609610064675801493522163952882503886608420995187993822329915697138827013034861900967903280451714036464004401906328528788440037972203951425403270200690307263650687663050869191934106326447443700392131331360957617210700027503225503769311480618982241711780337219456461367536790542558771302990620965405119279068904548879276218409189900948240761657029051223171425033420092736961169756886829652415303518985818354328584961706142679358161028951432061629841666379190557030898023838448229709053974828964704539237665177593551322776665448588909115577960159694612481397505566747066640208677943263840665335472817109298565305480090787705055962166155774064075227002735108267686430423616926033154666896217846448658806685868374532186927594904747857749760171468152590851458310020638128282902359144146980829958181893729214811293299550139543680347846849292213932497426643756857027505440591674763648622329074019179575767876630836323300763575031427222405168385141406034006587509033199866175030158756518941571325173060303874913227135379851052431354885587829932800505614230559317729487201416275500299655814470090747403725066703261493505948341213950834703138943268316652981564697590575577545479265351413606564779573182795491665371700252029888659201324987226887825914559949743957754805259868926922631981075166263760605098244713890922105764733187246809345394524380398823952179165351472729007951717259999851442532007477673264369184194159194194046030195942241542096703557020585227717359517912997419693647685141412447240858822903237221250257514637981453994661067259393653877812276258850777091157656610710635597066901135976450398160946282049589320987453681242692117523766172100190863027001155320548127124893595392857040443070843381339745208713245291718721121097658668647220864300920027527298814934596552014582285404211979468348021764419104171446745489074086104486276614178954290770173115042855671701392395457206626093140022554197229546636105914118880994678564089011827793133690573402113448869008708676427208996116121157399782671206354867963321198949666786971610438141471045646110459705863539497424710755075178283586221856274989286549042568935134290706389690593708449371968052616295149316748998513802317857865794731095603906680127367960174021744569178571470876212991580142071279694321668123708542236659927250592012582160225501106260540035506608958539248291053056581754206137844256119467640554520249837506216200512896113065065140142182267077174107936450813002177340725884130656538994362434643627067585126042917408786679195127252192011572738322213119261954325742213935542784522739785433736572696339572933770190976690533992569014925919430088107747627347811936271727311758820191091106166955720404779335011136396671569487641485691057805782056035067307806144872779855128471424520906233477044647043749818304135571348164670244260610400244155757678402985151405066248952380640561522515240623968700486950886185646063436272580606454129179581871186954794070318287993050384324875020701655289289247196256732965534720825474651582297580119868898919838566104174733145469126064421975260993502029084484465209008578253582251724480169951704169288788043974804895329802374005368631566549676337217068621308435548102806027829542365288151137214070958424799151344316633842837414286409984361505083262417221659795353215285058217803168922371835376320393135222136441059710308706584325907634718041931276495218268843149257454813511748019987231284674329869758483625853443887589845128107481099563684065760832677876246950549739284620614325008672363543280798608653415612647930836711489017882783739087785449408385031094822285885761287222508026422932130617662548439321880005913278518730851083508213119893612835373676530925528822110564715991416143973820826819000654949527374762926281486894199412976480803355257452635825400998524719965407410951465287254592621414715340649661420350328879431474487210208324004886159220532761336249479410450689213070460437958684825931296616010144306091835300031345682334265906649320366696867861318443367894910325226878473682441332274203339555879164167326720983503657137657694802980030914806560362463869535754346567484315448775089707822795277190077981695862207313237044311984874941808999350436292651172396303595369334810691315375996139602978379323825920371125321349886673342637919511808615768650753801875340217765662633936011139619458474857409236528026841106207941510585191080965586418676632695903354734641838687039712399207238063271554744076595778764638167993562998280348490186304828157679307944580001283529992969125940137600139811427582955685323896806415596814446729353131213498344662388794598429110292522469667172960567307373471972458422567159339871674954154563954745482799438751213582878404927156225556378360584512629431481393509157104473141250519705706364037258604517759604603302709203097061600503660827762513336152287718202405339513827304450372153170752220051651162211174426094384886296768017111668772180678497876234345349430505067245305435901362564163066810384946788732824140488208314567968672811852205606048959788613473699255319902036613592802274037945535140574447688426277685404412242077128630675806990163198130179115078743016012768341677709105859295510709762739328605622021881527773498877442408863919836575695682351425668870657816003313698293126545324106258663415397814830906091641908975290523768196120730239424400008892839133277959248015314115940134826341479513753019568360410481931580847367397894060504551272706295538891705185603716999379513462332353830498620040400019224854000384638224668297549518090078940099778551260634353754952145027964958368209989870634013811647768398825046974664086092382908691575208295027801356180696263477317996993788283091873287918809325602744949582879438916362338161539190763700659327914627789631862413110133192432687834004944004247415760020066452055540263442070790153936830951691989863446929088222488658086005113195882818263247139499605712901705871108081547067262266642368144121100544098972866066214474525110214391009124808768288901273392329476797718456897825345572966994422144689817013015464799942851199390354425654116001414103949302307574192175685787203463364071220286931398604206362337434049139445969376806075570396637864536294162796923120267883060174698819932042539497821962479812419688223341155087344562071388335147608341481984170805724626629738599256755966589267091572050173114022102833244478092507499303280738478128358985410386938153719733329554895885421787337564089720781215888629286288999614532842061348048106211881209881737901140041511423749105093707002816350175387759775589213616826976602854847266850827439649764382484589602125327042224789549344806329870303556468260286828115148643775287167493284308918457364061861102819564445022400593594958545839055110960507068928350094643962052928580639189565083352743879334855307568883509660208656602586092391670866203659482829939715670107273838753634789709868643822541262572032712041328666626728194585432369950610183604154093733539766056762452939641855563886370272770353477650637414439069213550776092291814360404355629387796625776691855177102144807944572019414294892623901892757255797718535165399523369539825975364577775482770178599572405787890087520542923985029113830984091940136136775869826177086236866828029590647030315045749662364952132932159027535807451269173242068950695006763310291324782553820396573752476619080434843731679239816120351690370933693261790851545835392229322380469470660514488359095937603195125010419139306543459052527707805546425805037951602394539960375623643293470179761399906804617187529445742724124991926515950713605653895188446556867680253216410213702890312427568683687120935484100591325434553495825793901901950121205302151622251630039804952386263901294836612116916988695545412207366551898327025138840398574620613292993757058386211164866335317339745442157128316001176779209192030915974167469005802585115189732253974792777227871051053126375824522852352103346497587001277175313239727866770714219772748765544616556513436984755600953419996940532590002824148157027667108966813417465369964362371496821924973492793553787493623164411876604016504362766502613154593039720364834899954418296933856498963616332087146788148539215999814171775488113697643906550557286834818479526430578401298648522553655292130217577063822327656316011200335178307192097645918514981422166750677593337547641242917555849527990330081754172756087408812140706956979963548010211999435975545953136558580539510650704041683501458137621445341223207062847026371668780893877015639141848383049171569953769788315270986577406047355666267374502373066781079098979363897094582679565074115354736622972673531585483289766654824986752983892925503318686982289066700224938548713731234114584153090746168447968255683522459715984935800251344221232402900885437723875113405478347848845435906006226420447261098908238377430906906367393566933228951580900479399673020620023648153537670392541399688529842281748589051370137065929161944844658542648492539655191505116400301710925292784999012433628595485004878899128690048032409122719399029572335746335116037053884994352849916838867516829937696020599257303621562587348701931884813443725275776483836451981703324690390208654473180376259115944480132838120206697953473298139515911730664911396183877455596754891366280494866798947160445790633739878260970105244593770029410559893570206516570959721611681188271071489876405169405641264030311874728335533310109294360275255557871203609303882935288924931713033910374470613876747273814658802675036752749175421782553998953923100749669595227815048968038140554446838455321335602611378131382000464666406335780980065781683331001468773689942007374680020573179804924712112729234777818114771285042231477856547406644940884987296145708115027186864663943622110444800461816286907446988483931233966315968296085150963915929786225041850412512368585444152427822214732349413326559438510500225562835478843964872618920610765385741586464380583672122554224459741697642030289848354319800313146699938363974673767793832311948128208911008487647157872086118785325117463800754940463768701622904098890618253151259027465822795145860682880030884071314943124613009120619098904063840849648575186080062623704183680659988803218191840997905148090880786039477256658348723623216455930178748251763098047960972211449446220487646600765333999235330480032540146904530330227850514245123099335583046098118810699270118040203016674527985035293610734651370917307651587665949541129498071440485386860430301574072903834086629952445293782665517411182411172135701524747249921155560722743509791195206361588710717169550736510522992390336323103037020695680573803621645476113651520494872918658078853654932203703655569124994412436599040107201317141857371029311297252719837380795973550929492982667099265622462071459804496092135925610041470891963897445632260037071124247445105678009732163304819247795433622745638890902842794359615954294987560364424875714675380482289551096955439081182607762069427752549983209180068910250623471102978683309062082695045524531555836594737098566866828894308263199910581932393015267715463248222473982051772424942828560069755997867906227438152703152741956461093685435521890831359931026673137181978223295885442910009564229019798433404551263053501144642442806153404301277118828083920532710327734053394709962328208367254556652247215521573967505144501238496899826269283073972392871964031552069608223472459297982004883118703781467238034537073575414544754217913702336945777644123491326207970835710163769162428383196079770799376716853290687017522907681739707536972363413854186072977543092980931988784263815615592472719172640315774680282648809822578997865462766245883871439597718711429910316389532967710218157940266134026063740509738381496407765591526262027225218962390658638199588712923092732507450339801191819704906241255244630886705632412807348447639248479053673528940109801590693133246551433963547219565236718970126545253175074795606125210204639716398905841078461338502975727775374808147493986264921964815639609457761915303208086604415275923899040677911133730156774359636893177068862174195852905465245239238188317364381758879089270261591941359881588278431813890154816736675097918515870247096086804472316408603398126926949595924211574808609381437474047348669496228759131742744624539061414510783366653927120131727740473983612479324346701101436933733130511347650343085595865772845013014620754411871668569416295733593929882970311034353792543316046948871886729311274574021551695938657283609208003910463722314772826084491337093073550569989506131516609199728886242140113803110253003667851666843418649769341259106919642789862619544496986371609756321302670705718292637431500007677385728462226595503159083948920273990615269985912301229723327422094300571750454988012273497962589293712326689165557814580260520108415440733911615679272762169893883905199711931133437883438871108360381423834794914781575145922119756806378598110199390753745175235822156136852973234143680466050493265495680223806236651007942007211677909740387696270079729308888670189011841023151538816157994284119727459216095966260186545385500084895372557045319783879314311628537414918857781124154891059867095641396698254899871631210192815672768261577707147598428400079732546255319206737877932623460782787390954989083332016041519504446887933172769440260897072517921570484906707730826002374033045936272560502674969004925215720985568769035292790743867091535725465816487668502746957951162655385028489092850802841754763201932195242841546470658720103822450793419238252050910292182646289165195339159390662898741878827017967151309880628644709989707096029753045690880991311431860304789026501278032234776028907670181991215307863159027733707517868844689263053491170118371477066686194343662481198636756214325441348342291752207892732817948450077195528272756412957549865267627219407779778062323281510315286701510609432501418485892095812356293008842296157466201321487510518159879650077507544643912863551031527970142086828877756337216828612392663939189158007783239200856466259307784353698277618499552476614685590513720264423583778181502842131185127482749413265871631337695046760360824858782130066102212410629698961492463090279668994418574284242459079748619612142279739671089165706512552174184076316364984185745397449999663778692379421283292988784021496600855756684850848788754075688287302908193130557705939093884368328224466835866974129196550964368761790497162760147869953850134097539581154879324389054265428766414135108652649983867820942396672652997814386468250938711437540963309071282278724974216105045673606627672167211152932787347313144938783222277149206528951769044974265605343229615538224668747748042203366701563480184478719139653821065691968676425947017766219730446458398018525226243557991699884800262764345502853496787680052708961103895833649785754855754097273422824807592486299026104657111565334005155885035784822563171912092774642186711858999054120846463609679098537171232831296905269642919452621157994230258726509220488862643140267108688054753167649448760163922028363735959510690565054341594660471073373764496662206480697561715552206864708038367277009190854665567999970360880435590549551675811445983565623136190404480921834394275602195765165397013188345218418607914533720725931117547833513092739890824529442703468543367383882516700403046429119835497972467515333002322962224760610342407016337490657850887070158222850598293515706167535680597912932376701634907992362614034197633158301873984984777188828876770101869517994250282994220914866283159329719281913443993590023818360480375719929052349384082501665957390349381963679199842065087263724756602222239725744854960020616560726374814736158594297033594116500147327031458655538072849482039628655308256992687088871620235345922612735559632084376323487284955729834405838986986714667135162383472677841146353058881738796230712358614463972186519419643147470763093303147868074336368425800227909872490213278716281432682659569064913278541525525980071670579294163698998692099167598117356338514176215751229708143887858159740141485292817629041512818454251744764522220299315753433583324928502399482485445147306171783509384731993273226723573031658811978308937969048226107171042049088899856373033956451210113764310693835274360029939073596087733314878072881738457637835947722688623008142275911910819724925890454373143274341473118775285842504835884578785229864645948683753219788587911182847378810973935997210737955469837582544402326285948677931394568668878565624893738477418729933498811143473565691773765782903727612935895594115867055711926156797793312282495186113937326111340857585999278070843073625282629595348774154456182960069058632075958634994126944670197392325948213657714832463457671990374107190830104591829971221866947249099685987023778280621682927518092910839283323675851706354153474287797944636673242216768629290451529152301086726370623398096369991309300448620210908425119234022943383727175083852096331532424419310233845071236319812445010176118137998596838456276549552306214856472821151712936087871222084749924472251806858337153631686214912280622535877133712088382575846521606456601394351882164859714118917177940047363761940202140757553609985093440609341605996972365920269227583223288089201003228861759921554400017750984354965781802493286876815541496167962697300594383186091473799669609276199800340903869080138470306658797858831324512365124053465872348975791838122484817469471830611156344084990090614603949714504888707319390008637043591976954543318105876794400622737645695199486672062862125361758732342972176689207460469607654856268993704049789098249729718997584425511081775426125994278720808738914928952684382469282171886398765409452487406961824612894741837358973252516351117988678633498461940827561585162520195974657767986182456790935447055272822220655352063749556012418102116318491924694175591883669754994286257408227260562828345833589688559917141316506416554982037025231300165181934734085933598797104048493637284865317089662390644107055807492274712676982848404120075044988664212797391123549987162899608150054248412157295191950522253400010245741487427493197194366030450292531335518183434400702369659047000731668816296939467086655366946216149180185024323972201414572737213529926197523075796242715643533184200685725115030948732510455282173275833215311363685400905822010110280355978772364571229906764891728795477833630093234420938316927538569064495765873571337989708145430567137547119076654569750800173000534243097495664377392053555925903552103804432727717078812439223974103422600832787407190406617777451238412594216182183541329120418418283960639419498251748159778464343598675055273256656347837350711840523859867202358619615706224550226448252539831628183121974269774165785340584312862385537655416426453990725021909697746070551752381852019081941215826073793743970165436856879645788246799441980756186798597694385642603004645800629495184370786186280899441930770355235228775959365837414446946784333102320174870096906438091953361852622929104443037923848858091250945448253264029697299989830476438345044783024950023687419998371664867174448127927263731672024334469427900403998181729051268993777327053891663997408251847643543024665597899833320590855368415650527973069555864328770482932613701207784518533192627504053645179086007535826127542949394499165970181531815200239781848528862295223590606755406317922296642945231251247183003094645848345473721201595393484878681022713394550120702736614679444212561609802633821225697899698556719848938572499014529014695226121527581634128789608259898308641201753404049158652394061014819973067271719454765014644608663671800452555514703995336709120659427976295546963524385539896609567092034304532372997574719529942581464420953395760235047746213041455818119916386531169081710679115750598595869397466649735897065661085125780870364204512560764350066476305757797293069706141588501940840643373597408721646930277289453322863248946249339195853654766342596747238275863823181518264362923684275988937887129019904836480631401438585145557059989192293300345936756213470943861369498416761830267070687980252694186844651263749184990055589421893989718204392880504643169926201661996327363658963894321348977979536967508269793957731282473694317890478245287194561014919021960246571480423965534916343348367447515396234103406884381902438043230845421089918834768219973417701290302004234960209734017707074466478126641039692374164912515852332113387573736522698993600989559187110103999891426945247456193602949799948654239179088649201887876621477063387919174718184772570060292650880912798405962710039934076724195982195938349909765903394338569094484902092989718328723300716571099656887364828598790609167641122055319903635327446583545175881492435778765933574613359795474331589873929190117993255203809526974807342879964763635603953163824829324644399331040960016860154240381096391460097127004279579392450223338485787798424509018414334735918719586394417517030987592394301378846566605094058202810402186201935424356964752793628479149428089391733376836223413092551598471863667269586231250642498246706345622668055862159493128355152099588198059334589283566581512945234613488194739115350076822352556005191472570087897959397940363947905359044462258607499553029272523876990150438828343959514745159515432675685468908030513529923773132550501973978420619112994611055859445551513771502757108881576714247256575951376096494842346525712937192460708784161226872071934558292311689854114658843028672945594620628018631531024993377306216486912964479939396902363036318659763567639724564341313747633428646361744607656541638745697671051332694292791559386373744640070448212246893021054280913934370966788485689382085861791573187560245784734459170930853562383021164322685297744176106600969006641343538043490508713602384224417402091416381537265798591150740039005281616218560317835519461120459003694388285710361111417756475865044918119209155466017561199575075182259194571485026130043582535605583604713557053269623686841767395248907106852152243300522086216784869586094129187677686971776815290781204401461645134635939816159114070408230878141176583062570023292559912097484565666961753616087414861016557180232962497896893615335982500564937938153944071886704652968543110311745448634131842317560648536206467300095303794057007563383071810138603733467340721847713291120370724340684292366663964722233823485311370636706941397580415011297881163349505764072927564066794132367195382829290518809263926478698993506767245602852507470325932234077947225028323806748403523202191951019147517698445641583140737408856684997047309292052209090225230606566212624815353349756440810355626674078190714401345725152372976393686223438888097117255738089869863322221123016309496689227403517011170023044007681062810943010505343314656704912839407801131064102299260551118617683767651830609680009957819162498593329396496583006006303334487515984647213629205749327450847251769489273583727772559302781706277133599460939519923214021988975404946614593119205648147332639823971095360668571731860948377083508439824059299109819661907578685901039136968296426631406328322982402398973891041756327983447255267677601016567929383106337236604463761394783157463942772885304717148078025664717922232971705700648957212262108411021856359244753099517725268913313340827780623492812407823662549576196367911229202243910530025405467427336416293155827165790875066327778929855023713519023291997293199838622082997658984734399542160066157897333936154164162227848203515384044499453440454116748482852714658914377695922528799863925845539377658781309401996567247843871830964004645947445160328685214978498484764097332314450719382584407226006092526045478705856878528837201387406815597329547155427655415139228702461635330536854495642959901133107098926950515912156593718688863115506234277204786308741310556175639974499536049602069113005449716792792739766610682357055384824874141744569946771967163961253462112619983316244554446940082838241742643586881111738467690581429176620830965647371559788665343165551797944533140746853881266386437672296829196872915947111667545974790168626541345010164746196723459025396258975550687226895191819331245298925602699872638483179317961906595410678227650162720922845216459052015706145692483663267205516804209884258970929628267202907234963421589904703569913262726591786867737233503482446105908520425941893252008499694304949017108849703126481187150599152219447735673991142899899954408415439517951695567909317347550291018278733275565080007246670423604064608587374077722965921933705968251185088765657146158334384728146985858399181148982682917307464959430324659479702097034176068534114916356065246035173737258881928576922822150551258320045464482511025932049870548028004403318948089494583524327051676337405748324591757904345022058841933905292223631055117208385454996187765003312658177385781184029985720276499057142169023030233291363743772144422061327374898922892906636116952284558528605398066942838293010793151938665874838819327788646204515757106333538745236443229785458271939730672898904670528385251757071879132767989873537812069136539434553808178626075616003725190989064725156600041294740329577550446468630271691856040356476424987707613010158915521321203662393848662236300501697588059344323423567806075168877553558800312553116947747927140857519111431536745193335810107892033860134566649704889048009069706048634523315794031620556959667468264088398480547745591749890581782079984099764719977665450373827563412902405658187685081854659622735354149334625750752970050969744334466447714060096940105191514271935723870623111688478367439935189277291159479599699923997518757069976879647380457056064822399338869854298266000223811458433830263027799541791834772502736973647969685338101916027493334700651520976785924049595939859797899372818663522865711602872795580220223224458873229148286061086780660403838455711813840752939413836707028357063592606932681289883906784228905208267251784336914809100319930007020947523528733590041683372106885933259790690614646887863731137673345168291708752622766135566711806202561745906766403845347610975685895985565851097911246841054133401565040200344403100024943542240763920737647386961835617215338700390723351647984754096456727391384350090308390501773458851806997291971707485202413637517582245720264273663089103744694378891006462300940582377061421156243619688826074429467056810860946506949124631547804633766045260380329027982492386646747439388526116258605875436684431595189319419263749723997683367535088966045170563108213696175684835370409284403796108437283826963385642270274581648361608335194775578018452319352782352964894962442297970465694140053556831246187957798567930520369336085461303553974247038182793936052014397346934486439309116735064547910902450283381738115283752332505109837260489771367831415978386306690333395240146729991179442424025606988974057051160400047952190763708781224436656152165217131643683604158062154522471069048995632063661598852055365353580984382434090114140573656360585948142634421716618297159823290803270130756898339311579625794261214930968066056504445338282927237855262238106384800473819689537105855916731620739152584318366187147058914837793187742329513800166184637960386828499360413107595496997177752593133544308294222680425299619020498413818752749362985006671089430027647820879041357566582173768300197185386079933837986620460950505405308949154860651255759739238318596286426063079974810509885936236737386532657513184476011054393195060872828332114272470958672581432378204886624441953607523942139376400876681395291020443305934568394250985962790111656291201792905685789551652571081472757814109322052162655765362081799632368379356200829931580939116973857499966683209712202774625896227652318268188629478200803291787632504117254126741195360963959657914294239500457455814783343682759075668755256425598798105102717825865611631014464766617711828593829347021420974828533926624521003510572429280582193348304019460747552407202916858638902032599980885843592905078099291063912423179975676319249674911314287625067870340590382296791458634944148628926854979258214508056667145448486639820161837261922915190045402212402506861995224048543865146943497388189688197084267035132956833423951359375499636326821329496252067043617678416022691176991675277462270895424970452194550908754556819182066225511643497400539242011383326293301562922693240596334244289178811636640864401689778179869782616838960664978244013543319789484058161875799316539421031843604790353356847498435485614771622110699102402827600851077963868818740867807544854697237831148371039057695349293433028166213265819488486394939556600035909686873198629337361769587963019715206428218523023902464687868938932221902541002352536216115439875807100572511183842197538808547487597347517570829766420202737894875897272577027425628210511361407776476263363390614865700967957102846029084047429223702541710314989195013971238193666690502322208737504353442829328164640054643060555034055647375996989899890933537907941042079697004775336320951303074610751656496343708984540673492349928360586683958698397755269670884610536507960797436825814447743431463587360521983007687228586369796433927440290998791838116928536550098339682155477954378162049862528207738346401982809897317343356942558796576494263440767725588989224580728804761411674217648389712679820687075411717367627130371598849157029465466336320935595762828169097897762055190527186564694057032079496437471912079718334034860341802447106927433281494747766052300571941733744437263531623313308575222792355490058812730247168035020739929198313346703769538445878564496004118141438032897452535146561921385340434665698312479857610160401594215384254373153546530033237653438659268670324058813648036057681844659918635379174393325135353428825579305201447304558196441880568531413112230999367774806012825457428660370298994752716818343321224571573984442513825535459789528480975017130675178151629349291316516932153361409965811747137450755394889898822378785692241683412524209388358391299277055286533666923355122369318486115305240145527457715674774489365885114126515514598938350571870444237373655997411990431722370277711537236203054910142985524075806897394491222018954931050047658325851494657915782416259371919286415135678115135522124532471756957314777855165617833529092818255955168908275641285127703599678161594014819883766279557941813775242509613806502114243323552591248224571482806385991557068382811624529334878991926751695454842024563930302279646864289779501256118194059005138298077205586026647534943434808276259764996621509209461626112176862916178242130010723742662767858340442338735285511441536453342004866862077489264445225096475335265397946733141563357341064696703918474343530898239739237507858632265202601197034919203764060945411238840498289564430629408281874616377325469291584539829324249692940594596124729717129610117802155982013162764931784097328442266269320036025079834194975214762793827540255252810555340544973162000335825107104584688422092562676998187121363386296963622046162277069238968749027023471034526169188716324179075717711336435213154600265396075394105639369924013200051792781285895142700509998124565313069586984507334891130958960973120036281323390379562053196840058920522346212778729573379547902414703881578082667082305508688323134902484999129423398823436854985045875024353127950078985925991990069973818601133931299581168223053565360327321176182430445749879732497855216881159750844674207790155445665068703684462569407285235388742333015513413280792168947923176970744674712424050439679078899521030201610894492543998141292381174436117646142489978203241807987414322924438153738393952017256724252362998768980917904961592776860557645662006651945083577360374156530325126857520623614285417631866034304407812637554314136791688029817862895417022695842829991968398691953627454453678369970153914304079352460980124366636996884826710060284898418567969628810798169684300494678833992978578221051976759127669808366305159169460237214204668879015542700575766952696896789521224032194852177535667234043873347727609660803462654644110060586870885280585417555512047578494388947413320101776040553736419913496011137185685819983307740928352717978131937978275716089708208852185408146281491828146065562385469921272967372682832378185516049847552422394082818690970241865205590461212633757352083957696579342730277859835678321921020202271912231374223885384476794308552645528180264580117494514740825787541297614774420173881485300290449102563561859483962560142842500508033693867515232938418935578635944556223394700708885008331307937626199428693093018710832448293300109380596229371369466106688167870679247716418702850857325472175654839894811868019014474816774384214610148057163187406720153257238837056725989322037746754435002719750436220802926530811699443867187655222264089525195664921971246735402934601374265468942868071431956562682754687356145444513129072530694354074070931214567684625416797564964930379896645043479237271199672589641111192478223885582755827294989755539440810122071668312250544494597103592367718470072985816194401008257276151083737594442627327364091308906953274206418643670492432045157865560199871384242750522431612026968062288120399418366665315189907156019628784035392574653365885277944795153371343151116771837795595082248444211729780793184068238951679792698610460686659018195672610807704503102305155154254651307146566384383654877096593963973556346653892275310272651215365807829098207327130755822483376801161849688294578550748560356377214523476406838411772197557540955455853651464405447079575524435365923323998549835902345933566185577970290932043836954116552349846610874082306274360217309851798320960827125877089059921098265749043760046218818752134755168444748793380310581137438195524368105485123162674784074571670104014774480949811708709040333043648119507152556733716472772501575005993241091231054894877075681671126041781045972515182037133685603264902824854369419917957326854196606793779132583391780793269635135926546723383945649774810906260679011101179593364313352651298506435663777718057239353909022330259991130320079799549658812291508698344499113098065410977103736768275874723764979581042341185485687579897229160343432885495884413997862905255791460305298896824291413362215776983219906255525390767659814984143693342882096248130276664947373492569628706289240709548608691285961919309864462723409621671126463571115595812267574064775096431482982838865181130433439807114946186345627724694688353187435174026274753494506984317316396808002276816012024021344185045852976756067730038394182202223922718731697859164877080468281912310673865166324074466599434260788875693296167478115090551896825871217711610725638078700578850062305595824076546312350621412107146017227736567121603762880145228426964883042943569332119000859250911775503386626598666982274186377615353788947319162622149660797902174553883972223238088098189732735999719984885926477471789922073790453447328004069740946118001360051571320717791999581335478291725666299866976923774865593341880111719099382668821667008604207817545921479405824780797082237719895143785690149866727602648631329440433271504494099003384356950070882319300561351288652578926100741042161677103790439582923713655766476088991789386313482076669257537582659134084506861926896125278210479541603552791875075712997530345751558968598183602619472210363264005086343040531780743025490341236006436717686615047752668452105101096840291957828962284335865390788072045956219191881932676911201291171344284450328153418832334885431481031313772785946687745647034470528308853622651919311486358092912796733510203475038987920993855600885033305988020903627907802596562141380112998942687677698928440967250055305670109753750223484670889267476283590176818507072402996707561265186703933918778266321255071290674022575129283005072751100517520059834124261429904564951523589242873131870176898177370682412919606153394619749133083517055941346181579966187170266934073302007908860154529298467769034189593042559269331830161058827835620542446746963468572528817861383611572610684395647497794318974419239498508361793852061878899919369159381884120312024310193945870869951279284190960688062943761010462011794294112025510334426820532233089259796526349239420910729765494771258113658002135604691758290154292691424885734267078631102148322276853418683265211097521966668957880461657132929725091167537852434100089055003286319545566307773055125811791948172776805588470623538226900227518792214261127422782735859137788041055094950320192661447330642257289666724982896272702645751659434153844373050257579247172932755592007702302562031387153914686381608262351828896180966565697060315961782208316558136243833277318568165152173277031834607815014663192583580125180839218622260123317250179870001262957192428303496676327519853919662288819434823769606100845465609053607046606896944768242482113830342323525743808601744212969900155099948307305232791395268748723598345255942325597635770904651885442085223483955015387781418055736571145604956146420763521068660027680672310628773739397690409166411059198969574572852313841298076118280508878333683865093493743154866725858871348187692063234694891028092375191797997978543795154889350182476016950139699463486060261680276294414061163558839430447789510124056247105370014485306685447823738034197893942805582729051879602523550666897645048644326568389486112133104764056169917229522371805136956698158568713580457212204523994938220241755690660977455350115200473921532067676983302778896688282717514621811412781232422758523110294403614791688509691503991602497683914920837523094663375079604247576599702253577088908823685705383135705199860981662313773891987975038685733473326281601309957595371278239549340404905802331018890059078481181180933407441945207370745900236154394364056200274963033614584983804230172505417643092770889264685015468280920380511928717469217190590985232917608729497274472218228795586338386291753874871135726383576422202435530231539928236542462746183190336003761817607794459723002046669415994094775180058600376002403176672937737423631004081461311767508338387387256107202199552353680452063814751545186669065083841135908194365152812255220539333142048550931838184109980768586083836786709167591028620400114553213038160395668452329865942818520398356106682414783937152215411872063882338143435723912780133577545594907867132757672655235846834803633327870348914480029241589124853393216591778113628555019267017437716700684828813106940731903175977534668906183487157183220804083365594627350915311278237173869777075503205788916088340718041817688148095026714158910751779203516489969934263285654208482428357021923614122088319910321681711831143989519907869399287639342906490321696591035378020799037913829362168043777844155594563219354072135739610474991577596461619297957656737978051318564845223044320051999732809594150252444165877619105807906610856994203292467732264356090081732159418465371545308153541181645416916915809122546419687362110750177247756194752310086438568435862341443682822553223194164361533225529075561184753713714984446322641639560024494960818697120933391596329359589573470872369801051134008134690508587186137953269129468260445662400369779844579794922070380894873491305446527689294900879313735388058349565330753484766226144099921321258083215764809580783084761801860763518807931994020164391171625146484615958332922256776269708929069993492637936510640830555890354070855331034201085431135388654967557392753567378784697391583834036266251227268919424905650768496737347465042114448687053791321266638007750467380162820957672618095779863884840866605270102961468039945138753860357322854245700509169045959791817226183204312361640778818628489904460758282157303231056472490240742415023695078554667986669983105691863773833504011592547029920503840988614429627810908976036620228704310210226720401915534294850843639782828790188192913375296774689030067127041102121548389362585285329379371978345623908965887368896483295092537712606459863545417800783561097105551206169317444365678278246919683559902767317991637944546267456117470146309166622042694206258545108206415384433882428736545420785876348213573605951680100168678312356205606946531489196475119501344885082568936691352206818580882039001372923957952369689972907539374336585070354354818500138539777483842042240894566188994790992206017569371707216499017634486860379294433570305651482877582226237498369600980845838358412921540395844727591122128724354253607628226693158505373387821476379081566000696926663257490257560905121370005180284187396913681868533520569213115178209696693086190827397995038507550915398214706662355849379252145451944097159643879656849536155928110343153929509491432731954181729554113115093056469095724793013236222016052034555437981793606855460282206127586500932484732284953165804999395636261065619148258429111696183534871246255663555558190803351483993463863472449104785271212461174125848211213839344131800570775709261637141958464610358412214088284638931852025021534392413929387275502566029727711892723849826396965365126806762597190656894035262911810243044019137226850703912697599230788721429979672022543112165753694348405238349886809285111674323851929215756158456704337579767828794493674290265980022183581878429708368728858113212661192664480226640645952862276488758149158820263979763605702805663291673841806902919839353418798200443703378484139720117804122414054801568347357309536745545554819742151422171310492092608272761075644154644564584963219425460960515542957014008638634714348546145967460761063251634572150393975784701863308905170397359047500229930515557129148738636836590563215018777190800334932816389194573271964341232542595979822227837051696119420141878949530565931946367783600446434922609805701769537218012817924646072430633941284006498910011097851145063069479376913325627522143577292489744606256835721424550034213075492547960749618063437969468201561700616772222297538283196941616643315322166920319748657454776888984779392602221375614091589732726403167702695602349336679928666179450685638774395326205293805878472133277325106827538210692332190731719062124422011134164344342021019069864850053183810510277378749998876017424555943296050172204962948181002412623818873144533360023508097349479879831945389006765490210445546342763843104555428105694760431087135868388905739520221150983176840712952266227280425502429477050206961649841863694518187439611480619904589046015758897434432338855410585321550272963394966298008442499620325496773170443026390160918947442916201336948556131164559817670949172558738492759099257201694339681735307973383923268988380276011284110929896519166993715300368751496890756930191171129815600019506690247829333527769649530417821945009853914470937492340499120610242786113791560294891774777571151019397631303054714508162416826438222502142670514394916116948679797555525511344634853044010564781026663011649071715150321568983614317749551693948764240818250529066403243886712716044723564613408118162624899445977623198635714991227617642633192442066180161233308222540933272038780026961569905056070397605915337420111084155586293473217571291537194242839134895469559425139042660681416333398213445677218296601155309222891036165698592618218124230083108491513579472028486573342445625308606721718332596860206574948392934448438329697786606430274059540462161317258195151803112147343331759503638992329316284946554029093104770312466159974623741597453186130234063160263185869677611865875250685947521202318701337773163689010807368635887195588065373038606531712087310402236135943385866243866390224684207791721183122869461189874305045374067738432271468493576237454462824013932530433850537809079082088795545041784207290246485585604174786068713604712142286688519476895886619477990504225311163915491181175789979952904217814297551060964796848601549370110180913078731038892588468661588518117535383765278919451518053037989856297650347281505063558734878255207053527112763630067283087967418145960823204804913850634522048041498912247285574250540394892441171912421575133456689479869550630157863896661632698394788408218538849327544458134562920673660857265148594909550614997927453289147567106612282962189217927416282219116675786608943638387490875093117511498620788567863911432636328327221876589073580523651136583386689481635136145997577752733075598463626044798150113741901381151779664963183800009673160181179123770116760315585066283377931355288571657884423734793779751406907038130936832257547537963499322471600082406819662400704522521989136231625223834216603351629397876107247461499597339325143005312897992796452370739467501629535801664007972513753318771836679098968557838432218892781244658363616723467019309214802360332759120309840933861078517391676537785423885761067005053531873186951992576687646288144831812171041956259398875772469272846427236246947484769167917651284312833105118443365706374014803134499732321845869779053326495845999216750171077522623783607056259895076062127978107031020462366450857204115821273923924244562883476558577900325941525310356421967847932984540050493962769977607295887442179043938861293704556670437037736569989138510979926217469234267501662737741392461802465744621554750107264481077817746664272274496323229680239829815097052149891635711744399357037264821319785834605925468234706035858698003886185185525793288630314111530394121483921333701604093465644511181585231532019415418999901354140115705665364654407945519405079164094266062100882740289285167121192687456796360419336968715953269769057956861325509246745902633923646992088820710468110579874225159220061847468093195142017208803639203697968797203049586839012767155610400541311582592366852699964444518262800153451692839572994014902831048066105067475078474077823376461429634761576630053877655127905632110939700089859906422038202650974949702615866044193790411652775328344834090504191824440097082372482916411155929350355588846997971540038441923643098003575017507168279444666212500900102543070555829729483312416108995972491533531687526536206290440438717071940811645740410033971752559791145999721196510005362343631773358155239384920903283061857580876684339517053665760677655071079282036461071113571779948335552927931091935875230751587999829978591677551498363737280605776289604415969682400153693476046878807299125378341775543818489055807551247596392877416132795145590485502838464563055450744451653423502159575217878802908489569361439188600686017891330737769987819345206755253852643126683805206327897789781257584944353976784952998233099222453136146298712353409179158955206903925271730002127647320227165378729689399603918683168215813624048901982695898167865394387274108410833295895778615395846877441004567423691456390625684848343068912503451593085417166029480351700136902930992651453720754980173234795305170695625775973024131905180646803482966869195298570422365973049266788864932237397718004209347927363492746968347822836222505705604614095342990956698054894693761773497791538371198403476919405122424051035772115433533922134125820622075538734777020264269694936576318417373424887378671167185318313787389071812791385840070090675827541922700012736633194985160680024630829215523553827998018970332482205106960338792078091922533621592092620736275170111784682473164138999417904804184001930788038834110752259348325168861203663586500041150075096853001816692261033269540623765326735404427468964123585766946278930974753031299641614160938554886477575002998091370029821519818401242161202526595164385510737262224310338321773596117331474597941562123699739409745070925917981538594702577532009865638980438381489445582208199884838517490555738037917975603441932520354566364964018157420020756606455668776372564157814655296977104389013776046459646371077708770445444435773145105576591536339863966687286273489482978266237273373727569528958897201742403531833103913981097662997298123434693935644788226237894022119102254276812324517438406006308069278082978762853982290110824557968416942896525412208369826712638021642702301800665747552237496108970510433869028642766834393039150098300749393250212793068914710646581877651520132458653542660915025982569131294170822952131683017665029825223328299743146659982094988863979766201726104407413854379070480543955680036934922825596701260093133485096474632563464460028297256253973768925773420014545417954046423952422753724049111170505611990703422181145174975253919523994958713708764956802655069152846068041416681605926472800294612032712000744861016457126257952479934350770724162591840316374300468024266796424923003255344284890045928489063596847989317831005621033023712058211120443500246164230458690175749397160838146348990781208586646953266458584709304895373365553857100405864914301418517290833403592127218732861815467819753073290930894391348228834438466396621104117822803802050013977360931561282668307276356192090606750677036654689150051806596172189054154326240886018565276918800422890364683901328737330318307353283112706917927445846926784802654354902829104676368900037856095186653519148371340231479810008464660500669983279009899134369772515424766158641403674001177543852873224658870589456419915999206458052882458913270805038200745649920027375894900866128895489861015212202372723276313408060632303923638353857265620350444401893133205732522155017870470130032821948120477855803246604327790517001014942311483225862478665977273648441437592797367698644173016537689538470843475497235031530844173853004518093100029913728556611410722853602119926402602509462078791388915260072934066500209133531296763820693979335148519977793172707842266253170020310885642195930168017317011192029479585923566577673254849426137263986117010407428922732637765628205299358595707806781659461505485294663928213415731504617263876999342975736349450000545111451704393168668261473092896482461519396252244561374941532994463939130885539285091416317407337264481395003391279029252506199493788093296769550641159279536184937813263544269679901660024584988438446173616132701362283658765080834130040429663291079579572595406036353293192509690697855972929535935600730159271934811494924233949253764705639356883842643470108552139740851712250091137051413671611504201772190333588184657725956595231440302175609779927884688945709462115201858402189294679103941646033425451094880344576931202994795284775397101659288974049386349722138096702611057352089673970145686336217678300791721954868319570148419217900984574306186815639779019461561219987504206334550534227399247854489547959126192233332013235127650934908302012474924902010888250940423021784581192908691089201867074349507237246127031487396063661307381948623898987596904173061447499730174786501581605385095909384968484890257115016459032306746585809190955910967201512965052703278001334864277221141334943611347463439523109523876107224967892217193625999017672392376310852109361355303214962123124327427229882785968169256314437388374886469937508315759102714381858810788429190516894560484053267586146116650607559786066828067750193142830268737657337578908560408848262561059425364165566839486726717047331046430722508292517225410162926441010209723968478502434103052926590742852676514113991343909892266284834060017323686712602741220966457321351978727233950035793399371777815897470266956322781400530399187185684754915549876150569355817734682797557800325964859032069746961038588753571133663841810716522273514047341614341528385488875121046900920440557665825700305854513884227734573324174529710857662955336156564728294215912472342403323275929962471767388573812747025083589569608065501467983775317769472882839197330547003468815187798918657666645874654339139588025567700118485689140719094109290518067063504933192259420162378526566229088325463218262820644713314498805346964735584236335171774568279154770051424808899370705643900625838897662403035536112473813129646176467458337365403212485405269251409393697702559553552233238506523195224191946066025969988367582593915244033557388564990995808937147239509711782529990574468564845591236010495965635768316524722401057430348774377398632347365196254918358484599618198828415157524387790710896246298900953998090995919501313832141073691530487057752571788168612308189756545436231280456397898894138112506256419746329710037964381400887393686621099443480529489688324228490191827788818197632361502328379463890564787723014893342092301788184057879465363192028402874946630605684555912642377718875803305795176750982602031147376265337655425730758664387967951752052457505531282187210594740313142935310893194006240102323252969663482218106924958304634244669329791549268543230763881106097491208862227846821499590462039765380918904281236994326821393543531470754952813822105748455998114109408467542316029009746196502234345771018052595048335468432236590309170907169772655114717636215357122590614408458442087771039545471887650322610798090615235934585988594878534576824076111094135001390831009179835376458547472947741290278402738825827250814403582922717935080230045051690420199889129274652870692143631072947323610163006109003269646071773948122957058464646583119093746348237819196111259740101514966177678433395384457136129229627986221399190446120092252456478822926822063328976337397146747270810423725412090581444896919161476380311464249927873102221013329983278041247697307472597003193145458824829795298006892167119418302620922819972378559426677436376258860602849687241200398658956402376836671615407072248412783350413727293413786023556994207837757046338671068183749270790238902780715380892286083937764342397906145676038982922979262048016854165428984776587745518110186870592414753953298710255882088583198692608805097533036818341105406424686633734319223711832407138388199699860521765530262367747907731106971961893109939355580616761315842447907351659224042918628670479913233871925664856110820544584351477711407744378437682994456805597392886255134104740793005779967338981709527513942577595218901135228116367106124108428267443762647459518198687387188185441606595532368421609812972364669165979648901167452475561097973152005917293190094849558593969069440288749181003571021251805471858992357734072541827089440937003237226353571138420796829001013384492934977669772781001228757579394496341169765794169804026316167918235492292016645077236844151016255019662934600848105388574604128240841570895411004413303283210883838114826836829036516796471052648184691578498799264418326663350905306376845847780100231693742341960328636337404382657774735135796322837644102104081841072280650696266271769231475023318832890107225154803809880878514211320776759121502790209664462490231120281660631768154906417003705825854646342051566878624933715656838201035540675362192399231005619301257599266854894054145684412519961695691076574769634312326146400955088219040494003394608534713685495776103419662712342597277396292367011443659376098453028986642132469087800555161772364777580092396149567676439241712102582166832151112374605091312472187596991906208362119266829826896003732151711199553906171807997492721493496723607852849442428178053643882216327174307910601640422207178438377201307239248268470964531015346701423601523405137018877352061515283355254815665515878202210166035661833315726455981596763660796280134229989959070263862297218291306433508324555666964662548648848531610949398110244783517389700910031183298640594324055976928171215362877212666458996849274038885808220563765957343981494930179075968608853569345608254590025604927828953938001975552453318515007998816710814942797443287546778009383327519092847352360659568579175434279934906189747913541490112702964714260245468850305483848063400114681335766900164981384896696679989120441396577343576753020761386210036270745576953678067116358903290189289129363575377084111883280807623447877104448215689711638514205896824648676657019263481033248681871272878275234277854269539811866910996412545060788617893909979868356066072167897217614324250314504795131266815987915339683156990126545010630870780947803782257233488984781317177754611352201910886808974796607802356737769078058929776318282121482181754812403245755878100177787533337526561988236698716059232506046420908675300653777099995000554510642386608713532150066071840617379813056954475248126406359822995692110619712683978180543500929054738372540618282544263617069706741922760676063877653914535319388820005169323905445085633371571743951525027236331581576217640802650598563104598098192095516634952018174523344985906733632041587800467831160045191212220829684942531454944197656769460964937009003079530935961321864433829583170321661552461731938487855078648919456909100873820748553685847065161118179812983089385526590610998310181872917709082862846479638219446780580889764396047050402526689512687581151140738259807729103247468189171273258975666771858588356075185106863301024983299445016370113922746657782027179912422080539618072640127139957433036399114975721222606600254537289018878972292695240867479157994446292697498360491127852096213765303074441941831812890175097150646957868773454335985944896886575453213280647659207503855812825735058734789215136179931461625389817135639344222658885975178954346754571580552189185695299590478541663168927262101844923132287898355926232785966532788827803304554401661038074523070177147795741445255176247042020495787156416611189771541823699454129185077192990117478612816721568175819288431033761753831847361870757848152414578694478405547867731468636837977488942764944896296104655136854844033062784078691639140864273360147010444034395257434054568624227989655233261066285005380470431757498522583934027132522672220382290867563455296089082880713148670593953974536515759981167666086930189744188753642768910671362232771900276137595835714502812750276359767340779052492938246688226283023110252990812238999480625345189573401453384783030344926088517138488212398023795735148958243894012618692120316094437371377985052273704093698506616667872779441368067466189195798660733541538739192774558347393460287373869312829007221046195273443118571506928007509693464946867085848633742175567623866342179935945456597832663385077560973085611270249557777007729144618906417316809940857625780733013527640673229370112482222726328321550953890216441610101286510168316566120403549817955066213306584126705727817804061823129722448063867427150495641632642711725863362607491992869553503845276003735262326077794247725725266692283989726019474858776346658131839427294633988541005363065048559251035910514625778933811327942246399992234934461770744918874352507562251628917492488679786143619196549828085185409862639760380785606774231037040119984217779510863009172718827446303550121802731864875338285333551773857544628694785304023676303781770580697796780905073541088229347662544694737827102256863579365931015957866753644478723217419007162769453656884601496037478776982265354965984510283649298087898248350354032129645647599188289672248041194905996174037895665293231111840216465147043443132235898928518883840075875790404438116521767465975011311188085946910344744952584418126381388834835935328177431595040324679277635540254705566367489513472866067152570409182216781303567533861735511317513789784173983996194891718370637754081768424374455583923398619824592791674847535567176927979027694596960329935059467783937140894267452262355397750933092390650908975293387117978080360012827427700304470835154089581167701569762869985318134669334884906493251047937946098153589324081030706146749177807002819787195848780144159905606339182380117294554909608954773291847258878335225837110871372218582179880210611222706535692130850504171044396493256807150805903592005141244932027167242915000181871615064195717693888802742770781106652649399169923810981619455046789554128108862125898062706531987540806943772409498747122008405714450978255672473660020495954798559294616755026952945148301243627538059270955196534692941782166333416496800852237083397827521219491137436514130394311136855449931143149251177924585572532769088118839718592842108906568787867191053902976191287014061972778706415517340801617423750057981760952715339567586342697692744743457312788857714262291752650669386504764880218127465499794567457129843112914758508008695905922039282823135581707580087301061800910658201313497217169755808161724325466605350808299736842790980453544720591367601586808574504793248451394914325813485379499188656463736414762907414586770350749254271783423987394699443426492453826822052357113851669699366463136789940195148801422797510017864545799385814974704355849469304720673006493847073668052821102954984972023573804186866757046907299740303180793866216684191288409815147307482649593451173654397231070706794152189615919124596712316103206375869947833446159450222381771796534046689809116810501220149763216180347865659327327458322296355359519677043099932550192300011214512742860794966307285561147299715996926653980389773537324780890281810641823963488542098988269275269563851211959806725260540870099533098892104133483796919478118927213940994729951280312281413181951672312922741463494692875854515393647727350804567429423606753706905190992517827020789674651308095685383735469629791227311564304339987108373658813290004931928496431045641615527430744582252524437727666251448389227731992935400551426258541936566391752832345611766422871758726205355395960601849325747600781264042042454021363614013850863153081410213954072987445018437588923299668533395093517504493014937484279049520703334130348011361861658530450767183022507266109435546792288913635586907325820075868907792159374374258435385118723889514370226652675240547364519955813200913231341152343674339205856698417936031642915220870268968649943408806739457823553642293093142247854710564594418486389545993570099923272666952472388299266404422072013424028972982060831301477585686528245663901971903676425034943239780052254615229250252453327921954264456384752177145723068112545574082224160811534062615814046199677019183903972696920118668595404875181939561871580945228396350407527254242166135946372047826358366593681987735556719841370811745521911093078067101873752859865237178263258702235759602123552438076686671743681024159833858393896993250713394256376046948605441679207460342938946424926671153109259511294376711825846877945641304776149416673544607657141950194739737515288814399926829194206083083339437483244529702735916059413163578677498864179254008510261363650560491940179051399374933362873784339156393797837874513056535227023365870126596996183581709923427708866753950588704307341636120010174769050822086528587679918173960397507795252952271044460277638208293257429211443969705134686815632034380256911060248229508818252101232115608292290723550827344800063974573228888383370534080827331064151036625555831461647499787104751720416650699786173717958515894570637285884708287113816519139103970255949718301991856065564835108549305967175195981870855834531912374530556963373130368503016408579105109436462198661626566199479923133091957181821870488425606295542527474557962142070788000316779876990045365608053933626568438222727383066801768578768234236787172424050871205678881104436156040545809210186585023738082663601480697628399430268602294890291340124067352077991494736616890576534821971344545885197344458620291977084287854596519244371019498356723930005063007564798518730803151690689110095045786235492199669316633822819022574555973800301188808397440636877559834196224633783915598437625726288566851938821034806979651598851923906400831187164019744170484613901622124786592722382699473229940935138239211168318783668650065923290162146629921350247728993955225802382866709164477851840548032873130609696128515233214489581020241655608545689947578354295169146311624213312359416391421570224283729222055222932449460531087068008439533853136224274247117321084901388244201797568203843548530404790313771639272257728844146017029151602946348656013126577492331534176627441282144635051234732072555078110119334444879067626004676163356412382499546028797352747593240522145107753241026502919156536200403153282365224217645260891913966806383457141098551085972987845084082676049224073567015689148390819717742121040494892138786405482645954890122981877263797724582078158355715174186018515194611808846187658908618092858174775983446004652368359761651144556349258505002985365492351319276451828434302846509303283303823912708393511623029376952922822968875486680894445282069606355850961500892687534814770349537927614439438214948116369205130330937664514283518162865097021382935478594876403319995429379278358952947847342217746468966597874878742477691732546149320484895969449978891273251063103660911482726064822905159003212312826586906126225463182737273595198918214562104969394410105587046862212387574714962379793722895525239261076577008223999985298525146153875947884389685256313960168671175736106097676710084755608278018563972658713480029764946058252351883917467587413186493748081720043147995516652268729105018051971769632697752515450024550923479672980760367897914144724592528766724101191397444787119902816257279634923552255399871018908354561364522110457949778194507452856828467156755668410846691039373771187957841082875579013193629797718956761912937312059235643207322133738089846659336580471522345857195409106018045740989710096091319234091826781108664891421290981929171661642664595953053718523459929643245088998890314473311434587474730749045289730233788520982453529349050790823234018071472155302452969397373430013907871463706242598651657191808337612234462354067242003990307428974904017703288734475120629168857525874796300164956273078445859440371988361004163636943611662683097043821821094400677462777132159475867357379569069308162255175956797407014895449612521911016018787052792866793198773782862531934737208869140750112863616882277800726267483504476328817666500868999434044862554690515692700844961988905506938564401937281838682097439180942105869817736325785454432656591431175148011599151055304788791445135144173217401540107744961108579826954118285205036483351307768648923828949006502631958257359756256848706478245648845605840164744079537068776298121590561225594284700250817017574462648684767937384623240908326147877818710608852565021537880737818411061211511922845173176410111834738051426825719545426789084713238710315009343179771277298113979682035652384992694140446261244620966493027895960232982790414263074362165130353014927588591249843605103127700187034882556740441024584484530668994940699523854105970370427078765780590066343457409799959083956877144566417280933181292934559678429657637489374205527328752553672703034443201841889037753248837075759390275225156898343542747594541220140729758837199555993375273353382741463897232431218348026204928307847235694210033203826738569761435974072817887563567262295593840053274465194739745601819343895739799714120767394573380546955298117359989462990375070531198233161432999877099081982991162767785592355853446622257009387338482822903689449132493015008935502700608280469233104945924328203666284967362283614553399167346271210654355572585317401379904374909354332059222046562844780107328029625300370360080881613554672606908365902960553053289305684826605991080496149337362143973598009642107104640505957489285162706522726449573099934422141749404402291576576062562875312532102353806709200482382805987355932907148113726282967735195818087454817967941082066921704464320231890880685066153402718256328931251969573727193471101120494217380636883982472212022167924409130728438530163883016159963320635158269058974994292917372009114895756002187579717669871963292732792694747464933507091467335978503511089086945540736045872021531023562153327972052710184827868928364901155681497189938502621673676038126305490232100299821658585157249136472666156718395396064079391681037593614177535012676873727133682872263730948969147736830633841485995110581268406477847146962691153018961536825094693656209820398381488105784579310841342388738213733090743304195948649286709455706797808230806858673770967460015201363656279910770549324488513184641175869621712916024010838265946506155954763647259500599582210818094687303312390918343722805428365832720934321307053695715665941175345144945956514376722004610527526395205873350960518181387305451454362205319530045725161153466426126047505929299339840742325255348070219116958162568705111716981326349128144574364129669715443891603481040227607606368985331240304421487784154260142935333406914972570153177164058642598918834486068469251775777275867711589035248139515339403347581953784300031154312704612885796898718145143585507076226391484995340820884097799243713613868346020991056132094019790247016685724358015990059451913062215931238855718157719696813715084828296061474244612443934834654651358064906196328478313010661957732175665875189716897677780396747808620362825978269944937959781971170186558130414341134928860348869617052841462833242622744760320342461787731497538770861782275167021105564385398243197794369986860054989441659505081885457957897730923371547100881767868681806185379543367970331963575626053664157184746887216648065961891675100290671896903813021945213561364476978134484609039816819453115959799192347534715568718113342491684580654856527743021765474715543901066343397065259184199791053424268492094440793552258175218588580357034327626908971412147286466577269660600650154094951722260749788945204634235322420394097957185456552037129207067604126668871902150563390203877272222743360947101056288770521071557973243497125034121078347174243436769733037901340588384195223463726469319735621773897502689983977986734835694129966510552207503014789883059760487087510476873419234093692064502495689295516873288683285664242563819519580356664979084244109145275643075833234917304016474052895242602894722749702293787137403537622483000154405717102405946585795026864652939401740442695000353953203749177366467437282125776938472530894771216961762978310967786859354428425522634896341335743063190085697563142976100284132477908226368685072147236592708122815871495036146082747410406007807072773686256106262803289640187596054926034366677601301191508919956910592062191301731618067828545099362920145715003178812178923213519009738425010153388053991800041571430566045181466050868661970117562235498165119716778575883620353488300357786905698820639977774536988135338855618949208240328750242753955029477963746945922173259463831462394469474131930269861045669903609422864016324047263197490232820149141409076516082714660080161915536751631659894184423710636508996901043845880428450833334713138709810793642238818029231710432804038096098395661999158799665602125650490320723856394667810177620590795848291457451688701958394352478413097607775937225493916929627237681523993292870278108457862729489086229548656306666900857774242250994770748603033853644670430300768721105928817147385025968793395298045167752414932469659317166116890541635243815756023361849499106297391866175373698447506156714890665671637960738119317858323144480584056672635460766649115519741354653608913641484140038794905690787108828146446592703696276568157132390105797775967237069874695641218761779942555632911329219108879747355417258555586151017518047705686551970998676384851135198754389040229445044170884013641785982506023333833085191653300639739419847004942127905282036620671557149958302425837680715917192751008669706276737921129653853431275827323339046772371005379993913601216336753733939389174264824098732971995855957882380170097624886230365878671086081654514736244439968538071037802541618635858393653828710230212858811850857843357451481358350233876009419927959375523397931823457933659567494273545647470278420838791225621380819380515076520508848127791598017147136493606432792719502644915012069488674614493699225093325702735615588777973348328621804372378677654342402109098855605907059923331231584446201510895324870228705368918809212152686270513080464605408840183516586795399577507886797612437127000821842658643620186296609915899412638960146208295134128537642753323954790079710540624352422620384467322716473600337199687452170255570177439572218903589179798672915295511515264142843271156345594936511369280373099906098339716379598474071433719433229754142436075119217266789642608124455224722118149599491916955497436767186663066314077989358620577122982616712604721252852613465056985402245714746960398714976411878624375099034413633399207381652171164195627650240748303236866757805073405348495515796549085732456660111200479112162704286186478932311543191610276993318776892886679560175255450099047948768572065515739761841359253053390312546798871582617294685784812704707902703819917783009058335282758127308018686303739332583990066666991385072976336668262442442605871598519959949359515394367486198501014478337803187896569590287414033751337137237061871370615092086914139447338423571663874179480800993592966919107269887137340827088155577971003016989120497649143295194180441335490815252978966037439526084458253326565430019219566327734178499044852158153529080761718356977240504732356117199060654049972882553369694881214959298202790998667298635774648315160347713947519517876719262483497307617741644792616574583420163629752410069638960853867428150963926496056490008430545954297627006369243349787167033948955671567790165767289673012129410193417345770026052302685700675032490577331303581491741083562886140100492276917858687163514103715691733665949763645923524770878204453104732057088940060212446325074690816869330750093591791452255977032826122615195803154030207602368087597577424142707855354271284038101171254052874541324295040324212220555461305190898178432915857026117096692347800367395627987887908601024553338662069553377422489433623501623281026281387473661770681375125807424933522176498445980571715540173157570076407687571160640122388316880367640842739990332661556568405511843494224137348426940006541863397985540501871966726955098635191597306234870171524678039346163778051609063180060861615630721276426660498345091972395771978233111951320073247300763294706385002058370773740266108807511925134405054245181689045206405541713472255952649061037775472327726301853429065210854918353432541951347116929062948727998152547764854539254588412407996184894979308034249800965859973758407438483946919522867089119794372564683497820728791004807538044456728242493165951959064190248642679196102878990788236107638128220340963609748608464002096520321772338011040185945686424626717166994445357105056949693618194472077248857751572771418308782949341039635753153301978085420988768406190096511467810775907480890410946404090968605443024229614996439008527697408248228530100335285948901797924305590966833604794066787747036256900956833870003455323556073304817347612950026404131869681268955709048978993003786133856423427650612052361263552981360711312389562488942602418797664752391314535773863618422379311582859205390688975960735981115337651084773947230733760159298638989332473731160937109328267297602582905431086396389889452752421827910017390355026864973878788634214658715081130879321821109906377910400121108007955465112390470309676776530811769182092743390741908872946419338429686236828937491858315636962236315927491642025486948624805472888378757850682980315452935603539509562386133806992200283891981149470410777173018671552588576039144176903792006071086964801495201232173054117422377872189497903893303220936115682658271683139380160487594836894909450208827396091207484137660715425301654572840908558375868346418513074415458796377792545599277921835955359853951672986704027127480774737666276432539360496126820505006532540045028606729514113788658511528615414810779886363002170150533225020740929348187449689024851754326712389356793759281271478989699352016743126206581467545703783097654978918062159605816454699924589476549341407515591183251227927173767797336842580788584883748658188019846374205741614423240240999968383497908325739288059862433082717053371104262261153252140980799931420441857018468238074792918320837188199337719150550895054631557559839597134157686548105840251246520791981925663891445640557435041289020349690058121672486813100660006625847263374487339000696615522040722484854389753257810562400377451965971945905931919649818740095428168643641639799125424483007343597649991215308571919881613048614998229737141888871635835728344629793500874612132341828810349473366738039818595077720344804722360937713405867523275671984211466872895075559710398593743491052332929473941492843371641889271256399494131904850850282595876081364652673028903138492043624516274915711011945908888939167893262683275669631808214436877921260460848991257768118633631693316841983676004286030053387942289380234822563088006122876842633847239726023575795180244832571659360197510584213388062012158034894221110468429939364723706546577033892744157943119493127706837452828647855569673741251939665841230696001642831298659149706056200303100499559561578247857329022924425487269765297349486860266215661157174413682068851529299844068077094524054705679794274501442560759743469006418844144456137668372468373423998585215927413523864374091772935381146681130450105233099420427618134662529604755376505057797223572119313645132533713131962118828678615413821637839537804614642828980766060680149788019361641060534843721226080674685498516328053311274149488373020579769123582114865794349756306430489790521390747494444063762145699672997685729912264665203951574728269798265492195153412076451170509321026772701713678583978758651464124205139424307554321014323335790786406927135851868111696259797707684300326322567157261005307705994959485250228382142232286962659993269447769836328516096143656076000637389447817024411608787412150763562197225299212342356416820105624539191177194522358892533393423144258155407157077885704835615199147188930477203783270893101960900519422751537406558429124331714013319329527427695561410444490469344303370221688990013571634095489050630212810020698297592685630417793489368866839161433810837178499468406856361394409202485818087016070778482985083812075254362091980329551223785837318084556799169916282302756221896085915957602734989387689516820204348812192542496904695201916050221215434374087741750864386863928700457456754965275648142964843761900396232809233135850586356791047089230049356763773917079814105189350400617726380665558646990165273289108639928833765669796275133290041540128549283751709200709359226279500191116690970132550082200184632631516094849586438694816811492483985860011726165462658580362009561301361692414221410832895459505095487503361676640060928809554866699028845167569721248516985854394280614152714031951259973372588341922573647364968234573594756266304988546391663965481303932627859813560479339006625933108547987243655134395604581496395953156613679773588593492301141593497006322046172744083285980582322644121222362481176818088994720302287243066653423290531482306840804481581852952355505773331744463395989656736642327800913248690246000337802241469019624560439289947374542391298935882615240179605218255673663802465176155949686305186527104228983970539761672311585693855457038311939791284373888678502885255454281076778800829826864158335193471603699270448497455289558854621005505035113153422729544907990515359567045496222757142030019737871510482252290253710814633647596460535667899073078336652922518916103483891486166146066490713737295521420191022464002391511477404992758969216046399224477869387518218113682968606935678737875899318276940104378324217341167591555716767425889749386476823428130531392697431585917352472841131189557779855253218337903560353610036315447415023748787414303701293398122169930070944831841731650450865206748923380028905444232379879330951845962310137564602364411493791084441229754242436459505067184223037053638774544199130165082254521215219030136147695949510593810987054647911722984452490791831797925090135769190575605801936253043719258573768746124897550006099365758778443231685357436967695456068163110194205158852143220168257227260875913709829135766298785364759169939821895959165302763392798958360693314677121936468651523399890352928794580667465532647327311107525717931584542982113655632661118801019991704822318110481959771431746804811835123742228986894061388057874100928758810397819560230873897893824971690147984987817798449523314153228706723637569414357516128042923526486461760106506689513766341364950458334178746507330014332136093243608243687933102878298910933599125610147302747013504442201939371355763811578056448277506886039027431661326995833497222376003297455952178203325033265668623333378253928415793639513016436612913333770122236852596448109102287405271912883287899892935279024537235093483617752686254921632638949809157185089281866264069443905789705673517655755686821768993703528801410184180921991685610712378411197606489432343618185542738108208544214799925077391894277378840102811019148154099496820328397665992663802297147024810612857376983280903386829544364500725385085419020716727155274386530815907996032330839210261321063840123863148062103371133566508286812211666936755282070859090474209220656195083647043574546585531828592951301727574775635172804353847586464811959176697632302825477772713800052450214313781475605562965855285557948462228989299169270572196597872697832055896536703546472198660570942294256085645383230780340956135683639488153512189689390825528790204193039149159534335575466975313967315401270115764292381834289081775115587085884134345052289000795150081286243929281940972470377928704219121989008119151573040884829600929291848293435019757225616046468174630160902688094393094017998323223398548828132694606903186093010957853637681247888233820691356732903513385985165465029827386263693497424705659124823437582774852936897979593937583003704157576070482867840858961367807594364718058726090385950279039423359361643064624748139098454834688527302591409394036988243591200970785442196327621804337414217892004423860752652657540712633980552699973267841826189048485138193368796450095705795397401675896717634644511060626124880860343661804589325038693597585765795368351855746033405970417680094113561170477971200024068130534182325611091296727846789132371764310385610301029849536225156480103835975319283675368295578967579396577802092175316626927891353256479582981257258891102051010855569810783137663866080051573096800482803643063383434879267150096122858954629869069225703447554447054353725158772375808502743842495283442397066091909298788874638433030943486890287044666593409099132137177222913195985473938996163141005820147119282675056756394085021774738001043337785140715828355940636402967283376692231739747094067859143653062788054778929870792970670086035373162031347223942731945851793300601653624280929306408491437592644577570931312457636668713097571798153977848033332723471225814436878939556977170935847337018769000092955874245601538211845550646944901171312611207172965513934389686580441398130144492043267942982762371957783236550398406550848031702466930456673701992641135960521671574717752225541345888559086822264971482385793803645467663130782826909017485470766774599045046301583706720557638856695914462940610384121568473495091191704257418070704375496698060052316263158315426216340132808165426338244245258877141090499837771096925580209031957111371896119010841535774553745860503428670308455229102684669266251321230648866798640822190508910272110795498666719946495802701101989556334764143479867012424445823697654569471605019861147968408215257084842430914379138330419299953030456845031347184425207296435541244048033483376566215999375319357656660238005544520048696545523301899420908681970656053462598022574824554092099556946592754735157241385722084820015215304277692889075506796912226772316416659950165409856988122209058469231608566850998020168197228862109649256284197114993732681117399262127866396389158871754268877165177387517942415199174280657580833709882910019646405520396051809544460771555104735682748431259165610487871289715616716563401791038878655516848982419944759824318411284116452555338808362495943833041916205161442363056397140581676195764107374170770056378855895037877766979884405376107240217634967452231166487085218218838391140560296683621605978374743525426194804097181308469974702845949569678293896905891107707870141832902333200408562681667507785179680861011229351733156792168338171721206598178211069931549120107387352679835814023685076872725435223946257368704397814312274297791091056297220289712431802835347998171831794364834559193313580892777449217654714222184309250363220589639105955012633295976811935844985111565851316195577802839101800984459714543068585547858785313300409300038821557289911663942125154051639749246914320833922642617144010317471164525196549261709570667055854055135022479480462700900531242632961929163860531662519248264974882308244889570916707418989900150261919111922433419724856011350137426830862718795311125527891639065445814349714495034330770520766689718158961924344937152486942002376117205533008681381784723061534849644891628704292768736830970776500731451910208015451733865983084949740473888127315615523555522983070242254966495442210724956220041878737146433893293429322402865791114110746372432881552809758661192690627159108950732500202149261245915307391406626554518617627525152046487276132810882521320029342921732804288827352216737290918856219332873904042776604843742111407319054139567682131464122856729683585138036621448215733807321451099748971815436876247512022949939976292283302212320937110793805753438927209949230084339558532947278662571777479742951240845492873224381075385488035363900316575682402531597311022431892686297386712750151961127229496525193033444471967784786064651307220068458570210201979390388263460136442930591113563765705054344681082658975598030626306135445862091358938634622353611451090473978514310287503064345528481717974887031021160427356834271637754217173361104853073591331015478047058370496002631842711468247229426166326763267117473266907899433479932082202743562591783653561263031945668992671601428927838836245784315612910582609503204346697526413080426277963184441815199516399473309218449092004048807475301301063315587128930982256466350319458632777188147682497262075353035747114371622366144749730880823961943228130994277653562165851749651047682936951793452312781057704319474737587622363695324885534499628541326955374772515854731734846667115455214858788763762958398899501054158386840749181373288967498087905987913132628977837334318031429893002579335269967279058329027873939874997845664730944377103789105705428795447095038809468332685340854681614854018807490673044008636428268829102902043292535514608857514984839045600336375824321370408595504021644072097454529179164792114343619479624200156800155680200267890933186087895021531297531156055039247637126632157963061970186085929014584143801776253227277502953999651719417340016125650003522611688508635052321041283851227012961867294540504153929539902889611796984882026165405211907577003716508290161112952305842099150315614709750647707743383197319774109049203187694852122424662812918203380323927953179922156244639143136209184128481003438430378708280837341222240381275699704082482515431313874358006631955197104927827373032823756780960186961646550432784875481649899582132128424453610822956973664686378313190598303114910138051866364942521247382443612178006555260503888430770382509402284915470917044935229450260389224814820337009472234753038300071923936719662770911331933872851639433902923036909685156220566770228002920709980615877000771029462844269022007121646285189970483406561914878784035731088819229660158466392486287058426172675887417881074352435538780239578984600264104369264849868497773786220407873317078078462608682196408158439583323091985617650120370152645938409827716134465548881552881688363496056899648949282803290244432660248272547743428854699500602290023238613922593940348074340312486836450802036902690509879927706074217611578995555633286594227536568693601872730656880179733530344030861266756400185977004866232662033217956457352889555733420368328124187810372993972275132049390770624759259619460688484793675051129541934663621394243904524868924865797178764867200849648821228424821046070971315143468230959757666200982402764115140658127828516551917715738691063478920574597648161748736402130167996238620040198980408443079466931060250492623318676831076421602185881151825228448607887245864062660767638846180893252009408752939711498736153627912330816164032894763373008559468326125961503113991869065991449429054758039939178713369667344133783899796226989227460035604350024219722237900438178006065937580202477445994846743025303648153759025239671366624732823177237068104531869547025623625528553629052729666542272854274501100417808726300942651194759264791445056899056090570058813581965687232992799377726382538448686740420624790936582106043785062872952579655647267400886575593146026411207114729233872131607562209712838735631992106888438773923117575805611347541249157037144087517324007967917986088542485543752680647847632752826416601111208659432272645217140332897411992195544768747487081460751483048352199553953016321871922613167386881501772618548140192544525447790952849725034540354505159195055745224094341180935239928911338979082697958468105114712678481068475585104241462266304719375865229113550098413610631438260275305722480199536694469432719863709063968131711688219047103339871398383559609603326435059031626747420421758221707908930572712117172376218573614682386862818869959315874407859617222186150558825128108122354543286628834150674211301449730592498449493281441280546032497691268891230310152134778394630807266825725289888486678780396646896881529651819546808815822283877097236918498487184596500179868890162153713750525075981253978279225831350002927225055527584731657993194382324424391614044082253524785418126065910658157972119386874997801783832050645596760898070102610628451728197957435228900199782830495576381418491028193692412792841025008796991429935008565565792986860560844821260271306943776246576558990415766779224413892886114726047948463202478417215506288609821921559701992590435719205275285191705331937231549971011759374756090716501763284262451224463166012780262714555578469657891201010281681706743811756354169716066837977736289948363584125145204442319874200775471328498441030981402632232309193221292361854191672431865266548087107657193407014842758012757970849266096811647402525484030394395069344267338312215840937271021262721089361209488764477102471906976874500604643330555574296976047662837776828746741421634134272387846675577507403142154408691031660090054833350329617107594455260600895113738506305221224276238487502280841345037359206749177331132752544796303869386169185557949151388793393749775382666023464056177546507431010895194929065494663817685617834613404642957328189628420974756515786205710061648627256883245834473538503037940485738586278288075098722465736946168980329691069114302471695165103114112961219299247602260334298683111078414020667264608606929246480823222040049753008113789649211226434851420060284333110919212322663397535730488461097159826092816676060513464683521246459251456702307803563968595118099188205147176278538146499194504338181918051012156902869267109409579333760002095814826088104296481544081753948006278470572944439432395215915376478483971674335153982673855066531626878057091389462040650727091677965835388245947753097858979881420349721151325513241068098361330170522075175833520240645347423026496692550098893927356696485374445619061760317535213611867833669372590306018855796041964059150735539267618561318801199143903742743690851291169757631840037033184466643834803150459414234191012483549874388649980495585069153933882843389478652680269441363714857526893134651507239642946523480888885701839347576014940715147908039055654706881302278851001911416612347592814002974650452287147392129155206919297580446909115281631611124259282229075892436861820106679060079704542006399312831583214151017405872445536748789723878644874991532288015042003889886978332179652893351080579338296726199365615401247876974954934562618775289617065913846431352628114096439339739863862692641111794067104664550588251305805866442435290264645307831798082220255306767319956846400010624925510517392583796852312340337164296698920475396601713948027122864869161795480239539379908986298619870971629284928814500296448670649887883851220930159397691573636031861887976912393662475250436157717464830739265687976782180218302736022149751702471711345120672944635868667482210007009077486786506558603749884227773630972665215374705175915172931339653506068364996814273795247986655620567136403228004461289325381973335162897117224284466397375606016709026103176221804790943297854672776799522231595503885977933188342875331084196481518995174426879194009429345452709265358861272284107316283018253999024686195322456720116635123115687399866434137701211243216028001133084118871619233607176195706247696120566947393876303272348717983727706430733253833139719003853826111650286847395693229157441594383105457920005252890793072138173767221070987254198018030747930775847390617005964234304657450849310450992148825562001289420301387148977349277955080855886157344096864035942196618957097653101938285498905089253578489804101529860740074512043682715785346386152140068911599488376674002457625713705431618208056696042770811512058473979108968333650709637161720034540518994287610313437160556474953734747158479098684678836048199058842014296648348452814595119630643761446562342510149328586122700361270364025297300093051342101320906581376218152841103140918299374607178319074972208919900818994147727080116629459165940838269009995167814821771579888996724656197426053616370905002556759583529815027635589626291015739888529999542761508702976204691355812222699731834721641984952446499565721032854512043141663391834536227159747377789368727364594624669202128837250371691108288533133582358258306940752631503053124814844858612530379532433552049896084645990422642463727376380111199300732970449724699364852097184052127163254556719008780576740219090116883358920986522356847502862815981564058046917570053125594445270507933607748601253044611314317270564611787541163216610776831654065777109461757515996466431753986123949471175624279336618416503658045608086998352223318380360512820701997770077608722320953819402300430936959219994536633684332958324455540738253582774649799783680487536751966333991471012714182858409504269219299827139029541880646724523289578536552616391723102434699387417060232713486286430331627834568848382757245927963481741323761162312309028577620833925318021446069132887727708875809644224950520968985089985805410091525640523636263074425759823724878457314991046475493215243615895986325312255777817815975918497380437362378350846564681631440539962868719228171519774318293189836597145862933896764489483534535639149466222807287927663925388248609583339535311208742994561981984335121727916761547316664048222837831807850633112370690570724142943811952012269774630004448035864724571209376053518356417767427718098279768328932666849150420830229586983489163403651623483120846050588176928767107456952690623473817557974971366401357761485029584281173770650480464868519203667249479583343974958554081529074367995725465414015004464305299254472853949366958943353233728384130525997777104969015734362136208622028989376111838719410040355940070058043220162852720909414187565912502974595231696070169124385421416251521084852817108089436263989120713157629976609827964809046538230685096007499700852437303713928335415771410908384183776057388202378120059735988043393963310479612143572054207634995675975653240348271239542572231111197387038915297629078614800990399246132316377429213686030731280795735756204526190601760570617811273637599186178207465501632988869701483151287917666878573113776005493066895615915585009579788586284295587832759239423452789872965032710690651595224096245595897113101208357640715297326120871573484611285044632882624819898669792936354420021528887961058684451064102937698205339446167667063443812397594043343565463032729497275759265971113215745739615837236630473693701080983034099722545029878496777882001847621945849326201080927479587384541296682884025791709416996456885496681450749822471611544409377933239333516300151258157265756666115705201476939349361223906020873249077233062460267423794460091070399414328820311936354412644727349461476358970122137698834641943511001956683188754706924625267775949426775851263690767668738672161879144411377850484522801702185929718303770756358827823990023547670442769197329220328612253473730875188477926086462519860506153844450181140361072700622143951304559988726926766268223339727028963599673450761165897893421392185528941334506604485928033292777739405127485353317807319209958681741229137437975518646474860256931950201969595583539504430765332282357149275396967560641646409095181688087338805910737554842335999054249580049920862424399365195566475937392486343370194105908555034666134145361675512610972957857418102326408269287261182950910092085034992329688157215737835037675945056831708955128603582331538768422760324778378862898391908787127630060129684321232587855429611934934161639400862876454165125349326935777602286391938006797486439745085330594286966240309188833053077132338761191482080557981531610175009560689353937525474701506743210682752109345153004139542687846355441367928790087862138099479021273580350076792361112655693829574394417965520581866879160544120627078874254630504426865553961589463664370771574452902738525419834624646546557390468731934008613761614269991087479321108450790683566402252011466057961262956815612491792116193456791605127301213121508563639545028129868656538948686075153817390666960656013894643194464999645787288634055131937212006354810345769313054744100593907525353423799321000625936106143729905261783050127423930590288578202107384068251196323944433446197492407701800180627621974238151585675606811022526638171288928464795364108465083611044851730076663726278025691419894301365453651118574517358354536869114435805198873818366394011317048260738360976885570778653192670581624827193895677529269229138511724347368457840249210931975026948150863826827766973141446036954904118058586161637583386738801336809930979228025150509531762218242605650765418390648724207387422841183690591474312237653219427268299338111975166338382147817295985077687157804064272469007729330075940463374388177348678312689690424895680883508621927102261563421818067626268225684161954855079174675571036291056949728343646685749111559577338616338071041584489237331271750198147033899925751263270207977994106532806711705800304820178656096442804509918188056580519822714338643277791497795807938112293512553938192872497463892676103483506115197320059643516099117504419877413113751932556335230217152406969655877258419188893211361484394113104528484733933120865022541410085018951370394946803179949551888278261101411583272021837558552972206662827604315093206966547707592861416904400183763074915941147418161747148813967891287313514845354862063093225775204486771172659625848996316649966851120487946995037606706364917059241834076457509223837656510801714132432890886114004253521225248039329803055171178017216231272710017570329573156471003828346408194970514916615643527512951448327497206957489392146133655763025316830571859232125389954788537380003885722991566518946782162448267587675085190001422736126835929057341376941254945557763573766708864508447139222239236411292655938095664095821139372619365273374070330374619660248856230673503560227323648031999140158137469665956093948867072826801404696158045461264658552885163112827005279000016364287956649375901336797400010175348985849435661285164917446478918557875598627327128430060115509980700341262526443010474724118236524479057996984262205611710095714843526654557344229390879274076347714731482585125106203697753709719100674016521447408141172934411042849967035123504010287767490030094231651627116960273148381249030213840953800088293356101762091037929537840730640719131409616243516816525599695207338226604313199730788408447267370393823721660447150264327060109411949696515952480247577329171403208743445822913504085898001504346305161777212523886534325989452054345207859576242291025871984441874591131001779975550502273631863024956530967703688882304294917513923642228523883951216991082236713904823152189732337671776438256053865193789501739925583235839321615032934047771785622461496140384238393462611869488905859252963709286120927626387501433188953718707378098633206908785056029140418496991671392403469086220753008086524605305783290673265513994186323605132594467213585723670326792166896018811765551984117784229734428280942318606096453290181171423147202305104889591428219788830196366139827742868743653533426562955754062010285916218272493608341859692761860284927950150012566792405197063027542044305035293861262613605912099051740073995176193891219584535551034357537387740651209972906948082735166531346442384838533847760428015252597459918737980320643526192479449927663383956079458346419211625844808523536630291706472893137611043510226276232727193707255778299136061774216486542351991214472614112481010612168991210323363407128887375740988654594035782082637908452621340556931567956325014964054867188010753751830277818097623486192803850127004715465898534846382025382245221528032845152275111796462533594336605400219941636480972814195395074880374907313838961464078068894799020285072182405537677027721639257161520239772897615523752974403912020525982170354116283249170408660654255433589081441446962095615448154860090390185232910600893168215516665337413675933721830469015817328073620321302628677320575596811361532506231047110987150888835065898468901804523354839293711939531604304660540139998090865872551502392032351331902625433496066837694680590428537628593484434132861143239667980392718661682934618643296870971295579422325445227118172026707338436658594685737712964230970496654171564576531956309040311506651295967306054776831560066166421048969295970526965267035520735966025217705600565620569147314737789932969969415495025027350592412241856807357847454451247752069025327722709453785801873136318905287784670694546271664449098350220347007407762524925687189790811917224116164060017474915439742273129933650361306518131738167964228664098411067837758552654246964999404955474109723502621022842236016178041023470812347248216644746032623647282519051471319318901737535204745430032890454186952596704342876872726507006280157062599151322689146290168464650208610406855236420075733094780919562563069809370248002419283092363823075795468407305317147572291537203406104299585791197158814926618350412295149259068808126665151107123408948947661525655554324891090019254541983601532408583271446046568163937757838304773046112865021155897401586162558978546241716813926912325437768169940757380566150973326889174186387279664021590418784392782410345595129232090067558469012561039072634048457370928037658916942129563252651256611998755423757192398014746606364262469423814361910639749582984057103274723268054188212823698739568074469489134212846056566551539523450689130319364928282891241427222135128885256480274336189005546733245786818742541065790603657043199647610157848136780083834238685837699463325461313353103663335325223804728472281644468425474838040381469199989187176761243275385382278889892477131586269107279025201947628950920100212295252870479433778610460775188093896539244364315105465832767502801714904446607828979251095225695680908460169738572973030604741519916246437383694865009493711644411662955669066913184190032785081171047386246459107661594056345069510202585097113084351575918267731265927964885577328766199090357667120870892710659043260090336851379401904219716033249571368576604557401896451713204876448634513312780637040457010599963264926923327817826093183493317007803530996277163440281820084049498198064636723042747722909969878206939353583410360733735308612432689874086449156123988327052405300896457267189724594229935932675386157459085724868679087659292166637591208149326257883182142405941993067752822503667979604678448991160228612786170569947451393627131083098636684238201665462051365838901434868435389965283190430267531698179292884502697895112788990383230197580227536755353995319619914478605186313748735958580964385250005231559657784842670514164974646963181617747282825272455031681643621983615651577517525019197403555974460641905058463478467894012534402358264936757625399562285831458307762226114850188974351879790788633321671026139737605706101509464903981292521275489380987491521155129882169401382465753664485787117582743710146579145529037373612553305045151315130222842170360784496652722476062896480926264647084306067314373998613944110709421087003467565829334458914744374056251518459296342826177306433499618000991274212412198688111397626834488327158213582514191003308871514537028322016712981253668895319255807827884928892050032891468196176694118077117592901536771843180358875848502278941955984341396880781855469626844591392955579559310677210488031632518442525381790325485559605071475101834120479123432307404739306533460670037956818959603186799369256996197956571088620897756901870542720860516249704920553587035455163476199356738993459788534877899258496240631705711245183535796282263384471817426052393233923051142059460076149696291958435318670952106194720794659230836311393630529902118927233962186519129387663616943115075764044262925194408004556978598221079143632220221652027802695197122283708777162517503352796935417078051315686351042998491078905546447509783464104638731340506631455386922877581716446992272894467238955361930562790393954235785226828605094750769166879147615123978805544745133197713029030341647074336338151194739613274131288487971115181129124287308495785812111242114144436161041810363306698704209964749360125452401496152797485925460664028236152330733622464278688960672738011414164574393302100814512379346894104629037602618502073552235477199457913982520216925048625994898843877295493771179328503175857930294779500582989771664009624078712734821741776888588372474716580948344428948383666856132299189052229881381000740019685972120810163156743411694083348424299569261565271263601822100253884082773805754795221436524935735575862786778038951823952312618147121393865917456270966832068761159017228806250383495731112579075109985987027310786193366009598252262638091208214122833960911678884169495588887224539402274659830913796261348933424330688073762150883096793894343466256857995462357653708411991092392780017051776061808215288272292287095958045512586064998505978751154062502032909671073387408888289196688083045902819315209427405942584593385836235073814014720652492187857580763264973142137941467942199068440133339480421333281934765342790268545608439739760783292729819057730574573220995461403159894495707793175292899802832480928988086001211279207695278478917777895262823441118326184065818835269702755250847514193429566972041969787055919323635884532292486166667635800141688728461565016663260437656110856401181775078903204463375571068859268839381661397788728802514902258617151666452513329656109562027327716868749023563613843172918736386590755114278063242546966209389103744454384859008517159911093829707705050953034227218894109410923024168036264844196205983496195026591699478777005814331452177045108296991983574243487541436300707629668676012211941079778238758010299981011394986382993573225849090163930796976974319237819874238168853284507838992717269884166794200309806588257683627641475128307348022158577931162739852357870497808131439410550719180880333952091099624238306401568756611265627783690610192552221665234163820372489008278875991347111735634562509203111078731150639448450413188760846239416538038191690301644420720307996760601956941049976340524647967649137971863376807110043720210700965545638951732029239053372964520496838985215853714996893644266415795988953275757038902728275769951660066178516414638843461554003182466117083122885387937597849740318718844745045244676688940029504234296730285041700617405732597310792574876304216551338381324662821010626912304366328420748268716428910291340615877680652978939606118218595585961609750866826022138455722110603533068554004061964844382266841826296644828076525019946241761419358973356709346485584680485241627391552411639706011938514880747126703666368886818409088321089288974728264300977525824766842346960817955680691383096952076209174262492565611337563614068392003232935114592745960678434572123233983974813102584012408065498452756249776241500259164105053426902419988422577123700258934644437759627487857699429241835392395834681534973473276486117843835986895518076912030538666633816650610711639386387276731225983885064558259929840831704070070428578599216327446995571980651239144919368850576931962704706975955880930745826415735217951575281471141237230083669498475581138719851220731182631291540560092647563680512115024136783327301330360203622852051676927241653532359940098455530539934608461102829855289769661806148596055953812465610491928392241026134836187943325892787184500677329695879739359296445877193403893219309901160350830157030288953921574210328897366131324877711175725739905584011039466289377948883282230091355896634611202819361413066643978678058110976456958401695676134207543167590379652989218908992921426148365822958344040702712821409610545337500406309539147760587455870806631139052152456319734856709401911646393132456509703377871644834090699633519726310885288022409984987209263268355868910622383038524689731591266712736891117576419670906211979565909382338058687258514998460309520582955306006370795481521616224269050836841713894396359627745320182758410148617677314146599020749690552927964839145072867782801644750004125201763383869586126748935692068884838138231605327524524202783189564897201531809260295374690991477227566263786827556814091552170798408540185713339083428101969702465113427356378577637066689739926791130455378821342786366427167481108706051216431241673326173867311365797420423877282439991245739679940177323910941405311272067632229197207161136413027065546536317868065784188803369775514202421757206658905732062649867417459796868583643644012958140796370654957919405718346000442032134899553758136572661146848757383182331943358435307455598534578987041142377194251087540328140027319971871961736908730588633443729291595049126664332058210703007987518307479393243427840183169997520617769257543535997183757253223614202949019523338363601545718960168216264681059949011128267471103748637698348720624292301057581668269106332486552925961934323819078035573328394697279072708769654851763495630943879023279247429283986532966219068293125717694042931826199743207823719620175574487457554167553004327824116559026154668327894588510599241119486936565827879177086260588785769480847712183874164748980524092501523291467599020862341298449911366832635877704256756914094609040758698508588765277931946844452853886030842161280308439438578465688193223885425802603197899229769399782541611239868782901941385271063603365050580235275314377493058286505361435830157606879311615198619343602741654304780804783838761189376908021097885802562432697890846722034971570204995520796284486953958159647390298986822452185466000861919411860385741535175003122422869065702000706676190540651051698926692640116593841555180541194299091128843193990325861595486876160647189316380753135386988077326149925417849994229190256600406564191918036752497746399682463244400219595939396966488913623049341727247510607619876039963920180120023706520547926883119949924692853540938277807517441986519995214048973573780836417719022213926492978855934222765910265386345776880234597585464951852597608458336080322185186174825204543009381602467533149922429781763465428913505023609960105066673683936959692401140431967428384508288218395422981822660199639409202413317159147420497872208806183790565373909999686414200709671272853230837313160130055071355138138759326721238669414119116272282447013240823323625578340428625832436571295158070146109563801712409401125807072437529022218960790336540586525785318284626399067948023097209248295012671623886443320895016617125005797252444990815167812247988981875516936005325995153063393444276528905472218883548652402863247294094938176164329405826680416125007238846943750307631572145010676009701770882080081776838683496212551114450190567435357036375411585016213168636390290948612585010887279557854830442890962964440690144616771201270384167324205680422997544885383171822741923728225709027548225422917004143442957509552233619523637219372671147895640142848080485408118106980066987248059827840942360070401354527355187591446443153983727468044971440963465246169237978638042292092165087337716642229051447375991850445007168751885045278134901034134017979007725371407813672002530882964666791022317566716499679851731406638259405162599600724535231062613331576587404580561040472244124830160338703706301011370272834634605747240618679837676480286763149495800776509822148806051161435206455673366129877375517351189114154581511323684098160364671968373599231418510921124057617979032873722416637271364795676670829242731740518567424952393780933805774060476576940426608460580538845368506080888345809912874899776246647979089881606175085794022210483927066885011211414651498754249486384035239829280760491563588697401015064474068311833267201306823123532421326548480977698402226952316187472088917323181657702102345377320069417367588000362568067611804829835100970754829958852333531084631340779147059170822042281005793359817193046741288905274199637723204478667698580590573331681962753581937921349081051199901728677659049995627382273222233947977864138013157205235657316855248840850987078604659876392184542080458058059867168606559652656261060716432051147196892158889672804853099435405387765928576733855358704700097793416626715604848287825095267342164266653608230371428446208637586681899936177610147502992134929077103096040270785804549243725241871591913675653936666261984747973600334612450363847848144737594037672318938401897250423925812459576196275448440446141913428404759663220623123430203912682886983120548468620370819475069793571245096245892649158141977846821203844664345188850044830500651359922297219855871454176128962115637160148575616208512603292420798534404992611045111896479584400641116162790031872818130552629257661338820722546399660842036373154788462871449829804231493488256115485650533248842991955275646477808545793738066923797404957948474623385509825991337753711857923770531670178693610201758036313233052059884688319296734825273050015224101021137011563871017459044906781109777196183788067141643866161874594565012375468226547370911476392829219264502853819539815259287137988074331860432441255540520051925087959808719654955740939627773118025930909171382563962656623916282666502083979516126296172911468920883736587122145700948208842150653047220035045950369722160784482729790202998491496196351552269211320027885812881796988800364055540499175779401819726662907653112645783932655175154931729782470018734039951739959986280837907794511123870472410811578111134870809292660461237651788202189622956355044646022710045212623260048117361553081718767628790305997607154631829960099476461391245373584222731262487263672227590288277506502459779988162584497486304462396498532662714818952275875302457583251323426777209741430175725394874851741079738355342950290874068688923833847595703435057740036032734327808353055265155800019212447036379159941169211486640044727043699338084718768744343625399176930603909727399979588472415367902586004949740016793541622237021603877765450024682014209638354119464200101161796106455216625493747912541620945040284436223235217754439495122459126346900297070976737006504980854549928612247313322323582116104087948645330194796808251849434996356028312416112523808006868151528181284740642231611120499853010991331525269568771105501988507124540091456959515124967134421500363530506009967088276159513756011415377275972068410037488164717451586112654985044434341134387375012754092935242817766523847693655023924407569024097957785974215868258373751883280549325939528217757109874523446064858851378959873212688639926833038924721195238476313635562620201114823697220159670157341080706599875353402142564128850064422663572772473229431903197173029621623642367885413068031470481293883330506143899675531599639714233901543636238037053227642219732563176026446687507557762691252292818832076414890751640268426028786738903811814321496231230426227354914811198733819277778687294886066703686940385867092531086522006509865477451050513402182255618269313572984113471770956538900227861967680372517599167472899802869632870497687990155612215761981132742934407599984472719016474160995427131284677719989000237446080324517537479919163077499045283945687213408768049963789084860651073843953662130065214308457706028406126536393631192155623459967315708162433350151937397769555758743695784853326706210893750127551265849598352111761953607148680126229202924887020800669122316686557452774240807065213514160469403402630206662327549367385703270311490620871617619628360164653307204140005436782472961021012883142915949429781205810886681194907827553541899879988190022347182237598115016005331615147625358647140970696767129856934366367050056284040327000041466338129851128779886171759288425558378061646925688601355910609177345669130631754441456252051078519099661195939490222729044697048490546486853642846186551104419682216674038841465742001631203158613985186137563166561884216206711993260322994053266826735126393563502673340063618126424798219953869742871656744330880044724926122485421674600639374231491234665233020926290808253711018832240414710981546251018155539896411204887343225984845026246682565469808311449907959885274104847673998362607493618446015907808677256349648811704581749882355459651668884346832246712650504961121125951666855746863281933437137316087270006480208148303867463628238931210162375829062734984009948645327398012655588897151978760148967856892278457076219473782237520256855511725070189223885937078960434834880212128672808171683493243429513635741748213200314790266738876460831147311718917661523497716379505243245673611789946068398888399470386957355480306090815718206586268663071049788841211663522777855541733271890704415817691101521304424843546128030973822416101781813279442110495109574411355987680730962361407449771644452088947994401515807215057536992068819420014330480937889084732418076841282329569506111293543178663109249984670640445166508773707779945320792786501523333506089558295982125473306970720459022143512553718744089100160482342825581636633152240292953717476244208186817570680171436930866259215465568029472201000526386936491193432788235465340042491329477908274075233691462016264742090843057087962806847142745359016958439037370783467569060035384216496110928513170218229884301223086280645700353133312962967917547119029016071389093815264268119054260139914986807141702157440060960924793111962635323730460469413169957727791355993211161109212072346298728141354828903281181941091384733974225349722410656415213247285668415502787125480722765667429969542998598245553510716868939662166360190326954205481597108988500541615608745063056779272923372357641567514691757859286431405138022945242199056119345888235758334930158731645420495363751732531093645698399708488036857670180372762736378364744711626030996680615900747413542134090884188173098779649330848784490153890405673693456334392627702812240942711110099944129813238825062919028170444523426957258286406395061395031621344220032556923695667709925039500020637155045976492436016917287338836257684433879409997417643409805949060733436613871993755479015273352381518080723348351206039214359553883066330160655785544548398582259590904503389297490078238384210959031977147003782073178884043383524305516212567695515005747431072155305414862964473263279476539338096534891787552133545181814217125143943403474525535203798695296980115035720097158988231609579880009492127226254142991870113572458361442321007578705882664082974907341860504734476302663628892571047638806515947086528228442956871202751537614734851047986628263640221595239882172596108874665396973791044776153452369133472777916447967665876126311136042226091368281968142996025732483321596745088765829692293186468092435553428367409808391887469122478206079832063879190449713371247241622777039350784256469881497991124820949161717057384452247759079125236594328265774311387744496309400678899981175922748433244967175958088853759337000340311348755807910249651427736640531088409959459026860737250896903098193100743194453128095052819358384785545677082467735654341270752264930824226717131525050456710606202352195495070951512896741036249112140198784667577417611681714882880093585580316586981396440707729974501127207736219104126517367945758863649409216899714036749374813715501521957150652854975668857329421976838941754944048618703923880942971725345900990764106255305190151220963958953295395970471344014563516454016621467774145969322417943875241706041754915297713367190633842412118443349488932516334447280240865685449790342196965370665787936416080836765017003025057918056850740666158321325147160964832097676826623189434649456748007497028078498072230619130724310401191444570208463687440662024464521829672991855497174711694871538227330073585140959415380089036689470753209336626871772156999470856231865374079303783989239110624925132952232347694827364900434018330560668632238026845761276996402920946505710654776063125417228487193863541027715232441693091698177960686582134969502802932865443831342141495780240768081966778688100583262388488252724545984967974940620024734878799754660490473252200498508080140697053289600310688227544781464884589938717454727318904848489020432402265989539349013760901202303909621607571547880323097312025163518444720781167476968865186915720126631279526059258604308762561943950587287744549387190526368018347184079360713778723029207697127895999361927661515523030623521884172015075051995560716076575011931333435952171781257649826192767363115085326154421517881000289071612955201678776679023077638416353188086155302658457989520267528593010351043621838539374430207628766722943911424887399625033732736349593043408738343892206250149713333839931647354509239632899764657777547820182950990997570749827877820002369415146901050839652382951619615239154129584359740233577152639990763844067568765398052164235422485707108051919618757425052764990675432842159444250701137288219587365495146244462977664013244810691263877259264839127893991909057877652005967001347706095359120783755620977798116876420480545967582234942519377246699460759699771918578274361491334322427929730511261886707287213665376879414721788722809831143173140017041050303356625339706558400556385821609413727626509385177799294561386585758387327830406422055021922542366385023232602606537003833907044734085408631279733827990124212688609604674889816650869243392105632314617817541522783821993299682624824474396846724139081908590049978419456455517782143320483957859022552351005283412339093616389022666697471986993130526703979738569353227663170974523969138608125814797448429928929421315616865687199500046508533792719980233642926627360399730764955090275975600487481936760151842649356256850189864757117262136173179722809766303962322739111583251833033833789994962560777861130045471177070747490462226851660932123706431291522892132817282117696075849287652327216419717235510841273071459972463444965400001702884404167579363784130944233898596560940997919427367650404556558859942530358592010839909766289255241868210997475057131664603906393176955773421415094103460186764350854345960826429410551304430266664991869345302786770848896499617181811285722832576958437806432387118116108830195551696613303821749965800457261782185230549327615813839074776680481324120515894866624666344422706011033943091975461979818640994185796136149137593365515712878990742870555664146130493857845511025975779572209867563352904630298040771993089979767610170644632243343919295311131160383231358333603278592729056644991542907362076355821520012299543142674155977859464875883113992417954643739965671017374788714209850466094939491340447664350549613729445996365267843644791890143439396574308428827830854910247210937142357375852038939152752615352070731210649891477825593141474567488695130137371219618914353972088980182012118076423320772654296494865741678600838977579141173188191257960594679331200175967990437037186776342713921379846796740555849621461428933208088889856520330319391136426616671610484437564327796350728192743742151427240397882771873504238233324669244822598947627463613042627273078023525313934339617705800039067213876258644755806233155072322194963943236586560336244265520572789191666906408025352386301553013434476006229358841330868704342023233493749725416047407246095907345449760917181112886792668033445499562163395901746841811741294546989518773475494534082863968812572278422096771721963462041892911057331316866985955405624607115827949966053018065172947389381538355615373494873163412044105857721603297845850132158731353803213150278376311051350054193357434235029525996746156577764564991074319940583543606850397145133303357989737392728617353667987279305606152948958052590597535101970387728716376383809813312884049730562078568456322299642436646552406985933066323978680582634925717924638353114360072276997178605601531180529593093491110434331091083156028837896122092894197408922039172343671939282549105099905064985596274265772443629576399775506991090974022701984399856520565672749862766960765389075274068749167054509214704069404848775098419839743432770976153902771864084560750370861476858332329062748677054611508769373628399481301825173467539620209546878101108336419321123820201490767290950219313996887173372701536688467661699533118986579679038060165621453582745284375969884370151048944652143010285541151033941358785734751971375093903789078484024058933286198619018304299681186029821666776212472687521067230391607680954476197535544458397620500352857070909261231124910068983918158838173064026514822055670673045874668987346319868018663875387591783854693399163258905758411187377878197849352260755048246969069408250597219553123274770601380048342282813355826304789387100429408695736080379102774895585400603318323187479364943638787508121229486729192231952262270983526038043674010973493115981679354859467510871843188518510720623719194515841842769033322501675840821989667048135251980658158117022599633767033865119323502319837621286982085955791680051501966981251081802713954825950632736160083353972089383500359213471975574537245323521556080954674076087544716132139692870802932665727413607411941738290326399857928167015712352368864957632159213975551576033556680937662212875535183662982577781260314278524685959164154259179494702150661312700380771750919999710919249802537295824344552367425263370143541097013049947629857666032770613428876473276130719550516212548513959343544746400382950140070428512700733569939769906116214485677269090187183717522572509617035049162725612661619164617636477578413801215221148778960298080002560161193451553446934106964373790862554933935541252018364970180874350043051981759425891876909916308136935388070829007533210343345380952841783320002298530600564074535021272054907538560055136650926396746872343963530371114974787722412048620587636297915407016890727973403856091120040721179623393136296450180673133424240600544810604206625832410380490080562218883399065290096051976556932741445346965513257448185113910268073490203253750887615453552396001743107517590478446258762811266434165594497197921521348960099887315428736745110185584694197915071121723425794436977763176683745925151682193554411767635099905805516784250992881167954496805702112069104953235246585962327412680951645284083956718707604753293066835676966917720722452738584770501085351957263030609874302065214336846112962430482306073127127661858821841993879482823688761327876820015924842884649115194104540242174782091092874830057844388829900453993298888681125748030748678786307491333734400721578616636831953034083150177024087219516323519878133567996345187268830330594998161520545287798609634487968412479402291054654045613293645837230062164313069980514597108463526360455291572794269368483081346621213302848583695342721554454619901339150151485005512855459179570743846655734013587477248642571352256992566692758011078282671099185637364275600840209167503604014808276749930428272065161569256014885097139375739724178183912574131033723094377504877035609585698949893773453236485902699755294910124674521073445838504391952920124878762983929104777303776123183724702749743132401338723904422986894525265573429075347713254813550667790571456032808835921342405579070930122146077120813314023834178343545543900002061780654247083033095787213791308613560526778315761468306256485889787456491945729874166468280661728196539372035096562163152841105920270876180327949615537135915993092384566827242323781859863804534472054688922938925746802663532738114811471536711873798055190197704520418977336530992743705971210089854180717308794900740927788709678177614162305103460642005385672856001661009250271793958394976974219197202496367083188400593905957749919082430369368257539701031348400413427774630769960656294737988162450466888964053519481055621815888850748612978837512126432913476286894252754442956785894886826934413330884891011148131893876974716436739953510272908074019732793191213124630977045492579627301466373211043583915578201357411969289503310024336309790986234924953419802122625972249162028433334691552032139791021566140688456643757744122498144211678332859039433919838503131426319492422726011771712844066144018371992044322598668725268098884590532606010577263642061707960951975424350047956732538529477206080494249295695530670107303300924861872118622463008686127548873126501228047905944800869309214166719656787115744367147733971045300856003515181653279434597241450690561554354183337307800876496877392032416304168916078714646016622706530391843193184040022168111710985624046041598123910117398880752166535046631557215623379365189914339244361525772874991062294627546010504761162728207227931828964457953721326427058554818528481124069690347331119609512895149156599138686078246560177867100439553205912093171427757589788486255473540816440357419371937978693812938617317654222807146541397495095044492208517080829525205897436476115682075065781181609487425433882041242494716754552762407346953877114543621846638813032776960371886246262465912937914188862664685920769359293991765926806252273207800106434509950588960142638494092540631310913815556782265151925765378605965148903338468803289067809860571684620693766894877490822955055733971987265754152931729005294336201506963264181284818816470394190269035816987795266832124764372177615371850681874429759314674933961613326022846734871203367921977968949717233906300590324711257835941943944198706265750782020957629311454598467298694777315349553788019520007568938056018049265182542595965359521107717786919004386635898747839487039527614221932989439048296087818278484735306374126445040060560853657809187378896398827833050121858081709416684191560237419866880748747688346804719771698317204993119232753345938051848522425134436589864079275451245252473633104369855580626226269722536985149804408291250605942483956673007400377811236724620366912389136702396458367168283699918067775333121925174645708302740756916402448817027628552494122592167639018861431339625388241274826371765039872557066813674815814020831628426482373515069966977239951342575054112871396818935217024303549819939408759968363477093395868874100070345058573748816397186673902593707533545963387462123031765550807932909709014475378520463125814946443900907621440815910773042462266521348227457798496598626812242546037129514586913478602502784654621831645685136453234366445579267035341808041674243465287275047535092383439748584712815094653879849873374463273094511506520618275204974120516791978234829006696391952151927678093322473966458143860317467935697090268331853254239033229363827736008476019610941334247011761666859995484409511079993195873239543816698751817710543658848723749675053866546513727362942374161667183028510233422022089658863440343568153461020660850420075859534951495114919879995878679756994786416472941081564725246512795253489473149166570795541206719285251981855645557370871124833757565525572729561339945863299202997025040283854694734845119575460078560563183147426226239144128424202060158248137181205953345116004884404012589516121896538354543337662321095775018461150687442505839782584721378097116582509263244364237038477956801672170266545471463521251767463184231368245081936658163041258539175610007170700153593777568894130967072561113461232225170731480583035383285522554314624503191054224840553697167840051113102888858444561510341082324402528807268888312830936235965961400353093473311095977839228876041409346583563672443399152933588725578426749987148611327032200692918572597524533082562705052440582536526708613783234113657060376615601512493274734734694671755635337339017819467096751362231713744536890894890916233393052492122971946690730553939641004868989408147188465985913416368224535553506637011020985668201856028110215155138601553367166670957548917086675107693761341310323150412319320032372799522557497002640907312000524897679376838342401144030671981666314295499184878046992350840702859976432599045812782823860938669769749180790200041474789424656507557731645097539866594256720606708005819876160406046371223391392058654890411794341410998576268432278420879260113090091641910442041354681441352344650061583180953524774996118489498983194454475107182293010007362806633462511306870432764100516165273086300838200054170970083237540230126077855579386706668483001259809898614718668559735529233135835826664502827691537017591564557397704701362021360998366083196969190650856928983470345384645696658665620347283087213916439986789231958421322279943899233814549244306412975792471362325915766702530612732874398504416812186979722774742082116741360586198367003570524984868118741411222490234205858253395621068041031574189443850354713171863055438388724932330913891510967132021796325694716646162483842513922053023668841437008451022543324501046214544926947662008983071292633292120627271915580270356583857721342556535833780814826746659650343903768139436113878528507651738142230007697251216000949698408856443829822656554737429560940717497008412464433708808219733812019877138242639266416251312853436563641937576573526422200592683490604534444104439960563548752132738395836960704166670373675694234369049894411048808637670907645269400239255587164657987997436566816222840783738958066639682818841346759095305241222793280010778067179574206325062547179674897043123132006121504937081496369332077106858918480388046207357294895173860107764683638120702840961620117788076615441876926566360946074426934140597242510168187226862464293833713866052801274258492912248438284362857550669458133615723259328624823790398676982177470409266810095465924626648805387791432267498745799778507754963789982562685007809178718650810108594801386743431740700201712239035213751116128392471737534310723544372380902048167304659556629722938010679639306029519156969511761971641248664276694156376348923929112959322130781746195054493215093922932718592758327489762121423620353162177140218069590004360021547524342354828794676601811820993654037566893602641300352314439939772660149623248588133332920179431835557455331923976499172121506780930117730182326837414183662398409733998691588716757676401410649553662890540561819860651026054276499636682590424057807927094673039553281415115345144928702263911811303628944682023908311510331178588764850505314785213338127264611753215589482134256393649877168251963680207084030674532892516397385828106200818172817354178015477783022423563877081812070304327245668157510765234406248669519284874252509073611762963126794185224728030578129898260354376480125380458930771707402001313112491957697473963521539298900840172351554255547555547015436837309718075082297311504948975127111353840102880052589345810912635715268019170425147091051926977648308390828976235224445026826747219689999712224632363978087282582950778311554992292153083723952714865112894812917557319458655122027204788154905176949118432735222021800723761881255354156850252096869564185652875379638965662840019639235074690160610822369403855900867877631450997129334827193288888186264807190749302971688570241610742225219048418025099575295915597446736617427847812690064774818563954801028086269895506751560312482619739866807302516184880772515617420394630443291137468290717454315770386378302586861174917723918760051755110391336711022879574245988667244285337310918020172192642647390302022336214457932896826650120248600710326861842730204442105791844371327497639152751239326703347789892403118547288843027572961323976843065318412421476383086071451192700352983623380828475228152664223990852689674659573829662628772306609309176316790300795267905009237924995726706110979924484469217692238112142437175490913527137814861969483833346783370335622076161768876144702509765939919638179245234416959360436562329597109687823408020233003718270873613812770079666433135258835533648734864122426833233209602606439678109419076462236490128088663757177210771865178001948516543528517126825489371108142943393098143939780616826788778044387910350123462230578684890984482922623630983544438250642905392147792555244774414552023080492066012580145426277158611276263747512398390153172192864961795333486436920896594155283581479587746539282475335976036415149545772973820429792319821742257427830959912301483330190828983880192261137987073632164679214386571420765001127334098898488423326133218267698766924426193898988683936421488839040847639475195911156519416426714947060994848856348345288252117252887596738364279989140412962001678590852891662301156499137691208416666177358018002583290004067991437114018995687572453883824538012902844993490564916731289561124269415520071533978355000432749151415512683401952847092169409995243304670606734850165340155349747522715636696361524692934680756108334927726405307535694991436871826244673601355860790760965974845897770071452155446250421754385102651324388505069247829437565992143868155284622609476881821440140572513292033622384047673976359879180337968713538502026908799943030531814319362217198712068453594868282769878292252607419270572725605866953163156959346024640123382990370770856311571766025288847757757381329948865166218116698521889821013381565517225968410058048683898278600066846120679203921582139945397259336783637082059841808865055465803543392542504928374695866179432855035215311774196015974538519406076684869499348415939346060236943136848717563792744047558039076128582900875503143133350503861044441189919561109733023210550917702828659380790653334568002581657794759248665407150125137894491939166067711764735537177698723669364882345805578293112050238427412439232637271367563232551551987015889867121240894191019270840619541284109086626165642604081763277933610437343032053731172267915292508337050787246300710434556153225337287608752105147792860117690597886002981648204262405192714341368805735301528121704238653180282605709312133446897496458628413774959966716799770911919440501488464166860504345558642118212053164511331129595666707159720275609739189174183983321599084453083307486688143131632934654514025564498188395798965703813532737899690527238704276229946181961414211670132650960186138386165361845507780893079128938487395981304053639227274372304348576803133109904824870151674507470353962155572592403469768616492151857978305466736863976702351069351502553898372645034234648604787525496916629439298481770424810382151752196838818716001223079638547489942970403893970575188889760215944251778106639006118141910229454726723810383321693515353861463360789643358907865661142394911564919228313239607437711730259535961305874349898903290176785916360208593781948387835178775791936821596121433053521081192411246630394502972388740369211130086424861575303095046091310286680908542989380464703730072756981410265023138192164701142100605734830823362343301647895435094374596497663722505723856759339074864946020718173784515611818138787294900686082429736922460484848003414058135130911962510989357872621735701879740425731749699799627346283978671469800777749712530002625995647070504324894034653189588839791977546369958040132322758741090570429724710195831416184204030440945366822477351537990401303818936084580747695303273549164881673983999995849963228672348592119282382534801447294685648389638220029800596439508899312570700096226281985427693536729408519822116100166692298769146992690257470938584564005617298765696086978398074918008658608411229060788970101807829309806494588665000303384718738556578150280715759301269862824154128501187661577845466127278433386163853627511630845547462554373549657067068393760115941767538155890653694241693953984864530231148840025167864456130370126739656506843553977258329092706144023127930858811365545056744977649107698885536249924534716857533882291251660550741728656153962898420202724289906398205111430684622355292403203919374136620581333527652548300085148708279171658751863612229178582764988110338229151803013836683840026973537420589701355939662347892827646727072124886228544576112158604017228983555879461410420503557153811133451352302716306478830805059596276126406208502915829514872930347537102101332799535363144829423477048906137824332983924071648561543636538429554440764197422703890269932138487482339642077318013389624077314485616864193924671387567858919612125251268585938189388253382281044064051288644344204745618463068130606037346444255056693626483731130785429400438369594647510710247400735137288138450289745253292496230729256000427430000885311167677423212672206002985940499969416315718964759009093933927417160836033337302710838103741062392978451138926599586254196314376819396565220447859240769668316651915355567984684841687285188535549823765781717077492707200828786090121649952564622229441569441870660195667302045124373340048353441182672299202029270055500611610287792452587744864137450078945087086329325588376701510391038320734212618833814855992898893099321458803699155772920883046631019715523111252164464563665829792376615712747384819603174902004339480321005652045545006547953562320598682384100335433005201944606829036761741684755895586001070890268476683243271979898765178804585459594580334357106038191225973267541028804684872420121117296685737187602446141385265114342866283756798997464582145862459763677480995024234000996758332298201830739160315204476237529164773693499301545730130298044357251934445385906550871873313741631512740027394888356394918940147473194911236887487081144516015847525663513358824589452281761096286829266048070956849906685639709456218707758952566826120934501521258596624818073008929245662376771164643737334837069567827079772322062250148387220688261852746911710052076256093312086787080389902879413997580639689284934392236691620824101609731882908797080761523699764204395650773833988639595940581362532479086631383662430171679015361301315516008321353161990592489274090686266598458489516889414691172633248572265402772464172851832319473919357639307308500209545299339679105897501812075800947674373029209973687372201253175888420115848734049433130858508631999771005362842261277379780313480968701163991272982783195302434001408155112288790699130391748353680412427815208894262576899021744199477111036518689304511720911897660337569331391249626602035991726625300264620914087692710608888423011120829350949980754877065972204602072648050591148459496440143993425959435771606225103090262973910660356063278869979501808815508922579734634072595607338676157275178971104158104580257042155082021966598773981772807648914005310017504075372623595475925485708701632681914865919197338002030808753731196930540061906913526781722543921236364340639305850430666843225571050336222874367148624014214466622907424075879214346835527968191030148933132851534316274593105930738472931794540233174008646599367582435648260569350745985162566619479930306120255991863458712786112948065902500358636468940084662626643127888563753059692415962128153218358423697925928650927399377163971090571451924285232926596310797722963658022747676602916893818579781593761443939364199349878869897731142097110656159700676612285202673108277738525654914728516405357545742980645009509445455581498881285656562590125568282269660868577965318331036661070703835826649538406855642972069662071986372829647037283499106373662792879598025068410033354008165924962424279125191160754679693565821841056944316804777268791873986870925572841756158588327692140163461399386892989302720691542568975548104270027879515117425092177752486964229249222376133773556313695883808737811138612591081410778324898763614170076968170605452889354129947928956738683424441541225794390451659853548889474658770180947541679023291112671634968063626471750558362496612396417400196110827636527074502091904226113081936048220310497972501249020195655968542517563729668565525504822412261819154038422806598896681848133950356844726027486849665998616310251785576284864752986042791138295229217683283884616792400396461801092157806487594854922549905522319658013022957870211443839075945991236541155565259199755955314878596846617854543996257336439005799483493139850379383286463619170450781933623081943170595529980278770770803947727712636871612015518783269274796168193670523422013792672844885665464785840907768126655542315464287004453519071967298216326442057750165642660402786315665621467125346428927007263989284143455035801772786446727647879932664986340892964115874864537780477988733122952264784753353681341307294783615492312523054686224510476754484389305741763121746135005257121309094791658678156551859311391909134681718399493470992975293519012299680299427792467034478591332257489601506267628626471264257218040585931828838725304028986826089523115903852718423987075133196597724438683231171539137037151066769371449124496010306438633947793281409749935727558128069656915199455498901795047531404792768046832313017931755780455298757463060258933546951072633142278936443108036415212742343705657964405650139591614723971349790475057844114685309582723447918536874566329444517582361979695975367499292229427018877239980039171459858007749972952896096071717337098174993761914323115269802077060547154271685483768299042715460752825787617235606456819687333028344720338330582734336210946223054110516172991162930230947259339589956322659837922294212287463757973799698660729660404060238804928835004422473722007675210460623071148284575235212638386157022873455704701969844761723628660646999814213018885105524350637070397601000417149947098839821112075796358612560639582542488993876630576033765628777879811160171124056063126271112625930060869790670343642427851204593636307359849520120472294602354030024556352635188456547465570755570237996193116983132112514130455155774740562379699789067302029134797568279863118491683805621416236594575418471238287640584410466409154223401068818581359464696797873053351363581394335322420436658538235103558883819714784581636389615327272795702441242010498420259361604669901872163135967549005167723915701645314267120654186216138318178757144672593003658283617705771078741672402015608311598705752927426375361580638610951585992626983720652367117230598311854287271233574173438535999596631534137093203312256698883086285610739091707602863611872880057585079366356701047953309194651814811749681961379144528170606899437661164659220912626442744508352779988736123201969992095890131849430844598425128052736134851700813252234072654057673685726784292288177239307856140664463499051849216360894131110172439307548303512469199098430249151793491677319347298125716527250558597002552913964530125569591256308221037819753549449237445290390970689166231403813829928860457227623886228354745027314195442023677324893719354940085307875734524214062984502239312781790087989439991244121513011083152959932730213242545909577654279081078354589089895047815867080689946018235582874106955454109578842535280107441713904722595750379600776200749702465392112228812002259062496476218944441524950395720945953127219501026253460779010523280518056673407716314862484129551481336391618198953589879360165838527652403979381007312963659626624260899166208692236008287596557646490295959095099647669556966519078644817113870188964555195678348237290601519811435017419342072735992551396356780647629958933617396225578174661214871893390277496315777260218741438535876906045805670429703127184163759362431986022305376019773251176973711615841298389451931887009513513297905874418491056148617888081492730932333182015966374084613478762350467990682339625360870336870364296037123039968054202516069993417227581507508848221820675769727500663465772934736901503670409172509560678917249045931077962674732112938596184677045592938295060504695107218076121802463952260171097223891989249848501638765625841052775997002008325660675739549597168542791070396556437132421597994586756154820680957749574000815541602580863070873448643345773069902503352137364198345899620661181693383211228655401176828634078593784692611600546089555753116544034008767962562160755970343634494354312413539990245463407285653001696995146784606417319496530606049186143283365115993346929577463368858864998069358022125850092812134863022677878371410077504592808930411427795519204562919773847719582047572686881196166241857037144993466538723044066901200916280530032352489734126124535388565639685106386979734916857104991273541556469007580418342553763418225134379256393062449699543556783568873001851531999507717065505120519790853618044404387068430871349914124327478164233345301136529315539979365299252745102243330004600733153402828004265161924094122267538735534142106615455599045379654303056803260945165512461990159524247088065905729150445353596844201370756398468870914433993309852534942645127951899524361204193447671256457852630037596910189839494578064004520931916368974650202527166791335687730771640693689610960315653977950448507307987871951421559712337775831277282356184928110909508849004568973265576662694512573451213484091294032576309524850720502604314464549668553838927381542017524965381499240504436403228547999621701267962622998426846502478463255415136760631541771827163688197665536084851912133065802584182577544004364077089030264602168423424049398099524497690487450735501325387630299543039499114193474466985532782466035951734279098981236388514519165363301000169367669404116155862498831445528940591129527616047767745644198831217376392223255165500870616250460302712733069821663058976602976908308737207460105470752618218259723341888159698745752037210041263738088205521712981521249093641080244052877773011717144462389278490004952377246894472128911369275298415263677409966469900036271270733444962890096504886355379000859792126484728958462543611207151910881596833440677649598259198579256142163322274809157615283141407132927435272707267120111284089347019985040543576784178382655152677592454685422525403528071638214285758168710093199827654861150896724091670823886475302922585756401937111570970916002533655694450997401332744395633210235417083970470269588124301156705212379908521601909670423443431598944922843421119518091709105122138776439402671393421721678060155285597807501325794024067905241240805301625677086277348875841854613422727412934892040391975428040056849477784908751076754282882694334352123697595839472509383553107503599559356287335216343366822301058295659308776062084231636191844042809437570088006517590837799426569502666545747952122230564058675164604320193192025283413695061800480990977093152089283439059570580711027951323451614333808110503029145262110833502153428970842084608120269561846234959258160728825760752838501576954753953758846619384347904141108232159338629379551378935795924752260897127481676758570305317204155460309804669390322577798045140159439599741077046330787377060914211641522581228796805127499011426415043170776511901376779624106477120305650693014985105093040590718966242030254490947686995387857160707604219172188974717124937773275644581157238915239592077777166162643892334790115609247320554483887621653451297597394879375095355964146174194189432492192025765667119228797526502262857945889236352663303010461064753713926416922552588536861262631199552929099172888822459644077973523097528151151800520614389266068766974127712563658938953083365526334897016955091614319646900588626716650452568549245084452023332116491180950045578028273902962375391029648811078367218990236804716926151304439361267779680280896017685858165790910956453116207389022934043234678613506703891357379466735280773884884437340814239707856544737785564862612536228277913307096180458063340773718495687354800567264322908736470092359384227353207072563970924112571791313696879759633952839625931883432016892735671026477947584058988908839933732694956645095458711553722233741936713798149054051105173338307367511503424813637781643996005549768814434929844842704047501804515660162683544952563607502723332091477781114630388619512787190914457902013122446196593204815261357057815229353153961833644702783916773714887601554257514565233460015967124806252907953701211087196363032810104093129663557157644268768428353163458752935650725534933977495143066552824715283646328584801253168173044288075152033477327538908869990210315028254890407166256656889053818974541817409359315559869551229947430427339228154178623693807556023010920399195695977552990532672648841659629695220261992571531698223158280552066710646556091739867464715023562053431648875705493748738075517680760733492010673265546087476406821822170576593782140098761199616722838891608659755042639693054850601538300796427106258854934550027434062601109710243294626567723430542956169095811734146270771318491507840130171404361970824575625539511587441790348898959650972421421948756770779066309984002546882316373046848018043583290236237229877495899357507094735000324756358751315922021049202397972116232713964363069672952238486135192652507977229447579423537216310182396378182665464641718675321010609715475139860763009801214681435603661105435879963808035103017881958111139714966001515338766907689684401263222245756040020701004966284122420382226750841470242109835386540520658074707496892260212519939623092849062002506249767955701294545790180393352209128031712488828850307180004947958028135091571756962319674271836177040949576864831845101052020712791997811085740860030114731086529685987652688185650526217615031743698279805489087951404093486285463704181782314779797813464676644592649671690656356393107456726984169130849148833758228041240648669679649875374511651993746389651451841604429628661850471423051332357932559181306832169894658640154577987535011871422419165766133420960080880954680754067977459867217853252914388497202854980634514493202973448967665607173916465653086576939524465224855322214085005723082621168801440740499747193665677415416951334325096773711106421155247509176623846824085430542934569252622234648703318110801147626997325210345487364816338974388488822193174656228321707422160762081727835593086955589959569347111566756309731028144873701453411895361102672375250163443947197211439341307662893433142415505382831476620847555777723686303058146950028077542409361158660340512529262541106587453935309472355274199534491935549626576070773171635340858980057525876682900901539806238886455532012431974434040049286964420493007976008516114397290177136382803840692126636737459135080629020576804933684290227500990918149524593486567570241217023078232520367327313177791814075371417024341942793255152943864796272840829281923585299504257614571653365197730360817530985824968885287950463012233037597859973936022229457956308030145321504024567644806494486691061059141313719495959435633075053272886895265669300214805291978396289783648261814947902379973489950187732551506689421256291826529804222381210075750011083660189334535644503342752364413207873889809916104643064962483106804068755746544899958993373543373495683796551231434070338715548768073356884945039379758864531598241300404603871236290072933840152602999223218650928167521809177040811867904009312983555441628594899214799470484006456416662168578189753630276073223116058921627596397073845530992319668631673200841932410669108222666655898871497489613140001433870166981909502039960940564021121473510536188741152164831293562715856359472058435759954192361527678789285313191106264043067692650990490829695007127626550538584523574612570000948085148930733083025204005412049314475084800136511142113086775168214153949955156791551428515956978950202283628457911492230395170594119071353923873882565734976590251465016224931227468223713985648332879896961431103214923514883966632597837341989928505711535559405737768418785528454386823826676735919475977903888884904506579336403987674317033331371144673529182754958571509406683243645674770403196634353816971035649931328233542942247403301605560378416503916782866264278255223293782002841722890105140463917515585401744878388758755589618302723686352738116431312898244143547394331273732909262219085877901928155084599220830924660667970424686100863000279916198221871525990932902873538127256330963507377774227634375471478522162120901672236166484372923882278171610752855077787346624911797615275719848220415408152456033253057441830238440917342000957997592837151986721082970626127328175024747935184682169471666514766370689192726093989044728984793825763125952237527126905970260341352444918703545988393686134832119295422849208231521810044906889768579293822029530250723346222843680056946256043354924192126597819055141641423625269166821850960579184936121570158123320162265657881424382663149004409574280915136423075382283828489937225387819100199016770351588591382649531516101290677450206901268667954328828429611310455084870014349193720159217407230248822824720723624114945521623458512240523756736821361885658121041666710625314007769493875151721073692974005456172703627187293499452740911011999795006983190189532196107547546028171867519443059360581187942662560539861165279066250291931052593905286887998826650891769033198486013185336944446111577051366503840538126388546503267637781930280898881416882749153690868734210006408306134079603799391485156656529116899726633294835000196781161194729818233466169002531147866477557583084278631234010390001301401166360923007055190455196211540466446805365120009105672459776341648459168482363101255255526551920745967476322822558025308217923672080541973957984850140853189719863036055996863785672587266961098018517393950239339602662722234529341913231743821943312499855929152037813783627188275737965839416277876336841230146780767136832134175761320630331656580996376929478450483021908501169462194946195844815177023807930801922573653620937168961156851634793341920189394123684979807730375555587849435130203680509309719926229919962199116083597562152248980931111701600732611270785312213987215822576728159523296666763985328312141576032231960698719596132574931306523432278590882436372515829436782563059748689146253910909322852942353620802418051225353577732058749582160627080881246412322903920252683795676637217041272531386042314139125011058543038570202519638276893603818952629432495354359023441014275761778498025831273469672223574550274885843159072618868870989295049651065663692511909733003570718736471910659695067552205156338964419688055718221083545911241597442541779531803615357457142949739359341255997987886845985675362041401165977566156647077127886667496933788387526819055383480314253590710064171693943252144025355255849810130037871068225784007340741689666280738326755381236527337908595543984530519329643752524774623760536449183756376672086711235289699366723486285638571497057523395076155777658603682873655084080895028203332089327364017976427461109571877206353139098732258787291326850263991969149056679232534400746182510603396621638911110880347622858752111883797570148955010937051794371263054013343894980053957432689419385412731234230065649470041880819076795140450861092872028989327273982091531377323536685358298868514922454557956178333113431898843060233456043019862159668891695804585452210414173263769790916686934659733632078836356096710171766300853978499480308129268188681399442108864556780638479378740953366822590909833399663629856961957742936212100798944812497567769149232405110643734596708570563014606228436469944355980511379350460081269648374689071214571740541165288464619178431298777886913261166564926190375358485921460187859963410921356337239973929578218760526226047209893572713698492775197390907430927965001681807793557237771168800914527428455569828610783072680651180343147168186245857907140511745147341839330656048706527934867242285390433854994005758063876207341307974730359257871562072328135074632466894645495654738947711539466596654098039499501772681574281319784092588056169364419645354355255906848244576433261724965879690707656757116702800721199977389046986906688034217519505958365265443717677166433258652228055342545499046297588189229657255822385970860070916538560026826050300811690991188586873056295640539077308550387198172008446453747203024835280163576242843226323086619881815443753171671198997393798167809288078949576674496909719649537331507425634018754713737733609822303467194273609798539427328421521276476079116150388141781869447255036031573148087726652444041979187107058055303027199117551754292824703522375325893520744637232581013304902754011663936309759193795374721376057974527512071496219590037379370908465213302049833511889674607689112626342439160139706564874163814127551799883386713307497900075840889358633076720264968926875926363321870294174248916683592155790104889341710085128338329250146919384959912402292032188993537406596248071718881419040976229980730414867416713465835784574344704446913496602286587740617248289381643530372050811540801850492230226859414649071565727084901968831178710117272490983065860408899707417273582714182210012749152937790326322599304078920507144147930216845021502005079454815627441762230532674073380199232887570735901554206089568637019732073254781062100321597378406127231998574945904078491145710340460141271203509420095569269011076404127280090263651291408583305467203570954465263470344590297661573909416565530137932824940325169793639033301236870551569907988542972698757087142619851073040560648259832897888061321919379535736402788850163948950579598567743034580773357923310290896643106852025557900524750006362672668689057945882631836756971642719642952389997852657277740793494459664011887121614692255673170687986871999051425214720077080510095693707278051432097899711555741671637753289010906643326162237179889989854995995104221422453976203935747830956430646111846669216665867792133183344152925598862934111277736033630993135779255954078290615456874322644891713889919023742751147023791848669105651140898360674878479945793947529983657641768010039190579081422687690620310207902427513404262404910717993189397971414594271320599792343501767971333073867609258655691062215244900121260431574563707295394019245087383960496865150752692878585363810571843259518815538880330621324067569415791604613064794104252163804215611063121658930860324708516033028380863633232708157903171758971026675120407051013537905193473538536567938515494667484323824278587064500528983490843760384495183429361598941129528738709186685733266600541106380863097041207545099999617500704273773907676931083370604609806198255856073682586375396746780539429477488593783515586802683157075963334143646015498574784847179597442037719788070324499809676158569135813119981190438783706318524259836124049902600621732240991029659257700753466449801837121298816224955926078218574059366650406534211067403314457763256314040035926799613664042860960608302339729663676060528822145732483303781786962187318307966877113667773690864494790028461808816606887137492650469917843508462276173502204153905671546966653448474951985422183644109067125767537812312484499918558433079708111294133567001717079719343417123003833996624604963035697683635749478280415994057498770891127775983759540705709904190651828659953463817002101196434509028172784780658824726041838540155132299790772736138525495974990838857916191856677051540274655677259888141723505761381784646592341269773976247077805089395526367493764613274240396808949796502501398388412530621934412016412190433267660618704124671556354983199628228175561054103937501411981819512964720666909900813466285644305607968836169022691833407208594213415623538049286395639279584747484110634913021482800892769869334421664370723857405613825154989885965402559760556794207081799568553745627540453122958835279492176575533382831271792824626332589956379967741639968037870102769647359113625409920302342726047558765092256352312009747512464774680951336450992679706863824177388770839252886519160625237290071027240263029332564185365429489065545758970074366602339631528357886528651697143097471937939761811864078332248738090664474688816536231458553937860200873210252966437561238455926935867854712342897900630128459296821908149293389821332554695060560032048339303045784457226224471653695041634471736982282406313443104654973301248500294750765784466186746172069000277323318241383508914949001837578466567724495799803652822239254670441700472687129024294881062777681939231837698938081154276210502261103525785220009829988835266482966064296402353285475639343445564404876135591889935115548543952926455096099356968535343847704806416016350459045838807562008994389287924735227818397991928515613589028575273674041006333065403935603771132951104089667939279269562349614305324722899678366991426480151724261317143636867515568942417963401875051981161700095397556668686151419359525169585109029058362502171086791704464911050934081205979138460542525390990420356942959495119458126608228486145186985725197009002989487668522413244596793838774715025627260423385941010185190489272248339914915984529265291292507748949583630023417183230665865234273345932862946808414666708600681343196533025249067454978587070140117379297991797187909389030485569557457351091653735202618550979038669235622041005189540879282394731559212114013516467942016609200187348743756833967212909911650438030738517923081765194106429589233365747232669674959125450774349363964056002781125527721734643617074442892207515042121617871313607515861804746218718819395385629837051100090113858512902897652170947493028346804175334396935321834645214379136292480681121932654419118603587805698682988497863808091639766724587470518759084957361629968346015044176613778964068011852472046092713803407325176667292660596630323320819226917953153622424009827498442375196892289974346324545770608861038548843046613906994291074735104105044225260621706464864806944910107497909663561622537228429614069361908741962067250438979876046252364642504296477261110597846965119782605332580241819024402635625430398334424773880073619367852131483904094730261921014856618423091853569122508376987963701383373433711659395834038492824618976424999177633813802695056198990995031645866777075929007893373183770045499484866523180571969048384341452727301778097515569052425773850723875696375584083525329187479282158322504300194645955404515458471773241044839896947335955842437932932452892396527027459303691639629364359994216254736898187061829382398597533358004981186561677259381590415599686053742824781287547829023717008304626103781250390251244883187784781316984345970773490171413496182743438566452265268638856172084405010478851036861212499771507369277973269885859832312517128215584643591270578062046551765758949929677355003936736826256973045251891765751493628534718708980713922581347206198093784831454437333951213666282425397741721897256613535298127838694722984121907819920533609123947819437462574298777171442251050833321502030934712389063441197033496625909944255092405526653470912381704473800270775354413724594702092849121240361579651753001495999811090888144918102602133770669019314772294497082494060062380506419611253519466570770373255866387475180230931766655108929973600194428798688281164063985058957506780888177610036267960731669375963920298045955258579590107375895024647417297486514924168486614379500985704424725979867904162705653138035853171630051269464331898947886744533070513482856968724484989761437040791120379343851217917030868469558711755388479057305259036097336262335227269478353422018435791248664973743883215435050103804218710426171820673335277908730273840140674111815203221265378325994389928205970436889983413301655712307858310343610485642166633502727015807430663321568652817982820675047378168381347553332553573140420164340468649477626002429785588468541923924291894954180855467605106110283823580782837428548156201410283741664040052501245680850849016184274102127153734177869012434941992500373348391819754346707110104191140751957015304939387812014042487981603581459185215461692488960718620494681130188691605704339660122679735058103156582737258287841184618254875849525939486347224768284550163761540199656485140540178396101344953824419072247754536219424013628432206916863672657154926871919498066741435516399390747409229282096880566337133046186880606758439456294711915220428347486080139244866131623176834409449938606813218231203407708276067775685768191123039265759831277951819508008509436205757932254658010318180921362461438552937195862976205012652248128944332068737572005244902088260430827572883481605658354419911773984911978994317858240266331809856888420291449346823361744851533601541368446723514698926242417072777486950390719288744629875374210576150995902177949758630524913310360148626913978607243890080628577473311295330178146421118409292771135243449799427265192153395869623634709920960492560300615099368165284026539862061582102737044868655114969932717841658263205869001571570443226493842645161822590292419265912967918251402100450499437897930689699856868053708440959975984707473103810877501114268329536168914161864909667045294153411896862087204063313021524009627177519146808750807269547679433775135876298049719688286647824732114400073183517747953625106948577029656156691647349949677836790969922157163924692901821609665421416046624008597739270334306028515015889322839335748779350288000153387077963339537653198641319764157034334432056922174971916692987833726666801229565012018319720134713155926922264549915683496025895192009413028812217062658949799989290356222155851397760967468960516931415467691382360521660905890347312630137321947907471360978861401292091153375480988955997200470120559388301418398666044812350879593109309874123975388682270498372703312237298133336119646917971841333945440755727207747387903458961664278566242637399092598954370652026861591187404624444780065582110369025896401684942313780682979860545115827940685873412906718190609709557016131296607247790969835001235435540773568796605303393988870697703375490125686232940628594599755257039396352933380743110287098018665283357047166410541574621402120362366829604897484994462989311015110065177553205764313038280459773640241537454997549857242826482280695303050131667014056393993674045556335773672592723972580075771398197196273337764011165631877967213480415971407377349505871937981681323958807153550291651952464221902364509956166453080028030268438699199611337518435073765933704774551137728625160854898281834360389152827845300090227034220373559432967351064694570822358706494853066024015662585312134539360868350444787352358870936088541194171402936251889955218974016671287308858464624284691596079231265824853006740790481101406372431066063614442475465776396716039748871408423392784493921921994528384676423273502700901584810509736545481078645532607004552189090363160459994201382270198356166459956756864050454991355530089008334243829612112287911327520962006835822768271035794198573181907300651881132351768630452549025427863975856617034544379812883662226443044893683687139649998066761083773493725475864066697584865292785838030525242076110654231289286793359096668050048807094698696985979796430983787757374808133635909654313925770046167725978649390312459795912922478065740324399086949014741221984747216902867349739726361658233489360078142884705854637024987126651484947063322262177965700831387863432167016134241059130782870254011247195044331098726250455754587045574371319975738217404743389603207709159610847272624553117856805486666318863226012332246418339303564082136446616462516516243799109033836811307377003450482211867413796876446220190440755145090926501348172881417987807829361254773955989216958436867755155204702466349323797710983097911248638734604711269369327114620178729668779591989551816356776965875704118131219828767596517126592326858329385847305767557253406068325255705942728875842832288642560731135696108899014570507171829093929259590944005931014290396361080399558090037206431544850300750126299303367089855314434342996915982325607929044960504547635136664263340489146795075139532191614102432874152816233277399355312450129604202829184325794927533102833101264695766121602055672332669595318921524336083552079628521090554338250030745936585419568992956079931195131364926837379965647658373897834488892779802355686891093654740021200719322916497540044679777470974014355181990369028986959190901193195214605792350410529874977472939224628078955472138111918070801287748935970553592631123523073212769844797590236870112010986182536760078854470200797919995912923569578697206327025285710070318940453755688640853527341219439133587394588867377296833260209231832527964502186696794890688594822869722910752713333956310611694551033368623155471695027033011872797373024154348687175755268845517718985559660182499941467746867275637976398288064065601210411910385693379928453064145591897848677995776130118545973546165889951674833061698369552928360274404929483362582121446023490683458782816052247457431931349909412511258487652424298718754579463163649000739959462321307742970001569030183229121454828130562959218707844901462166514774881313843564351100374744033930487321511876831529268609441973686648639930468214800048849206663589153930028570980994874026957452475706878182239081139750646674165639438556188671249299011820480481365740153083250149817914979004160994428116870085082474901085169355916908358156397671126295103327419451333542842796264865531783962842920989819561424326026348401168518085042316501233006948712590727334635363484335302514364090181467578734931873510973999640297471347324416689155271083214575876356364073693045051487409298988876117027435231433765536341753504089397274531620296995293528540164754762408950205009020102505170319794522223570108213643735778120069398406990626909049819761663110595403498835263288158391924088069883386226408420162858175741946231936705886348328864340733955953882936146553793019012520936972622541251926077920322238445248046559110835470325912788432156265429420407094603358301719915265149520800197771987989628018684762305909930960531816424725706436675537406058784548625924510188711174380741094116552873671972924936032261826446988762453517246383379968077443846357698621502990565797503677203754033325110390121717463579152257036370576811102225938665091170677396961351998025495711736146361916081973360708664674330267207070866492724184131812367016354900004302594441196381290078844348761532939619370025819734278964352827841523206125842966974082288064390748890459296906360360915753599561554136610667909003633665412457377632402645340586657867981932778158293971826527855827722690104085060340984651034548083247269509836574513050045037495305892709396098084343522898080388879116819870332506285218391393323376642450924466285614819540003378475296847434404679881726228807205793221157182895124162586178331731771447989306702047872513677386777546848202952104534919168577229701403494888138637086616748331221739000954971943218971943033841115344603079995108894870742628257683361668107098269635033526109487311579957654156484122968462946651195203115259293081696010354934775749975248985550405526376247244076520697035128815205549872791705321143953073180088295782652050347067363896841256965034999404685948536720361341127436724381605895392644753418879577790642365788982426251941394465663841509714954147496840813187849782660120358434293413374008657762275877937094632562208976824455243023905947070458323582748978329958872144243625106939675701055613760701247720754967289924156208117330064025234260914062830888592104916828617047184257812813763050200628485998846391203723713031704488400997390302276641494309630204772796470470480697276552589741538249621886281493636363444961028292245025423708099602383322262004195552234157589567083823403672391158128498077872188601490679467558939412488535410399746379395911054283737021961425757269324985490132845777780893281626121120314949015573050588228611295678543618036212233012466677672490074638639718900257840386452550484546124033048734330030516952855926344870705781130505742935319614507469730953203795548497715283155812287249245902961022567880654610486585561889381134021006931903847043307448026125816711365073152367457334320353765740192939252677529134920002675749042365077674874282685406420447650969378592879076586505219527721874164528652186912225829752132850180430091726340584502933016279190273657029150692849197908539782232796864455284551228415063117279709296320336390370989233530585436878259710793939152178818394865921553128732067867158024336195872155879615797041118048186997549724206616480028070665399203244917313626638216980865019352017861716062172243857306778034691416996611072576965733144352349580094803998896607084177235520541381674998259437895520608292936468171682034800079530248095918265350614102712551041949894316029708241950954120323590926373618723718487724493333229597142252612547027028843653799021997903721849926798622201532831117877816237952404013924890049274283510317746980744205918217447042890766091615152028228529115730755290122154960551064251548640372239868022319061297439342649152216856984290005030003623261289974349342596452311776351737386090016184618296831273885774494109583155085268732071880675127343617662710343585010654930052118684885542042136706407597599129829778553928991057579476448447825707603726898139805011827263900895424004217488269108379260538301039316088368518195521131322828581857519211783639087170824832067334953291425113050995477012233009814655496892069013839921902411839360137666581057313575313561810158646904003828125628317973141999687572456445173615941365856049977279371526809473607178300472101588041080237663471658529418195957249753214593721436738815600498405190192748098024202352819149442295340611234841624058617290865930028219040941680932554856214267634282923899484598115193823016179807008677717580596899560100697953193619373565141403599400337707256066133626488198132035405310104543034161485841319992382106219922493370728845863363819625560586225101912644481992750005295994269244362046815582623785303080437370284031512493005127591443116126059619937033110017468068707617145164613304410573008297322334398102289284690641717298575617322968698909173814410856267705450023195336747859638251800825772898136221377524595582687002184125671007166723344912643359708760722395196224363228309310546459596105600293253122039029903622545039058894587573775006236064674381806309841832580850743422068524895915740649578573202280062267763988471939699827305802454764041737142052664461039964236090915957766110766835334003696853098910434575641684755984748729055269319443417046289367948746193369433877491505098763050111854906302101958007289552766182901495927926605800716729878725179802816083706409767747849306023788302130738374200466656832196731152431025986090909439738708459172239644823959570337854059327539401901725089154375189117698876509725613710260326336332606199815166689969973854048911498859137858785469591206627725607266624229655091284838965818775259568994863259608642715835431552371131544584159188630684668960660689327224133250860926509912934994290570529501195469421579988470778792610318945288411105872683703935970438189709966179264691360068572897816845444863259759589962374313838741273348347733347913619186757186594238520450672159511440927244503793838099380628096356395371841895916752168144879718290317866295574096924251289168486837292929153435728833104252671316291915755854141500849687297274534579562065474483859241482246162641743681523569798613085028897612796463410325707390503886009351248492251640257242834947921182308071197575885039846632403145699811022089283806856207729763697814425712534392413241763727972311953997169541834257632158190749594882857521456577159715059621114913969494112997638432986206494781669344102287788222728147346838749216557074260345362093089808820299285403135620723407365188781990953524563379225866478469553518956603971231757029557023821335622114545305153465291474840617819458616130090003627049970551116290166805302156141470302260244002090549123489161327456326996312910803138149777383656941387794743416958761514320624415052070069881334984129743988643765232948615358621687860723426339351863524683676712051081213759575074221236751756174424816696252397004292978019903618149479775934796343926690933360573205914838329802975100600028416119935744984492386458499659094258784690747791684824216857087701586218348353242248178031041828772386910143724331057028673704736398280061202739489369218129242613182432613396323169355950436103003583226247784206760967006621271763332670384051267355859233423798959236222856485578346741354187973909908610547497851413307644927446423460416740057591780128119541948291334323627829638539479017839471499924701892552918120785553407447288194261108672919836257741064985709550229105437180217188704719921751187555053193351225311338873095065541599942341316098038311147327626255281628784459643945207702604347040950843470992830767437058332885424684489853762108444691448544977683014459204294201643896671728646446627276996651702786854795441195867370180650750383627855568915753975014303218574630949303986919127454400839889460435796800959987414512817791723314499746118007898679074525013198674794277329635441398759311746858058485137983129593703260358117163357391615635373383016784333303327841811965271150670688470256029905350164899967154016890338816583862316874049842653718796712692696174121360771207494143475002784142816491954463735706906148246652565982244400064768283412559229403000079218105236147337628691335711569746731413450459861076576989013170803074122606236988178485856925536165216024406952119228520804808124733898431361038671134957492046884285864240708842319384729932581666803729504369393917123424634556591460410466950563228744794127389141170730677758427597828037182109932375780638551690179724422022924119973044147981051119994410286742080261028988296832350274220090796913169748828097020939819771234072175360946041378142779348782718811616494367829016873656098641868063516855079187974687190002695927922663953909840378255263937721779398482036955036399377956105370720178382941762247359078719666606401659019933436795514885606121460078790911339361172424860223535087268331523936269281211892382364828855373394761874519283718929878582075459544721538768039351371711985205817826100223236695563914598688812047305601009202689002698118268952128303824131038047845897440228741611200498136108841374043474183730809042806662796970578684427055525972809970344572677614967671126858087687769982995000073244446557894172330281549068566686651254973377916548836003274689129839228024131091729134020373082702293589258745845902613397768900825792594698579780009799823209981559433747408423612397726209203739982714241468695230029593354587145491971322531274892423274762203507015512668129877297064810956723826388131917495464885202971831587824475166907960088969462849858154101305959368544409938271165280343622526104317778576161102227630989518575574650466392217717205104144825753308290443127984582008069817122118182693169196677627491127294259935462000735677649538852614237991468509655724695685034366354719952457684367905121090236394880492955323770914813831440323350643938551137612390417622670017127914730300459061512690011070293193178754236549540865078891820561134428783901492810375246408242765060798411652830856465112128110500494420010215656678081898115083202061484786104921129424306492385579581511106006741148540989153294450383553209762884665245470123737713297910580159323331329123123554581293245077735188534095509548461292327875844278603260369206644013920127903537508094212050041968801781641384229398657262307567006985587388930012669193410310400279407032949385315282431077551444786806593648611698441260714878857590465880748857703121504157191038790015594174962912090015515677977913617125782537649284081692561126705005017327268154118104260780115559686508171664566463785004209836612733785112696460133785642773031811019351196730277748833258705924127519576933841635026813897338163270380628411710202180836153590713824611761630657185869637765737381426360252941747209756731721833418882787966649904978307007741812976989191258025570500664709251636786703867644808235751360821505268009453793816415924297498188783521938979424984945586077511504889920502967887431014294847698166092119788238158694590606812013131798036703658707874838617075405914862223871018141200833359188772738858301889104616478758478292987312922247862620036401069383461964904022904841652991747004203210497389602528499806236708652305773437433190312999318038477616448188108116369019259170338013467648368107982481156937350449662847325242651069777078871077685583245684071310009029538030479216984100386771298408718791999040391613407684639288597031734577795427872296017908199169758948587389410040689630333666034780743092611061716109512648624982074004842041760423549661518454261565253451457402352884320837215574152796532119326525725987805268928878046625342587885630106990167113898918622064464276346624960402995938001181611590025925811109468037231657456344700136286459222273332614666963401486184063884597640670908382607725820208362771631751638374084476944316211598718702536075777167807219970964327192806868770449236613304310127633330433353116523611214033297907215211681924897689234847223277906858457084981883676638696521394152730264484396565403881845937601820372139562192427788899609582244407175413122301265621272589636462269934204672696779782533038774750544364220014461110459217832746312025110680667390497709761548695518868605357107088405531557107529671048245438151215896869341128382559833032625687521536545799285874947042594037417167595643354867644020247742262020328205155182791582209620587553244995193866293548104838845974733292470356038558268543104335771489479555083595108115625610708905002890767738945828735515896242333842912539023568720965193424488336576426723189276494163687782056583493740206179004114781495994364820738933660883719824629001385163184913317974685096840679636630580475185114342798337804331256597333566992990973217966359723353264060346229229486923644314481737549013855763817766676972216528427267748226634981328894135713269140356582646918727550838931836178820156142588286714148480309793862054352058230787458652757711498376780063965166884331701864866445035854761051603402316368768500324193580684408661931861140929265864284309173230718883924799969166032688783859175634407515565146403827432566498579557915420743397523663930377153384680539230726215356305284073424461111738609771986542230513695348012194370385132743731223605127293215418262516963784338982784221384166002688953120624158680088711733324876570621496166162483468204602825249944892368594945793780028574120022697673283513615718682997868455435706540155358853253306870731124615593344894095273472462074910566590918061407231220654867848535589685706204016492529233384191211745453957467060937183367283630408914368752179824609527239225654065835206424343912699927761252388904709181839812739999976930848022037634508342433665698152562781015489666490746228335133201750773071577909081246371278349926278253069481179492576706153606363307768476162637711060481725501985930520411420723321565268981523597644079105515118227623647384542902066824244551119938713031444924424752338217112082965801138612984082696486287062790228680317502234737527921110308901803102149662180846286011833026508683568327626827864417095678843610759375928015462968908285536470519990684520698873890886081260000443680798190857565428552164929064409684661596440974177382356847686831012288857900112652645529670316196819149940832314394712883216130074850887166782883827292016870447923069403951668194053111179189270724169890273033712547566411081629921403032783293450509886595671314531997254690904153120001860997486581092616548690460902762439936674403487064677997766565585238462876446209017516654336100760132622087227705970423000294749577662776935896855668930152247305782631604357749196189932203133419204496919216651571369585217661436404218005663475423943624055580755214844322198761763916581464655431105178522865892443715686750743480082290104576783757446283128258730890528365718539267293164684777153541313467078889750788213275828419714187725736146122931708575990866408244574347064603554961077144593732443020706877480105800390128962968395193706172198379367071286141013934618600924715007205503432746246928539181301211766154874792181842775936600072823635397754865483881321677083545833389613994196088317552288148317123612778727747621507478750112195808634862321819581466079047508998549270849329444301961778670265887986150007319914053536659659206384212508109052327957091803102329729902755028617001207410623724436946929405530340444034926608278015393035252576291791042401940361498109051889816692709227926036767981061000581388755520583091494329508285393667113277332336235616930502287201287888019164008148602346156227565898057125074039354265300597835417776717407741736542956677350523670495098463421624953596233977878174262422485177716226922519871707548684334387458625225056612236515412098432767848271906938096682733200917099134490195021422651531623198034277460729604429553580897361239988788851078721816262617071572723390106051840665566604154218296660813496831940548592024744294617584604824784488970526883694045234279220440905376938020305048167623040971534362903918281056870678171184128111286578959149607273103383485121879043763158857368269442393410584409662161353692521630410441094778422194788163867116040165980159246494724786374178847285458877845672734861959499509960661471095811320097911789980750442682567924650896830974117719814904945660957230102112476164245527232573697668901645274057103749320335058930608165757463784964313378632531576091963671166085188757339365998687759220177665068838413509255998569639492080652601262972506252999967955125303247214978441818316754140362450387648777964035505889385099299483827470769249420697514211944275433878836993750621089185066938091265122361283509544164927744281578866197395044771319109859801627202954019128322846575515372460803157680468719594087674659313269229894664294769787360774747321189689568090718308013920126330770731299404318352496787048885092036528017819389321309361987545772091064646708974048331179237192827451869029747204689696213035878205363924594332917067400883466641425498395889980214520503612405885430699607821338138369746746355409093664469222003406661582647798129386877740185695363435884428622557423107778154885800947459058034799504272426208751634349264598000354819276959070608472525858137618656646841778367331218793342027848328607751565355802637442691025881539994509097447920845747841115866228683001767266103668768102228486505638353130933729499717129875759655220760083286410453373521474393565753002713514969931529620919747609918420515768509440814618400458020894922807803943237970105663822684437806004725916740381903736233946964184258336463330386953023173089413638462296114034181761210335228302230611435611639961172936979961127789599574352651048586345701262014231912919387155400467678110982091968864304895997345886540369804117294149650755981129927657835302844729277708880134096963936541766795402385694218949137872905503701606687765605408287618760979966276394400659336753686395160965586507827321550129956357814105719562942075655574583830296358424794873114708061206598547899847831296352289309087510566836977303398661239929947904703824588253629309544770945052568916080997487010349629576855298064490331993112518863954054640963959076977079509432148533022176486522415281094637651402138901830219200192463268596854138313957728294357689615077710809248375227087392536727479692948132182298380850910362562114245349503047694479360627031733086934270744431906697450059842428076831249780240169856829399318566225267401803562621734971578315534117711650974022788112119090059442752370420118814171155897376802892569974824095185966798027686347843966786563068933957715286160095542544378121297862703595803660139728214952774319473048490001996802682137915527994408688627249161569310265600267394873688217353601345644816376640329318442893924283041413791075935494832443243904228466691368217668284604334364179889225405949656158272249175659863124600083095013875563332043381936438413931458211351062175511914522717994339917622165265568473283721836412309990563326234325352513100402842404646494994220251113871374140525101893045702658380813042580720233983335912044071662042722896025116920454200753273267709141883589590482150426494552673242541401352491748427780571021266715961190722341429195177567841735994096359369124677838131625541565663734083845576964963999109615422826908918409081434603866664799358644220968624687212804483516605846432197044658192802361889705854242903715032063567068925046156553446955759934791719357128566764028796654454390743498357120939207403802861214083313127863324397646654358725672233635724052816739441647376700133913454116159614588187475551651847501704076713354340496656684384342086858799869143439723984829758789418092865312715120292304647064732683954234263466426554509577122017204807412701092086543039731461417965683672211341815313395815899432908867242341391104609993182643492919058429251453182078848596996844222400859603390024732052804374661963718747292855711949496986912958491116637209005166701323906549506125934031249010174419964363620517799668111542807516132738937968102027832350845239748478589585096218507822502381793927999141773342340701681573736621653147112663446076998862423601873818876227555213986918618238641447227632010849400019448926362486930388893785648574780416063255423798301222503993140171705230418242524203489295246149787148887673529468925744317269407932024478859429731509756055362757936822267506843572543273517545776683888109819782892071261743962539804187953339859743184098754950192700294723296539514380151619894989687989432595210044734084056619444573253262294513723827521534416054276619720458889485301753314581360704418644328295329810411492646914668463092489843036465463689627105111251163439855033507044326114892243964877460845705826550294629940028132683509659063586670035371137703094301549525595587364827106175581923597089494928011405115717088985261589556777578831762143639568612068996105800914776675231771044956352040065524461694715214767055058567035721970063080156131123163452710865525547132064608268774619504469094961525543481925636463077858069515885483598728357661686345160202337547387567978277437299957246790489508157223036791411292782693144455022901542343676449425698165580104831121701875672696965267450716881510993382295281126125787392077581083976157004936452406119423847156841435692896623514718744862107876737962048837195401294010569660466714700270268702269224716005217710985323443495776712356714633316353036269177403712609313024885727808306604649934661281198547211824574650708483997345139237693740273648376743312703448308900201554324326166865040678969101192564803190616551873003245045552219619912339945889919726344161665766597709639656973282932857533060165194665096616121918278005846606028368971242744138268537550781399684931862381659574176498059199833598244812337735037825889412195454737382411372072819608887785016414734342606242861474637680492060073638843287259884004300825771902821205287788777784590207761962595025717159779423453556727064868307366780903210548672812783691526478372658404690004603549951042960083040516006385789895218487903156693547621812346747703214211790109678414389431627753124175959443668165741629655657117619770705212985849860001590499147652652156001664485071192077531296033978095184173844439019581024358751878477021298486686305533661554307557758013292697661403881731483635983917167437221347093386665516018957871022787853197216074544488130312004008426419824101913623554229932785710910255786373769954610311306608545684914257281608852441448694657129002905842413965058696945888770993493301322731404250553968721264393690826971180342411231034492780196597798386091968263783230138674880828036310639693500314514880878049126332804777627249947137355928918475381724446533607685028436294293004531957288983567747012175659695295750404977977135707266572505527047525411600928620342877483914325736537945916698941008982162516429023302470775219705189143262182610814523308504785259783363651692758170549620561895321467231736460125810368750118847278028157314104697226543959198008878740051905165102923124353833648329407390546373476724113166078059238940833423532575095078579427138545922322011725890851501319114697252855352673744556765828126817923444927245331441801672046223329012888330059616576952916864444151407274991362719918217496223295251533388056292603709212852802528750920349794807570723284154790010290029531550264929482710749774875494790520835749447416267831281806081219563179168362793636033757484904315784715181447509084437230525413566234438138784305736757576693501571285301686767330725698830828564487432923649775460720275816009210125979784596891547936295429960211306924466388430181391541163986610217704391338698039684385393425778854244372098478886093459590538592676817437283706367220930728130522255335605033695266629268127804295148348278965665151263686030815014388370631599664219761733097873619567093605506193028722140562642251326962112957692001320212977193835176162080187075622627686271948058026306599860133520056779270721493741090034006704129529226972093366075948319387979035365046090424242166374110978868705436164960782506375540547244233845995995689803913164381170633025665554239481385228565821379316905892993290987032273830139273621792038263144587317491825923341850508546615123814189627040266835353754973651089903012665251803626200062384298674526687742387882961766578940816902696664959714843505748990536894134231217106627920884866597372318533965129381731128091493761138300631655695168809656479371074840322372885064401619525668355997837305502549597147147885476078677679143382715871734449831094711313772435413925919645432182337002585558644451928548586315723090851680801647148489817704036531690775027584875222898251351464769391370312675319115114742931390146713100294346252878532110989403997305346265681987453328482378585078446930668209999672391462633920277127711164072183674710836608002264941533526562302142236062621801938807153519911075702277895444180009523744475192734652511729748938245184079584353769298208215077605135948343569991587616261505215823319596647588268025744772611232722958577248881876456663884499496682267359466442338909819222097473783189837773545745699552464939772789819685803096869117611944448815252980565935032126162470861490201946594537779314411613144150406356346655274641007343365590242361203965569273575266297645322328218711996811144856118085234195001015774516869787737211751522762852613732057883564381099572842888523270497900219405892305264751892681145269337214982367755478643412165638003262436333793507944582733019279378525160128730535557056964341640746110378412865732880905230019472973956287232499308403658418855154612707747139872912351279900797554556958139977894261837805615422489476990073478239867379669073265568828668237129885454997290109244162523277581929733657692362744211318847987563853834274883099932618509978561702676632096800913856160336254429539437127635353497579462829336750323209647443667888056349132453351701683069015618435854448712395566352175765718402728370743302319511683315856670518187639778060507380256306043958751316285692933268579698921721291238815909956049128440182723122576088406425650364812956549747349590303446864554756024574134609591411942156146705505920919805818930275871254025730757973558716182467833812489224874748810536454353662027095774226082555957182162718610169529328091197987586143298212971788074555466572597879999068001647718632856835159239992174032507013728569612361789179465840289968876911930200006002806934614673949613570691018524947429872332623696925360598617447774839801265393029940191610423652971675937100219352334598124585878850586973946979166146919064602200525749432346348108307548825319745166456110842002333435174722243142431051809812592085703256298212205984376298146314644309912424927042449310913426243178604495765013133090748111788335848320338484335444324256650182299317473923532643600851880874685675584324641864573475438014773840337361827109119049287741233841886548851165624841148953434945114950592780066772213668436088747105871502293362013644033364788991069619243687710506695202540437288574301121922985916585746711202337280099089255263448920620184616243044514864425792212238051857861689328083904706599252178616096089174571742505574578253868270907567949359410634431816799459878573659979896313054532567851431757033256009879626305760285537594756134788485203427634997814971251464786495971359123509389011471141600532123383739230292847814463664435882438280760690887167382955849422162829868942569913060013397682823862488166661836075984507717462226403971519664480173600698782389492587408008267864710902900614769794375504829652462866623683059843320436195890973434052954097901732210894280242653205279566803493491618708471433751859334987182448488337490770230950443740004597605783855078637546203257772666901752139023620710644963224767016959156551769873619616476336309165170486478864154492659873162527800724732328191152570014054095692816301973263672397793407183451983556625357717824307286969019493017506201302057363782731224135002399980101749338764777269854845575267083081704923547064787362363999056672458601314958800018905564044290043307790833444346429346589254651103198751112371085983212590939084659504818086250283180054220964787279364648410885068230737307776360956123709577138744771144591313381582652759958402556238929429084954585816858350606521760528765772598500089021549229850366549736229170644712426998985596513987209082880593883870092940230132732556447470051221003052638374788951566105369909025848423444128323821795519549034072803646914591247326860004261866346742227159680442879818366420496292789455924524876445499403815466672818897529909245238192911872420229580553529631364734983799237157941301957082248184270431174125603029507236854146914746009571520556681434745343208757311523766285522407940631839347092582548951873593702130345781651574242025433223242589697737760492964910949767095494919182854456205051865202804713516585089630130951003181743798828743877567335520895888919996021670292220907765067958690571274424868426585015408443122958032688170579861279196186769854625102415124837308698726857283018882569029939159293345772912574005699589679487441972152191537184656483233435440249473912209037888073641699150108706773501096229533636180211849671696782402820409346075041762202805701579437995445109088467607384985242264795595606921437124814502729861057962238216167651588482868084546966214848254868803852711255269392724669493800870195133076755387197754822323654994610156928597631777051937388903208549737728148311376453028068839722442822099848502403689548100311696791770392092529181959713040902108280460695585091773282143422626066941217447746713650683146978786522903625648482736169471536463521804415444940901387322372194055390087032155729976988749165397092423499116968165762108421484374565963110559926527824519525530090399959123394320631310977964322071691836728280448957309207506865634226566067569602962191079206355021361973896638689266739995476928299038325368360867223578458513761443995079396866486929354535527293313320515763694965524256975627410929524652852858479136891093967300164402033645028106664100296747015110849638922497920263404620592417133989326590206724618977898699273739945621562330612124385687076911432531387816291471853603999424517985380898772839181939609085264517019438864365662916388606474821339352842678677840663361806930510327548440065112292422444617028559927433325605260929144600276168474598016468575529422582074907947033973715170873102952110160382020357714671930117082329000891415380980695205828609766840306125526166377063348655520815384221239484846363836975766456542902041143966235516662822015789436585742382626051010413146695951453998576134008909346309800427916087832372529675232255691889036170326757999438553121652716057428002768615778545234318075962029656020205142813162588012311840373932488420126204118626033207489476826186298447368113040538454234752137775623305283478608188782761861534850370488889273586312419306510324751067398068109961849139357925956028646419222508894389488159032670628552292231179658272988019226562834606418006139009362381274207198894118909657026053416993846939715696399716278043068842922508703648826586694903430880066178154502298707818951708713234236312706736524779758360174952317224127646281629528820790773039830195661791595957633253507132864558122860931563735831328588824492969310406535201409994327044640127211991241548480390167276275218729628342018636575727703805613260667503868116649834439522651023292246481709937698939191920831248421336935863375181532795338945912738512288105750316908344312732144257272164812657138049442927489277303110285368974346650766425333734506950753203663978552634032432435621798199528293100892494242275540262437712623570027678954695497731167266866813065463765503600160031792874244173906230745806418374667897367600554615203222668966804048055686304644849332196823365219740464261322738562720589462201117906843939421061986260939544355410694678820705416346971480808818353302589126530375948371805097309445677980828773685158354647893819169709865758712149929492786124125352181969302181550042081192800796227283204346475862676144436083543057378317418393870995032453207637592118627318816482643030424908930166625317465768618908437236075373175098869240896664579107105158002971215215287020159466435940553348913596223742319999812546196660600003529615057638961141494994153397677438773818651894418990198443460977589893050919987834812460494593970106408799755811374805290208207926132182695408521915199984991984274017826876587181008105056213597085762922561397908073014658827202436511221313582186190048056845215248527596630305462920019040532958891657912151740908521891916709896350616954816622138545597743867209054507524919575810663878082667237963769885896961578954921666624758132089738308299750004676376545157224114335142211243283409408354004009983611405248076402417966072065443367923686175247501738300541611394261770201936661191181124460982581910545121939712833124462038987180400159668459617759217653241929101035858207489354587283744347059303684119388858718081798818468200825414637150735247834296137569261104665101002361955726283667892694555669929168083877839818379079712398516203118964487204968913516706145968996177359264273560010228427293631578945448983314386712607023257218230250030583066733989680522586479709950687248048301733933861628137368003140094085364436221804217159967328509049296036410856924394774194923535874340950632098141263641953071002214569545983732263295781965313288428781981491249476682277826824341559634726604294711952907335215439475307135141896968760265927155880028721249489634444434752361957804999398934256125231891814309257740879970355108834440913683460533681978850564560041758378054597114010530732154270185053807380865386343809979398053749494725608986216662525647989581957468577766427317694899124955912686104959288304436637383642603404330312953259616346684172887290418366436209778971239099721910937688443203160311425277309140619001967554510673153855137396868227136435666461636601679192687355603340038621414406077919762414414694082517545510929720427980013715851549756881911190288733643049637475765240264073738985415434077608652195279327457289609220870478639874751705305635510315220386582804354543876501406382350908064825257147293377665529797356589101583833820422253063942101368704939922451293120330274337040333174085617328953065119322598592064038617073254218904942236007891912892089702516601372504964150114530171486319051801604386697970518431217396146970200007797137332757223014455666208932740964279421566483128216272090442868547845777750890607751408569677303390262093670178907855869695558566170559896768398570497810021828004274890118016531732126938833314432802593001090255039805096421588971394401829601649090840954371743497230032744525591224725399821950206131595794174957668382164951282042042968187351959738993147143988805432766216060789875117088281301811545069867962436966065298826681735160920205106406757556679351876079454952989449095913315516373165933736527462194660020988846300627904511072056191991932568159871322038684647083500736468685373314274503229872346707279457641745050839116872527412022442522551828479735565734219631862726332986635636480221235320620995168334412297994122651592932923497953541817140734517955164130640037286544336221773741307198241082308552728064316940926577701920043809964633228362844760314096633663545644184544595770156544071414367750571848887897121277526113095758358231864536035015767179633427170574099742073534527928434698881487546255865941121831069805998053459392359140820279944459291814274473750837704275343272899249148561876525073337041424890013952828507549744512184151027156554807523339770500442641242756617310632913486639148836527314362223626282721650940581031726232985153249530748270660456886124684039275139173181570554191355661852826609637256263943593901840644261830616053507223478559340887853118848224038587418799746186016382776226354086433079959776927817202414318278799342257556685023077587831027395931601838306580454534234598729425663791180388150589824582263064942674063803475757130687226948392014221204893108923666203768974578066065054831276940417139295212296924791057358582969771762018755591598142031581148665438925085915195642105826979654986120805993389943355987613575523989493838741775131507564074843241494211792568409224635282181237782905604163978789327351834913425515668097255372119685381084396632447266437264552277981444333347899233770536311347787485823942466115472762704760034940407232503716953752988658140428771181344891884511762368462635797438135483616775894136510752272367990979304416093396473494820096991701857776074682834873446223249617193778212508818063330106007580186429742769483306705746498337527161905447892314179947240923586142593209816550105663347944364879544962816636628070544725376929697326751076304352627977799237504141800431911962043530622332056154509289212124344817109722476984712908259983688716438362558959552549386948343921114167904063005296436729764332167941890704714585292604847007891267276392519342160967618038168208183671869013382656764376962656833091904325543401433403602112258031901665387013639915873111427666464419344308136556152302403709439700098099645869059298471603921488623877965008205994356308994138481579576891007841741176272233062559742067152321030808893937957679096760940985326558450713079980205595112208793534436211717239569023784539297825053512137900606076194154938593016162323126176010308576945378091549643648117887958931186980707906399262443143741409579629590696380950768505363374660171751618975113998171223779204173981872543503715222553259842380829719015391298809452982648892008726100892821417020396426487415547075769714587382626544669332309328673642720438199077062043194377372356722533223800836128469414417100858483300805266467765007691042444474303708290236625045968849702857073123279664524012796914114114934091366150237320560261999068353328691808266591617573556909099305065329697652411116534345568138962789663695325370192375651639430943780237208011751384755924474374387431239242890018768690861082563943136151104542164846222678110801936266651175347707897578275080509684058762828025768691346506730168176421684962198052915509310091533806230862008494053856844807754420084763155572404417321300563761771851048241840834581593662010812031913573395796646206582797707114371160971607499578889676259323004200659568748208393661869107289662577911978934426969012334091895386119706724679685536764486364371979252832795718467097430559969030913342031036903600264743885480371894638414414507334354872320247793497868562570803426214368211230903067342316140263880506068565725337754575022516263156741411271232688433040457043963836793577561283724708242519455616061538530577946321950169928494329978475696683478652130399864026136004569734514268726909908391776971519100726692548522112289106059028321141595113996998341721727633114861962299677436765556944148818101595409986967365673113668675188899165073606048998974102189003210253124239281607795376863299930193775751287748924231859284516813725966863855094931754913602086870358419001393563854563321728322360564554215053939413066041554540082580105446766275782350575043157054577720243395729590320728588033524726714260243683220523105839392603064553387597934650513338062876846550934740425689020221639866912898427067303026116558220398252293920596448534253552541649877489849575929797944056690375141428542959208195003984030018755390972699682100524679196399158424512629699207160376976599884899148034246590684932190161679626561673652080766090758623641031962128629082997525088575468686576869600154001475178208871105664471648265218668433364326426617180472883602543054205638584500369089320207504865836006338347170674577364040055306404765494091613994814751066816944839997768764888146514505992447934417666276971464302680928578481567908595890482589600242775053719191640048921045557392624163871711809007683587220405527391403115745028490457244624739121341558903824804610478407049970882209978801671989608610775465935613697278194164655622535554194387667297613644075373235373629184912622097667455496251421007206702780135844581909240785151780905831987579839744859863076074508580696569414334979817113707541108977153107479918980664791218306680015251857264846646855397897890932866367705013964887948468875643025453308200843980118276196211203402920292166953656480242383454434632637276388059636201589475488965407185516537777071510259757194154446936751193187712967555976325175508856751812332673103846271778809284553291123247291478957185087164969180598666736526232835078820642994501547166211213767624061984519817130045783094449109870145906950459205563960856028976653755635147404558196627784090350614965462528704046389905150753788881007190876575985733558407060891322869730727160577529671655758981190969280046582375390411630713154928973186471860067367389543821708532318477252571865780422805486758698838278180043732625158259870880426934273808139943963174880948086810714291598109782351488527255071863949001704792761428545688341295684882754413953162208630034217315945178602649223204874206915331756240862031827732793764228432685719178750129623592061636664506658366838723648824903489960385733628066252599454037845178866117564679106307333317877679029574725084319482417863369305180059959752384192803925818004792294611274332892835206918667640725655081296978124649548320532718582492562773963107474057228685145742263409871287795725069047605358109600976624979469581980430465299675857080309137555300314925557281963119343287961111885536799779019611287897568141888811634802697162689353237354192781985470570717203318367065481540730184636898777479493982691284000305553378007439782240305858211678283465698156529086415505021257612971299428206934406327443924085487358906849804563243517949891812613142103662772062993944247415648523326113892588969029924480310636250885555036862164619757776445262245107072426020941203017898415574239306745107537081067584343091693371226742397910737613110215890772765804538258113052082077565501909643902319505204052315649296150969666769183862632358888346966948372739689873143978461482301002081373886507562634758248829832004698750932902229609718652594714738366042118066867727045818794726054587602147767996407092767550390744859120245135575203403085406678225967035966306441053013777778738385516013765738566318600801779144818315500391587771839199755431233554175809980115187437567407120565820343939296749083934619400348840943563804609908494319689599323803531982390761932526604411176662294671362912200832718522861021497584734418806426474279385951419133305795242910800674859195037890051933168104644612579005968472940914324646652412684014417222705409436649164187524788862024536996542191629257327311190127491511986430269673038072185682528455103797407022642171235506225179228703367328658132263112707110748833262409852241699021915880937529785845355050254838020763213718857404803456943639857102636373125153199069975036718811082193840739405626391685785663116017544824369763229675818628418015225323477255304430196254926446735862439245932329558947071665264383718728643869526203198080574882195933988465203652961058542901298645994342403688050902715170276632886052443748514740702636374121371954156056333356103288386367517143169902025484201486452120696655621470803363612508853888242504856691706332884449660224379354938821341394955084429365385390405028943733196805135834909504634176440782116117935276160619386397381734589160084965091127100032263081871415564111428891157580875915577673887468519074345333453720842662131391897987944474308150429343367159763399931848400487530265731179648596298268904686632535556398393613001782034302449605244008755843074551764567198328463998712346842865875921558477715833776131066471647457393881360326497467731807167011610826133351189230883720284150784500450383989130347202212489797194155574505599820075885283754065271269926861298733253939053645482917109910679039793875549481716177270794605227054316455151832485623513140600729508362184379357380980200319454468515378834011883304360479261695097353530411860383658514835320731992209741501228491297598727051135120095286676766262533719764959612885614290644807457956818558076787895939604161228971645630961307443448704508678085849480240064247296085440417510205664301782686198267565242626913904456431663949418970174932491356825825138761158739742248453258836449345398544260378919055339713053451100500014422382233718094274579292867521032918058355825358906913221747980265487945335865646358097517004781436669126745625222265553196542016151626964252275926536093201236432168275221350587248008033984862537012520348560236869893851167912728244627356925490125289482903865257711843316558907140513625138541275949175671946860375953270741833986310669509886487046549968950640556531245415451709766437755412372681544776482974083125643485341055562437292497359269547048704227801063297893465914276955573230924031168064689751438167986837616206702932474929473809451705488541555962599988003904458819050447145220685486980119911564423876954406214874250472758756887863348486957106362378945306481951072754892567133401850896282795614150792102879604991558729519771441904862127207720257005964934386789950826276074001464269107216584883664542629037572901193474865718224452874436149354994241273041375302759567228484913773090804478733399141895649264330485302593263328082141715573265889453378853362409764101904757157168419727060026228188278049782869536420986209933268961504986157283084810263868541531873326914082454095124663141084348584113062678170960763984709951708745884999477578697682388791999991102983252166338707757359405818718292733871168191259261014850432224475453619541984842393969681072412313340545965079321523991366599981226543343508448041734915490923442847743209435473147229673786327551834479229088765568415859640113113671957406236991963145956325273266921557072825762873253070220611388341101618537628442159491364479897981801187819903294841038802175169559999804358802810351465063832589957654748601323764526706524861761483484255899425648150490984052677087339370879052761693536241401103486771730005957216483452321889956059412963216540023213493613899224678700200794415517621734846794074423292827657212305112873354647625915822989616130042538535119575509193821310850961429819782026966890505556290509443035384462536257000101655150275829143360695523849465412684783466735693758871622960529191574550933871224051048715624754857636421991358166251891153625070817462472821959551998208006905567867489862479156661358562262631315239697700748742585273315293804895008418088214673823363196537068893431766023474992956579321659826455933709580744321574600493164415885283743761048857811194424013181919164047054052791716207253938141883304404074442361644695736543145860312950065767843778561927344148301415964063861561802641127272847166576930595253876405156051232399093366605305177182809866369732640320956713127391129891927258477473186414249812294729968561592628588081327056800267931250273774624854785162863083029659449070390035697122237055527555652631268660173420945449721331409378589691487634276372928961472825489349006683784747194426150065746887334613287383550880649213762555637749800562234269113009298451469164212974651353869753767402932120078426042699737246655176612044782974478406767626506178158066907486450213697789064179243907399822350762666981196185631725003411637712574653242717208242573111824469309217715416376730512161765581449299078062138325860645585240477773111442573753794258077944750744507090560638702967116065220712115058876919350485483657967913217060030084077799982624618981242857411623604695238807574415461183926207082029820207416964587935277561817179857666306444540520035318473227628389479525392021211270559491952237238678040690581592595984691694095421332159955582010139382686802815132696094277409114094834914492133097172257108285074044017298551674065042489204991993178900204891182398693278420886307272668388612810966069935970164002237936295883508021330942667980415463499234227232069977467186355316562037229943866316195554279160790377247153751583735904527982593724466760152218111972816188321408754452432961367455599638267453896299404437427070262104852901402744532073565244120384734782112510490807405290276778197640096671332327661555144319816247940176513828546411377659185845426184359390497969329341428487703536361337050636969732579934916924391053633947573578577482287242420513157830943776670656683448304896994440355330090300904225731567921876523456273061836303010286578675772573987856833889307261512559731896920631636970849932883360308068141155670141263769345863067774288170355017252428442908965863112780175004887562175437073845941062543083542494669323272624974840306845385581598825454434565735742815081701008006569650256302377712501609887197576407791901480905306870120070616841729295499248359462883184241351212275031522633851087899803365449294113288354855526805208483719397931516116074996638719426505576162197843965769763472943577244278706302752432287121857577592039198436358972069704530326513833068802615383300280859733465838773235247569339056648845252864974012953227265366833404712340010572338709884419104110351446888424678187570522411700307331633280908775887196874626860145866837743367959242277128578635015852503805391680423213346737064990826970571715495461440120918128723830899516325165323551766975687174503157699457793130473428469766604504011822131940550084320748499198744122554000629374265910808183506685339803798950357672812497534507721859441123828955219012826105006424510823018059721324052705333940529337276984631580644175321664145209715669038562679023754937856606170354152485900911038326461370971037607030604170932725955491767696124244736918129100971474335425383207412884869023873333228411927413840173122718120522337131816133557090187340464330206950225406674901842240704034625777362649458213101820656474854571620080522619182193002727853720319474972280056772249174142669342895686502087286795613143977262751067094867051252889668466764968839125485933553824682061075902434160910996064868750032663376809693867282528157806940525798810755018065592402565284874163851652467996347403499303971018767434829595695569297616553573576883601814983082453683571248152417361186438644065211654010561688547282882426818527202993898571134040057331825104183071522632441890805186744638050855972746223196183734292882257258381113226307138744826698528887710583731148525396514143906427933357514509783036050588683508649860033899993403216961149264082714347245105760177855190099468446083922234351961065058454968965116366217264632675517893070035365400596122115218201087705725541393008086359486575981764306976055486313788186313464127993952301060681770032187561366971826377330093368173854060432269079454293185757569843170880983143764742756564880632803202421421696603203806384072824368243221726926310923699895648792479177202527941739516694307031387360453340033024912964198362362318401192131807997721303394122821634308785925993266464943526592465695635145774420601896297304801154252986665196904178998831383763950536968567936202941654183389620335211771572267508500576172504451604741310723684046977667607255223600581858357701258626462003314915799170783035081043707699352158008405980124337295654428347789158735765608430180133995827321754531664157255779450043664875227222082830820258620568964035211025304364269172459671637154735247044772292622806966006427435023385275903794381896946114905231719103465747901974763390527868633451240420593761001187232481107349661194276109034394234888216252272652909022440902446099495908309404759642734737339941844865402740513771926985825293805534751353351602637652714569210757462975372892825826657361582290457856955864949901353526634718301180747075785931586014241600658000144749873209927218137150294288147988391616443805277994871807060220135368373559455281710992445640233062747472987244111193414309656370457007855704205453617936319244245607238594406609988880514821368256806344261059983185748780541126848546756424211878004420355748803975466606075024240949219770943125879645467906263047585648677831825157939657264032980300725294306862384789856593973323306032595024274272040420791411263930755246773003619061779557862662100872346562771818405718922153601439417871588505895918296458526801143251037335306988945105932604202450775097195403814605778333726778435784275600832758116844818234960816393935549324108742662336236023269915945695825911726768655621505495710061086053509034755026341001990663063872709848750626582826356512765266788303200887321938344307881835225055564148689679850086810311774468524409086490578485958415613800463969699304799392530632984897488601116888759608308593329918490793031796542457501896300003450830401637129497533214959538887572602051837064724003066944406058606253840666681517612690533458494022148641907501505808863267446534336319728630541596564909285727011345244713829355103859803200239672766793524764402968122994090376784935401265324064253462492302311352706788709102396680539315376127762092762875930229946419448832173338955077779522569697837523522125412004433317515426034950779273157551723843386943290296000994648931716605621641579827011362155963297632850866755346446188963951215613777532775555872740228360526654791819720520598290381656529545725802675008384349676976578493609059771887805446735677970228228027706829823082019406174202268070829401997338462995976682482864463302581135041387554864572712722270980965623577685951301045699343164091082238172533596410643712981727285709021678016895347589196306526033830178646125435103097889598036854568955408178419783510225053068533071910830824449239455143875807888365762197789078888090049965617803354854634960724968998757381939086810478270417055826286992715324018361887989482259567608210825712102941521757703702062905246619187261546267222926554547245328322876948774957176864026165710644388766556483139208430754498938797547516430676537780647148247707253378047555966805764461202607618150953914248014189326198647014792245131773749029077915391372064851958600297251923633619708124568528727725893776419683160336102547535671657303512546026657011639593466892908159378581230203531150314348281144203064938940485783315777605436084548722064441703759011469162060602547629430970141727067917148004237733408631212270242655849229479298845419673795572179669027497442358218406426427066635219291884688701801137001068697677626340719715751851206850322468223883593999131217948211295913423663258632700707665241031728667380833178224652843061560174680373532623433398459622918969164533516007077311790319630155194345682812098864478933890115816195213151542318380897270424709455008847335687364971175771810225111962587179293379041548501065165356167275806174059068454796352319540761815049598616387686547979504559356943480961360086046349252275722723563342302783326086638549327441281702118353218679367399487432653671016892550537977757596392834852254462511721031080924008420496373520105404164962394898008727349148395091294060500129422661162427371936891977848891828235770147152852391594598935047397498197679307307622264801447358652582436605554847451449596188099716904763472399712639656000401089330703747669936652832639158237005033506568335966275193631829396521642390652725853863726461506749414946911624897037668673300499773872975224797552824271837775969858196042785287024165833889047172690462369966136529519872635294601190849127377183585339238414024175755485856861815051456237855699238215514591266351739274068704020751648635301519568524879896218335773249199088007714863343538349978837237295311687361769225537420039849377424664966301487047227555116570156733745395129278006333109828893713024735065668866353066443608731964057723618409258323207467237798092404711366181088369412872513746676735400519827750070098762920848633040492761704813789387116160705255974254737526794668664518983796623104996931265633795442099714082557918470337662181851798380946466369506758051201251397610251501083768219784497475799075544331327329823273756105808224074330936343377990881984488924531172265699400306949027734897971216978508541528935985226163785088878439090460062664319545019196712529211614603374158841716517530352313168247153825627057025145950478434806605139147744028297677405490351763699012928322283758512376113012837494303185030370045811016966959007911407308417124828318880380587104253845178816340235674244484804371476155348530521232750868999838301278852464919663107777717558718378589848048064456849622564051026973411201264489057105574282854413040154892169670794084234807382308615252843731618066090754807151259317314924124266670900461086346389930096377200287052212534658746303951748030293961040932247935247922835391158500162693866983779419601247954946181212579395000196138733556497994570813718889788937952964251084079934333165789006226808037489460490089486523052300432954210594643338795398255949840983298703962470744732659785226697263068405774187785448015704591569141425434349866054390828303966941593791175234456807972892111912350539293403226833839867805279660895207986927556919184953112061422089135867899336309189134484943708755473785965147816515618245667791971885189310303070941792473190318751505766534865443934857176198700049055243109977183274785592511843666764338616412917481209951701256502772659177053624946877912217691159923607273695725578388682786708889206804063830533790372473527095266686223352236950108146301334839229263942032926573791010938885089040527418327767877321348166564131707676187683316227523627985766110231357970704406734569110464687658151389154129211054506378359603113578618951908849148497759181657469685976791192912382645414928745032360726457100748985658846209631448505013592684750659905587363564535992491134922535054906998202898925172517958915639323080090473274464286457036144412508502185914784076239030822830984099964647349119957871918990338620562168203934317343659419658761910657114863401655428872136186831146811487852673700554981317616769621756168026115587998711572253236420971178657633213438102965657046423522242285631361047328742807191933051412812010590550925682318472580023215636973760829572763234908129059123838571523674943956412746119030552797327014255233607459564222389071630911788721593979502318742217860732579489175201638905809394391315403648034801412134537946128260182620584225546197345042439750631651025597088544234857514677417979388859417200069169785951346809011840443529510157552857543499717366542063256999595622542100364589967394034242191984553777825866435606003695842953769431915898701984075503492639038630486490486825767369265590785509644311840201479490684674225094390848614984296728274602194686579814800015072307598709374255596147909232993949019226728244636599352661857614609448868029373261298806016456740829592318307711610186460096487938223280344727898430529268339145377461567935624311877055737451565239171219280409797710507740392292539597446643495667492097360653852495164205479348081120284144219977676607110247835573371528841437606920509433792921527889966781943655775997925151968930423931009410286848835487453319425094719404951275072792413734243108467881421134768529103086152151059292968400026809422669229118344349659374386918019832354813733032324069553613930235194207370757857162096954282951606158942603077662127066697492157296357131254571130281034107489645369870508730906304707036392004486754843014578334303540207907146972175634323153174006735295254270240428061135849320384862939979386540979086114938224680122890518596697008476025726555533122466756765487063873832889495872046231575220318999079306858281439916854483379909358495307762773826432352337851098311534878714707422998743876310358118139337880825692122435518167385253924849054874066104121009736612956292759920634932663872395711933976920980796692691784794868759241705662210933811202919885062484430589361793236416898852920974831230037980694095648556402482916541562132025147201730010112275767762264441443979746355601258978314472478432587755084194251656621393012241845874208615060642842814953166453416002294251071742371434453631766671544339355938958089518018594724510006755831636734185034751747812465338184747533968098711785574437475272479695189177045203940834581626786745984907204811072703433029899398465205457357060993654676832919208451666289304054701192311017269861168133273256431713040398349692768236261901851573259872324459565905050449403374219859681308946366381724181973891837569894450578104117738863303281405342620816867055218919304092775855417750994428611015588080324924871239078454840773048529650169245915807893028570947084670567922155849179924217428862512789837065290163096949124481209937551094659087643728347637060200157500347243052809784561494454512623318078108278449344607015612325104956283615374311183622948084921366383126856553895017480709158635366878962162339919942590208389745922790964713561827066029961186785153118884751667327353810964654472125009662869850425681182064495562823141534743508713052355777331878678521177247574693164134871755271217516850839966604123936616434169669704482053801662419870525215888542906741338825970078321200933043694414767525199652854285237471694410723410204211528829213196312427741765294177302559800931752631963481909617065293328630011201014619339358567928898796009971633334470956114998620460758094222926436666418008914018696850763537525735562133140322629162320781554776171526161880978392973289776018144580329328512566270115505258657899813658819817153291857149370372646817152332476807674417090298804926971032328117085492430475507879802444648705412029411980113680018018377223257446547695960059681700686366984119842616591953401363130297780564801243645193605753137859679674404881597868550249970437590360950290974770666413302900672454929687417074297506220115276526636680735633191942967487620103888731993263108432565407641412290460916035904862864970404617289719463700376963919113401483284543444221874839025270522454867596276129377210153380613692094265543006535414655413157269128983431997116427616927984041707811391791230641777673270655778203834458754698839052504674304577057067411639957872032908897258270926001319982769831838469206546259992462767041906689887661132700493745998261010946506691534697047331406605007021781184133831743023209908634908308788982057088701386219110714846428962917827948037783452310959317393341847387908472294697455044056915927631676196772394290203720470517319024972026873701111468604794763229477898300179325330828795824517575561143250067307595046736793073020171818572836382118163534013678702288668015743963481832430556031068633506731150039414395127208488199890492162732469635221525335863955244456245415581823589119025596492243209801662424671831302382441691465403512738747701903290939481661751452976285287252089926869769596949052805060169935324979303641905299802368666638321024088235100753575607836579340317294700342604963607036070642091009365447956183896425585626322132007945292503477772199627037842034511649681723585041526055659734415470736670242532093851436304257187413019253069857674181439035654516203263736532932704547156671540971321653521697269384832516547791468834186312036890161466854246021220319213418912956221672309827095884332993543153523661642170090809982061053593545319644111618623563379815368954969707499540310905281274530638623267104748780139725505117256805761077274022504827166048184060060596040487064767496480044086532265188999427521303395109800469693688131808478607806635242326567970784269754027243897304241842537053787322566836088721799026378830016088704944878405728730289934975744073620682818213773853314952785638779489861962176723602357301023487317263696866154598728003326340699373375803632048596648742711880102391257442606196077743489671279414953030304814780870431521385846134082672518936769454315032269366451498850040671677674825166137410275208049840400011000533817754966969550831881542890197856225648954125829996361307437874069704271007942075596314951514212799128943529310921945151820474334358860745495033224673357279121760470599212462183837121014369655751791067764630037668892393343396015055479168105518229670612563709824959667411342495964765923766240536836845275315808573613260064355493280138846318040126795099532456331171548375425355723965677722181917396676202166239126608104140937760362375270059128613509246167086896120932360537857893022174116056117698474454315025905021373111106923037338308960737578643340235666322793856122316433695434108379077092370975030565535977144582606487461769864414576753985478896956537167627982369483435517885856328523930995501865490496633005420227501419550062350619938770803579349523677131539818180856953414591515713112896999196139696348311135183336773005077220742222392383245426809825342872919694493443731624605134394266272096260287607118115265316409167182048901286695564888767070253918806119743426536567278899881453080298573675148476159253702751388000551052838316671089136615726647618590363355586114496683569519103988207131107734304745490512698808660567263917734958709146704495449744074654020410910437637701678458767617123698387336518134693176546236777605975515336386989372750555448837387087988541126245641107643057135105140367860350674830293451923466643157237673503074157342745979160890404313937915921242415519796981633601541533313946544249459634767496035760587910395725570663357291063822120526468163444182371087877627080294805276113591199391234296035334619608632299107662563536529222204122856206992354373546016795215181339192420911036618832739372284775956060107585579390591270071628861190699780713263163171416064256420194302241935372356926005749927067919361357086541954186345222018411387321527514876116659221419149192288266580472628532219454804656349443620822140955365622664509125250561930248060853599627283651206539388696609533385244640041187370759509728241308232709310060054605207816581671664653505988768001956899381430619633363193375223166593354264381346340982169373608276748270034288381318472265397751999403631232171428673321696234208812836985850226759576247837382719492997678790635746242254344045274383512359945670132533789905102287464579120215264763283457175623575093499970532939003732858734626173890051568470276743756678003271612458629092092310894256168106662879932865193994805406593629117418705065790145115909081380665865499703459295926390258815319334775064500141774163413048590811867020785996213372552148882462771345599945647625164408461480545021995314383982863596789989759860925623657838254768502893443926372105572253991220917751616930593840077131102366181409473451070396356135541105930083725906790571994132270769705875722415202503287676124371918769178899770638947452066712924816087950844159074049086444003943245365265768942409489710913383042483678298410649510564115176615022369448452085392157584498526065349953921734241092763248928512417105953915111738239450534343624256137471084486961249907509149030308749349452238967907104808123627996952491093712765413997185729713176071873871872361846244387374525583136519437023474324415459304734905919964308907525098343332859328773225022617569532070087275926963918895008856130887876195348370395106638380350316994208603872360408545613302438969526758684747582271490622654144201443476418669265934537257754614934641854456669032515378001023326339168683799107323623333840333727118974772488740092946589655897302359656638602109450574118735709912653601145633377648520714910936739104466500776439014626790709433896860790775682160559733813805932679471490837396191073396361499772911506072957470303669216223272091744206384128720550338881201201417560718137168236560884221241127724994481102195407712568482324217795666532796596743256241558830978941738963860278625869854291309346982943499484424129694761756273792462144618683541667097124440714192616757827659702303187135617828652203394193408633843576816040968735992628072968097445515727455029107525245210313440479522179165394146080357294525084567283393084344237791103396293559404930883415594209796906246811505786960054672740389171505128447170643767379651836426860199027600282586809850238312045685907693618147204806842119912557164957837169233032763670304841922332393357010565451858004969757882214902398493298873729849244015847446068782678547398300231861544795163218009132478793467566097447129506903631909268615112347124352861214323389098065952532337137094100244102318701467909669757868956710362661778176279713032604210282490978862440405119430207497807731838325499728659420763033214917520094647847507638047345247784202019506954758090645339300683687167854990220709696727575221246283999848915173033555824328019376151460775270931673200733698958627423893529803641518828817193694652881847813695667080576286202896708535866319347782317607318205428010857408455921236520408948872296769502321962179225945812371673674155812911595112109953143495977593726147032367882939921451940220915359857898724531209178642291859066792648453290094008483067070998329930207309133902341980978759852355534902980043994195723664705904072317344956301275842853107967559419638768225320465670373287574990535655374406518265002260421055401288008697299574774321614331292784973487064549018986900733613981002432669927912276709788222851497890712840963543508840271104777509650660913945591507501622560762885890652906385661592691472181450281386468206733131650820403539763435724312937113946900031493018959493747770091311870503242570622884215436943804273602340269152271626974307684758028638564333688844737855763511529771649680146545472276094525675673441587877461818826173762890819637384131879096503453393323996976719184666871455045718228451016888163056180084468347442649884536197848897111698457500923287420854632350417255813497906686342404775286715227964278039055140064208099308776138748547011382987819154074921791092761000554535160396984397359900062811622711892907564433437349316703568994162768688519998749497875478160779176482160532429735942435122148649678490642521235556859301284121212167904778883584995693306918844225921564946150000940612805402825224317184214445314942565068618897110959683207144519533142975291448338927453849748424426044541821516658953423012441898028487390982186741513457738125000764105194456037759379047385390790610574003608036200607001461580406233353264573005153431039723639802255843016672327438496542741984223363604792556609126269053827546894398259397580217847915191730357475706578317488812378552087625044855913966324686834157375490973150721360974384309106055840318819270591333281095706437255849308068352262753849155747995990317007456723947630893151509778308329523751558451254819895251302886779524496834565515702600780284891513668858124536753946160142455403384886209330284362265707092026387132836675381940171188094380413687388830071085623166212248032092066972128418925190438422144471999393599340289965850559159293911752266794638867113132597639842833534591889497667765861576272260933083438497626653206515106794118660547149153418391671153456134311602491842702859616141169107798362125744318667759459789628420444344238496857095459462101060204451335169531262712623511765517985032480452293008987540322450145894443960496084093334284423233702258626838297583795737711771742060904605806903387918699814421544938808227828773441098912348824221728853203041331913921419074951676297062688446817728179668980690932414301081194931239247970581445050502679485262805264559837874363824363234049268515597245922590300235140196235888676827066251476650833454750719656991911861283238130854239543635324818180783142423485349289605211786243077058425368955994093839491152188819937264562400807866019624346894445714840390566052856613400530282030562017872247993240410443263040464655417638226546467108219157061460241919673466627082851260362340346358230194690663918245355986335581358705228605256433463788311099373116927011268362912701273927345184871055378193313298579119546226675772369946217852104307294361713995318819667904584246018827603851505731283612426760869674110714877425742176146693752364734805953108300682335891673292403359574747161669650314663590811772522310399758611673654783201970845626486043276571771362453879761517562515552754527931588871625498975596807572783225470764129277467393628599911228040866822908481897818091658904603899314897206897489333231218165618126629255506679207502259018991080472719580510354765605611228737954546588368120085494606785991933763730943162356582025343140915907717578556471571382608589904713708744295781528454888932334418874487575136217902976031039376774834435715804127588750148013658280433402939938491519575246650320035146572054905844446244596550902967487647498484487976203149583687017303517497828510051248053507489058354436827073516585372031611732974746551573751093487043251249766257615219649358058735470513100767491388022189731653971435229992533496619329404533328698014272418358744870506447541603633182230270265879723169611130759623577857575887009801114754987826646335699805147034635042171097817612902927017245765303915098982121142268927046035083181159451069308795258975231943293490473634359446689373220979415930396291297596862467867546795242734374390748655438039920134593262272247177927047538065015778143121758587454554980361964344805859640168669043277023292464384010050958396319528488361300008200104338367094592216502135376434891576639311726561138030794371296418688084149623752207988066247875364653153838955438882203241851488403571012075522312405303750904048071457938309672258332668868397804422364471795575924730380780824113259850808872266874128213146336727907347844749906750156853087223912271372282545273555760621430517371882852472985981024690043177934589430125667247580154055745300761966561946714198553425288552464290437026021474767919464905506715106483957327422786169967409306225235984934137578925905207197199766495775777195041345581967984399843458705549500676567484883640593287244065763440886205834338342924653739849704859166431874452465751264874994791200489711673107083448711270890589561763368666184685539012233046025437939696450840061353982714657855269897932012560995814961772698911622884909623686047827732773401869621482219859344130586861131976128550951002432744711918911606748162996586868236297727014856454669667182343504400556959636629304645717715010512291970492624219273011977353080400720153437509244194337532894233979569360664663598368928142149704480005959935519065902295108740064041868853104450176025412056238520260643376700286789632527059530404646640228942704321859836707469041301850657011958744940834706499629062173779907790661748637742446228954870738372111750683559251216300886816546163150707779742780067444880016798626761435464677849726838844646966443656172073364887729001187451961157805972345384289112916692477778216766098815201612366095266192087087500896550504469088816085550058431907729710574755918051482920485161270775009721391167542764938491412251152816357928513066107584565857121727709285517148839818726543871669800365394528480247805584342450765246503199719279447697594891011756048590906234028686951432492216934099108358546242525200748259451885399863098158196443547278340936224156794347627755719359722825269879242671404433500512459595758493248086899244547845388616905027183137655101437375835148463453537862821717329064980314223028600879902843841866267693298235502794128635908691965844645170303741339489903515954268746253769710090407845756615709150944606547534273545960706514636306744363517660965705284132080926009875606551008994783691145748763218624423552767078921604204808833094951424330887633092773502312317448504732980777803583462068656209739732372647352313071243902758655875117513513549736612734762674577313944136576804836264902419451401646176503423450364258274903657229398857894755051629848988125144232361070652590503785817890384244186359567629162744777912872593564996682587622112877488310551567170617275123625908278924022987455327749230469596337597871352169692343992403989391638402993012000896552349639535244939373718072935299493832628831670212804278692684133054315491476159189813977029360503674930275005999501382175949184706906368004722523647753378723672565168020380896947811130529112402148367162618948341939053818924538530524659535405737047529789805538639733066303496244440749407392262149644926402923302388780528618239626981612301000919928912811002071217058367857021696900977921485688894404429360132454114445451152295731773514969673258944580162484614507081802442205392820786619483383543093372896334591964225893418056965766927269862892155925936479368716107391441415439610053942543068257693192155043252061369852486329643677040507473019594561973483213074092319523757184034311947862689762520632298394346194786358829417737180803933938840176332991625773341753732448526350685231058245630291681021585077851214832850244234912286854801066649617185083534548689462057782040281352429923826947221502619887406787175964686140930976221343590252140085518104135831676102056076939834186611688088866069678840123868699829321822561158326464181385653613509952071195987009404449681519151703989282691012021027804441607398254720021904089837036763127163590898446479287076489198093492872835779810848015880774403414105778294556956727294614636930683472508878059248955622640483115317134636638581245728893168945806906742069342586349493338806384651076907555885021068902824351106912759261827406866554212330040268618808526101550693132494409192876853966017592342769989210638712285946226707993907313590364212347688402199989042994122363871731502259871869859000876636405158835303874913471110697764180421673421262410097685061081416530371548755041858680391971363706107823461212899143494432238869243825298694799920636310167983697996165096871874874967551398743702140070385010706486716261833631865887412132517158869496054636913357992409010326161839102973492566097195653529453895181029570619941895969077674473431208248993491112457564186862272232426885296975769837700821030204404038048436717040471128498222353383739669458235542525085548487703386892029080466258145985464944711379844087084698690787750376393646462802934446926350832841911019296295870003730700854283972215587540979198056473770848355975449533576596151621306193945550628860852372402331518182060556416420228229841543938288884015096801166265598240263661170518854622730792245251163561029993017105591466670916659871504523863454477535396187522659633278793890258152961431086753094260575867725321247036952540765198195768995120843737454102961600344081399626055981380803538325189155602795009526756743714917499707267712242514970866852621534800491248811154205426951910752421494364102647883346857974843250934376215976114445472795540224049806803937077391350153292518107962893026578401074402262230289256743328104680251039200750004608310597324598011938343045401062011169995162931747919944376673668209329970131656017128373079955701261397861061777081761217098653606791415628247541565535046309406645388930161275964995916505110064538656123556496070713344951229822876117463653556537548400007764214938920124746507982360353310976433426362410489990877739605263316400107769682778438457918875177955743099967865727288049742573317667461883886400393538372219387581865763781855555287673192236260068629137402988210999670841425342985797954879524577912615368190518458184706647237401227011011159745950544954845462423939736167016868975760702253107738438440527059539766361941049322595648543878517483923237070347687165941043498742224805769794598862109914842286962144276522308171166895720297283337674150920941857145375490893057006710737640585259991350964713122499878596963550102777676558999722945021034031098674112177727572846804415679821523759178381972394603492574518711239547047793513578026740788429133242342630204970172485214578939611065007180052685551529872532854868402435706719349856690348665201848926155383148195911178937162670730318710117392554025729025083121158866825221023301289138670151185682888386997491432932306712768582996257707932888755013207182034447173338337868315147227693906217529225084145338942655206266075680409869877057876886390578995923004132922609215930827246823270875485670378256732630315260213214582092368261127668398525532713497752158876039902340113280561544723529733094569842777352495260416248667499698928179906121078198663137447868925515234249844478125346149288894544525395804344980431308168797722256090805518530793043304289231487414963273803486439143455263123540637222144239831102106014254294543201749786332787310503680768919809688305714871733975515192256291683094096701305339112678744218345424308856214371405740159141024388357039029207449273136593387328521852502942696665375671159623490812909869237960167602928173379621486122335744759148328590930745295975188933089429356183851783748596638486709359156269796339984182623449447109385630605303813408873144125171815406451927528628567724615421140171622328050541689758913980521493910054313843103018089277777375880577826421538189124111312807489798534955601898918971683430393371646682126358201229462140916955048990431260841586850184187214235196018678337061159136189141863036709879416997659721878586970081914188294695417979633538560232173387222523599042198080090499015580687116892254314916838609215920196040468547312567977189667589910844523576116209711368267063291153034274693569312608294700969695358267663025450308768798274772548254209732496236703282676388884584069424623912422887431089606658373393118913719184898296236770222816823155734573568797917622125505401994879030247943490301829302313309867716017198216894336979327448539858042110945931789843429656726852927429209512464864756483895061252509055531737671274787316503574594752125738849638098178029580539006037135561770101420230229109706639249149137165308224136340987452393215103089374205288606233236674038750445446016752765663850970487366142540944189108426357596346569250031855804138088090342085130457381526888849365775476516267607407329792121224921266169956521776629642516393357890394921864016824100583947813411082001618188334780936801458783366790453123419497548432529339040409335415319504612582473272995187404737025018319441258980346310608005538931478417677750129822376874871338834572878543380595422435523066422942663457100598565050209994719429526329348036438657159380781406637003471403135381201867843497320199334581940274796585909307187616273853107921749237122620383016980064388184977859418824984138300805670901042366011627004539918385785113487019611263417742184962644292061086378684512733200628517577924319926151606415324565441902086867993733616725673528815411777093304299812396407009305539390805460401065585427358756935789744338261915024266286663765109734649943031839026313536767787882253700142522316915898097018293946298487316595849513755087462281342930956996307576957827035686977046405583213943373744818808522826863482749199812148260690934688159518666682877598588572804941472043266547604364007956964337778826320722793095292225994714914476081526711795837235796312798234124925017702760419954077617181366715405253386931008639080189718608703324117341745148777682700248357567541673384062434376364923479275907538642920214912861981824075869523357504662281950034981637040339035342980957495400895287550207476920478718329411189631754219918082841280305904871400405569831637221971858129561570046095846112815242373529361448085199847361701581424888841389129973079759676363896382695337478730699978584840229151078370372034151767503405751174450022772582168472056587359444566592086053971034423560533694941581624638741388731395215705692790313921057422981730544503557898188156677635759484585199642853677497737524065922496603904183877476260833535581791030062160649844639272549914354000003997805786233433221172049925518544607513228306570590913124866747993370791362913954513341199921766210327941615382572493460171728837573111524062338083707918379969194379679916176085536775122139250142387534832268258701451983380346932949421060158214475727767707238968167099231289697234158181198423096600497182856460185897298629341985446224819894695096749264602085095891489707797272357038680603035406703872109439774247995185796351042702462277387260909258649978993086305108937273674855161145098592803590052095454720584158327632483476845434551197018282550733605514396955383585969925574362545481747548267181488035497697753035420680168183296341740504023935730093952044619556270472114966872625925305484290401599307980341268171840477632756367658984578240709057357423569242126383757074278397221342458234351323689074354053670731116257069137322853056394593343935208776674074481029189470294864371825661453579037322143023200748660569735263256075816296638695145719464214769382796638407703659274260149712749804734474757418255617739393095558762174866026840864059984185509679585115009204571834895292518678685586900359449153581699863926311164143838477764258366455950288561354363563591384357687553544732572114563581167789855759077416014679893843200106236948911834340214964432112246654246161886872999094722656203736894595955736606482361481891524579889437381623837556664734356081450462997885983370487713852364060079758170072856851272921751076777648371324678810240553904799145557141031584425628204239579488396233573877775181071673462983759386057988658223637594602635745228281048801634668194876966634002246546235406330025369317416410542138954251800291154254567812383266869201804171195076394596919321049978502090631563937340636275116021309940465220584245668567792646396862017304887149765961412577636292642679822899880148401497419781850446994321282802440578900917783690963100215019849660735643726652950168424404816448313743123770725296454810222757461850891778353159917106832805233875867212735410746561321957595560716389730961743165980456822017490700977311572286454807261832772680603146742078883902256086980996050297905682369785973612688558940246407968658729729273136468295105849792815658977999451837482493217705351693378661125153790298037941490198989127575098099298522404463624734005142917752947729834867971339789360224647063938644834528943256190365248572589821661598775486654200075970043711992122722742722168961937450374112542689340906328130854673924990191817050302882770821026733789498688270441453204596539210804747917209397971915311675162411362312287439581812040661435845349747100193575191484773155771336487501289046729959679925789118453740815037892625297316106774632395408592786628111491653680660346045716257503774599035668533992777243404386417403728706611996216401838487257071292081826302787802618497947909248605614223826358768143047102030704198736052526893481456021965834383597942155660136019874216217753981405575675332186290522594576410657742687922610828193020596372716220563849819257803756750654156708312924387684391413922953450510301767461005387177474328175409858351510413247615242954709633035116039545704735220906055160923722478774803104157914583190229166491205593031715203420987180035607905689130165510733059481758939416823202705227905062855119580084749043096178138687383496754274801012968857410337818986223992197556964318575083453262307818155919436679258808463360244452953309025475863667928310131208353041164372470005452398931211485622068760129551881720812651191237723198243994659678900635669749727825824612270874201640195064582787227214701445926219902994889085503622420511283878775654765284511814598138509440632918362111046954391452831157585059267107331817547859287557241432965289962554357160285829405930014197033115657316372154981512193602057703507487621889005444726197307810417815882576802766082045749032446803407795703427784078774766646893864223593001571257305474211150808716682576993281643030262481366350879415152104781877238744575988289498514338406757982387072638460344566538400540536847476268895619852891430809176030301359218356904218424297928106273622493151534431116386457093041961543795080417783030871118318665474926865648020226011461501063258732091889923089897683185844879381185908549724707685762133727059487572782643843619393630704399365550575785080712461413612805059143894382330094373518035960105054017533656833364082062327696031980451236445870243270382805464235538534670963100600116269924471938380561132382781825388117045986156598895589647534479412878676614029640999504427234601370831899819110426426576703011707937847640697665207234278217273120101386906595033414796306098114714163730942028039795248764116325776099055596274248978208999440061157882068267166950670545253694986940839475382929790222308476588679522516626034551781168684349478351329382601892954998194759744432051661828167107319227430537717047073322523042935802029758580477143575390297400127036439593982627646950544160172432946739926818527337076451033488176068098014458662353163171114202574130261193094233658016379120008214729361628428039136613946087215130404285798936389678214271130297846791670842275637670761595818989863440307501865008151237231960879069613966935106987718820684321331275027731590235143326674657887447250041239722898376565406372931588115432890791092359072998961985080034744966263194012531674417486973943784225550602175478554287160687111762988096387965891882452829257714942354850216238369704377100330637219335156680557322109222755260233528487066055744599345251931983504571754706577904176681782400653193353954579652642721953407342109064456075628932535815487853752062806722222107430137272315008959404260389639284877118091347711138120640480238613223129442678010181363160862214133590384263479656777819947857205144275415385182747878762055150256491132709781703086361250770636812484838456656963234790421751133324276682663504798267026027847791385343452480714736489096441835510601031057262895302872742996406310126260293384700015393689999080634018751468697304787921479529345401779958170218410892717635842180448505210312385708666201793935189736925149430219248382018139563508627302102529516206651164100452126374193007464580605788589170375575162926201024078342265775954970213385532422893915355313648346991142263582209597724986801427011455062684009875116578253999932848204686669375449620632345864974429052590886510916687958506949983533368411866816055966931502488897909254713208086507511953619014673266342114451000613425143183849717925458517137167349799963257348672903460304465527308700563469987029928133082258548615986933919879845054256278971994216149806845785369569572453334139352738389195511479962282304002593876816800132181367881735830928094555597890515157697142920407065734174633849768382614191031730794720835854072529095649198396928453039046208479908178841757718750087517293789675234507011852129221514237989591060730055403725982837947012598220042322932661175794704571188330094961712483163184504901722481973971666001306095720531212206680287856327857198415261291647333324472852900408003839539089465349760667105395804412929312917511436658090183548875256244574652985232736047314090439738275657701354954128635499006226720189077336191288062543435265202907403214724772533642928064749172010739040683228388224991347258821795103104458395842316737537259419781221804938094790265008629528124333997717688298797193373419671670804162674270466316119202182457162745936011041163068842210904271664172517114661982032088753552466657520691449863684711978314195668985301086849828217517206242970314589898326761546839831449530919688524341159592384479652578434721442817075299440145631919042168733214249519900838471690793643334319665148765038297443309957611898192706270066105595418025223494926846683278623428199741979202243116753613145270650399262765136893731183015464009062092524965189138915668514402366986109308859655458028818502798715948865345140613271177787502823915401709142988150328550836594564602170670446432857243494781214392583087350628173805643982812955350258702703933166998557313182029681853353771323375865201789131904690321907613299472285345916023445096267276277120165005124017681329920695400980672467250236820227258858944979955893240344666209171691309178970226453220166478938316260682943016930350858613398304751996708220954279391428332551923033738771608892477972762006253182815310668239638410401823877943410774763924189562918185297604926798006286543195647059086935295741362428558384016590139624901899492585704758826122185866078735561720885837332409423340004950209657636675198757846265057033574923713148261890834828937934212147181238177930385572569086810180659727491429588760040851753402686078704635637477057731387741334476304177283183251247079400270186042996451575453742982863212918153905684278937937122102270712292064529061098040420781128564304793107894462115211997063245283180649472883802057770785541905952578118141104072398553100639047740062491003455150147737152270554969865245618767653186543234269500573858645065817733238341098495144157332210926166239785813295328389080083375389355860897750879745384425376556660741121617644966528856088138928101990242999648065451321831731482633458628859872698175114049480672613999143829539856113032071411639401874518054999293733999928053559997338465462171713988531002178415444250610518120756595373218212956385629667185014794341186313754184238229613631745857701876889628273956936284602052423322458083647505633076850158665694438744537222419590815360353253505171989023607689130067010857348519053606893910126704274587394098513837952520322784341601878484371071818282310547659998929289449294507221405048962028323292480557748494781934420723423996422104066060726075642554412413627792516990873010567098856772113669635308386144735479251589513509059226951909546499503972194884805276916504523766963197957322860601037165892286944006017546812341149845121731404991490007853953774646662310350372104664477675082098518404685182024393066935581865809495005850095877998256896186108899533736903511719891342817634685900804339819766568680753261064052125822094259223860000944220913105033166115388479718674350171296781446473164968484830709106456514419898153937775509752969010797140062012534969454603304303341854318268710770492587505989987001606593012332174144173776968714007552932009234671449794439193477068346399524263758037007692424466709755849282488648212538623248601184575970422932669622357691056311060326193289548307463441454793554566621073698964835398496622959861971924963417939202958597228315978925885703301082458985781045909789169209463936590006061788435618632350769649716167740773294307379096345605419642233936157328877869339834085801708233407757378797243329224086884381617241104961650021174968374938680718038931843753854890276482002330054272849190765150592177925140805948932296043521571312802690010786779495377040253654282460749780749512488363660221157357366680269389155616292310479231452012340088084093581074808994526043799393966805535586059703412006417794985659605608930327852044366681377951232865583838259739512165497511579994661449166662601691861034932660362728396518240597852838159841523935188036177753775771214201961083488372365473601352444749197909916595098117369056568268922079909155651639701164889422324824059267386522601683561305130162361364489706130261493257877942735186793187801856913743276655040088149604527999872711823802904406267577887326156617840295215659585373233010057269706118179181915330963766920811247236855735926092466286125440709936451132519585105200116109168729697103869164826403988516592142692924671357472396867504588418298416151580120417110157723173679269917741417226844063837461948611317218228897914182570000292723070103896614249172563271174530146535428206984095510133857470532301068177953886119395288780654766345211903568706238871738752096930279785777387963763841364165235735579556062338653390002554600598381625851971064697098798634923671287897012801994770073844490212271561149282942324226743797687136247873431626892363821901111812768592554491752728444292388627347729281648806892943879551912389158336550858341625394150782770673266888481985049422902653074939326465543334637303050758942405247922477764375196688658181545225555574772364480767652299915979518284341892392522759836096539540029431963917611605906941513347313904615948087186131692607473365218319356176552348883667918981351402826475417109286287729565690496944260464039417753767260623275982430332590107897150067567734732252763494311262654232445949901986217997938696563162732504437110574740951039775248839222563877799741977514433188316298271204405551493406303142544941463639776670863733446236191911004933919109635776702956132084554194530531881122164852526265810804063250110048637337972170434424909746129100394738321064795690146885214794095502177544342998688359737268293455282015368092914212385072725370166086281001810499160733520382082789134866567480073202086193005932466400950418080496847159076662048981232613730854142692271931191984027569719405155368658436372894493571927824743323787559581288624865730506150112657862229865051550402255907977799511581546296749740387937532010022315615044809350704085545548551760494217363339792056104389655184019753999917125915600650264461699961361705854473193932506948546222438948863719047977390797643208651294329198249002319228010303602984216426289569079947835030766871280395917087013329937896021003481692616050850497321571991814794060846663402221514187717950118511892214090836472780206843292179512107977041695987419374094465138455488497403923425477434529675772842426945126555799749584793283933994784939426720199135487031033979801980592696592104507656515028727974020461349069710448925976513215736807770449318347198472372368043509508566353112990974416836804634925558283406189482964271647066766520082363651390167918678786919584605906606332888410529839946817410350761773836780709279352385021574051400105826248663869225671730683403403452736961771049016101568376484339287891471925493020633201989037006968091483599622080325353410640098167144915936947913610340089257249405203803531107395216656571709345898127628673162698822173380131564759176505856257683849314728736406228728813905084429577739156994331169697833826601904126298253837783567452549244445040008024795540454788928398179961549459976499560768040512609060813701142912916655033281885652485366430133031986092065348390456994898852741454937413428366330158726389698871134396485693320846361848454438899634845443407140001513044779652648158170190094502810726345890831373159413393272667443845500198582727312420804034383606209335956243804252833550911665346200344898072924417671728379129897595941484809983185548761834125696033938610632807908851886943608347304651557453793431567367289122234829180445938297150702832865598489310568622603605213715901545371068992337151279913632247149388813592794105447409932597940367815188377477865463539627476152329778974330333304801724403222048393554666812584823085172398303780227093866316545092631668728295837826663645353168905086825014025806997170145731118546771100517434218889802517009198961204598305597780306200012331774482269745192480287731657892646361889904107292316169969716294159670226703178339823733259781440851015518498725788999118623168809575752532031478020361054773071815682203970683405900544653657225700749127988135359602564145208462166061657739145828617210710941782693661012653461207649901720078528216749892484674262852105265525277880564532877066487632915603681466786550681593828871109183883500324460211693053533047720059281183456328274922286707188263742520720411174058933902848041343265804761693124687915439917170176890413969322585505859033464476368926826169185091323087374396906095779199126244218473486473408516009201569601063568742990272211189884523694358971826646100153436842627424116308764354946616514462447203006788232266225212570762992926785935610320570750187156274144019246862102747576273114545563687882216990111908893760434133850950721730210041133050227263357778687276213441432237374806067109458604189788681036276939307928808459964731604053691088318505910387078546457311294215516514296021375523910790049391876834509866569679379082006981123834562511971210398607580652526704443254472025386655896737562334247824165108514582294739742062873994578890866371423089049365139386744542361521080997798112278084477095789026377856679397145030147813885740848865982223837330964770583311754263929783549137931888724850463008516743142785478719677742938244240134096882216367737742689107878026521578113649982902039583740652812177498322350634826531199154929248530262535449491976573779419078869727429550272301881084590104492268783130377234665635368201574049628830088423417818854442590577256523491260445063716186658734707489042129142062965274356026055003000605789943003908520198065681166705818120749726592155881334543326006570515120379718930136545761081070471977267719716480320333445102776829512598061359276959429381689385971565161114688925253345083116889260963025938830929349842167603216575638180021206638111900528255816119920525363995336241640726760036357430841045577379695785394998721633784419459547850365832910882854215207566723931818268145796454248352872529748952198459485289697416588159040675182824466947979805330214270581028341653569142122913973084632536500119176732492817895638930731266986640635590545969094607142965439829874294556650802501524435737255317238936030619171797493648986682294042741834435426946974276199074304464653523286601060570801340256570349158559975463864543613536471681562774455356074341665665523339787785327874529667072020353604888393784293656168786879740802242088152727596141002989355060197766310166584197520910893674351965011975130593606295080791963184124176605814389023038034017429301132896468560592661953982620975047355548825627259469125515799446607852916163107587804359714056460750454846961007100633951405463551329919487016189715485792345716500072330517908814228451356477867662273383164407678946327615193968385542677932208664081801350166241597886558698454911423627000702269044605105912154299328661036243076553889017234134603670425373968054373348570743912888356483878567870020628597662144640230739550292017831301232233199711545158354706995811623245230458046954431867747707580667687263287655865740366711334437038945388443675369438809871630429631626245381060766186036799753710993505368295512249993628621254887092617822400090245973536578123105765777838730138253707675022027584023901189285005747470829833638113123515436607273362945708173161087428447165668751700830242396834141003453324459643725445644676560659681334541006918541369640164956897879826585350779526625465476543432776092034417824354420983922795697698551583394150694151588294948946826681409663265561752130580682523918964554358363805918457261902061072554972906193805301608219892999574784262557527440488711787352835990287770090810850551311286514680679298064432630102334183835153863856181166999273955831433251189500408320865538175987286807414306913890963524794883636172796908816555767412836054123876602417768965795610132475799357484064867506052404105904315091090786296394401214311845950754294507554772715116067697837624224604398769383975727655137751403951138299742912971939178855174676970439454867905398699077696272598353512700235987369393706165817173673185663836615983718646064441666121133190601243751157909475370704653073019005541697789857013905963592961921497451876538338090776810126163947346739966750384506296875645463415455108348296591748804260006015698293651376308434663334703837361305242792386212258025631172849839900146805911184130989903595878235910664106906676803878737044651603235708757289772534915218522545357487984369861694305099073304881939649637595370817364692727353760678270682408655074990037581422798874000335249097953021851668504744420931464745621747271601922463673857373693526907451762481800429047491287038018891316782324651226893028891707662290482284785898747970564345006435367016355800951716139996107500978295890205233048069570497667596079630673614989283305351659662458110216466719693932341219260531641168480071290652960445396734911659888459258097368522721339427148471319234252753611097661354952918503521239984149101976146586651710356745845657880525806813653528954292371734134443188714477420620172595141096750427702591212923510543837755390882165859694909417678492821054933598681148849805035677622777259998563283580346037214615244508857160944173910595410865353531248130951053013628833392005009685393900594245346390965153650029164707206463736459835237257413950572945781392505449824842797203173321449724271134402527876778819335643155578822315547589922682282308681766315701535356251593343208017915484099332385703366438042748130764559535665063300866508067869551318885432198880056693406535867380438970779967676182399835175036581931218918869412396823963670780095269129059427691817363619708001335518942462108014200969987708670026462283900362654022220159522941381935591689828127077156544975460332004560175112419248510829626319085140956778838082435391132820803171699186969282675277345598706151419867893718431094232935454416117674603398287337287994049929240899185213590734317866817756169531914462169172410370421977967175220208844154007709625675177124264355060543350273495498272773061346535560992838558568490507978966957222541534354742718149610241868626050592234543052767018418597739923789002368528025054719352278007973402645890006425502025482829009978477214929001149476935037449741759416508545299311617493276088187731073687943011682155035851516906227316056120428283185331387053054985747212700355073874909359211401399150663794732366081740197080931586410991298843090048013881458833779936291161449366393778755941764337064288767353874560862996538097679420044995979475041389213773385828840309239896448678355599294768166192205006572896003497542756778210773624215669447088885655949555388712683030814167744503873914633324955758959641230580110011235893740294213914255076252172076634050363048731498207645748623307367838129897997691617847336362469529174896668688212664283376963265896810098282737559480858778881012878613954912740283043470513825244771366347045613711047217144268113123649505783508122533404441465180912361845409588090075878291052612082785949344716293794029189030195580653126013766491723013225531188505606093564681689548725878176801375283408185193068223898571285847423455543740855521266619750317985259184891577073829621176130937350278832879037057084867079623672341897241014329370675925157025406544759467139900669301781636073550116284737557369080065949553357135533534185246863031408860216073149206007297604282433849638093383204438617664775341330075006536401065667964149144460085330589648312740084670820003067624252404528121590644904496330400547751749786759362334724618125846481093412643883984317993203040574862358062167879023557091748541155144495949159402074421978854355079748938993679607215548315669025857622731374136214191565285646240167020912158827792755070613016978673858699300532288301398128287172802874808312490275318629153652420580835877894952590806073921464033941937462278058275842575819196206427518554290333730423751775125322385142209971127697746429385440819081038078104828979792159273032367735619771252187750767761535369642735863597463102775409315819432568421740655173250037993653637558581139632988634419946130647155423218941118877327068960614916307626639576951007443687268504012374884514636905993054485089551885799019748448793435464323390394389789425682439118129502103039873635075634657056422593851603604058655376177615979333809691760506635675777744443227909336537917467368549219045603588619173911910411071247825375108442974337411249704480423360127981682414384218862096190103362894281466101224478246707548962466635836908461331631796186767643130479400435226624460086570605697700643069553030696492882353432985122269925920232073420374413536586324816989702120199707096993123385976822004394760621682033766310080036698016550605834103058116919116393308131721930211647021396529268480580572237142354192849085620164716375475424224171247762975403700492148057232991428283715749952381685063827460800806618459054059994585998905881252858872474312646315806472279530979763162873562089230144236530955702618671349804749924685018547095046081234269922505034192806504236947527607453585023556497598726855478579318174996102864788396405681229615906240849362145581351842030204980313146632892116896092791897089755968699806481915168271722249463115004302115787407989110801392362497450260191265065274262172259603584506141058065175015974584713048901527589896583497482994016029316149338799739760103849430287363461013864497192990997422496233058409062328034449241916255119172320688253094686742810349860258115722925856156882511818286761671852111677867905424013104140366266836194628779116319554367833173042127016540290910431056018305909420430084047863622579540345693963353072949186221750188844308485232858027907451194662463307549087218273690464707248362149144343685721664796751532435440905307844058719986238439872663725896818185224116856827131322046508524304012179146145351001720699157837706350357745730324900029502111940340345242585122638949935094773375585017135645463560423010178923175126102775466135298980824910606962266589797999297102111393804499476634279500471285082511610153481802403889686776434100753804091344214009922679513368132635108958873561820566485083193251656066905120218773763918874704062141396782485447142865001119839880682618307733026617228482384573803875432788932240522446791528186805586574631145263387692492078779510553079413965171261908665808781748749512665209848902126858899966663203261876238108097525838783052969592905881421029109745941982001296201003535040154876598568678461547178695725686552358584981672622753849973125311570863703470839050242855302896025129974216626555785740163911475170012934911192779505520693286755906501923851118464330041838233346410920067760043524721294749496342279878273889593300934738843829257728840029409695613900737436158471370999979640523655204559111187970399132670760558788026846056308647700007045013296510620999011554754626525944706844634301203805035870707278077068236703226127625806994073119377088911677707711972144064352337619234932879401733381276378385780047400218810730747846965032141455584021678781971947323478125684061653446070341458741100840061771341993017931163820139114888719781631308719868470460578682514473473455286255676321192516878652791954685873174004209815935236934475608484946225170104492889826041544569051522922191938287298023537670519629839180638312547944897800904876925906012090032754660553952181682714654497356204809868101602284733099763314699367351234931880578850711448316749987161956768455008133435706231877052877462459868613391770137283936196067117209151347268503060885371875289588891245850235833359415864177654391778698766392107517312669518469121040794511621872544004839250128390373752890724170977496113370285150682809897515804813726615456970248667597916082768117112196176898420010355056347323695600728482832205817730779707570960463564461203628289301540733085767512631292950904045331876929051208868770928013054373269346803353329901197416839688293590065054019196005124496295926218236421920880963129289198085452930737083869888436392174610808483770334487734624405622096886358911083963545372205201359556521840405867413284068303266816912472853244489408532525426587451879512178027689277843132168716972322504027782336380871817851090637420513051460031904169675256923183354358333147088450815457006275621055660266561021790055640668363903426510610721166159474983912109755640661044502222604082809129342408690062858210222571268917651504076048290157199540471468578219996219714457008901975421327504467454512271222621152167282320713834838161873210484981523582974812266759163336632060848407127049308241692767978737573646040077919336392975463777500787510078435580560100846990332106788960188307116262806133029873696456466363770130048152289047707690472921046555826114721706266503877364413216992517637834804525948157381561712457786352153710124805005461820467804484220267394225382327740071097146101447822342337270702957368398777733739102338982774402219150896926845380347290938971019861898456497304247458486068018582914202884987410068326192023551609938935412999768516175008540461803460302330633458306159932929632147981321636715857422611082170980383999471726986361757665125367444142835101497627272640997801961937269231575702752791846652576890952635430163971757646598035827609271442281481629654471706901100232460679941953736923954868119882955944442124589585723328639098259023328039463346399312676820117914544006990025760413803079863704909534431693838087946302992030488272448365491955570328294353175459934151619262937368979148732731568180160844735296374360890509155716605788022749305631467980789207301544715342428782210578947817497392000685999829456953332741762822890030695774036790661531860896993252267286909788270300813295322327431915480611290253914667908522407138195520735628221108626637291460861865606812567499349401034564622181762900812442442231069385472386663223145088934617383412695766588749905090352837413940061236132481164838158709551521292303462827530035761857883692686490181550108274050548736362185561585301681045473549061714004166411681138701579986085816278604736811189563896221616507014233388603384393461084457504592031251061115875534313997775457425509494577952705493411153273280325854049677998548545170058106250707362991551279237348199452437215772894426755320013668732391884768325537984592926171416917909302656537049400889204455238395441517979137429216214776136579239122334225385758627379545068783866084042532708781542191527053652985249585753356044073000157386809264978832611212305589521866523216399566480526317737332347559732070276156653120451189629196086098599266574745470766200472515403820924371876293310184200928080734242291545758139193191379757494775209330353420453949811880591873582631699610461797584221100729200205496803000081378067753473992522339343650944008140887364154686541406392423881817223526478000397985626728847046781136495584121271587294462662602639538868881863579844940123993987533199126124529347093509042169169281726135863088046801926307235668394127325070791961142699768226338859542679653649299098497498584813398996928963183049893458281749235518624600949870882545077850432413669488255269854137935831248203286989737115650251536998960637120991835567255740942996724872208301659126591268791107417355772862974035462495859008328385922356828476622260878531697556760929431915297727727776862272162842899803537893102966854949488782544490941302802816415453223227593832065226335670587800947909022923838841592771011273495711908043115541805407733382946765744994105697723455160177091402507694826880877314860923448880792348242361393765154977276938819572487757394751999339721091741754643335299074305384633969501350136500644980164538087265368162959414172636033638323459492554368141101879804248816765600880272542882571410492883341939450736106776274341850828576875747072602213640091107742622502705305129472213000853468885972169329562650564295091351277026021644570723613434021775373790416311757564472778987385518675226078203485523319418054156463435893323698430437387162095733040107098416528051514847043190600515730437885962846058229317612783390448833718346779903951398857355506138847073012001716543460196728422274517341964469369781829325535220308966845389607891072288265724557535576633589724429749841877050642846133638064033579087728645187754883737526720625010520328248858380637435849948981506775582715429018197179196661731099966900825870989412550204352497692820011998952550111847192270067083359043349890616563466755988894661306979299196607244549158961341358116800434955370521993780551988602755174982851340381629202269472381511891888600591343391903173114600605023781964174293565016535282253465938562006730726333602696464040348427857137880267505341385932078185129006071599004412317900096641642312834402842839756490574711050039274224857089901703934121132248259780071786033371891913805695928158788291938022380240934962786865320210039529530636248794286673454895480976238546209375223201925175295334120409013753889348568229762684719921533448058224236428863830827544150876018078005450793184544234986694864978745851174673250172470397118400458272857577181882445429537956041353376370071046473719486013109139748548894030498498004535704237375342904798508276412009444038004050185916637748324265381064475752989531263981606857069911413749011493733891587780751788000841031444196693510447558004905278450949704810997530218590381985913109307184767600004316482775622048673101849120480619422113469464626906944111949248201299983048170276444208133851287574524539933599063575659088690862496953450299369460355168003677624051208421979166683365531027236686654570699207295245727825568363261684839269550316274880720140592116254637765878224301920402410110324323936119191867564641385595937211302853242674816765217035180016828696686888351967099718379303294715661736939121870496884310623634690200125129632952048731197750743005888569008354586658967190542050009903504964637162037519430063530447021897174435288794769533207861742850826726535874062362764833845079791741688693383611945638021612789759510167839432903703710590595534210352093878508714669496275155625372606968982600780289928150713852345398066307217029422288433403909359188744014562924141721907102705342701871148367219377702788814858116489385214050738028738681235542515465420027018117326636864447990805451599776489378937941021160660862013063681151458535714827464682393408580360019093955172622877133626276835302341295150499688913239382033733277583295035607408275116275467080464699675514979793989963544156862160056036312379504867321941482748210002176704145783316097369242524821372677368704962839096863353955697304917432893391979030201692589198209250181423987326359699949663424468639477430028293935438040606257495616812172987162564113842401435360078797195085296385979555211572920377119891150364733204567399516905942515914572705895054607157605699633084353704712292979719988147242436190585719362839642986730768040181969300707363218867625147818267885852477323797408774825481862376481641384740781871632598590631911590985685659887053025693648979973991666178492390491481331502730036051898427234020298516236965060131050433290307540198982564549522544781378229920383502169464345184122560514889549960953983789444611305826422546741577187837610015047163095120550366899094979643737890285145528409912919467233391848595603463825716518145126329689536158909193884771345992835312245138953430506416151222777198650475602016627979370924742272168162937249753326792177261488006141399148381425801486608633340966777077056933988065426176729583923479416610587093972609206362875087993399150720067003268944291939859286988456136552247103835521294470783282609664555797085723430954211514798825566626478513409108584000980088880290161977118418661688976625311171262298952884246287171139291779031214790990663839073807667288168699394426431042470057944004213490252427886691248924818007265417958290488843903325897651543442591082847532265252584456790004513548019750318449523037794032767233235044166317015467059791744009289690228456306606648947759320522182106567165012913790982142548064629058121760384779006799731516459781110366198413131382503398473429782970280493490264759388480240756925894251104525784485977263511223182378542257447567196813465143910690786126217664342049558823366295984825994452962152239687232108093744275065535748836249103263987106476981839157066476009211543285106777573082764847357126348510458971220124563741861534267409291787486299272287326028022458697202245589591362361790380421038129452639793724694925862807006393127918693431662452622490537828091412711613556464872217682294641169514970081432926978307598907805754509825965579986619316306888515838553193608713171097970376198003066399635482991424619116156289106574415307061276449776529127138020598531068538826591239896665599086771389397969578124509566917095080645146181560917331454197983366397755772282066609461926375474729662067683049415104456573307472091004977277416507988622232708558111924474185875160978272381404130506586051967096430056223080662433965541788274771075249836818715317536382030324579784324780362007840657708209409640472939663561459432351898333664200928334532942174649710886593196879608390446434149127018704001337754802822938549723103368699254859196823403958123136421000615267616292047374909803273579028319757691975273015306454791624412700825888575619748082970397604970760382463226457874984357878819824261267684895555544933308524247720713612059070976866305740467507424072331838266409020063201195354886636085114767651905906453356439626635478123008733834811522718906846262746888782013903358263056043992080155366584590381416955136724977389467349877624162118899659616530012684389880080023676013169794435603139817255507176105226941265123732112005467593152557554310742841082777028560793132770431826421989509814312696497900375549619063832105582986841770810728169835733115074825266057903929899510805591016842516845001689526500385506598849221160294587610238126722057951424165341887643699549820475253874276671065900635132079680164244293378005720985150656568952663457457522818269805172201693111253396304213409104422727921479847437727801010216483407913463662046498589612185777710622878700885451021157847298475459026517701533752248328968493852723143080261664035565574770254436996818172418776645899974230254189148575751880125640267587606525895297156767276514141666443831329188010689443752904001084902498134847921980250692553519422878401840257875194494795759217945885693583198994835722508802966456909410995946895858813688105244716780518340140809917735724763754146093571507795736591304568185640205543251502185925734711056110307179241781423773556928066662288504188731668166607910905870839809867037186209745425541787481919461620092698179951827633578362577261529217691965180962220982765030862110511734452816539875760419425266111229381151823219914527952341443872678406707637204495230437664315391577957297366821289203965266888164918020984518380044950889829645027755616519590279925997117986528118471623854494554980180009777779523010574907145010382585367961409412045456972283778948265506334036700495546523853099011023651196975499668306324958455977120506352021236963219969282822902889266151509016679464348882255359604028666519325657161379876058218088393490531153038432651174714675270939657608048626336714340185091296425610261298676548410918384310507164600906867493891967699033759674888201279850785125733531684237734983206561203916930118286256600086162008794527762464118123639631829794763989660866498574594012849311919079905093870144570944927250556945138494715409840653382848456395987820423288906220024726173955785815543893020050800285866255177097739706982508187388918173632977577471934907894974203447898847200927492124682209178993540290639118662730051853295125061897033235871406220224421177078219275784002971005217612898339256405800353737386514556828100544382116042543296410035824110581183863480220198503945448721166979391693093281526375011315377891841150435812541906361591746828938332173215814287539046801029932745983022901768524014272408486022818766313307912072779402495467992364058774117931274852836896955116928456145297096568853425442760606263909625781495599479470720344184494599789235584069612044068137615027652680966180966249296371521929217297686570618101756242092663766153599104564248232964308121015030700954201736095985325816150634318071969280537942014211420879091751464108903090214890477146717031744073643992338705049369298163755228866222816992326968181966969287300982980963142987838380469366808932078130000402702685371507061995852823279391994710674508692521827560154999726042132312570124074071252942358283398748734017105643581025717255784916666690561291629457047329128447225334503193886778152170893546018377532242067718115745972583729876090069969657123754415415193174039541431811772649358409211040727576176576336875643519987774713756212999807455793994466369664908896107627193207712077250138345766323494861940088296804106696685550018719875767987988896467122547664613746468801101665670650372250363602299583962612166990660238985169168784548460799982491157352619909161865616436845964477558510684270388352245072209711625133774427886751308171818318310999262295785435692803431029902952574589083088192533860006652176692152399260144087282173039247241236323922329649011163979698353765222180904737318803249033339915745238698248148461558342162913246474813393157000639384535409469511358595096579776163693557900242695115713968908445861991933750336576888464112463479628340288629348816394068733530985977651297910852875173511340533123959447924428541478502147371046598074834455918421093663491936232068591682408717324509249650775013343184587312893385030336588393090690991714222104426393811926624414548977648623096876036265002111972325332130872770617912860147990648604208929306669200844552399199832103866713767107892751051914774241371404709203637294316999719163666790694348543018057545660393586120053391050378442054956985655151130332492745037921114255669117842953990280459617898953719462699237818013402910562206314059894189001591371000288215975633023681159907292475963100029985262600230126656637303631573557506300654163436211352913397479098714354105390230706029653550452146561786139400268812833637088987272457014687553977671878854182930136814846783894657927925919805386013882330608365466157279743532051317371554868856874675785061354993247207951874811979610902847921496585809087920313421442727607136803358063709714044029973543862498586768009889156087221920561572436948570159514773707692950171708220237927302571988324045398596765994933670966894514286016704271691522735547890846742436961184026895325756102166054778395959588123854678500550671718175136736698509739576449999578511731364638851766992476974141381404488229911221906292570856826202319386171588376069729668469026318472585834844740704216548632350884779327484241352456262733596040130681451765947772675402403275514414575087990851781722238107351870046715456957380009512569060977285038016286076442400731648016625391681977701265405788947273770644130578822009522290593778274176427103131645484586782884621654575762256582595964194652162135262497565634642227937913104162311365756304651031202545576785522231142001671707483342824147332635445130498166766762489868283176948719501630391167455673809907326031611631955183798179674615028438884120536129214047520350734941571151909365729182158073980314978702529447399857190419594492144249677924076322541216526841020271252851524402370328557677706994333926582290162244633840372030183853902703877708859781949676111188988859386627304582422882065804562246939714126841367619078479917246004451894183892429308209081842361821107720101327980610727748542465788684611066694391717841334151651678070806467309230046642321360227450842679589351573891850414190164662075041479637201507011430079312116431383622246212811617134573615283675479913647032914301880484565367786353830746668761790685238813163671128840241797008263263638718722358902533151474272466801341499630518749235999671340925008840805077636156869692692088072035708624393216566859003816973334716552128588210100694706356985894646662113899328368270075054811853828526316383653304829446262724432782230546539280844579016822604098941046926373638588605727380170966034004011068761878637617577556643657049824183084750792572644252777626052839986755392155874142149751684145089034040208402017273573146997959033991409391050941614222365530785834051286964481441756361117889244927933259022624122218935760637998386232051683924270584633381480201099968171428866976565644165252181436120308327946308506901761868649237059568737297037769990399120684144167261323200868525846701582687697476777423789923327709229623982806684036842768719559506839695068716257597925906538864357468646929755018668362010751082582336230014600416003581557141518747226654627452140614690505711578202930894099327521918597891336521833151125064877925986514875167628840965971919497268139270613715506197771949102282073987008326865931516801082822688464967265439288644043942429502847439486396451872013450288439596113263527897014265166260862007412125943325263460937001121750744053416171378910695426328016461323327584363641577601536991902387249403810727525066651540526555813632251070596244210650513836930471465385574015983076908005080239456751012810386195828306267701073809792110685599190708202765179016756871805768265534191287315634614749496288274666632370555296331959620782873868913737824573673418981451423760316280590015633543856703302633390990518430785280924677649681203348887076781343296915793737517867912196050991354525216775463357621691049273626465278631766496943130871759781997011925690506292572642882809479871263869190155131213886164548243767031871180208189296402489350691803654408317155696491814336679687580720150460156069195689748445674201774540159365556722149974802997254988279109520543176298868187457628045843894346595937655107384893489458000550575850634383078426631707313269598924180313628379492182123911514861263312755122312959349683578327454583012412888220835490013854680436434388818169325668759471768888277383138111505757863967882383961614755734012628299931636544079058663856787377049713146876944042843663252259312067173734197114585218103241612254321914042989895658106562564556142370811148229652902247344802567317417267109932489760179078968430620641082680012274477810491497693541286523852893039025786729087665964219128860423704829385210961697156805946251576519297574229957279818419761668350132948627429973414656815634897643123567904146602350176707003140277386776127779648997120022624044559135630073222086827529539057032757484162990962474944342074939176268224564864415808838066299037591240456973443104774027660705305619963329710474977214514684327881215591212630513236026905066880299615991937365059028660431707474125396038524843096302818459801879354560417553712243589106560152498961882797448418693614492669402680051882714374528001048202556516155841296931644747133401491956933966924581162484455815414718713756277685314896282264765495638634605702444414588999191561877253771481742131799103743105038191862250890199616647036605434092248373770484718009969544618432851397756877787061934800728413282511535740350197758205243096125098106562293815749415603675544449443682888942395117685631663296127555739800114693153454285546608714027820819862591890894511741583089769510766816343109451199558879478329692417553789343564303710320249424794223190664027560727326171132079170149148741657933848846760594830125642931721855342276192796385705090386581434266120158512352988370175560650914484782754366172480532300195812331314751962465449093061916846173737048251917940242508819640260866569831474217673406638029455215798142354058443755255776010430989884192027485232023403322528623979791448668094473102232364191933747461739939872747562637055889632529998957406704870552723337601993863869703214843088673365838494307642410272069099084775760092800909758881028661494199404457014488194630634867602713077662953835208803543270911134602125041924698999311502177551535788775226859023663405235841952586349666316381976855920119299654549076991849610998789262356810603529966842321157061035219262840960661705643841417376415639170567813766010211924191196990414455203437897820806142184664032765885276803917984262809667717805672844318061427729816448044363184666204984300267937036332071960256805274480667310013454273048036050288372746989419725369166306054837608500377693370465906533940672506335685494339750081090590643626887978750320281589517656994371779035368742538014263065953215390723850897140133737728316561994996492492300844086502400833904377880782451869263649296954544186417549470649109650153784535163515999837106470412822958614682229618164166781570327796137793153263007182867568141219167416471709491542055201382936692213073388588056647840936771101705339802543058142827499925395041391620111536378985745036761485950140457477420209336288777957645539584275804346505393118254318834882388193210643392239356931124235658203501474910121243528713492743841941204464197757531244875749678857928461306057151733534159468375904826096077735700173635122655231705889337786823006922423116292448411252796512965194341414759893825637769632208712359811806616159979018091769834439398334125590945952626160050733648767244277160773289104553964688900222816676906834540468830700070093345154013975605587990195343483876865742491967936242407361070661696398906854683285221636245829950240959566775685424704396338968982708744297538314119390276682644522414611689047258400482597886232032561071296528878798797531037264434044091473091553927275379761329841428223132167116515456882200468776917749338707237437613306672850964806408247884486638469891120209697349845097974895850450963666211608639827889092083309993410116409725804150389421751413647768390110630565824145345034649111581001714169903782969697606964559987434396388454727730187592144438474626184869906741301301241544639210998669186640516289387459085161214078386397673768786240577045859458133261419110482971865440611330582626632969662026376170331237284361554518679031743752184236816027764257684177924559271266376678264955064694953830046820837919657092867026138497531239424667533538288012709237655935830576716475361349720919420880298655570309849311919404538839849410851106257301934554897128377079653817604013107563143956907260442372618813726543460630024329046930792590878617325075641226853862763084155460900791438263646990282689583264892873708351813425722280905731124113615832971404125344470295420146811297207352567035690762823435619503840304945288276598837782850340870718213195529406457004226207298721386155164347091469769312254314712302912400548337449688088594054896475023717064902285516411472592580991798435758322837773860049968120592581858016145402421945553757719674285722670892179917743618982535421030851655678384183595885404432302648513686698657841121702545494345769040115031459535584038226646767624849631348450242704050553657079243279012869574498369290615030069700400516911578461478552174162539603126891987428621085939113442981289536601229601038296584919693225923589359199004890260876341403265878041419899527583123225974703161775992241878120636155657219472409216071690992384113358385144232572934339761949757573911810527159299320012621952753656453943125591086488987933266548932992729123165315230565692480190544878627297099911938631955056712307597643336574578789031884654855312649954329196864050193658882396203171725575268273060216222555050067442364495481989458746605901778304728742693826472706409102658549026032648338905653711366713625381353998345942081518351038531230139771533648572783731155854622408904323273190774665184843718396337663929047231076595008977850162018157221894366878401975305389981054515086209558730075779495391379555792587836258159012677041436577382228193253831527122526035831767648818848125385279999446562867745391801437474180866612118221293530901952586448691467610414992288213302646108668841852656507416689215454469365947128829963799072942192324135800075464535537620699337678290766457094876618141648513681176422328727926576915889848276032085358394109825585524232730753433724047110700647958107787355085969362082376186684426687290006178862540316461905976222450737077408630902117300615621039383766690758622505522643289951749712026852140621369392624080132465312443955352374064538116097440711677416507794999066071626632092538441250281389311440206480062798918135934919812541373793281353434413694441856013107134436890566773128900270737214561345399081096996413184158434211011013734904525921281994380114166776140633663437008425752864185823986536977351223654149261517374249230752723854516080896815291938642343990559701813208035699856350280343177548692147240080005903239976418374793822045707504235190361412650006347110516082617920488922783970976034641895502449502040966028930523269755380852095623651862098939954522395499902679940373473308181996196416863011412368646512439884876768018352206188670297819832816449179579392750474475891781611404915802053996153350286530407009717131660080919226376617083014419298173873461478546738423205883523751720918507572434293843248857204033681788466167492268925225047114222683196032235021147935602452064942715076311677488725402212584311140362372504141787941166264940614026210471033582783715397390551227843978277641849443028176111317723197696068255186671395308278844716555291799324219783110659460739525432922416322927594983880038643105159418497013962233855184594213212369089677055619762484820961311949356517910748047802568710926410606996536137310415676796029152892084622024715203692793113298628428920393491594070562485141527897606505182051665709799937130881703224265087008387943318225547474925868649372611979400821777117117482852353016929792590218680511931745540371552823419489677083320033214009006104388645234371575237045412517817962585210561023582462380075085502120715250541323430419497662497428491914757747481150457220455504914362731974968937470267343671005009708137688915140213383126201037425382751717112046805706228593980545198211484007700552801719386530668743536166464453347174087995255576742284570647985466825710959613435670168073321036365290095470181142086593640119336675902124677179272816193214623232422260200809065764863194569085618981371747228885158712664590518985488010898121523599046691693585817706329062662821209094523141055141045390996354788765837619719598952994391843382361142367725355920542647243686740207922262603607574146600495477997797722985144747892209359013855560472518354222596321105107377390100637108503501267350707071289336542903189470051313702119753598807444681239704431929324723456754454943967241931005680163296623661674347170182250938571140213641908120832095012439283760050052236373411781730611728820344157375507753950625741754232319000620284475813351266574445262328642447324428268187147432009751744245235455805809528449010204395261941613423927044508334306984232213414706833428788174443437760812847514611046580848812053659914744844003672540558924092096047571230366582239525710961482501120817989087325515107177062008149302043040788202723210648523032213475401643182426583796441328269787180901719798949779568577409009378389049291931586321270486468203714531998157282759264342798390298634007982770709404326722243092739132939107952432555428284110478567845365143602652680843925534121653490843717450087862001650241098994094947343142033042464428570344517246235941020108250285026149579541562338879809379899849104093177614755693033129793819905618659609197924004222333108495700365258012927222611942194728475185413217107906127204696209618304227551844496832747714854689577158013162498002700042947286572187641447399070236341818418897109162446825290120512584701280509980399507914142311895792354319112273865942559785291026018462882286808792603000107748611145300050824409483399344227386427628814376737884642031687642708992216992937320450647807778405681812696404863758825330977807000752526931767435773952881939355424698887382582291204057200780943244258432838113891025319532967753456457548762333872579864794922234907978561388575527468122218036728053966884054107550320729643240131976498742733102433171636569154840863514444468175030581626178192580744701314809675792791182411266368333684932890835256701027590504935107615368343038273107459537642601847417991261519773889890308499884593768884743438334331146321516079841063496604150380990261621452903191751405288932797258698242899514645672015747632680447496370481835904937062443308991864550747114848865585570613878156166199223832666167294451668119405713267586957045091506680512103785174897282474646397104335463586329480359454679555244688578641653317074835744718911534411770993269398882704131535295896910566191952430358949338252905528351701197148758862325693154065097374750166681081752459256815216908810488542965535587845630730304764490141768496006471964297663346203142674203425393541945366459986981968697353661868321085303138597674404088258162538274538986879313300015653573844199793669308649296941233216355232356644631377330632941899693462474270813713091209699326534759329345083129999656087920685224547314159498321765639574594138887533528076464949165085386696974167520704120389089717502138826593212648308869225397236099615482110978540557741590950348959267671436200532789144813496643318563609514610074055442143518097256218245832769694536071430867676235230797751934327505873067259600898224304812250325645692252118383367217299124122506381880900926504042105220425157335262776959394863510886163238571757289630103349607614332282664076156840569010112523798758798433158038378678809345434254093774346390752239438496080030396980612747175453775665573019937669774010144545267342439460694489729993037946752319103506650464097529489036367943907791934139216342987774880509747683899398176894911291784007258600164254856393246546092964102928352987874243491699663287060081881610389168047835626195700571648290433006741771720588341380901582393029615554161802520948851691158311223059087351341600922724939100054897984727761515126798625672115613446914137550791899477225645536842797417224185271615683445631701680847242428397970443430100979271089187549054406821262037453898025457076971049995662168268407490945863518209567418225460582819379578930265384463152960709161509044762917690638162320226193002103800856112259913675725568350759076384547160533499498724311537806032431149428665209451427890878023373859978424435353090792652633186790477133539531937969871305629338989756401236438034512787807277757367008350346310237965893957435783309029513865703016886573242505083598399005035828996322558674211121790071691142781863315973045107976229932367256388802529534705793876600892906540206080206129874600877802467286749531410508118272779131192247464874251692271092554827673195116211855741224784413684549312025777422279965059312959136655420164764948771511493337322526168354668385338308259817231552916316037441453842073316710566031639426565966100983762359411380269987121642841452626232000684988956045430402545119349866212160590797501956037431458509688623457378814624776098287639638490307175713992681664772291646233612352129975028577628842918612613725151202652280413412293167524733348371878667527581209105200943453571350881441704871008793421881888871481596521296400688851336024373769520463770233618242062334240533429872784413640647192784671000907011219233143864187525907616352942456067085127037149437670280940442761026986192764789919618445174035830992046488923788451382372216491212821779154719200154455297930007140410278040669838042878494662206223955573798662431382295015168315355435470804380878922391434802700906370346616544450939275511823425385463449017286555208536069662246381606542413063395036901868642223444816356189957590282851721557411527153426542619785188528555569171396593330928595311492233158735512708673473207992599981510192917144608723367201050077257634838242956238620505523365349462240975402653940224722744901512551964705462337259570678568142250499559593132093553133524993901076031539266255434004889385795641359814907019350578001872304645014189000647356162394251910746835792788357251747911971845158395926497170798593876596617194952850635695662700106529839524406849431890646113226533147173081721245771946195185678885936511302801502436679318581432293773051544014652361924891151049137275590678172104867932208667588080009944542422138652128113693268517886720993501863132639858379465768004534007930686111334075236509757459634631177921275501382531470122500216031228311111983996153012240553305165191116315338333942139486605416457380145088783444686828584051125591873554048018630095521057977548710507273239039643366841653186557280074173004047841312468339275498772122206473630119995577609371094846176213663868408463036367508468339768752093213908443600301837656188286114358942845682358189909326711454806710224992211819824491510752816540469216978515717720763563117702422644903295537606500629553883356236830020135131251770621678917727502692801693211905057204774548391692687748647480284366416568778958332401738992300500992123629078332341154797709182253887660901984876795209721643384751434347988600513358359306955438433725649079011808102671782520810723146714258920775053385668250891711589566761093567835914222954567992111811013395727254986455997188344265172965407934747197645920082627213450715963945640147183816769198822092327866810957697053109337573519501034811184771768754192026839245664871163562671600539780300478778437332079611693900926461507869710625859636745311379416910669128221975323965278113058700215976332274880640165519006836510299862727325501438136812637408016389735941875961423596295370459180533407150971122208145454065265906495078222329097747797049788085433391710793956401966878615581083858349850494855609276488115438046595239537278021311964261335909138116102314696302454998861348112747045373270119141981399968449258798576401519933977329919958567294504867884889795305436459637279463234692459501656430137875320513743823524764846316694570307039220902391457122187515698116784392106174186469371908104023289681350492137391640680401761846774898218745175150883340399166013683867910092318772401042615581433689448407636498829289620359404885214109146928286344212946707702710980717911282966829279558236618782867367341194494564332596179975291911342133809377675536108163368577127946973085552009869506769494538292460456934473011574439877783640285781863384908228732901741986986132880751597800631181501947673018675148978799562482242940726299014992698732137812147541291797438454140622851968968123730837182218417643268013263255802876886127039367647976101881870662074277347122347399473628896123835773766136163608371986555879522174473516239676040216475458999672446360524720853391644153255262696126123344339490233963874795317857027259614823709486567185205691354697271260416446556796568726914176312832524988638633374541858088829493499597137751858715960107434128754328231900702641700868178674047071905100248161967401484417265902699777619510311474778214659936909330906807412346635835442451357081785550579189752566331079474425521485190053311401938580904693391257445801856492021486386571947544598999512640838928741690085744289988237589111385446434642181173577846265021570865150131147194842918557525676771684682700226128379214118792273137874171809824661250939671820413167413785950272605362073910259355646035744185429450141147493622427486609498797342530008192987877366965224245734704644494140359012213384011359657091581709194514934655123985821195818473074983083917600309125637051080097148039444894366163650926556180071139690619557545623804992793151729735230330700880695263797409113505713826685683187018207836604871649836374977628590566648926004276505606756386454991988228167939083649837382526128511748838680508130308494810868486975648298476675028103138095603845775526948608870969900653710231653812944763266892537200555640653798838026904425332719398444011982296765118093430016605133603469972002224818549624371984286337138120551656774033184206023458729131667226219801584106689801515033427594391192538614520605279633259629895513364876007011980997380002519885898687532710891495829069174511265343504900090475131963543618392875240556778295515998683620817136422446958115141865973299613112011716015232686964580106409837541164357528844053632291954723843810680994865313489857587441209702074977698598372483316930473185954820061882126983025507298923936731141326495344695806685477077561205731235138475185270802631791963366569838757632795343189553630356049887247631895662839416777527849318117897825267756854621006398295506294932580155694453091486312345448233031752516452119799828780898136922729775663418449959506415991667034241468034112927870498150249255017097565135578279371071536503644107293452899603594370811428438033906826029227277980176397426293814272563643087050757134073782204506278286377001025903369503303930473281572889750813102290924684612985103646601622788691892678389568536452963856840649574091653047445229470794849119497139823642333313684759055749248313185666470054147580818301748820965247015731524474143091203981125442680383891701386216165899195501110785870815560271913671220807462300581096667163340003950077568599633370104124282648790631026979462768811924173115795365604662332006743705521431512282560428618772011113055634316956103341813463176808282200032289190857449572832665165071463342403124562672688676019394549054150542885791881922520051680264399735561222802461521136313749321658658516473731005069726409196566812606551799904806280717806308684717833341775051642124345435488655707511519952938502947700488931194970000195600014973954338685212532030830292752070011980814815454974243957594549686626614714400454256389875878542216525781811368362944254396630352583566737599251090601368818786334605939297564600298677014956365107733623460294130120886368257814742540802806623857316105975476700053836125953024838835399491809977997033796339621617778777577174527518429441769566998064827990412721700341935598861554928330775907457828425219475608509134574376174877190033124142075611222713810746014313196113348792522449573324381118993454393184682106246973177604211620400742414046458950755753363273549896454151133225195725284067469110625910322823741626652108820088361832102632417703275149725132258819869607925901254781513333091664754213872648569470661963862967211642520201288454351879731601503558716747644093410332608926250122147472271406141155097845103601831300234181320414343233440951264742774416615209066659401763044174560586285665329453901639112978246877663416888262989720743195320043912704694180253066770234517131984373863985006948809877268506347349827409618959786344933778194902760864125934742944077070470743678029292631696506956457116417284919314341503775264022948828457438624662083544324663296428404822847921297447633412475079708425543944164220381472500830455321140363991466516648238739205228093840909128899734059378126458159359519963011126429650782082614469136445903474944048109898023993763428447587898183210299812684522320553864594529984388420665143647336348769406168395086643020869570192045013597484302057607420572859840111590680091751553375324586641497856147918705760719152182081920618778135870429379299091089248964888044716512724532049084358339879746242263774934763059035778951701414211435774457376204496625344239081248391119052463646350693868322572631214857718961975492413220107676865910849350426149911122944510082976586081716185927228592281694020123111434678867681096738500869754935065676784074593911658179830112663731331996724812509308192985488395505910882981247706953533807932055807905046537380779318574082599115526313171261454575567481595939560120256741961996007397256151316032238599066541629196191618237020983456447510288230619619479173962148297694880640321155212916421573136876253778698453592511879341570516054709236901501669515460675061249013528579851491668902163211425541651027506409093547929144790637405627230558366619191138162682461668245369767072485616146224989817649607680886817712742401572223555568421642114542713527372145577917012553434971006427966824725446488391127172294296346603509800809407389425944037846571796856995033038560834712899576874357703420612702032160945520619634066712525889424245501088187211747123287737603665430178467960735685772638176608407872406809337258119371950119603617690079229464372840105304871135822623595526541187407232873897138554952417689344764588029552467479615523359213031666756335036966939457508317449767960359026537455183941839344423367940950806231419184731517078252711074085948929127658438343021927909970556723260659437979194721937489285448727469015403056522857314875714991284736920025806313465248029817393378711014695862711154742058523717511708314014919884790405278427285444862872584456343024150746138036550136707314466095220636252075734388399861275538517796644953572498151660467576435707274054562195118416379038251299449346898710162694010709778910558409485649782825690532820260350801245909461799288850698263238239410566263614144122835633817872768332031688104630477381259708829320371698566021438344842051081214603911659421461120671512930820236211300780772060711240381288706639794246612925787763508028463778449413932654142253222666763959732682956336538778417597028369328126089273391309314709844706377805617669157728945949419665436725918133748751024947319571660885159333893030108837064701862743739619779156537682922195385348318230597334900674294539088814605012962520579544694191162413865577496232843500019166127190250407323262410554412265084299594257571146316989767907842258421360519244134893383954023580031461206144677762370999253139315142091336129000130635593630804821771421111334913806886787019920114716557776582576078673682453388370786184246242411656389927010057699821157468806770785524252802485132743810086357874389655433811867777957472762047435680652458976308915623330502254664248384971867659074945166118310337812865507151181915125447866278080651005130967843568883118248383051530226432937482682407011888282064326126287022897484299764195205784298448266193473227164864715087908773414453360261368408103200109301106785780008177141080358229771805152959979697178744918029174359829121417929649838920152751080278855925303880644696937545620764001371606861082678970310939689423237467066988057002105717471010983233799180788033739308856238969870402349037169469521685383327621059132679230173877044224758897797659608719969407343054841877716131304766242476662876658848789771980206736676953125873240236813469260031275227110968258309259182660854048172749014746084903198143086040475657160642434522671579018638701543274770788516969899991011986816055294527916874031846338092407720096744017823725283176463495769348331978253123844524762795113621576248098708845156129639026334116803125366347991595694644055857777406822501118791773096984843024262349963319906761114071236346852647399455474699305580277933761311696334788457167012952380948322952367083169799963036853969723135946862164061702603051587413625409718876106322822056231589875077392890683754842896789900120048130418201204761066507092565020720496468498730403479108918608056671423611085623182232316887859802814528732599585124371175231959947759469576211827806575338878298322154565292517502937713707730484484913931072657202118263334269972870334572492082579418173410613046988506439087854464174504903933798106155821646122397425518570498123635535465338556934212015700933557543094811698978393010850049291318735665665318499366990125505110148764587345642615513112305669436463437221318097128068360240257199078006138857291562733786397852855650147802944206701468191609553112961343884524588443949931990278853480237750882848958405337291922722131039097155602591614276955504429318038442888828067977018750372651163756110711854413650300225193959290598010380330609035796061249582409777993821651957110230040736143095403425678010320088770301700095742049147267376832070094542667070787876370516836583578496997667897131771438166893243946081784647656827037033801050948736878608325475249683603806823203684558302086103144488673005242883895687591224184938729882432299211727519167243399301147721686508059741525174001462232944899259760734939752909995497958717089827336282549302488301223634683813485271050550267715235109445624532803879616222329394342421322332028153057645656872862889784595265260733645611706353883253726654772813672422262555080395963876093301245637098078077497174185145753226247400890428718471727014341529883733417610980050199175530379059644820777221475676786728600988215923991456890263230835136536666561625874955493881149747314338109404112289706588129376489281546200015681605341845026221011338120978693286710920383107045681112456084936591924843194801001631302321056795194889943693670738832543608403381404470139270922339621006633946708277736689342790133583051939446031512567687367992704709611854283527561612149002776540308126140165813084615372048227963959227217232810949242196921689127882339407910951507363983678807379767703070803752385905467225094689292316734663932316376791389928804561568093284029142655847208850447380963517215147326163096440104005454382703768042379966805456578189864110666240091206101170162885323885260431183003318446078372108993121966116359189006085862473271962470733089024624650971583972493673590004081415001749041082568356006708157154038210367026363414818403249691149069707874995788399280348422850772888927695075510906117616606788883598849841980744394458488927183532849344748001897109393875490355485088347055725092746135003873018903506464719715606416428118157726405766650857450321963004482383372665207144048150193914413843872141583569636227520655816297009961922475426447977099692970556954997861982707592260843388728037764788272929674632312717732006520542465403991157777245188764143589955815349159748937857592598174244433265454601712126471941792848581196555137806729256814056131719733818957534002999726421021040292823860442989788730792818323960885191118376299009857939761676137882393569056150668838875845328687062261761050647884569658858698596367987936202868171595225339910153144087440771024179963087054837421963791415392819585412901980880966306087363007317729454626065110100831025161688690529267787255899894152163702743732834057316228632909817677758938478734749034885811472327759325491455174496587790358804428275454125310938605724745889762638199152217103998988387729693876561526060710414964987489030834216976372039926591948008993500661872685322546350473952648175232514002224611815543727961679387248858220668225716170109744979468378417749399945469810301021358593927402357342187400486284605763399807619237830874176075277663085656825590621832355935754157070663097695226309105668235976928643293729528545060703569717547361709095838337177811917297692084879431339208419601300669589815833361129202073351746571989363146686684506940482568336770585602953071110561764363501597654727322654982474210987981298813296477782341283573736017224780188368195179550504315370541969812381176061997328946756532060943287421610212091689861973573425207864031316884010686189003027865775024903301804859808291718321438046000534790593074868621367649806785974661622029127699834885099715573094469589052907004682333069824970666418225529313432692543829329228003376746018321600451074596827082449428056721843578040241803282857274845216748148669138255926832494234831176715946403141670476651048034702032162274841642469824707916557392942105593977334698450656116316134400494614671482440056819721092305452870734654425486629425766219587671391481474585167103164571288934753619259836931350461710734026989974790598583028958350002895975445297493386305137731213895606559750496421590575984053194148321653519594553369735514293190447332568181897144234139459582824696500701517194607158667867341916376519662115454538829115095248415828191937771965670137907492637719164775198903075626481050765561071229188435212757469119893242461238671813073794546991659348697673824409231052378728581257528744838055840268055852269284831654659683743744863177809023257872713953208140217805756144991649065831650698082508246259740248272168745803317048600547613797467060788078825138531168538706407401784051770251692043809195335619512488162503156997386187474070047864072581320855764296237372471290608068680987652409344201362000523984107690148373906245479706065638222498640087871284558902335337930910940341092961186650297354907424884915633434362370916967999306630204087254571868385712689246224510662522923122854830590594958184299628006112369572718906371144953923246395546275186080772957770904327290989391327699774515947678458724183657117722205095767772296024973891960901042536306734318266154038099927528037486884157869875857498276424446157592247376650029353779126319429129419900279777943696151615684387415232134816311741807449973326863763526708488169346556150439230154129234475624716953936303092874921906864729528632391497503056412970890834508972435539647182544343211537311955121097062992296164856802855541547162311677621590932204215615343152340422881866065828307260229195287048677829402377302193190863963646618562625215679049271121465295567197472806990436274569173183056715954635007924419252272931392436823229770466864270804222423869874697415090144785802610385946072438445704795167685595948415464913033597668204111046826274776925954536671529186943122281586681229187466488540808663343015263838127765724574169219035205678962309441743402487846012830183708868405159230597095447352734271082071907135246406426445055596049231241350017353441441757045348882633267123588040318613028389192502614676558037341181164864143806939204970042622341750677675916253067787316633175039921372786831306540642950084434190479630400738952322355560402163781274503756805273314054356086214624056324126219591509342095930572149022592721385144995195545359643647464291358047371367973080727695652002410347238547221679070351349503175194073918052671344770133497470185465844891115870681931797748179577282192984780270510489337133791261178015121984146935662509106306784095785265102213562171112528186348416702660188102546235449220657540102051468243270992026616357797371811769859907755777567582984146460617130132136000131054689768147011231887879998144387684828623548982578045848180197862812385981564846003672530381859916320105101348049803059142924700077339973749309555527300051774541662974492020319581154048131746018111301285299478138125719590402349829170030543395403396648225470349219608115649447816855364639855439266295929951254769890747083068842354751263857007794156601480845937074443501085908274088292342265051108239517790099310475903119062411753032154074724870070260638510335736428138394108039776096487544634558378064687983420770954195927119098790890992275134320649950793673778391839645406454631408708268249165428339372486827677356075253547263155270430928636548671513514927545660978349671926476602170505660881048604863762417960383787924141717603102198457616948496533085720825623991250588621035998717355201051206120070650876733375876104936575004214606043321663603462524760390117151675666780592433395165315637132583174804652650710333177888219332743523028033969198932538095763434084964391404002865943745682941586907705616596917374140466357935827921136758543812444188377303278378333213868476101752036498073109694366833775317552685843623440214901250690171473740853339183963894543323832028519204226812264620211907654381193373309580129394818117615672271290088419851697947662256631551227717954181054117508634053892063852263738762694572317410341941285760370249884363062453564505134521920006492953112298033300816529220846154623657893582444653789190202636512811434378541603684233556360798164621081297341689424663974952306280703121795369106079611918521946216208844415064821250199524922716826296191609530640720003171850077939799293431051148493314540806484964725324581112347574390820726887902972867745145278438400500886942139006534372002180573919996772333138674592240014510150160997541393758061970729078223440591935714059039044187026372053701422440497215482366203411309629838227806748298651717660107468850614648092527752668138815773475887905399476436331689021433185570256543137487968246370163962640568926627486644125423914423096718908559497189174965248308802592668356237437044256466245677291654312398895483577262948034411036493219808112503418484859369520647796727026297736734456006181784285521135353916930469755070271266160838026781054341212768644823591951686578438596092419209077732378025687100302440829603947800755180850808815951053013556289706823445422789031103986587123638784963669100594767989381276163592946486106673578199208645279089336628382945402174215640230945657382853795162801115175113822451401018049054510026842028072958134574690806036675120957141349879355552310436012214661840516243217914943525452932533734234473287037714157728562858624573101628374281308089489313013308125321346734256108196792106611102862566277210234507387869598894996895591338780186167059648095989600467260867858047219279193683599120904653455908821142988946610134383942261663627949042104225237402881908116081199346834410541790700886971927717340975177799224751392335439681500523763895034032763124162112928882813256889262019845258095110273899256392192120081115036794748723295500022090127977924726812458013159188356735325894171744321862625823490624746919610327412879957439926136174565303040521721056050850590691251563795601963542806076449685265072774403737832453389316972916597539209391363021494593133291391214302074426301933176031678937741040787000749383978273352333048484032945239986087424778529472860678268890036842828446514054109396606414866628648446801058871055430374771122047979738387837873340648820684622670084090021778496917865602648685143209124171898789025374121380284563627887920593908999396470239485733558176776797082505251447687854280377258275684542814995990949005022090460595988768490456146632684988003730772718086016390077861982185329809857613423087815114356967697741039777061834120323796629305880767880267424680020487016875746366163112443508959661382913894777577045326978924449253963411773564299000707153035356317084898517106877262287561067492234539873413686880963105955371638991590604424173456251867086687258792774992080684340262594382346760312487298325024648223839860838553357823355671312114078535254718378445692121440731035079828601151701735762764348497888704121454388233879662773488084054259554346881807500508663220982725335738893016668332821167388478517883842868592109735347944069315970228592387233581373524273373741493768587346116226476356188938748233484538218385413848922652915035072411735578164992101641872906702804327382072047911061099048084331726589735524993436081807948010986556941829453612189527278677316922733590274431094939784037729807046121368874250740643441552849008018272838947585451284113512754224796229400239058301367528684139613255442567342471362542949858647386070659369997712148763459508722070062554803805458642445948090753168752619331913763353941396063340319253452929700723244913460571209049577662236046298628799765443680938666631781062179585838728809302906904069997250810069937834129011523156803717626852007039398241772978860913815556804680728175859728392241353553437711782420826384935700715032023845845552188188632641834422582238361653849590586380586135540698124056235570318952158960933019912140844409548051917171119221485909801855044644900094342289256533561685264353893289722677939931339383793411165687083953749194289753177408085366456972259728503690650695527156289467996934396342088566800844787231376634350227723417139922316678430054443811616833318803638850332382864607964964233964424828719127553485054066492215305171307099507304040477419714325350720273416045859585945587880624948454901048703669801323745605719379313899188515397590466236338304883815123512676574775701696060202205521479663171004871423015036245497999243591334485206286159800708065989536854048754570735455106602304539118167937075829222948535507312638107772397424798824832539182336170761155352982624269927343289394835521669689343046532888435430537907382046147188366534650891434894899382036035624557613154929535369037302797365598470054763982588005421129151334577010795972352575054231088144410578575682863815258100488187205567747785761230162079860809580649880969659519876128984876591391983335944927341313679371066310956808822872415586343082158498326551858353539774744455017745593623644394664409271565817148791065495937517920267186541867817425310461256134704225919993960119812398384504924223131902973782094508469877163050576947936119265881326451976330443617808210456983827931849920465307229517361858132067223602846094844850534674055644635356600223999331008679825811810477089449167751029253355025195917385277887118299574097604510444924389493655279826691339015604343538043899043315119223769495905510737832587673292776515694802347961906247799028120546721456603582392855116242137205297769202092011165681643184415106094763327338246714625090677560312889918564961553647635648699285177723556871104281023603370687205556421110064449636446592800533444072365167256048180901510670386164256398701343434975441788305439327707632664292618593110562327792709913754174108251897686771074664872515501909883580613413516400011291102005532506225060381246602505774936210548066080145062797656159572137712948551111799778313453687579102040093330025008745256325917183557382612784193179761115227202131200904714708303057849779543183420344160723558104509137224958329803028312705067744110667913239612904133473265240674642377431574166242079801537279410974302627254658008739286171456434579444264230489357607557031546990580148328911015630782758514568226289716965129125831817155853290494160551324593210663489412548424278927568112363396277844848674506647878598290757853993212356447322752677948567198752099786666423211777494319953141778688739004528245083766830794828919549417179397977963411050210560003970647837130374512312326181619806436201933659677229057260010779871335308665819810196354531383242203060321069883545530505157821601431942380104676725634219951140831380549785738917810093849128443336040897968017716706809195052716575699118384701801713622047899486209479738547988561350673608665705865642587990034656181790996043275924421429211747743569546669296283663998973058648838796114902010618022618340918544474633028448495643676327915684727192542720631565764499270260717767907660586551751099061568108538585856933441105850554170805062960658285194151163837921716987745095890622560628211036413880596911712568159896146475385220551757813688722266640441423870773055610167560938160001958434073463355894043604221923961607642686494873945420698340247445681948921951002482818162361710796863832455018666542665837851800384216906824453337110832195317720411187908680400558617434708933695427559362856673276205372770228220249326010207980843691572403035036137661532319967324986541188577787115972838717981022442912643467390162649765116043183284413040853906794502886499105915851703838935062612834743578290570978848016568692378252954415109244847384009272733040101822020638443831798181277315877710928483406204179720417871714266520408951988502197476650277358789315667540137719389758321096314287944944867272691774668909138559941059985131431961714353520406612829527735372981436013589323896082512628497824345641757666275453630263305260645770568476845800118732225527701027803765518621809677505030975646921971260136805488730331139781555535576957769439475266591362194220117565427449551502333908110228594735443895856995833023018518151717757204884656695543130640111632801191693860336657586404738737816760351942672071215835151352560252946652843355802036906823046981906610330699486048834453060726960534044157260335781390029024191709305448074946443433896219666018749888352122230538601009879344265161285451561772392897887378139322290240901423924702732564019466891238307436725397301500479295076316662619713939585305480883304605491186064255379211577621194201840602892774893138918666220165346265073782156886685213783884080721993239919017139127273770762245220001633986780161534638130986601969458162407557166892805397369287512251615917269491602605739696442513153046933899167227629232211642925529245077714143967787932261054951921438262383901018121962348500085169888604246063858191850782220232445293567907560415448032974382080165969200759050246134037599636855149689381130304033624652960500333147255522786619342529227879314669744148950921977457852130352870070587615362009739909000266155665587525468612098766316294178666859199790162777976723961457669866075825966566324220022363887734214837271892955343586183048483306233214991715043255693889122586734569536051087670966743263559871485819589230523388332044756730629727603473738144596746752343943089337698701155498658772383354174863887968627094016154929001982835438143695654653170422794961260140841250767664250974364176208890855733162431164625830188529648603593369263976011487976378544539713321906326651827665489913117645596340315411341595878812116439476433982544838666577738628385318358102782560573655029439257092504056847511970738662084339576329388557748927602687148896773939262624461938291134344293174672839652666391667114618663614851277055752459444913804689829033617009633753768131634269721460501649830163387240601262325428301803719161171821345687191363427032809826842001229130074431302369392087369484451365739670750747903875021587760751779385263413313890538008268090244449308900799734694317359264167085253432520905465884878074993054449766154557882881492034839885156081685670829422310523545696935652163109851636269108864494129058221991410277179547450238654556864363168901591151675924441275251217689203059391523596843478272963463432568433094601252231203801364253171996017529340833344112698334025617197038920879343604881392159698278496008641816020055414096475417370447267027563801030053818978664390437796353485912754881907122621925394090809079816229120639390895385399215565558618805899781022660096049887481408532209844846932641800034128452043776611051010626059755581825716133532311590004270393075719951861866434411036719305761490441891595573857562423193618978917800111151985189679930879685767959640910310602174703163429746606203248389965455792143616990738071343031599068903525066005001272083192406618117404997881572778135018251282323482461494325424157110912349283306078144599718484159338862418569809754967360759381059026775878549502196146762080452405646497177591837145984735435351418338733528326824347396709243402080197912742464687080409321656202376850114395933045651155136554470696754844098164219094819708696681929528702110003945238281100784867485128934167241676984822440368009332750458007086209001373121558500329458871258574647061325555049013025699701783420081207982206314854021627292816458155228727817358122509089561033541045033025110209164706663317551157259457230143876402420005038156333801593101076436756401188459018214218378662217333343044095820676420730055076752066858098345958500860246540929342410644274882072514836570651015160646290224045097631123489411053148483907696821728699944711377112044351999605890893064413096254891538486314711756512988048314643416467350117575481379302608142774508067243233122506290899629182071835091952824681963024741615154147039391635485943483218287895117098830156870998105069043367239597123024616654954024996672977377760795748953808035527391994017118393236275121963298559465646646586401070335609073050384222759382320665702019205632052386373926877227301455480205666208329875745812478634426620943219509944345743988147344971298129426913911752760224801823123439350752067251701773320336737058822154657219731639639268901411465862386088529697503589875566103972018455829522458939060923703942538192091526731974014149766168080602903418550293016180728030967752449900696907954595610895768102913612316560960344235596022995151724326230802710082057842029313410527861878065822152859483672562490892943842350424790136082346859395375727958204041053531033267251871189143655354534027532347384936390610494093280613297745855025325836733849245151748086010175305809757525843357097852161345801587713778017413810275194019780123840421316721197811412172548414187311261288484996733300931492018055445924695687377676003999757004218519272409167691785731561579626240807345893188510399000366789945550209479723547753805648757863348558928949572195066724911861930759719053068223756740925709763819725744031798085721102777186868148719617206461038669680249154282882781852699001578424922008510194397122107893560495647642770080205217535601216516335934770893541073336137196186421473877266515982526948927346102237061498970633727955399161881022315360413344779355378201283022643653771332430566330717403733214103058134019801246375254250501585812317995490502248041992935460445557677260943644435843607932072217808012626795920149564117490528082424015351896555671770381559095154241717513082528000615893318282214270355555050537300154675292611463966049077456903508942896911350178663906355488238036543475333646303967336544897713636544482537266652944869837917411292519712014794654602887409908479873853987671888310547012958315984337488426585172458639841306476229719806551911590685915550358039447609944915308795533100217230784025930389976506933636669438210517777698476432247156928537046519917160667989881528190597915140486143377587366465465282951411825575171762949132648122146157224971101053576796083274653910302458263746404649917572174981307869012075290436551094456287738085360062973616108091232515541725043069781054609211648064852572668317237004879579043753657754804938456124824525578560189548439395397048934023532461742643058089517858968244125566081298004821726318319089274434398954152279984151981982520955195239719372878779555475172903364711004553201527933193358460865513427789527439172280865893629249023423748287074381732850796187868446037527285630881407573919932424273777630506037164407956872480817339120575193384936305290102907369357214716015483077126107686036408582444683790919049239147252686059726044272304003830448455885472548124882195037840180411694423762230766778318794673463393199321858944441002342870722565846604216091348286170606567398209236759374756352892938193291269035022883533104393222825716745292737482295090588249654157141074393933383580782908562374808772484869513266172203160471822881536818183526237626406831443977790818204483493696798441561456926711686117575662726135282213627230745790511202937219856404284713255490714630086862723388848661469119896979048414944726043261372735270137427619574568106971838546769905433450659598906649268921228652976186081215792666876194792568203926697567532103849169423794411482942202325733161914687133158257981530639562878957137601355273143590774580378424180992344858962581563866122390717463381984197188528642553409494824042992235301800937471844120062186535512669901878248180696509333126203634067585157308669331253823836021422429282439732268216681657501326332085439407103801357088944581354514783047718260177559507456292539038081529573271474585193995476442525975056351140923637890461829120237289886962643554844892357209791125156647210109795808913111750084225580398309918024489804163090272946594694766742152833733542640046211764116082831816606666986993895391351196646005938177691645411719832249054852668170821154748251610660688761828762295726394171291616008163858373684741579657554298868648399183400683102811946786441198401758951942963186013323442435540319546028984913563413539438343371281851890062486937942991851571963911833195621288495551876113743367620886061917938585220087445953615002632977225749162862091793218046453434537891159236496011056473187627574921536903910397832681757556348256503904165744832619434956350007288115270201795131714855846139563285783943697428589481811708271855548900307126070428294068260416077170418002418511085781700447096672459968017368857399279586274102241227474465123808327085527960433435587568294060442453004983208640516428000900661305286428798185918029041463342875176763682892291360242121921019962917604594122639591475371667061322990063628470809084411807458732615983403676275962920398594091050945640711740072915891379499368650243592134312432224730757504597375995007826890975155042671233170781158414066426918797661738463303082846050280286003719630653918484985057443834438442710321063018599700714073832852135810633639501106331426659132985991122964385067426496071607680451545352696260839286543226419935471156249824314935152701766296038261362630959266449097739651817776968322333759860861417274412373022215443654775679513144338287849945741126994907580809722818276336029928445279570005789898932330497649798123409262701213283755799937065125048824845302566544833492463281946842256435950179964057082881707583152119229517677579463200056010498021771082873803719497434461652808971776085619794624263521837633651738226672662772347161688721712215231575263358131199356573325705744510854513827366517118309780363772729174734283371613468102157586228548135982598219077353312566458606001156802295543358587257014292302532972253289249958814963268390737237410849030649885714092572197050960642964769164158965259205378307069209190628259500864365635995326109769726337981251988399922514189954618822606631752853445747122497182024999017083408959166788947270731649622878314804561704995773517225693018213618885393086693936187778398878456685085072524159397373218154016520967891073665706879590815137787550300349155414465857077406169006022768056858290287643382884070626939445317167756702494122486955425643983210857476835334896303429375903354431203074029486484245452674295259320065060284254249398231558757238032936100027473774961078102711630635015369425049998306825868790266773490781741279481456393076575841479873842035235026501744195929916992654522478725932373365154005199967968408736215606190849063132358682982039267744715043813819824544916200531398037981089299917610405501441701701531989312728773160891451957733712866844432607739106612319911060618542618034996528231292910327301567751074790558447175451601586624664371813312676444725404237335052020217596786884707536190133316369910191611585034156614428503759570986317111921255085903935748055997503669163848516356890973463050027344029381163547115250005646907128530253414686573565601304681800175572064287212660969547380395233785224073633182030309182529273418485954680239143956970834270283255490386479705614146768931552220596060211118991410626787164817949377657314481396848882735894513563245900263599341081192985711263721765961161304763418469412687471189700853750635196998827996351385657420792040062207623617076929526752847299473056024676899217518892805101881472550203118777134847724353444897109559718527197558394314819196786871115616369673625150724963164096270044330985553159262847397975280872243745499552088712379464361883242711909736023700680324440669413041517774118112093545926659038366108215899042964202942318492459100047731630559061455827738335445743391932269916153379259263937062316642701965166324466323195762607821839236093940527690340816942542795500183795883870521943048181566079902487912926601650216931097872731420312617619487337421556492508638622459386992962461307469672077662188306359058083962402471485357789258189114108338998406879331902213068155115721490944603685791321225731026042193643381247149835309694875383668863249895979153808279970687569926492254601814884886336648235065173531611452158550727721819981840797859485256253125092108461807840637605775377172567869983085696394055404516468097650565658336911213295123120600902875706621560937488538122167197089509442530044905599942907366911363122227775587846325717689556529057899441719188865863020813630734763091836667751256881553007383185280870067751684601808362988676153941309934735492573410445010507434538243746542703659763836279708865372049700523393353735424230403910732602223288573698877433798475384120791538121559479472473041645430184176801953468479691116905380862669922793564032720588592188700336143699174811273112242704300188932035849304730891180683676665295553143701865775868153451316222776034394631195943817148285664571773857323716990333228088819987828710188459904187225868900025870029314432668651839949730214362691120339472424768197755581878122165380574807531916449420760478138236961497537442431850308974652947781068763234060106396861766633139221971648992229920164512865787029230914122684088074086961946446552382164763262044668870899239881209819141053402402415857074915115029850896404747618910894804913221325835482013323566979827126119863689445797560961718877181243862991825242929308074426791465587361151951417712930078781074634077188730801320883120477225986841351697483927679027525733547792699323414005662266437586090217482841877952574540606504676864809449862597205740112238187383306328148044326280640971900007066035470190560492828813696435563369400027693710479696955697520404765394987307512136986361036472106175828940288611395484273013228106966087051432108383666707616217567185946319038857376750965845980561791638570753811221104200497093486103921936973840527051311572249436919104067923324220940343131704559426373453102361916455582313476016362603944843703653812362196788900326273812754760727293361880878711833955631166241992419271262792526832481240890673113416388217681290569351596722994095946690032628787923637570728567093549099566093610917903934927575943691164910316733423770648221222031055943318661732738511325537618195767947450776109135524519961805908890116531639929110786866721427631169058391915927549122770599883118277997346790385311703357735132874345190154985439143730110415144512590586085614857553045441582519070146814262776808106913833604416808601306651696770305898726700760108978305756479615409605856218865651969434011117042464102761359039753433863033987263041898149113083952502313735665093451566199108544918295636087921859294964084678331616673861243875478899358610629391911559738471497358066774987304990012822735624715708024790035006107560934662257141268645415188761494997161856370262938059476044389505733073956762844530973114199092746476258818843091319320563438270088407446927605101112705372031008686628958066449562359228226295520664758798784052540817943867162454836946566153446755230530544369358452239525429632786807903431520933214315961942937185364986242950245772535733276909795661219250098084532516283211643079374958277207532876126727419412948640918805208311505422308197140355872362166390336278714959102936581391822881554038817025384730449660495155704308690828847659667877083936429104855799788078392617023295044252496760862201347946381101937479112406280701544386535236355535714720192890465139125190443615770775231934133309791554874692351123448079530997363529729543026050582931612514423648835178115559626605618015383293203042570355241583356414174368641237775466467419656651666227251527107794208413284974295234341733571787563934033669515026120500492778110795836004239754335226254381415719911642576615787028053551850174696622052930324293935463817965366717622362255800362443714856819022179930762166619425016494154171314218612526180402261605378186823634174226844318435467809688006518428821092052068740242160458430107669188678750777188088648457501314774465807607594142889162092795206274454839026873275098853241350101373921006758245684691279497843738355932317091634412357093563875647692121846373278103893055541845214501767736839183949268258798058662086888526827771291865441690602516032904183204966992335493536374925716442143954830958001679488039341377195187256265975520599670952662253704118455991104637934366545735181873591105717214040675868843262186383012392885263264429972613349662742058995889410252916776556531039063728721865249173586044000366166817379808441364386501907461129397608724849514091751762420387585233775685981928157295197968296883551295019264728843698369191652379870003616711364241514584565538363392882014715908907139008256013004599600678193824051787555800711864328836373564853001961667143896710458683008451733775401678439380169125124578703867479038628098007323577496652689368851899018323138946206970355008587024919415694333617129060722030915295665912644847892887824950380924396263184659393052639873132521122525020712178189512556148724891958547036447782546960804470000869536471622595304000121592544934464046607677162144383211970477491393063289025934719920730836791531266803853203446453460628624921754364482433794681378945350944156536100434695579308639260214639648792031587487991845013313380985622432215957810315090968429457741223600450179940469645611475716945946700900170292492012362328517367686731001207657044968729072824697409470732185468443323558209076063727975799982098894905838985140437975724719498219438467552568363710372629117395730521816188592691060584598217321541064061825672130607537532658893689918211147339907274813209085061823088716246547326829740488274739873128981042829536460972224397363487574200408228437791347925276361004686414051342035798816844824759821097078636728836196049845512083145704269220433673919946005430236680679439227498939681827830666528821816493582427838727389302056140317123445289727226973184788648655655552287122840110800685405559093959043404080015857386876904238821855506745080596236062965404093897549257308337744466898476404839094536480379781588723116299965589063315606362046692287069828988124997915692822624306201482834636200053417569240500991427737394798543318179868168075859504440973405791221079418971008632714145157219175054342410442141438508426088876253485664005593478718759623085216998391744505755689654593084497426078935021516953596462510339665383512452088027957256380360883722385768453308553014222922316054671095511435089950264708112340680141832074562458795404751982217034742188225272830684391628661270224170594747487026348251832991908403011397889012979714998662570347880805762709953390448069153726181642611687714932234625053225931945762660569501667371956731705506788696104491405875985056803269791755618639115508543179669942204473945236394838280616298083670260360533826697863879283743216600255538789069011960337309538603345227482311578315242898907156265851519517423449255412689108820886595522043043894657818991828992266499570464753885343167818804730145314531228630645348756433584231965889880572130263399114654181785449465072346902655644546377415507488928083586695485176734069933602447553925255153985332793192721684839890695096960430711701430428059470364664528212600553240685861418981331920404683966487867164643544329796421282598646141671507161471992470600353419801971699619091306809111190950562262398278705636543553417490677255537562232543723345279988641703092101623423495048109370926133972515336233455541319132143903830032940332932292159950357362618495949419836454008068166275328099345412856072761738160275932925364000956801647877140677855259797820934815351795880683634941992106382410085877726065560652197199759635934747425655276158151854257544134720005215828713367666740331493090182560807550691076766190371781301218062686890455738061157307243222837102090821765524839198420551901468073682424868515997101880925818785337001830245861559537634676271929441126243045940867908068919065375571672368172808251835770932811151718904086055427153843456007802660843334897731610127293125796113270543896505967726964476489938701632741302254295375855646518160519973600634145180233376203772841328521380756544961369142270503429768932330192238659670451397957127675332382961665648147621048781164655017927416358362833626860113706028354126641208036579433997686725277822988033368259003458188871960828542536565619850067142340515192580931239013895324453536446593861678517925396521148511841843647853365443539024391739715045582105312782271056834594142164528262435285772897015687740791336210704686205416038783807516349605906474918622935804602771147872315122802980246173394020476853915492777474882948804822796042947097572716428290123913468279749881561929182116742744930137003213356498419079518898259589908470214966170705339817543791517915579611917423162583325086720275649732460516665940359758173811508734174337438701036878968781411859937584560691462957257580240800032477666189657441528412664973369896206494833875020109026410890972286606648937578946789449597959505524721339250656577545770889901943971781988237528086499886405531182154360501666081754916786727250552615752721050207015596385986929196965222986405887366737771299212797313329456903029010481342391031846682657941056248208343371111453754705945618157957485736753092300776011179100088856847653284825742731433668651659315760203494266242104435373067460098269982708012407971593804700403169818576150357560848335808414549040757542478105066786890722892939926820947700356478436315151308603874709573990718745053275659321169064500454601514572291055053981244504700694924337941767424820942551359704717550470864273741492947253994956076160946351175642773584942666813244302790980344126166243787176143202185226962529638499197451426077555485546117478079884348961060903855258738876904668751251050129872689850938967737598637714140900375877507317391774340179907016612846970368000819392897167705567111861636437152777283252650234614035698653510770383572726756068175623282025659479702542189039059652561788955211052249977998485443067684637907877794294058661845832214645308146790560277668729889000846132803251769871017670634856245398869118941499325884498118899549083347202218905364638003321677836797584555538056990830860290022089778346548412556011204593972772578626068526707033368222704282644466754104221210771529847119984117638664330814761771351383069035969647828033481343995796123558801045127699310397054887574327673762469732208721773485346387422393880974367438701766490764450283950185036027397918752746446405867587245982454710933171494156053658902555869305524651796167448017469501052291713401014894851357553004106391052292316339588731201777250608866510812525173624985118765652554534917159855777120263865457877474199211137427549278557509426892134919781237433025066061450146658025785254783307051288302051700300412852069661450946621920651544980956660851915203367659722176001236281748102337546005913739474898728162940559869223275140254238832634735071518295819069308118032774873704100299861371484219047570483725684112313721939482627376477135538173709975563104132816670173323710745010280317893391452236179070964858118940829395681828138672797187353807495982814729166753846094316021274492468071848498588504505529570673644739357900741067928940293856583328899675705407499338840069622246336428224033940246259104888645344880651599386686505195454150142562115621359964426765636571974286390703083420349352803730782524755140301744568943086117895512999396254561214231513498900303496269703261896901609424279684133770143867306647038527891471751676979957917545770849883083799441029724491099172714972735797635180842612530965761085521757409510149820611315899090316462811796145475863059895653556954564468212140409545159931261084496486037340551475731199384730867585725519711735984418649066355427941244347774342228089429723120232922522007380330407101903024990783398094199173142463159533405174934717737129737251761794000398725522000157276921147880653233112023977365600494102916434195958501892199573417759246356684531043130140852243611058299936459432046787824526553486563811945168416097670968182406532394419887784982633787849506810930000896502266636480676061911309984640688803987462456373762007728750174823530130250816357071165414959342453278131176647599541846211399451319709081384574492091054771856090382391668090892963531747929345968357739403609769763305625790641516576664082931152329900982802265916418621420596528410557806853425215337588390866653554352465439701969546399529675395938056697762821257798204598069925085179150077361187049087533370474383531815779628580264826920747879491078826391679356573327801480949909276772555202299236219365060872964383562092548931698686155394165029260184093706752845807904169150056656084703678656922384175925566009540255904159631353534156953581176150686739478202833018561922777612004494198150625435826343518186657044927230554579954112126374269383893675938786782138167505440046538826562869639317291822107748220596370197422970011601568919334521358312150041755325585298729490580113391124104711966991459450676606456481859985827377708401384255420264134011851584882715817753366398260643131932892492206133449487838883812386713895351008943862918918202669649040564111676718539275164943824083098571661256787939944450930441323297092763172097569675511941308023092496517734116359310239371880103482643645289267895850373024022981438430139576050394603881265310118996794362214540366760279910748819191451476882998731205517911585350688365852622203829402562047810349355339355473136447411367750647142798335560233433160567381445723714267652228094718654404236585487511644163152549686609843519220092184135365872887300566305691883260018194427063735193888436606486901779068460504931550233404813705775597625689741270444252011458996503518753794991668557845006624204385794575957923318629280143504425854109575597109328950678915160695363442723298782742326403001263341985122899164086662807036041207649499214290327834224328153239562643455481084554693128758775818535304138671609412591141984787212868828036786312029204654744307053614201371239027379012779968775914366789404125411592451553060073497887011672714977258051492063903349193447801217447829011926413698775498008788130017403672041511523548546935270670211102895221338392473462192064260374083891641950172617526928087294265896224657112323763146083658342986616345922243172099274358255935167356658606184680503138698843183035588612785408050039745865469692099836721734135919594194897820787703651093388374041710082101477238853064395509208133647086509632408969877538387518991698864659987397592612643731656175323502098040097682983016500540103358942582640488744322673820309765466693481937841236652881295563214090466225915266979242388584795782716547973356163188370991060123142741963846483944019732746330586083065877916482053269907652555811457358873116055941767877593677744699545367044029467583238427244172602460887065155784290928353033720551443277371629458129405561062801652221197949157031807198511596432605840280489615113265674965362319852131478206933394796011251944084527454892011398257575378457426392936192017296255873122726054859811796350744128271541492200685309768671235827850431969834345951774618301360744461204454852566523781915011150588071250304112276145311009649388673131453756544153542192937414581170786015464053891769127004178445154261350848226616614435465714798284331974093315870838028749411743676050044009744941395741565861932209298150821805269655818367547832186575609626471329094011194694436879719221161771808150089447642766407960709094875231981619960377824553398176315620740962509704158960513577637990191023791206075326926201347098715907151696654184290108915687758791081878576756029630415305415490203253565777985529019706990263960401014178900177321424574264142537252489794766874695446842733916589502739691561737458682911546729292797987937392214013338148436558636126658128165263730535965399002649450112422701042040189942676861893153345939207103303580312114955395061326061671001029918766081724471042338883179686154739392810629981777392836136451516676414490158454783394821422797463075362648758321864593768500251822861897813012890461590296204465195629224807323708318894689549406202414178611858816839657557141506252801996728112695537782241799292541266523190658407072155159271032774218969674009764336752810149973695669957095605134194242752840141063278318863756899743521886865477409324464259482866190767740889994348102735030250634365193695903269830224287248033416148259287053055685239418791912696755327308083045322733766592876830428170457413940650660813673417003060263088727870772490784646244823255402212158072116379498738015804578849607228865727502404196501112779858089235653357256547045496594087247385802947769166937751216712556390725244156548597482012540652571555217413001497991989445457237116758743769371866585193131314151473464898592320115304941356694844717172704102812977506801104375050300619249718768277453415401697966225131292071387650915396334516687542109709909276236973066562705012058566084500618944713144286144260423890732181114100297630200474687629598598103858918619247940677887228759103486610249149666369091481194461242252506324107199898614913850952618901813472497378212100146635477272573588489419649057774419720041815096775600566408476994185020699305985258607066569177616201616996512614136852122316464128273495240821555059901063669627055996331233387202108695742846608335809405258175801417419952536472239254578491770862635025440197146600661958257742901572014745317642469914788356790572920932544207612988222954395245428679257531157929469988284659893188338097836509194578314141986369196009177877737196367589178949839253100852099695303281550622485344619010638135493421954798990701890661379102311268864284299601150786242712764111622634955338135620266534073747965161071782574059919074219411747369991613770328171847576250839912163694578045581985639852802491421976656783622767545184424916125646181118616159757218874080128091458128560886427503066565425369675519610880655917639251902768636704961544627398762191682993934161851613756493955404199443208581502964605099785508258928673595459851160742798423276445383927882524672365734537318357710568368887618220456425507382179366271371527136200734956053146959472283986521338885996070693724132861465462110222324452490878156765631711810418589543768356862892097977278112031902350904312793426276985327733150408683314947862405675480856803997520442234063156896703147438603012881625614867677445316295148414277595744661230439277739317061689463009189519473050984363920319833833215346054972606467493166535059043016634901508992229531188101618191207572264709152951221595063179773535423545208196309960881174842295493710461492324695672562012500224958759381997455797775878081088885528004326344950602322582612964158858742644368635105239896730130105939598862490056761504436377676680196755876041032749209310537505413438885093393150114793896663818228702476798844139647390199616270213701911315421676738826829528100326659307895188801036616399350406032916547539404543337918431015830484611850459215606919631518973353047435196753108953941134503670705519040220457454063083149066332848948378721404143219912950234555253661758664212939176668748027772256562444511575607166331730742291830541680025276414333065407001793118336106781383381470500410725187304662727171456811332279760344434794645769996531854712301449757497512956008611960900194303505634236022682082444288810089984135692097061029122996613505310220334217589723442459704299808685580500711909024136900582285812197860675428290904296533226222732868736885766447523686112957782815673982087256154011267381404159787243177760221946638924397610493650922957130357224297528627900821334367756888259845765310407835565148049007679507762820481832015604413542005646464716108831816588095064908727833344474052878119325375552423704193339455095061190123462295338218450770738439846505031136031492943801841994643500654619812372455191982881460362857983234226097800651737157988165091513169303260667926257123164435019697122097171499382565503730506317410923494570905860987227871124937662941835874874430883900551096765234229791053440544017270238771095243390836083054158344841162929050561910901993764631126753252705030101295680906055636009727209992762962632589618711816204083759455065031035536638024211296993395045952146299280302613214000254138894293919367849263438369949659328589812929753127357505202730501059000478625937209812298449650084038498880284945866998878571994571180465450577924603770843666047065849583186280815636457549409534633521649876842479601627071392732508827023569094362341851905516567842510064160851327187466461823249258508904184284774235926740397345504991305129454710140711429479575432430976062274759397563923912223489286726920362817717386978806861170304877493353737563845417889051991343303774533741150093560847045199621396447710782081486126733618310744378550565484797604622630098811351131664868664181904580063175806499605547265758729064442338848833880270873638743448415320099015832980499824565112084524450287164717570336179640090838380343357711118078265046256601683138376683773399238789461562025642823002470358986834554431821029338741082048740866015589843772597910752214484480170127186150458511663709748633610689198007835202611303574856455834347122701438671473536125573888371753388742147002934353278007385581920973536036687831976650524302286548903349256445855748707927710028046591870490649558834329345080512277968266278052009312399607628236507979147426114136902499933765887414978716453797943329427595757348742942043632061574771883676240746976984351156334785656195559261856160815470361833888140401448320091498534590453113796039713480887170927095456613490296698101748211085180821432447197560106368336651951685894794042163879293123656474285375753238876956948645847105928467520181578341444744750221458340100963669633138587651155152467009336378647587432906380506535861058597595691653448219699923310069187882507407691363410796818283913148205330411340899449486315079413118502986171753825543201464564676961522674572592729399206495184855466702220753405677957113418264520011674401083488862711907122181909307433332625804450898547337981358027518947696291828491444997820342942532467559753710351026110897183255749481870157835092567031076201725722794291294116979161643921836272416123028705940876216953137719921132659517536952216609111378333315095855405306331223808702864841633719792756521131055868529164525977877193880127701621971117249382813405347249847158061690046376749406052470955829032199511874197910766905151310930960011473150234721407988405829219400573481547848159178996320311393237338631825505465287922365143341397570417217679965965492870709268489935971909739839856110800371438714197212528716051812186571886554391350329740997445139821294370128199146336479149676599598012583386157445020955755999974992727145434216420849141007729566728765046874794527482265756578099193207930740246419931506023373722155003784564717602802798788004669274854336087336555148452301776965204527391341526630022599792699225269683682991847486285587326934728816095758799935639059115713604265413168254548637367267884088047284808827159776053037096978882206430875728949148433821597367791242562648992899793248181229402326892850926986514790883893590497984255100521591533577588533638125741854950058449765267131660827749268158232819842232298775263516434776042412497314886792231757281580204181977932374580283210243710134133008848154778580228105288088062218996525738695281928667397736074420922919534600600447077157820360856892628310106505707088977959200918062668004965716217697065420559623459471638015482049652233493302230636078451822884732575355627201967080479972848169074134556997728958670079325119877573331144265156557988244864702197316838203443097567743141252935068160254510669477304250800888040115522806972861196781473188706308779884248528980256435986133626438024413524351898065439353358859784526553170234060112928339051999498825347460392553617593508564164412127094390890143068609408252340976222813501481444430627461542522768419368913931057564456021264653283540476633438471464658040761867702340244638533705809579260189530667244549674667176613820376443115436522922564295234400421819178203764192709546555574164027766166106549364177845254201939839560587087642621631450631008372451164351173510366119558250492143420189454899932130044019539210710739111846521526422502083471852306106149919862319405917394094370562257864501481424472012528877287773788945697959329302204168441307528458725823718076531553145543760791271599714140576148183141078075052600533354920111305281995152729615555125552839733040386064387396552803203468696036534892360803762825890019480680771324987475704711853013048536270025841957721267956919341870583904934168680542970806659736149272826203957109902788169638481258929813983172106858690262161250339766275302927364418795001916582296241135722089808269909755058107209198615013511955688493672067419954943827878335666188581746406914789308989118571108363130173388543787209394723043560821553574883507554993737214112985364183667120590937180718512274276582039709073628755267819759399824209779588677443021864209615044595131460452457469860124621014081375978198312029959891091315240941324656951699431434258947764078891981606630643642891355067213605887872283693871939478152434751889097011037856112907136528046242168887473209135340658983623102333612089133280494473844205112977140226052518711164398824917357413346475421869724498152506565446067223022145374853271688154970987552240981739624114510124236659456816698240294486155117075719106237603975306064636259137463418202949793036283553120148482107861008082761061677510596499238579997520150909053601084525314958989965937455743927628366320666179145320381324878489159159891014236980357541829042856256122552843451489556063920822443219088116869155993749459122544520603704194469883531920041033092709543775819104373882604433492091976419004704672799741083408530359565106178266109726139444387074155777854035108509454485653010558604797326891599268630562597228788787029820856389227866863295613894253077579762998152200188319405580044655120014590242605591657018014308201183413967454608225700246698753275105998044197836669503490631394697138996880027405922628035942087829384021134394340022748793473004728727793571368929398301108294120787097834996678274512504730444037238025296928492740345939685918968040043659585065524239157639050219308831326752723587700202105400339072958598357288982134168942937431173583686641529229975278682080451590093711579465660305818081751057097526795580912854590379344194169998567382981430998237323840503420306485296075642942390576960010542527526233249860902637263240605645082840280597866037922007897742962299469051146698017454295615174603126568354141454608417365176092281254165855828916062869017408316654582204866708615738036087572653962799885079704442664877756752052510654395975221586233215972460438232333244853036992807134831145808935649193294902386026107996046537830978551967081127214773989428707483480375513990452126989196435562044697071985991833299961789724892278792408837282347153481620883445907113029310596262136554451804782896124653271656679949800876463459334638809438610652673604740895976171515213317850510691035239557350234807194997688364103434625473470666290755790526792805367951503588767773362016352971739071093231282933930139017146339153540589781015465257747716832925907660456725799639716152718792621636265731663262584428145732321418931135079662119229065348241057261485538902775366456903754750310801330504684416933872810746414904425181724740362148802816715498056190872509687217686850517620078243250081759932658102795453081253331548371915017799321579409312252506444262283416307802368562376172662009782271395759626233412325142149269510772204745101650769678346964071384195477324851069088128596148054425806640899422853084121473866240896248090052790507818399143314209882841310938051799622056016519849030336404095114469745243559891040962783845948014269896521057287041029681834188307025140441843875134827159796015952273055048135791057269625202236960321905122610933956506644227842252198350712707593314347733318979737139308131442815738425555947355444835645659956765720719452511335773332079870482057321037165823086915649319824250370447475701233198285536834009331193045368755941965845321139243842692956764561051158527148647692287669114272618248979952543299550252269814191343485383320694721213267164765379999140866158985554866475970176045107317150353017307892784325697885932925792459554638581992341716026999822804222620435937638832433092733457136481500267109450303858477937705544687436141075607862340540727759599966894189741180424699497068684290089448167183755768073327487769234640425893911996539431582992819195233864671155568400639709007763991965141290575439734494906928955333093415630345157822896743899991342109623972625433585296476119180580157045494267262271972324390636050253292609280910962757781701184077812721928281723747003199474316972511026138023644963428890408194592098569616899403164743557935028104617829722992300375140012388064185739748537970131449591670878269030282485051241521250033826860984122688434551729106327805744096788275665017932898492148028006809488980873568093385225515519661632293024881317324075950850631294744287598191456650260907751338778603322549595418414366950711483410248304695839281491670740196204557300219890937498873040594543553933873369192072091654162177034956146500637975960168586674441434437303498688839769674263200154512189827810866005904554206368733260799890342131204833072772321485243328727931744497520321676057583146217161874015077906523974839213696899850463340540956709566559615452152686959520974301329634413616687836149377423433924749788147752819613892669179863832293223143983661581920961827732160913672916791298574543701346762427745872110996935765457035353682437921153888949848637280510535530569108785507872200199151622452179525371004026052252987576475359272435004601087627020001438368496523156023726343839969159853635913461887395406525024086485669402145764469121644680889045696833343341275045356118520339474660239169778459077555547076038533710936585071070982280755277598494637287716896445989361481497208089168814545800539639789417692383720806153862720323065130159772353942427474267637431157199858541630173486791296645842488529322368637845413470558920454085807957398521381203807545469096889472311989646070620408432341095119474287679142048567131732759546991224184937125123334477573837910639765409618732659504844905084262095695553634980604069206648396244501427012722722454952130982992155599892042607136856986286070422104779130653122065665288065957710812150106741211496377795277250636628329774559478069682818077172929845482739031752350431219456515953726524752287927079068465695791382712029350414533609092926006253556024366340596095321906741729866149771448903605359665403722171294481497046434404280743322985812069619270937784938739910104180844111147721756216085708541972658443324525882732856083138350018474561642245831678247949897183383004190210859007304223626274349884764231571082967067500971868883584514156546995250585899915570525675575059120219226609178472735562767019790864548638470953424625660808886268199346432686807904921469572222404911472538881650230295182683009720053267223949180604595343816481990122815213735574577998898877121507063114143912898973931127835578870886594273254182664156381767116190338108249858590190148793611974492932244890644067112434111864972764529764179207364673387921676792676948625576611613053246797452138149267880506877604858652896086247204119934069266904909589246935577330866065948403943597034737177713938340612844633272333268791992963347517699453627503777121949765408107317818986530672780054718287196132708855398515362280363951201036974847095700261373822509408959339896798483356619671743500332347703867652796263205958778185435689465543846151035747096308988138282491553855262319687125355341604673182501956371558318885455320418584382927561903164079327068659762880096724447571960598211996483359767106102347841769885305536239382682916992081285280108701064483054609967613679857637018733901979847887447802804387185386004786456251671632028147500807443354219410038320935186340384379487011173263096604378243902841807076938340593108668684674995058224496400853720097500096873418745433752884320488050659991706602006622626125631494887054393221474260666153771827034422964496640304317310033346918071959884064381136400812870909519014369415852376435211371508643933743874077824590086657449934060189993126385457318112120408930791938942478747224240515639070013873378867614348766490259296102445756489596818194159228184537199646567998751120869754491731746653502603369473531347580171929547403390180992186886169762566093547109918500140707124397151699853549526958369775368176156992876009665768109241931629495752972469536698771726076415248812612847717662942213808090180904486533336328955044413883829128873573389022413961556333570773100749852870284166260425539514538320976601169151065790366476414923109446608294247889756943009029300420814165375362583763733114020786621005712138805419019419358421685639483568632649112682699967133817946218014637735285518874293833766824482356164982228837871465048449013830587336310050722973219570544270336244071420461718037041483867422173609095615677783386034690686148353837914817869506053369084118113917868908805935756660712398386186954019261393654536160787796746571540140110246861637965619839583594865076680593727409667924136108698269975621922987588302731231565005719002237609621047336079298427709570680183746052839690232075852500234820167278017746213388567086351938325505021164674495521976273711141476757831941176177122453243927563448994254881363409232356978944671371746884625928494884403229972221343436347848302728273946531393549087550064829696824154977676928820428569645134651018043695925788627435232439324424961126433816486306140406924794666911099157034237385751044752351720499151395130211020293497341895680885720185781677188879662084298482297639268805324760923710901199844750319844264775549241025700535201621071500302166190712629737422072990219363164326556056542372433562088211980548571469416404128685804288198022113641173237387074839869172081971168647577799156271696608477331691130916333819743804165679304725238764435144995378332012136925115396708986658653226901698795741585237815768481734093352067064437096723148977947714525348263667619579610024482867287788227752091976376556939165491216651976745457345777989210858937364488782137866945052336574584543155230184157713591911564751552411913062564607311658125788534429156574265001868682395418474120193520082331948869079562981375489925695209428148232724068115756501667086422652411549385744869504421947101658476497596852130120831007605358003648510592475899137134247899569702205997844756792338362089999394937434896442571257026164249734595253931820820943895857844436284239988046051624947371744788813519460114831950384756516514078863763794599072271569711930116030529205471739458403136622866107640091384243341525964346362232789753039550204558198005971523024569049751928889087020524723583606847327460761540261610541302330475223761053314457210624518871426772150289336012353524984375589847940927192162927839140457395775241783064529444955338191641500820168251758325711003952814764077683619668410468891246368050481630252225418671066450713173366059036243699895122832365445879102796062228186974534787630264494515818700897161007599560337763320787056285253850140020036796530705545818377717712929366315184777161433742913997406881020311501034147652510097549228428268426137624409448315372369157369071310559920476316680590153641315206379637203642884240207421744831652185200236029467380675070017077887894493985198387009991095117921882208666019383936889130042951557103576720346517140381817769603946104231415047212957053824383936347261769945673155869226363051293819473555933056955732006320627577963237424080496008948804979299857734358498030786004056623209750095023783263263672773453821863033739799640778877693568084102101766721617495421839908490343261158365882955560415053340269900969248136027950146487208934571987543395408136968610874934612756441614532929705534657168593188762765382575521218703338593677507960256150506219639363691951252590302198998146218562054744633955226512200195255373456767096052251816410058192315893826768821173250042920246402440326725103001520702108755059907124334743047945083334361905363781965413804548117620907176947162648541495211932784245877938751422052551231034574137319310835793135596403245953709836752853951783203454543514985598921475478796799215157093162473853120669270885531373055972226279354567701816712552459863088668992949834557316905619520151380408072551634680496741238519105148430042995549395465794820139505779539287296957541671763520018744356729887799947276078881594302804508012014210338548528019541647000842963484780818749130330620148176015269872682524885947338417458786858669924950532067347268681358566205428315212523379068598038897422840155140860260511400083239804925389075561954910612914571842734262876675516107508803470014095357195575304995352974802449897530702098058429809572026462280261057463008110100945380873874102909971683503606305116729056455312320959346147429046928823706130849907243275650251543757363580768292066866318622199797441510754286295138782186114487866625586563793071528985002970311768846848204785026394268866580211068707813699558183761435429363724647087232968900939383376604378265975269202550761336426318049123104921248014473014389094494024468303237798696337471902275671412878135144151645224370465022185998331407003410002492681794630249625588960474073389878441514830626821511280273512650285773638764009435718041743959235160987073926605033915653544280787846100310461386758603726472002346142282657584701654278370525625336413070650333048871140131990406577184540071584798138954443419554478573764843329405276513545645342115499560305850877615337226744221612690676227559899386027119558343097479930830862979128121966457989861853518726702245931598386569299768701950887728722546509231777239258613783652509625799645125245832454700744619237817467087406623212330339381710199195765274788422519704139327689317104804925636627410223995561382547629717861673483740950473642401311674121759651810614239490961947331004302581667413008159657703259626562809665753243316848335249090748631617983539436895916246673836991276151440763407623228821613722412997642480341293267106976341320890668222079469220503981187070183709240557498325672109433517396209705173864096620792593471716934458249776877238131642529776864562178169393316974555175465040375667418464616354785055314082074267050297088484885020090595892588763562849777606262308407653713052358176041821464834348567155095034145373119261324326564759622415640675442683700956572207469112007349213502270302716109940755709493804824542200050113007086060488227933507698149024211372237223733731569575808362847145244950086151804976202678449076775602843924767937680173337835934139042434613862107515493465418203005085785318585687199526752515716933147978638493470352216182948232435394571535219923918490814768931062879043706388720734025652524308719143460339913314985236814679385400509013977412850153070116836007333154973410681521953191009281086233511251545555575616913806194602221790700739291888315538046176173111464311225088242113669133245862658150605753086743233318883414636397850129061042229256568830495956025841875662541468304422698766306267432062443365730819521138585785200099652648705499438809577845337052078049481273524774179737669882873990855264690467614300236930636344673023805809638011817419790441795336984170720405065492557791180478631802311216754698857712838707717121663867795144665148875660950110146855236465711919906395690953040291736199517018760489224086945337504362610380381496510620990290927285829554379186745713726655801446261389680707005294595341076769536620408098091327834599777501135189273701383730153624610006798859017474766815851813636216067024006904274417007492379923347100564985170354571904550625507812123388967959707118433321776345094676394133111042107763864950938259588866527759256331860110983266179764624853818899921941209436837364515462802586656375814749115352153396418566827640681518342226390170066272178978570011980225237382034543415102417163001600870634661634046966367973641069945819532736264713016361759951226562835519380337098243830658651070841007121866485458018598618595635260206347596896223062796301339932796463756738182050923514393159068103914269241163980056921991425693596731947787712778853664741967280267292417639822882218415854586679491767100541959690816790810842094858353518838154527857851859151833300564319657065896494263161437014824464161721977420011540348775251798209495971721620769055759305981289681268209651850103079938185118457625694009117517548813005929928191428719747277468048892476798312927768509657082842408974310589105014400861951113873305228982637047526799585478278191249345301546090223133988795213371014310490597479299255526381470127839871137163440825830739348609063778769865431749832054127241987829132099459963256649765376051953949516324940592910932294464582534623558573067740715341401412178547140907869780376732664913323791893893570160010827597772402503758655616465377389659101265085632794739140418425248100755744368945576398937883957755440741738988712890803498582779151930289478555219874582968428299894683526444156997295135258679736214378377664293244211877974089800052991329499539395095798698268282565221377181106184169538439338458198413682721338616584085801735838592578202408492131201101501483239988478502729822101533573485051581049876091475088248218860119987629249141970799629906261072468278641371147431200016795989702939244514672915679139133257943501620063089183109066049178118800625955913839688558440704158816327109019385182325478650617526537653884347658357982553400441724622780602909005969248222258371436150939936074105942130362543423620806556720908594373657813629554994648169221471482863361870769991899330035614588904770187704734227388056855968178086792235606832460219848923282348809675812599682627810910968503673149071092219297670772283253615521417352155695892791341157450732627693624558988200880762087611327711902767280672180533393297004324610912871950376217214825450369608612548457594024046933001796135133660754000402090948879051434011198298972844454073818343978829999161847289460103763290272162609092925604770031276347360114937068689025558732858940741667671659566147533137342695687122699624917818221968192444788307518994694867824678211318812080616247513725793487449390509712650513531165595012897047676866043620674226001635543640902267152952313178755326917291106672449658696070217881820951326483855019356873601401293141788634968262373436069739779063617495307875608228804552399055062580303057034366157107594624146580023800099280372377667990542361438366378597308642203549175719398430096829431132657723046743321680713492003242718273466382113944796845165637074904631514607908410664854045060299884881345483873334287590998665445644449411058881341046532046686194685418665716306969318336015525587453226095729542910469398727152922962353814074685229945584693585189965288791285564129124907886207774511285467650501755235985465664986434986812102369099694062172269666392975197125312878902892527413768181112856836122913647592205516302258601982096691046259984123900244094922632991011646516974849178948770350110550400164849903168264925040408422185120068343217522663646532347253564033949422136324305136707610321134358209343979489317716514187584323514348179393561100507074009856399410138711066300027758115712883307427450844958308027240318802900372658002338578905545305896516913807761172836877713965519215601329033196976747784565158828924445575073197670930529793587231287239240343909754084914950775596589728991984358193117187789585248656828152709534452881899829703675518904352175464685951416370838822035841673385353997076319937908488404337117150510078261922061334828740509284257161365113315682411202448052770845833010074923756210528984023360341309314212122435762264093023537182281853677755591295964586539780373311036721487694054015417184525524974566888666670653580196169797005383778771332940293967068409268173749945503738919401735166920185159996438966494684567654755511390806227945062098930350223884045027558777502156792236743336485602907122559280868454871917413080628976889560961182383643315214650944985353186836829356928881100504241250512263119454507170777373919768688682477047405147870220376490081301044604266502891300772012763553801475010834782597259257985314873451609421464770825901489180382964157786839047674198448685845954382533361323958993905205787075871555593230294712665458362716605812833559967630511849919774580564914913971114905880173439975166642220752835040494460348791369098156531950682497518334583912484109304549576641811039563770108079028144187732688801219118374035993247008829618315445259400068816306160630175714686113098037037345084321205701693608581216216901077604914305991343229112710218329175243123161541330633257565618467340393677617839428819238375977116745553561285703916284926003368370163662691240183524875856133291790683114197243289475412727888353481413158590061433577268081256547941565735583787728732581775669668072706222833280476734328212897958071064168077745737125704537981854925587258216569969068970822990342059336551408341056728946004530333732484405003164915044590252051693884933819382463941663354838396263392239279718516466066982956565109152398804670087082870095193907103093322517733578408583905011587912226003478795973720866018685033521525308204918043663598595480694921403490880035507945815809934380643394808554457864166531908962016711689251073688486092412412692425560430700160013611655697448209113388883127875329726766025424669699681596106567063302741629423558187603210285017446657376867500182779950284014894339994750050374316376607280304442028853579796787819511514326835501596468967521415597246523532504661392316804375829346242535068011187593497220850579881187124297477597614269073200543255275298001467471421483197860984736397211943582139610910728537674181430892052404995149927394001499127725836499672387917095788776991828690137288207499180677583348672595329196628363171247221749353169992728132022575476392050118813590815049665304184336825626280024404195049440726735023545362642913023119276554202433750923467636599991419791979160234547179793959446089183634353541631867924661807487744496752197261839420268547048969598478521977692594947812472417504013905550881052450782495273034911552870639191204230290189381350509152386886818913045703180798036009676171621967909868712201178245906683992442297714645210967869498067950193721839976417489289730207519615469917355473212840173796561592594534793982013423694693520865627377855169477490766158569204922198314802717826190104971167989846816120116523303042369873266651834900613046480248909075971740346760259313636097123717075428161212563274106443552238631833753679349938872688273097250034833882832689295641805666029866433521288483310189975304895533994846324517027472928221835620628849925726948549758415889651371949695114183668970677058616655941580090132327389940647425819035977298185402418268810994468503275839199316282289696714432580097211643156678948598859897375714240117719136923624717623685394238734694537029421840814268584355717153498948568075128034643497020374139715000491845843136745438324754912751774678010808745968619735364849720519724342817281510324548327643191413892611123077262645707367878833128092690128265880785623188279330274815097828484027438342025676253552779639075615544138611594670118459301855561347371155412178409786261117258852752817416993028204555601549633316198833096981600774241782158893171170034497608358322586609159392273293754283161161205949574696480806346518729876164439486572824033144548344318440748297281396046424880014994951613701465664551515358200811926406094664301914914487081587436955264475076143850495499919881489270242339303447627326542572429041242848190943760660743591317284384144436816199609811878563966089209981629834043221957531401735344704367800863665257458117325655939333150541359811001523808745612585168755764270738259342026165453704274313679298230433990485955422615326156379309050129068005331008052035402513198547683677970321991614801352674963785835146150312944872770111186905512106432632319119646018553095880673124540336839743190789557417647231752721725803858761255306809393096572918187425153327228495446579222628963029660175829510470110727436232997264605833967253865936255486133810676338756870030332118154619580461596157437618881794669318409429063823013805712113172066432805326143026480660814662206541147401212252219767483931002473015426884371739253986743114747868414416861863163604908700467478564792727557125837123412143503367122191636659966528076806875989147691413364526771763297918052882612561534877245767766884236974692197459938192788805342465878993849732098606440311565558054625703633199102181965200436298663227957895736957612216454333020835457341676423626110494716535441778303822561330394168141184100887888183781653226550756921141180363281742816660460492043656143357830288977152456887356514446584687780257582263501640146940330134069390648188618198548940544901426189445162349727437216529438251950574064611709096319329059670059482520693364951528126474806272364641882074262798392751877116962752457916731298228611279486665208965393559016033153358410947893515747703789678011727338615378958845232356916805871630894327296308117733187527257529383413491824808173144289703305678685902960492281501904971386404988323038755521369079712417066171996793362104614412487848360414874364871939633240487285698214003147726573775112707169799102203805337751305721347993147724909645312320051337969432980700687856522896252286697382099850308823529708711050379889545290429150999983512822805568630731852525309879723071651976300158531123740192413802235246030455743853932891771270152221896258640495783787162190124737266363171403696087490212236726255570413500614040027716687282040133822377853365565418122392177122503510680987355408856771353123083751284959863551993509955458748918793499946165355898701998768855654149691865205517664193518514435341833653892547906472833142299003601750564424269954440731197024867276670778243905339323046548329946379538116041583568585206482686820802995440366287673436927761293624468673751475676390060746291687341833143072982625938528658249196218312820049448503096389090140684123697428181340054660729858471405071530409732514728255044027062374773805818971724613405133261855570335617365109329942776814838541875599403524754061121045911355619085108257688086580346030648201531879981945526303468497703718223371212892016118780094625195760476233716072410893171582922112223318237897484463293625113892388718161340329884576035294143218893473822280360851687833132426035030804434418082847728872616294110796311712521506271488807620651413426871060401667998386308558058530656285954314550121161398109615029381864254200107911381449216165933719365875784433992392831039056719725683122077137577202804371573853314672753309587284570652109076256459163376268234004380259602203263382612137295768320189367165632065756218618438755097926930160537350854382267113085697247555551664580865725846844936518812498642783304472197935481994944917901501385540073908279943711894486854350201466173775281475063055421436159748492348694397143887484563431994109516495299912529686864930803645484624934664709146264351879311083495266864005948927362697237457820442629097604192826448789965271533950848858303097774276201022230801420717564878117625441439158753555293314402775781225937401853209068367087333477425213241435772624776628513693646867317624311679053917086745350689124560359007047484316404055395094646293790943953782410888926015373265420138945400132328220325321688255162761346405970583631735297164101752396853597747724355945184867357648447856420481404363763613964087741409843134172850420398372214870376829406806583762078065588268516136711922609788446050503879308467019080898971353643429507644916753243205832645869709449049251332995763623109617067247509425156814612229173542579205958064634991516957065867548581373775810312609650674007573277941020430123766431698976909982150655239156676161553638630359407284979907116439371341252839707880535378015974759947806824056333475077504124657574857695690377713961148515218429193741367395687645223250602320481978934714813305175407964912992647077169343180203597090065453052897011513314510977950988059698086452618217293725370564270378381716814188416609757541384759971661275036098071858102328979450501681619283448939874177273638039595130162207930194124828512295785727738064998903486936935493116189321973217941384556711516390200980460667440715408437668592724595533369426221671061270070825341734726058995996547015864303195940405085668430619734789115385164046076502046710060992095524168922719648346657954178806904926780017804853787171302029411894414127839295079853059551324957779188312571093172961132535293084348239066376903630438567547666993676787015991318527166150750193769512354418083814566707739058717565595374516269142732308858868269656931450521644163723669320348489980883616003723603694137474182444816594988530676596207410170240713715652715375072519217233915856862806763563593112531769636214637161901188217213624849542154406249995460728514489421908416293634446520484339875387078958200111296410865961532546480180338199141079467110258448066857207257472714861318210039390232776286023616631101945835270748058283894994122350791866023377995418995362388400899688100527249794938980876914736415134622141287776484774258843671752375285545997949083652715020083886200012931705711028080562274870849563556552151318877702470902718544891214919274753699802066981047762560203926359949835853261542566572370419181144808903180676200965690781348790346682403054770155499829660434769292341495122792798791844752380328339373677953335511285657041669236581921275460463131670855080248166622832927105323353399976841631831598300099044501350424482361810270062676629775085336630879404629507920990541372474469023990698918330180726729318880069685200554000705180061986632408209417498554696992754195056766530267030462252969858885250493948726164348823433714687927933994671988069551053603445361185366779553700984823629749485707213236405295213009483786627585323230243672295464052884275774198178580128711844857895645448027736988419659016185468282348595546641060971395147685664483536510763330276570687276369329294308901466875017539126348022817050759012652567713792365577983211435286943199361092114041023198253812132114045138096465881252380321072706106534541186850341547448431675664079888632772013522156385712717342124760066491917341616535398338460999319598294608707165593268811125628164174377822610985035829398433279892832058323463402985692429197925081144397033460324446012178394396115028125666315278955848690784421543330247669089649663768001292612466414771402739072694981841572983327852430891153479966062243667605205115447447285374020787722457840892065169400991483001766663982792678220906349761875794097847051753567682071425381608200124673049329106219667588613833646331234918778058161560254367654937101819323148348793622766120163162767837078986607439272633102415281128348452283973515127308261778641550204847188188703825144219864350930879828713638143337294050363153928809630759132931663170325704096159915614443564112223810933406714825980164494296370765388116292123437249466011483248622175834189387961163388501384772047650370678711721206899850550309991742906341859940101500648859533736559963471678302725293681614114872304004093878303958579223080172200919347018647492574965875871338018760414944362350621428894622430712215049140801768402094256278370050125986597333939787518007158041893427733161685935697833944769416434302627794124664824201932982103244016974852475125040060342184742646842837463132373867525208082609520517691111554693442555788962708393067459199041546923872027827460322299290136252467022660498302260186057922259412987679469694284242575504314464519842281108238838620096352458178632614803358777947129952293107030758101765085845965230175535856650029149203929251923042890133757958971379952108954408899601170049644690914198796935689268458158846010027508967941246989832868146863200249941034700297610813694505985297021697878925507193433778164465043381059724096949699325297241312269806907061819965566402771348461399715575248077638247437827833423249981590381132519406369034813546769481346328907898318626089005871113778708279808453050397896254284598127065777753246908373229216506792203487647191227867096171804659956807759531185871778413096602029543679860619948250358272103075688491759244330491871057297435506234361485921499346403035981337868328858980576827092448366184438749840725349161149299715368250739726091725807819093738160370419397502367774174374355083531570695194401437641139516719050133613745523052983054092641408062126628252252098142042652792269442096876880024113706581446251601632850732470041143214734257293005237046777280195128408914174760466362374141650291088565825936185933029188498059754495105963164394755659400292613783080806064884117290649527967143928724185916848077590322582657191111998202985053567644392977848520142192356597168985868534153676628746505995167028680343461224384503735053337381204878982034335094541057321251736961260772470985170000426850392608349574223110806127796811732356807559080445973694030203530975931135565985006409674493613283391480741959557554163959481913401181595360869915180132884284071891793027187636271036623254786282042476167943373666387994191412794099771129603480999004715904823307528451568432204988665137048511775212679336467080455685679037939452196905870679567598687706045699700948694294767215399544558242340641836683937388040005004044272313224836459415564425899105990525533735730148825825775303864796368855585729107292309438497779265318958329261846488844430126681901081240958191240486506334012057624008364293204077366311851306566137037502585429210830994252571319990603380771206347617687074252966023362798192128975574985923006748885411322258247869811992125699146573916352139676620136285401004637953440742799380508610291114509733764594280534930864440961641288700072408425006383890713206556707813825102808751775694999047320439202697828731905319214726840127714085184220496862941594051557470609584839676627703858684609566608512623548259757793845760952996327655586062770116691281149471889631401978131909883581204285025171991403410576437884927527387985333852526019809942724533592497790281013013298800737739693291711924224948111918483769411020393231185701224677540336013049837497952470977608268885669020540451777739364255884111663444518931627986886949473107736272193975773488218474924881102582506596229004956509624653022998817859857631502497302903135210881292959296470258312285807863512525650360703619523117160980915310150877281487654982222180535823021584441174659059434783462129405329557365426276091385219117535561062004677630323323940213420028191909662713273814580982673968811854464022943327125464625825942996765831621744894842341742899799687297260332896593061311619871622115813742959728583731072231418231694453518171668444833721757609768577446070356109855705800848461195463431349033390795631791733453814927174322722596441089821402990143783757940769454240594391420296858218258051695444908002119501535735018263547285031530787026227136387344262027336639531395119323349604490668839044062185640059446873794326459114102130609886626168072678076824723455037465953926731551795337800714049486797796937289615470536546866939274301962590234069067643339700452169504406031092850527148855043744782550468167809490501600797629445802547213439932084977134568521245197980445038570526218015987001278137079577926854274812642872421316471065152655427460754698099916243934591444848618904410594452538441076343710562319720971232614296377651644541004785585012596726170382579889295522472347499239875290756651172601912737921359565248982459002233174983177788691220834965023086006603656880058625822831268197250616734618575944297095652053793254297293638143793457413676122235155971235976900110824578485373390318658190920672995282220514646364392714514712579912840703840312698015938557890708666920571247265229372870821130442529019586627875490280632881637508940981132263163753101939194573196817397907607526368448152252909391830172422628679181937364651473041256888773455660243316211300988950692277173086965992828605144597473379797376534166220846871305982028800979354681264627333027878567571687515290617655190275729242384932758946556832630536423924284198057522828942847377855092052451200536275473209208511339760951316985230257819047531160650167180165086317444470092756056517594720207173038151078406412300371433591699038028105793652628888540927197106927569799297665631228885263713990092639958003133696787505331836257188846798842891884500065154631413597564211623628979624800379937405004626188862652774826889428529563197905921943141373593493096880930180879214555280556772658200474492609526973547281640689731447104011933850068596200433930376139295198930641176703852488906706174579961343758438288953721004975561726225940947773521274380175361835418527914589292279672982173901891050796586835279513190688951829469388739982157328539616595595937039183582013557302790786239247969561293563540105013213732997384280784652948467476916301740951570012821821326998579863731359100123926229815499956423608024484748998445911945802470965832078209279557954670354145128225456180559972756588229108062816196729742206311870451802430373578465947126928772465040620897307192650955441838099398062136409797052549821337369098867956172486757142174935364548950732956244351821005726031333879079903100231641221170383782774476155154913172510381421675541321485991656464564105132823397338620148185410023746828481243076614162337915732286345655149995320733676063893855241399720285330916802934556501593972149088676901351411582299280555726143907997994938352945766600224535064831912421694205943434390665770285481394739071945835102663620321315796184234187536934178346612718777226042352107282213942195228964260264600950130938443975370640330255726975306867625176033872342772453719594254067304753330841247354741599419155974902718476282778238321963394923670005419961891910123817045962182985492249084759330138126193463941918364247424865603713277970886252064850119803536867451415057385225387420781072050084519970095017047606844422257616699724907820692311493241393438016999376979397145879708433102639899371270297877094098188018007995967840082720272805201659062709416357644167037879729721557218844693957917391935692801778384871856935058513189300064474488024767798506827601749286504902411163701831808469083733192682712686454958176171267727438656023101546926349954987872338874388254049723244493596758828859293012094815735226871852133027636964982339502228877396058446095982403061301009311711704744978445213842775658944192090323525948093137675256514876940385710062511135348412675498804878172747717052935461823467066325779321083424969151717538222100902821822140318926108580411457997196007015890171656869582627012838630351885114789467401976265498632226427269783159375956678800291430173243312562536573298619652246553901778682595823361799989843625058437685915105258012744790998495221562825616375927638080532331679388914013966414675952375980539782340893196264160278199705895716468248853337334901049983374281193137498672272031755097082357634757563531108002406020118360912628107265603940548066264061112946186284397751477148122140017843367484083895447174637873543571884256107902978696375368771910224777194250226749182412134211713535837474194026172663189803771070738240438516709100289172305718299772377009588332179753392511663840791436811956954878589608214898581053365832242103288502319247387336166003327593876650879311853515350798489997939115463656820718063663065991221703295541929537960242105757403987820054715833631130170508920822673096074512664975387128315694124001252679366223720709453204566592516439594395710667134507174254883728787072102384072739457553211098213598054940392177529563959662103247761552023980570151519691560193330667026413774581834106066539200627615208631969157998109171889281645670330226227258372068523278673067785700616041812367555803386448778804810225365299562825009253032573909064291305811185786222944001617462387715936221474898632037530499231526857538508113413875119569215999693090311689874915193847428870933583858601030002063556592503094685271866322014149945036049007172263320309439592324323580852533291462024541435843865404788452327154441019681446546354786735302767667400143670856097265465951045916495471930345554806215627841190512335593546373117392623786638163362335400338672939163414968092198041069439860799463764541222853689876034936571599734362863640008918460910207694766427503254360855583304744327785793447828217428154875960221853211924863552570643816231281602153009455906438419722875347377000451656344955402074455580997409799369513968405845461970883524914288204435525919277233892773803622646525392468735392808853737193562107132693709784493911795945102916363962361238368428293502493698853575232314146191239351461527402644269557349872737102979538837731096087754936343579041717175538868705710070198797354061413121797279018431912891158712761603821055952829970257555975825153936767424502569092228028562175193701032940199465515360615998623551549692451479048422114027365298149105110750776091972495455442407859931521471253732190057338288708889448142752353168455500067851568206647758698725898634488517170071128943668321986038445177435385553342081665093933417631868055060478343634690354913583405644728954939766442668134273801575374344681769619362438172985748017966216394156613941604487602337706785298199309042388355535975035524990260179705455559274649825307690439352793266607070907831993385077498474041845633161787642623531705950480999239171564434396684785167689011204694961371413487440136966260299883096458279615857614212404476156223293162815987995079152788638272633315424112061530471732101278902849185752633532981630212300651244963507204463820091849601696478646871961660282375401786983984110674702611036495729779949763485050032289433974803699097075622433227048073073835624747498938505457363038415879729206700463373703440579261727989329383666092704081183349026985263970167740526431561322357342160494854123534118283172210262622187452770409602146833887827949191147349273723337986365564851091430589790148240112631291965684390280639199222676504230684124789988426168926478956778403172630043961431487600918774666617735150645570276261182390782658855396968306924113236978590721792119340572289228072264490455365847746340526907099848852320818925720792480364196184554582531193086699003082308057305374120544533736080851841724658756297185915876753078398938965247722922692441677608025810559137322480799569561796857308652495784471446929962415310187810921837803974150150811727174190240317541953711721767830058114726427041568302039647225831502885370536996696521343441907324637746263707556395990879114544575415287287725896388722532979175281166681769551874958267334632451818577335570400012707673986327658652310168215618431396970635405742138806397640982044511833988528415939990641668973713881800409163596095212096392135471065531670067584589873404570603012362007102755856711050042771540331880746722251626618571545391813276379750947693869199190363306722960626289817252647050789782865130376981751041519277815577017178033547923826701961224075236978941128678457090147148194724705182400745938047129658956537912030038858311300764977046276901099076003291157554031418698162598700596234318292319577086645372994523470972743145754026896983216971567083797431906672395088104002540876897442712711659031863101459755588192677542871605285813688461264979495448345207622377202303309031589932196582685447789355268099502282000250986035009878483521106044856263384862124211223300884451750054407538629681444832123230510085925843539601037631963876063166072738621082413034207972032087412877337348196837755807687204870184851533607546555623370304252511006927579764901043537594380930378993179329989990235438120854155513818206646873880720444293261182285717087259785373612735850749701658504564188840075762613896430355886386024748852709930654063521009811921494548720463017459637506237449131931602056596187789913601304253107973449025150904001141898921761274111128408387788108507211367696090440506665131461227628381762012765369634250954167998135149484562080280615619155118789662376204370356880724232616782742220727209822278819183047051148429621612670873981583168121853115905466755821826865781242435513512962506769546486794760092258808327707817289210529900516871361177247666500939398294951966862461689225263654821187169194768613385542123820977895473903250709905750491902757490647823442684894221223242683390175043674965684472325670479531296100266479031191688611956632056441547160130628268071253556334531905410275653072820992842622551906448406941457757164555512558212230936800522410936052022227482403117362545863351817378144383565518215713639349962500091142536748628988995008738143531289713411096546583321938666829710415303465753450275875555407866121499521302721871379644956263558481933947505282448251704251990324744102882438511771647027457423215186465908875778636521349249838550889358698393373456876484509419944552881703093034644688988853835920244277708949255543549930033220948172198555627562146290264580066391590578564503388858775646082080908767296782991476701804024087749282991648192854919965953123144822187146270806998246834583620247073673245133875586796982192015797384106820384719731756433195029772358868941750705378329976879408418852611806764251405665524075296158434392020466570832952889805773539515167306191396074481902321253771014465537678158711755762279322259506415386703775591422710528777286033244282927774465874181142016801868182712776246600573163810536437344207924673596689512423233534285905369248977514308598100538445548809642417920324464771974089716651119579327427839076660715959888665865255236885189227949877782099202130530422280005962365914341606694130429851696355838468380017976014280452001478084218851845572442425305792275796894606415370562742942732953667047628866393020376107623280626864882032200556452584657928051673575563295548745007206607347176233931403487195865156151151013656087560733037033865313277895617332898616214380004617999203440758735440706940454189755785691248287725293981699304548889106319466577058585149515742197419612544402016183005670947516897049425780771910760478063074513601890446483429669942688925559297672124331566228259114176541095053842643778889222845413423968511679120090299329348288973915302160443949749747087902806393489625407335681142240862649941018782426581164568928355845392404556948859216663976285727638914830959690114771223304906549988943880195124016085214207347149580600968626167801555913357487296070551384646418398800207975302511660953132703396862563018786869828710308109100580530631096075439815769206549938607736178133197559192711731275292161380317436768200417845795752686036913624368616548669942482867755286301744968162411928266425510681908305952436920671102760341772973132949906259409007897672619855380012374995224081765610866561757960359252986641818406214246335413161592876831014759479262203250850179380270321409017807895566909604878304658930984557889129618081520950482399568388873526771563062018808321991010446569986270358383410928229126233579791040787137521954997913815843802818427719028833051086628625078509745286537796975250177428504197253497917567934145960810110045348508779641130861341180397477174527678005327774669988947400156737441470099308945062519775659183467579501559301000455568586822504027605705226363007014456035770676513703924812968475078340397912491120617067482869655645063628048133605613513938832519975002157080711291790090180950202939736497706395035034473437227831671168414749294674248720966266238450782773934956230146123031609045654717127301778153767189321841086222680868906107372746101438686355627235683515424600515523651444552346314367590352632253477555024918296711081094756270143692924658106599887847108070823382406848697544194872543905364583382646193590714226853363728130147785935682961204229062526419578023448030757295738167663514997945076676285771494388448492310438221688600691364608645557394469253788349076526327368460138717743490757717257191449670457289359346466839765665412892470048468014786840005326956650318743186073611096864313387594286980225475887327378463093299263317191551332645548192970859856700747509315473998672949118899783715025585473064605999973601676628896447639808809908169573511321360500466924899411834864113691651649416173983076103853985359847510204045555700899269304840267838102845485064542041243116091363651000159066003435739000352266685951318633371051033032326608055244086871745174363871784836015308260823606347648557405491495030600561174353404248285578165011001416295671112812785545563616756073371477870296153821516460656496699550941875693346455520309001454803307411105110075581403215907238146471721539119121465520939375541507807929679657614805606236003268422505559791619743029158835517764549665975245434972749971676125246651830150701513825479315566346324130521487464587450911367942653251036590532190165834136624405521630271581750293279934906855001934484172517087185425676716661598882921943488887857159806292356372826811357562562281905260112817747067702072136948931723999279278885468958983205019328698673121976999270099018520165372028552534552133084206726612340695481804981300142602641759361039490140747952977959020772352562409050374095583693101318928254424177322487580828093238184856339820763294863282320945870155500508128576794125310630682122887678690494612918270278634945950102977811315285602993057632462611346575536245127506135957397831113815248927882550635350178302085504181612577766842340164035547082034579204440552480338829548638060332906231636168983527726132914934291287989153318033215210828929668649468861717297293659012815808010377790549168527797403337717284093974297914218476020320683189638819351872588438767442395435525730808438439508364062394939504760617358670671016923539941672397471531042439403847555771637587487125655354187890473601779142271071101467571894325284136730501981169645658761319092871022583783468512138019719964650022310721679339381994266336000293544025700100527648223117111064510785252864534787821987788060100097321074272783508231630330247470195822988976761535212772452347436869919202739307135670073102409785365212159932092442811339812677382244651644112909448651683707990886010021263201414756522569790671844006311226404892752439613127082434410945960370265038464950855868311624135266894819014380009990804639400450255391391655011261445919771642507144114549381956526431478792423008319553236743064856851958864235079705562564046326849718052422037872855815929657922575521088609617960367961498874195447041168967151962779537433950382502671265482777431730416475111856141540629362299100191392137772330164812243076788956636043433499685991946313068872424023975617347101507204689276597078562182286313215933955257425528560390734262071282642507786673281883533713723924316588182340683141901502739002315255880048099156932304406700322922653732088101714077951035077783847539842131452032297305543183360561690259984395727340963707738391261903216990851972825696172667492944267528321835872913980441681250503373828079920063902422244185918896912205500860839459549246473836154853619571146342484080541406746488033265475681479136912726781882977337014685189686970143391421273221266919581070707585958533908271326082602479934715747576568380025990895421567127258386183422250060325490788224597877015105577225818617968391858885901372591965512549943829092320819439617776738672148374723053381090805488770101459496106373648935497590264532315961986572414205135154431133872523375111916913678121462010038093845410258315949582559433794553467583724502567451185502056580155351141526918929277787187557477306624684795185314872414000046175806464499241800958666206584610089260271353157689345035734482285904027925555225617888895140678445855454137532610394593295903521951472545537185881991485722285386940186088813952617853166884337351107477813781420921982286220019587867938051631177569836992106658610267717376858087742248444011800177930669521242684579713426394228815549919552849292806684753390249722987050718617982734891550268084232871564198662595919285889629028813020091393607364135652759325979801946876296714959719544525395100172972389164656968278186447970605874578417028359307495160634460455819082814405606714483763212921116200932413263759488636986368631013259169594221121326591827594169300773695975715957772257259253458816909368859832433429158041141088728093458021260714188724569302951404446058702352920433835569932414370929316307993069340392646551814162376035863904089325156061598720181604192513313471816148272052353444413214055386656965153446226871830009393951052038178010580359088955468884935409815485231904368558016465281997055113129757271156034921998230986949072418831743938500443248066966389173695624527169669239328425180781783491733643075987051755603708520988981619691054806101847948161328729421870052321682656422680321235323985605249213966565013120524735613427434810659117552356970426711345172227768873772993439068878968078993898501461659189215565456396293045279537855653894139576488206043222293574338736614917734122023341288057379504555664793773952752051288315673269159225153999382554903272581845862087934355514614747399144059720442036831546699928408225150632117122713516251559013885699015358254380968642953412528227485556530402538551342594119455404560214353696291189639311672919976899932996658731266552328167439536185157383122621396744778858199037486998293535191598597653232272389544160529488521893466853117860906084943233314906227999372017286852448567309080400781145582161205110202006831655077353654595153069882396934471377242554187934878564431990861946912832242522279910043254179783590933597281132979726001498600441773753028928142423403778200962664995701342208514738845974891109346100321231218993712759600698070980434263166607406898084553827734935688387814455035417681489156568175291432985405615062305151712956756481244958198349399747660999174713027750113900666444797798816042732305028380683936583469996797310262078934226202538643788886943486113615992557076505430241363454100562874199482020461175398414997347041735227180783973106644084327365099876616575933558618595738287713300721216169457325525528257741181397203963421474024472091030263547173184248389799952555492074128215029458254154790388486688712779761097332052319673811617196212579290875915315533339021026892656736863586453099400813149445339153013816684818770412029749219149528252902950582397584251686901935689765696931348240894943279877488682363097858309282601704608944874112858533849827034455959539789281718521285465699925028570586715120224207636810968162223426665541257774533998824288466934266793819322472823764071428504402402498478297387649810290875042618981212626223751266573631271454071614760210598607941962959027984453338533901401744062623383521500741085912242727799156458273217596388554587841833491733439110910097577254720843007713522123158400308132962122369351672951786462936235331940747968044781080652812207464290304815810113484412088720792927570578697548612657915516933397422134659862827844291856682374948809462369705442136420413224470951605597680908488179051197100159903534271521548967936524405965615071347662096143544874302683655358912642201999489186965134979868557483721859789085487287089029504886001593500496353574394387612549034068075689165078707751220307999976386719587690814370632206305708679749008275864100037210535947230909036507909367480825717471977898692996122874052467651564819355602230606670647496079852707358794912439453041126836490896359920333505490056874033720821094929472592311008813005798591307756536507828392007387763007573234141661861102481970236535110758220791309690563409707058125590401497832545187104145385799370765914147147220209655931890130305210119288728106835485430639559686288870612781002811127156779726098734904271031811484853414035599836643959028161663132546873427991778236933591458246408921209001635796986917621888126495989845938596740109457611173880820762912696244917384651283361822201654121728523943603235009941129686182588154801640034503751340219569989291786835734927756786175231038558969903249167605939717691830764447149800555271720326382831735107499211903427720468436379944515412231154132994469838804302239751030907528203297877654430127490098748161441650637080886271232329757328445265665194956875959151089033003141712491499998831572316479709900052330003106616191201869923140926357761257926104805965103072975100327521705712440681976242348898390918458484159083914125233231657948425052314247948191236097944301699357787566654596678443395030712957950789059642510398570293389446487935845650033156098161085917256097127389570805571352206450433705179204592055654622543005890882004971778438174022785785418209833512671745663087088004637419950729211438227749073105804405647949315715735139818759125258561190920168534325456928322650149263672012314462452770655132558982512616197939162181961503201973249142029918151367993159694979915653315026059387980247790064595308539418165709090429650506865860631643608348968979835211926237187760799932464851093848719491618878031141698245263390265631731887255357125395345117817369680164651765765679203165990116944151545440896950021048976520381402588745948457231907956014602799881121385761830432018124932367425622482836598603182255971428260183863533524814410894612014382674639559084762718265399675824428043366933601279605403916154074106263204216603082584930001069291517008543810549720272044987059099954940001013149345953133445898404111116530969423353518399673478933835864136373623131984158533445382377832655603679724597091980675372144792994130008762298565500981247728839393560804951301334935365284100808614635869376684985620637978665539993317653927533576719164209880291110355775632261057776540745216909559785546662993871643614128495637309705630023989279520542659715977264521771581367719175246541120363418281541790165656932060153284973157684228360211067346057004854342325555819606101167174064669777829827664415912287631507210101806441564749999786455676272240105591140095456956984861049521245213916610672304759260366410343848918893022598762018117676627567451621666470191525559532104165972562112384897711754245587284559561279614339467551079623266360699931187283657584086322571841382936029857041864057361145136943774407378188321692078179041341708895247084177634792395582692507080130434350968017572689496828266891782622620701594016384477689049635093347416348451766382836226555478706381567566000779291100677314014964633711612777170806704395906083538672653459923571051536751485296237903608791969199655279428066085847662830187217900435532700967673627582081775489544839654742102503115906644602749092449975085025860664770879640127818809661179805790400494772665559086298375230833355262354063926709320733365459836810109332037930959690705200629128078357437614735378818920901710060435309575088132386107883672136915009495968608659334845579119602231403210745527989508432805165517235967468346776368788765005584721560498182646052987762640488144294935416420527287658575080091857591263275167191026657421117992288316575352330248510121770143253645978849667287081012384742309173565344444380008163617123782470256950350557596954036635669931088074713477567375945539432321649283650853279629726568498046139827379918278900231752016601571634125998441818821591225001956466811938059082693800266961782760554575828242909971281829767077934803430295206655075145918265617152254043341067422055205562765963646329173524144933677577787702014322282640583055162272121558048458432939143126077870979946990690494799157793289349897638527565160094427990737226262098234655002427971788765712077201910784553297755811490420538932300145849237575311539127091328678693931084913767603806661173409647442844700512429658582486318610096608944038180476250119668373664029360253953420557182234120198924226483099318388020146420332306257049431383028084637040093342053971264572036169542420898568062832525693167016106096404626713320736399739812216403358581276518941797408596121834118126491015694157596970229651028840736792179141162862273840620969081293188329780320661781099265311054082359695486245925126200095419070920589586367062137855449514460446102402589203099978893400236525998681166613268116241368498001175623869331702983023512583602466990683584381014966076147797562793544185546057927921466933493330502112397992137639293749867462253972892480741989732184907940554879526571163443662034376889953156667621352002173901344835650168769993321149479398840258888279014071239039749958300310141757439563961376789949984637784129894964022374886180672041398117198531220627643317762601150611159434640990808951751744905619501399500570873643712588792575812686757607568849134323434929052878268196619781036011815214269758942783577782172632431014799680125355892909694377264292019195393737322723717905444605624611959531687187408462508436431763548222128458485850721905695592560764282088372043332847308629750488175253554869182998052446049955195251438038993604578498733157634235336964876315253191393483989539967509645853519955797820020495781307332197669663845596686632426326006070796197748033855916592095907561751890624795498269587809017007254254362262632357052576933398339561205386272751192696560764451447718328017266464734880607234806055900005872371134489372938206297404899510464812978277622433946605192283406201705070531983145337648803350197216277069140731970874196930934720316809460769615476291625145221205061768958515255564995581741704870987437583687611560721467850079935106888694774717037450814341359360185625148300808949024121562222148765105701900549567813273289999254002149380735521331075334886800812747094617410423621102378726490660746238527721011160857257470798890020656972563082137766162545637030621654195474864373776080564153532056674147644942390641241018635411585125899829540659256881510995398667978663311344904555563802186920625124171764312026249615917828304322098465007628027651123035072636559982432943651929495866121146563546259372034231430730873483191653003002976456275833386299354134014875428070105989146571249591876275194419532222189726739596434768074926607210222475501420348501879103487271298162435086012875860877954796672174690427456522995817769497035611784049599878324261880415979377756012679767959507227093486222080544981452998756908045427661574317890748637583827698490854051719824537170249234078482038826166641215851282414363318805993144678382913811493875190086008642030917222233368129536499098007377289165131060003244433381324290624122767627391983404326297784973723943658992585873619271010773212834569867104875302909561179346853774065659384908662343621040628653770980833575672472153161169818309698466105607057845867933679109244427512483352586335818960196197140360075702672246780865487479439497823894977043207313369767737919143270768648504568548793903225214257719550345883156097776805137654311965115316800629927359513229084443459274949512454101730898481731380076686095809521523634474097314414940491204901074662816211335037306174089502937022555658626740661464306775810018227048149195031003100639920341346537636178382141102288302477746739078763514995729562898721498857301432512000992529525673690988892853735240367718749111303621245367942028953523865211790966052175323983871519843257624455677120941819801314722697877729950947921348888130396327219210254754246013604627912338949419917113597447345850216026803762796641535940151434797350556019126774401691149319057640674462358900340442913706017178045636168164446014824360499412470276975141814777399756452677303782756223984327139565449281171657391213520356962914284026733568740556249536274730665840339782867453138287602256491491794088090344754194389876270386089537649257204592739772079959901937862941728644155164618296803860033409324546863282980346781564564537895343725321832364252286295621412840654855249140439753054201919227966933061107241221218965315651100551510468637073461436449941535158632462429996933779674370796541221307321674619760861192356321254619315774536855707252800411547238664916976637038923756439622627057959015545948758337784723485857553575914339338040323952753885622493933020255190137748858539716267080129291086392055012305259209207410441699405908101567997734762119338490261138953691534637858091774472090342278567956977714257283577243868075124896656058424696370374682527896978163349089432835842374231135260760471782630670921016534574873935687785821743137793553244414103933865613865863585027975304268178760799191680593808441845451846817030089556482101517132904077707130603530728852092457283685641117711701316222216339602356155288278406748481235443141718456691345007334014719404432720268725486826327604583321413883127011419157406235707297683859587679054135734827736025683197534197457822940015108836534107804718745205832854698521392875068595700494950847470040310581625635308629107517796331820498332929971370573117738628063839608867055843273550948126120574545536353415396142613218811505705616323438992594153654469402227257617893863168819599764328643474229822415677717642726399177705784902775273226013489175527481122249558403266005153942077504863685517837290904197770854733157271458045535774014274375865033325104751522427922088082872356414608879657663634264918975547533929847303494499780351791711886339091199785197163751649770727597916251042751147527078844493371086475367647650884737886944617202930819907585801638437725374069973935676210349884330589486910002386049382072689772316656981849607752975708890201650998803750827601838193236516679062987613970886841408418779138314630308068587145811119087486891176569036412921029490786796754191432074820830979997319244966366841160877138752988141332598552619293864252825580077421347632356319657192370990027028784807745294911491591388305137042400833796799394618088276774120228207686613405514074837346938826804365263319375002353629580331904970906430636201800213244175620919266687533503953065344571153313711987814524551878620896072843542992472107821498301139837443961651626316707903856468549763332311613191535535494256664489580657679258527789430380978345444691139794121351341638979505719325942982463850105701257582504257962061046871612940638638841199807582803521003662912970542152447393470634451599551463885921747586826773714833374984676227516331754984600362047292918219741246832498924374845505293299464147731096089296458833051366475880320826431862279712371034108339352744162092489214031780797253517306812326828205235553820783550332103988749244742750141595183267394956163049205456104785727720841897426218824299904063867094951689604090107904892115244523439139604343306380618491630831161769174071866484892036860329735656168219099058681797408010366015240719038872782379850131908451055820690142278476617415521508916015631841955503755692467997985171540852859182813812981480902377397784241400988991886022793953177091942225141927976277994960960943327831698222905312790507651214070002164754165701833885404093012188205966774748667713348615867026282488618693119583078114185756532767501694193886577153399109272542411041981295350016011628150256707674003095608224188063244121541347628321000311643471189066139523284817445479182097390836819262313527449064689878322148973104949672138533645832996554503457437218417568584096828945822199547781356012547099917553901100095950763044353471614276620921243411828141875378354029302826415867266468229046685770730053010217424338539014154735701481840954215741203228266606797689102459314848686788076705431270035270512556674740002250433578650581396768116086584484988676681237607682226767960790483150825061712462795834391796171534983887243599767992995235807112645770388749584679218447752398942807242086285310828850834033540659562551397369756114053660890957720548130774469913657397789819449590270165846773437788413976119336680070397513300268933399721741621407455630780888888862245551948303937146464923878884246702698568355885375179132425308119611636743516099620233433274141424870138294467206042086470731277941926323176081428216008861439028035829513321448304567450016613507991923642673552472883350037085285609130801795264804909495034935422631647106999232786972166407066919093124841741146655182580147623942284282979941252856894727213607549490777888585767899200235714561498905450417091532757612757012711304916500801148115954845446673268536570561914657150883257629264290721583297964522075114874520934798721231397208872507431916402379348312356889510004686219319157875204415307144509027780124112397434640023256613873130072608852906715895624229451338730512659254183395557052238893738223647874497345807746761401679352523345973043596586967824458509308273349742553076616856618132823729949911559445579642884952439625610942823270023516376356416032437123722393221373991653546800220533024979999920639253343319930758287382472352847020420061503901015004707145754256108327996581231287676488225195568934922613277380769950315686207041944758419821021719272360975531464547049725247755747422094673770412869119580306243870611836777634131240848180702374271416072228903945282282978905181855363184081833190298348976367679094140361299494330868085324267360121170636024426332555235539758724011456679593027305856579123367211060391731060044849662841511839661694048486353076069663573395976812851829818452938749091187701723669899399041831386057728217501331036933840118208913038559650400762761426335371102494199740264240100070006863975672170790056054555376079879050269725780970441338853031289107345408542671851335089544529425779736207751338295298421903280166449886637719008025235567985700395050841616032592109390386734848241893631017575396779008916433099147948615262274026458318616850470484981015200736171389410401835991317301712876408631229203485653669120196178848261803121771431476956367198682157990978946909832431260046797705371576903680731354509306429815377330369884288576432268640100293260479646483492819781516415141759227417431041118542159533462903207131807685810167548336401138798007666501614387373667515738491710935211692678602727418025730623577770581797711934516705574876499031691183015207024909180456203985094020728480161550837063645085165881714735739611981517558406991449835283066635002056148074604560003876859843428858283844595993492634539548338544875173506351205775767471362937196068450435994205196549224388265023524672884563057885826212261848891796318793832595570341210896666293545528745214144092797262935286816030179310233044626033579267944651641205025322218689500054163924907777686039642673869429244753784441680119833580792695741839724087830964593028429609511340212693653065678220225703451626229931115800717257060305738651067039735427601404709232849887187557407057633564134517470859433727162245728701958416597363039523714028211479822479215876274422990643714211463859023440822577307800582680166880515853366920831528441884663636906070664451741417786210470782701865956482820161822413182160828629473522883264032365776018856030168098475553940714340790958648068213829923117103153220343125353141214664305363914394772101240888445293183581157340388863333665577622401430718985577373595031113295507162271848138751752288743886754204320680615755382543726644519688044091267223111728458354350647937125491438964720232154138903234329615029548220955010032185472514753532964950640052351380451096414964168298386848086618281093086864060320353488626008688225986258127515837828004518190996109763420627200208426015861403868595871327073278012111901140492577892414494590486268565348796833110134010901328103019171767659665400491495133261249650533469195650325435857248035978212483890063746135881518716082361138636330726284582496563760865780134642740142352836080107693852604249389437026762839922074603291402466909457618267766789376713295222725660992795531968757339658576363818897250803967939862849052510083417294624046670185328280768910872164690394762353000867824273993196737075076403899796047203898960094670913519731261725396934710051470142361848426221750086735593553313160620216473970026140145166951593418015707607122430222824294955825496656176969893941223993411382987622937480856333001371512641057444350749572541454793445933842689840758448708535573060739785032275776677925571643532683427683794712392545381561091551124481035396270485903817418785942988807969001969205036452077681714819589213257123148424459597931889093038885090470787607755288145891073743831970144516944037333532933151980041604350716317210520440406467934054855252850367611734108114873712750019466536457917882802983835945944570264411995130345875163221408961450509539362211718103249338875504337866394776217381842690610507090306783621982863001618296406631307185677688294433166583574153141828838728735918026607591148337035375735212351105160840437178157531868621114797908847688692131051413861665861758022435977469763601310590098618184502433820448571182207250386042364068796166913957480740377147868800221717387854308644937268846516793277520363165536957195041381161789107887704085578520223244411639896243346061994956595468588749871839014690212879137902040229670347701976356882830211550481630096502668310850210005219634445268722168365686627564761773470761506089116140133522579693980216852558409831714607441793799347677706956696260623343583542030071433357657185918661215822001106197015035625407979385708989131609865494060161444032019355056497504846436259522278308339703301730758190527744285286148708196344753025183792150802647473541094273165158402417926165034961393516786584911055250445619460548149603718605283808269228534426448903423455416006632837303084916314029199779620590313296020833676601993446958630829174399668289945565179411959559638162429624003105138410613593448779357637444974988025685779399437228111158133171083851682949708393341401724740961462491991570572599159584764765919220515839683978126798775151311653835016876276497382490159053588556204869294350612786119942965433764033372895243333932034818256723467445027297073605447457010079658226867733264586976584364861829056631036283187672761649314393677027236633009978817092939148213567838009298073582277336335876385059409428748140266460295321136803825602470339897675424356619476714512345652827888584322575486473339028858285002129108527910545892320775164871750923689417879187508814876328345741340116695431218112607478764368076874482633573990566208575452082093010043072189351305253667725644092805086876029640173485615204826871349893963380128016501396723061239151261926683875250991028503551224219274393036443012120350493918663406603760549426966998851819876221672949758575126370893748303947722079514329701180108840885544867070960591294520775034139569746746194963527061946015469910867044786836285610299819798480879434660485923875408054816949435773523084828304709726596785911394232989953951277498425111279109765567439730305826911361360216133889767431923898842191078888396414312632050910414690179314746299668833904887955853068653784914873143796397869064144032771836550984231186524581009870106305023787955435594931193275859523831806859144721870503691453364414217331290219547419471626715164897871657236920592656876229499119389812312150771939774860767466221284046518961780124997675700238476059638706680118175953211011026316682576661800746950337641563215109926015271176329945595281177924455614662920827431377475145242024363480658135789716255783220276416367433605287918685329869533202330824390104944267495835396977017348386973276399781681144947599777776472056026428640401705464587821094103643494655454031067070884717737819861330464980054814799665593098282582991247716765635541311206669209718346323945557768251494683071787802110614055298721939696342912911623774972272093337289609818684706368242212412372689749490089336406664725528107065219780714711662263282075437783857344788882778864182351405523119778152937170563517675811134213153173064585078399590473824704748694109808190865881932136407292594564660822957849047269916757381098226583441792603363143464061240525709557443671603138893906572159382504910168283774211260868521362212490569595459538632084906418381981125491149490784935522986376136787056041749499527185742799540965425052255292572858040380913832923907272857382281599763159964260981081323564773073160426140486803849674871684926992420841847954238245862014702056066589280328406632602426302001376331672988157793944399058381474119670781666466038687986419827082528064572536016929861252456855877893741755181546285351651517464602637763375749272269682710747306133499928005336305916050703102562148066374542715460980564276903498436299751354177189806753529033072769003436794264969712277241050017927738301560066598362656321223450377290423603885260553982628882136154224202547233967015551578742458708710093782436244340021349957363897024736379251773690984550404936368338262105090369495162448435984111343028203050428769324340392771797052272431271281747160119510920934233040503832047866212180116382705554231904221440576061779178427130531474625802073031290794360321189144030667088305242933874721893967388649664891139704551979518333320521913397245241273899821479119093500310255078563598949362941685749197918279988359836548346317782029577619900268585911322280697478415018635681672749384510348114587234122855625975026323872914612151387347798829296174744252354392122725736613906553521784949951754954690875822763006858999603256577988001490116879637878369177274612819897164811707308966437494303248963458415331508928048352235104932067727395815846466536018718776530718109377948915337180049843245310472125891626502418869368442529513240307778994068363493035571023539877136694660084115114999956439510878032831374763225791464815454151945700834746598636929717604082945870341303151244709444345102749062407550009808420767928391754699800214896142576614184887450033976896364346479162452488351343645540418392338951884270088611190125192227304784590436526497639974972242669482757550755076926622335458772409310764116854920963112415166400308424099573371716237355069349397581465892296044965462019562137117633680421250753492613390155790825124420372564990441235852661008210049094298270565906527776538952015205980720919175731401782510305215081545081612234828043779986156327318386056720538070158935245524169100907769907900735291931858919101687148058562300138063267837941099181755915861250032179604374239707639725358588832803962727062562369659899262817069370195934955710730559321067638887232677594547394848399215079602170162987493782503098517090345337827516924764216155535400480402851685467798571718631208670508138277283939545216586365031759558833249060878157031357193782058491384094740557730877443360821992304733157324562202407268935316238076402423324636606911526834873385890711961433416297274068429833360476836410202227010195581317516665008059151227545977407966492791417113464550393402624483792117391515100804339744923990093602158880977855346464716653075522295864333581174151066283543150865275826919438850333970434774816964888490567957366274054060955321874863120551287058859314495041348663675953824265955891745875196579408500538012526643812232741280321665698675082578109318135171946634067116454413278607472951027902549210185878275426590208970226723254858563323360809614831576756674960398372394260549500374489457860470305528430536273889479179647467600371550564056613546979304473743418107247889204359870262723374597034804269665018678838282551458817224751855350129279430335447838650534930971466730205245486856616186510356778524820525335263116330151663502969921570213726601937802345803734549451816497714117481666494173745739543425284494764365637011040964886568256096338773775839271774410384066421295877614568714417627484159789409421849972925320386084231144729030502545549414896185680887039160707750211459794455718945729038000104443077072651860661308994925999181780777300947741156701437396569030178994631045953398031750379443419552093884851201095639166749832253896730905925663590032473082678659262598183900823452164785923356481978460058611438756489472660614449167073519797153594528560056953489196901777604463748428553538585947712291983860619963521996166511241928450607181407105804634943608099646868521421888150958731825390219131851204995627994236722901407919454012566846647517092979439544495425912791123109375399027098162001620240191551013853429110291717767522412561000109118558380651500814899636179338808609940590819370434196382246039778620959053488873374581568267181430108722470925705662548402335695968202786541193452593186949636413229165297192460489636826672961814064309133857977429972994575970426052483832547658163769497472694374727203707269359028285390447453088696506035951443174168818374680322259676265061507477045232337651758554501939254947057409181374951353818276406956970188693717710614594038875151344593395934458183306751492847131621929132005050130145384434595839758826024710155068137432296679789500775878048558635151087930658278142121650395179602472786126115494343012775681456115956423150465267525301657169484352947302047162041540842580010608517062273264800233590511424412039824784588597136608525282524619432241702791278059790722357919051181229365285951856392156096595249067558618979499745397111271646431157481098592071008881234136368001556760204065976825293573960276061769741112690084240313077295089684986307275235495421009477628836009811364095567348510228755949563840209084676561857807639661050951464759621951163349101088866127828884279298285792383215847907440604459050783884931115328200082923819494121521769138201355621894716829833892845661856883620526207248859106469206490273925916066499433016630658972479171044391174370062347837211079905027632111344789833337319397597516931183150836341077419387791918385850736180291180732057495713244616352565775957832549533478643915975481440466783212899827035110470441229128648942084069057730293573126577706948643888652432983578841737401189305158407311779476732792302317322334711102708301542439611757174966563305921176424945849645912813071698583837071946677966818477964950807539966738346617745684393073008782786087884979892099766127898550350046341568227592518170451439690708058276202857466789034211955899106137985379262294639201133302914441933389063085763345882259232817548002164415772591236146711582774670734732561002663557560156633661393583605484489547842229069657375089789013095416039623115398543330129948588668466333774413892600907406412012716370284242399590436594538927882709442344840752087881216824334208580384822966926836373427735957780210992931837069370993328125727245338137668974288650459058922006402894824192980962117278132274295396544513471943669155973464395537374806210603112388918996603226629212311243039624662700289037431992500851017789995474439203292450817467646591771073896996661804356501768451788747940219269878382698052883542212397256809106918563363734692975977291358834225475342815365658083739380129128340980674542252287128809437632733887591951809719150159809020425075164685032566196044697705892167179191681713457408321768768612889141996392609086056357330401644721235851821602184542882037991971513247712169127833174433277722013530117315889525998487149744799996727861514824084461318623861760318449005243476649368693321997227809402359658090620210467967655811287561140213680253799433214337550272873404058808935780367622604339290938517840485107512944715178508850579555373310016533186179909694128443855575609226119286622450482869178800521839164842860922303088940316255037229901138391158563531648522148413850358255021211550459984478411239806444615970570075096499840989449187256166558960757925709973975832532720177800634497276901482001769888994637576567731781373101108941141361905521954847753420311422722384005884828404374212041555825603598381972932889194392916045387630982738398794919047635944386946016434453815877557846122252572954295815659099277061518325934229026513388574953830991950027682411139137317565412619942452665104967863418199264204518646835879763258617107443236728707854023081430592053221570126497567400974937054989569845819224530031890906650962960178066066737536743534720275527535373685887334141526527578129778672124990022830240817225487104462694895798700286049755039498655027560322050147629959604243056088544372307583879330916965107056071171904669544206081765563908525657718348421402582156902550508577014759691766065212838027971596007836863973044248808573068829844660172093078104237405449352235708344535067627097348448966519644368041279969820286195327583915075288788508948939494403755524363032687459426517665028588215870393273640985318309958254429460297276350869321491583640371199039799626465074439531498923427638851874705924367675900596040844646297156861642854296630616740798216110800161085506684206531777011828467952413346948011930739704052892483412898991098031073982723763234367384891882618819524773744669525643144056915717535130412385828460882475518153684714750000965202321060611432821050559808252229946639417684844038339202077904818021458762422241761383949146934495562641258820645958190385566891146945883221974612586958727391622765576456838347035189075935675506525544389862344003642864723738081282114397125324177537711359369230483643125173999004074771219372298523298283676627755206735808917494052362947538913955493710794373789058908059828634736128089158925528436055365361503771292544670689733035539952021613487110931148259669996509454632712495004211942264833364721281090413086607748263777666976609205626416407240511486507263246514351622036181519075128863388937693283391229826738133319155509894710386183391444268327341168615895719031438803043025384855471565169255603032705063210006207471596214527125917598065109286318977847096029167531281632985496936179019262703455295146333747831325521381273783077197997209752728833895340260793441457416072297333901639910671290812704145253228345508804570444798478722004976047485718121727115422213219981696285211926327223778480181069607202435417880518584586609630249726198532468249602251922196785632230315088067912618736220685536461591640816907679430282040520838757329504190950361233121400940685797463344453117759096330183733514984746361258270518162197972134568115628010130833098749364835456115935224873293657779004052420112479197808170533113590402462658811503671437965168523083135429381912316837798199903617835589826952392820309356537526114499849840602185289869822638527403868646540364109446241791407485592846385976302938609690364236889935844166220576519253123745394567202341181351063134777613506971974791150691230656641870046764933850169769328517277803595121751178694558754315810983753021137995223049996698543247915910522882136214447384304308443641195868977863787943286214968552414984117875445817050195046362107989192493641642482474788508884201224080596422719870377778070513514042754766090227994968425409339672076700901887190819364741976690031371173260557389812230837649961024252402670898456964637386632797802530508174568530989561539036608538491338891172379178638866061782286356382416714409543963310735475880587811254338248939606493735660541672626130239378804301609468724047162896371942734005100708880109651662643348805820845070809244014506430795297581832894427154967278907224642711695236158053731937512009117057761807568583825662358815711966813957533150759929158045410829653260533622469257092952804954021952891908980312252016284884569721890741261692828930982963150365050344867855585593513852744639798388220232879149982692722788794228924227229085405246564178451657157724798539949167038015351803369936562089082719570416136353871778222209903860782701649691754292252193404685453170065640745650408597616766174000170509422816961965122989628845061563811422602168967156019580330066682845387177268401463441503338551375523614728491642960472638685000876009753433362145392254173595808255956052697879721043141274494682599576883704274889611136109916819391435009911798152379980392355660891111813043740123366967790469731251309891524326784466625313444983906947422492537226239235552543104626537441156217332611070443584889375188897062824217901926402163471384598398509060309957605113138723706870407220375280071025864814700465548818102344056541664108773131411861777802080478961646784453972568200277202464582550188215369848228725133015766855724497250442347050499990242752134626942377337917330381078031559967755630784185080034643043760113746786797188579364273282166296125844297225777563926376246779876830234057785567822785113548374808410140329088573746065718573666322486246547810702301069468741067247444907310043558491790505427721926961607155626655789574034242280862500151742826571878686920076579741848684887797670347480542659533450033191581456498890819661594890562234917345157598500270894705316944578474405616759920825320514028323645097853545747077991012022049263364508086283881964737981368413481823899293572685715680576862652471284117770860816466021901040371421019951786456790513281512607079559778974501879399417504191425446951397186409808045429489980941606480371752803597644546246969562985312489389310817863863060355586155045302373986883698162014061060226273619144670836344361600475815165973806201109282033625025928576980851487437034056863383348661522066490533254948646517693284427354490627589962512135198307132978119993999913961400642931646560510754388967579822885705814690233892326902413613336612391608053175213717696755466186806413643037751441122552516593280261351962219003971752425904928678499106084571240851045794033659164123010714609647643606762817504270968051319829924597501386513920043960353970050712694930595712964399837279330251759966500169778947385403882548071123621948901695025833982134667971826591866449370674311251321114275618112650783423562238740036825515123476813985227277033990553095673763228089517115037529814802692045400405412734006658116433383644235936624929853999641177446773704684920706415668253963106294532231893582714355898330130886240663329570730417771091835031475494387935651518319474495331521197642763052044772897621792581827658311432872264096895119828675629303625745977928715287084625794174989334304506026023102429078735229058099414095039224034401999089482893958570143447179780738540091434257667187654818994548808812804413544664521050528419986833419508380734046966603374780992607381397126995721622425540743593362036145133469389339166286985133008672274555261154687653825947664122964570540055861341655568339346962943573340538243360379352641571940771792825026825390224126326839689097897655803223581917148217804248105187462285603009860829632280557391934737786197688460237210459744168792719344886046902433816822041713143353624043365236667052982853491422665621904505707731315738114860128542941404721849874402812628523962169959722057389131998553497905696503454998866786929563352595290352180936864782032797859938485098259353811882727717097509054780220246623643367295243573757260193419275230520329559686104739299179214374765488833294604590512375856229932375176627835411822032552086141223061231137195504523796410795497986337610206341905563687062891904301903185506566663144287269303198131720499260583013840033902713248626256777916078898471021266982859739002898580388368718126330362693562514683868932800881552629696396342462383510006584454847328785949538176575082848499883650713936948256451707517731124557606802253096314973779331417580393479069063978101086630629523360304551828869930173752485678690379048749367346013417560187005258731715409228792920770343638042221395559906206622888348667540993098107611630873695370630825676839279793309386021096494154477070758563670199031143879485225045103100428653594117690189134212210850438243740581556488108795485857327929108762441568575285051719238534504594848099279291664931503499708461304434265254079094604800907620610037311194028181718307595537715424573038714581228387793726944336257597004858028245735914972402112421463561567814377118092753734841013291095586351717700528444314515957530274637700200693396236373297737051749956065695755337350338581011618629305220538918220448552535826995439061875571232634178600992580235625279322806828877784589691781916069642230860843408980228071564316583365564857772147819202219808381810121168917624187706136609709575026238313440029145359455228555338283010454481790006711508373782068058077398605949843157176726137595932196136846263347960595209897830044512148005042309490107078309193015972290087428583522479460698283318211756001401232504764318698020428190388052346872203057518678244518289491747405527718207916434077956597910458132150508899483156097687192064072499759840805739474287999949078672002376205632374925320996522767370249760977494440855997918119888792648461858902397182484147650121622288386203732392151506828755715397398257587923630482872358093688568258706958111687096135740692755649970823889389818385233662982130509443663912575363584606214481323148406453495662120139344180088007420672995268245102671312354142970664823542902977029609395543426032634724107547867146725518717050566633318017919961137068687041667576731545876767217444896012418386566741998959943867004942610452034417809995834787949514035406503696379217693453158574725728306350814094838329258089673620621521753511654191470859624123796305661320518143151683573461723986756872402337276061447537956730109390703761904528543450698288713898108050376913191085084482903722689023758824365747205116171418313106796988659589205334390941250801587741321723580620199160775468274871308775651473427783646679944900224235962523669510429671774444183836005795362447137095191697878878622750181370285840277352225015123741366188305492081755130691754436376845266603819479662013970517729869833508667937509322435082607331266472761576193025693835446368872907775792534502112444387534405134056303396479611172840083962203302208400812736386646300400278868630603838751471502398713491245633304427843649669055423943567482556142774682813463734913395980837047882287722406017383474799153414367278321868835814283744092104945458335436971996113068722638566841033423159389854470310600723214398331691758589371755354368384445085360953726670884047308123491126339921443500760368676910262922764744775818367588496716797902627036893642971148718805616377503288956543742667532508754183739931995492217421794189162966895777396433020986106238729782597846564618863212146367826197637237153811006735943253667826950121041541352936896451042559365908160409872948918669136076856102067406879898910136942647090365852966802813404779852536349181326001406313415905365332052315535296143977576668251024892435900120176580776318408821781519121997034317752862294582210454936008547533644478581894178990362822181067589466078333348896888310340560118331064050833160281744176032784157428748156784156905928425303031440728249245955027491592862262314518919735666451049781712143294745035791298266163591861179163764048945452762441755699269467830762066446989656841460428415758332940600558348003340297756153062215944997378545111371290835386010822017500740508431269566827261464434174071918820977317689255692104738619595693686969249050902655891030851079794542773878667234940685698614017292236729250721071300291698754434610742373814239896727973978464955579658038614205963074497786409392600311745163183271015625657628145038033637118105493797216750923845041263367445429533349059800359217516852727937126954770481062948850270860391887891788899266678794855308669769415720428044286791692627341206132154725655392245538883875726117831934237948089763406809740007578473731911419047007746878468171911190148716511740807822331722456364355532895613555836096805614780417905925695242334214831014410232144392160455999184399027058791948671658305818804544958693435682315737122060640085135095591555113549025516594706042435514164424243178669349657032635778420869351155148347489601789822954357341828590611758920464216012608218072513078326155948407711999060496902075497922144456098883959428510195876822842218486729155635519674028797221075608364064431695223551091547053070588540146718407623262570155723591193224273518085278798327005014470991233980332483764007733893528373073631344626497817551361462634394293203914838820326008899336678428297099862036507881352133943521926512795867840664393615057013929736774022406761047920804704668220946443947487953670860391592110235030374309035510181042227163690802793956081990540966858557538434297267083862932055790636874558984603965614699950750366982796185480845678474203440512526938488091293911932793741451673754426387020307939558139322513221971129819017181030399468826778728971039596140047158904606204050817990548107499721149639805773062323959603929976414138302870157983411334381564273712377452443053905123081954936565724769968452743455695497920579747514338492741991701330960340779587189221066713215786033861120058429872099980795576268861537532901831955179393050417170381240968410095005698980380182604716548277463918495307206440344608825532113052857818540186599202427323228766005643463817824972026260559158142491522088707488560490884046371189644183976102163673228132333563717745294918181376677701851594389603476431309155421539339740684440829778105758705361892989466767035634745063678167864638928509596789705147430738136959140174612764795367535713195420986559518012308013920877194899357136765938064133375223939278501726468280938153493990167951144819491140890065258507138048509147178054452489014470807021241446521850603606258384799390957915246455088102441772860700743594482393243401371617280541313610375986766203686527687085115825888454705861351074510829085422233836033836962022315307859989460040322586971005918257813556919206772993830632668145090539044109933420202489017144879193808499818417661234909245087773153888432453195286595058286411363966479954374288167321521465040156903432251856781400012532356682171839477733689772854624252177929951784638378855502696850927892188938939467699288956204499164945467892211387694535397092624754767592394635297944196751026305028981562697580399517571787702656676151464418829277972275129149854860542234735169915083079374085306587015536084946526770355777044371926021623140342166975585769284112533410066694042347029415007887008966779615982503354997911078408640367034937179819408566135803279660576352813826982402982069924879415125512202103187392651384716937919722606187450751249837789279923882118705873361605303496503381409713199090147566391813748965327317976029759546223590192963205619789178600364539675798015769447263379032899638382446452170579243132267404125855346585942204158334707972298980355316192697423228896813495248105900486678255115048160153943489478616786095546671254847740984782913264785592431030735224851568367655398132482819921246035801461206602683151644297000334925555651195433662835506758478337539695511363548579636839244899833482696194769061206920955034929734105306657227112148855009495108529838359373457828695606700234691076403561295284803353129846572481150160260368508731135089817010595479823666315322167395247075849754944541808534357496390969277575857697217386318206487056128885715304977901534050894388238565677296184397362029676892598306703837163924943912292689353470083493501487858666616410501686380149558867527827716162326083622853153012923893415578070524106866715505793916794932254434995520706097089324859178095577820297055092305694686037818071802080988823214661221885242448461591859601435572630451168242189631593260788481447916339913936132269426630253369485255497307261240676260704326288159936986763884611877470515576928827647679179382586013926401850763049799226894304011456588037523256439919678537170350588699463304530402522548460713911465568767192845662494239073520648904942182427560855978210488727661799872197843233959325562324882735643415080474631339625175547594378614199225608565864919689614437793562722091977085893944437087725063652648086248589321767110851259733538447249005191884124220637297577516118009217433739189084989190894305689357780148907426226050022402877636550941783490437812975853048910065667229704299935022276027825486914657767050293305061830217312924571384964198436423634596259060630888731670331158540944222949425908219808862297096537694113252292528430335605001037530089728804994933029683714065731479637152779824260713134636109548271763512292389350639384018314437130239785194238909460741319400907799520695778912076068837410170967081557995720181307246852441020207658890306722535148294954811332638268152301089301308703750335888706119232433026620837557480833724885988979533360917509331728523962136008669743673409319014635996808090167801413575870170947321729990295317551431303074722870913265037631442168304039781345263008617810056503528810266421242736281054747974764661690587132440268860454794941704964176558443016488987776956872258823423158210783757987875855832039597275463244448156811737074167471287924227106052295543029039779764686236524854234577655335906562437333931954759062043559420885809793524769764185799503557586987661306742709120141051102725251704747151982174997048573679932621555716231325721261727956874943687964436476739042180008507939800292375488198797707186570983668853624990189875139078681331528581285241477718838284068526910669120497069967973292156431859414381257868558059782535621672714358501869110169455305127093340991607382494314708037712168463323839404039406032551114334585791295328341051650345178428197972078990509866369237701356913175256935736445122281489527264635981286780134021599390730182040581661020227396162457048175922767086074856313190078660472310989653788954342552627559335393123601957375211743000087048364707248000058143125540651820018360846089847164816023239902459232178991844835845172440041151425835887048995682407976632992363965300174439332581526954659348862804996379121226712047172987257809905798887066240246761996269177928954983004468899976036631591717494939480946725834794757932475742319061136373554281134548063987277004024889560451773991542900806141034537823806856270894808969116045010298340613191635981018738346394545932055202796939840595060752588583458693451784853571517652434228539445726345679025042063567887303700471126916868297661164891684846690276268704608544785636198604661606181123596073603893686311927026699223146234761623143258252511932774720638869771425388479335081466242048005452013484984762497765708642937516575772013661221051021476318918732380729228000264222695888827503153444359210716674185317599843489428424065093341278472689151586071995054135746723608827347858766729527156622993966800614977897953350284194435952153436071820304184783082221025709779404444361343280069944167446710149068496044590785344733303992102012764596903379209476883839387557972296964191402411715200914290566088699952515252362030617498719941491740883001712738012129863822946363742274392425501658061478422821197196860834726805672972111722172356503983977074574426002469030186476026845271017491538581410653671811319296859754811980161813866373480094289756568264640282714229988397693600798887078431079142402303603589896611140994151677325052099358213306265387772606050556118798605321094160421722919264325470280226936309729111622726855854054160106965181797308845870124882148042280640911421868520267069057775987824145067541797178955205472136382861399769401816677853638001137943283146265577322750545848783198566639388358607538086858927260692736654034229386820220753539905209517971710569295230319782130563775286099630663840808949943004829359551282965124407446813321877779275608498880735969128236795828736320997406118155525017141364124577244038165809930210376423839936262480729530756931849297114614157845837769985181102715755658985729501572618779604328273882142807244403031211400195502351294217756465358746214195960050550611904845028481109730695638696366469073802879218926120198709857237142203788498819011657322881875556834397611687069680032254832651016162548608500295174983238940219563018596188017660038471616244197598257055778885155166643639961245295703417640302385804860178162545215960526545529870197074065096865017066366849169140685149782998926529932019131835249582841280839375435731984409587795252940855970394750892211006958271982651670505783810659759957539173160970633205981925414064042330596257501341138685757431055778493180323407449710000594471112349089771216106076189670627273201762571906835440798776588097547273645171805750994578960210024468432652870902429912043907895422596085520212432430107960458826279366438119007975835889029081448853696990738122723525805017939198188285330424614469774023357508295342527735148065991688684083011409155065573640133292030296796586915142739682173523906045201698122619101818682992540596982025211432149593480388514799751516402799882695606514104407459724642432042307828689299124099798150060170066746053276211903465453574032605122489066242606233942976769931666110274568726210580926416884933073413702994910102876167226791698025529327782522642155444793299482367819947845207040289468824286631339251285643505134682959890282321449466610549755605849484221102836652617492176277215153411829740379614872411366807237211304931778636237477929114339524193369973367407769365163250361191723161375602448605935205799875448577238022375917323795968093048373782993412081828759486099436984587869483677181773067284067881320439320609698252540381349244464654382843108415447398012083376063260838983913439017162922264612347522161622490319458904119287087352949647485440269129208517457131130063843975903410851509808339661287711652019416357489367068931655933258084409715310252667085319466675127592051519171683257147927985352855224676092632385321040717827476017364050028351180026473245926841729656158482459477528103363181011135676777580635723678406272117352461898229798779229767418312480086720283785738702648349544866521212331882460193252924626095150367525395609368109054907136471199821981996945253793871480317766181193246232336261848993841607637547534058714869127122676937240414436262221537286376705656330310433875718992201086592215989382150426723847433952284221869944310355481599341191281176631139961591734072280317123036369133221622867661353381118257423161624144316624720520303940207677723207872039193225048174440883782028082696078229148255900927630083614514042803369250749764638123163557473036864739784697482495075979523046406018350826502715418486433157422895356029812780087505804133004517259268720853461921109775319853213175070053311288625821039667216503075428007630294606635398917263767224309611816800216230137520274858158545102571300856568254129202027044324412794338033405420605789606294816270391992001443204458065948738529558826501337935585617693455848180917642011199206421303631214102604087561649086834061839536796534828273481202517555186882686125411293502583847157323627988991365413513731334401799965083154378503988727570727865848729526516369733508675420888559284036249248286855001355797080286539999847184979451133756967595886452614628276101845793772910382953179499027696759400315321899977585123257348047736602777468604810446488308497074769750570812467759318474512231336506487398339102169848136070719586163408299982933902315734561352866987760308493815799672446477653166865393852527303024348911539711036824744814796417293301241116512877927510147529662113252563325934057096659267456512410450708180356595586230021481227419856375763152314406726399602028802497093916339606604225487442906396497907000944184463601178162358549414835804100181244260970780098067703596353620491003155515923499161296842401440892394727559972099565261165699512044153174960142728263756085057892564793968517193895979535303478773868246794592015470101804490130051453142174124094033962813569581579703957296086672069747503761489373659862270041288388299071610205577308751459359741293132196599154062299578723378320733782763724108654413350442838565494401783383725320062912410087167019083082423046088743475968217616361407494931861827179891486914964088440616174487994083203590612868595084393956746283489815756730665288890579281280613304796357010743004345406999598046548425879223683889005293762308059289636974410706945473554271423946505981317422156756464004518348637394226010964143783345941735706733211566066720787944807399501675416396553587650209973753475594415494805050578445137861660578072479646248088450883953163374283337296496485690551623843122449473031313929298780166993454011300974727927499550589715431011668017685457477052615344938993349186282795128923718217603267440584758049967901648450697219647325674428127559715550757696698217618387005479848334784905555426927997198015700928418387323885422138648157192734646406368587647331282571947836458531768529229919794081143619047371071377691771782952659727413414979491604426795546414090378938166576281747094544755174176195333151451515223508428162181512169180137699428563025264019514408514779404988207987176974685572066779771992252623104498972998850958544139874293134317482913796927032998730191794405840177255978306463463233412843532409817755754724801402458879201518758917746277516920248738203853365569091527053451919197250510113445899841622261115586921645825381817750178440556519688404562370074017049276733841701751079972739146191308564263284837703864128613971548467502374420158222398742422843474665062790734721048445622640983354590755743542051822330387897107878564469309231275944328071784448911742401188260203940202277053403595477783373069644128125757599252824400435071933176632565464880697412531083943267640447721629415628709226608075919670299228985491174438440596285147727462733822096921040716376477446485063609348129623398790100590230893784337775525321080313643711548364707960903137687356649447384716392208544395177050194860507698911660970751396466805425767583276614271931863626925993796692910520336434337709152993529428747717485390670961093148957407460662727589193024246094824318205719901421895561010750913571296976094211163180071337108409069002118682452251925169662361060135914709488892683486889732255768539202048732248220215481568535633212506398105615999035848126417475618444199992685922632356709889509443188487065193865895168324827515426341748399893739640426934143762878325410265178990818390304172426680430490460840968096589680916681565297248732386488487092148842516254263096931725165159225161401349413305343746744697640782292963860192792744455742744280100894049204331185957491275094381395210486421884105445465301953786015252017169644874283185673807571529351439607020148075464525131170564351944852300780172561133304298460573067292048517630302828411792259961964373020546842829008219520793006164631664035384729992153138439231618341943318254251748464120140568534920879525072382523613424695931063477115898107290370009568740963082262529504185386782021897768130215130647758890341454894064401379544123446910416177132177307125365776888411729171223132837760918458655701169092710618550407677127553135600644185210348930994849942586647113001633310432589300272211163388368156523020680627698115343521621970929532149616096349626914726197103051786004143758666029615378009524879098036553568821482497317916347724679533015613307118093683553365058246966778351178459806007952106091089814536921041080496697689812104076371748718446857277733921331203414641268113974466700486084132005747039563838589016759160617663924868563530071237733176874012231728695842054856041462894902735556972573768765324347915534000185606358667975821238079159629873449967979800831448890730311929783988419508376097236334750631618578555886198509559306218836195051784737363313542888229037883068832862499859565079532870083398399122667170527082677003862731590525327337519710859907961697191407979188413635480445593192070353168381433382248839006798814643448918559218570681793968089578740643179003433269626080955054071675611285775492397182085951348860704599036371381639603889114851853024141346128426027550999168683336521073197350906453347571834248052067989579949533120192724907878962454245358344146885471496881104392965504398603136072422297649194480992307258837995921041546470535490702096514850468712457194697693788529791305875233602912818731896540584053865142422639428967307326730315077658081278434757026388890956698675802998130391330835848078989050799854969289294392658782894159841360885520398455440532821500474852138313827518416305162602890878534930973513462853649824371990546280693346728344643823496883254450705247536401297685995614841306250219110115492597249428806885488666756156864656993342458021510647247918110315768750249058371473236480321827731721556586416096564601990046608665558801563609931929991576337640550973133197373408968609142786137084011254617828933044654313370631652594795084727516024916227706503644309202089957202868153349320508153899488784429873311341778601931395289820134219290811363115162231724096125737679145461980252762462154399130547946563092700282708833662778322077170756424264396496879541455166768710476657485097847530968263912867502202924738966291882188079527215070002734901602345310645106338799746287114608772226487256642612582897697074698948783998739267742244539472475116551557052751403171098908405611178214814889961738804469754173180280438088939204057568972846030188331166978925824864623246893991480355762786642482894400857374166809936708025654463555720690839046281423654702828496268730641589577141589425529714042640359199590265974675975120464987943136075332216847164904152182824038563822975556551537893799230506352787569982870869173204931556798587126823436226694900568929530189890604734583003030343390766297482923483636427248971321183687025538069333028834057132888074534309850219181696182836480389309237664679378367020508101398336412790973677686162523625700307131755542858143970193260850308987323796135288440099789450289881906395190547914816953474370713458547358871306577764046556547188386663586577186111068910409082595032219260948848245022127160125764507919400537747229981095496191039103642881433177982030921936852373598586433696552720935288269396592034233268068314530194474889089766766276202746275605989176928080167168252916545291279059093935441978386041233582031909798529888961809211222595701533014487915153682765306789441559806079909593275621277930804728165560651725080325644008383515754466159340003428685840468750296818909007232975110815818872708094700045974503553355275737105432502164466499570716274229111948861671636557625187846828257011524818739693933596758268747543670626589674081726427985356572526144734199024642540566689923903221993309935024185704417927115611207746015653195567577233013091694344783955171332082783048381497841527214329829235413172833279899627634803102266960966076946439568688029589410393769011517776701236505871955453291055428075395351629228749381088084118760715385910076140924446544454950410669120179005332068824048363430009624316308473837954704855037513958153145304953456441069546988273633362791147342089359795618057942819484898985829693217256231265964556902447514142652238954031344784067551609640764234895144154258412532438288650821994928601838779876763367801463777441368886984837942903931460572975906763663897732002745050270961041926902994202021111700625161923082958596744175208364982317057822556264814764867054287890581137161663619108982216427629894781199324837426930521481899430622772151597194498137039213489102438560575833770515405981446959488033086038566406505881847462682424039633978953433617260766494078799568431503433205987837036011738415012242284384812593006841747191311917553774199658496940666483043138137941576319987272655414575933373401062770404795590996998415892082509601188730246041183134579173887561530715510978665201223685289269576005739118500320883134741774119418271173872832826293235128077391974588306571791698324199698688149237916539760834958889918143192441952056067775179706672472800230434077722523777890727521705264517174109148643604468744278743581225069887472653845251134058493083133736341006731352950579690303895348216769374106719763395865242916321722975614266500209275508767364972641646284020392257495757831080712649056287351170043415836854119461940531967644272989523432866844073156191334535929047372202730068820404284243427291291857970763141241208536481250926447159881575554293992937119848825854728969159539852327907660044293259616622596036607991342973588655191056206299222194213610661271779999220249060750938855910020515350624029936678517264005936756616936604728658839115842029547216625695445732655449246764693297943144948650221183175131347229049101912241192531187611222402661718571279738447536527405614987361686789243154716816103612375357598692732871391712840914227410072860897858858717678443918352134220434777198331903662208908082879833870244340821211991785245255936983770842446781836481099235047131170634526245344385062759241615678618675908338035567798644807764520639074438548071068046631434952120462083843148025838734231076069552106297429465709027465952657261417978368188057200325492812626031167520669116979837507021812107063023587417033519526993579536769944095158984412711351250732252797363335386064970613016364719076704624382089144428189796761538882960308814500907226120549764079627199332375453071993961184709234780938275069666601280103637964443132907466263219430123831467937414258135216253231150374760715375846912319824821320126431134828941632383093262502317775665376493504922612076147227756590126930671098351504638013530237447675300972999392232249671824508796774250364054760056593498397735301611751821546596390050838394366681950496048470087605719362024638357585446421926296069904885711314678088634766471143485535106639302119594356283248334628944832888989518662580800446855997875734942381243987791382546032760374812640949846330106295997484441468835317376392186951931641553138509293200229204153920714420573001192121282857859927771989516672316236682732141081335853401562363810097002297172763772836803159205653595828716371857726727014416012030976280458408198482761470943395914041917179254093903937586871387390981446414647720771921834262472953193499346713848571246008519672864444784412140638158870199800746405325402468387309715484163910310747468706617393108144275122597754061302967429695356097838065308757681600790605404245278336562236466020008017528621098746712865371685221063429973563996029119070322133178590610360050993508376145037312564686572793639223936177952298401936955369168538567565382706098252054529566645867922532200359104198821018453485683326031566457093392378414232020205692595172684570454572141019201856243571172053887064561308288079952316303596235389966609520028624962245734737342454313401075620558893463553269154416834080111117945324142172923289385175268628935144700890752757340831321658483115020757208073083026664343787938559463358177204444215078289948454325244286172808969841970245641007307257955094884738011757918649332949416116842310022060016940728806615979999755536422024942121470782321622868711853909155098080593138127929463776603922241917554134189971690211444682784137703157952302885364516722602797449166553348636336122081344313865301346752852789457184282610884358197986645674855998309365869669596812646738887727678602618421336537096066881203180721860987091104648081663403523221641817684822365112834857892309909098528404529166623264958546396681845140570002109864114783037612150384790672520767623814528221916131674034012906574236114650102029551729671178980188171614923064363902087153091691428445009804788219599812002926062904097355710458508118596430923780095892033560692915530812083543246059227794277641037539670454777125413664638284611367192802792473736295877470259931548879450067656822460736281429068215822097992613444214113566713527772936716518876460575543979161116393917283986666881578845094843187860114679225977821588157445917997582514959346972528329678252516786324396781337076267168494710638797135187430857001725553377308603547433827104487939722537927022632757492668386124136763760254974345593118690449266795404792287772863278440764751222893548230084981553739213011552792298710867450973967518414211774116931868397622117923557832506048179606399800260978133414815346602421319502994629826941023063850849040008742152276910758050240528480449091363866451348013034199084298420394578969943891151301766385765156670221715206447379586104044475186614778028568586134341125504701496481873916248049034263375398093575126034773046828631777905878975670649317440471046698693962277181000858604701170631886646067184426550753141319416744724904301970779750611510053522652460769745779395088903815506755519800745115849617102491331878207929697658053810178825715741067856875583900006963670926257423993500072740484184165808941091066443261995434681477100784272626175249802007624720987287535547387004260734664552420924556423141984152764757157669462009685982476026375560167749126911033456697922838852922915551411073569648530104043786879131781850051451753138450581939930087730182284876108345760051074282941870078375277565555791101358660591177408188363738530709592830885495287718116834499450641316602914355563133453284341266942769857840889855866013595654398407927356712628201972357462045602266929213080565473937219574516217422342526432641810778733670417452351583377188046911185870013376559591308953762389651829372579874168701640666743221299562478252926236407457557586244107695154111543456663866863986433733601924936831481260516947290684343343345248044118041584210310869324989492980678294804283268570296304118468515135710135630875840767182241517743919782074301021557046647516116540283968843685610212769220876866608853930737099137829352908402961101506366066662989552879578302458324989106291527473564393139256731471014177565411736992454994914661264163462786311961913180790377542381532516253773276784701954247000320506377748969419518405785787702583314257821643764375309680046162239637273220079618372585587120029566126383386725917046409225954776377965818413928262876859977127356322537435010394637107621598743657355824053404822463078399076110823356883897782369744120938101721635498030190547336207223184878308259876525009776437221264967576316669564832350099299324368158109482584995673281378431692804108515869550690458347195079907198571523415627897821353723982134135334346497447892331892160435972126792259755357352746156097858053883631126539635198482329905308261615613240486262225609349672159984815308159378188302711816137398864296621101939708636730045828119698772898018828596566231436323769451069067740903525255233768693431220625141936997625372721469992646867401633911217614573743393423235652107751448371617588271845931312955577215397485233084823028939485048292645339857125603015213673876555405337742749502389356347266209630473637491036135063526668708334340649195800658480864020095458149834181916381850438842851259734873405956575683062211642691792039649994256669850175534866045206551789494068688113099090612714168851618005539210921235217957256482996754716949864565044464328332012943912254840491587436690494993723598415529234238146235295405084621510778897248744593548380081878535247251144665748059181599444827383340594250522504536524766445735907196068003117744714192774815793560799993743582226921812039778047805938074034675649138711030797786764564989242170120621157341220437850060017523818713380947691707587493874001496622288357262276928524843328768193516754543897513271637323319320735799684153362087423822319622164950841524974419532041497443795263918623572279583889880601879767163269737344533943194748422759874292806913922327280832012375324226610702069920600470535820473783433361113377504114784737412284649423067121834846758595210946718350102017318555448623417523384636888913427990339832022600069068570393603763123711969060904028498871718570989394277485646052365366991839686671108593571799426985656935611133500682487816482362666142012079163807626400382587821090098861468737149795184481103890331067033368814161484630761797710742918067316177520611940069465406539955205952721507888639561144857386925348483740332439664880941178212496483665232228964070895201964888716525894890113782137395720946852512719937533913926730269064253196552452188851272180478436102383655324427765158108072823349213453181085064959956020073952860547786546226252779224675875165192148841782979345704697075656123844652893946791847436608953989659963884784239060655929688222493969117773464820913072436504676060510594548261817847039918590146348736586426682703897804950066114158052295967136930368524407650327055088231998419471958403724809379540193415752308285673171875891504021979903425890351513908469323966975411803648246034762796221384469511684890105261701295919042082554949057898152141948521756774085678767387999131917059450938865349485329659934503918679912676985809208688828664495709070311795593941381736275415149803898014604964137321885639205167941858247401980059565684985583595388233969499215091722725415633272973174782124928266919570133102591826081926161080367927636301076190661962669132963620735381671521699770252114280036446166724751975590316827743578277930323778323421094224667361127222201432583077808126286544867983642570587842520752503662728520144630243902494600257932869247621947441953103575477615088087003526042446329215868869923909231879769706753765319807733769170711144198244192673455684607454175214696717041280130458123555565411348620304483595929439809867759115618335692347555775890492824629051521053264594337293990599886119479744601885630017673142923885928992840074918833682234110527020631902652648474750627894747315808315410913083091305874212965110427717010623809330050504389611137865628425594157589720982712089115958995383467321950301704330462603087614011949292182992832230551399624474662698728902180550231765265852049802331312412646722869888196399000199161351248513168744345848480467917758599723894361383473608157592239890962657123998943890137239439618741645889176032072157990171630866100623207546440262877131099350385484710109468229331656464476929504392875496254208710747495809200412564276127613205029706142744230283575032373804312821130101633587379826639974555260841074339429305382754282906494539605286554066354828073539624209102752578641755267241017018584152285851865484754366280734951022792621475131284713363905246347719326041615664563612722281532185766262431953238575843480563249719861264937753288701752180977642918614160398298701100075638399404553998078932673854750521201560047361745831032208556055476449943248401800741800881443952042886209675729177208991548256393861818265801174389204872532332331478403503942114103707418927494850568170746392588574778122706017264400892836659679837595844728738949846109231232394995462866161953185360375696399874678154134059417416159878768652801411975285264454481498551433536668692999190370457428859094238784841433583050312419819360496447358616236573018286039160848745483935623773191175668293594438581862280295555185216441467788744102096018836132581530249117831479044240120990447111275320417884362567587969740406045566508454221217101892043026907731942900841479850835291227920512625481838260119913853604134246385480865719525831650669457347672355159460097107417247937484929309959186506402082210248937938110492609891132666737569949293513775537494827379520557768270427801839829805838065248525087056593401624172334976766406885006664713441346404196943071269553009497954982044611794688168722871923080470765277332805828478643954350098402899122938504380737338012615673390246230025446364965720367006855550255630201787873138751919637542721175953497267282841108646981410146826193245821450720302643836497873782052676166256589231585140046557941907287548553436190204780665534340635323143410434358108605298514772665944456183509037817133034570276216130080674446599456676976381425079363602062237444164071710597797441005734454110526686927674689323110871718529311243799094187762904585403733911981625994004564449166121599162495128006870704285146243047436830744506898558919338373522434711807611485022387141097870834746705713331120277331287927200382133227151211409597691032406681049920165615417059927808702329447109843276087887127127829623995896284864242002887568879260799134940398370147315374055000658734581853914315782458538311649045521369234552527942249317894903408770593853227683220057986300114478448547483821401466213756193196003757991409352225670454709095681249488710766899061964042996574453618748891103647053010182601822394070194461095227775476730387059662904133099902997616264021804002190417192920489462317137164683477390704717859582596247963208090861422917067653955237529985991451205234513325861040245166769109035045148218273034374859612917858402679078151542843815844982988679733043962050734495995760621880718225262192998921122945429201325476229343184425372027633947449900512188072507116193609101555892938224489180463051175724994841364468570523153011567607478414400876377412851229991313663160493279129343220429394101874072530057876835004492829797987009098025277111578784155844565101894069113006403700139795048778337680783316113126602201091490927431302857285029988898508458079244995115774556459363453861737447575203236593294003901356576147039607877949189101959773782523085523760655390870206942716461125193143817010795636447767821397971634577059810829421041633393499405286837624041869247572914289714261217455776393719814202510237526481980596471904615326592767758419434315546558675247645270267571478082285265418040026618415923422769868821061544172832047294669397791116069443415150332180574084006318664356181778782745038178723102608110473839436272664521906534061305256085308730926924690473982142173230127735183068995869395638241791271545154475472264364017513253791252654891751748180024007123859383640652208746184695077653227022131611610347104332169761275702117231448938590649555185514396816141884164910813956249509227218481117066118953753975222268339636900941211477262055921488906946228631849885998490555416610086142711079872652518607548925938416919926447722939659276940545788722284065556341257266013716095426637311074873747555980301900229824246492248493373153244608186266630143221711808824554546516843835772725955485693945614402935399960295683256911716033847980117186777601322604101492474148653277085018484886095287747015429262198407554729682231763015792173057356052746029344402122720348011339307465107353217775031362137838448473425426167475140786857693212548577356373362375066830817942952413982110667548924709768075545177006610191474167559856019253054719915199809165558629170875553593014696050531136059401652122344523722565260870932088927132086884213121607300678804205670399388510182106695995989987744773108449351865140640550540925967985293913266868248483294366347935584622783023302271180971851034670739372196194339387733540832264367859664453696311683744331547685399061459103621282678094231434920192059781848168725731860357359216728070801966471737926613546857530719486603311900539002431610163385437119781646229261394530725916279828430938067314425543887059620903529903528730191462989747027477416840633348807475631794324203285222912648082936398633103842184515045431312446831184045004139122379115751596765235329784090049688729424216503617334554607433430800494796335891727489694366155704461003923930533744058020237748036141426782469775399043644469394351500109984878992751818002750865061367891507484968109053091205336610675391315441510543462334136233151221676623050133164572184657459912679682050323098262466775784571037808571000486191098227824361492269526633575463537254725808712287632975691206538046914985709490214364687719270298154807922726891323655237124596462974522114669588882263372439023541622089911796236414584976516709532178341379426813007299802917954622529091732914455768368946776618348833562171925301683416691287065907053349048594366463992506112549761202179264516033521624154306641773076677759767040276413283791448351073162156185020741883333357849887800830171916380298108392049172198218714931672326017388912096762035662229671862697841091385585250381502750931363864689676972799507008588662365261524237125242317093750417827238390394245013395810011226972201697285862599896790685076877610241271430584827698754685716773782821002503290416109927741050166143470373556445586746610709682655217722510510944955487719674272023143692976126398553655355746707123829518720610984394199479541237251071657156599956813784557258990852049404728019078501773241218531393385071534210795204694350880093709142860720498752106407333412725069051071739481478393812940976382332620076577464581882235049688413360120412419140701543888564340751706387511675387437791498697359501005976094631759204296463702244160007453686192800399139847944905732206728217564615101720548725623078085329873346234813091866116172389405389557542966338246566458374025437441074629503719772944337300579881278622361690873481770000001435197750944313124566753198500009367410173400358244882351722591498175569253726567204477113772461313270233368963915860374761184888250930361985494040849022670396193513714773911253132632731427840970456383439743330788798254330789376632852749033363938581795210506852743504176998298775695227364988721277566668150498859107100683728500395759411951346922707058992074024484056677677798998315420293005605882285745587128461459745490751719154213008511903752086280299969665091400482772634816171673772730324261913562985957867747873786793355484359226558739017196286159504337573049537427313626805787822903833693434707324343486664661856352714742190904858122035392026570541264788753332017624868907370460966313235556371239179594158483298520858555419190957262170632316759329385226884233857795110737153532336290390320337366058034299024145884009973739807924495079997508413192576856096382188367266519004589422367710035817461009516043683254437794115260647950217195952790176142162674830535282699920318114924222133481015347949558528130415455094880518972810191355616727648171076500473159493392209445942906121829756810076082941635148961998231735286185776687343090643297481384008102442761920564553742993760436056742796997485442261060063266164474107926504406341627757583051795110334999125150289144373160743138265666366057994028034597862130130510536558329067903583674168510370473479586580844862645092067210149829827437373647767579915207062839142170169647311412621768344535161374528685733938551654717404545882843689068476175885356833024274671696231538503729085672097897861114645855093550735700651551256076144865369857618917863845815010281793320034021038522249476626188594872683239733503427702429192253265293607865563070632164591384002431317857422196483362750748946068122757565309119408479333430480958945924782768871913148627641107906786078494584022233872487863280469120478636988824725765255818103621914230512179686711881426808804263037452959135047439630864747177664738920277539931943846360902375046739026166453980502352686357471283184714279262395862512897259572206103041587434948685031540351840979752179406517524839350006988334241957163209387358301428301863145425647708695919449703255840767050224153033109037860374057375625449924666387663248554695450727146494617383559971909414716649413132805964369296050566714025616574850277304176694666185598686085998857437173720256744514200922483644673742349585284344288238442214083410052933454424365118691281785481925947693449877097827991343084875971237761919840975807452890318920324544176183936448488095830395676177164779809827064508728027994889779051638150540939306037955906539776022844511309684942739472865178025804305089214694238042306915253925227848095943902450860627786251582127823413066062985541206020479778709591774281719425020381961136745859038510740921083879630041839077540088921147619577869901993183253055944518512888593577238280199797823372522176293613502454891365727448602845884234043576277635098293084118872435086892896342119530688939849725713236890826244680263091054817911775394475052216093664341659991793300172610262513925754913949877937068667547485239278421772208239634074513067390284593594748908237788304432576963992565759798217947238517732357165386556072002332136368648256585195009586624729663992743310807116196800641916516894714475194097555965133383600340436390205374209577618371346877115399923686487460664951322681491891072936959419071922966227221871679471347124425997737214235198600426704191037859814658746851430137211494000995508214920814035628973770057422346089961164244118335342689436824645479337177868822518241813350975097464491552754692416831778838756988873590446860333368535487086528975724767430283767019751458751542157817132488915353823732287674483840238304981810065059601475323024361698677563711924919593799795828275316128612833898291072866930516634709852118132154497489997049244579009240613722820097108003540034231624453281715167316379774173338122446859106619293392692754032788198807708558858079951788155713682939633838117378640017686214024651368829887010195146679665025087391406664843364034893488764777302164175889377903549076926856583202165859312947934179399164381524126576532740222997666450292194258826542355479949252479581357424568106412006336495483005713680579705042177065252849801159788456669134143903899345245033330464320315671084385627725792483550765411370841140812928979555998235203457885588958041923619853344157205104806179835638480995594862251964418829919304976453247667288736731355545358016922292985871960814623904667906261103722639528576547961919667464330775597089711628597148712686222262895950732962591611557175778645303573301778273383972000233859498405269431687350787267052489443290365861753287979964435013895653602780984983577566877182762617786823549858084255563723564385606660632064128603874267728363156697574130166026086580253244828870683714799678375457337985461324265720262570377790295998090678775662762965471773714438410090918110427705563533376443218781475054139621798600548026576286669443446954781857761257860059838532833615801116189997040868820409640902497153501924678588359701358512444182648405890400839848022056356601908708546218640990010388360722193299831282191086122490840870455069932023748904025035184302135881798856114980184160806508682939800763188930668027367592308453201015989274682551989665130767176211732481875821683991843676563917047137682337441399028973206455622171780975851620597651777825757169185700388895654900694056484292019428735476672773503431701898239820246699131901577816689860751998053547224780204670640482060777108753014338443782059341752631591856450510267220305781612809185198509700209284721958676767688036540250631704110304698221352938628591418119955295717014089192356530837863045685114292623196636491097538532788659557569357149463087216505519723079483138598509478594653531296210732786503804951167036439140766045837695231809622006618228755339274047785165028360636915534147680982824758882868100369065276441832357144745296815987864970442914257942893499281753550604856083190925696113830506489433253296444111380972589510919296624945284858505720173987311557855863568205385009794047290894099020712572098388023790212247751340129837236722440741618654763149441397717429300313842918570246228135904721807977986374420139310582789164035055680691479302746334052545347678350816012864070585972234812159898178370531279382060508486534687103661084730418886337552565841588796535390928830177586929739391373494335114858935869768653038467856760119420803635819649445303531677026792145956702693945862457498809779613320113138518557420140608746123071852492232650959697219544386577286080622481772738065771817104890156809940009002776649745361794301610821541823523392489880836723540196909828780427018414261686266501490399338657016624069861974065629592507038476925872777762422766391362733247332171003099699571070309230700008267191594086417939503443974943813209419947635556464212456734618269290255026940937868045685780299890159552217347241225984138299014427452595794721386326371879701366390202950012272036238605939409511524056134871655873519297550115158500599818883837484486885988988090633570616581354598551117163318721035201673124583472841769385597838246637419517222963759521544257023723326796485838524691405071310883766681553007793081208632747988216252525691259113990430503456981169652115683505534841599261033609581220011266265619225239995774804057129866061931247434554980144804397898606295967211289497642414683384462055877253996755582471787578646397929313546006332549809041330989420743332328044447977651514935317698072308179997397497252632410017339351051880748226779310360691092956965895871239277123854461382557229366581150301739726486762680864829759902798713962343670662023385474311503583787372179654794319892370367829482945286628097409899608034880329463981064164692281792231952820996980488030252165053007586107677097427123524771444533694926720305499649781257247055761949151262884725113595942366089889450371153063251879218818667220521053069165182856170662786689249758347548764051135728985707747046752847467570948103704942107375428388875415605842433073323338798618152765747557080784364938908516122458741705812972778414870140387494957628758106007684923447140948429364069831675191668977683752245339092259650099089322175642739106407251413938315376758571040745954474377502474522115973681607508160537464702723020935262547867506343937887188124567815915712640725962905606578246296045559263611498058036848837622524053742770569714928699684256114689633045536251862914475102159429113888396588972494764501991269109178894148544413578833926122375714274958864370674144515473223434496927351586781846934516780552051932343044989632607855647693468025540026293884760681413303847197988678613833328796358009816016193256674832942389931673538854739659640155199385842406932042463013073022675335500332074116606831303586522921382794846683689422514905788427015894821892381958026201216092160256487495756128307053915846693880406916157144625672597661032727784436841446357941491733793538483947894411449163659832011424782476252747141406362159724587095743250353288649669999048165911716227822512966116676002160660957185850268398825225451902338146459816047237789765646478486084383763791342846214268233946077805016060821212970784441078805766676452989983610012031704435041777166381426431356902001845170408901094268122737708090090866140941811917136118127977713279124288247824895282439371714357317590501868668672623386389260294179481153291938550098402701047864035263471565494520724071432790622417710283137151256463953908197471705236489918965809561392412917200739573206077870484249158260691323091429583429896008877327992887104669575566174757252826065544240469375014426825226759219865985381941251450961798634191541209840795919557440723525481392399183936374790557358955552082906653519905480858190758164466548182933556099547632086197960637571585765084475913234506378857636381270838913474585122347991494999512165355834800871823304083306242571528040387821670194680328520352103303466271127901537564968576444420014277373460523736601154653307429818846784477346334012107549908164228345113624637758950489392485043721080699217355546756500815731922625484127955268075020481641529763533062185222519389251424346030260179263048515663317010812977842267636520396639889493869988119689936908636526338149205714537899602580701946344592942387938590398659521892741012976000658608936649101907932279153893063644779225468868361396594031716914561993149417737566174986955057275432846328589524205699603872549871602011976813139081511041634586160259248005957104661871551490539190956418734608350124673693139966324947328120774424412607329750997096146021397582587899292496348404846901403548739662915230378318188854879837014626839254405172518947486375157056228747148350045635920686581265967104972518933191040044951762744275656595651376680619946119655454753483283498307221179989655992249850842419537186127557291240024759465342319422505946354194773153008031580984933724444947243004713839469728725685603553996469711153576621998821633380904566391278165779828988672386496821839553441796165509518114062601794688463583626900519501899018635321457011143657052946940848184668131988601063151433917831584144684394324079136795849680518895487554623093358647361996280618935851016821550892932280310742763915780456924580873381161102397788599301351637236410046721983027834952970053303754011313288878638257806830401865596127507291141390966893863429943425288338183291613832840438725254098405893803904304815650982091404458088394808370909206931196511021914001180487020347704284802780975842537444623313419118031514995913096131580315864454775727733466741792980530411734787322570653814144713392931455403710782936858608065816158893601926382737382322962416010228219501697147476838558341023321085820159999637269953519001386951593304039638151362246828121116240588225951936804597569579699772606252563114208962487934988962320591502670104233626929416739965011370170471001554353219960796923238283584407613733094112161504315483807322023021858485883090188287984920121457232434583346115488278842846997541988887500800588589412298513080209279632703766877536294095478564839163143811094721069949445484225499915801410152362075338157483450312966136696154477177876184895262481290236078264759092448556352445860212157778165041009109916217174692032311431915909585656391441163070130323792817604101387883731960399033915434705800820789242341710979830070604913639439691603095273888051913495455852691481188641724928237697225524907802945039773336530232177204641510532896969035954667051464320175490264913870199627259021688319140380467673995285747742802027219678717204882656057825897685531939891541319630162171882425859395779620569647289674193253695932650087842071796168132726462115612233909899338564625841496198025005840979436117488432072808635819988811503446386306352827556808925880798952581210937007025515287864984689256413275573774122121730093778743461876824728027094050222456860744344005613721236739609600548909390370885200156442624379869830540817865367826532857910153926465153884407758033198597798351197686895807318895919217277409173194390259466393182745891318332399299394980129257931747764692798315118939254039824926476736143476811853951891569411305012346600581790725692752441045894102849901380107337190003961785011479813757614199498141901164422958914807620865946357905792757974794013133419247269908439110298861503918883936732118933229231762627433222512167954803645590252794361438400073649868338613375489346815324155757728730786738666269162176502721374579869084240393757443369477246176793952805108273694531331312756144146931296703949796752521479332386293022342013847648691871792244570952307235796075437215687082095580196104910634632758208351086213095641299759822420053302590898168640911165492132605445864285837795070634075227105377059726638930609225969552556085654188566798448921894692502968269116949030166306630829749661718311074736506702107438020844698236289143699837502627412174012269803340084867107952592544135470048533318670113082265716447232699892551965619910455828315277366473414887896227408365610528198227679966699403926025646169135786266084257962658374938962231506982346615514480103332892294735272117188273748211659356358641563784192641084712805335531022301144377313709908995328330570397511969967165471044710012820465052896439521282506511140682441978417186873277628644291592498549239373025412265837475581980692676843602757738557522846778225468983647228533627447902954319196789954330803288889704654764539066840376059546593419812333525143165582703833594737917304413641420675276398137786206651089525235235097447741522643968841129689217835576959285270347618507100892412640438889519700724113667851955488800310174567230768583538395162285714874169901634918230150838840982545535370280588002611225319764564300576055500129252985122022866462421268190969397658532173146354702626670985709103481597459919052133519775971208190550174906449418962196198246474252961709666662483468922860761392386653834123468035859303722080457973449781741260183346838435769808344655994250579846185174418861751274402910955693524146119653670100989579107788284537089328514903743120711860537117843760913042894822542931462452971524313608623177385901658722756855899028092617546952044804444972434214441892202158402777830912809609132161358792606657946228557717659301778029742075319056571057091459932829738140349397840912975369993939872824358392406558048310697406091217951023877732133936291147877497112415751197897062496936162726947583822037340820504920283745821676438959645812470154134524679569671038078869768552180250213685206883682126911502729609217465719927292538636554135099808336559764434650487372083978801076254955224678425257536578800006195421043877491593109593915996839953319417247280058453703759450085448793471975471179403229080831689592841863279157399786943943412212790848701326203602493544346950305608025630121254068869946326206071820390813326409264166302571597873076558916915347814357834942022459815340965073273986769542451938426951836268243670242866976404640620543188273816386862089653251562511628810556344168773294376599284642065596524138922445869153806776173520944946529125814217810769006277142458895571953808709574397691063907706481925952611928628441023139576668777864864747658696994716458208332039177451676616850084603011093801800548437579248462311764764698220131125358742011381091454933271717580022191276018988673463399928760039591670276951165511229985616732289838302760138003816814845358689730855825846124913865823548656042348045282593194516586327021714547033099280754394072570907047742259270920771968625031329492943614121040420436528862740406353937478527336444485408552683855828537875515237903002950214212619903377266592505197419184079269414801718274212084687819296969876527703216192745444793314094250096317573061235569256970747315384065689632526068152084926495221428789437588010214517059933454626082634643457163783900527274691385472704544151894572839626627680108793855675811456444630251814794921337037671078901129515581234664556379786003622160638378592121478680250257653376768847742481574322357260889395761025283460612359545022201016492913090947605478782216144560964475190114247158725596487335186736737024164875412627634264015158693199003434001667860674901972891199623714915516729360948212597282655001637972717786066064569204099475600876383708326149290542991869663167613782545984783408009715016470083920042552776239756187753487780019282706193717281895152723793638396041921663767485727025493959612929002152352204163817881522977593821838277859029826350445639891540029074427833109257238347918567511247735154990439546659933674682302295304452202720614896075799711898816833205049199626746338898992897921808174260659022981956345439607757416009372835817224342875636439320348386278867946085272971777605744181243263928118692538968143021453612206861954727000780430539509208802669812483608442748591032470638318527702697799882134066232818968620969998539477023321595025228869323114693067355168646384875589294882970985565406961780832576107095151230415881703697246396988567983370083411354129875702693835927634700553324071384097065132807922440393154451478493506959446167113602445500676517484357739864350284144571998008805883052779144245852310635012506852497752726984679038873449696149349355252313445195449216169320519474362342436628490458391980831064540840884823162320392330665232274758645954500930175877968855141934479164660454143220165170546334023094413555819344237467183786951039499109643943397611377297135465104017098115054768469369314321101874827291055350346937873244712218454830554953980291467001103489241471027401234112843813263651605895691696243947302837570524997111177955349786233053711590442794349596217064292479984709762618249915752681384601385630039973942985377723448475566184696957004360547173546681091972192475727336732910092575115398208221122301968037121655073670999670303927226582325276525115171564562790861902246608933841715807895581497627589577478927878836963996939237649844640617444167532743831430495024892783860063461903077976974659529920769925006658973305469514845348588493078681106378838789582103101827922183727596230593212978958878040239427528941573621699183898325458588221753103976836992087756459505264791279842497739990891146037559979583070669866418459705801620632213904370404022320288193839108094468300604731098728682805179782094100858680737189807695179939874346027623629363471350183148406127014341439114930014200981738532405442065560119847159524016457288706143374893498051832223429968363730808513346889730973679517533019835962571424534837663086454481956923916154562834363523476731779164841399691213930379872532430110481236970740851867891843287682338343283052725609963374714577101234723836549318412579810732087181013347378407238171207850007901771949275175828115264724040900440999195866681731092709582980767461583256868024090979182920662578819873536202233590151712868035630377616787712239628729152580760087156500282500939803892305838498374409978252693085848900115869865836231374793377018318445327607463017076602109572326448155437968327557489115616945480327334489957505866531088672490404185105208859655447557090885107339954482275181486903322023385877589592245078630830520705481805400222381288385361219216872737231469171543897337951480627837765021102374481775320497034561781773011944762032168943049527510887141662414645517165871611267218869344658615142377272193803992266819771039798422504470850989628265124831920097200494274079494900648743398393068791618793161250578429826527268136187144338580413939515735948167485051091409171787996859064311298082763186836756420752941149603782912179785969545244211940555774240408294765274792110991397237549928955634379056725878298513288821167693199326524078050987539110160048416978242440054242106519643862001207205140112416249455461477940321058047331459074667932152513507550198803252349114483807079781028104278846493333999184527193835435523507772438071535409504115987527069690030586826477905204062190215464823961217109928097400604250485169039318017909642643715174287346790344808805755482905439327440919826825492965065950499261450243859168010380622996821845229541830099959972625158431005843185130281395983551214742329096148497670502574817504749797991050486256887180630792121161436509180102707394333421663103286972825354585830273626279085371158089716316869992159266853809340638261749869498446008026239060759949699708166193833223611608224294302025368863925370916390848784723584906230749981906920851817138959046466707071672404811313353508305293962701841683019600424578356702193444299158841238805673770578759877970043210597295486433078456366502445472165863497060665955898141923247895775172974008370320692412503061776625963189450537035032217720184154259677148700019541656564342346128726217450793750027410736937928155631831596448002336128726248729068035144525570019232966419820317985133434317507151117975587868061639766563614074747749062547167065854785222734326468752982163938482624248807760482393736599437182590187186727604800237384104470093354523933763558699621319840542527251911830161418355990298744580532551002764091902016906856955670134207751099095097949649997117802181495966375153248097044172221427436880964744905128773497421779827443183584518188823435251374975325683700393182107635686873886505390150519348261004555105309583054770417589598444937584181955904145795847955306139239391599244201282870180287549542023166244117715284723623954869918915260307074364544273303440617413807455283615258065334865011116621076568666038864879160393907279709483127489717958899921534089393705170349022502808092534170656635071500773230336869979778463400976460306968517459371053358976119991050618350335948048823513982713509826289016511252834416627041523439183283732385058244244773163989173781111176697864579010842071305274292726469033701752183863319554928536123562923094911566556597058953508986606297924096675409802678448303808630490731572054351471195711763185909215090540777497411089507100135827031268196182193738518047686591460821559362728324757488669601592543191929023919520917951615741614335046254774943584152959261003927124575687779959921713403490686375337662191430114207404389681587258664464766223651276478733116652119261598804828580233561530795381655688354865818483246624403837802574715812596857630037635194390470115381295158724590124794638209967760891956512941868506660343971118551978677876569866675739349940496057323551327235396521036611561197633699768116304350612989871337807034085579763872249291631047611933596794842932781817027436507488299427194116892621949051615058101491511538857722155010255605930089923381208577918532460211410371528192368528438445757214991757262994693062285576321270761889543458077785407052871598918084489720361073883805802579326718125888313129370291312288357641961380154242332064088972517414907518255908813038250330724870084527453451993097188077452654755300367316067393837879619733257322565639814149394713768269306907616657993021109508336506951947968235484857530471111749120410108422381996497509120182488634463389895299495295230723670947795363810185058350259313182802355922009456521808355364266464003456910379288003383603724572225963462109400736424739358249421636535298780221370636326706349690233399440862626485604328573307822694906430416521611192757252042882607656809547323131536368685642686315363179284157397964212539565700102235854149269308398164079232970193399864340939007502903113057098691507102268939326806164070193063331056553519083171666624849168834801474019614766077093337889624229612792523799339802388116294432547382052137532493569407014366341032348175539759870355195276871222759679328818905151425557191780338952345715947907783983043901446075006465451266339235514524007165762291102996139634722046462330669837824265918742146481854618577740482785257542572844533100826952961827943532683380892931592551341547711456958879921945958912514574404255573691184156132962081152262316213852775438453824738109050847552170944334495167878846312129774351812298290341787762912868891240720143973988321165428834446908766088101738070928883758889482805486930072458821600838448429927304923629336895387866133512497358483622984864971815411493678096112316642188776711453287725717785726854947282622028112038091580436437307272480779191331389965019264706520432668171710011426797667044536981024118375131885140168527073334388204411365624893981310331248021033164410992254457264559762194372846178132787630537598998404814738493111757072658000414209396626066582307213938046365025577208905878308460519166717627046943268431280393224131529322557966909714816301904201102788893465117912278397812686771383022736732229977162345738703332264542769438075924925999850975791611389374992140940710851241841683161462607120280569974697974633561841474621428135264367873564918502402205304852403596184932855783317898970778684308103172514002103696155167742427177512053885485355915840084004473689352191525469518185697886205122251406683145908208305357663128431301536102626885205247265402497181348449658107747956352219466006993230964950587519508831671130776427875443657128893288406765471254925868029345590084512858948191872478708615413250463968963062106329037306050489945469341354896643269346544134623952140473031708019857651000069695732707098263318746591479683187970501053107432162903919641192624019385688267295163676693778757839554148464952753720589609573454818113980208421415604282538987632591015318695974229857624326710923719172419421338080350178039452157020657225884558810595954330890976943929905175743898886310310536784406325831533128443709523062201657509253637902410492887370127749960502800036282675884438165719928800032267214202369944888664914875633433341283499800422683949917084459824919452850339812631157169065045015221290781104590846513849714556470245944048769384483901040087158020937654292725031955289332156303892523466717406669999968936985750560541637825345691237415523875711253382549846994995669275454641839706031451270083265296010269429374278767178500756219650238033200962743167006355115724597445569635479100135775397079116332920635593754185274924164929641817675602531766422287510771496326741434154693369789688890957584844059063538102314930002584873154028279952250600395975671080548405750167155174432528730195809327363008926427010669064482500464337377618428658346174728654678851548977589337952860626611034618953702914009096850661483273049331397882031450797594313623145789336880700691602027221971667375412667047327952440240057469694697746084231309410445988616487859573886176991414354871651282083033514094082727366586537867779251956301782423015962255316045661649849548699904536787537779436227332426348439577358156397032563708658264814636923506197274618542331023326551935059045927818759076010298406720181977481377847855373253757440318354079283060357609593089673187064413890923970037612090332817402275773557170633180184919771803798919310305034090394590551645798855178717635037356254980425455858801679206176163689274563042183385398842417719881860622837077778557268586345256753459435971903609189497737634894511770872842977988103548192121796414566572461694461828712555845887014245918176728992611216664033929015187699756271688658944485468035449455192987989895787220620592005907459568294738464002639752093589546366056488224791205106280483417174696160932601067064907559779411126973701732126161622066927581483630366853872099597116375666875654067559572074835032642859873844391906066133615572641530030972728225053657585543468857130662061974984911827898800349491206401443858921256063636373349330949792230097359929911846551939452701746454672635106257638437853046600094409953302603719380291320631256381919790464435284173113856430026119043085696792491563508542797191127855683250741327331642013628620262865263706535812035493840828462387331474263456230242993727761930662202238230490881621576064287715455529597909124720562182046356086914009869553816200453831897218233062936698999349449085374358562322319060921137899025381053596902248643207888787734010516200385320628675754850686472872641907618935816833828703420059002238166023866028775586518101916079859937006869161060593217099949299740982661528157653796798226045226119288666492288936847513935670196560837398945032176415547172789216763516632830797742155817590838765227075299289854548855057675068990870563473683891106849406728916874854915571038180722348543898149094493813348200885550272797367270843937509450729521963149856564294615663491702202712192532585061229400009421778459658806067419790742347842391109253670757289653219415865039828222023687112921814441218967493323735922373880178540577174335966094439487068897791328347726244274985839080950351267822013915522971008464486151451182029350071121053244283934486932814310257387544115268351928475306521346091177549150748380262124316119698336463844403845568832743274212036562064405526334054889233400926190765810660426895906100365930717825155407196834655610513795274990140798576488907551924544162004122734644035830215130865815290246208008274397827467214669082924095863202774999590830442009498837127429057464669617545152438074079117184717711810653599976581072259071187984344129022984881695393617597886640290800039711145791361831487611521106692556218630898833363078348547576466077679269787883078732525205801915018266999116494892450607692326657527521743916319120553130342655933884269694144764546238279683647512417678407675032113097036087395313664809086710043753629123035315243144917493736258227848084973496518241964211049447210290263206930083959788438966669045192984129820665846089641908323296904846245318415896728239901559568346990386856053440772143223893016744698273194691118859041604575594966354899288901091415680888733816308295360600755015208126686944630666272964577268030987907526674186046165909764993037780823953182947298396713488260741791802511931605589193677035071524876558780418573764042626887352049924293240335267718788277800323738341014346761961061961585096943988827874370294607926841676711147162973411382268463203369945089784563230193237068241947481761573913774730483503829794366629523565193654222770561962834123848175990188903460453559360430204218887045375454296236016730934043529510859253666385084949678122425305996053878034256662175483403387740524163901999049530091848629817965472738372224746313070130895690083286540362684207729008723898586932325469635223657996051144626888182130127033392397046281722904167647928359009255843100002288735296672825857138678806456674829000530347845305317155436225137957921365073482406257794854155306926787915644525438921349183080914418242321727881337427322864979055524262814597673455933880897741998235946920694019089925434345699671598644991141882498737914962482123791525029106062202216451295333744360395757733854363550774846662303877559961752013572537725402230534319512557544395095285527875699562304878204697117871643989285896604027682329537365241141946707052652785535413277532415216743002878431117952907955094656156269830555554840204136607362990524720884318861049008963615126382355323691879977957119944498532012123642822504140536560769228650321256043757573733128877356652535161488405013555671431268706686234957616413821108760882410446491355369172606467248288430250440623848897871625060497745216784188189600633192816746180430296955617150985138482932652584402445839590730351339426461252454283406407190590005769044584353455427251631218047804414419977815023443002249573123456577791775417815069749050261471554183344741244535875380681448300817055753084501467555105830362091047283475525084756681525930715784791192754403944373262100617254489551869424254442929136980849529194780244742214552305974601551932428507538984599199901180688416340100938713525954482063218315931681317658181269133011953097898874283374562223044425014501888527825059869245164563216696778405022238750817210403112884991586375767629469670242536356729189094297402031731564401773180357092025507918407774520248679693536574685926196010497406583404579479076297859723489363239116144859012103824873392898714758769923922769829157246754921512799134221084799012908058959243984258320710978632567156496388881867400953594470809403536805792586087689184208847574215537266177308767637526569191741553017287598850127390982262784115770775194891221717760508708913155252654108413106445504066877610997482940562869910092308947401672888887734509441628815666899795449898768525525046800994671412497441515203129557646453810197476087794481522591383332324496174274156870417573316031411800186911860405446102274314501844453586440070459652677547503337295666001396286715344474940395642419681622908112669619020535778157231574371164082310798846360643441542565745665625414752073946906539310491297947497738491195229549221189544902606225479094007457109884309958834690394180948674966913948049245133606567834997666007982105004523208116741609251731452685242778723114010140278807710441137542220868056406473438183621350572919192786346070507403648665116093965879902085391583912381011711368339982833383712240820107666573313494426445041811019984713756506522517601310242481209175248629730039364021482711030579982898697800426244584318033743442117022049918882949992833509706800504178747475287904897340684525573031103391860934084006705091832489708795242678036491323473645749557571948144388030243931727544049754523392624921488291076067808620962797101159900203176174747167326505307005681416750630778725150035234328191956408455771480973575978347161815221381468480885915008618618839289917546758019078739396729031089641833043227035257014776708331308096589852412692401279647619790205277970834306890232043785305787063836597574194665700055469690583528761691648117707740528260653305842429598638707082813552028764663916791828560727249412412053469365773312358098525139453714772633401948700112969500577428754866150921105318697472039147887735252771826398356373063141372510180115048594244637966920808881264385088151797285971081449607367515449775103688959481031479775154061326059967696560721980335370475368079261897615343714201207796448879492652875428095064094730418128060633213765732784434979880395156982916746560849430532516564468148991451260180657786213173338265289587469424567687861714194555499426129373661399349906846169595968635792477677378212487888281110038631140263978402221919387508193685323180088536882650563173805823699886870483957362037462507926923802483598285189646303833662571907583598220379712245130301592893781091737635764853540102777874800214279922236305783584504017824979411564687058387409163664089615922885133323860488270309099182694836373554154342240084279104801044458109072712348436384881815630664933601349914989447377438876680252992807286577002684798612953821991528991541021820922823581164465992778059427884102633879028853595227909511632763139823104772032091419529906241747050369396043323815285299301871375185031103738234507279150600676559060182162553658598235054358646472019084001683533893183214176935250046927494189699651140320235311151713165258503377660946948315401674262908333046877893969812471602643327801743834554068048673570531414053175103215124983030257284600007958744520917272748570467428601377059432772251109169365195071900755681220152414176225238998123063795614046282859816616627108733160777290050603971259582374341522355453551814312567904792524638203793379856513552996941434911989335790646298038827603289533093603517148997902137498235479131531775151681881583405341021371577922468172394747955446258538127882498552642408634770596448765131803061358854391484917434636975565258208640763087502425776352410389988354601641480532452724256200599865862611247607713453647471034394831228052327289218847301767690586415685801317756151652924798671560412050247760623327470896629299622982964811333161179158126532724509820469313149611370098026610693161843843672711314502107040326966294089380551882127816753174628732303280001222578315652507501831473658815400196466018015730176043773227956776195758781050853520051024150844221384899241734225211755830189094015085436578437485329140069209501422769343957963066780288670741552582260556912764989324680552032111802407019009160010759341486425260930599228700082607780694764963653987664735256355392635475496283498775194114122807416649805662633056280697978532983080597403121042750236745626332350949639837457439491808177558045484557963105919369009467216590660713605750488969041550307901002191798442768332222035685305584339401513878514267375495531939190576094439815538026451145572524881041094149711099219856609835874435926753345452112955375534762967480608143721349978645471703832611314878990903302739818178506723750264278331492189446732291637263697703630228602968337764074785918446566938489995937884966933857537748864610566595543534954258452159218765036117284059488456890349255419180575291332287902205149142580500962381955859119178814276054282794234671137387309880062729756721846238571398682713841405196957862178435122678468016758048691326035281512999238811689422815933586583217469203370975441071274786729555352099882658935787730084001178797402509766469847967106437584511439747623282460859615237905432072450527245421269388396952998194264001229145758615355468103875180533214989713748750405304932464098527146332852740386383000301602930762572285475687194807721341078049138236755723435777814796355008275058602966409241552847999163639800541312881341797061626142976385004893034835371908089938745155280861577513619423653083198740454339445573786099527501548788174283454500834204211796836091968430854088568851537275042637766571391464411692859844597936094509223063387094964688294450118558029775981970481956224205964877932866280485577280729529132714590487982791466793844494982756244318692654698761289103244846151528124319414142546014201086829088654552015845853159110787810638463193700568950865217623175380838504308973870533505390268364754144189497612377155986049782622930876851164016964248798967316348688862761767362930365518214026090559082764839123996583179375730501081048664201147633446826958621781775501494081911709142183347734175947279554931347000189505344740599090332532031655610913540606558592284849563711412238557559422810267405371223268358062366877213730166390272670531371055275508074890937198460248888550519532322887958414363028928670539949306736328618684860978221479460603953681709296232462783065596117201441844969624498755133771641775871812838716859093875419879726643094454846803313340767007133500823784182917529687543548813452665358723619534422111476460696429426899023538415169281231519061706466390092682534752427592329451508451794094419460837637532031362171222048923500360948666103446325325595582039107634482452012644658665173521697864274689547804243290885458402937010833868483655962714566852780701104166808441154157005731701742124788259170400857912339492617312634621508806099700124442251998515538166066765105797424154569035697259972139164520116609871534044496567338825358567683849246313151093815034552412815415980371662912027811706487522066991961430493348410318532658835835131804152778597637677678852282730547040351088218645024427012330162212322512893261584613980335838462424256786880319827082025509012499649139596053679814332548136191149766245074853256683156413466489272249220029701159023096277298570544849353449699627138881151505297401635945997320122728427571193679149901084551890011046652843017279771785503967556036611521551715635913709268962161025480065289305896450984661767416261566672262092983367062686111122526666837522319231851488892579249505870780720818840896294161912459271527165458802766668868090307283134592380062943017683925039940688394773134665579093250635903900111849772328449983470053606230354850186594917026425296745441270205793586408434263313948381373203079272331943533616537171598898044800888751200184143051274158825461119254382131269956983775242857373376682147854037198082457532385232740456142899577661798609229504640165963947252169605155686681051821841845200387031964402675779095289256611963046219245039335077603790314527819060131145984604387897073008700624774903419584115624686199191591034171346373307767473144453644104883058396865166253639547583719268351145194463565111251051523414003479926559245427392942401807785502854806266665275063777512968209371880127761001445038321883940943793433191933096238625080482593277112382856109385585221045060144291209204533551332055283926186017484375353548968886763940150808178214874937215477827223216818593927309047460201201152080979975282735938825680514738996459215347354841582521652225200217995310869634595319150356173497090696870158955610722074025207085265495872312636951012684813929328482207239701296975216090010157169556642935551509739693067882371886632173481454563382522972076403859783439391820531299074452698514166273754138491610504208741143215034132930599850418888927998814775670359652325866835757644887153533419400188528995510287239869441047011354751105235128171087889258227908936715255301950516738964535497322675662267449917874929436853088366268023922318352300099225614238721730927593605729088064787635364871562512452740451176107084040649525436581876812622592390083693947341435153119918406904611365061317949549260176931834415108670610492027877534219260817677557248130722698925148508402999524256416652200887789266920234302844270072714632098181381315904301895761750971155353328704204013453108038375856187661171041551316103542500898313823937157644670724980515629167231607522433540075730821847193998180924000454900453168448659129525383856072961803025080027949391963278342123313592405256732487738885272239828662199222398662188021603172347482537774884556154568310418800684483761672999972975767627440897655491209770624889083284426242201311399439027932172463868156997204687087140138977889313564272579088373115787917962683123298289832264934096657968808236003333501599322557697300077037101229884830988790440906521610479942363192262337951682855787442576793335958466665678811926500159231334142826711581854609849290220174596259930108121056725170938077543865406089434324974635760329945336165957093917675001289160007179198098260259230289722653168651972386818440480131538059304427532859586778381005967648409795644418963584698922771870995103941311228667885325509490156640461967771732293120567589691504269847479100480611318120331932695565409216287093221393584456774010492587847640842079617075671190160407177395276019618441393728028574469869914603070643649337760749070683882328011752463107864895944131060911497491092505018549538125853579419636579847629730801598863326148942635211588418946553458699357112121857232582030183228869568879577223111939870487482619102599989064245165156852227089844471550682898933900058347559842652590251111454909739634794350841070016158962525858486718218291029548585187288318946343947973302849571264625133971121032377147640042154661273445413363736679530543145687661698232157517342632961609462900818488656563539707656697900738974657917184355006280069632577014001832360684452325867098359663344877686248664782241687922560917445389905260746379047541336095140284658733618469850204735250962294621751661353043683637847701940332140076973373065074894149643037532482154356212401663804233407429653544200680497499283533772041587804932499738043827036540299624606986797785062150613297763318988594010116021656634974494046011917996415663886283501374532269493567327778787194128401337808644881429846466874840498423962772664876177373535355664308071528485783386672419704141054268922043746338236108169871107990284491254875862473087086520813079243214229327468272806286562581002942677212835290426072200815987804040019961602799610236227556189486749348162596567326632348872382909106692382053027980003292730704969425154103382151239661719821988401419149409553631559031292324079434267079003600098828600751137788379032954855806996116989642619300452464296715903141313959121026791230772474349311009536017794467795542757892613634726383855322691215416140200802011082017074347771523529853509580263721272389371961599425425158643260608855301354088647773526182070377857658703167062558878314112603359345314885123854558555296124216304728784506259021483448052676411315086183317788211030031002576813641814708929629893637690177059271064038994832426479121327264346207714221369754983956944193611792940816329838121272944093885206474040763744757745830951470172516672836577248425297265471984901543383918043773452652381932801842657614169824751720758282837663818720649443500990761521472686619304752505511104422706706972828699668907750974714592372168011229735625971087527836970375896289337541599822900691359554420381774374063474287807606549431607582692571548596611226846152397415817144568028085935810356556869684642685795818458644888000053700484968753892614991632734499939025397158703553371676300614056816382706128912838367509823676632234701391060871490098098238614297742826919228793118073809553466234666656428153686140974558012954520312784076799369352348075400977927026191781873019692948299660060375550296771294316036034516235329169943332108020383055980351659314135768676829043018148594183225110404526695961911010608806178216091144075820060382135327463515345593866020167283589255537486355213433291428417873404935384123670548578970133397107519091324006003086981227018665294654570711425093362603290840193691955769379589948892411251490592755610703057076059480106495473085208977163188301863993329428816515734723086585308120781406037291127318104434288841630386624991220220895514249062435203589674354340954877961310041418059080044804703004359090338296846894415385531151563172400129618908206055184137760286111348078876442309565102582679668138288104326329219334363192892475377508337504782838302558162988231381048975102380109392443489343934600908886966173542097904774086847157300584701758576891057175600581950747444777747923423447047162592844674662013936432901621148800976594604265351505853640309398081904455066606212187001295965033941515804885121152755378835467274770979555927311062318957172489864680633411490626986986358293723539549570525830564340605375384909313090332738463732367394099710436658397155819378471755776906642082570052233269991240526238951584976527121661400356679734033693545649984308691630823809702376499067367733524574646587871158137324873511288020698303549133278036138478256651562973518786897648923012856886031658312828398717638054847512892901147998946986572535225924028545065514591919963677953868566743071396968395869242798177490927711701626956714041935728941138284846262327434964458315237455813040814553821637592279732990031894544282998410417332089686208105839630343546707746033370993497236626875931402287041079807649952294090901860985832221429362901322670508755263052400289392869168416927307623527274101871117889029108772966231914137134230860597682668679794627196194636605497489459046441931654254448831680814914618504828261770827955320136154862551944092755247107172880488728693868299272964422255494087978268719919780824014513076228668641926811047368589154858748711962916836084910033445177728102711483998883234768611502057701178567076212509045889537395849764291991748662571374946653330680862844139604901631871124805870633199805975302211169725004222451846762760605056503723235073018943149897746139092404675628264250414384294129272289825302482723365172470965892043190753673160156465065402883483826964374826418857722332451170244903776897824684600047130960563910204017829619797210139407924310195374357224345615026557059283516620784849517101944391064464611515353632040784128069882980972793035482792396858458557085032065710232848172437035707421603338334716573066958131203326068410586182469152772904424504130212793139408204219271717812832020610958647068135616670246925204087816626676548740169958338558192976515307349448866686980335841456870676413771783576508366523531073400945397634768979908442252387190552143555531425676542558959187196420276864550748936144935340052529353861153403688119536106055068494632229845040518661145013843425864339550306948967369228007748830380607864724892131091828558498481606155015297720886569153939511574620933410822539744071025667897804267547951524516730259676038573625445677511233748039059507237602632374933213284989671239902680750287104228752518898630069353534818637577295700341073214626899803209978229839398151169313895353068520141586292641566104943182266765435431157720967228564512019522875413341890587699595748298513917066178477400157696039347193972311103968953649216579223292396657363646656744124810661357959137823930937957344601870561374720505258568825539981679746561554485355276171731882369352713252850462076122172956818401784898715700102636066786347761043532769682409995690435807230557191801953596712455528109123679882776141554597152360479031986041172653851343838460780343673795806299329805324775285067553327823910403948311242944403204004065161337083501769583491866115995753375709833240849583457743173832335490969881825450223087864687909593722488514681804217195595454786967511276567087182597029025985724805388631625558201386610210510440857180613340194561817518981215591381030311287495019888247960095354896367722126837893065640076686996129446348160658203247111523624645819045153574753691229520933185043492630596718437651157660225678722844242691534312042132807743840188883216100341699259371796392179468433992779692245360736010440173779607185680978270544649290039999020488247876131811811371479459719894340444362814093517697331565631667934142512201165106559211060213865690120519494191810320896562277598449529256151416236154683547439388974984378949425281471809165829363018321418618347523807384151422590967999070532024836582569150293705468304149747497651968217976831326090354641253631600624947435131381646781827148576946629563948752494452316868995864559830858354851473687553596969728155356146578439206767311561253645274258311891169800990763388742106003638728108632623438435339553271209374747458268789494563259151204359585455287234858206586582966682259787224751064451823043040804879247911275426823128470320320285048386193095923815561914302729426772153373237303222452774556479895134706560472571613105590294752298542610510856201845071566169218646392817470708483394043702517836271765926692678575547685816188417551350957672800908408716850246188763768935820183109529635988765920163340243889885881909785907089103872088971844995050429415032376231057893422358263593994118097960622263231418706195677670116153571899229071386771163903718785094879288739165558885112106597268606277112790807953724986780056327935910114636024642067228401664923067705171482868170309428045455936367975234840570078583224304418251099017574323096765265012340552406705351124759366802915046925423265592208498411662870579712614927875741451475207567870320136963763572504243561371704901308165904753689514234989241655167617274870986120263278068169361075543608248450412303355628588724267305535604646894053104807238291897914914030950638831013796378348133943694001034005618812886479435988704749834624877666542020245031989275629369597073266466886706437099779542785929536556028423558030105429858028598780340515312570953647443697466800315291610358097718039409387487574823245738222924299443371017101501696905869483585041295527895383700419751205847080479948845831079030501953239761053667926943969616465839075775734533351892772201777298689967436873502584843173153353873331413685105020062645748756678148040901200846887859524076089702668948051177459764647415088788610712082187952569494210082660217885137860871426003074983604592161676766985270837139496722350042053272208822382039421447283485291728787611567970416427638234794401701819738086275476094959881031469801676847967055497424386477152156215895534317084021794993086186687482598211849683214789504302300627791403896909983147619346221348479849897126229435467893278196902030624897185338472624377943313233204289795304808767739029970334546651918102475260385461257567653480476241092242302324223147896180970467833523206092703628172626733967306055615789860985822477074213527012211690309568410331868978306781988683927453564730010800082813764560595261568713071738064960489303255202739403585710333590759693718332412531082296720269958436253789171962130831851888989950904969800100513272303447623954277006046678852535844914960890801191102209461570220868047219423452772902563148274685392666217121363338731618084021436193802725121999240177762386093508608030530135829163151811977853428377761790284500047465739452473669783504971199574747199492532881361807206881348194378641069648290628294195496732821324124717453785707562920936361144319643322711529338622720711467831190137548656731559133946629089518645864017683198965981938472957086530839333809575797431048468862491622861225785282693320580002722692640209804750866233986365535668729701007691487697510816115721106924294216133240343318955626176278345321173279010304401601842580582608509567018918700693389518292934434620149556492098596358929088815097129730312105989945573835618929127144892329604469735249428221869700800475215070789586989303486719989978153330887772314728098134660078598863496793798472062501648519978849623974468615659858332355842481511880621856073020028437703457271910975433902193683707828237175189120255156070903194015697891045908810633541144465445631284743668942015130486917058336727315223456924093897725117614527777578681710298350516897310680076024833997835469807889012893803927698504620143925648556681681526091436775594870772643115095417564295172391805625833399385273289459245920113478882317665406848928971947689654023062534483555722919575953323952291218752306685528873546958185663646629662348045375581736594448969909420315024271660824636650877904755116999524956346822104178061500014391359312345669621329406921084565653578549104586653171850619815822530457431355960888168092929620515840742345737307732161368788355325312543287770820472918704248529566466992630187010042719218284241748859829360152187974282593712676952923574873756339617307292733443034335821481375769506925213853887432302410988398897724768559514493649470773758257631366430463091077211485339234029492151080658750391425815878081767436191572369185037363860095060513112047135555852919794152166365709694442882357030633667088932424684071469651936902709970454947763665672304320053714201585227010524776827486184971670476134610599651649021682190931343295635709272555142081884296980285975769638802680367115454315578195462607830985357726532926742780937703388699057915078117580487548058475123074147005854507809201751466979744621161256578152548121001253734897236166400667659059604091402747943824641510338002190995268499672153023106743335663238704555697886338042032364688075347308243905408549164230947464741802586813750969332245388216273870541345122379881855449385975012643938437264160556072356240711597211849538487620892042336358262156412479356243458772098207218931643930919851552195178492314304271608020987239612480494077380880719070438489166669344435674107893029198323469978684377479866106710726822061030999465975092629568469717555419895603810583647790993007848697709318842159755382261301255852554586682973142823774277257480076745453385856068570522742637921308556209894234212029948967053351501355917004603849067951727314949511270674504879023850906929608191992101897840071967767066440504661126620163094497103415606323484954633291740733093212021739415879738130288831501267556382209792230512475334123602092217138514159818921434013047731472469463502627687696802980358560928570234828576353404865769163106575288020538061861202317824204162836683845939856216079363518475474298704824296319665891210130169901639232071424140644836736866914536637942574495014053175315536551736816488878869715602805811055153018768560647047445436613502242895174579097459278874522683387397872243110621056429605742697051062448287873745533777226894745057454123125299491091094932311871673051586381179882208538783464913472236104513661956168975364401432783866828678811161105895856252732609148242467074905430967126691741331582343511886825856510363912851415095828210044810700924572863158073550746233492625910869209889460906749660509734126893442226689484989928463064943013952594087561119152527766006520739258882384143364581033650015171548435617958542159672871689039822758488803212966700434323613767479394444795191744473174428005518420214931995995892897189304492530265680499725961572578348729261672256063284189132903502253980934823192246742933716991322384546941174402932148449116767053669921538913848971737370499696436034040214409877776644751834739877748266168086473766623852996682727337382417398729887888152792798509087902312590360688128322980169622786965700405117873606009522860700755743799009045934211229014475805012141715125342075477732511613754770356525753737697312022727508509511189676346669594203827695925925649164695841296119970426424994224055200250109636754029225144185215058165494816765254632783844093936799620263646670746445104848434572570718412969934322443492777218737457003118394983071649051624689429338217796475840759523123775148580062291473808720027177341945568542124855475898069229057518697099381262373394433832110438554397344727623449649957397310299220445804812611876131385231789605417436604804310651257952898270286905748165764086068827152545200444787806223653215973139890830320855890723028495853950975714544717211468887169198012347449269996677105474061373946542318084243585509857311650544960521892813902664957108798008624913087095629269504965690487032660832657880675259173067317708856071796783154675403605995101010726047985048507560421728962070133178636781956801557130886752690084867272357786510882288479719946784668081119342389131654429023416651727237823982966658049315522762584518244453493328306184163858985203120850048293305460238845096512686535728442761285844866157719616593895549289423955701112699797628394406114104948975697681123713555270615332671935336762461522851713846304753024849601382948060592056696181945888299569648435415509419360024989999144977787216966400057919519984483954573632076065672681587687780870949153089045986895914749452814177819076216324195228487183368534013655763807678064845806675020920840952103275836187203719744217540651189172646546809363744263094020165285030657395858928200749967081863885197323184895343410097908219322219821626278456557183702360325226936334833239646157642291054986657256980152523812427464619244580338729924961130325502642498705057838713036338145691198773823763786481254192279064550663015443506164188759055471178904850965068533399025927671480007618978898918744015562990753103545562731346118116998614692889296314654949902753131581534938377465310224938199968954645373998472495587481712849094534727939336424007006539921665956470732594701776111448209242675340257268951518912991571609538435825332770794965953334849760652419455664555572736118958473139975908078238586918162331628924690516463046999989953830510551270004499762321909478554884293139908297724767955613303554084250789375675776355306253410237264461499301026841598426415057978501262388255871265985163668855926562611343640743939676101401743428587916605706596493957345278145573304257303587698329548232900106909094707092671190828653581465682009819677910984723241713411010507406918690288800260091737467915827192135398994890693876015135493786496232263173086618661651770534918991286439332420733798615140867575627957258281915288101976483478827844677962239869072684299140499874801603530403923658071553480426215135100810611810238423427295662498385124075678048404604349190217417074958497747997570843801690870405261093265828265752614680590882994044680215223437209727185585670329351544075000419270253045564521449551493284360477350984830506159835979183050463965239563111741131231568418532644322158399907253124543206114667108028354353565783971887781709633217692407067073521284165730235929721327880940874109554132451715210029435446849737383427468868926206120955946920059494854708459481843932671389907436683608373659019621043335833333019540126393960287023134707163498390397157679089700018824744855526225137531716774664355104079238773871863034868731255662019858979665119079110129108973913248316320282506457821986488114941443665832558964219553514811775948443726426767266206849741346450106904247241874357469265378868554931888903505507754558629225478187199174897170682601143080838746773972194193220198486325154509613824988426852872363715697960869121757808461707720707729837475341349247346449569329197252457469454080227388018784363989474982625714215854101630794381181343560273689992995258582670430037383790004936237349134633283946793510871203316657142813581341236090192981629293430234445954252432198100475389723092084916877887062414062053405265609624592414143999343165024451707542270209775454268405261788647519682802643470849172224352731795906750599330928181284236203303754185039736179941587101642371554214142562892117926349610741770140584670882971363419054211308620115793109336441867743976181901836257403469478696853507811204655011792932701972153722190910159468477950078328986262933725806448980133109115402795572374293895555705139223026980951643602599142506639009145848506580702115627653855657563950916580960858408683665776131381423025515623196760804965465272459924538599213271313901282584660960152133127943680601824012314937336937949772198155444955784566686177652197415361578245073049243290108622766837701366945617628123264265833312083182904378325906662573141276669001359614548423549041678659673317334663982331263599561444377420933432753510242379913979284074515940570175007745190482408297272742504627376930124231829184944338202699715289030601912273953536208782367714229980480019329308362951115691024531221989968590514732158274130883547913906793760187554306102467825309506927090097848916678452229631171180683254343994707017516451882527500023349625036094638911843437148949525428479254829744268762281554269917993787198330317505950433311259011094253813758464396980318843625064486572050969338343895185238130962635504036849904556113731305133338182273940013444582130661898280276489846577470198135672699919085231487901377214834640635304652168330204852914978845466781322166232437315634129696848713447896241922414664445483599933731345372096616952931910575849300550376692188085974805437119150894222579967991964456643060508845214565152603743815123779110708911383693076528516007868098728863804121182953311612397166311963941076902213816013625493453360097358115946866644721312302527531112586887784836893803251851692809845736809747823364943598150846968424043937243493447436925715380096939340733705801012540565233093947413765158464195808295406683617519679790503154505930841068756479903934064549325665795340525107139947302723305838246772698030567168395147155418427113003903753441328279811136710567823795267883843941482064008858350757259879365901952990804351212049555355183339450148542544158498213284672976817653161085974666115792752424936304308537672357003915234415918948640683655797664860318781323615661676283153902109123887659130431480364044237440038478179352858325203014474493751499598998161826418320050960973891402673984250499694661957452287124810926137610651057451617533754586242504128522206002623291278958104361330998270965307497260329214942678787516686707079428245569257366142537553999459216365418728386157830856896603578554419543223892314805433315672944885968486833571595255592045029545607467823011261954386955218786681896316318398471541977354916812172034215990432519398407236234561139193270346225009845837406392381058038299714391612356593685997342501886525928109822720563826087208682015108815264344338745673632521993193727861679611063286432131139604752203442459243557017839110260666694553548455050651208232369616708414289961513200846763033345555094229749715058940871653477980210596671579804755146841212452653062357104178498387374239797883615194555121911770873013418914200556154503828552221582059662510947120257847323283028841957188962570921741511467186954416503333548996567023932845933556036024487284898485335502953720143126863108765174290400392707392395951149569985750815630314139488643351274186111980812030472145823379222542939672904421409857512977888510195333057418920457599464106371230128906156062179444965169780640705746030358417433545417097641005253878481545013884133433759154670070279651227948092178205863089921433694471997539498089974345142070022322612885316089893491343059618451551741289153785944721670445869138962522314568851064674220602678001031772162074853525312641799936363849493492152705191272179709534477449430423428913722960922667385707225513227381906589136351122099667046160644018124086890464722463089383525437742216369788395931138152342280595447393370070223492076238068188258785282305715281597174979519391535447166312046899809816334560018518417817255694591194904965251802047681376782592919785919778737186822157270275090870240811502233829477499979012488675070957751074283811417130394975662728180808484735558373508551160759953693659236601262236512900379911883003745680929975644009956410027185750469540579445731634693614979284760294879731299662031582774375340927768986728353004386789144616999662909145257872122136812418083282876154889833688896900759647429902348234809761975686925863728267368608447179281011983739601069260096115511745053185467143515995272907811467304666810366794594088053055563937176884380577765484873154575420069699162198223551502502226260488122661664511890077732453438738242881390884999769049368419212967642416795905356136430701596839023284831702427521988527018677576277397178598995811798461639266992925413242216970608059310246869476467427703872407672315305818952862447885465903394182306590406198622117293078583066662922782052338985247989764709471286050584955752740129306412521395862687574761010585414660735655368153223297243434581982840234434528553460204160512249855248738570862331330745777312905679798506875855034063034696283071844829793984075020948822118697613020627478549638563075680300600445477694445752983687230068849759558713640774229298639050857995074918695859559275408987575817841119430401982312907702367578599245961777399257803212019325181371404375088655561631246513268740008994239370978585905464945138936833040524333676764191263145867415712461951585976303215144586377840442086302608150132159002618829110045984051309954102641354396635288415221683235409348135663789735612794265782342536007230708702931952793185829602828480163796296122498617885000660680489965989576310323945696027940609066919659297649192271081488522249353790785169852401325906219768847868537473964958856109560788049731104632175121838746110677108990624381488030521144627823145314718675852933410893484607095771206373774442067250322821612920150599088308990740373508439616165080233430151607063826058188050984748839301954139242038794058669209850514247388327839607071714918552788142011947909441310288895028605901532156700278007120562731830213821730258828296058909711029918495194853200159224049850519024200163533039375165987725153623066145615142233455302312555597141735318560383217250827202406692177064861867727773280888711870380990268203581474031675802886628918772967618852825824242499276346866480568127229524251671922894500182840294283155446467358728833841811151276787219802016338193108442152199156886352334296881742380340392541884561092719932685310908972871961096462000515052366538480998217340908461349984314711656959715931310438922561157208487950319959968144603912505639863268113279284003654946465078883676668589589173806309235025671774496730808878194731198488055412088679140376407297005548318812890986541911398139222896220409125733192361387688310784675936609173685174623335470162323156918153475185518557195204068053042101230904889218098446061701106256561578207394637373989395034589719000910146931982906022284302974634807526466614409179713482291025843969699110828514689686771613838539371723934946806063056603777520056945355276158346292051677574947926973096963969463034470803035063187952422959060043553465385939902518540816110643809039876407050288689854667514415436944847669393837391885203854668399251105728476852494160800772826171051358405304223802345456114573345056131267919798691932022095884481240942648397518363400878533002971796654888469940560915049876358834218635277436266361779681433992265315518978977653547539054083470112033042125483417301971273742348466551330422131104369354872380538094199742909879420842023023030264790622724046920541548446756462242108653474812747309809507701785580184142998770195172984433370345609427718470079369809320998886597712433632318247661083981578475288509024184905187847137840680602920568672696450852696680468481697267620549473073394498759856950912713580894927025810589826929626399633993588881129036333393351373248109250737288172429682138336329471580360694584297891067655389151507238826186006858239813482196487311539293324913027789600143589614087139206213188148929941448981899356283836025899853204063317751950453174489087612714821117289340022285631865640150862252092258206073794787098078150744213502400761962019826565761609962090827410420769598126063676652785144347008345494477560609151065180464241712599047730947016905077802970537740096759476008043345726022478051239734492054443791666683647291324385799297166485518043196001793820364117202783558181848803668960095043009261699740341794694388344126608683302002027944831909401440592346670258934976858318219602034632788939259344669676084583774026126347719168630784259067405409321420145217199167027320771535330412148524094509058983847303027578711877503357987532567262705376216655465232972153036704289933787919020027310553655187832130370996872244860131804606203884795488241665564872228098430303605627625675464908822749738536249253904300401307275367678828493872777990478574174175421579949613511132204698703765952519394470427276959012601993559288680622231165022681833117259766917831976539767064667147217954908781454759399045027922437351521089573565712796282216363735620737465639010569932969688276942877771144783146737338803837126924393254538809862203173476500482621638465795110505245681135058731325670256576924238508544640434763761264228664041244767989972190625727864310552884023371534903479845727820874830902902622935844274491165900192932332827256383345261344276742509990682241237016141460566762091364352853489425764743169037781873154610512124615176425223518465814405351256273543322987625301842517799218915071472893059011951448118555318820252381196948247105868343874309089622481629129979297585709468960369675157751407683846736902345381798017760371272173638364151269891957692706933473960459570755542396198364822572043946495216355533563444725891113832289921330304778514572573953679297927743142116309066917753150888485010060987261968427996047108152096673339371951373521715502804026829770725670673499893458204108434120171689655264533898564874489606266041721848166369524454419012767611360514176086353454585531588466295730557242270449731709322840565078544101088823300144165496447854691792615082215338414592085429898763614589930905113779895392023408107009856963146462622863536500548530457873090952228345393021093215588712612311024383712560964917845533454996517844017074644247145412026975989518813540481167444674298916462224395624969201070607647084272414900195402243229255089888939224518849693149867933429760119360514248332686498938844515143431322862592388033421767359121970984531279043353590021706145077092695486302216565198236093311467837722165697057174151938123703652852447554620054897507530942632335186747444272637294248812806860514056242786949836656708151049401613579195595553325807540227927720260334407077732183446266885789204777241020082303866855433517240950819488123489812212712955937578092255052423663621385896641612991161667145608664797668982602257040571508953236715634810689935723402129728837233282623290665840553539740265447856694276223326807800084212911732237456705212740112245009371373085086596252193777582518841709317407428851502387920793926689287293622059664497344695387048302651042772634495305125743112531254709147479698229020241303000309002088956748960916824365120192985138669872724431450780499009190364722151790359638931052771579522804509294387111850167539464108403182324081140059519907626176437981013504779055719780613675655742877451439033112476683456253472326931238551890011785254364387046659554084799012726997933146803763775094724022303458408595821119819476343365965904060340453338182454308532209325485185009643057291554384208380088094215763443933300178396942604212349385177157897767192968321215722017020370288322322209654753212946271836539151821667112838305586654052004804676276945989864145533844509190626282403731141701932525939207969909915022548750534783682462790501499816792659526299689219209169689982529414029905837658422285395125548628590234885429814839428797590350907459205004220685795771763691183050346051249724999592295852397184203678612595377058217236121591926441202655415600509724631121647843280077564006811080626431175011476140159272814072912942810638107428684777319616095277213111074871639113874286201069621907619276224419244227215951868536367154708864226474872406100886917798313148058336588724295689906497631940606971285317843735666948081888495539225898366593339924534233978075869065934942676397921917898756506564117007212325060744271614462669348214309877876844894079003080862207030498869622917129979501566691367352322047965062032393380679936303329371478180568119826825905834738731934661216076927104677313582886509174850376506744065858458596714830522311401026826241510934624664116379539163214470224356367427823036983368952007249490395580268662886506784004926338774467778183067482894255416829038571396533621389091247941924038672995446652678660965035903028403714254777709553641605473675544774418459317412600234767554157733319282292672516677560641509196451023226202128894763569058187452354375394647830738271159536646124863474700854058788835132210679874027967516854749131156771884235028728885440254990140334226336745959653911793647523197498129726599212479534788689666397435136578923017178702733679543014599376132815677960560963446490149049144552041626136903459953486870592472463535212705608538998877910378631529784798388903109044949048172792777627251040666589254523869006807292359755339326408970389819170714258455194284058933231115608353764738343244099560717711470786950450006741107771806353730382981189578324656075544825951581027188953742611684152128110416457535174381889848817279307768629523320331775343319228871843167478794911354307902178443858127291185633288641488900781430183681100377258091994047437808580393558763814107303600854292206836819588124632258854187609835508930485521380803534959230169353277478084768667732414585399585416741529862791083463797930642006161538627439307067932939106234844779776387466306127587364091624323747895946979276021392600299684136643476494951741988058081221161556700507449658757006482300491433680356500907450020444998737095555326229174508813722012755109507826266595816061678146073297165187721365763786103286716106778651240149230651409594594835149497881283837050277024861910861388949874879907031952100812005307759317436212601931008825628638321626262617140279278208283241714966962640250299470343440577545876481563064913011721220611735817499214696449699905009480845095330548963697120030088414047968082637936747517756372230297245359718563625261323352020891071441392760312841797143010695208155038133814261251883742547565612933108493833634613880320236898980720514693835843233841219526715151676130903105245691991469661047309997382970762952134227422744060266300289383672065050835671117516538515541131794948666283655479015995622753837911288520168692316351952296551244639810821883646221477019390036623823786619533344499891193481151500921777825670313432823428667338307321800040018432445025518365141451780867214207916575974723231776065133437270811710452106694371644224740966503081913868272048794123501727723873560916274041695206289877309430513626868493294966341628923667754540868027908626297405186229074185522105511734822393183391171377908900259671400716464891891624495579157684508536014489725780049494452469974543264672715029511391465266669116346329388667362474295487082368762968515441078442348453604131615935357084106805094763947496188684161502150692668212409235884549679927428647292765841186395294430850563041792146929058260555057451164136206556809626994400735101672408547960536091031261164126992107019734008245972242724372648586449279037223297470252998463491814857610891848584233051874368434430856880920468504233749105308336940600121323337781852685807074887019585960906510306020137069537913379196791323438773253915146272966196819638232584518416384586419939797914049734416062610668458406013864155307971896549800540371345192031332858097456870988718049731707676948894184901519075550148067934559687825407608860319184441912254762783602817391854674629375396144095528769419555175944045483275227325555844598018469168442310622011927218310908167290230015389265702235858554827948592684489623067950328787518904967785650498210015733456438730756212213881389993852803480036259921726636080789560627300382233569355641632539710279082936224864115450672559420381941265452535872270279669815087822791395801336226825358636245211730546706740083133356407938079498914056900626467899222524277885930885271535204739929447258278806730712784880552586121396615725872267102044877649372410934695100853852965657049853322162068255646625669077140974694143191125554196733978589341723326377322842758900591541953770136398336038965850424734138754266889459814161405468932454138973605979845301500267866332192864083390725819489489733746716622880240703889534324014541682021726146849205225907873571565869336569359918830211198304513313759562045341797686358628102335324769390214214727255836820994835149790437756265497442662353001264280703598318592759144817779655491470916042548969381530576110145594659453115054978149149793696468741590394271253457855794441939756387946882428730877404447063887515388398928530818664476546798680486742563748253777334404267147793375919075487752323681574067391476847389009993584893065487175255636762668837948365887295137815746729961525797488131923499168850744484825830252817023428216257127558090214298372295262419367916913227675303521619823493007346135166652858357155407350357887543555717650907776261283217637562442410401856854954759593370998463259359206144161490823931406405100441037175266810818020287924692738652016665670276239373715891344565406015976123743427594560096532312535838179664035154540342648835059823723335517516863003782279601538251845833888504395400346775450576936198366910212351270543686551573634795011008782017339702254472029508611543745427662579052496425238852058237729543002853302151893375589922969181870945670662618791138622599191331773095844666897393739204634623443301483283802892684789182996336532303227418276988918475429783441894287230997379748219083524961953020182667330843743850570126868380538920370469115327322495624379968986482220148385206327357749375143500716395324438576640906804960771883583734164603516910050661362697540761675282959817880107438909785271220885280282028833892690326310731796337915446825920640335825962470155755059209615436470474033677779127777233521147159638691263688490251911501793213359108583315024983718554434578228548836166530292799829068852483861509706709341977157558426594062216132407411142553392572595593195808177766314749852118112143011717296008215659012194921051062244232316653335319576830334527515739927424594882392379884739721629653812741267649962228777833542365397662250339119294520197315562178658730101726924307639011040387699877932826375760767532607297859740498915236742795972926233258390948497598099347271112448472034453334524446343287915064023088041509837293440881577556347273237675125817719528922439585632393294743819205115878256702433389845828585661889128513467154810070940663404132659474725300476876788398117225596852718716078980873715353253829308651859766959878446766201432161407844582555488360847514714994283608312867356033155024817533840009202641715892829998748225656665168712547219580682664632419346316445609652875878323729199913786040397797682397667303180749342009850963114309521062144132140862650178735943683134443508681704743763388056561102137870452079710323050279973380854409809443601392218638559418328600890567522208780316953399040766463765737414801836666033854052175125930714381208375541652704437031272546579532428610189854551033985971649912520335277418439788947384059329608530979927487606511769631656989272626214429428425481284618724568667652619686215946151028423578383633203548175101574156220221179854356936661351964752284042109046983656437163033839554457782994022982994935581754433423394164093028865888609016811903127856907402862765435435104417713741494751209598481861269580722090066350634516703491631855161454535281444076791007998192917354314990658241396194990447822942153691315849504859812639797626709435832785781117441340448890300212281142778009670897355181762706550271694384204775098664658681168463984017999612087262887067637272194070899462355201673505260402478438940467469391379666776175514149482470939813115494902052964241144153035003251919015036355487948041586531368992496722501744955796807709410993210543626733128443781379548300268605434563363385542823158368803076570469069084507970876961225864924317053069879959281744074744067840686444276047521773492800229519872544096331761672060938029964247486684462677389594271356692228617904519851842490504182177177374174910996712877699200980323038842900245025501483853788508666674408637583752229050219223961954518973142241171119626669969861900172385075942790120638589216779755250643270621467455230147292501877838784852332713976552750781224940629788977014633045594827169817865426879290228568467432678909601616498415187932552336074110832477530686559202789740463508629737751069363037571777710901792229192713527156571947132399716000712402817471276300720684892772420970145119592148266557133763687143900009236177283541292662914608477859735825439152432877253238833429283147594149844693311261149103717997105289768071018801514528422083377346400084077726052257212239635547820903968692834422777542626659111057731523464680067267152722811480217415117362814603033423041225036795244514142334483622823782411139846271676646758504135727142407716216410137395143574617597885899839164609113655175274638108530826772014568702759710641002524779593451839711396845031091260272489353195838676669014990667144771205085920395499029105696300257306886785509748749826868395820180482208938696752292875712305939114571405660201323305445819480664099667048733856313147700035322716982443421999639309394140232885638380788410715821275474380596878266080356588729362989062695887081001027000613970426932321345833528231866522163621895990357696411844747430253016727372535873511517342478881364210796150850484256539566690330369772025558928540982074674861785941366730934271843423090445452904722831764101536499230123427445620842821553425387307251967298331262054006763917821743569979332523095322457626307865715843449907240795108686787723650441081225015573256241614019048166874083276599268206881640115779115982915337236678049120519375568977043635775750365530230396509239459377217587205970332101800952904353304059256851957265046425934647045137027808167727482842004361163069140829556467610798470891571366889171958667677536272395826518363983172016373845696393583568285086374293733646804274176211362923916121713728133983776393036413072713747719742135256963048117851673267374675828762031121619527760142320228759428870602755380330712176498358794344312421762814205812728831452865995218464764533414118245249871991886038309823136106177260845721783847347801547872344701606168635723977028081895782747728096975929775420434714879404107293963838806241718902463650480637432524842393551214431962879530484805608668681071149598478597079983954898798974073449080868551511940845627038309917221320622108145270462219212274617787650128875454913701711644082191387675095324159976389286818899278552467512363339216991814375441249651317964826564648375158099939999114681847065299341615283542406708758284300725110210751006445029030881276248422360824864201677035030661437077050715126851021877284420874909037987010501113708573382647448245716808001809073214555899491999708137140730917463565175137173658100514619624427741777638703417823984918469957580235786074498405755717552611894955540231371347331632168909260652248629667207833420259648220517605960257142843348474253478354914620594136160409194095069682203302783201920463090053120976948138356942044987367936844076801049892194324864018663140661035470417639856731289471210115841129459392381954312007932781569906947780236997301482443391648380503184895299715452399523778496884306201989503080753902422515439628099811264943472256480710027451983285752794648141337889740101052653109209995707424843784452516830936191345534615266112278448671669975975020676535895835419311667930369145092023173911273583381137020143522749621181086452126412185115664891419877290831773168619639547245093203881695677713828315104961390513525553132048422529910677460615935627111823077346401553343658209983255713229418348639545012271129338164517330218717244814485379061239629363669539204849599944612622869568193924122573323360524861621123535037507196830495209236239512667551526852935206581588286321098230518274979046379974394450163508904063452671090050327954327797265768656354519380159583579790034057759410454293182379191716164062342380718157472856314536197277314126240437089150200632600079890638070226578087589774402036526016952122147686282931064840286341572548943839329832320410288484463982989162579753553820652163569731722074307181640273510315700595946586613327209345244488668894130299712412054111239427585767722916268639826242764111681435405897794061659741730565432987800816520872385383159417541840676995739094489393166485533847732120694073303803886027231346137020828493130041021378409852706433379098783649261645387613731338559271252197486423056527168309187249521648459842311162392169545786727173035480278630829052976264200599119269290697666860450549201841608997093912668865263810233188403508276166646817799854825267829444636486322575674534570234979430322838118527747194291529692943542907369299915859673803825310697561842607988921366635646599294238574133204066413821259306765408460262528218698505515720760613499406797375960554468558922742240931136339057374378010132572283687044911517285232815059094578016031368960082457469433566529891092192912291500431831197872544636045915385603523526744108022300370007340694613690232240112636117826553280609308924702608580625891446463146111097732200564084246812636742556186737746229466354990070650751051147773842056373886497463519560035780583991923702738894700924793846544033140618635637813495451333424935896647724480161329751590560383467176252064833135946233950248255858407502853583136153955631651335880891293244848054823046032762179848975921016590061353606788520975563234528619508736116776641588684246301149915998510200323802728006590981185785582843744671810693433443698270831962758974328856413780232257149417292695743542063196093524500426641331863297149177449177904504173066825156386714503415426762962434999906079334679487827508027515125501646956883067273260459138614953637582058342583233719193710637000651065845156260522519250835715907379172019117166011578958238262370299699330484940709928154107551421322776838675199916773870935125188406789800123675480774134431074136342236340348234412419651584834588294653258975829211511455108729435785834310342927722764169417127876325462559603552671756397810709949303464518508252940524320186950232828898406424155203762721783283102144372747619368017248549414316359754092525004542396295551138061328646824690701102569383581314867228222647230887978643398197625691053805126866951311281172920514848777130228671962628003116934713046244748413732375702082706903879018225262065454083092969228782236052949482624640783451830211194238960262633464174975631243776075680873796526737098904419751124899085557255863112153734312731758156546537707611789049676231699386247863761089294970589741111059842488391530117496260584390847009940862530518937040721443417528540284919796807025806180783451110266000276063071866859118146416442042832724501742899292167373000980379553627772500420755046624723125982289494435903937273118363933373395027992809755022986499727730795811962659285301789209051098127849375740919144218047114106543373744550663417635296815387290334755531695259183718590949448392586087374758939776337988139459790970243606622651477490750776124025122065463512667762386926769200624948946491730422593371891605141220877732447997799610387986080578366460042632444993758406287463197792955403065927978743755463395788121798025501883014401708611173078273832889014695034402692202034063394617553058564136111543055670016261141135985532697608181929160193184300666774832409566281990324699975396606299863760643859005587504613382893788100582175745367247683408237654537795717914036431806734071762578834425153602855613441815100293032184753514078663582413156088079812603478617778092868684188023090294231922326223244164526224332678113696130313307944876415692864300754128508432921603601252038608776849840170442616775000588275763029137765875836923609110507417002796347258899366069530016439505584985590111188840675767482000211474444735693693191056330483917242865726802718649090367033516712712612307548054411407316490827122399372355520140387681691987275788986558734355342497373591933538914839413353916889016613749731676840112480847437762708318671795993233277741576780893547138113519896084472106108752132023833876644864821440506842663643383399749520028278509516096241842477969892760718303354684521800985609000086752635482770416117632690543171848356835194019442515777704557780526935338107326273907784782592706008581790392904943361810386893407408264198012125912738665417772761699376893987408373754602606766215705121909088972002642009478367798010184929621111181509199033074536690966989965219596062149803106725086394100953818563885794375384320204649661427621833944853797486118617648908140665452317787798010318268260923204259846507596490030927467220534794799923584113199215340546343296775506445343414478401874681580463808572020786156697433076717409204268758230509782775576877063999699675494264903933394726034432673416916033109631869879899430438362566127652259663216641945196480269367329200235443602606196488483310738179801042484894827076902917194477543615320959742274233135448508347526268330944236089753956999818305431254453452504672373731698372422191060575558130186849516087770418764236440482668041022247346141957305935443157857274103433676524250464081566676505133626651537904256233133479172876580893446551835948534689032636812235039893441770346367942719083256771858984271812444125690440454611607357388298619965663458879360668493391516466753886834427098429012555620707475962205533717738873848870431032741249280788402040166595071187884555968314006824209248036530102476054715751379687716433680180411995245255655069433119119144273466593507357199783417207032936131728833399082554701097491714740068554621668181473704715091483477554740867337067030936613161307085991884048166511600662089933277683209782502399969543190994734478267937988988831990784287369526901259591580979696877377342219565161874102215997202871841247341888308440620014145190828437765465168488881123927434947820913059531591842905230220400249403199092497452317330398674697763298114899432345047532647934555461255182605911049160233494464164914588603414643601853236153791229196441498023347689364848754024678575142814249360821415824544019491955348487303337025390613507551125949898922253454647983919911326475612831101628089621450363081662588911510978359269188245915754159044554701557051700387436552842049391240682280129759981327311740541556543554040083070618625156447831735922943714824209819644319922657130915856289134393583261559616724703767004937721868875658448365860149809625681856420752984233797459112110909751785999007515183926119460988582799724620469042813871574627754714146688182053274418192587253570950813822021299486277005209260943610144606750483788612786198972094175563655785514987169323900901888205248322596095271785147140276549776434746725184683686916986554477433302736079998303862704036588801118222337250416968837555637496779746012581531774408117986042894708837822013539236825436195576931581404276474139661538741049883190397167232600661715432072398602864443632558703775341180881558073959866844104590979887843906125460942819774586273240828742409962310306358987738676814547430149175892223805387021657003093526361157960480948745455817373074096336961322677190592705682268207332228717186364000639883737730888251112636435563037554604578443843906672425588974805882356521941682309271070051195630263383847498675575959744474450180179258136985245191640393639653899789960714151642168330660747639894204295403679728395480341093976032776160576733487638218051101404039554781848061723920423650567834272574937956706155361466911469348657862785080419990880176381162402530228651377850550837131639024833834450013914416163770616994399858202853024109748340778625812148035396072304186732584133590657608630290341953953127004738358556595492189078546454887274804835554306004589135013347750996978170973183592736431095751581178311211684948264261743625841973386914533825822922308627885868219357604400426801985658176405542204261036399390038329804255000509277777242494525517011040344918190764861719700691345476398425280789730710586367810962817045797411500726743244185877713014742102307180576694335498721030281140275504334964887873229457451833057214536889391264267358413764632495442086441222798142748086082083289610512627853774385983997862814095575976224426367776504026647277147099479194534985086982965616807158690634104727689788150029725507181445654046411065407402493168642560338583119829496489397747283888157709772368217781945935845744910297388581537155927739276562224559017060319924857338395741394522267908896390382366473786086345580421650243905342422802337616020143329653559564308179726256191645105698823359780263391343920677507433641197442292005042324646972875444508778199122051182047650878843236917441761727751362783447503134678914873175482226710795626429368942671266839638844301126184207473878485453237285543075091188564490224386239949069384615962417763480621277453684106914792755439977609780393844673033959208834185941207262991328199589390550814994207488302881360178260237894566545066580672402999384098981752367461664343076439124233440858891950814395385011429731621347525423981863446936005923114288140025040508749779878953535876596022869893666384839988445578271574699534226223831847478078750016284752593333270478542465857836845489817404642289162392377552793164553616243345376834823712924445596108094432820612670370347551813872604835069819007976966277671070506600299122227179298099842412561036784888778764596664738309342696113292617271190562117361801172756860093898011975429183717097331331737933826860065716201499801966589891326996898740906632557803863716766648403555831119714568966142767283454274924278505864429048739144770982167454898138788665558121265989247756076307316201001522388228796773931036277876420830570930626586056675430833079703114798607401890841354385744546187708612963571255793458270660870986496843788495544059121013818769558298135896765880207658275748859269295660856102287517600940094645872380398318252253743576596671179904743651591767833639917820245142094624944235083773159085154448392281086719733870574770674203257992236646817312315050077000699127745235463210471238964479683705016890428279300579130866378446062227496002486803591742866675419958142820889268931643714769710940107456567305430301331004086339048574028917366566197731002711019636959800083539418318838166038155505505291695895097631512196951473286982009938234122632711802821465310488591563786683527765857019318071723901418648280938227278943427281612889601853563207612392276841270827235378151698782137437699678421426974960552683791122802972778234146683896326308204547528551293545976658119071031863890322043775784188694753790263470212806164848324585644795083952247956973547977179267772178587035256782917912841176589018594050508805011688809265870323953334960636621835620749169951716940263508746314470824055391763687943414676400853672221779603709752790585729130516105674988341340544172871158704010487055318362514423986435039891753764319348931346710522870716562168615286434759861956463247875414297571301450386573704601534608977471639224923835263600881757438537109775821101720767302914266939004460151583209104810542591172432111015052025519766893598547254678163038608560442239979486069870929014118046048700871119917748643074715334404371913420002040447547672589982545476480418221251808254099961688174339960058287322097431751551499986555728430581678332113368880881277887067464027410993100629670355981036446106279558931374092207101399711875012820403637506553930018894560862416761926877977984018179739645808807269494831060943625315294676087299497605941639470119043854322473290117848137850657534739287059595404626033841468422642188599653820262921131558640149307748071768540541025120105482608844737296741623726994434396496206441080944832270807852112632725884593998605194526424423513118907237757563588810139528589122599970127151294754750957147419613676483094939798581998338125350239053746182388400124944587220970467708692390365388700388841790145361158644393240460182308349105024068524681796114575551401679655595597998377599698926562472305702755006186755994955116904730350600948268978529542460575937531072193329062497955043311115278791242897259541027754445143408182889088921600213908688106965379096579383780452109236394919685451500389056838980286219970345182084750684228862406486932605956152529149381347068078859012464360675675936978098763196533927767655397649131638380316359846011931060979023743064913851807654222601447434474710780245251446478357197305843987941334540170792669908949988001207440901046263453049067218453542236634305708556582759360357742700304323755942143833342963343289589567602981185566900693777809963441577549495333371157367657607947827052591987812063425100694369766031426510172883210232439332693385193957752985884567074012759064862470409937590686975207556447037122843596620295586770290318405044919184199356925625004123002505331149254632682605492021185241747503251405815869681615685341161965295593009478460035895873272763220068239901833186350558762262198516706689882798890088200833982823078347089935397364675099597857470461018478641630603750479415446002635875244372391112638242508062449117577352359465789812268789233645419776042437888484989920087843647826069138531995276940528883084067649210741796917614564817277733144417048741256825802702047802409853781688567424466683874288667841513256050148457383098474876903901102197695678300152698396749786703803563111164838860792504936111923530211955822146145771673779771480948340040174244147475350731539172318066786772466087919237679880759969050130713638487104804320589114219411626445745240116382072275335760383559307437574046967018878469393461554713395612516279089662177649128891568732970712458247882499551773128590338999982513317162281190405704720094535010880631988251636752459876691550574050628777642956311005232003015981421857683437040980569497043575793386441797544538041805843718379987189777313155326941129307091044822650093513221486442326758163785269180988708798770991607070321681462401025798268238971350432481232740320453007205389764366070231390751170547644089382212864054551626502418419902230800309943348802831355615865047899719881489518078636684987379993900924816207615983869184316775760611441688026524514090881733072589851768985466094453279161230223915047159717511230425922349070334378728524266935921171371266687378458006949923264528716325320970715618462237031905525912668229960226677415025003504997811298913804901410188591642517592262715792843599879295707408307030494438373111652469166687885835520060748994175769128794874238288936935070344516434902549318782911714288124231362707310792088952146128628341345525728758086023788329094107039064647223998054931535597827233650243899294074009604998723272571868263975536387018170324149696930718715257269318959180980223336377959432753384577702253110030048468226069733703548145619775660433653024471936299250200793125090355637689257525763078390215781459897395748823457390526692324934409671507278097791670447183211157362740445260682965880597363676901036345974766101732809740389071524669277888026817481723882373981089558817420013010460959563568650690140161582184811822874871195127379348583690954845790511226996176451854287512209787965125410947952946167975467609439349523980376696750160063424167490843092220060620917068528639775765303463905360623082922625066637236989275251144008758728103880620972491769068763378926825737075935863362192165300725029759537717410411351531905834896971408197172855509812445047211199107181482942899634587264252852860278503845759118246287389078563999795779326316048076585418848676093520965059385829288807933067626401685201720892551197742730770020369166292510733647582829110048079149158458831637839934937440375032254401021756012953766269915528583524429061162948696375100541782918488761737429176938850989975259498126555378823867842945121484851189262529012373496906039125583781043158917421799938174334943160155017561751076079486280361290966219670832905793217071579053470880745146163112619053638988017713608615474247829667083903360153881403746503405075652294266949114856977026347568009556051794307143918685451409459914538597382433538797271647976447050442296220411518690806795296381139725741139751168410371434636504757975441719155872106545815638478006405312067447015648567067015202417488724725736046753445833463280892926992552896143555943809983626260272084022997329919571369981438082729607991758608798999576132563387105571239943120786734611773260097187858201380939702070692259174951389059480104008136397393543083280587730769506760511782362964457706740084323286874793465787552848412170546610495393649906260382222104821721085347473128155136472763645556646479302046117666043576280823872222668080697756761497780403081061956633500448036179077757607122151159391564137625137735028400256406359359722388139851412975191306935461067543979050517835664328678834635430265260229621783089542060792410282753218810666651689167861052008313392786041454294611886028855067944089467617221582998481233887587010078927822992698954652200057620217233063357310848536082059666652604348303856548076459858507770587906398213447778763792910109134054064237500205854770557747433957522765818042279988676079660264073778030050367477517642435033576103459516001989608905180384981491505873744244274860719715586665010259287721691817705670242007185370228756021527558053740790552568636072153074653879139502053195527694321439888836113907593436995563279486808542210867197075488263034289936557806206702772421305774378280181477772444345875204494071475712531721618806717317329275365292697440541597159587019978263453247084698053091068171778702005609360288468747630102536084706819058627164574417311279631145182597183005490629025162033579190848862796311312585435193445095670377905806602536715042944174090618000929095564204806718103512020503904899233939782507896373955041199184005038185815678243381278556287358035283301354719974344058131922365783179312645285321321026346984049676300164082768183831844377523554447407537077526961409793059413296246807218644563657698129677018860771982385662079493728156514848556354573107271730378776774409217812200699188317468110661239903673030441274833473259091055328007983672591897537225786170543256551730314748270675441324418897694959774453954908238904784814676214864345761220242041200117590539969328223191311661541167496539657811959165351331752510143394540572577800533401552122464037984633725806319578945977720981073685408522714426649394219116350870410806108550816782286612680017426954981909547227392017574051054881664168873371639883163619078856587674200155515009817312145551541410831080344649427253483248802995434081371194686298810203015832417845060913592168080394526820404723423138260626649059994267822708403166779069901305118280912482075547694723511076815669071687890289414991443341240394548939778082395724044869819904666369640219902602955221978651130167776277768144244996273092156161758272106614944002651400006455134840267972713755648187771243375094409577002874242330042988195252666132780885789411603585590871143149186561969409434481960954550570555275487015574082550844421441602725463217485911361312923427019371923830599889904955586237884809966938729617870913142496432374647450578907852534072489826693897200502544096330103323341974310371277020914268025988880497939871054370674977626909314734789185196547107937583248739243499052302694663370335652270347909210830496565364315116587613202015215554250347120274526919847119961720813054357096203068469162644402348887522559505552017356189972663671947787856525144104979515057685155140911896346722428515383411858522413193601348728193442901502093374972130582833216732532799285635062205839402952333459232490888612549278700704153710170137050727177376437427688965305743625498849267189407619138303384723374536802828487395423850780187198231846854906124351034952801102641019937399919117504016339560155175811130615805095659019387596724169461863708380238980329652030926753223858314327871186224047554568737044946195300138537668133107539830686736939150381364388555069802556180196234977856696171053998887968727487870352713087395752011580110117293068410632213889698128455578053610194054240831014967695725523351385004427450406559710527457348873312268704086793327436143209952983353880625479960935190642001331652854181128522135763363224520361748128062542077493013114207674627465724844131360601118788162487926514330489257857994955781738340107341020032703996057209523490988664129690599119137966362468508487746494114019228263837663874956101143061603460743949601325806426202381220015618716262324113989409809988468835908126258932473340241264843825719424296809074276407829079789102362315731330708196310079699155215617427402843384603477388304733408429841295399691943252737192035583094278292578686650922209925611299763027565912012293559728390788909437767682237018038646600391545652011474098123027272791873747296106029773853291994595724917920319659540864800106056328293887362120360925193189660762559664938221142999432901644774514974265770030322637229067137651280943545489771452751861102943781451895386263940745487836265538292135771796943500607112924110247598758775759323509488841093819799708061578973222298734297533108957838821902773092221433847300568978605706519332671151169425654478493732898603943868970061485038035208118176501890367274567998703461763912126566464888288025460097323874578714531929692845214174665252700085918982235870674063072212131012423042614579694179521651980191781403628429447396336209263041856018515500257462698542289424470785009142108396486974063365844818644981283005361255872110858775094084986177056220527941115988384278531246756524699329309996868442656784561710412834395304201040680881344019316747311804001439552465936829953916432549572484649026005240789972350585606501311557727660433331551741211031937236554698422946240558522342506073258365915531997228963990991875059928974012277510233618026030228656641987770049335185308117384255615623816323018358203993421827808164332967382722652407639513663417868496816170333867450774158071561614843903096403300028570980294440013672609127505354778113754682757237947683104435895203989261450613891910525368186273709982855461679042293211503965421350370781424215480376633572970973403358719270729895236474663310926152582172644140258283289912388532468417266668771491304516997418289968262698729980749927979702140410838242803997135936298854483719888864648697639113513822336829361261057473142117451607105337713301686564648134624761345832036180925508521467696824081017852678086630033152246595365107671236139942812778330332097509525630600798752347992564206807901401509277529155484403347202940313959734894285456611176427193210527040977461731791555371855923858339996766882540234058667601849962314444210158376841890175314888400332193837052179940727227621148974651285993273183481553934882169241910261439338776032602990377549051927663458049787980210438029902834727276059911606009791337645037725258235707122728271070161927980360430301661278054333639289459253429833918574215238313813567939328612454718952089072154542082685264386719640212577391936219586541605757631153323336748188168606690195417230723996833986757580513263533008636796130597018333881596933645870826602775891879400020839865194782611402236700945764870890999847477813510671144683966605196263989705062125410890970956909407635237125976765407265045719346815059268134083577424861404806088284603308892560348109291211220908690323687062942087343192381662778273367666070526122668381139894793388518898929029214108913017121232731313870726746759302109306379581950825227400994204043889005525636580457873463390977193954205049318372207822192370238353638007945236357787447186234894022723213109242923370033161517266675358505676133320198795348076090926948284242575461780449293151354786461481065248684911962070247560348519525354551736849627323512755730746398068888592282329249347745594357399488242922728798667643040400008664319017797573008795703895371311330891206448366706675669771374637622742052109319558582407677130168024515921941142996257096947358825094998658136866960342820861123833554112350064213748718392261271437969038289047814775175493694038658348883700405025066480109847909828787853733463383324713564622095156442025814888810625812578754524273879033922909908357781370640125932668190218436273605183841923012825435350742616151827079739742463246918497718300680081849828244206495416550086791840487417185349250409873548972981932383283719813181360272151804698578328452389542397153834129577746015364355191188544381096457084603724145025988706221126882801986558002521786325912832682978301422364554200039323334800935847766966635991741127851583857394541212607555142929140768735484647261691518103736126838405743266688296913377543297060129584412366645559656221512454211329633621096918318831717132809116707148097505548882316849526246480570633925924808084819521477114968115875191490822560334474177210562295276587029873605044247999643269512032447894975114149170241076561043671730139819145879216249396566251113716467695159324723893918588092663289333356529399504111940355007031546543263775645172672803011089901936253247454707751668393065431370242730731095029071106906974455158775217628931754840073496860469988487233218600842038561226000667304528039347834569816754174628834252875959033530458556515156789537040530355945419968973508471747041143412313922425748773402707540181717924820287168297265650091511607716388772575102352954121648731856179682969862452829232713783000412379319595490239478600867292646530706192762560923268354491138162220724243380520845936743360511234308129712498587959191178207467984187569137298773664024525776529764624263372637092774598179004023441206028270874618936999204037486373994097429202094622882332440405945160774054712674573355351141882683609120055440804991064094105488149272260146650335409139265330186857166400082382229999553837066131948321826663237129793381060460239274864006212179749152365464419724035372021520330006480192961386979596501416942562803158722588111394713867430384698469778278288558372803923131945093299517768288710926595290749712145270311526960803925935807576927376874262154941980827297856576216383932910746691654152047021401515649053285011565712653156662408013273052596379652602495438479411806552086624032277448481632628008216872857714647471800751327986848307620312428230785106611075001777399198212766701349533482174037952168101088682524956152386347492223385484647100156940409062091421476425977309419167236564245424480095844092493528536849764841266136529129579338007212657132394554968985404735468549946804797640650385960192078245897106461492621750826330364422636007932107713530240736161146970356141843003020026961169569499995208008811567649128561467168458209109050044586781046380396055051240212938974676595282945975918892141864668957253196642887159443279528169360386290511098467000393311121393421536903837885766724375748973416523930627029160619581960477534208761173532429535113173242324578149860038786263340618386628606392108074951040867435436818105181688872203953552702859571980466158238943742745121417456040361128213371677521223330961522011528243810726852859827852759869207341188726578055470660851039792961177695606823320906586722014010343590477889471008100902050556282208172041142773974020471462834408908206184497942681200740226386831439576186013193260148962470718320061954889810707017912485110374560003434331100273682179694180965799562288318063189081934286106683657089609573321124284698365578449162638717759755623081344727168641344426327782144116202199879753333478020076188636338305498481205784047145803684087914871588105727027052131978891794760471474683518328640429200893603418048407062927408517045682936513746367591508143145245049762117605775561829576036566442953120473463387118338757966593736906130014628186330759493622412991578009691936924126590197694203234278344412543252275413928619338042355270283315915466721347058401431586692749174418977592497900608668051830220850978045404431437113399454306023677345607884196455591215603355677411885244582436030537552567776378404739811688405193221241633961220938946732291313620172379617335707680551284004417592416780094060852640241580171806236704182704326006291037077786841434605631543844133617269197264404794318289949737973053942841033797810959068100389132650005617094130625302140304992744630077486210115264863743062849813176317784934976617241680075744663205127479259131867318943965483282106935691607348738621192830320688239656344675188677385751713124604874047110790126679071999232937810750750720073295573070359925013213961561740417003213557171494001065796173753120531557103377178109677364029055983898499862530058962907801928460322181388879598607373361217070970816670346473588412304897029619749145069160361835790115819592763116474663463461062744558631193598744910653624649737838180265438691963758802105906378010857385170423895976172115943359896952110976787373542273246114958395237744034442518680887422875885582246229277294424896232075410295390104578665952832667665378157731663637292858269992219524340936422140155953264310397816178027528449888366973881973424492379912348333869299227405281080849830466181054329853914499269461509304309026760581253822901335670563073029461111154733515146875326993531414439131896182090943166004522370181445949656269006135504282219764666208256822403065284077238230053934327363738483455542419319989634176563200915677438907899980139516166893148065748543456614263972821608969527906085205451003951511742146994144465922488297261171559088683491783394416571940393253461123888134394230480389035299678400966098123172250823997811526535657021457096686595995856609255531052946311472003014681625641551104287038808596691338786490271103467855843976728043666440308689753930415631662442879202853395424992981122305467937331543659816719924554003127800864331153726244005336928814376823639358214519403199330156143874730955234190010878982990322249001005183525211073497189651385895240154218260926220883226575421115372888836782295493691971861687736898379288616426393111382377853710199055906313292036810731571512356997080222438153050448831113265644760362293972601527831867377602596948520273040068940285704435906679354637605915664283126165233503074400046712918153781833786884734428029749370273380723052025215008743572599548771395962430864551161588557368879492425441511425157883782491771364128628884846602278645800925083164088356328024724431257024323988574554839206303696716995923696101514631892993968799988476461557376832616157966237896649256949909388118272254451682664631907141011103143829459018820110947166318632153853984279341827616736033460373795201452421161313081034474145979613348313555438669219947934157198736922495377841312577203779513272425473847541557504381811984806004349449483851472701363399705140559489176960709257810107844734777224295945486657323521078198698177866437176739686862895085884360206968407683067106334674520249618957152598889212513225368551943426776255309332438835132937496872114720989628590425028315497599845028733446882114910389579308996250878765691801872754659101900808080798402214934963316322007778306934573995133188330825971293427141242491906558160616796379487454922583342616815170776476825172055956109857611665803950206839728479997442340382025246394889514282492803575547646945663141484431162273585778315353526363468680363812440935896796327175852675210475548822488921351899503937734389153227294968841606107404264611381116250163080477271071921416357267891575940081404945878518561607580985882019284261834931980464279537355228995893869481589945941755727414542623938447985116590817997376310790823441429059919906493352849700777860250266476554946608425438808333538786488107142199188323940623863420279912930943520880175663791539066018230813192969302186558264043061804639797860661377848633002085115087206305082237047015441764514589371377978591888851335775213335305804155500011308897335951190034285787492496628261162354498956013530973942224528643727332988917891523246123203519218332480018268773014977922558826955056570508684011097753358126613379329367717619904113911733081913357441026441750464544199468809504020187531302548879573830208597119510947407717896604115167818905874589589126141467324257273243056000833668458118377098151367529759854984690599265674284771542388356124318490804048264614119294891529386005182626948442369919212087894344082697660855773857797271123875737588875262947771414542845421286709526661949208397699265118612828916141265530426024569182753835527232014678187805738977362835306010542399035243422279536954113824712644464831752325620885167545288842760143435106639212802484080269831610997085790906224348993681869353164337410331968847645730947159406705133623734183156920945764495063763160023435026454854662277571563787680071054828755983236787897804903301538607943992616469512694389441472680423519160752062148825328232832698755274439308743428541432321419246437152156105488718707331950971672999495632302565591148810391140534726122885273742556534847272039280681188056060521887651388623348051352345933461682114681665459207578330429000916491318910302991324520803748956190286218450276813972241244485634596415833894928810090413701161699878496076866205160952756742459336366428374339001172579028587972278562202934563440399697492241112440642702196917520513742704059029262301011161121829439546945252321942640956686870456381689300954024123412852419935941140131687916866684038427957213551140704045245473614565135073787571685366712933397725122665816859578702918085240509833135570292078350425130694001342332110957158160265649961533676728728978117684847581440904281115739810222371763063938752720641660208692554808226340494784486773225954294506944573562662559384072960444695802699214156578102531645845037066330745487171872364617904225427686758441708388818852786381754256286717426127462265612854985625526661459576641833681805706565792571126561065191970077618746338063011900505354792971518561510686860779455264229800054697902958701985139702628785185481301366528491291127466234058698641758168659573876102955162921953241152980935081624863762516978295698641013767715522070477665058702880348100420887352354691222482027487453731999455250798394991376389716261387770540956631194613301266817812926568657534733659145527987906157041974349956721092182962164709831064725215793797182318156301218171704223359743634163144518029843902192457134242500069336809016249848914443741995568483149516119965033724114776801994221779633906493275654916707731320596699402879110026258073406387390465980067983591761559052469745558729075204313405501855632180915635314320783073078099230602713937852333728168762518951085339066011675545464523091552598676163973024620047456117756290484916359132763254734799481280217267686322364157121144888648404543254174622812020473350458438707772284907690367944269857726685901278570511735635579330779136176806461584060648961585436670356178241435501442600778506526830446350649756902337181624382502951433325393533084925337957559777762159201266318021190953116188043408904994396292468689580660232995692482781460938624779417101436335190483915072607062988174002407476398842932283400060662488424972551849322485531104408693029722744941729184355118905291721040797174521345249302015561544237559749250015111448454127262004437272901111526647937557371422225372740631450944010772124141171661341821896281457245568849565507066455440999204112795889879761705449458950086441400606883690708051605579025234793359835089758302230731545412445030749643971380516072783426113928020918380538215867642641432843579579978130152078358930202592984241665236092850166499203205922989085435060647862710457145223858796373809371909789984349373283261602844355481184783926570373645396453727055570600988736230799961914209163923168416818778250339464665960568699147326133009781116326380064206293693845059403811972779607255521234832639734085563876516799759707979343031164625929284319094543521567555490791380247901452590170637011445384237077905138311353065114766995128373813760431693828608332506623231681270555050068796911611924846376040786158447819668189474479168307499311022790481272068610116579902928812838588593940069775546024988620948257637434686683105188316412963303826041925097156075110537876750401015718996328683673064591203535006855853231750128385533112926722657539399818592485058803357921425623745536012143501426964585186365494370425762228651955039466310590960457516530838924715445941456030406046980555892546055157312009837902281386577722555462690758012315823498870461921260813805676492706708492717631560013571517242207598759535685763602287140535058028195273230355453815965776214859353701563136831790327410278178300298615347985562410974298929425689365677717383913247057351051146835061021976606915482923557833794369243649659036018838789926757014245899639778232924779868321306385461950604585401265895455174109954574601741145978957951205911181492300932816706645677952271016475228773757377772522216638605060576880711360398006282831882414262792116851138931519129749514994778190216129911165590091992253945924550933877501565271724655540953685968378417969869323352202510320120622167775917252878109259935071614211016176305891945022087242669334017257507520639371249213256752554291797621531195600781994662491637872858537946348428850592821153301983613574593860548183655913530983060348529415267979241296183553817113474767316491683640916740077987500784774179033592079102223644034936339209039435868290784700576538512949626849152319270401961829814216366046611089414757216263844965925705480945700872170081453002111365952912580884667949073496948064565092686420884620336777355959891688609059002552382420075650617118462226914549874818225728917609845348243501880168911876294596848591936667276755052326736984560776245486424075612500345289608487616436684047030630103315210671705500185349461522961671172433316495738653123864754588390106368743622517560478918070441269452821183656775652766457913998758297325844907060237742563672575718333334104432007197116744802985623441302891427102065748314245324437544224150685322378204568617865912622818751800274977056667075436088139957241302721677465068806520275625854869475756766531740337459060360928593740237182127742823107591077205848649615203237737121988733568154832672760334559890713167401792240913423433544285775798158374105658644243318079672808186338427619923512086011699786778899636050228920594114887765587863980507737915579579867089300950659236515966674596672414053087773609687317338518309651874886007703544549480054539366199633358588237376767691932884695916731347469784410821986417304639754157057577163834249427781760845279061875858294530790493906648725795618668251467708326406884485599263441820474859435905239584443325556567178716154048207925579663921424894744549824241538284948781020673996940228219385364077650472031794474573912055134698485570176949243401046556550856769569514134669990097040728638412225217759900853022530946202021462298166287012116382516631522836593245663421018158110312772367913721569495814223195341329255672698330121721577128268470643283664532411989396547553763160850114318049172894228048096965189798674540393628495324711209403423284009319447367157646160693995042171877169741876106969058277515649735401547010384534001898315794047756467082456100268777738128602655274124789870661861121270953018599601145989631006615181463816604112612769877343750272223141030037232551001773023821599114844936890730675645596588378545521057575194697710679041145528812897776652734486936441140758828360221953063019947650191884436194354601348673787449453128415604931401163652331549149407908707965447884688851691125229082209449264592751253020603716299170308782587161185333436650641478820877656445355380033255376993553819664990018113937299888562532124813028406521176977831270198402656161491208462579484564061658777170487553087623679975366973127788478811059161779914174911391891504626184508102354669917345472725455123175886325954786741424923728051844329993367000537919219604082176079008967803708791811975804596178531601437088044030334794051547499066453631154067038109761035714354259435078854693893376299434280793359985935196521714731269209265692683432915479153028563046119094562511489299676503067400132516323154348304416639508460570725000649639722493940926802752477916634427483212672335660096460290780640843613915950367407385613498330432493350562997386300484428120326610926694362840379023443668070960081360961766667011085661261686118783996780832838866653775432303841933566716543162228995357410969741227649470836330225754773026924432859482047952558632972040225335237496292343000243845717466074323306492047420028238317050258114028815539491957164098493299588058589834509411609643239003784225826667388006696807260246992327659322265989999094116226988947063903584255922799613070355087644178067270918904067124379471925800978341865491494983405276467207329469536245798366443677053480259166156157483687250805231628512237480453401964446244106264003075857120319161082060523897109819261842785125907175297495082041295124107273909692414660068119386390531038799753037063566774850902703583409794970794746684922799373157867620077205605567157063740410370588894244523987512947441264388105627815238496568161087542883992930417289472600847880067186775585034484828984368132204916553330613025262757940683446685035243707207301006005676349610671379217632188435886322745083517241212329983663275767107261558815037926728635141019403761097899844390712896958877466180672542932400910120530189363795539983987623899505875334270528285525037776925293277074535305834527182457183586280069237440795980463794651167993740119324835029795693442930613378404925838024529492031395529850352757906612648514064997725300742531213421672117521152277173407382731385916572384367203191563140135280650376826456193573930929777821566421728361850886954517578367871406171867148798739318295429842114776801458847592103830335991471848941593042824161556527084158004658888972131607827415960745238492626949654707111154526609084475391067876606202530022659940948099951461266881875087176489469625572553253649857454698197726990680707543736462220728632227001717661797033311814045286642494002488412314981958472287058469434952476856124781574787104120941162317212790731888787130684273844010220850712675499394453092441639825214712262574609379722315066915975068822417300859580129103338391480110092919830554127262085445949531606483526389279930629179007167757736987515552095726269617485431656674497896807071517705980201505679942058373514988538518969270604460533634379525960004825951932839469578681549201791104143152556575060055042000359959765939580794378135356670038667349744707091526136161139179260801052154816853543985250160350437571881517479860616347349195090856605357050963794649100584284213825351988644051489022663579468447216580511972757004460944854666761123883215558905832686485908293697944716840580767088498385314473682619793135945751778449429823822575870859061761068502921435911769919400103453720476581021752322922073976621241969991761059558301308749962493436118918950303526845354707075558959137319751615353725719933186150805302826737161191638672241404751819875182847707555392273652239735931989489224872665077497042972815772295694439867569661858038490184372778014293171542779809999408996909507844520504172475355759985311132041558285323206933650268882378037941480857831074669368486281450940869252978837812148242590000540517629851651713048774866379080106327135248303214521925779695401929251098691786646540602803004403835149451852225671964163492787088909316204919123800588799209237068010934954913085376811686372076896775382999613706166649172685151549678330987604854750983151462507356319168124091255808270701764162480447777260937148815464952332085099075758845323337387699955680260308784023767712758713807830370936942533930716812684782474178518577321747770578791641177562883902128315683360369068767377459013982565591937932863676585288023530433680197412806750432701851634869128313351882973334154055790742078058592257478693553961437339892321005111136356433084824111604169969906149954891775631608879224169955039348364691532192394207485309492185589750172306281789618956334378665466298040406386483857900242145313283392452938504677395306487175344789635180222502205336799005353514088429021886871202066980877283791455446040289067019781171972904659116008127679857605523748468047683227422509545110376114951675197526387347781549522068083262513435678801265281521143784953658524370512295231465020152852698411771157191860998397915193881700300366182402357920632572457765773656511744890496420246382672584907716016908093555586662870134459878612625845862716396477829765512576659605982588257642395925163026416703096043676876234052887844707150864388252759112269274380808732884289724064630096362393937986059705598453207348188346095930288358478833908087370506986613844331413657800714897066996277994197304297393457783306601584015980228893120227950742367832395005954527061338271366777827397117318841915083035196564747400007907604479870530667651111476633273338959470747261243629150070525502586307542852111499916248347676708784617272509984016915435400679656508092294951163725692946721681723293408748782773437402164035002431260641528208706195814337545910738903947986261259411400340965503330379770408622948739707726988145721945334877268315008453216066659996676848175488874124495132532065595662129114195183636795210571940372255027453364026623775264501943984902521299093532043460274177712450987571433065183606723422762916790491388636759488750056890024274935615808432978350525149549333456867502695251478666546953296236917965785641064344732222758946408117366533120505292140158189956668600567727991570309675979691660204299717632301163850211626613388225460428424180604701855974240795012380332824838415325486877764990391395008521877210308214694794368967214918854591207029120160624114636110321881308255378003399560869834964683309668365604024266736434224783954954062774452821073433778678915203584651026692656540250611437202239862132384955954408569527463779444265492375956089556122028297847186032324259649148169593962735603814627403761319414122605916904568989350270803780738659423828693142607428878671650126147804045798174788373581887216659769880081146521375596162086819191344890425054661281304946785473104861455273741544129870832655576623538009004871309983425956649104319653169131068910934568002834891599537291644669831201432700140524324297371110035788843884658975861097804985676882398480305675577585597722438643685677242957728680876239323236170927813438221665487735775437120482952576131907435126312685522843572807398815077987335801416285854719252768931506051600973827124998085335743133282931397654986980256470099512340711269147807489886083693164905010525237521474947199958541318709891298431024542403598303563474225758308160300346001634781018134607846910452973040157361547937310633845212537399516652032576670826880976423493533570020503099288468285648330090680051030196822272182972330688419925805126444335384243757194934260796071610912443089469503327184040464584763520685192920803561241360175930996196626259107401325013306677144496386904298324664784072374347556312868817190342010065262545039355423933329049762907946351883149633021308408453034337801267680655264744069368845992216523056826729730758450866795585078143117065228784766426211085121230495042812352385253738251773678339628705569822238514473588283349480243510242176575128334968825442601346180763879694739841484521443603312339909481068980448481187928414057259048152894106432420155321278613687236625885063040763661199293922105879345854150147474864407790190644574731879377121156414194772672154596822310628453850102020293082266913975396862304332713977607141257634838699871088113045428430458100408119514667517790716685441776077900460402913220429423430538246625436914539955916583336899020321467126977865509443499383784648564405774879130968267349408793795825741444503371780872422673611092131666726086994751850324706329932985230651448827345291366815552653863190020347001824851299568277978276612719497480980315027363092385988025655853686464517374277810263530552263357339224769743203896597426273793334469927923123161845420863050616978688968214081008743946691735251435335159160402370125790901830543831881297382540416836156278392179780347066994901225334009767051459872999269047383607371580246646876365112329560861291622217516038940467396377759454210488347152322111045112165600319066421844969462454924275537909950006248604239342678600351672321883554690513103117792251814721343054783163849694938363240071680057071366731756630834325415897814796269475332003062886150926192348382065298209422126054157375800849060834061791224874888216846975832488315053585170634563823524162655999058549426460698393471125568532097761401194231862455096936455107054749022902434887832966619735500663225692721652865545977752281772041510252832793087643846853781475617731486260949384077080708728851043085513993840239307264736008968631305837276760416754110531810746162385691296189377134526108285651942106759892971191288892958014251565838100112407633361640306050510229933070990337892480815977535229648229798348956842232174552414172007235904837555373832012126481212761511043213093492468275156296553834277819742536295654221098723830513741626476548469052138768291032969967077134128718981787846995424122015250122660059244085629577207361441971670397114174979210243571863040556675298009552526098485369212371573792108223339349427676466342320334350586953978804544588196313344533559769326012117075658074284844187733078388632699535218591730153834974019193633756723143434573103249727658119462778811912891320984677075248934368331325838591339304571055594435750067151546020842430266361062633128504289812840077873619293470980609261258347552032289549516443057687124170857807957630525779479839531000049541800370584626231180169948332295250419574566452692113134752461634347438761913586785320264982607001019968136831402687295208748772607780938255417243513329529912311932088866401562333783549439770400169088188292543372120489409223516768714639909872339125443514602563724873980954724832654314273166102318311456989515813609215150897141086448412905838403158304908926741960514991305380564629688753619325198523507797939449176868110361054169261450647466467294913613583966848780988610783853728248537396035204158175258088643215100284806568687024172573866360935830645268881902130763378672927804003359490534177360899162378774963729746717926821897834710960176825581938953190435125196650920808928308313791555606854454091843747278164322256926470562726397849520722476473307779264710677859627565738598084435395583947141366554249170063037601911501178419280957334088297713431807601106095013098581879095551544718097207356474995771831742070409768146032355958955419228423081040123914177149416301605175555382305279617636249421128274978409960257421892047580731968738154857352367192562428729501663098811840895617121372901524412222014691449990922579057347881955576903166020892512679194882623220399265868542934768828350086508852135448435569201595649464779797546225732165677202031735866422073862509503629725996412909086815756222363792032879030387215775818941488825202770005442958052335945371860001068970155140437302429114502187107398351293493658143183310429226793712320259288591332146326763880310884246365795676136866938508142567356911048486862460053889133494006245779236302069747385572373032238008600181575384851152882965973429089261697854408761194007904604003059691762976962966904202140531999952466910238166587293506666207527465647379829293964807536037473742285512258066494555154565006543840264074832691462330752224755243256029012830893234753132891068610220535150763268896225056868831872582199151955698982696684028851217675337369562317497276123914348708246149128655758411059974578569336052017760898283892486780221611883467294011288096303875676278517717082890205174753908686551791492139475609510653701679512694895414929991014161603883701833089257580181946545288892836604000827392868886784142011580173410894330864786204264052854417633136231830616788276746185308464403520227444538275176536221365459855225352794944372649573506268058362642232508143626094044653761359761581759110600928895694357895388185591968418846097177131604353786708419722136566227158789699618671620568331647499892026119861537291808287908768546094394723146943298858642493548192021949730628951298781825769678504898715946241711627901409986671115636834900722197078071455321385186743010882615919983365468195560652714822517375681190784324000525549502987883819618253256277938926989432654846279837712093570240861176626965372161741579003511902095868136198495924421437464040844058918914127948710833733100304357104699977391111288548336327110327793571722618883154802800927481788251168609085286436688660563078459556053617221152051123829557008899403682329943673866470023413259711986373114208950708972095253076804867953289619133871821850291685217952557848423730027415288875682508172391069022808527242811284282289612900583694232852134422515260724357109286955508423006868298212854553828201275612346364105463337455313895540724217766974159565148306881405672951306124491716642475522631022576368118607529471591428998324351128067089402847674309519352886690355004427447098273089439754187920746812947608327133142028415019955833040143734710614094519012221505883451020223323517944922515343729390425443878968495604598261927511967832239876764468713330433288995253600981263175934464233378474784303772993735245974659276933305732080356922440065498295523778442853635411654637564333454616783738865268030881144854851417066030211735824519318693061167465211611349166675238925337027088440329185737582623497546355530729028625424448987367821057622496208022998646088365273109378214203235202961583898637567285336956138892802045363282190366501474889350457488410168645254665743767313786437071213105427931368655759714790873130894766584263839901882210776756150765311825312361615134738769778621178009908080986180242490636634535119243647752942233427767079469882843102971806722797904466544659744183899202206374154606761978874273072842171025228468968822009680398460428848578212717512881154612010522290540040716504647424439252195022239369235407058291050515536092514611616498098230557552498810064037570147142936526890703512038554410107735424616495671386709212187541321472581055637603172202261876677425716391983944904753735134639857257850385371733811890184503803863229527385421230064064005164981942981219484923583317305412790637125486653493734210566566770345000699978489145136594890613243005068749246747072172960917425219998258261302511183152845515313653810953923888793653587585384626419217479819097599701676295987204308254477014823905782219461619694696770996963019540761985320291537090940044943049309951984180103616492911152893285129142874842739838983927514509868836582213009558006896702932935776792282579529141592291468903952166910538135924850831492274107573600226480613495939830955359314800873321460004675419316893463483582755577928082521624504094264510799628088172366289185971025315645300361142102274669700206745705238930143325851024001007600656957810059498753174214616662453111842684011271074458377461572634129804683257061268692144557352663503722926102703505713067338429301880863962177254163655813600050854770235549975871371470396208623606928848712506580363983201696860426725253162875955116504999098406591466086728447867656538560974132289561703319139547081194903883559792081182774336940905733068164371924364443198442233712314516888099748368146940584939632929364186510429721723714736497714992142523209140735253328387859206250954382121522531023350270850099455026471263633933316219145205974359939334325073581640752701907925978427926750220601079037745746718581143695348300179564786746249751473714258579190959086942768011161859133701195029946479654785885021281560176574929559778233858085199245435839882605337230566290987229371713163482322669845320493635940760660961690230054477691244521001449723771541030822778684326431856602801760309040563580087480648035481598518088415488177773364079690856592646826684913968470526125231772789791051034156176674822869426060157754180294718076230772529210614011036338687507972577838018866360564974119691401502258559232947374254538238788702637119897207451516578656159594233055632186210729628407633762862181002434308784802160092890852537582745671072991852766296226833112338390320531941922015060270938423402053541462835563150087551009958813751123822717020050244654600360215919749578660142130719191802275129796756484280748637664803330850423552382563209302687965246867291527459764891563532135890909412889213037445688481083642880345342317165870074740528361330302710076897450312783449936363280207550516976549189522820906387605573337413969883962762705595006854023259601741935059814304187066355120822475970461758986753502823431161572896625879360377806328470626195000260074298995322254007242602273229304822694395809987463264135534341720011997057199862946593915179589851305537312907025810122064271872475362066963879847743906218953915298197934086140942471057974439823854107029933419171931131532173639209341558818040356502635390044461223367882626270380364785155388489006065160437162724366896499823243461428061755263082580641287771417817285453048903961728312462666252676015742785269259791913030591742579388514547713883912853353199112736886088336632207288071846592009428451547237500945982324139342708740886171156617413561339581263574782781909210901480917466886623803968458207157800231382805479467188690384887802743106508855679548133143215256004205409237005059905779058863744507152577302106690657232705327149048822876456401683133833994616871064869962860395283089597901365694306781250822949104343301154464873086150150803692445538530325394295606979976948032506904385082791563405198738555283632747878084429084281492740603238824250526863116485963058629170297670699271897390785661373069421766912328129281242050692184378109380394583435105913521150883308051954091930687503866656337771174545111963494913899274999409734237574081923739665277360809812166847009673606963247905503147215614378164819521447573058200786093031190596342218727873994651887161358248424751747014986423737735170746263013466109540471452629434433264901736279373053887672013760230632848370723008132788140082604811664920505167737195487492078290540311006000088876737129666995074986746137914522660640487840937800814681516654536310513565554207837998658382619113446510778742999927960486487535944345147721716653646684283583472601916930702493238666079128556462032619388487655689469808983121025599377894659902752524322607841047995764555870075299546025684682929078948971466371951858936353367448489760718642763527177496696320825654057911971145050970285384188841290064520454363100281208710714363184438438717867395153111265895387770999945281548803396613095064736057923863175676357897031833119947381235768007182198772076989981701580766136060271192038893530310805097029647007004342944325926698362346058649882400332332485832227782119634576399677465022619946988556289112746928495566892913834424398440473124302603432653615351082565625569269964332625730915898660493072219706208497412338654889685357793929636991992963080384804447804499214821120332974269128266093435428572514293264427648674049252697374190935015131232650209690009073388650424011055783449451012410282641275396946457512058577198391426495904312280612500470159766229612444232758796518384942891668767727069127808247422326953222546071400625392380966495907634995468430656531465164193240310997462737609451439607901933391887938356340990212374388556957314366537494933883849173178723531633116760055230217694761386636284857981823900552858412283516286317580052080279487997615806023639788591133128253497977279834597495108021823898710948276079152737817615280239163133661349563011894748889582682151245367549634875299625531542976223623982853303798256924877891374574791887272661693903437642246187046609939063600604610681628224940745873253209649951140747065217499539894332664845899302684955295131141057452813783220230116470569468379920712935530704414737039660126704319997463452816248704083544245402009003094295577096769408153132795989754040784594711762142856667016150645681843691057722846481459581888516743960269914872980066131966251043416522281510322547509681900498480865630157703811581916011098484229291046052769358110953952675235274358355539064001959178051320840954035831750338942612589465548041174426697292022315591650728492852451332689033569169882394130414912983453296270208973956563780403477497354394352529550236530580144825261170944328557297161935487400927261627811867273662116173155435564566558624166532252950474993061431290865989985618150497255344766261166350834845589181809696680312857696387887992094119456189926881918267335337902733762181557756125962070095430457981674851945696036853680769096085246230792700502823672870026675251045597916225490882586925287459170102679050579569793476463888600538162443025453061930253880274460944769289594918234468848780903486360583243243152592013772093806120847812179333407074565224343004305782602416153537451860235751731571613954192000907326997220691631904483802986842326737195468517887462370634134805037378379855882206639908125574188168412428157348364178071437639470264743980090811243128293912858964025452358368586463209004296908438208872341054436283150763537348698338258908533857520819309041489756177057009816644707254648790183932397068197586489831194771975342033578869253149970425295488819407095334816848978102638257540373489958349602891935361998078624644716095633729742157356011185206241924474980251262757532719085941620474305880688844488960557700406421415792772933457978949969202631340234302721760141775368471410080479406608876139625943372458211240674510588938705778628727367023585318219857956333336066266974642177882421338166682317498172732955586706372965346343594070437779880108951291848392166134301202313846440465700426530184460044613778919275154208388887313479476887865168596687953705988115460260777553569345895478743263737566573197624599711771398362085971669206760963400044653533827309305842548907859918279422915161893379326808658040437101564249759785741951343108219340278030794820484404255315026895433380426325503186220093862488112013117350093533854806918705329226299551628998236512913191353952668711610142750800031003900946796740376915270635495190124525188220888862608808637167454251903357572775138182616976975458111064742122576555895085658004103558148431113473134548677433230720688646800912812201912666518735523168557772843123236511949895822568866901086114057429927577661893394896911269948128933223886969965661197865836313622882738647953213165699203799273456770975135602368536714539423663664017885388475477073757894096864263845626588798989992442912858074299226043836249393777489469143351039303891758348254280666913556505233136176883169043865064568345227149743113452666204380925047429620839724863677130819787708444519536085959716732119811303222427186956428343725392778544514096799395044354408735454462820203256402063199101872792838586562165927380234886211337688910455988846202644656111973902313440739981003173650926883425244497788177580653759434064314411188249990704735976115198283059827031615019851408808591835123794749149599517818259763325218949048657813456758226029382510832119225148643328460087113617368898832884813597056734818556340429105002047303020534629110229897441861824853043344152043416892777886237972724605399994516417785560554077151479833666613565550917028871923458205176658948249345211765923987367557827012267105690811141705696754443134117561837660479894542856854101577158664996481855416181893298467960157885316458645731409698408559225089035909020144366206088293219344952731091024913757798300919626572489741023824648933771485958762095772043679509582378262706154089002159271193355109489126748694214115761470865122761721748171852650016504021787643808603965403815528050812832271585588352466706987807353312549452219421654084852128493910528736608776111853163420537372268807824901512964804900903199865829767292885504417758646412182234932327765045436455394603683309889484171549454134900044969006824655871453097510935568015965187000683217051774582532206546876328963394634016405696289656342000981655554728652604552240219371131066432791601282037844567508541001118586063546630418461203400420837802027765486812550097267097964392684030408006889580813592209917030145899504392113920366905993906296733181550267381731139924673313876455866037075035948744404771510090716499964120899626731207536196875989349670718127791630348687008838083941073943571203262883108920810284834686026829487188902938070252316226780353108747944928214220514594243285181417750755573245058031049770844968341697139274919189735198607646734226472829952693844547994054294254268555554842683761794446357297224628325047340282800881049812046897107176826810778199264020342207688690978289648135890372946623158447797965415819082189208700778481117520068027883791030074340277206722008210299713156012492569729414989675001099077644607441273089444507290212810132092400293454897290740746657397463529527004098695061593749444390148215653124382172755471379603768926675802925909326284234321469994839150937184305283935162764139015963391655917584581882038880720768593748380913781343116937019742257852592771577642062517516862474299422108198243586559339405859599244510655607814828464385952090941075994883956089967257047886626812702148184953283640920252671223859476194098590628802861064710232677067435042993666642934691523735150437664913777294340663170416942160329350628311679966247366494180087691924547348762248515142961265481191939391967936610082260856637195957696693937151266514804471684301665534570829653587181220091726998404452313484397029296750222518745506601288679589895076171405421235759887460511928553617363269888126558489552177369431443191911306520198618136872047600768057119747735075558902098209407260813361005238283592050097880701742900401295962316622619336477226303401603223541294740383062229267597942240211017208733109530427032118065661414163400684122870808865651048574023456959662798069020681128060974350566945930350707797746916610115392294476344661357043640247076882820427821607307262091597755559245772904303853984526933447044564445711208927025193114850709774853766066240709227085450041903108529471200796701060412183573052372510587608400306586968312238175387480611907939583454524339166297614764441064838948143533738069316761458412359426828777107134360725537365871211033943210085839515352916840114849370394453662153285139725358133545321789011991346039329607001198933955707577946755704451997990203224627881920706804284987079459547020082556159021483589729163322662885130918310282868904880760735426524474003038041047816322679867277552696241080294668594234006907695073447558289072426641887280956907873946587872414346490979837415791246918061954140491418313599930150125874263379091708019637176597735280798937600923862830876582575233540328678871713500985307825425587025112457085925189146404955166539807947080024692640630193606530208148650035517139343821806204609851392172751556632239377070189665932094463561772900690939497331648202942162730900207356001491835900573915085671182258653454043944692992881929617700364127158283709062702748483299321421163725801488636961860519854466639527269075545962640393621463115635243235738266815727306220720826573731658363853560970939201407653793917300007708584064546913402998241442891983089568711109027557925403328814309655582485459477955205611917910873227004181947461542990446036922182812011674532877788903270494435792423405548950743619929881842382763615916981099077378469421198043915261044369038106508975612330209950964059143678807178775620801043992884877976668628290886359196790278483631852904843393660495052101291134642120647992618506720352620619009568815706862829929744371045420463851510116299820789953184008096647008416070954291681345170905693677661890422882523989627447365044672104860690272278521390724688245252781062472670841907624863994542567976226173211675030917280231165612883159791682875711539830034815443003255741927700957451064220738782701434772775242413164506332430995794541073917971282456202898498924636944551195296707734944835396671019599417923232299158810405302949030895396287973627897122594856168861704087105875220472683142970544965325329741032765326770679632729887408001984702233900873408001848233044830678453380251288941355581753001399730178735706327615492510525436675093374505376351917964016058324178901060037428639456755824889642540445988157287201114795271681511953163011809616481585910790812151399905549193480755481151449252628220776016095332101401345815305082318313253273807394295872507512129524998110858519262410161838883180674230163872122924471197466437204995831630803205024076557694516442380064599194615061430250627426962156395808287718223248918936522930009812291092206823724564057020833028569133808525909814047566693216990519915076443558595294302900205748711000090748071431621861423464809679275701239748683480181731740449367485786976242244642952309224432354037301855392597486352390463601474824741420209134958646088368911152858403913352708632985623057970815360524876881352270004951822320724707987099626665162073170466553144558092495407716365934269543679987108872107670329375749755749381226488371436442496899211376455294769154224489936489901299403585589353326348359082400807401576876063228667356358417472939500676127892647477045442853033649214619956143103791922055243289533684853841822746658557715886172179834808096893939427780606797317550381241969345044096938562917345168859633213160442699273285182773706016450254409659753536790588813508166540682807699237639932338478435598256042157645676578969792728848668932671315243688767135721446223631830356529905601893756402689310352887767109438219790246403919136694966354672078586422548045789750123333576048677784006895612761899798555158150220707583233091007026140875545512733854213229237346040995095848412521352174944966075846602604376140898149236772088969489498330409488146911284138983444130238930852953235561669814436970712000782661745963138393399274793755835188148966043795691836967310944320719302978259216892048236603451034461405135064618721846174894396055925383641232674152708500210052753797969114128727590504004990920042724251940626781128359846355677895942755797504468605653698175896063523040827931037848823391778218549500473359719498058092412815798186872929988501370719197202903881800417515085152274274250112698496637386590263360137306022614853758634343973152964123879793584850031611331781484103990518201792118645830648391412296618660063628776165272490049759970988139847062615804699892097620765734648854475868816346917885645390534990421742512958243950322053219892126544755152394164973242043858223368251675165176869232428544955131452770868096212059938334255345334941573139550059151032540397368657196685008628917349387263363423139651355356528413104974021072184689253486046251738788612189242289879001437536544005824018785057697384195212141342947030700808057010055439086523351922883307932196293765391527861351257335170374749178126925992387037829625234407675843560377097409501583533869758819395281651415144403868683602974712154304120493018989870050797410979757328994451809876253230447118024059842803854523819753341312779248825346884253418310167946956082220908762636536945986004702135847192560049732387640980603918913674303412277849512952886426399225620981207959692420157571680305514880761354510770332987128896288687926934290964122369891056624696031061727970338734599236303028383542079063937545512629013647174323098392867859529334212356106233781226796346629266346083083282216396778612033449663757826924714859497212719010974007520400903885190950875479674166229701596843565633196522262712230160189944147430954433752352065820829163467884963729034954513397009431061731762962968310356928438428959059520602200589627645470007162657492242598808156792750036213959843183710037321355560751615904586411610896570908029920074973234037313615969989447241759859013617468431406690319734420512985126458192615070578186271548285917726098855383912223224952041634878606419677981514077012749361025482647758584072774501676333624910086261753837357606524569597867693948444818774029624193319480026063586898793035236509924338522832632450630089188249907086473798075030058756409213401530838926174869611696020465213096245048469110468017715135851881663776956140861960438576264108830350354212194358752959904457698109324580474555098550965636502780345045232583012131382878536393311467476946983820004661014981954240546292477449535657114772870024960469232883106864087088921055624031115708957234220169069574069164250381650999584377788025047661729629657088318994168893001033365514835072495352481318064243964062519111061262174839010076578395806015712193884710246818248995062342676051103162420357149191830481604540465285933500489827164709887721041229145067401857504393667490375174086192197826002809140625947056699858245238237770085030810573844706619215436582757454961038926231476325830425412614849256493897902039106646797243313209008666647112643475593813435813906278533259504418546945493470425247344130691522335392990502276029015170415706778642544848565034020315545681224185075286739160818639001035119552182401474095132168748021559954033713516093123998572145525814114241555395894561562286379065269624101935236330000267160890884548361795375543302993757490208243777123114868552594385213535846492351417089117489753516025199648211468595281735398220536657086653541538357770946887783147855415841737295994643639096742121354897621793154457905879057711794395647859425919242157628064352140742761279298383687325161795211674909738461702336499651265351400128092144750299525376132090576519331526727024617348683695364536219754739990560872053518694625496803015600598097686493506317365842099208124780969523485409443825652553999902975100747911213192444324906989782603630470932518026135921962023224794894971822844485941555016078495226725643179120996304543596226029310661424386333962932223283616131433919318204019701541107546276591758652542854270396711878520857931345507559652112111103153127266221721870579054320168108324886422397381776761277611237989068206169277274059697286903079434151401941563003811062628345453204427970134801803829389287362201866387550389125266602507482677728033638631508491617284900711742591681810161565378175548303913779979746809414455575616999160242706679556891417947260945743017091891940070585180817872618313643122362768959589846586954804980119880287145821233358644681119168705494018893520531863459933852328997001285376912303009932672501778290831347616782618441078771790977742922898679003381299827765424419190187797265689212924304773154617542221392776938423326936858372972266389098388381724598215451962093872131504503895701351873958025495867156242121063978143885320957229517456372670544312615142499825721534183297896407740760931281822963385478945395456238706948346487826425713922762282836382681440467974926336735817276205542418869180887381092438381907627011175515909877825384572096048547525067369273109035682137853464985834077853285899373915792128690655693050449895764566385540589610704749143063079585273067787832078065979174579373662098512619579230876695278114432042025032716972386814773822778436489294504138189548844856867629473406879830677387773702028101657209588887924525145305189436397535238755488828821112906949677827269845285334092572706732067485636114124324635017971991833099136944223395785862706953044850034817772040183540583750062353878445459560979974465211301221390360369781241300495167038539055065447401686305837262368668435340811975341839794801150695857681256306660877509587776208009995219941598820287065316586552934165201586099488637046665517024424992634638436402930631423330722619162358761207996054064673176901518114726937833223057460988543008200480033774237728984840143182563278296668115874472136869414038361830208795743180174364824699276593902599444347348027125304273543574382333126491612398858249880500367359959524692509406468788270483053424998620787109635439957121732945887360255276295552245968654662134421156203665205276440652880547923528224212790639520676749012565486331845270733863291034899862825686613130577351357473857995600963107426114159418053758602473786715401953764030368611567711204703055155172672348741585185688382441040790647628592956105542244117169401562064357241096771766831507692441856520018852622936177932038061892557369046454777687746745600033312123245340041081961765378300979989225534747955330355269262021341077391192919209112126438484485390946219229001473311443644919834458921460411655073291894612990745261433622364256025565341425074599933885407401367531164573400878854035424371361816736638773788126639795770755903788512772946424589717059566790679536894349474885765551487049658565015576025448460097406179857497123882269295868320713613689013874080718276691937567513910437227682454917291121169029627235942144794586520187014550232965392189496470457905476571716464700158572028504201611855224104725979503632593159978186205248090525257331948306472322888825536072519579091965609113320784281986962899078853896261191070595742900623327042461277554763902373821007640663435795614779538973399487710395217895678225015458621783255538005023036523219887675154164828205204967168695417086907701686979471206833711980264235380725066429493746363862904145307559927554590467355129734111494807924647775945777648836114421079640070028947860721429873117405384783811616176053214351063842053232739722532187704042720947252608987970099759702089468047444179666228470055148781785695784288505826131759831848356447840534713109893985529417543260110297764238121661307260615511927915819436991006571690260333828818174694421322672207671520709042723440188710421229676370019231713153355982335514033526492754325856945382172125592098462834498594432632588622586231368340862908013896789154503083676463552665328836470032121475744635390316628149898038603409298469216442733408577054631157988786513266037101755192239154129919671882186294801963419078540924240635449788497461440294994167945786165197088417889932176363467407003577378373242515915067237464034310647792087226478758408972232848448743870036703069374114967778694711691572771637579639858100734245495889617763757266593899451511796024258962774469946564313475434870385355091801001256481564200098654511784355711681892081034235705864071759203767019908566153777454624378686469651005609278680819707982336425222226382297122177269946065429208685204077112937345555558361871328612112349692314728652157523076039334938475418058160181883588347724757361592661880132557756435718948091081025642073447920964680384608370738590943557645653806960281151981953130220968325165003306300139115410264670336351607226972556122040583878239183088591774212145417251370974040968473846793162782515790190953147113922696270375375023523579336508841006934442748830341603619994598651819859253929737313060479945032450879156643433212850851679258799455501783429920126057630184369466103200393451027455701178573291620845724551750915707601805554207907241363952725079163973242263611904910309862603883255027742421206446922640100357508261496228243738078740026845918126283364341455085463333290228501222370977016703786326870276622492051380837995861739743493004465148009996717984745666471777521987142779866273937410322746412093552770914757142024035400521594882810186758458204913388069186044244192640322504694102096104729770166134778868760001844194778715724251206221255066605053815445575096659713772641423064404932126821635743240346796991527722011341432160026747171659881264875134122968477666386137907769679755933043652404505322878589007450327350800263442239858768494663181849390293313952076844173086868494886328027147160724842824147825590271849988804466511691545456429528941267711631859671402596892716024645770100817913588641390148769771214031454555094200980451057025866681304531973633400414736616237121524030790879359026293991949097514322689166959384057156681039828418350271028168418930975793626396166184981065031386293297083722990323386748851578687387904033940968293662290314626837660549461689677959960837129047708373367975364907660883077392891422191800631420005039321090760901398884050016116810776152603637687527860176320031724699511709853166205139932930402366268998147566690606426982667147165234002935397554664011108622057063688969727672017911808906845394403965824861311502426993593340579530741046203307263143344956820418904094704210697686560295296973202389787263419778691966239976872644054496688617847716112051364463314344439661187747890550520442118647263997586250818125123975526714892972527806252661478691131751237692103915125024397832495597525069035306623410045240609895863843503199119136684374452366337035448427522351345823358658095804177918235726958942159586395689011783166069332620531471727227854443497010500535717715287089647838882842942673980594918186491617620466741230632149477748745099141074673261473523504448674182631683782240465998782639913004930475157471070195646571146440575579318543743890267597988404228130638298677415215667433853775131362233782640494436674007165918279148128726062761211414553092775614072714827130507049564267323824857206862361251585148476641447597399645472802527589993385171492858442481992701173242354331664715355644660607768807642429479296367011337501695454675012130130114103297145383529971880785609624639833896713511158344889909468705784922664576496319839761541261855844184647206466000833373626238946138886572432956192441174287765794150612318155708065120882683244992187352022775378852619678248076667664439643009084632328843185822824213866267022097340797354411357945975872673009590910182493080741388200591652538293211387633599851770575520063001306568530800773528742860912998161864960576240713140357622392212518233426414767569026181005017580733454261815912650093981275734178322693551270780671054422620893818217993368398237532708479838877323504524067850810410108456715784928236501291206693320085773367383901190016462723180669757373617495616709492410349947270872432063400789256442269599987064389265637741806930105199800580648963312278244201375378506007828215977475448897746216011332795789999850140521168272007454884364752555158884856930341169913510490392073833282094536531863978130410176744752427078583994776645485514106768170490077854668194226049262782844759611535386254031556895095771982438371805000614450451144302591580365895419566936151655013096853118845264424625214740907519827616272359149053630118398813651962956452401974418185927379000801851725226355728966926292329376285031669591235448831200950108275971507815205162104024594391042517422667291599126703364174046653436648886340481850524163138606280293134166999353780404639741349843760342049294828163032568864649252013708859664248306969456211653272130295528820401440608690574472924554623792581074638660799487335424974786195417191574341570486723320594319812974300409419147657878905018223486017242760815267867936315490233938791503897633557170863286060816427388400221523036007171623208979631650755590168662615449183719234502046035546866848867464003611488054011195987960745970338050144007033798933076154280021491960665438432931938384490290054893121960072620862009254311127242524578894193972173541728407512488886126314679263667844434051932664208316095703654954876512254635354773455205882597691411370144692620638828614571351190027809257757988247546562509738222710118936904320638037227861891082451118848249901429769882995746869911945459109934505171159304581635479881671604789462325209537144773731701137556497718575870854089955508057383718648138620826928940141347477699773283222993306045578664373857332980615878883447963237074806258565807935345977008966419709699261042979483805483356180053099515754368592904074614470486331077475160402524198108667202264042834213974116268195843016401598552453944088929242964642239200997188116128772119298513735060009339487199257742654647645850683802083792134683951522024131999440589041819540241073054099390176168186129506031376897918922874180243044250397778525058715468765297496104434119847361190359024971815294015224268615998904732508671049695443146653014078514572069022696673625049040367217751179145079096061864704025858056312346776198052970906279458908706431210256211154819482299519545143840631932912044755525141228511369739415742695213493875452982251365253500445230006739275979141816863754346624180482079700671299679383573908552761604494265147705085178431187115621846279985044361686628446504391293721785691770027159519331124072853460257351429861032935572513590539234803533074049232444383296277884749950361215042392873979209335249803931343779904094638012641236107107784462650214797573627923494893773683686735087861118312796865662317648543875186088354629851006252350328834130595369853112602600502403074290708006661798838747552141086757348190973500583106124832221730361977356166665479394054167670951599222597599076445776951579114709733992967339584044163391820634418452076388547304244026740386139528635160900196460932468130131867922056221939250642181285427510713223621610220388089653199259023529817102711950743521654405892962315675612057474290972784916457128314382295018775234648439429937714596403648946766568926978849459839607137278166975841775826688951107737820921233983449952126810004903043253009450686185220248756384256032030314668688473944456353913371510375682143524192355598558024348056893283179642738318031004614528099759294449149094983738685922667682043945522146158024853188384769544023924855595779020851685484080238058262869186998059527426548187314216309760208370651156803814886879160602718436373162379291576087193520132771350539169749037453162742478326713255142201829901753767749273652950588627164166332908753928609879786637272226355446295198357995126331484741583921977402048689627263298960098742010548983655473363125843182103957694138873099049039060668781261241313559756755187742524280322665101055925674831598305737349079420560348343343793743805801150367343178471076485764175017010853098055070818294640073055042273057091037150334851971387079469667990473446817208895158353049620043026053733261709411484264923532747794190339650221223907926033858153755075353323412910098164186881850063206682042848612965516781588547222217707761743386890767517329414666635048395280122778405786053805449589071142797139788745374284107595025704533330785798593187650057033736542918773875495622534234273441617241857578345670264360320876411617990245407523853759455930331951513801562117216147084923199938460273480788321308493993771953321659022714963074704915652533989258083615592144447243662511573674145629936605192460625542702935033822268095080737207967539770802682254327034240315228188908936175971731419722065809536713160149101872217980214007785876844293304782175092751490570378930975805869365435061250669903436910703281992619577339283183822528434636088043061270829609348138694909096363476825196855772599892351400225369956730191566408663866525671779333843766637259382712480117306335847043226819375393653839875659775048352561574428946484271517297140658132922148794244230826761045685443377777579700342137950471518758044400310681531513620179949113242447914048462938513756135915282930932084447493642733327428606443792460556265169834019733952318648097941978764324969097558822591993291423196348324191420386310701479730096097435297847082371623688562865941243972497615666269992473112513601422544436459060851731349033946047979163538474928594199593679667561243873487992717472921116102953329410685791060551819677357354174572508782483452848719983622305331249149148116622248830347010773258049009548629218688948760586490762203925640157641378799402695908132473339486213760464386844476699251323651799859430639638579947973472874355575946490064627771779193833819634332562963429737991479145991317713054590127661992554420017477778552056790136065478323698670181724257921723230636533767003543409902372434588781451296825153414733850700055527174286133097397138287087731417535760979979571243323007320147075844623702252192263673956684154717258533173163634094852082464171093293808506507316893607564364225953327553182383857482519169074536681159461624869498601242137331317968460168914269537068279883075922305827833677096268659056689202983015378785148418191300942899221003828294749057373607378468019850130357770833336766261080367527543063190231426614861395453324741606850585850418053861839871116721785067675393428449776984833323347274065788521785400072427521903046217826780348639150266356229291597058441415492150061099213737258399059893523078184709302980591348869726990651184295506855340352487794368458358543505666017441817238193108779216131937300796456987855296080984576419156922060670021229868655495118251587507668345932816488672517595705394113995888819487383819163738810320992333487426549453020923939622946643956621869480242524420084640094299306024349794064679464975729187397535620571787452241102119773040731796765510801438561241669375170309594701175879713925893454409980078919469238483929633267051214268358947400136233642121436874902447297784775819790128083566011066743558366611726785435872454310012776760835636209135772058270004542666077963919118851854921009775407930548233489492233934039265628138503321057235893840500234290314605777794962260997034228569349838326045326209156483610004885326778602057288243745554946728831102943314439495213539572445322631937272523011326015731310514353752670231147527655789820754599521801959066353723685241168741057450874681848679017868692710845864648178050144077215517969662352386675385695056640558130658292018004593611633852943666265398844985125755705629140191697765942882729982111023590051113108694337640340925723421232132007187621276548109031461433519161559602045034001547531286103119714818038741392704958388083013037055791197392694963831304159561352009107337879034077741814272466630445139748505272324067049263591904701774711141269761832928211992418445612171452152266138433511402918194184078419237214478888338727010633905776624456210678748512941162972253602160354777776007126815442486700525363630161484459906902378497799836921176787171982030379240151132279894913333241454394701515953810413621227203575068985820243066866122701489187031251285069456370512454746597181873098764603215883400179599973112908027966849049216905894242507115941253379833114357268815950140141685010721271558041940768709383337105597917946947584527868124317869364862290546378232882227346843124208893562297152194894381120593671015348362247853746279418665318841904361772814648515446370817418535806336422981442983849621847086529304217067110813179098524406429442630608697990364850185258751136710257372413441649700889555447794592188552156612857060532166105781950701473806336034867369035947885325415640644842668962501913536066670814679946017512792862573008874560314527024859186697597911082153387349171927283351400520476906562996116090739517949369471812331248193426718492057678368622427458942714937422877834119504016149002166534470572975924410490289422114294552942411705203631596624097059799045175322715836348753529651128747201753331347726744202763965061799611083331517695811173669529213191107858529987578310805608676599270279763496825603200710920282611658699058198772878765594423712777644289653119657998168187528581469985620993622350152882689267714009579675685321693796545737012429139088629068121982261557082366572009382452773934317156619902097850962853058722227139924063167022999512846564703026653794669756090369609793544147791991744233816405066042663487986755655420224418974749595439719852508060756606344453953449354810814571399992619085868638450288056114498390591442454013821459640928350856221730360093914916169375375691657188930928177648242123419169341788265627170234934614700319138202221006352135113050222043149206874681285275901473392227601921389352169502218430826385278341288233904479564892573339895866752685790282285803696362228666885703012245269784968459354666492158323136923456832805738993514391584732247498594031843145870815286034353327105596574193992282732723556492725413041886160722786243603639927837646984010455956231983963089975671544070483299458808228881473713711702806547793474879419587473748382970501799640160616655408442678647696096225798203307287490923595733125088378590079106550029902434490883111623847906665713728136361480019789969534331580537994242388155446809396543977438402755261287285766831686933438462652731679839429836086182578041372565300147222845751243442618687383118194358902843198706680665431410777891484421541987585866990548491960191100666906423428006702214669940386576317888849506016545129557058155996132555676712043505242313033961627898593843190458780844022208165676778702903458263394655391407421384196528065641531176488009347082284042975271704006371986603287799220835033597712835152286188163505408699745263316980296191886341202113113348154007894022783942525476763971264220663696698059801102051345408278192344610950343235783315558194691991741690715485210696773149240779425323942892608586071611904636291186572505111010664478813664427365142152409581870958898284699769503627643284995051044440618210235084087003721807008416383640767059681980380662789053279565911342248533936682988900380240057549035052033681924820678427489477180149986106457209128221715739249045323426078281132291205335382186523636983780074532938786047802469421689475018056304325146994224415974398792015881814130418096670823816500670939425776038358782934014522115671514855523246064329851020231740427752262477975287823657639371149511278234499476018761500431055751692583367601077479326006342799156379026822399621453428240798458524192655076145981542890405530892030654583232306656113547784922761613143451167173872011238085336271128540987516653228425815862055873864081874736126439908590638759933602998256624308966150504226885792089119191617167939237204371595535155487220832619309602432249432104623244521910430647840419518107431336152990063274488269178207546229962560256590000929007464990316640940726702221700344039250252436350624295362878543807482487040395763209580134541151021877364069842602007570690082696714233685128876237744632328544325043754323532166678656361557920139356453687713126820160367399476235754020704145872371475436702132478424700076988958073742256379472552537516145364063595390536931728318458607456399688726558363327485186597410108854786718502637429315518494743563374069210378442859057136397089095088887147303676143148992098429608850290434129212411381610922905696304698625699743233367151913617916857871690911660988245921947198504133821258489128902213651356022400068738748327160695067250269209494646223205682083538559297716770167936222430134748844151011985581174856162547972295552989015312295065247505355714685247767459597634019388914306723739451048670494507467072425358672548640652218185152811450409913139869891151191103363141179749126940396783445288101039168091462328576586301894195307664691893957278872062203404764927980764755350771445143799326987776742095045228870642539611733274262392623589822989017540274523699710976310182765540435009364272132291422211446909085797306031189771036445895491898009112043493314764179529596393127682157570631482450991805855810455874036951304832531463968311011250470833226896337492693189999205866145827973032043175359679333709760563078548359417038539017625838750869656318157035878497764102863657073687709798169020371088511279493996442535312760441870436614135500573628812278517108583064268177835067099804764436842601089114690357733549442340420477510881251564842077670150802096526896296513650735819721975257681681624728200569509954470842889991971238256346782694623434325225770240509827620531083873488501131284961530651888192107876892109612643573309026885608561725804313986922541811854869076142112861926686165374025912127682554152423188919028838552144059739450201321527110503049420819160750549037539269179935398579905489936491773836748259495145162548706237755419574351979813438526020087124425936209373785853923024003628733759321150423121955032967759403428951506096339417541162029146236910438260936721324196833410953253852630523163607795601183237141117494116101655424390715102912694455096422232030759124201179979508646229737439724329139535091120085499782484853973848275143777175254684205297177815731206822669047262150710863888378627990680174033747042284211850701801235175456450833629095404845372890339622152683406802089640074323450681225090332507176016556267902859333675860362131580539377880881722265816550316980347933699615898518582458131953402744691884895051636154444386981805450549436816390130395277642271308387811706485183890283772654324580507857144364703784077951582676789878254156289862387261042124596985395788105269525669013971133226435554373412743983267446806518077806756105975771687569244971085860174257160434400081618140325117946968698812303056969237107688944010393129182562924075983091437074379840569285383513965067586509860235628943564018033888276187447082308846217739255369314441700378248879417835475441156670880800568075548880589605889764636135191282788182110217488424663173095822391457014924990145663883694267599706184976564016042314570820190957303406187200501463756992276696948230510847454980410145321728373447602686663655766810276731960710093595879223225144676041239136035018225918454131341871062102931484837492299782222494105891379897068466110348400278750467690760203577995915379818468864939124891544208526003833731855281071680884497423301457795573936759505374476670304860031114319951616186842073091038170171365606140473747032025635687793618732260100744763826466900575257554463689479417775846406175726535728561480695679402919126361264077943970365612958579487048464083402057663765744424879843416313347788934431778331301555720642744254584970344923763081994720349370138996810873088708419977389495315064132746195761191163877373125861384894883030776843177448877266646642759251114655087806166627891115880031225760553057809226541113149098103931649585026862818501963966346319369737993651175350273641130930997160951117796573357401420165754293202264755106634909020967822116737916522846441451454853375604137859412693712409680647486074185093558487764830731598556296445402800546215849140313019754220636581015445251455404332150464698889482610912126672825735694999351022524298907658143053703969590702411095456625469071440398002079396084320725830243714178480868305852170946474201580927219156199775846318264279494398012980724418167644361365064150286266456689387745232109566894489193196780912597246290503837665340741527271753116933585367704999079758645627013827223788536755549145639133253095444563167689911707392548545302227388865569394912224520599027210389673862740176987965325413281471649489729211681056197664917943189745204028786511834563589508673469908163649439406778319797622489748072660747077964585012668266295880966358374677431532059418589501735793849486479690254255700393447606000342658996656799875206023017216898797130188225487532527784017951833549206203872971341114365676022944779745130996131846447418834725802764069802369683244673823572841425346686740532345469281230542477018101020465675087525679767422492611814136440458374116020986285331132973761988923016914809769469885180410720212522705842872957001053145616117084054913370315192556380206889730455058028902174277019056749029188779509945975078279313075213096367488064266500812248994482326681024967141836906252113236452982080376193712126869691907258813268947026619756054307505862994183982344839759584399151756758416802235620731545776998016129266254099524381203883765045057844558838554789012720276427589684600238454348453199327709331781854146664621576670652189468939448999990705863714179227268528643662434607134487616485833301076644603599912875155413909744881962664472579348503872159353165354762332744345182786008424094401250702627577409130832981907200352489622590829366814420936297053571737109536307192961667452700567407761704575777915667055366592684086784070399944673359190458540004013543015233125924889950421564554629149318593367801548863815940753925390997780357944566134668409650417331847965673636781328687959840902080753558123543632528651778046384430047332043388726594002004412175505254399507498834265990260453932086441849820715953971761340858630553689858256139622699825004714554101865303175020185277656245682851652796083008652840602513119230572799967838851065566864666419366449419939379124579145140678533365847527230052122424166912886347790709278442291881009237178282962080706815918726720726576595415795230623881893258719876059299923423055500765071814837756475318510919882667435774046603138079874997996917275298362152120139478175087385571998029769122209903979566723563385449649054972772222847345762750820560581032669809986165866496429371989217312422541420474074848009216898517816831313174009147226272247627819162840135360928136594722779294440577659745336013372183090283420467020255336416403561375247426608749235627774578723384040772259925588844396300686421410443354086485980288255801275791906113747618766801829756920134117010864014426827395754918283722816474117210149214714179115090310178047072778837397549005948210711502102200397244239656290604410642527305526397256803563520471958898779959343350784509669718225324895637683805722923672914883721955875202156628998515346410057014245651138514102944747414959390448857613627058867924653045797772417071136912613295765271920305966033001499944057309323850164203907043957553137372658980170110454597802504660704262612003580318355181388364594991906583684537484637356707492990937630236218650683087729714206337781102327261783023321224598123385138001573076585416603915512943583614386555614472713819703562093315555195893056802136345847942169108329158679799490019719005308672045554731520673452802275688506368623000042347410952564799911921357472425463066895675115262338568590360306220639577012601050597494699783068577144348155257465499244845522577212670436208783566133596311950591443293875308454297755380417000757578816287306208791528065297721700987414399983281758776433962719035408330577709157928719381261254243573504998117808956088231174011749919983954569162716972659690964284921835283490574992186540415817665854840344256046810958221184247989084511206588098351512437976783421830682336589701866698336829161149577736209632073886384217452965174672896544352142019045786382411768669842193504301445002250489950311858995875854177811156335283410340860726180872494059290160907400821247373006812625551922930617569379336309625849719447782277324654927104823728698255026294975653784961104148976093908200958165444870333649922345453707318954224672242573480615082898562842527129888635856507591928805250883798531917594653734754430825380471346907028968305464648057534725289424159572790179134262597258687819897879453284045953212659871164278324598711250700592044865511825371301992622894091115045761347582184454967174075300270198394537425449360485511178808534400648880025766564089201901095793010264348541242165223942300426948708086264025743567302265328067857127275546192117394463657770953347199167386270666211156431615847970003692475410698905687546916126464569409269280525832758028739945831091558743165622325940775148306916504297479148056881207712822639502836385301354626513372661074629986193509102928370538059060223112366170696342258078013121675681431274820548589940543910833142483667428391450165992656741173912220476201437785118670915001962776670855138310492574503861962421520205437931075429654478398533509032190956625107723492166821853080256970972331327079382104821256661519598566043527237741601139614171509671396867581674412694460969099855197328510947687820119684935058663131543943419326392991970668975695702823063882507661029770445847667043337922621640702161669962173469843688649468081337037847400426701745092231316829981596846596184801039555744708208374551078950357417897762998512180297869337915907777763307124830254441096102514393701934067459540914701552689880183598455772724536687970452445215957159936020213239773347517177003695256191303311190160913405888031824068548868878587046469417591897169345622300041416597303550288992206426587944926307107644271775700917794898661507902287384324962952041485855258849026516247999238037287678852689860834508176179372156769307941439640434790909557522266450033326319173195988767288300278093450962522602348164814238758699088617026248209186516839731799471954712828195687245171092405773407801634550579238725201283007079549582964087357543903156791594696217040834740259415392674431155772346543856236898531426413597581911547255584541563275705162037239927494972304116925388805937300658100032996230630932959112017712443878269605421816356387225555471189008090750633261631290310990269170753684309479832498432501150565917863532657282541630226224913608058936998446395383758967958252168645822904479390302218302515902887592348177000066093418102594708031685372310065013353311687292000059088755318869221152558723247606247155863707404312020036897700959786908696028781748897545004595400117557787443881184549908570284140812240255675839164600597338563677396016254037307257272178613060534508335414503343088741803036973885581828486012298209744794578472628835130876331393843285794203104963647854117575190607550787159832953518077556170174844146525889758528714881081601736441619887006077711622762280902358583511187959466836254252164582088933393397377428102190366753024670270512003516305878268835189692198696098209188669752362446320985012432598169585897968198664184377605553423890161569628987421696373152284434610894019396385862031935603343467804152201686899681238269603173492879022849315090274565756671101821100269856972633258022645775783685884601603564366863642908974125066899282086670304582547751107688590772158873957001948315990917893621313997572812713485033433362790756033956126151938495716884767144611526467341664671121461246380650979424486855278331809683261932114098433218019364001417466794949128024027507992282103154418372438915804981637024587719643215458678716476321718419176646999408035397238285463812600236773690430567605891131373077352731237756997843836280148695110896682390160200845814331915589761433639812388867686153291929948967351073919992160235680306731881691012192224685419552438849027931393112061856740875647040618179290920883363837155217248891743068028558508174219581275747052486658688860068519424588537160870688947245027805671586038942920861539581852975225181325101295396695734204751363249493907380399243913628050295788902554236228666673649815913212010652419845763715838782917378328419070246857541912433244479313988902128144008007588620331482644474079360807489119065615344287939681838303836133923672789961092445253172115834408226677806506689799522516277146019349127588900605572629401562007520462790433383032964681077011268625883485642268025688937562871893070135689092677027136369654854085432260956705442229886227195873867162172934949515373715555408321086443956588678603869967026754648514024464203983924334132162051854171305090409566876789355491300063279698000795535119060922307603260026394827070283737533807502678358203518565811800944886679726557652672201749978129788595848596244040515587891653471304071433232583702600473138244230918569902529383846591974865209801998439585785193551055444624985399321355374935849645601182718028167752667350507340923207618512296043145150630436682314389456287693543774246885513729981404504242838282889411674592001111391443468030943399768386554513361488127759422482456011895098186768997481625996126467310078317202956076180552168496612788560021424118322385467866532815989852963980210881639668061112124889833644180289056584593965292831431020803006696968637743353432049394845183696464271583991128526991213903614215932080956344745414654100846241653511364223377513915548813153776644710582573453644258113136759552292777293014073288847025072047513229937640535627182947091765432375285055670689747946972804794281325546308712903817379208533026553968482667254704789618236736609899184965455226295217008191827655154300388455052511547132953127266443142006314133047049594404939911390380597532984404701892902642294526690252373390900857338251704730316892661543197531439984381753637540454264088845304296450256231821680667006201382361220463597733814955520867586562414050184408651740231638648867394962803042594281327863912767852055743896052261721607568590439620105950709374885381598333203782174275266745754412259954413038621397736907356266597036801213380149270395155040500191150709628295958001166209819881249544573953421367991935000171189682824742024424136828953024444774118811619175683594398188925489982249498256141140287529984960918491886314540722377604420257480625012866817105806307664135730031828521469405670896212022214068114633646872004451723750258134794891189061808398949620793747525662245580929091395462587088341067052968786560196289925420131367465759392267529130298674024960356095699008325432338071450528431410281962982028796374520480563014677857536027913355098004630024045723865115499992349638219946612165770492973715865854550495339032641301266088960723011106950752597763186584613937257237660383062840880966794470598111249654740822842415357253250204755967287978496570121650732942796542341626692929027612590127177486994933425864700210982209557835391791244825925052092652406407338198498462420420463527827271375724709249904292666656686360197005621183410557425890787900827064564466392458585161394980222840561127229251897533724565039266204820532725722679711091538235216587546427614312408101708429179646078949603404516376240364252997760484234676736951730996282574539508269199445356569795335711398570901983487170553599194433942308560965712340873319609821730272942785233661361379526347087928425336389191683777779308679329029028875229475285056102229269721119189456443211745410042007376348988240704794178829318378159975878813398051848602239114403660616554527767608615729637909960611551936197054741607945010425518009134836269198696171183159196249877733664232555215170306117719761994201450580198340480378452419136841183177945386639761528182357663262895847427164545219194284436431713931605039234545782092879683781518689807299581521889716321675976279927619871600615382634058069513364713163192060145853241707197227379613699352695817978476305444773056009927314741390543080843857458027500040878709274348664611057625664004320644441049496287367265848446873182354270035680584932493451752291796591678963596074667206949894114594752352209274300803530011188469138089611042552671361264080779013776554805736530329049636998116947366955669315198703155564957657725469456962572352086209753998205271783037187541822551576635596117647120137745853076832784894803021045338404858915939819575718921757019709051738739653746247095027327825198279114064699717279212998860426995373022143676211759289325902062079325355287638062270820984385294184137999282611367241674552676721830778893138497820986145891350813381981821488021031982078537181430580994863975939649016597526584413766486631650392160549282941517782161920835546947293446668935161131966865999066407611716872461164272192844641239181360621522939505891282032901908486539735065272578884884354314616172140622769199954576014035102936112140681033591244046878867264188655664236956619189642143976555689789575983313473947331313762680114780980873688388944352305199409518349592910005622265987367847881684463040834899844662530159983205285881431973352495426682767882575991309071655662128609551265310909545208226092136217319397479430377875199622708204582289299596555157357876697011336102437150248140025743196887674833223320923541667441844397362092586303958221796957448864137556884566950845145559660073481048537716170349272099371790294849775798535903338800487645641571854822286529767699239468325273881209562549970370992658092718250563253997217679202454824251295573253997722820156143892516225846223099447961470702754838391348830566696188593096417267709779384579557352677482325288564845287565423544444572005114081314700732581827057171329694246230369063963215501179213786540585438934728553436391793144626895406001820146578477078354072567410170909917409867942047701335510742238444180894127464707296108630768728062844158986612426425555728925672275927547086258668445139074725120271832272539249254127114583629964145234090742797131716853418996003662339178267335168640864119199878865622694449497806115614064754340530690617744095625726698432394495002076807860700923775240102288624266789411384509129992706276763970251542391673557019822698440124311265728135108467563015784743874509413362037023296814152532452461844182444913332623516918715498442459462480790698203092039095411138130233842998926974012437457633965322623255377700628974946137659956795501136121193986883687540816647540519765354707121179414298899549729444423573656054505228208545225762106308518958902980077118027939274535544384672757585902412659364496837124131487269196440207248122624975854721593385223808973153861243547766469879141981732122331718222367611924857904491628063850129973204640181422108828459092443743083152498752979850366708942201783540604741374220334588379637001173380110216356351629858494371216879953999311838039228665394434575007867202691492498646366976053751193951386407434246444819162732786954321663243574476411543209805905191710595076722007110186241922029137217755302003520658206826629526490226008583541199775980725316543019329005169076352344143166951192630060662916867288790954858540110921375268438728724591787256704833085280552245820364571387633160586779503622632130185850661372783460437105556062117436306457252025717790246896263700005960067304671048452516039247057352674427441859953349389878243804968991608565702629926370364531680528753214480355881372107103570768129511851099569770796489190943281155154338102044210360426561120370388866704838366582963342103378134666534573727776493372783252759242493726189952609958662012690689754904900812606236783078540583959322038812318066288916528331522136388781267176373947752722681049316333738236174149287465940047995278374070723520749473491187204320722773617168299143734841447293002275813927980764907424066559613359059720644507312047135623613280461810629286207235175512790482759540349060775840509321554837408914893034078920652555740988312942805243317466162716269171085941573005199606087151942953783869792929468052112429903366605463536402748283170034290789255419230716895525790212628686461422203194522115356604918763520701748888601891897910629473400253481312563815392121884272427148455723216388526866375035476989306751032402627070000803252384553988981728528087695975407025579340471330110117074960629520653641030248364101607396033315461892361729055833852848857934241172418906112247922437425174844885055757125501853581712621857555853135262071803157231050494206336295950379755321712796260069913346020917076882470766190883957923748224865386634589005153219062386152350415399124838697016977075562382922454131240238051410134389501932016137210225935219327722558630011336546385014262754116292862354436736331592602967130101259276480106725834657350651233923509767060305731302724042972598917163376799670522262429838151085137296381875408018207294148259502497000746977912104600737712402465815854067100596308216330541119032716696179947627828561010694551236276969491485439784017225635851171182710658554962496649500774733779055957145234195221072894413703846496561076583666110692661431356630366588343301202780944605888263868715064074079202525945349576846801987541664503590060046085324132602431339308887754880615748850492596752652598081359025713307170211608198765667001459162961622296423359776474183388519933977101319567868354026638609670537178064762738401899704766343037229299197869498245666922105503919720419640589459924767198681580514491952067832730111631364706003385161273333883939980049107817198432714474234183431829550256617618444407667737912995514128581668219466280815486864564736955421484078475859317532488149665925285550961149158724310663943960986312613007241802291324581731566470087806228865217245916686228471478712414975382857593675260397896969962027896635963927095772435032560658607594732786260750274723895122538115536904492208632980220473180670094884649015062071711511907190862997490129331353256767593899344996636568961019970911272949364875376699291659476013696289274734979377024624649000827025947624962412997776894891691435277172021228085414365537577606673576109879535251646614067093193120547177505072260218111802445574696345048473355216129443959368240924003420865012837365472851225858395094300425386034154313756704126447738757596086782803264090152592505621455933762255291110006537210457408458086476647574577700939662105378587150649198688104386380936160277848807418327840803047015167984149845337640936510694561151486656712938243705600255171637534303258293301195271341525921377918531185155266008400911876670717406197917368972051314856981679517693929090575281561630346683438508604582951247054536429561542971434252757666570682014485627152582505951163109984708789156337968827113990663023329347280669418352328805920539552807223367369621056282924212732871271712131063352874002967742693059108525723433192513573834077121103301449492780872552577511932625975029753799534358550334702908627342849324694603569216089068633660537654924605721706917167734940401018918414606411850122596894350553296440731028777891371026238635934800096357205227608624113587723703615879078138467734653842970816776133497885166406164033685605374772454257393858563156250125608683051308942924582448009283104583301998886113542745888076150068687904161191032828477748969198502957318512827552269461264981753150079890706489208705983793382217343582047651218267595528673689356805103791684305642343602881515929381642707420661675844703614911354056145764490992513758745392345974217683221033173583849704684096296310862742526372652504490081357781648719066983401424123168436698655151828890191837842729029414195907214252485083513650826661616700358551400898477919602607113537915734291343062951648374692708163669928676348906316162671933443954042925063061285727288672341789881088332066592712695119267369384437503844247579942208112046571810816871112002922617022424407537174322004061489029633998635798158236620929136334484001625729672062652516611449728442684786430885040809864187928138856976679731544417120255407009379893072838067907394883986199518422151825468882892287542492676283615616721330460406467709127702808445969422918396452007800820777273381320771225494578680124055052236132031000136422202378729192656287247583818428950316471594914255622678623909137654686329521525721970152936636870125400183644084142409822352875721400349081120231846725353065092657944807970349578722533521556946274044959573163219794080743333005243889150720400483201928884504163138039431076272203308224855707986388226567807034196236137167201230006046177961710570454233417316740694637284637859629622816248260694400800363099172271108550759580553074171424008503319686612731079989762716731826273313749878821518803424196572409933532508925330512816233908653210970590152789505962710476774645114423954715164636446211358472490858714969729995543285057029324930981459260599678024094837991303291767009770658502966868888743506301651378192556900937431287492112684538426506527845726970623791308833442407422534989577487243268116455825666231419024418171801131508738879354762562199252532840696480306202948377689004805471090760708429558406435330622644372206994052473398762796011325178791997694803969330554984887640814730505715734257727429685958483428432673104764884670144016361303591209982165934973953426226112659122071233039261502475786500661409899862770411148231984338996234867056893130594409763487279048901727311404637772346467937685484522277178507543858755559845849649245000379516261102311748307357522469240383440247648007002495503856126784229971927330743230551870137070532632793199707186893319830427405107590574506959985620128533705729292975841570181235949123086964286177371564761652533484273485672551236248275499440128255837571240269115456104949225080455867540269913652478756946689621236592138133302299182099411879362649423388579804588072820523635681782058202019461237121457260426162847861837246346766788767219231514889547995988613996911749587614313510529134374927062918958490934541177226352736116400469276889865330113442029071102715620034984054386218081371299942962942792928630704767916759560561564760141178707158849936705338904245223301559129835012173770385897261737651981606181922402313031780232403781714540744176193307990781331594423126333230408009204916439074206462426195618752063302329943610304182998733666386366015487420387354601585262085361783320474184905966916325360396664750318577538385733823611099107680325702317176808748684812902013517256291562188996500500509684270866558601078080175081814224618306958720522385950872290839439313001748453275013119250176941220955688755897816655450809547775664166787885260419552531545360119364377105041237831340372652044198324482566421251301139646217343244679637462739120283872584163525809392761600775827924726553305749168610440207537614740425571307855811165819811195213225739122444801666157313907528085744505002567535698874920539638561551155337890355702219184547699988296782678992063376758356912652341820452231139423404149516044975660086375378244204816537370287574860331663926554974430655420638166703476449737435284161126038289992664987046180150448734839768971063193800007825774156643705992387361945663848506895930239738070879229404475716710746888461493204420531197370407941891913452179433905353252289094108348313891302594666769710118461279182903382913571672748534512650062309537279762173925910339500289044408030538917744056541351750172759799870349862689447872817760389302588962248978971467516529217766411395293846237691967454888306055009954665958417500255666083932138342759745043899685379444286027076402881170393423114337783121015750609276655831936602107977550107966327873244520281126927535096254249774583911734207069511084442420640453711863145576885485641716869654142942378721070805870263833614727117337807770286445164017685839661025935418071210082562778132436069586812663212855614180607470026975007263337617955164086887381210553143697041158685532508272419462022570113057983598953122253218197905734213750993154424070298823173787933362699082620280207974017131913347462695481197731776685588020893770850291353729049815067702282102703235160818070099505123480225598307439949126506690238678480992513634379459612059379336218661055204553858312762359363011260834402801919669324962832037531080936268201715884529661901116988850173458969845015194392443061475421744857295761241448273902376197195287846830831570780591961847185661598670636022319126704290768486975196009619573306751963363457956840351431770567078422759222567127036091385360740259383804264413622119655434971172013396566252630249044268783151489508858928202971857466282538336805494054916263804350947158922226073303244699196639739477593598664814614943639274665165446167754357911397297563802623551763549906300113179442787028823194585259744999662394041523427034176064669412710980459816363453841965549269440701660520438977353906151332267240963509243465310003296343163673127244881244296344078330782053951532389350168577606770051163508639316215346854651055354071866941293175011203344365076555295358924224707406608489009169282663163946325421858911974445530763082812027535888376111847076617675323566324024298430825937522828490340190205782631632081057828367087915867737538728007332873731512476511475594679026691765691187060984393119651268297062472054670394625002016090962584865952829361106544086268910800877367469296615552005667752544667665006952874284180547824688498826427846275512345538583308493945395831306614354903171912875871752063562096630124174634420457229663990081937670691152457442861243108135084660535246088987807162573872373317132293639104521721828518544515297129346813110902235635971614241262591226646781483447512656887343245844695192137622309271158927180656078926879019367002232406370305746111244968800420605851370747890086921013664070919074720832689229064185116477868562731084436956488828269857626990464801347396552791376090629230674049830853376595543680083113985046736186636146187237149656659951762379635677356683234493632922234478453281326352021969612858763729421472318662348987718494172947947198035438930574771233768282050444048501780663530495294215656993084676248337955445064170788992103512751216930501253499040720508190048485358953253254407539848649680376943307535384703504479566491906727371820708872361137806741596476229160695433862813360883338619203880992555788012917276317951368180427561524644570204103053122665127531013271593070542378801288024541711619246562587728515244519230437372086882304825323527933468824724746849151695880684978401978303018044043721096245105652413764132376110311813290284856503086368038411441438880748991117642027646252998832176240317017664105823584652301757399696853627588672675316052301354651535509132267323943479039892359857209424781339252276852060224669581364129128870983273986342238374427851793297154420467698199823091581686100129213964102208187139447105103351694922350282785238890544587455527010296514364330812065677090531223254263660588185636175771309410662177053770905702870673614433057106026550890779682993661007260326263610813710706771735502279308659150114811341825289796862430015246468354715459485952625111106356487187669354642795438028305061454685951017238809697891698021696901232454780319069480791402790445320461293899024058210138465126270914766991246340545940714064800033105117752759363277492208999896971556011031062392698519387366983135989616393661227347215924450849269638934505575724514075959726278399269645683850740485906275868953720876509539965918470072220058419979492300433539738773047723721179382401529413760995241970714551443284675492194393750320173085970022479604409733919650816177181567832090995518748263940595613276129944438664806580828055746823711755104333029829158124496291151190803105500736829939042417081978990922854848363740448044766950708440993401128130105230057252396574770263327420540325889757727494850383484131921061980367906486648955472082841688089173836501672296437379295655208745162975424130446907219798327652551679069445003261618745480717345358124948601111285930180593450243821189107577605297129738037988681323380541813830291838737078552973330539372397144270753344269002327210525296312784055246448377181746917988754551535589891387141684553289583980760178073135432354600234844171833468123519708949829061034876716089888884419317420459059584098223102386419419142766956090460365121774306996093502945424575329086256624042403077884293161340746000202816708541147155944655895816284074795948914325238633242118593333942383327847376691504066047963810064986591250726556915062761659963753356857100416042061915995705472576467053672374170399816539396611635394622039712070872028542532176032384721274201821323017729550979403493364088699379028856073272683441591026871291476358883143993633910200131249432088877248663473942085336731535510844271365828417311598128776457753266545231681529499482113166914762189670364636883172886013124836798032321551466839046432547656837085373483850668374493499836449462804941702902249418215225989660191278145672687761897800962953288972542290566685061081666450400903627444203717943705250216933131528851341039499187577372288443632492756139759623479517642283429436508869571465686716647214050545644782207773628807016548514227518677777482546544776252782845466962808520732769893886500944008267313322079968158188893623504121361383409021149578873728541536066937657214887839126972130905258456038406605010068427749640146127938523382025772735988596403332285596912425981307789656650268383364075041823794972181099828704089222869524557826724441503348469523146894770450181069289453882365358919618456393777107889612307241152448489645966251233377951011483582619353384457110487286789886404355451918320650482443921891883234790214625304950372148252395351125965475026512554422444049646803505452230599005727725101898946801542849519057800124593328992559619323333993355431773945048790234537974741633545802378696835704015384062600663910870042233607239968884219223102928208321494185383916089824726859539864430878265448370139011786327568735416377807989190305180458820892410835043055888658373252393431156864741305191199939999621683273022775851572179639034946958042162370173705420972718883762956496134185714460624994375803637468468287429689999501101523643534136437750352382721852047149020200008069050126251694296686431839380201815581106121874141743617016547121211347430857229230498337688784831596121805017490993286374728506295856413138748614919148275479229072338698273484060343636349530207236043960437837599453590604801424889446971324978683467045403705363347986809832450343900406830979427683050208415931797396172137267330400408542917028424287548342322247902450122813181482694870180847978005076717312568297003567167863681649297095970890505521566449381569744549603617344386872018721032793527344024800778736659291776779000608433307692948613922824682214432085663338314625136649280607463968367080452836338671586193781130324156039167140155175208153352135328850832204018164821814208416469874390970442866668381800448305499102445176498566457762624151806221437987158436477579785692054252527615773697026704814590163381142506672127937838819436832311475162907058524440965290293597400782616677582169756459543176285671246148164470947057633141490436858004757307208606037998049893788678632136463011119324340238971819180545560729677757647200587604791798863197758421708457684934728945320183335655796142161508241262265898273927767322447470643094965848248383247430423501034032424521253800926833700929407903794852933591867373136835286079248035695519231148026819361256213174015334472712633790123141303933355162810527162871932309494380896494933008150895624236140809368729453617184824675022881452963740039874188972666223462630284547226031468206733763786832121656333874353570669922345415827297100084720937194681620322947226263022044944141010838137589014692826205060844842199423404313268955750023481805996328745793327836596142273546663413678701387508868427997786577581707021562859852949069002292176772321413708588965617308645054694086249016605373267071326020520545049019433996643077464663661103053156549888444432256691244976462879548413830225798771691619510689105496976333497449407520895367235956122165711224208042112287576762313902109946740642282558590622743879487870311541667460189030414006809742407491786007412415755413267483901177932539409734431669390931660897757856184929190288985305500567594412512027351507665823727775208171079910357990824789235630044455625901382789938930511390756091195276836422734009279670634689879941982142475219074889404324418196781562324679492169233153877177301022348643445096945645816976954076483827546215719967968767014444341830718976053838937791963652434941482857095913560154752864136043848948345329327535099888216430560360869940680376835826040409804633181522133200839085282861793063710352236016846419953277830858632856880162539667725110974387166370517587915906853147905450648703205214962818441023293700962126183625179872924812518880854143550177271296565497546441347261292944685129485195242169655976246103180795397897067696576436578026959738448096305728728255580622030963787489485256847475697161674674485518222835679243258968589101729507813815285415040803619239425173812983390216967951195493296075548302901865184902137688472180135047015827891547307381155008802120495505856567009700198818173814277748529060987016298214377510970638522695384084164556301316582712204695474239974620668920205944653055200059336834224108072655106075231247311539965602871391969414234422206828255587033540095645360730085349441658303078562176388584461773703407117786355526316885278618733158075431125862862032539188689102954409777897539934292099678429419535343240608532317474703838937499040780470747061007225931151069687068184627021059835876625234336137651786776578081530411097096066778694088507581744441544801929760600140649729039287319645556590974725061384030843384676017967096522827243890280938238450643906321845044848836631569818182668614272595952950044559271399340214398844386550462740462923035208629130455912720915091545944136819733543049055797422816826624459013131105928869815534972636623862358190287742388159479378368336566224281189265434853666606654532449376722869862471739728486414610191127570478315938734923481916270739664283920114901747857997450974510677746200069615650174251397301447081263760079837074010681038347407908377245900481254456063952321626231133076962473036791772145817902763452347815387274319998011094049064429529296674777380867103137134719962293974078065319720797425216888793500546081358969694304966526317430851688699797864375248218347406579752488840268702561965905547526396362689512558608363507434963292593109623918238683646963367021681530052109019517356406669610274773822039935124790152410896778312617899564970157286534864881913224987985233501347031050477720955130345127410782317068228499160159510229975596362138610755715207207512635868182112122415296810736134563514005234224672765445983448304671130023988896329069820602154584523761234570470751307076664519732915204527897128461867991021166784337096253344194307728109757437030580596527138195593630024462361057532957719234031003085653397574770862865478584940878726034275435824130158072981184033601785358702255602061261275767746936004221166938869189000854816880450156061082115450604753339430081744720615817197082697841957867782880621814737452076491111439603981708717597164180505165876847935489817349561030393832294100912734409515924165748016980917086461403489165450702761754982174871272337513078321308771429666586918375680187207002031806291284959688922962411712704308473302163069436365652715263315647027631486411073030906415687002943547582347314460291148508887813182442905564178704612192173414619299087945820116016426224570346664381685627535533695795936871908172461580899028286640454710990624325749742569369077575050289832105040236278215349945957570401771798622710799893832392846192650694799501934602244678053918547703464540433473434859515209165478756453132936890006391761463061741717512552447323686613560900057884292814001744647934868370302407311946381593921551159940289836025234434561508847200639136143935411769236955911459932896322572768578254760613150203798923336193291418752017692002779210290774027122145680920635435497519464751752511438731679671554615696786772786600354876660521701669820611298015372714972754494167076998386570354795722273172397937956368186053395332549386920216900923629666578593885637250094980619407715588560552460286718360631276599523829783866314208123682997400026180080564407450396976631997622876795762076429968224854999381227095101494432963112885718028961401522313789322953501903796794836491461981240869877149836115310164132017787484068257405289508089190692276281264489202756313531823535232781254735708009553498707210632175557682093458777359122220294816709300554987610701056221778079858966669072060767698616929975870541921577808040268220240068348193451457768360821538957002686956195608468383125407961114112591811324878550029326203674109049197750599288447870267320973547065810206981184677902037560050302752391997386434179306411755615179750035236263782937504108724634306279791544149240287912651878389428543453769622670873881327872108297166949555878866905989526774159838859446557900009634644869142110874462167330369151175882935074460717136138775324904469617412108321149717466772728199599816336861746389743549044395610856699838183016887117526555005506965056748563428003611745567937622519496325484194436510863147645026765772880195071965331687883542041897484655639763105718154247685806053812343837813278978836227483656141031326183610658772683848061762292487040664478412431391773855235911998039943393859154084612732994692546125877877980576846605838867127235753654383628033479761592541485056568812115457381781650122976539166870047022951162026569251295608256559018486459709939047215113711068309918494173179381022137125887792917912862912105691676533233216884813801072170550146059122328022447100562076264338830570701646992886559792113081288104957359597087475461339532871290405102813416371299277125922840075820561947675340715947473404557612137658298457711232852791544998574473126342524688395040728821587912888947516859922732865971262840838401955013433399606210378541752089405006416284986272118375991535472498304770694210581507968245764514632690121989854528294071826070442254800000547253569695908584219390018425687934188178258814876830797660145924910066514801235510297400718301319591920575321794478759390805627465087138579773464603045361055343272614898531878326826956369998344575207959644075768186264123701807983056840529934858291944562833990068784119186070970158098263644989784633434268266412673625766731383126462996808521212276853962116048047559090606179486780239600474926450190446509008990627373109689080206147684655962098039356777951930815534331251279194735657556879600964870610675741790415100775101866984117043223439739970618513952910920179599523305756828820237196661038569508284343705456113035179319800771290399804515334064676749421488470164232170399127193000014184048783786685094443118820622309105678756204162930923905559789561575628496587734888074228239569102975525148804601358227718972236596360092363821052619359537733930252092097387039868147540543684355631582600110964119222638814087002864873102469366309753333649606676537002085772769851202382453409302906218317295125166848231253243482930786148759397369274666108620144277274420987481977391222048894775616480347568506698064061110614343661778698062005550418590377754914229861300160541580137690802813809604547487444381938673577723410666897835031424123627692458094893986084215821095432471074039192991372575510982231226616017141386444073614404576578952377315188569798501299791925644387355975565155655951959252894090307593699775226360222115988474401705457803802354106706300798136822609910941118700277245989905582693952839054408568000143947653390808077559520454880903827610603372183825135577259247619332018746060194187432824729915463216149719075566822466584442585646332063936638521286904413595128440903875200873087069091667673810579597534405462119886141537100734875860910955041836462873988853298323668549195967190417425164813689232477949056521709898646332519034543873226074878730733552644748895828200286894078705720347782084573988310198396371319955733625522039934001720820165507900019494137863937388883262533279265786347705464913856402136063107892284352166451787321171461196040757418057421012079962844707873637452686868835496704172662374720504072146727786039733936693664347936602487834263111105510661629844471668806943789058831633364920249563201234678940832461977388825519513693469366510736619693270201973384444552667096359429516036425268453716477366976163466864546331664536955599176926637867636556473896494191249181187026379042287980649256496128912319969766018621092566591217991421430907334412637547463022431679838887453621612094373867921734267665601359235929432849335340622846982751059311454726092728454685985615796346307063860141730185802604096134055500351729393417817938575977021569729024154689028169387156286467256904816265219453081996650091923568496700684002474981682939877167873533447479350272241532016598886955518261388825452138618707991195232012483910915350361662454348469497860678714328550120306283376850945975859070705787804301057377769998098180877954194037045390946644504849945803084389916752906201788894392535822634492734592596112325263426431135407117294043307795145515393653226233782612761389985246890304505216010010225926460554132350681593466902980929984044209124171220299932482595578238357227520364108046442012017477889606674750963642733811606271107517736552090763334305210253637733196095339288440302299439284770798215880994468738654294534114758264367821479930252481314785004078216335901548228076597649519098290151080904515836829202885977589864714244408207096494077097635587314351684221732511729709577548464790502455577431708279071269078405746528402128484522582763307547256577474836905056618921237030439138634195958444750408539157228298586612535417110400117584810877528351097593415454738838576397892436831020819772302386911943380804023588250439705779378033260943696797277713502645028404797239656853188332699322866342716246881734234222797749895243417649919718335977916331696566254956850068032327928844271753565150048230343946988836011999512161758792755093768493782271477632249947794341215436457354951037834233211367657039568189601475907222364551175618919746247396271612087885173867753116588769999214361277723568484648176167185435539818459187159127563391554990489344653885039836129457595558698362501195672278386658934650852469175878132310265767718901443211934478569981377241658085780524497663235708923046601372158238552835836871601433338106355579621898996683808441423121836917689509382198195102246150515671948448241075734032861910301468120467054128398339777936745535586797561732418465513127200744918607255528673790199757788065524457496731170447524384415541495971346498017220533706339471466067463691791150615259275700230495199760962438343717093216423983788679470330035419232924233177467366408646975938017124375449976650615390780902493778827787179023920206924278526672949064110035954424179875967078939264474097062920343154387850574524136633039519642623372815504010273536653772374535650210871816500732120327008730562574635531222410638424164939615378615880514677408344948561730254007471619066477816407117173042731734007284155063549554919237014792687919683800808926641176826576847497800424384830764773079755698449420982593252228525678046704413795308383548484831707556827967138005383327731134781935040178164740776428514420367752133383172485598159719240629979542277820863584088120041180801135876521816330079224547281870212787467871192535556216356425230264010077464856061870203763349275884002397563346554912141220325927543408790396410971458007259886117154406994769376312085191458591011479873505924022104324294920472797952321750796697037124559209854598845673615274828079029170282949216117859034126340411191308097446828743897253012993070460145829612744102892870182025883406626769815713842199469279729368571191281820167680373890793494828850588133431747182106551362789314255729502976705786310131444005289325138303582834159479545136460564554470490051130936539746480467528378441415436671683987449205970291964136842460925406865504673409831549283668669091010597305065787337289613004447133146938271625880428657248172856717988414274212889352037092344842668622966440747298670725180748350089244645449833929948415963275989135200204548693333695866290319299725285327372154601205310497933131573625576301768663542398981792977786648612151404693508272342194848462897614428357451509230658591742361188841875750947912129207979948225187698238907718448339754934044169942724243098847465679441295757758040656689942396191595077982321669152568381499783562609851764520883594079136622333299150130218889030375605277183411677776443507341974944864649322200529542001667122646798013136624432171800340972119226024154368742158458222012770295192101583213354075738993152102692357700241694393729241582001711023561968975549966200252039866140428732447737176450072266167335585729390411993110760569425127857691679318136339729879838628070989741422007184548707307830748689574853967859107175388802072149567085714919184491233735497800567618827056755349599785776362938442267089783621023361330222104243276090920690155658735080053869033460784037559311831390781404484030699331991578146799724424807675865895264475788483875754859715331859414802364103193881984982383134499824416420220130477160716818775561267954348334364117695293359537104134245086255205723600060620673210571557433513889754140599420352785944721820173143071046627160173047877621102986903011724189957198481682073953708000982677125582846263287659411530652007906356197746679868886614648615832109704573474287626170310801134004400268387557527590083220578068469760194515843630238077597302063409207088704257753139106807904252133496009282608006707012846149713126372014027601617566704063814321136156979751825886686829432911623980630515301826942872970020782418175747160981234943217768262946773161130664848287704696985449442780244677159511034936700506821202914951116460596163415571920349667382121151194470613546588157094677246457145726711028327518262984493957538560374199799047664782546041000850595204547657030025257281078635598858659634090513025134746773396037208221187208839229039293564404588777464029937108003848039999116573442978164612207629729508725710228277116862267542170374312078411506092058734150982457099986496261295550406589105854752510138066453792295298101815939250276839763015929818365835980038511078070888673625444819113792890739910927352940142820727045103002564183798024737634531917943086052220469412523219581175377768677407083981611346284002137185563169294801564614712083501705675350170484662374971485164044529453933276048374559247620625503141106270858412281021394254262002868039283431899584724719906347708215448962771900373110773992291537475227340059891251012322697492912812751412036979231788021421443850933559478841109242245153976891226858152928871719549976697760482498186441894916208033974245961181159840291895010317420210553824398473203119602481644010005057654476649137426674927204616108391924356207403672675568202968293905551563763524503163795815423056040555536602693435113848273755220185431139471188095936941498276278009863898403215387104319056251780168063441525727608971765898978050759790784718206198699123461114251155358108631498335876630468326009055349157884426260975429933759172903377431430552457004561292674643195474596544611575545638309055954217533156700198828743469483840267275889316682007445304448754929200070572088685255725658616390225006495978716606199199513601851594608660557732547343580860594058353814695499848516321407289273022065363926663861475171068621588044910020520944868943629055676882659260833058837730890390110185145364993905351765809016519297090530152077708983417896265596485402225182147850858305143854713204260881872629525049433243516355857295946140992534233468880511410894143760578559074099834668569142596793617160049765949422168116096531896435542151671039438702358549125190165101192134335850511293349052015647967400659214474442438720155656813028464893493586849138256345041655070782992117202908911827377038870063090551725003197992433411247690850722759744078377803732876865120354930804524734215088830989091195303215868198884917979391335025828980417829518022952224764387235074363310256622640313643747789755585444314919211177496052801770149226814328634921569387304228051170161876430176108148130580485478668003394457232601519225760837302017721397275985114581442033168092761058928682661764849832663823346506628988497635741267406167306535622833594489418989390894629096537822940044949351170213345218550000154880791823369424539645662780370019551225200892751157108062637198020155427305227695122935230935048191439043387197750192805296095725189316289253417780216673983788971789654658884997542966475097094716660328134900249014045954668163552519307344452122436572249456716617778186815723367844282807199469483373150856895045110391212124242469562056253375614754261714890428018124273301310332947315107423347201430943320201188733155833973022839702500479522242690552290521578400878005602845187238727117396882615897903001247664979565378652660473869340529175291396310124551555651367800053087410404926634695961916242125483865730506310032156521008574790159880728219418208158253915730806913441602843029729502249256302279181763005533282897301542936702839158153789483588237165052225167758336107481492337782460953366125816227733408853039701035452234507727818617113747259928089281004665448008390143270739003810781166514988184941394801536784770599288940986563915682325183554131359553248218375704089985834705645662054544791452433354585730191273447854578694590473660834430026490138123536144976928831958663098914053108766746226038819702772585457740689555545371087095334533403303023450791970483319162495179390049707026416977198708644194976459297321637710242710857910776479686844331275125790408604583476388982318768097373745902430963943947789011932563994259391886761726403713138781712105776519687400316026558815874294673229023656973093517066656847035909537301831821900167174543998443472436247734433543257603406413658851363563867062319693671959079407443759533360122565171605851602382383321801805096712169670486035228393516963062420589256750415929452865914372498631222199170794397371183865730846753856544241454322117498395164002720328866368687115867427553563597694232162518211842060876952442839853381848129135260772807777102175307369282728906860410122061393635398498821474503244690292373163296063824477209068524508556167158516385109414200637680479899516921870596697677793512789878553160984149246892887665731414004160738556835152030829679615000771216990308587410472037968496465118115216408082323431361076215905206351138140531180553545876289098419539587339080050891434361459797125426272747878795498589561146149021441290738881014253183992837388256882867394017321387329706788310685883057733906088349449378849966818018070439481023384613147017643770944200009122239395904068607738361624150011307144671440356331102862251093573651046168655554451638455506176617399814751966437414737064203253031345438657065177940940752523951351079102131777620385018465856720686713459894254130455110898822588088921268132344239802812742342107337282523209928044022740239367242725285436302337150503805530679726338535670986252707631572856373133835086572842091666796418541400482401174876811988637721072641634700335811275016931632284060481023143785171697308123679415148524953366649428342135456384202672189997129292642857869213947329204842400642628893489246548631101591804647295032212628416063224228621998838789024124873842769836528237247864765311984678316017973048099642045281395009631605046580416682342026059336580708352711287367361333246824036547670218280734935899090657734084404073693263620482359895689938898466894559324259177429133625707885761053440285253478073990738488287479511416610127714490523370211836825732976171597607277332743155951014191206497171742824336320212915406895232315548722522208280364334323671549806146247307580547431012229357001527703371690470236220314020850215010849926941608977766792381787976029098940885980461256242328084465538380412819437969182354635382815951876357806799579372660029508816999021932204302993518480452869282864071544181692596806646961987896147288106258597088788384703326113055571774923498257979092179731190883794370827195717905264128975077303143222721689667967206924867955814307396693942263490564318681269601743684102622098017362711319250740565356949782968861171855064405597073133897304198531470396984323286417821815836993798962947424269376964093450625754013035038221383447940473661566925083081444220525202140976828725582136415966811846960918668064866211994336969578078475846782917101873208586323535800382897970922745915447574671678375102809691688056341280567883618688947369949601045831150599453998747251962852607354066897417606394368514754727897434848780500774229567391823166675907618390827753655585083582999637425083984962196830969079258285959243021780562982211943560126952735728003052012044037740243409458397562775057642546262795946011421676383128115915208963242147558496417498395739941980463845656971039595454688723328570320948185652305894453212155864387347569064885307028012816963173812394104793175609194062199678538741842297385250062898729057664042735250571166913119208976096712523492129843209455773391209885945396950490752658717522889164345757950972092946193833117269324640284176335730869530755864928472032832882907972717783837569844586425373479161759167448898033113475697559773808332324262906400132346587018420464016875154383753129416099249710099268988839615534436980519286664578332363939574504675520186892114006331522639397591686801049380537107895255423206707607193637233114243645290729189644273099851826571668327657703909802023933095140962465981302445041061057737854594062016626376001804660166479584281717137773482932309982700819212119089162322715843479519780997142961107828172587382459922242235037117586059761961220147165920250888362872902897179400589357692105076690513887930877275966306400586398030156471266969652737659586931207498165397913463523037928852717000499520339266362195820313389124724718748192493341938146779850893181332615138285516018738581157075073479736924844829587506369470833265683284171230639745215847079040330720501820642691682587322427022939527707219192679952813295283695060590191889279624950295310528566705475521054714294205376602502327670517273877664395165793413878772293397863388439679973930800856596971954195816113473358477909706422407284259213905826620337212233848097519319806867117027389369311349618721026711444060449563463933407329576511435985143706164111001181290123876505614300534205277883961354801779073030432966167332491845127776255616782495171107874443081320035029057108105895372451054091825764635229966793141569844938453723780266690874325373322445949352933456320770307521646567313757077882859677164759130638634336127141242285602143953530841619243827364555817476975099557335566801238225506200044070028170993383009800580602676748367664716696804455852249227083139495772479953571702605820675737440059545260770677441745620081194766837011905413204211452131220001051283884783296896354291178277555002401526484325474418287647419664537710444617674005273685126256032379920133327407351090849341747484644494898177658110317551371010005655049766084864828798708863767009613736406799498287052287602683928988112347970985962289593890285152624255505192035395773601820041967114482937333782073944354133979713009807704572449916490782468867900509679834965722978278289442619084722542532361088555375398459563503534193469173138063255056526019254021782074291001980861879476981809449960899710574220149926543262701281220287276444290762646065624101144083451118204316273120125091382897507682044233521435183648046392984786677945050839068359463825898894809289259165425655640111754347145897059415973101595243940293718325625582646035428048104452974247839559660970922269667215300289307129216338944000494485427788384265979114909855464656466325770798455808748673092460622204206935811209416660778838073775959730494715953331197495210742400015177007341069402568801337397727658104575107465313930386740615534953405180901351993373612362255284366117993065210106363150666689124725938688134442979579881289119294908915468276400956343761611996509499494319063560135663483908839721440926409343241469096536281585284507121115565896827205019104385783498072380281559242729843212004858667368821574353773720377471236974708119265059433164014561294531446903738693234742231892931799530157702748443444790149916474763522741072934853715155904118383012407915031799539781892491667381167133121604437465435309266761437701250367441513034905883639322946159071804488888067518542167085016913931780085529302549758775627364410156321308690903937944062524379738169343806938343154258980669132346404574470636086458634858051371005795165519493009228325518990306085117413232737623011931147509093407896605253841351075518251689501780164060033679028924120791391710317553093841950207742448601079804368372375744840065925486531470815028163491281795646701482657522538719352046001466112772823701934059292267446194814252150206147456671447790681041625927069254412723553836998467934056916895769244590324556999696404574705356621789095080909092043127888987285277629774888043914702658525930973036856669836705356401690950334897068374750094533281571892830441991119003197533511206596707102693459553750152218364341475575144860037058901580079084908555698575609852142462575877893422484321032295569058576918046192697130852109208851921705657075283763034001279439977863540270914883361407505924305779245728292872608912793082767400672982621617545858419478512205270017674899767773057098077114554312027557505972724493869859842518631841056183975173518726250373189056617552954758748213223128273845151969385464428630569769724477129802633774744544923551990017936130964314151359159775466356453783163359159083401005617461156157812869398166174709390005358969666934958100175123337220091982451642861660669185790842947276500892472738496945036909858166328443915180185171634703271867465932133591169197041798823122318651198014625797654491272933666553288991690886742722730114706751465270259584045688818439517743429055415236402220877867482774496058096379187900164478682842064040992822435722390931228722950130271519114864955434570677888751018893126366554041370816652838767493115643984303102717601784508849797262557948146952135567311820681881456293172927258883222254470437157746045941635427373836462258814351157961551282623888193385427058016890722302756078422199544715170358482687810481250588152674383461139630765462127894660987860208033559255166239441292690134954116976578050302498514155339105767969543710939008242738502693876149663792305846767281835634459883225585512102855863922803325571198098105828882421339534667282533042619818297890778890365047807977130006007181725645224619104077115176505270474518724125761097014408170442803069425388187109790046063425660454720872422517334310456016929778143063024973637599296506230705811061107321032144151932790351331599949179704894653601679685245150133930906000599918086146656858113728160413173964680506602181215003599156972930205286373127440947195214403097906650025055040848728363476985108702747928926928350772335056369162661782014848625910651450918104990184022484778590620624605699045939382249667256860650257889307266038762366771719548025368643033121574554404672726728757469767375862591031994971497089275737592367243656215940055146940369320667225439796952188224447326801051096592353925189108076041304457160871021689831531246190569454971850811173361957319189260905064685370691750811975689834771816449285951629765598151290869846133693525793445613072661131543420517093465125779953932641395703730554950308258319915861216796686887330598496768934758507040195191561966574926812580117501812469997848302904182561954732463790801632034606605975346132644625652753610525206111438490999801945269552298962917841179683646282551126013408154252529833601225301817535227461996874933439260149445984800138627068741784669314977752116353903693829445840050212331486073045514264213478827134471250813174759481821722805865497378059659764619899771350539419361472850246973857125439276911889301938189992672763239121360129660244984015889561824466171336934190740311074761281717009835111299938427376265687351815786955313204822796660014529373952941160797007403143288459628984428525330416977919381498490689129511406021085688257848251541549634292279388869415985218893810856877681403766882117152954111991935265520463980220775715953655573639582652198090796877817708124901407054343394903392718037350391294289099359079469291744089478726323739317863519765737708040784995558821678545149924663822503744271873712211611232763193027083423750963615623552176019650228614797790562618877956607969484274498425927795464004396494706066547473839735784555628543106075678667107488713252032208530914720098005960934275444932666209432435955547702143798095557668744899868316435911613324440339354407993888873349289503125797828560019480446550530733668813459298762877314291470722878363146940268204887314545130488283723194191674604882214891760693454448796377102414342559041383104570060829752407662486748755173196476535018280276191376292079199782110376263271388492841899938401339898976966075190826961099827331384486199679276800849324480338540649296918219845524618643498527713734228429959969009925610773983570924070087232419489664694087652160221857076972755479223088940337493940635197053011495415913422125634024252194824831629903401012240180375202575556717721812747495312562503728510445104797069709254130859475625711109597675931372075196768100982486823330026974414430944921445006268755500222694404972279182242908900628384942185643002372959033181314926093260357683044752145135899830642083797526919992012433969097747824218799548161417307734218659657931308013381358723714445112693394447970438528963460806724902724232581057867697875401442817286362612075656775471201734576859636296393796259718097451161363345095927229859556884496598666570694324927131649445007596063936623806369859306854697996040651254241010224350987406081425927618256074156789974898122725700431428712636553731817440396183080763577913331899869561289957593145947932898961069767044610693510194077552749489446732505825874980744639157044622192081730403435574825964241788836299190372046843328864678957552406669406858125011398681689338144537245220577846663047433602805616942960192685065809324331297289233292376446079505489534152536157843053593889976212562817965365452220883429049015437303067432465616167222593909884358831228984128194505426339734973598815294149759175466433996054831703761747696285480256067242025218160965623782071056839277158299624132948375251174058139132781189108041624193214654106861715781442778820874619768273937712045838387198784844888304782866201777468804691841479456079363907076003557448690937953184387462847506401221108807740708632386545161956966733683003866369765709967698242746771070715885898302541957639247857406384749462584284213039666440915180213439383536808515611996458196067962563460925082411884142762986922464360863379713507958600238168203577402650679977328677771232162422923014074993977831532666201705048111047874491844948349061844441151091438193030934033013406247103824768791179786424696330568283448267142877102721204050752500109170686368308809199616598453157747005121818207684197329246578163167099914810253850910591893818328195370615258989170158538075815883048777696914567153236738154886820310292251405459411671478648230532467082387379314431633417759307903519691637053582905385474748334910826970423315363897660119793877683056613490432828060884537420899492160541923485139625472148560368947779809146166030168607911853149818836757780076101993084931120648499550016435274949375162291147744223222271094648325822424696425474017780666148003063468332222191580230415383610216278793838115162386906833369961329176790600804117828623449756477876423745315388958641220729489430112544583935677836507257176367878346437669827932508210659087849666836039189133154712422844950163456421467090961411451962260181457526342778755241801105546832264119942588615688489983652139015453132234261208283856032812643640677755078567628690280871812769677659921071066499117718763048060435741331133093936336985620284021401916246313717229904426093464829683998221792081896207478362231006119648484362794666311933523355193098751076797602045339443196936723519120532939141029862017645416715454314624985302991138691221034773069911698270202821953015582289320470490674928306777636939868327446816989631972991969624149544717550151538469591080451240286321195287859442602060342463177753841376910752930838267813805861286888151952408217950004153926829085964227274265390804004906182367299517533651797138330699760601133579745919117258427495226591175418346534239946689519349241032156325058159127047977962172745305094891025141993439901852711734329038119275769475821038750160820615635656683824552881748227808236443516956991418814274739592418899054372345782598184564909080527682897722435777148062978157699413204486847171894777215121090361231548451858562633481418199785699856054039857801130306822384511352685818494464584092677476184239563148421479441164805625833652362130663448415763181881652511142615844755086468549944173689762978844041705032641589789653540828121937989623390198684912015843732599592766827848127419559417884855675226367366179090407002711908034374729910568533981019539459153630620808468528611415860358999580391849690503543827388713152922852996186417191501625735120377500469232617118412383893006666190167417834185098907533674486508448815152693383330362751223840118429668868411988483224458807114384055688871519573893103368141261926385995738908490381409300687572265041873695918722125015095210997200501390737219737590143546153873343525076481208868241246913560261033953180094201444811942911051151560837680253356266230496905799063875170344292615250829575748873672556392980733214467944104316395942664347509373036960126149119111953844113857039748928967922008229665162864968405295709503895727018859263959304610133230718006894711055570391028854740635419233453584423712478023247212870026872497080268090884689339290293241560930766160100441422966535151473318884146743844752405927855470723145055361174234908229381103925327942702523532260657634560620739870719145226798736256814965272540407739736868165707372468830033694696374033944789905236339426738948854144225052554571757860846187563387708289998407770509995526072848697676628243273556864980360878920562622907991063514487618178317750657044546511692197662532438263816514517714772180506043959348717851778989786962873527137542968336140746821653144750616450376036776731871580641876480768634262992615535832915627038404945109094135365043649978957901375876382621799634041534353027119545330013732360950861147230964180351383222599156874135661812401981666463656480592562953942441738095830268741215034290257801065034956734961952860442377167236482385247382103806093855501595240547297451212879517144456876050330647929486903153640882545827005922282384441150102989673914335568586529691866931270388977368005223860257886095577360419220871251669176334615855792093040127130661329829923744384582064174339865000729311044662916491835093434948617382752751916657363413712210149183398873368843172892981954686084934302905183490058888904365048514345868467837755131034650723656813162366511872335284114135569676054881449757133061355853491445568670594776840855801501083648368132702844370539983191026101280872494622880890295009260055437836775316514997621549184281617580649395172003231274445934386239996223169460750751684409318236125909691349363202864902398330684859470863184934376298962190382637365862363405026510427387768712190000630716368490097618056840241772379712783137664005123755403042976771851487088767398306759459463011634090883840933524253736534965341420549048698456549943582378434573922311183757376743034107942264643780333972028736180636969835383594668586254817427081111600935986006460467850760881539458130667669742450520008555546172006311441611491924222651041368966001630004661142794353546497221668406071544523609191190809088104217497387000659513939624774345347243076454583814123885876967388954767767032546868384979250981376914966419878583201358188250037148198941837245943102035886507837861362063108092202753240558625288397392713518478627073127941590424677309793879581811062342917783083252784780419480081253831811397230931465993881151357641831860696021353174346678385531075640406076509741958120874697038114858689370345074219105690106419890736670390626539994979458248397593843111895430251560197564037295808082145184208489130680488010573667989834459955139620639444538317987668775612919651610366916894716853816502684517680620835661801180865808033679957788262250724153244874544662214249180562518419199004875332855418423765721301070988603096025026537508160431290737911379284950797911538142822044825195988308658055247248191298794815446685138897763679808566922374198228691906900601547665274760882831829967593827817882311480254298041202777566498045450029886949730302266471331761076067252769324235276426497905414510841706049450432727145338334896367309000793036020313745866765143650764411568194844398042484122655040733985665154781209000130878707333663653567467042646738787428283752007433776814833131884608185616895157452421635718298967271347200415219413396128008926981057005899339626242809274507439756158122085281965755430177165951121071528035362342279411125424121204064800374113532654874974947466736084496917316604502660175385782784034987417357176149033881875485421761772371193512714958316481264835125908418871596714357046152181218990319254676704894086488635910245231690505657538630385477737216055729372424889289639834901797658167942760387285924690685074196838758075371415618907052367055690899484075237216916178785675309434690243738474227473892119788999202865811255737905956209787835365999049497609851130817838458161169685021668468539359817160168538201187086384154666922724751656849470760078371791562582208295780491312349729378365216295656890218458223158189386540410767966922583128571318159189298224486038057485109025990625512977684837265301467720684794952266679462187597985606952064293995630137782117802199017794525661952185271295999952417344993172098569784315492127825782557230975976946007436830945384323110626339070203930542841846498131790255746186515049279612711687018074668171530723798392792930292318240972444158638813804817354721332521979212425374512361567736167558761666313077129824197491065942931359074132341746708512266319126860283721425772474304537590502832411987400812071401220607265846260402890736170052703753928707449984607547343680063882406533900065100226419293173752770195754864801430103494584013475871975545755044986142961502909647069101667600670798703477156507170758237449936424883479564708044832295841808203086958477744198629149914616937257270446641820571144745654538145755283034610386894764841028192185754240065347501883707375324597121833588873168045706954252390611010710250975336133501994958324840609972851129258820047568684842208212176638431381647671632208521229630136385084785310764934039049223124910898698987924801168635234947021429648733024020709267348547009008760166970791353194297201115886869945753613020910452104816185609792823095738201422156115918948463384157251596037497653750875105031796487114848112423455708681822899871183512346450766291579186118292407652797886935647421371550994565117100402030251710865932212404581136012058248814281802639670634555261726999203100286161155605567396090091903381255324960286172223971828139180499994618682219930451819635723389129329122681873444870961109692762167864327467587536733646567117770128059368345428382433398814936201310462950102057420219289655849452939037823172660316659871630304952047880825089192702452261434841479961407924818518691342891717593016039308177882277691403527137830229721969193448507747011179871515360526534464504356747530103571931193513491917295526933307208690882600788658934822147355484085606786658839575137744269051386009704866776076659114705916974958440952925045690987635615186595703930694426972951256689174043975465417503556595289528161734254925156827369724198720856921769349623955545773222295681393425011138447974516000084150320552427337705300035192572351329674697810550429668280110515300072052844206559482775416429947204067982060136618211593974647146609306678415038239034974609940714144822133325849407793583162193661726242198097361126503836236910885531179000789386707612099980055625917808005473308387249065446656645408794522277741674494530141479619901585525478727234696683766641536657671139294591826822760263410975017807481993454501548803331406957890366784014780175551071345153179165465807984287071527277319877264809026524959219397662268900828302576678647724435164129286632949074962573221108598887290727423224036394813109568286308014362663826250557967875100427801593207971894140668925818598421067504049235351853758136830820774656244780750364577713646374508902058842662865960503668431409513292888307130897422191339501212459710930723639017272797799143884876445855833751919477378279678190530154753316639940874782457092926302043486985652802250208647746322172829346597850769127800642723209527384025694854965590867392774799429329864742325640501151456730835607186732759309762878065494276239259607772631080712130301278773336110630204804972269874698687508737943905614826527687562254429685885728126770055058215118223217006167605296791196522171488115645312507445913085149931319478759370578661919875754857156415614730476842539565059864891449206434076945909244015681757430010587501337196334257452482082187717252688427824941824129195347224706547630680549894315849117230413429522137138236077339672907002743509949706104110024372563644792916703372801816879264614119246691706489415411643056668807348112220851607461194019542926409954998853501705182684498494574232628081989069219191084795567449892942665843428657348352608707163452624118563687182176611744374868461621771801179412981474897829697674553241035061410935142473793395304052342989150086540778988043302942372752530881019173557321242130942656484416710281216527056459202302241344820800693752885575347799159029343482119170908982230927582765600656128986268263237622026086982204886351680846303914586110059067452330720412151072856123618679265116663282960577064226169652380034614756591661111441913298447777447744983035831330721708987029760632735763923085118541150350923203453302013272936139423973138497074380702771881259708180987747681584312775805505595720709044910705023980663686173344592260190529041691885497089900668614958926939146005152971812263554982508790670366000858899996717727558837827701274902468367908725327068199086676111250162121682801223515975147118178755705659016966488466819636866917870363352875952927176697721293870621761456508315775306669073066677857230162837854780231615454541044806030266444237275820793221510023258657776668843341975156522167862594197518235657070749251606933127901021991774351976127709683986760104242830516335532516717449878328308871417828629482447147288840828043451131417269841229577568296957352119392435787620971302694652281604734844129606366072906369438964722527867086425793654822207679317320593574601076896878755598419761876290954584809610214965040394510598908433415442075010407351206878581554979128477047547886901233076736357905012884078412462803470621029713268673329547248502841624935842425325814326749297505969428930353860604789766999315660875809158050594286672241151522172976035165091894007140775527282591802305403221619670191416494433054495355401880070971892754909789845549288121254781662669790617882819056331755447142375511445035785209721429645496246166783614956234299965107144678914622377827865953525298135446713102774808397973872693950177608186479235315813368257148488872344321413307863568187881977591407398054504812659722523386028290010461705587624284922999973877189650176002356286664548013048100248424425887892300160422693084691960798638096369312455789089481340939537155833764561909276864661850601782797835273151520213322494188752837932936034514955375527380106474833416161733900872950262376229309669137687848461156911347575792060569693271571417843243650658937799153944338933419678336681513506761754635064872169920527448625227783234388123644829297451413799487388425145624627103356921439167788507426715153882092536064334040996802530867269744862123993843174097428607600044898120920494796402313250813352861880558649991187152000334623678921842830211187528965688122485036604250826366435468162586272748524356537243320383733709082373921959543060721998001107660597142480921168186797128630616610893227894148096603494721836358540801842017578398676375136177654467248299242331188243444816289938820255015309232359859051671575343050273303140193560863298999476232907852108040378583699309723738553434009489035729010817659817654946078518131890677910997451222667409661671167827294074158893605175599442707508845602811367603383759550570644624036767273478589494878197780544318167257441714620523998363016085545603572311273884826653849220391098093811424547059865249058779677214333378834388940925383362847415159062325543749835191213178925065279568106252227753026532355095590120841829896213729807585150415430688345260658222302300932334697449018465604096448461708815135289298082993310798313002418177170505474047500630165551424214642454338786313335976273260370395907869589891872228446018257493113734943789759551412873456253594294275315268289799972558447089527430545739036823313044210589821259233164751624868131049215289384726551967947031650769867070464623974444825226155651591920517378708445067911829859223895760157073982421320622679759410270722235903121215302863346697338092317654851630965534412147274410816311931595904824887719978551887001054266730971586230827189587563949573560347318758688136964420841991063514530201823221158901509263412619181126553931268543641583374906500365779610474759768863005754431640929417015146255312678692204064452562225853190543835524400909869297597208563588976043689402256516252071662694583484286217848075120585072832220718129646530977134646889659595549917767635404681988559180745335621109899539001537678840451929283697394403256299952456006250060141952580297243224596315561376131211025879292127830719449869180449581743547951630683401049356724569591916085490229382460513358069228618203099367236847393969233541625050093902868388643420226813908511577488433855164232262686570978702693328104954057777171534551110890139951514082451838456327048142575655122188219125007822012997278737337076586298059170571364467879863895393595389974303001777707460238902387054838203451953140113906901422241560231850846801075894189397407311526700619635289938773499472487466092882225536404091611982336103537066405058436902147375013885133039953695798446369941309012221336389243664111537395710123348239001308308047078448180837398361782483334385948486456798700111855774358359198399325448664488331151520851155153857219788296251288391465313578769908803842860483262592522268882326736887021419245633739913770147128318429032335830981477068941168055039995712735718116321890322546689537971785049606879668008095302228173046942794187655329018152340550332509561666092374725415618819552636020705666977933856027850999760890377674150057227786215894503915347853091258356674670890715610794452943752740522043740069179260692597466543292697092406495039034227008410331683358289399107450877716100186695515701888040834891420325603806985368188342706247087814758604433966041065963729409753863165425357181054243636911735644400941697296309142113770601459128348756672996821783723829069566842506963647866405528711651970050840001189562019871599067958392618218896930409075891609555037888834951814894598420926713502611137147016840747811669196972856022759423247981997082412931423530157059117574795516794208809459863585147385558588001734066139412485267740038890231238705507477261369646950949003881258554630949193635160817179662234409536731004766347559752149098158029455671613084689389152111514215281556165528684186231276238713570422713481379558088839908856990546581575220783377774044126483534106638269745123354401012501688411162384809407804824827353946063315105702907730756210442198993302542454951602110808135043543749270621394234516865033725729211062685754960580034245970499434932081559445688820438577548796874915993797199980968479579644033755355882553339740877782835019373847076055883455592177076296407000813464139956962694186310715188087960343751662712448170736960034712435091169882646958738341961550299743633360595272914474934125999764476863076588944889346106098125503464647292195579491133240028464178333541040341869821410444753966879314494038064328746114032711536443229251852339387880880889813397117044877306562136373739718797621366537772152812308541932435940519321206023073124765045518659884678541352512645553300057302492610736991166240277920942901471034206628073120602588354472502258971844628346781987274654869860131258417773820217045679283748240826416068486645784133950808556502518659492955439220889749619004993111200224843528455634439839311941354847093523766979690174776166620864926580174445006035093760078457313663962728311870389074497341124780239309040063930399434745640646349167724702067453716408645850138414555985478543246205921897059946096892242803812542207098149381340389370912491229433223976877021717678102739826063690136451807685640700362930008182882850435168915386193343057403324195466327509805839996755504120790723545815857276086367218627957757647784575966180022440215809906887796281669742965048397666914907823716229841874634608937395216261153493767649208683805489015870831165511004395366758065363307469077889673406896941927334281861879557741928357170295708863412871620652136878081751939217640513461009819672419440382552341174446693795073512207597093834177301012621895701379348340774304530280207849615453136378259329022959354776343133993447962508822683956606964693295472953771382025322828312249859671727898522094120582589393569850598497785579294193018313565188136094560428049738632296260511638198632015393046436543627922136157272130252767624728400244139276240832446043149073439197901301705869390702527930258758126362397151328211333470634059534182053600118261914449599936950757860726303277645506398467497542197466612083568049110278572997961662385603167634032554550069994007296084174936726830025794505972505728283961809199915505219555182872603108273055962691299099857946985598548961507575651818016355820000245731850788021188454459116196032817585894606885928654439408980606248978247255797759230965753838851145737398472103539003664502262134802133374767051150486608127351938748904226181471271479328956969349127754697624611647864514996099709264321454391359842257938944767354703403177737531298396858751447670440439650014303357037893645235205256361318995068222761164889508774500809735946686324825448118776360596369568491100915435015997036619995914280821124565082291321931102835842843926575323387932783002516476069300252611397223275223345917803207810937365385774061214843541465162240983203465332587647602465521575890882184409260285468637251474429149141004470275658267252880297195295755906265824540764284996088178314923801574289526766089639636231713451321841475642824631089467198533405887854037275300942221468244116371975244714282034166336662600209900167677415064357051352966283869870015452288610535810324834648069649359382927749209050874137634057253192199364225138101735641472088629808547146634706376805205886656460389759586921067521184778886954618725065065029974134682628946385046373432940485148202252331012970402162320824502173265744306744792455732179751360989242431588770876063160622384381453154777212469497910842676457496562017274168173555824575207168545188743536766045334758913217162119961847910855576401748444465767493564298803864803327196296309231523845216763097714148484929681495678276077751003270303020088201102365580724945042715642333238437356156204651784058937127647027202984174927251639652931878117113851000351038060130789368701799904168637313391080727253206999514837901990200590097874196233901022982619445895480499151497504614594654358170263268117744946300329091887659422209448762741264215618028359274740151040597948880774011410352422868160533414523062486794366501082253346972983558088141702983862291123202157629985779659863779500185264400167042937590800976438643806305461143174435735530277467677967496110605376898140393390419127523961341442106666222886653572225789560751600289969930611851360555478358440375619332438907250756831355298013665605276458992726823990208240110870375921100498767918035249973981280137918624186088744111594318233571886448783494512031413477088991107621818206543450472828029939370758597303763574987840706375300929447057818003730954864882353276899266377052519289000519906750948421734326805322943940790883066940387705970224101463495852615789882479206365353313595158316035681970471127068279973544368600448360194723185483322673739727165795229474737417885762786404139711796191551407369951242275884512988400818522340185316724244892351369172094777670871704717442775752323227911115749071500977831014285791170115614273273267731305124044886055743237800024934899875118676731166738112839485863905041978413616160505726029645666705643210899949547373913516100156562600783127717817491896693094099595443988487662188250846507546649231649411586375901198012963385049441527330991983933367299998967022100209827198303096638281013869455799224149024452737845982433795691591844080462838330533329399637285530544676116143766328976276884579938029817658727825358519628675606117374472692866328067817481008611568731884105502864527339793296448501475841408124580436379319136973427498721737520075053227242028150899813943665795719488103671062407529171747712280968247514254903096459528728599338615764260811390279736854158782189920258614084515217870247794554380194193576858487023325278569131040006726748969253924993897523311743225773123326340179356605527591575217956909902118809613090354922176590198407847283201733005728283136182206297373207910119441593605506395975917718495674699502181726951321139580328158040011022606460404463057377437432159646848348613044560207338122771726663365281647277505439325101793768380104591193231718111367653274602765019799593713814934625048565676355010649827069814154994951685132986580795193330724038908641783634530258846266642275528090569216616461872948681908524922601009759778295207870359448693034764060548670072892438052583872358291087834016057343848402103205499423376044677859860653876727480779218970308061955240104772326908967420402273322311419992819856724463692614555528721070009204638810537180993093876912818463321517836010033711607445095267414738695235250294197091256498792912531083733173255361766182368486811052620162005689087245311967641774309578002997573531897936006637727102029979188719922409931377909940048648773422431477807942648173075925032827620494935470352170171649310565374996214437220783604771666916942132661443143060103988808090301233813072329365858345383810979836710352123569061168939992686408221728029986014212311479502425988687594835723813554861786079426239162770133409041470465841146585059060770769113603034119255470348859625648093137465271411426885375914668920266750755804709180986480231837607348330199979301020826959642027191852601737848787429634778065614976623136364308671367361532658881399466960209606376869453602663320387689066132761614191228872091208343064540733729779642536319404260282010010038373078958245349872661083900279875881393942176601702707200788003660586060268205469497115664892922283827408015658376293122063965237712268986498069026505478206012953231189934228928301019108450316731327816283569236300211011280601936085487233627556769747021178241961228169624168253183514648336063474650176843361200834086182406570279554684741894255604520335764717970548124526376089950489828573804075500399014241228172526748314578086445958508799828537943973764925053597210956511446453552054203752966594782578369154421162943324226485409724219216438989786778179446587928680643360553723598289131227570247044911699767593505495389933888065542607254053168112475107937614513880857236281769082706333155572305634960519751123160530757863502291199562024714423049066139437942890791535203358875177549444579524265089810422273098182378096067884294101899615821805327835557485036701483521269033200470818357872225437169951542514582655377469889168941392134068010025796045298834623940191004606594449924658676862047984625825635076892748462694017439740124152353578435886883872571077359192449321613543499608537790775254471675441019164786035553379377777291703567432404769680614533056347189421037510493839906865648906149136941033940291069038959555527251545553502921067201216168196917793363927412469861167971982008162102930456020450621245307227293799017444766830872373995577894720968471432446097135012415739806981166964644007142604961413723682283578464126199867228985372166718115744249927256896431687027459930943817323456906911434065216621756518669945013479626861523114500385872110249482014637093297612701803621941889045035075303176021740663083344914208146822163388943235803003535553896245151480939903609681452308287067448661468114845963023883758038209689822046051887070765407206817126700941604921482180032218104259661489880689866775433145124167239545026508614027492606433719256761715388267901466850873862609591788871082072302365633242834999359573454482817564047337614087575924620141958094139990236964118390872213235467203150835977667411035186853537137700404835843461591434947997929737000584316538906615262905835281452783459765197519682201487683281626530638541977821438089518293104627116629293817741776523798675132291807463996659771939280271077686189233726570278623196095277583482363243977385929340476223429140352845829632758962089800906212932936623242506396631526848329134551430712673061576705386354783865564814539082930840269322095970744919404599174771061331972239923012437758807828543580597627224740278889748169438078313120930563130460814072384823066675056269199440370262574152540509510997360253250603599988144543438956660251862228764082170286703603546406670792694401066994199619099964796113240668454327627291006804462808400498850322209789097975313309572784176978520831713055332717579637671121462520342086109535652048701647153587081828515403445410760252391700436314490834879629880226389683505690286382179006922546530418253989826995376576384342990670808827079883723974357287040501947953186087828729802343862293182250447465440241871112991175993310277734544409085259895289674307286096792081433546599831974780935711447501124033580136907193207020775296931108379764853614057388707438885928597547825320244590182012855292365505319881029022436955996158004433070274144566186434577461882795367456938727019170331393478362466268697163276392288974790765279080789963779658570945009185319849371602523641157957033770474927714687071508948633938982259852807830407563037265277786780115335652345695486878139793896008337281426921314329688035535474005073470341697207763931234143693104095146403678242878888312350079880488102834867054393335252178232639774996012565157625385647552376970318738079516513588087996002072339288106716910934217806813890278239256297086573973065575267288151345901129303548889702715550217066469383623976859644726368134835015485308354321030492820938546337268918576839015502916066932273935050391674143719347510841814083655515810831829078228786294116633453466931123717437160884423563160221618370942946996269696939934608062665591798324688453049648091560088821778503530406712382646610191293955912338154624681595294357014736436148055228888040783763607116135905186775869573198935225032312840160393522021648734699915256064577233658178347079756812758983660732670121637597018485155203045519029710054916162039554703857118531907419548249474978104530786818602645421786729308308405287821673803437081637630531932383719376393952791964425567045304302634532277245284813076920677095140992635257217343588718851020361018912561210268236935034248433099686062380178744491431955383696101101207269723500055612902043992702782158218734713283410593815154170198983898457744387511543083563881213325034191912730565126909193105651273678427255651802226038052326717906846590996488078148425959799718491266413589019546862027487942960773830869361074967043773911089051974335611947391994625691328279265450376453884328824730254210661104902194049035138455239769436019199009388334621870028991628274458369980256483300283508879504811419557932027846078164429449580588720998332890133798815127484486814276078163258036391626345069175599634602166737066550747596770175994897677710322841194986618602241422323819575448844510120910095216190993607979141833477920524852387954745077856281552061200407871282822766189971289633456975700451924465587046445257295942081054129751295343071640182549836161156873678547633887659465025465359799463632360982994605377548175179781157697729568480786555476760448722327448968700220531542358233411246629389111504347563340910888421479554274801165638224109679712813155687909948432801940435268157804633573056414372251013141629666897466337936153577392116819838872082413834432546287846692084752022389003662811942382297374833552639172273133416442451851976857031725762384325572615293430189783754140922022255763534510912842051700311847167564012668568761087175066639086197047608342191042528788605313470302112297310883492427280624822318208541770305656357061000520643641771779832479557706241538353429584968141196207842350830182730109976913914690509734043385912775687595949377383490002175480504925704779780650178354690699866240705418845653208405692577171106960743712443414629666648192108278898830059935772365739371243261133376968364511014478347597187221220390093598327919720295010991130077292415893862895509422256784843440585771912965972149669391948516543017261654269556817383289113288875004588013451375119859993548367175646265168954524983530435538713962316992932286030304594733185109031572503431358519137231103309852166227852039229873884101584101759304314668090798169336763193262393549514229962846041351851300463366557086174547939542539939590045891226816007850951974719088835701871450407512456142761147723785215475532955313225622603893097067451755960102333146711598330686811801697850136991660786198290898908959300604697995130379455316286001517008517060504211076959356255709102949338250839185251826257042576666205419680292440774369441361414745598091403592353121944312423999143972184181449017991437561073605273039399800856554194125379632767277571885482170228944341194893876778705935235583030294536297324943990501727483776655403374495078301756265633989635733920986485216019121227140501516675324121694950548353584575069979953721461683890196759208034486738703267612159955778426874505851977269673397720757003482902503897048206318844015929865305532947929332948932402769566618284576748030036794705291369652452181495605499112165089871257174509015155876561721023667490755382678320467770400863214053551427576488853195630484347034260197822335627032281041404177037809359802702639887733328015391046083022546411574684441026024304444842779998481609107359201960094485721420827351105324045885521435241692472511037843813775823185911418699158515358321934724449460106231281900858808607884951369935737540236715195972335697499378758847315397834596265555245960479571215009641930498023482999037087490188888258736520349541218025917719454816604497993278223554515367869186474777698712671453323611331268151296455936326236323605622311681265499406384521597357197143651041199474784876352956060398697678455968148481741379046515189037070186550363922960282126494743581122183883190115636117876614087263485198263405599253089789966597742206855253096300135363326797751569851824835787239042988064369092539844547086373448475952658289422628444329819745573269312089439698375103062415058241666029743168920129987993435347533681618620862232862062234010246623091712066157126935233973574043434533049561679312926820865746311562793738520273335237156447277553911950691013977721536456300968592647323639403820967940912270050188312654566378876576114197511341764591721004511546299104847941087219230481883114012320606189329493213660935310907693733928779801058947608911705530061584384764552825242993537904008207843960612275889089566595972000496404000421340673106115315390185226310842735392879059331633307901097710519592365083026229745758012920228927635612437455009973628435578838422537961130209958982509355719775247360640248867960877533493652841424933219024591819645067394816728090328177299479877445715829027320616855745998095185525883077031078071564440862506763250807480851413304523506837223377345252129605181253146910724491478478350192056178883055999638553355700173537566219619307893701567823844626052348716193805430738649775375216230497463869714321264458859226425488392487096161326766316307138067550647954549015017596787825784861849266897230673259139067119217803901068944913988620926838032618812618685055396967282599053380506179242002601907283810034411264844427733825930655521625807089855048701697113961587385960710246030185423739859808217182679073939689109491531443563570706765258590108063156662997448334895727561266440642856777774732811730964385029740744012767868931746157300819824705159540287820386366838028925249145499349497407451890331656180279379546512068878593484956047273254151869595230168266716389072509551243093265316646960341415935714064502125137776691524761729953353965538060860170078713569359667738842891164978434836067642598523354826573326177889654968203974992504410369952619452250764318402645532995659710951817279998739698121191184073588274719432177323158791003731698348338551785954410449808927412697774836009247522551693279717859395581791725319724493463875061200393931425509195371316408451039570890167866918360777595213942947467743331799063105586567076509383276254912867908982902449730226882283886554345529007781496807143787450398189252651863512736963438941337197204169152525133531149051880505404584140650872217218153084918703169727333492512418508794350298750595195903198242382253877636671099071089121697232107164924503222866423195442779742445952878542461649806740504379648062178139242331123267042987868307552654199499653060799051887827548352888212572709537794597590970495888864278306552007722242689512800116455244814017630328131998806551147154069982134293351910555025812451695388284487241764155435779153913919336976811846944445308781057892864787185185855297078705635303595683522439060081987640041329070341390236446223287397259311866455245232486274682000845369341493922600339219716028816294227347217245037968314050736879637506712854159684857528273706226683592112279426664039643789255682637306837082903071522870660454573387854426117936977778076764778348500206291098600879186466285786862970015837879293698567578512204688097072862831817678670701287241894389429134019732550261021058193397602636590091081652718186371480821705843765056279627477422719777883047281513762734888148482767189703486114208886811615322710291972405857311566524045317971093608851272874341002559704137075783479942700953831502277437272858744127844170122586260125617528099693356641758620419744928044941531852173025678992569972448258013994996020520581587436578294260329318288051173730897429256858246986463822430199569204410315969331996985526099902831711089937178153017758352320941238378729295115876771877531178570564284027320008136773112769477532396021820943112374349340164582046210834046733378861962914148655465077150695227976706685651169942570217951302265103046310273915804112712876036329911979915498008372575127471138133111394029257389175470175777683633073157990601553105146382596504035628308699300823573363264416954435372481069827972296578897632504622421078128916161926946888413110304874569495961400902206676476761880962818856614011814234007738960718644205085969483061098876930571040902004558586237899609582771897410331177115884024209658391296731564038195954997100397435554806796481296742813507212705416362349577249809582303108307614953514149545345984633153782234065315041380235779084456957261448159296213920923693564672877766736490209849300502042323308224443745057832337479364847859624042283249876570487119911209025969577507880794092693390577750206276694165107883719940994257584397097363310784045606219139615397363718197207897971806450754457737399581176846753782757976209215685947173449962086210858912382542723161054234988079963416396820020663914868114991184855381336262979642835004085422159878065805623397130688636633200579716237806382711961783046388188277886372918215597418832845022268302930543381157182445566759255894408378149602470293114024934776317276117138873377008130871161385497017318885540889680131267835434854052605006945875054270185917331968618804084435882559849676354698921284642388188415502796327570974130666406356408954682075074487304714345441009886835488290011715447040280171596776947718525124886243598682461640039334643729211686393555639119995686747219665853987003337171576033797591847341967708701196324706763098362200868255861886416336808873511202300562818023792181557106907541975274596252889710907021272235570981127065936906279302556118648972936263709848680733638502483607764580144567088479700718708652334405346129141250845990247502539707762770448169940444699160053013841729870319274142870703240746270566962183475358267555227171906032461380564563463253141457786473312465854102574788198402063045342758357839878396648418350757334748352655465101008350067743892008728523963422051807005817952492195632463777120575960855981387599566713530821461721060339401429522616584019419312851352177562393485530883713348201727317751163030768000003417368720087920119372937120830993720558322106379870745175119799644972220321184156408426707606638593640329099942328072249663078195289511211289106250111919903995185363296254736658148664901096822764481064544859662263513190179985562660920157270379927784441726850190187806289040687465122047747073716537172760028521521476406773501569616163210870169145409768458231422283059666924954540772742982016921379687202686637479047167801296706923142967886369948412180555510568523767998219240096119638766037596351810660491516241334392697384896342839105896834303176455824327210228346734259178579370750762821591609396497299989614361867634639530768231072324261531017277642096460308449538594204654019748285748670799671349842280585229946924905084513829435923411058246845844908957007037194091946123497819258948834970633496204345134286633402756890299018443639741308991412769795696178805590065390360976043149254996992353178567103040615209708340783083057999578227304017141274990551724617353735836294962755221457357986833972141390120344073665356050849122974301879046540297143339338452930449140162563672899795177848682150354716478998059587818029768280540284858647748637027569636405527902506465001149180103901106976952122800374175561213264467240655528212866123880217748304123032638168864142703535726875478126177494557318730714164131725587552927412793800388263591241299935519205619773137913641348806920951081682312959073345966906213332453320506847752872737603048427468238630256819458645364031528766158616292921367842536370123539977272111194171081044955502194296150365475745117668565702188926840926230424492644998692543876860844113518537717311686929532319954402790721665085936409626000994729712128551689098101318479631069694155067429937477974020959388953055874545783724232397183575563603290614175174095980507241030577704312928045731954071739224140391783183971551318661560629748012557096474832330554086158987129389114893068229405040533437433410825732245534217211388894740593921975439611425726184643656669807964047099836821662382900194398611962510433192968620881335756415040802688091931062800505701317808898352779782093070799797803117516007478311088495755026625191562099392865403796929739417236453709520814231524036888080923757672637396881291283699816457931981792957879077054483941255087333904107794703573501233835259382644850691635706393163321158157372906673953362643966105132324242357681376315170984119587329179219915746072548153655518058054589961837746706550597076397898807960217413886062671125109336122930647932819278199126806469974316411620264214951484497542847853821838052380065219683174599960093204175560296819442065722328960666620102180827801416811661147387100303171534728901458217941111014249813333878022498735543965017928116550500135465686087379739902476892392971039562790947557060579178848033265655168152424726165127515843999868668439133623558930353785575732380561626699455797521016339708380427287549773465931507090280503534617393774880988966806974976502638800870315982605886598851304560100286413878131351504694052643064429711473879063401212423266279452896718820842462294923819192849502118943921153528944785526433366762320401206782300924911464474366583164518202303623351606914122330571332365885196734568826170742020796988917015535397826305399007896390768654601389235870197031004584295123140436755061687418957154279388535267170763446809853019312431787450862521581798843146366133079251106712740426733248296107763680746238556440608649344056188413801549224092498555492224154436466225752106226567988054766372555486066715150574457775779124741703552638306828156279513167030826526163847204224983903218086076729190966997024010998296538679299010505044216532921309297942284768773051596459213913977883358335352582135401136355497076122376375638298070491291412628724920640139699640248633299031089174137520194047076858208425168980685136100826464017277345746801029035110733073548998011987923756385352169885806657474322769922228716678001445913370807570941839003055282113688066558985560674580477111929683963308956095301444373020833798363802461693484125209821861178494145481857278257663811330576150293520301558557615969112329887573255497036845300958847696210103708138131258450224166055565476984351004187302862057936374420661598999300989251781854865971644502717333620005571652406048664825378872424138730279315941884074115556406085518990394822954532947443987736866650389871712114082117285244201890672845036117145708053962831203029188839490581050681514351214747367453208536743393283516819831660094692252528650270534870029819095389977090173800212032275181502792727475998469894947524886681749389215818571482870567395529065580878302685540568269926067540820372976244345851612725828399365288673278581300794752174032917919207974135864477357241762153994515148598730276088116841512185401015120328802347075489365937071524509999321338567429479235717103093869762060461890069760647205686403552940989225424995080581424743911497112677892603815512645824008563741959989100008952048437887981723374931369056472055379698355416578425981243308000333803971296740918459833244875427335409274892241893552507712888735689970310168259996023439170775712879028689844557276559053815759288355191608037933991788191468426784616867929630410636992681294691442649127562476672565391806346670463869143189947353053550368703954129476577026944525815872897573061142980006367517717493525267427290053887284668608152112785826271649881095174386426010258306097875975041976309864865402609040862142169700420751506741936405598017709954497172334735805538546285132676043551727880160851378407027651995113725539462043175293941773507621470560158297353866104196334137220414075971482590797415863155223032165217739193065757900959211706811632072785213182778912988021604214575834733513565588339906478044557761684792284994983028044460060654106259472537396058115054279582124064980745691654274625942183960033145025370901318318252377906459256750817324320837291415716050434783290785047096146521370968185967014555936576532899697448035551457182204638315848740094372536005086879602974322001966509480008945781593302770125279548616935829918170734859967148557477973028438180380244293425344528360360187385050427735310487894065941254809441687133830260841905044179281966271531538877243696639768078615030751836532990088005820264307895905211702116973307572536667279867350772252396700343283104075056965455711411018261613364715777950707170344010732570323279131075476056099179290986868074896353810448336745176885587884309719661132137157672357637656658449718253536847587511108970306404906598265867146178614608740474543120032559301135895729310626134105942942692701666980339021659667682041683846551804298129119038052221019157637706784082834552200379337013694359619047449354983453459527211579440562111837738739966966258405393233043776654610894791598481459076688169177409213755631036346090194152668706322084201195936819896121099407814609377063134789816837967911360179042044137456235890868101860128136796157321375905579568850645065084232171233876585949031408959406214155113982721164169478480351017099321127604397461306117504425618625911016036565120330088577949918477441701766174914964601356026859204768663257324729352901530009468217786107898707755211029449020560323588461175127645226770026565944074236300812485028883509242085595898261152501880397752469271835644274332282625464667649058709499371968093915974420092945945405447551752303066408947381507879314559399085133648116227690946242140903521257935201463720214164975300016080837522150411548559972177345525382455572981213946950370678697298167420934649583350849866509426274406378303168746152413025273896473217630898102561893844311567797367632952570424026189669323921365692199970714405070258522758249039754476873062868997790972286323308885678920849208739599355339381437712233518968655107293420206121280160579218321478852917322980726532559220050180742549558939050346051454331789993656458384425729740494842933929517511088864998352547386104556640240330223299463313609749952987556357961467153850698713304162768271539547530701823381853021894016879334967695939366267537950453387807549239363976842301965274033086669903199621231106269876395389759277324663935566560870336986929681956903573835968249497626477745369266365900446055081366954762367963027761996323322920645589561643302108660350219616217596310337107939954302755352870255146317885554617534207448912169857666453197071716657044111437527761956497846902986651300980973996143968621049488397401759716265171967322206444803159951900581170321747226400587122517499192674530638434934169211965962834513126283753662824408494131354665538248589953209179170032443457232128520088519620430368624622538907293603203073785727357921626122679081824188024918184497005701582976073789289253446106232873365090600670824376867824961891528137946436739196217262777768487398004307580827047897945332659309560734480568290855868268819654134466638830326612736299171144778124071020387832692986539147554249565448432496738280727137581888299846303272674465500856841772907513922953039004691446253215471034967339033860650972200616800057165238687084119082095321312369575450855992705607048041407228964683558542531152421054502881402003111039627514992717524564329363007978758977819792945328897683468600226597495429557724073325797627581229850197883287572668268501447102841710689432038545517387733530873108704134873802154366763482702542197535118634493856106028953645908796150627902969447558332732755256688611026021413854597977241846161113745171079530188547995448306756363560389757173168586947578915484849232388995275929424865311414337778185579831224442680332893741491065709726961249385428830236083642631291523023501902853479282347920204527402986581098333551965533290119985202418090236217159428741045546619963905253926326814928904813265829415104186490056391383096761268063941427082994973200742432865109964027249821459186738871305938434536090195508754555111634206917298364119140908211659687625594690489043204610493317257439434431372753649065043206096218280255433085275610836792506766531048408563684774379004278458609726607595528341178576989667605958579046973912669667581422954016684100570352605008120877097771575153482344404089477505815319307226915058191916334614340730340893634162576732607182082912674252690087261669705906300857067725386277454159784386082302959601801784760272254934404142697547132331178131247725227369194305609697684961566054876880681758708930227733981928828621232725183609437431361000000211967845644187806655265758846541992798069838722683177124091707829538084957615628412788405494787589214571146430271043362471008958494373814068240716423417361802011929097732978872356439811960390214967655513968010370125250524933938598347609164704233650816874283855788400040965095808331520750092923707372546256145865697743804467726568957952518415531548339360586555309891493361368526423432168361812530610811902092277629893172877509864535913891382653320706343081922883324960743850936951351905469175628092183441091866375754676263902155355650902198441753272751504944618022964418904442460573241642582185445623491782458542436422610376319474009719724661082874619349270783029109781656176968684465252770756312330427319794742182124187766770714083433131465966595287257712933193293796032760574266295298654999132931032339968243809019067079189456569375790766614515777530889877045444201457300448678167778760743008623414573046880493075129228377792617265401098018214523903975265811680537118811695347606694071598725194514800714729382349151789090666530917262459793403717026763753296237547225087495859802172013308476082772668159876635690461515063441291637914262738481409136176957508971385031370535304748948446298647032279916869265961382559126891546110976136385612741435555556672522205916508684112258035722014830391397899144941331416350106565511681900440130440372398099564878734956338845704862426218245406788254020944793170876798865014825922592002138516439543970202497832659262123805291797575284269298087756167957310864480016603992944360487028757972430982052563821144845003928175187069087080594984260672378074062668140765688497493157323261745473635543166063388805810781010393623806193009063412398053811059343069183900122317958086282432623077803175903671398562284555261058654091068105577072881213061108472418355998757067204381172732311627590033209152589280111491271881594108388975769706480553296839497052123915349666065296056115417171755070711155418849372981457005237101445376141800002312778496693926439788995314764265365305517545172327895178045915256011981388914885964889352926091635319751401936521097630427387914375717041865230553969055154358294813759052980190245255129902735928910033620769926133745855336922088457980112418034386703458650858537821676940681498475969396583521661732098797879327053998829842714459240553677670534547685572681920986828332776613426846140691440411674613729561609798921694409112056522781509588056629209997400076079630484649136887081076138455654963388889978792023074577295299853946348061145114231493652039384753605236946764601713623613179147214773283891912630754106913623195697613390327591846510467004468085423689911078735873061039152028423562044345627524508643779258432130490940978402945122142720958102838137750389771504519670630132643448940067875595340889249143505825412921666196340059883026321049133356382118157307580346707445334409971576630986734250931516465208904646942127694395806224480566621060354829524827846115095302336572520165312578345493495477551238345623156103668089572688040822851426091643365137724494416832100299009017228414273712586905155278521355900516046615782639577484165131455026815672279921871385338991585198395204843565694036615476232822502529659724978744606562810491003596937577143332982619412230152982201255031443344672960989913613638716928988342266333147433366349825741217319016976570289932801431436376562047019193615843303997178797115867783968164107407541906905729805218019350706898299431276325119465203557956629450225100350461280291187209231974913969426378126161012469785819789299583480621622016330365099988716535092518891444397094648322235233228713937585473647064911538624240926711931254626476195004573454376733188702647784866015649949453859006008988625150350347969927677626379192514546222742038700374025532225434900822464068714329931486741276963955746167296188782401739875704945827368642846459168334552016026658914875146897242356141466075526656219073969685537953957941743972197320756531107712531563534809093691018787358536861056674283870502860025936448500765850195618286653235323008331631897379797990254253549121281658598182480468433969023239699929924870618785205436819622257010710225255980092116017875480872899802504330974999580773843273875423084816913920325572941044578109728830969596965463066190980591631633859008432588530813037968744267889678106939170425933361638078568671685435189561016021886229649329475028973460245502019980195651775497007818775588310514437416534204780954919758445338550934999781453951819395567709560101770198504668767341998080658440514679792169797089700139433486074508767282506680383125063240404192129778455726419384565876747082375643857107369957730829994303313356918665539448471323057759442296439456506503849982851422607562458205286034498760364621341221727957526019076202807502292464649786567690019879634293255175449734062104584032011071235319436022329913823229385703524195638283966300984223731181343203710418659324846126764554606865025626917082238835249903216354322302883735974156371096292660095020487871315601529835479116641301643870807849711610064006253977080156451731674113650404930555558391283158512199166381361685335501416619986121571422367951948864291374078494740533561160498097592420068578575211853920891542042623130706291510334893667496317617645942142654833892748472477755830391367427760001982905168109495363280176186622818391035241132963957376433354856538559222213409373919286280306050746156436509607335134229345464524421908693465052960994814478113826590103352937324916975743566042138487451209567390230748750795230992768047205377174194144041586056708854797825922599780097637434507322061593386570055737689040415997559272387221791023478589557141229161042963287566443961999850281269248391308954284292087691642828602844819609781533222828568982708292701232706535169959758653432277574679930658568034287001245449227667215353592594245103391487842792900701987950868262221339501022453105025863056712891927713684104000031611826069864938915861895695226141531805373008466542462365259683057720497094094808585886426797392289738851371985190324356864009569912651258141829362761564479809171008335701515336029277132581594854753908998659808794199216664320935896760476681646911359946604227514192181050020422664451932962415862306688746340036611920948460720902290005226594723881120144997330055830847721956222770751491153850926828353349126795487902293291265535883087817098406419161629950899097652673257586132271537181962053546282914959939550749429206603925530834416892466883624258589413144600685807817276420672161414626761580455237646432974149301544195436559771286640284172705111801103550178789471603831268896812886471368742462709670680277169592961172873316483912133171087074820108492070475419755535592986347719078669444266335410495955769469580019009899530398812526621068037690703493387102487118567094080052735895470250410461266161276973020865056511751031596331403776206082324935511667836851940280177093411982043186117685274086095522825793231079152611685757760479033447360186526695379312482598040004966743454247628119580169644029166652621167365499327432496965983359550835844714407119027673183059230487329497818222286380269422729819383070741513189707181820992756136046082803492141307811506227573884086882881750148775216083944447952340679209030200398896557456580106860627999644115961010147301047454614352855334919922508001467743971114566765144422392864379840329388514268965252486922369147645572343038563419444022907935485631103435420542216169871323388708956878615145740101317790238594690402072288819004937771622203736284187510859499583841091707431733856388112520451101717111116441104637974217378167979967521197069477510636699941362373192932724931813211314589583452455772717082049587901945589769779157286027634650371661974407148406231640345975108769464374126611383333047242720351786992524594527619661017882225675416253312876623639902268644966524932164093712890652810934874126282362429904673548897691586008531896102807910816572309346159348895232074222983912925627266922901467741524099432761441650061294964909709348684837230185326093895490775033617621789127036769115543644965176487937362062860982544072568405615661875836360578590421183859969631515225285855874621553501476452971565646896386213302168530731837098101811134350419244241803959483597648029682997460360734332681668850807826399964978642971019891680189805792167407992808292396680055295400336058174877637787584612801889696501880344332914926800253270156912912707343443658471077247257632210052084845658434629342604471849253912391598559092436619948333285298864167395684252275540158687836248367672490739637109938512846349280539834444057708822622913323852653175600437751456972720347852669888435971411912582692755910555580974997987439846356107461281944192748169610123372153224782587092730996618651807847656183554719866957706646171734945725368182473398293729118580584332348563576802718398226881347937073565764192832206082382676896699487057692418633748857076175676341522151937582084048894724682862673349672080971045495830412397454884979326795532508485419208594416936648518424678755401913767009703751969279460980537136821373053295904698906088662373244605932178361534430722511487065627028217338402179117859140800662882917272383690846488576569185804017959046042572395222269444137541456126256674649978062515585992310078857914957759628000465380686457060632620058561139544740229639294715864320481951097947256823142257374277320639396293360730843808675255978423945732605723199087175131474339496477982319361186073000025279495829953796942388985470483698703485450446944739798101915082005840695427485339876094530150741355249615947400174811077051347711104147496052417790591237702748205508437588356832519978224874600944411429457238277214782484347548774867955254217264289533474377022654438268509032513825070571642342942306944746916408423879605539303428300088215056403271615681700309631731462958673772510701904423927037146878032395839944749493773115073573501251706691072558479130188542822316341923000563853034933419686854160922863563697011847840740800408985478198364780047075110526405855749136226574030273511913339842294311137857624100106980089091666074446687340486028522638973163215891280146644460691726255389396494869889550000034922884794792524056765780958285989734442834841366631441432882677086719990128637792113664564578234313478112600142937193722684157059718693975826903738210709641334315074095021825824192777180448630143964274837210726919737727001095442083225606171039315064448128294274234686118526197572823588797266531050434932580613792935255310160852961660469309208343298931620717581060070334032792688558403700215799804887731322899282795881334735743760077947431312177342646983834667217481493553513908569885721840441690503556955503476446717581440630820690137981117425299297299355171230091207369088515119144594663023866126109496015626501198170351695864627009681934321001209010652839598737395801390012436502914471263090777774100939612364408202552750610362057499521946092794079188116105459488154317872486137899239397411561427232772049459214709098016715703299854325038510359807483556405995637445982338464797569785421628757831245326755351362786616315907934356184067344155967244446220498322251925261539673494768720443348635137682594913730380671512170430917204726490204400901323905114196930371363122117049059674827057419060560616136320832223954969101412548852398668836483577287617662524522353115531601925421635809597342813360464940384191823263425398836992360595273992012564772558183904324980118971528785046161765104130136410385608121079189534103151929364947610719943632899903046339118519095288129020104386546137832705800454497188788053675299630068255530053534839216084996110082434852956912879245488943753301321405663654445292737355305977675535790417914776353676844952206698804951689564210680881754754605366188171172256203736386674856618596104369486560173640027652553627561302435910369797231690609743140724951398062636144487015581285969392173622916748324785051345628094055692009622814446705497013312973926916331469275535562785137501578793517651277106656989343334387242659197962448879697588821729929882214171570197020875865083667863777073124918310616401178208571385253678687207084454900782932079865717031383787148458806444410876818351637892204680489197407756741434392134823999437550048369611829062454830188076223302061852614623909603542210645636407803867753066058311345879857543961406351994746342379324237914879813182490645447269376022023622733836428738994505547319828718561743712609305970465320994428658799946212923151362351945036292972582623677985220438453168671223254583650318388280454081239239513312491577574841390964067173735413567146078843362745246717701715875401086082706802101480158947196285879357910495000197954796133175659057205607688351144647529300098108844492315929567283499504024903557965930706106620864515714389306270071126682597415204494541638087894234321880350897186168318862184756287287225870929373521949199632488298632993523421335655603666743683954172652493314514065448592842306752145236793378674764761760052642236010171727563057134099574829287203344020887971034704763693848572463830752926255500256748642827194535072569891016185210963050085553105527217235787208530143748189013459519658611788820083384944384938867088436878852253525438351651851915802052749876814626418733137702821448214536005752218023876422732210729328463539827633078979572819607852516800079691614699803440717645767515017461001246254448389634108400645345532956633542841243870123913979470600491069506791235822598912084626328488516086171984530867902701855478616901919078629481034175331086403657923977972904996155224423864088637765604908592183426831794312483312388704309865963028945924849630667255565294871326653171005067517261980238229215605971731488795461441683948754400132227393252378537118175080568870239653191044581008075511363890753908617779723744760628297557767216554434270879656861924693050116155000691955165811543711598423828223661055767844800162926508999996119030795828281714594533052808354830282336873944189600874478955176264166946926981342008560784859758322794217453181598915884544609982782611550999421526498785283343252672274831777200305851488449088264990004752529648221279603837620647010750543940160328017204635994959658267554470617932433272365443907423386127576092663769411052139720368053551100580196142334525737017849512240399100115688717499365476762847874178055553992710886375259762918703068600059123641174996944271446196086701689756586037368378997846541847566759888626915267430035207484297253707475587180850118364953877060515907888339077132438778805555086732250493453329113849942051421124027319101609886765007359943387497609811764798752491310491724089949212818329846491698169246881219738813069699276089749659700569936464192214315900336433328453532759924989284081147158372579466225470655382544942605555302566656108799084186647015493634152773224951889106709083971969734268113100022890501535989106734527943519976669479820177457459759270673828951007278513569030587687056101223998079112021079595768915282073015111125900686659653883691611763899030143959621504168828850027663151147317402968330141716143844244743575553715964774568218178878593646560171165608046073154439905989625520244508862963597171996007663967345363558933464472465814524842613186776988119774374042628332281096151624577375109120695804163135124156506670384063342095876608966388428515922059333606097869765141200651606690127894200389081560405778270202936539584861450465512346734527230840182365258991886346073992762022500297277769277028497090823326680571280931004415729783793202591073957634430744737760579735196241469590863693052052523230706744203559571679254546577154397158599867947991563538598739995255214393869145015405306533578567783383618127912001427432531851177826398792121784782832851998990289514539340261662589407924057625348705230896498094268201392364283597089242333549922358471244071886738618015431230984518619886815708668459908762730120836105730382541452774566313690371190452342792126997155357108825765361365348457589078197849536364031464292462840443510304213795205961140253575531849526267033188591597872043820025895560068338145452590485675766348756141958417722812647257894700604268617245845540962401208010674599000952782203117026789580013475129648317095954512355325556851762454647770419324134068214952438651009305586782520470981844900025405197868973029750263870115423054410286696547725546018587823332668518708817442681359420120641014903448468157454570291341781649424990403351308035251091613414380879897715095449697833192366490562694819017852406936185603859441314689028251956654802834056714388562675618477586382508442948291803122284843464422192823887532692263361731795908285791158073853693820186229164472032184833789607062490214934030797423009688020873914206835105851521452449968517564937721243247011052655411140669793704528920689853252193910100357345576675214489272095615408279666091691397344517505857095531820887363686413059555560461574126227334071159724021054446373685222683994541843532585197855793101172332838304772252442789046836934163737151050554454267735162555635847713349214507609164416740281908966766833221925806181749960582059314855991807826079776260537978043402221132892321806175594960017460318335612007179508591140973803797562259963506696069003661909583680771542861858003166386772723421864945681563228381578763274622232948938796882767445211876276228201994935145144863878337327863117100699044893631455246983785887221105012664102622805654486521143351015371372245187266040325268874836895874749640044771456355999696948248238808456405652362843441126412490485132554916303912626239001338271869337651803040248254657217240668172605197722345961857099906044367812629532318013116879147481772067933337733638865743948741647427305752605426044746475541652731363672810225536503787425544473702518380229110692198095782231429678290137645367426063544478955258216313155390224871602296133717632549835407298551646203639601575796392081543377887682779108077233569992787351927851130586949690878238555317938348440804905316367957200127368781554893858424505253268241127616284498297494152799421563336395842165234382666166259357388541496330240790632586834165564029051589973993046031197549355985391824382756573420792950586069748187539093147629063970343407225484109028601728135246111683360948269987442008070129817588360924300164304965817310249324037516933945027972690140824513427784689863335893424324302192731164945225007280071886574105745050799308115393420679792959858240102772340006120854716273134917647710824264399222896388860934609181015896785567948596365586770860558606332084099251679664670966119104689697961045672307046627668958869505016382549138799766562032081856520084712009938150433814847713725832198467611919544595485552017378383844907160689677906126132141729952418668469780870559044823782406517522669887144203062466461834768705688997146785528823835321840286958289281258131392135037591158752215531170942015102275959512401067037410593456198960441536304543017755653382730178168114699934628886066504478768020573357417011822648605303926228372547320003482840298576912361040322538237396006176287645639260846597535726953148655900936259222543575523405676334215161138646195043570096078354042764378336255158727614928582650224646199888779503299348932763585197248291892518453651553527646041138959164711464942551104418894359343539433686596008539318772992278210328152583854175668952221940916000319457084842594550681667914009139082451360047103711021441454010839032451184473632602928906448405868704420893496849763054905548055515941484937964019990113749489146972992649611819815474351206103454666491436970100298599971907177277493733060058953967403638380278880688387825825759691265881090590663561218169623617762566769182841086934921046141929524512987142763302983963629004136953261402510467351588801370275158768667188717255482897769278955261652052095580252099366541772410789841119051977342057226071522419806735409871034003083469720056350091820866079068521906614908369191337594911534858643379748408676393687925726312443792457729293895710834940265877369968134908848094975558424660734468738492756634891713398497731600620745340640686974051575314514047643304863357342811563460929057563788000317745086519421561175201663970385670158600285309686719862114467313048452168120799768046390693273384195475063832478523664370223208811394140973235530038966696703940833884484687532065479304342874763577034754146170061163490968450151346849267642238031170622044239599968728825914340447164497708466286776042879302533429462058711296999564098602742513071041795553837599904736161713241625092602743046625598700100755230879629613331808212469101207168745623720656552780585389755460871067497652301068287696632223989601681933819885816678913332195276435466855042124330289036492121938190741677090880301688429583551517102233860067581660555718786679617960486125825668134823788984439249685599121285250074111798381397088937644429438248601018784079679738394850633743074253951971653808393990839634218826603350227122389331438533325515960278966634407817197475443577724134709791542117514615101345398370381305377002705312513709320769176036744824589431678230042797421140728331107618636611240979497330563942211015113852125903056889909779645442529135782117315267665888359203951845270489646925409443620660254323539695592944771355186785298121660645566306056235772599632267675813961357528673945240933458319754261733778415331028871473435240648036401747942232817732431237126486188470268159933923832155020351711428686870629328083838031154345086536023726240387424855871101545751003541862323855511846045371232129277826537905365936133656444693675119799313187980906889841193708819372884995639484977457405744745387003887538817759995983896850082208236513133387666597120024863272147420646054484794440155150036371806189671835040178053669026852462985023102932629839388677897694119326186223969663489201820721907311968169239708609319619464652396029410310547835568804650380176672948854555568197906385703128304269274935916755241803995866591513216235928629163667840690475001899570297339919640030461085398725146003918586063928621678782063256720913035913892647704243533167068550770801915170300835509985945962796851980341166817340450701399655421295650186796787258345291340324052089437080514957291755536575641715163782868957236243462581039569455229123320435453549333307913356042817301497364187003265382578211733355730680720797798600183635920010915385022954706468886800483192823002471692081089050051062276195039584253445199556977729010714546365768210368560098382546387186657898310062181178238000591424086896834301186774494232120105674177974734899874424544429646488228664164929708808422184052948110066276421897094733071264545528505813263582266690931894406601725015259618802184903546116012872419466954932675466785715591961586143912646537605498369892467955042244670503274876240425541687576773789485451173856760073509588597693585141145688024489605189383989202558253149687596953720415096688056413495575362040630204433119066797982602125325785294913698464021311161987741287491918375903959076842097393883230100621728783292798324749534036342055329966317880845962138429356170998983549286746756610001298680497206934569134206082632520505385769196689465915651153621758203424534042132012772884974259242939983011863795378802783746246325181007172992743582632635528432021078806324290323082225556947378147148882408379759163584403796559748567958270222803454770217314512738810433900122172488457264352719653444536358391379528267018475172770989305641463857303393800042234926727026829387873357741470450891867437648225527843991771918820332758191702841840481255054112909083590879643834729808568366508731970973719834896593224712221709854776549160392650355306798714227012954280177648192619585265048430892423454943820891289228689530468139288827661355091962441505364711001391492877163885001139563932229607003990982645751378271519472910941500902405642428241389481926928523047407844009056950136281769055037811561458065044986209555006523729665629232968256674948356320636614282154882381831367655300981545833076446968809731796960584358732352593937168023672687727972851113707708393393306043885699013428696637376969245586275450743130938368389785682398035023529681785063518972562386165130804640872830300974561794909249195110566602721518923539682823147560021048110944035743409496181365088416695731004599478221093628748530147056020631997683404322674384426365926529066462252136639957800146060818626890780888237784014359979573304280133472637833186357887624623806619010967541376830312144178414780958347961198566459328952059689997049216424617218026353388523190402039585585054677996586900198264108907438980002321361808094363196015899801444759137903831378300363591128371081394286681812421429605134304281613079202177129035545281810758645055138044721040382490505680181631842211041962595129502737719407175014431999444021869902762573678171249680343011035757104118667101361102801278505475313031433838245598092995398626721007029263977387316696787795686006696971736755937082491118730422498879867497599905301877754090145615068526417762351382569551370008621059737804555934919538630889153850984296623798996574942900120074717496196070329360360568779036367746884139192226500550811192223937427867236294334920372950062808819018096690044934371372626237753725421893868280452882158764318677892903276196689732608041922043125459598253748345083123485581555787507516309246287358139252195125601120927904932530870536145697515620466066206388220988891025558684966599243893440394405979143458624757196022249112107151087132795545464287769162144740251988792154204817590990574445102410922223657458312932234078488740620540813583454685797724299221290702802795307494997265437114741110908025049337803109729481439529490083943914081716917104213216168098341674602861146555623431088143490392020612458194590671944696729030463455684444984173675399810881353532832445446903052743983575258696726413301073115269386783544626731447909161568064126473656327360140983954471612317880289430072568376119678749933775676236451941200783624517269204782650352711930795788339685220179738283081790662540956692206653295052890734882180208305186919970433863054612732560374783113627835035026851831734687335254877693782412444099634155749322760037236181384717536008828630516244293503441578866724790592901547592930506051123292598161700938257776462699642597274877350512253576651927339687489341359672790352113544944527315169460512818583836216557002882560496488503563719175274203217464248342760788165049046393061360933359117796278299910171100607228764419178067364591455954373916689088441543190088889668110554202714391186731111853167841034274026907677691624261917348164121031833158881199134329285322461204928231567933305518132876327752918567545215661916932491433069535383349471642521048545384431321607858439983092452984832693278142556277252983901138047056122367059932803332575180305452423502977694754846539110632291107579953484283757092220442306509771097832022444450094716847715432009244203158503858400985484416839588627080539338758984453507681006405395495173232615117953070681722740314874024620362134583404484283890434486113026326898405655198219514897270698753144112870237455155776309367334992880347975165977185465970568873757230299936850749544726990330806381335479361660565418802696106211094473089502481500256212552608145131418022109457113807636781957506342602300523512643678173419747305691198850078052114610965050189762383092127031716086818073706722151269010010868844037414317164658616721858409782154746097190013402860642909441533817199590319390691761685235191195165440293327271370478658678076294464219088273850139444770445093164639351834435511712424979717127419157113298850306971015109484072452631203895541690569037263596962432058948180773175268613401161088452957438567528773487460840265593295962030626308163456833215540111409248297862289695617406652187526184047572408588370216857440399909216133717133097926769455865268636160501989281380930871620968049262941159213450837688518353730993962923510091054126626084740234498088589539245934967405735868457002406758973659079724818702151433610998515552861285926646047320423599582440819904225203821915510545581222392734763695212453028924900726456516671383982707850718729405874739149400142472923694900689150956964193206774875670539138267971147412214185510460096300236099034627647073329499511949840252871523575908128130083993773797112561610076699805974446104201228688799231058222209217859661848093160477077938732733777597223407441719011306983742861265332345452846669288376298873794996016240741022195080771808307637849680331337119638825512237453535990200142739148261108239772211576924992259154952095220917912344523646667939166293801046348725769123442648139323708679390486421609821861780119113860272555668232247334665369646637904676291183779805897305504853003849561013649819062766814827492798323707638394767666189432212775949543317710294657280385799022976035037556675818040464263602465370468621097372200453670881109342294710623495484352017493376773637658003150136118555589545965114205177727612146026809892667567962892954439965572871123746259857426345543130476245781174995692790792684700627719974647959404737620524295371135135056267843195430428798192069911207427955254842918694691470387325570444389170722814260713767654415441452996232724769051786267355345999651702658157024337129209953774547207100600745187395471483637553030036862373114877359550654714718081646241166210048470069661323355580453847014783274721729033992584851650457013061750806495669561491127076406904766158894953312435341480356210916357696538956506994651549968540786426140130998748345653591295080895109932688967685775547361107457849455829353406635010697493635634306897955263848847043917384541047372614922372801218235810768058134150326064535553927364702600992354612851964468352200114554042493547069662376278764400521731346180505863525085994931623024998151276780367897114452996251964484017161662068767321588726177616110125372808674794953761784614709029199818454570309640035145660498965935235031062086896189340916420069909233470595914367254097405391033573412415388607722623867605032782356900164696017642197451269227134548465759752359517997620943797538163330227951804935342992361174728224818420298814241480207343919685063701794060228838907178254234184044157836138000457145129569014010875464562811303102020552600296054479848826090867291066160225808104560778090251147361948961835363997683202955386670740506979391843702750737288865967041526755780677861404540419392884708879988777552240096505540905832260395367814273356928928792796045348231627160659041141700465329550428346159757048065052071013727737724631920785447709910363889069816368790830953881595179304706191679076457022032481233590446602672023557053126509007727738252965025883745666718335072416726740673116975451039082789057302656564356478987061854875380473304572845108423341365280301810168380478382862178945460936925491048492288932020209107020900174886267989486896714015536809184971378770552773887382353966793990506813298075576852809862052339104693968323469446124663873237305953349053258570519949199600413301015491046698099879778604055314183084737218086379852922294525571853224273562685574801045377638021089103379814309217844547734598094546626803788271248186797600835903504850771633977376439997975560264341441445222135079237789977122660375142162492100610530678440339651461291946017723630655270213619694637185325661774746563164631573887398597551194834072107561458617546079261088538216992896091577402876438551655068680233856855721217025528973893924231064641422363267201523034354440572383261147257840518063818686848692792392936403332083057642364984426290840402638842226274749025244072699555596499162719030202679957049239919117368738064690956631127834644480039616458136792550587049764985095136818113935360000833589129842353388242285489979102394903290034074493569748483649632226450829491594244861608956605742878399243414682878687814111775865815793245097399098162965450681776505590699428588850760487919023144770232279141070847998466845151318070454286453476181678665656812729349481229450229330797993387360140943238700614724925756022174979883990416393919223572700615954868172945134973186810031810130742142407865982461493703685976862642231208853466899063936425515800998268586680687478855363897830335075149649992537471990570777962038012347913696385156133609560676572170834019538276857534365663588594068181887055398219663236603805178389196218480359828232054202259859113166741736860482924117278435834946630133430573113917401539834897070909017322495776109350788225539718796486243725954428754986087588915776058996628551932928409984961234125913130060785050621742639015264065447221702040069139012136993988185055749834135109193097263144067870290244898088709016613334527898556913992012831665415291581638908605323850998299350093503414566533946806590525621000565203889707379825729374705322125974772038209914945935115101113490820146164784618904857749742230224320382547517579417419772953039384875266135951644252099725147266086509104667288160422524659097463713323521264684190401300663292070772578152242072867662619443172597950067675350586280543593800691682316761428414094135751662123764664738094591187209631994197269065449097587841770179597127817930941140203263694640931746559601555433138523600468618910033083914215151184671317058714618837186793655084436961958790522925829516679411068927560565226422658418193124991084602183766709226966702706995138556512800312088905610291109479118966956977367798700878875286185766503392158395181607936399506801493735521352564927496193478308810512411885673876214104617263990015761701728737807938940953135688722696445044391832073383822947148963555892715835134416812090961118611360311782243396614643235786266181760839907789609390566988714764618880171392342873560744124439441325398853239548190907354515830292531084618300909771712237240956216304904043854294538663032072276287556035659867589228387015509155720527301087966602069933393393107837188596702476656726274705304393826323628779948815500663669857425856073052682995461886127068452965762605749369085630579705512709866361547805908898744637997755348498914518464508201037094607509209995683847232996943311138332650283040211020220421213113972844459442845150425808050683457911656251598606257169084659762727017849891734129995614212873550670028465452733144829488902381027991562199053550641655019624983063830937316654152090185452220603448210205490643759418496398175432869489197437198681762873886708416280053206056728513210167537899779694851580447660036122200994109700597607135143809534918506747428157718413981323589355727299778578959156682779487322806076030784150960993049610501960470616566568103640944268872445332551916519673571961334751270617908176187862541714182873352864907044344377732817615780705800596915034849319088992795662792152278579314381310333336647312169927955885313420085769668774736167216044685580244535861388053816018295140407291288007274178995235011179530760897181039210041517772032994867751904682622104160862408830555284211001911498209438623547269433229685617773322893744069205940711041084265009784245533718128566064079064947773887361235465096931712957898084240447235285444961246993265248070081628082556434975416228899149310803089702925817919949797091226711979122625349318341704431556498312809704147737835702283825056626214254778143497375557183629324879319774345054481591555606318650268087951732386924051942696682247434863581100649637067480162157106683967248292095566013764721268424759525475145951908040567252736834609940387524178850208377877960043552861040376032697050632904705945756103904562915680414691772593335675119666914922034234012808305707429264916156562187564066092747517127121989445665316481172280155940747983118058922757812515560306803189051178106997761017532131784340746049422620381923975196036163208199839370685018858054440357993676005600384983135716409233395699860704795612817859324689545407281593028734430999832388435276315645127634768845585061782668500921434609583064450887131164142210303099842554134585691734176365074549716208631337072125680783134376334796785790733899872804949002403369756505814381693640884950356200311166301680947915163357059489186827996170303200222458804256759843106748734539609084356177229969960959806106795046357767668312700324636064194229662275506676158830161413035529438938510653854226802189617843141864316889236201956327050151023482300256989304514490262161482958015148681935480208847058586230035729689989018567948677907381174281510768699457093028951257990285581542985529107903518599648268144732096218121007497748395513602842906449616161829529880892172934680949619922728189487435722178249557624125001223938466360114719848466129927758629179840727662094347336033480751500414183104797150655726268997977722207997264225206391912456213016013761206261805123038026128014520594056741598130109333125018758161548900646871972609281774567938903283803533962746453033279550288303147352891994110159129357288851787529575492361045889528996531192441754102582468783088997996653492274748280387596682524719878245208211819400267527524006776430850099537987807410419823025240546754622176945341692480104439861162800176073054857762998926794365110748603891920598008184489246445190515951025637490021856959524593452588499319410145693367248853149507420870633170390351128950469647357065831059462407350878053301732604403523783870686211372288612474822475701851412654635006159309567358587272663294025989694717290663890442397637368164434749792765611550608891988544943264062134664322044634741088142680336014182437409188626186052902279124913940025680464235986549910926019599229808575389709906602311951830784376455611296281901085028119851065413677951845124562502049972950199998109419402109024539287193870490066840065726952909081796485062890412112820897739123322176780508837451090386130898213287600360266243796657348935074071180480404576942140211916807512464127975769247461759816178662877905387208213321529811875186277533955029243262751772146193992078220812316732507174683125443299553070379558829208204103510547137316909540461292989140836770352194608798429990592882861841169077633763937513178604574765791961812247817622130394227440764705147786888677396544027820636666540487494804192659814352209381213260471205025173706050168525313302594217451234178478919285505253390132802273915917474520079697849946590113719049197153665127108714636563058244553658810311896234228388456415209485756155190377349477476314609247578907352592293074958062055627562730397516974376201463059251819643340410766493460433739443871341410352059224253060326125927335070744382442555978549971531634956493719874110146137543415504247222861971901706077868987236404866393024581310394783357717545835591364088804280329969495210420026529263964867286255311107355540069259050929411887235838148423188427825104177073873666315449383683070751371361781151907974620602691445958319071837824374488195206884830816179623110915474844750440563832535837324796821361721872682325297382508802004208895205754873943122040950404193633584492135386438647633646419091120678545698085034658001232214264057695067169372404582985653006967944038055988562104564556745897970838746261568344003582199949046728465478753056264194485206072721490589444047503483429490730050414249102218763570537280876313820114922051421873694224369017606290721843349274423581730071975509047600169819046835038729503600773884717289686749485743183516129890170503676802078246359064398734747682985929868620982176624170076178954219960500108194722249620115244130801385996959769142377221174870085441929713447914577649257921059683968252290306897038332516979866596333585912944614156197784659098572690876598292009821434481722314290133561613780747644008958997558877264816550637354066190009928181447407131064249638230392977178328224021759058922914965120432635190414437075730495016605915805523779014480539610913884793130478621068371505755488224730678688534437749949333195016593026787228046289321584699387073572216129386656482665832666150996014902688287291175471285509149989579456958724831775041875565285059618636794467678128187468977519977641839658645369749261052407650247822543444436281881075922219824513243921574682824705624727756308010083956628427789211391334667483198134891358923009957998456436868230762698135098248359335900686226033356092463634362096219826063075657894471092327388975484352919828905105715621937351123864402679383547020901127728113463901052185073201902515948744047721754479441123140813797512449012605518580341147756157129989966529822664559568203063382306811936814311325836334695149489676487322909176410844720345203952375668201636066735174545993677577018287180193610650611853888437747410930740288266212868947348052036923438016339753670063723381229020373251512059022676985523248806647582111254499587991918231542496433744003189939429238630662440027656870054650072091010399153467884681475100655240193782488402615819905966646856690863856645355444317110588652698279231245328913259327330343767487736119139045925154639757218442329909370607418217195036463355538016001951072143659749606585327083484434843305532365828236160599694544621322210377072044839127696428466858042774149596186111295292111906312454787121408263831001390211618355695643373323051719237041111084936599407516810527214939546128944194331378897963936646829662277410449760426808806528358803754943253036609484036986389168702874067419508578565809778375944005920154480608058274896270674092047658093377013403282718926789994914242901057320621483148179225153106248254565668723110851338976447444071356327142429690645914092363860188102069092386934426167864764571422685030849293735778718192036443819719548315307343501229582573402906564305157892755056907776364636360723179423040969727152523070843726606670239830914390914181685061280409075449804212379231767055380025258259761270669108957779137541460688738677599810913329037145352187640769003670642030138860779006890514901248545842016604159515485649388535851814138020751675159054219498050284031267159407795001267158422735013201913780287510359018616351083983679429989471551187864089577817699339971966882866550857496035423135885063427546277080660963850599329855441630914877401754580227971719349786299191337123225971101670438441623309841703178737480821177408167197211780741213054793555681095713042490113657817615663813074667435206323833796850640097413530414231700120023040928084636405971473703811108186945469171282827409741654561177341441341400254058643863683066577200667474083057505321609276714654174618050626592890314329512222484804733223968047786038236241764719518882543774565460038108221023223655257095003796997325665591293017019509980858146538185548290450171351981337986632241627564002206188842282128048024568789002564609258955154971408497287360887986855982007620501085626181444897479262268769138814980253500221962239153127009457922887687707010632474916933372653051570007778267240549527592286900802197325393614406533995033099012374052774000462462250020488035362440465536310717874662174885705105130446119423296066966942924641505557606852928419711284825433060442721982492339388717296059929290501511326016420673539094881079319175861480483751604819710723660314843731736159959284586741520762010896122652517675834663302496071662223633160453533719864164772394865425440886207048351417890310606215257725180138575323921510179653824197422713313784454960839076514498072351645608641004105679228975179287088955661693217974570197757207036711810066691724725335165919489205685663793421978292986086603292850397861435094501681636033503237548187402098980425618805925045881154304409765315646403737213418787200955895879503578336414973154308577743883112473747237841263897909020874686142772083767526724095993153666587836812752509615691422078976664469290671427495097674207376763198603348234424916148154288763252233948902670613923394781013876295116355488387727200599709230709339972386993073951036748253146879264121829089997434475105365168719048364099082185676504828911049548879208885545623982492618016385964556446900654981124057106943426757710215694177835815503495213497228599219476658639046882717617963507033842963028275685303833264563505880913443344369403928118655686118739176003828007244832405864404028988206973383293287212379844069042118313391428915188125021746661798067213703691853684643576782027336237261245651011683565656439639161199655701867461000481896135008754147512389978485722447313733342271934667060710695705188126211391867241061928680258356567383266190200840099717784636254246034282324386588891489923233500666290483033731755067467112701985992891267190144673142315933892769289124035178479573152698746070187198922451065709698851857569771025603239284678616245487437613275005623849946289859599609363678169223143078297671116401402530378766340830460635545474327961292830809665167324042408327000294158813621643450888047991049356315892973404257302462572860825397488735387952358065970198780625495002885621456232951240476071675731748971517303948056286187753820865867997303493183043412168180359147717702155811712874172851942965808221750014594983645074789030032401457131236048950289541535021569398088097835798720510860920682435153415510228959815776097745465910890123323992132415520869428187042791446264864329859111591466759000653955240802901726229291784064762754106565200390820816220851514429701839977894856756376638192317540944287847739857070952644534287005014866662895985978796110564116928745572405512437375586075038338887005254621301443801680927046550584240512172248183641108425775948569973944758327050461507695063170865533193372147833403776332708036337700915586919915691824233535122341729885986110034374022573760622552965314722385045866489040683801387623621623401279207371267164472119840455079244099986566133879686722416388478175236990581817990690769276576357969669153533806198291831458881915613881291188777740940389342208092409853598888939889111176373485360037568633164113597152172786794560318915956664641588903379305989161467572868211789614172324108827529565415864622333942871697648614039295779167243687852852988609324875384837323649268345056488646819288903745678979827431442279525012598694379790814165881494887014698681208362498628620786055909990391728174923404975446479877203640571775977686268039588763097648443537028839100220787318149455014043875227956468696204519676434990737926709043036290424213100119568606289093626025612645580651297311914584181984673263691790393215200291930217587325600621926915535508810029500913213035714528338794387017249569632200556294002929324948984752474768156574962281350412797458389331421872378569076046489949993570849502752978166946501758514259610862176264411884774130465646738469185668808080849983243410629662730469285521233570487777719672848847619571201794085571835191893297733798244074702848619012439738708301552153477106104043839080079499623146793862511009644974440387635140186023608654477607079290656435066700522645275580019263453403718535246621739134427157064378045907758514216738923086353026609173036691837452392581584795905397990255602317206254578389488023058572679926840429153141927481801462111915068628565775781339160357535367521406729108087151202122825551002598101946844744311166313517030941698431890850699204053829084293458496026946234709138725107279456848514996453369572632145372254044648900384579644592717173647303414258906472755747112051989499973187016901155008192457596290982943571048409897569706400916317658042342381864877156944668121659635309083763700598587418648554295221059754445926934632539956900833562489599990918153039758166445193978844142165333199050896312650657391514122152363846756885385130072613213021802266275326267967494475897629515023734647697826458929655192485806973967128524890430876987252649857723168173591993046638673951095649266130965013687193744390998628561728835567107354897354629334032426184287202160273764679918884716755544285339977765003534369608931198197279272156154140786579368990837004957876089114959310537220490448119672384750989759180354250081446480499703120724450584370101332851263255224134346375855731113144825353921735070122692897417959139676639532559305932598417107011241497249879640584246005318225086689314923278042599732433877346504628817349207164606698647562836760782760562202059656616612215739451903197855193125608611224089316547824956868224800271431467613514615344171985641419174803099890311737755285166494403807254764327486705285404240533045676690942888592285605077126313588629058393088114798276973027072237319512466132320842224032520062796788721608388175434259213317101836307820115321481451952227569864584679221011510558628738933804748555187467683887742917795412100926411520710275543041857215750841279131719434489693745226235056802702765103523434476855041647493901731002557583123507717096017163247004231935626413914964444816966630908370462598726335199648960853611272891953757996184864933752061463601484283111909997940433223302958764433985047840432929017665825838603658159111099894085434332321335165330171047318448048288909736215460551615282107951955220984808483418391809114504130378208997888536823418335981527866813285672392816833029483715353970971220462419016729643134424666373562906469397231857365705859460395800516681709837528907573354823613470916274209223428691653984381384191752791250762886534167911189224367571227960808850178690642976294389810472283537125953910352360731472606415431316262042501902851368538988699802996502452196687060307834104503618397788809994290159411984154709445946141037495254428281696232367201233364623637460255035437525783534353626414827531475460159350910850232964881440764315279164010480929120008750965286367582605509888402343003650605924726943550154988455617022901152080898925063302210353981073717733753879732574452187352503752007526155550231895334124037070723933672810549840197065474891914971803096830318403194597640478430128888972663756377749270933032227988313313678995062108942780796976535183759822852101318810841192763136149551221425456579245050611491221406389740584296272735401646346457904026712343375687383167240008645439162349500409160967267246425400101031067448116942900398309485624945365842328412561202318551670695627228867652540554087438667722157252398059814137797386138215950736030901406622218620513361801385480019765898204022949484997954333547413732708549987875422081239088563974258224211796078234330515450663024109777593948495805129679728193455029429804160302132662912498012245185987185985652953642881658392234053062140850055156148448507098636501608370470019821953577352496340608357765885074692818757559805636726660168345453208729216409040491637178626130851739516542951859374607329542348357833171757564027422216400007585446620441449402978175878477746425919855512322774944492434874522619960154579646903471873280693934035221758270009090729104714550559469645687079206035456047648595229647444079687577153806853147096091857455715449763124462267101063562886145943906208978346659819450959342168541986188518241282163969013474031882098694331613598459500637962536743263799477158532367261756779013887490229584140886400824892639164255309112745552918436855339620456696188778722688182977319200584024215210559519639195634735962763248834844944386657955052800574417578826854210226714370979228800922306484979857937112962698778588084078504623905378394589414835753208233659610707529745442290572893992447745658983896273708619504672085219924562134421059698963332701322945039130262645555282067343433628430830116995202344138399684425183561345899716204410639804061308253082666903507085889584666248810466521471788935917489316195697865891322859615490387703679738121159599021904717093907532151203477643250988774242926964031687042378373725109694514905668012442338449411441430324084245670740472975361185056248008384135789998675088152530444607224178262326418137726245445057592635997305378690782412334745738292990297165572914683220450664862140779228284855147307358910940313932405187709449388025310554187678127731520342413499157957729516011068951911307744905549098618435864825427496370722691641206175379959322212805274986712141052916553191110133405245339549798992755468382271349882118300255674542870302003752286552393631933831519018034243811173091761499295327890878324202591687781984799985731485184788657933509813023058860675620836590884529163088970733384274528239607169258636233606065927936302432810892019448586435899349943296431109801870555439039908936496234889436166665665611187110031589028445326610014362342921440113827886107712290362917038549396070804767058625065479382579872496995543328406612981708433826000977957675038136805629937991462583307870667876255855919628660570081385049126576474641554292012240972348952304952124439731616567140396569185608456239297418991276071858929336886122810274764127924083035366155576975369591830061122080373530964478921906481769443557268247559181205371600621851384657048244405832006340981923204907769486156842968810771145532833941191345641841581187408142986299555820607031331781866955471747631562011566872169499269969869770312577067594273985769998085952944073857351202020633047074630300727179580219743855207627383570500614253428063361829335209404868250028959574184381683004169354963635458341438675560788769957753341727498268855826375832576826023494261402367066226189056621482368934903825705326767579701507044503624443779353194191293171813122728617632450115391485961476266433923721766473007712094478015414932228441673548666380266964115533560287259879788841742134168082648775384566957241880008961061451043138843570963042545441983949134006219215878934840596338619195590596824046236403795959308709490092195214140785047497177460658543604347111638515949386528652021818570190839451431120993446127796869118860004288842907382205259588105513496806221250143842148466575451494638843593889628311149928838210646558122776898662255805451846722444627066811418911443262716593657710583303732903800031476750309728064795718403868674824076492478728478840095439396952051533783573540729616022340568122326309687328297947905142590835846634581311967100153797612480772885505025063719876903984197753806576327601559089328142622768587231782235914741790081572757361256243972292659347956427848521917681869688913635662877174904599026977374665767227319964903784396925290222082810039187063818522770182806316525739870236558710786087427899270252056586840162902914968579627799891343244020260661755289642899428962516613694566372337391068407442966428043842446802506281504871793992247139713972888094034110418749754152381502494733621210250852782919431172659832691893511176109552968072463972727615670325213801727786571643856434199986563961121884429859266995734043297241315079276897507827625239715355960092211470313449783381874612088653885033820000652189092975367710060180624058378674030357602107611045008176508152054067353977242629033013647755867160465605829221368749161348914796201033374411811415933081415402638201400778890408894037031566800538712558342643635429469883605195135247997953561830019280120700712846497981690607967166992808692760335576131176199639183324070333838222263409578205724813699784094696600496506688136695720268920726573301192203128919663942519943473066943633819233402653227230455028358805324967724184147623856403834635400302674005370432577238072212669154763944886396845145889754070367267299065916719364281452406225001719311864862046902943494351578906503479406710866779249190795550145887301323410468468201844434466860267593835652886350649765003448541443554925185161531380884447385837204531598827214068160343366717128808196991802222296505982887692832974928510568074078595264320970328134349259146011278247636156490100450847457979823344769506966321089646458290062559545728171248601836681441908714494876604793607017359159557269775556951201245423349702889049226754973278832615400637132769181146623204690089694984505761978372378366594460328103264671359808279438131350046002323977279822709147666309351889638891873124787307980855838823464217124402107944273702619057766045206934225106795330706237760146530985744805224576394607832325077304115318862827214722809600901205797305493052007449306512402182292104014224909347702271811614034183374642080927335349292408320823850151354936335256709205305734715138230086552738498087682803744206865371026749822681570862275033569303223928247034617825539933678956651595851995195398598579291913419420681658984847681003582010164471215026906552180429463985109385913110140324356701175063774767216773220714857634898610825899949033538229152780259887140616149926979017004944893157601654386509952336901446056016680890348069798197035182873658652857890909172618142149517649490762649386399622458506383812642464565075168431706803981607179170730071442348138263415958956590540608503202108051298622095176307591848562349401197697318828569458385868650976316408496269727558148247047898794306429940505079251426053751838138930203985896017752821313024433016383918882626346702103364617609574503355518814788381294868487369939288043995930145569170452798063506723804673795096002089549768008938064787303635252750762185118520408458781491964270650601309795461769851551868708608129475648722065464530574835008475845849768284947641383591757907483728217110678080045900838552828393093027706261720716576603875382522968253944231655636750402880827134275869786214701033923365542495009714388751255903169624844550698057757428893402050760114425521018425346432513543510899241097439642301102540037498779457398140983876979058165128074134999718514612130570821854566525641465635534712803138933586591743336269828338804223697303924186978434384849056885508122579058973445619490487128896671996364482550491324093925105226481245572473955960009768969019009536984382628654670308739808179531871910735850725453559958231406750204889009700233681135408185240481988253824471007170369847580439129152194104759448725171483245735659170180152190372378051800645855712911726042534390034939415525101975975615400971609495254755610546848048206563208380920210816422461934543386939700529540118376843224981335486173477155773665405652733906422301732232059299024646619142048291226263800288897237366520333719578072110753776586028924101861884263339159037111991653107080907912786958480520212875841725855894168707153218640076757508556470907773358601253202606510881224417072120736238011037916354081934736329563786258000051625350302124432892702631874204245616512009125971300957015165626960179441449895417262889162133794546386159421214902144434376236316117109496141965383958636206738323335084063728959960621805334681384927661574811279107622035791149358846536375920814169403939093753939156088560390928121943774697689559898029971651176217697560312751316278187047004604488336858319786797849976212782392399883133036912179581856146361490637524075990327966676836290903750853692752203860803945722236946811858806114820052287141124457684156186563781672995212712031443609971796632179174212446760928771343917567852347265673355802979374416454467035124102344460220144457158870414038214921120472560723150499632045145499698023839346228888139030548901867532354694467292382400055012247273177592482322775330278975893379796031840917094481477598270121440375797762407037322468026053135194448574574328351962777369736121913151151428109934656612915634968597058819680338735451877822563252105605642472639448622471343752729236712661095557344300352505741577483608478470357217880675163537457848183294601633820977818278988948683617514093904056227280153370845456916739968855349008015713328377867715701249081880032721556514700486657760053395949666519733298316795693486315269285449531392258710155545540141968579176787489739754096713875690608125243596105397212145484901430843920570328634527375837016977901694375379807151716331527077216984690252788027830119127363118740922506304882058139222522177588461793721506214907452836102973991083717260181444341400265335441727466915694368289239219411942726723848873811173552329602200534354785929630414669449172841112276085074611776392080392348408031364870403315695727374534463902318902302108924130235180565190498278199854341434589002535622862956756163174931405274109916126636634307372797854346886062412185194336013437296663470968595604981422210233989264080199987158939263034471789249978371792472475678320247498344735914177864033023659964525794192821917483467950760044205202977832589227555367935265412519163607493064916159228163772243439189719461851128990659014249588901455732072641837731518954098671915206370979615668015247581491765140072173420272121322023726433900367588242776562062339684276999294346323569754663978299834490340216779998035420091575318668869936295704137938130115536454051095559557082231124163896054849316386690354002345981630449590682254376551240095174962719855562445399121884546400110532407929620048659111691188573058574854196705473383130510194319725911918445230104748551857136754203340850733901109529156249004362566221845083501705650939154201627381902919963119565831823560769278329426663787932787981481787023081206544052389207237750659628802020821787465907329033902411516045928131266427380949814350965965606596843295388739061916965133027840146723384480502899373623148659599741039902800792095898163852486425443389926166846449907368461058245656010588467162226641825651872989974955233872989840747655504268415234055492940255796833669093012258057937428527917776160961499394632884233785567990572754352617197895570399083427116378193661277752231556912712436034305505637566082719286276034360193573775540568246333644673051728942113415956481054175445344634051482763333146860071825745227015312758488529068098672442573576144719904212029930442235854666079787003510990142363928432264015711974670309102861373266017606704220578784435999611800505729731512115834741395007438458175158983381184017972074499148888324113706356064792940797345029897992625925551026755727198433878116512662623057464768938240684893302623338666146623676991232686928855333988181417552154574277974893825313424966702442131518263063940997131692781679196011391098321634925508091707849282954090120122779465714781730186709806783359859145354238167272893420195177448129643660900200762903800463388285837798760309211343083369331294921220323842115105154365179900197444455400875750926388025257093020179919739316213856076574437003015181740544565598883080026034402650630266461379311066412217825350892636205761403283086084555962553183953024798420052929482033318944345931164440606363344429765404005857399102885884102733711388913176273479713512784273018590771273539199937930169594441975007150189755705137403608294196087270694174576429833261004376664845923521558421307290411894839332132935487468476258051310839967971519149587190827543949603351256207002835255356149303996979848365220768560037939030387322144403789827275717911007423352565882820094442808632480978988610612569194032410493951803523091707779850095480242811021097231815312399295306098384408969880692691093485108752519538650956296940433296324325145180941061915319762459687495964289938330794589415759648241374890268085762212060251248683709382581772252504753853884868953213278710499640453494571086551136966114380584639174603897271783597804706923579720303861062733192965043947485362467329473276252915976545345272217210318472201072504914837529619367642356062508485334997204530005084395079528065664995860125331715995501927953571424211705570646348092137730138487076785377252461577331194210290032802169104162144050546743047029796310359525007210705767058522874925254638695570576426948381680262179393837894901476565939192130972992443303723599954639293491651418340297420969957776500523406915427051110656766830083461141343493969046026173695342279496562404822337000254605886888934524671259460358783481971257879269453823232960298695392698595963966732754271230565046950919726293010300041026829959431200777454227757804101421108483995207782140408757895188667569656858401867573432530132128391041345963781260979772096043589485251998457302978667454379974599172872843083875402085813468786113857326572385850929845477732161748862359867820729821539180619236623434548670350095550096338506981106500290241274623390026614560712961980486200993430421643419084684087849269519199772429071910013494007560460326995588424600790725361031744327533736547915486076735720279197082143298721961515918039357427493583105098080929939781959070432425952938360221553157045792577056346292047869024870568781970318727497133924075885231406697148872306305830648098127445023882250591614524905495843976493980029249465284525055115778405117504547368670747399948712096580470625349691536216353515927610862307513907760017873715971504282041169105504253379010005040740027989855852736529387744828181774119554109374841097460785122821059559074616788864713282183130376991716169508144475994096746632687062458968572920964359572183074600377183065766659210361053758353630089290690347986285425141304352161232919880915712776941841333009036312185443397668520526121324908526109020361067765751052230978172695662671264924324358339139687590237672213342978645949543183920031984096754790998607163474492736460222834413818694603639339019274427086769945679568871406307610115245880323034266536155797569771325149042796507238874129491993896953517439314555922838430562802088309663786353592959646355263181439098754455452271504489606211579181842284937752467241910799730470532891033994536175154710385608015390879891616888116418798146955815607589183027313562056106563789920502770331198770532467716970535361629250544646316135307071704386050203516257152286820808056954970970347384873495032046424761139865394135576120159614734021509102674015351775596009304786460043874181589310052420086043944151617562878358432397297405815690256695035653248372801175426350907044312315699504733504301405848885271092850221827978769189418569170507895628125759509838702452635841164999896536829824204999384469926776313081390979118704655158379881181221781929246340929507917307330089146989421720280264520242211648740278083451481174138979600633055149006518981606940965818964264653178386912438010115288122346160010009403678578241426031246601534152529421032088628335147166863777284714532536874325262922078039074617232683760879556499579219895376031287328660459655341233363371303137317856634829433517725120757207462752967657491085848925658649644674709267126416899144435777689767675077780398159690504889351538178269344101518181119886666143171382856214567404764699892798831840170496119712210404174513758262935252018465919842936502719169725678796867639399766303656212882227446557135219580294151663988550565609200337725039667734990436926532506450846664482439647400848255515494386883096467177148267939163025528765495044912715244602883852545761390888688747876078904912020033455177815977204218201982273814055244541595191164522113101752571738885721982078358788122671144929251021845495828600291932759212865964794156018315390370512578270023996567703042029670014408455421342602962034128330483647996736434838482549259266106132905566894608789537664112065575696372798399483095572790637556916278055308271516306942074348092466553782941527314608035959767773275212927930277366143293615601044294409357358277602934207429476750169167138454731762877514365236543750411483796641319691797894266345577299153418843195603351768732963310658427295383238850703103673171029282925728847367274029336411559666524629875570498161872879876281898615155242978205514529253484092291112944929831755253100717093848711966969000332294231346196456245428268794915414553998237791730565220247058652192141748041723857531003224189427003196092120467718468865018685972756224347657917147234870384524236847250744603213975868573452316755585536601526731132549163858645478767819310498985700318022716525160968514708697219982707190165539900845801456914828528090631770046542605122881859761921925395600991976148430728902396676877214115762153167028091136680119255491015013239195727294751865893648234894968195379202256368287959641371642152570654550422317749923872184069522316694671010820007843693898990226780967209563851685209912005760328578927625420921842775496883596826346268127120242620232723348914210083372673171391581083994060051586686764458458810714252806908587322557670182345010339844443083344954625732965160784714773997088991880751120018286337704651402947090083942187911394590491899923574314529985181582260769256353909012965580302239976412913945053371440843278280310556970418946978091094630160880545398695331080825843474649836453542144694074750416913191784219329457030935276350413124700625256245785811779425043250537817774833402660392372230053984676245816745352559376450628439294813584312253876633516813243552294974453244429680518788543891956262483916887519460893645617413438827531619378171985329250177878506965769728170321755512572227201019319925601827043179151507598411284214968600955405820495794812963488789308890466213429410352674671686355342865813931059633395588344537352087037064374989123917599646005919521133980386315390944425429251591893683722349485210898845647184201840864352129100763406648627920186212200709646782142139840014506299645222464227163092044255119797005811164457474528637751350126309420710416739793149828074022817201020434089744542893915344490677165074804892935180628839318198815357887283455012829530776052824996207468829045138382113044514335359263776549805782752532882360869119517432463451835652622913851027902363006323515456049095044832299849598293516952265457623739876132350387444630496432057827807380740361376057453164994686606141651704288320667045451965790926541683801126161822687101029835796581464989409263316000201455857644645582455726638867757203439524550953710705922971740788804539456667801685309530168819774968614979430954833681874980888991644533509799923064335563818907648228230747451059360423529675479241290360716887948928595653374170134821017096660850449907186028925753530265485667437894325020765866746054789707784106953404007735780893696050130276416497573929009535671563438463322388770365896040233885062007079563253223066781971952289362965989430799186927358297947819715544116669960102042233832461904187432163344868854585360722626531912846503654513436984232940111708827335377033649202937041039727641078241137736115405888593620141995853887137934947905703820692504995061262092694583722099463525713691866658287599559383939527468614516264733716294217617250265570426487276023934126850757438973313154982451058724046827084168130874188771046564687263998196292743607785222314528059480876004007841718788804781599906439330322627536572642952618483155116718752300769182284591905055813669404979422612957800067539364389964620532059502011162842225191186753166207899366646191094475090929298334116134826858559797422641456020218157138825183413645506897064670687176348689614412091972980569389041722437220411914157716760358976984515501829337489709698673430154603579324695808041805053704915545653061773324734749106498632811789283214751038448581622900047806187626717131640509316718331649590667431906722035923238376973308434318581944197591493502048746859262800436471505556252335652098306217822517631499083358119299667235393361569091235176033982679308390454833453343061511068294697316214354132220758360075528302918839506076328452377117740543263537893095082174093597509034532380293872133498571519741776366905522132976516653009807465438174419529162566758301431743870599756689652518461518048423604037288419932147261246179585994681357274888956844765779262023490485730902213900761742803292841589305437929162500904769597025676203930866030735210575441189509180985721406088820355138559757799925585431537082376654867655785342305218603470524967533076764004130493722381167466111333454654546788045799832702445607496717704190692445317908825717558180170066168851664063326906807486968102213024868596680867425646252920918631220247721279717688468933448071382845753134974774290459242465062158444492472416335110404029541044133742383232482079482207912327372240417353703977525264213663654436270059517287389951239000386344908281689465628243601487722115139705854298534245416309810606740972988593425921041311256135075153195947604075309032880029682155524006671643991244187004179012325264956363362045337340730393930644919944877924647335795749213001492811053251712389291631178097927592731966329831338994632117652883199072157984502674066349435177808777900534872242711224390932394667802485344666416817258457400131519485596292587337508101031571933317224034277493716898651407289557234859439059360251728127753066624602439852781081553479642820375604552941271833111894866164091762913787287069403548850722862540672912769951673523180056919319164637034822676127994431117253734044029311146589577095673816948656921157279766221730988433337453418533765390834980168302324725875702137702847391180710917241600167235959784641650089414240042548949024868805414273392756929171561322415568031287501053671163414813432343312653726120127571753866796139549134372620511559494666828782933225127718115762652515091023644652870108275191810799395916047245699909610236575324219843346152523705024722708250594587328913494422447107423429559244356327346954803536640800123570076798088412415736753348568277676998322271925966972636271037787090339846552296865755119604710545373631515999485363973560056556854756467536500626444654628941555885759310717596965684704493495750299012537091907944973550281412588158437186140439825932309366781278066249458652325027401491694943220430806287220696873747227556111889755861441308502192772307160306194350128232443538811842036341285154444805185311001036435753681962806592757020375610106390565436343103207848361944338656125641195112164640263541125203200243784108478847337193846881305940858544026630340120011994442057234442232795260175760042716690737817325369216140017118791570194054683481542206156418059338452519798308100996933551967981474604711438926975741111795103766621521780597283153173657231509033307038473054276981512899441855446032452508123407224643237736437143258428632634716574272239650678113259846215325407216971212886051390020715783879162894204525055852644111618967637865517257569691348945285857741299200162428664450782066643739978184384493735691067952302096318451211121206948087086451747095433315469277535570437710635113408048501366624706205250943648850455079380141924148845839035098905661859775070470126865602619832857942634119357610370365230711527558028431782338069204793486148822782456643993983264289512133599921830575138316992686810587676478847412124120242733029137997365346295819833116820960376124696534956205048739431191529256661158430178691435983998254907223959496401933452893277997327400477323859837742326303256904218917008109557004237053004927428331994770215556508261924374579912331589307814834018306772141498297584754797850965488830651954261205902830111735523259022601650957498715635468735622628756180473697809335532235572718411113885242079243909752970494382846814237043377236688859807540334417734837545260405039776818986151297723185143196475615079283133797145509477241395040594152403620180909176392043222235173688468362062882061494360507976779381002502022398363949252111047062017417028883449086599009253795231754852564808506529861357008476984197756694034782024721606635603629006950000725855101860815335800634059337442293431260764010342607919822090978410770322620067166669705700357498085818337326557397517675243249909092466540917466292033499811485927871895386236278544463652710485268382243444901112980570731439826104121780340461485221645127132444699995607397143534814917428803584879079622277028325079271119766872231940185938243519477961924066400940654012790536570379623677421812856364455925954475334345163704719229530433599030110003687146109651314875064480697606058776541034717366147765486110578180723827322404693660673176002123211070903976414664383429339257168507382721319603925916853884167360057010268486641758367701801229035400736228062643501955736466287911567816848762761877327984003527304293937911322609153326652528035051052080258322976438819169853157754637548060582238326533497126021593812636968573693286894300928876333007148481532152276121307159441289017114931799576560005393460940182310419466615629630001537064608895577757979391064285039632252001650672254528266048284582729970415352132388270027993603554431995507098796732960490179498769365012350835907152043077232178034667474029731503810603966152747410464349862578722087311198280435371401298365987496198504320617113359819846074397353017709591121692109715962692509330006051173994694880753049886601894476444854571211309513833229532304632570880800126579820666079849664827704011913602664208066969037629391086248254500045820258704838322568186342296569811569170995436547267756049663717462717556724393211619713579004506110442426252532851344100011421926206196617956167183106109862406227887096586515371772909594579249319229533312225649115053273455747369940876844498400527617811530490319186001011534078852168461184639660392394505846349993489119479162744114101772886767396327890035743673143455864885612077097703676320079147814934632525238436688798913937081910607907350500123846603319832328604978756068492553717202588738035718794915643638634831326093309976662533033446376362451195599345391763586423204768134449619568776420430897059796128038477153399053541432432147724516212719374107284738328652915307863822454857552038366433622268745781609799414455698562580591156957116719292546221763937065645385634232051154046135032840342301943324403383683601355193317746561377257151421880479865232589774518052879196712409407919271490051090961228835917526186788186564470471222065738740205926445160927398978916920461941560352111622982875413449608360350302976099477616786169623621285125837065645741917308941119565156398226587467191445298691088189756264164097369030376880373827623405844285555096381831165837183250716935748652206401958347851341684342561897684330140540263213481444001437509789122958196731805094700759055541446620185048786488572931123902445524462931933309553799995705562053047949416193752276833212759420976382900063870771188819424697629587191105687589851637714351393463670902165557841710863433414471434020671383636595454864995102888728857659107813019655601493359978596735399769782761759657458823736828323691010185045341050713808321295765398062764711801159882880433635234865445909772477318759639795419858876052440130070675733911653494057733568703963480915617286443186826902048126188146911918759366304843633324717077211781102872433257622746530497225717404433414770745992316767749767109324096840775222979211350026290381563223550461199610416168674435889418343574768790106234150781412128949961197805743102507489991628326283457474733400582588571632690038670392172290591841212011340915763723216158077259716523687500720356120190393823992608496375807201410458405979371522960884295571826425710967460491969309349925264535457814147346356024382765834212987327131646819561728645564900111659351546556003732185329120856463310801099576557636077994810947726949524400680655098116490837903302682802612230835444639539512799558648037003832383371307920766584534880411257653618471698201121657180356890744256975191279931709714528948397322768805966126083276648525001478571023847429164285354659877001521639978539825948734678048521907790201623307168885431604696211124646388661441811843659028051421438227131603961866447260054535093838852212440744501087684948018716524631145399378804072564330582852523410325326143416710695373903663903224250976779890451286053905577261451082526520078536836361617050688732976903738172284864211650245463217421862577514620438625266966533736111704278615430018234150459053596054679472299693568647146154371786888530194310914218577493881968940206148749754340624408986209677079754170266771146261640026393784268854353193341309116324942469791386986581842968534232951939706234821225784611148112418338853334480527426210783675276223530719579763057667558643224363171930656660090561625037894253014623207778331004498387439017965041323417441400983026026740010026057289211632148556905402927174793976565339649066431990564918876469958874394084202868815709711749647190179333701215568333712449738492341444395276044140041078238461452185698051651561476579163467447931931417201593015891398179228244682246161150761050903926797506311333482537526370132285195120800620359732073838644726238191965776459662374578579610144875844641349696840954377599618642535932134398760816225553535897561927942494953633822218016816565935752163313478238075495668615912144113388008954372637525528328365625685451083954394655179208107692889834456137774567503951304161174923910789550847208425147072690814792319536819766355193822291546876437630673607036973712530464221450069885799212089195620892006889678941551439489985092551355364968565320286474825947115974692303480909512151843582666178181721091938639962258093068631036985842944186779183196021832463297312387056392166467580459657587675380635117282334426702742401736412189561530368608907467298290464960407645317589028289683831428230242969984544056578959414317670392261409220585432756603112702676835830353709850190215149962367299257416600198410665086470298354317335794460401441458096725564302190695531742722721633940749111935728791264790317374624157915009237710675243516837372730852832989714864971653329012637318835851860712564301146346608440162921900684167289485110799623512783014854305367577205162342902810193395589346186152660044631307211726050588620353328107560277170455903921891527810959362789164549404470662847983205612266186855465015764480505092245958411833936716459954438679699626303301013583148352127704689630859237851545722758838334700364199472493568494495405440471592688021063060541889440454999802423288175413186584693291186494219075694292700209106693281485434549747329432201856769241869641851079389057815582276703547383188255513227328618766284897308606591283635273447917039142701095852986839676088674032247860481432661236074916781759490531883492130995532508498721929200634479796080536818828124700568645390309898272827004901784894778645100815371541524383482164291228354821552390455930864027992587351973886599167479989027553037086582638637140807122009387456651393200336022107238154456015651731441297690639277423937747218184463249957030727622410115877793137096682106132630738313669184183393658002388188053039779432838980683579784700633100205441470755869027300668969990257343543390191222737009133974337719338090758909550411185912914186446704549884362972651083820613852134097122638140633095261385019930451606198322104423889179551305575524963587886921945069833313208266352470371631628345476937052361434884503808519301899063099454079517965243424436048652708344623376790716939154859578482316265846239330876514397190242413035598426577974280762253931195287308904023057883657178504752470792058082451216101417890301211271292261848284831850348016406231290551810674305363960302567406060149004372807378160755673033228791290710873644951074820947430610995051947091562182042558197909978728172097321142648170555540106799443184126450530626157939969415753053197803733884262507235710294477321789656347857134265761049328045384756380207188398577368662796955500616913900137319968301589390555467709277873351530470382880454334004195321283546479367000246599039121335935929982452403864368770664248669689704096479935295575525906568423136187911083151233818907857764901427535296662248085231041810097271333833990146937067766125869614992293211089933572554864687100628620880577154904653618608578691976142484086908112274224364332878197986878288979340092911972784489513070840782627321397564464991896414154898659867655698025317214533275546367652625234829341354221013744969726037199887625193902840570224801671342009855655400821661801079221180835431584193933342336888971924512163081313365827541432458678630122892924303588312299372310139771225474288320716064658613052770362254826287150367622989935058799259123710456502855604270533114580079796352919440800729408965986075380165300167357294073903725437890908234278563327116989690822709108713747611081764472396057450945884739131743075061890363722490147158697555920583265881070690547842124498489835557813903062260513820858011032942973382012162520187115742569056039789584208498032198560120232439715093146843082846653059315541765931163031627333284039844936738359451348073109131214880813677597755311928021031077504467146737599703378567231539779037235796727041047965222168750963093171006775548060234055944836322840069804322619169862210132993252955241757111894209390041870079510041159515188756126592904213059902279910085552613531527128673087848858393904279510155110027567660970116712075112726876427888883565170683686031457644316226748189857461476416004442601520340085739189532960457366272928744439433992090873530315311643857459456845364294246973954765682425119257379643336042263414581948050015477014500552774932873440882103500089249334342765746967268906424266315372666140551048233502774854929673157534782211244455319403384994282628889946875330417601514357717624715416910840944844552960909928629696549404982508678836461710588319701716335153782827727202084351775701071981000747183993082713766761817272521268594416656645541584135325917860608628312076723846577369408743248871559258419251546071156264387820631521149015890855310624674015547408748475013312843205866678348252577443908971468690107948464156332165753255384802278414816114165065635589309608067235021007088179997482894025623311589013466033095916247847007502191454113992266614678888571270565371433246403528708213341145947961130786170199738227668088807194975987766150357456904185468039605894208750394925319699548168714982672925816840167395134655678744785913058590170363593650363931384544410301214091013537865973050836479914759417761729942365092801522110253189924267187728456396400517612620567414004914611670018155113591123214441650629200204548157868696975246561764745277024223788537891984505014536144281989099170619934636139465433093665474182061645452425842983569710364382593157496147269559205442597113966300390438767408899038782858502523803487480266110047398557735020307119364301540044434166999176747277062176621539618834518565952549880824969712319137743317395164037856000940660782290025429330544111096085587907584589421289661502211790389679436708490525210088771869565227090185573304073157072993618569482663698506770906913136903803951360809082246529656996794134441870916665281285995706896721555224624724313098344533465113063531748723270171132093096485344677830268801579588737747365660184794537831792969833311389692717424972485185542730287450614012051425108856032858257238645778228599696474943273155005438566810645537244860538417611227411418780803332692203538500349832956461892346023217420145545537788036024728363004178256815637023630153470048952928437397075851831073244427294567284285266729877859596010843514151049454473216253116769860655612672376724627364716458599532510472199453791736644676066386767713780803774560768142362662202939317106874787298688795587044984313946853479622723899289565887840723390814696518262231084798673292317114141059430037482791953522503493943986756394584466546739763372356500102212034373046281663327608701088458695088646649271004128111287376082330616567072287827020964338099248866871801279746066299864706853339577805380995997269992863513332813670298401087630820818303560657633398721782926329165758760381110077063003159807727809875757535897557250443795497302521105345434118247740389166326443695813046029746363704469830865975099990604917192379274887909423240867523408620817431216303265097099908252167253726654723983320944355088683765387611892418073640030183326389617152177305364669858806608922736294804258157663006148753424597291618868948210751314026523341930714985599228020590617651039756826179587393319836059712946073425908913074487011544707870674838188817823189875417713278602201898207879767990076596285596103484617065731871254216813628940835769395482592916384766946028503297726989021033359934884066307708832747565874960413381156324488609572807191727249485891914963910414360198299349280007161448211667049428257580629619929953940614320232928712296900888440411621639990216926143814645607988304492717960805612622813195879916468702385561866556145497464932207758610894484957438043162149582181727612032139760590752484759242210529789418337553951674018012364042724158930538223099579805044965073965055674526483019448304473142350120651024582902144964300996161166711452913366941043967330229606221138716472027531546812131074286833253283603947090514317845419769191583697577008651653360990962773596341825634324477465476785252210470708506630263032761605808374732363239343724238854462734721432443868642916704929207181528557172191576438347454213685401955849866421891032332404875173815046060351272115782506369342572458703452927537076832295447693801902072736424018614710627025926665827633011345570173909496129184329252515163760404733477982589438633551905214943277527081806122323341096295764025804096672474918507042063193973904443305130836537049354398673197220675760674505814750516545809646682427956103378673255405153861110557150277431432388444936490061043300343415040876419986272602123236009452291496766859966927360077632062542098214769177614525748746975687984673649891024154038048011998111184735588108439944491879968331823258877781507333316766745747247239373851593261496425904031072100458518341374454501844488172367884953122965316148418118119605316583591768953227005903188215033348756644009450743007628588875556923466328413924809911934411922075695974077690584986353423760096833383632937318017375515903507881835989196900376817692102488750877525917074674899018882013942881639238805201636768092613530281802613653904539852889163047010210885169651533709413935933018674997988950395067015081705821211045875102443010358063854262289782377614476400942524061105121165885427259196828893672084568526279009597952264799130588425980990427806798398439152697424886453007652667794350561036404233885450531912069961708557333051359822613586188636028517263120102060484113460363670765486277083288072359795523840875894071597903585833489507317824851784576549973427701878042791948599149454072047456940805469321788245212723138876358523592059892538021169263496406252714346487303857999353529042217320338414787292662819107836226179804428102825781695772109325518297917224076855938871577820113235266753276364966740847738076023874241341676717673873463511634097386222576908215144688302372967045666423936556952606247547064130011115151038458315752525215121964942500067957260271600799198820507499240743190345281991391040139931460107931103687737538613100804184498413970157728348980754232147342623542991166123085684126878911692298962611375068651067879440102955928840450510736086185106521210898431130232867226675851944030221116841327100196174738352855667869383700674894819949316509580838957208844385055724284489999439538741386313751850650865587565141892857088803414827188935030744004470424015218560236233627950266123400384752506858990663658710267122998342557444557635489561363361030313227615647617513814107579710098936373823335234970411562826198343405691401837969121748118818716492025330350596518483747843735498446072997305455901516892204652401404324332027671605038434744643148281254500884502517093952234693852945544805916246218643372782829179789597390705648581594173809592188916233047752934962205908484140654793161332793645702425546120242109165708800507159882239939620404889414344919242903381140483400108427124079399788795427858659214774629075198497515603703147139596155251263506813070374438887399738258094056054294004633066786101650489435987870467157511700793849889315989219540509523885366021310149431914452924409380279660839009172081678001745544652033125638947533888965349528836841701805476322421008648738214302347819275621748334153512036663559963919404342659102277177607798025708545635674570148074801108750487493000115381026296826629751754711881400789546592116858101777211576559736314463280039211128097762366705066216263271672871592563073395990169375920261237751738098180467613251760763746570239145626392791131949264412905139185813013058911053612141370051478056549335387436463172992500092176268808309462108731033546123676920152111711945328032178956036737939683944499899227743006549360829961446058436598525152130438740311617960782712252665417944129433014062205827887539336326109275462130970435561913561727858207296399748331758362071660148979934245452789541748418654115971023410206688877384780714027424309469623317167206086034988574368556843850076794902118832782176722653205508492194481537017456618837746655575917776120471291460296430460513002446411070747840806648667646679581462989945458783785529572640474016958766241063071101598348382804496531837004926058978988244658883096890083693047702420163876239257614384726560275018806662837602099714055046055498856518707861950487649688595083464548588726625751731206794411384607395933075251775659878596145623483046957106503059914090500343480009559681199474832075305156630982543568047286654900218504138193174794663807347467666798995903265787664667334799654420216882233888464809342898705656583890192504904058320862881492496427709172637394914552151130546070007825554028637148679997246209753854847555067462061202073990711682060697536082068484437303241464808397917674368800208067359327087674134077805007325252176590237091578863609403006520992820936094516710458230178820563798430156105368712770277275668492197526223570038247894250578821416070566465372401623215656003753475129859025529151775240350031113915248649063379656015050242501062308290107341180279871301464394780492225621949031474039929835880378708768266590279316385350283125600901581601502137747150374071596229186825202249090924266685468453911224104835468091372630432047917141526498567885599497856173468518799639963498029363817033082381296018788072725338250455022025088003521247178004149099764007244533993132865549904405218187727431502344144602659807559949113632910918125299270859872102224315244513723914352518420329957075377217599795072649562957753301800052440217860675337964751781365331500244201122832601797196562876919787722355965572044397493615750211119310583249691963647702661759350645814109221479130990604656746106041325106332092373763644079013441049688224535999094692048890353670972955938178424699599719467061999106679765513907564792759020290247834378841174764523625009053712445294072950399002511879032679401476682964099993240306482193305323476272572922332630072373407688467058243891640822023383257398318852701196654053991193983680536587478976458558389153710415741240823379043336094917454642857808650135415556895506397791298577871613891660057921309190635150587245966950178277784384214160335883755182767833733137475074768961118438746954156209265128953626591579500431448870103414800264160085393499367702930615617443125994837411564647068767187055473641762459673666875793088236932762219446839046977243297419734170870296588136770883432963665996739577513689041812361949553046682642546008305976629072437390864211977061636722187317225619286878548933079155075819365445208158088565374705228307047254034114237959538922895127886064536701475603242314046597910501921030297601258611933494239860241434060456003870553182819990397320435077596206406322426912460383790435941024173951239651564635890875023220491930663001345712763072983500837860480018732074850293685687673417894379253282003715551440895860828885401133425387933521838310566568717687320931326267249295414528989947210811505494463804605584482091923910944437503406012753459121711019489320501027065662259002770088063654206137293246992130686655811466601607457607315197640860904700571253146267795962570876515871086920288409716186358614941615632962314840362990650193450989940668004466889463463917958856256792961726159874035199706862719100002540181949117210036836107460177911875659363849901960586388088170419406728645285137218628438641730652125319552170548060006087914521167430126103661524242676154197759742546596716769529054203939921495777150552463348414980285136008605807908324935219157733722926026977130755469061951580464115291903275747596768114860056358191288435115320088274346932170985892331873106281432031496358460361093150103774581801526558373044344906626254915330484446789274310289868173472413773442540719464221421239504244877884375340165762774549130519124312818267818310743059198517641833554663724837330111216037629218039391049956177740669020289410768187022836363076322830672460046266475655069891464523143078836130369546804005463429538499710034469131062986002558314493285206525116380114630266808413800734305558993287854967239500603375691069678373711040313966795990288457918992447526256020914609341607385377282869988746967927377154957938819058670100507394323860933933043134048228243367206487634114893037379967406909106899558236093743534261744180203167435019434684948337032223514809441937343703980027070118825948012550271078590636585504770001006542550853340156894249781823135146277552609249134201528613815471274033778554122622525326728499111714872766534398259113941293278648200656930682507237763086988066712373977308528475660814097428598372926099647078790214562622482947335147376821660326895584912837026127681254561698747097291963283748494595247534182322934354030045932568607115790704631008824066153513298291642329898635558291279494255237920199962810388590920093759871539898918791057562125729630116158230618941360596832854575389444307827398956961702202486376587122212144229844798967110606840942678410618623654559500090753260186474803280899152994747139994333241398589301778965920362261361527913703597164997790987059607119505516434870662864721919467250938676567044797409188312776149997683347301248868087168421462486252445212649730530037701411354739205696178340541743700798503946658205538392929005404004842124582451337808623088664417115470388062175239140884872302352702918183600920805153819282796293893770881981094185093878023603721844947612444058648493353760841395888146045850277001687631869379743451732227254988255130912221783494908586354864971864748903456668751060079042861797665702320972710569564569619101383688098968212568425903938957608036097102374974987717245737250820168333199002677230941136525093885362185783568399366581165148931186168816708423103536358847207855651055176798492176016018038231668107350259876165502996139542507585998426314428483427833932525826332284322317357276531479056875330340983968068373583633866247424660110077706613022622372306089704988595412731998794345245360234843675385926715207776493078926748181404758717379995688963340679361526585080857515610278778329417895769936228929371533859212100773186787884413639485261154358153993381208003069665871362672770308646632116920452152518656299484335129041205120352464642961776607998057757282966265709501058236271732349526414886066071107692362881037438616772121920720443784661508831713395794505798908468045976187706402081966862807290182682790517828910739378335491879098256986790467503199420100872361466520522907980292090746096615863684089000861687898283270254765501741403680384922595700793333799363376877428690400640313746286216427925261466842725137847421527514426222521214979364843247939349311279997255418077079353576862440407867030276231101196707307366730574213492563726201694473521303193821449628061853067531552420110616162724572884762971169027360982841292844005016934000000051901928422005801127794265043255618571583908405149857762288854189707074620427100532663810672980389521452319106287458294683945146820322517867031205626490966780325676520501673419198135763265202695432214299361619095663167799216493057253390482767560072142706185118237095910279241450227865172378295153733475715411835800736820819247623752751398190186324177320904250361462838054349250033119286412760170562695458424911219952314807753547247814524393491713287792284295879644940819371130715356187381749161452091976265230027339804760324530550448225869857755036035476258084866013887462383922632331148440418741454567188656737213114901400508676389546497041155825209414214293263012765738925351662672521848030465603756419227379635354585856096865613824584497442593533385576177636443192576850892142233431045791420788163863882542212490059119827949081021256925733065909924971491500007042047993482386012366386597692799195824148872510159683380840589349697901261744515772983886514620694202472840629632163601681896967508568749199856540216773646901876199886132909934994303250952226664845198899784702812933473113060414357100735460939010014004085788110019408861563390609200213926568136764212110925926846812992016363025462280264403315096816427505880610822953426429421288320448179030475479357511983534389110344888082546887340285258710420316421672565690501929783895733016914167088192558389314693869680686567655632930978643529089863542261406556457404547170905590977826016521755961966558497053920704091175105465875734106231088166903100777895395990395477266267867584583382660847518016631810275802916311731664747876032963370393906948767591189641213715297795029854445703678371558907826856738430129740572520501421829696030091021066895629118512912345205325530703754970305779312311540098780227866210836291174887674426231015899733008442698184352018525150001049486230089681348176135317215776621869959022169026694630738155176702478157722572398111577502024191462051785332132143646093035143868817337577133243814162639906353956718180659582849415240517292816185486977346217133377249292091984922729843317523715412218049654253162733482760900764727574920568942732095379495584498022116608274309477800217263819608019302117205538718871817096412893827370192138666349024104887939660897010615531103969767127039653544328457087928147685193170429487173849857410758640037093848692067105548142739105505135394081401123837638201464562126681795954561733585246519473239621902448648204865122644407297694144167861208194170420554836705321196499924986403295041595292972854924398536448977781424376635978100905796364956903547961566080064908523052531872636139387728012151379946246337537797517093122053008300869865672422766531882724497726833561278221617006030579543223028843605316229249857267797948699026118937075713608170502875017749403752848396994432943375541047348851051134108545070253940751022933011809833134071080707905381358060510687964705445832912376281297305097476682121462503639020557977782677449334338557935127045896180339616144605905583359334167603083352413807491584082123072443565210348584955565765276947551927173336026634791232147353316614040457232824948950327902701869085165909173985418244541365397695428145185900842406174711113789946397956022860274562694150783601296273086475422941750988560331046169670482466275730276303319943868641084341384801467119864091637446978446872131869842993480419041332583756251634489148067667679852389589273086853732376003618358126483503072045244914528036978874732279408526553406251060679314850822300167668797773048143249549137908501431653870610500449685779864231165433433540824496194757297070633471004301301058231097058582604574531935772239257102550020101683418762271193258267352934433308438392607968794052918066186712953532844063793620556402617327609871663477013406325003239983192069819736915633210539382138969725198659688621537168600364941818307550774016248225899383230946878360756874859187258182030777741179477583023646179003358583241600723922680362518483856609303715512768915594439762979764219981959884611495307442719036786595013408498664229399484609670088917404499106064443944611565856553634950394647403424123814667889454147450944455162443414582670140588308381169444053328307911950873872364052959416122247324812371908708846236893811975867243164403043302180073334838572113703937921128478120380356380276472889844035993576136855184561127266496882862760541959940548271104912335409899556578121240478511900116360499927451095595673982142700099109133370978725781076470859422021888873026089483396986965042871738072631912108864733032911331957610571319145687382448475013803132547099042541441082668581512216500342348235769867295394431397876741749009011123277562169469350490112310079747190924393759299341819676609271643862588923862868918180247221593496944170303489137605708712455780386249401277597135867676327973552015309597604268068769209557554482732784176754533152127394509896387172946315923590598157953560072977421622601735774340265889932151967187689915434298699014015783311406608231062594439497267639152363145215972464326270099460561043906246470227150904912761938342875021095471280088336062447849342462156699991523395417560985886220456479663639260088220265539257489816011620430337824034687749321221840854712947712651396674081337797261886790639514440832151454051939939656440316404328786339025025390031005986374120636214903731949048667747668191276746904400993769954037325158287637828796477201350019363707503779110717748971942682586009438251590831836804442111221795886587270497405714435462840996948626214316474875380367258245726951729881196078977825984915125715671010609421164373011161232664303326587166814075665084036262823227760915629756384784396511744874231281620458854153550310758463249560911356431199102410571196093132229053002327374407521138010774195362239278122918275605412624881478728988684734102385975479783034956866435695090003265031496028842692434955481496522825955069600506990536947129293335368479681038971902093876885762206926294015264883465696697679634657107072765411306348046807963739805714759278077187340191367567283252739882685521669289945686657147117074190184022017933387221623496500991724505528100110324510027667549415159044262362151586366087047303976662409957108826713747799550438034210429133206983723291935775149465042751197064811776244254877300847496668542147465009435186418931856621001038295085615420725799882226256428327599414647694525733199301265269315821043312254813105049952289705937179907712892290378003787777148531262025091843475731724655764804284870285199408078240464292894056337165072923882055190620538702346748725154370853179562956894773178337914607137972065010917234892432909076381466978740691682263205731725007040100190625480419498997261262113982558264141270951054600323514220489002425298417911792223625914452765944348740682725662459935247330413429564795501902940387336032434558514714016690289135302501063233356625723642442794801900835572969006051656746320213443171981078068262854754882185977241331071864073246736955041775543468206916790136942452188561311353698272966604329424805842429753980530617249176571655024254081847344267254591017565159293349551837649772870643045498929165529450877746954349665004799256219197191493422123163497213551941840838498706911971607607626806279848213341112930899021091226521038348167931287829030493089561372332623533110311356076858632279446990149779066573441358810723123392218910535973328584963960351909949520028630854674743328180501481455193631392276306011993122332401781659036149819917466560763251730459821486940328125149781916752018397867986657398889274377663781799136775440744874184146080916636707346604358360073399395407462389340396858258876953887351654078356821301261233152816945978400260307034656008525633481084143152386923893049321460407367271499309080226253752681950950302784378657132832825511790718053568736808475288842022754465201122477526226348934701727230069160663336987606143889488780563778705315390184178189856546314088523561353035385770902855117047131368562622730042694373133918895028101269879976639625861586003281977150889258506258085619124486528780202036369220635419244667030519805119818893631633467089034677218194092279840929466487605253414913378309730995783598487043110720521975905179680409423131366188121152902418837395721301155335584227367885768782968849239293935939743380079354567139165816410771739470302235542154191089852062803499476322128618955335968005870793546801762906096026501024628774653672357563485680782177578777563522552064382029974268462864421898362736100282570093727603723968371217398670146382907443613355980607059726128241038622954959248352766489641883575336493359458623279894749856963910501512554546255914940002119847952883859006312828954745574910224019237562884798019053217235638655214114837320198803819712649379625490655912062001053601369494961756545201773617446802959046024533319409690290242441383029093784968671103998668974066455473728005434930700486361580351954827834648001995174096488996109477335739345463231150920751356962388580863140507071412902097618860037810035525437517664039304667435449258943997443922971974898756732295401549415093890188396618598492309634388600676993342779877786029992800828118856537220247138831503497510712846580220832124403920891770690774564470255642207575097532184078595343469470163054011135295246431341590406205833083899874745883832772000187326899484747711958953680558231462622059886371516055024658318572050470503641773068051002490577139219577725517652098246356717316186190765184541592973936208576312391868296254465198741759463538497407378667695063930642912850361025816068701814590280321414185358586772648363554056097119511644685837931011250342591565384365405636789787580588290951800469586848217600086574677272910536375552913086734698587899768990972204200923603174378433322203924904134880657103808721642144790683422155464416641222538368813328443243663347803061858109501993727651992907580362463112847990615328323583329167033316662622081135190212347653072205636627330729611556892100740944515699299866538834913463620989022024882375664845626545546890230686458603676046578167890271959226991266630557901336095850502093391828367010184509164053804346665354724225501017257514757461084338615911956241800554125351261187581748450423035432691146745906937395971320557253570034060910439107176581231915907510217262965684231785895441141009151974540586448036135763329677032227966042915378824811106613423650631642229453991652599280787705857920070754968823213231466922826975846357998338436412723053133142688753096913153886468044430728369283467178154735043288337768779722244227575876092622186013358549371187155443813563378549169221401989389207995368672770962124351884726804008925307881694471201933006160474320679673126709248659439982834706703447109445582014321919155584601525889622458466467697335930398512034716837925854870991700458716186754062840029158692895727136816972579446851009637836054122524439407561063622016081396489513895635372658476189695294782211141129410198820100525418038116796125547050302022655007334008649701413969117020693334943230455497280519604755085256549373659353283081257625792050446072363961828001057216881612080304816830057626185803655431844532087866663366821574012264940498205773303701243551615458605243959422036607426340964165924170754433839336335346138507692088759064008094762628356872577728536299170918390237564479862839157886017078634538578257194352637262546127183491011307321269379511373271388394719812768091381944206496924998402418396798453718182472990228108750092195115027614650353042488063540019724491123161106549622652535488532964122494708369963343858727416738299425335746420745554061426766356067616184089569502239593628852454523508224167431164434919548703089169433406073963908608210204195147472442452091337449426801074934999702109058173583568359012265658139954563547621408857006050888039094444565847191595448550912695134215463105006613460348513479691180269031939354845532222837426358921726402773871141679969210642899068144987421000901591288525304177355981443225111994189822620093579749473013424665956090944117125284582768151507240589071197966195397258659806968818208638366769164933577067838486434228810290249037131684832365457750286334585530391915053522090377977936161496137873510174129736277505555642270915866347927712054196615159841401208572174119758381834755147232486045506611471943466673826730247931571528559794233734511504280124540752586872823249701316160649541680010767535012933355998313679165210568825724953742066816131210520454059444941759124771385502454344165125901024459421114706138147087429739546714890920419701639331532920043387978813293562896600191215086966231391726922380486068506008011968395594892104263499224406071500113182198934217465107746593143164547699941626865978827364412288575099744213870527411579137545209708408145359458421344493041948866311313610230573113830805859558373559709317168008865446814820978840751366064151948669471341900955521370239632480212707303852236573751935007631881875006155564373668320414016260560799121064908361970089028941743642551435784901425905785466933494837911737747204378012189645994121251596634165291347090960431290342794011459389167151036529112428477606045333528302246972477317856143103187142219625853299184020127138934922156338453806980217470046514164373785471398075819734183308401785846020876164997474619430852522966967189992592297358667895678252491193417282940630723588941855079397422468822253783343471990241971970386331347937549093524034994161503832511606570898043427843392996173103028120539112951029689845137319659420704832414816670433402852051294632829777623298920397946829077475293483019492205469512841823596438701108567431781061086811830464803900783920228913480837148592420321423594281818657095290001114009829531245652903979525974851484362119920800439484542944003918993522626839694881010141788943235886397824553413518327422669102708706116807969901068218840652868161881600765879939606115558976718706690828263920634315668244350700827944273718878205704963560222515088214614857816996454840857132454698845607819307661903045536737521606550080116695045292233143139361502493777192021621135336376327414958283318997136189892504991275925855267081185291937152922444968042074755164825886691348753282531914139918463588071157943271168582469484043256495825937459970168347015603520464363118143110540626162926002485015931951945325125098286042356557991258025215117026580026719106891943526863403110196079371634897390896048154092831298084110755835977495639655229336701626521862345987656463875152881476964404726875321558893348604016543969149228185342199548261842906599597898598953028069764728229290205734393325258442755476880896672695957594824198681982780910997826114027233678601523132082654010491549126510570901640209573748502689612690101796583301444340720706981607918206861152449471059792326103460854353996311059074727275615465312006063469944535092371654724775030423375432018898949991181376143830826903514715529751405245285123564270218889607968715784119317177625196302732426823288819424345065897740756898410056509459471036023626399223456796340835906272703918218790138044056466739679244579166974556579421685235998720085739121234838270857236238784531514864100894310443536321699135137590765123605631363799294896341054857762709661901642537000824780148226262678244024425994102177424548543077399876275053339998328710776451385135671927596757066366324411440740570704339622507291090581998206393674124192881087044260171169546946423812942045198122233756130818668319604409184758776011142649753468116133857752835526454989591471932974323225096381292077896518177948446106008668096458515100717690247031758824026320856208877615086532874811337893832661317015333317909827242889106907417238016838686563397670229749647155365262204509443741141151326305701589287086520437053938464354954384058879657412958567551915911366652677014320907082668066538907290120376577636049698787051562212576990066775699704850427400847426571414584181921591937283936792362270158557019370690311065125870461831357290770792701838299263112024346673407377615609335268952798716389225766802267171953594933549481896859808219760604474107452289475975874439908794813157080779325603298868820150156763756100278923072468591557296244369497798748022689948238376366585802572922234663193103115906567749740684979084069158180155873527397494037610541629512566253100971619569484964261853911828779927332606069146928355138349367445882937291658483333190039992171294158665423247672192311818895663562533812313886617665452265889061994460574078746829674996552343103680728651497174867967223359384026777697187957749652782441811725447994942024019552901906551798273364561577921608639845440567841011851367679743590097089823443612528730179589721923408634808018446182237594965830962200341658219007345951384612105957154824358931097506472631484469561348932755215723832145763518839900413259262203436301367057946360168740459555707284237774455286145391361643732200055649216255936374177889739722770784495512404812026849627963641596958973034322936755693084797962121942074559733729183995832304281005953813436761567687639499536126127853844678400593689331848426442258992037245411378163624016454326202275910163932486518435801221288897896946558564586290723995595979007082046673085453752389601853476970427803365820459806940660131563257080009767614990451422583509176368573195228255784822606877287846392931975964715732570009041730881564006808764941413833299381778133679922787508778165060227837398253092241628118732672194169435096447534599385817205369638239537888796725187865441017751476621044362271438224662122921390998987808708024995442890419005427607055379977321338973942718163768488443265051757372067666347822414200715894900729450622048593691707191691193978816426653044714482786330764263443308822944750261671086010920583592133503951423963655316740972051307958569309741047082044781810919118613163484381588067117116699400901750450060513070340907481430942813496124608692270471545442955643030863134231709202248357662934572848596018491703696973949763252041133318452128617635472041280903515106522023415936528529419690058849956574153307516153452073007697204785122792484243658663228719088305346017884594205601833839315914546330434988479553931055529084518767536660447079354513374883631044844084299440277254547798988314380444514629086862442486749219262829685945887637515232248081000357007224767219882473521748905381159948435468707094974013872655417336540418305372853790035523032296457336768581999657240792118204149092950937856232766581474815794828519984382067968411249095405558203735948594374085309308607408705441964671448107118629303992674221928261184482805360418488045609970439450656168382880075261558488065589407561235113101151805416470715469002045408252439588480727644286779822946066383254556953186660619550762104231491877580803787295259708567812254324107007039188476080152362806417580796378983203283454963692004860552741827411677160301283525507814315112210840345730104418996822681887245159552329324628157617434076757085865742734271531393335744018543727540167603176473102055428835628500060329392050269533780413135565748893906309042553343298446124276432362620804220332533032133353768784792063244539143958409819291272952595115933109410912080199850139068638977832183444718567100719947358710879276515619222959380491986506513318021403288588614806626750956917832543913638039682763245424301133783368920616478757661719015439000245275446168158028729152687705496225244024842131779141776924052409063657737640834938521612229648988314578152753767726478978158216827113429423476335955707228662439018507879618977121522731202623449814227154418768668806373421191546170285783906470793155314761223993322446352742448135121544458573865100078282033964984567974232231450220634198025700451316365727459788051090214253331147787449742463172150068415598272060357688279313581181425954747489946103484084457191455736050370219608671447550101020917941657835327775739898243027425562424334362037077986593257721233540341360114808301948376698069223627114863619298197491256206577834257994621861402222246254255972737680658386969017900361049828261360479312018944653533598575586600334813740847470063898265094677362683717893958097414487239758342404056238782891612181573848220778563051616839419711264153459906286745016217249811653834452916078745908431344818307586063006376971337056578850508424649837662327553269428487874441483835900357436935900672171240975200324280234171734237517891430417540768438718785912203411033350374416330788219375986910408443800162958960258748874320133854988964151210516824694229604297108091673881505889364957939273976558051645358202154658032099623819213902305930492682081729843637375270262004134050236992814866374680116758792617172168474188795975887465277089911908837996104575656873371236080823268465732078285409098216545370599808663732134233014741187987660877869857640728765174031115985620409407294547859651147893199861191077643838104989999649187131989677303862160489766690845609789529802903962252054510343867241113159521483949462521900562163313678081649591678973116980779883896155834382029680302420102936329893254197557471971526453694512288371140048657131203995327264299756282243999730016811477273230223416412366935218784404398562548073351827151705995205875492164327446625080542884087114580623491192825532304901231097932903007686285553187723285694118342539255526784370305942688219226493291597526656566567047536920160291051255980789226310507248376622109003014475373874482669909224993229233289610771689531953533006104703286839874205290871218706435318461537510170245584903137863278826437322792667392717208857514053262206811857705328086220843906344616057672484969279640850077742681104336428132716350984805128340778877949728476759448316544471220881238535708725324624314124754638667784303263525249009673228526775681417213233985997783310609235726731774966582521677363245659077158481978995692512398781032987157168003399595038498992684603385515836591386743340014341836739384943645248502734550269497998478242101167218199060941575061638957249437661968617765545906852942289037426887927586536868027500348396353753443207328655105530225830317904233414578076172884399691704965313740543438957816820813158662869595830016736059281538367157592715330541964878924830833733478795079740644331075481649406971437964916554149924191614621581208077944118303081012996243197135193199089192684316790375869651341255270893522661200700134924005761720207575562177392245639229221056952443510364276848076217140342732990434108226277913042372168495640596195712855824565263112639087244285513660618295038359514463241613386517393767103730651035878099242010631909926744489341019848844569101720513143583534943441631567581175105414523806199446169228292885779462331899894147166554144571902830463149926653813536888659795446555622249493340155808863784478105705566604876282646469365305564713747520358974677570019517141088704119526972307181422464714732717511533792262418119976729875509907616328318037500296339665433893318090795986500029800539417359791054194249851148054639665827781973465541113360567344684653826920786429730177649588881291640974314585094702222753853862573474926210154795092867742197164092527591783670182414864981919208406489585080921900460553121310078271918701410039996002963690560325858533598304963977238196215451870572230327286790284130539896907299575313196059857921435508333786338648429256671857057941476233410557248711124121407613481647340530113709270248260511992763569928787277837733927299526307080730814485204290329803740003612847976314404817548772615634888623472875099335875657776387344638351940287687414907671147885827819316188019859387876547680345358865756112728768114409362444425729069865647460642990622763756072454057716698310184405038032577620957778733991656276759200584952033947848300775051182761291477334413240204134499106700869125040618552415782031541330376374644570073685603292470066547889908828953591726183992912659618918015955841026080372818998133112602890776053271642460675611604521727718970000020664958660431109704977569905273310981408501151044131020779481189412099502786138718536812832033934118330673740842434959205205501681254881063958141880921997614306560247599623813449910863084893803666726663235908080077670539989393539092464803381696159509714882854953504600074404701929903730085882053529491970932634591097868831525221226699538965179598354331537106191427381025808762101652274144495158575639353173391687501180759464519269018763215727195514928561887750775274630689541595226046139873274426795160874829465001683967206910062645381096707372788686336555365750583641882737088066432233163646409184988768858554580765149445587977037677939174251195617738042090278486696748858167874872787540780915584186808396648184183225763635491664902931456847047772802823789593703481845756085721218951795857438729598865118145581198318735660622885710867071164366674172729463750154412344022573486485270002827322601936587750529716911350876464989155562435006107879007520897396440092545959930804086369221284049883947626446945637044459732665990570993331176953939306783150316040822325972835328525227036406201383739073910996788363312501613778479453781521785832336441742190213343729361031651630952420598904464079254575895916430021830742801123725760415887729907726306149941266043379155507931908571759895201785714926620772786207165293768222765326960682670605779640278590853906114018182231216692345849974380837392851552031094484104658586608813005030561350329547042194937581701795706057483365587854820410502685868610499132542892611973568506239095982368209400181065336123149066260011742425445817458059473591440720432803103817181269754282861458698485168508081953131968061582453252937218233360249464436457337970302185314392226214826647963476407511095893120976768362241521666476405316947729390500220179430535291190330357036417884289986493399484762281618565056683173120552807926416894562564873524451480948854321465897636888039282158486440677552699243176844350476313786942712987415912371033559822409860401413799900618659729205064296875705847457265357635375798528479620079449396564348504778544039140347983825165162189858907792603085367917217122304774673263653421462256351939794275088044316111220641388040282474871979239211294610167725950764623518647655687609900208601350674753314175317789994578856213665578705666071854633260155837032419266802965707153580415752338620272749824226107832865750399066148730978300307449207412845067974736451928624856297231340771941022571224588725054315261813228788637527060497551196393488372028689335518991172886791013511189298144346667445284466278113894382806863196163780746167643603858907908737668304308120451520346720859934883466533878700577361567426920036844025587794218425693435563115490495657981823413613936012305777852198999918944170322984165009309238044483065272342233935489844355531024095194024922982870519757510680627823864345319097164070834852803677757703251047100303411948263961552698587971489909987787265932911449799436484092653874500401853181024166488586119371919958543607164866594118262058012198730420576318513158144894601065477809917082673525558288123595109581324280687159570484979761271693366243459566288971116803104361826833468782095887542119053137609578902329973786147944695346454024381512203592519351329177944168031025199110504558146101794317745291976114944357084042959500388601812683170878828420186821392870080699636650589871095738864039263659408635653552293705285525755553716874079129400440426028552203039922027018157026075412585432444973348233001986208462605214249699457748752111243082503887428050629608612817765977241503910473314057402915105843770130784397541261390852466165096796067524429037188097151831962470129170747126441196323486849203364094422189656625849221613791076206109025859334618548049397960445274851761987561261824567882876668759750050069678138691612190034277419001692073567856109345187674216516244057281351154070436155695003745338244747303893723584358373045556655534960570989707044353497550077046048616921823834963228970120595938668681141708036074266143205300873828026631976740718019636774707541675333415214301947610225712585047940684399431683783510129380631458283399068925437291463803007966596239940026433059243688155415900671460850667805893204741643412282918591010322896536596599914223631406016142619871210148030037638425513695955489950072098367603930028072529423435743341037611073085639197524978167297153137046853721986308759362832567081269058108483532793194079855217781675072711375517257339421101767192466452823617981949667062838190569286903424224793215240505465424716415576410424222261636004791459049474038444554319556501643450477937124813719681503571545667728301647575598686179313931480048145910278268307704703640565760960860871353591796201860846871706408582846194628025741226700800845803644420286202458904925117562204886077073715437466645156119034118612076395693927160387775460663247349333004544051074974223112174035258257838365824077107498553474772230211226640157696788495391833482452893836143286283348211025445154968470087261900058771158077934578970949413244606533921713807879765995711928700963417885118492636073527753995795284485613971525893725340028609270038879456480848854993265293136835077567125895006074569988951298364075186791533111157332045943893946234020808611194290351675720120887610475125321693152520970467732074759516822413916657513037287616815785554264801983760866498190362584454551165127317518378511729300272649362062562485356290244927762426107284634712292102571150565966047711665392663255002417382305554497271796138889072974048361776053109006179519668814096697718177822061780181896007745563649493447709333825299101164349622341764182942616548484439743596430918558809417468976084719316045514477862614322506389249238934687096123258250790564003390055345512322227075866096353170353203674949538496789642051270839760693430363931400185361191578153252115882837400218613207027207368246256536415592333020763080395549393488276495662253330337764022122997434238051694688192874240886441690018803811117919335279363669978335310315806687528577107050760377342599092021326372228110561892591806151965752772063390142858569218535299559697289485214749290439257926146616974460623860756518781087692189046027347883879309357300900736826520273588320844704352190009353300238609725121255157331534174798793237750976269510360354479474285397737793851352176921426024615242067814542447684316785121459633319037299237445357222501181322677347315729757852355253511664708028180943082265353605730675862913274744202184056628352551830633388280533801059122764164663836938228087651478910946976359621402147831499269623990814043221528179671966467322742705683504578712041173623987897123874281488392321556533507088516206585264081784723964578331647114352562453722245590339332647131023505061652356910371182277221636395101816617867558011330207778537029185725528289545882658861689916563718881398074830876408476011543909218787381826080857997406173369956936972940446041674559238219217402111979004346460263838972285641243573465803347437583855187254745725875242802478053028088644907382138108057502129259965954775456841448559690092578217115309662344810576194113053221169611970876639906484896457224845690368678672728445959974678718514979820729741673687496279414987657530695328279104011007266820812659915161499133886901123205605016481580978364196321743336153687488142768627606525020577002531378794317756669914604682145708896904192976157580124450002240831637407328383142987663318241893187993915519242690074045929450817309510361974933399911203545269252345941256971585099038934487060874148738704004204473387548083520481450140748375513962506067318557742346746973556587020215483759725881539984073024016268991460496567857351844430321420313732874071895520171925428529677982365824648339036812432488028449462682165774639576633739622062866374823996324766010419931305057446077948603101921188814985063280743029270942437213152849596701405338612948567371957142595995404353217711432195906999842620290291867708190706944143614066777386659804867197836473021193602434499285614122843614529254382092009802550648171444626139500241700158366424377828749344124805404953828079258721837508188444340812661247828183351808471756205734493126024366880474727632910933415280640865631674507402871050026634485585735009297714321788185293632713420576722476101279477758921633986837535272738440478763699037968650827804796976798198104462896238034494063732827248672341631717237002315156447690294059864855446349590806114977863717533464615078701024596610515425983464891712345803333453999820282908737056187357182252724247385929568863680389600038447370942293423574112503984937643787574982172459004063505265689447305594313060840015846398295945636230400084644902046366049801711101801084299273771261446350359892169631381548406586095930372023805755795196987638047685552435814609404118226042856261517227645824971495072921188759124744225539469620652488253127008543498308249739034633108025986213772676363552793772636949565229836289909092765302714169404981552463980959567602383273180953324439260621271728393912992158623632611463323552630253958839780763198266764539917801405612099800495677302183346482108610158803198784312131599307364035012284286447716920508812993597832226013159561758114190905103788595261840457221015838909681188896347939899074557073824149881707267619061724578156120847225531046016846394720457583584880793345487224243413640757604341238930962044782986490373571021961943991058643751144483586911758086825638007347221273121507717183875924420910632458711380209813527715733183099898241206213127227728021100766481319635145357139254914948195469989418112869431741198976308352210193966547081924939702210717523912963916654013935377848340937697222568160091970418391007529468153224383663292141811843656406596244139981437894303953441214548154341491854733644774202116142059348043007135257141841532323855998652029015010220540722793263060573498053311613437703876451295103628152652750081777317931052391624459426611254220747298238390091631327199076635951788217157903755762382567315459298758301779484579068796220572210904384819085647622853940007586143596775448319406704684793251050484285773411141479318076543030742236638066510665983265097553620349057218534137695806581355801272087900442964167606203842580055156944428607973989779448977272600832239158431967916217038721212176862233334440863649309572200700680631174715734077618609731899519635213647541807632140159513553782734824271289827847860317113229870927552738702744832581476035905583014624324228266262578572171697101655180568737696254847766662584916591505383441601455672860244657728899821164457261227908197989190544311128108049756980084040712327772415238288278364337419968326998605414979955197023079508329309034894435107251332934783113086123145786125270372002437727382308788138493270964617913802383478025683998223373962606328695414636624009867800313369644621400475551249791543323201789528526153191158198278468993033697386344675762202650952425928774892290225121475463244823948014962620326798917569828768026265744351147121249830492035328076855640523413015060425131932466704218279879963891778306356852070699786251152932675910321390431236561345077969525194284804128647175091181201037410905682357927213571936307473273451067612629823870131176485293202581771931243900715497174437745117513487517040461146371543115667543823830417873052145318848090169837177539352104134974990283379201814902286386066228022381690155183163729746416724387458162960730824166700719240948129195015264982530261657749531716382255354160572611546466802124031856270992027488754247996729230419088723911628332796475909783303708679117040422766712864941774346284595500737176814964176731243352937945123525821629343547434274108943308541287075562614421826245998743419086454815190660058392568439232678125961442492129032547340534944099491472417677822775019107357133720617129459781126107358689377612825886580145124499122366520167069413206558396275211440253846517310471861203387610664648708452902717275822481861680533202201823652177272574328941871153954013773384393053412204532060481628284065272571663230391598995751882414530144423364915682301163636441831623281816657036633577648188109647713052211898353604670991210996193067244342004162850624889923942183916189548437343046883694256234753752114603795833391816107797533453663890734703198737143108404000811912290522425437623391238386149652404175497778673626030401929271758288830771760588245737065362690205447759780787027150280182650405788007369898541048282485458253835486680561680188512376160350983927378929508702917856799723197841344096536448205999683311230413790082282350984226852972212416853739146514602311796247590376650174841284360087861213359245073055623190090939049302904287969520488804804251110651829741987703968307838839278620014930603619005730228673894060896520677745624486253805003924218855529953160648480583013000221963938553160812805890094947548253164082720802720699551969924215111197832163884922130711156609468585707521101624882012978601985159985008921694703759167619051468599558370728108742452523387428183221246309273531445732152182747084062379401873916026542807795249383151442821971630417520715456279946211824879013544368872876155551396918316488437419464172783580619947649411543132622191163640675438312375453641599475483669072154011304414706842814685067281143872746436598136749153196036147764118299963696115770716923328705478823352205786765472894131726713335135016936662779579300151796433761081171202447337816058057202843906118943640087392084395939852557976419691840553928659564870401418500721506678140190648482493274895837625693550209681200522541952932530962349929377776040218240854553867824155482082736999984438763414485858598592056069639610340515933052200575096649351780672554376419451726508047002706823323709122915820752145172565857776408463293972088857617018005750960647957194914587592767054237258298969738388341726975031834077331877448352117949317425912694474123672374690260256411104134008950615587808452597894644040698535851634139478771894142297102787061973248795219511392779250795284361547527714670771194663059430653469888170340514406830775444703677199328180699611634741222879458388098125482332147362872648795054011569522453351135964437578558838340281419896748286376276973668089778568417151891976887063692574720675475608740374688000184752358444069625141976026540964743610302340770725534628238309568857773557654204521514291915535279535553612387193527934545661805221617697298069124413985221709387427175648931594322228811310862571751534404901256960424644975935054690872502149448476826950596312155851753243345255896416215194831724725910441495229639716405160498161369718685818675735352761228518459607662469695020093540934324562371890583639858732443835065712626954607299888869879993850261617744340787195536987923839817371197207299111655953450094403555649000232189179958973315524321253338369168029484541178027807227649123929325540193309994479047203741570861224473142734176224476677960905376202259793012110846680559044408800623494962580380213791502017048252223169527906093933281644103279163394630835353013451069688796023093739322166024776489762044465756390654055366715378470410731742015848897042755642713250200934722697674402126970857358628197145575620445257978365127251310299797959260748166959329895822983596970979367436550682794055610700085304450822936537230584179003327496171605633579483115480976243473647312127637875303717466534130368432452561610421624998719800613177413129692615155677028646714490627121868808297629807235405061653679466230244844609086006338666558706811145046776963782185848192305232329582222921023764930251886399821337766881792315292847442595075446044298905828892798939001377564232353400472334081612044078220444741995874272203059185328364054665022460895800880163070895847486686987743813386333075234175370750296625861268555418207709284104078024845058522664092783166352419200877103449249770292773777367591681274710832279719716396988371582508374004432600498778178369270044882461033176324686525022571325231111260881156733402050725912896017447017642841683220308433836707938702922198939287337644754703893118284671728336653006892325473728040692236109210900318626980872364999894824300210350687178195791258700405008985457189251231416484127801711636646272237334157243020681718166842634240352189101671197443536009191864176033407151714812803584156837643956688952360758332355259040941706822019674567208160844686630259203887221789056470962487728209135031782931795983968745852610445557805517696463440402068803220190728408060234153880893055150141348261911390723809997097579293397791382603014082350125839460049489146301120678093760511811273715744061044553805345403104407871225941828317254592178249375539038248653313585399781492663957706849181707817341026270929673723872705539681245542292601457994756011198075115211848531146305144499059292447093806973684591059723419002524381529229762972516306474996987241753001505480758538292879170135816281478081524674151213657507666321947787802051977174812393170644397978068259639875829159419709581507595428178848343098695217279005522105909937236984318779995763069815249486928905465699760837103547954859067556787131921330166966628789400409518264515006751257521290631227830746565222415585883062731501737661417983374408162012585439604628081442823453497736100714497051292640738192659737162789873025656982955953498289392124934159990287206745046897771882618207114798647103601838967492579551847596409040906486737196370250620227172789317562479640108389549581664082321194187628309292249377797411346636896933398790954645280571882690299551093953515205668057525561964138524508651023756883279620744491304057279074920301749560839707247483706434504190609064282194401484474257826488326602654501203051097325787800065168088810423638239092468088313218048087904640199134576324799430452338638522031578896996426510772621243768047438693740590105429261739277348038504850305857599935298956865200427702161323829943658027197380666461354162779289027805856467197367386377117606234586811040934153473167310107880708034530805727690834818762413032684201513926176567218160085859035825746946404901446001323100561075521736128253751934024606913081040764811716808267146701892581256438514185757746622481430048507398967923600539409121237517313982211692187492973105814050874321715241819412589787878482439574930517715804703770624582755937881581629073274600610574449789419977270539994272221370765879636168466361251568384060289797489923600124561583858991526146113097609989346947866815012418549194819444274592272231374789499143587087989713538703662616763769737943549374052049711257068925600666331263193152616541371327289957898111010680507068206540526442733608417810140672179571000205382624276943360686330793240382139198757090895615050863635710426350747470609160268030288799322550633715801120617929796052890572200507336264426402530507333345689428389457061891156411473264009995018854183348831162963337314187194489757199251376876370247723186023342156476016650272697560968418281214663396127120653636297945225256013817429063741417516502536247010005200773623218862703652825238116111343442301363018546601004768163429945616692440074136982034739446406436335200822848121429995210181874598732376892896196606032842463275514332340771696986583786313221275408210630583226679302662475684736958264640208797602818335814839212600115172119476020598933015812413965345194423693582999756824726089213984099786773540490041808419534697944136210360180697769268900558166716522398036304884655939276703052152934322921699215862229166826151273921577758856692961112352327425907618494694667068412645424105145036977350266830280215156773842952633832221621783019126267144921313055342681132744340279956788686329734757478393133173328292017590567865451827446115473564078114556794516278728942021015715688374495966833505050460198973340671091972246365446993363669538431141432123913070000290069273290474954177476596113981245851241848240501871928722287611874397546109426049121111955690019264829456984847689068151610822373085509605538326937130756419119806456201973135304623055826215652548143698194852142319140387092272223984099300293965138382363300390995081811944824810644369236588945243955198625282038230329897870202909483216856837725472417142128162971153534229721633315376951568266005120884539707891187088456199247665284542714194184996347570297004240778675430366984782132207550333363601790612157290962036090877193173118256471937785634131005404432535397584578165084410363882998549588440493079675534108410728540121823179869109024761007829185445970753115884983130304200888859309747572963102928349008240268655784049493706871388394853105863063359046700879351960224523902106085767810932015114863125005105320697737230585702041629512044397117264013353341359519680957252897172569268908892283894139458349130905378180432967751008564786164095235311283408703100978524724972345351941268800828224838222551675103252144544219509887120239573786391694346497883661848253631837317581315986927479293005441194227073014352788185980663266492664815063008180766726723966941417489005504322802470948387997292180354217149437165262015904121632493049385014144747027094778919552666693635630130629647262256393968718758454218236784858492152751711890685532051624345522132255308482347751116713183613479271075288973685662336752796123612160271188035511343282812727795275635078163204950671777380977648159879266120632814933479096557635291038458705574329130978748681346085562631534556810716925503585245068324031618523480956208475604454251372916412773973606160685937686915996146096162687928542017175462153163185598734202315908290468828068605423088296924782807172467350153532832735764785030652539018015040196367506366972503554726496421247515709918855514345074933334192774157198917504997548320930639005704538570544323610778081142916038857696615373410466191076502868338849621290367419819219843743670370107383446186769828879342086187274100776265789907215369056219614005756006112845373334497702046130773153899045755058154018536827414507778595190385613093570311509598953872363429699076049982867636714806098219601994706113459120551462278188841255621198196977355311461498615490331929033327281627921064524232397961424637389354936469438426440896218453874118134479638445874637739941528707349617881253469991861801100319054095734601061361737827328579617676142665994230709662788626399408374606433963408468602295357426728186289113451191167661038705746057351409397106354548395358813546579786118701246307727794456955194755822578585523746229073561083014484347397406052354873831858400809314936027341786740480920863466357578581280357987081234773753948782264146850533211408207532293143379381030705909877832068439017678226690990557862192676733020348479231414341467727467127188571243134709571390243506673557394809825847358342308680003160777667926825891670003018999675410663043305655611568013851199992904298731124399235637483100352014225649627762657905956293302060469236218818034422004033849740861738118516397840483375412738735833571700982278967112102434943172865131336802730300973700309366941784378676719608064453774070853301279874932250697069892942249843818560851167962601833285577436979349055153849103073048772024849346684505119570661730547574796799767690965345802101844346033639178282966930569540469061918958751802292208000142223483573902819529333678368109426070472833159891529181331688229449173473262790853402279996614693830104301072693314332222045635685831853055017262602637794654203573011551660204772153451571061627736406880985421122367502903100769384583238550938792209032922548534212574319419739220240186467404029221943434468537547818994976813050004277435562052916812882394842700709796893805894265193490048989258222092210303059010175099773967632711310805903606091503052262141782572752812125101217257717631517058230520553961627217715517390830339297415955907025428341622092618126847636300039159898759559738432157012577339502538916829190377241866948382747160367664005477458375166464009249106786356781492804808785604562912313481236904111727179838330901100255998334801075056435386617369212451893725829689016325847598601437863151485573905960015794689472830415744132172082207420727254674828317062669314153988277908388324130679075476486680267098393027555273857400450054924515824629264940813902449693050437962321459879138190474587824755284647414491164343527365753319336695137662437214876861639654235052056787775676002229259699988157868988725986319082297691603799023825755686290448969234873577532245853047283949984318761960965903923390485571456217471979094551894747945231108016518229351819765914057353547006360084660376734502659298580382049758481075256440230380331997605947875635009558032265797953301187605115821655306987502997489895570314777432754987397788288180316858317477928646461766303464158205576778324764648687374165911505955896281972914544372657142630460725702440406749404523303303230111804612265929158011614797092520695270453165009851710845315344233754644089241882933815050448640796412311897260084509617509385636286245794220113787571039757014900982345126588723934820750782772796871114191234905387672510348576270473775001611048040397724704929791042830223151790692152282166408277291257747460475634825483453904360509153710566155694366376862640949106568054861415588202746538027234324716319886464920993914650932945022291352122037492680992789748866712685829849163443888639339457522671010538753230295425248315119494563491574248065943188120322068523429272876952172307262207218145917563527423485778979055188784492643615123503079833785137418491036852507378220591747713915843269523279422783848407826874152843200748081566918175630912777563314251504870959479231217703504849808344215181148980655062862298014824129999418210207043804275299419901462954114411210207409611974323224305507532588150382885427285946727908510344066006685684922094312334314484842393390154766166398746268796598624829701794386392340903782050494453998093846775731440728295631577349785964080877309613955525299824550005539084344674600204031631514246852206810759062013970265783431283484522739538112041782748441353579232865960193966093604855889166206174581517087979150956729582389155793596065072495172756842490133784558885772363863959815026723170911506158073585333573523822311572348952323067759005873390505177245454428501408396057530439649360171397022728839281010036953916757577907414803434496243708319618324626010748774266738613971146876024410818254707413133201626322544872366335233976537845231913491403656650498975227673859286319017736040253917709631691972198128813128022859101627990274536122909438182507959543180925197755577901538845965460929132980176507044722618037322611956406627012598366582274816485098930048132694313816444756864457656857772523990204056466386308290059898032245807670297229075094654421392681167497502581307714963911529473701602518910453336853691486289616127561042340585023529523067981648734058042191521047437783722829838621123440449776437363787710965496690166507456548072951730293951887824911191443795377847419355248182187122460456745929543422319348945878951339688209594033543521785776271277115390904421234639572327568094949468357802372906867680668470444424788570788246399520513314229868067379903609014670954317216291947024132468120728701454983421795084183819084715370904151878804687401459903774643650174474829201601950045179780080120137220595786155927717290293801167287133345347209412180959827029791167623918182361616533481249291751685394399010631712136542268919039280093643428563469482755542397480878427307531900783932658106700747611490533360393571738440760990742664528448385437647181177663333482226129094443019844350861548308869170735345491328216868081114686978063969870379008320374003371121472738434963533269562887816425645905497764291139538841525290675872527752347442509140082764395073958374458258304027093435592846496654103633579443744565489567889068674819942546479302320842871636152063055870515897409762531908758910397926931309277616537174246169590896329081794189017226103925447324791177090795084186638791564322803714782071424026643491676122081502311273905760925691862946071239424786067286579770181396649947421689472192857887947967431972796385203452213719813365662333455204256554006264759751330623935187616514172368100660102904228799739240284495903460607568713001050158301575632364420630460783473479503080160449729033320118145096420469848777528899991467366090491745404859378115592730196728142219427265236409647537846202234776581238602718757213503957661417947665203741074267501986228466607765789538217905285363606562312471828018333909865593928076679390927514921567574552157892477264305385280460344664072381208511440085457775160259599036672977901312288920937215107721605221674059971088393584647074056048702004464722381364638853461681549076951977778511067217679025132449787875178280086536149194598407194486569701481974234972259904195120216628697609223000950046732022011131709381114076013800710884768144638716074381209219310580787345631513927076053609645495785455226925700632383956674419481352047710455337514140904802897050109889120113202009283110189835905714450850348312061259054347305401603945192038228534242388283899690602188523045969239109617209140015550412819514929109420295246773175303961637243562728437230131963179574613502947110602676938105840709348849048877322506553966229553571236395647223454420385585795091573273759598363471301878870429693873949863908404427784715694009923613977003600016063886294116332992537535429707668604976186641614223688852280399626820914734949180786902866315885386163905239291362655055423242977206810980499629838506594209861541301470766391140994633230080175195455827604318076049711081549353175959015578544924951222596758599760879913260705991766837058120036982017441990471617907002184291351034447350720056013415870108615235370725844322174390138586229622736929774976891778051612654199622333259326136363238111499575320000298980820323409960307350150542469295398240846834847501766687915984100852047956667511305600042745912194134461103915739471535723889337415956870499057699802585886970525040607051566888184805540027551835621762306164403053333659915162334608890476838722089385547404305123633157102847290428442889399247680433323799993480325517557929784621830715150958354896448819733513298975751355576631841437646723199636358596084287647900555932479599389443269545369369606321397583448778804717625742904291024745082494380126265667916577707923148016335098112728286858634335537129276205801233732734442516940010718955787514908818303210136194886140681647191853481883243235433575430440529816737557115072467774703031924032251140768158767327400371918701475239601132018386912076242920810132854450005633892625911298843437420826081817946619279650051652915925361864240439315550369968768817219908610971763393612665877210706056736114617123817016187160329767709825601463498229641985638189368190477833139085186760893474484608689910142996847073331187350714404351584274926357856824149702798359499702194289600506516656795440995972895986419958124667357426357620054293945336377516287976745965077499933723191495494049414876300642465625933585735450653965559667908698642547390620448286451711872366840717024039969989013007423339238197729437248742049532488144908563353233996389123040707995542109859848228424843061689528358932315778588656942751698066504232733436432078122172654962834492377548042020200627524875989333586090345460767649200039842472302970563655985391176905080802714738197855122939029441181822116747526136911278059905696156950981098726889483963497909252884510395628051006677281105352520534110234638689998680281252783380885046880508143675997264141541728562051709795154132859230979584621735734331649671438282732785215378988304551561602100289274401116302519845542006153491312495320320541121701626536585972445700386918997289042807102739805657154931669175374740704637731578011833186619253240943150125061145526531863442694228601822133892741032239600673179814575271230715997432385840400669078299857136925000378733814387922845529036986703089011612669157057654513672928874518373451562679663130761944685397650749675701931184720469306363531405037820750961998191133229249190695582882828448959852785231336059654094809471612673878008653022919239129864995455898168370158213327715749177851121765905882157365996676728655708461146408783320381931542016245671369446353768879965854815767841881086371861145673247351030399067334862419783263454851849165243124831124720764045858603527186603315579142649459355308408756193235778142778353940380631828414113306460188841451061942258515044880515640882799117604022036257305589410626804803381428081169415928744628448352267757032608455137225492798432343405870408290354161774625562706691947789075499193740855563254915374558292341254379552749148988758219991660134852807340024188052062900986501175786091629874753466230701037059683576601856898621875737036033567128669612028755951247275060644626038301898708768570463094651003655526938605377160096613557772876073205542219044534389569430853832622909995050278692342957591512513965533100853159784661365712492780588499766281584230958272509022790273747955853185938578077033654475216571427009620152553554149448903487743904692037137706829973271591102509465256252280489698681100380959854552998523460632397380425701724024984060415593248140716999932074207392628306671510420608944969200207877567751571950455652824796875865591706221353364973578488977496239409997360329165745112764388991052365499444965361215075575939589510954891881547037684203504844623786912796613655461833813474645524893638726000454548328044724997908852905700868225346034644947948612679096750200401497884982986325796906993893251365760428550082792914258608475813182810104502254646233298352073753967460357079491244419677162231916720466163711581885864905637015150110286164902580325406562708340619811770615669032929873546953894000239417475525079742085231833959619623320371458014934210122168311774060339430544409891454733580159882081449125243963958804569119875290427610892628294156985206305914412711650383214895866342810273634771952207606559644497624252152439358917029930150191450200155783819114757567267811269699110700450141946044021142834976638048015546412375220349589956914087663504767410301351234989326041471557641654403215898948311128652252844010936755986639092289652072238777951587654383514619448573137297091747822799353264581504753107561718171426792547581224030929735091656446860270474464611997777638720609745744515217636231941735606892722994591328088560716902109799317738306909917398589320476690828086772500415514314403659412010624455055030898324361255797199289278721863868890577742127645112548173914122557876429723926380265592666088671432716738971566411335110019274365020508322213812613529666169401596428393986355761960520641654698344975795389827409762862274291231596922070265355306543096650877137266513679173235357469317514995314308503283968143942811838849157909484220317029940777645609686877580461354111579513870079114675533909258411252917234626556829925076606672880901898351535518186102602410577212413687299012225852094767612030145175838588218330491784841859325111605537858690835310951335250362278265315677392518376784579261756507795251260952602939000943508783344071347734260938072139880988238476593015137084468440527882949074464917516032388243544264009342832162425313250983111374019405733999273394049429519529311950923150932389999194990483546479271795557899476623195437118480917195602425646612868329434894620484684891770049663863958055748836038280975192767154084749305966222903324176855201263095845301025630835114943239845716608367393715332381954380727513539423956375282477952683356257713131150965690608644619461080681522326227422459289207604827619830124168102130946712000213370956679106064887174104473371519251838882802588524178487049400341939947440024325995242272306785152329211075359143943632776213362252478641969136061726937735568410628582661848064926801376500154997820968254254527995584381908302803308615344301760859789641137531755564400944740286870122671606728219879860335057795128990370013580580428810734018479019841029251615430419225128022194018053042887656097769687253188105986255969654835731555706664974606844213316924428368100630426251279653867940441943356064546450637407503573352812414249943260201919559920612630869783530288161392530751017037654044479294273946918011280308706114245825600411910806803955380017507846655522826735792156721270477156043343967710445601606822395927874966147654136530502906344237421161723636111436510385297207965542427320268359683724197155385162456759015548125314867121520290719127774313708063549226746564500505262651844771622423013406899784157819666084154723777721470447083580282909763948611568191926114734593515427471733362301355326173534231964714900765017428275288139157571354151931447188147531763752531710849967309753849976225336962489427411288005025827051438212806634137338171413403604169292938117245614678403063464562993879368016441992125104504910239584160513416456640666290043870392852555603341384865052963540431666833201823628845561828857675236003690489678155657240138847170507906331101151899739501240207508346302988688556928556628258460039553733147359891772997002026851923695279794167400228551624447750375445168480279311536862797127154659762968242090815331922245196310200274421924233154345744866257175606530406039159748814363447603005881102410832039010196892958215624827871634440415572179154461127371651126799483164961048390503589424145262433972485635880446442656121688855033308441684917770455881804762332127347833033693081514123001989487757537573778498117888605779330540492936332931131404094315882860855095752725437367412838557717121733763497055554908804150818621190885737143271638944123020793875915293005420763366622778856134456438433386914615223406545837506196021654252459384078133466964213784687997209218019271485440528293545374794830281436733435204091117199185579204520649835486247534055000230736351060474215400098114524202588664644206561810070139135007247694867223384101596845521941590103899293652159508335425826905109405008821790730819285110988668261175360615462406732278062750580439719505602959138859321996869707394956944141549551386359269825813592696756329280400760179516443575060173483310128146002719669144046627150203691241047404898134441633994742860385999443870501956937353640253856953377105805533571779455023045202364092743488212758782416956041633528776189865369792609188160409325254323307512354973398714998595638660792500252153500475848613403143515021711041588577620630495822047037677796991922311784764129021043286704597668521132587474737563015162505428785815441439491346826779135327650238983563410292708054649333176275172701903568087566983431376133795709493544848622288687376226273519862395731569320958023584041660473287888632986599016485606296202582701184034204399713995150367867390323624587767429794158570748721598739064489351625316031650326132266717488417745482982597743337333218028006075564119841863898181093037175825275477502700982424496200696823833425199405750169134874927982314534326930812471357305042092638031836867814214167544069554931987545432886917486394821931391023259923515919679189384976300767839361654704257088969011323366620599159893015943925745700052438978264216870262292333254687864986455496570172256603801116406357767243443001618251969268036648295046068317327679425307996077311584048072131389767514334066033763461118418261199601457460060997187921867717068243453657616757415660637198841789121711540958509508047050456715131275589470250885744710741137052234596298475285519716726334179321631394385833297154949011987641771632896866537628148668664209083479252302477137317025161692181868289636926269634820575900108887567144275292226535815206574530340487804646667701291677780082529404208360340456460419905978014231384814831687990027273828576457798827617878593171231212402030580815014509936717177169699608010031691681891812219612703065709013972444701943406893541891807813356034539988512867872193219492686370841978120647804620008998510110871122823670830461009084094278353932168654035249278509311924387776853992221888105394249055211097008957658383504670948107719355852922710150729928440308245955990893682223182270185749055351127844242240117762516173748302968359015055636685952096767529449383191676319177369800492621885021509491447475177323975393083335562322415575728895142277289574024825099720741827574269390498994337809431085761648288697045756139349486314119198717131530928839110375346336898198037263368146979887386960143170421409577340739409553249263695236349763779201959569124554839815783822027068091431102191703064000336408617302415215200121835033777385869565313104517674401252522552410341163712992273737079510690332708926814931945587783301143639077046675153874361053434954885905518729163983453552291088399619085254215002200204960943765778941403513989593346429550883590490182838037086946266321888025948028361084375962651385790619100958338729570990481032781310983492383177128388482285060491350423604694120437705789840104494222314947032990274932656085237117345269019571378144901286679871774484149854281810614616104902649929661268369353457473772009369539180580613511479982141203412077031413660869271445059846724721491448986690658878937173770160965073879695224712047546952672098246176924117268393029295719979829808076199239300010992161309900769750922442404315420483175051401006244414384916307447458663782622451137750111202447961959908124509940391774963091874221140749353192514350606111654340741274017643586571455099550544840722395763343228602761205732185223325689422244714562251955322880178099704256951782118425436415046647164353099399295457189463829452065621088147089877018368654485624209676869606421396773234413118235504453494504080387876412446621463670543824982377223007021882986672196346337776628416585513936418914995227043330858189390889268981790172854143104569217539249015330802943354443650320747720215090420406801806716188173573194765706002360255053927477644747258123489450184665305365901896350375827224576924149577892315973492857145985778350655547055344209056906962113739611085507464309120506377170947929322699107198479633977061417681378091873698006290792888874208554850668492460930517083482920957956874184546486962620647741118265819217544209997906865640635752351585502326402456858610719145719615670116473942937358842888990231620297300667117610715730509286118978790998564103853101861715908152227319574991913141170806515756071696328365524410086310933806411048344271518403361279637069384601498917434069951449321610662161541606940059495146891751312538749618226674198134327754770075888862563501407722173757307136800071261321855921723451634387221060075988264258337488863827231216590628220629294793502561410697141030842300933396502953144532675471727397250441736541010542592856132149541487559865660198427049084719552822175031430109499985947882786084268097011414872643064538169878684798061187401635891213754660552274316637920929960414658734849196226072672494365950122918424942025522889968576181798185425294685821507262152497493354866253975646720146947831987284183757870010794076193269424240290590741410129078679825967106879233430814830931850686978044427327608343388383404517878052528542232387296089358892140572702353273243796704176707892926638991983290129170865207974067105005818981630969975485173898561952143656514605981750979141419317330661178331459557694765066054449632385204288899061560690215465891430430461659404688158725100375658932187662149978572345940627818000715004884763133208401880708098781776309430403679173760389733748554109129635262843869294477176429873677243325132195843026383899034161203021366171610109655656929667393748555814763170465903392374848078510493964070862031748596439421013396838343940441778636584581177743074880653898368394503798047182233591640838519656838346119463962425396736991654477300613819110007604737265274199651519087813224808296049357794773786814467980978099564308325244931291904303901326011439228039761863424769572666894857579898913960545782428443000362007667087465949118612147530247839217540795650598093239419092440506648530731931894268201863106091741105469585693805273503152206622781973718078612512105744454049921916099130067968948810246417268803260619304685050308926920119344891879424607686186478511071367212485375066887129367053237890869939051074454387677087754690968649014149589869745362104110126430854939710079246863212308928676732660429553694077087731140285581137977988407771341854352812765499340251796001895854111872661893776396274330923548793535396991396568850555360809569956793169846072066421456413393430409744232449574309486170527077166274593042242200972866569372770521509412110644881761604530469460005845948868185068325988619831564012074661165188405164395460236949937089518083763635074777641937276386285255104908770847076836853079266683258178290195064109364795180855187737804957505883062621962905581557333021919069332424261259021140438026469519701469019958839317305880732960423928801809886505991300386875246068300332651968180286701432385790601063940303203679317777554546946194912571751834508301675139848045448040080424945899979223045923910595181886309771437348854718997621583455001387911031080170670495741084371258190354886282584824340098384343115408801425860078283195144815681496775258181363431489661301362108022233127352216317727531573726983514562921180914443135513981678497122290250043241648536318588869772674492377020112913467529289707497733920588820066945488578622159359059945062823762557303067511226277869507029824164735986156329506478431057187977761535969983410780562839500630458818823211405582165766053841052829386298038587299782084977525946271984315325028938723438278377017184536402963745326847780072211416119685418231677497482136858217209643010969647031089026572588273972067303763331993339186457995207716509073574570304787074790607564429751495529549316238182131947602250496620764748317006387075293180678113067653309506261487840647599687902365951493134146350689391451246790977448880463516896316664481740605229381256126215864389410609121138585687482492251337724355246176637641209799839583564840974627523353882835977081093655463123887074112545809009663506267868324528336745649279728050576684938521028807231770236859563965035001607429015948938845422207372953826499385806654347895028169859459727955036533400153895100615131843094569781860026008052052048323792447062837295346697651351464839862063015527105328921083764409704838761261077469942921092751402175885861116681442093767113585564109328923831343366106278296410484560157284584931441498621418840231432186982891796890686750222771273619635860573292392049527728901943144652533899309224550179475467004606194754280195909919837885549313652206393323014048806665323757705092693614122306914101639254979550415343500617522505080796993247063028013476705142867214278811862844068002714512257458037440599727089242376795426027142556527164799830196770339668765867764268225618468176071774886710170922987338808140795560643744747115908447871189160008326116619910263950816617045947442347021287410135945160395746206239475877337066757259927214781645296307934090446508076730830020318758568716299104928647181397509394184490181299156440733822310165270212243350408766594685006606993561469988684176078094449769494579784175617110800877552205552275430467715879042678864619672550103757151099505936349718201139851574538828141640667809511946190612017854874548316087277024336495714834083963809102286686068165462742293214719108892674389646360695466231897854687872695135948550434205774153162674303233126627717365439141758130952616650413952741992959336414527626744037122224770428579520235738296078877922644850217700617445108389605104076144452366018923150086502747149403677120449214086848198071389562395885933087360029295380161071999275167989170640532327238661325771539984376730668320970209799200228407711763155370590300552983592219252379822516537943181918631165284896108997497389382970461083131305325482144131004791431004105131199241915358223469961035287415057155217354886081934341228810122350591219069335179942802006878105800923006922010124639886396099302301279462644234027512821240113623069176210118984995409031888366527531048480432002513119882197336639967235871053678208796664735724075343662393239194331512209129618231948418121815242353350501575916299027570444337962994492511450379730211145406259087467492863767174381141858830446427982757671980436000360887513641415731943210454807795691546977855065076452289194568441544728296194225651018258740624473406570012934811833369236223683759878644207635050570835805094288602020188682822282290154844079308175053106572673361819308773742580408484844373148144212926823717454766613203175367047311623581667791492147241222484503428988563985987120128278217985765848556295566549485796564817900077169766697374897632860057297484593584257466257975399493924242226584822682889582845395371948915224747940019780234652599567446910978542934167983778850832354806883802805888070696465881761188876619378834869068030143271818438494241591328854986569783338191224641856722057087722962542069281942643595192543792220683740326057193823178118378266055686808429055396121155029082842521125480778287060789741102688906698907892137292492142125613714260685651522930332367725417008182051467987711039283160892448172884350540450341948876357342316121708309753355456463873797199316617415510548043713958769620978636697747057462058441859975848819745015194082290339062600460467584294687139952697187223395458553815253126769144706828969215501826542853703816308959513413379023165682050050722588920968655823966046176111555398103330055855609396059686935362459598399998931742544345012270459631154841221012842745342375122659152449316171749515549836914772201924545114805850091930733884971095355472305004884739181705378149922076002476841069734294755161808130753852941139967055704710925023072453161470625115145028672249756173629153957194274934700249602182954618785015022100312131278436387680849264268367581380166012680461561123931714986417365059193075885323996326164878018629175324898986642418152056771386668387106659225275693946568932680352086106687158378391263459540371677409167971610769846573792416146453093072663915981933408893674327259624128418387536659361652031446134921162486293968281718224550302817224237917663325552311432730999196960659885163927635614314824948728937476446908115869932937185116954961422139119514589565116315240305094588258938144017686973570198465049322741350664673270053040168027062684391561235516730574255306475208396848951262793895300947459078406935893236755384415821675951466055699599381158753947552158325146779312066626787190292440733978181707421423741323575070916270785484921549088515784568886225910342450915158306208264626829620260741203549074706917416509580847539020315839076595693950471868401433497834706113052178175659468466504427711815014208514341672650349288755850940724311264338553251828415765401056253917004195775309846598810015445309661854841592413958831225168451274586754009213374917372038138035777429674819512217377600215942268100432943158917923746065429961823758651102158450858731831270367061231744387978268850106911655791072351720760971626172091758720093917071082804262973089325865491561285639592856302803932406806316482114794361905783811432347015993738063823284877359504275554269167260568527680905336098216296565661544512391506019998471152973350492137448228392754822513480995050256895910880010563731422668031604260867926611690147434981502239939020038481835779068395070773466355767918475931334913737590771455856155999485307177342692311696469763188476279573895503163190345552845190371747541232562861552745143829516782899759485139738000047036871375068091990050183632116018584254474714166598184282573992882392227098337012318742704644090075805343956274947393498826504779673994817615048620947358005045930596399830174306375495574515720243692178817785816781561753637050445843702660143482800628780894573680568946043497217254001412850914049417137220559103320396194254898988047939036662625999213401177517577917092085152125162941383664913294072061194259185133995018354956161696556167951386122326294363432098527876075992499007752877525771762960802834308430748707627390727877446283552552476014256048255528819324688091837244337830860513105023665649686008222675305355722658435352466121922640503099393614361825935624064608506089973733365664748350578676100622940594498763500746692501514589591845523368266499724695599946379530718069995626353457132407929829805406795130684410342384710855125973804490852584867531679547745233320266378994080905074950679219236952200433459391058700114034980055409628523592648665801987021721833246330141459282502445738707489699260932031071858360919101693064827534637130231863027818819842284490216573123996500079451583068329628479473881949362701394911266903244651756104623060456021287856848451268772963848961659491034119150283799999656500291088242299568347734152216071322832955115013407174362670820624049128768903981030341114328525123012251801416063802491036648489886686673561708339885717232065336432664419440805171719871763356337818829368831102676864609855294787504926781437638485594979164923249392052556985850031490201605764444519633383109714047919034885373158238267587654171461804936263806893085018246539726664965764941966764659590929341415953218091794742373868527369127547901317829709326170139919228848492353084486676842490474234340613589590797879130128306873052129821308382192869412658005812475124833995620125957412732841183347648558776047649321887105094202173835987243270277901083543309033278477114002396463368269284503331332352027646230441357620933117487203394583576777843548836806435052480496653789809476145528981556064738649456480322059535853371595159263802501836496615402840039232895433740107982392379755726875034038220547926125862231807694505502046741164902869027172146405668168096098606726340913883250593791730880311809534851414594735013678950699082843903768455271077286069083764184065845985614533253894210694004925866266988622121445581620865982620631343466192921866564186606841437524494053589583022461702371350406907833379941637022732041288583171829892937694822411548247424475989459086613943203575119800026278963979435991949276739310309786013218590738085833511793139880908999122257562231078371237349957923501386641136017228590421624393656283596392549438245974776616268166768291774456004791815217948942667199680805455864231276746798535815210451472745444285927418745800111356533242204174031550879894690600588573620961309409132281909914515579868060776292724842676126974770013066698306952875052125296071412793235031407430582402407642644928450683212486266642256710010820321724567596361360359976477460892763216479870423500808873147890263626477869614647890143951411276685824153149497204845761716723646750891262245888093855708681903466286125480773787751695629244928487616136720206802131133255849924339726140572242174570429136679956094102902653608178244011885632978097718152787703904269425903658948306192444569545364605086313124760790169718957837155344091575010352343964528036952710890940019927447071367283412761899076891387956949964966332780255351181974818076905759763802221691401911402691499797885477291083919920077726275935813935653783712059882023376138755235973072993220764756197310546530037350148158750544225118406720207952653294950394997332183165974924518760073681218528584793873191824443653611750615226242902214215712380618862633462266327509715396340791713728420477128339861737171735557088292037206590179466469456032590492128862602294995270863550151327831109004912352744592507288991250212292517170704951213539897898245040077910609909510490788604309597859248319758537239613855328507998356012634112521830031169976773637777050549620390118995261331176862771028766449284744380007786064831217788016463701877321687828509575706007280130949078708902452988108042479239136279112971659660791456280665605211710272185139630821403744476938506232186451848515682099980631471169333434956001533203808524584464058632440044101486560854380177130278791991650746089048417569600916545106460455371113413316094029888218284693922043337899430021734865670193392492239572215679346970032684621969712911380502746777989046719077368699495651438600945092523311281854989020918177895344943309819851937284814328856926970881868240287272259921521831573158432244884435699677583282470003463938843439658499934910382711292713126318577920741254000590341186047114914853615390481729222266416040252135669383645282753150654770846357554443995333631998104912525392464693112847334405607147120818370943539535218479577557036411147924992602777287893395037907838770013912115897614575080079204412457814512096975445290011641388984446805169130208234834736167128038051930741045893553004332418287367030725297268349197768497268276955407225150289628365704724372548992160743149311908638118502985452444109781274271889567924705995219288234897801673143762930168565553094255108853240759742870956843040943085698973464800456543595914078831931202911062168569001866416501301764388617498207071622058444805996455867874436695478781890912917469568267532116864537308201994780017919841322032846726391074837251857301846458893782677976918469360051046577638926467661625416255370318141435575330988508555650208553368819782701223946441787547592176061834257977327018712228970053171166646379610053240185320252472236450189698510637844107177493619529099183438008944157273600098885888957888391901459470115889781657489871490939288735832699919235178832616155972542584270483446727089512604237112522210882483722006639041172474534495109630708812774260297368182508065576374505472389407395439786164579912341397841785554283781608411324280393395603992004926067426224803043562836129087231944014693115558941034419484753009035337039034388236745414712519460611887403413900961414689287159895978754009964440610681495806126525351679126586415645961524030818785459784851508626215423505161640295867320705482245715119293583169492079987217688546764121025970282920409168179776539637212344160089232597086717478642743387331204014251605802513620702259186025096963898504792880302303564825277069370644621092510111997358064333813882649392888146681023242755239277280948328541586866348303567739576992670605094341018624541542257121302949837271736194586676373354973388188498712159759695158314663445104404615614790029794837640786656527973230824188733160714300918384004949345509222619737060622658149063402242253678294999005686169076242226511375982295118484718297075921710859343801566413147640228980814275640007946307456133206576284159460233636434444765086546949796004597364711842814630107522771064076523332037295238226716425618460678961999313512618522070282000686333430558612854768367428722847265851071004163643446255657092613575794560625233840690418032930947919517703001864762140794946114735518218601617876334236280326738167857055623586676871329397427707456286833062673515113342686416298957061119816460438390285210105191979856976853179271182855749562523872308293386565297992870060573120082366363679804148958750159455173603624418898078977402721725922851507753597935836198069993811283971311749857969910087881566720985690388405735569234011209295921111306858345677406425370664414461337398858086766818304869677045807875491920497589497530541493754452280869042184628100965067823548339272569921300235460989684082318904729699541192780734268858324487812944300890092816245817128035753133750997708230583968272099153261618871298395073574237967577416158882985094400241786989709323621215661679054061122161959139193851611011643333711771854230320991068075780404608889936561915150803511565525790536535522516034674364010435851249362627390867814567100280482533928321134956761881328335224080806038761646419234087753547230957620414928073228276532189550474050694464220861843473606738305527344472377219881857378270937172404279244407510918615594204529825249061214899964103020632390675444894370063128050576235947310958165485115795914783090770587343349251990777836814450888563226291808508274921478012246704814423670355938838681067682490917708950680925125326279580331791838781758802378452440297351624878493065685901668927961246757723129189961191345279489817121018838405161416396307137685934865381014758847946389372098194150529649339902728875712324473872567832809807768090173360419703995051543291310347330535534396201536673925899559198464249104665241108153090942443891420573862125659853525289993485344188098347551025951094713303467997502363089305046862020929593057841041233648387913386118482668769502698129491527549509836118464554089503549349849757940939078006371044942573778514481616110901518149492752745530039532188475782170715636082099818421712578304152925882721681490718335614191345794541567207485759597596018748831825741827794903194783675770057154866631393303933291646196605842229798394755220596740455352812647895072575608764928723907895977952490584822839257865745963270570028149102245928813133136123771762446963340545304617944481360475110397172542689103626525555457804908426081705572268148723657195092345218998011893836786999434374376365929292378138264918147864186587404552021963169553665812591821756142820197677522720600121830454194107067697886744467329784338785100317567392398491021662277752945247130073253717091347002861985799474596719427565487041020033926339817423459369034832649907880520855809457069718107490625751660690417582372325652107936723148364174385554155726180280680153536092624795999048436714424872079653173518681253679934328988830544499723975947169543658403040101439173994090157785903808861769626433289754915618818729806552929864895758096159023423385456470081366369543756687566217615519849030062923402192717179277315829808379859805091555475499343683137080568813483929247726877837678616821788413838108741036770342919318462060568207001130821113683213686557983719320796219661746365560099131149779428136272511998251781252590815030852890880044607769894895540265947371719767914123284094371709816408713348395180822100926461091504145527211390576620117097641994956706808639855277817304144876670098171287424586857352830571345480855012798801912103422283327585341925844778892911622363118947203087845751710485228855733801788995770286861778143175371138622583023475472582604536593231757610286077735272615884174884318258805676854752292457785351945402597307844811522456643927428180654069614387191267602615927237628765904954954253220419880001750248585556827154409805142590098483091127250890850290767059511993205425251183180259215584294473453378203544496834142524909443653682810190360668816140591831948602911527237072868992589384467914183806075978511843476250065282379872596269956930490650068283003474479329667437100787135701842776714795369830016038904933515065118950631680549017637942720561508577357223994732568944298485601272985077682305233304725864618902378881628449199850478965764082909437839514951633740350795071812435892015733395008315469595899306717774733787739176737617316600698457726240189162096108858524723199389665820269504865033892743818262107225499396001087033720323728343465133082643119410713396895732935666489720079974749961422010819017371961647978890331531878109437776538759842881188604032257945088470349175855841117588096555541899802943333803809555108376687636411693222503201169779409221636688756872310875282126196434280885137359042180576583900871609862850459682028533661465692974886834267825270144068666853906277123701741469566223197325526436639285795700536212636912993991491040341849238228265900284921727798235591035516315498042573132638277642851792317267784843118550773075628557649999050933397875652913757179461574492015444982612333635583129936346607274232135555786451338907635243082841994618760636566889037594170196108905752781601237494846873799006524291580165363396734917638776996129451609939370955217537762192138299837420330184888210246508573423141034326331734689410638317033018735741855016208096694289511401197753539684982953841783118014173296556900861528405125105109241506466941680139312409167677603396869813791267274186002307475778042771084888010715574708058991428116893486519579077259306478697359044584033898128482030722820753511648591437023045319214602019037098860257069571339822074749080343292564764846526382085806249073701998181820275932884110335905026706895969781471882918330413206009137614935007776112352119162941003437037753702597820536211393209752810187380658682468133208828980344742095428989267304599895022851863481449397352019208967730966880243349492811498114164770925390945994883383809871124057649803710109091000433597612008338671517161609372674463668472002836086043925170151030679239876859361781120412937303312945370250833986585179248760627662717554250929829651801728356777594645107658525792165281718373869336435544560202501384513245182366260605581333685813984866228465197092094427633170202612229591314659396552339956438906707790831199443137557154292184463404347118187962513652640579695332103594393471897852692698470466826880423467280778023798225633924918620698608069337289752120424137418301548324858790836676664611238033375290902110157260316097268256861163975460425529420776498821031524686452102256397717635410859257599937810594490579191069399293797496496585544798178658961906011539110235015508455285844363476072344718008000822548977341862320906473920195922857767146345664295703828336122569861399426412298121150278143639146004278092828245113705746380358590312945045147451914187247392042370001458978743528994258076277550690979176647227827344435268836930146112698527341019262528566585151862911771996452430974070341558415044513704626436852415864604748264541935487702726277747852477861507137479090457205357274324075839915315786421780103063355379897110917293875368601283986341493956342733203039998780099377726343676944113597706709001680662785305022177164315296003302006442506246085835839023979836751070297303022301456278682044820808668734889826377176601873671919658469986768064578049710630961927647678491697789758859815386147157031581759155602022433896436979079296443682492019665742104593093259431133384982738973348227644673403108686618875381852309518369282006503951826306764939304418201075576970585688101057964842388264402851297861467119591142910431528253549478955491557576070487446923719109310285690412077190535661203453296831674653310515531559267448477357294301774137301591536364330623028208995458171811663797172448761217219867569340076734533731207964567234409631901720802642687597013286075820675984768726994155151057998821035595961742951237107958453890655500420766320143216818227940912897289364540109698915072727393813206756390883392751018439567606009260777722914043507009194769539465484519085295097209313953259031640746784671763260452999553622074942389593167454847080786211783760973602257550420112333599047359090819452447456253300107105138803216864111705994634306996756416659657859167250287136262096467349473350415385543027346873120751239413211941577463487258151029533854685184354130146622467390914745583610888910303595002656818559385475478906221595496611979595091302713505513975007355045121123719772088168162327983841311478402753022980808527035981063829823713417715363458996024863128569914653764160357172205901149481261029717153204854444862133820859117388933118992500198296781395127918466686314234548113374469585908941412211547454364714370123460612056230709120840972609857665305255449714043484355449568476171141053086496755692811158115710579047263961016093782134482613073790341349508160928302595055034288221044024766745388900125040468524143953498741497248042938637033983597249247725950109821429703901118483304783933964735454545826055708666490627808334204574654934553891403660301749745147838966485338193495717227004859259856340971255388342913593744417809793560421044129675996853574782842190058423492053310493169577114688153568593614389971703632446670546777065103066814741963142401264851231378958512847713105754901123982475079121636467879160229734381748961555639283011529232508080540365497853180775622690064387146448758560920641818216840054811458019097961879707664204386706786528520454347766155289467304752924996273075579327269291573991608139739471422860230643067532599786106228647062923193921227084867068271641135751735287831290185046177669955757500954851961503236017618050307775812285942336450335390579178919935893172536098635632701508071870188608851806349733677144840413261301157559490430482078828948759089960424010110649213329909770916780217778951851876797163887299595392584556921106454029540106346574324037398292542266138184431122022679048791049009939590002613613426271015632558679458922544593707707710414210613902667703165531909813941876778214199150244027213964041226111061711746115729199176916415716453136815328817677409576188905559678580281883538274216473171407827477955367009866136849268769755430351293851683884284017008587421427308248934758053777803978249733294768584093219434028475640802748531558308636085322536791848135440068094538153199831773360514898419048728496187653619909161990683618471857469973967355865203987635182357418380990904626591888744606781384541837439027281270233968858651412034263858790349485330585172485891528816990659244351691657282020746221832386487527393767436748941835250336538832353845946992411014678967902243583004483607866113474949247687083940355747440501801871260274759213741338918554410793511191553533668972516193756744502963827343925509287596166508396726222610510445579319339884792313822114907750580200886126470246476294915891745466660360743148461926047893529932357951477158745947664533793127705820706669174410587817373503282479995790984537992283909608113236893499821588671015241296611562347609445465392626299423794517083734233006838134617757324333254302107344354942020867497371592131255760551908205058367282458548207834893752552255218206572933049810204202853502136100557455050379248552742247478243518285586965325097296743823228881843720764551723057221692289520190059160841910292502104505358857756229098523507113019782009981917820038811027349430962353303493784736118569984492639099453623243481675768692754366582044195785009586456245443482129888897015968675313952902519150423966758613314665403409304026182333562061728983441632479414022261261335919283682953814543980858126627035448748564314823636320866566377907222306870642755482204800827527629652761535241170929586215659678994132846658143332987959146855832189540812588660505626181014786081633616609867051427929200738183085629373404299826891593924003619299370775321807715894595627200575302293747064514482356167641193680487273567267733862758334018545908063505610821521918378020842304005207428751549603471281866164908883494839184974493203950633640245897204308399101450130351616083028349774705422448953710861310129826001135209869183960318702318532058873036965530378814146658565795105922379375914624348782816329563660631808331457322154834849342916609258269854181547725752338844108938748686729037288628134506934347857687098385801562412410016390025215866524670090760654022444589820537118375999578259587879742840603284088862204923976420876883460480189964420687156234317285882058466934582113178926452482809290394664913378975510550549541751024458193671709308464362414025695296007025238775582374580093141734720138270408112486567158555741871625387997340102299017693524136948387852576805461370318188170758145032317829323373690296500043302941219606088216203525914868233809638111354825901669359859248349520347714130058784774543073652242158702081876024930554506205732513274903428076214875864426355620624688945659465146208050326636743513437350319534489834998624012419031732524863491704705148527655096127851384427727942189741298686680625825482076402071522677860773445125881775125930090078063645824834176299632757133293595116993898057041180397590717625601967730690149786548375139260827045714968141797383619472990354696335105323206745509797799319644490452689723103794860206229429930101134224231564459346453278847994058024773028280927027278512809448223599682144283472931039567655371915093085891227778956911278044645491463704633319778100554606163018227503969890382036008637507538104420109291279733126500946713233437497859936702536110889852981736580026613475899916016177621550362830210457465983968516527372581582784716623370444460825615313826376585449177973711895518019115091376623900367225522262605608884026102670532569427400569865928884574439413831806294083022624278274065821921376369861945724861251382298973587244247270043114865494716966070278634135937888302353434835825982981345360456469451538308469234861261125450685829515616487957204370467050391256693182262134254509112147044346231141480333503982409998346373629648948805055914290582002980786811845750494038050912250277405595983185932581596170404040653197792426733400851506176593275547210544347223006542446069811109899644087367005809525010542196977373758640798901013189516437137543503349020922437396957307086574678234584243072218545699109579886721934245635067682368875072555025655456652399638040921847100642720325773616802041369197229695073553778604165435515845664045612274125277269381984534511747187076524699127373680790230099444379055445146279481777434967224341065316607642141010172658885220528847337845476238104564468443516277203631821817229648831348997496208978404095272746407513721825346438977664099782190132948514876533729950396650564433413055461182550870439723013667885194356900531982899546864828019133817318694812368281468657473832669895203890566369681787064175452470102511945146490823725499624136935921835027355438921800124004621011991707036187133817172064010680290618114097806768740117737068684813397924010112379925967964558989371147223471045022787303207573056839256766551832071308519492483321068389316055577344129268816557099679217122806743406624376380611328033198058616991874028743363304719572000963648624887065705126687026965644828707482493118601013099249335535453713437192925203683775530046550773058614113837099135902690463175069802178275314772789456696225295752107613689968244617833313193595413008794806048461563932872175353924024694487850110862580938942640395788774554601872007716061236688895114445538395442632376901406804799594087800845606109766309671709833940145661832686499322949656946039824813682037537852444691823742521488187577034813577625690831723688177300879496375828462666887174694300284251259920791748268990432425946610204893846124657854774655705935865235774972447617154813377507162247542751795774393659067429708117335005388732439708735727867705190625986838833491156862441803611043540688410445492338309691869347427814694410207466681805723196812574035398564314531948701509661546106247550528159368011949844508770376592348826707477781786732519553760293706903178316316503241841330887851030171361665624767102727726360532354080825589187918427640607811563115718723484973839634123747787511941985825410078185174052734177177392056286389664160656706016744457201585340729826538073008031954599000988967504337563663951834497326656901493532995195504120602638307340390672937487764040385689938910676041481134004100658610877632389994638457790442868626472632405337503416450243539116811221025459847812450493521967961764102606679484438253865509452857985813481699339865947017156590898866089866556733898261036666235279124771448403995832447710516785964674179502838333892630194488501337401776516287700768666811382723178834985717547731867512014163333957208926418149138347477854227079396118930209503510478732057151320654403459899005591737187741566136912721127142297030302358354732969695134107154609010274825130306115757091637076661049711438039930843101042102654115064761122892965986839117021651356709291419135486966907969724223421298556348415410960436649052721863500090843207662375447003834712986032034485413439305719312772350657770240458747635945377489911377914673439107452350441933861080567879834133062563547334778831353484940625938011076733851202148591585038231923981348771115028628942632792859536441689477251017174139843552283715110579671341878800845566165545695508631220231180517333008177226987891983213787096753617241145101990999107977331793308135725230051788527823947855886181198482644635640546634896113058524843219055129073189348164294280297472784332587784050129635937321190087812434488904046682403677470586425349604830043504690285486061725992383046923587355767132961908317377971194098051673654872595393803379802554029842663559809300585132164960474798721048088611378918811072581141371022156175048835964041899287316746156798944550455258964848308356970476142825356726191424294256590972063178211868810769916399519225214837870976000927166824090916904352682200832766562270480335153079552873148085873654549844814481364376654068144781218652618169903867983940200273199426552002453643783858085396332692045316638416021355958851906862076250036141777479634468314974970855726200697575263441106158435557339959100434064688477944670929403222328709193250575456912729229503088135467967331221683272233006134522586355157988177948544101831875019571530188660548141071864153477547838548696810012368918449450371240909929363667255718326751599401805249063879978976752640554755514596426516224164000351001067698912159637828230064959154367017375799030534063855289774116266575731792007614624735098734946272380816179125378848030026793242195158314660195143603527035491932225999268995392430727895857163513025177062510714274097067035557753901996221511284583390020774134936554178594681673635418592467407675051101766117446874753868074897096101328351512179294940163442112507663186446000573319924155588951428367121818686097384649235393621982927627758991270145796705024912605695061400055670755997352976508676570233793435533516084440265145745907016506990024574814787062251898864632214654040413127049454298080533103163848712030323088613174301067174725278530181310921735632594187019555126430459994622960427872636252969287129109473641577275576993959478705937506441120904267351737404457604048167189330710089665636414199835598754453930258736691878439259616928961645729351608785609855602166323934494119547754120959763490192955276700925165633982695810441508158017747821070261268147906932085502673176173364919732026237872080115184968069780167627770251979697086121590388709002392890459213997086902161525669338705971744098109083212636283794768398205900611653481675095979210669824840962182181120654198707859683359122714797091077618932288402613708248509915618599624834867734010499072588006936485512693126443278735878039453048742080519268818082077220007026322346518036054628232674728013891681641781165352880901379010722070289936863229471772602170208889540785005466530498371683629173230679882628837192261750679963836508166341842843439751039327504355298496577191258675891987577983096816823717060034594256436200425044188426106719751429765262651890801227913997944481978540006937251234122452648851361414042430397116486847039183773763536781160748572811525991208045250726769439284343669784716037871410813028341822194519009949317946369520700850599686808928575211420570661327672548943801575287456064865483988453121730496385300034959824941720738711702370697030212865460219504740484295772839189377397290734623706983085159347612715330398701997759613495787309923464504700195396477162958697825178111710206241803502480085726035596269828304090312100132864046057863031873109558768134648436107555153966587134447921838161395664855520615409537544595559835564352171958067541325717254974914560274248981551450215327857625031940586097040834258943056495920340043822116286659472811537877680057574160142570375828279698529258568342126943673910018942803347555298573057230291912323522030803655885783305363765355277484459310496510157869792302140457568433477171108405235633996379004053293415957907887997459526711930977303237692865414595256247373098182755919474899624027246929745827512160866808266754240899518970484620707997423599374242975295802378791302386642444931453596513053937462291066009569717374031017070956120659080259824212397031666946967096390856707170702034284106221881369794062525189676705400156631595353972105733993321001876256536255351366751078409179409110704549283895875294827828184925344747442948890764840173668626580474102389155025466802374369776766654471038687314868060061030752415728473988146447621204653792057320895200972330780177317746052757741965621111800004571048912119722793377145475703416633350021952508905731238851842636828795445039069675703333852613773857320650727088138587922249736449109059456862797330104022281405333977499633592805069067154411113917057306410343919653254058322446199147021632089717452083179742989182051452973034304305192711458428599190006806500295420240843089032152179724762492313471328116349956086339850468663612722923417780282850933355727693936085206475901972190904656121234099389851717944696237745412876046877242328780253705147028465237748344776372080511069532193674718137625384744340281439706886680601865593170144677986004495806337864665690199989838702315391386802420733110282170123325065422209214884378879317621944071388055624726922243751611845019182377199288095403914815565044397120524585086551963972939959889630350762034837425216686355083421765096055725554738951490574943631461704675811425503832166323094667643882284284190338833209533527243153614377839591433295398987520022942008770976861174457436054593695853338813041806596980060565579508990214658825238770128256926771606223056904403466387636048029462406870311468140500426624103305677905437119487435279008726738691240173143217409253062481614074420852906653448634676644402560186728270495408496553440496002320851692117495856972070975522553433524280658794801985848937245188849746086199905526660770811246780941578426822247333407232219142272368551321629606311433042889426616795155823589728378735207575065249073027776905809004559527496562759956365705063339476692030459375341240431227760596176451302591351069826122682739181030466705802968379345036132098968991834146913486711808735891086760537917472569821827188848052595925759289024814872153943061764190644826603073815620641658021278064812847476797231670051758250523119583017422414733148972481420022781321416961939659529203482543390182074424022393773299048038908779287687411760953373167105286742715351696430731835700354720188556745492815768552401979347317037178996671050502939964031706818631633446408480540785901140747225978198666217710993256147354600423995642627556618952541945798947839236936939988822023150004345983437234367358914980866257811737835830419070884636710813960506144658994562198693064460343404986219732569372460180813550907994061039229469088368652747199028929548468062561137385537811589696019468918587467293459926062157705067071281528452914546892648933885505733771147553638638864326565473198409877163651849205263422523371426504019366076273192325168731354635295687445994908851272031854966511964470974995154516903656973782190746996537752528947016833010914316663380229182249505578106805160116545026014700591639909292945800795700364718411632814947928927671046243770793302779060902210781696140920326349728841656591283044139403560632854615698793088185166111771709112162315014914670600668827878941245293783985436343121937704074670465320155151992120224480925481910158122493611925786288643380885871580006077413829959598478260781720036723951418616068604056411334191048066838037804276183093575773342107460865422767976687228363511061506480910256157105481235035636667725759705436201896188860388192134380090794530010276297823141786231557924801622155445651010774507238544419720334301332939102070544660646956741828462523492835151854708381458396397945494391267318666268975399117035299139399468822531169490466646899647375914623392595961416120527289030179687457738053152879970747680566151078021146229555480283564520052407331058762117670169021296203781022511225102240013793342271522224191471758076163690154309482592138341675999511216744985538267896189903164267384864426701880429068820752816538894205153209173320284277283265010209662896050646494909949749254309260738954575943290638346233890387860601142081121755864518791543929164363210806534110355283701608889644472093775355048155512302731315185476508974701889643792425609131414985742728035133717276176485698133971769898666830313364613457658339388260551424248718991715905385479532342725459030182945251491950059880249072587444320804360915666133904509546552918562021387543103539317666850616572914726073692214554052844913820260549666637623315063068159290160416114787154376219756356814169147548519126433212640719485539104832110877499414861314307921375873579638278297387453747065248972067804489764599542528356691959573814629516224270780193101797957824780257595954016649853716244701799110355444322603838052457717491568817521238962765386003562195851767615542540959556207589962297461906639904014519602058209108833525316624462481144544097863542651086079854850585128947336981147456305649850698248118380584416579782497759458917416859938148026356903790301357746752170539932692891026757024343461249237122877849268417461529154680593363761839851133720804979719340140936391436369623251255957881838953928360351934850732098179065240683048304456756386574907435361584847200483033099877917087660939507837045640398635259098473484780511806719829593378659695505244978257592129867558531349837155652003679317420932477027803856659771039474308413143067788096110614347810026808650071161237332110015333808765401799098079878670240343103724859163406248479373826462921545771171485928757381637427498604596115413725183423678451527486082018371069328349943024210999680415587634536960927740075113653796889692071311125925139325852166148397228461812515073094281814492808201534796665163688600600258005008241004384687113278223410142106143241395549736183789638837002018843193475140762759976056633780825102779458236751661643835569573488582568096371627006421739916051892372579848394792779058515076985776128031400390315988874851026431390889039722492722749551312955176037319127184277694359556866246960373538630289193630447485664339316177778958825266996744632256961199131951169668616639685907500994083044178143835707019601660912759019469303539310722677718131817548417323667606950784612393121458015341530231890203426159817268172682959731998831281236577374514546191019920548933914406108196202193120712682492397337776593350749130919582729655381838790753192621113891892461831931108362180571049629672601185567000431127051863849503486268186810106934410758752255639969294850283224136755214672829964245297381311244857040792756864275284354473366100510625986327618965104305070708687040048486850381929264282654739236358232017391212306940090817767853393752872494681699377130483847113929512358716706353684793447602910478178241081172630053917472642469191923244985463514470151552256837806158309939184569804289632334315408374853461607797944419939131158152610470580286869337048868642961836748828527545313663406622226554131619502193898179901868665416357950234400274120695974343059580378040981694411675386704501436126072972517632221768327323360727891518472066032861005725384979826024527686737720827109875082638044239140553239808121643886737442743781362331113537336559261063773837287456539648745079084822836874243272510609376096672779496260191023349700362183078138165182444296551008702666569446721786031989351631027923234569537691160872191595020953278032914963238113647191581922436906227954246732095881487004612201910790156010016503902713888845343758681424395049989982639116282177283780154166075512862365866746807575472242127052471004766434509779422348231054536407976260011727589449238721983852628113136760960288251531681931982677990222807717386419593486255542474352315501926238989510863373223257171007147362391037756422563771293463151381904073238542506484149224111648490290673016326187416563700530847971754991245229494273749588434030179150434718778231640939344370902585364515964145466270051063457016903821221185554601078007673666534157836624085875332588552152269374772776530918633319418865931874757577985154955210094432007232992855732346961647724882036517998323889366537509613982140528693449671108925534116934146021560440565652620880341762762708443669631806043401480757484369686104739462044564453568048147304814232488800877519351781175611223190960809940486929013952825520554658669450253678482788488432497373290684167591306070296313810878978315028485381077091503904473647321719913310094018818562395901894622570240334016700062623319691155007762665245335984308482776964688385428777409093569307253038319625739114494349603218844681402659216713698675608907985693715433530558040797203533279375584081651788950915681814103367649045592769139680857977368753868081660474900348562611307043979990747589326396271003080655571709085729305295186258780941397547502946266925517506195649797790270404273105766286215867492586041181407353131409708561932997395914443270689896059587046787678857623144773069686452635400054160965163592282506857244584727899748118491274614474869667306687061731011869284628755955449873804656669820083880958976919347052450030678831751318458460906962313577732198220434867839959923363903695822170011639036059040956194344350530185273742922048477705474451952738798937846359865866905397175814796662458153895286819401654587818215214142246271151259068251003306117746602990403220124849793030031757909837228915295022317674125829858420759693078731527960706444888903585758614367272890472360744082976468867565268859275938147895974622096902422178270006218886619114670678284568369951437036103928037285868132197408579141268928478505355941890175062535274172186448820605685553522053562708572371136857803064811004070511255393649772589089226056099850595105788137677281965118529746536001356665866196869963693475794257617630711819207364199012297449981493228232992635513855813907540459215799948238949003333138368567055183224627488963247968459118218467924042047589552756161836943704133911518158923749536514957665381073557898358513334163653262807978957220867534576067555922954318407901900145906578287938102630373845759983185665318008279550172280195251730774570939834203325109102228697838710019007277757104313343144378112510830682925081294546400600129748745935094982303682304899030844499959672347442329856244294693752977418169295639593784856275612569704110485916391353364508758547985408050445904466158472873281366913411130337310325897654094285290861770535615088407655643098978536795609710686396139072648917531089315258983246310067708843227580625689700154281910428414999054570831148062231937839493256689064700276159270385605144224569039943253870657552828683338082686980865634295898661849658322729333363364288300666482035413706639809495850117809734132488442369448500537026962055833178752798581369777543859099734183458478671624479844566197452880058215896752319815718196328984234894279459161531536040153980374020629456944803608402411600446909629907493713648408753464527237462013447390240120776684502128612958378236802935639029425380677748329424105559630966939475617963342998542363404148432369955096010619545606118933210919116826305398578509902618742959231448068650320569690099639480517632930769758045499627072847534579745553378292062329416843158056488112530761042520778091705828769399076505117288451181639135027466803188789503466285217525223463213200590241447724241274424022427431528684201656630518245841216100877105026733173942249369160243522594387773187837888995031930119139514168065532675551719088860570920374334628640369139594939835451034062452963253922620287311272734613066914817492451018830705178050291894223493028922895346290319449170356706142716931619590527522245169222945013341000851132937612389162285818790644769764539143981210943982576401380553791354244680018692519667367350335489178998166977421927853375397775148517940305343631778407430511323438464457275924145538468733331647784223954933755615395146383895809570793453882577999686225961069502296292681251967459152302735321361858479421446253560984126421655060126567250319781859502176653131998275702214578158305177159289077482835083976430435421390208002599948379401120990867728471798681342734840081407504623960505752665231382207320019289508660606805948282889241000349502869411070106278267181429556506146467678874836411949824066345637964867199103383548759017910816806916526072713119891780853909538988197509559115786234936931638570516921272315057269668739057507799375021469074413457499865735487347724599157696076633139207337209486078017231003750332996993009248735481956572922536110444700691025872247819579114914988538684737673144363051117213861298390821585046033767046598194637669447729264776839663107321720641788706600905330787473028760678546375460096407968280989676204776913007505432445474587516494509084259972245459411328064977255120401575343021401513429269992945139843762044042226148322720102300355479533729747364890534621719220959723610234704344430701871813254457593099590833468585878100999370289869661589671386506255848525607640470564906246485098650565990954015972087816330718200981367795525171225993334084551254251190333688670502186465425901932831166618934273637319174203535403829423734900334799076946813346288620411521639630594178298368832005179946341525496531205256761687229957566549006757811183978569439634773488834281713332505188372554299891272410258894354955506576629143471116678250556808359856765128146543142249110624691994769518106096287326102998589764671713557793708436762785674265614653473550232660917423027314883720136824089218105553620752071397793728141196242607631006463371777489269774127383220316759079162265793468809219434576591692476832141930882313283571322314193182002383534019761509151633772985149810858452243367121222612163970121468845723573980184175823650093338856266475230419014489911438530389592389344175080245732999163808449978691142937110637528914250764581529039550595749138843339342540886481268354119672352782433560467398834500023176334372956737449310026200056887479752794860606921323603636536298661834729138025867850261932668234615175641959628467947744313803783303662134967949311636237498594859913504279409982284910857880764477469032046001626434505281074597675788901327895226016604512005562620781686983726205668823909741452595624200106378372972242630627111947260240791660062923477259828765559721339742588026702189249917574577044620955454842094656444415578443624959409230872279347857991431127986605521259483322798945554269564020554420043218238384460478259066082898801500894516063862158118037802904273739626911911285282635383343557133636261894753308284626346589819860796006138016450147029375635943598971814079568216010070267123395512701677759359315088036906436500087996117555870374009890088775894703080460384269813098083450708847994175764839953704751588208991568155917312486873224132708594619356945496648526127683413283286548723533051843446522811843785338252583146398088352343508067247945490311641212086424339729093534537618700177908919193564496123676507346122011430234033100865853538529252230072159755014051966342392603873241520650726437123121396629795230130027117249107318767368657189587829070025777556870404618048817496842559024306115372864064512699327706046859456757588371957547412626006725469773016710674244028199209964980375640893548306695450585093246790564553508555772367659960560380541682139084718495660236098482191800636467723152663901703326191631994123935662039463044097186051096309539651617419333851818987787080209841157211572526692917625200218916107097752015609595101857696612069844460046793542963600559313349614523786243945660484532526935788644680161072822292447720490982724427593959255620608333040412760004473494633430017188429146234569164295327355824959202998126500625691112192945212525770503208805383556606591555244694443794097238083449041080589485820911457396806482156833849184245013039470965762976880842395232309170218167961625189734844082827568999077542030996087909187711900741271428040657537147663921143316723061322338574105781074097089855332253815079846432149095184611562127029887141125968078849242306533892310636257286393699292389898403591398310764053320480544994897583208609489990945379365935502848727348627465585154491830399400601462504068728215563726035304844130892427758422760693022943390667701981806867710064601360110112501172487387163250557750234616584048345916454302224820853745141513236573600274572720775304678306109755187502199895864857773079400438703743715696489241100089454337551243043770418140514894003148358451123019976720709754323487082975850976738442817479044839148511478254880433848778068370756254898753741259777213682832004627356929020373990408120316222222708031400413415099475215633495479586751339199020006351739013297160373214802231606980624013652656555405263590625087432157832075968117495616914851725213284910790639836641492180748917763853314727672593349980424412813434776792841334379774727651291787000369883640901101345351237858520760678609977964235847729044043367457971105320992239207728824937835713267730531237557572295666139086874593438314233894161492084793777988998607938373304447516440657953090548113881843330979032175926199002170137206658892961755449990756767548027781833044693573763989807259057646227796826346871364344830654559306115338745630915485948673049829469859956006984088138407197042630670904940735312457584849795931580442333651734038165226008832121190223671472012188214308762107099529303687726511655138128692622500081903243916439189496826147256285268747884593946997266250805653193908172580027870522623525454597680677815307252338091324299744821766421941114754720940844066700254235873192747234538100548433215046750465298469210505051712453678302942777532021645307233862138054889672133890571712460563194224503581410930284941363502346964714285916501158466729859155587611737526495110383213642046201561707275720424624572622424317914014056587539719912499836865369723811684847051346995473371863956904648006101314384258242879160498431271943316190406126491399200717583982999016626405975850930476161873790896774552236916118639640050412244119323245917680939945585620760167927814719080419959248315357553618475135451419727693274543098362135204765239391140932880973919927367308973024021800633116899038165439614078937847110715863059760124715428218830043552315691690419103998471318036141148894860973191770890910924743852006567060796896538521988943237665283214241078032535295203033123347708593234880602295519670335866737929153548096698429698269390307059588874378496143365815338325629203813846952046133695161001439251389638920400562818484641331097711734316199236625481884611078037453990187825195628465397558245985674429914457735846293431899931178530788522926079691039684405100546882746544607930375506658741699344698884330085369906737473910768043035913867957726450698596080467977748720394006233135638184112546169958757169729295332634947312308954669917858460654258742636105467032231854997247815445844827004668964065913277074373097112607357486718497655989593572002804811688369099454632196532076158499838679997196132096709834783145682760458086780371029730746798330348414534965241989635922134303634896094696065995230251598955341549923965759898673051010701575389838235388679892390174457551327622135545871248426228337517678260866521526449456656475419996908667822182598864126019529241544835147906054617037139186942071745677954937545577768762672753690399386036884007786216336301645242218611250415464108533990613763243306196910262618291522730526660011431475365370138519581371334253002808835495458105088949280354366035887958932046151607528786578639102298264657905624634956220087942165770144958501838221975748542862400985693077505295622310277521861932501031263864823201711433607241422075765904172614210801179825369659757214380652058228382619846287404371470211199287345566307880326402546831187515957301717447015281166313054582148823023492874642380891781920004247070975698113583747537301890577970416158154095520221938151579367556124123291142099840038460653118988040208888875190592533476156116719342247448101597896559024256137434141542508224574177982452054338998307305275721390546844581519434220310271015807966854379661229884753310561082883879288382020425035091112582219388482111782323549744694315662655876156582554562404457137380120561572296844811681174470914283889873645663870204447295859110994134638724725314944773578710473855696539156994284490172232150059027272560271410274548495833048642189898382531973942822832798354126131512637798288027219615251921626439894961184274237972998995483102644456390658565500070542320628986257259079226633200371456007293585148243985938402645478316867962803761519352550413099298371863483732528756480117393906626334276092938494120977618616171061819306761632185546772761266604962973950092910984907162422410060520448043845135749562838042166365614342812131794528681942320821160383603794287599615888794418472478725480305585937449416830576496533371675371813612711710888274651508944401831949476271351669492564354580989411697050649870180525127638791450688701142366699008074184681270922305456888127592613933668741684958707855326941778322474295872519966818608180862405119464209134316511008709630675968971705909055634428622159378521784189811458614917821730090253087019921666546829664672438223947313486354393203808928386421850565256163049149618672383924522817394486652955047858809049755033077247908899910072940166536687785579823626552105399508459264873530183088566585367755241460444458592367755486063921922483062970107138164293673897219402411830557284819667291456307296720117484716822126217055953321490222907159116690139509106167929541146141166513188018581915376244433008871299092201468868509442194780617404328508034207691694233135288574388014467951833725226855624594495648422027477709478863612530880711143917712207382728181672479724995011195195313981696611709405160166317325837517317360330666332914380861795452934807995436567599228924319433759379552085593325134631530107863894317003768416869896901252365671097903666079015626204526303361268504495475940769601239040151452228847647589171225979931530535817063024258084635785595720725208873684588028570441512729549453282318139253036960048725722857990546303353635597299379307291094305978776609311898186553112847332382701425900418012120413625577768140838958486308057238163182736179872315702625123522915452138880332842153197415322444628643001982583548958617715293674536466523210500942312158243948568304633669235378519942879870216613825994213077455260911571962503281116688887779469336692005121391181546271904562678285646597995234714837541481930976789213455725738738642298828378930931972223973300223061497982292704015545674323774149800915210056294029801208980737198128948151590813805511299292171376224435819753109652980509333759756428927808319522297298879897538119070100934114379587574636669563659725893859931807856999343421743168779901054832351851297039773239470624271401919024100638163325031649495656589737314209347506511595728430094280476218250223683215182742470356065049972746930893562001717698437261306416246933237526012832137608924446210244735468678427566280322673250061461652749793194101992425761107409626193842332108219505912633157233058694995732003290258980415235987135626878730771627772468545160410268001827592897582497010649639881411883870509011500804414670353527419548352755896891252896228874192734431904493066925026354760920315839717783511701838413694467566504621958385692822245960153186199995170804002873456946919902081811399892461447447833890271818585927301480365458266602952896558327044672605672011607508721885882939009246476289414787700199180732500351806605028811672335170078769174942785356065099668821473750790599434713314567905664295609039021869709400878744490426056737266480279900711494132983345570014462700634810711183432882112639531775885568179070397664629342076074269339364526187860790666679699549050266573253201501197715061237514276461728489860375960286603144395528671344605416340881776726370402462668175408169187264770141166127702540135274083753553006319569757361900163185097675154220462033900102093777611565829162934773402214175635393616298097062823363599352796963982043389031985215523097331408059923784790121033315745685821520971776038330401819355272090748401057850983888799608761511549811263067367359963128663557234263935758161348718553976039153177909390779368047754611356947887545222718786075603470778321035976455416519484719752782166697811091141483810997455877238895873955623307848988862984562920419771589535463875099881826198684414560215277608970395414419820661661930846935174748998967138636593826134627580269889263791359681696978544705407647038146955409198240554012376387905029377254326895493760548865510583683977458089282260864448718837278756368086090281317643107814314237657974000721031582167254641169118992499035810080963258222099139005109272451582517939850396778948250252669945948184426355542908902690585866652771544016514371172098760299894404224243444296339446988892580828816900060924500808212626164959329183794682875922504172001949720087884739400146540698528975154108873521497357854864205774272703760484980481576383370488404269306526800980872827291927878440112474138955152573194840917464405931423265229560529955789433507140711372991997475871545210479915399774554199246975563115482558362372012001874645303034556757872003861618729209973526974230961976765921123480326181340532106767278508012884887683419523952535012665764835733211983277843945243599282673320840266875268396223821196376117035418674853698318485660731584454513014223971325080090999726560985575177535234963111512565227312929786305765535415829162070561780970880809899499796438014565561992763726962741710441628257173586090627379778635985642002575458958538582517791468130959431243453986004050036020647299583207293631207941767460543030774854866196232903197332888543485395055222928674540270582775906394181947892009575555363750651898809536766649375249913841986982454457571365914458572605593895657746016927096674363562638317436922312410071452433223914387307534183873217690482738565127801847203139432781521086588974643503147428169913582322875226354416989958406899828500382300035142434151353897278675090591971934626664913570338754272105371551802780514615858835381651458951485999618647460639314606849936413995096275650841359988191425600493506505847507045494664038768275412303869673080276205326632374967705230317510474751790926337899128074058778403886779025971689421902202387674488334777804435380487070436019173932108652303243325203178353647057850820012338393396640807893855847471997548377124370125967866617534037517698216818904452877626479947049586956248340590576614960877103416828023192149196056365017558396391695392662755837112837608548068872058223957101275284625394950513334372241810818406460535761851310104164098397516035678535432288409106983310184383427578226050848597668800819378991183941520445693631269773524500170288604372875141209854321748656948320036643415657725361265576318835580570967737155300419494478307877551789080176167533124201000804321631875889093194606182351723363296062150581043926511725488677201670213796210292406539611027410642001856312805698701354874587733141545659940063737726177884772492084108248917693479869075175817646867373706860993917699315960018021448713582534681183804739244978843967642368159060364659973346252233391062029933915050781966974543650146213849069785998163000505396040988535973212105186497961573468555914133064398868284000387959403157185300732816272117767807226196590016727666185272350082773482683458681751529743824906733508266381160615016062228428491044742066976864012748991716367922722777808695537569276163603028479480240382259537575849474994754634934400031147184636968839985481934137271174102747067138929510815437576820394739222426916202257246947374126547269169576671070538007899709748901232206928520333395594334280077493189681577033345919964802649598210459116429518453470306319501787896641577965317574201183440664323035267636285179800109466659146049692735353490056262582681781985081045637295297364007692536860753088864546038004537436116373389960567959240515763632374574920674163436265548161826730260501859953399953161636998137978007222023086093387755608416455416768812035355158138206514893277470721892717342037256364154214348907137915852165039915139887419823778948872378283075832686861632838474676779202247397401229999133845491010252097479293735896543985140255436601413998502339615670099876937257119879270035239313673382990789820916609388858178225689702643073921403695143219995681641346636047161688736314826336254216055289922875944487222545265895665644194293866658930565376700313965081463160663453446478839250856798777339651595271805543483444566564860013074161328392217154234576125598841571574191960232405316109697301256764832557600753703285851584433351815556548170770491012202291016175259058663125341549659108342391638366201976461316202436406572077179453738120201317832277796670049115382907132897078302094911176654100958224761602277278331063301983579050549405821500116282514589700746414139312932459613116972186212709875687899767939334085903622628165809983458299480271096435156166960143165754816209624209045140004093417174518534276996084849194713932799403866639630915995869888249209753429611684553251011679420417835921954586476713924722878503035683470532686904500175765668542588431624523769485590532991631826196829095054390238389230673610718519808680797148621118063861250716824190791991655200052173082745911066751106636255754194398668539508878602456201283172422991735114888916987012389789857425752329731963926193989734275082750391480409180330079960529639459574378699285077987751060907425386203559786085830641586967635419131539914517654605307089454481677864790335123427604738459000888861627149248669145960332561910130381498853500261686453269922125260664529627354536614098276110741772235103844437285811895542853045779679627900433346172487766967248210874347518643260803522428884669796221589411599984315049425192264533268174688600702606175497394063846736495558619730701100350084610018308794766377805783100590025078684403013439827103841866869293734167985181319334493139046554161836637515446642652313105599540733596457056092390687514150937189428915480915070428201932459907631071351460924918248881568363944386866877101405634178977834125059593465530187142232317084384056598425514323420088580377591092632163649907710142217303253309981436696113718115027771774649490412717080389306132021236589323509943568253527276902507222254246127364975904911440762634127587859806716043755242022806963475191445533671802689403281724131948843012953942023856140348519204684481088201517799518975267307688839537462700011628663259580517914218028044759618983790495015836873480833306037174443341041139021961112815305621709760910141555847042179632993606488012754709109951578216418117758696401813084116388014806182611085573439173042949361360182262187668834285898291793044025872984224780718578250345957622963325747668143488196723005485985912003787842509371230664562043156896527682400106073396002440221191670323293253156478667522956156365114042110781896723351391992268927219827978933092592546591969773053988355944419124541148437388508505857608299168556969802794104735682702111014352188962379514320854829117964360054649973126910944783305945127917567905212292966595023569830264523816928855273920128518043355127531507585693439683041248725300047085002453022190424841971392877383397735477879354309988657604907770305567074110218224484926197752222809449144475020121953574086165781305254985686163341819199843998295864948177466030860042019557547221834530738112882489661215551928954707864821829998494172906183611744109703553771915122690886623328582619345125445896747336439479840125320594473960258820962243272071825765863829051832367025278556562382163095041862600082475071461094949407365254518342706798268369763919020159357748792060111026290917739008488928501605647845226163644328626460239986642325444132891535903091658883430630829655882628442734216982904305213402682020450934649443109165129420940507252570460862449909536991832222313575384674014544752630602730844045327954639665833318606125865160736938951795453993920383917363625380683868924889348187136955682771273497689829814322670118266284349459665657327607724786386363386419187437840128369974375040053410668299242883415650644894319587666525975320889672014796077339462668034349275323690306895228299066997140008128639566988688818016865042850840404758912911749924208846667709858978558324957614261733419104826661749234170140142587157470118548377951146483855763576370502914370894696059272473689867150779005916038501579283193569238157612964859966834459745764691232159804778053991084346359223527383148750866244769567008164864764427859354482891426972914785452357170251099645554263842725759822960166059880128304821174642106214088712927810741588940166048478461519177645924018077365705047439990496115685990956214644699514228450123377246150061187705423302871228850857350482861885234010671115394698996404164199104792001375304645302437993767267284263057168041458807929752342408713725845076256440674539852678568682680819130906946276465827253638883920118029202199188831522856294482669107667632603284630014040081607990939755958640788259666757936804413609048515414049422929725855732738180011314544887362581043730617557765033689589652742286997326487031561958329957371038400411630916671017257824812473532925910929340730762339894058132059191914502123953215295837051386835480223727105691354052660024165761005001603872375006424401177671063301493928615366671648463052680591787187046190737847628918005654323076406284361048531750354498562305551407961446436616254167640332037268378242356312938714222307895159840577099612977081334288135549244231052553172444196367201002055158007600370931041783068184070834400785438887562414609186180440097016471952818317121289875274822459302977122485633171714711306537738245636477887439353189090826254587694205971602731007789759300638676232649450310822926027478329483504414542154808574582873597527927305465706172032362816900849160273624302624786121598051503119912234761436058897732528193273223992180757744971310566967781410097394772376099586509584837177840873447995700547829902942493532821135215348699989665197889945801686074101858799316549129188932700882714893225677181763318455482199921195599546902588677041506894282519010022165220422730090424573616678683665873017438251901540739938524099779763857445234064573371606894662418550245452900214920830330345484815166057842871662248564361885878712631892083717301408366487955237920981817350363626914911663682124230821322011072362755365977411455596323645565993209001057439965641340569653001396367559393716398817282503878428083864213803962046967851452208225790212113125842161428548032491095446189704073644786003801965402732784478050235837417734309595978759643323482463370035823356775203534361680796979175745913265088197763273989832552609895872966071559180675174883453235654687352713203788668441947272433859330121702508195473966575054054621993862032805262086384371776862827522417309181064258448053028110756844425618669363752336137675132951430296333718693895974911990408712924014927835042259458026652725550104160332287812842800714601717916672371189215993233951321783660462124499074977690479569727592865044534329534150817031945893277297637654437098411162015362459152013987295829422745031066068414303584156240440353849942602399036235147586991658429708245766756420879913437330980585722589677173785583184595954856958625585199681291466029401012534680327806419800763800104496582943150371036611855244531326972007297790671888009426090120203062049534897702050138940693005803814913744390004098385129665956813182869439169804280096869624725207028332949175086456798019185140143607936993478413681045756595056274875366153445575212171241054189148972982991011442034696459189902361772306518000702206190865031673398509695922066625081040988186686520746710805789952211434631521021728793426039978769623412037352580907628858561952350017324075152294891001058760677369428505559155512708515796419213609252736211884971083674489739093266522479652941149275587043280267882387272520983329345389945857358676303550805496947284755250144563392943763345223531532443814691307221133700293902419798682017816823290028278301568628788972666016330292644886624266891304560720809838714922195727681993802221090074568034027798194185730433895014705893223268965740367059231954995372745587065695917330484996169509593519721442124330706081955101033094351604410007318266830124329838300855446510665013197909510075671078273586471236902040807349686488435644484927769708486753915955606771206781131471685965515302677898803480675949787670344745139727688508648659764549585121138023968478028321060779443258838799787053120571538149284196015938120638366096823183760602782933122898932098430624444830164158477089744512054697108559091492236717411730754161585125445470935087927011144004549460433557917236505634671177607174575941301054257210931317434851517670937377913031012588016582128610446890672961448029576782574006956035643446861416644903389625781171460439318329220857007360257088332918458627948760724443819785479420847526771516475902167249969102808588769030454977883743466305230203741602362020909135902593205308612695939241166293129270328358995008623527963922726847317792054951053188582829556528083669301725738979737301054700265491597112398774392710863192191662779988432503433233813298034732346352109598652350339074921619755687630425847331053436823118892371144430917847871356460185051173572614392392812391360588424022107697679221785564264612725882469793568851796121328848556801012466953689964371661405644410552260001848112925196849158198397691013500255957328620642519816670505988262796891799374680439990628293424308474636786614779495887281170726663484819739795153932672540814042438055257863006184671920440244195705699869259484677566534516039913813018748308025710604683169267052260075591271585193408874739418775632691057935666138392723423266557998676908269772490320289276697530818278012962662142907856235160810876397978016835559202782696309299746378510164651434228400841595702596862656953271992624190032015545312729469061949158745196014577766381536687366655004670036344933660545181192336891080787537648361558852912986528338095268499714915453805010437858825886067403244854446568080421421979955177348801158009895101661380155273349811437175314740078326743020113350111313401854542310825137427829365075870060754488532838444011608884130909586163913921734491442087020082628676900914191434112269162369824161467500193810946544784147932747645483160706816021355331845828911387514694071043628791123132470826140924443048232244805589683366517730928161851573521786341775773563085881837045008181210035888488869067643551506221431293459780442427967887896141697179014026140898964252724637895669295465253071793972526648051435458921985998477968717161920108515884996072913182794147049237404863119253333900626956608573107200885165256867892017419426389321537932206214324539890498053550559434230179666768472291195235746981395518969638163836233615149373773087670804224801834622416725932566980501774854480810921124080835497596927066102443393707263897527078047844049782528619511355637249322936815886045803051083411657688961030315189695967210635848097489164247178626549857774174856468984591637312588755061215122862501870596421687302512476494272082767326937531607258493645907747652096022759579957143697853866902408904712515790416229842859366875024290488450342146788984604409648612459913520038622219144996142672111251975248441523663260971569435559728595253745722918258292052326730923565402650698281469245991916429339654315817984863550917011202216398530021405712060833113752683552069956098932379875394494195994054766309443446409590325717537305358717046513051541045506740423651872261406059602846405231728793295775493939898722808761829992743093576228397782250191713586310428208443991372382149212270033058335297814080596898191623909628263006103109893607751046361541751006821256253951691753337133297592036470613725947589192227792674700351393602459802630544268503396628043830196473277877735840671161338824315196161387839332892309675916889801051502801048518833831802290601148891267457478824077958522987173468014576379046352424953196443214086482155714831887980652109329870788612209955908444909950711569541305967168577158317364637241560798552679266232178265259151154255119007749289072407836523636842148490892820127115965986698864333281031143636492445206860876123024562481983398074470188418971710987513505841075072437559602934843022941509533073600922047913513050028234464228922136901163567628190466750524977882058191629960371113447847253599557613336051841200201578028235411592118589201389955894989025050062984367205944752895704706058171126650888168761304130578877120813706493910179802558626686009312915082016118679781335826995389043235139742510388282384636423005649120673409822910768338151125810497175149747011175691387744274092714740599199312585272408715040161488208570765537553300195907160163881353416411556635927136790955166030776883477033847158041924541170355431463498524859327314930876769478551363355760450510671702887659317973693817853876755762155563600030814495866091795076500693714669793259554865824158216011374474707757926820214655740232464438936914800844089148400685024009872910232658254599571204498365685577911498657267972271808417652189702232145452632475802317818380858334893076479610748552718796912586798651177477745734700080066592763236551302553269208419077865604626862542558837309821187252641265871097008673081739927825027243606510193127773143852903765148890570570276177235871409865665136131887827693748727969340907346912954439441447769589832313047593435205170346106533961293725137311918133662998681650966602368907403231761526892934068524948194730308089180891718261697436616852461009149910973989311566838057474434075630301128347572140197984688446100208425721672612018532403218344805657789239786018448029994166761761061535232795846157820381657085790795198898567976617836899494689219370630811981025128143850241205166234432364894718320920041152970390942674936128733614630997640016591938957345995657043735751308575001389578179231673123755479560883147624242972503201802904414036754155239986295077379783105326820386161000723611878394334831235937280579266071954765428440529642791152400203529053480719186193486131498121174266565203977641882465989437120129602574677261823364224502647956153586071138761652552568298572339009804076995955419230913663619731607096469023141999364778506509020619784727109676818691410275106691520481248531725759464596618575553928683165216166862623711450295258257652460637889050054707308443221258201528527139489770686555502731041427641511078978759445403093472245963782063063600740716576733224207745162955280814200704410726538343126461069978219748995960896566220967319079786296046770294088447432389416073107594843579440632629503487599996808658214582897407601404281624094429191332744640528364834216741432001592142922618325114622007034240068917513155935442876132489678549047239816430363519062660205455491624823522249443817270684688507369114108365082361130994919427105223171234172071981439581392439589652650844008753054084883659832496583726612826883490643789258021450634859704303149527419048285321953820235975408521412739813391716544523970227032137175083236814276589380545135474307772482449948983870398853911394868321322287828536575765342331681831543492618170607062718090138493678733787809722229886917450839131763529814494057456603766667836697204020703854692073817818138217275864015927707080810526420442789469889600513422575321904420080615968501359705816913886427662016202501638037235718004034805247846515796836976776400221785519650923445746833161539621100874864268738171826277269651980593420982948952154450534044925415605995706461170775188448153783295269979778942953647707765797043130313958214044068733202314190912045124051575749024707179866585791277089682355368505818169076138965114602327116271969425703248896658347649234620086908325772553852764255928927734264084196484945604985229177116683356035787760137129470523301963834432245265978031643464354079644956387705290259969242022396453292326741856062359828578642687480257250695764473703893842226032402110225046259016648125230178362981583427595014141901200353709414285859758197582263361320163985100978048156158258801030905413637254879748237950340914637786243180441179402002022694365966028059588512841773337989151727347462700354452168338714791913237898379016606722452690822247190580818561996083317585677162296622104087533503960066465002204554932224219895944884681850419830572158829058862023221684293587625822906822457537198413870644376154590756700468037962237355258847294823598923164032131174255535167652024685971507799859070739050901033265253097721700080308617555485261094109186552201320772574632412762823197098181355130785721749961875270981102019588199771679991789831658410873768911717166372737901229166873000822087584107611085627997151733742119791135321897900767433421960716622383712904629176227451947124340906258785077973483056637681914131913028415157020515270555832963194295773529837185346829052842442324982075173758142418929885288187979607220309102758844925353155914778493068010529591765751324986230857237578243828352044420010269030428476814004272165439807360927696071132001325115159291219579601775076171998052903477665448663282900768640388638454719179336453092964048017992790261770971069920598080811053257795533499651515591604502146429672224865070834398066318878868593673939922991982591177288954218590809304840110984371615893935102988651473954579079835966272267242778431301538937179481582610070413009925470855503733645736343935789882830315360567910190622785720957016901378300698336577497142020557958025485786356762363235332375133190077576927197501064997165078384291533841799486861550511176125744942755646289078465228411372120123738571086665304983550915906004093456628690423539174163221114066088964256538097540244164764638397869459841012856797407464436787079038305261999415096247381925605246540694270362290921170922666401312607292744565009297340560083183022443919774589275692751708219737895288076060060973687038902531012786903792556709109065579408118119563964316699169325327405194004921553619311124340112621222232823398074203435847889232083796790700967340194122215899715213264826942335050295423046569303257013914500451859509572459927425605023752766774704777723413626327708297199435596793655686508693880693208744801833779298073084762222826110813773008806313436716032383602180284763155700417934658183730706294912150436966364730226360915859431337618743765465907955372031193661598375468781877835717449816793451697565895089859800209532870166933854789085413827609641146451357266800791645477629469885529297434178122935129368426386977194965441121994748011964109697915021645930439409614573089301848836821343767187768516073353643832838949424895312077253206342983227559217854109609472666166307094377876039483420831077400515180042936390852138590057709309903435596832688346615039504852717167027487074773134602614894092004381451482829122786466853486478145130643792763652676193155053562695943111613901088545365218983791542468961685194799117511491316485942018745130368070376079615324087023635554835534802869838587100983666602048592108706487324202903832339021441665808843266776680217418799003068794565687589809459031763152794702751863797844193068022667262164072847490406979433165940401446874049654085376372046206102901796445242525739003524294244896648290829093129620085799452614406726588710723476717696465969349284894110903759494723727713456851032138679972419186752677953955089169847428641828938983264775992940466635085558127456353298039926355582881128216863337337402853145862460727757563640968504279752843176759748230934264155833644116515417338471641466972532804121047109440692888039692981974306904101831579235586727921737353013175346510470539682489879262105288084208261111503997321164798293940147664644782745158335191199423534024481837419078212948371907243132508002207853258920174385684074258459996691284117982422713898091070874119431997956731167622240733939810267279023964637142878979876134179311187694503256886283909152821972433719337777626420003798473287883670433961938375188198013522435000946603868177096987386191755357087157709533340597571516218226626168505480161315707685448128888111687746047348597189212869039277954851680497391885165781597398841116226151805742456612890321624454018000075845375634387932404230967760744011450651752805512465781364649186163391233853572559074456716924371265209929636533507580403322870110718759474179920260588916951677930818324683684442548690912007148813401963884047340741184319781484608373713711642125679651967714439397651005745833920728336839320552115326400588188119268448225522714895591496881031216058236539052567018191773420577996578622708211779096415350249431179315701681673536829965662996263752569807730573307527880209894511020899860651778161499597193438607398576870085406867706526312470329935227425108666030734262184677611610656070611374787434902550256671597834732758145536906437559060750843084918278732200607080884808916235258213988135298290292179093006854978830050925949229911337856749656810280586005074353458477434022485428363798726174791686920646712953038932132219349957081701821316682704482826840933065738410482829917765653348331806136341029997921389809902164567344972249575122922896644090578038619304442149294807010478934091277654115637499683568136672672560022709011555623191922627288806146444346204114147113687007437734054338997000775397296201251660333107559939173710324581716192127926088644856124444962310619644042331494691858595104511760874596112829046710936013776036162592576596621454621216333392655849874872556962928300634074944426558162269589059201477740237264273324180613208708830713376647268738366934234018766508885033333018506759170085097888373395133417977728908147229392983032465591871446107524534631248780676137357260622102300407031364367219279493446119743355159834961090056047232526543974846068760371886202728976932882436408405226899502437003103175931433207758036797349212120912305158700690948496825493969500312616526613938995607368100803356287236022916509118363582609245141461965193382335819985646191240122450955397636387845066646522679551201571708732308442013954587412825371122346706912644871980948942584251917229824070601142498059025444057061258787001005950040203025180650803614315592813563496920053841599170501564863560681830648551902545438849842213536074469676393931035616462549709110747676518076056469542220067115309004225117293291047344231570159921917459082148108565387321756429003246520187540570555830961617704066165333000250498096526487798787269889132066911972352879523935776107353269180406356742086965772681503921752251323823258469612742127625580385824129719452574833044375144651468354863494841036985030736387055260717550280697643717674570833630933632277013387555905932518260839889711898175008151174093929629299512936400054911049613546891979080469844851404650754835733625632745694635094195656072162005747586629040906061762147117325490127565145865424451712955926316114952343462830610058507902203370738150290505797497054997450302993654844491117012867415382550211548283118231450595686388330135087518984388497759208912568906749417560603249771881091759619649835107808181337397042319332892408321794605621512624168681814252290698833801049406743409445166830457228075762779432539894163037110978046130928703530068447404706676078757513844371015748707255360788949838770590983600817043045415593253288415511911672549099422187676711983216775560714325364412976918355600626321606852104565034784399908396532567243555289024500030315402967195044454845075117063522586627160706553169508268071874479242998785179493412521566486683346449770982360596476600513801098443270177171101454879420933877395741788296960478633182368858961903781041794465099048815101630018440271356768550274917253681385066759588594162912599107001596760114061508822033895646932246595109442646374921722809464615467818148723013700425585955395826022430090034727697462310393586132081490360280341105861613341901933748328721975806603153374201681858427211658454599002969580173981427783177641467673218854338969654558931619218432743580659875324816727820893197390388660632124247588719628965979051851074146845934440311870869361865165193888304913603122852430752170887247047485532368618371224676045101730088584079059607635903454495080238423850125587717668298571165047186569472098072594696156274307473707941617133222568562112987652189207554685589894475399132365712120339732110542234387131843802246886645829800574825406564785452712179282887846479994373143179767807654948075531220962287439027484033489154397561331300288061461859427300397143966275004062877350132617099193621022426800239023633350193700577578581604692346158942766422296347571552998694494322682041699548655334197109134756490632587704521259635313901306078109504884011460002670321142652207819625921589261363070343235510234068619140435867170801139209491863510980191387825173642822609617866717577128298856390366038575978259966194351212424690232019037217512453149437379788442804841411958445603911166021993171388742497186539680746862130369495140401091758058819286029683860599997512277083286242299271211767031195504609841238323233178891709993537131777894397971324910142893409541370664174430255613032534809763329862489577108895497486296501335223534973881818665442424430231914044120142146182367894534901103276186665488546584251796978001024351659324649954186744828189646556678384664881371231779371605326002875540369676922741109169471391538639000301670809196311839605700480420690560053011919628014572689986544068524668991711678522747014278795150853939940747976128539117175185773603896356140447632236320654991155942842653760291679782766396100014366897956479753338412753713341901172290719641393158321535923310301816661037164937721571540833371399210451595348814885556449515052864127672187196960471080312762405832809887867034899171166163718994841752451021074157069815539307877119379676415186497248590911386890511929005650262115928794240050464476774406208906452918586090321555587954252333452599085173705362536394431930924822173778841867434204471348976882440196031805765724790390492467257089426969917954889585996433534071376344169726476075280285732562571382123775750461293339045355815962861726165609418219817210641692737868116281495702550209196840540894760082221225314080780637212090818087776096242957232105498448081196568082445707290563020347139294231085884258648529689812683672067890152839400894018521822141091194363351707665036157587374044907695462606078460450253291330489124119899293977713635516912064423852809007680972597203625880365515400609818292892994097832669630982659423899436680815369098818649347710444461979222189831616057651040722442655721308475764846679705408295454101704709629089884355513897243331299318858986928781622915748842222505544556347833181943275331727913716166124401740867839160685910334242432237643396723854607906496512388479078412738983182810098259613539937439457124630194542337521278988035722292240707323630470686548861036527943129458928544516063758141929659271582291551712523265945355087330625379605464640032656798966251907256225902249043058188085651620978755609015185238718140235538979863753614327560491873217849272622569655479400992046962244673074447036558973374362404335476186893042587098918073116540717150829440364273771112778824651949322805623072707405261165871664173260242301503005442297837568710454951142500781234286644420662554513940170415540562300305018853831437713578169885432502988263986680711914000493874240537534700907838231072105276968798381828403755076134852642327539025225330015092550884782225004020367200448919128395982278568783773729392246824646363593308908626484522017849183278663141872209275335831834593861858870053177138247302847212859005878953878911242274303740316000250433749292121548439565799294858190164151035797704045056733169143396817802324729735244460735962841569154301686501211339535417021183728241040576686851348004787112845961417418686841685248008713136464120185081361963893017733832601705796861691215143104837218737518316635766741612028286496003456818586758580623361481236066126239003936350878061326114578520114758760057493504605143574704323792248171080580192928367378156857926826846793714106448672156879549027762525045586044305861208934317350333860244286184629392423074199005851590124623422916588694075094625859435342386409054347582128751849887524266209696154324592646460272590627758086669770246829988213900506377507219004467658639460842054034719972296307736850820228495165382828342097797808821821942494164258329686551795348379803584606403607821709176447670700886967518158933713734754231454705118998417999481275671286395349390683452815540782556844086429435376712415555197627072436480947352909564742758222534430123241039509073165946205603287899890964897410166625749587222437248966236712801695589344375852420965444073415715140108531446647434371651222332615877946947341290143826714314168410178398702934170512290935893229136083434210768477001929047326017343510518317477124773131309450031551719920134721176946853510734100019584660547100193185786464172889739374731070871675096142924080173187149093426948717356627722947564965549631543721055003993242234126144535213894456731107705405443270861987542633006475226998525367958746651593908516105691183940994952219501880770905894267847661590878695949665691352569449241929404881549571607788903911915165794050636953327157706408822698790432405182731946413988896914991150111759339495078900224799239710710910435456637743995600947808488823626835613936324260254875203098082465524914443802415907902280131619309378358846170228668372809256268874636966450699629494634601269632381789374482199751405852480689056119763851242241073284912880489271017647048167519733676821255524471546317294412526414929283432097365545403065952353032301338356378332383573745723449092781881926573899465937175587121436830503387618251149314932377555801706433749351464480509306256358070718227714035718826618332291695861407225131306560147911613575680661790983617461543470604419614557735615411906197283672348762682105919024821445718314505571624776848553159269933812817465130913983811702352302369744418059602625038764222774633048542639123444241935055628007705071735123273478655840995976210046365796501186503729143543916746758890206103344468867968266397558065653708023813780134690500813241332401611440724594423219199323880032097363020979085767133647605728888642867525012861523892032719983042944969525439669106371113780289396292971949228075500786907063517195715490546107154848301615819383779681066515670579942054294898476761303878295080428138778080354425068951913159903426352407820133937764277538648961151634329208593631115332772547841430073518135307101442918226086379027519689797031283981659750589281196980443374579150773738781961830495325605618397227214312518172659926934386673437317945356229767893790353936922925628342329237085451890524546891373048331583345178009267874542755789940605695198788469607907111968232554499575610120673672880353776478284952918282655574835505914185612424269191445845955828482398470272151121111430243900454045865558012815413027133860952569033575210102559584993394109707732749201556697545592619923357637049361486311212695353917045175126552248627720673477101959870783315339746938097866559754646323678066116597387443298622637246593127700722397585985812887697143132754517719251006443395874593293368094317673246376585543442114643201014683244417656627737446924245768305876498549661696815413340998630591666106574317524706472479929807597686936916188305745768552888692762273588257851037602635767986175718862541030885304331479026446129215703707334770476625252411533488744536934757364674887570295844239536890283130272997794992293749174104046043310096156796493011422812073835983213628157861514960256007616925997069786944088539527318142141373178845924164840125528455509013673779231131457044725657888492530236580298646598840369495664954343205781960199541257183214177229948591445050968108067364696462177595644760984178479526247938842204950893908803096431213704195168732519049816269253401741431710460517177851963772299788260862644743090189882127360594859056503856468003745226155090251768872336903796611182673211012750574391801800883568828028135023489869761593959345676749158350613110007768289796476761664055291974761513409218196630655188412395493370153145107667650030767777957513241906107255168875298731275630414947165711866482655485020417401349914875292529528635674796786414592491938793828113693482799723138526703706256241369909818389556071654569669331157121479292553916022135339710435474665378084063693990185422177891039903644754789377695978720834272322057008943843164314213354895626870004996480544689907043819016403593166165278385076823922318705164769473927359506829562679476210803616391941508843087513302510399051101211789532979045109911084215415386388228877251541896110143338730685034993254387193672548061889454849925210803241534844319661849650578648807472253101207938691839583047157932154510455748249430019000132714525192423140415488007709035249775495571152566510289712935572814294581106902055663477194151942255742040089175844179961983907208719725942948844712489425688371691628302843056446028162245618149514974464779204752441139084696735105033063206569497127042186215367854179109617316150795541192292614462863731662865079073566694478769500574386326728769143934843264626515909031510928014874468397417806142493318459663492955928744547446692750198426714004209601512289020155358839070754582225415921488592522589937350121454138479368441874851170641329051869689853677169042222646407069274413916482965065337886692448993081604930278490982952784656153746420297197789398155161732514985992303007835926424645834622629974582089621037797922046615356187724065247021604989234893203342312353841087142165476698628072113815136755585357838732679392244280347845329648048202086713468635810067776257519421648564674650465872797066467308688692843336388854169282285410001701274077461735179200839197071896585338185580463047171758668220105276371649416905982418323796596595110318458243611467566201950102947354998269730003190762647864024480380572101361877228105692243148164302466975633469511720113474103422223354906757365097137672758948320624443157212141189734707066376852018242206825259767179378586124041888358615019944714322100905445419685254392672852485409628445597650778183476100566938892021710158267674371332355401638218864208660777492126248973981051106287292839563965552618196564592235100452956121304473249236314973511055581116197742936345718040874766523012889097348841990752170822285303741701408826821237787648377362045666388278345203529977643378246367982007642722377981600675500847539869766074553971263019213730972795763796259115194171636546684308876251138546676621642504909967736846492347940407088170658164679481267427338668061043893418535552400373778023623250559961323341208137451939122641863124719354028449153226235201744780025585950573376237967991825247094759660570849618751738954709720083432263312010531823826691549310896868682096517758512405248519383857969494277588686181219707906565630664372088634404577796239729963461480961300022646149717606824877489605259861777146045789243622296543581588807267454450546724768301030741289662970373293656275512520979909564708334887751664589713659675239040807533347504340448053078384314458999516107780472937150915364728251721117672577291130480075741919094555526975661120244469629933582963297979910999980642991110337547200704142429013791039981947019176684328303529663236883185744939449136093725964124438585965112701079865718973899033782525846917067567748455853283128160052211948847752600730842704433114706943921972726253138887643642611887591811588990505446398412559302107445309513934615582251467937282777967354292774370949757474744202603196555931297303527356080350062123528041793661827627199967924175981711537120868659399782173064883812977063234876167261429537800170353908566069625015600320172270853768137529826674692938472082762200555185745752842927026222151308045149624818345805379554948764224514522471876158643747951128059306694231632353832815648963706898908841766886106088941357422722701067100621116427226863841250804987264510711157680211058384362802886839261140568108355315755540699926826864212099216436643015424251709670846632640985576017452384094126350521008758828529350800964009591782483114473659813131387190843995100241070367010096258560366390693362157575777452316766832471909151954097167072483766236606456018741894086885897468389845544980950979826868549505664887381108943947976531161660584268374407328724122207792895908716546917833178709124838317372912610906764788970012961594157329613552317848812764245713003466757964469503450580543853258790229751960360718614917894772467642952365900656797753741640762366722389803195309058496695963373254265605579907832901539007560957967923640691236407134429301629918666609111039003623532247212704979309825336228276497717240347580236771504670447435044715879279878294165225512910898423463623603857050950114844952412965907988042261812154227256731759064306314457687647083498618568489375961683064491536071834448880389741067840516757530160704377770606763881915933408374841285692711630534576069824148088845777479579460880942324566333390845223400200746686686842894893976219267581662153065867944625929617072596820448770304668194471721742353267102217888494082962648888886765339453491093562222653468292951622121593465049760865450556613503362819727570109501297861619085325645102684744880078156496794694570477247130312949113471423206337631160121779489895751408968467713817148171979965203203359575985204937370591529979547115716692921979524875353576096270139087493193429408214875570638241172953247583411419174528062988359120111907532344039654906169388685813230295730379788661475486462751478864051671115301948124799339235495650781328683641133417550317976268213444522358181843428806076603009975981353703325405092617240922562798019636059702098338029430354262593833166371170443237000941306849635636086174601949609742825301943829665178155561211649885037608326594455886400510810563121064227341470754481200108985647570739738307172487812369420112675245898945941745890424555008416963007492750877785251550818052664964388204322017807352779116594817526509157574865693789336418137332040586236824727458066267719640940692482466150640647895849281047464494073110587995046318401837622150982292678613146187502113774547935883885627183523680963975592615470378726884754861509679037235149655567198889448021335012086372480501015453062793446856067884424864232711505649041717018322579329416523297906306657799894659756922604308047677678741338988651907314857653312789427385351299488151350125141269424891240462601880738291500163074203741086793699353086233452132019322787899998228039737249003968293574055310781357274291879411259669139866334118426622069921577550924575366256631926533087702649180824864826605456211630220279924948181545732023152428438224770119114340306428232039791012715199097468232274970628963960944989804035927121346886567033281108858349667780251877429523324611635298830609411737702052571424493014957755979208279193177789490208995645539428172870000559971602447312254252176865220974367701937886999258922849575518670290839328527402062591048522891831404156363953754323299142237160818517117665501730031544660695466511257329483519831220404433619947015456042786787224018917976196576644162225298302417494000254196296709900551913386849817456211899981788098679302647734401695468440803998065437354900175970803207460432371959761091202932861018834693926035175398676032376396563567842547224867658485086097672283356184708218441783006182076136974498553864795153700634475801127176085831948179352262609590258643588124090255278502086254316733936991012204766404555400536539117251736959544955896528334452170824877851783732303514726920411158878675420869097574999572352556787682525508328430425051688198833238418013102265384287945500970748423332774665748824648100404554060839617580523410904780572414645490483227835712554072475429480931058498009377597517581641779490380273991963521907464715662585009173942038091251707554720057940681594482708840003983584834815811180978911561159089036142800411316641921722105437831115826022535829929272104764909293374237011039231075887633202381658482648951368376604982622098318867683678798708220983960464796948148144048165158003746974170663629442591549337116795003434815679220117952512664237117927298669393342615848290015779404648691764570414972120633496864952968994612347277124078215853240228910083810156638000733363557529787498743062310217747780018036577143944717302991681187995381333497981517826054163271106713041388473221151832159404384630912406784190205655799355374689187216087762160328433625964283632008965122623527350923802658972143739666083627573677432033697826982494350341306703256740191726563916588635853970671363595905888573213319451894632080568732493348237544170052964693117712730551685349126002245458779034165765797076085629633649837501996841579175974880306427080089113294909434096807368820476547408372008794769464297670764276218645063596306689092558955508485823879340773186740738223006920007352517149609953699060513021898125930641749259156619412244983455403522690581519330022154093221547061723652145812318018416102222249956024235364449672026414665031096899489481787362341444490628761305548892364272357057102682776749183691619124289984017812422672830384062737164755073067991764949232217627605482584549729499899679439581592785655692785210518385749416918271921560770402835108244498483879861269841095479188070797832000288913941274826807915660642567098887795182820695528227257611979459752497259163971574208475044073695953540682908817756502767788488614257489678172163691115386962865680231050048576160523692226103818235420358540348867585214284090883093004814854252869950673015411336844522327059792055286913957865966603233626945555059698252982240289514897846267379247567467979638375653124664185433310881798672842000263993337227989525835967284989719019158728301023064988740045716511835366131371421247598116371698415653990612105035449622319682013525687143667334416429201518185550769811415080466064420547786066553778329211187637886536557347734665246849714888677415252873074743252476372448621537294851350565917392162928414411592882310898534231257306215781843591623579092267537351021903425647713237818823696538255024879890478661436598158495752168563343330259573534202341895684637216776461241004300276102769848305131472635862911079691299667450291761906883723542877259526157063748368444854732965499264462526462644733137051513419878550087874456490003277712650864830014219403105678195961576225407551357201968727322061279142005446555052701319836070013477854779896857119687273397386196291220102509732601889007862944914581771831945887510656191105480989625019183747018756699647789947200265612063202700178454617223246003620788900078448077362801900213170836646325296706868676304217880543745402886917223166288321501619944814740535817978954507692773647432248958015754117153845071515494860249425771041129998573549521242998065211294649740655603202566992201378415441840408896847400508844209955974047264389673390092935895989382744221772760933734937157917769751755727724684713134658784200227148194397998953420312527902503600329205026668724216259225738145248182235381823847934086670952369111781181100604553206972291236228555322001671912542050704720730508744576378248894162844794669778007702672076174538852787425953159648395164554336213359048930072260798071470872081901461268465115309034382976812666605015782212782660313672021470563250129793018962253286351852750542621799123208517381068980393197760823302916617378178204078008598878538063707054747559761371258248075867250382444983818412030981454441360819736091613369984831633781178310723487367802307474370657957338490594124896994866902920438257715599118934078550368561901596751205446941558529161321450274125802415950917780103318967313245947933225222833489980811831777741451653144895035633227660173712975660380035126150676557658480991746628243774857373340668808627247735802221798054541225353416431109484679179219481553450890971443435623705917861071701342922236727765660592407689147930611291082116575395643059232021911969616058582760120285715427461068441274422281981457389086164955647513282489746530476739496212941969201860422862306235506373169096813741641621337774185345029378578508736849167446731708532061226689047221343278427198152003568698808691250963396966040752032013078095135432388079091822099879837465775513518406128154306332580878402105692721471541468526322572742317142519139778419200229578544791639899240824058530810484166594398389843426237526622750953768805332746380462564249399978632696052254339843041201812537176078854756493027127980085279043542233107260880026106901868360315761644678576263554960652797611997159497879737807253591994482109055719310726265076017898191464313709473204672113929860766729427124407066304522329089056482723170149681414241766570900451233069437466857978066134162968441977872482497471713361348149284432461457214854391732655874025595940696590568857009955219601422029728387685986577828421218659200698977772305739681390372417841711304963332140837424206931712562983499215643552346890348711916208451950963545415639982216320106992436576584624497328276418701444513847338924759431121683609922159439783943836110504523901586171450579618659842401601252992383161989926500878447686408518044202866919720360522313306740990721239710815758775863718732508939608107598383818560728769313513029666269368017912039147269449122973541469345138139779118816461772908886475341568926897261404578905800132994046704462920065515970748201848796416747271053479485536372344055347877216288569493599207538632528983146590120413573868919156030610382027682050493663755971267574596222397267254563802383352427945744518396607117982351676032298388679364557893423626780493901935921278753752949826642558797310070474911501972168867292087499556505315554509547490670583213533338046626445822400938284093324204532272317117625248117633108541334511612954019635183711826345831514533479006473153495664823454088767904514124090630288285621674451675973818212500573644082423502239078433166483638702384121746006054527077526621988737360238259768042859309536104509444526104019275884451915962739474148125067092562883084305247645947446454468144029496893671971027154421780532693614235474207844211672847081271770052360071207067361653170336093747373241917538672419639724872118397266093351566141535085213381761961087796280954839315417718284835927382158563473507377354597678964058346826460195508416663841974958088988870573285743972763861007262940755088923796154951583024639294371913076694144466128988432941609098229583382839168689059342947722362746876461562088803365748074336195282409312393223266591805544125710807430680061833141167099427727523875834764145383769777900408875571030717162661404123623539682950801637048203756973382540449217648760028002965638389768507141204728658038788463676850891356883704914269949580701195472946649197951133377887164765663411987169120051294368478866454871066487332667212421894591092890611225370606442534662575968460933208720197881832132352859736494675655588626222231122901466970942190773403406392851509211344088757645948400095457814944670797877579117480687382537660778465277587101304435840200433469810491721122569896831168557146757111719880619589408476595251906989004465153819161692009539073976782842290041716583790175030395397779131771013415228469534854727752451999692016358273166448511415281876650594870157369941319285782489395461075519011515093479309531463583537743913334224429819834884806820108554525094599710002420744215880841706203253103671082275286971651401303086127565072055469369335502469539859269982465094948783364206600657381020769163185873947232330234446935310298136268028626526370599230388248825648278641680969824719132248574120184560472577577863096786362677440137149047258676662480001617168863010315402922479944627006238251521578704886697983131110320780187586492203919097996609491214638757662422422081176210264919685016821790464901947480298267635251177514981138178709675788419969078065078200138125849555012504465402435509891420411690250372381432025464604936603028205974979630458274168646559569052163173842037195581303472543428753196046719713124011680050732719105094642672824974608763187155892472921757876345289935103756184749448081096463949466109919648701568699628839032842346211887690258185703555877695070115434702072377921216091218147278341911914553466518978850286500107611069599827080194045863723234758383027565366839558974154228290562489431650077330939932042698370066837438593925149422351900580838943558455691248417779177335542418040098783471485214619011319783879691277744491384080700558961207131008577854619292361941499223186126203243507794400340251813527784344734157888551388635255958201573757615756527096579725239174315123539214795628859345484090738847996008160437321312766985549908568846230140854979281030254797315961574095843041383245699820018655222414697378234286553286689995511822582425998741181479082638084755148665690489122915145365146314187192049042462660506687348161899313790148624989473914472846859505865865487972568270869067563503031878582818823228768258634921457768362037551519485004814081964225572697622089714813633152075663705613597610884143168554168645905289632953766175017749551705647563763034609368683638184892957052508115116088225463611021423993226216291727724580867960380014157306904762442891065176778806493920593249749336036865338754628881791307583960258669777874652176402179221143476096623147224868102215082360252729626591372632818870665684453096697415378679729099486695785882293258457360471039736262320976994236141193366195029220997794527995430029448961168005779666515251634456810484094551216817518086834004134578426999978142798519763103463540327691727078926112448840815296256390705293699437528303771356931238862780991652743903132112781611634445695332516476915082042352891973129032385115516135645932279164996642032364098969580907971816528080845041506104160896056220126501928171978384255700874676867350757927278982972867974001997319173149128852132215787397249540670384566706431475415105871195241971682187071277965052880126707649682561620174005436286841005567049006217062967035551871752551977779456310994138340041791151399697654343464152377302906519168454200363765951485982606976599995366195720536905235655699892611840829651717446769569188505351866782583273946525553765992154599028476151659972370641015545431784615284392326494973811703334130673421478463396157767292262000177568891739479348834418281676398501558929053845146912686184813208386676770339980066894574753242251653780637486613470207761155157458921457498350066093937681389885713001818155752376157604293057446080865955750101257431312394113553455032397231832201305416191943031731941946755878846695472110191310842058412167965143980115409965493090268394940420677687674919144963228211558176122111352669685387954768551271646890974221863369048737944967732890458751843544289855918256474445119884166914498886539296719324250657631877241445169802098917817712640977036892580318186940829482026647532742108078806763816973261900906148730742267425512268012259309522768804251257390989900807043933754830712246272972910232605209482670466127872297908794750449688226396577935877084258236975254397781357467182021823957473249342091183926777684363153453864915097443683689338528608820356368335879389681976416980680354044631586839895175411889685020321765236697028503426667787947109753861532322507532124494400034922247232699246961097885613709916956115996353453717766349164548765957842117279233192695508809454625946970957269154659083781365816606097039255345346144630227930824512882987736120111123271269167501731010258342993533993203873030230343106784816098778113889050707444597793852037511608173439187030483974263897192939845371942247294566485175844847291269553431133978700809330166972181892537871789302671413334607081100986415677544190131186058069569973951957752666732608066267174471132007769778815496763440965563165091279009799605548986787896619445575234801447274651763881312128711391936919262190107972903217155810104990570653124371839212538599290384141846620651076195146336623468412987327024102740428673479004401467345171850105531638845485068943425832134906618572600301747809370258561944152215958154479281003568755630931602991863574312615998643099653788618445042069380457126071329517267657386995855710839424276096323503574816832855091869986558289923974670863604111506981495046011669350009795352219549050728843053501068539619844349198736991347688793773596364797198021583238875122028126629715544526877832154631143545499172412908719561941151244521799861042987103751220668106083900135300559959989060367374058169381372820324520577892730867878253500013125473923158016914399818118724255448903183696192927688665669012813220365582654430788109846365326210974386698297764861438848162095376080506716134084041925098307233273135083220123597365537526095082317235558966199878298093913629360401518611699749381684957024398846564736443311098056419866387151810639585313412018857239097229166822597962866817328952529492339679550234399083925682314363048932294881977041891005112078830709835680640310815874805583382929800749349699470885960452470382003436673421753093463930829254595038156579240367506108054248868928257989784983377656504435440579658948071380306449635987937436954051794163679017097780413141939730007903287472028368259149180088208092229360445218596586090368861378230587218338054534788155234381013907670924712268367831575863441160572833416581391484472557106579778369563082627560333418901294052236555912982860955729863206987892671785357470913784502743249570137549251577299113371845695450395550303150035862481966222531862022161533084599081835788504709064947048246618637087241987462370916396560683470938655421434034171953167693653119061063447007620065046878016485064209953267136756120710714764040083828128791177456767402301540945866940885947998746459450564550868775431824656544148746885504260485397775392243714717007910357808459748815281596816541441133691070830027173370370949397319210976993506922817784970183155437097139196201754461061141143420538524311791935082739910619344236209589448475314191049964802663287052558995355506564796139643062394539161184016235678208989276251166771280727068649656258118529652925456042913636421107648742363607565909361607618770539720667785201482480597812319523637362316708627198962664573616299005731214196649569502225037070940600560422504843927579562138394047816164761775500709700869881583514638599155758269650568911698841895432065605024806831973765039434865044628198992154103209337295974381888515588674896700288075989177524089534836231682131270989155817407289786040068086440951084415459107260576141035103994078082291491440716218865832187275100379425490405467682936583717079110433514491549079340921642346360000539338905302201950981989562972862219299118533914218634637902359786569377904531808069121483304313552618243109042517453426289957495396437505753039649495025982747167026411601168425518551408815286003538885355250701030456801505692386155260698974872249852517282175013590573116518662199218183894718318208962695568124493630106059066125375248281282401910696867988271961502092229027759594114880336143929220173222679066253232306099933774111408257406931350003598539344326083441086481801371066673579763665380767061617062973790197702603703194772003932805443248676184053288059653236693350011838683654715098174929458944123921672998501745407945555268545194099645741478418869638570174987179048350188066108748217688398914125987467436355759752066951816953784531184687356107323014042561934507864703850824604451670818125028572476232868088208956706870964758727628574462219261999634698410527049233207778036138267917473284895437518373545674338204953505679390516353505004946693375234225404964923405888580555200778321053268426654252100986484528168979624119382433503104874008641417775333235651424987223863342897967413549578457067426526946721335143069744738417213537230115279813487278071766869607789857847569832961135835430395273332045956600079612698917871808742880255685668649408281779351250080912781611620578191820537566694798642705486531009834427657837190558739426694129079552851812600021513692275056751320270303233520053279120947204285366069309949760979730873336137011992979000607166205903040448763980867274282223909683637245262291187671983811763570983887758127297108137552583990972563147070063621578641897608343096333871045522320170657460413320525537870521269689433993637076524978417757985822246496913826553252065817617886261707210331452326227561269186781454452208954765115289124937997074072885560833870107014786303489661315017144976872094189656788550247944319641001297319791640510269131610736688911112915993721330149650710293386497483513346740283075433762546454205545233636028269592032968436755350699599008137004414544336953974477452879494605849165510880488483347825973219950692807422444918732683223683084325520808207511456243580907917656951105523243670145114812579154833731108501459230073684384768962129548650318814018648581101819357908378161476504872508073253218334349169000188982522594960140617858140925820705765152380801373462793671224064487079281671373180992765233163456157394846912588964393108200205524384414611089215318232049032046207970619050289396172766060298532507544624785360855532397581464102332358739765529148083510730744080247124218434684781113747308790398001365252072074451621602285636061150180217682446501372474654659434078573401915877921737917684202199256507421117980396582933097314283501676898283766275536553899376997911428559506372944621175069622573828632127983027786655353466398472574155676434743138753236673791778900730132840349534205356979230298367156093523449406945016112294350169487061959171104573079152389464814995818366436821266158499037334150926326709797855993659037618594885292767890470002961082747503677636264264383021912052122907559833769495672468565693966561184539732498420274808135234171416963875406829355288415037861236230179226569985595964487903744284211117382092805261332021826017551380651494740585282104824914875342537730119554515343337048079762308951800898427245898420305946064276570867587296132869122863308658028488124176457830830675029911543423480433764407697403582286161826635989158615383026767873462521879206496352825132464976177656564284633074944348508603140168249063635557462577471437604922674886739741796445683802912792883103145394709449102234387541748334874998376306289956325797240809321118691011321380945602592340406912279001735292290954562914133067162677405944306034134734194113225451116195636837577874140231633474241240026102888235113414005895842339034227725065087520749149688095436851197286987089384969277412423389379996948730867026814347895691677838709078036875718801036151955954539018816348219810833383502663784772338863733672547630453824417409186349068289189954411696596642014521337686490156532668144135667380774182214033121722978494943160005717048421660439831282486567378355021181310340408207717226693742034246675590182131582302199533001842268164625249696220776830271804381569418715068184877112162073461935053184906241109751768642759926518612720901294217999515594282193506719596219188273100445120416651578294763244094342323715984050552541234098333748541740985391658463857889202286933069257956977224863987872002695189512004223682415765832745391504517442730206016434903450781082802232282974277361331425438465376339750736043216234670698168382891150380149773412546620138976777955983957641020268481037726343929949222817764839348578703267972936286506302148815223550002753643133726656312706896391052463614472894914939333077479946183761041090750529536982568032690324483761868456293708057217694973727926835448039985750456913684760056597996846232211289920415156566492381504898395364792467589107025677176895126785442395128328616697185064779398267256465607741807056006907665533092637148397894566130438388086207160267292819029241355137795318602261704499471015314743997166297376481588578497307475884667750664351373666002372268537344386964968814851529370842557524133941353180206496301960487807949784687520830230295258916943121104416702071344462465290981833299533196330581189248331079726829861318670930273034036152374263733254812985024089379379272093419427722085521344352176725578587958066208113501686166710577301813907720037573985720519656650331794385833500552628789115690711165261659047431860859454452523630220591763271850386103674999275791911534417885533846349644806024802686759234143880507274367150849595617924007307983629873104742942416141613446214597224231123422253706807846311759262383936690176221338164256663721603552506287230626561069844736895369769425789093698484685365487107597013380543284511678009667336238218688437666272787016970437970833029159171742178456304024946858170534703815160886883402794776036069247426720788656705165474162850258873636878806913980596727386743630746764168700354034368132771813669683874143884606551083568801694320737966500296479410932765233645340521677759474780400040845173076808824506095767855039548170405312272720141592847798730805034587086144773154977183018721935224858601019487354495404688604741802414658625013105284239247117975672031858009877041062336561792380872558700810474280336990197304700632052909890434651756523655400754669754247549891295461518180360635027872618260003543242651390757088315042792296074589223838728655939817081743146711075555902711802362917393956918114016321302025683287718469370807924451561005865478262390515536511366182179544937906616860829611382222686325648096171876289933139283449184923330030089201846271420550658502636957620304313079504231262768286063416776137931506495924765948448249401018144631537239219922100134580455200685977039857430551561187662087305713295311922237678830298492422120182693992253525136680228057033566981097439370747585270752435479806134223938979121302710406330843455140776190830756325467131786220529646729819949887449878426564607470564499594958952343014196466470901416561542561703894880499904043249721218216975968299724294710951129992174438976965112052116701770859517283955154415434622011254211903128047521438006962233135680187800409571969527179861332562351872267506401065915940655643445928611507165794864504858079723901600943716873366899654784096713706724069587841337862236784001137023703510622101058580438957732501370059976016273895507348817146085151747727930627066431755999354037149234760243096755875741135968313924063272703224036105447271746502874643136758000074410795587555922622632234886582656462424316707168726815684066220734838303767235748273284135768958523115644479861080924144919738210564551662545594546041571187214070535545068976096274623189453850732328827573398391406288019460915839660552995397869556267942310764605790673426997645847263642226023236492379461733489348764557493918930715489476670780225617252033892154295033090773530073508953999021142818580657393475899085704060042527774865539451936368883742078137965454058935497886871145922141079350173434840598721631648854557154204838143575836481593147259767215400508376879327470229073921423491495358010670904047486334272702178661539186712907603950518139593933614455637618341705828485981380664958975757766321640540598292163265916514863989633479397191334023727939559488997222989828165278566087816171834083380555476214370230153743739713905033904070475615121181896123696010283753447085153580349308205138585031119515770426583308148435300298968158914607901851404981218440448526485797580984520875803308808044601995112687170340958650437784922660557713766532245621705082445914950535000606592031594730450013258688761579386121849379922128920645098766324211764332852723637583662352033272125856684538771122457763107094414067098086232847534996976738357582714702584810901400695052259491540147539710916796054183762348479573828110870351075297144282869317936751123562387590767168112117393329891771883987576475813717513289294541612640089390774416850169938199978626315441624213005632235569519283839669049250099147461440148619857431536043134144917170103200907605048901194953504329979169681794026578621589293002140628207980490301234342561069790277415523634820241429163589339660706298845340558955981141848185143532464514714058093275221366846780345045549671421647005736835855759801270842362369539843345295840025842514750174070659736729800374220173574311201687765816065237187650732449102586729561462222042692183928535973567686305293596155973153953306945405187451050164941459136609595402581256404554732355648546845158732956920938618150992994783597827527298428412226792924281098310549826562856555600693135073422416230865419187270957564134289754970227784769055367505281132566022587936247893921744853498108926219273289398080209464498609822216427485597105067605881814686805646908776347070328952070610707172253365923806190040697184826911815606782693285192134641598903318204430564232127951236075531047023948942568904515059590547182571375794197604087674491472455843285636562347988242493359702551990351333852582611869061025256602143719630884217182857943485598564761412409906537008560453065918733599271607461791926613558601053750003727396312043132893937527641724651005159482192576673795814375015986053701830764155257983419191546152873974696206101046167199511192710119932216799664814915536196100154677461861219494557261519252875840354653573287783670456305257377619891685000774760891302168148426630668533063117369118215306069999822104868410055396328536283827378683987722171186760799622107965546030041658307190276677752227028796224373480247132795329639571260585953665424395597377011353539928680112971089785516441007332285452283305471978002067131370672972666169079119168016399232699762038830662863446526387642367811067052305855714051309494851147028253169656463039978875921692664699528292815864139828259160031108645075434850898552108465183053441774387371068029081125068890837518163983252889381595635125449666222744438636461931839149335542976500476628322138541313518343645400383892429284777171597968788990116939036389611667039440045115904219063197441327417469338434999464825768740327897540593665747974607282589316856728167788427154278403896133386920856389243643384411473441655475394237432752656308179395026802850634688805023311684200765214754296643709427939880710019872148621917557357962244718797371320915847967647850317263029835419351716423988751945503715607379955761292927350876024606807123450738266545350736458328725980977528094992631072662680039112856618325588144711455079013630770424584805836433370430914986520108232693521718453387880995426195019960127347870261484834023290621010039612343815073637498475905030946035631318649506976558773203889485072293422392979222871842819146203492905274590400711159611009745427513731066686726065606430034280144678080016046791911725452776013809472435723999111806920191834825781066732189043288228074538764277449868954613159375119808849591855477369917631034721628231339530456243977587049241495433088634238694962818858104077787873987546226393307757676934205186600427910806332857373255008120809737507595105046022129259562481900668615747261325851110035280199926459316973341590423643129961077034531679645475028348488064636267082309007981242086944589120869623825876144811227691642663741728980910394940970231156506680795451881592191584585155511273240355641724926864552719573525583398863912219740794844569588474975856129442820692998077903324121968357615965166742619120846302932534411165227130061057975420344129292211957408631304735932321777433984647167055197112047109756064257138031475830566473751951392270078676381561294639917028460673851661907325740964582783218743085626195733186680485959793701611006126765304462127783727216850176908640860659073689702451150556206256123122567380159968314217491717108778141398711896619807928574936062491854263983799429313827439949521912844865884875132356102388636586688006353591941879757038045486661009216702211697275369559531239495777760484573530113328469307517074460665817092468742542440669198210807667402562979404589191948561541339787201658635013088769795360748892239543561812256640950270541292861739311259470112197043165518928940971102514238325410039952048316835515779534788019209339909586077315294637801189556463973787109069961562512905718333988306638749010185973745869706736591857961923483234845844810115574847882551275962708255590061493059430557438661101483048841428579202407468590326345828608703882124699094188381225013785747150474511777282894336647793821093478480086819798469139334344889087699096636129715758994351991504246931749236102231618637026443106408342113328571812032203131584149317255123282675478508059836603221936457030187501704971063721544332106703541313787305510487836226770238008970898185923735209976312520725485965351058862187242435081347303329788253837319224708494363410895175297389059206906971002570305070241582988027860893200923741612786253698526251433165760189430612797914131026242283330696558413500415912652562888606073459815378916975907946806914382384441437050819999587051562620977276442518300212508153992902488729996331920003311367443881796855084247504860901093447874438193101074105429607226155647405664946277815585758299189657535693122804926413499394413461172529099478877791233469189924666824996544137183588020042619139591555976806917197565135169299055480828852815167154767203137644380394613223332335151668634926170087807380481490897768681973801321643073293977943330331448723796970438075885547614292220108092301244879586563800038868838642602414938696434440847297189149534322845202569762806372032149826904547350637449993671816937200772865117584926516451967323980738793961539815106688841138337902267977410879149730295703699003345484013993648148842761193614278676204959779513561233858943788400447089578453813089534979161695212350593670944800100265393541586394721500525741156264224156401900359227714583169145840657802237874294341267394442669300029234092844136476533656204357298043843845807572859470400120764131300442011652294361968285466523863578692468302048519912025542491529605737927399394475682767136939158471493344432355120348057249439084578922461056373693731603280589875809856503839842151365596216077631330895252537447020401401630694747133623623198825989263249937226464306407713882118404185585413519784185204067255920006647086209188883874404381238405354258080305763036581947033405606996787357844568564111045454854682331934540004248828378484831243030507766379925394869568291728748265713149703397744861958389893246100862263311410524604234681297646765372154207987303700336721548575325691423636613477396529915035742515268582446805288023661196335069286039132063394558876942216903918944163890318120957452294516645691505406527609841962880111700872911167665526251175996143991368685918601591997379062845339927059214175128769748723674792430257984189164468628781124537677058768112208526480158226781298037382997611679420738332793955119537736147474603320918196890012002320904877084250206458499410673595102962212195465832243535628627405260750194620931145773632052419571593693654258099340203240019431874640661331042225207939895785420126479752246313677038241602214858209994856766003931665368594719072752851151129074597435896528993611330144449328590741608867449149989511988099817273651928706375079726535607427157305436307295800362133337273377982017693399902044526148988309444017756125978740116408628586797004384831419665235982158035347347153931210658254686037714932138017171571701158605720326377181845951589571794118529747543779138024054414964104271047075775100422171228632946834977515122813533623303744486964785213483716431116210585880326360015908011441664528926485343506107219248071606373514084782890743968639927962868252620079166026424590081943921412455797942656302764623904376676705153575774754492966302291021995699304990765173413500807709275842134431337143497929577319203228719845203453415530204831274422657569816379780020065940315321131572436739196981391143317513509463756666901533265066180006164212206952268296177958153408426263045426184686728956427556719069721091718827994032097185886759596656632227173187824951637403155772955577354481827549807692492051759567080593772126211992663076371205881888665759997595494922676556546708231947485843778027816610692536660554533370705720860919915543105105920367993413540876907639675861587474177266591432070050072605592963530288936801657814823655287407323436116401738930068642394961678201074027288699405921369017388557402137655754768778412865853363678909290220717455775646114530459272501149566437389182811240159759411341542635207440573715977026771459686702180819561236298651837642652579073198218601847392527333437796865949055069256232752713883967487450654710189092045044370060998396180400227256113053598784805628703426733841147458393679664816863849298401381413991224675274208466236056554308101801547536870131731659206706033454817780310156732945671926138766779359773031123277515241625006251985792419815129407765991890504587191263312978759933588585993038684616501520018311597880913648853276181782353984688452158534113179213287728633883913166016833233057390610559179538219453857641159175750114863145385859444913962804818503862670350834662783780943725500624994540598341257693331476818339746959475528310340739642231339308229672745151241180726577617331686488206107367168070371762402176757694072225803661536205384173702680597847911473515511717267303922862273097504924513920498290243567897475210715488936252131942065281108269837508504110058818077673247718098597756238831011379256661458882146320349709542269232970673320833482413026149115233595337386468290784170199584347955565936153053435123861220197162362251970261235452973613624758249807642429437075631270870007099112361565780208259003824029205619923326049197909885390152186000431069097060148462753719921641890218100984273247749480284002276995476737455865964228723846330076695860215425031041088529900244688669017087896174660681987181276569513337702504034024244754648564373912669083297004951062957512140994972709864657543637363432478064664537330671844386746983953597101496258970055099896411257786466057808154779517921171665380813167952353987955111074993608565530261164612176999215610377658530472026765458481776403211725531736386291700146072790774777185940359516779542881081933091509209338303363434839386451886739400367459488265800168173128469936820127061255536827144646664596817206775357532207311431071175023272988808608993465517030857720331743951467159881549340462923482123009523823239942421895171986137351342478779277203814996909429134343190992378467943850854347443800692458508130425909199282735692956281810002226869009921571279765651504435704825099651704079547273188480932660477519997288164517505320472405540932132056272933689704205812014869843812493435879610707186626108959763548931974688507721847049980477010018505005016695915017520757258451041772914811904294170138000375579921781449363571147289848074636558496939871894714430361905613201182658275772465275049330056573478290348175981845028045424436471190423638045941935439831523913797224492430434980923470127126260717399976380296978372345566339544678300375662408288711615139392190209637993630267166161666447760323649197181277379897916637327541474848434692729115322359186366411766191457484045173980488101992915979298298584309044626202847584066657248016237294328359423146787333079546844561351336963524621377207890234019285467180538868240747876442766880147389836667113703272569670570847652489578719782515358778566092483468497944997145326237693157393285660916356314429507196490703824015142992946177035217374308458431320318637945457321131446035049522251250413146136279887780013759378521469761846660622723488327738926996944949744454512728457495395209015481408216652445681062779715059411948485703153910223526223427914826326502138736553091213741045608154858139239068558820601443110252893655017072602366709855805800230399136436737813686731847019916540607001167811522205202133688624893288669726852675294017922064139912888658212536610225663331241535872048659468674913934188800006240474623313476678045131579397446164912694607397685274706367237444798427462151618923904326287190715294664505654350016603206215838080484499760866759467545888104187780492862171560118787621833390128112761612425804328730754892217208174466055064748652144940885478961450762539490203339104690277494804583549998332989999466523241296105051435229132684167808136737124513035604252919617354727318391028739416813776483546028529487887303636254175713321021820352070571510728539857739226065967932203120536361906503568956688560065844590889732306833813205755617330068845800140073602932329651427164005672140397107605729619372290067751836981582891366352002111907372025114728243758417268120560161522621328488868999311362184062169927724187338542056900364063225148714992250160324947740693707863067422309606048398826392267135731227156795455678784162569254868820412654756691915827940859622881589630680792849127105749946832799412837357782643930450287983133497302147941120493223718001154898122518669160171484038875655405722742237827806838980067469614792781918784538414426917688998130572644175735606493825759107232560916703441769924121432411635901335717082773543831841463095408022417244637662388197886533359116107187913091077954554457996902472344825904189250285081031985626515153819773955723492473387188068151923657320184406989730531937573466223425422823525111895470535669122788746455455285170657591599833538114776965735638635921123055793280584601347961457448722092808333660511228712851557728644260342821619583990711030513360630421983521081475908952849852130133102117092993471800731105429164399593863324933409478475862446750628213496992260825758665380036760103369296359323324646102129478221664625655238181284096099053213090010534870915466454180450157377114353868064942315356299159142966690769275999085915715951317222359663227288023372988711584368327616259714126049399476730364579569712627122584382531498556805680676335428255029945238332881280523910237025604819275773947676871198092408173149275533738291888126155311238536823188550266974261617777754428556168847720838293374704512786276895475904707183799783247702895616958240275531963708070128064385301867808938716948702522108034987513342977186286517597175075120212955665907146349652100736851189587012201674962825172617089044258377947213914544008333554609290724962771126018857148927620530285243679725614286449155549725830549635290139581611219330217324744256817011980031015433369045295326509917951592903290054332854603603419666105448684310890746237615434791665922576946860859854527658705796519528668543265288866735491033189531203309093876530845938890910243781901239179253507573021099820296093748319779295387827263955838820296746337386472107631133456996258161323101181269954387385428273379313157789807860620020346299552686494204979750053351661873032781224196937570788973560353360587017027941121816308142331639741602603071113781600135908867459550590479490264966897234357549642038791934060259379084371436636136402915340614875768777881175482100213499195264361706470178905541091118211429003039007123449277666949984245440488052492616625958229671361535910965462118155376124632476490843613021067575216790422293108952246731491990477951005670924591575764004611980202735798631062774465834722609530811288943757885861767051269781874172356283182558027949214958866664379985474423688506820870506814457389507616093638791255327197511796925235525158102656935350664706286057250837850733825353137335047564836677989940832530887522745846983353293817023904306834390815339824426892350192895036389214434162796152195272963192670123044542693078307717838954034650413564459806343954732174867580332320053061261253522584637987065189538140164558848193681755360032995776034051425273439273065294883709469676071213478185995469622789228605067921880160836418102592253695352056298359387736592245365312547215419299880004325362885080368310185928779988526727044179716509445233690737486824724719773230689870485320854712793665672416339368961155327257003551140854392454969972650484693468536293328121787620534057010639095517701606171536015537174233038773004530638376009241851880598063754858933658488092748540456050897864488427186204123114631506257710984270266997869502867809116129032670612531761601277920082472949322554066527437954732582331596205724859848325376885477436484516461591269579131622568541473684060367287858334779346824430945876574752468167198339399653201765379848433587937261632592058162790274598734415594552586465319074820924081264910727522990249952802253475611271744764793830614447026835215350315586961953855916054126440244983547310869354397871567369136567984602160017695316184925178880407758347314541428867753962974671686558556511367478740975126629383456064806329385598344669442827861452244122824911271517292209095102334599816333282068983466526643706070152068693840009089592407801525044416256528521795359749456986696019679353804708760538418164245658528605121664271381194353245551654866422570651525876724301492103256153434312952510594722136479733511099543029384059510959959600556211818899226190741144117130069074363408306520894343935547632737768334532082477993064025071045562394001697511110528712800841927075341382005319222526033786544051050098519667417781225888328585666137016958458426896767790032267383109583553594494526758328451846234585134562771591175620539657797929707726442655590361996173810066141169945096172576279901242758489942633758303596942362884092321092382856463846009896758706417777758630058733418103356055316139336467949349521808543903953842068228559101173507536426642214040035045063680584904549229546088842879020590155746554139889426166368518337566512862089513222073553577704230740786848902525001519062875426183965850612469557491207823815261760241110301465053204542958600762396735474729314228511424327949298868624505418717761814889530930193537598829411983776563126122473817982046261805282617114534902423363893841425824957898387031796825623055339542989578970952651446762963576239418171712213192260140505156978501783567129250776350950739189225963945098835897456430028647048689798515995962972513942429484952383078831952402711627063951485750919883537621970136653994033516931047755046560711817183920008210533638931211303327545489316715683466316113255476790164470367912980758869273916508435665626602862812108984970171285043517073957193010245511426901054423057009388967243739123584899605578986888933033861995914919204040462259902795406727233335176586961676139907740310267145447959386236532312009102819208078241768891835458774374909461691179547984729571972399569984310611925853773630360540300613124592603962553895656689570463307254780554736376436749027711854843250560982396157751575323015915065653531226466742871260883973857341156720264022799435281928690667189729453208501304297291783419587807956344831748001712281264441363674739774890092677185891562564303283631158405528076004561756648541957122439506335977393382426508518438944022984415391280759986914112391428645957799228586331796166903275894349971290349212230723319565679518997095781162646684040127821673415315118991498728758420389244894628440268613852490291004094221898879783609975045971888603533097902778564088182460178897589983942118473483526816692268051350799450872795007423193394052204680084487873797923823374171055969294110603960459923608397153837324950757716768000767316631283960763925774410907598947876847433344229766534486604006125211480253445621466598711479800813801629937219421552249445958770567461288638663850678761214588282483034930483622257970723730799896727609273085170100954693881170385125287871804172858100581665555340576966082896140856145346984605156592046230904663106420434279448273364570387343934348209401448178818623201539504545964130302676269415425211404293827487994102972096309021919902408120697817092523060008914113100386131653171488244852564082660377036430924523269934512032006120383606533931811897790767805284828630927284867542058759675886676052081960674093989033359682623623045641812252431714073063127347012570749652233697296301799544854135351275913693667887743634049617958396613766004154642281658801786922782529791434969272921556167010977199502425377759066736697748948080534928763710731107516380135501625244828364203513174626210192361585146007994651812100622127952209881457498112733255798856919077393675347683739958959773046733765578394959740052886017728578257457131926594201621008658138632370549981598535872225694300739717944628059240275948736813331596716244548566733601555556064147672942614544638511675701804718029318496184879397950605958025013703438167533090922669701901326710850114773139281170661536619102061877054701052496704363697620665637277282639963740777533565924510950181422584229435702540685729786489111390899983688584521586581795615176237852425147858215809729166584983907246895123787993045131439507408775854605164868048468965710973679370343033532876129614436248176820973804399289548080417354933781684736232669196890935008256735349784206237033601744229780695013167785566703670418099631674964592758898812100223208665717281897146661685363270962987285463820648163896569215493139122425731273574002334864634771434520077834548781354913502633567113143083251290076524892555452693489224656871080307063019806192635902522590951188045401891066597093763951608225544658092856558814210847618007019104601382274683191933198000649547719656571333871327883480759521675540061921039861678742444097426958735318001346839997259816657335807651438881988286981016505143112697560781582896558763116460491608782847586323891040912607610511331481701625630636413372917018549068149140248382190037889596397477153498734379858914838987237196568122199057450145139505814048700250591445255845774908860441694088718945570520577513720453042907058158834588776636710949607589662100400092423934012644008206158274862927653723607870014887386313644649267802789036246482421135490201256129215316776397184798436301754869546329011182313623057493338583194402811941846641345626505757596274949970147689374536569307547630034192987997334681570067965306557723056368075851253457265206540442715306009150690429075228862869484984453867224939538796484283777909050284182460538442566586008459029376544866229395110010967208018494880632658396054708180558360095289031204045069878696209478307311815572855845859241466679962949043896005235641401770376475155419550181760425599655403533018164934225950527163883372302119964545896848768667580900602623718161641980433864504584331374548674543439609617461145150764160332409277034933340008806455911606494421536524664510839976546394204062882750842062564499326778780823211535674027439864827587025337268345859310774179334620564520652640890624180046631966370458001679220333706306441530953903801701780427364909343719243965639928001863880727779526910406734802237259100953019486471082671973874363674856733869995901111546219605322490023057741453192514200651922438275580101030641078576910036423530833362660381386583215470118279599615581123697945784860641230455154836296747688265605183402280718844308003464258756209923451997504129174027621238224602230304077738800707512146709064843407773979776562063844441511466276604664758829968358456251565452670239991777799192302321392104018289382682435599740807990361548218183406104189481757685111874954211487706141419059489528753246914440518036903027506966106960795530463104975635724018947539667382684533286355705783488425448986359666631873307710248701310214729525314397385246498340781077908923563115827531937814604594063607053427306627399849021505376617373602154717961948030511242585915934946786858448096776102368395161484788372654041054960739016502073775264115485875019604402868003315251699095048923811160119238832775477377871052966113234391138654847141910602806420526304016201935131908810938662635637302971707951360188172829497907639790528675315103323004940940160726190614371000477251932536102889818932408951122484007132704834275254969847943490016827930138979164565759899409073825360334619885246260084621418774566727970416903945320081223744149070287209124829424406480721566187368754799942238029780988315912088820086347770762421061362167894401949114848014841777603969254938892116663881536566155456800066446734464788810385751987232701258060065195607036333126054239013985368132517152484894242484613046357012905737537325551302954573284753541118341696863588072077961791195430292773982159203540643195847893395818494549477966223121860627251526243811531940411671526170782047971285275721512352547433784849341069229854953658506113285280024423791752117877523907595791699653961304301831950774615287819168081250567949565476389989248352184768400868612374971181354152610938687373483727840261901974228915091545695923367552642351899177840669714887314873105289466116233725532110667244566314876396230485984337187254528723947578895892546927978461693195244319131997105038344396983740932238032317670323896427461894102739365136657777679821596022605892586383391800590885076982509532374329781020158420126010812370995953843979861201283320454511837003757545165546160383023906532932746625744025502523177116149044115799270232244175256500519262654795954463725079123957863588608037633573694792075331415258400865613265371398003590520694702863822286594628510163260066194383709740343516400582187629133860041192658355537783149199456627027587486018106125462868067492798488714622483795711344115058396601019646657758383395730432135500739251434638468580539371801541794559543744930713495573339615934972122171493824486917392683359424972479967523025740738943817785033573764541101286264092621094396258949195727510844945644830749491041541088882676891838805734019777314905679255440995531445548073017406366904768759120510611658296163052306076688092567166384760556701145086742510541665280767165416474210813281638345627520834901943055352597854345395852906307249689770084594813966350124390519525111000011252909133845308077691039697766841684584444463087372405628800349066675656310466311593923403151687888783774612350192651680252612154614627679551249182485676717637778989793335826856947221257506206078661172311669865220324629868561180659478461401442603026876218116768956562348295406802530369501924419876633717252611540150678560171965515812313467433201217347168918721581342629683434736438997202352822914293535267424411131723671059835189602657298174237094637662320425487463659606628609042577451978464498579154263215569853989587621457915103502009907435913371949789977954298058041583376907315922323360652364437219238646917055984630022031019940338589013384409914048071788808706098053543330501869435380775459426659885558641845757699574746401489909500519359521711571855677294983739999884235273994632872482720765679042601298661817276506911260418157475152271247534459663204293242112503647555241556214585968371896079796034270234772190698269052203835230762929337953221927073617885092856291333307387576352839295836194026069183350788861908009710088028395013851607935231948968735799002195161229324374016418528821799022756350041150312121758195595060560973711816837804962271945764575201482627091880850792578305431572823494551021308389500341007848786025193858965753733420604948181341755430239157643835385349127738185925963973357543515944243203533001621758981753157622330155591364332717878181309684665861196220787428767938884982322259712969679185523157655348859624285580816339585989004513007852210014812005200537583823014149075632553674682981092282924064302067179576423048926209134460806031723589623188757223219357156283204794415612689788194003767674779216063634551023408741719412748314968562137097449003485598129627549031315238252567680494485462711532409445810579715475570828664555374641060930457941621470027002419130523237681672772519535368311049595647216151028129805641750005164695067850370803849014451042508397031932925087417135980532983281235400487971444725405627448751665225367478017000027351922917128080182509605945100350960199640512023736953630241817252969919627010296468055096302435424382710955517962202285972637415216171198270269953408835850274363070074814525258519299103243748924778896457451342919792971211243883947721934942742630640908831424010219465804193291797439082733999035728569552800216753958262006301976587153000950492264102093016466724927138145044683985276425079140373698927185642128290521812971482037424266267095894080899863221713232650755464531253525128410761068825369035318772459295658791177927653866404785890608652875836766927475600824986925916029475582477039187484789531688188126622900780009367239345509966841566762831981595777714925466994580604666659258401444268523729183576999856628567890025069344329344829604337039765279391343719640396765102100876497275267826724597432680888686442330596956961606196531465823728108596219555156597224315039125675181060029665375129839104664135218549493474672626189842346547696573262110156683831416002921852481422924776143045858218697397235776990185064122320753397739680637416312312239263556867975984059102680197601865184893291150623937890209306905252182466058095939110322848319392079723990379058107478909531509395199142055963738060029021888192688576712272249378834536951935861323373477785861869351079690489893724798746818918711758058154243469351671724461348024728776845453751702098303124652058409267917125248888064505132325700003043715520596909204807075637169028817330175866121742680853887835529754472628667442411528240288194397867065708436480074198252253045967316797709389532100249026169135265545151250354191628826627660571087627719177379116431265645856541723326722979801084277664533837128036616660759964011323348926884063340528196128512508753326924869906684236806917980762249629453877361492474509261131526350484348035859066464003786467597834462769805615758348586557174901153828955727014613384473648790573824791708509409879455152173086484585858423473798573688410920993797636592435827581382764448110733057233127980502665009868370433573209844568075492805709815861025147331330693028651165407589580650857698949226810415761853753670882141150854249234037885935561724193127951713615418481902450348703154123464198401123166816026429111257618909266611778747448914905292598384508207337389250900627114163548980817995925377888180445338132424265563857981088695624543140255622602099371772135510759751157425046586999155525262441568065886781645327875528132653805547189401537388275040480732068932202319633428096934934273316634325573949163196575485281241188130431811762946228048549994343879562111752394027688211846870276837410681559598924940816055602196239672821397542922364324295882286726404664360006803903069087082119825596626626401538653005729187275077909463563071659818668959788455565980700022209973865962044821001209010383613606944285545737901234589561231466453310811362833553815433544229034995380792447009176651097695155587225589990856987698451040380789056629414940709224329646279480492588090654849537613189314665072306910685716652374124160724614115260683478267219569677162972948162517139019822423332050443252738548186186228089879020944036101828651967473813475340056150387977478713337573321218599925690171749330166500918434282513093887432915761926259655062561736901346311465798719456742032114323632838773603022383396538455182353870270368748745768460978672743946818823248696634415118037159401008140768440538500997260090210755856399953335609743994781473743327014180171834296678741524272030760474904576051263223490975670476724833526383647047827224518708913745680131785707925746949412481462894509959525812329527624491022246238572271884289591832494557596116652071788526422125744666279525088246669574263450385396402408289359591428848887982675503680485799263852702270899448109415842964125341550672148229233556062918936692681922280909624901734203613408437379542932850040571289955969664105058540944440774180364599914325036081299566372190784071653904719016838431580358477406564868746977324425857130662592821586883439174530892252081613382280782147344832980219510782122345075050423929634540120773591941319870131502620654746412839038957822377141169094154432049216468654291804356097258993865645324889606560709494647577979440430833480568248031158680926064014199272615023238537331502257095933442009605716300998483686615267410262607207057959281923911539169742775816157212953108875588101259608976308383827369723093106679409291310120874443511263807384115112497715485605578854188735358600268277336384651307754276309122572307718752826559155019752692304737147296668866129104896833433128923261396977479076232896539344231268271603987353287915143960181161104016049768683803120714590440051521179582603595728457653948492140760589146979680336747779496076621361419095303717220743688448764598366694362056447030787461813041953340178786120665283155406374738759107086855746319405194528189334269192705395893755323706693212335396997310027327388403488167212314148591562717283273614002628317966985155110571400861911099204415290158984638601318222057130890191965883450780214654409891341018314517317310158319821997860005944365775934591444409688400255380412292689330643112741985464520746618111311755484797666749697374842399447085744567901685598787956864413246508730525942320023247222913016866564038010835566029159619853739693244183964230049431101859469663302243827989268053007343950431558943783309353476274850545324550216667774123032788847493501112298392508000414413123438740028582768632686923541913228477661479743978336066081636206947550262549526722916219590952273533322888532578919530178718369211914122542855888748827537238223501717843423912654121139284625888297257412949036569735709587161848801644959394332060561537283053692911387167772932575084147375604882806793539996002043795224504866988243971187179006595764096831792946084612282525263089134148092865761385448258678270070163373110436570032561194514280011328267256930216658458147140036786816630522791537806146522726647978916416061217001266948826762936642778686515783899825441428327599778765987823626922910716779835481230589612345008822079518099106710969476140436676527667558877808408300164825411149213028100022067724679264102634567756014040731185615580264769285903032813464171452532526947499871040878696938869976884537312571643788418622624194262778246536709960276818747654057537222304730587710792035083423795090086435587897733558853071658758975650470698405965644099722055152809290027135622705717786963264905043154010912588242014436819524833560483168714322700985539035822218763416815160710047668233110491826819891150517580287264980666971929854336061733726117374720893184955489332942050539108669875206637733414777606464231165667768774289927906158037450439259850810703792214895297917316895580342885403489398053032611070239052341251129637838203016270620628944298416163338552889502670354096139030363073339330732918876837523802235346511550912361083131905935578335784209232883338680432756636686199002946782329401021274225310583394544929958848358078732965803144452062744240700116107664711432668414017677581788217394030542044966092042345030549512356819061577223861011300891852279559501269738521054822992123856886365880412077522477073698786135204437928770239633920833247597733514176418969521299033119723443457208045666158234171479769359859763598413547030229311567255936416124260728586083532281764683395565119728555808748825800841230698325125092384300841710800927822733339912314663052740201228689742386536646415564071710827368607630589282113047796250222567183331755319475340931188549447497425265238097248941369091631102532221700325990825125784170811830604032526168415301283444273633960856119259747835413728776458876868893198015676406760995947867519885854463611017729306922016956821984682728966520958120032480839056180748738649140618122140174805247311132896140731358138457139029700110251904022087106585915203058936651233721261381347991701748149528168070251389289025020268814900609406406517091239764802844612703857589697343530607255187335202914097129654494459151088340186857891560858287302167137154056878812399843306369549176577532970911262646779793620661055423358749456900886587154663099402144102417331710982089023959472029264515767182314481643289194943432420557897858634095871235591526331186072799444631746096415004749730190062653646012320651877399770206685116512590080411214810799737777200477688804220503392407696273906746951006560273562913805117723179703621866539009124731806083632071387110782103771389031345129604729637259879899058015450265538673718371658875494962406245769992328704455879953996059230754540234557674468554477023398928264889866405252995895099701682266165706604873457829220406231171925607832558626084223100675103564214188230290684919667045419022147829037746046357333874072683442266878555708494600334999659415922262016184027377571856805149165897220657322199853287314045004416536448138929637120348564042476881706178458894794490096414507607809275065313697427371662076676968444605255124645754435862715962015513836052254811118020555788226759176513444697344198719189698393128539880295316505505253889696047480753695516787929163838170615167871739683183858632060116353361259751917299498425699962855520482905830610631980160662798400429871570047762155757424454278612427994393617442018125254623946834251585774462291193164265473996618085858466335520419218721766377141603837181155885242470000324703482777178130629023505132823634860139316397052757421824439892978749080445859270002824636978316458356311258216396175250414166591521162596427533913920803056090772188487955389833320964967059569328819418273759119433086644608869751151245316436842561534874348303499153511157768995920203190370100261185702514725016993831596151791971512210390148371962503211883389022206139058346713782608742714566050873593668746219505602377581970676671452318538035838318684358277352000686480182349660100924009817054275316671623671204338053868507324523356676256863550832515663850112066700211933718815561636359473934859364315397593750458669771412029497045734534112281138910064842278504193884581103781734920335532325131292957352624454303602188895795204328277974021110130746206452767683036531373724658816661116863702450284926477366369549327148813699906602772988633153343360426767392894958581898783088618963677311438547065005811237066131816779369536511083695726091124544977338142461789398837350149110386317504853599559312159914388312875492463720055514216672883557806533396128892783734487480882081516816658563095278180210870704673449652338483462813801550851010632685434914691947958402282975647595024172901014925410750712584390901654503311190353530239150570155430349418482532205265684089065627268796047627330335630234481448764843315083884968105327382347158234813933372257495510997773677083275984531446482401976812770624542971769750784968613424331212035377282813612929477141569727953800615385325740733846975990350806003774663323522006610935496222781621596522337622446363465274390723414783310611043116044218897575568820941264986535760292053492226437568603257977883371321216916339493197135659641572653359117697334500424322102352611638486606364962054024709347462837235668826834557830551545031183224456951574862401370795466421861601692572483566594784252635625680614401121225920434100083687860451397670585995501540918420209817369522269844970876005542159827358643555289095564861218144712415014823443308230451919382922048845110441871279376584223396950185834142088815531254832372609790456575229556977984642083237517170537945582903781991615237232547703114666429624203990190920364102101973159205837347656203212221197811491933431857910185683008794679648750558483011447643853549420219535128339650791941118973734228090911451704198722290974634006843852678978574205528583588516156506906169875480914056829024536609441019737433794972509285385651964344547757682037616351809582779519015698209168531873769068550720518879241742562807625682888085026847386739305242143495422710613751580946588831349007861489964762761325676263284142756479881366604089177300716303171251889632072947330541554398851864311666830438368538780095296322379672425680113436127482246745187025109411136457116088353920272230331477345303473457674458058587330037263719945086228248189069731390128366507727872557934368959729925284860519885065787634895243343547294988913994757589629371303806145224589631798390232028888157691393784319804552451980365941364317897561188317276088738423168778360901444618129457525242844846379970956802232722412260676077246441540493230530103521733129312035465059079712071489616583611363579867020266791313389077196263666497924277180538798674369217114311936678046811512228968247514149897317368813663358935897522581349621034674194229860573604385881359847967056118699484253107491043326823437746981339417381706334803351064358549084528933846147101317427967793883997642234362996146243685644423243741876901906771497487815449468069501835585293476447466402852016140759518870804637645760485188991721349964652545085282876980889653454642301535461821766672577166503824883717436834202410808579355366481109921889869125305660471039373520220307118205232578985855758694288802339571571314109760531111378681551227597093818241668390698077007819900920681392414833256569742519142470789958151114012622104247383073461273267560258058633984186482032302654621235480790180490982067804434002845901149965243093492064139967574041518574642415898232052791320930576578434763385687647394128077967830318598356265467043178149661525104444163386265127894944483425009246236695464353515303181063418644202421016378084337206107186856326814078076889795329833739331858912535504399701084523049056540987968239604015747979983078540908578127036107268536849943813911822975690988762139326742506019781655745691707736296365770287242082706549671171875095808036379351529012587637959699288247703458854203706403323805350508465838743136983171375428060597063167405046256128913326235634358831777929313855087092459821723167480432632246032288970210723818819289711311483758486959774602728259989327081628699769190841219922360418061546425024135204869733993801963260986399735682120171866856929180120599182782323729648164133685247827729506446950972328057936710210364174952861706428129292742447150474554304328561967554245209422209653256270415040722147665941974393680759161659418158857770807405641701464789094330620815037674561634532570059209624538348602093304593581117197836649035657957063563575883761056689117743731360992624556021582513686276460962991786617619487007879101004315098075898149596756615968080700239099228218697348167193641851586225263909621444014060579751606906049683597374499859732914538880825956124612131051817209444025415942847148444441587673954054495227391002784065337153965246383016213314747857712513080970103958200174850254425202824959473986453879636726855567779317217145695641584877562494090497174398236761149711132755856468687706455816595268036816141524206770405357822723663372404425808774863492176496021633177196753191766129762082036254943940956872414609006179539471634471723870765233364086410804501933942815384932049250024832134306646735829166718068621152257200987508170501002922505061456505103899333470074571510101082550877068163564305003873347005424612029206791701794029935589819294490396817272322324291034361449653130758370282600975135079412995525501409258794373648518824067461030116634403713449804665939586470244570997117742592501021108040196535996689819319893141183935220344176838259183507581755597467783483381298675784412104799761086808700566154175695083447882830072296386424498301841555717361519275216580189359071970814560679005891237830572275060254961007090059923422400920569383296699047193305130008229756485757758254507282493556506919576139934014697926393181383752753515208229596191398862525594667562154485290626457297235391813176027561194691670698420350310162695773370198258055754511457589765193944599972705358328047909642133081065435573523585317497652822297614070655308895196137500040480516092159884883682203831619177588088615792517303032117166860175082277640718088495143225148906556215959254542447854848268112044554534444579859225708353923993500350900354013743409406169538575340384851782220310601448845474016314519313433113767027840091643511893268791088258433076456161470408537592356047015896844071819737925445134313440835419629810371153055274068941673793318083836737334934479847540112828459362910729491879985801348521391863336127863162398196862408754241360179617282143426259358478139865601254926305882016566174520482277618710666221503807024812168936894272186500724873681859819126520140781830307797152649345845415640966540554230393862290182192215661909723547777603933554899504911084017012052347752839098072024284035403164055260250113352428975333356549901536344294501703626565873149217891829201281131017990802818418182071056288797237880879387664229130240151686534465202277192289728666346034498794883681467861506948277803341942644694514981747716446481619114946103617762505936590876119006447648368817992400438414345035753470630900003617900271041380239652332823484953634938052819738493561518063198491777710754442075642960091795854961479835029187752389652091343022831725292096314949785620401108015194308366972436079268515008615585828781371543124487338202566206825654492996559155341362766350745480873671703309097915322057080909501341499715055276178885360216280172873919668699467068142481267832097390512175119682298111916876430474716049171890977131328857106774009827694680622171058091269536356596112206399448255891207861041567895285990926930513354102809649287206370493221307879704592236264150553941925994295210602689423689002161548844683553600350823489346566570801767494924546818291640737264844242817662448230945823123352398683955384099719302353443753940128915791565501842467213492282413470181363493125571232570152452105645652364324789887951576458438886616062272102095496511527586786092055087982566956354824466702532739859833546372706794132280699640033598125328397751537107852010710320741584242805091265820615813920552326186228031702406916932255632747333260974661417759947273848748827527577803147350679926623727598371569586813883051752695931418428811309590875604976989439365964180142092887195076805636127893511881770609921860033490456398207773580459916916825710033913661737251051279841337063343456249495091403556236101377527904660347612014730161612768098107819832949380344695846203125967093063184413477859168367780954923400255183755737779770887109949834359846416917499978241236895065952268031950601252049816508497001076390206839278797308506946652865787765586124158103361332438627712658503043033199910006601352922001275211631875280721720321604934115450026268536025108972559515792760162962530333708447814687276037865928955751844777858440986231525615530079780442589211624296576676364466976537986199053881303844421017576200178236127938911245312570459205050626128389429478994556081673058026520235092556582084931162043971853073213999123386490285402694870250961040628679170759938266796043359206034013636092640878975542648300445728460089487628747659633859937436366551913186589017685585181679105595450473371436240330311479916991269537173233030678460998275251724064913924367479087566288029023705837708981046924843687641377316262168025365982391293417095992367028033066027097232249169772918421785622929887037510079430899907886831957421308087967151491585365958015772115265340271182240434590438190600927208170461866358615475510016801615696351602628329333333369887731719755719023676621738796575494192547621689685807412655463293161144666094742895123616790442476820574555634772438589372099836229573397935610185117345201652857503108373326134308676907431962187894751001559064486352865682575482254762571445669618246968188281154356968068781035914955492106600882122028009446626148118582838022304945369362642521093472889862937652966785131350733846021798212490750155410172598310888058227882960068050043297296702607756181577759517983723625839991595096126666649068297005202992958961985994206850477504341406670798242914027980843554519975878824764543096924324631732549770899484417883335082406528780640768075520157488821647646023015905781009877280628649187355130060982262299308655950353596230973801047539493755473723499884490170155934014958019527087914594485228943707313080189419733493490670986411826404785035009612235701236214947665516124549399645392338507311075395479547674732016908733920202650664932228350846659661054704437849217508558289663043463986592594582341116394573513938951881819673293613591983288527322838878331035129707196327536194800147011289566518477912134115713246736020724525186316310107954902156811227302457803291012201415756577921919111491038960789807550336423663123651464007450164761015252184879680661959889016023583798441946253742383585084094521457431775382704466593355875525357400810212061947566711451360343906327477785941968239564037317977752407975236225650390666759279724836237088829589314067961342669705991885429350885354878195562192706666470325571240214535383716922526672045973073531816176971127928660839130457698451876966931277686875090788345211667193020085072027295150711780146013787486125723634562468649065195774179847103284121806180785720592505306967911326379557020689726994741650363985183110805792662045431172723742822654732608128493934178888894044548060088273016485439963450691236397546134450441974498436904969410464264814879710818202989962759613502389375203733587575433010556416465193812873126810583292806794363572387730889714169834182419956023128573643775346624076941662002262397257108310260525736971256049600201931759397342615726084722268337963790771879343176620897425738364318600305001877329555858828200127546031029220279224339764131766370643411146293115810089400055553317972650916544708664577577630926615908043616161201639942769669621763850157072104796714904881142998356119063360121765903004343627987851308690144331773282971579173592291894889158810842780328390572969513032479610354349918716280542187227743259157026911218197903475661663831445561478699427424076544886066294616917963344430419926870211275657699040725536676840465124697375860640063983508296087351783287291814548552940008017501114125599501696695271563250988052055567921900580810772024481932884833113994240451704302399616295891694761613087943566582674746241067804014257038491700947889032275923793375491839095395138635445327047030909494583053581035787022323862953421099544694498155524821167348454790090000868955637077821428176827067901468572494936509810532264403742733658453725179957702767074582338625287191966690609997145999006363297792465019387857864777795240058157327734166606954728406820531748244557633534523893121365584052486405204100568139247660718263029223361030939912675833837980895602480272738905017920248801979685654043368336890219098318002160641619040923566653393343154244037235905940707238165989774160587319644096248514459584296803874694627657346879092727972663440724460384223744594953227126505711940577477292507717229457526253649222450106366509914974652541801422422368588423796683325429377985645562757665062138537930715516993274752590406215081199561145213297215054393856946547617942628151068093549203566705081274408111165436855512423134685550914555367536388998069667719577872808233912135596322100958353864130735807721390505043537557458581010648725838302827628857249180725670212029953414445073612093173909884779765998623132928977509510028524785688963139211970888959349867705042906384362769461688564723492138221345581354177726431174930205113123410360714001428002471491058347725533970763483383635187368532311183912544206132241214808360769250165625527432853504314292210259031649306316084599352945236129371021366778901471765598145334581797866303543541014897871500381145502455752014978924840772246836695729902871625100052750640606063015471924365170241911658372000323545899318390060373435971960517561324874070188361770164566921278576116927872970453922283522946391582011369121121288230753092272341447807811763096474889123270445754896286778357108159086945253122146800771818229205273546734102936173435952014560263374795143530299791760442942441178093976026563287976777466672738156214527345883391253657192267754317793832172001365481689760350200858217425033535047764251948132548415582885624693374489219548441815090348895010613078001960949437486939827367990064089261677794120922258423213563347109315055878128384193079607570520824421561712252945785778344156433474857140353545911272555676759065543983980743686485557425997380887931154141750786024607537300913758143434533501223998268463707478911694720097293966150859197495112381853064117835490224956753390147371766618791001517871179252209824389519580801166552095283684309924287468163527446347176881903481698398539102583085478262392941028925593201599209427473879205112429426786740935676373053019998899790267259965077595051404215857828225417690341018532379187097577220045389511747066869080123293925199681136581210606562052836837090353600697252828909260147635187202403144415928891762157642782153211795055249676962999181417757448644303511594398965713824227738140781960562638142200942874259966397694704740409085536497435653757932608928131298673562047853706562361436562616844146602471491968515884104167366033190386477949898738076952330361543411511539630113903347713165426682553034380678730275793777309650594414643593743605785257776243227580708443430421141868614098305017385658014089798195919641197961473981182111471532369194086975633119065578638982596461783242762661982436401714234514810189853675263683687641342580685768815630905170122853120733197594865870767089070022036494086573213318351514321573824217269798920416310700176908465352616362075747422253163017885752901912136560946573222823021970921786289665214930044294000831414418072484138597696751372784385147127078230197653674406075328167368067972427493469058693119645928345684766202909347231419684609819356838506520217807362289015554033396764525483753116885740791343071397347165655393295145268392438784720215900868252409677491534281433068414173309108523136516563254145384737418431505174149890130750601129693018064033460277883095799531851455696064439715918088260979160024475463200131452701127601438922571058763482633053695532130313451302464155950914497449769869187617444140796096888288702992649090502427253361302125472949740513035914459303553795929143563199613897445938678866627427982084642607745948117113891089219923332888274430193811185504761847942142015346865769471554289623167016204006349240705523665339625412992530651505888943855871053365509195255267348667581337942112708766563405621469516935554481350965532977777321342221162708738420505975488309831443931202819296209254107953098619737438478415057431967638814437705904432093347940625871100816999612447502195616310821363275516149580480150209927462414623781338914518671255823314692801904508962494506161142719978701101946091364820764695770275318938074044009481782785743977132925706571283471894784888742859381073251562270768453354694723120629446011141292230061997754940947166509985407573045824315937758615224428599994942586968182611443306328986698786532059081986680283174839672346271081958570015195287019946568648394188584183300918912097882333244430628352943555890131785541736185724247044776800179687702124783994110787627752446844024742101547626555614308793006079795469716886614056322887909246634022942618890368140730657329882205637938007918086962599876517317372715827813825939211528498185692922771782095844254021013781680992370167119338421611734084591262870904715128186511403359596910242241613942862937414846743265941450592317195351124933093829393175863292300952682475518264797486084154720610214246287270120588731469162076844053635854472806375798841983078539457120302062275704328299750293500050076246950111303314175457323370596813900642798670507249248457593388892982635160897983493705382559965509439567005043324737784491951305691008028074701679626669668949646590782332939232651562668363879281345179246667085087903208775963799182965815073463380008435155610454761643251891028410944802952952595392538603589783224846379918509083295515172775109128488603581855162840183540125824634341026346363922481906498996141806935365926394289554628489292781675620347816553697696748067209310017459126830862990510189112912960894508024357140247509970070124324123068591915716084000131319347799807872475266535145588200967408537129702586855283647714016412928032344355268931746598605079114132314685715624979948243768168161845015383018923828651719902526850256466790782699010769196419429423463766222161428373660468001692580178490819812400750795213958305531913179849966361073164404681166758386123961003539884955990151939725786427544009572734829795338621831809583157323777007695271258583382459549967062423024080055889119649172412793132078971651044344078661861652492179888583354243332337695561840840476429674435480962058932193768898901645939484091677990735134466100193931363575244777258431109488791477180205577161057020698173534434684150105144290872473110245635197910881255982057010991722138239460477969273068918242659251430528786214557662911714684479993305671961260284102905218731177572865110155092066262026542118632349211363417406725347288881568069938639827021584474051956157790495640886157925418915918323479365620237968160211503370790059760338046745973693428805243622265551981125627331564125708892467281204559951834939596676178375688000235435113443351632024109844036507238001140284358939711245953842191769689115938266102315690495027473112665677255444616967111026613641619779956439828740246467105111913565642325594596207859659696503419710364940341215620214479073899917882129796267229926243047327518580707643829757356074788878414372167330887090963084545057811024860276225987064038777325774639960756553861685350279399774852305666777649095067013040106396792603053066767974403928597382136773271043361838654100252804773658721258250541627029873759748643468844801781638339543911677386489753884184802931515905858793468768605138458789560266852734528949823039516905698391631177374035582981261844129040956903083073410013454086524393969017056020026672340136817290138974554019850527477542515635143076394046388750668490741959482427105103768317174836369539445168714584579650179699086856945900939814444193062959799502822007505995499656155098514716068663063216463054236208301279689931696387233173935948553956895932218214241966890698233795390717882979521730874587211986525144001777473048369705778831064799129549082410955500555454927484700204474324281961214998248989727028620899051867020734145250641045343886831473537063901319363549851806992705210394857650917121680778184745448958137555119095800392707296453033477572926730624955566928837560915963488680567041871091578887051377874057277345198283083476106407374461181683665224947174901979088315455897570331762781823518225006614360453134564215364855823521758158968109886523420573948190997348466647642422779374163615477141787901723186963727503831940404136550718268569533444695838088028122934595891983465914969798015126077362703507546835113677108102155880849413925157993705271364774607975172337545502270063471652425252783191799929508538492971607015525872130526476643005461973186247066141266322832191755149748422555360704360248233812130959254286005797315821032208084261850910552811824195736729647207949128097072217540518064118906413887563556170658574082976594422356528104686262425062600947487932915531257330354891143788988303783524319364247548157848848935389928667115311371881428754859699014867047736915211693459559577149541140074124583093707210511281377202470471397973179551582664517037956729375921902712312255046992684462074940272413560403627362214514973931114318737088674219865509492621893342425183176835869262805109347317454363567737137234921625877726085179316485718477947034240358922417563076132127322995418157621745082918494544595258805773676148313118650055441768930511611282008808075670776914671627154430065552040393992583942264665043979267436352258464952227506829639940266153681577827396647762183958563570197238339313705943294877980945803418525666774985271172536073926703492563623722878278901207737282587851726897440174003382264221271111028829915265297921925045540869289481633565101940119725011797263158428346236197327485396313142766592935277160377858579260052899008419730937541309543040761070195315181461709176998392436581168511642401627679743645998399791875700474773266642514853921494070880330275272133404473132434734168378306254380519103659188623712541933657621078441225417901620798975512874101306699445896089334142442117251015552558701092220576917693814981035010646455291990080200147605890352531665975097775889426439783909027044731588871705140069668952301465163966823683414704369967713918123620245490949021259509153276385999474721493019045274433696150132136861506101917209837440048050580679783896259848540988092648597381228140564241041881541144684708461446417305165854833440196659777147327509058929822330256419277279576890561844106177937292790054995391215927350330940313361843170841248576838382938203018629936961909214204641321121899752131506726660465927491432142126941413571873201474311503720589714436153554550196271424742357918108998287538057603148445701569732427244201031412050110169126829706355145305123448390170258849441625571557364365724616124658445955599963554679234952485873349945082587053691128065767916276663382877313387045096043453896262884690802375785722048882939878655159601324618959349694552445078658646079176061883795788148484080288702897814785573930342702175825401966503706827512329044936456991608534225879374441984472955180825041013662521839490234918137667872508622958338949707612438893212000407929227749988231745242882492910297179981088992118623820088158519159601429928827546648470225785277051099929374229842382647907103055059783148106575942813384887368286971626098136310217714578591343347990960802573830198919724545120359470763198246261771351120247676171463193137511463155473104934697670780313281876089901799101561969375611704499199188894655405536274078778148391236145983382010109638517090613446484533225633918012926204140595610402647426714286839326839688363017261225200043644540705394837890878366322379844562535210956370070878423175224643747649508357946323175195448517116521789602027079736258648991779030792256003206425011971613518866211274091408938598168785494339887828989039206022432882004027748388437612628958293613186589379233922830218406730023540298479847197336178478218154283389283601769376055655310821781718642417811414500150938050713581199209086644131308727500460892602632628521916485588967799182803274834621043263588678682269984353181447327393980073000156227542187521059604719999592118231358672543497864372705774199253150712690639923089102161698886548456327007164281593333782718805673372268161009959878171827044809862914309161382062096323452944555868118887141940876030133738892735467576653705457796813859194217587468322311804213947071119310281391869586722530607738042167941483494310395689810911056437948805701691205170663617475264486880026695110118469538788179016725515165024626996898721848605400541258406931912750722425220482036652686076923118767630525415753566390383261068402747945324117260928755256500358741618265061134523994785322983190683304337500651887318603575800452476014246268881132332116057191858815193791647859707321873213816004460244862254346933439060228325500352505697649156368076056073812068106264210634793377123272573311580316806725997438840994367243571434709350525810010627075710778672899178741357801807541828956519278343518998517038210157947049518728106090956756201925323106751513913493143302623002456230688000188930940098221275395461376770434287789175550221109203500420658079467410615180775127322731081577684240052091780675663528449086772210478281973248266972245009592408162809089347767028649691685627238922295800862873207158454588696207747597125853661779539338192872230664856771782826896813997532559205227868738675105964555966532909495801400525671812977216090370104660376773784046587385903288959647885398221953116965121109623956778589044449991697662350422297855534957151769272146999781243107083000988951840851085078832095360050990114000603010657404592178838237317033455718158676402214622938311091322458539646021976743934081817511260449374755223087722130935673981258873502548361801483356956980134818530461570549365521461338484444926911010176080009983329364124889409532638960960630246120129558691680646621846022296214264986579881157288275380569482223844055256196905309622141706570557501031105952272373520324206341122159706157872999427291534285083425736567006564297338725515175496246594584421687181186895071411516509332803206757907278817441723587891106476136453849902144447397899782966093970656188807918957410570524756731800058957661530205500710488037065142092824636414416922928228718371889734807223481680149869709018273589873469025650150848555358015878722200003773675476756015071337295918462501710030685113871016808984541176129398152901305117434403194190734385302547359228077155578796470542780871427184220716355372422092369976158402543405792314793749498963132704008367738845875432832551949543380786679231846517819497286659440332324975990348570242875175608431407004022900871512563696767184546534465986046158701034524547309263282721144004028014462399788041853841061676494376391984124008471764852976882472268497660215527344588013467850608161974372195340839122907568422160571083426588762853703107772249598046528350450645645224376553173570087414449982423371612176835798578334923980905421862135797653951899849519915587222571429023276474646379094747245524952664216522888847792322569119538460005473218137502824612343296181028117214975080355298543433009128794879162602133487134186279771638472974434461019082177588499256145478037741617943941413451165410741256067139363545386463098116373039708693606348191679761270685635527777576748822187568239255564142050039170597930901152922381481640853339834933132656220211050844190615078257477269825704578739380144559334107472445533024377574749479443822682615139328421991665624649666754154314418041714116299728351178605647773732509983694859457105323871151282457484387478975365496569317892767296266308345337840547513288032408014622722918336302551255921193581714409743521359561668267899773716130608411556244914947011829070065063416416366082021993268338542903429640387311361263166133900610975627761429678067856967253960749856833272503299657092192589622219862472024693166274792439498056575445822674501412664249324798559136194417367066231632571668546247197547950318569870462634641465841664615071730461981889987121519710047614772832022836662041697979271831591313762423789348800106734362272968505772919388054645187717158428482528264761125397947371433341382415209846861066913292069477092383131879418896985266806781315645010131856532234160870878107980870420771379191284372810871499313022986617669837572102832165413106248192992688393564115645245510506150413002410206026217080097820480904259884595746008745106266025618418126992443740786245202411349352440789194808954666062198057586909718211944770742231026126367185406989799688782569348770201780143338510039681625714554780723533417340110327172979444087908665620451444189281343560206595055143490875197856758894526603745940579211824873834746301709830143844540231853977049481072845982014097378142954794425652920595226611764398440559021776242430933218511866735190291008261470692482350140996529243496503928004092285173633830782758578124356469117058918305435491395105217657264218374780608759993189077311061762901976961745211736320695304547928384981421665004791637505402724315560638564455955985868902944572620278821254491674841596001811104089031290721750810464363633542721952271830474553204893643553601581160146200067349222827665299015073700547584715633697904933793942725415989709598714489797695636847990989600418224354848052488941097449458149619597421107379709144042167310178924177573015363526432344341159913939856229870134296409322579689294304736441366761976373728977239985730236939767740670249433595901950916486889609617786212868115690523286607017176047303286825292295844858458277188223960224184979567328824784255731841656366624789473646074667647035803035536553459756824420346745809328998294339764514560985009085884020536282769700799459330817328918036031051934029933482060281855120816910445690011282104609558976284428711581514240602440037169762150154286395062042308819925670030605700235641555444746813570521400163271319595153980436721367411152491160493982215914939479579601964731536021330397275398035264552847552216631559346465427422942735856022980520069585985035854308450241563861918071692744500510200552075201086009670848744754988854365318921317811747999893488148789586553497752308288485999950458807750724361949299799760432875002507258827280750934889466066094799018879992422861754176455663720855425253323178598373342293002822753563748454477744442699827175421611505547926509492649565558168145591623240545005627789045678868647880272783167286218315999990681241962283748690871783275182409980281908376301023722275446586977475068489479057267833348377299766362367481984432808723599538315564088744862087109379925760683051658786294918706249897282834459523672990103136044506183271552357011950917859133618048562485418845991005005798486552175589614982231879104280494007909155022712337183845390308352084367905598622917687040276694461214919296945616265526824739580544122170153234696569188269204835829933222648361505124334212766159896824381643607540060400191831989908267815188583015609944642819441729174324331580378807219422749467803288788259228360313223995795286981825629558817528335757979338144284226454660160866846937101086245686144941728196258988397462186790471997143168800744474147197186706008506477444985292872511753360545028591168526059538792025830687625956137855897345968925392279620511081793531684623866113978867586461601356211396417826787119055229972561276239836305649377949563691908220338343729730795759667368733549510374647252173386854188838160083559156957226078594535787507175712825510831313754560853151398409878840779348493625803764669304315249063152630278619898340852328248012770674571052073547576510260668367556575391482729286216448021524119048393455900264618057057606838750255658814776474458429335810761021022671446421118017356466593325153937086119771031115207444381107111243065576655385729230587822815312053164289965114646547199387459506502369766401906077330096085508827416519652031563922636944759026095204003495365060129312970553893033205675417466045345087850665480089474401232940483230571629788169757316766293226736638613149800412930533270861458474035413204905380392746966499922564353871325467139237956948720332549205523343167250527517488132331145924390239886537258072468525005855001402938069156101630448308394045426583271367317347740558274446559072410301552420608900881017891279327316009463909847785012346273832288055112716657836798351797374574041691036190776236731591675440420705945924357285048846320070997492384695042025731433047057784205487397721821825352326845339440060850099923505878095583938522020692634725267302911594808576929954345558884491733907976582256374505165492080259113540392321841548912300983536797306350225992241939789378827092818879219754819231561224175748196303717692452531948890222289050429374662806477644261610654841950307963239243044133372974475075748415365801652187193683127495906725127224063267760754574153094894178563635273823577067013495762940873386859466914279650092233648631408540905645639043390458166458190867518147053062951376281878960170381148312781103989814806502708369009755827559469396656346422937131794892510936170177927236279137254441890569200040696119857781135081259789307439723847338628475892466118598887224142794259251303932430919662915073357225628278422801353399986059811993172291858980444771432235664373556990695454764146160673230371690002421809314170126067097975838552252993783524050494213661977346265192920677727348624220487168997920097504762712306855880128895398728880412327536606606135326652742260172917178557084202683416090409114110024044744421925105642855607970398054342378636489094882326666870845626579573189929536284228336822279046547353235920587044205419132501473378805405077121908775324693268853693950889089910329507145523145433125374466575424436945577713124571872596070135881247346266997627316612457554095851127596756404591082465835292535321476846445307311715178084211436402958181675417752959542827447182764993790692005262457233096376599700665264634174585130156035856086030373199839794264783638424191317379549186330702172126164437879261991350780898634607306820816953410231743942979341718473983827988918273954721730147738381839067574189996054631524247278924042155893525956722939345180537927183508259890621966547549453329083248648384046013115388997771662153513921886738625378144228625247498048322155866642002586044183276636869259642266502064131782178000977020170218377694231380144600613371003749685157003925230242413289050776371672046459272310203587570905085569418607628562708739509413798322526590250137662269360127722058416630060813771109735268378216851492200507323757864381328629626181035274210305720383109079889139032702884442545402660252992108549437082239093439355992455555827884274203929084807424089440613194232267675482027288345187268854466059053035766515413224533807141043566485846029441117851514648515463408941464696925476347440673751266252900903661232843078361851288443048363381902382945043767896232391013476124490007360470558152083022295530256144040527747091579479387046449754055693253338324227864997646229651927162464989934493966879075912248984471740622409294976283658322053981894021116284277437249978242068817969709769381926377707365527466359109525587205571254518254962952115048593739646574494855425384961585928197732336085748977695588701638844232968341884172239625830535265335882570989000814470468868347181818868848122473858318163980252422787548986861183687905820894144575165196906849093979157871067089293675775666807939750401438363722895569468908281688162329951907011927857104296588327794542565594611964466910016069560179961183873015016057333520056660489250028717135620731431821021969779689123583923169003355496854957843977454543185754500017708478529835374223907142258793752478456080945353357135384673023853824938962901461844187821114818381067267697076637373420212468234084720165393600762812166525863063024550181169869655973388186645544320767977319052917303317290360369812382558732257222359145571093697069420987574940448766682933504415866331909008326254459849265132633485112332619257316012065777482565530952517498278025767641359534372260844815993681710543167734063400406071935214845808902198057475644610979519825625934086488388214941670200020781058865157123861216488325689265524683536579263881462066282930577134772739356562068652677010684066364602903609156398388280085060507652877111495491096715539818666276592629818264283899696545294082616001093096548223212389435572929862797509468764415177454319100779191230192264626120326343198731205394321389982688187249078915920819242605689827346721461549768815881113346567081046663036390082243607912719303818033191388986038337050074362530343172683516694030219465503336723340922386382567943611180867930460501039830898763867606172397771050093691162183255798437550620895442955356471398451064644317280286253423779557426877486264890929336885124818966209039066368091033818637827749982019663847477760482897682389370039777638378606243703942919817153549666147605013857533207407720916394858556743782517974532409611252028600316460523150480345280644370627091161564053677373295337266422364622098161176773703460403768566117633310520430872947175284113757670123318650836814330228075455462342972338121898339470626685746120344525538001131006198301239555875945267382952596996092348144643411602082459101764189821409170961646670256367412450573740012798095145351588276017769528248011876329365640279070847779678074866525190437748779802494081590057484538322168849322175035169705575585538631533678203629400924590383966201865311105860968726837097029437724283997776990433223052631718278499355318930119795050593617512434889842909641957683424010976877257359084302605965973420350777778751958611657878219186568622407309525962277749025668231983194902764519796678060519197214634861972919735192317527567880193821847654476919693282680097123523858890763150959245957096596200755930958444141863620136848333182175741886775555407299764942614576969051120476430833693005794746570721061017470376491839022081396083432640310554513468953891391878423305467421582646781513417580114336112266908308373321740996294117486109933981995930754518595234345290474586022098205541421158260548957508761124793743829067068825861673331808687632065563740054152688955215032831226139501971514891996573455398022269711073595557294829408421532055661096972123586421347064110682604069378125983331636552299291387888398012146743012579179209576773366126185570605707114278031173526585021693495316947528030548007505567832166541286117228009067919910464805556492477485118812359187175456407538468231921732557223472937054047272429720863987907693990987338445145575232971476863955719656418918448094225841667676548909527108176814660126225794156097592164570532484648422897634850858551554574597788611964879164564247007433033850333333862183102022621107226700915480675854924333059714011002791436824447685054808227618887852721758091453149072503694466915509903766862691343428948539387060608734239227616108773421672487000065286679367208373571504387522093092237373179921731441251960055289353867059972576027590448562426961130922770641129305765678470028123272968973775127704521578769710621392885218010879639710221210900455989871591693098102951594977372349256730816726555490563524196628353672808715155594008228259088358915690908110409308367793926221441604860223712773610852265017774994624503110946068978266562130830273055486527045645082152101723571743175201296550662267701046768601310756621580560223236932939639069850369279630279709812667295385324206678531594683433180788481037577605010872497762688961835606608474418900388380649783197376781716456126998848623348223877060910769945312360645705805253072702318304510078970336121505066810678510261240805500620865881500659544689675428567171908066115939982362509569675292519272264432186398300076982402770976502829832342344889771223934771945026040335219390445337469707636545206805465451388271431476914361086244221428885221665512139237977693173781142286183713255935531481931742056633941452870073978645925507963788962347294173701944083626178098893937992554354142865648812881600976762848412753958230258672740703909571142059260444649571277860295377660129402279995238944023664118280600547007284115007228541557554401574648187250388228971492348256360265302325405455892675009543685740685399074201829204200832364636905049959631705165384247239456793120703348378626898537895426051063370087149857131996446608832394211324522852330861773038453285048171915010240325918602799232937394647806131587631277679775354976668189529448359131251780372485638329898219262338623056646476181406209204157150933498508194984893036932583287211887761840194726394458150176654033951829202721692792656272947858569771276828463173309499729741746753750420467327718253451937313648702650762711651455238029327806474077947509525965443593624978744379162835894467577530444550699563449250306262706354136324075299975423126297223249632214821695215150344118719740737356954697170133238590106929380736100541072527454190248375723393445050074789306585889935644976093758484423139750120907616913108611220625345981161467922522411140145634445727683182371082617353323021308496578670217079279651452665089887917857661196839860663499836566557283812588792459637876036258299534059375800421652235430320713366090955940065173140735075483344366860910839219805314472681251901153327390380597875241641752503083667422356404619650252887133265220909531994933819603411817230631469845721613290060228644796296741929730487911925577276493971355293615517187479924498126799170898041422464916534037942491408704415599482370315123877673718011154016129892310307470898749842283355376966004420456330514052242964669912548795486513879073445128222740753469565255009733299535934866086006115594550153703360834466274679615587309610021270194524667416686634493565051425060544253582927124650429737478483696677061531424737764407813011325452785286941998404009019432977297019631359204368764537497328151325246590275892913346129792261478583082196804827749011075448212130209841143020830842694671232491660263492948187894307113295848664157525751963206608017706981334057076896409475304762538753518803649619058883790465700750076598033858963089018365676278057910530991629692938176731999921679006908410932095957409392063535251098487404125373319053920709081661661396904596625237468183622325838490292509846271530529129263908591477202662124343440029783657917546166746781280789490546097015732526019329833439690217244734085130649591524056505566895748910043369690822393500413998560997796412602585387032837897784227605787986758575795622975410246071467787793697860474211947066380104716354567176531790969310032478709532859401915490222595311895222638824969190749900623909601542387011468631325842756461680489970881003850928450841159201898475121497028202840790279367261751150152037606866517508827285836368736537730228470372445105041752521026452776956323984920171474427934788905838276855317307407661326114872888293954203823408649561916284998080346255407065276045256864252344806776754211360506120429483168828390679272309668800053430751301687707892111769197633507890876251408690658215928610399879954743429879044788518605280284567411307902405170927455239972818048280978497857392854566441343952648638390967194510498193467073718572645638540772979712525271440319308280230603312912211804712225027076070731692052341660163649905526125668906580575781365558255911740522554773517223080570460462903844263869563101221433250565908562972205115040109937585075452172722124868198677057825223305926170470076787890261994629557603529570245734780461706014883909855796781328871108084774380141076569574342831735472346931601604639969582839402330374821441970609101200422961698038371411809435143099483540687737874928877145475725989435682264577737137315699224019088591477845065585627246517600549667730975973941170727875368198510510382696432245368039535539291145667983132132513356735872892343193295818469017018009398219371609754963826272761453591790351872842098154570695916282303478527117804558097810671797176031618364376692587979579308159862035247739071569931498896828983149470631287171648669416374992824402638850110006340851849719483272734311576397014484982087451670212309870657787962860677218564573841246652236638959038031960337948649887884675813047578055272488162312487118670273995605708069603681922423095312347630178032663866457829557217787933505315102123310129709914218737787259367620782035622425736568415346806454779913027884119234414793712988263198315199327405715164850258136645194908092913211708829605444345100055237709329859459589164974265260210513866741140201310817190117532415005669409727220626664495259740182571027889027255817545550918776884232182203670063165248953410242219064391804054643572050540183833080937640463776186869977462313003572840305048749818044854205917210857719474961740282272461138484061309161163749277923045770854730225093834015727220799681007407063642825860123689634462702424751192682198259100708822299835169310105651846039328428205950267167307175270661822481075110619261579140628287194298381732412097784515806348908958451176330979597764684590091731996994779714210641283981379373205190285866975487944267630980377020553751193845349296021977448359281640451565888124766282145780732894080708798077549438004636994862723521825612688538102435833165104508564889523612509750116069794778514424376247257289338854352394070601363720680119038101891343190160447750194531343218746752446833044313951257700895042983038239144082854680225695059509268676960461862660337470504610160684541746507953104816382218135521143153441135952172965095055097094607835544387769908373588319266178489308121266846022722554564427153246311898707732887111184308070422768102171123598265225288048422186542020493372495850031132173668615779882250292486870065911107567411725472634204987004168475139435443505358208936626375193201554611747782388300384924612836727019777209103991196501617930334899265040853693439849282554057667692357208856881955771727845955982328454969238656633290146135617916748139342260544067157280476303143331450888172071840441342680670241686113563971228976116564097896706656497759820585757782799240085324621013416754371805520240787660038819142492668755066667722957893178724562153610761388393281279967935348397883072991821372100732898981838665254370802641135942842507731466109938107732234029841073440628011273114566429681669687254702049493303490019065696759552544661148375793616922442417839805619993513887306106903114307104913461329411348021188532598170931366732850218773011792524538718183026110130039420682207919170194698478430235765992262456999063935180077679850034246082191519857162386835258889341597855024224162640667731684359164573536341714927337789634850050554679242465914747921032724994564768826000594877413184001974414992809015360306182080963395125343178563684394688284473692182935618130708252407576075985072322989523462466780674470076885570503803598043314017118580344186905462989328660828730063060859355115067958124793479138453089789314866873864025409247556765829846931402312049970748038466248913972956010560393033620128797830822853061371204929679747853793701579325944880312575776177507935874842131728806892146576517125975617470072817766466925279974746861675522271841708313128539919743788393884700620722500739935913186329633212690131573412996035024437827303270322701084895196158195622924831685774633098177534912658692612115938571534713597470338112617089816229228637028765112310110869972099226757731024732815163667909207043817495357791770556669888533424784366522028150446296773238329539231342550362582156272678391009689006836523206636377364005641216063350674823763225528952977734061062663717399589399741212068137370344114428894202941836536042703499554184757752268385160719648680155747051852935610375652730832966910346404175861190215107189648251328268335733005385588645594962023960653458197609196314620132846610046025429701849063695965528041926614668084670294781968427384375412326957651740850276183047652958251386609927229296967434976102563989382214390204969243957956298057479817153774139543040112804595951839671496665248178265400721405886664175754138474342390007487402447705150719844783134593753464036852491361010968674439430810566976997071314549884061782443053424559479318756814090605071576495140636094613932180273343902904620886993781233194871107108313855563548139156006044899501086008410199337903229275101196176759243076369560269182459517971136961875921905819466268697584639969505408950006736149328705214150626799318752916648552562435773914374841350454996167352969763277881093572354743744382614462649609201726071560695231274643270522085178141083549002598599177873169545119134757415523681757482455127555171607298829435714006852925345994769510911048765893967695219053908960437531415986830839366855408371236946269018237519297124795533318872603452326760467626349951404394734895935358484933667053190596338982152369999511164367514933752416388218673544427090551852510727635348882989409525275080124212236637754694729114488709857202728631927540296429569356920603472458580387738143533811121326603143119673276214616953524156811156813493228279855512589377509042362303133196110324738627380331958337496285497712527811541459277575212283184795010323846852752386747850507666414525693529221839460407422649546490561049950303592226718385784616036391604821547036239033862616685373384148856174265106106797859865338593881182307224975955963943269655728591892562096344153902439330686158272312978678852297129541800717304612508316639582328959286177933698726173127677585853430513926987534398640806288725546065432225655465935707097688014376948442356087545977360555907948643040949903988604172026772794436497825458414547037397407905176682321098267538700129654735259072278783334165060187290217891980211012273537666493747285847007872012909056814448574927591086859271338929613616014928427844057554866221432769710847725322081920046048534907765641307525204798445943179676321405771691338536205878111072237297692898404054813153052512537861024122377487636168492372057103320956026798931964019308637903163657658090994293264484016564885218691271679499829197603899499136442005184005364454800984855069594246083649615417745214731278857391651032404421937107359362682822763212749806280706488828778527163146824141760617158245027891472738306099172053343452069069818731704803579884483910815134237293841387324393522169124289527008547267481008402043268407535136199660706088567219445995262665076538074903247179009069666562647733078916655309398523123903940195940143047856192290000339408399997629976900327221504607394088531287584922067367403187134458489299546633122004202743898560578977239794959460381957531465590514696958441662010899591468327805261820358722046223100853932902657406131188995898956372690625881442266615127633824890032019339369144532326677425890630727146053637948286287016564655857599058812402774973475019259144666157100756168920112960369653176905313974602221460445164852960355119987666269521135327097641107480316791580452882885226371486763879307649365744904513068379888305996553986868814054230816099859400782455874192825515250515152278958431721873692244606668622876642397820043947664171223066076939972127669451062593288242908106548027576038667933745590415991091348630737909024986213569156448195925763088922254268971276209357035359599965858032915056156379581625818762465417158831756477052356341549449699965978468067495806183512627746791779972880666039554272728169627950667869507129503708945681280867630393293226867602934585114255641059923650590951947886097767235595104441974321652936273493901082264601337101474640297194581391805101230898085644158544879194690746382134770911343203423330554453514637053823511669220242197272349716960714030466796466271500974232506204610935933387072470950169014598553184441607284054775080765367494618266540655085966899587729378987008785479947940939058025463915978763862117536745405841722762525699388137845977030043699291381741310727499166093580312267296131214442804249684192507093914632577380299161589334565173669297296622003156330416570974650734727876009356561240105501440617775769511399583100428439858655213392348811661800446152070708365926075509783024484329078444213890353328367278006529197039615468030864402120552018396893276968414312101393186819628520769038330946563058891181958812028324910692392692835671431760599676045491248058198517879803868541021784816716655297958072264964591009557090213441841414143889572018187625544403165413383050655053657211999936983952274546931425445296171963101398260062191490295526124829982978803450795450256693520893176017333797006076517930237737143722878110782756856403287800060225401937245131466722131616604478406696980948172483180104708635477229106824307355823279230421536134823972767703785702320640470379822259517560014786507707123109224249783441980068439179794241559630743413653171124705723540197165453133880498401644274889082225153931455561142414131634003410782682500481810595098020299870878730024418867012822759791758842003643633805699367003636043537985345823377332792937053590942439096043244693544121607209789174038372470237607619030038074024677536115530224094396683634818863939139048503994406730690922057417175775886963667671836874516378255562673892107262691695132479706092350660104536969867671846895285646128940951611023019829868010543135486028582949384173819244254856177263654318948416896645546577137836782317760043374512376284725374392694899355020689551659528499142477572483946873950032216276576076529148724789891659757136256531246692618743709121978955392798116422802012811584997613208587404180823213180533899167039270743561574052305049570428497453079080474584902076144469748711630070006228627656056132966099503237051819163922228619558889598538441987084201342168235872266673114708894959150261699433929369995805273425388445676747615379124151542538812007666601106198638671237537361838860985904423510478953059613808721728334380854360635598606719933979070631058856844877777335209874383304319919436909354556823423747489990833543409126201075339322971922035730948759695019024382613453368687380025571946172732121013750616199444942291404077782134654251245129108929488681689432695167985204537040159042594462610533043474899582118854011503200558172649150206758978912984144694016664948966895715919213225493638690970930311654104140348737712706238256754420863606055964888074022399685884081011913386896487494222710306368682802846658081819535856777205689510658849248425331548367440204663273494149541353543951583530890283749337989202444480732693111373220526031355597982525069613309306456481392756055119128845522988123683830970716770032839476857763062035170458510901249942012729435204063113421167192128131452221766017992398702550077334525373243580315402872924348524270661104317321202669833699343166381605395820704744058888626438178844773788232266463308306592493636099066606480964894827933873671368907840586201670997589646232346004036765552801940717609611516838705544853399746054657082510530598735118092123901082000558296463471633612787419322060513354471008225670238532292388825113776768939610200980403870864401615603559095145150153856595122189248163207653789836481881399723577655273872787975817443475098463761526953535969118577355119610774416469733363999452652493759538546497695505523906459833322807966319175485790682049332207346668203488838772784664060540537720563484886891922766384282596451879376071696349179958335537167873689524742641323668258130542828867331328641747122462657816301837034536440236586755385759150958212708598241603805223482465022988210715149178797354019355498671183045153875233260993323890223701411759545041060172416864112991652090625343954689181298763371813057556148832990418680702409713222657801627322919712592661798969049397687788947830520375880061331024968911982220091059825680295954516324242062988888774871873576706338308477598072244879142523694335415582905539592142486496517280767482690476593954224333836737456880296950068151202616239515825431390264412733517345036313910638036630987306641751085048405528211152435560238499681927533596558109411745009542033805654414472699238930002251961613243422982253402953797202148486928210235726466389874712483014777478025804220806485117922841405327684683786700975536497951697975490512665024776957189981321946157189244425494027186042774088459616923126815228915002064582543928814275390874874987749904599202928569879674144510519644919708902948268240165946639033315531719423189651000715644980977084744766695564814378030434994936757973269809334719963802942202441431615239563385245402929294552604108898317996490770836547639429612475710737473760428790173567143164648563757480730375631645911655838561724559355455234868235366093703667522391416237226717375770104451704993787683213352958891007051614864793484693931262645232192407961413105424888517220519893676498260098915654117306096354917488086478136085264634912003783417951170598390998255127116302917776072452542353493322718496658180264842152759568205641287919920578574673072601008663864981356485347335410804016872878080334301926652125813255490352603336985597233775226785625211598365671093902650356454186947388259314665813755950250477235835112676142268629701526831462865556412265810070259379863990483880428793957395869689338951636758390805341626070144760684027017058552659498624174499597730808046287672896193084087271732202485963973198406017620761071719402801452673933173004343090020424274641591563216341791064523322882252583675897531897003857248602657331159609486248881554190160829767858264050961744093442669749674586843998685396184414946646325322773863168806655944601582979071572323659623910676983468088881659281979679253115420306083355481498656670716058443444724503617131067272532148103916959645325169716075126357037014110667397140380043408291526931698669332905741596734511061377169826974804620780689611145091452278694992975171541626116156210305411425718465873362746651771733856036887301584512567734568202565287044332421367024893838240729730408684542013629301946502138202132638539069388878598506813543950220596656469828261848716401017685081206296156593478956899774510037440061470328880132303210619385482897839308759377421624581172454862608971742907179215643208231197089325550314990376857902393033321317508545900104750891215844953651589407346931836796129407021760946451002417770993746850359475830816722385733041831556009557882912530225344429534890573689903239118306067406243910572464706920433058551867449689450011653443392078278849597056722060264421243437429300480142638854836929600699869118617779501133074424402361821874321361636193113124631168178573198327398941648855504530005182156159893085485717261915092293525353020538433661242138050721209354616006622663769718569227543260755251218515359311176070359531666130805690050809361478471743776928386654790473806558624053623939412584949639808830134708316775554742039511324483281072722499432260598786423657773849699031663499969695046332211252555523731739462607465947608761384040524337579033896364392991895082910346637327466532489358180212845162155624408041120471323458393604446786572464183829811033787119784448344407253925638632064580722633938069035751713742775445845608063326895353621885919866792006021672769889793321407902624086213032401342184500101900357823973164998773700426079073104795180225604220510682806748530804027538564913554106498398960424093631006622091263459375927291576312633875804383398940999356875220022340566457299434385562071483168603863129960870332338768610954621698884166785890224913618074437194803573278877377426906035667206358953634009074074647311587346233312527124469827377359989992677794194394566271103374894969800337046892765816000278018127976037316029018656824228722260158996417221100548770037922447306397913242804220315968716581795402243792159917005203938667331548529010850040053108769021743468919664585811283053999340030424930762787591491273735845194093161683504428432969079097174739029654961459990269560274993277841434723365811552812041803930419119332307825908664007227455738684470204083664473829944498296190151670865661589957117002788705305739778472124339466446167465649572872208574373830592438655723252802207429372248811005805299536721622201414554238371728042729122270067447064611330073962878926758498445828575166756721298738517769457204861054732996131448743455094730389714009320454723922025870489529285628838167397681438068484503986164127486985973012273458870985702463263793889545394226711394493022465630338438641480612422224485752619919636281711458910535986163332278273497250383197827997179380448039544377476243780408804448090646586261356732379407533711288661471914008320919252860343475189562865794958175233917795906462614540521988889087227906430839810359002088851121164874901935149026673885942624886339377158095840236548132150348693239185464305855224843893283279950949990584751564309219120237071398086402532842922483705552054405866991291339644967909211024539277593700776420308558902739912985948688619174322996267680621091862322967292064659258011836695403304334462394492980917980142898605896877474846329904346769399195526078150738580661497624820050248543536270644968772440232828464056600873641419280213179326490951431850748901379595506798369700396821625667298271310091994355226459385098913792908049169421076755389767492187642087579336331516733383786531256652932712530648081271440085023283009879255042599186475530339662789966468305030565433306577346085061817766703046699729993528624372142264022338747697279737478487993017476475761378396554462563394465026184921766922520641198176204004590964946196229296458813519584045536081670443533487390422750417129759162931427817045368104252852379576991715791427608419013681097645984850650300220972091018056020866649640103598163062718188821884929186787739750333997102726658200773691808730374821041270189832091587916995836003740512274512192361857140386210700305320798648891484252418106508381084401218240976525271166822732622120351518083401210256884612603842080757809613850330015685654250952729214923961585731490715533158072483032354622015554424999477139697464998203072982498308195390012835989927007248465682229310837012513620204162975449397022692085098214005514865887539876866062696298485770320992377068490468870577366846156148914687072962868299074509511892972256582132412256129374590217213866614351611977010349355828473348395740542779080093316895103881212607179541446188532519001125212234162736963642146723979688129979993939958574445356685960740697236964000652994782397298624206273945143639821447865852744272954276012038696153890833120740197549913391121183150530631472054476989628064232423247764154211430750411529886550538828412777435459002877615377151932318112153268641521702407531345818941235919748348544260159300541686285270969265463000368705902266465247984383488379817736096009954406221066509206057430407623421842366656211778159673086516325490171119453988773380710960971154806692671775970100593488838333569790735455705925628606180647449361484374651682462539230052075154408341824607021783365709164143109075043018350795883951400606572894591332201522515234305044991817054228628337196521116707804283466724890173615640071637040631597455550833362373419845543520094903910993875706285948715449364714936149861592374319877824190845257232299427484258045558754081858078128576315455806500003743980028653833508493613757650121223516415985274550639743459186629341882463034986627354795749942390978937053333049373175727160394711766500112210601281790269333384316123208191135123620934743634626285203697226340839242171491256229243141447637400105316952099034050788790560874827446279863597097820304878565862381499803934967815736193312420813862001062781973912603095711635650898243587676034071324952795176395486255010530317408912653858050530338094232878537750768261632684082570470176228493259521161451663548842724021696778504837258145541623133940872285696691585905946804980383669864407340898921313513948077395858602497114461618707068245744667203796101426702739716812335498710812470263592849414630977881506744325545073007475054479097303767169760398736138995465071827958658559870452455084097781325779113288898087526024135633284496773860899651590427920302109188952227842629422952677048461358000312004180263135811704495466232651006206123499055449555948007402295142661378499437671444398774963690832400499563995017754334294189558913726892894494034504190821221817954392182971929151063074875459065678664928419170051208133274743962936943814993462928781428310873728297076714180252481927901347350718760113472007857688014919773096221917564658400976496966408669845724009552771711790421768403062243586216763997105685019138377340576345622779633963839006084132923765526487324950543095305046901789152362436691785236793609531191878458182287552965451089321033204759507233357708620618813780367149966165524546056697236632742742094583363488356961368100838068615906458164560478813892134173349038168679081454418334858883939385549820613126582826895510194509494866498364697067416211612631612053646141050738773559075140070422005252992518445088843235157817444981060631363619727417626743615460446240539500546375247405618967112087987757660831725387686426025182426260311753233711128652583913767143925564203540446799873215222037447089266150662086274574970360350494961743923969464500886725906946452503012414737147302960038651804922617459690856099855722842536634588336420771218644774544161019769605520483668993793017549988109745337409818537060822617610173034687856089055014102379150135358850039667307169000264794600862869445310671187891102118869392104886043668342845960647784699481550645482754722840498356355758809257392745788757227420514064655068332521996271309629142824251999718690251850083445281938738531348582197817733198238650493205159563239112350317280468493711041690063510746055230222206694798987686975536907435513669498444190896485191771219018422750530192864216154516093699285106608843791164972434567135247891853030506816668212608156112208276391948123950220572113809676716049361549373486214884724138319856447618228904464569260683193270651757759314858816459374478762798306900921314319256030938082515838963130073786117759083721604371936777530567569412019706352807901213784678856302558446785881796092083529318794277568801372391135968064466200893771662863129618194715022424288871038618143075056677079713908600796427776595690484968857099312724725345953830271268383692112687115186337801631064001181193713192701569243914308096451758405994861904022050843308643108922419219069449244477453630715141413417269195293302813434461826628659206206617822012207158514056701299053085568663542753511070598356023055280236459013657949693964560358608796971665699518747010404732590896389752413444883541163486520402725320089403523158893519864309126508793848796102176137777140957708371233116449098589230793317567867101092088788996835085566535610024696181198352928371021103530529060878517679294820220094768393877702187754374613787042793398011392072698945300037469375510244966384095727547013102137550076346412994270657524996603596325597601760496807049276652952175695847038302114447044899809269619244477675828164360522781697945083396011895143820201292376858367747489748191373829291726554108432669748099564720257541800354402403229079106544680928529593609250698099903742796920641663387033583959802207865579310552255337809776209742536630804549071717981291099051122518303105413051105325631219406431177977303977201126227566747477921814812384279137239280080565931644129882695510095836339610311349608863306426781931313510784657038917088741709201761828617768131850569547088511421078790246175526956981100831830066605855496010692610401069366154714967262771328279052529987487392210378994850997541844379182205307640987827407495875967162133724934469572356078440115006093942954817076137343399729826210529629016303113794265231048224329355920950623364691438926136960609489124704688657402099358855959135967707281583408204452908668836354082229595730930305454216557931078212528722865239566677790091657953361747389074092628074811068547974156756874227486978388962720200545826993721022768539650989980557205227707025374139610264427677671874313341111122079551673366947136094810095941408126146838069879959134628302176883491793591500744255060322930790608686745339892593803290083295317286893658119772742407136179932803494665673848093126947155376234619157008148998761876095013078580865750558203263729696585880232141933237754161918080679484918602622535309557140324042821524637485765631117679422437804967170144742232629753631581844106123747672333543235599294735650469530738073248773309012883631114870088377299203045546499410751565234212242469910008557178271715529076932685144408826563417761539564435611661006638836466038914910361621368385503576286488348611839241297377596752005190854714963595471736259793090477149574389278491249214047683253358570290840965924257200995060144516540498498893961485852443354698792552764089992863401894443153858288186577022971721729239305640032763775761401203906531710769240540982803080004496815062819026072248657971315986896801631519245467026055797711267913382812848396169089213818609939073134378145202441179308664802498330337594368531304636799653768755107489949413282993016895635332747519918379709888608833364468228890772605323354151880955594432495776612785394237234879423945306370996848168418699834505028419764412426089981356526100669164635706637437872602522317390978934902921426886668241748876199371648000940436539517956052630427990618036981387530304216214833152155996418498333799094694416337403835394492903514869143048977147399935811718722418169466147098891832164969447358413063373421519544817683059644164341646006751939831856448763792464698130084589537351155420358498082337699003428938888566253727021447027038036214282167515181504084169881614585004944420731279535496020352371871763770644600308625788240530506030930293927268895245337776202220050035063459297887345611365738416268096856565714999815434786644581063583426031559689263221377433421688540998557467430941172120209207251765040958365682268116873588426822539196853006126005765031347301223560083792522357814965063382133336247715688935439020278680796798564037424921506893164931144920212464891841209870684021006163028184681601825134866867896814947661982430201652842480188156368278600288723693983798668789172073480325851660410712256776296719702841965573061909514664266564934639921118277424735231453178186785267531404658810615050022029479547556130017184175650610551643369582750234630728724549657355582162924446699820747312069776180487012683456546789878325763365754572425012233612295859856076203443765620338351117522513953423139501809461153474317945939869530110518889996341128770950568770234610799715054991425259020811410964945155132967411546787476620753139038272742209441142470033771023012506169373042400120679770649367194805354470834544137515142034912129801118491739448875276093925764854134512028790848136627652807190420831954340230392757582034868639469212005154892204914447502094636569324440744401746393294261212390446623997195113228274132285711744503342339749554645020259529623627504560598475048377367248771140513822397027128790841061664861020467962230107980105562363035436930617185482312813286630244091824224479468389667068704983955292375156793168713140993252635286925643200229797583472141408656511703244363664787152027554117151155172543100159263558712096847547162672689443790103489497396080205759797062506058606196712059132125459123583530069607511158129357163063557457921262736309135928942361371402259036437762717808797935469597054424050218457547833287323856206656962487466808033948223784778876206292590877903787135114022573010303318521106792912226955565329741851357988060456242072758451215168047980864341280953857681139100451835565503134485937083948643360357904337390842928566865240917425368181697525787059002803047763099951755277394702841983908604058442338012456047344479104925134578858613833125975004849656630577396923469559254752321667051166452178186055686076263672971051806883492735869560106670087727429662190015664971828359883904060989672279434774855715819477253350492945699291175916533135532817188086578865409330761763782505845694900078844447709137017891158361352008814657930444604036117823541515001498589998261037405514094467202043046803057012325338104261543121132668809110449344002964460862474193821355838615340661646517525592374933889686157781545541492435009180266790004885734501215869044054130960844687125943079832218235940792949609484248159853087836471810402197815976854298802064651001973761424284379182551447479502208150718774479737806558835322944519902206488993773737980148073084564447837722136372464340943442962375157731875495023226359393592130353015768306741873124254554103134368110738942734252856777671145058484698619257896536000696485091367929232411167113056000113434831150008912311500818288602087113764395446870857776263614500841152199814788358931993210432900170956916844464034966840600695775829041272676998309051807907861106332995488250371996434916125794252441056272659531929100762100584568910472038203569886205951761827199962300676135368895243962611057247140949777790196908133120248791108769990186880418099081775450280272465054014745698368055227559752925808762356863535422699774099106861044959908796428814192635239800148832240446180025990586220192271645133317724656218316100018223388573176655609401327810669852515833399491566460673021943762692491363171641923052682634731461423954995326230507643947810435924459640189367670047006045605666051484251156133223470594441167296229807974565778580050661944546753942088860259633732796957840619226329011315196889415813260117149363298841152074916810605313621661231009569972466686984651574190556213096952979614454919002670443808641418346578283363959594123142403641013033651460959312166599583070140727881674350826124545462004106661405334121478367989155469409014278984229492865213811337255826263574062139234161351937181862487533587304947957597500685145528778231679641458660276774552183482154250282988399453542068705971695482183014543167423132069412324519054310723257811953621256774180539596037303734083428053792562522198925735989293842012386393686405838291610499429707739978707876479535267067420997486613742816998856111744402716745556916614349899836351809723794590951323529038066075302045177737359239631729356960164375463263825747891550405495375771985762556560442495906875813279552925300387149824366616451061638893028618993561568187373192569311886196461364461227123018895277735562544730511094173606452944595525884009336813033350963956124838106437006537631977563355190854578372934872880318504138098647006913699332683139066495760780511758990672870101148457305858863847600918315418368466367714204223604337598668338111917406124034659017639430091066829807345291544181925747312649068105211746435278847244513306944743840516587364476342746252516315374222085907032121343331666662381857205942849537787734882496241955148703469882167929640444676645890472229000438919125097400603497908577748983885346175426293178265533716181843495191201360672870410631059772458792970468193944124109743912666274067502294056090875721544255535777709527739740246476985185750695059472991491990041468627586715014462394862027115580031984908512109083145876085930152125877096871982334683939452153365103519371335464921945528936689930124311661926728244541126914034651019375094354188237571582389706636150691355924134525023807713968719006734754889989646046194763129826614144239674848099245009369163097353663877911047766373811471082622496603661618604052978492608929744254872132661331587961859443206106187735130278111784554990115781661132645219150680131420442432261522667607103299038949770882069255117319100332348058907085616836811472081148364738866420768967105776136077879756198616642910498278607920166165364083712146365045674158538016289488282759394975372609509608976950063307313927807338090443762941359835152863306071470106165392913538047879072760914428522711873422061866277595151145320153106045891096925926141620733027068751299877437599925887199828516803344543218595253397691177368319195358904789015123770183789715440399590813137234641392126617368463776928546443394513932713984936453765796985999730930726304995534671669912703734380944331127036925790029867746426036014663611850821002216062254664139628284372760960316128443275679915573911661768351266545784683111312718614228939050984551668304886182407024273020365589675449394070924229591673049390956326534938680800631359952037451060855908305813940658646456393138152627744830672116056468326502452525004382681259574329833723876556960518128809715234361438225322279865286359894255561651238596059690489756390265382117852533162823757523096849839870534444815578438051387835841083764296425110122546020290524839463384825996720156291478417737728437775847871999670267655880621565549069738101806075937694642074106977875283203295005499095519084738676128725509558637593575548847995051766347503397618153425579746286741078733519021786165650643233193868811527982565324022741692629985343882303902554886715540262087706712461586103712915283225858848429291032185998924744144759710962431184470898380183859151648501736050700855915509635555016098858973746143330367284231837007270182843375093670148806666267714305244382228398108621323316904408619048163699249772622440470312919940170738392752958581363976921271242602490837961920186674244206629656914164553161867066638545542090502008857891240316819582387469424148079726524579233573723194623504154825793846383981967980839338468313558589671496236736977570910380484579634389505284434829631457818896736709471287359478021964891238045882984058703740291915365817930342024167669726244768863565248559133404905810278275145502764894438861087246320675347520451248566670787388081411077719250729337899791244717200024246365732426900742100845896639630539826938229304072788008453742711978290263865346161896410152793297638943222256817592610787651753000671960927335846711107910753378112413439066973368504888066607497754568651207756911290384847591971649684444409815727699160756036209511536230807291910476509155965405796724311180202607754128409010883378184236545109498852017388809918904516904854319067453123399307568306951579021959301783592122653756074871289778947311142175414701009685982141636250843987011030465717584945892731400558849121767553208814223846385072830191775532905901364453929500570957820465478787962687815626799631490358466797913574842116350219521213047143382392280817172621599022116551690387615206614467041074145779248943954732745337349218897865289590641055128959157755799470157349307893663274193515072951974921601536953850200922833667824305541164243290660992428619487711236626390452807373118983540974634270327714481458423475038786067668508744890853632501891428455086302673263352155815147001407455579928690114056062965466249917310732321694719276137131009197286168482776931840300452690798073882261924055654993321690833450069185775335912911512223716765550593041117036132609035527781094844533739745965351681407535319886290180354525887320781162149875197756218792574938130876437868284449919203119208304225830578651791049785476682650184579004832119658499788054908245159039800354255823736310412346276241844833411275077232740127092014348922906615082870911450997060217613723973176047863372291391349593805518311794510518096341005646067532228283888570698382721423361558916165515820038996007510648163777587283664394958039805596597102060725623864249020354007653019662606910416519501960638093324773727992151701629566499452094178015432918426044396587548409516278004662395912094391753425389820991843929466960950245809457867677716056312224786106928507354397318235536242678503235526531835547190387717755660005639382732518927906414480366546818580807376449795764265193945449258132532701272582561559991345752274099603899602244971555621505837263979215708849151901534719859177653201911983818470031206451961484092784799398629432237688641279839764578308292919680530026562758744383283267441176461339760434513510068211788152753017725673632191272475436731668938442088195253567575671255675543723489975594524364267471251210982314680206725822925961769457446051507880402679654850964700398480559094974217240830691400925231911558515034879756436276766617519126457685574401195869940766665212237781356002696402672457189754478281998643760102966789081328883328898236893190975991890023504184151828673471762086986938143762720960664482167677262513083913667497590164748839291209222255812422824297703732464710181599882427109559241292626067801801645420674366924560776032632293665897496321034092051186820955452098875128860424825282524985390680114404956393553096568365781706742813940467859444372672538292710096433733797744262711695810209423240552862636351244252915781286304975862586295848520844589907472568369866253175980736607099164128949269809593034986829885293276826132087376896610402599597109241391345464969635731350555588331168421797276801834095378683460416944237023771332676241233204320421590197721293852193248215325378933047853299345434049262270483753820259839044352631940406667285798070338916386415542853824918287425261098788176779894744483332309907296803643536535013147986722698958949486134114244384425401655207873081697719944846631170850577547373734530143228798988461854156623800480584025038469427114391538084240919585368951795922279629904286246716240173279696462003346607703011704304441535627751805578110093084144576168390525139436699365972040033215118946800703318688784545790542668951261967397118271713209387567413113324495997989214571931055560520279252833860873385044961580256448908454785158689078443153669448795445209016876589033304305032217781897113048400194963687757388031558942854443722622421381857489030664417507977600591183945456953656463440820703500731861944980538936705882403241075737363968028667566265040279062379754577764481053942475269761915093826765388800598945264307617622988090252220132656498346653221337913245748873998359254012446334508421600212973142446435941031797123985348997147155409851928834746908558746076615575598366331965885806458571838635323522323514357327004488551002205386962540475334689158417335869793415805362400557096242968148724794922068583876450974552612259757688113409567744010989962610908102716344245782985032367774997909611344116322981874481432655996305162973832371742222854640702517494218561792896068411098924395202985602125157839555391032944338358104777703222473889703999453982766058862349995544232036509160727203372915478291381410029783966584293290402862974414632139238450236729350116539345044110750525169190458813282969848767752223035257381630456512199229096428132546688789921339342084997760134382568106423738145330642277573496893068394956381096608286928864188570662977170967276396090197346377802274315117396411557554640450639212360878753889684206847617481949876306874478056359530677625081594146572290620824798535706730719696195193913331297256114772244828677544656254371767411567787414493679727630101206792010170712209208988612675637258202158092064949659432212740243292970125835114487834189995756340444580893268945481746294037729104784208192491561666509591572563972762833622358842652564200563336302917047702855611747101240632317185452949818682979109910386576951581805945938339730041881635337279061075292584794975028688141883023300577010761119591826953198759619086863803187912986419114235121845498802800608683441180526940503882836846543218372912137020760266995944446201629076482919269909648397320933553842042024068579423125774850782225448535721443723676427625498029763510398269141992388152836581698536311134374989665850526510241410188769395662848311388803613401090620589348171305736487648273390587867182582057292991488648561600985060575357363531461991695768083542591268898670067433411979514429648553091666353911993030361813427534921887421451325499279853666086916105960145410343433179607911290626965202375701242929940708704845999906451483630101159836819705406565558690389545191093350454227021350741175776346415710988259218717742775122428766750518412048763113103452306363448418350185190041106374481248945743151979346579347338565118432403141373946705727816879572897062727067450440871165359346141297067372630349569158004564394993374749431247018225758238331429859922617234908305754719478486810171926356029824803170245219883108888075762783529866117339348817130134017538750685145252070815944819018273065210471402113665821905230020301761546099933567555118676392289737585103399194856652383940297633070486527949688834490374524250087810287698190515930187813295539979927415059567859340597134921757669551785731327585467345701538578975016033170324250892878737711871260073376637689523598544361509001999516773456998726127349950644064268379677371103361078543273429052517094586200580190890822697841480169713144696301102949197072912385289622640498339645747456182851088274743161180170231311326002839348884231832724050729097382495123109938241801457501682587698164656508743610345706223417712994465962530378502064516933952613881270283095804843202646646420850033297332522479585434652606713862687007819482391908600567738842907187686362288873048289060524581053748367002026864773496618165498502174434389044553424846909594363594897979652672106274683427389087144611731104130526124681737674004924410547728426037324276389020598406444368123241530929910209171414391364070724992501733234625738586309193978271834812017080194304550877047398728364739141050268476787328619815579938206090141972318114329201836770038736705284015433327312679884242176236250746567863996240270855548792404714450036011833501344510417790524515891207724088448578113687407493103177193613530797607546300285201342056135480456418218743160015694429543965541602335216775348031818686067529106438085606112419231305030780718598566464929225524176302295119821210446364356714131374124397561960418706081992342342512526262466625281780868124523964571792880966447812720329833316784420459073245341637173309817365029626888288859435775914115028751299280284960560900636906977018391604658434256832302385661026489785999870727378384292375359395268025921223976518041402965849261127059453419216573504946068422875536485560770295932131586937987370340442503470259441245995560400718813578452431058104104117387612194547554260337708965291040137748698645257722119493983198038423283015566503158191805417542079296156634437378156315049298676953895337353951086610070992422071299829525340134043999589460941277881525355217886849757361621085449450532092622937865221407561735259826126891153011902241846081148367137763274068359350255181760957680548086031552884506877706433840492950738604424164284592190463152290970097723198575341640648905917004834647402927339096181893869330201467673185747090197918758642005264612690565032490648283201363115467939783737945036623692920537647288336170947892986546815759769859619049250866615133248173869972880017959221961397178598642706947187321294861978256166261666354304040279898690677694566410672147440980297152195631016051856056014677364469281629372037945507301298341700903457371711395663610484942620499080852506521660479778487612588144202407008486194460679853908669879404321081316945088910548665888414586490128863772995247849087779286416621557221267624225810915768009189592651716408759640909961925551109109192789159980097358896514177514058900788142171688513510492010598640020633959976871109223993414192234720352143644997401307367063814519691204409072989349759018754914838457353940632911120079280294147766081301767202642368709639028722317716021545860121386476868044190949148608348399696173948149894262612387535535563682886505468892047874672130890937399499342717315033548822517962494934108752672728297451549771219863336551589468643527331258908474786329325074687905378655571828081421823063243965846319761813288043010836377449870143150731681034718125846599802629422021346743582545104487151523215950168079609569248467956746626491263345898550936059321177268403773917415521580495597470701964371354737254364571513667661814702988886710927673902422465022501253988246189732255383646334349517930793818493480943333235595200975984757769215811024370370362898424484096072691894005124319424839030276751087216521312062588360508655936340049189443950313055707268448120780409614442979900224083154131346180468697164839668785458856147020901504323067815701839769691525276015759358787118692318969608537398620560445555967988125456384531643855103729610125119676130426360046991121758263430836805156430671902093646981776155411711714070253550975693845122089074426104598783485017136092661294095499780198513306265433668516300006431929784253281727432727099675014917754547393451455017082050663520565631586321715993157142209817076824056922504800701020617034293272571108233928839182600030578940371393045819029178279452408573596388063014899322958410712199853269374136926278453941214191509398595210285299846810080942146564407289437226368820061168811364488219353816354464511695757884362102433225130245729344480951533162970838057769128640525813767706391368885680675619277537902857766805675943726287890492342125108715485401388714072280921849401838883196250181340541320917026579691845107633971035495254647082071194505017797772922922589881998561578791200191238602686260185220823070777590016740206847240702238419114202593111883148328947459915633545090262621094488103601347617268290298537918476919469908040922015319782494193766874333130901884575327492931691030657367539638809774344600369526529744661919360944330929185842166174791840217176819832890251670263445102536289145991572955120193103093394162288713015082072785723701651511692779670258896408843606034046739780652748164886013064074074400104867456995024509851945070379209135005669435511211383774567514375470823433566899238451265587364518517389836401529025454106672010517301130079140145874909213432639329277777357930252512404070076024492458622960007424291649567003813625841281747362471405613682824003432626209428709214982915528025416183877195252519466879942508159738159864238257554070163042889173841046932382663565720895092882222689583441963697239385415558999252032582630478831013008645120878554913682816869772802314678954178577856661554267090263776644577089659171702352363474248835339026121167107387310042574891682625541343988104984765850106139667475838389544520296475737235329910251498644082427488394901410573134172523209395189319644950965888741641714471050251225320326433294261639271621059997890697439775850210655099468371488347930463650341033146677713825768283694593211776827670339750337997920624597543737657716747978777490188860604211999878489590781846473783061997737629435717582047076225934587417434975313887344807371200153253085174049202497108369737931534604069221097616149376108059740846448876686190072984440644066283437750856014162859119755252766585461316273993193972368834400124909474957862071487744603716407912241217750841958053037112594465743328390163686221047634024857233238238874438259662030581766083316416991606095834721517016742141438204626466585664358392384507305827620265104012373583247581349907129497208123223201578164604083955826520228213253287295707790576142905290011837171162983260965509384530179365454457313171691885378211987867993582662168373752904937083592212315539046477884453727653966288428261905518341131821419774939241414783413797644818879831182085558032840581144821884651929457415785343438111967674608861688292134773273848629377995391840345776858192444827841666603023625844408286892000621458135113877696408953559404254363846393358835703882204070028249403872308308441233227384872904134285629512449898844339321355676273765885157927250620225714499842854742283477857140690118595237485176774110560516143041128478604850619868904180312918328917833523649281393372562726851521869634580635878582543246014620208881184530448272086824421025541535734569508887836142798977483108427406710497544017607432074743712809970558620293879872967855430922065247051549296895782611989043714097237428774467698433333977332747908524003108945778783030395188361005742939299100893034316617077818608832068545386123242974793548477830417770418082042493090738828782679311033196610124482268943553590964527842063382643886010859721561738911960985597383479701581310133833689414195359101106692733604247359005583786431483204174828585555832389114083956880166822509416523027887330504967698248037463992593222823376741647926632846547303071617980023170914256253871095016929456682270369908792321390088718126746401280574972600314144677768416382449303946858599882698994330679888615907223622261553559336447880179146519423258579601258726535188577891917104760836305770549028717390135829479431786807865298905343205426179112827707893649495761157742832130723666692206005531363408269306673931226234498073094681055095193868762524245704466975084711903468717998740176835827419596686919867903432323863287947263581142130419948134742390742337287005470453824935190861759575460416262296124029141339248228222368812372744812209517515323421901889614961999630154493238993179568455999995627602280889345745988378473288812216418300190465720879068438077062197625425631933161003334752738473874545559055461680410397636319851437581699307881528208717839870080694587020599803069178475615635149053280582771706460016164246938562511783820560081161552108794556725453575183415308389995576102014932790542123683804527827385387693267627912155100860990610219799827296402520910682808330019054532575641573567831382742381530533309938922302667300759902174955955332290187333479997677211660346852035049568049182203587702301175309640407213936948797349277215208597830379045059006560538874058896179168227673278808494221506286027177791578834839597458245759501229069434318420817726068237762334455972366510930683980954894563952159998346480812789340475372228288767716994102694602205944060238019788000082091806571442889805589154934844743754007137220388457809742313142869662066207493477736920188753352221140052073407105607522493353872361227281615155556378755620728023292648355529093657825213808052362698214309322294948811573884366808809130917771796758778543054540554240255899825082151222249113534174240138370377666711329184555852883842312171382020776244996251840850373251343306046154938269402867477245040225295457245090460721567628785251100702346545895568248124248866535547078829424817082577959862447507930431885898031523300369548726151892738770564722499094416046643621669327405470445011150936272305577722471425795499578760760300493492303331627316192751304930831320774974288159840361234752453417209871875988482667110698470880331834399403419641584388368983034436271343916902311526219386004755952165123597891796738919921858320566741662703726114886289895802107572557289471826034073967957317112639780389079388259204647013878381271896691586217794639264483386288511220542246677811594545434666201223301340542942635169962713974131208398173196890673469765038769925165288058804133803112141433372616091588602799507004667972141090922568218467958907281375197245081255191815744010408766412928049919062655144124898618743385842600107906600258834652524562248102514765228259471190961643004007565947065410430030731510292186328243858725520545820323054486180971356676121853585628504759381802031833255427209297681113757958703152841693976795410371629715809098624023192442884397252565766191614278014234066628660379242234130331877216541785426253560455519251201879415780903551564047611151925138775790450348640039289207896830451412743579080447020614040416778037887081040249966502311072823233201088798625407921294646436579234899961838469479198931108500422828195957612678817962283234164679415782917562408798300902330269898158293448804399581917907042243371101969628504501362606351154327033263404286570106783383901242919495686373558422276770205374977514943241611264246181501955206601656956512238041519115547553709764995678082197404074382681728327494036272127959253678550251657722526274708915722737492262273205215432937260412596461986878134495391317775809519659214792385286299710490581378989554307433683010766464512932957210946484146542821004597523103596149949137726876844478176901445993315196994193234236290632611257988836337607427189285384237527938824868990536717136635656212713519444172447123820120115324941631125558948135586442454389575748016364385284949892803988093047992218180321582203478628521344267436835508615734678594254001365399752230005914117341234052591749872382067351353533806268870070281098501687162011465206672428127695603859374892288280672872180314878523393560835175819233528519678389074011509350477265140763454247069266595451034287181237419259931689194974035620403157387719103294109061175970378116002772408278222482305472224176886470847822841495976427404283523090344538297105409648780307524921833888228523815138133474821944980567965185154513039051535466136822934118738691238774906504944185819182572413434756722470156514839662820350648773020030163834817048233129610455081025654203789214683304810597260451679983072454255230817054795457823057943372144529057352706187130673138764971478061275093521199588626938252997544376483006760568374957857557045457874906450246953101215164022055559523894496076388510341367804072148067239506721533127242535150516693303872915819015941936384794602503801805520843416726042574357478497708623484900680967847542185290737449335188394385155427197219884450475507991937580824756853194568992410318977873412829609239229672812100549187217935476282653827940863626310393781767162775093116128936013227418133229367247248881363958259180491126020778612635208227148965959059229005517303999215668365202972839941436334277998232026265252921438715285691440796099979798496106360954330471772039535500833768472005373068054821037126074358890633851467701777859794170291465936391104907714246186733474800098481969197300881801535270989750022017734671624868080258790625838797718922499185103780058835728746381069518229272315093228067021743906731953756670478530770213725321796098389887818768487271782007961849830418087506369354842577705904272075858001700039651757960954838422760787158355841830354376864520515528923262634515746610705138947349370139513842428034233253348499656990612416458803549644327645564038819247653836611894174931579068680133272443517355233131322876315887813366920164943874659613672807350522726627176425682791999637289975641241188426286459614682586349774356580320153322343151013312823185266800795945329643667451835288409150126335006968752050525538963701181485765662066795934059548533712644544526569713426167396861164634364145792451291303277815480342779076451288432785232182039916377920078729564683110187616775907771340140702148707316665542756563144326604693924612841592214358317719773379729205012883791919928008199052131302637702793510073643055926645820332490742235914825984383965214563095155041013026649558650412929196751311280727651976727193805135706673651776082379525072574573198684896891116497809987379979060780035805860743904139052934588933922140604637866957328928796077685467098667803461595014816709989276474409636596221617061310596000182825745438838298908723507928674494826415156442160526150873977880266316804222478604245628316027191302191383769787952156601360904570989563415825471000916866325101088979931360465877640727690599542659772524012240872009624408064329233576422374297510245397164216032969276361185881510596471036483397009627646765324505823797375625006777178641591211385669707221653245869408950040744462031831121297523410266487882211129760056225395582596087019576435590616489241986668470135694221928005879965090316589815745608440575782155803647474443264201457515468209056184786336475751399097890505545950648947702281309484244921572880508922976041083645708235374270149906296919208175524620189022629286253903907414784254794408408963584698326672788114728514267698105957900422005620917633156916203901598974953495421852865423201209075104527750978772259270811080199907826240715988192720574456600336896914599739329809983448864777830789558677227490718811226997746241948986644144295818349947629943712172205591261880949674641351083944368547784560914658991058481781070038035144442964036643582867474531792745575665828967081327895296347791181273519841172059571397665838870698809228364992430878832472527758103192260404888558130479644987623959039990273776734029474090354894057246057586189931709217983229250932735049116616850293104740430037206523166258542384866400087347812273364006042532483950318317094967655632300290741572972369109060621950487686736372068372824185207618838918614666371134516489956350439415663373976846966502254969754413046892472578556795240206077178222475518183781068967089757019243634621343158521770588459346960855232508328442748876204479863922121924247982907618411757329732745486447222175825871627572763106743890251181235172226379214426620796701641348365305935666108720008302557737252131464639081477553317109386058363377856922609911319774766350407771511976731152731054309547580309309522722136268481547933582891091439312911364243561995151784821206242296284558310020609450096754338123950182988627170291175742022612997189777165412822779601458122596591994120393617471470078757965620812571091854879626461866250255323633481535526528510635434086194657203645420735550534409782658154382534136543871699383060780225347152970421416096000662596689043456517848722711135806692999414014111319470003119607543275797882964394600234089566949435359380505654764456815076797552521471611316956531460504131063180725567247710380879220923904181724952221045430383433539632794645845336585367459162336874374716340454102817089118853135195886640850047402701540344853511781408205044529179299669947786690092354463175893448124465759345187085106048134940523542268616833616121425632795940245506259711695674849346387778061836374823391294795022203367397440459920305443469996816266360043553342035287190814114535719184079286622661698647641558680584731569987403995686402954783541202850711240253128429005379403616592670922123730912872251500287224995237627676875221848497250420471508204920295665022104633346286907766668116143973113017397001444167114495871139600648442824640799891442129702322556998661016425139548569635351889861534625862284178927304701802617029649497382431899016233366061497131929489857929327157582136832000577016431756648960301687495367514008507477572615833462612350365487986911666706657705980683257771104309266647800295249866190956556836647589717740813291514654122806712945130123076947788118680368894570560790776208069850721517681236052382369742957096415019771062211879158715065729666029781069725084854919470011877123576810421782548855826875711929464055863095734481923928990788034516585195347656188071545157858369343872959003845400000944931036707634862926175633045088685700515953801744565142749399314004606524599596052315981180156154011171307144947451299760364273859645100641427735051029594104917727369120112822455849180045186755151760032973232991793411279155832226780069711969975191380653432445010764373063698428824974169306328558489734049021993803959977355171485748683544872115503992147673882649777151307502566713202656243020672320297288068129421511196207258997374657309003132457282355077959801486023494940122906785613650166338725043081027383395853116433160070225353857563604733969934178033114030979335000355115767045572365322654581118774104465347900018711000530075026011299392351359388007550987473890490373062999458313289317968841376931142802138992530683962648153009372612832072332333736142646462612228570599074821982931701381862186723255838064933872228511218036798304383033139735361515489997313297444226771212608871115781994822795811452282222817633162443902732045813101342092315714315158377289769468365700476469317472228981699292586562765110013375243093276230049689591706377983052866249226279216572270697009630839054981281367597936665812019740229648557830608768334437875161189595455125177948418799434083484957749747936002686461146722349408478743346060849296579646455593859576095641990936785995920122293001776899552497699909716075590361043141733110503922383767089359049728471866462926860119336136126841963882662507764591912774659211738270576711697308270034846809848520393427353412012102198935662170016233387934651078846940521769890706489636308942790630288794162563542719033456169063299867506301511037541849856108075450333075564120651192701358967712883842880162356572974855405049547885719184334296026804358722951876059465014955820319949730078065142508964623942781857847563324742520547904348039733195509033176167032999080011304850303367808405659465755289847207422867122170125090438794342515019732977484299254813599076601649516631910097056215007645758730084518939414579551414366430755487604774028927500620214979050654452353217277904140629617710059374332907338780029791922309221611523919881949459886286150213755307746166894984920549212354374295278363815342960378768994207072659125816197418987886231627845029978707066649397715133090969695971211969857268259097213958410821309369426724191152016305616977956533911513039935685563289564722178770829037572817568904737267746885848231705125015719100946989336275958644869151166538194848031611474481889190159889970751684686865108892763866069682495695225142680672514095154752293457124580609620151789126303961652342618676036541849986520582666069559096126066466820427272376563290346133879364149970189009369523212935391673709681791599464321158942333923422885321435273548261315306800693730774353749427750459460083406399672316434776677246154473934499925469324456307990430062069951377749129740232623939741225886542535823944365679208770393278355690045528720467696557397363752823675347278749134011497661237494627930600565475616921857808168371264393442560489033512061014820863477226418601424268700436748122432185819535645919471397001464587664376293553423668684600083630278943590007688855938952511676901502701955959125580530936992328242573721815805082816855464411509249341345546333902536406865598628407956254361893606458128295826038697720793387637895951760723932678678856701199758138674252954092012476612900140124522002921478146629813027017943229770339957029085646309452552984234017237851156446873018881176777870675941974838588437878023290347368129993117736351940423540143912553765692587882942252463333734675524814129724312632282341884199047901496232521127999141347471417494595509267386556088443428989354952227830109886747553475868446120553043599375508780799981557895172011967897259475532632315193657091902987803542010309768528060949531113578154552927231988047938301777367510240923539645666871187124354393052169406938660452337666306129476976840300686828360428839865261082006977643600127000010865244687850361303644279058438982323201680858028402216762415966855881102926847553777793571140098231569040752833610126789055246198399979922886263555077559951786574299424215192929519628672559779789550411946399058487002430115111264775262329929292580020720329165616489854143414960374749665219989372885351207013294933419649038652658689250497974986691715389038351869915887792762421889251422208951716227406443253952256541949381721163555301252226528278132292984307344734691692796813273841546099711105429132356877922710327823181200575860953192011166730890273037715859655657685278610654485983576016673573562148794585701956869705895658242580261546371864396825768359432870504486292611084240293271241355115898939950760083518873474997547285195280878934510731963798695712233503220582446506760558773775740494871803632865829940112002133626183466696841763757660895406920337455183562947439451165910470783159752665662528657544585998492824123274241642627642140943898873942872301169220781544870397994213372140916915721684041796163555865048603676000216773732010015777429132283105200390219791519139706682430716604098335710387672531883983913271219693818463461255061631322573221826709373715521848540911329751671000840076028790725851660439471973719560827247712153080378959511471845417580557095482858251994491857158349759068494144298525222088117828952004337532269223577769383526932567609055094542473808697308515410738622443058207059334477494428776379574923915719701870405895240298769384660883485945907352555224971198841913245580914796679802756597520715460376351120058304937899074836982822127481139197907908239116123403135725216458448806967340692228546543148602581406423975638031821432632702637556177392643487696904099303379153146360076725666471029630245944121215101339566702192263745684208360008631974750353789704800000556908189248344658781382753111462449150634185282042707349304904161381554258801140845716306667908929211499435495954113429462726215325479052279037165141098399265888294272442857418216287422927899368427257197613197589052488093080924040814353919864145599735371440697086583514246566519544809268716402426558464852749458103262803449517427784073224822373306511428723922088832588947071572109926633216880094235454744417493074871176681520706067496663078909607025685943513835742481476720656493709229727890865196245601663010285804213953027121046113279168154912954999346361888894942072578400898402505621804935432498828799701914523339899830075908406921107755866206624572746982755428361340651306546357059524241657056403958457666134826958305391467859457411166317038952059709244415622533140473291192088487936009325217623024144623826302602865417963175723458426959914680417726472965943039227137597008176014017661879641631950595881419914762916213632116583865277337397876658790438522888699996396502344273924229856793117367279376594053912172948682694011057898676034061939246665588864402936340776282097490065060696588728233151193290233182288043974200830131171831202796854493419801796244629870468907207496654880558392772146511423230827076559840496867440058876381390868080795536029737959928803694953804504521892132562635799206362612209894503795410260147141889531155450428904877878823092708694892825198998346291647420034217668055314718002223614404672544606957192251811046562762485479004192801034047000763326429746728159680840004483496864207185390585937858199948959938968255224179481575485669220400205911130879607819268913408203096140549792407891103979112194331784392114956620421085672998663092590319404179127578323242641043269363470185626224712213715748207515832866916207125120442486543390295950405844744286958814217750168991844770925088217752489094302802973565224317567119171293770182371229452979911693550532204906345081362361758734553548475364683580510112936076818396018971019003128945651352337680231650488323605680943981836323654230887091211698118823679681538816216431348467818872629872648534921275263648302239793963112230631560789982717444893054392599315961609750488237203574007090401178717147381111272657247147743298282280022541526217422912071201453454093156266903162481790721923763752424698206060224869986477189377503609479071339082473055345469030562261716769902551094533374205658502969300750709727524894469074488604660707608743112624820227045522640447520536198800470749366736313651301207549967166763237960937676548271767125046347531470731896972161002603177871654673757703428720381117565273112348552219704617197413117812537144003057960116953288378184373069698533533182396258284530039380036749480511539214205063159767324359155895209730546332859377306703765793940213108694001443066142898630909303471733288642853481617835505424322762570815807230958011709627097810937992053002422978632202852647800088132411391479857452940628246979984202290708234705515399067623036113292866336389116951340275050910080966440107353189325125259568176307240186526984439215092978166700432574158605112969957202070775951213827642383286364635761475251389729634114940081470795106925928284813391574482171386670332711880575904162431445515025200649274893557095602525561626089624211670911195409778000714441790046889356066908250709982461888629274089929321643675676817344530000594458069687347583234365136792046489305377524336499942087723307619389428661530008745050422609015909171698557466367560318532613509890067356639986240387398784916435718118204663591647670167473185436929017329719293159276052648138937700709512838096870240045954648485804895052426738446900391080063929019090128183565662367939460745462221979607309221380873619736405550788161785356701197659555983208627212509182557246232372497107582734793058630346284517479060223868125218937716099084985933432337589040177623890226058115714697465555180275613726143701864915311801511912921787393451199366924806733540926913605185238008783733190314009296541144513782481535186126251752432857450496525955923863775892280665331225838114396623540459053866121980142098896785770792822535034811723678779916223846063549145581457817240031295715156416433960345727078531638417414746162331768174656752190959182699914104071075194407966921963924818671919655987408271655775808949376718451279703713290392941767131464212576143384693191286193978086480379679477898503230966098965693684803720977924674479332485954155966377532037548286222137723152230904605191764886527468449520900038190928340752400030870541908388315750122755254111345812373407405795956276049654556473673228209314981270222818113351388482011132199909818337369062373345757138258229688193461731514091689887157186894692100627976805023629283274988237766451490976252787194367232099560847688881900630440784476938526037363585021978587229379125137749769635848778731300979699700072722790046293625389203089069955801401123279390762945180678933844073750466952087424750209793717014195443557958263436608905519333299947633852805169812576185437708074164689296958389631015813856489574607041577606503900227681365872048110078958224577550909464598940270963098002295297440962738035460765749014181262000360761818570574869248118808186704004915852131552638995083640284962381902602816785524447836461132444762775534679599190554232054756033647143084443698305136052921362011918002198697552368015436251773211496389524582447954718175568452091867316976692280905319747372931378559742477228652888301525500373586022571847102295258980144019354408330306926345432101260096430641450757446699543571628337444619231123880840008660396987513749354737689789275209971447712591514383887938205771258701355413972505231161539302483486287681132546365243273447795405294454290473313286852061719349876660737042023874469609930976428975355304219065323166714935891416640241964410958686380547073705424150096210317442586172131956862144637042198066370586629222943629479559685640139758379561437053245645464801824206925155637725085513399749006202081824439374338368597395332937046094858851514646601776128697071772028844170034192863728518343539600915192723644693826438329728615196756952144025461695413451999128057519628106416648310361355926836024514789965581845916593353532737546073724757409224227025091984753257898541941115624607123245313441117237078618032814024530929956949174537983800948699372773807787545215291921276097067609411762888561821529648669156176494690930069969197025922698948792300204285349730445899600432273371296893310660567692196084216781520161461174376336724883557622333756948711467663755232744383669742498510283051122097053730899700738554064088596267997200467710050129147687591681125287384395764699884888020701162685802054828150195739099009809448989932014285726299829295188196277506563049277683124436013146280522516468398512734608330900614628041556619387111559955655947396742578767916756147001987002152106317737371139261214642218426058693363118181730955128064536001977992086385493749566420294609244225858343568771716058753853973499477131986707314035322147038905909506989764173230248236472572274546544529623879968361784287574517752766380457915206814959165563432490937994072195933478969341166661016707877283163267804402843798637072759879866868293034892408092473138215475726270968224485530243828640118088953930218914519783849322253375466433123144669550355851100675549143965236352503947508543471896022074721506359786892915017607862074646986323415875454260273202142180419415810459712950313056240471776616055739223189566746022523272717886195708576580943400656354387263067733041046341194172390935705716394011722066992172912397467142666970237731841406194313525471297104132447680489523181575764424493914952464887620019077516818768539247953346754795903039640615622080774461969276997319106593804059466588313919514322718364400635784460708120443580649474847850063141255597081046829641921736108618751581170613749942618876831364864885341893512921673086256218598971488202431681538207897566414581738554044047809052809733110849005348780637145405360373133891491614573869365080890997676493588337857644396647994137871204517667062827081998326816738189408701156185125416480889982644484364306432775313776318021082914283674705970855914607019588436257996968002677914237548424391094940508334505012965143097637205434210848176342414892126761288318172457155641464124569589420904123095492336792493194729935114935249212624041008531494265476949677475740090409948362615446705965853580428428444952261180730685590900434203754353433713002436433633500947970013742704316160372904653452560614507127057020714457166119081261587926142137794713619008465566410054662617012819683937542400137463377207217517518698875234580707335409791547515336724139589329642244741667647959819293441548780752845755448450909427774022026853155808459611489445577446448412489925600557129793075589416409040172553269665885919840331763459903540490327787612294435184604490278658267637021620241645499350154325736844233751504152216746820794882297117807011567218615632017202328284945760816271090062178693414912195274488516635426069632292951190758703358119215430864164445148536726226296453484633939374239266915147108512291723087239336523551746773492134098777413326897542818048877066617366177071843163723909089851912816317870271619270578549114308772837631448124969718245933476079137716232593716373565017663760446559551510913248477722278987642643382184405131530390509006850532980274344665827681871933254492640842435796537371273764150466728717547954586928501965266532120863127052595809385190669750826760790802216271587055919562604026424859233730634334203889577871978902542281367628096629568536474028001373292479251039935286448649992872017410823911948576077057033539815951683791973043688828833776185167966912081773045701909138310660928898956551489541484935456773242798803852479579877666290272459191089183662644931871010906739306098753986148130961533006283971517760693401348629464273732791289798145982891565454114308988347187023770461369062859825609798159084824416232991418278573897294707178728848900658069672964926764598722712063606134050673862688863401278559420380599224362608332732619034674902100356143556229527155520386527413336592570418377884549986633185370910213811240003262069085258139167744035533982097027142662483532643080156118879805055593853439033136427804199519578625625114393564937587658462096096933132165248481568478953732160717291141618739868435163174041792789276087716527166040937098844868331690107534026977106220200973145131756049585523317667751942751641920142560723707918190633888253200906865422871028569821139984106462649844483295727569865959065212191949875209053910256170284830492640707905955197558726907138699995384933983302384672022285362022723753847119523142329997299148935307403440946053318165427065677634777847078573726174791261824150249940706865242735636584592636695646656566218401428787427895947009820566731829076384832615953274302156350729470249081721711959529340974938372021187683777625626463616911071345721515621921764933226330805830865758301969842812012872548815423898576944224620403158813253692201890477164281461175640278313066415585720054977133126376774851131876956384557288542917501368524737545401747016242425696315216909040285822185703113415238638211931111576880779791537406036929904172950921932163559851234464297577818555367325756147294349088059836507283635424838699984259379541773965815835842966356796025895080475219760327167202287784442695647396211109531636941504845597704157825425755081024990335023522150463625090845815282034563144326216374810874679418139714623688756022179399189626116903106416051530215430877462718323422056998517989368807415747905710147329007546557355211954408867926104031856722036646739571211743613675760095226440775260942019276425604186718841089169438237490109051154617959146049250479948274257708975768502573889933991189846629569380890753515530544533415263483525824030568259779249678287485556546810477631790958709580833887977127122257218211952281926724675227918979568968922298221991516514032662508994669578008515076707086816790649143717488023379321516804057357447263900655230767628521318127803288664051148971451394221267960148080172854150474079271410136271097472400305368434603162117768955302469298123264502025365434912182956177077350398435973936637253610558624911694940296319366008593779658810816838465985320658741694038549453162250929626451162773374123252236635924747856516668074350153381435514667350536646256378444906154103655887255608387090425438961206633610853716269054842125396541062499745783315668924920042930272797697158143456037744073550642031666587691476911630467800593063525482573389022477458812028752522043945452509536482874056943877122404828358003946562643926786652228952780142429212837556083665350710622241771712702726612774695473619907983298738002835371213008905788417338289396031518564625630556139373745803738697664263353740203442391200315979788528032407496262621051762851416990352768478858622498535234811173487022612433804949547783934036289480231146500205087644688805228864421524930315938557137850106512779082462739536448491409919519502290166683435384178993108887280054829900386910807014052655859900142018018897027075614174023155399425832118983577458787734377687432327181468296848189695807594172601824482683218132201307147739372609481310008693354057010832140060018558403557632570691956361474100826932389604415164652613911377504933174944037065600368053617532043050651636710892943756955111936423479400598983971095891600121206855914896495423271421318829902349378626529505276731175645684741530147016591781586388401549849016210884537695403949704653480098438959310283497061181610933175304403860297860311646077656591615136570897172362744969694707735605574233420022938155383772705931941816716070031388136425477202398518766760252539354079726535023339948848131732913237406442230329829156116478928205820411215549051614971883568765025298795313094495642336853541560919126173215824949095239047919894534306092111274540982725927204303472574325247551780388617848144451310292029111556719178351047530873724790226841446167522812081246189860212042513927945690722344020835593015376046631052238890576521172048786271236310337782265605015780793821030979837616930723623228850771834950936704090223764942340321674750855205438389527911976573993819506061912368715108488894599120663570621562523583579868683628068230825106484351591894263912313287417189825648735596121946363037962608911372198682501894725529603755531787292322709342749689418678448735848517783917834796115212350231508153100660281875171978900195812590340439532233152134543371203378460188339503769251581850010302777739633800343781014593542029198307288408552068133663486213117170701353410743845489396652599402843193563394245327715895303642180587786606666117516266768781311602338967078766924093245904933716125984548227232523214482513950873308580443839230043192953524443161866639260274978947925488242741329973198816476343619384216962129973580913668774695405228610275609296664523986246057326092365790897061584890563801982164796726132577730735870772902139160553860122033969545751803220247845672600335470468358404014606226331957725394087002746248240556167328970028410520764662403491883959807824024404176803819709762068290357341727490414684669059251694466200175574904227145298098656739969099281910073126178557025290709127178288891440383909687283894925556822846707534664481720031957179582485208193976515337416525366383744199108763371859542600092230367199562625584276347486165376054030520881097994781705134528993913422530789506110533627812156228592461242123377851040684687449473110184683471511796905511663645346577382644140978779830479175410097624671133752160967180731186096893832427589268810900569168124838660065750994375355771194847935662062523858250894218386364653073053405721924747496397591011590090451077855062959531656799877244568494069055869461755865303225019112291592757834316481471908748014037637967730173396755927119853359281375019557367869511844530214379139586659819942039267237443507904241573857618650774256343465870833447005426507046833441780041316698927415099373022054032740486686908682548204350137683488078521171951239483761079641392419118913109105168403238352441843727667189356861501168911387825387767791646618192598715082974377025515969003684831917044250669469208638858771183426714381775681885386698892900786916016622348499007963201233169447966359585141046156904665277664595852696722929448478630448174826003114396474754811815335374446030180530717567106848008760316350792871958333971870512213478317578735128164201281121094554671635495224695191928213273651063291249861691387713221679551311009104212069308716430704038838223622049351473388306448779583295060491025080418249033956854323055573804688391551266269017115113879983174019021844112927640020968209635140865215634817527743732134240224687222022415991999146610898361536051459734834080811920482958217241607329795454415956021930143529598583622264530541437075886402912110499776156614444387866320604694872795490667584904907748136472259187793018524802153609730737634802741125131135292806664886268519452027944401209977084501937781843906592844110295462724064066693232032332640942208322176852216605781664766499691620085262296215304665151974342246449028885628152681133189655578052649042028982712363645174962938962782122052332457525730549604998533564707559416726965371519837915273271002428937328216431462666847915785093028262555752727465585528343728354534640665874275363633466184952591787848506371510095774890955261400866100801233804405245381989394004738864998937331871069082699906670964997180262004132116882590239779914387331744199595826071189880663751723426666998489907257160121242988073916902970338198458585292817830662398255927404086971902166700774583524159026771971834963303715343132996967777194728291944689910510993491855857478367977433728374577060051962204968313359436494736996419622573467033117304971649271540371050050792487835867597580574495717706863839727653152622405484842502167695370642998091983399745299728577629284307569662546514759113821004522637260954238770912256877860100850012913557621016174181526504509548098784126352193884888589918311508408256056778468128813950824223956892864798025551463590460021271166174490172925316262768547655167035367076652537082138132291635733456501816094242640729382833734308583304120924188885875169875024644151669829374974893193489818650506917555961577844727693425765812129919960802048744643282225953822342931224360342127211563968214864518450744982535819540517997447274583632810401386544374273921967701492174368593838690926876695379934897633180901173038856546089444393116395104680355078174831196747868986781849500299385486209977938578032257813834274587780410598743524999941892204380897947159367535039752541675134974897224564536991502152616258451809782693556657319021156259695569082635606213505007864230684659799993406195749097419553217857512893430940685866827927308017067985536149667992854167516746955370401286335495824111150871001404475246962678292324457820108377790626171799208059156565821638126338700373201129639920792320283476256165269238929227418547255338553517407886736513493016365386938822423247986351898992910178227203588184877195083704819662421193149480734499669439455024817750287165997779730949355277198214744668516446780229407559273986296698776863829880010468868171013226087481557500355635457442296405212903322331140417320883497229435903405195856577099873952013132694718732023942182992589341770768600738713269402460773939288075614024892196109137290099165542366289337393061050783289583554290711484255281623335371614682007010799965648602943738589486504261366444531729809282310421102460548867268526616796996222768005911923488176723207928645069241499067592926737013116666194855092994922824387064927060476903029539229129654235541806153727210965014323281449171577621869995942606420084487735587148996076761289552177740860512798609191280587615082088793122472285308397526913805088703041819699356513098740471275547157346844953976571582258669967665932668977439053106758374265516833703681005634885101393497940724851961406922505722922385518706033807896526032105289992849899540522209298374148019179683220304209525871444612328582536506684683890670643759611713419318238547771393164880669401057861327788053744970537120954962695438725565654429223245966331276124146594861808005698793825070563965012673837879336701526510510487019187945342271837057210077485168882158801490814268567206821031319155260740695244018847753895426218954487145338595448188012131700564736855929325922645660614177137426670374572478213113515513582167661181662673044190229390716038571619830199461586105478480285757020438939962204566265731400579843833528166119007384021691177507030534002732981681506702124798690039626617316337822313516230568355548952757479581270256351820473281553089792558952024593172808334308611114395192739032854488604067310431952071723392595085028076514692441104624810398167106172006775690186923389129815174128424569873166269767993786292008743711244185232712009124038841751729539314638025725820817877212619789639849545608584264370887743671763601310069735300124073504394152615795275816670565051209686395579856211044375903625023445355462969466329328128183925989832263257265555248720861472765402748979635550550816713185300607784851740409738667830745376583906864033643744662435226033566909850820580903062139059388379225606901939548703840879485069561599678917926307326232615109950310715612950976298314763050025213505088854262093547825279201238899749893476225654802409318745180605683947656959084061059997354996991120844562313386906075865902199733078877238249821865275872302783891684091614354291422240196223302015543154714219496217500680611259704405561617144286173846450956178874405343536691415247612444688130824556889721810267246426197502504466291948037186115735862990607628787638785717449101646486141352365332756312049537897832972003898413142352775728158814053971869971453997456903409564543718965449987078112717695028638469842001873999865350048504263073447554932449126511033526432107619609819977615017924535450527093225478311291784126922815789745173561173936940101174603023875583699333026638275888293374268194923647861037454870427696245795288702102100785571499055468033921216841254265557354948042907353059873019869753410937734722155235874951186525596810187717213184941236588105778587701230250771332520310890620832721450262665903319309358693579562744049126185707051331331153662566748168571850642978333411391419216434754878290962200595918284409569964668418251634514593915125437107893329885389587294529528398677697277031559547825975127392029173551601988835490703125897098200363895809355722762274362367466795919461419740177767686067477564135565895059257675414054449669497369719871969732316399218813514478267874883805714075204400570749945708725558758981089753144055851640400497224539814128138081439708846600698837090972220377436625769359974233207713360951891691795082329302891308017127086157735603603715416537012184280998621948751642729045491625233164401551593065210255419176026553339644534374998826157257069551681835619927712019571387548938588874083101651326914070721641101029250843036472269617192647695367831871846404148254538010310449352739050800563268594467241032867044057358790098826694403431618427287882112781194890941720026795884295597061474832803792763459796523350036165345315982129946937794568311399652935295313565138754915791672630131087916082516442781143823972711740037089543206174488373904082201779648691804290746082234908700371218665664863973955043853016470979673206722532233974123942341658393338534287495398844419851820884297653059101871033689005725981942182164787107893372371538147732783060816808560787766260842650712320508298764928961219773554221655163224923612998637112192416937097356666032212476512628665866828080514393474214847577209756642318693378520608492389881064499712564328432128441388058100504347946233502264273061086968310285238554149833031966385652326081697865870923440079207550383594615267367405305988678479846943658195405543747034209739786339190519939359825087243967502729447679157415355508953043592258525644733756932162198570176002521390294702013688752550888768953095003314759564059322251096253503279311493977088839347545953770265708498908254049793244825211253729909784413235996728199050481701028878751778979305213284728940003184371183131637576471709553411151957670794342336339550631420597373207164920385630371454062194636180980589825102424393336404347289405660836761021517381877653671503172919971749464278518720093429336862197816721149568934106089600370445360254158987152560835932526571828776044656248307865469238933026816374401334226036361491746361468074807274441162776655291213384058036396838724735907539004033706402698523733723231023719066867842459186410602956883913950236108266665077498429086563934975971696551101215755414166628092872533624888529529091946011603670639819922443495005333352873084334719162353144813950088654660388730718275577316227622403286988731588405673928358287745028183328962975569740498817598004141893691766607143153660612768149914170220052704139835492075462027638352663358887896824605890793296009037580574188874857129976507162658915867408490959348354158150034483046520682604817844280992513618994682807428930372423371741958817658256488971228643922882134419009529193584694589004551020330659515279848798353817789803614323048284792738630452588060276196572827669394625538964540580764338795381083949974813991376609579150747768335330767471046379239623192635377856325657492555114807224365511922466319249481446242339885442563405809305016340002546470435163984940941547685882209605973134544816500698860081192358402447606737846204811349738619404354487586257190633458466842448751401146564528166654787737340262824429548048957926056473136542921722060646327015407615103213726711794619803809365743968187488579712815599893189646122608758214304363550482165796259297125314913013263747397132115154941753803236516029839572685823989669953491032790726761417928707904341692318480177448784201469203464652961147520925080176721395948488930430886298025496125996898642581872759973323859966278075914861860953443931444109916754629999583515295521628146434623232043618672757676755312740703991285833963762084971292152851205635409526481789852667193344087410734578226864871895913458667440632443780078446281819568165819748349312439849837830276706186420756666868119478280016524914444053735237809248508367751195039660234099735431717884518999129290800372510444691521123919554916745670997018595114227631314049907327135404822273620783493917472043056389405750484295046214543599389537486289248015773197377505543253184580925984673234599722430782340616642519921641210833995002336645349100018681955358133504761356422036433412618883269242774603862995967661303357903424340956761954565855163589257759503364698840430920083152398459562639917022260295204739138611998871276397171726967540544373793598519941895873453709290285296659612353556727201274075036575505559047314552035525288156540484690635558167968124240211531589162426741844425389120987445439128260495368612375197949793403078797614119744126422579140956999278278187595806032491978462582095517825145742086646344325288564668817228691485729332622859269476586294294493436745722536401704909800303662689757972174996508208329695205480463089266987504510037816026574798536849108226480497360193574350774785550195227425352312555072469989221110369596402042129574449307159692586170373882510012511180591582645541247955912711790381064638976391949430788390705563304626342693625996374528015842219746467598071368831952704394544530804419092989469111666102262065298973608918640003441992607412565754026544874124089035819587935335444270470865303588486289411886790808519209072789711886218853312210005529207891565092394423053029318965396725463653993700594959357908953853967479703709685555492377925124350344521642882891898431404656924861137344544622836992745834895121327154051339228268280864781126295094193442378486249426545699145123125986177151221181760106955036190823228740707375335547419359810826720238186507018196907308319820188082883886124331353744509653649534533185518379907026837663500514571661994872649024163321378053689909309400322316163880047886261996453244621641671903301716359589789519024945537969212348713212736137445083408850217961390724781618282320324277323951969014114362090125104277571823960433493763641463509231377529360099727572236230950502154379609396998285274859873793952470041642962307471174430552614857460132297455587264338037624865011686275708991911561328786741138337394246945314798063409779520490853100245119178904384690283625429620067517502782871172083085575855101625955065112178625230615989106759508949113073669308008663354824074680799703622744412683603254460606599052014516399842116937422060545708790011855800754647747783713232258384763800915408520905176211758259365814823381828549133113360259435862594707735334454368766849707616017098823463248370566523539412018503767887633875079177818594278941947820730852994951401677993999142620920690106407654020040699477208771845322667055865611054702926237841371564057573815242745513747524703650338788229629347797365847435326201965451849984477359577084396592748640416137970807490251340645784332577662856508111703440371749893925995736014392309587199108838280266754974001533173189119020275536789406516309802732318749660732533536958573214118680104619268302089087205378718079100534846806246177685572955361757563979264202656211521735253850462225548101417680595818729666488337868453957688263497198042199323740665174760757658873687547336153948616538278584498677199359157864880730549481604479290710443208919780514364030510291988847107959702885592449027400514156674798915012926371357130211037940613596283340372578421450392027661744735287935843351775417907256285200765249477529901028112289968428143878925041110679186720386801916320191868039877206142484231700385333866426543710475360039024341046398056431053353186489454029967671388186754075511086173708775168524990997721608214880628609626865461963521647871523079094374228798030675302910320431860102496085405721867247396450508112905825246481856990330369805167087240060037134851568406014571011084525861148465272523550684973465117009660944188670265674829508077318522267563026991143415203938243925248328372803875390886878560684658069306595930023795124876440815226890942983175685024305553976455564343968187369001945809105839223259156347034586987888620603936771558850020827231795922918291177339885731761249831047477383833051602837058440461861966121641879727357748329343311220286546104225980943687480321910128494434141819038305904837381090026448606706026366545712179250320574590795835056397481581586583859818875270354779468910350678861362059234274825416017131293798146051509434628356404452624101734677522344015409153430313917325445105971407509172362447491763405414227339686928755509715187707456523999668965503980161324616870997278156655435968931360984373205127137622962719236642961543375338053223282856533402534188662856133149569506247455332939834858169649570830507975652305626173533311454073651275075369563976407059171742794188918238818795038163347334796409385228091471324800830089303717877586262101481071898386191130127064875784655055665169397988056038812190238679561052589934655455157317092230004454076187136317946590293869949351420067124480427141959719979703651493566940448426049953634653166360275280949457671852080375645747307513531598840910328608870101117068532326101986990061074620003173683020439535268687281253884975276368801019019285961126876053010504757743345558964002967106904042024730916579394612625246863245458748494024826767256600940988150640828717053146512649212809894265942744383857380321707992600675651046837778910444912698539920309421026104253148014217805959806334016560547073300006037965966791837805467796173464864957029398583272872703252894444670965640351763541553637167551762987579583077282268132921769400817076135372451575025052892182886510648145447222357200766101132449891791789289165240573842216861657382585626543549611962727205462711322360916601108454023166207442709438934512703333992672481432152099491182319272656149951007679056215356043467550885171176523962410780505943544633340874039680164068136808313944277970339019644330473364057151581426244429154882961919084874804282724053851166030566177803977679574610465777681451295412770253322467729726307603201931976835744493560255381779165404638993228702035291386372891917291728484197266225117567104000670355368788976432737827722829192027097336327526118243208532273630109259528580146599307836770129261013760518263208003122387150812825878109077658063036177449792249623260508363906373472146225691289294525289636565522652073878294631688559211543984686745932369388017476471555637397441504495800748903883191765452241268802413078998965334181120234046893143069568690921850103511988717930544043706650917780795140444392716126209251082998760475812320586352986774490588828415055942065640846263999561655700422949573533146217106962981448740991016525063232276204889027088086706533321615197235800055867347171826389970187994037759787323227583355936812069296776899144120446014310072886807531113946384438902304567655740111570956854347723815343790514085192913836663147838982710252526361627135621483015380418881424979958424976347721454903311090078694919630998712060997521260092627248538487916185111602282440636749938689427757281312291287989789301961414801347113216665853172589911526853635753893693357296865258103137519264085692231067926977557199394067246375386176514880724745184840690948317535191526109313927001700780590887209221770790067173147115347080434660195330522796657960617186243179124573501689913952187674948408086705401846805941172153049867626278176180995947527666332128340545395874737088194829121430801494489509959015105882867269323072701913508282305989453059322222813899609767970651452614234525088348824215714022319710403756100020445088336153370102826465956299799733489177225869577973533870187501372806740119348878992284579615483142655257152253708160018345173506227243519163699257135590696281288051589843228176565378846129231787723898200363970640340973646894693329540555399666040966415401538784706748613286953234053703796452249476220522676166812785067237129636563954472976374731017578949728130824095017072133301621514474943610494613651059299681849267599982384927454539590670612004382563540199222704316729285350981040771593451058648498815605969168485610415892767862536177133880153187167498999813118601745449470005579337813864889253957682659310672716278262392877613385762672788008053308259283243452552446560980254827687467989894134470354538350778202290995972188828039203428619913627455266269552354255671639744563648154852586299863357808163585398655822473562193922147113392508159825326863542834552958415912727635438576480129806689238834859914968237143996228901879556211311712015295497503053783247953041788284473476993953855426246484926419082704192449243782154736087586168909160912379065083477494975409340988257627568753124959265917330055544216149203646356997335034616289244248630836227042081984689057454767868327929437424268015298126061470388036450231191723708259524793268400921628881876775588251072538212243770629204580051924553488970119605532854833157881358501392472169450510677269070151099799321022259202488102489574347413985186913388674333874535645207145472752751321510546256654198900304379509324249109367798942947686993455369172134922467552345615416529731000247064095068113929618032851928741030986093282330166060288147380260499550691263862990318057437960486568881303861969603597433861310486722801040619848458869529250248358653254265471110076847190842949148415560439850502607447771841570358676368670579333819921409063797519736502498844147611602944953179563652142425880155038796792109074529407287697627043173356163217919846057126659244259392343572960731804216762077009823437733505944613306218064104920155969105839564121457554600504340342764847014374920821227133019673848764182967838069693918858240061698910199849620483315051430908505298039787196402634885168426878876071089827331461930574719670479165891312870947544299170073607452388373717190179492402171870568264939932005988414078848122713667364674584149412783581586010017908895954524773246654762012034360021485057920213679998701446426145188738157248988944083765009082757550666613157403529609454581280779492778481622247702633852492564174679825525772407438015095490336519331481596089399647104430780033898195792698616650952626490812519940411529811430812908836677290318699367457027579298516817369090536585363535155921094855992046753214214891520175570981156846338938749004284390244914420011620296023375137618410872331248182313525160185609361679129849827792876309526189434219619369459219454208349602022392395834388595605943341738040352006935412718484228671025849796746357316667999872165649644389107768802350076124138582253515834034320883645632111581556509570851337149157751154304965967981990378999661576384255531817911158632930213987235803787545014846042442824416876458370237395794723894500023524313714106784790126600039079277262559196781236748612343301868275821469115131818684725956919918897442879485381615017944120097489575864462996951906207138904779754475308886757966779382004290170550012566730544954088852078561893664999312627004752408992608788194340999723889329280643045854161186437958729268389709551585747980560187494384271129014469552150341675126455449136163420060776278562432897272323811041301272836658239487282163987443051350739842702919179952204169509319989945484997462095540780458319618274795930464689395666391042044251576559048335559221140254700037096283886079273425957951710125720623246862271194927557579967806012338130130832279928220454636127383231037753137247181200997643246155319632498373161542142808355068285548356383519668757982684868568512145164510046548804330301782589265955586438068986782959335512778419710453611390486219238157428090713870506816456604632931661784086506978407555289551889771853682468146334781353146420464847299501903968264815975326040073588462307153199840904049200775076209407459964649606876167938784713364529454272922993033749779941791270283801348802971103849585450949075220132353231283846400943962242030678708239670252487186419627459105636738071563461660682413085779742708873501298318989706478456543125054555163395445968464985505709800795891735247400634103251508901915892909734780579452525274065876447365927572875184373082546619090978541682055893386585341848438064722327294817175970390580078896992189384458946426244990195790746166845671295801556008798645105098166499997244466148315665419858298185550507469308560196264954519116894988931972849018970744648236010558208276277051314373872137301759003728258719083362874611885942815071227072775270707636390030008230226368656004041221457888590950542156557956680802013887468016532949881838685326174455872736614570760564812349136657694573249027294646445237848613760906143369032804481161264590410180633212794272645112187637879674922863857620951663769442728599567469169857010914255057670282327196794018183659529663417817024638695513759168598170112685666517426274456997360838575025067043577042660241049020872139035812488900545203861177673021902741352524954449262100876414433551649332723993926564077960672082393991248325951680432974932570389658134410883002976396549447117528570021803521169157660711710894327416040041763183443897147711326941107075850147340688969946304970369911716249597552172220537995865413327174421565871391488475537800887152327713878563512953396873705818410336106145034916846849249938293126580624924145719664389534267739164602572775416512352536877746515920571123397931642601480444123118190881191363555805089530502988904781818992942825075683321815544077842411174566860605379309071969668350374923742118369257875359888691041967637726181933242150221356685753491709270285269736588245378202106618476552629664279629178218333067188759444568190187778066528707054866490401894030160245789113304535469978751023886605636652254676631339389053160134666019098480374730973429587786060435135549659397344996173739083036808256700680873224389791020110829840716762186039480277305748382669074870007885343118196917616872415242566297466324022570273831570182683701250255942978816916576600190511282673236136744676824087321101568609667246889207409070544840233000030118032566053431587955764631233124163682068177838963180729420590427905711816369091316041129679322984356010316345584112974311779167784771154412799694152012564901104708366798620005256739148557222929192430196792289534963972152308522311371705927957107370561011310923940255472218573946828593715740240371464226507185922348252061187381009398228212960673035151064004640745701326590357513850652605200020681151961458245250562282358612385324464390394568245356332139762320474603256610960831212508005931457304943295092813104380460964336406288956323668212370814229134335185824083605976757100164550437110558346092469467970688084293670557425018370308557504793770716144128323616971319791030623350792751621551299988886496675244683518977781748607626735366207829141933058194644183311380822613376186452551017774511658686655177398928376990725992689363695014563026353297027854968137302079902752808294057299261933343695382026354969636429385715884228983655310527445740267486785797733401241110854222824225445482735300243168117032336373756965277476232437621980935888428469144993979928498834812461469956588777087116204489643718138624352119409240747380517660736411886793579457881061058808323935879012789086347841938590321299812181966743526383629172480620550993030847173520289857344241714833815547278984134302700334497916855486125985762857773476376985779121763553878936736761792815704135015764327629775214960620826994702337815833261018873155894810008431389539634798864899456629881095591813948853993557805992825865251404140254948961717500428852600511265799195495376675934528924231094589420374748055194193149616008046543291163032376458522632648084771784583472026487904893750057774430112378084200897326843709964725299023399925563242739304437800643600564710484011530830236818166171643140866877572300357060342381721306617211092855093648984199517105451761808518321237237481299082017411863273869986809383600995831528458730338239095083455283024875423330684849101271338895697001323670708947408636876956641113796922584468477926848062799246552947567414928190368844658055231407190143994677716238461040373012522523025695489093841837029597888590585953677184090438751241945437273136488468421810170096417950203109323231450151890176635462470580454498149299896238594910884825025998710065498279296110409779866768830941078864103126165087491974167938258847255712747065222007741693133349695867039882631126284001561237827493973341060962602292048587831405251207325072075683554549697712229577713924243474088193819171775910647610721080900401963335089893573633332397536066920691178735342819561017895423053677362644723239556168645087894330689208840245557159531303414275428734497675580957947932468832644889459753659825217104089833268755784409141498719413075967856760519443110841887869716402476587724022183579283943173408897753337040959812338724311867375143928957185105695510291417541593740943226562163016630246491039021824449003213036938119031395757209409970714354325868560092858124012427424714920231638591453952664403629917319472671297010788239115907242154353370772350926250883717843936201828376403811242410237408996716545166636566481659385075658790885731721958259999379966341522399339615967761157367747837019319801463814325500543783098320735608089183247055435331171338094495628870430163777224330724289060813264750199692857594327371487247434122839417183666156482349781251875027115274303525185138175919610207178243227766688280941700694198647526669532993271051328084225241220195662314579341082970485386495430410602280733972858860902957629835151546997886844809797748062490774884330413286322615840899507682725074025519805204352687342397224172811245235306453812667718637777626460338431824629661161871168661710989522557885960161254800985393770200119385372024098873769980847598434924116709231037264201127826017233771405034719506745957402647668563459248892251249878921631447147547580859619214766655319778098094125378837882471371930475910384992411899698994407064601586689789726093978283313862668788825233836900796711556648437462853602856516356348414508700134571311450060281658327520914287817576030945791938171870789626737401885087812464008477308020539941515132534620377367318491948015102408554881064431944869203625865294663639935696688406220147418971800822431944180832363709372016911290414492884620272633711880712777041804570678936117375154464859006998170728383055136811234320873461173965651336234150042053098661719335339671415235583754881821159152706062646222078471209068145687892114493840430063236844570094361644887389180462757334907340256212943877678949528342329160214291462378348907515953448518849603427246210602727626889717813032581322830849577740263214415322965422629994962537900810252835782496894166080812737072592518769382829898502240015618288590808968542027840305822010076405267357182090513363290261241024793116456765455908442871049792994648364982181239727190411259795006566127300420499005976497284519999275664286172133067457313033180956866349087224445790234852863217716978567545248744253901037878504855562927165477464169775333720461304195149318836852542277768357027661360100391188517380166922026458743598124316834669892064730487247624051663834760734780396507228645588090306772219743224206323237557480125009754825418040097153898273830083204572556683644068612277859164634322036983371902001854547293840173350450707061768120899346756802225863418273583805723108226621502456787028573228817217992759324835334724732403431648424789781396975700342209445552610270937255219089942530065984687988273032578106513117255711447545954362338508802637474065169074991281224514022036524231604394609408756344398088830504355057522699376446618586432422905667874320663124574888829476971946236739239049939570205251621187613424966562493234137368127035742647453864510010984430989788392344050611876917995252197122884001796361585374142984920970608855370411451149094852921495207087036626939206082210775405033764942487610698963496598633456941121373511927189607834875212284849548229487776320751138711556696116587737414808720347530267623207367145269885224804603482485981668170792522223601911811514541028816119609764274895205879570559369768184593984909647689975039743068076495941615976258105664915006253403794816817371514478738717235838707004977399694904404803784816993256166898761674085230147711671665928725279305890979212161513067667723117176966996172276631728522982159837578877657638426357765542445805272039100264656145659187526056792223210823860199806266825047503789003063269339264355508894392636146769689831276666680737785336677308120347132565322107986898502346004237538373284554565112819242384128458657702268562218813662385024326276490909863866738830800240621094676941216969889504425148508934543856624402171374708629413538106149000185503734560423272575161843067433624996543211675272112537223410977428913406762196384055141953271796877422598667558121470357175026295373770131315572159883367658736319829116195057596075009399242318835846353157464094019186304651725022917890410022003364776601041650774420672813504779110978031464440558645131455040051020456941787274275458833747834446559533962426324316242457314498038188454676941486677427203775188353562586165542616697905890253660737081176794239243008924401879615484104469922674443902915541872684051730467822214753627966877096266982251412268244879622375404639079656360305624339612801752462161929355147291235846112184884012207323237272775860662496463110501540786737071699851474186581646337266318727607785849450605154411155280968296396136844319173973750262455063591679102086389015618784669924501206615883550126499040642290511112322820638213552999238205737852170859666566144610744635303034361283868155372379791793931884608962522464210921122414404535701922703860623768604952227491774605178246558418879505659820005902404945444958275701401841041327939612459136322491023854162976573057858451576397231888035394652429235535785596382984775503272622204606974336122014085522536073486192949136670339166006177910868723353457226690692312548691842465990191804370931568214435430450916740625946959715915769125116408890701829224754099560869627005162012549561353313876370145635705731939466477340407706406910799860029081890799262750027673911809308644056571115455008213185835294275381087232129675237655793566023811242253628177100331470049198903122490271149859616708265678953404506661279805980043876159886290511344084048467951324995886198834389675113478740626532860927948411698866860184591417260918371724765985600216345961517606946931026600608624261092014879247577380846950231613168856182307192217806341560966397179733547478114182657327319494369249915773392301153120947843392589581235917688436340889884775661496378563506739473678387482675177315473097059543276816542701566949433604453229669473645481431764815559079896307671672806209174781241137414276112293289545684604966251932164962678073724538762499600843807221277382299680541998040598676767132871516228057971098410603571556855491119252179240275948441924412425850502269219953628718536482377609367916600243730209757601526736750523342746208590509866370569717115625723645846847464587914950977719606636688406695794058196799340895367938367324093114198387104382428752409280867510123466617244987187942109126846388667473181111362515891985973230663800454936872708035337414881573855942547268385816442035425131979168403098561599899984117876875611180665829797592496215626428273976610428927528045132558653876271414880338591363470384530681116625987863586279857952603317977097933244387773216203737684921232291082599993860399783678262266712576723601117707756990749806837286655121819852667762718146211581472813521027688065924271223536422948989068380858909404965835506866011535018538637382781041232994286503995127301949853589474559425408559152220830547161583013990415787621727664750816934781404065227072605569978408191232850532645275834110775215071326999622451308592435647787641452488826700798874882170084565262467492098956468169843534100817242908440853796358236306730858302029554184799927571168416322905524829597045759259520735530495482646957020854019298404370574613967723635999835736459781121728662426087706487835663993100897001564836782035184921611698790435749944567959361048526593707756760578061082924114408027607802328606488595757528293636701629944207725313025414931668768320975217461682825158709304040643740755602713096957594172079986275023097150858679594682545086080303203236267499622491386976480603839139241418919540053514390569374787342429761843225118497082283833793988164014111502050348875358970292669884627529381817412435153774283289299262021764417371980459457345158541324674227453419236094247869623252980705302860929793895932811217437591406743391533181438358585020315377374671190996265737610213586333334959026556478681469822268467203677257855268532249719563931023382266403316442168885402261705346067717388427901321262661217858210573646155684168339041976093310845898814145354570776574957872074135081142679989113497813277939121056199376537216877937566492547508787652478646172132796283485405647712735937448291452694853630252728567619240064956287044450871250461087701847985658647203662574860925727410399656878058942164854376643549319020039277831523679099784556807681622119903732308872790793883150318676900592029355232668118803553573388017225867419577753231447606572602083874336350701056723667629493905022199122214983736643233104561540194634889190810217039641105478152035881050000688066792584523043656508430808459791043385227313436749121691608883903277431824321788839898833300567629357473333142370081853537838194983703993232173569523999069446696613610395937831776591346785104317301236215421355334729162167058619146661162499873960069807254646651134448624319913153013435606966309554018094439025406906260115047142626022077033396510857015075660910056223125105805110461351017371393247702579626691153564855630327783159734603259264117379405638311434735449940186316860865982116062816828644620843260284196384137670580119464048770542085903989766995002675533122102551365951000405553273826597257176810079852370637164910834440566848934815292963165577147776763700944328499122001377515096612117344728592730492291807301756695459207995912622709931348678738653874878803709354812814561123993823511304275343868975210789984820284504718675807283830174256027063481923408397474146967760016430290899196995099316138583731878576047328002721819884756253051567569523052291065382396887274418857071162466650168889214400948029782527904097462102791656612343065494151144356740856429599799075037438920200130565085989810244242356568706630391090139083387970703037499156742296983013989372966552391981348071576530629203333540104602583221948087719815833130178761526076592966606919325234611105221757827307373561976146515243759331356116657822351175401846325871385508754957715912484195062601191767641495118540445695645073915924537419135861352954761844692958404261102398158179412207239684674249411506857594082973022499562439065428213467449939485084941634607609206037700448764845927084283569053294428109477853534545770056643855760671568474375391042203165197011712594457853031513851943641117911772820716725672938624771726547288784633479862296186367122820427007775706818810151946330602947477995110531161679396363584502658676068138111943972281472594628171634599040743189099198662184113879878315073599617506052180918228811672114284869556061282189441452017350005501977888280171813787443302044706393004282847735490811188712132513403704787312040999138093487340520182172065048185653147423669333941720128181647605613789896867933178368620425707389246630132429224553732857525390386610183320623302636256398454895813969061997291186245268661886568494254617825466808231075094672363047074007132827430414235581001825733006410234044586351819861800343357344545014316363546897582161562151651996988530960867660134600409178679361341447884371053933644516099249705762081420330724108473352499556694017092292604124416449139849093136119249307228877680743991453936990880308139896198456844507770646344275034084192594063154075829458750767856264938115744154408042817273634758168708194455514623165061404612553615225426034331661397627759128307214098289906360644989766899552572902516013078866161592801035460237441155591810723484925902025057683853216231301094259964615946090467964128635157154086913572645375891544481369858251482263598319036712633955279098017676793000461054779736291611014214355918542573222495819340420333714212781293086318789739651097659830663257313743892897831387169288699860325530812263502145558341944319519901615808569315122016444869784535525509706196105407296848650580444086635018769477722265686254285740725934731727314002022696409873213354715664680220342756232678683997045813584150923155091450521211726917394507663096110629344499932406694198939544740958106421712671578073422444968795325479743368617789540050601910712298895316045155081365535298965929440125352673527174933983484271007642486510176182019860455913115552981746875131957782040133339461530757238382593947818877322521932038516351570828117591220062821700215709109782772141078287585623451006703574220859399991575824498129332345954242533373112944320313163000572492534910365805242050054252267174252352745060891772281077198455220606347300789459571128791630544289313988577135159386681983755416456418600455385221189836875209046523213770343647352461890196780327408173413717780382483421879353011506545933100033664895179167799552032818337311917297188531473796045467719539365568981030623810086040185945859070077945039965519498828733450021275419997165664675833152587745536635182427935939919593546190229861308922281620119728502410765608160867392874897432612743342932338662063696779801444683849370360073619049606355173888503253799015376105726052491860528803076281628828824730466574344213548151523802653022881401239789273747599477415624121911342543560967091584962888058820683244017334948118561784695171532159712105478176119875446762663488988635651165020612339379739360172647151321665034773318175156832121658007494931635296050155967423790137532725685004206726180797136787412191819813262625740366747440001330468009180771020422871768274498384138116830817898066318950013541136098357754363715369803613727483410767733973615297895007310793178519285415379739973442126931525489716780063648952198567068178744973263569079349500936759727815786159688676486079868124542741569248095775892369289770510289709464348523187685152996036084822623673654861106421253459351421856603154868521388322077030024878083442920234771765526120386748427233502643004061059154418490863072524489977087144617657846238190562445668881587947288219715598861104725491737703515724650914000847903061456637237046972658561412642777724472356968454246466806287164725853331790092857892872526490335876885149252957096150290625927368700148754288881314754638960626306933164609145395872363594223619747955407942176496660895381113152140941782674860225404145502332179834180949612416407477462314038017248865443211113173405162484846230715860203198233480233281935310111970762874175135793512223169572507156431513707713168971308780114419342305798189896306188990815303496940174906908875779550209809494701619423606668404073784642113401640241603721188053398799556949840264499215482175861429057555086289274487834896708300155565010716570243508665624461793942925219874333749752811134416173880042455439775392234197078581531025337443465387818568963364820917741368986206095013358254674344688051266435418715513449359448058110039749393140473138092685547487608595726128251649061482483744248375218227526781727122573204770640624473636759402549171202545558350448506405137259100519775722754424591247905699451373690993506206916025209577047196825295186662503847568796611390925864977650063660243015997396424854728558152555856898271423156664930165123167085218616628294243792462188165013439572364099368944301542908768015625571243686042803505268043237894236878436637016067309859000692602802940951568685825871852394508494661584395703801375506532531559553618627435380128130314903844997817572271262351013756762692797483495042825650404984088001529468518938573554551052906059314532730590133860107400225754839945061600050640032098138547778230639652544486062178040533865234894172102819147900879396368597886426938178938343803077216632179658812941228750507389768273031704788717170816039578546065139798322854804691495385927165762263290770970768341795673878798957551181149574405959237323575641284300553382806161123475056941079056968213447264724821829295970442181598054044557066373732707063055777431826939729897464936440378729645707201108475908470762349117683964128966753884257785609580921330473199337886143681290973374568778048091331277664053708692521528793349213527175743981680895092515013209110056089217438902926674108426860315026612582070407942202632239814087895719435789266815288732274261545461299958564547091270242474007561496436017725357972586873733375123338829193906916660416124884053540036481517817428286850595445800202101873736879223883673180463520756550896670473156220605602177747094818104300319552577954314490462962761984580251235563656213892789934850199949371805548866623534311649885910597290679260440627825096496387213068754042682826846314359522972679399232173790531285410110678628479137546849959313800263248553714455355840831722797211176183490114200002600308600259906641665067687722857170732987539039975965553251554631294047009718691243818791754834826548461014913764338158457872203962185463989194345367219473057598440170523149947555821242073800562622738189015439675822647116547964196194492050089541246995599039724060407989781539362554095392319857430929405357163055601477108161958104076437773652954664802978256566188465627070414450461996074588061384823169212574340722686661530379115003976856725870754734275591520525734076041934119225025370790298293524192610397202879678541247206548738467998894479430066438218938512919317031176106817287087389953424221349786332962894589452025150091943515208557347318855512496299797227194465760590806144889835289560559906102808779151779427096961294964243096103338299325326700309186780512047261837902394263721911736473680478722357296122770115756529359987720219830523213335186428032313101077041736055410348860565116202560871906015719794374451051746795594080511144577962048961036967742543600610272679587763219579288705231571294918862476869461881780735702704229404618138327140757162539486259858627187777668855115028398604687527319502619555911799760928699428874506423287542122605101939396519004945692828282830632181102286374720880720774566816525874675008309253667718124353611143253111805995009748201143820239757760315192700033623107357816761954590202967001611449058101142140552516340545127134354069239175819595887789822172933931290584865105356493590042560438554824257354861059328855641839637258006763754910409653712333573506799359725735808396343784638667395056586448981582165752526023060243067089981799338948272564265745306415518060044602583419218974532874549262189254499602934880906972318479380436954726309376848380292837649071215599327215964272060553792728146034787464682171510903753727375924093412048381342206750581496809610066920553045503838484885928977824778293562468399656969191733231200837477921552910976448077629758294947891548838102183632418085004767103230481593836664919866383619411277950853261420237563382500563203947487212034499060033419377585885701280104888059942318916802495140099336388784115240436232749927099948406461265615325995601835998200021859881198043445271094197689622192794233200584276267292406694039185604646301696097928456449334123253379925566497598111511360823333375857653558096806706189658387911014016256242113110531700895755711446101327462043425669572813625072189080427165924548522771600959528682152426814760963439026792843496564466704433950568119481257443998647875284906575937923344522603221013491616116332295124724843476384790586296353684569686072874597482228492652127153594661967781243638585280886475827930741563515077335187202092258358846832416901854241214585264538754482309971987243646387261662202997739078901643190352706455004604090632244756002618740187229918776050680463940848154474069124675700892070241143075069761697024349435505046934678813390072765792080592451443091235165467283686280148807967182648786057860826140204187859224706151352487567824557408728318718836402377203581115145000270317667396373797852279595810863920531737472049208131325102781442866982925225445325037766573480918538649513204190959427397176482269126357818180940968347280597939402050390121311210170180112494392631901498360036246027007391542755401802397534375253485403333797054860613835280869389532730321044344758950617359719182359346505029102279625171256210806525303684525297044962276670706949256854317913214329792542197098234542019504317785810609882802752976045209332869556175310398762356699820508020765958248819636921173779185561614870314219527105965803281413647481330553468178203779446646833618864904913430140438537690161434181900194574378456381897527205307957926690135511624800992763680855449443225543836406037319026887873172046698997061231509874391786088363153591345829605726710524281601796010823531146188077378332332017577192439984668810323888120686675580902862612216205492614575186437453583306016203491246983873356734513264945231666198679192540102494443092008854582289474105007187778637877329872482947745487166800700761185138586726677283557777349579388147850703447400712435488183830968810485458069075339175347401355106534345792026423386560882411200536751998650065341762968614540511068421417695415246833947177594088808445631244954526433460345478295681989897319219116032868985647759716888536078146858063033587544635488344155369867027670528052674497295224896475912183673927009231281653344311269042751225253786240505992113782887296267000725550259516927573894472335861854156142581702053242910859185701548581211522348266876526383611844354563707846432769685826163293682953697861575070958960603637767312039511320516961406014149477517648470647440480349141812210438012324735045437623554188952502649084776397866420494041811833082501973335065647633259142559637631686184870096585248290729074730279423130466024830049627158799229441123715010799985544739941478814144371916711683340522452000361202745946880167422923107107406701146627119120315792777709637698415596043744312779969296425917782943071269935862542071980591823592099639107519745500099553089312584417571355998530471303048543245023351735881613925033321665471510190444450705687246765499325969558682507501222254232256225302539135112841787589112371790562122212244106037858450065072956409040025238202422789170124808250483636692403710608304260785416475296366621732901070170361230157005126924941707594375166451098649276579358835404239702873960303161759126521476119798055567259759834980548555582464278268078955233933624903240987627426702573688232010084069251578127146462184839807925240625269234353840867842674044031986552270960636575226146212394007581354962187251915146173856908541704856109213896305358719928959650705451410745534408924418604192645604124984207829651159245109511760940245681977879171452070860275624133298775867730253320306722949986724411225866285346720744732204351064778614556182765107418031321702024341381457766395433777955516342107909632684497183279693479202305701721524104402985414842625624752592558580274996710039921993275722056835669328001813524888252352349362136381037173299297534009933557068128611046577119446360566021438293401529964903904802419519192586796414107524169814098895898792353755021670517410436743278492600895901054143048041310274427907204520924542386706838706658643226106210931129379719062775321757202352126697641404509953018918174128166389464823926123065755197329703667492132854425271120985667821931318343883575610081596504990614414231907810767883402799541855877807828939029172899424804706219255441486051508922447511465029041163210060315242116029392830011446938756954557425134965769568430669339371115005519890044411967007576197566062628286102858231876382688698213517309704532401909499943136353387304039323800094055821699465983227804319423510164048337390440289326199588875444923582490707096298367899840459573246552462829220719780844874766651148577938296998334415272840531787346155586515229512478951653825151476638348786043933749664977900628167243496760998915910841095835397254985951346434523726507302686356198055961669493564613497905788608450884200615489905683544850586763892129049742765276659853398133374073668598537142575347364559867416390807467467905893940440522241234861140319409598371637987999483377283252634136796150533048058958757283718907538241964652224889886150059218025135291388718598545225127660506583614939427423170372163117486742501255659314617559911856481037494736990744000446314596301260045775897313312432961296437211434842716401988300092297769918271667422310892005203951601284141155690412387921070860530551672938297230406423536623792586520907654362595242182266809870471025625000803249428241364114807319186538976285576850531276389344863919120764654321381681299307116733318075251407552906875658685881146126916935047565000796422891151712541214809438409921059634943650078925902503847186151772362043877357179915801271767014024769309341348795870404605572897066445670730248264575682583800024001729558943281183007990120199338817409078089590603443641947741741786431590080251221344611869865654067122102056454745209529238907594436498949374970803135369056286687605768338573572508963616323943883196993585638225146478822060407447922465517483132279352076598721500419229126410590576954842684429513318383973913574610088746786646318965797118111698471404432221847631341464280323041623870199825233420522427362193052517603550765001458375836337673837126462351970456829289626824278933448529324334326552057743844881491365814381593057350590894097756331616068835424266962315529740554742764614938249734369826040887991639465416852587700575563974572801380700357828765063167297180753975184131688739754049378555235045371645727013710154490180915466484179427908408783356076329949085451216076368129329917168283731880712733573692467294479066794529540407219841387336036041795577647471829160656393731974932045157254715549435273068959657375475454268502469748052189940461107231282979715573574168063911859258297572077899709568397746360338206395081857419562991847243752811841560882132924905706512716888094582234220092593772681641078432076932365091142613386780592014083977505105210157636401126465794891269565691638460621722853785550219881187147067963545791297984907102546682360106745311426404874464228178428322483224028179793971031524465964724867173104051867991402657382500194699213496121249074388907441401676749078108745747117193905296379071327972758512041028922347338834321057764254692139334458620651202220991890780597088794440099724644178782621520469774988331180053191932690001374371974209891663834176505475167996101209801379041725495620359292312879018867808021419051732580265072400236078393217579609183176608315152875297233740239748801615194125716162653744908898756292986229242819060786960697474531267056213288099602769806633027189736157934452232302319802251295666043635032091297210914792564468799682384705763048655393989701673879260127971112294613547615301362293548521040110484819226067972873246893762957463978804290350440444257359350206758444620186209233517265586313736500633596394680312849591113822034438817694526009885613285842209152818613844941268612517342522307701501126324388662439309303416119626695231434093765573008272264414810972632712964367253111952106583771616901731778611427089872124034686831467384300871124248700574431775379462885301046287271215926261367724972340176356285966439090228229809325009590849504281160443090797511427766252651050436982818194125530876870887205264959383673874392919074525799788750617657575008665611519125867967213289341052307913943383543333902055514244280952869618501374627217402888289118216899800858247461818872245007856935192741111699250768308933188649934934726987083829373699461717668469248713281893271141326885997775243107896744731201276319777706256846064927794739862600460542945311109598303844763063760439527554520448576804748909707045968939433229793856823473925865854143670393597384630682775564181641984590465157683638572594236240357585950895024234374207651101506349839088688966669903305699727201001130696616923098576328318654182187521429086845611398983600765246463438331121276376695287670849328126338849679805040856804380495391955347269326235271416303304533220619784151748928472507747945487446708520981429758032442831394552051369067360555339557810508006252731334510472338374746773905356937967646964664890257401370091545866938381547279167739273665506006450189222376762681220353104486901971876211676637775839949509947841004061635190579464286107752281881957257135438760969290844003913245861917457236595255777196567261811451606525917903239177763807358968898202656774088357201928853297479714180410218973647997345650730066647291000097331880340227467947508966938029717653692336476221206529377766415754300893387897255417682609714420500178686475674458877122559094751192581235536354563492656142363281441284181543318306753256593638555133091940926969399668318400290264482883844796287812853474981785959640673925476649525253220571699273294108223910211735413393441121072691491899359637283038120438033342102943791710818995598489463411605369088488562462905111492391155821960608954063761485684653068791103614774545786089184052559877946707661650722044776303535435073614980402417430187940998496468060659349282443768856755527049243585189775389051815582373480750579761612959920891723790752500373314606715029535355297238678837636524447188526760925136971655851226753959918786841991783639484625394667294675921652677374890685095791810259002170857242593028036813694096258140084211670662769989192851716207700224213042571938490012337028150244433861934300278317929635114301229177366681594388089105045247298974421940509153256661169311587517433691218279343046440388080230187205948323667354688936243209439772779985821058453240181495726345463669721375200160481749020485638849297729434416086942166529182835904904001045529921623436816943818795177609990490217604689725933631598713484826118719247682255028373427168997534243904323208442145216112723809660655809006293869676868196440237917872818906123972412418715063878958343724279525914954724871419312369848076638178095001831664142841753232984184962668532356392715674829816348482526773790352809981905442215542391328928075110850080284593991564988928099503250144750523972537641332198138354735093869941794194266621608600218071734457792809427743641810182818466816995328165813219188071966289840623976537484621409882191374946544024428029615107745459944032964253099695737590586928414440252148835055912844698920502963741802990214406412655730993906053443851057615322149114895600688502709346776598642463963068631931818203681028710183926415317845641281315772797932724437134087381909526243432411353113286129675075170261264480279065348776817142236567594136621579451138000849589736874300039453843638094004337264767177176565068438784746087633871625842417350666641381170339249095803304816285667089694107251755626607791445580208489555651536672724664061217134969746962447407523723939932389794748586644789624214727921819572343841568115121044037750026259243295614437167601451324041445776463421729093281438828194488686417567642949764886959834054598741713549299197014520307153915316445127204822323992290461770881471652433946940185078347981764601038031685669350213946781572310170608918447876383825440527074760310630341043620944229968453019066646586093477629949977781330443807083516916100234387585256693126111528815420229470777997698413874895944804012010286630266368878959845806478198100761312244414987428680749798337600857227430981600678353250415820026757835269727043747880361220344596523510914806258943911394847397822762794166580002704897793360161603323517732562674850739532911405521957699178926699689549495954999974336932907398329241791455980520054474969076576509584455945681310656144692850015720195299402826079148665940509084889145391791814412425455456511471873652280064760614432495247358980166941834360370417489704145472155762130351160635238286463265721356498411461630258226676551602338972990962083693648846106738226854530505352839187855356869801990461433823413519086373788025780483476822214656203418775485506335570553106802051580208015963916701824697636621983972832441540559907474332157556836326511741318920589642698981770478345383698459579307176610380531383343527815678159068969066944769860127949191091916925467443761000300051801602786696525264070702225663767625329619750588342688206742165367332679626226556371475078201897883450707750820764850651891472660127055396193880412410667588219154094073119329583184327434893076267622500738986343478682275303582770280473982007892280098677855594663092496971225331450551474733281929345711082274392957208708153724077150572978528246892005840602486503840371706301897209323927118779387500153477164857485834135315789013540364556936616004439907565584840406744158027153790795903273099602344587356233259921266218453319396369617571641391647195220809359626950491632456534947722999435971862455837733403340762359186869735575577896327378061132688913492065084452091350623416219507100856752329704687588062482326748816201988957127698089314897887463022397944396324115741951140715999175391609315894428824282520749615597781530241980812680860988267315272719250933580500911926679587206839796958617155519477503311864128306480358122913154474283669887794887405270192037371460355702235069829352819836679641730168261968781879568131379813167609756225453680311538787114587105280855150319885542447627239737081996895615569759212428974009766086138447021945762898919061002804228784921930596342730419363463331390031277573912335776392734976230143053966111397066354564569553091740511199123655217622653156803123126959224586080399834060907692994099870466007286733671283488852565736110845687424127304870026325248519181662801051404023879613182645264642246379882209242111884980041942392416794021256190029396101951447306633188523210581165353660862166372227987470073839329657005035625380778521588795919814826835460322506070996885499865482486869348289974660975330857195485629518318374868313100182148374610333659204143530822564073714697676061129858282429400755363265848055184516273832933772406741200673342436990172097272079145622870543896474026556793234005683288342684965525292466234916338488741583127368830506978717470768541805052237100389754700150500051066606446301254393643087442496529334998122307004542060940013859192003852174562797201328174409980050710227973100883807880137755596795312287729126394339573193508925637766915276348664837082890622938807871443703710324594238771539851413764791718301057370457105567142371790228737975583046670808028890257209186309651585579915780641619228266373520109908853701590846071794157250656212238156504866784750122908824488787392717996133224393206460699174887787731909148805370926036173941610443250948910806714012010819629500907789741205158832708755541700408995541353985033688621933937563020474321681711095892761268030565520276655293575630850243843884376033850650107250093494991952588149009986036519600873556250698370537985300137345944548699521907675324275536757312683281582140000339566252819367955688096466804737352963571370473597544487411145328527881239743533937708725626157931129609858487300830612435581523549833846887210258211820390375552117079122487236141709086345288036420299242341259194182151655743430851979061973973532656040817044391200121022366774873512678432457505237224661466868471500619739693716654085510041950858003193721332842212835247250161769148769206333446072998499308552021746556607899037275341901549902896263466531982614594672224221813376001400287881537780805207064930670805832008828714743250530340816816660065589656151055179183042843654464678531184861177799677320689360136881501156405690272944539701004789903326342492959458522498418880400687438648255666845127630005845603463068651769338435075960445172067885513353312358085280651409051057209046945110970295971258896750812537407617328830435385673241300051129405173198738885040003781614726855044231381354583248926280594278960974507197061323749398118412149075335332925995377439343042739646442318888666277777960457475661688711586083705526584395914057039958315448045919466074856804067269576112622260867094164005715740332115035041119082310548781159049743246815641044574824136128035253421093845599353379975490697272974479337271074162515136409749720419469886314005308369614601417624446634224115558839662742672910656844272471105977525942302109097757301827644379966529158772271687956075630314398771861388422090543032642496751126076968325028964379701210348045961584117280121392039017194769500827118314465895683175229832723374916183832970600041572893599836949183817230614884766123963595977959866149708717799102525315088431390322946883814378756503102045236077256384110244222586518396974038699609037329005724386773705006908725914739654752788643509825619868224838255869269206288239333024134200116389006666466053869565276796842243652940688572301582288437603476619884004180318437069302490934040521077612757720808923981934050689653725105132328658578972429284560850734501144519194186421721092393158658847842490513767899068807620109139202165979431500124480646832994324254615180343141866384937845168294260415164821999106197962476464152825470932095914870494687068024515346421757264962378953174771893350831967232338298306970835616495637532704365419321067927567902593698398912207715222518860794161591891324076394317259088076508633423637022898358742641528888275163190328181524262449783746082443938466373022952752402162200247015174243265011332104653288335230843040029746486214199469420939238756798128273375841777937733805703517463087006345650449947519420923146874125076487960535109348905303180391351481977351500971515488617768309604776569912507397724787041213883473389671245735961156693677924378167943171519395616678826922086211496739524278868353342671543933821091460864417594620425457131294815736565953430681647362394915064107252417778513259800248289905523982377382849767691207381750625275414486881673575341075586310546629161963360458796411212965569522285893370457502092472186996628980480778551023448429058434016112097777443890363102669916420209698780938381092292230983289545640391660520347129942791010499298053204629840263361375992180618585166396311470286758636982613523392518133210247628286618537093826107027986718684945368674580246343822084760193159188972707712872644607847468624395229925335585934201428221884205031018180766826768545185055817170717555493670826517186214760115164764022449461054502176807121757838580044680942932581491332565216790023919866946223934213501460673678151025388156160761235845490360813601303874130930026648346064712631408474166220076993970857693944127741390161828052938899448424213716395826713130067085537052842912276412936777960206439567753751564039254054016378359160161406963772574747370659566262644288814512569058603050315253547093689361165366777667744106661689441148021323188085585245120348386332965293351273823514021226759857599475850365097060707723614783334617054464221077029926495825849987697999522110982411803322684110824021761089415904431085991727026922994368585874030488013784918827521823697005731987278449686819851568280534819561676288607120102759219248320639536660705366689797700167297902361394388265177002237383329210987337462425016040423780423105572982187379548644445632244197121835386278137727393958386246171351072074405858842532624744379215670657450792136512686239214793181988359402793094506894186196057194071691805569111932386465998183158574887780670959522113599809936691446964175816349883031285029990898761727608698152542621300676540605914825868130576748360399882266620029191990060482978881288077592733079679017843512005605328208255599401778584064864777212861031258132998278254489099546235621082541124967720347310076535645016872009511397556784562254942150961474554341461097398257655969427607331914573636563588933843008714011680910246680135628349791990519385974785341652604394098894489948572885775354042678347847552391277588699101204391477160421604081306269968593520598993869437710135574292970783711120416789831991745355370406046268713333956973538503338358625662055720741055603085174204838486420240814854500760579863748435490222213922631858122922716569238326110900481771417079465495631628902580860616480612381992840937284662323347312384805808099227391676896702718580531054141637164103420083740602429842040060491227967209175346271169186814968184942075888153077755297835140826888932813151575149866896380708530278266516760382607446847946617784845119556894006386686464545287735577369379259012384563231946739815063891617187610767978668332305704771977848659133128305824702347057912755785234518819217526437045364692919365871862093401106490364253875272058141397829089628969763841904145767171694911586556320186795827727603565599424364525477609896639859854259842917098173298541072419249668181941361657590178658237874615917606293942644511274982593897582512024639410442676671184091904386456361602089313785797714450123805324610899602940031158257660182130707075855897654070613274659253722955057239840628596192943128733596838723173878049539008511119964591347106741272430412591306062518128013075827062711391470254880219407465282983957853304278760097036555563062493279666164165452521679366871571855408805309232194239651967639220255154106068655656881066791128595950398089754645025359602567358518982275411527577293721633255869316367653924606266548756813892753974067825261816886552211616811341372767013827131001634819948651528053343785995193216758667150201427238240395488597716332426943588187824184190931526011767909018734508652674510813774321504805411244314640827542429880456476236362063132027644980105039545051152140670072869859849304411047798646215177775251472320285992408724075439914452319607949963236901513792407236601460633985141234140610355138581072457861589282697509670515192064564934773088571294224486652001585079673578785139307440958879132889746860269969315852466063092523738750692195814808390479315618613712482828976733722647041967286518111422749079843532811348730099110721969940043829236349763412589176636930534794102037271341281170001421653189638900270715211156936489883869559960471421042123889254687492628703832777707146124399010634540863085011777411507555520498615946917330499372284603911246563513963061525061979445861477960548508550845564247178089067279295869195626660004037319457642176184453449968289815275782957553443508955714405975500242427351994456282552396384044333447266850439919487093912157904379046385165086826702064950384395247126692350886262684461146378660027737218951949890607391034228349795258365761530344220775864317702883822175187449120240147583475152703369648815918151892546686621954148077523901661757155849930928887752838933601231970928735811209905191233451215856407182084453466416175364546326866544378481194418784355411032220466839268992527466254891951691124029432552341718990794538204520786901968616148203987121945317136287314906788527161341408716408016505848822939128307112516400008194065464576167094165964163692851860650310069590523640195401017965055818339426273702650974676131690683345341670713537054617676361796120851031405603861591853007062870491055669319607809982738998903080382608078696453123311966204955202164523938370188890864787798340174943092890058524116692892121313000904799119800137442300177246372132456901905103692926616330893993917636872146957368074713694769351473035522068706978874985308826252965670486453602743330474904234648318446749093168862274363936432475841496388972919865670209524453013042868029344672874965125595021151684576158740448579593941586407529873596831918511150700147187060946163938799930511420796264348999939757776960576071300049699181517115736048797581250136676550078806465055761376367133304046213814659725381661764205120833096737821002898632973658748533131465630356634417285315953944972514523209376278315874137295854337291149473007327503738227370258009839369908625289964611310471194998009539521151523341032253399741604818851281104279431836077510822803201432940494702303567607710171845243495821734383797347611222608612968832580200657008851699346827428559705187516392969989287503157367587272056434317082666916215378765685761974674927225378916420811690091804350633537128534429833418980334928466969023777186191181582595067218522188311379192634159100189606029521149889739453514615566023403386293447121991838986298408085983705355761732401103272395863107164495927092050101717967969166472501523991297546021191584160813475860190038620139296847801654580833217158937495905594803044627403502061118639047787186026517120917420635006392739068511749280755227024181772237666987207187471857263895571931139073023672131308633591833523004113429372303877724405045215102260401764231967363255481447126077344008490230793489099358711763036730684319187517257555827469324149053579222941082600349684435833320593362056079538925474995821512319279451422153391093549419414059375828723702810698885197282097173481544010595411997422501630742462823622869897673660539208248358029787807931894730316887907558104938854492519820780765576996169014296992890429815450837728053048850583264463992384366649357983815611221481445075340458567711160385972510504443184568545290463635473420327812292989917348312315726112707002767061167983288019267856149400494420879842687743750329053663316983747267521480284842513008509753187658558045042359453338416841176320085205977994996438324734139456098840095996650185926662110168598407830899190366195803358883632815456793184293402865363746301411048242366954078068870656383946215084003578234411458084451773846845872886307130625232124669727388277022670599507554773326202143722040408847637464476122996803086203055720759687428991423394229423889414360141513648359093330690311551556121908870859393998369322288233951982343410954936029438843854732758589936292127284061188434918814991970945593738881322932170408138635048615445434120579943453448720352786541181495563760636669630381205986232646078328463551653032888542481962601721362317530906078245351226296189288481136511975824142969297198536875800753406390374687694370703666750387692452562729896408469585079986427221697092628764704201995193304757975799202869058400852465763576235733433144600944885172182389215613150848313645980719351967330869054609269080632047429100608982379937883827756462929857233471916758755836001029385931104599056386521618044441710817570936920538670088776113123809505681681766931160537054250045451634616973648247467951555406723580016056485960591476346252267576559752439009857361643341840884581495829172667411847677274469150174326183654965309196705586456363604738372411226874308444229267841953327784589840551739634492005713921698277057838028225901941406691348851906665050899911023458319506990598120112673718732954638016924720824211962546768435748165987753987345596274507034713942347613850177408060154220751000406736904696401367701336170055002437543469186652755737371299799997121581871639736692891414123561068234266230110683026562008766475543375333572225146952746936031388559409806192759083599933458019385682984776772369077021277328076495458870962681512081534182405378213120720687067220801085272671024546364055285788090514362903852466108501573038425487243434770881006206036927443967970184003321897288539828806955043151509327766281070503512085392925504711093571919972936468689309281313118191001286992322085136498066428444466027665750940879346718345833081380367016064457420381438575074275769815401718103360119135813263238059188287087638814152948306113118170658714700160804153000455397897811428903670130298853646035857404246525954337090492781795215680180419121320738399237348988945805929095857970216187401417566695658403109278790570484001588026319880881261763466558585129309186734879563601315928529889042029943826473550101802915390061077870651161804245519261818158665838582216270337605394826641756765485280681967832867581903451984508023067718305689535146356910292575814431566670232834743015841390281026381502594939418697529274773727444053192311498176969469337092118943763838941152319064195334281149521183857569775097220276116126217210496795367956140277094384687211653932427032453238535333183863448444054116173624029756979746534670606537835116016244472395139029297709935196829109328870487523230883800377615102780011929169729095378133126568894856840719787155901036990201511347881907321354269248640619277547292427912941408034786240702450799225904645423767332367689593969021505142310210730802101716776047888413507457098403404297519369774645239641263217446069509337620901505696291528202151598910299640430645059373320469504120594359214491668627390170407369054073477026214951048733366073072872978753284553184770535695592035706082185793733334964262248875504407343759402252867558695482894316641118494493684315661758900123025924188418904554443292487755460722147127270035501387172856896766338158082323503768067129864737964104381496781159747209017899186172030938808830491514100717072716681277409416127091541021047005449164212507549117285153386647365408897254177173028925415186148290448246132830761249146908248317880634922414253588067429523136560643808803617303081191403526369515280520921277418123421186850381366808272651235664425304154223357879980179618301515823269398328629701880265263176355463331434939847632381521246053556367269583433034146061569106589311916167179615472031394059116281847829559625563329866885082117269793702915432587287667481016438840225046875715057620534041077122678683340559844181247436982540663679355591458281150610174252292366026971912829760617893410599619732173095028376424833267871001117390042245361221896666899931762130631304717230175853805797156746403174703962658652221378888609480575542049602419359952204938465302875455582204082548393375821503970270310892971966320732490108637152830516168896414099840173777274199935197075866547057331956577381937786859403328948056008287919375866601717379496839781082464030239130921617813465625483696984801236307233832089541172410078378996953489469191500309252366284820000232138374374642584931451042225262903851843986779112964221854956429853936079531163033798090575709533295727865101512822565797399988794743325141980216737680641681868622504191486587019036964810356424959894030900337895559225910745644470655276355544167671244106683260071240773386352406305971240719390452597970293342573706487027059672705168529288038666634370660515977339356684371599468132993495846480247580660735936396404284431509149381260638853299132301100081170762472692589399221007382894215962505882263126870967123206990891027640627289655239042160208039370098855985597511870837502883607905155888134235400873221273973612814672390282636941159301188303443537741216011970076468345185941122927959859461161270422763430150504148999279468363614126972131450922512857555163679984362349252735893159756085307938076170160628838334016891107918243339691802579539440291299192200567371446068131011243187935728261212004636093022128377489727797247948628183945492320623558719705893302296438934545693745337730172268310039291446487255581092448628914620797261007585064835339759774583246907656629869863461044654841095275324450684281438729328845067350710733844146381315476402033955540610321281176694455515897979742395731871709615039918048815170888451161701277003056056529447751730055210635340850939169289636944426522926219543764547533931881231820015218291990418339813213774944085113315880791758421689433167321045744408149280040308906047716500412397825162798111398721531791442010586848820476369864088389358092538638627146510357153805969447039570703278908647357428670275078830358993859479461469862358311089047145419644829162796811543493869479738048186325039618656064502810206061249360447394832301618136578744758247636128982479601032161304251039183228419093645199219856879839714148603715543258481220218483690474687714376664064299342791183441909364132601345731823262008625594364835844647546722507206364165818666537961440406269463430614313757236016368414198954906948326950971102729738309544972411506978732185285447712488989554960240148216415357662262431596182543555166970547730204766845960001980847535058349892354301099394309493338879903836325026355093402343735066792588697627980917522509338398354772723167611687462657691121375882847212713385250486871859114489876300167545603288455754572490420809390593988532525675441355802758327215839493174973528755043956954801825300334164955875142226346446384572950139606525749181130755265415117604683293238538639309260944723432077304511366485927808461347701810503900198374821873308468415684816411777470652851724784460972321969961082200490298763281595023281865815520003186409700041316261923338078839660364112777741448685489398891184316405554688395210436755001645562326326094470143691012492667484454888144277137237831015443819348009148922495710109585938728515760025901912293178443496862847026449296976935991720230080960399640729045600035581885721095583203867366328713519102266301912253095585480612676243520358287232245148793070018825216428640008719279526642931160798907422533795828737360467486249258722669849871266485240173135552738765397487319331375821587416598443116958106610487961260268738356474628364859249360598453665278760832445502970384251700414647279437133496043495803528465688093756619663455602711491898580703422925715323722946225671166659305836915597922548877659792726065130976705332126266184459625556014723057837675603880262872587396325212866202111963599706274090812259894610331104319016140535019894494252994192500817613891645252916306659868869674923312777961683204194453668688598877298838876361529767704611490055316995167813431735951343245459169797875401284862127144947876630955012540942872131084816648899634734437221668961580589476788632637617211556331983819839878579509736643912620175437714677679136032088036957964124944727183630872911784046408972425407901525296236152824531979617440404453164532727127987661682935766076582191427517807503711883701773111655108040731603432039092437720738808174143012467856900350382838345597654623569714492962531282551713916983643195235736362812429770095338379255600408591699497628478005301210736218857577946889886140032486488648148115444630112065550549883919994323767834342720410027421978981936770258433707882951549486845297430900639865075318983197088603069139769972460683689116964227244111336131975866081638315559313449790489032088558184333231173282688111368018688709598847037519242165682246621971162223699520058041786530241958439390064887890426368564526091447592044909809438064639917016933759311274190699365315779504784518490119112619115014540698596663712959599070526811572532305827494607821217151466127025533952527051670851406175540961555239840858023477377730586469586910015291537284878222655300081183868672719001987710854284653987506706874257753507307395475153826884779495642998909720623269511120833980458119211654368767860845151969620086964430027548955253557365357252557596885536624766292189884915857812389128672498742184783697435416879682734905493048398159465483877307520560296765588905226474894633435479568205902741551318755638102204208204943883690617755617583614761429576769246684774245132479131064517347450044615207665438264832399529060138330079566748412747596618023090134620913266725418522365237974794214381733472642752180973961264863906994555180725295153279953390453552664033199612174685135404826440274011987955339076073459637282174551916779040909240541371505907148023949207529874632811173318549531332061188655575265726762784769743013245301077882348988054099270316325582086953899091752010076652773763078804568724523236638557007987883090858567775861497502551353252456153527904912818536257663833400769756817340321632764071667474157339895835528362577768649086297914273343108036561284507435160958383564331093490381652656710516820498247848239967240304206160361864751897339076086546375277385460454848940584716445746144902284332089846136499844256994711281352583487049391514711352382955274967097098587794711449626770431601846264123065146325658754976260723346554529776676904135166459416739672070264631758279982145575287836255486727149624451446352451536905998414594113610375479087503399128715849197237291775971427002496553816402403358710905358738401043118409325090967382463185187696591116082920407983654440945781630045982801082555596865960701058085937389619704100861486757282760162275991130541253876091038801226654389803540819382199764467638895281886618602968625159463895520079140313830233054353592920507821930144123882916986748907463591096667437759482609081440495179694149896638625766664169814475830671004094510966886819381175702172913750973113629073152457308439294506436173773331749420944345244187587679597855030260777709566368417816487592863403956346405272540475913734469426093230625219088228175573987774667470991570989065438999697913560733508162499719988794839374850004355962754506220653155339693746690799571737292934844779549769258959723043659316327306605829354822927173447781226395873604208078924040374306401443958637880373079577120653897666094134455333667687469291223291025450488382825324661684989886646123916403353601799177474454711087348460415024411836006911704385463573378975266949426096121004190109724492454196795936311278764297719041308790152968127916260807434221855060134800062021924155593860036096104369016619769408727320242852181382585267446126223175255233341454059487680649406203630811585051873034227437323442630345619261016306030216279835822962156607462752127357221181571888678420611379495520718829139460916665470363544328122493014872070126901874916625413908069155747373822682549734111915407347155861009809794192972057798551064585924555395205054828601806283691315820009511361450865064334224528152224419066004129045128152138974256906626632438305574068212553752028504827296843632658302335926838296648987814863871461000204053054000372651924181970585249370009880731676607916193605243237835385624796020262910525721377016191809108135757860277775724118974094412500497459038826686019579090662936536226660438545428479792557379955294385855800890024998382109249271991434726193341505488828046033439574965542775722971276242068362498892825458957055319591938178950996751628078404172296152840579499906828699760390845109267551081987470154672671777128128046022081555099764849469913667559996902924545974551126996273045586763005751085790944004806793936306897274595862594090643644521377173783695735573846198951690894695855782489463384812255159676238748499647359753202353182245145175971529572262294259296597816027273490914011731987269491074387853593030461060155017673039548882116352965660876036549716140033399212269149258424988212211746779517891234858228353114916521579039791103470844887428456207770581816910955995716864472764192769226695680972777190206382396107131066305358005755270870429531276797317704903142754857313258064024138106672631539088997241746453479874921777463210736517433589658876568978534267385609949689569745127672436302127079466037308490978218442103406053482769917996219171064709557271154945400260518039080787129706737385943390924068658958434528847894211987642761781405179078551099887033727092817656927891986349107036275408147059870232576968775053946262049958370127902845836121090941859453082307431519682894276723335877822160438277508296267391022933263655778610524227317170528889944327989362149797512755278763249811665366750960647505368022553455634159810565761176184214701946257995172790599018940444129947058747487673501027353014224931778742765785391230595886274259011785497658358522510977975980846232773728744542235688570695399221591064678820072990244920076201486849374358231916801947173566170070117827944335609923824727328451325434321450073462186987448307083652426111489726161602862639293796905716930917480278213975658414662458676062241668605983222629087941063547237905844777146568183886029827816523584947162770212797528202718247258667957876331210163341173770255669142931879268622417105035210289358430554545834419023091935887587714944098687473317656216886540104373720145381264108149195977653515806630615210835199886089720368029664836990030270526141352061873020747509756958548197210284513772589330794095346184857504974488871616211246965077271069923200728564379086513186505064807873890794070390182838597781482413484261076832377045992482000399739900817338493783043885595331001521047216935705669119888629845199434295135337772802472074389930353971215463187513735733274623057374693085518224811279402116804303616471287311333489539172902793504253319309070728364411355763678006533745969253888338024300956022991417832043972606615893506842622592614177651700027178497562110550434543141262789097515018398021694844800958150931490252378235864208749487790695515387294099577684729057321686597722405144100131743718824563069106901612002642893367019239262719438436149453293441633416841142483479954487438417301538267261661402495028829880496335564432970666680584685499116146559312462701310927724823884348877114345673248718870396632930997067066220764182315522354938428197444601499579719124600833387376039408659741799083643390242382336424292279582733996971609121657296550461596420335037720002041778706977283135578121679975351175582649675662009204908708778383341665216943761936837399683652604590098771777055542554390288645859028733412233955585501524253396981995235327768238561028597322387706336628272312641499340958735283880110082912624413175996028647313900012652533278711693878605064020367473572938557888107431443357406311666741532390015772113182264693979193789020649410719504177174876599794230990712496561467956181329252958798215492007864433616676630301966988721600907156389784500698635853705344021880391388750874409032830842937772372919213324228490544584888049806949010971807013309723633203514835026368577396283500554128474405133123370724725548129428361626828698408647758357405711955670829886592618864238401088542791224692404118785459255939517796202512017005364408537969144362963673506773096248069384472105579089215690390990588790868742443318335808320515112741219073582058897279395355445062662169483511901874966365334602504517584185516922719159097545888511497433562118357850182884673090226359811078524735582887652365951615038119483587062672851327596829096514903730381507102481862242941726230218896245905875364923554206630083472593032580811039184189606563354706327831014715635468355058288521476572719690817185506093427289938949569543191245036233348103225129986802652803638068935523078727954290765695724546213925985265008806921659032682110268909300820793520133112506461528813502523987444018641088273565504386183534440888085554365939171682731606303813405332728235578701050589203165164749604315810948638573111150790182468077001769162016705492534469607902089088516726753869211455733157123132758731669532572449963993682300900457873738159296564176039150630623214760993212815725294023185306462077985153497517949363532801197482931100917253802398176585264491359049156604882314125207299302229822877086097843116475450629271691091023952065355010445327730806705676105721780000817514875078126706745760404091844142479755783531816848603947635792284786020313827126518978242867348981938210215514087775090314198161790408996330083478651094844409343922086198593486502576894532062396298656447502905405602191178397632789314173017839046169722327999581624934488715776243573361467043258197112329962794578673501750006746935041121933979800995200672952743501987460964358434379058029023761200972096134297094138069986769664951803158844496198664591153291701975258746214264465967948895277964053210105777720224479999829987922599145379837824470419654073336813034681712682330829050877876862862939419899698126919950778847294286767984837786823002986078837144442347112112084734933889665778470545931451005466329774275493637271706875259931843429117242423581849986705991681283807693528431579864762992149864502230003939978550933460768034639337927440262991997466445651780544402564367293892359034397748965546376312659840866334592948164264219435216505716748684899301175034489038805256378501371245163144692076240575161180844512278770842153379080388408808945270371889068482468401054242011692409494005082944169042759148411218521269511467835501223357490049936810578919847362202145279691098722733472341112626507920087919509346716026376403654146284538772631387877384765299937827262144756342336459305432347970912903181177987377143937394225253656806510350068215919173002211245807486157193271360682972583653613313430100860616162130468408988734872043570122497863282310543762607422832791289282526535566255051803125843165330805689861658386508715479689795719644106650657998481307976338709650801686660193514285676188042658116305158902683824905606547488965655247246558619493136782574497688515550979483901682475081169878271134781930396094043309135216437223569910129884481488878650478875015841397834039945474294840484670959147177758149408632940881189946967655590063597726614249132900325505815432036353580330657730193168097870922753430821850602912771736805904870328710455609351308683494924073754730373665651260161573224512106902365404443846539617152924565587418501985103069912146541238601116356322994904766536377462218552334933346441892291129270340117093309028838851796239808032214790775145262670089808911505830473770717311380356609075763674489668262528449345277520553610552074422233444311534163265019264947173238733755756841895505959955038969128074068430665032846514298729741680421001704856897289952228542102957556675523592698197210286082965038588226926160789635859908898111032115048123813473071153319715259546897013287592866547811363792739676735032236489468145860101293369514311207735548701302325714168778028322878782952264247725687769097160105974643114835774787464371843734562011570455057383836703116679496088588015187482559981877476978644520523615336366408504713109307097753606005408589312809221449891364052911151061252129852211660014563705144089652623735777000131191620077997883408696825944353843446397885950383329569372385412394112878056123626016894899692616643852036318002479900676442418402913972333729183483505995693354781100959151833494983701103989865335569125395407760309707313555354400395255619557989984166215958245286712796023914740237465877647109288370261947323362485129901990638559477182661806182389120692745716233836871159701848370587038604231319622712769318590774679525069351607745653469390911057805377741438679230232052170428789940666489038424291829185622547163985834588162204787477968531114650752259278674556002931467035853540886711114121692281744498648857433256230524786771273815458525180228687604406441575658689276677971830834584548266393591936090770583034329986402349449217045261887420307335449546278309093639600362567742954571182692567067193625023860174189424408923464922412926383311744789924783963170601550299165313574586760239147695716287807602747541641698799772720225967089792496824895579155652911282237629494047081339558040595133877930362964737549363892202069884940025594474046446944075037096127925507044367168419820623089445641847556929858134725247240666702127551208078494043963974166624053139574935639097346333913620619428555659887994248904405639802363430615537079145905692268246856935859945195691070641913819792532432679289283175075182449781531671511380881178203338707647037838596807815104059380245471012200472545354649597754292830733896820979546755990333032481297390812610911040683656805820777566337322867388590601826056631630963932582081359449958712084117946622184075115792877552451452406830756806677408543756371747570369066996725577871240650553820112779762095791427259968824502638280291546326012205758819279771513447444913571745725906451517000777272327867783113653493676039980413024215309702356634152817582609172450414783273287245431132524148903054309403686621962211611087491992687764531895475371343933423771518178589875546386218832088799857154900617139469953612579845720008246365424645551130636829109017010385667268538514161329647869994955497404598889235132396806289780759366783553192567659345851511506879624717888270745673356172922802594551213310088202000074912238285652175488935268226071317828225505173772958244321529843057810052658061613585323403842827874912270701446644718319636986680489457321003803060274154499696210206944002971000890253157060371619446145725514907594569431029564239015135172801299315159444443663432636408413647554604201537145695875894833448935803789812699184382883003363002874258294567958258853161425783609741566519035299406773299344657558920358695462971846771108358512809536466534606007830494077563750080343504799928062822832497768441740162860374712983534844645384963894731694868574643778357514087260817056477422732437211089655432400579813404042073328635723349226466052356704742367678385564593215387792087997975222361437154163808720665621290903277193269896602329962532679652832167089259482402783693893116398424767854400273679041953614551224728444058676968578055232166286178672551080789795156992579037447903331416879549499292406866464786286433978393471377747853702932393224596782883999934492560805350664205244629477235385735483338842085334270393393856001989284603152542572129647732731693671287267010874403801825071771391094231145771314703241475264264735223302456994670880352424514232902464246579019498917389705306862191779303209501791678734903027053335424165100494467386092059138301668934228011151604534019734908955341051221596662194640975896895093458801808508082928600704291937661943433814263614144940614880789473270206542308960867276497360095142814870222063068734276519981128482186582626781734709579007827460184117693372707432532064836441328361217987914504761239730476151301099839472221424477844396560111357035756876447146869916893401085215911057849313226555544736014083175942938629568265837376731558626572891636501473196511763069124667201840924777624114203557147308579373230674090434239454352941540777867043793474799322639138241705894479629937596503748449433367153978718316705004879972791810020790232535534328116442728539371379999553436407814471313561007002610501753105031269134513604565878717375902212088140245078689908221868287673479338443962547782201499542110344705114863853121937036223015006018682609865623906662511513603400606587742486765045147479566256922103532507689025563927835781656102885428325808125437091174682833458064671378199611011767631785637983812653998726588169265521041992107889871573514228093112757851419785152259168352892588772838464093636074513599842740034467288357595123740893931175670920053211325875512008569858389935797430237939580976086274767849324894409123111025908043460739810200553171497682850539649338916715519348128217605292398674432213886836758591448723731264162511964645954996390374612097171746266227859636161473328539238482417352021242797896164178055821128083973292581767568643713563439618794933841871102547959697117229318473427731580671569771185691632065470749148385727330160051264666076315100528739884053137120005021705658086689532824337425990842921802539677149594757396434427371909761906999085221368934990505511591618959899508095734656321155605879108673439898554034669815674603491294875126175187883125832507607716136748931506713249614184984852592176126331923734969833756600006307303923589348214051063744372404784037132448081917236511499922025680231765083452858645331007959625921315989205574465457450284509440561573321542758334293054816760754340812801911503405294881053164435793014474273371018048027051760276678568029292244000195413474497980914347108032835437981541184371503714595990086235360964700509420654482342411427586969545446171833503321106216508223193747281257238628690093296952836096499165478642847587732366940461642143082384115180065131609642457875634623453590585523267889906886593843359600276117549860249650931788498213173544413721484315518431562838288885249908732566403117396577546036496575243981166433479623829634012231105142522786007411765234511732369835506492654556848791064314417622667328542323400144532089443325163369923747570320716894096070545409369836168891137933926183201097692634739564361061601469605562111421848973698463999145751079846285733996061017592285859427950669451781141027465206542849384078239491172687974647192701506485610862269544127380897093055895412675517100559581235115270425060168010165232488194577709774508457407146337352461701035777673762496221887476761382418242941299593806024302372014497688581234557653459176801936439245610387206895542394435729133410542165812955596449431420519797708804288260377616294925741259889525548281108595390192998564288479645382234589033137193481173400216954021667751066469440442486547692197039288159239847469460315684183828261317508182836481690904864137285971976858164140012969059142672137689165635050472695902880645328195095551745554733277736247672721541539591757364212415551859224898381150529957613144826829976432430332947881923110203732761822898766283409760360322644684102688743069132722707453064522679867100194253971475254089641475905517450922253179023443985272474546530588507720579749011011742198216873125727764844926887338224377203164402830200148935021742056352693326955590367857956450649671416102551899041136677476419894549562429009329522706956597642035384992169667878645570728939523179478334509360106230094339222952357833885341398180859091114393721435478579326320892668670845215170443784913275943088587954492238995035347616965244625842410045993897292868765792803563859161020804297914756674871942799726421237737478036831430563291084479398586089542805077866427678717133787062762572417575082351123922544239064568848694151893332267461900477916533055746127624980997257409313833275342990798356909049730788691632187058006080088587271468206978274104103269053571575890808726284018435298726377134973572493370247272537571729535458722909419617980317751063120534776627484160609532314051261879787362237670836250510014104870097603011380787884752109935175950138259109180573076108193926407695667853491145633669496032190673366145825749409118177278322915188981086017570069701391199101476018297599327939553381879051293425558026531734001340112319075952738326966000209428462061945914192547194144119641852945641485730871708764902755435598033173116201484593304039193364614113646073509436260880500719680080209634802959663440708211388420592223777657038765339185715501318033011800894137257436408353092034622015817853075004186766860842743974422466902002119447281325844318425570351988900491833380094768759581424848641735398994726800325465959454139251017374103519668095815712223868354302307153291448910854488063767624496922794923021166953288961100984962085866674617828578310825979342004875125940570474313568696164372424747564746651962947717298825971046103358226634117480196657339821662261045065313886730387142971139182624715426224955545772289715524405176166233758180051315456336359359607686066530947872377349793563153498918576442746113555350247931563474097688939407953123491548401610737612870401514079358388684600103919674673201525712379390382246454752056045421846037551130410305241990781651197391486740305972411517747276439340466389857454953272565087266006964991135532933182818754413747844857584429446441146337856577060061592299356837714408330693879366376368654863928206181323105390856001706242652359060178097362388922245338986363370660578728979376338241518940814723860451215366546994277524243624012933854784076965024884759709774361912965201125703647726865698990511807390544933561403991487100793751419032519634667865623892179692747759639905324271261082085433961010238847712757109707498373227264859257887641996038201344641348545524956347339221631946222106315223277922281898528898335942105159149234151028344686820484921025266133078662310731967972741362532591386419984828868172700766638774171068274185710138209586026703183570372607103639905865566951787193645420463504704926700075222173107838748670036609341371970637970606811365726445942948654433724727245553201993709843051618623247645502561208887823452440803599145593067999345335807963312240944705191238345281284170561811469954239599051919858884451607029019043300653189581432735605111694820745122451662841277089798823424938451283124589976319969324872741811071032067963630866945257253167489045052942903288239973803011238995508910086930813964616140607275966056702897976567670494785542638902027740225230882902802152939328549425332964643870534749888391126632129628585812166263697964068698330659610928778588077040464173409191752814549365834702573299080742368315459091770242025905363518081560600594989766228415840514038026563619813459287689063840230924271152306494358118805749214390065858815925529454148439132031773922989328236602517542778012098388733171106538381238778024746526662264252766647016602440228851975983097330164980400060682346294034060291534687267351044927974232388762626580829348179492970332222156139433093388588275959581704509838708528083083088521080704414827624619839040334056806459723607979412521862198599828077883263845174386887959326742627580724125837997316235300195067580396703217383854614987802213101383360350682530384134599677006038762935014702742995486972747190622712629843450750767096180003414635322974587409575724706814363966258100872856959527313467222129744661461467748007353891120516863137801741789308183938973238716231276100001126986378797268963564379113602545864676346860356178718724025235385855482785432856361702186030283239736592838301439881230282887938977220057422682854683756061239483733580523497375965459458900256602034120597290535076225289223640064923858721784583912518471268945259430696220817861873113904248906196731927656222816564775854008066729701872243153082831887433884791495451520964801344685261094422880316908498086111222643858013580606603083499797985064269599221740175251634593165789042410855440696507886256566279791989250395643234282978718714780784130126924523354406802052311825537175279322440767253247782777010849323524632072621767401695787090875788294926984504030113110943048652122685230498886199011113737843203643764280073000837544879912431975591793824876887684192114991156403689406253019467835570428867087991313750847662382644512517901423719178821887805581012694903181679544596977358330412153572070213837626731265832658536192054051952030216061172899789101728208764174945257987727304127391062913806937548107633488750346223562285901418854255542901713185420762175149505843102980433955717797577917840599640360169572899152170864599310130503078007643549201256694322448664349462242149100934771997044679585414160519464243528547464807535597494009174186687261462763625853451385751923074141775614856349076768296070901801842418197653219802683419963484750292255458199750973295828583466687567102997092244182014802382010498728757913506522188267571508592480721393020542769874204221187754630677588101735755268632086466522196431668332207843419938142094532168628290702437315513453124558194497978439852407597473452156407433097813257712940427851109968250308385917365490636949216597326148662129418424122900467995116250712261453228161970101151111444522742827231760989210052579609441126528550992967401453563232401232897480776793664645785557956256763097539002299224148362556818440859351285027949151482299972142979779086542062652491114181611102729115499801036828276994232272814094843926947376346889341488804275985490727701947911167647109714032763541319769113215564501243790092174918566844164769857598511108980607897707108783872977743393180953807840392331150811674470795450097411291964457479526400493146764418543322016672567234498496420406070558101101532024672289023544814343192619733258985964886231723528776178192516043540687664934584165561429764138397750032709232962035741134920583572079651449669501373186479876353582447225727285355243019235449810840990411760873972997593492889625086579885615059410084404409738271584180023279004177389871215352602670165659033722054764787024174670199434270419749610696780367718951645580083159724406631672886504627395879287300678594940710134379519625469599683489760339469537552819443334760598684997477857686399845455735697167365603943450527500223333784327463923017067723823628761348445788531144436663209256544087941879688097665020842755244053373731519089485030676076191481532642242826653587264677132303816659524884661427220905192930865309875581633546085836560471639426376862684489622742209242366100749533092821595662143030890663679318972899795449708591084263742647382719709693714761962931265775540190760205697710586801337072432104744088530824621234955655534771918183513214171201719966595345062729503819597934024035856901740730643931292604598991802375687145718837651782897019619767492329435673501012805750169622906281086600116746942618981193195688028958601314352380383251481650812594622630057375543281430215094269117287241565310211935051650772046790166601603236138814760517944798819089801381191522453957054220286920972483715278074219022698954657847843536368406086411993387732534212133689483176387063006481371090337702302463666960332288182798452806940483137818890747831762730954381483696519676429314774187224999558081613869850818360009405534558773389035716472230174379309321314994923425531404420834458189740317211854364374941806343532381791128951699876590772035476346608941136137992471692555434348164988533958232938644018140512961732802369062959029175132019150342066217369320228912100830942214669154236596618223980933597532420777663989453177037070471298506547217900142354541778245234130971367701643455505983516871570430116439883291627495307894586365505382926620852766389876260925196821584031230904192377597345752194442206405903353935383189378854970527787078251524705195133893578766505801801492622976217119704975476646105237139877901619549739794737234705399338329645183205347265802779957922148818050903445983700136796278502956952347069760378157827252628468689273214728069323755867073620709263749333826662340822554982256174498772039652652663249241324769110622815539115403146041727930582700778825872702557384587303782966450645006055175249306164508176301402213113025996804882161876630985501423706937513071266613428386274957588370759449706833713830910480286939023559552226925035868389495805773901639881956640732513258115082940519018830298421716075097609982438041739871532697508717906620987134856600525530200225302913327893908992110652911678407603844934558906781123021352817656108561603032222459110672821821490991263508018684077052270252512979514635091881254367574422410095651699182474820034145269099668391871757849399732295433350397321031402487492064733279955235052770068832015735361022368603815298625182835054741098326885841939970855533923758714046125726728409243045408198656058543662456674224012351796966922359567665574009555686483515230640607727203464279778523027838034303189993479850563328542107482602303636846434934752872015952421060102014290268295701599059930266992726549441911765749978748632105939665950299188004875949548422269888330073575972404119615471029753193960289648064569613988540426046841734454751239912842461863940341867995902684557410397094558604784899639931810041171279257069120815941291884201673091503351307522694963131391536276627379826971225185812735511069970306686044880081262763833428150697089174937454902321913470766321607221417686627981193333504774047382615572438894663407214804771639568401258237495024762312861376473284461911695559984177830413783103428357068571984889828398699626504537679773817124284275455857066842036829054283557146256920207965429113480447111811839786262133553395471402149238928810926713108518978005158756550226733867270602175441447876804341039306533451818972561416747684326175542607110582404749433677219863501050499274881183805255928747698022715189840996165461536653254471649765857461625349507452392059457085528252131731512100882139300103638154670373974653536829670119068143387504658775442894951334806142716567079865934645547953571743653154873965817114233996451741365690867816558250160966543697319415993753073964492162515318333570960597405446181840211883573222942965440503005627887215262376979196800935401751354640125034906519969823785486029365467580752660047502774046931505755730469143508440727017272603091039907038140268575386416723629415273779818161144480706620877300944807641503718346296706971536902234503736207378091516551929290849787064202071121994348407270566639255662076880908210507493374036915844208544962004669141357499414819610625997075409053438398871150709485711535476710060530659379844493797916569544328489038313809900794959287797570916331511199719469749212354167914040337582096560150137680541216541234692821568851363658336716878860412976888715199962487008981434017144208714307975012166655742556181008940128251762689622142923928884800552392060999165338023247623322564707526650246220815513604779844714040294015304428135669986848573715767784736549843710598637383722753551268509118114994823964696633629217037448325361964877304522503729564930072287425082512483162480675611053088014191048860629062153351838041868841496996318975070860799643630406121493364171671500063361910039947908659717249071224392908411412816987674269798664422854227174511041388225986549666157829924328771879970645590941112395391575879061160423220419775527224602201111629066583209592816028361741511940252266844865389717935802864132492028607348689869177237711248498042083130303710929634970008573159853450885538309952419788201809713894505149266632525788020374320627068549460953281414427600454832825374860323472204532106407561986541001975976441200853444473522603053971425431381963278429728367871347657088798940451195841221228117433842178966604948039007613693398548315161905467947647768250584339278733845647007306482149730523078332351914707516907192327483733223015662187454448264106964302630211716195106055546872136778128886678753908746069498964459801680187892783284992505049713169140434339060661686296034526567920089495758161133210723557570473794765345197938269260196381664022140853620823924105764519850800664084301930960194347207750657342275991081528958311567243036332483110132276047275930073854127660660092211696832418230255369945077034689842047536235759941431891714678493765514826622697040157723786417025967540091538871829019682155922848398481032874493491453256751719067185077506732915249108106215068991502158019534115047898859319844815813355519812136979472067308798121977409429254769358570832723027546197484685181176849985398030896564652477335620182203583813723831908428904362031410641672373962086213622530158450210857126681819907911052183689001670913910322297259224220850905504237925423541555644772795513451861847204514655601724814238915396842777992272948986013474343711310740947972548141296182161097846154641599192311163636156337844812907034830111239687328435894895136439829255517919707762802936484965387599386624414232995076328181092317304200462053423601758140461353481361987322468214885060700729790725443202678153911581891150758810135087900517383030852744374054248515060116622434018125232951022054164388073120009555638554832342551345184554460551429893629057713809939884587639625713478911482512556046363088161374648965877678576201022094820723530935487173174324516010364507384387370182633395589682271739540898619985613897076890837383935789218007455323895455522340522373289329310693888779182333084316703971252844970600874217333660250017281638248395712623029708175182869210649677732736634256782757024315040231209874612338151303882824598471209826277285761317554383315501263219801742767457048264626714512661865461421561863734245411801957072472713894203238300083918305776880524078119743362800147890518045540281906645379959720390614254318092683695054158172853783812314914963615938486181397771478776657109645938364347579448435326368740891049113640144799801153025686115804455761968436292553909523638138080860381479274135923676148856157743638814129962615979960782885257051405687627463140659295865230052114785720410783577133843392265761429848312190066579496454188786335853584316311857879708673281357716117072680894876029580607993845945619381944836633771006254026148642834849661082265934437325385720924552608824583634006808953441909047473229074288403452131580599683842323488455995448378807108961143990127660014590010032396367356672452828015056990519966421299505358190710313225788421563681939673319457023529481993866851395905898865868148443063045073204678356630940725755684613823755959638441299179995447581259511236020185066880726033351232190756765421938292000709450923141547722621607923365753998377641905354345986988843862980015985603240922628723093088005129828066375774795815677863378176508872270148092262572192479821229338457681839216296100268804474707198687098011522149376875327721561806406230706016262697514119293612146503595641888861483397873719154407594210552696775009978055860949739487174594499224197360976530806415064041154952041688162474269539337152697903415849880758023016825909229713045211549305818260971179631104635718897424019945585850576694952107261533361207268649400282167077655378894445261759797005129501513522489536277612438400936192098053218170963309425402541873983466883855853617536043303788778251017327300331609993587777068938810006438326759885972973035522354698523256824746701233413591901702951061098101747274935720386937743297496469118955341667467805840484928434255601318065893001720335378545779813713630546856720733294050090723169059065462143245213730187311876408465811681540961680735398850689806917199681862818630786685946927854684058960359508843569599531267145564246347007740538632141726457852232635317621087793973206294004542628813870289168110260074051399520396765510657379943025712473590265114416612598177089527068989435839800337991758761798186029627128752228283761696891179133213496960917768533728695892149661782967553606272183052853782924414647923980812401184081255363885162566600093162598856678482353343964556616858950574182139692858638421832153702445568154173804648782158797310359934524701066590240271917151317147261455928758113177020054653371053740349455737891152017466673929203457862984512688713398880392323230677212290392601565146642280531708999472436590537878541781656801677656464226630017313037961162047777916085062596838837722889133073539803886634516567756975114049481384439380165403020022413218948997000179499399405842473840473194251659104603888947473136591180097311158657992657811372725032477874346995401518799928567723991046989136305319947328379067939392018358126159850176235362874761928991622354654344569511770167223558576662511801338441316715145906112157242510311477668058097580420912742746068819025875621647090751134780391297810980595109544353412118581292031819096466085062761666981796365914697616743737341952937619495969675926512389450319254963528624758481563762041637111279276273120229304793850792615566756175018516246335953880214714183280850186616728311415305846619424148672567723189992068401018537315658318230418686211809069756450665240448126505302424337781220685981912368879518745411915562896202403279639996877315955148132732040464748210296845551212087522577973434869044048859945141054767743886667112964861309286319699997493911487516021236167734657547389773382410955975433236471526901011016897860839560554237526023214160147997038477902457134228450851658435083361860373172598243065757441141732810864581552379586353280610247037346598457613641561994778094108980116198583349605721295462794260942675503487881094775379277089391247304435330989015215410294518569427555591009376747257611091042909518279451486477447139827028073263570830767992943275682091305555060911278643006633027538373667356521191067324210361158898909995972153435241190859820281879759106402341793405140599531935479446261330777057729129351685375588894383171029859892533174186986028888177936187833793149376576809602923614160401739218096992323435298960794072598775640980712490200378710104537993219262851822868911635527843832606154795941109300178334905159425277326015993675736084235108781611150344782942929022022465583033469696487769439579925060468632402811016701091844586447814088896226307934304620942852842226077505183554630794063341874751017054947756627968928308850876957076602858224965225122794953279332085505198788224320330306325921926168066520667135563416901920701809718201631931664516311808534388498000971299003766727781305277961211290886532706172777893501535155670420708045100627792235605345211933818717260726067110842441758668622248773330797191049214568301500269788083338714867189610860094317307398450055101605289071489323127934677415483382407734281309507116026543748705885838047210315669045533860997892359103123332108428416443890146790906259033614235655224644459317672485603834450304116589075860207217102565795346437555593030036321514525619080136616426024629256294094659699509128294296797152867073189462176260669913267318202109489099909214144011010100259300266596331000589407591021842048561721557325093418358467684313921738641841824270463024327229885001884278773959668307926898991851473169023053827608681688361819249019072655343001416181505508462367249315545829860389371381247078952635627746140266287159291050815013407119388303286014229316414438587067247952399175818622653721090944174979627097901653060492817893236873491496459597228380355876076342339851500825446327155596895515185472686793929659888649447352991768890450831919256892786971960818484421795499785802377670784064743635065125716611209939200987407283568889484688707968195390670561002717009105330913154368036889828845025763008103425782596359299760302625626277997233542645195403254867003654996023322730237928439417202699622811985508552861119288240806217728191995615263509184539648651802226676273616641280672992725788205499558397712714142717497003812675513015056953824459150112397741057185798239911494734162178421446196006908145047676449748096187434445416375956810677343976988304646820493700379767360855328718450669220619723329829030572534996724342787218884291882355106615899051983605800866418129458981390107446709271793980158262508287851993038494173400097396679042389873857803984612827935482480448992766289564221623953923316106914878421966666185067593127655515403816515077305141152616208372999614638386297405064484078930685632797452734126370011677479913444273528007289498665162545897702184520355201623625115837663828592038212044551904988004952257239264611759700278089319178402423746567871124191246342064413525966419634303742141021043102935465260631114512277396305869710458684855176205408904653814962623682302437564382197091922543342044614808243215642988005443125670720472567611195139571847431054558446037407638843284454222063740589924530036780542801312572403347136291195283375629117609166072592306071192828399242934133367190506860271467626875004776877578336921863745750604355713334907344532193109591613291725247333054873950294239267262772483685268041111961754046130273638366741571988262718653134194091276378534419003147855708829625690837138420991708549956984134791394113162008016647424572301486866089821538014432576322004631499996797870236515705831853905395683992811972117201007184912602376934080208674604348144028539409697119100152529796598255160343925094786091059576073476930460744265150290899159013564941120014697301213635656480347807956544293585644106015635213800422407483087312177219983050373154519998573114516901589649564008024858148267856546387514596946299649522439613214838528443367216017018911241724527225430786077293267895293531309781739107732582734677856217776625697873926435608745087881358219858474111014297592331049057172681023476184703857846191557966225594466148750662756192960115155979351632197735854322220482958737742650738009907443097230527933635987220087445780353109293377987191260906029785720834903117432719576682990333831948384677575911280976031295865253341211451881768454589700750503506578613755022064599169537486796963968529173915828076730519553756196812388433950826749343480193406752259379241896870087665702553835425827805246705023416389787782900929213452512312912607831462134668244344195276169271805540850087008390410254452198130351317126622402015979493455810136593501855974830605788321421679775926484413726633839405248555702542869611029026472285626478731499421905648894417841605426442731938524913037071962578685159044440747990812835102297444141079033304486474905582777416307913143070450483039271978951963617889453880851645780382383878031764620990330097675185107583016058077072998996372607036955675022885330395495060125559247943935854391981058429173401064866842325068800473421577045791914631663759235688654086236851665485800196427921611858874357987443514522019861717231791598094257447029620638652293117651627518207624038948807914470762089832638950690701148219928719990315276207667356869105196290655966344968878016119964378920667955393505912468090665862820143796809675317920008875017185337648289561815577469491809286645247555463781445482872771219883958563333700669802342897252096228806127894950946630824365475523746243226836971426992101248959362343429054150115592068279523388823534970056044178099330873228639921862532780829275525687320544716150773067456629291989566332499031750530195851817887880350568209322181740016808626247266979471259685237497737217148928029380354208529131169603053858049030176210588797718325870635380625276838114204006111748422682106337077194848075442822303991218589546059440385245118375961665900622473770548392827990587258611299582372425735748560282099825496426069236632961750295782791684592757743146127196128425184265433343451033228891650201561147559065822698176569724197601990697931269957922361754911312303986903908391782177865574683201832450362369244810515373833849669382937121434650755469226240887945653925939604782594412691227257039444222258174862035216149596405829325555215712332077474256375265456330792499646866066428452544626543038341916650830214024131957356853937137147543030825098630412986538966794298656254525913834280536647080192182167653973840642004479737289056948223409228607819618439963284387208180530845458929910988076419025479735837903222792551657178403640779357107198447742198307971735235718292157180451923098836918977682025806585748390119214502317996530564309926896636807042228878218335146528657637144826401506862421708761702111379583575613233588597507499500981725372027788890380895379056249539967633941007107337245359526247962485702070742699416284978736097604749933116714401446528990243276581925787807864939095171109183118333856109530654853198565627382350934666151829792135955780416499293736727833806896792552135417886953656328828892208372772691301063414924455886936567318908081964074211384723488850504985325170534124820025448036222243509279203404606435998097610459284653649677402090793382435801608567851213960101633766846940131881859719252613560299675378521826406245609986952992886804428139018689107334243796336882765410886988999679905044079937493968399425451955537678200897492824761971178397423555747660450341723725764202027850786434022553668791565110090897940157552962993007121604560000390288426738140643251543549187936560263593853285931001369018054479398422089490676554876094379180365164061806337584268699769615186047002161223906020776979923252506326682534504338180649303983304052949218622551613924934018224499502879216085383210691935086706731711833487769435585738197246909885416376135601897798189360809199380376156017163545158705886236760685009292885175140469189219945539198258242181485657119339911832119873025641870677054117656039334265994767272051955713307191070384937346795228596488192965717534907521217700886091935164732377565917339623708526702571804914578092910555722298226502493425396732780689672419834741422810111349209442082594107450869297645300412294481449138954105028714801458993049212314556118993673410926254943924327669046508843713505406882780107830966486077269196967696801861704079593958036671268159532637197977363439241567976866408212895417702740347959109251668258842910802779482105484510368478893195429947148520047142403710017755955655770657622082341679666838863360980096241656538872206104529237615341449113335173447475789114361782256831765873603416618736670525691508490225154948934393381765737794305230278770057270541467197083506751542790167790370290278780051311483827481859782349047550824627574965133873102127337642430702934653167543311618640928346416181701083846689808216337371708323866086086579048521324018546227700604918178479884886211134685367326434948550476526086821210682217980286546111382808605377691294153546002101755773693765042214768214280055639028820495598053021641912733845206827864475444191974102243821751632940422403371331270140035221750555180365612456753345742757658334035009016434303045158502890166647576492595275004893801121867045537063814491036531946267222569120335815807692181265054457678943807876267842137412872623873252881340893172574736431733190775239660994502130908560713223380197891649573394817551895184025168178820676187670193730680859678764019748165705032652214119174102557942079780883026468419366304998006753456989608510078257234074801242253789290521526538427641546165361680461967393563568938800211813636787328993609701638579579210110376622547234836376590581281154157389376300776146530660228785305896330007190904260921883786128374131321653653964019193286341511828802359347801867138626756403045350169846269496629451512461095189516206992770302316660519464622886221091539619374298477135491604707277122269915871141758046326258327563286029142499760050625820445866596337049120436654196610547651389067732550259761370927495061439683601013650141845698883685424984403273012875039191354596893231282568788689234096097145336974252301905823766031630921165481087456918434721677340461083538275064792434541550851872376091690180185805406286473290948641239699749423596491047936424415804975436592711348209127835037399371981809834619914805825417648373444704808507858325102195068790526780789820286276236508077215885083775056609463081938954481362393115413500308118673922405795780177619835639849916305085487367227831583207323268867208087744991794317703885200914496503414170532242167212258896042268967252645920274822223030401703941362483709866694585116639695298919748258246552229934570256996275832474499278089924388432651309944831898056370072172250193608387892048480573167933533391737117676793226145062488541763262736612962767633293166228961213507944411090231521581076384154328245869545951017705357164352083866586593919213661295526770192096684942637877296593647816979687951061867132032059786139639813273004972848472842508693007840638928990623677821654230292295501344312818700382221022385722180561903689476636954878482687254524413302092334441904707263177303006737662724768633926501442549081781954918082206538638671929321947441042856311752926276559073257753996726865858632975561210863770639849304764156611135444978407129735835239131804021747347960639838993207533977111500649243383950949278215504171488400068348948264488009936670143710550513596892904140056237032184999523347255823842894742794951679182373134729035373583221668197424978065381973934474300561489469256986345963347249017635663206768710260349757052663719365311179699186780837681345534779389605962703062396684001062308428551217890808804488506990450375826046690362815071878911958406612060526212025067723427478803422886512314067520028131558923419766843963931391983258659169299987652196096672222371041839378896398395324193699285883481548543761420643887703064753776533082102545557636344774485405475850933245178511061264063546627028589358904767178229271440696464170925685447881275739445095686535771090344668449537240032600338239445441734130298083917766127242866136906281030298608847039771935851174950920315494695339674853266909559586129996758758582942101625970309311440958070584603987254161350568386872073399131069933593774097090295998331914360895512233552617778719757004333428487553114915475451671268541116911765511300734232836751203536488839763874591730815644696299984039373120770368852645176551838175010944475611568447359244812357636971814212450737896579521386711204664118850500728437446378892320108301534817670236797790017394948903114080167401406198421948321630736214517109686040004392405002696681684714683971630022468073378163317553114017118187906954691261515629145293015954531341170039447574092101860858015687921204612939946351107699123745981086895926004645993706103019916341933087136052636524340250184331635315818437354453272854347999236772050505534297990614824338877941828564007805728578354840319948483036469602673408572215778448640382674507320515800509747106778039375133501538479785553705636457925065236174549473265512313109073082172593758979370043210783222324951488888165922895305700598099187433315034115141903607486702846218429879915489998786571997636090125213077431657718613816329229903064892432686950376573970169998522675987379668725439042581646513051775702030517916427692382808104455082782271870845574639610549310742340715025716219724898755600846664996367938291360773298665703139434206163917582574989434892377784448201823741945924011538926527075151630436123414820591155678604805210495629227087651114140274218884517524997685304659933850468534041896539953343842420340286599196707943912838947524874333763806111963853412172835937089584577636792904891585231143443751823923128399923892000241802857482540864727072067811246357272172287788124851323401347250061403628372650813636021320410997380338627364902306163112689049437420687470841799554479358222216511837344057717554279067936178997953119594581707673246910010755487630136933514965231277086142416327428033100877421193760512468819884770987114981589076885752168373627685879477637103138522227273380555805807844142387328196884875660996349605012017911565056503723027151504341488366471125614395297416036130116140297897809454754428678580366345569280380776664148764277821971702792448312374128695996843768777839763270069599471758460522521529837585339729662616771761398576192053653089482250776645907838271595923418734979086211322924953342813878879146607096864345597726105845750974051425586847128624422791142878520213269859027935989162093607915196546155966904309251425593506831707583274204836022775036574266669572385231068149462036875770481090369906353926783612695164094160501532938308715820661583523612192445854627978466610671515879034932326798126605243847638432088711804586456494219190271125565454730864373113749097058415448765068410175813700973258387583041048228142854569305474884076998729091106835085448219831451910680548094146781328390765382152873899960638379797339897651794306961374594883165974466532710196075208654397902035833417974495356470710592520823603904705648176856505174007478704122189588431535867145356807203937579955442209232295904592174528834947400361004661436319138559108212637621444690230776200908895539657164391713294201870287179538763105282803623092937646651778691465804942976383967937783064536990388319656394147342387060277609742585089273398668781892117095989780282373589202825284261030905998759956781007742033837374856822229654951075867455898033678742592492984339045774716952502460087058996246084647473197714715096488064900746736012691805164220276104355451628786271377914726985003288136586627707016000196613322941050723814397191896804317075826001651606801861940259925718305737715649093055822831993597940450193946266668317047572557121931693288985000486004717507334043349832033961806834767803027822871463733350838244739744782160506280234600963777949433237867355890900011378530582715327806532126263285745044578122143056233484957889984859107324171477996555234009723644221653403220813477247102554745262204703892847883919850129413414462551995743062455411148585271281768498982966195200587678287224017966019958299137861371163720926632457488730203756406806257731339257250967997724487869869638790015307951058712134435344954042929324752185722199256634581079435185191352765509565925219817359121078612333621211247351457855798738226732897214001852439050867127971856587871277465004936688400232142385313413547814858956901366544766633250332619023352547037341189409563777232910277819185367691022021024885827873884805960906536759952272241402234434477565948767319161401216011244246758636992261959689158600777532758716562434492921796035057544252466956855484744523077782863846840030223053437726931454915747170383407834496292680008348084476847717369553650988888489371830745812892395719434876999078237157717350287291061803079215076476758784417254257190240910323959316539370868187016767855865718045253843316565493216333654046557424718374390548095719294680608641050832934798657284471986137936908270255494710509960240581077336351121532514998376604456351851552387155341919821930529089174802947121396218860454961735573841411919158839656316602499284776073104793450399895957945958453478456432377582715085912473214165921006967869961403429527906289684740131627070588893885234140142416895722823953141838937851218843157721827950806591810464277830991405500354967091344641413103782386420855055496485502041670637743795893539487768311651283392059860805754045115491601878313262337496936008674209909601625337121576350562909275758334491917917566557246881441433752445772278982817541096514674884527319795099654430633930811799897774216039193381193064041832810444223133895655932928680040412739614180219932953013456247807918928455925971070219711603263295221906515930613416870097886301600643000484431904488172104662095200516849993067641394724189904392946612964354508907842844581494855189368419259600247275640846380355441385701909006398686341510426677641507755060033044264064775963830201236249204723032259080013736794016445206279315715624734653423147492965066923300894116894104632406316197459231308032441451438186814217085037128334389227934614354280262652626158197193835480162055121795610571450598046137572282711761821885089030010706893946915714526137636084429704747428302445917176806334243025724320820555216398535064904947207773154774214828922550601267647645721222509964506941723114312684942778627886588429343851593278369953162293471178924427051609259551286617583469972960758241021807197200305422937703829504357035454416821014353870236368606622830079440855749844984435802265056912590334596511282968264691001260257916363645516639310355461332584234328844508679888278092886732521208531594598851105938804117154822984925417404140749795430628664088125100190282026916425833886744014378848454252404244450523571243578428456558691730333352893121329760906835096591739105657667592651134263586496996680955993676173613698751208895819165487854259639961853098095582744514008688738725998689731367754585458524316601601346458049781749800181390473448408109656752778246753209418828492544120460035013964404259861581614984280297561557755086671674630518609505965236617678385821093665530923778754586663081836603946240235668292696398083080642751923035198451500963805097951730977082697793058554386443209734868969302822987080710457455032594539334628313653605305971495026155064173612743790291967402869321999339739078620155354549365777025449402894557694000125841881546370418194378680950044532837618610192190595023678486825374691193484146418738427692298118991331191025444226068938220098820263568458743546603032520071694100330237733194303786861003799454921391063959611298096576340307190139803101865462722590608005540694973853619212767273898727164630760429677092731139802435063928707650125821540206031417002925755703543974444965659839696494012683523961197564418531953499067297742138273127473659472985377678953342367152346948094403998850911857017525198489543751905095808360894389638009414701483571539999240720413231542971469661629046106829789698924942987767193817886409326120458480315276589724283278145330904011542429298493206937312952570807764597708249873737233820526771483290292298086384967119094730407582266719304325991548454352752862742921946503258640131486234989675529341461771321897058658339113129405810014100080901934757914598167249806607653846925767141973155663436101353371954465787990596711695917709649299019280374077135252099956217294056403177503173938860122472122347217194320081037041992971483125545261579432528489754489590778239410866530102668992185999725484501134383840166870246359574775278516377049625979813295896144367627161655637933969136623127908299906515148119783612201082051014357435723029830399149480488466365466633528927123035847877177002081177492094711929069252635988741836387313537114117656235086095349420963548327086971234456644097869538142986543414917055169748129127644237380612570747713309150959697438687541026503665207740864858163745984629975270048983506768645866597877749621796755045123861992424764811953439179540248630205217681783341094492584332343770231050297978458569689032855093549719951452637151985301396046916794050626499037074189696749076839751475379617972733158882008333517332154364650499767581289736721782022144527866470449222265770092295498528617775257990870578745513511798725054495638958665343337683991792624782788458097391220269453539121437055417499832515647550283249626385757349527281023523416928752859235310150028740446070993823829699104274868061943141938410076002712951541260483370722498927452338056569646837971699469880520545567866032966209476946820181574991170022505559082169991112623525057674243594618651405151041051241036174302317514248799393918831962621340679580579568916671890848072562074856137399900145359503734110762739317368908815363182966177757633972894614084717955729977133528670538082005258432529045175046383831565827333640460449324909260536528937290361761860796165077867193375352390743888756338322430624956473716249234489798278805815411221599741667614592889800021131914233465309790510669945526384432511227091224879541801501637041187179644322082085363970856850235659407989906209757915191014040098501157695851499644412085865752765247238645588050624027139480895338684284528814635934625311039434688490611447427494441523013115410063287380144367691805118965033504111859877000393234093277017844758769870014878519419071248167720888180319273805868548685474161663031089629893625592950306243519405082552862459983491212719029178700943151753002009046783547662920247693901447194514958645951432454644827637826565620296072168422802860982544694217128105744323677831293892623391280538402073288683009569190276544401815251122853767940853817417495303022161655580838478745912807084207096811067598645587285207272730176180996955872430563025855858048068533955349439150402741308570213215976747091001465480136425541143325525186980685465958929345249203518121094738423032672207243409623498491901368220710581294617298315983741345659033985150053654644706741941717821177813306580725759011954413816585103384871598346980733458378619166017406243847789195696867415257765682627956278982569817107737101277974624226512471434137563255256945987248475098401055799635287405783348340252176862194512191484359878887527853968298641694597533277464656191365323873423350710928126472035570576914379708177059441447529541303804901659267878742674163622446648897888058666478758154243903455843493845228689343394987306119284411758710670865416702243796319205532811865918089197265461881630195410909475544538891429876180417461757160498720742026754794022142140296090296063510575548945565959218572942201433150925472638152769839057274575983629824769213007202114458655593073170639616985180617282494218949072769640101060920883335579344870964893726513706885421916594225763868810278311207808744513164952753617605584645983681755187154781131522189018639114231425313991024211416197526933561330194651007319087812513443833947100341159602577076325933105009038202611225239041758313765211850478589286445807921933000655074410095510193587809793477116923754878771820685576089664525488637136615546230505750170103619955774058768294221706063263691779984620418595599401216049914847766016469465432162111078404585361567090174207876253645697021013953699687282347413853759360592347201769306846655689257497061900287376398315753145815646748975795481731331423175654795135444463660632865433173534770034530025020873501641823410688987285174701796189519582831518199317878020966511057277129678870346745559655918812136095309674196019723993572121492849668600384446052621677790905337528057315601219057981856337469852691028452622540808715405419286671736912487392660711787516113978779863507657088366254723454239025082817546890420691417050200766585214257798550833198924941050057338773301843467462084436465776847277363583204538568956404860512413047776456122039081315260148366216633234313017155065826206179983365196029010400235010021751039765746916358775107508342914322866962574026116383688932211899308613132583795175430294612020451659566839892197377284322937784385211456482043239431099265434861381071431001991487896542361126750133200481765711841768827716437422367541978297072955485141254027703139337199498083336749055578943823695650154771078269389289811367122182589903321560259800212802477371283247634023945846237537786458733903612146219041250463083798675679390848358459216968686652554964455260255214879431295762423361198884627219063035940331199215853325348409906547912140549802958956776351205667301475545582076065597863717939068282711947406656089479684047033207750987082150419819084003004204794981596916446748810105062853253909097321866774150658103031144338749394582972384284194784380863605255046553360247022739760343607242799351126734357612644142907957861175077042200024697908740710437508710112688384009977389348301003262519130764828892525054468680311830498310064076406508377443511961460519964755416639485618008013391838643023456532845021166127520100812068935175698320286075843649707932908532597721368955250334545297069084280875089611915512873466906223549590822197974337435522738744611281540063240477157269083216856146170728631027957069218889846124029579807271153185283208918282220135043459848018471612081643171712321379351588000608425355223274945164049798641478530396193251555546716872903842819916525149103702085254725566089815049070301365335700271882134666154957891365428216289545765745142857646128984034156050964930630780899627135491537082072989910281500610514915750524757138896711211179732037384779152343972005891222084435702889809592844908809199634751312709579379328658508491121525025552424510962726120851931412370864917519906431856373248217993211580244403170622242480526138867674207959909798667739534155849638172695065517828458636114928935153005481959262246955159008885690102362627643229956535223961785062290148617898625599635987470938105662577470154422651699715934280067199457637502626209439423282246646948797642648345671085397092886982362662849455390205732586305117532400214879823079092054455892509789001394944081649996508162551206812378762763427871995031925657865643373362202997089870548413312681618217390529839800709721443976279291652891178389445730377928638048715876761928829134690201459842139579131453026841599164568689737516830983339464326279183559108054335218503124543518900330761764440511312779267270117091776659178318753092441717495172577180192371499806984048786133926106311886977626350676675941069107503609175431544151077298790007013223006563513535066605280719097504568938647666539713417110612865942198109840603078700331811737209058623443380452998393530366176564411308268681223991864155611021082540122041499188136178285837513921987112800262162222755387042650328136419959161551114818725886401665383827226400897439623043034506615497544208263071620628239872444022096428685586411224714754408643702185575025173644139082277233246940154836447160594131874670114291032949210781709251283000755982340546962014327729859450562545218163419526055251454126745212198365224767760091212924466112781289989204989839060893889296308718906460624997228102873103630963661459222056912391747467037073653880648078381970482903611854350828825492435175645469320632641090600272673388874592691867100711502967873364800359462461720213904308545467627372945501219325679311298391548244714083221376536142573494268675034607037238302182129949853118780835771299316897427500341025199199054066193712778142611726291354610118028535018710748141370976923891616730060541020681860239925043277146964770713658164855052784249605669902282064873081107701763824236187471741955989126647410954064516136699174615580991474912910796442909732882011699174187927172155955398103714266352474778079551464484387136956653670733580891680781000803233182149984912291563421054115434186626465378103095190646258067802429418770656646434993670054565211247906198630201186645132771065765771807402227503431181987435300025645993587217073860462435351852560124208886928348059870334677009747334333424833072733317368617896526258084116589448831241678418036206253695309456228793536007272007188226362480454843265666284517922062389665424831446243046506517980563463054152307017685947078223861341821122058999008282693304794834467798765317454833270416299414143663088007134497280485900996622006011188583577586743388745804704656327546431559802911737163744822462436056916844204577886303332385234760236020324961002792542992723440371396584755645854023190800502379112249816255970471628504337837955452287619603134989064699075629682073368182173197697630970183421056178737661982457338426637020478646411512872015963891688179277717974987646601161659707086773195461704377584231844178383295562742335984713032268538723126401469238843058018735264671583305454161283977746088195858139306565734445238184939045399463361042677823793458515095234812372140213091824204951867415022939213608992148513304246093406771823157221771642124080745586119178095820377829928998952539048349445646822737977689646617668280226952283376956557165177934198836119978563947952567689184417852646649591899695296106548675747772650272639336859294189408494523393403303292683930333324854047348691438931151539570043787720921603201934231343323910014575533503327594516592469255348361920099256947797262461404955573491652566503289590109157347421049795110464329164852719808773755416938952395904110323170798491208370865287563627995307778456090080270372420775161377621424556183418173975925332977432671086053933526352775413415014013605509415128967622917596530564210792214835866633020807315476219820489286860776117501002934241800770239023626528352433055111795887180047654383119697996616884806458998404129961052353073625758047350210050091945349436146183119389221283714182649086552177571133549087135329775684924578378229999611993486494477493580309813088240321107905565834137916589066314230846219848047386805305970404284625502490600687149455906685685713220254419852721345591202710262721737336948522299690292435212737556843606280268178762932951693140989957410969417806201483211131590607109545493649708610041306837495336525548138970390891149871001107470388760090448087583373850081564853105261531359308795067561221412136052904249840361138785907190933275959809580278695482352162189522105467302932437051777835677163275791205059244379689681634666748929336231791856849328276934858660246793105310803504297648733741673721457478035149834500424347053451359639198210499465440484587228331704219287130983375550960809719920142994680466650802646375298154098588847605130455060761684927666302643899408203677259313863466884358345705568539050914739035512664350615970438440545459983521862615682606448082891228561629660929600376743156896127359221010148756975970354219886270044963713375181777440852075196294602626237906410823663859172090088100284008993898114459893837004756302323598130332870530132640888124448325386440639841035512813546708383763142652143095845103840813014158309926362486322536423455517548097231011112210967222209315723005324952911023874877392592988553956911742695296935572957864099395083419239833424435458885628186090066665152799114560922094557270681005710315718688233880676445016247356267065814247881255847857806126473916974861961236750601709604106914691392771187528735574769075571584426040159721176129469773028176918863104676680270369866306457888473185148123815254789716287834805757049278389826401356123066596954069761995513256872827067822701811058772893291957253124437771348085561882466938289496906887863005317444820624515225297758480219477223895053865788478482362935062917817380865012287399081112315574603308877306912373178381794821248125558302781544379367537926296293230817542259135868472542638227825379445063086064096490623683273277820405580807923366539457749121161998143457324130062207382772130964267607800922690669725023083942591768629611916489442163113161550829749778697474459332464833210468345734610410591722334802436885471379103059593079474633103611931910026512704160385596908993695810364073235297410538056921148311347509145494566642692662500140733427604989716352025727495818505965563196070109402084137767194188236601032520234275851558873393396521573261431096771814356656028157601029728152644794532009713204262540477650283198060604295773427113361656141757612879444299840625250386752294536076168699980413621862973972693540552650151869610268744200221371676617954822266026384917077234559178984766153256324883615103887455058592878796396471535936559836082621825509281833400792496450766235621214778571755871738217533778713720312515221999806582842984154562183114047546869852999872192451995360421349616115916751115056396150828025947985695161631735593927763504221616481179608927244373521033378201018792942712384001605654440866157460545203281758523885643823684238084585339345183927926203122074709321786425316651399629023477615221683516443234551245311891886048701203824069989814895102460328075880525637951311859496770280746889669535689728179896414526306465041578803241693948197881188719007974859554853143642921461380192251619267909441852900109088821396120910616789940587942498252401553903217317818036578679990374331860748081864365528038483264467956122368534057999908324820047725651195932408706664771408774705236134817242542325206827170117135791262237167890837873767639250606574450229244856685018296448853896739129578860357164030118139444804524802794861810857011540339362519941378236188570343767960128998480150193182070938250550656055843858972964365216718551492529088612376160562461699741648897981334724051199748822798301648671354727996251640462219635604410578931846351809686632442131067105062196465522432618637971458495532076122298061724737803975930543263615265472679323410697746864945086120996767884633673673307594888755737115748667351654998436711277014525765959302940525110943570695867648936079715078136883501739512235970420845529834994939845640039096973301187798530524801697426782624473668155493924172478969429940704292980237560796203629475207822378497909121068541551527992413531628101232876061970609809297036241840566238087393794978892293423965142444913170566005946381891644864420954814585154917099744003490488170789751755267372448332177669427944448267107359472827271392482641877550376995115923098893970059231020567003698831263070234056173317715357995933529164050516909119985443386141194440061164189143872751940648101376084126427381985683816650970969515612930273571219306122993977570795667326907285583223764761759450919602472354984783515291550746654436954735298480653110705535604464077876628906885728022056681146155354754366053369302959844440353220545114312268703752336005404960627647785421286373003707994436236773899066935166464177409260958432028595606921454696672038764506390441079977294062204537701228309847327413790501000995864793980779552932612589385688914213248850340921979932980286966355319996467539497017078403896493060173319595435189411020542476605293262668020732212724989986186636524344181646573897181027162730586335218423964724260633889765178879650953894183508946986338319400879517203238077427802894868537025961552469239975707549354919693056681448076389216196941813101787602062672649074702090245059720187596927948467182901284727448295754798204526268949911789006439662340208197649926619138232060901273281542790417648802022991412790360011283273286989528253549354455994308084897667377871717677788437486265751046147679511942214698262032615905149056796151787217552433969356991764467504100993129935251221401471329164488772401199939317767545101796694050348047353554020517192028122720845107146770899970575595588790004282401647669149293311948781729704466954782072663397942876050850849499672451214511235959948322792382192002217626497426698288773933177898742317214546862792489346342693400125517985072996586482107418809419479246841801821963870688905398083527326342832632904289611325208720603787077806862024151053887013154183689634277535721469312124741069633463361490158707702182017023647069850005367052877825591873548361098215858305541961307786012663948423141573664068562132853474449324288466306182470926648529413818065615128875481657794399608559266748604240583683063139533329875784242290920837579644979932343691354731456159604277188427136692625803263394246454385540287387646995660734551414185206074813450685396692694714162998588398446395926667827902756890867753601738014068607226501373505722961892265628156075755406370240236722194223450152976415011044312927418723966527390833031925718797482162287167623569194789552112191260576890913171623752279923656591385557563642245417068722928360882902504925406275296620593479187285845814149502197569757728629313605571608135808407568445170868062888653469110017381738831005735505277594376629198924420357230941364048761446529708833095781250514466065308762599142876792846458928936113713659244218398258074444635599363000674869218896746188491943643378581019383242057946646342311010176743782109604431660986027479428955718750012830279575484117401524260900488520505246846810152302960922166124965339558061510199264218869805913488339579178543250715969994449309533686689741520836699337912440722273176620572923141051206266982255404855996335946450440762305092110645479467494405714530333613211292915207663165280564291600053710688530452464569299450952743505843324387030279414544578217287667383225248937071691423584414399030964758189653514456644809355611824655224586565673055343738929597170402244510303428009717079136030832303003731498873872630585895814144697189164438194444193948222108692944624919412898512865520121314929702857288158739320134046385125955443112180533318924120159870968343794564256664418194067276368413103016298835710050739992062867744280243018128822838861867651395984372854064749903711054935594456762427608015795098835088340632040546599365951872250192668364246034651842675335796852721139793129577814717344580484106530184929369879054743738925312800853758202115425890960522163358525103166396485460017715659511419448390874397497802965960556738028639079621534407852192569911243247846941017436707442569456010078032813163926863432275470443070440193745260436553655150051289007772036540839188843080575764055295562771895092046978669872367058810261025048249877373070853447204727546640874549334654795665144612383529244151990742437469761102814476692606377803969040611108863959550969294838653909690119854873955869146138869972173144846842334727121478370244146177496990200494965895370176147417656773134883122248462570977981427417220791970908842556319242621747438205638208458914157984529827725037213554545594776404786341403106849285787876001209703846805945419089461567153463788672338775863626168519705246709020482655834864967750979152262528020330324754105692161061983617637988144941902025045772283621956853527440187052373174619170657511514116704886690502533485443519687308786751828980024855094657103883606221761254597219120318767685318973333540427201832072951112210985111299887027621057085287096829088041373861646552741697685149273492392707061792420793399642327815806321407068726793736931211546055871106078111433211447340261964461942699254424252863064150086012146028318454643012805024744061427499755797015402981159934197565261682483073373045857032759942627503698267355527516913537825093890335865919006086582209491843804316898611486287029458689261114200287687460079834104279149321458018529588898317729166393510731962200338091599072736395865475730159888439159286876844496143621819890822588204621241552542633994305599298938971808912869855764741494867798486145203143397032748050262842782809387497783194254801126076995302535083760487266811650825930553011389573181591936546106324405496428029283710165491992332128757220200045947158565653200033856512677455916627106509465859081515017564575563366454295670752796966065769495781669343435930963987190931619704252209191352779009337474601550254981470204170831085382035905436866817442384192453428553608967836512056174303391507825045499631788677609989642856563754521716599934185015099453233134573044063540046895550889469738575270718496507616248050547127041963396261689598507752956473898322116666029332008397865344587137064981604044608494167670378786830074381616114096399928389816364340185530329121002681879739020275261271550869761596653730923453655334938252917974011973722931249279943747877983478610980703045819586835826419117009548145294219188783456791363244178581781150138343154092090094538262876791903503017758008036356858732449655109450363508145257007253202579329360157338653301259276090208383705878247995756292844455146273976172377055715315017863527568989452054363623629633936511650969483053017719901753141284032388674855003192756563394021867644751734395569003659005618710525910074112592437741732376079994451423261300761810768305713186893324265861911895804206155493110933557417952900560265521780823809269399054662789756843913982401299654431663454311490095740886423814473016691512813279159427640808310732567168811138912798218938120304678093177107906215293455272655450228146211266513241995256033248773386836423551576269716583858243796881041065897946020868166336652525689365621117567301957102675590116999924773325468787209727525958636338459101663307495546740563438439124456999049420649206825803182585803092549916687800035806440484028299621879387719859187044000605483498860352373639695032257422325416485104454812493426142397750780425842802532760034260903742635564277913823918007918536952900842810977216999301742267807804964084966444061609625070605429374633314959731225052102680435783820541241919692196606999981715999121180811878324619316705755029830158531166942766005162744088294034993182962615933301253333384553335418752612560018574042737533202261052740320508940674105127818438226007384002825945132305953038915915809734154397732947788587694300041227994125651432330903907401348815436422574981467164274152881227360429338561244454422233728462535355326092318330792623826222662025123745034618940136075992049763139154939193685194421434033734325942144595436830572506667976442522959170456433355686233392992146953377046603473668365011908389275917464540262408922379719962737016515750208085016061138643466866138935866828648582768453968216121673773841167920695952682046356534840207528999055446723876910489464021611386920558836057797598445935140858383185787162795781146437848213189047011234940908653978707825267039200889763587209205006213415557854665820713413223831881132648129155268718982799568236942627199388222733352893560465552815445273636143160696850201808790532131498047517903202805124892786929084239019817682218711642568675807592236483906825459860994993694127235409140728990672544864910325341326385699882456167568452108913054626443480381440363117412351212722648818271249840339216437309041682627517594080574369132455691732295343351353395659365855768051145217120099054493517180406956544856832204133692364938010965353709092389769740647241510843671792883206692737955605150375733953102075243775205245401982220784971174440754761404278039592676464640534118038157017838550903675934997146756978506012792476803787155594830362607121739597206619384090756575423496224627361962785096946073360571789507061610131893759446178915563880964681559697488025412462035379046864788443640308910455076931255522211242619260220828902369670346880359108019292060291416786332444844139088492051895016113153992924721030991502918342813398032487048984769971179117561505432032057239166418998877136643726271463026392795837730394879137730870975826301715668609683485432920875624778599990289904469060259908185868728316201680312530242545102191510401728680212669121277216371169573297774117508318421383098417646258986195965935758079486261336356259350213310822308432154552851884191907090125833943915693210730006851456777993231936763682995375056464811390288992290985504068740820582867674150101458602728537007246155336406683186447158822791169199078157692176833706249493119421694435280954444916335551589837379508509426786561849565678373827622036432646708503406765280094007932378921986251147840511272857319782199539566364470163432006011343666422685553894642374593994524421982596555063987116403478580354805935215178747940669277718226525684691644677478539963583853370911479845171568282763383680629453646973575593388644699754655255148873070514753437885691715225536116475018962370761701845990674738440136457232620501289494419505931663823059429631217218461223256106189317912595458408039718576846094750091012603270267318571943925412503304092333007305450384964017507796837677707291724657809455971294399835589809457218335847445125646026005514683728526705035996825080907371589609480863968271111881291844021163038626179909630025509283669545012291962292964814412612908006797992278681040856163735638106846456058860555795253325814575251102302638951977343480118929303663822499766455858394017408103151956142816986004052914511112356768998640877804681201514842180062015302579735317382905673729530733724741413573256196502138136832084595338852324744207176780322526931777721859246449233275131736150191548556134926309113875157108463090540254408201578251078626250569082631844209225493927156729689983759387050450984283661900106397502736930791233702662864204724233394339477899472458354852503511166272974686715577158326000453019638146912289836087427252502110604294515965231335780416119657415505446190230942304163787706111768933408766133290012031948894879013261042245900724502366587942175849719236140790708811822030916661902348070404440807395355323948200152862820157423756559564118220323483536890337789745014080132100795791543131450973865742134664628913306319573738265344093795638723339266231121669235109534265993130746189292722797084121583621922605934125351221531015004179724128728663063146882560790967897198776060777130208864535508915446840645346075025365334450859439667865507107392815987176562301037486521159362458345999714692999303048512224012750994890957503011163032379399612813721292291029913952606853126833259249242002308536704811560125661718858234146020042812678679943481170737131270254878085468393089136574466980413029473155176295047413296336956694290822913310390826888238118427884875868790890708499671362344744049399227755014137443190244377395037866571954073182139423399391199238952362144945869093895390287095925374196872770268838251082979358741085654315642587438614800871327997454527754961676871843888833416950486539680120657252284616330720356165869721841570645561729814711982260785293379643202943602582484909175986544180335604318569360558438218659307628579031814187864721455895484916249681926951415849936564720618907691649843247233204086788548060449503101382507214678281427672483897147812161140971193869033290954015176177720679328406322007394402920861192091098754758593703392961318423292000784994323528427877985989977722521508292874165145665443093385154398584284380061689572894180595700228445676126564993039828531304876465388217176507882879787178219309668081150964860028815678256012415190902451499563490768156181162522460073743865509574287240070649618391345193896303686762316288843862574959169073054377966897698442700861943260065881851211684248670208468849792643425176783152663148182366787897432326048373298724884679449638943184660998849908035193461957514254380353419382037647152363098102208737266018805494676439973117171322107139081661553798432443044074895829652190595684955801363586823442284368664725042593331713483823230602385254269534234919304838235016181831983097283816474651128378687562690504211860695568022960090914588119663162287897078056370897625634194589020727332447299981702370146526901032641473097635928525465228296100320769444137502267048975505207674321887346789488495602621959985726659686226562953963410061617789039966519684650595450415175469704080526942239955221903182492830660758818646297973494214824494937420552623422737211403612956964892212557716511075108824514419956416577260822920101129565930105898355715532006258857192198539642269300457179094465972436263110094173082689544638722177645054800153033724164311102982158724824126352609022768657818210991178598403269693934599893123686240824663018320170027891167854278263053453068135390726787623364305816303849039143680461720135900364426549056965934070201235036126237759137001168431273704156201893530796638007462658137173040332598935917028111222698854962326811056457657552976549965929348091263750860532792633359353830481558832796534141480520699611928240515313830636997531709909029743374622109135943184861762634834960170412244488501506603787595033743215435887512603856497421795238272637792848340212410962728382402806439523246964205752057430289634757873965904274771825365876981035001252363600291432016096139856964064658509669646244672254043837546537906947768131280456540071992587906581524344623061282609582792162972466225006633409180957204778025445950804072069327896978752026231239569071263163704561995645037164690950495077134789604841159158246756288443081986215798276620084038727553705959584209182279837289707842209544970454773016772001978213518905631049473664030738466797850908943665355651452615349998772094063205449199085516939838200109309856915653048395694320108292397863759440595365499654111576652295808498310319648391738098344466882437172247841566163003921783288982318030172257986574527290409003600365485178775822792817178469605189092190162760084125568846552448868181586552431845079384613358869376981866735596767550378673273794342239991554784724660195620629493642834462652291462175802495984901572927650061723759758623144387704452937779773973438525102502897524940045597371057893912101349942925356180281629911232471392106603654900675915771751638673034885740190322031401828620780806667039548118911440440602005053037747812629696226731007377294622921609187397735446076757734308191381664952163424351347884112538302602269258958837170077742464598002574391221934524055807070488507353517417641498966811856841224780311277720521203619776215077293904258033147199348427312667573603158977185022688993984976784116403074856789749374422875518688982053245359852530537797095406325994961794601276330022361871680526873591026821329865325844551659794969000255882007876026390833111882038358092035617352277256624210561731426933086061232006863362677837687174666637103158422207101967904681521133491837440078253928875224759655494350945533379065681796093767817820665429732145979930319739344132529376691409067199886582096685158995445716178098807901526001826932245958680915701689186803117735450674300601795662433881839655625831315003995881345325481025275316294204230151128281722683696630071488950635699091465212462851814742000599232597505549783424235349017639116456874586976959884763510717792768611563922654850341125756716799579729559524794718224389003387407856829065524170727088659720739431945435813995745663152561465440477158178999504706252835399743289070264058722168152817704556782919776074080971723673418130953374801099500754472239081757948048849966965354852051537526677324669515407201042512706924204145196682892992463366826772225226716291201540062843849763649570519037499310380915786645404799531947093133733690909427066872405206333805128899646753605681051128049850342908128357147992446563731721389667394158319082510212272651806923413920619143581041325138467258326078372515971862292846142939070720707712715756352783940978602705911255850022438755676748798434283738419244102394823359948138218089234069270983840102052441757844878832691321000271508003860194503067251507097317029820411169740519839095171055255455380159539974230026554938407448803410711870582402298575396537312763790275868209388386214718480630226564584974904391014488907021695768525414209423194982507067118784711021875005953170319912654413666466578245211252251473208024576387514665108469575879636701264033593185299321435591588142596907189553225307448463546177409985231887465208918159255806018801264887853213955640291956874526485463172196455149172684346087993962505005042981554753264390998360920575840275461952499821398884144158423325019209320060879210183827523887872730681896552266842857869909492410569671125884982287251244515610955402078179432336530626604540850331198372868920991695282304376591307415577565387319651884239456620078384899505668107849536465364081992276155727961391978843390317857106624263629414707404007080638449462667096495061982986391084356007931373869074416437379191058321307190807948862415605125037516666488659349612442677832221433785282632250875763875899463467344680304387369253360678561688534731571066741386854124799848843896221618092692750612553555905959388936943522493028098339341771346887198181390388814144497925860959199747370759476036438906614760581502942548222381566499801203642716475722873163325594361092273960792359099660892809393507453253102690292086977964827033923115535710468146700344010957654781922749963392249025293615491371648100098173731906199319807490689837926649277013531705511780481287478658159893946635713509643803717200932817980791102352643686450852994599673190461261144363029789805800629880255870350871379269382481889985524446630592568703377681009308787972169055000392349493886218684811269574933073812657929349764626310318736988663062878426815241339009821716328816260679295511594695246251281977247154147628239144245366080757694399882458007365405876857190158466939015914677177048272093619060872637308539433992682705331174530129147715627087389534290433347264058125755396971883960512432051938457080099793565732026955775521653862176658380161792221919173737164564972126828451139362769674834514593543702118897300699740321630621754615364452515410146051273289082550892761441519643130752358902075712540152024771301631874613218637961224001600585776057036552768933756251231291192699157995137539841167806244353208907575864250430035937981089562396549546857962630853649797041591376275340640359082350146193452177532246498709850155318300926629361071529896504880486744912404359824931430548113257651974200572096245851974037234040781539135969234420630203116952798473727561548300855379919200340507191441390302034550119877611538883961915628442169921604913518735564240748963485071525963541712641300237852507296449259610869194962087304810934983172577952448336778524424101182195670593481219700912932250357628880911982680574840138903857221647622967814057749578123711929388666304411975115881528980954791415744623904596526455240139239157561594268597970584366220709213209630533602082735189146753339822224061947681334827657237499684119157275440707908286694924107050731556159244200733484926428794781532208950377067182078741320272167878229269233916041880961556447497486922194866060727926226613205807069046794109956576371526582398893516714629200531405327584892627122791235686176411714426653204050841867491900325293432408326061835473190311092071204366145466730095570509415543586167277120894836808445124106143216566100386253817669945305604356300680904266490396854645350127300266719981113329358216565703237986635816269749485598078857171414309309628528327273302489106814442003890092466140004636079726012550135134341543382812514896417802118438500516478601286092005356644757850085516219755497337629199502193249338684789588195290582505736450167147725648381205733795548356605407860197687111820589255704690258388943415873872015687609035913874215965425202934291413705509791505355049362077751943635315981299874415913767759991835603717935832540880075075074394873698357731531874436960167308738566870448454574333826410607491880316806017530846578312519403238829198383914754367650748713272172220633188805854597228346810872070376160640859736906559318484972842783248986468976074431865902717166323805011409324265822970461922504355087244327227575139769018184307108661815206172717085246852685001056462603544857971127944740775622038215001711007242080108276344455208213324041364748676370793266846818660071986275941930568449819149326408284993270594077605440287520761411529026110061587099295373646258103676070516523484102269548096741172026290327704874777631370920070952762179157621337966589927911783483541486119082717400791349072927280107067483510346020557792986632733331361010185312380018229652512189871944507919348706819660302577219355481718561353812428389642790192573828794492512175730267084831767097871081575151499242829419256706758953760168065002907231655655405234014377356156414130586300847756378342608543665278163808317256715425666921294581865437323654634313662840498624092035729538020137239390309710029634159157026188843434609686317000065630724831306563209591336033368942106295260005029682194501877211437996083538082828862218249610801905232300422984956241718977878237286951322583752960685084389792899377319641009940397459090266829420593535457663093017539093379919033895259216948846131574823361321591598620247756049100038855938551781580785778111370702316775688004177571484327990736581871006153793872080340952743632076619305907588357412702532246421359782914974121196353720813690009493525261393389747775959627737165820661208441175478170038452932055016675384271618498969901159265065519929427867596257250314031872362857240587871709477877722450351501008670647593726717884025572019540710217543597052831619539274943189205456928173371624829915525706063725902436433381186833704346938108692157644331135487380775166553275620427894082341490883060230901502261071287399204407410286135835119298677249852524414384834199322454061847058312651468817870103347827811768095829555748180621124472119193192969671399509196836102317203630614047608113930726243884260255750362761476904269618340029009345783219587664229967081216218478861804645056097582049239030138209673308057886666587086772536231075283819387651566352122531874281167847057068730099221716903624323644841132197356917662162854364988763339218747399595215181925438353369671268372158697130985126233962030007191811942317708314319715461016341699220254545683613844766664082207292659772682199587145628572844958127040078415085282941300551879419391437110288626979922847831676153647231950992855310549191545149917393290040188939898836815079071945126078196206347664224716822393312290988066837405038058103191542479673168321694429753535858249359230802982620855617732902495472328762261496343013913049510751875596829542446016801551012489964373736681336565011431014645365922087862692627990585401375986244609784315998286625887371965985812405774116343156774446821708218349732817618114516372014827277858396127449452120761347282149389339027604805135137710454993685790041108160180272931315814068091700469681814068560363520010189206763030352068146372379156955802584191287728943114991100094183673136183560998771756782525944266904881111067119207043926883663397421883421797705796849723590973888333173687752752739879523313311002394375607226870619489257071890366231851477627735341735712262696664306852521108196927034306613016190812264093788537289792852367352666306828288191186169557325183700762216209119883914975134848125222874857865256155355134196277130314904643202492158727680175385960980960761378024513185453799512441369526364072935754309359790537887880487527563013917761392011372931138037573297788170154094571202223754430158477346317112363366414156028242730253995225624290047460204617492672972988286580878942845751835844992412898557560984260871350398732860060211656107974024855707983655810431153253572271922941857795511294449841852873707376214939769818286491629482888685502853692770741630252365248765613051367544976685839255447521564056014870403641035155641970556997340669662090733570309865619146600024301571929072453921889827559656044792584794210853283284866294904509629340149943073563557177738535121942412206958811498536958309006568146967444151916082760421536405549607242043734763426612045925959852087916119365533631611447818600764567629333082645747278091796765992493793879830036868065489985958182301264540970320989984546530617045462109229075929055483000261396553690862869707809850453096585786801438799397591477353489249973685693139333509939000443424693969968061943287925436492293733387987605146444312706910133773162754958646050200203986440162232990813592452651443542780031184912918487367466126515487160448919180780340618807462183540121112488273759051155401982321506076425509262523017761138658847057465466520277876678856609101136760080386717858847391540465654504543701437202257725846802479249554703616253433729570732825929394272099204503273657835962600020143708469825625167127978336026823762369385499625290214615092810780960946150918685650460689699599940869583460429293684364973178983646004091607602450016670413562051533212285448775965228278203244426093617944975840804138400762059479517065694666714525969788887047356558528821492435076070340922048340458435578880681106525700052450824896103691851336919619776725417019299333210942278257647735107631564499530901669977925030054506625661669138267586636052118157705137649876278515329560824020027155038232516215261289027095874109304975616085053409294009193605007711323674923104443222866801418291736232759761875940067364877064670521149830244958315175955186197929820695826696196406672839420819541368634137014281168562065003813028850719092292322892017911766491990120328819743824668689865774504660617564209797383720008831496960985600249430146400154506883353382459238586403737972587105618710934787761862202606145211400573584303060372569528949913955700874113735884563283423976087042970539282296360217907884315140184384234486222205258346781818373295385033170106849241624072640082315605237208314219801211263558104568079662171383423357658373887003904985766139916259704595852186870398564073146287226817193838162766974523239125241418007703284970237683658281907605505263812799349101521149215951382385879507013719701802120917362485627055997204860549262602375450343070628666488292321995059746310464402781904695866286329897418595313745105827811204795084290528542023584679475107703825486861081455190506618608411978967625466583504574047786710764311883893076340805979956611073401499672238619992219271420374401314921311245042043074179563289982989112207050792869258944183499819402907786022527539825528459302065097651788331361549384517388726170839193227999290638675900917563538435554595954181844759496734174722923926119163657071996799930844772549725362578421094861528494399797974571922237926860640022400931554172961446996290518431508632863528028190189890702650148709312373902756081916149728751718873596887086906890014961024465012480374259121901778226841896898264474545100076262654631690459495151941940680746369290088784773734647270223862134948029419424288910283219487497872712829716967707417277747552239331111180613051218698516595736002914065928265985811747860627888215347066883659750437267465795898777355894702610495966924298170627015782559159386262008815577826277725133987708997849472639660631524629558250668170934552428773845160403750857978775247128286228948450956288613814885201453710436794138482209754945836222924717836798954245433298384560651360700670793909243643500392862461680888636367228926854706357828940369180403367269380956589242261305754557707396315270131400378455223332459717867449870361803891962338994688713947265540924215724632457790418434309009323056640551939338184889802371753044019809038323678129898037168851021104106108417868574981148430058784241231633122995259694808507270920495816487289193994023921930340007921277566132931111748589530746810598167074261633277110861000142377381945192012501659600445397444708692416954400711972824542763912132516822760685210238142634925589103392316426274254705717740260694489004407038031206957845184398990708454621307805744767117043427467746961138089204831217491032691077058083587795377012731549597185442678298811899282780148032559524626035980841701938377744028525503788059445652188122404249385252372738909630005254344090559324090568897765954096571070196681998039938973425000677598279938818695545078102151414072463146206322144648722359311886850516327023696251988006804847911804414630762869243466108629007357161982210451650102338213710796848798341418885294996399616818044764354882089115710495155310995039954635168767524122380726657290263140971360923126741382048313444301268722156959666373875339123766567123744302446176941568174088731342750128614566286726823032069999012315052772788425618121956346008712507954153337283462470701935421330403839688562975632848884279911353920599280355976871491806934599194400604519480225633837726004244298576976502839689081076023136668698781521282988784140530544094468913796402995221984761077800588504503166638708564495490736303154326401918375487192036679323137933162057909138250596532708221308532741145646029339286188221421601474904568957270287834942900231799018665049848132461957765433475617737271340991156644027563136691646545485652234193202323180781162156080722453975663370046193610951762364153819991402318188173289092382108829551156448383215725039672552661397743367247399231154884884211750581726976943800636084257560767637008804867552190352070278588945192217041771700986584041042423202071887777201753847715613841708845436249611599783608953627796813515432486650551198395947091727931632225237994935470650721507208145948520574240191285236256256631063029684756367104127510722839268846970567329993756414821089971191967712907925411468765873731490987819240575595887404007319089997602647364342593306065109394691104745817064007694137948935514742221281270852673630779899480879122041287674283232441406088266905556755464957222526941008414965357559214110258514422371076156705431761798915875232001544468217919424344107590359374543493929216053277722311256342716254625236465935354952591821739123767001335077031629564358144974431328782377077673144520453544383833617537833088243190867797363439976471637376386640615954327780837449010409129155642349729571559307981206276614744634213025077561998761394377108465761303968819634166359840904747830366846721290015564099753011869562302014013173694716355457437876200438705341145332485037571299682291765532082418506602601631388187272514327153981963726596311474335175294839329058914521072473805812624029910721762026409995045597151695157997239447093617869565524867506350765769971892569257255076463772923635913907164892647939047771076953746553532615235273176844974033045762193734967321590037406144461503208619930720514483562076195031876972199022253271905008074414341305006105144816586566710193810942701880842395529993821798751831593090904079152398146107518877935575931097661310433120544393393864112143059248165189826347827255346816296465638153374673430791085014190650653512453131009997124693257446419581680263923304520582634677969478229995837770007861505935784713026057484432923444210289064784335827539674909388135645685834841008461617563556544533314319082111069099563054670256914543678249578824301072216188812227047551838506222751019968077128714649611807291438456099293956251509253160683381834487535782645944384697245339613327122501420747079484884068441803023323563148760536337162149688568474692979218923871598216695640647528969975891058160667469149458746726310328121473595999705371515697709869817745620237544541792479690748468182654776858543052717294755907107597289042432628219629018027466864202487562333910144594040364055785619851872742717101492136032183940591666144949811749092834575606880828620878736763068017100206048770491882068827045375754312247936820613392715766614519923710052997893334159415816304482436473146570083176958527570775326962509831783553836005677685371221274968082463550226720531469979079568978758214802039146779882565820387320435744415373750180303464696762880625662626908604640583450099947740003792912250565312188026591509111838202307159587161662607185753801839046525847648053618384807365970206705687902243479089928718257540267768594527268026357625988692723990205489702493423467507692832161500023723007589824316067958519990928777488455095319312979803115544671860139504539644990519354867093691023616827705172747128006001686648039418294091306553784456581667440138521168546173523455211549801301729728512559162548329318786329794144394444477221297469294646745176698274629177234533789779225260063735428165814109780854540291423717573957810727163724688313116193079710130973281817171298022620393985497229511471632721853732972622339173821721651138049642340059780001796785307112866563691811802812576460935971066092927858517357488025371201525643766281479194233673008178453146578946603184068257220204850098222390640297312425009327008629939178161914029269714940672045519219471459379769412086138107642988550616905652872096153404787702306817732866735096245568296501725464394208262672699645760163075403549445808806869654462351662296208933800232377557146670296101820030793080156803499118560119988174202218959219683625400486241514515635709569523018319068912180283239931834651932984448681997187063145493489332196139656679254986353851026479308853688929075545992641406741617713413159734317925078518265837510309494818009675210250435609575927291459856056004914296040475472954120449339064920022748844292155376358553320440225625786895548626642596359045221869485169498873040179850793491531815500990071723612523841513594817387675439301202864086413044040570993241066749505430081865331233603583733894720757369721091624084466979928206021037809518738727689997209003317863080251301777063692851513252397156316279310794597954915082879913869350712278978236098957712857980062693749029665660097671460104448002910412248506397825153593342549111498613872258799253701143447221385948517441708773537334507906717299394917656626605706846953848936168982607066899711433382398184336299156786039092107713525281292520224198718542831719222716821105772608065953512148431151365669435979076754002074950275822025392378949628962760935797524190203035900873804855440799777586726465121252890293618263007588372001594715855568680043085625905562347272766085944681058078464424800613559541923829270227435833629545650077294934424221477188207882278376162509853846391854467669978688441725053453828698895683939525258161054734523234152423280420011283042304724549462250838729591001482456452288507642771420868501152360634107164287176904560752913578663767337356292873699230341372938562003956330312326521500907011641812782693987523892004460341819994538944696792211887511193745402781118234406599081589040439438150187481406128629092145771436034105659811048246865035422271372168687381026228879200212401273159824837050261805531825272602495306966594507761760703569800063546214638655354161930063210751654885198855791643575796210940278901970548962369477645772222174617175563184090565940383548575296352646488264499786866307866940387308864570348364834870361775381683615927894505845145004755154280619751260174449591423090035838716436087219574546031935384099311822801209375980009284031580673454576825558097063337044487124583901086846597384764683068552207066753897880943653622081492552517559756881596683431809747325801458628333940673250101532962608955587524111299077641627096070656949808950831858109953002772410118404474477582851548934173060012420165084976502447069880613013935538645057538232980065552195153548086540310355898594394785511951224378825393558024375251768721202351143999686558535168008356426302892851644714399279102740426099177845844588824608886267989439330282186523491710429064788734374078871919106240728764914163677345623451656976034912575898110025724960641765770057052524646658211385422280760225162718698372404434583860118423583552251170505467113267804051396912910238482871267991981040011496157822014499572902461051631917342401573872064133746473105537041717910415511331491700009117059587448258791652899129754072754002614733031419985160546645046849088712167631191072202026780270511366214058637870767199196232606507647752617956989062735895045837576972043205765455922805684212059710088815691903244023663114591254989401950618207525688459860644462151532676237504067774034883779037846134379164788336500017082810544926200521895098364287655942716945255193147914033739914097304028258035970068969964823425729226956907054086530473872457492889647627382507812718147679896085894637971232156397990496177530257263649615010944145697620675364078976417184726361370521290530093779090049295359506944724011798386647437998355970083529556937938563696190130010086847378138169168538057667662035513545740465842407251809946098018279197675787483129918284869761344335745074852805405371922010211160510016567558791524261557307610934021418345669824355978290259231228581340071712838777872065108020755110428308592747949614266922173356517043006498003173367208427439491653515614594707383169386588906550578786763494510397428777538910775890302647678860953579275933298158651231889221523550210783419435597328378903097676190062136950265893232183687723079034686958023903977846124195986467595756741133157922450943007176539019919875824331948057052756085784762621313246323550485104519166900183447660590997877075138331345896955526055169030087906489584453597458697010283938169666235212708707359865771639180081078716488780766634791914111112743709146399975462630464661234418503717306986508793950649197694426897278537504155277123440516037468066151360674524164170694348893163201964293625266930673639032998243744464672645787194860066975201265594217364864968432371591873733115782824713296493997858507132211537166216487761647187881019104859207476500745065310923900859170978128292114682598266457144106640047395230258679621047288677290101422232752430797534724993669258925467846576109204948432483994209559847318293120395353817178477109666249623495056690697575006535989628711049708341315971770245875396799327097799145963058203575786442039210806603474002221229151695941537719451891535849874357960766495734912030147004780582044636042746525020421101747063734954934595376261497832547560888957932311647292336359628120943433294438975032242056722298714313884329469355338276517735611368714892064485612372062512069473052901989764460574341654929951727028615380513780244918542739614449487765045621271584454983739224754085089576603887030815475970771848438233912818060429863722317899218980757453144152500786766072725967931593097841464470463872094061671775955996977498440620479776173042080226601809294877555882101992464521402658174888830843953727197338631960351564049171319063870377023944829343586368488693273005190267264622497981456559436503289355241668050906992671978220455101347038201745863032083382653044420135112079594808480562309747547534551993950346259192923082708684441551728548112812686893058437362738597925729832672526485143268918413620892786101285308432292214029971693401937267467822029061235919478898152885437047572842356430540733706322101120975681482888907254109613018835121847716585748201989564373811179262673023294518920471870906666933779586600749177998904391173814864197640836432123594255156342103240061154194091145826146254919878687562120246572058191930580047623647193350656558328037006156607274047024030845779631194788885560970230584186340513001798683207947141918102236938729689061474952551047321660403849269749685168813549112376078068921279044048281976720969987742763252510284130149405220683125862954837170527172220296721333072754772566784923737233147877247639419579431840743526835434263665760721312072366780695319785756324566760308105050362870188755935556277144289262644877667394973906108433699034301337846327676485490438427222122098555450349896413944686291668620741109183761381114326740652663526732689448431859526664444150765191745637040339650875197315313601150548651029874561141934542784535360636238789834348402141767846147730194262026567184525463349214414135999066206447706551775017500050425872101907666008549153151722716426778353628945513681535863227179873485174779958294651928518061765910873881840895280152453209343911930780925510756711202572889307511781636732846703326907927997361046276852562674164303794762022331424102592041845174470188256034596117068639250401743643404506841638089882184691156567141566239663637092874700575829584767150556177456091844320245218845569115389579609097259484320947423259468384579338060502420571122129672548595302850243565736080775513160047336007718948771879261696703126809665619932899710066980604893461597336149581950269425706790734798744243653083989743091617033076432855771092875290362841327914239613777499761264577722887486473056303116250080192304532980099509103065155869730024806302494524900972418758770020724648769366795784888927078741227863824304891456593320112703251911021914457952409606665014848380422012386795423510670400057007577276967985690168035766275117985151055915111314043259540288720346258393159552349875504510325388113400536574375722936073431463719151491889943400203105888418629346113319041436921002434957485151419199519929363534337977222576728073343692403983799421535636388040723164543671389556759382023688823101927160750827211572734365475094366626459799244254616330860474851372601622522355251498777695956795536426505694642870460655775173206824555929909447202930740909538428758313227602512332015728426077066134273159396228111693802585764810820067156648179796786947145336031289876439581175080837558371554517993413298581264915859854187012573811634769321300869286324976797913255757748135303660424553993713198427705453122594877926391759923533285396263676969998294610800664695942478569230719147019094403724339511125128147856086461914648940211111009799470987111245938169084167531312845153803213762170562274543929252680160253363375845562914190630237718158513813008467684388474868666245223079731108215711808793581382068942275362060881061972633737046285623059847733887401888158190800723058005377979322282338289309235581079646652018299431051528987098086590470471836671395339924580085470695532096223195142191323632670968136011232128015793702534928324066859089853810507180637096121524569575422403117145455051536731793322763287477205991624162626688157360073314956842236472385005972184214865115770502956462651772841570700197250214950144587819418070562590518247611525665952935031791584677793307557224137402634078482081432915299847516383287597006654507528574068946825354431579667565208634027496444092680337042901488573887591042764903929747260392536368121621913095042390741113639630621226799206127254726093701758401774173793493556450281702420734034663845717210301872250654927732778223380860838336111854929941190186655337030311742966633886527866073446278188642665090502360230318319640390744782373104137610063385774954413561575112914548007733355933673737866638523663710315044169062681807911889094535909533611438215924568664500285107210920104656239328470879188309345861140226081251016416153340626231456844678396403670143537216208619617492185330498484862939646658582272402799875130578156740331564635659132166508355603789390553742019474837246364341428133914137987630129340481641995660976959826234809127355071930540753849364930507040099828255683697631464932879705893039705771966914098138972988120895280541433738043344248717238840145506912526984925828627668972574070075839778360762769475334254048131518116009418009704861017275780168952350527363242421883377647458384912903567934482508963941265423216738652547818455152583534966046013928994389880616914461035615850579434594396263882989096179149272812563196200540712394642459903656600701749110491925753377280434465383419813694281345497731225346372641315783753155037872787289935385849770876159371428675707679921755695765895022795994617247800340626298300249516167719311364884448932315987716485475855107254536402048306059660515297182770335461970539932384288286008698275044268697074070393906416691343993677419827364043784009435332833544249245911493086118478823428578136217863255861762193510608082083832110175923335417382755795204257670268555637526072327526096291287562380875670598317940333950575223528241894915626612172374292931781672305889167244722250562315530238441026014377056895824037511632753496755558418002627861146449227361097643095650923709019993476365358457352299889998148425866224110499585370713266079293996022347624931416672950477403353567742578675074920226762201450143181673179772237773861266710656054296848401138919146485204900409312840914110823235820538644725548036316783068031574720013318718666631068048262450356565199851026644697974021524954966163199658659735175956810911183971784309042839114865863545493480350715653347126658586313784469728702934769755319377228909862043811049545065957831175847025662377248258132999290786064052147697808912949677544625320314625195129731544425478814628443532891940436250955751155296022374395710895516221060952392550887158492035766793472456757481268549974129246628149706372099830091876181205254951416661529288083783972850559886076847841374190231608102290132238906339304574895213924323769654217005796338520187350632430090750656183853150307368352850516306568518077727307812390994139095160352239547868571437425603011131341290549307156336622962887116590963020174452844561518550848805950033589061282664343022792464463342406199257405944258067351150472774465092906384509176100036616297744343538674199550817368673774568785274861929436041283330017528337958731481229153144107464509478823808700841155056864520583446396424096819898949484925786007112136974497602601135463072010491005805996719775445578835978623687886446771615771938336140366956213185610332342131368879902691472325343217137885412275480350780425168384311936588501747711776007934367331630333285259955690311908899203754072212257981499909488503753439586543165404421398066326638891587599038013506953947060450277577146328998906268725961330002205169217469837815302542366160270672061738167513950187234421398438877540229894259485959420270290418519385513882208525556022133852294530686076265182420051414628364693847954651753736314725602027646204798719950463505250020732909114989568778616481256359853758616030323844180091031927843448254204759851555760199441565099898290653314833179902342648469956744150070736905273237659371934170084191955367086745034733341644952508488400565503998717557161669025732733189467659562551756361110893935865389354304943271489487525597808338457903022424455305631826199382149331677312790768725987750877806649485863385868197257718850431180281677783779872472727013583902949920650020046770469256180875156574851787959310002575563284198953281588830993768251116462094483973642721256631431412899258720030208416259031331681884077353547239071505956244589453941691523238520104926971475542704831921999821462468636746627086463328829157435775079825273282443478068898434762547519817087884217312323362299223785148122790571652979311799931503779889760162496438507259341675565839153717685250216939499936769646276538280246653498548830644426293433093144779745113913614826609226349900633809009561200816647948414807164970868740540621900057673090546809812859198096714460324593947815942552790568971857006106387746841351901276778111828649690818844179564324154869608831709622709951475696171585175701683937056540427892938882897247816284752982413584510436582216917949851515068876982190103006866810917320580259820804981074189038051175389275441216398307130568097125244525470416278865629349215425179621541597432084157761743809438627208260949072582823442033619174303350555688926554106652626132915015657538291659564800144822815931309806903422057366685072943849379198992422805315452607525930222763210987418967725493241441946404566513593255533093442534707597977318391370630296580332870496132472514207665637334968954299481595429744899392092862022920230065724859041765767268069468378233576718171444284317016094319586376514484390150042699848305647706481400254946809200064566762328424130557143536410814664787683594537487220065196935411429255422576494781703240755386870685712925894718364948121089907151613293800760790276239408233071581949215445390387660126485075907955111279906790114811482411939540166005656400052274066622590079332978067200323118912470106768687147480140798037262098505256711692492346557326789033525254250473270690910791082924424256406118364561383916863176625968981172177930787600537041746187389073662021427236515243790259595920793439804903119601090717454534488199585476222726079463460545155698398939561632162455864533949756754708179573693796152728571732381853313348132432997690332703088012590593244456275124921861866554911052120165839685620064157555372927950729678164397720124925903913944612811843430041285367013328139227028798522926799803127895528813953080358970052105148053536248774444613506675177900011177718401242734553217007232717485340284089506059665026212848548813907337124770529132986275056378842156250592806851749409673859443615632771854506197395090421432128127472304836014207522943487774348403924131022179399112912639124234837916741734653484654904116001245754429951328561093069717079438977804469174163896676095047208061327936840802147995314482177001364293261222405014206093700245100724904400809747796943533639484991219520462700510408925136135992147482028547328994909147948352492070801916132915474778802162296172835830996070527770908149660742483863852152546848555324294797417580993228010489689464412733148335416288718952480647314726544169138999597061962779295832843964775707966129810966852064809810497681220466166608585930765137890716185483358230316344294825467264599912965267614242460528524810473508457394307167726022877483968220407534423855382774272578913740593104538973667279558671025541102077476719128589650663926905117391890178088401997830133779157761878336597328115349922670112330394960494848079528427379293792620990624877549096407989669602549031727538842565738349329770447100138980402783382676538233126639016260355161527651974278942456620947959948842681747834040881238941947089607987886226935672412703420604309420383935523754873405623167613067161073026595922458292477707437937406801764902160060897104729408339343043938928445928781873874576041729526312685278191467854531026417959492631131499508487888599678603517198551766173244026488671407187639964727676648933236647181049457471019434451737055267203084518385436317922646005559377901332522325080107155497476546070744078255419038928571121564903112466855966176583032770981505218358927599180168737503730818538227193742468394637046128007586187335770045745890547676122084703612070494443007663740820782246384241642486872466218579955675308175405460342678497562935780170269570440282528214885656992072164938998726394756373750192161560188553616450699510987478417499044607249699540861299700271482340486288821956434674122342316717942573533240511258967201166492220278239809447049922643170290125911228820600630446084663875896688429158565704504243617226273857853577459749528494639390487382813297008679488451804458223262008146882367699416686738280233789142968048123287724374678866217335734488483081553663989680608133234737870493027982883078830375758988555208235324825597701813471546367873517361098941237602693423912897177825161751602869869763481382937006694046961154448216206298981287689641184311991326817859691102007689038370527764630921575980266172707689328584413690993819436441802701563981607619333724880553559221854858749156852921488723833481840502021697091112199971661778768659129954204097445073201568492214435027501515775368743202471708651690171382115524998149145385951081869588095033481359313873653406016609491472845351517832904358632705773467716461865330540614965009290499305918807028717848269392825055251693252153157363355466103050200971556104811597985174302733049571729876862237764403801090203256855994211433787840138975425386901597192757947782572205120299715920681970773615744183365357401962862696723267298420192060355320140821222128210831405344748141526357462796475528923367822984197734472250582305462108542066550154689800173145725997485739935228187271466184127011438693532285555382614582547606804658750300530304912323104858996956367789115838380267652419717455308454834957937676890429977911298110308217105712667165595523463678820338335606137915734243355269934486835620632467862664085683020164254575307164031601558346812710577676624269143777016414348252221479964229365823049835535156944772265778990870513282099115035825054935735367132227986881116387803467955559983126709399412055816575042881193763696928614431175849653966144940393458081216011948877939504908553203263396059038438515141707165730898587792963482788244133111402807866499053814359772119247555940219414693366263487344186526058973074803329804355645410923168252135615352218694448469123913025883180898831693387125763158490737337527617138690626933096683148372156550533617534761479450842942610461046125360168950344834139394356707447799123775972679863011890734750007696941640169998324962914258202134083505724820060427157759610507060903632927815181091494456988772508508857557707594488425190081137225175038946981713055774682796369572086816570988828830046111163119985957827203553224840308834869513006542265692046764667340779987351581745434099239474089038590979702696935996970744928278389471726440061467715960337749795267330337689263050704449538030856628399435088907459981431516134843451151128336367146678475006828507917241248966081046453148268696186926987357712558445952413526465373138714525513928261390816534711277419638946978838425581419384757436705596962612142132971703701918537436980481193232511080461551067335261922126531444075352896430095045362380622457673372310210841587302632698095139359874537195644874209251822530032304185766607287990519475862520842267693690007015005564604331566738284497935272974870476236309979445722803236899577064333015345455146747740679840226882039100529469594149149517086399885706091722144876402043377457643534411889027584946603684152644479321424615315229151100879504393244060462397467877727328832686874996268561157766141238340240892467200656170530440244042135368784344343933167964589249108132338017744403630063411380015963924797141860026919408721219965886184129585231975294759665426652853656901570551674884186809138176809495448720543115262790133800162243351376016664688330810780499583982995256506298111009752522964268118156749471421091470018788935790182247656758561205050971485927493074025611098332355843906396797065384178859463614876232263643239890904387988380039576069850682848869782126198514696856336684534191022903961011405832785884944571318427869362252587671307840576152646163048869866253536616887777933293497547039695291203993830458889766205334885165485022284531163937808357198304208590998644619007973832284985718025277197257734838241260896187460263418380465144484996354339752624835105056563671746843524114863521238385683869729212838166708611798416395229544694338839353126299576728150518556203916908733268590876203004157641638447591428161319999895041126166077190600437662809293394965533158569656894483334834980833136572608108918753588488576517352806181846379577728800011048472376443323000960518854346635733960039689228651838182742725698580692359930707898980395108119344735951565329832788946096436307868999162721348512104410841810841956926593460531005628788322628904938415081228756377690192526281840641427857351224798353649004186653874655069029555760818875153523769972142612857099786318120220392542330551394338530783700122025864860806604877487893623984732310939592161313838517537977713316605881058515656050662541746762975675026039831261240669799072803188962828466710828419371775418796512598122315301134444201926157392841196173452646031748692766527888568945280736252488040903214763713461996774026790983706088337732543594025441644206052144942086983208352226673633762945454350640979942784137310173723696988381084951687399050008662912560801695139551806237572069784398710458394865640246462852466342480851988256274183123807786972583997308684322052451497916171829019465529804715501237757424702619450406702820378948227159663559618484350233343751691039524361019532919272389638835149873842936699602247015521601769621681206568115404302754356639299366943783282227279268173325702740618052911150387308527567033443773659034731095903772703741536276679693305977106194954243959663444224612036446695043204219785934652750012350359536104548446769899020004539546157502435467124534298063735544707219872772415285681657991354071159061463075073014135848468809639468056319567021799281334874767515841864754541515996990357148527188652366984729191583230213961504396144914096363355686642817783073853868681619991810951240314697465910133361172807354724949853400029827963501285109925189973002594959677127578096502857744320109797258206724447451581709938188361226150570351026986132280092316984692428099421921619888388059946598519549664167822966019381714071884994836539022062217027280535401880554861464960544204600186456689600571323620143291931409008384013641709117017385801193166059458549530319668894969892082953450416710931837417758364872818296452763193095128187824421053264509122634725784163597864823653385351329297742992780596028377162556817677476097691369671553684007143435713610870168900044284132246975362816019340737012551241735813053665251162409435026582512201143454292190534388891423212661197462381623112687254449975220799149726583622326575365349274959057562264866787151284891403563052134040783879231261415047062418735983362529634871152956883800813941775202365676586785026976090061826473803571093133607352383380904577723524544411945762015425438894591507790804938940137663398517600355234209494894660159949291451410053067334473844315946396997168009379028549304297682549465064092136619413179707182855833369113941041843963979894336747730545336662116399735189711228246412270294833291210254545682872119525498436661068483217897935386816152246446575030461290216225196495248918874708950909682885638794337907076341171330822014140133564426837609469441164798852321895275449318619051935639013783443160513948739062963401970921002325718141497618600216854286877582147505582782009727820095675952741861687096044039405317448097030040869351918295387566103740449373277066010500163852135465236433883413632058422111627007538675559778858989293438419320409987945873886029271034947395210538026927154580921785697599981297365585700405483729947546536544541363666252202227877634826986589690802078569201763544690501553511661124321655646521816866924870804578040360858609851734418889005418497204413907700295708634893049008928510753625339332747367664686858751470965140646629383531782350441077540564641716925753305835810373515462308747916883572507929742123571326619429584492656253687563316019627920116533421908280120754744846897817267160415864417163646824572558581521618648741903277897314059436300639476338740912829137934104274640825717327238036821492128610681054127390472219798161031360324288037163155640343548356071413977105494747135859416838350696872200907858384663144871696915648646115993840798150421966943794846813436764109144304613882455207460552554096599835837816884918829173539636529631347837130974328633714098125960219894230914240396460669952222424372916842373136486894393197289186981472997091921887995643331779278092531288493850054796416126583724444519857617549550581046162387677934285885012108892629761053928415613400557893632053659670902747609833538555722070892079591699333092825421423665079052643392856982953593001370379264536134708288665412479825647469430147603450317409271369770648100868078185743330416304929975633846426473652883289237676939129444918862927337228764655453881338731522539235903396371276053325063347721405847649683596835724505321297675922350953991000038871052894140624074703091564145260936642104366114868140712783714756918506008350426291972539932858274142113605323768441652098315100360739998357255181711249498845541654812995150509194880284814183873069979199755816973164679844407652346475565315142664890942842346322600965131689278018149056008941164936672614766031720053262863718742786693131380895774990247951077083049174824528330257247715728634190201808442452971966158181867851249208536582215183450914104657610098153261972887911120564635410376861827078996680268507043374392224451048073430576141650080044500268284765916611658670515995193422170331566769821525422863303275109974693332914040050571112166027027820077253304016687673472794238083926651465083348170478180554948369488241009464189544247873809254487102043026193240955308082068324173430190092783271190004823647729607463931872845261731152199463669901595947898182609545944538137209332815166058001071355874629890488046104900193362972221716465302413278677689584500679661896941561348520139752098922342177903551949113808003047957778036711784271939911031088434241953955663099434682292088401615173462951018925312298513460894732876617379297335945304327991919598368962810164472053767583882246119783674421882424835173749958501336842759928891169654097090083313677977306828919617472109109500593956519664176558105511472886999493858919218489089858541329884617620278331671397804146321765168441492929941895529531221957012188485109221502138066492745864190997465040909654094105529543925314298554834127802665722810156348890587501804813500436409543912981418562553596458115136981847346218669348190705276283899130238247720987155383504340400985370800087396702558294913325320069622893181474199156285749296568398011699883105154088563639681325370781133988069804192983187901013245159486644786286200789098589145473776070123225293389165630163628899884120868739435707342689006382890761628666529346771330572492444153805041702046658505668563582837259027474118469583257593701733326842371534165352742543151844666333725362741671156584123047648064806155428581828039757431868933107425385029432481453878696985266098380537463810913366255470032387829262423402223796216912385349302214849392872226773892739990840991579029315165415534725158969663233921734797601213051386737225849285458882387172196985603761718994889870562762453160127765271396870898864543802795482275249937064529222782923525952909305568624154621212285252626152417892557245458511391410810267486353872213925540503624987452369088652791813471300215091286250872504925244998215584445667307163548659243835249570642938725385813078932196028645799656802448901513878618447276353523651188833304175389573950146033014724956650415634912534568862587803068700370844641075722040689589890015792347193769725760125205074168852823738174055236124168366283097333022439268769656673130323573237741510048098508675631640665867188557559208129354412680031396486683902714805651249820495771024096842237171508414553884093736033658571069284379411490210132043868691995969080424115221888145294670884003934693784285945875121462966375554208699412956473395200100719097237668355237239666724296877107851953599453004574262234768394902229310113381687530060456158948341743122685591592192350792414349724920306445503173244794328571381659882667763488780462640116346417738237588288534756016347266569578204143826416631460871579223286161886426303877446937332104470500249464732132671570078294724080699358916957160182623207024057432159007601458412923475534628418355789662763313618931093694474843681116397782867661364681591223818783683441362728580125059238309642153437256496996220177880301689515817405944978593510544335424937259053270550528843132247311116629711628211160035658552711900202427412618463336219577487527107369895773695180366655790206891179661141599700009146141030625672839043353179469472054886023883263629588285088907922945963373098714931128193620620449240487128746220371269234887749855796570221022470834581232105697045712860575430356096761628085279429770295133701376287299292556249753621440423240744535096918322496653203041247150308401794606290295054222495407536786643251374304873168391384344717054951622571147622266035519553121254520409504778911926942472906565459222176851661168598475063097086622108922493396809469957736602128366743976441755555701375334169592500056589081062279831926073858030193062284541016181197318380560573223243665635429351862023932737185521346618614132548636610170845883519777869577797881509690643346533001502898316845044370794313542217069549503998099048984764954043619447224894121362763363972854051434033203030551666508700499081091417911153522659741215907342735911455433068317987037240775741182471090603160932282134193215670445918290830532454801948780033905801510664934505183564506915776308765159050479798431979700699139099987954456556476779776484958333537211326312311300984985442514809544200914243562526688517608373208392640022032140126112985495327059313042305683816942838445646263848335467249709485681043131493056426901777558218930274018797565186960395371429017233926812134458767157964333860130034222601336686865280354897431022421029146168324269790419646605703130820140309435177713802442656730953748314857200326919212987135881524998995656495644055465838600751352631416092625787619775875123203024718815737456676892489019362239261102300259790952159318724125283574425440928893405902959711834046248554492136884321930311212954032373933068012146838396582583419352296154826217148950903024478682815342055146784623614004623258666340259324678634993517595854943125042358205577388676031285491056289473163728260325394060963489510308106724679094857305632590357989774480072632623014392338217669563018306905688027317418174270076397022781021344002608436394702626219128177201597590007060803767839532879974997450501093829199692000741381337884574957220099115568774157515593896723949520272472334177490111486269040070009149538610811914927546151890030257487503656478792971145374806344752380957663615965140771131709647377840706062045526129559105084072567015978377081375834509232026171677236911266580324494270860500666406582080589758858323157988414110500316954094612293681648830472871895753479781347408898528215579363413241321674461098903357494472246119098976353659340043306951608916306777927657525290324438412668511841400164977205967192190736874358068709180186023695839261463036188029757805347168405221695872360922031550401448723312493442995595719014259327051764505067922414083749437337498462103041696997361025050033933686972432176257480974234883749800409353451182507332942931699031895457823155995333104237287466546160381778158450738153816461821166022998125784008900538842040342710780627898384356275620193373449034654451465688259107366398747064471117083864867598623645709120360240863063313069738446240896182727523212803508832072944596575886102431549973288890449102047067859634651417564762534055161435142473651743480733947726289589843562918178420230731054471616819307059152895335466410633007073182792997777021641063949044059362383819560237292516558123613751577290047071191517761917226431415373227489410862182238218989652251321965601715386296926589171788311959568563608060129072571230632904106915899198630412636429251821994653883390464174813719340011861877120007799601219438690051844668013419772676826240888199989577199528077730186125285184382335064972419609156733928434157559168981083883842349854127087783639701594877208317946463783679398138578173137504786800971404358274958920122002604559440184375059320710139468440662318311524900621078601470807250603064644664811196754435612247176106226781370131936732602799075033343685574587770765960918415211207651667213867048798182597779853126958896466235455735386649024850257580965117594703335507461215680200643599230112474245868462252866561628033713180840298258279400540551746057471246660569261391448403693930186757990720691518241085922060444363793405893250386105758892567310954802029423873033076098853318877787419853149162948051627555623954994957365540534312469590910988883741733213795875351235326093670417078429981411371545672037243114837872264978263254522760976316813082763667708218549839066386514905025234889901585478505452161244735696606968739090548599808309470673971987711001383753084967092844150582967698477267410541074421030768260258624335238145043275335878329102018992544359521845997480567409809877675408498060146421433717479642640152424552248522455319637163908714100806487525245609165588068891917006874637719454724234940312282032274344961535704895305235888299123822717520762003889511853500444360810578402757108133071876012962921899975885394953651104626666281395783752352995381048773643601230362890817914962955687707712513499249000390001030129633137712500999330868579360384550819597388685615004890804839344842374788237520328172035246621311434977690228700746020290935911573886469992809308607573262368159251466261258664829538133434526123278170211315590801923248024427339890167383797989486330505927732617011191662189639589303060916135821225780100414977833639464966779021188603941619075334631226163334170673134313255846999033448809625884455939420246313643392146138598597386659574499634085825798337940319059123048239193072504606480372820995470304029030461676517747667984897819300058068052702275062494091377343592811188021440581106037971981814430307224848842519698550357922209296881048008657353390870956258643839424862227989954924937110354178437921118269190882987112126871011344845819507941266819146207813959252575457311124280847898647917578329831085233505165690353458835607510119597436250406015482770061082736557736252650670294479365796536832089707248034351554394824869559070870838843020591539755024117075370925404059470170857800204563348497547108290537312292115558281001757323891112604764284515134786779287246963384622661119684822769890718607574953427436413359609877930377384970832536905154357180376156179864217693576739001695482115935462296667965335863417323466958642987763016369675108736606449618296351414087065497193913825487874535380223306640564579278692670055071056301174443562289330713257043639103971723485142944901937356729111438516988924695226955488657616863025857176350779890368413431509190682491843355298515813076554992748211549187310504008463802350796330084560754511611202969337154685956805562708780759164558897139426475688605339182254737473479853730807406455536593490882192505618027694791455023774822824605708449975790578670336571662614020427459579733843053488422245514078476303615407595203027891614456938756581423873617715770022986585998510186846978305707651046240572810857535614604024854089008287395406077283832802680336917566844084133059543552519626408906477077986941717663768371964089185501540664534347005528504868134732590811274162569481476159110885673547863693058098344656846287804573383705388975421648009362824685495720292758577184580103581849051942050533223746599418037528470426533888228547257200623930151243194028281954253771787474122012624568070095729081596480534140371923987471076997024766059085025196369004505618615499039423262849689314635596567439618929348372319750940572302116201341672256786106859158342345517634469743225571725172899451772953810953756281897210747751849585124173613476417469098989197910536336665192146674211883023357954140771429727469065986749886348380445361088333500051550758684220603620047323335163924493843419176439254939236584703482379083064044170502297868351297799496041470769514699514344412246866847047031681287035797626503118865309478329647435433395023841121546351234208959223336277505893758190640447551873997573722846710328112182444643237034593847004858079445728875667191485903222650387521459781319609024645285592834676790397214642091434229110520549929449934735044111188978149295090705005911094793947635322929894222177037880987249502760304376294266785015994842326644588261017336552817313321721544099953271113665118170272359151772787836740604328891155268203511516812010116268075085539660305808498084498311870505801557907417889840191304663901737643185137633160125721243360969088872604534202413851318677502505433060583267325224022570551448775949166647706985450808140050566233132892022848795418478945691841632656366664833708801740283481904065588104277239859068289976090422003935888083372846854142322939718231790596544168513777902611421028902334312586132830100924968956920174953879775237829262284975508661907677215646034381505239654056197286609546626768877703803072065926991910981096626360810464917563784594634528641464017416589882824746724099356858958855799137400406493105897171852135212864209872363544873564385752343730232979666924242753686998916893198134846222443765423591129537409843555433423322980794035219924205665115126683502719640469910125008096755640268670407030163383454327759427233337590448795314635674874630657380798250013845955989504033126891218617853331356567724566989937464723751054865299094918880672606886201765738455916195254933651028064600760593043102253623475370100612777140329063304066947220091025995265401267521238289735737858750606458504273789111982573181953287350540058403010842754931514652946131260476175995827301540654410221668740775283690721321052036066295917408154116359368269733187793691705446790000299750238905132413245895087498968132562718483742748881102231539736352871284662857239813053594248689569209049302102113062341989841508347551327351738430945967955873752130148928129598541805002160120792913662950980786968609951631543148007883578986810783422636880647940080849809462857888655243448975983675511204739538737358951345420537412360014035932248621283389211953510406979491550125555501035640515408563397828000593827795991335045741358013083217564955172903145812525064462612626714593992485113230305038622984053554150537926652940650193569508845207221927234176481962909238521315281265407133878168305662766555792029780798843502934249606551081073872724568016267772358301750558575156052467340425913086494327703178118541427007030591731997305810051918958336774527213020378636477024785603535534948703681260082431897052908486701527851051307212712946196615594720646568251232094156148146747297304719220398585337359543052012139032326389502365747395325288930121212222194627246612182767972226185650230242213695638506999375949903412051609054694364440719150852702167944163193526884194251783718427150508067633086010564909701523221643464488140253373018079182390931423645468659914115315917235437823593243147254164656153908016822511903704135092567150170522230159247611708678972695521432040703957911664542589031668107801365631616703716901916038376833785956439061158102859801625463761907023133248478744977397517502976379710404253173960239291724877101428157170147157997248081561877845117033150811198017490266663889687306886217091390265219335190155983460362199831238012863799306132514548656956375662306226909402803055112876112259138509936578704903296241092737885712134927335429212842946955412546054980097552253698877236412684061056017877413257969033325996271732039148794086956658497085354146464015118110923502043469039300242033057211434905359029870431868713181140516242224454279934122325654815541737401460285640308987689640941594946777971037854524043532365470905472283883876416314678260122973711091454312024237708259481248263443147103909799065437856147399748617194873320161726791047421364569401619957402362670141551039041899588192004168148922983001778515865281165815291976395066399980581546491389054566425772861306375714186367056355972949863648976173308637119482240409955161420108697605685611416531468620397491943526507941835408238933529058562491712379464556598288840517563891445379704234695452066671702567357271800852853989850215720005338713345118565145478141287383586673354858404337127966618711017224069518844910417117174864752880075220084058446871657981133115062469701732333216551715231649877380116663524373361009263098033603459284319573489921866529101069286178439053972211596040838710832061114337998533333597831545162246301984861851460268795276229374347176321921348644948189533262686520266860832191378336738960982228682173687979328571409259722911685995623671105591207447495941502268759704662675225698709706660990434841078614328264983988049548718669308670695759062421391842411516902379908168257132431269038197238917102966025543686507951630583977778632573735714281593243501335550716361974987256274795266744684631310451197833279755948362207577327158339305238426473754445213872456607037314092034478149304658308190217871133225757534231621855837716456007497959423063130838322459547496496895269914338342818070175891082102849972051090266589580783447912688784643937613144309730034590139186639099682988470883411927538590883384603284591611959485835365623789720480578223484683453436457750836773409452866121328963004578349522404101781536294160721570068541815517480582559443356860879209145422024945044625753779139189257437481784262640044253072208557422552054262314813234123272735620711866030717701588367178341194081684882076913872982091546091138678817422000055281417400719655062867875799192044525802617084161387012877841368167277280223311544105952322001760000474678984549387613418768664101929097404058086225042040792032641015075203203156218806074187984045186129086189135956699502499734464554756071126467450662078792674596202258240189023082735262045777262049093839816710415315929569446276202149165319740063027924947809949098545247017025005519894862897032706937194439829437570411497437122576624601135602281700385605250280867705998114410687055303720841741466419134325927983813961537828101611478919260484724983050393625414096727969263100142704272768849604113313400417280284363210674036350814514041025579101798454298717974862684194482437102975972195471265595692968108993588872692194870545441615492137479041010473402269800417569108225395560241402990257222976170592838640197987486071836150303855515783613736264647708992032760119306012396952809454849880518804555944807365211916468576440119322338925418253955956443380381686134426257020272317997905838024363498005607803703833450889772672715934703300748520270724703426054974282125638828617717293570721180763118945951464923630377196385299697088626104275025197615076110812062588781438956117193022100997794903834304864199581290625102075269585997797938317448863541198705837906114630313168867855482980635338286501546713567526324821620932682756914775382711293082424322794701980126636163298455576736806903393624590457036122249210743299975478670436838953943016333361421436149864017669829623047704313658894337774379393031671887679610120178107382148121785655513586435992341570288164032777177987565500656223220511097509728085340847117790060475386791445242970525600827378824982321511290039917154384025283456143217051049836051179786749474953484305974837755885451526194795863389391503174695704675249452815036193314249816610798237339781094212155937875877830349294848320295826636875586040982447439787997626725010114143911209914992527906529000991091896167489522542743315488325748949371794311462039908301157382367379509203461313259157276082375722774581216200080052265181832651653230543555029811587508773811649453478584909200705859738529524717366644350209631827810620609507572801102664699747240240695779069948386838025402815860388842225904949835722819449680653514513180015524246358869468104003754280437772161428996157033230127792093384762257361042886087618769452414757190756516072903252064406268313485438730956675336120171775259109240640531572222631645489253379331458983531509041600054483427601224228360820545616445470811237978698852155183073413812889870055475662435814220355150322356855020188182366229049703350985063014593307476681899673724832695329525326608509153508898485082393391614691556217290104140337317791392882139227550405949051736135893743545596973917224025452366156099364269962730748806190471695816368606369541657171560802898319648952726836640123643968216699308326620799164475730958219840043175423472959550047074562668271946955236915790572216040434976475008350142279785508656830245302308540669102297125701719944417801097708214317359821366353750059349648713348970658449240309076490081055286234290903861968895088217848606980403141994934890972602010641492087993833133224246051319995569270786902355074801070597888648833985281566225756320317600357761341858429950535566657059926932721300763810728347613194383056372729559321096620422718373053009693421677008853185750453187478737800760028898369748816672890898837586378575393991810587518222836744174835820888050825390047291409047406457399067468625074146422086731790626466612035239697570517417761369455731338593290023010055973237416714836979186836734808141128871719377360959838560860767292399016142244033566477411034192057671528252790444195965886774877340029146635129053768139454300510765928003540914351611044682161121318163708038129433598656572164247978153662484864106483827008326851573480801754883262217302826237401093903980584145279776137525168237416332507322750897818397616536295168432879810274128296620203330253843740116580833188571493538459634655318043680432868374859239006700233795542638320244056052244043781862363222146446834187275960230124008516799327170698117013843234785071523064526652126582048385823529151825786982998832685104961924042912429653684648615364217958405480085821115476534674617912265555862674510627177918889907236525183314822580178229491090524193841998157848588366086636379947575904317230574168563879835546773989188760161538586044772801902024774336037894502201541428619208788293775210068025944593013704467252506058198102268969474488253527145314659741138107548861055103499495860161975320921063112299926224457862140251841452761287482568954882961938348520651423243662835143622291218553605416941902507409371107827068751860308411506114190383021632109278557990600667147219828925426310493592023923398113839661242143155057033466497056482239824821367008121371268471657112645302082777305392776580672841358252117151073805773021024226374835091292173630571944150028872206334829923752293743938516816386582689763703100321490015973077975934888218032823886496309985272136803796888103008234489584175061935535491747512590933779774700407628860046381463423411827944402884403879955266746324637158092782160687527233294634156404671379649554438040750281113168593322310911287878822373688075811570433072266212612065670248085067200502821264242230192654458296866548644887576036721294304065865820021734766229563960984212453873320440358015550249716569381936041110987625946897670763670519704033647733448779722590853785177605858147447354400047032682923904660469037973482736043687232361437922687620175419892674073381411869244633874049166620668767998290024001520876944808491958095083555014109195522003486211946913329650872513771113610477098479330466548574584781857248592002157913996902140432880701489819301468426349733576846955595741204638793958725655129502307481057623267715921312315620858415426196243659772968421732562124957400775370617944803891869298417713709463072761623148192307150433089846928714414059222760939494303997265050999933588061704647470394798877922754937928530180460506517462237518230658922605043878072856388654412219052592119732218916714797335976548827839357084571952851425975275049600730425214023313686072394149898497915057573420935528239872271943809137142234120827843655373849406778296355878971765040814016365656391573379940665081358704354624598243596794155586690060573473395089195994776299437002893897820109416650687034021134741597822348244012916709373110626154171187446367878998653148020558591954662970447547231528740320542499517782825864039318191344435404931097324578300189416871362408610357247562747457521831460258624288529075148943429373435135703158546962314672756082534393958179435424869550149494332674898387204603857965107601541595638501045896636130062663011813691466504249665343755983986796213471671984583256107195138591085726539103369434941314110828537087079091126480204335520322585117388763295360813898914712513422304353652805558765601816631313027203141729325041065249654220918037728876487646938013657034313465457185629031898560805585925897681131193469842484212415893959387019296666253967673432435381531490488157381849696683146469993935378917641769084300501288326637760656225932076281081885859217957081911274937897876784585403309731171881665582673159358285250994978135137054334651042779276379413454573493367291652095853024265944383389300436352013959645369232044985791688458470018120437166366354405463211654172141507987485294353582029488595508994388986365150933770736413015364816454565745893475404082291233289787609940410690841280149811962180129641467529527425965673991289396740067228792137469436954645711461432019021932981428130738314116631666239976836055116262071959072719124428795555906084374515248449783497346578555039908951427470053910833605303322408426618125934803933472422219871473636499725163697139190540434347726506265990255465622188470670319041835716276805981688761323309695342113189452054286073517981432950957556352041345464843116993208233855637526785559113697029969392917646204774382250615461822223364179622289721348760827600205147200530870565493198030384381966011041055026429134408576924263666100596952222848550642768719068838670190354294981857211883138311634724077576659846050533884391809275336935821978916912953883066066642230658377677985062191127372657775692850528750248699291121235883823666176639534845513883179739181275388842375376946900304586374792194520247116134391297658690466587161112243959827872762274651317136806426416009676598961521611692763051403450555348290890906911991340078559715083847605002184002224298882091628011202724109063691239671018769622935602862632740164870350276765307911383836375459756974333551112753315805085043962690326561363226683731607336410902853989041431453782535740179441343836499724933972299748690685519124871093054112916910169177106278188585245813264047274322475531626007758105798593594297085438059854108491705840274223949821083025926190774487942302295837043708051729392760122634471032389714080637993704074781373423037718470679893251383059484217432848968685524103857438286537615603527812017159030792500878404620539100627478079049252430422600636611135111002492863893845763324627070928024261133299365399640459041208157431182598987958506349119434725613926263441917203675500357112028984075583104948904508086806928606351633714471498196594416749712304095344939875874676424392171774880837652957132840342459107211612229805180687551659544803721700215153690525449809711406548111223592616414060655122789910032383246776996311314437451295742322820990298949671438001322136990865934244878183044430829023269984663319127678589367152934086543328904378903474557771248762691611440099578568890747690977022959425773558134065495172082120436555113324659050025528364679055085709609024764902094973836104851337786258383830727409654744062628330209913255348783051281453889360873903499311603336374579942771879850959240200092056666435278602798938648607731128201278629276404736603613282030198152231921270876771362850672594765992341948200206548778085615800236872601947883197265114479762300749162778201377154244304300497158269613972092927633445781902727594264650175380696970693365651410994135848572318364143759425412518048492167561653282683653666805212257559406791928033290845730088688430229480315696701849359518847960415428160146356015864534870406309235293571572384602834958948586870680054465912009406124360988994461713092049372638526744506607076786275172328466501894773753341478513585978597394384476541582605222759110038160995675732493146355011386036443396931947438334044007990009330408313518149268613891141703903274918509398110651650163976785792478436759698993896041191236237855767535248381739808755877614912702552202478363502493903113703932089414006318727219734810234813996671979182811448450418924456074765485063244060392848466737674927929626535572350051756224369455272816849199623618956080473444971118809655789903647602654907050021071891349750653247491168064191148528696767290457944013301623083944690466740276364193928379431780118929077920556369096026264392680163213557498883355919025713108465581210674100362511912303857666859090798273108678589495280621279064469657727208132102526098234669530554605033290061581343911994669492505665083671313268165261233094911753587493877839480596865296217238425432758293182042358302066879755355739388072603096152279697548456593241260081555936657307910184213479713819201383136830670985259843438068425077556764843478611448190167092799961015876436025799960904295015613244789140570043100688692513894144485833272760991162367704973552313414164978157446018233119575067670678114016067826504189122190435596876746817829037169921649759142698271249430044606124991138724289280718303794007593620224308968599558891510579847201189498251357324506488741647095709967475672228406698664479774119722347644474967047521446040592896532368493788240783941246206366330391085308396082376694969536390430258572952072639934323031397448408771096458551985105633938066116623809072274083618015349547087239230658334127964234090821982177984888539453809550406716741344464447610384374226138960486054093713824468440335880070093951061410258579643879922756100107191834042699934283495467171314981895470980281247164731482992782266344362481427150971383093038367759100213834501507645782048045576020925433020247895208610080151527363996230870894886375878002499948552276077272955171654270559331273219384243904016301236196980870661232575335080183725680837390302097597553337977362096008540464660323720586694363471691508061046697220313836707026938046226083188301142526729946148220088433791674131213715314869354727678612478198608559817293909805585224127430121940858468464052209378994294621558114451241033429630761006610526868041939903359479627482156627645394444007231394152534275582317783361777427170644800511093993355971004029341520973619885095069562990388568189274248899425581598981951697984913975277183987554342462155089773219469650780388270175094452533804651898915292265728867460038871813141018343318911583352889245968364909569858921120496136267216838860521453441528624681508389219085968626271594881725457208647213675889070242394217428406883436730486572891263115720290394342228852973619592728600678948481608660365496012765800121827128667245026401410355300965554273649919190160970817147160235150787141098041277550815827829978842753894835259826864529371025006533995306609297677692010200870547798214567095481292359705519833987833204772603433175296262324000165845284761083005072198035045080375473801014122998945448257769290079236304546615944860622179631807996317756793160924310916888607175980309644420728017372774307349490453838697839516250291876430132647543262960298238741592434520119651975961044925199795174657545373499420197230276602283913164687671118767768128675699483978340208264754577532278512726461168574104553647565429992932511141429328985153323243124651643913335642583900179569206182654890525776672839205290569027164883604004539059277017096271941244661596504114309579848198668361693447979938973743716208070421170854976109043094917696291476592029130484090194421957700486242701379554004716782083829924260372455529338320906333929314744037942167717805260876791550945409199814364352569357085168008137188284311274981434319315684076196481847395217997515536307222681728415677994189026380594664549832748031621249467442477117963302943226259181038648439680258762660871311624287146431278326166939426188714218477743413766101023311557479409336544020138568339304685761324081341585223315483366139622707816974723994847839468492379430519688695045318347193100136968097177535736255743373652206439252374681062195579872621661934639601132589692032089528907803352079789335114075626202028060658017828460721178672738209355236083107782762082982572183765412379445987277450058003906076111377206605264190195943341178601268669750469141857988817416876330426747839472935107441801310993629436275186104133947200690141773851755845796002752014330056663276349347448943934527370133802771733270049654911057932812571946774528114737681812397922269076093462744061753819519045549960821773808833222826817236841559121148639986165231821743333679444022527572115199923080682224272454603353334852084035341221343293057502095902440450411833277137352800569312216664729615087273829944427588820057755143273203156018662453103863845694491855023986192014100328025634273514927603821057495622476896558862597341506686511865270689563853641542531998477716701259446542793252695662753043106778293872482812491368523290472710612504773040262281612985261626473001649514728511274576771979597080305725093527393505139650001902374540038944131589380655389075563456629506574289530953546551887943306238485596366429238259942708287724301601582246900962454215877764105703854145155206352613496594351119369624824608286196944457036915340070893685608162645800674492143481653262396186317587339578732891625470136778215856524247015703354605960091297534834042867758963630638226950493910057645561448821919682120894338620332871775537265997001770691198427648380724125538572004266334032033096635995007045868884760596566745383189276477857366936402833790488531387530873557116558359943447260558004165716174027275648653934325548335386285789318710972333355334305578891996533615499225210560139026098620091716820923162378441742841167058598700922613975776341568559461920696799607802576682204774489951706716726338232995310875247051390858664321614024966719697720066180568658177306436393246375585494086421686966637702203675910682816806831205416698063248868616811040279822425953890005746108069940808838946622199286295682245097344860302324901912743641913800067396622592890106396411065304593689173249646576797734815704287776307796515980452291813647008345978509290781804580330059200479108679929889187263832222250070556749496677236540752720178020138498512725362607771681241352586137298028505263714798673744160872279422020680237662691447503989151228886777666247155554663320896340375396119524228861455157614597280655761734352295760255787114585075805682464803333226662327792530121001643904089480174778991992938607857982656021255689926285400691670036808947426414385723248638826570218011486477963037134070753045320800186148109031732397330342486953512246604429947847517308148278201905531267070876427180961078510112278191912082339167254010722741771271986409620723280138421770335109366469392794650622341917489042297329704434826202271188639618006211460354790585524512103168321821757610320302567688919379356250007432614003997263435286008052218316347403481244140853606626946809592988792680758203983287127361302519427829776222870527949332964338316588892540942098009649404679390588289521185206487379733471764562886269289108027337960629970795226213254808126513802330094763976439844701446863652599315463177785480607026530220682406368852078682271349577582445957758394489063946457040992015825979977643755377191241953993172758949183610934998297948771470793964599355401052081942835951498899107438956933301260878824690618845930189577336449717068042019605054775900669947265887641443995487174677016405851791693429254194454180673323706056981511058079021270717268179881438714826086808558498689192810405790837330110315896198043337659695072869068097716243449149438604829919646748759825521989892896425087496839678548454927159791937437817581220297183716875809403597352215710040359319311265472769309456740365162430530648506580739928909620288006015312948463649896024033253495863218456073029622243432974170721009900943897168494858787313858094831774894133662033928601805208227182092622573656540039753658202511197914968797495927757875237500222189710753806169770594878773616262233398398374633997307285832930411229545246745056127294199566583625459281903303254088755748680865245623701259655617049101361550742932687261739094452962994746197362806989807244598964694574279664099685144921298599626796987660050436767809602159916012515979407424134069932176860884860340380404206472397175065953892977269823882155144535764366367124049550634683854154493635925661485165406437175276232553743284409022947016084004295892575435605346329935402180531745876820012421290810326118987004385953178443207242684990102676165618591712954773299937766413340373834856699145600438957057875539986784995223606034294794939257496959612996800188961951495597498596675552156291788066618732403370185281974004291377397129001271072791240058586317012499499139628703990636687191278172815070604359361702916880884221515663883106029977721772651392988438786142806998098046750963233153115965799666242876539913242094174677392892792474939555229853105755838699861816369238857411419094165669483610590301920454021402797606704625755121951924925441449190370944781366126741862340687362053141516257675261816821233647629581506436069908256132879873331006597058256301963828325312428262009804236561623846567383342431560008498839360349765848449394339177654999084368849130479816308322676006836800465091947172275385580441599023269771217147139535185713979026457121111231694950120372766771055004689818007496338644902727462443084455567114285563310608600582354964967901029466660337002175556135362408812943419311558884007738263335485894656182392329411949417153448022197357053224128769716865535904183834170731628258095706561389497073267160059740223963249022642543162418210143101680649499246327944703901934969176356671011282869666729714705173837968540521977332103365239864392256850822970559702861562889945652217162570760747619679341844805576724172824674875061208569266147994681117794186031172642420453618283533785792344984019675296377865557221315072513521845119917395932014618657605299818459755645691448427856805164385063442361859263220050221743993636508643800554562761130419271276513409057810186518525192333241350029862314660006595318229884602798114647021682551315136263633447655895783572459895115593513000728691710948294697598271740128609399599066210901428112536057056542809626626746256649024318457083001699880524875487421486073853486181629500448443803950567009140163144879758621729750743832043081804939177120798123792749678754560160684274689668699163411629425896646099441962200703170886065659601884074530978719730751509212099268696744389765562348563947765704021656144684572568847230807299948505490777658407606373806955317594001649386908173083718277064478122409748907739238930000709322861648811900242237500962474340269400128427527584226967739667116964312455543751307677597646772577565044976150291328501048776368366436654744701915645783167112968386667740060770539298784480506428616008927853784539774226075607982047433563530357292793739710922401174296243592247744279091456535546767453156545524120994132308731721249545455632923671274586647528909974847754042533386394054025588658033332015574328370673265910974729752027827370561205371759889241146370408317585062769361237954928916567468063942483492906970045549673883908725021585161100389053002570213518558021761639605874652209544718805262933216068460332206367416609970021833665609486338512383599140283123720198953952893338953210019787467498808323800193790536961320729006467670835616621919716927783638672415140416231769557503567611574400325233245323161904213303970739389222912629537550324921949640990118794151031943884448413966022931389386741577307219721755564936675534382679448304258389780348442050726078567340427207658448448078575874497965465473194909251685617376131123746808034429257251632431887745754540251141537885895329573765154578489234392536595760453891220986167081511687289455725559138627484713694756409951852180495845519284567266108141905629296723733925955028950525827889731893796811834250743768183518894904673975304904568960075779860207039036597178943965016347941727401995014709005286769330715344669445727878856544581197175475445505110707848123283724858579569786071081208083773066792205755523152125658270661202742713119806682577655925476326970737727806457672264082978212782194671752923973970178975637877084444532652369789220536978819448410074025717284168005856737225241980819885855514004317343749291935401140753429853744521523788484735543778353588569767789560572930779100450671422610540162203412607138193758840035890769375404528425758749788132101012714049682397694361789209003241884973240650332137718192930054385382306043765804092167670254712895952943180473640355720165524393819407386937534599453905473990471593441930674301244118680917659838769474942989283806540842607921469180643980284278458986541547829996757215545573215157573432723807136959636638054584561930728956439613408692672379665471263311101573785776022595472403044401842733685067005810893424634285841776921578759230258147380996477649853815810505110287579197194837068253447483972557140185521673318647431545967011979950189258670477005781655039166090614957484461814445887027754674900704812010419431756399869109922064986113723566735978393693402829090880855558451356776649746211587716454010474181197115766109036134053807064709856359983135977060144075629550896967779612173525560452647888357877820856239980624076828500842130064202788675222582341677429378420889904158576420167527906374369961888628423092172968526262614242033329337103006079535720837107104809826132412118691997382007859421398753433034019038387311901502457171756127903336876071148951640866769504294123654412983395411964100280991868037590410151097223613089004422587403075847787579006903159255343584229203637194432543195295486442458440279407403692136557641530413107296240525997568521025596229325617528611932061353617999606689543601360468035799535752714516272507199566237882020475053623536202208121970981799276574524503919579881603711003514078715272479104548986373376914152952386366853888916053873405295223594927815008082018624750498181645681292918266878871236862056839674482018326063024543793883307716628105050044390901030881744463588073480869128411011367385233558568016886740784241383102258819762348486682545675826891431999031634545024774868323420325886137117106397129013370388229228414768075558703924153074582690953968502337901347050318811507933986883923459723396849396567167913603873673986153073867459473858758767346074748152929458080722342890594367547486149412289823623478912560512217467249111060758962729551922787996608486287033623892927579138753712301205510250463434384261534443890295123890184396922044003816403109803432468105111100583956200530103817742440524806119441689868137989029375550142966874026586155259106378369944661077626544572877548991426156095068096036982772434848135507134642134606640680760850983600912866269756725586435394056267813017637763757429705232195647455826638621538489354771842830488573304018366936368478248061468643141722733479598418596424621909107286940529050845800744238989493849287705797777645169784319042262708279626899928621426668267495037842940468888880998654317083816360350645535414388962852172033953391807412765335167255329423524334172595272657610186486172444752027492840183216007834130533326826677827210641543217812537514547763284809505514328283735432371017091478413212206993887012709023765089890883652430881185736795767153325740372463961436843906254109908116523400131223311493555123115936332869338625190330165020092202444236456286056029986413789575375105856508185187426995643467416691900863490627094093407556379065094967676177076966346332146138585815674803811895527692411655207214274220392868389701929965201830543421441102484047471020990203976959212309195654963966463083822574134109735658880681966034800807739548855081908407504447520550767873805107613152513212346499006400095469860866987647334082383376674387221707942968636323594869262563477895387089823576642282392994456208736235539270375374870505559968771549126911505711193444469918087297015720342833081326729026507371313078577048286866239159398551515960139809046525054339352161932249626250002204580973520820947755363679948042131352056710871751689923542293232063531807982331676214296327417840067730686615474855500853826196298952932409859521781244815475149400174032380853792016705160275304610552185370557887832416961270628376303494239852414527996921911560543866274031021234442938391188369195103939157882020137409071375328145845653172505833962678148864528487710496003375047221798934687872696362630082918884676206350079950042994097083647066914631562353389038729740091518644411845750490398583839708713468611274023463460405987320291152776535916888455107719505465535178447075187152079831930761419126411791935271262868115384905181491093790274178735883604128565115840842521658128865570623797584467180682270071999955309916694233006808778046509614384601806236471827482590164741518766253000816432489111086938861933547395091893041568206012389278099048086571303980005597637483929245682037916874808988303351148885686952131752070748196908401447177105785670037651152730375954113674477213190846105360383098322611470657050169623346744130636677140720419550130405718472466064655507021225684029364055078360720475828739069971531873257259224133160474313915371907498880778258377159865807311963195299792822200807249316066221527375211044633984076529550437631218286985257234021722098315056000373655281163165584022659097216815839824550324783789050339144593401477395068477149220282176555580078794638864127667217684987610165135744163042059214238952938727617933655242075973801194020091717597228342459874210144417261287759504140273604882650456345307120079002379353827234076124154066145037783963828461827094210788240306312370501214837589926116777455144158359906412120229524031640059846932215684809937108671490826951649005382548699793011907718601316565977812384992275334423289528421591071672812658712786331099219618015609644738051075961791131669135126372842709568413347924874410345316143571473060630830540321216334475615948731604267165066508839261056436195501901371566423652687826829529488525981640759271241754010454002880965334310083298151338748349909216069897589319483133425048018789099968515462053335852901556175122643997065423664455884411873983348224057246585276139766834616010775981626756328559959191536750110352275698050511585453432941561707941170615586893460806056435309575714666935529085954802683752035495995010327948630939783996505744441507072342742821097851818142510495665180346954197766494243155858493601642484394160825172979016237918136516767022683321424612523389975232509608200242733782960403191110031432793125630486285737366474840646103290161891592923061661601378813520253266080515969651979761239278750153577683906252406002978415415314186014438331880445663452478083248538631659668708600995600100925763293151500377481515094549541483792209308419556022945643213696987669068564519873691294353724320157178936017796761385550428077957530706354024208364333407396510236497683482459292011266102638954905216265757989973700404179840718929835436436291736864617269159062413152650179146868245650579503404353867218609356277630015837695394408629869860995136308919380542959307200339806578152868966377289564336381113800686494342892421292979807129692683132505550268504877090952187603623617476100856079702090276824272181606088150087198518320533657416304878795291785536324000436495061180851918780670842595398281103435475677729829518798042464005308388279814424216267186923783704906018997884418444589064517720248554571982929281726234394789995470912703784662559425312482635805285231213661650058187319086799379808468411214638869712625156039141028182040168458512055759419341050537607229976442859234142682183912170219393123847725854900836197946768825302460282419656607597358002655483141644642764772978896258957031501580673853694464950845487851091337030890745903758067544210052725281191181332080848544888636323678607885811522298487284251340552510519524451713410877708862339227767833432574818679406068595587528444816501853127255677960223172952953428110619826251946832656893256558479927416232805596377663210431219468827528536626699815123303516769129633416558935111428709183631876149021553870136331147674907143478460986621123711397049053203608533395488892737437136245956219454081281559107829046799229769447651984948861893320028154734390678842183464985412957671037756833174262090699248761645559696401076795807036895653348443025165253110607757743957464980378354468178968298609490329236091133819857271674583104680416342432057943121550625929114765732906124530520597565143454756592665504035257871617730652664108783106273735587559867942163408706123092366749727433853000622804181279138854949240775120717645989357239400752744450508432341251015984354243638894978345487321291775356042323767790408694877206140951824057191521478659047980585743718823337546783931018316653496124048430922907768726264051850439429939570746114448301831061568066794457111639932266943224400093339413211123407759014820499858894157354966402421984862082204993685729725528114645716346635800653577383834949745377641654062259475893547695806140960201200487593418354874667992812774102688377135879957774159754682618210741465680578253728847914697232449812388597613667624643166723237175385986032968876361516037185563800476024618627700270621671860045740141723850467093699082065206491864119053009158028415015226990134230889114473606560022736075282605655856149325128962865019608637283886747010867985624328805894665435489997607713147635955727666197160415611331884857823441521244777315670940434713064767782545199242472716941523988722949505604996510163378699535327874497654432437041351590577413880088477396767647679383408712506383119704075622744976463932992690643522247181320374297471165665045935654538246336261493166407153931844996795021769867723258291127640367978677344752469692965826660652433842087147671421543488660110559292471343796828661388964072035479948060868486917301753529623410750897566634900477982151164974779823535927216634799921356945319086118061369803756901543905608978910641762140773198659077133869952939649111548840071327766763299721297844413636275718600874582291240913163957924928092932219752663996460853639461722999874766080440585520998531973042165490873648203033660831265622348490282167487931944932019402551100859843532476064648992190651784110990382565276624111816916999483007344312084606116329469020460715482390729214329233754778016734145642493792906271004036241365591027005003441868246061817845154256667379281103429038088048133879340386911192806534077010794385943756321827870434163989417154839862980621281344173209272670646504105945565708126572694089222953364550847649417134058724168621375747113289975876353841369840422233963971644323891638831982478090099324188844529859911713544012354497606675479631262905721290925725516628780606438240877363367947994967043560180765984026477426538982524271358225952133534610134423644698818137614692780040051518633451715257529268914283809538700983627720675629350057739310561367104095973498079889443391500871884924363096594510841833138720886953199409943292419778230500897546718801370960427286388934154488482518833004694620326187079089407223489200231109998077957471454711350794129076293178507896112831045993182323353974247057384784450531889887210076527933450154831987572346541960271704827013955306659271541398985918829784517303898435546159038232004631586561132542644480250761188969350864785310367504218001911180659980189114929504827129189372572268729413819713410262132702077451661389339473794403244516234529360427322219535949968259488432039049645578124566795060759613056692032415153800819096111112399461181233578359135392371880111626491800768901179317349229227283557016940812461665968610517155080224782030891328698332950432971130770019387276748459513850067399405841586626285687781420004688784363527227317982109185987090725615892946237586403187947820895075456454016958195239139506287853624092537072327690603779116592956898408201016643996860660006697814277077417736359393746287956711503134699750078776348213465875813307560557442739756644165895919251810711265895825901986593102580387482443227480077133471502864025022174871204210756826744578338035827874714368535264925010976924852039750620526854820354303117480576977607264002244929777602308848843233252946056744324028831381937208127613165130304857450670583072174457400420011266967574433052863725655078760875103696759939624475258776320462886825570328790051597738602817509505027726415408717063691502105665498289109961818606644360481897993751669581834107412192627616768263748937380015354221246206542679550725807776064286764117380801377885863487591203887471914106974403719354254492578003016588138286139456562584683641326775896297710107749503742972673473751490403650967235579237508402710199748486160035237689163427549413560879871108214637245789599315221849486694158735358381035978768241513858079166477706638237233835806640469706555033415172514914735681599621103586410540773391603691691166295342610645187298061443773448503905773548056026708904710080913969871888924262904359328108089379234581641148833333167861328771081788856323895422118837978401309791634570062445111526068186344274411330944759482535238486613634293778538899843076268104373986768503931128089329128399820714290035429756462931474852869809516836985337421384945371935863266928739185228493021301368768095489351512515057898222201131420818379569122236238906659181227470608823964906251734639455975080749314850369684371996179425632692712624023362930764242220048985360456579910046623362474161383042835710922300604001330166487450597369743601676058134987403053333191683188623115949595980450066647792029320248073511731930760851742711826841774707697567496656778710640155929451577646281531223362114174902664156575805658450559564121444944718451478402618507100605973834224608617030285058816077282568772134450350583586514106568503186079775581790040483907267031461688107225138914406505094328591676105201635685542396113555631176516734182268571558591505461476285734426222481782353768188985406440809007005096817364484275160605882372125689034834381877582808731793843130909000787596285099099006331182400911382346446648367352380845481232952610484137389974919453048848681638989932608588997968878355216917170315724045302842595867358825093869524784335823691506487063842894427914369789081483100195860244437268137279676590536585158282939177011486981904335616546203547104066046256866886682016801629329741093437284822868862274869532978524573848000803013671767418969036185299456528434638833388777278955265721594816800505439164235324597677718326441120569856930839261172662192267473178392865887310231515996990984371447093107697486198920633518209306681792777929107454274743289664706141074887143756159753429054843274008868038973487733332883531668234776921562026116596329398477113273370958221369822529774861412176843913327077478954084379590034750890294862771987208752598761813956155404997894309515019283602205496645494941562541191108818305157657588945377698692560363526681177282035362471203964699332220772916493719255069142435832569236058152660277322143855235991072331898654918422532355277295319809961419946916444092272744837807269558122992865681389500699582180246609706200216125841361415172725578621666255974768834775313697572647063337031383489653362793388058387065890196844643168333653569648330992588357352174242571106823509695457686395225671045662121610322384176726855109715318113749993734982674038818868985897994742577249078088176814686604730802113819206076637893924836356336394262359179870702383907999175995906220327709856374112496127346348956884434869352644192207803236212540108243399403523707687052522016710815292294871989107903250228685417499972439667027027756642054134166239942957585928437603440851936079232379954927013423708229261761108431323591062351795366541201223070264789703068226131786838612575098527963628068984496334216765261659285724199695355679263098088489255482975471011930541985293363738200946153756790915671992552706244436205550564487065249441697545144348938898484940585965290821781224815923732221528547538115022269522082243710804167626572960038502393454121244229961981729961432033258653433069756595489669828856112742242011431170902687706570198265541276251419216965045302330767708021857425636172391438923493598920757957408719841544781539418722379573880075994250292993368668556277632473938519432540689770903761923337540923098703292607601576531043382254285348269526237806075966368747153751678228015730198348101370597242834421235368981750388862620889207906269789996652103957474520989231092534727261076145573772865222512991205476662814313126392722607945962179502841045099466427647442246048296932719070887995800416292992497432749454955364464346803631857445276913914225547767492727422857200677361099541434019137639120163768094589055912918879055064994213425042581711859729198187240232026753589824115804388589685966011888282835182538087289855022468452877471518149755491994652478427385185657605428570095447963458532609211741673036589320746362123552609420794513786048877656468893941653378031094890223733670483766291918957388091076094846644280386958071741858245092769377256393805750853272138690078133314478259104714128298553618594765512986584805269719689965644796243285823699153554795513501992741061782538898537645137163428376559991874532217779809132274980315133404395473621296128546103849218588312798188082360764977639315887382975316741497651887286554205264515670683708354327462415704598330468112876576506466065041712069412032631133747216808294538652762452175368969049141342082870244252466067716247017158848020033317499202776209719419781712864009110602481505403363176082375512597266762477797750950737704120337725214464217501312062416398406462706607240178832477052213816852403416079133465867074812296367359000932139081497721157627502382450721793821576650299776021786038577189996285368258907187238999646103607565334381796670841545720333308816925367029890488789563087952435203785580533328907211347397182365837658333386913158203159985711529032594044341936802002931570141435721733545379180121901759352631578195071464337063369816929434781682579252437872303871226382740184400217554971574305567264490413824795471931464420145103672822325531117587790111846798425900252099801051165892957855161424799727465603380100047776643425986105867392156659804915105984342488624580699214584179010399056087190531512521141938395493234406927685054215766480425051278959276769801587065730963282796732056474991979382056495468594173363301520370210590713858746424933723210625213042142725577032920498535304130227729760421883766199721149183203714216960668511406818181380004233990429869002858673068523222727401963306477536834301276789051133428917696099975207078843555665794578473422795168128526034993403741546602657942081033173951783602176651386430164833028973012349191257556487327572210985782268785657757829976746164514399187267089457218731768826331105733431898922449857248879695493417317029032095157477543628588216617534396407048533126050965600373417040410966401317998831850845715822502258221953488497903910194214912533191117123897230751732866645420078797203017936576731434812926930846250113046973617164284324955541543668957479802722774606303268490423396122029571958270072719099233118524451799038596861607393802451385030778378438194292708114106582829388820210419664193517907373597264871152809763849569055724849868612987109251413758861400079823555304003069309799824275216725434327797981671631917057527435087181589571536193846340424238304600156219788353030367296907188275069845761805389478272103276252142616734746073352136052723685854960457294143132999684706466145691867147956569177700528014586362540804506372589881778100517467769978803441972343030806422578805163174825513647120852092982938690459164760116283235859886652702965094665494293815431397914507513740060206374096531218354799712719298496631505604169370206365795911576542409255613199126162255414465882596431295492300857340756799051416257344102567104659405319763382470695555028145263718682018871257575132936118279668242637422937667942436369518210388255852515917359226369292570997853422767309220280964879024033716071211700522330844771541699615122865237932544686406212688388916752740276675207288491200031698854964297954985427453495328709782197200835612757412274825589372689794795768521051637913078756976509506778919090548750903852940346170184662146743678171531010203036487255195422134937879803652817115669331250777312946834259511397623002813284181248256128074840096790379998910121624779911576409224071374255832840455238625889321069838950565800391161269737051930977443895503167966716234975987175275609647375761316372011540047625955355815179419290494321532701159413454924351117960541821597037397322749605114428813853773983585714637352321333810745616825532517081488774175401421518979162586369468162448907851783345208701736733091057165335227894684594819888232039533766384706503838716612034019706420186158170962090299030934377476979832746383268524426062007429973775839556097404783827615567851746028480607089849058489764982327504810239686305310598820838100665649821882031541657114959700181863515177534084445262379076846894543716229142344242970503518006812633552769862843276004971186453467554624796940819315870818088099605297772907680879268004441179689790578333226611907874267814578601301944485667844684617744527289861738339238627938904334871140168549487100909147497617944399092400743567504431614003000650431368807436753630940483272272382937614237357392983990762462190721024689038568385060902122962222294850893005792998216788007665997668263332089358610926138755267466168095080822399453243822761045314357828263551159909894561231916164243187278231458620449514351369384752346108788341727621572302482187581223941980495700413574157401187501439554997633909605499089682546113315360507444311337156189242084642500240275869213123031331115727917321559075792047882595625631851998681934538430032178027810363829822417135080217817135162613759524906692574225963023679180788301630193853025711042045712776094119409353668206947943045495059036630873041933368033703849395695331097784928568635434285477773596153580566091786515132077040046125117931337688220519766835160263623125214453109302392617313283356196709972188002552354621840664694006526200615284423068963381155854552625385070531515445569175174831801114532280939172202029498524156703869557377610267052494822084216580761257314158295941888206294401792021622563975294945215616704014705378977527189591406058059156961039669354010578273106520817918153415352250598407728025936000355051065584221564609812236825410988291269644387706777230508008147516604528749328892579995466704439851269447502632518799949823833164173524968977055026792263847540880136933954581192811983267765130095333567973305083616321257904414352644712809528375572345972389483460506839757435367030111313179538805822755979192149044642877954715853084486916997874778442227750793763721835424504929678532317301491668385625069463912394016452080368494835421153646828480421486159175430280704939214390421857672134741904899901996286663950049486130616019133860304847017676631945410145531635656768672666899508301698065401661581354432500144446882638333163478799444244353732608271321412491249474362336070243752629260710286554463671444019362643794866296776779583326157801100146546422090911033142994362553408743842268573070758787725016599399921038710137632666862810710977449519326926310228773631096656972303283824799490079677695031673157732925498055506155328375783129787474415852683212513330909728614343623277014913152844659788771666913071700235419438610837740937220460771116563339478220117512994104318017778770179215750610694284822422616708640125404913542669349571469722911762560407905129121152309340132127561341858979295663785049618057556348462793493867009476549476017690328471114522954168254671488085296783129623485287815567115716964422702872669515139396859245479927041829193731295751444429431771220456738369106392203674473294579291761284773622312922509861015966788206620486998826718564862719737098581060484936156703610668140893975497851209378098060860869199673621222487548982035887827508954300897479061601513430395920115662131122534220623971947730508655509754031506771772711777686811961781322033547226304584883514483376844906169101565529489734078438769582646162133880128687201467401280389505294131617378246718932690323987064809830662955529099327700048479155518505818498265888566703053027069287735126247418729561750515168223384327413150835260051821825829867408084240607429848693474987667480122026203765178689429390909475873262725115850861401889913944348192316882492346814887889237474216676963332764931638380402556369660425607584330272364193271805759754307536442812997524944231282127555815548757607756472406388084395579990365118672061283266275067211522948760377532430522429131892963422243731392416426782620376637234870796044223346533584686872623053647545947418024859623897509896165216228281603587400837809106989663895477093151920196824900548763519656613727444730362146713849023087085958975329038089274595819575567102414987410246630395376312297309604049751516784624948786518771338211532943201059118396905298241898697647574349727057597770599597641592324059511974652489643347389324394268703114622756948186179852020958906247858812445394577167885078861845636378419119963195005615474438742590709300302443366970211875856372721566517235284842726382768105207563105876953742901260165085012363824175065513492147518469911733723362103773667959545848727632941859084113541649443085622699447644085923283691823565353459287680909301866355162117152468186394615297843909237558551536954404290008817282812448956641950818189215711402992496169760635151135829912121615079144999195797436772013814681492763812524135724192941025356453067266373924951974839547013510682935296043903205773933392900112814521345767339094460657751702715000437366107960146317378541786675781843402417897035085315644573829225183382592042248097609666731037453319831309629355635792406843639665472549373498660028575827251547030253791093158378005265900126122136793835488585830281997492292881174196191449036542936638778376902292038386404066985205240871733255678208564796767289219688786714077063262254598422171970987830290354092725306757523174781104867575761140870945683853971069047390970052569549880520599226250377484855936410957635773522002905576427089673251367281304164214692444515984418892847742960299597545779209899578353942440914367877382534930120072635462775779644185005742555513155450757777850725935263741464012179321004547812541383835203387020421870575200875434556202457521056105386453501891257613897880605759249698962719484720599285864016842912701836915914902723013612526516720476889302698890583718829397035822861593688393044289264955908759539065707148559182905120851239925987247372974766678925833009161250768287486870858358743744695324894237736044773292780010470108180565482911946980921834903476390530487295088043354796885125306199129574896713693190614662394995617323652226318454466280535016854649715441284690053722519349780352433337726845938700185439131251228622382125905956487168991751953205570958735055722975755556373341172516137300260676962816314119847946331496342732889678279755415008195117490635826304350041123848896439481584128563718823684841588941428492213891595518094000241938801246754607482925507603024732031073918585910661700757723317419892000565693150700556955711746897290464468283987363706122873239376701509670040118039566827747547732848111088687543204888498097623083729015577584822231380308112651702525650166157041250683975361521049063303225155596488640791281130594835291550062058647727861486968188134342884674375270729122536441708149906069148913357065183829243307238350179012552452988114391649967347230576973641264965972048458401236481499583204065040674210891570155969909936016332080365825290156281677168143077303787584121448633044296886531289661802379878287620828843185205739923065040137451267086644653567168626394195719237850655963591513003944254178431795201346076705911714971637146673035296876751717344620281921817629938813689885540561848842578210950599597153868870678275101452965982197251669196217166086904092573359307449260915102894807683865179976822879297035290192410406213908617543461565924672919682744739685816402161950136621851843141517786169285862285769105330413426675080495479913768824514138951383704300020526785662741147441974711392754293632253573554799427651749586588372017986824994649605103003661814928427856480637739420239116682538660471658319207937290359987076397849321719918347477021688741680624868870631316391350667168231781739161577171058608220622537455062050318844895716920656335885101624655702407252115384456017995093452020293089041079848538962082209889635081713572769712223181659233938830390315984818572089179172736666353453758049212308150799419277872189384396932170892046321555096940035367894803914037296525137285001234726632646396956263973057718862229570106585871535564720182678606864236623286146364097024012778611410048056297863888090459424119212387069965674875505099855073624811347216734948297925387670986097292580259148164009307665223035359227126523103683634975610700355630679091908117187550494160630795888720572057060744418984523735232014449750301952734002532258855824606727108416851387468713299619279326607298286926596957780766906199361164939029557137945807785745799986491834911027434667180081689051842241814738897224098476748846819780868130406827918234557434768793054260334073804104653275830862112294394095520611672108942749779137955935962382472284309176694795418183276501935580698142786168204316898673673040247864131830313598559523164106463408794463675222928439592681062204557407540047951957524310780624447560020684108371704736862309304822614954347058901451511975084225943803275864397345540527742658806609526004862027530259079559411114528764785186869741656805922665262619558938600138488661742032863348214600888005423409166734176379318029880733654034145211148504675911785273280930715026002663218577361815714459022729465992593238223827348133175819715264175686872828090434874348528710811487454490796579133029182903291124700353108750476059343169827233803326748119517687704397219078561182041101196884993034122882278965297469382566640291503604352946167554823784293982329335483040627336672325446957008747797978269202432867478537677913668201362899084347646680413912346867875106426532394104321123912059432204622681438318337598737338615266678826170877521062884725493480031681285047138797587198034964094920985918312828231904317312212044698182266732181043173745598197232847787668637511485057748848119734610713040391717599163257264400835522301483787903383467169595790718052763602433096817534650515982616309974365063829840792901364800685342602393324379970626683733001026587523850433525962952670743314464821194865959560936099426591715392804201576902245797603498688064216311394417820035614821314218624153273919142203426418064600375282938430914760688756207257862571664041422342629542413265487610161102991992681380139129174560765424599926616248253850979929802224933018567217019052088256603130514853801856477146102803607616758017034614967674054678399194307680471531191411433264844136838018408329519289127468514283424024328734275058348335800076138000177349392558504172231915297205475336042258663452391438578412702433106561961758370867759763159703004518107559168840406319718183744531639715598925394802395439649577095678607059108198042509933852260711803884830089799437859581840662884696942953890663087794306651060388124349717395541918206366559514088835804962016752261034986326466959945833631584703510151422585048914929797895974527798822956991776982250842720819269935147959807196752386982554413287912461009354285813678672582910290735469945179415582623399492040975984668488645983271799090247604410719091497747370035041795360963594374792566020520554078680675292741633016287095724741530997280327393325959431867398520165683003967701840170337695650644247481327327809545939480029531611686323217209533076664972183187467679031045325152767447998609598638054912755165475582871249612254589594290486973756911201427822079000687742664977646628479521116740100245483477727304642072545467731914128414677178935366350385023518610845862382950992137985348823573614392946987674994099019334642822275339377625785508586302168922247086759650436039464002219359103654577472687679142134986398299866202096223060927007278786217390519422938872052356381155905736552714028868052535098181354509687977870711297759726321161843924751747459548714881124453773746607935544995908524665332317519643985766560710484364868535620543447735813111614068763698958563137113502119894837253617395566491629309621578599134685319273573702493458255060018112766785715370465434608100427064005569619267294715746163157182596674500576912386618233781580689412905161182944982251131732846614416594643885478337233011428064194323721103302503174644028619340190921597029377400636055840689019827890765388096954908092060797545826094839268148705722166506740231660593411623056933654740994367840994697024103210920732331785392265363661645058984333303916463546216741114219032474151086462033391939019570630126306714099599050828032180805018308375729504584060000116943073026996143113478018992834124583125792797949465782916105586277004785515786517691706433956075742501904139769701272570015424467301967151529650311619385930050685911119751595609424831123660284819945722148371618966192456728833762946973995086559499869774962356427062489931495204609597711842915797088813034512136216460893794141754130621203740651187359618142103451725006706395209272437794365451303558486114297140140493661452540476673139204124941388716026646603904319129240322585409294272501791000610011370526171774978036402265438241091763450868189647513515305672909884328087925103276315034102708400687170936357584849590827733468220993201610946819372769718870010146055431997049395665822709607455306230054512576372680176444842992634588768513621311431867345418498985576313165990065374340006253892568058362188308946283496686407511667668720660392393232087744772937490472769087048489714634607725983801610357240336321243523970637331899295353800464610513373696643449824968164992765857741405939485241567505879004251134651598696521082763031401851526373741548519948603313994233339559763115966000500179926054289486244953265170896384392861420123806524959340076355962074285989248921919050996301623009077668035251459908388561545914865003528328649357934227398550468243950168495899790003204916420600357921418893029263176940661602850927772746789581361137720901891391588941021119438828566623911501533115783195033264350287605136380034160305315388878391114809222967530794205641496138765151484689084382930143497906150974806678387715006189172161394962724368158377868696783174828692192287648576371914600943348630250105789479754669041623652412520246567814224522502287528425285416244971778183083639405798403431794121598913721590324206612148684392547656545443999341268457281657787542805456707300613359184528003097815905457476490997508645759924060545521623947937306321601791390263359100113275299306172794548668774690029010008958754707596618346440846098282279171955602136493815548514325347634939581699624608522418623087588935415826413347599439595810002095149366761363015423249365457003978488713896707692121600934362814648387092715567289244539385006357113151048371346593202937488240130164194097714820340848202904746575276024801344504843594467070893718882299032496774028343345234613393015373422540243828634729672974431961645315582016564470273429418298342095234822095557344133604405930975190106854752824606225277343931912984835225454870031245787279518553991339737360325549428482000959821177733507310315633638254776144096418108453147681300719037729378456194201641112994666375270172474950782830382018671527922126228666005729513658240544774907046919386368750915421294083484595051475186719463539892838365705092988810267304542987543330103407616127359436886820427926245959040083492412311362915320365356825383660662510110541297317676433409259029881526159937234675164193669544107530413141616774329429721365684746476154667396222121527849622704080532192492997664729840872247386525762395554402095261991963459391309911497407504489815761310617931880227221630607241644903841261014768702117885325809342186270281029171144374908145883946847664000210172567408204864842751657292063704062729619562923373986572389287258506196171998346290557316394162069031317163282332855105486624226474172892641426265956667139053412028988327927377007021947026884132339685863605126959578203513855195265933443563703479736683343940774998929204365299608603897320718175013636550309875314267806859856574094181350834136728565870613802359779422905143935680825229341347146253868535253126986925736602463495431088227189217227812745004789726886193041136147512394623310904106812176723543608687161559795351925303877579106901725504243133820604973883492688733388104420257239602249041023375294216882042369218384783712984388197546235597664751746011015861937765660118949612744212765392310640416240792422510798572179612774242533176050343518829998617177318892872829318322554590869422198194750720056989382730482540114873967656196191285550774900695120263762664981725143517262417093476548180492975253412015977023474903143359925837509339104654626181176873084349263192747922520920533909848908400857948188437272507577060336504531094192132482448625043782529843931540623200327680703870379286395016847910442776499412474490443835897896885582803190609896367311621006945300763096152027583716462206056476060118036430573276989343774476516724262739692397277934585496960970183958527609736683554484536351761468505569022446754585882845962289728300139837464316274509987026785091413664183990633010729292255065241924630693322968075167123633460674407576170992505173972335192138031669125090173714795369809443203616760375801895972292383232924873056484173583654220516286403392300476465164215298533027676329345882640226521068844218788034869023129238784544801237164986120843014737123220392664319061185634438614747630503494575680840002485766654987677461737187060216736998372565236655166026188081545882943469669053759719948180270700024742947870715230525914959780717513600020762609610035228782868177781935887691859645377747139652422330618584606296949293670775797029573837769517061273634253703643686068205367843025163229656055547145979835708928509733988697811468943205189339178757467431886680250813237047840422402656980979721125365814044286478431837207811760337983179505764399763477711575622170816681303684950679502108149910394363471353723475974307966408807025469818792512950163824932896791716832161448984396270740883489569093292055616124511555600038563309287595603994418671760145962627258016492719569583943898424138207945751129606982327078552289529712977159297449431183832943446704887874706899807803807288055281509115215272478439367560932928355157823108491304072148681826325004183912145798178589612715248229841750263700658739490553291965516024559093043817328953455312448365849914817108439521600192542701638349649101186848187394160517554570583001209656053482503537864653606072352635209596932710636993345873132543452805627750947425214076033833675658918546730002790079408575329597139556313714009204781688504677760070913221421694439945378940431808580706580178418033240834255996978287912667450164160496941543401240459316120359993680029869460767058348629331465570313029969799343831992993976445609703099428916618856871727743726267084439773286787198135298334986260998771999269051313581043823831297466533730269019401068149937823818543014198712473397966686502172536879514638542717391970066412645511501572182878837161685565929586916253069476283578423092904734921902538627987518290483887127895342328361200909948429053286596379635253249105468579743776693562245136978292557672302671332565728787975003335408396246896827427102575107659242249091526948965410915041009151524782846622391550298251458087117304360245024919670281380430447963712468863981307736300044800881205858744403598834608875490944229588394147526969949769279058619691741709126603324467344565792790785691250884084123843910661330274321376014871912517321802440139536172563745314211551565574002498489766319467733268543529181281838802878412627640966557709764356832074476943868092220491947908167306591099215165284527358760485335221745744873885765032512056594145763216796423563101194464324050958895759581551898960887199209275095583414664064717972906857854845992644612249540941112735372437404372338322575874828130368366948799046456665770188162591727520430768905503435079208812632429715257258487993281100183309763877755069172908496802985257010407223810996783300792995212717033205508939363119551367414306180189875454644663270605432805196564590571340655076272392105885597393707393288165680227270278960365173060550271479416556930673268320710311792905880421124685039435160130173461246037458656729236102463636832650271143116941147152812300370073745160433738626587262581564762508070632825840713657966585918119409137797314023261028147775472396992134009795327809000131243571126405706582240918252142041141513601379507187974954104580862769401518042113160027447861886078516728176423933543392515213758992058412832328998455557946732717515575622244569374665273747023120084800008767193808956315645055330255674849525739525381671275227859775465905745515293391650028034184840166196996149649992954733493229369008235579573514541350546900464310367754374798255165839791725115078833349322365131292712271588361216449487898138877108697196630774343999237534107303840752111512122711282056966344386808678310097709553719840715212469781114725577376699857080429918269737519298654507864337858408143677058068516373563170700806998388654395482248901398190187385332796640847732959073137693611428750825058532494202286784384749100602936657666009625077528160487272024055853963616236382730432832243159880616410007601484735566677672104658345124812339349762262305443662015536186785072226141780269023690980538891887768907626004996890259513096246093455609945878690292604967383690066503202992477979523248188521537298702396857668103824397810714270167288868727889135065800982546421315898271457810243459656065882598424399745662900245826933664689093156764591896098159517895354990461631427842873793213556363023091290611916172880686959269504504356529536092451024170651828039180858886439111582715100435310066145150036363476213721833315783810348566938691220124639277175529486534620643342549830531519109683121786098173138122663894745677267105427711372074783010872591111619692535589699461955086270391625951439565262877305927034661285289901230026614859261881246330146592041625712492974694741541508522444405706962455019446395572425891478199375520972566541460117097158950060876157968065721029126557220475565996056360284426668384547210936348860598655942395713455306289659146623407912694958703240187462695390464672242858760284942793330231322040678977097477163729749961654093326070439790175868308041337678440382705118701576813314957245635253218314176503438064497733019158838860587986352601552983565608656328762374003423866130685160835174377190021489352463242537554501149781495926884789998706623633275164868126467776387125553423360789382924078945694852741627269366360598521361621121590494072141697365428218599259326631286281398642080505920141891554583684374811690142929677883915445049363726522162656307726460815056762523038439408087733957648690552617726453870607567868467667853321927387396763605182689757413910958795734071086477419766064110411988743619426891424470969540641033077642935074598419171514157815840299121034412285697298632533372774617391590180035287436095436305778141441087377168847848184461935398913729889584462773504037438175145313945085122277313121720265215765778632555837585043266422996034333293506273314342002647246557531060889171226227973969570918911454094897771371767192136179912326914785603757730491739976989342090549486549920682337327239575351311141856672810386444427848591119419170934154995252604953550968964558853629021767201885860400526420932752238977152899268219588712490977994690042174143971167226493108616492611581865178691703024604895555894825512458539430369333778711725272049218995759012284742423813871978591872591046535528031653612694692170513868800425739810108681317005828227570357362240333600973409429691261878738272291406488298121671330486103515321057001082745093136110046086944789572938023301843761776742773737829132302164608152203806393461353368636225910760133644361872637175260911387838974797070412118310623250632147688952521013547908170695508179434523518676042258183488296280578109015001610768008957441300227549078224025100806836291214634138921394842480136227230497178639436126384825118351877521775998571741982599153905611870071302938884355242110074544474189856431773436907293853559846091355688988560837892218717554164497492612600848016890293640171055812308230365565498314486030025760693084207733777413295284327793125981362639517670747020024222250153836230497890480001160496550983539349630684254270017681786490327008539149546938390929004986477594799541271425741307006163071296143485294980695935487570103138626732908562379146088746477636616286442927001901174472151182203733303662885955491081084871637591892762696448408695816684835129475069333876881402172456022831447583264639957839071667762074899090477817804089652516353451740282474496628893231314251724789031173719354022297249944450350577078536065268845058821919816798502736779233019716817396095017771293001281335365554720369773451466481487976581156297296055860852119524165700675533050312457479027254693399954201198659638996863519710849266340704607079400013216660009559808935839840847498838755849820310612153033423441423146280864656597772339801623095403034298710152732132239331930459781354048660623997959224233088857592623319052788583828877480914771276168866559988872701269932727847398829287053074762661715271602999339874957557051919346754997177881322906313089669522018927011408837541637304674712837980096868536978875095796168094011873469366137009108413023209261201682117877641694902975957687703558718339954310552426222999385559805007921678207825594062558207775818925600574956156861899481063029103251662955447725255136821138053853295986790405770932345640283718181588661128960438518243584545854371719752078122657845270548775869785917407718437542562228740650183280245637789373308824545490458721977439209407148363827956907975104937813483236071851439179513571723500562305435865330862986116145127438771854744416760017574338145304661915990318420288117280931188086081592072944000620656078424596865192676918960480622047435285006607399324685339527750906624953217437273527902455489842673930500406201991114653294478664341010238960905349745073144838278542742820499598930944819854237356796090407192452415560125830938217177872010073933303660598596615263280832104780807296326034076611633345850986376922839290325242160020037162199128114335379969258763016685373912912603711787947459608662890803513602592056464754015887500137828104057240171140627352800680272775425869743756241598259007157617929304120283760987829961816518398973625284937225773202372195407868040679707647764469815423498798224502330356298520978694236771397047196596172262653540116794684621604646237150513825151793137448321437737262833685010514420341389904737629513666846232707893349155292098216423138304861621315896161499424954066927237478724215422765476911565948477604505629155173560132622372089423933738641682978971901195692922734276734965328668444206484202345237327249049374561939686041738741503420403479282257485382030141187615684894959059357214510031866939724519535552037208805076964461754272493471148893457292891624380696638142925518761361438298862345147159715922489896135138700218738237707612959060089728164337023935312655636900019866899357692610340140011944275149074119664478614386188597852204162567446090073569179204049910846752971684116367572658451473350701009524042407801539372241441602590992078064066456804428881770675956162339162797325544754876800048445514018919580274067594870965431782115980521822449961714432545866397870255704812015871183836458727943194897538756524942114674078595540560055785005435049949432734726793821134762882928234581679894687618311033046911746182607973188789722922393758872219567040242661582349676014584515154817633885041857114078476694326217362042256179676724889656993773825860532178065571521450990358722770399398788011886638449362517579506553074562177661959842944946228391023437925016579544144291161413747653750099896565898217782408108195832105018540074396071400611445004718040596462091634715297029766024252871227181514502532225255608966757909758423523042482443002108325678354490155218476058865457945886207006014098842762164158131414056198487700869742772250170684820794157038562275656741610512160646401691477681368118554161829414385097573117837435310792334932137748230127314391902823894293549765219768585631694879663192683608953455197520594186439640209861516730301168545172925405492069496685563796496833522304891419299237379524217855044355503295331457346548391621692405625654736735514405029539035249129528995652100956279356637327890861813408654494198520962084466430902194192244782449064145555904237713850807137893296721345005610644434290670225385554161445289245477640577092148183573532474141277117720722256479034819966542474050687198057967919192986848923174476098349665117607156446507472535270191588885256041501867115646662281832639394537935859920393431000811207197798169535641012814998402732219599655544817666111292729361267013959472876007328497308354041706311787454022901598308483563022152127893323810308957263154736345672783667202690566314101678387555841079233819208064466366800018679594765326213786678696005251249978644006720672463210697401341931356231191339020298527439434592648396943183216965053344489473820498870329464605149287638990607986608988272901894752224023712345733802328170061817789518543667706494859739825146849831074303015596863862217973360984952534676561999321765703495942889869438796322367195180967412771362572605080119573961593330092536733024521879702873039149362334266615241587669328645631471280644008612504718218396022851767126711315557241668710381830806696103413196229877120792885419539866822094767881619294432735115164353366171906271205543867116916968121331262536933288636035755573017563376557230279445480192839409847329085749210716004315568477008919302047038043020972916778903208381071228497346972589743618447891375649332435766273992019326107532990601580193370112831358207768025539071974984657822332418187363300988556690242933639077742819850175875347263782478744141795069794076397026323228290584817719148294097974418265224914916398795442910839186504599228586140789719488950648785406769144675307657970783219437890757464786470402380946971313465752262245861023503965069811291048900094129408300634554317795160627500173059076858135530889914786378076883999848791339499031430927405186190742668645652796335926293662794136781286443523302056429645667325123086601565849722161538717465069937180057980377597090357976455039022047773900393314109901635779195103291806633361073203894711951151900937400911934632153942155885845175372603301634319625092815588959402173387127507194674762304445061853116907420180656627836784155442779443931122026062148400697185005354491334427740175714752920600925449493947839058941669138056013166614506226123791561108040224175198462603288242572171832234329609910854474600761225435278893337989781498103500200327868013088324848495798042618186582168017075686314693720307087359365793141670336332383588690337402692883517729572256462304424148030157548291087140756066732752297724889888704605102561652168521386480584748543836732871430782800690186358156594741993427948210472882348138492518246128501293907409761711182527570272263428100507775266062816489798163249346326146331668958252307064468671426938932806801324566907423971822589065048433995181606438918087784751377062850247672906037283374232796014448993196439636505232818001122813886014734956442813379681967046513332078526927564910544647548799273641226916672747807287170360678542006211493392661463275031372296537927877739317055392252455773475127888960454421610401472139464282204734582372927620760342753956782789793813479195262442264875527535533828510787528627891283712805953900237372009158968716437072196688082524750014463612507728368937364960403232984529137857778564097164448793123706968744014905429573393227952672590540622408517064316277256950583268996758135537326024117267526171484417280439811326207009249677787518279878000623016119391330524746366971070865577509280916461650306292545259545937319612401856383568286443772612513187864643625743045960663226060652810453500041826904632872259801075228736456968912256040427680207691278274412766743981899847837608860881732345708787650916636421004377876115766021279910178553511296973159819410689696358354940048242182227112973051424299606466646374903814573805866314643385302067780329153231964366472150737989301353243556102703516496006858389025467761843546238885243484771849153411052965055517549214248240131782995658188871308247511258403030495471571356087035477119657473686591673593188244060289375689838896445873906396502550549454336465146726586796916742896854544981379265271178884133731976552714439709529755278251239491076598462679214260664765743744865066715418269186982575240437036066207726517040212375567313967368935828967776354735240806635020669148515639540620365595531081330967570573663585486311730150002303889245214673275204662725231241630029013579480800146679620704419749483816918280005053392714056032426737572486850850550976389196125421130429122536672285422653855321203860231140307789217393491729265034685751748718489365204160592916543528843064480168271496614658407391645900547539926216343966734081065047498257167805852657729120364979904961756040198701722859920459943917160495513720490294851267796292808150576056392519148708674202869590123716218648371130053742066941623636440121328841794562898227476613844082201034554719236107607897608730049914845787548248233430148905983937203758413017348600297815635503887852400220546515375154326752697530445909548431159471697296929846158416659304055381513945579291028309959275362358676283677934077273472104060418080104766490670490873256351351453185638118085494694782770174202593177592429031140606026028370340728762850616437970033980251512487129065380901978198031018382060434734639740785176504256752539926258842630370528885610973947027178440950443710131966040873026836693973177649694583600981413700484204728766631105358186108207405181070712290517392766594197438697670454750819284242926735658629903343518719697776978844990793978417645299637220940237096866775951160333594200778962929416268966926862801012480674871634709791980763794089259553810125395752493748935050006765685875054588301874253888297156937283768639301432792542073273068651982995659756640882340313472792606216155281850634265780057544134489065866005533830554024927982966086088601936547207233962873857271071352025439423070865402126764683198255768784317673729514020091155095591511446841585870458392272219066457023578499848755161470104525971028958664472358352128606373617083516395714792744874365302920967872839788096208018815798225988429531883903533310822055694293376668009642744202313998207375731210869882719072685754629800411866693786257176918369347620527098303414738845986014598056366214101869481441374257895153551507554834478587593139143965691164153101639281867439931096747290078051506621901664205057723597451759948632858629260468964560705536138565738043381911290017595612866777540615632491703458554848851107030580155122124694266871960402592539128633103816948478664984126912732340352778667605757000856528906081268107847600577820274791788458749385440421424937850514427860641278161127877681773476588254034916473338686258507983639252348738045072978677052952941558381023898317218183269610148982778669677819444528862322632753755685300958869572407879739821087565315804805866857372321723785469768988755520529836363691633050084988452436578963588268857423833700658554828011074946654715214014001961054591764433875759283223178398781565403513354863610859711567940269677818924171886573951551094163013965540688130147678378150460882844782466248102290162372075804758725289943166497996991374240345350759540996812215905692382477506074606118836241779503720243889643687649645735036233850162925631067017773657791839260476258050927631307298850922091260033503595379330257066114497148226120724156061671524754135450371154512441047358639923739912479597101625765457461669909942794087118343786335277753583977490919551100288631501316698790712454056832320147890206712429129425450726710551214231936084653705069600082059291790579589223286194929639998075653544314000161360453018748764850092398217027228627254417654243108803923224036074935172877970998484110861705225081114908521659544891298340967781156595799549787614896413438084827643878868826846427130233171150619282973551082249341636083865000635711865101288684784906853141703484541717899934740927935921207111743656481729545885849008236150877327585416051693914959706238945796571459652536625218548590055172990231126022423632155023666297092116364623764175313707429344804514184096412854254457580508742937831121265600940606276855861681013775839464245079004511058012053701000494644242161848283127368824325200072003292907541865737822899678597860314145785760946996638268015186028195657896658654742913010552419061570568562191660712346199306552972504432583854594942505928808009685918821436160937170591284187622664897528309901783133450636270184129953708307330762135138409039146184033735296383452502769146103963102351620907891758023295756188906155344181964409682453382348557740677706646951265765595417452502788123900942480293958883289495754792119195337567023804580682737218291101218490295391955294516545201571556053058803503064403621874947062059117062511469110909279334029731669625918109085503987082592393284267121326861434257194692404170174211973224277676499106549818097825230434023018443992406381200761170237890650885513464569347732834821412097721339013258961954079296081984018501840784858350815359817571803208138143713281732770969316105207413533681210126377737308254572327590811036224349337114093624749169279363726636362337443439513433170068164380479539092376353774262923589214612075678376118017535562877004860258854463595298361203020716442726279562190790006900069915868815291650171772195936720139662407629447421810976602417985509650471257628695381850004878830763893133226567311008655361202615813372936523111251263135502966970112612805134971694323299298080925148054686711673329821928629739356188666061006583434591234011260443379751877146120837877947181968466060333772972896925291334844662963819944653697017272385775512429437948764883465266832719821857925891169995355116308146039347010458031079717126988648686277228867826025070377447872282104202770376733167815126185485124867621251812927155817228820365134165717854936167572694999179322638739117219885950538850956933316747670759144171223555808394861996361213408049641511402985105898927761888571832639119287826998269933362515467653167279248881526632486938452768269495408252599725481396757374410737893504540406762023284386674364635051849973011553846008792644785794444768801605598879845939956522787722915321635644314213489099485815867786339628423140733516861101687663165177414999497271938932582874726241734625413896298874035413667146931045141022306967409103004164408668150154797627953623085448855776172302750933961151196911145329519104863378685454396504846155710366241693917530933452987099725130071022903118824397975888760164933963526885767691238205436162459395008566530518852417954151687837241557595434882394911212742759576143068705870255727046670176806133297979772729026924417473909380647999771920335391826336723433697455503213768963831185920077685903968524776434808005777868504920497288965200440626731756703456848694765314641088602160768214515392417743930448472197880873369830427609540111307795167736822084359405909041780456655543752915893544381392040323486530221270951496368429318744683140707046895509103033469157025380976596226300728795933999505295138190086981578548978202623310392480442605455822469056070186180053953971711787319808803488256629282305529436063258916972939518605749470995186225895643892985861953136660843527035813455350709506562157748150343595187067382995319323147431586382414148414046509243091464522105983567700392296977732168916721480441316515459318843044532867072509897299441585096768143620062940495109045490115845570629965740414643677538472674184623625881532227080016902547748322725908456955130111596759224397923908867811315705075492306434900185665620232086728978819931599758481675075963429739738167033211116915154143885747989254109053451187533383009429455027301112457809435031813179208671949933609417856407138100305807108523642380934829373160672854793582891701447665540976119224639203519454105275254539283778679728769761023113878017102631126495695208652739331699307268079558228267120928583355789150337440118304217618531071518416835396669760381918438998978744751816109123110097466312536919119161595710257788024279073205126341000807383070757005671147107237938366912189742250841933763856575333924398127143914991870865649593766171499519324870002596975242917656996523036680294687516505586433296028297451006011337961693166284817609259847493845714025401775997014085755093778017301094889549910146264824203257049362153707208728458040613304157012264330433313425523148292975180350881746183569127571231660740670573326165348094450054617473444850094541188475526971831447388472007905562746844318667685643152691560038345848008875076950272129723372689583435560218936027497256075023155466147963760591833798390117996924139452297941240351438757905197148622312307174178153836071737468814600586099688680059308919159673118556069116002356893242476118664806006978526666095247740339318340142112417874380338234270626581505154997720872664722299033680193636358393972411970137248041131556850644318016783149099484272462387954539359437387924186927492070055170406257730936206541508509322273554574215297130408637923023482622773633063224339749952795002917456881824713322587984619239213431547934252677348685151406243991814956684740946812288706477207365397435985090623192059970094154877373169220370489031166732486781758061427571511461097809101002084492504417682684090109513609300528265189642856936900594879104992831606725912490096187280599816911408144247267579251603756931805684884681277364513972194890912552351837780819131091723465219154104318544482559074923042928637972622730905420724607298979064089942245791730283765489357156714300055038252001991380062395682889453553620961900128796881929319354951836042804424287147166594372867629640607222067940914462673382469219041467356492746863249133151784882678861552024524813389659202096702681050977919068675711143933300360619182578256596526694826123850281713106299833335949328360360429402626646095395531787437786930134979248779645497962566245048621749941776067354406942348940604738175299065782847664703398801177379629446035922544580169924578954788100424547098000580242805005326800115596899813572602577014632758110976287658582961542932215318354063563822984193684964462193559213057409482857419646229303775379651275640525803079228454548785760437009296328132045492422116388111144203068777456755578621081271094363791022735359302759643105867945145854264860596680922360871761440047296003173912429519971976055058053593700996199844644726818018982951208250999266816951874384520342433774519741944439832656119335879034150877103589517826005849898216387415774742781468362293834522445198055985936549857832477486092469439737738668488971776724032745228818187719131655448815506124262066557791402154254835146041027976879625313548435224058264183363212749551866898793643455976238770102368917825782876553224838460206450263905217051381601180669363098437447796105509092005946405424798733008693785006143135122281260078415550467272044357576316620831057287771529035882685003368103405894592463634522725135819245442739391286926633145013661045227129862368587622198165444021567708048231356592037465510695955388329933485068203181618746452369039912177565625096060173553633813713892287348968549018722915911540148575775022478681415378819125558115476299049321995613851275280277897568702790387850151127055935278468726256182121606436629927307672018925797151547346131970117423320427134555807089085903109347821115596969348009914228902298879588784338018645586053348690227559415519453857464873202878173051675624145877082423911116296102479958971371567877724005199139258093475418321975165872526544186390653234369185070475684627946599191798953842859831572616402207884398308806858325568559246375241785963008383773891392169158528146909986726809268871814524047903640663332945624354412979480650974921275324036798745614820658176362573717883729627943274287929333284664146988460185942785186773767031466476351825702496833061152353467365395654863046357486003573736823727994828495729785265147681061131696266223029322588635262391375691614964475985246235185190673401123745556810031282774560275908206018010713551784784626625472070738837685356663443362243743343148329567504135911869380303805230696053348829757602756467787828537593924291038646778914779030029607252626121096199393132477489770825640622138652129376311508255307806860252918788611033107803830037743836680276376555184119351945191123444810099129076839511550132459885109840440418020967315271429427038857513656929929769539535635290254359634029701941062041138561316086608411430331958657289678065124277559553955517993722344307557129724651645200656599776782132018948383816782505173924242283817084797762995938888583498643978615480765564079075178517950210608895108475360369810406167430886788893784333729695550519847450177534159367101223046079122411201910856698675550448603006502013990040675242034860942971888394388957203329992526718839152184826246730440832366894233081345296594272747738630373665685498868557366538221752194708742878730106249738153204396740663942487853121068364600897501288572614773666904695898280101641319900261873191469481593535704074656266117935466130061934760583061016854343889002383833047847144920081401664328078075439006902196572154798640386190166766335796863647838623661620971137250720288085741332682723257817943525585493924808015103730903996355627377352631565120807252118715857405555006862516350360450412371239627368708217357812870259385893916066975435495199731044017264555085041210088461396152703748487484255810495269565945043700813093951342164442759097316497457421552019221155623839611823869204085377572685971014216061632877416306731848635761464566682505085724255513760990832855477117299514048230420422493720401433306494964734743582748926546104794516950623358395154712840107591431429696978207403330742936652277740817352881456855127769290459939214577209154456277676903671386052917984072053429164339924978709776963504266723055252417614647715856524104346458346228110208959132819589557180482873523656049650659996113018278575613434460199270349421741409559605463557023530013746143392814819703709543154906602819948100671849018050971227783600127052481957752415019798177658393330745168979083911832894571742622526067143741236231784356753753671607049578625148127216830957842798430481106527451720298281244044139559709601306306158979217333026720193835732168869566041567648930227754557227340839001244711390634766110818366686144467748709833931287981181115806247965414407762064592759192664400393565552605329138866653512164536422708909451258575060632557321170951636612087795352844601312314545117317026509677548042834125192298919938459190184644894561340692211296265636428617252478380804419826766332454677493293750468831205297850916545067939776427272885450933145612760958856921872454094191860951223239319798622093695512039826966948431816175718333258704909986040504036226699672526571692707091820521805724054616289873615143010945546492665989991763577421416826982597443338745863320286578484412466678820836214348284720920143408852503582467368523982745134202916913090058623650306330137499194692477134066644754082875191504933286479508964118626514057940582615871036050246677835962809223948290577322982377143646477688890239344634217693577855085842086000571056971113766841147561323764438665973475815790681011802213341126493905719609057456260689008085289422820708992141367805353721945027711068828863627021085607527379166737611375332098899961991578346521865934414298420195564023137592447326063579347750293050839703998232521699594923265504154181462870474287541898074318555598093416266666523439087678146811202387521682402852861665358599654065695473554722502956265084470975934321460779305058734962807046604478718055651202974060922178493902709883863619579316226568394061960080499164047344182796002309579050024710012560943470710782768194066407902107783657675099864042854560262361219506734264699404024836133293364290143112737173911757097646212948492791687656150449925721616936072939954383992150253239609056262963894555107289110826501976299463392225556204956081768930797294983541226566244853463004700481916451498988755038370087932718296364860285891294440086732714857464020263721446002972020036169173251729107173960067487013945406764697460480408180065310143753919161135077324300715512794366326564339949234325316193123081625844192534265863699507328830907840987416260505989953806426101753667688579776658026108348326209473634257524580113078369824775627730300185565238163705322068397540301567398429231569253756879391931261593766113902894579408226318003981430287630643291387148198508402392866983407637540231398700654434018074795452517469606446703494375690570441412914558380216151942297525965981165101527171683541956295802283376088658789029629163125790041777730336715613611596966697771376411377314402056879188503441459387330148978664951919094600379791304777165377155818946656468367099036996567583196919238749746361323968289206721325112487687759638252951871685334299065533174001090773571706066321723233948158957930996292742065779016901208263386655635525405252352270891576647981161928802244418548278082715384623044064469950582550702408001825596981017830073898148161589378237930412941422875108850952954926794830880058344680123328281359237393369842604126852735017476758129507145607613443031047921024260988738384407119973267165390857657629706279323544645797176962127826916914548387303316612053260391970548905287765581353715360207861125019774884325329982072570756919256460487778116799559688391110199116095953994869452669573980588032966737216964171305235720474615093003665733096979105465413986766743538839038307002207467949603899236201494894714976506925587152340212092018762772236330983576276668710575975963940459511738260787543963776900710292498333312007088862438601911563729595837180158934654574333374724689874170398011460235336987582115317651776823214575865839058315465924118072070514920150938611863908801793935043333962956478113225626060510303692080779059853297909218780229054613056736877142153324035691406989472304464769651609016050500923829511761682830214587785784707590907894309235262498074074000632811086423417385012829944146575431080158305083144102363175889051203278440896432598952742149614106450796031839462822275395542029317824510062896850266284104522923689210425005018716324724424508084373236484190234185719138589195423541994290743663530849997010870194412168196387484295686446985070509087643284948252623443523831176836694964802048853992560782156359401455635520049220811486022953075953864359605202836706039887342608951001457343053119324937528759639096311742265792297073077946478299946287862865080223104898595638810777454335636001666898627643898273645538816432217190357696752891221861793416677076712729536643770786374363305476613058066600125867072355134361450604468341570574084847887754974336448616952352475848465440979217311928049696518337256933609689576852188254225313466240070657951969013517132532702446579996395485786811837341145663741162861626599500374178679170402702315406098594762784336097808088605564810978661689825288286298548393788847363140979526458525120157286540277599231587769523628894645877603715941326054758973578228585989148682876714381045804958593044026259924513391964849063917994143360228274269101347125753046733634878641054418961093891093310079853319740770753577926755313672236109757099869235536815827615529646893859279272214173999774242754911650991985693109233522924213515733297302051595969549357106571645298366977745268928737202086822714950729065968405701808018224281181974477514050378586693282263005545560482067318887187289278559532250147398334659684857900799241000857230348805750932940343821714830944524657607630735355502673674339481895581369179533811856446562823556379223556758015575850870714035931978736699491542069163403739639359387155199836653298538379552784615167331832018511067054544371690714688060019756213456494648677363658818934806538958405572445881824181046608593784286045753351550632844768008054389450717640350251186805678579508365418155221439403495244541208659169937258365294989872804606529104767250086890102223052727381508406940064227116244732024780702340016774941489997626862864529991706994189527244739702149520340349921585429369222379562506016841883134121627788961179288723239889080132192501948597617604737809942420668523685333547642818906839282375805350111679716043033439658598131766229089749292832297271596935177734506628306107646674136680651204647780483310295312858500013337735802446568051158367541357887379303263502367574521977722377597822117102903247015081195252412406990663647674438114767212310928409352939738690808191860258820217355552354314414526467092257277436058126862719988194798713432565097788941184609491664896612423332351983506536124217058959839471765747025755569731365391508818352295624428742441175074917779126648185171570018135718120027763636465357192917995322402109273876961821234530156486248152609481884678164810447492093366979579868792568957416913362103827910639639802286019632514280895594903029757324551762644980769041445083332801646033989802523709876144087656953699247001306792999893223964945279140932321726314535753318959317850630575482433825232185120176695745828385464468887599198045670501810157467749778534272872385901468376800692671831074810404676843232243697285799002240549484680051104624622953310768174402635050621740752907075032064150469716903425521204763061037894856618162507544683729409591788923078754706778740725706348205209335088101521571519357737756545012499054517981110545188442424451505908154523758369214812713089867092919002891548453491715993030602085165157292301283743250747507030674514213174841841829079591383267430409004567135879758133719920229402414602549478614102348255306911957525269560979291862660894233344580620187296663973892426749723325836948600412462057800912344337759412369101187286103063083783740350086605256208176922815198146476425975136753249732261619619859243496820925428764497395450906029088211754958854463456947752550164018520299463264071189529406380729637286489200508060956559935012371745061063128672222144136569784017217692713903496838670683774437534534351496066716599357016319491715244480413581923662481154130228895697324902202275218341673488871147065545723452166334230221519899400008691490655354961004497216968108386506736939070508900596134550975496453250887502859144868604455191999598236348319389027342756666167834508319772016194200202106394151100551097391328006261075650703602408965486149950758172025074441666051854846549975600985237168594229787339078972147946038191689188181311881659376097044029808185045533703801373105688046646128769613958605432418002577686276305509634293928486869451535870929424235974691601784373995508658490053140316367709629164987959486064448934268757357625013343736747915876222439543253427710683842288696262673785317259361147156604065943307210588761343177543854445187551923271707890445766729174912757626306879078607136079914594596498505994651542291997330915086685849268937637751304228304923155713203913801865383143401254709082072071770929565987293391147936467589099498189741211932279421986830024540041618896087923020568456405436324753951384220173794056662285518040497490453856882333619348874290796035998468228241940320932208606122304995636610329072927101073599284624606123710178572044840912620888525690324908144538837962633144970771856742174228565132597739217961182876200991328017227490668790161265502636210523485446585055228345729334412195526863084941587743137604162496210412281258521824479054840176491341750096628589972899349656231368439552755636802413827448964771361967592336032736446381565895063280580673734575021356981118887551778937046253825610818821904894764658166148240701913746506497033368499337722927961993475503491426332861304560330793894857484024192248866765575089918595968534283849579503423907410890195674153876164525572615006669944906646989006412332549024313920591962870888586872753523523144874993769344977374996428355428001881374885472286743325863305231274922858398110318870477685949245251872885534818948599420601883522391010750382354160503365511367301501878502462534085319829350408873724106394001871160030638838442391721208347547205705109999526852540934309786066160212942376959471353405145982698289400626387759882605196567536187733412663906782080671832599698770161573270566268925814418746519906398575833935257783456096133398949276169190108171099575478037005471159021809897461397156284069393759359518381965550314465472209293029440511380663086241396626131818134356636952695236038960512146054294035030840621803538860929138913989852542222113323090540761129647284598542486984064128854376195671670998650801839591568741236687757536396429019608880776619780516839177285392107283085750358487877587148773436818544949780089968858197504895498295780786868206946048700993653659274272290330156959903249469365734192023441807140856933889681554343723964082491694253243558861273860442722506443570363424042088016539441025393124727393630689290219754723201653657067058129590535726930223862480836774217401738498592480192160345550860048258784327360407338229770184053746259600132387866723030460188960764808195962776462095444201728540652395404711737229600546607014699364963628166315540408993682765078365603779934447572820787115189062915233272549242268141926550808044686288323647915921130129908412758392406929953227911252979508642061929450632497372657015007024994581194254635529502880671447379885540838173136869086842246910895505932510863665495178760361419629383467344598385561824739216622318098143282051541729364584805290574416552846671550584709618157404010271729418870029349439927777122512886148493426425676529266091892504893151688548289344228598727172239656893994232488250667141114508075831469769577361922666776961062476278194791534529246522525841337849588439460986297389366995821144175093798915771420415793220215745427555063745976729389496643216851605649897969755396013761201613437497786542970257327502956124514591688514418199793126768781166618047615485172064018564503064454511160290289592485779763110452968319470068217775393473797752394148495343692271913260472112523627269788732631974056250478101104466239775552400033292003718852601694308417815804631573502497861756458295297490775819880077022251279751440628415522121972897679490520285050889225934522993896163718263127684922743011077512096701466712369645363933611436561044499930708929255997147981212606893326998648638055900337904974138720866183630954688494459856331792330640451772292489691757458108956332466610465287740489690295402810028984931059286744934789867319656087548820220392326196023419224056367740198180354586089139771760008395651453871095164733604309422322308614205499817740601668899476199077518357145138893390898028640310425676322273715074873427736450035719800861574894239495668703508164189337949392720654094464609451562071654392866127723438404376894649515352055241937806419583296369204264403063785821298943583343443526403595073868909209196228087418450390269669158439876736585156327569582331368441508707168794796671490259880394308351892829428151380899807977065628829428685189560038818449183871472491035583637996549424372701644687511405597342788297739907389875604154922906199013204351715835016213917417338749118053789363404668692917105060320199548118741100177940741248163803070238649345747709308409611521513716501490220088176957317704434600920915293984478369560546945750201289439446338432885299303701831651478115408451774837240191959971002177578859385158322371453417772223349290876237911583389677357964700337292750416307159101668260821856485193251599371000897350519445891714875642569852065420266507865382228571735892235469736826037962571769260359968538784672578293734152020068615113904431514159305645252194223611279406185620357566491701151925965836312731426501365847387680813002908055078175710703838037350784540824822718928395460615968176028228631182957338004337643709405905715384477981479522773308047901132292203520395531991827759950516528176887042365558885067948512007959061145582536486446379370285558753072836965640267940031077840958369433682407604086885305706472349313977836715381462456744131951409009799595306666945539181986438064392214806476810165980551633728145378199355268442976272763069086151905848254764454081314202823714915809922946016382423516091414318222247059325243069238990667272626755636769464967425753108454306574644659296638354208520096628484748494609946849046816781483843228058035474452730263127216338554873119593120376628220423015165581695511581965143280188946011316974451325623335915467597440228921465926039554794872692329140912238127324544890802334650155380822338093459878881578053428305356026248454327610533379700724523349174505386745364616451767301379976199485668118862239504619605320397661603405559076564806738575546888376293271545946398925347900127372041860572147245858881653214512964781450182496676688645896313487418043750788932172458260262102611110366956928911555599166865678620788947177187250928625023591107488950660975766026021202182826189733437865388977496758584090828965733708936190241232682026736395113794122359428247919353384385394544923297986459278837199434765825548347213337161430720975820602297406299847504855032094138098968624997744997223239328789277535632617885976661640896063382283955908282628656486587640649887995915170333869016393384700925798055085316059649320281340264376659847606856720115625223173173036083144600207095009661105023148751707101362644475485138413187299309332812448314607208067262657262937679800789879486282692336905338581446344430162469883671062159753319402608479839429163836776822674515731662447905151711315757000470932076760312080738856230672441878626181374400636238339271816878962262410642565384407734522630225347017381661874128988298365348086638300573603337277649704147847996833349397941582052329506691720483366060913686372113855162080838472909343641789486947183683634436180907777421977756870519449226891467151813094188336806834582111679088489444811520009850969769772883360384828727683407884396646183229705029960293227861398492492691657275478257204813605660653368967148271841430220355677192226593720674281218689376418365593936256517336011299709163440676166197536933943533166288566000502354487493209312810433626465872669484337924748593556387470738359021858959858417026862569701610089212641938559019899770334909228028081823047686313457938203060558308675964202459092035388514797357988197557711952175889040547742015019363515377875157084813267296074427330142756266826732582199792379531550508378511080530698843973975006594131733608906290469642647001899779536364260873542936272398995070393310449144469660893651980761053992206651261110993828601711809197500938161781155442286400451816017125885596250477063454095181053299192950469594036830177030422797843200318885335132080223597970824239424128446194610991291407674166360374317668222629957959828255418762401526767983910373329821029155120255080489357161097930186296291733283073052962239574080193856888896694765816447294914720979549708404248717689988757565407904125883489820223617905794006138643567460123713964265095115671125007744883620766492721391155616990200562385867657536116362519454736247368412444559507113674966540720928342049702029142467238566906602228174325208496788679852456295065482849483851510644781812068786217997914518701233578731013212436076110899755049675167890045340905774758054336692948754227385965895737716773132398894645153704949543005459381133255847225110810803088768737071058425012180666720415817875107246951505178502931203547415736557688681739461191138017637983072619708554791293672759637796258997464957050446123364583457914446702398612552823482049712895276650298612174188264186895781782577395981624369359398097819996995823295218271154750700322685986321762734850373845560697221387129602114364883093466139122914399118680412177079814452344006169133423090462615300543280338565307064178313207791254210604456233087632937264351024496707349162170846575438471093017368743347211160623303530524337650216197447837645172640228776392034310799850371641626803035215849702811753349175665093841564901818442721420358243786530580802952615414103886411729803966095268546249529899479379180371614832623549237511805087051983280369256511699878232410143291846724226716574780560977203474675209567115750010050570028291019455644484448386948936019387596896225337721473045358743560625096324644470270003154396571265557088184758432196574198364512401469984856763485180446536507538586213528095948582166060824332382121190954321889560569025250489681982376169284849342659474473011360430635947183043815362256891173914946406068602765212954382939936931137365258367697646712136579533360122613136246172470415762909145036314059999438309325276830010396038617585714155999140433582866263780834531861681851220317414833390358080783882605895341823702240358683446932568763490568543192398210757915012637475304571096333603544646445039662586409450813418036057949973350842795883727862114677103154410463640243595564558788294949949564415872325008608159761341498458823546819179326199479977456480692547725375112166067671760913993219384555724694266041181727241282002766399454613894583363960715812630272305956810360409788388232543120574949584068729498026718489856453064692695092407076846117334422741278233286034883822709752636051194637817411459479791964407898728279987436816465217022223625592844191125757143937090815201613078528559091502542181549497416871169878135910131711789247702044978654139802816909896921999153964902604292279840832341420200590611238029155261502679645850127521366524351966616971714219982737186958944353445340458232550574948636529538180202418302990604272017031257706400061602350969306354436716685892978828580701657171023061423058595940527953983888241934249750589493259243713861028745274215449451127304637666629248373441873319874164356008983793456330980464475386289064107762000943526350245113547245387900080018355126800211530807593562767307849801286385730061648791189095617249906746856443806195025005654730569435502458277523080306972460238779565470063656774194063518564000498285592601414170893292803438793496378449207896705656269719694174584871764918680453868626605695864273444457874071721004572662966547219256972991273538148153561943579941512738240805796120902848854945963047334453227028980198986256929417952106771178064767059532481565729770723837881716118143796695770359938440694533844676547935618318535391691630776299276985129581618804611056718256476101870047109105947422958834639157358477465864970665477040122837707553853987231617557905137565525823139401508319018999396398320725001201953442743714752793067739735229981968115294023363244955350846956362268321516207270684962830152696870847339234769679333848262155504787852040528339233883733850615785568737990876081918494325718396285384259330136476119853127763094845679205096858856305607477783765065556737156196475470589698987399501582404937014556055138529506370303223273782560978420548212428210814100824089491530933717298760166186642615293617342755815145437467673229643586456672711821203186246369168261761787282555271103402288705683906088346044014948582861002515695469157926378660515029942218901064325720631578365485718582861490723805888906149223925880516082826918800272842968990050732274097711592253413994909258871621511394412383763588415696219148613069934378930121773674041930246562042169731846569815276997901720981221431228857607390739877862728151370211491481053676184255103489754168548652791958846267180703081973064727746045672743503788235259127158334438291544512011986138004463381474535708518669543017767545142813160297759136362772409503697062816696158866023709694455514888067615629956301014581573785908762117306415423493711231056822011891540345822873970271394067146136025430351642193728714687833215367739012812763509087425505855632381182435904639560989097106339597061466370125134668527580461670088924713952984957990919985989347856483425588874708980557940126597199859222004815787330215069339346225729004273418435294200854331045666571962587406072075291627995691347622493259169495943280216502173670619502063262668638167084813055750012848756702998766479621099272079361996359792551960500332704095477771652620865487413282707142028167505796881259265365179251410479381890487331866605241242118037118467489401026035722300932006565958998639144016405467089677617198107279035607497324574715858217465510528348446592647080280062443476591434832796556504277972266657049390546010105554666301667082281371540432158870109694782451292313177108259965960339079669679892255445856346119495755226574602482212653126762496923997127522057930050432154714385634620829298338430431058737334523545568602500931974155593595010910214859214313528821994751714126258513814363264180629829086746258370116613705251247005773915492043922984693024543136566665000801956619538584582968092299566336131986801827153908584652319799180923353962234218533091344703068147499813788248788502441704666876421474204628071449443503610936898210295937469231538594582277918457159054832522259765898399921006338625457569715149188870731493993718290906841810568882402258575409515967793867782270520892421922355638448568738876140127730328460054273682443882296248025986667180313868028581081846498610906173002368516258520406344591991692743506764753370861338513044418731447404612464550810644062597922399746650247889748230736104808490035507574011543699019061254692133655504191796557744626596297606459282007657122584878567411352719767968787572281102222687333744735972165349129732449735870918756862861340481853222727424768081537763692034368545287019407721877087356163490816849382224436347640928194975149993719608887396790921425932411104482135939606819007461323641072980252364057154588129421204550570550030537041074308595609805629205453398849951715302246635641006801929989825558288486343258507707343562199076170765229908842667299132741124068116140491500126298220406729301849214520673229722168999623729776338066843499192411050723559334952911151201633880839277710383342505741528303686397392727199637478122954708862429986295126310773580676660674303162170197976955153033859172000696969206962072901428427918667001902069819340005811102362389181285205796385688590691680736043262853425661841002458595635018576991901206714313739491561370170373784777975782365354794310401211827369493958468976432309159737583799718817045874423095263073917713172729551735685792452491936778645671579799066874743475452060917074879287788881260548049193690021564449353698196612831347964499613235172120832278288694709869728756746774648029376876210748300108088420195194893250100287083013317207972824090211327776881897434261493696287819856652192311213414885066572385972815508800031124350948219400059411536989098198897865560286952699151104735401502357622106224727388669734874063561815357430290667847619379175486136251008644518005796128112162369929279230820122570418739855472630214231430009997052695943235747862857565726160163683773099226662978388185073348495328189966675978475157407721410915369282174233465337508191552084305629182700358997731094820166134779053344127304095574528573934641919017589398410770422099495796331138107558019960459210724701288584849599605164829475711680769357353662162390520017839519866686608814802754700497749834452959853515876610606652198075081147906822503368838943382093269870984245725427657200118046589944419002068284990385819548379495761408211737743185866310629225064604243240528559575353233007890728463998762339911498492840264195248580588991379500527511359604428204075381159116278899689961824508460105577435412742605813445697386422824658638176914241199505269849842331262736758527712611533669114507532575311057669236941499018574858944986463048868982990765148739893666524822541886773170674899050789910303929032963988249044366696521655720691215762565567780080831754921574517008264751928246179772810086297080951929194003183695551356367280334853286587851604932028913218681069118523189173733792572393493669708683445880840756973087366019461967375478694150387603553684143624956678957328935758132624391444314482721065614607999876623127893376294608778955655622589278676632304865542055527823626736049807608553547029871818909897557319429893597532574401515900314419344714518080804576682828744096001500962948405450851340058726128003786727940622560698116235686383424715632175608119119769332292277482101079351210028535956456553927489654625241093319237282194246157029832993478608300572760446943318213560435535653911560827514337576871220940142727344007405637249642756978631010044946664126417681124023123952693955617821492120972275586376527871161615888516513700520787475586717498388097847420977395901852035370000252016438654272318804551628260389078391803975583544017618548000757230615606157543012084731250729489987092884632031057983494516324566526169039250397051585138104212962636860581190490446134986135994397751501733362712668526899792266284567890235314547895677295310531505016808115074555852747024899532317673666744330909488064081257935963039069493898621365506992202221881804220937428991489259311628787548835332911717252499560473950824710601806957235039727710257466222583782473026739645814967849964897724852742139941280544870994003845482038496347554283365282637915602167829956253310137557937372918944416233075790716164358621548636692781698423956912499419190148106969406553175533223161482073330884730077654966255531534455059690511212112427573380217090102508880096433234153594050211722489487298242269202428227503694247337489806372991417678688000788645189557975410893172821286142397304342694658742345164027349242581520833835704778080250527869000340962137405265248415490933747597863290614891828277258489387952328167352404156088454505904322144999879792953367500966739376296717593470669959158097345082507007595823662676066102634531992390344765184745240161975539978353574849413882968699154061515014370890363711256098468924306208991136325683342955999996690891397690206493494998920113341847411771398065127275850573184817944528917336550474916184358477398106352463115222797726849974374058531439467440661755020154704592884008315397316727184531698227698068822640107878190186588196489779801034066366643188091874129092451797785232227599396528729619100479791468162126188204361799613182554624229554603381221731642016634217484396269873383049652029416504624023616861349249076363447223851980664492730504136775167141855863040210996816100682504387056237711874501335966206902462590935006448635303539697255763759729448585267694558608097686212316416942290580882869108569199963851429485719816827999797199650185845165169735219981324524611941231424540842905000327582232996938671339138690516079384482406623541770672256138257241300149546023435400830627864918033836437355840731396653481538004413841898635311310189972676579484661660203532804069803180154770753444583814344133878805366630735488014599510330769740858702082209408865368677209115323695372701502037085059608638612007401227959202837713283865588930958665574581756585394790983298953391503046102751796223066439312050713112293927944433313796812053414511328287983812974342058469771049840979488560811889593612045308818738518419326869330089024906227609269166666587902458653697658916313298819143383454013477409845664362203367702419730866779295235513338805747381129809424368953213134244399745416552615692051187386824063203365251869601075045201869935753266131894151497103475285825936270437993979973068383341552325580899466723714953383600968924991070640292294886917124657942115933240582371795115815930847002481831102816953655901987461413592526848011942296086544399448552333443327147941388574626438502921670171930747912572304259984661497429394550980633391477457697121677511395119339330566097705685674975975357328392799365826956815930101552382821225390881676659949199363910268708856369590993442265674460117344322764513282513751705159407649934356183526530417956830012183606672800926961188452020774724929567653840542532321187692100123317424002853172600315827773239691309897728616332398941283837940352506355054429586387245752573161104017897461128295926748782858510643838206345934936423068484363460051677712349711071144945035209256638396974598069910414498152605230993085254484941415031123518278002944957912211844422292063549646880859689854900256336646750679219285456995087386844623592068622977020471455120869369114896847886497955078667393114963015376418281584003940164795081994416906708970462050577580078449901673777684161133922367874902981311241504119883789421874610489788108166225027078336546158047191599814238262707614336716563836494580975756634483470895235894522199895280845950073380459104237104947717017913879285279261955708817141258857997122063097630720638255009775944825554752700505843903147225456986614988669366730189521755742841944451766108590263496779009959432024348321761987024996060755837941776224964220420215446271503454901973808178384759900309790391513460753169630194289205993077786329621136650653456247941640327824333639740998029478366074942123216320012414531207056642343249458689244249080524897753223443005278314691860939633952259887519089685124704299383690770423351309533559682826721808465186568640523334099938827935853867267691813546234664687146497317139866276717085742857918930619395782827721916226689887077037273156443882671975146101373123002507460690487436338309617681220479536504097301144261052170223309240049505880385786164124257703531830068679497666657843289117024244390716140929431781012798465384780718737760304059335912484442423677420946441937820996169567816533195944471813748489801631703241780972772284393653096243773820997374896564198351294823824839295836610826129945271810584443676376028760707456301000336267823249133039513160893974887884186036695189410632174525612521421925086436485229615816950427823230439273969963680114735832664258155206415644005108740044465305757602026719379778838177682472601278637559779189442353450721870279391341606696783832783309193565369981542870784265280713413577131357296303920221657672078267386609316633608667042540164958590755089574342218253944562171331398778532345542659531024760491132391379028368149622635946594729648269624635285107483868654462217071635759925755423010590098935799763311011443978088157075583958464410352801579343277191436523124786534343333529086247927631975158072545650103161419729578652204887797958804473713301026051307004504923451356525619333336389804908503864428427013434927492769050268370633547697466451633811457811350773248472401710535645620369265817164246773857885217185323784405434761439155452306269693099939258082092717173061048257121275153790546102178252232189289337196024902858050791640805259455851336761184678387412388792772983780029488031784278116446105395757896135857571190429082146561847142936407069753646798713787617777070207643864300756463142183038838141948406799677438996647621429904765113409790428562449394490407561357772814329758679244047151789401392828575145690372922717461214832755030333295034117245162528287650172262789282779605283090726310013154135908624657031525434389458024885029557861819792651608677684823823373454536503624395147562013933718406484001586785569429527226798750053732877769822925746707058754194113122475394424945951396532848916413915044347830225363405205639172686457605899175855908613986268101278982258596981541389526606410344516810558220183575762360424032793023505227185566850819036401723947364871676353023339903799465026520637427135830740967967517434641018772030637572453970793508858276460076421780191820075489581972557809066880628615468987991705761436621691878869775813012872274409742035624372565773736737808868409550859100635610794964545485170455439640619828621505310586113461722882842607264573626747389659451287905491172640461361782726233427832951349065295440778111313174962404293773835654567248539453951430095308232950584884079666375267460023297285488777442565381737503818994993282511716043979787318797756405243720151391033946338341140293295650519195736370086186981523091653912498532406245363277110262010779368952847194556567402089945404947860007295296469309225241316519872484227946365139872710089620942737492303931725225021186925764115218111137831963387793529678166386476454870507450226953426095733501697428090797854906267039138217408461781477703378606457189993476723445636475822998102816080732043225106710084752233673251546993422891077776821928602482820285110281865754452205334834632797027953532193080644025946179288492677805435435033760145888724661116679890202578876913396116184930819241178259892610283879092430691643462711116113690397747580129548795444098094681153355511116029408296946547638879286410000525134400913469625080220817249393675582714901219406914556382777726699360319713143977454593668210027908883759796716114883706113320671461087107552327525109691927715824265317744732081518865164238773070906814550785556367907285653284343426510020733681615438707536936220666627817098538551996832982902454183802152844970089690989284995925752175458634249689715166618009644171499363606660993391340923010199437176903734757185793965053591623032777706746848786865781549143545449854783576477834650512861939949842093341994130272708114905674786304847844803579344715577590148478782408237438519691043257126742266356898089864654659313207909254904137177698854885035432355140387108079320589085011925280184242099969546768525000062724083617521126034864622712300594117213787437497825210291933500218396404216394166931331351058726517914385367498284110987951450236462425105881979230506151355476306628000783520817904251181848446833687898454732958953443221633654797372094673632453857494234195982847299608974880363578893050861744492487969743359237730637293624194402243649140376135624204756308904625092244937257724031078910335853266250125498800988219002646841892161921690319036682706948357773504243134196028545657474622680959143653552794687770961046672395393821221194051438602738565207352208804589278428315904375752301813001302589118550606665517330095545325249811047210885940900544141461693403055028386128588850528278335582201791275983000701841536254195758581668715533051765922620728739985792054873235249210477079941238698736287283237011849500399987799156418162428783330453682477323573533667142184127010599433766708578513492786233339123431307311307132557180205809194722893856752239592104994342302654473264583648020483880092797333002634389493034468526839764457996568619557165695212240165121871308089209609326883798699390858395076318169821536636396889410638281468178733382640808736710994018753508701823985045301412301652508094871135660919267987637632327087597180602483009006480146604323046058881057864135629390678663789100365066461064511321676607612198511166216376161497340128522905355567048979543486693981136965514760711145512400040873415999250991049435221434355798955051721974713130581694892654158276557505750599771166222121938186646641716969539162116302286832146753671587620669445032115544256762087119056127063829942373468732033689032689340079742883188414763130430948375362534516203491692115521393432179025807533566043780954797303199049050452144480118933096131121633539536044103368739690358974472873103372177087833357293108415810969701210102103881024258870502283420570640608366775178501090288437419873685844904127971782239440559293319438179585239856267823584164832074799341701321740705033198896878345057207458232700447497501449635178985792328260108220019710138222281881085022165506517557899058288718111720252991329753123060774818869131963239651259586123319043799016054415870958381040862536379078518568747189942664020313923274495358401431357806685622825402680453785774892907915781750040963390138019798739668566256314744416165871543393158881689111206770191498572479074559254366537362058893572803599923048932300488746416060126503776660132436197775126236639775867743433005762067933959904734169941984822296092801908128208164223677592167864898586513175549640858613894365819661001262000525325775783768461975829181032346451142925275130054456868878220668171495114209428748680456070337014320108642160673470575879740111711597976850815504932781125351740298946937643963511129875796073797088237481818836732833492360763282355002590691192946992555213466116843978144109077207568823536652651695512065417372919029239396092840248412302050072655783248515944513478287656375746890925920382656617554753911015205741187893210437812602421346893837288506490545109818152178533992598520523462902157729614869129271272741950209971777167688336967703023743766231915387239055628864893514418041566254257203305346676006368431281337028986721923126555324984266709013252202901183724451928779665414685757701211790991694466349252811805729039485595713900762087240958514143547421764092559011216095891787999462549242940464166751611309455879931815842375223549762195177953451429601474053664924294821341783362503958229551390081625883601630167356023758217663232526072279666613119757928570753031445239756206635859974318184798636945478333910392045039965163506343118557087784692997296263632132691474071675317423639932280912343648272290285621470914018150621441284746618118780752190258597740730104235771765208793516408031290609855966173611907418857345568415573867968003343052560725869587397454408974225729727526049820028171699566302825050209660847242779712151404040462259249613323064660438848683793436972022475378824000316288995360085600941448723008128110951757937564551551615709135954275326859332053446847471465506339592471225907128370225610631356945731959451708275855478667474710752832974582976150411902104378585373218464935759441336952499204181664482381323135883665212651318006542460618746618530079697710584997998654185570568033317109636356456004543105410826781284891671171143191775349951611815573773994199075444849617019996347581849512094936018836811466078607103134875352061093906216897387249014542875953037917655215777413681217734839497934581409655194755406602764203352258589954297634219205781448043947026334080590366695981220090207051884622556624466932728238369914572981642077610148366112716901904997117953663036536373312400910477213148533346952641796166012362196578071260355716947855206511960170755905046285607269237548886804016784621501400698129902560676720943844678023378143295823823032872312158060711852045644252084455614685893290884844814180721790678732662651235696242097802706950548598230831321652759344660306568025783423656990611489166542009093937909427947396078466832537096346369528395652740151844886267309117147047769600183015119503842412718745463011673423388216360131816482631695866411735903127398482421513247007907719803224583603097885459624667503249560918622702850946419122594367223916158223666805428469700195114186055484398116368432606250752232065871952444930022170109880811750980232259253005781295364195681745448874564981956068170509300552515498670511817543776374102396473443003022693029468171556161962702580521790607073349255585336301106684938843006905099317757248889586411032347015172764392345823036918434637900230709713481623737989474160832250560790900622327173372636894740624283990501356043257462872716255115600974621064593532825476465471233476950050997341087698443847170631852388269459144296593359785299451539524143854802461499387053471635301617620388872247963117326035214411416578729694871658086857052749745981006668374434745602014854178608227391822829569771757388913636204570317672953954415517907039785007192646834037258953574956788662296120378294015376399115574660918846631776126869553702129991847796272484743315574560394604749511763929505756797713500019479705422546436173261563748814858308616012272472350722759414113113971258589066446819578705047114996186205873180311415943736252536525866563617786825124520386488816358386095874264885233554985551440187195076706428847688905723292400883575487248249126077733511514220266172462929898281953878432786873660760391346521759234753588567254047072566655489744159874491834080042610929817427624927097741483476626600502278425488346693080248704005656376755201608604226262842235780684877790463514944820211050421914156015272431607916061628860918524256052146175770676118162106132582887747737802008460646354445545733104448633731269291319147700776028833608761160353590514751285225489965701259180394907825953174459554100142650447693379183366613686594941072113466827981660980699755341593077296812618793242395718120569847754896443765655734470153568682797219469509541299513271006479824618368861109255191647902487581326252641680747478980720139692456174559855125902868961906539356540930281744471942079094695189042289277976166549831825580536438030504529775137776791401697160068307120122529492708082694411840878335882118286467501388322858065554707793397006541076583780430923797809982644810458319439462142991958250886279772913973931945846066761960573079137748218337076849159446179344725224515024295442708951835410272810974592005763736313868232823764311796539227660048101713697998892860990407621186945019290024761682568035871479448753036585257331940249686981882637249645677921576140477771814344314752082411238376272746317579779709134998703412494271789344155030577312774157181454943753814834512044733186934204439150563282685976396632999112362213385262364804862875885918913384774029008480999720272711151353669758626318891794292055989487375750247759242035898851525681405788273654124440377510019066620872128086287321753776901676279180287329848644984667010418464212092451246663322984332741122376015164237293943819243156631650737529878797359044331460450747250888878938296927721242557641892028743775443318366517697473165998980327749164818758927870472236287714253602163469521346560102963355840174100656653258245591073311814485789022653570047840354860034061342249009315616730382184273032377183576698913641666855955787269107246596995912802802152544899448195429670154286111154586231662415377140478342704586930064427019729315812098962880100808460813661675026406476305845608569695851864652836138059286596504811742179962961420392619310675518166038634413210103057058504099307546700030895301482323882494414268220777047170649186898038444766265838113085607852033973047809012560384689225427934585758622270000745845377871423030933468782109753791433788921469673921165644894546168814824694646021391167611010686832459004584816787412370397713918914242142876800662959676542604679041300260057038226997109035796235206509623921141326251989031718355541579042626464146568627568608395392941210183892501710203599049611295581042307715482624596668637998732244254078857258222320535857485766271610673309254345881401790869348981622449801979514449149212254724846906296622758802505548976361376629934973130194993062513057642075838771064110670907225561659085564135639598162153508415562620929781748489258580683688627571113012029161803721612161525395638543285157783571608169400109297852906988149766063935365910290987997549448176400551685269401728262822109030394390516588969374378113558776965578170465754581060638452422090874669321324657477045411381677336384912596928371833511527308142401439506414009443907698652902269995370928775925669454124280736034519981681041253357350514379822822071251380851948506602562477503072350604908794292119572134221713272613630335944363891107475067651872373882939594692374842449992205986616520488730325246316692775915308142047677050478435129487786552821789820844097971490707457833960979058565737900358620760786851017034291142329505326658266793214069829553646262146602546046370415056100887440239089817976270568530807372488018833568794563095243127344476218506380332742076718323989121965639971594024472098123521120364576490021909108322388122160242619890329972859969170211587582938791498481440061231932755757077049004360442299652978343410543032548034963347325838372888042651838341843338689114695539430241145352916946969096386527562470719634927093131443388001917339820866734489797299002164223887066117478571947661194186866848700569627363872927630595919461125292299862272580851751658676514545015402677132535901740930271632850972104489463568797752865434291212340358494873968519389580409542604203350767785317728602907943171786164887765333744460213309148289206666191873034720540324336788195138434744217772467329909297204328963583566895242585585223012876981344605440502452721046812354013485668535961426300123019187998384467169995946883667386639240864227967100559144204854733795777340910219729347964882835957202733683168097097695036599389907734032960939483332482556434745902569314671365101786902978650060509450569978715402197074119653826017394079010209632066225813895457407960132065863512926846407297224544761119986161621083216776700622560842338827567680409981272883430865025478999035988079820829990296590227262610359687986637221243308227113915175450090192799792129615195859331197909590025282892300584726538210933969419300486935959464896540805051949863305150884497011578651758427511276392765322326289775564707931090520774568441567146131285529405913402511059462631706214362465922374033472493122260363051733329151810643274688581246486661189581532514626851545952861048980257086961138771391511154861232420050772113317546579247366696540997125836878368586077884586819675427341625781290912752523621442945365491571157488146490818083910303171900337561226691791959642258969716546288624478324448954570608475524522808798918635035185855170354460283840497068997273088080786340187884501839465842485385716641541521757418837042568266485710890430152624806641304073918114713352615197755867106653878394554452898761902145866544309477916010703731028825672929690086089399122126785796647089492481626989465365768776831906454446181340301847284995321663806993966537007643001949645680801760987604387222112558541102841690036160705649952468292899370257285847833789432996707194066543466587163731342636372780511976255427771553749996218149155586760163710395291267975548532654965618449417129507528642101336561727648856172918323159329824012777525638508577337133487676402969267233441062543971520717012510778319564360265032238258931251078529417878782717155241077792137565682668407421899665793272885102451077045026143593491983937880874465855697110641525690441918178012885220894604643432396780766241575858451704879120996093266866284139524726824986402849019157840595544772308332537649092788859299281509977514246160580725771500528437594406858778674399943209376291715121190261201502888589249899891579347695636067612229954587936301925159650635195461295234800492226040943478769692207647307460838675518787565985722038733881870895292543566879759576832439400390242438233701766460107948903037467146252489669195022879927918289197814770879797009649536656989241264450816129650622538843940646625244972384472142953042164401077710377453194793840144092732939130461188164315100525881725095355431569918242904760227071960365084280625820910945988945674911607623911189539650309422515392801075064091922769881990883762651832714307110536594154906107164976249269680510789527551843114414807460061085960717211189554672225206677331617099099865713603420738279838825541275872402977124279090512782967046964111020811657962910766865930263435343338345342175115996240970515767205783318058572348314875582518140222889280354898906933725174650271569548056357931622210083280365855043966085177107683263103929862998873874942933612609951259263169994829433851023912082555464648893373664396693529260263299881490622397993920732116234530812039100517847060135386211112819125822007464154448709120927068837964195208619861056231292911219496134993567055568352055925901478834608092247886750323823543976895991915083572851649699552862739450223101246690781141469752362486199313055059092867940353186756070147764370049731368978825703044220884421032146271703744894325711272767128621776165856702217084439714509714115536328157411567786983489001666881891516908156858942471888193804703641614049468473321913105505642934640887814884930952657564268639794119588936682465445205823747239691689261929715858633965054712329025988647244979811227744323810132014414728472965195930388905617033790475968900240867320297657827394343597726035881597873402141832818344425847968303948159562537966755689070025340750651771636840555824710622427362817325867530756509112320019583312461329607194394745299056511799938925604444966982446293227838645446677329173697645028057112169003522874936600137477877529566338074202148621329044192491738485978804742989629225618264779560442361750987380260320913227743671812873291417279270116038559102217214095713163196778681772537877602836390725723099442628083950998350571538770360394563576001309889059767772135776537075286413182842891568640018169185098454671750620694423750366644600501198784352269211225865973644727134768273653625354342589315515070984088684353371569567678868790659229120132773926104151376546532011281203198837859677825896141766439420693369487139447904026075645173531757102384889995579107934136709063836367419496912464041722517071337002941243188421921012930872278854811923826039357557141699009492417773918641864571664081265828785730738154965858163248638012277897750408857663997680140177000113795585426945669232051864315694911406148887527392244173416478915958783616842330445006272399778726040024278857921371251904443353439421731081226292638068928670367881347466359993440309302858343562627955455522819569149428521974286141732157737756835461974197317230854939652227044580632411060329592260823285360183377321365735811475933879223439974523856865838549484352446246499616673218314097062485506774255801572505639383855041415530360021479500348674568150719806807781698614828793264971326387869717630899505301547869011314250642813087466026288549229906178439752304345950070138029353590494248781594291478026940098917053640100955712475984001510705182558075285640771589066673201443778576180689366985736145227139796189149707312638502879857370437320309710347947798841635648627939230272949843820736730694814288342972007583053082577280150534181204538393971230555727728749822981317527914898855053019108662344293318347962776006174555467965024374505088751090566409922947042465160676642116377567390178704893328831858132730794683616642380991146708275811973599065712749426212416465479926500582984697303115455972171327891204631387152410847086646992844307625060496332609072103159347140333948226107627843460529233133562613018455701923714734079439491243267045310026530052886964365003462178814807218328053353689676902099739364789128273170419207897699393288099456451916998798720988496387568866699654934155908151631370265049302181576398475333150738271309729327098769040321481657081940996351714259528282666837033050142662695273302882239131859900531762467763012164747665318610248922637041761381764576019690962602088657459765850150420485529337105972253818666249477497044424798684093574002400057206659531789655422948510693750533296715121347181369456986495304355535905017306061286624445042724027639459298622302993284511259487940059713962421773902384192955071864040304401362875236061235440432906021417047462179355388076426138450733077564337701807802270123915415155390397663801216362780720536051553531838201719282182222910366158065214406849149695174693166926381830165594150573574264806107087043324081477812501073681678408008393337616815553392559345276156505122247579922969770013525695066857817406866477245632207927085895293065765976317054421101026681299400432396105018400465150343932631363424844430017205514279581881944018682411184379277050204859060473043824880976600074988430693692213220457389335655818747940617756994814914680873154282384978526972742707954579446925249288570499122072444415526742432060690825541705635442467369304263816781059136430300918343745902051487089780511563274507024570801633768437481398407762179458768024875016180256225520655436184514027118436391134245356576327907743581326127240200034570157581137392120087007196563912194430072135076185888152385922302660949619700486311186302496312530774588561490595834836394799253964139264896682174749094689276254269696646347846066289698844062349781131627829122686653387405257370096293556807413120721387307302553145127898435904687636253569048385950875980113998947493113455319751679451427264120227151739300295929674701619478330043745515691768984021796664623610356320443425257040981219093441265414261657649495305951134384955093826341033721314554376410310383454370612761648430251774135548543396843238214682143991675785490581417358464798530047581086968242437041907245712797307974795823226800244098199268180871550909415289210923145844577514917158779261146129619344421810502409390574814681028459279574911269689202492352734456357184114010777106702789938613501248460747126532127249829343423083087407281187953139974563410856640427535215252811957389301651825153785252999631616773074461735342898249529111067617402647535273289519684450435805940160232431937306105177894766103577224860411721139849735330048434057726448938063602912657680513409874426167821792778721652176354402413538027235164141433818672610387766028769322353646069659893193202769304146996184708317003772882068338393408594162016768897819392381849704080445409671786285973720270147280625158237560557710736956579703129501022971537855098231778841789491003568024444263503293231468839712964073654683606285656362895027395213933623460341011818559196361654258608627319297192959018519088740395193236162078000259898279420840831205952699941086215612762000236638429512414600439836064269115613791098564852131696961635689413468913833299984183316939255621254650316236664372934219938092184709028323542570450036943408262890823313390712553963414681804570764532916179720614865959220968201204105074889527923903713573562736548794963724706861107724586238725461012894938781681418985474473943399216401230853143775137561817621604706155862496038154349310219062505883294948005855177644335419747312013590437129211216711711237331707146146497382880677515947054344958633766355967697115699858383650793726656720934567680500045241723386415786698168710933375255872771447434998207034792148177584674879467247944940414572810261543738973940743596671995427322238603145978255427358462199185767808270431912181977236826564352122401373490000797248661571715176842538566167920264825362484015512012915996958268847699333519345171371262458172202771981816864680028422388172281317349688360406774846611166776086506529934993990931676713373685838610713783386495666495433953503791171459559475467725486164363007675830521573131933981167293008071361965021921813450542309419169161411912434688330305659544866276396020932312050620055402586806956718598688343817399967591499578340564686566477572428362249161363601768088043702341975623192885138813792842106260405975647848096260790984945175084271653701856283117920403823533911615952139536842451437212812814737387392838634947228058274844802124436148332354900082714521304610696338973737278995617792757152160056902331766106644016439466485241844168162383571288337220670430605582962989129412288123982145581451019968080965539861070303306904107890797081198715736456514501081112514531728146881377249168990437171441610772923296573977473337881595683678513847161777330893007791842446207147590040432181969859003598552670033110745065535121827914465419221471490522116588425532254199497679984150447968475185988468778470328943286489522341361859100268372319272094628733096870680967595364234481037974476462942638235622673898229898471165263390641716192587937609581462673863904077670663468976303225848708676590598034083674527691409447233350140948176194989154413167685060883251285654317508849626627664196573748112760550753235601920675297994322107942994374237218065062730351878315011042335003228309277164362411256219844426645009742347719934909152872148927837067917901311358006532316560862524310790383010460549430595865745490418311294221805046223711622277235102725636231497739731045979957159993346393796226188412219011311781498402132183065496389217071773462255477380123668741790015924530785097398822974466032402161015636620277572869515098683116355538603865848231653408462422808236265199928510003127710622172493742590779954977013685024696894505165466541923661502738125715137853915616965665846019423757727962297728825916511253215464429773081356190892392340127617309401571940082683648867468319786812857745874141521125213565114617905531588797886403759615256418741457531661953918072094326527165099676597872246213416680277601066586027612535915292984527255161735215689114252661890566053758080301440436986873537650540179832070529872533345741631839296740678218224461443401843184772437998907424096376708380446093443717042891039812645179437602584547039609251165747294817228237012863083249667073058755034642914434226013622651788033696313999695493372148842057453282226773085042924989486985579324827480478109944220896124393612449195316622620625699251181829908537178634492596947187403989719960414164212903313920037169330653918036530685670450250500706136818422957701400596772216965164509554231639981814181852751039252576606564605057651467359874881668283285392752966418255535160615855174667280347888932532218130339925704030962498496946416189938986423862525304900907976506707855494235450181228067602042348608054611906122327506396122533174088130329081289274135626501621099123819798405213743156159719479301048344509414043626008711145502410048324767735164119847116828049023711035907808816001196670445805093845669040635853569750718458829902555415676539349693769601940704758564382780103961436761622518784064362057808573151444778411921257693870175705676557301189947979368372009521138328243943472344251773351796724984821289718659195789986253984712978940383401842882097075700860075231133302138102976595805253175074503119696068020447641409193818430375536942018812943888909632783865484719281623533600336147498850329260208574516723325444865677267991462505064014725144999077619307878071023206585935460193518376247576202442512995711375083431208945875113977041295218953919588309558656116083702119075009855164367197148674402484374732431153962697733853597779339885732947097105396789887543832398935534547242990203496563113762891833381147944977520307303490609156915617617358957292045058847564457966019458879532541896492736142036820719230848698667569831963684412114739233820661536417046518296281794623180213209362032783435746057496533315682131021507014385359863394472429430561475075184072843158692975217485749779205089810328690040503407695334485744920388986541404374050050328966496704258886665419378714380764245349877644917286877929402795748129442429567379602776949707222583287898685176823042701556178324774236625119946923303701770561957003406416073316994657985798633088326761655354521582093659984962814454848594458055014131665806692879396988956208931582734274159989558451611272725398552447713872831122347827576056669158943247048083098342662311323591412884307053560187308928444163989160887905587147677909577336594021527179314692751240076970165907336938564832410520307569406061504899553148673093909180528391173826211474769053209899202703183537184549280579808342535230495916543616391312089783065776090212008206392133319247460573236028223941889934739860653841846850081681135904207393985101433163369931101299777702798956159392858393493746217772917071779048062257706969587145048425266511075144158941537837435557609500853046062696588073086057266743425255302098977584314895350381228713695212058131583727626298890917366703437248959116331460294436842574147771991898752881554102883510787350854466663643592043497590010621536168637676537934624863413101782240877676868279435470162759777208473451365762978380003107447518566479843270811279873637408475787433592322191603144979985301776947332026185014833409762809972792592966977581090321361008192177566420546704330973402608289332813985561777784958401509781550473474758606581065926307157612230832365804572065793965605105348609774189987039851168141126503348167593807490946760093406941453057740934122444489083478091950793949662378580385273675830741626000528488014820407486577068235565847888248549234162275763652310400690798635869297420260546680952351398597740101189354455755203307135240147429828038646238720785960965760747975014493085272801853928885000092916502717137696347273428005767111643985090698010411468647054996385386868689026105784092445081559651130624931091869207013077494437347587891757712410817553785611892602738038577800936444005648261168139464287040399905318264524629598923410099363657754188864933625328315415095625459244188657085873886864669833562992646829543969185118707081110177568198881648642717043269056859953265948048394515321099045289057967495455492123212797923906535877523674852581160715169866691356820318343798276103754157662396480992356588258640031892884417013589499549538409062454012400975735166401837293140474169798035582169885391219000440088880264655080321443710994757411339621443127718051289813359376880228079524413408196664606376460459683091147887352469185506269986731037732814532739697046927230583316531022077440941991539238239524611088725038317677330569017052306256742148082101752969426197085539394915587291526715383864761378485217668990309925062434267902413421981113588049494608990092607886123496312457658759749674740406314458796549410532147304324935321374700471600917273468667062140416973754898307408797720331311561402231018023112597995024698444462434927882467731771084189200414458363655609530143036097762273370249705388029435522344596434708019375984994430817904539736178251889504839199906327322607284625010859754806682870114629724467534769262731271714162809129455080827894535463112459108271567042133107627973206497715127852620620239061645325213710836515994831617433774790949551000060974423130407182784050553938524812909457954928176365594756037165993423154544122051028637176393016571897347173087091021573796343355506353947279123114037735833132990566416192951054865637302097403172342925599791896933932299229442332029317435829658014845430215213505634606686555247072405899400144540398619384222057716244285898308014957434622958431356667867911160692436331647356136723247505979455939693684534605089428815028673504975083043341189979954826878875001789863960828231771343101619383675045005719792813846536911860714445748532595317103002902436619594738145861875358802909981476634648389728671694747160699666399524438681585131326447286646919704670897888315848031668021892427003849041001246491190099648346802734397242848488163435973883341657176177881634245112006072473360514289692425882134089155365348667203288383086147384946330718000096207035162321327354000383736983766492970025719895898865469357680514348636146891421871670761353881807879171721702337073252376592159529937076961597557643896516315623089977105525074657460997896131365630533504866435539098145668210691206889417376742886240818350910759840048005931088249281839025932461007591853483275506274953897968725852110701661021790125663984330120196455042322708004260260191951805785131299122966179062723851074899314896939611289154573602296816795965732051697288151549964106610732013440226656181704068892993017735494409787526681116659854839772950921822060768193922045891492424972362227197771262956066906788565904237462578789946578443063213283908927803470266207515800795982846120178881850284815760461898988825686767597323897838087464021669519991265160706764386027981886322251070851842656176689433127871825419784950969391572928339906757422914581267495481877938006668222310044963743557423573912708609247250280785730207211501269671837854997861330815733847916912467216214029323969258477115776158138010756512219444327428598630233815458779487335519063065745208129570689222209553612941541436934008912951742652100394187239000820214429403884671217770314191632453883406801950279831621252332591372832074721670557231638364408229797367067535932338057308856682865593861709689676955229981079483520758372775144298725975669692268288544417538632880988032640431015574958575858429859917492178984862846424456092101777978493194310335695576270423442060519807561764301729312162060514862215271120571138266460154207184010416320512344375497250692177543907884208545715715013071783864636706662298806569671706371077100625758627178902422732839342395393908991386957358366447078844598536371434173655402426520301130669873846591224817774677016753010785653889049840941515032912690228393390926623085586763300039093696063410415436224652381344698470745077066601735874890599811643832110990572358059246400857779989729375214178549849203230625279439721731428851530007739252104756664341023001760283850364688456497023086942135259009476855588674341394205682690405365733090097661855050996765342868338959066435868049107695431223819448624733087603292028897153690805034349734937173125544283195614432885214866596607305482076062297097981648333463617002465897206873846157484021720207321507908715228980499892225229525631875378078277570838191506117005996350079223810565975592468636162866477254954911976204601303246009053777298698969853675348723699535074921786416162008390469444849601788197301766678447574345508781736916536355660181882844396065334748728802677045341872356310274433505562181247324746459027205655138435108983474813338902839650162309190301075587722384832542444600633032066843819298611975283339801389260896461405036548253872770155426171895677521490088440435302973616470160650030408056482244938366761580240771289768751752957624419126699270211684923181543005337523761006227055120396248252628149543293334858625826957906649706627253031737073929707142332145878739139313737733094881702863682503789498311831350509598133737001665255668654187609835110254739151355882210530401890330873660006441266403529117703963107438282454927849184513754140903175119533487542383352079149659182649728769477621843663751360701518155015203758185114060509453276828160316125392956712066131357131203693681950670065561666975152235631649885034502129124200328766981184206511928535695287329161181505077792364330407752367937957359357951882013055276093034052938554420611045071564350505949792103482783708243451407074890786077466671433601807152035956287893934424337046026236239061837628836123814039058706419280885255907065800875259659471268405375725551331322766659168965119021471743623257078211526571125038382768787539601472030373139150353818534981868102744909075007208406405862337883075435110809206379086527779022466152543892000410917039956479676558227461767902612643738444912529855732559309467342785463909303843327168923440667156078415463005038473343490668733242092931234027803738579148634218964988033032378983019149217229373299687276931955824439216128258957729741149152133830087634244980867469661521547078373038417269533280685842412186391766330680695539950150612555003581314065472103972008823101078130294002930607925268932158869503447637568303785365137179496126561996726547704155807149922916675969395498622314791261954451197674581286481388589358701404352590395732595178573065810439844736572156629204622633422966848126269728180270802337957702131495790282527314798920554622129841283472233937870013885839350160937025586667774900910809433813052970008383589437316174960379376519169846951109266857286928470665037215772948785286093751133157044628908880152278087487233686503405598764844213366069769530366672358277198248280149988156741431336214522735367711191786316469708387791188761478866742370812406877487899424908995709636333589807632917251937612792977372038633892579839634539693387079328027980650875648562114795872086241620405020484804356405635679613851396437035399859621343818287115669298097486662968347620497977392499923091617426922239414077606052056795369539323496436946872485708614652186619070553845031578427922649626175022340353131010768697224676783239243542273289652657164976274196489299615534121003566112610705033337657774635240821313240373225315220074723349525532956893870028155311603846493960869115318691129300102653078400980459807888256311605105497076144211205389957184095733591990011676307717869115311961765929014269864570411022358221763910079845477741451855697351175786777072663913038275654879068681105645114218211368845231312959976501155868264434838507709262124282803711261144879637017334795820025597539746971268053118194268375631331153416551719887394673396854919316225671567382835426027040797182347590287059078488367847673836335070414431016003792420256661004567267148732271868285517123829341875600922719803365978944102509431654373314284949343733803845268094062463143607591708655150041997233981328091815217608142047518633467841379715524503927207124881243461831020388949688676999570202196989126862171757024829850985860659710559997128122146412800571232439538862031956721231759260686960603230240009771310851126418821227162363762503936533555561803887511712842317025322782126064182694591577402636273045647541076409595954544117938958630030799860415843462569177398179444130739647543375933737472605370573792964802893192708526612593714263551806795754757337826721632759272732082521122197156865136341500294962410297173338748255624275816122968071252261730606579999929713635968447783056854582036270420404713074265287763103085989092286835906751652473897288054810609808990372959252975712544797890289562283606404641179209874410001888800635914117793841757550195444405184251762123027551668275115994474704632602662293617211098800316960964357178644650351555237903598068363538759083777618995014823071307386351036254812907406636970696591085543317328990394248126405132224476514381906395619116207346311183784406066027625966114404170710324254824695084675254222340253895757491461187610274807667682136056647205773885009792989165119550060153841267202708907331283650800836253438266506443008000421707557911995849482990454711484108566324388500997890705130136575994300196307132318495887107569716372970308265861481244103131358962471483904119605994130162595146874470168645607772575397902634200196478079428290570542461295948205471328414216404997510186394086205656482702434448488981108676036105665498289327225036964471452705111965283044377899022318922446573008769128654734998949811383692745106804261679488875202959958597950653350813387113964981154878202744142311020346400893961038910032914366179920649044307674380879795059762830281098428142019098173665854859661955470174456871844359918138202699294840399987576904238549061586919299258675207004568473859499164752493930344467513319945287609361583606440785600244932369720019991858255992225706926461009078841048622758715331132156665021687819057966372717133289363626403505738601801961598039586764732736408954848273433809936059955721290776094725533634569079898967678255063172915003694413673306009537104549677775673515072783223370601457870386605459616158796917843175514791963089626447728459517044919521023151099576519735452854660841635655348937299684107457757966040703902946332206757352337774447261148620384386302562335930767559718617613724920011375617418762998322102784620832542331347493307817763048974948616656215410607589174415327460726141091931112182476007673883331919659749552214565603065619532364495651376235088123792698547419411082085112327493142611051122159249732315921136057423398904321251032043786153322994906313824831911434381468694961098628689044107708109480122135458624233864374231004010241625419032956714744933560816037475015188220804488236184658491508660342812446112892573340943739201048497501249459875599038669081822197049225466910142514598049531180160607057261093594911938769947835710563198748283358118716441019838679872620941785946010952805180751349381362489485756176047892750618773793324956540014759085641199096909901765022013111103175340818953724247861502292917442822563836940212105155270634167375842438244136911964813295562416299623895337609576467566368954607367175985053082721374766275738914113937583368151767149439308215252298278467598476667267283246142929588479434529164266448381089695169292115019074680996216232189632663351775680148400768470793778542866766704351825271790003596320523885199854057500722017818842239610598725272384039274123709969515738900042972561428808058069263259657636714015592292871150785335603428803877674493924133978539568641826117995451479669255970679070604832235214941112999939480929595853159518753589002300905543157645736969032506698716448611996554512896135497297045360312606991903142404280652920527498676088715785595150927198314624789693062618402459981631310499583284291983650645738433831067970926959084321681715148615637665717728340782634834260298519767760927105040053864895882092886563501653576513018748927330336631565309529666622388844493365350291167528121393169635763682058268259289223564807158183480088566386055876378731061020492740712475741845408424771841419778859372079910330501554674950386186930035019166404793975708516937321284985227969226508872108445601823971343960595700662592789201076068354870089971404657903313910008631623091531429386509591160443024444106563773048623108615305146229179079598110908484350072206431777321130331287569767633021803772563413682034136012318296897421565845423313350771160366912698546056660206919956118083832878324978243956020271746447674382023358813953485673710821323737066406546071439654284247225356715560835400083975701851994051553381553200807544896885095109765294651265988646470990350008197613541046057803227551313381706661863821926622358778719886340633762809001183609874839444751704995557077206309676895671079214175703125085618985645268046226373992459291824271143679174245555658330436988369202459184480874600977326895276812393015546184085342364783084787745835507540333349566981644809574483137947272694895574621834197863377162997553503268006560406649660844818825628492630275618321053824156899104782268751187273225369264983392939822373072609843096833962057244016731050869868122660978489938750427202050027684820612316753505603945573632658567287064965735341122422554913089978965554708884844803130776899049810775003072406837209044647233745306080713361097957297307979419036996892891641208655527494173788392513783214905807271383589544140095068371498400209877862733355531874982403799868121217428595967608591001714223396291255771081179495399226522652439115507691617003999424730867586499310407231792115298120199290429714574291725814127037841092274031619882413249916376032707877601613213825787037460258036421626830055844289025976640450747757401832306503350198688139695255251743345554494287165602431395427825756140834290826107366936636921093800885792972423349133443043277780307738408951112050536645199874087802351742336710311493139105455272741991824029670663862432706770845414890977027558331100553695419684388374540892041563571184238278112800562376825041136080918850567770614260777208269914176230747633370083519698168541499797625942380176464132916293309959193741961855141234385992010520256288382335446676197619712191810632584561947989929559908544029244115064181565974984502803951678945512434733012745175509165406828375811244352217978792342794970519512350430119721583672998924431658608852400328751221094185082207358260262168992569070581309870659944990267558099550258364217701346708621407571259950404510204389248993215037294498348626659424326510798013194678293740860648092647744472750027767726649512588305056865774934791697659801713674307254283740265878153163448468825223363084461077126456847815103181228222486298908189700648056436133453035265811637071568400872697702620184852145960806695761248453271568073578110483299072624306731552692698071978809950369357289445672911860361359493800955052397333035725928519400292197743450414411703997364188697015540866451125569483379767252959082479920367707260652693854974321724611682682868346690161967165021734674056663801777882726239259390101077871309161316646461140115088071638796139419138323365120528978774664893295869155271572028125412199542657474012010777463122095762904927928879907677513292815618230273535930052601854200410699116508312762758133106054075776419618989325959618769344447402526562584862608191458691201692444771095960707784620587831324299005428422166319623765283659518175921702143902779789051597172390384204822926650153799481261442119292973168433780554999851270331209026284064886867589070288317087735213357324968021845122990696877163183547013593179375076379172501217707489121283667581130148440787808742418621969761969304929026047184931485206594684166308093853014453910464733951311750163000320641999759222029797792124314996188878523970590100901891522563682264386450335713543873806164123018755767013930471442492585061175897163094568229135355430397857545306461080210844230376155021353764800649177203270283685082531404506901710225488358405431564612900381917767229853218206431622340373394236166340068454769450038434030892160728627063135375693844062627268216267044955759462924705935119037858660811261892709380990799231570237550999595431693912746626313796274675858531643778199861953240585889652701106278027762272838455678894413790689671046479453657086863960614284227950722608676359018824251660193010795868866113887989663590564322627109774401847627792574030799521039080281869418878496223211141928855547078536503153988436118623460413664896433203155556534038936890128048252427464958019664257398139843995175702553394681914529582213016798710220152005273506211276359190186540237806229435774917144326603233821189022512864194284910254654250274554408959468355678630322122960537682774150010503527310894317892735833294595841894339073400513665138734618479687297333888990713250461258538733589354739363021913109444319379439137562920830009770241152796639015178425513027883187195673974995800848901228530703170510494793181360706566387683383315007984598464143782119820150519549401239081504587757176630139728269562027295233926741814827149773839294547875105192960765692271879894784220846360905628327618699343112905674153005248647225444042757127418969931523413177150460996398982773890526163498619065634586064970365526678704550408741457530494204043016020059097126040609406139695031840978371469830659564847849807827784677226942088392060236646665174915251332261240233970608895329921315293017239522816860147793256104157794048944121298367624818985070325134594985132355500055902155160786216070680905079030431280031120792871845743329626801115578432907787923250431577598118922168882145443360076059775999741130290455103723414111106795082717097077683223605442032286232645241122121346983700334369074281791394932264664398804296970224660141556236140703646909968188513744025184444637918982235780465642672760899869665725859176130051284733282577824608856090753351802176938908715777877145947558176594691374295238826407084158603293939158469637462823945791231105714065739712835357309924276847782265662786753239202298542259618884488197573207695126965496313601566764978407379512976146335456642001138447354064717156153867846050990193512379405672691649768362326841923980959210492556234804136657461449043513539521061379117681269740169956990324361599261931542669604795454430809061673186075449306802515683524604841825776782080594919771513442865860340589025521369655033503129017758891246044612321517449767536983553032340124948521526034279343533973630629344347573553135847595713906324106354081306945460089741671741904539186804829862775508216995485507497991130506368925494120361841833014147966775504640468676153104775823647859175202698098044945625176543315011539414828093302812209544563508517086158347611740066957382376362757350293484002083544356869542501917584490989222894504800207015924269102278997027415339161339430043609918209299066032745933543207576934686274309404060456110282792950807402474710107976739613124401352734391633896280059327851501216832125954426044594683119367024290739901816413475076327610380160251834085089516835438413863690141729404863117958127027017177248824841234151190444700114095815207197893207212297916488196358880573536440057833662231161978802230866729989295955592801217460563641710098988891539600595391212779420081035071162151914518384312224725828833821808663767285927349182149892134010389276836636450479014081697777684762596505407565194271217540872651294150053950034401816754346149967725365810439578849711675748895680580275029208364171003402374188666450802003962467835909148471700061484267126920455053527471139458686912890775323729680941380378616872569170713186118980162131036218178733255333041137645370720136638317481548490787797937904725003098456768425845195375450129220926618381498726269082394029868542157625654150879085929010948236447232556341416260276989331508642974261445733487132726425406713011069261518632589083723130681498448754346238955257304030193179609481683276332504729938885043337524876154035931790225621613842380071886744094045145746422542862286921229248119501847498518289165569052133593762601486040836168764642350165933912088098694982101986069126714352109084691749606038011362241590173581373864234143350836680001289043060653146390522774346527265033688479611970094221747624557969350299593869659495545975935385829113463022095694773878449950246480970270148925098619975586736528832987775132280474775866029880254625942332318193854365010673033618394926241455561474507815871199075993226663675264601611943896048707897199230980013073970729233235094916295072614879893936856228182363059441640169868772608997347693428973340275552635023878224482362380962990727204971630562341983619639451157676413884234134759893189023422876791313607573119847322154355176558579984439345713954282906041222404714533621024983420539795069961979816470756982875281641791686618243701137816370416260400252045440195826398992986747739732515360735340819250667009283826444409655748993538744882798333428730541968970373660238891070381169473973788526649460531840619565406929000558190787836647362925265088144462340340115113189799636651683306106674490260692668567563171359867734670359193119761886838026866836176187122366049969679772259516998662514677111616360179264368432937346661204054337119390621288414702377902930846521772655993802895777263234303937024816783616266913702490326621327211652033278086973190654251346599121203034116654811787162375298255400633789453956268059793220083688908108995236261213170104263617446771652552405511172177767304379313880924784542224746089364085643447857049531529351959033491463683974903185652229566763228137632941131344908409456146493518107978587936687142185534349742324125816949541670135103381004385176647205344332489652892201037611009770651525135596002658053509061892565682436820169360700819969618523171229315721538694297354802368237989544136401345597929553557143286012843231862751488548421460934305709088523325774156774745813757318021856145425584378674625048806919053333237911501669760417402285213572440985074175030193852685476819916024605618289608814470418690940958316090933764688378792290711773006399198756583125383400328461873629922158480449429953492133940117996160922988798653604166075656401922380754557555048279042087278031030459267014908202432385365194732131576832133802614292926553038228442086461272398484726873730209042388173456331886214819885360622567028380939667389940704035523739749959647608395978726695946722043962884804076699351145456585061978402313242001646461090551214535495212602125301083832039685526808134661861729940795893467311511991208342224374823076194058977485817782600007057645887629558718365358488449436064678381503986656360016932236552961771385818647747005246372708172158801144293441656580946804008797694758422655021199851617038874380149085972616403802217896467685497567307719435713406882479317145085224938369518312600055427049981978080391784906552347223070609337759562964825127471599846068916156665822346580621187273200197676724011138882860271497215169600732467352711356859212480939061136025228536507509869910928278205242055121225188929975116597007359977247778979213260428390460983406323254541147423910053754229398313808597344160702796246406608693402669813610907215363690369341844136157205185763747027023605810316368059698882152600417444328527969141314615181464159030784436960503251095963649177754878972041372706123541755042250394414331597563669708993976604658738981762479540204882840244259017789312768616032081908748322161538302619056019761256306122488410500267941476194170661006138835743174399957078751020303544580748067462671970123551033249795526251123146954432085502570712963174674117412327797182953066593889368616631119822501479504914735013318917630831027482864245750017329196771443409901700009633916862671579871124967467906781852772222082053203279692624743083610715337617566683469487523716896679663698507882865373828036844744114022108267920595456745246094201658360301867096952161972347892973913765129963072128223503159507830248160736796003219014301464826372838246914596205985139145144755276282326933377750305961501625251593386285043974390462895104520609237586703719445706004491225711268343844487094618488409100803404782918517580963269355297885496312000188261058799632997075813788931402073169498007363609403008438128259518794161546540954715498747305663627518308031187613208837746779422158010362067991917572353970948552950227770714570790473911419774510523151147080762264497857126613409690514414109878614545641891022346214175494023506964336854293791201219794249468957191392708088907497044171269492954593850564695637479904269709936656062802099495150634593552350674802379076681234456140294530398075713004174942182577174826497665156775024047175872008843213605579494333638551162981875455844077954585825018173434473539302975917414134961501172958427025188818186099554756277916588607172775874280398271089781083647769185360675862914467742733860741866420132172167429633276716586754389568278048703566921713106917431665820160327689798053839369665418027873704847350539558363335405595286505782860125931214381739653717584163872188335223420498574384447917783657232091047669628949761346352856377050938071108374808429046818292657905416051405462337141221536848860278445017905160976179965285033970640987538812545503205258535812376979799960939276909159786791861590265888497887499081555236240595875782631119379327151645385314088664790751363499352396752086090187017428302560017094327138733221515970493804084439403124580852254210646412140523146501154677091677531470879346379896142502385708382404093185812653056549052589688836426332349397726852759340980551977616283736976012557184749450790908267888724615890733007530923085166013079859840098988538115981321953666384541510127553788624507105626966717873325149028517188700632857887217525937069007072319451061179196769891009263100000959854897057463809071998709054094217478946692163705572435586288878393782255736143564267417864628902025578043615145627794953920830695349804525192115498403287951396313105032512084253490996934229209565643277084947755628420014537601362345290254165954952871727372027376917447090423907838255282299094180896149347562837006218790938775038122030513496261773657403936320860053199030819416362212677420824270801687596181146826092451268543315464621812970719269714273013684011326385981209268790696891909438376867328680626095046052786505558626375287943726789964156312022946398723676896490815822521794815289180228298013676477909499046729084902038891537058921930363783721207367011639696928933149876635140056666924996315754361934963318847170439879309855200496071319465949992837758229673054377915468384522931976196874561326145828521561078732861731408932669105768746476061391007729205445259421528604102618663320429601770734622044038505300342947256570480778648909497683809466466690739343232839240482422870781018977504003332060805225828668581591697310053791940446211981555319008756537295754626387787915342737368844266091100439451251330604338546507465384436061257543574540231367791565911529779632118892676246143330388376683744101828214398340018669211558163017318404145838066598941738879364671054088886856914772046797328353733780356917324956717390004936633334067328140807300986350702052996396689325105374866095007117407428384366305951317619899697630270949920654583645531241663610084107182571685675979218715930770819103784812114817127231885445177472801681237919607845686797893727274166992610106909884510857320893083797099849419372300905882119161402683179999159264527269468318511768392836613082210030194980913235189987236764266048392811387230971566260943343933089827023546286297735403879835290146169211993911395581399176922498561363897643273568112332452861431536447828931523837401269687578738671705012648271769478351979850239105273641103536452768265298231891080601588242688752141069486197384935070445869620932834486117004339285560622732581334598268236829924913260116575965960063583263806142690687216315262343724890173946365773586422116338904376495709241944405970057375683251720522123726204765943240611363899750637718584773119307823503105903626594179735954672960556519753490197467271509759334446980820180842399379297784065868163280814978736968467388823221989608341183678464431690472433399358713027141048913374823299432865088346883375548373842315843154811529281870546509474181344367843197838878334803844160772394188821896875504826477811899960181917553159121312265886210789076126929842316066195139841773095599643818592584316321754727026552706069156534514662317215147878103593745433292776371076309634068638138769736959769795191316503741489908742273292668770532713114036233330225801163493473326003321052179659749160818330841023478458100594431655490241813077854084268144648617066738470905192513633827000867514065217101141475774551324211326921616992753463877435927248749558868768166656914628536246107676537247909722835796357466650528241657586205903456973769351437147411421275713521449287293315909491858846847743857639631792131698218710445724571623992194975708034337280003691194176903478648330188552903766339383225508919625722810332927529593842612827253656705334653213506762314214867218010692786065438357464605461503658809700615959172236910302088413173415235129755192835580566095813279762545236215300549381916496007715279451653851532628975755396113773343999917372254750122301854150009871346389764666368954942139672137500460113395730816629334137686783137926810918927537258401778532840102835510004704783847414580859854628142364915942518124573675584980234981584605767510324180498810239041827218126183766939649519706756207868146608692969487190344453656500481732982457342984927064625383162650515479764124637464079148242390658662336968093932712794988967652221427849442723815966704392112607358356297499442805436567147551195662406890166803913158298024793961997051302793113532725648522599217195331212041155817678759611416360525412317191884459352606066221133475523729419325011102225201997743190602352193074383321891838226362913574379237824269889254731706182866471183700431453067130799273229625496936169216844603384356642472964786219882243948500606753597416052377426931685047130761465536314550012939562496665877953980590591237874713388546718700616548093129119058190126553490921352906333009975278811640688800944791822337258935321106853614292283801432948535214175981371729123607377678320228538560652173710428990213944196335281562207881644650823606201653962633401437768292531947851860660580970447290937586039324841522001432834534761133771919119135286946376772315970288273064046561679409632573294305084115295688228219388406108110982511914744398454642492749458650727033269994068088601567812483926891247338712969989567170634406791880038737487420644938548037299174297527559935896977943853127794777831251414739449488911654714841082090186067698292141719128221101061863645945898261187494546967443114206529082715422478882093388746721931579699694746431203447148836031707707649954533283949062821589762162024986425284806450343976091807732674005911660828108388279875455513880180662734825179911047220149940242515575927561885300506558622886405867027558471095965655654545082585957536138719794656302942879989281776703508271128571853485704558167970583252539727363365385035975903104450952657864497413550290927574906663193850927274181623366336143593673044311567425058203709532609526605250086673141222665607940326339841812562228566184005680066318280752744207120735521305921890787786639723386559295332496594253758860694822316678871690598061670912785090152695882492880123187733357022729371707534454571527142432631311390084781637675894093524865707477926869497471651559186032651402806499388767721435245387227590320279233830376560808126773676509551018643210442170846890815041480562474008453624633836734067610374575933992724625274702692712011599012552675132609379759942215705014631660295374445908130004405714723836045242356666507079376268252657166870489822646296881721228370213951329338347442400073212878989759307603831075716958197093264185168272857943255811496309920640277053463359993037763075574866709322389377396320831421499888615522015948178835869012243191618340455245133256174069074316394832766317368393434598324188313016761417556533653695343421700380245834211810938105128429513811659505781590096102043231761776807540567475401662578028358377366227370039567628954361261890462558291012570368289742430542733999331648321936426746421596508202637642275573273548895207349775562106072528017713325743348887968375331962149738123375597221738075961184089086013477344901985786198776446823068162482342770430948200090127663655974518201004844253750534053387753060915946707980314828373238985456460276307578684873176448633101458665925520265804707391094349436333273158354166825468147136748333821178729088790558311960722362523665599255119778341519852617877299544071428082313417210103909013564546819221220102971175329178753520446356382531052690881942744549103079620516446785474272946908760791742015637247406931847647715055864071463057925634431981993206399645935405206622440451465289078657142795480088787462186050097866161704431034264202330003033468407045877559574561132402247551944052421490417681420125314882437869378727870554227198126165772894207689145639837469642679902748846627147992727039665360295278847860394576795644579686532092803781131613018201857285116919587055308667037378868979954264349283032316978588647459149023157928522796148908474342012041499177258974274501296016717984836173191624186515871486045738851345395087631658910809023344550927872722926946102771333502291661594652592644238832513581504172685698313333194133414860686908886971663456072989845973347381494205748833207595364069285379808670525953078502406663970241053872800688248900015314491151087628387333564831553081195002701715572859039032598312740698489657754225551156292632304101478771954895495599527829548122157415816895914152745349282771007458090352024388967482252286188774713343386228259333132038284445019118648311993369767537929871972619283990323117275445382716462767488339100687963609420064628548409034896207847938049996316209313683718152604470222302828145826031425231912802100842942686643081529285279194326541961077143300113922236417122288684020651697908096000161257044691210171950427542348756608506912069392348884617375220846858774680358722932573961733580515897018488501325025222828958900750924332109647090588873251078598612722802282665029111229057633731050849487161396325896460322447670278937092096034766397717720498080955155666679485335400188537340023622588074429744656225941162117552481706140817477084943876877095820755761779506218140151184362062307716689462551518371663436782897871828645685609203581660704018592445015204807876248675979554321470045496225850453864045133509122548273486109265857626795491849350398020044564196889436343641717644730388207298627897847450534142972159696992923015941903449036213043750088801206602526847166377450343579178486447433886808335843118161055243728931667610474307855523736499149712191707727663502607179696142484782804199512139704035405615646840660060247667049880057271984994032904101817364485442621545819372713089904381083556030754794749993511931264592839111159760090620560020779376499739745635197061927392048842305877487028177698439419267893144694388612070446571818400638261871634642216910624168306170341152683600801186302151682659970346401449767390703129865520522350525895346341731604343908039190686557968428047471037530707904887691038822609709146492019414806372140261292515168562686241605164810013682100831978463697834806320053930065045332024247304554240722089932503430772512619048905345625526859222401575854374537841019127827231674537108894332611307823546832843323442333432653616404556880138575126397461933778460168912682233086056771725740319504056142661281658165123379641358413321860352442269696516436150457364516694338582663493676038243445568695564492363902054683033763647383646957831334115806345048545272201873252889192151938404497192150535564254488207721265658785856798843621336002620280747512067957544436606409727554996412657455151087089020853104723223595811291007636093948999554070258623825823068438173245372541115088265409052480222810456786417475857878128781632655725128123354404171165125297508011918736813578857278438261257639659873603536482701369631611185688497119321687817929677469987453994076946455081095711669288924193096658852236645107853774943152567987211656341161038245565286418656884479176972554654801963645649057492905316526757177364736740136273879663076450353389295520320686407584201049022212433756037023365637212311900517678078361337749859031026054989941740363140489933840245752534609689418144665730743649337214766187536143439961443467778696792294442709871589983655206543961988011429063561438678956935158880734502960176060278691804291840475195345490705242022647944148218748583587284126194638322026106362383276791476734383086563230343245321889280788197305144761287736782611194701025262271633715359938077095782613160558088925276206338819132785237798982841758417228562002505899818724077105704353514098762049324803495201736397880762609989582010225735484484177071815393381156440781048766856217859990772019177408792641439578703729790601255985515619726985507262561544057642418670948061390007500674431200479750458806277485576113678298730232805234010680022889772730505430555461782756679062900144464560455974865873547016190089066241731196774549985898298463668335137310187945260224823456330487791598438668865697711626305380312248752076305406294065510564332980955103805237060105202880664544332448399587895927738632738286633348328436377913717561366969753750419104655641527543798572049722882250677027478024955202411837989341047097805060383937143592258463705419923858712477311062610793271714600527746340834577048967991450868098332440225272652701506711501884212568202046750669278777013052505446647715828641695200495456686602371435455935929669732359606941588290375681904877240122805410649409084517969626711668604498641184066486907725434302832226890453415915238461365567797798561892007232732168472938423028910538082935557903956425886506228426989183823976736575607876894541403980554492552196272987142346108554389218367748069420488673931552228954549501071948709844944744238753765263280832882280715956832898572094750024195272219653858142288475972561873221220474675897712651610310423012222455708675182904600780076793556987565316142689037994194818399412287652648264834782090460801183400639202791831524031967087861078670156274966382658249518085996210833774669125514992373983030838918384458857876451308876099070032827634064127369466435925440783294718636710018448585983503154836214251580614955195402678156587286589986293754830277357496481166144897601356987161824569506808583280911641122132784903826768518451055740495440516547415639206793279763418562640753977470252857466387630887873493851127326831011070581501242904581651542384818730650644444155696799993728026350324512276969089465579557063444182857248425548148815710667547476394099598397956359379914938579290571532455022051283775251860799288556153672528233960422979582730096056627099079215044261873833526802266761708090484733723370991457461042701100710531103656244086090216266954772149562916135119470011262767487382740628850560130176898492375265937176720104995498960624794608429815796509021703956236217149535644897574686927011710622604707890883329284933359554278554474212158122859673362388131445834395968451792023050947317217966628866937358967094112980867341081612390271003075211480073113944003950940449448573206391733831965827897425898376512682119933301915422929254337810414555049842246541520268981047420347239195664190867711021418554856779221381529799509323041960468846569417998236338929412513977430983514691302974622271457921157626158940945247945369902316300995552434171147102082663423746441859526844265313477297627541121202867775106339339406486400699719741102372017669125596979023563036403169224588247522464182574969026811909699284753613166375039101242482735655463468751220561015373705707299548953014321398658270370451626605495776830050122075641213707330941776583099470108949169914341331293671289802964179824083372766756604182986789360099719207630419183076500021382657009237675323008425353262204459069741661002737088309316106909965776035342040835851883101099005275640302972746854563240684311496949739279907541937839025197052233296791479883708266895515761426369440967930202560496917143915087164709903022264161702440442192158612091264562291018310685289855120520252060932466018264551269886700854698600916317877366307813357155310652782129064735945824664556565499598446507888724868661160323518280990066584126487264939245624526998387420201367409603729736446147729787044912303949743450023387708939003987564060805627771154896028016908402130767585487802207583036707645471049971927721269160621964094774659492450434543866631551866406707568592677529770985357130325704900118782391101515719437056134885570067300478342299359766443293684577467254676439300919075264656815913112009396442843297976224284407697584408731013610106838438129672184971175942254102568233921749768032783810929451591350361990896151143085229755337006290836853472996635646844470908347127807384221561085352215799010559770054710586519065068577855129597456672760373652488456080991183232008242660310300361649208066609281465823060380038100314114513755042114048976366701508739728393544141607900183700851031133592103225314936724239711520859072144590469827042953275397924187679766017834406969601803365534641725366152200161457976024489388953795894056591883102125528437101048129314720885718108498271985526199596724084714248425553422820611751240674850628759435283435987620295036387671617524752451165682980275962205540808634958313974021034468645662154530048637625230259048923603685218800083982169233123951707534401439169706910305732357213433128616234522064478193866963770623134953277358417674689620837199380960703703376071443753969086629654136596109104820600903545089656150762450755701100206980377597507172027473931647933629647729595178140995885329923694916360336894816472478954285178006213164029503513773195397812106951754454981322844271821078180840587915238814426841498929826037320052726300798875529746874229452723914124899043179393802578135403167862916593442429577738213864152760866581447668097305315646574887493067722824118672377927746688258524554922198093131978808906032411560353982062840178707207442445330985079298540559387317399109148544258810077868150418078172514648909264279780862236703314775650633126042435143009434053667474155801605094106333732386592068582001271715649249643446102310923923101352109483872945052669763551213701068862659613899294710031978430512620780346409217106558693808702895536981238135158848157157290003026861361224236952151073180887747880760091026972774590706983810811572569402780145410549686241333763921774548086094583251840833529344944320572621575030583078949377482015773319685408960418107488720885131836369370987316411974985700168708999612005494784537355063762556283624642775737038609008489715929061823797814705731926901371839852151053166014410801226335661870276161398618993988422423786162314922651515169889834726541797117269988400063341806327957459214790288219231828893636548011633922546036932059847032567731511902487306738731766260455656064800751382802876462266536056358600378268155940973391682000591698325444462856209695187902550760578646351705140957924052668451550805015823078556437827326211687147011374123593693968035909241591300068524617374098269606897725669134562010187969357948435063421297906836843050664252591933866827673924904946789229666668280234739420218097759877593458604297599806284725254223598085522159822895780696653862849604959134728690244300059899003382785501258798796707688659849301255149200275114321391458367553312546543930434276646103660639996370435519603440264153288484652435004427375714395235956185060881499918209135162364221680863966920080767989113370598038853773184240855172176114200572927340339881088389216720648046683676550063494031569642382232149177076946578155558513266644258017977147870753725416382040301967854175575964031699311243157615147481328267924699245279395631794037999242594424154757179587078394752569496288255204658407881744112370977277667895473322174839574200008921354358994673512785884680834192475856204306128881840990985477325096848391696416480260781132832146428454939491124886272822397838831472602663170035315481708525320740070754460692118884165338576957198547387493298155284703625719519075579545222501544716397574519162298122904914609605365797528540023224686343903352049759157818141618593091042535513248057382855092371714432719712593516708269412536134630075182112365664642521844545192160122120993935317107473951367093291937134403159663120918607232756720957857252424552270884125354951220967639842194202847747182816060689833090818555352059682032297927809495570855180818991930313677503270946109791888596583543598932262821803674630253495429587289848142446554508538480147422906568352780938878259343725494109194671081723007552124039969169615722313932066544000719192996361449850041622090518902572891446269614765489036773237098359827665295164741451606919515724592358325281241533292004711341572796092033500938504655416165580706889435752932068199321698903721205689781003304415881024369420640943287919432305801840313706490071460323963321057620615258738580966691049685526147628259489039485295747834543286033839813234626859743254935726349353806206964131766682897043427789184820043733625205523816280122799022728059540978476934694809664189063105064590800564509147390001398488807201172246637424794732244537319649984399304601356290199386542415846963724143851084081726813286390895371203370136016042170404489256465126272086239681991261870708935491698879670498219615438342153818888497372816020920896595773110232946531393999587422885004051666302418422648447777042632394553438321081848788617881793235275789595967715280662738599008510179081941279507995566464826466965392839487463233311893775907705259593584657569352955034907132870954506831871900438671056631049607838726680979898687465797263283008053920567164953343551684605497901786933806243132171957115079394218274304433458494228919285453937934641297995302336625470313904635228154172184114953514907088531710612014989155076148714282333718717563227362566510976800402118100347363410956853306200952063098629831362641259806055802720337664359614395381569133383695236362432645986996285034972840744522755064758928213266933168858327546588931123514856515713490269393373038157295484401895542631016075702739777401116962075438152632294101812115852826364441159692281416854218121976464377614437142922155096283734177549010916735744421922086078216606781854073075970498514537169381210178393841033330458925565738011118293627086951652248053123089541988100484609883008745239809598875192964535442013133674268405135040105293194620993194939634664186955645862626199364766784794517036687405527453657368902661585524195952092470345431392492977566968987940175931609771255875560335345204607500885542879332498285107105851537259021522160584225426304399174442304969773268889962670069289937841433944984284980349518881413854876293383460798293662440324684926153108262811671982571590137807410982545245298334461901385863735823623220520874506957650541223196181325332819261720323979038035512493735583392303309495896259506926205603852556471315178973929388048210639551048302558452672931871931103273961485694047919466155464312403729181475308636819817808893092942667850542428303786918190602150227696944491824075876322987995928625171528487522296283600562972630220023920090501645495052992657570497173883857282265312525450363942058491285268586157816230180837937556506918719601974130515616040001544697820342881174165086509052608400172725208692674771231391458025642276605033208690531658704985501546507321730158662224578154527552923801286977166048498968040120799115677254914048014781332322220210786034485085421514181245707584927614510425987904026014182855837777975122903373934480759109351410877572358457461323084196105039007945951369761508622679846167074344124826940263951030365786432101306303050900712173487549326832003745923029655140335461756737429271616560544286801816919041118174853894024171634494723915723170952485343715182309055627061918463839808419035848147091671956327853149444798029722402270684181505522323943781340367778217554342979548704561068460836481054770170085470018887831477633167520064743526950599830552855055255552446972465850278787054026179305487846583849446470391886235031689836063660654974719804579575472031034671387775632823334911217805451405857989753746115557747130419780135805297834049285460027344114130654137427555055294375269236324059102128466832613201319342567462375399492593010407082080412431276349678576836588507727054671392079539209942618319752554247484113360261498452348715375804233922595269766113602001263352064377375757139644028778423524470176032424808741780629514413024308496534772880094216693780446607145084669280132324734933271221050622007592413296055894173642874794413369347796546841085368627660325829862954084050134725595129557036613021018810160146408746105563485457983028490951918693561953695277264260624094795936587484662013379817693603203738856630361266178686847146425691567341618129260113328812482528598700613170331000970724359489923231973252929496904605009138429452860709434616414112300311152687214220685342682248440499494892704598439113042735432017970613504998745987409713284886538133182992593005269385421734314981414476442620870656752925652327559379692885470833071823503894478604489644690187669558181582005626627151777538004437874432912283800566574592406090336317144288349375628912896720284970788144880925767741346809019459040023615893361597905775206540867001956721871737729859026311085496870014973070178823408020073760296574798787452101247549476712121358101942213960558465051402100367172900754219562288181855426563019476861065344524019534732547737734197048958032089173302966509293225839687987640000471810208507016676926051841085099116991138982060681897677793946205852656060744849234669973132348942570568525688690503707142696401366378029706945964729079494663101350355539877743116671353436137292145147774336918961184064900700720330041442443056172043796440985484160576887631218450292280417141720346148831149831276101325383172907365473680370323291861013477638564031394516834319692172492527973382921714544480167886901717082898658392526242454021341065161837683231407202327988338619978325589971463129133841511754253253655313491422079654396514896082537465376238754680060111350215126433238348869783563688614838236476174123269550673286290688604407352919379390975339416136018621566193869502849311323354477403700620837214985378742874644278178546172406644626507875178054784518653087836500210287546990210008756837453764101135325925805440025634719806895922722824662515741545509559414766405236468009813051282622809224764615753202160077094707513175403795840431919778496560410122975387855378661512125352166649107251690875813646190632290894048538529522031616894620677145967503491685497985440045037840544222017563976813771701502600385544294700176516743191666539461276385259311635371748978314080036766165133984374182566399341277555094806295410767351238488044521778453617925518822074043214069495472560182429319502002435946506379994698657365052262045649243645048452913095938612709278652461726725928150994909350361442428821497385970018555344267783160864325847725782885400403705031928073055060718047535894883462917263105426964592272890277116811282095950744897814589845979885054008869980781818137777716377244239587069512371842441173725871013498894885348906735594204890792688555902125612773487291234311873399065488119581871296847840232255134538003245123715559644349808592781695303102211646224444413621636671659840156594190406982358429389593116947930379451375983006655569332501424390600518049683934784378524680168176868546751900994054576942109549286440189094044198651577907161292792597009826586220859038214653917839770555731274885973883790789011924057268614998992853077491905110480093561628673075029956879933286113308859452353650537691450928890930308602823111141062820103471864692206893290212724397764158292346840210744780229139941737720393772111614988979635795106035924123588159743412124466953128488907279193556091683804435534309459365844662830352782270084808593688715533571923659097484941359937606170718976145153985307286670493623305097628109034322464702826288984917833727549490923429564482712721592756950296223238405614163590888397215461977275526971877387839234594410431553482684411203176326615359107629435094569016410990279336289995960571012191462429121368107687952103229448394565572509476977650660471171231963303606917603928857141966780026180946887804066396937424126323837216984297685685619913114897197256361334358726078027822886263305404091376728774680616079035586823397953502167041622887699263410523432608217857176709788523174297983723022476454381821148453395688427250676831384051817958146952847192801200061695520277430273907799704829937748064056426831586702881384586888399065234720074302640386808629155406434344999236108031454764814937244487156309426668620764808068082108370358625110392310382078176762520016566171105937507745381256071644508339294598138077598192311957342970145776913194874922024274657607453004416627007072324806846325024863176809142514973839603474832246031541349238047270970224143001886631173116516175339224419525517912629460166519251413265114963257652587953178634073483670575625280646573365181057164926566485478394510953307897524628459386679143731903438368303460618649449292667257657395521298798115265331123516976894953819190262309046679329271242428439952495620359554591285389049755281282022377461353589021545202978619837839057934000352595313061831226859400437503941953356494607737518764002763761390312105669549966144275242556914557257717133888311621511371325938651292135541992616336409878009414475598565229548150226511317693074144513416182076458571810643290082024941604474314461196526863473828168994808027331283917258788544162904966641412506026548021791098706916277034076167175429421947446590943928453275738437038049694112359028391301962288188281486619675163903726683057566544532312076707868661226284836117095271695815775660836306838996141152023606434465305994226981825780519335285775577056001973858672671169255711858413469411359596846474414375927990504150542572530724652812742863993453773600203500953157143188345285789847386614585942884808758950101464710978931847784528863209597569859512324076782594650100312673626263149493439486875923126468906556546972499593301215015414848290110070509819364963208717600630619647781285216855530926523659914222756442565263110997999052107938265198690544355187934188266582282475067996818032864915758016939347240357149686603979547681402573375710644778159948038725032239832657009328135217790706778446164928097773723691772544736810757566142134887644306675864843756175810153540546041156881592657108342096499374814990500228644413101473557783380699562145278920074668362796055609123918102973558693981898822123035391032440263356223969063321982420818982858421387394849896696857781812750477449712007623279094691856962916842653753925915761077363046951329637756503708749903336567428919484517925415607318384135075162833934924327967558216451876599970806172651540531405410652279045179792740650902844497072403566159365471852009413819208348166390692919050342441230955014053934554865729781274436760425317863417102033504524590511128789837761657963178531860445323868899898867489337859092062194169224791793900167246204075634629478257040567693719223931854096489418957351164464722896592749404562305946004615618409907355355844527567749472840499903462052981628213806204826979541411503417111313340323959093199926457799177506109241176338432709273087062658424228072205983425838978538575733206966867531982271760348204797078425885647559786911024780293722449510410277542497589284851198143397298156621805022950536731551768657759982761686831189254279887437532522804383815564454192933488082919021433140782366672503711135229915888443725121809941174618243197074927502634366969703227576081157987552110655748945373981280336994733071184979650696208359128278958085749149025507875155193614751826084069734203565417071740060445807763710892606872770697905890697229093080078291447168146105343335127628171074009874800280264598646022519946912273941930299760679727804425531840755544146231757801398730684009289813821309081331978140637544528946684917575627766742850631037603609428329831915137715432824134120161633350219809137854056427567686311129186422524906848503542768196286652439376647121614798095247586845150353416302089342013154996198157814380307871710935778729877113569019051891881001199287965901309578359911604187660119892410919370846628901131657307665772803089138734320755403406145321857206923157085000712876876050073717722269422940395779575513692972710521338815140955888759906524634753037945812111848921343690841136818589276280824624314068162848222395553717301181447923921909422801091321652552505655003978870220989371059061388748557922543317028464730906368478338138741333994329056165103493053466649873028731055147689661705176802858345248898675170185250321465284427582612189930228086279851380345058042226679654914438009211729024777341737472859503354677526302980074875229163159900654246707910201444050337363690635029952914809873009036163555777031295987574825716311714432486343085510283309439789838526193043174765161705315647280545465036208583426949916348315090270466671888097572592138157073364133754510583148257124856270941160485883313859679446118175959799139656603670503851421151902989836402163496965588631030639838835711754671087026212869333289690432745716891589827423606939674722273253798287867511946648600933643220094165966283262336387966094041772718992753747179685158164820323856228435374220731113328291430111499661783503725975085682156562944706712175529282956524148106188255022713980333016983834862424192685739624064719435184548219759502695831536478216847238323943100090893242394366918365362597166314384838392436899673516546188813807649559977317018147672973441046943754518958539420513098305782352190368182662646022078905107565354920444927078201649976530973785595196248147336763036960825759570803642884245134279261580523240545632316615862985816278983507386457243629388807187740637982573925530906681209846067615597644522840652765917350647830493798081265641370319210345824145311397672642195554306688092588601445125797660331774632815601528740747291885371592640426235616163014140135675323613159938780907074279172541906053407038851853176777498047899900597683430416299305506947946071062554982638865579656578526173912784309498208953326352381475926942125525110077234299338641863212230970876771552281237463859724465681606459977419670073582196401650508262261868620991408230956268112585390326024112295957315353905972859704995044728149209621574972069668147664998989363923233313549108184117248635744219031454869039355506235751304373110248199659808484060659506401807776800883366860749929378486785676337421645513555962157012061357708496724821090510434124084758565638261338543181853151106795780575662791410193486370914709191520528841915030005101850017085539503397702509532652422312355913447876678411315976905322459261416630436436650745154032750285260536313451061560848512020821736743078679643762828192844874699478578798357304381163878643896207406192884914792687093339304035684084332905586413534651184941136743784922837928323811225747962991786197346379737415446381495684866681126568710147278288613334891496830143080201551771233159639801617016370330274516538370531598680779868535387366907309189059792098601549706252210780178733281197206062929107128720286263907029409597423782843880797418849584249359078735042757971707979825674769104572962634428513271886868217015686429648176831793435184573303561293520678130602985780685798279089670785036211798990150765369932091675634404892958232370095296450850549463736347682425033125951691843787195564998595295428412262151127233384723763157748719832789914259654204584973164753981165260266829403836212564940994267274961324591136632596713590572024603271197534546395946974601344653991552266977241994726995810938662660043204204566565593353624223853887275093423507859138097864760484775036552301373890640974236135983049141929261188351237400478071959969017011184174161195155670980344817323528086933753640021508450384126321547829522981868664116790717966773516613850971492032103340440207278664140794848996503642093854327469228832853061386533419328164824076146951641347077817405230485062848685753121697504842726475340979251413984030793717894509559491570166009047740732418936863667778112011946785930993790567720651164869894364794433568609908783282071906641194795063558663258418737463792370500817662461225866759745931344513986708209318568979984801816701342916826202301553568434477118942867879398564869534778917741507917536036534060171633057760633130276652346319675736179980180014582030425095743265233202062852970874928761430729262990670086064168454374520564820290806886382469164278382010289182968999181114147723895524201615807582712826023079433592767746539185601008889405732381845924582701728279758889409858299955122985346650347406002872765808890458285681850207030651949502609539497485212902659384638371828597622507301526096870883292271261879874484644318008626443214116790394318927669156310188059923395586499243234488367207997738740099106808525653874264600458755694871355048897056069005356550551298455726757536760276507958882288976620756431228775979644861799445534734899486843650584597708868634574360999245349579975110407666636698436429108236631769179964351920970220663759056983991028271198750839426475427258923547584167324087120102228494517892195538034561915139851011947563153847892169058458028681851321308787767873243486059727434029320256115086893147956347311837228237197732676881199192957242720815925162675502018455513479674864853601267261334167396208130764279012288016669448680357823092379611070810464652665887487090418546993741597677489198129725343477882845784324704592941056011959472614643613999238717626483102741270555563355100492382447714081587617973511119126293016812037040320910375955208470411861655285517961115962744534818340805392257037823305710392274242889397518687571585809273116604511732685461206779923806740562960429358396704649394685807578309350681999285478415090396785974761555807347135367460318278779902083542538025857093935591555974458415895154968657150658462622319430380574693398279497097885047285785692714549347973656226801060470081099348340394842029294331058493133477107211650792341394102621945172335737958394292787370087146510768826180789793093636545667573860966513537031562017857234024333100972961502083889014157147684366408241411115625902727460890406128649100144320048898571269790095582981977289062742527571371013277387799289265024137741328072720371268718915182982836984583439843342461019754998236303055952156986568253031228951133594276724318315152780397583485469918443126466475552456152824108233791431618598282103323728051347655122377873399247118101653619505083359027892383301856183833102945667908179547894693659792862123043153417937507925100746413951066171986842829661220916300727670055978556066508626061153321093246983766632881981846870709025579273566865127696259513587681781274136223134504094937226234209270141400731212492226334019891374379979388569116248214058368256719446937899332170267496496045729515222434597065086030244061268249314120145970972185246024071880472701547756216882728142485328540740803089669715588740441037019298874176330643311084298046898501496139152640046186325913549038634588216517103260828286213781958668842688461376457849547047125595083183790868936082884428103090872577732981411354005047141737799056752657787792954839557387364041795586764005361695478808026746102258184037303661005138787201142446583373743106767659012699194342871042389391505121234457338930632228510920562505069466318398092890690086893377548686648066784605909245184381251099516691659722171477135307102387417462761224522681485901382306018667646818794747951228027339380408113468707459721074257382980806592076950653468659420698724773506254402121675223451826016668893858658931133751135386077955456563268306267620627000282423179848001441923761921822092895933462832701282136687674433883931188165069790615340556511760554838254219285651842883687121178397557801441681928293292201086470153630890998456339799638574536646972387006725043180369849710755369355679062995789911038800637042136271994616822120581786488369718460373580236520746613014326183546571743609249647592763714310068309887447487665060871977540022755554256258211796574065508932047318963273285912355394556249915917539590608371095484491419744164548135948394416988585366758389892565475215679866554402075616479391341579227219606254819349395913795155274340472697613488906262610838706912929145771596524021009169524154428200262833997203764980548750113628551186640210097212612674116106026034551875419573626637323770920105785699709461205697094268380391595053267723347627901466571690043712032099935146139442344423518553829846616873788920624262661691958720448299984738548160127379931965420623846190604276533783279867945078971891688460921274309980414217061903320875117145356422823803726850130702075605839937113041949129886941056731641371075592800995036185697567325963529060928492770053053909138345927178092021243247902378717337965604568731516629180798093716852106763944685430631708671754469354541039269664706727012082390970494503589371626749063093752670897749211362859453504222055597076798937782042166781578803435414465279574322374358488423470443680910645985744463329693989623067765996850886248494759179546023425709913348010889456760139929418578651937515981892770307993630828687353225842017949414435876304034075641306240536582515290671496421028995934366691049447403264441844812944599862009791017418326409494468200472778901747482842789902174927944313099412653922540975949137694347716259191679563654727725133408308482970314368918918777075274828700255188596367082825674485983093850621080324961460272038820155467562286547598959227970982299495365559291833130073754267810204597772380020719927552361921716100101521605584261494470747538091360893935012853866306790139128932491805712596962811651252679443849084848659871863841856267514198180295627832344750588992058328751954324255599971669311047774155567704075983343708805205473640546642875760694682980970543388518557223155322560854364827567560708059645071191207690772409187013070303993757380642266817437061068345423645131694514579965645787834466262404980619451885170983825628464957943853532056850955783802649645080519840517480444659075824174571061827803244664735107730951825658522189895264052308763761113345989473038690556929022892993572875052212224927920715354420453822727356758711997075421674683457019087155752374352067643149718720104065286752588178800588546260284140440569229303985463757780711798556098533397576650829253391216235853016714264584336986736710357099882371137197048556782460342226161352072633710314924586614222408599974245298973386761784839767988514912104504834476335304999833152761999062136783683941439845067465879951977153814392747546989982373773185568185911114645628300305128250659565040283071561061855331861199664101961698348382268402167497482238411608565116965505351623561806985694128282289669783960325245485176347761384419206626223294340039079367820018785270706303872960305652559787856485498341263269503589073643910863914599007238255564799455671105423917455947715032479282312829790736550116918508165713927633074149556582394265850818893160641030268717363155007744997973571488805472487898466023855102423664400244536550172511559424698941447861750919444339728603839702523150316133399112661859833026030718942025490268262243648622135008686078554294720170913150756142390184553393852423762839461861388623277231255509203638989708222601319616235518454922635102561998231684513198574704345167776172415172422863052739849144895053654950705229539550085084158575187116337195232492099227416222308477862793636308817156882671431129287235069306110491006969812922821652674091787679525117840972807139734753890693595498923788501843184384183345395668775660238850284106315353481408200820164464187658007302809315486462676599109150026453693231656525646739767036877156366623517239293490312394469323341339174610297435293935707195581655003994099269346425678772137868639838185451760004897296159280597554326418185524157429908480402376767272773700179707409916180028459949501457357711788260737970004266306635664109810791028009485171111010139202018026705790880162561077237961625613344395966547631029410550441252235944230260061361246550434158830535996841343439252762421501943509050275861616044869145264245251845711827159513197331787437026512339226838771955828144862244029976945238322637846455500543740430786802440845643412228697793060335290538277810776468561033178676506214263662922485102431128294499359271041716022384364927883492238138472192932223425986050451629647441362573996304267654239809189394880915859914153112843862842110104742636547778470230818794436047491698519284552455333447495580720933310431339219550277319895676823896555739211041883036009139834751622410075984464039314032088145636479324430678297032483915654305086390362915400510720441333701049900160420965574691176070653608129672667151367549870129578794869305626902835734216461089870458321483891767069684657888077425867766795478567304462084323119580639905066931838174966515334662807974273579832434558276564556634584490827743102611256600056978779900281948532939417374131952028849110243891923608431951698784197627644866095414101213731637558897292209715303488882793833421048884678325564906914146241952885183433409093011663432188399464499698206653895868332596245551901004977954977688138027515746091737460225740909791291570744154741689625235664879276306797034122176262299579345773452925426890990706265197803828550399352010472888031261346438493526569823284467036536197716874598467361579770101631303738221648964155564298921810562068633614737357022487761441746822616362938570189916200727335685812325603241577985634957010215424830236819030678912081819414407918037391531295031557724655451969820481708528480158015351551233802535318108954897372312952017323152740616486502451330754825698935647839418361770898683008469810900259874880171704149479688556450944430208125281387297994069338138815536564995429270532020890834598279008158907400732705459977794653552002358267273970803687252734536979068216020843876152009699817603747077500561838080099532840480144331684444354701728236712299045728947809621079973564044153219103812204915174600937778781023950936203977893678212063493762213623910955066933476608593358138055871956124840039690293746375663115078493809927621719182931882606778914817524092927861818788294708820219092617473517047920656943077927127476519373144315009909878062777155500857957441353320433854361160313289605005559504824932090294818211453480710870595319240768155634719537165889862204102735683782419181422856846293675523772762030179332811091045462744490898738202294813372655190692665409278986261675221014821542107399923531983827751134589516104871111717162292945158341739924930567936575317585983729432880185701898061910660190528105129837034352895711232155180459151837859069975813231949051860045983842616258801952741579847380237188869640380648536607211026145016422032929239504752594353270333517969212213589427241043516615442845055298845357327025716570556162748276240233690852188230549326398949946616327976086957732811079830175002782350258536895544866453851721002350138433999843244190650275964842822307757914129146540847519341766362382732340821060486686625495735470034426793918954425043271492544123691165962558245166940446348825865760116653225399288863056605616351357842037809639093327656217043083548930427484338072750458528888580229793130705497499057239917792537696380853558846259196637761036471848081912753530840935596938764586106631013590340588209147813199420008622687563425553958271500477667569006836097305258842008602861015215995105760106262651344386307429389064411510793738915555205130126304990367408369787860400797640255693129714931375461116930627369232533713701419953278201111380554045560084088327305396968202076038769967346012678672880252693020188883918563600370310536094199661207356426793239834121126618976566013817178662093399217927813727167862336896827111044928202425979950132222437779038845493355848907991581811114081849569102754261605593204579572303277848223607463857309870245798080691648196844185727544701646967403789573973305196756356067050237686137493509662354096814298211184853032000807217910266482870363204400980648661337741479932241263461056028385227032481586475034542306886533875651749445108185671655532981001390005587896671785113760607930156930255851353815332628009113716701852613139288379093841182637297025471512791622196177597685034281793836173234493986905030009313495368684766916569515901991044210425199482811587799058276572622556503284615965733664137461464826929327472110859177844315702759431254577074545181607217312583320027236022860755038994347499799774094708396127068138493943135567898166771330434432275711048296834821447321061045989596901908701088904828222050674264992994948044268858326621164779085663079749529250745645926265951789920183925552154627214945753957900521966182229947688081464086558379121885080334813726731706860537611307888414145014323036809818781807003675064724777174755397338911616394491729226352217947709520780616478278209787444177611425185758399167712300757267941231902795093598368131157641372807658034367490329732887829212811276823396587924684431309271570298163803266192065956455630282432782887711332597600646373900477281111987243914826897689943874267236890331256894427406035889654561686705808217335866187909709750405549598925720616892164243561020602026858888440578622059203257973824557486132784533950907726958125586043024110340622592074414707145700334659024033790183179220740269982101130650708107116193427806915856573181608243346471420629827645390514593641577579789990169513331400608787138769623435821598496578963270858027404631957373710749950768307934433383065672350062257144161538898483842911240365514412055602228113450594397860783506195871760907579272380999499368551479761755338418524689158015918503958525354677435491844176489122335978550243563093271802355144771209697228062703033527461178202563273566400104271023583226355437799243832503296548756018793344015583138826186044556788556221388299407733078895160821234948612642333341647703318649682934795774038984318345219785483157040226839597441151064740261961748680153974193819917394440517135842492393379827973499840679887953183036903406257949035368962889063842204897206931878357329484044948157762489608385608905839151654393730054888304371011595939796547446284649485524537987142033545388642556316437484618561592181593845670211968873241884895213380630925700481616839943026171637726619284075962405922498346885387339035432887553046733564009992729039309307578106097367303792977217009924076840161777033593657775624067914117040900050099833089476823911916752471307056387789606547404419733030115247916853326783757624262962364521304234555666162366511040468290791374278491753259812070086953840747941728801455864022019840860999472003233376522130769722023288558277190935613816843885469345547834997722485176480664971321967697195965131019951645414839320601482660770221235896668618756851458805252106673026722750944208257691826150357437437893416541238970572575440940548937439742346699285453204873342959803500917810923755772198709884056605797071629775469157657214624311578556033587520248673701803327766509470005544633914447718280586375708126744573412089934760501932382747193030417215231065431102217811302361514221506929740003273884510224388006835588060803848427672613485093982920103335479381398226760291584955584246017642232073438752394073037443637939884731097005144536727485960936985437941678093407898061796424504981201035344020373970892516765624172370147697572121600941156922108313418464136713694914507648066035763994777660032927618450797343261169421916687130330550512269108823225722240299893530255206146983160481591991736689413253913069475222500669804556911027987628282471605323047194611293261038857440032982648332054106231613096059250814924422904977819625402729562875689578432063854322207604722009900727263174278715602174078437699420173792620376836536126289404988412937536817395758332256275230130122731220326068926225519780033662630412907604446609470481399484658081291457689136869045977362643908813370312460385006854267164149217992077250543122672398554812396001580181795463600165352817981720412573222772219274388518678236959751844981268070263255634108727234411588456457622452056470938179995830376573933567537083575265232411934716406738109040528894329674426457136490475502692377034598160207080791557794480466982788440411685358030238479384393197265181654011850365355774241726022794546691784028111332303448825507085620220442987898089684734776727618630865752781281947527101736465649483770071505957310242802305275767684566990794587959989135405923949323544001683226373725622080462822540355622969650627142315820736541335003616726632029109795177349644669696749598619284540078385770178290097474673767337824999825384435862103086748503266352624801243436132739027395089121169488210039594234284929530667823847405931317944852299720833363208098110247768595744857680539262073865067959804169076240591660253879532377514893800454427388064186953076826280940049243409433623582066794275284982299465615232825367847734537216001591837334277538255927672159658962201297381497786088678422305848852227896787866317583403999860134434243871949919739712443255636040661577928323536428752391722485042430424127349683121731116824021968689348886312631544261366570694264980584073290462474502374823155081632576656043045194674809955437567632659672792000131165668626549737493011568178297028854762601476729689135092470349538560004083763912640561816919005461000095442307310715699787698139591212297845671940998892588344065733192175395516184882938923050562622914474079697942752788610039867541384082336323115820115636653351152850195240790713785676069763004071158705773046111286213913731956503567150188687517056510659227528642841589506841390512634826971869257122237769190948277186942684896521306247531297521124818522995240866177653267654041448756050299497474470600475283201714960326126255786429244601364886392629937768184246468114179234212821360067970332974618732973238797211746903726365494585193265372861866978573064216466952639571139626670435937128391142744893897612896430771122400470600015423505937832373977336806510387439036760494753701969524487851007229498614150196424703132187802972583456915025446912921019429284381961840701237424009158351223852581444668616556710418006788725230540161551101857665498937618521852644910333628629799852162043304666195893178693691355145765278861063560961598610665807407501282572091383067317887284558329714113800571697188609206923370632083121308084904080726320573578649981808327467474512447050873209300982838808153427130078935810686229044253047730700937929505531489204136538701291314905325628046572793035813168275923386575383989029743779563559097735151983207291725328292003076478004723109255225760274289250355205099555753419504321460735984169704708979404162585402749178929229126852989206334777783185747678664002891076809691494810563203105114998208914076423937162133975982144845909996692257270976241203663338128079264944829032667599707660367172285470479397079293916671852767100403539105037811988497212810995657801178077549114905353625524775577356073598833157122372808571068238358285866187999724626279428683590140856016506210143498502046153618354680963060088967531057191579505585232864882634671187858177022313001797812517142146080899724482482229862621289883342149057999873121515272097845862569910542630192268580229516361690006278041865132551068649255732559407179295740685943996906410776767240830864619994215286600746454581430929338986450905086836989736200181769630407287156173323178366499420804657343680792804321487948222148308021910531238044916149122130702859155561035640543374574059643177059262299525794078041557990439285091708951663796040346149145345366913204941707412146948189262411572033684913514060652540373639711566040660501692225318656270718870447643959527769154910524880096682473745324138662632712801882868953464777073565355168884074573852582813177030761577437144802511434487246448002723520426813025069633277476026303447726526650484133375619548103080646328259881854659440335950364718560707298462440236099209302373894774150084611734657125504606272916736740691102357183127547781344872166939039369106452888783875450026304155136681154880440708767954775364267258581767849001806910724633203535499121100370437708168178524111516360047727768110254983842875685169496264971348685169278259859420693184164860970074687771746197668650634699648058929092014391143780321121900970322663085983858482061823183105008507517955199882522689650930665685944620025664889848522002353216972397000542114972007937534912697362489281626176019992095400945932346411325804784537599829119879467341340151389589015355192999327556611006766773622996301873967533944122745812677215186919292229721236755873360476194377517083614485095667677232171100870822132492487928344763967756518066682698807978263413858976166798573241952718902014999471397196313847217370695360333973922281390191249351579563553888250777821889432571305484297296902606913544559165378195837221495148923400827504403519173784916112174281373492617914285608031227715815776981207887044418970258864972562412390152795264732362874750289621303640288366182759022136929276788687833975145389993143886962634553652047615923217359513206347594864208689832968580996012210783264866838758382522692038881331795325956552912473590592098500783296633314061798202909060280393169672199679006334314871079932288621935207308680692684989497287189476349495511473299487273147656202929821736494480921346825174348214304758025831692660962097175574768139151958248590452321970967139725010459669701283455282455731499105548300817093788640156999452902488771170500975617683637119945976834463641940376142751864230005415344925230298644654324846713752086588696201740914436812026222286838561785433665985914347291119046386891667037287180311724312871277195526133292174042548414867245420852812452766336986074949934054455546853189351552901578670081941229154233212204564853220821058795002149115270869370034114480991156724810843559398535984340968290848284448723882874643880436750235978018722978581537674605891751797514738305149732720383111977787759990452214051502789914094812292028093252747684181977377505610189740432239160870769345771912930769241673451960576445853866272609798178271986678637080182943057917808473510694516531446742438424842613383397080722724274071029612806881360312949886062334754994601473521224259089928103394634504711491426811365665364468023862577241848275434571150401392596856767240455844621302460632378788964391407129305614687886892104195021731837769259457696802359345479092000576327426044587005873244037655503824201549074185483723065648395965052992155164370364756807841023270487510260015174671433782329296583798241374785577935846123831865900679127751354406181685579443999543886499739545551657495858190786724841146437409455463196582012061089097652949508513053232124028864886179368947564171311671723231349577656134089845809182323843382422916568780049291976406625216754098119043670039446705952658161721001080288420715336858817190048364831302829567333411383177219145943359680780276925988127426044394775564724881439410931591824125557726146978018009486778141401172983033911069353860804690455551121398745202934956129311375287379838288285146677660187307344993610999235793224764219852938706315457085026767010941408116056336951910078838559560699514148142400692978480606770158200871802375099543613124466443058058588377053661375327850078376845602897781503797230649628688450643776745611516291891175582124445097620405151542276733798099521930419277836106458359700776418595003031889600433016025348353837366364885027948230570637673977652338649856704680471170123469659366462027898098707334430255575880684702133192136700241374164161954268676233776797142557361801011771915025228062197623245813163024445149717925710169303772575563675508716413472970190343264531177677017201975768385796195777440450489284495607234737910671272428754291052672885804984578967274345024056441814473976119885637580615468993278004438667835694778338003896272007877844165287118718196310893661017622283359961904980013351231679743243099105380922194362782845201625568112188359828897908944820346002260770460743950327945841461346780103647198431625006637034372104564918720536396966063826187784346271117195952003340955740345429911136088191597697068823298483223714497638673653652469609341591374078135224787830961388505291081088599545756858195801476258582512419358649474465256252661181236083689810373309728270835222191773602832004604849785018521676447737185564549243434257870747756091388752899537677203729748103390439162158468779005979264036941887591070621928624559407820681549582091060720614647091760251521358309492790708747885420707211416550807765619097668158487571404857323898329043445434165444800872265875108098086626714356588019552974017431848191543858997810698180121013945315502890174942573874786905514276223049168564855091483595249060915377444950545827680905101381729024430650202597613797803139953956223903569199818368870836227147120079738854608034249310428011237642278819595155402828643044557298651527722293020688918075357018895993913624936616370844268840610336937964531949472562437318617771419570208502486944471308003187285204124907009454695651945163320678652414910503562825114390383312538593294811446429243690816164472100235215456173630726451911077427677564856799905399648190154600169091880345736847801511566182820466193421922096449407437477346000625648144672179701922290867228804980285011781218732076570723665368643288237216887456106523553815252528051820648167660877672446346824701923426473990803250277040725848390178267188020309772143353292458120252249255044758134165940919289938050447658582263135934243429355419084890403669867513833932477914099492213234378527962685429172384207598227660000888231117258731138639623981928974698089201972462018476519777887132149053290230868595193553340894405434231113699218561866654586269057166811584740557626197663667499421634558876253628204585744963106506051601994661773053660126367539482150605289788052510725871211591553700913849564260038403781836767849662318642423373240889248378760375858919724698129910823004915428690476958756242201244375324387971025548612390481733427075268995360893887672962590679764593775411397661315753185034705490630900400880109893836038333290804489843916467530980362931152316552632697695421781055165031894495910224014432829014550873443188189837942683210480589862735892000070460462364726592035813268868373775831720186207177077149719000424149174178107399501390976930338343577424143725276567273517202761735801888423308259397137368507930224097205981002425195421327745074881254533226380803522257175130850037843839806179296313508806480440259079214371161638772080524456133710948431100963325441290857967724848327195821389512511665275467946401815608336153692620190354057638248939299007314338666780815028482594021460156274984492860509990034149681359604936805833430944903119495780886134882597473634308436578106575623197032372416520391061018527868203337086185196087068008169103509688126698029918585656799591861849732933554896679299658933002944013653961895655251383708877508334560132378824539177237690577466459960606974220829449810150176439424584410343974582760611078845584725275000763024589711416952057242986804437632694079692329784587640619348058754010135842851845354148016423545030585090051485923260492856518306263421028004921157536110941218755535905127603676565620114490326766889794964176541925483585512987533752409775631833199489396928221008136516063276635245528944283983825063220622991284332684320772339629924304716349116917560897579735718812129080348310906757812195660423286546984342208644482170916502888333903497313680204761450333479822044738300401221238947297237709679439006105686687764680800963114156664439451887046064016529045707308017168990103985251102394935138446191977022265411412710847373758549415590409352194262829296856099591236015165038576089745625622452506126765604227668489446999953000634527622578878629339120561486433841019802840341092922545033185774146999936148163346826478844724437711725067030020268285736549983516004526557683457327157788847366744686181933044592094309275610752311973310536102800388811326034284954221576866889555678756170954716688046036603482336428186234978223542321305157259126853477226297982151080520355406687042338493865253834181312657653668343974899477410540727023858127098809152345703127710904594999046062475867160550580601404772863409200689353886780155465771627938718755772162736679055588919164845721644373229036398172203743852454483162476598792074260851457263348543484264535720813802329980255722915759787082506767625516414911273241320677169687050802718834336559237119383102593727237093391853714045297999171178369882749231338684041236906294395260994571258808189773150793923495400571152119285420535745217009326106663210224471580474036079768020638310160484890822726916886009042661950402654551333543544621868842976459013395470893369710490047873252521634061843047062525146871278880801001521366528384396251087691153416125582707063356474533527329596572624741168028039214672645696288698979448307417795244830522975839358428988298747565430510701476038186672209179485119247816344698639214840920715953005393623697766811138255388977030602161769339652156879504332361139653788245315626645111728563134547224760541460312727165777799410255199551621281537022301773381410771470049550831214993424513754559415187974234591351733549244751382680417273571338750037962750573776181530250090384177880651021968603454079327643275290236731039237085240426651422972218843946645625637768206170619439572689738263492927347469748086983056044683667368927085644278676495331489508810462967521009932002256041866305264259767016993241807201753894334513233118380298711534627812640334942237930237732608580358813781189544238618816050183058978663655332123894401794319751207525983683637936573694219996923495148422772731702367666754174754109564331414589539284552364890614510902435661614417967684939553091073052503686557881495524732918689060240867774038548597383109549920968201596853758056947026505750242464603164700895536589761084317981147978690951030870515013135120350899905458784213884588453629545513380837515571358662456550936498041961836535423585315211499567544455293937341577489363251301414061212170276599656908114952977121284542533709823564716822344430942266396732729919463494596457629392313495515762401251157080242899946828412556270166681217535275530821918407279672376475569138342664920626713490487295905768298741407952852893684485361553997787219326113216737718373303224661833115546361899666706716327227381361042747002665813078561063198915862035480124124117244193936214836454177842901414967358393664702910004231625654973202185301736892547078684630819722370344314838076341401383160543892708905890879514300332659392125758281272165424459687353367385786251869633761450609219330137894173311387188533593773877464400981816398061245600962973596200065811844303395280939321421856272464736094825153491361686300884997284680259476470166142579013395945157444283946464246586784550538165507469017435771194371839017533078547001300620588145134685956603140768940720533051222695467005326389293182373381004708692006934437543024281694874197743463886269545768904507938799840264054972068804600126871481306783663928560984540660710588159804902429412719432399085339355344930129088232108896965034111166390767544563053373934135985207020276530922793038673444259643423427282382776534300763911576140181776168097241728568524331773582953387373840466793017133938998684416833599109905211693927332225803533821146499974432178345359551676228357649799227668077594907166884322676716873786834955080379403441115154542562688052807052637584404073625990856832204563849137397022703182474919334482988203608569562225773430432570951352263088260292882320152030797691457314450803305001159755366399433158146257272947309438589223550283170499190620417455265153732311412104117082536882014936806746730514134172297422264094756977334109393866053454230988802291496555531151504106717741540508852085196691043991689829544620034043339873738061164481860597301611079497762760034307130516233351737582228653740211782126358310134504712516696627996103818319516723000010751689546728683727831641077685680932552173237592957160335409032293615912495594698594947756983824132841762605690098122468092518441161882862968008468427402831308216089180752621019943895745029731436572362460698250183040960100113244493623528578541986372328565298769819063075246896415407425300975004204085262463525328830546849037016216864686797907534909264821858773250976668969489098796343781390752517753142107592529893681769527309851186660053980035414791409280180168519282226527673967789821502328057227383822564791694509596768116765950997110503030944257824031314164251130815329069222300294519769667072714952852770056358841160164547033233829983720663363678230958505168110001529589221841078088767558549825896110772724313085339989007583702170426179559177152956202015688903442924372272972378198623084236582443118173379690081685949047437240256376634084397922827068833964610778583028685987732590970293910505656360082639074725629991662671186825236120937289371903007147987732016941464381363261692869491946068041972528000115622305266569222545433741308036028546158052520908101287153941752671114762323657872056108506291354085316156061059285593790376776099467157015672519662666395012430375387269894607331212101615213182349696727917290268690581632997728356843619432209728286869415036768422026407599207371548744908522206437147320586690378636019885297189761980239517276332275679442701840473619891380538811887280088889635643351223656397650347819122636601074032927665800158134889245461035210973898435345123404761168143777635727565719114672101423044838558538388169600073847153503705418110833333432227749157110537466186826625768769708878546246713180091754087818589371742337455410798042133094749300076115398628224656403932379522293614353494587580912317382327058271544306098312163069200617714223433619850844035771647906705677926874055205551512328022968116487106641426784570069147520196149032364050740560705066144855338919362240246233379005918741090444933243912150575721680301037910654600415296085754271045255432443319711169705359850801434229305483713111242742067468702405494061885459223545640043495674113474630084109890045262357964373672110319355614417106432567261710081402167133159904226210486267094184192786564523272854013533434077251304157428136931348606410856547682777610441643763686483052152313574923194019900575105696771647923957287437118229038319859535672834754192754589364112000891881362044759460540858306523801595956496085703168021554056503501439076887782645596436848641823007658849190131568725298530702010599151049208441895062577811626975704405088494374525681104079005934931206361029964007869760988225117022088374056842316128125567528706113706190429084512447008115355840781944356292923164423365085934238049974226609049945014046814269566313874547054015931308797745210658080030220159864355966034654677329548170678525197895211683010408596752822177511508139237988342427815027210232318041196265176245148653196843640650742074552804146551241209608049229964740841048248217961115828023042646686187195439620334371470747393182722733786778516553468836631369355363553720804125438185255049332604688834526604451091146871803482083158498800044302366214612670507615624158898371350645965300134220132633190956641647770613971462567763959916238616618551879465765599083677016855778053294017025229135514301988646834151624245133881699785531463937936061321096644332111694551531874199984998641332779251984778684717247826465611020208648670034981655709291522792763638970581802507916375234495483236037375637290885052892437779291692033759442209503164741006284340446448988843229811827954526666262368195591821302703270034365935319462163701498227004720368760573416593330331413062416938922480017002051648019349027095106335824909336820927115300672263889700670434225045392799165273512555906747923744328115436013500183791853312177486748520035992920344243983544798428826071513004763339904744537025027171058256773338162137380546135516158540164268087187148791681812624976224581256232158980209111402743232531538306075675244479990623457345524127822024594701631908973582611211908283159940880367764740828410431910232139873129861027230731169268403483187943758830771557507206194824891331187211061263087827397242942524658261067031334505102609984507303522581272567664794615215256824681830873879197781825839222608041605609198432442962299867908031502852817228940057257913249207141854144251762404011001790961458269471991836634863166137612406440704202548638179593803233901762807217200231963559942855920611703631075711855611807907618405878219048658515770079165218354086290871849049618512105401085205432927758659044034242030172754942949829464902958960527947179608692859845317195172182519148116793833766627599679740499573537276000513089097712946643650391407943771161303870574340506350187536554778291068725389629354225334115549048781636686801248139939727507119371445739886371635625925669374603508819320074536335207220662296221870829611806202265836820328316076130191302218866290129656595628219421904603343644662333460130945711974594888791314707258423762719607371670635938212199069429422959295182058426006043604713037899445082467754847948094807503192859584219638095319307086871252023382930820513981371996018044551370947997681188435656788289466768496618829732243956936192387937382740905177805913126677623125776231258065364783058601677992044239165260239328144937636793837888757485889519427054517829365666124147070609401949092902043655547664939214718293687307608968833734204191939025400471016689380017864202273106468643601800485260441006673986368863483738233835284590947685593376900163630838113552521520548743167609877984011882041500553815491227219322294124584687831957178123296737217577345196588399020636263054501538749404824747504121266348628120827182180799938486789215309013644781061051083009078839308870087715962178101672659120566772733570090841550111806692030191512959905170317135279633340938034925208748099286974984444737365669676554045560512742166412965967163505307192818579493000656190396552869514309012383497851657477520329503477444667404336770768132020277187852398941427271645592038135331890233544951285375334092378975958266502586023832241059119148327280247429499416236479188536169500227862042561641148521896040245322988636766940014993772941232453082636370472116985745314713088466009826963699480711924830511386704016577606724336433910369098356918575781406491917617866743971929147456465281259478340725425660721159204718523265793414086114669907392520306022189740952523446872353515347685825244406750577906081339799382887517951148875402325033796638055340475583798734953578328843689351006364531326334790130814978831206349546894330225183398421680927368799853720657841638006607610371076268350968995434279324941365187902018759648764356275837729104433194576642321504160438381519555627062058103062455909748562378951484263715938938804028893125454720038358325529543287243300815812493725086119557926711605985200802446280731538972077645742550976995376416115176219094443825119424373156162912943471270842635083993450647722560531280033677299186944002932462100170770100029298022733677237375115877961024078494114663739007645249972125406720737149871523739397716776236481501119404023427251448741657856351219219918020797307839249457540535793920771114745473533476865381143273580274603128768743007696668979953727553032641280966177079356838837954919690850093732893962921264009704427417620936155650268943410751973627660353448087963175997474842049402673337535914469535380494897954013884194274130876320226993261735651376036482436622237514629202699701802399251897439798756846744918973854904102780594686426070675845383104957895285950442419864579980687228358128157337647581112554927435785216539395082469670092470477687692837788468719512773803769242009960993102523310820399130790332435541433513608800330545085026528125974194219431558723016878092676421268444371197521412658510927310393824276398749364375765140046282476642187279135461332310454486398308131052301939559388627871579337405616092460608808252741171005940301322426353826933963450287480984886570027630937159650602137422688778677565109066776184916320807366572409348045209353307587765636613484981683721313748855685373522970263752473635598187465182268438780815543890373584130805864017080686222338210415539870545691268926838504208685115176396219996912592807039753135734085886072816573080951177773751030969160458321312221462113433141089169774960049629302116329774309297728496005946813196538383961166166175048027148418343406266842531039909698332794641807006534944679362303585627608406052942218995284429988711173976211367023898340662437750574147938321072404712446997407709877335926722121056628414849820749463007857392115518148738618245684371798055869535684731967609814260016903352779846734094731106640898492166900495314958595192942539587923322870749927228500512896388479423312713180578089811742029044995588364216696954963434406261373647967377686759740540175590060825769450226890907216453562882235644514221118811040848861166749765943320992715907160962190501060393306588896467528669778883053155707617215478047408221757980459184356382154315909050732300743769607244946093908208308496017849833325827499498945423322418059733887477180786064744728964119586820621838421894071639181799060009902987200323981830286978528807624329442272421656999023980111657255207985662034279489628973052510934584870907801653696670341026364982290559317848693470406876539394189668410054515148804024905195800923703445538464324336937791022743889725014877731260697232147765638558993976304800749039590909632659727463865440724958183427957376568222475643830943180912057282404493441833689183554380036890823359704345824529101823408779720521343636814788896242803500225272275884599334567279081216048710789935399794851442059444485494634293982916001077594177071791702302092006595233918284037517500768237624727331829905922174798424319174672514232542947788765670197304422090694491014583915061702750840176575587889294613802135675503681931012151153565683784260326417845384646651333148371597524496452128406026099848117930210451837081560462404263651031454634974859402486418692576134466271814249683539983444089456965683387219231583175245412554550917295652333941636194793733029550504132441342601201250906597098829181808278452366658791388974824129724592197584690823684961503399060078008196971712254639755359657752036839879501162476003724000927753575726728813542162468413424242801106359243176126306665050065808265921996577615122417243069508714886803326285804365697678998392977630595530137416740228999688145192946282364299097937769852742836819739245192093239059271440590417691262244179962980676354910128873575911234308287096125093930187358354398529166035562151569283977302985589141808416182619956881204230627407382703262941424172866825942376335065835196497610542644486184376848374598408115790323460909962714982721889642875531307694009389543986360730846830487814927239347214341965098367742419120491839278075807523081697089681010060827392428180684904472755787097475874596525635994278299579100851752304976401986733870995091127431215774025959034659167115723015413286395900619534504769786162321110747948242534720452437236634736758847964789984348832261676469212699060233480006422687350013910787807542458355733791327668729475891826773125628573673972651714199067346249416191791747751097571634205717213092834130970407975289312753300775441072174872507481119812596138281032862975929703268686790706799101917430464863744798155837283851334133614076577639028534063939870636532587254314584979317770373637677504251643886659812737354719573756856024281354716510445705842685874030437419335767227640896395832152062192852444967815454852447741288786137562008197714033457765069453425829251883012247239037188594459548288971882765228171025221957118100050805412396383418779972184354461784754364448908085238825858797761251650641243104862882714251921611743109745673033077560739416495832308933706543126961213757064086846480063766278366106879164533851983036845503628770970975277767483807336310192912568735965446122864515081683248694560161252177019197959624703087871583161534132616480761533238312664906070444615368883813767987790685877563087197935738406744455049118912416464157110975552376806322923755612929853142758564658208290583937631337733727592426104294519354838556097742779761691923892938466523446211821181059522398042014308653566363060647224015643391704078242650748947972283983954232351831627725390807642173542471967269922996980701061508386777508386699589227331174088778453713736164816124823374052250392749279023517719331856254401740213932376838490685864823729210966861006238967872888475580511753787906116990398798728434544499436796579276225522124811116531067994268092132203521821202388061505217859739256247741905100368769978704959938224784532655504062397803866338912101583357122245123795712487598347298545096855841194407862157542104282491781108041801342270396895246726505946430239775347492912152389167156234567243842273862430786037878438706047313266973866354778217977735701851530572157856023195455314691790362395715247409455209934500796616208455184468959389368700264641382144436392774755546042560334701265653102208053289151734825038844984574064468091124274483854184811839262373264765888051065620550657530466282785821523049178203408782978674417817602000378596135083014847858286797273294017072496954106637526115891303876600627990856743372040312832445932702924300442293613905001832985803573064028097159352350208875273060527527684499276151810479311870477492654923105112017731857067849718020137935675313125218879331070575929312852013444871458788652708456632636586798230053633873589487404192387873484068679935373870008484345642039338782487486415795292651055706470558881701351068105984502664991203371578538199624124166501900405748389059969938151967603155469996821292876975268343972806018740671403981201220716576555079281801142409653047521318794414471492046626552178383542073457623689328352372222748859754278271505966443761349883975667843073441412860287034796300224763878756918284116398515567009032168708070112349825646491944192169853622469078296897817052824812581578325469835568088979759054698138597281211037568272239125999536915111783271953082904743574644382202259185369606367832373252776511756454170297196866202187915068187464414015919476952600831324846934263337506059302634332876847999162967031020409899022244630033477540708468985137541179049276577276805538092530472069519534862231007842150866941970730559182556390612549449731155784527646764197987877781301750736357029142566338075778378161650891321417278769293503754741434550328658904077798684966754361655385018061347243759268014509233908643156541117803403965269980131058981780007360978896222848937738981819598905510391955250461129475482099801163691628819768169245172404701633217440555689482367152466976379915912759131546941530329352514842799715981355620813074460657303347813495721866766660168122982165568897985305348491709635905526797406114563943394071986705956737494291713811746889902405225424345659404207906869883008990334433587960591294666289301194582959503437405331331461912670587890338193125860386826984021004914707952420997528601584291296198847920998827770717599423605688861977996050775747014845935695332739473411074644601040932547500500416551880459103482804690544559821396293664487416231806981704235321028391052956587367649031101717063545931891710330889348789579029921146475064119503477391746313091966905398881120696834100283260266940399716509402173112319745369579619405377861745074028330318512646472620587172029323314506866520659752310633808997995688505611798353166301825824077135694693510414727244513859403085545504916770035296106951334637470012299406162665394956346562199030246358165176650234897170702371642719814587470377681930301279061992383335501243053737346297629148050385644900254759069295530788183603297223342121745811575909847062335158722677367488798494790564948183057622094721329009282654300793570150676794490774874779003824284353313622375629182787141523192173652297785429721501779868498813054327036194881523008476784321062454081000776483288512333273725065859865939031332687384716153164866160540863342441452575023287546853614334652145966592921697859375219146934469215699359705546491812973737734955282636718788156541108396550221009790928193353096981076338257988528559868683816090232948527208804144005005852846273830888917926535938321228514262933199156155463268739579400956882758376105083551112115073377293869052183920163387130864364133281694995059813035576598159112301609616887758386554769151777163709165340615226355194345160341026248362788839220047615820150500940323839950826115812843607689367743617204866498534310275927373379325266644610900885165086339559008093706444856266201821737797993872129971764968665929461337863149876270406003865634764511051965298885982459374076648760201403885401764482233449810679125235920210261730350993499241495624517627793147170188414810510656636357952938283767544485933718383900293377011349518458994757593919120555718127186463489644927647581834939182984671941360021022687213427406709853805169514375160473622383737161978340064741788737889665614271491352134322754436832234962726145406820823559187186655238976379611769209341305505779807969819816432261387960661778172421778869897601826699691962993054552937757189729683714467589379839876456044399121684526910361133377328688998366720057257449521968025531478185109363060688732821431177803515559035113223580366625613178347148988341136310677823475552358338302047126033563666475915756658515987788423692387908994775281111353045465577449893153351133590783548191354565555362426160242025802913729059588307047755754067054109155945446354352748650492025275802277474056322308433500277863144184360684936534805575583269540838174102196896855749046448614171515849614375381972470098817586659237171952391471093851378435430981018844807638878807374819945693396695292737682938691827419670156850171406736322693006473458310099165551288481999133504644008336809543757260815207031723813553361778146884338045226774175949632179844880427582684298692948012028187427513128380989192438031356110089182007061626653557100438393813222636496678208596880950870586490102256274013717754009177575657509612481653989210767045120242900203037849200996478863298913233776750929287110330584591710023107344773525748409959348982198325206337021979025407075732776371019958620336552259206418993359046300820104001665681337031243633214410618870644668667092872913031699594475435716260739080293299418555200664544792448384282750671980447465341640033199399180722383385227250286132217331094639812093299985477172888621146407036784731984632999576325626717554031699746469387506972607410230014502185918467584035484952697257626339130770791239288338670880803156990171281273813200284092311957453479167337248377505542877700531095734051904551829546653597214568728646357924915184544799078661777762442068345649032041511977853608579146494645059277775224632972498255397582113779862665930237023284410417888117805838196227194502591924566367775989418866555753445874872016107521774256819860550753527827321381925509387954738660431700446855231366211143025572811100027169866628417923982784345409713833035077411909691836956628176584436835418023012680817275343520896900451897877947215407741019467193143316113565760561465134019186434965457847246582616449247990872501726393709161879855322794846507683176391798503851736484794527666975819324952229951071609383828827083656167215068351440954298621917601806104978302258472687832012772066121722722584396890163559410680790992828542614602299402363274172160860969351591896273950203477060735880215966839968202592762719120420100023431453642941092789722259112532879914369376050661152522317913545629621770142780007299309723047942288246776532933993745156285650585836732086461913262336164353997228626354874887529237350206874444451223093424550687331293345065280478406320630722070066046665162817052972415006858145589906004637508538877248543976617864265815765182435230170022989454397092044351184209550800658402160732790330374312367255530865507751266128358749016920196669335219390598678125737561439101092995327130355757782659016322698347272840753119452504085242454534321449834553229986296131179167609912649169698511418976749152847819019832700812375522663128992261759593414943612741068042333155891601073318071130773925323649040852112231028420206816252061552934007714499609293419729048310966880725112162934293765781173946065410269222555604644908270621415894492718566910281856331768799596178710354297419388343819390024733325366682150115547953221769270320874647762018052044981588576898394845675594469463122441201348642307778916862195892238705280664459538004802411449630215304516608620599975963068666016319710782649289437451611123446185359688413432956788324466953096712716284354189280820043669829305143149786974675053261643218861535635222768624029906837410097345453209212417244893400015777414547502590057670328405581195028209511565618260034163991212506923227766894270551505594126562196342553356092581782062795053567667512639772910544047599720419229909402863195847055149114962119317585467116418976233512382531103692907068466974041450458867299005012607401493579737094309431890704287891002322635172497994791219146038540405308217662818775112707194662177796248659978765636665526215179626431654530064452099398791444697872295959006362967978672495086582097626964267911871321591416229935370976768497810327402758067934318711130802572844318603186684674649699424010171331750237935456663650293431184560993673394812512264983419971965863993944863214686908679179181232714306952856453536911020684531593428439967797973083150840177472782788642391351450285923590684797535743699417609003496616973827885115070051574678907612790579933619499936934817501628871943054556554450281841992915486124583731974319073194994420413362277039426484827260075850762029463026344940118379399993550442368851916135338227529116477369636504426113377077164399873309462642073125413995686736040585837122879085285485207446226995643948241779314583728921662760830331693164282343038392442726657924727182900523999274226872425852034376018887861394122705561653779034782599172640310398464463218745405415645185125556629562378853373537450074134876816964744532500076341510695885906475042903895340326745435317374854120040126465316620614863860806800607717148159633286197944850737200464124957997752141887066943417880366143765195370360359220134677535253254486162976218598612727937779852674908499169922084535607789049280535348312854061721939473830840598098438429261742365207608113234398433176311250768228129661151770550856811092690590926313005354670439943510363188066564146644443646448000467638375783504731494005372086714596362800844619722271725223193369488681109155799857898873258626385826246947929324496279803370286851933325280648612487996521881951037057162894810898984182617520704122637392143701744972820395606412501070030421294787044265665512750723528726366835944114853328476964750522143822710037853555227030515053666936883784546355104927058240590260147041581709775138673296844608096452578482447501495163691299807091032488635350226411909172329714476373709908801895646357398619244157010417700455327121763707293494556984942450249356485526654298803357104829945407833409764525238460623313448638902398035566531791479589200087992510283730350018054061581212108309604956261959659119329971135739921015559216598777871789776630330456792117207562248433487537929169143016548451133809782703378440650119367366238657118822007487114977279936641076293987290441211290844122619563278123143427676955877899849477706491837421980543674066288783787546687333810415975891157853780536350573237868662994871703164526847659532494890686676407591669990960076795461865145108529706318184858654276054650857565704011940896051772761154756650671378628750811614392006445627347054480544132182371455409279022006150204834004310189962367200647330574802039237871458928988884843319471586232405458321920544846747950776775302845379289027759253948437657101296550801394992967026463790293961731815197348869514369537502190193771675024378557078295489609562024191603469072554425754585869584660910828727287840587434128417607222869205687895550752634243625808093164413019939176159198357318667917947613216292779899270878498632060537396905919975200684047152122274245575725361658763338919618211431542579005821481809741142521040029539610724544827877744046104541221536684046658366567784720616060858483623719100882614458988012736592662305223649794182658406730214491750786366284837719421078287323413852492935310133294206601732920298403806277131930590825558328598730574347990882428701146165774386799985891834150448269131616403267818005028414316153343402682713349101378571151685912163887241553684893713753009458806471631800044928337296992208078785174774866352961158806450387641590159950789976312571415184969132940671432521987514652442799080461016134864852925269858827833946236910268864501498075526621064338612818405186486429443611838386053781894018019558325432966058612922819259554887447503042980427300420419180919574501848650182066099872094322952664236348003844730081247686011228533921325540286241503643964927161822625558905378273268322979214771220878540604511764767021569521702651020998441219612903552223836715324822604377584885314137642014824558287825866201142793774698077746212102756132199070905112975507999109324683031860724766850833163180405415980806925043160335251440786870028838627697320243002296726365306589097766956744501994956607674749345282575039051816100337414985908369905298226600991517246172670886168919706192854183235084960435737194780278997495770209209407288775489456747665100934426989422925952685372365951364922050712577881332394648899887786191732485746357867108027331406650915367414094765331337000940308187562769978771694134279734460975863517835075413445798612253236414367856088940219993853048418088256616775885648699999686220518393453376623304156093719511529845567910129060309016300495059107481457962539950322393757293496361589034183334058115535400746758279010303508452976374513005122340587097229129391363997021092448640062860878214549014506481945874117173617072427078796868751057097915574246456021531282928102530470940978641368319747377553234814634333209947774937534206945866281312015785781759150586784480221679378140608089145074467371926292871529137964281248055370456461812380856167366839065886661109899451319719643162401977057787832745525207036455606487276180411329547920042590813135308775791010223785519236338919677955809811086310655773159851455951682968969761150380969121253236838782637103618890725885484896240953923620496663815234546997381013289471966837924864798412592928762600898691656039289128866716189298191195934516414817919079743880826837727622590532367472007908812624820555544960907907757424271742331055547664991629074657390475516990599670545506765122617930011709219832133971660912300731897478383587751331361939279172751941392129068021042081836863881330282326862953433537537448775531382406305782224924078538857153497102802841796468066471789844490937060869789464273095385391195978443091721168317780796264192611739609528884989584899286683343913413745772951797037105855439410853851358912703120422940916076087523455171234166924764673554255590388002059268753503319566096148611901696396751926863461133280690265405120137686080605948433178933308771469996807771642732424539129100282417900975545151789583690636188500037190711525102598508549367921983007445426959826998843656844677145641627391247624567605636375154953895845806006026371450813623420294282437856301240037826846417855119279408398086830607313993868412088561446603417480570413659935918656376764223835052495562550915565170050824309430801361336683416550469220153957194481407165079296804032874233745475119112986213454307912786723511738440360109085317465115545128665262581648075599909733747601436033928970350638026603218205373506874501497179141277125870896331561611598014616548734114804571777256957926982687669381351615793843544215855434159973567809860794102414879609507577263747592492946704424227695438645956004811739237611496495546631997570267063196328771562052563835999069492251908988740822150829693257248658604462462313029321972884385850411184731641641652040099405286947571484527034216545419564744330996411065615327362891271528607501065666430422299573851448403492438278823596941440445384312718778236117567695374690486264474451027130282277333289734022683101173035565853521208140663082625150702568887489801897103135716648517235657151906735344249722007445261575559746626571631344173276296845089342317210707318068716437564575143705544831221309729885534080740730272572464870551732360748089902459201629631334327721860835719730751204372778795911274373746143067944155539989278694399212489774786912034522691170208336487958098468822282742077697034847269002842756840408322509292415798307214625264694488395347448192395314728878325083347620466864028967638264055784566834838047416478496306489865998312817191561971311205693461804189334367432345597105712774589292542069781535786414156383689814829221501237850609360076345718992138199567983281611650084557523933594559647478721668840407862735399895202888991908760346516958945195826798811220052958992556144391645909951341543537034051824812485954000162204459223822819046046195073446371412544269288938463650369729463251421830350377127088083100875192930365308713318316300290046502900197120713399034133663630373361976712061557136154835224581259536758717507629164402357873196651003590472456047275835049253070997908748099541803008414287168554207248840077511874863716264653973151048547927053528589433422281929810129337964444607695944253340418312892473409767993233215835299119963372327495081710504189475884186033140471026142428736833132762864955698505217959011626490415062198865065718209548048098325100690935754248853485611829642017296228266279060658289169492436281412857066154207745652523439794107815354971800938052576822417901021478321336028934551220873297456463633118138151249758772247506528540432319964956919026892323002424869277673064226235214996900264021494141627874302342663216862463208331546295667859252781936970827705124413136437521679789998672426620042274890628826669917165727384741376195903975821263098659667660842394302805582354951476354352416552658242727487006044856071833701159093716357149223986382982171556780574550692726249085951391497949837041211035845312010964836274108122932373199893132408001773991918099983605158000475539360936172906711808188445520330460503925526404945315492667745509097595756927371526505209041474696784457840198917946267328016020541433705129030606521859746964437347286569551290478779751800505724025851362625555749920572756489861557420386644361366924164868393873342397233639023005388811858431203126816327916850946319121755852279402979968632149548625389251283574811385984637645477482406579616650583197882507932667941036131248660100282105282827738023265857471549762057777397626167045964605522612500026774816159658991995483144606142550566149998575672298150031551281090688711224997984882900791068635841410918433542195822893400129721924182678286620872578170464737182491925865641462588038180864915155313325422964548311811637591001969277230991311751200665891197446110737305691338550534966713719209211399945012937924335449078739381367890255904877380854107771333621384803224775614058515834294118697509343040561215141666406753772876251636103227672352899984765978637471523889024908777092926928982383045124812511818137019417728672425180186497179283549964565601894840250434103620906090751594426621953877499297135902004906396852503942983603053433973883411057500887302250564552538780800428994052944910362838286463241523133495133246144915488703721842954426235033028030663719253552713058508008437107272298366090807678522917963112531047273635074456009825141749814776219093167960373840809306666700886720371374132954020292955853038269395356935973732782590162638812323291916898127333290239387390335974022871571964476918753698483622661340480741176869133419287546469798794546459549029460527806487344415035855423830916465750350453661450154847553857257075700032482361852982850757170272775152572291336848807557876041768244965947094884371991827949893089161756481532402156273545741591027281656114855019090283389239837705941553244187036152407795998306319776033388389520492741611897986439860401258098632047356989630593345328338215797798360506017416318226151740136904718143582979637407834524301299692148646624990441530357205304848881789066012853559344573087799084756739545640884382187077303093612227398373764302995793908555048860715775387595080868088556598592879098620273517509975079821317471450996613035304341936766942095198875895474359763306549444701431155205180960306534224038359322268546150502359882697286210002086608209184374689193153187314433912448217837659704964238156117925156110423590872212080245895378257193921569574781749256591634821671644906140860656651317708339577257188344562917636777058121243899032148600301114824012141467979858723953838660805599976664575648736976128846225009764291614168701174621136756015708881921387151837958069807605738105202278815673223796444617309166756293495917234377542660373938246399125634437070545121593592553927360690180985305332853036314032275891833813335062527475901598961998360761760294941384680517411598300257899358771483886094398425080741478460725553346686810938498636829115698457555761750972671332343895172761616037982991357823525689810913403704912543827865285946666218419941611005198229731906481095481867914843212235959555215611364869013139632795472991932139564993253884796899489699718809491221981200168055387693800099481163644055574625872915618947030581081708047034912228043797825627549435068657308099001532915058344916816704338824108123147487555605281740469989682352159873246592287177393018536094724930143588102451348196631428088796788296007949162505011130513238284408415652839062249858488291238737591733076323224127586692737682180140245957730849476865857152898970147607294477265714988646609058262427118855376122467054751879623974983343131178925212061581091147426898214269640310007369991436716249382732330133689577888217661539945503400208856158899083779701184559594096243313020117292967229316305576580812714370765102752173008051223949178390103339358081056631975709244152888199053021262898688925891693597503552648055421607733500242426569992371179336904726485254121034420167666579847618843326401531805067256017210878835951444622810742538873126629762440502468228664986644452510563921294193648030400751447079878300199160286983662002581998407268667813836825375000537757610726567383513183940727027071569247571183898058101877377114893010177295415932994494869639657904169125684913792809412298292843306510417481011067061147236380764275271923541105409601991488778105924238728303868370471648475816135315790729112247145080972749989261314704574058421326419138758991071618844177974778276528160404867113984894909118582237565408708835683274956307672905411381612841753979322550545154291780832266566822546999043531559202435883790657937440907756243699952807343777185090983348519124799974263091827513466120462766427737212081971763911994567386982289989665607768497896541057361258279514049365613161881835515944300683710064254098064979306587975019425066555516553296441735857709816830423081350882428409284339541748371403600230034772602543673584654151952900375445743948592689731917336209039729881777370300058919982012794946349250636611270717491605146213867985145753347610609713857190214670805291076802016137769749577846696118336430598444233361320042574466617804122956221090715986947389235156023037138197147635909714397242896975064754036277694701899862314651908488590029795582298400329957246060820198138437087276040837400295914659682728656020638497757810988387548363558142615548853494529258207796376707937941735474799144728310765607101578112040968562003673911250077947911555874693454240704863882381912303526275743750813779414379404536481981109366937827045719371714912835433846537328946446186789246427824538306532523681027030889488844125105203741654849372256277623174506206656144074115593656295163549657408150588079489658331952701262745424100688528773201779961401487952375125639240550158444756658609675000806298867438682447049492823723156337265511406851651106808819081233935612830302534299177106933890462718945214815566274334907664048434193316264506961839019822296993973741781912846381551293754595917634574840108008019667904448183646419292013735976942206824529420276240916862003948672622145366201121952371361926989502126916747943685498688138481414343784410771734847689518652048646792095203295074608105296788969821972334244655996712126095714760121962240123447681925576831534070892391198080013100688172134796844243715407658854115674635462155846154098981580236150720354183121902682024569105635730266534181106643001245329633512380758661333917000911168772584430057810718484215917718768777615381503891775416272057750031679048279761732072647320726301715574564941278219826148521515845798510096689912199724617567501145842381361173209953305508633142156592231506262867051146501884096327345253352013898244515577374205562398723385088451080456840259421094443872552282339059261669147408179879218409936418500043545998287942608024620602775506153860461172049405210024148863764046682220979930968654133498031338321327864510644800263631928032164858070441674043599485068203834131692072856154435038100706993004001463095134716434315153012255947304978616585074607798335865612277574199322532612024034558739358139212399297504307902686929588472304825319314532012599975395281652724699623323288344886595328663045864625860307542643171146926038229951209197218611541307439720291654240394668418681895433744788667495603675549132846436677250105252482117148708271648732381508693241399688843834619695972599075993829224216099226039423396517012524853690977385751064839863026000366877452513830805649018822472499283387303454639481780834859016538413244873043260288797378800134365937882405018959239096215826135971464838722886080284284353253580520784691243806231834816471090752093275996173668097789373942770439748618947509193773136362515477053892877950792682185852904685882589820962893497177640876609273115460299312314627336336420554662798241111319160099273842771131455721565095628623046683730595983911996828039708992838446156080167483972558485461085595497263510836437038636204935929115964205878771538465053097656601947927575256044546090186395901495723264215547441332152389823286662720315471153874522478498447963530873051378744373667187045791480382974296655686941630163190009454661404423270102912989754248589288047793731434786517773778232897502394606381900842656163370501002336641872857699470784056540703835486258146458407951954961115383704582904907291813305666614916441155733085800511361957017540729947937396658132719958589133780504654375030054903772524611733361569362834406597698471470197928636439706997309594019959244637006259370674792756874263721007865004087608228693534380938407187289793454830092818462922955138368363589704278692326978539065298965448366103779611532087649103804163090297395003346318635058596906807457894850898854851673387617735460779399525949749127303168998009898065347899733776167527819316132850980291158170609691744588231077786776113578731327302006518619057656244043423432687025351614951921350809287015484857309856563657531326871123361739193138479700458578253213986340355386031421170838356612803670781941442574721543524766704367301042538216157802852972170196060955135021789512265145232271957161655387359436990258970155954846696894244141452538599171222681847250594517402614756267301557320209437110239157626256437172174376593078452868915010580151531274536968767197780059584155439951379858939829414338411831384156757617641806086333197914724029759013074981881046033765570722784073955238043099741747133307191912787766176593571950215557663342656859028702867263170270757848986184125667607721675412544462514352371174382465673210965631629248730716213120161194748069753040309089237447560725523833613162086160658257328225096198475982071861647545311175316161462548409224236528479029925366446373576949725709386405234124481008456908792646638989928988379034544381910642665785469238814872619290187880298556086945678519118663441502371481893157857605007825201107477411317171191957768140478889238117854955142221658217840340054485310511207786784624520284583418710917791583902845949691212704652651828216047473822024535125934097580353717138440962013727901761450196892252566801555630918821208607777127785440434896966973158937950947291174221673869996811974258866020441850996554590211343245569755187932430454527302264793971116767651420923790652342410800928467357524524607891188762515650367921099619677793954195598986254717073291980781082196734275667758319921908039135938987605275330920370988519131571423403507185557659106085043280153858535920445708909783217959690956911594974830537920962979323037936201629501971447255628469095729942138829209829510953402058267862447175012850298543466539783666446150586143375746470835404147159238750513593250708105048902420446402012615875886440157934002765484151917821660295251319299643631946062024063041916464044601014384788387511129148406297482674670055476796653045625424378806644538021427699830033293179615809466075488239441481318089942480037149658669315054213789859105407119005812049157129519424042335047804958420602525793989434794496298779246479004221304215942128888079268384258564329029453448552072035229198219310922416191737276796535040696850353100443637156398385918278194177583101633986044393841384858366903277560263742443339910183931880231495377463982157554276971405257138706164924717552654397796048593026006581203243717628610363369987588140741083306532351640259568951565958740525481732864460321930596117122063931626071063983467439717646595446239694141976951141267879453915658539657291684763063209741974268663214813289794949713289789265407478175165551137458053677436184768257587798909243030512081506547281784495215672166332348644198612863626061136603660032287712052961682128529881291982601041221875536504062354971876856710648023895879475183019239797050495867036743964709243039855598040982768451960802784699820220263102603165410812828253364420662682268202549596794708391340337534641129493003619077782630280970947022829703183060172885591544344681626484420231446334198846089939023365181401676027428453541767125685574801499062733799926333938091486423282940617546520398559593175316538651569632942903535509704795503692444873754976141873284557676109597909738021634785500198784762311794017488180602794315379665387832284200491115545975815879605139554694942064285792098274633610447552431757564404853953319915167368723975052610254333110860692636199542003278884417311155267100016542403069515573018014184154582534770337216802592291739806068331426884975440804633135176233063544973841221741232731799688995628580597318721700912660901266120435880983674937052432044839883781610771894517775987234530912173419508420704494662980843887548618739024795782055949512680039495386510777141203163287197946399194591377824916946552457957026562966020522885221258642728258255184089031610749492686278390045727887188385407417029045536550375898794396855052157684135076656861288949679746014073690401609425396099035101115181830167075728813325522309581424183422033934308702834584742250524496213200082650644917095045714621642579411733935142981009592675595514066960071523307612240861026677753393868315529682311623063731918653792481842208382167273649120213707839990708908970031128769836954710352101697330027807714259272228608033554195459395228576626669611245332755560617213124461309288827402238745932620407126064318069435432299081011312573175405627209912416441781336369659897680152962179046952518863669138903688643023005037652299794914963586930630558274729402592313160784980574838380965483374483919686079752671087996752666559017283974874207082968804532963357107206249611551427860594307170707023902849634781822629599950212910679915354857162122632565676179341043345621215577047211459248241976663791573846419593677187615192731151181042730278874058462266384590939842222223951178899197744787249441933407631100888687981124688833778330145640252902015969356989979021428912346061361164876679390710146505549610537407524972389795355951040419028341442032715498787380992230579468113775411080095488820230787625834516333488681193602238745744049782178283043345113922422186323239913972840308464239468852815471834596774204487458555801011047353583451329216861032236706369838707634202519403741692818229085946960187434996683275248783687102850007429154278531780791029411011407376526469571084261693551848482345422795981733325169003804231747665339652832508622141727439743948619180526015147735853987347719284896559697599541396179130019125576553944090778549355019145266016739565740566513435317153281191530508612679009737388706623249305783387823252348556700985843453506350354408458816234376675564394333634432032450837227683832129459276885796527748729244696290858459215737890591421417461866077226030794420461841854022275726082770327564496839066007762824243233069950227101782652725502373777885101326254421636493467220372974634342229565999567660735411725659445424466162517396972390025535632666411917663423695629515627109583565003719125838188248938433373903353436160191947306398569526829029517893795308039439106921389257826190811896135650127680870209347360084049945161706821926508023065864145997107381154448753328820023965707442349679589451323957557441422284636916331889224544279404006400051847808421713701585701280563500292728560699392206535555190693386839523847568170977194051182134775500173310251266500579864018234333197555649465962196944008629076387444727481979533998552931937036016181057994748174734450313372999921741583975205072958336948313761614375116983829879994456710111239015776483623027094764030164009827177323401378900041479452718900181537263745892190165794310283842867429415691709783124749880766934112817003278302117056373898966232194440110145065995623815123161016478484502917385343296870065703529745084073478146838519828774250249181204155326169738483602870810603847713924389727528382911638338507958738601808397950722863834596634954677658426601235740191864202538256476526732754271943691224569315178482976952237865929796378670596125501167458999977226210370769729689015456490766812484658958025946705686275282019077938728395628746205662267264640131452256487634015094208532229578604565263391787851044087357315765263203048016350352426704283944154580839924092367464772321444278589268425375081139688329651398127707129384433817554213206352733042387383323780188400546605577276803891784204878302100761751548852661126311767753312979229850313744500648723688643814478617833273292762095847567169611889744852558870767999553370374387710508404417445925316108557880019132993582645664184087790020581707203272946879109780849427350456727497593870252251093840986054784200209424601500471872559759964144350350535487844904487647291213186579523940604223916071208081766970384699771803037281353224548774926927060105580244939640076169016724974447792855464073918253832836011674756731273472708944960894837683430061918683224818026285970072576314499224295832035900886310153072827443839003702280959511592812501786319865098720718272250768893570779856829858486458735000113537009608774620707649646422814470002796444486553735711351323861560371989841765615947004470914229633378534428430070124956726081207123017960972312786987022744437942623110807573864391164095856760009814509513562578230075523463526505559587470232725300129524489199586084128227696954311122595985381317314555173446965311094144590444646517660566945532822212852694719167591193912942303570414086117617717563268181772184964545106029550832861547602868319756501381021753797121017975721199842959437146462551646799277802378416773092741157776239990808407720861293405876949759592775923056802620737873500135685485143615538217657585023315485973142559738959813294233028797792690837811002475653510320061652693394315079910975053810393182123768227904596092752940181766317057683015876689499033515783905714053676769650042046697558255230992772129513688606398466924599801142440068563962792676209711309562945307716894103895081980936237792364119140135707078861698293132331569398816856184000687072952949813143726160072228324215533356232744480743145317461434736219851973656522375241804470791534037864696861649117911211395086696312233542447839601543166415619199278376123190985075132259880776515505565219406822851822020581469841804615453314808752127599140452350374093263763829799603532082881893211690633229328137001151212727964306092327837397561123935401382532448588331002552021949377378393849108748381380006009629722504229636487505582155367496760760990148617724618702050246633142643532650268230684212982965295008354020554801192501408098426287543725419434793237561613676097205387041637023123538285460061667190210242729006985579914511335577961675193102462364532754867718694101460765424940019821995262551425609711624679881501696280517113923085952442758142518418469222859908095550055474297181541659132250129562005869381477176999156906362114349737016458055828985087817304592523488288375361564324646234757377215483651158112077121410103863560036569141806235756012847196581396411410395067414161802023365600159250337415329529755418388284367971595733635973715400405922022137694595879190142265470252339539919934504175646999928078369311284526466778650785825934909275767820167496248578834283951364585162505662962328879005509404958256293561714144486079709598026284622400085767420290208403365190926769078057605353400318602461816589721151110686283938536238405791261885719437929348694763525433339542612356508416868910859410796160118909097904496280075149374735190049991179636590837102662572334444372950178146426402908385086392065097806583502843350180465097670062494104106132975689616329741460078681343375573676309722703835908874387003336038514763512062859427201172621655109864090010495363478413735656146618343331370861547131120946629449714109839078086283315361253489842905076815216113312922238830079352263921782316119334170353313852764210409614904647841413300893816591731015423349378440711877950496227783568749782852312201928840240669900290389933635870770693711310579955372627276205679300984449706511579515771650760962260721888983670652687926514647689015304785020616764066861754987426974518577815316939429280567551410989176779605228454467655088395227164252289986135725901115847815320511674959872064632114785771725802699957554653916968548183177660779917912793617713124143756094193791182847765339148259517963081433888417792904674799355232072070097908053251802724765981978951760873365882012603972429994740893232049776810876980729899059515693113812845361451816202007544441238174409507582364651299730567438008098248057579540925669375693148889698436750207491358859338218823784258653377298161436481732922327364201250962430773866849743896283648156674110398146315668369140765405744746922556745875779243207123692511933920979862764062444128028117948148018580949397378572813385605716308062009325172433513448962299559575590650498484030811583993224567121789506359876397000145766462727176071837758278326471273933876684681635656926566430091666613881384942700783256151376813105023632562394939151204480350600649273153424038761014296223707217292150286713149418867125583742879649062067197999096030037272304315634381150437224715580535261619483567212949336452103314513830943074744124171076319424703348172262409498119040911069702617542577569095773765308302657953353835086898960000201017705661010597961127559422829677469883866701292411304547640313704964608676515446700298285942053845370789075636024754343458134519511848415787738444693703204370740240517747988762791175374236691625258680017074065448996234344715468852004064587588246250187339628251262548410687519187649121555497409849788171528330282702726495049598373975944348543670979618795048478524137533090326705129410055877493774830098582770127369554106402520554143576894839130636066277920692583819166100059393469231228204760716519460948887978844566703702218363538745389571911536611180007332602732759368843049886426710142635111936996822046959733306730764671024878262909325609240585420140220753621583146840065455878744105759614199330897275576848261908853912388573549349257938275315213464325393547678748152981202724703121510936675324568761121234271492347336969435558663061617949593224895139598191769264640155110688792952523561111238304485753604216804989717963757009135678516338359848120164570793587805202922068142080423451609437312904287374957200547404246751881651632010506049573486372868101117635661822098002161112130108953892734552396320923642469018504816710204847842337780237128446220031612646522790376778377962341402533331753002194354110354312270686460072549372380163006214741942586566975140510663598019611939133658252930341878444886688857350857355962479822014531830631098358204098787646789600092743327235932502692055939462854518698070956759950947512951853130554321523588850140195047330594171577388061339276238784607046448766539877909452172692654338715968314472617269004161310680631192242597498403965151937680033129535521958166548817742403083571650142935183542887284616808437741810650474094343725932452463558605814927148515139198887303386138350912337883752599404644195833215756728004608971939471179212507635953539288667156524984138953902656909574151167333668355926699380668409614089000488025712428287056701701977301512725749445584461502081783156702452864227794481010101563241969967540815637219335995994916324344573988988898442214798890022973097767511200734344839651469749709940072298081105356146670572497427301549845037985568231760497132660653104684278519914193202889201460881060123075804406420241275666596618889677485704329381751125799164928966646422686093798051849684351138215752861984965685849845313532589691403019437986640939095528420347897596496070479841312431473068120846824737232821952606072685909383269330933215644860090464568832767916559017624202462743044479735839095682534930292517217616211512495991363077820093970500552180644035838314832237066793886518056738206698653329783669601327029728892431722673237564821905231669198855456534998737264641841495349820287866124834467069723125595652992989639540209450751515011458538303203919012917992527414131250791812689887289083981286799200069377307280632860634321184401434909432994601095758560765088519792468308536733224179323028663686549090273897689318481113448958192261864398473431239943865507245160637917668230165103577735771694301457557184830008997129231405156312714569934026129980816022896900811374898068995417534393129233316995996142507193923443253184031292529384406519942442717458890454251594951053034177295972863241944652585816095962785043770586015712345240032981624413794122313371733261274879418212099112705055012982231211774232242449517425924459540128113035096984794419423395302081309035879136065180476995991353737717222013306355000480702234836917236753024482207386480203718825985854274125644677078626334752925416693357306230814706248657472203266605590909041638004356307668857008651884789164361233244710598476366717507869245212913896759975425935170423191166103791778490654640203625601005154193688536856366281103257844490807006448397074183364083538366177072418999328386818362037316926656722113505827600387486082529422464393425781343399710399746525887565203445954734977701658881319205090953964553163156138114499385115338085315007718063900732152547101186546453338652558649075362548801449108088144322901069318150648906251771910275459496618534985558623640007707293893923393509723839769487837481176226089425967635797143925354868650298991559440489237202735252537717661500382490127590221417516749731071168717231154062258251459844912092707613944043221784468704554163216066659110744483676064984931854539814362507913343158523298486503644397745333134634626719173767469152897251259768261176171983592042695304530046445818505482418747753541145640110061753061520076877061114657452206594913086360567659297211040845564586677583027975893633448796601955410812360764209569082853085440872925029920212904214906975643382850074325499281184646050247898031851817099497967846082752264424203986312088143086782737357907511679508747390041678319223057067394229503651230591528848011986626980252754727668634640886285159021307521634699487723059785918151469501070260293952744962403914215342265989349474883586390785946536077992171361683803859014988006110636958988626269836178954683842849546962816315336965039713306414491606519256418437256124995454717631513927993909877856860698866148357836346088774437457122403827668380940700537897317035604154439541970441742824351546871550499868424573854046251056975263147137393520506250429466077482863497568262964861979928245877995357503627422912167041604020581863532451808586348510583661514751272056476678527047336617093684108672107970755654901210287771342974855043547011013626564881937453844820174352110256820050973067718928468289557260460466492718016228938250208833835893466665692700303628569539696677922226328058971451563119481107417057882309239882531161661068563611163535485077822403514488281856068760863993113414453823597488895426405736367854037549225961910395680425707138723995788884716688517851105986716597957317897618170426929241090096917774067070546458923953635300024438842783268524559695952251571650999780489501435465228219993208617492443745348731101789011103160437152167470284194148531395488249939029428037372495118155485370752970316210075191373819138814733463130833654928943183163929322700693494370667953064923938242006142431460891823126905688877133497585716471006651849359404786634779265684477985978788100396115230956981576780827706109532670679323366841036437508914200961703086102097703605249181143166320499865388280613787158070897544736114063456010897505498986673531850237058636506725021354983282165798444838186298502809565628389088128290628154979886398606937290971383901814014247920586872208803786739762085584015636065614058720350755372193722887427542878117896808472315412064008611029479183736771798897319870298603753148524518169445887885069797914161023190939322641460087319627567035786475655565538990704223041252789047386419231325606929793666704438143452797527080254026571276073151811788083042394873862763996313856912675072861239417536401076730438561594043276211358249716947138111355666284825409628847218504008814400662344353436539872170490045099479600760519094273351281907974248202729007560599731692961418779755499263025441058724032055149686204886967103165703898845244409164465416397407357354406426468025359806099319323425082800999803902437324745768841064780263464660643658288085412875973719375327102193962543930964317470892042598133592128010215852031538662255269776992805711715904052833330701048193736690516349645892368136560159672129594270873601848385658816969427660396802436818844463897674169705056595067242818288535751734760712091454636364263910837590617925053219068060929418447806093358253047587441658390525470059092884293622837867135603857729106687063745261599900379700481375017128547064346595210076604040965628533214042673849606947619543109134129465783333556549133422095739364862962414854525371650614300379550727384297505641583099158790743164332167475490112762153571866011828572906548608992043953166150237843135206756574654635916708430448018976780615259872917085098069815727653959180973837275352570843014711351810771175947695711509878368631709117024993003076465636788006088421964299360989327869551918325472249023535816898710341541180333208955361985097454080900818000495773311850824217624752444135132555339824959376346565266268867835725701797155750428554819632170048460967264700908874660275087941926990887184916013335787608689794188875418660904964233289589179633864952032103206553015522168915249462801045506917179338186420376529216848692294786436710683177342544804201668506025401403845972028349871865391811652183898316474063911711978993004151658347597964782584001155616333220300039179828759083203412830968345027083596996796362510729114969883133960473289935633152468746031431011629046188362245510828692977791786594558921758545086612344404738796187775044231403003154527535789944216568001890494781887335460234824040427336725730364347454257804731110489221424470681760814451751201965842464233314662720662383424164193550918378479644257447996584843301638380585360846341129239623609663109424688003127851970088409258729461465209844993502856022925992805940389812679381744340168945338798585307440733315136147146235356351139363148492840395882983353768125218292085765651965535791175276669288363070793709270035896582190112113134825602250473039246532685007004242738637567559583367826428923519885447895067679169476973359892295031950296427025071973267100660239451254664258842695843396848495744183896249126439471447302500891359213367754277285094523222400839913238205254775887540028069806150062085033019457098040471813533383765372984507374116936877759934632936299987029046475892981666614678824034284461895203930756681588277677514344464594699057154467556951812412896178077326601237610097269336385090498417551265592246060514903687740463092135716304647035534718219236315202451485751787575517245148596311146370026308451155770664174065839909311509177218782879067513492576641293618619679887604107067999587299388190232336773367001894048614724227336789720834422381473506650609247418619640395636765274757414317450362202902703075654395311778809247092415103055835754999137355121699993793725178912323321505734512860025744964756559762760579644521984402496074313970222793100366248280648479973375012241939409025540446593853664871921760897034348120303775540026988425338931055887637959859106955885523476839915753513535455168606078083537543657619464795602310129258105007103738512801686564022654499275952596370973244952161703543191891968096470643075898847441426062585231851855996633601710736745243676335551998295534385782348128708954929908817019744023054951597841850167949456210965413027402367510014011150688941904105281738226273759621874935072239276861440514123452894206987005959192060012956924154396045158276465405509793239325297947821214027959315431531260931262699941011448701995105716282529552445485000568419499610730853274692799612459756581598174690396391428079863061026119868961813757463199488486824560998972696635984648726751640457360926405249196669031343325687782139655002495433586901712338289000416873702529027078943786371703234443505985613419620673045854398518972692791802926524150587294410149947969990200656789414958126512545231863087340646009791994469303385386541374776728879706205197443191640906477004238511215720625762894011160321862716290105002290297912222825166070885965064754366550569224045855489115125529290563896779426786685858164631302859176273516164000224554503030974658655770470896657062593353399540195962571549409356705476906889817117439186075068677935472574083255564303989487632087010607938885656095818462592096689755030320645813737476349033459912171656672199023800499969434581187390929161457390723186447597866848888176638618975431514060320901945963540816271429775369298278627547747373988536298478291164525963150731653385940446073519708275239535730943572546984483937256736538359515157539431665573319169551933400239630297861532383739183911764766910933381638471106073173663875922771132407980139775534337453410415869331196193618576055835416012805426205561621696187430497648623590090484665138291564681786003425421254252329133985127052496311377697167209058000561040835005451257243504837282983099777716913382089931637560752225041256472142040135731867465957353418909076036625144515802927703307172591845789403777277161406618826371572348980891255055641223679178786508236521383009287143475537658405946728966798772575076414242958654299601065157028149044047790282716101516454241023310549103269467614986208513256639358301381833076492207170973139499150877687544883214360557703960002215926858783921794654725353308559656621065867838196653436021589688250225501351018303993236362204742286245924856981706039085495675509631439241934501588578592179361337903926837087904250500784048318783348560173726945390719414645146521305692956211221242332125763807784608517642612392173280588145841756737172512551554349899443160493838277082341647149005815014286994181075013588708338772465992449594824254360058949081594831570608681135461233637661374708220846805976466921825833631271623992340907436578065539791202676805507387244083864917323822791801926289882832691647745489464345706314650632637240078746263316255424401144510833904825942475583804054695736129595456122433685998856535199743046033745931991874253216515661931436812179349025088699112324747219139880299754260371584347610941844823142243040863215738043699159678604577222254898267647470216396393337923375704218672852596893473927858877418917707577621806431329990752942924933619165777003460757407226677619558989054026696248089951088769848872982719741735183891557870501387117060579161622323841835494425416886336357429916466223151391892903261794911788717264966138407550513926643345733612321483992862642421785892036344491526796363334951373799039947977578955082143818198537693387796627582575461462736231301533095318746433964549268274881531893030345068491175886067249659754904414880472330151787646209221034959594185268385490711513288625941419357861930446068448996256325645335914689057295692164404866952609475490856970706748163393521642014094366441113970069859725673761439374265668662074288766937805172670814627652667225281264948232514052451959733345876710244264007250996259045901784647651367576282042431771235978943476561232322380471571608889025642904093517611959604266966896237886436690274123744807478342162119536156122462379527864920336570433974582998270187129335784774581448197110610309210458352601829124984523287398793530258091988830491262416607908653492371933350951121440076244008722792501416365811256339615066805535501737559070850558226480672929596315597177793460786791996746914732791686796746131191006315943544539959646222216724366379717065084331158198934112999728684983198408883849205372398489110582963491386533879818930391739283390648298298986244533648282216081328451923707118772509333146246786719433086085003953320535763279062526848103612822156177808087911648198682945065705414533724637585952906593964014436507698592492490493772663804392773401950034256455950983026736877505463913735425563365182459292066494146658676384386111758177494212160652789514737019287366603399182876221451736219570538157503546010776954022689593847016593753344536000792972157727624949353608909983458643663362446963973997617746396179778392065603022061877152696732443875080485151984779075080484026642101184625921489879308878947438243058879594171013072278806269802291461972916214744483021649183058217781533266341188964054536664013235391996937546611438726234739164574374074169959268634097174529739063341974636474276799539658028107054570116783300728618392036503144198779825771521185420049471191227161492601821236552874187271180479459891619669867087265111036478201801201496811571924930189325257732541409510452111288444751541469600644152464055682156878983670768398842038585138306691861622948355302196116879103775939809413972656246605660134665124008086247006036470001998257250516902622356807937010707996920967067670402580486669591857293076284696779032707804380342158804671512095228428251333972761644884254617991729361545219002740761545146015510782639493087929187043830670168322934013992208282589218823832922390838461575341313858702055940320821573141520817983993962499714739161412270980964218982145172449095904187931979578890865588842271621349386852248960541398339871961488320602852909120226484285184284558827803544561271766008424089117754333773133653946488946532613414674938937754232138951246910617483354735062084569204095097285651525857697296301913071823210272442993489151551754237055034869357788265060458250235773901038083169906646119930396024596143245346084843989233230778999404078983772106677436200770743098296058009517910172465265141236380609083682897962032630148270955021103746878417917232414773178891776135256483605193900038115846014079999611062257541061508850822707458179089011709620599066558354251867103570441683758851900207163540955905232486686979978349005150182402897966867734029338410382586436108358480747018924470000240074372939404623722712691774688169468319144219053178620137875632764607422806506959071465093710211616831751311435464090130101782541851689913697205735870244492440954860661953199974059204043611717953929403698165413647648589654767196933610524431299814858936278271602373009234064051582513230952541852424193613964490498728651979699715409219569351217619540729085232050750467921255418292163349084634971677053779865458745118443325990896021979830143277860298337021088657099131835599891099669998351943320021997675032201844740433319153090991582963375797572960734272483191901118377788681323509282837059207126405742965921587296317498188240844644156310279805225512821460475470868388256447351512746622773780489156300833697314930355100773533093749280738322262133032810605886812319988005223115935711763758091983638099741808900034373616487590098333120846004857780488955615936073526629539551391466882126904188636768440019199896344075594770895647783835795040832335177716711938512877351908380582453022549686332287969704004679219764565590704678505302680381163290799762919196728900107492526722233335489669771126937946181497272572476252520240447436153719716714451861590256135036496694290976916469014399496634242334418357703312625500816440635192780829398343083143231130940274715731375183468219969353263499761703733550097045906032103313416541767777530538212039445709665767708040443115022687327870740184792949880331488577373300930265169620016087459818449837899833305482049051567645305958215651902601123530393088571159575742392548986365342191140247764924780071177960300947212891516183062474951599555188296183433359564734601557282536138627091899524878880001693479489217274123046727172223113953573136928414219826379948205954328762940891009104008821225991648056077298040224077427010490229299597832496816528374599925811394143343309894721568383663335483997212995756178954983059746002275291676410777793284485491455017579442722350520000213464307642050541210528939982331103612118778843828335460761217524467125511910685030003048249215116319639718393959706775548803595800253932150204056053841385410253998021755789180212366826372056668254286240855407526592378295892165499663398680539510531943433818021223073783057351452795956200302940329364571506672291749394736024653142985387594467690064765847780730246336117437862700649601746816300510870252097092264575073186207802324809030360451397650325237956722132649093891413518078944659403040890190564845360098414636564087399167877245156466305411474617476839283825231781069864068293793916981600876365758563448981565651110663351029691711108332178693807789966348748768580877999412191179175094697681109377253577568927429486114447154997215263041366899685483255315911250658216955996764245153813960575436996771772507434144088744629075639240281320692256639242373001710357905762497254592550893090663073341533534106377623296822650622926751365714957555637053814096732637062158191909993094183269538659439097553392075029245808900413008932095750555148283799259286697469506314362820700208299457511366587621373164049277072913935621772807123364391709714505579647477699142873734203340683358779406497072364057927990835123043678191274068425722335648386926541263773509546629642309819808457735576248146877138153842739682137013763261095710427462495841315875613703695102685185606517646413342861406388842921319948799502327812765492638512564708915261091722562746761451503486499316594505299953693459851801617962975651394255676962315932083055437090288686265033700140655761350004764317217770169201475548894099951357447733291016414130119293073747088673908673117049145692875190485480724614504296417000457782067045640420448604445745509258427299374808399090691208696420769847992723145466591589453068693219876111904619464701243819734317984820628738155967380513812318561639453724873248436366788509081208768694795878718854040945858628828725451862161992887332295750720748667307275296756816272616245275985204125198059117535619381375309662861565355663891447461567099808895398778676968147951222870012873098726963337124494287870374973858471623674540956871807732059156248932754376818017192086587046026820404787844103275840470266732583831100231868128159682244617388085986320365313904398381820517306828477842110725031364651484500089490593444712366769259023185066939862870579744797743244427391931145010718714602089704339944976551114463012760654095221776912761135593295630570643203651118958341827976562363915890742045801385135767551929176527189509799670501393585700778558914705896216069300803219449154940770673442207054895644852124377679630519606802890942376588111645592826948793135770159685886041110045973365841682596389842385164212712434173586661329870889563473998894476817859354388121220094228523303452571523965911144232549179633083124955658579028303075555011442893253265131274204763728775498145525683871158792962980775989311750591246244607657855590046062978445272685570483662726329137105669038528340725340808510782017786170353857984556481046769751439323628562492987021742395381228173745999465265889584576060840481978703308990610316560556266092470413393753485578496848066210535878876099119182636150791080598863675237412486197150839739641519064187572914694202479165218861915102606154051908242419266193526502095792587595070791143454217844021782264607729242305133610803768719995569759264205318428230432805124687270927484291633247987839433458058214970367186513553298664603461108361394350850093806186443494991978396634045160133523902627603037856515869176474722989666926138371734143951758137511902302991854258326873335031199209566583261197699372898262662231449459708156460250518737086987138057633237000103150704513551855675424613156411277823365291985542661324445344146474156953051132521311078064947093872477675427124721939424679290133061045361858019860542049587750893684104522430282297616658842396920773100730123534277225637349668538574402000262476930342140581561981839448817718944419122252882110920796972362893228443894017355490412061566359325019007797714872660658856229816190949144349036134862177343842638331588018748056160801821560642557716557864511247932824579556347040056657463202849100274277536267814559112143160760965322358989817881258031923192308933522504969223745533393928300794840339080407125860856032855522041769472686599376205609129989045658992806173674423601952962324104412439093326199177023033473073840463404384561282009124478295835982561177890859805722361826744145208306166443160476731806869905185926287013253643595302570186043653307067357700677151324557207425629771147068011814108467306420084649789557599054402599957788170773364082053395474688748953154925701209291108894811739548491435226901358507626911128742022962731772644961359343276096710282492651984552425180742922042415196225976309510556309647386575960247211805349372592650976373938564824680163559689755173179023046831464183491555150621935503566964911735657679295083614490117768109249100081581072476580746893463674690776066822489303449788663380130502296700568768591839666084948588416885076741928842522141795776798081587442000994141579801615478710198962985434534951112628836972196048733374762771442688959920423984095273707128911974101925347234565129657388674714015246458788069345901367433282858868573406588879750494637091333605019341913242563682335665470386674796553692918480216126532121524127751282385464070053541962777904888765330054421422588221071669579156161919024112154513354881813004944566754465446601630010285128894189209738802321836712958700341390715631565256968383527221068658713334705637995332379146914996021307508622819226826980203113449858074018759849635004373628061998603502243779491195669719760571664618695869102577050918221970637326655344973758699788022783702750533532234734696337209403955662830026228089712396314108954300212642348374454220569343917662511190829506315046301433920016569381270513013119772166426478537925762650883809003096487402757377376401304379343091330294414279524119506728457501937262327181065525132252111412289252968279028181344639963627639428771373651041918698242432282887138313559104332222009655048030611356173680076674818235056755477571034116437286577051756945781866480595551295111287277701216874364585938382460777926656965570543233226941641368374227487372928779769768512652359419732178476065136455006557287773962586728457644543299827147830175435447710037870081846655002722307656303994122037092817715552571730536274763151089639510350694105110972545534212615036043800383885742962616519997819039279347496179389816000687568262466754737438194867912311712632208149323848920229963484581314473779917966827489475940804132515281306967459034927889258566962035828141611736885911803579674141023459151954033436302914218783734666386832853258615087213354691403579504805299197304058169896808707424032691135968275033511604423790484626490975240824073688041881120621885785089734054636284891377133183028542141306505950895177245611513055890105073680965867111902721915495594092678894565545927541015986028912402374002604565271033992783711917600210134267337816045962896702557379055238273080900790291438672985441788899858163561968734674103252152427704238052932657946171614340239754172841443153866146669642247477676683578745463547893831313882723071170533253088705469267574138091205240692308681232775593542001616851600270446808912002237829298489943172554421971300141210994819866500970551184185243890487379348005193214574246307179623671837591743991272693786736986838080697887448840847457506039488726514320093721730422769048197808792761187578260896845914166969853283330995488377327809809998676087118596650661253565086283375133690474628956593234399062705849783664249043809680587881013823341130471978905409973027838659661337911887418961594930435627407829506569443439126914344280032892943608134430447627552849544190182437529665820679107671550070199128586108242229517800476822202580734085166223357560614071759999030665751572754626914525003635584096593518293648718422366716672364149828668894147826250355828251722382075214378484727137774869739240303440257883191954928580478908609234571365937822493034241322028732135505501677308032386469455929400117795775545856575566425819226986074949974286753448573471122865377848097080128848296793958692293270218247164602396133244661789727377276649653785899341125666191748477046695935052500791926193750530873606165323356506024065541542044053605578523095399379157563742080506194663563577739241239715127009593041706563107898369720013011935687051346420788358452457870420611904476334495019439802149729863155971168862217887139773401841473103642027013175668437685497982302474484188090980103809615390758234094660435732515779441682048909888484812045195555076052025816113092387398734847721512504702292815948157488488271922345069324256068940938913490854420389370866576964665596209975806582138402417713476609407349811181291290772686730670446402068598756450288479300790275197167412838917272995153462109102009176480160956564819007679593868232047398643608148093698202342606070714051851806277440278506978941487313031807918365106314865018025515859223122747234769953538200446726081378910956640508907183846153091812759650481831733070955110995934896288519576537286149081236608934006673672225198303358551875832221301158675110779854746207903354373879471068339345143494549438133220931160340577901906306429482686741420204694402823856764570430505536254857687920207332214581671248843795249569169334674446305676109151508577300282903230576519012325638406171330583197387820359151357258461184701815610573311757832598701900741172171371955493845441161118593831436608778228191911133099750688950523917096581455346812046397660268382669218446153015708706215896396978991034044770273747490725757588200752787232418324968536861522070485804516237497899800159442414408926283602966200786157440849115494844083247952855701569436145599527839509806821598111496303438258444682069045095582174959420754982132101018263684160262247081061006873942325754206074589937470428907374646615879833217187774669498110422121761990649878445293821974534587797469965216693867470149722488958440637273609673985579814606200953936215577422178296572899326638855455035079217323355425987877621872934785229973462537866384408146057860837584517949068282438886028384295657719835105663280406327020524178208544713128237264289311086580920183897279543940521654649016502699801416683186126792693253780500286359306229271382850286563654556612833469429823946465814270437922866246432025242683864325218436656999293691955005591747547533501389424862448000203121966397575301172664766970897462012949416365705491538445720875099677060565803329969202101182339190552248878493853515966630515412461638150129246108630717611256703184571393852011230830030738275578790341404990055069838532034903927147797100559428224681155870010619161869744048426719865897560428832227857958514415142999375168337482399462046778811523565990796298791630729124189164252430048760720658069458466167133302890702035191257922755214547974098952820664636035919109381089302447902989737207279724896141242451363292084851439373037081576724978792809152567721214224035966952617284554638523594722888064576812964806437696502951426695613777630438675232030397059330314423654818073777510132922781252346296558993450502731304879046332776327862338205521813682339077099858105292364018158540598743239898718557367786849445604050977698809688157967482646590185776765967001069228019358100642785485207054752491965224528045115488367269610340645629380375925514276160829571233917031063736139806482881565229069161607603753052281845023319555090603640876526071981301178473134675992552172967337235770629105844728354116120658014323877274992085899545714944000836557072902594320505013560498782910721859349858888330368400806316114299190822155735811566480175061071090220710840941925612803677498120125286349925484824871901932483063713536760692330397992816250741399466952611711366815244769779949674887809148218701309076506321058237031822009230107734634342565265509605524841769554146779273404896219408615660823877761455734452003969709857532341850809925597716175675976002414228535933558246684644738741847159684423151889405723612409360624562759390468846023611872475846167707038584753796454749531876419287319658524922919761043854231221169695634209451203267438193916155275255707192173183683583554280758134331064475176819272316506375189939547682295153862616562553915922006446039482286313094030182737833852641314927893956219619952929642101490452507881975269802285425703682164695518120761551760053866875512303210089362630688003863962678382853085637683067987863681199588699412080357890618678248626016041520329929326142148023761537405697806283859028989045335519215790484947194813811408457506358660902393974957195536863994169016309928064615584953675977640778466321665586129743302688483111111777065369154761195023472137509418068711441328926073057761501910671463332865876457081351439835282547206627993531636532321951246434015731887657049724849117424010416477951828090705600518892155526338963000133144600980007316082675605209972970495039486064023277277550208613721961326253916116675573534156399544359999992391594062813081894337818854841951165195010523803029025566713639647911521999148031756362659227826873032095098986516648050359846063571081717638752652720711037178838474566416701820571514131567144716766555577492545763006421559099273891780202685672307536208049626959622071345307407948841368165094913061324209596985598698920430291576885253555521249332663871061034680812275348853663209755611608428296152858382458360250287962049420916184932624287262244707207433603276344806711482513221411240920613407112952678285986198714070399805704919231801228922993763119299768902122634350590307869627494986839293736731591276411694401711136848026292304519634772728735765552308330080227697030320120948411015788467347773656430742541095210301563127198695842075865041470416663205082036734065021300918146967597516870154990018668404511020126255996290974545590161541465003935564491343712880013271326796488753218412947235573785385708096816670831873407585960474702396950904817064482059207010465810303959300276460925113671003916129265873766507559718738834704711016287594290055455139326125818043550495515780811450432690643234030012755315188603024696259592114886697929927245818189259233114746169482039985889992183645098260823790067970632080449307876636360292243478406067251184868697681940399152352347083444662298613688100238119899910011452486987715823648197748597697612746683361008987696611232072961831171824119093814019084088011611494100550115149505545124976638333595922939193540427155160602991339628490531590922926512158019794588244054120898000975347208004042937662770766673107238115152624096167204004727856084860353850311150918785129826720835014967283224695274183089469534314205849670144779545984566598997328732020708097891100565171887569490142295504626349956891532998750212394629871137513495750884601939414632768058901771667514972873570872230854235602410156685516412779825394068095980207710369185172555774404308713676477111754898337956550489282036609229401812359259569395285950378250417753239619496057646637604902987878772350534907961459265632308354971862921973437137324522517794970840610030665735019647006907998455307205878060630057367834351857943130801334579155368416504236026217855518543974982593960737675381572886306657346550213916627164305229917682169811113483263410780393233526849650934841946363407062260822229447110295567398871753406425669726176244933389728814647424105374466957668466321045802557230674814377500378754800704920768318983344037481258529603118655192807040987096951910644863385557014952584499210690562853485411623777403963359348367212396622391644593981272800841589370677270721563872329842993671939122560834002024689066662752358800845505317601294848696046516198658826002878505971774211967427722810965472422268285549507212586851054784415369726662117385428089697042281561513897789602974981149772888722372861342689072071285787429292920479831490200646733399920661167006090495873174349847618711882407826149135382612317407991769995867096267130484068653105660636266284195487322955536316159757871532700451895489073416217077844677060619263406973370386878473253362509296999937973497771779998309837726141793160093797598647083520135011688898930438403866207254801212783746427959027440100791423478647539531859014225298767397043785573916486547246835626390112873864662550797529868790844746523756328742961540935364236203967257582034365057489556954475700151623915185747131992022516781565691441014642434659943223045546220397037656323099099910876287042951795779015594204461686864361911399483716242713998514000330583043173226663054875863935614946495168225072577938178959875525012796362776105988864668230557645500612512994853727329751767508364745711757918157455846217299405183214471839500754915018712292150458904788233759279047248302328723087385172198069983327524415429419384423136850709956246176736419835689415204995141777435837795298909446160333419063367674044956298820465837758787658074153015497059809859101704607178541454342084321442080990535716231884308441010101071254500397982124871643709296562378900361838400319903598597838550719040086514152353354400819631278547332861895342147687391831068837268074714328750883957740088847404921787429985728683676476035092123433278476872578920444946592010067984920744365246506149203771461142300451037980908242439302027641241917920947816907415668929235903436573298864724804399245584480861797909226044953902659950908817563854748013805750340910477775111286686813683385503808736847968708271460517056602421688772030628699859522535098141347808133943719980271895279428057533878337473797474889266819408915687251760322738535214888506973918339772087340808592467134703668202430220244721830490650546842014357766849221181007713278898986565228885367358511421971565181914409074348063086400834979562032258817970654818433109669180280050212547823851841297813552656756422331642700850348777913006257962016833989596245922528610112776024807708305351160981039796548497399057125131787634712410622240816971822928137630109780593727706269610010797502822092276992358590929711182645965723277994173283332621623031150406727901756511214785977186494307306136349584312526662351693235994255632096269175633764280167377525466740941183229695440931130382122119596783897263482797321772765051916909056264072403889555810814801321862336083127760243434875079169811680043233934890871043001020163828679163789116227617534152510130797600471989690221813583818744431283177003671782736013571400199991073993889258844264182122805524149471520650815622322158785781978524228975686904332824888064509326993707889838880121693971839021216179221166265746855182368733100026826925554220018360540158482203461066380479663872228768863351468864844354803106017577937650331354288459803984603652476841407605993188155153861197207541627023411484567819609757153683949380345442949433882570947703683860188513950744873213637328826481629036860356009203123303145729132203320104506245606513152209751449424080325248893546954134983973447310136909642244926995191093414696647603140066435485682492228198856416475635420955750119341935470085470687933458498096244936949091591135292383867838146305242014168299770615978379983315644266108547839836923287169056376052372166975077808561159599429296081472188849490451990102701737455558758412982059845320591930474780608589671357036950402355548994081340716568730810438138267999974310287826919043230777506992734790230822725411955168551034991086832558341084572801768790571273360457473235670042588700860299864533412523574004003330306742883836946201673997661024362152559318728988074562165669164384701446954833160945565971365355387203340584799258373903856759483018432628370452246617086668645198505405776620447557238892574108037715985820451657390072161112599430162824581889750301681015400406047633408633962767560732636471641585264361955669372417535296271657940482867590157951552640867782350891133682814159203312025743583901177916553678840120307442252502466959331845618552696757017500217724341146742541233175142201689314030177255172455088972204374700863481969702768306940610341157031246958250697405055282004550329748601400702418648740505912774471874577050266848075929905816782378501825261340036103497466414303794581675639991100376559983255939612594312809213027007860439825208366957136728253496006843062705689090893279852834780247411619174350501492635396097873153051061453191930235241730811961763421390235178049575057844870814810147254452325996168627859511633854757791148914538448195867134320925962402557258137093287824977952835655579940554483507925901746634330946291793860536836043862322351403680640384992416553489647138823592935271082752161420934604016699412311833652448279074533849523560943729436225982010116735341799281222895781121740946479061611598188231486032753512944161079654630278308833187843425034661313823597610079398838216000882872257747337709944164159766613697713732337296612947821959739416077075270976969611812968222985620295143539329467396493224532812356968067471447753017054794753388138732862893938601488784934137393289390675293969428135484417279244814950966535358327442354219390884270893174702655258232665104511592594366787369928261725097930315859391383750144155344627353263099036606178860363868989585495113924582641922397092187793576122522650404543679171732826359229023015827082403937993911655203471994262777369052901126972892865662302479956431657546386222169638991706065224294810189874443250029396708960714316054851672284845161945635198951205425648884767275886670739462210621156333070461493028739178396405324291563795070647960419930837966289875951997776425906403480278768327391636780679832972525209005748658889215906499895904957719249910466846703528222442478713750011704311370480607451647458323847035217265537237794065655911469497497880956605365371154277072046571308162372734101992260258598634327889705711734280113243774413103258214235054517568706437061069055489811813897124204286867966104918761829157679038278996155573585771367700270067511660712111320616629741928290008715180684017033124895534960786743929763231782829761571093432230334610790166455536063026993442125795226487721405921381295622524024308613903674347811777224636590788719039301514399897707112384212657492976554758695060794785932960807702864351448235244656213539979142053387223143716468789160958311888320571911341533728300145511042112154007658772538752479442826959958279691112496531323333936776219486004052837109521029511517087362049255603551903030517788838520654644212253008173180265987793088224530899337141125256746622490544319282266372615099340433634037422578560202759893481234037064314768588784096293839586382008709451583570210390970901841901313909165118759110676841648746829583676656392836661433765893976970610855709979769469310466845476180444731422084598691251993504674693035657797448251122856094188694901592974222323224294831788115041189449382619382451418801657633194880516340020355467739504280835762344905850500007255248405185459350873946522044422813321383902257904870885681517289538256995072958991477301506584023372089356731976702638093999973135857864312814228507163335452548074284363022615883714217222270865808027577280094614034795272396431269941842141897651893765755296423231484356779344376145176672153407177385609036046132398051516749089588484938595983799421977967737527604915013922671673002016829416166714056145197415394420296832877209526153566783912973522114024254430245744651904968569244017351187792978694517720443139125389323513755077787024168470689638682363010951117575058825294979783496480096229081172378931198158302018812029726550309093747071822417892668865967985920920277198916972882109490408425258384917748357884980146717526885469985713800939690169915736027839425735524722641943172344463041892778565558642907788206404028547560890393891732710568201333643944774481715813060711576224760613095365795120449261663468782255054980885175696566391324202612914383260467374914831864069957507887634956545784630796271081941879277144703936812869551823988678613889966271183343087212592474190701257470564620336083277282229405214238637596445289546884108851287354160774322703262989459943997440439819730466948200323144082020810492125725417700410566065022473013438123035886860825266229988300622412422772593262195276819789224660835878467454813068554246272993456053690740151064203299317583684385601544430524591240095080231281722104516240357540988184954324175298625892322109111092650732300612048281322543420621191875220536001276532615900391867664595731030529706735031066774506999828073231701657808297431543931584698254572757329452869784668672644465470130064097967097779874439707552367757343631747003196445144521145784759736869489359296868381339891653928153013330068571563137279456329157219679685339785542564554744314649993433965861584493090350679494033665150411403447247873188643447252732329352850712560065612660451965568841309639354004102334985416496280553201481154284258040823249817148821312119466657368198780757492162020809375883042302046587234874975080874025899787468960985601050863680310780917298163294040439414727186936503101098033724128286007729995101050120652804299676707408357534656459936070798105374700738019883882115041877081377345122191735623957829080574741350787238049852399670488600167584322851473510652698185297438756603708429120158810545865992574071203660348812229475921434571795519044755078175914722512133739618588855853874692390020862910447184243414968517755116547417029935220097792561912535153681608706206453705342481767563333984651305745625662894354696165731960826596591386330779206052283673717194092179325826824487414268297396087757568276514163344556752996555342329996470286346119527559207542109201240776705111196849147507132203792734171546672534041674751420718821499735071670540616822382184456969377676949589715382970337374414126055345314832254001966150496692311792152265405089996882775571706198290442771742478463090596254892200943097604455132371246018666481513208508312205490357687964372674487864984725185676330785786844390900848700773066660226240852100610498923844701130336421120503814367869946629180505362937541965355594530520018720729702453901972861221086352236771511264669771889359715081478146790200799673471591502782269800729911513399889122711235948195217895325965970886733049140127591409095654366992392648958770951230125320654243032432814061708945628554059336007934559280644962982911032343255897884622747949536553417501053371933038457602887517611417857372645628408611067995298391186027624897644222063608450969609772228597733232282169303143557815985755461812249799738984402504508263596376340012134827983632094082275020591634310693882062331925931527546052946007212891367001006550210264713459316141359174254113771583896944340958626871254607753828894162860942531444479786584570592415479971184686632661501953497769441208922034245017210300847649823660697311699912769879344134909024645754705737821912250790396616402298024901701980242811380365176444250427733544762110977648942771896259452958495064821068677255840847402800036660872217594508984593202646877578115854747279843846644538917329279869980084477930307473554527029337130564877727600937501942352779624109769651741108534879587388032842167723219638867623032958974647556973528726630958616333312967731821690165620566405215862710817819092854216765655798511364605027234255624347024990724115136306392969119112324759368556118841626450127519622469554563699321461752213988189872070056051546287624283525649813632625728889767000396183565533271365815445533905795966957389789098019861413749329010185701141668733158092300740803622612879041855125332815016002846064588278410208243796886061448473454651523911992998647955909657754923620492264010096355267637631188020399961339575603207573174983825508777739426768932947224649130841032080162218775757688561913180508995253187117814787243890887445523013430102415789625314536111618669507605843002467083579972590764966305036563694683708256052884110349053314055947676114290675690166803775527523652615968501404028223855556928619557464348633288895353778070521175335724624314588398604218773411085137483289306455298212182643566313106963212605406622805139895702055321238856077215100631350538744753329842289537749495873880934569749634386022407971987190465235464462117919577434677631956105780888077553588186887778760962043056763662512926560954912477798174163549398117225357811247744534733310055358793891459519993352493573842711851451077217111368053257243001830811005922404188677341708848769094470655514898235962951587017673538972735739679940593364865247178696737514959661390190759105222515649808625904041278803096460440758374756016821978277841633317268942044968577541644273595639233176573961398936408417545630403950425333973719130671340748633618405249051981645314311639493064339026322627243412092754259249372429683619180806861205615689191870645540900862903281868721444449555875380882223382236339276131244730889273064877802998966517765900030538724758147016072066229128339981778186960536296736728911858555658692716247276965915399560000812931654812436526065712025781690118694869186532870110186517467571548368653479050556320589497508966279600396921571491644124215293009676266896580538282974126114072120094594542422801861375914476118988729923884699551232796967808394224561247671475851120992894064982067594710270937705202867953355434845575940893536596315296409106384801263067374092452843596822786972779593255698219388892178829339962874629843571798075403376959378830658617919601869552973904425426816434682417984628030781402036439350317958924706282463524798354225991305289657702339994825364352349450838828429084475933162376731360733419834353934826161446994271880033945457017248892135449666861668257227916761317127536132266001813162655813496887003309616663337995992900350831498990590620313414269188733277611263714022886197426182568501645112614656890541474861267207338745448820636416406090156248483911422261222629557207434015825986015111260155590070041866583728769201070561278830703128546737775655096593441418831819353736285869059555622215698043603294988501868025720070094728787504522384982243024977033221491251601891082216292165974014821255493688651243186166742312554490012308191934136989654606207250327803530123644980334119431725646195708854983715239912711881360701948908286866239924638628903839820444999414924720188273375797331137941223878096352018144319817154488670433661078301564243853749661405757515610696049718389391994917345337065403858196641679501626024622112612716590628024967815487392584299678638674213603495793250458339086145822366435223309305229482663740531126845958252832237932740521299870350475941376349116822338843252912620248375833990631193541702734328592161205608942264627897580446667691391105359204549495938670233188795846882609345607930965081367331991524179172359837360809175049683351545928952437618501161619208770419934080399198834825277692911310118198204298992579657027700245817269913847896329398135248355434107845165320858423382757173861486498100910561507842415067332714862231930220541506191288155423817568069919939968381679283545801589033609544671233087858998943994523736343159306752787713287407615579610654362245598149577065481786345022044618663104123819981092573906952884272721564716772045876895420548586502408316869073616838466899270671526283387974596620181909535518710611300854684447675951171946802255355032918674268996082753398061633826218554510687607258184126530733041385365438744989679145424504876002631724963441975486536577416168633412885780910806896489540259213634074261910390219930691349418514187607991143638879392931203305813198429129960692679508259797647758258216197234674141960169103653050286589477813532800204238349612972225069339725216972265865190528792149273182638430751201427541907908066259634993371428674904224367289587490988303627851199528205280808316394637082938632587312769996420644904026528974790466989755432251738192314987436204809770559068229342194161033578983892379202809063453286103271356229185536564538810270130516877079483106422091655129674073652872050908164718029967032827833318486032215860365137526807349090597146143030730236589430498086305481660719086921312457519441910568454949381398914602685951875258160195056522001545087345890102756752201789111807729861705830203458756757467326972188830644128513762596404109476773283872805810937303414064974579055529435112400117259337591963265641705928190410177090734467054434481849151531355626904007303215809854149639912927123100472125687222810417042660228810531910019649484854762697416752456223870429460148538059285583786932620791651898580700835655559201969318129117061546008231790026053867646847256009624267067441049660395074680995935800158569310289786912822782068110051601934142731667197676999279128786512140808354397701871861705855437341573874494405286445274512459056965857835216953844096635489557536035717928571173450784727659435263097057287253065054744767449042300055913776560934115037997116636844701203989817670409282850969945321329617639825775518788548512419756020768087409189735302892264393656549928084526365074964987605885376414655487232841118584558038936632501567764100214666678941814320907799723306335439723866475914846629753202172871532446281397998219934226334309022326473265902456281931931639149945506988870348460716382342239776552191608769185313464732673577600700964065347677365027636204115728992540165495514269418442070056339110757952327948482025576712209604051491821969403843874666098422922383508444546377171034353611779990842646816772980915770410987386057510530400437977637157016836024973554838088484635708306831854112362399160473858561214340108495413613535332474474148353723162566040828779662801039968918785154819877110883221670919506617119956697246321140589063233899685069631830992072102199728793358726128323108459857299343621339150028346580542625964581294436297984423504327052014593508659832865271604086751310487586590855469522904100026440077876333095166733117672747184024650260902848287208568056280542363287222973127348289985150379489062245470317574008359681294339159078726412699572821507602106537277447574541498150870252343209351582306038982498166545205382448027989165695428575100684719841809627069781933198081761855843487738457383680691140856972548280193455538387619102660264301810371344945587179054347560696000121695111176488302182726610084053369026121568301091088118642697724259235250063097196485984263209898692003848017286396694445840260749559712157246101612041113133991210501540281835875875457430045442566122119050371451921871253776279818915864703390156640728787856152012158749991206500397951586865420514029637950633564565716860294722343233642024164063171458284484080555785380143189738922778954754579784866471303355585616399324498593528916012746878041634576205888863361619658784207213672294507828391265777818091609812202990981120905678087838068920973939261716769084631898998087921502530447311071901464897463666028295235456716669588176756609535324987583889450472347067949887944655627423630089730952927951430911771759384211648827318722829606378301774544000143463072132838192239896142417990023764963615644907146468810108949890910501127164286131536843418814107878580727950268307939108799223613060016406004202662034440851598820009511260148055761875755694379806209835681037743577106907638070214928629670277388944173159395526591077800773500280170785376486497570109945672712795680187157411655530582595078518518431190745639758048911429927135840529903160032229644045039737002607643805216017332375281602269788321115539034068532302911743894542505411651237598544413671579809415489910916427623116636680963703054078280531730914180567940964446595562913620838213284426144419562669859489381899636471206851837842221534781526148005827286540070540116579728143882806845991500720607930399160935415300417598288425846757211439420028528681060169806155448034142598381840142579443110075403577494452416358543463079262748097185253355352896251806481212413393792438323694900283949012396864491852759248254736873968048755496284651815529004271341388478017182976639176000053213750371194145044833899942350430543308693470304801881738498327606765041918923352885199923491597197463967348434448177879224626420347711841677778191601885476346964631874824920186822390283955450139477898427500583080839349824439019469849247035378517875016177947927731904502256203747170582824009581987856701817249755580401362623686566547855534480647732727466519030721733995754257939767941780708823510807903530073684856695401760595428542079994342734957340265493005665090727438936836400995492927859795915852985818044787379965196599403396664981009481514160771251679727708238238697441139660009730214155557301379836566179079378218368853170057609992931762825305405537334594785849978570327597109020875557402879012203274418578253359018269375460841450068817368587003241932082149467037483585016760295307361711484141313582896494262193031560436680826646590748371682129100536599625334474632894538090383678462999408104840585977594724487579836259039218097354757699213361678734836878487274964679638735810844582064147188476250505279938702357293716512753886644006376801521330678803591032378580728861392172304441940481615527275256357970388201397297581025599803343431025131014069695649582215662729760702666147680832045915214759668430610831446651341684431271943820562059110435381081641053291311479465983240612269563645959855911295581640828200895309292827524412852929244399905455317678046490158833100653640706391306058574051233246623552071135075631327788428074556693023119306046448244911135491231682300704348703321366427042067573524476962020502877974708379420703906979266682373546013193553075556864187533769634338723003677327303137924861000363627226833022799703824724924999282371958675924621420795353707169166327516498052390386533427205144900478999841271945098028839379440427964533591596569390015831700130281076592330253293004172641219515709494587466562484201217936024796499807126928156079694812483909516510344118023837752907620118309342009486423491440863547206074692925418354770020883198199162419618439488681394873513572463748690588178490574478008348785003772086757629382833251612716167841227333997695562757249610879751952070138909854905761307354728538382041819697145629077876426001001303646443067756039929909353228656949980656574119998776102246402083864229345669897342478308574255520736928169700850621265980188654802095723351592139453871357663025215034825408729556422907211723280557045648121906368632032752277159313517197471469736284383428685871343608736811639198669923139505266611719025622565201530343423454955002748218749758797969972126324584714594837031852916938419824494613137445224522907531798781601592409803740837915056248190407826773875583612917597294775258827643210553904415829070749126544441307731924925878239554746598731653267837521678557049222976143516805879203792405076988538681550265105189767688413719171201152459566284293716801749960560035838681311554452669369734939616692275103540618531762880137949456635800381639177944750688670679154622469718767730174560010536756136719615684865906297139582266517019981040243923134908091382080497292495793361365279560517732916980637892545009293423459842640779474028862772750722706646491232044907362124007831100309616019475206167629741852606986962638734837387343686364487088496237490170808665756433421799751971940951780597974240606598505137459280652720649721337438631135796399649325746257300390554353847633308448994474169081877761486209441373734225209506638189778721150561790950561015389518398302660457921906087617251393318348333229333648364730100314861485261819141439907361434205345122356429386550463995310881487268613730591559768725204173256563689477222569706840058715045044889902586006196777387194532585811106559660606353015081176485631394307661136602079615238666434541175353436874378826852608624126218610913804558239206028146566676652770327158550212499606382409781169736246718524210019825913849559008883389206242006039709544893882351749243348320425898366580223955734177911377083849217476418085737399384533307142542376885375075353438064171725873678651184687889818984562765441364710617158375444723380638091181877189273319164346142954518864647875200803467674014017229207610020965542404537124105479523444489270144558149823738912457346327025367657816109059296450538283109026406272362846463140295411522257330677283417982580795661117463447716072950920203313539928940840889322165956777427758504668595602068935696371972732656530601140989897016082725013673763219113672534800340937901782774714010083939907598086673018652214946114686572249789454433086722736549922024530911527311597417919008933372688451306575127374010559247423283737285292761742797548136087696038881708129845124623375890388436047182931967964297969383697539136527369925124245149225592893647704970100731417720274880101711918703802791102594657106111788651043699797232808470994885849775231421654473692114925002922703867579125546055521347370533434927537351664803076455045390838926779824184153744780759062332055282178981428135252353018931066692744935098345157778302937072376227407946710681567710714322066751879810365998676324410982089491061858555848523253551956821678513665523230794084368318811979286163589435622986058702417022845523835188714707577671546288439749113908597210322528144392414475487219809158263982754600858931722055964898203921181597538456999883192847653560164577987936173849869719260515443529106096253773602747318261042811685301668132292163980684972628078060726218232938766367403871859358062799864615286230466560782858478364106609691481799288210517846420761291045776576211478654168423217112465647634313891158520423001312711414285485826619339847295855673524474031675152022676357902302104960661658711125747199036489134945309947121238360206288362292313228769130062391199056583070783091213194799283831345097329906033831061930192593196646759572007481217946186732200824487960910795637682556816509766345509900521225491903695436679033917166800740422745566356606729531776857112155127568724932945454892224349886584636311307281714065623768582502845003540767187697112659917085150290534397286434234291054356769590428207145707066199074135539951866974806336664579254516972535551302140665931056579515140488417619204607107826980191504366641869849639646728565953402977204453626444271046925290677896355866825156181901357270077568785121904660839463487783833414831421618276260355641247185525393354762958148647307308613083180403597544082982180634743343602843729550284169657258519452098641584107224918815585221671701848176977145439825039320625573724507641127141304735094874552113733005082517683260542966825979954238911525344785950797828844628343350677287415221043896865211004560151665351240127274533854200324276464743627016859946593390660872267090284958569482473478425986961642608729594457051700913455567246560995426363313751266035691650763888193339483399326893556892215540547628050348453240162671472334202114402714993588108489079796290663846769389772004561979750749468736377463887797706299717792489678421020703903083384719691793948898384134694290911302551355398828677822744488086206265047955473784425185171128139074548675428532187575021528496949993319745318265886067247255892812605900088485241488668632859671219526206494175472960472265667131961023438290162229278791512603423410060131183825770776722079884382008236955059096448449950510952976707164593354281362422068864989278083719414216935933397037006484453450632569728901945493756906317108525866982277176752766548566925949160321696337352899179649610123076472470936922668987654858819610635337489623097083191680389466380871464596495694196318225892290422085385840747725659755791601824499873380987113522501485620712135053688680300177381707875872743100370513147684295678729761576577872927456288980759005803513941821776157199585947667646712516514523450256847696166384860155865197436118023865056486535712559964917616196007857726962805711742094803318206802806208431127789304354655229726765292520334297003702325359005006877722883227748280795448825093882172044552149481538812270079454778829188784309387602171460809378060727147522543867499133210661439665451842829389028352242613977956985290028741720346667734481003941366065228916080431660229210643914756612722611780828436988619334976215566772639500772853987607635742948627905932016829250501797369834817482193031705485046862099165260148825195506948314782225113549661153552221309262591174651939724655224354202053614877063207174972403660565060381486283178662042549016464860484880701092165606027593094848240435079617316943204244547484207243121868580833747647377412924631519938634043868798651361004595235745766217847248392662025180288139654266484421550647754012164628260984624696903868722627351492843630253567744268586923753079925108682098908145611778519348125735776188299408821344747536535463184936492109450419886478453997949818501342285193118047645284416952071520226068517019562848895686599508654460708747031506546427976372481719680093966678938594784921124311682477506241886598235579422923960660950063723194859586650933398035694223240945290511809194018168763582546730784528225679769616463254734811872614455597833106166820137297754152163325411445034668308088887033395823164992766084531039907780027978550329723929636038197628107894461294846435416219593896310712069597066788588082080025329248485130903568244308871571393014850066719064583405875892705075398941518404989254026342166571458128863384477241570330647251117007196206517082429279472789198689197002794852250657921087326278230431270482561111526474063320364244880880435474267151456385716868747485929587860725110089999008355759851516448346096322306075103862297956470396664549139016323489251188303959267148528690936050767062422456044168257815649644394951034134102644886779835302946815530790619126994677966280340699023157468946377376643441142867188500816283354468927511395742327411090269412617766948527390007446279009189213717569498436194173655923745694059729335993502841294761883101359731690279851824053712326241632697069192920331319354322163425934734628726913038984894117972187680259275925471783575930756500175749652141530323991395599987826732543830063191955217163055974583071636259653170612506739487902171259790860298759295379773503454234409543336441405489362269907317224326720172640254578475577406226905910438485423699921344152715787604797161786373235760200756875765408160685556601660563747459609001270439733239874914697998105900154782546460569319103970617855660937357571594723187381322341841318588645183096545854791479567285992341450201795021846871820911345888697827066252868939346404564941614898546960409889647650703977913064986841559733927970170701091171638708954369650979871032652072701075118597856741859063735778068478922358669682105311750340452438439181573921979080707119598057599546425548962740897273015537361493149353509040240591001771761696365649628974975281626689009231280399552490718433638546957780066642949115000519852604078207624832975726232038846601372761487109810464161760297850151729249975737727592146983472180249719693491669194123563430550348449593418571865888006900856102713777884403003596408743789593949907495645639738337842133160740180585143823519965646494110155633823603627834166766980863199192573324353818357262462728719058651197594720965919807611180230757968425723828827174648629761779307306928825909580861759403033157151922409341666940530671775740374969640927087612518143353093290022989957391762286597813280369234075728141041680076170858635195538026407098552543529736098080403822166670210840947297595559722622217507124049105758253620346294074377215931294898265197357161031425566650264931536968925625092693782981882969539576386270584746600574948410976421007216205076084760568424487272329048416533651767560010570587934332011442856232695139257242051631145917649321180937530808909134307959221726506099723001420975792227808356460083090791295759974128965650342481239464789496007910682533300133237685535651322995586242217019406666197864889258200175948227422482135313892021958614080048414084108322423232128656747165829845445959925223620642981716265390762350679181497160712596385825136620248957442900405646321640701280842730675941380675957707682840296045891282086476407321445214286411112373789858826411446535034544404425479701921568155305904218569453832917474357088135830596071718476975368805895641532364377883479342084441492485614765984045832735246245669730740757229718245573105400691778229408778683754882237834843372470675263187120549518869493647852265501278037731599456781461822206797794098064825721758526607889610349151616444590132585703730497900472421771845628147256239847002817374438876112782567382840105795213669318544699001684405946378980612987837645710410370843493042425830640751870874328250943032887116523824530749547412833449988461881775529686243075130386557963556592294977534061753845955386402996570966427811830293524555475866115734247087420598195860156015037041174291164015272363041920949012942244721264404779032396557550257454171247721887130898686438285434419633559301448336698211765879239955766804498732875820001375275851854567394694655845631623444967920669247302896745678837129139704443666282443637456600705704594750801858163963120903519230756774866819349189222642335322113652569658196849050086595270576659573253381850001219868171527962873552631291713367779911422515424707240958374107747056419277664349004850932645020270798637321752735402501968039431542901078467222187922995289984255436398699252708095191901706175917468986624230751603210881159738355098061738355652600334129236114166528068268026887683198147310140110646600211510440633636639115156660896775752633123005910492131082870088577927428804657847734123265884712267727684459878259289934270296588807497659588259381738174596465805653580230200783936852415299900297281341582026524500738893822165793011753841561214765083013172615095108998106712692372437616939693130707042114499627788955735692670228180319119251070480974827927712552358714971469576205279186073642527330074317237955741938751136515882587754545171493754676358779400415823292392278563191360871128675441298092453536535316036240474151565727127292359134363586461090014791399402160494484017582357856892755384203203807059803339758155527797246079805484600330349379475322075479325547593234567687263432729132668115467258077582789733933199510480897616882820738754531876054905887820748426592260069264033919063525010753975543814980903756124228735287901507796758082861591275091436576880072331691081850336221398774412491772969642977947883592511157503125574516444778332892077574328883157419642595167994525917431886171162411378684189597641632508917379465492048817565895538871687178092299045931718593328308329184541193199910515408493939687198913708792170365607920638742030715351908963880736274235890884130777448257745472604393903973933418990457137952999822018925858891615485366901404448724381358669201513356542587168215055560198363486827279572161041897525650537153415909953382476116129676353559130404753728056078300416475313452870660064631037527251944943765945169551535168232377542269682788639430694996500073200515782304971092837205170591337305096715220893913254319477893150411528463998446623555205794792778363106621540999000530567474635203040530156463984209018755280385121721174596081360801632147115013742477573754941014326441116402900840520856484235163568847151647813883871814520925326621245611249182771306201006273088710403206518563885524965618120787700981464886974165896609723285953646780408568571761791111407351666412938530753735250540588622780535783343059434457507401895373451406728543581180799769345498747388444350399939935566112346821320675212890072586529792657880187608682522115220992692712811419262626858049064547861855598775059635060791677141729376358582163793191912280388407901926132889313734083170762804545904276578954742315530805245872414769775028913827007593200537311501758456329857466877130857304385828853555989087834014226804595602235576671818614463095304794387238578735431923841387981687125677586513340749981232252916078707757357022886285602102473001054905792249834383873217031953446994799360252947887663432096026984190288811924695026338399834068034387548889964991324921627489638450138038744301063780433508921243598465780034203485398545694495230887101310154380538953477899284669010738100563959029020067843099913145366941817177971327447204635108634634031042331365647069346700662015576137151582828961038777412694072099946911683970193729860020220018579585822974225942832928837610551417061432818181292895681592484897074593814983286324261012137019560583019373859570306158987738492338205442765144081893779456799658428385640521515560015457229663513497955650715861073765965476334792012609407034042083597565059897315728349717001314034141844556808507575342237550681041384940720496362450977254997821307403066743164463876572022421892190931256665874394695767771068062899844170563604139737754817520350695866370028756759978165477109982998761118090919670081182411366546058624992245355443999631181414370283261072308470021437989479844808950268824654729436522447705180122352662712548525205033187784548496982850742876203303048488682954411746463442841833558119940669383471675731475138108554325591732667548928203717720724996675133812413729952663236606896010847778522070066121326129293885525533768102016183947520638838569285696013073363396670003030301577576170774513223784115593824845128041252908693629977536210376211210197902358719124371193090371237150041867340954671102508780953073828629351961459153842873262301145809356051771614463662640606576891367634311362332489672863138488971171240750173696365111048514656186352274921124370101854738417644620337459247151613970825675291136470169502273409607573050141354350539714175039350787147875133447285928687579086971150297148438267667995101088400114574481875696621108013947660893333337746395188670248858535630543462201728967650906718858403143127075527857688736073331716808598657083694497003013548952284390692850062801562492148258291199295037757711759491510599442769178612265416334161189010005545831111844108338185222845426435118098204426663714107750676917679093679281177075758810822046046879818600830909283409327072609360555889941321820756611982479813192908485063676169914210686758839848902872106992986718317527984699983349342574139987744494221951819022228674488990391297769562703789925245683630617997877634705851205448836361064881784522552782788137554536077731786657182499814266046939527569842215507689971774525829958216473496309115947797665178388621975774385503467591132213591955811482601507243939303685721838692654005868976038344452564215722841551013002496336122387715404275977444141895267955837022684274354211803987546527505882020445195440859772129292453568596611477977924831848600661498121321689656362588170221859918049489634587095926967406651288642957613132466804945269219812254933190275770864874169163486230966450090750479497827665481908220052329466581518776618107597318244916574721697367050127510704385585767592251529924334898889535838451998883473848225148656969440913677780528038378555217797021176615994937630662686124830062360037299575064904230131432967216280313167806969894932091201431293121737503171060260690760065071920564958399880516942111032473162479202813444336351969635851207466546188678159107268378777992635465728230173787671608658302159100686594348234884446951573803516923509434083818536475082868421542968162763818370744132653006685498298000037594722471269975160841683293956585007317021159033513889364043936366807368400717209301152793588113960651648801803119069528549272324084325205106346219812401631752473018441175988655886545649128128168557823666995546096718963915279314489892528380840562251474655322351950115585659973857007778799890143933506453826551878687768801240297899051627407805854626092824582007568091529951680143411175691371979728483646344972813515850898133569011594569578813691958506572340932610911004062751440806125580559408102277100241406528267313903922622468573114763345298330344634325030764889411281367249538652556749470417127257077154253423715344755303178575428735715505100612154121858174607157769408441244298483107087368432069525153940794463772665989564414676629246396355532249236721105641087120116597296457746022731668095567338577288554522920204296034039603371865091457052067967051420669290209588045984522104930200793178320127383083448833366702600221383750067796386748005786220523399774363253051755472788913738467319711405444416959416910628980679075130661697616133193294159485834516101394505532074021399005307166426862879368721898622838302778121670433348956762985856501428513765886429863255533637262274083340513117943167391408292113999871216537277675255830973438651090064534947843695249764610483558928350482481241462053529253011306888775622841437093263956404401516113771047917108680883492452875018092111799512287725643353655356983406009355553244670141090240300551216063606517926591960453522545173452610507613616961874143887017529355468596893896617930858483942249726550179306528459848507005678664725486515259879082726547718368928000737745511516518419066490743702630617610302733714606892555432120816495046045401922153420099388187519187384876529194376938296405250752157551563818146400295704344276066581743567266995523333470871530967535063611880255398849081966760217851791871337179129928145177153800459841345616498654504654417531381797617313292223682273428754657482228177943445407601078586112608683000021581243818000311101577658055535285448217066793895235553009714767677823941080945795512054334033005101689890214194262512638945639376371750177359874439011031977963427742924271097587347625983847031429395499068159922829775121520586970930087620700708639330242824863616503054792167784698062328103700163451575490603240396063553693700384081160693328542920859980928876803734616561957349788878200566190690810898538031967233620092036823538607221344886514077115085962138362323842971612039875948495596732940219548862918035553858202488655988791401987826537420917877654557278734271061873145916538830994104604087205795886543806900760240247121917709679497862823655467676194192731469339474074880811893972189414524554102197957794790108793042819411483304598812973378528825966893936506708922072611015216524460507845731396356344992749836185472402445336572508890338820810893811476920346963313575099796398639236389539782666362861087493745216116101999842545359942066517976708003988466939497997312473203020588656966785950817772201294873548722618979785842579927416269097470093893424573933544905604705351181301462573602774955089776052520662625056442407037436161863450574997838123541940983878125452681801936118557546843619850183158634769072644838802353946747628081702139864147156409262800272574425759997183050732023055091234176995643789222113172597816454004647555216907230445886995780429756454824743520080996067199166556739996415369935834766197366928541427119386349976319918894778242305181615817219501530019267511878596232690760999693378965898658304406572773118264808709191111166221612897685634520931635295130541595729898183344554541793218167199504434169250897834435333252388060136308075944086989652094677183229861569322601434103371313422570613149484981904497936323735858657238682295589132897083082507353071293200203294904194849578785709066708819479428503511993313872328986947164651076736043262473915459993149266251955097767701428959708369932552680405640711683928602490939675513408920894567459206342981389887074718375168422010655097655793612010537059368225560781045476402403712639479627524730616398990295887961664216111037784936172345158537446826023746422555581001824565102079864482535536814023211065444301835507643146402144865195692598382743245151568836704118547496600955660081668963347500058632221826587439523183345106547327686275669875884202485488082620241428452771159277627658121261855900286578037665872662537853714945300825890064952978637987265936129042903149766945664109419847793792863241989936771706546590180108896714191777720209055541492864172527096893396546018542303624973974725794194477112694611878278456332475267858079111111340456564812190038640221802171926886986074214335307696114910141086675256548372461537783106885659228395036746083188414835438101127051940280473225066021096802397761094067470710806037308485989402679786389544239189555376574634438861263759532318549643664209632363655503794998023743507616444217800028051308580356839461794373901082974817677749030264906927019902105106909970912553928488447156741825042733858928524047591949925586315168996894536609664386353110234769606182175813780902393683369848787397789570539380896118910069497779877067762909183419886827153844968464769415820693494146930433473442943218553664029456299142787994519642188214296107289855715385168363055861336272611147950939996181686796528745696398524375438184061821460835533974053072813703090460307643886160436054253777339892499512981079698276720424568585437902821810585765293530338839984731944112320286046034438629515973226996156080768609418382462654395833513277951832071105622765473467605844987217300763384096447538683680987386209957779106075834739988994540170871312854761818887800785840209103888573517941679107451500877183567820458983801266906087310807324523215853927638086736531093642762631745196949294851900714491699440420775658651758068545815089249522565898929649783643701009501386832203956904547075415934804130805990615088864202222628101840442610346072588775043838214918050622865600362480206477493677733862909211275594024202868858679200431476903325522893319910713092980995869021349891373948746886785438057646660339908113854819245353770420184115514161422055868654812261588353664019030523232757714532948089213200616722418786316209752523429203790653932565660039103770178617594906163619606583479826213029735791459522067146248291508931483289194461887566263185014993369635173008649556816198935040847451800620257576130637345458072628336236606127338125104436564705846877019922285735659051707864566893276643483530826582168215940768449369755658347249691177029352178373008050498361177497258429844986032959219172017336152718222265299369047967714378610038108055595494528861853310320745372253278390592814460199238079945006858027660564558047504159298128020886502720372992176703655919481271075567797488829607309264743333312618814753915266660037554165696251213046262882981313615200715632400739170160336548251812564947216315711655934680255427512478064179383745734966125409141152970213619006533981141394188237219371978350979485782464104452167602937949030577069674843818309430978567988380033613518051545222839601692231212826263012200166243488290759799951118394939122612692051399570813549587276360444206952148749725637861687831622427409082842202811049075036664934197744064116913558683009051350516652947263241147763090673862486389298264226030231262539187408968797335412530542120957040684575340732632912021838543428192729567165927132508147286956280517845701459527191914078823143455845231006743604945482033656834624571353069154954189681309955553742095487231660543017811150711483214293343144439103603460860377627704551619084346314772690815419158010435642206258555400513907346156248814376021202795600751980109097206066801899842340388118069575984865412840873737911601203346544538652795704891743812332679835527068156546997626587244899574202725515502775048705969351877167007685598328392791969580608801625650679509622610169759426387327976475245771139230055611990166119473032612768848972639048978538736232293334507280513298491064612195308198868664416428798527861139197772811167142441181418273609080058841019119230727352687319148592578268766346920768103508668735541175367284703677461546784028757356802599178742119027715428616489105736709786250993684939673413760125355205663469006123103522275915805899410118806828562257954068114945615465304027137655337642377716472220462139480347180868237662489130188838291097669422051950560525467771559137609686700281154376224818333677377278118433936462877135345477232602511914951219973522815185327511640961929919832735933817194773006685968521610683419713367791748248297936290581929603580291785209132123324293176864431392900676245536045213212694564211033309174433839464548414051298198971348154270695461770333974843255221382008662454745488197136146300366808759406488036799819551931157799378778052771613928892675150127900926296262669650733982812971211103781766082525325787544323593864626706857153333243959159348206861945588639348042524324041115177102070781623252861314444906847859177148308578364166761860921072920054419860786634601264900063858689348630283346040050473195219024034859334651943797172992566178690882657194987555894406987407791534727948492416534742436681100521911310123191785342153271291360616566891620971730415863075500742342342000881820770815497630521987584957129678992461732781375337724785839072091498257278190052558617206068465385258553172788929300048897000945890713143480333292160765531121122217363730086969020394643781147604834770085128532495723977008791291219957198261395506520787011023548718541017910038952668762008008133056196478601533213219534905025878998730602691947385748366865310786024067664925847846054925796181675465944854628777512183659037659414246283275051765019277047373318541368402931984156412514480462158414428973751733431669705702559688101555350808487217776857096913620254486123925883832677324425284225199788686800275736822101294693899041555377169874243505638104627690200153291976839800422268756048475298117891014236199899993429629312606689809360544743219095386237790333840331671914775556375104308622298182052911979626082840396464865722920008586037048964430147684420817442289384844069513889980900014258684736170228348652475554085649921253127948751403321754633833577338385641048927982391835396405312229886144597838733125133197405752302421263106459489305378471049731342669955907324587110945504264032399955405511368493247781892617505380896755826352804284119144273579795410364828863454708055615348384076913326693701488690850211337753484173829325944814179983434618301035819298541225288679657850538317340347110959111980173803955689684071367346355150087529747756293145934242693075994565282081604356403448070942260833146916102271673797947654792078242187626584059698768137018044379517324298704869404659876304324461515378016962667901484834752697041471047833024623411148782256983618115158885213595755136508614751734613062614572231548228203157490240737417508341173640488953980855506504534737695213589345633271854550971765840076941171611871155564394688559764074291378452475231827425011608884628959746871557275369991119507074147295146450408749468416060342372480256202207142244310295895885349954752398974976757343129703400433965132405195022131609416522830928469102978078407888271354890835308585148256955641735695156802850449024313764940794174718428424251431655626340570122200571614008472314255625817222657653652138875428434337214719409667201613621008308069374259929944048831432959438045156101415132264266952618592839395817554550226330365651105766392696573690302800256883984898092277593192271670962428336026039723057455079443821046575320559448421195160598732551784380159649232179562576390585723306659938841483098920448234622109345733052024781944641616932070707530568964793163340937626245585235602830375322205292009040089815563481035536297656989560094424741029238412351060260491502367686483803940162897457790137301516766316266539233161288240095373953110096517027581529399816775128495969339623232880817921372930172603182465456473273037539226560407781843830184636330778380759971820445331172666704004764699649357526842594237658777499286888644286430086905899940159586357195289137887200981652283317280040815003331092197590867257173300968132089843434810576358600266858791063210509554372426164800568402708633864786954911408713989486405306388054665735658002552837355650903940582274785718052147864153484955607972136621051455575249547862212479080769476513823632933732263539979357576305902814318368702911442015857696288663539405762987413974960603418940691490526032016286357458644194921865806864651868509095582852101707837790994927068558902109602576868288278586139731407815443550844974032015838336255758230418071481886176777110872835059865761043977509191285779011520062209487244755235758023915422480861670816494624348555930958818642076939027217569767955512903707367174667907379471773245492310350460893280719245855906652797374236294748838101983940529968509252206221262647947372464292209253963300143961881668267286621599516157550481095898266920100222434966166428079284172733741651867319907983984376951247064640661140390534701783017278838291330716652865937554143687785699307023892334268090569701213530981989026406955574460780411084260508176994608359069340618463018755219364765483407727785613856736003597387031619003302519702373292752000124900929980788962981476908052052267090853549202264810981956716913804648501810127730895749541311630819902677668207128483082966437121476874277058589762230489853514062266014250428671612877715284611743839172530042609678414975903012663129152182685304684711756276130256321973459428932939253397594945859758428280560983922179691690404450815156517134065187158215888649192013262977964617116188242917536145698676599978664047459685851219651125235987303346143019935255517333761561868046694967627141228461054250212229095597043558696539424329128489604279754188346786292189988561683427288328862334676644638627555137688123711156489344499253850233425250160054133983588854165579636116632933258071239410899173821976355909388450591205763201405883253778141251214573968854150765224597488372329636131073580836458410580486363708036377746971780349259351760884520166002947937955367492323328434293905591252975225905201048535393162337271461381242230298595038192938168542540753814923771952481294722716506089938598224280017304016317652839621041645974834635646470843776427105354567142126448819035378184904278583074526517336322235474186998848290175797564110616818145729781203752302540896286292047426311322551339324295650126416220736778385161918715906500405402170169448514690464196197321734633900073996989284683548038288250948602291708209460932617631325696058777387322955995858972298426679970961201829118438205710507073617194860421342599507107404717647101556521089572613907267803468308694563966699068111988757274382187866245876962788490408648350496259139120695517700105359350658585606826276669274464155995788819504565357218640210242070536232083673989069776864426430293078765935161163461574514368157981904121450775268926216464439058492751938398127688117534572098472434467072122480662322291088919199643788887509757192183456245097260200069365721894637638467656446075735515133191685534701258634783876154825744724772581150418368420349680431969487265878635667239558930887613012192102370377507857359070165712875821427246243072673036360286563810470703756990164573337378024620115362506853799849057618476326756112891800524479500570959283109182120220288591159384495005282460698721111311551709377407179506839204949391054034472113563901322752243102514621038593954283662318290819292384277630406541333711009825649790810052503114489752561145582747673435534164796493426146821694731021559196487321474028828794554053863834347364004151857554208245986509591159104450890106197500207800533612464708022771887090397274710784468424568757314986671770579086558791131680968398641524242696461889451368711325118074777682769273762011233260791253108582755159618138402828342619702930729788487309561684080284311265256361789140413298203507977455856470021631802579762668379826704726615877483544120310235242090229536689362450157325696211512851572468991428804759283136062287410525295968971642707106228380472603368531887061337472226210532110094585516971320303426439852834473052214969659297933900145004858541525397677702006702254310214313104678742420191102037900333876116487582888942663551559497760228165757550119796775141478078561497751687437671158941970431268279240484368576011971579016260939604017784139185635949429513461513315671393204566437808702099158697049181768322180358583311882693641229885524441485201543607548566762046558060318633223915500513228420872220779044853549415047614306297294957725979064632693144587092348819623351652585421497694822677198420691277544380492117949578972629667958753980993499918957541297307245244540415449680198237901561828158288687534384540555984201737293038878192698444224310258878257323484636085469123323400701433942937258554934322459907771883746172864445902045634848970819492247690574578840040839905117400604556197506936304447676178409568889307504209924953778954371777197695001104702853768220827090738306410966851332473164146898115530468779284888498638534720996781210923271827965953611242865718488873489021242166230228409704419543862907116134988682492871654111994596489693861403209759253541523854844672275831390612301726359261329914762187573771670307816049815000287583777811566167910562728112454185657245688384207943529563438411948967368582540119909716849628683035717986321144185158357343513685612147270229525171501123087620093416643443509853626553788927695112554354121713720054078697529836754346549504973220434295624085659098308664365651304714603203475755375785415247451454073621806347348655418814640787836494147265398095720705735744826061609372539513624671298198153409080926655554528271307264437761238353995025780499231476535564122693922401361157877385921123813216824102157518077378215233972853963865753662992153137046914861295505717085386591654158488751908289738242725692782761600017768965596074095660940388598833948771512986146570962068735942652223814016291924101119135350372679828156731518399230346022573743934318298582225814103701409857031828607154226153870588853776184124044736194280751222710860673157390285862048185372347538330077959891765275151715731902433962035764948221554290005787547955381668194377069998501144667166803148097972288958424457195954783860057163844489167346300981498232336917353857359838540327423147303460060849864180799868372291799952103368878874601117433679789563626905427369022947788561615064628788068141917507879465332381357736370624814469763492809818265362108918175400638677698627964550452563639367942070356798338234442794076356730414604543213974822075634793711191014257510102311784047886301789429216119964196900190969378265976001604362755703262232612442919325791334109926982301668664952221875676339499023692828727859400063929854013247166892173309767639267118133809086451960887042372571657673194828622574487729865553884967146734840936978243561414880026134726493520902022124024120571492422811389776261157516710219471059268617327609723263250931905102729368806658262748848622336144146597749052423200896634320648785089829911805294086814160442941423396032662190464913536647234275418604429431600351454426398898983255581296767865793583182568295700369502785236287310930949634829799527464365653783819692946374055024573499996061920783836765106537192303153168794531061280336851951493231601340461261792255465387999543800211917386266359592183073562274467033231717022677836073712573204132817512668600258006525415015676432989648219353457676547685033572572362663711317896774207858227955433845291928762381463946492562651728448318095662648067084552982005611703803209993361614095154707194165612610884276634262287369356992557890568094160614052008890359364642986905245689898893023061749636034999994813678368760373446153492459750205168877279441084868877229923709413275389558571481666407446077221992450332197591094862426373787210906952176082844878867929767351257168723052341763959337327158605606048718011650454687609198335526673884215463201069908404851271796594356279362914407336093453419628624471098772268235717864712847652594713271091169853194675973883078894308103312543840400292332956126757843043950438125668313525722919466085277831870481721386397281548395062308007420617630619035130126181138777911600543646180761981052700548519459102202322514238986889829686258347794362552504005368515799069917795977775266338442647871937219422556709283451376983328490922463845477836237268876731935063383865337440184286584635581245316899540070806389258947836475053205358372078056164527771414155029013350174795114617786817031062698382619100159018924373181738323397631468307544984151030235984437447916769234596136577941367001965236810535077142181364289741980190068349826075973674052717028824597756046787875178309267240169771216494318437216250312788160878531776449152281192377210148376553490015706652478481873625117959564918515638462080875970764123242827408462828245068529102131048792675217171822861514790410724410292703932243045934733196109870608533720175935835124104844911069022909189643238172399313270807086208199443908459448164528945911116956378093816371296384060297110130033268125212149311102460396879763381335517354774867979749819176042373180697919819543114535037943356270916324003441118381769687423563234407013565386450567998111580998888394404010176516589307994906904587578283123081209247744836354326883541392747330237334190558504505754609104656267387664585959072358294896513131187422081799055705147535025632631145329046757035202183846529949830910967009464441155092447926370973729088355525888848165436542842502898945733727393082585005860588492412522282910746470271348143724621973690578253483860965232336614407915537668835538646202957874411083584865518428064687638861619902467191883389703099430203842111608755249806799975191559326187949867765290005295429928720555025957843486965325474694627068749504167391796510684752975869186123740560958758664237652952583866871122692904149010452109681142496775955060145934737463994926128766403040723141824492037246280731339649542698366180714567215680228193503113572336133536760547156131988499428753597422878102264250603223721834950201048787155878761959367004837329366789914341395373065049992134678675575234475645632526546476783924968517507455985939332279399937794630311589209110256929406451957246690991662299273421478936002564440020085151759606034545724903357252790316479647266583633347955699729382388627816393594898975155410499043135495343830958178702007518734661352174870166327356615767303403414622288241198466680698163907493323079281103108513544124563250436465539138637055063923756124545976522961716677448483975689220389067890368908554039004262411190895531818852640236298751253576325090010420725378976163059172929400464747919112365108490434818073358175817233214475596013275094089997057051819083184786197061527862281844856234886583737331691253346023221781851334280449693980852327626462048444336811942569442203957459891397522470391170735323068346673805130615338695087774532241522702753678308659185508109125194388869227728851366104471615645729190515088051444960524250936208947547110708486762810926969399461145425385967326586133089960541207924746217770510691651912760582470463284951048447434812035311863927488400653918842968868128296583429240653272760661551049594702920680982163705942506240505864483925214828222252344140369307172444949870379286683874086336570165533508703273960381506898597196349117448826751368648955517294352079718515910185362907499149146150096584202255552704321423312899935558956615358659446872210395794410368180875502494564336012075188141111059972140730259163053725378470522233264650455170018565575130610577991847545387831572581652258107153757400678242176042691171862055190278330381268614987581906674032402294494425859110166362724566789380551693516257472578270163468582085599595562635567302446029492527444070527467103728207616853926826081012888800048494835963667214184954184228266447006752187196776300921872550640091142148719211684986201112785480696447285288678579234628700151751993996575957212447966161933744566728950020693539996567189945514268774197740552273161631544109724638531005585110752773562765289750731509252189329776189311144493449201088473022640689714163902528389404300030662470231114217705364859668844535223735528325389529366974521922759067741369878467492257919273507863973318820204069415395123687401139427002631134061199728547647634378430131676545964912471118824591789149950213773882546333707734754607151761927485487892033510873866162808718208718085475214389193073634694008574021582190610813074611576133925090451068854474609209150663578749858606350001759697780914979337900298909340156246069349609329325810521509811775355413595606784494898921078048144257962732049603861245986894891225430980132050446021474844250295619155612947220356915572055624609545579856953995623219709766266481341292628269224130991026232643652357771484542009845526503541194592643851461009114546192137279387731540492014930413189006289682123415602574381966182087572385889609683553256484475352141771579531244034487074147064334601188099664100586640536892378667992996563498342175545604853509951451421604856048961703564052620943580383430894592553005627418251954575558380339312976609727113091788447027659719206738035840786848200618137759100573533609805084189666532648870632421260692152710587108327736003268549673822308273893578607110105607851306460967013438643949256556906871570186267885218821816198139386429744994571804168951498851388910962569050603102839479895594402318307433106069571850697859483128447415806073477793245098010960164824608378830286908972769907483173326726961985138610751387992349799363698239312722352597420645636406211382056769416432198056406420778520047043718594294608082444521001808923422373473012990040622406582888616783621114019336935199498146536592954722535859807748109489051459389116719549785313818667100993634104929240194044318478546038473414018512990355718501598109536568425286544852295563623500628931591980201500033879774059848225313067706827191337028896905593270041934897678553913436680330944431509326763739464800917079521722601441898916800448386839094474404201392468173146778966636136050598674435862028993813488349324582777126522773251696746925398383167297638066942134595820273152558579124806492966433685932949425832781158216129245907895811841896821835067350148007651112032275150829890232621504132830249898347745163844343014346138085614863697476989563953977022003898237117142159083086915613988369881691350851629636910885737119693481727934937772112295946624324456044508249897646478598419726113096974932355797034263597587807969048558200259212804029612917863312277141907200878203321975984299016575976663826856567952083988834991501683977357123700663348895110889025506117464985223888979296288943562656843017972335545893718845101458502012733094247304531924817288625612691841010354148341150838192167050637634124175016237760142659827567706202402467273687002412084351127830737061990109608078182439606691705448963945040424916113154474520439704285256742421043293363444969373899440613520789518000331399772841687770630139180596192026979026057299160723658563484768229750469629375033882652695677328696077713470662310764269295010203458073719376232944582065363717340944186758267985223703818205915526197026478520187068071712134728501997312352494532685101998762207419227375566431281711168662953662002729411480931800616586569097037843222230546852381586214824799677764412803270470608395807160610988527974530070172503820123615644661381431988958336154173592020205447777470351368987012191149354121588055521994308263777846641508824299660739955106294957719101236773883790710902632182873837037021467908999028467394159646153703571596048033000574038202251951498427990482797645191305046256646040538777118455577032174202384128349254117241097752892364254451038017500178899741941516070956631783799701129862635803165796221876281203359732634745718295396429892550513096672762758111201292598799494516569615068761553395334037864101347745167962880272518941506701306606263174110910775347336318470232135362360234073733449625123378635090625697200512918054251132090183226211376358011756301301490972302578551098695574967891520611708380551239508319950001263739243859097358415837911295508420196349137105098810248470441483186744822974324981820938458594161765634894283877228425770059345491572137368418673142086866926319871188956080819243118938564990439554029163925992556774591833419491099603295976764715852233123801354336246770338752054111029618517634549989871971494533108616493982824861800956622549564985531548072187282172164405972551510683024780518749353059477325524075295849033982619092164075403765830482957731421196135692233343992021359683306076551118911021727571812352757451583889484519618305067534113048864884814654493130754027805677479862863433699984393231532119711390041603075715713369353228386342463717800644298811544056389152319798831501464801768924320122778068990340334591661365799664567501931285211919267574708361592398200941279480987948912227998419287339488949700682135146198697113591428418647752393401174538060041898138913273920285814834669703725017879406560981245800848930634681254602423532840680054919644387973223503145981449550564716611508091195201471309746503069607277905895768201896813351004978325061795735087878121825778001922295644201448799199370795033627237859003379130967456097230567809822583777630677356320167951310137147004104199762968718768140981112277476535197897222872776060525184929162044719111564264968434560083189926366803638458487270982088833681410440940759116835557718737918717151404767297573933551654350689770399108948510619480863990642486977903650199748012285158883710738638731600194219380662485358153101769478870654831632845638153729658395717742157299037951863450290514057598327584522490175719634041288314181796363369189014819034223472194434147269807085681272018735551673603742378928012837609733934858122223610204592302756118301048927813042215156971225967487917944645417116354979341116938503145727797915461241432191497533290068515309873444184880447191900144053437893813074382051826256492690665224213529477255723184321316256958222576920214071149628015990690995988357883883165283150949461731976614769191625776403791787380011596050631231873023796779297297333249703510739143204780933284922955966995774597779775496274630170298799043345646668867208832188721954835816242788416154005083245988456678281781876185123174729641305098286680118227808374410212551090381235195141985674714587664647292135700037205395836683154206002936460759623195818557473728013744660388911256080089362650418625664854209898724146521855688557966185518836656739294838542343825666763957736170101530647477162112592463413837763474681422398521158251996937141731923113824718563399707686568659634231759069188304310775399298680772421230231033099008649710715674541152976109076512453286828436892308143130617228167057962660575849277746841241452666090621961389519212204742660395067977332979350288120816821664672935274640091115380341619588883070858020957184603837448945532395823666865334280435052242412780410402752532306310222751918150887881081974526468540761630734959589086475609325209295290949123938181035290519677336926375698071912924989556218043938869397977487655685579450353362678120741770181901000615962744837174122876013915504534410236821842858303971725181109756421998656468115614273822473908701304036765122427295611776679977877024537844660116541921287132470264861306981542516914712527617804112437016754314270323690477212242643911555139205245262755620765706871712198791902497033919311260371132818991610582538439058015429078871660435365470664527570263755571290209993218067195653544591071744904541373715892961900214766339830308528922529249674656170709935832345166477761551690774849129769048317350200235320667720184226409710109361593044412137337037710434953939565822958281688592073934703640163077066885330581867572356243889830524548287699968378192187948650448212295222327486924773786741466082978692785283405165587275461016859040551227888297864440463624012705454375483672178263996209469994046197290690757135949793180285298702771633057370852820521291336878125225558193266845014355909862579550852667510871868408360920077521881845242983528903657692392833256705596157258423522185096688248939225223834383047020682298508160383448816108546332678915667992509061915407703961180785503647668108873916501927108287862235627901507882432920555509666894870406114155935413979582594128774986929811240244325864548603785615934282568500502683873850243009610288123376439196959803563573114972586657988749387309428933198567824870035987064670271113903479855895850885142089744175794894384704670202622559850990506241867252022913245295041999620724746601850095857396820448809863946048414095726096145767729341778672365910124639150331544985840783158034827282406876931953871994133710162043306723132616687760208356993011678133754027240739255523077348482963314409730978451952265993868207983579926902156417449256302188275012863190483726476622202099045504698211476021353496168670617924977182229001988420522555124908587926443171094556320059428898362587199793843834626719826694775824355573086880438925178589575145590102693998845961609318087677843800885263200955339595465399946511040815231442112333179261888837226737312090409447761990192982337639204586410872741422902610520159228325139727940433613333758200229128152198022609247062443524471105648711132264883828556772142564567351484922622484029783161054769483482568327840977528439234899151291715192239138250607977392516845671296832518107829906985213243129242217772494907811152070522360456194670016018930058279267085115000828556410933892398463846446074611747806819479981256666385938444443139463319780431103664185484934382984080667773674001513205843335791749899634699406134047989769713295838540732873900295117132729377524562119433565425645829914043729810552141203526679157140815165287120664407296001989710061593112961182261020836921569971432890064481066335695368936221227776184790106455530471961450189087088016072541424140163409623837895220271252761796137317991137999206080518459645827454457977451944527451177987966710137133316126303080281552867563136539464939539205060465347433900685928422882494967741724903941555873419370517328108201366956177547818554598854280039981481091626721002573956097877259119054953761141386823426506235659324973319295290987707401991919810667295621596437593742807228563258162793286480703115645092028970597188721784436299416514189707680402189015601638087947713901019691922288534292670265067964666213456062358872480845420307059834050514114701652007913221032327991134254509045953317364477379787120212034366903442050958655620077422985464146449167535159567048434796947370510358244930467964373582427737891519910062410610505109409866973740443743819846748165094214731396007174565794132026072415516760700198441843428078091327461467515637725112796624867397307860396789927836655681014995626960184354030138353880394864309078712683199950982725059184352157269427572709911055176776409236868845557174542015179476013260676416926782680867255360302401401508707145317683487401749594478038935346834562045287741896842937764807240764184119204617465264054431245900415605069938657037298191655797891591728568861635901619248276346924317691387172713796479637303489158536383516414181895941864874007087432685155289495428866062845399266405396646150010617421595209974075351000646100413064515007806137750147194640126511874155906554309622709415383336900189723430316035722284307036977637187803375307260521574117178342373991607930747033319955133145318635663466440279843575661580272294504547264491259996681213138749353937839957694550957137341193189675865086230801189559417363296586513699664965514709622751682556079352143489396367189738178222220036359277874866994169781741133182156032579329484631084536350991186918254007439148119741017581115037719140123802692326419249183692646273545701577916558492995172811851477681799073372276741289925526989409518546757178097146455495457286883981081450396717392516584804307610398799158564265962899346933889231411397104012010097367989552759648324487792545568348467668834817798223502535940057889049187460934106760781583279182262374290931256928873726662381473742353728004538927690503053368170374112301072046975827459674365706947785760701735754532791553464343039507175378853276994491462731463528396524085688148069453786191821833837667854834379102920863219142273534227159626704593883181254205484762936685919849919624560611550816016260810339383136822749243774562786536795109954443340776702225395857583110178129065955546310591941658735288522923675016978931022916347416861672610491189718654765217574324655270597316594250538871246780409211494292414545766605351981550047934090696222098774064100390172002704145500922885378425415961803261250013987194860404912234770548515794541499684078683846982893736472274461945904687171932585478124342266077433469119489679909725974490566039480584069823590504409705973690410641404612769609613610723009345343591854411638307398784646358728660541732024831884428268991919813044708181971415215096258163837137181761343325317885027723211962983314867885629390316080836005062331753796755806124852295676926137768453111771723458287494235226136509921562235149833417629668692899609268986231827136025422346660522888970200482841047967481279018417385572496017155800573411232096143948924604345680631223745257411705720399651008703821902423211453492693039983092786595489432693100393498919868541474763281273080996712817200291447767381839551639530861396366309801669790363665504449531910492601082984550290816974673293985627104973304688139988570041611332066338525429290841741952981348906475601947577094361510836662157206426076187956824083702240379855430782823216291293887573104814589891310287327158409513784197655527548193287015532533702208172607800988259350883028422726934252742617590937444590803301529316045773500272457714376549581650718495270951730912306299943202113267686964020865631322729354411909432062220476395164438497628054239017598725266018243658434137153056553743499545968979451295704696936730763249477396056729904567428520862451587783272776885623510994083916996353255080619262297070683734215467487147590941171624903951686909515576482712861006246307573259260766139256287992809202053000225386900715091852097658991180736283265911944359754462048825091310838077024626670511416380597934324672437381269074903147284058315905579059962821210955856684213365716253299217939253445453809897746862016012870725552692056649332817159879549460795530074064801062288204917192065368330595639490663066579173933015494057917488813093791864660059320404189780154951166082707644015987945373189467273691542085322416076005305211862595826919323987561312497397293682097270686888490905730826041628245954132220381119805858242015953114559646426042518127621278698161517274791265170518479058500930008713049215749333438366059535790362955140188016405175824817834996536345922170528710983066611132460592733798921723444977250056468529063407930458710823276651767361540320456786592221241478155448320905155092931224352150775734607198103318658542625411082059370964734546868185273180234915626909195640822272876458522820656761769251586313916503640762767976072253960474541083415200522946593120885022408995626927567249366451178228184587180904891545237308383462699549786124404331292762033176458454321891985456485225708764534928725391619648962614014008809126410594486412334294375547638794720887454495841644818812476324168885090333320566319859682946379092343906356809810935442677361858252356432800244517421417953768004076476041598947788356724098172407994344995634314899723612330086149852054467609264641690754423607965353080694243726853525225541340051333571487323584545576177572243447414421306929344891419879799153245645683741362243434185628255135343677261128314028572988126082547818431344802512082088260647177080697556738903227919997597697167419018295817042131306127003748604375119197180855231155226891524654058929912425827293613781393197163295846326385741708455621201239470783578468183433202214240474159900349207254842474015587160240539949018998503386616511493027936777546804733397171980933328813903084396518762375176412696393214276844446296756379943824942628034229889700907761555624599709383352686449343354900073781163443828590711906149775667012292158073466330851249584801960352393228137104445380931201575336589037476145656829052373943420253254126950686275912210086431524576456994709753412733895914294745821137268484367362409764866309732203716596547705066456217286678353127095953215861176447036952343286121271407959090433127541785443152608864448389320395895817743975677936145204858610224147446852431292296581409780785585257074411353861636187870394760857132261887512527264461873889018488068398271794393172629037472020455506515649334932437762267819204883381036491340274298756300488455434026622732919957475442236264093477225264237557763325878130037140377165859492199517709295249615830940596063118996687240131275034536683016205893288668041135811545237643318222975212438176912919817337108148034412552873760887552551126593926416628951345662917887698322360254770341387868357656338399644689229862949869815487290483546469842236683046807727677040392327929006694424879587274987200131573179122299318148437769822380963760247608573972763253208194886698744356241891145381422321576530911370400787518033608212418974388109261853224700930858774692685452829535068277419117301710965091904519270478937577285836428854896317201067448020959859882936858566841191705599279773598605525178089045282289854459139743161447523617624726025280562329544266554890266806209982179080473093269013493398304196458897551942947941297540397415139994783294700526316260136270120045276268367614514517483646512055872483083910978111725392559450919262664357712396479040656670918424248657762156791461262717443633006106724994336053334160441357126675089540602336881808878337359645741318968837031284691740796441982803915950615729648329193758806194452423393983615042441843272610404751562144234760262015755942873663999699162657762806661754602869224824237169090134826207668446611642974470507727052963622024298695050063541162906916098108185125408517914953283856528955259058037728364697327247259061952833426366870401844414074087892732423546551719370148251263528103613789492269667604148103390901361339773555972809757600039454608468167918153647192299108050181328050981324509931752307924334135789816883727407318337554656043674347618014908821280074116996564413500248936541962147401619289851671806253324595641871065465417937397961175011556470511580611856990624516012278225448630783602878342091054572779386655434469863880458754785356413648535692810600114146372775772361615471909403544068407650577775753691656063298536617046201491193617169151413314424781587607101985712250695958112281832078905268206473413814244625588388226703957001261710513107118836626515831914946719271274564615187280307068345366298837951566098987791005212456895219509371937925077238270106601143050908923385687077837919853673284536068465165296377862462371048336655290861164597811202925864819515221131537275766632012212561157736775608096897025499456215203599177848086311277265334594973419805367871965948942832433267336420590898872123788511057296873944991948204446992306804998925368397590477242024160807774354585040772950292235567854779135904251572413427138094277954040555026364756542592280220801067505162063027934158686004777063727443940045639916919441815397163605135830350949009913057146500931511954048504553062007542443946155928946843608890829798288725431447055805325360140998713123684360500321141887944738791284970969498500001174532357735995247855838221806995427752232186325301504980839708989566107119257577081155415239016040217036432365229529381788136878750732618094438143121921233659823970857818325220445001844139295232175038534045659664447061072869340119953913377145250092556503805923760688669474899079471913309422900447497141941018801999088036423315596805386735540881966937633527558423684278508859658737846415372368098361137893119450030870975473202849764973062512979506404534943007104419928072498793149064780169502434201234900704678024318807466842603174666129109326560215925851365607667052426235435136727533099466103443991573928193823282004850768253241310966457448455118447781587152819136847127753499083791163321217885529349135752267874183771985377895646575340526338317020428615204531573897946842409478265704709837268195145692355004210186578208213845526329868553202024295959792185058962475932595913967978395221048658139401596014383145520755477012056050420774680810337585700359697148343731224507578562492491260811817826321169148448448599421498148562004979684345021877291181066731616200352252984990508606855138668912110641258014411125220421851178884209621600418219281429348802548792881000917970913783493727069743682145175490648819284535876103209487279336338627409235300179577470059412562703354056869007718066344320354634244726570709884051771064362844749154798903219234778714918638306142591768611093658384493122931395092254076385103913034563738834375281748291768529053126710457463681439726805866891251642719130651939274834844684988303639770136947916386688290756060602496080010581682773739800507912396736112919948319139382171942866246295421513287771549218974190065322308309083228201684279652402769812306675487382861633213320843455733744419793083503593363794716514609938162019574790896049670876879014310902603874063353070878509808961012579222605674574564422873591340479645677131858573217157864608982160239501226775763757318397528883706067354871748095346576641223018149867155866793212620452564335170164236613336201026128922431876432633120525383724431018068791779561305639966276199457524753348835717348692439735569235521080041379778718361268020018939643104374384741550243123619484534792694998299560803977946406283539622485171792813091219590783065801180208554976646776986901470924286753269936857658788867315913155288796944854851786856502154190514554506134516477083559877249432948983290798755133361419531273625377427862514044338005408422236918852014968431042078786540339015245621194855545911597518284318617831554346383039262298493106339778446473231979470537575558861539372374577814525044206378613223022317514633599370810802847577763119218482397965231510137656492198931802143397582664776827026349064825291966995292683588277286019713815339542717374755971595513740320959319147044830686739876134208997867897541248643693665234201116842759548695960258153432410904200571175877529682693111006805153478752398542664348317535508492118567762424447483434550046377467572730107335234279332217668092420543846517700938461110362969524386343088202765976159978066665549094555082592701777748996707287146279339836903153671719977063265330546953134344536144332221142006355725510964965093544632023611172176174762045497847846075459923862365646080268009322462947257518138709640066049495138507668832010424926845938742774025738573163491555681877168029227428819062980402209390598412485258048765518177520341294907790941584927692124156301103730292160636896699572276094284606627207639752092166429692683738903529003054625904574778182343678915304859515547501829433156410890814317003615745082773572800026074078510383482022173282816877969825572983498699845603554171365238213478666480019507914446019654080220193849325653231755190589675458249744131875060832508837807675208845712249374097269862703673188084659988142251949325119658468188685781167618473807343513836699370745874271241888616087359303665112939926818736597846886014224105111635833454945034868785372572155352211385819444127676516654699185431146195809555944545108454968326357966635704055706518568305742031816550764062435853145568922612881259187658621917918388730483538188087394369809691637884429050820512020918951764798106498158154955318884736773765965303259316025075174089796029625948327933247187031533182000223508168934261971754109912944924006263662901556496515371505030785492522769357127768016157662974755444036862417963602784722728923243391938948704816500205061556516223347078389579253364027063689915602969244487695699082477596583241657921365779171503833085622627178058334727463023855904377973688859855730173633159947275356126852046366125919797937007867886116757919942550160742025741170043186918645198932621372010305707422714132791487202242622793376470326948700731711477086993806941846923153769382198311740940623926099404998871293504576318008860093429857779179568684810410102944195743480441080088144178957631363049157710644603775974347576969842808666512524954774324064237060479848725710027838207556976991358453464131674244491225831037740489005855310177056860264730890590158563658385540198245840481661530166397600367165509912160740871262284739607359851334698936839435392182601563052931156332271358955802556718624273993341121339451790606702571255892488249203725946212410551151676561615318931172273732557306265648705767015913014943610899294280680644152902668943549476080056059746718919951183584687654657352165855620892389878419341699645196976379251791865322229286093368159073398963665732963011818772650803658075434830912215336105032727675206586382198916078375477591123207195662814441075571203084529993690884494655526015910399370373720558514346235054986801122098102159571112162376596094821327583653061385592593953471597187140677809893219878832080108416215292722706769258990306106234287138964296214326010590174337216782277977535542002291788500511527890448396727868946752195515441336966300053342728145748592436750398453273129434709639811604267159730212028531295399628313524872377813990312562425845810869678520018432968319162711734548988552784583896875936546290232005360338000704042416245479825037057452639940978022304940500184380840016969810371770792656383221532090435856308896127474504336779170866382623953108368718462421586544784653556445715489019559901010030875634651527607005910934959770244801639842232013566363625261468390286866148299235434548067938719137911495088057041337207300673089197218630807790156397299160198458431014038145883008546717021401425879814377202460631510107227547682759815593547579251980335264247980144558980773211252030288825100582621471869742558435186258915566986229044281221496715288898805918603992417024741484821144093806487254512411273129895809200776851105837530236152586415404651013882422688042418454132691788038213095114145039536604990360646106093107492077429011423098885684988983844156527094047558063921654544422091293689671688352014146138942739720449373347278204384352312713280775323307150955298231540522931982060975463205035691534788344606815414400272651756573254960438103263914812010378793588098852918130728322423007231329790525130794942560674487347965047339175583054413034526903220966960255431260427390117646378655472753011858379624658840036461831035898394713629994687317800428383507463572510521708090941231200548540515856676751605670906757840046442117732657250172582775232317863431489395498028308157630075377991676872930311580754235395808686662691040776059448255060765657122916253227725828624598055879432495013423145673926443535945630799620664520712692894873450861746153088717129048213446517799389669229061935089184991056658867382870207247116931063374938048520926894226506640073714819641046336552340880090402270650166403409359205438106097811900348452829105623959674399996738018567131793722072175766441423186494070970136402412532846456157618126042583979852767558774071654764141068278679806541955541869237666386474850265011818392141831375674275737842096272317688774804057694983707268726611583592462039686938154623855510119698150996664389627907182761492359702013999291514131915710883050767203267250945924260363614424271816517525864558667488452391252841896493736695142155897203660217221614036268815849511880219150050070268327011360235446432322011576653265275803480829904027357167588234718420079964511139487513386493561063788504802148826766922712940155391401697527362492494762007767471172726007764919850030220061977139842974052847763340058288680288001587876518512268565722361761328487541513076474257112135745985305222382231633720260752620849665429012867914351128169857793604537525258910242712751560510779472687806886949990828574097743730010106759001269939496281691242066007412278761804443987460060757145075684464619112007328818415886387964458187702638679597109160669309672172923136108359657141591221690400163285769586595839223851807784852126870394209139166247562068897240190135903799399973583697009783021433128675197614905251747632556145092256347982064946673258759856766860532067379112716046396890662918052898461593364184032490147922680268654901952919376038656052021424104530906105097062304628998178623514417103845949070333172882775915480742486184280760284289147229685720965492168370605671776026851846877993863188551717599362712296723902963737746141900448673198734528205862058548345827198628798457211059413382952726253827975832221194525196597830469768531719280693504049864439967760862291479306758519439207343174835194366690370983722275886425743500042843214718376112564322337009236262100734257514548704586811072396757935294775072657339199455863808901066032945176520331994185999142412898921781489106506119251108311204760298810335632716954071079432448075827091273243406793185107846941666616945245597965649602481363015991454519641488731941559587872931782856608821575211391650117888208079579809255081787484378353900118927614408578567041509133012192663014966535133719943979119208800724591622988418627750618572769339578339596507775508768261216026008875222633939511256348763141573211154703204530686336792522388302006774876306884721273504387355748883985524623095985239384776186494679622413863743725005767966984072469783782463228544648813866795156951604749015561640842144803138554377235002701348518156298627073024428303193381692168204518360328520607912224087945824695346653304390111860590529459241672668555894414750590659510812760445786564233052944863270998608929206261674888780147746287858560839358663361433794369382486023646609307267929430122263432914980061081760733438732613268881431375803398118136802589009760395691759033920559361052738729958557945644883766674553854782691386412845388758877941378815288049235557146655885561150461369076075329868487732238747211212198901037041006238724236491525792386355277973998483121303028616663524518280338291725795133892921109990947460809764029757051100416277633902339467074665417798900276383063892087404253730736836281923551298477150983699673063194884318977660778419541121786091416766561714041192235059227247292346923390363245901129630671590100853794185628325618726110339942066958435246117779599221051080040406720376001822841058093415123303081179567530546731357211493522068598045679908068774110929373508054086245899106386393862422017848095552011144610645583647905772967721975493624212078836106476588415991401549737109950561707013227601513005731664359322094988733685633400478710499045669862695196339632529253233032999236428840225542931811623961108646008916252232141641458373830721187960514985247949623507243096908500254669354266457661087738033452921285001694217754800617796602791906742256258718708854184356290282952560096901074321608397777946838332265939286780917245024003474660237674236256430694633741233688622101335591130434450271756863591871185701124651486182520844422485946556342598498534402955675680119939265180568297210779675253000792513273683300970019079317615359280293952917210397012293252615910423372969643553729396943736598386384204871018105019594277094437951011963727058506403210946606419003813113763831321438575582735165925676029876748000252559650214921339751074751781000914108837668051559535886272176770310698280454338546968001320672622234834578172611282273250734241866939155349462273827589501053566959913219056331903425375075747486945269473921268104067385359139810357475251456621409603488386387902917005309054627206259872819584502208775031178559976449845162036470630390049155539535182133514451315982512506284836497297827366606137066217276495560395287059599572357651393791992832079129722895986345779105102230785336387331507808703456523217794503341998171959703363819835603214228472350818153345381971929811656045172290870608206341947079705984238234600219347491816994251244605598884522490273383122881123415767113892017404613154094164193812402867489454839938466360126451077369013820932255445339052861331718079353858438358321945529748049733085051689224919626828951553492720197541598034906030314672529325020389520514597349180007305946524137282465769861050342765253309460381009513419081631731821366348859226233447737908903758584429268018719043145513855653014763925273246924723150378495419950228086989475453014208832245130232844732000242921781182074943529922642325093957632968967500829658777457845018366543772777484431115493505832539218622964603278045850295067930629063879355508056057310414049352402586549013807136606353310398303751843153669689198873282776034044084403153652655559003876945981305758961857025645496525208073399425743174390581082396663390797634700013514382582937285085267418862796573616727387337242609093479164047563390362829711891444155786406786256677635755877821193348931983550320674236336612872092247753877269231343156707988059382228337558818863933051955465628758640934064406606654216387775065533307277187310560974053088472226506123373431399398118227661220190185483156714224660626474203353287209890146382907557079339154510776522193926864396682606840311127481567676672124794470452673410982643981370354981600630302996868066579386477682417514285260777957863579205732003687063705331225130423822687772879862322335257312424053712162651012182328608635897730770294846558909071704811190579835076410545896965068261521947649768981193352342021766948631191403472169985500018408699034111675539515966901155124775466684369802755987993503218642800466432863283311446464606758933047665625044004896076108545105000193179613940866888451385841549419080571640661777394677111201307908091704441924220914124250861728653300449080113568323785115266153220534633300001971983212992296533035877575518654821694695902741898587366726726075025066333678312249856534087053381586125694889236891437738703941329232062089988264461960528481826154539272711587572094097321572072340790250776560501740630554683433898558223857658275843989589859386574340732845054297188601446502473558130654217054324635567439264733716271562411817106586476271299504961694928610611251579923409159406409982714601126475524060830779863501449158090222397749862069635296337615277385214825452078730860160701377063966310072605627466308499792201357137614756268016625727642667333904965837229873046986283012551448185238244198478543216036029080865637220204841647024245733846443384404292089621110645324231321358307129409860102395563413971582819701587317899449997473437445567723043202679485474015931453526224452077282228146948429116293200271543313978168524106299537064854168558279198655411051763205227789752230147260549475214857670709489481831436366068152126028327161456181233341598186676400223021673513843993263367194411550603498244808186537748180484334726305136706982003305736501554631819680868890709731611393806030668601430601146553115758718124245813238820569666787546086208676618842764441599868881559935150193353288410262574246933010774226230602306639033372574161196602924065448142246122356625821846371422684900725317338755827887289850550543319364062230316688224538498675420843609707944834448943914991188601319980957641927856159567661810236545024069095613698035521306062298364797266359122876053106461112943247708820378155592261228418088771373388831032268035459796677291967213618799432199045454691610844942769024035785863849160046624704190002155775216609854045443684728516147723661469799018989249639524957457825940576759184277116288464220986674558394130850190482662430374687749759814913655980121334435130980254089066194892009844330421414362129451361039348090938892782429312837594850605327396570029711776671830091326414772433157162130952498824006981620453257960276588056235057641398763962354511144859383328021518623664280659547239626047870402500082140677534253994872341566132932498570368734367571819555596693226215024259751951898258900748138056545697044857649007645905702564510651585760513681644221226688857243756727375224637310381073794298133393283223836400693847501393163975407315608824913136513673746873457131288430246083413087487762918702899931458076505265715032328427974370933914594586951667925333658271444700823563434545976286845337767095270731566028604671572670045405470209541425617367522894634054639097220620214747845034855977290566449299383982016129401148132640360645520734989731592939859035001772034752466201269208435088803718419181027628385395426790053954351228645230289420702870033110283488470674224577316617865279464644029453030171534693724876968519348595828334225352659847447175186498999591658539069416633685588157564714631098902122084156518372633907358903626574418148418453450110135410278869951653991193914564655287054384461992958663354053053173516131866180598543551767827026056929619876065431622722434770336200911465066645401563221840739448214872049202031239573638094561378171570364054271547717591949240305112073881846604538284480643599353885577553474262633883307984723084686963124256058567302892659365832269645583959211941570385216751016518464064917756065637370873421273281309815867150195920642110768345948040481837588870006162883963260816171749261055952460896766176260374221212344333526154896286166028574562197577178880620231304565905806041269281116624618104028891516200491565028233631161705438334022224209583740957821243411723115531373599880543605912021834544190426269759353598279974872056362257046045565210693817087078918683370286320412325035295199050727155219309114377775214321203900998560883578115035498775082442763823424383240870280059695268019926722205235065954130408361510843439397277499188035704597007526118042781762112994661279669218857854436784380936355320084900786648949978749459624650047354991912630936595735207296031233567732134485256653952320450954598279848475180222422027814082577558105116993943119068266406021104974461339307693694179426464310963580032810584957395034107225703104103890836497901195443847816632344950394450776631369796457417279431555668723896182708378255077466894911472676738944484290347288697328253555403853740635830910101776923459670238275308570722698193026314411281998236627600208169537059360427994876067860471263837168424633151270729597954243267997365263792895449286208754862689495454199031317062277826186957507817506051577371389174576794391014821901202016629489091647433107956266906085702531547832732377767301796922502812019783660987166391094360952134377625395802807385312216772301778860416246102901055188133437550233282493900791122210170895894449647177659369901406365580887907706686893177263682534349867852916177525530698834816964066356048654262548689597362300135895930302815046127167171200104653742903748401553675478230959732564717846843503844398267129701032517040806648669089103070456353834084747131039057437965205860328379502258634881990702379925731293544166935395805299532621297944322547406928617455094252283268305090972682934886225554886595496916121150336576546706613481549070234384315882790172084948281291580482440901655712183616410355548466940137113175925192582124440993897562163390440474801073564273481314078276319879671324032174457749463428231724478170205199645722632570776160369403505331025661237599332728421643241996164513223125810777759791814440050875695684764201529475248911083294210539576151467649772401688567549678019481456162614214433118685540259929815115457359553466452022669073180028166860233086317355535676525641822523181634339013964411354048693715589064978230034793339662221337309293724119392245170842107419967660968551316966483535902262809800354894128532791772496487833694784656858117931813035446923705761265758908936959392271242693310597736164987749140184015018299643328691004097891280947389114802287800600596285190392346024822394869643503876016885790538199411442587237313925577198504694984673476702388381837180834088524982671479978301812367405027593323206324061187180047091471139235965073453328919882753017833805939534526766843688533128559737163113118364563771391946414754296567236914607997006969347210421279349415020504574397608533419381597035876886248253531832483452235909040824545925917739541573289018997782773496851363468368720953640621609285947246072962339551903492988224217478817946968621950146024683450856159918132588465797496767264391544873107773770110483240323422777268109027176667245637616401668037238377298791867577312654778288734082329128045912030482464384218823400972853919407561034282342336362572542386857801622538871606911236969528772239995032136011608512136872598626781875992400710115205855243363699162813122086227766129766124773141935404616051920650496784469856477060251419462429909370770748351081441781687852984880818286093223095729334581590501193027369556555863688124967681840376456986824263485521485262092956183214928491590041014072844569984457639779499680762650879259982732096291362220356087227729240929642492952889195683055823691615423908120825667793011177724658309786056087155839033815109418192906593066903789065672592398474334276487949214549639192347616036448340275548192140772723311729464080031480021643707211946964177419037485312574801075187262088298178326275629419321480166246804419627208031749457140393669994652772161079802501781466969175758424725391902995814735020633448566589555422526482356127555456154773012884385321382203064717829948510339914659574492306956268202076024875265196017539489944957350120400343496053747755061531661599258146129199707017591740474066104624427591285356598185282612817829644524040818637085114314640090990046561380794052505923613696909148498977586505339011088395030510820505081577126390712350098544185203970904922139681327119004617788428184253416963833705644824372031615273253321512353027955460074269735118393037012413704855566309981612664164562113804485777195953323244677094547127208686745083189713765876394247882760859173805348880926787241358675180239276257115810620627721265010833196905784880726907631402989189992622636496360015514778346011885435972555639195670966685246795325701436241193419210383701637096526110287569161677335664615923133604290117690435640351276198614791553579214995823617261862259779678583861157847276145956295361494887909161291967372329460350328217754814292419328057806690482733389454284126724607197162322694496407741801708185719724538060203815420322570804073581275576991267656520423572704137910635591619132752402519300803701080288910695784992211014417920998478481978041113303711827080512046584136396592258263709687568902427191556095933996008731770345411456896839196862408321539465624278971035267978968821639380251863806201467125337651956001766901156104934160834743858040329775119551389659422978367770728082800089199604338572326338778263516468882476384247832338439873450544751497208283838926570998608192737074427026579461873086619541267035008879946673652604878590290609471052086692867161550655804431055188362438921585450847181097219179765152352077395436883378926041191591095350064759227042739921690330114456884571636678905662879178929907948928765074873216406552898467053536387069110379719270742419457470787302552544567593928374254736686988992847025352873908992040430526137491587264975428797487983914800222125528330660223974331886132861084681026134928158964945501121304557704072846749779443995933026793133116791335690847026019029036910350782358087709530815222533688539895372832678268866699556611307838502041318136734830910447363795614052043413861089610412165933452526809467683919688485589664471105183790465794902612002121983178121339625365236138917714392318340437743146478486477548428459063390797353556119340199706699712929697742628196234770748025751442470309637841158949278277667575046553987125756822669232656585946102505956911076085986752265031494507780587328400455763247859097280624340065347642572920834699630675924677482443228198875085747711540074125080618295933077211205923944269907851628063885543818423706745397479169956427900947931137725901734092684887116784794613812345436643170501901314265189749123938344044128485948541163573482624337920846664214642258156050309359726330932710734313675619185872526297497683004170105354340447601182398134744417355365467788280542527534128634744168293236777360809371072465195610980674320746659127279015398086974595100139452196350489321031390049772278046626930575105116256256624154581087200965266537982177216965131588670302907140626466748337462084827684810022264394600276114346094117931487974582483284503436553312331838426380360052346348672349974191963618944767778157062401858392149240209235883090193443993062971020058353226020814758486494081859245114410949062308770438689492588442896057067888031224097606621079198984806656169166072798508104602169197776347240461153242805556275421765266844396609393237458064659142400646833099084574617099973891652152346298929246698037437894019161910124197717649227297562598290070053424373067058914314950405226777537862039317879788382383643285178189170622788190667047075658244080066859958980797213616177520845080010020832905543923085701534790069767630292017580974899774465126367471936483828505626462697271452181897632008828053520886032708646355971355109768676081401419703538783126826466445049498337035350841704659360750350865200515579316087169304325753824791995209240909861923694426910807392179787791210312747571727224054656342974939891488088062286105514500486401672350026146515492150656396118547449110936694426057149847281074594651205405961489394818854405919600455943003894898493315145417514753532075312067269792065018711146503176617474767791905534966488805820984494840377701422841708457896694068175220559401650273446061474162288038335192409195527391438600050062383376235952533782391912962381897252975241594503623994100866733758272425229571805065521712643391470748677701294823318163824818434436987288083642888861157375152768759689879835568988076890095336378261023674163106084855221843179493502909396050062350773524404448830164554834976724967822415677805900988375448904509936349048049651872629634696976512613872266601296833781991151668459271528903100222433641023952299866438912408535956842452783122684043657663528694054380731260342080167773740077530710388877537420772577293649326611343371885459193292414106200475215326783762634377810489339145015065096602536261837446295241550081622993403225567470459303433934071195607720101220909446093776589903458726811025603194436291985067558772420057709146423172075238070070629026508245291717379566717864113511168552423447899709714958810068237221577638666646720178904009572357999218852329393127380155039811739877193132691733484277812906902469289791854180843681355925386802485982841078541460792368726085115469102870829287602890894418900027556227987997776419853743885419840522273007817469054328553665680931530307147368552848759883707328556086445226657721880879611522693750939227532785810077221310245187737965190932019928191641108716711875580845427362583377623710097671599584510282980587764662759266688866118427883296979752413574654702932527746653509918465277890798373732347883561028665872175671910334760582763140372156012290594819535645503839918464267648940368477894681027316958123877536220083093057745758160198284248107581677718607527044577458142659431604600795988493376850254125849019630093615556091724301132340584241323278729050982008926091029057659707980904262993857570193598172425049884171903577493841515723238938474369185476465114713753251188987180295141750276531004232207818465532316784977368400367125056371673042410747412639603075534801874625004166138441452882312105752916514566373870415616322191214213810060549850646173702512632733279416863614410551212701809847187372270444271233602836497743572309555804668829212314798765573419446871857988613523970047648313872936977119739920387862335021038102043981821607814776029047414912121051261024996865178295143477913729074139013273122629510183118022701027697721741617044568217671624689615585468441744982331972821619891398423493031803328822446582023843959424353437494059326170061036861941545807008698678161211887065205173201746567152804288929865665816440740719242103951184258251786344468280642819449102474934624217527284589307769943341473023714731262621141527736135040284829602183865749642224680998377823697255828283949361724437020382943990698325287046660724503941175746367574264141139222371680330156004062976528478694205351396564168822045897664035420070318958227548381167590306650742853479599537931579220955685849099110132755041615828344593564358680666560111233077279147230745733311759582274801638391769828197840999789842453436958755180431978129638745121742745650245198898311986694938700462022353611747995814821064795485774570660833883926004239621576077379624918750750636755010670218738209326923303542341054903974521433311765418100531883562065159910503556766454172125289520239888901388677593262784742918880196592759749072319984453847103489845119221883379354613181412593427892383353171356619877815035134539685762552666939591893635244232717623364296024261976050006921228491372511446904975672988639405217872830460971389623947984727687166760467910710000175398021539920176839109690182634107289459071985788773827645371541252385387688328128181451803352238521519819053210425801489402072084197430312843724192498727541208556178027131146531132942088465471685428548728020446765038835369892801458359873408374823696160605786208830563861990108770163013033050811252470940391413823782353230669694446181042908643183542599679687134625917106838686415073695604455728630217896762357018272051507642149959135081181138110580082582108242379284881242729213494475589666735664241911458365206544520867212935529548951753303636599402282460372625043006017336048220194828333721090225845086934371152786324627215146093614290113417083964855320286150443744919818411201429356764320041324103634894478324572736697369519742425686734952985260893858159130869429563901883118680878105107464446835640913593824727318764689745521848893120810872477731971163153096636908395776262836948246135265817444829218991367795944570061310689625078945036816020898165434613448118762010691226614779117403587436311863205629114768354066264607298013833446573603366669883759541209066671377162455193162811229911423365320072418060760250954698686257533876127875731596975896240075607745038044853662965032467125834864893376474903432828167159797239892173000313594513346531219989637748064907900831634724467419230824878538848907685983771570992837006727035275988217080658507815923675694654048236994154927188809456096648699769618864934553891001625909124768754886976375536772596470859672615712067307133256122100600456891639258592372251068506893901813713927521503434851559894096221904932795798275419328110414136625235434072123062256792557626720804149724251062858836704067667040942139721530565502368028242199431380836990761850563116394501016017589424743899567040633433388519564222565395423432137154138939389350777470619942703402253322568483282732161729388722981225581830886443969011575421048555504879685372856906326376849775467497295384899471627696374095879990541770731668696371132184692203884708940037694113783292679261196958450571327299766110626680158622854720968683695922475095803253541182629349744800400059462016815041215371053866326245748052748079608656829823732104151070880676044376436486209896944781721543358303246008877678240331845324068313750829791170311960393130540767299499129783904375900585375810947615634097716803007747248497280905777035670799867027528551564798315595688326288356814182097934866136282132217355995719861179267920460535003411850901458243018282006231896572012851281028947457729633656063744975645058455082672533205040756496655743684501377979345760652750685189987807147991217700620191878036535704675754911718405784364168078919829473399588357816434757253006378182491488518880259684884045884068964528332786622766219802005157249511624797561643514997850343054087087495570494347042755649802615847969947770123588003587563451864161126021851316895784599996544032878961558640939502044005764915369134805872946813524184319672470022164931645579845801444704735451546456617754792540733609486006988576546467028494963268642507166936115307755912066133778429225940810214410089958379861495464087576861201345271637341375308922345455783556563629729463026253942165037298927499516476159880005833055995145381833885940888176828103959936397064791690607172471724571259367385002243795437522462045507054982281356885403478203154573177378889938790210643661680208182501891828617982649389850759645579768665235177164095881496577415217044058737451436039293515893285900915616323815746399062676302099038604438079906247410485603950391108137284614266825102811406505868599041412223891840684803081458585118608487486910654324280286035907021753541338257896368996797030533496150017332606459219972923308413309024697401135382438079715510865191510562108422416704301462486049033723581814247854823203083811518584163540466165214399901354510302476765715434797000492020604323678775552863092879437778027500161701710722658795959888069774736456217294097073997858930544265210433233741076597160879006899073820245165222827318911026250332530396603762756902726527978901992373976703300315025997521807777975335690427606842448183189451046155726423877230259805019620986015208836792968552151604008668718654437123838595656954927716571700927608660085966738062467744146801316401299110122724429650187063835727951914387418705597291765655631803472409863911806371794058700877771107896916713984328831875799729769653469946658052951123922389527341209934629012732575989978534105987825594320447843330400082739478134600010985381281444611948330697130173841686522264248356192337436479942760644038164233851811838046775794657146349072880270032046835211343021531085427465152770337403901922327108254420002194030533218697050651538445843593032828061940711198012907164929872976834499388455895414296924272219792257614540339218098990797244596940162454577490721829647458483751880818790103921171714291781475309919369019549109225665145592810848132478061703952659869151444897417581596075172904217722080928627504984575302057868931501551973138987771236689440102544627674275999998640393604756866401624033551689049959071676282669362446444171296350600524115331507448136770657435247049193956340914557072246324594243035145509140334799707152581243282431380785016965023930277347114485540786824706960983066184732639642150987731754436614071848533084778227636661454668665019155960525915664937375274715171940612964087094759651351538780712754510432625811981665378246132196189878797286312683930442482654234982623065898953807452015842377133973475864152770377757664784540163841584775845994024177675156806997843986963050015569084401642873124836629236005650976200700514832816270734325499799187083929555190472904787831851119877534122970729206935023460580278286757894693360144780783694969143399705912732845029165499791892315500670971653808320486989781871744521316597058914032391760920133627477512822999342952174984884730797429924101476114930670284970398735994577089664715745093726588190309255663603909885209313355372948157940065560621034190309231350655193131170384291195800432783460051155176014450762345535358655517224603392704672811165490746469045710245069095250222782928055294458750577645715677897031499244266548432394532097520772926968302851588786268663724508849718275265159545741628011737117772735381080107121297853161131001451322086305815362460224504979692763610239549833813738115096591947992113459576681165596225007746521703298676583351744878013406632491272960297456206839912034506894358031276823913536472292585140462946093464255168232668945180221102427255807610004117536403379840232787704405306588237698590218013982275432389862711309804376399089122348203893006768460454343330226611182211753700918441374610305938395599656581694247339100411203250246623510036096189560808484332092447786560639656264098232536561511977604589925232830347069807520236484075999514760929052154244681628261902081364566310110122031236405057998920387081429811693310436413332903772309883723508454905390075053420078418134523690904108735997192185988285981812014693960594893239036072925648360214470492356773523394119931519335170710726478590026240470320882222427399228999476641727974136970276513071908097756810742076217402009548918617920985695417709654527775410872542575145602300984309152220682705506911226945715885755036416115015469964618180494730391671584048740501603894568159031750947507140483993831245872152055315534577648788783547286473308358384182284631709490283987932615449188477920363734936785905293728834800815642022413942757896744254511432310498162297226795804177332465855502784427937002177830178958510861671530232548155539081657463027167636146899902496446511847342246947020329871030302529783224558639388658474920178931618195401042631580374627628856504990277702275018990745812541497543063483465962947582316391639253819526089506065399306082532979123152907960221136568839612040541287728404717134544258759526865116634300106133528305949139317246637732281995583353163722182715453515379419967876850454529554281078031672898088989513179980607459660661516407655553840885563004776021600402684775607796819939974200305711726842684551777350215853641364896630432705919885060054052804757129442019343095861400318007157950230929857850448882914047334893689153071646916855108385327456344967185809267171856795445816603526875916646470368512360273974130576301129667629956310258094327949768332454654234974364289919118707638706736885904063316822071958373992251638944741131463003998763993858926689938019503369770200171557862190680302241954884916618585156744222725399414780180057019878417964453167001344990888155693840500423154378484109368908703643284008211718345827748977315772503031610265388190490453513488055560148563936133306335986720731244671087771408250561690052201562260137397069210211310141527750213152407539808956887000343567764976078284402982155875172623277458948448447786996129189174766482268010532938724984870936688860969620102210410493961934026886143095041121279488174781594249812165488448524630728319427131756890064198773672694532928685331491432621083508510508556157360326358510822786761272169334697641585202579077888646381902382736593531853828245669749997315214426549699362250640952742806696610813248288039854914101187988301407799178768244161633698513511884673633055259839890055587064882816624978563445707735206364228882764212519660145694044924801019663721859955404364476045153233170750678962540746350949756569658590748630656210778834587641882886295595870899730849464208300818993598466035033294260959522353215076312579501357301039651426391082888829887391813117079028142802202435822532569242986633008197618915989212823886357508454534348300406103459551048349819053754645530502228176464030850510457230345672150207592653505577985413555499400364568382763079632034876082676566674369999280515560610657540418749686318356779361915132132063372080424613494412261335609447417256794105778169188607924999596772924585538004049402583379680336206700735467475259421324924969516938872031468372471590653052146858858916303309189522965018739444927798418788402673779316826901370542456329725627961627509613741032005637398650326325749948582536416715802015258637815421190326695789314912837318100604316244497570631419306211921833445317810861974585164573797526145507288977622952370563680350759588299697325172664292895521371652411109783237681856766780808197154221118495264105235102197123949699422262111777845251197192793382251723201934224946463459553602706749437483500275627059234188676513087499025964880031625277050745952612261606677946363601771099360801601420459929862815432812620357257029692650610199911955042858927308425983161915286290852665246354539741379828013788538471388570589267263806107021652004898066442570184202619449312362595503544783911711073277018575625707026658428302855401408043725901900165546349922134742865161045193166367960071036872120464791179192711975761509588884066124321513132796938930408083242699622686674735536878206327800836963773691882198731956562489765469766097961971009019567040634842692110207402556952016348147002327301628674427773630450778009378194415259183930578877540955728265787913632008853361796355146128100682568356206251817484644241236957220104900258734883678518446046091424146636186438311764199994025483466542925800886186842888117733962231355486771999342656867147834592022075330796473852560095759032731513287417289401515341811494870059055331783171196849860248650730146039609697469703750423557449563524576532511436411676381473814094130532201473769230212989263027903583752316025664930843251071663546062620696619788472570744438272598155839294415880706929100865988848966863437097715267267476998344455077963633919175119812439347210463407199464507371034694277908327078182154766454865690579781416564415281751180304292749550722038041288977094562524427932872313174305149237476011817442958815826888289473038296667780861815238024770232125886655616695409147160008278048325448317169432569989970698706925728265780175686769517699332184538819950458354974238384031043111185432151482731675526544946132727111672460038293843303083530926042453268733520232831624343703416365838813161850142241832268714274354127201485135583018998565161754965181322926819376497465020240754489511969884633277282123498556051291327841297442257061715004194250223727162268662067408665218574388470670800359144482619482921266479080467230461627658753543847214716852975660155348285934806113015405849291069826647447466777913150613262493290133946367797396487719622274031862707600518851467552888721215423881639303279583262127676618858859669596397272238099625388976662348140502875027083044102845135763160366974786391085913689127094007127157800640955068691529879077319515021880090193931315263823524757810212934337253692591005638505374176435027848105790350957883232122523372192384053900316446113055072811171661102791382066185757446618692483503169246342766846755702637252170519444028338574289329260873103373941747287584682470987297405263331378278925837352516704348135768574391867500973896095215440109405142273156111788468521467323788127487279434318123521206472963393628168798567325228560951923616108400274219310930145894358018507024968177932769125292980038506211555506613034809457273687223902069774195081465604580337333444822408647515293266198575456425001091717022356088760992025005358600424108102510861812349385089760744137998226926565064443157540173089062301303599234134552600279841055428872611010630247383283185699533717516628514669900790882250574319557613872263510598515185260073949666786503624991501001514013061556879125277667015441350070408245326449515201351806065844008552804902338246962813741057365812009572241215266824637602613613577573936954098234564269221392038280331135062076165835032463564756778464189392176162543813541698018866742129545762009153835527300323207789128875481020549633800299438049409008491270443147522405156890668628062918358661883723576830267171208751726397616906043567188902287239158466493734989373041690328683804333866011104655888251234113273806911052377429359221447634720352573186390717491232810152133154851135157774863050432639837495455962525175968228928660566650529431842203032364324540268697520779438102437772240863800174562105054402772538856665136760474499827972673162200140346361608143010323222635514248874274402267760162007493826956420145644249226731092978877176851277349335990130120738094045725221775092967619355364334811835769235477749470504412446931773215303801254174640989455086536895688188749303277941071350705272171769828127049711617689083123280464144238313868057017193342556149065490363405688454628627797614330307032696254907500894089262258983488590465619415443154301720076826384477207327680375758710372104838932591223726918464587637355800312452934874216360835209871679508447870567123267609804440527892578947859947736969851453227379322902491770780839761857114566765084044324248987130677417297972453422909791671782952213089691762437440878829645472154695747757922641011437558085214838369754967130127364424530323819140340231802435860747240590849955896675125328513366907205205061074367177433634664334284138636024164949140655944461217556128940254185734336621232325750533268923542390334597450008280887208779885437290051496265774450540703671029179556779315738453361250144778600207319456808803602534019585532445062895613656011324493375629012712477617314899367225678436817713568103596946273187197779970551568029747588079063747029468872710251831264966241393208570758611616613164988978806847805793282627336863517301958476843214563338655341703071827786291496804485877898545496232558986590346135766290200383566020664305419320438369668360236779547915873485657204646709630776005479500197193302351032015078951223282823679920617597169189305756498579521995244133140717559553394858961417229860685623421564319893761961932255553092805821233256017084750155371210028689751728175935418652597238458155699450584933027899567170754670658971251834077327082609478250326644788636061716081365225369644314068378197948813701322319395445299074479324341214325422316061369342992262717609374234866507064300937350991750830929521869815933256896142028817419638799449238397925129022872310199333194724543159353796819845910659573697539040978579464947626729260260685897645386584137635238499765379889279021011990130689097677626759100065008902119832035330587796651782359293928932807973048978551896550094195164911458109843974964257321783095792159398709922159049418132645324896626373236620606162715577108691375622972745046876715021899123930218049950714655653591620697678421914176655377992533193974379000910567890304666747680608419931944590594367239245390664342999423167529712459338083102917335690124460578676540141093908959698198410318303497940675578484298516891459763608358888180072074166488534625348073352259047330694157295566253264921977506158961789412285964927860567902680731247409340927923306437017209203185441841942902199407837982219621999408256647422555533524069423765352740415224117244751002123317892152886592722444636504793335660261565194027058605851311192088803684016618536770750400402446174358791990052435059836426602267344785838190230714977097848516067669555288112444682155662729435191977452111362099731054797391825293635654874889168346427295715086247906369463951872229467074287555889842949439662786825725622230469173551838258760467742282256827950352466467138392294525832368472696409414800113149164313378771777208463911567314705423235282296513149212310227669794561264431346032457817093075556937949275417174066244490318021521899457299858769188641484990366208885134752496522006844230395676846573140180306460428413600140485491553889149517346371629140748652628208567316525393811534558787513246057200747256180436244777865521282656336735603055491472882848610411644628711980826187257193850031681382053762147555519273657159443684444366017002019771711182971750730788653603401577935266995387748014504775947243667088716122892759747479246525415419171971172134063103493717271064906774878796002258097818503844358915522823289031795136956269312850071212924754651549337126744601523641364018793102782356540287729833324153629575360876590125847922169497939473044682465265658884799034103924748509739412435237759508066843203803753995098179568984210381716055319754136876243383486158828819647291448129985317214032993748208572735223280162828650239298200048248283632871942753741082401675454769395677548092391843820437091805142968978372648952347072705814026879037727396575645007240769942891469647848040548536289406863007426431936359595946093415774885725033814841995888522366972942446669283947827613120302047575039315052613909247223922534798068959273192552630131095093793099334082633111014300787579946485032077474329711663675805920092396388891740904437483314396136307504231565392741735222943015338408472175127783570036527272960251128925700765728272031432606367304786318373892074575686025826133647531100841171707970940449626507702738516269350158971789500556545016354713923295114823561410301015465806778148547562056524544393482292974179501008855301992609889231613253680396913113876297491964419940465595632987898333171872590495005881323132014836534610739472776146356491464271185752320493036194020846836746957747833552608572142030924117424387056702766445400940991871616985298457792183836337761082877723683295398232550218075647048852998391676604884559914833796582372396689124082879475706816883829050098522242237848365334085834244995269006632113540168597239254923768272660932473831084853628592811763532246979104896926357333123837197295837611364412405899493086913613657967840799717360338246048272087950915167638924518319887712723937546169298603000229778065059485496976495724021048325438377515327567694284172904703589769545685783231003018959334551647345853060160589933436843491855075143864602895311130857758653645462008603939366092614280344398536882135219218896438218908193003721631945563853497663915147775990768912436057172004005068208679605679203627753588654912031196497045267700664572025948198255174694510355535050363587676491867891421831376927820724027068438346248067409262525640696141013935740382815362176546074913484529721795912483105370906191405022326858074565905412383992773022027354076131086717593577091432357639711141957098471891488708399628503082015572186138706027036045793810932964158783590704965801880994477520515843636007769228769499904681617563421923772006244623729229939153199469351294889021423003888807651070019301828290017073142877322800474646137539919467482298243093506332560967523554154650364334804691754643111386199657927710304905858539613923736000131906559727710973961580832860423905606453227357269743231430999766739252597278808828662030412790677638718105789790488588799024398014899465912015864521264649844176182964280744856415622841775715854965377020607763052294584357716135280922624709546121910182663094016417895591427669207079193396943680080541424015046023698253269228506095834723583766790413867020408987633264507053844899003022465603252342066409171127987043955895887276577099285828192334861521774576015215281678740802333659675836738526120084093936898512036077739775704819331545891744166705081022443913914915599188682693224723767239796123514763581573042833648227117562116172599490254373347172713759615456240815232307769955953134435363331513857249056270604454352299308073857137015235852209176626837458879998977890891050216514567607299383484478033777128498301841998884981945801718167834302764152803430227192095444183283874282418654876064233820607772229961297477970578575044033792678706019632115259593715988606205970598036621502358589208357840345584804109067529650085631077649748269502492193349599893628671694077279325936685185951302200985732875750221443076239002256407864898307282850114762500976376585705128591460506587765774845074613254462349663437945606986990371530434682402078712137958374125344211302641048450292264124569264344721077659016018123269088477894556926033735927323203082323727322782637734708739989304436601373821598624154446897889902085195472922519625970331439468119027503862700173098468607974315652038108115386899164114142192753525907878626742193707518015267947317870368481944020864103570112752031063862205960862645201017450378219447617692086209937768194466920046745471483714376950337965083829403501648203802709732323472078370023767809314167690741878026116543715014810023309044723755290754057713255383272627653921840233119146852682368133163882108233944164638519877027771173835427490971046731116969314288270133433202450139565130228498472195559729685996050749270496981858170947431493052073486154224743524213951210101944042488929403902427808465044504780208714816365389624289159916360400111167867997501813789672161054400038547911863709794980120770334718167682638899928182244065820868286863504610151004591260184565598209834837131333329136779048917694267575400188683129106000367701317227202534869026543449653499836088241002890617130100318387746156229239775787598387459681721808475992925463871874472353739539311350634536339802206454031023749723311574713770821480827280721952006184393993873061993345488591564873549636724420951963129203206972486543039892205650482105320930637548824893460178173575800828474013708290077008712314475094679270740190846748254175477857577833259881844892688260421043180418683847683839646064481735121664907570309454173722521931632945099222785524323686365244093381535444690330308801929299061541391837168585295094783725133457280774387708837687421597091333591127646480424292322902584054316501592668141353563485964073155354409785866598555934698451624027556933844712524543206953416153800827778396241238294281671258582913895563795790665545495415694476247825743627689328862198801091940552583082680055717166230169599003459042481391290473335361830348221136265181418408620935576082775492916290042098921996058704625565339273240474784428882716466938091143209159173828102314743587166461497894251369105679501286313826828997632612736791307201140516926001186240294228695074262565910769293652163275037475606816474003286790035348439874271205145005537593025469235533328339068450464589533241151112477649399549726897049214362812401858393648342348397799996301086712335638905110778740403736481936270497946810312739356577296194657828053003331864683592312495888363921290778209951105606258878773681151671875662475907314970833265053884220714788322635357689829046166193473338303993544350537772533759895365138075209480772077096788874661908373104099850055777392536002417550053030653704744865033316241769468980243696957434211090525649890601361601053767316546170312922751402417387847208212084791706680883070254785094100096613521385925969171800916063154281959842223311066176332731219035900583974889886245232848148990628729102375684392226701135627029602709837179161134573188807827120798941379846440568223232371210213124000675210552267025266067910039364053855065486364248979711439887796192992493011282801883357011403744470482609667575078444413252416907079560385464682021518025413862670319918309408283040741681640199866921914665285640870472225846008157077535689687311467605065961335423868936510837988125960870644954001727253267283420038333763328736954339793398610333579137526178051055335521679906028312984187419885028075708977251334980959026693533915162487786075709526378936141651618004675859010127122276431346975591513665657929761328169231583885814609007134833431430144647774387638496541416761711917609103363863268617450389992253614259153603859737898502110255496680237078795743867327353084223712438582940730944882119790179053323762353362798138325636677228255794907241107908440730454304337459846117883362208897996291975147847938244075754980864622633743305724372182677007129468974298343918267862331678735817792630333445445894911804493868226948940840305593628507189611581182437254841861787766692962269416464246620608701520615102485318963419569163681899273834985773272411163064168531416361591434977352801789917751609880688296811244047156026678662094599480640073613495028707066201377376098556349698458297149484353963199689743354349676301478049635992127182409778967446348134296562145853131849319345543997129975850958761202114454089571921182455097721672059311578046137965500602897317931595118095108811670043650473897310794174575653881970384276491680842610755469305213512607172120789967936225287513844310397062794755029584047873626314538904393602472003513267715361391965886895003140427117108294325888450815160630452478159465093962959901822689009980992121797413721461412036129950744655437178239999048166055154823893034794037008090652177783195907632447608541576911773516633483738171071071927730387407522823881613704769236143678669676250335583363682801900869275352864315628821112499651301529067429662539613079413358229252220767027584951347489469477033421164930706172470672167078346312947639127515848665255131342008637728772788707345144924232636552926932856417804979267748597818176560026930703784696297204136333912000586916744347668860219418612000194720065992434592585404226955866279612921020171800059191276123986735397306315426071503012065114557988040028705452850830252960320927180911923811599933241779556517395725478890134816349232048845003578413889904771565290620982083202828657553306398382995971755917545872490159878419276986160123173935967061999772162570653386312526050729603160180685864928062312000242933330731560489779841811857243268356280742818856228877659744279058551741770221694521225588047516563826346769801225697924217987857348086364466224609550698839530482270611240685112352749272989200961987658305613735711603001269679236082598612499813420517685916095708713735468343366492098455837910536853901030456421004253688743436622825343166193226555671445769219070647676872555100631370604361322797671455977867988762838099293188812900436983885762080340986554123393277480189694168525852538607846814986062302568438963017128262057187961842165110463980295148445055823753342268784175022160692907223418898306026568887028403619907128817916226460477324052469002062981708003549107249304614058483484474549348412390228314567742676343627707711746008665281814757031688712199904087363938301766518437245826881240680812771645881416393898289594397530459545102289384329072183377290555909858633813197236768100409457360441878901022067094124503979192458767831387775733317487316499632035480804967445734768612188553073677627558785898624254083002108461136147957144095606019913131774826142467247298475742799978189143228313715946367009423296747578014175140523357569133786506672079295664667243505674550695331114948749310364951538570418433905169553047440443704273700577206545429778485547951258513389790383207061295452293465286229917771206102797610568585687461316448676872696703275483831822371010637452443378798891006213717679891829551442697004714668316151017774739585186442940288746537160813126208965223993220040452842582295724001566144646647868791046014867381879575738657975203524046307686005562756580566865896812507905352884847574396460705573518071203194995855690071858151890908488202393424623246690767645946607263772020036523761150918934345608868910564292377455815449571112710877433723919764977506466905497627847012581996037367672544098520914237300878790020895335973000140768685946905320528569211594840170719150665999363085731499759668651863824591659533935584335634038138143155718456794251850314031452135231434014961642876648899046125807018699166440450352272154977869883247022390763491722072441666024947087814224658559402757595977755935911615601348963962385156472477925828410256783642708131752822848077291606403235267055657034377804072675382312486414532874273339983138754117437625001742543397763500724652768191412985695692522398488650098138007830601008729197390076727424210982047624022744986468591389374201412126287832087604165649400212543904812076205860991753322467175162150613694008233941735458853913210856043126487120534078057672242970141839219135653481187117646870595691771407777347419281686267757624862786106291430827846481949068080662335552773988581969526339269019100063965342750552531213978277509944546108264275716345867527341493384963970832626582930866067215114337828739714288496623212883796111185007280916254959009779594294673179023220846519982665535428002377751460294512904735450578265626945515672035781563882299377979945265987899080644243521873235976248376710519630929147744157744553685283049772198379818944008210032043139166589103308669169534834868537920910163937894943775470653130510167002660295491359137261900615110745971613797271828811002764757649466804808460984132715031976452637749033216913655861824768432539025361840159679414564303606731986305668179719546987313530273470288507353428476478113059653780726409229619902145876005048961228632789885970745056115305115520138119149753731128471062909511198079528522414311449006433319053373092548977711186711636643169412675361868930839023083548788988213684234895613596414645044678665565548947209572432778788617403218357067945951013369468601422851635429192449385254020966906764334340181113719525695043753754481716767165951643751833668782078243613148911332499797635224586942126448833157568930529288357602328888054340960117843214983195712050872300164214694204060219601294956061351461025978080457803439090611486197551980176762144288501661376509471828674236501437239913710439492213274778939025972977506219061309958574592357794869996001046583906929991663024453978903827484462220178736364366397057425200966024212160034407582200986137398578993759562427038417459669660072434402319100380580556523335685768134891916680925461586204208646598767729739174243913613165759417921907490699986851789527098668401412443248666547138162016428192112765664334874689406075367387528376109825533079555398412590570011364010231371909755637534682741356101712357122092896976645903237935589404715343524065452053679968032971167354294211248147204996949078074013231494231193168140491760874536300802019005844521854156605306110630694824413843649216181019211256930540207692755626812491951725838735135356710095566304065723944612835160636529785838829429868668741574683824263937975887011982715977052502888654956728083926620519812416049387530435731534021735033656627705410662936187220193929624383947324570650388835043199410954623791205843002716230963694639028668737246357050546856213771726256939884143604548353992368161875395959177424529652260765182223345398802707983323494382038465914890304139367100931240307477969038697737172733726857881305693372919036809767589047320027737220332365174709000134947692657347725027977315994993048987208154935428169870345762570397521003810187526867109586232509142547219587091625424432841985554164885299077404110063395152154595844564427569035594316844911833242481020003626869310321748610337245701690078104566187575968614356743640259057563675805160845379954129187007703367164686509488132033203050260482782392512521484189776055955997526503209671045954620062455105965654874212834028400467236053702312482281077784972965116309827188492707054089920516495221006941020437908661252421893589270676073931165093185086193631716673014747112133279188039750679131895747596328139447092209224137290858594172549254009547102546206834257972024505043314062744121820877777286470326147196669651838259321794686811792621872237493209190244534857630616756047418450361390252006257520185100340857137102079762040283073499005088384343488029208870103487818244467646445124433790178233870712505970496565284573169007317946819396452511585584470645698194180858342957507429120148685660275986263014753779547277125901080290782688707414343959092654359719909855504336773557473712191448612818421259704297121243765771220389846556230428895244708428623467177791001270717317282851889218709677730911154847630012139301942352553434840620529720674079334001453097911015055201501935452511819713991067127094038488300102545526690711739982382788045123324860963754775916215449091083507652618499619081846383268654279368485015540075438807511211412897398558540763732076844926230840761418314802207837900263523345219461013794572954738734681358905109346701628535743211720516480641104571596781988931332192969190640163582957553673306450417438634763338140713525689032897408693196590316187519436110271719036096146368957492252503188926315917413917339323827622872886905398272560941075933054046213048150934528605692705890514739702368944651468036273885535307786336794411881875590087564476678199024168948922634311951381880902486177793137501105168288243675598360765917420882837763192024309525142635894304088860964917119424965014620389389714018096760489347936255492264213168863062016638286326201496257084400734611522795368484696297387366902225780027743115944766740118605164044303301848422295903874447378849789244588672632476781282323279451788930840925383375443625059637982058523481130906755321986743248336769596559341027163824691942000294165866536329504272110531149768614182064764668583822267991072829964647532153071702667975030695122705009988439780978425363839336697099843847779786935691833333383342475930962524496858964175236722607624852788966965983803396771422197178674334819905917668310223213222559512271716524518079231317150897435288292456059024625077240428653585858759419975042507280561545407321771370010811309438554947457993218742886392156303519566801891745882630595305789885665891200574027412049983035738460793943967123262872902747276782116659717747550932256030819792557886686832901160738694847119465977370253302837169766302064044751870269720547017067042041419051238421720703713217530558639081271009772148572283366467265008498851642155322812116255313303764465380469767968034866442481328107683380547347322080898364926836362926956990257082618637509070602842946082105206505466502887868041540884158652395691213613154778402678102529836884552753833130631356774975658596786361126707282864276708545649459560604688822397615379708463031823404430139895418122169466118928082478573796698528381938437708952391544132445943390342403057861576284885131964947197663559362536731681572590898481787882347271524917559737409957981925314761304956440766191711266880002526088389467901187624803545302268699120344953735214529025825084626383444881025256983232973032148874332886595835361565609026304880749244668620478307193624887350811150208037936648395738274861272274024466323784312620645380413661864328764320835335238435023817846534173997651420805612942545230853431562545784670978320277466983190848731301103927504262136757656734388282221281747039103344375692265361055901777508550195282871952753370455289097889260657568373435696287624541912062131660223727271928307504521451267351677509525072447278009993039437113531760417292932468690908575641930281209882070793721128939014040348607280065802388834224208273565310405294995931672721975033953319998910694853781436684797586032240084918975131642425711114671259017569352484362757064622680322734591891102199712818442385474837345757133485899137951163712400999321187898622196311540587697393151377603460051691852132894598786437981879489704088309473818430742164261064858563340275495699310403147877993481661570710418749428950442196795305428767910415282543271209961805836384290666314124319052017520250742793585811447422964772721620864846655985154583517013491634866711755479200656664940551169318054747416233527984221849671067705351777191542602172058276648756468579363192543166193101337352297905271655526415261584456622484725997319374824814440350353648753909843508494081741318721477218917941548306404538407790054035946910193498763754161224247770725643306022865773021141866340591471419302893745655574892455167971833668099307884424293692846947435765484203584437505549674499466284772311759371893338151231799785214562242024425208727314866658190650560930532747751177358903569709462434345137046519872677189749896431771333111014262297910966855735113409034044625185629612814091061798283174422806679336711359257411873571411331270476250133462313121772270298838784836808402073881664166856681129452176353555752821898011671998759265978723616261900565407592613500519116705735677701081053426525892083938612859214934031625787513561936089690459687230750579480772555075351926846232472071976852930149947476563179294275330849577942661564399067244649283949814360230346774339437581442349465483141506834704492116002930996090494952082681699179313164303685158245335987640680300477723194530240394647433573405369048773081475940873182389201063116397726401146991680009750157757639730423879555251465500749051738759795493781262873405554298069866590445573530637045191328149918925270995664798720031330763044351815281613055688876829421947507481503900040093601328498094254602384713535488980034069246638774666905758971017380954050593364578277045142678714362477179726825336142765075084618300146130464980190441286889139897976401385658799697596313238599892369518128099827354897646571285688249706311546664567606502029723366142462384400137869796080468308273094408498668880000253832187683354473013597911856571531582710566893722453597021204469448649512805358733552524287972026177168311051046413349429554216053503004615918284980788357837336239845659478282753847845662574255303344730863412951778226856154764861094423879203486923823047386071712618975486236004584537803456800972147238600155822568042098008279386488900675181472420372672986338920114248955056759924414440719312934335246107806155242586459613781253577138271359774693539613385461930739429599591056969935930932649523599224539540757540655951105437006673919522648251337210928048726760455917044394763982289316452694448326388253704872781485740726997410942000615280926984855066788414868789188139797225748512672239766002010651563213556813564059881932758965658548493512585164695122060035521911017401296441172230568466986333200298002640231752314230240132288743437567457691941862862268876969131502184967325659901560868748426830300075094282401685001371513746766943080781965469898674514404812949476621260553447652553839523541257023267214155363946155664204477151927305297924126734247099960982117394969589354902729257040303485580786937896363729905972324295480827066597950629426309249416064908699882208287455817248403088914662358777953934246644875910906790532692190129279807415978935033198606156251456702264294629499713524120438324070010477183002533718101589387830187081203027599805690119041987472052921439934511832304972215687519375026719511240627831718565332300414739845071561303401293848355120556128623331347280618138136401111783371729331358656818926710165016795302116816500811897843999356860630428932179365036999040487108669804499112850814818552883164850592349975611001996685517500725316789968835638652577196478176849481032993206871491002884651116635676906382849678032259917330754945453927487202863302401042328327019251947149369769890468370039603462901247316990211576042891694766467990237283062749021800862365333234005363303731326811959935916865166531127069033527646125950524936195699885366876942949713384398875202056067606120594065474212150509378824922245942053832041865893289181944719487265361016700065832898676362523529019664696684113578150862132820543078756987156180396097435462804131096752388547095284300364731554529598050543036662617648933368732759678259277068585283511337770068139308237847604760974301954906373633329832690228960421768734218653447067969735826133245110833445280353116924977674306208288931210322833467762525319482981159294451640357139936195489957343179311035706178273280249932056143234100643126007213037329292516793346920663494778258247991218054896977497196505383230827683399683255092673108761178617686007448895606218186842405566674776242263365693637681068970878273727196182497924624667824540446227219633239548268308904060394059705800878303016933182273196169579229512490605855076221788814817922080999354344913726102876492599920692304686060695615818231087653075036570927490924486060248205970885357940375663968284733444506330919231859792458998253551930896735888371330104549359525773394657327545328844544155015206408745208772543112607920195906480910831838680734537100218642903747028932149868575607435316588794140923743082186645771102423188803112652129823938560452201553032296654748875476594713890099012887224274929002563242286247088089152779865240734409226227990970532570116681134109623640087602407300122703221484260730296978890911565390975445941242974804509043326351788607872457289235929491904788130386775772134840860312747953684573892114169175465698009605431151377007595614920288651920157834503264826235832999597697083093462982567944670830358377470455882536944393715935920945181819823393018087908848405282323811661064011071805548896056425411808327840488050708135253874140648044305372745149043957560890853959873393869579461291087479778793549762867189987182254897468779234980729190993539297680574626822272102824854343801492449018722817219901057492961595972653672152470760356767086204887810679995512513138323446139417036047421248348034262583225041225569181632964450059301911954596484259809184695913298691190142827369665725553390769974051780919342577852645440989127806898636764647271307884573344856853864366718246498920973394170368943113691555136209154087984402937439891955894346090521382907253199921720011562255786163794987361729925947428465269942746080981715277802938529392340170862766293168566662343801788119397176469152459471324613659874190938013488661157566810146462301836359073446106390655682197076811753920963806913821388024454777158334665787440432594940179246136969336080333146263697869091694036126742583988256365068256589292549333490198743932804733114694924875801375688026743742894013016346995736375605123649232505702967879382601914414329573316745655528620818819638152276850940503696398499976884713980034800947303429084021671857210046377715805095644430310031912343839196857281126357350827990490844265798674140290686630220321793828970486511452412828607228968212615103066830874817029109157422498978861835609426420393216506910947687253631189334408044492244467545301984980800970504208506402295818036962957506186427870142490856201135143412901937082525743428946362180490988752510664529394944988755358457490523988427429277087033624877680626551507789413480971180345326010258354910885735182095503597183714220349766797507858759095721905935410731000861363864041613346898827833870970215468126761695364535507706908979721234710272937557091552487067667285667344723354668714078599887934815474536397251090219103084945249932275527823195746783790461087903103161390891082192344730518742023385788984184121355382319728754471036152710960748367997800493676387155863253519845671977546220055148147999684716962697024718711689365104181572781859901750525698442856790477945427729366947019075269329057573214821123349065987120521520006691681258884502070361752688393906389266894514901640253199705752815770585454055602904305894790214817131808954267286048383102646041156358591737468907740545577526260055575324834070680240139860073163231983458284923811508381381135905578561110226525279159427062943964461653367947210047320590745949652282233723211050286371600038287598445360711101837978138297028305394945221677563328237914038386992783123235516475219741091555472019497896088100269059069274559903370529785728326636867706501946054076343480796297093904463713353405344082260555684295264153745342315348681150761431642565764790105245275675761360356862308638543491293565935606786232715553922469220154261857333595312205315304956437120044991949418183664801586363348632048191776489929406886748383900568395005834740211557137164809100976515844828201445190748717833138398995564147691727184821732172338328915625904669616534003996811534325308296326024785601950926986213952700595943933759319170652399181643271544822475897446675813383530495851828973109968173120206652260307556940161442094044422864957409754909180682438301171739701399290631726083071424206036615674700995041916208563654847904602067625383950054786899433407455721916051234788517564730430896356437618041965058203378873466507830265487461666675830100047160664685013512546591945661215057088129063989712268832224554245346513887955084291614794440710668365333898021007520181966863343844548933213115026644143227439716086229002996526843758538046931183539442124514643265448392802870763846006845275300098548740072102275946470493876314523801743830794825999111379425354036072626490065338173625492918386432235329016539948427685645228200082043109446060227055206299617353895713796680299993888444221367946574972293003806640425023848181233908016134220145494757285088130561279390042586454923123940475429100501059129691195231330334860398446724621520238420335221261868532660986066386642125301718503102229326275478258975256210015082528861307692077400603587362260506151468546181014909886510372284207382337403702625777327890642513369854607009436114731549983680541062157289555837904044343239117890654058988207066406501026828933273421673005428286482363102418429828708150698122945765256265156752019964592128585089743943648710317934346319380645949073346142040970379087077608329036469234559583913345409315495079894536724773379678584345798943336432913577897133435953424726301265018868547694329191538701096393739719045788444352152159410754534475432661263376033943580264707787030250064414772550236712988723348010079464235796455266495741506938202373009056143437316985329827532526108049948196034317698208921290163079571618359051751704475941581682565780635825827116621015084924068694420532045998218655454492151855529430283529394774528117489308942899792648406240991884119784177196704760548053708210125137032806406619247419929447241724483004932844687509939237120458401285170065470521243113835985247173101067629454560437252958129802146719435688687997731664411090255229792400693842044151917265724508104766952568739343430484934561756953499832042714522564673068793615779554788220435158473774459992174268243942773281743639083475866176000498696419179773915088047018441116267838227798269030914233038669698864016569364656137755410409672173350747446376025444443685990907120833491273722928428336346545119977524333710367769367499344388362983973064852747781777221966959847310858306812260712583614075790390360282906797569070312804101710918544425160293945350515951239826707497194686200294841240394607175792275182073817001897670609231866345833143492195448255020749385562792734956953253945150871925169077408980554730765162359493195989051818890343566440067128887307467806337351872152504904011079249634950763102432224997886548999199582573422531378973834239232417751350861376550359937791456820027534877963960391465704207826020806648858821826524709017797341252747835396128529092452798841149939922798097952007847331015206774011419679234759820917899917347934509809336444807436139039761912705140511172108915090935438155035672949876252788190384133333173993554644142009286141994651034169015730050000834679678514343960818235422173597367556959992718934612591901741501153959758107832219984730979708580023601636090136209371480548326213221464747122129616031160570070094701683991824517248762769493722081257766651553267539575332424538288945364468255682926170487992708653970050802579734366972600323208364868617962764701771946543298050727636523468410775385014662329854750110514436471854649581583373214984786564687251944338568981486931086073939747693102902225104022733114019374567723398241039884263599423882272632535908191997952970995193391434881797491425420533897462944659559050003092502006583032803923863257010437526841140475883747916752973144430011782114607602624242079415434690187761557691244082552446329998949025027357042429789351661334472027068169800727527816225033601417408080834230182613618017268978265000379782044861844808826928150061038007854610316081642439774722197520416376636246984865231303846051175714312610120842231925746995646919418216637904252405144538141364732932420675744985999299021495951592951272427336727376657625952144770773102718630440347051064643341716005530964762573617156829013025160664007000631441105676876572840373724186243228866845955630901815740762943306925688765971364187830511880699308661063482409631309243300474679141318886184405873824755142227738494111569562795253896830829945199486431757783939314347572724701544046024036896697468469464536493652295586894094379490861311904517028157814690212896032966117140828199598411637282114022341199576637337091665950357253003743708628347368610897662061219259782315819091896032549373139152894976523559899455230932718098260788923988695428220492682462151808927757193119625541997040544863476593618170850577463058448291052527973953922315595601220689193528738823918889027380470768560638129376933401903832904745589579934646134148201461772654973821469264003359133753167378615065711287941226026436810675156071176427889001699822309575338263754887003114208973121749870138492047455791948151027312446995486631970955701048016172573944283723951545630322192063573132084063156942352344573856480349306028374193805171086960615947806401792939998232972094809819675372163250851807146388771322336965809738197224032677948308378720328661800243938409565490218877458639670213624559544743240138412015288815171322957430322913971928165078765854862503507327678697929028966404809921305745588041611027781454725544256996301571652749978110225039185145757051027024752791457619270967212581551604709312899292572951083511558948931443785644119638375613883449073565619637979198123104501046444181326695949937391771168959027835963289208596672643650757649749652926373757998052879477595305180146482654525905077214031119186969085462110401237588299964431574278740509972128823968700449773505805749273677091759641336457510239472027789989848333467803115332123276123725867062734273531190048414517094727814685360717325983602998406429675198842801324330495944077087013311827100818945399510818000682495593514788306610529979430997462057013052663132688358713647628587121065657243226406076783523631200899644488730856357864398711794666001640875880213493466722310853030449791421549987970679884165991290904485064217376811034477384425792099866862432324541121415236137500216062348719691925104424253166462854795981627361316219710543929050374947823425211366335750739558344253429068771837877916476109328349636912334899103524879861684521518783000858970441314780371322680812436408301740389389580199078354232778289016488613207826112255474251909805865660460728133872728419583531385906108858986212290646712150543078876562084083766709833109525214915231697417809846516530572420472590346829397096869982802954667435639724078928247794712654043374777087460673058147832668372338156033594359087701652168151595189991283614360571836101023012070769986627362056351717227986733071973001012219983216477258440613148493186689128478529927638837247752809519460470005506197100953481580868074754234951256823035708701056417387277672794279051965340803065449761329700447519354972762242224962120308951527414884968410910079930663711602469008930650307737320112754752942834625231044621324069661261581458631985588658932605653511392923430395029832236664214055205142506661702452187434765889261161743582602795845998780660873433413534913063080245311605193761842642695284314717497484491885666062814012376089845463801106686794407251636061163755219304291873113391089313273597747252264145490290584152030571850879144726849826337750996759126157231918305257058858989981446151263839522876955340011456542912042050695688897610021223120001280720454120389121885133856879732792763731726495563752737438340589903161307900741338209750573371341480362265148025953505349469438098713485956008535950122293071162922037846698637455658531455131797910343111483235378746531478174021728354316086131456792646155506261187852980892068412704716645763118729324849725710592827684844563697218060887141631553254124423988714006396091453179760258119439698306608593593049379616575977162354804244989001119906460838946003756405913603349323258662472122045084495829839563924788168807310141259789227256674362129518956159161304178336879153585115780580573082538823056825413488559623598467686272184204815957010569205481310495383377224079247047551894089494001411515921290972888272358667665200293103855805036853820905435382567001722209639976292350751508367866982730950984267493013229673446939675285692422562395962151761374240835223986310108864145533252410434679588865756704605592040080889102146741774709247373241488821745465082906973403927661054594603641269966846735350775041861260414906527502179749887949001033762552477815034682792369698577361554678850890935980583957820856839125672317450246560470785129017132626595342555794953456000093526247236213396045537973082263503223200455396581222803343314054990049282555921522392148613825663688430622339677173736371087420185412131448437460482121543547652303524940275006158278703359265292099024658227284234073051995757448775900958284842662996717645465051417658826545619585148928018723188951296568003001799679166875360787749516705530005055129719318185320769187258621818484306976098571584837947509600762033208056063120916122860098047320356774103762673951396792878271928188731021659682479462018709070251613926794060403669965940053312445628301640173217984711469571345592356091028851522111579108166172965779926912158888228929169581775080231208631716262474719416317689803280848731215556146278280284533908151363546784557263172149349870843609867487901926724458251204806107791973872894711475472099119191715485882216419922773736372378534605045792896041751066567855317550120938556165338717792159469119413629972038826072470416871036102437618769256568090495493692685645261307514427429688804089114415482774466737031387291010861073954762124829080212196752766379570560970790088181615316449639589236716254047674738522260888579443233278374143246420463918662067275957437356289072686750534047825215197520768280335586681620466390192422256723202723457359440771035138184332812780425488246935613946134896883153836932468261633566897446777808647004309868029191333920880146443939989945770830273139818141711303031309012892559200734847021529354319101001342614292881483730268950957800667974079284335225896874068458931340864466010260957805019447458544869324790585600012652978692503386507914475549476418772125390393714338422890243273236451898142757697284140701980605259208295397782502869188048315014202817541184173259668918481547662970248475732825432920517845790826294666802801892051024800502558580881341462443122754267185707740473775055384216984298594497920894679150363170445435445766789433678704651924825808456680682840853423996111551161017026608000302932296386833791649886280675802955649820366276917236836059738686438466324519028595567138874269682086831397694066756187537476882338591605577302407226346002756303762645760083522613664518891672502853834903501889751531092801403304484068574857911474646254946612986457848609555946356839547260390307848102704142327971874405550416534030137235523904811957551108302194070277024803392937587443841216797044376197645885903241332241048191286953074988602864356185016602173188974644390837742606248918550987669351503551924309984083869279920154370078652973427621276963787845942009146058507500913302030224148835773808462819323859918384906846971127953220130104060317336480504371284658007787093161772535991336830386614674537595890600421398070438456850491521424542195563041414638374400942612754692798329381461366513504989613103071482240411857713747377640300605732519189906735616043156331410995915573182164402845184712547780049677250355853648304822037172367763354632786786877273653895389959126937305450064178672068914430436184287442518188911560427776015992967783421303282655002376331723410914646744469586627169193406020798903341568778313084513678229078504857410860844725699338609061768840637383425736618312596174246931205191487028093536052626420657622405032872144926374996724982381796939820466679555549491017973978250652115191555104116626421793232146678631434855746704489623421191908299083211534644821200780558119985935223576902365173950835035678590377468456374566404268461034520702243516604806047671242519128240945344574854241297202155234555708799255943349237686322799072519469569942648162516733065254573231404100579088811460479372961595196837066569908491407242556795296029497921204850834812375918463823061871497920770627992219134546338980644938410533458342634716550069583669903136765769401222017875205174663125502396216209649502763367656294059194331220504540683414907476689640425322141816354971642938802810742618564774874011051404890532777581034535808597386570440795672872322120840471274379721019785940960325559044435196705107528325293453557017510570047517485237222199744195420136080223042756789637365315192715011655883595267202761464965968987579882324715814505403847912434472882702229747447902958613158954822730821688664941291693003473166538531700515109007120741069904920797978670727819958483532228998138694271599722233613679207449929849929948305364927042416871025108529577564250012283783579205388150488937020102840314975752180914547533707861921155905236472721600402769406603768735488130013841704152678162714486674016857241214139899271405597382827797134354101518206680154214721138614484413832988666245069609678648341576528308658506322469609887752088739225101942862479329527345959002498254196335348406956450293393600117563816928329705408701439213180517047148716910157651671494158909235437488217366082056340815307412109222759986982784619984409248604930251401725520873992411511406339685970034936999935774086782030094043434730716764422410249277802300205331907541713141937447545951525953174056893439580017097163532051685449937867541128990113474594411077927704170703897714952994779582371066704650378448850969946676264180100863232712116326606093030137544167251464780677547932114952842709709807852507502564635400414735703226957597186057699366777869349965907921338760318255507695602865955220164918934459791630042978773674930405758545671410820135999543613878797066498169315358505197746252476044817605182525607452235361647931680969316208098669445204485109796684000126631563693137096598528776325842397546598315600427457810728399847169904868874294164853566855207945059767357771215339704208518204190944201902711243022375826123940701886216632414254050959717225923568236358362631254400535359548421534953788048805497223223996972104492348639981353722753376222763155700868928486834187141685747597336344421257119277436828312325959252396899606932623694782480457423399819572541190912157572998669191382714839479316407737489268242559304287482878454309004255172708703178853924837759774833649948739814936900600034589981855511664001981071909774811702865977885465034391876902584311055604648562630281927384663515228635377219746769876806919512037118407787374662677601160496719133878302134208400782221747113176263905364324474346103432389952708154836710764309587605706602119295171164918717847150405449761000390369407850196131070085693329444878722026042497819983230746595524746263100442145287937090625920583548636581062935987974848334833164233842098237617008238829541258631356764887835752853526458172924044731547084356612849397864740278105369285420590460607663128378744102010866297998260210165640916502959364950408329245617641218786362407139385101758240805430881137878351127478738504715494411819716957505386185651260361207297638004609097712197273310165843423224719126620382854960560783414593476572736807772736558903145324828449821668789736294470853127912664993156484302061790237393746821221120116231242276442333049393565771498943448162224805042207297332571767710931168052766537693794624527259960575354964212781294348576397604915363637334371126237694527897115029870133505822911847817536537674037434224190964967569109613597104035275371041665646939208191759610565561645490801314312640052281550048846285194725823127900123716864275130607151827400726201120616802789292068059525428632598493409825927205920392411976882231986649912984014586845591615960856116522788370830512670644343952124788776110053945999910779885064538609595010879389455335632043000903736908783147268708874934434102550399358615920747695764042549657182778918415675057804550335817210889451551913320268392325043208573084044046623596762855628450803185575692571246909231345751400243948642610815430589572985879387623004014269280843511847593501023244328205383542472395813942048671042606691324400476044814073828430301924083393980402539024962182090823808179126511657348039597650486753354093988810078852427485154929166996808942449882366387850413257044676164147702744607706229933631510104915711574036019341433657453398191968055618815764106621225257876426243890009841302535462883398147587562577808857285174314208605382754696474071317270150330457084209355859459765301313219174971528814868003239435913886750001802980015882303192643754111096041028878275500696932587724933824038389397345144124399175773634923271203887951546295874025479192478990415150496002834552069207906756095912890946019820416099771878685217881703976251427852620526192901954741932261622144040322741424300408766932123616934502111643182378863946187520805045624942490938874889459078520827646968064394961352212507829328577956631953177779573411907022817736127814811643678747149353708267745358754682614907438925255377321014666531545756739030109841163154687746670747901787765734971402994237837654748016585652788899470294707204779155238329829078507781546216296899451598191594381941871990232937733532550752699042325260463894309270498937875038871788285734309220144892458639345181629859831115002371695088383343557410847608467119533545906927852479892452899637811055080165266948375522983313642586419165199752890970174633360073805872677005898876031848072207860809050773207712019726189852680343391869363401629536222604137730016441695931973893607038626065466044999943815420482318669967061937089644128859540528710508193910224572946246747396817479319273479211613418207136473317697885039050379265338728147560624373919636317970200389569465542604710902983394980274729292613234615621302138482274540752305203823385901721898189613424392880605340325891938591248782496029363501132271574560243101293689818661818751166153230649890680225820715519019211174191124730822369010440960110927827404203383490037856075481033309495097804915513450189435258601618708088504998145661301681014560925895012077054226398305517777039421257045861385173019917036457841811485853121051394093943731338022565151174050107815755550294602549896690480931598621904572402561719482298363142176801484623974861832202901442091179512405166301626682195784126956448862953632750280073793152239330679207617108220290986579292609710314841281796184987243700665126281531207721955737908329751102130142871827324062506329684952579769596884102064525043252656146057420990870309435770357281747808970487999280258008091046073838750746835579409357047664079227920293000022449880877066115915001425004126595242232566385105644886743397187511658436699975672109714786048417365470333658159952293072143877394089375433478991457689055274433572149370609277984926092023207143532783642877183176943654864451580609579669774660297966123390692372032402344209779044775605626890680493438567673169008178527476297967265919533480720062130537214177040213720612943548080947431722894313611065930309591799500359347634013582814682440554469460041680257715290013838486676419464138798228982967760910997862007287872395884353788765231570906670550327549610208472964938680794667083930222535000148755161214168160132177879957252940349699865112065491041726058417510861365122563736192105130634262221911294488223403401115615130558371210385399317854406500212272670988108751399047571168081252695340980020840237544238772728553240808222644146254638502135695224788093433680036456227224990120539409286179253378418002151112866332787787441929004191059089344489760402027609146737420494469006181434206600595062785920474787874526237701142729231919457424752508623589493724894988069997856195094794109331932014041880408310686473382841208893114756676809038638532501947364722927524773784072444406985473479229240551114069759702374292681298258069318466966561704673477898496945063350988994539108364544307890261266253687478070188963714473705185478106501571707704391494472343292321840757509640388415536734303825686357194214387440429904709571676595128859635756970006443984639470446556257215255582381342958079987063584093034161582358818192734000929018517227754559864844126226590121790146155489665237275254733260156935285335397776933900529870006236686459772615581436819798532531622481387804214025301490173100997795294560724244303550384241804977442440694555391095920964754564267538409288355626469668858017774580897294302536904044353386621730680052015796447296601942315016911981981844606414131211513590853086061169929183030362159518991121438925628487168268900744083083666231055203582768318098574607187645326948392085138451065614089560084093493907570215984821376655361476065400597274730337163904268460111362305423377350743749671042483441210001962941748253149356859353831270324484245849548853151673669126961644345553451948924929720801705858656161637329709820486478539566576965730125809152322528721087967389175493406563053672823608875105255527309050023304470209060295800031215894711030721966361968685046629919574913766648745989136878985299475355472578569477520710015376715492242383105909914809314896515952393328190305908178585513414275074606809339235881324288472014697168856572976994881263469398449377662565565533094378052591553914472907369129396420819742211555042541542346641211537616262002998315494859388265719661361606766689737216265151690811610613521787340568338392692768311671857299666683609649950318549989226669833212356666664622965375174147173107238802641875897577957767067987865457849923280480223229862173837688472664766854114160825141181368888845373009617766190740191253543933465278197066551560804449816897012870562062533678750697605683392954644739086083393056252682410463957637349153839972384108740156870176057886629420822849721235828179620470444608841936871110718434833020393892327159825254324351761635297468547731118626669994279618238960655268976448778004502980295004372415274273008500115540145549167332577135019969499734358916419069102892975271768056391980873943520143763081810625025156409568159525261536357497070828651297734782366908465921033391961016144762066041195530371181206472122141720388942637216703248925193275335280793636856429910046906015905942239006858840788635996391659506849020337521410750806201924754925865272836229202097561921894266378862982604989073511882930477640419855439920687675017114013120320311164548337768869213533825534492225622038303896164906885520966594177613176811386853935546682926381211369262436122502511897087861499386358701140513158572787378154905692976648273750788735949606601462866376847178143806738875066493358019070559156688941715444037950628576919600426625140440039779795011288648228909113026615493350532805708868952405462897876613259490762569282482745793907591690329084877865962183919192157244191697532632073877865357759673403823000034948414866419623785021412339379118171295185798249411157177831059808431619454433738705066264454373099800569938860960653182396772440626802200731240186491383289868839485765207935089074535652567536983966152550904339224160105768276686064582151232793673936022608916867567437716542982942602569478716133262741599736335428548585457056504126464354458873869329452689922950125161453589506204810523948244602870748159292625832242286687355278145758967301885329045307082216371968953758951117647064314147771257542820383770219029770069203775688182814287460009568485207794857116463836827526263132646127096090279871209316085974674795691441083295207549653271913083846143988603311276684147241788403796305394738458689512606930521406768900041646798271923404401123975889544953495595737306469365411903368110382529392308230212884886158276105332853118159862030461220392089653717190835688020791254318205019879036040609013960720583079261386573456209627292094806261559399999872297278179134183491159382574834815473288676105441725228484236378394946704202847548971742412800364887629472627884829254727903406313577846174909486518325923545477634228759923827701920901425218301083346977878027563116048115616212500269400290300225098116253102439075230095444534137805209793763876994718399670706123629607640243891906905603232241886118319058926955548283641356874245538289778850378308258669734347360494730732585295933251446310017313743918052412522564271653202700490002875378519661951385344435034541311814941023584640354747935296349085284938217767844809768627102747799910674384684530430807712733980863451884433231408521781161059420901607226869067478800302368979415326154517216056432177828172077888021757504367316057093334429375664442767700715978442531182138382331335458817648366349947244477254549269745461756378094195100559295357368183233027569861346292264920200251646119809922573542057878253658385886866864654442178328649927520262024352614184992072467340827327208263176948698530113171374050718029970726214012302089338171597808153503634620493370431624180091607187828241798680257577268385273797573054886879585733504688388337763320195863332792160186646986971682655419572340173510510856390686558522395092366113716062641760922978661162938466292436177470522826116073718345199147268960438221335150532640464430852560766179689085394817518755897862393694445414546721276766049981634495632353482727635064149624100168647057368650016583536590245730067282037419392915981034372992822576845333405414934348881820993878826777598629404583020854060991226421794625128456963648392539784998140718490497258312090058437170013899129527712508679201237462909020590389327415156323423823225197427692752833357174785672384025084960095686984341062538011628749358213099891138226829315025018116519922815447027738644477565989652269902941235689512892502417351161897542758130458492166324648274842409626704808004811237195372746754475854296561431747000679700803065187846968160620376902058239349851923556906514893266502231998096649991203538850705287255177434937521747935246971572269010453849794068753568358929088367965154440112287233376747937638026547255976810429619678198567101924657469407715242014966663651522440354347494587247814994561514962409062942463136776442434998293179621646299728194327703133431513089969429301680811563557885102725581852616237785581040971178433208971820462119696166167958958210562660187209809895913531289478721364146459549126642064709754076851121142859405114483629256583542067636794080603645690758774144937290411801793701471494173936902277105231776371800973236905807478237335874917258651822358108222057502246289448512406891776975709105275451560965425511280419791084004961647156668089214046500322031176073006025772826465520212342845291222755388006711456178428339245949470006275171520269147046875343762977567976573820421309877263799467113319689375464681159721603706522973132674941977971939435531700829473171684444310577829540668794949337517490370879012825825802606851605688963344528653279596147741008219115812625684119167818174498572201194983943185491052103037184922954128663982030580370065043626989345741290310970808348943804029638970779154024188585643112663457439426364748762028872115624258749816039541614302620748993463736473936526720372677517812403249263543487112261627252854925478807971659021586374593230413718744950307315738057330219079899132714443362691533032624159348352273070162597438847364884919283085926520083443086781856827514575971127294922932551894720837535556574794040733290293136720074274487345338177289076282411612388804044826448077083292695300859872001183728316393098540873665746444260004948981393515994486610003720801044391765697242962955687707263639060554431664798094390635033408958313582064338467889150974449819285913498947130969905996588142976770598365166072512399788611005082567176632171822406524899441132045601466279663157297540844132499589239171720926743778578117190650659653257014949062177484678764719749874215921007924107352105448597945332315572424684979385960241399551172814207603903165348946820521919363347956490912435822276772956045969080002249556973520138951001173920986214030725611990867126652916676043303923409064697446896081872931547244358421286948879861125959131404899126190552083147219671500144546470978210905464288425853497353461310402519737503035729563977223541560011806912396181703135715991595004491141113677060764863727731347539163073189914271836297126901393310328058569732690034426895835210654036643650937628297708986018023786698260155077632458268419169745225309472432524589411676302379467552904818936056159010717228629015954976270101933278698697213239949035606062493059253425549263360031153325255440102614506843381257415245629060373984351630698802842650744060322783042803181725542993004536016535313916897715806247275497110265451697081207097814794468948336525195789887769315840112714609080114329957295736299008222146480724538145988210098894878236131806031424425116265589697765172232988858972224985360825677034324036036287836966178815834742770441142123008269222251188440413842524795557197459181153844229490901438236587542707070981503997976308002993984942836224120625494342353190023719117622223909755310703840203749105361757004019560938404765887833545128058091759943847181104134784521081116636209284596179061171325802319209568517646993147122553164568743065675418628524983764087093563144139033652081590861666369040983740321959696138496529546865231344152612121696585928194472028091035324301851168812877732296664807177846077762900874056265664879447949487195846893961882453186641018862083316448432962566615426547887856265679047989041028228721087593316317481938833581039487398916385016927668691478996956174226577478510566249046752119920149822847795282114057652984061329405229947472009629148329366830618980084365624948719986106544026206729630122703238184564171495345689317317257238826333222024323704289064417542316339161760735011969436042838528409562598354920508545693829928218927126741879656438743424976572926150540289370319018281637290408366051656836210588692542480435643378067700551108051145739108360004316885625243032437055753906144579961919517366116616977318113515441745895327666356078993598070619538029176991328960883525657959425718326426974672564504549542186557587605853053599469172292078205219083499763984714080990804062878221383638556189560785515747312835938552322598533030280084624797696639333518358922983096629957391132559301619026092927959090748179360255371885731351769162602858844630335595441800725941537909858179553314424304557439399942472667417024437317133589856104772242210896841889273664880741895690477737620991058987971194678250358560278224745426470066521469721607539240439438395343803621680770065433869423860188325676031385558317531175525087854984986170483754510609321492707093284256412673486840836754488951865237858578959324643568482157261538947452332856698162736918295235617524681843806475538813067082776528235005281988223231093443295755259889165218353208882637757208732530581944963081136724681229791293688256377607693289455399388229795685323363564146127520656829570503992188209129818053914174065616382639934555829567946273628139385116347966644581758238239275113858955343193698139959188014283684496783602470396333143462418382405655241081581880553695529731602684530652610301071370844504560623557048964527450414466978097656960059557289367307957172335725143481145987860167261076732600845785554710917949927352511317744854644519733038524269447753575988392883779992006777093851946200528852390607408218727678865629758072561136228952638450388509521474723958012932287139776023338822669743704064000473276829080247147816791200296523043090178557597580039684706438435933628590148090369483606978712972662515708290072454564685874924694688233207783993142196576988818644781084615818824794795006705738650405624672086178127796167676784141075312413824329617969447977102539647866018692779622895200273307189413061889767492019615529287211780691659432141194611319164839657148439398863621699690725600701217165927411975251759177668801905791158627544709049619240014380802309104988680594055249325625337759729598902031758804867964521515196782471502831577417390433514759677962054627153749708449760338140493388669533443003260924745895070600772724119327170833919526220582997511189716363268083808466397172968187611925357861567004942418303634398472185153516315915814030349471373752130053163002016415399380399590063603741948831718200765996361696935864144613853274670756829246426566930527262358794635755348730725745398831887324208017296576073009629631901931571916703406777166065154510452540763729640530018353741824330212620809543889552808451844021199385829799732608088166083471660759982158582466031113325515890389904116987579511835720653929643492411220793200298665215134806390198755247760304264564536489068196857365573251298842847697254681849593414164720876324794977110901750902644472028157737558238304869528548187225937929955451513195226806244552800759259690582330906242104302448062055814046151752983086778197022888296301809632067787025205785960950769188894378598183265997910764184701355366044408804554399582525676115803858065959206644980020934292572809452028410620563186268393381047249501102593680454013878718274775948866419351869451925574552206660552334913327190106196922037474992304177967693550896320551787106666961657344155306131652746885399069463165990972881685935202148843746615631792807789879854889017215995115358346128019045312906933920798297717260341787782184126684830144981917404791149090108992032072037489217237804764684747479493010705402263168030994299540751001223832915276044686302327174586940127416585010226966559209469967836249088607724957012643075307550680152795561873498226790791113352146609844902431904792415263961770307201748260236619966117987545139031448735978157533619096556179847601834230465359988550747979748494280870279802432108678145637775571966077839378178860641336114623089303129932255896898380540243244917349862206668593609969397273492883494957581335327714419617428994724232846376927918080804839116504155353998486791289842317395117681907531640568621108276297082413349740118221334632083111618691992997148505776838808911920570241417424931763358931875628396920012058978149728827898401475466815264333673810043036753021692251935849974331833918412355546308823844161187138178459186476426699843911966052059496700588423671220901214118728516355969897699413969982936736068438526088476753398702188426032154070108796453076290778645202291784969929089103919014982415185863746364706443564014755302259661559643514262008648431989300611113109906868537815194628593284672242449895326149330000351449817535307114953982750190433470950370058404995925917909773088515639238600398393614625072427921603963503508123260592244395194868716507687757097203064608020902588474971181661984030097557084324251827032698350862746378402353186997772626683365574448246120265832785664596470597403872251989013000919698439353776688258122900269425650909413027345670163834188019780394788213917888299749000000650321836864597395585105014444582328708749515416090292115537313413355724939252218301411476959422697710072121977175531717621245123495547285166630425032349417253039964765192464460858827310510163995475847605824081380004873325078172227541547200751729106790023762051653005721563279848146456046745233094113549089576836768224575468451800275251609493140815984000295091502348294412659903077605919401997328747792125152164691029202472014276984574052613104547620083181844793110950740634045700068951344714986268572609586501415669907629697767999202077438160671747027954295314354461480410534155682191719654385529093816395733850835951524104292889984209820221454723242454562099341413081037604834701410808736893403983782946453354874333902994099103292896646270679729726202986309513789131267114128903134612506928426259520835611207103711137260703650083642023929006917954855461908646625546930954561794373838181255487870627207767285482010451414444868179641707702691241114493067018040588348631080230805803784305213262616927154202885062943029847257408635200397949967400259237930123900954416071212690879884337868838430342720848292743707353400896091158710782798420592097111097083009153746090706025278108322662785135097438581458480589200002404224771593990887958867475757570617811759202583771622194733711965696161928232175122385456826520056310511035773793308448390391905644868705682645344791578328660915270839616910627469158405666415639453755729746823760789705786842575013627599285340582852943245840855991797101615218209120083542224331410264683480435465484112262562473331204586294542308068317462970723484933391166881837796528865018915560331772494396258658110949555347948032912483489166214193569038232970980939207536697426535887686856658922002868680959879734203594468545818158006320516383324677740394782594879132899143994395133972820516188247567023059683964918341108137315515180660749286444903013551829751948578962911845366046008112173230209509957310827997550716694810261758216222920294666464276705062513988151214074398543332939466604187795836178004978122280563827338895033225731300637067142139255658008796822462456202733416060009137367246840504025023967540301333800052925241176279565655085704614017751300131398821139899462101978982674831561984143690740165488740580332340159156894860447844883991542889939720551811570084688607168147296437171802157305159817731195811250826909496412719369971684362825032639174484158654791562848336071386547546118231925013407633862942594484901481020308464525014964919386285047969390723850673886460509458190650628426169844894990852200779285829099180096850158767658767114423716386317506544249515929067868182696956009339161844835389284693704249917727672534010137900216079638998583866510307975336841714202631379067677015340538058981246938866086779020869995511484281019911577109459723636884870235624844935606533659480695195751587269996169742023269087202712960697959384390445052608142307568102211671751997089132189750332880771806648885564715975368178932845698682113930231767822589427280485167947160107855517335285827161558811528562145671845548779865521097393197104410831413799007629934730999452074361495633385647165562536226283176618540260694177645869016310555172085263980424703173182956916886277785164616731402890020257680529038945604438017973428705970100375847537254238501746141772807577898317789623179945570296107975289087082400745791425068819540497902383396546423997955114848167330820724883351778338305869338217360183089552968032734118354128914862379711977074998963288109181279275742849077015483093653629489354204714693272575034469874688614940121324709260941573733229558221303052766277816746351657966617176745062594946499374765597335260119135815639820317725881287054119283910483553996726810423224997781786720505030511733058955515572366855189034240239258426919648262185941925997650990383486418300124483609470321095280881337055461928618532229674641368067700840754753667902106967957840044507012523746705452786965864770606305823292124477562337256409470669177315389691496569889625719612594890388102141856251775012779922589412168208337782566439754226900749950886804283183574732279955537762051946106625773914987689014191225065518447615544466426254784763623552426762773929339579135626310511878291981321233445189739664516747292140745738062009162318393665215828287654156547984293317250547811539260063848010246454881268703016487628994406464010373301415626387058528127434400806572843668725278778652461188706392198253534755518619042857596306159403692293082685478884540146115908185887614750269723119924084005288796387021996447161909999891637699832011042946497894863031670240437116573271282420339590278539225071748503777404778513972258488809440662482364255872681580927599698457049341574739139470964325083717956727281058246868902530329815338418438255991863920478591158504450756257073010368304225210603419557714212716935060205378866646038305996008956753690125352410480627499427161135248403074701391242510091136284916157286679144550558245988309859871912766713210069618463788752458900311982728566708703231112752920946212123483148985801165856790304845014260966439795085982210906533900986585809794810408437219048209305131240989259644024664834272032086119789473701994872457705033927082213934014582970011481894082418978054694141300454368660648465599769807982926989150643407748272912757815695286440123883954525103208901204041936961006010308204955619239043315150346915356133365287659983845947871689671257254400431201196717822178373597993007842476652429721894653852438901195612970014896462089849002961221035519551600070811394697457166046302238728617613251238156462759761698863664779772306986017786778299010234783425537944480379280020836776070506517425071048535206657818862150800627396752328504184885301480271915514599026335814959467754687775988779003026689899669459277108043418827687015297985266209713960547361789444800256785779814303415669222112600467899152910771392815249034482524036618317630052106829039834774916422496036944170228570959588725625413848571630599670484153740654189986799658446995965567757939541439137390127281630746365023372547698122376950082787743812728530348504371094476705845833543049244894394165649374757787279531127144715806417463953490680223576733012076810125546698642539375050306369351648398837154366616435395728267508399345779289049569033422192989331035117122881061421644394131627235819097389786187715232372542935106310831970639112533808764226131315361304057035434863445550104328447157345393874859080408873713469393322739775056463809035410588813213680791182047323782763110285975976049630629475254576994701501368866583495533082365220498514971680962359285921184730114320122671758462892722472980451633368956954052542428872287797390393130374968051743324707803244536702961640228150039969473462305294027947615172928583756349303465288230370636071605884156061394948220012780736577157801808551134849399758271669276416444044256241080538143450859675023501459706619668345964129675585729988316079140861156384932723774525717230614797377793551569242757910121557607873219054448620702313175179949542081054142120675299789227446359003024895594458739820347149343012450318236016658900592635301674514208347345493134334527817156257755091288765607270341400880964014937287362234317364273838557158336223032661892349066421958029455425853302758941371346393300067437415313212707287521924519235076455924699832048125182447479134218984661489433757212679343536488534069903579772202696484080424952741710954602584089695943611180740992092689918030262752254408290478676802396234356492562587863573725483639154612513179436205818611017036844624120313699675070084801219913523594008050706710821098865773814486750710901619434178755543622503192347546297214907957084111774494488818322217815332771728048780858620636903865618720978716223992918626098658308166670816023280421549084458290163727813330050160397442457914529731267683502660753857401757346024531775446576020070873347882910114923488545150025862219690343705994290190239942285469854531869905865043756828667862887497060906620007402783273851198407919629780513819800286758909965870177298017503431467343604312746466536235508218428944862801663639997435219092842671367693055478209266343170112683212001757650596124477514208094090491844282098597347153911964864654588146195430298911924896528506137951824951067125069931067536005876636667354271618677977190183052637121369366629100937301929992809276698170870712187734559768275381354034261926879839302951599603153394606386355717688592401518811570064752998083033763064917147459925180184045809126089674715770518485849966108715075470009310644182474726601746275959108108853941623074809879904131772384123500292937805822726623705249880362314010359403149933029697338030058772680178941140383790300128836804844004950209816235066092370436300854518873470693492929948307839237566403914752533435299850733623572589874182738184556293740449318159728616703951092371442929796234536164398904058322455162653633302531949663313557214299218399391961388788983861904290420057246903684943989103271095927099763017909713304425775700603229122233172618193680097221788324822113265099092899409411966799677458705051690957321553205171847836477547806759081670097055832372828103214327713289057807013614262406707749744538475057766857436205797720213381226016955162098241121078562427910815850937094952106549440365205439197447734570687256175180448387626947209996335814337855037025263206271400647845873980423802750228200180904946250208330104500679417523345078670220304903036936461921385969172953445221728731243112791258763344470873880034865095109321169683397517315784287990832604070406079896658120525599151516669524584014590298063998072647605128287559349469495879979407500541887419675579820911697489628713798240993191655505157052990525134585536010843282170367355516553826844115638309485510926475774603443516180986549365323910891877674704605672019203411528388082556160931809370398918181255159622863879486341957568864544494066306708734921707777586661292615915322030124159238063747706389606401872239750054283275310949085005066728075548387914063160666202291227751987743450499598516994814986779904210496899565912592660526367147900013260638578593277665444852882412168691972366581840418402373432098892542643127284703249005153568011619799304915881860504482688714126770767234720417109559255344499009009424813545143021002665516715181047923969401441142137123429321694336768966277351859003514465048884299811330975948016192501728374884481995956835331613393328247604808354773068389520780167555374225159674721039412898154155484697329506072407755869220384537061922366340364149130547835872468046627673640330114683535618030854700560067829279445654992794185454780007845755275980378188031000337403861236844176729865062408857171514581103861326816243893918365625490532632244356636014917985729621389655233439253579934911412162569489410083948943970311530938433607874979148136534447545357759862626502176184789790754645950548301692653245845535001934939749695737086203675395699698619481193428149393941685683456349097618342405838982394511573034965873839944673071357951732902432607027724062111750359774410058630006782631317052206667417751901531225267461761622479630572908403856627525905187780086806207476228408152796655298066734519054077721128488806940656947207517684108166555577258332336151503113252340166694630540307073813007890297705179008985221978217131156893852146870715072429005847350344647092385951036807284993661280974629004504110625914965564476783895054632716458415678330416235587770915865992248923391898603408425953377374126554669855403495817723614434986480878454972843913662360968960129052527273424080137186103757652224856536429912705102190016124638592460120105482199428035802520606481725370577885541296197873670385440270813948261770102284525273154669818132213327526256757735538909792966832247263503565938047170774713709110686683782540527374816977691437019408311617699125659807875342102983047366802676700284106639840591565124845319597438696980796028243683553103349645475892278892755918572869960260475018476954076403058516397232026069118334730590015579272377515930015487654500279651363370772376386617331559031707945776766928847184031318291188115246508541335679571607199275976420980467738988571689451769936545936454445109275073536485393439313825794990177514051676221645617572271655727564871205048099170296941429098615051283275153602886927570146386746384153408198276257510680875159105783092310191576157534474327762687534263913382906414755043829660898946402348649526400645086555993319668563265255632139005940912306068071492975764154362670418996927648494275912389731140718344081738909829829833789672975741321310690554674337475823529746139310128932053002380589274500447660388739364216057047094858254870708413629735267371110647634787252502374868830407441541559684152570152344789261685901339292495010631240845316742113497377854757513514392101080599876166176087479342899376299526733363632294646103878009541169974356729042953966412550069266540149291553699608630177066327726404388503173945530525197224715479694846001495203474039816275743893363089031664336612629386738726006112230857230393628629586954454488114637845043006264473739542877820223501052579722086554230516447103172981739054273586013464134938289262755952355874714796756231335868060496622103137040571263835615192016531344676173388782874737616716069828584173238711050869957593303059465702153773530220584469530540290194943995697421666267008039862234215126288615529888526188857892832914437408780749502225671324875655045550830720378785711441865632584687999912130466270157973079603278643726522511293132320081540202082995763419333114886824705641546273900483789889736623376056746213932642809378845663324788418278681694474242294456900794007938861858318128152108334402568236109120439309361072232846694823827269547832878696322985437604223283926911010978973356677266863852164200772866191140036706343004273025547994816408098665975751985816569017895061993140678305755155053705928945144447786886654753170973785591009176628065198413966484302121311238379464866772879044616280559585555083805481961439989152301376644601653821862378081673567260668072415339204136040203764229078655459782994674513635126809339479018532272430760154646736817977482854186781591516267506233068915476673832843417170138146475871656537133965944965860836804521746594410329982170011776383667702005438334896642591396518823964378415117240745501722608744027958177783746111049588184797829143318945940977002574686017770212665700203348367762036235404753046331666453958860324870070531651438247089572948908241348618465898463301213765943633803608348184391266624284665037143166548908916851579989899575293813076115759047331040322951727851374475735121917621502072338194131588918710662705509818351851552358749843993784650335776561127712933556320041217818635824759130530138350013172756680819753883969197001271999300012884454815455197655155911294655278037801668372659520452295528840164594901028489259857334734646110013611680499306576675120134761885801153621052513787157855464838395553971785590423936848138163916249217765963849695697874876541399764932982162870741472319390336421753434562255438212670314965095650201931553593254582989061940667162951317085275062342377347504227605289634659624346770492225460242453620923858899537519688027299993121067385961680690873790172466793958638756085063557776305462375630522404022756807502404957251219572911293458522555644967126888567627883594187701858782209733116108905517305491937022730593935297994333057056106043491315836287911687716385438848895466290705446064365500478306571776334905176792993116984024831896378127001497531887310083738402780572846901418722857794011442851436634087219108651463651086488946986659596178485808756448828574398370798240263590781277537902105864447323031156035899542198102781655084500699299462314190143902376255022953171572575846103688220214032097240480714695065644962283165054379856768791053912074396190746322369667531131296908522021410619042627380984534958835469008973358571144800646941593979010276471533194620079166249923214526012455196613899584977453473295711260393457422499348434697976472748078905795330202849837152936387818837466017122082821111410052609918640326735495136227527641657023936229516937524555113061792149726739455801690952818418753532921950479701656985770188893649796934037129559741280840646521096747705763173445688896210413369383858092024740608623968114930170986665047095384742768773605238845588829830139500525931519511425384621732552295451867775989877854823418920032468151738184966975861652453369057634111241701102255975915916381016419586604067691553909076964213534650017486671164565429441521627951463032773999691813218961263159897511916645061033963637167862769940654220901661384471701114313901598940846656501482191764380690922743686288609437073897515395366151519211629356610023957258226444013543443302699410191655660380676466553330964254128647183828108880204231691901791336604384543310585698961168464006413566323154585557058525116460933107541244215927814208149380626625148934740960930549645291890905208923182269440176489829074927876003477091182030760239111866442588401061381395626994535983732260952544389584826674345662638924457295626927810004142225615405181469420293542868662481923984632716113074995233242333982727277025834360683476663106912239189921073783398982790160818180202700664983917950524438829606430353663961893108886029106977758158312401475595916771133839639156713646291194895184915563931251994366224938297647030979905349838596007925962138570805862771869054725960204530649944212989407077740261044763660650968868483750113739020039663611169010127412861348352232745478349770739410276775101253487345183682532956217484143726283693247949747085572975631699232212601854765764614364808030739893232360001798387805070913487999534034009042296499462922160288928222983613079764990764744601947184798410920487430374575318479849601266369611058651745531453537897083274610237016169622754743868984257845067567895163079597078053503480026597718530278798500947128593177734414725924204510294774839292757888060999126691221626344528798742372703415545985740570503061019358071119805877186508922388217545919759054284174639659172407661307584983349903303623199249497887708856385640875303452600172380247927434188862821648556216469566053112090386782236116070563702234219637441043570920182943001970247285823732548124729171262666568441224617633863889314377514061264392897356724995437931908796433336946001039843940063773375085016063778421703512364665531995901828202022599660289460352264514274851720833492260041487356824915483894039525723251279258623794721933321345673872459862939988103872350610191745552936169462413389774044343703674005748829658785078279298843499506453789854753860968721481211435974605859002231552907729036901472881034483296488341922116810161890829253211163350011831005766534835270533317388536738381828457797984299215827202885175274202739501049176948765754185657211479562437763408113750913526558630534483310019920109052942638875191085232410068766829292658498243486212089714613421364666705616243929609336899213297507312892161754133199120473962244633170145240700906280994428800960864031524359725108193252606200166837009704892863669217733409318520184849983812432853798415598029955925987412890575560360896614936142685350792802884527602545719452736339327553489602414397025366928402429840413147500106271085309624783095749426325448472402595342879341586323891537284213222999938164377250160060797470364766415875274598124195401172017794270933044545510625428756722679360030543804427276555899069009569094049332225164708059463698106083014543913689713316555466191274343587839355830582879507823243188149077723682682816648171124088283866534526882041984670698968567290974577585231080771544483830473789074836071146292716888621966846191789409507401833554570340990084121057914894248546703765215628693167875014057107173188820525191090132252182152660471036783280501845877372016346446262203993111961916197881542492533692106897641284461088844410681101903742022099183643710922684222354961009244733524808834735018325332904621028554054855029299438564543003737671930237551510596609962031025348722066917135344569726562842750672199707826068561029427609261833197022173085986978794836570961635000725371439865851586261994068259672007458716534986599204336921443335679958481625083108487357614064387505133718758681280809720108215701901790582686766757893045226415921423647495504963449497278008535739460539839833801679205589471281684015944189236760624507483432251042785241710946353138141006441171601813807969165818504272664257017787037656237170623302007551518779708549814425829476916958292930594365337559007963904374785957128196675501723800551766143471491697227552843655448190405304135823386441890425599739040448676077632519404078582607731003782341740972941055327079765822783218098091211425678640098327728105395972735553166992336910433535704773112618130817813956728649536309017666177678289620773240381420271063446933735364612166241638664620101996098284547398157896780121185344254554120208081589917997958944133853636001821241111639733629306222651955032844073519198593163829985383307022211443246221525581713692296517580654630750036745210157893735776234799682607696055672887217146623409773457490302818082234995699774812815582187212353872594519848108601583289701107784651319374831608293131432653603325130102206105788814797644697428625095671093555353720778608454246466227767608816096393145442445127852805922209392351883188875084191670282102814095146240835837064534821127113008287672090752447769245026453199923308246713476369059055432952542241303315059800901918897762517331843699789145398637302077499244338801267985747911521893274964830662092845098878073466337267021628773600730767241539776077847473808923407814153620104885531196293467251030336920366597371370774821990887261503174598083068933401981440470230669116656213732706023863591057332068653617713740959510580942362145168062638708825295272304578722142077851445461587125391347525498649961581437831490018171210418464691581585086929453993308225143866768424603787314410601940598730277557335636932685511135249200701446365330548569156290667144366847963010508345233497233578494637117865905054316958047220678735208019254621324631108454511399182949041216192377935334565827022139409061603204819675299159957409180884302759383641825879908489052976761668780155555292433609786552914369257833125100000110289249285619582006154121029480313748418665477873176284471096049702906151342520103300458544733941656245781421102427611381938043482976925065994937826281219761761188461684838295993609189101675742434824584226758796324924216194993951533158115576317760354186874441738668521894943729053780150361161094252837774022126763991963906172979198742712739721537680631268485851021995145885421928634035893656863679595972541447499717694671887944610046609414695653900001776896714294914991452946432039154706010537540755349277192367506680428459537341095202236227756689445454266150729897648083048985653973281435380155405568910689964414987896573513467112179193534963743642705613780260423078174269120764202209761987489038044169170763518649367544950998672038408976160384079546874695422393671521805977836119977324626603183485523883888302175773614380055503325013362362394945992872997124232501311155881138852775836544459766127097393115764240300942357898543210374283168841929671327900462876434959601306851803792806670235160527740732811170776864919657014529154774734077886090420905256624393531619031719390769418003937645569439407802476333414955741584311908222310197473710574088731132877032071509605585770251746224355555307669998990946612045220961220313690157250145738790796530030325068326981284750567891495682765487401778953740753732618240742019147165500693590553411055070925492724511568081365586292421408249897011304293483646797593380145157697979158804774902633214798562394430259715731904517931582645578395432653995793570155663210958538403442319458789030353388260228554286605191567290039719977008071432446608526004495030267520162386404551423141152425457513476993508813672837071328470238850383120840403782406704961258732135341673462440429081891265818025319402656941320098065798711624874665413490190057528374974245939210447400349153156930366769094228889336223885617473922774701390081868017661338805206067965682576351734680053397242000199101695864238137306368109405960700611006453284983950418606410933823978846710060566092151443024583966497435887580182304008069251866310820838907159477176979926635274673792824662773901155132075008430135673876704794576605586177099462345652796769432020818853265599878078212111058105228453589833029923858809004361552306917247306801321844659997520473268385531157525347738641796485474678832726736010401902240707646607334301634943066520364582509849390847707261085390427227260332030660673035822332358485534921412494833079329722491024441137817363312320727297241915665153546858035966585650600923744927934881667784218348578509483144434811945592752968733250250489090908932001126549787796214097508018382496358880659728853655237898976348148530072279614804233180666201241477231499595245800724807369516431985508758371199684184787147133091003036897202132058877822106129059555938348754848940378349458971611157153028341159442757187675696165783744791371185584109934199709402386982322203645233966834382598439590102811823669299763587386164250557286533687021140377311456022922896992624226224280823697608784489017664975091376364084354394430218055649453037606121902521768319889802429921272562456725316909412999166065129465169979784065392876709741585166357521649385492348124652091042605198262435434211240833903947440825551916133045849354496441807613612947070376196247775147899891764437062554601647085186807702530962227580325963312721209211048669394371281062065269342331977452240224590008400195098057424957548866156072738380552005182362373214176028876713148725404776862926420189972488697589859684889900176072643708282954632916117059239357396188773537335487378407007847131010323260130702263741748607916370585629333324803039797006355704267421299531788305487476633150163845941721977275632613764456889850720963889476809999883849695346129808873436054240287867107539220913231686278913428374764258806518789219310305495857627268563005957559939884330104770319420696858481859987334472415547175921937550373592908693104673039816938043479540760489029996893584929707952875236842715097672333441990971200902650647327274727424152793652453194387391347896365946677768363214711304551945644618030901061125742455771671410188037875004899312261756064038284789873634349525159635757406427557348472745433969369894805563233897432110477825889162437844512631377879156706983563627517968066863013867181625470822091687429083866755425500123344558023817507913149605827307683048717642639398125667842078799462125107720266821565869854579094035286213730719845600295389544066957919535945894563163022440428201011695418336886772628942798038236437285661358192094741757227993057584328726931177238160272074039017235871236094501601012560693832565256982566874144614730495164904206300772400491954515229129530078320321259068344703603362743746462154632513140416527222535932765169077158446055938934983902016184248257914821122591518130768158298555240256015345809215856211584228878761174959963558801208935460306489097585009519445634527065680935625225764738176906922724641454800937062228964536854531599669824806873697705319753044984349336640610964114838414796132239962246813989006174077523799266094860227630737719390539496679222120953790039250745368108218114498358159874672252014658088552510257462087514344512281044665076331397469120548357227444732380499686144876869149329070613040552506003470805601437191203822761679234694345066712905869206831309518319264043379092465685926061417176950569298809888469666665604414162869330445955325976719832953290751910187508206557577869118550101749869592838859645231085721536534713905347137941268595025119793169795864794501516272641805008632868899838892786099895388314957299795212610580867488255072668931947885522119139101473994176156143873613106593395160753162821466502938642954197143877533828145295918283198084665315906685963787737136758132850365807354876960803946157348423260398240943321904242840743359200408588587095219054270153389527964328413260435541955240989753198846977025937676348783516579211892501013581970767684135145654210487413915594039675780653226681297607558633391140889097440608904923793401368767397528395214147650465737098316889356674466778240701960859911633290154030826633288011473195990350809960472166714828063906751766934093844136876976152646709262999399920846725587431442241880214773817072630671653151175350712902838842899478379946080272553161857223282493314013407209964723664071673294485155887221040735116313945272971090290560927787033191754316636798149315163433009203337492938295740654707047916549736779313111689081557856860289316915054330896434043004128327239341990111689643184061226104015414738328532491527850849007165705887744178739481775001923551268977388804369741413611517896422559635456450391120486743532342131073195417190527195902377228699580913526490400430079663175675281282402783565477492154809292602385533631945811393811701745905776810381296876839563341277859384856316901276534178978657545952268099133876845908192792886330652924921061658711513700590934121160752447467804729100132908261909752009678888265534318990402491293704983430705169820014647863981251037610188468555645762596771782329300226970677788431933589122751823417834077612186620559122565824793870186885518950791240296950313336141750119085375424781310124506424865204518247512101517017096500240109699427641297382893934635335714846049594822131946718713685340719760819941817655663158157047392001299258994686488347197020996188635562452636213956089298656311757077013597866390797058867551209315439377526450104007054108686408821745310481206851390816390115230050145740492073223640281396865821904759031750526091297296597381332811236180466210796049401779028803839068216348311938103002691922320488111037047797339173395568817047020858386954345165089051509215548613950810539227221375825155703134948577478956581603473698036692870257739289823663779668460511176945415495716772089408292335707888612603807795099379948790496345713474604135779971726160383346201061192582613753187815508445128189270257448938292546203428019093458252405674248977020364579819800104698113319013118894229959969939066209989760857906654303711045505063352311771987455362932180274047541205420246693124029786939933158661014642370422497370364538018966233719180851888737053269160908547310573014843124343902118049952588831691477474344232125484048523565733973948376878654065135987947671386133300860677627805600491374816126431926217787678289040646729798263474057748555278974181585624981923560401589666341690946596699877031020152686056657633075326597920845832862276974426721743842077645778005230847217067000450162054446480299580373435645945839333193682127215937834024207448163863129653561225558950547986251134565500776663550954237510000840416759374423579851224364918076587353505537904058690951366429189711733845944686195549628607915980986554139730218315296771425270264242684265800888613858923383979636644423890397186195072943292573880230857395912097068074745331263132657056098001543422069809194155346658282323029971813013931105544549593673139545315072236631890163994258566022014365724076779980515819427800875978225073359430766652608263830903272794016756602576062006372924151233107567037967264918286110909394333932931854011780832959398631467704068884033299190420319818985959045535655917918587025333459206180178388297152042608070950740773147006983083135462201636953708552236395063759799494086465619810908253887777718937951093993619759873464495288632431295259871306060847508562699751891884942515121243526483937940232619335592304635897980196148595124748096659837217337350668861744752496939112593673199326215293795679639322521634157150118617385463541101900369328513358061376151544512223488209935619538319909712421337426374733264620307055234323476425341097618512500251421096363975865052913642038240239297301038300652718902254977310789550120109776609909770768249171555621065249374013153051705328897978727051012891167466234911885890989554209859661056866326769324862199262655256997114223799077063639597148153561186870165227662552928695515895552417144188531906989764748623191752328559332259648729749056316800769974598273969628653191786601094681362367070748069175102841323574438728703395074336232933587713738171134964377134541675332063578349619065089721521002685301207543281218240197828497788051744833924813764740913178379773909671030915403807423456112323431298813851746544111272563363267797968462647250889112929494204168090148419240858368886767215684717334984764992004911399342295328205858990672598995488155594866804982551048608989411788550506575707796742570371444573197562405269168981322059376582882494388653892186984474143488986168872055307113100676966769404545844600912362646102946858968268092807504927914759870177574682045259624575860388979241435686343072675977934791649286963497534089491228593570873736344009474794809195080498098526619316402735191920058335650883476576397652906047219034253411499059031945876381803698893587099704105489885218934930759602483729503211357364692657909346586933647757804280104002306097563848605621082027206803854022862544000169984064253361489694172870220805386551033390285303185026454946325875941721951075188899303233380095059112314272402961879332184718146043543694449767514255322267589127943190682347379078353579144407782069994827988336938712876050473347225698177649398128061576824955719122750813099647970631609839779510478194053285327323126251849449931581141728266600170742114210764472061253842233169552905979211195585607408030484451626871891812889162988522194811696301434261205970571124321189435513734636002749830518802353050838391392693946348595944011555583098728419704009380100034150678440264244467732531607155813089237737491691842594181653651227677113748467465772801204422554450559888176251898411631656779640961372059405630176575094965705893319052516945652774285236313845217663131169815831285268257131294253104597538976081849150281132560528615119468026355904680979966811548715901573051670497749441494219118741981638706085132233788215771454769284138441051983248973001421374748509885837444440535353430174059943690715133273719689354930707880209523863783017088652222565729986369547110444366511193930564341926240643200110178685673551836777149445444140292082477798541780403843613120349008101486655973474221576827968311422322670842446503227252087347885314478812085317320391608369698025808275768045263254944594291778051706448306175322543345947250722664826679825852906190987127178577736438559699845259102160992228481918841403774432713657035231046607997374385626401566196857201263914431776760401813953423142006513643133726899006638917675108488712420098999482896204962635532145710388990147650909802610820358545884005630001685802082289182668308640679031880173821595620573984331069814073488420358945300078035778005864225992536064974268012527858397139033140524366546619894158180363182793564202988904092649016572766031407809410983500733634332611874988807067600027225930935266949944698605823895317568396548971255684509646356974609079060652481059763698140978626504610092331616574878103072096327430236511290488975899857519978343244080035572438354694177220293211666120462357130335026587606050941296113999201033536098875472562803759524618968187680446580825453331844246556755318801649373114549888198307752168798832095595104442782894890898371945800679213854038984706660267365800412286071621103976252585466197694628169147883988888169692161421709000475103562125919977588953242557244339312291588021018363235547710965417752810168872619962472961937186951664363526245617895041564662222428255995698936842107681622330888290227405716328257207744803229282521086126595130024798766877239754555767604443089526652312823022870427049052539753584109367713348463180129338038314204096144297625636253158844847142197551746638704156776599713505641236424317152420734214741565788795799672105055552257657079752130116547764094276914188239776148094453555752558910312639458395357812961842098279396582559049685050584661182068132143206354562936455310346278888496698600150060509179304853788200074601908552995786481446624173087748487398992998376120362007318206906703059386200650542620484752183926575257242065534908079496531424606295853844226012324322068231788716344812412150006215753030221910792231784215397992464259268509145903095619818253885715537454940098326721001336158986467323682452555909776688752493254251291383577177685155167834742489873428553192852657792537107944190327049539984324960990239864225157250189211370589329627791203039649946117632046969810088163709167252708251595315901619990245487750435719616379609122211775102311326380962574948463095661141112073777613618107366852167018787793456685398295326523935936308488814282687412407878662682467333431438238280979847436216353761520954467223333842878812457092518183559301089284777184471219838815279448008937264692236935500075065013405874386348855422670863965179533035450826650282891970436378718693117073564014660549815891716671634539901226848692507239864752035607662526031851999973172028528420677290333485452967100635121797475126373779060618010700065297521880304115554915883507390033429655237046795657701983855262517503973554835095782656119336362908043223841181588418816624362281951544488774502556686025347655280491150212129472456719446786377970625513389969874967748070121992868995188160842941822248315648969166940502692966549742972204613625281177741137016592653730468980408022275953413952769738953461345682315721267080102796594788251069203241653299832299568785278268216104109336884743745514703955512897900576643717802221055862678726394794756450076023958637179459381904397243594498234991270362464512501264513808658813653347180494830566622117717499273023607796648921841223611590114713737991509209987608844658296548076948453128275371639109248225087306416477002361794182047838106233997800501460906745789269900460080292217504666082854887060751701631298303265206122739350058282128370542146666280228139648319051613187225792048998189469629269685832152094046596756271395171667910442347718979708103102196234459242811783804461034864493558795129171983180369011520940475775998871082840782838692787683537745137501475524475157250880520787100275365291631066012004826012087738000219904159168544914736270640265471876235556201234788494538447655086156727739341776127139947769486382280761636151621174400626123774990205419932519442398314433999025129087716263170431950966292657465343468953650219261353185552285470866699171956003751127830127391510530188706729567919134635521388182673499869420267550976675880177845966497402099648487459152327333578864966301544733448615659148158257510596731539155617019799696937265893718591050075730560897015665405034385682466643362251476489493694966737593748873041191986839667314589520846971722358537121925807730249576152730165810951238834478665219235682676718808336681942825713355360272885505903572430757629887669963131841276399528722688490266642010636075892900248702595167586491632965105700585895816135531958659964647524154227577921456656007212561858457474474214970298323223083415361355778555893774772019854405249764711645814402873682524532837831913245150130972481428724775988976616214004618325418655252711302224222899165520612894314045684471382867450053662104905098486642947118652305799789612828612831387198416749466855680279306006239706349682994383251152211426813257475848450303418181991573609353067731306915333083344962954199656900446195753761746746393724641122868582581820770320313986620385701790784576591104041396161475220286852027315736762235367982623848919902129208528905852348061356278373486531074523223853066379795639313150884417393885697262202517594522886890590567717682297930159817156618991500602544428611180110441626853974117786839778676707398353692237486168838148313739703274792468425327459511285823987365201839626688677269773738323747284024782495949878366402475329319173809113650045976345368150727299278609307376078053746030200776428005236533298846762604509127333882624521030269596849040746836932836182060899712355132025249693780400378029924985928759941126567359976156468669571415642538153288573976052813386484670806104441112860832589298593527360330664288013549054341380646814796435226113425207519257289344283092796852207992021719579400573532947079221587445382197576898168469414181042564040675865489453517250723779508357818535252438105150484143020976659246581699003590427736862898644153617201123693759815768023108911036545130751962041551370081154792539773928037211959121037669856602420267969898633193874435028490401392879182147885912969622219203496483823123721058333811893224294206575982147494667481412522867602600216103401476063966785585031421405624766083646127881439155804693204358395189501771140109044256498003524980925079507238396310702647643321489902178117505428784979602685597167226324151096301215505993801054729793106000046084117835420616219223202272531366650314008457878338019607810818480078374520659101044419087230624001221133372294106480375979475529129283614292801867296630661022025781468964553302468968177212860524855746786002275826957256263185770063381800140424898580149193587203567460177352176479568845413748603665396930384654362496912451989759167968015809844701572351036540019310739951947836166846454338846422547621779632595373093391872502398132509038927000763374924170340397020218046797991209406185056188570304032174980799636494658806910994054307315034541485954408072203309219509561569261026982531361852373087908616915251846007762197470009311537317145403837457439576470120710284792966960773186298146690792505741844907130105621157035384970593255721883139566255738598424844921872714589697339642955122976601027556168743087831947333985460152990606540784839752523156163935784556941101376254939646219143875948607383277648502947708933074246402377985547016001649356208668391772264794891954942320270200911480209325072763750474604944383515615029426640305778530340384946638100254099978559016303927616724806671664001533532149759174525330492810266012359522067332409631669165012540585916598299142174923523035254616294071581408616199325264099479297010562887626166981377320604671849617468887264642957467406404517303728967648595964457347207658204143951226309421727634547889738372319045432157569615332176213846600751684043665127385490260435967665455802999697736065849060059035981035882953732960905065730051094486501083800714456342958024271045270589048320320737905005388380959063191152950968797316091687242075715450701969578315202692651401175192361855800728260849676411599233224748389007295698431262774228359708261674135919707608612807811968335432786991807844911545239731570654791790798433252444433840961192494270800538058332856144508759979513869075036542005536463998551039993130388447106225021708931055670955228231312704157856947831259649306438763975222397565544050199923839440428854381829878072719957688476324054179307997061550435985382848230545654032218002243348709876217662442589872920415007112730566657179459157510312078858100571749901926616745713544408240550252697672437527038365748587174768385842554689623656064714502761113427107715212604243143860747250748750069436024953890065018018287070094299528109675727368637786187729155936284325933727745930756735893420045689029208876208168690916306363148412003588084188439208932388188021984189592725818994948222253962903566204824930889009099935425428922973396304475479652989790985955367868945560315320795410886917167614872792870412314162352543126834089658435612565155054683474781220275667059395926743760321146919554614013983857838649835031253530544043461521132593004108928165911871182212692389701139092128868015162566075468189069248815782628848472651052099088407384250013441127676207246196749611320853616125768018837421634805837312075285945667879435437324199086553033520876352293276260118595297003762512488646086476809370397394160528209515110681018204447406665760612752373715720420001245251295224368526006188416125351515628391772599383791308895321874212683653906611894815755269997395616331350721893090607099489565415659548473803116004528016085600516789081531416470968823699722422324175593330858257336227472551473710316477932364546968158380788567663878851267563991291491037373342908985035113125845350227160727257625685180500247243020829529977889536869807397928515188356314963437452515743868580538810820530587060019827425612090666582765092950824696195381887440394870474071429128881613418931385137355596090443899861767938459955819091858078060753333092800164771386108125660365726655365830578385294554109197260931630690959689645646356214174512734400766548655816502721396863950550247938575029415117345496079935126128962868501963401621318859878882193976540071184702287940648007861696343212358113736409961692022288117917952932119350960982542066762911065325390577638241108581351982505050346103722397417493056786729637550412894261780459770834484847006144768051409496987667125677713687203230135896462659346831101481824307912609103084060254959326948022199302364671052977444583937946824957608640766149840418765652079408811304110683825718607583613685883094156147237225291740479349647346844931766560430731301553271372195538994519391980258270767353454497894812134606125448486373302995323237718300741919414089282392403732010997644786963609694198425341970930149396755407394950903292794916625093564688527256089376148573601858313483489590912917326749220880979175874046628793376497984570297670098448247065428438676697759257709062830346761575236713038106690409356507311068057063609352603983819350620353392184479880934703376232545561311358134992663870279530161812428224428877949472247227229209663430511645363256346759505254698722984932658997205346013938162121314232469945755191650403684664331805538221089174687544805007098769342472117906831627486776377919288626118264269284860886024713982885181943191217921550566897792020948788599733719573419991681240139706566308675808996049556502277115752120444129062519518359549432304787349015814183508955107060729867140683332318500876267622700567345569140467883591671630094925587188132864171688962157847657988607808510993008195353215958049016931718760284559194820602570969085931024545874501007541517973083900316737120245229268928439640926289874859492613259531613990894193682927605417644173618596981859769985586403102156912634656603888336872599407002499362832884546473349823933442600190059077282740710485728758844276037357036793998250154842208209876080170458073063644186690677014518412437460331569454412399029841626591723410291788677011893814287765001225853558367592196072464220422706501771348258960578633902742768461718604717496220393908329556104466323759391444796350561356690136757078087217643672305189025163455731665388495782888541810594202124792738964968605954717243580806268648381953997675827193423975531966292852930734075743901861149519824130025837163085628026748614307880965741587311909063320756794241646040477594044423955406339274441131040244454253488183245838238743147210532497216520654068765024182805422365671264211033690710982576765295313873884600280651381785430186626736914026073191575490446387918963112220658928407060529507282745266690181799464764233660846932239692500945868423043391728126664519591848911585112700184905472577409445541123780169298163816954757067727801518226258592966974078209662334075204284868387640297641210522384583527153769166528992260627321521648877721545269337973709273827848878217191456751163273647615500831089253526085347717440740780848015458316618722486376276496744204922317046448723527427899393584689589787314229804667537995095153220280609807205049702880219863311273371028096275148104119832043400717862147261309944423109347457694088058166289520175376556865423243210768310257388783560900461012192272024396503230359180121171677369337470416836532252479462504993853947314729294839374083319130899074665810577807005025312872566968739709111616679194500972787454324608590098501908928917792806513398460339299339753478750333088768121255628297435084778838593845133728270416193434343075117955225355426289253406042734813689655780558393656509847259013343337470075904239617576247076271759007827575435082245212565261810530691725486643631883293379899940268019552086920231546157302883207731032500694023171138623673885388528029823501051900364385396137624378962904959386493263096249867307184865453570074981171039526319872071811373419010812550789436851246045387580113195991918263388485808456090388389688754145088414640584846967139809095813331079456322535703857519998593617058328920025333213201806458362671782383618686773891023042670823573373693343432050802750349625933418598635606121536300724855095154587228663336074818765826022066818659300609659870172748499596588883958848806055587203090640750641401443075224946006627438910410253526554605552523051110331595207931177968174120857126105618521477407261237074026747808070108043404098587011707179721526483030076408401165085112348870378341595817608019752328845932321709882076459221848940326129240560217571529998352781621484874770253364190884707060239392695320847390225559432118762763225933266123037734765111660585215933500194047002902217902583909059722797805880867991011598813572072011230473843921738901904753969458851595241326443669344032594371529262467869535936406222398586358649081836833401718658758772019769534684666065853001291136573916808074689559219841704899884354843774742048962210917262467725693174626056477364348867168682575003707325393208563436985716551978143633289661240375286015413649854829159143690599151297746206494883103473434371005309999390298055831509027763749635556632161320910572150542250851612465388380792761770978787103364080710598824070090549161170252240410324388135501933395401370965641952407235422856073769663155389885881838717903445454861862179575157627657748606249994503032058487246106307253532025341662944417955057993098455502453245058426899546518233424361335601651538531159668399195731590384256036106862004641891088916227905094974443828245357971862738222336657075111298191657950084239684035543741199852040018248315431542423951025480297514882562432149326524909940326316793002184211107724773811364570403345393688877969572319767975281472424611900138031282101210585532862788152772827154799138562867541539627907654457595848643717398780880075298275941349189126721346187264115261478072405403903919724289499229124467582149658682467935107795446322478119695764664646500767635419465482270958139258417178307969085929090997494453859979498739547182122609371686022897601967568250703239581175140265546937566987521295708755099827320176782723127836584830567960527783880101645133045783053234344073356156245118822498479408956584474740742571444266269203654294513052510712805121763841641397757831514815123981781360813539359379084083180692509451717140277252412503904247737628730870931168416885718064843473156243253024982022081121155036015076915527403504495838435456188359655993042173377463375484012106893550801892292889970328069028146683486029608101536527361464028853174948330530687567114230060936506858478560308008263337721507211497208500312953181178765399198649120207200011066709263902188302284605206287534321324848903738664305845358178270416506384108105194242772856954370172267163368307732398181065180499498102240772884765496346590948588605971054794497290855871685350535738198660258596808810236535619868385788307012333581346500650645090887566255934175065961852824562915022920524512423258138582048322768583662293925788845694044797025336917460814078161650276725443562766253957176105295788631892707447502813049281313048039251072007175260737183966480642836320255151646341259376333915468833059121414412240188807431237162293196721955661464037765814347635499917762034280654076555758008640950772320686749207853747942466558600219739898927769037003411359030215186590202652576349497806253783196298429024575778950660825433962847623766402185871419496111286168038513875943265620793378978752748944993033920280640217521015249716197646725344344520891177532135099055586625372593343346524009811786177463182525964685291337728890696103507270496512673403781982172725599181932851852110593581102663697489919660438511034857624961472331836904440028244605877223186899231486446970792784682706372571153800077144838261997485779773535915017962215015780818253481794599879488712909987076507912362296676333269451595046828347715831411402480561681241398775264701645323944115608379244394404775999129716354509427629472503749543993910828035162084663044841913161415828858729728666210625614084508594817472565710000286136744566385377663253171826553717564096416772533191738010527595666552537408467593921481970710783604225580472058161432519974942351298569657701900814144313223587906422933101154430652435831201703247843179951525199019783600932510937061561699692850056463568416311336077897924390201715239056738064782246130289035852673469871037560747746225691045914914713802535081811794954966755828263081730169333239556034572570882125159993118253151349550450398537889465942265771604914028471613185667850311353180181815307975864182232140542340729474274627026738013562495570805694307406263765830621094512144961626031914446648899736397989474671336183286725645437896713731292743664386567433421607898205471840764309727188616657962450568108170782150468345168521504871562956099027673065475560257556907901160592812031536021332528437936023049987291048627387235813560704163528099415781846469270319875883777407805010112182914791151414886062730295729994969926706617912197812820813829419137964859798674620296557194339696373803356309148038682204610947647936625339777852050212023141518256758297073543585709869751986303827786988856056513205586473219808886579981346669972805964102847532400675252440321948037431152558924288415968185248694538871011393104952707563750124343949103668840432340422510146723349066003509040140209646757015891915060733187303056574480024122274580260681098439344345578698551792164437859337254122998079985536961505760998198950941332761370116302770762679533906923871251508510231463877248398285281001400116253680486551230873658240946052121392006614792010812760900778115510505084452429981393620826463181878733309565240582610212400290353387519358378070868638238252304552320523757922851314209264980842007917915095632302077435976011664022206447090296556791927442302559402883091296804991096225394936289284365190212434112264181931211743216623084770184442019901937132671177587590541406785770301681899117488618231028339970910876330216612787588708624823776657420561854455083304869683706528799365592731185005595258210336924524292138848234132902626774253108623695539448328188444505592004106920179863882341395940310814564980089969779453663725328534563860030547852441179231486279140083296700154823302660408056912701475182382686489136163292494262524156806401621949886800124964260933627733325569438347181963899200386937609580033098144066704672329943725999400022360273555880945155506047086192887612823601328068799574753680946804862508217832831229910556347271401842209106580532952258133733579620986631265141431345993668017567694646208447884173280130558660540754825313806423860014439654165049299233557070391962273119070295409996769956961093855751406398083180472459058605712909236403607572239911834645370631895778419683889431576360352195613714189005902821355438550510061199189671288987429531419492757233395771833464497381198884599071918088189663393318680014719472958433920494138776378626033148918253872755802774254513986567744505888484480870064560427294954361047578688332296236362803537071490023757205392251609049172531921420843106524078445110702635759142076413104847289164512165111284136105294963266285541591116367624174390736940456964444382671883530794614965332283777303930804544310786972013997682492831791315325898809520995391502015868349985761774603070466006230642379581057187642653663698939972901371976955996122800921898940974271130323369540883778285904315623260261215636057007876790934907285740841682418047372468029872445736313919248270616946358824715474085964949951671599579573123153488776267971784161313326481230759526225655965232792955087297133112900489681533355830263396603622082616964377446916535290060063394289885738095049906445888121143777302882269446320114377057128781576988732157006582872163885000961027722724436582870151143797920353589190119210924314090694880634417662228328012389716250684304959265705997594628928269158884064455015364256859848249065058088342769594765125606678172175640435598675270594958771744335550378359836254324649473108833458352848119336779399225652329040416769654166121404495845530402579564482677383134383601133333690281706890829827272914266944714176491944165497508983813863520482839404615003886340993244402990248682264086692687445078931213831992467954388634020041858405281383631104288087567652161139805951715870025318291438920255406829236526780883372275856359528595118901354117790344175640907281585920374604423700002147910006349163990922717926400620198354246987873668928622451733461116787177400727250304823364721289306292252716248649728446310707265875025721806006356211562208323325808258511155955268520498212613245517521276386333566344085805715894992452109289567487247720026315041893641065634044724754528934476704640091051312593997442346190936513258326548612651017195236850500110584942063027377262511733186877206400172028700033594356336050971096368528809830159387813263641937341392012545649552173419658594465254887270019882453830684127476193035973313697954667045613286397166182315364298642743723028287883834591848806867369917606644121005556872364554373086204332915707858816079804148276406460333141993015440642592529850566091184823511629595979948819279786403223368916483099198951775565337753580665726349648490768158029897844465502905737008112713662325259480283205167727748166272095979149737480575095743084977289167885373294409040291387557251574599088171383519650448766911746874985131690481850638133468574267329874329167736136580659466453668231051990405999866358018041176923496888439555126325682508351150022885846437801052229823597229090501917105358928590142267731188659141941451823385865930455532079998296806042036913031134622874424972335207336222587911145212405642989236761047228393157281936372321926442933841768316868937588272638378492554849882050000262771317831601582692792000250833770844545494166442083276873239517014930355926156229184051388577237418397253825762319599696308343510872869722094824098127536864188083863256321075982198569592009407492820167325561807870310451457137997782932453529140865727876101033502954540359812259380953917538273204196767630461841309751069521259445667495892072329801509735102073786437430072507684751641394138912824406273427030475265450369863835661821036239960583451201578547399911713559025469836702424998167871056751136997639769482250626042259989602366466402826264093734861143438501707556794130899258662887399001020543161990689428232216602562407322081444887951969812646709401350222220179087777980582553838431188414496462839123981972674027321833647556812592569569147426064880086653742619629239562943640174000101517583923778651383774281998569439066523561276200442527200659848649345763567378041368359884960267314760294416099744051485766475161839223860844107810309019120010821051376423448776047584306974466801543675048706192082437399947273927598161541035356756946351932884835910906461080142866172042862537448137052738149091996064243412154931239496591975355264554712571160312670153161266176529702414392709750450486625723474450101027874977162991304695890152598948233787994115236451525576856000949304996543913114098693269701355469726420391962007660771328856618042934784139191686919965435749617203797344644732266552867940585256731936649759372447353996727108215175289846479563082181670683495255376063750441609754062685711339350662012050559826541082782399275686131096371837868974828511060957315400002694664665727531378842368251232458480301549802993301984620909769140827353030531872461128732734438356327544144716415134520209795205536187693072948730333736167107758923712890502672591858029831682796455234941052144444265861152002805462842960268471296168039940724158212997255871075851668672762352220811358817852552640169212579119109818259904760940493333234073753776736469232023175581381200302188168666090147682038303093250498020795050308550823745414657531520394708819059248280528418943519694172067297368439884157972972496691724209706335351163967513061725628911242182785287395187021255951377006978560007504910363253703912015369577688545938643239021700199815632608193262421454246118235860534045283256095416298653585438473062214891081798627809834705618623241784361865794833273287166280683707085041475641543755057988331523286249264929700408606460327606609331544085514243922432665343674383069578232113606299715646356073239911638867971940854678153939991415390241194103868414477020101324622040966667662680669025774872521322031863041638037815633307007248882514235621406524405847740127552358512407405596401559619955279410469213137238432026468960882427262011253158256412513306251234913300349974754122717722524194695234873278161697880122019415928004988653543634840264302027278802323775333793944436900505920457327144215067601868021712838192660157123934961831267351506832200981064240876956903345902015625094687841158461924718052115412289429985215228051362840521483628721917369898215244843914029501477799686865758079535569629226425234178906381326528655875416813359110764368115386314599833558536730012528076598209669177419599039515088732114731974956886240462728330646353476096432986879853691367666148528572808424456217502212180916507441951171062303681446175243146218175867670282742804807634282656280768486548544540124388609865884438300496356296150905554411570775363584012386381287996293424778471064238644750763180929613446065401219374729713446035806707786812763144896155927900580470221906518496185596256241110155202702101831099147329878059011145989239363645396195159953424705216330500263675399645257327629540810555491399046439672864898012564211003265152052736242512353609985351605821909320450406212877048096680974146173326387052431694856402753859438792040923557523305173346195374090097076718262030228469147344346133271308051047929356449324180420621926051536597042528502498612003155846835665305019801183768126422461916649566815680854127681022228630840120237143061684594396754218875292532520332323874543332216557078669596867310510134775683292280147795486825238578835829978902218497565574489094218926705399161896438702170670483891760057513033199393985728678514413068065805484909137609787793163627356648783568372565249095329918492916950090555164128023683364376409066622211423488705978804275642936901217798085061047442837558067210111767209119902233374386339138550748070115263297776987564375207301709289753905759324765011475332260466785605981102305910715041961835802536098849876354398186349000086027928617303179644515903477065977958351671392424873526583984127452726948963120937346782717383190720050685253459600852961660221055836235544096689632943075524836024617613021631291231978558560088645216790372652616992450253776763650092933370833743846652021336778745023364898590116469110457537803098330794066223938583491809074887622625329778529556696334247384375478010699884252053849058217674363307937592645187997993208150970003524111528309679332065914640015316186557664315395745291441793143013423608896628152606757780329908170032503543983578276585006463310619021891194554767160907451253566198036372687239839846350907220847447208242720491365058799675490398798385595945936038300938375413812532411999263854960108321705873932434172128088361797746502515472098343058381108376667856836444029133515036569768001561146213230024575581705850626524879010632084673473811275338619749200367458712082877193334675481042936178153304969675592856462518890913329055526072678281210759551148628464055453017734776709497995954012362401634593311516513290975270627583934033242163525881086166353881250269560584474145905069543012721510959273042223327241306356196580199590385470645652681556108642202352154327657052081647021817067648373183899931568207932087208069371596065105491197592900236751336512450671851772562568034999217985356164384012050824149497178045652874861621446711685703320932368219828996860045299602530720907161272864934669929993158467115673411792241912327504675939623063452094516791893149322771232214691805096821556753099778259443473053262447903115822845038414263461924187515067180170455478440657770445590663059051959239018437158241176070654325408514404958045502134969365677071348005075110684003751323327076657701986359181854310714986163531956032012313861301155337704704577248119595973981536561644387762176557282132730081839365128073880835149070838275661308157706438480901844973087047342741400338929568557851987251849475494351208055010560862534414091449567571290627348749285531189069011833888904659513578392061308478090505345756706497440284651591872839616971913724914651531670332265219515742159598063224340775307489620253957900223379185765267734983186873910873442722481474683004929211229540123990365483764108676236261152322517874404466171990852863366120663964905932979565952837992416740809569321150671274584424012868243885154518352927639677278417355486902486641099927219139490514531614035459125053447561746875421626622355188771861392365077829013498348139311039261898272470237700800713603158439735139386052420912305697723214229200720548294577643960564825227470879722480529634082820354597702385138918370804955291605273305274297505838333788984022132037197113134708241116374650964497006575157291060154089816152326282466581035745176212857409260358960189342511063301938938163452590989985647240011609918790754454992215319883446643424101943144631393057668582754223181440817605812409830759811343822631388767851632198814002454024024687207078438448930601075413984440768528204062084018062604676983044898566121998042907036021905931165455982372471428463745385376474332449630818338526355749956527141426402719593911834520876829741760996349004728350148623938968620648039781392200019196431542772589561340550517786169704159313346386537556713086924365437359802591181906009828984438311656472672238501154288619599186955328774381905223988452184307639202179154756676236736903987506160793848828798362123925122398592019665964688473410128058150620934020798090689821263000137895249620895151312653532668643934761581494030069587796717552458602279462158182713467340067226909264927293382371936325383215503636347180284827541260855730652997032153487921023697266650959221704753316020029613637201580592071449907006478964745575476322454135617087078920491375763162543900492234271360357539416213771199822713214801349835274469239905082052154981214937339353022046868193108308864868786374025654610657263803415936563241714231651516227611957506962961212287166347117947129488645702294772968622264345587878976984969601165124570270097848517632150098685014616582068640397717657776274338129715619474546145818449174918955378976328711958340041374351992253453323118986165582644953318644421379894269062692835134786350284579474236615981301837685407087699669277508605781408779746349723993162644687314889589973017678440546983632366138146626211440363584716334969529118122453680567444474500207755425874013394468915551862953149292137404683997023622222594647099518400273236390676167619062229630035784319386301194508797220638940741001438448350618224370940116062192106952522682101030433562725210308829985629980015333519228245782178897855249290355719160182763841554306277056864027565027570718331105341855873185387449337245772625575332037259313249140292428650087753765679203030729534726241074383758233815644127217722815799170459060080073812686444398681167630235967884311436418516584498040837259755602200767508655247256107521532834810764064930610141262563097073009449874975767609895848941401145581199651610516090125178490746081779414653430695249444938130358234421488728604063298747873294054786551282393176592065122321352433950230329071431364409167021184679192892281734863337310526391389418749957860969065502452350539445013298863294611722030257727870114465915512734376841813085988750597581825023571216501330846908246752281304181383952281966694750652418292949202207331880715606075140818072598538350449350813768023507131643028572519315264397958656576458476692237718783946663299561881862771203893277193181713812458351518123170533002621721913740375410459869703773835897068560476483996757150947792548069613461239489304008220459963989032205140006958948167473023527423031733187051508025420579683378361391725582389906260697874726720317412607613406479161985588649386731625107358565697656860118968838687403933545328989905550120452601060743918293219676980234003706141678379869913052691914621477593283344102481833054998572754070886759211271835430805182801953490961357908021775037781915571534259084376645054987174671512675456391744991216894913969398014914943212766481966925016495572764420057613004423780682239868709907948168875273430484324873379504772125981299255794090634829508952715109596374862403864274621146047546109664025309174840775428067087577284123196571166851169811787535299938328878821778209553309864497855441040692209503386683299644015285149363492945267149299753123009523409333304856616209337431035837534373852971488819194597149776325767644691859286426281814731332720863416720862022866614050395394347360392138179310997364666187449747753120479113148491572680729525499830779556438543610185934699482012061792413803043418683404891340926741463950168071235144246950680875864285330752944087593114901269015983813088417118650000787901269143003735297426355918978127805337937678506634335960135104234826372950974522815094353167898300709020684871184572983742929787803815832206907071578522995944931967199030960451601834246523169261768619538057803359892108535842321404958828106136198669892472142763222548283822032538857717796550339257572495919275097553414800262890607656514353457194954020077987107593221946509022502759968571781490788329456781057162958665481695744001999419729742471102483143640080861772032969933660009508381893974902853956165176196596595876465735014448230007239633460826528300483853740319851460146890065705793796213966987908715092892864627235568355483079224713098336822818587169890422038354309857613095529011985921568893787983777317466221336666832529116634570639515586038228933272655426000397414267402034586205170296673254459064255979648641985781980303432292968974732575234762303319755417045975229690012949984731924804609807272818254054209170201167810105951174762682539588012737726387034294739689964991524580431279076779573697226036573895407799330443131305072136250336242210352499996330268676412788361919809326098943757638588709868403561152583811776360917934708966047366734060811314120454930519587619649221580778653329144131781993076338847470746081465083806263585324141019428123273855303760946766769171922235322677904361092114320084964782674377434397967449912404854265768602707756979007590087586961596803539667443910478657587814041215956905205890333571863570864043409159641987852946867552516313529788953822723346046809424046592973431759994796611828841652758715123118021619782774818179137216249787598208794347790121289114108209182729230049114275061356978970287435663465237698115538586808778550822771832066939912081757521729689761386785986823814347536664613819160471946502838740421769188284011833532296760158187691423123474312790032201493135546630601007001849073199689875776833933660980914245358686581393951082764697257467566174000463296448040311775955374813319638817502000597152616044339209035139619129779216988838336731241393234806814738775451603387238521918215269803838287797293461640996020299747311652258791846636859920739017607165298847655488183522729641752896201966279852312830916428317520968091938149584633424435562441520632623796052574949965999690489060135387824530597831612367592074961422025878371011342618197686080775922073281971320283874670538666540405373431261589502701988939455411709520478907891570515364598302221241994242471792287773027602556981632764003402555048248736833833652910387000274164208088288250822989259164453894482533313238952848150181525136003532347417572645217388468391703317669521701973389850725002441740338319655913081447850657797824450199789594549289798500557692901779169905555621056950380166949918270364776050704940904157773347030990331078183947577528582421832375639368076707856369330956553688732585815802538539925298352429220998466585115914697829795278014570200505709733636868443577057194089324575188904574314906891146306168279423911475650588821012826273716820670779489373195722735202933946185510146180905952306317747717588742025046763818328420291847546273033145096007294324406425388746270758851704127596681420098342107244914059225660885995465067844574649030838539591974576706335704233383464503425433547397574322788923822992465735490791511202243383391800358051907528163617727017232779304490649023894664989792768677595450336009430658844755674194149304584122297090347444119324998818952527141593505124435767398571397356203030996805492429724867772815016402039703325267973035903336373208695106718857875107924789942427428722353655690403650626294387785206668023100054717753639068087671620207934854366697262639089391728664801622395054303760680533055242407244992827796776631028972335294944613101820630272554786115433643170699548745390026181548978427040045964635522554346677077301767786652479988991860703975307870363015491635751498319115958461404440857983995973994659520097963988054891812883166640033462222447030659385397750086428079475086301569314483813699875315313829761989772067634762679058553360300021191486274490101782689838474072972501058557500391650157060298007196276249509827349304412137879723934114038635251335178014997014309269093154414396104223428131540948793581239119333513330971548920690945634491038344463181045608451988580329304942259609087860733610418457036322165528485478828893913777326701613806614823911577856749455717977134000613452724592463715635119628093579402367889017311272181842860542143299377175654298650307607041590134258577029660715587792244573137885635287764523618176743018008811967701525779137033065757301913999053689429523387438463427432242094395961225999344042679209249836173886737886077001927793405312571747500890573169183531961229496213072428891274962673604550821283289090934726993157926082019696898322230129799873802530342475132118791221357815161648097410587666325135474659504168176306342347689617375273451319182762180051163118604440775837949978667617215079884214261443072990139820909287025183665021115205358608112278793280541068696206417485933250988621581785987157280051877287903755522534805549610915015015362955886144903705714475629289316192989394714361867881791475993031380263025786653001736541983910897246525763937414954403411141361484444079757652362310442483076122162949705395886059653199698243244555634865131233956612182705884809710756215238666436134940837478114784111126216125669079418733604568890270823986625368314275162380701065912374302316584401191509811511438503344526105763666533355878469315892827109046238808420198636530774480243844325870749722763472345028298944656179168722061520940546185161018218560264003807672388884151302355813902443411582629832863060894888962507187292445326405618324140845217788092614246603884656721093188742173163577657957594775865988232558560579335577960785276529132322012460126466496846561514742428912442006516541627568696665056003425459812870709080546079063182309894225014155003695987159901380711605016597321503000672125259775398395731194263799063479808400156731691406807827374855851951334784291705629732294735486594295985371864890885048939206180383294583354434296281382173060820024438351886524537628466598779503789867465548042582573759816974079727469474654669588064131897361920971629010669317048123595025398168574367250203197352436175255983493644598307934118044630165261618502746656997926827244048347784058545954706578286218305765119261538970977050328435386871226862313798739979342757406456940709650794358515488631509425672495420249365127975370312663476059035437157605836808716954363843133351098555708221885737875822781062064730351805640331290382810662921410321633702513028441690205199019623413127437391558370991235917738353688124586962413789937632998552162583287166096364330350080768143364542491989184192905577775232569121809897522049531789463183501780810294917384685411046760926751770590639394247922826517499070745808717699067668066277339773225276972377564603385641056772495763610825413928088895541692474391670937386904396540810573352884752732971521926459439910496490218395050899763098633419632618965294574715055907967350696161222070100820018634946508166569724877529594532283090575851584188340314033491117037705730006941046412120179787992055748579713329767863205645958156553763960999180116332010766515440419672126970718238430917994865100255461547479946149976257203768539599517533623735344702716678957606288000151040844163044994743094126176965570596562435105868026129122232817257873638079269593420964098950310529293361212400517510152759305263171150293159345126639893158914829920998944104391485173859979402378375966607647806074355611428937080628666661445495329006133795948555570946972162124752820424664920621987393156461253526455060797374596609347957760223996925526735699590330423172180235865556135959354804577946844604558604788756280750289061577326241472771098431296843494505847068438125002877218040221832922941015039685169569760502773983345780028083370310842107754731209000444461136019632151689592082232766481126161567547160674882893463260142112395859697436790305317096779473749813712720390872643989134341507987251758468812723438911489916532393017693626247174502143611096708605033026748051395309407724128345084201657959371696642975487803194840424720539866708666513479492695738987720416364676741241454403669638429936464255029074971793036087076954744633084152325521917128627206317567947216564538682666732179387577230113772473585218812152927389896976348890669184648740014618239483615555244421291528228853862728684480342096254325920451670268348684033782419659762497974966881995465268876986337507531783899951161140047593871694630887630823324437047226641508864503185086108453136981980538218747949547393540217533532734996558599765527211596905666762409767151486557932256380173699085577737244414154726498968044466434244593561008856033131088504148521036755456472171599960304953579950362677268442864634087062256606609117186095305849674313657537769959482193708307363161285057095856468745602380778844683469678178393663461447951416057478201342733325994605881505334803807556079567546937210349096647943790895612628974792286903762394890789952290089064812216584289466735135906790183405975446875072609982630207871800539731450707132199486199293459573998004232052084948614703353857798601693653184465408349781192717622507004342722063874555445658431796427880398670377872963255452514854245543005504962293312391016355605772083893880838611596101464656801299195271417939024201907078507236641434521688497613680081535055848632727747939776445649583696347043068097176772915171310449226203883409955229207047499865955275435975383467850519770881445089788386474288776963460594628864734618395518158626091198643705301185822740007052762966969022421638873952999476660799203358170852225796140480430546981098659574592213676487120532058100985913657085426262582608486204463239816624190097869089409254603601979572750540161823757031817763557049512129408173943154997951089729874867383327042977243728588590384773090699712054903062318981176673348429338825583123415772604903729246685512799195924925915978734821306780825073091462564828087424411525463731049381924125015144231575089822558552211651462674059989082487701736952147982837124526078783596688411150109089488095826129687579536717318728316999662666342144247365339088469966135887657682146988913917578241491674344141213885782358944982797344142542906495705705628365524085320572603038619260011837935597119876365307201745444154004983431325271496733082028792420407597690488133289612685668047692788819417379982084982841450752600277270555373226218016961070936619527429144887716411610743211872820603172168518348596230541913925601431962365893960741075243777596944801083914362009730158981953245654267915351672796663841347168168022824074852061881109506089090683369480387237305725858737939969173284098552948000240173615328112570220779162334085983277288864104965603935440728077060273869727787660686833924853949380646220231816489898623560600056025728484344588224897916724347937927083558136319259035478305596917492330097311164684749297039074900416851556524802232033516778580664817321929586930964775389485214974902036595470380599813695790086812403953126108853122538030135129521786583319703367440870648337096578763175044288458795115632797644021314009250778603961123539394532397773840901551866115721097212728393501606592128577226820533310257422007564244969594802445829174549386375419805560949349598536576454304803048571961013861480298779244813252632011426465834855732454271921778904054031504025092943374640990977906770712141898380099521565153233625213381699294057253513172086827740658563884000018000334103800952411327867274805409787650941679982218363175436151937792991243752456655092281772203552752592725211093939452030223886404523169856535941750939259045090103806502569670777774997487206589000343330136346798561622626173853483679443820714605189385675312275143033885555980547362944851398609455266712151482487525446198912602879774531490191857825184986732438747435759213455517483049682237333014412721366935490482954376822643972154212412583347637087102256828424374735285413113299181419563094014525096470600511380442301244736977129842136284049114033435174568036784858564629597370450088864927115592389420751623608680613310515646330105369199545520184349284457889646547705627528547281508945632476060210535423919257205369950771249363023968568066481247676128875165711437920787566852985494897128531595620305754480411037198442683268202015854081734385204887189941212363051128246372781987559474579859931022311381033357896051669684161978350894280521411935116462166983075502182430268898876593664341683431315683265557077768330913297353068582408940323486926247895254131907827636239378033086357717443153151713535664200980478921817061936151227655258087086041574709142538386800710589540307576388790100586111570853401235093727628031241925424082357757905250795637968552839968545281494678922926301137377768967768513248071132759691549530871544674119077947081127755664130474465846070859246497662822630625161936955336918290671711423567515346263886775425038875683542971730241963123735797612721348619859846096263571094807619500817761810388358849341397196287130412725177487881938385047599620881696722690015134664444307146100944219787290284676022971644654568548988447748935383355620554856720422739674756821095793348143652044308837325525849870397711556668532186973553918871053706543462151263735930553806348387346384376121222289791473170764115187856226999804091270690206589555534406523667611470439685699397308165635787006972059613068444831377175762242925371902582876413472756118007339047763554124051935939175435754611371812553923461743928541017849417757400519720306529471311791119000997555147105670909780432061302775426547753530819045737255045696416813678000499532218326017319973397248329963436734535301388164642291936400798277945617334597830072674435880348525206085927882451294028372795144619278881902461151225159689843665434063478872343041576632560191418811641831180240277813041275846218857466432120305561805689014097486685287493208375746216633799950126265173971715718958377962756958305756397167246264176029309278639384128196002997304823789312421466480437016780158795558921674118295203470294228238298535657796703516717854914647191206707626947263918654067787942697053666720458678194054487183324982257548744052832965830374603753681478411846204028328702761763086859578618004850508284081922494282277548804331192195133386078087047588986390820131713028168460462008026572161131720158672162617715962350105555117465724420981802368808450109296152909879875023590650058427834686165815069487898106641048218927777630916267222309177175366710208193877929810199985157889084220965507749088256172723338417481809910738368408821461500650215221492122170303637878604225610821910772899867027063254793595672189382623721861703922766744993060932270895043090603752919072510602935897949173961659564008624087256145674360308249218782862290294271249905987703523348695761181479715986007219935452811540149756853240615840650774195807468243895743185648015872215805015096325997544399301671687163428049328126941405516575113374442683215049826305159575067591978754599072093078957112054534499662455345982489284020223366735774863041518051591973089983098415543432741251611770021051268859537901547107078871939596450253321199487462817517196400661547833711002808369255043141541280281586954485222473353546900122440023854864219874399377350698554855948718765707114534363680104156048824485083846387406176212832014528249850813286216246751840722014771114201937611622494317199855566931054758960985102733417604323994873160796359790709119861277618351782924330713036100583012764283294921114412110033188987232084179723643960595028582093528074448620182992487138440332403709710647627807760834618397014180667697405364811207241204839116092152085395790323059061125190543936720489468111124629762178082301512171484441007804412387316779491764403738512402495729753894161643900121143441289712707272371285810840009389497432522782511952558264025936520425933286629939777563062722745047864219410940084479386973757386719422251770338438185151501998872083737539087120379861958123451983882284821299623250515415624337242803524566810263918270716932675394512441494804442732426675058810807215793429690370319726793888149050179556612132972375526643971566413865587136715935825866271862750773309110873091215287503952430157784348005393630672113420028060174242546279529198889970358751071040454815561369532140606011736131847142451702561284042703543581025144263807523201074415680037868933643678488101231259719563432131717062906083275094230482338526794605228183472677412851382530237649923071670597956189409624450306355392310003464525252462271287020482081535987357483203195106832337260220712735601325673589443999491419281457702609406056028689675882187120247521892831529662152507119896975165298361892413649831338386849883399491084531290273029104524572835043773053966073629046667342094310394198238123773174102428861984941409642033853547384513589603044449393603292676037909885834275569115120887507416163666416788786280199439139675657787952038102096314959339717920269321883954952768581628308106483113673207475548016484402256292467043983132508719121222175218226795012400348409541201243987329517660577097358746941942455656096073819522893632342136685299195732548878000804211426666053110812747121315611982779491058950342128999276950261259580745034164370147473757809978173480628011189915658495839967208600420073108158702141346238845836441362382545183840387104140801506710306729288048770229588868216522148463735957732067748038439535556476551857565662575102384510691464177545891092302448115805176040101003873973112961422995475302465095784646969352173644946863169289126095189129260284422190718955708384460102608003132606363731672329533411083717387088597151781812936563849400729468139198664543370616154854025595943024331953733126785946878271925889467411451151269241435653088352918564311933574742622332333725735115952126962532630151836040167685480621217484450672813883829547666631584935000339366354090052177827298295999823365029602492100961085560411779233190579544736189162783935389663968210565573516421196457941226391336881296469154043416478019391245364517142980499253359524063239361009134310906114462146295685930744902717709456410062400917952109130326431561750494948267913668176601552992109481952167651506655896739538631186105287449347026071285336485091198756970242003700483695550686353509472695987742452607502015398205455284412555982277264448915855508370966923678424099068598265157662829941776666793837786554280956649717710750536479645064841339021687274312249654333214262723410538597864147377871597314127575026423446090636282504749497992644850608587246489172675671294860406091410299607318334221286522521980259250509851479542991539594493409943627033974691545458605068054220075357533777885553372539853809778924632209976496353571913209225472147207401834735494615553116564785729007190037983495960221779417949728496562624510768283073708356284790240634516756761223474077479490507985365620163883224809911566924470271205014907860435456224547013447126044021565986277624578372809973011715802027328446554521387623563953869558014488807083751130704842380550290679170614131374474067873772830119601844405962805051810301953088311387808899065732232494885734830640317351551265176094631278196925079597708949512351285892113491274793732859846221745699099942628817648737026282722371235564880780917989392347261523235117661346634673864707078806783979393867771607805073958415649840251256503184094992099702584130105717222226048631232056752514540769561891667958025964770943559267084641782900606083596213304675756708328627352667236082024164331125353276126788202215993084892370785116571739166630962661977711991346345587052824658307684996819995164585277749190688969526916496748692067939490738847975112092543373280196942831401317858622770291669612423644470491800630850029415209584626565539348259116121766759982649578162974900649749144722604348441581844919235172813645236718346922441643917653718369692586163159592172821156250037986134942529167051515626954398997160856477059841081687129385084843866906899337201531774900110851618028927995076063297166593908987591607827342797427503258171900296661664729428843390811632563755676043721849456001809818436171084057428951008046157267855742903768846990362488421910566146723685033038333824052875460681489118854642779202654570656022020896107188903702800691395658449362584802016185752435430181672388178762494967481315224262712278326227807391248203961345519579173389742984811120968581902004168896428942612714563705250480070768615583484918588131229468168631068053499896387648809328692184637456521330737421260561501309397194861208941340902212785928275171119317907113933708316276162258025038298840912454989460189745122591293977064798377727563062361866511105499336318733178854588310953135895649098615412086836909939046636006840265863512327150083110232533050393788344376155486723786712700975240074712394192431339183461153853908663934143783860033298541542793067027858572613480000940090346305718643952627481745521898715631453407943617971467252186340324973622712591576927545718575618920004348449775112015530970795452504813750395131431013971885547914864587128386576480303158787428215132418883225636969086788922708612240947275209019282616291449164162375079653026334757453092966308103672930421748944993086827939919116442130424987338408347683096563302961269628206562325295253301378777088710770988024435455061318788874187419373703533159575835431881406857652671585146355447003207844985608369707900948012436333112420750898198428086802367490539068911675691064451787437040652980742391060802541878346388692318311770725071345600043224887495040527636386441657777532940581674037485294602236069225612254655211264885142013565183569331696445582294307876695184521930024196542730473055093730692455330524553500566574169528695608796474599011778467979903363416134601595074301601990989136169863838626176225949349626137903008183152642564399250186067957263225315906607482200502020476383473085279984618431195135202107984825267914611339129700051848305274646157492465369340490117868233326029373583960941172605365063117245172351280644817787192945411234915877897083098071334643551798172597481688436794920069251066178771850053742515962753935726713078958045420632253073820355244754239901898102256161645259978000797532554925205994038855128163287125728099821037201245548775056992173495705083934949514138126975026326614981404306505889095547069081288565624050690813683230604250446495375323646009164532954217965028264155212046128177449106898452605246834755478099913668375700466875404824478956807537672241284269848926953040842980338120688163017118648105654005074193041758564547785347117884149277685048768294257763139050850680836147708002356513745050165786827769122539938718377117037551272323874363808143803172820160127072899974398705191590921114127680980386563083663784379229486304853705660360102016839995026501899343482916188613278037686335514105254915285588516611542743061626048825682979117263765156783130384091612261167994848646408111988089424843010250002396804453371591516926265703346914942476866669215929613550008578800633646462576003845413610348447543487856468395243083490086004801481819460526444350725194026885374508332881260838772039160828686664683393510305167826444097905990713290076999239150935876537365882960215052959190517714658223633707342411034978829834736228442605909684267584318780935806109689094136998914597026580201227825032027898162084747861810191022164548484375692766664511915775544656287932498725171019568859518310174054764193091328211465782189024991968475582985539735493398384619202114132847165589160869877152087265837892547629135071434254237454079176311789025465969604995744274526026661756758634009165322984397442113229185127471375190411881198714359735445840280475703787934453176698927097802014759384064437114723691051144504237334340895908922448606439702593881709008042696889668325356354132682380383136737598908276571656381585805751253037745552879708292317237830206159634419209345138588145442355906320844140425536471272627532801995720211680668991016401912378014795327451900637283823118897387834678826803207243964951222823959691650932008255151313625329158382305893908146652830208425110352071916160243868502549450891192861145406588430078825795587581167548855491880362857731199353277674882163862917147199111361597268923587826174907596476573640969206703025842350191547507356301750626415454546352229722938081526892524056066044885680509225253553244774139444151840286311695777944838678932357293811758878200383720938426912669023077696861162892835303436079192106231843124066586819739176811151237377855642283486465070978666024993841890148318828466111714529000949127199916844607724998744600802711983397512194759164637302901148705151537773308642899289535379480283248029459534358891470433306992008420852014189095112229668773588950646620183181885374927583018773447602777152481229139793170097673260173211937237884786648212278608195656183524824480559715211749001607258089464099264975543319339397127478857136265646664705124445966966655022664086367711557351050254006454086127757380951836875432675853054528758343417965864542531856257366153331326917810366869761871932114448222619901854609706681225493999885388985926223954832712343227581219950243933475347192847439635498080383811107817620283969120700840760846242728706231239000709071381366246040686578486930121689818443450598565275064623979639550150681013004773153291880927104324534241814779083395239558144163650231923621575108920167707303900666057621518770295381625846288253425029479572869514734522067914548236360693951763699345987080409608459967825378098282823165486589993375047732116482826200705557557433326896643938196022590439262126289499953731300612644427037607058390459942291192662921993658859133763790176530642478982700729883883051442786301768872761681146990599603988979534889828036573137212135008305615482541325570099356520591849824655668941757370043021910916811944137777345707748710971462207057856172670998696048490141140325958052836835121370977578411778521350265464248471660751076469990518899195434677074979243349186345042169122125651417149843740072967628722608817570533877965016532881177174496509778097153162068858990565849867711734442573011427374641562744413723266031921521749324383375075026879821161103635783733350556496178043736114401712771332417616348047919104589756840160164568720218920390430389942823597051898400499523567797674419612956264491208808766466271750274214973294632811401211645463222134105669458450000219715916361949106327219072711264389892713596221830145217045139888405324428319791032476173361416884240150636508335621330498993561086063380370534326308400470246091524108550808889589223842929659194431126502272548445599501120010173124607783012804821951071540787738856740304279457388120924676968312125081412475460996017924833029488443637653058942630512883925368307063926415470329263150828528455755671357523161181822645561640570467906784835759520957445318638832770899850559909246067229308762978444383615137649906900053485008999755218107417812836883482684744002793081969285998827545215531778522458136649139406662877056279003579832557260905390686529462375568420719105095154941283140327974386586314569458307082930304075291553770089564585914393112120189541639903916929786757917438343269406655734309346763872309841507264765263439749563338886401807852363991926145321675398744673924941288657804828152301490857264531094111408446331795519228573397861821555501174149261966603612223222146240844624291753629729356812282925036372626684678886547509850739393761449185135759099334193828811905533241081655481958306719055421894253454493330513897188055478915273784382234013906149220558169519059035192013447006808451762100646018384537427615604967877482956808637273360244063476488986071136839591824747397735208769046121496376922222812971938844470442582129080394792040337881552356331539607677107059487690545806507947105367992289944372798430233676175350028037869801864286962771433840136399972362619744323236837259902723587028248833185833478632752829944899769820450045853552656674995922754117044320504447238502650909027298692918043631210745190979525383021769310577898038892307737896947530920218964602187981575584738613692288239612458447848481450592998655478473842155720432039028295196484425392142892964328951120157696965152493181877885123057302696246953997062405504550062071573173992131792878401072809563784496864985850778942927113608364015274330878018827618510495147035145895391408870343741584471612211777353036050255232102863418164027912144517184343082831495693196995563687981675458189937242193716120242682424551402732678862200865257757673410268737706663411838176003276726917590343102540039125721131668460953068233094035321646284466820041613658846243887342351543697099016090018275716963515235396326492830411225886314944966737580703704236730909083985546532789935534232965322012010933232614202771660050847624203418948308388062813554193745122227957509519631875373055105310525055329079548504036882299493325639382428054356860280800762312656987718148869251861388654965327506996568723236796655076623492658791653938642267418763247315859581636616263782963177946153847133243777264759647397047636598699918231120612397987771270273495232209672465865424618639926848110196284003346968637195998570056132195684507956845366345618979035091712705301564262780871000949295856284471759139879443860154359262127746757615517595383519737717844492922356289672548494050513333052983574620387463310131360113338313461851047393234199153712003599820764103336840734600370084018898231281648525272938421768353151813019993634183572982629236241271483635196339819000267904770648308682162879763639721096760854945834508261115470797494143407140129405896240939188841326276673161472280005057242150836358060700935733790276811920468940798523780953792991984323877760656946642238745329620259985702977909481422204749319664637353099961303296367558905254000970853435995643163728653853010664184239269841653330370220402195905313516041778480790480273311264401579210005980026386908551457674943110313513452994106695449416999905282793648252187205259153411735041202069961721827417075222760635778643343812988149700855560710213204216852720632808254611201617956246314897894210123841988041067717382351627201954833604574764173109222741269174509527846811494798590094585326021120163027347350874716458989827297263777419550041054011192033208946237820017986978848209247776639891055117028721437286905218685861500831596714266806123228157564302457282468151764472709269998054662082339725088422567726508975786229460673604635749154191193825049331310449689808981474997912420678212904953963122372884954771345625516095260578993126559823337441593496601079230244041322496778940791142842224032080179019945822706602669176377758951139703718288820265312233252888588774292292017786432060591268527806425669989114209889691933630662736145695678096013437104498739546596663694450269427595885175298474991861537171433898350410177318073229179149690478723572515918428527793144042625588658044904456004547743506021734838024776758723963273157666582358920639849560739126548888710439246960763264828778196941706035868303909110669702312846945953607660465116459135369952958017753672258782967474078669263745063679314866450052388014241499143080872242625158730871392084011060002057175426729415646362323545203680338351916232483103024109893113958578083724650454629355327538752554751390244682762790624933668290253832453731888555918190103044940732651754602147290167319203480490543353185670029565914328797889496519080700537047111255552310622647231869074528864370574875666584133600731533009759123168310452306381811294205600126956293676875902348977918412854555324456046547620558872425032921509257515507904015154145914835255963227106119232148230346923544865016198957844237339454466319469885803686920155534231762904790405849804869343087064201391833360210384390398672421192447161960797554988869328019482168790674815042679071955877437837727437790842349960041257247367061014392261398981039207610544152489752632159083986389586942467812964713651300889622412701617081273867408472685736158544237712418409254855418447137816500028376587355635720273711510522689006155869953677484950063521696114620947458621157661838055610637019481683576513914825623784122552465821462588920932561613293214574899791367951661189141241513669884940772348431638906202260143427155418496374292168115107360318568471522929361931777334365129573185912398801435016704736578616733937008399037517102519720848534982873587713491779226488651704370608406844448589404348444921192021347698365426790745032151759151057216564706144830338972434537830426465946637979310623121186751712815323231154994868182101378442023247516000746701498330066661164508628925621258802978601500441381358197979052740354399631549616727817726534097457027080121184724005727680769488550277934906556367149708720217679035645871643809201339986089123444119412833127965409664258804219833351583519660862491437760124721228069220268779464744645669032277356798510118432713415964415930599997529360930754419280509887193329411632192230740339581904672990446252845714159859360704549300816758908649941469325714089994941638644471109422241995451811573108905554092098105498668057104095682929292069648540584263718993448823919227016586152866275537161551413279842005179785207126368570145744226221417338514283653239629310065604153254637467782746357792792334548522351673266425256197164302333460072392549277307139765812701667427683426667545273681402373542501149764232232493368859886247841297156368358150330121858828155554649767942253505894289338685174528934000850385206022878184987453543238349391030023596181986250153525238169315213008755007969428542355576240395009400822675812343925080185088630006861624140470328442086938433317346338357177742442613058863330602806722599193205149604401143871396348257323770455713273228891033804023574361711731458845313573434767098869459735780168180659230697502027132281276330658312381063357148219922673983940180056029588488307199984784142620842991663804747733058580270825727774382284296229918538519908477141185272607661881858596051511152015150444053876730195163893966012948836555774192013063129235281190184366141155218746726872809047204919859285677574453642299118040749671397918932818238481115643666258884415140855821463951195535788706855353165134472383899347282005062982782717233354544554879952088650028002826349836348369182896098020297772540416249901761446804221804740481722544534853801893257109850328910868690243844505317498735286910458609565368527627178500059703936374449353042965762518842205278655981927294874837928477261802720785784270063592028742232066607102449757780739071803411168778596950152959011389429870425105371501828723307755951261316568053100736941599762795128574068126241826462446565384826273521382106779284694256426480210225283053783741918697179482041753093611786818503028247036201090241412054621963844516497791001779103226495229768785896952451448212052253076150391438488652031606741404779355972486730726738166770005493502479430685354368925875233594416933416577683549410029733394523889174654046361046247570541136421828549630866466352538477981099371500025168546287661692675724247273663544210918630011846700376210540674765735942513988475567256744360158773173793189720650178253122254346700496749464694723524115665446587769563971347931812671047374451416413859786360143977930712457173264288146085604850722511625478390684444821334293883314695923516869074467040166915319906089950725869991710578264467293172347459565401941106387489391477039805499351490964979431653053895223520493426835093143282519306535657651513522087593721651181569294692606389833924948399023698391949780292419378200511137285184756724484320558514495650571655414212125689302015715767210009479272186036346651806996764860119177529471684668045745318340150800762494315950109876509004607438839090270301409804733597474872997133100347609711404121878976221048802269909467983114440265359587762707783944967783357854820199310391548368271328280296253008011369282035163491419173840089679953653729308585194913496662098998223006836528460230511199228890617533214846238622472707706860934468929720030525090551472553335743723383793817893116208227900430293318588471894189787013479004044480368283769704127157429767387862640708636147906637256774351339996404452712298233688912114960337121263550925593232345050277132402882957482382067107610105497407560354362766525531809332249766974916564438699385055630069057252796751174852253540579151447275616970690691982627618618001104520251089916666109699489972506398019650722826097517342514712125268561027681650118413845695260745357884345521223215648697731421483761865602382157199957225960755985014627439882388012241456368862745198702777359963963807595758563164550082706353502027629726736308936667811681170535790375383449112417985485373878537126705244959572334001389043043244261949111489907806981925519567470999241605919613330537842777937567261794546414776999934376538549918671258741587483501784054101633146368336002773146168922007856792604887672094275374124581997780987559476304452889108926999022281526187514204035103497563203595159454064503832593087879339948556926717331511376968667932632081832813031276806719908497360707959862949694260170924716860438013766618566074764682116452300400587939149829716854865504589669812912464994107107690812303922689955410224736004234518081460162366611339829043641749843344844197768622929749101384970146914242723768050301617854481475630941969191944399874139849324780791667413018950792423801893238328116346495071289691780340214074192275388992906972967212341999077514324259165445002623557352638894170997910005377644965382432784137398998072775604473123901555214173243840223514361271511570059439945969204013021375328508951864839026563988149433323293818373435829226887552103345369169975881969191929179374624950532891116179295650206532531988988031112103517951933403811227179124156690939967163723924744638166865972398613060236108460641503407035016443376578946784679388706820904109193944759395773784913085379226967320188256513652994769162601154529447942047970702542529547953671869968445015783757243652350316786952210207335032563417709496440143419107719498275152898899452534262053857600444427884250009168993981196289688939678217870526893528185817399666278013793828614379651563118188921100423386405299340620605894218975248382544397792262191006554617263393398417858627869923658277888316748153042136180197746347541821926950586866990368700424147195242683614565326246848480619091570106420584114081283465478236018196009104476220977040115327125093770680996961088693705037469106169356100299172446452652616625155180204888390432332613156235119990123132530734074357806849379975316328852047841767005603194972935344135674502905070641375365159671340464496449806794769153263397709205518980267637321491377729508958090212707339221972629583998027464241042005987416585059930948244743908541508324674464908483314103732069423591171979063307216509423785265991559745393224894233824570501604211882735895278888551950826509226095552620195540934870405708359974941407544327981779560304476574301622664274940183123877954506958229693656551485879018355304609680832883680423391873666625987426427494034837828710531459578328402311149110673781445969920020462112606656202073478113077972749759476545412012562503266689818212934048932769000015805813385564763960804816724038610472104282454251493370916822938817017911493950557209944554272102549816792209114019552458972088875086779099278745185909699078661999479113083788585668079092595010445155708722455698483892937445200480896663892367317281008226973343088100960180417929940372179747901028388518870857898088801010688324233944379555351251836961146203878888707860230897301758136339282633316965057402606733588567108211943548648306642109876349275921656038840128352323079252807900239206733982550953635535363442806535212793484033223637596915244272717748259937647362744241766076819928972014794926593568636234884740829214715269206686851279785177408584711781996613392660129935082189764146764529126867170943795537142905591197951035889022075216779197766551678810213140460285379712993508823460806140155855084426134663907248267253004842716945949978063070274833782040656535025747198806705764808132822283847895970673089147755412248702302658141955961478433715875142710657941555692468564021060427281026671088850843468475142032767841662507055079800767599220472524495952320490726358958952348636547481101067502435572507451616415216508745560192274262337488058044569941539317995530491134214513336102986420556287699065879378613700281701697698197411351912837110719734225226098531635368582817076223648650175497532763530016657004023438188504118154583496877906625854260230496149694941790314297836880589195814927204321443890586297737697645821219417422454954707721993565688866748950959794491980576862598733637249684492406710619743438317868984993954502729089596114637327897950890410317081357692282822554775943667707847500711641555364297230389151974242987390222084234167567474235197468989631049529083114387061842733041088917124063456796257879387217434169745813255896364643440990510556862433628607590491545034416722397602134726521238456169586306978983135569345098822378935396465695605829950354440055211028021896587323998395141787948808834241822117092657518402592383884745721951656575135043270914573758391868453874124324696423998043595940390742734953770398229938834773127065151003812394297488974367244082830194853193995948312142627221449206797108894525111192674900199498066628634470146827277167921359900053450264232482179467385471214528671830310232629839511149558383388755840570884812142625907134436734436775484209000228524184566610314631187454002568585085577388905218862139723047182292540061407618509221376947193029733066532126223732018405210191872463377882402265655514344010769034910553566582721346807590471343126146907074580613924862904311923200010065936130865913264673927635612209734968910522151255851498343074829914415984581704954584690948154148549979191628302204921781920657446228261726813927986671184729822625047339251015061964330723402136194466928135940769071898593561600151475962486641194842109518407310758637371548811332477001746222719832537366947543977468654759964358980504299700747102271289319967482147360771977100484830640498175325649472054143483249639136950058139252329324043702680636425659152457547393963429870915617599932957897091839330423712055664642883269655621561236534272542073746273427757762875721845682700204384847446318487915391297661273757073313462311553693406519937092302642219065641218373015436164098457000099972530019665014227091401207898281871189029485914153648030247201597937130899149440083283442499139659700023975324405635715752718584029322839593183720546881199549292604688744669086056921514249344170442274745203283721623401267689632223123142442596451533879053983653584916610631749735494589481746752814612831951495371392174867995535290393280366134736623073460743550165835277894899132448649611596271103316548371350654337493283122976379638921839006976009129128225494684524440261937546859408511909467539765457144711652018422158895287746745173358716834292088768153760708473322191701591076542726267895954643882995888950532658583674225659307188838591991476458072535809178345907703312330767678016664419721391762516544421296365458196652589505686490083299015735829019472441387794121539875824844690663935320348438585997346312946495536611938496375474578989042765842898153644057511698066514707543612687288484571838412032234159039590454120769752837309238369736575477403920234166099930256909606117988379281686571519403995772430827128433150618549431836246908831765519782971890896626764941389134007563899940979626175984250452311670790386900487276009028919382315018655537674835156974954311951114149777540505284509784615352952593060464370571853501272879306339250784894812653277219709968159345467782999682051191922794035940380774259828950853859090240638531423167810034611401161560681737591781399462502603430473787940912541841088439853723923753852441870074409164673273404428545913064281434708023161561153283970542354564721096140830764823272072960552392510388857167406539781935002616966859714199800849745699566393430912357300367658899779976289774626279871694653433299633719654076290171474374317379531238056672259819703251801019846140031668499225878797177227466967374063651638314007129332377469495454524617829001201342698227515501123528671155317111577757313504620095599395460458366135191095374243278966954523365705504197869982346926588327750597539104769159735186758711535527571278253806084779341911748673650431418495198641095829490587393300684365780692912929171812378173786741974728840620597087488724232056964653446504657894242758235871212094582400686229256807266002591781793181491244414645769160497531063991607176224117419475144738129795181973079130341397301776353024476290503558865931085611236291001243066563338746364155592262362438048303301324709456058370271827252845593842291520322531432438277607172824133305164117289897250327385488365861239944901180664154387683104782624491991739374871342496487285963151702484998916434760103988909869709640593133904004570978040694211082604799183770519315628805837595748586388841776247214005801545653199521644921166199841786733487200590948326910059294722611860263539646727228932573280636809684146596724645592677576610656498894681351436620253226541676072962626952620685306115252039433054936639674295702688707250880972599422868623611704594487535134537367711926602445188149836515984784402388860661098792375235025071923609558625550977625112160936674895842203541303623241495368113912921769666675329147820529265490848322095071279302510324469273334509353078690365447098584959646609129455758722485434043349052508302504238149262611085874103946393542358270842586148553843923082351515515746394626214877565299674425530972263819726592407838450280119862975187636320154677107187579975240824178548944734831741038388441690670757344067172693650334464335651896159699084108169844199118236414503331857713644929720174645269056283566500804044726719025984355748337071655748894004477459088473443931611434201307686067818676439692972526267360604636048123093777824376917023446677102348844203692162705065119598246904808720547841073183165791023526734860695020496737425974542180970743568981763617988778070990279886314555286539125733590552532897229078122849918698989409334872951258211174949540334511107949041184026724896001136511338804798670621135711001867527920419724276918181405932669359182522542791811753152607680659933587683743514426468435919988007590131720698625278612071254460744889885374801078006707255995500065151197244227824233974887364277033437987828275432746127059129272141934431003242179332792798947449629395935146513887256625051660089313015621932892636389466894497658174611867088093980446167664418379690336820203216431048232079651437484516485630079672532027792467069112477038410565085592792127739319932583518582636150636306436062694969880142019357359706081152798273165418256423744842238906888520238406785833476860730516509559039957677897318086163734567864858884168320133142333800084201252789839290818917861271181801900454894194808955549068554343897777895222708409099140107542085294546761713991023956632291285351115083018353136591620286745497734654111238735598686212104285025718939301414110385369102787547724028312324873407250767504422155873185306652668099308986885078307660882480421811904517062491682663778942868384290286889722773489354987467940752598924481540538773753719350278537473745084481269663786991320149780035688300976228844036257441573264538825357752085770696465458293794975508409037207939733896787746070857109727408306062783088910987998882903417591576229358385625759482249002870928061218040871178091114943569602028365710837766381343326901153357460868445518794433586187504504712490001563681055591449188250045677405822476304472772056676716640630253759454157235185442540481695502615255532443238845135785457744738286374065869054243682393807052259557918624714034430849568089653912320853599868084850629732306836103055602367803050695316866897197165597890374759267195573360424933605861886627469725783889644015478466939426793415139685416921695465694806225690985820363282978562097535314164400906352186543292482558433834688171253591279897498578860318593391903052599848207220167680236221797132471892521258309016508858846310039184658461458250240938504439478860694144148285182030986149876931785847356838171443363985528943729303976740347655368739171213171766546207776119953131082303396078516029597806190987981297732798065046137702763483940313778146969397482937945021825052192084902108491690199785597119796270195544418436165626989046760020694168464058745263705020721417492231861797666759197064453492838970192662992394013845480523401415771072793558141289050896921134419381245786248249955867851042133203016706760530062219974628498918300410783647689264139062684327491947252607392257202321009826216660654937759071323120199544365003911155445344790051573099869488524273551899027129338102477308326354085594848796615308690405881407157273173729906388520444277883723818122275549872912035459058045323156051887161893459883065697659195830831353974670110474091733649150541622177764686460007471398393215944662301886255208585331931551894031569238874923675591446837907746213589346628525333326358312675438314740736669125848576259983611195231152760473210348562200882847617444712998264629999425834967110219968735246295324570933788633489772782135043260226939430453722266435376684695617345328433401719333278577003623764132917932811845778459474430399829000064148082421194619979755733539198517414212984492773197072892709977630682566820196581215079580079638683180911443624637990274873399145780702284071998138782258667085701329227823740153412041691816380719600946725971212079023347930323685753053707571007062424577429410319311851082193128140621097278553026904500303252486473812935005573281316000915980720008762369838802086328566375513237610704711283176889821550558053405073168241828695569641983145474117328322077764909669998538547638668901880879682697948660177138608782197052633658759945519983491385936740949246730632835742530670168572143358017722023983292461516582499818068795428856447778773077556899817040749098043466148571482046918798148518477488316923946979429379374844939496991330790120133557532398983663648207138333409789103491361487302144785329424594693798646905082167963201540686379037719883308333693780560582094636005812477306007523661219198167135667261042752024962827887967728147424207349054894254278992188236819367001906473939169306133556108320550118732812289710033940145069566000503658210999934431747267553125104970448814071639172708369597362925513039638025563144006837499253495605120518582750439269359060600787692858041939699596471232510910970636793546575757414328218250961106971402336085447217447104960502696907887001272139053361188680313416019720692880048460528650400170089937639023031268941534202942105664055293640181098292081455904587309348089283941578828864549326766697419726250692703257440712539406106951008692642995177320221084142852342122740337609369699890381333972405324844341166433923575645041754819499178950393161307597948374496501798792233187999754698603594714853554264949507804940209553401579447453280420608578839712317026289348042382237483065907600548984926433682463929316528711912673554765691141403257045508496630373733150908271099966034704110731536368509608518392684881986108795459357349771599284844984869193754639542983351519027434832955827070827473967338071073762420218204136320631708290683552459112740290293269564706627115085093248764978053747184013841597387485429921984998811760434256900615275369361280928501373978718446933127218729163749529362783666509033470788375828595496510898426382702566248460452456932066518088784599559170175186002957929311609809307972092201181663361381034693154867116277896075125841106495857352483547970405581720734788644090112389080696746186039426152366920193924535325066316508644306126789466634404954981592934163869263060588124058186331426278002572627178886863538538412932537598671644360572347811139883938284880531193996240396488195353846521041920965743833723977845405374366335179324182600511191559469568180181415321942508855492830497249388083283765115520710047815742904336204455373149116308392304783620647914614146757421808446007266348430755736196871081186007155951489051244705401547035690981494859622109367285958719524335555378210828021003652830151997327167824140323194464097798394371539226711965437866221795090244563759015538955831182934503236436185238455059242226259341139713215757833720451575142515859286540255854085989718094413688096236928334110454128130212483488467728189122630386394181186972676309441087867222824446254455406878786375592893810977111665486200713860732208736008628522960270024540865654314577753168983576740811637527846608177267693757188217436049702573411733646450169845999799110621342595130557184806554530862819943895193807972356934763976313549307518037863052696063870294901064782437563456677092261618853246067226906197586582615372529546417131173324686221144012923270531804104975559735501879386502361379215510039071320225062040000594239049036636360838811353191447370231222148387053921915381352301702844290224354520791136317008838415794337533634136281623046117141423211461780196392104199770930912287032065036673188853800026411215935515447660652024552673130947980398047976491399065518369327579431359340522746008575332438653094434791591480813652614182354823494355999776347046089613873216825628678263239218157141688313034477195704557543587599664637663684664336618608264143598261173481542680325218126580362906246455024507463952453684042342786636258633332041563778798851368052360857008220261748970756672201181675853423898603864733226511968898274983178026870305225000098217649505994301175694432436988870775933194141330678951182451553350610812542877807576434491369173742299774591488646763376758380732572594673841700710227857636152840517568724976049040004090348592515767007364636021366918926635270874212364853505484277095370050357204101470389973258335836818862617662353467273618887546145598669670821602177734645694968086987280204942835638718780013493654710443026747125223797038442851148508329258660587361981154848547150795145932348927705697538154145492361004325205811708036100324594946482061226344819568427147922601074776686153373946195900880196792161904726131163580301714272525027188242326448199855256543789145471771978017454042633047124438725526312959744264682938609714917835233280373111698386900694636371455066820506818034209878408685238896868114164600370050805798442987810013218476280120925761668404685404032207464583128607858726670407572916749331232921582904479593830660314904181192914920159378236541133183213319663440878252638426821213363666824167180601836631602300871174840238162861476812848032915188458424913017808124190273726972205869250825721562269101248693351785013331497591714471582097361265846485814447079077306856915576227675443490615809511075928233058913094199355620454507798507900340326551663758680560454294622620442009954383137432512934243245919874081741167672143747173964334252039881186424272158431461966810652656722565001133567031909501081934295193715593846480380539890281559503024450988863503978142771730981494505764386307825173464826890520178066926695195651153584160219626366315130586179745179916833826226824321215676148830514526927423109829933887587864313232716972084608419550671342422520091658306537844001113837588254310474397889019484846162007524369137321337716448189246766407762264392808958775436212890480422026256259181290981807628977534030830400126628174713403713120809295397494665418248406977251183520298925443703189023081587612747344095184368951571766070638636219308882463293290140338604909102853482837989129816027250802040658378786259436422375962712323876167471772684337167483747970874346123821789444038791358231124472638107802682241158536932679150476397401508880539297266359079823891333188083776144631164905219954839446890467662157656928390070144723245963346668540615942056625597137885379572511546216365416237131815468589153033106202602109866514454467624975561726360296585662721103972825944001057852571936116039047850818370758442697349928888012613441757551103479526535564764988124158943546391550366202895719846857180318423018458276790567981391265603265690381240546763279436134997384828387434021056976181436268053786822533740564034568325248347892792398762856531532434418627358832789163371722749256862564580510407296949066768728190364145317049328939328283839105489611504883766792203532895548539713833009547612078351615484784298205002904758968108603570576316941057849773035353564376978083498471381157088993818343614182078194121896273192077091243806655950926313541515417392291126166850445847595170015768338586151270947950313881803447757167192530358511051265830996655161034404453311819599401820741208718530724356271070097159477762030812468607373515867532488244571349513239896362165360091143491532628331515967779230401931712776840315521530792131321483217732228230092733731263907251615424230257997820039411017497533141049152624769825645069017595061061903184652849281100704022018962882318361590899875097720063152812489673129851706251131885937938950609459127995969445440568558537499958755968075216164142230151362761850698668336030428479409945360362537763153593238470499583640880791446133686430905899621786194185262831989170813940317495218471890189852704893577432895469925421075935320766232192356207440565592958572569938383427838441653187270693697777385171050439809613792854356484433660388921209673021400389063931996029270080320534573353643800452131429072842232254103259497765482252958410287130331989648941494867659492204282103666259619641334276394726641938226509226680944477029320172935708450462801988445559566681927669480119636540988403433878607340146303371093677697268389083605805571091256436252062763741960767144424708815549753738048266957766944362995337918012545547952793352463585945834300830528869851830448126237576003958134473534282666333961041122081446273986517410682241154206291997562186846682102738882010498913611917536163943812725683124057491807162668996330690069384286197142132765951426965878142670060886235069562118161563543053617711497028583071572342396311860045199053645335383248390210072838742801481591150328941202429612055225455602554097559384537086042985718703759224114680843836093522783767264163430135711657415790863754674612353431343177952247953085972745378407254932350974868820974021124005102477503744403842686554373288677767539878657066755834669310190886960073749834391024418745296524769017698604343008334691073983793759115858349474012002675603437356380953511221494321431822400278350180223990672341789389967083580634897388769487763981296869086064669038665090594517763169072063575732508901577636818583271690162711332875695167027783989690633237499245689680803023845309894905615712304244748054585952483366396705630430366460731391549557809801935057784569619273956739281359318430179352703638611780604800502670090898473270084342692416731300859457910387718124403549039299198706368008849768916749159974450015116107821179134509305263435651434294055753838963598961542362219222758875181752516751659994732482936509693246671888123608492919533193055819180306364749099804244272018612051151235299320354315710723540933386177352923099365554947492036524969877195867933745349374890062650776591019569113060654391467010012092524704510022500982946729549874564973390370627870848011592786401324673643430334045936471737275575138781759334865399166135374209071794948887798983475610605854724476866975767268008159092681663889370782797094502247627215676175550721529769371863775136496140079961791882921219729521071052574442563105530066969047639186805305995836848224733413484845718636581923981780287845916810578437985766166699972093266961763380884016548898963504860243502087199820239716248583431019020904200086488086474557828721671192972415937450849139544183671438645293094609936594399230974563573532112127178157583729906258625752990394138833140876027784413571131951144857879163682688965713167366781090296822749586347655343348234246207945228931625661925567731885042775560228596689472648246191464429704005111108532110991664615014283716293618692551956047176883246451577869828012202805634071546986505076751342710667381792996170797818149100993302653828607248610485252743319041159372230402010809484902274260501485978751623040921503594173656943018011525330050663504989684139583255295637753467522384171036526087187841591366810513158204269524669451017048092095148298379937542835742024509080561204663675949189183552175350027922273253592205026044804078260220993584357561138895848830214036797474379226019999102122645492597846433125732576299846237309845662336261786583926575229913356067714037432536373752244145217353351247100314683508176213930847546268438197610398819445010895938951337467571101815473978683406371716474734725043898132478387652107375658104187679022853767794921638916008270199022166063119404297377100573303422019664951104540732249353931139881047772553178595582936264394660566530719746889264296818714187693341903120289901305631012908022716456259745871439928293355199141063591163635752625372605226046513980826608911948707822336931807794446212684469378909233454162312809358893228725390901054009345772784139496943595359306583373954034814477222179119102441671054613402591969631109630159692892897223151355037049696868960852610096036474621716232027926895484675654349463900108005615553480100533703867414407240438237977050671845770436717920422022003207384671117920539930915922571513213297361755826279484716455565424308261005271362608525730836724681263301222827623726665132914173568283705575531255595757834699813770612186916573257200164057441668963193890857246728290742468202369984350279005028692273457736820129953132959422354617626306250774178711342946183765492605075724838055856043980101964505224876579902164750585058140167332355361935179005339624172520939636779061093514412557253422784788956353023433279167517971484608352649032299588218311301265976610364706500116215471155401867659838746631140662987141355218845511879739010032638876516148694745373000545982539505520985795351889102911730103928146395975659548703778672765527331734184686391286261104071045488889875193202399621916849708516638351617228851138013091189228440508504784231338315556892843074179141459691330915125576227575009501658879812727184127083874229500401268041808442015395425410244040545474834342279895290425771253766072270898350843390037066418334735187097853192379195324012809595481697807321794313974536006418436459478052834638815809045128676537871775804030453792242966014102550936637364815156342138348634528103568816326944681469857937543640118004473997223177701993261992652446344826801644791000543122262410384779110728858430745867589335353002675134147896712221290310414448284948628635247625567527978187591010471356800294423007669553748746534031535862145904321270033763711568876967215545512418243326811577390517592815726951822683934807841958885072412701342809339524920938170153000996327153103176718596731134426367276339950397178535003290171218517758780278761929173544500301198069524148166422388773939312231024146812612582649410288447070804414025171088563270882508516989339667163476146564572853306835905892355469918893328386768143187900597247492284088208706177439774538963302959805892756198017331336225311333896417518026527057661544584895476079435511404190183454471186299033581737507971900637765300024531903756418920397443107181210592574267466659912252505222849146851029457217791879957879267238453954414899246693822820272385555116449055501874128534268455832596139791051133727075828259010819363382013274058587169389155552128465988338974709184602907140094697876635068451510844889333237632606010329115980272376587946123661011185587056102733470439816958231073397125261675777265869778704717076287017369931588158991908258700550529318172573352857915615992723051127633649699750634815122503538569858505010534968333008843278962390650728506724407501511835805117156362512037337053134431310801565949514516431642518517056932520404601978281837213744999689943804465130489251038204899742334573502706323662060996956835107475133229769550426898336524678523512969100509877105632274897758215684106928730208759859894355917441090897611188510656356952423277555820419340104341657853059927538280691622228472803897576964164099564486623431687209202656761554025759247843666719259619588578454787685410010591946155040516681861469592868630689358218867888978034433346240511246194429735373561181887597502730467621634542537499987157853283807959584656666764091207157788588096859569698563454011954789034436285538227434029235809160328624384019739005456985684933737135237046982182000908513869401349720925409181948884601877635168776883764357417417432291104897232159065513238437719474357979655738224259655712057538365887012547302768144280131400105921053374521707659826486711245749083324398044635992372567981115212152163319438044275269837937006651584020244527559845701314596217349096718977124331138270207763749440016049858705407033351860542769017583887146622035671830874702260096894592787728556079551589284691059336133394021124450089558401141837060032401808394911654237037061431993002723438884296395442818641390175177668740227757273515229096586826716685220938125204580711674014335925410040956190306580220653478406422753347054333350233633906921558272335260103378088351564580684351544762425596451149908125844832827991997535819982859521631987214715988904667044938158910835989900058461009255728877005250796572520948386835506592600605955040617639356907878836963943411762703264095239933638676908943229773628424098246930237327532767657106268596858737986803484359342249464959944056174910504935624123101090098710858911450782727517280265706759603462268534310425224242572813116335417435539552077088526190285523128417961378234492973498416340951409884671423927216924170366995875704846190914648446786321698896299559823227985078745390194373646403618554214566387589261456144620762226905377328451401075555026118780331998169629279911429216037147293329780401845894334753951058164284107197162121229771157917173853676400525636725131511846638559144093652024768583113880544363190910089403754886718071534564602884705348246683032098800698964561173433118075184295597486584760038523858511462341413899900443051779217634540784555715011454510286243309495628179322783275234613115244723052453646794310237859454986685756748188298897567800063756225504669339249480904721756239933536647591433837863563882114155020081210344774444314931425628316617708385906662381834050071639641903039145609059072314430248730296364119050007123384265620524789232450824251040510667593024580215210728210996042471193284430635632414319956078681304808620036276928833093980022918833657387001910539410938162706873696316063183196436715839553692693463996458898201552491572843834989278455108698987685876550353790002762433701251604277931087205344756443547568232717380124440061766608279193562569078201795251602557106197750852603250733697537428403335051354562489501771817456710489044562836174096998699623677881960349152402473094625784671996547997393839701006043021380430252719037860485603731676840775068295740125886241886069194052167050829878754579659836828579595610565291512190894769636754247856007161475680237725918104433523655832347071427917435845471489900705726271663625730162042975142060435815050951081956564284843418592859615047682198698443374237050899624571406391452475034595239787237808464540458303947455896012628318189377680362494308901254978957610428983648919241146403758093007319657943540791646552061064418212066672778991929525394358614885463957384282880378338660102247903372415113061246022190796607373025273431179734716447226111969655389692696928369345134096471232130634541120055521018785084033339067478810349502316642488210746323031090451055664243577441380603623356371445662004153526607481908869838160396600679727743011992296590727928317675375103749676376359977271045437595385034393279902796969246461125638998195218944124762674964381084660488609920806416070792393021387531900593299139155697150299688965535085617965862245554657441753154868523431531573651943496924071932730583136986786528804462166583228107402047206097161203175313447929670533849027983867965874817254116576390083805225408652051297029390410159876000023644672763940731065308541928188589524929784575519586338763861763033214022889335469744481554063699188381981847088681066408470821841172382798130495255438729846644703691721237124736623635607831171020962941639668633690497494123192287504487723106516269674833831778994570347858842625916097551063505728841016814235541855161369537608025375518755147346760975442278278593493143604815887208307194347750543423283341162858009544035240178859839017355569317495662997821456891829552821767531961764735731583359871880785262826636454853827417567970555057753455623942337257610813897464742272086627576175547582613746131863297780559986829486358240515910582361147279721340419586446129760865719611545919594933332212359894033770402818983647977987156831940226029274888498406413787477483989151504933678037904488331390987524210353400050139744143746599034509762570207537308609710074927998449268696587166889642872898936535628580686360541706866981351447407023179293521910197699673582386594002752645437328841069424611013735135026407808299412349541809652966439269961269123884280016347755528065847059823289578606741597501163362100968788251695859090012354832331517336995670954875584596526882883430032331820123418921091779869198782855019263064488884452505847228553986229561695857135893124871013570873217269294708361836292298117281016619280026934307714221748691094532791468190762890265131759179189628311088457107550952134061301977656522307757573241795174633844213654625291459964879477699343980455000733195041394553042559338320248212175662533294933014804081146751370843716535101378184078782942155360954741726583995502993598028398507200826852349747080757646118937968738213225981458813566868245143120801055253486755575506492911115815794521598682098766674050427937882081812769388457890488731705989268308302450206376360339724851189292959417487738510142496729226874326644993240479609527954296427538756057171796458013754857957247477122032294784069743378883160057464805097998289039314730638927974051767998017903754065704357278494371135236904576318143614816990449023885497382167214098934330829965062541240108108599663608039251138581113930418967187958851721120236223098075344388051649496813472988105820734931879051441652031336004066038232471890216352699148292783836850071368794105893902340484507383971974277526711998269782166675549168561721842768407485864560583702615709186569764008423679603305761115736056828616225088978416748640939585790187241508341767148253422873556600340454323501725855237300314776678704724934861962509506105416316944123106744897068832934422076779846570765955324509353000645844370114665534176868042002528256631873652942429063955372418671078593546398430230687963352748140960315403641479119453505014143315764966324508153304637860287799269551407055836848982696441990102514302685089569306950725444479177082067552739207606968192892414198860261345969718458873699192914055521534774562096617974885276131463463649616058311863347940541629081745726894634841838388415890574375438203819123513386312638349566168068045865419866342029568310642830139507898915926678096185308481253370796566339657330689642694966717981919544049984316799958796636052760217814909424403637811063798802251211094875449184627277118162317416357974054689283503378716814082158957723334706331987141247706096558319434569872844267304693636057681716202622154180396974940114346508386218564630329132595128376204755395198810480429535237082927063753585361056285391338514657377991392753089268004951286389023560298185558422879979785535170309437945939382021479616123690316487290427728698593754854452435329906676270541762504730297203148852357880320762200854143526207017269771749991388068046367859259041100188919523369286770182906755406094429686938216438499155406760831244100952076887609551948422127016144057966783513202104440125728507507565991608773076047115010898461577273752524560588767472064034091007596380280474271797829960321061797942872444591204357447999272071593955760558983900605978915574177535843003924971484641512225610144196920315782081617179690430517292502113150160697490857251280753668132891437844765402377557202460923099810051631844494923809930865124010917600070714075945368605889421810366193454054511691317069173804524768288716142173204316248304494331386561172668213288031190908820156580678530370796719555011604221282745225716386987080318031149006737419526824284543149653129114837596230120735441292340256152552506847178536463711228655855703422068689045824044690839961024411032950482295965241831135678877916950165290645425706760688782733146452482291274259159387038492494431811752782430272745229567686422682016827873093441039316797302031684194111224565374250029800089104290889717809212145122425430108613008048077376353191101238456997165839383229514518850664851186780016839500523738253651614313232063908235444654015719740989931344452356981986961127524920737517992929148641108676018865962952178229057722006912890767750956722560717713700625658064715769256165140936472719781558270649111626242173138111584182365150169982146979029484483721077931478597368656885501781767546515427243677350073445954228733338401409715171691148292877737181528461182138561841668755231762783085923548948872908141295174684302228169627759234424589837687675757543408535791962389162812062471489594667484974875068676319246191106005208515206185070919185642420563333114334495230282027956105663797519316824126753045361717517736036217904126088213143107834952563221165249374351762409796708260569889668054218362633843045775489427396832453567463821690591534399717436501269105658712909772689903091493646496487342711342830369065941829471414512195278594229675783348161458669795938939858348670252448527643963171225804239510261259288880218006745918303677294283352372308721491040389095978050060966466888748080993566102036889663423293271801847809704898814369692824433246042377625559258250160814249645209515974736713578229155153024497835549768913603848221735437633179312143788849462414905639930653858245468039244103061084628711309833141290841219955201057718071394668410249845210378177503964269980681985519928338949259870121478395847481978695028026499660115614626709583520859557865970384107315690555634147782287646887240932401891784155455418879285960570699479905859387602108955222148692444656262389135534109841330988968503728187324649023733504659654454985528838072974806383235352710932837780969487227427083164152345233467042934852344594013205992861268200593263546812240103373107219454703976490055384409694351591900479078572540356869446474357636888000085771555831880684198489210217685864069724033403669041572223970877579448087744372803276682064305408001536867229312216126268100641599727436326465588532350614195484138286504194896234235409199640987060505317090574291861705660869719071094996607610612328050182779930175431480393756961297935007668917274163087046994517518418499936054898195943231544968540592991047245533181731300193470202810648919413924231659924234516064024856258279041157927872890266698266443697906440854035695984753122277042261949098465976548824318872649687391143519279208077722848083267092319475872045816831099309406496139683882412474326802557088266005062008884254352278472505599144372280424687861668884929973672937279242458387217792729356023807013887048047562886007551135091779397058864411891472443758680135073355661374472952298956068145541195204568050617482222878756968337831625160320110536795979676106825480862429506971340843008361578316197599623750191199986930174259208310870346972541755698507010780623725848514288472311989928953651097566796360688669220544128875462952694218750548505220637451017167369444371447252070610939936628686738278718717214858308795626604855309729105969067250364249095451919116834379741669518178074250206843988084085551335337354989665508169174887739472689744017357735710010249524204057663994458110093346028856894653406841703412683969444553123043061423992439934783354608385996875102367939711982502536611175324118017634305010629654373416462171029971429052424128255062838427048915596632574966205328354949242714927343883779038255338384294227284874630446541017774930829115619536246316111422567391212489204123879770133248655729770475834193547529585718259868111297200261500278142418835706090311437526185981329349525464360861511656143558188330873055842727332558972044387755151026763535876784304624375157756082826384667049914591973964356381661370250677607191208063912803653068105408581373414508775346872522463302453677997836389285712130803204209674924646015499214115611385348063735881291940125147800954917020488963376300320166802000156533814927396261374498107689188898998733957331571915176862397420846056995262066599404656656958602715166300034107324444333395493236907929452682326035948851689923879403495113463467151419246161708336736171714887574010607453908105837749260550457539692349558540665280224324876295711417713092379568421501186423038856308619629768150782153625965886300300903769412575961198605226141606812900147223559040492209992240655561283202686798784487928326956615164447738444258401847609057426332264221310713655165896238231659403670603701792713566195465180766545806950820335162292340837189693727438883861454925832783393280774467021290932028456476622391155945301012344468118167174939761230318114925542158657305830932866807328876101786268465150279174767775411600273634732339394981313717529552697399898714814238687554035840979887478677602895840541673385301963019919401606148820140797602629747444921482603316582455219552235665764973615084084521174798552975390229641752689993470701255980594807417955569890952632247654489055524921517056163330335333900794055723767568415153673102693715999847735305208451148174009304588339015210129928325910234567560083227684462954477651989185752021140667543831919303365495111380299186229492588175570535950091790779707815024478168793544946130579910756105086882701894856370708369093558557063156936213687042884183968545053106636518549622748163126770956337896179053633630748084510561096560053160677474066474690740592034179896212424234235971411049871424177357399690957385546501609513784123700543883373845358645991509402811594157279750449847868265038008652807447861780877467299282669883343293107176577090658568678558122614042981731172189168009399721918918699874635883744613618908913719575298604555757017400228873951507032815276749163311247682311518806903040240406106270545976560226006244384928516078106595561709256411681758484136040868464328481281829105415548346284715338359853086582098425761892277343963640035992902195042343887770165359477086854366477364976283580375484734957928654811615343209760003061761886937555417058087904839156120116281154357946781459803254715680123081239207173190429423032196930251712546697771022451309201901496021417452866219745819038912282685447787260007330725656997783718269900737707374854704436597898342251697393800422444946199866426685961396685899087847850897007170056108061054659070553135544815523967082516236975884510305997125140473746752764901822506704066106463399679559896960866662167633385817123086254223523553874726598225591674684253855056329295663874294749190179746325302158114780958756562331606788651616893351598814781852120644170750262458543597145487676915407397978111030774436094851665805731885021263979338094480870835927288980067008118091993067684166754828000213590304074541587426436282890418230580312972534521564664282766196262281180581149137500520361004631867988525847394013883965726373111941882604094713605931824107821180415183278289548750433798958456470768834019630644801050733576981362113649058874187406711785907482211944020570607067482419715392043490000398246897033929380284926385145600153972120234454622308033623199569490603844708205997371078805902730169992852183643159952410653001606014997701123873114451112765939971701507638093450881630210963821502146290323664798676525051273444107191987855410998172322780196605788860695047257119310614092476155040617519710493158901080970076740814620279286744752714532719322462048653956431575572360643737418148762441813527548804723089893984618327943494918482571015720327856412853809046024318166591541575571541091085495091640324797887089509048377059293387168214718447013353160915793522530279248475997408003548098175147880994768295911664437696807059238424380483443723041010593053242794054608987577939144453286913406644843165482467562162815002751125374478747935612472381199384139192409370062653251403733433254507268554143018553096036065803227337323913992020572029136282453201862079104312183775354059862506754544443256502973845821836083955178422680334843777312419297880266587077406386829082493657910476374221851705872781616482651245975219955204626863498455427915177837204554676680135646964380678902609962678355095148388366917885939208245054397101681426100568402294281229153516925059734292235702934350616313545959625189051139188443630958966980367526491435077341009750914475680632608380798038999972515350514188470181307274634693992037669086859366256524465333520538207027379789471865967553452949622160257175621423316649321692679500789618964953034197116057440936761454865775466350865593611351453614713547679161329310201495132554128218280315610003059291275674930339039363328137763876817123483848268120231026420570780121588449159029019847062622227358803115496271581998458330407262812495001174521139987833818013548108592394354396031955422245217829078464728760390947216729655771517846847376825796350328583128741820221084593021534193803848417010602363880447243314939143797393517205846218843721257576654866106467741209974567885177756852278129271384980090898306380588243679346814752182715015882889886659821784052699353988213383771983444689974831155043088334085347687857758374807151279322549326105884379757528294001131552308422151786970286383701161686424247323378779072529742166833664496479371637283408865829718833269049271899211023361962741096243223035617679240523878783611411306318981414611344288378490965887802870136650748142894305886427502904946605814547797279868010322693740193173179274125505900894004142419391253102778540125719437087688642388117011292834159884469513330041834802640308135761704438714469789561502770077174001362657355326141420230263259895000183206280585472334330828108428349285368407006513245580214247669405274475228201770555122529542059673104598515849317631904330517196571645025333875525802970186240581723219274560165560793091673690036854380704128718295317830957175076761107796018443040126546694935196253386014104277892088627063422432524449929594346321806132229328046707368800836617807549234692188952876042979080937002374257546852616179517180516451697672392992976476754728888532259121308712917247676977391589531239397740249383057286722235770150237669049933734005081813968340239558360044916684088543843590082428608800509176762433702814009460959426029457926772337663282449980475268224213689685620846941112398684837596936476124272804997992759922874349884348749935663519761498179718653682170110515812517272315118904758614583462131333670138073656310895460005370023494157193927247904233904091017261615509663831232476665065565157050160262497764406678314264526401385159834316062308837363295023417586650477365669983039821570071856115195847899197617989897823321306590627440255049257139335796455802112561284708698353184446275510836743606502393399258797683167208036933777232811366249465418402106383001369801245057721487625852757912634473953570538956352035516973986585073258013614956300115116746755805425773313806901102048242121494698815300221593890816422194184882482283242161315987668105540630064503967400987731604788725672356431994500756480808791725781755570626186788309224619469286368371207073535093692286664283643098281898037395865249238215673234602376527899123272581329667505447934112742888729240543716978495805367333190571747195144939875225049251874432253892942041158389447109605847800270675918363835829412364478621986818048353012662078585205540450551899166087271692052083672328328821281487619333886571126351168962047215430516407573197597360775412612209175408412270897021414006512387955795588585558636943551818776391587040909612688384714634599132297084546066552665948184367626111736727608907046052684181543010745436621555146381619091428069435039021300757019449041571664089075895974598279253458201235188736853938353174626826660679893416221872618276836364172525260517779617086654605140398386932162937106284901710843843114052103893671885723162355386270475383633383030452745343130811925740430197091406513783324770073221835236284550770124865723071980532201106915150020719698866408822335592041597154629762678110046277719477845622648684540866707510905253616246519094713319693207097819051401974684338085692811405341836372126079821557452663314492788586701018394037813334315775622407931557868435039363052071297962666795783560413361135308441209910833384603613006494356040708948258980528747088081571686288956217030720518638075239246456839385692605480303063106288977099456182126531616738545465551540340482771878651076318588785138405685002680928949627879074385868830405103784106987873950903881116728688112345001412161495937315391162016304294599752392288828555710342469795819468128756886139417525320030004625482010927089443548444908875952432955474853722770276896781015493860186229350598511345466268277410000040960200647757783840622774962981864161298273485090185225188305061425329211010049405445443034267010761574480718886780317968056056636842276930340391584682918626659813020168899073771006493984135759320165305600130193991287157972361790315612625005598009428598625580769784934811241977639136105008736166283538134298192656770089784698848065623208507567689819310648830931478789620965520073953043815110902281116189356452553118961528870178020304364187003154331447476219293286978810048721562205118078149000587138038560133730196380346730252009298053510060442735458000751160396740006851944405796429461528093740969358109981436184264994004928620996484562362318631378934051238612327273399950906680421094205660959678245029301449238692093089617192791029944682834619957463976198134473951214685180557196539036195635859556347370412879795763994215409552494602638192462069277268854231036794668074859881122392454203019911792180261608840892263465355369273964286181522914952432333822534246301127303645118803517057247199594304037862267431030702801413856127396805362631667123141113589304432237145059192929148094270000707880733417526198072698619181523793477475616077206583655839055763112975603742586318197851292327981483596777158796966999359577869774196533463851500492646136776272692156072140381480543568314736573324843125638547055582934905999560142938738490759652187926985413429494926222742728424287966019858714980756081759166435035346669702174381363589747213165393935728363682790880913993722877352619599714422213421458451126957978834695097476539127395772371275186808123799094637323833502257546881526759265421293468706486912678074085498167182456404309065120680310070244723415478438650599675347015403728635083709634896999785254770563998486098831275185366962981809278583516598033040967936108712022275165179161522826957951445397438331047042616965678166432841092969244644827776957329748255264618702492804691513918367811339894453439656380271176991246557429631350516075618607265756890834472322151999313955846663400196434533615558733832871972468660062745062096998581538238313114666929905585302649461578887985364514161452853703603597767205904903888742312296857514239755516657758176673237964204006824462611374575155213290765330549035123349750204411263667943533284515078495550506676142228473223684704568783583377537740592327665300236432540106999063365450510227348412736781759935426725896410912920749573936065114797173172603116538764065035892195617742719177313638422338513369022214695900428683332379573702364340846571966770114770825093756815919585227867833137297198221337578446885971783144777210990516249638657017083225601574365012373549555638919378820848826545066951436064902795417321030384774475506288965373948902961805315892628617010562119052602645528059581818008978689616274371544104028511287565772592614644939018941827064815381690608923327903898830580578824958128605876183236082743056814335904433677539416571072731548730310681233060061101047333987089740795212404152876491343912613429983047233389634660493824273868967687513877463605192128569620404033550227790433023674288427866451734667388406502275585884066947814982414282040134075175850205531389117903560544438587504551626149800512894361197277476404660244624341807926197127382758571693261792084694676988945939196852747324180620965013607505824509567455118274484615053189260874701833064296015634779228888818375042882976623677440235814241736707647343833430429898187889019763673385114198349773507614359746959884300852482045787752128370331270768146442405065521354938598180861987134766650740385709189921402587250909579506332702855820250430099111561914432369422211055745020019656364708260197357807329211837820878676947004641898501284857709917469804607486519161022637657320696518148569908148843855314093460331922397484083947753165804490373002567062336513368132767351374244277539675308722600823595324033726414014154694771487244033178033186783633716723828942280429245620971656210605289309993960615647943649610126920601793138446638514378556705529842884823833682279930501469536418487438918213194635355367304759269182442862241796731908415246534697302716513719661621150652546288760804845086057220366540111673219648301738434895787309574675456012982489361903859479980227762682925894907281639542645825435057076128166091645139472740210458855694876950427140102785383725488704353769368994832086476564931878536020041482089434612991438916860681647791620095811769935328094918899931526185356964294103647296679530048257808756774932158422894715196034021846186223045141345551789997795551673073054708412924284250163543074005113617772161818320771869321488350437655695597421986215548229829904324243700957396078985300324648871868087190757938673959375502798498060449391706620992759340703640368308926817359991785454485828883621289865239369130166213457678618992548781544039339462779877216720873111198812411213103842455785587552553912015518646714812960201853527017716441748919966903218675567628959012855719534531038270360999067647084937779801611204163754492500692331603925576452181754845196337251930573702583284564471313001805023283320492760871171929340990065385975276525833906304633072963100287168110309248677815353093890608692914231834828219644000829001397798264983663654608074238922414567365113744119102395389569422589042506876353097033010873309629682998609408912913699562616117596607352901988135990654400007665207251008320818867263278916708315550198975354904039540954611307522583525079889746195359113221782600765086972874554740449334026310102641469116276218958269108043761377339916109008396035695184696763576293540970486036514756143025569974209996116877890920222574355838019737042196421247577022167645247254425270469254886244212787090452272502707679457384854206366553173089492828447631952263508684577495204423896469251730928371094359271743134371387393658800901800842662239365414588935938199399759467939867080473301546980629979926300150978144300479419369411173927553744026643213447453834561686968253544184568525100459851441325177730197280736899872899987189053938664500596471165985456599814474691959529118205343877154624649991420903538333129604223151599524774764403940603844592415938517328731025118122761725383404870923919930104389618822612901896086552662800219860848471707928465384583415397726691932792826478486229979507404857875035917415170859756650808074885304684502983429007816840635799091065484784030769786148447361442792264660966349905447494514333146442745444190196869127038758395424374182895112072186046494144078654712877559795015767319973213022160139253824037212125238969136745475338267210728646507112658906136457411588082741020498902603446691036303514823385523565423604125480368709546195172062473465016626875452508841397880270261215758415522427059828171800367829706908007316650798784911573543784782548223703963702462664522079416206084730699335132184016859837543415209050581115822970888419305340927812636832527667528241329167703556858304975499724676197562448709108636707001199248317882266162669347020768177823517698391056107605856342187404510344274062763076792503541981437514382399650205839061327724702166124556961581712445961241158564109527164797439800967668505691953615188705883004694500082359611306678426007124966460137793186625617859998326571908946980731869411502817553515769105402632608070170182036895618727776268831750150625850640742936325902950422609045159225123128697826214723234254508463667189106839740708619644428396336587538676979012157844083660426187703715376020814616871152169544002954849112982489534222008234804006335307936790124199627337737431701158928946538306418715525238866111771668738954366502642487007115154497112387745081939869105777731872332629994204055028094005097644542959280566271852250201556949357740105979960087085087376930220933842841660980103193460808197142938427223629946703112507626352200804720631049003547053731723050370380803976617453152175031780574653741154469065795074417197032194675290180372346785357796173151403544801877888430865906292650994807271484458098900269984390809301863248467596433708458864686619359515212401131187701796632362613330099886074311598902932380961170565067782342913477767859153313489373035264815069418077393978055559035992749484888094834458391908749879756939220567834782881566542062804430293757275919712214511520719305659142706504810570931961455428036231937306275053557895259495357634738659162194317888605562208780677017592596475509780062089725799543863458943375131023513187412459786441708325016575803457110578931366521488801925906886588054971155240506115516980286653734021805375038157368864969353542769120867279917369420979887715470539305089086168149684785067015103185811853330303656538369535684403292721608085919973166276416264551829606201686612503337902719960023998901673116489147613723892835556477384928357843647443823235140607293705844590262322541749474522301964001991745016230360251666437645756931475695597458773690822760225291666942458321040613626988319535793739987005246829931205768541236754316893732939470224007140891471718123061552873488504883955198297073163118899793660402029102241715647787947897218282451725971969821477988848670213316485714951810874744158924931571187019463286197891740368227930141412737241378030091898425382004704060098780932112490805313733087028976828388728154070797327241353278399185231625525356237181673613797108580874534686215389318121876217075825884656743685753114738735097114712490691160602304393663444477789289067423619571833057431413873786919144455239232586436745521345317751303735480513964692704590428876830275009778049407666600854999319826096729802718571841700367700541499819879594506487710977481567150443314462221075803210900745108522891223944610351141119665939326929563368724539312361590795893822492446792519458534845093757019881135708960242784018997608309834597850975080258219965653003015692951506410086167403473317432795003981879473553330180655131078598154194761149603675265913384300437396958694702322993323068187116627433728928563035997804794490891677125755141202320760031861541093662256474976418575655725187777416562708896839853080249585418530190108869614114917540026530550241357497763104033189424601540650852023198303571037580732731613156953397915005947489986227750960753698204911060971481490726621229424708131483264427944483851334919775075331260383274250585435937526266630082423215697739343115289169280520385611358310451522997352759055552406608757995511256408701255185517306171626928948410796912959437743932788488945990952778017347767367540927400731816002924492819752269840644674887705523473261718193175124402868030889311713430190292446162633164862925345631791006700400693936351301814165697968815854840997509781217049216892576120940204913998908866603148543479310975260510924107931596926314913004495551167836722876434831435565708988508021327375056275547508739853380331644561490829850777438901124313565172125706142027249027520167670651649637232338871733504344229134574484223079663581296333707248960355775012534188511652372757329987372949316395726971984944935945070601008621218875313586622672471080389866330667326701055215678200670709952325274078797338578921227314158399029962498018610181374636152786940527881076416835342131092823644523644863207360400280427775780242175453250032622532839833257150806963269679177405200542635392324967649425515010958272766124229314530701699835516809319208204166053521686154762302321277823564385876998191533458769529356534879562131037673380730370262945743831457641338188194976203489848112925860423518893307318865333403432355383022072915692297718233275835293454749390469564377421924692584809620124180287295914243508131362353834308235553461928153752498349267486769134663778982930236975097594624881911875649531905022810897159121956047498247475434210878951263970193639910568280348624262283897426065083738369308227491733478927639914907108590997811620645432712485902978142424697890828379876868702643078287251739072178117573142438142323315365962013256592684741158333096099345572401807594887429113363184450534305620911585115789066209494528921265781828061818828725452598883539658240013561783240811088042051922474420380655618960972989948821939497380371375370317998671907603633109404938839543502544636549352863439055198454896082964684945813537710161195800765950782662576280809916783918887303476276488667768539493601682021354482810643458270670744777845293215813057316173170333664376871521908790707401363976422236815723156672236290730710761292807611426952803194131523289907459729065158447597048010044072383227842011696999060359623267150839217971544544002450225682572674402223495088017786568690874439555201088878251923287109811126210728648481828142392801579921373113049105102681097422875628956757672882059636695513818580714287502264580193685116260585916699320262862963908195139818641599757972473763366332169753741621837661174048768951514130294904717160632526213677669997392215500102480739551486112258701792458294641552771531020083670278265005073122442746939757476418164245447138512338220583971346471084964654630093178832711023818336627451888350261445875028142883741066501295833199125318730416505350517072769130822802717475270705704881897720565365986996606420432717082016854492885763012399148212837978516430000856678992737467507447342590846573942658371975994975696342799393140832478553089738723580733085750839996131499273338704984830588444874280471630143315325261016335673398025691713540118089111028459114929998856389758312867215514690873774655673417663979324487354322542991890919854498569455530917324607071088796256764345647853561717821347463290912680038053415652197605220075188628866354235324294624533714486136568593294771961248629685429052783986859790436510054689758125787421090470863497767593164895810891996462002866372564469529747885002254030825893864431126188858384591062256444321019012587937914838510646878769169777398807518538021683173323134277276446152150143612241392225217822989254764343180078945414807744197663764460749176934747429616011633068965876105421683407729205709656541462729435864362510707595688859817323075486455826259019063419057497309841796173426827121620076350294620532981280706681160255351575534466009630585105890806846325997191826548356267438582773683755012664923868096162482405234981227973594698855270369167232138434563482431511674346636895791193645635914360224281847128193286490707169136848678662751797958050289433721858475741841961125745189473932052865429708010315656606489344669435679901155393766070688365237224338414432862002557233752528830828250688859615596764621347420268308065702688263796946221067322065122395324748911349539827981708132462035961406120235219290337143813030307248137846081868085554513453664193019234837585489660572306714465512098949044397409816366957844208693272717729953739250811136421810160590719034141847443154730402299155876197729332243744081195499726414091407600205071940540458589245319849056157960087105145476073950042201582892637568831342563515001169307747530991176285813617217734060179929661844039275676870065705117436822038867391591608345528728374424279461555872499259854669665929075420045755830426428664167537014173703027696080606802180535306305253337505629628555604826168519347445143515629506917001968867053526893796205648617036600059088716360980450399243278564080591152250396785884431152019856313942470302836917862994918649522048672294009229079642668633740286444298036255453561675651116085526946679415779026732901942294479497711605413768960092315973245782166157817550112292340513287433208201039070622404759488943465774208916857884832543264442656970986062083875780739499570884712364848045922520007826539009462980635996811736319381719828440967226237501502814268506701842155098326562777481746414926019365472176348946240838420179202009276730115500035248979134283890991862483020918779571476045159210646676473167483051390206527512459883235365374118883852461354340496060292911269562076215838428805908881088784332788533166047365088844018425000426682906854266854753684223290244861685606099191096380267287647060270790976418130611851384192281238683082334457556631434828378199334048543242048493482907115449069705972328931829444857021542105275154659173374609255439849268272122487075150756980979818415273511149800797671845993702815635294225957641716818831247143878380113433543821586100240037219466713536073682741276256841001537020101973738941404755661926683741037676761227094861022278686696416248049885491338110033498369316652642559810240142222108405152573719784164674595447335040942873407453383316709094344231902201738467592063666275344513344609815883094122953994767253844525613001263094449335859981006893260309317974516174651785827481890906965706525259977666299659281147698221448422540518996166956631837119200628736614025913225794423472273721705463971059368582472380289418891584107661905195627432490589740515495879591866716095608614443928873406940926864092280956118439406267277737107032276864751401688845676268321507776552795869054097478432586949288855079621107328775967421886286800750028021026586392859562369282516842252959419418157505042838980091858105042516554630081881153676973129498521765237632308036758197639538926517559497069750171691415858912229757705817145738596539045427524867684911390207221442876320307533942829993035368847179944381945518935984957291685213618613649155608103201389487779133366286704161508056398009151016575863755552562317989225543175824713059143557497090573470919692188680353581411243648141562232857280858115534059920005379307086466691772873944009827036959516846518259659475453701985294706554268043021338184875279646640472064077150130774783422057355026768853579621372545719026051271999252672546736114968730833675517570993908983656280275233677749679824077328075988344018042115858884615178008793844680328399585852456218231501968635946776701185024991630505848602286150741563830524356827467936172361400216157103447795928056720228566523737228453231417673457665249278311955246162756204637663548480670893091892673358866481547094473138419622610421577966756297707209766148614932086151450787997580645703949280300086490215624384530800752105181798580928625212626041745563522162788485574386235490991335326651279577282281293360563908846040746923837141256441225140464290182680667276862982270827037614439097714937102228757000967611691230552964523339267620203880059467999252140814898733917161773496118607896428161311279898583081328775585722225642501339626507674214305560398943037599746063721621232927952581752144913693277183658690253332449234189405481506387096727484986918134513907403543345696990638937664933039120375107987888135589474175374579127445160825073300777638897594543795723345520697325353418598310991295288644816832314041909567324674961210927768100706264845594828908702527200946400407782798536989917495432153157330514406045281460004064845305211683957983137392899195322790540995719634970617637519041485148375609681449304862738948090748910839266242227481444317727943759957234878687873614535853988063057226518776510691641182072386605776935138514696297777869943351756953910593164726668171923571632965002034958412726803266921324230365756342059959450995950753275922107066735008858725652077004086798398219657112073283903544396408887953226648921213231450018017778872394917809311246954861194084661933561695860123651736559431031470245146159602021888574916582332883436456808917632404690277633285557222552615045825273881374736096858257533499042946934324272324344340974840050015031924420588853080219058776761683198221326674155476658478031661059283064200292595149373371797046427480161235993209608275558560389538521853248934743889280265561662596105954049788672100002572491838934867833148023882631104948727034491500523215881873174388081255367409189666552222790590841751482415309454875303584608799561272344387140879866072498884554664859063276224854718064217791327027584973261781412847651273763078540080270899672003039237514463166672337718959635042179845505961598216299048276408190617173881581085855507691044983710125727013544522776254707689691920558156093837726072902843919991830083646621590171493734499894110064229464202027522666308515239692328128406587754575400944042868104564273738314592529620351604410939615976221710463066270196214259098438308318570605155130742902547065534471071446401522661009136578563559952658737283440912627272379931220834410887936938260298012031442071145674385041146736330511153462810466086398837381391833033926166117055768845957770502954881957423527849097203008223029163951536436035684002685046660704799377966987313707159631991665625752694865302874141418155288437364968711068904607861739491675973777087600710911936166869946348912455169098409146089254316065193953469340858710285567747079708913708272733269262470453144729501420953938949592435644264682147562482814974139370393335671516420235212857183360224528117924514267533374242771746396241820537203896877812402969940756881810658034196037005994924425149077385914042052778722682675172178442895421099402249314865441906603225376554674236042631317213460511902451593634018622136845905458833102766723517200523643454049197172508424422748545867212963887982392134470424378238281547190264508632924092392461041279542372326011258800906003190728264084040282418620716331822906332928630031404163301538456341621190589619226671031238849963776305768079474350733341204382761380310067378687501067842539389525267055663665032846084560494982810913155445207581553816091577790753564883800863928154811029046930645386103827375620055577262575233082610030205535115533971241863438531559279448211395253725167048634719511636525317517656578990636634519467117563731451786766310567394977300494828522041923410900654500450355441847805132567013534178136783392654011273045456989091377334759869129601019754106327266905310765223837042920928666255854679562469032710150017500769348691737784537972412341006139131249074633855171512601106280814994182129811487334997942950094274329038644558922591539985300238854916469638944423426475035354422258714011310959992837625709670768607439278530055160124706574656932039344111128677631003927775514203218800182153376251167452229968153486593251285262202858844805891388367403443031167851408840518864257671920900104314095783588345665927099363797316079103288809603639670240349980127816202911458377736392617067071100131594200072420576510009463712655825417215153458505712088668507144100023436844583594346902290021717213493235330954743326199773820706665920897076409916271474180297483630555888732643202141239412539103509397702672487299699973922041316466322043675324298008556667283338836483663671949082363430696067175125207962128538087596609172050843181818439731325882776670828705562184308373650570926532331247412214299325239798924896652100218617392200275619557385911842403065820201601023247594520273304290467755649543301057606639521833679208222107160490084523646341850342243138993987518369575322010409042696740340617053607585316357252649363439094984939944948223368218540447124182995581066445983932789781133852410853539077089012530407120787473212733942124382773463492581731136164823258812398494637750124292947344687147327644522155800108710116873190159482942751640271711233953903223494912632546339820639729769640365463033963826529229076034059954450319960811556295546607798763438563004903571286203675107131106259001571092819152005042449660230168288945231599685707592822179392495357220141909779935039326830740777993460015815361010146665291067675700435420287725159246402106856418424312433963562491832822435482356744186614872264379255553697621361858084205221381885960521692647932331472092739074330567963073095365791134501612401739478572034516521827632899431797659516456030095446296888907317521597313798534035720996646779774957130236193142706827941383477667146987032778174043663576865001862009437368331049061073977528144920050889989364689815437285331844787559591846116997307517741792714637355359608017025203727845705734755385147265962193898212318256226842395780161298944987418688597540492402936039715169306075478180482592975317678748121635689970987506916298230632505268560867578292608800506132481636336830826055223217353941828153835089450214637259445193335551749527929949766592699941905262631891864753432046198741681042766164740626717293073614460437859328288403285916205581145983948472239435481961449849159756800447506082857898989672846227266940370358147668965800286322938212751695462097132253569815652134019823405629712821405262349770751936539895624098291024103040408497884629328169879731344749552332832062057807630911366948654273997284540586061036502542432891438986449167237610789026245955741290476139844669853599145785946439911002872455982718005868949357956395932542336291148865540834346770776787922154494249204635622816360663129753036819402353961253029743007489920305743633467131218731811686171156108069086674426380911145540213265613183425778477852887896087803911181354807847867673836005044884183313215790671389170169831506911380933127746450307989600916297709019616302442267293191091512074825330338043291897843855570549097380934241386210878405996223561303395733577439954865788153606620080123727258732016593799085137166629518883077289280212625752055306451828454307239024204042014441993914580753344129772675542353593146232396418450376273692125847002230651555328751410211169661157490345135186515636812660048224700364484033411462140611402044277359980740313586028627449086058954936579680671573721378662500751426442151602399978813367922685159680870946672335927127372694267563056610555680884564028202659077185056124382547222823467393747443268514692881183243092535015556571565679687924068003877726569279406853723913150499079181755940745584533932091884559577829774572229418877225545730492706134207668808073532074683166505712138845846765505296476516338442997599900369957451659172677735434199247030031560007452954970016591077901555268422779694871581668294681979872914798540979737498140123688455477986979396605322518730072970543585654078458810887146904027899924193755168394072033192801784803504846567824347526187702376500534191754716805230272298218066332583558654165382446672667685113797766850393236935641085302198241009940891131349143837272005882726434016147010652354656914029164784847840337040517523361896791445894282143874348917586397818053791654953696869455048381614958376367010133812555694356524026557718927335933239966727050601233570544146871223351519587245046187231427922748459023894599420814940436645737062783988856655723094332777536325129876426930176096465008897520540513664924162274327259486822452411495165988142708180262254244466818518163383119934201183109089799841900164523895607225177621940748833122565866100067520782402433640124646347741607649871014679592384773637984183074191973795888295815582207878826086637862742732237657926973687735973355759884599255463833383129877212176858744506728280902226653670421733415950340693384656523746151800886521017567841628257114969901422704881722652580425678672643364224757886152366392225522244433647971851889562038025511942118099259157496147479375418490355838931416551159874772579029397681709691882623409053918736848759516835053553685273629478498179452842210687288843678559398190981065865589642027713036503989326508411486890803730538939295233576464380988561818005394369621541615069122410524990617799893076486179334974418304294726066096151239453002900350148798658504023451778701375709967287767104006289309820054735459639422903301753623155206620551933348779597364692709562124874315508517555099245603283691711006637594645150657888983338478888023263809467081914455526850342405615407645743021653169378067278220380343932223047402342703572926238325504126665464702124283239079089340104013543631306240764889820694725681589342913427634640936714313438620438344708492999840637167824151469067082857074842421169357104782108387062259212028228442418464047180157595622746856967334614503433434693923425243999290743214339808484021373964558330997329510975120253608743045459786082203134738857590267275275013774834808367000674695689450960837428155280170798929663832821355536394037932163653135604699319890107987215911648820408372295561248352521256382648017967508956964660765974520673729157295524324718725680047921389274463164493330634531329613876296635073445587266809180969626294710161795380704511015254521152887147385827525058602964222788424166915754630512729870904377924848006929100187191353667395186208707423223453198309824959118684743121489999517680864868183489075744149200221210563232501084423283633427009298802605330401377867706482831728642520721130492767961108633669576523614766104217818167835583477682410311758618594145871133821719949180810321206860265734671117134224700337467782872097223290573910338930922879375076989298208640034848700233443976352541327841085043070897580279735989191523401644196872468882513349209631172305432227665786519234038558449182116974015633139264613136298232431101948074340453875043496356468090658129676127436141181605547624369509547358671976202258861072893545082179404944825230223427971001914408414372234890923723125563362723737217837208742322477866482314812153017278290126648833214804278959798980115785690443100805405480698578475053314294947770560976189478190289162557908198047965970114137688532747457668491332095674853532579992159973261676192163780524553579214214423605754205706169065472656966501627906848755948016506062365184469436843547651598134003495056575072331272898171381754765219540641458414899629953196958778345684853338803761421053028686721129286524274490563152512191516652965491424530058814585378318040968015983002833812272431180933844549426755946177842638001947218368332052998296748279589470035928109239274809850103047522745250937571421615551924037191190066051327459947219122634688418026496790059310886028873656714204344529170311071074265725783760079902344581145803469127039279164977173939953396511722461266483663595864185098516199127157430424071065779409006136182439589509007794980423619203589616605214791292341552934361865291319508981531992468295716192365004791825584184962210498063827145797799744750918256025223712753512738031756857407242644299361310135014005562449567012138591906679920795772495319504426813055839877166741007890476047102685591887431349201806336981406088983335942897587103752133856850715163005301587704172634633628479537688978036924424404693516177767185941729952460512337069610330672602940015286215147964391370750038663467790509471740680414286159708663769059649971194040055948046805889195539456337356828215035929059548132363677367958353237321207298752203434467640295967400669365676012466553427017837185730410649770130448412635273118077189733502463050405970829419711553546202144597091522893240429779644232157269555617542491705981309797406183305511501047450909145915342615109047932480159808155370505942675523388988269909131273101739407711492590142745790877598857759784099415499361470604573306713497356200251270330112639278198162232980679840876943045399984182988435000170259263421478592495376212357289935755761503779536781795382241644717066035385682825642009501163652255205089944165847081735089767826817232675618904381917807870983706533968162192595523611283872184668403410940567858545602008050233404893844052179289254247165155924989886611749177209898956755963145557528066362730144133754331436513526584772484918780927668401174629648195908352781828436066858577096254425828410719474362727673200915957030263610667425376916309700922268495583322772483385982160716562496499763609564175197991814959892226856937898676885339058890063401935796588865743605774641670098665085166949714113574183822868388193000728875312197188777381837196193848219321602970092623459420340154344630493358802313723743334302857889391469518656296010345475912490665694643336441455456426794558467735532317451601317413937652456549161726198403872240496470189898245785404797483177062337763990375412362376475758912456230970852977749271682993881404262676976591627870421180860636745958908165025115300353530874558350202809110768997744047794199747420217648184515066458859869060659451690817582759304049642071473192152037312711454631616626307782787142698608779340994367103381446053839513470078829337387147731047356278979338018517783545843386333895292984995803629068475378750319806008444017768605745529660551054473905346091352830571549457441434059796613089645306888591043188384422839212718821329279535549170056231389600831011835514147738266861802088192967250095594307430675709130620337805311537937793846803681632154967595594686668134703537458982348930611113272648477918194794294140246977290513392096951770590068575213856257849985967402583450904087502213603205879303709269671477545261770090541425151858645540731383917556566373005081758313666730537296980004999053213839045808327920391021414351313341758403773667887729354987638355018484325751747538754390510691733368380852665845694547690562117519409041170528316593159536384778612000304826760920611202804268016190359321205003868936891007436941316784189217605919616236807970145096130733997828203903656823039790586750411666918316877977861779015751167533793682172376401953055003128928642513614845123191050039540983027775129943766075278464279372110909018860845639345306241575020855257386283550700002765536682239562006096041009021853393837895659011760129180306547247974909144188159838882934439755864511566275787944095032297674815123455136739936915296584310354779975973178247817390266226318129890717200897734329021951064427428475860946261916181496868024169118140038396113829546388310228143914081172536695917199314595764071708420604653435239016924217711973373670819682905035513385268182377222394444014125379040376542249388166099085882306559516028111846015532917096743246615128452341901203651843983911380787293777905986271158446821584210539450619310782067457453120120128689109959884541613368927812639612297728520843638508083623665281277000246985751971536792639693681778367642266640334180155671012553458522462247547402849527863357114746176767529382237455586162160416654042633065913964242207808630036105105337987411339033397479408388802260485391411006734897149894342637102437223074241917341791325663816775476675090883219386352890734815479234163042021181766026056772443786052651868267163458917637803627992422832553920760037882952403862066106799226434212124127129903373539911800167621112031010256008476806911418043570241007320170896616541988153461474624131971777976219998925905182973413391439528278917044490839325134804454051702023580875977199487147711656154313316071058575678508203236015815964569015586374663065032371704508916437554208024239429123808751689724426529985411013636843967974884925278232369727798716778874195713468020549863687874885849923511358623051691838199156006211043930550214533866007205271814671471027564585385902002756299687158953698793076395454765650245611840827983956720363339218711380444698173108305937603279731435709025836875610421782160390015676406687803841543005100583236229735721647752386515426499028007529830595230244149880154855952036956449463346199892168107861113133870445903057825537390874495127568910925951848171084911620760213580526151319607891245760146214579169882330822803535387061343649789952467073003787673046554125979720615310865254014292224410181000750915280026090231026832772945082262148522236438463759958154484178914861274889014909945386255751581812679188933284007159624262769324053725038759271403412549152616239507333125554531824138572463313433663318129425483276584533491692216640885929393724805617217207592000717118227623136324588968980092373495610943093982734641986501320888590843206381802204698733582133185015934156346601438452655065580068053155672075711511247205141293966846963207920508769135739294896372033276505920010497838920272449102871454540897885961323371087333583113554957505508570963812861461489823550145896500174332761525638930560199525482472419780710968282245677207120890864087971305773810735063490934469722930397429441022258175844906974145265349935011170581385245832763978227143543996824249667997178147847309043505516458156566629827344957719361506531470887665815593226092622808926460250646897188645666656909288321981193776301754495523889287443373279947305378565832567711498129208980257788595440606740121104650203916425870316876582181206647874740461800132938357151908821597593697784280971731680361762352496798140156390243316941830913062002666094666652544580306121684225659192587405705089419839474515861544402942953478557173016086470333809075334267404484118270110757468003526110492131330542104719454183010547358291735190774717667311504066637701755086942214545997105935289388187475528622545102836331793332242346580258653505071572110138896667539416496722087282773260782155139901226726176472595629815255971247697089341231497173654808986605962930231527408718060884302463044244466552031314747790621547480061086220041069846098506482174443251306986684597250441556569792791166189157716522680278018890582433936332890900299045965329372342809249343594783457125958109646363732674347786338044109836302891964471708586172401649217278857555623051048057793492850335708442516110412567025131865256480212872083627194224876811017493438577554281785185364577714136900612587473270250380251626703964714491188949125758720571040943070870452557019094432851335195709010863030756814415428873606914740335348930120138489427933343268725470160152082752177244288117183013306989290679300228527637400571934702397188489946141958210457241293185631981609788852999097812304115020001544748463135717382628826546605979303850425295897941997271824186548784657127598318511969792921775610437910862825841485358363343095260096184758300525172183558058664138581513032815419455723859209201694535616000212247568552052195589294233009390191167791992569574331005636800637579407190357617349478508960516245754069182956012063273160109172741453649615991331780081101581595614672324273549559884084206722396250877439968228207689238034514861883544723699038001076418141464514467613930574170378886007750558796982864784160849714190878962131845496736828703896063291784683799501295840087864551278561418022638895936158848162654762652748171560751347635708015452028093003395429639603126382962847968470894113461750078497892113229888237751320154496758176127471382781475199948813950674461709278502844145380568847155899862549143514865054889818566974989158724657024633579294383675297806162446307915653423020473602589726405746394372889079320524015896863308195497303291883997377816364895650043021199462087237134022991967860247511015262473721146855168370648445383932267555672746842999872588392483038810615696345283119978414099125931404596756027618548011402048970306920888388943840322129817011839413703857315593349505359769110901385105098317153057640160560321558709570551927699965690852210170820136244532385318413122296439096503215693697469228963042190636568345354490974899446001617364509545979595967961379978275664890317117115427382635618166811954971696474715861510783434180914576203377323053717320180452893803675838298216594293636671330834681940212308572512290903885946505349714683783967394029897421250957034576252570563268560192833847348083077963046891986552660199801368732318817763571599453820114452978422148815099269710582767923350092608773862543353130390408992127391810839086115991511729035632006782653718473929976934783841016811167222322603153416634646347882261201219843369811778727611876818460705783314973524468990812959118988475618192121145775908952733278123827055702646009490076864008977607659347279719105704011059524164404489724205368005946915112479878190766804525154996646443554560363317826800597992889230001677715502253255575472661910042751316970296025407318347552949043156544584157459840775345012600867028687806514944883734662106022467281270065248641529811027432269839216687433048906897902827733452356169773980453680759638924842830472031229483788274138971152780534882885690369203469975659555646377251743796523542051390140797785378775116924524928925932327205495914892423107205792793437354940726124314938157166764612304165590001149249204999289268291420638658583900856365938970198024583949877068094239928582395667278564464828034492557360091492939589082589841643721428569712198548075342050783540504069264664831876351026860046554884052865300969153988813897766959608408802789727750914755168278485200201640492063446319164111548724811710129100038120419462648857867170894963703598463297335116099616230968998316323285288483149877192750574890237742800269723423522520473421513322318532826919914022681064923410249824213810392921622492216440946468814789889035641048542944413621357507132133475625201609186500452700110597131403507145493778739438650896659865438454557669277645667714449357166746807670204032469662528801407593158892615427248395750511719489247355569825645145341045527568344752973143789171069707935956669816868330180406905389777987715297062828199313860774384083311218289098130973789806717549514421769924921239377973198306995475638250438254798317810569214590879914820285989999449527988693530687434854676556073946615649696799142076119841952042221814910761509503493439371148385187925976242981151628653592489003452659669047112773417433940754231889889110276546793150171599112601452124956595657595209549882475782514760076995299034173480997162601836898989042501079390296177404935813352664126545328362084245998924695290272122778541024233622149243836873883826003009485803951016593427758211699482016445992256257879565696423880780106539514780818175941169673712454402058809134636763289947533538410844641631815571081882409102531706602542525489452390710070034172113754012835396399229041073117046040223740999880585967960466301011839248837665623298856717678064830643180838849638337896933917123862029927923097599963894612103438472234247827717618084745545921235304497561797104798125892507739464452618788800172563924505083620303308011999202681159795543837527878862428123024388085239939100508869836827675217898698572308993248867827054615118047775936334373669991703011090576811544799352136828775720840893875210765618035694526047547690966917905071399164238417643971066789718309523284007313139080234487024112675846876500607579100623355919304135067694640628569990635587790577117497095466661925523923293426492215100365095231821889843698103520999372350993444940152136685487250991222839384589703229892651696322001853456216769507189245409411854923702860122222041795947049142604023011969787396453958228023581627437372880328350422315607262412723858275400659485714740969908517091115405032767281063468972647535924920023411344200489871358363089272742540434133523926335050359020520442719460329072071974165021326949089179309487475305278572764868582369384771273268290982784885563794114212211855438976637309611615351527488321626518064339797809989421765253593823049497460541622858083253457684002792592792728159621416600217183235772669460448966305804795527480786505823424163372142693454164723231571400110038899197553045303261514592241169294365790418428024687902032021694819813298740153035954814311307318167329712273342471667837296452199355004423475093835530583330450975593685723388964657290404635826804586051015887248005392683382671103533555640703570444406254524818587503151455910364101936927460394289370131085667331609738219472601470014798363455792270184818584047138244717624759056209299595461538273823964403798111799968416897230181425390000455346787127518036154352519775800833848917912272585574992498952740030452416636090088359347798863372466931773165119470029266421071363618689034731424794993733206802664088301136417350334578110692585731436642413908479800687254281167528224698152338417026354359178950539298998542338549078347900151025264837126654970096922668215623265107611488119673067072771617108213405400702558575028182486505307741350998873482797374990490911536808933768390744616425044511881472772739594764136494466930108527925530791947765461196884056040756885422499640785393746269543887219258771509448620702608450207310763067503142986462521146489567325940632838962277038129202318723744712285378205410079910492143439180503024073202778026661939912601349399603547950839883930059659170803916871530528869028713189959837145057979271750362012279320507053601496726775984679372546135406554501323005624734348846380558786282181533465234882876984271983482524570481089865464431264545328053602088585768876358265889016641297746173524284149834973289851650824800577845150512577194162946932534477041579490299045528810372017672861126549033000985500956450107985246836437061535041183183989103641347419475160386854478042080344498958836850306254380404442394963532890409494857828545937474414199034689166195438722596716117949785710216513628565739776064223733928002730987304815849708133690995511215094107526063758930274315320120361343956513413657055048873756869789808077377377571874643345583831289086169847960441354531004611813194357715547325303652402208339027512920502763336499866299162728042485263180340224910979429545127206044638440922292111835410514323242451418782154537073328361174238988439089822810250202861977449573785755465054450265376323402886793877977356793940796416582075416707967263453840489466836725442693784213194855941318487732876612973739913793190067422438712077169992374970962367138070717780328796486196133434937082619456967020030515471193574679688652945533986784043030614638565094590537914369540668866942246534962445788329273009405011511206536730950597015037871265141704621460995688495036170677119228993764688537794757192692029510375560678623171594490541934338423450361671683496586535860260123510573183938559617910534447313981161974864958837941594325372906844953490385599133198361002183613761334410577513355067208165184069442088154800643617846037791962515300664224919149133646047784932062669990300057981016266707665755815788917076536385906698318136118419543830954428858226681523190734395634533399847829507779198318191288075966588981867193262286062843401324125561777341788323512107810990328806607631498716945923730998341802099414520165485870113882395045213822025308064287614421715646033445945592623861467800584305194634719617148369416398133687956151839358545950996203363254825090550977615569611670211606206366685434328058418032124144345328329225046689541963587528917432426619705327160869574324468800816501113990749275623785240611691337102031682875644084878854283381614735291619703935215126739643295203589335438841406013504179319962290530091956423564167450393805199098253873899454171887455432490857970261814976862279784782132432356500534908255181939850094320429197150066625264329310483423464749028837255839599273661892501477448417642250868914227131239860873592992039102891059564110600144050813598129851076054528477801081802406759432051085614795895590288804006109404870319757092827213062298889768744480743040339159324579615762206599065657134543611505783395060971009725183775483946359325047601286116602828741277651216255345616282952607952060647450023576481849429721998374453558973204603566412617543979470421604592661818914965792390030794430504985468397644096135612809376837437101651406369537722245170300339588610458429613575881209611112482055310153163173965184100289156540451197976068688497613753884638906155801802562659423879277823152282966261317634744257681138357993309602046692048498326949737675425260680417015231302228928935916229714858261740627013054696277116087177309964473661069600836154375786222213654892327399518110104238336493676191366981702460738363209892760139104235498826123335480869047047447040697036937073589455137159933809676538683602394727136717174092999472358827905117170720810890097533896707777866208920220974256431784011929036265511392359399928053122419618338508426088258631136928818401110459363199814307090045873863358053084925689050680372944869955350214088069289651235143771697382063151241479997643651053015865332858107598841516384588412146412416045350703785888160609151026075872442910275242024513320599624669428949909213229239450490386682759463962698846002768696587775587457536367450106383750013547469233193620973741885003665910389306647735163102133864600995209363836967488671121776886596379653664891918059283860262933551851628124687371972691546714048555851553475855535787980230908221773844409599227883105205437427425827388895769221850891427858881418760274273420243971455406276147017538128990117464506013587625508033048565416218838426349300751497594352686538357885575985221717997335887312311685688126096418934926326061341550343690527246578061895107006878599038454637622426466672796916294529783448434245460752608897128986163677531576496456891007204108237203688320483887654120309090995278180370547778319156099380595660172311008933790530385137474707879902842320524575464759095883730221397456080034216210868615678518132635909818714226891556275680276411358655148985717565646990756498072198335332988620280111290484859937526218576906123404207686410914955060987581256904130532904282595631112978502097020198538372613248821903848148611037862477269576178390323635640810793197703911100558378119321451621482553994327953343089698506401350148074555827132437975799290587022954401950252955837564302008445620615341787886181852990756542362973687301707587411049282739039009040600462876456822875385888676862409866628876183834319652006881107884770816767200414347493118315834806635645727063917492505585702026080644278026965936123199534158578784516487272850636141440555759163024181888787839621802186900793013065488163719555754760294493817516441284134753446241765507263661374369358704803865494840520953729982574903561253473202711840614914834909978822956489199662520772993977623943214638953188768118674395465291901605215942568557644184391292500237627139720651451202021960252268074235354561796505713786042369981531541622865080752008614699583030138618205611318971522964967426795300235415156385542526307679599332888041983173346084879852494345928183316837435972672628129023594493717336518955043571417064485072184034777742003216239632334196801936280196853823343466121945423396686432262473230140017969364409431625572276251514209881104063441946108870379288150336768558220397934601527423890118047720598647309038299835957170373992162385723568319466502736327795074100587143181269450165430917535789450447143363727949123694700521788351611601809817981434718920675218203744144538211941050973958775865784997575429694678597553151370951753863174807340052423433730847575636565182214731023329329661313297204414064974827366236364387364278073834522456090537561228383362707895740461381076825662798372209203096722851693940089308834725640551431698940970364430169488365195250825777553712504523329288094686859960442217140155246828502451650905737240561645983040873739396040703111276071208823732884980970734132470294040788072111899788590594813567330280578785149540840748251230629050362649698339639699663747957052424188592299360527170214180051996076211974285882467785861635078561701590147261115433921151180844389358736008906068057420097500113079750498855515327650667080565739382797592099320479553697445295244871974073849850313750478587751422219072896236202213031660110323007727249879023518875971675640634919492403425618180220123347458256884234683542875308873732543170986089248961243925350880075830075274714916136218612353709094570624581683047964756720527556384815983508188678872653105129650326743592914539923050055166219355013712798071251523383546788720923073799673506417063290253802140899606102529116087069017077363543026252228506149349088335367389648353779949710034593022682354454908961530920804034667016281712649836783646392929937743447852550313029161332836962474380709664984732546169564134389225459858977251789405719417204252319571850659040977171055846246134768262531628605389215830824815242064871694054728059310688232300664532147023807141583222316480037200541251903352197940440511112378084255965655704744311593646113779082739006964579169032916854098830549061237987058514997404308388935132593745645015096209801832461895045323963068006433410693599611969193105614664011097179721180901388519047008251465471215172594064949384542654401222739345651225415105908184885014187255744846518269979072378436633903739814206062904555215401360432826389981254152652941555528836077959865269981299068474891551497955443725657067186855570646459451031708020127401268647142263789154453300364060304432164180862511480235711186822175563726948592483094705329206358003047178435202603023339812748844541275134712537530097974948036831006802810744201280119567037956194553417097825129057503265589026826660469613269509566634113787368400172550429398836742991032708427132333945834043052311337889435393687154020674719398185527066622988104738499290508394980862697271331049594376340523958000413701980261023492639822132459723076701680715341967952855020027170185598979226417804243318760307036242284219185638282293718618096909444711077623138983036656716030828490803811436057652546514219354053096612026722268381959599761857777608670830528014322497203290170715081980727758625020585081862581182408744428697273854399643214377851745305382530734515806461856559715261094276780086698461780088065410138109942135120598043786190153015864399561315217589979972633395839107456681520489078099054933037973461003269990068237462057704160544253690002936178529759081766594456161998257178428271134857933396690912864864009269977356636424133178299766783459437715480264770129637135005059293187222526443483245470769674287453068845024489122718576429733614365893591649137030654285949961244766265683063739251142312579271823070155572693672095383581052095013677025912745212049737830059414213837724121273623690749240506279035444276227798790872896647030579501231570810522970051264430020891318149554460511949944343295152188452608053626376005255589795260137565111027798522995240290564832324804503605729821837629116808932498295002428272678991769605742660221682361417880174720294532221217416818127867600237600713045257779068226715682513551386173490536752692295373273865773458862150505438782701276729271217252078198987391293053020277372126172998733553327478367808145890687338099419963397320518861240408109107836617531617090047110747061574541525173876386229156650220790976485675837691492332920225632421223332146881268275313571608791087746210288229891887924527801086274919215651870350888331586920974554279286695008078284093824803800594673243202774051124225139524610425504707653068602184219265061992791353123808550455671936757860144819894031928273053324892192475896168394293245089693504970176414104295089552895269956172216085888374973799603302153409350847707348473152447417379988038220052510299926565233372504331797221439100115953185207900076784341935983413187920673174479160113988314998589758604137070749999646007416590629890064789897820468009680306291142518883190236140395253589084571907414518069952649154039827051272812648880547464909065524343482009549841335334947013128487470388850004997696780313174173998409347397365815005126381575558579297847230740417137883186035498900603673138235100738571442821678226024816054366245643023191122228676789803706582836988648870247092342217438094125932185133877490343138860359919856906639863030742476392781477321152886702853263071354326711953975040309147295690164508122953009630248710330557801382504995693858177042789325258321088096596574803635854035563480169418549746441269885329544856763517965875427990558232187223111468186436398222408104576119538765752167010422652792962985852652600060454477324243267183876040787203620135324678194511009256537153773461890477603102155522153049727745098324391375579925391005408302361947691303467800435028202790520533396731563474518097370358804756171459373048941236280297223049466855184878469473290098580140974633933218270955679251932691688380045040918619830421724250125738077018193813205685122151973270008910062198598787770832553489584225707110372649314790760221162538273738722135448108167500593960110894049881600842925601449124584256672908527078060234847833523019926558753728803282450559153457167338084470948787290179619896367824737367601450402788873038974435867194118050291578484853756718897207548987619685439761266020273754694315943563902306930786027017184002121206868132843490871540340371680285320873031733346130813037386180303444817395081869530165036586593399447098995720401046374893979913161347136896549435655473951635172577948571394963698558845462338895965550741939188512938878446645008242902573554536861250208100997788426478194146740246986306755331273461229240650323836243363410818657280158163566944473117892915196653107573379654612072036625041979337251958045564255164886885380819571486618408533286620458398779377953033016605830981435950046671060254129489975916074191855357658369446953669379085343713316976232208904117477450086470040652264190872244428334084822840064973909349733470603287980732496341079705622254839283292751961858864134088218381168409117539935307179118499827210608338591402949216953139183399158357730556595962593274706773013663360697497366475090162112705424697218533172613710787184638600919521102628240639005488652433409244487771648492135027646401573763854173564081622428560979402235637984211421155438062155751864265380543580432735467160928712296336323464720319886029011910678124727889113578765945531053364518786885814068711452305492684165564272347017800230790810180586606773889878773760631952093886621397862249919203630270585825133373385450964412881349913182374928317400902787985567265421149487197695128538487245921990169913678253346155160902493720086809034360216516150966157878428929249821136909980113492672946792948411328798757969630926741524993273116803898255561358058888253954632426761727209093199111713308579128364307113542576717471151743330541259434814464760393797013961387575776872199472058985637323150857549922699456341540212506273485536646147685887497830650484735445175401593096778160673290678273768706542916852280798430150651783566369979150697126202595559318626093724439381836728515082605055956487255443258028491769900519721175884350163341785448604095926493516569831675763494842645195462531308892917276219957382351524003393529199591885256002108904835567308268943235018509958821314308015678722140733218279067127473864279317933846777824429899553108553708002645447151092069352571548534293945643270653224210265785244227550002075062507996103453011471698294661458044492671961943713249668334601549792303942732754914487683770214319741330582689992125245742068053699478731743444000557197440046468274114829880296500967434795190830165142430423805755951884684056515951852037445818531242974754256132079612285514689770698379747721425738099965423752931226293558083756626584745034290171372420939424251143497764375529095413922880085335001522286675433341031996642678642434053771947275111890939328272648015785963067919966044545095697503540566401073300415715244927924808579929676455824277571116125841864418910216044677707029344440484886707298759565024793361369782751879812580652649147021335938828448584874700350173587717605442400321385542977795531571320780498717381071588624389289663068835628905530936809692411584952109996374397763255850089045162310530607787316780468138219469146076839235719498335033262467313416566447634031177378543846089098086444238769559471958823563795426584319804472886297665080525721999003107780392391868735348875640286368051350257036489707720360802417104649530303237124486263204264979781060832189113496054231615047141722196528163387220480150868710762369767508193514030646697811601899541106107682435018471779537094386442054900350469556736931567910216816359080142174324570757267338252529818507618827979341717318641554980605344528805367902440106504112751900265932119650602267833133028817051069943242542545270998732631341685442976325353055124096588020088806410385010818349408517822775633327980701187567736779428952490618455205606651919621563247008712733315721627334798269049172106381803949482271299434445017296975986894428371507762904844330987414420854921916361611966975749398186073500091798978086640059036112665658129399063540237151483580502862860750668930119420175337216443607798687744384673743097700125570676649746967650147070471098478020869063505873753950277495191679321760103747731785582504994080725768530956795930876247297048068049222922482266477565958239285963319029560445947874244247270143424725082754164436021086787255723656003023280405275958388763972078523100949488964306900708506872513647638183323206767889935874351689362475536429917836040498449783068382067653062318306701314415973942296946506020258342700124420414759116304600268045976082119094566299417524135084672471938478982589031457133648516396386634589897906032000584990096545295734892529462501083039979154661086581402857825403065651578342702821492275093392447467276524160929414763932893667549283424687787163543017688311867617143860629597240729256296689841556793737734732004532572144147566388852771599464231010228411489362918350521172598562814513334383518491156956370695958197589955349120100902011697549055636779084546518391525350957156449507929213108133180779833064917477467829384437097560894232231043513195173165716714985555351590742955268546905883851201930316766973981725539466966992733788694445403738724724157084620720069619957522116154476008512387459175584047338233324020849603282770473384046316812238415902531716976478820543305830286447942068704592402844888719216824121244741407895284795803509804318321674020902844356401660133450781061459921835712852130165735186780655803399793878826967189925001931230444504331524961790948641195122197047349213567606768171757907997878225091543681090851820375948038164991009414028909491333654064781173216091941577120253903186539108333982263659310496373124016991261186653249227595040517441668276650304723246544422430475146173649558000498022049257183301757299114919073641030656787171885082118198074599633579142084408241189699012408671352005903070898500556621580473768164276167413464006887769888298333188817666336440621285398605366305145465000341725007074140639746310451288706642388284030727974689830836728516985550867569022745108578571436739982268823691352056019538921335355977118675467753747352713705316356569062833554434481508916982661486709518563837039811753717340252719912532755911816508409481734714210870541124385044964217093916190987930397910417984548874647621643999191356885671421197651771651749563402466079979417648530532338994096979975007968512383380787279121792639872672091916656749067400933771196721169879026423822174154623977418054906026285909298939868701831242148000892173937750156083678093041745054287090328421931026784497788681524937541072432382962084130135718267013792637847789630078435865175120006739765779208136013898652227837284149190065131854309474802939163408337243251228211236673333849074181152915597539787435993745039763865698713210919632242372375671304590632033903741879187347693381346206674587051164892687884441168133912664016199798806334457107162243278089269985519452387943285812780841197971368705404003920491057762243718727292016731192489984397295108767106865254576564432519740844361182204871377293759187353126139477552121500744561834151131103241949196754567185195735515471510989388908702767329672678394127293259956132050456580022904291256470310915505198500779739567755665431883225642596809262606272405107451965080091249186215738143078010531155293814525858496193417642297089745263217627103257038851560910938148593115774942249788300533086281244772382662018938575933130458022213736917128675847106033478730890700121443461401998803951905934903026258448914561598219808259238842956997490027052407757480548636629327476250141111631742672397048518015698577205245215471926783767717397508489579692235704374774511594265289216661358679427659824564738737752301552368567019141145955011972538649285313309722113420194226469422689908092935417693390112413189874742673327951702642134288610635510392353345975444900961810104329603301172610964564501475910554175534667925474105738890953643661240101381367713473188698441864758944393796876237944156629504861181823960673898409923148059141587982887100424616703600953987564315670295477671560029399856701502952084499314485342649836547516482389857104358115176001041372249895625262927092782799379253351090055439502603966283516976447709833185833701177626002733864473192501244541074188039348828155653068403853855457067322966352624139964181623745931558422388720125859318597745266867560571047321297581621221102181356915385294206449203532634359038516689953787694188336139067988214863350998971469673610414657420934840260312355704989325248255275677251516582516218311740853600925463647353815120302267225236951374887107730225070625377475982072681603228874845448393576178565721962030187019607608056969642600912493552799167429313643805301047767306854098343407363969241010402816137476482028394804738331402327253503694584639508494539452294362004442119066434540548102863790000695093922213366748403773751638936978565338191091150609916181484634683558790771878228260779684236073207537031463598306189753006467848510231410621586936794385457642909559075310558025705749441928415761838667068481824946358491249880414429226027778252299639295078188575256861600499685050397240347346820834684148559462599896116228695836335675778868239403172920318495067089776015150995856235050369062521468408138988456421788144633685400101115105763276584522363911469468149965868183975323052131286797243976795071299535422791737676135380853352302972577880696253767122776763728725026197883578703791628844542989633572624826608512890657222244401276632156030853660218932593204443692393959294108425326005352938566180299071924451314633995898715509876544071392038824677600276208208472631026340310534402537048604379924936764975799713511492461761582633951500335389635903726534741779222619829084326178012797369411772824464167780990835807423442671562626654939423681170481291548826648985939660834755365514333089129836323402738644540978592023519720804850890467398653859202341433150309522173674816439842844991491790887946574029928238426293484898781809553359557567331016001324559562906148142508197418625506705528232764349486569875040398612805480716733912637253865270560844725502267284044248333249304009910160994813184379672886258275983198574889466240708470528390698998398759505805622248250096290832359607450780120533125029180558793347933332914695877133778465031212270765453985976432134514709144768733850046063499419650114366631689199419163266610620438415930462628304030779408503423750944943246144089513981816241939328031806192802112319804119238438869780052033661635035621652853749034235167175945790329782959078149326110893449151177955447266730333022539485135947759563169751047683357999398410019254746540487907841072597602476858805019515359635405948230198377307284001932644408064856912607441324346363096512190701175812256000802874982659223170667150903061960535875251248306777287973874561413257667470285480935709287862581821961684167584188405756043732598691858727555735706362032243694611309056944231884151634554201880469792234326841139412235744618233862804792134318011295383942891030403319163355198638331408845442443090558236131228560298203996391204669575402250111263699173985844339176530920094382588753800281784667536314689249021273850106132720264990351851457023562822951015574720353662898701787661469231726666480222517782077987338230319086352669986558231454418152493647331740492656153785348358431784211607751559588440590882655129482811039335953212062600873460962104948197391297365842257382086420639321937311641869050857797720546684823680689383961773182756000102465421910141480787688373731003486950492132366311973647637227405782776299282926169426033748510429084690852508210584467840192608690623946962424655751315252316668683906102765964244586236799713608018709912701838364590143009962096293139039485681814510092590530000322664452389235199124828030591457436523396790591874148178604257590124594492517157458277084558970652160225391765031010576774669256707845163332226166959951197752320232443993477874142701384506880472822602948678131426217301232199573226566601652547033613246149941338525585995743879712786407260760616957130512234201252900819060455097367001961350406077349266812487874398770763895902328456030005212937933567662952935682964893168476984883362945028998997070044854087306439766435587337084085557457151997262490676086746601085900448946442040737343971142392633082393722737853062357235914783198106951913060336235625892583331214494290033287504165234816749397229812678699019288499927584807958884855316673891662014978853814013272609260771226633488185545711517020881769781115132130586727285613625425629561090532925220858630721965009932715834105014204925925422789024491449900246787610048916101132764053398996123841656319981633707362873376876008489771218407228819821662027790080314752569190462522726601385998372717846308319650679182520071892327279157864984369614579748740737867559061923599290844674310413061034813737409545429452213440469218963277721759829814386858659840014808759298573415202392890556755866252633263235269218800101349761060127275866562412834337671534087846363481791115975688258859812098564854170112821526405795879325366476497804735668844406493633659079531921920153763767548561615351596527858571994229626909718182204083391377708014594306852076933085344993263631396201291429026093283675062756152176478470864854848942100391239913079217918612997275091708426223477495858560774228308096424018710921785422103042173774473314953150139623829440022077598813065256669012609282945942254758373011953144192211023295821927207887785271742850676445139470742982397165094259549079717530906774458352131631837229329213961050251702764596989903822825204636107440857785366022824285955079111927017689760711535120223039529242804767764289068451556309602661370694731367037979396634968199191192925274391500577201724849770288771378807956677236219566576050754232696359615706155135512986379024000667698734134609739371037106678089556219952967020335332157715020466013639327129432585151377621922118510499400115865784691493559260001352491256309778361452022557213090484385455886036161587518348835677114519167122055114519410541480443267001787088591633968737451725020667231859940805852716812727494760216079809398904035730959294933574599017318539544969554872303601818658733615164910174606823287194326301838186597439055224677845240492939878950538901371856134681729935770806506227590315114256187860073888155469487194704133761285644834515079262176370982006119039006612689730898121653130584269507527480938236376577473526425119718075796621293270189624692943488232579061536401947691248906236696807085373678900461942955793918703568310116575944084554722170891706102124347127324474728127489888460715205727013210971041039325089583055736917957249457622315227622776093214659660975361327699647380467095009019071170407068402170980948889801266939332318368476614770670373458008704761316773113393699220605939111570399446295333532820260413004415721295074946104625835741228198372858248328243173208022537293926493566755198935547514372542010444552110444365538382001668581445009690963058844425973112796967132530699014929210043163975833027881139015369333828041177393344708587026419441290249774184257551859841634193584347145331392161510960300268721959376607870826799860745040299448031809451642573602727037816573717440154242340315207396234141783103975977413813575162092552477528478462797648299886132411549189252698598034217937724717743058200852045676609766139316694806650176989688281805918643660512361168761136941351709166127988943479776937792125759384973062693018322253791043124265717546656139925964109755314581670815601201163989344395508421611645613439711035426146663779397541043615370565982470064741422858265846166916293992568508260969116670293986492438887101315534289306102832443970552682084064687290623955687163665417321993058779072956430915250672584562392835286859253881729620085564675672402204911254401658533952977198681243706546037002422633992640240941254074925143341787753900025945333362395484428249183560918659587786858612910400554474530800820478995494174152964769779231701263779457203105557539129031856114364545235463617253360791989382142258352785373636738929643871938044481853704014054117585010193333013628834810627061060937618028331724049522943845182666329754775948568800833578252821662195720314287181817601562338325490855759999697977416496238618077261382981803290139848467359434482700364727147048818594590857304242354230729955586897408379268324958421664404892303349304576048255880392425201372452202779236257158950961033566743706581491462315281801029756148374702483269919266603110022273537773677922237839047729897349515701076783229516979647877346914778761948514177853329768756449680350133185380406535125194951803638137204249133957015900811188698938396353567186505937068986077585775747449396754629874620692250275322063934628849494162069377144848522538129304835219065469966745974651118244145675131769835258104699983646470973401162886530817563602154373843314519318085348143444500540242016721680252700256927237886531377153960296109560112855314902855069849649280703942356453546689534153741478872456411416902666938190190049660930470916967766225162903349324963337652744497231078740050777578140653518377432625220265912398051649448376767219101526218879163678013622066647721650296421105573802935881369027721324398065207077627710255185627379363101365265321633086729491565055048350569198095118345012602432625761617755888904937421174299982320276977658693518758756035996083545988058484492139636144000308402409015049960911541701577044365277414070147008294024234724492264917592858623948801160085079891739322197898533644521628707275390516309945652650895755433240127479869329973901642259685273371920957729315271635605458792253194618756008371788052378852833768288532557762815395347259142954343887853948403804376136981847517815569106718816741886152833025522922618374254713664370026725444510087205744446084496822640915995402049688912780405104780480381106182624522858986591319232927001840991919631175921463970391236128081572011233159748960480809457646113832733680299450930443977013391573492126117321598221992199925569672935711364236203279207847616451416426683254182459448459721662145622540802264507303041242330697159689203867879532903244197850540171624848719508305660882533467553493529615300210499866224876734124458322335065540743196791651599429045298739431393581528219050874491115171056466969092577572187800831016217611110228007579678111921838798954329193137965859804389160843447153420349732658638660778323651158765954329221907155780666394298652696041734284550436230304331777752142115818277197943012880199535085957958820752121482019254724005666179746461767840140257730947958991016338472891219749658703632582330525052289701199892978961313598857856133663760775463523023476445000456324007930050406753731982460666575194222917322923598552921219080199187456007991230245112722710165580376209657939252069175284363732317281770348760465521484840041843928543692504813979526018278044301322949318128435791589166380857164097212870827776304057260619102598969806438963982475401231932343751259718417529384585894383604515249680058376145203069377199116867003364934487504024731819359472035716296334217604987281373908176851695119679125278893963565767356195756000828168838102534266299655505452568375060124134978664961701921464760665014063567747534505727406288789584969319378550714899997114985795947681409130659633996755518688779884053725013096694296258186570937507190850472655172338211096730677162491259760370054603195900864171383150435438498670592757304725554728908358403884175636492594324381652001519759991897923402226532670111572421013670485552407678091221612278118717678607634116700952875627817926130431584409923669125464865706402327184483726261706515644323744497605290659150382481014507457688536651137332223840015672302923061525008520086078829805423767279886612557702743384408749878626678528515804946498503373966209217418591378609290689180794177170911737003818440474736631129610163075647904337733993861532874331176130270935955331444738671842662797601745731133309435684507052023469063761991461415292398149033439579454082168989741215799620137886330770952287848082666213139658777664804116345450849394629570038479007363409194782040907414696831030383932633915054977128187736820489982019138067160482387971213646460758247805159109020479837834691068773758271024923154303876549924543051139495532825433757570829474916994212527042147133456353827593613518657767734808325962765430242448546268336712850816876421602776197852167415161780858690236485379403945628916278134728545832798846395057668124314320797814917511791476882944735418099667103603808303353712323804278261514094634966714010976711747220449024160016151310618224725358960250919212390587955190380985210298553029793266036280838883358620855129461741828507187257073145511876406807944723874366008318838923241401694821782083594361079870632793745147908979292212425162119450684215422479046509000546707155023286094832905740355661428791248617230682827326052467375779342139225820151224030860212890332157711523199846148361459622156429993307482331094365975481209400154430053407215356682852614125269502836172106194633095459293625253532053346071594606983514043762699332637761746689063003618669146388801342364652882232974263059701023236150034909585751215372601398671362574798498847649719036936966313451319542479911275741540382653183078236937733149150045083082185155903194436021765535803493820134230754315220140131082990391333769046652914947138724712005895911294148139943690029513833943941875201166383329870655637786782156811674109777246011070189619485520690780821285782536178553043748546517585984098752498133144923788810915599410982133166253558079031933110742041948340736550302434511073708277845711726892444331869782757933480073591049109407995331817317346499396578577522702258989078968018717513049986765935325642473475992395060908148435065095545649454172962175028767543559851677454000015291310548099773990340247391216027939837462933960018019316006000844768894904796256901258894979926682526149279896366336623993537196786322648918002730223569208555827188516279609632650118280747719731448792758202613942841195024964419057005716258386155884940454553663507549113902403388397255525538001157139864525473095805697090224132477885560024078097467396874972768117322333695105868241095593599140889686521797208187612419205911198524261634351679823834102791955824795500561343151084967819311879332012271718414970780040488222364208049957180825853575694326676881568483864031737127298501797924783940349394210443457878658151146089260413284712098452292304341738615839994300948219429936730960176108450048277318132565998236029673170419830080849431081403645096667054764161792235739832542622332310815896324613209277131907564417320545521057047807350615584818701326300012533666933960989226954693215538690987161476945769909914184859777493692046280008024284082837440193570021128556926978445703637525418056308379669386074454167570064159923147487957953859373323725164086463995590782386243081226020553916727308682539494509248383350949126905780810211303987688742627622443806067301649790553820659163311968753807962931086941801457492536708806660932593900045790923679279092310718781172172645627141343775932333225043233796251751872708856303217565370315026981263505829327701670026599467449972267445766224712805471981300750280356385721939036996031904853632295127987917584967253766524117070804863792058759065676018715223293153462431769556758618800237200672511279279861991184285195796721535065296420587851909018131474315992260392145595757079132350770980213162715183185949905726572313637558508103648322856805585175042518038804140687488750363735760537995336762601423222262941128097082673096810912405270362098866744520175013552728523824961481565598826714180080337328634481502898275884690355628559031806421757071278547960299159450868101331459499851529253832060780032857912431373058915159123267102545072512781124620955438639076253600018645294461868118482353020085648292872147689155142869909843723238286510674308091759631511597684497508801083254739782935153206600153581273914861358506051335689806729085774142911270178239252275693470632375666501578466053181463713766601870759298534237702137877608191560891234450343030824436573112828898140605699914716255970647605175810904269132580720958174423334963035812648819612743060685092789505667349630933402732690059174106815087770393378203062859542008963107753377673932995628602281176509100953139873874276112499547827403300860424687254512551917037073473795715160400226165838595605427846557558224334675223159217762412791277065332979951812196392248698197763846021249898831244407451031217369325338226360530710533619109953859845210021129682235984119859809210168801193196876631846022949451869332874405823307582441243826077467558500727549451353574302635560883171099589990876993554774333722600132564903150991981670344678081685425720825414098468714704295272644468738034435093327641433401114452428393693692401517839656475613953848107235026493672036015420380814784010011044882122962232178014868494722543018886568996617239546793588138448606344914430740351711016073182212275636284295141682424746642182326323290017668032277609111537034673566858626436660303595354837866728648656909004973113250106537249490381513198644269591954134817136405706554676543709346252071025541429649525130669077299309589430289782087147750713103855118833284405971201560745961990537632489570832917708920299189555152043572825363873575389478890909550892585418319208489304356427865404028622244012599975336078771187425638740648881968749221653552749797116711540475094666436789803988175830681579168161218382782325549285326156974332707032026163251175953367755650024123931334735284356117500436141260183476517539898486113567200456803680115999579360663539778368205550188433887698994541877998323813293897974288372270475978184809166063252601075624255396350279778373138009475470862780878562156031314793625946278004880578138911293407114864970886867957700664162314196859752051483412093389627578909396783566039834502411960263459256500010520074880971964022011530038876970526877151090839242697361965337939826710383503852350252042594551936938677405232832725795664002436931600420371516467613620253996660191126185612193644808438232449206713931381927757996394969679992020698739136914000554045905830501488676926080593643879031336231897923450532882195037455549809020043081127630886032926925927782524424251598466260750498865885385303050754354834419270766299000755511388385306100553451409777951702072318920680562056012373176417118706538246954652222150365772275044829377010577813251175059599902675018224236317063252784224129555326921288124565962140550133286948735630634637146046855744061855354759267302039874905293948739759719388656158664590224989115279214196427501784982273886512328722463456083070213914959610035075623396884110658309720490148897938140720622717137282194637984910566923061385712748000579478038680941271790888781366527312771805688157960862044306752540242551286279627305506903295100646391551999622013307912649160814888652945466914135026972511958976376549859832634370295387654176258425070900758861097583827071733453978597914787687402630474051895325600936889759030770784828512615534254196602253323716201624956013591993631655169345271389399449558993557936938709921533844118913030334873733667562767970067198999165426010853358524620079194678118820969470849593648164192525709663867619297765349454994114980678761298891928458118851236836975907648344691495777046167831130214845424926310955382417633749164376389414773680991128922329686335428546328644963864050947328899305624204884413433455656017741409228765450884737093027642718353190980188032504492143355878190140621705864911102413109946772735238741086456001837013711262609525717285799491775241350038403069275771350440453936344962682204691992320333249455430778084632871542065863241971235262843868395022336494313185859910454106313782133728206067169987894189469387262048787440374278613902747086548746816703428147633327124826743105327605640683959489168603543647332489486685087178680572280999561177677615615657405648446255680837416673726551609706262749689073373939206146508201697291869112065030840350144437244539990865091936985264852471804344114510046983055491265131475494286109456046670465278266766720832050060776323557129058455306690194303471940209905630612021268155723698701487151722251305957597110731265723961614725329519658031939990254808885382650000622591287685558637691315947940737492459479786490269790260993171755537183660330595525873118220006939433473951711638211656557816186202625134931840307258101999150072312233567258019536376705289366284887256958966772199477647464650208789868611690568899977632227996904035258343069196501394356972672685669935868329609869509076506178012783207987555844056421686409007394007885711150011641513005651894829708118097521280268923571607139427484527724260846057604303555504068568785246189338949107739823096929884328460152134931013753991580792501136019444899529011350596825409594075571000727427875659862277413200979455215408711416809347307749008717217322159823649000619840171273097556890908461821763127253677905507858497968193628798856323877047923301675373407502824409522009851798066527387522239706457275804952638203668896012478775169257852526448350197773841562236282955212066492269372380447400556794572875937620653358904144236747841425614406384121119202018878136701882450333423267481604034688729181149621261316064790114618159242887383720672506412883028172215380577900824214574303264754299539526185892556604381941962923275213719225551899415423393583946867675529721129693837075637685798913905154997012755615427536571391938172142150133463565070684685744327359754479128623065628611488687914605158013243639193479440646349169960370716643417594382989056751857780281616407968269277858351310498152353274343106753535059874983953894857210644752919316125804221679125259720274066156130954596791813507055559206310672503801810825020492133495463736752440393839077572651148859728174732522024999158485687169278171469206733695065403603821545295853323484177862209520564983278870396702173843845146525370093813092103725742100806603972680603424172573195863900806598874467726750651468835173062311537725173159890508973831492981443930119714191684421250400217703759339163619872723668532490702692637836482028884249242104747731920633572924164169483570541309663290893747994414412373496759147449005958281135031253801796782752256232755094798629470145694068195858683624624030264603278629101310264400920757059085966686916607326319914542888376943077224671080503769349553865465689118952325105086285754889740317471107947493874159230639663402664316048337795827247248593783227601627131468983832752060821995478311100261116058362331530598986380142127966180816986411413411915171626276313437063066120226919985832224867986097082718113922615494902570153463689105809848638336776722535382651926994549576298075420921813341914833367350507911966731909870917803150444288756542957978565661243881734197899758257120350511024651909500309193786002868922546199910659931378557701671523540805238777011168691139779919623564152998749017624137218751173253387949400450747665367963053194281934542342408671111061357516576137659174485882011905514409933623660847460405333959320637703502144299515523357671172330780463491616437339466035197666892866669757688483992625563434928215833216377894616127544309749651951175247109949974762830793169295037625794606562731746204843105384908786356021628155131163608720501378190835822687070256370059143523748434135473643053102246294671383390314938508411161787845270811431055653618900656432050694253880807666240617186464525928365861108137249455326955765826725583011250535154869654345226238707265399970167996982978782901430898806999265855837979999532592714457412978656491263278063801279438559968045872275013364013298412449765340738068610821181088759416269504750278595589295939397766939355632360720967566146428847737276285539591941068156313259003378725677929074052037835953231587533109928041552404364675973449958902620434743126187790448028716331328159671932222053956690851502378036599017553666248136049145819093052927949240896886045140487596714904109804893481261341702904330718586615953790906483207308782994407621123817747209124656787692539918558979740299007035576666758825355167225899459440903351569034943875026958921051444427505022955957814249900856267080356270606072864235601739646159377247209516030665926285751534075992280530494863441649460734095110439766600218697752208112546343464570540625396958451883707013009589081163856553097455338533990922608623810134071951300574616420633562778403775185655836537508928345418695097278563660305085749704006382839388673623707367660656542418036789708641279766957215157838567144500514104567082603543249821506996215176863417217084543230509766822556677143604906209164035824960442597798920543733612444944262931368492244290218477115775620315202009483541343968442142537025718215285431529786387224720774198434956211166375184654471723634324561999568901275250006761861816551561318633274924721869638229147974077219764469914112220355063749182323565251341176852127685484942521340873083891489101896929821495480853069744191508316664019013753511999852784263214857974292674393304001160087601098093383973086537321887705570400847201973905380819852472572067737450604372321702831920921394129118040165486844069009343075983270213719931083631980730453680863293012439997650704988491875215760669343493189848336094185407561372966962243260074092592457467252830800372815844739624954393539913423396050784824410433891795913047774110085957625096429266337705924737753641975582556564918192649019481457680636270825075297320953395105762528192618590375849834547009573108614191062386265803797579368276666338679365866062502374687791652082362942807381975789277803964250016922359785334503090555893448056099137809947814432116080667855230456783496589397414185493239204104834221629803862692397218408293294503133898213660279695749743792433187409325355529626998684441429152620377738474341231282150179089534376451048674047417762370904647545814810742423297359190486192845841398122439099236247068410122375855572391084275566789468571041768490122898001125825567490294565750692221107688768287241331288232382781662011592085688602114533019344806061303724138239639888647952188782823811579048686351745301713567170762438456588398089486750532651147481752489798693185232887439884585716967721789066851352899761678280604445571148314594818666872910147500387035581973310247725495782120140027561362065675669736007168344603285831266453018736836482638312433614446893590815276222596931264030735859436400212351130469727984115568971389477639003178584733276060790153751854604855692515654228010018563820257833308880211916230611636335391076689573673720857506980492404439355363743950524583802218477180341726336493157102681733707181549895924809325205960190179298789774246688324863330050215751924040492611365848557738557401528815876496147932757198338354110217848800708464311723385650854557506027537903073538451859165311101761034991119791456754850535481067459379102088257248485603728470374722484333496232611850822595277049912937421803149820898482893197293922730143940415824055731744512003826223022530444166955534579817619191849080194461107085235028521470301121828960607111477214565765740312236646160177619522732375298976715384326760920907683642787473559648328068419644445982017715663098219377044639900178386002815867302479037042318731714733582377257164247008679789523393838632961135330706238640996148506883056051000556987154221774396300102394916986348353003210568184369412822879173781721495081314434480593566595618385440926240214190810953455152896235002266024096769299405219445682798985953917727925486499702640197530174822490299821555356560015306361823768128877922424792475657176406789437539365737039808772995439849387907384284456222586595369615605941352534559042174670234347113162887100366491728352647149036081394391698631651112273868819013263233041203370304110904275818329618697182101484848051638740040789807692212007605658814913064313437828644785591488959353392458911957124646547531998084277653701817015372252653956688604337647219404711476817269053320086878760906547417012988082904284206768508964715887402654840302129422721151736424000387654652142174352191355245481053899921633503330550020795663672816288365099079815160605664308134349855346124868586026991608454178586898710330320303184484713412042053780843393838202683825818609205077647045034613478848804483611067861938129296110770371318451613168596266909154124048649844816806102911878969256645856272087948113596325881337062951331281514530965781001593072034560722327954193904193112948783968810505764615966650115073144382167147233168445704156336986315610352892183816525667477102707413327550139310138115396928217746136246552058168901717411798289074522932434829917605782359681671479399775729252918290912939491874939495985080071144723265607993897406644452720728865242812683113242070583220423295031610603166287628540119544341307572358755416795012849936653458056479045229825495960034542550770068208152579814075738900263178000950188010042128340532868239807238566161363170653966036905988366953919087778691692803676261726436921485041179127638129675039092157497612042035109381384642817017421183051141841483622951518054328870524502497578967780188678445513996885995954309219584451203791380253961025275471067306079706711736179211068359922685347337188157448592877749475199606868837983286161191483766298806967190668400343552481863941968424387044739298396244958107606777626735108709634025150764307770941626971902997871491386909322987219569136268256723792101352768194060317701345265211468231065339843080545870956117758019520293986484027536055342128860728365717311663948568481903954405697532996567666630233106936927684784220497933945328529946603250243390926153975539428100832850733628490287513317299410870587044276329708006767167729935656905269923715135748118142099817230996419819688056633745616041037477283913935785849756909670357527640914399974483696999542658498956149596615570274504358237114938572983039719554450784735346060503449599985398187965029247745128573311330213644035527295712633746948236633121267904634047431025551191296599532843267057879760426168317681594456295055306529866464386672153755104122165589000856021547681274174955995020266049878492782838450944238924026664788881554599935920604219279478540387143589240694304730225292508029903543153910694364888573572354870473434238125003987715736408452756142696333503756056479432296687846101287923835531995909696325403466442394614734269253730492570137031547569566761256297250814963050262194480726404529394060307242511320288573821772699692134509360950074365668408399152437049898397167470086741000496855455611559682878759362318030987971102357830961398064307885080269248198093928864181502728578910690405514145909575042899655431304609558131335939230984647847733556947172055590130407445668294565461072204547544356361116812682582729444587129516563282285248321086878500417010360112343711462459454964559362406042516707854401450165588565519167407045730432491177091372872086088575581529026953451096562568412608009370337866732402228972960904400885318727775500302636006805031532730935784081217247320202834704752159708469051799098554402322690456027575431228331977891510724368243846502032107259920544165638589752490442793023927783698381840356029416518066838444973953216371402315412324135493879424599813534775873929579227234804993965352777460111258286096008425565264811366833684829709476525858166765350150452144936269798960183610334829342933268165401938607200223151825948821340479483315763560729534275874685681473513183431363775779799886213735003942260706295041545639855765319622557927408578689423970245198598214282135356267158434625620548353918198405312567318778616279891163553694316991464287703662729118429411957345393751150853028408968319391305711413356407608021348659942958858543879206552745640990749380995234314926121939151926093887063683272423764682910419362876613550596741033385082598005765579494529610213437738258378205627153171104023208561184318440349310638225372021770021592711906597123622802694072707385579397243230637148609291505461645199019284876816995474580472289483410100631492574173779201931995658466211871674956532243529934666856797458118221066006654566584828203889162519809145441032448752741007900881725825604762101828775723820085252121492320531152463164136934680226483603433376061119681591564648342556760785738794985958840812485069939092186622498843351730324212783459092685293586271009662923105856091938263627862807427805519191352337913515902077559786240901566594585400588401785698675352965390401818125397958325286569244825145881162758090806047460279349874314563963737038890006832050551931974953476883880301906713094362770906756625927893369003370058887835106430750145431212238178818538649658812569082035911703123507442885835086403389315598597439979989580717248912889378928329778602205518757779583693022600940626745963992419708495028752024606560270298780360771016447501927654119169334446245618064773823620401822068958920759767302031887358300028542771504703059308059001287538191167260612282353420313893528141185693753881433066868898640245186860417120156662095166731320836357923365097520769341664852247133310091557984145100743908773734466145833201849591626976736168425742680231304086766326280858091005725701532418700328073405168203095398726955642009618282824163108424950233933658399263693514438294986318558046154562194562348715210940409937374694335187616205811521143283778217131353354334794306838455902514067802072157496928959445356383166500294128805239909666981579032004661555348787692757259804999063969317317118245660436705197189560678901852715377794540177903011247146689442487547366571481493532851030693025175440144541826271919058914777767056396492889114707354168863718863499288592435941361891156329783668195761428375446604721730339742495279630249912457872657665150533473912402020028787762301453162242189883360954759059735281403386603882584599112655483062821385050824090863661122696153475801430671333819517815655409521284178074218668226379578161820390036216947867129156053670390468092654803496547654588305307520097425292172110389110474041993863159008321574530613257742430520867898999703397833338309321400149899591931047141587294007952452106135599572301750791321500122995473017184632179038693080288048792769691615370873987627502682005059879785716282970905406576103839302895127597269259193513582925025532521438659867752845546267754604103529009525189665499388179588920987696571947210652163692591368271813669948602515873014284275059435531090150862401631213140229629295496157833365844873213884153764847951604929809634923934860443662500989310356467317367517145022398122138226452139458798817569156250095758825304560219696939645043601247134914924799078753296411257412900411032956545730249613370446436871095371008265496546989011775362832126540744641072276736174426794881398393648199033955104881760804896690938186312211402053898385731895695455501649136262048220810672547537226020262577352105394244085993152703167640854624731123433818196153999371918736934378923009718971599621787424864734776154351005240672229770810343752080562139396345989666011606534904801729914133369273308723023658792962202780626929755931761383563988770365869689721567163442122746262861026142117292763872088140967261630664521773675049427489756027475407887907374373445763855861044128110705519345450457412867472909971450252764142302888551192359770428325036903542524664428039135368140967941347378544393421951431773590829557994672680616912391488985454877768478871208534340723189085859886357652594994435556292313540549048258083370215157550058026321052739677614971742422886476857635823076691929494310023451395248454211399238323068527473266184856403492346256512922435633425015306646945570971205558918476470277956333929338108185546621453895360068683134380843222720628385398360558092098316794070579304006028644563845623168995421825917875158961511072328946472851588785161973064733181990217750274134062174251037337866460765374943907786709009115892777450828702344405461698362769597047066737184077783828780919840775306094553734250438204691285526452013066504429055578681685992843785615912165102844886329916153649152825450150127065512633045154234928305225812420710286739174033523368804015919356873662504522649559052872221876209528196245807910636491373702690427773241132720629000065174758456255527445290968615431465668877703117079751270523104828857451258028612383131916139935948862505126068406519810726274902312261179070463421414768083483782100232702527947617301517718649250115912515806050280562844555496388654347770383164200385688665151951196636936679440407527134575191178864312938573580823632916484140098829475407055004137183699650275781052916289034314571054949469876926402354048597911500550682987362643877003463868798610248982536450315480132846895192294777542935730525291324745062760605151156704871188272063256930695787274281336994581676535193417248265903825455165169550987879795863516162848675221622979465522852719083512286615251999923318010790675956578895267842733695743699187611422749982750536648938908305871588272760753850360702375823067898071829701402535831408365639376782772578929905476360723349659959554717638455588226011911868645145423737603786792039340041715180745194868361596307380373298809258758537950719479529033003233960732818914164877313195807234808006053444570070811040310468562870401868068919777446437249056854638271807385477716009397674410854404322288153378361856016490068981444760302448579870521461157461809777463789481443067235747100332063883952521656254643989165947161566997377476491445718520074308941688912109400693688239189286247283625566795110224846384873140815824958014157501662155809259103801100306531254688424070293177478563394522912775302273494601419542649513749197794743694335618234355273591579983411338283498542405791660530969184391221467592032602811317813541178749551892613984517219867704176879390371332859737680702144621717655471857173085979419953980275267211036465569628138680721302547339187705086373120710207330849114537470324368520739175170058593684238133935900054468754096480129379416409844691799513804050510219233234975741421105029512006176752392738227634194320950117848636283414777924942047408167858152195287158115321493080707447021425579233768035895620765815579564852615290186100137437611394832032901165417208557291689516402853989330718077459042035349344871585434726643242554528967534085957455186874627457368714312953679186089406824541671905659223327530545474069076396704008270966382152886238609538325340278749133594846501281122811387160823219011464830945304629655182606196379958160467334553156580262956941013064545656101188465141859152088753291100294285074768257075852845152935333478947185120783332208663988049514242702618182834187912142663638104787051117302965139539703246882135940346104778721615038261894534479186748248775373645231528558579696558115003228746499746992016778970833819437579303627364304780430867705810762774117581885519937333803889142820193898747891356724502309273683009737656081851179919930533689947761315251686803690225293824367108328875893331429931910162413715583880010485523519517892494296673220693439176208446154996756943585309714231441455769053476335058049975543018622145890552125961859721291829838261179841593581061303473261278776493401499272540606735490319785045715373706494732152885582296706774556380346783652366765861573854981429637201969028849763062878656651052370484321686788069560721118370976935140116719422041416549477373522710369213616358509472405989644393486198871104861556127376601001767791937659275614216368699775990563884531977736145472698606724940354742252895582865612360215775340869428626654604993173967123575227417810075523400230056081560483183698334949815189384554817886275146572470097030894162518265464749719252312812332624201064115482077490647571318635939071223798250681226980701493501522651538346213610637798412456655788099769067307304980181945913335084613109396974101360134809923625830690463610442152609630946090659770282566604386653022692359962607637250189742232100283493080616344875617306980700089493450983224015436564793304015388619595997818979360384628274344282701005945762319127389515314651869321425812486564720613862219300564772043095551826422182574248913476821338514689416989553793198213150761851886188547474387632534097770783573108922087509653893711241880390712268266998275644091152211467690892837595229292808996226454897367939504183868048502946845835818544347929516913286772367709329545536439777775911159046772168783380800431098795700222007761713497851883096942783376568435771889584576321102394299450429783836204078653061697698285374944045495616150110686478803071256205632622381186246134577957901745397298668182837565423203172998886348100108866638924943811081755179880807147140579875317044405837044138434243302127684123729261352779351968962214009679186295124201012495721200862959540949129703675761050617091606075220680340413267981507747643385821877045462057968852427955359592891160416451288675766061592221597899703792968972510351434508359811650371176969927956397127158099258624557115458020499237891127447581083663745412721512896506927857992680553525595833703623257331670089385745193333018727682005649840029883564792882834957616061801042198994164194800865299332812506113349142041330897843905642315157936022121548442825480066529161080497812599779174892837148376230188351055843298699919220300594500012085339351985076208529472582641602645913120638185604563400702016638567107408357510476601151139182586890529572441571359246089339286072853567252333136757317780305862649068967696940193330069086615144441896837306617864696856987047370756074061891181689839703160102599189406144494772441726665363032791465672959243190840851813483428954010721007181256192167998250333489568924830201692824190422748753124676555988155345333813963466399582365974200461746237894059369911206219365401539907412883136979223052593520396379605003762859346732808406088776360152442114794411007348589168291614361302942623428477647429028852184053272527905772153747022137179281668573667249691899206939698108915586368394954903576947511156408573127209641925232129886127553080315125662097758241610319257640702360130550935500386920005995644539100414164429251154222737973070299998828625898952486572000037186215791347907982843617553513116896029048943260496457682912353933297231474172060399608531666666896086626096784389661952652725484689198355117274441784868982497572360088161852771717417403251825713534707929347118473712969794329282619097134335652141176766931287785876540129964382180502490323069321751986897305904633426130018918388709401238811095462171318300119909378658477823491512027075702096725018508094422898711622739439506472292494566811577216326208907224289613802340402744890567371966209828278223413522211571903858944717970694401261805549535027431232471193949052611026631663871845252060708510932996381589578057804164459393793105146291597060381503132942299995209402564203600346027755182897535465804983138206930577053471599490794442767734804356602933924742657242961451738338029837965382839346708186485897091905609612870158719222684742529003414932739437094032010401561416618010391296030646494334905926285168809764065859216979558644535558704314602276982102613192042134229211080209524884021460005805357068408362221295147414098316065629201626218629805398561182045352248855409799595569627101670423804585665656472073592209126013512994110739854947562351154744174493584509122910534330375126527799309736851203269963738055042475296538894280077502944050418491070153836898957591579372618433244451694705886603170161509661556010159164642194872810383648713945949314152865521746125916301726374713226144219800215260304582582955035857982276210681390312372620569399227147301102960908950833405655322238369548058011125467663886494410473240645122561760102718647160171928749200319931789764833172207903772747900403775495282783338290745490277650894414379938583882534117691184284867622206741272632002945692416753535957601625502483682279171715453332338302943695684706526123304579760957667432694992861981779944754394109817548911425708188638726545549934393178138194565538571596246536485920601765821950641652813243708438562369606182918960663012298661246497840304769353870410246835321490268094769177706446341392892762333316023860547754215005873509593222032514706827193627455597047318529802475047787076420163325783547280257318202593067133927673223245837538507934132112554339106557013414910511052601579010503818537481313209773699537033908607662609250529623396386688102004461935606010232474383235013831658024149420085242593587170248102604339421585661783171453105476746441318237302122396170621475357679909843762830019303979487708504099818142803312359459267820376482053120026770039669831953400798377216008004029761488200067183923379474060996114198815232065394068227294519583553288250572760311724878066235145091293052451620301760189567683680673558273637748977172861554714789757411988910883784728336135091898010875755103397238923914619694518459491437994321670656815847974214385270807357733860570111056037570517177212133226267725873758031205194418294029397088020771965869330393240696294282967799884439089936781676317703258739146211581055804964023287217986252622496741957211471707163208167341010075871663063895286461069938835467242279389464827823516994578823181745462131113900051826369501005182880225510136961948146158498146983731486331578037943820899565332807986206334435117305400844519172748243192190354501845740815526021550711678190065069469815044201397499789771778515678259943337120971418816547945865172179279034036268690052396324580427429591095795145311803341976605659540693689621607637510410930196543995277986742805535612867917544980054786439209991666773703404285121622008566932684556475154154232838559772051457092965616629656348816199640293385371409701366885695465375855767311262126786774021206830369814060419044244017881108974102785141588234298106624936806355661426308459126570074490388224092259143952518859596528083287603136509366182897319035651714546698455864604214570264127399790972778932243164491635809541113915683226672992889160689846522326971475197220298961832450204100442922878159722382181982365419221688128030290433915674520323512085461578516197657892306639970666292768729018968761317948895877722676140615426367914341759429029208415934197642422909425422000833655256206677835320974088233942674079076976074320501299976544153331723215461080684015481452437342285207197780461266459256441282752400144422019044281625693181310878167344496953632284912534092429970761036284015805749724318416517013771657206164132529187286832805567041312563381999056926620466080038897213047941791210671355339882192390807978364895448133461946174619436717189058692497657108150721035353986683130945537521861199943579238864330575759640263147677529567165864794628472592960716624802058388730336457650144690701550798289487519339060056036729771199210236168904021904662059234693195098399843578325441519645600098702306325565877414530928184456672099741643931890075106321766821184796097326717374918057150919284415533518427623403922969637265002174605746649070254518269979335904316533656864907125095375008411165248117611386360712310460622322394919564750084789671117359852713247234896972860592649126754335615277016662588069309462247354981235836989137343086002452887810920998111737347147595168476853697260165436018655414481561569324514231698976025228307541155221564148335137243609159295722693673561577751416413942233512825331824977827863844512994227614484401931202204838096526074937948666997023983330905073673509983732582105159595035718729966275191368031730591345853893755105179393716917019100661067795728833488202634917694695647601675072657449627912471493239785164419657920778576706405641246745478837228227847991181860277075587845042525477535159204303697825217618768098104056241098924684906233098012252641844746326519530794221457988050182965686089638634287531957678573608299333253408201259327141024182474641621619117240094996276081466816083406419474189989856420668869648857664294099715739122317125415323004196847020008405954568148898296972972857108955789462145931474333536406767501046656770176413773759500422568518978128717670409062707231685626926779417440781449405758952337762366456049349339409444626488512641663248957530400502380131596088861117324584205636712219002957347370072621037394264849366919692857087778740664096743875868698789424956853465287017578270859963507917816740209937718180596823238709376502485899465269432944699452867211758280874660188997177151895052601637442235889993293357934926283053211311676754789735618134797564378121883523151463808221858913472432821081916395321217758985349027437681731093247139865525332513062389594587911648608134571377855951056112099566496419602479952583092709849103553952449233782338084574640879324923043269702188805413111028381444249846640948506393087480296893089007989206145918074677097488085775818406566047920563131501655954029601211613352957756044686187527487006367849631130046764474421538224738464956599471745515344791097752461089493061670385374337113986465477851286334817933928064498170865366528933529259788288252583701261480577327084574087333465140648423632656505442518891115098537695247163306511911391373068903823768192648135504144306278948023029078283458571309695991403535833956660907947439151499656859366588733193710390444579127149007946745442386088982230917647698109400706868485670974046580426853524109952489822551109757984663383325638346209873121823805645376350697980847484220098069487839369067051045279264294515710866879160146313444695261587149716301353017141584258638241887462741118571212146210991211304375096507570152807693366743255436842220322570730919714726740379959436649161703477865541056112185184665766730886799012809121056487333351158364332993588021815973785007163728797023547202298369739290041646236448214946042515652287556915105949198010278230220390179820817148984196748885931516186298736393159231167462268923344126082886819516332817340732854776551734491776118443896795117981137394699262310298291557337067340062682947403679142096018871263869854241374774191073614498005844333622246775730253667592648419176964727794993180399003903486241547840775099833783171728079048852753629202208600864428440561526222235644155005950009507754768539748579148300479775025874662639304453907998807286364024864335954958871929892196164152661591055378004222095724452058591086031754213121091710214432051323351778000627913665922581836489863878870247295498802296785400115445786704756749637810953976301282833322480530974775783004573529238564378957888963135290227705297085199917083485225679299243817199860241177982639272015152893237476668111765454131603018226237447092748193177250353598264777684895231674322957132465502739922523305993667193074917688665909859725554645017175255018056400795450925792253737930121604775198958901369007345903621648621277758946431762609226424148218320307069975412973454498298814461163955889753674810083544781451318993491651614093446846390617404154791160223748494510877784736768732958935863763235783119034158713127593024288431308050719312764036371783751023391491491212620495652214282140397447351956119272503306094423302857839378161348709227756000337449394190056506853209786128477161287934034325883739753942647441701126434826996027116921681542558609507420670285518965464440036920728243413273330820542753772052397047705167634008219619420798408808323697381508286036391584989310323424662648045910669082307068928543917143631700897682577549580722980304279483739074957129406251911706006100570879330284867844289637331074324235185556286918007254118499086615113617068321153701913643923321140389422519094890241952031350071410286526283123113252407773169165075083698176943953721740274256989616934061140150231706513236249385219587690052630176307501679348425569942300324888019686520733569925824862025267060724443376399684951493808550301236371298467867420605278069317409236575187481680783388024401875792626557071531171904667399512951839762413775952077204544667446383712780845653488310202935787763938211506301520965235752044532908225066493642741662905218933746732832027950558064586216738742218042580678194141048062751614291380403656545827704974833764611266747492943441278563263504188849704855618977756157428065906514258303736871955838715440818206606865206379521683246976617441675970394613943574936673152903294490957167880557802858564336081206551591510955083376328611673395274881817119059303472139720919072519936982541399371929446216115427456598581202962990512910920711092556081196855994773614090300836207570483370901254986133678818022174515343872588019247696338906954423596221013143872565134172937857761620671768842121490013611037035190013122694117000470933027042995057674310795673502943944467317895838059597574866893582416119270329644443497875535080256215951323646464726003452621532830635805441956845909956824570161736494676696278994268537993597552260425489044599842281384195602180779598083173567368894787511374914768410383747287393607871007942652679565853445750768679275973918303074918670511472942645063761520670045705343265188111800385863373267723065450402108296070096247709789622271676309144049667067016270179427372163045951899960061632493775510990110482466546486975479349234909279437290024730201839350523255506198308681822572718863984454122677330615209819545334835028094833965313179309237414892739849671916649983532351933060285893361617387189531215406238345342440535528134086648993111479852188024255165721655559132589346403944219642969228526559030524846896739369548470353958345130994199153454340545261956735054683225119052623236534324697502156756482853533511834488818842041133934080559937559886230389898691742744657146782787268499263750444347404097162287883610693272155955984861724538762150090437163127632480392498616653201127926037970838267506688797780371321288096561189358317082550773953948696425139973464453165481902960173723620969818725509358384522451854617477660958341834876101389492777675885037629284151195826954816915636771793579373757637564468811005153225431964763291196225638742011721939039442145458804640657630604057723367127182605645060680343257258387103545631724014689361605398356199786636088269698110587774765218545764133828203147049678315848875217665932410197013999291148289443893494865181346625884632755180759703399857880637565404108387616030087570761115924521119091430541325028789664772164459094031041423882219452159036587197476698100140987317790317055609455573727196105656932986812479199864200903611724294992797002938677289161947929328680485736085579200126765675523899008798518885629561649866034905667112063342664914719417204933137971691513823842049510279713324699752937780389101965089631495030575656444841536313664807470375356849204344803738580414988458383060612565972880209811886657205670146952201740596702695076218810105078396461433996564436922771115366251973853747390751673578338471806468777605226548049491457463152977580085124899993598646212568563186396160921624778533688334003615291514132567620669096181408302168891773639623223441565583600230992547127695166367577128811629946021765639336569814952099620553672503461164548407385425369492175449234725186541332782048116540105592702612731874052204792185123677266295718515978941071664558639345813906723819013686875631247980707030050377364737815042161839102220204867461729219591991787877512384044465350504315177104942474489605237635683370419941259019372967334528866926959448758807587036761682837414015445048860180046437558376927484278033042063450318805685870774974535269262393245359895497850410097458014572770493865721391038187559197709666972094300341736143258835219057930677690891195393433652249326105771721910962012155602044423616540013008718337066408348702336864380854496810303701286367456790198023634190348050593724822713263963776451541317741265060181526916728306186812709393398079860808963246260483448554658689057192136269741866199065585963346847357479219704113080716907081592884334978356449050884219206268330160266810766435194203213985872801194993085077682426442132721315510987037760965151774863301475661711338972016748234242143035426044313420984623320546525672602931253422110805799007041016930226983836615562411711546649794087998683841227609796871520821234884500264801535946888819947329033533476357754766493232239288827117568264219867937529323829742117120293781539588880386615361959010997813441094376780970173842275024245131257615727909652687537040248239996485684336939645108060116268842152301538256420331474319409410976030226229926533471701056525728323619794027570373479093333627560118080002550087547916008073163550474271305787472258185777655249113913321139321922379160681454086828907171452648216113919639534917243869907847492432378572712357511314584343310187794067540394014840193201195302993463286543436171046141877965405264553870012086137986498884079434920304274561398988052449993592586648324102421932604878630950850540175313438544210780656420266366829676559270900253903982982526431038955810688245382579491624987416084126002544485272770322024709100249074161877238985899513219110987895033952940004263547275965446621446972515404977931126597464588425770463160574890256581731587507729733443046260154903194945451721173746439883882999242057243511528069933118674898311035594599571374365213306497788269187648458557123789248432753054727248627246323301711534811501714045502361884089518255385814010626700477540322082622671940419112517824327029665611841459391495340214885476176965161404823938725105073124079910404731690394909373128043656229645113202580035446421008283242687508562383567311273361044328839978449834894574989306804170167555207486855516004381775239943829051357480588564553844709296840829734241041729233904934170410092023194945025396355074335309427476305400817191672141569544109851806844464957705286162463052636888146773971624062780077523472261808314996005703013793843485134144615807692592461077952122947789133452875825721524635991292025356145374226249653585029096831314036146164527102107130725770549125567706822498314693268944733216232685697046214117484954765888565644471370628452947284710749920909928114841329772275807933484011153076133297066051287139091136743923099617839870875617880035781336758891124138419516566547819180275148622875172503533566594813207399316064035310215608291776795428998393285310595577892717061285941331109893724139937926209727199833024401910478527247570423866251307921241752755115190692212687458122757234520928068945600486852605687841148800413640992258639863979220902136120098392164240498878648135391311389337246619757296888729831962839475196809495830099313794455857576272420935416503781999882172222353634411963055114396582595174942942203111287629570739345871497859429053471895522653026941355579882397741861474746415440292246407932656853259777314701469603269094126385498201533119660383926058963357980936029552264887989043176083312489386841530404866729492889312860686161597303995843420579220776009816815128474049861184507881033619470591031968849720973201561489114776782319135991794317808159752415992929885925782719830503792722630115550110025938236080866063933706174384676520161658652863676406488298038718324803503894143654135295373843673180493571138847013592208603730585446979495170460853957045649376016582608646104260278381874646022660555662072492948170906520457395951698880084759554567815964957756142688089218779908613473797647033145815887373549330727712727909413790848933042013744209150451782181733985505879426849067327906058804570653774241807796111508534362234073167996234413031749911968304679900516821612901163803716528934962196471239916220022456960763498174366720586718772804188823149390842918851457863447949578806741380641437833487217742922658930976399512244199462814355344586526600726998844538182817658489614308788407115236035277688107305899032641741135087558573100966044766063992400514152596049902531262131352348219359262324875375495976936513704786741863284613707863531374822009776786025546872070751214523748382292741039925082901483483709071664402464065565519742197655165437122175843129578986620690193817956992050813860115477939583957795276442215933938231702860316221093438924872264928495123182852330547076866387451806420842316673969972224993962620539041465626407823384582480138737226291241545753968664004025394499323089101588614191497146027311886009622910823042195603196427478389962989319685735111995009885136889253182955376498688480778698082147992590607316725331285203697476531187091650827952799937818181972826249310354931349519659876964912775093755690166572447879750801955156734561705644273458507224191845576370528909339006154650877280756646289355730672072271892401686069211836507924704737297296130180060704722864383011104723408156937290236622311029355786302121968368716653756004628800515452755586076258708191102708663038890478970862497523315022389002749528047241761023555470703389108207712838475665568031100571229073669337860485253461221015102553140680551806766763242121185273231852074067829552562278716520824503856216651884635466261477597204323494274796878899523931249915693872739245579953508895682817625261584519080047693948347991922434108917683386805351076738311091691639368884226463949906255407089798118285266657246534608408647929430731914188227256827151211214176462429560003993625171496331405054664610749359902438620995805207045937204017940697965831034047201755483929167801153575662705327102844821432010692743300578278893915668506245541209587129279517211040640532203081121994829715455628662776087390005741229965018410702401830703060320544757429529928422833613509725401406545124894046162769889627684225871433134867772367249137737169392825149337501212770313991263370567566873575909445843834527758823086965571386667483964234198902987379226248169194374114810802606440631908399561041082118569343984793840101787584522859379541215227001200389092708625466093334471640544071294993230415563578327589157573124242623765448680976419169318546328748548444798647694193815548990735901908583729819745507189348995844503890377246021340089894195457908606266873514249778477285311752838540126760721914293220046940403900994768269957120468944333319275367527463495375390976939746775561182621706237733357070048126140444961764061991425129348690404760818098048712139687692501335424757251899647380859382619610922702666981175465273042035768894174412224900840109374528002411429634203642612755385329965879203590306689637380615617016324932557476663994948077205629003912771088778379972524206097890005707701177897565835075479090342096444162477916967832760745886473607017023319221284325628719787189555801057194917789892947769919655109637724298128878325313571471755838233556570355468068385970623752468642980751285156230480209195185951968906645224889275397373492816043242262049466939117000496514628467796502122129113422928602021159223334354124582174959349162060409052618242962632973448559422253518900841181008845861394575362148827193039835283907439160467202080811209474576139924931912821700596585055415183065520566007330984826574356182268660478642135688830757815786032995513574515960443201595251803827723707561604806068307781667979343096772579153722267503684938059360298288925336336379252622290161075314521492165959060815610903020016612136072318353287305210547747705537976398599982764336074955920242053599868827728043324097133068321914867725903299215295623308675256336889944259390485590990521873770648230175951125573496825931328805547893060182807428347148282450739688566474506102371896720323120340986592161734596036691458911154086879406575417680291644979512612594755544008041537442091152677211778289986376612144147501383717695689767668840502638015933101671336524429206567628084998253269265568690941886569709318033770179260785800332698500235483863698279846220832741734435009541374522548956447586565731363521722067339753981030905670193724249781663471584024796302397405929048027037158963754399067357939203460041583365094109337309134889821099696568493922994725497069993727445172492347057687729390299634035477418005950175855113139004718152627959002105022765677536294438411347113373260126682595671935570728378621152309734954729190562605849461961856008183522830818263133247812350921971503862182134540684739304590786740626123414297514773479516082535742696833152344204780785520682163153508927580765440840129753245776603120560431600015919968057080318716119102733676093510551005164951901654206932572118876346989508178759849170364096728299953042071862855892002353741774323208295148815832630286161890513497002683375773140857575171451442877993453078862599699871666982573484290903329647653520389562369606118884205653321665086989925688402526282211717839926163329606006396218531968359349639607170095851475217697466658664047953338336727505623648583666523962547750587995488033980948005457788002895879347984549506114987294862146834170186253118294240147754171486588388463781894900097762015153375149171939972710262335488096874496594420145623114143688552117923444892558321805162807099407232372799971517855423994113918107989435103417674735127138139290044158708118912454794444800289116190782125491625339472977764895444971184934147196004998543357624289662097370009652978978965453110101173172290536085657828610568312849702240701303327103486216044794211716535679090793816629117277645608785177255410787818487951374182355362341818750838772194764418224204743466141586608397868599702077552943787063250308457366724886996669565387470838016631700682909447332211840498581774607062519031535884255180698405360763419747087883657320711457537600411748254546887861644031765484979387967175161056272454770198745978825016652027444335030133439496840050811663179737365347314500281518213205190131100883581069834554974675119570250034323674979662028434782398649326271626106977657976948355433181898990881099804503082213109764280423059783365053650705663035634382607225662725918452064340202507232555380116455870663198656314967191432365123444160745824479818795021524648069828886618039010672292517182582090792856510930363998806204772733652950666843133314189535795835106604271931424240395044478714467848972541989712472629855887034477927780904200030656735539948092923292320052066586133592506271816748832460558719151727227512129793661938207880036648040218444896998727409535216645582431453584320940989166495761162220540947340335216648301208224698869339593621886086946013040939294206416572024338284337157786750754354407375858420481013300608105323267069422712890205045569111653080691375592354898171680616069617361098087325136646946494399630998413291787633248083692199542109960936621195806608083252231958505193354562414774304464734194503945192391971801534446111238265141937519903725819956263763166688180849611156740030747005395366222579298057876445236179418288822324769985007965601840307073215581499614640438987120406385181306990510856588727331276024008473970322173249845858552015237232276102410398758787485503265466572340347171797512759044423605764328853858654031847418494373744023184443950814412540005534631288619490735398123731964230011372743362903076981319929797787571407541614181166835353043903794371456023270292840001527337326672348784745982992712358933781270588867510626924497615804321386519323233956150251415411408860706920078952618004469605772459610464121780089655116450392246151055404733313217354921459517699298167735383040016310099445106844566447258084000635699915260994248508613747813695785493091901299999445866352082382878075546802084504808983852102500230322834539385343772386968863128589053609445807845677895481288495340146306173093951791416325362509485514185670938482881497180586678380522962016343105041907927978103671590688769668256682124142852403941655411913708284946947654198249542386866957780177576538222700307801220255999733388724547164489812657756302225629331393783919882667895678805204876426795126245348122819050298696128182556402066544630642078017081613034894252756238590977973289438793592244827915225862184358172872308359681009681290507652898823932609861668430697956985743705585193254639517117249636022791403022643257994236154688283161631168980995198183517909347127100471700543101298435498648923338840609392020047562335127470576296055520458930571627284100930297532038190388940299876678231292598050108962843189706251815450328681505393575598937979616281348422804881693151446399555508706263145556809305719783270992833953002994095438287563490474243326639840631137330994254979847560736874824860365715578720901064220919286352737041238210419287727244384692804367390095257000164392537933661226631507416955481785056787875843673743040317415939794038034530048947083195339968629397508092004595207500607083188363222844043571359649892814090051146071033212343919549078705860013232097514767208029006618415855681389478635703873825632742967120919660083721930735731813519957753635896042336865847226323354945045197461622567186911296524838076470709456368925009606076230151592596359738849097803255528408937277313516318366703401167949694630173331854656883806317262905891870266685287779908138647559360347191406702172337252569917466202065271602269383814441813789691710241251230049695887850041428935787589070896735228972850429545942266594271220354797929618069370211194609072158052889455483532173620407350009666679363120275475603641403963068331257666408500706898934497727252019844247666504942128176995904028235586109137112963894778213143827560998160983328739020315353829609732884188880694788976087749049493737959052344661257725788052485905997662627207386791781889717093352245545766896073489578531933859690898637442759972689687230278428445158843203467923884180981325738599104969063182334662830154594082975450040161592352059938963967220731240641479432164952337103864348495988811791071068741166026287170838836539094393968273909140936120108830157968950062720943718556196017346551056899969358875389342439431209542223302841581743629901847274602498126597883921341207004429443679839900156218326107209393438717881993434911401770496440120797864657837841088301034615501394175870962503870908797141789151373785355139871917679319718699547693945904347273637236707608369947067607788430700372343841237079100206396807570511032216144352632761356035561368672669673529597780305531419682391630351157067747664239143903301967716596230291399528374463085421652542754971491883944215099110679541180085105759229549980996123042606454500806489233954950256880368161075730901424435876976089696836101076119831092828354273614278528853242766362593684290560777513805841777868008730798970356529406024739798920655413715982124171707538408127387960141295366006915210920534461688045571266238817378591052679944241847095563591519365628878564352516786900027795413734051643700807620546161238061890992806605017447272669820377207636267870233433399227961987194723629492193253042653286472477494932255881398171410368754796161118807604532075154661672805092720262349049227371914873346984135535401476234509234920305247537122399235124040023445158891346330236438736991829415890275734844547372899439018633621751301295251298335875122090790997245439482692969227289554050114826926868250975188196369027661561424530370607681046563416914673682395029790776517128481943451487286708859246244144962499937007720712390717114822034818282322567726565885876482752865476967258517010131168628495955120081458843933092436819191607722735449279556037220235845837010831015435831771945005649960330747474988361141766697416097939156631549517092223578654716852125883460286424173589578959647502607329254395159934253771357218507764208812311483737953512721161401911209588288698816847799753757754708632611096510236461941594119750430120964118499274031884494013138914351824188740985177641620491229807619882043720537834441906021697491518198696009131099945789233862094476757616008602897246823987694702043061299021582688289635684700311042166910073963329622181312923119780961090046201806215615339463257463972210171226988567165441106810370787431821689605647757018939985270599995982041505664588973619080473105749019314302538200488744325512673551389900444086738219759157446040248408223131222791131296350114503328455996712380539258470969194126857164541845047146797985782983159458986597016237232140036584880064047404588300309833617869056188757610285227519643458558709626148538615888993703177615515124453185175988440803418175724747501267492059544824487123006057934171480641012807462792054226624791620928646067573774758013593748670289437773932800982620428157439450795937550550845141919333080646692148417943756159777240260171381624386730873096337470467787574000900789773597246649810599754140369441654360728583686232228948978899045051753809928561832405896767412226254834416955387749268676882530998789867505288364467186469131419912348673347578042323471053816667623905306356783601132607269979987186944749426105737434384765017897517463982682104838435591918594943049535261252260232315398906567986220586218270935839845964912592842883698415862871211051251921283107799474701920245285898853597577968978675868737708031666784639793837540589521803384740763944073072399834007637555809063791586692281519122536489783150594185206551093855300749064571686059476804995837404208272522250445778480697096216955420966277584147624136564349008378197543069365423027144181417396800281944341793545564466823481304061772012340712172953169903930639419328928165104873356481191288082494729562391355121527202778918341745771545558747407819257633909387733180077126233735873942420914872194800703127414268086345148378148667678896234345238630327954936164163872083683546084290956985276153227524724380402073195120252154789451192156430458854158460463225191685822458499659817669115299909649683147182507753562244255909714521511264665390609649817553674173008976773932776659417563174405150313338505632962571850756886657936848922199232950297364545116434709412251782565221882296450211373227878314336967383271115074945260209952563181853093669816105358838793158764942132794639143793329978390201799403113578513053381595038254751909232889671523452055773882770131104301330183412174029613781789939000453254876790650326335521642552209238581104954125082506092219638346175511191547448599002811364460188204853634997106255329408625263263057435940803714165895622763718381665772719260387373877149534444509957804186245876007458968366686912723107213789822907695325310101297562647367666264471685865303330252934150856898869548402294899540342521155096813556955982484843051388146375118498860365294065594601207866203715832141685087476587041694706167037385897423885055422031772367946705357794243364411761108107447861690319250618800586062150780490890950425329639371085807586670738056459486733789069833435533210079152238509160450211741480607608955442206034900700811624946114123449295236262281052995197523283128371608890950874864360478916855844069007398211776502123622249578575137895451817580134045811919905738157464372866322490631355149838860595071846136345859835022696074017785074867422777646149046849338478164056108716561116697444908127484188281141184464235538388352414765915656715557134616409764199242702016106232111086655970011577758267078290893328033499564219330939084636664414402252454305023045404182625058812331335263297456924795276155606664497638165666222255474942756217764980168934090392969349237184185312368482051078612152825595888945986578182823445960198718848275282140206548833436063733389948369489398853763243169379795134839942016235423967500078646510154460386821579112267079734013167478746002132119238446792741099981327956671168891678463110723113254266853110258798362670691483511244901749758482390285791021086790390293791743549182785238952582684134458947211053745032698751205673862628035904568424264625354889259153496350775333598889489673420062282333177885839521950715486617625135920003329371975404784992347822174762290442355427424441746967554600805145810765094088256029800274454849132435662522347051044833230651399650359591257154861551287917909390781593324700044682439169861686141196011740742267577390259607291644089738196332486850756520283997007999336878619741651074670073684867759795521400912565793023060143824172713631968490075039244551252990405876519296392275231468078275497810234342432067323767034133191218600857842069997321695776727668853517598048965959294794525100242803207350554073819807323128951435323306838494738594215686180938098258414490534581447713347736017635758423081301042333546114331475536995795156970982968872255089928851761174719285107571622571449259627568493891370247822082700154739509024378721270964369127056794712946925191497276815396117239145064854872621649811267161473226718663963804826360230790960389342689143105722865106455747921840668478955973024423614732518425696460783949930999344018987089490366711690224591944520528921612263171779614193635529622848704630580728529624434981440685156561770676470967589655755938471908977770060395886200506526383212315758737028077122932482161436712244773935869241786220834840329438941689968909500135955718533297581051475610521400851049409749080547510645271658722294799567829859461936963606825826012940443785756076096112835361253415161781219726509208674923228749660667034405823715101475233310884368022553268875484629275758752036529278732252156895425149866635001207232586418850308702945223208464607929480694392661712914856353199739377207308915868329526035478634486709071733422806611431845326209691053872198897633757097608818705426575302362482674683876008772896303222188639494232342467349578154927393124272984770958460578780305411846167513671190500928397727643006735545674749713003315830395799793276237238799705224164432315771182993276631126247747848660722789694433553043704034280573314239147653267059079505950424509798572213540070267574268074004463449786289051813242292886229453484709829478070710424578051212487932885328691452510092515653018565408893995863597506106544582108661430904414772181365993228477627096082629978581797019127336414699259482299483436096004971638842711091149515179613174243120306231765026126241983893655725130536794878160933793325457166899918103912754338675359620238959922778393727260688756201093914581202514448569344138500089562971801690473492008239182184876634030073130554195034502446212965450845475522709604813824257219293527739472634581518710171646155185617563970065633103542432425669264417394503427964170235893598560568775314801218427478574631106670077997395330782737196693964391551326345105719284340013752873448295401098214467833097933006238219571051055482482173271529037730258477297517132981364285088288549888447300338587464413008783006208916575298745406527804146296179298092171095098872066660761963617898295348177747170309576909873069851887947482155933824083277453548686746086373720164621171199718917153014867593025151017525662524647494810344969340989029604603783522550113645105009976078032653277040750213990444767836755457653875955823871518640292554096007091485959239329072140418222862656931821962504150690088170052566571976052689816061615398393034427510328675476595330404639729028111376592276534812353774423119789626620620218689166659263669465042252304939660196005737885379663826916504017157598593684193437208828320554247840975759893797800826610625804998776954975279747199493589395494378322984461578798324986179586408048542230225737987214732711113308566825414069085325550743198073010779661217270018075734487617825208660875953473375594950134842530408348395596680822222587125957353412272228109000052220460330164241480561740803724714968487727448056971523386888457400123001538644001131930663897110065641961262666312980305810989846810625140760879221600634883627922714067704863685325611591229937980532254337789880155788795833239070562868021927875947634893056346702492391171821921426155352339976906253274596310829895803670026292938634091944936427235388654029336996222496280643616497226714693085715726270250073699393441666900711601441310739605829054992051418452292631494842278963695000309661586301490408724120398533119601076905239994374573008522143118452121402846114912738552009224257028905190173385879348883494359401662827831367547756464123154099778240102628120356196882081319341612443389468999063325440848986396162171630398575720483510671329343919914293655565488341540151773139840814613049735794103865618906387705337235212505751795832690680080299563621095338064073389594849285125542233788715234153417207219047204170706463099608201759930854004431320562635115457988805659540059254282821595131466935631038451054026274230700273324967717136311402345620716383427221761816901814681638248575324454385679709617288229490948308159082521931304212746550451134920081747689958068347187231223428824472101670053484594190225794548577944050652672962142926128614353815654114459436724636638175530534632937623634467016610175584304564218376380756714758657192753972983877859804837947473878910762751164606059759988982102915271106091496633037166743373455022320601798659968931906138301809057689661823719927423017967901596227664485740491107404566304687432511724470357651820991878779585319438742938838623563687552607152138004887239299640718434640385727228801352270885429763953647814014838875026478438771137974410585385311782563738874832534889448375881402743972515044580843068698812696457459411873290677549356457805508014137719601284307732637348574522411029937663553962572080874781689669658598051884334990148171739465496583670501836061159728994015732321567995384927674214154727721505891075211854655838563436161865683165728796780998677073988650015676261365903783313750721767793896942024096193818833149525894139845279537698521063590176559556005543519961276500255757809848267512218516446424813641239665573519960316156497529649722792160900019031640566762415499285362614062571343466551753207298226899483975006334529713190406500346789689825692877706186823595041843387692877786457087581894319566530565342439173091497338492882912595098279118469065765411222944274360275661876634072178046246862187923488003731091396954020005006353553455877473754551954872255940293968590957358363593507739170497340514295104584472230512263757400442268320046584939647611162140644316553925190402055918289361454057698581655248901145787076179712552573613673265625577960759148538033700941771896829966623650239266661796095911477966452485643500733638078751142707495616382095815999446075840117783938730693696491503921040061819615659404552487713808208495787338840445820955743266203717508325279557424683460887948370625160656661447189683839244511647394995363946586258002044760329941987710183180212600251433534422762881725271274115490677470160938091987154491093971576609557440178739476976955833582752906918715431981431466989837692069115542206273130662459155199111020782609902233778950509722026194048203984654520073380595050753802622783949220314125667857077456584732667454836198268417591022794991579606883161013055430373296861777434173452080706430460719026109496626363798137878251449337292854959563991723148630480272919583335934234259020176398482387256818779645527944084316402572469240743791807124583081852690266675370449177191846744652848824030080023166508663236996259360044165116199134159021760302256300608616640289912379720244706720736133026262141357247201050860652559162502251561279662933840289675565870697757173219495306304722213884226105456167691918406382216194533604306255350725823306204769260673701592922074041112065281745079251480759239986919706684637637083055741331498927695041198923620938091263432410123554580302003869552382475061122222542392430298671503666093417449952004334145016673469628368196101052443565671062013994980670137024542003888642562837012262544659529596044711267425778765835538450801641678951267858794770333037373950651364135231984088170158951932460697473894765907250897287807329376607597934824981187227834301401313790932082486998824829176493289341422404856203011046103837932588265337997392867421335415989603636042875228943817852819124491613161043871464800044025371365709975563667430901915790350261036910121561485840676816198343166045569182615492908815319152108005439913243425656700111181698170857323725238435318995483575219741156465260830812037773281726160150513293920074066739266680932313496477943956856685015479304550090751285093054444697107087813986432691451793377204220212260809631968231396310128496012913429812739268021144206235613137987781172780084901255708898631609343259818951306021215303826924052310932809960376108934515645867928606570529691387101437644255141401578519909549511004476089816514521336012533566114564756078550549496364798955365170425439601722819565486146414872844631179092939506741715542684173686872724054714956057732848253314640248545464207578511258793754485218574514283350054290658763200747564790910505977330462727482750151176407696133208304807346631403770017507042910492837284162774701399738627944510438833808936014989603509529710645168231812858600224479670879646437988476839206953166865833493762516199656953144353531384712180249541966963438201693782464031962746286656017947373623421101799641222472116354330239852404043254025470575027358200025826323688514100420208463785537281704348373519935099511940069640223173836273931903084756290135507626654762551489880957870128125593259412455135989447878210313340458308945734933995507864419895810676700034383902622868027265784043258642553791207194810603278404033637088432343201418991791114518248708077742003373579771503983432941301115838142013778771812004274163156084368174202495392873075025655193308000898528117865397815413870969017693429998573266621688290634107566490422401190534367635887883993589183818942633751680968792612397766502602264678902408010726504983149800631111828336954485002511639108070310362130921446182072471139108149111123838646266989803007414656559856666870028468958201973802941226684883174539886726269190800639966034086704309154772753128069027382821966108666629999808748566860561506624254480820820509680988521035668740273471729522194116768774404310378300906751365930610442799981928652529002052082375081911093715880115029672467961511110094953156152364911733474055087490586949621628205977229701001123741921037962640688023476051300205806260081735051678061540243006483822366376479565977156591379780522645333003707620066070590033122232822521140790941929666650091809001427461918781498782233657862515216902601401325993218644423262678210318713772016455659778177667520763240429917870604262765032711598335069280172721906033737575106182690576827037201824273067166602191116032181346018325109153204497551445269000676971302977721870036665200941314125500328867768463210493396556620340333594292640265003448768701446398714531353691407723880153448123538945873625426465684175117756733148723186318891238519160566184661527285385058275662010649569228787530775089300470458807508576382785675356045870202999718422693580229563368230436824079524120568537902810324891061513401640013863294145198623858112352224725510370915589338263268004034553740380598279173606531573379467678799598246240117765536426239698021462686669804659902894557134125415948780963542578404899202126054270786965161040905906186964837667492132856186686900777972841272613833126317831907423131982291387657815205439830464677227580476297348884949816570881161268181118594822920867882299162731406943943305155286726133994703717556005870824892884344362741947181659460856942369758272071268162030655185024085193809248859007013481477789553778607449083691412493887072122320726796333941104286827675841460904931560663405135756075243949370394976611754712704491894047940418132863021098492270254406286042466049326027219792634098913566488145993409194389645862659484001049949298218752999763914877239132306480562028787529578215979340458400782141148348409487911324543827225129688583771647567857682677218536443844012466805271017579645062045489611953479432190531315194705471826541741936625608427396396504688591661126278832688972314454074108150100319521954538538540275251968196967498134436545279882496993957850444983902056982559764229184783234022886104398339821719976753640361943243225262953445045541647342547542778928665984628910011685771931307954439418343161952273459327683547509743566554864375287715790142270156228858263960064191803144356771911459318017654930217422465108858732084822287716296537810954844199499325134765606134946194907642478156098919655575987030938523876859018462276673650396473223617670968243177531879732214937407092139645428631250819967798480240019831377361583335142604680283857939909870562924867569139342830403431743874805298377767525414872163891249714632437796336873131461282092190569171313610483052530581864842041242539706619395191356304442603492807836874727931236966280607195466086941412308134392033800935493959984534435681908487603669339325962399473213836778952735436351786095949848455453773352132613300114567307433864622658504212501903342848253874010192380579167772343465527922128886354440799180145541549391492904810724259093826675934829628699503607160966860764560770135764281243247403035392091092144015446503618314420163788741889246314567744343310063170947568042385828719311176499040407675761749818026350393320285723090576873249049140859835038481794563258639395438512100811296618521963141482826532517237455032480094909596291358126509025588598912110028490372585135610388303986331259571934096187764492486418582204252135529669460418700545435811823214410435788418532958629710039301472431294863661986593174526725962055143570855280387373728919926516166405459586917796985795461434805119593021605578170731837299955072099971128139803865178889144776459997518549828426929523193685054535821218896247965350786902622228228650163269281188667416859214536838330139219212038798544492352352539011525673836458336701466198164279241333824635298742620258078391667653223749118263522071159345990735703171495707946277284575173703658740344053479468476518587932733137698595256901807060519278805053793346937626248157818645585680340413612058832758258513642456082808657950412547751442639475886787109366068840401552014421546735699613285794368586401768270520077960925641590694997464732962428646799966361654357189585105013999455209601846061596370104474435044292024867894271790502518043036230188444395900974247062904092296655691584471251287472058585238695209745063890343038397895786855516132031892387366548865345694594650878508180420614361715474739928147486438135620202542600077483653899691687898901615883433788638371146278418582873193338907583046529302826620358493113058368772710135752490335736392427890386870472018048046463600590855352083340070023598115090323088150668471423261482091418662099470982546619519019051606998183175763371771000550658052922876322940091011568977882658162879428923304365592985220496374229283124332875202878445968731576215009202371498664450376017310438284866445668282455934164489440526784492312299650691777467455651807376335482588243623665504221228797803965676233650625083717393690347691927054338225002683219141432917781449230582248267200767678925554988932768120802629331006998351053076953643292848559764416637256552391208070367431569010342096030777693493812606119359839149476695683733473494909219632050315343715587251561889724243692791785178532551986406320359422684374839252019050216686791319040209364047513362403357633498099418927332547581903363733447486702934432289253588489877416706313839263149277702702317087679315772423566052278088513764731757317907348562098528863614981329346335094994360221602504604356689675026263777017102664295664364369852803837930294881278786727612688393211084415522739817876979433985487247530102567490980584582351814525532960645871250415024904915167785658759492221663192244322690813334034914761448222299433545606628783464829873804152342272383552174495575463798559192377644199273190560003163174809992978623312465398802093019128342590319782057291655129074623992623731402245477677878285163880680944329006624730096330877549380712074974867241038449496888858673858616424876080859330706960486976811020248070687822579295285616260460746339200007662077169344181025511853778528381283923922322320766046344199058662887533186485097509591810707604815847207509757841770551533151365276255139557582565696236451820801812348088727157773344077570260296657807161593516705284378601380310348114067248126469341582196668616840382281957919316873626835761358146848613564350004670404706634935920846214641568785461412316024856266149844659748754553911758825355343373411073024085135027612731740225680516983314448416203216831463374084624867886978910469605161694799584848343357529184640256255966493112845636114811200649793016830289831669885505538766146415894243847358905872065593942103089443410194821947931342147374843013857233555312014676141015189384936289043024811699656010178681624520771181626819900683070065637253401193767835569554111396194385936728750866173351798200772128883170156280059302746117600704965254019462809641356432475433598653829179769841673355993573971620309912361742100692755829457188139650321241514367681829766443002745376901331948359509628727919779523509524346428494416605399374407143379727008668774059088851692955919078259328090479079464763955831196488989554323391184786269486999044119866292361129926697376431382523538526217411912561926378396588841249044321758154827009328425576600608207404568392926206326053196005934317154766083554857194336153931930852159138434151088515881995390811979959847857246251537742816680549270020716580679549530285727841075617900322104599187729891339893494277483786207385683268513694265587057603197971473976304026108575890821167046445501793454619012069383519148171023155944336182176992024469865957081664405720726293728637833493098164224190294552957193925476870631003545188320529915888355866643561586600576702223226011136123493889635939513920778056796694050936413968796867110287005220453588173917938380991341047974324684353945885053524006600940150315007199593784473701272402242586501621633178360622682260098607608903772518545619000782113434252817434929797603099729789344715311679284500841732433232055800049356687877040871615273554386363094915894353623416361253654378455371826239559543553577374385991496572944835668849406659889988921039126645574573557994604943335896447972175348046968802660482734694232627043902047305747178561597073999968165650184455948554344459823533666255563951010665650978207762610980115164103746290925260838854275511298482113369905409799946375181178567072967518374291545893389669129823816626476997716754621132240537822163707670240651357480704063267128274157831049452778162337610251759507812725582890723230941829802725205652996331241638647862221983935838248375588219434549659787436635194319622046131702104871718480945504895942036373753020520876934574652333968125052991057140727735078905463587538578510849956068733982384277826237745962198256101205232135500344740682466508237276424606019690309501731762485595179600962146523179440425705965154595853264263178924343584378884366771520957393682622997300419217560988044012347083683888841497315151301898284335170026090198261780206574100594893921426460202237670811390886653067151931219591716296361478565427628426618609703585672742774553036233471843178295983450705440941080897118700311563587495750183779513164387887028075164564479055569612458020345061922656882322072457337379012376329510017893912349934649608871410595593828600080893958375838498243753501998698581382962579022019000320384964006193886052922615408521314887452206557504669948231053092258842048032488870217752955442535987288326199112976124923601934381385280712767106508223546868953245692378141603925638245544857271511265577633850264534166078549745522617872445622851186984378758541029767433076895079842258674740831284581814216478328691850410226149983403952072140023169097127862254896495152366267174860368759895451199264595734343437638779667821193408081052882489289295618335841161797568597430435589752749165297716704846673012405802570708711414055749713742668412159441378317013108206200281685326980393146998064850046723021079687592454705811206027727685935651966176364357934506709398136780414302396986160991163293066496850421610347910324871403399293810743888167169165847705706295681640381311136594454028918361382800148550345102769148354700541618039392276388577016363301885124600461576868262683433928177070082528627874741351943992680557347690362721298585490179293729253179351335085639578967334492201299759648798184053065798404014791440581306780383451550115099921297439829836975309578803135925388352595452620368266252508668483987788578175474152496250624552347682430082199945344598948426924055831202416894988610849077138237724977636964951582675641735310213123460752069906222870086786326470367494292501145429664610006833186590198629563154393274644029516162644549849315677057410667311585250780041091715598647017017536236805729948999234736368401351384973603034000642719629319058080036523054073494350577893790199627064318195189292370012803243825847116706766663148357365829661734756454021122494733535537390116824852104334426336019015289778767488703773321881156102393831909856857413984026502866720215943901465631233979368643220216545262712250549144063370832055824399559677971642789926674709966019415715627858736724155387409953406848037798146081926698513468873406650910873932352492432514612315289549205219874240859486146848871144621534650035156819993357292441870021213585302132014252852752391524343459333067135741640966137365655619307176588303431271908491558796258944027074463536577527323729551974333275148171420034430879352376902549196630435910747454353582518507961451496477239566889647291513542123676233574668662714094862896882087499274590587810584192464643464941594163493644521430738618768016571388534686680160295064144033060602835292551942132981899800713486949550399777683687195074108041386860887710026815658559099762633008358506438639473551095843962922279402334517647293524280424524549703131628616128968214294335495859801409534241069748692502985994241767413632531320676757785303453915941354086702091375540223064658137770178509325495717501558317064776331294431654455493110251872057772208992011983530342448575092738666389858713598692877884492979136960324549642625092704174932911961054939960422041902483360776135154728945153180747593130719701316637131877812907822912187585523552453713713605308267173048936918755978895960764267928043625972599448871465223633967429491330175164134625106577039559941325095981314377181659524351227937287476014214975399244396624120356703288142160097445972552387977163521408400597071752136871109902044680062537950326004725602030268080367279349202546635299898779754894588793111047850523278576897990151164454719056692176180039618352626397776451171409071382594356419448004575545418983393007827481085129474010138209117844409278939938593560357521720313905453349202615248172112805961318633250635954018495185223821972236903940599024056235271611209624712745896469048633508877685908337576015180016972881161077690078859656209995584003832229593653647353630646180856066723094816493403371651611713254835279927461890335791495467755824952502393746317122981778772630087863039473154694117870803169783049892386091826516799292008831470233873331668044834425190584463021986995196835816684222598349958135555173772680076898920677971694525809427530999660526257568069917481264428517474949909340375705567306466842170691165583855907586988466800707796291937066624609448141003045794358663702040313218059441801338608690955646931979611186704677140419079920265991411056320866753775485892662102208819713157580723922924008305598866905202130045177945254504928831950653933946199696530643781356466312572076984873676771453663976687891477661794241731308108950845221981775735966636264332978263500520459910899169158180464227396427139097893279529759632077801500293209592910884851529284947228257706966889747190538566515333642603280842078337798040890153323287269471337821607659743326420557001280797225138973148469962288516972265564779017449395318798723848853066106964091878329383138704202344042768083757103297613746530272628556708128407235824288348347274487377100836359349124098019921351922657273160153069714884330019621407083253239246563147417175887191157340942997536595405197878059029537492119246574104318273512482245709629064427016682228191785634753429930852000564191318965059120776170247730963376794674872091718229034685303908896755487771597395292047465835186803466087889288707928797799858644492395721995636545918238109145789109678042242090229130374551397488778709599399391995791563717104009497194517677394020984114441904380482493432863043707657453612486236919492059604416492534024827574371842153416572461070060010519429821743182677921714287469810547029028041743902711477795162256369406364966756437653465459134826089311162856590841736867160217447930423892165621078506130819301786798685286015621514600453323302086523139778364823362626904600458566131491598522332329430551278528594452351906616674437070189646147297928922123333589243467008267099841398713614215547752157925773348827078612889571904407718847518400947232265188613683342549692829656612990378568160185796787905375139775063799413183464868996982030430850423949877848040519091262050425921700410264957924472643633025812554109311963149649653962660484065988558741013820065077710084384545762095696950376235310482108747342994880917429408281622380044315595801043985088063922135492402699362980632344217134783097560396469184612811070660846066072046628108368655656074701905390039930595936904311144111806677143681093629454501390346658410892842071216830765526914523961607906826343165367725781039791262462302062870985345874593053761082472720504790008972847625115720472373654232611551465437207929155352275221113617956775582820852417616408968009107908835380077232500508875550940560439973156237178261516010339848529318682141432977569381453371549375538988748287931638854696908810175292408211627526083575531894904444541230749116240386579023948076598569667432829331133906035968812477207612864059846467189084306873640607208050155675207477875317730509574138540192516331208979365157115418746682887474247315566266049759170606069349943498994301187443003197926947381394990836054979235648774630405105621553349348078434779663340270803110787691099985670748024162261516395187682156809750804479237775664146444911845695211089368993791307307413494409532062658444609803521096936097654943324132282389311348569450161606314068342933274137861198776724153194392035624229430379973899714138045739115522795697023778278454634760448418907925262400079062437446052585010748130927937801621286115197509691609270441180649451153229551642437998170650984852354233411195772344759098664077530131617658902645832204059933506605006020504827287200201205083367487422215936884838315779718800294025359008557582842728405644165252106219329884616635998250019965767042023790977286721830073277430125583687764698466569621074364542125410872726964052236628407329774110475349092173739195030298871998875892430440328744979029807983368835491254739947406534738719485563255451506734416498107372874925077558970279884406859124447858458827559280965890023211751177385826332578843719661157794242412891919504619866590267538357064306963476115010353643422442435606495694965814930128393403488794663692958075675299981125470064393997101250420920447897522800709427960065539178604754478831323351773914592351222485803747290642832176153080861915845808507281069862090015829820822906885703075435350921311972444796709040847133539199573844512793789822409209851099872057438629322464485882579111290306416307736439376181233677470295270700238372943242352963442370414196772007391790616089387327119864919677087466267937648598534451590926737738444699529945297715062663084529239252606148926734142215473947413627872393706355940589592605257645438082982102206139382516466393884841196907053285894860148358385105567589638622355947655380056134587208061149763800956387316761949609961773145155099554907900980418190027381093516419101732929443001540235929140038194519151701967794947020096660190621014590887790986700454029688131013963608376448497254313535396241026335847121526308586170922048070798818278893518528214992810121563886235751114921819559052849978227365567042453822672206725294792233513131008405638770522459125510024760070121813199235026770329529596044563567764304656120415717988972664140435118824423519347739117646311790940521656490640312889333818294754858011398751018448251245628533603471582272379847403640271107739283264189589272512608573073943167567039659037532021738677266617489730018386154731943568350655990270589821977602068743085105457477429535273354775448229090831930249478806178532569609727033045226229108432451901030891211456119884116494876338738817648744708187807783968358142896150608264097596753689484958890427626832172151238467944343177612515292838928914310919572517135152560660092988250713342116578394001638826277317171032752293584348426643463099433820777922886964049496445715418933391766843660334025588469161371189325721353232789317470885807135735881356827438971603795131963372112794993749560966069758910290550078530488711826747140605993693415757771060915864119754964436113704880536224289447857442609109685729510222263932379296156791939289134305438007599603658821681763843050428885995185664694371832945924361531932683736766965528843590372586030070853321284767808302109249693452230983419612957617234686456020473267704091210563823641721017804706830664612707726637285804790977048390003289901815539186003853262914175119286085116593621563479798191511801344022376090370222991554702974285783893548918078048682102896695669155379300625570099765167165593183111084200089652395182852291002036904745317899631758941228075342352961286271491431454100625807846764939784560305855146416882697419324145859102978826522169215715625355597711352377798430159736943609874038499406323034982128907095276540102961656757058480789378351122649061335956621857860983465149436310811581331413809456787894600725495991510273158965682664461313806036714862792626419796189183756333348535835811415069056103735676789004826408197103035280547960127645549270134819855756279081896050767694425623895216275482441744757611634312006090148272060538484108415760020918547997242694243508733309266905630868076619630377302795230957149463535264328490615002394853933079277334880441295609568952201989169583111745276126501284504530293408703859233335148293936900373901010780515545516760966072596489305025660424784835469755178864287012560875431394233100762954236083506241628947877346914431291452170095345900348178550338602612527974276158517451222062251939224771712496203680732123063317400567342979216435981189322560820255676590628097390760854465503966702946228759233386391403636603674597774632811333921287097396223841303292198206379916724165717905048109274179550919293442114004081670986567662459086410691346241169007876619232254815557825279653760384247590747458525894530199209716492259139730914853149005854732024797104482400543385200762306806848371270618197136827950158264457188337778192837171438333208972380994772306179508137446188357626556167300320926442244974928053255895837007143813994976477847680141419105080748739596345073119900850022624793308974264913756031530521550296395262050254909364085334120382497592564740919747191086606277640610150987269232251432137872575099750574476565611241700771619839301733719020397419856880257074657668904323872335922630860079084583967649660086452567549460032742317109842429733529752191380771496554821510868986547545619687409401518297744114462498270132743611096024831607343436939630801244641458934584734727013480138185187014626770484337343033893808998457501022200060099886015805399447401473980687398293170468088410586050694738736368240978293502480557729161474693030292827045616679904156890576250317323240821049827983306286436260911462132903366457196486928162615085647728756505296095860235094638519703373654231541894443847730588178921886790943719263789737297850333659761323222023857500291608637088903322043663722860440676402066399829447004205748271689459408326707953718101298923134102949347806231745880335169546984106761913875905803502925713947202564514457301311777980203730960312899115190704819208100694420675016194790310173993192227715618007899787412743795523575638230183781518975689843961813483993552771555410166417259502047625400849721740964299632201456805192287868277691928003650263583990214615559995623639750085225261109955583552089965650633906031824820758423156064217468351159739969659428913710017688556770875699328752414992631879495139937240808081774451784209602090412730411941604410336659472830703341434894807560778507698208694421798134386641708188165404417380441544652212694018979130822813885125759107290331615697435699058537189425754548309600996181739540211619800731637629085379195538307191160394341391853350841464751672519728647489129235993040996214782272231889306601586640844258899994757250586886742712730361850789445653223210622378168585663841924741289241598141162614419329883364978172972679596747054479180902110020363103794509083795009229633097924918149991675839183165658595591677943254985682663348273743902064827778282457636590356087247352492478210089006095736097132054302871620882376967249720136266208198770381885874856243883140677718224849261784768086706570025032606279521792074749535296500647194875084444086367477980458302399762007030470158915573479565686742110560828913027097893712963676407169567643135639561221900083132876310245821984364777241787890732924867352665169046145276051666486563304491272099129608215986061689391794734109471583876445434048229177506262150379397790868762147285037547844037741373246930637534373411289625660560422027738269480914396619183524023971551559444903940775881031281450701762205238449252652854207912541580791047463408567649326600262507359096435658323185161429807828218392188085554110562553083824107858204183083554363431415803462900686370913741633985340060132220246491112761146096620114605510463510828533003900279554964635204548718669230851723665956118345258291192619441590793248839692367011996093156575852340936662853528857195444497367121594058619883805653513941260695523669169734876935380919057744645178003731387292256176287539951797112194143557228957148268034211689034173467215515573832943141860815334443450804651287092963778761916964744081385309608567742754351383814248319439446926051188686256551764960017555888388826476069357914129622819399097460646442408355761674194721871981972868684394430466606846202445033103054371009307286352506451143672104681057552712339966715230828077123350263475113096550556892929269270016667395989886777435791781348735429064256952156231707765674191093301006318617098427839358663894430440356041691167521734527682185338979331151321085756397645845388477545977744334495900977373470932914724588684341538691349470446243320369779445162637262321598973425882067116525287912504440688204943001882607984766217714967324169490786211539182821584720529576174744716986206040536902262648125266591763868769551894757548726141355689886828656218428156758991270717057784781096249012256267300682038339616413671922116377487488581581984037969061032412841291232959622402653911256066518962315701155815101022808966305305943181884589473442693337383114845811846336301869885802460402192336732370795197459400749152598342324266806211658411454482483841180038628842617562950487328521776198278930736319115796473179743191774835406233877389338519046138599737106571391652829505852519284791942003173074415989122087362789260465140196196643364195581886848477866714120365960559893433564362434265030099956968470807564059614973680822094820106051898467920626896344699938903851280992077331366013916749887222690485325042491627278285357504945242840117339207406121435298386070629031665612626879540009714975564665058737587875701721941906818382436288592185850784794633077502170972285343325601194889197071430190599219722370659788417967942548295358423959848532905469376364295072732452208824641391235996412333074611894002991861041043929644513282125903132031327486364242022932236039449213522083840771295369306422979223019894066046993766230916490611619040041279111892084711600556706088606768789328026892224810370564509356894608334660462404658997919567986326787672463011898054780856874378854343069532782374184471520493965866124353206066353700124792129620313907238761214896371485370992694896727856321261465435840280758719701460811356458303362342196029125042473612128539485466029744144811638467209439939552947625163741698816507707936584905018577899406890224299154036228774742093614935806134771570756696581044002856585366990472716185667454234634264207991369172184976440659531572918301282779022074179955020608717278377860849640664654453153202962858154485138426614899421002942803152651137644939311863256695675913043808325927349539939755704044312344394040413443376808202392191927998305167448939322504887208209183840736699576863288793912438589050102736053048814248254951992996981036344214151244022467462774187348895511321183440455513412445059549049876573987480069460395221648577226054922364146521788995937252460436208530232571960331633624138122732911149056896124474251630008913238164232975933516483847935889557860001047036067040387911402777691242092686956709969096244230918979694195631697167729360133155875387891320226850541813760826974584386035562764242431078841888035731410258263610301159430258482096760990472344961499434565558112984564028952494720322067413124437809983280535790001763833007339319210152981621261057322858091328429375798983490150236167897703611798963130433186974515163278588572261483715259467495597233208042512183391910442983196052423167825240684967156019209052624586358126369557085378034848934859742700139764091151098717335201430983434333701645451586438190085031211373743670871500817577631915959788574949880100658156660123346317917606364125336996909140508351345225772494150828629984654565232763893270041116645797002872367759558829588421071950237928949822165532075226201432308967245579665580312820598813807633373641400532321659308656997790022610955007028364729818359571106560178783034847667644797009445072245914582090983781915118327499251324453944598160751624908815104575814059737446295517842535567802775037574603571945389994833446018210473835718865452049818807319466956426238992992460539487034444018769746321129429388318675062521870835785587183379856465861807931245604716526877815174481223724315603931607960624994405540471788729501717923790696061017286661827037708455192250944573230883646119989703363377252974416545201772681164588005618565153092055672803496878916406937090822246577621947585788646463630143872279846037176264895219350324667276814531815837076549844945344700007043388889539173134691029376233022494832916731449654828788429056863956632192603789253895948079381783277891986291148792405073706613622670018738062212921139436168088953323798436115150677544836263874194095807982871023716510372327622755568751795405231122485329715467888728852877453060214165359515000975193242013100187715143858979552795602017703015057515946471319106736669001251885523549269232191490390397164203235168827259529796497764558834181253836689032602797466324340404625220259826802495060863896984464861414046338110308417562717233879279996978979903611651119134020682570602209575936515990024963160779314718555272037098928529601649481966575950744324935578535967670383167537312890013394008983316145486302380557254174354351605410695461751198779813955761338145890507394384938146164335828870461279168272089242639518742432756947592161121584622558929772633407173320907670577774451825122581635434544574156538888029728501043671731194787191113902832095039497682924142934767109028600292477082468485586282449623122280866751408026192288746041477797347791551984489947195470265212879928519392435027892240105444339097388200554054495129597445050448945045256606016262025321511425323532382598520690190245048797897189906881579954960374093086708315808856611362692899067722364504791723695134882309211212469846437210251115893954978424199999201088179722202457318409155336980921765021511953289768495376502577828957999932065285568727772223247808764413266609501459736272689749487931759180135677503147900274438673488247164957010458207173990206994257196752606720785030364433811552752360515494529703356827362535849346114125286402493890898413195166430352600583665725998152126511553069387681708122078285734527716077740667580737684383550707645562765847109019820655733886556731902788903249351723738449266881039419653502504195568237531861947692788921044003511611660235994253502816561020272234000479462512818002637666409610499547943140719974626959739734198415381092299700203122432946342256676431320004140851982417247638220794579985110154151449250398952673697293147125513638342856253645077757030141478807202242979798485522585306060004391303489014939401674119046846100362883555581633366955991756536365141676774699390814878362875083107350441454658927882781755933849617513874993243378403440921850860209240020018635284016740257243223806119447852650367281764908129735895851743343393239297566430575933109227037905229033800320772734150880102789280141703113872179979637789668550201100561709996724486516831996711931945161053040016931730264267102238760207522118972483131311972811061799115317997515879592348109543382041092563783955161672587720406224571046158437811281955809151224358157082104548923075316043412867780848314431084618863708904291250911097674395800865146866276997190245651703332826337600931267210665994140612319531968485898330139619163556777047261596145796678390703437240773410879241242211977921807287758083682710919858997723708873542035439734876986853982253909597758180237462220785697566898026810351041163929158199426393425887667887257341023609954717565408872713175029277839744656248579422817562755451220694372521698142566607080051231724366337245627413834728567892215528121815407376942869951747625206746985606651031846539424452561749395997598668050861895325544395795964261164330632689312309950671994953233370014869392877405752802153396044147954338061359914043212398127081007104007081654902088071602806040065431768990227302844929047000312036575037636781601634632650032336283986655308365143166315168003102779505816106403602649272498303631662227310056343511285322349110265165835137118778764189926484133206587547771324988462233726776383824419357328405827820178884660935323685410295846253427524221706496565536817364555873792945718780501620378936447214533154890247124979850060467881071153227349551685737356584136826495337561855783948972188554155444128673108158628897394100056344711464780684018609222912563953573676477456830846342307925052533471377847041977943416433682248894482321399624732354377117594858379169085282455906224527070562120001454588648345251903357806339845813736633836477387956384031464618791783268212476609594614536114751060221753537241159043019659257940571325792884151474323943665705922134806598356290219423492382834863664390328876334435712281897445951601969811765097613758580326228817092871738827384873601932924289484301060894763546734782435116398045849167813940357785098152131352578990939908773832235736561094125735053357028383597003385438696729301814511888144619495275764305951719828221930144545921016197468305040508393774880380539740765912586834995020731497402956401305399441729871171442835180529195007409471679887395825119413104834300995070580246081952457796019592435588684654558263372304386587762864730996457638852755441230395726477364344681228366580034885369591180294753846038762109724775763919239885462840925586126859023175137566168996460611112125401085681837874863444875108101694531081278306527284698909911778348907248948657505619641608229071852080668965264631195201579562498185110305539053137286547948621762346790410454958751637838058418866258414227362602622502523068497900914257067126511969685392278848271841816006052267184225712704642655626419156310395530288616874397544873940280376918546048944551639496233844179333466597829594255427603342823795719321672817067824747696360191061032704268648012037956915991360177395488520341451763896930793505474954041861810947166017019242059680011709515401843464197169650763258283534263862768470528698730763571842356563858111903051416735549544350731137057776574234329332711480246450788942903519594877524391647237098565570606190624835194277193692856463848658511166627037837448660517188598986361686833101225978452730709064271121529248178426074401446157343054847555973233593146297457403460138741264290564514119708889018423868167600101577518831841873880032381607439365233857689648531470776767657894147828165228824044854353548674999879760275364127454742513009603127308404832913762127479131972107431596022558443865709794142420548356821525126365400222634463430717075981181744741578437961701082155692220658431055798603753916169807584524799852711396011597653410887326294066907422557027487738148930357913015820732840111111161099811339504014719681780735985194434482711057842583121781176385285744393016078780358929252639733452683173628295525446748366776750084590675704557527532121536085615750418724961673038054887941099335604087708033878307177547498873719382552833783372651739105885246590180639805486736692081061592723927283855948773309641250421316717330279548168941052701003758815602452616483927906171958323715832765588559490373855068356779179954952392900293734585236364633024266237512339940450874807453709491891151909719231866422736847589687178812457874688095296960112310634169899974927955615391461194272257762166896273297038971934144053154172843709493118643851638042930032588782705479453175038034363576860127529473351374686539410611272185564149017968628371858126181298047066282519866070291257323520925170764266469988799785271254151415728489531453861791976920810052562155949602941445724586023993722824078140804208965687619638007027541590978796768223555686937832682346812607475226265642126615371709563276957669232692877462578063904482272803468325813966280664417035751303580137230352533603043577186126982749231511115927080683615199940984721153302630443905635790467277001697298623150497491176141575069288677984976182614240372240446727866681258721404466470373247718610324774197746187070697279482705978740080399159040589981069166168155039459676751223505990198311995759659714246371976505552178202189492127097845995370951413583416655172916614655824970138965713797298111157563349892561541212101601595755121645069439549558963542843177533002579696824576018934189955315510340184675239878653691605490395778824523049000644632264239294552788927234546302844585716952289654186310553372938287924493847521786677442396043127224436259434638270988131512770549960626676727209869857138663909363078043942634734951792645127880278501994150898167242335453042775007426961239571080984859209989350757443306948625016255481260324174208034710631983872676309673515719970255857455482454929972006092100406450950972022861290584286379741116668045522334923317643603608917171864457771377853162619039485727646104879059786015119602847604744404255853256425101942734017935754028735298186733948446933671988003173039104710716730371855728936363691434997848960219152816344211121093850821913340409439771292887341227462214226144451791679026211915822480666714740770676540192405405084437199595177294065308713181659292418895474475991082515183411753098479769664871844051921306864694813065497423063714124108719517261357698077359571763566944590300591881876902215509720251228345536318443623591962999646411717463455151255258045287958954278765185467897206272876023030213519755602704064226385488861195309622634184740473263434654901183077326801478513012522326362558149849250594959923945638555858356301331317129722339631378802659289947426327980104596739232712934427406692691602002488912161015881018267522639301471100301761852001904331103761824144250844708343458552529033594306242830726767925796948431078574998717103906658937795977678894445320202954662707433900738625833651519515696385683859912852473346760688192945493656195399768446351568786191071387016272708769763760007575693233243537271007729650369203107452925136662554068224175306326941855775373973232279693105083402099669323429400118312940166517748551836129096685491792424536983522413045613819355972228128276718346615821506441090480703717196411689476909958289616196438858181644926774795241428608528035384158169724016942420842503237399339429585582262169337053999255019181485886433671154164913278432665258115659658395130358171498573868757447848794665236761478484539760313401450047654098975095737126604162433158655181903440013498713159679230474679761204558949694181599314478110000598178303474210565300884424686320110636301429699815022974666931834190103567305500555658264207328352084436339247545051766109491086062385075896814491898020248024020849470585572373109832941223086527084969429414716630197144252904153606533698238342121083629224135399991921254052701321940011945303595017739068101370548296874852682601100180281824047957520957328106234376316736486340032505108825466720755524871737912702163580045531281226081876407406885970791845491875213718608895179908704264451540261201998789961838236602032761262559447628687919539514404899891777640494684823601846151666999424093650592220837134632602075628047487044885020087996868440874048215193573211475212139742134144466176640150507618178593057928763954174979574838908327906008436524706100799819763222197738883671593166315600483976250698307484925882783547239984365509121383903929761361905869201842010295234960635782637696369282566582258264108396720313343381403275680583793892036561584184660623678119538485120469730004732005426897866848915260744672035215159808307564082887131268474863899466237104572230440355922067732021699438430649682464751913401122508271687971231604417890539462967233941405442437804769764376114690692908062174281327510314467564596239916355363660312064036599140839327469773086197118919379627452395504859903246344121010261776051633536771483278148187015578906455606406272785602435246915178849178177216128390825237092328993054874195423515878788418849553469575051599869896654561749857858344970900413388493829166320199367588231895736805894592519462456412403295318130933692551867045959664999302978133390336368783414828759770120322663083414422829224119911597330904953677308007705208790913661842242459492462357905220302032252746514678209692154182492417552717873656331766204953438191422188844190149777485277861196538338716921267693563318835746575463237580868331243801663893693686822355518350625278884895179940911508438061742631831701577259948840724260279637181104432178066017967106272361261803674226516347500074364262529463218376424956199606846743412177668427024765640656786325238914808717672413812296448220826036274194398695004399329436354311285077694467962404461903099574394343967312194139699552037883378546294154866867149643036898042156140546585543236878926983615516193516005574623916192149863290611733974956781201987166296202870921611845097744185092248316464013958312326397754675877727245808206621838274015649835693386798225765347194968286872012851191590680031130741384827133312907901163120260239205976870899249237502930765849901465846402328174357099916463999763673953573244209222638313934170511363711805022928816236879659939285640421580588364561198681673230852168434358910255849281377082738101469201395487168409008492646143879563006303941703697185066395499233763508527980167659263905297671827157489570232215726804958442555117826082814370495746993658659280900185485097871725092340644958375138139739646339317850206079983606124402102025698675793952583086348558816024797217839648504660366568523138191668965270303000972811787950910688356930040323292162851864077651067994407297149247570935230797096585602349655611177517531979835100547742429406304228747624268597011335950700865336592578538219207394333177436322260450125359288953192688252512859843146917769898678078910852467443145660884789161480526252864929402117891660830513916074263612082600538615146495140202315740624361458791871866770037307757259604398729700212040989443976828024201081778893406061943828258653410599251228010272667845505109803092791017808117368912569387792674712636083181578173206848486875178265387332755723506417449181386077977462452121067294318071816041868219645326317496415893253267414213146168096126623334631922195325411827453082580919356797485354246396535661468750787036379250222022920926189119024218841941683071395460061974466680259321271032623880618440128678192548430776386043596669296281975976005295782305637743441386169559471012046183341736505841585793445749506542216893473980908111075477607758699117886138763629464689527409684259326634964990540308393967856809200848306015402383072214492518747675206157598037899972760614041167715712566230476376990728262535268012302023090913398389147046627537872814234335674528988159990948688366503051017488520543660919022403572643559270172856911007390229003528813783203170726876855976673808056707643552789224526427238479395612163880550050045952974024826639950146506385480234893347576412269882683895880854727230501061625468814402389724625447639277653310764250627515460884713688332900465239324124203978317638268150223964971794518803507932392963825131893710905399313925918862715629143401630617047291010204286543501137195061856217487052364987076541401994227797389736583510959088205782749250607549652362651902506291197126469232405277478270084482583077441108312414079344513749071361609081738004514938939988534120689564798386883761353538766874893973871963063645868321587826958202738508183453502806641737383653492987401758082902699984619760032438637059491509308714287651569040903147544363337486397392537824114433687310156937616916646462752483599750939481188347738436460923215462463999236735374417207069321025051761579855176019039608809928473239744013766008141101451397709303488873984365899484731888704030461528278584676827777003451877673720723515187990882408878944624327441021910305618972353968633017568390268552485373017254216823161515874129919387293143934911124680375090070097230273491476887203904056683181302781381497478958577080455977333472416711673214127823783540956802299905735954096266176253795426490778683446475247793002603108604827542484528562570905812391656765683016870225966158581390055552449020098675935875927024144815274593774287506119859703752718905647527310891645798901862768270969599722431122068400363927709639452900832023066248925794417633031589805244454756162837512972348804338435729293059060881039513042056859866005341889329362070293357428709740200106556565089950798018555997911963857221261394177316413167311302710240848608681595305836937676135256459036865438421649134613368592101138364676944715898215291329118089028555380178312998902095855626921398749200659030252164215653055422375149670792712396861364123960951253371263902453922614431671992328300631127052106233499378334815975723144201533827862298383721982820399612054795480990896360194260902617515264550681359767481077938067861972330681839499563468579637796233764718528743077956741307638915361918925991146650880657469911217338453641722641408944694825394607516857520782074003451369801389550379554990716749276989217019232512023435054673961922625624523385509665090890857651931625176901183172048326751621273573884006837512071793829655924224599448174976638808479267077859882948443949613210027886341287405186191976074238430678718945468251489426776917089371778692633315890030284919701306413084732941363320741637199598061724823458452741369639620119239754076469928379886908493591138968809739160020365672182578364148356772052949655217859669184894362613807864415119014597612224846349783927803846785033824207667500792224986892803945291532436527517777037397853582094802053817685283608892436147678584058390221281642318307382912014558023258287534240191341991043737177325319042505631510898942394642163439382961320295355382594242513531765351450791297071038081841008199429933951414962165164031362742748039807883039707722723977090328150635021924893913621936062095344946153507203580756776411878792883512641944678874356975636816855298193575239734293419155081178845836474483887170447879926076789304315784032037504031492328268477255544376844408888448949631353630843853806728096170058256362576144292755335422983382616235603595265980363808674697655291695918190184665676200139811115268143877512853529602570606589337104595681373771471730875230088775444854060852342948921617252651150262864819868663343201052018238343940642308216754604267508818408244913181315690554769438329548507556408700973185354375985965035957378019767993785943996343053329712875797239579962477045108207588419050948966335644935085323000037772771848525714343287023308366197128149879964008381895580528056972655190074343962665610947791570526376964145001933117155826715307275586435127186193527850155666023717850671238369950628261897119947745475269847641886863633138359932251436827505860946578586357389680178271805627947139912104944539977746396163499516900445918840947329762266994056774622976650802924075912944358998847635820987354475724710864930780854753443567500730097684213487253073068331724633414950387846484460156732677158551770529755354302364299604411306247344321821591306842051195088652008795730603556868255390652059942319957550381195099267056788944994207498091312487329588108914597909358950606389990794252083414959833346762294528926558106730303767254078700822419564207389813437973548959416109432381527448232294693333216671399599680071724750541111928634660401392951774484024750741853178682182995433325303330191455032143376234650976044499925453607586396786159999828156627655439527621617324955850858676784742774193610108407743381251019380793962299683667879359530431172358285814370966841362958764536008497165234794534285169281099732937672954488899520512593246707898580630284814540315116559878533838752076002654582850160107794590706016772121443125991596178356568600167936502307273755128029261937335747897959204639490651819887204367009146424304840863620524366705944650175558453388642825294999778312987459463894866674870491735679821822104799538343979052626677862161627268508052179504097377977574173202418401613462462236025252742972499309345950332876717160117059130955856741965850469607391046596254171202320186259767920205367629965079495987899403693220931439014920045397685965724683210990772720522712869559188918552465712712374239255138668470417639837396478637724771871696375032794059210805062135637150512534395658392670745767492356451421171219575729418559533130831322708625427736079519776378400996092830320015003008300685478526916302339297426764765758837990401343571301430398640092871396099086427209961037433174375821282697284731456870876768061994996278274360396513186287167141244040412180898245200306655122163281825714299184170484786209614674848084179976996627748320707127486554783804041979283534233143223186013503827063932461570286179794051218562855609047229462401914160132743656300296795470272395380766383831068185866595943816011690102027285623072557875542688530371642486517681492235846167233737839111161774189049476791483151299517060483860553867024271194160278691620881610932498597920145055475661467211033472364912121007736644954875971592719801369877071726127723853596134180760681404651097722662040777476202551318882009686880523257506968295291661258372515102839572858621677951282414524807443063958284239326087469492022545159988531658851959208942782124041939824885112688970041453914709557199855128078885059831826234569942725329003345159862238551941082559420969720155904222408712066653189360585510036010599149620427941825393228534525416537685535753059318139517102963733875361160717966976758738826642203366654703130032357211512543432676867406298724792296027086442146083330349101064290676159688760348185297003661564717908618394271391090132679494461443503862285715723116060810417140791664313058964243828915260650907195988882865120650254037731989557665449262939459814936581214409326626792590753703365813027542402358691192340708756642623341690206084586120748488745110233641443068553665824038301228833459745126789105532931676297528843259953168133132785463225114715342825395664868450810161262337004819240139210384573171119788616383708107432450155045645748579934904646322523983443923179012629073903642039931314234950739329364529306854957758540435577928318932996770744911572368455726939436940051710712599378359987989509119161191626382132840192768683419858413330346171961986069004596310043413809703108039246656868213467304569337767551359195115698877486373212456984141859799606221222446965570117413036306763135099662045950283889760659699347414442927387648395542839547376858261190122842803374543927501941268075243525904769782849090556037453026477441792151132237897060345493950648046600657618511324168766494512705923638309149473642070472769420036991342196276733216627982255425394745428294963272184883658099750661171644328739836566485438716015687462285590831552575384799832254072345351240527048964731716591833559681548636285735679411428052384319254425901842090268284392880173583827011033058800296713047861066493004652913097027311272235845419293998062432617007595012080654647431768024520959404476008708213816386220758969596552939127614251844299110143531306207770192294530579896743387625715418919922538798763591240572266450330457204329317478912815415263598220187476513968923592982343316202377912600138970072844973542973164748900994887828733197403473783549565539805287690493195582638559821167451897488813756727423246498356189942698712917256731662368989104719395977455287613183491960573265732433770892776459956243577861125449109523092306436001520973534237639124923868009038515105249145628671279310678177876097688084595548659815528299626630989870281771853829679349463889757822424343794062559026252394798414184516694975898017424743533585676742018826970400842046774875803260423302394142661412247516783597466712102441439198458473809787391414124333053290120393955570479690643940226566353301576598349667900035725083536653229676163026420218898260671505504842320132536813089459345673930655071981542260696533352039579186490608963748661765252323471872065412619908974309549639465192285952251604150045588185135061914061226645002595860730338645037376071745249098551934684671162004626851699256029157950470886675091827109161653991052518050518882805685406210600664600895534545918248613575191060940042430941772265704768797196386951463209341856206603853457284081387534442731609019799559064916930671374593972102135934866199328289302605337851262531807890623806780145048800533213183667606826459282989650192646362425114950754993389302889109269355336532416725859614041973967834655606911507079543230744841183636337470053979329885681542134937481625454607779142846150304347687496488503116915841929222435262736107658943702689517696990974553222233200801361842176325576661865712590681370334768232138660673065312916466061115118334045128598235548108354307499301102227414209146646211949017802968536845498044984866503077181496001473797597526221706694343278205076224165225812197272307158497000077394846121508043792654709418099401238138664531289705557667425240259494918292376997985949802645245636691279804425190779612472208934903293665666865574726596449781088304690488421383863053697142979724533864575451327337869334647979820681036925557663547763655504040087574407051113599682063045933685248749271193122224917651248454215488984728156230502959334974400688628799210330825374851944872149385781323458785594814035416495072748251787713420894230975741880227922683525066913036117698159994917179903488009790359589987481108143015789118377329330171080826066608410827388615571723452217504416223934682697568285200983723901156945760274961118458970069063142091630080702534283490137987065395675129389768908208778071112115189040801938040099561677893361521539453136312489600875246351459951102036528804093761103298458058718197146245535368326421887972115268928045136669996137919302043995195324404447285234888100075484698760659406137071762913096714569896304885147993409692302162590746537636844110251809254938551162488069719239260468899110835970217562079719032402010829729382342945088038980848432220992250489276356222744196201731577413433835010597189867271380852074410699194591794779477551385001510990273707150553333666927549428767823475205400699312837954315791655762068389893699176208987827891975517331707156005653622585214068621171715714591780870121300386842680333730488639910005854566974247933739880706404296882733050507508172095850820965571333717866725901586646410178380307092615317181659832449350047721229772511478996579772907501685950189673614401038288233512557912533381196140883871021402586681393743567153640261167732262559338359392944734264525104041603935348326079176663421089927095170151527825572707880843775618547317691418129537684801957339872906880744102559843276425049974073822629550879474857314807963084815654575190487241053311811749507330664222513130513006921877069502192458233382094717669520271881146298515007031288494325308525684765547114073454377427079534914238528523365432122987412060111300928420065021210439428972053823216487260749446024600931392646113229168860507952323179088543073494614925623038299344173253042521434342076895018614825184944264623286792786621700491510242113518450941515993730584146410014510756142803272242934408356045698648241547763526658130012350335365185715813434942207989059753188365389166510117088441636854585343332315014566815462198197835994903446351653617486288763893040352278133944122818788391630364609215215713187325357887649775906473797919118431458771592081999864725433461336937314286841290842353414158289848920023429975240228394832759763205270964904094962597371142293342553501229558086219670396319092120761155147219784784743447530668009394109898937741027525247189388584511726800828088447154430896321397472598389712380879872556845324008937918883064662981592153500935279088748904729543716551636321931453417724418463811277072802751774132444773036069555692913707811052291009422339562083741716041390400755436364023312117601127581148168031099004962191472215552761635774314304381100921931776965069732214430948771329220583019184314557270310591392527877506466950365933031997841685688266607222682513794391828187940602983060026332425520219739841925195393801289630090138707925224797126034111995749800409860779856840860589253415348727473041565790567444106313145444289906421949824950476957632664635687858333842245255733262296093134811456262081860756871814534363676408974955132838767791646947788221721750658247514682713440286620740730687443233305737845684433798092163405441003164297159886944429534017518976447419645565766000558179594520367843948814896732587285542340364479310352337713470280017047725247981801269490440704211584313444182938046771527587735645526191381163378971985718717585282291616202485344153822110786787701986647629616264497187073137526205478580570906361626269232769133908377582014528061929972745519852386564852966099856605879363234355753076471789114569002982195326926234671259420580849564711237414918044650738287725742252834039592788594323888848496607781049040523746680633447605846524671169385765126997460102958645820134858801011987108229594127194305877776364394903713108599455493937132688973283014050201650370094502675707291991664424246776734354413862396193416008589783133980550073827874606990644085789397747648818089282760569100226273271313420799762323858739054133897102171110619099531142718449604637022594359573692369307813375319133130755633168940317665723278872651236083961135335387424551614308297970638907442266363865384668306800369177896496781812902810023001569795902589977574525683345035236362762678917087870927373130731701615784329929159664689752099833704763298807176368368489878749370508824700760268028864369707480194856802138749240731561219134761034382701244564981044058074810775493079869829873831977317656658659441837748734241876192607372457986098382988218818801120116032871337921405341226665911474066436092588093071229667864305484098060623035627061535115491225724132626734940301660804538047063362132351524416562083995030438203666791654157355339284924090849916315834323531374569565315840681266527495768195212478280925253538945996445179256579085645195433499746894739504418834516466382119347288807097520614362950991719124828121305048161900158142056541711293552655397851242161477647279927832433094813775640428510968741295415452427834676599970522394357452749207016937186903210554780902551734910329880264480512560501913497315429386166819848654307878513334050071533028659281227264321742698835218803108926061680727382641712177479937524380485298046962163555777502732066249078166750801702730365139570356342698392930571798567407598950107902719971445407771331884054760920714410681425445176954241794312380934041343367448208865868757085471081287524328338999141251391099656175334865666173289665707692302047007463603347604531124829963048797259163462304771366411392979008237765914074048195214924732684622267565691048485527092539226769255972358091389751904968394384678423301003019170080415360113352304761478524541106986100401184053151026142889602485931440640791655196096389518127985948153839515741819051167915752551336564245340308208769272322598272325953700572542060675052354443007641315884565372228782410799668876519990740193029749674557164253181934065611127758469700502537444281482112800584688347799791513268513666675893404439456787274824279897778931563253996425637597417901588655086449014950845387473961029454925785660969425032407841000318598664793741351325878170181389567749307465989020283422247523475556262951388735643235675461116398041293360088053807254481868501118679847781078950270642443464859768248721673315515294700924668316540847714005687323247351451540963987313364362197575077254088926282991188476086896968499733914672926082367949134633637981737629351050200812440314244759411815800679649048658301984600346302351339486475801905734317408406479862507151816854400509296436611527138579435133869881558409717919388239873760108715949899439453354173361996449955630245115974799805211097349532680811255349485559408894986713726961137795125549081961892483477960008344290676924423070685302707135812007167994683934361998903380941354661597558264171600268023558727325786925234825826863850820237524391310976079763777596015031995913895073684334112825735367339320186934743198862092691853312642587429883767046738800768301760912844722918576282484328985825541661926689240161258544669060326498920076534888042250162945567914356161209953042161744495607763822964497246889640392215683495014076017186240099475410192175982579343834490351031957706055564946372199143609963539118588098703361894345311158976009077302927772992673720179374467973441390695780172565176172617723305880233302730780040418026937823855533115991905635876060253900750670503022755810643006910152534967670926457834497509268991882371828897869906729625163441472431829743603765881360006601731198017273401214608206114024463479408117829220998371010903569468867424189176656091190298536771114482436610954960022950131213122014683984406757215423245917854596684331522970111592288256856618727334953650381226766961775934515204766243746906082209381102844901241269342261917016545133188008179008453815560972646220677481860653383659367801087252934071414293266208633582753101438417256134511276546339024389717883282854116048314845896869459109251183468694105036231273719850774754604713486695176565772177409850483800132401555321633170556271637837918884769087111986215032168606054633908620687759141405848833322635841041583185686984289769165023326591108038194687366403127084791429683499576823046812149678928186525013792535686003432529403698194354983681199512944819253266978062949292096380956599573740471943406411881482177393436774597893266257962060951381009024784537890300681540875470916011624801035139458732063342259046497049941356109386373725067387591568432705797739670162666402707539380357555733568761407765637712729339394740247284533712390355780074296176852243006748237054389621268974617898775826229719506126343913609174562329618657174805031019337918629725279278839941788948899890401131093453059708889591282018282298604318766482475905361545147480099565460958174161220750860916735783893043711475486730284163175704822034337512091090801428232530694911763704289614262619308053945187819532334893021082714065627154482351487301353691290896954215899460401376436342242748389980111702325286816831192137274799277463611997995754369277307836098219066029432370089865448150407768415893827049399665712099557239134552114477834276209960099223358343131157595206640280069113554101137318022982836773781346969167823179141333568934999363473146387431440390569701379079145432761196137140226634973324231506200654918690140564071769377404191518858257380867278791794778322941223143508619761043879433349911773584965748084284792635681135904861456618948428884127822808025161805248313600464549850764648679152683200594240361454087142243849577892963984600259937136734202348951286640893978581457186175323062098615817670901200408031329171054787288901903749818335796730598999995706952083322312472746571405856579485716245603858822904377687892072102259856966238896408817283533539980263157217766495010578451558296805247882669309275739514508881133502880405334290004015026287555342188487775147406765264276724166892246601467846876765037865360939017179335665478065481211048665230173892468891209567061515736895140915618824682224513477801488072392326104031742272633301152207671700359742940486502711666264806854442881671731719819958037148054215103888410751069313460023354858800110832111251285488459885435816409087344113503511391502245128020702328727471152905963533974029109346669724529209693307652096148557535237606119027321503554556680860853338422520224751817955891332617709389007712907571522939156586789603829139013661537305916026099188248742782727283854842157499043667875092571132450139045105126828942221943578644576522074128620403530650090151269100462546370139632252409505315955046767980224555039781946557173563575811949101645063174584757806340287968179596887451548585595380900948236661857059037257993107720456575848630306822225683381586517846217750843423905545212713654839890189515472830104714066125816939624121268765026021769630458993544059199498797207269673240895911621987652105451502323202853415190365579748241693553823885429613446168477540663941029187251171540485775702907863552341516042294201877812575805206461289418363673969991716581160202421117629170643229958566498293178735392459403171466276884655614987980663320778146684303399001541598227729581932601907059407417513313280737920989859674112816866970205150588898857869279298176347184616584492604669100126454541847018975345276623833210535308964077134981623882303489546010113141421418923678021916689078937614629142780616140890832929113943359224715971671308308967713867765195375304715000739757786093635163013177612738667726856918598665658539572747652224049450147557417491611701218742749591001852779910592322654624215811483647203602954977841412972653763017784486970925147657699482611748928860717739926058365673201780481272270523867525730118415527757361205318874685940167777394104448038183393977776063867208246547813046595685913095661479066036450035610172225467069075973443092645173426155611343962969065667532134653414953098178699724700559131223697753451187524795942556706169452546343287051006248281987757478280190845576202864077645501146854576083410189784289468367759445411878467317561918322063805852816537505884524683315324196668356346048797535691472173872370501315010289505639815540943164649158024713643045255796114447513784092992764128811694481675858118948282462958707275337416707210009760451080012741237293768612891601635069486703247449133771351761117408139047109640965168567907990456209415864159433404846421090483160624659948865594215161244638969828684140240231884071487327679428355959522489244012727274130357037070115263788859931463629842974402144529171552382700571799496231113886055660059322033420202214769462539642474203280470002846263236315430152297998632417836438624283687605861071892898678868115974919666590357203943926415729130655001215084199550413223364973021963841358826724797405200234156631504895900047583205363442344965632386602589769570923931448869782469179383713334742684503208073473332866414788828713862728762380434120744432925470698998062166439890815667970892657344734630030366170605007264596312024405275117474972257870433258836477315429804865969154589684821290942951288105365515540053399834791889232807489778041565034549542840947317686210778108005018582501365313854529763327015799426278542323634208681654170742831193130905154084093506961048311413797600603619979295678040562894184742031723231903960170473401145468039547056638305103657448397937376421406852980659873518103337444874564524023454415997246952874877916307746194784511650861713455638660438887878936764910282630936506529179373065712600341680116371682937763185464844068147608853535409542929329278816104057403111257392280381821331708852472308795521760704385449365409404782993221464785343704150489442174775114455377322343363157293453159695163870664201553762026179877646206362506497288654575041831609352336577262650556464750679987472568228374579231530597912753111909290820755725512938289940936795727307585036053440752453142349166486840577067250362089577502950731176011059909910640806357226708054820033245584721627183241203233524755764158043982012164501346137702344358825818234755370762865778535570269920051248081352248074213764525850639991807179277811811614865390697861405379994561183353313447154784357461353125538162979089242348978895550283427024562140163084031348654566084866260664462935470947492970539375203060919567646016876892953077664426331812302449938298605667742952707139894622269980166121535933270119521760633884836016565777296718752069298444393072637465687331551396796818373986607878024964493247118280806358733791029866392409481768394297879575020913506499033935073252496334825782935700826741579143681610132623309533763336045533095509669169167560499183789940245012176250723841079655618351773726243565771626620620548490286137586103364741551784539341025051797333427923192082075918024907088263619576860902591750043555592833533407596459537742603923710460286568889388641243685238170465918118839217502967129801210425958010981236970342954797325505669296581504535990436766191365222117125542237262277967078968310747555692773620815793380084623154440991192202233861141947880014427199589231008590147570589283937383792144869061959300667161228117810532861886558448548654689673105633401753137812675358449891597230271925054649319499835392231969549163985821107504986733463600500794591043763061246635135663986645224213174455726343924348677416526085517579378804462016505412774485107777754963302223705531339488448353532294643489372656599022510086664093620982670504331899241524737637718897071121178242775939993442240224212169778798628833178416221047648667886564035904276777844186759592937788715178675101421940336743803260605209473979829488359396491870132395355779650387343315857896550203786619795850907174059326895827758451007942182793569183497965371365261452492240343693842554109907983004915724099911923659649096168842049148618396811728083895047731041186756063575695380455014784831909099484730537551107602586373264281143271682448807056437366647048063837800125704807126708695341532997824164747030613175880129978131344997677187529048254399951795878676767763344238025258931712007473484092736255231994263441993187625082162897502208110028625539890584316948239250966895371474188946457144338972603435644618735957114833143898686454616737159498874055430021063961104600222446466685886759342618052037654410686282041033499370124726369194445165397552346726398103895112658066527965484060056044447846038237269426828059781087962864144769993063822189455444307508926118613881639841714303405619012298217085975980441454501076448933830287425145179537450985581809396616318953647538461913975450588226095518550689713456579968832454843091315361569907311566828114809478347813054656062932316378073008670653137304324430249498584331903327253464917433641646141377287224937677580820633939765116344962993118702117032250413399388918231003673133543276479722246203812482752503442915851937064884637744822534397307175925955688765047548723902469999028910083017683208392020438263810273624823682991663527806268961896298931912750564070383033994652283199767335039049428565558875474911674785047623710442015265491523797125601773418658242620899598083913774063864929852827606448280875421951351725281028926144167224720031487586674377080153713710481494898423703868810028853759260892811849910326225157709227966001753023925281109785737856603770102197852954463461056368310782485493520151072608037081570123643792825151560877813902869579460174555116130097718818282276582890006741958027158471042744514262474317681372361654031622134474449214574372860688450479226629085100934789375621779709605165863165370736474861744824784702442534071435671215631404496320488747240511960018856820108417073632702131520561110060139038528299540697972767221100476397940079575093250190140485203826729608214348746709511192569873064880305166526858761765950826926159478822238074349891048475858085803990832996941270387659603888916274834568585972214676925463344210348900702735265112223972486117585752010597076547887106979534259244641436712283659183123969643566155816118272005893363952088956004822758826672882948925971688480437585533453412526367543517000527662257506882835667985078581399995927281546941665704886589759952800599317656636494648245116892068526273439781300579445897648326460523352567034402088555038891834844629273894506635308410509696944449058909482858152268704231584062166289467264428861811012834434784864823864382220182468115874577976823167900784496173458429836907358536026069820404775119160063731419849997316882962923897171200650121226616640253179011878777443128653573877753722786464708473233677476985864139283674771170786920559566295537653703535872285810491578895415136485097477829459970244728056616864097631722794880876272740904982689242213425821819120247190458833185140799109781389751971811629800143009037760284894244970645124398421280486032340076986690641299955167620091247221156429677927899969989979512339244026313141863170138713492840070879404632659638062285170409502748894807082114675362550233635827271724209943267502697394552532856767991454004113990998152414997732867565890081474747371221575177844460290581189341673301355842051488264498654043358132412327780998453992174124362157733422907652902714499686885281857897971253119536104824594852957568041493501257358525884553274548137380644407318387522592540912010352829855244070364932157352116782783361460127943429755784120484204320026932699555565465403244474137593525921931894419625164770031988977077253011640207112350825084615424792223740066848875743320406708189241766158425095708092497871382106333583576778833442483828531474571924634805847829729763711259972248475853339358491729178223562491372213781792924860897496360278719855126509926091077955852011082290550324252181509005032694158527931613005738329769643054059217256629332642631521553462046730653342859186053257563874346592788985049136027962181414000747501339112440274615159642952729475438937941821416679873940710193685169232772902671820715981127063055106487717596383950132359062511183986881538178388260225816055415249120710978167389444791482187710349790278877599418767126216569604979220746557651497146165363835122102008401404794082033550494177728176049105994094059120825118382402671681783279538954301986128483416436831637386535433478808313353080990486212156732630090022582392270100967312807974786778457048962472479438188908172256601977275216771378073001612216139758992607601566113553654930144458304387179411586886987291295938537276382466157983696890750581697901833063772193815036134318030390101797095439248022819841961308005700334823134706468010257950022860853251603943466083486361943880509033184317603525237329320727411721546142532030512638888085260806797879016149448850667792252930035124983663427442676137440333989331919629543542047971835222040579953232941079316535011620966236456883383438067331940673105590431521572260373029019274077367208463539963343244137007355823387507634152246705989752086889680005837812627436383614364957272703747745612652760355900975192989439194863178649413493712495387388709097804089365975187065998256751275432048997645031518246050209197315878303131530132682577540611990668927476763919452394646923740655423785513055552106331405337803185743902722701068464155364927648825043962283811734147172533495061120474021901187895759334036380898201471598052806895569988056559714121371000845411019560408322790276136060974737784669660518761195587550585283804839548991961101209208113117593886645911504735332989331378720612509428758125814025416596408879353194050686923565385583278299184690447342870607811763422519240757659912021783340915437003604874949290422746218288144473345568239096657032148228875930575828715084614181255474614140276134313160601012654206016991798481413049790152958772198632541281297467116448087076197110869629644782400095850469402798494595431969749672011700630646026917201354312587898671134419403157225299394496188051960714347520266355816685592460112202542469141784378307617492038094412364808777258952720606776235042393372650317747203266289712255828729120764558714375146602767017355540567662688365572102666135643979325058187580530955998998095988268871700897324837186893656497737612146688032152040537431680488769641204369858929198592261632992433035311859391619751081134532219333805883041194457207528218548002205854605310128195252251265851131462239929438533336851967073959987854913357721782569089382870240818556066640314383867585997855152374245886508267330011507482322299415117271526728040087295568225241599720673100039358915667900810884694210849272961913787067384511393399892679758001831448282784533712917110744338364768970638927312702711417877182493115222684120640858333186098537748035346735538227147366338620735412208644688777653045796353838828354884375927885237854339589721701859877732785519328000494207384752762637800315078315292177608069373555013171698087262445079391323055926126481728287827572230540070657295714166731911022977846551943264519223977497456285150607898374459376064816557753182489510187786412268262506875694669881490284932633435346126058323859228623089216588101113469940871764066586542808445060981965963694515572158615773837376831985465045982800353256428128281855608109406987263978283964763809484929074144794150459306430577956365772499658029956906954521657052133764774591964194039170671784141466772422900835970557873465315159219797217204276594389564085784129205815413220090962958097809967299968508989049977128627748345403797707309281313639932553689406289976425829808337935959669391665350082734603529727592161341322417594864340310853844917001122073231413133272416033082667759007062452073276280354848976913417966745035206302198153668058392664174733460492252785147944283795877302436822412221401395478056071764708270091347517283537450455490514350686330397285183859916860553720165288402385019610690531582597015804005803066718525722077731126360150409706727717253910367403298741232186011178871544846353607072988597701098387113035754663084139383782886229728043826571465070330712188456829118885340032739808300384831905062072484510789303983069507994088529390715268735213124920278418724374140176871455848370701607279071771043460280639575069251279584964708090933812962465407480845668418872586970226033016594256256030099535213393234512446018429357685308670123565789449077485857354615081679807088259091374969730794957779921008491860288264288362384217899704985849394842229018244491004802709571945114143672278664647746154689529050205594245634656152786836923879600571351307339095939624024054405200306114163028683472786649412349075372290032896090524276260531843918578629074589407839179475888968096765973162783301999807383382047885875873930186621636060370814490996807778187557605532430609187269620049675115742080277993863419667375372412131992581974060575773294307172483323752397491701360226102108995628060325017723451528083029818473241764237937787294055266321054692780954310567354181113728933199178715908211522627576038512797649792709935497979306618295593110520103701964500252989899409079307230871725217212946479277702083363041351168167596952846545845560938410769344110239930582276668798440086094601817747882071353431135371804269878949268889149428069908725847440642586175596546415995795740006837940466625854447247192582166547524617086210073199366441086775501370466179341595543061685048497145415489299273304536649262151978793244384124484962607507086951175678934760519555747745469512922919526267558165737375188680776695160237337329976273548355271917812268994702975752321565163617696092788849078223153175944067055393598173731042896581174438970393539104225579515512399527578981355262474594198793994469203841185966227550577488485246556961704874673757466577544231909145238470588754927471418770402395432156331815711895505286856795028233249390642676575300684151838718222115545614139178147540837454920297184570166170418664517146542043440413283226686046396401692900136728652386444688680648114276619908912220323108185352051731009887262617489124433513408255769635468501686632891979633281566380643605846924743737579691051046579548351043192232442343370395344048940356469762044599273275740089533981827018524328321096202957856863533350020813741487835116080044658548997672463926833109641561416062517289302641143916887893645705413390222278294510276295997371469996251412619980352134558327915176828498293396290004134672165215718621142001063775167682833019902392266260453497349502449904753512893544741455024384380917803718925130280368414371894898060375710103483445940351070737512178160151205530166357203458324469441061049935905834461559410635576599591465625645167687109371724850176022590807013523700677763777526550023340579639024351879905613035555782264864164491614989964675960822201319130874424492421653513302064603121098035449082832267700217040118363453382390159283633094062658663307020602091398805987116681982380315171629532659009847076475849453409624788323011573139910515833351137048300127964613962910994954357563202039488634306924191727914988032098223727725123597458134846070313921944543770780974787279700789256363350408064420187124020497224657281188019344300146087830978266194900461313939438177213003295426028386752446719873843136023357295534927961858178882617766273905444868884630208570777987890331753976768486536409612428919419190514479452447729395585720719652961070317289059992704509456735764307442168964154730736978443889302542605895595401341305604087147098217371080182979028536929034395275534056326870936316620119370595251269798886676255063859799344103147419963511453512812036308405824613970349037620003446639798783062671888223950057642065350950801746275210856705996652866955375947414278212472507871306544002718398752496015218634548853445638141616773243083020750882673997462879766745393010621239387743218994375441859683765347858948065057281901889293482304706872929989914633640697826770228395419365525503155448338580745786135163046789158729264201282191798166927199105786496640428737062704479020852530462369777022569755957507716378803473121322508261704629421548982510414938689320290767168256152871873096678933929306926449243701075961289446090800286305528243825264531451259128925150739512990866839004771451861839722598225192573646821755513327426610027504950070925343707978342725208312519679646498903879781048261642793124296684914601557808782571790847796630684813173328930883398231440844186788219483676372199651516610235152623997322376102816941338128909721527679417352871997392062278153490006402761742695694165309480308810155224123234434428301723621644542378313439124662360677709532686955246636663819957273340420672357889323201085228326578968795558548157295991184750264965774383036764115138058004966135952583829036371320594524380359544229025689907805039463491381617673709903024814996772629769865432621197500155573211199139631051720395012763980003580921434882159234686486516400951351281904945641745770093485050427529661710478644736380679083593572601643786061369614710154374142982151029589199321006743187147105195501542794770505579060933147741775050978101768726707837705260758656660845976529474883116247583470939017940690914156991404535511921097013045532975728695264127631762427168733196561790632268455444216721662588899024651077387985980695048924782002815858232699012580530046668389791197159858071390949603385574905695182436784231702813319561964585177595259495920017869644894086046347633569184879384283808310754543290293222797641637297158868524801406320208446577480535169052813058093677255120762599831693397326439894502975851986003426972030419131605690099455371210414194112482447682773331390635602096339324994763860502855940847885500981599632891263105615887383629029289518988173127510058684350873369614561753627737808243180582984327970329666430002398297899147533349207859560137522148866917250607280670852502988485675351902668214744104202880416220558142944156353976764258609960407675208236979117790270009906191204252259304076284294633201125509176571834615645896737460560800170718840804496549230163369589114446428583913149997108370191458793833851898536316738598694594591092415495753396896038159592462718305621550977905895561357432341185444644222352028374975424003604840768290910420649831923165840652142181095049592939248551538548081431779453662166868246767874192056420147647917442285351621737056985977576933065773412342385363544356693761544806530898344606803516843346418402301893211795727874451463867335161420168691000722577179044559570748826790318218347869118209081457504115543630278875056932566303397664102777368800233659309614658867627134159646019197498962223456643198953524571137993227430954600401631973520623995309733579297961632007666960797511550156329448977214368239592435335158248323572635106462826441317256212191543678685178178086153338017007117597961698728228269462416227042653398013230851934548670329678076011586125069065863972440518001237436529029393382997610729739648594678541115029154195175837337086253245988830754150970151348463683369781929869506242684831120475805123727503230233533643846795177326062356996571022073081030896894844269044833724024777263311571861499790217888361632951029858658913684463148873646401336503251728987954862059852899995379215494336239461140780105807227427733753895196640800599232172664266953586466175563125729526882273925575409310010650473631112914969526195532684949712151451585411715023963799487578060289717604085523395652815201648738445265679166063704756896644466404103306288833891444209578442705651961461828015949306694827830276828248359302308811601351707833757728174641278239531430029164163668777724653936232058899530670757167582081651381474384561422329069235987949913937562297319742887694565279390151264714412702659180277357591234862579864243812270417654429780387674716269955633951152543825153904751048668637500647236314284539148866881171016947948463396179540374992630465283350942906976142174346518338433279717119204945429797263695178833223702853785149554297995451060183063227413141873075004761701437258346825167749636193854884585471975546514790545817924509212488335162794091786814637258003595054743400988971337934125277054920556884279811851031803094648766653607901967087181883492844317127837640028682856318279191109508020539231963861065980654226263845113248418027112841183228952055488970878059265220748239895196338663278611624051605507152743265926773647032374243127622423946532891384650370902195736685014993455674448737426997069847592156429653845851759002835354188055935388559064353733444181036935905685924366586453429437453059650039381361559996192279133548125805836224345867587421980345171875360058768203575357650509678038425951403889192335795478663323845146115559495402497693950553603712903350400943554223111035282492398748015198665173014754018079739442677264326548064839807415783333108216165672068978365605143011119232628576473338017578767042825468990055958555945204197235207733874205558530498699032800241182682821975847191992230901005271970657154815477566856905499366662478675197034192982639325269939190782387205179986659569216017880588627317208544289906316734199935374319721065438656483645998631659178567375143630883842432383984868386401421305636475488689191993796712048142295432649218577508600270093626698081721319508844709635715295959020462084829069445464112706221282340683368693461307975545706202499824847315361848083724992389208920331134499523912756728914325506127672008170113873269011670709268528530436066861831728737415523899488320201112478053051565159605956729305208907234378989943061253429409867550085456616132605343894108510248040833697233784589180099684851143598357441262271057266851937280816010725899839074212861522303926735820002022840200612293085258382786506543071681510692026023788627599443336325736420608616350519263939737168659617450833159738972286845974736241490325305831001303889055672733674113948507743034824033468135120672090536153555836215800061988056001058986878628440481869086325993961806184584321617689082878066949978745121926722456565701762747794679233380055758862143776949360378376418351319962360202949169224345022896268633294571360312569594512561227103717162024786160553091393458843124228001152694174644649195133571154752452653673167630935092872343338638434306307953446804619568357955213449775410413838650464691348828998824021267971170595998863875852599012592944196122144206469093247662736330059935147079022499922120873268218422800279581458238438931572502374542985606461619800220784938570502673529185923211755167735604759348252190473727951609893574899517986301570642059127636265261801351412709273441911904997768572622142291920066776322802725712932907926155953537662056927532632649335965914377735132663629250479509328705849273190347853727894579068220120240553310128726519600663165989220371487425167979276835565898357880262854266126644826435457643140888346952001387340007290443974873746055677547377282051194499556357884202041741754932696200003680940216659243692248664314733105593178450951745698451675422212254316581148449636363103375841822062650539459228291913636272283199543327822428876726417194506015224622877144016601603770872933022514456324822236433241047660249961644963086571290118223396657831264222331736999398449612022610281979672020158289393450636515145167665838956846842892347279235975693688562530111000086092735569856369707355014822658357182510137360255853204686385779372889983417680953812984832045828048519598845118918369777935557797634596657865174061211977477848195535102398528801128633706028663250932930239284211515637976955207381634845305033461682320640057208923246466461840074455555078839282854756989968787622974030711189137343226458539284889423413925121313205740341716602999121710471234061328402913512956784162723797763743053335430037148810965169150661033741549652733717102161289138041038673652363659204376404855008208826070063333998724169292825963654433004478360160229304687481042448366885493405607453228891579036334381583675993794406154235727414765503736882552806647795795298331788427683274468165208869271755469777112875421999577522651323733567243791142159470185266069759827064310525701922255437310985197426719559692085920547040693980855916982682042690206290623482525064619188201225799352499699473849776431341052248984035332629494124583090789058592465731360432693677265323192199999797494383182432329440223653890821503216672745206822629441951069917105614149538517249394392701692609974661759151968547786044310770488776632106249555864331687696470081229417150493651721006870809042722981395161030094373233326614186801244196328220594717762914228498608317513096358702559114188849946023822942483818502768990380890403515531415894203298710418480092824545312529574192896800751942342239652744038637003550053434962086415061176576722224292641047324996094869009130550162240624945535124625460996404523324922422897147612540562794419320445943320228708658897628534098344215127207732618442204695523624430438916033775364288919800691965431590049056589562420136324998108196079319353169699340433641634403589752454271328521807224135077255316010413688890052887638390874372762303272326077281974519911599939538174274793434267218905838269356565848820593979483293287646084624610033268887446616674205660809523795733022591580265801921051390429258436872129591901949676240830143158111454453422224790029219604145116792865533281589784537310571562055103803755620061957484817186617579708611064697561719975845127115407634329809475863620913106457217666729627766027792582699598429416432730886863261698861816760319135659594598458458804401696389941281409444197584547582255555074208214883920953438578214412281968924410138029578200469936974693336967164373401990398775623965732707034947421135156872797828896301960565229338909855579028978749076842922931753961061851143130032762446812844405832796570599580734257773406646041714735718174787662374566747642216315760403002983186598919504435933822291960843941856979764708784422782910408503904383845170235679244843709455384257122076665442580615842486326332558717855848928646573893665406438514415965693929307173820801222995525694965316530986683117749485798064757496930523965952179517299165075798124704544474221737597758595069646539011207591543783698032325949548346865763286144527046862645000651884935486464800990746553247324571722712200198104311015744033496844038252077251251067564784075581038130639253509020969918773898779718926510792166610421545334875836187524740048767989612275225908839996837218815058472259826283053464269950124103384148363927570891134067794384018411599222353927688540297645208454696285973760318340559246323774487393331125964864511062577444699917325881408736839701274329798547354766564757019494042959332293125054992147046472935180630398435011038782527380556188989639993079928551829617551110309877555981918052054614728503255374590719229201365883575369857707420031929613917571189087800542323837265904902555139225896007787314897074649994254217254646178746725005393056611985410262496663112612803298705176205906455465227834783874681920702216269747588201841055241206777837087747929665475516476655703050253864761656789136644826689826335425424482645395202061746363443513408227540281369630310671319314000720653660989104797754298358699009433906663969620740866375961028728985546533472909596088016089353966372628113408718121804911048744207585363075066790037937468126048519466730474695786902802563745883831294442421750120711010078768221707029804948166195780774961751951701909287215702379886879954817642809409116524976493144719293675069041209479866075721979741738317625422767983336407851447210614517307906300569415534336535594744385354712651635769730483124932592469202832393359579554499098635420654444259202854526560174247752848356686921600589072289305075116718514745186479010390032646227841445806865715836387184932521979702732418359786049175332674293730361312049863448878133775435117489506833206458678951921121407259498298977944766646968765671278447628154684231379541080974786601051405425327641711542841415439435655293748965838168255912453431180058114850349540103388906312407690339577015643699009093797492973140916553015718383685475225575713048679558688537052216468248196739035441322506931187842350284242616557758279933054092716944250699282500925376654936165892868858132977971961272965832761657292193359181000456020748810718734734671030025362152681503445116516950738753336737217462163901159426140286302235521516426160546544722573604641875913310441370841665213923092167324180634059118551033196825835796884242779626606069977892960384269401553726664779602448230761920483042143515543177301199663412686092145216483670914600117224139689443710206730946603302237437075783459710595183910325009532624824654755618587749043002941815631258445829420421029026430919797397390146213753365744876894576033644625212062889011206119790993788486391823973749984050340189047985778252825875148037670419246758386095510840661660998849021388970480063556371520309587238652342073886874873379463550743517178163066985042823002274023654412155327379962406780054176143180077745660996949966952364797223465987006303139860934454570540607075592229404232685568315038061808039307832595988172433165852926455075041347385736591863434142763439479030602810140996490526826683046975712860603460202378897832277400463972567246930853909916083844700327387133519415607614643217389978219689366598697660546602989737516553665137980942333264650469145202911402761116957777940553698759438965297692303309073156922865340419713654492851610845819576568352665715075432242634470941422527382896829238538042504188944670198997313177429725942643173601472890769671953218111175191641347320341741126282458764854254956951686096890622936166382975803795221091205094826672863460521959771736126157096398813690178532678528632923472064623819775492526746533611159950944903968530678230422138663984778454701120119552449894828179683341329788587052364813132285305215620416187207752691842965169694612148185670107046609307223125132379385294539634020811532964556572778217806579412980497987575594665239971902215783086901935101687982614441466335783796089850160231121941533314258005647780423738304912182739213205255112896571685169809943489009643592399747226551439531654002163483957332282448453551511782396951820516151879269306659580952266264631518666807613161714438289434263095305881693578916914376240829283415525734077250436786414613567277544235561609779749552645135180782871022739622656996329161390985948280358439930777481441560367980013701371350229280464561410951665069290184918874049771849200522021130743976206167107641771856676128238831868972893146445040091850114022578178495925598855271406637407286467208777699321105956541066035306959833246343668539870705881937924149088764526988661544405596089664229469175503081477543145280031510953524834746730488500134476964119921660346061202183267317526296198198036048732511323358854852000949811584225709920640538930691311891811844833522327413969239276566222569411150991610229899136948163395434775194361216190440561736841619618785808619548623267045325422125955848497871042153941155146920588791702726479995509057999629198365973297317381315571992006483868066525912184530910100419730241822461201194679559175639795059742512604211231422965357319068472887750491771091534165521790129750781442941957110912300833540354102612573117221044224406953820445351519826242334568381558158947984135095472141826150042318931100521988602145349771518913494471294902600744729140480097796999554221703963947908883049295712739581295288140130647897717101939002911219521201448995188189795139728260193340287486718557457693085605488033291300764989150364453203115877435993314040110586049703532023812264810091245098379162280928668925548453364038824689764089048880803315661949823767497798945296943690187482752509278865390228997971629856679404931594306690676325422594862777949165488713024073907621438569497985010745167609745808734678720393631895504426476361153079066919770931178268968133342506655299107935339907774487188051536457480167447181565838225710511674953307568464076184911990971011412555758433106585292466609638880773990028997005310655546553857686110396111818003758487831072338150191976316222406233754874705527286856581883597381610512177223517059258784563871889639053191233290363761563120747209410710252000205015645781861910087796146446502245135394378782288725964746587467599834697783604254697412537060495098361509753782956149832420079599344491779958233426752190588876156292576124928477395414448098242879189494332232333082702729781958337248010218640641179929088508109644188090762847535309091103183951656565454785129769832646319927411122879583674584062239118706712791117980529995132244915080132940984749332493998633495902783158507388234410291288745504080161263520854687633269109740717811966157531379329457022989126137437507985282007614834140669891156562117939937410771083246497939930647988010669793483027945730671496383373492844882898829389948304833655266438817433382739173849088827919130695641075744313220560712730753537861670333799966126647831994743443319543846581067277960931005974893599811971491067430454230253106946128397149453818927647200030560260115542384115488083175457978981840794688254177312381254840203904503259367113318517701683464783000550991958651459951538460507346908759188857850702582266168056801994403717944785212120038646136086803091846220685378026157722415186413371578192790002689884450330614217117927003224610731515762242373263042552201658476933272731821057177299835263983905197995453414327612868455280001493887660526765102775859717566133362733401207872184630239705474653389528468042030463807420083032110546868925375232212202738871854533266367472335429093680261575391269988310171946248119643284354056407652396731208472653082748453082030091400757769152256942491447561992927418018715728214691157630576762407538426220418279335818960347971855907784967376103626555128174789280513554502824666112686530363214384065203607541572178194943395595490057188226701181376867036294651533778429487498315735561089356456208224590984492458766466942356251492327009774543574340185802890498314113234749077813092106177773349228811411635023544803736210376661366937305806738302467106955576219514394586311147413377073868005555270686631343707920381205936151978230923625773812620929096225895251051789465388050046584803914101002676988321408569806455348280625118934984031471292204784397930570105980719890386488333262859102498030074132771995401482396360246395371807623244951570374682132422564941988429495826024626379971263621739910061753833885854972707971541725843251210900559107277507768518489486730350669273568660070480709102070316431903813565295727784641526420381736032076163824088319616868150332733648136798289828288877642943382443484629612986432079428169815589884323926442595809523657786146930690195408890499218405159278899764313012167002968183957968329898103074605934231573830045922779039831451529505476327520758808829995078512302412711971061271313726206184741020645679182547077881753024272765278664992072372629995177245616288025243981006206377098376142594056804564553643717262412754923783761319523978612471482916228194620027568332458102850713117699683267028954617420853629196813829923332712332429355545591960261321850980811137251028740752481223576211849941265996751255953343485271195350735169340907463988335195472480519257405422313125507343419927067599538011251738099304419573040556922903992106204857176133910508982871531224217753699146446920380263965543459977524238480638869679199140529927147080299220203955566763813147194944476650484301219553337778904302790505578982350448214239351426124866756905422369554851439366631907706052245472624080783742198431816774826692418272421179105800557242761233196422774821597022286828341779650115403981777527074950200829376457630343517577388050854924489158929402585719146832677582716772043965859138101246052229472385565875179673251280118300246912765884424692721887438922382979426998196144919836038064894601923072472931362209556800485256801946258620014495036495198736098521028092377471980724599516348335228736311677653538818800906353707557106653024334984471496083563872930550753714964626041070468110526305069792746967304828583351010182197637892932270720223922488451706980625179152856932636079989009312236847640241303764630720009107545387685134924422965365930611381232685963946705224014229724971987647497208516772917727635717630345262983916383964897095361132836967934945454199482742118775349379464238503595124192847321713882022360535531791726439261172198895037328314376607466652696246081558344365955134093733137297851446352655735610178045876182557939372199286017698126117521452217330356460226263378986543091051758886251613433023664494201298157675311272170658422196334327328540544559999969638840705587223815936140772495332688607986090459570084505908605096963554751239966395123905278596493834763437595657439253319961368595319501030060869652027787584518762618528382981799710307809630930437119519565624932614794317133150312380551608264733881089127602108765463603510457601596398739276438755569924705176150718858861069848567367283895052495430346171590652888698711625685586510015425714740897117699437659985120825240670775089409211576934054031480685638244058808969115135337843326040717103564037938103879167344840486272120037207196694468169597674778560844445176328698696128667442258408714416494392652139167133460411856965465763929185543313980631539578601912104316447906455670566060469423516124884057559545090370054817375309319013968884216874441637892559976685749728385661971576678920397199864345704217947168684110069027441824443629777685415894117824334200276873364152516744934123167513852691410136102448801946310921632869424969610766430787061431257114958247328352289855342306510793500759628408408511209792252440330427066465118968923799470913260249588578222485227587721040144054077665538234742223654086264166817879943049593912813344285136364861288464692957846550884410422267095465233628605076323030323043356624650658735411455590091652357618892244572776800518160321297438501521813676774361022235397478152561512510252241705322419322555951450649324277909707576791953493116510208722790377521361010238435827108889428527081524415837515523639338979625699722472687831868960779165938662602027139893677987438823412890845332765897928832548512952845643724543286336511902859883430628508852776189306091213256762056277420266101806961430838182398000108992349740485374171630586012738572083694163885104925783355019045082607178626235766117631410745811808723397859659370388392793059526841460383627560769784832091581039591694887839399505415536163236563438044049127838925873258767794847399474475371591515889460323132419641268955725882847829080109653295267685912820706208413165897892747853498010996867586643808533932068057138106364113743013800349645839351222520178559988846082663929093951672397899320546862050658616957483404050734907322945036086420794049968697148004276168974532833903404115895594167278359273118790224492365407623628558736820971097783508818956212841626639036283576387000912034681828268638199764278930903880670342439372844348477392255009241168048762706295334265832051306744587407975552377058238987215106702498022079832919379063538522271788305790223619257574525561610153253719793188954628113968201340126035382688555992588576368160788123591966874331999819981529753112527998374437339711114175068515419549452812646195737670731752722545675919971968500264263909986665465872620088055953688282988540586852444559346410680704716489522860289424569635686565774016501835189348890816403302255203279814098446898674607760078630794081246628175967250022955397419678843102022429954089735333141503086420910293741449954923551954964909363376162760166941102476274666564668614569472063526733262620522081156221202026156983674012768686158778687647211690021106172512890815772001106390716776794206998042691383172010053997698881101911187131050343459936657849185340224454056138869735776348556687204149117579949859420718638262499064359179156985513576868207943961486383903725787623980651562514908899649288723176254269831301421104097835534434768122653392500182441631411344626818391962231462950180496717751212529012513446304772021400848546801731367602483104229883424936002772244148974339582113685744489071073090303423455901544001712545395632529301231263164450490408531070637423864429266728855011025151204254501481464004381526583127454221434353584421579627262025747046986559775167931250872670559788818864853802907000683636635986103076655276139878650177150758206755454030409230239587313224794173871558575596523839379096753635826988009270906963674162402756873478495741974035018949494892545736176645982003232445186137810373571521567056646546131253097154428595465657996155561802750440305048141184698914265141039869538250290916564976336325429578362565386359668162835418179535613228892496614945532862879976121523244129816513183398520600226974128886081355626939304004123604832210075685069564376832086123150980907938552747799586625120357859261621580359491389771303101397869637320040570599858351251974419683516849532663344744032376058214307211708024846179941941437574506999166174365597748370071185366693468804157022244964535400076537947149840862210687369201462498573610615087080227854244393323368820282129811814637135528547775953218501039674833475144511344835269684325854871496109760114294178641301904830437217608997848228371933598434639452217933354196035584221460473355238920814996680880404054829903007461372741877849432509239816833481010340306535054267844392490734777830624043228278833602417363903404888180920812269005349612521115111903096773088487264255081240530104496285640048798247990251870672746928158078058877157841567582427133675764384138732808222882413218315757859849442448969573153722640143160028298591016384277831854866155355646380556557454490620779860078441399800809093508958872884298528059881139823298566693738635499411330508648939125205733589222891206298524504317452046174178212792487418020399799117323703933497572102737546170101341071042634257450025417144036506054133799090001776551052705501593415107660005056420750429495146332570127122978154255311887952685373079226578707093130919889949192961255353039561193861470000644719735038237506615309723853243772202167158221509347252289272566581783603222209465339665321579023917929688474590179425793048976453118388735634640470328178448977908096608533252373073151323198398403444186447903903033425769308141465236861975850528397488968719560902782543504826869414835780494527956273043854622650916799556786586584216906830818612044164170977037090082793821265111256407983652906786621022306507860863648543594051708430342356839927821915667915359881720455073872341088727446207473043069609078448980085150955435773645242693467786534687078043515397697413524728847793272143004709734556238314732612816059656296115121929187667304588599154500804581538789527373835792486435003210657639528212948236811804058150739248558413318419635264394943155560282318971458563681978022577898433815942996124816822829647513507247332071995834254101827968977903363276731930850464357517049667213264108754183001357929506231231001500926246543529549911299527269368159951552157753862509027981984618919370157353119422868620045614727669673469772815161602267419915337687604837477824560582349701918220608984306355432412193685661162656852999436954992663641597777889060030707949805463350751383189419682235769710426476111282049607121992173885838023595448537288869053948644244327804611481419164676376096404805357705766317848847527598072933614695970059441705201677684665266587366815842023456524579950539506113583720506057362921020074124059750622340978169572865505668448483909844651229353361679861816344035909459362831050690847714965305048464191788225856113156592332731284590960201937919135495679350023000588162645541691382752487667689488186100780710607434301695632746778347559141295624704270926943620514214522933077904109856584909449981045418941734609912142026008172328343737896245057804496334452830403482939368414306511510518706128521840887261250483547005759113231701701962094695505479849355078938358329994387391573606908866199102142033728610822629318420325349256889360905677410249831723547619127979874486355567877055192694421565477968558195742490249807447237976550574234290174930335124980700168968986540669506362555710214993808927734803596010071549514393264841754098066835775743087000240546908136316071764146101505665501566790029400372495396657742637996944626901728224179007830674834591619155485829926779705552840543988704229877232512625905728060069394411784229704607202518283112877220880003377516345500140686077237069572297457112488250276932085820580957474110079792218252782097307860730771664686808551903585920978782048739722931656375689422672529988101375048602000594479758225919111532560691951700024083329200279794310698511396574374689744472673416120206548698725499932096054965485313237979335041528008578645207538037501443790984602077557990715975435121333118082882299984497399883144788193435591912959422188185625536052897659306501219328171608609297168034050806848525226555581459464487241925063396670061181372767233736007710813107839003066512453699306834202649505111697167778077014200491746025217318159808153075192044009992971311075286375416721620749286036276748581859172347702021259903660166041481114754153413924266514250569041512012871491239519576910805960014018828888971469779641407812872146449954389628848862948623165615752640430763313281610640321340486455061151403959865076603317340667365683651567566328131451160990427446080277643990764293870436952146775895153218374609019257356043676836858355281332829634420048038981180720083247994253240574805256174194280207176768092471073168306088913168429242689563979927965932478500206064201226066568410643850332141556967600183035965725734341190749124898896292064524883101941442567289058660953303972561448525932921334167530416753189267724472913591356157886010132869356026533183931903414160998565699336398974171208369271459667840814020299591827582087685074942226854010585310014102335947144668857892201486158878260393728529045568056525896613934278042679809051966046996124112606934051217158508910046110569031582585637800472946525457833917756141457241317464077887572320054613814607340261719969122527792512465348905018166140566095913084642353497640990505772340844777709064361384631118220429970622861647594374896329804853999022291909936248570211624613566313778268252856525095315619754789695144339819978308079780853530391216343767135481182028927039894909127900412025662560228205137289881487676919441736254827684303557772074319911221336234009409302637824409696020290990764524321512917247225940089240762966368941443744897535968825622494422828485478623423239522459643424015269466052044601837832138010131746614545470471579837001645415742665387251588176774532069081579389791124827919293457000135805199701776409814229794926970729679599362595697378969871266229295916672836654325407580823773199445328404263031357486095587710245894814385113900077651174357994898424865800046412466362658685742675688542713407298835323333226636918156784288776108045861492422795160229084750546966385520210451946784670996346204795935845213206096460673862647406411729015606203923150848156938254755413610486600698762313387857356449812490637275914631944029956056121869566458256827674663206602132670178658841720823695856887449064816149224987714692244224612187284246941866999826150819903649402130563462295532487114414665820793104746012167274487621239043877960965768740482208495365735825086566003875641518696186635534764287316531054887218817149788691920444191175280154802624629985685864910688695696785621904128612223210879112355049521939847740967338480928278352331493407492830665084686158672329317275958758264864525581172133760054862739096943881208769559173820458493861923138926228518367673984267732283003195263005856596497220199964405761240612259879697604665665089918269552455777968562896480975091189888582321307271595100640829532953690280999989359248401803316086742609762296169807814062795800154092246578092569520466785488201638778854106618496443424607935153196623711187539157858418130692961181749574524921824538547116144403908306487369284770485183663855006039440881441660792401193069771787085693208680616109044671222861131786757946397909344314009237578301966063676781067932440778854995203695472782141042561807473877102256684534745368607053949607879879046324236516850812153515476959586866945237723955266402426520693625541888348116786179983491969556576809352665477049538332000964694617170784084549663416265546510965431569064443051751922960585579788302776145934049269940271138559058892122179408819206460893839558827806567012774819343047825218836289202627856841722131443602652543401340590386080286248995726423485725697836078703864063586994793953081105352806978448510016666016427434098920250490885083448879211728844727946581166155638299453296405527200405677616487130636788077659050492993285963996227092475471268140452223382597241256613548609951887638511217700376076112918904761406494819169579785702289208114641052519115460589789342700584981713408806657735889043664647575677772177729013010150995927737506034637849361688719897472232280476749279891681746807531909648933966091579105731346053842191816938611796082013551242281120923818545202879551646158661677143146645299482212091587155179522008601120311366625690832656010127970239462116120896998875028738198161979662182102536716495324703055311044664612722680394200975114365196307432506016484514313857070906244031112153664915807355031012825832560489125582255043770581999471011077958321337814189479014769339887697768601641606341308184341885912120330101688692968199536880243541133387664021599378254455772507870351463201440045905448985904242845799696692734677654656181798569768986177239399480102247347911037451708882621655610185523863073777220908864977345050900916652309638123585921132242606467590952269672493850843931688529109602193166761101003736308650879649995374623544898274610132752807710978340036316599433985589798004800777742627876411282561364199815180085508807495711175835251329320943476684560956798514326124099007810303007007500260602523680075797450426974550039147066136035387601444354955661854074934887172526493798581375271920200208534994060184023235550501986061848376652638396356749163073040196644108362731804213291606092092418757324376519034942713706899124099605364859013799879580615728560508787346640576239098068560734863634933529177418531230673274054209235616444163753573786385994313288886559032486522415740843917552395155894492189512591273653507930889235076735629085658825533060989653978617272632218214823585397668712397728187574038817479799468651735059915845768928915419571458960506434849846840471857750506268535089904059701265067572453480190058709013818786449428383205902323352958498221946359463740385749639790442129447380674838318722385868741372491000717467061140743913399680067608063593419139223938550016348166646374899126717217003099217024373824055745745651802164933664401953127389143588522162056186531715858189376124579258916011296865831489400707105165183121102872216041342912190356837385784682119275729644476115828010167620892745196148153406472789582656077209321951045958478983995512062504583741611289241678017976235874591683899432907352635581549190089315449504075972899779945521249836371484256129277616378889422876183637368941132302695265494497976021133656797392994454294459912689806480036298807653231549873735851049180455585330867727405231758149811762029568011730390279956857087130364626505907830595581126884489399717173663253924308599778316705672238886904176763696622724073167114435382262272287180939692192906178310552047569841556182114446578669293944896765765135123838901902089843418915207195067780588034832595094021132534660156179877772758935865572039212543569966732906385750242724627771374479944231216205031993529008303909660595444259641293550492181289473392854127574347441815718788348912235040099403224035775192082139232696050237953205883271502737889002721835453741108779710786364776870883474302097944978839528170959656309947819142812375764647974063395786902744439191436128776085643160167964348230945252865289195813243540737374311920947161299852287120900039293590934703404945232269491153828267492288931349067613017045526696210211220340733179356735615415855765719430096322330543464429682510692376613831733004933137418386155138085195208098619281222144040480083672500405526622161817184865538488932636139009226160792774237378531996348186326261597273201767963713105441154572678017754454486691265126337701107389992970410838959192163624938596725216220268986137767236440958822770410414864247990105789284745542215154357951413763483250252639277797736100660250724399761051642447231563051552854648379299546446888910999202842631534295109783241005705705404313261795720051254157355486260793970450801601837767161645081553743060127715056286725644452084439441942318855039094742988482618780749573916304210384492166040323325956031688685711743793204211226536421514881906764766077566754098850778989884560682331382787891034606041482254427662382624154849142388842122186708169463760038451157151731374325853531738563517030769599933448011411167092093672664538301497220892157229316138500519210901945991501394671228766923917297886425297008904566400910923251623929480052938428464885806524866739605492073447125343713848100523521733148756653074458284136173353648850017135600757578851681995594736733238149412934997399274356020882507240566223917351224629386055447346139636283425091104690849407287566391839170958721214613234198927169798755783548507531159212358584830612333787726136408889540105259851264987975360040337161982820715935696799876669212486094757233147512627721762909461847757543675526089983571403086777987577609578538950609232774774252625574468153713772601422952219257885507922933337556329138892955274454303769740492907568631146884323135329202385145626908701678785674049371945206692848295109735326225492636470682278198471538372126964009732119347526584860572327381660661519931572160599260872656013941507536607928110406311044924421171325883446921941809077565781935456094023424552746747416237945136145545179678343754063297200315017749097901366519783826538709254679485915519562406244044500835873943481357497623099734589695721255389887034799655479978320308026392530658078644795454358775546329465132929502779428930849609562426476168934127603838990241440241222260660597753019362326891791025504983874069430352695843663443846624069331124693932006212168931286336192346135392439161689552370801411915782920501336394191720171534227899968159819493268909245348514357137337982983906773050535972502067672611608014582788726003434928742843849666200517989103830914423566569019462799576297384556209486346967126806140415884863686926093146547136372529321597715440432241650573228915435108122155657501060199238732020971824446664688322694736719477648942583098270498527640314954794650976727480830087695699068673665907001834381753182275748858944145404264622182996791792166738763078729152004422814070458519492328778153633470539569221624805442530275547623549932536679789890413609359907476840019235921525566588100230753684311660138675721869661460648508913977821519491136309285178007712148794139132699225186949225239746191381556493114086055444800861777807028283998814709057374460362797235306837303028773947968344302934236907715643298945783679877203225597485193125966440196958059433852120925786493926913921581925205004517831178682962719690844655951408933136062561566922298984483666960806786662920928713651082295982486638288680613133737843378717668941016619817769272977832067444391957060236974780641289974564741657175675873400690545374977886109939350099310118745463335977200497515375169679878953707497582039474936304146126019947676645926415107008866301841679578460064817687901485695270850927184015906504170105416444415703789447335668419582585818565713606374210069019807445115500496728723590682562617529512784870579524948164558766463307568831189268885421202383647169072721512950218224012793511206365678396199790384879631397585361893906777801560624896363552879004765508758049690297379546467593993646169394007945215208531109882451895425634472975376619834231250006519537261704718094962488374769992381144838636948846943179940063343630830804121095943923328779308366272012473858811530582383767265285321918767456342941438539432517220836716810910279805921865467699799271433295268309014365188220544780268052085965329375630506940989302780644054305900801541325572950623969710011741435979556274794390103989683694799087698120267041533120116303089601563419378640813994024633699266252138325308189320346534781005001978196250578253077480567593132685515920215004940750690041707589254325973057055729830006938061565744698787855367563562663853948260363039604847464105861830844155973011524115774834928892614621639953027425272965505580121082091261766249382161263950696361516672888634850482962499703029077340932068095426082238860568238620737506915760657712396104973640015837304785006583096666417845093260634144401235927210670905596365170872275249403468396286861995906078914503925449117440190076028782695126847467914549312631494685650543182641965354748567259939461766463822497920280231119634956837882466462664244985212162706607047851722843056563009565551029489314147892655325121144092049055329930500132545069926275189774360539767625175976424800278715157940968143388319289026196639622821561796060775786083174046891142242134496532802785070775889621518593980474987965624935540956166361386326368217390750947780460931258354829331381526410019874815988213624410799033084546342435386146258677962329264275796685975567453148930043684869649077683390468501570079122839030534265341171146089462514567772777022830617855103089576263248955860104984848010993333080753612021577703406465200777905458985343622282487458551481866628234163390003688910738061809065523995458734686813842922646616168689236149248227058005721148454720764500145184575154625176010851253440287136760205821232431304843941292829870185742536288639763457808012524780582929413999548744062195170712318683970160661283211730636168107570257125034401336571527231896758370955572005575323912588715409395056680283522483671729777539834830930916269852323343583599023034802037310613730002049094462353170905152698913863124443455496460645284052259456596674818197978920767289742691180626066742814252172397493433896628973341083942291738712402332482468888630444484682802534819330168314381727051974893088847562452260602835710071853487168209371472289376395884076722764873389209395033195495184929015837488282364908296407466498997798584386735295177371520397387700075136441670559385925768282716059649777669608986541582873568928966006892724092395807311741868059098393420508000294135038404438793925513571635093357568373586518904654074050521779884871932642501966215816330311037460360172398342315776933524226836446480674984358873631104269489979338814547730942156154844163000939934402446968074877737497614787934658016165791124837092980732078603491623744669259711323901724057845532448797561271605147703306768930090260941381143252575825412857541154627619549184847371868501576164414283415472513569066561605683170607565307755489060182346677208084382977299605878460051316062418445466461812578323026252974714654380222701892378901851186883953579015127360852002034591929313489266099240990112904045316116671225784331454041826757032384926986425795689911852158240457653512954473751894902534062024528727713232913409005134150385426370207349978644054694119875957393047422247674477437931741041084555071655683726502577140004391468868580157302697378585021286860434620654589689383908223165340482781796073644515546766316356119920253917720361491860445226358803815400156976470476021002360643733376840172015734312386668863610565910140364338713276997121094863051092248258729051574347267424083521159862245060684490069452501791508075145753434157070817774455172217190527648196421048733889859686790560698070642445470287936041944751908931152629917855540417168451258091125978082299997790694403551460710633672513607996340734163199970336277931063475796321517320793619308632687941773925646472456002681382362165596294911652447890747898822073030140441548868759170098769505276933298450612715032352352649211751845874804340045012158743363450403159098110982447439699200733397462482842776877433722451520951577172384664326156207333813362102389057629512440270956674875168604303268475931988824980058306086286055852499379877469565909934121180583577208701691952413131120477825975339958825390686698038982953620600581540082646168971840809373753731726881318902513181216659388043476044423556855954790824029969472802073802313322136722916137191290439440889061041772038343301401594833654946268443726314967425696746363395225804439227201985858139186058814664591479949142208365294322746421912786220122366207444839051730011905607714748026610104606546827582790110259755107518215804110803347745850804701950590245749416564225584205074895301716507683990853596403050419691704339356051634478919569792471863056195049274764997371426699439783014376573397554710535573821602113101209510246900928956187542188347806956052686041537193751192693558727799573869226437332898793152013781052511204486704314572301495553497518236394409106079197149003322669617068197271457479607923048742921891452891084381840381157277370007601487334389705335639014326630017933316036658087476496410564954569837283690536615059051222601829286087009528099373879992910813166908420576727540007793077683067782151024320411634794037466616630937915949872417646936837447555902323942920691309627234651646517447934497984056608319625612179058899099123552268357368945031533990783859072975245560453070621977198205947762403051361331987029606058111447494320089482035238046571840941604882483356661555565257149660086791450634857487419106916265288632863640470482449215671812020988143652306687856347399669101003831752174619494015719873168007388550163822389058938827123909466447444789333638593065840171505458341428121374786665154955359105534033888648269660458284963333466518294357754950604533491860702871087918139620963443266290135186073875638830026072503104333945204680237953702343322332246586574000517661159797849451924331506588554751680518819717929969483504527657228811771650341759780554612600896754150703562890045955486616883736908027898208126409061234598553089136983608269806041696724283679289023635462355946664748956811787926216633809675763681847884222664124417635060519185070031636918649531990220083859643399542420481077869663293028383154672003470786825951727337233544526833943760837419918361391338230013566368769626092403923487808566427290454086384077162651256855065534355176634010097742573984482714643811310236866535002425748645747756114204693043561955373065190071184818960639265239447849285382691300920252792311880510114565267138544954708952684736354640099321604312582023918899004223506984199713483021301709129234613812757743395472906556007544665147437911007380189951352923255994898375322946731687953703914104910202438057908755963907395591301523730892675299033931851756109019118455631872453776183264805975848277198299593035886288606683683749028968428798624600671352215134628668716258926476011559986965511710631258834915335982521303218741246511269613736443151678500333650369043406065007496016909123798185073367036634748364925919657495375583583602147564056412987754183448829812399647769715391458197780730599358313195799044058441726686918486732689738368870276865665142867841234640020543594781549401439063909190188786674993177608705462537820499474968054669825958769328374289095823415145514931407797149991640070673544138055311921742599492868617310267243464775589379022004106777857080244319334212436932061315807343114740382731754429772069644409355112386378627448970024435816875091562300412860672741620785984043834508639893155018446364833279383383944716099110732949366447931829504525022664012302157136432999845707321988303386314066867044411438184684901885420994346473690910082555474628566385870264273084433730141732822496201533204026015854702507120454277844352709612908515049003178783633303007757880106480553973250139622970701435120453123694528034635967389902055597457263056741054942160014357276737806273436552098593334644103704026328255527229905122175802651305897499754128842800853814414423686758954338365578734564759231705940002333734915084610511443742783616495571976499487319464561222589412478844654600773267933572525729564852812447998243703542086524735044990053711795570850317652869699133567832977219292539446561648898460413768289112865561662167194961662723642128819836685868191287689204602006089167533748043423417633789554547072261418303346068881454275305523957594797854629649521250771923583801960631917003539088257160273451741963824159606227914061170751338359602926989576044441755631870497956353113278317152993542605186160000300405133117161465465006467188807792866900767044069091208844424567486088708381969545868378316895063153155142859133327407921218948609489391366267655842562344005986722535383019901032264039754185501280023321017754541443476360439483169777889322776867654860847094890807559360429234138866937711216197505257617269316636172214083397852051287475459235521230488807428143611743177560041476131552900176928046420376716797581319826459571214956429896133619190055533935778757444164739628847974708034006035618182961487697082586975444368788595475788408536798735773532946760337903335177106294349215711941566029616403499821316002693086988533939242498877584067877638946644281143563303565500939098213319306065795312497548262324151603167320684412294836732235863545958122762769150586282946971284721035394552840691095484474697782611243143093929154384630354169900775359957508406857789133924907948837393174173341404433676961767997063838608791549349287005478687350990815964456221084494142400608667978263944622135698677909005367252491892231977075088483862889919594523103180532786096021515317252078070699896517536175103522310011092328139228355244952127132783831686436673423069767164085669504441740769481423278940070401640664363581788177026961489761040641228003702144341183347683191053044564658921427729807086280428419223478856925534134144485397418934792318329629474961893288125565904080556620159691769497859046625457654185558362850746973368395211457573084146167155029549307213278288620349665720819231363507124125437423082956737220323934051285435632308728893873917039884543555559349004918381269238568455342729357993845690801518286072300226867754938121018714979862779113485963243009745390305218493885009216635994105456573563051584618684957705386928360927919791234104580876302144320251057636512398655770516850162292032428191849555556322443405121935456969904726752857801033233815601197180540648500629308619769595706011995296147433627185268502357836783608435558206268979765633788933667657575320787511962730124913709549739016129649681537279923971334650634414741042107951880814201017346068549486293998460831376138543534118333384715553759412660026629677972455132526322398516509834128864634701807024804734873065067057160078960095412222022100322837651051418733642226840995970078175313794814383321864236163345603929402659175788594035366752438966068540879803221240085520307625067168063457630743598087540715352425122503811179278241061443791998584360804496629057800442557131483380689095146575750212526710874629790573842100224367677693881118827535344495675594897715552109339239522146195771825411981314929936044882960518153772365541509215421438973447624808132715136642513366815263821210544428271682499550047728648633799155919956045256679929854683714420619941390228852389633035652103035510970511728782581907382743537350949588249320811517008972399274149681855338612632673704297273570626500305795946189899494977109039998461694163273365403536857273865507997608168698041732624960049013450937767247432648261620819626244083382076808093493447770448608294124195499672250528701853288482827750131432945993011207941223879920409258860225192448685068650824007035882161883429723091236918186371903120101374985721285865895021848685107866237221151677829525583393913020810531062761942106150867983127927018724012109465175614802482553065340805935104819443524361581877214331131995213471307901171702183472759385690266135894786507330785686891049829722085994843060274132938473565643547733254958015595884428069873587347910673408287688203133386076512486270107646314425925448517627705028333269494698220812339051930648796867031166105043002482252359422097110466444434466371401227271597408895469285171963372914657243289031614089273157196935433461373818872454770551662618172247988315707979028412930589388777526595167210268361803792826863562581465354802279926709877841278337382112635250508874119210290163075153901055446771328194262980454445215364499037952656965405342141674704128349548435236354279889922905267224180023653693453739232527525873719167867523485263997811715201387459035170797222277018141325401691097831059943083753037025478079299503501036744983298766528391787920662396457556180591720183947580111971068880330435407586771110318072546847460781733709285420980167025864210881760618671575194905810903422468729220636252755902962156840230797309496166249331274339076280260358842943141294544292725748770655300028978150743577575823321634781875305704219354635062240011842279129027613196716884260244309432309895828659884333098161988606045435683398152273375960716189720124269480672447370428663530514209477258782934303011969404292306595370201292846172680063087351328679241936472200113752756075982913540338303369064984317021488596704376032298121420342603510937267007484693887537373577828805134709710026982506581299526656798246278126006940709365869658553303033728219006724088526582284233520510277821751042924096084022373760211689119872637564285018558325747284406766008014920502540587744880711508657666921447646933636327909254554902947521503597998886674257650851229382621135128383638032963634618408008938166617642165510399738681482456730898584349547983080378471214123827118916252767112647446118031642543621360462735307702914049551992827705723914132867001623451558800802995518130794597686408237422181778082681955139042685621708112159840409410769751013031082015888115610377182711257223582359412831563978974130257833971606397355239180745915395741314004520613963361825408947349232706084016521381488629868074513223068311105257326606877895258131356350942396267901666572405638015038535944292985443826854408743615089119358018434860477318132922988964189184441036958056354523299183576749894657414666588939403352719765606771879876154794986764538407098085529388981795659697327320795268973809087441961728739764764871318386751626744974600260832664692949740615167159229020387261495654617657527782361502750097938220012626409706704292104113273240075444114542990576949077960679806242684963283553906798572815161100947473511429838091324803666567218257733640591255481031919381943460269276433828057736069576876923406014048733617061856014332186621082693128033472715252576081145771075934253375063656289720401086563347190340688469640659331780646703521560656808550209508007680954814324838564588781510736978494405677972163314651140167571363503762786675789837136631116201083731994501353442362879039350930513895024881074509795455514695554356774899450068806953435720832132159268603627776749372053006116831870487321079260971476521222187520104046849774773699453977445068468249193296998409286412793694297083311817631316912903638649115705996575828839717663011694763959041020056558001626802718506550054931870195920688980815564414671902829981024915273395982749796504998583373678251210560755852954083701450282698257574057933135110552532223808282747782096815064128342795406100657580063029970243095789172120941459916918544971013236619089703933163834217408111612453582687450502056952035257916024391075279415821610282143887715447243125961851025562794566354498465782178687991329248813947809421033071669015504801381529415849861070371262871855456534390484300933181321845591284416082429231234320397309831604182208354840612741733733037203112779546361331870947281629183044324393660200079273772544736707458546679094283373357388619423738950615666435153325590708059834148932027056169481576839480793936318993194057925928839796919734109170509840976489722797282867760609060003000257511635164880221560839969569897782636708147651643194734378750305388326283907513423044861945718638888419091407119172889127524136234369390176522863392660462357955811776688119491981569681774612001480420742599709899074357539808339744757712713619673387439168616994988659119573245835947619973242775949611660770420688666100128266058033643635233329049218917908382368220011094931320137313688880674221229042607837437059875047092069482872642168238561372517936079203510669757338093194804947995719139038191354233332884714705491225167218511575030783153850834468563317887065243908343628947341533045711356688684924496520394240950400736754180729988242253866409538677523870297828955407763125115932627438262614551164166124302654674146602389174178455764040210244935231612765708833373105448998699279161496828556916678927224388419499598798246639251110698459259853795519015760916106917358138747810236183986055289344993831319089504799933869353127550199935038525570599879600343962080904027768735825516831211994303751236051032322400610164284849251874598767889237578694866003623640602521959858080532419628632826617082079994132738812510168243934009733781000434262121661872555266747084359011972821243193840058286492701544968444956502507391345192613985103629643273585634392157441378459016443233484645050958936906354990645891534300522636980408725151214129667169987031857600168493152928652252034429752414382034014090304898015265041830759179844281606271996536615028606411940119045138799273162477898198108419761870980042841255296339265260595027747007676196152290532435148661765251947383051665246985891191523164340860869775309451654604089251150222844721329179163213641043337211953413985586456044282044729292858166546958029733923513493470550771443141083717757706177063689201910223269818101737414645019463377190348260910620062368813136022321912626229793188263797980786416867703333894456815302330021667176647729633804791242207476394983204408572993528989444817831246108748521395477241671690949771182873120669286388336470734467149837874989137151029242622413430114253600048218428881295425400762463636733148574860562203200701324907413246460394625128458411787965122429208124266624815007806464057090383319176818140195020523599916771201018882129960458420929241383488758541122348875878914793860833359382619807336092218140402981668183986208484297932420535392999420474320312132849379056408904133771793732642149334879630537850727246153986759881232570388690348669866355108609325914331871529513257980966719228702928626120243111538518887873965180776720785375714958476340434521449237675273479329948256882360862581951762077514168362607735548999141425577930199578768923736226804693321802491529575309949704872691103492484486868386379892426374588981034296334786443058971137083619111764776326156959555123675600008741144420842195823039169981122846532210984715707804454172799144155496204447293170814499776075329128418223736038776428713664962979993883017054162645820414541840398520548326013318989895627068123132853137356379318451730400370722178875258842777213892886528616411498655804285100255124540055032297141893354806332466459629962555882051122423344992258612078999953950516016897867433201179150324043772998319301659177329445558482269413470011201357779829741637249606279916602689167178572582598414741450105434652731236162288900318021297066705777673754727816546642124566752053795078263633160380210243110946301134523426452299426648370262744548310304893312643689658366124247356380476291234004839678943286100575745957308349370551931594084218966604111621768612529034599809276523000561513179121066289174896609963186427132516872258226186393988426576720493334431768807950823278138997249201053722913430298369844051595898667682415799870896486358775933477502168821666764447997111502957946537869457821242689694745618550379144974173340087396552045611095246568221014187058180383706216917368240120486235583748795175862396471010631218604360596510667965746795264404643380780978300910345747346335778152976360385384566215749156831939935378609388425006714108423188771119727393895086919824950229498095163549474860395868995493754509493068459615919946789957240880346245029323102593751045747623386244938889831980279220809306871224980819822002746470137137632406943447392717461675778585128909153342817039252184739322702382683630840461960422433922865235887456953960437222246514049903085668131843990759192462286878263487241474429559008368670241427785258108881720852546826409818747736429887673577677377932485569213911358419747847053828489553002602964596311187089431419659304379073973241430711818756829788890714760013109770613164189171614446127987707978094418688656940858415255641579138624122747912482766657873654140722919809585500089841281545294275744346806269444761969521923473843639277078143882694428735451317934897758319126480547964605497583867845536505345234147472812807666652099283918914722585610615080008964260199789864813721180241084475258231213952251824551196682713530633730689754351545145802998478923672104235104653473991418678421765896845731200571481652123437429804580989500687094843380445819331261792330536395052329633861517818954430679506838651037743093044449359786012388359930169078584177208478904188449259752418716469455073442901868333658891262651430143356183158830035978591932148218741924725045970036079774464206044110283578830907886205845783822252560063482230384915785337626288205622810538787380916173512101322026182427350962099495248608940612414971171168204053431675437970349587587674555770620961363455646574731844480411995677660846439788226548367574783083579381800814967067959329863516671366889578861767316231574791390606422345885930802808589603593674666008843479522840543739161407640495128575973298206225570574125489512950484449782396435839626601835798082244875481361331514295765296263839856646489267816665376218338380770877097720301595679801519104597490094674814355085326205923593037604927248366972724082914748730532259208051491680122466920732689464794126018555619180005477749847611835123041751419938033336830150568208659237335921426589389593860005107409612552602484889911175700671474128604462188305476696316008902458453246114986641300751340764414507661161830278451940616818686799240306125956475318112918898224720310409313193642489608756841761946462531979181854635117579661081114935841689231514844835574255164785023359442859239013798045432723709417016411480440009932320919076695419967731007599398996103755156205842925978467573759009712608978913308452468105629409880086901265229335616520243095816289797709616376166109966472609163646047986214091590790089191549685639676391002910553351217074791292435848033152722750841802243282586491442193683625218155521160928990788308976198624545616159176988652519131678240325402742008696949442722960488624539658995319412107932334016862750856429174984312427715676800068642469233548394573535215345478574526169477663897913788035855823465010506107658573733111068543913448619903937667309121043142070781243470308813566823645339716464506678932121507353646652052123096522415066692045979598875684153033524082143057680219389236669441094585540938781528768358305273316639986027847173367509549358535398508247436285356584994814240004465466589116087262460888777801249131913938360916710623083170678787863024182639728882278349721144238986708906559048911441635925226099617500499844334229840215541955285551259259785881404100664662827533857545409815469229269541495322083953740439345530134546125607911215156052671682592262420934828229190267268686129055294333771790094428310256045168243509400174522771721772869124081722608764643358833668166587978236239131757608040063580094497078982543458735719480678450859472802342331019486028653626955248795237582868925083918582951454325573252690423038295244530528361712731742873298603609120517542850209909984160140464698590915833806411001949126287134387650081344797464707317850749704840218458336886154935486997295133246997518633742049055184653167196863781447625381628377313999254706369778204938212333137943191360884806772223532370556394081998865854532234244116635079990538620447339452638719489949844072974535729142870826585018650782328731118836982511462956724441481390144410068542807566467155969981303004789458812903844321214701574955088135344110257037400680476113338532922045331668900550661119487896159876511626759893054662555866161109626745252244662820502482980583232779756041451368125629475666076000772832998174621303089937173786378958888496216801417461867969511919253207328201067591045247726951813982809763294691033447641684294841741374242696267356144493988561257414283586850724318751333248871051826464354177996211931327809752447306116157739934585643150217753413393541750764752626714851822557965350905777112129841996839858335350558386602759949391183811717373570075071390933425131230270232172505930703552959092181750739906486392044399579427634914823804636300799150689260039322756927029613645511213671439982841852770707811078698330111947382017349086841992775520888010619647124983916324960236103967667183031169037786195452444143765630038786513400803114641162466409059994842548556101207820295830043725758762936887606220474831715306589779368349717500014655966879985075643236026487372075810042981151077943786080965270351737956395946315373552960129247002748557374333558728926969249095482205734354643812463122560797861916412531205560632735181156642614365296435899281908746294492476812779719303505411754315741652431639027285350389234782829230478414598776223827352447170206365059138284401971797129150571169556269373318654156001410893796493761034650369391927981104496279993908959801478691074396327969027404044406280335419680067421466691500893988373311205729396142861623152615255250755012943778040263210472765214193214256599663217352038027398678636088694505571592166936102781632930299156237321831709700836011580059398820109758616097593260024392591667578321627944393992689274428100263016870364876891060437932752477744489885043481677907449057649168073283482524777513957721305360068002434405468364557794896858226086427951821320185288716335123343503385219215899416288943514115012056858012444364432597193361031618280738755231268590236904648553189514115689212875429118484280384879992862029262947491129143281880337775898007186636057853915330180245482157599118241987776235188043523387992109968368561808383465115701439555634707737587792824063780885102456601464111462263333606260710041472203878255067382026229653979128973656058786378053731731124091349506289659879009666088602567753354630210953324086390053478212188504526980054923452213297769898157117615077822016367575463583190244615843054151363025837827780166897247321417858730395024283488172939642100985476995557878896297964895192162738916765408076508169327420938970339317039411234708270988465671061331451928177375214796309878625874824637333295701843994739133883086981728132995442212437052728093330438006629368739034273974834818392839982985715799075198752786792581666801567790621233091395088620095785230847588978581730684408137421879559000842440849825763316528276811294214528882087168789907883721007080815512226942138700233652755669765967363144286765594851126590033420895834664833264311250381987942148158051180216716720079187795784317849052656103037376132172817408417914542897897260315584147775312361023106620285769526752795424218109878920541860602253095444729071318243833441591326885344925722327596863466257335390765377233430763389435235019978989336048736522686730040835940782627743734574457617989921119140933662068116848847443054853043177860791033212972239040299616489294175723587706029996819634291287238700238755733265796921470890946943363041592189361455978736983178191926965447127429088835862473800836142483255017555283949971383980008514661467749458577131878566613410664560896986164552977330055621039298993451730544257580742634867643433613434071279841858204799863267772805819766389115138189264540685976869826077730348413214425070539489562064071830828802911998415850439627746344680422741777448698588403046494490756429529860264167611173064904534263641998657578636123202971510011687034956240688986295836025071029529339849102456968872980364110756627449352509647329359498369392710731128564350299386843001310606368885999840379342554805267814183463656130384542460434586626430543742885576004817582431042009078218164864693546809286985017111451864248904284299368407033041807432220761031508669756534088100700983276457624076387666925187338214791717056095844888292359719079198130381456109072804756609057184256288670467124511977565011340637788640284745633067869963219237802713546021339711108258822448932364680425453836826737431681885552534399648906700277509906925478462160831017996649733653108087100661313901419972296347996647956310305294202829969889359713621318467532164079158189547343823060252511968355271356599499659202931995642640696507669057593381472992674772055899845449177167992499100988700045752730986224056933933218316683977639429668980786917792911264532727794291318483580284555017251810068020770742938062629514328119927040305966034801609602732965130297885544862042047434886277211788999608573281090518149832190982424491991546726589858189558107703743563736639793561488442126074341128020765016532144846927961122330205985968873524510361097867429653902710500734587852825009436686900596987987946005738257737871090916859850739258853639014373641318243177409669149625591597782168071577479753748850787726661945317239069310490611211888360432021327536564044912565043694459902520279692537735927068517750035878478020329430253203205408913891921163038829406523466326048035353145423218556166670074249833207355788839642761335704830239037624710431743708121512505952664171377152758018649954719744539506655376535069016711886499838867856954479899735574132747812455245076910158564495840985886092980219793908058156929608157483796637166710214006547825578696714246187522241225092042186551653127211552664987465687670440165693334352969218181571344803817564278858880834786871341170483206420071099122607641391645780589271193495067438503636233209306922622891715210748928488018044268211936269561121928131351792032041440155451542368217262229364713125418893246084935013585946406053471638744232048042051246715574729057072350322409183010844963412882420979295385381575687735588914851124994412320845188164637557982800431024179997080004648426290962910083474531573923617588617569436171502014353882561778833600327164659889034506902076147385329418800542037028259747464583653628834012768030625594886351885696083117239962687315403099753578476609011608685176199993878830587568554471818978761619991521130983829262898046714965126479359006720793383632559656505936164955931423144538518782534676203248815759614020823246133838393906676547340220064888225630448319068550757957376885369494326503142629630009074568419227442579095869802698753990707839358485433628513766790649598599707317284456234217830550186692186950672272043929395352789844028768298959998309189028613696042153994186984059859912086131310561779415247756808331777179279189045844696394205583701068747670731504487547770737445624271306452828148041637983759002828504153930858526081934983355530731767598974037473899630519436127845067088126554536178374849191434632811315396606913487504152056622735945724816893638547987757039063805648983872601504662390752669788821340515005216981783751908106380050561313682355780569137783920246127336658750465239892598572604898126470199935099002564487837136865556754498082914305964007020202282106756579627488873883629902484153417946477859007615079588651345831931407403724895690672361361138337117241278172040700337788100585107758929262265305039475873790379469104008356689399387180914855875631158027611905619019501476743617263389630862645649431898097546702224670126422088987207017027205211017944451203319933823198628587578569136389010108860858373694669205415271471421506969137637853331091098937448140318419363043711499532150529574793086002205346441972553409358119835616327474198010791685242444763137753395173691858590902221037431821650579686336670278347272042363964071663180122203346124304281491513202888179318869883530924970615646115705835006592722011689321320443611914599138209289052559760011056303364838426602122303672838906580552555614814156538747713174205024645466202735206788296667223660268069575575892309365754121713999077324239073364989022754204842317367206349514499172319987473465564975380089399647720045269361031945585236195562071547189672173010859256530532011520579624923914662478511971445916324780947078592859534571265493799983143530216688308413401053099268393984531549649559198219127819646911675307303818315544577254462393096244768814379129743732451951336259607584847369268115664431132874186357591065331979912480889251996014047848982344285656244505875281210543941204869834900907475022888634819438175799711172064436638347754325822596152287404574278498031975508443534639323917686726623377929341359252060544175511305261470996090036573991567613832238295660089348557858137534587387446440618236548254540048725584631815931705202824965326124842628964914047110760066594984415919486697323634068441070784890603650296860124214736818823029126196096387298416318488025287905913067274259934009881060815438296372431505864771071658541216154152640513554437776010809921662185408529057315899483175339901666740715001069916324353933082325776158043248641165138568327204043014906783572832563168407310939966864120103344861062300824781206122692533778349531726240643452575692487026307288033207942086680855819585852921965509859250346103937722123448433959190686498488839227610803491390760695279085085291245485911516195243709974664039078969384324221554588853199469323709476191455619593037290013202183736152779266092402592561319912353695286480932641620036415346889697046391404475981177491534832143191021295261620468379223204388994438740176931294335389150276863066219968014859975553212835911973583807266847557115807471379691034951729306937405603783170911066158552838145656021215530481970487137107747963315218856129187457041383765396259797769137929160676852280248877725882364729475994887954561459779825329073056234876431982879413801070840198719867023710184140372695410833161773686832364671094686937384209675891800214581194595233957692941483587494242653127237411439451674530312015677774037089486215291118721923721839643894305411428525483829146211002711830854382475427644706366080809301216617683755682538521958370547603766514925768549404277288362280226723648153213319772767244190834846978331585779243473254901470710208668114204959788930262815008920096599509047571811583216290451801108277439239215907660458264589002674361258014450739048347146689433748858352410364461316722464525633336448778813925635589263636264591442936033528766034717966494171308445321435921343339134820768968167370699619719069693627077282590224001783287775487024678351937721777250704053482320362578537565088776068685800868994998526643641618070835724643903643849960180196374394901930863487315133897492736384701646035953887518531239779331884805149957592668309276014596198113075041532461257920197881236399320370289839462797534768819550798527698409829296559396824618159794952647978680721381286417883502908544565154980722275894498753937257619898013849455894866055288681153574279446891354514581519380549288862149959273665772548271269999631029150661338871185106349274217486013285091305107368489913040940553029498939513906372114204336007847941152030116328131703248515256443697070329813781244553441002346229263728581904172001239585567669288189821922056642804778135674740847820263918417425695396688368272412721747989619901370640472830420780106076118526192054758592392116594458568224384271065088557730330742163283274609896105134376701022206601575001351127536833445278154065376962477579753403381830174769131852439045871182357677057075069769117888523427057443522869977083700966325664361914202423303595212392102784239237053373862261935941139073014877271099702825715145508019026704251901038900922826889512524337326447032745451211876931922812924429950425217950311675489274820199725030666812257082102981307318049076214842097085082058139273068681912782208372197929791450262761812402644834808443709303890626151342354283444276826619040918414079854570256506562059753789745698027581703467587854917189427546340539023202254279166507861668928143203594551267810843840811228491652784781732698422200578556412823452309810662137890697443466586822572501889286557611986772398706321714919370290990830160363725844265753302679369219498722093505605467763452517195020397796598870806277982642850496470096369410494376534152298328145989745828037083744204356731214152622345071309150342068975792812526490198319650009522219360303274637012270793741966789719895057189396220390782242975603701306331312173895944374881746716318841177832188932002137831856100909532065083835064129999224161086406634810420421566137645973240302900496570730986582756479691562131507727803686321372906346879890953273329993053843310998475104259189723252393151407802611795742339738128667104311601281314578442496470719331856596007454233484007871506105159538162790947519835180477404243488770323640473813239891024129713513778331543328125775934081284976898307537982496074387960599199555073369686342567924262984254283695516202044930362782151664358818505993232675660268728380690221256335739678000606001781737717884004691487357470372375863727429766128616392780836854964409596314035509726636534094192266582871577020667008648931351282091458256626532585500734960614102240972690935798708739926538861591113171195954598424278009875020998189535432246946487825858535568167408299504123119002029445544577688756371737524656824476182984847078047684624424960336790719458559173312193045421121569417646894664445153806036535492390385603135562037831867687753177084169822574009693513740063576270545009360375057993051644573517486326129639672352948647450519876321620581475894951101027089542203392301737161589986009218315804965082903152259216239536336657982876660377387395100456427488893311298054556742173897148374627213334501115927464663205822514740297475041561192086612025876202076032012031680444302418214190624836503387798662224442290931333616470504729473460003888358686566648208638711978128093559025312364316386938250373136882974692566937776503737595800608242264916774916585092584753868702336903304706621070353993493688857019833667651097467694984044861718894888606290281530427910677032945119218389631229607517140575487730898077650857879510838564355476128139852916892554713337833700907574844994039401461886552422985474013471741638514634738679345996000991210725921850382765544459671030315150926630009326804419616917547347652410810133268293684241229805247758769795063198692105635343175720433548677513244297760510130218600946658655967655230090333375320425984330988434514049968253524859834358353512327594405064007468563011854630341335370641849928807824749754082168802761564643632021044409028266037160742650058214507701271509192607050827190254457831880747920785323918992769000298589878979540481099482541273614277159697124325253019347447723903185627060829198141160686725081405893404242210426028928446649903534255181605208868243852819698672512186581043658306672648456497978478608646730047018839239477846737093902648729108422813549508021516782968583234875965803144217729719676746836380338971486989613588011131415545846985386185019482747307650303835784803619217921862586873013537679370365080636879791727409516643940356327057339043958703331681012827356922173506538372708311117379552754364319234719196728843968127041591243523779023079560283323620698867318814832719722878401986958125904179035045795624766761179752501580656452564326069169592465244991166169775564483961362118196346143436438543843585699639746477141543771099304925527294721550038268639826862633118676746470727978243744638210078890559866056296187617238479500322971189899051093432463978718351229789985521795005699663605899552392273390667355709746448661812623400374464275319400281382188901336752620340767090696650167957017694391634068359532673134133472363955123195087739479700950566339000439698782450869986277949151973032821125412604349536949758481143894367288837985339080078318781229359781645350745094605694221550074913477637215563443369812609306163483048507537451546744253697613067534386369594865573221889886722146714337555028459190520543384917761707324888740389535606106039861069975559548421782774533769042754748755557532700063151847247652858452864534961716726786665725148947759846675494287393633505198335471887865906740701840915864385190626966615010772922311728767671730294240865730132384896350710811638203005281493491213984901588562468168585976688790922855609208246477665367828493443625780589314210896342404819523193413384946215563192051482652588381684489646502584244283633331381633889394560643113084429054777613990484695125054126038957789310655483430758798213044972466413746070302241331513646157179041818589349242647485677292720787338621896172726447727406929625819681484885049475792030817499515593589607165578551454097195350601634207137928889757630434856350087460472554955685038137508474822556548493224636923050989537693694484744666683990178387319263657670620403097871349150326361806034848094470392154186666845856422406920341743337774703289281844999201527773555991738003773227709332751350097670004972922715319897258919755841234051547650296394864035913116405827990746351261887674078265920143080037658461200419788117213287689526512816656642014484732236724765429688580803721944290916521224118631773007211715274239475491623811294826153849437096219936815144849306121159663263307874264804053568521506321851619151685816975722045538261198201067000838931565631248373331574708033095289055587389471560778369858620239159476189860640518207227899967643923139951226462419187711400004477021736634552009762616700951533426432466240726213497951601632665801424865667130136228343425424798323883034709021827795248074346618548469813347643376811901497511444621140686273789253597540204693822463617325635176980208114579651065718995147974715661198252593593514686361255868462922612878354542347594782058806500260139023960896007337839708399275308126663156422296331723395627254864997533178799017932500887965979990632238325160158750674565804831884948397139469696349309951450381356702581477226454494696618264616578935322664376064232165713074657777737227569425419208633192813970395035011693697592993765573821380242092318780374908277906077251060761333381224596293110404213395530321466359355671560848906208577948564821723163635666080551687977898515454465300425800052067687433365942271852404963802463087425330056004966738860461971470955223480793828309267219066566802130330038452306726158589478297989867338437230573665770479495729268112721837690181197109330463496488171377157143279459937611270619948683388897522788467612234983760773041559471209780330665993251203732749498999428963029117330067378275768858327863488810420286276697031902407808913793669226970625853600660637672166825338182492533562958313032935740055571509736819282069989163330844278948347529408339320486387397170678544675013224624230446066937382125773112744142922887751379162068335832806657989441162901730954432159192661932762734379032474403212785920046486766565964628636800457306473288023932067289091292816493605709861677336020043268040147801645257013044578998928011657125921213640845402185098000528164483142775976856124784329602353730470936500109684839251247628905314482992882794519290200415773625631727833360074585222750638346321895881235378432843365493016875472841525852361781442761950145502513381994597240774267805856067565643078696126366674927672862087701458008524248890416973405809748214987540211426397578844561803811681872316383699421537234744808293232237502590009195478648297527260421129197826613109446925560945018528502892847765688965634013981434576461641097657693390250006927573657874336968801405762440977183366976585292456916919085582166499293462201626943260529404258171622293999637636118431995818179955622000678399040095266044846570100741841251939143671476813721836908410490514197192958217106697358149912216223896031728020356391087263992583371484781040568355663383464630420033549593946308956034668382001919111313299612538779575393615512602790036755143159291791810405374269927371051682532272546432825995526729541159263710514203966724897337641958259804132847219031718873971104854350710989031187627272573623137417554804063265581636880161940118032726092973657703742139533739091684012723879394678877877160120112053038101740123502857653127153164262873184562772318428527183567539565164298581152874407721052209345352557360540685093711423408986412099218471836528293375418083692930462411396458420506178067711469279729176105592063175293221733211821969994811598151536804332153463447125981119802643116465919882001710849479834779559974929662369454794554964698845644221241085517250870462399030507831381040720731400447298287220638515228428749057410929093365656357352915503766968933296152240521372563378956452473460988654826545826323227437531215334407316735739212686190096015186758734064728175239040091495748795564377585210739377685610267159804228480520250259090383297997514894452793255545341680983121978852148326959215185220145440253109501945458612516702539195821192021001516616780534465830447490136663317638896548159318363858616324907593359057782868242188588621585353038118121536931082715801029184988289418982192255315334764152639333432008006017117686343147844054921193518507992722159069162534744431977066735607106969324566727137737344484448436500629252694150842264971159472169062643541169738570051366319745551318136874280603663004911531793811032423795932163284428239880760154737031887721385173783696821754603685886641824557555299777496046416479378454966500113263062742715378946030462096610633700124141531678910814778357107968710398599786097140242893529153319931529885535873027118127644493003095198647857557202888925134482955321841094273866693276459061762414269878095922219097824977581232829216731919530513001888905851481210343780544681681791162847453608451991640406157090434610799824459324439840850718130829180078740626870310094033189480810233751227074075043946472035691457095129669831605363156343575629576843672267105304370793738540757579940060789650214646206165613173638986275952041284797139660116936111563555552066572474271479621559003804065095106505842767880810196306409368489196351504827703624949943704940398420465459192891721181902880103876283124038300538039547740712580508980518176408746216498984524378054393324571040920835815310365769617328926823825271796644057310736955073692607492118918088957918037418646922642418852849566134747381801201519397639679992134436374568331633547618191089388597126781772228064965773369598607354398658568960821247329354275334028753966736472624467086247109296147881504710425994615146971225063870584168724553008887844745994936650886983168016348275018320900087348834061821547392126734854307247841312009132124855125359218820149890267029282252212498537815940128916730501051772501130306949795054235646062667432875899463789191130777576532359297998087736785029793470701820013891833873681703843196598314025666672691957760220873757917764270195229422303662545420553558858190433331400549884728927638273681066142598658330699268989074262259710054139422245352674884046959195156817180772391773355498780308107552401108225351492440116207861087449850111532625236648400391365603472624399640116654236942117170978266905083245655838436683539108685988371022951168137587696110206960570406545319062260162016719732529951875332266827198345061778245898162678819632497751123387043503338251503747049802294096741993888584286297334385864225914444647441234274235237634598819166656170026796556746288123242114252889420132198948197108787175222841466517372997125696698829409082476205396235406532918790524154880080521777057022098662697322933068351890119329698615479662143459836809487160967880327275783065991489683066177316965158200096139456746511581911108575156099652733320015281148837597273203005521466228242556151527132822617927710464754912398574627220286141004804990274306553053918986489053702052040150406889016880395152543095178134140286964633500694384529105338585566941405162298348214588568089602811895013880483679303805972995910753300557312918785344767945696356536270310735266752245923098604413387389593938047917026151434257075186840441839753113088203541390525842028582236091826943553536444776180948769194862039367684869125875839210814646617355153932784440239018221402201127579366617059657959391779362589255527924023212049761497569545294658993313684206243638377815819604962754252016134816427238466384459604888425974225559116957341580160914459555791402611753792341524672975089784316262063884401255454967267551371404962309445083346109316353875767074092902319409036155621097540818784725930071773300577039870431175684517012233691024663828824923595408032364346183410325462820269150459682349547041965279701260738740992389009398911066027215986901898786977288628952817318848088394953371823467611855343090221121757022700152217498013236366594012021881367674365006703062734508345826453435666694443873933927720234836940317561161738212637589049448768269493434696900991374313421889610248729414286226377353516477468297245440351157593441242562485738207610719103221507309481865975948519064085296733887968403219332644996469906208776877239166016882566221240632302694680158885311354635720453657166875932665437876005676442185103269522627082426165276804397691347838608247283361102857827702166580813966079636777728036870847235385726296993889075572533389323709473766114814059317042193837970630828595122746712460738457976966871116614646163326513268178941595233069168858401435923399571232690212676803624440974553422777776296811890256364440186321222210008922442222791269805185206889746758976873564392231626030974067849488986820804382682437639940567230652655266467341542156212135377168043134374394283607044327773868261219869060165599085615629089261852374495126468500088941038065086652018638864982372572374404302904425085504679393367851091997884205387670697349864828579967883135320330906483747978094843091816252241584083210344972736625656994458472461451708989240646379881316617020655697812289796772110589729766052588711002435489756028859545895467035361044059943144085102930616181390449841714526239389297615022842686522657066018089734297934122255856328291404123278959116557979895475397974875312758741118242017739466032279131089653183422372514072529785462102661809838945657331211222510408626511285472401751336201375421546397174578023450808611909073613027574228146973778839519015462753315073151814349562146658774684814495428227132883304086544630441401900447722942210370692759376557321981923844790189682049248320730351831257211592132430372056738063906276166591906615269300733007779780196427025657966933587857341922414072356595398746044150503506732053809922904979209890193885130571665487603666455959042248569516338735877266212154922163037545232027178002030920573656802343908560619210832880832917331446856406207811029391566577419207861011369090357366121874883120373141977512313370630617880876427569791363526105712292472930608377650211780093123596686876982703241885629204130670240115927239346997501348971623835332935333084293957676741873838951005445968368437210436088307461762846796928898550217245994986965546536439283446427198277143402939679259385896755388592555335145994128830535394047266235589271192036757968244908865345143640370285881991863544848559447788252448170108203097386566548303711835078644766626743813904786944442697779648295865022216086678080891155026492048806186910896506381467794663733453421756063311202616309739226898562242618427646784110152819036176557879291748997736314235975626296813248423103560283303685713358686181400845564543675164990995909848210323085100787935253450605453493620959462059988711452973490411098573350276806915626169072716053828641335102678270030899684448302417935854713300427850147797053649026052164378494733038625038807296273412765202439799121010640942799889471176568351747319995888746168309949178305174316314911818886829674061464720300345391546986676245983150053251122441467378354666000141857544750223233377912146853608984698814104550906049198675256286045058483104261278845390507156798832586822050931640813752730599566068574294716524414779757777833594753529977896947773662583482938891109420851257519760973729748100287854700126109351599561768022687451725998834584363289401068044601102876912680275171986132564641361685171654777931808385139291184203892284886504993089405385466503641708361545728050718000695062771517068458793530754989011097140674757624246883334843695514461948832304230688793708717874463708647692319790513459269933050137174469084202329756640543439447593869481674318414650399513712599932169923777508170934364608637215299353509821902025555907166825259814368663112499789541209149059106909162931884048250965387896043579367650550587154254152754518714689838340164661586026060530969269808644810708846700551571204851409862537472277200887307375386132891216410110458228123638683805177590285504699006812109009887826297765596504640711727195961316566843856541966407240548790677459079570030229147257598492324531964160107634995236800574816095903378720982510595625817163107185355030040368702116373504927042883321014487786632587990524494292436473523210284213333150949378511763691373606127836555076762978243975237705371322319302237483887933640112361290096533499862145869277661637236717208913861893614464108809531967644026376870466130031001546968652720806523239995986496300574123345191143210065157365744350402882433581337362577723045999079105347638822693024771475124838750009986698663920400199660587966634888720795203776866979623160904931377658050703429894791012499129369975474038178297179669195044889454155592067044584547688945831392705345228997378798438028033582821999048505852548916503891980673958928831420271437555529591341811291206768440742307526482864289246428451450061859719094803134869008572406308423372300582962860404255515005559079603063357073164654980859912819655106680278034534145690559875683186865643703474049168132153768260746371128683978260434330466781819756516231861357409277087667913130923984411404897665636599302666508285955682490061048869589612711833024703752009969774732653387232580324851713188697256419066294228118644393062145444866958231869901107965726381611757637647344591634766883022197616860338240728226984766746646844496854137635163901670712513862631841072721412358336192331284885114080237207701496491136422504758769586133679521697065297116075907721744927257046163901180352573448826261924650716762301823366945259300294813402143247112600385249117289547094295329241948432458050003619944745070170714140290562048794017191731329285096061758279367723500886073546260318827625377295003286560217410503149970867733302248126663347508086080806352381956394158504949330921986218057902050099227570728681706524801549387502841824625762970908356602772460958167354191047114123910797461132768982733874804133078909076483463410066177696380301720229253332739562604424545855969234959110466340110326873552279969659189721261371659553719980553973037822734871884665463722990787841532943857050858366606318828577474633105414508793096040304451052833863443158794829849634692327850463488266931087370726315276019340979471142433276116202853936347582206881753204787107204035604599395009858070270664463289788981426280917916415265948828138807949369169866668492365459174298481749165376394126914985031681867666496074276785884163698550150241533452201067900603714608311009135230996553075682516164850550219917414284489740509164562974784800929477456750460199912790775779972763870342612043934739395027628128348090137858168194695181190462065815527545011581419900628881325564873690691380562348932325252116229755148473888795120486867762434380837975594851323356282771578235509774155936813897987331350881514925827915898152965663132169174631015025381608921221019372182529292369219333215987411391441397506852678780302695016080257355126522400462456794884313902723694071351411551363368642930186207311227153584078533458066246860872082624235044771975475431910487770069363920951885925066721209111214613532855485599596811167983697372191680822791220256215401121933177907578998491043855691928002766147051585341244754373931766211503459631656434606704291799408122564154664015695071429748362111728572822013855642828265355341543545569448268501665770709925564488106051898261086458913787666724354322177301555385397735970867553891868131864997308932471172667054722863749324548845199880569694366283596113936525245585993473091939062597806587482979985899860044361513847835831804787662582897062826682378789552997050553407728616581524739245596479006873253841885207718982370828755981359071108779842665347821317555578300749594512278233686446699984489632941549065152183197402563658367656524518111816289317199735593555695692360434490545202157373830224255539939790378194029148548881336268858666155537989355419848192198196292253254993075595971325687471671759075243519742129622980047754588302429681221976223006849864615626408629524295553817268101375320830730457661712806188783963924455712981463153718637891401794744416024853803199679690205552970127838369893461937979421441406426532073210719553483468474457617312061109232352568468096105720141797480241275698245587581408226088811704300672670021530884215394814021669056360008678461693613724407432018446801479521274601861083096013669650279615901126821683137060426443409821988156566425400160239739770380413392196265167156291590813993721816072036828287678617041293358548718073246656371861843393203455929319065160453965282475483824149211165781268993380336460806013771720031645526580962506656006970181715870966259309825824716183876285909699984448513652726376742653541963168836512487808828385223536067976002612410374992288845680035107736141716127922487767226167601690325670807152426905131290407862301486113348867836318901490631867888338086077694107154813087818415284040156315805339720230153002536603489293028131947264819067121865295567415793878406608548324000365917777656666677912744632767685083159630396681140023395913135716940993156168376017030354479071605851252915973818393385143164228003288600536507496109093997816037127799875884792726200544619790562856516360253354014587899652587748441168583787312518927979791505979759503526741384124449632929071658528686079127471996661743472236825063275958618390553401397679526667789952768948706650872991694009558470914452160574161972127025385640938398031608677542431846850818470626494770522470210709523397326232404510655230009849159017738579087138127276001264026762680085061908563916223366534700903973155394526306972946480652298083824074326111100424569498073359549948259267667272840250742898447373602859015287339686102992670845169375020684412107218778905779888959411131910499102723136356172381663717693015998159773423199972242522942172411886559503092362887016771135739524674593534956414806446797342852064062506316826523457587621872683930393281029288311543170065580326874053946936993693130827613657394786489115243137758319237127460794998571721803567084908783832831857525249341999972200638183936858504228682131699795308279422294211737790769404693065455801384941250004802380222730644773450062958899406073734164257525366620485135066066196599310079597329185473755712270094210064587017213192917837776929973501424353909615817780872799995726063031347436074023508275018157370660948024623361942128312003291490833388413537906467490196516049380383876049339665833207105514931381108036762380869066908532001470058928382761444558054396343413749989736563136149495467819423050078151763485654639170214170585612429092552948954850205255283589922423901391189853782761686647361296399521127930942590462726729545120239023128917582897372582329134167207409776656189834941237802352556402962696962298731744860244496302443401349110594189445269372610347130464639540379336523379247666623575272958853788179444689203186802567967128963391643449379552017423409243048163147151620219200319404704753222439428437821782275120616054297888190112380167897345518997090291023447281041676332387399085496627660889604097000383448006113509168380201185565055940286607671834637904519489320183183457826450542463838546086647833833315528313328719799079200777012918766834243035314396741709832096971404776021847671816157762347805456983254081324018535636385461309608616095819140781422745283379631115876874211078603621536620672421065877439639807697427962004590919306580271108664141446286450445749639530048453632123715096928812668815657449222535539907550656145989630643419969544884475357099315507545148357759481158369266051940982171818538309970710131607716442112013932393670716663755151361750005111239637812625789423237034321983286058007332135439111667500104948983297046511281308057522318622709787748710761537487311574868151172020207271749874350258376861414227152691910951881471397556527019953033375842000172426103793025338670188582989830259147816307315668062099843532166939402466592611346338914286187508043482005547399748159821870391009257415959615924409396185819933149005802369206259608810445616592398463070739150253290408704492830795422802844781204062417599143975207319125419264923030835307698004168002651028794108564111938417522893641484731317576579795641484342567056554759042591460239439532498652410446748331413752098864826803887828440140182504188256516908349491026028272450262922775764538024812482143751200659202733594726430744831436922115611889620448287291708803556347308059234167368296637252137815112756989773921468294642874378521573804925947734269741735414273168959920351832300194690656645960048646011548329861964366474604062964709529004521353438686654912099139924360671259169688438891306485383003950061642388631553646816695198626903321718510160897673143984198171620851957886258684365700522662312931746183272343084561164214874135292250414822034368091687210039874325068697966585159706400281383657884889806979912742410912182316985369112194986970939124345716153453842562776649023991726278769729744925953639988104726974297597332641793881945502517287546038930918274469634448092149390154404904449551125244997066665962027925789856155050704892654251126305927023275760404850199101541460957801588685444125636565678160459424549317610350277252186539068486975111865394091589258401762403235012659422986727185696946171537136572968064119516257661599328421195666413405649318232916444726884064037494709794237280479570617135340829315599382789356982262455925406335103684511477699584505107475727589910640622438530721790549482973976746331529465736153224930255396263394687369813880814370841141521874027835344158065767490121560421541245780033954862616044263608570185045380126108472148193598417443102898317639379719864498470105919224860589387508177685830234264293797153361711857665615409338278899964501296819588990873333417041887257421176748415945242144103191042985533542287381573564666643439062973331371455213264575124133677532584251070862032236316549701778349091228223068386863232796885812115269181577120438665042344669140062815846090076984692193893313664885149700206550379871300987336506422671725066416629394626579840342540315185396356507780480803928797961269330816984102459090003770885695493810586084090139503230758622986332113273906835090454401872847116831773216766701411839887305939161585728919197795229880331858785268169658400601693073888642278687328426941925899202883663121059556220233975689223289866441935222016307887761135593155367693822219260127400317683646925457723943809751388498195736004007532439211635358592474574222593224228619083743479873853519609160385331344069277358710429600688185450536069479666783883714336943604989299279307965790064650291736945362008704486305697302580747813483966598859554823191652090146648828638743772354747823900405496658514688376199674121359430190747038310601748320098973210538644603045429143819365090333214339837336420936394872381733702563712132025308758810084678521964824928470265329739667515515499540478573788417547411906154100166616473683061412483014890332605066901007037088067492616757899879960066835191026419398944668319975635501115559470544449688815723278498140751036480745288793117057060281802025272879464912694815566109147056669502699930888060791974092398466497179560581334488647340542273437635416531901787303881676389892987195483412650559191217931250212107195505841766811100511314201824227761485602778417605116179170409316556372258385037913339724931679353601673875729643403550520335519930589043616389364618896679988685357789554058536275401084758007495142303825915349883946607597140880220701169741961281213753775492685217327629366917926177430445082715213600293946197212214318626218378396690029407959453615931210379327913460826939617078372193434452710965156778843825072413881088409101751561893201704578992515880466387190069818591520963510860297519542659964449544349472130571537850405554281336505524092513446959040668924692772903620073720523898392065787523742599665224850642716434822646949728642625508882715155581702021447252006694170316480810009508433738954721455985953028702645750677293718667121776356135211861851750948642213259035883397166026575999023875412257230495456167929190915272214520656656363677247335451719490415672777770457110929415930609805313807216194612327988591641062216336837754624905790649515373475392799688448983436667305801697046879901057091093894804753370831471302350199705404747759438502479582180408961146742004479390011260391094079625691536677994983249471169516914172545037193797796642331141932029494839263887805532587004216070858254452332604748737248453020698913998477518939394418638863752983253182902073151270794542439982896623499082814193266888780530769129032782990809480457878917939095161008388545629412756304273816630852249459683429851712471433487209060954857533973085602028162669847618385825837357653765445134952189189644371113187448108758650200047869530925338911498913758916890698862160731201027251321460522414962094413881094312554046238601669637683232940177275477314021292200340659626571884560504595506849860940660912185812355213354950496871746095796296680810995766511526404656971826836370743524564643047127571803007788268989867237849637763831059296093003340724629857830616980572444091341867433772793299836302157687199236541331093030639436374543016474974127550856410801620310483454708826015755034176961251387948266844388919469820049380292494032439121198593445028972640290040593370715117556114803237293258207329128842620102680331173890039718830564176591170800989867745684941887633830192672959696749057841081356163240523883490542771549564107212106433624688169821873231350409824256475823039053506717342578448294318161225568033394503118388707493750471052224831946690613980180672432610784361356492002521240575780949780701736558276971448119782403568736342607070636180000151922107703472372598788958194311169258417593788132297615355689332112300505822163786180066250886259966179702333240775976010543212630671692197440058884232487354136476682443101128647920959832541999369145600212074275139994160570468610183008197144712842516357749403501667507156721473819613171807663857268601496465362355619768152420215476048777651296743871617620161304757966735383488386540641579918894428189541318784908131905193713296043415930879706945122623227861081028136212742949169521533043685200255785247122882983553776278857297135884536104255308910156517555931780989449368197364504211978855077967926619811352791333969939037428876521796870845319269410443694453101113824344606365381251943081506203132432580156477178957614213655508535028518798755286072174434219969567553972020460606432069645340353292626807168107913119843192725998067612778862836490525296005051717244404514514559694615584810517183636408968956716605000084906439195911041394128614933377393358566745157096290878334475180950280955970239678678469644193018083400101362488201662436673104466275000446947401817671533899437298150191765153780427457787383586903148805885335982148751535487608874891245106930965808292245123771181258145113039867675278910538672605203310737531594603186275010861366081386352500423616132015291236579007709526269170880479650529684358191396792561391976109760923024786065359834017393881029953629582279813088772561479663822435956364676261090050509226796871062708863864493264343615439676250971325055468501800916195589382606232620594700571348051445510328760123338996992123190035607628201176390464400856180069040426943526621910305707959779333869473233280047921806738247834152341657289218557203603801413993248385358772853439249277993737525314430262584205359334518091501108452937413468487365933515243756336764585545097788564668872157573474716913813786130283040831679369905935045684974690396204922027466888595862179560479682206743087067006952495350669691892845427835704562122842460168294486040984562702335944352493052837237459905430488279541649791662034720437318940202772870691934741166188328534086947406755228399819228392780935076020831252753534538210156156457807589604685964010275549698292000324982645424488948257942003675079194021119896497094687297241051314869411682196809449682497527432341987511193677468254040323951185759843478583209787300960733646674544256174157388680557405501777691047934546871741792095944209673596395864114709905259397434413702419530863329964287506288676570197418156777567130665806923146841500926471774495208462702151025664379213891457694323508162170399125879934416505575239886402823770627531871638063289429707337564857271586936950073385905304276856791808226395007449272550967338558800789440758605908032692248086466500557234947119954044340898598950679073920448163035738542013546772710043871680103349368346264452070541528015722201393160675184843197121761380498452136186681155489142867824467342084159215593516527054034252930985208222270951983038091720034226491698215933017178907045158231117469962005102586757442432508351351436868506173214637462261873085541689552984631446654666767593776557563548891278387173821820873679826068330324592326847181511787344683713054772914868072098347700510940771704111353958122593969086693747693980688929574692786919090932137627466054316920130592993473586013584537526817130329975448523648800254778694776859112400294280194159650094647470265027117131563371522717873767170538774986168213723324919545987225291960654730617608502014972780833680801097459626444282390213788390438760789529361288929481914917018529862205540534881623020733992661930296301571005441929220160698304900169566646440790685635741478206255029652839297114815486185141391555433581971147157883170052112106686216706872701387765918532206406308118394354554979224547771484411026830337260251769876260151099674153919184095538895902682583929553674532187433463431290039026716918492143825139483750965883609018513092796837668711343271502934999445021044765411767144816344228197861902944870143002656481091326728392026496859705211200568073588768281199659196287126847547119433621140078027180242034722371174396278263745066319241331578936536581878966783901384138466906629372452661850840416308727602174731974244330660287957887970849806000561458778841719064157639434087935354218283237693346181606168753927838311592942051952501260775254501188167999807871867839376393095697551982606557894341455885992067472853822053565643657391272103206697331923539484554295715680804373454907878678458223472272153837804419638110202899880318869250701257467622091087165535159529028527419608201135717609842409126214239079065188303469142735013710237938987651163324854732438401715423079592086792205531898142588110050862739238597393120711325721902653226038036982614537920152095502860829518609779349849276433624264765386749941768894410305655827164432068064093643503487099813981202937890004987799952610984591275362038819005408056160612861785074184175917518110133637541732239022901161393883368407443353390817378937761309214271128281043704150783052720324986213291849250480926448146519937848636535315977847685079031894665758795182928529679275696960587168910203500754837874397356418429740224639327149239334707399300519942821321347848835160678985460431783270277782903561047426260376943862559098036430517412832241034197713687166760304946371643294831454115897307619599114622305511768986822050812739115717374118986091693076465657992548760952213144592272865972719654442736500665373639037101252743276083510663995786039777166992707458838574833130691115657390060878937202772742085579547562846140350761151891930496381481130164676206483659197195629356040198594106027843619651608274508095801045923841245071165524713685125812685745925818923201251275086244908387636639566726168606253135858033564991541090957344149920159056472038264303358237857253627882312402310604259176893820348627551410498019108212410453385531398795730708823334245767528166392446663689182841764222079880341348748473590663814578148297891961415405588587592597961743324539716039536585545255147134727496623266639523864440608478143447280753457812334854774700839940732284663398934551348870655363129380432081228013728041506226843908863569056700680100991120696191262066035182406346493778270337510703107399365510582508912522057731079504582174851861733598777172724189774637865528835679458875529826071374905704185234442617001480398444694016268904029800025729617614944511662382265381335531657299217447063352331485857367121480008149458119171436330246785997846754107112447032934045482604471820618964405171357968190406678194566819761625371693396175664064204137960595615409945011096948109793745299378547414441929278060870252789253455989199682715076852256470417981432657608409908463769397268149503393376366629635668208985982891672573564690698146956961635158505439746956746521711614671303623893502557460818892235898260929686672987334738566573696224552291198810990124831568802908682343830650495117609615631594158576396034032950634395175920573973280914348740324448823393874805010786038514960889124091578931031478092218869934000838298783703807087769769187333745758831524119199086342047358666833072556990782097449824080827222761079202540161025215388720772086530401193335408856405445699917860864231525519209974467131269907402854104450546025102141094759759693066436529539311910827466360065304569842083887683071039143413675824526937808749303662670164475227670174174232832687497874641415580787661676489049973199911153869664557812840544948937702765905111216106480592522236655977999010888123576614612981257371734326452397182753020099270701031824027050053499652780555212198176100480469547248733426977774501111405701866900565889643346951240484423276504424372959729683706169918325544721518700181670228822971415827865567197264720353434556310287492217229646604350775506350760179159406515058096266300475970552996200710411304634505025133466547685458693449399622130239288820782585965957667891443192813839066123982705437912610126749713461973918411749987303389103998639104894288811875277220447073839903635729666520775709174185376360859575764308467899976924755769063501988263009855119159754721225953026519500275839554882634294676427418569022617891887899219674772436711725862142961505868801463621605734241102536930033304622586867669852361054372926486695037227668661660392984651996121831020846871803187511189933781226625184858954181647651396401942461672665081957065930510632943124295955961723703267753029738429193213493248606836805727930885738708245869495575183312660961911447705802276243846292161720043724532430523207851975247840505211037471304104847869604444503283047242206827350920103709988098367415761071282524811804978436478813020124687545646245926409573244426985283135014487118680282259945867411185754040454661149565976838749867660366522266299295535667548393095275494949311358350502663580075398807765274987436043860172916306228942581313423136022975092464541258828720342188531806014379255589858973904656258203465123320564351060175500319068803040894768896031536048298815251639272653868076828043515356349710764215537652351092344248925784766877579603866547875705332641292259168120003401184129293530580816606290766143647421737532058020756502564495497471255639444937617105381782652578079644469482623978666976534368765446054279471933577987563979677737285634650000045620044830692617860051252559278938355417497919893755635582250778734974563360799169842446531472687898760521158832146895308572158577481586897987217107550775707678248014072407319641597419021424959128279268558747895956391081566473802470497303366072286903454409287786937381703785986817761191169756636819576800966312692040604487231092019495608638270088476007760285950508966602968492842826598643935304615397557215719499309260800845791970491338781862423346748437855607043108107433506755696441846252503048886446575674056455488124985740726687743514408336271303896331236871738095628366843064001582462416490886538317625460489857197613810930532824509913422222197937649044841382966059078473290186021229798402192284102250469270359341170980885612717253581899325387218507059489569730498330265128119995347559183502892443963936954571916591717386180397318423412620497579831473010135249057735539848207348992507737046663377427813439719018612963625009638132537530079252430990187797247109767608299425573951063479957001444732962353007471408823215067017979439472034589854712856844804808475904272819554577195906744850504464376341658801679114092545155408885524379680712321413227138369200717228364244179151724518712751996814660778090018164082807681256580947072523247073888736943741314163457894406072471503608794778474111956337027583981728828444341832535129892951723943634648675245476172034874499956464420265302581670232488415982303765416899478731871187187074577084607718739975290695607750585572357801973775492270659894316428194718046411186005824835679554188311085399257996886928143824692411393233518249554982917484072794202814667750779561866612552491369143461239249545762598747032135993871353165341559863653198366576299920739941966909520728914289272820087358375390625775574303470659652994430329737673233808037449319855149807465799123489210223012133683427481189177302053235377757231793672803453536093606445224758408150029251647696625940461340294660449182638605213232007326468287237161849353656903615554353073849794565453958917263794240193117962709463005431523302203397474922795073190206680169793196356891456095445667247868238373946932232382785796680737421687314347841321259697538588891079232615195367919076368412115130075930917555495153312329493343783022619136944375110373329499006613566474554692158173022787999515724967198513943033716795400775178360638122506755055360277110381611377162770507793478008366771466824683912146517506341875416525037455425758958947710077199121225446730595121389139879888539300071536798904853002312473077521306298225036111001026801830175999295920853121961087683560441504012162590059928657729742868821410614553287255359523226040026195629660802026284922594546700470103634404507038876501370565057783848574576547801466037432450729937175198996952958293321334652048304934600817674797319294387628998060928190153849197095742534175383228918470798584955508317019641708548139345848175761629820510289911448753038851487397937380150072458857904078987699538279873789850319104523133766945008730729616033241875920371528609566623510095850802680394922412862299742770203683251999231094567006165005531113321414623194726447081784019732621422093769578596847898568033304845893585444985093349603225679424024135915826132613036770341756279251750665156503601719279475581410241194094544572978254933954580004954763151057900044120500297816336420760554514300080746210726778090556336744750686642505218462228899541118854772571756302304767370730650960279461412859693286797269802778482220568263775029720474658460846896629077719204456537220384372574839538408489955802095791939011323820048497464854224848792669622667894259551991928334320538367013796247504628629494365298182837861495080004864316075489497039221769188515577782243451779551364250673027035737578622162174136503072460498352475297421627355863131545069404174573658184426273610580085152695281342810470934289374740365245165213744158822078427352181140674646879158211885805829296283130593700652424697991253970287719708318867921124792766287620315893845838420920190306788591819906640021352267343431422080373137705498638571107719501485198246694479351207942176514506242850530025707164426515583811653509082841727238830732340595469506506632876186128541522061734423811220315007969604406605589888323940857676008721258517587909693256433329062188521466347614799829591608447212974365268834887817436813337251859791781490383430305486869258997797024306141975134384501001449483188302618961881951653624165791300001550883251751231562929315305893171190425917489522480853877919782073275563688142656072886919802252843099204043042510988187249606286358048949459073943380908830271290856555009065216847428620357495901940995845134179768704674771301029099749944431560155636768750645615006313724525905822155747883450184790975176105490572536061177677850620071186476823992449476796419889792600092580872203367960976777096071359057388704071792093169911530789800194383949905325085552928834584609211235020478841660831463924996417691374761481246751369228301525328062000366571621789932179782292985750449227045313988094983364579507721280660388909118452033431248182223691073186733810295184229670362164973812798676865738325782971994075018945292494572501732464337603055304013841150509320810761759841205440029078835847308072343919929762702606096241274112722231853090730751788445818672249814414476838587571682148812391050443787980332945103356187656057116664857334938574011715370713575158256212339660131923244465277459191012139675573974307845982847504521629419584477215337008999601229760770286473682422938756771017554548249164187874144022337719057315760821120114959451550463750470329601562302858932914935057077189585732984707508632098918393466164876258275105120891616379433682571297037958608832149648619288528783886722196356504572921966256528777141270242185682753711372434902631436156025710284496654704562965251639654665699527290179891617696296144171888881357119079432122515644916544090230839446102150787917466921387281870832190931619365837494625766576104231187062339292899312365104038525814128224877582256533393789375322675155655265477998156103869826870367280690031592254085554517682909038605806425298380182772590787207546745756385536764953647978552965992553009304515188565209330275472916762285307581376147974428257355310415306023522547968701917152766798905797123860234888146478139481157726235643691495370576813449246886529006935050712948258419193749910341315735460672732071401366512233176829595304207999896371357946199181617839762849673546794871990794915163065722789161650630407464084529980185140025382758277484226734099835412669390618924148920745363594586602182609480189373906179739874882913292201657520714041449815690161407066858727770510023055719674546765516948635977221331966961665276887856591926170238222430880118391479427897437620140581760780665368279504225534395312922961141966934476704694445770211833158013803242353134039305733769317647797132941658996785894622567582144604993610058090619290693645555125740243146760041160150046565692050978045921822017704374258892831009301737361948284019903620178506870637749869442643491765171446184071581700536687131048932983716290071777925223103131310319281079061222659233715699793397985367349873487709582752357176639607008305438434301239964276393496883354446130014525332652093257678027598076786812246138688254199739214431580825128516111541652614650652693988607716431227972039634962135274135049020919697875514102009802554491111148390617180694609940212928435195678346822698383550034854489719135279262354977694155083978891763030846488114945404835486131476089076702131000536451723202887969148967378295220627361213781320752084453433002185870211197151693052415003903237100669035398128156491183483658472680169259564308014912983369457455751370092388368209059328912740538357644297736934886516250540206643957697320649074383754676216703627218123634577458735962013262967769958360053095092891299284830687116715861261810598150756191906457067302907849176949326194266745391563363389454002609867233524003347724574832737104148851748577669702203453597261218537201147085085667377181571065670114860909411256170402004446957492443121426965708633087900920514578014864815239010309042014578704804352092908553502747780065298575551300143261457920580364844488624538974990612253419800849621471518975689028340866209898221515502957806673376995771875727773283446556933967925423146388289108656635120913045332311285538959965957827200055956304135148962959773668524843195621909315662059489768086819434535061495858362615191723028658614919572026106789448358818654684970651000250417266603357248592764324559633386306186062416725367561472246176216954726060514915586103811135957524636375542468972364775507358943141925986662923324873803846232565242205818447412665726360287853039307500729143168839414051915347771123877034360481123862658311024795443725970070029388470292965224283560761657233044503735553470726333129418352859988240369868334303321890965005018381161509770399530363436049935135475277090676263501247623071529651104093518362748560299314832404845705920242582601856342695704613663234731467618315861830454411079363472636796789322276147477119379713026528549263993694161060442587109986329024786980425757288266272142455009414510810429684505495752797405419317346560056818259450101398168050689909531673165695858179965343682829481193349286952249671457501207748194885274493151582792108219355171643797142456558097659670993461396824867817547674086833236638981084550367756447227358276045315087762180956283672443838213719273693887786339616878558134260451504368466541538929207042447698183064190974002271047841802001843354117854427896584194205546347027678834780947420284866078950150724787492124517932934626945880273555358788845956343691924174304778147399080758681593296231889144945897939188134022147325844729084903688461882931337448607648679457042002718271974717274281052732150285683889626625190845809948901897362979327486047407941711071316567727385501073852035105172563197045482399200827656940599546327564893885368823585389380817640728166871404053291785186796175918367850335051615996835921079867933799475216997747365326152195280173621705850303540960473670423456529382688508919020857634941959876810826403887227484216875648564337335542082027404914858707621358100162476777066151554016662736259675315427418430893434049427341915095793292522672281095787112348790589329600412423648470861839396723282480558189694342197372046612349564921407316556226451362583771885268530204050167850205202026059160249593905308126923316755187491625695229998068123714684125091866797884711209421928003561788695507834710823685926303864057108411206810707908842280418367256795339164379521334092765749266473949654397946564510605939792294275509066950012926692168470403526408240379118798894022676402013612614187586535725921260753525124401583900192853152764931968505605982636165453254597612520146893865279898253997804375281676369154157571704138561490744931924929075328957651081678426008536018042198187383441257489788460565854349056013499584406040815566397006075878833358994097659276836461610358894080807930305834045184439072680317559231546691840249501412755852209429269781253038862376597806576849020916177422767581897211485734750282848692752536385011000444928640470335737505796709784211398430051700066152752844034516984489140371791607513654918350746594714932292734837307037849965573587565363078046546564788757003513793675595487180615488835108091304984176958811736218801305212272580762159270124873054598913039623307226525992352317943375615486396966666961686666152472894953569084940704027601900439002611958961318341031625859349701488805362634667706693635687149209969993013785107091001424702318708381296068707274732824775930106498087939712701583428249280718178005097388721331831958088534239018263729583553847525225478845785449991309939707213676329440528953348391299224552311037966454936611642608801797771438708912176423267739296368665910438827741411115862612849662351604931189811935313577941140686764248941178927849496899886889124972946521665857977246287619004397823371095408171554668536386575183944150074823944792608271719226522779839440248201470804207405792499889906606557233537749205424227910971462453787101159098837065467552701890955312595076265510187534542967267801967894463486802093210984224478254389319554823702880553478792962653823592590303345017622687296692263435980227229419200194983639304325257139917134417492909745037664346847928785757132489812832399865142983483943291405291696173347857691836856781975673933370217777950393250770975773890694418945734303774875584069224104821175532515024829524901890347412729855798628874591743223564969457349282817981421649486554812982133523608231210596619575912801280485167349364488809419191154265040464141952473584971010043931081365457979505165498077775025441366540310100770324107942214954785886230174498619124224299913388624992962936419116701035324939202832523704662741868189313159225738844373815966770720982730824544737328050669355323081101344565599778635855609845098299754133400390287715359018711235698765177264258398420144237547128691800217727007664100217918949860071091493849812771973236258428055055180373837976829387780855197250537305171456098656984580167241341691763077932170426132358507329486965158386806993192737163041424445019012030253552554085239985773188820634927450515840396923200790251468169381540563491913894668796965872733918195551703406136870748620407333204409046581019734848553372236155642397769586702196443326931431437000217565455015044725546644015881123130596932430376432429010248881316046887670061038804340082722820696273087967012200195366536291010937173659642330313400618692075354309370872017472273380315894106856452584691285589486487679838037065531902344745361105637833773244397734565829272832023065038151409667983036182583811081842848739449025746272382827717645438146350938445710778252630218160872147037961169981062094815912223617278010936817956338888228746169236406019738261695743337255318804458276680299209014354773754479665323621145653879722754628892319034501837568401911081537461073711704554837459754174045799067907902244576214966051578750640653579209704071336998759792100807950670104619453681693224936128503815982714651141383637389399912803563089350551120356033701664186323529212067182571443057276546691693741050566931517967857568396670464390661812170868343387545353303667624420830819012756544975266576241902115635106735207676440535851325734553070067571537889164474376738910031409582524323343498718032331602711705190678145156127212264790295437420356101975535721814046583215777020414060930533496732844661684059552156665830934066389276894775305600381606003453192828578630677576477510335437460759753524380740361318262829215118684552909331487491868685228626983990340189976394460077762310184617511280282269790773293837319037847922626026376117789347010725127001365825920386840832935732775162060462390129716627494995282471089533900580546008528063863581477502833153741884330375659393577737630949144812583394002079629171151727954892881907026547591465283024365460719589783336062887438449413300781366475001751460700731608919720840968044886227026384473034656517479208145086565888262291933607048457653556110181749281017208388296669263099206853724051049879279488924834422660704464583318588122963844186630862381752406265136945147087191136434865844829915148075508781432915968924944598191141044733629809376990904671887814669543864764959111941368616080455590643802936323044278696116935242896773393352462971223305851718591310168857505130505750688385591540141949313942539884810793396342915655314172104463241677630717463372437976205689926389184281562655226908373692422309849721465496497613603009254416269936990073626140197741107679021368706491532715820682508330796929169098863324159791790474956465638696255867249145937122991123914085401432481668488260591645981679125657031501880396597716989495402925835574747439648604859747662816081139398297059486250210826009327263913576033393052209995341895964237303572112575892871548841763943593274749946294294077629461521067767914847825295426071787981572405032595891820675695269718010272596420511998072322198956241898851525084698452916751405660173549409493215060397701043150276874416969110348775770033058152946342941318183789219278980310245951009329235940580378135642223601793579343481318151918721847012587579461516889244037918951271488185587228283341854845691365880148182330233225531077492826955413622078248553504982448663319735229522236262632948682668798841146564889788266253242963716780653376491903170350816638047790053450445804441754581351578975090941170245552143911538914695542624431713399160524373740136991648134808355900210111507489678865619951954300956631925542339060830291503365044094184132732806646386184504770485565492335957310892974641024069460137560372007174860300961063857435986592494681536200411433035061208363918873965554348151675648768810402316187701204978546995339942771817537038704680955193177042832855450635799967770397719661445422699809138595696864387482119614790483214860446654652311478397193010505014491737026744303254803451365876225237261440431313339887600379010222882946725042175566426063101776487554002574910039764674002859778041161839839710825859521882670342419588812364362538188459935702400946441875255393804304381782403941323885439831532632256471242653160393833977020143846265131897493981073741653217288873532619689208338702349563408704402547354044247997563672138811093914412433277556520793648635587378656183263596435564923869775793585687343852680764004133109672564991533105548124009883264553994028802165913446547575012189700986749430483196986170705596962720751561570331724507664228401561677042159521528867218767379541323133622623000280061354528255034809205713579386263949418339459565561366528382790232494800363607836109100258861682516311719766511739131390026730216101755037110565164133389365119820016738312859032505171540264777380337762472701940504901085721279593432086518792946975622150307626940899426231914757710307402770520149408992107574437917735899211588335534031230780454475527873582891722478185281089847073294872235162243244933023467159333946280804528875329079905601462731715827749653578355564010348166014914342649904651513628715379013579557328571242104113143046583449507054760131856638920407767370801091546377711907338638878612912345300205680180199872244156142329780301152569613619341656344646609148581203592692233109957491564257515374928710659771298937667613314278700751405894729213449339456842089574339137711903924723622023612060349629727294387872789251875975956308030099239431246227196688013170990231815625192332351304189908673692941133317364155969966498128662112302765774521043353272161592777034039554977568776997816565509912386330756423213712527387916201270741400688490581370401777497332095910527677422405627924388518608403260314737791570381439451486610575524626608960366465105114409236898702028217332866893995607555646039436824157500241907868377040511011353246233845477331029672310478981714338252396599106547872011272629434388388977429864598133099316777605215221240171728143404877574463489296008730447006720418909952687819863050769926573208012878929405392016138041658576859087768273388727314311799540308003309249692833269650554422219832006847905148359624197101110961078164466116734338104304022404814857108192663013674571028202405374585421085029892422951952121323345723981844800503769419428372300827490319125020362747887888500956615084199546704833900329248517266109142672084489456435656589695262546790141208602849590803493181574137837440531594441802223659996392050265856143829057148027867712919724811560194127811892830153849199178816145775210429005489169010834094581837387241909574736718566313906886142013454439965932227463235763814186018903213689139770864724931299469445095473515692567745714036519161263338177361069042965288264112138286046329865928516264558643001523465347351083565219447545065228191243799763670375994364043578895977375408085937101297574951691195909813830984916356576021879743338238638295692127398969685196958780942492891491181333256071585294553841656044094055371035445540401073210228988139861263344460953582964090896628368512914887222367251731092760483426237234547148995745474198393265008515900835275150382305934468033835593646498576115275896729510907907856224846662430465090596038177209102577664526978447495236106105513203779247324660930918948139238885186928263489904041240009652242816105641685742348355957911553141203351100926298775884034547343393373379027732335004618248193145754794828242572554476478147179466815867250907259414288534886390229671592242865040443547427845746498796165046213824877218964443076584438958271425430858756540475799140174116215344973205856807010078140212381498334604898412277114311149265134236033373363328475120133496653124791236915587835956402619248447609001460493445320480669917352741247785229788286838007091551281869224935696398890032796175447484280569562733299695301283659201323984842514765623752871176586583627464930435969655351324855426644744012046929449706330326561043970680520354351386346206690415438406943986632838467252623280465955201491267574675587087090847307276767117572347370563823865485834250901697793771678910321655836281405461917372919153272809864673347372098045904226594083581708113172286528194794632883882871534211217309344969684071295509957467755303659737087630239735982453916211370962218118465246094437884705568868628271141415431068383918789806434756847709103604351584441027430539984301314737781540407623097917394712155092386759824970726702786596142613252131407543717724620366536180900147547972737345135035333256642861919978472515731243133660446974478020380432926725532002438328997265622534086058899244088464970471187783800483243264043304921822507645009308182085201255881870737127800943483181743829893621059033415325604128453994735907422774772121034467103586319229754373255412603853628624424339496896167999949776177946425884028252383760859043278268633997014078701861217600299542540205287032093579985598805726850825807406561562497527752242128686726539581428930962007749198394770574828103274804067469759868209309117835797744834395222754174540488363527527277315151775338426348790634497445665308793555314718450694847928924491095875138254219745157293790650765141663610437599615033057740846334403946150298087306185919068918925910061060566994534707287107265153180164253566439285652525820848385723086355845939557185602717000681332133805269474625264134306707669124621765822668712262236650016972427694162673504678486275012386010165962319237644521559190942347234650929960420687505752497523114224084666596503232832665793282591588972707228291254534664742016444697681991622129343695314261174468261493539957878827468866333236696467077713318682690069150195944283354324737477208409789803639789639930177266045209355114654212378692948818802729073291712633124694347023824661142518077803595627463836655943833445608400131651126722162199144796267609467629697763979208721881635399452912638568097081440117030298541408423120494984813946162868825958177200166651179889279493919101268041289320946003781526831742754183422910470282406050143932673870226126779532545995035518320173053186385604469020373859427385220940075022563467802648999990723832057059664412734102158871201685649131883274351681894489356231406628879396242070017381646894567576962183532105462208557978309099491210735515408250665745461206689983932163132191993837925231013885106096243233755037493192405412298269443688645293183490440199747936811695400106212627632548795344434268726409689960720914488927257174337718011189335765856460645904514615642096261477941036779709277950970535006197508409791623869340088556915110232530770524788072002587930598925078217801047356655631729994516653653281655089844488545229236778761817133260400489876760663412816439157060616352824670551799236573117785109488200952145925871014315251775448536349532258570163400238537016849636035258001198756536360421222743462237939310609803014073190565875425913605418973819204651917452695357912083493046898207787572732853550267536318549216197712310362327762742203382013888936806442880720805493169010938840987212923094490672562283320806530227406107940508763198916149823942282901681441631296912504018113602395684130503718638813091203779685940239620258384197059580868998579695125862900125049757364888401609513949854890406458890447465425879667652110160861946317735743727706385522568740050526947262843898711934231138862300852188772202045362423959014220772415977274721479139333686905165166161573561799303553691670604898732983033696656828251645239732333601719677033518638037252995226510820051069166616065608634526487557375949682913286640228943850665036997215686011647788744981811774665607292385380352055717109515058752169927214050052258143941443353409806055644640309064229222929709446874934420175568237757430715470521983109445447879034512031477253864876526316353203476781170689358071124570690394140876025907576398317433345201467243347355059023437857114349776258733430508391275045956798727376709233106926236717739960751279463900839571296677594852893697099076713497092283801074571857167339021720286976782032066549795018805478077116353145249939756355125717933235700083159400836074731224812022817832965800078851273103995479082963122642135382506559429015462257934751773520573024183620478925122511688940642565756445923754517788362875748231381195066303039427288867878462644783841169212139608118058429024244298172539568077891914313389592397766099698395936537677471579395480741891063204044947130629465535956544153707958427311548458384319459814114931982637802234562031952304139618784960727676026614434745104615976631455006056347614622271333166952578048833995739424315634341180047814430883801298710245841869732032924038735744229630718984658323696496690819964351029031645674475847523764034118116375786932875307002224489678561440018681420584765200016638454329011369982407943415502992981537825985226961639365243653970717147711755620936956219267072837277950950007141906836701888751272668189231851685153850634425081808684168301799882791112804111789238826049804345684414083552751742955091497038020079309090347226852968066001948852613601012118324716080524779397147858647502673954530998434460335876383338775988570529253896335377454765956628042677517417322181293165105149408543588158117800611292419559701119070164235744810268192899686200555139951948364285656952585852187034617597984033112895626446720911050698991785900587269061370732616598818307495667299615648860914108328158296764631738808220815355143835715003401451982965649701604412436697118386551868542091274360664349881436357637560628067182209638275078327544449590261531343013157555645546695174719085226455836600180231863824357594239985622988594365588983941430790343031657126817259463945691188410796210882080809363199126871005336753808729484432185134285777034717307526514950569541853585561393804001386551075800672511208215528950312221093926881178769612421343555942346536271588029997408266458629816115075535222838784336700060566351223297435610192421357475286956095455409589088926378891186608867066161154776616940406661514600515879178555191321618473917653051119185259119322252321379202643362037319234735263858598700294472220881290314008958428492038656829348222058546836399722161293859976517555118669507436570381173457184998923932545000748147265274471712634416874011714617633869139256820451607150262276299625355548718215738987157078133965178149105434931871237643866554702361425572375666745108130974344818064936372829040269817045773956626806221477434944218107036118601495275518215087962559141686869292517386774717534220044926035233033705962805426777571517199488825962007515695409287851383029882106155657198756689325380140023425658002166302342400931949844091392181147121347328106094029761707381378927390091432401137222437212089210990415444335039279229968243736950284482016604959682625719551504824336764493895189436647692436893587158001635945447910613033489081426251343995694948005980356102184817048667657310904892118205113412055075609164011973245939324559613812669521162909370768657020697630103656042522960835407283448509355146492107087197022967407883579078548581733733191147705538906403347099695809217834677000976964584819284833470725970855789848472035953489355799699905661610682452421781223506482443851728016114452533549859243528915685087538198219384195360638816761662157769929616230356123952655503760617871150372231498469517805468866823508483288040638270399197418167373234520029200167210769656045879911180812747460798971674477820659100969839871492599168759003721683140250949105655645672361822657181754777576486771360610719565728397869417482630794369753340689660660331270637088634529209073280485703205447152729685051774064450266876603890371577534985785211175999179287707523398557324818199526868964364921291514386969190822778498855270753592505107366758438757570529745250497975323615402962353773331712458799672398483924604441996294928503360483988474567248691588468155961463577200344030061869091914370032312110306717647970852971414227894155489318319658443459583280531256942495829022713343423481205005396547366517883283008077574147276002603883997153130533063829901521722664621401183889202483170127762295667596159113476397590357247233395399869561797752159374067947428303776011348246793818445858222304212638521965108133226853137770697953215284162391879309060145730999367294385593789889837279314353268856602689746320424614330094783851808012338768752228363210802541217143039648085478864489898648948579255017162554049921930854372627595497490189856464074469570055255119280205270896160109095207146204745715501234543415396523023583073085140741763073816854889543086756599297353391858957603806361597993309716240962777275312758706545983047733443710749995704576642840396272040966607094717102692095436672078479717774457566815925154691529734541733844687536879905123597827718657067388499899665444377460027206580147659343782389400731822394368052953926075557062216489729622830970357709971897572166595280713949327093953240137689400653846087817683391985539742260127296445801771357048414471108033416812092781080135255168219940527864072309101847871968339902088394345375180838871353064294183716828557233156317510318870975102916602752350365691338941431062553115822373036018167563104601766623079577440935745929866280989775120718256100821416591710019813011007739389091288007690852339852566179701238323113841930883669516955479597399413820322201836683819301779322439776539241601727999620394434020473580746754483808041678005425408404466785603698142195252714108001518977710324000178016826652130303477857819618015305425326850003946702649812516068753725068809712345753901544740202347298582742674271909778232974466144551643311609057285243170383850624802934046260685848271150629718543285568091433830871378776947261475496460219131216775154422725920231225166521787836579923330763517759806697477486804656969803013254295163111439974227159199755992861612758426269219602616339934608678555588877453361106406605005237999625447386572411978246153865433604121757387142321791254301218292510126732741911521322454595374831212698042472351365981923344517858445176745917400085535766515032580414581939165602181729603145529461475598531937565220623891386218960794647966186054101177226995929213774909623855013416025073124977644955399555337699399512937691921807027074360020452518716795602707573975092610608177693105452896987602703714196963759339223621579901724755324497821119504089179082786126021074327949234424819588802667597622243261658746298031848127350061345789143973378629049104008977561845026032466623735463960058615843890567243814747360205269385116254762769022734929668910475318485812701334309785940556127568019692458716075074966975168970921352149068437933560478651919187473566958356423092465495361297236770509924008551528984735934372211750041179582366648279631981802366823218417641422496165535456859036302635767427719883326634723087722031976104254115285657481734690640013111871687559520215811939074195495703654795582390603241721684031029070688349129299342550064355287158509478745471521639380406259542757916350372436905072838468289942813381136104911051930740483859954241662672683781416200273363608504821338090480298767313647361261500905254467966647531471458467069670741580952539104617728977496552136102810629341542988358342944762796518583357264388936244870401727439845256221200081580338687028374654301242350440270650554980894143358914063299985737354353483050139192041532646309935597557028308578882209947427536268870431522721231541702039131817058983890041682364111323275741457946212451734809222497632300419206379840390411441072900262017144011643563730753393503864205540019438323976118107954459670803637997168396818149986718456158650338346793935829012071339621984668674783694848887394188075746584186653932471074254192708831518999755401602982864708496741570424707335880946239203475768183853784024628763391631372870024378363275644135585289636034738996365309648877443306565790940359397627542690833840981592060755247787017249708427104942616233226566540177521965940023868621006609801079436810387530020871257985540713260758519348310522362075829838203837908124271378158853268135621393556557799145806521001534871052933579382113622952074911427861223983443039575167504188114960716510499367589305538886732131754734893506813734555581941265878817932825067560447211665583619293654939204798344267184746779976107240134238886326503346931545949349000031542349389616967374980908710450653644418353327600910071469819416048965003582908466468939460211367454232050444338236967717930174021090917492482931274214075639502625337440177138896981820160029919348563258004577307731186305603586600769226425609988087679219369209220624363909556549176506951626796098140632758099948898353701185866276062802605185945410316426848138027814985043474297125409966386130862355758701779153188292959340781950554186475671574852195971300503894995290999394137337066714250331077586094629906031753830967395185560303860852634125159878757565355784338204319278460791384537549136975730439274418419271008612091242361739858872063560162725822332638649640000740214658157384260300001272652963905566154272389165600477560577506556099166138051369424671390983944512669607398545871775055644062244545391322039105268910888327099104532445818972725013225236993899584558232815759204244068653410641496172101343650096450856316025571058771846658417539405863097712977523870445344415321685090468842161239336329881564744813904277167889181740498812440318011195173560840899370114246456093761836879433615998971346781119256336527419591074738746283554993091794047034705075381014040502706263899527904480741736672549668809992761011551341875617185292074267836961431331970738539596442291862359089232334242480032692798072333326632180824045076562129878989844484459160838577659874094453000692684686469756436954619948354144332140597638052726373027935403352947977793724220204518942194687670832756133403498529160199612745854021709966729933478773864650383026168584089782929023417105905705089977107147498201234073627727338465338848796641302750446506104639895579969696682469621038180516010533491145997900570875762841007639871196318173794408582942542956253469372062092567611672252447785683840712695146055322785721090969635229441966145321010149191664633860864176991994392354212303020600322373046191918356844734352125275675102245052645603919419247946182522219420312744666573313164568784661273553718897530420983467204274948748229175817875789067883596981917845764105359966377765241892810244966080971471384334149667256503534941389962943636593495867339301813403762047244982415783814403435679594284494306086768587711145398941071804128525855357276952864700627106321448897912494249771136838729826798422908620006615282746507935574793790290736773514793455128957332365531173677167349787614827693821758157672938305124455337187346601786621699584552462384421359854495470556442237484629835476653700286323031456626205224608324818003039189155266936952096272623117357425613829921874971216253401210945723958147217413164945850753443896265402877371978640282743274918844752611152916922909681577774083439918341135746974583403302956619207342588137067886613976418205960831975172125706983581174687034020411245617744968931445638442364989084159992483287367546594202728313163415355563836901692666354877965758061171467748180670666668605604192285905240433872053250228178163716249213537888371200047577005041689277415095009480529777691276545312195363525367023885038197003922362188426772370080365867024807875274635611645419768661495296145686663217802103883033491715508888473701466498139263430128273711690035540911310547446703253881946573324862971328041530192659498974115798005580587282417486432225015349624348141183462737089093329865366072098678207352485653894366330472828549559316401319531594135509183939985556850107727965919133183240082609609685739784765483773609917938170405526446410911529036304028164776278199731453435603666127130991393453008621558123828772337906772285904855020677756768853855157808676963875694339195136837084816317834027982143817912875416215466437694016129937415405022389814578508877143109312956545784781163485643328654103355355404739611872570431000378155078962439892759939535437116762935809508680915577237246843410400960846453802576324157191251672027665016569119780593363738471371202466179763453633833588428961066249514006734958039258695976595427740743695441888075584804613557908057236644243764470975208255134353088213880027389734942373381779807587389398763532911281885437244643928895488683872633881793098953733562409181966461635685467635732210383729680293154563432998160657769477887440588333643481405838651226222613475338097273306795729676826632607959668979827058280163250877075430919079647994637336865395405508042269247031032505704254557239508416651194702401987513367191959467738829601921946370013866034608102280117710206433000508757648557386274579417174419616513137431248372762019239802146785878330866091181176440823613105373686787878228136803468045455979353462146420632526776315043937390364831778477792421192335739293187841110908969278324976899207106846823034419719108474082570964242421272504071635456082264036741361431676258698427965535648068425123035471043476369304180165323241399628660374532448348574858640279503718460711027910529814866024386809901251363181892113752263420967985827385716591739618070984694552377335433987118620710391048978252380438606404352133896925694818162215962105821653220469629351234147763962116158811320791908344997872852602220777846174337830761981965021148593341323410600849453085826105652092303766309943654506567751371787276403071130257723762618895847458297962374824731086046832302245524881373066207947486737054745982196086121430355442901291628456985550778145413066383658148990265860578033300941609728699530699310814604077331628160721144098965352711527230111014191517022374723715541413696913060650474882009309702416157311307820558191277660167875377953030492001228064180966925564012958787358290538424073004221768959968437739413945631867001101148373599480002407947560621716514821299708262831011430823195834378327575803150041594607527877727382974527229860512906436628274742834739605105641879167167407059102504725822762191582386015789569590760664950146067589220185720168909583032556789142909143027514495460538348132118865082507109999588622860878592929032441420446877526695391165819607667321136761784653604623919061221529714445730362665840400257146933323110952952695573165859091155821713271308373046182509090010641885296732466559613460474863923258825277223934025279652966607236845616478798305112135566483287810895313874354183844553005252421536308472196535856177310860930104535275501099374366835994529447478376323820166048630246360253805900639047555592333517880774269282090448171072317444416491062406095301120896602115690688146623349593290821505243152222505225050746607211073865055392908890077988546573653378927609867508684453864882692437341285043477991839354117867140634776975134161211954215661947361868817922667488609988531225632823725368884317790112459379347164433283572939442255652476594116818235098158931357431728999286855642594259902875198058346212472451873624200611392238257036472657323790872873013568868999540257437453245826348693285211908858566874756573856554610295187744407422109541997869181182888797293025789497323730979550278866427402193594461559236647754760068107031852937934172409723357256060350498681627202681323908368317013610588885857686529270592667112602917594136083879389719888575347931088699737924651918864513665990434471025492957342724326377256629310232307735957913112398677198306540616521482187447090302932081247893812183117373437293687994688256873187159650372881770337255003086783555805776124502048626160529134816263111475885654663843842397250228723469573253882080644749573687783907440415167959152797184006689641678907726695915856657429139147135415680755253160588916670444974104820554634909785862714333341300076725418859544828665868243052198957309584677517281759832486927742578758325223821381599049224661157225698840288326074274089296281154343823035441642891498482855575185269029554447883522148854637684593244336045228899897897346769551570813302935011832366479888179134505526858581227668932037746367644654639742123935768133831570240178988820098036057080343576068391443078417492110362247241522370548778346974574565277878086752162550915915559004245899483190622778187110039024989898244959342280221336447061819713847870359718522026851672016197206573515757907718405872167153942228428927970022449449562805156734056195099516045983383886126106109624135208030643546099632649384913684708395699507919472842465971664002388751643821664222706603474351932694322565280391660094800549807345020966175680187629060948808029299372632976575731613661527748662726345269806257743007106529414284722089465901427753136140680330951790997923632229010806786392849170984757498560644393076474654100129844958015191634566012315079954869676882202906788579766251902697083172680604103750170806415129344821481665155506691916189994278698338838680912230668643846191624350873468887632903577312405829761330768845995814940034722350476351074661327383603901811746513858798559013923743843570367682364112594951117486522777095811224497231532336492924133633827612035300496759086562808292062057775086200390278102925033207251675701307912021282093928844101340044609778562883167393368227121636672551379265109872962318985348643574662749177796832308635576158061922978449069275900477411753414324964997861928324328980852913326542781004051201978541401727815531269684718537976653630663188176917572677393753458800206056703395916366179292506026466385000666235495293008240911843035481665860875385497651110838006090182037461757268842431661411673029850326898375639358679048919138946787763504534608597824082183163713731053800201466240953216123406210159303158788154206287834615506865700756722201162474007148279595683514055493433358606593597000781142368385197212670385081013113615729738946900109725933826723174071498785389493598589570825198468878752380057736386258104489096538222178226008186960844603183167089665704863417741445788685845274506805432693620105194068116312030629290368528185885136384662543217587581905625958379044694201659582666815269451653577281610632702565830163722010865939915596271901635346603561610896623242436860725217990113808046662770147860791809032868972936578423559661109208394205302593565215552423495837072916524529156812402367086049853401218592406498293545141589436353695361889246569355205555123409633694317426851843687605481682667548547780722741295819145336828792572586479594827593737157503589910606547017557275156636247124670933962864689822503913432747739666561085959798823923179444263901651696949942161773976497552120836138707672870215781542925414589692563433303035068227331190109127290703321566543889042255718905084585242604180917812095406704350848812441838113225838564190087501434453816670142234312622646649248351298765090353844979148978279449909280523223817291007301848640186864464876860407446049435972206259449501111831429488561500138710903809249304901593067551396072025211952886033592341486591434018262161084148128616647296559796175192568324767395521514820518925923379045083226786910903621598720061546033980386359442814876698554900881983395933591606593532824000805122101838885235395469167551188800135142055321526233326797552268803042705992779000171788568955094365318373155136825243564485149653504038990103701445440804290058025894289427847403572835538580253005763657219709039292890219036864285881317950522664667311073050468779539713200038854962879472664377669868524090342272603854596529734860081304019628480938420876280211417121907330769822941361323636207059095321959346183765366965304574362569417237533535305816359624132773529494653790842719923012412627761013921162672095046315167445113354468470874468327891604556542020711988842605294912183589826857739209116655066025180700911108467910573455801570860366690027298407682584322084094785663527959016184907272799374084180420326059760241352819012111474615752088532674315612705281549727051346584948275514940508518776727441714393607499736350116168986133637916825804144652700477374843117323502550659300153455312867830658625448786879067923508553926123123467021681519391357122312977906166832143691315322666516907126800718369034250186402734749038936005084733063299607818073826573334527030799814048983263927627419018512289828504490332674162724790716371546291084680430240869278696608514600627314965988539437092080570041542352243271263513940212807675765249072822188100185339738157459290143087474308606539849070889414993229261439284371950217807951522952710019637597195240851573106762340837181087546927788456580981878514336059084886657208186650142226847177696011152946880015192355005852884454230914710472562710853681442710621533317851953401964926633725110282550360223985792143417827645591375412688501376357958892725711790240536700277004701370011381148335693436018375365827304414826181074978618327355904693145295329986602474905056042858993078959978232502700938935945899198595711128038064898978448970037929817642894129197688887236041568359810856693492781315291638114332887071266966102600943934890786241054283487655678214294455296859496087919692282783520514359162229799208974211114198888723327079157960876311532788485045288880203440127712561950708900286903404321873213187588692327298518350296515626417919569038602780734987651406806112509256085486761282258836783058248530658637914577458882746106032342727038933032632433319524278972997245553338437000877961391274135434417661739376587131521352546098260161832725635573336135283696825837977749900544728926069604411732018204007733611212055827358598148338729636010151696109287452552431844439328818622038815894416610748766594766468675990274209356551486281041081999526131749308849096697704153826454860309038165882122627143788738208925215481384986082429908733424360120517593648680771150142759295570340071137414946921073262295911300797853402543834854077890632663673832795692017190845471811254872618145867861534508824241927497221395465944573860633063639253221843973218862624728623755697152818768548259659807864689508870923543917915139800785092590060850310646724201984280067660329666563314439465981322573876967445016855511287685954111776065537218945698397481301291306431798881790767402088843646662792883973265242762637754291648203058717603842867800335384374040515301645167013749182301341084574994538780818567757698212861054040321350041268085621473448152410392236507364607711968381720163253014328756154072005369209846486259249659605321610828131167849886127132236327771281887192031744253436630823551239775159843708480416983653167235559202784562243866224395723115464093841651375434872174766961610250338543511488413010791299736716923396213389394434889024159532229455289162426678658049849436989730106890402906650672880627135500972656698011199293256174068318249960433842554341044609556946039905219538892474958482007800219808619812328491691240940770698700632274858537425660015962674366246938898191018518382735358352268049568437842289786401992285720426633551150327807509070209157557903044799998443617986232807727741637623915982623983191088381633370370434304465704106369409623970222404634994380830486218988776616704195973436115782155611148856257408093483942548661397342289271195265177969600130189971859104098101224232237016766900379244703940163986720103076157241948249025708849612933859491937776320443324299615263946050115869374805921846804833366322627180920272162685869076395390997939082818397922428366286355576767487762432838197999471923107910832425632129940858017483484489675306446553742896916885372559069685274449236234803277890227656687190336973175984320375866850397475382263712965339693099815864209540027315316846221666529394025343760346680902331037387575096103007449677668335390454124874646686284966769215374592706286892361749766008421950883621070571148903175705927704493094780856928670698978982049942680037700821600305078633384356772049303688122735562220834661988912200221321073866193203995577947105357444577603559457775440507918100682872683844196368030840003006639508649145514542179141893647769173668365743948073831113305672694063561751189200092894991569447919681017741855022570107628936121044891184528150974364895831460719852790735758183405234000322259706780151075020740155868205565830194416742119029923383861932065690650792311588713748064553436775458601241210295068017174021835077985908699684197927914250284559647577557118251293241612963561767380750977461941881452977036567304126914912203435972399251900995358771690127333014774864408554293451734853004805622160880328432214518010794872122058394558465505715612075732984908314230158814079978684660543458537962508929364865018059061003173137633793657235251951099325107247213537411586796356226382621270951457865090229848902178292637135823546426971276525449348425381437936002143249252806194942948266695346994216283491170157537537221068153463850454850641437153727316141629760347044756076486659360762016758804286348020583380987811669754151398710363471814679411454349700409349718521446202042701614346843501019767588810212854706964523340498958141650613736047079907697787326192792556902999673098661775690426671898222160161228346862368316461180098638928087361210056059166386829554999595827657713417979096334780681192407742588129893794589252193783308811251187811509853502333274452721484209408502510993870277226499551749235190065617360770419285822404366203898395927884920945396441051936967625887413593941922371706400383187413474064639075509118938729635227852152129849504117432697176454701269457446969587310106082170151202201208966417216581603636054530185715007847633040636184752791678560905873443267149801277779295824855310637014936013212220436084155833774925442398032771947009449187053370088235357745491818862881613577097905891546973727418440220048599015265148131349035179142476304739217695635610747634323491916540338777867422994882481011565325116812127115537917475656039384541457964984936276368031545246067819690839850026538752549502542400542880655875435540967441331934215938966227017449023098678687851349776618252173433801009795725337291920735520187774898658937302447067533649361700012342045903975765432983278997652357165528342189321383148953992107312013901821466787042720308485436010686037665767809131999147732301967357773322315940523955457831412864906086248441953478403596608805284934293900113539807858587527796233168042342796083578494629885515079511566643693796237440347593642832227435915652013344269602658950816672989726043856787161988122896910550612968675415050841523919131053468053007584062790281691902796051468140886106060774378251087985008089132946801710331126938486087780438741096082896726441601827957566179383032586066699223194930000751766573510881012531937577025813678714346696618839921710780863885018715896201641416975980136363324986479057486600533975955220666178909956056932617703896502759339608851464647738516152849238213018687570195082825146440842743551103047494035119897041300452180882250041053905358623282660992132839828461490287846951841639224366115865111526931969510154820219220404290087462530388340227401428974688926300631010066935722235255600280134275955475449042274012750286477720302652550502771273076151394404539994521228280754915116519077653983530934887243695661211996857425239662802568604133958194521415092258287881197212825443286594046531733774943415314393814035499907845694137505941904061743535479505941173514627734595510455112364071650136386603768498844786095269523634140464176392111656355806586773616442638275192078055397021234554078008913023554998502372018636473471469905220626704013479394599666676176489255655928606062708953507423421226846488727960889848149917861222161597985942102149589122943216727036281014764599103422851707401551332598243789591130382840915020435419323395595617299629983861352207356649031397995268490679494629752600552593294197540503031591139523638324136165755789351651219739258053374206310077838294265958847239062980760652834750017480346614265444397840753558872847632010766240977976667069719570435427238211677003358245649604090953918520076474088722237091364471473842142452480463448432883131024331255316703774941897525573686694455994368645100970221088735850274967143208387923257469709957570561118139720800652724629245840394533212608849107735870115144171713653775413458142481330279254976418469213865997633427305717171363731910823282984923507114258613365917403721124254664385260428321707899926509718182746858933601758121865836552029067837516249759679032758240459852842709369171873229255944144813157223406846688567869613941056576882962407021783344570545396985275746404575837338228909562021613868862341098729524305229072089133664561214017130403307663299095459410595988697190365278767224572504001151839994973110522762266378968689043852272883879166522291956991886401177365045486541909712922444342937292049956293942803321679560736931748369071216730043701773136324227314136730419659815259738763594648390307125595977197819646459290803290049601369163827790821799043338828777418942747928701451726164152717573125811287904191112046960957159651884464736723130453690914948077430163201507554742874236366915193412798444333949545026879144385917174938269998025058462733813570475158301045672191422974044603731439839880505721487823288296843762516663934755204805643178796168239080513731943807988214353475610226019743267929117431396552882676636702442832518220772585296080874352474522125490978604377062396779905543653446546092538110332031841418647060936033050355667617806021207944975116296618440682225324974346347728434970588616665612209484344760220141027375167726958857453300554430294954506317957038245331179678802015080316354620390202493568382889645635296637050718140725436753095323571063952265580371913176287700371501466476009517102426888267020594835271452425498099022776330286893132967137323309854978779470178475597110827582728573250642515159351885663949164223622062948935827922626653735637773222642098631566181280800522050805069304846507158279307472973954936346824875055880450997587276272378937520505842930305450393276651512706618922120256286086377356764100659572304652281530780545461816166962016436798030273493555727500995219951392919792834776632576405707788055249092174426960444324809218661698490336720863145342783005025505561193379222545884776956265944595110599111970617810084493269025576783083920935917363783601742523744831111450847944700768156436612110477240166045557409230619055737607476225620543153220820365156551175473205585748118844201526648667987916216734366683769411430042767984471493570584143074993093096228311398604591504914291734630076933692825240345937293970307560260831644320984386176569387929566379185207499075615533928828558210273917549341428602773018814613835332880523655326743906959383481308597136261769125219376119465820205525056407921233635920403854142813746308761997583414628140057937417596483719795022077801384971488569650688244617138319657307068811898660171937118088591310858959060957889978716598175650901317355519088759379208270761577116238242214649810465154376019986829681434335289261614473561106984122591432540129473754610370409229350697236525813603970448807716117286604922437357057946067871753109123847043581202368796265428441302161362561709031287013677782416079498147545444863301820307458091876279958478314579453542672196973515416280412696154111202939577267819376597126195715282012597909583618562881340288730934248093895368717060761187332850505407838878744767205864911636111861102682070769849908984636209373816518881432297121556552880172740272475490414883262269653848979343271180387702027675692132032959787640953130158068488326274087332465525072923487342484926125724826649053153242013083509033765493293112426855367690505190946947481627484945584326701964460513970773683036181703732004478736815953268372905795879823797454666844378236979569432590863904969270888006188804481623607809710411176737505554246876528890263010578682541105424993102874109944690737674833762467715416298941768396326337301867492077242918381011810143303107344510333704021636523494620168471235400895490796535047469059468204252799204140197157980646484814064638947197097728598361753590861820261090062708452926712749473524977155361484398784413991563211960290562842114387585344946411685672936207780580224699032423024957237610300149804360549913039130506515778819057574555419629135347655009269149049249458946916325743881432070222459354473114357745241237244995874743303536275387739552976558537303310272982389819701744420521179592105524654233322985627420238542822873956906967896874148905899670145986279208797020980028142081441880158301686660334005559541376284798369264980786870826724116569112378926425900576364551178356669992129624667073746626018074085727641789151495485025594694662132215642499996078576057472114416004517632170843368794461711318147697832988135190495914696563586764716273301552305982292095047286110006920122351653569194780653731206021697406832026051554544624882708750078056137890094245037763481631193580016604874055739489509679397308304717699512246838714768148182652787591305250064499290204063117223514379009247164217739581074465104021389368373848521358760653624469673549490225367843647605084392528272148440790085439101552415340019778970773601924142318095743912486633396577875360904261082588876217024938474065253684184909178425128286848685546376937244796365146890290860641653502446432245447276441991226374526959923134558112207662358041462029484437773045656997866134235743214493421321836785495305541980690236634921668843998588606462143120164538033056685065333586516392723018357737184171174961465307931481261222967756319549208094495243029749141741934889947184732076673074194824128048374730312713851933151038954449352104911550446347633866973797577811377427865526264878072305266828939115698933773044853577363246285328488061574228226318913639829621469113227461200627755363094408260651207897008356178230618060895709108700031300781984301176525393372820980082539462185818574856886791011209810923687443618053690370064849540229273547354691948525187438468290078965274006646316674296123190115845133842488059756353733587602812474069364238744645227809896250171258149325944712242250714573933959755091852986590215770236845927322070763723886425497975890358838240556825326726417650592931332362290150676594387225037359134436932841090594193387646141473756977572934040577382838041513293716108668611212939868607949613290984621353417890678806247754570475201029715937123083793167473362276912667183761435149447426774910574700923825564677237214650038088524621316191174027791943351523174259080680143734548619214765724743383414187414691486988206714790130482534062135734503710284485811634421510923827814704962219537942186010020231509638051117839146899604453306750374250704397305897886036815025060731315207909008699202833356536575892857217341099794004728188598497956738317401537875840006394510163655856319846113555350972492437808414288081214903412531694941738245418586517864205681132056627554629145488725523203854992219145145431211124400417562612954968008175386722561043493675274586875356477329516720786482473275965851192837969708832956697776908921851919797450200590346962453303449970602085048902881378235951605760826160589762035068486091299515117738816486448375858800125582637535033167586770836764726354188249257621790525503625231657010870451038896213780224258411317983105548629280762819510449733011261032930199981279056264666350057085395771064807198877975127951370157826436906240663236564338428096186862595280439121092402313281093895631881153127027532260019361994332042169784475940170202515009317561103718502913682493930106073792361867658965398473785365020433781616487152346894689004582088301488025067862281353688578872954405786536752550534715789361974301713541298731984484294792892481830058345565623702422812821216924492337370983868322867775444577923119473761945498437749370111389251863038647837152768469034910488896562803270991112927298648585235184263055584753919068609123787458809416289150827375415031359227042764098743219288375844761975195644989024056929031608427654300058649224331418861432901463021911100092858792561980829313908423326621652527335566845676875254760252955784828581850225397919717051057293925661242647961095755488674959186216841319818213658739073886401235944468182722264425963098896748961210466553285407824753729571039183807743149676689616307505579253165606452997490283706233177656487835782753183221159586157842049864508087791217219628223379201257983503670119909320286733191030569728751051601221378691134140099217324672586787336174046661875198586526738189944687330364873570128262890254667532992734815433790655537841150243610418125438321775186305757823284401442416090047263935439403813791042473185237236605595462642042687099115404738205977889962917571966040412178289360671864156619859279778569861030761453350569322474083714062368514339747864868102288530863566861950390278361738548493415256414774518296144499536767013114942321251592421656738114034005332718855900923926475665107828608208498024520330477524519144379129689398715258937340906154704607041215831954514187650851338604292218247556984588531144077239741517548312274995642135472193469629982132979997253734420637978177104080383580793641016446981855158196656099778440045237553015421384484886141843834745537598299625033818687526788986875076691144561443643456017482260190388045728480976967861146931275687300589114718184265057604614222798947611382962705773015497435342706608792873064942934182549220463923841443239881916186834162047101841161651002338282992833323775526685540912526621824261100561031383415155819654976127052243998019280019650608052355548160374116264140524132860074181803636030490204669033318912709803952735117127988546660170884769968444395125866750776845706044695489708463248362763992798793564461896111981354673432654160135278630279483142539067031990607631411365432896401240765646224735668117163433766898994257254949992146617489834413127850589556092978425978881021289656172249074670212962347763074486082738089968851319532162374254626233633895245636837386919087278684523988238820906548210669032775639679979191230278669228173473545042763388767243181897114563289639271774219963217716746328842129019901214261929463504454426526440665427600409547867178898708644763867806035294358826113567474122376556148458280644867868434987423032517851930128105881055322856259372082859953057809334000617434804416648646829451790076247327049778404269833765934099516179414315997094072711794774313976397690010625983834455492463780681967850734864048236606171321496033365566230247036143934629429314442337841517662543214182196026702027439779521993907804616363946241256629191826122410935549872426050135620977435346761642646914770244538555995496837928791504774315156528868302078232522122201959480871846567207731285179362891635767753646395146089499034808473581672848306481194497936451254850223995285393490490979403720605585346517344090239814389561541470755905827425106260300186774128807886037325788420622097426450154088012635787788473968706139902263999283360643161114450552133844792939770273489031025819942589248340709952035467825502237173781407564843474481122957160397530662808985395719427757711637983143482101936662936682104645632313258956347545450104539673654547880724399753263304478474203516864873275812444999930301369478330416446737761453456492802847961084338183459382952107519953195085265269237222523875526568668724443008710395347523612159510867864389029888033414541114917295152320035480175572725105783963529483667614973495976773742796677645682122399334991234826140554261258950761141318381775507813406845382231454056294504290576526953990866179764537786895695196852896970383353926867178738671103208800599714124526517433080993658221950196653073162817145581087035507216736146653882975964423054424973673019855657602979169571154623282164919977908469359252541995888235481120645339769512209791825703645872638849641810727304269785570617092976698676770618582122132867575767735411010592772793719134853185641306029791839105628058950351984637745064058380170508937721994514222657968911886645383502811532089801592712489369658865584337868937097167862623971240257809372943448570728864933596880081956361518727078168413126347947446551688081562480480930916001575761303621219641497826504767884294666150583812376930456904579257084254222437237334405859835343382489952657582853200653423098033251531338034295339335076736485393193391801038296719796420455541890960207148544814922719553839004316442288756130794000667291731408469307282081260907258138233800420557858524040067574611484426641681840285504164675118004503667797361109198115311400946139041116890413417465444876772530594696310747747625308924467810064713747807536379944544776916433803265319149676614128565462061253317627682324895701735678767683374817347727574981191692055127427920642169795253362542212346929482486628896167847710314736000740091157901708401475649834205261282866538770927552769605835403979468297340630018963545115460767153550258199952633417908131878334706721885621299225844655169054097371557615515641247706941807687830048769768457313205886046397494995911377152369557751572338700782247657611339881459876364405201120796555045117252997756451975154500598764830442741273729488224429636075550846644491270469422704329645921641233768290712587343440172288117685827892156806957037902805266310856207766721177123535428782923025599023992572982659481944307402807281007187845237755324656378669945765781972862218348016570596490572643843200926735036213601831271493660036862196331894738728588635694861402330315829749460300819966076767174465698972920316910854223920254952773025831003230740187528408441747097908214768491319403081239428085301300655795925937516448785347687431436528439747295088519421694523469925209610554989658228041867964873680723958941996999815426663454081582522286110065218386828661607189422417456125106612237539669835569597971755828186791152233148644211522626171743816122854143330806923075665314303073276590490221855591790642989550255217794787432428633103816794253211536345259662261914691496537547527622310463357239131024512738557517388571578585185545758565625051758950185826716188131443706064956212271513614499423985719968217051834081248461289987484846681677735237901884387071482731279608180840987007037962387563879907907909308896246998916718320386210460368719216947537734991666158104830388192797903749230770850732230328680464317033856916922415340297958449503394233485271336576686966586037074131648894628047027136416794942471881357238760766647091716558625978628883009422599139317343544598082189674042135828800939118973001580385343221581681817588845981396155133158626183350931685778312615031130216619251432878251143302541333234722913662246438208317818348527957041269615379936051627579337101955642708200710416517919770916803433355009072782296082608061598993475199317791108531066333936088835691782783797213363592997196177058602411009993461531525355552190658567329938851129008759629874057651387550563406915678886746324590323760739729904552441954210017999755035469309255961821232346239864573595789644096136467409167386319880654773486097612743745515843702435094501204567628336887694935281899776632616753289219594773148292433105796831865938114612621061302157837901713489341173768442304169646435360360107752439176204857854533634714754543165023032998277075585392531937892926912236414449504289642787765073340317228761139512621742713702660227608087027608847241657100524047355165619765699302230369253832170121072683956533721008551769161047826489115914011474405894294412756089627317874018133524977560023052178730448676055216929317928662211312878420927769454832368207108786277451540390296057099438090899617804267444720079307034679843394916499508176859598454136521919133527151540660878478051238944405219287050434177130722909893110487190117456720512570125648720087458602385161063324549945294697874006376955098320879975576185957847411205926443693510783314789258370700293569024835641091527942889312825944245573833687997826672257775567556939158633306728555924498989025427437210421829846466841688065562247664052362379577087420576301456852291037700728839626417954316727846420413222043305797351066169980088446450110249145679634809923063117709587561340404703729616785491671640836351679417530347432118147206930133256260633126132725018917829296453402684397561513128428110442803463031681120291048483319731932462941547438777754358513162166007855282804620044578581597046829787460979306753628079767962480253753863573710634731912413119960054908120707395861790062036656653585249821977365710136408285051263483862426430662807819150076856140020984335567977324553250697515933157556010897092689132750237286512014671990256728483928664952611174652027902569503851263690417747735405704192965121233003507813267312698298492938684372693453895876273564626254235590782608272476933565465224961569156629535350980097285818630959549403391889596943642286525188850314818739178481086875532809884172036484416075995898637502433580031550967272937106820004613852057383199203513299956001510440194029176210656924967690146568670409917065526169270685920459569983828128478200101517828538300845751686692856963360210964952711861871096211382059467320184168619374016320233117621250062057539252386313191075681743341576056294395180843912496724630710452694193277417340317190634558633152154301341375917016084744153989140011318849357372353801985542020674870046272478075221234671211919938698958908576420793456291613098431685867705130718066999449074578753236134285758596670893018744081737027237137803791133361473283716644040670438546625736038343261242303969640532566783162814726251104580463882383995578552686985991763873707851550347957405074321243367195978021052269036060322031653928765885387872462465873578648351055255008039414194766542673423113499693847681038105161794334106636692141273190651747462571534564080707006061359158597387809475236967036407753440761726396084189772689016745963390680399827552235193189169610212975502963050773891079518770290903672643509521813325893832660226006578006461088182692529280994367295639006650540104659681798297955445725069719563390357072928060949735878163042982531834785663066405826206176729623061975209032150696167758434746966730020009437212593057148440521791400324141212025525217113424920959122249100473941426760244217319575780141842133272329500551008744460259287392575942680762827634326900888171434744364403637095305722504630267179339437288125448199117501675161662143136001337533819953595398643469951269577598193396281938589302397655522241067131247702049925151967650789666491594700853015449478564728473419605041521046640493986973125791516465006378732224158332663713691032116846101063031048136561039070955490388151807695327665857111664258325216210672756842021860799916217630972219497540348328019460340463102704016829283179135341686207058312368460096755365395310915600899698723494430338956355965563523071065872843649210245995985837830045597121781183385659975130929415375528193327572691625484645834220608376263454775366851730168932509678998206619761971900269569129341286818503549386632083659696383802944719568250154212855531881634598807613924699096088703732987550893547737856084651769922811391135130290393491487042729856444116841147860044228414434869591738830669954654766095230360910833391724767208320494536067676747675747258698571427871528661288464296308366297558030244263923028668139514631967394784370181910396391401040384502215762021828678877239777966633575283174593158095028239376235542599930757335927196087396542562236220271145950810378016190954658996910513960501219982096662759664653739508104153362672646245603609325627746516626709337725520141495542674282448268758014654740359499933601142135706451863604336733043511215345200175663848161620046859887142202566969544782446414920304732673983656584361324403206452734439422773290694169357870962118988709879345461182470824638399163872925910108349567182583124912949484537270041173319306094803623888297006917860043562181978932524620527183545907528840304985817900038895598288095068665050882140524385812488923658771657983160532864206814625723769113390201669599569438931695508837178093208474838546828166751243163829087012783205139526915371272064266242445068045579054073180734187674830024521288944138319045475414413197563662996484272357621103657777179211315324552369553342933496172749383822516931476539592899973789074138517966184936066965545182319281536073442382675283777548772467326934407155911143149083249519617956123967198312329419554595541149632816656615277457917217843219396435783604356971029228367623542987433668497570505189727312145702999583638079084781267040387251282298462668369791634854316125417649427940195364327958445655626726508301614628781184922456431746351776864308393936187985677611202691379499332286281322888578208630198282900511298654705054914355314439102590380083704390988916955621797499183815721642231921412007602398566632808686751811557542974571442734087480873551233289088381496429345887862349850898109474970998720733608884700027167067907652658570693691402956986475536082975994522588204784403340251748852571290060662089323775103196614961913969256429111211274026157361962927072792467732607964343181978618915723465374883572472771312967224282229113629777065929251906357650845183640983556008642870983922135856177000203688489375928666930968174678232321495230794898619894887367714834567186124673340829573414095791857522688702680654600183653078386102007304933530097471973359290066810191605688191038682797207985819130643816732752422995983575349130352924134358202642932766380324161460254969927176191733402017177139138879789925770345102628815951050688646402541747690752302360880815153690391935808686449198501806642522015104781517868078204590592476772170752237492362774012229463268111309166365145680772726399535805065931257798094763325089173380918051197867654273213735016576550593979748937883669363557809008680904818895353061103730866074428254885648182784839848504645531295929466974658880717232328032608042197006119692254738359062011010265770028070640901345128755066849885287437091440039760255389940281514697230874199346450734310254007448697694805294304489895376724775676380609803629955636112565865755170801955033817641128899013030470140389335594735165122777822193214482645607737241290577299436374035867783803935281292062551710669385439408985803870855326940193811228411143434622272328943558268743461777053075088835049151579472789267696297870749883390188780073985581317511033592765893164012173152607058414485385465197952106663034420183835589935705699686179838022360429102905356091459683788294830920529402022920248406657294064312161497184098417441741766065922280047087477472497228189221116735306642156336006591100676989880309716565983196325884367651668050510502998375107934241691801982113818207563148425685647619404429764565201648127341768176717057339982736681478379271329572418382069825154419652457694319423502887918920309605732442728314971833473552540164576968626129892989532492340312061284561003845355897650701128282318468449648634611161767920659589911852979082147462265033860030298214403908845438867392659679132860008585744409912639611141899161168653262791528806423752403614242854107006872014334940046528325840354237846300908162858062255162807564420808827908309525184482895224345788613805112452597198474970752679410411919099536517704882973550587462806162052305859047068256722308487552325895026142325781793572192361709930026577241393840890484704278209715898941865629986890713571019846680693301782968028339976517782680468423997886096804300231564551813923506026229200731686905034738222731704167732255779791788170591724447369223161372968371763796678427343987078040133107591368092463490425382799944455320423020145713183785231933644361514933212535052831956379604364477821904746560902066465118797296736499711919997725826069035267608827202876061776062276145988821905375410179082475041807369563464737000958478910916044570824760940894892182736839942024095559207963274845083978007950696075790430806954626175287171934333829509465766383456972485824788322817503241779093555003928460712205894625999812629572440593445661399001952609304274786094377100101042010756207762320592893407488979849459840072435924242541073405439745824358921353893356198598339453644992918883245272077694873059172846374670267248848481379327224403412622414133542080485142692761727882042354765773316401863027657266732818933923853079609389690877814095305183747183579236875869176812460903492353614533802204359145888330474203175906387603882111711593481067461608887362572941432228285172372937806845616838132778274699381018390908484399284698214202049266566366386500152544603547803039822667008364823105666351879126921194192439359320599612307016282784240864825417911211108245591600948833696433924068834804462913116582086707330858046911197801252249295922418199987139258825197677892837928317605628202293257270655912815563355980987342591609063024410267181907119333031939982502259569424818805247361422855593381847398344066906522025293399581093050132910331751239288959590187953521087492731574452682972069319469113588875889360237939603623932190526628817940386611093918102131775538219492827829930240261441060048349516311248617341672195971603024794820977645429933645155506031022105995681982223016939538896596318068226054672588988905472601082669639181116158994381515519466145679383963663851599851957918473361267947919843357793945831692049630961389764154362001646643342217799779041161401509047702316167673032168924698283478460853294256872008909931450026647441453850975960264970633821579123488568606234017079855661967934433674345483279170626520734039897152153858369826845487787546955841927147493576655906476612061182366307311701463578843267932063767687999346059328462493661667859713893554679627430103182785152201075354997114153538131660512220759154049468556143564608350460808218157990127407268825616409427777172069917394253695334468504950575035345059759624704552856392030991554536646565608203230282487393431057942984008527603023899612476437593164895339101732539632503470090175281940681598030677848115475879507918895312774311515958387586322422913294326497840503317233043797129400805843185407331910045116709812883994244516241253809704002534236173529467233533026402525636498256758570137773642407750138066886002989840801786414382777007724083077283917968301896317013339657642921671890724012287688140113950949935760786171980252683595369311833244840491224228842770086845179453128202103240768849087919634335507060883682903379761434718021923928073355369513989922211034716303809039848772666639957251055085099434940434007938179316422570762325042654451330350791037926355196937707966003517231524258535499538696894196599623341733393377283230563899021562461020157306169050902398150614045649025909641115857851921643795189581565189559919181535304982546975133162656315563074461243611115320713165689216084486157028226062867095359348721198970893814204199785218944236204023875274966987773918603210934554531185307739503210845306611348686095763558355582164262655144007445953847723369555989440135026533267170880105257875844670368042584379181923447307650284329915967179453323654696506495011907063722127997291204973056468474466409212821332933647719719862495585144559647096277773880845211713521039090000198111119126450305741460776118920083529848651609782986328642066627613955803480225712600379856326795491974262077042286643288131931511136826207457927353936203227373444893887529888945121549966215698105032428278982066229290977874406876230552051435887667539284622714173957012243517904608751793117931667952867037614352008384659381084769658326352346750893004337690630450614877103292915802654952417050826869526586088021501363311327077690706800955212980980419381962377126791991790456226280039769982299767481867802399402174797394341447068343075199651893197448144696191770081579178475484731756770176077974486952928423453107962696036786815941678179555339315699474756991595502014108703264668951259476118925105242858744285060826608126973324445758909877738479186900746761729945946384968709741568357619132813621578505205370932663788440320105199324096182574238519377466769415168940694620893701410828099113804555142042530638934763109882584502262035950620096614645060669687242077976633506857755730137127175235691882608876865060986283440963342796386286474654203795902589855429502546200737714983760039963502689174664946876675094260552985836135472077985606247415722651064372846697723215002545713936373918151639526471831292153972796120171197120328612568879588368953886043405945670719347178715657503303911888541631304607451468015130517751589754846692123195597518215461884259030425263486975147760717785690895846799299387271531354885439751760847664940563252394693341511144427173444635586929197930431015118207015972798917103156187082905215624523544247381724445584364154415218518965003763740526804379750674469385353102385404248696519631967102274608696269167735516524988056123211090982178117751216681990952881168633829534476090674834269862392625949730914361289908769069675548978727531107216039242734801466530994481987110727953376173832384666745980242463343988527499531057416405883243758433381088725407533171496827857662377444861827104664984666373666737693654783001759128292352363386355536246500073968067575879379538945530255538638258613519055591796712076551293880289254987500743621108583872802688762107439697873751345997372293869963153904970153062489629750949578556371667726570332570249678243427903669640623551769851471448932600630516904064381205429975626844113786376639148379465332045406182164539566867552642202395218531206558103190086366212217371480497290280659202583598567911476825309961036705040091159477742867341403243056322665684523863529207380872151627161973023380520297032749646614039832066685618063446724230172581638633728218379387424853387030355206177480314007457514428524608399275094928370441959103077754030750589669036262180148858859179016005963475775025706779737996664104829699260330768398114829691607940423016702484857207602441406024943955448403888470510084332755650169704936863075012692141483426924945382157759191946653241562599479341551596883403847615035770193152646456907785604700366497189647437030604748858027111126078693501950388294460568497441413501334989037309252940347237980908393878020761765278853455206504171138296628075284588027892524118226789939829684748015544843601245384074804950588178391365064149498528241230228033193125222419474652353617317321199723708083781582874656375945871373597062937645769292427432290546181935116294085460811332514054278327963104531434542346427811295354085396956248139747382128271343727306218389774384718997059207884661139007098696357339961198242515762610459228974985348776853061418265785353465034742283575994250776866323627049566964008981040567777146965133287150505068073488926130147174681311195896912058656740166680222047479805244777559194404698224951300682672301046231187807883603853652272843899671265055270050389281326335267599742511659373207264639150822458096826809429439335401052778237617328758075727144922251371907316825373048607956336821400959575296285013108095787472349128646432054416877641948296438841728175134660782237895761891210113711649036764527207137970282894891355681211801172444443987189036678599272886478356122407725467627981263826347274596914004721923763206903549746024008130023911440045252777671485094742841141474854259445854277691995655094977545497902582073969765205548400708563346786683496480064156949529175522016202216370665531811732901021100098427275121465493468345266465649254354767599474933872385089882402107159965288782778046175181869686784096957943743601318051865429639664795384539045478591334118922287258730662489451663158064196068196354372783918498466265972576485936865341957274214745050391141887775548797296265350766660054509676957772067279661931397071737156330683016676884529427955254604101857941236724077633850678479871855847398174354063619524899067548588327188570353374211746679168484312095595635965436050143197322929703768520970712844723948291482122495975162076943642901814578346162430722719710832748719223686211719550386513434661498961807934656530363869963054703568694502610099847969678095973158234328814205731952828636554569568413354452626618888879412067694463528835948783551518333958626431438028100626611514235757384147429458709793052005183741015690157430351600787698850314098831967616173791794073878524345494714220957165845615993970812264157268068177835465679762274525024198262639513791799670566324476946416898509623864802161568851701627333478636195781144929672054744288682836739616138861486600804981720999425877597694353238010584394810663393381429220023641728562532079908217602855998707248860709513588631751712932927557748852647288109421441603144733106955601888903484184751081505412808692071600056681066069412156354176159208690583609735240618486264055520021054820382603099906697409004132959057734379643849840433287736529800085702230213746505928251695656112793549276438658593243143258420151321079267295972597204339793619600540270307436262730682432500222447754850353407781333387256061996799559641663425197508195040213397826376240448997037893419130292929909241311853202703469148250214761531799469655229476766522123357809652480933430381737596901376067141513943885018614590682554510676491728778649070042364146248240453735119071587570620290381250024776306212357577640822647187966736592025362931190305371151513450317376126571879058041256815316402221792012584629898893231269727346308218913901380032754498162093475453583695782811962521757831519301674011245208007351636806769731449047848360790577383458135400218957891278239473221170151767724229747280936137859883560335027165650967045346221899091169488478568511464893653106778000470584273414065705190431651123929880246990242707041839436173227497836948414854235027474283286956555042953929658346183981235687365970545702151119765956329388550096852801090312385132510133385759026208568452987620110075616291134625380986982692456976310566149007293256723058018377463734987557708514793667297825654681933937657501987421013623897378905739977738938843881425991521777734572991213259301277671832624821333776876277499838700671594660808330125009490879981454378031628292815539084675848841797853869942389758968544800206960550816519567037140030071067965283594875337252071125245642128398999216527854790320474736592009737167881431467776984065814781308177413214761387293245456248315531105525373124411312046741936974238416249972421114662156358354632557367428330616422125418989072481818039938079359918795456676567027562925369519912454862308289789708425461602341195832449877414794005494503732567615424837018126907691795394539734845264475244022909467675756030367929769292333159624529262115808733079078329688436867418201094994013538606930811134394851795829300464884053033648899688954821841699920019243239281237746853774939235450745962703571074853162717550448801890367590315066575867784177797852226006572470392262843961344180381230103144625064821755305681716074187551026797305161307348513468132061946017159086816254662089269260411439926562824668995055449435088470153431115759679082309948972391264910230399580375524949426039819165267977116479663782150630277527036568752812329976400824205576544701280612954560894925477936060908006163825000174628965869343446546184396659303827779386974063319815957081407082197180270539657283466595313662527158762048261380519340290587635073118740310135352751068912794922861288768819285136790143329423430604648774081259737318474712231212208789579398332567699653739749496153895075774474008555610034558426866586314119389836679230791872780264096999860810033149173356033802953072253802359952952898499280054876377445794722106450600614177016284078361629417066366702685214574413661650742358813778912321978497807644998231559474037058381816787699521741557565434463663448365602119771015775158108628623699061730614631539038248669130915396935614677045263611933957531709358684869456822188977056987686097650213780347388418347171590804123895926239780429071407071248861374390624366703650060563569663627742725032920070002470621047311374503759747092056666262254437953159511489675063925513739121566158014689838107555597756020893715285890445985870778335577185717503220332505281558399557068241361809231447959789497007192909024805069264476343700639916900950222530016757179747701356480209215035710471166389502927636169274492182442910634905227213735292772077079772499325028393271134080186175342075141569479410893134351685580569722864612405212614413059467427575774997671214744141826732973290018695647533415865969827841859395909653809261449254383462481614726163614174892164650088328622104465307745369334168564794135826287540810292355794908146100229908432649150884123378914259089735394725200154068351823345523544779595243815905996393544809535366071626424359127971172686385026076197599069775976027193223037930687965763880009033008633404481772828987751965597655662272360793935668749980094648445125567453506522298790533858945547516291550308834460240584213712736249195206093805163087915706129745425450770976413413996221665364234127623444571867307249171540212944503556320118107132652502703187681930663003852697799916698155160708155714925120179123051738200039036109139529582925264303509954235521173728726858892506915112543304869999132581996469245490015942188935558529932486397682956829681628464478829831022976129887409029163725348080802616425147090925687492068356368034503261507467959183491074943831787046500288606186338530249400617162819918557510191606543255962859204106143480522753464328510297982176278193609895151195289020853424012017680302801565018490039908028030641594250179624171001100899064197174378812048927449173465239492732335796327684214250920769730756320129344244457762970366524440398937388246001773871769407226151674384098135333519333914227213774713990208436122163585287810706197047374174718960998235467245446694105540336509372372398443382677974275544591996555048479161133140230858143043522333876423810497994699946296809089545969026331824605933017883342760758637852317436605356598492931626485984014254234151738237242004325105281141741378443050842203729066681144792876073947750775345766875447529640388354731722743217382749216447307963664962233455630567701327431350731021326330139967295042684643448360157932132722148988034627655557079310156692657012485279184602490913628334172490756356093601297489273865121075498911709290702929760201656578454551290328645814744635388413470321143593531892052538211983519657763121626612061335277461045689560311867941801507029899798685566789067946515883936275515082243147720838852373596669038889312878300344266447226873900748234669754296793192588344142652014639350188039623386845733724920680840363414473937524209769219219263972520261985976303659764436029453210562921781679384440146137777922801177567713726147030482220280224653774968225416241574607211796131355250271425766889712186179958989480645901829841139254625272616548511832928264810308505026016149148658065638963224943643525067169132453400595885496172781518050594773292387099906196883950712402417469854679460813478297446893190241159900200201347709433266342155816397970629283591390544900954161215565453187096295189354222706753452759584437627115231316860142021257921916514351469261678843846870217601145646841164886440492208413493772504652176841767998370459683739717004433439775169664278495874192962847889187150399584022527443697524595842941045559542685286373471925759892210219514243034629456255944012591323911663646040596844838319554909496531922799336581258128606185678347739425650209554528913058216911166927874644794478120011891239805792836345120235303657482111736221706786478726166431391418299647621522961574661628416249007305925409951666372329134327350291368581616526379936851183707287551638474220982143146655958706856353368351223793649251606989184855236544374625326778947423619012226723676195188150459984920809022246939515922189010234046140391635647122426000223449079161233935164427486107440710347364902649212881590881383486776918098245654105970872895869624254029964873638332415772158695603156285331046722164126409839279164949587724739790542561617916207609410378450043070740926745758969959586931575463923644492540034587797845829862277963448755657406560088209656953389321108562234239313425368978001024378148097741099503773236475524761971421678562940123213477598338473620901205481445294380709512719749700920292341700423451903491797335429287873034602947438997407300753072209468890649416576270133567617288157606929638708027483818170054879480776906159128077387953388037748694171640132361506624487304197065021065757704498222076628011390488751420312021170449579349820510594292607108780905582874466696803320872646136508035715816892384140714065008808616785688812744322729522814725829833450032543761711270539612994636211869105785768237063649960606084059361292199252400237295622683736872254157320355698639482362897216670132418430283704294435299555279909026642463398122381999986839771150678870943828430151519738369870669449953702117402887245929987515306007600851413921155889270294132199653687736915805184320144199942180944875553162779509566969710263289365749530805439710323227139378530160129365709358226743387831796955652790841536723294854335438527440002154866118992371605005003225980140468254914416113255216380848288210028893160380977027361860962427664910922094871120382248870625231361382498205983290276086499253790990637353284044330717879034678680305007245154806136746214679639198471216390219714653438825143890532608256900744638302512214809668837502377930568110221410339372090684072858679834548814516802762350228631108972632083618984463788259859751625923081967307177424762736723075185797298984925075304228594160654873417033253036413966824394214961047819249945987897602082316874505224266934118930146576155831623244492312057032395972409911634614320601882777163724653098265215960163135110098483501252000000006552373953221307106854764576301602563338736765887527113339646015628849729917900361929214038603414186612946346072305560885519109811460132343048457619219055922749747196615715378193852179647133915530418646294350108711457496340688501736138800450794473166003009975549860841146070358107548943036480552018928069519340534138646232258603276412439760599335779950502024338873166865296076008356724913532242969099302198101753358785548724418184366081787184794033683837842723345899312715058139060882209942901221685594772789768477144123340181697594937417156960703627726198406563371650241516624081862456719410379521518602466323982127979490112076101914137360628148545882134390508007676548710579503982583262334429498120815394745264010323663637616419810617139923122691727542109337203328602229552915355898541211846803209342243881736294156214505604617542233534982456693497859233407706874122079209928054540551471195259585965540435347572502038183656994676909951284431505898664217128301300283022905411687097551302377769675573749367148373238984150852720952682293066903068267966678875196481942364966449745484776219154979463018951356092537565461543578200031480510765035221071828900307497834719443113247676171615721257548896158127276642580598778988430584834906398194926228274530145519601993455975723142929243312782909270271675647928624602319010545977272582672760858601054302811264852544157144555923461395589887458941127072378562764111250205483623554672254438289187094338228395570586805498316818934531629339893623181433471573884425385057029136734090924600882205793194047601379979011552121061753780893292620591280465123673396005492132612739345443018128188051824804019712918763719107301852192546807120428245894863032810739786153101890839288428239254276710248148275458465715519667777154385380638635642031972008194070169781425957350390428740174111542289482340265475079752996807972323971479848890469359612332915977992426141970557407164471886526220167865471548911366345487722989278353458547016366344348592345205627732578910120547275403380635071457231660816885872051039861923123745790551279017928541934117642610874802947230148423020305578778346772534989887958282777001464443442298410534309828297942680616436334309529779643827572062528883319068492881804508798287298478247689689944091687240275118053443585153568053835151748583386191459859228182241293523587031692644910315741218734611681532928198452325977936235573714127216571291386293263763889848814427361028025556518226855257781079043105305341944307577193906373652771538548573897789320217286360545395334028382549267480654042029153256864954186900613743021325895141711528433489565805842189064177081368103373452720968289506451031350555179555328058347771488335438519989019507463092899230720884114449931225433204097347901737220527001581670457073626145909882012755789349786220958393897805538005243739184056235509792526503961554655681803336741018094497056762942417950605511167887037150699925788318445652000415038729392383997112049160941427119821466860993313339764293477862968611356491742564063941482771696950691983821396476118275397886736620021573281905704870931059856911289563249266243862359405290851831966423680905161868146148276461709086143545205793335325638049682523882409863771493047105640467676039373047250541964457932409925658740237961571649409717052058493625975967791664715583152571952902636704062518568683435440974404346613018959419720626298041246648546320106474950569604753268783392331170638421036499153654362856123240333828727155724746982327030006816910590583756609708993942217869478005117475423294551737940892112870605735440228454292287583444234615068082349716877165154039026415820662668600157520533594287197420480758602871384189121258688111006808452611699204836754940021924823814202213139301985657502865136446355891899215314854510247115892619704915812808212657524982778805619749195670386649642661809427599499895240441011880386842872724755429616500725999064890930168900698851841169748695778088043324081857108422680849352301878247009516919030929809346629255270759530559657328458433972290856492711248416466363118386801735431572471422777629008444541567244381818036308192345089892904717837649200012571595123921831436393004872093736402013159946069234838329167411486285750538162111038487731182975562558958713054489001655545842157159332986718106162109096601227324803504881734490994471501319718178592507270221227861728911297991132581983137647480484049483868618423286779961880135585454992694934317921582883295085340732814569772075728104070971060420436981426768654970497199502925526135015879830646945473941463567036672535813458191192055596834033123330181706846205238819461680139247600054483512407952294891479754845608301119220403334798734594353213112738640775309596751540187974066001749357223780021020564833108047304171905456360597215763457933860615255705820978170364189163623545765887291435661995546844009040929434393620891559421603406180955267941665501696930555440635184692066957568857379737343377491741056558678848228952059974907717158813714301559124487111644355492748482008168050703464267126380864781907299503978374731519152960151454816103571664159383171198158858206801320246936997441486862226044793292290321619544308697360682803757859715191265558751489536291049286286843503964607772679425069363803844125666502145061152137289305951614385815678407890857293182501696775666676701122513033947434566616177794591250036149238105329343866600267305915505473141174019826825706802350057902875016939115289640436276688058882273155186725239238487850350161363175171732743062124994133064860681071417064296553957982640673201262853309713942567802314789246723027962395819278864689100873415925497352942054335948441488392330485099758560411814674918273164414296778611875836646852191643662361169594549234510924197692645433798862929427698685520473573974968388724784647382300923603960227779812405922501283281553078591271757123270293165920149516401132895207263052606785246562820427088799757988587916341386569390891923529838518963511594387382785734637382983554891402867277867395715485047366925634031983404777144043233078334804752013831216326846040288452086175158027115230465048384841667211963451661543839926890857242850376256435884156598073006319109744677074823390526954732026916672967550952410703553912007834874917391869497830906006560649811283944033093934977807578024016620118442093558607192046788187672655720927228473945375059978458795875390861889978819512785003199171787968403805460840420090514843837683654064008759628228900967138957629922026837824751172956337070412333173943473961143172326333047692889270502704408850471803820923989343479791326780237747186854587678117489370298162951553411723778654258058149596981010417165461206749929897636166638032622080503552199727834365845932195426403540245196750247581452483414551290382129629404523790171112546461212127649010992923052016991301312163217356819158050381223093170784336757359593252149274748052270991648021474410648406740907392972831866762090747310287669789659230603887983420348731286000463433403337070220951351169406900474999970348956408135103719172511557835767848040361446171585604775812086016987553100790920500856565878612182587395337188787496323308075783632238866067254346306443003617077190582019352374015498530461101623550896584135024361122425044414391310882372215609462805063293355368442963899284716711022000130745121801007059854105963459334076472251447269615368774250424227733762362589243657646195354258149148242295685025539365673591641735165280209590266447926241380412695452363367395291791307105292519402246211354232721451389253383640283414720381222370949468947504954328562919376033521457324868037527341707584809130521425870662234715912789857633865353216928100871896288554862562236552743988196500277544092724956373142195628948741345827350097214592627983040093199258751735930809187193307396988358160422866786711928115509415808124855092179634512096793066274018821002495799115280869765969564815469165391430646685413405842430490948041384637372476971883208715654862328674287672428036002903007190143173611766084796891347534393740588206368970234185422391451061600907521797062142718433878693128838117017643373746215223105907467519874465247221780689146515425395471790530704300642416941556671583590282902463448194689665454891137432349204293730788860279708100642431233367891832536744357105012672243576413742916464484652200298844655236466440373484834638301163441371059139960185403669991767200370634608624317025513084351348489716551994302474997808165904940892199600003266237078212871724388213428294578225990566821898216934953689347241677618377338005196510232173346857047246601695596479205607493409106486142477247135885621281828754409003453508363212490380708567478311448584668287547049657165457985201097067180475413630366376705340389000734958611909992601797368037719247470088025552582060180681284586140555328635809884812070694032111191583005774013847497441299377653259368341311502930828481836701031144601100343073336527334390908396068174297129702045663330001178235936841559779617689826826533976726724063589260374826425813501268830434722854479077967176077234960638848152907657829853795626929149063165581799994440156539028329397029738966376955087604772126432499904964453429773147670394476344252703485741004237559953739446889982155216279585073935108610361280621567225448485482362970748364698322577432011367657603362590626493015678680033889375595415727612901432897857216689283522160016233206870125226848241336248296682023283816271517804306870458110793276262242672611917594722402591266854534067083189135015465760714965708096602504303717124583177457281446372789589226023861549247886619148598029162868922419947879227443247910302076637769009729481112505546097314688791403934794117789234010436568695402193172920102053787622383993587189307232701356631034511581540220799050434016693797216261852634025915985704920435924366814343502891635073094060809965470008456428973031198297244420650045938917264953679146589737828106426193137702423466181848910940578362870973846806000413037073542072633984885510397341987166303188885117559177119174318851687886515734558817965799588497342751683220441587622738573649746345845109768588695847535246960152727358907974632964557136392894668439184690675304742952165420117431962690344303350703691226009909123056713231128676609630988420543083378859889939791239941944409993362495506811305642453774859263689415344746286834135203755102726014605810727180965315446929951019991658226718626741451461656875637953247679053943902836960459348825868273838500915848848823282777734849157369514455253758595433651392183182850747183330570115152544098913794500248176214637004045975123378961548485289456905325442081728415638882051321777670276417190462057989373306231411152031175783578754552124751698011223716354346929798930428812481803694433842573414676658672795289799380038416854218299010807623134975678180048266315465900422770763824564235137086522011189293310799922074845567126472953377753763488937170032767335301177560044658457720823477083323396331399413894527585787460826928913961483504737671992942760139983265234293501653428177099780790315652304382367958778016082197385080857992380124070442725322580285910706656903074491932917564462514915714454405061038733501942117083322675152877632420981397006295412933066926166224519996345558410391076829477072931582174354015383965046244714765035979860092682578352898412420038397552343791093918590827811805218993989164097073014941454885435069829869108795063966483190278669435969014554949261368685624018113076346029655220683466242778358766333828584420224638706249776894615145146196959669745219065474454615231959376631012722904879836589081301432516004002349832751838917018440561043464024536935804777026126852819930477320958883277915116226649154347566663832393222061663372678700639700892195327664465724494723557959792177283880576951151932546367090178622523390922097439933504813358173652913980968097340527259681663008880264043057058570975844570722036571516580920554707658697620481631419742181088125632938974178814592328511682640877308419328764004789017400270070871560438668860124907548753142687551898904391113789513913569766315289890055866203673361079077387962248136281508925538060479731891184330842164145931774346631313062012714044010877448149212716012173807675688879729627513112033925379677035317848465282939461494161671662722750599580150545895914491719844683674581331309048326116061475199866387260894430302651928351085050586716755401285285452236187878878078618778790054333325734525784523560898807183355619633292884612664387590995399533668515439224475896798440408295161145599667333640066392703288942033640808454683529250598969624988370491584826834073345672814697003310402386112871503004232346044102217057741263854506872892197855913038021785702694901482889812308330709480483460366619482566417595088828614869991908884774733361610348342324456876690452394698597541548921932174434461923659923228555976115366984084052800174461894692105313749581157257507548909074170860393590922582098353890166154692667522418468043431393286046998578711935343145282895804175003296200500557572326699360157838612836535556398504160083881997563913447241685765962169015976175142015638503553582845042966304056260491638511290371897250187719963725947733928317867545680428028015167681790740251045207051170217429798507666711923752258219441078952646065292312333339547668587505049424471003435937328849230347235905440876916861214808159459014939164791444836713501694017174445134842310769958051843821971862456393601334190408086424362068920110922623612856443478919078464857028620869904934990096010797645093957754713769528010714775804684481757499604877281391660670568629576096843030424618494067561388366441000786213749051953698566769495391311471420929509506240944332681967787137871671692419665101913224711520811770655034446487433842871978215641932197301970605816371474085730021303326390356195945498104650123368982668095054392515623676381848387415917945015879097529047970069700134924306111101453784764883041815019026515342899707935008220422640536349150377620441418428418564683029313008008576189110925628440360362386916757644948687060906494234986891859713374269590352730105976575267380712367438199191473133669902642804080710198024874641138064332039099628621095612770908892750219107958484924124691194147031307110689110853761923322530370613077591128918592594082542352858817197767542441688268035372984754177161492006769404861301368118147803708243910749760163750973475829247620187480159918545254251953408756017993761808718649397221620673470174411764390670439194676941643089890956304479039226859927127753740120684423892099962587408663316199635183805538122657681892921750803238190393807767754834803730423012836573487671630818688379157672463204842591785848238477485033444430005502538084073150160545810835534227705168461568786571615150957493737952843965855966289258162542606260679821420216557328063320823290273215773619609877980957064779300141792162472772559760127914910371468894555088101390509813886301820664993410360683366484632301019472247519068772839121411338475879005869020536696507633636286520053359649243827892018817970265798644050114320427939231974156977822091790122454175491142446519806063231264638092555845290509527728153337587802139346499293754373409834881634749835372845766500028887855288038723246099148176757330210947544372783154627635585144005621717577103929923518799291713505594719356747526814684699089040183418891706331946630682431494991303488926656207469530119651181545144590924490345688217610147711660082155008538067570268305100383630639685546710519064059856956083933266688615662295208887323519306539621610202542495125408489000553216234176693925536085793465301129163882963185052732822928034155635861281517422776669736795647466193191056876273026530134837378069940143756714365928565145709821341754542421530615800079148928731420885047029262791522205970441877552704307150908666097875962193430226673732789377091218768352384781345302503631361761310094197819346724641338875280963850411990484054861080207547752463656178808551695747847140376504154800717541165854510141265041988177057302958605398289839289178523628779388797586576225321547293858994324243677821410452382604663356435492421170770624468550673149013163931721621432819718653949297848134916884365435880721978705337316011965904506418288327185455192421861805368227492486487694075552099154638031757303234293293425665975356538238114300789845974216661710229346174262199921564149668380078001959762539771565907907659089976036619232152022056421229649538389344115528924626163637634152719681460643368558739981810405540791610969864053242153780470793472817523929193634481290876383744626587705447323799583021963134601924018508738098969875305349085829260992595036840637000996318139368659809798079997254616704095820735545121844938911946206911507580421899337075051674543917925637557466153852197737910946831434828612641482077806269458445207688929245099167779147101418075463470561841626674719131198838090060713637969590538885731597880645147134370268774692594545781308097952499319116048571163469108863683704289104697882349539819019038442378253123631832664945075294214047567549725460118967334336887308246632843212799403252814336835278990738083816078211396456173909012989824262787962877084593855189600849269267229392250624663439756395811012579509605576308127845241621147050950740717900954173372140432018508115888158230492264811798130724557113372627656177732688462496434163151701857368054947644358208307935993795347530375965117119571403206281599818909144287023935662478002329557177793338023501182703906576413523164840510616482248720237433285160287167783897624361760229258306256100289143184982899648505042432335349698278236610511542170882114828839074270965306223774664916399428302265879944842898781606995270297054349060455351105578996298479232347033225384031631725687567101462779715464040464892834539855268851940542839258838535661975088599227095166556002136251335110492335406812742314895516789055402582609581560320333067526128612951718050777931271050861901154673995311261533058111020263000316715615292632301592113381457116425300991072644543183849440959204687402252731802804771538097986923296193220933760281091657621464676283505662173349598147933013911084966729908410633254237858625874688430109940917010809183507790502411583163401886260192673178365910867755468136617993142981177330506874859271376487178086960484240181521679251053793190689644122840080338075817567417618378367403761880230068677483037668508508591354481632456930851501693527869855894996346276115278151560481122556761899001923938831178716821440503414684870521114078223655984914431966232516169944590892972802676680103567792355295930470324921893306542212580123708627277733582931711703962321672805270652201616980733510466754870139164427634568155200660634508083414938589639874209406213479196767009068348432715078359345996166169930001376350904463725739375138375471273311767326856600230311916313322235012505733733048351143190679965737817600601711064986917144371883938629311728556357758543863795365757656310170938055045033329439807038763018771482132508398100811040336813610729311535537057355902862546252845091412591571006716556156248740740631608810300810817108004505876177060107791617468828741821015314443301424970981802566828913469553500677476757276349066864085845423131469219357180871448963294868628295417547216840658257874455829614818984759627225313708211953487136761951519044985940509121195470644831023818520599803982080135192717018540080774723520982610330377317480238131562674779167712670761964574629743829634957617705800109815989951493870183224870994254987164019108171078135954967000478817046904044319867823265228668018610492107443711014791328732838585232846361671080051308658628788963833045681291608066781290367842826998840840547605308058203456554801812143299903767620322030386451219530378204279108519308758485859661755260554858830905824694548344309087501816913771978841782942294715585310142385676019334829920531889262130691550730115687626000626819870714768368349747287099266135562228171749517470638060307893861434107291730324536344790281708113204331631988501893093341874699685014928071484523684295071997932010956865525403332233060782283166237538711804542715088413976829384335724367434864805754636616593571697720710877321531709083671025342647708547824732582704251021144029637651452591143130349725346119843063412434491183826173617279779361677986500665032436595773940989866989848594042737133611106725720175183056538026702154169422790491012880564906932860400735337825365603619584865428855808664489070589086541034750885069581178045125284453250362623017596011996803757291323402961050746410144893640778420573032182830466750791082482699379305533818917895675142210073205366513713112191365567305224517912377457142579276895362468670612605336121117879619942694609393539269529983349443987469158981821546538553481528608821593209167811605473486065368934856459977040827362025123293251428436574538691676887050304030476583626176679190315786195903834041449507711818304766229296460744379868357279605619315636524271061056779760766609104488980738668932228925810598198745623864570134010441219083657496969795175704194300963846844898544619695867860141767073716970042404749639916618286972248737134589243076744689472005791214605680435575794299790892002516343094358105226928663155658686163809204183022049244958307553826581139437609013036790174731823689833605833773031104525273370522002332033214454062636861488337062879358164463435400490704489595746930870235777850559242331740279377332077469393996742922957703108042336681215698807652806501113104038166040821730042825129718388945268758288747672076637820503341332808618094821042090820892426663927383639586182195868283706328242816440970264580062388105059469405615734637216561769947033822892581913371364313887400239242052718394905781251464728999653676449473415977055138478796214196703316600800785467614076023174855520878964558337589037298895099027183721928513477823712345291267907294893867728578511552629395888104779564442071605624424342010073506762727152883738088894894371448411270239011732977348687421255750449369059898054549826441902492320091176754725275396946089163742983236802075792664902048939254764293961427301370056441330806038838344903444002041428312306472119798087949474685710801494785385960047868958093590030004238649149192082626226194087859828420216293356307156540184919564642705139365374635356510020661291736767565468341445817728932199692233501430915182269436482220674241060354625797506495477559116871458744411238668820512902494782246420019412238023378997594109500838945345464363768412379748858525454506753417660221229511077523718989391019396611528777920993793457269250610641664276604201405319640862505807905453011735836771572078780125686230869626293598298024520216585837873080531397598215505663622118161897748813153100867674111870571832481854711968632787514365529266117543948758261439140150490074274373979697280144077903092602556209104994955642189071715419905731022546376387649167515843593860987499537626540799705406278457007414349366754440170478145163298760933333612608085254478849123481029816754586050670766720621027612622861546227907254218433626579613054602891588794796324553039133476244227726063670632710756920415323397617760357646771505607956100678965685669518052684311813202853517903622531349161813654254285657444141613812625617256296639657428981944030348007917895352119583501763699434350741970642593799043043616528701940317279134463082725665765452894069715665101853347834551428497506087555652248951181881689708478778951197303713709950105839849446982900478807563325101021352659121283828616720460686225400421194063449090026434721071036743771233209814537607206701098932349773469626442087347255707352630751876620592379359177126709553514479961090719379868145347393593482520739459326251157775135287906595356998967387615068553003784152037697364444928060158757657393358847960480689997654611277790314128075580626438244948742872838427253864180022580613937786102409201835903878170930065279046774712852154190820235059751014822343893954494225737285697380502103094599333156080672197482836180998703259733305726998565851597423609016691273952713798364927107894218617876368641409257505864634816221865841941052198694730051565198184311130542578068128889930801065808076010591194752926869693048402991485356936910866685422449148920681474589794801205338172242752629204793035938584827204260814772474085964353286312167132802334726739444607043064523341201475083024088638099356447557723460767991574419331157400933619213517648819059621454852832627893789480988745964262951140000730147745313805784830971066589396461341943138932527461516968143401854317016142712240639911161116495181986277773120113099869927878319554314223525369552772627268282135135385099193972290298777896407026842080430987793964642579131646015078912469297675847870044502548966459172179497975529173595115377229132071985712790815060179712495346490956734424618226293233691223419808729581972427997572244606181127436463551962983194344993449277343501139664309665573738425566194844641347950395877421524678263842362310984913044597083049898858754373895898346578905017917463842816199794837883623545866166814510360213035772056927853790928305446993336621496504777171574690012979610832232184314172832378650770410193797995862322490327080183480193566438184283874724392697895949875383872953441347828695488854690329588704472099111477879332413934725306827885333341805127936588094821552410737549792030226042613632174849030558801240244661130893336329839524835656948586281681497689329963513765370771123123610774280213263309402488164063816317470920974387434244354016837629537957618794229855552195083328406071234171496309692871637647868090975515612793857580494937308235923200219472485974348368075060187230281550617107681373963892748712474366788421662365561773569216335599521453831031172459611633132262553626399857326773735635512718411828541849867368712582111897686041710345753833159102278034995922004411387735394665408627005992590484105609498853082638989325807314048093693037809585641923107111560657425818942188306707412450364306629388252703470986177015653066878851357223104753827017035196394453437003522819812592864615820819479760351407220242467335823023098818841756788792547705337162667704375079858269721643780434595991429280937344539774188274206210994898793896078967278834860908150796665828738950790752877348592497583232573977006230331389061904953368857582006116052877931404412562961331124909894115826025095088696076037542705823606876868008927665384877942617694252103921006688687081303859172173290088985433852743093381030380648735475241633728928233065163069043072236537531826181752245117760959834084285827874761521994791407735253980072358255545694531060964208311725292396323851143503533481068950518861820767734859689054708056651199775314585541079956605381888096988355413152613308772312582988578894222375323318310615174939272401167552549025976117433027914378723399018355584098012238602924922785289090446385971701840630703229708251194352723922551444698941450048174958113802064665889684406036514405427164721753778745628354829962483519100105392752134977146100530879726157154877127447310866795007150740420426431411834398787794330782580761135768835135944528920936351649166471573054470820742312201859822675117612763597931241532155921474618003280764228411542846529425877104837478985313167052033015116187548462667035958719365708845510198684999142922959626769491530032955424144423749309631032212949161234385038469663159800884461729384878666989100865026196211835643464422353368701807060929216936382640624732847883243450850340119498344559103277102698546207380513671304149389087654857089898455903635088640831099473672730527449011887557225267270053033789693722932833912848592634483125785031137609074439915150805516264279199750256452075388366308512154326689084319389980529492393870989137226762364481898680295803808615992122859307054377454871346061660288681572077284369789240663370433682910898304808566621649153667138211986089720424732844362005637080304468623533894169280697683372514430508787967834193376272758730684888320275454998008417105095745896277648061358214226829849868165085073535540892345512092900919341071024351264762883263172432926763564907016353373211812011844938006444517169932646004929855057392183315609325744630330042862373432701558232506559911738248535791540169442360104760195223020279385618906575653005439201313317322160193408524812711492105262708004482657735804105010454688846591942581618799380745691705697085708957889148019259776159005807228186689836660133734734688028297163381846843434101371787728658376795020644456669150631724370990770223394171817876650788613861660327013170922760241466628491945774299528242173855337230664678212100303643374761628156736099782443641454871360390898229951680418027456670470666214732471171614325641835273145038904205496309257403167865005492660723924952327943814992210876821315062685650366274991924983723474958167945485956244345193963870621147264955155998206227671875550887657293750796461331999530322812547770031712641060662158028743106511543158165715697476531647245588081114498436531600056015981571827790678647290241966840676231085324210287770019073311300654117286137812667048659015107683076869358292171346300312295462290478544402658661010489981276205702921888822086893989592620382220796567786456710569459250579647957331947706907267923695898756018832250450038772281773149362609242782746570354130252933471657765502287899999224597545095784196156621383264981535010259223479912596223778084412635836123986944733383508728838022615798132985179007390772842749941891452289372768744762930457146461793900915652020467392063880149839738491065924258510192235110179173156254740111584312246994800003151041083199388608443457635902006617042272238253834035369224493879766132718750234367163432619676016521995082262057195207185713251068803640544907406981659635125994038009590564445784562753298346201561035980483175748049493154217511042823817013402591752129530020681804834225787450223999759392233188164109513702388773133923177691167989456762855919355323227140690091164624144945731847354892526374740660838037103698716063842901439974675914703092341791782871567192224521467333853765039046488535018315090668632169488556681458763621128216845974299855342638438852312715003291692502616464407851048570732177423170325648248761994561118346036237330298440406402445346544082344546334553878040317960911339563026627337604393193679320496868937496339782267739736867425728522763208386074938435054808884181302580983336563223610684952851275646968141590033620226137313293030026952155239127926371258811318095127594508153039512342108274568893259700336429526548707747619770166654021639569063117803309779195058832460515587752423181554680448278020859219880591893709253385829387918720934221016308236513644484973979715546307030783721891317515250113823597307726177531817728781445052837079202784699372504106432232809274988915581680299453227756174476300771079588131454198689764013768812583143332831839439818828359665966938149018826782414891106373356554107697289011179182307527022997454790139576151442075811565328768137477601937491637462029546503591433103703658848674791894275104087027974998959958780242974603684413859122366372626393173474981126927411926470605976730843924047046325975000742360440568293225157142593704759984231428393789284111761297539179141577119385025413227642937645530509543001061568364233458318135186557196365024101689892048590211246384352427363099270535325183618058644639945601255491894474524506239243031394687495813506771420672279111816718713829991855744136703318512149787545970821122239974181520461803158731104448001940329774497450720308011945513049020397072831870297208183706363054605282208287823453373134510111444064471773921594243392472895586011888460053427606935137054117839838621246906726536507322399163811678085059096519730235317480207179685791021936301457514827656869343986369651476300121338529200061398584707295092194434032100044925113833563158592002828950453378160347641022797959725176640044329939084707187242697091031613059425465626036282341192098902529026771486797367552645889051113568985839454441934426193227728696059068388238211490687906446004764020990200787803479308203958133893380449740532938438376483762262959463113210088383974600407645701402594911976065551815864588340967744693276456949006125616789852657886344209640834940338570351085528094654536423329586564972919734856972185362570181534155059162764726453315654585770651695712654204805110385332317406215583314249772387944970798571662762989862492671753139019756602911457167670176173510390187342384707225646031768114865526018509191941209737128598754409025608061562858435357092176651540788990463737891017927708542104614384360324639960965315204289514453836425009907732744534395503256083085542664244480649763884167488266975675435543615782424912392568014152133351009192749231008195029605556010225891369230642430471381723798811932281435859469531384700707894158876680525139428163613537768735083130382036200505332890038949560856721574157440614425700457382478983997940201932762123747402266624631695325525839249118970369907134165801213950459780077514459937572509575782258394831583457733044049991052458417501451184512674006829183035311249349631833100025653237149304083680727966874535677704706559587258311192201342043117049994783982799490976415773932264679983969088444319489509044098152608543197817566604054589490850574305709687193324793371503395881889336175802427098547399465122511998155951140952991934252847809073368962826909419536417985636598782552896211627898932986892856540364270219764545519940018202233686307443916402228312661935838635684351387536458865146031382394566610632087468045612652268600530345010476040073476921449722041637483596163093327463708425127462098423988223330225295494226118711588573887861521354464340370748882683915722665792690625855757701053258092066494960153068378048595298969855545803730643305537950844907607879156648367807172688636471282714035690961085515671449012121853226501124870465901883008721794955993950247936152355040628211918461445715738180082650091394403216412880496428965820807966405636781507139557269988743607469669092705589724883205793455898260964057451130393462215252551484572572872890213348561413434405283794036768657544203760627536290950137017368095267861638933974043565344753627891427890604420290993918187339453474924765638856793108634973458212866567427957771103057702357732038012173462602112504482112959275350208356214608240586622338879643733765344888069483571443280260024288623028379285939850335091248437523649309733062067961124943317508639810255237935457228949616103661116583011627852344115986189629639367094695643192155151256539894016049607685817924670805687881442663046128899254631816260865663749779618817417539092740308776357622352027896874910690669955961051382947153177158588339660229181643777425754180677472668788597880313361784134406070671367565540502107714527681169511425804274195757108139467672128651548316199358083736550151420646837903054550617951141522294819387227000300131999874462708434421046101371278696233918494960864852242072452948198181680192104369217683822521417913886279775207209575760871766373434704888476426705915498862027617916593657608074028422479627137783951717546664902795530803862938053583214596026674176992123482297332831483278871766143851563037126807756714771264207262668888861488818041619358474937880292583928866861903042271857350047934954100721899334731542555189300077709375027438118874558572244287148737229322016714142345198674663099830550612633656515840885780410124698389399172960774255402183362057608051675051212556675201765144596724030797920530542491151458066961840592215564510921258220751763682136329923850013971511472507598449018837859931621291687580365781871484635772086364162617199837852120204168992680116118493473808587972272520587701148788865638435176381866789872100782746419795797591044880176741643181534364777523915993252936565246901982016493875655345237352250080589590920003554596355040338522942755429226595561239415303308313258220154053172423106257549531552436033438217292839493758166355624584407750983330586254060151360711908651698915117935181351733338211613786787371384615382116254417582682796347079767160870433928775487651482704541634479222248048169099171374690046448737127442676121469758948888427287321133021030311212635597166206808703915321051854987072412643313315365948300287798754962021835261875308281208623431609347973671457740663773371464996974130707863345563689653610194985096122343840829281255305169530162198498493820897806114955527485783647393172947410441544962553677138911057937982382888169342637911479433482498038313939521196778283498818111765995164859203811319675399781300652762073702772260503817118767160995156367172515832194200753579916168603950906342437885766756556276053028791747777207517217111148083951533972027247881242397715352416171508710628709266489129223968939101416793131387484215317380878029729439230840459257796184941695688102920842725904008948153943825831983604668492147692599669116456747034175916703496827619645271440948989423841886871952113475133098709710494996053425584499567999946858361903862305674466059896202545545873160645740551116349584022499624238252099426078602748842173552282529198071817500562299673612598795580390523419814948416716002574463889768925162759596533853672157330981171732967227556622177351038187013784593393083427570452850880800612414432850703866228728255467014970906927420220018414195508131446265122977855909207589954542733289307437902255394805569311423454393529552606972267095148001900467701889409986743201991112567486375764574005980496801496714703942012847268023022946864885864636397382251495192939192941412624175494624719273869616323480935510624056871646647121419370730529424195239479416690016965505277470233978979296719270283028539600796995134548535924577623983346537813161139009706053480140709129864998795352690289251886526603477465493589912679585748084621753877306876049169799625935856347779206380296464123079710095406689011139569798538237108410507967337078475464184809560836585753359341609401639490868971405023836036879151820844383547751912617737023448861881324587429539445226300617280754064310318907120613066159910990821250615935893905954547320026092632873483632058227906724003562443409541633689204809617007325985513277241553667811843691910987565394646233536241492945486106109515544292166937678953505555786413690251096217075914538862537200784059406996051923383937791313856794944856600242750670604615991878017012347405069443332590391784792401069670712304413450459035141692519207156375274944908864491350990402954391303040604333345290125845743637103672279602381591678998534212575017383668690840391062163645403639491671817784772123625896058851305022738255326044647819603562374687288611462656400909514382708559204330616242547654156774732548490094217964203603075880177460385042885591218462796649100570525174244994543500623137766512419032868072074003721357186689945527581911936616603722549117768590788666774721503108631279744280206625218221567873065508665937836366608909840626496445820015919438456570718743421973578393900867557989626194062069675933777608612094685039496757442206058694834306343487240587600956818429433194964320462824496069900303257225794875800538080637270968927614767276075718202058540015487054768138407792088364908075325364466834907449180107894872317485836551409464896374094019393030946378171560796308949735310298758463478556371609439904457026220357257097960600588104051116884326387955458679494236057452462631218276859372665498305693190452401632652816741754055460155157877934523293350028747882670215899711700198969857133277051909656412083657284168168942705425755067365744425716276304313094822920497074390484843226382601479433412781742696521296845532445397092864043565025878330211102845090777156158162916668445534121090009730947123476000491247963557102956109963710697151411768169088548576348282063678669123218327152778971186234096457092269855816335291390083832756005129691249133535436843972220374504114819352170179446778703644768979001015395069612611853904988224819134302328589192866028510746249120552226284088689382517104474601328700520472938444041637645803399449593009595920713353269310003218435396871198429408519218215822819601331138769759690655264742782569657663311632368770665745959032088320506306835295507851032787534354370690574893065520937358634467427691513747487278514655825219919125670629073823838562474414203933293352453303587483697438263377502512480604145105084650875192465735178498676701480843326551885291440162273311510176242596242586858126029300356695608786326084959938351569599559531606568498854971327150992870618697810801469831072993172969445352868205787945027799447083306113752788758857381835469356161026140407992948983946072683146074863088332770688604737093537499457919274739380188271115927191008244616465296087262668798566679591267297061041375355908978326362233710897395682737167147308672830179671447234785790175904652452898301913721526195412616247056665134345843222727161334840353326227850309341862964114031664402216120468544517214446239043783147711430578351578619791861368033688954779626207867881384167641393087688484064907975836439471427573322163744708073176211887211555860639825913720806492822748395144407252776343338714983337513743658392770566468173616607443674692157158993288660555500930686967647176924107886387576178673357708892517229684800959447569266020764031193276403172261775450046365524151423135208474032355699088969725831968608645253476606168809741245570402559745037471073274124164709252373102756349624173711859706350590463084230113469761934330684161192694180397737916272090891243106272442800592312129581450729927110989983385429557587100226434441348438733751609310455282379667837841079221875227409605896552855281648931753477805353055122530854653080457748791716329431298605006897993118715228248098050911973315933966711061394475165452291847282847447629891961958315164326053867153640823281346623633816020607872620012459007344105121735544299416256851104327210308241670054682820802399421892005207002734531638865458987436839284484975548126406220749602280413221133461366112064539364928113789382887730854395365654852989235706352325726758821945150406219015756240576037671537507975098884797328137733563681032303350948286122724120803026196677086068597752291953965037295348618094062539937183851327350821916862043265344728806075410580697243074912981653100580076687298359689648875863375783030939736146911558882856976213761894141476875691283404319880632610926905166335907834965657427078041801852625484665611966975937293611780432596638809279998404105992661550298313966440093680663956763801306526105731035949687856995739528169668470852925078223731563832479112429743207419375968325417152970963172708857723756616339419238754867686197143728633685046729305724569373732497839769412188050953048636087167715250140608674352351344067519286511359177092272017332311036667919116349013377086024331547253342027044141829568932584199779879002850735125488142756892963578534244891040072463498625460178321245846323010379675972787753964105512463664994256696916358773902950439397499294227441491660481115445726777586583025034229617443718259705743131785982292496279323929101447331332630959336395053032923137042149728293294898822801739428837498904861238670580014147502429862301321967698876013652145327882467972408507932299761181748777493731631680310581006200119231817061609620589422446609368237731984877648234716131178918026833790176887477169348517806739324588346987012229483651237550260171623085853314403035932422521327872134164075388259062596396277663231141550553464534096645341313250589091262281454367229990743743953885233831043706610719341285369847585486051531746432472704951100342354534216542704760175183114565018941510850684798815464090737827094493997912184058593119487699237200846577225931754522601668604297975141390600489970393277744124280770581612124770550834257783630264765756340905727026656192589470888978836383915966055081211564584970537713488080220081844317033599571151729724038389753393876054938578547246067348067363879159110917493132717189812510496922532996459535942433751435937017904867251586594660080864367932877150537620715202346437288434472258844375176498901782240787104756874283700048201893543139301060953670022822177280121797536295427655924829006270030894601594568010864459713900985344916689628659949537758042134883029463555133372732810918271925429941835672712807766619252045600813691921743859398196804516721775901824579637904784370377766230347624209852226243582432090907598789105984822047198398410324139305413467028369472170529568567277507824357192015727632467291058686282135141018634433428944363993843288882582965112124882202668143893119889466001648958101651610319688792772582368462027122677983221854071487315589682252059025649993614584137071697270233197313800059235413101844802738684307583417606088182266077619826030479802395586934290641837892515236763343121845096603808150742388005540728839620019734187681029707561237969411952583419947078510524838702107747225923438254307032591066888404370736264578876207102506381741351007670415133546398045164330078489199500335839731041229729272696796563124918632257085626971768470991351749138640815236232513054313157510717748999651445027399647663081495288278693804528235658677185908393669488241686268617205600852341573207853587664791283813010120098167983278828221525265953239053290288701259623687328676590094943880892962738415431768699458073754655950899406151327235334366648545705186935702013999820180897054172303006020191682847517793833150550653687832226845237518814675392804102399488105051483618981614480442855980092503200364278963281836143078060714376063804333072851238192473733995724059082766200252385914066033629265362485362700509142878427032411629710639232425762872342373959649289613465715976025845362233695240209578392560361589296258344576884616211524345985721293020366582268751779739666111109688629476401020734348661404246755033261057095860981416621291109837668368386931456942748832420292270855299539311924881777999765265509804819672911539418337697326426421224395604902975382503989601854923733390784923512042651878192935745422787170352243101773234492267028125457588514672278721140391790850660899173681383699508308324264087235121914088140739681250054337365567966346936189154935023634308908727927894474636232091640104455710385461620505551233907098748463105146190800670770761990331423841512696483880326291090988694901118977641743077540661780432631640988805596173572350188708210315059809036587805350727639047244804424698987897908079998616438090088087132836321370831166919070237125070478623859451311275196925707859460629107938105598506342072064755827299780666200264111306674933830453106010112943354806312565753930743730908966616310824799769130515984935245162597446410201168828912384019752985560353546596821362950814961719015895781981476701833715767090457729585157631788253244084522838755810156159699286792001792394930437366761996099889150566436290848498410749956453437251282552833196023281984772183383937779208715922466587744726676080843184463848476355151625116087756167396401969227068697886973760746665849817915087119546406676532900937828422896176258507172660046029615908599010478654072205949293102870615831094618923807086927657719278142796098695913001381552058789615486193821976204856889479268965794984152997034033478645838250306006723487383959005950782409194567278310795630682046499653427073054934041674393375839494473063982102279725176353818603480893269862151570019466777073278977624953151394538004592939551070321708293389917295730371967408801400485989552104604469683084688387440282794787516015332330096505805357589813718564213375995298298109148055064420745507359465011983003876843084376972424376020319362511078636699626823305831202763951153999633869743832835490835321282516227462617417675134650636422224916041082239227050904901656199408020761373448076491664354052196356558824998955898699086008806248168034946604236705018895824307435094901259539062824914839033842108292280288454616548592278255272557909969521335815417282963299448376302538450436526960359822703715354953231266243656012263679411318410157942532846477804666043867883555273608441937861216451199973835018279054259166164816703510891156545135560645469080416434194841120180337348928984686148568509941895930945827241570568988222675408450273106641816342764244117832476154557543202822716553953310917232686236542608787956638639804185304285536949547324127048231400812806618187670019975077429999129876320805207756793502631841245319868869406045602321716231337984609352006171169415294746066787042382542023514445196568214461249976096297284896736245397451179936931921682136026804757853539827612567127478432408600548949569539563997011467909205387572717001190331389717725029190554041232169528743281101054819089228072043755565540411321376615116133035893144388934261505306341725868657471203663354037058211338104498064520134306635524936510302466311644636398164495945664197310251311881013044781174566359834755051597769975740801951947531655327868471851243428115491053698166627899636216873457406099650801178124430506664673372218150390729933341724272128181764558376328898017189907761427029526758776531138022333968659256159300310356518099701266141973108025539322582806177118405660057428592953604182577233566059756201300394263435578865361228395641495526556018408727053899445208258402024070462602491307428397694091080937869315113188600356298889110600327312222726050650180874750538213850079149459456022908154130472892097382331887993561150778303177471608871625000358325815681348852826013094207699414783998156659316854645752092389744700641303284783254337729321771803400971396967112075741519808064698556614538428331284320459911460823791400507942462106463248362919761203749458906215205415879263161538690368430503870388398973311924452530210913975257957636355139287188942737449527579066561941823932236459625384653245415657009467927233387512748557150810813171020923574864676602111604479030132897034848921378231766262418907732290190110495965106108086687275294565687098852833313514009863530867330435033928394923676314118633905913844630322239516058697140248480666264993028811563232312753449347907438822884877909906822023125048304138555743564446644982108915948726570841614458667173495815765687687917564996743738108800098422938534459586447602521829503291801115072519255675300957870830969027656842751686843448973938632273435432558077878536219429700895422724977945166332527142381600607613433752522547730422824585027064824733032211358414615189534683393669064748340112725631327688062182619149727869805045677258480916085368656997935795088602357863667178157324297534212874991276595067219237542078993786934895488241383928054104456798026159508001291427681652221321553650708988922499826133854601274014914601258201702059515028843706776348858744086042121186632101616706385362815890630112468828806225326262416334935602411095040522550876539416823838354655839963827221390619485388533447156824534200989395935829000765669064660442586912035521916218784546612068265091449808788289443124709825135627880060084800752533874250669446016598374041186525189931834331318232049821400958982951029858142133178676572630315790746301742380165365186770019581378358464583575226090287508201736020536711643657461787320025197433135895338533804036869422182451519465006753473322300026783112831236716967486539139906537038787130037766103615525459625586113738639492248520637278839506087752138907250127784893832304129641528445523793869315977490161880568683962052852877419728517099346458913089054320065352111652949554982663017644970034358785925712343237756088473128286049619316132162022044818432722269071557668178378324511078264754045703356508527189365739503817995653125249371405922629833175212171472005944516765852128070187053878586719529580486746721898947686869361219361000907307540257387116472773271015926086582015394226908134071765205081652860296709332729176951976586263782095584092012353353912568551158536517159784323692397172286837714215920604175785424743359447548624178680312200082191907991579022222221638323608260159554737907006825282095456397777831571055624512664565527857046635478853241654694698871489451215494169618619149772498805000472901473001764751612900032243922315843837786884213586600905202239976401963440923047139719053661008736146635180770362411327509433369148475371895334175233595405192709623600924440533462184836135579589050699511754710249151160667901840953220715706551447783565892627597118578866458656321627898324490736026929911559494389763766207736774619373579315668080915013372888322329718152541545428034122460273759745874058813824966864567906823685188194174685661402432294653913129184211836323146496025522807262992476983897277006430931185349292623897938775633826955428830129472889091977928612279343010960224079011071515026720687508449953327619116479447323511388018997062207023049839829511484638093277161948548501747447276757868309359607045751922414479407481100090135688856323536197335588048106269052438617784814678177213076639895997230801984120659024114286322089205903663935211093229273016217198092096107805766784141413752280012214171157406841363544139455584989162631868208314524748432833309140809847701105990251014229059024943167286235805693136867023324248639513701629398033002849878522054237058943912369635529681153685784348804002371428726359042870951751604649443696368690378743082469247597908703884446162701600013708320541076479924428094893976955818157136506188171252460564843330420080333941832380700422966686890271642863776953189472358881868664497153811236553748439643994168978260082620818654914104362093957845620793939410608249598128994835414009595467816173218507207574653481665435816805733371217973479897662025132175492057070316531423931608778995807862778255843651141624454414746808493314977276078331080027254475549185811159548650260249075336199703584247693199879667354504927836493171573804507772251957140649281104899823929688973422882896785341090180264048383132064244706675659995406202635249833168357736574700896061364268770382851477078524963627084138572948496662402996968554916405165800369034740838222499715374239899325631967834805212611753944366176265885748568979390500866384534046989969918065991573222336768077008152205533053046331893066270338764726541464646911750830119066086934440334375630829056554538237462566535333240606958572215386347430745778855834956878037511047170602625647881742686710948758644924408557490543691676953432633300929776258392480903858683753038696096135216297938688937474187076593127044431137970487000107840311759391572503308688258994947111929402276386527054602894723216233742935840029680299223997915304588363819437215042265743030550083587678290275613639763801790160866503480007988486075611325862606894371811455972421092505949259194850169022575031696716611805689703684908106774211948692153390354736057504611349729700863076914912500354576848539344884464330506557587181770257643132281424514443678075545412365815839658492383098317031618052347882118549732385962194920209371753592549554788757976834620999001599622017445013342683780736382504382534135346967820520249761578074192364407364867791170466119036720609957251584742283377233981169446737652584700829747486818649133527348112675963378824351664146404961526994670642565062120437125769230372106100862610812521110711615186887377075540279736446220814066083632939971464557510946660459087175570719955696144708169173654389026870667807939263135037833806429457195793931979322492782204580206558558269969195901020227283773243557225902871314527044255221750172303476382096488177464503220659047154769250220290717087147022463362586348666564133009748024645455820961046879091651261090424255652099422379834698526437508372956195435961241654239530469325412011767353756432851287761160098601562467511776200748348556019877065523976322717530263656181246043290265226496247067147201304289703809488180151084447729244376449620183531477558902627963919596624361161038495606073344203000399429828633928471016729718566856708496553836574808195258970270948705114175566238369217566145188522584675176117832250605558171224652653269227415838573527228827304274019254485234785722177712991478161888231363280231444525738265347479477098857401094271304184022175178335895767021509220785737009020849096730497397404058485522293131830166395974431240428094626659028424194120682137271523140644511944970581657326916397210611573201543415796959575461139147482967933976168315804466414942992821455192702235943113272263886539737830736878175046816732189290535714995314251880560370158285306629735957205726862076880216200775382990067701777487526819022731746586366954136082864204782192629776664997761451883761296558218081984401154581473140273516221706603445117976909724288851133629685033397452550863130097174425552396598652358297522188136735032593655025727391129789232684553498696862799436704549086892799124343139775176175310159307744250085165085094486016662578959180220921125155075616496872566595635317863210370670385625205002515229770216052244972671840035729535977584022518430815250112477396936427039058451821445287695580855823003643377639933113243286696365843934609647238624301377978041109364906107518140789564912173189076987970695645227239695922323796564767567524203121626861200414392365034114894230013274494542279081782934162098160205163003279910003560279328281776454508206643990330421324383619765275403196466955666533927424351483540965430435691586791168375023117469544994282262523033689776289819336591484821960006987719255957393081115195966593202721605738072231463831362094522228361143407462150315103700968099497705588923126023485668361484636145922649504188351065372080126813706988754705035763041978324207572236040038032868986345505180853904191610110384001164694859598249911185170790288934944919072613496227442680276063919172431813020273293755257383169488695286032357954920554361795963907394608776175554292580182049845936117872038736552031696348266278634161831165014709216108613017272596381629212255922612125956495053803937379204191809188074946566286512697336908710231001866919310474908457634032107792272401454297303479648387990904525412931575218758911099601747088773844714621935184133811724149754986716901048340993996808925027579136889169166652935789059167328092195371676212885823588845151722751939633999009759392653393069566748019229253162931382676726795526635202574708991554962004130154694632255517147968508689261240336420215500565284700105890552572887030072831696970328635933781577567350381396999665568785545613413243312833946727988135321128142571149717898638329175250110083644064276860284591684498579162957776281535756758257299422654176198105136690008659330815635901010003913274448658100266025103934717015600625028909777953950355074569023281098730511480309077952678564494865708880773609294486380197771783455989888758208585476512569970827501258302282372274909953435696777789365799937182642545436587961162102822295665493151116750778524650501269695798127358032976794866982200952352400702097601292840725748548882706776415256891518206498778023287421746732676604028856049383836437677114451479339260173825006035438257414399489380422310685700631212608369413975780678549426700755259313730561593492754301409887144476662006208105932777866344062765792837850829086212953383506037696937212025217156972294296672808155896781859028699979030069840163191596551707982949466287958153496476876335475946006713058384420853708637473764792906399325148987663714439533778272325045250427267890214980662659197671161660128094842199907596312979899004589721938506383874340356340881536506858065095509750350778291146734341545207626105864465883608777697161230072103316311014482785985790158301592898251021913941122505619876002836248979306135915129601283204613681755182694715386713314152601666049140895805332014782912019688145457693598739406193505658155987175685219536583110286879902925275584209495759164270905282552075846214030385002976204999714825348032036854037088954167322616806237289347301642148787024255840538268419720753471946576420586073852157670636988685298448200699091977690588069507230814287259636307166033572678786246904576029144801262914379854941057710441825210657867700385309480383160873950889070362947669055417653871097517536659130137387575222641668024147304740268522654014917327239915780657307766783080966161557637556492739125534760110579453651312827179930702516568099544144967684134163164794436503892112928330306731812199786388930885404933789178040593717606375664406431433632572252295606759210422508314033377167337899041866899903368186052708805636917681592628503712686832020116225808121388412410526129846068123623534131021934906335198585226964117632246604160899549473846566836709265316560340321026287193087714212856205359353491776670355768989675122102703735849930927027532432643204195125345130309984309877180477421005656855311500681241993084681248615771222821016333614895724601336456184127834517555449126413725538195873453656666776790636599917653753014123404310544957580088310705542246770709361361813008497868129336814981895682917734298969869967733919656528472875009210293589319897776437333349419932841213121196011263757739843131910189390004672179520723291334272734576127597558783615884203271768540391056194830033066989482540088339304189430566573896766342864298929211231505829924327490648712458688026064799809340605736891220699654105434763609955992678079743293638538931554211726225286809945668596564874195547362840296160182483790911386580840685951655955805422296536972444670983447206224890195748128672062948775663788939936507226226845901719906066480457392417236102018266466176021199495795512479229220104368065180501246149586498763076463925921053067380173631941232921141041239356263681868458836494466944135957328715731091195010164912726486422107071760592408154204030414289880611965132693150147793216217266142053578336375434671147950894595392644148184014715300441622941456324526231094618163059143139672110384973125620441212672971717086060307427734133897020894258980574197633655728054044020918835371768068509183540108675496080225819702371420143571041988366835369167839037318225587212785882761027803646157014025573070367121279725229858318199497704793044994489430663291305322010355002039611248622050301758609963169041568394660137785796536448224683668535318271788148606156711477769239030212699833659357813965641735525019566793066743099987430074850908917147951404088698550827766412002251946820823815193630566019908119722803090078224378384451016206767303751745831434821967417296404892203466086011678740671505288770649393423062988794311118119933522692618121681834002247030846172422727336612159602678413764347233539379464421405799708821290128381726667302785360604940305257303434251437899058379061768562586132523327994121545421652815924818150692608129118389182873969097062292335029977116917651849187055014430798132675754950201427809476744085489100597003528641399356541040382891019276704925539198675365109457334312162383363485126393838095985484621890957427796824497400950843750995653061348649397220157813548362933238750039889920467899297112008849969570091543499227647752553484308766590682884654977961062938102535178819204739553250987969746498889286238568038366326591347257637760001180149196545087381396461571721406912901507602383314303636805816206919436127783182792175672068993980250044123454273579297416133478731169556975862816096479014672856259663434594361070542953982192757696305843738101009055078280503856495327467636382474965902704055941028575411357975679400060087682867155411410731262859262932821329540142392395427698623968676538124676787396767285987552040378106164773581282465435497333575565243189949860827005275752165262434048986012121820726843175080380498144675472169206927217933006372200325450337077498283583852283929067469155240425901258474960434162200701008199034148200818551607537289815531925553841974319042443283826295807506939540525766550456052010215253193490395858268883134873487573299882469592034363093790249726473785261923372048060155866853107075943460578307079296946233929222795204482956404075538072780931747176842407584661192691442924394235551863206894812163296021725996488697196522510354429437841521055262872737931399534486022300137512342842771236404452126463875864956758671632972788815567847646013098162660380136771650225771900639846947239504793184994075702570558920812016927710346358028897243448350785429521239265900432224301179377552841896619368734347310032107497596326492024533534003957422901579951006682102385260378760982296285930439185326392380994507451742578387623408394643852146390644756800964989959759603462771716934520346491425643942718174215727338607509179679594595251273648274526628919718751970222925439548166911540885930072837833099547351599586934025241999423912064778970971523064759643103557810336270988612623697973293991070040799070709970703597748653756746813643254632799856327090095278090868270133391539025107549777748074291775957676732089236237985816434682005723779295333608578666596265319003736214421514706949461292215194656866733557333508842752686943283556387125908143255162934204523178875803161065761213697019825404678612495180753280323442732271267922009578076348430407132085544984029949679340122133980283319287599594523091124632918870157806080025845820733683536286172907932079231118160976545111220851901188372642740762797372315185885510251544636066910821116341538909101004256422837455054126883795558034991421102777327024317962560059600825506711650924331308598653973394383467574977144280194376076685833305886512815622515792819433953295719863196349106970626011343041516615030134097568894157715270771741320057881523750780533271480973095434612561571497377710405879701460672252125808977291822116658067268802895092289028942991914048485133834757265249046484555187335021435031996253006974703459347589807811213557273547515124529385095436119532884299059956029007147863820367650022740597409941584360132168815355612401878803896995257238623650502056805138354133921950334842806178269553912612087495443460511634898347747705380378174288538998872438817119101696070164824993895117496720374581806341830921645237717044588232041664614145700326955734304137227161153408887398636641338196685895435725231328379515431664537325579930598077376231791437595250201723121744806211840956807233035397223033440864688294371902287944259051284409390619524854446340389049028601447578680177730696382264230913214628005554054754210320837465928759058680622198770583072495590536439988298882673183554983420456849388109510103107969680257238028655066543869989333398621361391822854704464537349948503979598072719909160061498480028155903469743683867377844494949990497270512738692711370990163773413567156701964550747660823711770908578176045656500019038755271589667599812188149786267560539492203000688441363549099682929872434220135259913014069677884465865663042770164546187644326977253282573072446534099432153840409898659183612359836851062384610966741614801544365381803278348455147717538593692955553385515894710089950124127894268515186384687130073780423530194113092300750731837653523561373192348304450685367633414451590108915569566502168112285854209344269256356982407001250835093175963756497992120298882639608798010850777998151763216976275726440836727833585224581435404807011448020807732247049573222166178834284731398071779616597821704375127805843416827167875251582570810023491171296018096664160599209068587616646885196561199868361824576966529720374515527670176666905393823734882083599957220981660067485280110252470687530769132135670137523469231001759306520129763089514489205697252387698394585862438845602178736252215758202983817034636772764033307279200109264177877448663063018448976427677408846850343452880723927832799458867138439283735412596914981983073469963213480331996346162250274160616699257949093484203901350735582292605950577661326575454037963459402601883105415793779891867205664976581444198492411622661749842864525897210728670108156369244132023084099559724001300010637087436601192769812389169783814861519443725338054452916189754398692124161936009281798728843431153588853505189362150426645170135709793085571283860844740742110287607767993934558066430718367545767397887928440617429514227541380005426305414136518783762634135101263215476262383767305098711660395567771435969965829963741263835559630224788137914228299416264952854562228933852646416139001462906022730485025387952200391055096183769572255031957755117975093721568573534174863282445315478772514957705508908995189940085201415955296257235323479720034786237255697377102966467750261759928680313085079594724177890176654668624768776045321367706149349544128981612796453902278996242773811143494158448694623173287864071145241983570836969668610247201431010266655509107682686691119938855698097385834818867620497763277783079896260448300538808759692044606714563216323392788811314772692885070470405704861145528476955055022459562795230902743575694870411099477735151189165516764205275784018763134121226468097203487510347101350375605636518571042459782989919712618394092230525168904869615676303589258107389795447552156496009728773882398273590813460205865478691913301612388613340598165971162696330908651776766556672274778737072353889171468615323949877592119638062416224852669149091213369813044556620930887922935884903633804800057837413113444355800390162692074417910487919809539464343349567080037085753907848509309680941014333001495008947285811992546461322427681887708120863446320353584769454123806330489940830141127108896601674756518602082559715931219532794588382118955671429209374799606859969772508920026098642711070316188712899058685230231942163906826821829840919202270367215309352633083734153343424421547196388473544752702005228039201438750067475457638858513904241436648564956582525588902033819457578270224149563977765637221101504757413427780191661992091075075724875672919414430337399529256568660871200963481931727515182038820438607918458010974458212767732417446405151020599010165343897561933193648251072128010006888817552757107852375572304873898342621520153617761097857862814657444247124874946234168156052479755510921344327490775251445554029293487177434262348613433740227306158213713784548682668430229856461719726243198892382646966513456872864598652234211256084857659400099687168638751377037278023390015319334056167128968842251982502590056780928040276602671838264264982317788787698317658471810447413502739950290475532448789329096714294862116623587381854017821644369364252115064182361986564280972138403568325725775200566482017235422751221600104226908473678670657506313590275673647003306490322570102911099000934801771064908660310321430642139128641038043931263814363505391342171349156572787665501816265067072232239670797429621411959289922016818069460558754942394668872490768918985089490526647941268323204799841199198167076269995057405274029346951477129532304625166086791327098903125481221822309671970530060588358547011463612955252566128757166718100304669232955076911873108109768846362611006640673912584604444254554671027093746998269425958490862305152505468805327019895409717139547562504678858061558354422451302363728005787882558172686092203433239431796625648344331966937744001070294903026391129450806887288063509404876174022475342781692394417926308799549001056904777479597892653465129851117851501124661785998505862312402792146403077965925694222797415628898199712104263433268931860953534718672790466475744056111613070832058803676863513325244082479617080641291422619648478753862300816386404069333289211028474699569565894030587426768575115396197213565618937909554400551077184725727185201256199292319950051720001964065375678872614027230590576715522632452208527011961774136507815990748037931631047057047116547564655821360814787346765935573803655258668356469219054505657428392768161181187513606814317694078114676415422094047157854425153090546606811177729941881928348441113675780954520742703984075548314776556012590050147505905843152612712829191479478826665020903376466419592686534603239419334352842962465584638270961650009160794398776273911449847557071467925263177870803932233976696113778149748232183141345501648844134430857404250627751983789696586204183283178429826688212152746621158920218632222776848604013135502510784512337745038821729578679813227005768138300235022802924661103769916749243697347061795982056872007537312818560195655296399647468297668070383669557729611940616347785533077180288104855095811021662895056853486366006598635152314446792392745051078533284270112547320532678618476300849751322288303394938522852954085018367348075993147478371323466360726161697412798301140354710118751447019031375113165510186502112771689952884459139102262152471822012978727178895167291123197438502836769758404736741386738231631325630433381254752041720305778141189433375908385008421090394408059862682437490522444423326514522589678534371962462925805469244828661149217315657844710833823739548923027537870120936268514879767519068712746213640734115475008416722503287700184992009323111752575767583759681339881997376744997414932025632768294791481894842617093542072455131466968170753146923978401208751762287295177585491034890973867135591768873898183214258862164353700509388095257307498110022069838449510479909754818631270889619719901464672315077514680646190841033577485357085374831033287641296985492923931067547314371564636456814868483091816398892532836889921397481902735008609411538925891983724042181019592825866773766029723082567037313074434464901563652453141566986527659667856800422375445765309443250149494022120970286591258146554442910993456783363525565745951194905427279963882599451559237815342010574404383917450224528904913579543776201647099587959777094079546572775421174042046302754181258243762825202618345941291544684383518263117126419304514348399750496019822450188879469676148073785175439192658265346677931098475220322701789790215240016227246473610377418933400412196819598762153765983892584964832053699537934819212841330484076307561419117324792505494779469042688896068064185843935043275099663847325349158522577339954314990447003340145771747654753131693199890568892802282186351632920032381062000131770295051507624637676577630768918061915591809181581596887369574843837700708784559407030498036771497934861359512372633533371977449868999473419578366089294824643682301544009215520097934239545608713006901695232454530434131494627053338494291582197708154544133936126255421743867703574718500479602417606275089735402160085496800154690999680307960750236870300386409804009933028563466284872855237462934181773289433620579531738779197893563464226891805097291884228999115056657080078480170884192165003200860250946201862972831883442489278595401313912600068023051237607619640768170981320381354514871010286591841033111518629886085799321614763174473559821399264533426161332291272981216486469105679358343002563893426033923609226697313591855768946858889383804011420214890221787411860455026561555714245502197672307419749495617945761118055419537414009090992412283696532882638253102651000888207055899159444966014807160016300375922875949575858836189176180592773191114241441424141021189085950889627268878420812342308806331073446670983381976584882845746132222538151213796789690174474474003294735760146021698609812574134853498983436504462274341058731216359178073796173204501654685224000856799972471598665896967876888311013439750503354924285052950928397226929553620422663934605065985969919260875389902446693500724997870826663053593976937511412280801552068753407859431745869086754936765965299757271124980211173769686940816960525469840674979672992774955294111110331350339892315998970271514137707092749690656519578940847743791548034842147388241087679123153033086111586641276515428668824982882580958262778927026824862480162381259619130777976862975587420293286607334069802007091206436563631235322456851529771721873458201414132172452210028832634613343558219618685497055738468764086518916156966267836740721169479133868508199435474967096725114818360734752295123128420107793553459671235737555078697228718071113293021358120776096240958869094135321809046286514611647602227429841689485996449127460531564300618467328225353250337134616220858924829857728464673190267274498664763753262138255820482693418274806067434212379757426947491071172953210861257425896669589665917844718057652993816745075438938009385690148319722983558220718149898299288517604422545878573015928667277355493608144719720078597999306163760018522420565050508927219141988259424370822453434976094150862523030301672284710833376184182127895530533072126650210761788018704456108758132056887255729898374682013726883162696240131055688983971266077743615015939139782700654921408329462052583678439790255456837653683647200287166881634022991219085255476072173406734591130940607652871350158648204470702487673757160272047768020301992467439787284803027268910781909535688599795944127380193202212812245261753949461105903125005101276334992690674271515571568641066087114290303802985102914316685809372302182230796634793766881325965931518740126470914557624861251348608825046912796086912256171364057053155558978287811968795600572075462820439293234968196424855630929029501700502816282947441942354184933190493451859349794082863145090770387447522395026422158869086307484929140718705871092785908816558067299670375093889921779960193130959131875629187085966711012299111275681642162763159587184497612149527762244373130783515287742648390487135678871661865633329803079710438978286329372798545105761568753167646835897073334701561685555649301234689236600669317567093025163857142259721661005016051138371955335413270782665142828975499143338685540308536829561805639177276944100898443544017312976720209273080813715397988569934414988070672476000764763337769600248506127180655767344582566164959747655396066205507386647012831423720083487830713170156183191366158697316395686855431596938758324191206601854326982211016852908513736937922172480425114141010479412029176558259016373407577447041701450861681554622011460601449851785787984324186670260883777395964773132379304425993349702538302179089356578693356818979163602046914024230756915693780675709352119374044214897721976903049722493123654120718653806886661113929437992235392400939467449652005451943844078518423944626856429145851449330173970572397817945521381997034292736902172605055817595588771479347310964347613717999109635237013254391752749962518918039282888431319627642728928859719941381299825908476555113099724225718643580942912788110259305911322394980503750489545438756389931708972102194070596280580063219881756908061740262420210846390318717043641321151649847726276497799100660947937465449365482477889524261728400814357545667446967992152958700172720361402763133975971958616586488066386731935170509493146398684772987399929361204204779760243354091267840396339046063080328732267612893998059514409865208172447614230622600128343109928207053480974631995667862871559868999348767629620424915096710664030141360072009348804564538475996899411418415391033909858696431869517749574695197685580682145469143879725495291032605755973848521672319614554707632706293729013895609043795029520888351009286606277371483058557387259302824115982542355113610267675717274147920479251922783554933793552767175578925682780869901201663144111718440838132335754663602273577460499125810219609627038576611576225191561278396777352433770539641589477458461568007885750016162723280765450156600329716778070488524126165032221936162256692477297030550095142163435264566989696757570250476375480842942118867107036307185889076997373783009427311467693307573633099507712713867373647222834806362118004849073611237951971939249329324415842468534620793412355273034558119829324028399722287425737221620401438877795441643181778113175360888316017553777863056782403241051832414756127140297134445875733298597946011624100059240327429566501871549523276231674500209027818094373822042705837936815729960699544415544595990907612933314463432809902760254310534430586342999602082052792100321318690368855262740255225816920427472978188957565980818097013028108431958983108826528030064161175494133885468142058797086638362519831753197879057973430581765783765334447553118118199080415009448022678145803078906763261836267971142562712144194138420432999271057062281520301759278311426250008007865841030603523438246850983946155989085430422884927836128327246316724757846426286491848832126544010237656320118283961136798901526126683335770849835971984779918098864004119972949790243593933486110696335002315412860442341021806233150529518752624881402448166405888589229034526971149921905120141264279035583240452240964638723505497089427437942200965155845980458580059767408382035877868220110097501968131703854543158515887366237762215861777365390992529414753684143046127772641270713675550716896818746815286577919523491205503285192058350982698771934101586307810299959051007794379277230464890253430588208409978351524849578327842756146012331046114551686260181815873853677641970093617712910775873276382725618625561911031225973757236815811699051810676507034796771374919914624987045881729390042554788261746221980425873584344823771041399626010683983664146029235705314788022463084176865809787182355479892777273294122467358521104461994176629453437217900537979786024643637521427661891727073553671390535774404410413496907614229071631512113629334343398061332344092387595935151729241818384418410242995244154007265436503370049487889801639280540506087970117033527316309846446528201810893856936600080208759566890280197652608790369904305510165098117984242469373342212688685569193273217150903993612926419710417203474350263422853163593932418221160757984436879941420300214022429173309306737390247541225551099274723618295252730586754140257009106176596501642909817845460256508562312930360375585277338413704227296004826932500585768958749596008643289187453535204655875383264717435641873723354160657500343202448019089281083422310022291182139751352428042496012224820028337999569329081160632403113948088074335316678462355760496015029371362923630225730620898058613667543708333551740763382452051776669014527835563419456960593627721400202748675604715675716618539603242303892622433454533689691043038807392821828671078919479579655442613860655106875719659348995478078997594800003754833507919442913329612764056657776262059854133220000582895639680153234785451676690924508238445087512816997697240554996522232265187255031170163021299046234483391114995193031039826503457439481561302269316569635803509711344747031560784445135794984079301720345003268316945210239723992512179414878049584880516474538650321890359934618135366465416037356917944385525070752546210461196218106250744746219937502984722744307778505762204658297530716917339788513208803116414095225617977894501587714607335068089308377127837992979685572705063421609072360120189439255443389367879305409874402898083324625298027845917993892527761657925311931022129161195281026361936890050217418202019944333700694403533712342224271061827855913520455612029193792012315582589842720590933846086842587430008375904585303412701757478705425142275071108292095296232955326815731934140747123977374377891874621119966174709649501801058053153408296563506046207246319045283743743547269253278224412593166881610744997180605812730912497989979946804267986863824949806806970088316479916403626874366878556936645175159288537376743143169273908475374555812573262599546962855407442343492977223489264348618621419967787849941394040491324579492069587780426696949894577693819403473358047170064700644371290209970995337100520588726031418946564251535550125333803920292445875908037958866716342268435695697491890350421109438934397023873275248107076410633969363464518372735006645092877790021668389614644718378467622596362908728623693351666986927080033790317167384981827847455398884540173691940260238857263965111002888286032227211207587482935998346667841648784112522334929132566163043668765484837074973145079117382580034801237919363001053184181814595365768133280282481206799676311949914231764636566829937173430487563619054671545071809295481808871453938821839222170828141358660277655198217157624659969864058464274827682128170975608547599023238100501606303720867256836993935847642965537324056240781887409292721981084248094473594621215974047985524398858844548925195799385795664849326357359218924489058676089425084306704441622571477674211895703178712452568637136909661856001330081233627673951591821657722228896197138762034357010581089661411792767825110257261518332436432962238387681064178218837845795093710766464267632034919955816076650490439450293229289724908613436610532490702293211567164316492101825597140152067141131540794748421271540914446498054105612497678392235014934831885593363125616831909338965382894787629759941685394341292373455940405348813481153354666702473936683190365479733169338193608793417556125285480126899149439448614356559974273274512499627432094359003474998986255413223904788955916476339264118570774696423888406653477997054074777184674003833887101349713527244276849509219245362348709574596729460431922284097754282710522547315401990350393599203234490407053003954019061690492982620302639353129462046325669893502593171577541915963773510794132965330098753998720419069369360968874279444083553242692620846452140465279400499134734390075309972397984028660104319654957355907153725465509016648043647883321144198873352413098477526793758466381361027458986404532187256410074614719337970851398773184223625020865455494663850922608530876112654029330620492452486428502617645623129134260004960506701608516065103246601325470227196610130249385225921443889492254385363784663002200573596289318835562851383113298380117501167360518195548669477445746297322707847972725610185216836860326438479407613814935400804353320183489289479248609550582538116119580790585633366845378995004845915819704363696609270914946472199378443979062143129795625804347180582530000718113933185964687532211436614930028807479378046818386007628161220138898323156674725348087397110110408464134943973325893682230908617145564931980860871220383968420032210036440851287106767009465441863846486361899410123350329558807184992577612243217594700278856362659181760065380498396784410390795699966767403409252468951407011005979884951933594170481947649425014595734986118642954127061399817263703086448164126502726162739561526664755907624011190977897429838154324834018201000468245611370098894071485470348281141836976063363987146427177960509236543650650259658321948073502904541433881059499728821550239471590243265504442864444452264564458934114424550295698084757261449335722431764843202799185587058132702499466094186325770582088725777221378161751759817586495404678891560698586343422493789002298361194067621110554976968679953282602581558719677277999350956243301413289149624784754686143701878467804298515273542196754236761500288166028112554839563942253389460192609473319473308125788212390778284136574825475977847463748406077330576064250658497430929393933928164771747994866530774304803604255664808474740047162998192755856171260827175377101448181154085044548330011546701484128228599633484087282129255001220317985477200482931769910713806397320589312587585490169858110321282960266539528333631428905255002767374946253903181657316108691390753988284984838078941341315443710669490276714432926992119023478490856579127183660231345691401282106779664143904213651992294885043628323390986511180806593136945935987903341091157153050136811578021132900099061079475163531042435551249128312611971150721335101422209751545697822214468416025190306957369844979824542036042449701747436705385740700557446614765484402517611648992790284344266897031427836364722148010747561714600108955421028903072245866771862578088039242545413168403052917161534622242635178085435152540034917596189504522597460192845802574309106902402988760855879226193621899154429803741989091768691173567814198028977588600115915673836402715501089177672951338671495547736916955503764988815849923979445408979261408675708113567614461024926076255218195735285095980890479276881912861462176089570951238263742456329005608441470878409029924049508741255345132427504444216551981570409998365412713607709858547570887003184115716890412961864141366379248598214683590134790404577798779505242650855838525430276901934086750283910441898900419244711683953523046471689710068728261794326988808167951794110681724288447958772548555310768961653706483924617015416196371605606896845388486852241515409405142558987439318465437329539550408168658224848747967936198521007025683731643864824951104129507545478359280811852922165449925044062980602499244909581437132217809629531604766222808032245548276578264919660082852611097390366672738157857989605802250404240661895922617064929267122614810455987914233896970636163433232985714603899399788217481615351963278571810194848108718879263593979555015127590566021568681004002706638572507182098865611699254564094404341390126712409950860029067711212026423339712880065566629880035158490875487696760845119912856433661715180060100493042743379996344668738300844529578751021398187705900973314758211094588038202613144237701313505728615152870387858073526773978310788971253555973962476771909600914899154714456727221572902324642317174513785557739865223931650466811569549562463291221706150632581353038297537342411520733105429100227219601180012386571302755253102393722256534701336758953096062500410188838187079640488640487423977909563999675171635615661436166126192037508176885131426985397254491902400427339909922037003550093933661318953330443080089304104275064673870341379113587397659039228292690642473527416089997307044684614509448765505142435112872053696367431250290327658898747133886252686863354790590142893514388747374381579429408534071022440491396695367004008658151179067004810868991866708415254230462161291201384504496582404157621969451682762267482918795067965077050999452404528388544438600513459218332117478373360144201708698906585328167918782266637257240124471189192822429126025294153810905258479983254523533538136841344830003883002819992209115734244309092830583040310596657200064619305126561980662667742901871288672459624565992193998016282403012567846167452446339272210104172341043362281598522842125266404739164258565911596562449533701498211495339090435073080577954088523398326496965268729470006793930994281613529612339657245596659825041202154680013098750145777710506003666245977703466215115871945116238132951266093766080013261142763115273468653906737275307133614664837963957506415341568621603114380387981793947611500049739295171397019767949017775380420002614863671635861038007431675823091747506561639419932558955353912983867060031644708094408517897940993402816587806780978092293142205611311432366724146297753781651515728523625036669293301440409193925052114999296715907077642974858840750078865637386926929558523253076671538266931554925651003801130425069928390308305837084054179332125613140268959640926044278874567732753736677888585073568312324870541671286407629434381012134397115630348038541290461064932056407778443895775922355613284819751730805386430433457435402190055335228278122269320336823894920544912242042806191176969063190274564763141948386299374763550640125715265884638080855311089035535576045555942527356056184251481653369970351423200475470603790138457881850283782560875413201112521105645837471096394990401316038242478968642186059235871549031088490388685982494260811634410917331038218848542415308563487855326517607579231797574628080159039657799098370581711160017183689007888139044787064312740059208189428843494751390075062116872535698265195023029861942552931423172845616168821477413994350522797634548691618545421177859501637304650053322151977829351287080333122541510505500918104230347162114412942575812538130422009903928158134654031127870434448263037616017824865046532583720610195417096404798816277028633739984645323921257347697052502132391102474559130480206130531283028710070061025651199336286470156276798753969328009954403441440525531941997798905857940161966812337858697008601128370271383809291700969925152148743295250564540787390131014503413258480857082089385562851587174035086787951756975882126209149890869243702351998070171682288846957166426037302114958407581306083146662714273343706868634760132667711766235297851398557696408323256124740041613724019512165513618943428824663103789704017210827465413671345234362413394743610753674900849747964725121472648322948339144614414463498624777837637251942772614364152893091122796039257997075971027075879177511612212034407551545044550719891350782867451628158656105069437147647959031678777196463222349610440337029115959098097067228692320621572557390111570021419163046111133827481682375008380866591995236639515858048110147772913089500372983271168154630921106712553045606463557675237368998164738214144898109873411536358286731440342466902267500241379701111612860219311522808886033513172939671216070183152696380883704109548720803018781124567680457180518537739633105034251486250162342770767340142897243859255876684673267523417892725434563561463941316628185196002770376294773232252380330198879065011819973408441716501617821427095429360807990765052006539877104416729583881893213354720031024653953960807063154994172248690268338511956726435955205051259751779263263150022784646414557266336074262775977472449770668593710034516503356756820707503439855260654972385640154414016345308748995243700024985110583801678293385726735867689381212883164758709630822812490819309268162831581550017748221809812787163779941877255391583227822227814686291841512017106583277013489637460662580851413016556167978349240741168697742995318070850175477796614459286136593238671171103285019120275124159057878060366486944141483280595902570235354901292241361573718066059859514081214365283562737816598635901471866430595446540409387206732464759453905670682456538283828941776269321469479077741723967543743010321727081806919207456384873925630969388108354561230231861592033509910513647470808877578349165814746985729266106487995154071691640626717613363634417865436944246727099993754066221982089901234528649013677995419621932557647106896603810207737592604609617387022084981864094944303435785624694608915807959263086867019565808219804571307629066696358576882889049374085907485807742462822484791704159520255466493226829299572726718832007472850207239174463433142747930406637409320326947141306851993909960591263759819849635031253632140064096884904884330081759788799078835905795645372741773727917936699216124802994866140070751866082997251981906143036403604469535743170921167575765720440586900534140509386175843694076589331963332392330344908372194859575979503565828792192924067749327441780674786323169335786279742981387340863078932822645828418543362193593684882602560926093145041853324131679132775279585993658179147836983645226498140805243207396968394306476084970453459521833235751484101994818619716821914650067803168391178397729559490632467075683512188937946131351380428951046197284932074274951605718135662512391848876621794281671434999546279273179786028809487265008214477106616718831567844234615264491446123667912071412686676379911306137560011393267055798151510568780093228121878392877141228767171946157269973427235452591696144565928307459511920763778813315809276696639836886764626443737300593287830368598817046501799117730295686555486333617954491183607359694398563275252159522372275024798456904143802007481543453289867498624738543552505029442920022586221082266648528025515136781142383717174088757277150996803641507426031814938559218568006644097149136657254121197686643984143972242283668753410289205241316632286310839946929695534255533358382816355910599260581157436510937555878544064485904553312257462885424203097592152587189167379242788388328547570804110283889920078414018385992367004285964448444149880584366947430204761285779428281854228041367950461878437772952010703064126858107609987797293525930870867791942015954134930739435997665078038872371225634679574756812187142688021598939161655667655042555996511931605979373056466106065372127062262626240551042912594873249990159611834355372581417575633935820973844451456875210740496438182238301588651751639653821433413877430400602262402628652363621836050818454726740190192108679570495570847012085328610489630498597859127084441034694056794071532896857736852483439135921589751703234752432813484776468932824581152946866930465007309722821117626710220353054067475175647347142829668745886932260585148469576410946314387185701605976229680053290873182916026855152871919681633755555519970058720017733008599311911526878427570334204947648385497538192758578600934843738923839654259368246466008829032144635700254606311240673729306515325579582479327539779265676030207412895032453262562818675283100947901012217958095412887217800181496733901237330417663801842933748324728298748886611488266787037213413702644049022117670821662267992720312988587659847444173859795765087938279027046488186215861539051914520843359394958442723351774032066587080824673096718853046140435647309400880543729914770346208533301880987571038581492565625094619682324558286255207742423056919461601757263351589664939307862865402545118773485175284978032266871378987892754151558285408198719191187459469492681216257253576192410747966525605605101642545164308462321756389294539892929578802799993207561851614419645920907980442929237593359028917912626906962118505792570877394169477977518071652318043657321769065559463021102371463514514005367648581886194666479892526627849014247977943635906322273733009282180986391226608076302917938891569216160237439582715078303056211823239042731688669310679930005128560315671081662412496843587535179636008505449065159524031036646109151660952715643030048740381225326384906375149003533803006649243985302450710152994987772087292562431911229763050785929806425306744209142579169973457924076190042723790510167689277759693970009143138474928960317751155864276550486025328441515284388588202600882400621391070435078425077841351032710407473584019047656397066219862094664680661675963442909707639844532273577653412657539131068384835233576597780664115828534655600392442773737727239399495541986635207393486852084412973180002702959735217126005794635862677239024453777571653116109886798139684372279818119467311929411922147534711447651044735698491917459406242856045281804815295501169547377347363852196133522210961813311677555079252419256454279548849551418481025284163005224120443289145982808046073733093195918287435205772637632404710239919812093635873424509746334532328245015553059180718644220316687577434971027078060013233490622184979057995601195683489981617122404769250906541793881892402619684924800628865802720847293019129807865241710920642399032720591509398747519703282966997283348314584259906176407168445312094329792922238224989655331960530374630700244972518266446819715576766174126140892659225585819924455953122642832548283279504400288023452000883040324191164344017319646418975714266719893630066501866237565230086845598203399011526611239305625486689016758223678316024821213536294718592268471781352230463349256508302399581771977822594531059617751006199156666206024513082057746156314453073461713883018121438983978469589133049545452184728319620195889913080756239085427885005989097325420202228962261524776676090866384536783268413029334250962166046694223511218510063893654272725733930206003385873313224626968090357303909089691877640100846719486197311337379268551865378933289582069994219361948211482451881719166136473935175314290296301125110924984129118100718598731485428913755362769183675504991397049288717661256045608087318158847906573758700754544069864938113017494440585127302172053741689254728332526308206224956094245709895016623255759221805028106584931127666897428533651886532619425536144837648138867380429791665479940086484000233126962630843153161316955565072568473831230121768788448279225886657035750596400733103292025172917389749742022749301053793410302681763766849185901398965596382725280173122764227843904182433914554024985470039837718130198328114183647850178384910868023621274353202349910286641102799681041519926965311480202318657331150393873520067919835046766739249122368984611009379659577437832188272821718319230880163555398392659769079342270175311491228779850566459499287782168691711851471845465532027711187623746639453011300028929991609831205791030253454757032490423293764422350016331948038224248465644340212531223710624889567032320882069644952367313760246610614305358823517742679831590781852706804081455477259581957942419591357320479927626161810541476583210891970621901548288688009968059677966672028548714635000959123171124743871782975588386325356983995533875223536150975333294672262579686139312439782153091594459359407617246360060512145475535308833920644180152288988775559023861208780943815220576081287943151841869100126655289857397005067318942717069153731785367899636876880598772034734201860337663375228443639340284909501918723714753727553822580409269082388901994370322579259699214179667082616396002500177858111057280136670705823629885017365323021822226936090007908785570053629270791283786452225571172779390430259854941638421478734779636830456641809736968025863114099903733286641602102269064746689779258879482794487280680998351122253834265544771060503239017151307405249874938351293058568576609742623957881786633607231634058104624866045969143835381933245222510477455087283520725671227111150616706357520759480068643164895796604393958130426916994527757726335477725013695593061568687209587242112827992186611029282558250007824184909781587978009461388955316537191831963438941017844073774745801536479930778604617033986516672195499925714080286522453738863479782906972106424241649054345724890108612981347577403791830149838777174829833282236820967230349417122297596197249594546357147222139431276607483695902072704484918122313610918622313343675495234634647683140211916681146803196173362566815389723375492670643177242374259103828543654836484131528391232167974396590357290703198647104864705692914939267356615844228030996218886141055512769629974672294934685702470174609324121226486508580898590446498624528609125904765690305969639336781681338946978241587052392979309466793334016771926911270678886409866029727246377311573681953277484814110488473128992872742090974084568214735731246250407785592540882332802977705257735748320162131093555215663339111118713169379911482143816087134402490569997010805165811676310641953543246745461019460694916972550472030153177895056346821846925475740251415981047476480135172546678942594500242739890153271285147530454857250215444301736859742778446795939977483608628148717354383565669623486299103292977600182057955148307032254145247144881475332458980459682824882547733142846154426868466190400161728974860164295845870926638679700162479301077803577446546036135006500102493741602685152907040322509958493403653765101656732864889712146349004817499525154813608030305564517367873665498226093324338929902651972092172637484337899262471308293458554989730892580614647150764374548454530738900568996523926506635062360295935966792192692852340783652292447498076392435424218501985714030291536684797435259401828740268144459696010930379445247232658095816044012920755608805204241882544026503954728723271310906752499677826521438651441233920777280090005583959351308365343624409621450063989579753578053635478137480629376564615857432848088908087392468343047811619989694775580834118686862847615867603271008576705568115584261106707458728563821445447649538995568417714969146192397041350131259110710379070658015915749533327598770514128072291411428072833131306358203889634803851900830737631172296501114393163081465636649852458098061696771744198200479410047040523238065015402183186172130443761465594143434736434814279203820955125802242003025646097143854893263426394125383281752543430670550187462406340557202969231618113088595773405016727816976813302607621107709309327653085692333761288020584342557392739849140673520268345111980996679725907248623747557205474152446228228715900345606604021389429838260729714501857044207907607928406629160381208113820677290249158684432149929789875823573538548478818513331428616480805576015079958311865183758995144301802710868320158995085950261371642544822434061654618761645219568136334978208364955355698862439660035424131234873246506434264610969223535561132920100306591187426546821517059344152781874664962188075877836627457967849587638012575373980141598926016258495487860036476230396573256550047218774698838822335514564939611460096130745181121172297105929004469036762341500286858558885318930444621511665236956098321909731021930796193443542896905527381124781023824791413414842539987301294415559074254976354612228307809760848560637288771551308346383630123060376923953055118022929500279016062088075738785841169721658542338570176438049599408780904807960759067620152691764158329037459578077494305948147710256411878213411959716001810370582927745985144005385306386168297920693441954180816950819542602372253888834923867711620201694646015155246940741224423622109598993436684752040718002750954972865585992716211436337388871444136353216910806477702125123265444684287046900307271547333246214204242262676774854782097708320123960059316956876111074897818691823094773277374993315797846557891517368477366015774014416584718223576429009122507600576373178042098797526164519047835423395001969612797809314542568544118555791571934558809897587917745928952911000029154361206452656040945912936511667894517786529085400051910468290028277952832752138712806331131227073108648174046823838411413072906344154124361203104890269959988723800620193423495500824294246100909359422881109265111232678059354005706617053153707853814946698596798526511384682654045598267799270211943590780667315876980667850330331024558882371200173831179736161729946077766744777899193047322429818701338645201396022903108690668583149201893540057808351496530467188477516827667532980684195328413556395025546474444340334070156929262919934764021474704175708064682343178684753890387558171502713997717673899651428950537424292592334087543622522130309817777585473981793488475064514527065655824494668927614575341426307028649283241112960728757909849062335039920979508960048541640540827972311717961932627591392072879522069429187495770352492424266396508859118297409895432891224431104897774527041515598695617270207235826451768099741687566779372401837110750241166067003570813437701300923465371164100061486433599863877303282396446627670051441069229558296432977078209364470629680229534325661136519196341949071396282741628608028918642237570998121680975275591302367384048365187853687416064164952264327346680516810001676287193926621693648438116443665183639236960836977047334187780060032308025974596145704856704877291529470899276372847827527475133232367741745038495713697819421261325406597072745308599055220872096006399429414083962270589548144688738114314205233501349563400948802346088094390626264276063752869600391233362817779608210436269109368943345120890093404187474494303526198220536662118878132154509702067920074825654652577673678991693624796961817133907522674974530751774671978540827796288475932489216902275564770908416793631173197185451730450436364620604139040850740054516624969186844678693688162183288541488431703625067223065831193902828170386327438161461811497325921571251702262872299983188867425882837107610308629542310006719419350441438650781483255518915560640500034583490470863366595360913857539109609310293542985054405799183109694945013959442977673719172318215779417777437131827170046209305118239446712373421968115812058721147490701649113989027538192053920001890412879698957875029003068744849710843737652849159870648980328071552335691440928841010185903413934321717403709858621820356203433316687569975466801921866948654454378061989018570911565983941790693615920727441633477283987823675179081661286576201067496672626086022790660566225236247959055419295006143898935079559609236909393910972723019728830931427601823774045882181852728127762558005350254279389310651220851757482687608379270868287410049083858227470061333270675284928265123442595287347122725578568718567858756416801511473119952487072117573246635968385690498273212639002109009701518504298867108560826579636973708982644002944244317856961174549137596260224306689342403487556539879366750631279287654818998871113443087606332728648629009618515557247163824645355577067757375525162523956660893549072543500770966250248336000497947191804598713181452743495574019590274339282055618012201662681941347593931332153567611795742886086720761277306746847887278405188508290459866705423555527309493045519462368418797227041611486102808217096797300792730228416387104326228163505505061722265430014751899288640201736388620248658247053049274538273848188296335507673415604603324640270537707231001115194137612210563510718780150868833224378592227848782812572315819976201730530730489541290229457760712007640003978396868699074706787562949556316291321590767386122314804869522734849826234567997424408900068324750833752956734514250494448237251806359874206512560984775194050248706785529662976629002628964445512733171538387189598395207687501855542086870153425430655659209152785593941749976804908409489893730229312820899935851373007583424037469880551957984873019044678858685228993090955080252953813004962370708070765833317213846297309455401560599105960564122683158783599854769608548282581678880391923972765703957156663333965107048573256215749616265649741605981618625671157713057595041863718445379992808505530437871883897177172503713986229723492160704547415769907322126193294681706562805295498123700880961002028908736421795648317989510096143972802919265292215917971847546178519036367534579256471970940642285226029760756980485381989593462873683312998463175800053567948212801170797758432565126646905507928624125856424297962482386154561982519792609492837738025141270028670996060161336796686745610187903041775881341295970087976028937164033402334423200626005178364168636219283335586112083898288081946748842616945571626148110251297076284758063631372113670187727228435084452173388334877705799698241001734028519830409503240867354821137358100867831489366936956803594190863033107234849749443994404815823851279490740141873193229257193041254171459238475614166158810870182417194069013565618703427354906543000218037359973827341084379778648316745478690468196957434417402593382271188994466686183433451754801473354670185237748712784662618588908831859878509275342346493216911643353002427356489833165527089667341155184516254077024816012449223132575905165633687455485308331178555958875310719160177477999098273057855727828688221958464481494134831028545195317186757379763899068465883264449642128340071941269642564199576856364181438314538711446214653996233428942484301193122287565093295003388711283192338650122951351300328203273226738385172402867829628943604144843787504792928577163862270467427336385616494610974382382003312460388553061696490862095194741015251817915203766460835596691751787175743328972745044112730606866695148618742659876794094374298244351882017242056943672418839252845004353261882824873116344366122845991055956468421835174456349250015312055923278623868822252670651346587041671890499740502852216583780156567911951288585893780616532963575920258186381717913169257836583126802936778122383950641758648026224694772181901110171528270951546279169754206111794133604523305030932341877119910377074911312969729538504088628344977977695297167283227714036084674880977248071846749008189764389982879023414619381406290836464404707893902324737273423806555085538158212354998808800384155971409309190048637170287098107145356685562632130883241252504978718629285438303738767322926698037827784767580599096918247142090611931127586406421253782648308585422468011565163726591786631070067942301630493880983745781796197231986115842561175157611072991779582399984883848625317199127745738156016076301892256108157757733578248529554545233646214124357329467396674244556844999125082965190321345804483334591943667475924880339371631866478841909851801409286240737297740797853603502620132524955504423075853437857403729335789260193829175061482980734030838660982968349359609512769494625148245746743922110259278637313652164763194941436904817120484739883168871879376793511717427573056659434876782354184956787563417326631318134459189858538987403240179086053727612589705503761561481333893688063537035553530519352447304190546525480566627907739378631484576596958366829333995695102706323071507523810679151928448203377052090558731042212968608816571885913325546755299336279162233141678873061214354962786195463352011376185414561221012913784173286737814491128502532628729079182835074225524724361646666516839598598414360188777214473555381149111059740606247685151926400063951072553261667086874867171918663009164304038180983376137378390024676831258249551364966582052351877407522515766512538428466747025039922434045099734817807908797084550266028643547117749826073991391032348049901939314527234560232077580845001714350903515497324069039640427128641153353150666122541176426219841478992732653684159693813960016460632941079820168895804298882498157130468752641918084495505709241100740670986277397156560257534912234950986192072442125859753797308132392098684887024946365638993141858836636790078187369062059158427900904337488562489084227319316254021532989939775648090849606518332228933081989575234947361899881710505450165411934072454215271433246394941495988012319039404978612582073712729159090531054940488417713081105301834605920960183501916554430216285252223211369063283307799674318771664534722424046152052219934768771127691114574392409144949930008822822513642575516932912306791546017740822839172710687656596155205104565333706066880025954378215024777642826990639919788434681743538348234465233011496699617108160307923114480741357550563648322931874760320337301554205307598169368551666785629673267560632475692040286145914166522756345965357085582137502972608611391398106534938006580819638998607024984715850897031280332258065316112203686831531256778818722719962293839133644512120048021230707193947648918925524330815152084796209403765213965099886610588307825850527175820627541576704375149901084251239178798589520008050918509872744701748263874826483537655265915103607072980190742292149399238215712821409238424800121462001154054899832688776430187878206391399806706123392622417049826283951309853341483013817789328434782104473581636053490321958457136556476258510608822955759103320089717730560481606731673283362394896755976878107646170695635149093442438322453775123907706366974788804748755094561146943047600901132943283461910134682062110260666887230632222305610563845602194460406748058804430074474471673528277385049964014480810968658274089612893123079152009283625503420223423922203254135750609903398823313353371017028351549693055155021987933334822767515009285533047744921311476957813694670758444658222421390541990158702690628313043186181695422587952369601447513070768573329454542311516579026359430238318853091201701482789455660036435737838564367529696191035461025760281951870727265835850303437655123563396698754902953331219813659420658350721178843411125007458793291473878953064085743933786065721021268196311896053866094421104142932812761651983686200884843127211067818479880676643030125263101709296741907542305031532830271330137193872563940429392950717631795207986516788804832934545677525752921981957432100165947559042303397504913428454990675056075341731568973842192687241218369632869057276113381246245071433439869462856785584285599902175550656979042827079297173872996479439011170130613013164618019538458784034028586976395481223201268693053765347663930704539535006148650861440436244115893110089539418793071490181617011703098781451408332842873326139214825979897265211213450696619994661555863840654048967775728834745759292758014196345811244474419731898860722734656160461555404425775447403632063419822851758973985208450733464957564212784677848651336809995230882973772309795954295389382969649512133544332901454467876871878098624874627772427818651119125735672061664321917417012676366583984176568050916856644084706342161319976630228628959120976454875545542479451969726349246833016512083005252309140060812203175087345897345522703158432512660806479598184645429687120496994733653889017485025015740770430309240364268801976756957746476308996731712302009594596436142059405698363696090231755083023421939089665942664439860259547495652941249151662297335918372813330084730297918679805615327045044511134197732916053337869908965087986188225330237311348067361867975121843808287310319662580060508074283465285127202863332798601694788319185509431039112991344243894964960366143901555008656069864013897740802627428334805481910409004889161309087150370392926537992325168853240108255292045973850229133682096048111913211999514722467037747875228162798297835136167986948517093001867179165979287767765985327053111203856979326001536160441722024934724893901989981117516917218897097455175730411647220150932749510874934049528623532135257405711789016982932404865681372866907587961238393885156522320787740299973945895943673082384256270045531361957730426290092723672581667687373964538257524489648298681688922130700022944612862502893555110848791971185897224131242673450651670978306494823135080748629132015344830143149232072642372287668483766080395246218350324849677729953083445934136389104038888430263217528437911009341645176550995235151936492044143777698845068543565323107205220645742342501376858892619732198882869040479433653937758721037835410907757454237058196419505177977459407097188119133580803165391249348567434580067341277257757829631722248139381734583579542398060070901908797184242197414579725499034192772212560437567557482142794992931491890115107301574434442959415479723424476155936187778910859663294857028582825843003593268787062794843325766133092060496867061651190270792007862880214768358366114554553399870919798200953145157983753514137469497554072222157288105905146247005859757903287564107684218946633458265153248131249713233091914784237292938964117598925587705947427307252895008584055940055956005254531289102635546752300082525022056583779505518711302268767221075558843439874912611005661805864563074776156678558530099515204854324378598373027972624330616669409272325354310604098989089026026938119439840703090613408618163749787708409064123408563995380649450211714836168385602331160246908063929115478749876985291474504478195383881015665133929163551287847845083901395210391797661654754345743224044924642260083891415842541890364871991005610939121637238419489114679823706912745087147645633558077138219568912920470487405886121024876156265989820737556778483160129237959719541682110909893796147234745453056878625638420176895169667764347229321356096208506738041745450035278527828372832963233869474169185157986087998242118163140851136330816167925455977976214499415758794357537834510955109721187061180396680150965303142056321706498657437272038900270945490713440805721454995503003386529381729049620135248659725742926939916814407166942246423431445956618993870662534342399527299301737460898534141374959429024172149876891664055368484345296905367293576892105602275639365135327974826571986112682703125203815417332060729106168263669101136627048300227578318116121215820213305962815056681976160447905074064340697689946656613883955124365781037450491938976818448204311121729802886234303910828695766551901138377106364929918331061009616010038756887821016969024598098476487955701936035436767749263208437340737715400807771706218155113581992802998381947688939842102783268744380220194774839683481175537562967570462296089332382061552553586603789391996804572271671298615183532397120335625152705300815263239023889467286696639116973459411352331299200882114191847990358602970914159785810583486176368782814653904076351835370476868551983732046175801352554194909777747547722959560964671298554331817580399257893054177762910817990076788445723539979800803208641733576181130778920451889245258909694992471536552467177843651877425650496511906715774628068475467777486805129375762173176745671495357411654086335255327603492635056489536908659742479060544705201833953891401977472375277470901103564516027062450547846047289130051462233271568958026416243584549028694418996635696009606089872628861815627039095009271353756710087831628299674046303737600594334201524311549495799919828288130012532380568691651174660690239814751094044737016567466736838786886451964143547193233830128383452029700519192699868923386446418028787847079318023173180923020204605616293442982953186421151623787403075170811349350481351973500994454674400475884400638871313012216509048041500129824268691909627645902615054951217843454360818127992766938750623961776222385428504974642162052636132848445493011875360902582456730315879415563554156890180004154968901177654361706367664302244283781169166414224799284839871767034130059877224995368961825349278485849971808282151808890869495134052691843650549989720786363231773373940387210931436652649019556100515940516959947273945830538397252980197706482592624225631124408033783713422630648869135162149433552479131754504134724227853435432741318229944975395843712934072119303391923734876389940844132972904645346518227552217451760203462912539112906541934622352083029918526139648366885668983822221702299094939806706109151079466205061205976956882117713784536576278491037680757699750890552740630578841965167630390558158268753326964130848610388252536722742516826492655825602172051932755497047392529362962052628070118437057585913367996773126178308197678061135536642953638385110991469846951562417046957026874896788059116157827172850233372395986657122262688048447082428933123026976816503865731784192088037176524410082895443421797302739848927976539406579249431802243542813302268356819008805276631384992136827308488816530062659562769728255604953481289259666158068749051508469139230511610915537799975743235481068076352619939847834052608313376231099096342401674214913315938599506395163071077586800254005321077556270619729596270581341498588654856213564348812802436144163523719853539206446152600988949447416383149273601014701453490735440062542961381169785056504447703476061536118351526226415033498144342687810839260291777850831430567171856061754990032221392618793800103887427478596291943764671481097173165266636893145208224425872129105671188084245495735276090822921981292905678136685706757902893409472533704342120831780688255109765227040656471707304393591677949944502356350971716398630524712781633046568924516098097463882469157899907017981475675829084374490390048552178832037028965542259056025900122765331480884112244858127614475015204258609515296577792054252058460034632271817751453170153269995967207428498383942721154229330551922291742374245187469514656405931169013089592045100432530188551441306694101070221536498553494803939882615160095947139384270075228423916251918813031680145071495203521977852026717681950908673148551561963022559837424756573750521409366232264811568060071160277401436705546441404871676318036635734974205719846911136436294421609256092190287412529141590652737644085873277005643599270860990849562757969527995517528950745477534261904412490268406805631754582176320552453129641919995854338340181933924338961595960780139928882970354971736922589356751690236652406646444447619820702029935159469018264157000726529823010159787728164659936593122600495281858940176595023248861506229542542632613033871329491668504978365783553073858099960983670908304448268843806635767427533518277998303809663270440112150552520512648919373254411463199907463407363361300282266023339526614406576124907021244262609548814604732378783041298768119068325382691065637669609805174527722218321452581714665950639677374802589880064891641145187761621096513371964368632828275852170799692465770718256732832611173152316975390781236662782200333669570528712895296259703695093340862112292706897366507160717333547548500970393185279624513932224243545042971582781158477614817229586467287751743854179557063356525669288502296497687845952578046086813734723290064946631115068767945002894534081343491882647966795098435353625538728550387903103403885556911206263452611711764074329555689716523994197457443018861979089154187525029451546334734734823797997218125312649810758081860361592982162420306760450625884306735091498647153100246064386712835048760804925193423802645955415619051192761091447994077612963956223707006236352061579060950720010114618510025466936530429014650034724060035494762070845738717856586911405761097600625258649628698705994757735679003087042585769860104437024559828017297191649515439506497657777147183695266876660976188257933768310063353287155859105613799717065474624378631943515655255868482944469126478909793427449026733351380928051611969483949620874531009019066549709159159135140287035964288962466682471623129666573847050013125241539250241961328838574580060122902026036788770891695415171773838593009092004565488292394682490141483283321719963357239485864660621416425819942179546641839292088434704074598522274490420446073995514085993461882685005188126094475416787817616144047805781116122755408634969992468969525389201315461273206453670984484645817809881225068066022444827327194879912931453181515301404035403145047496692613834691423303590064495197815835396778886272599866849261983153043795946807007227014780503392766046159670745144720594219657526459925419191551531235590271625387028651679292796335019042249570012455901612421425404646940353685059402924736619242811763092090164731700248613800731208698090652205565002032568761701044539987155890924102279856908013134154812494782743186388914275603599388382573905602695597333335849891563121835673626484482252377622328153681250151158514936060361006956253453465307129408457141087478276949187595299228140589791883116299332294363584603178334000248183843952331529255320898204944032118253616514829597350024291496885707747240070377002189258855715897053101873324143530643708540581927089117924206116493408844038480806097520815568436013626979610448935650342068165746136824125417298874818350069347394235899490176550481885763953593603433631056132179503299142528192777816414865284362872176694254399745428325726033003189455249729277034968188718522933586665394504822216327571856156211503891881676385564271854085356880226392316082069782083764603075498590899487428918331900840001580339627562664366805205767332770929737870390904858781496539706621840879335562584727088921380953241420087063887902579310693029766346726700742338274291801293101344963743906563896284586473098296376399527195481443630271106091815540349899722037499211173431048435383920541355609608654690871835530111888616526771537770635129072159850810794662950835718174696194365730954030796991479102000846843161164860457623094908275571056858187688131897209279787939791680636702824388100232677174405276896364888079485482542977444874704623981860293430834286773261107495395851465091734487394677377975613049842493780149622091886219945207559476944102181493895848303307066646473088199531917548025005943640999895123043753921896709918825149457038248773651626528470921571303861693573196590812811465360733989401351731950235331043192961342293418239963995647883739334134727874976131669318070167556909310582125299284370346990482368158288359673066406934901768393227778933016157528911024162295344393189923086324924069055499794574335272908016976837711081288647801949525437100996201957002346965697893008942991699978206635793351443733011937662427397738994786493290811074984471557333600566074952807948842532236233515839657537436850327177235722458641082330408059016220968640141771356703437775481556733567406119913701010990373991559887699395215785172523466984253809577568914205709075402115610440059332601536897323779192903209274128340318641194096363494617499173053371023271658592437166805561300820127777901037891587987177232618119138222236752523982295515123852878754030771666328233790129656035049842904414087156326124877382671413826459520739718365771950673150806490342160566349931214531176542611546526558406084228769495019759436991042755131919035044357735541595424798356322989746343738224577768654277902393365623139356609630230294723026789727260978465570007110293867427945283421174870032531223898468398343348684110291205944387088447057462489182623334606523521384582336656359978647113895087719905144471148233175242392161223057606562583749938126444511114792701890871257559065357346833768709980512997296640223373411415441547825157775158925180317169468789677426182404906807873249615028199195414905153797148114703851802058492609506361111442944519229386306858706496641848484474772722289803547024938071102936619812552544808896007521603932015710494229311919981115535267440294383366264366112814742010040311479836244624268250946871823171913957953849537433898167175785471268736447969447893344175767999522733718337678824446221976247376543314696522884107716973208534409792571299490241749354299122991660205380329991688410036666795898456443345126258653271608465678492800688252089696699111434116368798450513285120675771626572098059183759337753808469700193414606050397320466746542703220184312980804562466140707824244960049203821020290816884457092832064023681919011952528066686765964324769052153070377416707456014922881704059806849744329056765216617292449041955664749446212201419467279108919339701281654385797368628765282937076399332932553192962453099552069026012672291029186246200865057770104104036190060993666907502834128748974045400682852302503336170339262370837993610234323987599244636745902866613700488537772338335741631745004172925015269757931713753493304785482288252750925230086699978234330779889380490831371478025145347089978804013355053029191145816297029314565320103169888973637280316261634694617856265103414272661679888681870586295220367851621584617335640290415322201006994796613833876966088133011900700321596560733505421798022115416475897545247898013094979546316385454473343053480365572897555550450792979672978139478962510045138976604746688893232986611303649335940392811770672766246636901857235161333309408826239675894246224397385740208589034213023505970167947331283030169951960933273209326615359124948483778175037378184085507416213429758183298874908158599380473611497599074888170668150294389165025830529491214695790336448141843180063930291932901360329651704828621067041365774599871150564481346592533414669047464120361218454979651726383832235378288570684472857828267684517989587962101201951209894771109724837206512722066045616928574017880026789787542373418795258217449010246807760673487229019247752798232559578996449925716210518714402578609499396205992883196448263827495558706657792723127835623626528702853374067620798207852853681267497366449252642984977184492217620967689631536926431090662053959275414747347195315492733160789694310350062312460156397519473693650959035438979371357198896611664379070719914566639787114095269453514404201750643301094358717078199377409001566939282322976281522228434364444657305629805250908743966271856397467871232617713526795585944152053972380014301502167092131617404558633207913354514784175536430125110219592501447588077632112468770861417783787279066971317837980495702139040612724460514584009518918759382819715731201335960411778123578441784414565895711509201921111940596099752002875268500583856481536266371985362607518319955540735296958962822439417699015116211923903657470583754120696403365098291541440179515322471391963676226768636225884382295336044151535230778401700734115418537430464632558618280036774657894196269329371858892201569084418230019244835943575307295437892372788814376168605390574102056881748954204468064974241614284457651736884221398589831364168118498790324599178045157335288998365928449682445258802187224744944566692009393059273830194293926148864860098686665898702067747406069932026858173255003867194954474723504415383250536392085640293521144556824932310870954335534022625478401755022404002895822300971947635177944331194735430872470069445140993653466533151708884897634026229747748355315520106550536718535777028225236030541908872912120295715426410382173209507536159475689380598192308817562702815865435619070736037353760202367861937549738553321780833653973554764273065510700078312457709139400625317325438983570945662291013604035959406801367424283016495378278778792617955522220103301928135608877123807592944759580647179428159914073643637945316392927124626800518529472616045341716399001280629456005417619453064593062281878501569521547678605022799639959536571635820002592862677341830536915758795051934463823910980353462493973391296371463153429724420625853195767078252440054151398525812327092989498996988654927228576458474536496588601536666414802824708838226998483732064259202297834085176309808687322496611791943471527812723204407538258137761108363153527790258244220513916492213315378095614959329773520631771838491695902231141133734643039752199403917070338085894124778814549072457677980855273988057522585185954747541198306721507888976434842724950741326974495617219588822877748408323353237439183408863882268628508275810540074537693215104504341358033653498333025261309808982013735860084703970367943482882774985031236893992063006149515218343513186395886266588046506708716920843892152355069762212957400800562650714008752508937023469828609214275925027061163984152581326012023459499558090421455944662652520726697747079267489688147195318504054987457869100800294128052985141514782497890771733685809643922799806567881559752495845782605568729134010740162783850149709363619288819687961364718693421220456540751387945151438368331054141634077240305136421900248717964793907441333818126908782170335654075325819576240518620393218055192380849625300843535066712303045710500489108160729464968037754267870212981419856328837838457056323333265908276946265459975240526739470147175751544946396317060637480168588614306922269546672508725520611331438543796668630735415311475879993182659238461480583237697436840187797927026660941015775036271281897881568722069769619629848012925668737587798733161498899087316375259009873736550738572034333817197347561361229354649468468117304801220562736569142113747775881085396913506799267155897681111114029803735264078790680411703139280321252330239533253227569991549499937925295582694454460970431382037015590403951350438593911685601256407745494327298154935007869849336156111322690248091994719606564612484598084232347015096317027148920644995183858630500339235262301807807990242383502463005519797295462822933283719304747919563325734077238149849969709965065514997093682180846473717318000629113981862379862013514897530476031429873867660676367620395062186837297495352762433617406792548530063049549381317505662155819114199124097951614230478586202948553271751720357812103274737450833099120250515965496510815665169862004753941018586948012545541972376851982831468914709627649759419928268066169238171094607224712780023713077604737767169737191557401141718178205163747545259057937718624606393443318152527922154819559810868740818570361630254331231885135993489639495310592942413405467879063569201362467963335773540832508086729632040782269822815378322539625009829309018059337111397723050521742153807855896123029153460805719040804433378256220974272713888060836322558970066305221424763103564950845523103633525826119991201158496266764344070108520382776386404994090949469271753050924868130458320715579838310027750115227141981680162898050063270230054830286152854181991079487201229116910390592755689254423759708328847191457604689994158236929572879975462467049369211356777080043831035384277706435944557016064027904531480885763983185447644161700900355969926590514915925769112417952030600759896957140357959671764097067851396335722321537142640087077095076059937299554874464395048136222166652983728444292399388515194256774375942988766555432275965210469794921348029231031554674416228386137805005495851776066059409591096234145918219047715146323657643056520018407713349121526386828499866512264977798878259571620543971478191912003299051826130828571504757135272414518232210634196206616553969610337096002493151465195434813065947511822557516254295088979721371150620049507189354535079346939437273302476658043379703503063990993112016857668373700111963265350777865830907277673049843936919939418228687300028623571900503492530295163812578515286462684694401001872237409157473873730370623119891035755961755713185797152868610259676905051006836610195811896348084632650640422756992606231119626709763904812973708344097837947766409622055176997753326702109664252587199056543693655812230660924277628435006254124673679341852311748526789612888698726888893123398020476254596810641947617860733704669302760382832907814146792795229840759254406101707451188278194678476733784870377989562116656640154578708030957005461487857684139578729315806809074691613162925308088961449330416119132002076582725067512105437908909225889211450256885852606104075310455589113863012185261992805770964296286628215464059574934391563339418227180879930014287938031399303506716261040368256553194707557421720064938280819941608272261151383287904457733564430131005659542419366248104963726589325410349022723004977531271090925481785792440423129539046843857448472009707790247259055928659972676824146038634991655909899402817208910715119948921975650625206467843055527670360931972617697228130301898416329145196986432101868585325783714415218150045572918182628745965715881394695364215795103690555941320689207551576002284120915043539803038844084707983472861605026649115712411177251876652657075938599263059105436049855242183243423178674203241489358174982571858341659677294802150380333727540298761222937957924630253111224123671596895477086093126539061295808535471733847801221112795840744453461791902841985169162737689940814055385722841448705924264346281246696229986700038342646174323227188693418131597823239030979883536475279927240807117615957213734624962670934329217556097661485255868082423859056907560542332643567901330764530272973879043754966870823717166814159684841323892296123468826553280823307118845254507522672503693723801731756582035698962999360852244751271913549998720066901946519534668542375068624802703061903253102244615278965304832326701452235298710889492054306950961087382388412103775676974404454117789173318159058218886665134468314131031054269961995332858798211630101065816825470917977699603608008733185407645182946796218849425633786088990524107348173270478461472697673881453235004127129306094148980514732714963418392982273457114801123400517305239552128347955105995521462780566146193678438705220947024923947485210683831427826674140669197582179216912056511781790502124542599871803782732260841056803791094962366293215735513171032440067992248920046595340501229943594302499215719395588546996864289292424388754348281143727823883058401112919114690049821375029691410318495718100998868308547592082610998890892694061983533198725758876121303970764889884654651107000357909842946753422029429309718551390626554939475280306654513435579142031574909615333986500726423412953823279989561753558225022655792414161285064824167105363832231323054355829466565714275016901440341305357201179806879912999417986756439680856786647755223951544857307633944356895583060127444792334312139393905075619867794780167129990905753660864472540436023151921977215607979424344072529132762687744987262781047035023270042426526744542066546332067916324023875505935040180837903575307299858018550478102102785707562579298058942594841436390589355744983621413303579400442625570555297708215778880219696282492684421896402240514966762217555990089565640201644101755016586372226591289364954966869950094424367331944785865979950507857146884012601802857819550382857333823940838425388150568622380679294723382903290208152591357400007721668364109722260901450933382083387491235789138325797495016572165777991582431707412548031738075031790996914486426953281575754722136988789794600042212439569752573926068648060641364327647136597540357822935621472995932047518431881150155585136651145505353614854428152675706880734499207348145082443023415561973817801662363036578902799917681011319224850090186634112936016838961662556887939235372277411805180040170220018969757138155631190243046168619809394693898595586698301379694332548193886326652364613656372901393243565439184200125781912956380696239477747610613137860033838577152628034135389084722270972596141622418806100539584587857478859761519257799342603357603713672070117423082666913400461704714248811484219340226530207795773472553675253783889776595655073751576876045866206618214428396138516350850403113775710256868872584154060712983552765326962421504083436765881423314178246101634116707706224990365943976852441334797562298909108849366095539468843596794314744153288963451155894608569941890223466822323057549364155489108085316714248731223173078826184570926934836140862883508693088727423752578828567350654604779645411490092315225189792470796881655979635622794954932476530167888981015230139518838153591008033175261247504195150886370870361868136114888690438273657084259440699323923365215741054979081921966642419530888110885067784381812948201583422098140045715042132979155065244294678314117406764136658688462937904391831870718908550208102314786573542090073465996914275172886470222493084044037929622301533947259299881619519841080082984355740517941142485239925199866905880346565766986966047165481497774342424827325178901534555211427192310711087824112267242038453566481293328430956237571266252227718531963571894487580166534261337602784355513673865105113252922901690652124519499962010511394901589596567797457338812129514230460370875649644007478657532851939682975102750579781432574400091718546245281220118896918170163370665850818880905450290966888786215764372170239480396768210651946370567609940742974174516194601839981054573953891367641871057117376532875912285186797192933177855186071333559843944632778126456915939053004916831195347448076658637735300484781879055880885054087681896276854937655344716864274562464728466736162025453684992300253318481595132781068546153554899381161617514341910799908942430010680061785903798298811459006634274267114653365855744267896538209212323875002232715312874450180521272017405690781636376020912085985205206633138144784362278353064899395524176010544525096983024851468061421162882324090314522995225085940145934607104872811447154746852203343226146413061078882684958521085747559089011400866264279038965537788305622934066773219835457569440579263476342106953110160644402258409911061830492815075523617866186913317553756715374071542949371631416236756040076683330404621029349378968893426032314180931691062860690395464348573864487561532009982001805788881552153258801913569328194115734508837666455553740031584725610712680839592045122205132388483278158035197943527941297561472017955099998232786762104435148477384245087570264841117941085757969900575368895685331855169020844827244455756812059163619475867398504209113421551025990284933498085111452400573483530489646030503542661061406439262832593979713166885241221285687119718804435905331692071790567638465791127431091684118827132294770775365257153126332029853271377000076555294547499595321558180837698314702544944099425314898385632800627194491475734554934217457238102121653204220763891472416364058089362569443383664820754847413708614539977458073839130874475286362043439817448314355034796040601609837407973167024562086719484106826316942986522449730090440781779108325801975112611317233040156995298252897843857245316637051130269259808469305220902360939763293583026335265752013365848683176611291910505967123855603014168032159156665428816355142222582514393666855360416722881408510811182669819083615264408653194922756944110666956208114636055390273287155478283579457750695388638375352014903830669430603506059883762711737574735398892892909468436289327465486406659454866026894898794780782315018624463414724905876168127413633721549517050272248441239505649862466152720902817866703750791587648338242625798967075405903137547849382579186432050611242389450371669915220523947971018692563276055029792599926734015054788870489742579916159942019114403253497816371756462937113155296874510269436776767942774899138162957804674099688958355983465663050826354806632862479819035691288618243960073494616285524765151808153883824394231440251512668439304181016196261798938037689107767849038618632079760375363975108254767009017155598267436804097150389470471031920956303740339427232345435628421169049630070198402630397269325841086863016762285558851815809587896029843861370310898465681025233552645173960258361698525970025855969989727473970183836114687127161266054081153769463485980089011275005609729525210917519917482961764217845846322739303707772964673353460446504034205711374795221661707442067620527355233679301033699350985811613705595985166380864446214272386759484133073778829627361780039601875317113012850852137246620219399981337293870923224527852810265038130920005919290337686434562859154155631211608153481573166970278871849348766831148529122004912582839408620031657157970438534593120965722427980961479555148814979602924495205811984047540747533914440869465236880847397937110992137676900789432599687969298343454805035674884606690062799224197951392680563813261409173445796146555686350567498810362203999882438763857625844982822545309557500496503320537921006580188404373054944961765421794363215320617279022116622411022326759594696640637202962438228834631049141500363400295996242910838998703887448300238176330343630556476593473889439919860960222812931796017874360422922694645387099487956876486389625576926219088829215473224349106144639500596267845305178761722446756626087324041108599437788062176862901734825169080220138246347596301169400202532237536104729637807006300883980693114104905621235384314609328636602413755494154232460630833780181968323643730912113934337229272071143404161320942689681594107887913100118526403667900851039260023594250786828633030484231259505201923661598638099379650171489582470949736454884781817725487406567456194370850030345611512728036323408037140118491574598573020188374206282883889266453849830477576111720068316329726819999709510227377435374586152448651286640655515855543926362158955016820536346617910433163288276959700801333249715012903833925346433003079829729794070867958930472372592915326807117006175112604334258747240557981313664492858210737168207614594450678528337092548282667402805444942145994905009704826904173342260217764248093190942253019497409702217306987447174755322606548200538631022787982225014853303196268491765396796006078012884625076875778947236255239206123318450918720493126638168883700558643723999585923544454138298847366730341796248133956106474668066052581751191352164643882904398331773518977887107870581583748343581769879982816060164380714302159013859946453909236964389751053689856306375852666275661395533196228144793127238589755578392100056404561280781987780547422930519944601590182734347729684031191219353061701057542816829213641983530957063992069576416764102127994789106251450453779571821994109511969913832659414663538442929622964134406484552477034295587850419529311687885487498664287342954585927433855790673912040461880618994911502656364583166749429516530351672213145126079869392768551306232543733472045300068789192986424727137112851156019435184198717751431317240782565925431961473202391045893336774702779848861263368720716863584716737843452600413562664392129152239702393790291047030569577290692773448346307481063082212043332891270335984040368358963466815036245267611961409356637294906908902781301384694040548082131520908682700962538908568184460377116910190954662210772582171170495055409567784638186296058687633532691330957501692345546256593004674057227943363517066537188858586772143694740080891464605725701183542026046208302567130334365006368039517637072428977875642900376823727143439621129439153928562170010781353780045165960135300548249159937927605617123436632568220025188672129780627784578229342641819619022123978122848312318014419611613660904062860690971843085568053876345822755288316976062871809601504255725041533024768245866425077391480361460144784808828206665939608068770815965430128319486623681185263073823949235140903583867909651153173544039690440376567888264562674711671562446122799620925295559433255790692310543276415810893871707453972864318128246844395293341551007254302234241229106928413800405221265035318444234945609669594447568955435528676413346310420848308289880540971527249850222504985085254986973676731397696601194035138111440581906473591165231086888347476557004258503622380090414860752668571707629071405639968237395040431530044373643582556728440291862565207018814572212830661002081919055976251300604169978841435600026966001534339396751881181308450707675470123540574136899460080929366428664979894156939385725340434889554681776702486334330551848411742558902615888869060775946071064253448471360953623390057939694498133051686205130865865516876352675834429486026045687503864485339169696266383411540562959534653412073741509219968112525507903535230454020123767112809542330451678970467076866244972848509135536875787259320800385941523284749260733725644923311429367875210940706559900376736656451934670168740484873897274588996899352839353639326168024545554497304382520847011842834558798703470204442388296655330730344782322059084671103985963148638211595763223679245384413163987761018194393588430218118713421500903512784190372028776274937773396149398114101585996835660956481330168369798187228581515882155781855209520903931917150086612309755974918127994656843272853500610239592796031310031744840636248344239420810076050769893494402620344928358449075608690002304832567458263459687321177958243778768014504565651484463149995774797075184437811607051415026075458703327484245329292040236323611670065106029144456279413490151040019145237074279398887277124538581781824120120206837828035838224342244128683611123052840571372116938173463768761516650628699724724991157133312996831965818407371037222273561771381414093774035095590333561888992176931491299040692648354681624493482535815592681703944646517197786401730372881443296274188574148181297761048552334473389060664981250298317311020899740138594784592760884392936350847887231953101418529795229114019801285529567840784673997415415436940324807846726733896757889484130141835372230529860933383561360810879830028713779735605588756493349382556068959687490483085062096900296811562440450831233585266845685359136246956468965009321360930865472572395857294826537722232994631169776808949171106108531889488403204300115463868544944665465365182876587727664457241373599573269354912580824436797279816273698756700011575117413176402210993862131131775804081606266787921525164976491521241065293753499950505503511225520758040248596934996880502007354114780441726152768847513546259114151947881643094558322184958305135291097454216925727155288631390697866691228395274321039852525526312316058166896871980956008340121126831865494820163033577042120748492842535023250170962148214307919076209580848071458103609020993232328387602371784992044796992011768389056620801539735837638822424861812965077510554996099206076702279950133113505035249895559325562132564101412835550734067976601762134896718033828273524081503717412579887430612846996406837994131393110557030736299378485944007272643440827471558113119351313892943053966810190059029596962376390597810964100658293556044664048982367198899481666290548773274536501519203506103103465230070777924711050274026701069678122421193069278777333897972845257186443917676169191181847527745422102896646569463215397580361678761808966255088442751542763879039514053074863616860095982278559009443118919162406860640903236829520555141325061956978852668574339531668123089647442779965865660453588014456294026048589934579662896373338932257168546073661835134231796767026460986191059953015108332569124624402506823438682256298572033507776201233198908002192519089214578909547997509002296277661772155944174883889497695659607349027959119647978399572333720030319176467964309838359491916217268351909202296370010601981320585197747650373198263224625936396897313346163874276803922674903887948431729103078150780079412635825232257173150511763918226548747819025216011619071021930668749146818145034552440321489264570429391594827552569405071989690410022471125567049316699825647008118791761271664268871109325280947549544011040541377590984069388773577499511905370542948866809281750873555836436238671619800940477044507966273626461262505974163260863931867961142389885192773985442319145983350678599701769417149789137140847853172120398424649658540251163021337171641654369838269535470892906333447566664169943416252286920871697699441883307824453966700177756881934548312839126967177451841726910863517579780529769784649840156333552971149088909464089730681388582265712018305341235831785627022415197758576469546244324435083289099552049153025497886504942663584251868469120853737555398249716751834381361624771220162978491879143689444520974002165615188422356374039724243839508117488324744195725243810677695623595915767651530363200054763936223510034903473194905323886910802519471472703277601809730127392494512376887808033621811887550377918677912166347045773171000874614860353918481942743318388078595269671307190846882946023622326309856329591741056140944355460721041390186863196300384871632563018329334948597312223620987503026630188695487155926947263803919050821761757275095377415029199619234947974134108343152919452600446653028285747857558863158460052776376933266207464035034588128869464482194206316731106741386132736504755137654027776186348069191694201792097671470852605665907615182321711734896755075052944305624591964480718700573711716770283847898853504465320519620087523526310861710354011044074024655676971804086476244941013510183856683333466179894507244669055038180875506474780935885246420885461230234855718270373332374032744342736160885796365253925041054291545258022699916611959315166391831460825147784999557309980007160587710929353447045619141131898084491705508663663231296129186207300329759276349191839340499990642474683583293595752113823889070991278076224929436533943595788339875523815082924237121590402350914284485930187153986403119022192442849335523788241963575606850944685739465502663549171837422366027720556855687953017630814748826028489353755337716890009183111002152986696058682859260744848729151187647931770322434920032651335375086391424790209410825860270730561288118705040390506900671881639216884656882470229908225124921481019962174769942824527560050793652713806040230156291409953071728383954774477825048983073997478250652414308076639836418847325760434300062988893959796764961322307194006580784891935080639045647587062386515287027861217948583641881030240760439998980498946102952587404231084474323753489470428247693398507536815477105594908162707758209563520681591947400803309986917339982414068819460759257117078049657227378437048937721666735586765412444154470681236658692094515691689327173062804689517235652253982249716771502482193394818009870023344060636076669190092446963318296408765031787253455108029440458405658765500007321533647879833105769296776798276539846646031081495674507048626106462670000748531247746197038215572613053743948442020295074090239975208204465653552913400591268400582809180059956604587153823791209245593281666603417015992428528326029612391995112227022891606008190196624545153410627291066570406651986727361536607002740110965147017416099926214043826642374712318290812643110609200897235298096530763930720741227393226875985980369855829826893064072544123009497196173240980665073515445945792990486151144230128973590211824487530112565909303151653492492399549455493372293181270625468970161396897615282626410577447170825455201565486253364301336503408698505202170762908745097712631676331207650374632849131069086361216464634944383596625906741081571122483540281652928850758796545305326569584059595106625901493780896186618679955872443414837746398048471695038061534007196817996951238968358051600696717307964621100301503859800956618596294561557190571596694214705268773821948248880942861822911080763917883715994859403073145695229045283467602517892917257645215728577406036949436676509801487371473547185188087989260747866135600728041736411417255261457845417439854751646557803311195832048490578166632648544045954499620747876337618415567853839018071095708139048750521627687206014783493452413131666095808291858230548713512923802671505723588273093119083431358194320341667918119638432335146264024715495049990082716124332423850606009505142492908143415765808449160285161645195518296481980349313562328403601119395227779014715245971635504314067625252969927252843138636975738408480557198748678431684430220805667250812657084928313312665056811400028196919537264660945055412243930385292843113726770087750206481077831682324657778633377638237838677434063738267131479389014550042828852685834097896966830507801957108728626168385122330827526086174702334990361104480563000525728246668271951634183693413403602335135470307576357054756579086327562624090806915797848552098249606594222054412594831727162074948852357942840500158642526756843277153352262340433128700783825712211213654889192997434296541651981494825734909721852039720848401906475497150658807016239209081835203407154298373325933725151321808851992746298724415826291258486855539506815395920439552861679762548453201084457870622080705269674732948946046334967460639942145899553449666753940109173088359451448469049081633673160509810193128115798834638725385506648391671417513965271852197726891505526776529518805960929901553750562133362762752558269568829660090955314198306582931821104704504929111528964937010476919199763261914490212247504853984156563618643960928222493817969011641005817432584789807901440478191314892057212473275127930303869315327552078271248168883729993079895406355907928412182083985340175961870315671994868853927555517925788824757513731256293320717339703400414321440852004498846320332350558244990555018141800149943428046017878634074287526038150600366687923720049392791393858537243003047500651503891611619340346797619783125757186021132436360705331680257961314644687124394048737248289310805079769912141940576709458808442612368510507427493795439917058188910974908373504636898164840549330057248878226562800985857090546875603538239392712096303705170022665456119377988028350239129039562393415433482944256706695461501833050332615446332240870390722758773316648536494015824153740971849677491121322282051324461976073297466853708915333334630956772824753644408003427312333132873958133819743217720803921755882674607517628038328383960074269618002600927466127723350062868285871428177059884740780108750409202177300084319387542437576349856047941629355281297754394034260861173891126366212276438546865565223822999115000440152981721469184632638697123448927885098783824489461097010748246852071577011013526385782789048949967907884080309817513909287381175702090609973624931671498346321081049263039602734750270310584539463157799888341485361598207483890033201756715050746954486815812357175887684319154548501265124247138746535517289952977481291316137036063622377604709040278797185575436771887148848820164627607619064021233217045212496888352047959815593957984770977161984468927723529461115608673605695001904459075395872968539550479999133336373395145925045129251591465456120679495626666087660447683478842606535739855379825969034397782993629503541239760097999868179547989510212759474334638692509893253424528892964740296341538336413767402627021177925543376447922918610189930899687702149429038680309466340139084310174284742544126779895679179062997029718443232035772165293240175101532948021366792668309645459918171339297732212026940069006540259088293016126591909719722955727030618227726413690836061646326600207113705042052959325220269256181761859746585859332366430995932930985071239966588228633906664120487478855872072189924321366996073280490089017668821111416724790355850732677699684088571649836503731231387989956536582957328860582950367632035791774874035317960188697239794055164992303995464284093190053040718622157229587387734299657221481689023179101954730217927996354136383143816075641763118798778419425246058294739571914685651695245816201717822397737380745945004164725509677308228205009670495178850454931921224861220470228824854584481054577039515536408909814562659145975419783072024440584728169773211417721467052324960382308063900980790496116644006630977067585072499121446819253115748419392008996694859104155525277162435652655612188587095067941114429641182850106667180915346508561201361684125797537402713735740820262536594302533325563985057748819737906285093383924586369760260518430789695602298116864620781204882222769831642713220890357324802680379351440794095073696270862977060814411126254301798594812168193774407793579492454212372657181925796158820082837396136416513673534865469888872125699943617939786455008251376515911235132566584891481516161515337243029327774955313661549824633109669552062444541250730712636692014921313806035242230660426068533358718041266811257783340338799651509245650616839334724157990806433060171873275678126947328195583979994766401813277058600054601858161606737874179265965138207234278896171438054025714364424876247566235396325796741272074730404485223284437515405202275617048698264837625008050523017344524573260223433376331806962231021797886493320299549845381360992682522631730334395482445514856879118967073887614769164498269535200773277449657560796849254093236181817845860380319599618186328258052889098270414730511651616735868418360148563779687980199065421096783685559781451771458201122745714390763516126866396072122527486641264547176153638682351375067111882324281174284580911005001766399721599410004180376922112361038069698868430678168882381612981061320446594501869956861509342512158746212693393339895281798638299977007352309927414006858084319174744062731209635218270835567398886561456115878078953614304924237850484176835140203043030379085052387815935336221187117667669811051548600668266992665166833906311691866176909989827628428961656242596052404884972935148460933166841529489738951959160687237851419123538117315781977401494044346936669479831816790390388733563076188739446585701116296585934965188907946090665407891971984752206357660635506872780369868616742564949582666901341617866998201099027867177324249649955097338741765961256952631415908292198865300995995124660615299289005968476892132932808070793597232490428694296860990498563877510439667225463520161803444148661317398371714285318347775357771488779254018426887473711483057530523657426539244253542967082918128026038031325143909293440050679389988868401233234100720332264088712500146780335346331449598674903156824026165765687571741301851815559209045560762915130303183715803572872422205239169449879756544217433810657081816889109916895195097871137640656129370241850673167454676288362730886684389857024917317217135037974841828070291361587337474224493873836265009213900939200378861791126710164783472819754548278025946073063539643505350734334704930321827338474351373286816370698743800464234998054869198567057015289426661567757964678146126394426345474982204748873482159184768404784125400494372356907486158806629175492406218970661886429724476756633277309185096527602582551547736231362304921589219030621687844285345713360067755613626218064669064065173960218522649964501205084898345674404022040132164864173558500093227184577369857797508516146463855649203268702172642676263097129335374481088317559513423294777291124639615839900890581089875275893509404498676020282703328479168868330561385261974668148197993055853617204497814039630057922405286742295148888801189891579643810233499331936193594606116176986020587135556181569714879315820168381457418020439758251959291230588111657948269597137206956210331203684812543974985136795027562829534414733038578040114331413520149608470028769381465138839373819366985779798102263226831428078968777742223913279769875539010890020430257214800901466478655181650507267986734202414344645499834266303467628915001336185335575372263622266017002945331481077977977895537752938521444888188923183089838046604576015408299761078520030967441442281626969094334486956670523746931791080583518956544412557448510813557640360845216921968041992488644403347745804453932985515823295391377833029890852818099343231527626319309952503774256826638477918014487753480296318848248783577627536584378802473535666068359020955145450378612765059349645896981245382326185645363752871203725347763604720074885175543022377460938690356945202147988203093805836844970833949107445745832645191106305917812402370077704995026912049979269246802575158918861906396099612400923997651204571913842781270859255070737313139021289789861710543060492383486338690326139658445000174296390053249430383639049169777602623409189438782187126987126929151088103553569083255743935310776263340021200011364254900061599157016514767997320064085820148153385041334500910239672910183167463991630861628600992324529721886015824812871005444319255923704448742850471272809018811921854922829700287116809439520541242773294567615973779703332677609691162998857387457451407053730315591776713265589234882583928367314878642352869586663756689825374367080234315374316346133163501276425582433651633558410513601357520615879925978618256126912511379024979166598682509305141741595027175486898430387467912896308109905781858286999505439257759932426949045972370494319803501946062001421581294946726413497199959147821921239910284255536074125908718756304115244253326460801219099621589869066303444125328983447809983039847425191092590049789482338166505769570761000516344187777276382716779867884911851907832756758852230697507020934874668776045391381209934292543726980805918388789537189190487060174554220945005452607402307592807910148059100827463150853847105716096863730299577905153704225957167693181710619994528885520469099391033737509345052182986195940757193305713645055188807844955482787903861371560784718229566493002834817266105331581622207406047166631394225490336415058226528463058163756203560911143875339315912177555284325931432427579086119803541771744867122605924799746669013396366823972819351556467423885786591652296124035961124941751262447041484668832502920527333044415997021250621444973499591656952672680402716646476395409396063377604215502573934185868260950465302236002801408934206072402216612958930074109812388515801491505650653835973869861770530270186701421471081005568447524246804774692578483591247497385320203029431684574754819815348958655503445731831120694958102170411404442557192789402223182142376064078245645505315005925630559148917285853805249131542199165664926426373463418582767215298922240373465289867011837174613441822814093176424197965912503021658811690505675728267398729182517550621961299839952734056711998374088762619975303386300969258314986253846529794873852555466854434584078275346735927739172397563941679265137186413906425878327415500893863706435979490226422292292218650217522701239870589444832446329744039458261545705319784724050567454207587027714728091673037861986326670638787998929048283735724264790397784538244556804384491313013853231502810748844177289679479352969697963818151712998132747529666201620064859731977731435131933282841039518189307235461314865198881727497308424133815106925789316886802848524491468148968320189041330870343846484585620987117671599755876368485214949094629959872265934038597414773600099070001263216961959673494613228439085780753288583080858208720284012223215065897888613370079017076087381209893420712780206452956163196837581622781034076395778970900606514161336419448350760821673610330678000296037007403198256593073426922243368330309157905908152897714385658915444102147441313687689072593544985352485825972689792194044327652249779566906364946562034319628789738513746292313268927636456778653682706057084214930915538480458639106356111529585429919384356416194265847450085740963262866809599145575640281974050317055658357446307110582311952533131628872293147650579838258410670229497625799229766097461625804973080827091392709289254017337731087834197320534035853109901251933361194113690144454998320217109227880356596423041800956639158584892445509270131390527318138334987063503678877236858801730969080395850620593769006622227704524995061567911861086221545226835019032447349779036524887131173248767253990529653052217363116124773478378187016316958042612031702265095892707720963545531021221791126225646392803429625018095531623123179050023798677207975685373153319026298068900282844803874592836508939896174443370748812878870485954250099926923114565987126877125269409876072814823253624563338611948667809477267841305285904804402684150970816622516464196624372600845775897900654607574673201441320651167949665483437581955606774815686237417449046696063704185461245269943280413013998541294937850832279158105209869882678957468023065692980188261236347047570708974881293569531744393402719943098674499096123157766154806860282583056196244525927498364983325685592528959520227753397636068150691984507874964791747789710689984529414545634718623652453484454931772225822602017906367711759241386092952916945814152201843614722767404262601845732368968630237636194119977395549911807137558386914116549037573647009112975524435882390916719055033407068333134769059770859068372092591835329953025195453323849340129837545101397752305576043671705278506107981087656747951497061121229829249677845934588529903798737524531954979032070248079771280359986653389758207499685421513922453299255419451391716065420975855379706113069438475030056133134454583056592618185237339295792468690280326149604063653750384649495974090651468449091286774769796989250458095748813220111720447117286504848296784393083327667833421373764579596688488141095724519430178631721078189884018803779337758806824355106286448095886994650816624333301236609279950486447987619981136780103386825482426336743349423457613177727888603419014361405088097988450849703297289726493370064722858842932818656927749369166706059877953545064502298538407221830675259807327639982024536528101541050064965369388908602819825577742991369866515585465313880187599549783755552054824648451524770839965808068270479508658742415860595663051809170886469479485103999458123538104794590662634840679408660623877740025234187962808600148707153171007151743376220125502552892960661658740816794258527001403265610246399337369098704259216528782046698836297511677563047354933478165051967875943050720501965616795142963495259545855526342469154791969544218525621970034448297249497749351766977042490000570079788711823735800431267704045530825648419332146098551960846193695525933243751556529999441982423166607384743835865402856124682066618667275964932380618845178326361037010896570780654675155238837245124816456093932260393880846057334004188592911039794544809987125749497924415480864508531230642826193267146442900544349423867398613305167196082188835099842932515803350798031267249807759317490978571178802242306174867585755724642382063741520841459142503075634720036275242476986918117800862265783004034540950090381031796835335057803148122246510324024021309874251475206418718153359446970291603798809725724605612936955579161708732231047704974824236383419932298522924019047275121667917516532235738651693497923715986322345240688056421834906659302230638228581842910517840818003892346660844812756271387902554199272181803205232222072571045601415097416302146590280497980640092708246369880904886752220727728850055125037488082532705584459623889648587276419911352139289559593454750213894397620945201914320366735938487511710946906783534168528336669990524129303850789387626623310326187577509210962659089018387304523561004676872136092201839620182819228140380023038426727987789726625257569301537969248012871768844282049871726272963630199885671982747782295851983988286488896380738975929704403321782462806627261093171918327294653844457779997672988962123251204033745026408471785865750928117335177381444844463090004478014137415463912683805789129181694264820271808867142591278395358267476062801567930427895578808285125682774999679928825217249370074879319002443824266865081702887900064623869503823183095331358730685390277577386897591441937958195464906876111950380995977968998660549641082610839863259125640397379915133139043293949056744142246087272671182885920683715278674976707656399024397085802868828909474095502317333432238305475960601116476182329362883355450819173098048914920805480375228983641559502147011523467304773997038050473331173474161197637282363566185803501647711759457640380632427952001624201561263016725679390469922245588514295195172567363247675213140470759963030528111533193407636485187724909714539128061203699974409178046460374381408483340462179915885017383414533414473269836395234656993732297776015883098661932134985298181969581876224600854191482740774139715362564781908194768431467367764882917659343106060259280014016571004804734382717950951719413814446303865008020930661780454649605495103595828272664207233932539262098571866662344980009312227376403408427632510491577383361230513090206837065590090249349230847916790510776286841957220348723303236241526131669315953376424388167908689980528668445200257920986118636638727670635675411259713820170147885388121238250140936404091516936928215549616853818425550143560004586888667155397287535635540569173603346723100331451584813045072304547969503594184087502898113591470624328737191016127380568507290645933309615166812688647333897078947282080059261741016503991286195543537317014631736325846056418358282471207153944030358029940023406648745805456732344717961566508653433936956594434451732156635000888366648883318908703785991269310104350783650981067895950149741870211357466391267045810837068470410727828764510541532739484485656737706728698617004100779726785028801681564127461413684914293618218524158324703940851674637301592554874614453055971741083223538310122075042431805770655494528442766183596621894069174315675039899651900776607067579618843990830585275149545012839287774416956912181996497926010221666259423697805945121993729975490002192885927374518648906088953296310256947265164790456882566773940713057311969212767158342866549345803370759318065209199222101723503359577009809375671706623061178888912203184970735908447428204141189635568716545411122753326589390097967003389160807832695614359856814408277211683603519198041762757619913455724191390290939002898971429053314693782777178105122779151739777476460273268387558867812617190212905591779966263674350896482249134288800083155955202627389483811610889750731303149340981776013621996984227820915245208466385529574821425458926099158551565817578006176512306679729819334663184241709924801342558575403367086807159478989050111386505647450786641638616466114908092877727182568318519157389426105079431537497910029690970778794045090464585833974953547452028800521654145072823015339773936309878365811399739159232872425308610948023327495499025963353078414403168258543097507493347105569508447075552714294917194982475718800097000858593319301716576331095873598204044122908169400852987379722375667312907935420646397099743859895640343760544270008353194340140711697686806373355781536522084269094346988467293825519819324584293281655643358858704918265036992657403628490343019668134253186675445489197995243670420111871698367916990621634851272607943279263694452016980837108463373508080271437138647278336835633495878787612990052441291767919746902418882795190009079956511699394739379923891804524933359982553535168981657860214609614498571780219920260753200273833379981389048866005661750217838112922805186316606116795348061836260150635340386085496185317194233812208060524327951211701773436177891948062690124048291085857206214705187140238067663742188217562672898129118889335472863288897034395890449689531975164422689586960501412440058722162931232606955380563354604975420725837662965121046812689155310844541342468113771083784873105061978480475357097285804829919576674045049389903312069243110699143335225699127230870520998309235165785715024526210555137441462920632437280850226370734479551245609774524360559348999344383525944409692215531679912060499216697607121448024265834455757080215674040859455175198389717044556672112225906683580250100810731225926585358817896439323632855020081720539158189141232435971000584577509360803679312007169851027826091265767223069369236268905370040295928038818348770568569570456615924656900576626368173559302206048046523254776141160716181800782509174838546785338281082880035453470707864210162698430288261349972639836615278950074742633404501182446225611294395960801878803610552004385308774608712876325633999912251338962383734598198756286802935141769681640341022333343288994291939963889217840583402912385182332391891876369064941286298321172327389473837387981244074560039461277507558202454088666544341463890919060590201666658051262434688665156281539035064039859019248373122365059158003384815291575395873642650194126107799343899378334688494464687707931433453756806488962678022210098059535588380266443138102205311620637984939214916526830844344623970954263673037577555293535734574205273343611298297597471306172255431475399297592146257265071404900544843382028941507722925921241421303728038562874748449108877529199787020010383939569628379623323790051035137998604142154320461413600413880886484194053808504261161286575427080705063539673057692400425352352533776334938307172803860817519040001785766999987127785805154955742536454452805451330608451384671619512710572240024206366437290594108656660239716995289019610424700901329744655870274438379148463832290749282580102264967347151542774005775692508230181874417242441213859890975709814236551650455705449851325486959457810078172717255280506988714252475592051069046759022745593879458150499116063788695924500621391381984846512285000114630595742100173147247901122205488087917910164588586088141731568006735880186515716229310971781089338451225488355275051109344022814793522641121262606760557083602161655454279757096837090223485865812526051124413932082524558273147546611621756950616566166470107262648459498566535506234922996581674832948043483455054935198207537519555439629356500374643693881811327653190203808712306970737179196672468512608094500593803317171237688203123286862597969224608052602581013827150593761560262320286926057771372734442044479727190663978936345697290261540432145264032933601960605623351043606045859745522258218090127653448154117559911626416317704732934111832509672571070183375297664347474111735386964504395010575322505424575458704965044708982095535270366285307984177838348239191254003933672091882071784837885342698745630363964169203940882832312404335192140992988892883634468624738486463800984585243727919354153383829350712262301962983605560248054845666285481625546551817192998929658056896506923264300410274365395373956856751091408602761142187561257247453565031708901868579298265715843692131534995968229419401957912652531440067368109583448064141098197484963274926217776377324814560591000762653406198814758481008809104338035544338153641800384270357776166780282585298263407157477067359212053499756028371533787805264186667178885680322503743179762764603148007852687841119503225720100063087355336202250218419503350818374247093058425111097124765511578727392092282512300757333881227162267619330247965391393122721158021412743982891727340664427666506916332229130598820349657772473996972439675117664688067381633276628935772007808104650984156631134322155801300263047249093102745775008095557235713073276019527132842202320590419404098578708365663939677405013822414489549888551729484666864096291432061462865288362124451780925117881751837059180413603927510365949668633658846624591482130774426577215318551415976310886273489499867465981411239573841134886078663114211360268459241813599285342257096196523391652103600587422303825239089901609636173154743257398121195181972413252791611397334562161884653363964240961484365421341983251692403451198219131444667242291858996105520300712117037112457249160836078522723021285343959061147399313567047560374392545660201535705548843222046229937512273805375134281500964553543346090432844644560442280663071687143613888833292517110136765380996387388717800278178968312593457472887900039943722888567126550767788897347303038544563016077673666872956693602624001139038550059033047752200364914710079308460758202881355380680604130214986081945944964891944429154374783910009595837189357255843277509807134940374721740964855154411310584831374504706071778886704793700138487400053909674264399581404838086613456161413086124762512357522740764622362682601286781015243503057317434112792750126850370602009259136507056429136263770345833858729083244942590123424823984645085760771742003931628171527564272938982624535554030367615241440277766699176648033192199218723181235000066724454603574630060688777933450165247998662437767808178780066117455814024885593902119879921515449522002574598538480370774004754565549017116130177235048899125986817892257426870467740078753950925594755797187154244241578618820142416996174973980464855753039208482631840087649708651880879705546457826704545957904432714642995699326300604177894968460106352098993933368715581585093795073690623652185836575464457683567932374866026401484528165194237675528689481764749099807739759559501394336714435083797739877726306333408141757428939686398359494739626794182533363658183256722049228942975716865722321833876868446262709578989911658190990815731237971771304817901133116733993506891750854848909003262347131637902658322327836003354706387158856130651730141797232296277923092194028807242066846577298001100165615976941460829662299081604781860412537229997611834300547043459891605762658252644967779156594795692236443719935098923543647850862074573554982872368304542009542433242638840324310164900303913804277677077547859365736282797776634573301081695906732450227146964215619797148909084721362124233724486258844780893090727965595863437071018299153390126162474578884504393683944301897425562590298927607268890478190032387264831214822668893875575290972831947801004667033707819096220312301528909725846643581819673466677418464924420859964685924170760604530591074107712123701409160383824093488099975895207917780085380822476913441870488987408640545205746153461722928575466494878670011577497020213473569826706454308383478200417033080725809940880342697902899385474966152957438624913725372452164174917795765871050895070563786703712229869369920561685173495764056795580945949781473383371202324406745620834142742212182687394701502997927997425703555565161396469854600620179975178807621045353001784387826973662324252210982254997306127453662320070997140930003536343032811950804982430452099986985766788401536807025725581381782402660553273848722314318294137549827851521511192356257286087683502695930981783389356527723297244026722361854555461002644568152012034637488302064763914789834128966437959436539008857495545287811005199183762370659192379670902863746362782415117551073933812587706076470075258531417219664861372903903080473410959059053610917472896496418600673068698585392852824194845313208011931660130340256501590091837224321709582572791696044517304516155640691067097545005849121077420574329428588221558154892754578283762268133656185987165575657773679851316675648436987125049921523394786127814233830453878297669540144990318400240032726514104209454474226897949966057014515891104951975647291761714621406895380962763257926204258732579092371319682954550335211218508158736566742227914185665433787940479562953407579929129680118092965539150583265515874731917889647447993455235955599794072217560919955701724603842637644963879336190738394848781178789347041896348287356968019500259186791062439582108955719469834754767075929640102778295958063037348687456075225286368198094918163786168873628249118926520155611933626115434062718575692951010539860413078149325477409347041843611865905316860810201260206818598844673733613383793676758188796356099024745136170867321803687064999059154775346059693090886235816344042563607049332829177686106642383785703586703123730151897225306250969514096701146925288615776302283004334741640451512145583967312164016179061958774888017670018016614204545548279040499021108377663903996912593103860951685418845204730193657808732125924985603083429081928347445730217481449280381962151950042952692680819899498363915167276985756607267367080281366300688547611479843675202420765535325507277724117538441048013407587155700680117028162513331082618678378156382926821898338986758809523159145009672201047469594538560538816061791708625850937255406785505331861732191111027638192967689756139788037853418671340228395726168306323624907547714427989817326230481368656936992337486758998263769021379574933553479818791143873516044094363429163375526043101384238157767497997145367491712859332306809089475384282916051145723522833707850864739788588514072339223929010145970958132374538053895351529534689519401936901932462303759192571358302273291155292136035517936852789109813848145439492290591634149951340050842574030346968413298433534860981296735612232048555700128471452457235382322876086152182006313439653163473949896162939754955618325523280744294426847656982045178600542852884982678408899975344542160720122750133128441648093420935120763268854567361342797128507794950796565858350134521897766113214906214323556250306046133412979505058017702949970914830845491533734898020774789747729936394279008397727076548265490241075377490348266371030091113816019767184903642266067361466276799105039769156643517019540346238229963298735387176388631509197781858497280228455934685778699600382010840124440598300534249380705237465295621663890767599018119144222017603674508504494916541334115483812887781237088263395030085362735741655761377004777087943948912354494614488153141057334013636017025376921123850481432548508963391792604238042047077968585391095753969971618157866548320994871221763795975885379946126164826689188342370446491582597155419693344179058696739874316426363926143978025391553816994732940029514375482164278445924139594859341861104588935858499891727395974578059346552434636877057339903192532645611999342850754109261025883014467118742689516328976684701428093168850768989879156146778310512921416486145608085010236660046401604721939063171944366978537508254519732623930630046603046511845539749126555752535713180558839434805952241776428124833615696581343839410305535162412952501184727532151539090100694253272517753866856010382984871799569306205684485385649932421426327581229070022223023114676750074614271558382432908375740616510214368220802418026367667747740082671447276080790505673086838529672181341513056790965736553516540927139708564017406696230212012442301242060928311083336324971823030556151839887888678324398058652666805493195256585566699851094196788533378440349810426152444799852771179548062331117591129555820390406794390331428173007855623636452667062075435829157596359342450314734954627253146222873473776280804551312346127493715355896751526004582486524657015822695664284474375699364274237844826647892345200721947289609318863829562016706019041349690961682436739492157696183190162536448518503236261190912974785993615703511375120152808362791052450536985041705107584740804945187795639584381936441326386463486671780314931897191311061123191659489908746616092236443239467988847367293946836152796070632667765530196123826014029888460260516908420269501591302543828599450851135293870918172134270502746674288350109438292866153403396003369986675725784222513816543878304834252606372529288333530106662737838376623811467003313698366152501651197248191509057114653960314866694956021340070535188562589674578824196884489460662558065378284121500418485853689310747343106169103177726330820021150778503782140063475938483161488321281831220323213569538526715916641954586785416044217602930618933846731357804191252620536913957951544912050926155613260887026367909206320374231356167758429694083486520469885477274006721232215423643198896332849325127882331843805638973445658208758384611339748949260511685110116109535079966817204092428168540936398290667813714275502025078793442622661135355198190249711310888328742316645123257169181595937143160313344222927153475437467050573573600767505072928473218143995396683108556985627125165685861194450071803886398488147170754829763059079369671983361697187043511386385964896337864166828020129624109822374539728581347301078765956406870831509359172865010133597551924771464114983515061166126547617802464695678647962102175864933343808318041005255968924974734651687415345665367479963306091572302914426864923696325295229108363369873363170246347829809472850682251487456407407649159364351490153019573145681020106394553897897118084007038579663286049934149137315136525823915712088549181363375096812158655535459251731147152965837814767778233090952845734307955796227980146491180008039276048049162664123563832022854353822150173766170682687705894984711397018843604836427171034361332620163233471473873708505684297429623612446494877209929743828335246631980415609856638287983462229515917049048035029968359075623819385941174212928298111551193747116693227289111937671050352864384149621871785167274078692479421493508003793590522827032112156450267497027118387644766394447645915024642863874743818061123893641734115854095359942918782367735733073158036244965762275444322583641736060838556095558615430829500070571419725820961843133155337855142780815974720760349555742740804604348932434835829841925934832091933183046652154385209667601467759207973425414024078371734507696154088280098669641610039706668205963966314527354046206625410428465373139058355190966976270177485473448577531403521785291131768555213967048023578275258105697794537112023183769150684764368485828684918459516181150707197913773337198771388140172433254017618005055012277762152119897682952953914177001308922197406345705292380152366212784729367632827723474169869966046267551684665437865044945826560221243270481744666876081037590035473058870085505143898385673977820286438759594708369170803255294941945291494810543722069220138733164145940070080387834871387556118615860431460126713893449595555549134927760733891230058783798280824353307964450575364079854574210869503237531381655469010714361118355617600030517756506218932856492518758234987136861959455171340741315856470817014929965571625112642944736622846189682936259813051195309909096707891165162133506717748807395992640130803278822551944629834087557008083709002957052442906085759124629443583770248712492904517442949639995124473795811328516131676390658318577597954853854590176859416159724398581225447703834744589639620103135983518885495910011134149611662116965234696204516233883945768614053741228360994467629939325548842406457656329237496652068913095182945572673177048370810416882084307027584597464982205124680928384065015783746496067822224901158455139176006995279080773231861119034756366246163634621992528581401788700812885699107581171258563708808382237293549233471935666817774248639874014474036424920589574849032096263869414875416719424983410511684905484609230097568826914148933229930402488773333899544470758450635957251371554944982144458014716289646679335609761742333742769162214497904509133142203782545768943254222757978723392126006810814796601176150801945821288431411783240296924208880535081344335577046668061546122484906132596054917199857778377450003834452333862126808213524258394136977480477674383881577634420493007585262038973700018340454854613385152682375441185048524411174513717492206743852280156208816553741829692749117744937719672540689278666501014018624029843557400972411689019141710354448249607639749341112530340159027231721107195609390142815587626416565286569885230405120040516118054467082973025415404292117222838111454253398011224720982298435342616401212233896548044098108614585612360042819340101424744768554141676203271794501746457965630488031627108942074715194574185637589937375655566332196848374015913266703136691957091565566719956412558478684845751522214603945867422206406219214799221738618146620190477832917834600677032206468765738433703608919341558771189817242635135416573331536818520875046990998639047120540285454520989162709377661515653373713357702484300578101159049458790708412277168874932099870949513450648305190746672112488175537542705716411094861703193855476215815347640572850225653352515970420555032104472584183134204938601617065611653455068808605259592315554146221395776170616250376453072158915456997240009235050280933441771267985176414129362537512548865025943207877090743304670583593517990816125331814021587284286304144120467704859563684829477112076191289070265555193040251946913473021058991295624551257412362116398308920045730691411848967687165257959783605653674203569585931050046021773831393791661848318806611395126205778417929213145098966199985589948533346271089448226221751318489603702378278783809910107182237912463818391183509525486537388853149671918261845630982777268705503065052693448282744527570530158374147455611644095686482678017458044194744624442458978266899249978140957248826334133458775691939282182263771884592600117840961733269495559202178503167856820960033558291585504060641054842130813583668271445067053493798832336594439253278364102668111467205664403423119949031188206369393863739508250339636209796797921304931677613808943755359389514943709605833735698268776593237805593540876693346011291358311451854281396293291067415505432269252785962632703481531385518944530719333752549158732070502825812495428812101079514491611618276333875783132515988381550273522815600548781405169817857479277667756040708316823939099188930794191707064716284484403355093917109976789819548784659140945578408993792716098914554814879009766155871899109086769840892853841158218811416005358649844940818393706952522806585374890574831272971663310931910845139593743799009460681603491321742494313955796949245028473921702375077817903988428489142553941108189362314926829216418043406252601946650504267333004101717718952187825294146736663518319924074412839044928759205804821016233982732933063226932544158517589423282696061176095066434373921841881513932770460988534731020346051700122266724645259047052955222204788857274055299443932279366924020262644635754473889735017708649207805008014714805551358823413462881544812146612490708001391648393065138116672481165976918092836424538403525413561176305343693460083195207523899414525378697069946369459831769673876098600957495002200517278347147863708106960282898432229296859933465072108441844661839516217254509741658195123282286861965931483268363246453202321987490987267111261266321084164653902329706900251988905656459216562900087942894777411398788697996995487530293757616771481664831755221334978539347570526040766989019736855439406201939295623111621227020561935241172976401319913233095566704042200776277210290689672112394698091421082738352855656126621346761239273290797317881141339752112320964807004051765539872462101623437153044874659869330443169168196627713047738415957054209732114762197029766415426077795192542755668033750280950956379563593727942337468638189965890146415296323472439746266926155516101216740722882709336652292742885589214618535370800525899513487671639170399011436048065284188122806083908077332502129318095145474385415566008546021103120919291921447368966228258201103145240261210426124295124701973480342157602205158619455495892432234945706716145127338008254817201383540689626208730083425555750312065805285325031729667399180657481163311946004796993875657592338084354419384145180291268283616432388493834953775108743206791200742188236130351043443588355407291289206923168251509860333961246886438484203087601156174796489770036944688429441402967988582131251329604540773330670933356914753449751830280790370436945124628945553775146183083986589250699240714862693144360681252484296124860945979823359444950278440537052763869332932247228185880759551461441332056660976383643883593745711494485459111945403327866292122945277066288486171450889157021444944823800675458932389246525623031013281695637892159996054187471427615538911109134581108186478769934583246455689150960516902958803796870916027855992344547069815131685492616752581333475172892905963770493248494381717371814317033488668505444715633495646109651045851170632617238914354055818941052371259569861190383700738622921032521801207792901152128596386224264122359635231718451515472639474290057575569214566965508305894223933729439420866072944002510497410369081260233944132605217313172405265974465345398287712864276854209005621049601198992369337770412324493641494938300811950374953319524454319459466902120108151937137189845008395093692842498054768157825149383300404709737286265371451500579143971416348386208798856818363697528189504635359111294359841608264157007945070231336808438609204699052078334405345884706330770924931113391231639476273098325885657955006833699729962557959706225119277763847949319204737973709750277815288165303422429045254894240496571291505784406432366635282598829725042568094812124768988503564422668049975218074851387252670667149545252691344316544403591068801191479216143431387267333050057197475079212061559201089214947001646695089315591051662229275825673870725725157300264057083982104989096648833234360543134145566611234266854453055614312311268713823060474592455312872923950162016339812641606396558790916123629470540668351890889761904388301663273301954115653966427232921427976331685707461401159431561042050499565778327896613379393981709831329579369112191618042621022429729633259226389892284020993988997078358901580348140714759359432339694672790285730213825844495380352770105589723580965632091776259994408874051236390624786837230324571653515317583379803192179624228474695413317360666422496317037035788640300633510556697785027556064219414746917875208395155423634099293405498864483709990231002574406248528244613397187362261664875635505891958866314049006875785867067448087819062654810973083137829894869050636430127360536021881377271723270571861219935251880660557339082811766586625260584261420896148777460201386095906013154539879777949727064083241996476103368430359356810753563679264522123733170902111063679193565185102940815848967641082267641018328032484385879284981220099535963386509461683467167543847610394870287859312250206777102786327551842631555676283317859073870947012384012422883740570131668149893500498062196472165109348245121351338638835120124030553936464214813390542257212574604814868371147514686293559349881536122548265344291674138884386901084106435146168662719522155379671758014663491748348704346719595362443161554936997868930038060256202773892582017913085310762489232338996669563928822754709397594761870047994104144894436668492281712619162821468090643824821889823663007512357160754222951806330428002042822018740964067820514803570318716019661767909501719034870385055270284630023922594207434962567254056246444556629870021332370529061526718954034664527035240125509063072716875484034038790621795657444843063841917975817542240482951387568728737957071045199845200266040812479415188970189890953985126645760202948310597390418852879133145489936416488984912349309158828964229372986475663013191745733553091177625668103602737002130058479170308824065072084510080094942847220612439749636308642159552563092830876989724946911822634184682313367326548870928192247890860950536273498224488261379725443958882103406319083120905734035662256834178748317422292017610275213293686005272670504988531425130792897236064614008994111434358730052448949594395309058403352952806223288017641617950830339593472746114952377305223048579856384080425728147678135895245109492331661239958620159410733310817095929451610713523450392389790506061153770984309672272461199726943505204556274598127359843443218273540954922440235509658709489979857224079611586724758525889588891759237842638327814506560675339111014098531299389911471073629137187808275087521429327041521759063300850442652032569941117037501815074753252253905353859111409759975418270945307480352986360468065582255987726871771696875940331418229562231554150149441843039223496007625615788242276328504488580371712382316447721670487815903601053959307950408215763933057420750621685989792540067942058299032962578521843369737298555242432382834071616148304698292177745307620390923036120970114406585201193924553034186947860930304632899149880283702949766000750866939961401112252055147710557235482535881598750199150451851579367639780002578356493031858545691524318137694039306415118887470309164516020692884799367567941228161309459445214996039544787033462240090473537027307292498514003929246054933670752903167359746288934238708122719975771849241575554572719575637325069161028301599076817984920011040504373346744160684782124856719040293034073983409645773284164577365257769892590120204592386452956507744765732012178521188256417498686423547769991587054507058620572537746535705420782008429766834955518754061994883560431283366478345165801107655112243514845888168943547970464096384708679829431978763510689635693447322033476882683399485377354713620696510910915969029775080238804482249172959498976796835268951678455981943127821376392801525887451173032179276399627492657915966965223688436385459142127561579036319903332718562937646074149469437822552737046789660544154405661667666244949812793286575264337717170214961815362152870223946976228064245298852809327220174029696385718343279894440452105013691283643455255632811072260897912754458057451554744347355126307889508903285349600351966192023811544501397118697905559035481172158639662435694188567471621148082125710361552489871290310052340863436959724406319851554427896105109572545688390667868501702165815497304120870713813205184476523451029476090446208268845796335856079218528298324530969425897151293230120178318385109414643826843080868038840345160736687998188302860894786594724058175286157011910679298615643487676611326676886655265440830158774100715759982430913381188210033082565113466109667119837089018765551611230438842564848298163654008063506347091785706210951285450062340681974006004117037574458616266237473373461638068366534522366940340854508775651798112393781338672883555783172603169048191831870731026097183075146165857774377448055562158604080170544349980696131324019528641165585243377719447537836585286246437160743264858644703579062810563603943949463463964786036801775084938425272046343777728004444423389718360314860608653649864136241528911892177086916608454472450920958116778706056058763415695464781344899971918195512108204804692752201438479313688182006356377696431172667861920113382659141418458901411923798751307878213915932026599502705621002718399216481108711651903291715903820811889480829652682299768199206347487728761919685299603383120648722451667674704378743661652959619387094050762197065817761991444479072081917172425624759411506049943239126261284107381985347954268582185100597161896801898241750769507832676274347551082850602203889300646769199114505480338676252758719971559147995264939067258456126696365322860245800229572283617619468940779867734025801604222326318165145852807469178327307472252356324732517447752608018425863555894495980126160113177942034099915027483730500407405331549351978777926515488516536362500231171091070627052656793701302751899014222987778862246391350542285640266629591515525792369276066606393139058997650792319671860633377492856026088053094923788080060699836668446791918921277120292382503164729875181341911311384582788285101368631357814826835981273902524828696830057758438442739621069705289402390391391836723088575533659384009025917404848118945894530080583483878340199708052125765092155358533383315472762609950308578362768253189344074425717688383638124430245192919254986120611374197527486640914781329408851214695345269114694772589530027334687149692485107463642262258102595012075094648138904141845566754902799631254571418161311225726027040232606566922783897237341008377816544827128514739552463889014791692858505983173839226837069015932234689886361781610716570924143962708850920054790808268479796149527004927806916370594308810846428668903116213292279724268264571898199624057291918191290552870742084017979465035464216080624027237319313062895269576234197923631742853234569118757706536851108200401006677059553242866106986107175507459696036909123016153999661603967555804407817379228331070109084796459429742908899002366784332772667464598256640625686230568725846825283551051902394807204539040050674171783123658858561929876288167339945184014916248048942349968377066503705092229544160894741438889172782994598508867622159990777106873617501422327176521119967424731180205476180031415517365306675154497254924511720841415572259817540718769581383204227260825921451538997638077614706965895486866547919196962600878475417469114858841120654466250437693395983063499187923698695113697177676680877829474529583486400508926694181903816735648124276346416311092352444497064405103472288566618392332932418332663051335754898132860018148224241918547049482686025227085118168091597475330173500843367131504646930717604258584101149346475905156180011735910174881987282206820010994730490328858915607546956513607030037201818580125392370126719977992894375217750634246804535003903312636537710876513185590260101044491517009807715459383264559911642324776745662420407057804636305689787833956202460846226600283058344582800814694004692959078744540606538004506369196260910217573699916062727721617095370033381767028927043718985787919422199166123123456255598564311820380723876300461255195225730918161928653888430659824651780233406994810682607750159824766252127558735533758765847943610277982477206861016129629202675423018037594058908343160933002314983317391033254875680438652929137046543025356665783317316483619694519810262592960159042395061240109820310576960447870287031488710952999504056828464859140425442582610677099851021622725234455180048548115821593433826646304548874942759092944670823778380989573540303800022744594080090579594476733397800054643015153570144319382143864150049535517527879470786080481660980360972867167982272497288259947676533030317560229092459724242013635160996053664867647031792597278917105465586204244560695257760862475710680569942989021346704160067869412137972837971163313326997004839573269986956127815888284919850459903494587215318975189037367510636600401084431309695984316641971445699107475919874635957271538433178269859487421455594793084414690293610192156284900136107762736113370885236523906225404121950254966509733651780281190623289504417309998775822770194171878925191006520589726570803417335744304991863836916688881440912395843952096400278437197323406396021250317260987909049623053625533536526456743177793267678441674827740433393617735438716654096471404313327133032274448521946451595058146742662007482653206262816578357163679625872885515087988394833498804546261071304357650508225812182414529999800116939685450616827929673711323267247576030552305340451769838326939048087150748280538081507805546872288378952231187122850608384080466409059294370202471312783284351440228263070653283025069432939024505763133970236648780852541105256531686889247379086498916716916931446453861159917540207093231401432301177409584628861620684501059870524936027121945910613606613450064293532945651812857405522114117998266196644151105909253236843735288613264948402448847792282555365882981065500468880318086191657177833060068143074572298117586125530957984809698416093680384724667819295624146658084344710716140351547990584663056428268419101425206088226115362880420675188803518096475998170096266075890819039380136282556521658399037154545546546124818088818928444653538913288227863802202336637880383717730198852712908285357796597754674223133835663799140174327923375857314141886882559928615591156094721148330195414748270176757628690993898834375555793703216173586930696271052357452911843444462244282231567053040229231207318943224440112747361533109024104946424670888264682941417101923303118805393916659524952442633611693074238408196758141037708694637341581097346067402569972723589859799917629006235675453700558639481036681029928452954437833627446277382513784683564672441903673857136796753188506159093555112520876208570764325935894140097296328082816856010010784116427715781915881788030159535103739466749557004211035161894766470991383117366977528649698370212049773915274326917908122734350485092130634777434946108471972883233939902572865644109095927204622857356755502298128977201754357588456431422510703685972607071270061890456398692381425609814171992298736733413896687176248738559570067699807091655965889824096159606296504635416542511377462352364361808686619301717339002316108278212586470507368231167593531976761263934872295786246518381786184505569061026439095355431148993765229077288873113298952029839540769572122590117442824313024382372809165798473085859492813424970411503200977122532904888027452688028741603150355519239251616645240827698101142336847710651096649554596939994045532412501270786067615346528532904740563395683128680300526946996679857015131448718765516163959157808531344740964447894510883229962538445633207086616270621635385711307086701588231830619226100148401442947616075244331272461294134867786596373499206115904918363900757035502081697012425232127485556009652439086242923089435998877917634160246649318471469358357918213882080407992789238599299474706748331595283725564988139150556664591172013378808420817144484841547793053854420122025565448097544466474899163205763214147549985941428382714358362741159282854658812000504504451065321359431127448719224218186562654776347056495777187410995522849948040895676360247974404692750295619188030966493121143250123909290860790858246086605936473651412438364081528440493440376284983306315861276337533051865678478462649396655719778485640467093084954190730005253738952154807613116770605101758621139192076411609018384473598082255408341558175006804048856190245242239177783957566132785821630114945299386859207898257314249558033115318413951593094835643064252797792361677101964587792321241426638166501363725828037582996853211293753030224431957844089946952423423855827916563034322049943518539309668379287308482973884755798371678067726412775324700942762027136787935034323950248528747863705683871941637889899670443082178575562163795516522691321961622343875256962324737830456648338910154189570870996955791355500040700503539837596169882947293507561696423335258996352582454835958985765416258797981990114256266402080066088510337138288671320305170098252458178525014887936258023914692666321986270698316951809776561446625672379376224872114278015514597989228735041210367305810310921124120339007023573130185581987537881631286031511938139339364612066946718584059509902691043778770701365009968781205221719939601613931076887750814511706099717157848908222180666517619188701455501170340076480958619752458294627967254687322302333948196783125204862638312863936076904244882847127159721549098004226402640525481512754914842723518131785216923226639480847764109769222050043811484136114131632844118192486258734155298698931790183212068138630418806488305406933438675876081471157913195642523382065763435438816202701587647527970815681531874537867851560397377826084342621190735802516563534556612587282773882713493448377463416755367716322618968603422846424039465946889766536241718926534371588373006051169835061464195397235956640422874458158118958754318049204035815783060977589503905999550667380014872480110043468967257590240453726952213297238941760682615050398132714775296715214250768270608722307538401257392719111367178039148927704593495971501893711477006986541166452385666833873438624629670713095655440966783846149768019610617175707775972042824361528039190676040988716603004029891953955357979413654413413925315727126946419033882861391586877740906763765432898776730721386819548728332700475003226875625354984537804523163114065192735657340281886671066685246216857289866563179268109189998733248148150125647922329079914103237109961213082037643518019887616925160544708419896628844143971001868417965058611752518846721601051087009262623897621524094016876625589375170056827129254508983635253264246085690513267976975255708694668131351412016357781360596919976897985260664000855149193295877154670744001991279446553683763689613040232777840527841899489754956424924239418177614482981113994613490807141950844048922285173976899728599166313059638548145156319781926163177604743565037339349961002663310838007783033840072735785346925433204646480757564183727742867138989102645206936648475754674995683846404413404486785951174208095225789941850097912049080548265272305394694169947272758243462043015503544923732801329265872230396748023505602172737258029630094271453541857622842719634479218567139112294063686363071304971870598716024363089679965203586081513161728492707287819216370244790200400158385303224044953196015389574750755724104535538781093296870726300091651110445518253164408684341936063713159273367930345644190920851779882417126522604052957038907726546482492597957893875076305970647487323801188014298295240904434379041680701829385394050331551201552148320273059061076338396193826432673654795273769773354417994936169154804987555570365986801264194816644557619166384994935283783442603719595286252222605902666254656693747358714432615878541604963454661487871097570983504826876601224219252609638949899430994698546388734381472984724529265628183408235492366944181752960316081324872319880897455839767370445275659829317679712408574581658383521192381688863747850890281500154433826663688445414397234897449709558838041979824658082774405087458338413949782353175664593672277684656000499139135066739488303701682001484658358851579988012013367315106202591290029478686901015210555144143629490384062201535345190010139611538330193493793776739438687911404516741190930571393070183276390729800178909094663744815956141655674494354572893951041325302405928319724100425926565846200632097732612387810170941569864034079633511598255352991267556478009579908987880685498339223451989936709738045918804703641384308680326915693783943824540513758682602785403728290964383574884513434556774757195451807148435950879309046406320940739051068117330158059731925389596454334114621838170979647688555720641056636477324719308366335262742442303208161129775862005456710606064262755702367361847972293125897655048324411764623690628681326320554604170402835819606612279711368895891426874293817211641182588588223674632447238393441882714943339042715402113550970983131389208224989882645730139669034679292814390863772068832856591304276468972615376845532978579607158123830915344050462940787913267068315676433053161243930857525385869460792311920922013801462773733787746098646886686933910481694152414685595577588375574069882855578009135598497159167993902707501980808043345251451592992829770863642854067539219369485221184193794202222951126792679822473755774977083647071547173743792176660029192221434054349408993709937096847054111394009575335506473617920408331927174595696464464243925309852835316686530548809522936076225995214886915133345826935858584408488711312208716642290147101253597313129146962517145768627331117731961325841600761100444581898374379602432239949588380948002816965488780024486540882219590311263358905947199185941299545944211096749452888203829162073314228783560479548960494569586922029830694208035629245823960349614001546728678723417358324430022973394783119330332103023624011829587981899750591966796734370778072114704647382438352109222466125010463329650386008823110430965020580798072114005799085459630900704494845389060250308038475641538948786948525361310838455903535227610144445415520838719597852302914057554696361128507101559139811926401749356365467829199938579132531290361844846700893070318961281550860144480238812180880079356532275976878461323128776026237863932506935720904517772493051402450083622085658881823173167813260942954348749049871335709191165456058021583974170889258808797192659941911018287388199189787325107204724205727830740288871064419423373001916939015194669200743409465263536411915088356354260435507025342910368544849117545680993955441956980145740241894258479129463085669399170941499417860766934118658172693441350617060637301092913998458241852985954577366777921314678482269766270962015048602447559618037028579303544682049406576954414494592906317504513418946746878494433014841652119609366014398376635475965608431315212281427981869728946083003399377930182654874515309834575475645517837217784919089683610753157996621972163912121400143293905921231465774959253995928419887791386208674720036116124761915628403021292902216059727918242437918070629107497239017321634831178740338654192288516556205090076239122470053750273391405671296110054212986934886176384509777840099945868718956131933768240392006320522235111809303670684679315155681080678711704201063893459543631449173690288520388625234725616072615907791039821010799912453559849497861372451089207950463956522888564867027399862251613300147256437538986576521341251668126510609978456063996696710892487815211366377019500131053202558188548496146188816834939719385369084541877067496135607966826136935877251854446176758118939303408138429807841864037417872925868435487773486150609414977400617293968916963320584105306880041848539300539757070145548067414481541171208617357719735600293185161500404875929208165774526079683045361374522638167542415586919434689316996841300609230490268965284985884291291189067270877948738339442968221875471055294847066914808143036092759920418285907205788506568643967086615294790312362677350703283645695262676092616987152519091802872059885710843442573729777038992524840894785220120424772749493620481901039185846345067372464753696258153962732758146945286908901874333930914742888348337164067615118441939494746305670028299876308126142658153259802717629504418709584191175292291960995697345330900565748387092466654387562033922310516163461097179314817497362485324748945360825866018621801692482740489829803229466566896146579613989819868495657696579851708637808758956650201814365345441004396688417486115336454627648767902039034365155810967638363379413772600652890143048641800658061089991406285323972690765868856916722997900665125923111967685579918107008784889043227825370950623511268788743363713841269766953726779116382549472388883487835486065080632951478274778727329155302007589423549538362050525957483300232834194776140971420845364448920418461837624619242933573917369109838508247909479609764092808589143360619394258989306263102686763783813969991075310830517260984635024750710579676971349857288869382987075045817013691344226452549339523475280085395751314810582217627213844248122815340261453041688951950098471345193110502788741113908095027871574759692107424263748597149577885970711748000000245074988199460421218735557660421171702669028238523373843834840410402844826093947943045362569818182936790726073956137389278818976593520801155029857413957856906727428103437092403139912124762727282555548643586394055279987545178400593487840427309186787875794722291471224607757239150803724410735586952381539450161445035543275291132648984580380768883684969988491601410327228609410929821551307416604316519224568881610923111056695705083507865568544883332573448213074334138394406258381551805232545146798666780633365810240065813185720714726052514083006537655083724677488224990090527666291282389453304495092426549898508349724537984755632524414023542113548559078482442021723792750238469922733831967417542656321938270802144662934788250462517528986847902542411167188461492864075579507259327921614428245161648965870446585917953139686068019891651969751483041327763696115958893750992390945607720055467618414892059717674073932438030140409224271181724593492462569570644514357011417083316585322107652430982974478290352690826453891274062775302112750606866789896203743141441498068901735325056350315515821136912228331407676203237044725707389538913457302690316097662817241058181917758244885961074330311982179562768511328605866378020936114474643044064205482684113982928388151410694802385860220803545664633908461238983946427452451032842052208691512770353820120530890808273376515554695200804002196211214052440928086003238063887834876614776919215999737718463840351989864922123823026821127546179183629057510190176865465383242255161148753237083047126103105112604099384015737941028424456431998269877201851247665777749441449188637286575442869150946713460002213302685077803503094404936132355764147115913056741727724534536470108432832773298965088531111349699387055735279041635822780350991406171045941312986048374538790401899500672954270524749493527401383126867756748794787298110349715112142090855801528924833085756752209056160333373322396185055357681723154161394942441636303395076563676670444738669369941560338019205572909650633005237705969785505947516059566195039919981600495009395383688675222308726423939870673407063506479195159210758824377190356654214931222624361432751237034016991208736050418521968447322398564452968520265200660048284013613992018686135089434453775735268931505046194450564651701150604511586955014129370954801716125340986036800100235817665762362385269467068548456626260832758468670968210232322604161011498304316092444864748892185270561159040207903731929363559702907484128423178635702048753540924839771117410752102849787102607973586293219044252892440526155137703170721979963873110119011340589878519365887419706682259658357358598486141358685631305443402570822969978409613364447462725483692726965900511763067601038000735211448946990293409099569858367367829674507607727579936788261240654472136286387084593607113024008163513767773664763261398979611366655630391015515078029600270401737101123797557840607758618625028355870229569838108741555105721134986821568341151312715654114399460041981789177280861704853996831906041167940796922904685593223680172250651947545793925141577542458858176399555375515274806531243205231820039571327666297970580516346961066411231987996168698995083368196996425220153156998139787250919918214518828390256695045995756594384176148916486943837820075283018503253987418041406462024471329298982263070237186891273993166219449377474490648308128805567635412590828470435127326872972383134646649159332855000691762894003145263675472048740097260166260761414605392505177022356480166438861691455635533588057241871294620651390809858548989286046932950596168198386697187728990721618382881798743453792363708516732344281918955821267248855950076950827081807320664183174613864977806787009252612026280133337543603344497619892064089344227494777264416160348186185634904691663897784029948223294015734064764124155624047500663757832839267192148731782883733785497875305998353371596438805325995883052095018735110178979993695195120352497927185660058278560078649247435756290433014189611991948457945603469053354836567117557266683680884061004170661070187238630953726972531804063512084425311950469161736853612111917666746098288562474838385189554464440881707732866942303792284396807266341340489077133316752602033165182621829152215336279524129490553590036178876010508072047001753769374257694365200907532874265627956434171317698676698437834805196771068135473305898337844510130456411308535850798627412872860408543305354361063505334099535710601912425656906570750077460380352677537893356743551868177016777066583789048221943952733348945053023309813652290853052558246615757313264083353326847415948396966781713625755924676275903584146418994194793550406529037975916244871647670837194856335967684935326975336045318974336660433723493385411949277636350516425980286645953913479171187086058319770449402369505606514814629396356919056312458818752000805249431915316576476265372715814891026649350164051976315377138714549214863386754456468468072694120931519878436627134588345423172619183747721889530601902937622220654527210593720883465839745909000420713181521402888979815244241645504986555134505177420698838040748421938182671585734808453830432115553669526242775285215182248390230813158455421019311224971903041541046552304792575857940253220088717891081443758238382835571213951773729521967022738833316479053586948768404143230332954874118621659903346978018109103396223974387457616408283708860325129613310174346442836384169078834272650683582174632571887859358836424892374616257865876258866723018607886659948359313949287723097595898726216205556180233330943139918446037189071488551947000615011251225710070238457543009577749569786195129458012139817393720989817071073844563902203815988841904533231076362413378757929075057020806958408360212051965502439449447923844038729462924377023692037652056743377206445263460473703236026223470854247954217283262896175355340745028925350028175178548531770090119805106744260258849253771796382406223367657067217549654261236090934526086580024376325507280906580583299790332522294146828439261923275394555556836893548676542703384519854733750798605007857412477084708139517230742156170368672258266795262424676832700778243840738605319192553061922322732703848705300247310114249361391137164145110876440238569950575091102081018934611439278448575725612363685923425739261624579853642423124768183273300351282015990136408621945291603354904306089366189272518997164322681012703865831946932132448411447930637909218412074641701296157023897396959999255388980230413769305063794015897463097222854747697945654519678966326146064837633159352270683917855731046580910763487426646103594206323706647185725881880204700605788654870606145120540998055377823284071406729063238104018290640708140928782951588707965298551868223946751804557286647104687228980378323737943367486639835418523856034525796079646329011038938204532952731655289548274588027763216164602162697169917380321925963105633518386961647457548528296149388587002559382299212418557480122192593457973175021588482161959945976120597476832743556045612814587004517683935922491844512404479797894213622311211521885680986335224109798273051994025641699955552513419111836627674646719628036858642428614865134563526481944042030463801525071032829821003493855121358110335577343134217840899080986417151263532087411234522214704235900363433985902679627672019900654379977498239023163777583146496118540297114870615595453094515860915857530227163309638263448874519520236963568052606468041143818105940571030569917755694794756278903772374946421157050292910167042574236783009040263161920867117326899523967941354610699913712017437663724930562442930105963448320566933451523009128525343514000440956814159644880046474736254452830014270424769670609808017279068211631916647225584018425353821763516749189077995580734015420518393336157251404056287872802851059180449810963928509136638748976725534086612134010603897556286500056141101883282484551884930575990512061244762423353877675325350061224236637945764123062052300761202739926739840812943036102603715279151311464337171496714381182175156748038436990402182195907162371823804734808380801575270693099028264052926792288023547057495781954925011997798306933474695539638342426546856286849983346597797015496457212135046213213293129822223864292953942667754847727331230407693417710088810876404831998557362963857881002508818193756877736849127544843037381499692617121900793061806339242157793438461896511492440014678514998343836952822267423387856837102172353572862566599915407560770982547225856112889707030146608857903361928734341099484748407010391075845823205144557223859186738513291230880653641595748085554490213034057017187058004894007936802159485763717229912339416804367897449261699779685074183302925523926769023969926756300207324687396534161162275057269572170797494662177172848083849636142600109542140162296269020512707535884031904028159774549086787393749407788675896634471762801829714121338057325920186832841963510604305313861754039528901681155940324590588656493673191906417117645080285306137630224576648917256982262953107719024060857617193089080049761523658110948046860982551041456377076924657267237219147165041693075872554145552397194150417619365396964464008282786441717473898931796824863184531517248329599384582295220522605886642409551828206837332072658004747751446108895080141462655761215120014670205701562184974018052829474603416508420841775109532146891820989209092575983300307312552106049445934865592871286457454759722759648590713772847346705768986218510347670749022919658825792242907910919969172612262764460009076712641098492428490318240069073226679409293900813537899969341657305761636948823790186415126540478613466318731160294911229663744869887142479216236710284955230295909429010939315947377842025223661434021207780433180841072184511849591470592653627688065533292093851596603581247208690308532918891383053132105231884715159471345908987573102404403234230499396397833932811541625607096375627649191286805865038038448395879071978189416269814371131076478851935285830291805238406325965972833966006370736932963071917763154990493165075896542813980454796264681958326023231100720693638292787694561848874483228135673094225929844696625298119110001774170786796644251581386839989469179689794858696586821422967079398460495881603947747863578297805117309812157706016414201101488513474538370534117654438059062822519016774827860072720438814758560024098515064725559096891578354354007515298447483906950585327040313464492557251098613693145398105095218098726283250047159981376384912438717883190825015566884853564477751685376828500660383146188578158853930303494989082415208701073304945552693649463431297623562094478295833653076379211183710704855299552515701010003240211656671180060292458710031758364813666378944347848325347956267875283394042233926885857224937439256612703861723938092664781992089764725989094295354224939274095311328183626768442267906571550717844802720529832071140373277949100835780422102512607219321709191357486129485455473463358427845368186786110536869325835164044438269887177840482318119440181401809292277868795055880569879914965930714252646153911981703758890111021455975381280808061435380615090382519711555741800283176923316706873773867084286834853229064045409701672337839558559321662676682166895601687555745483893606957145593347053389989192078906419201562204261757942043928431758955625741557193837573010432895820805559273046462803493465032627161581637182429192116958997444579438905881152103645291002170423464820562868815336652374807463304216143378451480060475563490525081768398485740258099007973924674520585914325769468787236700712072416983510691221846492281548726418375563020379297238806147342668392554263599483777502831799700616201304601731197754271006991900639903317356601196704150107849547860846571593150311958818548560586960913675960367035173349267004809186223020732519883721820879856812511102185275868669981656556173326436669482910020319673630916452051795388315356371456647639171160632350260501585429666211687772638435684293466541846652216754826088129084593532315517002182805035270797594336401501896300199763970419081640217566366471899549413735575028599425876312684875803732577035675283778652056048510860575213339956784882995249701033317961256509502546762457193249917583774070634786555871305054912009808536300636111654324917364916521839929334789900646765522443014915267863280626765929529519159536256270553274717526102551439763963945596749646697640573736999000616050486275836515306010087821316012957558744404325485567895429460085740876742033881563453781145575691176511254218573499616166693019100422614679174781143159316599802607317599417927292908865254276218135491417730035888255687275662142684882712956261875593399156954311473550742173273864709949569527650277602170596178292780995352628729707389828161627942416305098669519123350516588196315953947263113508628593976067192587151379109984996392435541542719879218354369971189262374654396291808180088887257613764293919174740110577971416878927550444373937130419783914260161849207896226814388824948091802328571698156485261656243146304554685126282671513447669493590827222809977322913725207692138874039152246807872476390232447629788598562515374218453216697892240676430685615783597115187882435047687321063191770175250510516550777435104723977251914294065629844945828259922352615458318219158797519519244343187483240679436763374317727384619671194357013946271138760066358970186267948366829524051729772286130117818754918936730938935685935649356086745823086047988218689485462587596181618022356006998049662185790121518525577083154705587983298714503513268966354248386215946460179602093080560049933490184443989116601882946449528529858932983981023624620381919897929217590237883680289438301879582916473846814963452676213520525061490141374776443396643619079433778337987473157909686691836055543539121953226993939599649452162080474527336355492286471604427038478197805342360701283733381569479506096087082067817232621857344253292803379830689341027206787149053819612283919794019219162616109751176323152072136107965569630987035362645389267776802893248818979987547020065529177280216657248200628471049648048161168841257959639334699966296350743780633383039206226359245836069802289704216067316055585963741013296777637509382681570367508357842130283911020660145123882237664016957310132366884727990094425085579548196817755619911863350905779385088056025606983046410702265796854556854579787657471685942520123198581511999038817791519180229265845770153622398202347311791622588458916395916469054673795017415795474945681842730307158090203736780405662025201498117153245139982368753960974715537120966062296189689085469764158029943023926844912144069144577787426676240160804177077188317135403812820906160555886853697457357689885977707885468715705823702100221294728553513031818429572233014176764485742336370545694096536490065202887601264692072318651202209981613261008054640991997484069316921487225424251765673794327618364832043738515792281894350446732839598040564226866326130704119057330935927629063909174353992434248905581675270329811277442827993943199379917250254973565807519040043841811284197580245126403731795727410871324962580140801105626149778680924659427560265622010282914208093987812621511580878192386205005535797931782133851335945386659693283499173474246467172542680361457431410801688475047329582349427907009954108349792717894381797851545210624264932256189130232974247921317710163055431839639447989746998442868318071110961583746793810705985098825144769216111075207784053758875437673341396257612659447426449693958559390172759869548903280184627076056805397688414113254800507040826888724808512029802049857518093500050159702507771907981112418616052350760907557170236735739444198461362507827859205945283926214289791203024578239554039798505209758153574316129187270473633063231631026274421906713503969232384597751011096243897521312729411851011079100133243289960588531748321435286308242532145760839571225021511374186126754206425826890930703831098378641155833458361086623808575403599015228685669120346082775234880586371829425809453363109483415009579668546564878916728694980856551131569594853939365436919429055818406812473254756466701652783627789334190463812970378895113517442347670600300995250431874575817958263353632313291964550525684348393575941121983174984020203676223839409751316872330218289200312838560051031691997751385050215177801791520319935114453244866915362130560232970449422730895374213737393817831129073496384473568677462368160010725158638479696584358257749470434332241701566000036998747990583315219309070217962493620055957317115274809675638945057244004970654897360070181394213491678595689934712731222020232744441648813198512008008212468738067447462811037315188475015350752438597564782546840910630659290922998640926081860008902705371786140403602704817598824967197823236231092438796192149569685744161187260686781725428390381979059138846521708342294842696443187733580852585045500777905990272642623371056129793719187315656889095320086053917569686669272993868433809771785541450889694778351036533717537978112840311080398055591088248038141635768751352921606972418729067642052320848946858928281551430090825781778355662717020815872945916931373139714844087171067043604382576990842599249080410936596140704411117665572039273678535555774525870741992587259329766581260836351711111284112022764502537262845929276347349037385228934037976186499199510991576877499334272299012570470918029433585610443970818161157529873365984454361579475516868463990722436164388807531883075951462159942069652269995894939246622532294016686054781827437256888032141226619803243619093672707240972472450211568115485672693275624776078403216641905780422942112512838816365471691442289663887825152039110188901717893820351111636856548483823837764223690948496571695583277769850236568460443967187006708288670612154878353826069227687101955542913426955172510238831715262651780492086838971999725064865575299285076852042904362836018606857319403216636684143933883554097147857866236148254047402539442529242394071969190032245716976592489518371544706925692890729421494790820230138886565517127981517542887808511905434874575650040395055266371008048289824409506623379196032738128112099638799429432856099660101430780933386518285773180274620799367549391326479923099288346452810367647483568922799912147282775117496781260764836315942223583504139119564690605192728179119582220914398060087999265433652507778108568450208479501286883818854597884934245374618051552255195223416461096276446780215806954124416580145487880679848406856288692988735431606945824356386430342597816633466213461345116178296336030649679786012693128243535638678742751360264626709008490431797973649986320999053598636612402838608577061796021690939885195752399475364888097851468594084202618858097066393815639098185139136371359988630131162403496800137389050952663664844012008259248458914975241387436872788755943301841861862852861692221602084483040711114555641666490899296798258752855013787472315224824736834045389285601157975575032190773465875309229955731384569918989189366975553015460917948190746174679737795733116504868650037994019142427736456483407893089025443547178782409231983335570227103004630463804192071882319854268433736337113188155869988974975500053027204674777867122959951607187810843952308242283091458504926150159667526517239973961019040686945726600619314426551642209421771971829462183906501937346236465348582031440869085858761928299223762599590322814419137262780670528692411004927401349713946145937706099646590241616417911336691599645356602870749810077685662053236849256049007030982032849064806230872636349916113398262354183307762392388103478933570585526199944487026976149897613968044317919717945788718153773820267224105388754522147480191101044235400847447509551711507087400757365568570025793798151983690544048918241637846125294347285493787677594496452742242650026713131561701540160166952407657875261732261286267357616882572558526884120018425535142030807353446777971092222787439739631786609962114240450749169922004813807534591905617822691780987625698873129585700669239849758756886758085301669201120043644167378728589453450147605282620782874879968607965868269194777627207527668943289566981782575553513228389611143580673835229217513086840003163271017266202693056087549588901556764519994319646433607717115615413831407669527497968582117320075034016971188450996010077940230273803854786176517842697284962226076210332865014422969058976840793503050733657300474529673518193620858139612941730091026910403934099250768661891417165835377740827079857948904912331216081506695005046056080072017789227476951905009326815218231560833694870950713017696629241794204971232062977932516706571193121988266262659792715234370185463575665381301637011839699537364125688977639195077319533433540165899130860725251633396320777017253284131144929825465452888252458468900154987311471098654639048477910004341004225996304929047905238639926456152139710064362970466057330256960751420779408134852059849159462022767069619679569005871873622187991295628388765165393405467598361261116204736945338622916827834781346688321473016611747635979637762864302271235527881902548466330974883946552680420534724333999981965757641727122405268868455884014628601939519755225008158158297541623469620944357389412595158460731831172650484406738113005248384466153499006377866008078950862413642714787770396976909552420325350129727473620074326699793013942463659349349652882333054866277105952379910851825579216049744262835318204322298903774122641807148553540504152066325822965388928123400873530693881255627645856220788418781987331405175740194741289470141490777875449286064044246545022739485256910646269446860873962440385961478099550944169254795817782288985216507411677553821538646441318889971971724865265976974610972717628152378660826812547393595923515317562247569261503482813576977916513289174771745611613256416561988198529796906211480545811967972112117462000158250356565091063043484286409438259339568932737000659900769351087092286099996050083810008911419623145768353083856626882065216644050882404942579859832250581448143438468137498925008573784651078833713321115400859484578955294554403109657331215971198359221930015809149752708333320426569527894030960130916458366639350968906806207413359770096239986525857794910314354887944044207652291528735908515368206011939629544791304555062013308646437546064294381264418011094800583016526433733813702013538794739676061594162392893188929286312182378053930074823215986644011669289432374623247131767408138912685468377928157719755438969138997556782067729083593478397461297800712878305415041484299745960802333782468348087250414419572770671712349924479029410673575959515974718835713461926908417897938314435748994209126695222654309235539057803188429434265932405697286655049318694281583493800505188176747618709535892818317347334567859047686170062419092402736863333761377957839822593022143063426212384577612022171538703359630558132601585456917950479247869295210770502486828339396723527513461488069983548267421084093251666867711149451182803223577247894929173802209995119206686798045344586463554999323399006563415557934778731365999260945529907611124565086770928982807761970478867182026085229962337817384784540826160744939316597817934341076327113929575281549790656933671756960651721713309616739532372398160717747497464240053052880829646104320185588909926650398753229235902678127657318894810401470582284415602662940505266711742895810337384053404596612328862380059157459789306091375048357895182973030190595707792480595993029084531272705945376866139311169722258481761714845059242905410160521584770789296648251697570400130757694071849425099473765945166496856343679841999225845770056390153157210272934436232855283219554940633119378536251131072049837289112573252736735952344070805547157137713098450768108683106491722480891592870835465801173961496573210997432247601869057845189053878646778362968228344623870499647303492633220018389778576457221658516172452239309947089019934782174122557900543663865989093066352780771393258268880160040622096394007882617311093718235324103854350786408293418926185638694741688281288706363401512119636865983181321410166751392033091166210149173543981994684075342182207244883395313213116145423326567326146247360229735616569957148194920163833238543176554592563227848612002639584972637778503510881133754652133956219461512374067456468401280895755057528120707254311693837693854731141935147436100908030166515415588129141162739785878409192712765287499970726206203690056764610558081614800420513450653590530555194270745069652803024312478959270379097714085330116264009619512109385263656055415896007890070627130694193268108538343987116102060766723753526742593764008736213403723714904209440905010253585525474202503662172478884029695524683077783501168199455798412102666599275195168040371764748700315186640435962704993533371042742225669968001862299726650435320155997684169552435878292191177670585908481160906271305640153430784020664303351297076172845269287362714992351680158933496079393334127815633280540852412258143776757052811698234264275252780623410757589193437381005837788017595805815038278595460104493875406367462528258048531642766175077463576125851498348714569300123597215207464386498056310084231866487716682692284241659902321421465796633322202588474465363444655866151108536304833427404482245705187031253541584217177663906921402265054533326962079612415469427844486868740232296385830252829809376763722322262127176728300204320419332139291590348377374541771418201035236048729071718938254208533221317237926511753704964542993899996131912849815653386092139689009862908122972720526310911492616043134671455606901817312627419110413916015335582169154111450356184683798338350782625536357847859193188586450717285436048263420839212729151121322012363115647632142621556492418793406810459512269127290758639965272506092749720693505627238355155979377412949311766414088108051890143469624928689715217120112926046804092306344354055328375498046051529902843164178523811156150443371565939824352739007642275192696331795909360917624344399425589370128522857836790477528566484754372030244139696710164654751991894704174587932594666682829467384742505844590365343226271121352039941815449209840462498831924531435050993892400334445291601629022443719964427899079537011293494883699356209197869323497232572440549829597208234388970476072630014964243668157387816771367094506517565807710164771647220511612330746998601772097954826355984366877058090990933799670953572020395240589994009268056832274831275005367356365589197814325096981993533439510942286641507135903448143689873300594365781799691430376598987373550215758396263846202878886159344162102145185642717837668685298333339487233010550205373572303910091458734276979217415661001953739430054831853667462597000363387198390580226154357469460772906374481982251298619326027239907972648080372248935360431652997269109022746961044417475143918386826417239087453018563911094096554075791380981437809631872783449207650686810740323796816316536222907521405401614788431980944425143865745244261462533916219494990286124841065167960882398306739334813665387951840302145867229132634033344679161544993134864756765017704988437723365170318714330593413601901284691856058446188445749308982873520147619647922261113301881196675867354904108184047677076388887240027679683599681323097453149357405827377373622873953307501487058745837522896041556521104540174190464563894644553045374902948845274394147513782827948893082545924164245342540258274396515570039509318614801909329421867741659041989386830056286246456101054553879302613909418094024520418055728477804269223541166442449945404625256731015509448847442059441316543689829136522795076146175747464974364499843360238053504531322208809836796896322711685838011290775963117945166290318701459535900648459938407340014745149161142165277724858317064604546669978442679185414006751226903639233479678827152616172715958036806905847889058880476144780728329247003284268630607859057170209043172877467172188502421847626755849843468824857069820088732070628236560335485176429863405853065523809477140221704245732011130614080594961328546497924809267657143584283389862741796741280954056062644377228816826193138553948785751335843056916501993063644916081122157458232590573563297433781897734767060027271563984217557254110165145384268785810665935439989083907215966595329407609166871896798469904910170922561448243950948603224277503942447069096605301806121960808893323467990983487326133774074691013797533537669637120142503787660534417392744489953088900245098703323721596342704517196934266309138815923298698542437560049650240835117081867312594244370692064610774071292611576029030165657921909343040106772284773962764927613786281544876118253999653153548228880717207529260950970876529626981386349626109847830094922127730480195214542163779656128657216246024083073481836218471172659465548628294560865308896653315606742725601597525944079799634795506522889252442460211729918141045292870724679679189467507950946409291122437758514785027273418641038087707439160011551468018430701895479118798912283124077305198783565306082370455052360258188979940795414125321094402177902871926259840563652458791870470587188795660107445260687266781922992840197676257222763667590604533925803728660923923571600283172322344952351970374308138662179758041842880497710890499156388459889021595092862670503376490681245046294471319575265277489652444278658086384827959376040024303548286008047098913330065780798810449062539622914680531784668235681490827665957432590703012404992267152061385805473707647436829844898732242992779467757513336694122459491877738952002963186544303210511294638757092756474973808444008472321339499737796387805462846332624463170999824848911486790968111979784559122884465943673406796716963328560695897062488456030159729100087327996889580995989141818506544684311701933104893804710500785169132644951554881457388330964929226398334939553159296532119367970816960559081725029574189425541149123663268937025716908291798187033728234413633809394934893069239850816380497890354952207483182626464663357091344691364093864707136545850269714252957332069966825807044225766402239386239659914431922150283499282215554838185412149855148079244264849706272144561105838448570586128790082722324984681827015529230458688803769514065349780937648810749122522480928731088594295625297374810369492703436033181731689750524168049513425490538402017991710740822150495890363917438786820120195074759150323396066498174915942923505723780273501170233329313235158453051670910719297361204312282698040940794877749575610575956901706574207040074980522096820420971408690310353489526409547572931434678386525766736504718586234803149936162052665168042845370319790680328247393670860404538842023598534221010575669599422972283354908047359423288230283504662972941018946590179942212425510795648556379047280414056072966865871237838887845515601899409387981108329531387174402559787719153741211013998092916831981700423878668865721239346355034162801177781996338866743557426050441834342603930762000834125523866572563263059779618236167098555395110827345626978373969062554934352636072240663452590232364045344678265893517844200090402677046337511762164439312492343112730313182803224738794408864683571805624466032063562451684559705277831473907455832015926546349560963881750440629881806210061659825265576488608221279383531480458667693047145863251679697037533612338889418491377826626475862458085511047757438288998054874885962691484399142563821877464800862715815608804441098729919725097187193408278175278484656352256392780458931463972599083240971346962958408795059204200114299932936746920026288727583097932048533383064974326131792208837238184416968464445197074856308781671558680900762253826049616655840676117679132688366827966222788660112410923039779167535748882242865034875877166902142740605698659583785193259984900809778526643831236474678436096083119314853294691896019110289963380037855764662207681393454561320782384774734862448081228275176307328839387757137480032540370551638529365035738522057805196334980235420820962448576791268699902480823683007747119067286268196755777708850150054514768024347871545856994497409619419563828238090284702393365918676949693193634547098510134639350221070110812822068488538854482564681146117164624532199361550427466415989504882386447521337277931339202269005146976231075752219794588985896819572009827311928029690334523934590577844946369009658769352250791652071367226581453626507863798031720866034965826747356110944603178361000670607487405358813620299186939201796563969342898657717511588369092496725022097163063508751776140232478472065763223659385915078511505198109357579669970739004921769315012728635262488302154554053298549854426494253891637966779010950451194011144652165882818186452349658125536133053076282977726145723183345664340007251610764651050639414222217058037742455167957200663135539542644183054844951162602126322355734107714178758460091606558339734747239745877882680367590343286477758242053482660660615921875579734190323472315804822108824463621339290991012041069575655542870707467957099879950225522027259436692631724081708211475132701773228647272130782758644967926799109718327331982308520955608925081452167509422085071355884423854983300605967968335915901822301640630018025843163297244221506746733634247742295287214115223787006869924586921576275989966183167108341804795764752313114474426279525230099500947364948440411127838360638374417587891926247926392513161410520392846263851678804460096462973765475237855120936829283669026386430801687782977021386643300947711214232801531872892533561054017902022934095259746325450427861976868495248083923592869355744938795926591271950708607125033204728090773308744714460521282834329908623424341855200133005008662814734724435107953009067859504468122534344726480867240728554463496517222809129409327051978832368178660721981121154438858064174797142016972744359056359065007249338773284426397740174589839404301479583390367063229491215365865433353378317572213500536945689228373446850651684756285943757639781963115429538187370892651859004249310949060426879801823109035929337983896622331115185886646088239991898456794750353941780270877896667714012561406658564331212808768865128767270867330326182608256566772935310548426133479683628045818751721275143030517148866639244022835514731212618876064042815428706898950679688086636029640610342579847535850790861336070316744605426565242278675164042148616256886932297824534889698203614315533442708871924270938008631185579639173020006837072764882208071307686622875316190195656063230581312518621889127668017942999325580228184167222455903907512880408423588573427887213742272061448364872279470913086655139700469699837604950040805039088229488433756588572979956566500324761717194506084798050775022290620824792912129190546756485172053285992897060389676620033928981798254304267556889904292770144258602238470892776751701628194153541547017062890897007134250487834396833295368759249682136496981771469834714009304249009270567441746399266404358476846685189985079914760116243037430174468769864931494928627661027077199572913303896469923865409382522991458274119340324615808194901801924372210700406623244818203301149597359708789258485693417270656636608904840943462243858080798210569992928079104572623540538780073960586894587730299361336823823515766790292101839957341165287086826268264163881725328434750525909181897340903761993941106721014002869508933906754586786388189397486866788049191809139492519102306631160875194743815214477345611848111735642667754165196072076549999234045703691633292725646517827252605278535289094873346555214664992611142497400737640760007807249292384920334463909225609896597458155979921657890004902552011601042424275157901597245575693545776256697043888245337887185846327522972899273517976837610331333798336822550326487779302980426128702329819838465527174106444102919609664811548028319493849615358465344710515312488813551153983919244761168004117152068821632961073606831528698027572216782296611152761026189019807636673631128743982014088303397069235896560203467617201331963541605973427189615219751131923842229874757173009063842312002984655015909686427933363137842868448406569607260285648768617775022106041017755034824096270793840157632368325205090570216085208656670293281187031901170943266144866509543461621263724753705360287525398428553108026989358793305278110881790013544293993497988984114625348514198090671173119442076940376303056754456583575957371764636826405311396312722307625728882626357101719315238081538589167694182805041710835044604254681505635198125461597307473512568178224858495728990454608906704270548448957562970646669306580763013225332625090114103350691310404136718082938484662885138672174776224902798608692638885606632433034877372988481582071364913808715799198325968501092074859118894517261705804788420236703198503280878358139235766800539902844346707409287331357909458853855431274837589583487085308441383727828745451955948630190709566448221846338087089609086085636580345704694073771517605786608839707590824378210036230680586025651597786846231059823158242896842894129250788700165600674384504700296534420461062048645995676270029902974580100734541963270593794455404167032291263574807248719490536820617413095360474907521314531702535995572504956138009842218194108645289403198543972629492967710912022302422744814345715790070573061777034847214931505381430921832409390659043134526478331964928854333660863133430556598024730702035197601418271702238630009580546090565740864654932671242787013064582731342969418752656838165379780352494508679374940608933679754360538651859523969909911965613511199672026990042232251966955213579878695012625420958418584305931807610154743498109604796061148381610973333788533887341237934479252010908110659946701316064936935398305211547382821200810729079903636090665751892102282067223868097902151443625394673889618733405215532671537532736082269462374989147781582860231594804279840132157442140122059971638415828003919500755851823612436831410259877786271318655984572884474074785660853758968103203003161903102500553405754926275057852221086979045265655181597721482839101887268569535837634586320663794172670812793468700197164084163751259615775909564597294946226047714985804312146620201465937047220032539051867460736777262057657855355195596900620265090310128718328370010311806663336349873898548374357091132337280242833480594517334922565366254851413476251440535847528533463114334102697467472193902326288345818234466437276742071511007629959989677459309094693366579343795023269731971639031149988521205409547907467986292543410406648114820835479923388809059266747858574487588748518359675718658392892158147415480700456697440597239482069347442128633938344456927088983806072507718758098909669154238098764512135058163739181768694891477150360119154964471882534823170665222761245700930452694999432158819448181461249062404138700189886590068664970767749293711950337522339193300181277128227129521050966706892682400995636383700299028596809051453368000347446190061796178347667071386508577147684369534636603949428291026428629892006655560698589878138783766895884221375212413793991383288960747041694976001672444790108188861671909224169698248321902305405343498765214936425378681324583239536538418313580513966813303900591809327849785852809878420001471505518352092293945694369572989397048923564876907758662292816052304547450757150246174195480782354190977557281687081656445272650024606181525367320170129274791440652975306879967508737546854533685869758838807331821014530231894931609581868139210153260883644262529985313516881488006791430535436059564814334868635291863801759480138839991129313414468717812707152568601236904858894617293610859027915240376960517408195323560153822102631112717958875148086152122977549388894212701389913182177384941092014857762179233794762029868029997747310293074880318079594798048552700331370747005522967866247070906101782965212195962032279159412755300622244741696372164079477525981713882045253889045840346014350999737900437411409461972310316660267078418349977449599071468134110898238558583862363896520065606869709971745618026384905292179425908177367436009255862118709621646971089110546281461686959044340239878360484966112850245282995138734352392678357586352658107706551200630595913597566805699859534876001979766439552445857154785485993093072401129662613938046386060154543982327550995174911451306202678048302069394701547677624456619419924448854465306023143823491653093314967396880124203290622101035756073549722859101211988297927432396481957789092590009233988714812875528154915243696214239477085722446421399921749530263748807807556620244018234702223383261417522320137420894399632535101434663245044513851088041548179773094081247723977977545954856730654086239831464968701743071724167928025925929497382172764669992336991604243137710543603145123571992933907773949396489752978636997863556978848424316582460442048655363454399838828678173761250522029684720737913301655209600074668144723266291623606062752291171797387799796351495479801874201427272258753875802913095670831393211214973590114024553373344872330957879697645373317798659321514943419508087971199931694683656300413798466293196265285307542660365746511019685055965922601562893185764915361511101585747338432277704614408855584279786840427569518093493778532406076214836999626786914826611920256926603760072808218137585431460597243676544635982577683400395785363464457936878846275433272990618820024459880056653074527477600827373251534021497343622865273620490015619346260332800408735966526962750156881942228432485505165846789336619714703391811265827965892403762172499240909196735657764032163737931102543254933352115153529230868518393238727655777373899667175268284989115872828593852189014815544709305857410585166308760198371020288116864906470258837893525491259501703700636403053669449764949638124251771360162214948661114842180678271215396340669361168180340651781194657555140480366979066687580930100577841030888473030295681180484315466385236560345032026054164617608653185534358222987961381844380416441248460853150489966849224463639649479369253828156019163360108356108441879821693066493105676881691898677565343319243130593899194291829529334575644645982405742325009513434623935284996449045620691180938847412625466363211460116867557077304445815267138424578809166135382132542842348879306093191288397354822132114699367161607345940670520294612887619150639299323380077304778688882399407376163022790265886204849783967324002643508030634082037296512962181061080728839438723351609798056250601882361876366904621762724624402308756215230026745552246599191575229814839151723358571371748637898973213985677621352514005589769244182435013995000531005566208320901737793265190617132238772678201406742242368934757088742537066384596679773352174449570718977093488848045870800181379240083583998555917115291806274355473772529105050436458378162000795415958699908911317867009423968676843062187196367198612287289854845543019192706883480129127187270007271145924222491851762571649647534187609693940535567743372708546867440602125632954199016269402521744606559084276824516408478286454334441376214375192194679799961867157429832047028551256391349332286229254723705144399843078078991115123792431838837199667815706503218281293609519426571827662884443076561409034423214528966972666395517759802000756879548823582541245265952502380429485737961967993154577478634765586606108585814394667688214319901875150895274687822618464248648603823076550040790192881754098236244105210174061870197718948071537403849870580152751295730628462543511913117638481612162814345128531334932008962915383791804168888827511572510878861159916134224254721786241207742422542401721672843722279601901787315674238806153798278232098816703028722410711296063239839035105237756984425384040222241115596692428872690829479176980377347267637346295781208088530712463827835279194647689180320065703191581008314273276486818043187909296245495843205910161555976909307072303465462284549507316034342170359020447595745024621491999122211096173547804542715898382907027410088065832051788340396677032805737846584544088453725780895028286566024802551241332684277298957222793902569160269559348991380517571580723872140056978735285481986668748107623561567832959509595087299977296728599738718145141926600372433372314312957174237401591109220568479447167628528149701592450405672821392868515084995100710781610070337718173780420648204641553332888369576418578190631416137216311420697448521521857743845365684239322693043425321046241253000701230716364498034589183977281933004170789785421195053827785116533683118155476546288960312994634821584808432812632227127821530590324305691037775313617472565399394097948877549843417033966178594158466310310891582232495487572525823289143603934955176535091881075988155969023971653977528233610297131282798950680582600980589193410305674292376283613180420794263013527706257054955291197010791130455666945711986426533424679726597209318071768700176924559843189203023594946147475952714393694231217340376710715172821610171897788121368620317682805026501198705231824136623884404102102058928589370037564218067897901815175526523417063522076177818904011140012643477921280083122320216725961879717266128135346084190417129255464871452623488963399168048706745677529405684765144335154979507734895741429996291851464828836521952371812890881285391912195539711874931138873365432404465884622342368581866584817050896440072725257222755233732248056519905302443598524815074266266725676115917518179723007495167390037793645604693200761605143181718512911939965482776795102774218706706080771614970617838619569000461852346078292270300502969689608952525373874481818219811808822057898727375876151099063851824997772898955742948449935971731915827663303932908404204766523062557208562976543283041462160096009953475342264687373810239359930966498985523628918683532480703660850150464549285094301336099415768501339585864486685158381620421867024928947960877169622669719043451128810254633053836751408886661567077593275789883589647697947476086247761389174201972392514124712251563805013108680321875687208745920794961744600032994280683869043793953667901245201650620076996263601731827592692627568090942695875940624926088779667376870346395917583061123214629826449257980027022411784927182758883721504277871823222775341278966697634748980541852012791340746195357117447940883936232513274215944230751618032370198958063346202253654874196969028434320617485586061841526783395216397159592860864619767062972754760030056316804730796214594581562594429394763779949462273700164235919082587469664698581648788944946567485799163200810740189720355110732310667105415519941891242204225786185406900179564126723310669661353859866771875896593281473245017746718585212556871439553124905352336603727262823857587401492252936879487119161717092668269031203301015710620602747521100144165280075342812669837654544749076245660604354443348748599851581750491857458887342623673422346125739956546455081352098219271949531058832479453794795264268162369322592583322171728174943163718291372515648246424573251394084232230036741069115973316637284664166399343230654557312638627066818423682404380369177844110539282206756219410414976519699218763262240073774731297610628805941731043214684450926540716418477094075057872507785436484977026160359368058043821994355174528569720491522015514586093881309501881131804158641805449866421736486486137274854986650220610901945234130855898323202382258049224206707894553835808113356072005302511223080209956334458114923499924083502665683762703963061636655714191113352060943905939795417559181711154315954558082942064044654498066993195959844072151772952976611544343223165512983134064192317906499965662856579205847139909954509790650079162882231555359359085888174948856753299978784495211585983884714487450888165360000427726679000750652325828889471808154347175461794694677852081601088662978264513605211766038535892536220187703959104701103599405344228068660162476269304105738046775745855364020847328754698738677781443320493622967151454077700289829576078503816035985474086596112435119046885422679026844124364568984085396636867578533940051295315307538385081118953929168364049789027689484495764449201335787888767914933444402055256944258982470502242635996207614403047821392331041355328363849500295544930892602680942425488114852201690436594816873766332139429527488529177814823509686128176444047555433054164001191715020951476471092846045147189952843494303623405584918719341932198439853666495777013549972166809326704357770897191759433405891100557065424840428197753128191110131137097625036935291386050825549215602914594371118703019275857301893488368285541214299299491144651952966830535557314715966568221548041174282622228420265946247476408739536645269698600493611720699677388490014595759912972648221667407084419964066604319959678936277395230538859442927852854233330953883468269124615104753924121712927833240989701548336566015305490041174785822953034387735661008387848394787362585681994849032012487600452608645734231169017465254560034253387918267737643644644020170862738321053112354689389207675225994032092968025328616266432923438399907023382565091561324445431483272207725382877745307954932907309816774739939941332937224663487765245156579055269733354778152224076032143597224812540681631000831617605573792723783150779431797940655058707902694882687207800416487221883710526558106906181375474706923126755546510689255662327837212808266934619859556493802768493628346264327823547165145900043615362051284015065720269837870901186933063897275021114205950582960854007083969988941257653031825050787395648407918631035726138509597517291054652896805969582794815681605595605222700494973213789845726196567185385500819370694882155137897530969525404039216856469053695233691748798220717360015571136648814632231026653287900299300192086724416002780146247151156880350282510073964046826510084274688326399935148570454133730701693616561601555084963224920525280649790249467558026693579581613494186310189461653420483419263720947249985021062087006067010909633234597487854170737122178062816345528831769576156994668947070821182185702877320375141540727326998369829808252841203588023688593490194630321770323995509160450383446408873290707217551325484198815317630573151448965967288733692027883392572930921458928974089676729684723587548147923113502971811891868443243501636820930906695178148331133825493767892409515934240746744356825537262228429138597067372640227448239127486286798126946815603558734930014032583217961725909352895691385675841900837351819995681946734159740223902507564426587892258417242213184183394637396014935899117271998790348439943137636261388121038545524741472801367850635462877290798208007136987639123518329474482638397232330485701260303143550095108453407376556468241467573654135757717966129589248211139113191968369929748934905415589201025739662859459404031829445128100670130099535126610509424840467998851553796151766173961792186983330161698526291604904869659635706617875156570959530174085380216729264588979868104633361842726452317136316124597101899662489402016195117322487497321567732278060194509838859004980933052551180764521715385267453579468049396458471187197213368111875275718846749953403282002109713347696956878701274860102462768170360189081868311919162036836559111586748426816993877921377062788680650235663659680953598219054971881294068917689166080303918814966667912400461870643688198539499041329982572600014378664611268565483602133017358550125896601751079259852295395152470453727131987748406448228313929269708488040789905000065114576945692364956218027013292454121218255412090897662740143440982377827638825774594777184442074508649201138383128120883556028580740079973900116947775072202898393906681465254902515191062988158084406433741096552905383533035884487008071088155414198611481788095400799412185581755761920346258485723368536388980010434440953657731337351741258310874038387586957437790102632068359280550513809635213666573789186392085117803477978114823495086693726424774150171791577805784567307090184097055619026833437277898784638745428744054763602049904228732756279144481530369629797130592883809115571256654928226802517027127416526188669064932332336079191741299093017823914715890967469593149969351025332313083572961982574722671534636126768444604670131730301283302342931885035676113303354181377552008637567275566970875906551664418534809523754612619406942100715131749063050279719131141011290008509644356944902996337760333380099777940595431641432039383220439817454626759731362374201603730615912951128065642331970995380841828155778442623585880911928491916190411120996090886611007952673770786852306625734961036131763976029761901372334572532485664177851654742979502077312386875674206238863163302482681641103820829690955898976513603119935209758969311632489143531118835624748166147425775918420970391455347970986019789157689610888077508467592269343539652579742080385751820559398369189226832221751661655423990473528995687560677619903191232949491188271770160307281660130212022900937821602741277244868529350315825654378634845220913629663766706352141507972267487400583406747017148562238311158349094977880747152818641848785892159872108686057869210742560186026188160277768282680487061676833542510374573602415025665691607825968514570929123212878358014475512482808736173217042389234107220127967402022180964602953906151980703031534594468570500496929213916013591606657166257971997322683843759987251727932873013993878945979253553869204586754998413112249342322635316247188630563996177453172120333121732672428111350901940771215391899677136920352923722685426102588641096883498053940185090726333821003551874042120359432243982777349656551375026101219658718346540332640049575233584894671257182098280530363046968934818630873718876619430645630488560910006411661430985721936141994175537774365763247693305502587107970471450591614641301317823757861584838789339850576150217076975843732558358408178607301660069683653818594855260695428847237836903893381120641038915213933044130943176156338101437207042023325045762482749837561190864193481968166659630901545979902843861110344633149124045609391548434073679802268689406704515621865224419878319551895159388047939634262204153679456810914155045055571298934113985472294049003627415964838405454616060533858257799562342815534079452388183559703880528524827601571199743331579514193600867580352411264365934581991991824927088540345110495934251680191603382418858014348990868075321873259843396598182257904756790324296897506444002630356633729570665148928050546441576398639299151120742635588570597449527757419384891506808820937677039277651318871590239522522699461676301164376920816397632997411251198308060484876593666221730563829780313829203529137471198853410032170187528011512673592145740626279666056984452933530751014610309814241501938775426538504869086762388833594638199652138358250312081257511275235455511615177331815012256648354910565656802253406218560561187484818213560948116166854925256010459900852687244604946796762075240268433861019648785444163570707600191289998299937627465572050898494742777998785722754988483625509475646567564460496066096530593717979210738868933628445087070024441776808006810323684953851030114382002332265563588815761961274552761187908179726085556494558512692813466263777735471499737461622369883163920475772637525029813687966093073115898723955352690877574802714848187146429279701163164937465237981910497594782926564790564118004387622570601241232264615489782399496512447955336620713708836707287234552656000916044282525095997697473585801446055210433336846013059073584008713254083327165263588665625200958780867446386935809603511875532931676343552739754884774489493493742225258660039892983716565911529343986098014617957953467917878004326568006502323327835371495380004321187913125676030023627357442565693179605753670087033617693437251904986305646425853502646204343334091051622067671617204246863783945206043117092519923579583014263611682937885608109236103753459129326509159658882378158873367297706416643249301664124614758512665472625108697725336415712686216344096907594112475296887887595600789370325004922830416738498151869980383687969163003263622930280811252302614712756964983934181636058505610053478899594726205502373237291766197160040719713882484069488750430588329263805201711887808025296161205500715317406897319095394926780671651017437545695732022699429692773717398813139836398051655872350873663455411539572174467175351756323420379516572622397801953982646206004392177144030059041734325055941782356972754897076291592735494647495918486787043474739501038617381986843631639114046081471762513986733130467709283857975483146607667554954438216646134560124537681578589964047155788810973543661951200986426166688250515792719248660204003888188062707413681544775041610940141060987728459476811585877865923247721783616962676653748570196970142813832181476091435357252905194296969123493634708378125083940113460545653640859980782140328822940451355325336145921873026745832425194199175436067159262487294619610297125442696726687394232347433419822269438114781787815832080163371446096809829810745026096653710951250425836505221724891441295588074914263427865640653538694830372451231074283930940272291312508884672373384913411274195257768548832173639715779063766101061819101907584931589701295086751222448733889042793071883938783980575210061580424743378137015296840229930711843996324809974829522871021473346609653467544775950722232881604282188700720452786604377149179371527620629431378746219748859494201536202558095267212461760276636618578419576960691551931424921242692858549407738668459231629853779968109186908586886013357452438092716915716220659227432908303500190211433213330294881010686976534857022832931966853477139172520584758851587807393481570451656124485835389115625610696023862479389975624632108047641108166594353845926272518109072996097758346693638586674117822567923328343272531109064120156369659011963027161816619168324497706321708971271104562028132237570847616611001400439472211895558178222879591351209746545971263432250135032932713769309930326521846696711217057389705344575453506576465252057889554273968416757903564508723769277061954522979965369930263225041438239420809632482042424286158985022291977878560278486839361691296357442806505002968263243846205089683737613457378519950761414041481643471560202923538789115998389622588688849992620090024289146704007136056135415785423559443464248853544985660470784687444524435176916191365490212421619438836705670866655399253078126291992090811151033601639458219762759516120564845663300875974597678383045515180677503187834234197696659267660474011605514922371059162159054881794306636513209125678843686671899443433326288322559893227807287262181852617071741502690628862260886191710851065357235493921508245379188504435141914659841922000759629034893784935519465956126556773216054489010944488007567970102890466295505928089180458682252275640151845370681816856447994278871782436007742249683174667083536591591770575688100530281194855149455774379406573025847410665741861410445790683278247951060438505956372306348377498732153365358138613344076473325032545828134011678917267877768342160692541283074299643957010627330530624321621005111784554243901391968774880311754286227202257011148995803636221116489032330031316336436721030567599276373752826843484072103331406177267536115824496040866099282357079286516864439859559234754901556502209146201322672488817228124539118470536615256574195504730926847274858560985565800195638733675462636084345005589620261728688196215152991328793327417070892757672981766926270531120193034899141102896579240129182815893793558891053933207265261348271220383496834366642346213430241086232747530156045582302579452070679825438218150762118585819173976039290000062983616449805687565271491720646310596953764486103920367334310475089325855581376735780853880230888811669950203503235524764771131962064070691986628713850027864860004466472348413141819343755981731962336163529105372908155277374583786433885739713556054473593477892749518286034845818986883155851403274618062086240024375447387920552572110174719381133730367103843250346752020213297461227326139666746064750864043450876935455950983987004775710114540482231495297447810222658722871772167159629976614636873114499518561700209200662501937224841627462288732850690473712196177609714590723069377094467478017872492534849853773378881405958908267926392828529741753585874071242519063205344015915658099026649396313143807612974436043347589760976110608181252723045174659388215974688067391812639486919092439044946782027442623701273241772142498342169975527883313217087547268645643666216499807529266662111010926290882647428650763782610459615003358069354803354136490906569794906005094135647695961734895280163796091546374251357925935430767632505051789162645147873562400072006588851823444037572270564922893585117810733914281919530630513185896682782300518546293480111322834443912038872880781584565128557150685836237237536727122311615378823320532119323794738158371972708776398212215685222170468556382770435669645102054898505616226790571900408253720587454380422847684262443575074876258509254885780874141972767125070029077248004270448398469206991182385619476480772921443784276777914949087874712219621442736367291538410210973219065520971965807187614535450518815345124756904477497645365384641722180355357714571459729816878167158891761227758743992103445001971884115361711490359074310766562047911680294805654793559132869993663356797760864485199574787346733490870394958725939850093408094604459703235676440117874043398272813322785142147844974978970407406225328418510680977530382425998200513243010167900089191289092295549010264191631079755176573650526431860752173479883206942556541861566088838886958919834572932406783548916321810883098341124002588473514762828014064882576120296129348892038605724400391031963146470402771070957401964659859986941441949084864888331308975502405232827871138885613300636815931865558737226039243124157522752682183128425288558606470363987727119514221573469271613706590472312192643896278902060837999746249254647443836826978828236760325011200685100344232869103444569642670529658335456178554638646899962415504475506756525777565687910094733294298948189315822798241982771302899279515992146550863590511307964431815112260891419296055017474653879605216164339500832873033347943848766834332081809614850199884649399334205008996242401909626105918916495445863570039564139864809869369166402713172845946824037814170000375287510805931307988589266005015559712318798477097655577061449991475621193337855668621402404216612955166805942687934515536057100627468493218037111235956944707263724072684537187647939080775584944293364962959188913481442685915029293572749910450172678448001254972152751475377321864713354881456304867929647381586036958460286367428749338786446925714743913861452449711317749651650783221412503842241813895319585590074047474659603114921482636246675902609634035225563527455580005306207061865049982804055248072963548567775075851862160634893127426936678995767406112948017355114503261196356623725588451431540013974103948284436980178612525855154523925393234783821716116746213559851927096145681783267079558693576686181408004410764433216813228254738011486012532695495653606185370553421316332191768331724833879974977948901574681705043755012448230527083666378361002783274387873124632324299418263992296564739330686019231258425068451969017816286792060206077189160780220152069361940817687854317406579821151634203691245970061865383061149640100412324415608751205347770624463203799432978487036815888047003055731100901761470681133416409653945772469769665205957548007848228092299760868236065542690993733560286478570975774706993430549874749032446079593255186966178023015582470796353556206328040018909854389366715728850269279226979933329270860962689788068103241129284697319335337548272581792704848337851138618209115594111634510368106266974189696078511792460657284756038757384900332351557449503342424851410937507334416124242669882705444991895494546294459367217844768938379485445693554156495448172584189764568969491197060242760712329110469464810355663669589170179372841043558911339182528136912381390724531659870297018971489543087871638542210143815953194007903453409417722196016144501753592460066736204441985627678663429291408502862937188031183616017987240618624763635239708849023203953304379077060715776358896897304771603742974589511216136656147221103593325373061051990445248347328949199797845243352728088359474738959778846160854784102628352222169405024303125278711527033263989357433319943410334258481299970431321002902352508825554204319959242398145451231801643470044952054764987291695173845188221046016934414811905377553342820070601155156392211294984050138288742767401524603523290906351800828043752304463439664768890029405239472284821929720943724355088311404886061102472627663391646191610474580150770977192300501275626641442935334964688959979644366006813773812685348753807775843053423081784553061470244419211440638095537971740201466522241554389546615883119530560010962191313651715720797511712055945407168528059032939202777233949832998169349174834383295179761457329975257663914039912585131043526207852577356343711343234506017723563206787499162306545475718642938508683757145677418637806013211702459107913651835255209109172502637057239544021747098169930009511170539398852375910461068370004045051386441418156188803818463094965324949509779330535356210767789259699220933396586891223490406477697492013978161396149056809638009357850981580994262530522205829281725719564099339891449574191381457648752032774421583189810007323405959973370084339390095555369742856296459935274153666911087984319326053290891664182448949695561588402682375911358428439050178400822456487150515577906217601517150709591913669233577524938870738517018524844496043733861613182495446906600813965870402726574085061840783614061771066676040735586522347531676104632132292973047096160504172997171274387689172433686446578327919747156704974028891320227899335818464242823138414558340670505105278133369565150856173915534593455098766441539631126316744791687346923258475278761173006962992618996082478815398985338442532147928345596379229464157720440542313142937385676240699095515799761940431905093561012817393905339047705920961057660072032733336351792584206750240168987194709567955421165556441060558678895226445476290588993167489126366282030816761719731971395521638340404125663648518230280936223611115338813014195384425644038072241933510026648123110975734784934048273409596751946656374304228103067196998620320120053561826384813115327347599185128216651794417590975031433010191692907479710237805869396711417910001018856324378001645442578772120682605332217432494091521580444226579001234165006856346551736340300223565450841818495069299625138949919965902087587871549796933091087091515246811679643984321613919411017421297441563720962701191285787203442722166645154048226390074826379284658402290302269310663597362604287033369936428200939981351636800438241306390826416273659171143639395315131208817864824939535681959265297844839044494791428139202852784231862915163998626510004520652381397504181544015257329644874373222313493675084549315404076128398905848357357373566549526221310661653905455290107681349489047037063631747468180311955252756214444086183610204662293861289651566435785033177596239419188875045808051658441133098006001042866109904981911750442070616230649820857832181397142870400760273244121617256067070148755242155298368037355774178216148919435262066278245653291290026185976227395338249378904594761589527811046466347112720237863156906025159054040570146152885361922850195648554085721156239461977478310390208970782323867817346431895648340752786331634318895952124829112932303519714927124156151369819109291566296005451081845916273992753054857923846231741198525909141437303899015062320411228063827697724130786424875626020653856845966299114450886305663131295846774937057418989218167928726176129528536761641831645105726618519027650616222601479641833582780138277685427397329138928159630493485923088683816634471778462007279839531507690385740098794469256645475551825367403063921609350579991955785681518705151242714515234654675920178393884144838004446105928450086619415731010094367851474080215171091074420477911454561916288028939143721118434225483109695402341635296124679076065620995167453805588579721672765919866904615955154803629649040767792052409555836626883546026627211608367185553889999446845912562578763278699155172486911857447347453005791214552888120352169168081946031694295546458210920593016366147932195669193990221421970512573726798250836870683003489557664881066294952794129423286262768713181684885789041291925392895342877462366807651969712445541026249553234244931292186030711176938100781820464042292302027139077459793758018667939103764600366571993536508113735380942837719673711708486038148991713965555544393213817779453950666423472907280955444298928169120382210824307494431342271922396662765604376183262313802235876020568736025231928701864743017143637863700804336781672175248680124493691260707577300542369442635969661051791299931683170380006541833295217970003957217693050142469374170427217037578016628460567346057463650648500403794464557082990376361546996382489024842212180362436559113084238284842958992846988225314003958844061061831936100329735887062836530808882244230564040336525912631724230555825520475886721347097846655412631418000426202854791112784074604197323537336614232264763233541198570119456036969972199541820377321876416913324407469779819871444007759614155033640589775715613254566013051249903506647900517532317071445418327577357838113059000745457593352442098430815169979918254149229713891113667175376718179270088944378693752606498433124809271822202170449076221959698383979541224780222413820595542739076664767520468567814809156083617899230063631389456029711115975426435517399552271940748995250752325488836874663313393697176638206855542387767791847280454031919701091797983811815122640745441838089389710045668100326999114674728154421762505525676675740412301078261260171812923256231269401841428288874743942991600925831865553763331296034163003486735634944988191132067687905232527846555445165228531297598668026285787607776478893609522815910771413906641419805466280682473182623191483902033852172225045422875866069797180606711559179884264096838656385598836642736175665625331878989521861519800478930792793225715468339517895740297394328057114127102883325785395507029285828207298905946686431358143993934134950588965163003141063338721630016237406465047608562594566784353471890629725375737456797743808437552107218846016317872859223196701831850824540266883299226940121630466537958472284737049245916065168340037626784134624738456220857880744830138622099803680626605217999930243298197807520697103925671760863247410490413386454274409217068775578408372119104723524073974001834275695693477405275178139188425996720649928597546837521017240382760618248284105586210490721708285301357711405391087603036367129079508842487954786465166896230361471951770616099741862539552293507821824636162849496199900891295780678602881283526383891240292652549716620239453437976669543854741586509690414664538282413225882491270604103473228651269761878686801004380390011645000707919860702145440889689060430988486284690637840931451592864955369036743674119083446193342096640765196259622829275470385585030236306025327748546128905673537573591977230643280599856261343823371996062207415319815106908560567927056663028989847942331715853545888142429935502588248994905264269471322080853607421978067843522671514689757088033606006358492416636282727106019075596038684282637509373852808824385394536228870586690846224195774564613554701172462106256222487274311261646634318970108362345105179660167676273999732001868179174925470688982384418345614562442411913188094549425631264864184979761569614423270855443803135338766456074065793568291691687663454911353758805703975691746920708769244129668892540988078218666771511358959880522709232512053995860980251474955266765098152566083607678503749192661094830144126367540171390814242110320997694050164501557358446531232556709700464806130293669440653848801074691749082597983601266688275787839441515785579545345605318600283940857319047847277107244963654960707395430257325739422477201357974569815611202742962923056241737122650628753062362223161983160260468749089489515593038336282720203271597528550373075525617396618577080468631309018854064896222420459439748253666920522898941906636302535271063055377914886119246988510672688797294266833569822683424135821382111465540908050457928918680891567580973831564922735311627459118300924159443644877406389779904207157544224010631406809104541974622310687027407170281107772312565882136751647396516087727031714515370911133325360146590876457559825048030930255130189630440251624260856768715822713433966007870619261650367466327974799278697856459206556937873616610905840817630149380752289577126013076119250199135921499099986758150872170028399124478755829362342515260902350058216676580282277584537369660536004471640689558026849721196133142563570851182670345883649657670181985188708547059517479488586379767360502058886793598495827703393415157486391469912575699782842137424943297964141303237082653916299132957329107605574817703275475821088701611436765993550510915913712450003817234552758636549690916196200423540661680327220567078050129510766315109660627256646805664448003699084614067567283356452123228907199439193377502349195878233035583782682673406175611960210489423148625271622114162140619693616164152687241735083015485976111381353176046058021628553207762870427983318494511147303052545396623397128049303170351089964389412674059344392715217246875874395735245973736301764173951146798828215972200699370724494236863753992393891967444645850597859092903285047074499430528773487383107939621254036347581151568379721695167943303333802724043806945919790452649298491539161714493621186878084933380107189781316987982045469327417030831641186915531303042163441076886316897749929625499642802356879497358598684212287252498101084737256460488071995211002961488771172337798894130366341934908672522993162940327258053781747668386920837644978822351209105142290481392043328879852680693101869530696991036674376907433228345154944054683411594468913084515339201652937280192940639657997342978871398253648093499110919102161765473153583084820117840488422147215344475631885921373301781863403345454237194709460349940377909591056907061496060077731064237437691404807978531728651525798672183287569456936219591338936769055157301788576568562415375082299990753583760577243435118417020377214325575050719573409838077800665455490638331585948057327261078441062581570631408710270090305375401587471976641896698446975820873343372599775481670535463027232161484176246418436491027032096336057713921380281050471997439353403658910949066596535594459890444593122370996150750058166141001011775061447129043782747359688693098798750668827253994522167410143214987968801834795995190799649305704999900788875298082129591494254580138236332859324428182398911436069331618250729229804395656475155665822765244726180994176376875683577585627079534529953642434282264492414199553589813678383323858797348312412669951615702048522313860743719599213043463975362961972958031000946709887590469974517506562948770722893966887012287122509197353997891208003696744986164370204867355949101819434026846081815248478064150122097650522633546226633340174080334698082055423440925887243060434259081012768060000992793291233036988289657745731627996497351434502580998271711745719340373863881931914940076659655124481190553334074185650287759778268106908025462409966574330201214276620318799370082917652296701556896262569450494477773907177371384265775160075633459111522858096704973322519452356471253759722434190461279714043770818335507775008849311873809835515931417935059963357234105677307292140563226316587980398568551680072723921846987319939958137527498388548576339578215240869431129699758048170606621965558926638312422102336818882363459383121410394227804971540686705131838519584520603968977791360215203798071239108361570546331763632175118686464892125119059241857580419372102192198963355800921559090594706032900278143292526015120218932863731392778596438573443535523607382410021980552817155034402965693816850864521149696672859893849951374966955404032605274661769270497133981203112163576891639920218698282338204354268091594400767109971596528100419742708224203558418875889843309646458937921860874954085763787864640725073018429853874889455382642042574093835954211352061667455926524201539925663633556892890579192576787137824734385502801217980722352086691398709983081103272476041961401702509051437882066824179685931414837259190845239943814800204597215144142250413674067746897941530484649382134298824874954208757628827706087684832222097806506504976710828322782331106577504990946623350811826863652092903178442300015027454654152766594669643420265973134291576108401822117268789178344154215648562148816281344220612649780064421995101789955933071678483208230350541126842569548642491343936908812381510493992856711215517715514415039995978883660523775727578391849427742181435003141218040654359487995914879860753246452064588389039316537910894140541301693493583814626005101343737383513698096433154556566657122796592567991812681019816100199150658158226421700864726594960274284431160610806971584981380405747207813525278928590524299051902156872000459888329954614412546904136179801232311758377031431240085109278549623269444556884297785858667849601463927733797687455843674581979100827437602532011633064246747006580187177130602013992733292408486908708841593179050103922380640445454849523497218927186624251666669439163250599285595876725469824936492223387409748665850179537973158277291123021918961665953121713701743846263524108403116300859654337794762013007109887330560450554557573442403038686408048231721220505192241826645333076626127317279664008600725341183306865051280911238986056647008790829687783279082401400403816621765323205913231215066104023385151835179655862450429001285744746723642082614193433552187427320545033527102666224667814900521843434245708225795655465005684438838084262119206684185807254312717522462917966966951559393297947079235660149692067756997116422972250457393242845030667002765744261679993678119673970100987458713524040284257003237870071523498660556440029675656884477983699618635342405834928167170067876319310574572065904701793964142129590419815257095016079086664460244919895427657787188432208726529946618938973456987788999646886641366327768931059420013244687164630612949553638445327577802041122524645239619575858044344856121141703808307095752715907997065306159779993157039499336025377162503886473395568406954267094814313276298286930380048824093727271750506360913690210298023452030060534074906603236734716388938277729596100500674201226341569350735996581636274749648513288384586288651573568595716297631594759961370645604277443159341319240207697603091799110068867624466600168295145595505417786475997271818513191989208369902371751507293252777197426352064067600509601570055813740675240657394340161744523010720543683064690174229029550087106132516101595056672511845142157716645665519656764309891705758941707220594084909053186216259959801891651711383545397961951975396058755538535898033837969499283659033446425037836865173282574164623918688502457129588507335115443638071851583957319582136598242194804102354224989962432979585543719087337431006321048238061193792532051910082421030420502739270893870494743681369756171106764253775936901969462723573274131182862395014548389317920633490860272002850801719986631652453102282078827769987779538604044863172730451703920453173996132488165051270227180910679055553763408163796211322257023146829850322767587771589483504560483604735861417647773146558599075376712666622433754000442882489693926047920422082462558692979126916887344093728352511500668902819278036006275814102434763012320187694848008245263011719737498783851942328389462757029323694043139168565287029039471351155989794819697025506587532989632733368787988269702618863076012442569184632523673800498578874319476667367562410353137800286188221178565711563339521748022771740724576611091883449109292422868387452850755892018113671478498058402526857307758568480064958594432928650785073671724111868185302465463948066466402632898809279593275622854113945147813751510857082128983913558795236484273393806037534528640584659182558863543823117415920519242652726033927975119147738393502818117683411762850857020002691918727760248084906492483711357046116992380330326277811528905646656940419210041842450559282903091341957795761732420525236019761723520934855729580308052156877393733726639440243958645664624927349155744982365497559437825008440264471982147066422774948688960007175178283680725408612154081201723438128930201503835411673128309094380040503367617632413464499040846888094103833025511925293717137947011716011222793952842924331305791757566041387499725372583089050467260851555747139467102014386475116997690850883933585079760072215022646416307139192637220182692314486090153833451550098371742580850646090895952497387814421566479628376822735225177721381739849185315469864687093747189242229501055064380558483015434842195990739762563036837554373459556357653407712513026617657261691067278402387056037999866943892539596886124600244320063868902841655964200819325504287381826413296989713581549582735963900373027310735275419529450326965852018338334704476142273103419740121309515792515141255959925311359374794290081932592584850242162790184342922471903414918432052624639789857911080889577223264811537411733210679968526291212305655967245109029507309969883221981911920438485810015622627647906417868917298309822671990087624652047291688992121143609380553796772198187214267260660750505937086489476596611261443621571707034172327562423663472643136228601707525368370554478043209893301719136041876365632484644079875136263793339662595562479523427980863091977545119026926941257802633410388413863403361406321060840604724955658788478634801466302055276735133753557030948564720597598935414394738285389808734175591816454826445008704508528167430463870031348803248736411639063854642226523109576517743957396306979169013490934125585636195890270328502048498911790063460591000498248559525049678675397673172156792243685328872739811852373997101810199808721718742707405331598505888846063373756212436495831697752730692853712450675961337577910005415818543173437002417385258085516626009108911065052271806116870661618194764952452071063174383422131850772356346577001052000705948725471325045550540398590977622018348373090547102413272071497961537577874067434586175395284308463092735392882954753273508188936109108967206629373485888139521440892623599190765932966997029005671320126352046589209006330641564227875211434348656754956427925575076826654914507673390386454546900724197822790974099396749761146668147444070172861060485742312561407837091823373266183455282219399218986030502807535299325660494492146439540242196240480342611332386723634516914986959173726792055193662092802825148224001369674978720372089527233865563120762758871851303314275770806278774957519186416261985104786822797669837098150609815757996362075709074714321441631545205257515307258386341305764303332444857802270455750372237556897829357666206238512797303792745611595657407038924682697335092162216915232810532277371138762800488789780027704482014734034232332205162074594034733750504060888087466005650485653174288490116722732612781530258680047267608648405840368424901108171017386974415403468537315744842211692175879326037879787121867817993329806004159204320620313627711181216861117309062883520277003904558656489793915492816608299942241574066299270880545722545329495119913481995284269806227292916603703607960885932721247093423128369747642550114465890904403580737132222013560553492605593928077370290104405072650085039399966069449326646173689003818342375676203293856309031603976944078095845362351221363924328952579352745500118174336702557352933997419120310737548497355208980310241218117722517340083277378890389541037005351262581541375911357380110089429892357101428803346479814142879039854197912713009445369311328572745217796118086837573657156902140132115501078554043874921589501043039610258355200452617417876216655341631182578935619900357430148408975159246696498920699991246010297498898165443574202239369516074920764324667019073927933132788668976207248230027716439086078920247879924854915601139715513898099474013654460181953393689181042526626726906207429977391708539463473763862165365217564609570230754529585498843320708085123012721957750577588830089413347854794819211471953322925529589687809751502419564437239125049677235117016952063790644482040857812465191834015847217048626323387460894125632104263777818047130658989322041790709080743378475277556539707872229839957314575693906059190177973898490983724019272151731966429206179175044064760936428238426941526986836545034247190124422902036018446489891410245475962504415040335684356892470417330477507374786217759607293614295604966931497647747744646299639110284890636370202740087868164953859249952592746487016793540190353359161327328276845057458490800258485940739487086679719626240325855965661412804344575035161235294602073262949037517881937275221715040398620187466475160667967392959136404651264460998225512964887398751615733009672798512456781390678655092217484911861430631190122997996615774333348068849827237444375021711154770296179721137080704165512707835529811754556025933605675975318802209016404044091069816488028284616003996207747765178913494526055749805917877620645367242361044342607665210525673023730503677266344880800506437612952698131895120299670970076555019319027945466409204435541894273721016139956223237942662164981739021892419779577523443582644271453246640460350920622184203678016088730923334541704737182004137535685885754838230451320638780681549242350156218990758336729983920887357179635465896058359409035654266710859169750310697228124217072565277871583803280124149822198891985534809170999828145631588774597030875804242189016407216756377068008199235909649990269938548266485817739995554971718724901313011318136305120718359094985711159596632304624444630390620070166569318977421516678833452465707489841176763898810258258284124502314871816579208121593336829523523257932655339392994984302819022775035442605557035275206174233653773355898160656201124964539938679051118124835471023559698881824093853285233240017238924272465943016975024732855488772820210106585772216421248311729721175367820582080287906617636243611604176736384227315939541042508947707681756551652828681925840326913054690181479340788680192929937756296323827581489590586544325633683220160480449660103149211422127357359727598960555014034567295087952911288549910716745182545031496495932426929661518467613178274689699597827691178170141769600969973697922303237530907899233196811397955951494762219775755817826307075711307978315204436846597108974981723721214479022609426831478684591214328567273040192294854371941586728306521241697808426497480987945313670664175521319194962228973243883276297598416380079720207105867275234727113420607552315536575537830390272405699871353790392189372125422296818638948799165434323335592795462894895598636779478346204001857186230269387190356972489078298606856150739994712524297207089426921538273445451896582081933523656542997224706996813265313716396949439564120262231393454018158199456727674533557139554780677440698872886670993259353920208783515015904628434817812767006578694192219339192816303265850493431754956199650005182265424325688814150493026274303899361869361175222525098838904359996359572360305444730711412922421640142157852652793775819093391441096299926594819430526718544814078740219741412599795289733316796020321394765003688948056106630671936423625020303987386047878121070486348502397041267110465320210424348760077856199772556565753238039241767484852625179484423014820654366889146166334961924022400082662492774331544813052552863051944577690676459230648167461289720091244596628188744153764051649259036998968776408409813295645254049585919365628576468026281876039292366540593234146477563258333225937669738620030170505000328095125901391441662356889863394673846823252150943590906911934381115472318397401093792640397190894249320704783375372191451961845400893018623232160470845114888221950723556863520166769568622775239339384716073255651602542475996597659652551117782587056531208474936209181525072160016465638290045720267623604373099898494587302227924946459716065563306901665799010514813662108134013924919638532955037907076105678505866469780117321191042363474662519166557057673646856789365209897264516649359166779669897465654713080835496648925625760827788883291684559542458259644345140671983135334531298487646355697602754275959855567122194966743155323959824801873899507392913879710029811142490983336507895967476231632056289925675738288632736151017695691017597448791999526000783802242885583818828211018115480616626254542992722549414686880436485072069369553216706031565393710011570147909591184884041676866771883670929128567049810345885203513296437647006396983659807565699415432752668846771645181728646251130254685648726440217498085562295571822778651128586725301885874824350938767984169861538456166252939340864255083435254018151064521792107824184232864613278373981520431083520203813508047324668716505102545841611804919221687370255502763579815392351002478869157673079971856707765290924330400067322760505636257427573801526555965597025959405537339352881793186633336546828869799594505760908921077385108119518912835231076750332127916261357114993504891313314100420683423757162065810637530309254243274499759086843715401901684338792591720399752804806717607370141084137169467453101185736684540117778939542622134504284488444476895803776237155353392926967298743660553405183904505451412422443567026088198025283513492299837724924176592711377689880286096332261192521214217434332324557444105971911809833305631495166127948140298365356434651336122542477826106118560785228624780105531991469004623796099224771650576043481925590996217771897575120907454448153539834914044810478761938048695721449859767386553829081605164425820758069332826150334945561665615187845583734088794580585534354193819301580831346697084986450421728201854567793434180057937017054309453386792760483764311587784957502587114502197392736631019594141990990272814479430109117557927699405111831069522368694348422583331300483475771863087633395839859692857540629922152435169213307545829499889795307014076696103629632456256730100164923758184041923561386632598427930129327330415669890022771635150555165467227338685995967542742545891354946111049917324162948363214542063203069320953061521971701622147203396091755019228645144349532974029677983328357169688381612817051063997586906478697172347625405280945255382986642581003753252667672509958020051393259256940089344840087431070997444570518884154845413193273977416839103401500606183081253928619947671689232930606623458300596082784564630779417701977903120753801059886982290601549090474489789809252142834723357502895680906338242775624502337899362400842046571348417471347489360200099035010385607170794171434566267227660925008459434602968007439063462128358541548783053268656308175533274713503171560526660080846967827484039945904180362967448044276521438938528368835678349882903304204441239316941211008354070864188062189369246140757161330987703472763847900976608404915785633720117738618024868849059278881529852370375586826402482127402082238711987124998786164725519037882870988130088887483451409002942918439441463215500360108233131373343879903492417654584610104868290024827918198048762577960356909726019443144632242176394744791327794567396020768699702607721553467562933697368306837525466515122418804654209228704209292669692524585266546613251149604245945759592558098143237557028667708318477116132491021595710586052175195642655547731870775296738325009511830585915054741976166130595225713430337440809591310526635273762193646776678880029457595683024680709740480195613865892646576617079726117712764154274288193872675027186743352671269526581150893733659306053392455298101455656168835214435932013631765377243552699255203798251575295550933667810107051391151267497097866414218253403217464117458567257445861001562246215869868925226470451581520153105989656038418306347177621030835132304632075365911196912722697851077677972038099735037029741311741746549106633210732498751597113610507142972705823440291161485931400201375864986880863283719599296487699034368538091975151474378257952076258501883011018577574811590521353326546250531896772677429108396053166977110085487372878069309747652843435080620771700469710813607887111826388034210850172279008271104747007100362407871435681595238630842962010930353259487855286205140829386392142524312152938306072967953775845334864903378701981679993074698900983190708198633648002051874408711959862557015099471072238505468849998919494596498695096653901328697742695668227376184743292471382332334933313188641965306922586881008577536016253676626175515932341064284878484097362985794998517458526102715453934445710087515144598159741791304287669114446761862630678429371943221831032938857799642053720854124135022060905883527320586260270244141488536667509854397272709257905037493605397927366643438737208141408343442638280483351996251560254382224790099875387487112763876427298688285497240578179818099216814512884362486988315002343528155416082728422227487583714766686046004650633628860077962597701129401845001924065118068194784822934143915295722014408179979919052347820367631710421693237501287839250690986114122811404960611163234018064146780970825870265198807073782580307901900113310590631165176504387687184015518439893260531245188417788886551554906840390934180774103103084723259067138306876200614710864287792404343619078431780674227593516988863630183923884201823085822820780480626086264831705026036410206646427470273665565397800400611672718218731103290077567808319525405242772101099878618302764851707138364276023033512046201593732655315048118605979133652876629160823891273630038937184748112207570980554462384403300377898271648256602293488184651633262163778132968473122697107932460766459444878871390698356476247383987920066014118606282968514868479940508977707972245660092378638460119380617629291973561565187612134415320484849798263834391958711343767679288266738091161452528238044465401137519521902555981596756982469411762402503032956140006843526921492437985789739721675994078434711945861754450971574649066050435295604330382902038256532791279850938403698939528559811315825537128707809161795408476122218317533375942927921194419095025558761941699097501757389239416397210224654171414473507463015971734273189698176589744613254508527051831885913153796280758329997053786866531604180204048694608428626034929399833276442143488221915351585959247352708954690787845993309930130289078187029947470005486840311611109666148079739715046868292422631687162802608785298553053756395607541594318456067053230258656400677346928984722837286305465682206330123403050708582824505465790303308653217601335064082765391268004661229501609777651973212481254811463980276903331691171503277089103331006941880671058764541123394507994910935863272513458269067550244006900317666411310109915768155090232587760982038549203243704229432772519537211897679986354193281601519717118536053477844089311101064411570997571291933763509484803781582609199735080019873389163526082235687644285726381912465408721759169528661232641100431283947914478818097261030668937411148162233890508927274264407866619497464474274809878400293991107992338778100974447678654169536606840214411124252168957969871273953946345158527114308166727416364377309623655958570737039190341985063979310475259527766896554929611828256053823331861686668994571405916839406083156736975733089394174961985465983601138886022587983378315932545258149155394601642078908838895138636435407574219826148578127783878827485000045733976512014648272764621702621591831356721298778847045856358115288992279992645267577160779238621072733004949603378447477654624595760248638624252168197851165795779592455370630781292074833632636590959929612471146439321840334900265456998792952184533974301562064716354455486946645142142705238796436266876247156159763759113988299777771600727012029275902233675908125051751293331050535199084444518664007842266301726329777139726786365994265155774940538527101142901226836697525767198311565695723946960153204397225890644839684342427217368849956481280979030918799105580355614719165761171895139311955739059332890305287259696125199606718431505403179227402064833465834399710532143714058555855465520824270009094697235562277590451560871951290001297733170412718775401811027425646760482080573408314915329816657068318959901138328900556492410788446622679533139876683309040033680122145020176002679761924410469693882461882080321208297435091627136371449427518248129981536637551713640111141818285150029117691368441947177308270441129250680042636497582463159910693254773250620113772783276800762837061995261363547041734702359218876523620550536752485747842507374468650766330036359124091219629730073100722494847966653589513683596988675854030084050915662375334814522115268397480301675380045375322126055354265034802887121006119235995035739715274513327275048825624732156554986753079603831059280018070171097281417493004592221846471104520080261075769596208244502115429503742014795255056650192354803640957492983637283520271674328316159419176678105521426300553887015590227226925822538393947749421334160786787349807606517079170822818281218110474213872824952091340481816955310841373472317338378376230267954956677719631381480137087774655366090792533438618783646225733950836870894992449128064688478425602962485960717014886853928103996155226087354777778720170850236650112872646589735297164823876017552377770967053245203209537912123735267345636009260233835300214671349621308562803951818953506442343800338013742722576686984900551874313174493398844592821893341046196123110342934837313671748736496728737744468403508731823906498266714043401963325927359313548400903655675166137948711444508436824555140310861218208966127706136010961102863850917618893557691261922753622295691111324902430416376211370634558282403938143627932899848536738450249639448119415491271514141108014235150974584814552516257909172578729383595203787590573262194914009448790394604878635252815155471468390587814207490644035074170280159242856464077839449987008598817620461449172018975384506969243496717581920899700644660059315880615897691791111074955297019499085649547426757221420859179676860379125733623375094085843504699590765060963215669621114933403424403710848311045066202483561860862711714592198715364774006507887158494344753638919261485358070313539394696959680850891170051503147868008817041318484798101532594994161586586188954313710699199844287579366881906027171721986876999361414824557642687827231104455814215441886558906539493475429398297171687048619233496379086252619825902880661855915554481170508597195733940381013538605243757912584343607949512127400990129692223777400635965588270982808029147409162222719751901419068996176688550289393208031461949662535062741232571900576085999152486280067022778658693209732553089052931622164636020645056669001685143523087451799861725351916401761222777848324287100470039468772516652554325952952552542736935356073920307636768784813392203325457491590959348314207190013818606462544092601214211102592738250837351961582868734421781248518961667153258699018382019561619380777547466816270161791965624698725704048473371821494652887095002220945225638657938931581299388601306610370030211786755617054598827891869163926653733477336892254340222491290692131922522307663472093015375893116081382356685610084398395232177813982083459298977040627837660363354593402107045602419479451957603401490072256112552748753175753776306552248078181228183880751502778808070344614647363560620630436658658663836804201098712386447577239638364600457493577310748774857968591902232049805572764529650158824410405371520275029621339877867373997843233476333515760185705165476155900704215647268262093460836274719122817550821644352892980862732388068188922922756151117741832542782285521934959600954234756776890468251769194724679040972429224765822347755404822719587300515871297354589675342687692622010039869443946552884160745003660292400178132814419953478847832716019580478051906600308737945973844200372592260598419037772220280184313238841945992766785172291546548970152426500977303510720903729863189996388484005690220124097133167174086841536759501794616085919269991876587863859182411291660833399635165301729044785062887241493520713832022821574119693759347456143919353715653548799740737341359952024533550116331047197643901354559601876427450686187632463014061684588940450468195047182986164519593870258688545310206709541591055233094891235844530983753102577878526336772783225198815138114743726278892065032036747327102218937638344037603825134069417284879094520581311325036274934095913200294828979105745884994360443249690719213156083479512756505071119723588479304966798969560867503674228868865950956189456211653287219228201572381725886562102815554348063776130712204402699507485178434377983864794699246744070356124387703329316441787337771656645529088856178861240131501217282505112114534665389550485220403570417656755632072578379448903534898305523376400030106628212027660106021225244215902087652193561672619671390276442875474215417519766889555714712881027174817440825028763573429123451232472687306870602267383073006185211573553252450543286511309098718223557773423554108980881174025481526236525883961234137956808546029779470306283795950277044142557203985485741253963183602855342046020774835946968239230478005558571072732661474281083120853419587295638933003398630456482253625396901958607011654277745014377608945339100867876336395098476682200000941893777886820285301696789072569761894315685455873356382944250256073652946917706709637043593316126389341311855857178118116694533120803317626774486901891088528684628642882956867685547355201461082479718352092431916252437481138597720499789125704759890972284442830114682776077918457905955782587473391969144721854716620682407595606443275517895246185942623539154362727486588418985203681707633766365172121851149270931379002192206415962022773760987528583686048062988071588548080573537397159971381798007240586401390019611432303960083315545488019274688371487503895030641957035914530038353114725255955402553089749915393480827625439219681126848866300378578583545750754688201710007992356806057121967762879050726909140095619330503374652154302997555454603592385543721826320287362620839037418219119039920581307555528274154351377352344174893146341791303854466225882415784985038918985959783527454577418540383069546827434324092039928385167840531762023333751551253207202567356212184199965141936452322978523382908551057244781457091136302690196744611061837628615607563917707405875736753054801799147732846451589673163690894485551528747397643628088825186538004539586527519922638606459712921827043776134873603768754865386848664219560110299982476764422337355350219229432046038497368249998767048420656536848778201081752985943118060935104269555729228826105392785762949248221379200460678796956393803099897809786867450783326608256166456208786769907196372779608428725366617765865171018142724845941688489049796919596317962464658901607818866531418923270410257203737410379777003374789942025476045167938002207953865026496876014589366596953055500033590685285967422006380226073328897977612436122833218903526161572794360782660146287176626679062027915266348319867646252897667923879593053550084979051600788150472732308616358537363832971358087877114790506912607678401214647086437491565513627549732749591514423371956119351204274011976043809767514588931428305088788920776933353519728485398838004436784444461616013683410555964716482869173340039012457507812568686275196100101737254217471682981523187149224730755546908724861571293010991708481082017056953353100402916277422374792569818925272474746335672228838902706697082439616820652860609567965834361631664205770148820193842544151861234863314537717601291982453315770105655106360321203353998394252342805757173160020979411873708608773948106388796218769263599010828542794819022459668743461856830293557891244424660567588790374435210685158002142970185151096963798566962013304008885431873420450687852894535712103599293735439411447256264367537187974752305608071204536082007173847342996942992944235312126195133188813835131238814117547181247651549705430686951587966821406642928504584519810709434838958466719108803752796782361500769602218686472678772858420705023452409363763827764500585410224713152238419658862134833291073494704742472429389335233744853941958393425745251183979541544274029304568564293925596289598034718162148329326997446628552612720253807422274268106080331951483083045629201262104727185699727514871199189665706218177794207584981014210860265618310545285328417257234432229423945538437266159890455995759462810516097848778632853627127044006822395393580660274698576053921384397706195725760586867152119147688363223858894841315345551831209765439905213124975236724012091816362402760920899178042159787807004856056916683293002008331116767980610610642704527470067900425229576736271288319989322941303155113818078921567653107720983080492169521048894023703401490276293971656077836820154292616280287930768991244371398320199149904055801733611652688417426728420390281002395676076729807142466969283488405735688335781853355691437803620420820912511246245535795239491960262232838119720873618078036606873280936455516576689119849583180371513126617291647521032203679455042825392468759158021078647111233883173299225109989756950140791522435716354705785080734186076361404891182204368540255785739156443847553079298561103693998253092105183979080726096017905315787041575008519419418675936620395312595602710209200474927878436013847899282004459122856082278536574262070652468235971115024474309688726280100986324584479136752747905373616761221088390230878328561722969769975362436410356677788186067951436921372468093502719663893166396810960724504479723640066561268755965129998287206158210486299362151411082819646562300280572099849840549231854086520518629985961733433870883133581409603767101109871144561704707694156942269599251021161012469066757750338125996186284538404919177938504752740511973271862187898746837637769566279909108078857971729932706669005621866004115787064779518288171627074108012674636500767418854312985697325795658724562196630765763797299330773626707782242510363771781854043299552530346664816800471956310474859123985355984946543080746277728828710725038893740048301433266491659196166623478029893115321066841224520037165513888472160467090982919567396723209825261379583673760703781743953726422283106296911668575553517054529294671840268639415637569214804925566654711159508488865683744687709177641679737603103348229585365424419070710870340164637471024402279491330370902435251510908947554172152963855427286330260081148332570024977304798883531798145830968207364694622301385129974622374892656152673628627728637011375172332609494089072903496927516358172422311385357164707323503044370717330429497980482201616772116229430794824268152949200322228378749285653863137136582676367076453090844740524458133970521216881065618161840630021868002068707126991461317108175758458212385227765462509907605195628008590889580434302539006093289612111703255255534685708381709324264738505230182258463143591114301456926833195367063615327396917423409417909433571032429664742889963450397281894112919312166088924962073617967952422123621478948648564182312888234064157698919168554196171191324765835687943272593705530044373707492971342160021349296659587752863367950641885306031490461249187471980909312608662127730321210662837335646195277369220952594798250789406322452727154609829082382020141373612295319700450639755535172444480891868787954227096433191545560507628246025821460663892841320057335747436136001530586099433393776549529998449983217713886585330413892195279394915179574190931892564730116364516704674817402017471389565954086991774722109252106170231567599945395253007846057574040798284414684084454671700617580005598022462178818376990041509578011766185235765349543765265756335989234817076761361310131262336647879629251837594688457764884974557697375358684426603305435470433994130663344419725328711830328200266978408809217106422044293442646517474480396020429654072243262622798448579454249344045307041409679223668523866210109120713368163048692357468235830593644223084569717308677846217006328492107647019134377818994599675464941266666581497704958017401734021906254600930007044022531398936625439818910651770449934428791058156720503418681758644872995970096230791720351583614331954327347141934294723955575085441005364455791762756377219435287506323906194417439072643980349314874583422525231783842586954297524081834051677823199915614080605371859193977568066354221706953507607430182249394014770292470455159960473475434440187670829006166112839721399370787720053357748934795033438815872646039481589119463877158785951298416367361537815648374286474103306294544498273558826351911586948102204805098673626470612826974218122685945360921533143615757874049287130855679328161390351831275156819488407092197225226548556851717540642022541710920979316752298502710676339055559234876669563632556173640957557609888864028035078162919648219995997415777944928884434785231966726549140249673719419210674547633792132239955403792875681647627126994658267259078156894923403077088946487520152501172841659687269533145551118634414099932049703634346613785919053846872691853006024982767691280056270406888267768443972172243923659341158178059213730301395284720401993504829781516470347992404875398237696468362852095243968570627278510623796909004507494453137080305457488108562163812885749293468269193538079557032192056464327760616229758748036838374999869684938950436887715805439809318488839231219468640315211543229855875777611983350843938428581686574037576682903905420093980811695070230480269314110629611562208128484414436698200462700225031406248125651687990654380867460657924236105865232053214853517168513062499489575775894860462661473655853019362756004718670061138418589045765341894597534485254289095923541319269273672229355709165243838843672524091373316656265499184707585033480931403623272534495595698087436520309057050814282346462130503410652451349004089011943110627737427350106888766834213731457139138243514485610568120397552688087884919034062104506632366411825258654167871256500885504653224105380897451025247362515287317633373469569632453937011558736262883991282395889442507439707607014279640659791331937100557245956397596355364832146132989104132696336424886422571913826153554128707229653677310287836931624644053148197841352353762169110644455418498709957642509933262161070868279087671449284938577581984326267951968312595660313669264164889705763079057499648953887809187408306391901371637588260129832995838481873534347466126216518864451792905762033067917173002611982813747795457599592852111296113623609227426122425816836146742010116481990447802413223981296584086173424090644168960627065313336819668489032449049629271806062622894529235112427161479468952346033596883815739010639503770942441126869085939585586783487538094085456967212071009163760457641816426843946591586316693477295993958431146297120173237427489826772326718946937282022541743399495987287784322452739361274212327260102123091977193609757790388210008069321192857504790876659996465344687460498644108774660241803565025857422163616646111939144283525081425037341422174413215422713959054974374250997207661735199641117138920620511165321868275958152275343667371913201256441371515627202016934994822209247287548951653427057468900285767657923938798869793342482589043050083511723268065397038676161624799254297225122574971282114710027558207725171314621996119048595884200193060280878202464062776203258425967134342744011099692456693318419621069227142158829130803425374658166621062024221670244745249996868706246587810781610126875794384933758024831324732428471105385393596404860486305925251765312384827215689637013966312577940128060244701491200591196255193522263456539284662118746171137863450333560874385601232686893223611955079368362106748901808847929700697863688482279619044406663245651671928761436800051517761578059674460290444557432416225075077350008142016473142808647892101148334216947215139946784862975027456933736253216949566498063432370855462373460739953505674355378609893511151855828873214953082994316284487071898691908751971503436125139640280514401897351636182837544428771183005509886597399987169067443710696289574885010646782192828924292187866094332126099556140570514315372982274589024753189963970926365853864222641109768871767890067872420743421809587262789571645219708134033095004174296514002783254566869758178318002341417759641373908946734450690425012933868763395345416886955151587682787814081244318511457505519849058682023315586745260733246389210178606150165023942531038722306951554766139853340820732757266570593622440952766863698198060449467971379997379096974920696450355224020227810493875608158833202336332169978302220926553274825960607362605426260634938163343793511103382299306380214156113136041348786548215735052935650782898129892385560494733983467895305455265950615394964274247927676331340320856775582085452923780365731691876255175157654632737637993544950648083445176705223556234131543534531314639324350757723104816929666695475729145685656548197214201957326013398967218964782696234722639303353491243049524029603511535360573309847076703004493916166780550409275868509737943063780039897769449733646215501052896115724328481437552575549470676916722876320059405482102706882185629001632798104152488975658074673838632926381983155175680062321982009104057023822593088627269392490836437286342071536260756280303257376555432415988274068872274493745796264392969314355717377943188217340597377230779779790368143407198909054440940985187249421089764375329416768551247194095655522807474604212425744327854457320054325251252814922729167154908032033192792776750359273232338874985117661725021812097959036648328983612402698492987396953810096621693305866351917643401961749509998742187481979316848850324338227748738247030238188504070462832702738753853434083580661045209619514489864548735444938520932370239841651931891094163956955060322389345751360507035303544895473119645286310802672665513209928351203055316858852267911394856086702228687319073485957481762171226967484921694551990651262452513111900435597081791300627569278506534754181025563419682838129620513904447649404054498016064487693190158099085265696457808905419306920800902548367270949697120719914711256093764672295037256116560297275182212328063190802396703537336124340337477452668748187132890661718499030649547807028734864253120437714242868394918219550982977433207495156025213728170502534847068611384140284988786148224785815418965149857993747705587123133909068426786313976931873383919020595259118270413549214649432901860362917937711084952638684121041552152560519270331668703311991412856505717863183208908680860255164923355913302659693340742785728140359536266869724286026503812344738977027347576503506638173976733746399056825312178377508931530630616309241790531487051263114512528596883112581294037179215263533696131126835895264664472499901821401627788505497944839530247000524781647796285174143665082085720656591676291554820167645528424501585610362384132477058039715558035130593630025203648896706937533658929395040707730231614172105332126785672263795588964676858689262231922744286987958650244125090535331062976158949193461602541585109832886959775892815681928340352283724957759941531255342120581566773685679551365228810277866443379538447218686589806764888484163824075305319324647693527494498543341128904204312461203753922027819462635440317112068974413674227553633906947400123909385181035398406222547366141563094583896501692421266254359961833339329666326388418109381852860117299056276920263361241002307733925011642913212621158718310346171002761940528645480790254520233796616028242164308543299898686345316382808909418354564611408086200473607672994327652343428996414847179759394161874612672833675172360505852742571250821503670490382038365333492826286532669595121294258919983238939958188527104863126884170130264000310363998163073233368829894617354103161212921567824794550300895607069613712973989600597360088401732551453518775644854665231119586935856533969246680352856961981165956359074211328647519544372119455987447179624998023635736208205754278759250380239891998683838307537742164813388571447055452876337858988702003718724518160466925493097345195146437271543059230069731550821472094835202246363426980370024360006196720962825118274706113788648791399132154980287228680900215358962276929787161531691774036772305602663270616044448925140272188701008430383010894316827670725264842130962165631058142806334071783982829934821290837909472614499202751244498857769560252885002810355396750657339244450983415990522686019591949869875773512703849216075333396569364557005129168201725621159675701390330174888098964403426318839233733692378092724079937999782726152550441356607213446542588809751688246966157879656791456344888187853786902350467005860832704743573699425923132227916079126266351156098024427604360141512014078655271878114947854503732403045336275956512803158562338814287295129614159865105141170906418176565157984329257968626668563982635175187375221025167348710675643982720711560227040937472152999207855592830195258257530211029890966787153509428508072278036870509162892751798849035233018952191935830754442165696193075698457981496222645064404391402045745677801345232247527736146430264235380318991456443777075736697465388388945989678943721486666994841847528167204641529381272650890692640298571485514304455979881737231636692212866630602589684307041089268736381361759273674310826854839720941837009872574468046005038284287757865290435499763822355320458859973416001323700527026061987177499748586120525854177497875819000606499780464209670686058119101456829634014377334837398182043485084586793377026244131964481628028548712264157058248826322878137450539754669498784327496144701646910800350636280889240909791430041955085085476725129985366807117827064461988405189474821833701057841524554658053007356297747355438396149502057942535000701791388787160655041888611161992425649079073609522824510151500846289231958034278988509297156914664728965790626696449088469237533773894366366676058054509075701969344343504118327724146518040811347379743167878247931568946186208146147441007089502365180081497498183362557669548703645925587543431140896510804200390362508315695399103381994453791032650890968989080233362671805678106532737275502031914527473332648504051594026966264188671409945052513423726456989282008601498967300294101395851587324281393729850213977031054441957143479950257419653795601899374892655980516211638825626003767712791432531519809427180119267016384709593700752315802929733842534204542005801055033446097512786549271577658323456317228026328623642010593558638582756309534809956595848269500013138956877353273059226658495519644846346480194636661385122199418689600600908900132558316239002497730832011082857257757845407203870247161429149922422469074823302592423629281013748721795793678019850328206094813363522287473338474098112720268537065538288494763594948082151477806516505738926112610949495463471551443194500096914163402402175045473299559340113999521143049105199113035530898849071799103136493018603280923424493790667792340251332865021668664333910925516343732242620617113527188736763972424131056172018618985950440284145955075626560809857587335404290217220655154467449567666823227501284302245227673890386916945186548192810528873254848195723663046305449370755778661559151427678935105206055308518407170414377546554639603904346201151565837173505500063814934579941516262452059543553086476006729865620071695677381979134790464622233056466196563802490729401575641277100902119827044208132898744768378202402595008676589366926175306276758733391520915262677099950446666421906154125091841276564488922127723281538924261010729957407905643617168537147852826130809427536345405241164065909217366515244286094190868388702423484818669722196958592557505139045077983627124359301909516252221052187621470450561266133294312147893016000220267021708271832864808268994165552281383525650825475044053671056545602513156575133422887532427366831840852173814957064301885808464913078866102156926210931195997116232830803779746714608793336216027062107529052687011402658117635471126941126779575099184517251830390887868973835418957827710613887991590871913324841675824177548233731194429292985642202459191891293940262164646660853513012070397987678909717458007391163294746498762825918094034654465499971747432842654083490558943389351324028472578929967490964492982763700589149489509057073994688052614225548204561861589422384320417614296255011844493379286982580618536292186871123348805690142826991885227205006569631179370010023431265191429508826720428653535604780127158833861025519811539274118987188052076554608097628426639398775765369269187063050009733901522842573455200105704862671868595622376370053276119708690105071164063507963089041034056251268944119820450147720260762485760924910661529874956028823779976953159011161123863922743666339720167926075387956102247145151991678083744799617405358926645622961866152121420441312237515704534067889587270421605461613731499114639249001586324895203562519447313846762990817656769969613570495333116193992435534266649181411798385985176358372147873382206532184733401937471276117875443561317266124644628132746278421907678066946154214741422409258439127632035795126489137149448791889547696920780242247922185940202135272456111295883303477238717294188126016453498330520085816878966896276385918020955829257867902703389253661508592968453633818954754605696447900647716945742112951344918163052109090089650465411508508086475339485263481301487446055944631438119920510017621584318842988314923193377380909518497298123940262102057070523999564206453472615478968341350864182886221400539013669082660699484640227457701344537581378112712087850679414353046952314843055600729150074342587067354038799094259109469735121975184192644039480229472184322698939507249550270236399959497626485450383395634091443786855106885208148922773893685430314181646373440244605158625975949793773818670707936782436757658936207066041503678870485290386897649402929581341220856421483639399601072567493720391379178928173826581008932431925875370347223362872524298665952610813950461293652903835792316204702355856652106322158549238964769926118148832689276924782505024503494257631394863250506143462978014150485699927917897036746856168452577037467587190855999436644165006979158024244087434515496069211572582485623097485745446036220575182744726968193391304117568296511374524993848011642088192686461267314592164470494065321835047110146752736736965759127090537680846956366997365206686732012651458214855110934579084635143463129398356732417900461187722535330865509507559287888836114113475221194415658208557688944357986093924217602329009744495293710255607191304096975641960965549720197300693500062608600961035243006149068811374974146606317053712158634390095228052052041122691965899158380582714416195431320230395440181409437926113462681923313173305742723197323451093131046684959609337454382305956803584756644525804152681609387238243984262791876440331967360398482211039066680945687104321771112165927225428558768973483849347669137929171514996542508439238309068064214178236716561054621390688278148430379594828577950967121457819821566408326525755642646505476304757294864564061097211574146442649063063523611345453802627986701641659207620147258289685546592549695634098138247896469435668391072192551442198284862220693826702359788186604341065180400560136884298501866993448872407786783154799846388191653640478646078736366121168468167507813966499622953089523807338748147711617812185093800563898362951942658725558288451461975115661574047044143082483883233845206030767184302121606859107279375318404008282585333211293655459248978518663662822848011678580361288894802553763165391963852826644796921761113554665539870844056040255074326692810879132973870071701188691643844531227934261634929902497682495647865652022508705675402063296943107842499464242833626737837072565663887004327805953809720388778518197393099060913795761211711105249987197839976879432363732294892268454182964253375963663487681326453474337118823308175273393038189687330042246658661284420928518622619702323859938664127285076911308655253328356231721786868936683816092524976026155682877279182337609692929844071436872287230799842828085216992157682533514516786716653128162218518976348285513693819208643474991818846117283976427769360876170907136281925784785034344479514953100821008789835906489209259495973798553834951958911806817397895190384708641805419889047678617632812065181371339572244247415781400326261389575965598321639827099895849499184937538607869211788043546202017955655407771602894259616382303254635358483589775911483426402112982589192555828759623031744682554998982185092177048519689014101860520269315535702155655609024317070585619188294537328928416632831889539110413132119467935362358008529978963707843439521610818330802597185320552181916076788187838518558441606126504946960645667127177801369203378326096800257634659874238850812725451765214303164689433507898824514532061829370144918660855914386765670627811680624312690261202186462177125354884055396234487108568020975361509299693260746899174310635783574891244614398983049468800941970494284586688149384052894944788519094569731275733613369109207639096049531443539684436135312456081171412683585353722397077020494398267917136457210709379637081212809382991591239863747354406386216287133682895981244994216705504852146904724539362773969338033256044642281179205890358861376388069009304253732185656131717090842411475946819515284243191119374811881975987089373149720413789246881740227853486774876227024557812056518678389605041384429929284776963841571301522649720164265616665977604543760519597442955101409725818854619389879641503404823584133631120347537278077041742314401520811114606658627960304964490059745167775849184097538063233090214696150996846238887654904202263564870050705808860428476895169672005618749826155190971696411375402241936395676616546631528532167265082038861831103696267599099101983568661933958694209674014887997167920127592826095153912586592812273389145724859767867698057346788228732159914080906184727901396914876936535552683875959917430561761843825624088269944495336868820124837930461038774776651673226085857981072058551468001464419743549048439400458972958218365706021572695797249973025751180050371737201925483656665464242400275811345201241879920185701703310949243384860486507172546793587788044986024224004017116925564292865072269327821495359700317713655967379577110050138207576215252790485290989107130304057098724432705095839360256357086574704492963956284237851258706544312279338096948172307593386023881732098974395482099466288183345959062082420060989108253495997960046538201790300655401890062830118155814665894944291395161159117056256273308100601032191256170330680240050906063994733400389019574452974986942005089259076260829792831228968341554095802844215114021908544834702685426945581280327453351521763222501127970018911304327296717160013778101587064745932015417279898803969994602146850262227313529079421164262342928811893461196260248386087102518204572515686209688526844488852951829751348614809700530073453810041772860824954207913304474034021430115099145111725965086692398964114880584012527176559564505975918840737407555775619755029356206670784556135366999113145637478820628611507143371745599655464400724948287818893879403056008155292088322311938049836828121389098275699213758417177286418679247523989663385864388127701666794804822441175154055205958376758160655273441431086989035381821131725436117350766404091758595872157033844903114900574776681222569513294465978595206177658662021871137623625885091138693199961657713960725162694041493701796633421999535872197576994741376415722705771822835964380677115336695228998815309141620161036476757759381537447560075833637057767566404723833724635978575879260994940472377456522149322542245300301548473822864674381012090189350086651586309114263822412712904896182360641222860210466293726242638998883491323878299999934617903002193666438385323783578725971297473311369502722925502849170934336943427275873967429172015513159856504668539840606725306762608230139723623136827852177723885967260640428919094425315497074259717949633965175077820482967999434974020836776065321728747578670670207557937699479383402278325310598476785062220290810407989140734003208107271236075185228565206032211488500327392676212123286837310896686780242057201017482379175568055762373159975576378078794692991388604716942146091598204611226468626273244418461424051411383961953652942001600679645290963997378532899585618334925243705557605196180028725309662374738747709798633051969807826034926447087573128795035408942680096203643180391356459056483614500749443893682586137030559837257500610486534113278688755847428720563885297417825676386658493273922736894412605665327843256260775905171265537879294242240927233326819440268701172489526750118103383523939982341054791590081005840817868214295868411579956235604380693615604041452504433706988442798837714301920912572393678683699606543042077179878372814135008632151497044988689014156081566433731416800951062315204054484248667590963022035185316407600250795741809348829778933970607740305138027302346186477233950302817271833539080375815807756814352175466197569556330657172774896251845782888864716258900828295452539720569005245435783460206047260610239234302016003780050406603696197984601406211568372469513767274288382217795168520604238103734150420339593872298014522235983547868342597226099149338196755251117964838941647217472852723955692164641451122398689965256081449726086179315108712438397184632202417925416993271371269134111359218876099346079756574814419500561257170556225512537070895682436413745339058468677572920555450134402838211983404859862411860073921859433103593154754879249669196375247226629728634464503507505920766331904151389797845426932737106993549537539775169231774612365730250999804366830551153556809292232750167177741004989334701413551293371002721505440817607253160803942939357207590351165705563402949928691968268471391003214019161598190730200755112567907004896674699704366678920750980862584136986853091296446202004947992635259607807479858748049603199640170458423626471082041648370057523929534084901378095529267442835958568173777689064048103756445209861157313880968393527195622567333865738959664575752070010718357981992351686606604689109574701457735091167508158395634486338094206070102144319009204063937092833148641716976719244814373784199857580376169683193342935523612440291655134913504659641145981247018613466476108695302311794372075843302965576736510025268748032211551969204402593339626076741528484172043070992104808000399868927011154077771818990767308826401417442702404829200005211483511665252373660808166675647586725592147983437355486861420590730407183504616000828278444082640723797550264610571416842452469853555012093224244579796536973476920551875461635232897022421062839371394405602385720658126100830423226686603823819208283647861904980283553089450642410405801406249744495052784154206654131583508706809364782628631985292349455266107644828315586162767750873155008341381707871570939761207748412883066338922019272414218939124035433263346633349321870827258260577233704487309409702268840860236149788604908232562985770232717352035015045794735753742622729553699369216288449771425695692961898675356138424911150942232334755149916921574889512563128292543468668351453137156926562776446066590266137079266618149740436464415380326737191166945692489484275878637295348824561009863454541667946111888756218565180743494938237198741567698539586030532097095058999139522950615620490640845091236846334506465481134408476598240696545093957349766226369888555709084919460606946543167748125765433457205060647321361280824043528700355150264555033456629939958020450891968303034807887750576344393194695330138874418082152258332187805554434818396169740648702427305709370507922086115326717668689689994589095033410590712484514862322410665750991658552108440508854108259889266606767912722251172447097145899570104296698893101739631083277073888450531526249128479772108087138573268331532050041462390618138084571819913457007486923746112457975185175568874854072425120259721191934950765204178564850192683584003693221114999315498604700135010938618091099686497573541314681682071601264194270415361101302176303974903764460327243021979045121960368611245014114888992195444990895540473761183037572525627321767555237724576618197552676639148709216436874581029498025731881295261021425318890424453189929167396375771823251647850905802442534598292279562512257656179814988115889358364783998382383858473150643619622822947918336377358235329795357169288806207820673869158306578929501918978950258863309154163686546329948487282283227317056016142049963613422872477389867235323428482904263844279754030663515763687072426202440121003009968635162593456028542885919181208216478987512330290712735466621258564636362439441751535952152350689033314618642168987886489818347538822850959724550610869918340759534809347080612783276623767761338136879422233561369638522726794899627004397171671063617629462918221017367022620812541497985356261753380478402791253100030656870066466719844380971689154651183281643240134099428894508370481441021927465078000977420231505449433274647141936944493388898645455113053250540312459832531810139737295708714465929163278705780285060338942952553210362089715793020418047865032509042813661279452259746586754990474727761125790692507454864476454703457788230422856844528338683446173964201312743633299082043764230100883351518833839746309692548358456091442291103567076525544184779599930950442211841611725109786658531517237262765977614128497820274141831562947408589292617349787606534042489856790580815921310292868885192883211644378737433101807152002891632944932797711591114983850165841241595942633820726373648807276895529241298603902718774271853615936998138668445441498598567924243702800269719547990375953368663530029943386487463466619740260589841218766096133318294928764622517697244831164331085199429911421665975487777109914377375455141285168770934534702018912590359413862764290832731958202851340985295645658692275934036902666984764896906094454851550210630238922491828940363484385454908988886830005565497897326763914008348235412075372732650089683522445122320305216065933905147391289014212997857030111830157912978609654042510011968206740321002488517972062069024998354284334154481853681229796326058566500433316803630730772430814327008822710388837506233837427020353137168568452669066730725348355099776639337497680821245087742293405576879400465909869283409768982004989067337525147382960828511658399472100616777680244085504305867119038150147380460094764259537505460750840393166596936876538904516167720861222463506761200878621556619574594420445322655883719950725395428727753121526696532324728669852965670345897923960391128259632392146421398586031642776891769146756864749401991004039307527838965494153246243601231846916145467683711802747834695755152139335147613900621130623955102548525582922922513438907379099227950451278002326357096571348165729131510743306556759645511018745269666974603212563730521617130788688373526295011315004535579746946576598569621879447631035282076307835163704512278987605329324968150380790772210166397867106763806321079788826203436370675489563841032938127446619223728300928991036505572070390957944609616192809849755095272854670734403162875896947383141316535841436479024323124011287493657055037282880949262542122299194931920768463894638476158524238101784860719771289456242435460833092541659361289620025007689756874266000582433899591345406397552394581990004209537636160312101253450293523174679865399165905003228241489832555848546537610851341904600797430989122366211996296161896080706168173129561013796581967652171654457043477809329472092844508385712023900829244923824695281089539324024887916220333138493252625627500190502172565403020998917831990388124919818391082027069894819651496141470152767245528510041299341834642505139534798462219617582899207291122484138017425608126688141165044589380178993161138791820282410055191373829968687560605423747044400923625249104862988930901630544664523002803053718533715734762466240256480588552109317083398792630519418233298110180459815643833017501442663933953335716457836372961836646212054474789953413714355633676283552778929805118482735432642278431685057158676336816456763051496700320878533364320418730075532025302737653048684139251234178313912499294712708650637634338395920997015965552573310359353815913391604699652911241377245915805361924946284676053782250468355735297075052238764080406334558485382563205204747375585637664799464171586432269745676116057194781384279029572750885483678472344940447690759255791947643979185894575115449722853839597943267127455138470186299807350696875241766120419543168894773001582439341987495185492053879834787202591768678366882299708203722729379248625774979989933170167536902886258105865368783037066937686704044454228505744669036249959348074193902573623129630071265275084539605769843553305604978045211022536110584825042411875727778693508035097119942207170557609633034754967887912957257627866775477227653609397264320782825405537136305981317968525209813752979810561617001113278891014157471682554164107249804458098573947331750487547701960987096399956762487895471239690430117821962827107774602160813009799300802241902469509129590525884691975160728861152515129501813439678709647748395846150387269739334368243216015902016640570079426715444493707576681826435177821639339705904012797033968024939875706823796054110013827301235443365832922969447834719660971237701417590832365798576253307700129926114544390705105022804305607888196483752233774823161016985919169905940914652775481539253474560853862831609252361242946097036144333379320806340198039396357517035522946117894026255306223782861131273820431327965809000659378348465636028780479166578344089478899080203014678860462878741649505859129342937117347219726564328171006195031690474172435507003145066726405109969816950584551865802460151967153358811967238393575329027851506324368485630804917375201476253456818263657389881520279849503201025828746376971635962631871363198767331717615510468650651735425596722618436261998258942760328646365681797371775965655988815161046639719340055211459364152576594184589620256718759808564307513863135319903826982310653091745336965180117738563951519874703902061659236879911296367235259796430563890385872785683124147179951312346011399803086801192602296744532235348583515848154043212866058108423586745605723952559932749675102791968305134521400006219115531895682955759566068187997921298235130507599143870027199797143836366235932266281969012585130449556829277663154699103310109516784596987610087446788052693630771610041612360117473748028650515382040238036502023043969191798284416385971295112662046908400951527875100803150697101271858918824712644126953242300880123093787201833486233772692766018139193091133762038142661658849695310694589608463915766254005700944451360356597947766325396210044270729890186457225915906543995724053514332887055010788590741691192172493863605020630082751864014027781092774940754741902907613912123199131575391024160249645133544096485309520060510767336326110273079006718988318991651131282314041961451914809038286025658464922293846667040789275586920825361785563112709094095553279303578820889343324326189197761986071380049006609901263195488548951818860025377675467980991501265320850266575960873394376392319853594119641299893840342595012866815874561583365463920615741127922704887804803640133153064679952697832910917507965967044333369603117148971828346021440381629267887558224414960937986507273143377560412514582118404591741423038242970613244953934246702264231875314978504250998498251683907974648085591849905922474507311076497055633616243321096743041542129567447700231623689094388365449086004069881405702231963218124591272209539937959682437279297007326162077290672990343265956765906332026478441537199784017499762195194643879161883525789893577700894543638437139527579986545224709020882695521290078646814984221739055712689942026900790226033905233254454133401373882428917598688756452320920405954196855476589132747150399624769241896643230108588708491430235626603433650975587097693736572845248032075235245993645840362565371798720330306914060786857130670089910685837807019958578624097880084821405835451189358844775868677286467252128693601764630116504083163842411658532442102144507193819293488122952435284698325400579388325625955643349495890320761793976466903474054824244764056958037689331858491239747638446403412165234899793799423278339681919477487339044007448756854056044882777806803422349650530817677541417331677499005218057157401447742888057504095008519844665607063055190228503239687858726068039485874335504627169938079513169232435460053953522179859570726960453746092588436737588401897791880478065065653913516133666984021838242584160823696746568115033819187107345678363952803945033114509041488493209599591717038262898523317442207334806163445415073400421733558121335724918492299659885766800854677025400448107883846744889487420989757213495625750437884345587279064976317904429649480721664291932727700876898518376624354025936530889915794878671401142498020199175916421230994616745958181725349151884592872279388114880190983962430957986694277131271164277246437833672528181151644536048885502689535686232418358212398673331459717156810417287801191961837551909916573940225079452766869283647949744211896028972428679711782774773848753552971332376068190894862533713177112321692132393251217495735693872397692476534598354370716294666702672105178526558421820009482071660664328051866839640177279973210493200163198881660791232613629210816067442980568645334879751269509971757317188761549810597332844891788016677402427615088083784001773212859551732053512194387594069900856130909333183153683552246470975531451187169311127216454813246603016803246261259894376353987981476820452153958622919758815168401789918813843437612143046113697510466985178314608203019170480332756636816048030451056197127079198804413567626020668228243680447609771945217476555732183819825917532935498483454641166207326784460103382726948079218100849940291742044506345445721312678239330326148189202689653112058117495046668537529131063306849780527507774790309430375010628694790688915347582687769816796223260014991267147862661768335877116451155406001577292335354917741387220157151422548894359031469044437458171647463293588494565148000531772281160176505272845654437758484571295170408566112923583629803106555164412735261975796402480359210076595860293031841847605536323571737144615206755619775430456902659881202917784612855494504495108015784047422760344918573911785093830759985638099893397873878281095158526287467737919362482833382180037815161992820154803098719599646962778484841420016945297162592165725368067732514510353297397819732925870083466055635752299880457156973384046078979233173020141474546374830218061574501514343736515124398318165253638390427539774806978665462430949831904121928299101136605160350407068698222105480929937972293348246810659990182486475641045009015495665213318772281814256220271168258462682797718475532380847216693641623934082667220560389972064624791674644511763622722568587203474732085980840961255114335560953805921437243018842950378162362995980013686177461129373237881135085643891287646687134511040919394876061335048963398989118843325881873480503495192179289708549652097785850904500462789812903781206050817827583527852860150791881537860171594259005806503986180062889866864414989719146716952568694549621800094707149999962011549644280367575374753623527939430878240517048054689383375748936650149480339890500994191395672483245775885477630347876961998540896343786323462598652727225294173951668480692025547529572084034176232137257887778783357208766114352349737294424764316339145300503981182072952073625041866140210282968117668352941851583312589775482193985224155954679180169960867719031731809976823037150513793277291578197931318154310840135334885371599215570160145342325442669312747137604454288431891070113170339501746808776156943695191639592591822540412781059482327630281422643093206863824734989245560760831009442359006896407319033451710265088993181817827965593955488211088872795200695760901082152459435168191217907226370939345943511238679430248718626133329011701781542528424217620044446293185129495768257926074486996501828085159188230265937539411611133196458708432814586221929004275220177177714032978117345644117547321368009359882224648977000688313490433761541129360455041527571982797161518090024624985372091580160841486282652888915719680038901408422198456768427451039269161132487267879699149626521896130773405121397997466850076953961013717382659922895159625159713300873969714292379574218532247050272548497077952203040045553240019844503743072886072760768593087205267714636963991774231563055969398825272338709784895669883377173876045856303083926373294072108025289974283885421140003766827182370520177875193803286137095550904845896553122967651582297225168259261672761896738182626446370495157952750996529461333016328724975039311026679765899631526047667213224120548787295325212634863550754131177879383855248684053371185908859417083181255429273571047005868323782818018309151779030476342264480048962601163516554368882317187336091053370648053437890130935739593293457065430242761219310790667022716652559388169760320374186701513862758518122904463968774430254762721771987058914991710197405144449526033006029489684038401550644402712421325715437657527107318394873169845127160977206125506775395008112311387488095115270238712381058809804452683577180563583027783000485785492591484177746470321375147076485944936938900235578035438190611022922393295728587279994564357795864918799436724631756133905828588173871216312742553777454309711883511071797170564396232848333837915110661192637695745108600292502531884963953050059184567313864263988772986629546472502256368747129498203942094839996365488290049665735736138447218111715617666000427174060571783060378566256101789355181124722336349916195360871130069947567125134015400785604562991357511188856672409712463874093419719685034874694351544410737817110078333493039638092453275662979310881843123758420371717383026690980888432875798019517681808803651532210781824631714937042467814329977403503546641764799575240064905605731424565012693239515332034009994110668534297526360885082506942478117148165027138043537365835461315645289416027440066230579047596252618565413363941923774481305153017864507074634603709103526662398944282618532169470012578628222979085490335127437630200850035468586222647042238241790604358795981972925322781340726964939230925548622578957237462391777808548448962761777689004075700893609903737526358618336107203123552879937113827416282300060838057017115669984327703143108454927861074777146545529749643416443363100695058367350373797378376908456536125517628873163605543046201528725450827750114553603837465950513539715426316732845734933917394877683086676034114324704475171007110874111054258435561948935655117839918604485124247247547367935891628684442231709296855991588742050430928528324780768472204582948017689800227281302940228132490481516378975773775838099043609861894490837046229891857348711989049988645935651762154727770031481235893872814016350416033689570680795831443307913388205790752795374821933315929316158090688485281822551309088510913948524592987957467466216060113277909614320409830130929987980752215670323508014799789100037764231635900849095146494904945327741235527796372239542540323130901214355077356127908055673239069131528899849675745201953922878829123253854131654563788559380204094885234808858029669248160540370711550069547492871511946679733849402281918264345567520029910556818651209505068824359463270583312881544907367023637091758661021214317249783023966686867361546774529638770903113553700512548146626700570483217384762955450575811500943497039448225178363435162592969793071034720936774526145273936759918121971444739633366156709306392107566593205437442231716122470134396601935360109316533140961280148703351745703531159523316480496483209119999129446784265674478519558496013075542287636799134910800448946221116031308026983687985424778044730136975630717038725266289787137443078912649216490170385661628633961955254682194478565619122221374328308427338617256967669384792747921104614841796903972253113149932643210240946553056981565579495724749656098945614142670467855724805068486961925327038304175796988320028620660198527876414656602001469507455533201698627080009573484783035319820237194052612655093019645210480835667032258963038230059176312219151140168087670020227693762236733884096249336211913361379920844018080485503236871483649673491325559403622894542647873394819663207642422997564478157381877734883413310748162744252051635246295768887612256016443390284125517349487791016005066644207418719387280677727513429100288319904775740793705846698509628408981766791920267537584417295681346239540443772469981936396400601164959449479923221941438267824292585817720902053229650068580312419924508687042664320027550208322018305026526170864809338531814596767320054272061633731688814592059474722209845473642948290870742249792150475593471983524480075142461700769210609219920597515340098663105012597062160726664137724828213295520027047733799958908281214855146715668129649488215484699878568015470468874879413415733487885341452143660099812101406719965123748975825713310272974075457593263538284926329067561675360441404340665983063852309572932577541920650148054708242608715724752167718561971936497871819298556038787922359160988784064579909817437577063083729507229769255963425151211952543910409645025926199857319667441511109660366802664419289742532110688904394327596631882820027682666237702068756489018750116969986965714488650835034310424365606715404587596687301473016498521959475508540742125728366338894321273018448520215208746688850963156117400949675646994620187254688354593554491900228630692585740140607009166966818723993661243921913909381441050371197069030024261594608135870939423250644404293308632945323458003880125063202382344417461834640588701157393816853243901094245600746686282515473665086774041783762621939613865883681631444197074180102400353105769643253106937346125701545983072820648944649328990399071135404818012347440753228120163020321100726258803752112337625726033629371581765055347387470467830387492244927614223230823931722847727687284849364392870923336957858536413388014347776853158189696388564402201227460700323749318143050133141513695013476111731665533427666207440702276263035664912203373992697244466770623297390781316920431812724912343322955520697604452688120865116021528697251317995718496383536107742295753361700209252003104019799743438025224222824651836903246731783433398588783888752708834840757539449156255658876889897003208306094677334769431639191070610077995402357659896810874931963185850344048984833845104554259085724392987546351114380933114208407151928056803874390435628349457160723194761453737714683286098265946420575803776079213461609864293826020358767431104966949092615855937274109141475558521845634676130506431546602632965609727757385622576491391070703525101959660755152622061776353052781796161249872178698207931106299250981863537167293733890180185146218216512815259477400080999380638416275640316064974928573490257481305491810781727033256031625231316514205733328712412166640691039866679888407403891937286761804961152410724450569716623174750528730325528986355541311171328676329686911594651219299266237064967422333441230015019504466144222128878974582806005093315852714871235480841209889770828937300430652135316688884001767534763748632926098034561955638324939293111548523752333195879717226440296396327068829426041191387498874825026326153070223438522157013614032936098328321332293064256380761585082443097082953051430805825886650418259472664992297955875780713311478975558446713006202996646088509373729593051010508089968360602026159649036941228287173807056111833190516464684641297906707711077951420334814693529374258054496767957303861758562837513626663389990060824128970303911114850119221897306390754162439413347395093289462302002023164916831508051623229318377268203703063703553816530567351801359258605739868927766267411198471040371192658623596432296039283211342890839718931104054645005246881646813433775427492502545359503386930107954508967118956525672184968850014343942112169850773601996738197849414404283435951580572983106512543489251861967939015351795008226666718160669325514540443740144752508241057321676208556008324196422427759357567062029266864270714397436163981661814378860081374702734122029295665356706673944755752033079489381322640660841161277322254065732709806809067851111234564672880580498334281895630234930742153146169075745788895176358033087371058654592647900953544687701361807681208508929317539320844237086517321753118311377682470311877557711085731403300872601870475598795981101572197677917787509778542261637944333385478831899922396210535055578588552410802802318689077344958402918532234374988026497428729162573896605115428949178259676041704906776624858438597193878877474479650558432871651442540821745535440890822294148359153992561707395636648701994035211349089690988346902678869362900073630247832670438531031001667867413281693149550761011943299201993002194672839325177702438704457988943414404917998038033768360370443104428861894794979427805833208236249087339142387633576690697825394150810137766946733628410507469427937637970414861793235114220266027693377250340339142865523975537807343619276720220170973093550933797286571943831332559356459690099534101021237792999953862720848334607850551797738473608561623039576196998110498811807936401743872034395927967143990613175097676448905581336448792729657303508135100912995447153571953105438269950497634068144999726272037680280652024022564149947829188155702917999792053013681375270227650624516515081871625851833590992523976431463326278588541862425792683678516295959744413872131922695934919766486763566384429234433763902036207602923157507830350071236212596185890309530561444989535498249582063498548805887793343430469942274981577911712437230915894698997156716598319394427179095579890429620842976317393926974950390435025988896046393400421804436442885408156894239084719127985878825645861601875878725306489385589349700601019728578402402628621748864986384434130454834403313592041581853533991887575883671049968085668346630049052735701995236522602926652970953644522349454795314321720730988524874071499579863900161068320908633335467197274484049652803520883956781646415765785107830765319799593596046551181342741472342918405831031546345729083908130833038870510466698336825342949758573518621741040128170450112867594502309361234578619645175011119492759392165302325079509765461025451943509856173041196458401989102882894257308164551244133354395595424377853519265262460912348103106527205557509431059307038218432946833574727360707299570368580671045776928972018720576579957297067525081575588635098041808531340975541480450035495064310307753468735256599331007301270139306560337319388073551842361213382824081236302959289661153499105233379329319219239977331531590835621126246188741989177556509910423711199087013452300971316578333131962792949982431552730212239574723911057489681534488107294531139357201964627040292122495055422364223573908240683903383182381030070706830469473649959563350994827118832410579551322981047132618124172151599797182887960415768132290586345501542582275891381233057355252759554730412450045172290236193960384231558980177297807604775575779722087579900272070637491127848398896083598864848359531585829543097553127332375109108327083233235099785178159756611890593996942840790549881555253119435254023462104115415865912241970066649748562410973795310132960326747807262166277558426102122523186759209572884952028785408320498090829955136615901687758983042718868922174343811050521881847515694483862789441916062982032492083017074857669498036251896776100279259044894493057820162047416475047779622163926228171809489319251479909112563270644705315454242627342396944669321864710326270811968097641098381220232956209914813459425487917172833863191327436925957790389046441261723774805331690381145090077237679960851826079543537345897980986147448785135420150499442341123822501494636873230449788884766162532884305851818381030845617725747888758610204512267036273149814467829480180605025628737126484335190547277774842608197250235189411402011469702903130022379433986415406192056592910262849891787049105362806580129761734281108065083367912472235493178965649668515054395384044361532665800492882500889957844717817614198852154186249480162749124484634865185851109225261054225328877654144398194575630425544437651791947634555143981097414626776257135640549294859290408768255319830902944361780002054593787320835220077425152160894411062409395324610310069287628540776046423083228845647820391557833556019203559152629499837976920510968057723775996090704875205276072750754248493384901922009751130674787858297155826284889371129329434408784771101183194625173885850519748609948266249310526266869867780295169508751310101916817523223318011104712725584973384937449750043623005962637723697128111694281362443721618653930227952295649953350870287074313693185129841973081893762368996496850433392902051269509097226421792158559469777177055287827750713492930648928429299769679975598289500754033884646651723432706187788507472654743843660283419775046457997125943235658203632337614589155622736608356115983349980826778743704930394607040182096772902916087744970427650585172265505375935325748612764742710436010880368870135903621506131758895766685157902263132568192387180394239604523372990540045641552796099268337030633420816646453489320637323428993490660098879046224335684080041442993433192648150688424914848623363677821395710055406599970449299216024207057049850304547009608875793188274921462612995027394201395161133303791958410640067006318056001158993392677641184714520490201821041955304893893735146192490690450596823214545161379192018287577409869532137177113033018281442533448173406002249357020892338489682797531096471315355455216846103846145338678954787843963144695982890576852283509062729853685068052072674377934604249313330733307843142907459337062950265933794103529112576611894061933003692385308010643237633108784108683150490645749855413461253535418175508858701162974141324909929769950624395909950111548964274555920486858782869128555479371405842518436919909259687882590903168925062120062964555110943887504572456208067348081914509203535794224287823409584081474712134927757079317745736924790010060732971129033010666397522210683156974508247215275801852280101266365456520645770119778522731542365547423130358737515043275220429528654013133161869009221927709444539631216286448530580817609213924737810602856026148208075458532577369871982769900663935217209413237925591010365154512203065300090343053926443638211499927489342473297258019589121034970448614680284065338933578091445967443455713911047603431137882993723151073308878358449262098633368586743245575278307156131982738165364851324588964635017937735747637548030721125609172394614892134039306234870424834186695276886458220948496716319299038539954011203453168849126627388452000396647026468829055346211611951033459767745648847273611408501310379725571416423766725488221232378603026334117029745523427319839479324458687127528388385811242538964189997745144386878811403534735511809656555168928967234022176384298474192532233704731958557003674916827700476851016958533857152255040898533320966814818845741470235003483907627560881773563177270441466349987326000143076872929002480702609060841911502856517397729532990596723263231863981552765407174863298013317083275899613759473494112572715592976332488617754148438180669230344659933509618186509041897668490696754243228685522467130947135015225106512121902025300456665184845526188819430728421048642977375579036730168225394165483942751761260094993063796069586400988458668896619164610112562332767883083647509703570212026814529940299434654678699734050921944338509276614611164127594916578276962681977283112108965986138568625703120431925854311651581003146464046116270968811009819966007017509224369322956016034720162373939678781677323094043595845353607694504411494539785649957715677206004202003249935797813545000067776609749764936466695028785741787246622714781107298124022422461458533413375977226344604606402238569605193706948881406705752205508427243996159650136587992757967360316211912805114145199744758989424423889469449925302990349864616798640739574889544802756758336499433591453559678768859192149184495622699292481146682123500888338770430235793498077535070977627458225524113079109745328501669492359232777261817041318703806612232231365833924922246122363920017250114750871655553219314632694274489743820304793024527137152669290113516204199891295079086220519636435358579275548547554979412535312742816011308130088641496444277455894807053532249109225167862577367748813440900939389078583682682206919728678844807144870636063869291001901782629580767599206537690011898271583058624377155506615076113980959679487020035260269632651590777639407190116379798114428763303140704638339487297468911305276568516265731388299227380297709435628779964869510706685935167467122335955277225822162138898806415473329690268791860005183380829050148299913736940312633911398713557377589621783797251112018289452425044576814438894691229981078981125526070980152121277539008118237990242245682437863796526650602526222677645074874781645930480667735733731812624615647497886485977786251811786125755604249736695952201431714916394816993608151601864440879775778697525029998528755243640260103075293027912508222066544827375376013214109235576694120515858541717329304541082717736063307361454021581256236701334747083480163458796248375814651276338398561883318771985307123353294096398507015799683889327590043178168780159315091684699223456585956700748178415466381504251432971537690982207978671567075577739866587339453137745298801704912238101178026584363789707432348908783970114705128298565900320226480888055310936774676347341478087777858024350224202167158955984186863937189384635774362055716928730638761267387992401223948012837882148935439312083154131154151935868218524498435075265155890344967255745065821590757551524902103960282781470543133169187583085357171028921421748680862006856151746345358444628309876488938161292629844010415882251549534407849425465121948358714727456655374191971586062405356242482243779778682459831387479788516771995732654910219242427715752507163167478992531956550491202013246764085094981301074378425033722283752899216387426912189632481703795434336681219900701854674783796268970895983974142063639669720863940550632160493111536084659261377820066735361627801214411709758394818627977329721981491648832016128120032490489129683605431035591943365754631262469989038185692294967787778531672312303559685967691265583276937755510739518068576206605113871403608490806492195559266286774915745674961798143675511229356772364667053733866341536875212060982964206508826500067498990742544433986063599126751945970082403227274985561968308324424385795438380428522654948980729574166149527470835605484289829485232282129107342051782359869708142213765093054420429699639101344349082926665349923024022139864137496632283820090978189900353067246516377261336531593240700882251666321636653242350224298693580409756431641895529861504550298708733123658856997153972877468844613278308104756692622445414156925811470628254981624826697102964501547112463510089197570615589034425785435941926122756921685535129219953326922455985830223676670929191444964395801071635380921784509807711568505383650067409850617916369661516372504943806311949078150831126012718861066901390524321981803614691956682573788369545625051893330625404932158816978163081718746202494575630633511408374550180547486090991339437359318122340502660054424325655773440811259284683202647015551155361292368603828103861010617287615659453466504956858262740662118781268884220650657134845929037823447186016877278952558367902646020502594911752743865288061317929060444450078129588243565969058551617574029633148881877484148945740359329471665173565957252550606080031176805387142695228194126695118801773176862385417154160605662371087988262642408602180407615136710564316891640553476267615538588474031245145044771085150457052370136747420972513058747777688426195952634825161224335358004819605527324392571401728165217973066039316561165012445376439172544173172008337854232282545962554390508338667310172357302151851266688861506586602836198973069280373513607433905168915173527060073599731400710816256978535812719497562520015006716840436862827726903948447018841587734770607330132625466193895179670467034571844420712206941921731861740793602866470405831211073040469695716319991439990705989702981639219226896054475856926139588939340060370214784620928226776549333236716294200368232193289820524838417459920833167731471515669862335988978031222073021200972325020253310126910871660753907225673091436584503571161636938354893093427530997697052519033305027328259915654568877079393727798680019369394354009108977415584599184727577148951524492268451884107706612578078878139980398413752736482999315590872798840667455946663396394588499228997333359543047122742841423701487473138158232967434537588185515096664059068550499027638528255696739735158350239107140476229891657836645258013350862017360278309352047514742859097782550047113123499780393597421122034071209136356785490088834257036188809599069267096912659851718698271614114560778833364544498524052771217372722013321735101544072731298185795983790913138571581257558588781429913114696925617969391379291211468161441362784826813607229507808617402417779608152204795175254076551549166239749048556626914706488379439672984473381567135655024613706910620176019208450986865438023269280979821538201828534466866437359181020370459510530257630781599192153395470629536547567486139640849613901825734874020063394359232388335916460909862417060993594690864450782241950381741122529839695722845669819309541607815446792052363755721019161829241620219876554474196805897342915362109862766785819820295670374374692058414982448088623756574922777539287578948187625569678995166863782480499614868234426616305862874040919857940559127657328484536669738202260202933861933068507480086095529790531392755747785897887159622674714955011258635995335858167993755704601686867371932397845161607078909736195031345179215051032910926398173195772169299792017336932885231170365080005610866437718740562455210170911220050658408826088402664244749023092762869757609029551421274052427269846697797902904221624210486215778214324725951956764524636493209383864012229303191357233644362727399663219383349120645008966756028507805763383040352363222647410316231951482884799434949610316897467402879155737220879029248990140152453343994738153528572796481677491200657688159720404934638057050685364714847620518013437761626313694313523994080387307394381734809437531759629333343471194900306016935679888480733059494820459542384657497532786311356191824908370959761894580860075929973370986052320807032427607679441396405385155830501370385452482933675364316664045593028592501172220771340180903416664141842417316954114851366662591796992251336825412431691827414668763929478918232669551211608019873773852654487847930650717454899696618349982574209350853635288591116746215870042471911658469197814668627884679305465352101658501047915017051248137920558201827173948875345734374848819782656029079369556579682551275693897135894297317859067576701699313254049025827045255671248080964621984528162611522636473366105471031298356899099904492713283336322086742778721162438527866566275711302007477674072590413199862787471754455847364724106867433401045528716355356867210482699770744769981508198471429428341579263520229905176357404311795700088581206831586181679568673630598822588841128850245142789508020028934586613603468882050108446280662306932285324394724080193715585142120229203369130661469418878748567174319993613451892999939836785158131201793684161888887168436404200305348411223813891116871120161494127537131393220367134661854501926903734638328624028419486160012982582983773752803849956124138053747903213416468266782371490052881990292103521570393588128397119689455759377389699390610761566343675879551157574860316775918164860495444876537912447834824945597308404156010092645426956776507524044362263424942192405259004254390693831284816120191208842425276389517635681540407283219085336371818413732753927088578274302265032985145312728015028589812039369357476294556987656878309860703259071464507898448523831648584140110442181249573173844533656990223467532489275308244486322862624671811663093560687595346916167728471310633748323766873693009912473312671696090060968530098622044198129114628522747424604924454422344190165224152960977787361544726939179893983466087419950782977106461088895844523864949491274899878615078542592504844459333165876101511085653394099134854063373551836674708100514716993940830480960825013737396773483788208727438237332740815798402332835355302533318135218463832642642195125526888455224984289064506076105185401994687313963644239584861480227041295762328688572482696025525529070240015857039054752393634076077257199924260624701007110270966680502292251958184224463703609855243120231890587633012932580739263978975742613512500099074371875592687520302416131207410071161120077309714351681160887960684995692346848195492376935831651413186155167156613026101947706197978065872968071524099147750829702519388233017602962398721002628314282568621660389331485358441972442511526857019723045473617944084650515961485582975448435510007635676493714124680375262329497453734974157898639684102958904065005632503083430530225552189534316161649108816623155135784497954139426172516002391791252592617404732721734823751465418203617567307666872132256283803373049114349303357229034953469837053465978238086180860539930962995676336124087297077382318454959536909197832197215807158264914959715444778066654700856553093665999181160093016265667183915069765170124801915372389110773508761920762651417766700196869088006927043388326287597988406328416881502394825527050041346698291713815038208219855111156249406838470558505988063915614798191511206221611412641097604835166692871092971669567520623980475799425912393126473040148319626516185914670473927829776748329663764658941930640435921740229484404737526710945293660402394501533617813755035808418706591255419903913843905279979601981486396294348938476595700550912827518991014213359254534876079146478607375416144139308593500737730387661882786273386626483034978070133054586382035731809875908227464874964832639098999404836926402504882307559675517486742587181198277034634568542091922756801139871837843383953490012693007840838926250176928696804198353252535239961541415412918126351477906606880891378802300237257947464097396121606313267908553550500480767824962627348180921639198008914682024573012096397879403079771322538775047877380545286321362012439499076636794571555724889783463512244849109466761802165351051437208128630618203750222257813216445651639104174731308451500157945600396514496627273520769315686125285931594101117969176475037370698395521271035234853064624572066448179898369475567099159456971603162421258807404909692414303531473151964492717406911866244969748272371005486650481953123519731824363480232902628950391787524224035230795047175077746264098627389876380975897288567511325697459074659702645286854932577304000865484568452723688908968488404801635650167089766709292565985225517921812051011680707971135573839268547850189324041211626291287922015972920876014602015085663687971312351341446900356062787577692640308906649441540403634330913943755830317112808937081228971829809811211929032716198428732367673184712229024989665904195863301155464858404744177325057366561297072207352857681949459329347688562321169558083596186625327636068828812650135733838395541940960551288497768178287802357863060055071653568282424726573561229655498331616921407881947306057895181912877271126433367290942944062513865493893578881339445129483724683988576445137009969668908004928355281310249130653600325185516960129243512466418115243796418454286528161955088241196960058488589452538038215547101175915102407832240645467535347037726419588506700383976617197915694281689188464932969811639631540587060920183056094559024655996122991405809927105739554539425577297568153202604787057037144789220122987778011075340572741522168960885219391629980135776538595232521427830252361122634794356400353973911968851394849726128754985672730187129129572241534138342629313291581040312464852102518892270922950888190163233428115536872433924686351280783005240700273096284827801080028112695529772919011368710587496368031796206854053071881832001747633478242817238747579980083256888977426217427856511972519431108762532676727428825251181027682108100955002635053198320823254233334504081405229151296920565632139618720746462049567120458649820740198047124972890015825856781711314290780776741351470286262639904448803287013725169577658873253203695155306776338555905567917728599714758587995266779872865293583319525679846044886231175459269719293496221888504606291132955214990573562426680269171701098519004397435589927002529621246057215294766276007676273865675341079840589850199560770274002783749197967750833894666189174215983080160493331405168175747723374281735304115103900427779915715663500221603861868807478751909572089681118471207161679946416913746417309144282231098481757945283121195507933564724801024643842683933122585831579380316559974784415443662122897672076001485086901371043678209329030995182945496209807268667948161945020083981693816544445513470977849763567625784631117098968535049296807753537146763646833320719584731572221845081851943697361669665652076919826814313938762244273476096059850414689930375685740832280370136637982452597237544106821894395194521465985085741613745031076383625871967845989813495950581452805011577674825895060292670142273740502932291189590185126014404085441957338235193049383281503533791877441050112846991435845169050956324674621691019174047924484288293389162588270316800226441796904831237835932599130860848001995777411413545495758433305341074614505488478993289281520271948862973958009828430586260918971863190707050533405452868764668519251879452540047370976218163599431970606794927943658169989206025997979381148217773381038929871676432997822300515265087201345679980936638850161426137486484719002703675709584249019661926664362473757303254865649880301891251167802749565897044246699514224420738689505797736170266136400006736089183525770987196364744479823875818194222077631106483019671663999031648956287921953100047703718549429498074795310119166757358202441009286843853664137139456025566149906870311859493240210755656908598669201156550677975315808578952151236284042814466342267310480121735725085405417944946451447486706445108140603320287513899843847111359320425584407300364012883173691597373921882784953747030632555457532779154113039800736637015858726766820034382869953242501186871096793113995308162366818837497874434854424554975360411779573111357278023724668144304835134839577699494913311541062596503609317359848565431290212423183603744959188486030673485779768615992598296598154623513945999439667937379044269788771889954093927262544330706110167873063534415734057945849376361431427967891012401677446723981250396043273946737230935635309271928478489724525723982649996662144842160540353062155187777689555116142484595364879655491009392599207608030548008331796979559369033013875859304587828285903357416476121925343100710621203623922108019006891819517794760883570153605197710904923490775336669478018992835518132565992157909659705672469723281708069486940889216857637640244373153609351072145774567760747965820613174514031025036774453929934238384522295138225571567512361955033026781003428950364127007949487787522956826525044314809781750897102572506267030333013971182626004725851358241491900288303268235647414765140931444957261396287534892280782904392472464035370060946115724008170152339851773892141117196460486519056440239959543605493131626198677745577915386774934949320478834755296601069124013274200528326030486083565762501107129541046502416036861847172025767928051336257426299685261296041353071862895295491651427392195535241056304152336503998720285390281348571172559036874445669057887843995389765708780040159711564525820255193159903898298080125886894295991705528209361619765552828082796953934392845050057902548996433999588416307378946988318371545937665345068931226663077975817741952497864039272259565743172230410023690961252992195017471548275979966743692648179469625686129558191640380373800882886370695866716112511604080942758942412530196810882625112329235957766886261666986844959414890269452026634829429918043799701421702171667391664272804725199180316367819154106100753124376570907714370518092402991152210431286814228396556879878630269864335121504557279306417438217237793755454833800521437865331082854206970954847894050405748698290994404770605221116537241161558023588724997814821018450990496482710673987616357923656690152545403382819867755267902881362396648467725474655785059392280025298033803250686184695618092618664020878652133719658419400357177637386047718728571515854964518002320850407256423246924309874218627094511086483661951103318273239520219126522808042825081806646950269243394640633762566145247281887124252264418365816572303102238635464131389231944129839333102611259780463248427661072954708200662439313701588702273892517487873710003041374532780338629403305197447711456406195000732908700947806402642952358813493783033063975662990345498054247075733350517206480834563963974077572746383645576539021525105143556307889075601508740858749213443808493173198768453385901049111876847749651333659232171845220189729489292805107407949531325246991492930534253074108999519899591112353149803346256777407663384759258125238991534459811804607736958075334134032247923112631800612549758933957919720698982857356736757998019072063807005723434179371873294371462306538052688097665997287271228222642575890106992432536120552875163600769618128586033241268265805192213496103694770694487863222364365692554338709132757857858282558285737967841950549870636645729843161383243956293075711612153976152949441155399898962141048888948716805823415359398574334057684942835029145204886639551743708864254904571965658146492428520834201673593565062566769571036406712126314920618664090776143273612774668615471371266367540745958443729199441732081107505189157728749019257024424233947206976552716415068889869129045601281198289497126423148458536127367522674949647518660661548727231496145318045233529824541077143453456221635421287999867931147627327107374966641624438954900130347286351474552174993318305767879765847452981645767709944440808487323229026695520440658091447306795224224682785408779136836888043426999813509289827067384327032969403895712071855278672567299485810375223135873191954071577548692368635083597667829801078146667394863299684101934088371777332182227136889247822154529904192869169185444859626534708116493100857706816880489983117286692972129264064238023189335913910719264928269539765214383849660446462052092340540122034577126290027773193066145148666864367781445284339640261125099320822451954004570228804076264138709229111851343007113990021940186574730937959881054824151958189435384600293808907106657486545839757518779891440511643225998658536538105921040468395386681171072014721669315230867487802926209054729362798921688243567170452398609706603664024284263262174896696978033185039519831685647887938732348600132545129886256168561082804364170612728995929950946000971270349743900118154797727934842066178183131152634328131176324164722181619105479093201098427495474032084176392967378165312212532014567804299468342138778814017941657101343668054698067414288035044154875315397999808804767157421524399837823131109857226313987648139678306563397179679289748834800060021214064471556192685249182582942651202926475969082340650563833088634345360252656057123052757862605346957094980743171295004947499071972426142322879820598659857779903497068707616239692245844649363557756822375612938194646408468454891383852413108632339883861404710382780139465168105378675609592136776683645658590230400297780133422802580600389076636421336529503341911029736054320759723923799405521538923254278444396375375853029167161459240378250349967300229072002431521784201990024356760133005776185624833479740345298043369938614145785395012504372247616738456773259889517273090126115225987085742117729694333335690550021731300637190690255641546875681081264879722184169107707635306616695324029024804206790990901045406905189261000061589754082217149469935293290214459490975124001879347492010197242398148817616160920345122965552747687223323752534962498966032639606574361387969472621656201260918854806878994783481085760958904085851282808615279825296022509435318464076482935380532950032028942988501210403185330211074095600057894565584771381264899845608339776283153541611706161619178072790460635483916102046802319097964439255073217177355366606971051875735484771234383382164351191563525412688205981018088364386408037390971937587768308657974133387865028906830977807106432800704664689282005320715373679044353899091819384085345374998062148512239259667764904928266695141019694248529710249082994496324181170533442635233661427047468646208432276786736494354165425815478044507212758688403778518417287343369490194686851882762403610434907237032744523308131968949758242605092847218784854929214246037819305990339751784773959759250293643723892025226350175082860847423060608317601778872040160161490460589490064250258133234095253877243680718719791555181232903774023642984358654790887621877881638246165024967851530371287733812104494041986644115917653261494494168358787410991112689904098892787754239417874632081725051326685536493367983090604548574226976868743005169137031418133851086768025381517631187595527248122011429393017768944065208124150874868640322825056781350719206725762093253554708266772519671697162357532987284846937642687243369773555661486989377598421696434865410535826286365522783493725656163034478296593876721623376088765707324836430302076297528685203489348914894303003089761355657489977155251684345023161785419758536311308216024370261137575194060907176316000771095909136035628762719942930360372684477930805385189352985432831470299799502225554906511766516028706247804711042757263624737851045957532237286137645430996067667016124696727164696572696464998623872046864547663733581514486709902558193628496998719857649602910871054251094298134129463533355846793021513050639541489108152251149130512094784177805729838238469449003425799230034198167364047792008972249300218007937370196774219032185221559945360969451221555472168631877620701300873942424892538809787869300543673668777916554727248982176018851026848163150629985434091304552497242212490028709068927142031325856189737600563321826895722092636695450074432601478935170995553697513175898830971200801399499992721342217758138184798922116569411723763683861158382301224792382996879465998855601572934297502459214003032707908444323207554736663364568547951321890745758762827883990201207623003770669097752025400082630481177420919582308027691079768736716569210360686377903272228000620473002709767455692159973534413654876039474929522245523839014628206179836098973643623592037723378193715964648719379526421792226645227577625202539542246402107205210297429892934711819353048510725631810336108445402729503205451907048322671634612891751464998730423016428637653811192266764907989302596447816320661769121779578583865903201022165082504341563005280638215638791096488200080717110177034243180269987214028880254638631090777271495401833948213067988337068611225113566975460609233342426231211431679922374330233023708357597875631261619035835295641974215204718415881526244630282983120823449677977127033867686108877174091893404746944209196317121442720786680663196894912153785571939596469622588128516486731619670400909258042740767488216602076164702794352468257929045639600574571066279923996816427133406673043361943231590467086739257877046495682201923384864071855209173476170265223844425248057968284758596092306606244310027269408243783768895069668893347628056698348425222427774846949712374063815281057897037651770775027508277423102158579324009270172313754495101266791663065307119690062432513707803238887644193451111162898865822676601232055100570080502293974657944121678697720183017793751867651707109967469044547902209833960714847460028537644214942272642070098851396931784868577076910738983491592282998541196142021859921849034772803173277837568820325781123276541386286704477957953806522626975354338820035125290090986619066807996005689800831694361200786264124408157296464091255945692387985646621392905603030595890742972429037536809008089625680585875405991508781083146481059946456882485425249210416706580622875117832489788929697055616455910402799254327678999920019401376849688838606037289805576985672151417367403918300663595205240182924764730197679616727453621383536622014160446704797038964757214661246521742495183780183699876600066178348154715181982486249096402081769599817829122600358638020809441813897388658755079440216020530698590237972519973662356606854605468174190917255944953134276067619073979285623079061771395593284883817270030574102447319074626668194015683346314230258039407762478719120929830400280537179062617083030683406378743514270645807817477853695103568606105151117108272781556477113038643464774081688557560388471974056796003767365737966187997758697188085019015877152314544408516499648712418400743342718046676066665011960599054762686055752295896007594896543657242368939956726975482666895277069643791028359006875073555318601707259188340589704696118061135576957138977543713577776192883683865649965782268574491528736008307641211351460332473988098175956432396136964168419822850105720968769230683524154847480107187174155129335463188805496408379381165854968015693981870752812380792301221899059687330332493848087650547295979147895178567082378894587041913691506381013608595379889912691156168642512047921928092911217412946114296080007198516513620993537679074940326033086825752082702248898080662495696471275338330500429271984668621508651563235651974370720144756941092891732259542058884656747197404536265962076604987583491677296021148667348352248977172796962086526233632446746643013140119728397574494041306641529587976523668842590957299423309931373259614835237056057617133182838682569702276441511862274359447030935730266898442090322544554702870201617316579046501246525590105779898771703749284423501596949319893212730066410092198154925628365423647458880988611199164464684557990292624319805340680088501444526768394055436640062362694575343989953132396073281345359538481352566614272241490374288335464067390930434571885242055251750660268823430827360411413993064585279996392902889805929866774551799571010161339903262061640414164307976143335140499483153483962400073141678466963847398138118537348853566457261564871411508486758569467273546895268519332706622998610373925746436395187647186172768526255598097326185380210358499774860340076767925600302205566426294046404532012586100102664725516700709558981027409912597915011392931441527130330389608000453550248414145627764716026021519701817840041039274039174833941841117196118971581012570059199613434026945355075588705873576293714034137147693527189981407279626252429866206538206925293849302306089598151898362389375366795184943326873316397419635861249424491363715068273863058280889689048159194113195604316979113836472955209428609346222330487916858466991539666661792590384598157764125703222296668992140022985574007873683819854949036616046484634789811261672938144944373828692351957994425584602797381846736237685948874121141165886554334828386182968504004305865195101939422007381809963238039553541065368710975733960694720671689785575664213302294963477757424587183355810769004512481302256962330128549685605102858530323852416764008100765964074283711727407529536814045508785084337505574830937971755877925888653727847097253829674507085266147554578564894473321552170616283430020231385738242387452961692076060208157534962582586845719367081890677208455579421564180358911259070834898958865531846177194807658406392705237143825860175929574447441485654619234598787027351689152603649380697451699722905571939990491531626704705554425840439766115665128507671763384622555062020113843810013957750204925968002833805374495263853978139284012178417204792598467949716218824784435252461590996881788238418353736906776650609330777089944176868056738922772443657978309686274106081191565068162141485023208471775105006510803838227539620855585302637394873918796645075518931614265881587733330252588602646104425494657966324317902875808413717336636230116416928297177321064546198915525917722533463273538770358000721651648277696772642201386230511063920637398725043907259769906825746652860186385211066264113838001027368047837359444079555640968918170768969110148876900324175286616838804649311249303596778929682908131361972233981307047922859703888157496717704424145021220094570978459527556641658077780191821822133440285170274687137958626217735846664535179012370336471064447816036427173687390993470316370163441833009999877174386925330731209589166825900654601564171291622755331718660781903358584114353832672775067741225416997925053011288563313808892258390456935007507067647295361641693796593041656258066939514172827282285703819192890603274381927058226937537902230674627518416666322935861316261383534665287230123095751869399044828426236491948791253958456318749541106242624743015096079231144413135866061357048137153984858714217397191729349627876126691255297839306064599265166730526824391963129326886190885707183418015323873969011837605179241381326374604434882116489815358067431516652353295349156792337650622101220606969837313377912187276098054239296570169553805062023800007202087053505409091674092267430226996329448882511033200502783436569619669813909952234515846155324672574236736596515748180369071522703804813309872935069638987907035257114999819451270023920917334191988925561449384131977371774972383994884986487505846035650571902679179058294376762286297109550909220524060834254906713963080668356537562924634374899932607301426209876386420683149598242522222009121476145113123172557561293778416099006000859743367453319933769286455468022536682769968946903429443960635923584583174269429911212000127935156479518398710491199188591073329417377622599681621402546049703444972832904133666955496749684840716205167609263126226774096604834660655207045468656646475296870820861330757452639931348288714496165582586472796831786180042213013821748837125990505028545231036353946871453437466446530151169218321192164353463145776123724062469498805871935128940904357007144518432883704733528006809940938082483137997677699831398315839638594933467524046769877044633156081630342490485100741299966708312608589154125291017122892716020344188822157043037642046831879679333933277748189617285679156242725500387396706755441049716208697732564498572637274789014713075118196831797068582190369540677837259026705543387634517484880020086499946528008260820816730431907847826294746481962872215801718324068608389262217328586424689704979796986512292544845883099801706962446410812135187446095281108128932817924012207526328960868461939789929666351718212004252957038628437419220044953265218361096175695569359907885316061024830719524237754325443253474293663068421127066250008996651916395741246447100299585184690882024794195826728691061344546407259861216934873956390421484341433980005102086626757600223872442529537763266587576104247454405070275586254042777151043237820828900922393982166665799905763936216695442782801940631269628260451517047528079685586219145379732521694322886902014496865320771214677552087383392328345211120770422709257899480991307078185088840262631464531400622786105480195781547680683900949358448163474179642377016045104403290385538864366497586608731567008642003089450400517356595820623525663039536756678666415398126717173213580721065268111298392461747593154034486523473619983148055421171422350290020126110425213617317888019687052942764460263507783808617248261441804114056042154384890602128632571870217175511728036650367055168166091993412666845168842789052360074649481253044992323646614053758214740348281600400827065392323020310191968217278120833023833586108867412279145965061716184757487761961824036198688486041780453541370040464714281117682503464143234058248652649349905689927658163828534157871756187509325118239716016109782610415481089071971872034003776634668516652005813407461556956397437165621545254634479758390280202309784873441844028378202764922183956941579421718294945996964038645602163466025596112478961139146634254156336788106942127489577875805803982406741980145423264794266825206123973250442146059860505519115587602653242683065127422314565492213932624942939607089246527078608446306376130139310163359143496392285495928360439450276973536634423603655813491779124625371157512032641233193629151502177186070266516634692248845482557723179808251243589337652336219427432169643448514738139795902274051766557531393574085381502924528059660283170568269609474822208494927656131414723540475344872624198957536181043891903998630529314223015425659421312904252168788015069328233421065532751183884503656242871730537320652612944023228214407479471085226010057576978485591941327294669453117946952239033920399969161692874645857685932368504055757484135170411171621862565096565350851085854236397501277866714178099445210682449877712505168510637178784020381807719010608876411386736448686226100106281913523268091087596569995656386774329599372312154594637746245198000240291568526964661050984464443783489802505716558850161622303073659017266881308697724722059477522276029061229400765773176894093418272321994970576787174719342664429126619997631417547136819226177462228586879272337972755092635318393111934201141369325448758736149292432623557152990947264189688309551154132226876844845649518193702747684790123470411488389383294375728382396596521554836327036740096909106736607187650695989016733529111694769745500044938859724240126775150957627477018510570346795020158341853486271068891093369226607280285252156995061608673039931610260165443547491347486174850105325124225887881147497829403909587768644513670829867892322526593034026132293086556049207408029350885908649814061246428198383178875363528588715045855667488619919134268753914797161001602409429277453788644248516797020446666959765037086443712168959113705306061788115489448742955223701288044930951856673401598857386373369308176314522454002863832732335478716925841533290666506077282162446381883351216671807687171267768849393718593185945304692024920735636538658900969933356734040545527393148989938376415895060764210582382463918004595279271178483403709759543767991336185282824519686908569126993935053392267080035918543806664833134836403432424502717452815873128907341602840752637533789431522866447456840983906499014148348948145261475632948658602016434963967113795217301146914241382747451145202488522201793420409740489377827733655962106862020526067852998664503877028667752736889312174738856558158231807870213906733868968266750554473870341595087226463314895951436487627615177399483998712652660579270441495472231582554258680728510742883535940834446418402779263898913311964428592559512599186907711042504031930508815261189095916903579895383343087709609419379995227259709198909358374513681268649253577023802946157708766208466948530443406294534685044254082615392708135772963799049167663783940885844678040842660865752070693351731275772237485799898454017235376745432230802954393883746786991931235050991044044841480321440077295671819597163959524723079613913576889373978418985575060013115736194678394424133193385256699517008035486894743169308736807519243998267356738560753703931767032145797720954381991375087633375222736126993879793174086008961000764044157225561976845667058182946220636482275717917541159518896198155446068196234001369260093560512272894715107704342291347085792880424047265578019909444799615649592011800092818745023813431472138343529875420369834677579669702989115082695997720887989352972730897812105219528227097503845686791804689127646527937426141287665635444829041513708740942885710827700454719923032841123998820566145423832269023031109405345211165344321342973916295970531372899674211671297754844448827109547888013131302440213146243626059405690782228680814547439802655040896617226212177568928472235386211161901948511250141491579719618210228125909975592528193133826260004707089923746724520474514662186097808685300257941471198105548920217679402006725607716110428730415422715691381727010700348764164164188654533264427754590915532442779460335692644528884966941624118864625933214326816653459556598767048914171816748435460835019368985503700112379288446980211199722086446989570826707741734211268029572112414277332945237955092163294318134593210772786864049918283300272355886804224557742656662003122279776144854772679038727764616219731003317773631317548051550367290217505400689755374243270558649012756542867762289028400025277784841166592362414914000724023953152587245232744697329952916444488542388310400974206009583951236993718520265564970483516377429247184479103349244452870343159177834949523205426264471301689564046242004770741570857561964416246795500437471766167195973416748351698175543243968065192336367302016135215831355194218570496735861664691025980264050809347488168132828905504173954864121681100089726979306733653761298765158857163656989216496228644758245917170535506866788489564502863639437276970642574348141892372637884102696400496943091528101497965434328423678441995756195016092060490015164693559087984168601814923913326094005193464177654993185188740583575372350957894469017405098112659094260995688075529109787713360579290719694336025775061772457872702332278503316289853868537895749476645197428034843752485133559211140368260421867248569013015453514636119637945229294033395304179243489614003587605934616862591797190913734687132627705426262843693982889012848462054779745810777814825387911126715182856683625666562831239271481516596459834411792835629802619667248355607741578267823755240568088014949712717933344180024542813688707459682217145248390512133846481876857122683018092423928561961870872827416615109609122386933953481367386446444261101481861006216189178575158619902234298497641257030228536424722968023422299373821080301752421473394043873019875722769609014972493799002591163054052913902470800129086613155827633706873797067123422863772916590919451364044013660473320586717915823802601311951272940121827618067437597947738337293311637819043275737432606647785199372093282159692218250740070420567513840661457645589416309043463234352831030507893729427601122475278338792917409790716312117043276196880926088605113640575612524964794759611428440549644000178234149028176797347769763811305160240326462541483615675717570379312190121146519864385395311308241250177316149817217712843443016586871683617020531742610886896005518532846255985713928926852891821434468832800907160334267426327053243022692716781499530006625787690271895617753493319050477603183403422804857331146231822131958064893850213089406872809848062516363168684496131716946172305723853334901730151414973892550559634123810031890207468482229954490370591425123670153349391592446780087857065210931077814900382190237836140835776577522357365974489475285348892838259236997059240351469126799549557790201347018470341387739758356791158682454680287138159170302492349650099973054183011532415652337424631361586682735458236544668000579376056532551288381147393597173524386134374536005285202132920923265101568839207872158704384758740370460536616993263546161832116117015637744464077055449291567479117085181843736735705873240405297066952399619367090819453583636873499504344601071039503732514671054215919195339432671670357562096032694445939314216250728789243637334516001327792109261976952405523014396758012404786809010605390054098999581712554808774649138346969625455407826932947022097774352788556600378049361069400041278899695639588429650773480478914052517044427028220912671413166586132025942109464278180879514999370417507524794630855462357192621325399859955034155750223442188985291596311952417706538732743517940583725924730127207383102269389338800357393406687882709362596443748200118184042921463421737578202183620932519934859467578349868622384441681676404190426050098396002757476679236210756589776593830869685704472808641748919753860924064305474237705433995116964779720936007061209049825863531043928596592678211661958537258370472589778746638683314991438739137846420554240393158295593805503312779023154209065889141064031918857252521692103325002676661960820588919648411861717883473285934058960286108854099141138950664136925330748453737292335387669723069133827360884963602318072312963599944385623769308248665558107360158121129479630691322428110120275529038601153088804324860734570008935073498647828341865920196548325929378747956104704874076070091589113202387817166865741413871457258553958173951445076872906003578210091128044216480097433566031734354017020901319376400148867020870482653850457981572255307532902301652224482781452479326259964276982828544510068757719325763714453915813967644356788122747505299804888004723340039009761053014966066249115872437834822940081328994121651908984670481523974232909587978264154152569622550072392397021902439874040676709982496782710391723663167670721459350019893320367208003491435807000795451011951527222961497687922191535709771291138962534459715914683816561868453138069192951480271670095031089725017875142394265034212828026275701191602666730612054180562193389313448549174597510968344076049392821394899498230731010553584142024321204431770210631096891351084388412024744745686503799208271846202308954603175211123782362352100398377053404635796030443778631382071460932557592325454740423801900188450652687260398723328467725668957817037452842835619807823057462747016530400003229917532579317026783033633679849060673623587080746775359709535677481596293145727910310848116659574760613614916840196767427211956737680970736902674603670672264624512813717745740708508817976455433695221051660821929887453110885277678706680983109246365004474935553992590220875213701622487698258748102876303457772452563725077499738945188340731515344815731837646888922180824616896774521758653825201980299685456989496820451677840370892496566978337026511904660914846823048954739472058042215371729065532952025608099310402216622131037750848236660772276388766524041763830902925461493027695443719717781475104774034941271685698772680522002148418303660984426436135523620883470530544013655541900945634677216154557936163165035773205388105151637202241957550052949961757702018679069932607190688469035068309788404913385041381629753407639426074866913015200675036796141686108151710026316996477987795564044364962324947256008354399434409024841638850625398320711697607368161715661499161307653582818546165596588168942571649988087197771450912364083120188932529906181088738182013395238005032217524567941342100642458455040490998824930236741940627026844073224865986493865510140873348397243185816653600082774297977617663139014181591431400893543258294144912721904134137768897209913662641488574378183704827281260906564739821708289944098557231022557639932211140297595094404213025179232625217006958956584999353044000658541188240594475115690763270933768982422821242558283115518626126215223721575538072272366197627448757152203122294470359370196602781871519440639182398174279402904521628639677701179353951263058292020345398123836447587114620754035813156618329252286351796706068056343427141353861992181009942824513346738701959742598068080968318649191851411889208237970703088885052411858404571652034442325174911809271773919176496250980120822255111028955674982817689110454634374002052171066552096291593399650091879072857077148310996803748513595604540449224223842144620056467833167820966319609626855645931313042984868924846967759346246332982637199145455077931410347667978593465894121502226318683362447218386079717478583582006230317178547007304031663123063600261687369162723679946132145651064668716088857148672944056152456465097236251179875021579240791854009759127390928199934113007463735624357674599471835735329259870356600666224001513549315864750008284135281393875754060298956877953226874531091672619024352160947584669597521702889155958191946659204587691816023790288060890815986519289275683963231049919638721527380515558574637357627053346494852046956323075360542120183366529976720061677488697344368926320354439898742669314828340105757373288756646827964995822339117662236384662611432915279884493376738920802051271603011379933683306502172126190142127790378961918594005115131185400732640574740998290942632579267874113004005247413839316528754330571778442055069575334944932898799678473796561882422922996783737304409109224728094244688921038569871288205491899947601191902661696144389041731846087911672435984420923799252598302085083455355907418251208505545763165300421807647363917734339991409545311162727045256124719071086950752846934573768956463317601016195381940847740192815804975345501344992825107326154166080492589562760791878543864054171245375588771470846257264760486213593204079990790269159398313273859415261987259296810287179570351212503146576064458150119637405982052524779511454321415140665530041876855670156031877919798639459213675904111317896186327353355970343254472844484415230631140190015023098726484261847054451138484053633759810433737938330026065795804541540784291372514427644591790587515377800704794112809034636520576185311421657206049981614390668789892865848269636912791638039812514883620739158000193074982565338690474585845750907745514285534644345384168829296464766021091565733804168814580617392258069045572154805355657353589382115550915208563546282207566588686147523193532829559956469212685917959899849336541043089252209043203068877506799307049616928008480026928120846032406526515771587864056535385229383156896443854227322500479072114837101258320069692622696794040427648454256890327192957332715221417861106453149636453750374549075574719267048346806779321355104753079152175733478325143199918230223164892630196246105019728890682801100933652914567036953357079979776259804001648160524663817513896527500621632617530061529569726503748614493579714531506153167076060488862428493033640311689795845141779493878364888047944416746078125452509589559597514325084878030115420294373615858768512359353877790024395275645175588482332359514133493252101449584117774986943036276876006048365624959730110994654226229032224319588224351340162702512686011493934724918811602790967278184460589289933001466943543886537117759199581199847748032395298435751975564400385789873229809403331619433725569348817881145809028782964788149599274654735820178654838268147007940998631947910456245064151454293297090756341203951243358231283888489218602398035320281526490193540891216903263386723108433279739887772853287848086545799628371876331107526926879467928821000915990215519944177305820730820095437444729598317741344432301050007472673809073898037290303448970187706039788939293624006648722838861074358446877301694376075184376069405883115314704873707546105244533771414167031679408020532918596866238028090432809804112304705001277728389537152246112277391588173926803303580343637246729094947431378966219033260249627676608603927755186955589395495381184492066662241590861507491894563597340271025571799253060320783222674172041293610926775176135833019226999148783056476062880964615353932757755018464611642283581413500754019225189170717584692090383014835589296308689690271050117455202708398588757440267105104220527725826038442440546953291018790673906928716666419917562293983038918647188441889480678285316869579909079717459686552871027497947586852618918873218728594741747324896487688833902469841572274367024080316522255936192876029246211074176903355204288279851477242117790149836673963301341711788207194604937438269820224190658507063301039776198310863348833108710131080119788677692880674557251116194032328833527375386459999200245841916369719720370764491637645630444673638091386269876498271507194935468350425123340688892528014898499057933505388950595539177796367981480344339113066232767007484296946723349110590769524185640096449590024222575963856046501612600480830846066414831525234589866032456242895272689396795284159724139700169152094794648389310616560729958485135980887432215090892858105637829696031248050934475042801312746665494335654440488948170013300337963714290241902840163174348004214271944759510351979879474282554305811995235309549590515157492240609504019482222916331315608050192210649874140714682075011462894160459088769402070041475722455930390996221143584922685468663499823279172638538201231367285064600071769985876763804215739091162233091089437595522925106057605538954066112503761833460793283802787335645292688463232136673954473205126853038231060136493906436104756901042487178875982321110356572164842730348110735965735222891600679019225875240613164823972677851192037338257544859329978535343281637730518396608363903550871260222943138280203491803850564963976054734812569489232465948553387188881545967566591888270825398665071439941975326655544133436099478927053641287601683321849459448485796826264182762845042176063913655894168827756818989866031951676905622197412244728199319803012439570781467358753921643401765376604708604819509699673446893412951889381493817972150465147920525804969852391354903000836117427982548753401098532361270702731907202001641207882068753619480681657069178626274702792117475756989808656809903489839945397189726721168919331857185438075859127785953479643073259281099903274479963763000407255105685161989234007995702172246016721874681658883030689522289744305499478136647665405821466377196007983891263587626416688816576331336348639219887473860207330477777304453074008129378877750379235027063088294277784141486560967185443200353393885950544351101233156731576264720745603690211207742756513434006074019857942974256454077549750235007782144361227865951581047401999886587976537347786493928491890575073721757489391513339887932935073604877480801217900977033672151394694448305982865181202129158615409200546662166501643194771325870470817880200080297521302869250918572883806232828919347917363430401820471808043729734718125885217785421009791221023453559791835210634506077430945180917885455958008639592279986620201038404856510860045772574358682044983652428481953634429736302139430345390547021576232501277421907974770055741690443085376190228482483651530076621435832562844705066880943542086195414779683026868905346344982067878772338017062126439836369588378287421104939267532493294852385903938252552508061757518185784026741022025171935244760867093648390281353679919352115262827220461892007875599286645932367036748459353054833834776268525140940507678008501062330999703372463239313965563428465001299797136979018794302351795192269425429008466102204500505951022450747530347175430609264512536012756929225715023544822718905650572855645959421901286082367617965772203092214883197353484158323556532577963417833647673564750751624384926958546417060380591937163487831707468059547466266779700961525897211193341400086985053330613953456120137392459945586668491536211317906519614426688520447260395765463480151585264091430182273446611279433498166292051788775569511284336057087087925485636737994936050660351546065478556549312905749346426905454430273288885650107056657097590733275122746632047348387303972066669024500155562442247335719271664456401901874217961329314573333491212878559870468633007945991705074180607615645074132787308368718181787296739892522301269681370851742080080029141874873887486571814584134435591652313542235453592166425798689971696532194887964318066894860317121839627523324039482988249370932851671221148596233327484015184202500580087372570299724830974590286741715083841877561789506663718400574551841988011702207310802260036800314018505731639655894838316827109575445039285295985654572240423197311657587761049370058060792850382330830338849351077047380731131000014001448618795213888161329103005401945106285342136932652135066054635327972953739049825978991455053324009419914569669766899364202148725456195708147025835864982492516812477719924520783968867098049222101054474946269106791604073343636216657906072535513404684875240316662013935207731644301709714355702063177369719628143683567782512963390527141070458782821121680354606294792961516118720445711562949004925338445866874940555505769894461281971779082525110173050376448667316521590164278438678969319083237023121002849504479546207217910216806978252169724788637349510199132542556818992495978681642738095136846607332570852333687454533100890059716515617865762432026777366666514190339012183392084372385452642810099105529585718458317861694279066726676761316706572748952402933375386803967837102597386317137581841470727806125086153937758184249918185747968084386840772167436267558416846520311075553854339399430074321623274800518449539290933711264396749725487410016676055882437818676586348228764987358934606100956903322562916595154721098099939261869525092505069872799257656462066854514552125103365724123234528561727652442145974270034943174260428739863698352272742640697011027588948163794374208857937607852390002351800164597336820241813599064799404009082301652041223456291955563323767197155853133222943329105175547687629660269436466497957746862397484232400251341526997915744969896958748393441618242242924259707815398156156066491598505086832662297238787627302667313624842391952773511927038107162964159008018958041512238360179517067578086756846879552499158473951389996277261652119615460914656248650666618755422723989440562246898203364905152080261025145761076105178342572002495256082248020174911538018171820498360802750467072523974078906675216979532031904839247775437036562463415790849086752167840534206782574956410799794049343217864689069829732443743540925954924657382222667281836899896936527429022281969426528398859414726526571309365175861043604117440288374606785184687933727382300845996979837196155326357054973665468848934578892727520504708613485063302045030784791673172463505685613764086297327277848917211274153684279868810661398981300578023854633732218901266107626560507758835187786828756095046674893276140989519980033960218649746711228158392099513318486638176712596603389720141825394883695449520623435402735348664521474499294065791475469864007178211455095734704595345834048836712923172910704308233503741303043681074372936198327131226997251991475957226378941456524857244097827380537675663666877346065511028607394881939899416769969952254303887111159494966211976733322770478279544992270293778815493346891029301178284802375097666449515062800187571373814018780438654436744066202583680912988256322108170052493765046676209682175959753250095312677053074765059073119867751417104065575871403244101418265903161707974337255801192773702545280301597744420160076985289162634099528742869106430612669451722217573808725238198592388419515308108374366186403349839782076553108200676022618380010468241459431871877565521321582123577443077023552594115234051337887647583794877172968047347208484810945951534369972120740435353986761548015016479385903362881120228498112035172546490382800252543171214044884346595795413273514389944212727036261561939208660508240708636438024171441521722077549451506946834548573144717850715321399566618750968606145941600453817610818559598810433776447000043325477081706538906661960221104153263408703768016242974567769036104507245935543168077284882071610396984793893893089303594742136513946087065601723096190206758657042539559641600770179946158958324009350566909575194704369435434286795999255732748408130030604565506185626398860217965794764859536591227052774018831817422793888697463168577697859083502977665661035071286752747802858969015283591112402628121611991727642045055836133912557856645321906760038756777377638714250986090276696214644920187920440898195546969054816939953115187831040204347341513719632349587337058333929853758848561446686546319585338000796469404051778042720864992086971816294091720777073704497936232663107952844368510112745197333840531775087119569355626783731399550771423567995093801205767366234503669623169328591419384368024630133810325697613731154221525701137507715955952535965104780651367687715746696015600352456256512146934935520845904266471547884381795501786907423490025543369075196721538948995503348929513913871240335282688393372512409828562143196296103211140500205192726946541855656834079498041847584842942023908761734012033731728167475478393524987516110236038721794803521843363288448854818958031493989905725521620754144766002410544170683817863939356940901433437846588846411962317777484447345264515046345266464803072004319710071250094072479031172882107334258432668316555176030119019443858127515318853774158096463463195553681750016386548502428788286561805951832958090767217155667538854625386920797746232060314236117500586269046073274128914584881691911449195412185422551416294346831040631178560200726090124141613256112535581295870098101396808866935677638258624903777720868246503419061545174921924548584083357611619120019671459293510722326129968360829242672275728903727164998227250460046332363218647260760615466397636099350208740885470780555451249307012883595870830955493884264154341706967871068946177514240960661449273340474748455741984445493671083391608411353467401643277183829367252380302875865663053169731808132585701098114111834943361843906681081460922049547639156120075306862052473322271759113318666036987840424565068575273557067507686261142605221439164531558281612096012556468952359092581323899713478903289015648835743657763515787786499800959430838346091464131110156083463581337825604244517362200673546453871940131401760573129415364854520127645354336931934073967502433466909078653392951734923439329859724994085376918342660645744705091141892705323337224732945154254327110171006033664869450601774196720825191108896318542403803074594673909715858594324501179858794112715420096908088548245265061900722962453932521809019029569796309546960558389309272524112737259004519757917217256071213337593855168674451368030357853475243646816936971623344212184245640597801410657657678211499033564619757020800361573175507745852743048375533169352962701301472940859187730744787823020614984287541235139360853477667300750927052082143067608554583068593721683307700297074344484381470159096483773786749873989712482623743506468790510449046481409916739962338443231697469287209722016721239219664316229915352803250847592797663661974766412514662605381515183780115118257721128182357670889485853993861206532363417045547385431045270297800375594158239585540121011601766341496199670860353329426639466807783841179638573744591573134398140312388527232497945401383852444924437107018857249067542669025539473833863559949370142827904411922872514585864308243766169118786299273097974474276585080706224125541314342443676689267090001868979413516142417954455754365820118833694066959262444252473049646195762701029768753912092917041839780574280005604159807933602519183170368352101916977323641925054509741473818293146751398383029840906178526934501247943570393558153211478962203318527070564876388989518559857497701686490785000201270392246237638854509856061244027987806196040866470372010660900602387505661198939554188290263317591844155944646938272934372542051701453805760289653030252599918173217286620800315705776312312011423977493784104043262991622678520319542231629484930730863751230773257951320049832595384089954323144118253678904456603175779344352109081603682498033519252302314298498837980463990896733893594343050765090070420127851024393674105872680875663338758656587443663292881032248579255072314254369175815857128297871327103551050783083236749920201281798353673532604855404277473276605445622194168823067356133089049316760259654590782433896160378454631717161190821792989396308092302081063940735894400699637875558385297529576079891140187957114547908995524684874662331363845083376532952454555130589597087481551419547638892249937117172999695053948708712003100030330000344185614677714448150675321109634115540614002770609395839628044319547619378948201945280368158102872028636482600159097696449113691694405756890618375323120334067158428861025524178405204431561497306600456266588765983026951878349035036946087062947618438186125118272760823017077399370716510760663155904538203706500912701731095835821804171883286061492041399509403849338209334247263071446933232655380406809778276205471769541770023512351250189647703606883700146132505810504715384633172756420631885657601004888997776175223419966081374850511168247200750548144127702510785060001833827192856614598157254930893508367315737407997556296803259121256384723217405703831215068609848439500772081543562374259409292532407559643373423721970042179107770681120950411310129808302982956392654330696049956409476033206325515469644190696368137316661852563629476245682536126303307328203992711750368683307095666871545733953752951441144511821598024834626566663363744266839615565735458299103494286637841013708717883476810374219945560086630707052529255685191685017148906749566824121331908845255211107713691508769346760745866249062562517113819885346392521928926063840876540343953631712299749178719369382411309650829598819547372019660839261460107447018226099895365881172728512891747200271812551931179678890951041605981238732736355453615190216393135649559009993985193653375775348678331505299423198332590280413018051127712201441009268265848708243255126874372739456451668446866649964487225895926753569838544715829081043178587116553513162578536426788778151941626634001181524260915157575741322530832414714444077145763222495331983360083669760149936636877638199516040883483776275982650446710883394672018826247924970102698446904978258965463374407639328548288205275347037231132653800230314506492955301206925531098178323643116855904961607907469236466059842892138573889399565551616558146864790281353621304323214053780289957851167318127754061894454967627858529663135920646104637102721506180699627536376993580834924613656813434206839585026366929036212773723514773744372199478381505203082621090851901466124639368776028123667883043679059655231522054572044528081493062993314051498710392518464680505261957303587001838952480726524650152319186473696332099230026062275664132427575584574982002642940279914144711797562015812904672051173082914901656410650111593782982016378437328818147383514170820201277489566342331460451116278852638891497568240502569441214184346416944845986013345284201443737455028260444494034158890817522305073719804353227556060982329456949026174805755996593383113144853640470007781339747388297118918503610894354609432613363857741168147595487300289153689188142118072231465050412260655938603523998242341432605877286894270343337922512639820337990787382335045116599836924305701563819507020159057801045940122942302384124050298689775483587551478137898107073663796534465548047896294552156286085934040184606481281880747352659966594266582864747444578736371497676334503796801980522147157918174910356145981150464613441752167283185923176925944879515730326680202977439001719666503863890460347823818785415299110419548665477097115008187158814307623858729028080616742031885478684264069046374208363086767289291432002974921813861990027112279429878074716347897520194484621904785302765566331133004517491147470765061473979934838609895093766822938548268248382745127629926981722360061008327368701958168443593541784561440968398527489170520997925156817833083635700190135616705058399035123885858113421334930177693289896226384439235261280491946810774503705161084467826424071450318013540126818354210746804852531812532863461659906892588814363517824174506534758333189109328074248607750020000348164572954156457637578813239184800856027158752210998451870816810782143927900532361441877459937020179415839440955978214198023903651391596324047910801576467734132826228559953305348745451766891148952039505716988170738090441085051771418994607051475726652753716533519571891647994355584823635448515147588090664842062700840655440046364908460919601465321857042879296627446160445699434076104198848559873523546426674346958594645864010516465061765909861095670893571959228770068894287545360929484911651030273070610653392778760151746188994905842093216994867196270091877201945859869329525574132307642572654914232791078951627075024691740122051232113277768222818223655552749212922625904239860130553417454867707611162129469185465688240873211338862645693013881547288509767756762743267811770681570135706325706437153586950361466898787625300684103256858342967319382070484837185820007332430708885447030645507031983460635214621093272967122219671278132087399453087354880374083151632523612037779023830315267680571503419099751814756453642080552541863098104361995534864625781402937469447401433723780509649707920760172650603564952151036496525409783915765297950570905347212271860797626869682805092878636464805695796849599561283353176673490813131440482278501914984835077823497849777851383855250057490329175989270348389748158350872005608860607120460281484416132677835349306207844435853448153305603435508532878958038838707583673528050125927823386524303798740422391425392020831272795493992082846981836713898794460487340533121028110263581522544719210936949754036501510200616497033971605164773388213732742517981037799128673793556520583409835989421533049663549530333227799712340369401784982399096422682518142327794854046157450494944283912280371159119669771611079068149183878353851276983095582186307694019144434709272543612118821027595287582999705862953408873753571492220691339893768717672873403504284038386463788756350722025674046677444337862051424781676527101879081260696045267074093920712907013410947427114807064465395931735648463310524907024534552708548962069987454617106237413686456828624311195661085281756605639659814215831805327347012745730306924778130577668090316796792593769633021170350395295441716916405725356112885192866597700932545992277028242624015754894251120032321775710252608717907681187674961500929877898480059106089277547783191784840661486487338871063070769256767450647279991783869628210518465481868414352946290495012502972808500078647274369920154888773143011940840155532293210566473139906606400731220536205457081359712605465518785845951425561195908543223611234001320333801456216267008512903668445219294109768359251639560288757323971141949951279627422856940605391304347493460636882664663256083789616836866083901873182556156285601008879446590987474793644809639956878265335145922331409555083009232315790120833492577200339373217669486504305983030347042413944473953310624569512452304523801804346976193609502675797922911563223094630094371720979903619239389187552684821703180541273356598994248282952276478222604486157453888229523291196778892523554328583539165714923536399727173933851134979114102305494386761063257906006471380506930807160997328940033380130609422063480302724123373414125894925154084725689642326214708459504387564102563594344913352290039824142248467562077465247262765481423182764505915368958604412273276277402851982986992518693400965786422398527119332015033031297350820624161008826340387168879134839258735468977428558785402778704766004633333315101720906048378102074672126995940863488365747286663203486951529586960031862470101892808094300660495285664236374651711377244089481796959399032162391220838475293324071737998419166998100383471851323884735064564992181696578803658443921772702252778151464233969634102953140917963865538982327153783180325648559386026725413627115197833063637334132826920060728419247253789403481679768096689969382568531330754048559461349323177774244767299352157514789836255343084498615220052755580700876509317540541442974354357559888825720048974513525716302132299151196419717394483414813407519872649794567029070287256157747652409019098657628787514840961576412134431076378774004827632354425545690973112783633793988336312342758350224971810860247165068314186701265827489750720272628240880984095410603074545992995337677630538792869102778712613478244075232133388702390246431694482309690928417365139301745899361551728400316913699553550327515944147770731187964599387889910705602349921771378221304836693216262508567237198355807813120443288651988818318838353633847126509997697698362303941493033634268386312865464583043229340329461835870051852559469247674032964555241618991370605741957728342751161738681726974342220085564512868455204901200052727989542624077561029189437709211519015699457567839589768117639683703653343137934869056243126783234492529164085134685033235343121385661048502018809143426285972832173161952521360121748114177122336746414977941450083252533133563087059809643105066950340521754460736420078990909222919249888200325035195867021971048297208849368198097518059097805703696300215576801686733002948470605769654039515731380005578776323148736878526820306284287362233023804511564911761910573490955609652546027585882382236236241364446310011608298846462686532869160125851122513437300256244422048735855416166563093155568562643924066218857068221649136848176681889695147827226124076475263203843372732848622064729730501485523191312140193865012546708691597408721770192823737395930914699932025237519116190252036644693066451219319406874027902084275938633500508510992045856267076773943463023563493348758753441225553028481179772922763870264345778151875792770590120847331669700505782475516001935001103924269629750036955725378049717399485963906220880682538418807808071697159160565623048974395230245556642482671265807644416587165297914199888728049434902244260133761402331582988617608064501735732760898672554334741613042342329081742469537134508672438794711712973523729355974343717343462306569694281116735426004833064846174337811842344166908437031160042776175706996515011088571253251778570524671637564359662201378626553603485998902442158047054076012230926534778966660654030317434269150544545853607402893030905804679419030302654588588382813800462539603577154740144268805094575563118433040562670841804471761225907007668259544312131835399923735687651499889495146482084662844450069063351694417742326988111758453173401148227141611685813859241050753045111820726313111194282460931890130007064504501411357633855329739181864106803742682104809828181051728044877393868769569385296256147437782235859561723714213306766256931302282243554120748867953443032966970352274594558546348147239207730363736573654591197790833189031270452203422658399379890581580279636317781272000512748634255057374375587598774122560318710485291461648662894732308025761518466474019646970002939819912606458238965201117950091501675410383475523069994750220193947770887029423884428283162707513139193102629097060840403702040397443575229853324588858586302553177214314321835725227633745216437717572774797554931434045930643599567642272664051197860016945531531273943131718204131228020343164572354107414621626261139848676493773560414436933778950459585735616746680365504445114953736769192588779997129488873169115103611130319904787247479284876791251369717035671749756400117667601912051951358527225063783384964732051005181443578413136764885548016327402347775075938797960178950892258009991568232913760229186980316850169088251215582877770348586405365021576001872699039332485843062983608039431819517752700194617975534399334345869989299702240213698553985819234786847698046712767889014069542630742624371226527609215487067992925428449615024644484743009222613240467318235139339791245891618028489857227190199521597728388361276290204294344761901164415255835301401667554593307811959354617271057310915293533333961488251909457620868374512991699448573243445316082035245871240779593371753640823225517031808179291535247675321859119268534630681848536143149416216814242837469868605425592922129534142111893436452477348158988936399418438121702839268768509949451723109860847226876428087646112546441701137040414773618803690815094081146984491267321980427997326008536838164249828363276143574861778619830296291590799677958212927625732905261241960188768798727161799545224357915174940420917409548276243385344241763891571776042891078591125484347680734218462778693573765961984616018000436322156037344008597449136537661512166165049334670116094571408576769725989535039293893796789199071976634643375126023100888249639784976350334208077440877523052221975801331462211796544651029418456484862972479971279508162505566716898086563955191433879145785796654500602154758147442222766740813725012108651236842794924800209359203653009607556351402365075643661375093227153168099299782362576409167046377446086128185653960492239193597328137903759599944774987751160650008942157019159606863142251845316923457848962380750966903340360937261532053795606199678188487008243962917591109508459922207320498815730187890413196013562225740807222089167677883623605346575838283547706146235472961067578869606577834114899379186843256584249730654300117906250670222841560190317720994137870094313580131569582650059010135404367198382633196618489351324371299463326670491488791029316234525392349059825676355133724559537811188241142937027156201285960244133556316611967740890844655842026966809360872782444729641058676659290245612216573891772845820629026917063645077776486160177163022111036562743458787532668520651461214489338638840013375895532779183370983498891507505914408319740594836652149406423982279981141932118225363027150928962485688005572563326260669678898391199827790056430745609077402357716160143560133660915384876739395851030132175595964025175567205117021494088847465757496671868206332881164010663758973109427719171908081399580867279557949196620733257012959569249654161073141863084437520665593815025104460885368400150799350535366746964764880701357146072094898603221347857390344518397643658563949410202408821262272019782000788147880670539743218418437427403042735855505800751567878775375951860207410850967913001778229911055472569573486099310787605243757386415921762880525785327221319333653467878524545821708537887280239481374624844155995408299278282382304065734850328081249135596413657490143329580869276311342499099377020359653287300641501941589132868791497644420471702623497126326171382583798260714268230285961821437920486381858785381887724190992537591480205073587976058697488375715464084034797627468608081034266376925504620413482955149909692135282809452748973145281717959140056995504998695931221551915405195483732122772682756773484594811669337577946001551948993129525357071234575779808560273364243531739433092788951993644211930345074214469809077207592852627938519996291139975277834009086092022023112128006607967639277648078936156837952728897719720264987271798508192904862269833247492309388806323797172107444429778711221473399081563024095944195226259534127331734901631926567323510848248947901113087162639216455125182758079373868381341673739704262337687701224704777741566907985028444134399331615321816602682715821453553304609013349013724688530108249457061704238111266304467358282078485510646402207052768771985999520229749284609977744055445378606491895841571995799163671583742895843487234728565717931083450020287677076351137316545430466304816637449806742708386645138818341366317530526351699073081625114374725336650123449544371873049174354481096264867088185122910486726677860922730117021084433691007421988662768215439783647916186173605357871978289616136702581253538013811597883865996992894905907512245719587583637782546485376673225297495059725187569437972178900344909478412244797004550677345624141441767985315591412720719312553377567545291724986764800505509855102385104958980341578427135710354863468624292030251672310308716676925759071708750726604472452164550499771937227931221929091440520958473772038773650163331507273174054723403662202834055612565809422673898682041937993692656204808052616408545375432548864126779899840371381205153599281848571730213757162588690575443628597183587271131593911105812995971733664629772206721897026998011950940345677665581372607317920273175354913610882583829435077135331245693087292798511449666566297824638016335141005508333454093866262622234798972776867021880304238789705603591891680630703139143230307311580981067466757909475140592495093786596845371619803758481716688735253102125044045234612687830762073612315356576170311839744823098781174690062269542128966633232349486936097269403840334962162766424846596754527922518638942216442987270545235237765414717699697664469307644849486682041695117312084660542054326741845196691223871665417977733729700287017129657408763834380539105938129361176766992873717537114571453143732430516016601954502867086563210223105577932976758052414051753819290734237255974856633206331442725899458229495438609864328469558851160824115501778318028872332304197280008451830219437456388195315892534416588551949982889572403507831077619046204694159208395118196046297852697006750875528248547951687063835746241012773967463461352764429709566118977049401044662131896058716219483614260825496622737681028821839588483270553316708035260977836465349337975963445328491198018991326371412227911600708700345055931586517851835002950932137733604703890186922271201343004957677494822794947297753313844909847189598902255255649312616455041747328761905307977440852653958200698362975915460791912088791942862836249630540765046901428788100107175635042097588501309847475158507915200418623862699269037252941923957788105771979272513276522424822699388136107756174677929588986051013336946536593912605211371736901621259767143959210116466871860327473007338129388374587414177716065639882408348894486156287135883883446114034430260641484797138263888037550139139052546782076265370445604682135716089276177225613124170599840724527063308618750131800850462977401468733075467763773490949558101211561648568532033122114875248889310649188620265086712526198783461577172500351111926582807982801273452297880536706701910511465799232047967172845228583341600920617667363603972235873028142200633466449411877940695253599064657912005072679917070196348710369634124865836627583662186582744846138560175385850731375941653403906165119709369882985169184367135141156022658625559069602985971042040024627817089870957380360767941259765391378872119281948170780854605653047457276313362260815763345345489857812533696450753153699353625259167105743342710198681850938717253859734471954261295428872157051766945415495087334728116544625579461166019897714440685174043627179044026581983623535578339702988552878220818222264264068959601164880820316673246345219742504592418667997525632445277594890520381420658930459696573609089748808452992230495399371584256564299891732224173597164873270409858258633039054480445806332499182591139985541569918663115657534968421303621618212045261229501276719117118684902533849046273265410143314403013581690010084507567763402067589077716097508020030121281691172380650154439747732229912187197628484028402175832045947865646283346344156523291279649796724684160511608876420640704422844595952094432321989791805038449141422608477063059362760517556450388972806509037865648830901123934721676826102682178373849411656149294577815734158947647149331479458917160587665269861224964648359580957570141857701920776639563699034241692473024765026980325105533918551062456280027191889439150509930698587884480934469915798299272519766889278936726364700964110707812502849001384736987699167849279282508147859705534652656296843050138202322990314525914981895258197938519909286334493040402920548103523588822632981159372583724758215218751895583852356085770833031609513780109677940938732103335306685921610078950750464633060264641530956833939374476243533792008325651958901824637818292026664843573334983830117251807490189592647062035907074772852380694969976263653158364584109807870560278916341883944295285095460927766365611653692323040209638648939844796535692881464583869908586177247056171348885510921009365131709540754903898292550865555807736613729260489065501114185098916853665566865456843885841688928935739926756898658949341604701940011553421556878549379270570399578305373732977331177432596367358754467720096009547778044217216445383156662806810200486791954984508931242796571917648864449882755219968096836823253082530761937753540906511057191786457104678811894877264747682527014184501405571469338390728592476255583339252796766620592167509691644095952623672667204064922136460916808931175936418454287750154336108637715076652577210665172488102201292388285619827627019897559176728699117199567867934874015281841698932249104782130559700438326787990699730755014011515724124773971082678067776810221325805506346778254294155434067450501414920104909442984974984873251818133279423565060023114200834852700327187141391965789499426130163311467092184876251231907104780620058757395674691109785074233757425090331920271793921278669292501469549597058610605045319647092178582035199822931828083946179896629361998859482150268117384907354189524040703619693336317983837402206259584602957615848117459232167224963765487918523915814471973180003210452365840838217547943875290405862907215030299401212561579348667278184955021237764810212938590612761117299288973842954585343948081629958547402006184971394998715604487230146651566708683619468030792137569250947762520970906756128744626300355514070709054342627536874141981116460010403263646602370219733165465002751898415995713680837056329159743351583762509206439975592379013003720292245145875975851522690991452351679326534366795854193962812296970403206043954935085903373984213287593006636721804290178505808154365112500855324200013719281395079809524520007903454813103171733441078935944635525790414239213428071665755663352555066867992263402258646524444791830708771669776455684460860119994533348402471483459855366332517299311101390519220703765021498524909693953711641752415078627285994566546442181525411115803654281114415571264791620111161502777420139601049346777223755149030286245094711876249957741404726513600624738503954779880438243567282291686454342567219754476985909314946165007612509800507992655061623699042096525633439103772181011015441516486190136994710508771610350600572434639478931376916282497416137934527722002444681934251141608463918931165882227541610139078138854986614070636967230742021959808647156412694236145804555051086369106599444750213313693280662617433391984526940581811549538985191825864116531110002803230704319945021135076473112799841299991703437108992893141613425075729067852259114863381370970217031251672564557776197676864734304402859654592315539589930196804169861722624483809421276485595342737858308676822717546690134276155606098163643657661567713521486842378951681869659229503667859688852961162988790523953627383671358231388552865228014856705303671588222525190713070882034199057094278658700680812595500056613038837066958211242470983142667996191281243243504266683198375920316512358085000569097610188678534121067740623164320055875714779829221417894772990670853352375685618157838479488324746526973786171641050531158257857705045104978212566277187055600954795180969563048968082108915399276433504761886421968436498841670095840926013733082337638597233229591938006993684648249828649787431785342282726123356107478250462716493278836433144374686167336681731288728994709741859668651437063812291683292239511868402441375108584310468219157728234287825999266480872627390731086281766033356608837062426704345929951885178473418898997524410082642164015929540377855207228682807553009217367413363382286546154811444527627013446119948048293833090546877990946722901849037436993781163354222929753187107646142053291407744522046575593750224465478199074596753606824865946704266333476862231473580049899658775236219958950485743032376467864857964225656720230259365361551604919760345224616363277350284763472421042254102497777987705562397430762403722235333974902737214973654463251876402453902330394310425896210667799730278037338821411980018163301229128126105153620813925499388851777556670360279102873876640085702600772983436065182626712328636428571798240766178700642724206388240263602546440703149471259685912042247611020198618192881403876381033782836300666315840834892580947303179383507134629778715906335656343772625558878433323888109277389932299920783355758320857447438700213024760450464418319210255785308433089588286976718214162291083672645501148537776394415079170834854153549557949231374948976906657176760909143517309147810702461611672902866584656608718049153264495791250135283982398059249841294780833802534272466341258840830749814750516941841269378123631320848955636948986005828385120296787664312060509802477233619855470465695445820300280576315852579481079216481491819479101607199170106354956934307940250903795037137920842542810354763411989222719381187445604977940496648943116189173223767910245712040701363218883522092941670538236522085036255791071923079727142906585323140742994735514403934941498187299380923335332758634214152541558711224210071570611377710532025663992878265895597042187449787034615020402782695765263899696002123194581707687026020975180374048374950240787588700948005170283533373323464463852048986175238222187598520328382029153347822661490708619156390299983103520378952294460157096384728861796910088117454365331297288661075190106376140240011528095941541672704043861956549276244451048865871670229873810178409834049229832351685680728130801345875109893649796638262935213916038244938600971897166052081554690630889281108045740923809023876132627494560881312425652868895595477136112391048673333723230296575552065917749716175551838572080050672442295479133757232172455552637656827215221529729250525199746398542454913724730561645910531724944086500405618828249839522487619284450124396556380661083316727612840384257136821412714187508068422426012930879526604448611318165382839058747766397248004666259438746217710174654274981156270868623592133725902158700933176797428201806551389557744213793441606070382793428511686120913353871615379277046508193995963638588848871843327805524608164477368007818725293497917205075576947111934815972051075343345636795905776224812505827935793704262518329466208454491758339133374446071009128202444202464363011924266647024696988660912547530376079422015635053445769174496272620497922178562750661462630207463312423889819050594438566253466677800590836905000594805469512160539137360930858019122063988430889177760013155717716416570452625090893299076838894899287893954037614810472545806135742184819036791833403580867050307219651187828385681430680947572107831415574317241760753370251298467303929648405706519581608280404334106316733060499602411256304557347594798257015477560547550280381399260072012449962462777097451236739797890031493153585522804491891820118721166000341730937422865877828385606861345436202621393274426401911975416794872826731438899613899952133982887464816112858058509862062513192972734544507847382843039404920394987291022273274397327910741441068958348446100155198005955057525094214966044715512066531452414770129003647533442019354244036290860945773943890411870007000946536836959609344725217100899149180820436956342888630482911680374036449687738289683426400026570495527070188075641521113097691100166064185474048244094658053686930524660017754780433390274638335802161128275198058272254603597463968146064519300664272494134107506555049231809786600076769563521089518502061768943718620519144340936534191181469786423008840815581706915211634128040774990379247710740648276970649665856016234869501462294662894057489575864397359650849680955367865404363721083854777801481095109796451703565229229143740012128582920545972085924356222951809566046414377342751159749234251527589846938580376980917700635131272346111068362320528147864303486069304886546289232922841588861719483634775578742158295467706469837184767936343658597450934085880306025650032376128583996750756663744284652061087809926095276684753275207278046961927881190809187789049963728207762984812092985553809476790435805505433998038728779705801684709071994355769951632206965782993448374238939329094343865233294852270536262517455739252836210130549713427292729094219136237967439444952543243835195831330460354360585878637977359503834945386693981277791616192730074347715175405901263899034712899032589343426634280626505448691603058750071582502903297873131492432673839265931582124813702246084650178115247833042114945894351101475900834365012433139239646125738627315649538360975848510787050686220757984369631844144622183547060828832977534011092737136166068968800284189699635587674915839028957043370725165304311270946790141970348033525933420642027931950245471010097941728655373266376739830708513014023365419420355407667779242446220700493522447193919437820256299643842376530674301332274820755126004716971436567655854506078337431705338225667871820607754638706811230444066868824604156361476561550776450588877299759997584686272113646396373741673766035343437332419896133396701087926928935107703317300114590874017409441606974889212105751347640654404837668464362187618296336835313629617760110199510431583316299462071221581447639800652056940266101743071341608745475045339729701859479011386609047081072403320491237645764538074092004248498335560181157219556308365257138876759521966456347989218795351953192453094712293251076751662397515859255918674203336694757572719594355621985671337621251170630157358829897787250516465455603014180859902293849494873197375403773689241822836660370551557119968206003356798968918287098224567446026170770825186800347046962348635043361514838703497438190861292724770795949922637326043518860607886328087816539641034016812423953023572397287172368587563151380662704810050244941132707926542217650856831630311995190639537819751230737300551000563634552391100030643588547427710104567543626610222980407169125294401887175618053092654458868587945186094230761752933067131641910280104634479162943388066252370754746376857657555734664934427607860083511519687723827031301221526211608163542609065784926560667555282333298100796409908091533483386805144165162828902188128363696460515724898478779492333516487504281424071334604439533246100781341181746140340057728622152683611957844177672043774118127050437410403550727223581586428924833051254280790686805082881817040981531086781312031435318994940930886626397683954806879632774981167673547091496088895186703565133113525522716507829265373723210502402695118365438052994636698289764270645766071279252432911094897769083229372568543878406625156724450077142822898362121015980406770849713705735877521955503384868476635447194308056484727829475102102369589515511273680125261716185615948951478076928250116126903618186615090343778214040824129482263311921685746065834807737191438584101041042311591643981267849001457761947279019713797259606318670443557792591697350072653044031401335192034103796888709174995279209933165460970995050588554498541931776134632200952272914075073892577758128725270398396677975678560500406101951189566218343187978782754977384037147988172390683774716488562135894575770917693022457007469141897709998413068309476848392157359901798463844315395560526618067042859354825923219150619367867746343779809140583391345688747247613944665345973093891587721704632612779438277859194504903630227911861654386062630628807807486632175023268722346770870371155177834763741395507508498189967815748050641370608253675587438321916778274191986579613998653354640985501733760974587278021378552882115685999637967132551782657599418103387878455265492370742382970843289227651388615486696074517543119769140283532129867598034231685372108639082297848192695847302769210033562878199215967752581443394217404219583059461538804443382294613638076885234925112083328185742869373989240692197050134222050636462119701108815251878711299096378939582871561663927873918965741936667964804803505275762628888974615692023920470308732951330349627535071494011103820198985197176428110558374377217497475386436288826719523674605464830702167320463658454594503806427880591183888649408941719979925402628726853291664110755547231769277612981798460851985904211438870415895273581336753985169128871283455796588757236535422523988118600276233832360653906036085397843562254795323231079347100598261410606850206795978260426455062548383794035786421039506485536663400303528416821551593672665686139527172704842246508918995005066155644158238982479545372081060670221354206950148030473319771151336472999665001168259279134420861834687801792527982662531192740139217053391054195088457477676654876386838276646222854567104378090347723742411980941768661420937092350939590342297523957972597026184587760778087445190893547586142147563280025643278244697122612261073198145878468600193738715103623029178445919246486087965720330176359732226265171956075068591949456081049939962741009054067507521056340447177943187160905030824320513401324516832921099204047344559506883339993701768183933206087109809609429879730634158973131405642293783067322223913876280298505918828905831049279332176011564527258684756651052561145131854877200189014034751175322587459112885759977145805791719675125889342200274099279857773682182425123571953701291660790028896657813444362175243455071044521626057948581378580466551918746786708205268847204042518264832483131141779743407807482211298808255801671500942040300581339968397241676644652730859000923587286349994614970893917163048778527424322683452674055490146899252954909893933640567713914784464969889223430937317456626449515655730060216403440092240283563547988728562215602769010418290305871393059779204556241548740314951064005199904285502128387418819422447717431022112668432372323360988501975863249078554978187899687505932917414618610718197890237764964495374148462807690063844965427689382809090396120098540490775189115436991948329648254978456231273952775633952089456768055620809073547441247314915464996856091289517916405359597261135735430401360042466524800321203995225781971604959303128520094150368942229793444289162975939757617878135796340447653170900241284997489113460305038293553780837366986407039877684074690216935197748126352423122670745729634619975399734371661909184555473141702932818299215179534301846846793011548982565804762963054024998110693631061863935050985960063055835039490326400223718935525575570435652898030981941408920022002425410148400696582773079781027622716146355413864214786932005729312098213011845039439879606267817977696504188864619631931342289405489143310286460930467129943492796489598234937550146894785961113871455611453493692047750381637985178546633966748331928322114815896789584655932583009349722687808883850501115384811574160842789113530104766209150879210756765153304137322773224531159108283664603464017145249807564142107266927204879903065743274482148392634442815930075930335341558550711566445823897168376311738102306288355570805433092841281685330367735029295239871325997049892553462582975711421277944560208385120594202136417258240731724132695300893427667180852929270476473476138761445664858950517749762523606746843646431656839101658619272498612891908912373587794215416608771480168599746385054114675625149653094919826731033640608838793437373295362391160911642960506982429093362618252117473705589793306082060686337136008852873699838177907638713930371442741675965251239741709586113285204332148367885389631397116318354852369184971396192496527149986815261113898285469002230959152740660087828518776022673341895186143336425146214787024490835957303885649049469664754033495828632969943566007643166685286442272194132993671503969687392686614755030114112640377875801302199130996551762330471637140655443086841800014370393961218872591225126062421175773056825336268575419207414560191481149154584251189329679593689218813976850956633713414725384205604886517750134957039064452340759074391997729650868588589495303658256469939626721014872109605403839235747705594524149695958453929144969995777903967039649542821446664823384388263667191726484422175757953031121487269114493207010084506537600103909016939373674114558681433447566555151734999648998281969549569534690321307451977082633703680781218103287035318488319393719170041823366391864187464919728101182791612411369128499308127171579366200298959747748407694711543033714152558986835777120115448042875776840903169929944975509078714598858523361181790669357441727368348987790394750302290486322714371323366547692909421963437200501749741755371485622941890038116104866112778204184996810092994725770513704606769318104497379363236804496812036949277967487367794387719398134189079218842132149786056612064010674939054266997856881416238977082572527997498956741239016294606316208451852264140973239859871607649132003890875488011607561001785719195348327338268812744386364056062376543865744042024359285343670273412396701514455804094571813114620875332302868192886030964485727203283493758481166166390056015379692999622840710408487533178020128976597746497177347140031943142310252696302188987469527081822351832680953217560776188381000969058504454155628228533258332193932085069197674197603835081216895104523306981254846419767047988446944983025981789665285667967265357536250660655882870534345595608108905084746864156441460285595395362805963464336537512402729269469670826217986261971403929642537158555218510601258774731046823269081805493751278618608573858213840442942780245661101766541374743666671955745160313640179516968871317158932598570483831308297873159190722249532063351400058627528370741170088071494267391231925179946718847768225680814204958445280877178146738190117602631187053769659278039469339354937674685438622513611034994783915512661740334809676379749524325223678509970061321500763184101856767691805274560411436638414885901538602529667539487939922717703745881018172786693977877617929147018407543921372905502463798385488109166345689682515533334342085643405122997596631789262492657625630347711920225300385378840431377894317681853081609159567236958376887354959983067443956477116036633971605279290615085949463994905081869667244649295596175763015670284847161696008428861764657603940928786048822081465829695457467410972547552992361525007356231653376855990819507813960980706602184233474379776413010950631296955704789207018450608881945203114198140227526190310210693367391799018768317833323921472282463701387145517923970303377981042319695792699691336272307099283305862372320074298005292294993256867112329287520828342016025016526678219847363224991297648309429859061458200121501653078602280728288486744405329712569380559105307049081023356887981069565175506139258701805657400905080424283951857779755325412241812507729800231765323095494494408870202185667718802860086128105829477225607694862703786547952985488570862919341921880737850881634143475084933268786899209245610258869379676147477613367021588655490212130830784199869828320397451774296016369622116634853284431983744508640800504396885449271368228593952327527110629083271852371039931663759448113240087609525386848662140730141025433878310969182237597102925425423539412678624620166282797529830948653199637926259373993713866213551731874723461926198767376546427743777400786876489709310159217322405909408678139446505036989636408167205835104094679994242734198156918476175564020784224078792830232966503255098199308814665517356685475781724323209641006299892361381988458430975067338730294102447085867600173237251005325971787588362611105695918683285453515317128742107796866244297316503046262691891633930838964345778074968395778407880683813897651958583268853280663614610250663532776450203650477761626736631170241720921789824639126277440017972453449756393137328089131060497062045374878231372831468828122537548674532583602644656214713641750932539644411854996691637733161337164396961981760978760384069992648376678752192906283772183593557702106541704158149474778832956197235577351541210760903417925533847594285124360343511259467401571758234426676389818990580135753929041042642512346739166298332059014077011848054869174117437089307696469739468437564977085704901400173653557830628286278107460874675862932134066263951155408279683022154040729135216006989534882194057608841913705873743806710941156568949678647219070704924341771698772375948996791096240152367510977613401024571491400040495326419261689710251585299864348118706214868762207840179673702946764813368942014329267874686083661902408960375947427043287282354316825062576320822748094415257360586675426274085637671976413551298285313010063461643237742436965177682782324071134295270952485511305394014823434622170437561319186136058319647114783988781660011190187716218974030766120163233833563273476473500171330213792273397892686964974608796657306204291015473717373920751738791543605124221578283586271425581426475759100517705891114260992464166201659955741495091052768746036459033746476828292544541263651323365474339279904934779162033821736851808437891846630192335525746257278856449643005421314727074337453984114876198267196615528847936436857127463055996981170709567372604124866279233706782387286479449446155120200859507585263146862723481522100291292333973691647865442094397676612541698620157185612716984910436598285463589692836738200182563280018642229648413146623046105162886013744384785472863492703269570975237798342149998987909023060814853467336987591713231154216145106404046762049463114638015894049093903559100061669143826467549634324548860391579848935379001068096916073263684734158343228836580048098478180170565544101211928410034318213939104046556129057511022397299646867688139144978133723556788970661582659202130187731277188993418405346001132804319922095103073451984806452671558117840073715327940058000036081436423883375237817079951346548790822006382485067351085318760742775749749050636369127725491732899469235028614293412087446198404746761131148758423939461492922989992230281368837124884987128951838450368850548326725734406829160753153156601167505282145355580975068191647988851895893628019583001184059212015409881169320722116539976333024523232986917424784902040663011960744405715770128300135550011605884361753396268449078392280770189973512050997278898407579503104657761486153530050505526768698642820276057418206107676802291382739197586352426575392859827037933148247583046050080507407078829939881057125112496575488385047761560016360442798573748142475994181975616385657491816262130068368759927672553120869832277302502600910323878271914260985815217525913433871157198262209606521982475824226653294294654714831380970902771706693413116034294831751633352256033164111970389241104727502467478336510340262586917548943125070445850557025835854747318185720331507576870012805400489394143265807598650380946399279544719236385067134725701390521423946546715078058885627225899881787970735967327813246770618974077749769704740965964151818514424604839446874128517607004559532458353125245387035465929168209703070701726778084867692592939666505188875194475725241109108355137662241735462214530539311716439671187544857615719376675678098048301299474707814689587626480714958801236099620570079967806064966061489348599435847098876461119333130780075496743587921804500746642649093034642040278749423609605854278620515128782839247620829627095058195122729876207934232455792734149337083561240637358700664041446029648806509306644874541547648800983959979931601477466748188747585218707945057813707750170337022520446491218807653551659240241465437302819647226067027503241093229512670076980018431028386598784153477985464519135233366672042611033328965923635537885675928474544921666631897470860531920842832654001642079511530150910088295664215186514297212869844058040743019335178715774990028081215869861884331243127603346615225868445587571672344715810548144175031022691915397166330424706343075666781213740529891880524057206537484534706532886516014578664364127652389035677860200127639176580683620870186567628126928248698142240916084309685564312216478447778465305144903066036142034135053326519614405374704086239896030114081746852836381294961861533695537446565036680455433515613830716876885660522621375971624803440036652357577250728750166817136908484010148171009916091193089479200257403716211251628071005519759146122035152219094221412546500964298152089001397683303300090119408019685384646607317430459002310273157474307137623291335398558838903715287500240988235626603142852855595138196611507979999400498150449879220235966471143846532461515478989957140818267627713010714959961478919041030768024043976911667858031445662721242174428251555497174961306825972597931305829535325753943423011801461264667944773610518113145911863700067733624932459727850422084920741275474425824312434296761280379582651045836561170482352487901735734011128371178984739355125123360775725013772849707351746738537592000353844075914427522743738197930360364154049904818564874311730370903158086234653683631857782841763003567186619859545114274173856775461328323389310979035640161974027907320311151408549305873460902094880463676618344402888626710595181359970651606541412987276044204375401124706729165043666120662955247380384902063795122617488556826147892446210004735942960845753636268867994460419116965258652888671741894012906251664664785409121737960698615041645461258314546612310767021967799633178045341765887947348994212725563542582778109030798685693107650954542494711547288259417117489593081897778544312358959297764839171256321899233268289849124161897858726533095082450083627954249627198007217315087792787107706744553705984662550604805010790236321153995213715702693253410831797316402087261515806083608915973061798626586524575402854591946895620863474816911331898031146805283569964799423555967695653321526970072733017212111324295000022042196215331102041509193277158879077620479266451912349809791576340581617440711814914612715830777441243952115514032513598010872091363120051772678300657599847091942089152135970568045517965384167045628676857477288877012313710613888507760559217465605585051161275959143295198750370278579665313419254524617625132254256306574449766493121765055865500161388892578327845771347735005590460438551336517034551353805448405584854063469763447319982620472466198537062527604009544779638815850162093451151421465704101379592599521774959000595201383471568810760707753647541035103975594197220402557940702698188852859935984903650673329035518251467867254699382594594893502541167601711290025218961750405797960276232618255562734300302291463492060122574271090976390831657639123044658603009660348705600413254125542723532451616157216398132782215677153027583961668224885114995398487399780342177338487112100021371047983157411377951798674054689922650215399451164821798012774524316453863625732199883621983764481458691449776189121337117733093711627029017683883775391592415934367996380175993114246269765024898648852144278081919555309178234076950910062206561699692044896695154775032525361341873423481061147466707171633977323538095478116143073072753060805504968463440996855054384916630754386122798952001904413876807472233495336758428716814482585797067305666529723146598274946173631078856230795963746391589977719514567631603234142392296605907757070410550604432843313898825841654612035952705814925089503477910887561107206032647096676576543389577361973342234417894820518185913708669090846861945745232704717864831745335498930580343929699207590982888359455410012061401367933979902649332936471658547627177609129438778846669821988928381701795069205615886309459961860051500248698365386730085798987071916391997196278218059345077764232714396963193445257143290069068408397905152980656829684238585094860895125025204462222131191672414110865208544391522865247308874713148523826119540967495375629055528713315555037509941256216518726239205187052761580788807387006188031727832823351612972692787847500030166575262651622431090498537134617059410058517275718851417445484757495874069656979350819321954822981456096679109122722374478593991224786970424023617730366555636812006300794259666693945506666102249374048210921542227225836523650309494629905447187328566168746280872800985349319596469732183888612927107310797551358752268759228185021904765033173089352774338543855757728945413034056499698816648376119968948401061474681358729201217782167563752468531681029204009304433859871137040174684784882135861973956314426394631577756068060933057482393788555595348382232930291734378482745389726258022621087503503438623014921134196710993919334647921732792892833319708864711623277255660305200694766273630793933316885297562358231994662618977836567931950351031587299373809977789584607213630013697893771078435257119630862426411802686257398943132624969875267729604694358117847575825827300952830437793227134438122968458666086675117738055664571532970109489733534030808346566555684957347891812189053459848389644188412001175664359342837051797033579257300229623827354768893018979084293776314923572921137854817228796576072936612676452386023738419256696510802926987099243983033481053560610298319398838881973651492631207658751674688179827212228084698364041473313674565440342355792323868917051826492454887888164616991638252795054597907307034909525111264283592213506161227515617167800803133059886829194946225294340801894127423590729151607108280169267627698831578396133660772976002392947794858385897061967785776111673405569360717411847161537828523415592440789816755760818214070779577821797327230406648945896568128339496706969541842582269215236072953277306708733206595422103962923374407929407052850574574116091642392024820684920454604999014367291296828930510081085120385389126217892253450400923304065729964263761002037822520719689980376787883923064065483992371602070825238333745031087843657286967655209483167131715099926444455655472053557712595100879056177162077663986839300456166499010092147927187651000657057263722042026421505915759851104399491718196014031754255716680716907493098313123743163378606956898629413621587000968569564013389122142027618455839581667812528510006194187120452332385390465369011450351873939761904986235743893248511264283831445720698096306169471524238352122357267893425041359348505085166265207810285240809487204072116897076198162662510052398572103734364140923607987779372389201274386107186274375842541531268775388511835807313275219020507848450584592907510447298740423798059811686814643966344983756204808172768369620971852807790792738785013814635289422581116217873096683129850965129517407085071066540825475096269814240806352541508874291919197295671103846639506406399567656771832099518114893796064969525205035619237514990985714086188098979214256200387528320236386494637821258891988752237534072576468286888443822148804732169944238677690739221927932898842812896098051890941270811653579899751918055424253951232156706033353936218320190576767802974175329988878348274625975115470632596295268946550118152535006106136334969829059088718143695570982428225568484564002068793911207960003053191510293879081552695398300944432651620706270174428111066024667111263320504967069590915663045487779733781429872156358891387694097005659845802526624522781778084605264580448720460074381857843940725976422111655577445845715418227868932372009870075399757177527204945543253677798231289240157527794828368281412719128359918592877635253760548706657871618055001547931782883398813931977522874383511910527146707901429656445283705998924999976900892700059451283180576456113508344424437231364110136387451265561476314656446007482035901108119091413861448797316333697646636033912197496235209432236020517769928427710130879558958540203257648628065868030591536880641891467699317002948487736795582924674880319361169851734992625172979030213051608794546816859952021478578815919780280556521162842400073973086721396998202408612807059773581151962876653106227853113815461823092791162888508522773100928650377574437649439351890530151876580391270105995375814755519725597048533076078459315007811227409309124293085614745484060210140784251697976302221963690321738928484967142510953749020083187158093438439248613253085902461743604225025719912426656713162106188150216883060832832445459884970116467633269713289630482064140690581749485043465856461915037004111211613019660868762623716984993734862716831010688505501684094754732529032902958233446211060573517312763022694144829667948402836651078242579401135912496075004756881312057270221307261723399255757711367648856114411360743754224057673266319660380128187647447721418807052630468726008402363483563237763500305491059883339304557382792565914814018819228772778595427903536339147835206926198238256222145329249002601804427232590840751241446704566595499077070546327744290398747774257437355916853676780305708536653842296739915520285146636713438131200237105089098255276426998048305715186928564349262566151944133509318663954136105658477054202035254394124633833376750751200262128542140500947913588852477694940306369111473758525898538269990499334827488935531507784064720610541094215291710241528751145369505716284595062437875595183125851589500822858642681097765409186870731909580614527399778015336743117659961115107269938294942777679837068014660888429460534158539416888746413239307146721191742594463451214130866857068398532150713289173899770389282688535482653982761507678553868002493399474755717916571096731697601088229943881821538926231252809438400512623919170034974645324580968979474889386444804116420190539742737021893604451820306521262158727526175113313742294645464959386718098984721611096062706491365778596321301530921041310364106736838117865730969153633787629555131699395151760260546152612444781312599470410878065074298220988169170393371997477092579041492334539130182290612444022153533023546454601718128940071899961550196684830378915549370716336699452467187772471865563426040536413462374355457901503979178954792745677555167332029372373954321570060784977626366706674566729948932631590769326113673558254627914123340348253132382803909321485515746411034795404658809270357133907620815054738818125792693345449113661241561663965923334957036947501306559532738176365692728894438493361559130738115524411214455321646403015095138461972020306934936022941512578603124566595283681131840130201357347036663084430217692050314891017887093161367529285857924297047526213687626513024358941448084244520330645792700729598515309154390130152022067148452609103993172945266087685691625846990886685277211288489985920782937806618174445756695350873821167163517153073560281326640280793426027630828775204698102000204573678833951301165399739542087012103561626764621888231214075131703419103872453048855971109458614788732351082256788744549461558610956142210968603616302534251123674197134723555860012070212976551204977280623253401453950247285628081362477960452131595561296021892085387039626855216756294744271949510336939006808664847400753090739801076412356151416497125252021134629218505801993124009254271873675132980889816308054409618481755173628922005849570631464125994882418653758988498091665614147850047772953745278005877918837319104930690927218567511504754225449110432855088419019228694678501297312980318676403563338342149493313292061767649296403721005050109430456971598619824202318068061921793918812845399877676212441806953764863250420401450194734004399614658574614051503261531030377712054154335880701187386588984708402619936909328005606587817872905591256270064616827059607600579216094921039482343290426583125678475641891232298748570875233520541377349237537015903670635986434757767185684256691631103487190527439699171649650698824833294270570096194242643911393257645647255916143687162417000457033702281583788923095693842946961820680841696198894849957643231730385416427693261790872259340538664457165003885241756199329664634941248619448492977509840063594783142980652164574398177093861857918623594920948099712771800604684627211581371575713002956080805986275513311341706310928234377468623232383737540347145988394744088830663333831265277775354309400745423831161411251052243786157346352140023009624772305649795924434992846952525020620970795741424315560265037661505676682792618850313005680297354324630720701521451576535109471578497982945572643666243966406820016151595044166189147012616338479454401035763462349348016728005261111688792984562240181107746940836630243349886944157715665385944440031878412285183594761187328290343892710652417314301775764184920327633244950852034246984488618015368437048044034534856835347326619008544671823454350228442365029358595240262399635256644276268663509246529215766906390716218600439613340974351470741231335882171990469554772611621906197583681684454798843390091461689706626621693756507178994578069396595679800478693650101049587536525129107669268312830089476870370241444493827097528290029228945609586333137394106991183477009481232960773370114779987486373770468961854866172451068013647744445331478142707606027610723635194503405651959845794409707675613703096076355287861596821719139282180945037365369097023570274210210792302771221908034708003507941104846616109233529407158812722205583144665533789039955474482074918324719678621271951538018895074081316118060608399083968431057030916347708470119895920351521212579925359447735861875861506048284869071301018899792011839648934139228811636202850944448098747684664453494151859212321669606907076542814856668963028194955555735425953522687833139124041886228123179644848942774469750614244141039001104814699785495535233959685617326259092754636906937640703045627407288310614844841402957864659064209029078756290337974541337191598778124688930926005979469571094261688931776785762129792591920575842637044910558943365622521405793093293480266273115377753090119713686576040506360830306272900201161740409421969463944529314614249129450813235111705419706497643811510292334440952536265368981605507340948023954957646240937031007809853814683088938515061503854149361366508198388466230366624534040969642690912671707881493966010977869676546184846498108550324684540905123600478115219186584925342946480060411611928610756452101670927136717373321358061124692099819831411903383478349628939850400973798717073861778353077212661097009024559485661391175261919396646229507108159672600007881679507237202697168415146459021468314678778391716135344602312075443949052944888874681275913427414481443664325150166244594342726708910517512316010807400138378386548859074362253309424089498195994140483009154325694622959367032678430945068109885333501328486713171330909249611096909386001850108477150317205676708725109554050531399226900864781442687767035177106322337910151989736548948538172043316693503376775941099811209181073672116813566816879137959648041447924553433693853047910299394026225438957870279133437977225966777621524325245816974395318688831631721884659191975011792893689406543712667533979743545567877023067229041715386407251866074379389186996170684873152770305000573432906786830691131476823554519729333248717393096855947497247631648036600994446717373398756541497511472420960984363020154438758219885267802682335678567676296571779357410608337731759451845869854191310281797425359811442055247541276319142880235544301800069112880578333473680862706675126295110394738235183099654372680334022875993407444748054291426528217240585677525744024200600399180588300028869864441609594875136951525925390207594591437218726526388573903104557504832793721014312578298592404833022087402780396146235943440965494187410533161598077348025206028361700969652082165374627106090880135018038685241848321810469962984944188016459654830455455282732020675024594737684354109534145205544047094956974882730597221678890464805871773912371799668746001729162328910670160061728262518814391155889208836154283485503975001265607765544018960324081082734483062598182185177099496613807104352137311535349521199815964928964986380119789322638025844980285989337286466969340882578856716624928560763711477231920361949095748804200056828076223995531757525460434250167579712319292971796500281204277562409179607714667981636258207795080400407170464458494223678062955450681668766738379728795271272662447493693240532167143125748648388104301692423613962826914484488967086191821992736883791103541758136427220836003677412787724639106033295394267171136176335631796737761855403740539501976155528934883232780091101565746969447419992558024612437940772336490998365697865996961422648741487496129268820704462318705707161303976962510888028592429719359496034892671308446889196385643540719378235942699570928403927393415622987786825257486583912354805592411009311381567638754948315571693975974953706381491173293377083959673100046736933609931954639708799007409413543568844512724173917273255019356056731021743501971531184872048245554555778551708804852856360528332992603537842853065133723684251766395152894942091737408504704875691952478509144775268873598983493803398308294250504100684259100921122931137213446787419458404125042258425935578016230698713192631617835178574076096510172763014277017131196358630375005560137533374754201980551209630865694283144318354305809299784376874810551674858271041486149516080348630813310148729886039024687714635900088995119254237197375579519901668590462325542091723737560036961486448299256298119203148934842292796812987052613274805022059514231949443078053761190404946484073731402759497272772427744010267163667542764748855248794116884234308925824747913763327143719496174787876994441938589060718474007203295246040735523653862855506195484953753465090521720513005578860074332897694776391260694005994540691062680284766468502105650853064782107734316185065284777167009645730273053425474312521388963530744803611514852155211233981675826333429912589936478936038285736967815270349739342950772398339620808599128853000632835711233471960624645304678470463090147816223435457392395523406250856508223282266983086305257815664425039917591551557597709849002516767688914797979865563545391022135042244321174721798113162853916838107493710245575731118839675673682762621908487908991464782023760363565107706216977135524944879468465803378502670125443232780791003296838025491251221312829719793896653196055331643557889874319625837359628393366785978933170265197953442455186206902007294519428023009340040986078875889532764079929594786911045174135231278084770958483041076619749635317307424373965032181561481257767174999250140474773688710691372195181084027105498863520954500479958788279512757129603115207596668535269895504807822852725617513719992200026640418775457735734978149118493642962999889315035860127405188644767948578456611634009520573902233020928378112074809346763177189266482861932318849179806688946804938633471052038224239484443173571270137870487946343697971927641061197528967395130315805063805396855657019008609729725159639740986916577929000161558914410890666826003969541436672595846983487749171335105610591155174858397115923247669133435316955100945481287203412520316490996514954710998602337334018869702471389544465063344160873945881807805300490414948106448182204295579325062459575975923799051522040576342660906935654761273913520533777363981816286029383899897606291261166069427000290415220146064543880843729410024505242163268421469801543605214955105582958638469966181313074583549849155387018087147809674248289536790223073084818126802073385310097680146932670458692998262948277043433248690724912376624081383297998581390395497635484500544604503403280997042032288995563128006577987196829377445034158332628734333431205040094696193585025568862886621893774096215491801315057814571925521939880913356692182393119387222811564433029760105042849163284337959634429321937970155178303797557811166466442986107180721099536567870252180335308813350479211689579838732657868405721140605695477333552475878578788168771696317746156076601718399541568165082839288861669497169507780782149912828725808890723168228248748571340110970648388389182910304162834157521521416841383990456146113574457960646060770523152927113635442020771717023781349817630238819413902360387755360929720424505629476548296525501050411942808930951933243523707912406696810381963895567723711521643276464596410542872832903299289843187710148399062058996738857552654771435943134792075403619319065102876845946955679174588062516739609282377870747520895261244911755606291658850666766800871046417511453611197611228894688613810528259822199958723639370107044388249992006546911424098346305995100629550752425934668972800163148945015142037920941520202225571353504035489063630588620632088668314974097048345415090063047998902947449591401578238161842536601676936165513184596430100439035666783613596747561884583680534462779021098612091107477105386261000895194499216204201750498756715703871225100883686719359305097697379201431676233052424473618952115987859602291131421078854112974939415283763502138427014791549721633338390446041456957024244491993218385792512797057466717446794023623816284252759526676673867007584028648219027137940465431010903045113777823233574991090146030666814499646080773441284737880199273863830531816632170241841833324024340434324769333576337497244324558554583213691368179114564233551993155791069556721968527728175086506533307715558209575300215843576621565459441335566507962063821751864136591702355815786479003962271464793910368796229286845438638344723600844046003732423465284815763150434693284742010926271712426880026278245663195010358308179406878897450808953005405601561958380957090332825104325607809061427061540396864070020017868643672743993606214687920868325585398498497528821595045437986965869146023463486590052588170060544435919812490834166381424902399392971857233416651546729047846025977503787602574708657527859554745699260075246291750147677459914951619898405542696791219961268545338436034479840462073424298811068694469280068462065800820704921815243572893234662494785134395995898145372722941704974881572465534607950421844503966781005440116667995163230750161635081264670958654092958656449298368006076951934112506127740333331435448819850593599199827874873610785818060006280590346664929541060366522353053707153800906484980501581581137291405088173353745163187063700581596631248471022060515844778525078121253760238467043055519206442360700385502746927508032117843299036451117970828989410935580362335946697233800571051987041066265003740239922963224133327679220599591930604150635149318852400209896605286275298919682222094921606477480079340693501692040631939113937456853289161365842020156313904217794184840566841296587244737253748090579919133499765307024988109478021286642865186236187377016909752776560707043534782363327133567707304920148822203241493789487711452181442431684568537814832417883967764673495148351824116444519322748896227961495165566891039063935461738114135908836046154629640594712216536515260915384704557088734835390156061691864327411699859371656506403713399522634140441518388900331786453549679286372231085350377010775897907969235449313902182060772987465094389087762725688575198174400494764489027874988218602534055769393991897665619976570526909139454416856565264255088577772507673368869851028144256192503352962112392740419059468710346888635568883653012994048841722439749229122539144386433426554079263579661258453301221858869739536257698538494121387569665371014258287453044226766419669191404955639485456164739589960548166563039804240015216882963794413988943760093123301070714143440659075952820959238454013253106774030077051407130555299509341578068545851564230456123833154814276935545052798737561200597079523738445463831380515630949805681121603283331011432194869669594431520338266247871953490093695917115266151393408656296634108652957063087767741529979555509605896629416540315731465121927138979609058042613027942880739552602578076064106297321781309792797462601907640944376362689241527099829998465305737794308825486805229814847639717849064120669467391440177449714952774067308196387596753503517856963487279006488949534312804581461987054304495863569249186358664855883426871818463455845228631942088992540567350446949227889036398006297857178914117544053154890668526180812603399497680178717849857394755392143866200650456656197528314768434721705309180889161120307843666369468839964825916191725737316021692320848115217671445219652865958739860463189592775436915022453715710373560697396732249626484658801103165821411375715164192882643214892309098647269298648733312634978548239331158807499474225419017196977055903908049340070860198801437904681400734348906069163674492345809375886272716661782035572110797930664879732436198870307646019512641063612206468966640174942652307660285679888416047726465902461726922544457754058488148940894107180670881373168727594111628555960202324759072852114231597417654253150904126604524012019657646366276161083393847103464833824515178103655971341627427279687609603948887050445702403720627780885337033050351020070866673714050393087549159275773484968788722512962194209383604489698867249741831548705661780469540223719329101038573172843376337876123485167858938361979203866167724877836213223945610573465708476601449853739677585184166308880753886605349148852039489200049356466499176223328420795251341601803765341507119687574118727973736031004654399042874851677827202708214318239175091135283220846331908358229588515798088250417985924140153242335122768365520688080013877129397451628183487260730068526120671450290662008402114046726196520052394767762956847049874186238310424966362369907428627171987071731854461663790536200482939997693411721426177576040551893358832408267449224070260151133917176342980701085436054858073617177921908300187749615379465185087633737625008084534164720971819763956893353496900254094326621556391155965678981927391743085734284780105213335947011339022838081716442091858549605464008666805288136756657653042862592311415155579544427766245167388536368762300926841378617488772065020034928824933412848740169287697708470033779837587314792664218900828615278448097096838929135655124504969318656358672515028490131802592947507660140894859348053661709496743658551118791247596616909949888565648044023906633428966212770438399216176870012484547405482521414654340956325433704310762501720341741279666155457723915896005539690735466734288240472106839390587175688842883197397177139681650772891741090092739603975128801587251268118768796969710164619270188781777276622097084858153865903109970811291200673575127772299824768491186437228678767208803056264152136071657570663243455723196228666429190177583267011561341463053036162906762867715985785840914631931702706178453814199086883255279565189252996128662625882091619396456801836014034161406503664820400486047542286737192695214407305780550048217828650573645346387006496943532006331199589728354690782385808158797192520304927987565204245976722994779124167342906925990650423607317094803869165654559066381952673971507014675189770626063383420515184030324584526342321824204318819031676068525293763543574814396468131923252376431894907994177869554525705506348650057486531363108622690772530565082139738105827929508395425805735389775322693569170198698070760771331204754507988466844115104576301030032787294975557466790800758054130448632283911151624149857616896792178120495624855216900101800673888523452481242876025199496161880332525877020214773405866032100318257578612588673743947895746215566093769789531376990059453825664706562447117678918689632751756022109873353728776746019633101180038112130392976541186535014880340742195056758730312521038096122891465887372083053430693144120904003749047987405951649021336765651534541881339374240474982381193620078327133158206725968564196934951262974132834566783227256129569691063967527003701588896944047224432772996526072941966508829270181347245491814165035146032242905139479593841391588684721319522349775195371084008533464018434381465479360138882188830226608577958077179189423426306796959159111303314223253102126035622340909693426752496606292938616085660103194543835298863851555093430087800268822363774574280232867346473919214909698133223172259030908987231296886652049373215251047443998672224345784722532028171646184607055322810728104364679971978642845492317024894776252623497697108113983636968133524429199675838664216972888589456906302842013843528661301405118186860230867835732482833896708883574897428213900692658469276473415621650706916702644571662048714285420115425480063300428662279421677060741128723993635850531020676944816282837814977465338267757477976464628670880237765178511049251718902369000468078763176342630546099395533066173136490100193953297244781713268643182126310705486977490236630016067101232853036858951773098945035377602569365432016348802774605925458490213466683712468624938474545899735858739996571519690562532754696692924906998310053756901450038821225995255731670359377519612049062223604708471400580767388204708731895052731353979819721063576476007156907698394955207587025784348191626702642903008345579458116694437054621498487196484211187709044339507543070237986313206310855033547648395349958613591014796288449179121799114220605113910737643086653846499775121598608150618581234449311907270713669650567605278773104051684531376555054895550964788979337244228012255103169185136079450892449990599440270908184577759161598440693389033564910926861469253808956930875106231232331949108630987470514738867275374997122823921197104179820045902441584021840733798831044692708954955992742375979165030364933143501301897241636106585650560056080121020239733965497417999294363547727656461575712413155941820657298119222254844305716001388707761036144338553875394199955702824407071454013256582239742912261407322795684184652734401444733792122215789959075203336787087327915422405009070795688751093859203313312360695853661196250551809541758432582734518655763960025946831622071608470373245478395160378175786061662197179788557908653745221422361185643445265623943504228697728687028120036600183173350157419017694986283058934592870673645295536026907011624454257663284448341039931500164655668106512471054297478116594182864032628987752270403791435276618880792764544940109464070203274564092810462616959992170285220880711272440139914946915689024545091154935754445427131056583740229973544670307370317504903411121513776582873635388128533702372310412405808256515374852842291794343533898591070683620708272243372957693485584744347864252758127545131850779569783971221129306662035101679606348896747205917043637137688565710805259077635275048152323771453449630526083701298934193405530517906078827271759141629712032103110943409885213664646636776341692949400833937430783876776219881200510715021019121324969651157622569332426363778445183881073132553495283648845356661609378311747966162582130779633930046512101029868095872585396080829100106853248523164931210723521327779401439796870426032265605789703848037518806596601349816846510159206894553081985617606259517206783870704032626959224378319737555427950754832321920811114132374169248194771605743117979935168299564508303152014718269396900441498281055184650525307188845846681618429097853655392087854907477510014778787002397161698310669918005514577511587296582375997490080993549060243673532261150893140757978577048846326959334529785541246226184413618584359586368155229500733703119149576163654278870998980468801101978338555072137536028819459497081805395209943192935202026593230781831191689122587856025720431809153898741789724383463835705303712002825504978330591693308727259156410555015624676648336230709715846715333201904101030785765853106946656181249686054920310935835533017938491703539883796979339857214867257463379163210663950864787047768507014871901653402076230445532386466944603399459054079826420730196311833193069677863965191312065209078323792841489325223171954966649487714052528262216430722301076536521175699551612056588453327547220699437667652698733688693951034007176807350854191491737660251391232639413155340529647382941548220115987462089147816056862872687995852998151293821332256413370335463487812608015838311632231187223657526189978895783416025280595813603640851758397523418912228896449516893722031007623244015420074621688564473155275776633364112208746628798413602559630771695956159344463356776844689196430802046924826236518441594337911818496284778510155513166226732357462570319908785530079827115087117031195277595141286308060086312625643860691659713205048841459401492779693375535677546074746150014835405168536526761555674083927189871844427940089090680102698448282164331825294133640685452017969669544349115558546803640715376176592692674742187719617071548984070314896541152229191903939444316490419003398204168567964256821428558930720473868169848866582311285348284934650510333686351006663374332960185605024762779225347023854118129066320797426176595749917017626602576457924610459666388889248634579869588668777912683376219779498433736944202977468596693821456896984010538720006838636768385751631758075429758703746223057433934898658631208763340289711109134629582779297057237554290154576025830929925309830869391149978187685661857003518455352795157883080196296296680367678312259100062364161836127626892919111683837186357008884672436496747672182041552764860279374600589718887022969429333190618206275406155639892861291982461620362329609812426875268818301042821164926010634763353543777920959847423526214619763423168846287464081072838924555257371410499125702882349464382244569638658414621965074217877782753795298926560912483146226095273773340764052549999344736358075084592380273558473522517635949515193751835410007633779235129746283109878248233882886061699646313507163446833007747026794826397437284269599760293609810091940944142624331647296212122299160833604274749456365361914408882619571420486662383051025213066372963111348130873925104009689971646176181783459229212679485886582505457811491815377541748005346304396488564104227224625212683814699136223319712096574066304160653389446507149711686015397348573935906917466310775645644877045405572244372073643421009397534876220364147297713397873064615789941356649536457518804105357497524222724831412183263720085466286447195011935130227968890575283539557571846878621826172386322105757669526239868592715977101557182094798786265170816878761859201944783650220922262400477982605901674521021399374199735295165629401893481987065051068671088551132644621173894598827133640665822251151155258788766483717930666058973942741519544192315922322623767555647371350965810765269868508955128457838058384190436979985501795083304667571013579735168327194105998453147419706351665669091835381536929484203141188284223535132236262497637616635244674828801754586364568615826764599087316984956017199432911074150336201680226528428687226181359689774472474149892377893750307084281258618715903364409144814702158147157040166581004082947704474756609621087593642780664517627663827326376000844748366451525937566283037151152082732667986511848168791299125028125943745934446331733762190328626597755242249900240147372197454196090974381951305835281553912685941133161466904284177560582161584969431012127173592978058986354345763295216967278717907533314768188387902856517647167403859267871311130451904355972486696432250259397364573678474159136493482619000747804053498993662537313062074516636478991120999599015152484997531714844625318958415418397648810965937146097431273120873461960724893555463245183126826707198273471249577801808206895722017873303033270953421115525843612613304141870541760521467424457676922782723245047200041702421827117603364346471337573093050492097635684871760792823814478209435315184244220442569491970506609158485404421352895869923432521208387360598508143415142153044348451518264194869704285975467315126980599438122765201420164964470966477053972361987991447723072267260627570924279812024074462889852426872780178477363896517441956506182786394791282847842337533108278310184023760514425950835865490813178408255868933540368689588890857796949780628677853559991775192540063901478964949689089005220084619359671098061114183152678052745772036835622498113865691022025355203571400581403690214455710727538075093124581412991352818602204992427280504458571411841628897355100408594283248230502980195604343205160332168858823796094385359824956103828585802609404118878403140084522959044691025022090688517588027328871299928830269854812293023627135526512401146619597479748185906391509324041439363020608778788401688218591593975178269571302693468040439757972378766427870160754075717797667862969071416328568814048256739135704643505009191337806100411154364844493519799064974507618791543795230764701797048060105825217112467723318014651847233097749465623385015433445301330893861884383960077777262981548253456843737099469093695632394885915041702056287031071597560347962564996969195123211877283874748299243786597311074028494801620300021821883601910011928553669066382213981789185132056473628723144147177344155109622769123989868516204840221974534104880102744896972021892259483232719891450822523222765895774354514251485621342874835254640433719144921606561894726187763541533216073521235490558522138751453265408033973444795888801831359807682283493816044326896851470848818725404014706847786217023257940088042283700286552635106584193870067833258529027631813912592881104969020588590845396162995161739638046399278294730367836045481523708648606509892515786908835233749520210167583624184036459289987710203539936781715171766573496534619139921575720196061622222757709687754460608657362836740509287017886311847568082961584244528711795941163794195065639890120910663067944129904515724586431641337583354709059338082960383675063271828458240192713414305046926687359822672512260705757451427968238626953716571217584018020477559728878985402035410409771050220813561417426302834050454725350135162740073682770317506037145941380116066407805137058149397543684523351854926148777729302878974459385860337704645748108685075652839789434797186474967069525058794559405274142042663342188872371560546512467151558762132054189318408186943071023827804357215540737549842417324822906969126198063066524302428986193187278729091823620052356916678490207849678176221868959150299068425577474483562992977117655985587904400171678548880295392455821771449121284293735012675500864121667378289894655846501734444969292181288481100106267739756092752745981058105992978005605927492228737555418099757425460355214924572571887440648914165009910446339601657352140407360740004831877450343078569010002042314136607028361242384206401133778104245485108441817109776474184464937371819749606990951169236877168255812436382311344473297549032729446835361128192802765952379969545258524306679560222168988394907862663669093243327456679866910433493218198332979581085321735637400319019369346763908336199335959466157460673849655810487508154816343842047279176053704781309025243691899357029238609974916128087144986216624636989819077847466573831066937749798407619761172844343197687826796056481515026680913284129782085589664491034747111568431780974283728556687361171523398952937240229910895572837398292261342138168953725793868029811682022717981289855936317223633274294033189247350508903803641058735393533356380505964147797411285642681091711243215042465640381283212721620679426041221545779257390165936849426766296240459268979288482288027537162929303030399804705919589018726711272892947455616795548551699669998358630397342794242682215844662053177649547702413491138719187283239054104475500066269477469755759725517438320683102648882623560466718774998247057763043380563690159639893868404398711788174655652384639408488626297257434952313506574688152322437122083692082978263579447701930141682168696349200613335918663263885014763493359799374851520184214538891545905835239683189181134468128508248746370931218150199395058570588104054740859331854735419307181081264588938505553543730891186054258169656866984955941993973769475559815596812514803862530350958912986393797783542855935475373609003709501810903162324313005136941725303050047622507788705366643911173655193839796705542597778053263734877539618401328780275065379294344948236408922119804328634287497533432379159213685188669531188184051761683412872130745849572573803125130181646903826119099432151195474051720037211303659498120344091891233396971258219402235428331837181844690552990720685469964359231538874745334998122932143793397840844300661338721884036110673325573335158838050113367853418432759216429399631550205994913034084865353462072665790854081710923954736152826629554949839467386696792949927653768609044848351631019005980676094389598158467687255878401687204847889442484476648844097954298251318111738804399145516674335470615190803277554659675001438415543285733776416429467792733242723872199754035489092398452553251223589849943582615050337470888202707212335250703157186122859174555713596660223672786507730511200032490206105633297717677763623893969386312560798025151016774149794256753152784902132869336749930739727666314591289272693292866771385914335222085605024992513109647005751145427417079236785189400149510227873322499528149079007421049976132946957477794460906193951909775810209672746168910747833353118545715204888819943797216718990819583224386508729597695531289067331834076457099839650105541139728093441333039661481271924639616753884944706812126381755574796648192048541187341432542159383232819330346335326899802385789153467377500432168769007522290492784414491423441691252274562159345080224402963074364859445382788985144366115933414241886865925961549286347393855686813413062959821466375838850231535894825484730464609280929984202855643897893993359172084438853074300543226750842213745771902651643205987400775685540296607293389484281149523653566737420013042550312610633089627784408254301729690471678608684816104841508468928959683498400307274474590551034312144374922475844834302535291020723593421576494446627785079606513180083209878105425006002217833269672269909655235716113243094453396129556909728870417244596886460014316798876105580626132959824991837921794404863612070961759310807281338769840536379516353434731642094449128155863574321705067071817128649586054166039677614038306240203396318579072119031362916148124656039884514314056396261909130833811363772736673273643707448236204250912733849477562965862125865799206122180415670132148160930243559614526146690220503466757036073005538752566991691660935835492683573143208773060825939503625835238139097660887878473061398785423229496810365023700381946190588660611264235477464296181294210986750156276098255477591938050137070500157694118818630357608034704893314286727979175543050275676684761588599791792077536486090824945778082220390295164221921019653746276076700667213292651836287339697265203118925620021561349335289238839216515367196560752699744851220412553052813983470885157640838030378234472088886264651062695312144538213265068155412880950152490817384405955526014537532090051322793380388850720048070228884831115357999727796976610796391780083960605408124481824335433083487896934442328278751837656001827446723934625113916201059593007978166782667890433728368958720434938927405616719895158615540090204782186476088190601918302911373138589669617512926871360435234561771761966063165033432968981738310452362418962887680284743097023755513662458296988051687728313007353733315708977552707053152612216805422347356925818748112400526182013346849659819633587378914598466796106999752938852291568580341765224533588622888171426200583824979002445050369751714474940745972450829140946389080921223761208449136056594085272488335657006084816136167139978190919011042666341939125119682590515069652000779489216605107297847315475961966342940450870337894909540967818396503004658008197735488093729982288849772396608090813246621468151775017070987984678420464074357349871042296693672095881986677455070675400344926425499296178563487247111681655468804464580686866404893947506757508310625852323317923602267280060335593431652949536490293703104485208479654956398915536492594544194950724498673282866926228624998428164252355855087416180541403862037374556539684819224247397254762267024497394299109204955220189363982112416112415108872664918672638253308298248139919599883615483558212657560486733189582948996079107395510376665087353515450880290075272780503621835605685341046387692257252906344662406486833748727385808074452796978937720397784041841598500099077827049041149319945797259350233072518086763367660110501805694707337449049590768648029435663315807443828229947096696374201314311853014998515811228415960268374295133897831700077067753553419812049769330427660859103743935538238781500247339024554724792026126138822286251379089762553507864803634502854515880259109835100717763594098527888890056835949478848039443670555855068095140348027328602658533347217942161307530580893741240399780651390882019855933525892033987552342521308112755469201563927477119160412494776890944681099606759387635385641794468136216561655487825484259875166965542389035684378355128683463706696971960884420394498582178255675118536849686756774882368619973367976926421103755209562739316651301250280423719907935508226703764637618514574654999184734086395591672502117101669344525707294485329987795698990170633237143634778519287972309338307614173717144636945082437271939264628885429769097365613730397595362113606071114765674493086780595138611624025492145755255649578888476192914609008093799434879494806671357698055941921748364061941869021158990080893506263053940807565976480763831071200444868269072230370834566184111550724626184156654392437373718041084894220494694148335587303115059713995348259734817698199615088373574650970481072470095640521404512865242529631683351104240029524250954755474134160575745758320975276224551386126380797471045205914238971963341220843973758353369663454146559142973975110098696659271628597100109705321459661805088757257012224465520432940855123435084332182847306337794434921316402889655041662905378360161406820792530576922923598630301381827053923829347403690750625450250003649770218008623922093965239396267576818293365149066414575351997484252134078260269149357907826345452494051303059653792851921373037581613190849453085682267193444857690704773508463010084943820976890348919915214961427719375763362499465411010630586762070030388084130492069511913927894229369685672423100887461415219702380654008792044475210958529028480881308551345526161542018234356673412930281825176767718360354696960900102609262903362115761933393116987145526026739458040807327082955866811794206099582862153598992765959681000158567032569777629527285496798784614505699819031592674531102831330740500764857213210878535081308076411517012071901360466677132649407148489211656983694868103138034260125395190982783928710219251787459145429736396183217651280503727023527626073657641496559371680332066463399462138853454535856591593999452988074602240204232024324382665769762572009853186354654516033307164147837116345948593921176169724328864580411538872262470325099543544672978956144167106238359246214911518240841791322427917089643808114889260885333661375803555478232354003453119912512493725360919581546729288091019438943457954462559835999100544058575007619976964169212047198592452900235777044105993051805875767177326766489991427704191749029176736139978970082075707190004750127980197939036297571839365543321821226578777941559107045698524201822805742068130469268000691148386914471482630605372357478164147600808503045745133525991005337636232640057584907607011181344172858773431222056468260208609160047646416081577269098114366663443312014566856473353329416441289848687891152737291660209896631243273045928502319307674246186870267689067101423861155929198696837934131371810550412452247253147779490887558411476773963469094373823909725165559681496529909978474464354935667728690030288500098585928132362820387491403699324256819177448323485210361301273056328247139124505573812722198069377628177185606829648114304418967071603404086193318956069692867911837952156679545859314198747804276935103910891978421435058644870813135408652216482967079205652825179906874757012922133242373422030374876094957649466040707323410435385597754617842517406628656169676678802925324605661566221486790923379318710437690284339897580462697432134591410851486766584770871006317968809817754982348391438257419818387824359369310518803217713940515919241232618329437567841517916782718861146245113428152182342346584828746584864033688445141933375522238986621045441602379767905096192961734390423476486247360969452674841013279166621642741124106452410990262884165722452582805855162639658217696067135117967589400324681734524675307283102974507523010525110709777974040243762545676131088559112140425324628999269408083468861226730605057228974434645231327775027318447715393165849532363566971590944926251845574607539086890512199985690147043023675316624678707582916955779374900736803868875224716831003710201113788519937471334396479469824224841274385266676644339295981389734902692889831787748026174737378736836411885358280832821026590970058111507549498374613225318216501341980427059708006966758916371431567402677457459759187218290959200675061200805431836993755368567521708606286290890548330170986262620319060667359213194667674705071588535731846621487028094299150237374286605865883369044330615620643394034038174896458427436812246228371932455465616377352932897487885319235308835430269012972564786922715021155996258742430504907124249577974413865925456418387096765942102924637502207791589003473744889923990491354546197665645777588032434485873043817192375190896018532082596909126196702823180813335397994394967480309786101112573834779028777405813041089319857904897236603707499958540267291251379591644504251638446187116328672322319176416074413866343585629362326027268861030292381305590028103004147574441044588349205140281022329456277010549517240299037608760284067108273362394860279475950411048050817899068429086574952131110799668016834596978049361219361139085563481317390984523650424140508021750783753295629998066733113436270771390659564419476827746001496127511974369912358713317937399641528140197609787646570771508127536104243868766464904825806303952316797177505145289588934600586507445608221293907415871088911522064828398846579555413835035565531714974304584735632348939284310955852033303723032108411592095768423033159855283804618465450501307170651176727870991574616952412981168017564929144665234669747858158417278435752741737005795245249440878761193900936225330688973508881905039745870952095079140101983677571298966814753675315481376385756139213314067995241695421645830534734287099025009934060729062323938725735543933886401887242985824344932638709101275674810954022339882180277764979805804242596000528290627016049169449214398163575359766558360575450305079520750186898243358106588506418865198833193532950336707417377720517849953370783318631045940722014835806206871478890972381203137087688902554081201921784022599761653915431187874859762788087751289760087409997795436060036482397476755379497758604464783133815904889249437185504437860356984236611699283096198509075271744297516655035208365878786989948423440011582997272481621590772315883456772202247415338365443671465491978283678777439624106979110255116272507481041937653891751584472082381061174791553943811660636330912656198437913013111110298298073087396373712301509367154381282950041254046564914370676108693395965358814178416588361602065017903062950405381010582702705099258906239949341063347214817113734070176163788149168824076025384004635893651158214530470009748495063927548981016469598183721540670841965465920960047196830959847481853469761059489413501957849509201324251590113131894510137845866584400504370181645009746776320976700547891720408763876057325045525383719821356509546812965067105981324744333369388294281512999979543699481043159137563894449640049959769419636490580934691880243775693014663217225226764015808805295563705616242152190959451026708527060970612887377025114543611702737137188857245947937600135958130921056440835868625550747981218092718821935596677039849654081936427227911662417033536697246413816467075708117401569088468757439097058052925204117702181492959296457603879444013614583017155019272509370789464498257320568043649774852760856864698203377513384917001080871249037595942115324178811245657633933454403921979789551979143075111630940725406305824366564780812281239136377580394616187625738374620743492097177435044668114963433938154709095155895718246830073831606102323915664319532869012900231074562462204639764594967701439197342372897353963083526376984555412254733120732724632502010638162938291201560562981677829722324394238062128386264223098972195511249739978050852721447039173385534513075383506403146454106047316088908780536130833549721472596815276301627471215528850311853005811957358503356335015075152649909250009090380853747666236019194765465117892504765586680856394745771790599443909255182441186832115682547522237072864040112733751848852326382005626444442896504302905178601777998292294483290440613685258044815324997602331283842734806645929767693646881804367712079001568553548321624646772504506295282542177000372443129434855073059973275574950893636826287979131675362352634275644007907145922355075667792417987858110058497999164987176243239808276220856845255781484232005254153531474858725931445332386230969539474556926056417451473611010660269876737799182427217656984891634572221774142446566395042564198208639388403636018882015793488630571277190836302046163261635358948851686561362448851612646420282552246371856252168368793084302789305186747162359051646753441616198162087856395569003756130141176596651902456074684513752387034795746454021434862944443692064640070158936045681001554701292144599252107454013984254378889592265393183043417712747354804885205563107907938754111662545016964301271605152843490894408903332157211319598611531549677766446741451540655615062114170006134395963354318926646255785001653317684083364474869551334926804993437312300645879784318055610772724322995829424013420094704702540053475165119151199593232887721430161144455893335025268758142718831548258786120368683919223821859830614196682629241369600876969031209466225106711417465755378217621503060382498755518118679109952078367260460253077411775550783655171281143366101274572165213900011840823774872005079003212017488763839128585392116308634087106658407401426157983971491833692415580095292279822110730201925812695242855861761535891210039963764374017197076935069560326365972520479672810809789727181612214299486406219119171836004663564969102825639893068559049758809857929211418105916162510871241341520822986841503313937578381075859001133891174712536094240815108878243398136821239635641627322200548466897758803003475273346591071131188658663856340527830459647864910903739083336016806357447648409936121767003958169532861919087570042141753365502678560481251690523969441354180505459194954289143305095984042400692818853921373316733104678549218878253814355785443609796077556354400329572300666138490597514929831499305057612388637067821663875664246067348508831627941684682327742321427425610644754834017439836556880441365175655471149164571322626407487947700529237516954534065246326258267191855681824982485739739516686644021695491951896609454957488714370844777188733915115188015192016165108538480629627756416744466941298406956115799211922050876323749445238748618607534010199600470512878051415701733532307509827361628340976702472150900176882034617972643335740736426445889431026772621149376266848491904586864317901590723197951342950640731770387366950735319422898697541784162199389009204741515221231574949802432313433362182435725554286742194137662435235294254465078187857926611543372783620374000981205000061910445762119147314501681647006770232190394411385011814813479404095581049245712930617325589875548218623880105965737524634613904326594551069014915308035615215121897001567632992372738617976638263395306679801526574289548540358906512779352395205376621128005414190048882768554857054682709470799100334466985002691654117353595862873837830663221088883224959288792043383655152323631698788857840152182344153359643030327469129025526404612910774895333779809088274157447677185114417487719365452176679672517650060768232571545318845209258192352991978022240498253603474377632743166238469346733842861944483141500689336800579787495765324295258078961221065841479339381631367648763858030166531588418961797126086541643525859486174376295259758901594177510039058042910687082070382308883930975302649211466561974982769169955791773389584735775466481598696128797744984462908428945994646308810933493485759554172747905667713301062694923968897111122506658086877565452054495634624971950741749572242982022659342607291474023867200700092741660285970179298304656900624472826939042553471837374465792991611273377701559211695919546390035173977327007289219848067374894424323274559272900278157485463977234432324061146091899386763677478985858730148112658569297114689909531535401346242631234064504476507617447671884712792010564910670609283360733040257908794598047687089923038762428740852666925964749322970611596370797451455396053777159997725520470539600393038916543131731291966178238524442581135712537745600376450525987101817083933073102556694606864378475038544539597520911447868340561493544276730668511666108998190574406429891327328392202986078266901616059535653914529663417876591581631195774061847647201287141193539928525909557092408170501976772885505943474335680282078517291881161089294204167522389926948757396653548084945057498548666362564378181018959404426633809628404694129733764468351327456159122993160359204822944318671438735879412834163306909536951067122005872299669074381021948758488218850478465489679520358058369548509836517891657020328055121735558428729746688339181172339453026907929237081478002933408598707459391668653257263961183162256438505222122598226190342579643386062327981912147537473311312921503375530939339290760588103367381136427790182650931866862209974045190945630236616294397087835829646501523553108687038467602911355947834097982844567721856110557979915940689764594966388387725622828834245689977864507726647188798989028304822653744353110047775441333340349937300353548113363753635047491891605246212500383530166961624602650576344754063442657313663608073329955232927201409887805783999297361573794910194857507244285501132830274991052513445815130040664607330291263339361224733021919601346024365602875056416070279693151456937627174848840992978027680083725184484176408596201165077426676452517479320768873426957079989758726434943893805289170076205245803582681320967654765957178269757558895295272668261372953276419823712394380742091090670453018647226649093141001979332486833676810507315923411682807268936435900776110208943021834303773287980829059690221167592507302946565423063592459190104609482720954506197698654986494916810161769901787635292865224640714148318419024839983561420401487634381788965538260769404859331374177360884537005209481512315269103023359729390463307860296291949103779578215908067416279870453266327031998905495073460610207304580668945253656161612045835416461483369002693993145445383882338256132234652295790798106670636655982563956028490013685801932377389369580664163967166725732924596953494037612685487459709111757228170930816118469545789267332811786562654166556813164645210472697207585806832172559943064776924872487613431067284884152902420453794526766270042299841670523221053617843555233948205624470807462002844405340399506225215761331892613533141259535477201895130509840714266285827729850158392923303774364742339848752370215309631296220785561622646309322052951771430084230166822846201920556293818419879846327463673541929961266178348941618760051505291254341274019658058549043931356387341613409666783926660564426193937578301209221165364050780280295512256338906653359539950351145191200300723085003241324544490188317650129079700808737073734822769315195988552431764295993295347152290839864873960830129910967643544410236691377756440649938536534477792894778665576951020578612499207647524437588960432193698591324290281728486678323933033558588009410149239890290707155515903062241136148519029660515066146567688226609783845120685644605827734760277526670852127372914891642641340960685480081871748475751923385548672607441141779593255964347187623538814065181569601871354626695322178995653021353350282232495742515448879490415496840540779455576386010597093608350989941059925664140076007487779714937378952843978267114878807595628912938056119723808365988577832989316716195284918161811155405801329343106553791210219527020777353268972882723668504704298443706102676379395699752738187988786338245319754498877393992789882920214567238715586104161728848148786956210847480320717522191160718010301912578658384723219318539103280486467186995890002459746546909677618324684231658621186888943465772339913719237403875874872149978789728732668949834016492654144199284879853835455082032451917573942792851489042118647346127011194493248754863442060730358044691486318650136708510525816495695680112761403453185212531705220087179995463274601886967417108152942296367074349418675945138426638860150790706277787637248544041088287543596646418882019689904667570278104751283426775855753808070584242154951098113455929180663982432245364035632530585396329531970780920239280348069869989441242268180710118067528185930401186371931059327044610138756969786718544308957231155747629601819161949492143699639165480731125510005812805837510490835784940223494119274052462496746183607029884103078576045003381441140342067143636764632167748768290788083376602083280543391167945846844652873436191888128024769001315728212942399517471835902124538724902934559069452773716150229494827259738896392258968200135407158717294006637859857885314001995589095980621174487074178919068351258654766406349319172185506083364239085075711198333866255608381037911451499621470897335849744815145665581014652082875883566066708558307158831332550763694575538093604153982462620636319067080853583399907656770419876625046075149943878168909333686814032260422807167094437347772149763961837503342473955460845942799007510605818557608583822566141373303852609473951797401950401915832767642236369531739616918720768665031899369398816787017275275555529579344661820005438065700830970620946436621092641967779696209332572092073953145233816780435581888507817996127128701043396077212888333559516464856514952412305491156347567081173519344982126541314822906822062006365018468600421495923535140146189926282450266200337061478089405250639851269705835556621544651262191591990684242409915984445658443818443698238007087555060358731936337895974688982161541800036551250517685242702279865106222032567834770118712534083382397061275587801925298623842776945875406755457476469658653150031815669404176089021247128167757165279084913730558319922570419132014339619056287351225051508597340810671465248449923632747847278324982770277546463254585872427270783280992063471771885557612720841368180418522876705243130056514406460090397290500596265877277407269996922701073049613720586398677369346580837591430088345546789245285807377811172918743986367137122676565331636249217135690685347284681013693125222888184864944159997990516626077265494046904141543979833279448476301869939858227537976529186264813727929864603784454839232712311832066610733238590602307112494059253367544688347413942648018139865612726603665534329056611879585974438782200279039957760891220557393686555825577257518363386233040155048475162847223367923620912604091921502620731088265257271721316135295962858252236877909979009546754723523520508653419725725969957661518943016019728730406197450457092198392350636880848427565153457015535014674361224164405331232337177055179792503791156664797787766824723086396589795536795875647155695085727786568636062034579635912678807421331521080128430808042747952072158926707797423633764122634505544270207317522492029095718982401657445014736897300337614945497978736058679652819803010730584903128894094646009195207037207482971420449364296894216948677183851622438688056075817098626356209720607867815451453781961576329317610433678544410834870464323594455208110266991780604650468238213098270815188689906629230936451889667142315146634252951997359081078692666410417168272362037109766652566685739830389934649876275269646487735259098363360780537454712053516493528755637647378333171429054985505058311478294559910344692270949145724533492908002018695115418474608797061751120796333212432435498115384742687814590396000006224623466562664758705915988318571754663690705426262679395587690396393382816664110136560802891864837207217455846912671503653422000027872387604293141255611845889481322081232719435467519240129008293519476584555136631552017128302363059374214527882790102304723472243384434117254198551447300991369076560540264120651542157182205255130828541010568854416103584642778038139416346650235649921911321351054576092983868886878350222286186776287253167172454613450889726290588103397647066318966441670412683124394265116830924553706879126319624950682388768690971589867895560016260640768753073772423744398435956865422115980799659056586592384142873209472514553892392470057356739239123451730987764498431890067053177629187312566541238165063285569034634642343787117097265116661540808578525794744667213012751818118758201445681169619516189090346030647522627779693613114706455302272856505829083422693924149235849635059864076118802031705748022324238777828929926753756239039084802702833588594142140868192445449100229070206330568794210484155078042639233575520289736420654871456518080116756395953540379805309350998422463087050188472686504456084171029864258545417364977741397455182410419441857897350256930462107162188654244588621396153528760958425188877887435340644564743420502575485804518028490232561076359001977953570953602456955907620352677417554137667980949722201814122029609141497011390669184511215234881303906918727611230198044771898970398761192200100129825138897502072915796597152326278931143251804839924125694219960563530448804259171771877105596307292414310015221900603572706873302937255772462956490368754157925618380211257270590791426634833620257924829735917608941551910951120047294326998637492454135911184736660799689002657001211476522702493135230598812665730420334633407099993322318073052339048174867535775194123092751310693509062870657444891970706081632393646797468898065084746269278532136409924416544213342783684300939394274181843432000594720165839638101144785597577837081284841569212408469406314288677253807168859982902374921370101146006394253651698567498151416890697000813761526535748154381687912023126316091790880976925634552009683053440961482245009520654463213146704237581982412482510510650257871410860102547195413461230485748774397364758987236527956490377583304371151912135069278203533371755905957478786602886481302772087086011708809767976003685473199744619141065104426652568552095727043601360874736757529379266530767081830160339905487268413783307166380631566918167800641908926128703020201354036207275954024845956815867498530546688222326987572400884484931579861482764637672181955412575528205654307924559653937878896193904230897204146783396335264416903043392245034617917128800417786472001697513364477318941697540608278510419235478196745601678032722175052892508621269559033011293056704690001467430785001833649512731096031933047072316299466356291244873746165712172741998800017024456849111586370598889006632275115999684074118258256495918103910013064514967194337348780928394861787259929790736298981529377470795083810763419025555348920364938524608012258906581765222268312839125998135203001790657989747190575059438555992938743368776111051278710679962697503185545839767345087427987829391626129760978654979372295873450634251040965695806455772943643309598161633578413451775611143421071761336790607125363717284587160117112689264407417813026108897509447654185123039619937277178225864781546478216243685845599771062693018230534874594187723240704639103047693795660058676186194244285395177151963137313805000775270501879949588260111083751032839273581665901336877964759812823072298778685443328751970053278354173378033975784775481815227724089378544688482724807707886629551188686738172032185387782481424321411274772648049537462928817462829360886246136110071352103646730193183946719991232823680044846780634618761349017881217783429200660303464026808748337749469112414672741103280245526767420397580124671145557020238344345816252762523714752551401569081555911957062051798855158663293906602904664804999997555676868774984811950275504982271006195040375442286934635431205113571733866843750367787538332470241715511811904863787029518114044875172868799453629707728089158729248578863556051751945109457851615699893642118669439751193999739972893673893582387644276910641617649143296487721554735978512209135203129077347141998693886877540586712765966516308706102168705916361159963635904977791400365705156757073674263636428202403776695158891097208618159658350493336226642300570697585340562832882774327866515688608940847333148445477102281110050226772419508131231305487061820713829165317289845491884968561049770192181492548294995841035130067474295043580339319310847498372638035839975486140708255690043911572853275668777179711392098642474518536929512002455771745758150512527169564124569441221985687024572227600604490154350376783032889900770999074168099059662451116331381801645187402359287046072037700553436404131747640225802632724141388170682933151103469413209864752444393973913204003732786790305531860887867770127218072439526133867924664187282092955513262833613778399623270724486723791194566416314385143418359449792007150035570028235106063278042443181174762418970827037070500742405911293086922476133992188399265742638246804474271451448393980660675520872528162917104411934280436036961257836049701852994343336329533814278555966919254620961045711446383926773512359491815884753307432014792949498923057313992644039878472775219411909084936712231616578504833429763697423140260382543227398429218981337043454916714821568186455853091995458143364794559351683840603578682174994944759645243232863593862623667837329012256278516144247724595355831169832336398685819271355274600025275035062164483905270186352964790805758665705573212474810344029036747748742192063377854866258505879871507135296297069397569508190234227341321232592445578731246084954808715422868183945794484417198329821894962577501323174889513553191252345693202754892926630019743423322164795606689117124653498101776160894952315598173267977218617128259330009540688154824014172835217598673773066642053701998124812960605906591971385652054120772736906971824798199570842934432644082176307025001742611918135991302840614524191755654696662891891435264658909783463382601082424219091680738187576200372180337554122727396133995339106029576101651265888191137720179155161824753372238987178642519916074260892573616054395700518714945793868686669466224891647481084737961938843163837941271966254509999117342227082174692264739406903962824326764005173430692790309341258113474055556595875126017289313070121585535757367958279295935300940942493857865011812724597035200588990838504088736384753276932191684520514356938477696849519020558619918657809774075067758184216078895548899690224479295596217657658367186735177603859292600212545175889083373584714254913410944021918846468853449066714532583129722163821557515358907908765504488500325415726391119956180551713683803031320065184985604212260477996548508892326514029743322584751190528778700433973996084932609718357038667687871046373399126985133688515778520881756416564245708601061681543643932649845384809610863938462434137032787473572852787883289548354191697350829823168545219369333747772870230571661267840276309689266661245777758208122642752929804775944717866014825279773531133087497413108267320391102410738759085867853338892539486157891173330465959856154675571438120099293850544034678769640827340524431333834554466333181227074545748957865231271116806003139503226976795251886314390176869902906138016547167804546320918574148691673357258559797564032218012554929636836184363506828859858714388380243741114342473318925028996138455773778717649404707547602748235750055018684663455256388184835593787692045438493303610350670864352898334126653555394448258574636968517597346143041026900960172461278626516830124227503566992946085711575830705283259779990020328703262117938829146403082174119519204803369183533889597387336958687403935092669215422072194979778316495619056177790122473582843206576817442876110033168058253524157610922515869308605678795465287401959566150126256583858193543039897394263457888111716973456931588940462017544979045167778344748656670960474721098342279285589704904534632612151469706635256923754411419519524813710786685192660966076758824508431072533720692932002702594396208800619322965200043233887629132769569148708536185420933099338060922128859020617093502557930748219959976621630908871290897082515772952233822956764523440269600306668746061909879262840338487417680936995316871336106662988515355177613842226246631818018343123305033641123535365517512338742258404884891192106456292077477222379811836736507391028718019555459233061763070973067451254322139948879386740141357637665954805955037586978754812499287461586440789871678960023581556389053188836148968869909400354004620037835638457427148532344942549213163197729385839043187897789726780756340867107085922007197202053673285313055115367870672532600129073175528897312826012835225216417922888208417126317788441657809092712261926007082586786251480447684350551266552276289836133750749639025986799088742970963504757983069214121850248612588415934991758505415060845952225628075731766555667872942372696988378544885978647636891099816394995984051694660130579430720273485647624830195410249795774522826613435639496792118301873994271830742973141132239762794320348873358761140971120831870156498102706463839718385308302268289799897028537969407838904795159755855382680435260004038330973692752331170871103430315744001447013562304277093795674819328530638131567283624602719241090689951171442487763357146951694232712254421602797757874235888968223252391656901153110157090726165970699652837274631555192453200203927822991313243924782956683065354983798161153045661689633612134269232116855189026044711705871703488683898889008406032802602331690951015274894766102012875575180357278049560960117141345239623535823758097316752919028428052105391533004021391393074156385582885895088996907835090460624334575123546337984961664465587149257426225123611555124543331013580428313988192366402844666969616048580332796831484326926102996831135437470580745344844701502585297207685810168907320893591859381338661056220866705786672570878156510569197473563076747449703112318215048921232725412021440444689797362496646728343763906804180616274572395282046113396360110058845847697180651144848761982508669035355584104491626351442299046588973741677736363014675114745278919484737226173498166931899200558565943507130893965471710270918744043093568504066173706114926740824688511117830598981095473110084197521420172055762850647245243098985535969355924787549772933076482545884726185426563161309481096083448014988811826840801954715434624188125198600127887486542836338379388318338648216331966583736979729132434637802630728132021740697367948239374155341190877405627472658622284357420513028120279217996701447006668434063740950532474369034805772611904415422560642676308256765652720701496621110074312988312916478229938879354442359547263167249906553757640941879271121327459207311451618084479371040778956576968466209673764672296375926211121401313374494262387571983547778827919577820722732608553568437511642734563859985564020096844559378984862703224477732172221166068961498198704889994961281371012878607394059339694619861238490939782396508046628181044460773764540479044130265381526113855410722718503270678849103236218083372264585946374277558802817596980564538648684244922630545980833865732856317411184661211306675903520256452871787617761604618511117350760731556956106608067763726467313126572887971601514994146985520570412837013784000836411670364223236793734781253564414285523896383629395700755748295213881653362114425220817226711480036292086203496646859581387104024385764085974854988461362367202705888343827579509828780727650811223015394341871180714821852254492109704791285398175516077545639756101823811915082695876834144175024149481957624172104488550076444743058730477171590310411342990077948699725447286508619943747382615695325117781518466230301817691005686589683790688530628345997223792317664113439982580085034242120992808035082480949542449523110133745957835870572050391138058274800845592808640508212331576607740592362095345316414687247141161938092114629293001916683808302302646871045403257046868381004575839326272252146154615306210160639283354702323306371287428946349475227468745005927307711458206981052934001902199856077545122432883037718843688305198052696321022595780194708562619618891235172972255882221761640752997702966139141043557981517526662503499023199876372457656363200443169235672989684490828955449379149857467470749459290730972607541242737253601739999060771796534945093663690784534277601490192804775073548141654006139037801880282189696015883885891814174127795761038010610460440751154562132899090716973767643563441522347473596923285749310861820511357249960957067487310897204250049197634538116643270688623201983983252297985605702466329727774521519253768610887138690315940862430097089640097983190982581166523409918920853841696888773945570625144996085981219675092233156209505850837107131541440056378209653706230895131009144630062147585327456386682665646777129101948104619955330751822126612520181579299679722165334201305084717555167437506340120348275995132711255325482763703860012376278162449168225105152508989555756868459807776122055597763535871760519570334412361223705810843210547714166189615319367662264695137865927797769631000363007134860703125268803261968041367540037349507637510645191611193796404187616832241028367917138827540155068366386818565632623575252991479583302803093617768217754462427361624315904791137204869516932972050498501385588056812727743979766444300889333880686465180464747895440436840964269120071329330930939485223018504150081195460667487041238968868839694095513340414255024593647885056560082573277311053209951621216206463599535311507314317636948000839497577769790125675213973663437215237908626042671133248842611809240605509862041639432621801443797581049641429073414903543886727905586298849493769703343288850427499101255996329983603051649878952322196516915547737617747474117396621168028360565854121307877631484863890253370747340163709686992772160541211640230681046489532194253067781175377005018712009549027367822368403557983845490390158756725868700411074816496743825314475512080018555714975797702517856699769222805627708981839424678196548879687665859825046294004023598941564388916586299405750850333614876250067037827611097164257827350415214315542241888436108346698325270100838081696636305337558309406477505268037168217799244312446419017994943493584945757496601200621855506031654006697241451467334897500671441075976785299940588837803782900844955322580183484709773781958639808803499374460237258922079177383400410279070864678057802845972302056596747612281819418980206834302667347977837597357912618605580284778196642891698654937339383390193076937221812046328373933996307140276698000163664021619624188004024119911838628105143347541005833246754972654258350833755982283393948019818358931293025998321192383318895106776835479853268533897555957179969834872618274321393935935827815042642475056236300570323059055686931694121619687761335791608417823488028638337052774910834461326101520006511957062824375168011973095353389987729214137247497739075976565918246507925884543682474529787172599865077129149516556042887118447310485859915761930673495290627031936806515196221792984342402507069673686185657263040326183888791350830105609608570910859211818554497944871938311183131451045424031677553684694526604548815998334037325670356952158964403303824572254717679284253064352433754330265927599233541660540502618826619943719242438180949659482090403284141719653921351251433014554893066566059442762665764284836088804748592705970214287416059241919175028528225879252998831831739779350360438995698167345047122972435146537809444521314840615747908376175125711596878479505626770194123040381317884095923829539494444555500380835017015517062785283545697976996951534861732956841308918475038918204441469469458099431603528166788278921228181170587773271754741935896036516649853956568520219396365747808122148283441122260058090471729715303433332224678027757968180031753148554556497855119015973625269575102608257455384466930076722561858430985160183478308336194303402205975586303924599520278690783107336082484752525693221824270428324743899523770970918489645456246091773092704044417266332101778601808482118696843929328197331934821089886837247886021697907284785626431529702192762690191951548260408102008546435928234400248770133645822363576890620326510241627042394455310489514663083452752149875419376370794920538408875110769015026052311109544219795554751412238853458203633852493507561559543874778975748878130132878430412098524630096351504091919613357928750340404679465497848597399481634221933489256540032131498756931015838023975973669237057225878958751356069516866889432456056628331670155676183238572433930156662023298748110937001335352060016977455802158743129804055872437798315662676422856393337942609538774169186840849093381275220319993680621128753109675494568946633336256097731114578626671860841180784813256994316590341479503317799358957260028206922611858180858374399049305473327916868897792178648594159772423311265169729055953017600322319497734260178475809498213360406451010412378999360866891916466871779181803444561440642955136254985096697247489452453727416968901780444391250459924456865081414713373355304983906990838304926013446174338505780184911054289440002827363580490936888748639889695760067818964645853843247316005367941568059432920299264478030661777324206394006952656748400681423589789473166760698594575905658225801490222605433478620350505910521808526854279537999441741083715411922037649726104520565722852187919395365681544242482727260644121251084967504019931268795992443365020966721752220129776496835759761293726932651611470410057354293910076290411623433874784373486154478817955967286459745003492846408970948639714756135736435666687771201728682910898594968928583996003363102518265352872935979059587970007842143453308224500164352263063079156772698902863756501302335117992602842487626863804684468699325604649155582189913329734464659510797752499484926230303931306668406551772273051140110768709419321665325096677508207377184048227659882224494931402744383908255472606825615032905839733332377712584816671118422248080492522626553924888509207319190273379472650588734805988226189052661550022842777109912355606312162542053030212720381056520245032006163495382331619344258199885466644320347491204053695565929414715495717798246529968686451448073849842030044279110727586588176638237095553223971326655139480537101807567121822614453965516423503524341208780519452892480637180953127749802857631019071437838833008390553989554123571014302533039828082954847007527905963950788348822797854241288077213953408438284221055606852275478494990247107638002189361628707345604407915964907210446934763038497504635294351988748416426116664573229533066695043426311703626100905078588000568946178261084916237981855972276030483085226705370879272311446984896275440211605915334196927827914720216512914061767205887183232309888932908397190484596107895273757143506299971854799369415551912636119900784330174436816939632741579889367614546533241667281092800787060202076631186151617196281541564190378189456000170090399024320683902094383726328727945720080966687395169414720605427328392495084280852881293493014499505286967533889598536980976009050183066905097989326934816406414961319525736286346561413393377456008006412368872327229675683599274406414511248169872699251346027292932813298698504197914243823184194527268956203323086938545075308625764130266057213675457080524094526582950118296544368327242878907692582773491164978624174625795168193663364609227693325478339121677941959127085160527719921382374403487146207755299353363457287358815083285278236014989495102328540277541581791854963463094514925965364384678522792418342034647000397578747903642597568451220688610197299033448038141211428552758271527507613485572805694095346777015313660065367920452251178781297199936654316879967931816178633611308091844678645140840553549631567173125921971068780802244509552075775145023898554335874833040224833966906217180844004053714824572986019137764745793500435895849128482664732914145599626802369827613159090719146208801574164382657333843548137453421835043939594075633564652874791985551927418164326237471420231269197538487596449928942767455737592452114497574177983377924462616051554211212453184654124650056780401124699864592029419649389783587005809918740839479814831104571270827518618241385252314203214678748526136690017159436143549071499893422532418912212091580649722621957138592240466765534576927758242677010005527683556985786767558538103027207710696932576268655600012250145496013542169427990471763733726085666754810470474373693827540846948884504947617773503142436483709923842487652140479939046625124265918748562995839003378680585716221085184859297905504552278407474955431069081337092390917068043790351546668455545863625340259324067823784572239825840317404710577068560619982363784503433189217896289273377544995452189649423509471141102003779631790681456206846131307784342065485401226246411557158499143686640523485001253360636864936764953861648751045973175435909662523152729312465462369486413562481921471997784897608855598326287238692308912353179523948491160608405531428275251328488383131331430538154231495247592914924900409162220519562526765311014056414731282744550229931924757830678102732377896900091394975139546455011023493783840117930497035605901945871119338398231652962388545841843680667978806568207761197012816315816856101325491149190556053058479814833410879791319025213115667662721145864768815963799018430510458958416599555247128651960550345700283939434451445194475057178080405741093686167442332341616201768111504474424927673700540477258418166408627039119283129457128223438045015219874606034002221364765451474989204609125109331912710046732432622400752331189349750579643831340075272073109536569256986127412493066346853476425153767494935638838562686378603189713477290193176598361584149810726958465410420324731630502006614359195829403477675508409593234425963407010923357109612185586349313333335378111919862537416683839436928047886655313270725692587047655523756555250553065247418368735487820302375500466803216034762670667744225004661839811538778625020451744191682827178441362595977689232386051954952604146980179281021214700733058228455657930404157967110525232412104041652423912149324931855119101085045825535588336271535005992389357212019179273623320542716404109363073063278044372195617181430765712571773023932653986859266196454008133697211332272386958860801363412135572453946846776800761561555290303892646590749022439607623402405952374507498404321658516629479464704936164107194476942776509483210037797587760989145308046335451862327127182636536177407271457919593573480982661929845690169351783702448759503864008418137180781739611874421985298971098145181493337463163734067114751255361994587552711201831189200391808003444216884992153241777409266456689118220011034587183473492697150104369581596642663571282208637359822729218550747536261604757068788500079595178166149575122903336513044716288968189657225679222670764246084946191905474452450775500690345284634654449600091502489896565351397053936538210009189610640557966850439283026337828302798977104993345921113475541516928967461988334793575646127431940779431759523922055256100898936575790909710534932471881997307462023643048637959068847569071212015820389934937263606665271607328784875506451646378910554543972887726893647391435509147926914421276586877826820618693247740806219289406439404076260433735789364485215618250782469564405567810656254344283196534104468401025951494377728418699022295113211486198238799573219895097095036112068170750457606981453440305869055159518291828373223399418263559849234580630978981798668230850891361516086794714489063169215285918346572138261982810727638160353858922550718914480554022910434608489880388141048612882354492695896643206536224707178109519718443016073975398085815585947765162254300623733306620917023005931524125616176162546549882392925082891633591638365514676928669992794919312781983383833106740508552639193776579831625416029721621786597893039157174237996715966493672955436013529097849245866654643960338801953723949838740419927082835986817387496275708229310377687275731150776090459333335394776350659059064925447964347377883540523737579877309321061745123669250576593113660722124690855792072744815194821100007635207402433281695395801996251906866296384508904269864076457581208216126176153224578373495868842920298684393692124611644336148461099446579417009604053051390737724044205545634841210888024911561862661339266158595432010446418074501432806779357461264978693698058609852604579553666765142497577182901170141683434789199235473969168024407649015058797482129970695823757258639221234362720790160742462143758714941283447257222364868727353944527850870291536886774299141085732701302368120679264719193680831571651072486506688771258790497912773485803159885486644994231038914723917159544295001846789905225044342334242145249596432373776455024716661577749354260451744625952014674987208561620428725358665578944968841299209616945257011754632316203998372209677847660742463935353343804176483847699197141487146605714877897088116806970241280092590006562077851303848580839498669559031387666285505802543097233575965640473847186454761143886330239485274818514673413341273726835453110061148075020823721603371061144605071064994866142335014110923286402884080790853455786402572508896251267606271153325155660429170289099488333104018286180349375497849287656049154550625872196398035458654908884628168818140701794755247667116153863088488690704355460656295362932966439150125516576913745260109505645977992232721036121860683085866418511218476131594689864512625620610352714592540576024171519895698622001038154169739172211482148942588182531046135188644424522361900960141313552651815913069615927387674744482009819418064564366452876432609522914242369204737141567299447684047692201461320681746860370563847875861631648225452874555933369579913406635036978976406928045916758871083745654180505174622683459128688779815633361600382697738324454497439193455527358907057998214966390047711008499634831522938402348029742596204681656504177102453300102048362426377586394100358560554005477499460432832592985995518865790728357645975768081652958293648259680408967272165874932523143696625729804023382452364769070113669672301056927544075207969326574986173032606607980282583344541964275446406160824433675823428042475778744073217076154721860044356789693421013835637134360003632103126628071211722967010381225520773978573155188562582345988162034600773016781356621034103485517284822522054018630596868499786790342206281648757750135527691375807204260988104796874071135266087060532496407447269368047861140697661947204767976837454706596385347683638466767326465943476694264046482400379990045311205362939699067518601889769744363208843652063215696739871248940151741226500452537226739800110916760704666425289202319481826742063803857424225246979092467795418161743983480374388639852487670444138122382353354794940509175672923673874450684156890624912349376128947596766605955861297744828504888812716670803183160434322399149148198265142488854641663386573379369425526261151948812732379064615406560720528673551130586549001011842851498595334137882595449678921242735119250727912881100974797477421937320998968593585738730991905493266436817904675642445255273858014652957378577842523856345111228198457105455809997335145866418997483288638726486454592022515532501224589117637495039805243980783926730141799368482588043931962983696910001406326922490406926005053843447405786855248941982961073220963192116968568272666839916479443934088292484255041742518100506111078826767297989732766779010297728333381340835342981570895879106303783207045168178884547141081406176109046297524492374235953442861447897233844525517912447103160269734069354949077115971284767882663014545309297107605393990141534112426115922770369715788739592016401937100458924544616111188141069732277125020856169870250621768860576906156456347821610277184629455672937435599343981094918611409399253624352899756105771160566487652197500589515816660577771795878086584253623545138836165012801592211782960183688529976186435471236405716605555778422156762816206524416104853439364612507816439959504045718411423313341764520670927216532294889702661707920267567098075259833253453398454667785270428423715000684990043570348283187192427904024442175014900084439011567470739308578968957311964734145549113466359268810221409479712655223063033967194691112719216429563639314636466606032523833072657897481380066799943541676499291569841157098785626015414851704796796501844462225051350476686615410501680434087500725046822960897030454785361107100846741302597657925724550180216903230817922011449394530608238788751871333209503466003767750127875750497351213293003123764417770696133884461432613408324278611654210909580704788642040827668821887965184587693262702140842397002140405788291428894106278975029330816775629828690968572329770521643935462226506389962131935318348859086037986327309101187685560920225622478508058268225733124579532340480775684759382893539825419949354734116596143033016229849603620637183273802287389107847821256196827359110161772381879111206976332518296783602814965996842177615057343760231158709386095676865176541484645386974419701957061472524271894829857746470687354750225216896587260941615770912332547851095920955700425297373013497644578447012468245957759513838720568530559905077348273860888987517583489029803155950787907683957348935235311866225673667976647723048846518946240065766677150523620142217435583607437905678405925092161784761366034796404061882113378535219991080763780790927626907642707179788899237337076285507822546847060238295370916521143098384951023719574464077321778182033132625607982557555999408100942890699642215030026738573580530240935778380574035742882371651239674321773482213229945969164463616191657671980815820966931854360910083672721640536553627493528642408845361525730612803316926997770775760421337657656006902723524573893276128660217573708171288192777956776311606618442539115330309537837777099061340896743317775059795311350560722408271012913052448031908381334381745524253977848224321282478528977651266055054025408181503194489800957308335451676630803749125102435405020217715490753487661766002772800466783221653799100685499757295749629351249826777618265954388878479794987294580883453703373362685182949599257250062661824775901138201215988404415418085384313033867743113208563886834549202127012923371834234272109756653920458118594564125837859475880010690017998840237371947079016299808117822516966914503736221515561839278837968591484426003574023571044708667433529961010192534553765084711933544440969605334106203697373140304695391433513168417469477544571514303518196022564301803383689117447812668493567231763173205901811374186038142498863606405785546915068364523920144912037826368539984953433136760668719325670512049709048513196054171485919945674026730682576646107666552406731083297552638157183050520855098008220878714734709920262874434225642780436853093347749582572185370670086511997531609589827005873377554001177227937285062909685230591052258157020311879223811456689263393362052750187959777559348869996373553106010530916352663137776813076501817384106918460085314607237456518931010853425356787735565687350490998151094358570746436313511096823007562827753372308564423186537885674202849875521009878313695800978754167589441583739913594812292023243003217964349504641289417103285602610689231579979286917944079294322186187667425530615463293710568082433256201661525933759414542171923738626996458036652682728615940562912190121869575813757305862239194752026209627817018858418715127683207590541169924467184633509835271685238808463286964352854660119915443595618442465845279955923990305363839776505166645035808476544537761064717041776981386816436344072505607489159714436265128870209778310478349736368120205711216436995690423625103726355926151555084091046412579203149114713847565492257634349284525112319802391324765081954347505142708851163634048842206272991017260756720101106774427825114097845110259174730272033569544984220836013200633777758208013545299966458565726609631272137683215104727595431834338809442564629192262968700408297186619564709103035421231437929062963578503879383021940821255933141486956050447849570201449835552411814885909103349314466756296232814232476412132025877629443775221402554202778148982125626424454767345215718312431931801296741553179471377821840626209035485695225628686004701841261967656509279636509723935997591635207932941511477543444543412136713626793699479539314378937263182072417656809353736305787450066039700781214975181348976880013175941464746313916923332157248833932693476216131301997063767825905910974882948568934897800777650502905301227214989063997179933199313475707610764297957801072450414187785854560557344871420844743418251890292695707190377099776487258528850218001776201597347454660729300451009276843092339995420444783696968961588514438418253358997421202246182847720951844407099809736019867974723632243621400677414735764586690325810999143436671561850385588455560815155119745710648515218912383934453866841261110507114674054928678735517357848352903338806666055662773116111645778506791723592637386536640096709595320482799632664387936939423456113038145158233488087383597262408034233054227939164291011437372272345778311034514809199085450571778987355002940751656990622739842442515774407489769934337184394177977158050452024881206460703588683638464399733613180950779312806212945712132429521793403408313599136914534201876336220800658006049313987653277265614746420576143633979296919109213411141313711652066911890445107278103316154478013731880367456656967459110977645683148040819647947632114371009976908940056835003308033672708362695311413932456859825424616726383482325448123579897124012421275052442182394857123960960694221124946353247289217531065976044025747090317651090910817562978823498862932060922896003722044658859287975629802196800481782302926967791592473477087712474770526722853271785959983573667055132964808415354281623201241904935397994269911332086002137348321847680737439157048550874101576898382192618221928539777793348285580988777381112420278256200119762600741429646898368266057909985777256030768715156825930243253405845331081429917906012144842186058613162265771137900851167571553036536630407178997660394560795153491711001787161444773471172676857949661122975482370382091142772914809293226469993850029914460119309964448048929029551020029594815842915321423224052767558880552904808310445952773010003106634348907773553260442314550927311196481021053363174478025340241623389514213072301878052266912521380811727690617531975873552862525696177208926649759050626085585269765178914417368713441557199138150656451149358134016766928829964530634246051836511360739543782127546216919923051066873518815438841621520076317616498269315942872595869047286821696759853530673285349188802493875242651232588330153888873860428086516841406873934144187981427036942350727580545856221662782334973023389412995243021725269394902580608415023696662545793583640273254109863587048707124512015263831499062142727973432187606993454628339498919127777527171208896134432208940990832366889075240714260798697685841040378422188869661480755955077474181814049145812922847489392376222966123766445673645380269198986770580050392677099639887484632705976908971679990318905872329627252950495490954147368393136478882052132973655381472913435511609395128541275162745952370592154813723487999722845183470403075152968658841959152759581133943907481492722656812859975108380993941670028286036569606606210591020229985224791831309478223375487788855974474439189426883210956471611361902905001210884188014487311191081673751519031781815801099518914011387932694850625698351137158801471687728154860499589553420745683818065351693078026882508947181364063473159736711694684662905882698707262098985892396523397303364952657819601915098766908091456053025375104254662912193892060222630477278545872223306789345917036506275177117788699591310961126803658267716387578887903862623148631421543122489081860786196931699892433490715072462005473540350070701925613787038103514623796150482530670174089164668503568668337973836342283646324678934275264658118980661208505122030008084592101807451223268707854135242395830169001959174552330067689398117444203101056028833555012812318949331434570937823274778848874548880268642506830213928877788632970164581900017947859201766804556960772567964998257480560242827116822886111751922920545969706509882513912028782937216131180568436510470614163043902261540710750112493431349302977834833809770836134108885908503842980255290337754653311598965138606297204484709451872792700046604252931457974048201122273737211548206054856921173188870664082787082497483497430753445086287639384791254452111242031310295836345110746343312183154737059041849655113737909295738606257900505954359730734443939428335898099411468347316118061612638639427377367712409577312342928913863698204157062821978334859546517382355720384227924256519147886334341408633071307874634891066464783220509768093626806028475986047720685555337103124170600871789084981877642884182614385793771423850083361551868008439130282117394561415717978744693387459264012017239937812509788819252868758186665767184218616982892702880344247150569340964504102661693349703906691340633901198858000636088342433408436948940029328290899498862795979279462867124466809014931435775114891376449949568759505841073814588597409387130699842054264854052826232816653118305813807854110114580072343324812515023538148642544782842874165606745458399059209397261624827030855791877758765617814731176013435836216580147835983213134959533092090908357679104949037412145598772489891414866527200993371271702848319331464882943901372733164487339111303380286658610654225987595405366167268427134944940663087463969522928126698876808148400679701869182182500260006760684285879533061470981004534026541817126058915083995640036212913050904605980830716417661702498350062383212003393175715645055214195706272686184146092139080876880676739131937574325532301131222345911670039727363212128612325023774594707797358145810121099357123426928144184813393183066121698072336637247657077865111759525773866793756714249594526480847397452668161614520348254845073032126486815091257168193935870196475829424262111648152096918440902823354135630151093851902161487421939223720798234377931530032499313711636815432422223617136019167311184354589210718131722114503981714769548625200925319726488499398493028593599134209925853099511310441216670148096556835533996475276470236464203414755894989900366806882279386099135675746640574998114533762359673117394286791384015575682907412782617517944140441985984539256627121585577729911009334339292820311434604476793748590511527337673638848554385052475792663256692540597841984074415455494852189736618488942849158261226527244783282645981788413819736678842186931387210332362637303662760497185695985721294250075824306404466348002749177493693316634020175259561186970285517169292235313142648936163705291110699551316518191539976181040106439901191396938352803458383684680182486384152108108874763921368372063043241185869871655057902028093933401507040502240394471380962794088895827681609752673883770162995525348159461278698827917887441606118895053795767198093866492695960788164510094359186694950964519079353200375111832610619820192513467317436394983893238599313737396470741345551910289730840535385682067018493942584695158168363165495208450025847627235699123130078188145925153808978662879802556096078346279032830234252406500467322187308699235992711055886322134713602813137426262377613122587727652479421229175146463212432092234526503371559367692384970114900768454949250219538166193580241409346282617602181183641559356938607992576240104802703017087546976661384343490673757419498003525730467257846096993147417021463206364058326262885067486090471289176664737257709664705731132438630424624850355473631992549072157738810061472570533104854794518001803397291321731858797178834336536964457799823455767675454545612962067000951858563292193708512622910820801291262356697426107248563987520923883073059550769363570809150685540896101373192749303824920221320699051167822521672153338853504288381092011534074637440832526162702300771581496076660774800605502193215915669919331377692304638586311408431680227506927297244671177135541164018600980199184239709911629984669987598155071852489516243272514720364139354580304756229564400486121218578589785904786814437881614396015422400695923311228931910263473403627046327168915121648443827244689462450077338684377817912311477418773526810860912089485851232246965793406161402292150766582280253708731268445619541997287229032248714061981109433530871939836597922896521645750079235282497226742274127964937682511109528927834913278010606642196573443297153550363293182983320465868866261626293807248089418590798222757567251898810823080592049063901287957202578480380993890753433998898505323470392371392805647811967467227581879369481957921634550340561494834053466076824359147034531636162324863897783845696758998393876901005905359033055124755552725446852470411910882336799940483361478266604700083713947918559957621477207058433570528396595711806595370033299201061351467906553594752269805323239999282243632651984985650862343354688522472812424543821828073335805398057614140171711356014691666926895031078355625492817349670473670969500516916475552440761599065051068916281143450248118667164794638365396829544374616233769984244724371465651101121252499841355246938304672976434869287896361778492974371894724042281415695715974732278688931228393509049411930338972323415205821648507305728697904365279893906416216839152011248308814524877234968609997880122440860306125492333055613418314329422309439957219419499815448543728428031855330338119826087881340293606322289228489438410810284215617282304009374425436401493522872058022873012080970466638797532339785071208916620207853691307247095610232804439558114335191241559676287673446599647663257318947306896148930978874314112870932990243850596372479585809652484145752916774717597169944515762265419795637864315707860714806777053665369645102727665195939875410311743532139522714947275543027779004183714613935555669862121652115243718092845526510695088234171393056254838978051504221378073412982978194742420956591965999655014383310484528201192538438079649719396370340200439233184894250486607702826740870636152969806849920592731217641013973945637975577797394388598697502851345503343848580244625894312835933978856538916733891236160726671259618577968136785676466674665281559488915225363914804887871440143537362918368865000041066944417974530800130368828447810349821298317150615627835149568787462623593821366470916305688210605466006563421339715081623759279835256811155817250452869263055883014411917751878750515997871661678376767535782229746069910028923406786883962165839172315504328104010484992069594029876902605185037561258078325289437175337155226270897162805256271533144026103671629587156257542295463042396217856503336359595197393342125974124070504015039336537407786931888183120023505295936432218677694722773260775254298123971882449901202963380903331544039906512447011558078781071715600164201341251410511646349463801097882385501276850737431673962898494047844142795905442790918130190015515887899856695432800376486542940103132830761491913816416987384787241179034851083562997626847559731321467790034796065807566470352009706609850921301464876291492098159133675269370031154581624265039261160709468651149869983959607832357814195008961545688417184845139615474816790437334172527724745602537648444870043625278260503557684655293788385874607637129862417116088925872463546570548572784184230219443833124298799016713143459201371867257713289580486593673301018632698362213935451772215694900958819734812688239070254381847414954325840756929866457549515643068633860157003603602926151898290524466003245844369153252531392805875155402812313697095228889406173294202426918341116115314542823491393723273401274131614363800266796366649612147594506943820233854234202108938371222893218759872877414779810186684344774628873182182927408777640901539480028839322738640667806397287648912981955015044787775415290688418966539448127344530345712456934228803953390906440131351465006915731110227474477778339940412605527180077241736712057977609879150860063127239985959909662681469306688280352211761109395651782239594248050004601966989043442409606241358228846243109301635654866036174649576897906603239001639967247885590930948271059988623677386978945665609023190620404340188665940302301287844001674775784650441416683738580610898876635238831998843306209730001278583596157672817255922288440507888966678509523888416314466720257153397385567598870340307319735476231968366716458986040737964203585448157965626922428079462101981293842480581523176663354296257858066573070817989311449261092401941977680867817236609697325705843385608264535667090378323864413463837696028048007321159065421769123548366898548559342324196759569647367608553186839736305794683663954668967921344619065455210302155589889410236388220833558898740719973089590788294381246257497103095296702980623125223699614257148794136601801377471678717218595419596179824434481867306673008004089398625110277090595166735819305085958092007617873080196811832195764595821408371917225353752694409062909089786635015299974294636833463214935125450641946264995323122035012115396360911729843612335256463726343979857606408015700417406149690707841598085565186921043392306625157665314861729383766277492283016876032850319522817432996760417749629531761879183506817447155849830161865837518574614723283350946651821903035910539127160243509197628285362045480100726608804262011839425937539779516641852667386881620467079440097590070193220905012538214472714480004526597436313716551084184627703496682315651406018124880157063039849856274724723604256027949893853937850157806062613564282077241909233299396707964115265469276196215247748263015672964234863547778236153302401566247096332103557771767981223543244508847380982168120066613777623682592187594644409060172470188214222916455297860503112274682394882995676586763520885549415913672143677612799534109878802811176709277509777153886549803162227273411596607416479220272707247329596628171237149018642808590424065400468051767069319799636520506043533985397853846941038058951487771725303216594012238641332035702018323934915790276245628042206843381170725700885962084360849044092829326202227430133335072473139685722915124761111618368517103202257642194059730872201644127129043018710013367906718080648171747956393313565745547617958575385002704139238904217131942835704969160274496630656075436838912199730716336214863021064674603160146168152471243731314217126283881573802904440705715502891422684881553404933007395398892639527255730825387428865861295747552471773899519212421580318653213198110840814651253948908248808628668382571575319000061342623247514117201371590823024569563638540558985335027535401426900741616326177214276722754949114348274930299028569530555694169092482052559616778817774635182912505627140265083192128667372333595889573303704209503230041426764731745232046368348169721838267188133477553431149422435483945119746733137489107132792714714344055733041046258580123287360394594380110029041254946531464605831657212884698506937419758636053701971273816765455037445672167903272322911536575412281464427100842035803574586517479185254883109416226891706816832379575602343472098809606389879113488441285879500594926174493416529555919445606343146890952168277389231499071356690115731047379977689487210663762006967321716153816276434223859672863651346229788275500050417845209204058181244910756252145610398762091921445440517404693088707458467313653975696676781560052760592156742879661272421608045956427771043218023054022851348030972912834735566442762003186115668319408641988833913212902830312207649870203553192039620462978649094919555063701629736950519998598885013550873335414119144106530047185863195380071633706799819009732740989391808197939493841994753556859234638171018942605657458183933577517381440960959655994658887156125268317327808857693917415375308489953173198113311285710118384533901241850983012481754718163811234757902004945790268072648456670691841709991165171067142365209350246026400848668699503155146526662963419096420120086433326663120262445421309468608176071033134456085633040692561138391507891866999119703661943475882356348165266557182676159071895920540678194177737142018022056834755026726049548100936060373977018374373276062555042096408541156870825183033852114645390521548101320456146635486247255452151016440186433378938984082143110838014626688227858338303247714789746341378030954348876741391382493615760090189559210057147214139056117270051556314892308577181646277325269724684772637648400347204975553596241543380147681201426276434579962147156547025124923066987593786152817350305688345842759120026835706143879866793595561955788939074297334115689064340874986898284270994827770496124349115520741196132367264675004191662817519696798402214543351205401490589299281676752102929768474699119779402311391690968865251240539025269443816252502073567804424760313616839836879921448950273441331239429914676810867385496598929883085636020907240175345162156761138422933292767029107630559185650752716482734002979135067744244040029207833232808087710351783797692125639390717191424551010470220975967620880682308687306533368878978201210269052150076427339889365414558800470377133592895028248037987496955781015617682571146855203788654687015547688073581988848753425765364539653526323317711288493826970137993399274884846565021922699238107094730071911647366759536094330498508300144744062796384415275481060866452574406925108594302497522963478945531044837824088463222246415550320625920947317261289168097653521314710735950674367742062949042757764998877699905092874323810950750030361362067905346784319445670822407227329240027505335474573732182884846515813757136409780223331635124963759436231259980435467949509415900390158221980991100365871207012943698762654349728760833109156057491680152395584925054204637958596540693698434335049601575347865332238761273658697466765568587217349547188971520210472042927583713180761529092984775408753714842669445465686215963657480148534883466365314336608416868731902051283599679706940700028874271588368513521785069633322516840606913258720558761622989302256749134534641701437971781945964177031262237517036062937807438052767877609721721538212112941711462876793701480368587590719830441032089839411689379890847258919042717585243966442659021460044179466344003692585016121063091376193228868403359072289685423473177112991241322041667941442213378589038468156282374734906324474296673331253937903428532078427972891159203989458119424293218494827783445773949964244236766476000295519437738991373775196604189072425024977436835856996050509899368386384279249586611311296853352078211347072177257565078992945439531899046570324299256271267655236318131758966078097326092880263360859894461246436786507167504799873565731963660141831833599199450197244746414997899590087410260400726873336795589620722627169261175360915676837212032454368806107359034641686024329152336823957168186406262706775614789240416908403584837743575960056543378541191897367885711479855941332355658348169460035337696231396810505434610708657175273143739226992494903480099507614338627399598746802135398112162266565861264049199368073651098620363569295395832520438254083512088212590460339760304671000132164907230753883615054811373923448550999697135830332536506074609319224317235032805115554716797406768907177047036422624506911979101486787231511876375507426989343474960996604108370570113095361321201825361789424675871766509680762414225846773889709342583389120917763517223798426924721019727774692941731043652948334612243074811269297985597628605608387394530624751217398395656174292492777759363150683938857961399087010381819053108960008434455260934241340375325540662934117021968077790388449113369223264609917532577196970858728894836436650886750540574708407016512694572701533849057847319709763332615510335894867511052298162481322226154806753281685161314467874833401353562928337613990016499620767224280252213199475174639296779126306495673052377066513232085217081838562724225519308597534640928273557349454680375954903822452474462368585936144158622677251398798678078095784451638896730813053357631722032072537035127035018054217994825641195144969518724361263038237212359000634204149452870883904208281975372724224824339017913970795228748263026869324354022771871616495715273692620361513363883746686521025065730454396550861301651982192242055504500725392714077000596733866481185027178653493320533607284256715776197084214868378689341863488675513902989104506081396216201453625616174214037996564753438891490953943088048947407693005972427433966243597749445733929794389145874831996390388070473252757100388133304740609394591698212832796176862953476538722529513346180091911027911686230940248847712725050349330003711010349578156582089282065716358158134046750977704949979305476581861583141349722459576423109256367193370590111174791113171586689423512255739653275646773013809000132894129088387596859019149802194173670055152448534143973268270689574205585885792273934357336858843301711868261649990111947920052241399265730772299700425380947434978691196792473059879340023685039057722274985572428670749728933918496877514646857967964809599960442556804370270415479863018710832838339322993243376662518502098680785664703778877772239068198295619909855009047137095002568784566170381506844819622053844639826659023327756477133546856397593737517620504503622899951834068913826267198085082029431521496706191258238948289319654863051636918934009209507544829849478036520085705793970885347135726120846989659441764518165381882296351686368619199400726711521964282858732018250211950825294157363515973063192094326199875869871729742741963177624651361958749386790213903420558430563537765951482527538444124758671764423642492253338350818661254301377162587381150287485191214280882494655029899452964192998918100011380294433207245736025441701434485095577740091581975648693803556483619347371397066194759531440762083048808278874315942869015078471243116780180760347135090005735633975679887485626886141956826619031766066458644042942848956053983375966258705494728395641596405853653903288650130498038986740345626510909879523146162890256500594929608245177794528131577540562821168895064928787460551393286777207822438039948722023767345135031588950575660263841524249702185076703808355124159627871507319916344883547760221695899896558504796031261341212279484532916079084822741043859800279217190796118062516826249006597674599356948865081032339236463673129889763861204201455238523076233715828508605880305982487676883383017129535165013651934194467548207406350738140728793837699257631752764784511257850833620716817058518554377888877921789246104232776591803019827682068079366579775858741092463192616953567903943267531025909090220265985315365869075048265824029453332150816264759943514215019466359865526299341851004691594789861085467837102973379962120299534440798283396052185215045462017604556886013501525025135814735584890846446113793812276545485516894020677288524282891089517190725744522142389649647581195835440523464284246827755301508332014201546721026671700549977738631162292308409265899765516518303268634957750106367653129033391922500883303212920308881314496856809288490639646728484777474298699594396595754720336296288831097772116918836770609297119421347845871514707950747037090787162825669997762913054353324519740637253235150793540555678510513169727390885959546346290384896634674214413998630016129871763695504937657613387650152759549075264156858627876025338522485634004588809271409635600980849274065625660589046292514519556166515996021382610581122570341143462166587758604343484334777520279356789694530467952107800648757671805750500827274359040432035927162443458603275321407288820413690999607053835264447643293853589985833210369357406679023828816860936310395385332213077723659034832480606263368366155189138281756373116809262795928727865746623961391698115415391841462316584695038297605778376158002115641245425983362598343018858341794852135210859988718625613826990231668574218535061202790621180017749995696950212736926272558716883617555854149993336320981065838774635152861204554828476317512825352169280967967402013282011373449940364616369928803191308365897647093191803509194620173628957658600691827741270716140639583112213615531974784345510573966871063956516955209826777836481506915117937624071732327052402277049582158874440371555836986264180946375316984696219557849477536578215804545853967489217837235286268046489542715245759265683659860175838419348830194154194430201881808882280116228465902781728546514099084083730594405434985733064023579291587791030544632779060192777455767165054080580021725145675559356596693713779346529885119200806718640721546773175143217199246435059925351706488549950933811759114327128963174801201113890270060772694287690879452503883370530037695240672003852049671854270379821044816627787758103184570089202524797034037037375020676391773804648619381743382242847946712800525401554735802766782906792475973407879162247285356963635557340256660883519777270442026040927233145489079809307983213507813473020135409032308637088823619841178183333840652910783439700074050894446751108788347228661455283537850850229368901278651896826500104613407179736408280836138010660512713661859151504121841182572131259051728584083519169551796355356977977119008687764559885506319675454694578942104808379918755200112076226897703411518525128852776185860207288673010463713143789987519510010793914117355014385223899436061493521515679771147553479054718077623636256224642116592827552905355202300804255491340234345359622194091865739565378199227815310055607431986070225890287797409594865697334142232500958282276554844364868735439358649058633006322794776655244908122369642397304675220819315653022283468024341569932918956038671011347489692097768987444859975168533415962852548511235119312257251230435558866422336041672562222185527229846894691721118051163314211152138342237250984436402404176082752281767904927836119222628566492342504597609262808370412216140768569410357521013756657134665467197975083515722880388502068163003350954499031436361034707850718373838689179406914226323946859153337918994318979806145336458377455464296831677472795498321251340473450949301625922283094924055294689454909959809206876790511498430521917477270978135983766035326126425427036294402613472431282554480275416845890568961134158548308974444256853329408510931389453322426226090804265916156358380609851395521554178868681840219930807264824977096837432626357292088379009265363626960660245060337127904726887737705741970335258723503549976955464354450523612385247236296952851377219291003020297786297790204436504964345169426535264797676619736149874111946468979844662738631117029742432000958601316606169800808540244068328597293412823935964540304095846443597740115900365445306813270330859150144030910076219201574403707464830125790950725930385520654659965297282790940992050782745350171241508083319890326512059880563137380880289300365042969414074987756281511757085887966489725028760385077910920588248653403491120979608632816328243371420172850857938664245772458752362559110310943077098689392566021013138317495330901917595646829643465814883700499108056154222207810573218385020539100908381230262482235449609988551841750044535240111182656016395053779572030188058197667206183862621206651572807031643362382562881649192645008471578694141605303879119149880964825355647212330990767388025706113631190350892198409454899790164135515073831722664800002949262658666116353769369738196562338703066094990518852245407514604594330333118306489443020192817238611681356101581205295589603707801501012650407534940102792558721661840763598402534894970886689849895207188011144687225522036155297766258061834371765216010181462664801894570751019397513463933253107885275141855703948810636997355968625943729920693652978822213013050661395270728320132020080427936068163738430182426392834964119074649929719076677991795107047720867216637211886064873315991237162898973494203099196973616578245782561851400244009732470367004732693842203134736612891612452208307469787054482599267996791028474054172341143269388852251445906533784038363272576780923200628610865045008147195103218914517127458513572097278954304509250954288138536959067438137152143465909218510581675437081543533602325670879928497866558873526603232040379693092098648138624877429728773642769207052389494439852808924182350367320809478305703836856447909474948604934565966189202481970954572746312227485514457137155696361336852028046207149997599495862391074819293052886689979506671421486361688113576549438406878239051953323728677103371223364481428840823698822229297004581216800951650102098532540433714936054269515527033654064781643344861407153544030377256688670969744682169862560861823327564863993131513947053420677224350933807122074502420007653688192084510690430662949534325078514217334095672190044127091660241628533284267324654881336301318714176755745507175985829918281448053811813727355099523107983544771657375718508152107137567840532829618952597072336647505707482941381105705098073871713460518004604549335644396411844204583384550886778199606542049685521922329172303007365368222026632317164275971698008247226417853778802958406634828075142491389769218577657296320670513312689312404204145019540468456458261589059900301856694095484900950255101856540863988921673612440918886306358300131520436665191201730878122256465110006979644849215627918077899177547535111333960156114201899662452552283081859716067718439338451462049172520221886624140320724117627912096692585916703503137990798111193848627019199527155944234300359112425150804732660591126336562250294434404325363279173667404060480504654781058895623898259684234776996936416918414380001620599159992120616791402681223096663964108372629538196737160109395178756427086133817237640618357437074028207120766632387714007643407842640823808137631345063024728088851790457035213330016780437056652030510707397061614218953174877183720723069579163264626941948375845445405518709418525833230897793047044482048830648984778682218349727720213113324528383138936200604736125353015456335689144371375471154360589118715719528693339677576729669211291979395149432309010084609787522726174652319868363566985195583768937200547508776224310616906764690522071008852604587156423443471967275938528976403930604866103002827370242762832170208833731795873059840595660089161575449345789019539300508705528304567555849449696299952479558045926843011829600048592692815872446804544238599885330319187836917691356943311879231241725586259329613069521137163471054938210921509191926638572244946847995784714196650715349714645781315392861466978250629820789239575481458037319806776597020108920019663511064122478951184387631483588912946893195235588015021850338230760978455350506007604369727322001359755150015130000982881344737683974994814435352741175935570285596171253032027315338660072226461542729807812715780546451049043234878388069438013281348945870338129621587562189814306391128384493965216959806588539837759789824969728012667436311292918964551891992660657799310625782377731556120672466483262545253307688374440994280666009140883551539694312017625037069039138104500639072025071681989274270200049951799320484347996208144439245031178174357046401492987929153482580210238928378240276275038192249241401453125286984368369371766930487809995070534517944547317282460762461830487767410580058756715905583663709077887354615806561191066895005413233352886471660914152708115163808839614735750114379281448819502248192282227670792225694250778466261220982248285951428276861098585704588569494801948462175669439791803016939664673423736563991534984704146039301437227638935045399878470060995251261683621609900171123131263781907529011135470245544496009183730869697049281317015103590558719467647645092315623309783529265809392678007089990188131945416631797616022196386666239914369122084734696673952469702826972843302066193635888555662818057641768889526009299367766178877429775472081954118582588898567140184222847106409606336397818660275432634582466471204793317433527830106388887790324794948091433469651236844000236172099538255008227014356152028478671460913386746503309491486690291536582572369778431352103646942274209581109681336087313575232802923485679192758699793382189050692607050558113073080499055243028706501254703776681230203025053743808886857217483237768063894905737902330929723380536099798786801208113616380735404613105537351717621122216541004310179798146013632160988224690947992900913044788114725854229752082652114657865424895850266123201888144087469618425655366658260454894910292319121190645685337497864926266026203083573789284019670986419100264656607061862322817293332587006705896597864406194257331361680357142090480729218789441560384907879352985657301930034057394656825810557718517354613570533326204745717298982771844566271104227000760684338905135130996493082409685944337221687263402020835062728548002499077221629624045591385097323671836182299318236720786957920339781948092058209936481654521748386932603117125370961485851488285621003042241232726633692870997382362112302323201693601237003372157392438697156521862862163066972003357693732926233168356592715179669066543908917645197118435768608812932463618270348414574926251188935891458543989317670768875665395902797907076239067672074524595192470762064617568001955830265456484121881328860878267301986957444687233176753925052250950732025050794724156761962002425139820146276295198537795281311426546397525028836035445959797766299502029326799713743261586365783907307335197191280769605059165020396462403200533814208264522979238532683908644153668760360655432171104464818280859427975026590154960171917054028011059556589341533965060607059048389529298260479110937851342861086733897354146139474078477598716582499178726577274227017093341267519553814577524776509370936470331162065346805761044592642934258158827017331906895398648488914852137194421212393927064104741688399466810921381597392202188777141970897869791113585977368155296541645260175829559353078757744133734375848586372424301592809006879827685576031147095601928761824774628698327037682798434326958884692803887778424545172342663719215264509068351885824932111079368349244210283729964057000547837418744974335062885435246685072309344342146330303367675415374127886787089498989119195907012285600290872270021622837956741010619815304453201752108892052661101090849106717442825237207715035163830117770880416399823160521669567566437462775645521161380091798530393838657585439682056578551822103395006900405404268638292049166143830790965500141688190370451391452373102222630289820209296608714371166197792245774194134669948421441808156063095677393601990477892877634845173433401134594404013755058089364156029541119852684870295320444941665571479935871951120936108191021723738433393149794351353102740264088821506813053835853709771897965055442946494506251161736833785258244907012917985227499508597001807490857181633371169377316979298906888573326183616558923830857735073191025281397908308262952990153555164724501240940880516695530079237470002633926811669275899803656672609300720965579644335092885901155868279323403655043492587281356298274896217457324407682618601020781957384906799092455775081142569197870787736633504956109062501005801423283702868531779520249790327903821801998799797691097816187066725738668642180706598502892090480951545462662701869723018648133479664394583410650837997474231349159312123577111879293245360638601699391606872139647952959235778278047287749238630291833174224657837753649860690850334573989121430938361000390996542899739606093509633689170313527480015240487410495879134471940834580084944073236443010338299610435083826991307262796237333845713124199583991098003721004872694070914035960738391954414114924300385754326954182996424301844326974529692999008898103385036327961857879276960502186224910862469108017538759648674884870169500949648965289910466208979718745060825779614538071259210364303137797611619601710700917538395091658911427265842373370154575542467239668230562783506069874818974841255263264228955517283379720591678576110417114303243271252660139664761494107985545403802095643308262036427750382826569363902427366165122149253205672446341107241189039462142479337980388132688628085174386370471926761249986519504081191393550622214998865723628504926452753756609287214093865612843223263421126865854592883283104975672363875095901664028483183447902868872681600369760137821895066626492203322044055505636872306076058626615516240904162324330762013370527336018661045108559986012743644835059976088882722339505126717095864758523212778369962738632596420702572832281055005621703382800085167154178782218628649962159034381696185744553138288709440898873849883561764461802711349979713984192515410451318139815788166423424718968434861930397233014742806643495286159873208808570817789522336884676388663449721746755882484833534777029827527922574693012160945218183934130613278333518127101434067763586323174570847574631092525307268506528328402953827504951363055450877533354479884866038395539209482945786411414882397755019297138894561330456173894123433790718578492946734798168041680754795655693966402997890237692748930801241314404818884294281381435375795776287442262688059949937919037119822097136123585507869764759723606877137408792109074115336153015070444782701512267085128611666145958335634286271736149798615034426071489527098560797979247148732602974390600284935304598799134832315593629599535148519535186771575398675487375758641214376617109239585295852202253388489795063555733220915223788075736256775438144977923253504329277877225446945621942059154068567032598937139452085912057847736395281111420071238760744986888279999405112511593424864317823801288826336133166109054955282824366261177533367652435545868251512506444489203719634066916392356887001856147195455490176036698633712002954590297225116629767934745090064007680623852619251868243855165075604622232727783376093202669455063608963195654973914527927519944485917409298860302894726790685720228194072265185380257310052563730887890760152829357156381039897005073141096806886869871027511317375056588341195768727610585453899378226455653323726068565121177003659436119606269918671901342789115254930183761485806484243661826621684994620871936162489101963977367768584116568897953000628100277269698474799937538653314399371187204888215549965455200012436592320271999513037221065481650352520987418647386944234605721068607514766703576158675519808371610051140170100894576510929724665663585023787989647218610480500251920471726466958595227263408796361371864179304996781035404670286043631674946668866938509532262007233983795850041473742747924746905323485891426865537264963037486338264428638722507978616456743560152170206203753766362860124023979330023601247221382924783686976143198949175774362449356358585069343898535465153629377384924123058561330591412683751812679836510881343708457575798745865320024031895920691040298582607420281610171940323486956288956784257413463392267961515365764796187830357491990316728805120968335196730367419131912432497354535315159716303545037508154221949092754899356850899965874881945467609364163572323903088802014233034166129546079599577730941953870607780945796878983818625012229846457671613111322620843895098749796164665499059780519873057651620189879018467145388566460998255594391582918299925482534356486680685987497694492591738410911599883197410486312585092895489017910197665653106605763022150390472432098558766227979022552823809896888025711210452106259100217991464622832584738497923066423108669454281832698938621008634320280419129895630792256803021327099193483008961106775539185105630707892264965910985229050303841998780111245901608816421220259407849927689331639621390353561627885816472358009021822861511965284251982568985682531422445656872040622993517368168567420659682378548197474659175850674147456377763946978724426644354821308964804818776787054820918737078603417483768867592787083658817637421904947620974518458046185781423041040592182057005102905014182334041312238094269917835797998985651428603109328769978111354190427647121167309052982622943958734154476112467558219226831498972932520191838738012894903703181507314947149269121777672357241665504684214747936801747538512927004743576139472963339623329224227436253309855783955509306222880801071540866795717032973763437212036521266364055731382454713630257920303991400214652891225991830114265924634294275397799598101529855288261052297263406908532195060202534378367528586197405136521037193615403721812717090597781932574482321023069937531215430525245958966119625858832470950202388453243174062944703713795942480105947902683679608848358655130104031887411775845479236575479331685345598287755095558197899859463674454300165989990756830309132613284479435346370058047188044677832269806343203971419133811033164830624390044170402025103779649061738106057081632827706068621205082937004677731338274203855117481795693019503728032092884874790180226870833770460287781137912087351603281740107993331234847110735798882046440243916313045182635748310872326674391878841682076140572592256378403328475817182917906341636065545981059170564204631201627185036264697722473416434438851663814249492249852676725716272499493898242614839320600063310764953473279740271404192783403653340345520517258311456079614686718948334574261056861318876971783212832618179354055574180628439850707085681180778213174775993503554875919173775914309128197950511696716815944820664760269507339895616629703623829416050393396011134660626362517684661225908711641493231761836447919084741328444886076931321682530321934831220389139839471263959594308854256383085459293153102252814709362208039967143228513088183049731228321009508969700758541345531658792445177750364372269167814298988258865607580263081769953530905609790430937532099344707587295209707332418374809871806915078861665611892726148162220490220797783612389775374589766332025122037611686009950089967457798540602884113845217464402147717863457324583203891412046149633511434859965788914199466396324783583059788788068690759697102543351471981589271601766471956952389438747717066689227740871818145502837485723019583440635549268192557816460126861729101229232684760478581501279576226032128149461007189211812753520733502925554724363465541966435994336521629637808251888005592633198449986310863753987591147507549553679643051102767816664285454375511265526629382433360010702935653265516392376420584683115428959532106951822237719323764255246633088453089702284897998772654444873661947449611190091700766195097436712860670832403977156821660030831955258079618296080061755548156383926623227859066725639244607208997995786159747428497752633374208978938420050642770899405815529395720994118879079116591925786200374719828498491233469990690855888214862139768473220380084752690446617049827424368502142439601218776546716513985337596880806104875542342299491117814761659534844305028840313111178240216842862574702611812939628599062703969763538945364412244113562282039599473973852154531968564812823487919107792073893177769568396667348972362528454925000608686161448846952699710012410061865946440118506835698725044667698991408344633258908020965907510397536751899709527087152360689041707886205080809846594540023694669593987360957726617569488442325082927144648763477729201989880288258499525803354978491517246884516131352076559305299896520691459409908678411633153047834481630027826963958385839001281718487820604780761934877178823252896658282839900242787550509115001367012320183176076003216721233958079336395844638066330130985316978630195108498753103682949177967414049411013408022933978829403640100331521885007927145040043341844734125653256680718702890864237838233400191865502465198865143277085856055565678930903032719216615559059391570650454722345237665741730628693852246855344222665175320051177851060331841921874912847763050960977601830463862727298776710724643685897104698090175376188946960605640946369442050522609987183100728736970962496933453137021561525130199342048433458905895706390447879198143506179190823620324713293043444433203635524747950818248149264525470485684003288088703722386596912054212073904856754815320071318671690725925390440354515087720583710333381269883355743508778451900915807068782811344828874712004104299312178404556925854218964193195269844952927502905774903863308849207382051276168948346245700830117536220650454191674654271568441917931189946799663817828893068852884563352546633735524037656124086420192531349259808509296371731171132694696079325037325610688703302558196955239714635568884886351722616772075079291573789705479842552050925135383639988888837862330714784668037846715519287560193754479068242812769051606651309609179062251591596946824203328626440485250091802050914218216271306994782927489802739937102358565236173349507886717245345072073864584939006633994830520798699871948254965433444521480813328972329335854168137368912647848884461230237872047126475985788905675670846633704525590507558942375263576168457757359404211130593761386424992181683320011808369678482710223130100390997392447555668815392575216188593403701938912666666513133249210753588010846850065856021622643621302027627337599745848233532593172057452910484434523255124243876153410031634178232581757107390437466984293003466364674753363966387440838121927528368861870603165723116213974010650934368348572023847673197256430211360818482113152481654994744271395180091064339732185571385771504258245782189960940147707798573564845009493515897800837965299940443758065598754045088233946465076979534082959786999759993360446115319375277616660916970192416622055377866880191085558340212464244953129627861690759913695412282436356014230861396737550943453898030405814252278465458573203659005060688518140710364350405409662802572211163377865635382328541440311265979401433116485406672843541667051264126878439559247662071499326254569048698328344376913817362699753481814645957957465828879216092959961900626352581725154227136744039314106989015589045068601978137342567794276432761810824033729001660970730207356221575081504776460511407520885174939629827581873038521756345418810383047221287512871820607576167508509465529954050674996374559833367385155282718652673376885099805641264705093137573772903144281042955916327618966757129503583073560181779128511621747513526126000843332849595803006388904047222113622758017916730697751835210719365051331912158443469301888503431307471816513206168392355104693014214978015469971963462110301445073441575569715501336136077713310295787071131184789746499434891173362796233882956703215232502582765623249245110250399926114262906132347637318435112691206715589001405709660989180301173339391812494128759618359344245157050574306123771325018436710264025027365131478270828065246730807335446516390139895248993815316304973638647180861185713778479628655400418547179250320401129417366645663174347934116440306306644580186623337640037232387273906284104489347883270521765712241318171882894172841047716621721844362063558526305627239750897218505216777889516974747267652161408407446772209688605057327422005675943306542244458183690438679750710375700375362635232369773678442329095534390144931899499587020045401964995284803306934356197854691547558318273885583246475087015800629976261921726188252981396452247620799108158749914415399109944952238130245384432318842513420004060437862562543525475687663069805721479478813256570289035100750856435602376418689474516588072751602553807969040171812985884026656713511173694946215781629018686337614001616319235463121497066474216686851034120412730071492203608166315215179884638435002114070369899558544802184655167623767555096977821296494698916358405741530499862052165812580900012427564215345359586323439401115946354098754083329486264527368723532813013170671864191576224491986826659093348769479462586030761295153091949923480323023838426949670472922916440564504373264746125802963928771125106730094761664454468017509490030059722681668995175670315174729304877562928708420229772544701541598134531431124705036457781766155468331805089898208956977344206230923834060750103513842908259987344227369640175247956288896459324504261713745287641280207528934094047957211797299771832020119075984708947784604550092922033188424637825745823079970867089820711431629142828786981790724134293478765573383597729535434320183276292617808832488851778192424836065945887888661014777233307205054664637584711900449507721742172641372902317966894934224919000588726163076517872894971136481490138731288732005597485733710825580218875982365245359579069111146819112936073904545878918783111070114704798638645073272935955069102820278029093069779099291657427855371554445138200604226797110089931350500666832761772153211202455495280352967404443959219134527448246608051567515499471536014328121189544158574266521573787053491664290398895999723012755777443570521343519948363024245424833867612079464005473366266723726287887001538093524144258531470522997050854699099617887945395353051211546871881902847451490945107155446836706370987770767808637426283672305253588036208804643320128823959661294892602363101421065278158539043110840491690625915550943979464693482290889159079900580283285579337741800329195613369046060401356041797357864222369578612124644366618844016662456452658579293992460511655118338999871262552331845552676625051599241161047454781275602300378327226480469141492293400398493150790244834184071397752330668314783035326632097749307358081342179981980827681177573941381264213564411128657857087239615642137702541598528570301529318256363680401957958493624274901278895556830537239703792679559965328918397667553925308834921961421497787471934715957350139737060392983916241855348007000759023204877845373635437286240616150731285150077299448882411544455432823227238037220194671224145617468016831355459621591370173102109331429848037614644546725501611324018112659595530361874235034482092335865668054149837134051028236159504463685086588212441430699100091747971333399568962639207413793525823830044744421030794115570530275693317689006974117007919803975597788562910685780988031921542270936916661843474046010906432732282281452148053094872073102319548979646380515435139835174018368310450374349779410172665896237601554293729437604649069417116904835546499146991910091392477899252292642752039236186781291953775215944438354751800620255027288617717648904588815332048422318376725254598892046072966467803079352507715261323203084830978759440373491154725345183708146542252299018682793520018842916627575891993502267904907229702602073422813434629009572414135020209788994467417938515442930051718863936222306774395447437290498904939166216403197699734813157313301615049854544954943338720849435639233940449396908920173578195802278513574503936084100019876682768211443434732573595897775289937835997766239589720839342097441238772036146166798172599620588034865278137488588234144871118828784085531659007368698162230086437091014380441244706348369761958954739909504336098276598351177719224842389227493550351846104707068260556195727493377127198114477513691733537619890862147279097626050367641525125274407368257875874383803159111542594926354265947586011852090581977735292127542810790184118486114604583269681812550564356193404820606962133524399607532218761325872566813759534555337195536501951093833172375432589942806254622063587184780655087307015146539905855831994253866753855264604163126116374683486517487003308831771304634655700804990323108003892208484290269832410718891957927428748963989145973895096416207312451411224178338159929333487956380962304526967485355457560787432028610835340601673303612371101251036165683878488190545394745082386001172873682122157552867647216878448823980879954332292594493143686266343210627133375627162635767407254555608906347470185970378847047265404104902934716395317985001465603717276890648892484424896401058709851100741408997678095059238613878387288817735300220351851588802534487866578729704408230191723743280115215093374202318564750239188100292617554064470785672492471764156811469729690746227625659654779243597548412907407165765700076977226623394180780582207273637948888891910810359729781961087496589577191891383023707616315536066774410293587171446648475063208566005541516201865868171662151121480153222448745255423890078660993383391326276863037066323720531380621283631899997604955415424184049375123372002356097078122656519994954034456367497671116169775188121292406427764616234295980529633274756674337716917570106830490991825381799189055905327158704767138882555115543987342563494498154824232807503297590732937079859443552226858976551177802102146219285163994035160838728155917139836185517514920363684019262884682950211518603010975920255221141989530438650388421054726104947743983232175162367816921080614871684902060995907793580532550548400263094394318402550355920947483871968102705963190801616557757196506568938988452271675314642380303710457672555956669919453060596124699210815920640827594835917737562912642832913515316699719494818876302342629027182400715447736879735030324046610638835139440337858208863003901322558703159642621266930801547638057463106898682944653320691215241734830354417865686627735773252418902114567989543270614991850620323103431290204243109823546322555242912015482769489062303282677612107960150815088736227867247345445205457997126491025019105048124224372553767218988050930911403464216453318502860357957825912887131432416231669083195511922622629775236728500255440010434977226467001920575520418777792531191820454176471260483100152510802756694350817837987857710920399043829137182566927460927406061057691828547359957402388632397372071811152558632572691343428055689165869783639783373208469283093302578997556967313270576128334908571788434865805336696041929314744691490271311108201163105458267772367525829230114324559473504740724117682230598968063993165966169819361920978331702341362839521923818565527182581986741686833532452053671793135945053739386827611886197922989169906469594602749940048559157487568465546075221268642062813590005346784585266288465173080775315674142446272308948093352390667480881429584492551928167726985276968669654028922328438408984799714253164982084273246906936541097829594887224414048137141679956062145234424283325097053678716885514304323090343310242624868609744277742518016831369435097334999610761588806526272974221902315390111137140721739053686291535304666441230131298374451422841308544501827940322554465312186933752463708094405765140968720697167091945412833327286140149865637828750318107688238042312807021898514473831441441841867762857453361081861019294047963128471259325436487681461867549329403792354163358044008183874606624684647309842830286331057765498072938377881164526013345484812492112284612614155409221188788653313211974738840780461732727123494313266945401432867435907692394997917309533652866234775573106685709847713341938045133718624545565820583628747977063547575841648045214360200292463069366219672162042537857556834694490281363868530604467960694356249763008770636141456564530929174610462505593731972927276570907793065023366176304309353141738695635388144994039629325832692185666243261947085652019200142421882100780383416869365589770568064595291552567963100169876203651079529221948968745143343403000025515723431686752926896156105606366382849586580131535266675319277795046252391216490118178671576067766423469701058499495256173365842980554798079869674056422513741592351935415042065973809946021963972446144774023611864093479231679829532793924835129108344529886212548399901917226563474675064722888682559175086067950866998431603831387234133493583838792034948211099009281259208315322071568161470622569528393784081560414493801630436843521554684969645857504220697928826271420287804578975722125158507621697644283671129781005958819922947983204888219510881182808099041797660452395645226298271531967365652672163533489659538475254646174136081190589175043961661514937469455331415915815498459478972733155348810473724451715829508804056383271103987464896085913451218697843092912232594473163760526083485790351393725441733135247806523103380918446640231088986284133050323954059528867697122617248007281396136207187289584398846646625332713544607290355168668687964269779037185359508783941911139139637513208744847907693382058109274769740867122028531053701171376527721533728364555246032435867547296933429962712759758727342008965310657565466055837256545491315098915130397458278528462128297633956399761828464822565846456453373389288875929656236275639976752830801767274374974324266622522815598381581083447741265876786020487601352359269234518985724289581086305872154814480632880548487964640266034710892796187593164683957695774665154441935618108406042615189912221487937498306611145674076000144444877522828794490929261636614213523095375132676975704794045522155476252612784602796768886411719642115640821280074103449930869769698795354132954054560278160236696704691803530607625055858811772591589744704007489410249584818505264060251240731671850393586193622838632011301349224734493461375223094181423230132135771904152373480702313244768229461425885338208854561679240042744574345698394928429229007168566292395688152559978847404882672171756591512514335956639164132653955455646099816805540239584959003923865722579523043955409773413189720620824886342284611361920171489636546900067602983505819324955356911220990098868691129468301587904761764026360584536511194433461715314412356664484232387032593034182050117532416359319687574679750507352068297118943318148364374337490205715957848832237930094429609913944659477011224037819425777904023813274553749348930541131689602066817820964060037417405315976535309011009362815376306981899842114875058962639935378931144782486378643940143524727250224206704371799881270442133963481040270222894296735791168090909267356231494627801428013832013850938807169731991845832951457802070391916092289636831670368575049629170984431661226044597515526915392717494624194730303747391607668350477558038488691077817517363167540901635554511607195695904871911896777950734163522677437530160649320033068245780887358592222583188657791510055639926123579516361718730737242101839548336794082537735316071427585932117212342021204751124708219469083102173211300247740289398954140163302647233796278943940613198432038050752824190020159011629753599301986831671957304633766788713485477186637329460917361146750986454397047775348744140891430646754550828290856044434625586063570954149839586993299624600489367364234140278950229416044124254866173729931273576998061352862407209021887903118490270651774171541123438450830314136358766745859644845842612734956098173301148170340730567720941458619488069460859535938202726506843765948575570145506399545663042198737969528786345152525665107827806041861811209237574575470301220041749081258964340317210201573776903275991617475442426521970581331129915135453912268449706660226819345578211522453217978483379287251986292770501292586596048160377909648132523572747575734340899568439456871228340646695731862193116847089136804142300324224039587586224968885104596631727037067187850780050799053157264399923977062436763421324677107142564305228613760817066447457528120414827219348465401549072073153177437291403119701946520884829547097699199256224003772594389734700534776848878979681595985706082708100726451763582053224725059951691460742221329352670566413366638089972534465373805559742208769801132387209157830052148581336155598986829457912284532019548252076455993049867855743354600096267813289911762983012615802102896396991677564491365994654325013495778869535098152421524701101004839898665464713987104463504485084013648594770140837704486126599263777326773532551220483423263554891185689974651416917813225599792817313243520871257700420684296889069817725142299984490569016663538675715172566150232298702644721369281361411741421013132762017640596665737757771156983373855675241020229703655246457577450064076106833612312654621872058824382826781036112901364320206861119361480342922588017892904373853220623176303111985707712739085772895477801541783092406874000090986254491510610448940790904483605519275045387773782075608047466079857106250969414045471767205640337904273041502742229783080992791021534209617446757705049664593691448463295076755343925175245625907641219323941914299584523147605847118967499431216660367337068490437674397299389825063680458876247208622823170016873033989427950657455610193757853525024754758026337734128828150267922795296382149298277466462756918774638661370848244695718613643147129490933726518023879520581410935440348950427539145635770008767763273622121677613227838185375313926459078952257799248125535421439767440870348823967071398551687046960216742556053574008137356449140555948425727981270958759526034426817627863320886822000772185969541580658729165710531899596295917166658858591353652830299863480743705469051066121558237392178394855608346292876498979678177011687410033368215538875549225096213658125161519091318139273960767060967150739146983775820625017782911633555904127033886510131237530430361448234956278146588881817246952863332709833260713709540609544105438563823350185417440061002179034896586860715637654023749338922007088374857771643959557858260809148729288043828084905979282260194193334284557125112714684916872493072246747673318916389540716487894053313236050571576153929900076740797260885874489156588004382171324690946818778038254042714064416957443481568468880908619040741406411390012749470086917183489905249035579772419531790958292827839537194103029230268371993241143362441407898308823242013615506031517002098035590774135168897251926410722435416387032650542825889372762021339522675976679116159200622046872926917582553462151389579993232579151188209916588266148671105966174701798766099319157261957035035691070434018253261421198767407551616616134170474602389171588895739118839282665712155476942999247765070454235491356831373590299492978684191408197586598962042874358111045475939634355341464199212610697095445315056086524562835361817105806387999893199317558529063958720782769495890679375824589016800115768451322068046639415649296201090085948319575328324750907881343561096859497825936336390484818488834154111988569410921495909507006632035982322152868558786459539261780732148263753341890622215141825895412984020944091852162618934254180413992252897781603763887355758157742634994346938371979221080813527288810089456842827801646308966034121876384808015635332056751777637436540690758196758021449716175931268215569052145727179383232550498096932116109236895865623454401404979157243309923379412017349182033003686347401836482210758274245168489857005672018623565057065443968123129760146151420842080741218869717995865903432807604347189606082807856930439600996088231776491024816086211095629999082012963513497958543306015191868958990451454787734967133485855442328953931230116903228653148631013934575636959295666643742581397209610451367659584439575818444504389231823450830799186507171361652355360422046174215121723949105274783767206412438821880631122401697558694524392701912631502554116019091949481019307698261114112206655843937256649400104171337727192281383001346495478887400869503256282017003458320375765818884640998929547509455517895291384104595565550021918456490171091353968479992812229497443509719869559902918817835090460730843249068812126925042433618995179822454702160785548949905435748287791437937820879316079140511540337645529423660127483030228049626272057100408655372380957750862453270412061651912413012865878191521852255706854613531424486571525182916112030587845910248294681124095359773845371538983320538678034860312419949293275684044495687692418415999182201649461692237090274412342591244200446277418960158165806768739359177890207037011583664097395442769139066896748657323541379408784795339139708687184271444120832517847533875986046185144980744590171881904529694462096653317952337311596122730731794374713080083205963542420133348834899737192820390060281841736219023962545956143166387419524902519396437905837442800662049699284464356122428945450256193259213999617732056574232542997098118405805499136670865001512263616338250093622304841061927926453738406496761043098727680162004278479989195579713122388104632379795957329222801416916556265012004437668434969504634645598439013694209434141835371452882774769866425865712526457355050419079913996296111791189872654452233792012605779049213918216333833917431843100703325631664423812238135414232808439615101842292036745982118168143612015153673021281989467972016306591030288553158740337149518863813530701829137914027396015541791137473488773357967009434641311300897138457291140197263628570976544357331593899045405083077603950096778965675381151425879477008043434849912429414227713313502083484621886737475572753425154203281813390530664380755293806796753783060906641767803668564716821605149188013633022781112093259235270351665172564837949190944086547260972511295023249060634108623291231059022888093828735775569081524319001416930175376241360210290546413515500990728072256721891381138822635971598563028866111743217407510605817488187147015647016800378612823493836039937785845445923821286656799307764303357657780024084927684279531175855496584757331695041212052417263815097336103791932663108375935313747550135580837886978360625239571539672867764707709641551392519748674234072311418181221480012441024731852018124679589202153219103098607278312354381830901797557307291023136301852074002737187425889996607995413678887659022079027921274423465044602123260013564404800613622443443830705182684121774815790747146997931243466955627300595438984665889609522496156177546682186322007198858161924642086590340435360889799126159459691065788188694334066815591110792133686587625265382824323438762532726090580531593765999761113920037248621432852647720694085490237674710545189200166430937595839956182391395279234738035945758146218629492484350083788671422562038409694571429058444707754083408537875413319804968756830987569660732100289452063622385084421735897437130135435332548965224095779315359392836278440423947601196813270025757534284818883248368009453634901837205099842340003012150642832431154243000695195761258701526021736301279165754008772211759735279107573732560519482018587885140708916511244350748378704500409906605159359005331222080878658046065396417624392676372962123703440392801724020727064488438893052489312193770535064110546522587716104698100062661842318341773067260669573696014823968836881368336870278519043267088798163189941354642048365286658438745041142276788186000222268170466809444986495166289867343762929964379122995983537630627998468307962669727351779956020097130479691508464219696932681517077248486812195493057640048549055251712574306450743690963392148911284386612799912052302236148684915174990502654275855338254949128109736555759892866559537684950347893745822219725863145210538110113214133819172890515088248230805660102442508585948301891150089247051386237521701147934626031865231623798938202322130098789530781446471714025760493882077793804607411859643665991840850973181092841140404053936521941114649156312176225610301568042356015324976960490382761386104865576138429227366370234615646125990614167835401145145784688487780748107734768334469498066112908587108721717443185157243749146212140583439047062780739645533541877838747893585956422354056911350882431233499825984619893252381382952530865645294965311027249929649356849605964481797242859579722058355943289904017596326175683377657225760922179088587015484090890159645237948667754110843993315002506311893107565077760086722064075508896556129444777872537238695435024875792267948352522520113437512918420123841980503681190628100025976785152033074750185108661041179806506098096054231460071178849004184250087699333164154132349065704807188421949269183097733054766419879206493631105466182476497569756870100574925338295892302727422495144187724249832506661341440290465654751564674872026532851544252260700009679630993514587743721321659833998056175346611597646511740009900257743062230090026241850058469690511496437579990618594666313105662748147513261709089416782619013607673178505108481895108909616772027925863318015703376381241690074704251579850318646083684812211116226235933846068342581594427849924718271552463270635946021746468320872416154259217341939525296148842301773037271304049686419940509159743379258763589205708813479681960690320939354765414927572164385571816100773158696137318526798881611458117187314082492927680980586655004137568770821938128798718356559383876536581430633071200322661498794395738037254542078839029192064085284053425675205057071875844929856536179487346955418951253504700688254103279151093453606228692608730670696358675618717457243076971270226586538353378964352479193780690734045188544259790232998240827670335059654310852857381534175911694093517864054348246616189466118823177309936523048411025321580073423151326506739358714143617257348641034510358412355084590266988445629126075058300956650767290586052827624556339624880864717734915798637224384010904403813215742357758840044296225674897616083923268693902111001650719501212138135669372472600148006489865416561964411689999745030564808516166734132249352850556761778495769584758130286556161370344572439720452748519339257489030273445774250960908939422533801809992918905496818228367849046170399026527140833203756790885618626744741648145638561868528485179423925050369115967165640070666098994324836392086703833397642088670332188322877337866558241306149608203697090295144815098302008299277883179234371028881005046019668574992758575137824510870911799831725330133663538256276140214135147483274181728860572420793906175138423978584892856805503948964768570645062238645941645537899689478778654691185449525837949637674233101322635959315741248484201518449134247500974894562888086403942007725319420414400425780731333992655648851485749696245171497606922073831370122372922765368418196780242950310314685306463102016707729422506195498269260279937390037059542822535116321535154894093301010059146516158957319415808434203276481871525482417854948563591223674924266011454536239147975496136171706001241650156309896011668836213717579359030779452149974139631476189032901481329427268440158019149743680649655255644232390029181756851960391780218615328129240724970342567372356955518646529117493506895071058485327511290508529259914931839292853798662228499980372609528687401042894106200431305237702099588128858389984498800965189194169482827994809255032960290977037928380544276622273646745925141384632557314392018113606350718890686266433690218006595895945665572867294137509804041788638146107371829785290349432924685714967777749177335231253137939814161410027776678855157484647176477834356134367479612510918579497452222798220338907782167879897902179078660253366401708745619530648065551066169516447384104534416650003313640178055907575722043710841502655130166130575367338707905675810418552513184274587511132202005511148543448609377462159586328942948152560370506540159758131706370403743178333488256860172558885052067149048731347392454019740552536074999114893837389381422952951621548025425359888953991678053880220759621999626714993409236231596511624653539645728645846349845756969335125032397719919016433148225094080636502247782243135964451794446295929320373235125297506820346573810799629110189109339417924594129853898083804902731442134901504716815055656136661779095960530565476048959855771053901299760754536433501355710208530902762901678782607672747575965275454852750070663693968372169382302373765850509987960022249541372406433062673728333683118267592524191179909511819975880752164348490263744446031179859583609776206846979268185357174433335037355951055288854520144386534098722656622506729619444175272828561795761046728819731600542723135512723273149707595224926594090885958393078934797108162728989662395853039985689534604208687475911816680630880768588673727535603374705099849045253209774751343863494748466798829190958514621090354812898362034759250235262467951721177125926452615934703633724976593566003700462770795920068472485948274719786847901500345542220748887255938565840160936797000610218814506756531426218723678092149651312810883431683637526306237941410152580045583514958014651109271079652258075665815191016482465551896336036276234495467252805147677997238518938472677300481490124396367053993148765606485634897475785629705409144293714994516543705679341235898821687542357979128432743368257302699435230005610387651859926694175362866321421014573970073007146580187942136629797936221001065663410627444079839827083760975129380047108580514184815280921504859662531391328291643284290174224537378535470308170353655464046639108056578983062322946712982776852458420024634262992721934791714185363235847368990749090042572851995463622733202452482745064739053116549041582260407088986274494893300512182843261535357928466990739163632020076562926779168335933128689072854655298869558358371521775402090345419481347853881871243101054361095613618310183191223469819482191015363335216894685823867304505857642980183687491881591132099138864261734995901230152758488415049584070314725786313242086831367409745166417076413090772981388176393014564286941461000458788340852705827086154007166192762215122558314279472996791576886774467292538938320950102180816830628163295768239933885210690117244492539032359620977851881648731779135365624214972492889541259766321915683248712439413413797765080632131400011607893442562066469621543943001449570483755414235810916996682063037576522015784144527637497591358440553267439921159848883656041811000165533140540844644512571030222273209389000857021882211224247169572528373573001922914257912197445295226738987193021904083523756130892848705026133398989943124135765756280417430716962890366590913045923883445901687249973688436159285130155943106853666397260017367527459173646968491111514959097077033032229036038921476193331424003945947338342143541137869148397147577440352980089372418157276058433645762897507227833839049597689943396874830178335893907518908394620522892495648652457663537681347066839209910496729290249388023950887554584355927581436750569556680317200767331631430511212128514606184603470186870033575841741588913660824534466241187987022201289761035253706603012108909177375352734032763007205425561510176179711315691401501091744364654597412373020833004246690787495897547859905284295202609860896416754322550551685847257056328537345989082310137245863917017781876240639099339833204881166555645985493958949542225222634503375246485623477950566453801620434717570038291775951643054119994409698428627903517927643280889253901631743836203196742889266659539592849872186846422443107740204839030887712646638438043920699607336113865946910921974928663794676642023671511786360152750892159729653639952814927638862716940427024772287340285033703137509826282463647729949628737742422143639135284670176608218021446438754152990292428018274010326433521414029081580480809608828673817070499278251877752988727772497160674176778430830405375705603911492011080788385527580488632517557759659911038710963160636654068298402991328322915251802268805152338370515963886957112239346875226813168936073440533826058789777166232890813048553140276706826534048503174836656947547672109599737654504626902470784241270363492451778506977426065308476067906492238043731753333853448852820847767891609529374817130628191780306452995908979904044036613048687024422246531287225391275914556759683974121554497029404045203318749990344603329386679841295525009550110583101622497675708861394561629509545857684538662137683686984145861337304155701479052681589179335226645691849449790540608708621295790853302191653495480922494578665233172800160211032923207213362211899276817892747723701441242517433419152811686950287125517841084956763960364943898652087765908018781446051078823903419191416773531256021819208320023448278299896701554787548890579081643842010539821174835335033103688017136326321079129979795732828965995312793017029944734506699901451618021522874720505303709991316041972071563658278633899289281165421128193636226211050421219343874550637161697436574313811060260699135858674457942122346180770308359448840533406990958757953375786531614443476063462442023279296980429823666866189627045759742168339411482474220888217461627297223087740947848376549760769513697905047371521168624220157425675439353611917770853627530468497725405824184771508106825951911227529087242491909084283523334626811757754975467803865298882573525286071817524032171909403778060240732775360136090069213665256502254139618373378275989523915349966545173444766356498564079066662362059511800968456122967618871819717100665224242124690067237760090350832918084712247838704379266116851618871434486469155911724486920908598417330618144285917776587415596473478809309597199521021802788711938231465690985610572028822177836877652808130492234654142509971191519262546855595999107219235417703838116960534747183288065755915660425861709055361479931548315216743817170278599475967506219297827129316265705886054303833505634123878227627372914718692137576257111879274190280409493819200120639055711185082394845206163520290008841584567004560963074923191107685420106072413567725960845067219126548152825079412479679504301898928415444864148218892742998202063791493874059112264974098830653741939761019023978525788752191960205504844754238190960914502289994095596133451617368417003158545776874034442293282693838270903508351418485464081604600227580678813698499613632155497105756078950191203044101795968488787926777179247907513753523312194941084204049849007938640472375591725975116708605104645003069428407403093479350883796605378146074327415999355130631180010664154782842167717638403084961694239008671718578532427993383250099243470709508859450930898339521629736501225166059704080253548527836718572959506081147935947026258759127819271643895661202286302903700898916601180520519939848633610814515630158494639335475281525772597999962560661369960179098044170271344492685404586073946210628540079951746088772477887309692558061431921106154244273554667409449199140645021412563789840602011568803979093209569434810035257204631686255323890511270912605575402169033894793058706320094492916873478348567031773898303242072958258407723699057978693555507566134638796260634050896102754632975521805318144218809073471805020976544369677628533895162849682102932508591725008263464620680487122104656878398809273774707108297496190092907350815339919552161145816361266955746694577826731713927103295535517795629274148014536554075893709393638596957619134758671375097531709059286744434542484233724719341137999925942591483344791185883783693970403773817192531554912820837181386455593026629813354268423182604713977780388231438998713620434221295461704009343363927016451358110655077045471087770754234065721418844372168273167831597403742270123053548192130862831130862405041756480831964725525039701844232846849606422604951397077863384217939553974080101204385184588949776420766964768964741695255586643985605268220986256939882693890227013596662506860110791931225341004969958386139363261058065730540242535991387937727194890812851883360704917260554555961448696039701407819225995715370225295017619478325863403330170513991409512570632232205368701939207994355436259250095274395367992499097273732900191333677001169041589483913009167424698085279643055355447681602554625699935295222473867768572873346913689766644259088808935949264095230498910628120959799767885603005464565641963364573043166172066821096192271473797270814051255449997962948665459596627868946279613540862305048912333928553470520749690217434270666613334385376159134574140425383094646165418279544304891841735811596051701392303588699425372684914876181379353978418985993950588788216039950639856695464633553916971275044779941241673872030242025730006476693921132096719850397788347662657374401685220189537287405447164231426502790574871642712363959154027532124409420951257523421320372723724973780821645747320113463727291590173954516459640607258226923691194542165032226774916667534956930855362642344445049226812226036136508146662108463911190137935506379238771770766764827778015752016912251544797755452388562756167761979336331633686205568943074974785969915496823442145124160072295053315097166924456025028882156841542502473801226404553640383003643896089446610352259631436744650125183875880360212705309655538272592208487256012540925905678907465061370173858965157696987975551701234950653987744719683934363083715410903972911751129965295338174827232862592438207791374193055484046555000886264547682071991398536898549280395056379611114006524326903324976590671461513602554818685838730963787431986278778836502460923046981151186347455388535496354530270399483437495877731165510256589622223768473278013899828821061088368113258234282618512658690206361476491523505051363944723893499039906578358894107418063181831073878901658494389917320188648744439363697864306458652552051888541139321041758114563763826093545205617289157716287972276915929465862900880073945035413781525772502613440815686353369817448291592565689085144778293886867785505506344758961136338570146838908760335121440335819773349784367368300994622402292820894932405112168185878090643691410358491913946515701902317784296887605815493265835747385443984134723361456384984473894117994024950055682318251416546803737253748550601104285578052306779321236971398270849972017033034925786356236771655906732464719548222675170427062945612516488991153702192753553796282958403978640285025449617505053447395586386043277486581503242189274395707586722873697624163846344352969501207518173027742626631872122491417046426244176214195578730589436703973833507933945636245808640951959120372334690035817238613138475358206343085993730684684735578063797132705816975155899830308635284864767979932255909944791093899703290481192083933189289907740169932193644499125506885452990247689584708771169561981932195022173607703425503607047385481110510265582451127723408853546360988771338226019851364376692149232971326629342468329688052163623692775324171232637825601150702166882599378328884903820632504268885406068576090816746546774568395129435000069937542806540518782980768497107594978889799934335578655752007357307768134007802989530634601218310186792270051826488983523287408308893835927234099452482540828367130167470866240491122303693923680966853900708920196750815141922661580565782466587931290164008513021319373843101264491032616785942100384218972566515084792696496424392600273063306543448226209744635925129843146967615972714322781285056190778412400946775569961705334400033514931102391477723637003837922933038901521353412074743702456547636083063618059166387322136136983412305287265081304180310198645565139131912608706506600921047394164980429617306947625590862159823430327951450307392364299206969415123335537639888244632907570759897419524045700148284179363050275168970453176911234208533739802242578010157238161052089947258457383035757114199800341131862272905451125304636458329373478063578743511338727938940724477138106932793405904948098013237513841248851762427104929606217459257900463865775524046409471314808316374907991420261566315381512346868603054165184564530829021596524635000382198998700676940693126203670353751721794651130186679299773221573063132500170818294050534554735130917057773736681522623662226624905064865468620278099137245635501959261818669451575111752931046887970550366594923553217582799161584947808595391060441459906832309417459703882218254303708791244621238140236822475652290480720359941650952633155650115335312245713358833003029709762681832768043856917779523904607822479992449214602606228460676327591442825856874695015271412706292678785437413746651772419316508211490358301633094915838392002931369087655554951095504563390743186728172272121905348907486151416775713207402323199214474295943530224131830535805859402753600436935939277383492384146990408436118620872160546869812156713892296097312748378801406445749256457062229813824078197833576194643152408605739628755751425982864961708450877951747823225413788970245968067478511803480775476007484684718152818653344509578756325953181504912391660945910244353159181184194336350241749590468302135953123763378045440663400873230746149156601505477546022681444886974242225696618509330798964107667456878368381082764418606300513255069536581693878223214020785372286960389659793044117229800322252798303073914929175545664117086608402216090650424962384956685236847509195822718401974129946937947227686340103181934788173381855398544756951626819925943829463595133777938375424449235554204637481269686095276801259603283561504423838017391073532441091398261500571587349469028101200041397539397304104373978684680470688795412942395356727143571633488110160725876033158080376282205000493111921311616032732783576218085017000094483670684780290396021479993269194877133919098888487542089108674314805539878495920621997363113781101590732035036072283257807420260698013763500473663158403603619268502221534563230673394365320724341730468312162207592915893860161092611670233373167234503716029485814258690471482511442612800566525947324372480942146044911895867008754352573473722875561289450169106235261637809871336184871833627179238723957493247834457565326046983155648700706123018989705208740439131896172389104860088965687080063337446557594263865468125225071704628713361182222156042408527605889545719380575746568795048645699139179116524162843089877711888523530951329086070470737760133577786643790861976678357506837672445419086974555774997282499549185740734184545973442054989773060693843194229175521955762910451283177633433241718319140578479607094662947907066316611571585318946060515656140672367103302288297808910645290181218177165665267365988769018326996446893496456002150041209418814987902390875042657543442731390139538633785560307812661262959154743538517682537188674841292449284650214933786121034564239252944949855819626260006327050798809727239786899431314065376059116407769503434606753935949998453291280352196565189393069678135911376488835721633209983041759717518197639517457645508436156716272413280443178537288970968969525167822945463486078423428571170332803924661935622413834080863256865223713798766750191531193903773379875648365540724833309397650282820012974755968327408870829657858884860962767390925336320497430882650923390818845021426262661748585306122026585006690761119664044889873595032680623602162621852507265426835465909829746875598954590855657829584958247793364914800019374448689355356080215217237704173908054768068154496365426442412689351355006546821371523460071472081664631297526140009761148443996949822694409975366840182171665262141379842082721669734733834223247888283346109768579530208317225622039346232322000803469757777691856101752081244662092392521366033704991294646014680235111275793267721323782406763802831651581912150257130934739647483205710902052357151888443075942815909149018669932756008036270892768192618892775969863355133038321597879187554159576296489904939230710605366647993378812025508645331457581956149101134079047352472969881003181254011972053755223217345175230896196177599224206787170017802383285713553235219056929781807005038690221151079890557493769788789040580136556151840388100748480766649432742990783666363398300841831762974337651728592392768681802706285066269544038735231914582109632453931703496395274962268643044858857970541926728253889731265494188248567626635373339835272460074191228097435761242808504978493727027714133844993422327500659911331824613998332313278453774851986844616490992341634196027163812138816330880729433476525470524396228785180471815121826342362201219766648421266883796570285208349061883105855413555937574139924933139082556749345328625404730652730349710245054339988759922559769602556528156628940715983938151199709596130503516962128276743680286107439282885420861039849563068547308210646704932748553876911668720944227643080535938018910637720156483387122935097403283193656730004937514137408192060733648567899057646659157501662778323841316306425831059567840360224246843477756346831401747281419755475735831214380390755581726729315123676843195331942355653734244957511062515224589756263629385584992674247871250186890250511513760413546353096431969853187140001521120713346469983665649775530356097904185382012554864160499820752182952052625764069241772622464222507366641235592307845829192165994353034280398420364163689635665338941132157270219608633480232144346519425525515818338932225533957878739735386788672782997416302229817214611142163186537358440901448240499581740318233189641492276161638275308780192442511478425395055843145126572369621248861829700364130196684728135983378464131677443026450363762975308428554651446094385123994548872599072964896840232723057120201614253673480501595909667772846193551887654882906935800173476210841506912339226624526667104361852671567697031233018349767163813947128353039634234265157003278112659743693858697774314804220955753582817274864077162565430578381152715506921880850700092450714778971324424630228957234393651614693685905144458987098187139665538985117313933721237245694585435738972529475376634687049830910993632770664053371368836237920258491004093187916341113361504822884919639441752336988115435378739800161096096781358860848297036790052655958723587409260481181489899452628831570547965099667148125841188029252917961806408833506500430224313485641150278984504139863916177930128795514399863814428121857807891257985774694162877765762378876606098609976106079710683029816537501852138128029804967447943600716019202303261883475811290767303129297736826794137331069088112878502611966718794393918771621329987829407328955729283336709245812478654451777867074675751837135638240107267168431742254189230435197061920341257166725221343888937978279655865404429413572093194633589692401794611530660686849842200827906631607816134953826958699648582722311583948794888308912794769606755715755660033944307707075914154548036142119180447697627419085940905510493004266406209596767355662971899929588338474750901123608982243170089780294007637102480432065312865099719408258216620784864683102867447754691629852636804811298433493856607303384685174425041096661694363276215756482991169378548628416943029814993857382987534604195381750347704094067966958565493871065398189093220590602015558695980139310557172143147353698018061886764775647720229894689711641455551768896848206093428578032705338736134884036255483326029911002534399293091628783067561472228716453070219131900960848664876460537548073863900138808528039945746251807358504664135791173612306334295854845049474964549831312166736270281239464712435389763438065766208927904072449438766852490144172954695903829294446067525177672111453044224611977118684139045446875688380791665838749883604507095244825463836310548217828908231178134749655855353764985810848224050841010460982061363873363073951456566805644757084134048374849723798829619531859064452454885651361777065619284636469388022335820996121373936385269194367631059763506765324328691473079086158377334352323775368170701303869832657962483290242937431361999282422910314343985544879327175440640380170736303862872887013110739854261375056718655000241451693108506085235495876771684837420156644152403992011169394155261545146571541417688201163156616791029940589770490154083373434201225837269063639687292904000133817273650277694070042446292244462942938384278138179010040297384158567206221136697476471423617457777549127764112692115420707360850111272749660998221079005031047082911945594555211713194056865627032129224941325803138166928772206462545538837720354850211452300857999553933176884906463217064039158520392655214253703661549086153882416351235957326319047955722127574789590435603040140786898362733647753545016516565624436635155877300319858590704790063951855655844609169772623725321608276255283629181081061731754536058325947082940029213957116872450723552121439579340864811616790426527521541941270118743757566889310127956570673893610248990965466306651028381228987400319637808332321909305122385404345385356267198368271770957484113176816176565044497960641174139666263657054156217694254742907096674399468732004199433595688207280652721060129232000960142194802493853039530350822415502898834458313111205995622170278638816786383888830776045538822557191919206845489938990633848848606441348953803369503513954321614913957674826564951259388518843574142427695977676913529383285548962014679925813031716603267117318995603454409537250430547833062794488238836077400279187848120779188119618507170383301163253560789581637910501545212456138779804555348023994083717907435251121366834011494733237244151602809265352403013035906230331309386461630775748647755327432534898569438292156336430030620371071862676550116748265877676493426631611851241280855806889569378995567996106756436223559972537298739479017820222803990661038400474574241930133209209902142106132062145993105153115713514328964660562418620686745072941730458492110762495263626279041825900746429860254071695871633625072763058837001347763812468912354236739416843719480602206484185901122147190792538608869112230493703948935808141723530298506376373131912602719712678660266951898997633731456148548424488314903348270895584106732295392172734052464040613702093643593019937970609483933618827949249212756992072661258901015402468899891469755533841634079547281567851335746666731275197526701485182647379693434911571922844850051183112369338199313779633519525223168722527298639458389979475041378210945705096280210554193453082308033572241764848589718135355755384906773958450307874606820213548058668330988789885426254160054223985689388399877371192990627563064123282933252518081376943087812246538897106827862162372782054473503936500731765937683007990755970212129844689418792159041246801303673170631566197181271751946027221999995952570982147936523964542679949135711081171054663258399754423500008633103917843014119076876278082464326452727534599042716451221555617596074663247200047456582851834498638390068066945846607912174527677452324907448624395521044171810257747462644499134560074367693156040869954516917137291287771549465474001287177499504369254680435942331946040296580837933754225962406779033067046634366989099188099205763410470250368664556940733897400977848289687242506288090785216508439056934901954491141509742238942375709101520687213420914345777701918016372500391886211780782249478838867203710954076604629526568900216121881197625596269605878419504703530966074888978660124661797360597594495148691005067101910553590560981351408604484482931825165223431446264075051509132952651463554746890425504989986794552786949824477663489334677020473851762664241551933936098925632965211789525074080419888045880602752268102892619751964664211864067618597535975959557117930215544546971722592914221558310159011698082965477310750502648636878735666937105879590463961783024135185783682496653602635723215966959613208125063722793357636738363748613366766537289051313250184688980876867025535693878785085299064428992246190438099827343852178373785245821164553096265298383119014677288652647289355060342156371641189051211360525789609316563495536978460736395225335292642515140118336357877127083021033646581972283261653965406827645387987500758066852734953285488193964413982301946453518930384073476081294096458058917746739824164043104869297097666829504777490553672490861033325671210015328602151024632485400468245744617890435492124660878142530786640752606575889988560242121224000690775161459435749241243609258755673617838923717778584168214500340159390497100912063912497588938816361226097413997492648747389607283169715949002647227877627315587360784886817034464591768316754272963207714797038792170098007898061084828780728748490738700146635680296736998732939107715987547516667120110844002353676063723371433816147556578666298294985168622751491289763641722982291880150510149680575053051117260902358260369879907540450293624743687831266237983843853088872619000720621379858178214313078049280971177735685057365270177668965192212845038613495972511357470248547354395518901074262773657940387027038851682776532516533429827871673379567983372156318787994030802477542286506463674178345844106026055798144079340650244054390417570542288562129519789736955142233709762246561071425404737536074192961602387333245174749577220003986161721622205199042492982516834911442251280460957299535702466050233398770604031756878006534053755304627820380364510042020271635891318889668788162191518208302799722663939944308352060001290922142219445643439040609852476122054224760015481390415378651136129535833801167770842917866960596256509210480892589190672959292981188521241666057633016642787068497814999662226325823355140524195872986391817234451271889318940476580289122607966020319463709942575161810219619335430833366303434228032858793438073225955585538572882076561637322008488989180134177712906782488449849916766696622791540212030934781744269571448612053495164909359759765275062501202078710204115558872775639558155138942474546381188070565212205780873598065506784345502996513693592724745640245447906219502009306704031173812983685155971976780608990431208381429641176923343960479060394497308468080185095967959886950878460093840034360894726985637333042329770166698453636428941288831376748568906988536296746425045624655274028025967750017298838642524861855048119123422282730968539955206317899974682261130719640272202604098363653860414069902787047531725832455390199454371710349214915646878167912171740520852122418314981450382802322093023864209999098955766623287023913808642897194566023882929912408946604795557263403763507378224630683528745541878285205015598858811557805218686348383471653044083453779885817410932153332631477880191609966910212554889046208324061982139384648927844463378855951508285690874921162057506785923707242552746147623213186886971096140324696370342762920357627171880000120347534556773025273966320710404672256211366052403889807759000951016047125006475992767165443078001339781199594541134326647112207982750779780885471193837223446767484748803724253126932375775176112605437745047000516795841301994400039381700165448206336177557657375386960266300645501980114099187697466940273900470379001187615153071182953441906294321041048324635317271735020170535760583680338469140409419444253904782708400456438856260681301365957668462363013364260445962294026533366395698856759423058390431472129080137225334236308573075052600873742478814456661810587790982906223774865214316078811223395477945702187107400286241101701692951054725416158659497834447265149219643315446459218546003962476154211934755348697432617041145433889626286609031782886684141267145547996845171053694457644550542343545765337459866404398895759017575413510844062086094095616398867943332267472553360120913184414378462547996751688009166969009852518740159565857527570720355108558627924993527797676395964377508254543937619743755828497347245258318397016548092497889396221744847182030919520065153447018957840073101063183179254026100277375737587711887749784579022977777964242574502259851664194996520440527456820520191533299221628878182534207237645730305536468315682875982724381628674882009640432238515014627135856762918367016218805521225866373249766086667368021572496345878940426115383499445817983069137847651419337480551810139980744128467997929689602778995694658068813695185113069205113327495661243460663490579487203780237240860098549632024707148142746212335476531034604049940534011817732450939832622680594386119950455471668346175159071552650999403348554872236873976796485168103603913158625699632371128084657137011142523386890768455472748357172690287232832164423623326071015474503177979769403167673925133754420302606834660185623254980231570309909703971246863379172277014784239603039781528793863809363806549466565238103673427177557297910222946105741209828756639635233022432909072417605476258953151473837488682714405678286155518130647988503898304229790112851338544658326029825453153684527788572932582489064119703436836817885533767565525821683191915404888957668808423338659430298272246690472535150890266376349548724423283805482863048862530804504847944939271649823060030789356331334085046044200358399314311261650323054121166416685948927997826511373043868994672208642854834605418136213030705870561844576428326324026059418501674068092955331182616857576937962598339833717333533561827111928098517429874182275762379550643573012201664591580819860496602331049853375060638658087153036624808126268316533880375163733951045002755412571186925911149728732362665303816016401066435877780774785256449986659917635517949153300343191617472230136988353509827289039171181050573388479310633045212787873284131581540235530583344053652595924726266532222505446346956143226925522299582055226253140119973150762943597658405736833260436030824179215669362247047910824867587589782628330503616315173877515306583500546860762472826230873777187463938185708466925128183197192626001291448047584704218331894491435514561581008439653941749127882325537886076186964416068985481923449458269163536903335092428912535229880382047067100382761611346823583592166994066453412588306499365948774801144328561359550235067758971783615463157705380949495281676059510667551468376760380508441616662001448251813477984456362668611538240517658033264202098600012749283992183841884545195369056544338737905061468397629509388683720441873327771715681128574962618278350540606288726781195850887595564408476818599422429051352673233367158965849425261460977076126919834100362067143698030925178464067275138245752720214411710448912796456777800833146253370716354508751320269777574971078883235209413053104630973152744960899862968097658437215696553547571034811563160465667308151034308127319955857229271579931278944663764336827973305794085034226959888284545555094880505294051145277890657547516569370906434120748109185258225963477192247098166150115735596334634202466770705523328539365282613269419906050053006047622462827293274935839051098613215982239081560152927500640989401143860058124257046350139114033872029365341227783345723465198422588038221879762125169882569658299531514311988597404137938301328829970134079533045802355672508629563710708915524627907303880537438977984325591689097370019691115825617273332734907356955104549941967067116117590256833760169146785990230131906888705566724914416456948063289106539136310177925351735604136649297630323053486888732384047863052625554027279679762111531669475623479851166769605071645627950692047538349110138857107746761774819607673978481175155877113355917039019167668130310941071448514617999722584803711294066360669432541381349185818230912839874180510800047665006262181489466457984101791156316975531927098098183918497703530507173677483733700966133353636166082200210595176714039582667861246871429036416368407904007409828348055948513486821960503736666413588220472083870993302997010757863480693351978246516128709062949260895676047544782744684205313905383573091538788550151796672642247546687056090513704926089764669610441124478333453975814426585838737245681108750974185557688434772182610107444447949553154962909010869461721081728918411741061323304401086006527652691929492549848181358373845507952013748835771157129779236943536123936833410750207785699960750722063456269516327845651105437142470545659780467522492623404378648628059992102843763196076618656120459248311493276084592474800699972774288291213104423280458867921261804576568523256173124173713102559916108306851283556620935368753671080209002047815500017022661464046293953074087374523874365635900164271199394262434327993465618517772757326813354017146651265469585217905171743484605879842344853326866923866356307572147331312794566441064645804009136376544726010402532026674723701712523482707668334771025075839576024618840083742186837254575567164041877631346360369807941786729822164650593821728415371936660127859545616168599414461422171875710432414601005524785058498752273568975340804860917307194262287773461075049459767387091393760093418268092101861035510076027962560353928723017092313040387801213315033316773698903179605114987736307372816422865071949709699674788342105868095022231141903166047639591607163063774683114941760340310057409473611062319130760868521557518940827187981740573249215865335348307599170399201645775589595067525587108079490197782522401008143780340658458158034828023211303204863896432407882908404779706946638355462270739133783596515674544269938643560323170286271315895767732160814093870244512855911490150755152257622416492374126447482490426042151556989066351594876646312821353083943074437741137409768089138587603765529599700653960489401340565403585492332651861303026384980906488241135115235858601466391500818210718867595214917129091329878004733367240982380773517407891041795551130939713729891436332820170386167783029763286421891831161656305486989097048943366676556027908020104716749362677865608961975632538631053633263551076300393964044264782052669649987878648301637691711629951885505293825312580083008108161961986946754338722724502757867644957379511463147454253177040877683721187610624117066202745488922768075591004977446821941003531619707707680506920675850733057791286919747981063551228677262666745918005200491409092595062989111116140828003967472681994722922424056996516942100001361801979819016455196247194102728631486044386002103646794729833435168170504045137990479435147726794267383299703259686998292663971916898337237471524275867469119939990241895280696804059871317448411015843462064481201544738660284623959107940581084190360494219736117197229285545202612306441803729105086126463156432353094086960663359486445728398249268890300206790162759966234836770001531494845548122170439285582509443248942840884647343324314207620463566814630247044942713790183394388282970064838305068774578931851694413781010736681760376914658857843148955352553031895977842997212554114483047342669838641668192680162510485343806127601531166379276545244515473290797233547203685932024050087740164637357671208004947985535970031200045812546331365424197148835352813100470635963117071117364451532293352267617616672850464206092179974517448236457746415647767785586211096038620482102624479506195209517982247242056488137556925062990733936673041593310421334571393769315066748428819848310522780307430779366532198606107751858192277847237509193024976465880055874156045967475815735261578981944008308874317356290967872572204278030327963353650546687069627094162924105733125366874328066257366824391280455113542118915020197695029158742076351210559783487562825264485662094188409621598462315318612036400093201077272010534391689888789203623953428712429163902555155573102406784830210989288920803905844232129909898325653841657955303184942468742450133694808784601109698692488623114535307516532060429556741910440613577391990616345496140741518059811872752573324723238554183054416826617408359499392125137421596371135455041635452428390577035274835981443664854191961571429697025289795838665690597069214397742997044673916892437586098947917276238191207012923726729260284886531720694049773921298916247540157585165191189555530199321973849734372489834245291360077761000186290853250558189701617626039846959632501701002775142740587512610326251455968725378692546621604261497847602763125877784864040709518063977249429108872723039360275825519770011759958691544511376203205954565232975286423395387260232748840495244630095310282420184026894252265257516920690415085743545772602640945876843084559116580880145951772028037773651368784438572371734795369317633326182137679288421674014020133692158899899550788082678959076913955764840566057946693143556868516877919391997749109600269332490659758149688482505890883408363221556298290845499754856900177660293856639273720609346805980475135404076350764284156544356344450797453681179444528438539843878820821101022825829958771770863486997910984588590203949211772568880861034840867757091005899753932292510777738106587206649857648055343512585130906731045413021146507030452002085249707790216208025196180311667266224858658260582291659801759597930865610915701205998428414800764904846839822100872253442047597489134647124878298462680993741882966650304821489622290044962896914124933694032154681729063245012062520337549943008100785939067550548358731034513126176556740738937970774232706758176619673557858223700092842303877617089144651287913825194546986460859886618759860081595577562323270537025580755707964553451143349496646209818412314619075033952865215113534601027347462305107003543120016375527459067339134815540458256830360389449190295637908100717282899108533718800045373068202902101852986792988853862457550804170342471687104113661791114298015505518535344702123047963829847165768030270858161755748528182830179728912900711982952879317581023039936569436043550245406379984127384729724998727484466989285290531235037905357596241999364236671995000933680160693759165333678295473639122374583572175758324504376842528013964637336516393666950927073440896513936444759934481889236568863949698154227401938982385602575008549426246008397676236341310295551281745030658348336812007638568805213973831573773554834245321143425709145797672909576939873019515152293404547997604014802254610604627949085395667318975402214175659227946061163283366753769108196591180621646289899202826408927539935056300509555321209805303103816642793034597190681212479472243578070710938066048848948861772045586067748716447102203737828311226144477385860165608945983777762496802287020315953198335135941379006737683398660321356293569418825442425089727525864015908378397715125163152026253288391226133161048051312030614766834300072128546784551043129549156873513301252105228460625363408171033869252228581364842623497495073636914264721919430415366502415650902705331233183038962424782505744561351703672759550613412776497882452802049694314597520524853956080266984858343655333255794640592095789650802720743416778398139226676835023644095756596886160458506967640258448612362497159506028552209796594053679499737993545873077366822853209345947439400951983159760317476506630425723143947829338057636079460370522587581118650967082867839731385969493032536488679622353310605751844356476025502244669604660006250066544342311270167930547391031095331465121158076248368225181851646769550782187168837672580956796477047416961146575343295776845192536407600760978763755997922547643683291030801559229991751846530724250240610142829241392793055084432387702005051111563834699544785222212218714630529446220258375057030856513466170653727822112667104072962394296443618661029788366671946781575939789964624296446132649119149838089113873217241226461765885513692212458653164208669533652627706371165587225925395394628782145805317368506765934448036412516965059981010010569312665992383255770049156250980408265728990639614047483658874175914979308493095669816872114329836965016699208381539680722983032713107847173470578437378440315873275727899047692087007176786319541985027441757941518604184508805774500256291604208286479596613971285977143334953273145075791458494849020003860308593528415729250019384923493358464384425756589474103550645948751638006897601128051534163656317590816294367870373929608399872358685703337115268780749365394951660429946074897642070362596743196480178863535369481244176565676475041770882212594758008403883352842974559199821460365033597204609600248631622444962968614449220084039293341985581206446702065348855168814570887008283637919197000891210407554608379393546044556299448468712144766026513708532763890397083454043318329563797193010866855433070186967209259378638433173249247270978037922815663312019963650091050582349938948841091142783140093311924836270889749137304246306953915069806952228229122233751139560636761509826144101278797620168539971971183768970166445229740870255918821097543371016221302239894238429560978627658456018788143600134982460096203879356713711502288367192794799577755004017988418836538117746760492443126064189129537074296482001528634644871743880707465592546044517751830872494261225977608034534252499881652151501193281911458616876960554269120134128041792945264314729064716969780383214352572068342120732257843065001610115111956708865219363382969390909264254173582401554861638539048785877417386161823408238068782701934966707654037930449959572679877695724906429550644370432092895843097649004199283116173706443928661737434316009244443788112664508410801973505994491240486066715640995443474009016072152333237681695846407040976486378754674723441588525947938485818282721909057093974412663312065699331180809145359131513588053025477108475958101974978882010293995657455063344454716419251800585049751252274005220987446581108306605763543877927936767361310897860804419787788445917828457241652373644685101780965797429071743733671713628509561907757165539527895989730922496806976450774957409522720523261109786164117017916511978211622782102995190997571263161326092211610534196314975087510807779795510533605595748494116360755411514565352130780556361561847136255554609473062160236827201503311964116071033185153870192963731971485462403339240600796200602535136944501800795754266610515198183314467002377658765208754734943763229445356918367961093686854279509291383177036846718931384708775057630618486689646294756044988295708362661650777455327906625204166568058703077764133261373520350947577464935458174883341471054034172152874920861682232970115225903983723179364383151693695870027938709001932860300932932595809603658289380490601793170380414049502926087397073441536824129602888816991682686550347066410188440175355728455485027044492156557898297988028652391190683303760120844969632899976283911445953544140432451195902695896796741126767807049401336412440871195901843367843725998083609573202708592749188774201957707675461310045881984594231089197329880019831879158560090013889605911777563544879350974756306801095870801866596451276159754896014942357190858544957672152703576437128062968045631338311738712319510718785213177122991824317601713835505293273937686129684927837102552594709589284447298494826025880431354867059757214215901711331461172197040052563431793134726853544762470881429162315013850002145030712235543409438154726396028030372259909696277505732377452596268498665150148566357914010688964062908295086120328803891088670175285570993788976179936922037029195885768542764402739038719401110617113322400903404031696646076590772067706366193353838285262471290766028119980502897263976223171637058035770500547381181627631708741912718020557484184856639686739003529574605163517495524580600707615889304407389854104898988450443211206718853395979392299290976538894706142809606304995382085927909673213598616478498732901646422271030675837182086443097457133485830123947464503110913611523998407304382691101295101906833756670726217513023842538737079416076784509940081406675212379534873335170289790375671345219498308998301635334543752729665907475636242931925056050640949416432717716666646636248733181545059481774679513095944724951771739969292840216338609491091614681718091803012765018631801127230831394924450430419939068111335762557609157459350327405766245161900221247506234033434644146048567405123724702586555804384347936652233322487499224516417123367564334523100997034095586583558784395847311986088462646312318442057023485860901475585269765491353446061120542733591591644830223079419929853093964515008178442785269356008092639857286728017334118441646962731239139829754371057873766135554188568806836375155916266051858200155758654343816517624153525984979618619677973073155753068489564014859734332527212687081378671244636604394450116828379162467040403004422727690365564137502566653245992826732182527136957964825163427351819473734109369146317265714998820261836353546569498667919358168316389145802693150684702279251345260497472508596162449423559760898834004266411826853595398291085137669079792695764672195427247820564587839889266957753910702421254006972820162340512132613445402178445467980761311358724842389703009376345596373413121226671968131514154537234865216833500807608803018860020220997309375296482013541573468770307998304515790903277223001910097780256058378089447156879640299370531349747887807805461109240503348057822281138641561760172042287843302125415683339927786910822775684956748557970920107398904022592669119096972573871754718855554096983503809781941038698583347995074061453009769794946416330052563393188985410537020478453053695649826007697413329176397097360484916513855726172239350934930929650637440279784724689738836562579416692660584161284738631182015142368965243866203348752257045967262943202529270003139920870038184596183003838745235755744149821575933682343515673757322270411014966901573190868509828750635347749279954166222700576518758004514571076546255878023630967614999472812021673706413024240755827216186361668729186047395151389833535837269959968361261258652469165504799519746475407749956564389798901659873831381191320557194902773335276744371495396324057356870526781114145891727800473402622597675129423425401243964592914313207936426561664799732611228642098676006294415927579124620402245697899209861717256504885767349223250417270066397621529721134915014296734086843276670457175199661022556766996815902067926498592017388550776968668011363837857289572441782411802270413104169242682175099362015666918629197448842008337987437940287473643004023320813830613198748926144256097115779513474537670461122275141614915134402206515714855400944022701216202179128058589202796952753275891620580952511687956001139059948958351610557627986441012850055520339369281143169765123258265840942546996782171930758266685375744524181398787651231055041568232453440651368825643126627477275849103233087980384170759811807820846479431130667319343035528162362775825784528363057683100025233865308344757437426910467511214668794453892856700282138833462168911865870044153499794917791539648977988866095416768086904454568577810492333913310415636130240323930468649196788795808843038305886885361374932478066513135426740091782888971261102317949501166619895971686291100222682891935623183172044050851093708584402364483375931946705601769853628526370465807364287378049610346737199652613026070490938773670180725497993358221223515686279157759757860477557177477400980595596654303751125273392195849365209767621616502413803792489854134843695473116061190650579473399060715276793974559295879050100788558412938012893423855119458686578817085439968853551083275168686715874184212250667573602621610180225177275312855853224744214544633215041521981271283112652435267813841563578984018924362076610998043905401765915951701308739606587791209218036492883025680264140516444205598396664521836367537409481750803804829756736824375529990644966134067878224604368729409714926550411273056909588297597526327677399163417218515788711797832726939929949773456007026736203956984767326303822500185708365085341942909634137480995574600547452784266712145110494143126987521398656235330077373030050121610518086971845174581554799203782133896997644594271297923709844588805386907611860181705183304762530825522752832013319205053245291176115755543800223501529608022257778364977650299110031117280038013433729105692711042483801127010338125717844623058458684149892277571211796461336117575421972722958227630705555783325261190676017814346118862608089603171075287939929050942839369309863572853689076381967096873400113387260395167047071079848282870391970292845929438860876394157530653519795623211270653309503868529724606581499900225214705171509244377803575944589324470102249020277026511945003265303245006734530312454060129485974032182758915412990893614355060906235681483443162988425225193324100793803036714650076460441997582300965456422278920355863425157509337968005032841630556215206911404104784091855403012210090697544039369845175172491311177863879422339262353283923402390955905583393843357768669071053474213080634703697319269401318987748028366387047392230817912342273326623585595518648082161205430690540228911062324073316063106709202163204461048773824330459474510158619834091468499021050112564816287748611160226632194428275912993567498201035377362236184915026923791457832723576248334927166898748564436446351124655473352290067791536452325563926296122975408396201136135606152872974423898511247739378796630675938223222033826910637689485535413422553589124285510449071033269256282518471801465101478830452644963594480688598921810491929386024773699021716009052859140695993306229877374362132295017176326390365923524276366056552458857456601083318810234426458428128589874169431538435583328075554948384875230446993126494476409924289967009326691687523091619498670639219601286379618889680299206985978045117022488369685166482493047086010634735282959588674594850206378056536587362982259957238106515859177904364875735330052856936387308470582067689930887854627430255211139274390251387861310967056554144727435809805108574780225728800630524555094472611338982940798513303321543928897110143312305579447003771235850280801569077414943129627959214785701710509362839730406184780376974012895625016362255396388503073060409050286547455516646851089568920379273896824167216269991899890931067590896346109307331340764620548869497709413297352028865615955696880904909715572152074588256850535318553408119688035190410796410467405401476137633672717782938213089877088052776438055408780126021058472627014553614554961786244494803387764750350956359765442866992835221966493950672460658165103652368627985096262441514552415322757731446252349638329495524196090832435917347715923219495454286694020986790848126919176304724630283909570470886756901852521347726928878588120501568620113298450586066120669889279717700395051697758022518491384183431897249634091618241364124189870910287411830819638543398953397183402078580184327600275372697953400403475567389635043656653207853096601368394201229359022064574624471682533776491689000339432304442468813145791053386433466823539285996624361147345750112634565384585904290686923484844888781532205322413893962425480030669450912471831027921886222631005589256240616735963895736008315284330533642837130230142920266948356949170925647374750352752121309461542071318911958430704553615604426509802317834013635447987622111861865530020018297661109821237266614515733935251578983087690075039764910064651066910790537454970107474909019319913349286863096848517142990909964160450148760767967940147076022908797437399438666641671727309470572908669669466427204432015057479768923198764045980532859887504662292864600739920561659242287105385189775062075821444448118919354960603687295333690313598713378959549040355333900526467654425865218846037577148279079419820784525411140448833256659070184605754884735262039623322633611666701832005730279076115267790048158032346300086961647783312264586722352220936703359145380039989538726953888860832714227498281080576867095848630079749439232366530846450068824743922549672438238289764676677208615708864019122202585552825875889386256817965340949392007161911607333143815619835285548741823630386825179617760350973164033490962836941831379196018443569521414460551792429118789238145554758762613857617735717610963742350069835672356811307190974933696149020621335666856400214784904565408174585713098181301566772874202855274455612569250225120970780713793635809182606708715769171496389986749048624904048819795908210404932804106474074269586276453556723623739994794793475361338542101957803963809815095373017115398240712619876823864894895085340072270833594611765690152527296031186739830997270010313884560843911018468032652698396286839953275588821035390166113892605154925390548783667521091153552974291417849656658452465166600857560922470409280111149334194065105913623595489166843178648771833480743967322418854674060456523265032806345310691511654640203345519697170452356415780745424439311775579785226010009034400360112678470427580878028114772330140112311545765932414019153541273206425128206757719201961934494810925140756220451313166974809812525497934572102776731615063267268156826043231700704014640886275640541962356311590511855749774469556945175260111664522486126536855013797344655441578397330110441320057929994760457174059772791050587327510129573294852284488139514742484367415957046925617357952051001198308924293297998063239436166573086194493937080478738098097492653837386722818231227154582125931560151495027021888009827298609888529251797624391081225579417285912909014814943175511291400774328415186021273560333420061475443687790260897071273169548310192876759192608700471112774080944358021071534693584371136150361730791869772667653992426280502899939929288768630441333940462196285601813112360218689031636743196217808477218886982637930152356232270427204135965374486876065712113729187747755790976944033426390207833420661492741809686415554380049741067859479686720580234922734937071802653666141090612211689871591735944963520167985674337756334301532830774620196155557660608898062868940340478261399218648606861407377832767991572448523522430717639852553645398114429982045280904714804463399129758270681639186553293206499958072664209002381745199825298319781128500567993229799805962483189943139155688811096940724117174365474124782655120801929704346649512708894196604852652818661448650318393054299759279501231839822628552260665591089458220927177411413478700260342014475484012809248808870922050180819725945250176459388971494789441517991693839325344733481292340423695668474513667273675261646244883257090994887839505320000199309722360620639529839454795539367701878340105735864877473600973306508265017299427171444823641935025210431202111450660621838365729465907546331462437002007419155772859085106373905425805341210742564701476963659089246093405364273715747994346998826864473510680494342508632778453834550766081977250492054721728110056688401472245845349518886528790915858284057794703163806795584508364849203585391287778941941890318803469542422215015347052853024590028016324530529266083464562600635999198504064757350941399230551725257322177018418559096674861255300586529560253409426262385757582136467247427622585827464439520117824308685702350424172494150294253548819025169796819056645437135284083221492936813766352461270563313880475189290766907282576488938015638193789945823160615855531614256798712405391232120800981584966323674126776727929852642179601507006648788944873558204333077350554258767169695745156377552634393534011792266363930730398630404433706644005407536379426735156566981657847302352192334376018342979812565718173743440945716300336825072349205121551400686661141985525047191513657638363456066590950524308392789123189520928981967687220346339975731020495189142624390072999670052657801941843669993109705237204378003209293578884401299749832682598386468469576324578621124620077314355246683407061568012122680084559808592952949183288456537040584528305230300668475947805110037099750185759409157292215741249509695121248595240754441142593791987163579240990136512561446727152198791664273865202969061479214526791154898717410138389700600246267616668270965209880822825006720144304997040922644965176746477891194081507136204399688251929135893320218182293191911613626640059610562426561609372828791550475153250412433795673002688535388228877476766956177957695650307801598651555531190545141352860421426013132187951120231224752079487392480929501600422298441526557227896361222688923518520772558188633410825797616260691363973032757456149158888973347716892148646976856732827738841467841876710189269092259919696035883987023798655441162971313941812324923060051698738772872903745356137928236635321520547376764078419950121586699635772888868033789854765291067216812656386284215284383757522804638173711038969848155485633676416810340195014935952401602714488243883968081754860766911635235310977996512178468232769461834817320306336532054982734335105436821207737281895411458796555908219664518647995712892652132453301923556454835664506602103044948420605811420547350466859653014850114984460771890251109278484858563497301897787561693135978744634962172133405096294508487932092302432912242747932942921800703406597179870032921430823166972232278764147710546450201534694580339623103465945600782541828509255695735041061740129138708877561075665324937893043335544666367596908558130861272693133616577100072865343727284961470411984301853101449951428557624175294665548666233748560594582145466288580072567063299725221652419158557729363506116010659201170150304959951210075524596841876978641245566282447621488136321879205576989767832546185225739758223787358442812708914969567732536079309537389289256373665392035918405522235869827708535749599849532494597869931836600061895938482307032750837516343871752260242462107065198402183168028780141386550404570556214347006515893383312095030092258119731943959731970394717565734454332543987085644217413699421334504368715475580755377158179579492852916738820096962339607602246737707995277292835085806569513918971105147143475239322603456838973683343332397911177324899976861833190025048922787869070964686817918565200005403900933627047460602398790425396060332764127002814364384904114845199064659068667190958706037530692758958487728381245844493172613968589900968323035686134681189485963154816405242736752591049396454900784172439582023646854206075652845252566811699382380587572730373175663296417838975748028156609996129085154954155408346298737843360741136746462944743324688761745511141559360868442201409917760465102533195679176461372656308733021634571825276935292289521347297135732784692719757341850975325531090967067362825667996157077613604916986651521587278711277517430913345763813317101202986388803641615115715399397736957027122776878467776129299122134917770092504078470568490390148572049642734181392958594800942473723050291254630402970321731142310994976840061141873003960721744329288672621383417634495074998102442183839141961639300576996837974124351022734892349264446493168691700025436578938233788333712891966803717220850423629819626018885823623463551582996337989676854645878520781021709165533167126772943487616800503951140271952901924884686416787483443117314865717471892001300872265395587399717128043042878393864426130318330872906344138642478127864848192222854436132829150468847326911376136098578135848945320391144457727006870950840766164922405761780760827911270723180412130704260550326630788916823366299414507985906356624478262159022165347678755093993332537338867488103204443761781538321154926766177047253750551275274167571970152019689644864831925204946373237643440015173527433436220516507339182263942012034995282285325127705671242135171233346861242899156675151051041706872974147976903095379794801244291294676060527395184954154976585390237786489777755185047544470691961661022507399861289444889440086560704896747286122489171254195455980664322980769767361303873833545371717128086401538451587575090001867197780961154198231843592185861972254154241523309714247775416081394433333306418218396733500300491502413678914232283300439583277413862007026601468744704639364711980235864295666773379940705117286430807319679464478672980460375135157709997806529395793647690416518995225570385103353430824651010777129259911751967304614812518654422268560123798342319152875642531943487046376434972885257612655711190881732482301070316756154361692554443281701726851814116230431270367009009271210199404704180474829523409802151177857196598087340077103760699048062659017210820390502317054075072775401189075501287600483447464218133278867210973838937922337146802074645340635121072406335421101109911326065432272496662096648695376384441631194410971869084318324362724819602271653132108924291588095682954499121176992839220094969695315983635802037615658027603606136368739789820898991941980814311999245971219101984399569970970350358363126825820231911119058066910470854514604151330482615502909370851430832253956189273736989027138779983861409832558320009797154107857036526163699543318898349338950418939604360446543357466166358526094668252928326495175919261029361480860444049142568129645626212086800941020960691604159653424359741901191041644185012149850981852628067334900289226045756322733475818060113992611448817768223358233726412463474360214955099092598087423126444776679953133973181882730942790003052387185241521385058792692293649595453267536859942226342312212307530056702258300603904707854379793947082723597925278055323979192123974919431677994505148301096784864703187703756733435894483214229198006474798821025393566095817056342340271622096975596668859054557827613358081480903263091479057937782466172280551090077159042550892307685989100107019065260085937807186617899323006306639479968278253505973162670126386665908797852536391429472851821344204742991141183010962542444937551676914535612595064375082150763456978039502806344986205544206122569594008078932639602200172790516235010577299726285903508677165779331966871032104781629915258904293898603089017748173488854264497585623966813812690905763991425701499995870187533247943472091218991198159597721375423216976925824089689189030680131427159357572193187533557452348233452768183051122958876443965267374686701908248500261785585525130356240945125150456251431703302573749430691153278819038104631522279592886582385748914396272535723698642781428634124448084309216168597320976687092383547238138863439426505399864836731992055890025448816597060363044629731414056541964511975567775080921508090908490236502086770196120731863772845927558405150738399628083128897880833377100440081937034563601324365392438370553355912065562877836259474524767339874827597880046333651317128167317492266898666401693795728405103563179930540100409569234676104712721259015127849402233905491080010937113385918816849708728750063429629693311051956413692279193560140785711643409049528924966958506976977518121410490463982475754050318490228515397823964511404846805322760062631594453569694137250728265404641246896626116922044693812889486582591745298790414061666156243310562071009143036164002128347377504040934432232467709304040721810745199984325356011863796242308040987210725830669603787689083507132083784142392583113925419064139391308528757283598709429511612671519830772139009090111285202381524995437691026104141027175416704394694179508309997994622449963267129325480256864036349410000916697552920061849636989557520084630666254816082862295794308946049031245396345796827655532665341146011179642772121941436845039751599698308323222316970120706020422650459677865640489597087041515923420464069402676348909471414701887184996899795206484696464213083776460364506962303903054465777327083231582762964951742065116605252189484283516252574573202900417879569409364568406601458032853355168757678061043464277535047507151749889806654181142560289839917665919689171579735580628180287597111120988548616733337839755325841823950892597607351526227825547413407213151444742476954841952086910750736048389396162001320473734176082586734661020516140738192809381446142848321770339169225147017199438334486583598435140480274820090242174166902333598268355262441484871781423187233105151391681320554495854129057753615935604699330862509919351020929418946253575143254470637413566089624924560244181015293851843715113908516643205077360656909445330161516287437090850467759973451695535686211715842883656750703546952920302808252505136740421692785130323771791387066912706123597747667943267933330580983984577496093012783952823034291732015104454734435549818357713706887234139442649802784559153433337215150339920535972686133974549227056074674774319221274686601178659575454406683391758944048979122360937876234065204078808446459942693545494808598007428543885081017720737156164241566778051806135446686341526734869221723969155306346376922037304619208414914759086943663040461248709619982888404488949405261438183705534378676402163339494774671922136109263210005347311384177095827526050506947908867250670830550263291803819976647083865947396994353241948216578589966618243049928997201353649303558112129157311182250342974875614392871762094359780902596856066387240159641666598456129118617320090706073650824486817443816345219929286286378515652753793063023638458976525372741564211243987154933723090482014667365399458325906595160800823980034757974956168022967141728491793262360517376141396270125388814925225108523749884298446780930960522803331511907496385605674944326275347706657213571511282609719178429412644764508670988459174210953752405651393939525603286945596059067367310036495478341880255096709812682096186809150034513441967798697284959882431809247088223813816447273148829031454438924533669390302964865056926873154199699970775409385217957974662014159458759227097245878493263038419443229109268906795190325214342986049221509986842335322976066283670437503507264290944647656992871913343799676236508208073600076907733617568969227997862756742206080265930616344266010465336237479983489953479216472949131617516490428998268342131211451536317970483002259911365477644713612309140968975834819494543505922496684004064230338998509931084488029800465678097444107334511335966385234506521372110885754925487657499370970143171653447375289169716528415264584325845768355222978138510102098492957193593180942665000378233293557437663424693130049979645725987942887230142854653400066182770796810580138268529876494560623199746833059143362993778082567808836410152388992342647788617174116636225579495000628656531452138979323920744954845047746186250687139248988657756611642621865922134499001762700902887865690554456158384123202925255429824026809583791809596374928823474462039173707413222335800498518640325222267872195484986198836186591752081237729375862268338267921174861359215925314570372293465672281949023427495380773214645036309036363523169138431208752707282468100064668505683364481361172527396483956131592936019282087830706759020121044029748179499409049050531709543935958032540325114279840310331693491815589787967446061814687865747710927532986137828148898513714086649750058393941748090895358626273992767549691997882770651514140741608322190721567696676899064980650931517418281264212911893174115549426914422421913933969963220185525748695633062633646481665334147633693995860276677944878352909309073074923647244478014180959275182705312214332144673638820291337026106460262145369890274267939581220058028755210418886726256871339003590667357993650896926446120939326681979333680807088390576066673336197991721073735071284157114267356278274627050739851630452602811921866318569942796361267800435140435129496291893300678837929824077602074779948018406575294126149971564274414054845139858220336249746351704378280517016012285995158949256623955601297851370811939301427003848905009754309518433126152689882105671805785438424204293868878986006686437651867198947672550720847587101293406690261168332383933018367938521656979723459093908263985102448238233444349543949958229119670144129730012200855445876776180132999055453251673362507027457924563777545938399190926604036215647471448323895270873447902757822936343352174477088255040213409548674709928845357057633390704878409530089486403429342873426213385145580854881948817873705211921499480452988765905285192425485060229943108731971758149572443464687580796162916228468930021168608201348078374238688430988149006882940694071513305524318369537855950175394596608950623043014008360837916934704890642611590759281242296811896743430563560701075507435546445269239896683160432339552078820111062059428898140499878488594449911557163939590613049896687481069665555715831012754303266401914018931613511442226722091782732895308889147079544929423689837682766617731582306301017202374613496789435456717570269235029083146438761647936902685050520215765170039435698417130487970677067943970722775313884920153381815646904330135300699027700796599948325944776993621277727594525795490147745965861084355327694775907277171396369049904171993248842145500621512658667677051777068490034041571064621621054784443902340352807061768723470388005222638628350827107032896625984756732900220327067251524682611104508592561138260557013145684483027481957456983561346232685324707163709097560540251786248835669027762565982583576058678157158042534158488163189379777548919282875186096571685731445467833181472633254293727367137752809602229209711386658311016606792742992736188828961776913690710139980426190610154664552007021851249501287541165087836371990248195388706523993856261794648489439250155422453115108605626353097249661914086324547247249926509765364725097541270183273609014172362222305345118902505703131304598131211572675205606926298118827024868696837810100092443915770940013756581501587238544478167193513900308753767365540342440445747592985047855220798543198260871889927339598813168454020067352086245818457439474039123983188510736937995996932617042729401849234078056601175776648602486369949938766746788521476902312737354819160916153060837331931294744135234398032727039128741718663326223354080064395818090011423745305317963058342677776706895780300640601217576476278445162045365245446639019864024335512301051328367643102047916939849059057810026096449007722480656667539087179511906130770884656835610779764163251952910414912489293919720009829523561735035080598105084853438795137166599144878187614240923276719350667115999690245558881178209758035276067496712353098695760535185142472423631474805240253710561146387411990856899883559984565062170000283005827099866618985576922343956912181741407040440608850466611586133051965090664251958619841165868540954778570378058283394708100348633360481321587636096265470607377048071195463335014748458148782490569125168855488777339441763449249250296017580374327825083731082912309513623373652809537831908112120511588856948761740434785158602442330516670829491350641304375458686027080551253889273091295844510821715769154200911664336227321333548349316695224925277569394878527415552400549805979846961798594708804718801275013060034839577937531207132724229187238824839557685879966475979130552066020668255603818622672314796939776560436406581115666398488067777325877326774372089309782245298586029263860142889921299117579278832851095167862356857749917507067296018071097037317237790915110464242597561460100276736898758728335625986418651576259143869378508631115580816500493558062516276648531337599887649267516859808518526969264876295762283523627751047072387252834218743792264355785956373506624563364329205758257695223878176249309508739707946639417982880836008606258271172307226419741058048683813752510644865495157386950659762378902868067121479347206519257411376451881294485683523724905769004496332552779129149874895126206369750709445826346014355342206715104339998175885392771076888582709264899543109323242938144571646623640001077689101122190214218415195552019302635546409024976851874313387250683683486404306265109263112064272417400301400534609285662198451887603111084227361884759166204514656459322336735123862154805731342422586572643075876982019860122412774561086627860892127249042449695901756894879711339783242179369415521254677319147875486489025946916659769394779118195394834524201979489375768340427398910217332815370181108910792383469298263172097814684353658321885294058741122431976760927847628958773772604699665982863921955538604746232530489421009921050365113780567566038323812330978142666011851800252983331769456906346082628534876009076654521236343161505309166442014382119925763119744439006382375857264476024060160657319181870760912184288213926217429692099705474024917806155738903310237101021273707942255515068035635351349686221335038062068981267590398629732227688929903608885497977113399671852536616389594359556936273988604761614215024068295943071328067000940094024123236136332603554395812887517273672725212009721239651737698530446351026918923298007458239122844672310093848972056845014259610128387704251960532832163381899617568356906067798614490343578244926446801489498227169530420237558645749197943790339750507979099895658302711165233204439374790005215176800223206813040488330108446695662311975526341415257041010437367650079199422152803560285845000604696349190071733500125353190684864223144089033240890363047630467455321656684506939704796006495552113624291428313466018583587779487751009794522838959275580831322985723958620863621697529911645274929815486955169023278514489213824166890139211263450972604068090269271679545693783238834269083820158688216898236129648826177125913219601989073310198577588388170120857466144568348249403548888684935374450571853507842984582099807494428280573110722013742085240881763911988640857661279750251970143007256268991027103235339841293271451311180783510017483248609732472171723497817030446038163421870070660691947347547845085042283865643841588123608684404095156011735621069116214338604077031196900590609474115534016242062049858573536990723973757699493583456743474404853069282800813062486533438186918483178817334419114919405707054270716257413265636738827989118589948754910036753141923162981804961669047676151771971958401513351788419085784605702247761810926626541964604349509398482588347860006377591193607361335460891502132961171313593465999627490994457874425213042539968504619877114500983301820943013025633360288245125518987433578110951332058672178129505361178715483561561674580244293035838366702784155027568740265469932133805815896002160919864282174197956677648897604078870898468206019703763647982423393872716872359264739717074354838442524070602751698890298097437612853587930943216540938603291463992964684982271963791188355846909805103533353477611928002944811706545513977628263213212281001172272226729140252260282273168783007542720492229611237554898702935395818578030295597690639599223766693361252822087463294791899096368877763801398520740459484191135486935765067676229008838167233843322610294439916823230400747500297394406932183824814965518617392197605247385417513852721487986373786687980156143913727695419169029466309216768024160441633037239747014704321496575561657150797042647407696546372252092619341897761029501697085039601630356379871449904050318709310496737850552259396267473600102926740707206799244175570970101071580695637276174343180510431862689335175233988850987563001972862311489105089226285651498820428745875931276566027697706534238133216399226335211150637603737164233622197380975153569029239494530941587736708463244128208798379124823382369529340201588256725991505523793307330247706637477752835187853412186765973761897593935803077558418020356514117309823040868047245980413700967431975895718446496970246348844972583306896890177940722165877613544102192372982704320573618616653095405146515420471777862212976003988748917949125460372739646876787835523903776065423127351256493707418625297110276612419952786820206321349903122473226845438468057507757150229396441887750495296395619229720895962223824581348009899199103403582717639761665985375984962590845229059173613917282406336175183081667271083574941300770262821492498412079388040021104964428882784776659770141741344676057336491145751894917589198360650046271992318581924895675530741578385333599436306881337369771022903405282744255620555011684345597571044635403197405354672246863278976979588166168372946307266985544426118510746850685658169656671648490674508423217115855354976199797114055504459347530848585759768286714598484455371272985548333753120937245137167486124202289966747154657287985527133506983454294065085912519331708798545746188173745877284424125393224524205657385275002244808373266844931433743837466806873434871312390344308708478432212050967979793137635010240449416576638619981559015722223934459613456894088339625396449537713072833196832698546162772000896878068698556385228453919045521758313964325838600977958767682490808771073701346302639142924562479507545984371083360221592092658582523975376712979522295736709083903849116939426557905755124204862073207438322629034308939291769392702733631635058290085583378159398100387999362026430827317716686558002156899929316915557206790043161730096373202422817426376881784506012586568162561109914992095671188222407853092926015100649313187604171757043098968683994842541411578476142319563376397378400529034950817071154055146246978376047724143208278326589401976923701693801543163996712611836320913855558687069262515795202757806048393628623596856388721993394764552153327767091909926227691218827135874578335406524554662356449655312381969102711540956294637271779045333317844748670183746078969209356809731174926592032463758642266654418178748918022670493181735247672446289866642023550947052197339411296300101048336923435942266683850599036657520509514714320729668530863300588601155649053475685942938659546149102823867391814519445797816316338852601686754086091404945561833458625633302347730166966719627287217936280462016078825082655566304268657703823087809645074138875296318814075528540255651303203805674789008844348688464339808834083209859075120834503330331258748551732722460167244872152482000168230236580693157493160283073767631517192752367405482948276293946194214837025757890847790755161785028619865548732991636946214807088380236841149335643272334161915671691501526125645545430543144632067687543534537145171159585797519814793658280125699384483594503920938491864445891866433038010230813073318043218541487423428865600817659348546255067616575304444684732732559353807400677840274978721120451566629251590920008471789393969403474895494323774667866469021486723846158496362676045990247093939032194897487693692059645534494799756414356090545861762782089239474102316684239539343256369242226390730226024796822191171623413310810482606011720852568183141093535247915768471218847977753455395071616387289530553575767763608217426551395856137523425100442255850690917809618347135120702082019944169896143976289512800244397320930834512986187978134224057623555149478606957368572834316230062325356965448195848195199756084723078715204855154204657147635262750291023777617115902473618002270971868912345987379650446408162272744243233218801345447731416272941444492832735494587890779029608123057122490968089327971231646453279100728061728866408586975192896823663180810235186179381293831902724609597753726958400810588106505990339605629891507016987566970766721124191914239498242454894776224717198472683294480865698224954971222868260696085936260404936381925604155311904523215612626180096567016147132840262650919743491675998351391551812332417428838080297212137902907423353614777565158682629156496216862578410670567360537076847470777130315808281394449551935661037149178794691668421449992717774773282669328375667028754188521666062537992709292633087294695975418219011356494126974774655854104377181121458521696381050505568964539000515852081476830162056975202716120501444847539420585462398250863750551780024233942577272704250706726435597551871428648310356490673171513844341563457956308871751649868114323649859997820047426618659834649558182560082244665705542709535813036934143576828245515205169389125692769127664960958997165641172375603568693698396501957379375173317912921117090029976319019454842011068497570300466738797562673477228606302460740161142234942833822876143194018249195732942560738118922047849326702110198439925713421936234692187452132188156126910038840723204757044831574914351668634026636784845557334711376974640563893863596885175641124492608575469606728202723777600977610647926456006069908601548137695293398981174749271254191376322262209642699538431069426586649319102827247631662795375308583298191483366040536732412903914403897166471492603303096625918583921099262187818325623218761249684134397685286531135422676499876063189328438682236281611843321784729254839939760610125220987353797241987918792312939388604795420629590865259634430101492446193143097510979613286311541687275307599084336502644530928724413999177290300324310827026836201368106648416214219679793978805818420435729786933310498898625549490392058657679253576129034244457623260454354384088345838879170149950032262488826902072591393691835349976209235537931355395091543047222057380739368455738442836173699544302483831107813945017842107577359485246523241565547912788278541876609062753828907228955727821694024265259925449453086574625535686810908085221973200933052647905468101842542230690704622380866045988209853592382394663067760371916106943507214172716590181530354168215543990299858123291707095367779618751306327164285046309258174976428942633129682308844353383946346849756139485645310339309859127206846949751761771635346333110770531055685970461643323853225192666619542114035050632088148925940267086560251956511279778865427893076257227646029238739296700117422076493420545898641044931083454632156247510410116217441840751561288115861126651626085724314529351760333091861176945738457769231446159797978846417089651641841545096908361245467852115483599825805479356452971325867753755634340997067456451794054579620259995847780412217978105805845831610395265010105136705997031812572235097707228486463739781147697236050648657446184812522697532632202417755424093023647820509141419042270322930002722641759430625463365342471106167898694527009253590889300581586183501409706453671645248649759308620401510571039927860957725015495606785852782371749715042793237332267066656046447993683763509177139550661628494458868987900815929901262535394526047775440198061813185055679425434024797718691117012072781217211259569090648232338138714462312937307636091540380610171946565868475119800255997932182801866508873584022381400479534172900197513317017476752438596287574498982764132949651753796208816454305939141008799987435656452749379241343335955753183930572281689074316102539025805824224606854120276996124583517388602274526651518576780598435135183211748188261250140717698756154003560401348767796749611472381763439479663356505183867117835270653450075851405780242806668609151093238918110015170563954721226487611414248902318951801297974126853698438319510616707427832988454113879140586727438302924452005489138529440113580125513029007564070520914218494125435661445464214705926894684804497456065850989476301344950523173239316858696206539705800107692660693270331437311993914578638322750009091039921364880236360157503065346685088718439411677055811275828708531331711819516515153547865287315982431853914443915170574064223594599974492383327532774785714473568503393995874844681770287925128062499553891495163894519583399728668304915578233122447157284863157311202354319260732479780150431061289879519928338442181302269941421233406373018903349312765252568964924414146952266656466859805800295429104297951618783437162120046071244032115131157166358110680493385348626896206524261493000034320661425281817734457107743406919788794734895989318958158028001473187151852282526117031992563879860285918694817797739727065003942113977418499610511182673231381350633908743268300042855426878710927393438132281921502992803018800668815171813866013468017783555841443549559117961814234770427897839164939820535283236399547501046466222840165395173962210843633871778378672429378100333356813550001482932064042145633542194587071443026512793439325709099082201528165995957853161662288299710674663484001882879702526099772874103861680045375273483573953621542931547508248060941656008009360058068418735224915572735580785179148444199141854093359399941052610989843001669545148989741996236565313435414114340242790217986290067250179228760797033937948572972432302276662308255195283132784712467437897039983610428147999815307482141985980810700428670877693223379460909781166536193937173588021123942828084467630560493484780440800125181237006259249652395132830446192237469155467541512377894004609937549060197569568765322351070309443049534125506054924503298480222985882546181863313507015080170859661245896894011919746633562773850411482559365782286576866783326844298454485608411659638741238695835411121689854120314075812709544077636313683185570301271911932594213361015038456014655507992383366027844117613099998164939148104928161765595539101428558925211935578686994035076146120676545654406825128201384652750604926403975618294188286364427499418263801626858553311033323758238555963783886852102602910146788321350922133153425826666604207166346320255450311755708394165688707241982693550090536655102574163233684270457369228873364317202050921021133457881819161377930255439741916640199033638290081212752307603789202357682956297922773843131996813352253860910516990851354326313648422738240817160805466127389414694802316236840211865261705542286369119991428698869607900908858951894115299603539389184339097629662973965675526359817578147502931150858236480879831027573749674399877688126930231856261120606496126475224837346805897093567775637135785129056789305574679383407359036289346288719563896277738663070025055667589217294893212069881215656794660585237536737279395594120315754178573407137729516829444870848080524710181400167212387410641711122609051171755850374052822976573118720657089496072583216230938200953349183418032233303047655952900272298213986644170130927620044830545728208278949386150062410269615327878034576509793767503989055425801750461887322408057739339161692980600734052766988480194343593930200510403742687414951846389575300798734900853778841483820660345237999143411886152046937137751028110116499553207221578631843968798568452051131833891174629061979180405929084921374957249488539151902310513108546141807921071554201527302908751299156804918670571946038722257771160220939473709592060054156471546018785265226021223635858447599035860199467577430003796873125828544834049220206772313896618218945254413817271416974851519168609086567445250445122118833835894708429804743796085701149392314773400685972713972998239959134498004387516947212313950547699847280579196274886830682373788813794151859014137803697247906892799649114779729492365253418209012781539498776298840841448008904830800905696266757745813362221575277507127439616554099211152892438173689835741308732097125217826188684092810588291525776445373313039626031850016045838656662004488930653096606932320615906101268519801113939968722754996164149839288229437251830762338802746797161346989726371255814129570886402431669544792272892601887971919225067315573392789712485724222626103829596205348874795682393676872224900724388722118548072240721970322087648602871371422756303558515251789087327846324518992863766802639464465599401105506065529270396329975288630865050799017090539974939625540200428704763529362475910688069109691927922231915188324753158535728904102084932325936984123213969658075958990337816020333353772243789433199218402751320264033361989469102438787168045103629919306481643497947899189087411709729094069330931869531340458241484160324174230741262293430039350544298818722677653441773566905991994207962144136126245397719796163675263990097740241115566470601217094548353584520346463554394311062915129952447895438658891136324274841402781889814626306271538442631168774723767464986242449034742123992762676537640881492988613282126765087043202456367491631756083111491881392152318373989747124289280543872035009156493500644499969130732890913081854984925659397021797376336016285371079906897596310006964384488363670020699071490912779407989331245980474650120791610848562116566851861609205411883332855788612992883652855563629221621547008308751727462011011343250680041116104019600383427269706426081427243718954289815416988648842999411833655146220549643215351555225252152335509319114251028586960596157259518146405781805343902129146352915535867072867314109693598344754866102178670214861543610806408066091994851152791686483593063431297666899231574164689594511665589487000210368642718555895066762950503668822568376322614601742258155352215295137013392597297404016511154362092099017825343062961860079992062510362840357074480048918762075311352918654690535784927669742586951949108488633563555562749984845629777268370237853892706022358629781894116928484863380171529627205253704564136034087225167367958876103829274489844608521762676934363121808311428205720957827899770701011559643966482291516608471725069104162427870531146148212470731145724743878927299018668809739117814808992604272093735835817977920070204929750255698479755549222614449772086224824817598823812628028306636792976878078854931898331579222796556959691127977022869637119438232353864523676533990961340179010607842213886175228734746608661620398238943730080843728751271396984893994443797127911873142209259480080451102227546238134859388816711591868178253814883898894842092091466249846523879692205184628384878346606783480534371195957769880954254757491126665391184383677734614693888608295659957495286666375335556631511593738551574803091844526772849464245545970822880528944846358539444506252164163744934883727900755691618947234894746855118657033987328184142386715693621871078846540716540617173510383615438494343158278240618790211953295322910128023321757679014780928554443454147040634999664439169111413758269839273252568879847949731517005143370935480920050977748775461266530885959254423898958285898954933784555322763849737161544350559597246913422343994312976783669536920640199055702175946348152851113852049371572117785763898460509556731144851611045262618097310175435231309488971156296404642109007948831274049760604530713949326345084511991742667264576150506516307414357678307006632028125714037314663573140508025397197994973034501200817428203601160603420739417400152800646071912226120325711632440185732109448427236121711124064619503269559422667766660349050952677980423160475943127841389527741694550166561874144415547715667866373230116683328630636737841408619681294771292665192116720925335349567655968950034825654032642972093838621296719992276287164206182438351878212453830071249887296425777144408259776256510979887073546293886778765967660021947217556797474780612365485415250536589741686633842987543599244616728135036388943913752289417533947974453661053869548988247573568981729366018329884392440117128337770374757884754041913988154460956193704393060741300134011574394208035158364285245879954334704018506752053727378308168666795366728661802559225251931821995691877918861474063239279447159705549805056638175581396331792976315996361012086367265538235400185482183276017220262173614426387129815213664493669034749493725661644293061892651600721531169978204747202522575242829983976224942459468617250930053029506052653911342876451712369420550420779387833965811809446419780023449010116901503607204960960978493807851724094590523083326845940138643792444676130924634739130609242010449612842886832145718084178183495028352064259264211299820144583882349410308364274846888927146319232846216442858515526795590516911709281871001716268797337372846972020334132971031399351808152043870560979784602064842706316080832675136804806172840971544067777018605414723617854103779094449251068334723699787306347624072927284638182299878460974354388363770336298454792268000518610368497986254092851967724295119872090853251217355566071403229085939857554646851314769659869883098908554572543649055764312644670866690001867145653941757875522869758827734903610206971562520716155030701871657869829322537537842154590661626884565139913039517160024162057626771244551008840031298799412679198833801978755576011053608537136680836295505211843061831227697322389458744901777070482823314425859404358549360347845770124193579358463569602424760247544794852258347526077355302192308622378169830968935453154729568136638797438653677618516134353619440961372443015967258931136528047199347205533886084346268089546364406071698046313381448118932315926670405278321507175865537379829587340184368152826802998992628232708237086934472268186215439711623075144655045760701469036869952592023869488196768139894920420128196112980642035003546341663380558584127376333671576996538285197678393122457377602147574241825125290174156366706375797777698573907865191504490999841309701545219460111605833389767108802467407673390124494630933639270690868572417440813234567067304620259813152691368238553839506907315092834768775448926278704219095375696380176903201045443821287592791133496325230406870480500347778750415215249421110271571828463341726377713342861256833414680120487131882499601876834402150455586899611008722408861652669532671242189148346067939823020583768207649201107032344605514838607556387121360739588172747104622509174838950671095214277311186315421046357838763824964276435674951970434529911759179677327447843195384095455968950215625394607021011073519201400375575019911113179774854201259409931543453523760186816361247815063742201983363369088335869766308125450963440858459162323608350613265466730034465039554749475254731508482867003028533498105467739389528267023903932285672156245382967949698827696009060712753588829834334740751430293957395948679753246363420630908642043311354306435961952569891432041719081736885962315795478298883026319023360472447938582274342157033816875878874486298363270299877065167149807763490480049165764972784097540089545432650971312448510876450290543070223259810195135998620167353854577994971617060426456938568170213143057779379672842091164429118609525112072056518660882428615174927905105412166532877709331144845873895161470546007028283751818468573447752643873531900688792829075965007189507806890363098856994409614091901357719742407403689254323982722788437712544836692748011437303032021455476674652498025774988610589699050088280665549376870943502252395603857757370976931910047795345173339952524821310411781848464888018728321088644281917193978591547305875765546940876359791820672252181352782419620422625486324231449046984014938384776287572908271402456299109522988562109811103382283959515531355475643678784496690627646786041443542927995249271524051188213747739464549934294183310875971680242348058931857537190960168622277501289318578177402224049128726039875168355606262967580038981843985333706247720433486582466503501994901056677219322791799647851699316430549539278448052194453400812373138812683431079495033234091767120905528082042572559995138272186530834714053325786055200953907128345462178103534035299141991673016486697013646088391285123162863489015621284133339094908873175721906956992906687937135725588632291036592006855678365947125765592334372453212379237191563683911928839055810477152950694466305607559798464792118611123728958577245084831804960363280201071345384144406312546561522311581309143555730189436626463342695397229221060084983768225518253245279518712822199227917167139438750974851075558977405470109953667757727596169621734865423366411481119322418661104764444272212355101155887029208160172023400980341241410064552621965148106866973672776327667536722423828632887808653478261642969397886960090697447664668861497534307796273006527098729625226204150581079320870254746780885137747849755646285681256765126585513500327590650475255560440243755186945779314967473416756560821225791501481220279963899838989054673842254533184263862765517102820908318708141559737885963422754670449110994772322761778012163479642595178120006577924570630439029198315213660885055108496373626863301056110995297588334702533948005683999953234771821023073609376222111310413330406350878499491166236857430928205751874836919188655118468283317993387854152457495790852000874236323159946795956204401831852415956533641382299056350219974302573237633268321822449196388124142890099487512652808922094042043453657428699336826206336283083566057531588128641718173512910317724179152230902551369596465677485318081834149577625008921303057222230977893030860237868586497279186678462962218723853544185824636268281666225455634329160828299269506877849919933866028175786476688008661057924539734870021166782262568936992447609816999175242743923765076581718154866406137918621497957877018880869355907636896160439687445145151347369967378816895547784852609335743184427091057424763253986526759701447288280614609343163337103489876897647173876941937207262841365147424915181328131668310579887398870748960960871241628433433442100784371632360052182646336860470504544972894945515019622374842772615739204346223284115659722379761254389936730649609317783894966202858041987949832776476180849626406836470175339827262813846663782711890473058494373919548418217940104848527144308526010157144345424752057207888050769745069176391598889652760991836068594410118369339237746724325393579509069169995341861715564853344644198893589416981808393327234759041029761040905653381411052375452219350831247362600873818108160648767973597147803387228602820429087669141646975489104015759656395069164835190221180125039820281702835981417564834981144200995018438022292162931965263876955601735525068862802847617154989906413601015967472006430294544969532287703353266338594445618362068332828270000509194416196540013999286924879614292179461356282559184077990126268213499157064977081112875296758886225564846514627195803859585024759255737901503677448629599294312501095558541447393183005827574292688658022211244380398456264767353370022395951538704430774252880094475860739147347147238577530824921566922478455291350481953650687820472426633863659456376108585944162090652692489738408090143017066393931176182213812728832976776787838679762489646991204885885737749902663998852141673811989387946523487068279636293133246308857841258292514164591646517943637525867602010843649786120970602587516556137032866716378602508949101748428204546104789754794100180356852179323165119490564855003112669764939187593934776381004664445230744264276317147997088910021371231188145659224785103938504587705381387346667279504427720739871686776535980593759111404206301055065970679512316138669685771810506506279744290299264886421178662354288533274776493627296387836411760046729608242617965843676427029275360001565852229722877000409431496990612548660094051236889460164784924817783804220878342795610617859379061840167054517125412224325094411329917040128430323691277724556434756177370154941510163806662336964505712176448435915128987195529695905323097083564401504497122386924822210224492008816972250531172582413700202540980164898151326683381298406997213374547794414553338569666510179774314263830276344171209745011499702242205344000640549212672772657006695025243806932294820646952134593978868756801528985424778790745136579752123026174552501924123018835549550328352800533120746500600428630105961190845894588367407551691164667677326360723010138629830995555655889050643496142409809304029008490082486236863154068067224477641954734472380304938418701201396713392923179321485249713598944720691655396885944626623571629893454761735710918304970236096357422772652462435993879646572283092472490299778674617681067252334598424702449946781734291936902640107219570446476808211208226689853044139234689450139654353385207681580121328918622214105433521590917716036616257941421917395459992088653945288131718996957725390503431592126652995789128900031780983754011909359722505037303863225320766157949959654718860403154107358359072645892672099896611579849428290134122373753402819408972691397729419852171531880632287051068262829260831465796724372163172345611033668097623963928782532828402656177944680720169128484245464226247881557378572594846550817425690935372043181455381224432413929208236986634038009052535428242211542812731631497639586354353820981690166443435596037550370857157387454078706395641669858091032132346053753909187792986240516350217119257610898929901665779551297016957656970390113481479861726991613821869239516704518064302153988981337019364893662675968841969271343585619367189390895945424132032091474919448224560355127373411246672101918940466287595492947711369872733565270084015850796536980709566793724059198364060384941654859206555204241608697310647858120558268851875984432446261419010863284111649750930924527865430302354923623045788204430866298631279023046633710044532495317220430985347328522389096136678500905742945842309774050435081562803109550805207451925353664847693424215537688180336000962193385408436771831340012958616992067350735939581865605606357885455569259911199161432658195598013192605204994095353662644497840152858498909869670938125843824712569810018425627904516542424677508537925896552265681392693891855915179205758329689151398009915437582036504458236904860631756525012924232662269388909382205493121239483556924597964679045757192367804971314572813516259918406529796763436113661862743611173778607614345345430835461294389822094570550955971122883839983171030603148175371355871110520602908169593666283649828038852154983022738312298791702161667024512243315711525832173604077340580839100730062688207791573807731903335939387564859100725456672568607924825402222907787291005060465449815476614032634340941240834942702160617810364391521955015927784148064620893544860277729638952271082953797702791117789499772499253585761063621260339649053441400773201686523400999303257259430902516436366270953351586288953602364403107936138813818918185314738838188310793919860582177905766296252784073851484547615446156419028770226170551553607900733608771621766467092438298750590327708666975133113404043505265202608205073284728370705782898653055469468460651461311250075580977961444532344464963068264935976247072634218246758897597651958953896460602742712270557470475267012022511781071521695404931255494679822057184532403656691121268585585943494247898355801775630617188408326299731005167932680845026770949164165001006373353047125899385638823197139872119350223184144949700059593500055958187114426978992613951308734529414619060110338099027143266787574859181476095933608801785210787473167815819048986144043262230430013063706568105089797452385091330943339444242812578308980941838957554767811711073164383621410929759074447224692566960075220454197501869861558308466349541938634631461667953156144726325295514711043704486474856254161244954378224010808727459347394951752171284678849994085935944072346840027838444313668141772096722999027805837990449574103119307845882621544947221078434733018749292027262050466032787334722329223688992387621777736120350038015681834834060172248007003904063232662563554090898529627637283966895030942129239859740205573051679343492069648409831643239756647268732275183774043255424221104148347736239322523900614063225016205709605746412685763015771373331722505928153919572281868685250183117943043413951351955706479869460238057151573100874120192614373935778165196172904736489750995671619410565241635003511363539805313258850054265484969349695774363234483463702485024244084738734090832356833549719624761255154579306277470580289953341718942133050496277335041540682711882253798669331449659460706479589495425469809984894693342308245415708152966747259503331917457253492537047873309724647030030307517687113513070496828839799402431062442205730422154548671113656356665708537406387653890605136864674065185045413213344470660561931638213142049696309945879650916391037410468075430414477513624822109288813288305200041063144618630563464972693646623557524579951794510858793408550234476240157485615482747765603619415862944255399573959884537388571820855957315606912120926200720600473744057083500808601251552643752174485321766492351958826002802149932247125181804068268157071806931241349495967336654894748488183668740647187683165854927085032157134280687479160055553638781529214540427748260622251465115985613164145752094964246409416471195492231030454657171020944809444488653070236951780939218616426463695665673218075323647425520548417083075449625986212415573328069343406161675243712582459755931341729219058073809594718023246502621500458353725003275806026259307424399174705984536954427140255590894672137962986747632774773728217566967579242929051362008581135934956072639146691602798640956394410017959002649140147798080956609270823454622311848815971239555705399315970232916779502799091964744595967166072217074978652548171443760894902388312008595596525515457861733515131784530574957976207511947475187448703072428284709253424609835192465245791833348683491671594482260209922369448479940258779644242455802418866109520395549085385726421961621111961210681337129883065576818717655558425650884737444105179585653868376759464366687756052878508776436094814655198314631418205880948041664995997140300848914363577891410463256166942463301005935960019738024110175564379630652853053395133908280350755658962308430475685723004592711791518480525493348976063108659140448465148348208286043560075410952047397066253739795079300875787837313726486628239861390602041005847275785742988708959323489613921765307932778044807976467771120466953549942959895212364886159719701847296945681793323731737615057349276827738239125958188753754422746939950342958974823183535034709884179699845417876865661034322394788315549782378616651230584074045071621751008003515365977305140191714266585494935318888231733224981598552593969736507777314056976723871441880190652562648273043761340507594129638443051815579270090120270991757897330719729844555666682860787658275114881283166632439699947879903168909924269545651012678194251410309977805208555633339097234194234811373012990419277500366167592405994385440203891906966914970952620472689588910809092214463805131028682422770673953259469892310059776976391941689519861558349641003190148702193271905507889150177412486564813957057849157464455792602114007244763575425356537677301655014503764497919135421909651400287957652500164141125654805305468647745616446040620814025169622990582173184877609299189703777940790316744450833832900638668875115473607341150160980255742833331238851595464215901000780612095367511025254255060597021964722531609614228125817499240361784432557322880630872991617670994956023357786677436873565202526373633203889498899039041703974359809947717009608737520352206734914532670291113575288757826800449729387639239878297171619316107222740125104245906433718475376523037799616408486018692868332117328240119145830712434730299162170628037320114828241259722764887487690228397836905025726929471782922108854701568700041317946852510629326766629914674645335821705026233011453448715553852315811676200291058662272464466962510677397790795679846349436160451305907093746602379762207230312367140776648326037680871406547859779487083910432146819500983439094697439289765819870376077075812653238464920658661622208086535170611151117546363049555689833261412316653057273896320597477281121490373006121716941720209279666479245386558434821942057335113634345068297158258138240116842406601357859704859698299010730018619671872622390568521009214877181206266221779305832797421302551031571195675773707017575643707127416964637685591441842431025249987472800138843619620420587811873156393271816696036078445269702207118287209097801664297069278110757913016719377295169401780081063659474374336988770207786870757132038440181557028840010597334835555382852030143168913927473733070595245621377889852651766546095893469182819244119609155289707417762945533431731805512061505319234787367602751828668291591148344332545613766977339577349376015797936128116013381215353046085637790062633616042769496086585641185979686396851914856447192038769666935034671735668177525174891623803002505424794762341728189651673266173675745586918079894600787604544622798513858453108055732644532091929577483053240799701133005973524227088477809661741116957493086348386388488859253233516675714392876946841379375731642776831786434272703351190663914899531600206200561057008563094513197312494472070545341274340896403085105663693782971481974439964981415863971804431765533345413884600346516226809811942092495222541580172473715524812684055101955126450469333237000190299443772506176989684620263742635954272474686160175054757910659999015030928035074630651608330891811105433078273262225053244082707747386100857121351187810799357474323353115088331793258343254279179257121796215266865011446865104206930197722979704527804638556378000327758511584286440735755953083666089116813096285402222741252323940837253308940082395206640358153568142809565735301870444843551168209093924623551027354279148011245866658388799757394255656567488850149815239089357930762337220266517407172402554020463411028414552039274581394051846871007404542403895072386203621465228580458663867677027611098399320328465981899844548681431544487573506263189347827810238169069749329918771075796268755915634192832891985525982659160334676356289787151876545893021817388958312857354240381520994069477160258063624796818096583941064384484789341854107854882728185639276869157061898824190656712073456907373049824562573735127608833644889973006639783983453268103841234123395103332621123123134334692935711596816591526900946608842750937716657629301456479588734885919566991673641276731251126663055473339684775536381421711481319800988234189586711389221394638651271903814008616238474758903378795454862216695802538282834972690094437234441315719361940295325005509761966990348406208314901079328208114235713397292689841981187835829858862642569393173517422668308691994874541084802597771172270459765796427242772230657144159140291937198881814545755707622241166712748314036448177599720572672461379495745027004706790725359132903585374015538430726025802561637258975095811774786345858814529882535683653100495239008176219037874200006315426050275825337677929156431632512955206981081371336454469609770739431752496068238360616846526026690780166873874930630111587708327096930715393015677615686266352454194780125549324524291047032240343697002027358920967232569980874431089664220889440382573241842448085233782144009077937923207407975708265227859253575027410506904585051577061175610856352451489955017654288935477394366645939606810526499054435189788149682540549694457377098066574854054787212765281703847457612695211311915777452963540407316208036621500340959498055373077712514606301328795494576867958758146204947177929521690943742064072146824502952128988825652696117638562597334670615293313367505910106193526302741993774492235500566637097062800895730279810330081301055557899278037298044105129368622704738401131348839964379855330217900052316462985835338055304075683742558522496993778298583401484660513306397055227373857541720476028910830394224612482817152623515541109825802775647258027785524537178066034646602200860532972338881739362890385743421243390702899353042610274446887409405789137941244696251641436975722978307344186558199772063516160743659700731703378416064663208870883974644248467681865246153044405797770084733778516545279284038246259395391423677812145748674922382422530638857732808593954452055038352004074999846738254506042289427219549953333126940728571609859659261090951151778511078040246965238648017168549934099754976733067416619830337677704929244216161412737450315650915971668617942219315473930046966779361246974360405263184120201428667447895887105026396716969841271761947190510012396311215598657100807387052848852136575605198887416181242953760156351298606144424969293348466733322383237292104002540541435101108635992057033821795467498159316056865849771007933091756698803030896218772040901114480319814159373695135564621372378253856163157307255697095456236687281830314449453264215084699731297902505365189146710696724774873864654625406091976634873048177257341772722220599686947513953010153372432761658815949424793490129604608512307174267803756791343088381564431096846479939154303972693083245278072517608121807360190688247991346915087682164604409871564986946228418218635657372398274030091617044079868826493096874885167833397161277496682317629004551522095842364400537863005161968853519183084921413177573843900877573305977305720134354020767459070507183411880409122175379614012409533767379384144679006826965684883228104550708007698016951496527700303168427892373823161606534139393478800965030310102068288241480643848158286771652285348559122488031734735706783172044830649429472818889242991373669036598353394933473936844412146154261948064852563807729993048769896547416562826174996462869010415196834195345039428518821818515250217141380199555532865984006769938515271479635282672117677844044261391537764230730082813224092114698917472226211120661291394867388185494422953178008118117868392114141330537679187611237168999485205536607186495868092034884476692785136106420992916203494406089478828449965362948760214755974890057447520139473868485005726059461557805510091692484412511841480693669798379524001724964248882321215988621600537853694424896263199179228105243919157692562280617074660990890523340589579390684023460740214497079470737384652344178892747138364600361103741558184387215239460352046838456145642972664310552611204880275109814730225903653234477206579940813695862895799257033756027773411303647022397458336476952803194338258948809622625396911302033308705373963346675078770817358875368176173177049546777095604855467256122239693973853959531538903673012279238554874375874813026669531090992291410209235900669851237680935052974031089918517168919865946512407319628475078372308683811305686939975275506890363513851256769025038326489942592924531668968457692116119104110568287370967004005835029338221119241551798551464901296503837845339108276088859995991959655576099907732373701298350845850323571970234419891218200210045089420229040103315675831272963889873522847775940046613817945663772615379979340906324913010448835888256218357590758667384679846836507854529255265150605300124873315854846036049112270640655631158118937451479858093298225506458934356601479303829132614054804420684254107432384526152355421726311468421023076870663251642059481208863067937919179256941458772953952649751378424584340500062932999137536660762875724718155531671748065100902892439212573969827581947469255468294097321815221799560502472088723611811047982589687042737575192218969953796056817113573172004763513496348876250758014679472811865567787480458262874530183881390428320226807892900506795900689311644797169029481759705167897144318258119579844824171929592662006235167367150120591288846090977815299888621556509116102122658724429772259031284119750636043022890437916365245714149739051504628716874150762950597769715192511209345921776790024809145600720408244055053512971703725821240767053988029476828873472506014086858120242413328227747760083854908396917890709174888438723033257958913532391622181800346045829054981454540356677820439547207632392288693734745500268637731411168789294256394017226149145831973791638844205504375587239054506976903720644831251185019585589604935590876833963349471091323178935672053758670824982492362288966950918826662308494101270085732499859188502390190944403814346119863017845822822190740021457693748282642501338721594251124160996749465781773124372401485875106456741939145282906837230103276539428517514982490900626249172936110416314807693386913525536873281224113275804756561420424957207460677231645158219664000077229357641270429063467926728660637532110175182855614444472121516744158239622688646673490875735685032600966472087852765414511826632112593118883201686046521618994791251750953074481192853174609945235362295744154284487301374406790906546699413655326629807979866583553342424384902442772860164619940913630255136417907737000613524878299394019319007379653250903204968369900415945525711417587859615599348799707416038009830776150007862093042460819971164422099602726381156460592653452201024972236074647589645945063486560213835356932158643639996194708033202035248367571800414513177837071330861528064337526849521154772246276450947923209299606593618717065764003849768345722487573497252122985999210123933383888381495544122727689377303925403115064918165632996712193453524264484882112425137475576262516685374415750926420393641007034754248563913094207179325628094597093103328124875185540448939034055053279405612603649474126071751800318228195148492669173172588943639836840724142844578103262508921132837671536850013200584149245302809696791077436788078545489993527166542325866106506715818787760958670093929036318331044674001722627642718249020667403395736722028023038551663607139734913649401593797386072021706834455540390512992315555051589222651447141086291138389636913511196744581804858394675559577526199023760088842881253711861514998228327961957573607622849952457357189217345807053111563405918184465204321227908124952167483612118759842808526124068377362546819314389228516963707140029983894313799734055303080428585503874477341208492961107855567208378576589692008939605520223689347271255109812769667309008155053949654713054440835784690454858828670845906237427217256807863485374219266685954218587028827506096015849253574821678105861972873608734561518521945190923319041454033355303151503335873756159305434667020844991384297129582316395649872005174805962512088031256904000789951080347207326537287688984618823333375728388666405742910901753248851856478080050297921683701676662723467027180053782328151022901938127414428472278028637489847728240644384242149219961065011953611878556158864756054288495327567800247497676868493459095115768896260897317030972192833354440537953216869197626166757165734548801316245177449765149746782707953662842078780743070243529290679027841107301802597376619004307832854482382144326096078412072104722694076125598612684006218470040581284303124886904264328724666895582477960442716769871160625325018515184552015780111929656738488561725350501977215681680108161218054577297863198565224597190361513020194897735033148374603603858107974657483715629787893415289452069346547513581944426911018172673177837093208277850449688298224639234707691466339919630152690725714012586585431118149865835331399212220134717817220891352911913430273318738532905893242113760226275907372458877925483719349822988786200924454306119177189178597037304014713311505574901135445364498278573902664073078198443000012036917582837027621877550615274142328698526748170876939330989952632981845354071328703377408200019680824937815770650805066161125929527931101281510466151340580309767200793201621315088635141995291058635992127439790819032377201443096075178198930645187285181478215210357574613324457639445622623582082040161139388835627458751297883988862897350013800397979330959126393169111261111386671459423050073192191364667599739093752364863350299504776311130956774306460394072986506490946915790556307891245154653579521517338301002341759826955802463442900946415791079892229780358572523415359226340165839468376195252395526692073802591505650450463129541801690551266212480282325400369850535565883609819149639439856505961348345008392822334565254222519794723120984895980601719846708852055283318384619591602097885716675425458785810664817202973854301717851684916584555252930639990160268911284359635033494623007389975811147875690082635151610180342666515942593532218164316632143036486507370969774654464718205575723427205796281541739786755556797867271982927101088402495569290952100400582711364853704157521361152317768047576077789451356869359311242484479613879889463985172555651333554224225089336136479414214202574086396115486729832826275271648253949219165721564863776657597152671831777246775033201210913231348221822696417023953662227373461381439542209874168943937930562959029370989082379288500203560278941320985239755973073865975843347548152942150399293325597526453038684855851417294638811102897874098405938433096075520189276490909951519752745375041520897513151174584530663902968504992876129210349252555718509478470344436142525815854497262156893092554512250395158556882021838027087660090837983433853767630629187130610070099659466525599347208639565618442394599749877650123471272612424957992088353630867571646960851070154072295635612297899285762070865168626651451328895133826584676286791259293426660468374873210430884975351041047331760062332841632077004765270444021079874390699506022724333580143056943598246213397327874839063230280649051646323090976471191326598347619592862036103702290107935711786547659071119163178909084498085486821848372031277847210131423995592207872365536381108799824131711212838271542463909966983808017561051596754729041820568151705542042295362263424500696640317700748467534669496898771571910669796983251228102266783405890510962882598971270558565669019880803084809964202672847958084168859207856999330713265736874236448588434013994673907834555659900740223954179455491600548746279240456371371293424533933506746890240540650924776264550746897811363018019040233331269664364191835252654501032355118552600775271290134819642815947037134139560627080946583871509872945500140110771034755780119368304052561646117759479347011342122857113492418413750705242716776183409821848918050357373184864401318314101637714417574451811836229297538122690616889804618281635741866483722513058372460935841495616922726490106950391688817507413451684182321805124077719584238274690783278692163319037900431290859981957896279360151259831941684421702634644943836265579123507910894962278920883034946950176112828775176180183308598128788204997166257311432191775011216480635240949290724062274561645820388103493076372777982343849579666547222511563460591376254448742225640189001648515663672724994361546192582653601856806839084203281146206536641190165331082797854800602460796378715545052671121722417449994017080299704082699218316585013878835594064719722596012467117733967760315900599235773388426042039534060118799283379736535958982932069586744715423730343069557397063945577108522547605230206987512907956415622245871341798464104696411491006485233242610379458240626116366174304072246286536278669832628281841261335001211647120765039351517943532205781211786316786170702193038952349592076904953906724702512226154582951351599733663607181538907857875780169650929360502262113668629239578011995199312412753504241433845878566289784944756142747221714884290032503996261890589992308659965192242508514773300129298312020275239525008186204724107309071098626480709281779369331485481771591596655246496100692868846744120300652525300908978070252550209564512902118917902444062755684296651692243681488509213680229030162950409750247224004676459275881847091548633426296765519536794685066538436185332955521219227315274635942481617610929295571515370024699136420890827440271617374731457324242576112184357584568692154210133752624356371836881696310754303870734102813386621683062521861154553298525415959338248257419087372536530775393341351369355910286074913614456360323839960297702425045130116651781263601141176477585327089180225329134787046329264185409375901972095701543296208542000448455297318546994088193428954077135541228554624409106111088102616567945814956176900822767204859944385184318434224079648329312812382244813681403142418761790939531504633639789891107977076778526116406213080381240813318408926242278853685238929340745388246119093933535815337051889978738577316137440951365283164995285623644998478072723956415950520315877289061016581007500506449477070736766145919128317597537714622380617199695832404596646928365824402556133535305865848658198808358344079232411026620623998887624544472854845505917013993533037031415428408656867180346038190467056915963681126017350809690236380191210834021337516915359011210601255036423103318821126371173612586991704801620497880631123391765383590767556843667190336779523949166258549570488621898578468299257448015649715585976846167861952485768535725685774745801686051306256589246494314657363183897405210052255869653868630168176745179458999792271543925106661523551433816623150401664546138881394523724615667500496722113260932899035164840650534784111433719622800252892412421499391291387357759104140131197862926095843185222587558728759289861342661118359504287210889429420508096154827867895334651145597102482713762282801726356650913074610909836322718110416069103799890909684852498414189892434157953260674331681528460034663408440472152571733256779021364740909307475782941152343867939492753895423194745083115595663640860447303213752578977656258750275226043568966141126843410123919195253978016651998110928795942160423123006568651059208681134373180512740303014604452468703606323659836713688651400164256483839523005907848848125470848145820627049689016443455619570388043027321770422630706088522383662374105170756119643034055220910041708532178478119020437035465585677814776792292059140577976346759529693460306884006050494325636184818687098696628391689019477750075007073379647950622393629083475865253095236044258479158986847532463489439015392652833356840789598433074757681830107458758585198237264673074686498249025168370122581080084176484438027200780704118381275684728683342335752108815043739880340440933440190934303093909072888406955201607658723804288487286894256472437127148495081718804786305729146106956974995793775691359060600426315580642190841811767448438095536203205773820511854434302054516314706672769998615430174355825770502758505290522327312898270632730618369580760323330228155210732316115506870430492095904743000414232456995950650811132241370626073542816844758077960009235617178744404379538558398123160856296791514405087418573996937740603839777907029552080783488281722407215416989859275089469499282780094689608797569038694886867160875647041650075224365387053147696404640613404070691184696385675479097704870933541782754875235556578861582433665162332851198763007456357366822591108549341534568722621631058486521683634698559026168130838944774707517013544968285922876903216511907735788357643091550006307926392306427219433211487352802934861885640368789427282700900772273773942537288526575024270436604955236643702506886010267950085970140300121945153104870878356715233357925789893715674374167889879664768829108087932814569681237055179782587484639693597253393510201333728101681257132138087209531142557048056852468056700416314284312323257993218840487299846761319208881300053115989933621156166117070306760365774670538763057527563356369394298793161408612560415750221146279279642674879292086245646020757170422314964588398549217830167620888373062580514347555279487221155960069027162464991007107675783618408177713774619558936509657850123939696391880163091504668777884799654006725969591870421296356752422132148105041269152352847222275166786274654302278442540955479189974800529798431703961234527048710540005976605370904417137151217889008598661917001138390726757728564155716181278234791597523766214002438692967628834292843918602346050684632670871687911242787923522619918862454135965711049043379862874656348031124849866649838551335257974689835028874768435820355194275901382327755687821025193503646529914963474931196151708522042827990033890921075663804332452046356130016662766608099440143805272938630377678312636409665197326503208400489792374735909002907823793436144891920131665356776035444350549433615981836311434376896725084495626640591665234800190875278497577445488401658471196753495723228341239664715750205842886146818757071683004605415954965145111424798828765756383683225517953797983274377820809052170014871841412643969352438544765922906306498729506060081484741728496437280215739099493630222478970347984766426779606511688239987474472245802357937647938187531262149383935700575091779441860029841209891287841345979723036447055358657375662861010135552662293937276131583563616124208465423173103694184363820575203535423596485208482646936865698120264286551584081860861882385257407685095014669523139669090829554387276195077624189354762098851352666769969337536806287286949137947086392547036492709732568282292439888053312005801887737248997212563084892085428333057320012774703569239036399728530370831258868031180835223647122764935744113966872568669691376769579734435870636884759096992107895522305789467875706211361243344270099112448765841767728967549481748664446642664261057727461835606264669617941644407640223833155003736947920555016028293745731583977088454347165733940765388801965491894186888576933107745734926694325061633288236866196266007618952748601036044655488470456644199553575933473550431285368838697120154097333753263959173653869274374453862967258548960599856608710775255579516924532707537958141118181848811996686771089253949015112611535311240322224735812167613565705072617152029398187296302689103967305286941016356289736519627552561270621071810412753279228252543720096391360722983041941038506179677215897718974112625310836042998995508572654002038682986031440410853345745666673409939599291872611730833196023029225678878099785111994626537721568526620792203274987009345416023180092180208700656108551436468818585569137925398696940654188137606316386869184582136960777005344746584679996529561211915993491764984248015444005159762838489759036097749889278183931419317879538620685916431104822464518914337142326138754702532903254010653815994502962786452540379022375372358703640366886453399413065794806219474637765966685666586449752978912221511699986012383413521352011451401650945808233715805821096681670352107850877452234153469624067248973090169008912540388533788802184894216788632644135497872632158927428598372820681730536040472261339891855272954008490564232731718692422977910624004709479865360680653061270360136210139987233824063066739246662217494066654364562311571097967547607389388918113596452227806722413853893570373420780305412473335016002946899690550956375218139611438254176090858008194933532561356312336433846533612314858782336827614624174691387148513282188172519374290557093281835713267433617125701524238090982065441397922703436744276553909799031153490960886227063041188459899696013887635057679260948883935443795297425236417390467720811139269671649189861354339519942297661969234778574992933056911990250856934620156479549335056167467780325919491194967063163240311326591449336512654931797913949933998891203027709718009118480789991053527231047226640416306917607993960293332405778423115655500098304626379531981641716906561087742558115751806194042535085066451955910273802153036905321549753641853320529161295739685685151398112342702809555865590061960794034233576660818528677733633190328458484707188694416063751614269538007246454336102599478302427304820076227611519461476958167651560662996524502341348425295525764212357670271031755074862627921306093241914579593152913892370441509783384437238579634459279432483077992625299120049182846662343815372947122759774262847846102721261100438505492865014509646230952686249473449309503312232483443710239465870925452969287573198511043217751410564307453952501818012980773816346322735204601087301882270673308952804589798425770467527957313380908500637228105565826314507549618756793964865769273549568101501673518397004280801709098104888240641208684177429384769082909639640350737891583987693245823828565509298628028807631949048705177186574769778807435517470472113095289512840367748402480702374522819076477067830226600535939931446417116212747486578438080655002460262020570697960974507606466883965898862662206670154119044426597496767279786580520234018976947710503447711696450505490415825268667448445766772178660181585308608328949811512334755265453354019921895846742826430387007523602458141696838085860362120941248799342497235753987733955017520895690112753315273668824256342846364151276686691448551383034447222077001672528102157413165576062784353758215580992968420966439719207349205621717608040833311300000947957689721836076158749567743348665084353331850566548623905992651857426641797946566820449344061352859412160895235497515096314087254845813226069990190478066558775899061108481358447009585639276229146993122492118211472273753179313411588357104692141391556203730827373415575872127070718349038600795591104349246004303480605259278684252075346808720753832541453141171981965135770367790619937396700167600735299371440283712348385883029817275712007133695247385301658869506911029839564228134860700803430859102917406253923441353335987608174779549167673611234221389360482076786281558989820343692737327899737363765542764490468900069537828609610468697250813356226179248366033652020588402663996844247599554010295087932285958102008596921215249696159255576739322004511022337042545006249660468777659452354534224818074187016720746526845909689721825121766419308282979113864041991073491640452993814511405429218125101826141496090040527020758064553770408938687814297559467514179642218844224993833370121465790591856873633757623690037392573065102364763155487537114023883611722558077671619162137437280741317273113437325702056485973853512762972070303704174912338669434979507160657662072642242111928509048055854816730687943129370386231034716696849352156832122278740153030808015442096069391055742407954419749583637518430311321845435839023594176852244297844434356100344967826355749686441976331860005708157115155547044912636284806872699012465859655085550662946441244412297628571223195531492626230305014735206834822809865315729159219364968923294502076762309592402110998822878810547839156042587895005626506482519497431386255637041480392465934004081455770032780571623901224004559020183765525881866789966567335116544134535168025048106471039509906903177750120159938117205894442045077717972260439015575419190569809734970049806655827771393604785481807630285632980412975924662557481173190046309947663834070449898454657292170703885328877478337509835828054025008731929056384807459390091254061800606099731740563244051997444287031079248772645671324576884014310023229362782821192742216112564656684173430412680470183536242571167343950964615184791459034052411144419051871180495852446332760808530364652521613358522717764673004554336871646537120732861308995290343242781211117183108025839934675263309073946514773570896708736758565536628054299840351642450237393172812047928120983418330763413236699998907485486555402156043550167220704554267827203429530761878974225321519246704276505950675214817612006293481101900078344057945179565462067096155424717302916976129796101230403883318537821788309676939900993852246637428984388557353988805204044442563485413672207474105074137896467210481702806594509373693873240354934446165373677783236671297074585468085656227126372393983141498706462020128339138260508135985803428310256610049370008928734632164031441915414280391406598992471109870042008223042945570173631360869113311303583317177862830679384657017470504703200705761075647808439726267577909885557874425691302473173691480879150861054665273887329913853056147374074636473246207993949821816921554459170325849693100705600623102696991528694943984101258180035517176593157519711735153095487139336272926897003638914155057963621581396199525017387047662186130656049501016914704411871313993906638009374104780859572620959611419261744056532343957609529665512372545958963662975300212411996637743118856999194232771225968168285034115126047890477183824745585900300902625320491129154070518794933715524673454632429241544147620037847898246724790379942300975353608111749814314436716642154530515839247152382547991492406356841493821782689196539631272886675282276483912425798807028730846729584772457966280633286847184668114216296714434205937646891620726988129729977269196418767668383512761275378319994880139502182955858448965365890582642282527618926322183741058327118117187766682367909313793987141504889383854986352916701194093761599117569195085001250323365279632194909578181354920264382306206715134272863032502895433113836567847575397195600292306125617904079739988516532921174884460648386919444260980478141551267713048209967068060392275506952239880186262264866972649709568250672640719564933269059262266855023499833849772752561661928881575520213869161746060184029666938433813237305080610306540299501967078452724446633733153515716057139171822628855217701711953186656643926786995022376562552286462872542127317617482264667480538590709293683410747207960133215744166380073064809869275751060169156448301292018096332029081680787258668431569035234073052139562262635729929329832761619604070172135458062300858015835918192158734809012868997510613128969650387325247146816802698383819155363919784263691116040715026763473160178819024713027158102668965711994863011642718084722814266943596620520891876805595642362083254172391472893412390281457648958981914210350486471544243365919435513996091317946066926647855432126241571170201282391092456497123970039680508426086883016614675447047267142479628927877100596787273016975315796371336713913521984409851394147434834686693162189040012652779910045890254029084540737772708433052715814217621460177827443477249404012946838571455043243921216794674067745899757724228405421311319866900841230299145996272254678318428926496963154745177830104950789569939408507608893482471190508806167734823289075727545296666238436135135476342933239662500574655133702051465891785396820440601176445263605178236215504341148059962172471286519682657395987130503722632943275200072533042457517925573412266156341912523372816773741956190348239382746466944143909036291892418857723018464177542046480095960607984269376701378035122906732023280933739840238826775741077777659067587506932219376188184872016041945435828672508869868440484925112802122440677255716162447203559349902961437198524799257848294248801675283704385101469032062619894806681414059194134212406765894519765257383886488972743475689848723132438858514839037900210385742358178870058463448112634838205529046729227842970410604184442486992288984096661017526121867050994543098170879035432117044871594203605080343348805768462063162740395178056069942228972052441129279421452858660184747781076294268047307741168985920198716472071240197058674581001802881818159410516235285575864454502727548759395253698247454352143845409534946200089470741311829142674941005931895027127948326717673953014137969792548479910631349580408495851700895931432956263654244972765992230447034826329418187895385138022610622454079682518232372898232063425834192257808803875406654564903080887132104006059428940253740835022813184145845344346330297447853529290276102110521998900054597703569164644805292413301010170431280627294260292696622865346758851283825227121882686102864639974907293962482234638635639917084630618034963985418696402402341021780796224364342513503785621162788050150050913462172854400590913061181241795977191354883657350762884189184004461455753855074906945268506566129866453063822452154476062362776057219491628195888968772506677558396100594355433143739656223705319599124123683312285804361762890639767220480481989298489142329308126761556468665193020652865837852892570696539985596712044852192533982201160879705430886810295721830064363957259707365115082098779280572810961686036513095822528811098843645446118779654398677933721766461581076031017002979002251597927543585571725270967557073060671642450407207554395290816894148863727989107636756514497711771769892930322259736079428326727709494058714109037875569964188908848658317057999300866801827652908850795325609405958319332507460716670793304907088364218778873460149085107947812412997255189726322405023224367409807849504973639661402998451323118781041878643570095610701299331840320985588961250530720707021248508112633655776046387418180787868601037746663778987426688120609901090126450300174842245857089901497618287933063510811476824083711439016936557483643043697450998944542418681684176772285422908572220056563443976213447108491836705225629712601618776522324596108604483340065464118586725088639099986086008905694868349977384323859062795521802043243562766799283168396840648483612330055320652520370734291569716891876972620667464393671946350588933219773393323077324834689310183129538936518338475913543183751210069890661242129232490185880484950020812783837204442980720511257384910889004885428109458757409273911813739500618382293165149368921497076215338199650094653952894030330953117017632916981368459530731152814417969171058300421049269775090196751540464873896633055213063026358623786028720842977484907571690209620543058758012405467557488483902513771384450274152092512629791762056775982644477179602522565194271697768473329366190024408938644056810756489832207962623624655668330786183707710891795503943672601146067676259703072999908273225642580080506352556055346496587442454802169117465178656130951803933593447999338268185414834781620809934628738046855769882538195723002234748080294158916513309605160896945136684832511854825948422996616763370361645097159618879948009671577290933547810750350374170341887145401509985508945608095358480704355364636099635204812139037146085571174641657992336297906689263278628900851702557967230737448295229821426065416462793131641627147768195391603519064480317751126261790329244590243768826168137957436497189531511918041769650691004845181789684164756704150075237232823143590762101234083286262072043259913334338431518396398768587162276776340241586899336281464388489149027296689651904888123459689249127333974246626229593355205973579351549161501274840723413325212074135503500780052232327340905451170521109288291536344548148705919945796208173730386362075507858964059128528483934889634546828778335782570751356836740721868247416290635394480877412223855985164708368380471175218961569022343969832359579060391868132824048416603429428956655179786097541100250196131433783740598131088380490308287930790389801882236811642547143401319985795527069485960646995575127164240419992279465496321041736988265968375640253387842212524477254811240602697145728719268759727802989569242417489559900391114009608423576049854483455099425409464848193022230782226881838195522336470069456527445437392281771626099722029101870166733231022259502692813525624791402375699243538949991259675369966032666097197093747828816228612887074454522418099527274691311117955468926507873357798296030963907681167608981505752568233919786263788829028016574680628995822706058698326055824916061163141032301030922078915920243205369766881628547811143123537647319295778593686117409912792502232551145082197977442222322653757501102198236806996014344535213327119864818435220870841125386246269373688628043807566384751803465005182097817869600931484429599332943283573781493826339671194682667380620296752544723876295430747507772936283109951837258588878199374653037494475693321338707577198381301271857242652443583887023434485146813742230776272692863056825305862133392226153173545944714796475347085044771429076232662506194359426401858415000173457202198359193046746466168632823920935956542938317338570754634955750439539379949333238507717794592384926495497111287410136887634820973404040204685866245497804139716462157809379667398248176404544905963382384729359345607416829006978564618323587930079765731953511553195308546532151037732198366807930346573412142344802203330777401501735722887068165673986243237743953560544748168989057175617740237995282466330338982003804708079362582742991707791540916397880873241503443875803120679460706455801387580407453894067546998100983134347005903275441244964537843431339411515794176994474093576240082589638629511616940518187459113346600411621276625355090925673742826212760730796065974879350342114899806421869495917722428087180487060648100107416718144230431550820306236947732286985799031122877747110682883078868693797438567625603847289982162617596301543774445996745532385390393902084656641869874374087213803665889083636640176817598387480050069604022091567650434787413698536426928448946219411958926620373808826330044560553998884974625060404351390184289985764242861167633278786055737852756267866395806794564061523698471069288859948965338700129073774331618770266468474365156460209528836833535981938705956812724891539634246729408177945671857104670236287235244770432641852288315952287259034940927757964549683271845959673463576981918627501903272308384191590123017389696043266282116044203077203537586319682430210646199566392911779372767278543893102763468961994231440074368421413223816821094058951295965366397939313159026984104831277679089510531959507375113840747624566721381515285846190432031558053359283833239458357234481288495416031349088212519464556667261304882461120657553438226599986995171112271468447321328833768102654329726232657589303952791407412701159827343739518029156106324065887415161466951872325231326404333175813716869741455186129893000546004335731661341840663418501213148469546700016928674867635154808665637499250340538181276762112115397320617647589857044469147027992541401719670530265017957469149252855496375292792614657303558210057923027673556377937501481751562297349784705031353203079171426819691466339798865583391937077612454301273598513387070422166034767777393889240127817754054457938750904658483258095214359206146174625770752036502634698599555456917638505220778621281115401918415999598715798525430111297051079218986208636120617392978661443627769448083030782628810808545124162371548574482483583625570602194491519128252501892455057730266950113795959242636976002653391215668383313800319300433736655354319351722149789703177997753483855043339310014230174237316080928759844725271492058150983211287428770891938700405901896108326262406022199867994704272319177301071087310857272991332924832649242014870590024359781679675541221960005069863013121031217848745997251454487776115833139061969911155356696379487573039811298496790706207193379203477718743964572856906823134681789065208429352343009230845364503903864936425493163523518274561303792737236796758872271295258281867833996443680278435500504839172366008898920481468145897841869915305656582443691530180267547789279992269868204657684713863719887509321938641246454346820361046949607556512514718345972421493486880570640710377314995144767445750559742876775179652090145939723926086618170626607643578309542208333098839882245117218717611579304428977832644525398800839031440203089931120523436092605549091756393870197839387109712522526612785367232620447960131899196479015255219339810853134705620148006525979771503676255954309731467920981863349553204102984553888570663892598465027666168641017437582129025349446549484810806552519866610833390614310723277839654919919630429988710955332057037153428877681942544044637895398714204111355977695997614486100386020615378015647010283681498077761321178528287324801121758997725415997650889419698164185954150993404034524008118646562442455816718495008112487752547148607971864362015317539917418016986143887621235505152073914630092573594936125274017340020498814062078327085173177863983968038652305779052989040839299075400093765954497022656151106594375277471392821069969817637204696077697824625880860654132850427980587362095980861822537280608839652404931337518842789105302531488417792701793354492696314777172739117608551177263654286431123155959568989365680534936868816674639751200276077774438141253670735643285142478760901351670440920717356205561203831957907791608989229582117650440947834718905135009006071591306303157894820068988322043099089286999120538714851023454139166088868448163114297604992967241052125056231126210138678970397065400566334080778501415064177055572735560547798064903755466007204666449300697739819135736281201176992847173211740852036812997565243507715690144616021017934483117199221999466466230785844285004531349491395014694290050634757351963998291631103005937999361902342871027508627926204835189891426434656664704335777525952710847507720369040211737033343457274938050581468269858245117356406052401923744348963083818940342969802559503455375343917181817634637748931018333261167859302111452860620974532752051378043670534044558774289027809299794174565609423930327262475175219561569337128529656366702080935875690644073410583202710503446872880148902918520671659384779074994545428969818262185668075028793659899042710223788868208430519630812575077778153357224983330238122169626695636469031396170399996596005728942995405199202934620557530213012132296156351870199018340875591173380831924985382986480812212947936228735421276046958120330818387541160656572996787421863263043974698402045271334660051194502637940702634909471090326530452068306763559918139194807298201060260016020567553745737394278257132867039704249781673590603338548882668554435973146026219796266021443896981199529550282267333461279988065202081339203570263305728401389359462052721684112718095167925882577008710494007368919970656337310842733164592354044064373055215063390153475194480736400405006891654024627075505721551759553072603442566240536256750843787306611035068384514577659112475796505254912287956707566749283849030497251125432242753644163696481521025140491606033209075607619376796613340999172028606191122723580642270786408590269978979061521012839653888260779091095744081913558291781465665395001548539668713450436687664386957789407538162421203603661003205014948161663557967094655847312135796295666314793815247541361788918870000743027411043754789888245066178380173490155937136791860095312866302690456771354802847184603314035242087985250910791360759155400428998850653761798454245893235673465029946007715866369876495777448822200911387261611696820992535075614569785112770508981819249468351254536666415928248595286421587731491001915705780114573886491796349185168317120994831436588867391729931671616248797664087907354368766643312377405584894957065222992916900462921285421382505750159524280423925285825989425230751658756007704938175447787817528034523467679247320903423901830744414676632231863262082791671151799577204963803756294044743194430518433597823744571991585903538918446886661740904527997160524733403601171202265264625950985760488770413284925084406466610149535363108705709475087630341884895405618470420309267985557485168908586728365707707913997084649711356100169165331183544514991372217333226429903343362064497639678185617201534449322123372743949990933388064118629150666631852731336910003817136022911967361863690275141610088899231505242421146510650942332278026566560839771491574330619919659409747400415531435966001824378374633151710630934819462837240723728563131526782457446736085040101361584882015401686577563082534316353579821006849872204587173852991530017614328630793055198307396135561877771154887398838714485719220995139532509274801205469589539162205953511783246950165357196359924049837640147990178158850642420753639104249227907763897443578842311617365370283470021035288981184419952021003702269359925657189254580074746423710627528580964577483801445234752343867313551533208860609229614044754136422839958078423498769071638662469495217403943455827426076568793553758631907342652285743099592191250159838145048473023989303863432702292000563410299048226399712925218447245314821874677319657527120464729835175952367851577488687368433374427929887873215983583785948428237753590605282905907626824301010250881805413627110004867009246359441747739092612151190254794395776641785280948198617278038569236558461583018885964080370590769885823560818418520060273674477047285607371263764623419408761474045139622707926907094255791303374044876792645664494667119541475887870038902893409300900570949841195641246491172106823320769104252799275793196219593930386094651221128518701874476339551344100943757119396679509034837420204117880441247176615767408710265307833461841913050705520459372154018899883177465073888851508816568127220494390261170134258066597563070890558634572892757399319146266542565128430494062444570932985386872627222288885496782102179769602911966053605837292717721220767672728911159744921236727108676350479857159191913527628181425090248904649420191893838319319047468711882322181079217138950573875238411235959895968382080185425263898760718583553251865252220809092327612185937853386843893899702279735527388834221921336606103323638794311945287297184184454335629317300866610202582387637597938345180964075879025792198292907650696074650955344620810085921351443841565495529033990435459813541676717781420324968049852760546743735381558503940057850124295821463360450005270382250004695125587113917931688927128825705947371359554077524445306732165163022609826506074470787202337155786958134689963570083834791786107187024316038313217001933303176796000922854104200326748981190668967554035591816308786083512597711327575993999281834497645724860445988041616108242989906110540756050529276064817163189051556209319677894991308518540854570407042667207036391628834247236120693239686212984213806916460325088660275311431968922215382052766353766221251052634490469400376992160915728390260953800730422275090013211040000878796807660264551071702255456221043100316344212810812455344140752473025654965429838073868558340612595854403654360340464851610255131303348257800058715333511615758133055896775932113788148301151718171611199765832198041831928403998628439985277432767809358963427676873567906408636106060293656158148943930883616098890800000267175103732964106262959315231322841083306566690626662772100335464791272499109610754984003273712025139417245308772702334098001043480676286259728384766949054377536102285541902260574464154289240380129833496289710958474167613964634863909498465463930905924479682857178065343568397441282805514562274921453359156406387980248438612026613041479228303473339825393788478085408966232383939537744940781036498518300233133872706424613239799098300704347399328210513320327420328309480317876857332829737982468337978392579596248669161796756725524724847025194244574335783253726264106466891317108216326281983775669737805931985220257146321595380113288373911007500129526803764168871823942938688284144170653456573457115008824023083483201932339614371083501467319611579109328059236794751310567894577128543123006855709647297141980696219095720082726923532534757704226458762574095560527681246604304825059723687665473914213938019562316021926177388864035918025058874080537748062312134013430048644101820203540583562758945168309434763152962787692925877383980743619405717503746521577012118756795637356642651972023595841773238424553001421170941848211095926996998080004377545039974394829915467419554360373518801421624932814672273440819634149429978849531200480364432334778910167199774524886773711152198057427641550111318010406567270144665503697850849502717928381363527696574199738352006302759226431593579984692832218789520296774897675031323446545951972833183423445494312316697085201430588468201103919858652928182020542333178166105413199013786850228951767255125203878803994139934167282423949478237193698523190298214341509546775422233981684189117531327465614254727988284124120981908067441520186099009634692349300137233268453162222665219376601084225106612323891343618258525334507539636206607846924289003844527772032585374052801466533758430940297304724462270498074089123022913687108604376598786099785106330556732074941780884326052352438877806642531204930472149873390223862450639067943033764732616323788464719219205229627841732068933373546595703866359902180269004926624291401572168844764748218068786422250834544998454438313353226099125892438216856042536223929971482946642373869631017926456688003277317723145341423601353807493875787023481351319566225465009752412063560474767872203927131284695635184747155575968730765026991119899855572594495876869238368909770568465792261673477070449927880463850297015095668636475828037205173104390650461736517082409313897700555872480107795424396962910997210413211948481502981812224826484841307536774623251944937991522821000215169430587592823361067110428411264445753817687310946929485235685785673547545617583950442386956544562116740924527069753576065364055119910690434962564581042413884788758127773645353913485677797350967667472241792686129861689863035954809219515283222240783026007954483286803540550948788283816885586697900370147345284423897041406197429673653259179069315160056888847211739264257839442558638024445399779339253180054885594822124626125795226071342319714336115383870134202110520084945851716586645518136280795866018546006775850354872639110597416717356303429917289595405692874491733357244997864372272831366373209324902353819160361020586279693800285488570581111288388403158165301121443734400995273983818331847042563280825208690533566938960265213589263848057772286268777619190724625377745286041265417215749018330694997386245218934700718372127396252240002822472382607821718892903306099433161826809953809396080976553555152684907866506982853942644906716068706711353498921562528045348879444875752637395089319958926088710362930675005514067914047753670649900142006289986217655947452143127990687084407320476398940094583748539887331777395930263602626277041816082372634274059397909758219194368791814911749036963487550695900155546124736816347366451817144361549197817115524404659198261007455522672427929753756723820944386194098693142381005454537659773067785678867361144275735774552936384816257634183773190314004897903731264551115236414507491572430777214006475810115643918509609296087928618655746526346607234100951545899783043096708690975973753166498075940837140280283875486681712496594228728147450478038406144645161111458360233724001406424059076742617520510941342030581575063170130372846871039718988025896896413378756836397630869434504803787139331973342261793980206961363104734449324899024517565816972692958786205929595760532100934250913510808820691810267681934779159192023955116294048857804100569300201172566641232836304914146208170345533564114178898403949014652430034878360115206235083648841119375049720492381850363212287907195605435228335498399167297173806463425794924269458898071465104421010272748599420954899006128790078161146400341168601420917387116513150688102855463828969096045183132499262908133276771818123557133746540415484228908911729672453147158656654466557118549768218992863745072984635155362086794772582452349816282174904081212812273339856763571868573654698006257090488856877780273824877458125021340460833943464319929903943996552443868470544404150602518094169828557707730215349601831033517168157578203982561438569011237865451821728043083878108850634327911167231580434811224174016044123956551793387821429766018795537494425536914312855338330921560589612059155496298553694423661249608004139579091221068715664749045294638709717842869875551821316010683044518360724352990500735124408203561971659268407565197992847467809799988924488811280748234218167891035093481545014166515416425129587799126557160814929421553478282708046601215652181272368349479713871058344152549486049248869524622445200091680694033733136813707307768161043699783714771553319637843977078998876046174813148885918249093429891661262435992230308825924949624075644409889352154506374601288033840101309431823101077079013474475792738723481441941283761011369811022022491113246821119029180468394908664744231448296186971396291120443790005522659618238659186071533406097663768382017477488812070825526792947471020237872590347296617103904751505795972305171954406861895376186938270954570150748886768094338932456760163966476968602910776024923689033418517679186009359813061463840625284424769703688206337827306411457476482671935404506625821216401177338626043795377318983733871561038446338661574355245563929391552241991354373337973656289461117698099092282608890012436531765847127283244636849839061829481878369508403687947475301941062436793142721614256470487008232021377198449465456410029053746976990594332908915565540211499190077349957821360296651893030857288712862454189638191633340459803643964577013288098322312140896211047569427002601175239710019364143898884976496611670844360185155175646147091161878725692323797619828322732381297138481884666570355880566755871283643114291421218664728211990674415321547464321785683295874921980433943155271666822166861474593786630070576639651002887580905367324841139624444257131062065271980580521658550693578781044876712451754529593570070822517054198800858349642821025997810687397615849453785114126529466611525891583854879374018949206356937853619211654866215065017544324676524623688393228344882506557246817883545550797936724028692809973063758134145992118124911225744776470550465492332005304385701464665692942378655539831535818647102357304764434011395009671413746602831018321221337084147264453333428973799721988639210135431992728081147582060417779701428874997154643437266307508737523106777684450343445691230515529465786799659951936854631106707044255816489372319715158405118630350960115530137030752274792149082447392669427518341446665828282751419147106614201803243757793732057647139615930107534079653005599558124675104687606236690340415318380233080808512421070193312004222453912754821418723063661223881115075405058793977807871842520543716862969761177566434644925313910101293154554541720110024044021952261096583302767014513629100387088853778583176315129339355629902885230718639996410716344734733220814754276877484577932639986385768239927859998683319599841622652198272082574450020355448809068783294175244958537718811174639170862613323528955539961989221433921035741115010467582003753348762140623153328087745365297328876052310067290873273130320004147166926487681290270228308005758447136150829403518353614828557899528624697312524877762146080698136004948261718143299783050201212531224334498751731832259179691456787031707896967054212983227494468096809245679058700004855931344577907083310817839763890704461828234820388363132468201872395760148487582915471713002167006523355451062770487269903257829692407017346654090361342070613704031879072674069644653863846042251786611496254056193336637512692919528891740581959699850210798782541908844787049170531015956865727324317088082695700289027648983603260284934679147362792895194217776675430857931740445436331137104380714418242446035180956189487549103260646820176069856800766037259522522097105087488789545716278042878150635404876778440848146579709654275706846437974890810093934441524905488854027653821339967467239600440161992585532322312510280616415833204378618819954049937281636901102100493695723866157073025243462902895684834317572528329682661834650327002416658635592665007736067848481955630262980371602547002545350533722150023286887889802508451529716150070891809546294929301151579968162213165710795020369043265968863801111054798373072463551709079312002679373052684311499757453256948863174016785283408646341237215548757182784243396876246734710636018722655715072978242718207843891953729970573036154434235271404518306748396197370130081604117331937004007089866900652102871973176303327650569512291159927022562323360643661373893122489426926314986641187248440403056923290114119816192370339115782660240677940604270618384830189931532350520971806871833325926963634257770352167214809155640399741303373834757425515520189646727663896012488330958365658323219587327610280647588854456191307819525365913981092367092115165829410992144046724316905973882147784184707294492480415233487664546908901573352720939648334312548340848171448411269782151873232320827844357247758958265173061014167674581080118483408938842352108917448455151685431247170700642491483236436911259705142727403241084500110725176897634879395860811666195211065809996255933061593394309835047889017308228964915177877332954526511457936618298051261521230179405898133281825438424662242308149007375399070886346800262325625410660584580739567955014474544031851015937474965714303093479568943142744453689434706815477085902135533650999981832852985193323984023608208299234743958405964935681623518217584430697238380483501663268209038722935956869753022163301914305173057616300723315814818299228088874897541747038678677733538973200532712231421238900290420100171542842099841128001899948592705367238908190024865391791686801400686835908949491241346404525065802859803459058840033301586406936484271342047974677742810019030759295035452434201000249575481838825210448334246374337134028493191086550784772604614087079231230429112603132422064067550125870575874472468072137504767525136613374353127061184211887220186625804045714605980270262882963815655863008291171756298587185881912912975711591956944080590635914254910067396190820057469203242669360927529740792039585401501933533127634583333667735626203389871212073492835746529860055029740415765951935994945606888598965362986092050199785572146772728170605145217153328577571509756882518056413853826316788939408654398754084469291721362090087546054410851671126146976650588525501880620790454554473015777111114360090615826655545682667337972103650121933224478465370234507715150292117560723733525024443819916853862314448950108632308538766633976329951665085531047582311664910993846566323960375574534540949949800024223965110930852712167499314037295303614602296077997095910213397366325911717603810690448798170088828995265276978828785319782126573036643520498857883347667734410283108711959321573919477207645892042713821766111564690858215415404630363607728627868350034553142089448648157674821404148879345551913098240559721945387209895156008882400013324551770980782809940854843531178450710602206752914757862757447695408476066463058554108067075282880365266107467593882595329060559316566251894274097611027536741074485764916168321882747687432424845006119799937210140805638285279222750716665083519715590931938629959753940865843277841960277452076292019284764136940756017668834681350285999050584622963629552311028385026018937998094002939154212247699992129928549330038468244381148975732366860758912112126924738067864044592038362087914362709671365227937627642034563959145035821197952003735094549912712386707176101619793157034329697595698882498018148303436090668234965397570497021551378224458655955862380297675492679151498015822721025768938033870649068595032339576301440130645046920194186570517692101969149467010701094321578101794406461675244825537870627156268054239607152063541928659324303411769120715987455255210618677390344908421978624778934296099833246484107134617706484261256770470072992177968654569268382630515680654108272556000070353937447523345099410139320615927035748236605717007461482203308553064591277926137389959862310402272559104135316166310246244530232453499068086232668472782812147313550025654970540847368680026115564291333664887798551216532349319282174155374769255536506851741854103902228285772486004115721449593726936299039977617125403025914478788306171713277511564851400089254778732762644661599937352351358775294215569940140177919588796969442391009721940403380049246825339779666333950562610326818250226987800570437455194355831705411735307747548635159403499204112474468946141649112941807722678339227526896478892179654766142359605700436635303641702697873706823809978611867327422992939010647694915877058932268707959355867481139570887111357635454721577315005584146557347776708353217009586824671335279597006368507534837844370853960890971274961666888001727870014176686262319085983019131618872943914313951319263113572360891775551921602424191829044437706324616160273494479310887960679561492661572652070666555159519051120934534625312566552013262662388105826276143088261723149202285293297997549906109971232331440592792715410243540214204436655810245488542435315794394471097186307735550311288989370518338974778818580038289481945688416653437388585834126606065957496399141315164505275351135129009889760309868090791737325561437068570744173424678679615713683297423621444795551322895342688888867694078745043854362120559976727577971257623418183866147511207826918921597704572585282471375968321901354992777768729142948294638048425999379853311766107977639514291177797457239601682996801322318956043870453236737962736586268430839363109269649921303361857291052460385705339578228413547857737081375095647991438864897676187291298608723609075855132650608962224018121768731089478232856458713220569883345899533990920224031215136651241074957558522354943725074409397361778323751257378521820586987617375590131971768793864661919165229172267128605387212004948748055928552998624585783480894708365658927220210836592580769652147091133700277318526900684186716580164590176653441812386680522919977579807951282226172238910938469310336873431040118031576005025490631808262008568103473885518102105688036450518395823354207829684581093860919678936490757246197180061126228162089237842275674816248644833734598343505950276520845677980648618335897686328357819100006951806676827632448779239518594636110832020974151016600967110416463590486461316552219791020151861248169749739940248966508007906658010288433366723925543502645209681364426540478317394851187593595435788671116576813217286102597591989785590615200694200701425938205401099594963283194413350776163874867257976095792176502136174502687464686302901401973111549809853494683412377902300528632360440672147500106173868944524558402283658777024167791358885338557883680116188604093402754190733576670522068999759847504823913412070965366607145105343930439445232863018363950217452468630512288300891233772359682397771187018503778439441849331599101267367645457769789327339266307423017215335371591427283030068980294975589021599178674521901579663072479830523426745587657018618680068629743304182651051626530981221613067243812964764147005459923415010003148367239577489019881329355559611487554829104469869704918623097506981478418423312546259478085691181236731732155939676950138857537658071434566101002817985083001005569723783145576359707607441466132301630956350276656717092750161914794927941730882322483916584851935506759233742843778020592654653296889703084703665551067355403805246717070022387817200881054428674372569157154788918946054637841460503820428548711257947998037347138342262447563654320821153325462214067782424334828402119207870011224261460563305307572010601989068426034821672549834040500337866544459133637456576681296549880261433325941859530586821311454698757903389961090865275385167731203019086208245942344295652443610757725218947516304321129716959534762327468186364619948035169080413973861120149999902749250639372683252575156811850152929975888769246388272097641800147417139589424794714036283547166643490777920733078120826700110329600599000975116704474724305971321613923307359100820718121692597468431735383524747353812259451337670077040092254795074754077990932424050054037695227823677178987814576251967493838223720655438243155287304963969209705706070983769218548202330175447540701531050680150602954393226743658963636538301792168415372693175023458826202923788263154021081351568092791433750493064205530700071575576222848384669372446272617086893038508183834217561431619495800393269157642694994266999595048188460378075094845123557420060469947176269350115151672418635479822045875946954238136659874990012377863802388403328747990607258054375933343765384068867210243448096801945089437492862062376867897833373709938481917659928437950734367793968238453183897755250149792033246370354028668332825392362581496365918314188833567778374267485690601242975966756566785826946402213398387680141802654976976001082924511995747925198789772705725519900388588282202802186585109110091444357421846712141274630465268760605564096752044183524127373287014526166336837005582721343573050763836757928072174809991232201500968689054109518909642187867738434119145429480301211455292590376414303752442211837727271607111906650195603185531802887553735250460906975814845669531708456829113417090492655457270144798097564994820223440685158552816740798634536225750702537293663115546306700052608521143363662341231884509479362731413592233049160333830913040100311629168364780151120475296372358132448085823218054009780335167765297628871668882212003581561955047189364436288349018155021708324525578403795694279347654937100988103521233390705168006573731023357443819590310390884558011564929510511783019931001122893337940733495697283792595047289723420016182107725770168959745487909299815716871210345566350822700384229676798325015870697747065542507776789596416729245860498828257330798795550235288933978068934833031486820168109509735722313519125759222659750769751953721199175681894887396835174170853086682440453244353498289720587847682853685124456711721461265166302903258212787679606364983286025182706376996124266130604199756920443814162640665707520002301579050580448160175829814296681291117322452820609873870713027616484534574603701625286826307483866380719745635691555048789491653658355437877493140432845380349274505716472886300930348145379137256153739693151126837060388339454477545023198887242013959230319948633914048767382981236972649667448749977225958783817257554568590045931764644434471553791065747025297720635361721868188786111351209368550773670444034192192579114541052972200214963115306304756364731905711039566988668613008644725424497193042562338106250802771016113209131536192333794063428729617169440155584984983399682056180898092603465272742421738528579819677993164928877691786391687719020466263767878157862686486476422921911639638363589454441240579630824379500692295769565610775850041358030115331681281275099257822733075880447474299432203849848470013545788378689130658272263161434511822054388184410445633315658328969072862107576905379606149549363952534813907496224633183612771909328039089207793259990374507853113024688301396912163380665385400278132294032884059444968214796009694795572550472873948763416191995092354314782893693839804494291583083844776950681302166416076167400105582260417980846452370708153586323475822813219729623375355840541994117399601524280681487864553655718404048011176550851249302706033737014918562312328298625176461545994161695416372567694820668977520460353989984407414680360196848551062918436908532060493574316307333021709696784010625435600281126859501323625539957492852187187145155408193967745394105709337274096576254280333015509640484415394542346489210296793961061563323448521002821384753132040421417880708478446390741220893863597493269179948693385165486300156750732102802382601669029068285410506865784606779412724812652836957006107279801642010934771136827479835030993147533462228142062118395425715319330750600041690175282980576097276112361933199792435752663465936043780747320489553098994719852958184590669352187682218614903726642333833539355882509596596229119063186785487317679972770853602056816303420985992928519782122090125598101579703909378332354775403217832261852985501525633626763945390308877811520137807981133200477607053371031821255099552535530787880356445898086287008331608289741488392172366795458939413743353245896837452644453255866738832081624379413839869768112929722726330192823452781753202041258304727381579393869696115243112604483126000672479371092923832719549463345516530023825211457970147590196399430936859549974714763539761487203031757217163951263221439905170684172588864041572708706924965416949168476686887743600074901535201257386582086061206543423885265937280771043627373778890672293826390777211385884364212985029874577331048639094042296683063509425519965331520591484427734468453555306461766511615810863813195549362822100895579303660811807733767902674330323910597550919550173770623901515218845459924208381292306986848665418605917669903615612688377320751298791436862101454950108203984334154161170597973275000799460554072247731993136435997550290032563572858150102234256011410476405891169784697012608925996354478008820695851723336834976706125185274656289123217280921962093558219633551849460864385779276744946436639580328263590904643824545750381026314729578841598668915016823023590219053306787281902040756425953036422940525533362565400566935369706624415692116101449170538134800814903047923077514503610445478861577647679787736242680678104701998184869940445102118051492314867309862306521157605018815600833980721177863457135795163926447138706312132647209597335865704911128494749703803175803033130895670651539002777346093052096048107759482126778977820619868443920156000196874966656714578261305254958237007473635760399717914708512827102723483235816386451116817542356256674582131581258478572563271417523775529818094922066931191827646872037779803405046575807250518300279081133457420668755857799659418502482384489310072402372470602458341341240409879461064136970074466215826757035957995719126928367248612461509884174958627766705477690161757747742027667364933855767805599930151839696321526279252790443622588515185091600809793955645831489949303879926814775955343973020994293009847308956257392021154564553874672126651618819552551621842583625668927552130331501713469385293756370235333812266883414629259469730938222626991482972096219761930323006029723424598803798963535078464232627797562839068553542901643871327602544075170208628917814337898720696662677574640649912379012558597187416846847921416748465685207903391381853302568410218644009749330001509532379130908482206130412714223215622564233825766001248865174775155010166402518401030446811816592153604214126364726315390838155790959103367519134465206927177181309230453137177799957180684798968970461443077251690583464998250366996124480641790791433768613837607967129969019201481004154412400385122584738027804759203204326935140142223459339092440262224169857010081509258664206858579263531740449237762392173590443559945663552523725405037915273487265448499359051697584671065226846803450993675950291745513915144165393184004557670467575797108529517677900242959049157738809798473466064819066196687696254419873955606051962721903789738246975130452071151017680320570118454666013151438941431849519520737573222477589999370548913472188532975175906149155681397754655026442438375447401079776493854001732776806866178110153908662690547262209863315903368847221846347430274784868629547244042317739147580927133885817795386681550102168405215287997989481456365608998373553838746947870108541102313961087137634131664617037095159264568470202362994587816819525034423992910475223555950520768203593552851985353947816882430192622830274502320763894736236019078003967566214667913138036240109628627028312284286108727819082023955256803699886565681695644357588284126887255904950631218088647079404669949222582925328926786846444790502140771142811367245359906934785209855480888598554937667000545955214843851028394012773365365728114529091187636315727896812605700500678345272402380624711296772910140965172551078244697844460831180374402796287024722502749126998962200166120610180952557085206402854828560748112132329897448532750825686999393723700593013982269269920531446686234898464930881725034590281335275210764304896158005489921359433197353729267119273469635524552555600169778937354849067367736870722264771454183786934727898318290168590501581477076408470053754306701645255973365098824887361780991567086588057553930379132944824270908835758399814962917092605616144152562393142792023229024191183841776356128761948904186882461327238917039463521701906556943864169322489143917251439662710409692715273988009317374633837457126239241863357140618958943885614183535406940112206711422989733609131077892609526782080643920004141504333524092176744007561884799231091020313727997659906333274676273757492521360606315854015938943336059600431199197499466126350398462368592400904537232557652878462629551497447525871726130041966563000091901144044384204036121043417823285622902572166000564182008800682418376460860480894353302022507277352099835363341643664455883802254157010099636301232307415843790202503766540426660134712789458701168112933955241607122829659275719861547321576904634985979918580304669321028349597669753139643259069960650784108253502851558504047678259686869105481128853206714927014013254529573654081283910046155304437275952657921565539455360234980735876307983935909245814012429520540021991900986729927579315847306435085648489276454432848054486898695687157826895045395666592317431240119907606115812840623011954704548054493245127116381345543160263776271561803434776349800618869827241692841004668191314572028143439634309440658418868086496261636626217475196307970722341380733648014668060132419611248445884669682116408838167041145174221641804568895569704410015086417941044304653894042298466811539509119654034171033785470541885081221274328676582345222452106355217373890913831940342608261260356957791738952132828506360390670033095646635785314291739852066473910982328221511090456265638142501309991881933047600326062362330991347107341361462680117562311074962063482361834803155396151911428121954165839813131399131839887684713243577952588259947666968956741518224666246035446778970427427272962515394805668644010728704874731801788666582637409809196380416414035500520247517389913190990736131439604249449505219497774097431574902417888057684849218101964758701520395216976424491270870054480642689813588863702958357180522412190122202308220504381568190694133623864803343353748814337515058901402275107692959471529338371341518624728834894495974767501255050318353234045027867107229513282433665901340273822886954121851744701449780145923936524561118717946455069311655070877500589939644827134970329365358317253005856235572595716834391408433550593430995671775052155641427172554322814879090100877642511875948229634353185831325307266681928434259641345667003664292265478211916495491152838942883479416043555240145134368516483446362926669079368996456556763276386559020925803274429447038981604475518945622049805413416928832037010587133515450422265309129497851615594041553106491723063331059153994081979017953798277457730518758927927488526445376498879540399213910785591843942953913302913078549508186994705271843378569236085413566782609169051308145373342014871937248327312528966325611305014904644446728852079373702774205134033772898675097227966732725339504996919716377260136889802558125783758608967854574179572744171259911154694327175302279112121824918388920207768666678940844547062767810321869759613478751182082888776575410803880027964995853597643165701779070091731051925529661369329313872429930589426952449401508101354419658733368879270604684052150219322704552027002968109925196057745319594467105317167851299840308171340361854510262619360844440458957268926920971062654983392394491337708184825203306941529685040229655256364042605515803336666190502033401846473026008710229509139730427114751112685698512933804072031038881172937876451200900877982616971829164259875998664583645543489412318838592289506300184546864941791096706165973610559121030932393601627991820732087266458996660304588594789711300701940328272519063191640697073578712568556850483724963223473800692065455319224459914995936542764833621316349942254863109615066799401817761570378830385303676750222116542022900005988942239867972490804187944670037427161568813203614746673924364346703222390252826492064422235842324853511460456655895985431730986725850511562934244917186088067589473106207895938275218663783175953832339187627227333555725253549942604277857857266150152156493837830551455652984322846921205524588304814918006856420181854341717706085433553616241203660557667807463754339509310684121117806288548449487609260216769174561816541577571164418773735213904413947763313708190060675601814871958680536231288449208045957438190520109674369279115158397457552410877434280608694208909600956834778891003417170129330087328523659254405607358827381890095527464095146091021061826440983810659947692026378307777035062325501028469779678439497803090695314033947973869539928651420816774256875856832094450070147094272828077829669627092933688619561493834784587422544537980882835392489304346608448926736623148925679676466166609489585927010362808296955131979629319306083866143823219857622952654765573074635068746599426509182276775474909070734349861447587621077193244170049173278089732167945742752533225718168127296584733804511941213326364248691045990926938249607863742204190395762333010189369681621969000894953769027698856945393950918356264971729813042817373297998715968419277712243730586844352755214531978982591773844449021005329438537622314824675657777675822719259112699087942420788293343178854740356277800755676048213843850642527044470148203549759986122546186450400071018056873379148423594191979196622776088070972641752732188642131556547350292974148796750864199644582321599124420547519592814738481710193785531865555778914114744013834117224401448680518313843660787943828285793723533560108089411385537251911119118861087053881478140909879732253573941764749047883273871523585881116392890023155723183617624335305770350489964317456517214794733942288739021197381230040893573969837409388978186536343398221963444533946117022944422288217593997317854394326920234095556523880734046987214877940124570007106328596785772588957326477634854026663895865337541177966596705281427342802434261052163427806986496342000685074241800079930759687699036919213997263089804883582886198538997955762444218786509146165482421174090436937480603456728611038536680135297016515581724766526619011003057070312383052106883664117907278173811809380227791153108992484936656353087647308796681395519163245493027594910847111616197388557006804824413141207005249826231840079943358868682354306161816930237650731957311466210576744242280316445338129037699350360094915446149661136777054941819426018848880644914995542234085025020599806467459227638053313715239428969167054614613132122692266991803118702443286249152823296822858848016158610807293798198489405678293848936590999870178437998376154371056654775733923886601220076637275043849698953992815676470435966682267939367224267227928640974351568365545856124105262695296113261409576068941406279568509129195756003953132172324245549868715475739200597171996275083957394476232932976547245957345868512829202470968725547596274135053642615439564841563203425522237932651408996889251342487900992119530668569248497983369294926791057602258084014358960558020771194012750730274558381712628207472311731357543726063312689015074316515327878468345863443257202840336288467881638329621659290937540106518456191877256032247294698103295615544076740629963198153280881661413838041084672240808384805430463363248201312211232868334508854993852688511269570694333787323550099172587963549056723747761528511973445006205300269535512419878741187024824343484900199650851631753096100853818845699831087527503277355181331947453546758687611247224275421119594527610373115723705338416689959474861593783634694113815042240452652847543750751121797465343733244561028637584715007092114544382362186726968858612569070203617004965225076045038237992776253721336951968172318382951872725717279374981195495721792181043868439876631794794312639737713123913023241491191993769246500087402142988166950939094005564434401999140875233579473709832001108828144093408207073874958864105896803768519780760698175262751584564533308640290880333613686642054880181371783817670798480141591206398714765896393886913811753622077417287450306694946658190523864500856890884532620731513897848782880405873772317999014764836709045658682406127052347379366615356196000715610076781477357261032627725694077261045914746184039628412388534967640407552075707834688488242374703342074309802786526507777673740204464487265203432700802364728927066270208697681984588904143540080916206992652018696786876630663101711032610932512429902564339980701676604695821281619744586986418192945557253375257711850356710803496730273625404041974052707899135256477540652988562649369838865778473380217630787630810236585329530495103741142561521351560905346257150044885284520428633719813505989145111250986288340032253885939599856002872395596153475395705200283623899669354557751237354727691523791743778640491369905457718870955951174383084888342795576111585985778451273298853473974987124034720121277558978268035664612491755798040820767934897781272003864405438040695147394814234919947314491023768053268685197807269070985181385402027877091325083333133322792232691107192387811418207604618126542750286633023480023526112645560582179948682574363271966590559151728395599946879615954708684999413580617303515462455193375416687159155704796682058972549580123790402019380383477157868177637786201538872727715804433212162981405602346074809581547941611167102847846311513505442322309905555539752360818843173352392610864635355284321106912109521097059122383138299941876501485123235500663670177021153800650915518455704123878646973617846756041386395952514969485644350562782840888038534749003678510548492575516330635200372180511389245277830955223273435715410143446825833781977901507495549341716308070022086551133395925787085640214835543726139583578605998781753146455689188076757996872627884736688900802352667036745456424153471766746763873183173657660716090637678097153286986562349630011480412817467676906911042009216264236571459559590243196020352903748970827349972020624966591013943094496877230057763149403145486969768283237881648220443687238839064559878427133963744393958579118640171687889157448091021205360441235014281858938198083193578299422126018250314077812186000280287787501556989864269252153468818797062148672517057211471123077130533984790577036233853386350904892828460395477887358061087218172001330084360952894389635842204233940724241373678665881385578965132340129115678028991103261045539860301104377670002705921592102310877183604543511737898121751898840524919642617910870900860476870562502050026104690814977584300457022095320233868297881987673873873824786284273593897048623437488910324879166538893337955349312474132293311975708667964994374222450129765717467485936555178814444155780039237796353806547996197684994411592222116452223073912299412988506261827325089881852565594474465280218846449080494493376663598827428242686106657500907200678441967656889641850097527711087148606640863457082151548091371196359074113769533349622053725277211808493615315109875309043195201285108102077798458405742221930072328777098414766502272454017340981007961523398226012927037029686044954322690158779104482294887950845823535260362862965430354384082705822758574261823827086922351198616063001044777206676509749223833008800899235990823647303930750610582074380875577082799513272232783628508322890015590130279488354738375056353194588304923351323985943446961951945213321435240548554548923045485351477735790993483107424254938559883118640213147309999739662942614539786309975846570062685670756002352205291757023204390926804515858755415201461587259459379756638646592997072484863634411509160482828577119343244617251922679374013258868862501217245892596539414675720606170645257509151801141153749364672387083854471673263171647299344410117239747728840108346655469368323828963029764081396508912981876124135373437930328431430518615688567761640465880318295141374473051285349045632848080604606778139013382013867284452898375671428208781558758415411556696775408893118184050201251157026866152785734665665188282217366009336737479314764244396880857698562913948612373406969682250405962666540115490736429619014730065726295077673339475906244915281966650874421047705674660459808589722741616820107845399345017583702056913463298296523716511185165188134345482694602477084145527163042493330495030369897688273605484212035030232581556272065041817761918821825563418760776908673476019809558176814495725420804934059533024037668219623840401410668548134299380728994504331820716304044708550314023199681210237668198414870518342204345853818712712856966282416674317598734716246457868525558411787742272906142235906360446578730046735649957081444781474953597579757589496491152349543324183628443190526245035792609276663383232081662580599834849881031447849732948448250406812774318378596929759931172951435447973704246469881489187806728075276755289099056550012200295080346801697144523831615652866407284731698186180360848227851985316623003368271419059319439052850910389218704368304944061553707609176191696121003034299064514419520299415567648257988040017375488003749107076698764500124456417073096147602833762347233737665626921354240919885152198828426737953595906155512703484891820761293239964846758495535411810811228547929976736865938195906057894301037467868982243951389560603765666178854412973855122331895747236576071645952330127154421110298250274864178228220499365574193954378643462139370098311894697726945677343867242385519404634420780920235854593698765863197165916914337381844557919415235157248863143453565574510177450399599756976532474159477708874951084493538522565058882075313954194855122721868644385290314930290331847752018763334081219710727406526067654577286991850270226927712223454599068438080201733219739639176659102173068741397241923433158200515056096032747725596993250475909726571778110307271924542269488944496901082143762873368349102556744029739969652316978091666609222615395799352270354265214354919345815413661226570198466958380314122658417682521307625533901909072279387353970173963550669277836349108506410308237164283174544663511786316985803747498951144159013788213325661226672617110388908078147978726745621478093674332648853266246467637221212585241750364779241331437431933362766328587521083390726943018827877409190814244352786082886858904749464593194139835340854589373109430434213148591074764052320415617838585346834124876775325791379784761262600173411762276708804435041921870736763579338229427591807836674512074125840743912200169142366977539653616450258337065780282316893014274074670729061081348258658519815339434321124228231173432589942390984065675444753478605527847043037314369969756301383167651174671763616606500764776607573816389179005837223154796024709262471425453755124174582689157220135501211642666909207245424036557991067930476515137828920775758298349932874295086936884184816813829675619224970723521054473578076233937997907241628998573659720786700299880512040176527689904965730610001591081364392940147015687997412735237177440281795895667086202156935465920656556117785907695249312093189971273915340305529670362363343271201614975422332752288668675858652890639048270907802857070747372260408598232969160203645562277259666552028514780315089813593444038496239529263374149232364448003899375511782068974187294844809015181391749122376710938997155238249782765318665084335032854311507217775673377105446428575763763875532051191809913305812183604291320855571821503144324002611348734960267910224085237210490450692245845617526608719819953231093857212775933032513055676924510514274890169959951805752894524153229510045361438125902795457067655573201122089737875978126609331398311794975597615201745276560630693825722382114987943811646952792789302389099131217108506042867694132275399162087109687239564571955993424016612636656376738531322126743043693277595453119515251818968344863620459245201588538745222215743904828617501650885989458401325890188228735996886025629223458628262294515734237253950034964342071102639627870676991730881641058586990366286506647207605559536858566929861760816601598067155140872569678338672740844056607576650028626988371444031714108895890834523523083369514172670814841425273266960566867258953238207975248272406002432780220368086796977303769923959618634736429083962182697802771719878796936194366527718555232650362919791401188442123331518831269837734428648072506205476532529579303615935854525452362983762061323013904185718005732129348000666201856008099789917020859941888463305982780761233170431981024919038917997419434980131572446543197063659260179347800162038878469785727852357248104094306591437614763374747532377769626256559752390860775775656604332955661208839115159375133222094024047801238328870190497726544150300657232103126304325695342703752594511321445098162619396393663800236475060632083845266726725490166208035102822122434722850623874375016689703777063799096145928443570025329721993605993893360486734568594235603641841951289573854477796429388250829713358199657322685013847195908998949614874837538690906408591653271200470158804189762055350961317286813382107025344627478145822714811636091278110765201112124998478507714603478879564007741873483878188918283277955882378675268165220633524209179158367961257859013866303022121315366463536733163796841500669258605965541842519026696269598936416270704400919123312613831165476481237581505685906929881850374639815651901698995349284840768611083466896717641195028968033684844363183477362869765671917282543731455504711133470840213385525009549877653614193488854205410078969497583908300568347549246963363359601228483727677410800417652088258744601659858245302555986618340693093517053497934936464221969180748342699472606177826092931094774589677236722100017456390480511154249693795534625356813733249679054540684955852651916044806307467276064110915910990523919866448998657947786260011554753607462980731605917869780172082715427500989470435559566330807234864841174689181456763437233162505781325074186566224125663551663278731042358514087495314011791608467879804630613114845099645345270595884539121510211944813010801006864141507586400322069794239914726402497706377145884900691824324357329635287611772523234001690528486012186778108923091747489843347380785915717696503639638385562456360100149218446786347089738714189665382985432733631313316232932168949601084468615837552733978415247876457176389206411311598735085948143911546147435108363112285820936610045285716884134179805767669225063727653602110830398376838847050166018278912065761776942503282338881569329645399035858275948856036151094282599776193368045686578416355180497619741945102169718773042636079124070492859738999615004335420517393319139171945645816496510391858062311928317528780584303171493392529779906743774216735916030254659732092809926608977279864391029764229754268014450054761673193937771262602180706090869587379717653236652054478504069825917851178921554136793559506853431990479192627918375841740578820474777471905394203806927722332443407567672823180207131911574735479936889337202306100273865271309065139507493311017125766908770623009231242640039666318983573496781426328116044144371042520144228013730991006963095115551366707330028309473904237262656591839946268871163899400260482156472972099297106090436358470684075084323431674179530637949100133688665125407476737649532303752771815565702698126977910157277492791828460463323872813347262771447084679092654933489623823683818633216116816309902400376750255989838760101510745408184907296481886393368726904707163547358642515574005616843007844952615759109708675708612577418665427660061730656331215810512350163196636873937411383459373815016749105167286914774337825198859658726084700485851568386358880857035573616421576718691962824117933759143587792044525313738152942027417976405558318800677774542086555693434155653619514206102219828286351128989722387746052218329575885909820046699721089517182280461756225605567533155630348005653529674016483128862261486302716218108997930550280717795780826065202307372518451655495611932053224093684387304867902984562798255982597104720595528559969497573869718454338881684102900833742967235190181357619300967326949081874615209062123021540189792615378005089202501734235766775111023834970734219313322779234563015149274843741577214323136865229021649262590620082896027844975603910067197834480214984572006443566551253141104754657026082248828774583897449035597774630533990097378100035608216421105906460233376680275982510252686147878515277965086025714939516884316493802143509815167258518686657438797248632900138025424591381582522080286949122945365014200018417244065575815315096343222968836430013101764103123969889112385605613438420795822741173914835488629272520690863125906162919578387695039551175210534134241744300024687702104401857068192446923952396608655165042757102923372708656753235702065721410601665561859558803185238395462359858656570431462955396537768023962293034638523502010629256980358539176187683403161239121405999502544219083838069620409273574265209999445962319157300001944669428653664094126085355421058000608886372082151145737436512367225597173220742241768167244831605507026885944116482762902603378144703667851919893636582667748667238911910656396796469629902184609811127898142713022294671623276650967575548559557512273280123370574210972168216266072337199798888494468232564768674136313895412021205763406094657630080008849082937633072057279602194611992269667985772848366890985171655008222875599054998221918094734908182122963143890784239899954340844791935167405799088666807691303945165125532075364373035709365460555523255105071235830766762005409721509084290535077082587518819616673182954515630038357216841532201469496624962984501818086366454162369549540304137153734342790505524341429803286842814260404168023113928876827586053852851430961256067033176225473132843266715826765783793403841743819737664189060142805248486105607344964634334568503294281258636548776089263945946257245559591466702154181479257378666880808957766426874295110027974979938519203098005050736650417768724422639620861461315458295285780926944742682781405514720200312017669274710356266811585638222320824283395027019265687677018395485240719157584162623952973370681812041714264950320350534794829877859719300907913100002410016350834706501547771294928911763954958048282916605682526621067473994034705243619449981957265754429621446629070343026673500260394614320229834674551657108354885881632232507462985028020338786094696843399038307730726956050132865214497561409075316159947168476142416502345115906236727586743874373650610485111906273716063947156330094475018856195252392384085438090808601058115169281206426705772079367218798683198406637110337470277707530065757372432683553460199665807395216184487623909946009757909345183093579011201036090478097632593236168437701655794094303959239692471817528182272373331018143259729908526490116103725020627638192395747878385239550595508831580752734250305751030368132839987628764236029308537468000469168759902989173374101986817315980171880382264593782449699630762355162011672293198279128618770271064250231318563253518289110516357027410870952676336795253491426547190265358310169905195331120453703632240256537656778282325878813400950381880226652396332473848379414401259537958452567033235081642204825517723461857189213550294167811007859574641895358248464496231912668478850360946759495890463984769032037941354396558410712808694423101983674513417521334959499634928568162028560171002080429296228410544979106977157477958056953799138457254670835373502984746885138109285284129449526231912798551031959757746135485836510557106942205162270204468394543396060649315740062088565368217552557199155203404504770942936421868522605220147689732734335311289872152318189798242455362400420640711218933328442577824788258826617438375865401225741779799599891189861391826380236258775197505732954196012492203321926429363195045336848450901699873516064069965649622713304129187975695200127528900035311903643777716888993125372494670299956731459664845587689590415362752092373549915611401595280148498082485600589104346187851075228165358568619965060347714121126540125789899996575573188186121664905818666269046934449754144878568663177174346115783122710646091689993179688047607653689975098490959727608419416101165812925052337187443000471638429920843716684829626422190042803394489541715577977181086369647438620975037000328064228289833252728868219802553136606599266221195724509723634893166381394756734330378667718871676565779135397227054458738598174436903744510162832113529054657509280573368909605226845376545990415082044412977685271585277822075138761507336156107105699397902609208758337545940135130357735817797987055440812885076835090360572880553182902063807526499747925667792976572460418808362292931479971672672881215139630448655016262287692653152182313637892289662341436801522757489905143784035472592521016132868005334647736455584425010170200463810435610543813946661855202187367327841876695796902548653981593667708545101058435623124226253436194627158208748804258868763505979909008442346674265516202670112094795763698845909482058769104380040448068546536992651496441763916210558435562073057738913493381302693649618574172626163615260310230014206717789601601112749220110690589658643485683602233042958694136089967387613869368804209885464912338517358434623576392746458532686703308880602493248869471164073549656173553478070752882797200448895146622262023080003413373675667821136642117828024689400589067550550166661650931349522858828525761095600956254743695689521359138728923010731011364264206433570064424775459194339532078002372626086805799947421230038831232672556715957979263403939035983670782316598362298740839010741608697555826650644838183336987153793580564286995867050696867790014270480264261179260782864586027484297896097466622553338640013625006671461072953867292616370266570368765644589739370715846186548554576649616050420788292952898071158340517365607100726693311211192463976698868753404379344011564132094379917876654389562603362978736640279919348266696013043562182912598983626264291316037024237478935379327579535495074713609663032031108784769412882099748983857707265786515132210907129923192103803764244144912069232337207304594660820912439268625780873110010098072342616148671388187947496568777391568478318929468689627194362155261215087926480405638666450466728753165066921249471576505407963772284125842121949633981132796681258096230381462216113445080705847538503216549575980154610656593450890077464949993316010789359768647351285779290094147657700335832445619116940138011881578035955158208887259531643467507469472980291643785345845343856673975916431300791782572728602616818237460458155754742232731493389640900599391148184785444760800535526588103163257634568232407483943892654651600043191555220287752177760637099364480139310087461199358517253759698774278484433959321366241789453203058920764189860750206278536337920974133092409484543321444612021473482936550877086537988378929407886394636367128771848567329980724162094125356979052880035202605529289166334157579310167539111779392831957563043467163712979777518125763279028042479850881940149342939095137343340227693386943736153305670768239713802876588147945736621610405166377820472764184743108949262822868215648887471768018354797170229790752674822351436729948279298418530173291907758744960049728291840138974473613466027899331662218630072192517705464332591498076469486320639105289380518628097629071280835776144412431527295159243298554664412528931293140101639816567914933046718725262450269584123560876910515735767291652400573962034708605164573511650425268497121638595192620654834952431769378220320934214621746741471555315488522295348212699871914066743368548585283535932482747342459713242211922490936563975945277577462253059092046120974624169111871202982797434138765579851470003712402628996717754615657408916755123861159760148480126797567257796767488168406706450188214051760548714746895097933022502864775131311937288268141413760942220596350366555637074190697790387235682090839634366454713424535755707015336619217496634781905389471432408682786157279444240195278922171516044228196442255908672091270719805732844304536017511372529628939458554055712280169253395523305592752452592499064458893048863079432031283290460267805948747767026634984026203805921145212463437815495632354082732734406966149020554320036708075284082609857985013704567326331337187450838677967664196119063881922671504301187248697035213183523670197601849710774732296116934934960160207704421998287645902774337887892647906947038178821663714658123061227065500991605763412805006917336833893223263820011752816581492590552353699567409138787793427384603649763173954286395108373247341855811401355580804464540293420837700038244592982668331820414165493569316331956827016137033765290511916412133240292918007686604476865118179520734685773374465480123162932171260035714467570059784600311983772259894734527707546523988224917586257937704045979794246293591479765081255125033078015719303210893670504774556131879622682912356051934090915587076734304193342135781281829626116042902235465995659113074822236384839783021142407575594260353238649628293712617079988516881756322859163704247612558777574419327638946169551099853684289818075899794143198961637215671991754187552638685056701482374208507862901737367585923504358838990331979428687100280875981746995989560551986048222028683945983405090298220167499280932963338219552738820916986469009339106899302228153237904370907129386306192863111534973652531519178683830865424231432996786276121431052626182755746580109087627135296053608763508830407370047854905217861932335085566028589118671278694387280219206629516595919198479754852558564000025159603532750400653541388628323419620199173008861941184651952062400600024123825649086024974738056868678766070906571044903746712107331199505519325120881511146088576837648174925368457527765475442342157763858376761632320506528945447131382073565137334679110063793608616476733055216969715741934044939241450748529942032842448024699777295034752416500679316531436313620913896279022408652789528696116129225479185811821827651970724246938238692733462434721729215984267742037593756306193064785486185095119433393316867923748821928580732890798778641745195378140674343204335956749618273877212778997932193580400823140023365207816609633604445391170532899681917742874873339324351699912043332509192804842305205808580403199340398172603414850704602203576067667970837725740297159440385776764550300970579543461827915978298574428166872414036198889957841366488458661366972301431103236209635459197605372800261258014910174186850648449400072228632030620831626205436923546667146494938440536046788713671418816636116668212691237688092735256593782761827391225721556570866529773823648193794715484207283383115451925622070121468373400222005636590923673561064645928228775221878826093071933158309581212215311127573376506554220391111660670020845185942338831442719131272221512076374650426548872112187816047265341227212261088057222048986607829760795602982031088900235843488341124762078119219020579158251796509836043418881410244983122321124951308368153247281205859714749180858957119290364694932411126452445838696048146911342049262922053707548273993288947181080949915083835902470125332097967026554298130664086101249045388680750276579589407025396316641506139034998332964452697147016746707050595286537524512099419379413974426713344941304531540555373229121072823584940395193429701740126025194878744385009567800984106408609336412472951940139519632424959185413222001842465075898959045707482037720845950741483607200850502779149311688845750497981221915463056146667103194381244524132381312167171914514076994589698428135134719260133214762103750702395406148290574640559484633460361858514876869669473081353380039889876018080094872956988857268001507995939648949040058447142625025572312100907482422312421867584218640407581101634725770782264676407219945210935861116276282440064437961020199412427054316367908282370242089165075946887812834236598086422284642260594892991651466902572377804085406904428883987817859793752954444141558548441198126873356715323263905357770256574694135652707763354175701991761351664603021165518480041080083971787012476902502738783964814513507618399013433889208833511760259665858292920178256870678618148725071897778184661899187823712667464326213138053922622298488670379142912519227837777742324849724914045153945995188967127925544409053193866873193693482225602400404885363309560105392312622052286771247500248247139676638403059943558852860693108075078314248808032488848185795759751349628418035347557720720916168795402902785669292017979413009925242336325854110671956233980147490343885686799123732105965313526003239282312169426425038050423675650828609629929109820924872928365275298427957072443038615863080702396610723614339816745669970033164799819251505078459991674456910875660465677193600755084325521458570730837345105772150021828540973672769027042067636994131537261385305435908986275275020569372496018086542136398984406064112236108666266725348760700966985655348365926594906692151730156595190560257419939681009432045013096609362321471884359476232818674969236268650255158633170059941474204627485304255491311965816182337941295427022735116776349327847017690800162665528798088708410654013743673493310229112340305882070866897180228437355704604644716226604047262086270881156312897774294115946173855645676313038092553584026765091755038635700372498632631816044515491489290835711944207649001731782237288646315566802677552133271998753505321505964802071686378898661091573546619257137323094223746047430290621242534905949831372743472290111245626178147483916282548042445558739279107015244372481331832856825805592045854364803025770876508012747205495755798244487061804790750187419100584865815117345423312591708951486676877323653149351060285829654898347121278089675332564534106883984852979875142586363817594719714331065140308581284574732824283855501574414102900058600766978482144839246481517111895095502582033127539556734900288249542262264864520446482248158491026300245405190779895688269090668538945943497607829417940405366698776804539150094593322359126442469497816920946250954624478127459400040720708120542851112200028004777676386074518725989832065321247401667497631105109572960499314276864913572607914294937076468697990016514268965978294276323665326473095309019418722564041881868732058040964601175965223485062232739220201206284559417161832217332532783418582067987015057274545157957839851214994491137575735742768543411236298811862450972633515625289006660549097127885466798295554228140877227479033455607759414611080889829888507083106154070164191787401223614061984354315798359585468053829088938217134623326232676228461763572994672456711161271812643129706788011799454923566994917438963867756283304232009352038738529133544920181616385862397943236381423519520614655732552810341848820878650770401380183234484268539656328326497318830723501018242034252358312205591642900101037546148401301816146244493525715830576734709292343007699907434979207478303026468544554140373753328964064629491806620995712136570276989850357891490264250653230482335484983538163946356708152807287704516033015028654806996318848056326272134495537709316031054526427659345647170915505731311920799596296003937749704969387702954685123097746659063235450977384408430318289077455769483492888591044348225602797623038940405547521057200656803724084046326555470881054501992526509931912547876102927096055358234900280782577513190679521674976525450102923275803004946114627062097025522984226490960052755438505957334029852130789126331724489684389322194045238818969882426789247372810093052597083191062567565261058340587871043526567923298630019664710034885743498438455901957096201758151209645437594567474515627889566693280799378819339549087465891301006659484238380673816560506951052726352399892120264983613439846028220638434213295378829055850445653746993583984198075002674217363138224319657466069311074896285052614780871391349585256520641890095787678313063058746696742207153772354204452239301559357922211040910085190561643786593476135995765465379982795449236638951629253046202757613584673328565391123652540405917704232566038345630394731915101855809043922904681706835543184107432417086442900540958883584750985112858964673310002268306562051213354253252338436125110479557046814156851323718972687722183649382988071159078350464691089741129722259327085017948100693350274448959908420402585662145472844224738469794452222003843322710803822419630396977159036536217689599579967330944644568187759802004697503644864631965101030037318078431501750343390638320100806284249556683890049429930162078388582931030952039015951791767464911219283047496012050997374938307651844211255064336063069348500879174427099687149192429007947371762607456227239004554353999836763802454849062477191829097203072451398844851540068128257101306173431995236996168616888771020860085788605932215043088131517546164753595478868055379551542788746920817877511171166768905033797942177906005240905192437599497879156945163632378408122619619280603823828976420894051503488258496943511465340225517767107520639037612941001171064394527713955878210080887149385971310351885051201227753399704440776875386568689205647426981264694256294367686397064926240056744830382943974118091553412826867087240438527113564255761323560484488419993957453550235731620944180516500063641890985240068933095911150385485406353102023170208973584436696612738128057501440605056188030123331833226525264871025883456612324245133801914872567784062040379900780282237486038306222222812910733460788292219598919099897307244192162634429294245550072102156537632615983376386448129039010404937428282271611142952009882677680476881826272375600516133277628302150024561379530914763530247855589835458906357716730311436680767983183950014100879498028697317396130495108399343808762895012491549648331928033290722718159267844043766180804995593562104910413835380801657727198264643107435784352113161532360272790401262498041424096908699382696946462917448217887573603140551617632184572708783222791180328577285270126778202290880395140753739847467415840174204054627356329626701828422988361982155696849396248151054816526908206449585975914950137642645078890584934274283292934716698331075407093354327238465564624781288436048436421744909529314889211327772668482304780621861174307203889408861431604531281078212908048852934338431712467696221034372659796539872578659418583756292181251095586484491870336184445925406401626849521898769465349221155961266963781895756518155000724653934112708493411938284317350861267275783981077519062442452656265921399979443373755688223927299747431419589910852486219668868897185801830673796054350490673817862613146423449307140596019988893415102068972465855754611988927289246436595380710977424426440185554355347534352497997308285696249625026166351247964278293436280055839761001227355061807716600983405828986914861513442812770669637805579243894152097861405336816173149329045681376073659141317846798954782128589246190515673363054998014787514633367854023844086466561189314827099202368367582750474034012443180426299915966357491546773176608874521878004015886655271653247461442191511772322081708771419171021455604855998604278658297636977013219144788764686323121838588823653171856543587458168817497984871386857201155619661666650675344198748422176390123708210745261274865922448802789286824865476358817224486456944057158655930232959637058445532316489937702543666854399058438864282888563747294129418500779396866849441216153409916278306545327579697162543457982712848495671967849022389647296430889547620749066044609466804520355402933000922044111466071492538339088914001313016974550634480882206194450694012365318796390599631315796765876076836313209317508046579706434594427407167528031347333741890769151855250115581592507257194369619116052395995221166837057051061541218400614226797239182907357723290912212732109848967591024420896585085273597835169092404224959090969022013424014045561843660489012789316940198380013108054537394342395559098319386142089244206239669455418393563089921640331273495149466737542637249261286862252071469196323643452719772374297073640088063039324095407404522541124648269170096002351176785451985233831803636824303756533650935142850116728747685535207934888838568395602953717290406069128334768529494437136091638711400055685648710487375407440555056046482421733487232666374935776625180501423296450245625110007851264445720456968515949712070184684973005782596173582382648171402213258845903106549981844338949240632377583664142094114651185672040632764619985420709528650326080489464652183393243843872832296011364187373097712835706688742494931522358700433464544503400742691543118931079965091585580312670585447729393501330766249634404885192311426899204793984564108704359637631249296630510458522972472470953540239159315972060754101819861625428544021702890167168080787560183456705104953757678325570082984610571915904264471201017462500788854368097818580526897936600730430537466985425061261841787004569139425566147459842766763619122762795203253299087272061694075587428990044489392737035616317753375986920738895711094079336483896519109171406186710700077904956396347831624205660311782215654137882747717413115970607622231383566143173993434406880704954415558958972654620648789078020121931449089213930441806772778400164968901904654992086294119151022167903965217931314064673895207442135366216916367712637595921994152876552091061826166271417393486224603421660381066712294788066199532775204196235525335384140545015236232493629620502288442576482840354055107101076101929726303332384503674669404266799955503368740877396023874841210322569044487137529762716940813429656708502898107596965496595342858993435414418716781089799986155483928180458956174472036527935117257502581733246301986312216200598482513897712116486941771796332193520654690019185619988168818862387398195539990077175547617758837282537212590376981135133186142865176884723927546734102665365075386393890612238282110692929106313336872863776902302662441303637609232588714212120569596092683582375590580951012800282143632673019725626390307761713882661880133758756788635055702770657784698407974166162195333368206665456460507871444966931213592416670019214502077435628342946804526784248420483422735683829980912727330737306536138081132713945707030251324824862400038698268993729479277305189532418416658372508165462369069332240547875536437001054429437214787227630625094542547032717587822266592971358444430164351893156537612926323770690178650742745047959197132836335916191468176933777641365252042777893546633803158698368623792889237578403282869525544049038750738120727396579010846447042705977283291274785548757863961404387865110865787353038133518108466567465703859344300506147499074333473624875502317612048696477601458866647816313026127680262933026034173154788573255804597731832390078344042671107959732947150394693083499391405823055429752110103859665530986862560157263098867970217201241740430640518742915500339363349847720249718956415129140653910312420119762941868454412046714501336766164590569858964162230096445678610345292539621079797863629255223655753392990089823191729191505551736300777429856053596261355311716082726734403250729525865808786972578381745910370241901130094150008857317139915174272389155701272195393346204401984021202305397315176235225784660176339751897357131975909398161091693144792849619997252097803132141514907167566653930780597338527933060578848419370308124786157456679977645670578042374166700301750930427627843499914574257944151653578849768949131251089372222665760817456521211677703396138300235064743419747871594717536362546510189921996086224074061406847120302094367290513624045517895303093633927006628314567134732092395743503975832649492266300687051674483866594479931679718517062091763429724716801405484215807942668605253739873188508064968990994650038887364395601209564351740579025042139521114716660819348577068723003842550017927858435901023616024894821342435090949578307657599897115257323500561090174126833141494533161645977381880140775707046708360095553572312739424285001254396933099775446867922794524729188306709407225217793566578573786902404206337702614663539517156620911784153290378635256573799914545216663732177565053609007582767672058942802930926754565407513859083536564226712863327021515768147751828920546530090725822547173978454855958195070678177206828593899481486973991454651388902570046087343465487674524901997111783509456090785502674500464964224061778502158491787773626853539340538647399434498140993494094442482213690659122920369389659736941560435452826890729239751127146622151562268108163346438670669010902580324570395842436899216156711242840435986709834512393909914721787715341563655101004462811157835520999291849695677201102355175333916473806202244109996452092795687981129904015394584906410609356061089847268175899436483169430829915039145804375316152695969729679547382545187881777505286787979399990170029275918980595759197505355729931013354460505444085429775224572696974325090644956044171647074441767427976295705191673642876028489327843011003996784443782486729055508638107288747734472154655051570358461323452462390493585133051423674729493146727511374016783251789931844614296729393674731369759579519279082799844805920942223800017770383847144100055293033080378897627862738542423974782230950770137102038995423789139298022357383687547982548622615425428438168543392966643211311359624568531700574838260702349853022759372559137648070752800452835007811497505840179408614364102262815281032835126826261066648545155733676746503202715418045631450543151466695307337546556132599551472296944354219517165505816480611744823829959823987833386959617406322369904433016009247699831885864819216851703117379908980513106895540396028319950943909611788393880170863108171412170602625516171192111144462211304770458926886794905495414900884728239915701431421086332002148920462372364749510390251053655241186499113441645792865707565054933816238139021407342490181083019269489716679446932994434674325817450801935223331860114936653361608153999526236548905422764708558358662030060106359835161552833088323594849533919569965075529287358550865229925553177663321542341832857892260016755082699962558807989394989740419904270922978008750089199550634650892012186152526185959769496444843880400704061465488607757601296315922273653013010753239159576928399414926449299849342119467442938990243178886239930817500649710332139694796254108902452613794673709892310051570829588112900945793880424118089946825664297000600990723939054780806889910699953318004983619833027739271872529095013909958526236851265517934308421143673580299437155580626006480864109008328206890394875178901626958753520940968172722278336963965152443575133940258404951827011749404590948484946999264097479512356699452966462138871788296008965386478428265745069181309185135091001002061635758435941942287181675928166971446190970906504133864842669408355276392348872179602549768757987511712349533138559304200775215975343454665342228179596447872405997981631938323351608041080410806518807329663541081458152942855550251135618843141370694306474341152946173460769515704523835054935522990125370250183993776303036542199874367954671956905514745449068065281545509048253836498059641728118165629885505892934512472560419353875370528517414962321731303214350546142711928902937479803598430150869107497082938466567602549335065318905461802303387403544298768053688814615635514480015487927868340902068750947108267122080427597191285479089236901807549618819422735725737843990306877129094374995267350242717568088747413621217896377029098751317594391289709645479268606454950199111540256119706606937929282904825211610961505247027214203348101426201502668847336852658518724422669064650970739767199258039718608879968128261778998208042115112366947526345944009392557759533167246406894761519007292194244282489295117898275027818725914077346053750998209492788656202471156421205369529502711285238197753266145936873787633838140263241279244827306916510180005453999008167972400235371887477092555588306765022105468925095633279738296638050887662975130921399292172879693964462353518096774011296528367660489043495292552969301448772040785763226764128545419923970283978742470909017332823679755617181876063284326759400154478976642348790718826128096272257958702516562706145250187516547225233305800201276516031187463039866836617148370020977068993309124282711954444928024637120628339430618817010057544955711875435078035072077038614425948492359392275056153210703060684743361624863220954300916058406910930595577939206427538268640397637967493789635534422383624307906363606560003320486116640366679340913390213888210311506859271426344535967487583488324461132040383061243138295371851478888805737964433997750733190176318883923799033312659177262355314590838990985228512629242488484332566320382594474557703107115779163343644354928567020711141641127703331253808741415015412246813351829336431484427656634129335846123962829702615949779277266281083312375114568964912004305791134654254909492557806881755131838688028554998600960690680822788410341811218136117562704868120106730785103483845418026182218783664063518538805893414198080538333874795896970472211012119910980406934436539549254713651558434006596834627093703200369941147509603901232147290520038845277206980525751777764812710602616874332992110678771210941531465704782351365493797145656159081818785760258515269846124171178169546650057098100048119443950511438433795180759833765242000767880526179759070070198004506811557479432756621998738585004505695374826487173386168933980015631494259162043292296798388983277677742454429210821887525169062500661729316782551378952829018179018319810197520175866214086873052441595234760606856397438146806248443894418591501173181347001188156412100690291567630591108568523268590095462976978692640816425569731067723877026436331021117727569502175799085747496141368096573779109035469987641669709394526965294886325817955459539380120972652529235881233792843255700072007209854019063554815605040432520659148538388162854213718792746006509347421360778027606295475504897513559709453061854590156019338468700581089597385365669123366716181323735218834725561442045573891993554520804115278845286621658631355731321763887514920107104581665155602709306558214291346866562322564124480462362378943877005191902363482158424549021963995602358605080792459451203360334484717616287389623153625977561154122487428813240816054480770648523624713030541649527238027121617815623975671179538774218846899038451232406293177814092006239710692995654181079670471065204588093571661508176102691250364131810340481077497924218152380168764521699430079800895240847349429067263587592412247331013855262635140697678002579783089669094763704158386480076564706227441638004885605683154384933936293096951092871410800073272476100190498205736172049365050494837095882162079316972959894044712917973917533442544838443057495846578720656717068035546165284155004518892871053133436396257936580821868174435372987610843957023291217059899900734640789849387625665734341542614303814110810503474062748897500489878159683251262454274714141907636832083526476222544213989177828687624257739033140820962932527207076682118750504312301214929877527821969623480470472686790154194987676235708240078176641900291016557045106566831087506408445794940098897803217265203128486694212328865268254039886260712188988049655730322375513546179124770695062114438391403224708121124594574952553529902114534778189508819684258696005181890852426459125979791742596310036420031232134260879420142101402511426816804771631664308870482704736609919340989223295165065360751468178702698903481620706947069970803898240973574551590897578798125924402401313830480631655680727649887269431114932564088554384681213320786013484562697228631981764405891508183012284663551832694884229871123076882703084728819978903319844177079032295234535344044704986230569012390963433279888023333600732355903484196545556132506735583715360155651250943777138628224288564185231022351192462030765645205623631862850058332306063861175722209323051972856725253003275794993195670703141407820538721866334882639377368750052565300680780711665274141066146004836354518217966942826694993191035280209216103204845961134082793619781414932308820141427837398643502099938174617113242587958217425980720325091745286449401275490633403970294679064344451396744631637087571279370338063261382810408195617346373145106684443034021937628088414051843604846862900450155601753417036265783685935364096409772249083135760559290654037730363280321747419143612907299518412597445926017389614404460474827574071813187649385061380607249559751015372997426866004462268228005046212463216374418333455597571458959318823610562899799496602205649513352469115138197361773644964857162866692090911836864520744907641288738816600249143717068979769816437171084856990975989227022642001785487394978102380292430207453544045951722193230004213731202671744766630110137517528449371073715651114614696215839240911486976743072441904528651385423244967098622230639135222917009703428282356860483854664890955683001648498920224842813283772742817634825421815297467420971072370890765513377057179263234781898171817840549807210096919285767879977607196887487804222882065419036051520821793340094327249622988505119622931066868463344847904083707387451512292808790120027995017076210900563769052327368097333078022451468881679325344771475635683289729683985703852734572782036574136817676841090809171504818714932157579588606088685333518974502595845594442082261629360456600057143307657210881299809619389731737046286020256598274616960305227704687002289875606808976136004920560492767531623071078666017320059233367106761424904018302674224302922092843506483973730474207068620152611702748811560812170343046281000591119863904032277438371741806006974409183431733788418367553688282761733382865357019232746212325002268877581334159745621163343627859992327409793031586953967273256983810503828707719659260696153024612653129647717689806354457284707210464993690783371845234854965105336164090049053865028685234139711175123920235151054535118022850978614318872934418563127187428765567572509258256430969685899295634171416002270860723602733487516492652228627642095778377554792598993251488032344698681268913672338576830336669492521630381430888500221594360130014566343975689076106041452711603913602438097953798348395166639038472043135037385111630065911387794733199487710040232174300997215039085330153690739449351158999283297033750589540208595648046937536030222865229249824202264684816152761923142063784781854058273597991021616713142873183246739718427950764362119112893655504999343339158301387394542089099507794573687095506997655294065444842311901113944564694980414890583767955387346188485839502639825579202517054519453367227087494026480967831802303033073246374238649554770949538294764764628562238535007610343830952878481667924297891696127568827874376906664359016162691204161756148493387063868428069577495385063842069150478395031273522452784927719911452251361390649956771735754913380917314218153326597121661304462524955458066921656211852475258747648301721447450491073600175282286175597992063378151859147941304590388126499353720325697239599155456869972087325387789024146764308524020420554030503407515779855555721276083642459313661607291745729764422784068466148221159063805829231257786420839428600465378778958740457134042653011355545615617341506826851695849660331835420853786957228178430416801316451767691014588144519378998465315548640020310625447923548253093911636553699995562997313871944020629061046788197422774882654252593637291664678387162207796093294595130091074650241029756313834803701960065960358474215590446191965629157619154607343718943301120485537399081023959620548238631361140262830442206066200354698007590744251773422603664673410775263420316745055007091898152475379233058454509221796277961253882462285954237227651536241882937058008374358297701007159126720876344059259633123356409496584285425975809897973383729213651833541860777037622546692807539299508245582633060327363197657935010338373604636992782580685894967089053730542179536116522304368158183059881821889324285200998945988122836351478121092842630662283287913342677807247446481617366488640375109008670853276999134632479769478777312128018295366586180765169613444748602398410759684631685623825591615630892648823809302097948440029435506022732335981637683064233817451574198009330688746305975689557835276668743550301254373425735323354363193066455001495135712222384913790325285630049731344752908712029329951451562870606183997263887486869200233717476225677006157014951497448389874865200018795926169636430808988662119253573760434347234615610840843925985832886922605772885375302796786253406042117495581287278906464664834948274221574682353955724316179135381148445101860518593315640361009124773054353839273367676646886101759169863644843985400873546531348667468216531549037356700712665438091658449440759756943866569367892494210366815205740448713161310748335030227961090893269840544250903577372702613501486081994985376288979832155933279181289689674248884403465455435105884189475392158324761028090323667964302951346642253320556899276835275372744766348899433836850027662683961019246890335045399593380208677651333726769573351588704737063077782508791266633982937462642891698654474891678008324384675270713014841682444455572976171908352666927849868251506810700418106872039996577795181249620556855977915337968111610710401794997516716460818076068498609516004770129812744530825733966180222489980353981976358910632954246946578632187009562105085772442123791952444401448441476321615563125795830750714854735749651414024334443533198370852924755213415941797746587049336138996889327466315606713268221661007534389590254233347715107187294951159958622421042860770329582116937640639168429447079783704216567478551604339460376034809441666633087607810821220551727967866105030729708159672727315289510754165707211350880428045042979476783640619841854720240972722167672376918399727342278469914919235123165263266534538942486176515727942993861185702411769540288864802225028841300827283467875252680437099768022982214864142424743024752506300655808787382031277428031816368669482455181405107277193532118286630622549679161133483644559401789317536732753763912041896205410716912425204742053570900289456521508610398008660397601193407979239511525636069910631527564041863853878214396985156300356337874069502554244993267667530887756490819002162889171829308691947114627882994152998819951103166836174941138194577744893879306309477296910925391418666974914720069037264732614036775164617835690312831949181409725230756989433997805954118723009631673550931825341003184056899936665275944745300442903230789650018854278948748104718202120100839724791816296697381872141499815770406441594265215261166693725255106507621618212881066881302259947009547236629101389106148136593610934831945910717287181759392563251799863299536247922520413957585367777696536588432538649429175068378822106216343415193985420828029953414876326049981989613104003287448578808285393885661011232320262875711631927727012253898094728480020774380939444067705114598889744224921517490612495134171713545238549718186090706453182629051088211872341880607188987735214359852646601196337740007678623515037796986009778039828208474011746677736049499082137701074840640733235204629481130544069418448030563804523604858741480887736526280410809105085886570238812586541610082689278985189994299012497509049162331669348891398328101293688695885369949776681342864757053588202580647764126996711845975594840692623321934888066906560465604520499172974806347936215587685189769840830715126210349763820268222668119627236760827060595220410815760274630917477916497996234692158544167773132020839295167465099576788405720693091143306523524396538987852934429512047522221175418966570021617027037698446615270875154237521675643804787520314739708052300286566791455265948786725922913536592347069606341577021994657878926667401300214549517596821737422624497341815190993111018725903031708387693222800254067197487419546947670867256328315845312225724357303017382245292394715137267458409461787133622543845431832061312533023169246802005533630318482384438729823374330134654972791705889779268288850704882215147956251656441404765002761173828343755375107087071887028435159446085592090002765660946986415570088205335283992524668185029866090539143809364347453626627927131337561373539653538812926242266810930954232015189795630981122647180668623268560770055648358040956729016270450383709991521894166937954396896453976510449837533357151041764673999046282243518810054930530119266245794764840135350723007003412384771419316584570814127499146703442832566162057043973697899301111155054357445181398028048366410077139527925251873451719350370761301559798616874377855189560766252178236425851847941835056056849355201927141773558659215379705424577604940463648841191509157728631809205184115623219564478332189811699330613499811288842305074530928829617007345878303718303049795050065232444678979413813294138858421229111379378826086232672913249398918531997035388259981989574170825500144465181015395229942100611144884488091254408165451885183005013893999086437681488160081758458165479340171499556211904178148386401564793373179064824537548659792614912060289485289883146692803121231815772197258201267513910800930084621204065527258024225642818242416474577486583893239780907154466585178999223477676701616671323094460188274982781111860044611578230433658249161029898158573812613262723589425616143050666811523498979472076604534608990003141184405149739777083878544523330285854439147932820698657016318203286660263649896722525171628953561169847057549001719296956514902179675689199546484458322738681902808693614333342852202842797816549479226408693405144814654600355687921524925792801662783674166466191968399337665576127732784398603624557304020795873036758179411679892336829355947803330260435348612752820245397661287759088189714165124429278667804532815078679515120521400144870945457359435192053955685435687439442117289186319571481689057933590794683247436463508340221180320680859792007569566953675934467826594419758883622133066637771991748089718189921924792790008552889275706835006084373376464976113974318807794102472741261083135057593437969417894172874165710742402267569888811968015631494156795104725422169155023126036306276066310292730197047933195387856052223440922547576735007694244290370624877394177496775668605885733676599138046492171595461862282112757937347255290821662931140005408553561244184234801242538904696102984664853560702107246945588998946052906632187149485203026569799212516654678847396672796115822544799445591894996291636632315892248594114869945718023273057018441441480985204908257748507021902735675842176235945844297998442130755785949775258911952547118807073714101193763864805906845672804837603477403688548415783244276779403796356764331656056399558303851744824224414438681780681676678688037620786211195617168314336060433442682344309103325035395423160812102216120511212121547953027520644797495344514872581005584127088283493778954342142953559008538811341324236880574137114396666437736420122732178939033105550903553320725210017987379406464113610993182049088968489042283286539617923454215243268146361323974520375746163025333173233857305505459073869446795257751560687677515897064876809331344753017553523797967101289259493235525795560991084943151775472031487193303610289909878721194015368077974191365801010119784399966661693106730308034791932924816694221746121503612680577063806567674686005296657591800337723389109242559518846042794871945606834097561077908108081732559873234130501821787477470879816771297485809750300851368531386310444640666138741457903719578604867352473516026305276776604150982937687516356242682068839391816417253610942647211373218670527139761248114543628984282674410226972343022789139372646434450892803742539451086106232494685611704579903267322881454649676559551964983336388265499789527255839645623292399611197253834081944494695109958002610881438362495558281191881572879052685124014700944791371375129555617412524462390915819883868515811302241291996712006120239585448713536841975521292387968843226246406896503289592270117586256260257536797942019108050377104968648055966153500990175473382112141336169455434163076098338703570377578008587715802525828286312435340140386219770576771332539454235245454259556883986356516458740557633856272688129523572220364439640137948637884640422461772324387583078811593782664157795331334179214823679902120567853769479333498212917480811893817125057413757458023982986354891759923375246159793151609295225296221550809539125064880538326321901450237215010796798621278067583104252359200280474835838701701902987468816610990654766039566099200195627339692075091458209903058933610487980780292638065085934237515236719444865877167600481867870681060741626026863338388654872923050828228670778438399725590288532610895247716276208560808840112361754549214680428315207345703652178826554592392837302056950045444641520510450509583035141452991000496900560849428159375352275613073877855148861706722039020354038648411561947955841214447614314729136038195510690291016215895073449264146052615466567406866537728317966395350732586525394032514957403444590146936825408572591228997608800313004842300225973633132321196619488677238272536169958621941899851686749767137540941876700117447213856703681479681562502931929331855076819640100187351295657614821376131953853853259041626638594580810305797195581028605813863393311853991936579903424845063646214592069819366758135492104402247744209365153061033525266534705112731382097839977649597039731414909347923861837735601697363787109047835510810487911713274153042353211132235826415823886419274799739913651180182667174220325213598853574841381509187784534991539211448894555977222623082296673146833429956269731374393586029654207865446433017929170049550048709342330459229277718066949615953554777582145209971406093348872448080288724645855175073678976345753942860060499355844282924927592066489405689453788338394161456804895300824439676813311813817006063264718922658608133253727331601286710811669374394866831039393826989022098614199862082996075943412625097420342601978735965813618044659207211344707853918699365679073156751311559473148859509251214615747259448750625629819717150732065353835681320580766923894441176222918807648213968417401512830650275749114517334863900976496732424543527153674155659253046070779275656173021786279561967703480824860930274843655926627378062814508521177973150129840107081813368565238221754927436348821503646227526460175204643269837870621257981636504665432789419257169062367475870714002494804253901839531596295581277250606671558345050402717850541463046229901439249359020174724319108996771439555275250327127668652595071662142899369459178729909320711948531209510791587371976140760411239683682147459122031182965457847218248083081958249846751006586529382032987083241463771666316140998507031519784649425701979858720207990346948297993885634941234184048935435471089312114793764945703898188985914566720748241775011106591033219220155310949399303017489368407450201140049395285489994792582359599192907076320139894254988742490503015344493545385797377834917481734428291743551159057195676215327175918767152329665167270420198070924161471911404335616271397363382733045600683085921072426382978731609207724783266007994951883485923496704644991423619609817561913149309913717230238419829294143567526883867045189411321529311550731355862621294269550582914560128892786052044198119806334009007928075204936338531904107009816339215802180393312514564326914592658825506864054343680883310490565316858712220310338900444493494554445966112770276212474886087475358970009282433284972040855709769379100038175381705279828365346253233903395366932657865118920247102185333908988865613485638351259118488702523617274484396334465253999860040673443207982218648023186549659280767663794815852720311621881134364742914453890673677720454705964417189882753245414214607204436869609151421705557306559853728783090294631040045789742833372614116238034940975810722145983875316224322292543455939059900600203267088774056513160814459016138111961556147800621983259797875837838236799999915418329517871139505429252669698432952344325922446893978769968168954296278133014249247521806534273816681996455239379388662431920256302171716733270894539091897943315284790774087069104779385599078904515624147471645368987000131088098468512889147086402820601063501766907469859217268258676477388614336731881095681216000483035902215401451333317098120241892551287843967776124984126301882375170789664415709188034935425928184740723723967735898195888077427848190467390497830689279660654540155322330895484204386400518350095813489761422590104550467959997662601300234217820557965657536801336883336340419109864951775348177022683663849513592776956973751986822665804075329065249428153677780771650866503170875302009711684801855138731739400919624935800358647546049175717370435256710245592279756238917296836611435356116600478120559171412030949521168344246087939344120729278425800329065893934683804773208495507240788269886025674655453647374479971144519870501626609020318818966176878206764101444929258307389534800163871209165078794668974931330183940657367267559899369847682057586924890578325340231089573430456321922934720722767036754803682074243623138974333083670203395420038026516722281657434631346427799439312531294621442805592641209119369244829358754568516198179105382758775657377494030448283658007336056381130414271292319544730370194998398992070835212347434911314124390374240010501221467009361128061395928286668879764418880788343086688956291555952834493831246176207094497560267190776046769613494757989849683815913133995136346241178851770805482061331358413511811553094161722690790299302733221134834631346705752209466725454212879261924215280033809790133532574392586640663463882714236431181610770587795281882059999749327695720268153013495941883047522891408967000800940756109767574509259454362955722034398194919209820690344030480714936861051824622545502717457896613943840795812721809462149932186796751138269737023200740890014961446174872056343532198556660697902627744585142661079308555597416390618583854881439455511865644573313446238740917903166752392310933754844367865731177867001167335951898069749406412721857135402907635789427959230055054095963367445779356068121734621600218004590952887505970095065510799025268241131693820270478380707288862773518029587986181792789530381624543704285112625380019597682614680937726654405813897245598204062245992516232261922567147990246344174857016789503002270689968458222604557936262368216184884297020247727165320445886781548672426557837556178722550651022095876126432066366629285560610245315043961586679317145769198671256498065473848902520441384401324756625496084692149583116320522427301653373634978460516390510458144430477187919830760796125991662755951008570597276003129594898759081739031767550349389178914622714874993775538003407474022992144345618120069742205124381217940674412204073406439420666224732337860864961783258930777878741847606500498320334829952694818096997038801620204336929254716629213945356729159425291757660540548864395566673112945127311955326488421189975608984697573158665676179783768782713405076005542293752617955729449624163653825839189478022523916899617736528945376471857217366820322905488751693793122064673801174369643455493961270111761410438651425171626996776516897064568717817300809580749985894945003485005430019911247868451615731268575534378740284784131965958716625894282754476389237896018052512117768491236471747041485018350460198608030462321606557499360346135539996716194986895633025137305885408470005859873565007680114995167786634585459277246588373184300441424923173105537182626425932394239335427930760553647218800105866833620696448393967336389784256993292205295368385578497380458937592629096847942962082249800922286363004353075282005989190128017581027499037786471291478292987932006177054372669619286230237309986337371107639074362300125616744472079781167061351544075521859987603512490549777857577325327205928760424618270880090067407954135321993376132035659988520404527845734707491867737393873658212071647382138947383184923800626329988529258747125077368193744819453223576758989709152992434005515303400382549862966553738020364723993668804313719075534493918540114163044312968499124071173911864238093853550945560666577290605187038568673343594319992204025665661755060613940306128658829067487336342113843222656315773612432855183268724844923432137308957778027070801030245766106993626930708295584936420197308754559919839519639200665313665323952235056070713736835349855959734726819886319849121837172075276196302719997878171004270468500794237619008277558356413796840463056799294181359203037761996906990462222742883508006191460010660397807203820793045302386253385754449818146914194622353924061327592801422501758513462353256120077463140082843402640283289560898476673493774343323455064120609788657599034200232742195321049851566327646971929171683449748877490768817215154455585852149279752829564962654516682786704461372830717509051694798685394170521935981021257947957901091248285098838199495857863124751763957151247115174704575699588610569537076206358647785935280098917195211095037174914830084996585740903142906025612945774580553592871350785394761938402863354373297516751532191320058856813305960557588359828135103979092267849989747819511777580852077763270979820590218214156113479196033849674918050141272661079253959811651531803685407644535010645167515124203312449556234994291391220090983597243772653475151437357813318681056785915368851840033173058086867124989926174379827086900295224608577556002285261361680190214872183207766439972048000488131381081906519097173419407989197167643752949806497571033038546953548152237119169350167603343817640773890224486262123329711886028915409325319839287586598211116988257828280104480031895031876416151355204130289670263243003722774723228570112212222132002917666048728587878274989920372808320268575155118360298329627343531767819343105246151658558723141461225074371554130678539843515885609361447112338412077903603796776511457874716856890480356380188783545045148196244105051710510798223955482492834996980586602444754306155417195567042932577021019958587745795987262887019099306715484560763190280262084318669728934884579394303096527696787818564580894684380942968729200173410115931920254411221291273798007532670632885682277049713422088784212937621441874970368168046407744901522807242218701484594666638350289988443147073120915898930905528538046691927279965033120933078303304454221422894462224092993065062929462835710027423803467567139439226617138749707832559641064749358761531788108539375063139466821212216732236350244569386833575716047500225286402391791444998788208568078185264861825077625082315895738634995472251811615707526203962164348404064451820921738746038589790951212551008422291332142289827581859192168593649595267003274551856737886392490586398900086501870329168191015028332820071259636740939773150260214884774517745281015834936988879390635714265250358173966491462516698468840644350846189469609060439100628238646395965771683292030199349619551411564831967316743888096347312260685094781626672068121401808309033945916801954045618048290136320118475214536049800914833949452034619985880958749171182767210920715257881242962642005440621920034129378277144387266263040233420235633071935679702887725590715694031035509105210561669526856946481532760690612509121413281353588958129135764853549408256189431892829167923062889023541403717504287046904730638831236440300210396342969635487846124372935001423562926134608519181004952459986205395086251525538757143430455700608631483611042230755400296339932896266693457498205835985389281770113226551943613676616867625107496940447288916760580122130492174969695691105950578288065127128523350882117605080589053724313181337377189876474940473892929639405223741436784205511193249296945754583117135513999641402482757739787547154277494992208272479801238342223822160469707216739595097307648165810451316825704093266821493459319324760561438670950541915993378138925793444212105422066275089313368079789241876965231765885871453371273472385982085529995441394346132111255565187730938985017892658348501341331962342160189404820898071792026139586936002738486061370400179098609690942599721325585483898689883233470272360172753410025992465563118615334102932182967840897548513780732887054219442964184065547399894644995111387760367985335117297747163764065948499024089347567476250320980582588625138332967015535431075011324573161176752869776385488024138807946418458091019240175198718230696352316024126598109320526311410779891404214053054432514909045133132288071712277971959712820083243365637947597164472693482772147685004517026633794777888188997926657457909398895948185782217897296069329907758810595752417830159653316363679366010621959511983163386009145202620263020554786092946077239773280180075345046357688683492435528235153508238282267737607205664563311567411940423796022658078406858410091806521700137113664625340585041231329894497082891064754021553528295741422511265743092955182621981068246279856703348160923612260824460085388492569054695884575815765785646946623664496072592547116790513524369938749864179899000615211473973414030659449653967157859585159396704913966708610061882910599598641571420551343120711190981030401908069327888956483215949892891600025743328534911251450454652787285048753034414827053326951598291315779340800866680065465219756278586352086762428302002691987651278593777927645854538156828044145442169909147321230179091584775224372911122739597584439340629038503652291542633424992162115748074954084228102801873233347715329923602746751346384321981332780347901008959921895237245059687337360536484137318745156482432747296094641214535116737964307287708646424894221396474721857873350678243779144283662192041455518764433015058080455845833077195803480866876044593198683471426917304941551201003110680046518717184157247366518462138410459298783658549771656544116938849002515757335318322578001400771405929992595582051617515524505682467835427930739129510536462018153561050048360003041717006213356968262200651068056495687181365398468833925249845387153365926073660617950022745614707264214137455555398797977985785907610586388860002795368237212232467510456897098146080309200774578051853546336582427971207955115843324807234593072614736150706806314339158681038049044154050727374574021476083270600285799997144525339048156534012363759698021249405055932966838214251633279712854104721097394454839948867501272590283673960806998464321171365853046873383789848250880888394197935653246617824753260078517434866887594124818079356291643953116520525939006039538589747062221063136973475026355264570776294267468792011789551310539800653969842076496078082015211950968909061108997438177924146397541195541406374647911645749308687762891648422572942923739750401463531928813425030535671030105353472879931241274304207325744987928948275931385622263221746124343476910935496809432302466656663931569404969665309678311379971733547492558524396852230675690833091257485089138311628731506901231340271581811140083172395379184201036925937600170071858075965284173944890041940123716944917283508627670399694811153926791512037000233047372582242741116900814822043542175727481396432086902324241515020577128667810114438190936102758822167745735198760496881258582856983845918110638202463151911174463602022426854642395246301901768347805489875856571966248843359727236759069490766064138360432299179627590160609374750897399652122739021598301820053488585081755759115233659530520076269092041576669606573974822092015766080273157558708655780482003414718616159011219190614246507343404955108169826455605526312168472222725743701509112158111909909368162510092407079861140695103591851713238365311196251333051169484976106338238176380415879869252533188674830856021301072400566679543615692605523543602656731531740864538251528521306092965716786843253159399974080193957225683048544654496163416945387884902712599672369899037010374763666313359259085314690332764985557587208881843874596264284861263603108691630455171736538249343887235656432826783473338329322823737456029010840512644886771809680508554084612166925368667860927495408477303478939872969009112917477474230342633542859179964461828955381517110615152408986263264466524562837356405710308225300137656062311290467859512936996179354335313756314423699994538892078129635815973969601813761292365215230950808369145475178048585394927512666062754022730885839618080983773140873121175073327656510861815278298511602787537341223172021741375572205021771991628444582839221596505345188844747312218443160817452096471355137520968393853059221427902086626477579709636567674778384915212280888831669689515899354043886452969976718985866808421479863149157204909177560527883210577936007808779676731357798570944221030419800007202925646125748393192100659383252145809630864655416006108817029155496246171570030569906402564623667488413615454727862141657380482403377518521965275945497012197669319239650081451708893309317944744151129248722053640364407594104469407550802135842387804665062813520470314634848333315301261158892436803990690137292928750590956266354467596010434244328781148939259911770438294952830355201406977092348970928661854876304992173322801247243961154925636234156073379046249718867593874203887249633554360491958008615957022412554316485266437802481769526189034551145441634809705198014130968143723287420806866667968718647873482913866702249216110986885799715717843809184485950839645797521256222359207277561354796274289802926641121650955252239952780810123804408013067171769906957679272506569886086588302188999620942321781199440154581542419287217063848931134350846503143052122146552456072208894905269133062349686937770378287733971562854869986978107472929656236643162253896544391407188392368376056217205572713617055035351871902001357631670897536314634616776788463583344426629204835213831943244510566623335735551838435988909921533302288907516818984311228687847026669000037896601635347822218317851073950451005175003765602934447471794002014129287174264582718254301489046447921155895021156694563428402470010226237911226744065741840883683410026150440972434879553459453340030479945311474581824576073795176995096934603216180266855439479072900391673224081364432006174639647946205627859793829459286109373984894583650895000187113225258641089848493134535100994892840079055434233337439091272425616273509324163757847801997618825929421243623306097465621271825998178280132133981182270761063159304169791524053137831275789949002218222203825956871366587547043354051527356896384672990662788943709329407147858422864961622927317412913241489286496565971945550130127839902137516363569000629672967074565594611113167514480580993830351668542025216395249100881453735596911589710405897566322692394661048466342782807354652014244800402094450000874663654899177577995332764692629718507841353728728559159147391112729867950362132601800539304770499075744960908456364146233332186420613105065013151003126019387923841395413716189290982137660581646697434498842191185302716764038458312819134682763670386476450077668922827730402049295325148883449818515560781276781694215822076546999256752986297774844960066655288239639487346008550866481196584978657011235661175838582023047191672000494217950334545638595042084225156546908899456221527827874407554222352826833488603896818982173495900315223937856559736023585333608103623537190526150710821707258063515642255875454130050513623843253380530146957574564133936338085945499434246362571930176711468297129515275803083723558346209557446686284444240301049484886891249788453469693483589822892357105002933039487368068221298513777613572931776621097590718607216257890659670807383624388987919160187055714768439562183481588957220859146660153219407613325382214567880706114808379165025822181884733675859843032277414105842255704114668204425318835787945445235209901444703138182663592274472865860219455975351645161433964466415130810199370815643139345010965215811428444405741644337514749505680795577479807763178429289557858963856316886045688994298425160634277907416822316976636007230255329277234290822021676040606643222906911261705356400889747812969181094950737678488823520774758083387106878168514547996778657641823574888303667045188581584282127253093971791029622570423364262017167606968191457511349319762781456551140570922703976471948254923786325653854683333232880004914859135108189136182774741034483277803735145817236613397395512419207219906612722124062152961418877028929438718258063511393009714964418236791797676090370722344918559479417326703032770719299314604359153042938397310939572349527283144104697680920833954879213751335946701200992294730994335417859153847249243518837578452954690961451678894977839704708321486798129761146899514537960218891229380716300918742233282244750500247059039178234758478660302285687058251727415717794339297015202778320090650325331014223269061807288732271301771519979676664142050273306420398682694182147366427604972435903565440729078884844309348444167548006891259379290470553885519450970788958608621540585305242260173316968294895845115740210592284353506775322271304533086304633292410689270443436668931472068273465128872337667927469698516560715481912240152240246218217771094279075150137101158372422247955331971560770104029451538093391042656048480576160467072684679374360572683196298239062154140697923098157570241395621634362420898979519547814072452546371404260414208509153868014650434329892115011044269180094185684691642233689258451762075625190593147310791575192700632708350011470371785326670340090451214403283894844231278118134904711429091167758485819123622065870495935726878431993535860842007930344534393635607152257217803514749654735994304890275804242132019883596977394366611644015470685937428180576260767992876626343766225986213446601340996713850624732170116524661646505603203046521597625361752377192785258648177569248427844919725324577002995980595537016046597503458702908325888849048287636544675585077256613670323036130166098684443815825123054994525751065993343505059394004240016193857061517376454786357898763015205524907225401969940699621064176854296073440751364119023933907442508273128979705342624505820966634268334202278650261318034314964616987579007609075906872216811018409178691738717723295920955808522952210527534709159660977124999667112026511354637818426402011927408238098969501920180299904805154880068886693190569921327360456001267937724346947976922534217135491167674737302689776801324115458416084773538854552617234195749670900167061138624161869967428058453058181406953751817298005307338966617081061002840439143531906678309144963268647650774699565943589083293266422523205564747452190951682543778192048073590317535188033409042192357452669431292060872537454500281018237106414611251833050585302456758489973509738336692817249609914886186280937172204720839888633211010672621044055408457091361304134804964861441763111864280837466426741199948942149269131339815888510329911876507283393639005677826165388121829203765684154565527627029598413847023311529415948266629873087685771295158023557625507919965309452720591424718669179865035928709772927576967784794557180214484474830205574038930047658254709545461202869902264820817968579083621527431690903998651480913213338004050786128663130458142000542455374720093322902339588602138044996842886709745793984947045702483441147720657797868454705588972767587957782933794489706674455195859815429849245275273540981451136747563468960643876831383200426039019962413644663571462148257016143226556788363280804391316193594379038200298965455846190829538610445744017321419734854614384596938233592235355075741487143274820124318619384299729935364699082091267961561863496470184379194484535396823719678414304335793795142411577427820188899671573062047758620191927077963368983582383446054742760662815188389631175908552015971742472486688263549940310355014178742848232599052907250608796856992657190888881621534681875900751600615849215081453968272301158405831434269088581673172524825391373126599449431743754504906192468333310721612010577309959428081443627647128041777284261503049316840919738203874025705113272746903588301012385579017858164580287595165870526229834192752334486871462115012423448667443664548590669752754410692564198563976470201680247490656865477454107922012804265905712046166219339549108301698362485919651627531137941602514625250235117334350897541819427103089359146723334302102081257463767490324091121549195058530916877044738219802928529812661786226683220330369311349165818769190683137443140012041254342332858220021177457520736971833649500637471543677534324273709080132954532246747224373093130770025582266717160274820518085241488998000111332861511504264545668949837227667035807668623141360141079760259833055795640997506280401050949931825119074055158137021928633888518291448876458804320993790974746276724235315052075403010337047901818787368878629612528095348193524105122639251614309122849840315645147959292306784943337186188924660651929429701916845832809076435103531351930843922936996357195996628002306861539656656826338380016345083770312339505501481964501599727993149376433051632415355309927639747775990367089106938200334782660903106672676133886057039849352385020325331805956847350097398131691288058202849373493774726249664039908745612533594676957956099711495703184368788429046993612194403887910177359263655235104787471262488458526693686987892463615929958073161870851756835119419132362929414292035070118867969088251241003295902657356404953637356700635099875307255665317603812529419889035953852742200176907341224547478600649513504132511814280870127538406962394149937168047608745004213192226610721220349463916849521776977157715040849501776014206114587166269536751750489462680049546775000114777918967438815447458606112926811760201201634256130067818183322013797079601682142550499243880149089992061925015509496516672675368580318836264124332704143433804604448724924242961898971303091894519777463293161548807733022057680300345265664884101100419375560434124209642866622720587671822408358244490496390135811408792201241467165922275162661328689178587541842865001032481627035116912094880940196220465623872755243905436520799757774527942741760251945919102391989743491660123015016111397519645694434616767783522059403235206126051225958130324523028112895385118567491180076171924606805314826280866791295585194827780084176101141977847414324199623900571897123893117914614275216132414683080058899456782052208578755529582469953226115544253883196832755640856499923078045060864339923747935736165386713657782169553760290030328479441095592552247904477716554126080456301968048229957070126333956239846429097285198331310875372128453507434656804350704865972036344739640242586395156854970725983667967175579661102919484734891872613843622807538514349919695843410022037832673032288785392711445608461413327291585528026462747967492884081316548867234105867118886544544709858595694541201488218193735100895637372714522757614953870107165101696338963989466607655273129174494132590489153622813231795400603573597975519385424126598707428291310181221823288084326815388272310960826444288024908662889789598346307556120662594741438885468671396539462632122779269179282435963492775420636711536258516066403427395423487435868329219699954833514494821800717395097512095414799107530436119159283867923441513703736984835021396826187854968604253580109302178420193210313265331273873453098528271416042139880173184994976992717937797761599304851706462972054414975547659801886380682098059561648996914414669535476719028503447417623125559452207287294295655517324287516335476476267011180475474386269644476578769816725395319512580323142614346647515763171568527225862122403828505226682372096349353137914844705730966492435315594867423810468986007356771156894505907997491652246811349406452291994696244834679878743616842619563802211246625806823649201297632619527065128482073415995755971752100042835735100306080581497182948667424256416240301729738715282092166078905840178594598531279455820894425161875652016264685708585771338486262832646574083321556128377237053716876105027766006545849465786573115769264231103089344093127994772312581243798979563270835151057080284918204760296856242363894970937156126517265469823488975607604600730025340349623121756246433846148819134638899236109623392573718158002574280713463294632713686310946980418995765242662238379093029974561226229781391330940558581092228396421396751765355042533890762153179501636285384707541057887037816363376990558702261891327350658532876191390767448819570547485286742232337680186636679961147685410929322537259161745668535037395447675427817535797886059248343424660688211761281728234208423434906369958133424994799829255024565711832535756130068791826816196616895376833255535197930282958703794329710769097714923859953286597188184760036046230114555917557820662681288695743985225639452370101441553793602626362264594872198149157437919975455284735867061997266189433923341586012935716054151650207677791438996463165269387613402443828671288279057958221838853416621634419299156790730898579888672834901982400297393973284224757976183877541560692458893884140954166417437059038795722011766091258375728495021698040297758002550234324562490260406854435855801774244600069280052904984931849056791596283830686066006169162632384891818816400790593866403448576601661115634806065172994849034444428943913208460391215013721604769324376710523025994597103356599142366264162753530416344723973282288044976569708787731306134774606862370774849909398106960916037941997300792152170273262402059658965390339686185043319413081799390339840901708952621477733584588564627941562651226646686728338717134435672355024635261275300310828143372067823851177824673840830254079261383255244909220934868624233899755552509506248634223803719478224084438408467895492443557163320039818685966010891180478211339834600005756876479526487374850286516700187360336348417464890738890515324875140047670026002641417662812139013072136423887637886561018723499438165039778438697652198340846765010837597594983147077667014350268341079865079758433281526873514231752450150040778537437232468066728567746569917490517302613615118619056565469594504900866157646822567067447426817676505511654360172130498797051251642204785797909552375139182598448661805071240678461142316988902105157734636465965416223379383774207328181421444524261161886273311599804686726025931673862720993562100279763216099462825153632181125857152410279551027624674778443181290422842288115734211502636427002346371470636330739330862085353558306584728570345884739158220822480551742066277987845002280255642432212611522319991365669109325316206449479855417628061347315467648939706719870920452990682893824117532022986345605403364324138006876568389815172713696946317777841930271128374290543592652558696557696840510286949637432411010451954810215118184538179357295112574938843267015213832901002124853261943872304812260612421333799428434884219452217902423124422564533165823620308301805176452125542646462764801514635258675453594428186661044582047712141467288947754874278985950824628053385700173786738957801044421086954014983287717637604838586551236216988604896315090830397662356081122148706753201780089564422007374326895514485475801285128752742118067764539211052414853600544702790705660885396544836518366962579188242427987880684290664295701755449702706755564612648840811939967961651630874907076738172112218419081227852313650897543392718554823260847369949154219981892824173530362346368332481426572195648506293403536541193323517854572704595182674483575216427647039028754628832510193426209533723299382793525029340870823606643717512242955177187470090120654749899402038591374548091628789168410537690479584548814477520765260032805804333920733825222443321031166991549621077128680872823068305431519986640311869500809866832085425674253108556032533121128484359284496553858439781358268203996151803656719037195501679240653270983160006199783765979015230944204215986324620253302580196060453117502892504013758051776920049121665146718816608431458538382556931061414990585295957902477183236686073490857293220095258797838688142979877295977119308097229595625974941715497307691549110485479562009672973398838056899396233315663017215197796161158860344257036890453522190991031476921830190039362651811448528628123955803013049986347190964456691572304884266431494961281686274151681809744692430459110532923117845024715027080970894306994445769676966727291489110916466146082661356927764104464604236869371340039180320270570294021644969688876724846386459898277243121570301022036750591119054889831768611130099743891777928315353364084968764889303558356453369985476446706180084432807177784706976645723437699097100705642401696325452760451201577423319929975903728091176866943995634294104192539751522751117103859276490945647109722788937310114793139700940455998759543344129823805201008758925187216619907212125384974327370213028568843097888988719910846295293087278358902694291828626214332667347902165189735988203454691159419353858996077836113340788415427906915489170820724479591180186562216444471610690094466627760014901793247132029040650527673189098162481483885491982776302129284047218505265055564970674657950172602369226808839093525214885645872602135773975279814547798873909453723493167417945338565220393024146216782256731863378920240769763471690380253189430940623832049117425837639064553403578712792224788622290887199870042082815171519998254880090495387559210528336370133464829440934531795712853719455604686100628075904939983534058932068346792787412428620640590168025774216123664140816959494801154469175753571705855061631378998395238812401675347146481843922374653120146487261325928459156561958980933832281370065666016940937104767558081685481860971748933155337027626120996352849573023689127919007262133932558166843387168592416323666886020324421432526421802741072881088590723532342582257709302873190097352209324934314303472432536726989737500808299468990442687810774241016730632719144676437369426241241698928752257167841701542334561844302894092497005286248809908524419796238184251699542309548503579152766569571189023227168565337373892270120829846362609799215982570916103532610070669358448675518149679943946014151492584645928664748565426187030355273702406122815882225448030750337354270016485283534888063374096756084970676854816341293572536194028096507014926699519958001421657270751985378205486901388159448116770742348115750060359050661429456400673679248977025354588319296412687959071500102438451372735342037752941289609106416906106588134563895953363287289520995119441564610776774000320983598031758642702775358866087307600180280673989555196988669174391284568267936822840390955759711199113302611073607112998919237488525225060137674162664452093340447860767867668303171918622320128711564713646522074279351874732511249299159898282974338141872973971748634209141999156123260992661840650780494913204413633187163597110635078120684593682701420922129141122080922248190968746074854560679183518935532667980297903515805018679586432554928975976628836275727548287401252592966094308293941005001643734257706747541890220589504940149349666455173235563249620865133369944583288942894218137899601187671573657273292998273687445609654241113564992604764238073943070178252345303643551617079073042214520735483781990447439934297798514092294922672592834962865021974158735779891936365469271861154391423901339784827235726437151676972512654947434072182622908330064884816120091520746785221126007080247601469969146502796907611025171574355786328036255645407751868392251198646782393475494530304198151510980511978926412658801024433891011018354819680517366296590937135148736459689453387466111328845079529806972883002307096842576648143480651639340916346659363152286273920941836980624913456932269304181165045003120222560193515391941126628765708501346918441684362231828916798276848775357870423938214516982750231886559463374129401793145644799957715931942766649842059858926076461467542829716630525823277658336563566491507509443907704877807330731288095249954457399008268857511187964163919041979447061481711083058379185974272377247146744764401754463105628000661409972366392973261393564999262307301634762026157394320552813110413906506438011710442348247337188007762532355799938510352008587708717325590493379832236717791614342324050703353425326597686896290732832409479533281274195484091385774485629440965480223618870302486137065192918923226024011576094107394555848841222184730387711828234784136763982362910656010685104699896039318143346274031059695393063194909157668512555772041764303715969691759115344384895135331185967268307021690425375737850214132763724928775694545915359914904906653711375663661373354777735141346791372691018774209500873462338173244471480780444674820225710958132938530539562259317419070798118385220808452507576607996558947956044147826406045550882779509201920515300632991163009415560946774956110862923338299311937537769868739981729053230059522518094760786023660540552058717935820234909278818047808772386171784757316643195779572035331728190138621424398119815758234184242538260523366648161063652870770609919552978308132923248028433667065939878993771694857210657062294522453859117675219970118360109999472841086506093667534933230965543155621446767102863373227088225151135862525848794101989784348736548268695567113552439665959298803130909403854913211951397084603085540965282331786409028465977558019191344941008546868868253564013379590707907725228119919133298335986424003706560002898067826899030175475602953184070797323213965169451032697104395556135745821802058154239071352659446766248281300299987997427482572281998778987348039409976079137603944130741123708485002769849049018729267054339585618773282897089020504823807879871418617257998091804078406923910248687292431825289741622395076926268475256242050929918779483404807490738780398001670907860895070716236538123597822353105556603271983866339061561938589936217412014631817793335816699005802301232757008724915634430612448107751424453091602166673616550432477758001471276780817918284807484099546950745584960253608798298638615333879812002726769958333739975009325014163633755616684875437106681066288858181620514276104274717767772320436665495758187052158451961600236453167046664910061320200276975421403769892198666743415620492089603549207812103994475062970356441579376187009300387605704805148542013023754780946159865886565565448931938099221650493451179364874789013731329052574652243089308294664395839986997558256182301897659619360041793049054555482602715121526710865301498316751620440994684877008154901934851416900727531901096879287785641038857182789870417482933506208586281206021647110176545490632078505000424769691908690747308900873973454393715683800460841794128343050145261851515173903997817762827446521043642831865629007119171112176856174570273563671892139349696605444822060887636638137139553109426996203705585791285073901660543990504555272272719704787832710382109021084208800882762514352703222119489363332279258317156164898316106260012133729148883170065473659215118113784485296052427625188877759959306862981660458399755829056675210188596888421263555171674563299349175770062483576439455657516088820584988803247298275634512132699411574792493200014746710714046283769524289617758006295325840362753560894322639893815151185692284093191650099334843664314719797648353741544113641771545274539157659334651705867682104673002915620454970362662842972681001384320713368723648584730524167450549405163330184213997018068019048722845181082916190578355215054963138324024520266009691255528459609101234711711457636715157469664518580054572531951332597992700853491042798826585095075933413965730776568548158850377083846967854573616768809160478421130996637107663313110095365650223595122446441100763923995055447989346413506881070927208894297294760695301166041716790293670893240618182574185037184940907330556114384876137674696999357076652552044659560270342075843424449484925562564568367654484061946842424660324133860309691079703202198221307354131469857263230893620809742315014136696337274859082889212331628057392330061704833503687091505269043996159437675787139380422065632429386917434898187845828855958576448403277456866196403175243886987464617470839390255812358012626312185700745114964496571344765006051469197088913159233733825933136992697052960766883841688499188703619699198723932878397731898587871357163834386866045962639770837641214787395710132213880923340530064594091029914282616025089075002439652688709278744874031534231104428311738296536291983289603381956715731382813982513292324184426342281388129864298410751445143117081959673765064386284114921494915009361505117774198997147420584473753528733510238028951424737508984111078807057457360592845873567032127679483012804258877292200769112043219646052130143520051176095719500258211554747738634659006866008913769947157709151599822111862566486646642538948803841964129605499284222800426365315488750894894663416119760275392456059078739958541399781374856119651865355090283066980675616565374153491210315648660249934265012397394082921397403990968755361787601841856714710480177928585566958517516629818319320723851530409101263499864287888048219903502918268648795714294156486812443978657925013695157491878142186502680171565592365168046687493479382287908632797358394308717224790328515719290446893138914531545834620077606955263375651774992077351244070236320775048368480278251949850936025867955676314908607390123540353546307214024463538928187984506732334256767623867365073539412556806834372400036461694558256623793602051399882844922825611853639205658928083836441657476038913493278966162485072234112391964896807878255637664444068530685916798039694794824334180776678528438753664709574390535531078534098731694076179198680525728044756182673977280554140958513834189222861810494707580992108108691699041438244661218140082601251025419297074642758727822627051577706497254974051140880927451456546060086809748216265842051861133143442066450905574043580760332095764394267289648257579880563770286827508575267617819890265164596574575773794009899841503513600184595143313921395480482071026648546951522148436840388990927360611320852250408910927402169928915016833520473980531856315620933312758541735436500270771816413199803220343622518331745582499249126340278717526695205841925313747668377493001574020133996858526555158520808884771171575274951068589428491015610258533270489406949179846698069003446882301442020897018321591627485846386815410413853263378607925614404673740192318800957495496576318437962803062972980628465652132524907463362092132758359887552020105388191688250361076399165342643932592692953158812307282152927182963909818001287584579779828268591506441585796794803774526616947457717877731796059970067933007514265096147722408729420321396964176323611941000446703908689281410886477906517142661376351321976894768240857547253046394773597934992556345571500265468653988578700796116870459999859601721953744998891174944626264612741079237558889792327279138622706296439410410711213826009438492196388001087566439169667811235427326940932248697311388207422286583350603580150604851971390890904014855252614910139419617862361678905926083795964086678472817588954733862955915923556233830908744083203342666929106254153613283557140611834717119158104884855674163952445731522739961448562745633935627628140893445955720276324440683595317132289734203303801567363983492467599172875285206796765840920181079026208212304421109009840723961227294650237147941365790244663689485958929070405414830560856162044608976222492055522886823059546541629285597384246401841053910444447269068989436460834481755768678949279127759054545108261332638147957719114219847720888181517697955909452348901683855397083335591879296928783734746138663514927914493871663493873755110330274975222847810455247654218888359169620852968680067567007365856845831788595888774761484279393311175760474097687585267046377347963584888143852629397942269369003494066528954711400586584184082783543416346317629983899061816104500736364921400293261201792958640154475819970989984695883788957566233571845670578329711328095141700180690819106828930899015260196347754278532264979069312418137785116350915795726041680813773786187178865560828246627804569757136579236224532082303813125916808815536807896801097594948188341950847561645858606021863584838361218175265262129951510539699921422664873924141435598700240964048409828163577947374391476488751174302080173900462063969402913751950568806258721461744735857495951491465236553359878461238850846790772872605007147319831544437444085068238092607098001935627552486030541063811169271034591757462648681055899483038886226342327341900834334879475705770125250989828450770153363189461792918847376719743321644770278910490460614930880827327214300257340736058390578675132450937538803724592460299743011269013121168172301079700230349897170191067754094880246161789152061077845454589241726006667235827503256917395517467501829009834324246164448123483600367937055039149074280559609351826286582649575683058557231576812481895122058483246229443337963856574153439218175065148470313823698365972980230365427427753334706727811262179886929037786728844276738801393777968688909601159283231711184642797628671646813232887218576288410252848416549678274273123075088228106180718218592794909247334751658134642878100030153474593861510362179528619270607258009599306922872048632564025463063031048701073757242105028750059962653326819411251997934657053666965308873899929417695594397236425128147686942734967577211838577283837555116474637331547254694983461022117246220178977951389892467165934690240615277741872913617163046307362312145781683916869173097956960733699783737846604795058682171552916701532493195708434145268245691290224162970186231082036438417798731733243842358160644745969086462187570237327539121143788386157581166447625076945726326609454769022272246744696284061959580563965182293058766485712858565703888303964510341165503503743341968155590902724711725448011036660458869929746243441081803404773345491239940112109711162061503864116336082339511440437783581884041189412221902354791876982293235201851269336639486190243835466186936380789811849254274184692385944730162374018153898472657900350939283729172230406559330656428720958147939209683384251364675757374062397690926183587948300959901825234528747668606908724886044655313403652232495904762106835274034020298307177745725054408763728425118063175318233064312576702534811393862418502944059901600162321167441349809443027881663471030441841716950744127581978933139598250009899464475092645480931937659713732587641325894064155920411381484362064316497462027193185391998938279435941407688693897041905784014030322853089206383905862714463511141433923162432931491181786288894895880385425704533838583777397545582012086079750167705367329274549128689089294084724575766305861678359095545764388916692825185055028239092594783545868075103886216536801486505478040750102596961728392418652646284480811458091406136128975145101431083996099212500599379940370577182808963665275499541842019706788460536515523640563278806891121406101207310904816531425508092622831589272001546310286476576316510696993237060504559944127614317039414361812302944618657268346465475658679480378674990011899276162619303193191207495036287529101520042166550069530734830023874136845203321251343351777553649116808240956370983796435609465662264414154559223852706898159253196370708852928591911120715826598768566004280541919121404192194189298969087865584049479013445861450508463714190806199796729616550595932430390538221070263716213842298676741190692595187494605472386777169189975022965739366754040039008411035915213591282740403082553287054158066085149768206527786700787014403401999453235023349174410252361854302944156186240716342433289530145653096939722463804076785625776337693927173589750207646902752967422059118799843036540561034459710333563368066822679411037330937078928286319566890194728787254323572534123089473795098921835019815274109133693748731483283803615747380869791940770936358220455143294831604167124803361505040788512033467487143034586658895086270635607842273043185014413011753737464737420002326265891634250458767337003805599329063568673992743149016476869283979538820778752553411194169088700174349412823016334348208389767642149535944528932834313985506220025359286392627404629154088337583449485050343483186874145201345502454068982860903943288186577340981677312492047747178808433851755977471045071601043937925656785228679632057510252960576024037065616627069016711079606822241543043899116827058780223338426831684227506296739724429234851150307250437129561153937159241368825591320421312006785509361659346345205052263565199961879451084706921253898486110229809871595940763490557872293097156410951052396609942208689914790856606417399981019211414779672050243862289417947971599706961244289931546076126623004655938171437293226181075860915058545991195010403731322467425920016123934215129505059136653132523217162612685862271471690256576477046698160901633596193957844747812456300395221567068227598927133926119255855275775485683532499267362851808569028980671555170830069674672036678272564607673923312926418603822609564447897576733121699632458593579911789647764666405928696835420983504095472424503453385996771845945944551693070421185868406728759706754596446637123416719574670389540033218297546514517816191002924886211115171680720934471057158606547084937333142164923677682655352026285280134666605260833248573051180741588213742609827495353395251682573962499939169583288633013210497235138027271959797731337930322351916831892084308903744081475193087589312574695151614812806722878456988430137750641331529660070295226748164587825222829349289936584228224910059198805502429058941511813086008573592342578287718143133512422237879616303296397459932975760861761253872762710318350218100421521045909886927771189811557877843130996190551837549270091051717522711894554622639457805096442948371531895202838146625216082260581888950225125370929360787127190400655346140315927709601203519688482501100541314825942184638852004442527828404802424933385630827373510205628276578464500382078921353670319090275469404196339949308093923522896101220182866984090753282602746589579182869932872871926845586964065838597843230528368077563846838659782397347812165155886239538098052537768304809752431306238332151170302281302555078855192606623363295754838978945464300340830768832924413774446496002768685041438547562339099357480435822645448969653059351343293650655490442413094617914318303247283234650636060482294145731689969782078516023442626310921714904153554194297683118161454959935075393109030255919096023159824792718839235764854252922859666353540472878250701134006379563196414953063276620747624823455851774384652878357238756709639637727596143131553363105616203379670799712994139439036750274789855193618567909145012209967792817359529262857791572480561651176290216393436156377324737297511645797939347703934549230556966046405921053531449412642893773256829902786930204087070530661364175916563641470360720871885838046597401378549523702100037106856618118859736809980387701950821985464853952653497590666993972129189284260575050116881196299773100926634355311458795202959076700645525411869301530208670989773016547810870259988646169027091706431399663773007282111399898740676061180586349904897576358544787957822189615912322871281120805965159379636680676775230324933408302058449024951498767735284625463616762724917920186394392260592023823581665382020469322901960292431400639483238320433647219357210185275694395185798359683852135074013861668585098209436863558963793239227872662850140158828418465295171692364307949318855586056442618381787733862118140322478002722940790553435087579284589158875061156998867630958221254195670406900302377163311785426858014162794898108511782906728815080778956101929086167562434003970730113790447787369938867722085783982450322011142879222969360080389811353649903200270987824950968557494840221749183530952063407301696049032862546598170187542811149077114358560224428376926068120912018571770575020873488870760771005472314474674043897683511953810478711996302407351467134321401353729564053593148340566039541199597194511945493942558534908484253717895063936805459667245201378442544714857678706858216671679556054678185450904159936052735567246088599572155508452846938461580881054755242973280551302640762038628995535780955029747384430690530127562713217951459611073402837725977611069015881418095318522900137830077262880505328015833555318982473527714627541847683850027705947739155155883669473463377767034535722237256452552953633966419121491239062388641400371741569887192793762691863578693827272302313064997683890817094062894572638799924222091980096184203556348723807282863864316974616492975471782195233382740457278425507011937003451895588780105582398924302382527581768902453099049397965262823364076569275498313142740382418459177804327443094825003473744492450056251033388298255278864710307697596885432028680999361105916584863696961019556375030336623929530991754461996600800302792085644984165524512217186296785672915068764782813676057314876957085671428894583184020385394803815350549147098112582817198585960494186550460508872773736630573880022882602246547855457518738607237835959480967153114139565715322057621330946860144801852398311120032067787413121323001685028986081004146967317353077675706632435261825568917198981691298630054795638287659025125962039080537854263737971462963531515376004869811994904903644108945062355431121052255317337774208766112012559364843421031348147840033903262367692416683619163552073345536466346844238355204332076797143808178849417681304572982893419739412740372095522042175980094364527672700359518887526530992116629926146716427768125624604928743524479907118590689141779845334984384352244799455645041599427549253735014838139172024523249883978795413621674739206411100793975521208789058855519184107122982356745186850099196253595343004484927369181147938784034331054197842622241840692196076437771370518018925478762702903962285524500606508771245105381474955940393551082316166400571613606099603823020958384146767403860479056627048728700222559797279794111593471525719664466347291455906596630746387116988089449623496501902049917997477953018871199126085443548530112586321122583709384095076491529742336096179041534202062219203702659354782971485390977871440975106765276141824543274408725388893712886751318291188459827717432395133779852357487814018543094811882291936936906850309683734422837666009496547024796764124226271227515283140866480839004815577258683397923596535173504285068421730742998364339350765075803626765045335526251953103004913068304414856406709623405613119118480050101295644412437254987718476784934227255990874420570755214179068502445426090700138099960793295948623118926445831979190749301162110510530412376642271620720777958749326948816372703012843641034082441197081857611586747991967824617704729256949020544694114424696435841427690402125719350275999514679668016307343497634633903600182303842401920198721502659647056132755151361515251511419998347647924145303095036474260347399665711345323763753656693255601566911773821438143161201232978247462807199624888283591100699449503438406829928678881021133010901813789687828706630944950017258260860003322640166751928894707296010878532351833323204812784612059784163779012026952111670979282747252366872170110829952788154100627171187336532099231468067559935830263210565287321590368714352458957226562113904789694392124708992803839423935249035459869226617132858152526230811764256695248227165053270299212251101076948658558742740362979991897308745164679897464658961374177197422255844212301995632709894111663666015434029754376403961204920377180953474344911068895430260504282794861737235297796526892497608078358474260656916152633211220672101697110563329976172997076214032597809191454439020587812066146456316830815427956512149732867402526267714859351273949277401374136038421536507066257258828786774418069233882019526057534179956645726898131836570380625045782587712311987119028747985365484890137915157839665536506709698546484864786467083032420454212596492685297995176482285834451520892161870818493591662595890910266126418327508327869176942993668171318994067091732439327856687854738905697700474944044401256771802244853463539372765370842113268601845103518795700747030435252089068625905754742207363079213923267707041350919852023120477097719309707743716976989789582446499546023527191786606265186150368622065725241383446707373905264347750776482375125283930045843446620193409274223614040411755548635954516571559077110889234747496673162676770298441169796550566739237405072183501031133103102184591695150063273693761286505020799459329593479877676646318816129108832067013074196232647303336015945439371881375435005344077337709067574831036121491041966432674904306760076513409663089629910991625639515724949528056629847894285800379922257657922190655110737543882225839765323819257379911762616404433699297059370403967092153742324928641990607247653603852580850834940078085082345201823481319330365205173372060961492749934894420481384604459636344352257437583027447052866652137663460154571675551215367707622068126424917537800427030536235140210574585926004365895931704082339105074590246249544557099439365691555797501214153499084490110035375930865052382489729685292171858499978785073308370663071560952003509069562252173554802881321618413805462225261266082461898134790736177030638941421180373222914155770573097031556747018446395536121674033845345782007319215795826534288999095556571456482937177983935882783268646341091495655440432328049007132557230587368909618600337287136641626031388413571870605357333602906852816618518096044144656441809317401243305449979977176007589206514878798336359023098144832954467643627691834207503466605869383027978043319131151844582895103710995593505654485470703005481815382144951753787998168992638336562383747399917099010672861268753458253318519618114331617584640156394940140831540018740438063272814146988324013446198844462085840576217569594092007855474699194085616093907435786474255437767397526928959597314274915355021448081161667958635860991629660807450468406608539596470948760911190809748785520705005053385524615416879778577982621402100454662900157266362862962193866616976366783457954452387031891843820013998331237431457854177304871551507607479988473267858500346457442107067476212264455954778186545612130204939577139881825171164824067864022659731496745921976311281266189301179879068257765250970379737707556197171503958840617346384521225706523476775190851572584673833567500271787544626013941686820840230613847548961791939633812554345995609223566430308259691949288480563122742809841133866496465095958994856718135601630644734212142692493864693523411634494201051776917605533974222357151024367053648505160724109877220740583606913109455823280795774836537065182970354366180582204656437242238247310204643843907678484556727779218211526417492138805266076315241100933493694626910284228205022913578048362436606146256664834718997915425166628503024625295115934167897836557913356451741327167531962380665555649573907373895411103255080477346136440035990715270966893184238155423778634559661135754865773851660033948075963829243154399679627220945034229803231178371506589678229280663539641596131190046479820378139131574041705217060136724258327432097664402830111624751387507883691812120447757621806399119035812088312818199590360449521476944585114791947358350975451376970113109948138785060336590771838326921476738555450731844969131550033028062924911504231801301109967692155588035427262365263266650469916082390274846837383041672077667801469434290600992351707912909115812625982067923749618869896182096811684311282911407848252191358649381941221419789007161630878277203558036798856049054287417183178158214261670117303497212616931070867253624080984388916863518415809437156366855873475696968155831524618425739878476357709422342017693734542508128166359028853767088025158601420097246743661105159138610392605480186300356073081836678093237025427632102338849589386075985047298459957768637637738410244540768664777302481567144572241681296398805520712212950339603125663913553430922615536217252629778990601621708041682922214877760979762334059405859151940947180435476998127658244926827130671307381970168292255769642477480626609374678167653002259855218314872601862361506950029655231694833477920300006878757124755037703105879685999592605367958030757059256112710108352123295918859225266202390862319904648567494545155357533898830868015228347454545245577379202572912735874654438557817974693343874781533619349057214982360608142966217561694837212173640003505148795841519765833587500614222082725060341042887152790925085832983947464265011757178783018362753780963394496173829418852983407638678402615125889179774910413177715539616726760851349765193091917418618974141921033094098505014436527850408430888119881817914153932902217681795373027890252953844359714502685920262985085958201874227057484011207719111898410680793845327121096732771174249290061538117496445673190127231155759388784442598013409603996531763069342561582524649061049210510922789545330891069538784924980053854548644531329146555495711575680219444093771736545370338964717056312072176215034431001498640157036845454109908419725754892757088226496749464516290683129797899774841230476863362669963064793734443034002361478089878794629784278970019866369207467970442803077318584474476876725161412951670803859170937709800069340480306351174433716820776655309749086010510248597266288580705046420060954254378873108949029459241000341352148703598577728023549989756699411576780668375990531373112310352310654121078912472903262095501767989863605545522847565816186610539080193197889995810584814177299783232560347909925166429545941672010379488313920617487990650793193112846771121457436514341329346227234227930611586565997596671599509120846433059479249409564271509603931407372787106775080299178277227918433015989375923933452245002690451215524717276842956036564659710931519033497153900708226211622416674976859800950562482890525326042861622891131684683871618830534261259814904857836738448114855122077038776551927534131750209388504994214239070765280705927660175574606682829553105314584181831042228556681680248936592876291312253716113333147063128064969108517510108641354971381709264514340654391630067121520181586821261373405607119554752969107201005511189751990364456896769403725667828071129004677321234559003255242906220467091750251824225974770810227299640131965989743406755348687389982363844412524651382315209903041216990190003444231452276089606604988554091109214127143046978785754175000544159622120439632834737592762641155039781198444452026922561175763305007872801817423250429197489309668622135360202299328194032815249911764991344502752153546551893129819891433437169880607246769260205411905557712174562649500983190835832294499506226872324764661760585493436290764866927059585570378491300895621050523523886502777472546675199974873490358382189508016418575743789361553170699698975064200844737223079124946141371467436510340833633965439883063902766911233663875093336257429853255199360476059799294660920904874296160018783153353225020085205671088551028547330623547229377121397111309332575390217477195365229796715716032642502152582168183969972887087989270729040105103832526084757331057145391182773501595853279034859920588750428114453435016270636512264346760546266272533503913353602622133709030221216190841170805098476039987798096839999964311359525519948944230384411316927499280331869063994831096201225567461234339881870677665207212727350665700844613393759396197754165282610294761312451391648574556293135505553871042040844876604023343985444561993933478104493450544877965488947497919575434941516954179206038705864925218422951734727484537071777850299992670065829330972155176719742490354648784160882583166315905812434450287604954255984627411923147305585439817396461153863769479342907466963991881199694112668681698822935474378630391237883813491172103088067918862164589775793644389329264463113534777563224848265407632495458201557093371010717407942990273205171374268422047299436460034228161428217330544336158716260159303748415039767565271698594283502040236726934805185591630490206915778180341616441518040741855736124933045472291079805799361014246654904980257671519073689737663415774878798618236813047735234794094828525295905162707905717504874952841966862602792573958929366831651911544667775604326778453802846271328756248008250829861471850044486577347719447218824941255995416266474991707933741664062438502372943727571842941957829014311813324803109173623955701718821566405565007758513341061490956540958559627942329163003634761571461669492170749209038612311097385566453788342669292992898999816635713263099245706490064048929289447812275809911054888961603580235431294701349520191895700446242627350570073965928227811652687848913295957135150978251692872677563978653016610323370143069076918296317004675545219374655047352740856840004909780600654451970868062517991979287862240350001634018748471111286755117688947449591943854737167852193975271624149172419883964847871549855487532076012850566066481348959056433586949273098324270419401954969793195369840241058166832651902370352808705206139233553670082424022528469393724152160445925757232766550129259395051335647736797557708520509477923282119836093871026320829390651918763100848138416241870215749000101937425674587854450831223997522680827395798042257497559026587137063425113523235352016370261938591503529748870117042946929022408118442470181420782946986391485441104537576690154907247435359346102206524944112413754909163309170348293143904477375177705140313050441813363139363699519948617310227461674455338576778089882773819305453683547817354782038396818583529577434434101443406875712265752894566228656948802564500939292018782736178596123373776357921750988130079088707855663893885593511793918778582295173389050105685802029172348228027982661772382469210809751858298958156850879394842715936781037693952391875826699878991334881497021542290039560851502844937677856625970116133082349623522642905148038992167839415600943160030715945720522452385104859376851065441648680283725852896323761055149626787468034478024693834886207387428640223793723697695821395523335622995817259766041878968630236663174392975976685931629321794452005505186611377736603335307068251138844474324803690504388260295487888232842132495681586325745991099316042727631534973331665109150985488693625114726383870944432173789447312593896185127013946052640233870954006359812936289509789431041318790166757564337972459569547417502438700405159827908284553578104889746441218415126996689966097208997633572055373814620987280640297481751377457727929140835422462495179517687460131067365601058722967170959368114785713714277945137207918974466197805003300607879772468432901771941099066762279209650982499864787051039534524946041834207209818167395262740523986568780426505783715135229661438369527887753628238934957613703619276918233366415712317481000633779660682766670730626994956777486444721577177986573125734880791271056847438103096591158409456705923614499956909851331226359693844810303337568287724282313551723380722491946014507689417765411212929481799497129212432503703136027637284675649466303728865735724086951943130825686072163233684304098869659847910145501250893009210694551958989951037629437887716518258642170287418666554648100044145506470950547609894513388019950412461167415018604633886407375051857843126541624720079837186756766970563902724638059552082766163677439173361445748954607177695580070049552742830627298160751895067303983697857286353764196749581353266354463531867510341270361170819574701990207547084908539323450530284045008252255702447661610547045722748443417041950577047225065587810973259663860212933304973378427122275220338355314085719697161672792399433319720301070159266827760725426821004476897240304354119128634505457891561154489281102387679625323598290079604305922976750325186515293682148671162500190955683982089261735657861650131601214015640081293685929949656337132068564444516079350312763762694007589215808030556561951822320364032161211598799696037548716170312345239228496466005220317709156741808511286252999154120681300134589488246516766750704529886046411667004307913786400262940267556243514165821601578797254554755667482408479547692420173270400908308347081189641754803378291838128205220082046823938587486690208344506715705010669819736747045586599270562112677263768614068237883698978826121728519934027801473791692294767360258876114530596098607451672683714981636641189006878602850187879321092039054830173026193475019546854332949772046809847806846704318334167713933805331199791465354483259590528786376672248174710857948122581829533069759710416770846402096459706244348973670263570583976709667953483101231207581514154661337125273329320541996515269719977736692813819203551665296444945035537472214090201715922605744215564297627116504473961181243938897447737915300815923603133254123541708049255147546817077047644170641314786050286647904370878266959558571206494587988033160205862056251777918800927444705728347602002273523040194427045622933011904286769876718903434010384695801760038245951051286106006992646426344419733870489691183992883510433495595446728429769197443626642424226497508397038292953901802752402988591852079176445881743827938046704953174951159626378361819556628564059854275338150341313896167535987219689890198988726201595906577602029693332119678228965585100967854025378217321255112430519530542150062026125061604129799466245339182968766695772655331289863720249337404842109434890709847550988103436487987728280572912180038294503677198265988452982826855058170118906253766792480185332053816632576598273544327760018546581280743052587136938921161278731346252164548949405956869695278772209778980090206278272821934172272915635373293226541195705772487639844489506608200966918308620665305660880143211899802344761511694985423725131042712929707161398670789869832492597095929051338259490449362072720583275781822358393543206705616139381730916490819866220711586912671448706041835014309931704584629587342413618812419772354780206420650903722713479285787377828343203495295919895592546811293716499205090009576853097636312409410444707031210330146178844287131205696748022960944123169600942074746530576372853361297178163936212347720245644951922115757414767731078172055960410647655532657450889190093369099373357169993876411797422173376227577075951083519332571650538474627738789036951902156265090923671667019324816031815852713351406950855164889108262531214757021945421872122907284255477734881748036320838786397117576757346257097547412745242489646000702314586362589019266706910752202891390653155048636861892569356583271755282559351158194853156284637007971942634991841262523014941336484309760658235618114503792007917859417460036019498432738647003036549566898824179159505154597363689038934340810010213975151209237368034593331114262141408942018828516529547423522708032561778405661967885518126716380670965345913082613986556482764513670417851418987094854500188951637894245802397082380852415654024721607833349476093021099065622218489126878689225077970184516585927294817631398216655425653945001456648777475934987291190957115185106581015800737664421974479199552718176895867389888686627017544880662307879734647862690858435595203857032015403010430911842939464671568134768959757675744999861428405259122752501747793986430365777290943656652122767908424143537969196671506392383737893981685068267996965746469480930538456333822230766311327862016610466174971804136921877160669341925335338459652382673344348549439347476286196668340330339972029780544476474560677852391759145252248503529770992287574367031124387451000089497970059177539804784216853676422446835629007095147229548984368577197159073653113141951063176226774740107478210311942485893066352257116444654079596124643656303914148802696291831736915422886509808987030846778953103468774931169562760206782081826039795250780465973873516119324387815433642629513382351682011763954461264553323437111330776749265402980178659079613114475171653300011433848444408798114570387176534553199994178402022562013250027837345828735956749370000634486121490382350619167150907365062009652382838944016561819040929603925413177996878213002978590946110689435636182689119337616376715821866968643925223552358362595344982306297879298873764746339232513084023991426092914720001895979050679541563760180648513311960532597597147429602052391131153137858349173158107599737790376202454574079448569438665679296697386701076340606696277377870768275809489498654261309088202658680783937711853952772380779998775805865936390213128564323902170510123608171763481546312430129903243046173048851035931851313410548015689030146251689633771065478040018706446078201914899227577855259455706434687526572418693791264123225751703956114602498263948254814960557981400397380418394563706197304687966531162380446265990226637735682154274521049167568549359717547433504865372499511457778388039518780289839530438235257510453693199391541537001064977375840479399731283804987512095633014858287438594762490840030467753100924143496937834841767659781952425805849956645997441504716642763684281805315463834364287944833520566651937780717306657658783113143284894502223070564608653241861096153975878520141810881438026413077816106443868012092322468875922180417763535426374943691729635100132127754359371515255898193432762932884845163837447788731702535411654492448689688898335731018098586014842516228484889829249047765095191121095744464573770366910676114706295310100040819595827196598605336153136086289846950676991478616340431841311454416801249006362958493349696536760601038382657891361953974087120313337926241359863551011438752336577613109394485413172943514520188243026365769530792595867528190603787357241935046583657764359386619229065025913252051980712085066180143985827137352055700942884985848042123100775536883829857762880390942124719976295660145717610270957738053223427255558390816412695726393655019186197225954420834699599254087761775730503647431277927502604217787861281332125512501666889373739447922758452563974237933939954369613263935763502708185337668471765833591933715973630152419112985142804619697933456189890772253542749909973175549526762698466435832196707984489347411798838592631365380913469129551154663889294594941075590887996105772179754076322618455944197378959746348870239024047245682726480498704903135762079485283006491965265794827888746212214268812841175528834050529217528979686595452326616818134151488458568977758345783903968986499166387264627655361262003963785036845421260766672957327734401657321394828044468286027569962304770480846203352982318971446353576417637146602413232746707606056616259988732760633309381869413303424681377796981034782445467887992398570091821346405580408216958495364369529563269394256122630406945843673409161541827506731050546267572765290387827153028200123083817795036006297861203246773622734784337327394059275664057412994965012476573434268543011608252439711524391000928851829531808652801299514277215186054576810074841652967634540953452076775577617404140025162390539462943907791286489963419395434066174000733176818102152446371333016873147937171280617953843963181673245279366066194464445906700963067001603193979216180037593122492825541975185834390562766959148740227101700571275886980620571209086950695366530672600450872479932772580610707810327736152911662063398657544039992986309013502503898105231564042413869038402253095032902683493877287389914172758533772588758357848129646440114296163954117873119055491100447861612073605210170890274670259558780203208153407349286458908816187110545291742315264678877358516780056408555415109361539440053903327290308111720436488959794232558813476817065485754906224488667278563262676599470752369039431289316169437045439786928714548859534621899266386679401326906939660120479405287943675474671955757427683220068990125072081949845912456867864360444209090019747063310508334366640821956151396353250639337026976102247258351561128119197270797986130661819960862155725121231939985072975411649857164846370906867590894744401760438863495785682321546869333930357655804776399098925536635296923741987588573829544056900679222088002804316490046378905102565394647919673145648677366768659581281074663408865443872237455516432029372161669371953480947442295933442007128522945212900579248759603295899948266816215179574057421349464882037938973810494285524434651743572811778293504800865845981292927747456059128245630952796880635474726521878864883631925925898385985118285071081518845249290777947911939680807342156365558536530868521538788050555904951726455678919613537636662786128540944601311737435509099212562067685178924577680269331402587058529635429947360810831605498756138130456654747948930150301683799745178520818951124068205738112059381792753646337245956789640769601373458517839909887576263602954441684383940072778930550209054774347630814762424766687700450701065168913023208291551564607802966056778198008713418857571282366806546561937097065867087523961855805841057562395262445814210413535923661239213670456483125625475462386129485008790908636837980246905676722673402631723040799719555120230934648523234258067818168638880118475681576896516198172542865989801996480084961840781012026449714101876432402086648711355774560823154668260796420901673702774297656179667454309374534630987697357813244532231473872218600738983511426943234120539520695731408658437821796479369037280067319625849523021459365689073717009164290312726383221074472432024492730546365141660995227279006309273459175361263133200809811975455245393849298966932302697439834688832829739540054376432195363610669142523501993964477918994354483643825246513725417875085568390626506618963642026439812014259671973218766970160304217918162513822727680888855001226299018471729305166036026906352858263055066271802612699115041936791924588958941874466918983403414936445867301865875247740193953501906579484393704697455910798532877454569663521848856040010811013506337597159157473085702717765300189862410290981903973457583531860817445604330769873712753352334223740500753804415006270397293296742188079004897195610845006288091832963807336659342389247986694950410618161422787795049145994010277903820289907857087372613844834665307301664941087937615087336840793428289999304865966207555716340518845939277764416527153371380603086995227850229820036051079282971441591167983821209282881527863558519787556323603939709086378789084521309725750127851759060787245712993179347356979029446678062366915798730469468761440961456817700284640755752354435276286291697541522607168029799561780558483105322902781145942848542602984345588019157977656501362108052372227136221483689388198993420538969657384301526388204532488931765109228451470303458682589028865167061215052501433657821787816857955859010623510780764236275131812473145572937329150744283112160325668547299390487073662613894031953195370741770126008988978194896020269116296276076055274322073557255873161595736829916494919027955001496247620058830690962992703221741819640825284648529601874732072982941948645266722760829370934899226470697035723742461906554598606575166496012716501612095522272967836843983498922558615584773839456732502562016327056978352112645006955217924988079102181995445772525621138792833356187178574561673589555348400465095215990405313812648148138375976471753729042314296191061374380107437741180222721710844951388170008032128805911488056609745117777987355857929683573400894437146410200153372167717933718184475343544742373895927283294019059362251839418109122811215316694769759387968801765500501919444725666922996639433754879516613607187002495098657110748435764193499386595923395239937046051802463426205165498287047812989597932303564838486140044363838780015274090848792002661405033302519356091729183942457908258632478364675444080336494165722922073211783947044772662153463322828741330810133406405412025773650492148510073725684741537543952511578632587627496686726965750830952126478513945282173404294150635314964965483428485667637863606569682370237640733504659854393115085665020353208543284271405312870143088370570662906733853661718898670199030003728132908120076270771866060338796477897318890304300609113907502470754926262597374497449169914238282045184733889801540280821933295216127042525922449733397933307648893998919368734254485939490980759102372629816571708953476614913822472413480589834130705002731849247785664310356274194228915001116204830792957609524558273660475524609919657967262894363870381990721230309810791805921653075425958173462970864149500702200786014845406626435374515123009701875276379152919176372025188446014633335938677757721609020447094527796440328489411968272922407869430289920458921782802662040465799395265465197676161637116155784977792421324134586411732828315345623174346834612138045631490898701523833476420778061138503486066221883468783518160491781199900965672946247372427952565859304648483415480527144158000455946005263040175473914919294593599269468531847516203209685609517103938414820597695349040250603666988478650571519472512132595734756520910979343921516456604094455545552983218264172182890136868750478981988604145320992864085478063999316853407403841610548114918876206485704054948860940910703476412195553975630671012499500136514538232718060609786571512500633861139110953430188429688012321087445008746318347586447806494714268228390416741192634082350993421686026558991359138011028614416140905783855571989991085914746892360037399528913544243804690325383855617921208019494698992566134608027406276155501831109106650746683077799203242765918898606762068725667488439275360383441816150927869693041622252337747802749681377631735245574299390898246774472510389269263650561104515065975911996746051491038498367738836299189246920109168051268346448574805543399812553250488325911322664373572899026358315442568200606210163902525676993906980159512874440217018225942451040133029716497773484828037421031873448109647960315388968578593373537440008347397047041633263939120705316135653398982785225001094340477464403249881269904525972350769869868196694812464762963145841792233746716511977829678477103497668163281718595894798161395596096277131136447654715676662554665040999485270895372772601964576093448364722314546536638847558305519356770694179768850321113069806276177366560235941390318325972425444990752132168542592496860360102375259488230846083861625671913305851499173439151811856252766622207676564691348623750988060050556920965705772228727822374045595425634019385070776933479097831766439741892190260156643639204417646590134937066436740585381125802513868875251486531425921452920306429573593187278719529604066586428346553696308153129291281770959541865707419348167775649319865762751013315136132824429406556374998690322471017936452803914954092302483216360420203783598766931541533551510304115575308054624869574370442874267146780253572610791632392722372655182703778215302398328975973903669894004363898000444715832498014834333861929646366707208533217998166270125668208903121416837005704935451090707914163342053897094942487467981359696821598743978311695983001118433865287947377918980121746049349957962612498058212805024598920772933872280262699294302517158257097361279408055098634905865847460960375099600507931991554605544552099356550589485570638558170651430617144393738784689427911748425200034356506007031983408085567219362308630391173279786548551580649778197367727160229644537590299042714756732169375677630615391807282268499849628342130624356309897828310465064628803389682712040438875895389703963573864915127709271705452807857656377341953841538976696920514623926304648363926935382227385576388219714782588764002957356149516634612241163958696785189826887170854558476908875676171070881144523578963775179262443688277282046628621781640282530192238795801425582486861857129131515882700091075917120296146910605063740624700464984306960692003251303354787853299603249362918257331831358354338728811380982464687768735934622120289372331564174073395125304053795465503203149750073034343136463792481138711948851970308968293725920830280347102982114285265164086701387165773779609732389800538135335321491464199899476551706069078849229103762350418049218069065685376708554369661388504823987755403820513009931945768985773412631905578984113612647009491837252132061960165620520127057260232587099632605232205566896078671558240177933956579475271011309908412921253388987142781176075530160064719432539394983946791560282226499333177437348277272442029029185073075195146402207013170572853881637116512302169509328187426437938669543701472129536874365813284661864049888437334151448747151868965552671210952146376990203662294398685362597481865832277054770940007252243426123339513914999381595549105379177567545587779085543798722102266449217533172153966687150803284098889957835455716581325472536309302387190718582101875383383185712116979324567934611887082744171777687388944177062771400809296202190018606934787670184752529394196734186138815847344080793222313144947342391689950768964454726419767509284221167125742472634509875228182555051028576971156162147087038536588822349895510729378666920766938490447396829798995848410608207385501828886269962106537229991137957937657296184483248964601947981969882293039117557739116283606479604592860791464869889364290905980218149326150843343709140942222304377727169119478512751691576049574103503364104017886118010092772237784332168104238398916810800870518712003799457775557606487128773667948441384594119631476546752163211848694117240997837833809310556292691618480027887471144133421764576742180172674282523890636773275325200115230092372550884185564364948837043969750877727652422031556300363090286316844826543964314518971423202124821762346982505892363277597980123840412288948993769637823458679242875854923908607276271502643128267235497861279238749391123312781127056444498279562425222636300050646302027206696074501513591573469606430624678513950882366787921768474575796844191780912770827932887247922792227844929337217966104308382744862533432287237977205144467376828706956922267573817984633719381731956496609305728183101622999502244472595622335315941357992533027953123840953407672835139263461562864259857619205970255916465598431076741202236105409016091412942501497137411686727605408755034087725834319890690450182873342379630933658667978856626828257541036619154345447702550134586639391100139601625963138763003674644339556194977050458142332671787142165537779470756130731495013095597602533759825970956477326960876232559974098433142794933493171525159084692786143805659427603062836024464184390412836022036027323367345654933581012067026921201849891459881269681616777973697336987733892865940001242766964452545646000989142829426442957739973934528811327832389712191340033701938711861699589736383402955206979620361485532870833997977875012008583206135934259672665254840462258364451757716827230630118678466470973386503406833823709644799494911174821747117773812603411829708657952384275938932455387504373605017119177569500483429250618175494616661828633409459840848911707588017054237917608301218200056890930751835701354475496790646541357733323759911673104177220656302869989742505443013138346339545553869981979009478760578814429668297285146603848880142841224435600930103078801393674561604063259148206942993343401474477189657544028222677517062359343857766568929091073958289127833018504404464092355388842223168948035771252769060324718639889777326266032109170957834172737326788426400118719894332588555448437719357731258268417528834159897515507763743966131089850347727333878963637750496326811247734994357137049314874156624618505839407662680523903450850291727853812310389344403208983684130264800386044463193302722697657674532405239810798472251286171567296715869532920941055480778413432333422424065990561488400177950974840778166101784958413597021681709665445563366505372929204307113018447167930220344822824299374682983876636405954776783891693783125478203103725276139121889019428515891044554842648697221485142194350340328974797673235896590384177370034607919193485165612672537923257178226098384887343495567241501186412540148977667799650090128028098735965466227474145467839255323541892532989006652025965794442394635136280068214290140714796756210849708312868351154218144198691691013271807452499489182120529881522513538071614337712978260281970432362543948572395873351490869569351226332580146475219104459782729403294831247717631253534703135293105822995620657661889650022223307626586132272711574397962257004294932109483946999058580054088869815308620685388719820655483545945810365018712537887051370784807938106174790082950093201158347852593396136427014109720141688881590088404076425859307693870009189353738360178603041894968270182115966675568312676741849564689970445596806630136063623750998547428132492317240220858530702915430308253047446267299422280114944935800212543509030425286234582160391780292904579358033401808969626898492308445649975737775379984565432445520532816408877256752811889361714618201278468454070271141499492498200300072828897857477944909486597924950015479338754066407726143672131628621122348870790916979603353498924533879673508183261104522060855655052325077152967682085934418211785571261449468754932909067626512283366564509283551514633678600099468611508304027148719783874687008083185732264684931448095954363725050508335328297398959866193631227610929587994450232120943024540348446025109017878331983398621840009627285490968237875134759003567182970919943921607299005332319594181096204113732475156627169881334371741217881721819070457784790994659703960430637736989730521122008100479494001175621996735461374732320360061046175158263935251441796789301439640607528809150322340508888559256056080643695394341139325905086146488055315770832070467391734060837629130378000114400673531628235698209370109104537527222144531426261123859048199565981582997095168788398287861822163677501084500655473693889822822416823600532252456700497148273076069593591159537035524649219282476288150636015996428004694413761300937130717533645849846434681984944451300500091434223421916403951577812323456518721559273846205815452811875465573981580349677292924722525285758212800593015799901792046403695530047966242959400003546814607606773714861718655596345599986422510296458427125434897550353491289545214026426987803647460739103753795325378571844327546876079930145177222062119503463084517482952448531796671357738538368173734096510054028368312453980967026772777572379017878205827076689911523517253455934892550227083964305717599381369952470999924196957195545058104447097365806793109928541068328097861568537754593278657268784704803295050376090204965027004942555283986004669028373929357152768871073143751751726431211292751421922979695806564554686245860399886382247307765807374117788398858052024336406182272739089210313340383396716914794180004021599722464247629591807471691407123438478762610689438980119900991378402631630820295528756163301408441710777714898376459678857660242724528399668414715649419875921949427504620550927749475007225532714826500785548369304214254514263060575656392551698452415570763724669097283073713621576365485043765941708016746304854769747739591485172971358747415295596000583908087983545618174720604001844784317041225864108543015842119560031985651264976240567258738355041444516877773693005076372585825363491388372393510522779550527831736779323717200558539345485388229009631219516731853646201340450757891388362012067113409264205701264289921324732735915692492227524285320956624099576399868513579355532398547608911420919157108382130770801358870460947713422055621389886670714447256971808947596694886819865093824400934787579421650764327258595336199813000422496379013748743955530779356540956065351756979079644564636229368804281787478108841301219908615784080167387684675716233367059365804152455610030295419843235014858225937699627756761036715034429788802084899227549722085651582618423398522774277510925256426791361113722939742726909424625048470980653553546102835533122255932459788902252992093986501469453130852414362652227071203349646267592754717769815434630543438292350866534084573941691847240167317009534898860414842790826672919349705732176211116376732031455294958800594371885904957509116560411480739337394871891825713401707996027530415765640333113331482993796511862564409410004836380552745809806961115935730044258914885763615824148980329714618998249584566321687472649010332925101207587800506998897387149708298815361472429459752750142591789914336082608384441975015069776537478335241625194186451332206366961975982023924862191372683202095653866125420756245066644781292029810546816634791459771800283328449663821211507476773601890780677148908588428470186318472573343259848708544848380895427706880912526234623667214283949534409189552380677752670250289979406491330035140100199865100811531876798289854356240053555738180001971131387422535798392598268130328822567009137494227812029571161494383494717248023276019228417677219666869083857424744810094159008471703503738037378261586858239319756034244063505560611788723639173872599674355870126531323134099301915955482820602694571615033811868161679978636055298138581583403633326183444436882570440187352111294459607396103281875502808373314784499172406796929250171524860428521601564290955382776394252325804871214286658019765223461801543093938930172685755169000478077614325635940174079256032014381495972234095162290651788242266464446684926586829041255243180068483274278733290024731723522935643834502974509828327141578973979262711116035359415876102469471318825502060020062045196587547924211045828737603172185063463501752151459835298510756809522056398493232682675547072909308807278434113244532112724056357295127640241327812461243188909420340901219628851581407542462817929449244583510331874267470887586620830690858043043616198145284244981957290635377992768958981211875903132301511694754826226517555991703235269632369900224481832990819893294835196957065414371221928104360832820334334023705274479207788507882335099138735978141725940996201037282234009174854623933516575113823755103010414597769020278722896767625137576037095667938045993161189655043457954166447255144108404481036447055574750525620053606219824291759438676865977139120826360246084618796833799480260534216688496397328256187420587514359107034863795246734557913179600961472072412815618797176774847377405890504597055757590098804152081520949044342002266712909376624827701464080083631261264900404475521634877698685456991452536293554896066053816028799343681141686499775717198808837699490359879342477491122757688018792891562829882428773522769342550756797006650934185607461737069937530668995200416313465045947082920991653996029044389866884550193599970014573932505936190289972156719785497154240244583706661714754951839068908184782053707973079186796145264922533287241935195513449953318926071114628739025921346276357261196920569906567736027257202856985818466588791479773458790838797227641702538407067806630833756798283658298727392000209545639969034939456275213936302271810065656521110119296152705080892599350284141307494252707524580518446582780514058306810125696871664734840776217720567663500056877343308128183185249471471447061039903452368069237958495084057067047129798117885893825188534857594662814173923990547105821203681302398437944739851962142928830422354918773284117233102462563254110839160051445142517272776662288962636274140111037828698120432062238284498705968171960634479172956519783930287500036237251408203490920672273836026376316930208578790133140775594268574217661522407960363635479709662780649776805916475161564310549317936259093693632486110623006704440661592423506638522021013047802895021784326788081293433655278299587263488588688373616845449041186768136810983022677313866443131430347758029091034438616552515878685048189254671126675776434926085939522255436808576842814489408680928041977504384820785859133295674208337238088623745080222433112541974377660729109715898035576143410883601509700780483133043950505208271018633778063092365136580261272985252535711947246960902105631257257602383152176276438480551550836025867659919987858210877108100884544454908861235345403150367120203017203241080286386859731976931672748311451136912740354740526746776833336731883068945730785353598538909040082790003456116554637295885717038761231762052032531728737662499209962048807647711659749509246064468741796405340384894579549062727739090621120457276285159715300980598319962079798714729315131627047893385861386620416962739872281417427347136713340876768808565540834475308979722513036218088302288795187431093882102351069384033531628143703776812147428988131461068759460458809560584363268539997785656313285348286090548336674478671646811106922177850779047849001392005110684052114202895723772448954763747685412180072747821564123062880926009620557847633187393495126537483852735046840149948100209201850202309134944236399028340928982845928954100331239580981905428013573111041845104581012391595483047651787306132546339661323797801384514052038381467215194558186088844395157932049613896591576646651883349325128483237020677009837575439619443134312836391756651427172032501744021210969021455247494504216754516623227824885374840498697151915337864416262288090467951301365462832202436672751164143050744642612504335907401673046819838943635119098603870727465800416797962269247477591550114284739181375418027665290492297764014597729023098397814370105069633860772556873022076899155956038868958299788464702237941368985612056484168280822902252323646217102092078836486871996138557506005474000569338090621804636674187223057600762223085211858542319137584883902545432505876534942207044051997249296716462808165202499674861072587619144275939864103834934549204381236702460455558269256914615222989561047539591226631565605442051281325452803014653508840524376942235514020420902897780117350640966648810041382453739774320675567972464962865703116658736960243066268345407945266662626616622302040359292198626158049839442487710237983830481707037950768911439212387918431799261547164813372972331883310862388383473880375574410629311948595511823904812620485550292440016821314019342444973816092632791959464896450346147389842013637940774629498062469056365741406036960042946404337674542960860696422197327088138335260850189834489142175025659584443545816992757441663866608579005109133091291034862568983759558641690037466822583495935956324768707322731951459586685145945573126667568264781762415554907983305483927622755350353129360054201576208675943525459907263095709893201813941325963325482048922860630870167438816506488626769616691442371592147794631984142594648022675442872913546961451499943117221265353515850213792581544103668799443593368377538090591074505908168310619956640681133406893964132234723299402516209678110017275889079629875161322108794080155973656111407365039940383517760282807467602279710089936709324989355455210549404768426481555203670092633959613852621096502781323726108879843266062050651560950809499794333081954758210912875309268040847987226085998340469674841466687396688387595503018702437022369157568024021610489463443523380738186789178358382396639168493786346799426875048222799344660993353617298099855371410679235626466062064759310140267483303219979930942920702895460843526481799797911384785580915072388692633824566327595651480629220832564649861251739945357986442338890317942129468234488415985847240869889380622068302927932994337140803808458152381952123909326313065064301764217914078642694148453387174954586191732002937149040059194973580953309465775730719013239361926933916498502616669442610035809052823760298394054288508668872167474918104572680057969990607778450902275695510963301391810782811228665856732429832287784275702997665840611929840622589223222542145620537269109282243222785056900538748625214808139328171795812590536686760466593845238836860878904165577487587998574499489942411005425397157646997422277007978847762175532131079676116051988542895641346808556069050922200187093697331118672040518345966722127428383685951779652962234535161894099223640843544963970561430717094727840853447254143771777873133414156943426535520400095048814247987958315073255596367760891022784305738804002244573530604400065887572765496243268442432803137890945912979584322969066625631550971777490594546947958654214728682472576156099035048096639316377166105318510692251258188429354018088589168979018400169184870305494553876445930340366372117534729497431906533142942852095742082714890489919594211577564758965740926985379801654700363775664055970623486825470069284287410793144526410941304452938986617259354658191589560520295563117684548655942097914401978616356744702309946287037974681680148934066527510497058938035656167090327449201146662098076063853395476963607499491923596934091909496129309166980019427570827427407236650900767026645404331448917695295068020603927753615217235120354095864727807855608135458485555200674415091143719341989140013661998132751254781553822873416894679412989010113309406727971272730498387862429668164987102163005596007552052513900875806241499752959413140645383628166824066254615780036912747659715252356873394761392325709033138904231144793792615582937442450719197058196881804728118840397582645435100788886513211231989845665708198134154361590688170275828473807059445380976999945932628797163644344518408900601234206344544849698911992978704366877326315070010960871379117934832348203213832567369303618051899269908565743364517736084182698648856573978117421245036532602339873366750196873569035169308169816048350793767646781080825554980131089260276460714907793847436311374640254027918344141688881629821936545314071983813877537133271159155821802711560774061471072661549295861824116626704290671741129353593934456926121018892144236722001101638177284656153285191843036509389690412677333375887997328594036359458485827032160041737123702536022292992954388385836574043044140311590994416835910302680869209859900983113037928511040825142689597161250944277936425494306112741814681238805304373485970724126336388410620008156031379363367105023547181243692122943702494556441156813858609887701265654124871016230397067702296484977834611824754482677302550264590645658530506912566572804144184975324248000394314349320607622788460424912909614532823271217372921775142478090637489853150773678635899645405430040684898314147819393163085471108369218923361338572019818067149033146506696429409429929078370864669820081186679954507107930255159825773283570085009408319091193393103369661759925149221073161209858657436704792080173201495430393372724233134921122277953398158564450116962689559772546653684561576192296941390677054929234580059734463424422518209263578781069361488974229787613688603122690025280587085528779739243066247436534694864327888629154640387745790633324026002380716543905801242962503910128287102466813400740047799703130272744955127891229609817710571851948294732848239320654687460232019971205525615577439343144027172335925421566703349975309468245443524334696666310497265516206625015508844660725108537520161364902922472303651809448223451494521450835925269974152792711993534727289778299081878425071011070488771969778981584278489573387161009913468550221524658164583297047467864878153798066840587629178015473005454386734977616062616566552776681753447749502089387098691682936476432163122541639625165608084026576858853612406356714888270208695548028158787787673748426307575671813375325674427001028800652100999555429394007469130196048638809459421750942559171412289201406075704386999527630298006831961069107265095051488862188736787582863111646977146931297821606896093269173237872393262627238449567923326889339392007903783412825077414108560239394932166438638045402516452786856411677060660997218826013460176922419744160767822740758278699782561000933863188692546443930274976960973094102844638776903559033441526926540464756234263434246488857441156019012200342562076514330861810636786145715944035305694697084243997672199913067488753749625919635320278925910649824082239032441778733479791885951496297144672535346382032469672509733938246056334348122999806988872877570417845553857710790908565259634781375017185758412377950422753857127595299436517109910903359853045256615781625807881365642229626095907177250009316478229039329204055211926335035189249268426853782242633971591489375479483952338585909892155792702864645336870179941942852141982557468921990106932527197262831671039270200006252011332501232150099927367242303793508513642922052878193625721694245012213833016826244188526937183135515766829562197358330008818224561119394739706657427168796699411275317672749288932520611498762212264336489888842762231749888338804762848185752170537026103002030804786877560313558420846073378918967249301964506548535497011083602310214817940102612476180902540553497012665227854441816822401247555475560491575115034083724091371122754197772312901139473333135049017085681931970134760174302255412046124112774503254958478356780376481085934542030810571185494273721506004438218205299189445300942036149139351853716610188829465962154399599328777097043288729211596574677936172078810201633489370852842675555938744087167471924133497589541220559099661730360821506198666338421660077170133933617828989141798625756256262950929331329537701108391575151857899640139245282442583565088817016409288201959743808046944587322996627718189047459355258736167499181067180440838655325860523497902428976312181384554957794949753127145954609952034032593124520054843076064587131287877213615386996792377336361874065603194802626833132841022266127520198589928477208122038177006230982119640102174178537823333540089833258338640495671421836214172079158794147136032599800338055226383322644843661937312327261566835966824347927042826436819369769731517935970634651465265652771112997854704599926555061872945461812137905975667104404664335290389209270924047773110451250004668160461920908711237312953076468037217607900781970823454211303690060731015866186010738085301979244757585478687749943377358569698632728921834661080073729289282008474203271786198467960697355444894655621984023137953370414004138728098632691710773151312658693129434801239294450734573260179362561711962050527005171939951323541171704561521724446717841937124190853511213496853456539291141271241501319250573473314933115065405148527485286148053580530519721437855352447125885022430694615606912253759332240127744435292112867675422322479276488723640529996689781946017336746202635958759624522995027114135202110968173887525997892876347321783769558281152713691231838363014109467194680075213846245961744576545047546358233866133814477732962397840215282054693915671642514415431211599343007155982425780511924847090718739250544822637311271707102428971906410361884742266244169833028755248869870807768790114411998632570314710764779270528955957278873798814069369164330902608230733443264748134008409894853361018633751386215647800826167833987893197827103600688860532411361444302195617769901375716757579517283997146653558446452831757394961227486730672216485735615336034247069913322280286198078114562285747069692601721136404055353988350257081065754164062471316093851592109242184820820124875088668459066112683824823047943085619630656222145097569125216427277792341733547013116713412589580434114081256718168288702345806174777980768637178925741712844168501737531183084890025824611967165309953904758308820015943623728865606578681376906415375080250684973617895145994859029353519589099754310472978018620042706694764163122265446345823579950246040949488277360781649007755041616999384685518814386812751498249385383587973111525959226277397260578540106235851845583758463222830004450429662219934273679773300916242457526628293809406575719841634093896026607133313150806311315538420896914933409696058625049905139169883956541189137479898499834383996079660754439026258216012271924149152503250728330147887299060099746947242353681254274357435907556516047989793142358012071454191366300629943516951240505296606770047862842231933384195990411991417646963541804289269360350382376868062730253543699210335032955769060202575542872452629183605779142042772305499364519364566199144982365818532637448254970664484261532972202526770722390943090402912248229637410707454251721512728592509817049931487306755320024260947318411983098685471712716341384183180037086478432340115643590559019264517370480284051896612392339055523104764245789725980768925139413252193757653616333151024156942362057407979188580187051504728640418841857838045873748776925035592206225967611742260703890242652591740724442527286298746756626869938944449176183989782164883863671368922006956328431237202140330039027591863950710728948185791042650256666049623367876171388536125391555843564785012982450166688225343827139653118856821016455188601801843017924899648491860219879586394902163376936309657408339626381389298275184961289230304226656444693811501077376401000858721104321070002937894887975238324767921400046164416214558233935605057361900954766149629452014873191841966620872063562032640150566053341208909342966611326553616334189240708741887619128200073848208983343112814612211963128706686610023568248064318717824164823315187635942643993486316030022549518346444020206114938409945442020061792655687290527632321540947646154339069120827634196388789740409547056050784497951150447401056421924251434272003142481078912157028954829778946490663741153801963705859872999069247873609445617314753159706039413410862229566494699547508684685679230427580191479091509994793782222542322727081998418618417824838181259657242555020468715094465795340973262507673178771941675338859069168449718054358219076186576157668838489001164876462385248539458684898612830157846848558104984572392366712841548272463734276614124161101097753968274608049189452208019433588571228335334936232980968476273591621868967806680363708030194080975339850948683982343510191353223627977499222037124165776015406806562960711925334814718956486875136532764481578282289142161074557081749019471419586960495673371959026480052578113642189187524885939574683765939626890397452701545099114220504934000529129133016511969920472924774713621854213106039509248052038335090023792073005306504443921600471851991394817949599359203079482305390753286851596274958664789643640053033103179344368247298066861106879087934390599253346016309672244828111879962533774687158333506220244168015050502958308947549617154089361575144665314580587962851850865584602779833970772950450759570529014493984573007043507378219152293109192249803516802430274407478163051519244129636051957302921434921313587856058320171450388111325957575461154243494787550246506325953341197856803106670938230857775776472900850931271050625435314563489051563966645727522685617402983416621257758978140852947031579712604388736612260508190682887308020012911701454762778792542730923866374617598503114546929982930540638468134413001700755686539107482659132999757786209243607567361505955291537608060491424512372421954551846661223455112150824920362707494374267959413110049521116449510398419097541105508508094284046513262480838284510244143750208065253690075437955864391722307058809790353649447498263465757814612336847522871842757232500078240492233318360607930944372187443699811631903788700328992001810107873713279247024402871816139162526856597671717794690468311572498513541897027899148702613968179092861330610482896588537240987035270749782043064813560001521337621770423617069082648641459912321147837027768509515002406333891441249869952820105013197736791424532734062968944538374191880102297086748763657068187807193163047527102188514626735255611113088429487601438794353318824904695015627394703049747981202110938797041665681189496690985275703440885060091903496312945747862123564456763528868336711720438276441800960239988308480558003858393489345151315442109294675003475459025148882932230277529411607758448089506310031516345503487280963647446845965219569764479318980215124076702289541581066872629323450331045825025003556925282504171691334411773943349650220186608231435870154776453425912536723745961682275186599159794240898176170892366179606549138874614926973393677602506586373715041300811853053998904858801320649946821707282756781177773028190069913140071405318344627572999801504630963334008968885598829000188309292064096904539315183066457748391472172440666634104761370095695860024524576797269316530707445800456980602377650966268774812999904192899884639737874334685370662787308816326241147844955756226186207615169079675403058551537161188345885125669911041954766863748877209668836138985526030033289824057202066172142840401120160654082071722173960209230734302934701606721548519065943366327252406246377029567086671241047536932434878528805831661198793102922672316809543505992956048347716027425427865933545174415399199830283285783935371370926587967300303543151624670490406178416151760838651465904598558732476947210608624920160523639331445807366427944288761961793782311614950721431710016501428080627845825604778151510344594781677115250179872480293876031161776901436661684489428211761356220529890466345570854736654412082141539497104417742612239702079733492731744012066082098421373195050585076978760311230207993088562585451504596945346801532698751191245602380255733775875732645213740872416955092979723660352804834047882689364540404191558492478142887754988617711242516258114742258540883586089845505125401002516583095679181167658853052436907990545128153201742098830201621284402687055773844322525137129095449383894137207761890968172967217858417494502857209444816904996755317995364731292693580650586778984540860043782133749652726580513532404790643316790180332344777035549904582635395471196645854854649935878730446222398748930570643726785219982006847361306649053185257494597444739856157899885329533094481445019235557479704588556630911330635439386339456676076910411511929315986636868403551379016574294233664280810249279628705411829075200197284600918740550477893892727696608710717053890308351134080862847440967769316443886159480677045230748489019929588425715085740743501801994375276272688902999097207473268893332702375571901307876384724717534142029383454235509680062182500929079899704268976237497022621278872761282800118570721588635356637808173772805610344003763892073220733560837349242994696636487619444845141726067940408028309745566098057259783636978227545599842208041164233371451073005285665493574589417494630387293505167667476146917810382288982057052778808542614009173719308556097599552985156843629935838494245149628381337829546576906828374263923546087055015801228245255146250188280669242152374225792480811778880652226528043108719582384906950030160003513902289843510411384400994867173742359231282421832496853214841277664916513239643041339992064521501489979298339447281467866831349347693596846064880167521227097856888308810187355792069559470150583671674686957903115272987187973804357158710448178965532589829223927948255963067461034019437874020866603607085733587366613031590290223775558572237308283302825229524050488747555498215675356142572169875544974415689411122832967731849193993371130140798921803167973311627095760412446746619158253008322142750948560252783295931369641116811890763652001281764557469814542918999995677529380395700397897254111681976831786125063155155018925883479875198641475898028007772741437532966287162923124238183177669217885463860299931597042486726737753562310357549387458266431920601266604576306023790355433488939626006864294242383765272281085512544180438572180749595513592973200890312169377213913724922181750522896930794302650721077484337361218807934308735114788339737735693086710601638762014905579775077913432632479151844094045349647913594696017784366132760882865631299231406559041979716280409207178981530866996683308264802742360704947204180074647199232549649637530919858682991569061254048061457945629947519855914966237184792883111633817542916609971928304740195078751235279871584303042148694152347663656148330098489987920786123576399010841306113489277695364161061782760575106164529650986652242220077541824555852136754131610211779267280286308243373981482979317742945757623337622322094386090689758134451280530305435949229316474873512341541415436829057953691018063538047623178396270092818641454800700208977093598722788730866756586706315931668947283079983505791142446210622686825847564325306210107664423700125404786145770508014957597749171740935961527274671503840518543456590208892447240903879509250981664115934316982482919742620233654000004365896542439102164509263842846070750012666765210686587491880522041878004199627224536682054768753283424147584062547407547012992249000877803493860413096371201407239833150888214284204002511833839533858605195512942660524985226693615645991228333340841917225619496559919232015289598463259948660993933386842511623464543670520905208737226319706694940056459409709417887428462745901234812323076054834341158641811696855971792823011881204051101444691911297037458430034793698259373672921372448406681838356241445478321021533566535536487175088250922134484517084994820326810190023738334362693083181402901496687878713169866778705233262363326085446277872027390703547976150310059119604684799681604162860072064441007884794502891158531544302688916143994236658790517285621196030390133581640885146958984022967764336289281424615589034592919574387651328246055108721830599917583487483969712413296512744587127142183619010811924582286778550552617018724245869907635956344556437501753861561165006909656825409647170848023853226288588890939215423911103284039591414554557631152413431054249846027860738037140123263165970122586773764061845668247174741462621807635931138431840435779363987986398483152275907238697634638119386546806889035633708276509478815340660518000312888562446103681129034993244041322050976756707754442661854029546813617824835393943509061033335184217067417288970060038168512377338656068213561777546245970356590421063955784625433266688825964806397483266671096592111568852319162730085313074703667015790380756246876042768979529971711671619615542938331353896900402985900822833808509393821362742378582583738758357838122345986773156041140241269092931227849637894902156375371231184252542053446352666941644195840526896775101095768426569970010626427567915056392812160103128073555029099455876116083140526102400254139350317440023411426876825205301208182513463160440147668030893296005653297326077936122971568491161764307432909818891738863116187294166952825417449484565642957852454147336067422735760085097490657815567984728866439571340366736144140101390951379677210939846617480850446653648791413594932699972697394441330080780773457247185692030892982119698869907894648562813100580939646680638746438542787450009226688325712398935730366281836121893089222459372954724599292451963038270071733244141030546048473198815168898261156922396767450670272765852210541777361619962705775625962743517899190281174603556830831128510122144526501606666383648083992714429759775100660225788255231393500812404481628021835928657574202954239585361151942328733190826123076633700587478217002574993164023961071189032971598751945278257676483488244107140106613280674005919409122948201809326910086439539476248102968731298872410245834128113823886392190719832841043636813900474857797932868731078987052395530645387238473839880231401066019347557382728754369144493985081457382784292516235598216853682296691092269823071034459322306801990076724572044471061224944967159431662795819398780146272756040259699720709126982918976995962012729740658675716725286582416949827967003883392607903317764806870093619223532556184013503574854412046711031930639281797824874803471606104798341273073460342031453536362959683188868019079318188354412045053746505198186478026744957577416340879254256479692896242772837765199696279145200326738279125114054010774829492258812804109961584185800185359408545619067623474393372545037121767864605621696512706853056418937950615424167624378117681508701271094165467921856459815829001662635827404157476493866575028349127847416182388152585616851104072982382130823352847638338996396220395112847328750217043105343263969401513853055163698220604788342798105779954752033616323596043062017786785545065007320468784131521874856309188561249025540920774639501724029701228004748215152898409406684074015584554482364620306087907384429886008567598177032650413876923037686963599076605902425137960951599082755804799398489251226409704928119843295949799010454073248757989613442941317850280485977245592931582790151909967654328897979685288423922421101946066378723957791758957851788095122635735831826379372425328239471401328041631579286698092817306352378145836842149862987771485231497914136250435191564241645945170300834749638421368281589814122726362587118090306485276876957015203757859453430942786898927021318847758736166916774175870008291799137161246236743976852330875932115225631127061566280163972398005142399720517776071028425059726148373532891104204941203506968363397935633721768745960685862874804274889178808709514457815963212262467778889001397402418041904798127952465101532804027525052125078202938919602549535159304637624302007043169859902142842447074525656629411445200116088603603103516862246947920072653843947125834087712181367191633108312862461842277924358891352640223520124012898538228406502405452262578843718412706532949014694123463448539652905651764684435590308421427909375993873686393506335788656195791079407780635761747198193516757171443927182398248363623150752840879293357062550549006296706510414358474212143488426302643828949079463634278615319472501217325645159277865865660562424975665586755902644148065791951407020589088167803192253115414484341490701206252238978078615211122956034624358435226485632663710696995356303978192714229676807151985427457102639963004133250945961787188486725772864167037380505835132441437601571039450685952743997415297603054151463022058166723443153713195366977905205946302466109390189068577790355526796233117792450143412987809712816204060461830595714084520285407434478141429516756265005111979248594644695740836594440526365359425321946449873812349852746113026737434559593043650145963066245440054024404133375661455845677294413045727236164251985369147953344278619332184843989327424093447673580874652891393234621639374891185946806325788212228922927773564035245310883372120384445377150516765968582897783932298843406705017029428937937185837169867915708155898079482245008953099037466280396354439594844438577302758822652774109617477265918813613823362535474786607996391298762891323642163494065047881661637148106280207439237296695825902166040640961591710817315061664069234642139147558475989487504802673582438162541790048159633158663568184938022901808345957736140035001298088218482593021320450742247926326938356011032864734403268349129638586005181660349694298095324752646415055644845567782887624972496239359127569398732341694891091250861918646161621866714510845925768147914122397590936775571569326625821930019220376838865044046934741883664975623372331546377859114563815562545036878616582161171330552512311191272120335611717597849579626577102892470197327091758267425044469135434336033229360081180996864311201659220874629659029537629889198312918582409011947794554635547969983899729047637526571214398840100646948037260045057995243043665677209986360220149741816336594541591402464182346811170551082381253554197828704159466440750075224878197536654706400511852359995903282294035821907427386405817556318133701610434642302024392513137752494277650151341506839069263148805766248055842950210606453607023314948358283284406009644125223419390734177180174045533722972097368202814518007084174879582785591943913904186487255132097721908423310863709573856428878917942786947507565465867669388042964450837834693912676236340261457778620605307097136697853762427382960214920986105717222571752870580405346074383721437894007695870499953250863155442886152081653708319819419864002849011860194252838957774084209675449575805156944002674336294567031391975143714644419643319236278820435715866826376248604012664275088378308753545253134179468666973851231618496563087931633253025125067749134652746882963286343420805865810714643340160940773256783814505060467704572110881635544887280345274380698665106332926645939937614387284512712219784375039646522633637579631149897284717150315001956884952371717306454201536775688795072135513592658091981113801345897399107333130206707936462209284386232323842303087983876954431529381314735482911418125759424266851747441491468327463556165624619545794433907997348308925784467894977655280029824555560270716022748986839459784162317411655387426600909332251508146216928940816015069648073835984808187644975042180345377801118378366926703022923865585482968616415025307415474662248011029361409511233874919499515848493883031596886798908112641909292770625936294377201102272007366829718828080266778292852858175090744808915830609066004374127387543757528631879130095473407441680865627419561912690337101889909328319704394365343617639953316290610619778575903965319326830753409385116513374320881137098857043196049666414980740130609515461973877318260906551134772654360314397210048387297270044948146449962771827743208121949039669276317803693707808635704545993891191468599842995634940906115546346614068303793108727279984137268708699783126501074383330680315100776983804657730567507325960458902234600092440565993854265968222924519353114090692343219998917736712388292912385520784043946616548700643021067658368386614804691153472309258559274839590897075192685649449550602895999376140686057819232030557326076269045608275181973232532037133448145920823569452127110683203209132037016612150631515508681785293475346990045883494563539205903370903384516140069129906613587804213180155685247327350592920904229356834557849323747976831799763864535096761024588535737988233993789404705132605239063614963809136456641715959509122702579688334279865826620322989901891816153327478414436833217148355495840892292320733144568304343887563323277068614564360433291369876223459723815024334995054634528698623514622379912327742144432044994947679668197311417674783543415595440948276699715501459130611222798149982652125580869014760490315711350861117726467479726564005788571515301528134278178896594447017489995096529624960638772046150154293372974946982560121962696785850209264809617550040102275198549856076709512328028378042935034378205200283813211535798144719217241993099971035149103362909281767232311866690281561887584995339991288425111791594558378322193298059448330721350317322419974844041184396355593175942574187807322004159395590895763724116875345858977791541935446833254699465653865381796202432576178101994733169132671388924762836790948495981232840673555343729574134064315382507225753229256920781713758730994662617593399841963144917921916723180997465521122165383688180070559095792620098422899155688346878364582742851313622044947351036477282035263669434711951344165945830419167619260897731121448126453756466082924785940816871012709063252297696160485758588603989345151209191891906991220746482345764593066077938969795914808403405253792784501024354220591604393200040172345415197814299545526758225246269540194941872594255113510873318858529119590039686998961077376747542697819322867765214331651682207336611927136130232531512592592249478522473263227789101226931445706922690556920755600327343419037389749778505803521353066923814802342647369581205168782515358905138735677322581673156283536039342112093476092637072142003090499293107266176584250025716951782221378127117936208399310720213253015317676536190812178637650647750925257939775555657793348251070263496688544417978864202237066150164609620108581715510508452211749861121532100109965253684064919306803238427018180608208129752728533122538594299632736963251164923678934845878766682946863561164214750888660620842360419938363535590836839643327652299550826130615043109872105265978512701978060631091770642861840033598085477115753440724838572612793175219823451499082494612076808358244030072971629068120419533819473565145612649405493293952787367984963203417184535988701911388841728352166980668717393278500826592813981964037364143715389023986218516756249442847852652253374526426894719398120490150907365083332390894323884102017050184082183164313009564978596899273224360358244904787417542901965079835030630924237366574573339476383555137007276289925343033619427326172501405402381445079162204462940363837471437959272594945747407655377737691400012438586871558785828917561005016480270739110962777465691311640760781223834746714076253102538901089224816899607402028852585705346762187191041311074131147813029022260494930214736638945312384743837892929646600062863477711940241670103932776214278901714357695169962899146460713901226804737747150234533080348457717730832891478200323820830147445227644911412033270958534648959408459346171304991019394880990151936257518481274156484676536111767627278497464733822540538564928977169204206681822363886350368662004161478477105926799404590707265205822388268869257445957998938616845183655901551663549567768468905418744721437164614435296327340189237814665325141424801526793748484226814787145270121478273442666435211745869616640352813779286211184110918719728204836350646922676516286464847140033689712426205115427251662979946260484335347328411903764014422348707763192341241503056033965506885779917806500752451791010986761863178548600844757026524643021076844821308597244599651794841790925565618760993361478283635749145119458809694581939763112089253376341951058733919403387330508966548252785034413397818386722055421796328006760735591924538672043630188361099462715415860254164509663577765107175591859389523819693314742489561440602342383557507599695048116259617583060201736220978907824876283846443230289840078940250974063352977057504512885694354414139910593383187666786938822856977539803937380932847180599923679379975318899576582423076298328993900075707246153294088025301026219761613367714012365144138630094096840806198578063884026995349711415848768676507334334879349022997909772198241921394010939397973795373764344385802612868096518620158648102376390875259247845886982316562576766363351936895069350813180083388812305593884204697402375670822282306591401137140937694578883724503736497979719684304029576488878684519117518067774719862745478622314506328011218085723907057011783015350502028201794605354578916200420592217682827981034271263932432983474139470109274165657558991148310425177969853262358125267741679958766883273481198366730896528585506857043783341914416215945618315287732434249518658114881236962269388786969620580409952645295124041580506979488091414097136706864306698613654538719081310925577763458809193592856741195311456784113347577098606602140597324363958333452522736317450833408024479809187711327096685348423308175084162076645142495121648926918507950493926668395098189678972701219562819518545883256034119909253422039443323573130103024107548943938283203910802831393886486867305213327942480751381016862555611318005090236834339346123849167980631295505801457564746727876539932691806314897920517848578240290769356730588594598335335868606533382114965997809449997084813498043611134630215829066022282320769023910134778437368015290641354348198892417214300248723199467919799717921018755709486239145733798172618823056779138020411630930538210196710408131989080481282340443798428734409125028166993939447245033243088737353819459172206248947753016747543404880879849287139821786453298900228290495530187930868794416311296615263190928978593869738442314710953031235398233385556588152141427275101930756454191097962625232937963154771161697473939445158229269860683689730195524840902427186135385070113503389388911112968240882585421693451948126381019823084572983243063638610223410076153606840638579805389162518066340140501710691249022802702023059577821462433296308569625171737386019067473466421546389048399370365496450862807132782700849931924060478986185726244254990814953328834033182738071425822864866819154770997207146649494087989758932512595791882192807294793341475376448529622198366322795246114045791946940048152306207643845887895583914855792497848677102647735469757014778274959489055088090363870797651589222530278838912092831818090590645141665757478462832994143625667887819866295681198302067379675909949581133577969146733337413589073005062973328928421801900365060486905308729118955466897223420345146800665473487157107001664712664022030006825522252246942658701228191600950278604374434813935759544367565546767046802883457514155356485661467646600987813529850456951383032119995038188739834257214361887804831568086045217959355488510575760269478464742312910653581007077548398921903936760417403072409656540804129114616991758415045633570788474272793978754876798046806814410243710693570665468770883609627931116645822063154629676037339512277919173639314621016227750085891065801435665046415875942649813956946048254463376274326040373497447001409527254064295708191861622957156918758363471778716442976312846237869001549452007113277646545075305824064658996742704847805991027543821586306680117101257721943343260360216423414081004780252105224533829301903738754647456343703360407858973818975042302699787377891922973487833123846456998738949431040913536591141226608150145823667529577538204300879562573657651280558290342080871243161559179668467861558438168319485540736436928670520228640988579999345948969362151329608206227997232945126776395097918624247804281146866522398961135420052679301542624047953769379520285646814586073207048581700316949246689209728887454214743443735678563398295958216728080602432959469324423083241715564321226971555087811755073746740468776807377388391734809798439773398283416171305230485594397889260485324485345383157801370003368485086773444721695194906497591296820213489115902746156114499128976517471319461830791646957079494564564334478986338015962196117991667968505150235160026944066159123775939341036651717946694818230408206722364063708401688209757993288989844415348899695435152414477700879582410519663107121461542572615588279380223924032596735362729555868032652863955668930293498802529341611357062082399349458678586576559515654762867462784669678911938010048911125855872649540666431461187816170406547706523928374217224687928438908385914907883925409630066098816795194539298661089832974798281649165906539638062810011319558739343085199422944228948760173487845526443255986440266179316204189125894663043562959169894284710118512782013470092486037852726326165630923516892752637390733160943261277894034850316540120504189840176502655210891093809467587211712653378810398068290531526667915882959388659981244136051751880677178214127677724513315695327035041217332895283093229641013188258553509226054816184676815740452305180286306551171925234054655722195274727472041211731670762866497296991778242427693405331373047547409206030290243331579063065916435099071601518722592315015792839064173009236236484707503002942960629075881727005817061763278033897513025157297170384926209310505013214757446245789803286388070861754715052420533097453273065783453041554359418109479699711258209900659937177926528463411557060926509059318031113435148022038784513089535831610880650137860745468946386622899232071719698729009093267521498073956016540533837010151303471701203403890254238398173294636279990654987988442809654080046644490327565546102290551580301531984750784624054369090269685064103034312393099460536337683884363799252706295079842407410191081136898055904066617771257111757830699728586065461333281853440894058110631880831585748807668185740455256970151306924125242204892730409517408501797751936684828560419610274365672259002477174026892895621119162051502807687268710884968376896673871130505609072444647601751285502066552137949608583294223471177245557968554591346164439339395255851477240205125203930120669104013814437521732033997266283311601212249773831324873880293290790185636695934322899217041849922613957376416047354600759365932029327757408618370137493166040142013912747883563976350724795989172083102963845457465008263249872913851840525227144680630814328886003119454188906116944923983737897754937968793978074387581869369567978906219225602607849737753282777009214196296681972364504134616147423867244510192636002091217652773033416637113914439559885091561422083047437569433928580643240014101517887668991256174786897284444446968815302679783457444609256768994015199201068375673980800947181355472230465029992436144144058887800853564338099626181895792878123027349938249414171835690883672540070756631309272018533636143277709771752581724365019549163964630016365267237027182216506949887140881247002921315312536443492559954457983622919845331244617242058224029411283023818895671519922798853671706013106018674394616667129574939583944025551721018514752786654171588959292699789920903186981644775777747649771502038074669620639849530354142657535963782424406917427885027595384110825405734345670419813111736917634744723290825605168059613438263107855346633718681790162529079124811056449594305165256152407417413647787218134989601055898304467890657581594117089976598144477620308021445358605937412288409149082758572723150667371666237913139345151103682917956133409676534322109228730065209274397409839138101527043372734948129997730773228439675521691508661304298552393427286605067759891896183257540319090337203036274410040767530766585687364039035440454078201234759980477454517004078823590728636792840997109530472685475915567384214064238995805122439839265082589102249879355540643728622742594681017600683365380258885347815977298590694958005077530777489314299178611688736244263632168217692648318529616850843732696800557931749476356289139048552505284965840571645422972335800802418277794009080879323576143856376541748774031104926535107891569933961904588327621264646832647559956843201503609245879017140518626363658988679675265805863392290297875842573774558886700117006230962143599704748379050221495023670841563529729788222122623187187946518043481482983570739774773392413352312343049778267378329933339853031678858874419998864375398999363628306933767042168352153557021514833834518809105344107256104604909231891536101721395053134174555237662655055774779718220707113050817086214558800863730522586309118516496962593164099319469410364982687823563403506588893423667882235957649695956409913762499932155465119852314699829655986288759457029964638737301415657198307266483750760212920934460110285300301400488095439908263370830159837732737677006676568830649839731696463750881280971631623188127079343479942000254386181822645540048661542433997196866546483951703668605082876084981459632346120313566837226339622549050084105480399946785484440191634088305669759165803187736209769864121904296210073230394381026294985187608468031312617241943654220166707241361130859109603980136590459787787092755848706645717475169885672429970183457748979904163372038762049181791982429253341398053207242214313137238957605827155028222684122212238465405881256390614233368179463118891663980518133556961132983772764912028250467933250305940361760820306833131021301615813005143888603620359892783172178920575896591954999359069316215041111139189649297912523316273574699661510491666392469564464722671470554992871608005739831962774961219241556382007349699827208155310058586029432197623805308567066647047103251966615187884369527849084059434601270711013282939676788863634997062951099940602239352569804432226346561189688602728927566511910363872326314066360590200320587556551850241668886474105232470744239001287963250449186800938552085760320284852902119501389443242366509181669152911486074382139399503878418510321359659327402958712496311085675227668056312001802476059858996464637605161425751564541396295217085556786836923241863451234849891111560091676143261221690203398432830446394411226235647552177212371815747608614724495718152352028162529485590658776805624499060420039720935821323157110650257746807696355569356864184189834488976849295092294726525496214242591195037293920549601258882490286573666190208532888289111541551894799812007471018878633538212457561044728365994207227323538336112289219680919775465202106408253339620228832843587687437100266643380697277141635635574188925079652329209787014831515466444354861418926979656725134884360904636015690538579511109280091745312708642987448104691717898042177718142190454126695521835788926975915994350467735210565034084825285578615131908764953160322087042454951410976210603997950933184340332304631475630230232639183001398045682888013494824825823389638716245279201362911682729301253603649763180760531124579697565988139023755898699990432357868206853469281943747214393704297940052128366451436679733117581336122766974700460394005154817233905996044129903026349270249338256917682576036812424540674150442469182095183999946821720021115127508641525725937363363564618387000710573076904307674423916917111356675367591990024387363000940551050316448978200799337532574702883842705447722557038363915374036856114667663692883649134164744202010734686435468520284597440056457165000318590070431395936302740343328270324622507076959081265662600135377211794224608592955537100622262802717723617419871772950029831475270009836426684562312039130156630985753870244782287485806137127702677713134677382565758614504104670037799901576425096830493283637487941349074551935551107543821447095119671295602001572923603646043784037442271200729150912121449722288587917424057465755703696114532260930794685377969411382787382368072761307265145202183235658758536073108680483691118678136092886497454182160127816135190011889691206382442209266580473927734264623829688389571688616661976413384845873585198355763580478674114307624032478841996271073383921270274132203480614032999271957537482301102590829882005786064089922628868442918993633410237370934709912506873710244767133318265117010666063869993899776419846382918992518323753107568111962529179616037618480825470151567478748944963051124676166449473804058661660047550620325377277083355039470730251543807367940461665781115784916453537353099479883688173945433495795702074711773578666900739582748529926714726080047867327418157731251962753265166519476653791276794390822266283373945045906862771192143139370701854767506379305253494774106351400375939518870904784858004278316290209290797809081060684644342310487461104880894171410291568817529573294012031820307085825587812277865679570074501785638754890164273718867994664432613890409064444626271829093590219792313558383375131840121799266615400086181588418649882623026991530698188850241061667337621942659166426388641528221514331844949217298971180552212676637134233203748423614024062309888335164671618913160053585457731209619026666835570778296281314847014039758362649393182769873408026167037519282434764856282337222255849850571327965759161494407475178293779327259780408329117260342512843564400201529583786833939242316995915023628634766552072036072988093584015633047526883440123749025611704298963152025823442939869366882308277286643231643492122561568832732552917406487715137092778006588877527644014901191031665007418331834047109519665790520088632029874462856520014076093490273710217966774811127706828361429930609161469410503756867948483327455545210148290885002430510533393549834912654172923737036531896050431447535390385377279143242097932941325090388564548299856553015730723541436581230486899627227055521119236087509776088981640365244968814132165631471832424383305728691199041958038221667761407046582749370255281270577318220230587356190225759185032380153072825722852758780638148072884624575255394189232333558668639625856370584904960760290438546299489046281416109386276002400573361422138609963260911961355902890250682950197218298333602333890060061043857609848951626861138931959462636865468133277531935354148709266503643658596238254262452501232870833546505530321643185795936241037551156546454328920068178253375737491029571032903821086658514328123459270907511197647472382549091792600215640359643994374177880584614306294235875438367876184622933919762718171252469151783195059611189352740044183123612127993069834587909365876535615242235812198951990861137583272626779773363817328586722140196643873177136757987069885580504626448104185848142919605866073495634480179439512722839450427977200911963797654311219884446621369325070387046774929630928187369376292535118507958683313112564011117327184216763688373755739790910207553098472665168852165278435119375992247961652442128523378305789760020174715634291406049680889408303023928309208545829386282704024369349018200944920463017369373463492373348054838358919012360033829553659524647950672972242504886725860133903815440918476472238235395312233739231234071790044458444685272282708651954772816249482319614158155437730369275025314263068728960790861651741130835400473268299082371041343322012755606582030492186842311722437232223291005633818803674627433940650888041274640787698012895061690099201387630832722312928844355322184119398244921571044154314748731643403042616433185114817753333871368874813142364411506574734222165179997317655555640850951833526243757289258579706864057158029740043592956061798221910619296894698656021900590424939149574787629294373951863913847943297389164372722808928707313882603434205368507768725645290248056988532439113472918928013318641319420990739315730892471141481063690678859273033475857106313117087613158091272567274597349654286885478382902216637875020974263321313063178487347034995439380287927813104268018199332225711817315157435159817611635286170283054144253345088801939297381642364144351100138438883479647756133341211090213004268654224310913374102010086125863537930925245310338007576147945002500232629792712727902505823945119127866948784853667269062897354331215546640274037368470736834691603667808817656754059652880996885695326574774675552911936122177406956869661033245036684999387251767469287975572420737772797014599528312572135416855100531429366474449169029250584644883256747269760158127147882591877137988951338803513493390442103011955262714983004695383324097711125757866881762774910404065831159442652666765790856482130427939463290775343349019181695811299161035789659007340786019969951083427793299650606040967125800167443284892643178878023565711019991611073725556441345985622357775367064370757409999879309299370338624694088028265346540219909153449687498065353003435164241911479189431604584179313148878173746416088233912256922313053866114337873362739231408831241577345684106350892362499957002207435498111270153443094339099544106064075619065806034727308253087414647096450213972778254159981296988054410610095861660142004764035845129579440808937489134465524256419758589886855092782490902154314038701498825253976006983847698264735374945480893080682427947828651589932072564600188120067186821344808694954411542584154821618656545598294088204918958395651913839803550035100631934686673999830712746357697773292019625568103904612639818789350018162720527413361718594553371765601406358792777245330514342192329573936321681889869237548650975929684541611554386566267836519559488189945767407119695306966368520156463412773368320882959841268287188732133483282448949833768270969730295298777752047172323241850392562766518594609711810381156491858996316718754941491857069553306002819038887539841020389367142913183644870059655456409270517765437844567464121892143041956986621880548020678709666330107892344286710956377152696437212189901898983002515115549664179756688441799294247811658307440800666710476888828671710951149801578842367276871783291618495161220416500858189118149725388529660300236550537380727722248968744782564535015929298978817586562947453140045914149811659646155627949630754444760690867964518448674005054966460954190617221491166190952501602880252488460197010112851345555647649300886204483516242609118173084419823301506224693407449499377391625594111030079076413606848422967450931257834923533905722551810402673294457823944618498406942464964282351461512116106897489594430717544718875941189418678040800547126366768938192196870294921801368304358956729791833445592170154365303949793539572243641035978535678261898284601078834950011571402482627102693012111400054689616090605102201267865265011515470520087488108828170415264474383330990406091694433986876152968146575156435107071513877127910343640125077041599441477851991954859456696843087494036292165648606400307348677283932220329527699418090755700058874964559077224728501417394909997255797477648455392476558061132047741222080541645058985051705693242749645627617181015235640360981872348844103785531004627639435218764749569578024162109819887885622621883180966826943708022381590663868997080374781539441281031225527404103200765718756251637050509903882349469805565686145012701660782309332928978378765103358718187443999814793071846003216081821302088658390875104870369947857812359987310487132859324501282161798257517442200993680144624091966080092672830170420582801970661976906841525005881224765490268504279099980241875502195191350718192026432323326170685909861043057315749790380929016569089554464064938732306059294134701031416707226624874295983317755665906493938913181071245901784363536975066565947228153551880367759669000720470097279852521369219050751930803274232528341518239217289974569518913221787664044116584219514625176052795199641905042892036857299329331495056137864175453627497437684348561633311045278885340639519086155711107507462530517072328898953358464943074160808322103317327599924899196367768031132854979816060096541895290201232290060847533552896211666849777302021374798918423288864897820825147100057510986784383006150889077619540679644052222924680413469751608470469694128437456252675448903322677497697090350604161952715340295189487715305852339630617675349338419021579516617904852599401355921500151028726240335431847193602172811387886678857857840794938801867233388013589767046411671790460311860018687341303713908734418909765277734377697600222060449453168383456740310270676524691232425332872857126774378688244303646753773724751754797563544959738815093048486686554056727859407794939954277979831721624286763752653534321027547988524035625036803847524538847190220934708365437132730787655563248355288040257999351395891857713017053505171119646693347462365410262614633541782116671554394776906082497912564781206067140155508402137947572474277829069419845779403572317362188051482586589356445402853505843633095156120904825911803565306013153895890843327705461493475400158347174462424990253468048592782500314248993541036280797267092578075005744719424842525594063305071878902699118806730261362051971238813841207298947710356266532416720210658225216199851169927002674908664266192170244348353155180624934229944727100630330926518718395725690867173879330932091621962082426875334021624171048590982137242400795869123515541552065181340355251408603059108252667974123633490409135100823317995401215940338894363626891352811403972795744001258190128986293720767066388760412457013685766744760693607712843574676366653875078733352173533990515889046078194564028935352590133604928182093929982400755437411515951107590193653216973882747612241014372098783812368417601177283984858530289156000077653921046277335749910694561074210785730758680455232377359974216216442532251397424953944177177099863508243755252654616196831415079724075361459267234252285404770399651544547382949659794131330110037007571158191954135515809816810541733791399375629859708524319685600903411899337955503010811939579473731958723745978103247299426439496778583487664514971615243930174035713570412269392644125126607183217718790395647672947011313255113027404215607230744158521161191938017052530977103117915103985759044765981616877130504859272367161119409931669353491634832852289426317161851556652921385445770452715922321390955359072019151480620518934010333938205497132829161360084550246444990230205592580602852162641282489695437881319593998913435627577324616233058541406938301218516303422310000920920093106078137529319677697143975743755252981893362830365146824267526720239245178684724648785336285836430429128516846837317107513072244692322229410081666454289405889688861981027150305375001896326323728837113548895669418212125036942374478916388514662151937961760320090888826517595966999932087637225074309810024645281462349091686952813524399874947086797638861830248627006677463790170956380664921983559630987194268956863900759146445048451196968399996812567090428129528453014180640740482117206259704669018029561220052574342007319079386756323017900689975835785436291488989534529653617110301875092142442790005482053762901003629978684719003533357146460183252651857039191528742259349782403862753890058234516107683631137196166679966131950899706742283995615610855711555034957252904247136358171569097273164236916638982390937097146432032179105838496901362564212650030120892933903611093978650589227732620445042900017170541317102873400149369882532984125778344575506442904414146590194107225371117604167823362186063650869166131309039589317111322335946589668772897071067065105513608944625473745591086505690952880678882759917704064913091177326751199575961677256693416680201654551847509302106882398395592905781637950773754542259442960209142939043463827560914128031347820589522116116298481345676407402998696041027927944304278527563398248346438742277818155832498324596709319638493119824542928526948034262990374054381222775280525723717396913602521335582251351442991270850560877743837614414865233670132810622513839949634188550463177968028666235437627058539759437508092162215688668982390219477954165959205185744385788774584242005378677970100277584893088515337007289551446845515662626190841741021423540078824417729208382183251938893369561562900114818742403138026718308994325937822220954075192560247232367630284942218749049868831249613333978644990938424392794955752584736919636392614623886591121347729378541071806191502919603251778475111554320334338275954000543158392685679588636642011289821041462272866724562638700668709404885711779139222411364357384644138081411279606657616338016293920698556681857219867963951973303353123995133021754942608877594093189791765851005424800275737295241361933859984831360259702989529064387519289579650877104198956023110833737105100696267601390350024280044113229190624262121100401534112314050880779807957829361128570086232965851704663912265117482737548310181636830768551483924314512665886896971968452065923803105822315693131770810049184171771006048478699442299614874579260387928613547120469078275632247097714069284827756542238631312125709079978277532181100743312100952064444042498295717485016745056228655237375428477892493269658303269054149209175238121377439629944015765073795266736043044061579403130392054654443612904091616355667539700336921096530554052151862355119963130570620547550176029050605138305164030707816676426905125651554273159090342304492403243230392006789056253302319834633343042097604980002911673324986462854878507231626177039154534172535637321793749230068428725680004754666561502715906666430160811388705444273677564276001270434366840720528501017313550229457108200243382595135523488828495312021820719538641563160122641483724545877478238621598816752656604308860202111672829241654235023922126850639943951327223912467707554971807266576313533371586253539841224678584308453264464551768581855897700967330349478303732565394994161936892625114376700705560764327358658629312242689239949988129464685631110400412098368297367650755542785922290573714167785736378629362764347152749448927852022021228720956553167130034606348115626528963615401176799222506911222327702554352274173783322910628418456198525604857410465877861467905185818175301866406868023313357988326322859416179580238251887117774840796489548737589714575673700649363320897405932917807410276691739009472777826496323591340672958996672625273706588778053168459994222266589311820096594404839075819711834435767812429228367723442700295561615627930997737746359561128975634370190908736309231062188915958481829719900861272798932588019687545681634532458625934316039325244601199841585165208414107034789733203064932218881462762181063936606394435699429369519051108677853518024217055474518839924363341647734456037190385259454264611899008359447966398144650598877972686609608418925053968929792658819826487776372094669888437150144516052210372400022228006988932128660860874770970781242239675314721713323601774776242028029738731963874489898178090536538787570707938501947168326293645010014904363964084401306060549077506894200151790796060632043837904133998459227874866906379678694663763429037544067384231952562987111559598480755060242049335932313599135364451831445855684645442274358193288553671356275813416658969980830442691758766991268928653024791204011840009909703869649190016885299156518469688654526106608793330181135858874911651612428799360406407627539188745968044762960932044065122912459953487484054378058405093804144256518192587387028093994190199718936226125564558357661777115815347815966879449572565049699803792615558156897313432901788810442975976555894964821455679127644460774233275883007084858326016045739206247822520382306573629239538725330920334245918425018976645272643371295568097928973803935919416824137285206345706915758472035117316430896048875335865281794828648770665948866565577580802039126631708749854512859489516768463152754614691371532770087648348335361945643582010752526335088757631261183491110104994599720097956441456707754023848103313212125021235137088279250658456396808416412417157493416170515167626508698977448870624980487982932272831347167423719870204862424950505104240329919907866303596227247255053861216720587789280595392999181608159245541364656044853604776880441373868318040115167602789846492373493025280898757627943962338083562850827726743390942912487771600482502009307576590054256911586282049223340387566440559960994171921629517423301651444351397730582755811864565886388079657254427677364361439460863259394196076946570233119100615792225102315810283338881118105101004652394692270111539999402403173526871370006358048949689256662119281302203258661338444433522585588709152013292298995031202267865704449166964176588073319424777815275320230570914651134129766511905089266255637526992081524345233614173649681999174438891259078382506870596038712873645593427350369063135588728934241789086374563322187074278740172832477894143303636404171245370851668312015764982646663001453090377913983989067694293183364124318873939886333325790116292406758876130606107748179832551401009942071640068077100570617309622201580691277936029613820381777918114671569907019423125266841467617864032638542179071256283201153900379582653354024732571179777771713747729105791782448519749467516317323117119662610474338822768075001502915671450369809522367249606952789618547446938116381425838910169799438114441973939471927093119017030095328225507134383607516928106401327203897876229745174927972224322356719951864529061072796054542030698931418263884263310480719362819475528741920961381657690226041366966036596139504308509448535912684891311113601865785495537354098462827271226216388180880827682445983760874481578969978976536997436919303339745247279056416726501803031330643027624174843446766301448505421854785883151836281522580996448024358462732664941891659782505324511128956026277128673445272997572750216808253618179483724256787055841357365901022091528685644534645243178422565729511474958014745967765484580883162395201197864419329479818157791551685533498832060311921740678298094042646131508142673205700335070976630708421730649763734283409856429155018065626525723602785145453080874305024091384924414013874093732091723266301366697035849025512376137807857365772297098497031080065924761813860860742835486034924730577801705106786673056373774400023806600731841205087792844825674136460138593455299832945731872227935756935411592148249214835505579867461650665352461633579510327271909146907203979279680663458702780452566908007429947701470502819381935287936034389331309409843647359624840590434975975981912023437917378414255273581063030544356496878859370893481228332710480442405290632079258304101209798211654884555310744055598847479159999962004060792358012883054479170538268486795467360694429538521462491999076678013773245882006525655961443183780232556464334881905521531519523372373886123011747026041316556304724087504915957947382917916020890136567165457305283304936822104919383318871342726260915398128845637583153912296227649541737435898496921628323349427132560292547330345909220660120626247754797325682420828165217472115018948558351509798113407434211335172836808670127870520033779411713913152530708997143775912663472196650030277532465790883837503347862366206950557972930244722703871719358745876576644645670219622947214299565956151981407997701069031444376767942499646973565367789506009855125594000651942992480596835246248173386417622173872400508661418793303543495534943023868754749654569075347383518055188826050212280335890296614077837059745778319861510646970829158404939058308437776781207076479709296120326828988533438546952616947618675497415748723670354060227597442234716828104731260129856741223572496432466515085786674928787325938603093901170092542300086097518734489274042249974649854862444365358632252463858255910955619480087537590064874615488600473334496348841618734463424579279015585528925014430899702845842175079308168274144119793826483042948353336756002374416545962173274547169057548792765796978434764652544715396001574841374531781177942964359976724281870054862890525781368219061865618557758184189122222467470134896741904116689457475071867071357716103330093766100249914689092312777518541740703781943299202348940433401453145573451213536364239629758506256290346075856341422634096749763809312085374563147023370951006833604234589015015080637076078606677878585589828467387220222091419632865585871525986655407436179945520176926959552872499523293014152224397808903878723822177991398151408630574601858718019258804078174626856446256981201982929604335790549927348558139964841681217969038742499045850638479809025594287297550261720137594128063489184596730835346253681570936233612275712714614141206208524525952438822511195551416961666553120065850114966183159980665156513996911765671845564830749168514488782244482014216260422699844938662525151034667707576854508584066966027928442643099497649725627339916495222817841482818866335831548294514494143508693760847383450441437177519234622542292121132243380246315530290416391573909435247788792391129579241910429547948940294739889042139963432970821749520945464716532460204115137210516545710311585937464487161466911044785164060797786456231350587052166572933432541486446721087053705444993687092161231643986620800910093673492539590214057688836829106306299336327123064838772239433925687606608468480626113840347415216465049689486756684513832906306062163059012659015796748897898780117625738476575377000454103558942111158780986416035822164761705665396064322857451684159883153187843559821333282422403260482220693456846140549401778848605342001197315002141359993113602181225967410086016355237308303420864014349796544942314587099546453654185121005734277233066930408842946841484556557136620424971721445214740017419117510481421801922400630278769621229096114106177498714198475901582837041716799366794976277593308182284099388471316057199319967271795542331799744231493332677662542278255263954075265315598675257953146526801918739039281794468395672307291455399357433553747333776859498463313359155797709122825540842853975336690595621497427103502802635803436217364015925514979374316648889325741856399426368737441348346027907182264409632827768695176942356215268859837316931545804092681289889635187011510466847460917039440632868245942932801092624304068691345236307255721065563664628323742759915455663427809512041981207419815313696263279435238534822992380704367291876152273254386972124876830971151565255690264394346236290696559068279371086434849940121874631786372574890657962254383387776621975561603611616834068610266855464492498394450713226486710959223864734769504163719798544738678476452133489166479173417337126926151007774894986781225418885536738924682752365059039893800362004503679738644199053483993414122139183500405325684769123813142064940125293182420105807164333655158939871822634129921878542978235574424929833263010715638073817294823909814958794951468261556230562763446899999527840474386565625491264711971215556944798429252629397943566170481606372756696239227138573277853789715466776957619267798368514513587063428859729126136239399969924445627595475017972238889196022975755570144577575161546214434123648479549822250358944525041784105109003440432094717891298801121586444128669832612876960541525665635393732597295779792048318822802623504816060618559909319999850734072076784413045294989240728601861606005012949203432829021412936722627956718344031994906503177354487422145636996007135671891574797966621346067149989057865580510236581328131451122588824791637186215687531858394721297961505065493768310407296499309651664621505391455226171979505123109109584064669520127524628115796560865330949734332769986516269870829292203629647779430831612849949525379752731244919268941165250603294275955537565403270890244363156215933737398671877676268229139514580354366579109036741543456251353841402937090510820345807309600520421936247417689031696044461493995422772465733141369621877689567800140022087204421473679952820993038820486928465173408720079492453522171684489483259511508417047637850817150500216918088099262049043567885722923909861694500179173787604507024596327349693414168061019911201987946789320276886578583627547226449304182295388444014595052158806484644251857390725477919670129724022297098267490668848218656896084904892789280254116661305032519180560757476665499687133633636251186593450349987706335761181794903474621531245635594235193027000704449992132214457798415420889034756114160733525794992435270573093855534751044548029106065319737289848335573613519237302815612999634294984519001563032217127955483523732834389132456680226348055604165263739561417740207525940337175779861665142094489245291002706056949202820090756905735400574307603103606066805994129056158091920455241152870135839703039467690583895251545154558800223386413142602890210194695791118982876323327920589472667155965728310513694583596883139893453746794081415662848281619097332042496223497784670945619559534973187714499938795405847754314947679589590708752374639833605733580875052111408023558368830155627462765743199239021275988191135911454094291037826254701738755427722626746883878815770259779914005174303780068360707255082586240712109897327601888014234404126137787629873647176487760138142744450677172357113986573161222055411108664568827149382982273773080118246843871742313688958975682457223280824276485083554814989764118414702769321091558300286271430917723353138236790489043601378064980192158399580679062201374712177883713433553864359198136216583938209067170371178848696299872459245047223293250210107055139668755548382890097474465347708317511445452008309498563733183186997489515304738832948046744608096294514185742287826463311266070884933460854633355886648413447919824647040208160369751395029212060578607829852133528942981537021262088848164515247320919290733431397065693705614769408106295448086601903013690149075976363471558218618245966531691466010941780368106887497012888562626896799194819054971007483653568615594992865342885915344711764164402308034533294246331899084576962557069508499042959719528883231360576562502879596612334871577924167923889086766189741041355191850489919180102020567081036181432813191563674700914554817847538940936472261360286062091626621930140828090916679006595318386272616307175085244768458553417950013647216235467533362032953314495229699949411539380339407054825354463383772660723750152819820937799347945280753388213040769292349159908597964307441970790253288213499054647591746199823297450106421276740054516153266948654167796553496250380959975733142101859163895931890461219361874767267811506451018339886958752455703750371627952090166670511647829685526408062153131126562888659847157777349940150744252216113703929133835068477151393248389446288904988066672682708531232856206514864422968165583683084635124446749779452346746133384596644441459912815001983296074566114166026013249156792730498718760368729752826331739280510881282747235124745141220714632461476130348748023581111045670566634614965025246026733432689272388683744579534649402125858971117247634330498853485973725907176226755094903640433735756950237621867705761922792070550426366342584502698702561418076190624645720069497404040325969220597130432412031206787365930990436019664140651148605117784179822487414477829947758651906427181470491943796484474468580744861290281039224940872695405550490919030570592617035063859257680246752009929773408211301217402077363373266960137705355902911917033666915549726133168719907931583724668852559395778663760488636628955604980935284454614810639590618180008073669428641516615115827872282410158507828753199697253593906441962742671017529292231638364411955146785978361154909598522839072910259161195688152695172505119011450267416277889198272568240042846593040542058190927423991375775497029653697350386314769029657831874347547444909874611104574163756648282990909405427537852349272580678786840170757519630040124061375260034971197894810353123147799670456424888431294502329294089387973483515924785457462084516602790154957030782715498794540318771847459634400894805091792823144237350002023622012254330433077196722237157231098218217591963496439596227453551840205203541651379932939955730818665691426782432182623288782746662698686871640377418654985643200222973305261625607668787078236772960728164409932390595928399745524155741018787947162595125587523479133716000411228733783800701364329690704537162382791073207360841476654967072901206672425637922830466956171721063764680007867950020980378185775822412186084485673344279967246551223606422976963892478266774608322604274057351572108854211873407919096554262007130750733849301242317760957462557939973369100578212754149800597579161976754762495676529794066094689775402538094676169314386509459913526889724521770560309137479805091262396781917351068992190840771083751939353287353492201089539859689148653163678110040077382928442265569391204504625019408189664008606275011660975164067053612086588895934947483072613917775883021271697314810265086295141970862364562205925597296998044590202230805152239894032828176582293183657473730020069299661416795102409335965199298959947662591604806334475091716628015919165472974030197260890624692826167479528806492892004899009067246170252945046706212453395863498775383645721437700040035285091839342281044324633246414963146951805140474934735546320353081408391193495753616654196923133607290829217485851310881196730061814294078222292779374361169583355102877113726764182834606271007323218739373758324183194671829682997391912893938693641166257379720323686532496666940812494485573759947943104443119099515794650080240916670522366023346426413632881168725020281691860313401809191475819984839535827578560630489142470065445682259616027757160115809178762086078613643693211351339257098624525247791175037338954208848757441126524687681927343587696578432803923602279335855747466186993046312848667304552001499893017915958764561492985698763157368731685910750691772193762257870452916390247417000514171239949329263835949704686057137350858871425264699996718747809312252573815923535716592793330645603596512963155349994535979732983666335295266527593315252299596943400660910283814632943516705968694963400186850713692859102161931499238467576641820122993157066521811870612583263724704416952174913505405520494589959748106739139982981927635686349179910288039969791444346497288825483070551998907791362309061391559755358888145732810742946080575164320110805635782452855304613632343846083883749766684414245388798864310948047141547802917778258749049587395537076705955150801061170632561605870888701528963817907368503098546639691752057044905223044557166076759453227164058564807907977370025669142363321234139247004950828019657801546872167371791950539441437971125331659845678870420156274705281518632884471584391524062363766946985354548113486318536407694122884535733523657475809677484189753407092122968002650016500296947572938985245988831933168981988870783940394927739161547678909758859214154413108948129514224894315943601235026351862215867593341065003810630822426499730378362462306280911653966323753658376018237421469248916278625858919934798065090798209941873693931326935369973775001134868647291883987001333778158735123054369423419439419690797358366565987640671014264676559771666690345687412796478027993515610119286614239278423675809577065187686654604605563280534696166083272578540857471003492948644937118523885296584567377973050428234323286964152795649886729676367926351235352606080045370626833996211779318412228582278956281252236161224825184814261401058840835432177737922563043993438282032534923278011401274103684757360641138209211893758546246945929232155810540507219568493015365958779845310155085021140314516048682842809058801538903483233480382642508106048691510472734331773742465489299020714919166788354810228077943132479130519705445307833710463127587806095863185992016754063355916739884463147595465398243177551440470865196430956197164142621876817725230344700367396565665001449704282937650981992761001586369589602600783596649872943259208775565605418491264913098914397366402727001836288047636879313547949245687847910293813244286878974177230380068189386210909946931585710322393364975799331608722617262118510083192723594011488724108150971132833727586891371110130079964864466063137709073857287288804301040940266606985768398531162651769023629006399580297317065120560642927442261850908157965614155974787901292871347828405639955897629147761222566598322393101520948000424637084957178532978955724295950768765219234567146616737766820812848372126417563464106905710542938506305574977667671274762755867855457802261438695473949438871342347480543382511572436479966958164385761606944120224270311767820530620683823445115112738153634817850869524889584074613862875757827492795905216903252117119378466736573617860669054766149593278893434195160424056032368427208790481917641940628531208893621334201352405631299433265705398494829464755138576682667126330498939646687475405636234772513923286987356926082921032705148822907358831642101199802904847670911056757120133596346345253285038084416877981719359446864638234777697630208861338232919707421877839505393596948196769087533920896412449588780006005630774144211792839970845489449266492375271848855586543181152535228488114643308847220709558757606426994636310895204183774624362614713760554222852745272384893750201080339349254822641825603025806891653275508872431974774474876369898445896174619109758438415290372281570422241438643843664783636496723948680667780236792686811723231274398061933043533284614172731375095657330076023656921249450418559866048205680559510530028058834839682508096907419060134161096064518722967158903174905287720938922717147833011076952915964977598933502917984678251552072770545054788865285462599345430439724366224238452552289015170662632199312317221980876190992708458813631256292522923965403595314574125786101410734745315535484110285323163747080684734261768458534954483712383799557789795076941370410718682016830604918818402603269026580912456518764604044735153464478974476036356234950297569514841632825549841242276280126158467775787437540784022933659636190186264540293808021936350801871077873015122309197363538070235613104894326956514452434614409210715491665486792519979267633023430324488693677917794847361106641598882836728540415840704979180860196760959038325192707511320668455246478305186746932160902193045317328664927865644017805902410008315803810414497203826056732310861219940606433954226159674722301900801796319115652969286156095315999895942178769321471660995896958035580880471320545545221537136145279213189334053524554185400365284144178518547816750566400432828718356117741273116312063679824295562676302702881290508030723416296180193031703409147631452117429924371291839565888985279587587658971723043965131875299561134634131951552747213966209741033779902419088494731035454387133632280755114877182075251670995085550273398795905164685183611623502960767010295345004685826756192031794501216691995401627716092700712582350701201698895893781166388668796522662102170146256244952961815432128193506514390102982572957257482106535137468072510777063582304560957977116388186983267993411268235552208902480697553534751075445132180911463407322491121172190662062768976614398488621461669920527667116452707802903991032252049568683403428179067577014467417766381597355806054572167898706852603589486052899249242644100355910871433526244253086697535566612178925531229672323405927266072967166734998846291084903350514530428891376361341276828220410843147773596242024663198682251656648395316695344484961447336511117867353148757220566375624034669687365071648674019916465302829708291091982869273638493904529091784296027664560846961628973197119846779145558522605492465382435228893768633502102261133122787370212890587618445580478358285593504490788552412991304406094555301311865875859120674461683176152679530181012713617317399569781350967982204451157468160907969023071007528550856364988261245572899080444889198210424832987920144213758717237010822888044179761143483750182263039215598086120514713934962842508250622665478389501226700375506054578726425041838556978120179304926912765186278629006074005526497871718379269791401457759878193255794032481965046220823111563037595021176296081669548535416357322735937371515042442167683163945168364437544380739019468259226697903550425691165123574206280487622203474038528373707553549564057745100106064574211578518191280549619426168645525161819989795734832899749628135517438195042271561767085626169959249205215696624843567456535425698609762647383122470805629493846922922374113479609303226289352167610818134106855415591489640429929532995901958406053492894299536265056047520088282207250665553129862421639764133013552865521771196924757137082896810869175727959009131048395953673977791906233030718673127224948663221144793485267280210609287581256978272793237290981837905126738294372225280919995956529163437426821484764502616560546939036427564488859754370727689418297170785575204862265782236614799707560988740508984537155793395521339659155331548891437046113696340583437628227010016768248658185551848208957398842495569683625340561262997343261036126345076223437385484569413727700520622339028396616494611922003014449877589955346466423579098837344474762868917702708863258339342531361783602478796704757332968682465024790571808810256525369545635868903043065596429345181558505595747000879109289930662254716610627436566252286873419003412863069664710001646809748112568618823548776929542160359708124320299812431015431872821791281585152343080341714135361604865155515959608729793543919185543946782872831153988283539239279387609094705908301863733271660473891488666403537225112360696501945383146209998429351882595444243963620876541931569250435567583539715416401841696779555327522340421507793166124189161299802461779033880160326023226725754895013118402091050465370904358076172365127278864239264273998156908110206172954596898133389769592924158647786814805544602705341726646025115812804643490111083422491375318900101519670341043050249278672086563513631334420980111593495555465558837638362351386586719524353179905990843373450504945806654812468310520847135584242279832439403576591224872268222126921241410810922936613861401749454558881977079343732010639780476140542230206467113898787553019538418024821603173043358349448214992479874372742238911141110600271318148872951521418532491022289619276510784295945778609376331096642567962288039652471191980860913775499466792745252575221819987480651731279600651938690631177600362460311348414452146816408046813526923934227766085145153156930388437756595321637954482461761251689786236477487859838524442540703816769393904824105143128699198563049277254253002849428931359376194922298575321404835583876053176987359091255891619361988549687628787624857587837992760838923920447792755332131158073088233495341350033692500385662960561218219041305988617934496763928464228669907248728721532969265284726875251747312755275185472779151120531239903857831035018534506570708771036452871891369613162075303776141089167291282941981331258561381280133446967035614420475264761549059478872873304536800934512931037708970985010026802483868881617360436233729452948531242876089270739350721599911564299269705910541280530021100687034750897834652171886110348839226293364655453384687197173752207741111606670118455670280101018010589340602100050777867858773226980234192291542980461254617518983943865461147725458502347072859530435091916625177774038900318026604912298363530220677212368208708831028196876785252771195946887151235164853806649998062504234902435540753389050734245369451880316368663369328028839326872783083500567094093224991624159996382072616133703344767198791467425776022223992469589316429855239345242725133564390742352109837086143012566381768884204179168536055974612406633204796928837720332615857516155134475747825216921743496393525945002263598179760513844564983814135763065432899658796123489115940758505211807371973009626425805986692722605324652733452349622835517923483973568960826263666232018590675401086550790959308453623966129629356429274385443538912839420655692401564490736996614552050946879309864980866100045759853612231954477073674031874509520944467810434007370950274136494499963192665619607683260473876523379821062680307948729814622129874872080438080520833129615686484626176304949904707705340780178578891595370356824703675026395822969950211346820869065961002192693913471900995948490879833495062849238875100518376826330830401356347069635533250964737526748799103203907619947996703272155293286283693229579561604476761835905155790805431957539142054821606025182129632985604134829151614422295669398817075858925552486996632537361286591110277235743315217254966698638305917236023969955028456080824631488055419232995666422867124495896051809698518649922568197269441692767330471545694132600330597101857283619701243350477123986591155076980326193727969424199805055109742667263251029923250121484168896500519289777722045287003389128652046383543305998249891251097710011343223624725121628490789462845672263592758929905008022736923039987894282298295609411926013421860925627286559068995820976000288459139355502129639586595380491611085862780576444362139666524453116188161351138225890333795037983773921679305502279992188186662804342806172705529905866360458901548818526775386235210503117754007918866219889782430190818517478948029592644488563242880998534814288580293200417956238683381415141565288554417633654683436895070450716470898286288133392988681115957512027766901987175301103243027929422931504045246662732011969520042925341581710728076887671197074569860790362668432990121169790577219592409487393563695955334521339346206964877510096798944611656180572502143013973501561299907046393323081960244985078889341389957239484876060513735068571793445501875556669103376830448107153003753954797829206554061308964606168371646521780920592086683911588086149813040753804692764043999088536787953311583429728083561214084206619718585269761561480662401769158515369940631049316901142742670151362314876797398977946514820232092606347510320921670152492986293155122638393316188575604621895195581163680126797360624731349767878455164631512817013424962976573935640683693646510100797530603879508675072220034833065051406008716442660113951821084797162698340135034156903126719534559002068806918232512072099198835716280819583409091459175096929079277461050013355883816065126970492188041960378962307563200790840043919538250267625915113649831933794192789604208431758109755996417194643103172354671741299786658049225416514042094874800134590395387668130435767135841624387409783832928114244313951313091553157979726244689534577492812693885770345402704604102610742933499852216623318487088258605958209083565499026734942080957725985414042816657939052448718403397483136067094617636155574937729189027965451245482659497434249590865300401800658131903399345143461536858571273424506748176625288574444041668114834521898241345087164160395239544373346174876168540627341665439625064009349366014086390538998243405557067274942888481518226691716902253188304990904673965374756867327535646923866201103923687358197447935511096102780334748473516555105056839806337200294045715980334191902824519622464251147707291335247823938542188694948577543209061266813223629573105912001389374731835312290122747652306323602309344793670388141937265151287345580791503223030180449274847458009784011549411106108651049676198700730385238229825368899359347899594544811711467899885788195628558878667307061054630988390752440730623889354662441806388441043562797820279179382110026576306031403929938527803904259029315855582201124851307453512021774339236941737314636415756861868723030427328458459924178630441653548156471114776522798937577948190440099618342808335983850715957836808499469915436437048516897743146947549755233685807516177517791550716323072667770735497591909024620563157776492578388826247232183046236043807343253504373833942104248626281266273065134895650826352528137781737873980066324382667015365778626505356686097750740288086238960104045670085670548538675263363986571954249023727285133081852846793451057077639985648522320575354327259495156809921335533692774501606057505270019087109793863904435010907505705900940003449362927207204344286817835637824124101688981174228215393457387610336014001864646456962877247988664701904900834851939570182992895540723411623025661936735642001238075244975335385814023733825001790976940398848125685952671717662846258548796981523995842954450033691035560050270955966594061287895404610363998111628200010796593808523753252386162920692373772636373576289981799348077334677562184134773423591622651905005459216674281336611069041473565253973752863635168105213533797183056323552488298149445915258161404464617275206272147114449679962303996089110232690914961904362522782275967324045467011832664723543931918527595611341173327652432867145834552654044621500843643568107813667056866536538710886578518569805574341707362145728599253529973287276572903722002791662533440786441968285602268904637149776390398933166253165505287189335006227078371886716337542001421852173321374794996403879480262105891751926300380725167370125117917958787555151590633858134097593005609003967044290280493238783540012428648961129729389957931582453965926388012605114571283202200849879782181881732541198320657402205640680311279921160232137803093079108629999228611209690543164609711311781568699202020983127541863296003969331015299734283670245099596093456885522727957160898404794678985941970457618252943115788334976794449942737903194553355767896906707517918460444634335058837144579221500873771887402190194552243260458693437758615266895001314054447277150537958915401865875478731990498995429955189184544908771547857823184635477175318081182613803962913559389736574669128543315066115989758896188545655263989556901926541584444513916351252994416486698375326687992428723425525033538051873367265625207962425857819980300986077495293357612675739067720797262153331953553152686721502088042339226273543016069232661192678809519618661472119870198994541397599161562363524513295790447400956125246716596728712526824993840616129011948256535921247514489997144712864906238965889279569223732144326300938115758912457230701423702367000927631018459959588522738359025818170993520726270862803028124103955256610659234333051803239849071394557105608167507439652063834399069078574665070753800161289884835504993230250918570806763098356944228228950071814733938793341217737475433927628676207191463863118679349736837489367137597987568920387506663867801969822921314538798962419638086258315067662105170229072830497642137852326221798746256697535575576239200681482387894310908936358980652057466044700927989690664314030907254196189887619726635645589509770442337012031540967781287465971593752741442616771462950928517559816624162908560539119522900532115025281309948334358449063411780557231064740787621041370775567356303147523425985986130219696081201502059389273534393427513638215771032534904876791870021347675968997154602923518648940459956906357336969046459863437587362308441400409814105377957594262625581917852760004972718692043516277273070680344001944881108853752699805405017539608182880295517621105276046545051795128835684319813018460067623694645606450703891302818891158348450386273062056646216889486919496645865214289303492081446320233773963686501893585435772911989494776033509594900461312598703844588088484426447126987759159181682884606473849668569824898073730754644174673333410482799398496581857046588153544024993943362670311712192098431544092693172796014371574761461625340790757983286803873312580149786749263335057260985934575839319140902839254913286969906805714831846728441935813003859867247409930779472041697803864935377289282759204015939363103857497997744087489510321843829251132777657017635487309210985530571746493323324274219361979496014813142982055557202157264677088987714192855233157997016953559944889401364012430733410664906570061023414904704289614518089836744171042940705758167014447823952021361847617644542911413649284278826210145101710651042507930515981079981649183069627220344344721432597991493494369992767818239652979655328845176349508018109701176770712081989224974266901775852118870139458815615942099899453191514233609080208559925754668758028354795228425982942815686017941218715834026944852311156397298224922593944169568174688845551126780466652316698688709435860720295551705291586202110285069627379854234958154029826988135681273706220056273380956290962846975418002880236850849835159905345560070493882933727640476042075253013414246381936797167765703056447637996488027864907486021542207966429263647481778546221790273855676955709633340461753998598585845724787556616639038999427441455596609183777638472363123595758213053211273582063816179798952274456615106231628544712950043069564389234512946134064607348084606063753114379717829175504945882708324138168244298291013314454820555710492550190361755904955343197980913035027851361808435520183583074014256060447700377465637653652028160379103506959965898791940371431085054799296128173779871480713452486556564163254347965337038673655796863297664593711353415158613508520364111082482533736939847529532697098051872219073238594358389369462395565710394811729894937455611890022959504016563801209192534506215110883804684111012532639584939859651952948005010254839711121714014018656932167791093396752710911795105312480317990574819791993144616791918482407111780664814423910276657080526565144426681009604755200066331726203758381596034065099912128433092801021743123714711439970493019239397180962114828295859443621823304152365896382992926765148655447999962514061380177485717548241194890668095794023792438502379157706108351149248301978530425756011479086668032773171450006718520062735321410602035225126101447443853609934341845065919707875431785912871596361364198438984342401804121364366745467215070605704799554239437387862751063280728787365733556985190763829271803618026047796639062366976662174560268198642994511925914406058054715490922253558794577843779679975323677714791414192557233373067756458535985584423339921893847651506767646675704079231049444416251512459232244648394252701225570837857046863182287129545629349951738634899827729222098336389287411168187351846559171279045390250081947569601923178255727672629474052132347712858338859807059921643030696772140672128765445560051530533930873733445074016084658495136342724282503443213579533978717654029396095361064072272227982036035946292785983967724558350545663752338141781199025499230705938561595541722281228061668744207995062019629973624758734023361616193040586399438422288938155691285439622456942260409532355062719604434191916088194955024647629898215335045504557329820819846269054643138130309617479206069299791926079047925978000059129389258245717807424417913906533942657115759331130229422564885603522830951748486300151477651189081408275339116534782277973236016438471876855061090709096948199324977690442575659629403965119217245153490071421656769411133224971432749904132793610250818195342246769965498131623239405957647275515301444834038392542921429134015298367191926454649040648169620532607090385774434093930522216112527769976582222709630721032213385804411239229354006197328686483688325970252391071922925330822081199876829476614015871738180723940512335625363678555713037221163733112670947918153729824134595422756983906512648281612666598753673161027298880629633603690327759245915558332498773542487246227338287014701072159722320748971225689785792992783068304054998453035219552629345507240864833684023825610008879403679497583207361145339227289960100071046553017739106304177624981493276788864068920443707594635168379150625756611849365001601858205777610884935590633194300465832639894980462477808240462591565109474503254509052411658855408187918858673842795562566938153029519257948087925484437895523737872642528657351433780260610794864521083369899661630790603875381950377561323520660968917502835912409888081749890535673901847413995424422946871511531569612027277282887923236635635982090617761030540395401660867134271433607498658833298904460390063909299590531763106013897550336044778871920491786530690461516854604377980614324200162826191038555285508162241340737531673126800386412717385526262898002639541916554833871308411419630838607623038338452715047456684658608370120412653967868220033902407897213293238043322921205081756243500873108100390125449269695917443869379622184011956450923243267716459623783470943562213675598082804814750275083840376463484321687084015026011628020083183196157884351688210722941393002796851188975309778092497830314513984094459154507164872191256104366700641379513410896304803325193432647944772130323788378503379809424147520558921721406919293027321431165720205334074117221025019225439682543888827785387940809890309373883715925854636820669211501951028946454301536901065885368323427546958343830237982050855855454638447448835671847799131882101173509984815827819853531907323042488822428118417293776317039202044096541484867699813348287684360436903950169513004713905616142302322692943621110347285069692359508910386265280165130982712528992558258086409934822259744368022345573691543921267645344369822779679625590037231413897350052210180327163260850664217503345849299413412630986965937225747889387434068967236998212117490910778938261548086124459483407023681887458560189545026152512676886784435234412239671489874957768101215304538416078558049807762906291755297942303295808433626284834358276036301566277358567061695694316773485791786527542515648431920032808089009487790419382988765393442475844264477041777682031148317362451800531846614534882951802933025004524816672532576159249613678447214133924852209450132861192765498628180126465479360438743045606129946399779777803716136461432673732737401083698595662752148018033191356255670945331246825411701671362778023390809444887814169472057959148027462391454437073643229103129882636352356118037102480375322973594353419420378781138180591308526730051524784707460584166978145262550141963088578402967444355478056630665074878044174349144121556105216122681503171832301384013297358864124504574160917938963012842666296548817941752442885636006908495100110433949590001329731696380774596016281056064341624178334038902310831978414339851171519647735961754964422688202969179920260659601764488257628858626527884433383111063334600244980972680791749240527466202395494865006609380069179741405501999953920321606747919020726040686204803923740612069897362693709567259830920514120262057423632847674741918157715648125711783042222962021571771040573099403495278039988161092608374566022624502040216755331164429318853177986446682148068136783911412627168573893833959462430249717806681503980588389850864338207025124552992801686171529847606147019907834103386707397010954286357670577603413645853267252211440265654066923208831308034910112862429311691735934421705896163651150488132543407053933208478143487855064088652501410922648921627913287043468563391038401303353251295584203706224849403236825294554225259761371661107257582270290869936878152912332891732744653613773168593315673011390257844564726190905192881502962945598111119696172838829144692934333336125349004062053008941786543118583797796129646162056367537517551711506228488415255743900052780367313689969653356824022649615094771623157709665252402986446901780781637761154743781656244944742763774890052361749318199347666641441366721403550296591090808337233482252808342531345851737347572431727235189398915440222600714400942923217951135901568205363486539716968863600375032248977151863582133840613266759235850534477338910137482212724905895509433324156697820563556744297320707905065328701916749156521669356691577775773480603023698697550984331042007250892012164987270675705637497387864284018388977125961741070341265247166206309575557201808401736640749574533711542724796284059464644349738307550751497089960228484941770799543272391043420651073171905134901933939370654225805822871902470119923716919188509829942000361984545064848201838754333918793472925212864024204614810784287131207482097465378694707158783225403425901719279403680500522310617053228890701230421060210119788559375128614968394354453773395610425055980389189382424797906563885732326913088083552835444717839317614237430545652505168920822138941668116021309918482913694730532478828746972891668732843967979185542329235276601051955806532238922728226400019534377760866319915527204813816207335188040729554687592201535349301950131549787103342382749987198101543817658424982127633829090902437495144794729468162993985408612367858539595514321522891241724081254991463064447729382463181603415689158711621109783072003052446054196907543353093186757547609350930343383763265867917634990739228344461998427459333389032121832016664429014419007412109842588596181371286397510272216050150503667403580879549443003151132481683255283238781295138739290319382479362404915934883188169719840578674321743936058731695184878425513164572230685780251152293339968747469103550492455119848808285749683862812571195976607235378142348961124190863116430948858608274990682980763825941505171967520261161669750323166550642034865887922482098084611849224491933490906230278307133383211281418591331526879349753257691001978816978664304323249514791094208369947234904191376497540420656758255066905836287150472251112915077369428043303426634573679012465105104699155393228257388908399004028753721234924120335238090408103110290059832953963072099294448734784676214436393590057435586317475999332212320252256396951581536728613995625382533901053079042422267393342623836868984354308143573831872619457130031025245507828850984569546779482434484308271985578314267194126056366034395824850739966150801981910036652214697680177997959085431435105747857404091630860550866763838733627308017832186380853440554914873351114649813237669363500841559566268759508490200364921203303910285919761850317492139808794183528460356388912400671686775176627108882490000085212111712669510073168538408026249508196723590488674738071363973282785038149830975688019069548764048673898652168235020906156140770952523257841407109922019573528485457999580875901080188663508065372226220707301791905441195137961716406388623241626724684886552659909055202226878879545772224532580713967915697565208329904679963907456996365521976912366607819122134791512346595060726831762996797454381143525482694427782585697479740461576565006243645648786593774564286819894447310212214628450395220974341028886895722901377359455579442863554551140543245631136577770594569083929727686177688307434752324789747348560180783947471960858397200977316330843838529113671366501565757937427956641990985031506807111766774618764291757501752449425366942899560241272758885317869597052983892034718998553964340779993112331980292633677399084252160498862476925088249205476147338859247738953951246982414117933059588322075263271790479025601198572292239680326618436361528215898997482138417050464807286465772842439557102312656300033173245080550253471453944707569005266781133895024298268147352209384786907055883275367451663358070690879645172386281666044028185284107774059755160561344152828228375770691929013828202807814787409735398147073720090657615063966837355786858308329489903835164008000461385795335532394528283359619579009685332225001956723012659845402240051088622320677448369510252330800937831561639709266584253525708771608397310649010172831773342818506422792704443396531911257062875119087839702456097661830524292960858584826391928740659437028401851665553587121445911732069570224533793806041516601470422622454587836814572076055278939315911376893908749457635631181331318628381367373330467140403312151731768916865822228764293816134807920500964302549936863575737978385974380939990996403628834666427375070464557595006862900106386639840137616371095558077528986631984255495378795902394348960256854668067705072863305776463447503495517374034650615566351540881568559926579566300474300469504569352010589624452555827917313120288467944545210566793644380627103054560291109558029755572995686522744509150463272420329718225636510683159117238528593541939246162678274555104483988238763239011166473604364520705350644893015397595248921617227596332595773502842640741313036459645597426675948835484894607078226840907083257080484136948042817095996556523061795171045788343371737094211969749874458714196713201608098787378425710977647337174735979434641784828785303652838344081005081792029897894591477011738729111042240991969189909378612022636064424302446124423101942673075434467378670656466168954975334022494455231744268295468769167799015773928615133507793105701528900469607302197002309515751582558824949505746201050701357484303073079685516092251385774512929340471924316800942027962833980949745918264312486750981426982522974761059293120137514766592313136599525957525013405916752447835969377186575696965551670926901702924134660143478688894524707789498615690248677626257976415099262228472289794729033943998985711539864146820665306852325179548763407179163405004247747283400731340440958151187843103881850877568940629985445952684920585792466503568912465883515961873888540848150008090862041670040979178716584761135583784750386425515399004317487555879472349689421607421725353404036184360709283527655805861239538918595306670125079173005232317129899100459178552663002178615808977808158861972115203273417989302673229631610896070480404999836443923360209426020657789513241241889855790985489438968412766605007446591905598040034691469266750011785722566252803518712274550426414115293351290067780720132501258278269982521295293964309477901552237058392067703766865628702931801948500245042544385881877730168139678003592960860658617471710102610606973566780848908266034593573558042097208416457944806852175047999224526514835663820125954119027296378798665421883583611689050455251766520679951864877240848371584842733422461811898232176826707233793565062730682578253889699106863488086460098419203803274262378516213502185903297798027576310526700670284138188725875408832868852573908495037650411879276781226592324362036824729366164646239216321269765432532718236982676367606392445453777722672675116724728988571208965695728349250181222416318181389825191425162837261952998274770065109197924983998608325515667006392240868671368672154858101324541893160736763057843916311901343550590666319585786108060962686001312752653037394272616762270195941464719597853895579752752202916196191515340214852902488402968074209028180609420463679443198959820847565280702612233008955326800718457733279790771150379127714630626971405409881536054721474616615518791119291824157862031543018404505856082656540673092100625408469264286362266400865246810649037890257543567904665642298813437047211171020670334811983807831558901195214878319963924947711123499451538955371424372641614148031187620418588895443011659098839949423116611422756496688974553392576791106260703323614922696347271033442351619155405639780802069052772897271287626391564678272780553309391468726320215496229723138832608071035555542758383479834896714858063607772650013765474904770598368022315543121583670181704097119077579469724880344142987963233959958090546255600139360592912121231516761690501339087970134498139782442837807582925083838517024788539350582977180850410816370600345445603611541964147470560619834006280468669823154788682234042111095790169829112448423843030401371746363412848474153370302247697471515711206349748126136820950088341105275667843044504155100002359764941141783846588719159525291469075469519187915111639878140820537850778875042721827933272006535343458074794530882299821317638558095237740204330626087964705577464054804199345834560886702423849262115403088719387522881493921415411996093731988135389508345857918649810690336591489311391570274956217680565385188031073666626863412025163175940492694808335489704749373210445260309854080322267583979816108726059464444866766152225726097691136044032137245160169883035227444557720271121192661487176425821067017080727152561491383111903464855793962277612537329089971843266625086045534268369053692886067728369977999174321603580371533748709426018045390445498701804371233717186713708534543007302248956636425920804797482122611064782203933056084459754777423779327061575235348321406799051787740829500144882756730875840151647421180254537604665930399111759507205231486500143333793633379998621830657674377723248149747866268472327923077404368156556124834293419674697165128914073629920412232759306576490893531152804482480015379715222899729739293503048344801294197952490527529405288559798877162932287373897925587323664430195707733240003200069300857285887095953052766764618321356026653836415890751464665822095661336436848434664246667218568063171986128661945634854637916229117074677466305772679820345084960146922198951489522063677419077350764179558290983797369904712999856221203870182307862478653458650679158542549623875546060533103579691493962315757238271601486498573117260517750750457241548251485963855128570391036865902766531788883128299232980665719670856030133709146010485269071069758739165292011718758872913651172276235998320176664175260774832173795570992779426697103097690836285076610704883530185146611569107759364998846992914564086047227782891633315177843252301094047834430310862015174453458720879728864651076859894598365042559880310367223948944884286321036488777300282054608905631453444839349853311382485527336034267040275980358630463158962971561532122982496018136598524126764075901660723418296147126451941478528465937518231351426644984554721981683756703043347589325776779963706209036056998914429578373876052997119133880813591684891768632028560831629279471572577079251109308482590071397173805873528088526814869698780147262765290689910260825852110236633499776357771972068297227743043623588180853537214824016571888621651570922999112973710174774266969246455103153140167671207295989641897748954559394182826652399248292381714831999691763055994823722701508920197324710218367294882919138969699145873983972130763520807651623123991929599160920147660832741109423017006173351469354733991129458448241003842963236384206046160114614338608381713759844269525084869357036215269229051794866092492828376584248467335718347708655152194665295192641725664895984566804355258066758760096306519799954090624141326152598513630979223755526587302624577841162639687044785083798674646822401725007084317421918322372581009852796694149617188519418933959382404683423737849533522307913217291514241734001943805722903709523067282509382950375145061890486694271694454561704519996937456943403597418386536794506042657140244243732310480920133751001970988813979831784717163516796287288148116244287620320222608070633242658586486112693114639501508324210303406616288568139041590361689897604342605864297643742450459829815522509733346318781315022243282869367170461356187696420557059700958420229151573623294658081075924529767827029555260145159253447950437991315215445162850079320099483456119886428086932948392141948189310186460413581080434728171762727567166257053240119295257373463341075543036873673143626624227596765924202731512353751197849057069313644968099830610267237749325722797901556090628401590045907711689129476713980588217851161226952624721110483168929301539077581554722445599827214807698435238614652900286417695665728238172962282356474432489341131567458895921337594397492103553308172105345739197358481232779464813908465763451300285601554670861145644422555901675379392108391015826417354100181024818906488358838602734692667594797647498762195812980802406597991048224268554446874249818649552850734442582448594152618164226195216772720460124829393760856382864081082080686084199743129643339617755208450049538666370199972248114370953424181138217738803419579839153504803936215476211966779159061500339626005674046313874610860993709172174212236986853574789252454952552426215146712735472985047865273065378199348668357150480261611365660944309132115259391050637906287452520276397405145318076689510565327709737647864493355502651295172406608875086790662949596445000387547731438604138739165273687808018564213424811081913702521144107679723177063228840698818416935452642222474063287111931740033933448880579440317716320928300073218114540438898656427498736583930357426936727998452427375963352922192139887194104151007185270739229765313016268432207435831964965819258150597636136112657210556348218784131324183719373680435365743269225093093036720197329221401718239580116123703543765386461177258830303363066403203599631990559668416703659443108648163808967377390180361938199769466561912086415924977246044426555845152399566290392353150741743795783824631167760883284771313103129154490608508453860085906528929151140122715150764760875071538594684817485429477208854342641547156466784085599539360572156796534294736173654987466145560527183502245403212452275145931940440313395789966431142734107956304183451841882128715541395155925487899696710422099895760504317070281177812600428606807580023516731644036064491109481745045603194769153833669729174074853987832451233439495254558716103663328847898494119589577594767385355801143375677896036209249333052224001694010544494859118917567574368189552528906525909815412276041344212210463133660003979862991861969421784201344427851481881759047945980236983001211253955883725788539668644365849437235205520032961108244405619387288298442570948618183198160318098480405556025035764039502718739614474433743948648515528676551297429472023317080360293340936603551829131492856600791286315447495279324207661348053781883293907929367252475657242699623707451733397954218074927170901120637142976768136778917614887905111867560962569978805273392011548003265232046747489610649216346496003637300872889152476003598178386440519392856360516657788684275528523332189830008441304145847545843421627284305363985914218118251838396639250841078038967341320960618932306120840705033809278716944482047496682373572708985094006536536520536010886483294609752466431563895742631732003512268038115378162178015100155590016548459109207819706294196607812771553535030341221020172357946675736771351709592058276785821581418846344956106725184783938481367501698276719341200370572588991542035037471171647210400491918739100179748354130685200393859352302499244803411948460100216750711098376285080425645421532735545409960507557532569251679031849014833420290471701630966343733751219612088131518684514872693269494552284082744780639480834824362732626352419880028797665103597519893216706234389990404653355107054155841862330873999806839717225274628429420953137886124580520404759474448861140247511237173275700149425330228226025819753013600366414012241134147695852616709094576731511584664945822319917437928087372457079565584786573690778562786169557709315382163683053848923403541550612390719723223788239211622126364939558980809904011763313034967595503840757468509550930284920832942049511678876662059171843072071359922622003749900220504520699609333359486000755497500028752211942150801517756876806367444888165098521911005551327243162911675073555122006432773203869087439352175609314467781578285329843834055568554286117287092175973893020675336824215630706676483897082725724430051986582554197409574213998547457324752161965219117062272519065417248292671260665990573890689138845528602297241551857042602972617056713220713290196395630374284567984431772724964945613432545320009886705484332560716964669937802893053612990946220745153569864478452806212173594147996696100748158198774469243113859536076308429185383558934749315746914175650935208370186247306038206297535454703317601005109145262917225343051322635328303033027489515443808922125861308561132278833305921789796619906055391093775099942593944254187890499684409364227908025945307068806630870083856234394737057321390636312110714170856570265847868449040952103822506667127886489357954242802434780094862960637207978445902614657955031083550888917047159561502531545871537230293520329869197520877682982519505480980863740610549139280858193923013119356571323850649588084140711667729904635685745426240070326074717137649274470462056837676491808280251128038492154172518355320047537246797657542021548311696570922217565817116958428458833148674240259020582591089550469248122061573376063514926916422826038441669892036242409539432473606830009817426866402072982040323254232257024915068554088714881701013610701868615224836837069937885836127904746718878864930567171319984255380833461923353462360906906515821799191874899608640821973088907313934346725377185404674369503944344723027102227881720188914967459708585201118458195121825014417703268316653889365013625278039916153685433385616248429711982754413106892430972012915942620070248037589200687938220119282203456605623989400386039707105234181165348362692840436805004244410158745206455454805703015356558441192409322307515893249876122376885156958726233106817051331528805046562441186845238851687684126173952994546097063840743722220568867914809344225809758342618168028634395852154697586980837647609728310554812624825743526859265686827314520569826812265225075755061068538671747900669148789719139831426701059351053387268890796936986426968261216255664101489626603730164191844528177566490651225659901562695161142582008799091307580570194339098871835095870039712363594920150593424085508973456215290421183172408343971717510320478241802190574820244439766983749944936884534314468922929612091135378541003489609655570363974185193917573325819861381201110390898888421303260091603779225156452705080409154230644694358280027886116282230234669544025883593038820211510573829772085470313470439311662873694946079550074528048476691920987155043383799578910536137163640288763692980340899200944435186943010854554701521318125994452415699620980372932404477112963916020634114708155686833676112893519165141214141484468761558362333861554772442817242987106246301454731069231592972391522593192220340282098976121223562681509695485301325639623876027466554405712408500063814141648316033286003781719649521663309805489126831819110682356914166733726292877157035836203622849071876866395414839091957931491309462330426663623682627516161898457109360881948690919984731062164915487946805052979963382595918530698437362859029910935038059853609550681555558892572135090416958235146573270103028646250013998094682211536482895008355518067928209160578707501478794165311314003229365354059859664717331288072884066972821809532226929589643246324829079152403936663888118833736120801955487669553665436959934654963852150477225719483940843109284634480498577058455329641336720988261763973116370047246722839066823379630502974743014475794520373931765683804040106456601516696158583984934592149033047670568149102295206646992792975268249971892871698320719167241738799589158640794371560089932848860720689534232968439127753662025534671460861447961249610536983487410519061626947842305664750287306156379588052107178739827411999446101234871990823375591834575872106706706177407437683805912989186137409579644594248964530095480608469750821596604234296061144020670690514010350237680384579888840888868727915880293040013885082309123056006954148894653948234199102256519215124076360716580896483396928541372062258250094997147932058359295444900793566633584767633202193934912545481563883769461642909973630395292084957265575043126014302153782051705831440601846469217293738963774218988687921955713931814293116772566645214685472578681269860198795043299443371410142477539352178129181869879700426978804751659867052957355244391325757902644145512905442461050280622774386201017358829280235989281795541496661374303369902358930017504143082394187682490455955620219060493054686755227813039929327680396766107235001237547861235141264116248949976356191120260714045538652975214050852483887344816111661882712625477089750835568479775392141169920103884253446263506176916400160137409174612204926645141658031286439537287173422448594509733535216191772327916544123726362191302354028065114556474676003199740785252567120673125934707118405352017882053684691162216617890584355276984835886135277631062520638457279163723032337083599763550277868658258752129143283202889235317623865215578914177130657006726264982696555782835630197195223652578400437253594839113772474204790122126657804584974741546260720725188116242394161419424387687393397496874396447927644718774871878570641014706851070071299286635526126963566982405394474351493176435843308508480149062390007137539438875615079560731923940582585292749095252103816522520528921193012973955770094356424230563665527209992843920412698499507611944180337145851786038083262167339004499906911856612302388734843871766700034747016593282381469432232285893252977813070436258508466449700812821902156637261434143042195612488081241454455803826731927778795864967379828865883889079963384853964589710975400797760609815545681503450132264410360004467086395109032727633355501214244306711117364075932490287390131323682393328698747759545695531648404689661915305708284925040117071204948938826067655740425385544279488024662391622929481832869331463425557962695489860755879766082237687801747661103904127283816413180726389742526100288047613548986232710486550826724086863259269672701228497912643673843493161972874808971923042021960578480395522791585982394781525277825630653338551551022632206050460841647714516058931673179075619419586501791558621236514762670603464438453390108679900592989672918028595966745412059413838435461748383398463858502698069948795307711547648123353279851219220691863822329283909150691320408663843127367802439724749545918080258592231692688470522773582988538760848986677038637996995588718744554180825597022049305564120433682543460290167021856017156513676193114735903520036727810887808137736094001593867235697641607350593806017712726047770744918231557787684329325281638071814724042315054412377687987272049371754844073868175232644803342297738849761598766834368837819715817479417230995763116383842878493831438993166087333098270306533263155765246087966788542868828215492422421622889636727415865604710503330845897409558998698360410647124383833938471725384074926081858425437047447809208013216894167357873800523412167539946751208811042774661472830790210337789628446050696310507388036379494720696603008648548032461209919062508038629046963633978800183042307846876253807140990097931994419730815466439364624968128589502498194208113339322180264117665900853775144887411319045538536887360567752255285091834264230054837289045774326325311705049779161894797365245820101786344401269703122975459286687847704115519153433897024744566502168920519987067964505850527736114360933322080640741800204311929752833846769428349758208542140816053098356839141134750000457352888418153611584844421719564353933262397352360335522654187009880115019633265630023920361812613946894777573475063428498676521321552965722379547216116414335909110871997504100889788752525467812411845122253591815822967824857325374300689269886064551469749469797277833557658338691430070471812411998802667810022837504520794601423479374493437121005197636796667981522181854519174311562246692306712849066418179356338468071761849344948523061505192111544940089118720703343238587518763304595092904575172145109068625224388028422714687497797973112608586920947989798565783201519897117408658974494188239538113204480424503978849959250797973897449335424315101020931869598852723818617959495146400030220855654296169833528951107025102311287646242264526137597132370675464769739729823275775421464530538341565238978608390018013516729322361081220743017677582038596350124677313130948232406898045611796888692650424009095479952827762825078847240712944048717461697089327304420218553474945349408506032066078099115914627683376976831343162693712064849369421767750987492317874323835798023665610254076554846769556118225559181858344170073123394979138114148918376269263682204268966980257013305932632119494935778669202399443371817125542325699459783596980285615169616779027676001675208800402471000199575460196015769125711156752744536305310618705343279601367283201168226456863711624540304482870163084577796931133407919515176795248065869037918768189250668809071634948246025368707738754729819230055656039405817114708749794014240269485323520660417469876200991394079242675349959841959410051900764247170493493484286061688827000765130810122957343695251975484108747138488150791665002506767151950025517003489460086335963205906628116258166881538117455347663979242364604431872293818951439457171999000480917680106842973464748643111911182807380707979930214239357216226563782674039924330625995567362166498503033480081762749746843131500746110343501727252083383690911681745853253197662019424552070427307172627064189287969863675648858107073777072547948032336872161459787683325943187237628650202864372581662803633203765771458424219015914603374133366232463225093948749255127348842782212442458618486295922676670210349744731613276361422602476038153832650245110964920043298009145999280392283773950290275768341524596980336714298212448235241048477002244145923634407168101362562328476819613108421037897153860731040785471662628376315474926580431641997323743447824951306178654041770756607543018414091244499369182267435608229087925555969488799930503287108397079471163225922915469589795443238665886040970891301047541332187326720641138939906557945247228787795569073940184888725504955421510196925702873375947681283647625791606766404104376018868045242614347313499132471076541752530291078234395780181629771320476916154625266190276019091335110760988715918534894215480081626617333310422258857404126987445522665865781771372290529103465952637700913366482801469762259946285962964243257758091023934468861021225317813440188848268960160352851093076497289256323212433490331087046112269683732169434302731013695325062858839196575497982375876728026861794873615542710998872011835006245691303074741112601134813468630270493216383475791934906072604882367261260586645571408496332854722922675130577469370067706594371530963289647138662913938780885780070073638082438642743517088444147077226083714889841940314845830943842398065512496553940715757174434410082074768777204559532873699990432949064647073930779338992592072377793539302107258394189083514103193563072511670236801989269093645368902609734387823206648296286537485399531678640491207158077229854733627437516782636421078749237131080836057434077679996080058221915078708728460524440552600954621391959606611153242847286192425470930347665622819810634516859659576325824267937530591835286460423035700790907173167197244099951097195300813809448217874094493564400407697835250766270880759566113128817570861078903400197282992383120374758119420980216785843959406022715135522756720851412097669936911151930864659538520897903002236873718330726544572351590178807097491235579157672325459442617701481533133117117022793882892122488130987383798113765814553703291490977504542584961728334225987341170942066672026092019112880696491080638482993965878529766235719500801883288762254090090514750629567483819759278828584616910384232375035914124329148163483145224935208608493166932529070862321604348939140862876297810487978957930803848689372808361672653577477244799833910657352830492685784016681490102590640682959253696990815974573381274674525801652369631656428518898203124626743260114583502951887420729448317856697453038084906258468106772460569791060228941081108307754409754437447371344969549234427073513144885409143506042464031115093328495276584382256613235963383890086291941298186473767725703666579401608873929106200618529190698673220951476029766303102127001506056210545191008734817222279788595327026456668628139507390221625874434929905527039035509179626580170722540873057440122626296108976802782164426746474154271213706761182605087700587969387152196853030801695377598235075801750731327534775862268847364484949027600291736492698515112605253510091923744239342602551771964538206289065723947106525690202625354731460516513680857026032259340650816142798524459998025017172814835098755388000506704734178575087820955456646325678067314013247068915942659042524677452811068383075444583889219871458615193075829971217134796115531609682708798787527874685300044143102806667932407295581309025513948696505745192633374692473586908248017579096889654119442811673067562249312490356924138166267602771411230209983752962876197293838443658080023676760982857423521838584641264536111298300279230696632866670078558818741256693268294021460093978365171895012274711195377527015258242398624534025141445324593424233043664412832494127080322344166199125418030569197884982011640177965799848414825192911619701955444457955427263105535877466827766936009850293176113151305146022554625184157841084411822143857554066249986203459092950829825474592351863689501012350086779462975497332870425628676674649272543390527959676468433788732852518467184539779756328171252889359073303597551312083656418858154332469873566887327966419138120953631383540048514258702381747705335094992786757988293556385023465440656247703739258326879638301372925783381374798848405530398857264256514546484025654622243787821719608934504508629739211422277362819557272126274158871266379376491272939755044240876139980903649519223468886885289225625104470671628905116042864618955005406330285249389796148291882146409786626314628421831870857931830741578142345679069831918373939810885088640887383842147245856415790724319657708992514097287934988065878981164467743577763147360487624353793649016793318397285618212566617721474884285997730046620111211864397851321047130322801261941305788645784784627798280427618902444920639683346118938768284212946024813997752042741107995782452010758001895250271484915009479686608273030333954057254236534190829194080236858072758298538466104769875807494775908566039095703015536030629940850918987257366024365303453245951040694359101335712525114458963317488186515694257394792782868177408044068441498661802410202015506091290341618118040120414061774814418217111159424484007222288963615301402320157523350447598392951067790443322965284303982773473449158287597736252732971452755764831401986320064103487693204413526767176933516738124785795490952334416746501030549608055336405834403732351620423265925486797465271981099852015080131247480056209125212366599363039854213544860739772523990287928339663308070929669529226843641492652776968233572459158875478568674937903900007986584855477309427410888985410564354521945368978909961815066989575794351179247167161356304551041102985497424169869749876275672641964664003672746658006616166428001601961990131265602316261481571436231373400684592815538663787264007800448057878522389896288936567686141492334830054066614925729733378685729035467411691735024324844259689133092276491887957937072903462125711806118001864459903789430058093608492731482723453222253896212517367652684358805362398431268681185184386872752972195204190756830100054820814766845077017449248287419756246283060223731700668376667783176531340049150267423414142823227337734972452338887420812936102864909297704510663039597597006252331668086788000954046497132370194200573183949890978765900038305582467754147952749866555163684106171778669148499172688527077310238497365154739317483193402068511501586697033518245182893493897289087305938625926472623965199272250264169192566499164437778502283057236635116347903208008285499783432473566134078489963607417602928266892628880032249345721859086850618001842664613517803064383966611953632361555940709730761377121378122380665270731628671533291388131483446201440795038046145510979128930544031588949204879331681986767367773851032780779833281562406963018256557055215373894239748170348663308654418906624277515631778769517389253127977674197718066937924574482081177200819582450497405628630955419707231593192184223436171669053666203331869852789692423099085292591046535371207054624039288531773550992170132960898843434423500950907426520104065491367615520193979553760487520523584028926708529901321910758870907728411376746622822266247789210833394692793931363637034898118060586817339504952633051848601102480292769725459599348528515280757513898910473137814644441296922419380296873949259257690585456442621175195390563534641050472576739130802694877755858458361687059042298454183088210158135928714635267866941172224626475230685435629616561510436338143547072663994904240141733253966998866747932282705239935999059020723140093747896274175001292935513925090334466971665793962360637068885261898152762046966206811705281215787876602236904903950607164379736907211130669210823966880754852313463230323454668208492029967407224709631833916170156358252353144700547439837818130498868187677407222612902936462890876347764789178576906764507375974977562778024243319063591047023085824822910695366644895886172660929496256246293667264433889767640169884848278640789177996136188081335596164837723166225705161593620680516743953147245314743727359965130206087616678883412024925225336287599371959033621426310627237197198933798702830880479301476549083712227122514781503597395927574421102999346656581914989564258654096674265576096931057836316409661760145823086205676183940853719484673129729897631924132184506557476849726754671040531691635999159927594809010092230238882979714388335703049975846573673414856286000884461446184482437326625496124345400509003217597799920583600498552940290159013476248037060362021725712744022246271782559604158042364247960381052938511318508958734257468130458321175921368136343258808765918111695811840672561637680686865146056501059589110192699296806625720472898277938268976522801013499957788391267665227129184562445956256800998874853850530417954063213989707845952461835424287217747942672009047821685664623739945724049539163335123076438894829075601759475028334410888968912757983161916959425277402199635135961516729448631779757020298034567640504559203012253467489818340596900204692017802489118401668017650017099891287299244908723913423015006004575738721442115471107518519952363661043597640346305534846724109071761768381731343583420742400302620958873645236488041059379363016785698613495892467157744670738834702634666792041423273432513148087640438841518085195321033985664509130714631324633737187591396361256812103157192266372742876310443664063839715818533862062047444658253898987679130341580011013743975728740890004842893526526548256888381424487766356822182530460087948848947973107976846107787309591319974256341008147361857713915514123039685062795096567574807704216138054135949571708832355525069090751783616140609518050916685635041914384931480016517416400462075778392599792902977539977200254374969253467902052250207548064158768241384129469750204317725705727849375737437823190741238297088177349684582058053000387836449402388563853355942900510566693477144403369441447379980662203584200679011331663699012541077244620124289802744683464024350128947194877993942103141514178032408144106914314492416984892739872061496775443660317594970253373726780335292419520418476978632297979107801260868443423321969111226584293544444759675452960438890527453565938303233841700451747894548690883604383855975504571239065688119071016297422607777923193976911957631698163830282063461162488002290695547582233553535696624019961751353614137662673778266416374666747480824662438367503655807739438495894266555137818823836187295839794064751692967579109620486053141529024889556146176310684062104062611301466008960659498689460622919771066763154627657333988902038583459082905673391568840804979416905367584794781339491377630892242875372914354330512453626697066466382831321122025167117989447531184808106728759902011096294933902075477127519780447641833169076728315059443282058766472559583431267082507010730341751619547472064772903191906112242161004154895345721233252198629100903646720784005829894129698565197840742530700825293523728162290723916719254821090717464792784472318535560068515057963973293532012493062367651703675228173639353494299806656185531932294879251207327176968181486909426307781491436862887341213991202262352593454522214013253577858216148217748032517086663154264663112642676807276334824820117299518368867274227656145210253386870735517067313541340723261524775718712208833798018987074076364838415424479828474960574229409720091288433957678696149646254731075742499046491100665813856708305458837863581083171657753687996076424019294099025250743640580010457657331685997664986287007851487737210499878957379482860145418485358576527788570551433509640343891597613367600380032469145007302078311646642450860924243691460134354935197946946534857162437454810426956355908915673116820813488256746417263912635720114211186286400084991648933441277061161327882734836259922953119973064263335735960886440570134686372008713677943953976336732803092795361848811452407558034983695735302998313838729890088711816439117930924892972238825245997498574958558199621695741547595775475972319769455089445493428627841088736139266230997978825788774518175250773300607089503392494971077756394942983124539784136253521550922204482979327810869261282577407220730453404593990300346286949045530973022506297871444457863243991569264217134788236297240197060468300062099865991710968490002868253273077167703415359424945473940013681194722550407616009702624971510941713471192045223911932308276931573176882341938105942663151554476538091797495780695078782154659783341607234458054377343787672308340893536369942298929356303133086724217718575296101064609901502452272976162655439246995022224655109090768128387076389262878042195023409450137127299079672505451525846751628007527074538040244850217815002156510737264628075375739031924571805347108892195835458170132508993439010645666035120051823441006561258910395896688664342268138219193914697393292957209283617366236691416734899268425581414401184782478354381629713096397227693327821902525362172818963269570706799108944217516288194547616453657638915783465699311255326028806277067516534005493016515825035298499078803780476374526472340197960322469759921429533634960840776051400833947457698198811594940595006547455191428840678026768322726090693435107252555256498847053435435292952357258457979777366201790903993180345644083002684947018077895147677451937800096729772373096379054302738678180237868842634330369253136797847858433280130884796549562657400980508389566631492236761332469112499748053655117134869595104843024846079244951356801492458028886561559006649506877678895416762011782019189343100622844878858396201921200177220449292266414593767028449878656634647256521963464775408621663857964891383022260124934707164290489606541961982570440557844543704118184321559328241985036940613236817259109055646899017385946982804898008596322177651886677400934953745980172250181770266492061294173572437401408062499669585010230940676717427458710657440840589835260377160266208263060781983090203034739153809365809772470359673271394301558640551216985493521451530620880605995550746820527178490933684933904374343065119423045075988215314945388268707460368895599209420720361494212139442364637461577187109617226211780906096949182941180280043320755365963931042994403419845139268876805250986390083030298233643478386399737782711774268972982117285408002972472571684877783477288287221236019897975470788693613705695356903767694459672831396107550239669555869468017801549681371378958214295842221780040073421240896224924074552996101464829231153210517940043538503785221970565166080195337028851649372266916553777888422648071871127187374718863084055411191425311541082380677074870056057358770852914443499962953080446225050366974725488051317435150217259487707598225007672684304444340514277246188162574115659836802363751267602941250376537351644809275163300485817417224179910719111453879240136240869806022929384261018176492854045823403768444963813493412969116578183162152023842338071600800264059320163264786253028368184626275337050331530213105681344864758185285258130130568828318099085082539436420012578440741975668156975153120759964296229232792513066380665941920944199729405837029537021187381091774002412146502657425099663426040056680882152591716367998933760534220526703052148423777562121213310833266122902919732176687288585251579447030168988941528956062571547214159682305941477895159674513581792448986231060069063331789019696842932873065636389050563021867124306894392513085899325896264075306700777559213272605851306485122224978479601957013638973158104163886951240630344384654384138489554450868972313138336744612656554885983710700697092685215702676758989391979808061543859246359272033145029246329300728890160440858458640800358334150873176702990707640480375651085819959353118110184223177894053953440525501580138485694263019056887239452295084466315587007751458691717447206195217612525303885823181691344445408515171021534050393280071796263486266961953223267939552968555388892802415609963110995134164732411633827660673733976888943674315478460082072285356324338326960633443397672366657638720470382319079423933451935703108148510365853561599208617062981985360078382453837822289505792463067372054262670468397260376307443972961660277079246796089774698500142858492810063493762565224772621614941059124706961394275092754580335170572674732776821342549540400049842733019648028591100098940233403364754185585014511125204375003942135649386982343244962675877262542567197709861021638138258754098263255647283598785580945803505811975229644662307339091180882497631492522553353347899862476355124018964294822692445093075744770367084544487726954285133020106854729577247835844868780440955845291489724315485549157793602049738650947706309302020222006329932223488066060149625573092871784607144814388085815658431746722786630253675821616186149741854713714457556827994255203657044243015530146909916892923416584014675853125982516339319950614147170629962919984927248922373428523287835933540071219752788046782148016339082615203950283251607699543284543033267576254382115267021408412514805029676947589727517625555144381930212973744996750193462047804517940962383983222488988538544615339463227921264249351590775556648753520704599592551035832238827504179861519908543453902768936099589878875294694254887430694827289054681679818130026196536104221841705250372000965919152187331760072919646120947669492655966467226451771716240605054070163844979224177768795099396704637483750857120530544038564984668417182011077566258453474244226026887828509231408548271068923345407570055091822574555727830219725107517133603281525466565464740023386574535231119590908370816997547254675052009162506737669327798855810625195837190672930302646536179274104143996233376967561586519117784542667107992943168839315900868195935784193336554318912408688044570897117126648067520992111058028160722403375662720664094415537846554930594846022376053238056617905555187941610002839448685546423032778803156162221253349268876247101400407142795855785274452012324874018961699382103646376180891264253424474916581957719452226365787798572070856621447995486861716035805478423896733411072898816012834074728823879285216952246130281687457932721822681296851613058012106759255782553794470029370340136528486380176075855346846348137681772059906232234008688568649375183063370539173324137096044171916708767665469589771513397091904574718731289033262940776231379128329713223338237018114561861810155997828731064293733446863203773860014529587604825461957463816464406979732239902905889794927368759306162696007545046838642139870604007614632091232555409744339789186913336189340577429271771179857967697981074786079406352365288349855920184314264599887357673222210554492440072150890795616054843698662178804090737448926262588222826172092873956747863081216875456940268457248927954300491910336955930539848016720851413980717663660109185180528141218657212890397316745424011602493684941418271323319221419436118540014006866686376877636492188820941961722229801704540155102376839946813114025361114274802905728586464634509658110668087809202198527666680327083994282917826019321130016140058241259812823008771514990879764197623634958621054455802284889122914395421071572828397978828438105756486713694164639301993624946934445490320721491616329900273135707632300028351002016941488421341582757274465211310959680886083423442618788378343589977106285227705212123518404671407191606754627920447788413863053094842285492819962660360929266050414859126475578688550731613368982675705710887553398182619012105724845353894821768035834357486292073858951979897836294354655086304720807185048477307953694241198282151712485042627019344281339727140842229223333936799501630831368117424481933171367337894337381455298168095469459023822882478555853823071176714295234943427107699780602956005154522931241730065453436008282154166618200302608985166898900424357790309438576938530629304808876521756035687176250222065056023219011330962166466242515824643900108011002393283354907002315672938477134509774928060752219341611056700895766615782904273777290237440646120112040166415186190916525157276668329122010550360408871882562439686279432195339716042384644225603097979307392874582384479306673614757676313611047882298463010293845772588752688293785242973644322409502697984006872346795937637172418569255617575073101658644492119194669048704862000448582716454496277666011818890103481437809407249487541865884997160294650268663765977840407359933054880157854749195837962113825421399941098376862024958886042000189510488227227988336470960113528446835571755979456987408356286009736136966446167091945246680677390686004883112719162816612784605647165817470274336427319812033438247949411582611195991118060415617763032655440531749435319998652864032003403927294016518187358475771444016462893209790213084589071016295423776244455936474527371451543579613410406513351781803938796720900770975839026689006832379296529245350658612467348236649624034311323833838414703122060830445406818574251097030750087993347957140083252166267229169538006199352105923371583589625745059005945661342443113791145929382084797991978014825964946079030784399805777721625338453630029583952615628459012613794020990242568653254076349563950382797781498181166127717249119747574320178335104457206594195819554900830239801656216096232196391435816259495278532414560647578813331745352043260033048440255420330513607519123558872311959538478567778257321709867969849081982632331936421230208943021992220603180109516183737353887150122292338931654248272617005572216346094963773791673594890922112493938371181100252464251016921121752434127536253398406622531287426153845655096219970362791856226879889626608905079611321125346002517120212201212197165415416244016081484503866859663739585140414611352996554157566545894155179660728471670747636117571726314136360815039669705887732324241087187113963624735784746155934377481419671812774707937451278282675573559400618685180403056847155179699699321791984120039344678516966355209845273143338376765684256421896851439375245131485887864886943095775356534235665525341825342084370150387665445345284861525682721461045916462252183021544996232376167602358684401906064646894536316122436932495333926762753619857923791753325905450645871973445034383343469313890585607954456605379985817518229264849432186967199637977148987786398013053441568654383360165493651481064744114802281661822627774824737912111144235833629012400649996500096562398155857148683862383189791987035968980231193997562798979847132613571240140083352574458419519750410751708270979200233855645349699890552719764140364373523486640704530282755648145455752815476012147331613249812320248949200961340691771695082714903574853810804943381959930462945867602511673495435051540238049816421678860149751164057558978367751868958947150047872881201723048313130612925712275386261737752559699536933210885582527434575853040391838861036540670339082689143045091620658437861709124680948402242414532773117217736840421642347662875786920965461810486669055653468642109442233867460027287558450093103940085848209828126118784459533823227942516323552578000948662289590927662479824048164643667717707633526312809872493606039858017580566878600168856865476509657748893221002299720165893771958786326832908520976014880167044952303717516009774883003628594807119688026984928628224997373791921440886633331313901061817784816115510945338905145856194284090827534966760453344689422425742282952985132620417283143166754751073556318886592096368646564198079432988580225851225092717851239370656496491601000677872507547436537373852938712912794259132952856292351737806136393121373604972091497585481719525548686956279766476734408817594375851820532503909057470967739396977856802488156618922835238849309977021480787267141873958572567063334988290576470217615560003456713704174328567997749249232889905491277969518127560951149619891864598008090398950722367746957142775917060286724191522859043690446367446244160215787818665414627570185024521570320322146404630734243911228872460083188969405027166155370766499128822453113495749827423448513073654231965192017178167118542615272468525057716701900796786324125887000329934899653295901960777882843052001823818578792729247247983628016446367924780811921097348675870067653762785372184839240777167820290673595927952094084051514285156419291997553619977453637269873429193091180072914391462004558754917163736955968229673154609270988464497206067721472837350666389668444871908322173688517064103320698122674605734165168176298985094926075610165063754317985244635995241405905102749080597438783357023352072499806299082836615378015212244720432122583410904885410237933967423062915860640077254662788131297690055049784323394291230597767971016198372413422089368502400354424581177864979530065726199131870548550518765116254029606796900435069493540784975830270181173953517554490562242736452207816443139573623823811109816998552152231075674144852994242961045912906201879959470739616794222726341392654449097066227562592726340077507965492389535929521352397864907971948956292154195222630970197052800071436631040041530028135535868592312224676277846720504621008578456193233905845840562532012802967478105371023332979682292253453652347119974355916542843954067352832755519085330218072162211468537610323369633054290582942094770754998061055457153514338674433059631741318762625326102030952040636999423825695507109764335611018895881268629485942050010554693716528658519199178537791942360139024584185399295219761208504372010321934646311090945339398528467846515971905750752027980007625515132332656848915185249244964033166396476856856740834411072352959516054806583606628715843351732497635108698628345135161565211551222193874658468555365394591134203674403858649942362047110652441131408582655571963643596226269258256456914711939355655020154266858190492267781758165082418164733153233457547835335045213362580169693109454393578930452092328768694263699092484960327747762822973270287483762195523188454826700177411149251220234298673959033193253431143217091606995058684461444265252825990483687575218829877131565521169619037076421689218431768888082168880525108760908129583618514118375123285014906768776232747827320774778680499342963074033500494633553394839362168162727316330307976659130682887670830103457148099297620777765713194812444318989425157551678501935086225152467581078451024530687837710606840185529186578163596680825995729838646152259020126285579054402651697249645755242728131435699807610313728209178343581388567101712076806483147599520072009081017649490603257157221001192784804384133238106240768483767697330984451465662533860456996593787708077782863857043151132469229408288768402727219129255138377441318798150282779556773463127660841689595742665701789627524286251461607916675028896805373959248606108025308772460422962029698176340482634037632490860141065238820576647198008487132803322476711892123465442087023938434515733310703370087995730680564895412103807757962696392304153145387956857220445454195866384337202452643411947099770874969876709604616876969733715623851548583667876036694713620203910717488987967882086003573288829855159436538938899677865749770255935785673238252830071461408483291622149950809433907571088064592685898130513154098201825794772044449245666002655333479872586999197307188676822369131257080576768116576867584134939249704140114543103562151650839674953962776968788583381238759039760709281592500203962116444492266237470111729614289542670805204005713295219946975360471592014078246243609100579840663529398891941371269148212024282818467614128832640529452899232449797632176957907549878276611921390604287372313335688096519531443402937233607337676639978470965874440214171184060356087909020439707117886161671355779453618720618152880662655296654740758264565874196099835903896411988786405079530135653048814952510444367470188599568977571769114465527458343851199854654789713267301762830721776818601613203452956969500695553573040432237538496004677812041447592145372488869090695252833925216493906233503307969092585893515590137525193486454531798804061061188903975770859475781124021055671903142989712822151952510641554464055979770053752253466176426201557626105390011101697403616297138750424661084524326171566134930988923601012633595054680079237706506691669791913153100273152815783017562987644568056015217667128048833020489332859874660720991873904804876268469016640266681072392566301701490695569962771092079412876478079458295277675018692892579994669434880738328566401722842644572164836506114492997235768667356407993615538758502246076952923131745639812407762069032936809172088204396862902850493255296859516740613535774181065621226460235615855926003758086657671952154133872243401982622178557445104340495075122615718003194308716627911494101559113374941321266943731389601665824378174450556430815972551022304518508611632238018739585242453646024621036795404963217008056714071989271579968948003709968623967565278098834040247826968982749735834187458952933918002048876758258224759471411115206021323569264161100951728060099522763864276430560009931349883775782738567124515783831674217703511755225055897282243616765067390022472206452445609009973235591638683326889063700266301113413903073628461381148970884756411742201028908580210029221405333190414133750166781638889810961627445191951845417704228497186922954676525828161282210725852351850990745865043368784515321874307483182484591422969819936785735655506751731408660585082374462468525504175356764368678399008054017743852295430816897095030367784093032665058936148170455716239509059008730829952439320728601336233159211173770183511097520047035890869031416316772513312640485085342684960524811712111922526499202593227210330404167181008698282527726586591506609266220481688039824306772004481710136021157543691566036589751324551054510978162015994105607382949761688642242783265971514606725778010225989390057815671983933030489554627566445283879353918142794716535939782974891097012717238957866645720231362778408342342729349634359278521249031218581645716524468972476424817343119611505056122810175941331989497138416689404404683574763209123009543059513810655942375111885432652725635705943347675606799834828488294152609343776281609440644872700750830352060776586999462875127681264577367880407264241832746299984540532918672130706702933401526000120019237169027314345561864568670179602124519531374003951985614567152041319610160143150337100723354274863691210249594573953144300869611040754589953743686213422977257226621541109485947798546063144550761139024495723341720561461076310228816962887971234931916177702786323635974293123002678055293829108798242646200791980815598465344339464584450981181350540396417622664723786047763848435578910168661201301004444300612497763819195171778985398601975129814269585930875869644682946291842865522577034260967733999240456608490673237745269639803758268168043796000667374659004530998896728272523456679323022915785303052008072428845891876385496168994640921861000212867069517418067245117838455040133325406696925079933126896546298965045207747105765607166568418359496923359416052329548246358783617497933755436231637422139268400656902123225690849207217422845494078848499025526825238929692409352966675104869678307383778851084096145349094083989487453477902035544821349021359503843927411826885063516822851312701532180268593315955204382284669661203839682486421863073516753517264422632673430194185525838119514151184719548277510123759513106678630260636227372077966202101786667193255852619869177482961909989084922354465598721827327884974184379904054042145652270010813918288966018350785815989409070532281920799017778221613404525139034946820808181480515049394460118134710639122517206778828847341452528235513612194482268268703012101210488220315859552522499821492933215084895712206818614975267416374487118628085763953299921273867911285369776226364891215367632824629855334439540404718538820741702794583630008906352879836180091428819014771974549880232607016985524607479384812101848511158978093455654900450946268059774514666811233840543850806624874740176634790556209921370364702211399988131579239463831627618514023317957902312246901480579744948688507618421484647112224384054132630623541454851895419380830380442548536189042216615917000094416376613736465660631707552421578173057734789424789767601463436696916540017242690515980582031272852694131501022903418293551641773205809404495726194690608674228832174542408299656747154918840969475530153325525256512473028378613742874844789048001491935341237192287394659131875450087035505029492942966348526018754749888332059988568124120982535614303619924904004802358548137970254215023427291026620271190061763554021897559658179460415081751830257581093224867931723077479770991287386535864463256496872629013881498497491849890393691942135863695531049178485995095848113978689125385808667940537025105346879453754828837430467886656103607015952098273273322853669982711892692080248840627542584693872923234229780101239441869470887179590614615317495109841253201663558758462230450367349341095230817480990597795730079122934360352649518981256825305880388928782561047875903396079279773520680159573174460223246845809500104330929099071164502894823675805179118509011293570717608169788691119130914773546081777355071455405304137242140377497989402537676728365134816848454235262823344564603030139298113442724453486046114380420328302538071321052023367324644112711459276276067450696446614733551071766675715461399091326707062950740870119117940817502476597289447522974101029661239830189069815580501632114986172004822788530790143800477544443578348758735999309425013879744678218925399842779006092210278973801983296138720286447612554038486786835534254338158199482941127524643090797233214635360337555752621694116102216607274001059463482050828828718083843102171761061110619694676670462809279123385367334789888652742083846130193522435861737860112616952409436058342468731935827614868263362741636336826699817451380491489103203493473999169697762355701234948014425856042718319358783868960794380472917160379667774837538524230746667301831025431279981760670239414541407725794452447352978776917989641170088741978036156779863805604042663691990062506892960317461155373910467768102252734530294809630081002653056138837286565505183881794937412718489053167692113449017768695377515867376884875561748522206822507853472013277400305067573039505384146254897435352764427817781462508355420777804755474382168464900550190713705676609347313948749855266041628441458472265316668651094982064382130931510265327762222260960347148220818405467773075470942585709523873004728118432459852949990824651153509269674590510728257862783045012830243869733312772903476751689654254906405909949674058942950494275207071513476697858826017169175106554102883514218924280578492284853306941609576857347506700049409974004492570861370364163021578466307621290427598557076675164162648280837809914675377281632168292895834528832524430889885564251392380946507900173183461452835061435932731256991179694616173438703042289606791726657986925449209886755596350713862923534373430207072155599672193213693114905424598889528651563305558244592796412293586226043080243926244591752289428200917373414840933731976628087598711169884414720248271345127118120744578257917359700834456294841200693316457046066441355048208089383603274773069617899818180684257254299582158131868093681940853596364300872527278807244241064031111813291851549860794855776901185901667465848512023332561982096416015687927447433257043228253214392643177199323567304689356375824163637309475879342147837664129662022179279282428892426431983658883056701832299625989404122609879022386101366378735769231362106534011169829167815941442597155325822253385821692222692478473631087898293052508864096829197917229965060053255949734555616536211255321664720773196400970196729181650410471605352609044278267495643142288334525279258749516970101712425208774192709991841779773022391289393010471067857172566989622018955686122488234267635375758161143035629178624679586125993216993467700179968488710045788054573446027105620379940512143647458348844209021888870174149785497903238156603336555949798431368936101667527810485847363983325883591768404961401141343792812554089933566731646973076152964206665463665845108057550509825150490544611285136899365998672603584645018297343014188080558137033841680410011342912744177805055958650968400114242824648062624528645530879720374508679023839740017747187680856887059184916493747910946026012319699872259933054482668267358027787006000372201274791375908641367536529209573535833002462690464965323304997225471476988370116261400916343610547432440791281030891676437954527412777981272806991756881023799934595306495552606584449073767682735791886501161133159989169895487740391522565035755408110279460076998773693650767869580136527759221045915670050612893116608968971208513250965975787515093912465171658469190334270978872782245590911354085121528694724780452364182947805059167437634114645188269210920983411670346231294208096506959541710207533453467660256472426904242349617992942665812686409073329822895356662000722712787409742279800591177003069522960017443786525917277962639616430778886421116477201381135028819574131631008859604603791037889416382892771148751043112150962584244992842468400197961943586943124162198222427529873913327735305950052152081052291602645879160024263473313345503970570355558189936260018636706746907411727680259660205903671348946294342407540209525706579471191324771166593223625752424549150603389041157812787661689834097666820217595608990768129678030956761027760718819441950579821756407971753502319983285825153101713355639172708189336984185760458674824425115899267440648546323955612546725200924519793206067810000817856535338937637168887875485229103225179890457490261228366398841567841857933143574851987804438333032934156964807967574291680029196979216849444351636904391866656634336943138787944529558245947031601029328002604116364096645730522347981192335153186293048592276143724945816066593377858049728743641295818247194746968245019841365654577769890068296437683489896247773517433905944952006822350451695569956591690062284177021623046907827167060124154572429467328574681664847304621886084008459632696174884359929405408363830395031787501801975618708023423714497507090772145733292514522050392378440084771860651464001417063305912862898811048721919913161176422498602539404795703959904215669022250631152786059682588622185398252516221683624310926650078313273538988508490003465786872715922867706224614245930674596375207649443481234679070383848315722358186664370722532876983895663751384575301166805496083861768326871826352365432673101252319903071339562955839108238564544722887398212499795610201855933355112203448176007661763342221672363222941178764205703463573776713712182278675979056835664373186136262140374219538312445749086540044143896751293959186917281926979653015981546045627656505963333557119638793252321167160070604628882993189319604688958082869774543907051519743864736166237817544961463438800454737868170301659215017657345214950053905840407571314205444748630468250546243904550381146413187841806501468407481166269902208670989804038052473501692171470138894425968867863042202561499666741141085753092060830423731126156473310151125436814535485440639418573293421107220850708923832653041905737835087449950342431176094561517500852432266658744471638586857238656303991031392035688167820169241532590147483197582791612233354462039439519201971191118780831767841234493586880061452596129604135099771616631374220304950611548060492716209256966105004813909530378599102628357163973618639405006391353272331359978661518183015778044630411440375344376586907457003462467933703882373613700680572817088584926417996360089498281573866665476756182885950764898520860355951541940273075405094048411696390254774177174891907331949157190866890574614680277610500795269277286556712872060651138730717359258635895560529667516094825227041696286903803943421413161958853251691471208651861842229478052225627785041894397787470485097745453514719981769445847244005095323872464442319508019841196704412339697040500371864807035161579576633672789468363061691101667687925816847486188583175030449072698557563021296099306020448508111984326689840307945000062452104564520721536590408818856469281303363936603402374507725370945338888058775347404734017852322644012956601232912457516700904711476358441578879096211218424219160805672953370379122305236568888100049396925222741281902494182045689971470974711431455262271583936729858118300314135099859861969284971964966250431758658365086158567753921279261549702129570117350321881361283003709716470955219932498667718394322561286753751445659074023084595555679846622575289933435205421022807477189194186947721257347320417686818738808559788464164884517142667235077170194644513755372991873003448557775950906472079626105183620999596098713044008249274379123392657111686360244806022270411510907781460680163724992292806267000967194828426566352956593364648931252813372704676200449543210826142547826533889647792775284837887279497273863847426961059716592191069985899633786331509982010100533084587265470893357950897160992171074145998870404638238224753387140331533207307928661198356447016882182083394329961926658697483199287174559342863453788805701273220828918537627091438445591068613341490876087308471013451681967149190513889258499294107185861587037999018046752252065690466372377620032026931125081992513440906135319796387237254375114309770560600960592337661283002400259821461345168164967448963754305907717246607228590612878151053431171685251904471478560009398125449814362689384919142590460585406686903886721304363846329505357920558008500577270273891411435514954760636463195669934106428669399619644632102051236791525228238921365081208311932822212098697265342019692651815350362406230669393137367861223243998312368830537866519937927387337898146921750994862476092804943734892267727517212040989932452332760842132210582166418330942098416391477908303011148619294661206856404795716289253270610715357410141882921522742763226188957549516208115093764885919355933502239099274146707945968579137323709043542978999593810091705105837318678332464445871079987166315458995318053882544073505480908828390114418184276081881278679837844145581510408706108444673865312938511016340089371349421664330104465212116247008669770026499551736092103293349990764911341455883950212269487650184840134529107202540426726320256306916965181839472507780293696520979825900376638666689098810986711363531711868966674127324402302637716227501084835607957121632924742154206195046416875073300907835205994687051945988965995967770472277738716286124826356162757188473399030027944432667574051877803129169928807695412127700655775823735763937772481992044316123082884186731264444023326536389136713360251368359800549708889106867926512233640958931364709095397845532895819495571009946396324606091901704688598181185320391678528605265775466999188777363077846956616788235828804893703076333803731212564743320474637533078084321537337511346228044990314919286060073231246534837347334766496453605149508247675926713603454848982850448850701190826386428758599743145234041884344670010272875609376662001750947304522928336333897224320387117088868770615268906780213054725313373686023631833010025053414054308279917902332678566917347751833772026678206167210523265863780647966644883188321574951019902536185265741371548184794504220506974274944276834678243809721764974436262702299433771821510262870946640906275162965096389864142967225499298743063244060244928908870894020974096729717940745115184490706540293342803949577208975068937629836699720046522668209079968513596830737102522845715940469829993183550501269644136188850340519538343545339916035576290221603347477768453548740915753955931368082787139165144750777863445434299565503966197642695371142781159715046228117960694094288283847605432257896667521334842308072470931064664195370821674786359673257632444610286880193459679647608674365199643670855281635034569462665037399840790071082524940304695418948612300461434977513129112761199410995629092191867049327007137140368963945753724645907757447184138329984266849470521555549824947282188798876305514857875413995572048740428001442422797746624543565378023584945229556948998697474741132196664426711147678139915457261347121866228996382102324575797720089822146774517543676876735544188873119915002649594963596197999346596142714570198831127544613368091404499393434906058385737774951962714240552233166378473891381048740369938520847103481843376181953983070235870204204899314956121786839861010150604087959213433107759292464967455891857264801133075913327719022901170576306479022650445932389665414422565540314252345732227312488157585536474728570742387758041139843332017165379884968338721962240768688035593981513673786299941705096437947190939627840804127457704954807223655179071548077775709171863008504987642270933568193749868584983318364747297211375091054511612743165051059624315399427863379948473519561516847912149526683546412095080089842754620085317799611296924781119996091659523560439726549894028534386738619182881858920248138675537570245336379940145951044570377582503704692360778150739862984596322216926979302220803207824827924239174246910057991782043273152264677966208409947461750578895974673936227756671264560083851441870344881237238610751001095540520918580519918553225024349050584744331385738031633820157370455730607454281627455446229850171348626761748942584172827235115524941656343183093948084948277770008570707523495352868012563852182577718092433807132725757047496233404748919782371557325171632296900479883168765247056576266213922641262861154526597130554240595452147037572524656599750889581430309421971365007958358977651205953266831690610373406366097459341130363981038280257059584566154881628149663004380061771680058534518056783498655557683242928460227378174149462184354767786354789490693959949227819170277627203412488247740701742747049282710782753097981696188954499336276330225976295777696471196677396045118633028590124213332932230717853377797138964868640213182467634000353767999404913728881957366415499192803989596742170354368785021057471985622002021020493624216978659157018874416470791477605132615266688573284115962637215513612858335060965313955980467540607822612030318221440798061932595696972612884903084948887373851017158395256841505867055779716952526351835727712058473989466419797857503663886804712205460630126935580910717138296489879563130210142109787526415191655433129697421209472759010526532756743134448623395425483605908068216758398246738446689770554061609325821279654528899491007525700479830322463592087260519395784058039052940660614141802968861248870396691232715623447744146821292681264280272398592091123344824303097753793213779669722932645424768204538897704096199321093069860027020405051428195929315684785031696500819492742422266371679129668795729496947070502073136059010795435330860662203796759170153712545958235498295820139827888989036487133608604600759389545389560830845222605675508764392030606895458834481777254076955098638003929231504282866577788062513727704303790256236281228748077561332092719694249919704620699071353843681739098105629752296799289517299251819988314686585317970916229018183835378493526237688788066071259426162507842120582415082767742574439267068590512003372324738551135322532578170796248409970486456181278909909259384590002448743059357935073770158156221694254072624454226612270007722530116103292917545866852305637705552560297419599839716004901877018140804557817198355298052136822303592178798841237567654787416210493799547301272688963760372460834330373633812314080157011829383469022605698632801261947585146949082370985726058580646723377473441763260751193920590809996906459247098965538606772486980425988828021371085510250608707156215196809215396007744362301785399157653573062039610021774596964918075604648295451025236526470643621843291155061537237712750234290012146391574373759388404172198922233919980915094419705403498140044921596465662367888369575340710341443062143755638567254501889520788310881378277622646110052017457170132422243693400046115103630954617484086303935812307032615674583240760633580606960748364384943866486326775404206879129906627129650015415208049695699158937488581627884772839578640406413839243981832339792714396713667770688222710642770543973766035866456067204872949068772572457676887056932857991243285477420728046241974844618611989127529409460927406986892032270969830420410856637794833641888606255418617964203367573867118425765944761612053558837201230721008784627352982181339338503416690680271753805683229792773998176317493385081058576167633617103577392056519748027949758874131207539638831825722811381046549212189603499726791369458593283805627272436800945135207415113031089772357974882543276181511357333307627085562728763209601246507298188577622723231144221070369664043048886035750412381984222203469699190612995534373947092283605438247936281958266005620666592307864745302807570825841651861652301430533667589244387147672537440348284647455787642476893987706197896200496729261036262951714555456698759889333765869924102798885347351610761901856980793227510324228835344879146314416638756165066740665945524667079442586632096235111163098101602114299430415737937028157484936459284171481813350030125468086451287540587681756667805288675284639364775454492209240040058574267746382647202262284853479260590119592184205424936108928967550418635372088632792199277117718360722846188508916005943540372444342083045757891222828250728021898675438348620487111441748611818630587259372499891393097830352425217038503967554206017459336988140301594065557784419299857680727000255110257496870243020446902918838566584208330590653563317349854473993722674035923967104808118551172761432338356750213328466798479505288987828822679325431595599563173391886875176074016174156704926571612350018758633199649998766756403730775800720064787699569898346324985475455196984942018038975872522692576044176399637735985730775709460669903963683395507544621195423415928263172152411271795897158080636844799693844298529071877041197727177622096096963604125371619761495851917585487949199799640055713062343039027100004481077759032410255688634872218300935213269041975550432020441996248850528644057799271929134962779895041335044413194978462558212425041469320009254703615824886803954571727188287710183853854869631517852247373912519664947322856302181790998219568505290030551558378132849382729984638017759185935539455078705846760595581845670544211743347478184989378822586776802252230280920731296104677936559954244934077918951237937106424217253233571022612803284200925471089239115145580061248525409674595309272885453581173475595374208420297257097174985902500251883527782205665285008938100386342080927431490197395051890570272753228373864402629201838414741984150201104195676202183394223924508116245919972356148800674847716828564985522270365977404198788291064298580188754501528059645933485055507372082437425356145826185926617837955096673001531921568823229217410199558866649158991368051522223261151980791879211083976038691813040313205271773028154024542496402821081787627389448921978003681770242286418088485665787530559334145025373362521318427895041608215074949865008452960141342185431354820633136851448950434075754341777225729779159904271728840391780020651808827713961029895009197630208262682743869254686692676640412580200118669122992031920217321845609227034630889470198438657719019835659530409795141122564788386809821391028805835438478187344682374475739833208109212294955037365117466920284530182583345693428063016397191275675162995331294372758741697993976943587169692806293255885967894192518321967158489642237896736308870803265513880317391133894910343378788357518341100879787248884885123225584982389942115241516253425045310034396674679753566822165989812894278164934547506691455945772040069987636096196029068562374598792479702560073438589826151050690097905218200608139048531086367538284904428525107555384400783202997883507039129815841380859095396510518317954244063113098746655217848636796344919287124770035949200647353462624721090171894978798003560124722679985767976745311764398074774107271268451947210668440212650562445694174277334950049186742687268283896339184475203713156544761117098578943764704754745215828944329259100467078310600587301948378067836708340277735416169459382098649244002173880442355233105165328960723049812926761277170399877925573698225788344929690043620356984321221244749390120258141696704397196198780558170939653762232818842265100618806209829050181940473170335505517526079481729655399859473441087235947323573987043809144861925128234909429402332122953859796553522803017479169014628302869223045879662044808787759641292820588154325494206655142742431439616030162980629137792584506759721735050141256702106127038252797064715087780259480224028534017948615935590807377992778627703660801479725560217532341915585692569201894851763670890246115360963586317508878573080739567336849841266133053732704414509776398099114387988778877881419582528886580485197150258585725184081004739445482230926799828061582108535696527411281992323401485511699018246661568280895083883518531481723819599649748357092302322488942495221131157595751411462922653178282309129758590655021831153176795783601620878669710962456482880673638505012469288262812049781810465985133002792565534965305594753323537917902927604568050079548840249739200034834405506031843691596459999084324262070237700024659681132838468293295296321655311064885525810352993720522935569601915787240185958755889035746135065497586664135926349527854551869548532484612868960416134050366996607135971969167294859757892407346835578110969814210083628016672932609654813041945138134650112323371560357116571415815539715140405857203155387007210744994623873619700613798299857634895581013028717711947233315957430157385158953327771256609589245419349517415570486970126886739722150375941995455331154497583545008441735448510422774733220772313315679960533627807093613262777781027111773182392076345739583134145421658961740803932069846894343668433607857271007105373227141591225536539015104982504664744584829028440251346626361664165424758149421887332989127656930796171234871331653973634910683704177757169907060429258500263897319589188757576836784229030248756102782137079467501840152026092549655583241804837351607008126037130431599675022904029271735650594475292383675688747999840980527264704090563568763367770954611557941805595377687320588916221379665506144416689347093061572755958605477086397752354179088995113169764768426849451076001568906008263412999225560374940630280871874822316301153107561594937831177474933807840745166120315249198932939441358169652964708305278624980647372737482930849737360617819776717826406459037743854004484115460158245651026211935947719778700064869533543094434995256463107299780979465415494832206745562071235043147230875445738952218374807363291736864690867107811353376658189700639813500258325899074622458783341672719995220877700215763237633282812428189345819469610800728573945175253164383551461789221832205103961695063544562416516698318755274235742922982416323611785041129332352654507779295954513758381029577555526254505118278370905519038802279524663394866998054095573484171595660868575730739917416160793080639898749689183483657406302160176116356360950280217763888561774078498538306346689253849143554600039596736260320909471236894286161081262959706571630275045256474929459140144177865246489133571782914117490053148651356461419683649095817311776267683686880769223973018531505534373066340450130556637562792356475690010011864284246465456542859903785299244478079861670299169927026830964967867609571679657922756993440707902892545510322849629067186697940991751043394382997580212284699483348122607191451436521157423935184933735645932400207795872120827701495396175067321658991981731862572564642245427241365523634087591640275661490873654541275377230022284149950749638452954916632428324833355160938403692125635007220308006980715912301740606890684967685842044752899278979993525600218203145072911284245722158067470476088409705228435661027998963302362381977044744560473245261163762843431908100733707943162356958573490548649004337632392567675000682959452077813604808992344800879820904586944740968948624330825074523523130895342773587133466228824580458317205834843465760998610707674382037616397579193324628581040258001084908754863432908247672098508258803179523934105146678599366589724309921345199822915218453010232088334171133505729658204519772697470677907002091392235222363967267057432995993061881435829462137679694667541619745365809956271569718701975740024737225224414565017966685901013147020794715905455575876804777995976269885487642511752149262537800828843009198458583222924913213288686394171188850357287948807272685316110478919163457461813064360687786427528220442030820286086333824754167793734333250067771178314864099140478544843063033112268703725953219867938612797939240236996791360462667461874887018659389070007043822003040903558278837453979091512484207867783200667020229993392898063438654634678483207057936259820600469221981379973673159023631121637735276210466758955115034718709854586930118750546088994493904259328985661457327722396891192777961499938333259509636761828621024757758756309210086891194914318267000511930117641968728050675828010598661971877529871260586592722150941975442778189312689543771285738205827653494768307104738692290464764298564084982831537389018344818076376501966272232965562895293789564804223252168881308337261113503243582795423404214583333782460968071988654790182140673511705696769878905423711015989523802358001500374859771473479373177866315798420824954747217635428795073766424796863678432318900615301978097738341245972768232399805380050236597459562553474499388427608897477496307836797868605150348832805530385414000510753300601633100639273734911118459073423570356386194242963537883647993982825760692690828819614141003242804096544395338249979311238015057624838862484168720669723868447892202306211740893416788402499079376095135989396966952558522625888183540870050994530506401429302696671719948203741584045599762188848930417956545562578084153495689395134576691948789004452516137423716616817076738370681778518514527267111855735628592294159823858937369258030784308493040625127009660114972366604090475870711387055501414144209255241645826458445516389259671687860583835714509063249752672502396429162822614203642048579022414334879607892584666071785284696137581358100029642948882567187327956654586323062251672495296917349039860051027062571054726086374484482676719814486948065065994384902459508953360183310956970611737001517793787992169546385058575063971597036694393966085691129167851659283882048963687940982679664492957014130406256108412243756683951348064775729610028582971832574253049505622639335795619321724492380829375065415580929967547816921148221251257989205920461599753411764309612524629192305310012013430618801224838981656245389758599553670230164461632813654444496675136443896680846027859538651090315951719877613625376201656219992593989430947296207697024219474115381172145396067589537840312168775155329105821076037428008697585967572354982763192124825666823552662483055540364661095659025185694049715759853395750876724180009094739586971475401803781586689241845234748950009496592350371330756230798274828709296502784058649592093358887070489124300492045495870329178935220794901538095203312880097560854927649606138517389666479326286190612281137495089656444432353075556603082030255927528210605992849537172762813591662548446457996584391157614048103659016509758707915105377195496661974937502032723357002163048607594821293931432252436857095663415453966618337544939853894886664488680173309124064439463121601003586472296609280592093549745387148434019492908931578312364634334623051297966390835152107698195837037187124000042135888363475901693017282429286378128828765554582881008795460194657027404824081044762207783737195670240927960598145763294292347967539224900284475193221986731345312970412176850925583414682655651133477992768183744676127030934178074926386064627326938170343667172972467135787948778099289174690724753615388143938520315215405764031323913508022891472003602029300151466130006842132144742437550186463236789446981097778609756411419894658634370133968115493182740476960846032721558681005496437445751686817227152458034264448525231216537922653297345981066358075700553565560831094849860124500549141127011372381242728688414970748750407216644898693881422785929297959346101777288355302957507864170519259634112155111489099742932701027280259479165318946887913253019129746161453474854163357395131218930375776087029471305177572464297855219109348007406874953820070343768076319649444654747312596409282091821050634844555736909649398982585069279798787735863298336338969023772881346394315325455938783968728198823126153260753321636423698434229404717719737588236642874045902932849267860039309121179292464565076332785300967191758146305951367689120668350633628036504205769785679017111927630027274388972390469998743528589078414427359419693836230739650534108729186508821839760734843475797441333166809194742019043650646307245256713405627723511476238864606865787585611026566960685452473618096079401926436593143644774740061269451825104490930675559063201096503777757703760179589967384123075397521524040382002067070611974488013907408008198641365825350785503374985764927553654100684360584777126755081619500800886388959259677421140736013286085614823391966013932563600655303028576553655579716086776451251034517923066428068957484110603914045663330748788489126143183360026503577009684075270067240602614864675595524987580511842595978330144195430877793020154115563903174919418577118870387263823186079235749127726630737081705388248179116600650452353656049528552222822879964880929880134335492150230147845418249913189090909145753101636536450105012048059040645535279974198652787116141779345404118105867758793122229074060469406062458917719570847419350911249423045711626872046487898200061981947986087877099006236482679386263243661407063342386671866696105542191085811814186234390287096922151813384875427794518776727973092734084135352375142876997035905380407326119136722739098745495049420707740336117107153184545500022297234958061140131706256967929059702380367553733804137035093305921751799947925877831532074023333801231760272759266722005325252303618452352366041187488450308621586060498379521492894663443653238281913345253489018756140106923390691894259341559349783622389187187610329550904659949234030761299651510758282631144396371703994490291063590850831450106019814370994743159681574926552227859392476067942916129279379391611348553417013412042097110074262726569856952881275893948184335552630959643289449712388190102689884672834366075733162231402391815450717801449862198424126977758457689917588636536879580421315621299011099185746849770807126735098237223477643504723354077781129619835131433122440347651367540758004682948244253770897991033095154692788901688988627138602840897416570019750193615689426406022156868694440862559771471889854277461307166691305602524284156602614833119790726472091578610516346740298720896796002811357874421933640570818303486349490532216144664021557212465948370410154686949543846758885362327318989923237492491696981751782043498338688435451012713143704792815780295410280140010250049885041744035397771477416943416045847898214303149451860442348187794227665677510932278367712688959622815623849992314815715888469141818936220717547791959950613568631465333431822303709225226084580384958152152907189748846528394197561292711127982418370930330655223979402329897810455088228114793825753805485372706758308198050311391187650485337329963132835374458643624121798344688771188018032904987462718686940440603872413370067517623602255013341377438393593886715874374789365728944399857478138911719220691190386256145901100642069019021666536349056445174615934488029195575964215798754706735238310329319142507917654334281623236745221230541702740220389391224508237050681454751935951174166051306754911511796801489129090916543697276185126023238004435426398243034787836530017988610321477936154946773439440160732925434071524450635440407211320056496020277293604942480679251267377213805225478887749434499788204881968778228232809187126900491123457206371335271451804178088273827163610788064049717258011176405616322925732313664504319057612553439096827490734436534079874045821811452402720786447403888080218128754004171552967896041120989774251973113300801155820537865839196386321887730551578524908517528589593017517689349238333295181633433961744748922340241186851700130930356431920646286719622587828770435072929936593979988500339488534307405313895441112722228314873124256790502427113483696402238794682353941205374632753946412439434977652283011314606372092028268161046525436430131654552997914413283797544899560466665667582536452063349324158675293560266391379048786817715386909002597408955576609830300603534305699463582547791536388143799055957890339226981612150071792112129593568941769114217476333231673017794673598071893899136787504182638264712181078180123060020067902574034483743064101733865743882114626666655477160490547231520644031413880477137481197011879936049670231340136078342571191198483242027808354144662581483954378319154352409382088293487379381534150390219610400059709092225425236759502869048468436476590871418294759587066993181183215946234180467742636177110654814678474065762205850915672457892652259073250782794865511962161039957140963596135898742703220037885157601529578734814360075434265852644200073901676282748160237540293144532443393165674597929511460009154076155777037814819361675246486322043773736838935807319854517882913702324533354192530350626730401701362485115639125865264046505338704503673949678135007957862436087247431864278103395801448836582318046935758282180528126987859213875423834061920765196562066652984719139943487101510916966743662117207155017405669406429657334397438303715866139846788480954557176419837331760464897861887117358288948791405155635660856277821374982013095631067644563506738366031441521443333225422740593322517289869650623882203470258216388509256232205994016018256564885249891333798871145871444657714068717077916898177412373772687321878550207662876931355156501045427674196713702683666604536290328209437734632408148020901109813576657059988325568454559932133858834531340593558766523854005677995767786752746774537809584092018243816763693491171582730715266013333569961067167040665553056465355293292105857656845591420874860155463797788131748441904713044133951863157286826214680426773400990429823992525102951191714490300347009745875318044829233996427821249542049165913702868026205473699039119284796271314158491379671233224290988007673672536475309235865191116300185047601222705790104683862758219725397080181062788428502952418910287177792225999661402149758217696375801075076657998365051695162422869325194630723849099514118401784197943251103142091383235144192866936567292849404297981144848447735860705796127702011977722182709968997425049908692757967078603105863789367147746952265174639854799671682639819753920631348682217208955150016528892117726947277551749449735734351151660132492333834823026610485342058142978280704792682644914013923061904732810916351276943524120027245757273163676640631971587914241804520931120967676351031089521352854004853553215269093442494688313294938074391182134075973875914902307182924835390536556628848455989554297673286767016113408128986079399243443168525221361326516153483174633550159574986570056606866491899389350662243832448660512444381574106938919659030781229340526684442934210022834845108014517109856820696372229764998049675265381264211048335191291265434345779436417510922762831510264824192086906368768018618550977505072934185214225476767416390780970307251396349450468281437260368412699994476686122756324811761179508637880610941461031416727837618101328134352097205530821518533651563269013985118622670592008119475707534776608219971306430657332587342278507493193661467702084400993471931215898919792550266918339739825600252773513974899134445751067725460316436416775679768157946291624422733584247913688667356534785454531486982942834521500833322916779151740437337756724308726037634254267239457371253781497059644198258652370576576292681975754738040888572183739074139675882337017755647890080385678502875736310845243567544606838816684632693348849815002144539070508696582403270431010440818635184835390208294503890565098738625470254322983396371662397673597140756215453750355761100735523170585820023952006752721827064569080947730069758003554477340855642020488979258195783952301497497306819952977401402724228218630081899992071753820179590585797545937131113780318320850065576955096155588270131987707361533224454282194758966639321336050294520299329259625142812632662920935428983977999386593910535027207473556270448436912471277455655389223768731716002864226242345616404805186905832005266234032328013527600128570485669045388027449765084776451554615849870700088137492714379295080346946878225326266113440093982137917387691199154076299643697891397553878288161372108828996061745440668252453493177069280403988316268837172019650346205366296331222299522933423100455170670231942684241062729787561725044820046245347377783115594482270859077449809892178984674061415435734633627414653181862944438311309310692785717111535136521179410379087245890870999331859561595542462158090536477209272930644887523450697102442909904083885405390923439974208079443852977624141950410939643010691204002809298049082362467447154013676116418309869524566215833062487752259195042999718562010055678871608610541194088948958612738894013288774903617505637251749728122523464959055018864095698818923904404973952663704460944071218213571755090725399969089991724100843870149033178804964985843732575728941499601378444949197976435123030512958463444598774461098925908116569627450892478534308808909652284605259695279347321982761928007178640649081169775925636777333128797428070111213712603463590345693346149478850645417914353695106036035347221855182746403801171309219070465687678395850472061224467722364412824489532740337088898500662591002275207400196542585495652348198646814948551305198196288367995147538278111447918182112908282744878218004083011554135465641957007038148684861003773829548335737208495856982825634053217323187618995782872370082236924805836295153097084389505640187056932219252550142733794264305068119211833674385366644679641667006003679150973315140957566176868797012268046137835664471041546147860433607505810588982565555337366963332893727986484565237532463957185632298394447014267721387775059035958421885329996320717359373993869449937733760252865235132635237207255794699612900928198953901662346148185163254692487474411201917167712004298146548993587845902710722378691214921443697244513596143109089171309090277211883451122759577914951667882032535851955216756591268658853166794728791383076949534574977027218844906326173418560274502795844661956830760230048086017578168272189672480551195703696996610423525227384950870728440426079781026732041150461131325199005594515999328135978061048725401936343245924545896427236204745409973079704165334703358712138004793751065858157449488123683092049696663940096875593321642770052813108043353905550316468225679566670560008570190564962978121766438045571696770203764115602129673313532087840319839479191159346389131328259388975348422083613593130834292700338202901014869533507150136907199553839352111551323896321942644103735901443185358745907352169958945378180638502299403993714200995796044057207765392629116922419337138270058729043238737796147593277755594951019992132680328914184799423656930534928951285410363981904963212803113575924491485795330141761939078669292056896062433578207612875035609578895177386668637970291156754522019438062242193886662726733596177887355593634086894715557729889915118296496784791043208486405816085842231434809981765577597031956835363854022256668255138474950041557898138571765363460614523898419044222855771466308815959711133027817106910673757526003381985583215922484976773854497718536429377323722311472683580228551366284868451058921265544565021901272103835568805380652622415303077671092885593822837738698179736817868735466856417596913099703255356670955753328923333745564865841415200012158700321493697362400364877003295166488769282318756919053935738226109353786173964094793941658718690492235215326150118218699837865472534725879800100029882099523406138681759778695765078351621552995470283747713421811920574271947512678009413479727289153500823795310202412430551132632016947788097579211812730037670112429426630311515343484714985781858744170675685190694822833926971658119858488949284994368407263126708415262972648300909854392869293044661412912693956819964711830273197621605835656816114864870292074658075414337176334064626359692313653559512284397279161374660425054552646246839838590849364639241673298577050389497965647598316838748679091633425910120980247506502941517314808211932419464640975165162637793536616058690959746927617569429877599494422893714672845447590371999041220286982754330315925424854619457013847110296236777138799381295383462712280154355593143786294674332362476100544751285667540475505767761851114850090140639826080103313593632234419769668309714352171718051655705203132517616185856129424076177315400484705547252330966684507239531479393903606277321484314999879242302740622162842961249795893423419000961105521716953485118751922836484353659229106812217166317660501364033803695070277205369369472976290381675776348974603697251751521189096417891557381268599050225979659455557858036717948472541351383474323031289040111049352315911021379569596050162124405870805691686076883329403233130636991785850806026987771154232851516090937015011064181497689127061372190899612762675733050447920087400611035240809761448131489270237492972052760175164031289042375752581453426433850370672882321068571375206476513400726519682909951657434433775645654936399992434583758572039831525516241637455279087381014012831363617030409062400814145246959113458565729189803310632082428646096362552464891390139860174477249676062873796652172900542697219743492463313876821148211389999614104810895746480057341964306636859893994508728884805792589747673244104753414468237012615732149629060831437255216559969898507058591501544723948345801377944057872881452327196899131753139033655887183730611718215011292287737511157544474733031423383056336760481026107202269489189070334106229957854100455329192480033794657990665329238758362802479567999053563383618318836581659885340519137046179080988259339130766341889597691750518244800580019159738808959974096666496902453046180977161118135531633220576985590386936973562421248336323503901417651532643459011783823498509342381748892570829504416432877753741707004804980221129792465278871797982479499284819602271990767564021277691137149755707736992171507049025888324348357312117175591287451112888756046474385314875479355697074547845750782339443344256130141035680331847664165614646749713807874897568267947710066809718129052652458719899232049552952643402479081865792148297414341898500248674752846892169624402979564215407408388728260242831189130238221186153026085132426586787322308460936909809536650855939178407446568727855415040652743645522063040644923411408116610466769455551695954555275800670594244805471552211706696771156731064151514701694159061771473412812263693610025934133902999645975617677737272169530774678165191687403559645854379123565696940628228219929051956995244662053762101753725084334499659180770654455329473661690026282102974477343811691950849887619779821949493486727704376602196588746115820513264021169190805574281838051667985962773744885344862217294061975642193565486624100638486124367832665051728355273279283835317759277385204912553965275817761456125312033027866009906986411671128297088972190176008342291066079073232095009142957902030163732744202008238828514252183611872795542572585939743815318120519396564773361167364455198698592513518506875096531225118058927326277022400163956010199258665240298356690468913058207504559195215498993912129192920403423939938263750147729635879540808161358858909015548711153726530099174975156985688399493769806590371648592802937633705497350836554375964649118057276503597471515582470358479368691566990094516257445991254206942327344579211358085481269817967954657383914949396502404834522789187622635841608755530752141044196338996978867561860661426271686579683534350076391684220589095270226656207240420146398903028202181110612687900260211703436419517909307441006355721363602375957805449289578622755533261479620950636076898097311304551467273250991344823322111006958276672177823258905575307402090102002493636647190446569464540798964752274969351530031072136739028760531304006284672184751076102565901570846451892504231518390810936795899241830849868469980284361863982034728011990144325961504774706063089709786852728984287508634256016958867570414136725083023901960408083119810017965681568656662741773774055185861257204629618812035207796811889155042624435478651857976949080892208763140914345886048519043112683717789437068977401030038462582629655963596895121270467058640536749344081190110388410571952550204473841856216392433151644703432481493074551806303883514889837101909552805708894236358986409927272315424703594205383970264272022120019653892102358041930588652376707334548454923404723587244548959977078014553367457922718733790150162824580396483334037643027777794418183873644225592379930612145931523600056528850183922789004306314936253014133572050920407347466079739349678785287871051247488407876963929208930126974369297913996525792612203877491122426674195696170027422147135535599413066875697020298478203448010543016816336410590547252629538638875285872627128157231246418938189144263053088497514493874695726203206301334385303841280116942723161212607051755973705220575109785234936748562432266996544308130412412090826944306730586289635402689078160346946535380636045513809424686647135478289208467315378395345780971217728945340339653332853254353894844781437388323519028106534055536022559458294144353162714973863277780545774222244849470949158996020687161733851586786839676562071566634835513144631765512904627899109304707348579065098606996120055736360848062790480908461953202929652803149215777474872142734784072276395562870821581153446636021848888091820641835768174166879505325105462751141730441811346510741370285873900156627262019365597300999665387126809185427536104033821674825284030366203431704451997961094756730839878956129971535461812347082818031873194659721840500162283580600505563686814584960140124425348844891470774235782715579598103264548641393427705236575301827943201416190106281495460880480854622137204060889095551832962646404478247471329793101872603459849104710772931703822896214073834219566646442396829285368360530730194833171587299761741588261516664923164990681115788930493071336391975767627982342132350729358276169246790854119212564181408820528740933118218326657512404271319341585846981276074156931818137412924944837587988156576662042236471681492832161292998162585693402800918982208059458319801626065873763022052601920703826097616495135792872068862417773929510899672075052876704765041909827590961285302018983422230717131685677982905207456079711503961275441712996383789664208454713048284001670871908864530491507419090066019746908842603297865144278008982927920052515584084064513132857584099758247634746884705072699398719142205592751184292741259280812411391983469293854462203000803045277932686006645741783629366595018999244733206876250567337321843173775079838707376129592028819885135431477586186171400048527070737045594503776695751396079373069958835551459068924755497003708188089285266659867501709914520305506621362928946997584736999239164015390845639475867397669202561018456461754929429615196499071404492095004653434753624776697741774274091982741287068518651302358586271076849684727685616190284607845409371108521577889518432453746843471837643877989703137535081989365104630921007400036154923465250783883627223690206029136422946721630696174719368420479185668835470618888852570572777495263030482341558400588397054766982012067591649711567762070237376320180801865989227678677467020400037778477215084469210210460033532927068968119827929139067501984590815537955410706054618470283796074844666098856394608905575144123698094729324363654141645490556062376353073634033507893313573592896208574066006256729211297394531968090322209354184795128886572526224484856403280063793901923442405433727394813105207470172823666710151499637350077369688042934278231170385358595808832943502602369292557640206364427536368173605827096425946497211069251724576186614571771360130303540585317373807694230694672555482274030116314955465771993200509008214226705355363889529095583680342680880708764893839836378786690851279739464743899661288403485726372570914597685454964207956270305743843410531004348845298763848669594920131639256594073418293177100978947486659366579293028285873450840142266459406278489371849491288515954159865536392772783998749403935862794466577076713871640752616604744960311236721502051138127769550150595675178201822412832834322066226474157206391850900070820062790159718186679007677970840300264683723512390613269516433845513744607068042324541237976162566543336316534240948140390582108381007489337501519225141208828357049330166020055416262664251699554712912956061827541223405703020208615080422100250014154748190631433783179897546478553490388543458989950475892524736814457771734273432039559911402345120878966045515350655385237201563591901767890396983999912010010411823616412843323991083020030634552305364850372257828724479340151159110950078122205208087054265046387756333289871734786385395102044669114594504935518083836798104128505821001537227342847700243989227395876177974188538084113420025272415613754832708558988370352676458002870609682229196708156699133335723503492731487314320278445885829574797100914064189088373519173446334885771639069082114182059837557514049975985904724305293595330709454371375977636419067685425618757186355722445407195427223895097937381891525753379482919975885407553029255943166288691622509473241108339082480177803821883249979807949738401150063379251065515869160924452004412884786826484579548038962514702268924673159865970980085608722004866686471867918807412316088151729083010313633440428531952760349676209283577991733272139171636974768607297162881320034779625889076515727112289447443377317458517652065044784537699425113009919818839519903413765248577868897924142705184729963103818086432217676940318312308033439970186761000686492763276942208433951501946588794169934777371684564442955937660513654645385436773055750652035802240328483550572432428779706245980699868685423790776269766314537244517054192535185125611518977537620224850760835709996873793610517116287913697699175207254865725897117960462436838136213106076898129122533830453986495348117329272923097872111211048152722304842124581023202312312556285809229770415410928045426162478025049252833602258091038736820318231832376416342347612653714732854704717036282118022697745720755066811860981377146435689468817198955139788100859466682889273640901933045984007366471436210705468965900773285008158589928677314985860209525460003507139612380389546271927873416928113660024619373071721699121325862995939332585293484165535588668195113188097727611689177409713653271660910066986938651618859933188901138352561112148042267378962951543624785427524060324630096363198675045901151965687843528386582932108161828337300582896832385072916095521572629310410937784817299339950592385550992933931808686701624442082341277411224426753416169925688799849576216964242872848240305809947367365713747906151686188427832714499877115332929042823265300610534331251791101439828930435957329938383117864102890589811361772418112175107968115292009817841315848417744502080070209642553524900286087414767109451498866828978537167731084674396224658698233858297022750833996070731950605577047131065638605207419340135235768338857222207061553197458878733761445447724942531467298776049910327180590405813527554719085676995894074913429572130770981291593555064033348738816295553669990325288075394971738767025008112680655330567760795445698061810089004282435759163310108024616056181665747038078613477411036980563107718921145537173418232940772297567964452232448521749015561540690943835810563665482789407756099443209098552637817609122184798290980980562585921521674771534169843250029919517720629545987373539506119795671560879276909500881896404939086509661328372254431327696835634113506218625211842213698576158694715798870734324739161497203081512588521311977546449297484986515913550004366946395221022664088599213455451732624799459698655803778765953178514051058439931263237460394083298272871958380443196531380963541461998060618658008691816676988563173230863622870912089782110750527383249857985494389732272259508460680992916122083417247104837498799605574017924213552909698348125726040747796461356988883959057269089624120619814001107280158792564997344790313077084918782155866470447869324217846426240237523135643252576575390820516127487506868757386508180083378357181092322801901619547215848635122460004140394050822532739165650528042780874623947132268453478321425239643604257447283547177742291231279893614286288535155769719452084829408517362083051882387798732528506401000937030686295383407879233570321240097514380909426346352570798605493296845432460120665856934812947609023297814323120205570474050884568236157520267631321588470548271795558930957132014876327482372134698305839815103058763333800425494137800333917074467009397830296205656581065781786165329937389786898296347266763440269894025888869417395333619351882618302144973379064770198014842216828773662717863855497334849975597669632333386977403824404888352134322902959342276652503215436129131005285267097181902695039841398751689166021985711910512793118187966400811821139642975347454693804100779409404238195794265401396824870866988006599897752917921443494827601829795662299297995359117428239227744942501828443734781000605087213312140893724329687830035207863174334746131907721915980762658056341806718654680442597484692862695601408456747567822568785936267081650819196172375220891191038427188550952469787825111099334709972263155819531002962217096356460906641961655044600219418650450975058730478633170685834266164628909236946957535429502798170080924655896788362361431557348445456893768102861173575180148556164073668046613014759388928625066757279047163725275564816839300423464725788559102238329576871352476509345410958423843500877513668649790287258215604237652645005658350423860351268328556430866044029897947680819503919564568617001338613843299949649967162600617784747222422990150357817543943899291950506213459539255414385780135704549563748465839267868977869376827580917946650353455609923146595859316237930557597546174604839730731639060924037767929192054255012051875018175202984409917717558403303757247706616275114227992324367511210777522264419513985275017927852251197781848628061239512378940018404650737025874270725389902097461855538323565732681846070665904418182577658432943460037334651865908124377198410411545753165103365699681132014514255807949678345410727483438072380710021372340166016026076173999599216465434774502271886430560506629918551087126061687339668797049958538118573558258154815643563779787855292443214298517675475116250724748110510383879780012381185236217959662288247845296586082430567930015339943575550879216384648736283910158671333732710793674931775161580326627992195284605819809046815784358544105947889658099489896487869420375859645944906245111697253419220859602420480396038350703250660929946563590362591742028954836719973357662459127704679047488681366670869147352535732818153704068073374206924111620122324675981068412155044871067580080834054943335554100063701287151508072585829404591044277206994906011661480369476548610362998723521004151483510315021800318457141691904693260262591917563535518383145788666421678338165109638577819766105802577608813831579220922596810102492935367926641796972555761258965181581185213067047001515985845316243462407282629443898335489006008782388913576509106524152432526041037773599581977481069854732275190805319968311945401948735610369544037551932918093767588073266413797616201977518039222223234593978450454949449440260023747395423634301712739689416551423899795946910506066126103110995130171915434595591349180062704415803629788211430556662320652642453896241859241700884682412138039823241455755661095240776082044566729269078483625204321724373522375190621682990911460639613905916610548424616126163802584633411092566850891015185282533196103216873086588534793308966568827189186474663117693783836369560780176317224722182943452255876512636324815078453412463431339891879641102001850333174428920268637068802679687665222442514332807295348999180148477030617820149345669608778291279018487323639751834196374750729793695364332050632618409695086360619325233880294809343074022347331316442993407477192117459209190938292475150445679748494785430131174980006159889108152259209052839241935398140033114570060867533535424136396051368977452076633095115485207098843088769274673569850622426227628164725245265037398862772650798612405199217168347936773823638380256315115346137202714612149797797074776656386685479064107562143789246761289931952085108438541374694223584838707616234887419235081325809038385456945039392621785038207809828671785213021097254611205637552335995859376230973022993706593987012353289955151614477857222004226574663928947745316983895016966376109141392537775625415877058797510023860610851534327573484614924493265935061621201133682319533435114848884326747522474912873076320730768365614664433819544567815857518560927809131566868654558814814435370782274405670082741316961459120607226767900066440270725868604133680350654134310953991289139846549149594539313582267358685332049632643178099635867847770230225306177106821512911184219001988936331840926732469338066778787844882346173624661077788923543188705195073770601021380474306091752773252542080459513404983480494676707723511129181513408255822701192027704139808489932056006470163679187530137059343520673774813147421245387457306506643853730110670923417576054835476846035507929619856892257416785639884078527384907632950276665773013179886162861220012786202157024476234218939121015840329583343558552735328837368266757161006845092776510241288358103869892231223931707870291459495062990154950241389054265320016479426216592218830967425271668458336340366221548498797612418768206581987851558592040285012037504889336259531975413698071055204134700523230607026684110667929235780272299211615545361087192965589965539549489295776918992716129736231373966846608965640218781317183953846474499621800250061533703710972874360988965380344264065607767067459267861595665346831982317506077383418346007308867262181537026176412905437580236220654141743651355251816915637068652439106832672357518482663245642113908013247018771195703709991182442767518669856434580405741441087866182214683145727988122295038946262578437159469325883088530871707282386637574675108705958187994869248986268347346626116503436760058967440396364404031903709291927690346006224130080121406755674688008381692772924390032677544091177240062229229445450993691176623951437421407161738147799955016883376274986032472596265836405806992024201548930070207838674497954295350387334633377044438700274331647938810943300464142937349016788186070014739032606519611801391662802945175986411620590292370819344959080739903764913633153695344024010111685643517271170594217435125951814566150780416775357676409891549331264301414937718212922195104174424679938796030254727922481894627483084533261827414804176450976635712326914994407758384147340172313456144245067250929628274377597499232097705980246447918979116241528525099414514789781486125387470056387560551075081981318622045880591969308070600031462000048869295585861428475121601697211861684549771003012401323855467147258663042386490096049619931393168851046509981433241614590281979525398119456894806137211874584444441696077947464223103337437850795031538716864312377765700331220501747789817177149918512847843088699089800837487136642078273285214437151716154091909173589982101671329371146242423250046095507953468408958803628149637188581857969828498968974827937925287883288071487062107438280776124821668377109827011437001404340065768478757040890745736409126115957465943473176695439304546253835304230128192266965438028629087264854206342592288689111623193099300161036654897698934854838820894919485482422486887741415263180046517275283309251357351911020911809829348284536280219071920097700184923071500423844499849329908506617184899277976516085131254505464770435435880677822759537232253309369254629086730772786631725894930083027359621178613563416506249185175296924737635735189311217590188612971883091961913585538042380702157521021503469382863242514450706773755002589208818105234267622927018021379233836983550715434831473850558414783540474287518939999240394361010987193493401964573634860694110153367056350011005255877560344963853854405234716757828036507891321217872052532542763616429034390854023198515222777055847624825590959676528095103434706704452602208505912668674022179563045697604283581063049885905068786305910757441712852187912817142441551587388925577279327396259314578908966276984338050867378562922932413170929606322239422096945977758781169911020311172157264976652766237898579250752801171717227095732468502271974014586810664246375712651296377834255800469685947866672862725268704444663513211438054024448338513351409924159485452011186207899557079001671749426396958593211796232305332986737965359851252336577710121913286810122178534137243702679728689525797849502541948994254700204447863549679064957538109241831646436561772006176782366422804646067103042014223283437868962882166537537555038402040298441462547064393002095978762923388650010680567162844405212673789562922668299049279896531380231791772903071976983706364399307026990298538152768483709165627434458239710401008328722521032243761407192437356320584450430138485991129239175043368947945519909537568138677527740271161403930616896231011149531149171728136772020787011787535293723400720443219262044518448611674249743791040950052400351158116961776426458090289882496144885226016838990532800323502611946648191271986221993598442146059676965833473764933732893789706195860918708076109651551584879131275175221792018852450041210203654588650221360140587828455891869628690659065161065775648545224701285907870632923155976723541463788665085344721293564931700842411537669402245360133732170281299321988059421878491163903263049757793614749067052069157368924630597456553722671420081558258441691324722796449334334743571138881668878062595624253780956934881637398033475979665038462577187543417770699430112716360911772123349559841961265576750149042239953462176212207865485814255886268553101023896087220585032014473031482995226892951614421461088854681600589179411091682563744356263561909855974353294237180413962578329695007793916694083401256403289017074378033659495436283027744972010021989522944461014234125367553130169640630818692556782851267146701827749289532459783326877805779976775703037516848973380165153540088469547091518571997279795248739604107870152545059338438198732835170115408481265595758162676096032050885278109965148679164054581827190118387415568531127710133100135532226663561722649969287955228718907358092809980123084492820456991776008485305929857294892415134367688088393429099378129458165011591572052110089886074353517173564330546610716891421867742727891240892156376900726694587237653898962608766598689447005624071195270167915579635765127922589776749097856652834392108413854768290607677583687230013626595219732502620420516270488189611589528584539952969604917830280121930808381728141502946434938823753424957155559765606822653327080185459333048725779743883866781059257928566617149866812288671641974647210101769524073165558257228911129061962797056369287842842099439698681136444171604995419027754894911050190087968616058681418735976688926405838923031074339965360118923980454621960509092752345551988460443071205891625649135300073045339370098245833881335213230702834023289549520061926342575703965922154186141790641912379751335899620687324293676121661592168854061575752964017614102029265314196665877156081025197781124553174474052879685920784415052439401446223591966375354067329597066783782672334022494926596437055061011688932786856687087240549723469214537527783973832068022545081345248223070640331251435721008619775113874863931040686868718789926944619375143759049194744205711168111880267233349604249940300517979191651854605804275438800415810443048748542352850163370440439891697069217113962789038741149040525460018499667813482355017632178146652241027628771772238079303103547377605525413959966685073268022252838859885801602075705699353521949075853607682142786528141073388555601098200655284482608335686268301310914408370219729615523645445934704332918342750790752227447689926209654606169782020977844576936874449848359313714600454978931730665357497938172116308371442637462339689001220876213196807119549459120036264457975157713625346068022787738563235119014991005324236844145422824461555295243384494724943275714451912591261231138612757997734247486220562504501888057699991683896263994787879010202018285899719130132663698495091478095099875878608361442452746055654738785921127326862250704377392820303991788792346651027044005637605358956413982847214549525795114031101210856572120083758903100162302020198085212832053166534742259278884865607783051156709957040444999799696024631351063051663260505771299793923869130909993609216684230452516070420811127619140825430612457577964524811267236990695600916538261359225190290789940706474933575492729597880574508098484426862220539616360222053591997695212410112012691863368143916865215188049941779497606943831013188381829332060375413204545142695634590666120971085210494050287885448865568907060170849879630918800210103521900778041753604613187631533049531787008682312769472872503838394497471566926345099170377437971371586685634968570072704503382443059450411927318354235971233297755446828780603915955227201108394491429206790764718391981717468380073623859701506162078309183223584345335622393452109083372510520690566237946181155623649322999907105353183511765131657550960173592450946907141334180923437042524888912676769884075056064247048945814521118377714212201902416219800254099528434315210001883610831105293809880848998252856715106137678409951201385527681063613739004480325456151875026675885382367381829177887397702205418427995483691262161378189015405795608987620490678182695151291067580268171719494554998854233575628969723515289257387381698108938458211329872706391077918634263277835505151383546703354191293691148110539445476491304069509209637991799665433579871136838013698311416876965853649065097646758194281867949388642387526283720096549795083141871262506192789399912253379406720401036776593269784186616794307678202793963919573814850744206503954992581174415412358638784954202220024909569087047002351046770328829590504449766474182465079954789437657226563479743927795993368575526153753363175705199467338395326364187856093681787726655647002165453738547706337621766344051439420384060309693519584966393230152927597047194823300027123240922846385513555642168431914754517570354971396173608394653380059852428588364056958968067495417724187009122239559930947572315909547878149852458099334305391196527296363969140685387528853378744634215785045429478095182048158888813561475139762602035133684342778741421906098312799981757840483458433034371555214460708173380409487968228447798034568966934999403420778669169342825158810418706282261388674803455612430297768196807954518904070567585336596945404215540238980955337814660098505244544743478668778973288528713647056057692045620885455478180823879641362191233610314593269308418851347764702002795810096780234162091537542123960379726532842671556324705382473436394041193318774062057527001366751818487213531121707533800387144818543747481926974534592958332390289346540688148841976428636743321011180317706923959933043754471281522043923712989021621240860362517550966474146109345113707024807408164655826551677009848591226199250691569287846319093932187431830468433352078024962612786920843976472853872489764149910169920011717844710654193589971450283817991190985416046711035117768675447657386002384265433407636596105972807427821338814064341257349038564987795339867556759427634482116022281981548356563795537425221460451670104173713647990851590370150638908946868186694330444777175988913935071857487249189892233506310794863840652628240375069394516990830940505122105692697955835742364859673090912869206563923841944797647693310604562299194008352997388927193163724930649364275409565875341108922093553372310307888242833223998264821737575697298335494717543475635771832084505239117830670882042670249626560859032974433694638771384026797676048646237612085420966718038648014486951021721299810398165491331809625362209292886952985405275138223557965173660474030810916343143186692685966429470499485990931705272407756161494835478099499381345853346668328049383659960107139904153875158917055618191760073078607347094937703969356394015319845675691673206756057132232042936335615537434847824677300037899245474938895959791311399239515128498959686204189894237016606169479797777950420491834019346442894214602544358033386803418748714483855601488492942757444377761444221231958929638852476986604636976633349549510282008050659604813858959514898285842939172519907628454960524318516456780745526218911252113234648710028300270500900940573668043956748533011643961728247650306993272930574427726046488400677768574724627484451088171343557030110775867569103242458673693754312861625309735234534080354191916611891802270960792659247721782827982874430546993470280131986974045600101384894774342057893844955610411009154816572972933023668183926142802037342999394638220977616454877168840662439153420415755478100806056387430285888135996491764409993926050500720651707571799808670250465948624709322117329776735425931345232992476930269972823173765920405191495019556983685416881368153829341354059119140711058130048174823194574496155840921068286689241780035701196930843085362118131066750385196793723677066906739350035954170718316087235488971880708789644693734475539602519717828801488625162032437939244998109835438938260436083205115959073484602851678083781397935305565566557644442309853304577418458823087832380007754225640414864273367493404976594260543099572544118692295414710454857064604057350036934310328592936072103805907497079357975760677016887556711186901473279077488304115354576106633447815737199237932169741272549715403445843078154846376458247053003851652042660492834357648118158161053117100943580419264800515639858218256829270158727749222498853834639444289156290416725876993577629984760284998967340489602358253583032785591086401676046398178409370653943103465014561421245301306816069726089480197377096870223176341873803606730111116754643763778991025538021616994142977446114742861116838118519199666123477469696857978805819885570138021300860451136904805060350490896177334397530520016524809544682399419593895803532359662092297842231034744945412901976923032570637980216024004966943863743793810181096182830858545925634478039801603711507589543907532559618308095516999449780327096353590601754295651209395147192219973099152330218762602516607719353520711547607422899381716968628240632446876020289230372359565027928910914349879463845923572576176795915981558501222395685850167309604471479135471097448608619812458319144314957161672164332053587915257915827492581658556357268164968476185615382288206436181244238006214984795339870598662404218729846592702977708535570590806505118993173075824804099495617698885226957957737236755386570054213037563028659328558888390864962710319448839218195957004678013881721632147465227442114312691043597894863401325593430667429680152794656566479978608672482935026893111183052423046229840154444726060355397634335046149902308411689478032569699521172127942119262259039271272576502408679802693373784696483120246063063363666173653891996086198290101107731815671115211712460655199044130753063314497530294194611716287750484910368560490495184875865617289905619491506833356092869057952236042940220602235813411533906676773745192632159984926006595954683186569324821410108865704027345116679079606049219767386133985988910520213696799684195095818370110662018063423154433345435914028890612061036769933140051004689385508218525497008937124838252250192974723319730019021962991061010206199010223442777095985760846778665621662219987253578583736449198914881000894162461858268614267099863946768873015609271949110241578491533440637405880237844577460621844476417625580550427867317193560871134619008879624274340397848398347898883657668722929150496946149752124182749732873747300463345923043546536234288981611965276881942582862912115830822797301014940537122923363196906661225210700634847149451714638156124531072355039718938749872020317889108625552493913133598046427651553351056120456690686736244187972950297661540853213513701575525345408685533810341706518596568877152696292298748993760647432990376650374066675110975212307238483873252909375343351249544906924665679381268334154366501179128616426078199498393033951329744212224547345096446517918540952444857064347379912277589612517633102492547615272455480922179288679694260296001934258253332527627614021738307474566156111482567373770068341900912432361524157780660626612935505074396129860142549389084743030349963724943684019689759673214625649630932432806744665918167660234675991176758556684114379140145658362971866251875199472237376170103262281796523555678465696206348681706789247357928648124465502130817338273982702938607164074066608231626308802337963264486180223544879671441783806737009891816234875285236480779574905493274593610579090663246039812690116181592127721371456325827397576535061671758905164885038325815392633375599635994049173119623961683787378426049265898680343192012795664100350080448258046426101938345616457395715299079371326851071575538862904229039632211320781797538000357676523343345143698563533710383132942086872495757708644524654030800764235592084082922740019622188715039586005155414872635076229278513297679533578178330156881019326468110205791431507404668908501679341898714542436828751773447401704270370901184674182986573393940877184644333266510522100208945831196030320062030674990477795172494702747903737428690939622338272142310493870258676226202415112368636945711691107848240225451949591666029767441081857865282909673541560645644481085861165370216859559404842038393584865343006860200195033354422344356797167665645909607320504869743152544194487612259835114640742801753774640018258990946622959557779087526301444653817747536112433267772034938639625420734950281912488353404558657278076608256573063170783945157674567532594759562786378429026685044190964278266801212061876173765528566163842179676833548512255527237602650883262645950251122218618544320793954310436793658221916137754102044328044392179474304681406063293406373876006343429145764785412375282991347530705917955534655723984212189119859301469910985903595922898101898451825411492014283149667473824480229900487305594081177732467818188603272594881700502925787366584750054161116504235775907468181009448545554780721041555754749341374350191174118940935871031238106125448511544562189452745965686191421555381442278866126843312027015782908263067519141364995608684232037630997312448397049871595182752356549141763847019328683456701017862041895140612047276319163417591806018139922542067924175298379097430696220353688606109272511550304691227548370400100576734538789205735767425252728886984898453858274376861436251295020388102839420467353791070470015534249748278047398610439269161305745479153225751916854654434061848715554553201696305414738851422147761978679352872615330612302849120952905401098426603174278735365825028761604491630728591707214171846813985824241395420761132904288081195795790388947416322448974745672937991218374818810365409846848571403692954230853191678509144441219354052701433593984827679392369159024324595846610202288071952567048641190393139271217904024304726892405569952797905002407048769819014008837033626038961161820782629249489147437781725838133067559309991112126728270451873992103169106719980955648373403385409944619971216167084608610895474959228926454889101755091022568440649359852961831183281589365710963183365124022681348928876877947142477622428872487792772838528341876044035475585143784377865413325959604286249704159669308557614004301313241801565658551815818103499008654006751495428723359218412216353641456348285157103055263251571879777582460643806581178794816199317496398332709487367851785731837260892620790556308788125696233291534630820891742307918950466165460945415904931439148994815672746442327919361805405972718662742885026935956951664571014266140852469425521045924957592705664926039352607374676228568982947735776295754779931637806627594294160945840181627487698027571764957191765881129969925471355960223146051799178743834667034452459916953246645878993142267609820659076599998500419140190590133421836915207993951878317968305227306101218724313045804066893301587687975599509958983424666512585289763905132684086834727122703550511669915193124660135784938168478905096906256885480620901906905262192693990476051272030577934541835989845025129965145258559735632921021294744465445376755511306296287943176542013158503082655459667790010207495157632249065605355125700438124041763749847588728165403093745034091023647357302871768130030616513123389775954286497651643294629910810258783882788234607048963447602738985069750725637441020550822016155237870248499236886862890806036971425288577062908452366893820027207146849706792744959965555653981442333531509125071720082343629200634560399875524785522883692525631577325860635518330812312748072644238788233000294730280720686046354695155527468907086393693851330307386328794985634304327589698228637246557276965022197511699476857534397715563410898679673974362845671673891121515219327454187321710334940771754328990249973518790915406987365865710989136213743442742371049861867930541833330249387809113151105138552333870608342110789896802710355479015751951532330853045987036042774818131378474369414243820755304654767387177078044195561721035778206263292763490989511095545367458129945057460398123112731350076990255896515132427755687509989633840234965783942841646306193677551310373814315216026184641044287288182587496840649644565300450289301271076906158926528395864412857144208516595797996867499464364265962921914465738199055580889246434741338682810962326431671190462988966048324458638728369357362305041896187028156986197920768467122923959853469388669277485732810152000105161233656844745309821363026511961177819582457570585333111830200012550388794210586902730052099391912337675366730098915583319176863211192870006848606744225961070033146557162380950258884684834064290367565207195145811909488232314086394936598336935064774729159298997506799474156823136904716230681272927075339897147937305959205176316453673197310434991831997409978986452820558922282861061379033176771071938595881789320364068619326924374358054742427348330853915595202383762929620550626193739827102377636995984390362994430824471899612487439446311913719408749323387860636860160673601575537992067778388830235645256938592767104506700072415942881290128256959212340523808424322217765794673365697985994134370685655957791208481234740579251506917353818157270458336898766877969184097006694903825594735095063755409440118384647417847022059527325623928735412789618119155412197228569474812535994706428098719591972500646342065030579435658902257572427965447705881649684930806419210470977481760435262834179238715088585680075322221348832399412494749852247581332273851027521309741509632982483627551066686968844884216981185185550153275313594547144684001832094631626813742742435782983023576015149937569787510560493821379473578058615525978891821250115552882270893072814634823080726289116928247660032421327245872145067817424920244874679712879060805239197573693946263052174672483969257097977923219119784336527024791928411640553362818940451921337538384383884392562603222203055820381023239545957798082213923651466422533828313278927605098073465236044867234051155539789121366532852486312949344253877214863852779739905899330559201400284055354387872042168822598313232740754523664713545297116303273447679795293214750917598923300749340134561691779295096932352449679658708910029770209541571037050360803469813933125790716455702760733875950858280402812429872093185922867426947670330248806174925382630487216570639858362274827238132306148273746726608693954789622286123319825618647778677973227620232918691261204505826214205838967738389738510548712731917044648985869257092381476523423305914437143450604590554129025366473239970069750119392048022086239320181285671146300607503351671770374819304283409179443409632426133753374324188437879249916159123745574157482274259576051497505905043645309583431504494570817522095534604463224986899523887639695939495939401014227623802006698239030599568854258542068182711690304922123738875394162105637505198979883336948353665708452246119961037814209638060255625850730796118096410644737487614133980978307087718279829758350518688031129594496537757836265883940834534836335278892255065120231383428904062551199612953356634723902730932593907379248274158895621975708159913000519926646669008424603278309210548941546874008044312361653085718809192646189606993096627281703462127929435678605103115562129200319307480546033053177198280000999346937909011587519496974986436528747563470566851389574750552199863426635408644049360954475734268560332600211784128237819807663855617864774456980138535710350179474446287312411845896398520818848199309449591075909011942441233320630332978592810741196764589693727128843551356211571096711982903038918203111720451007896589398551535696637620183067950624015949189342542170271310525703515846773012638595680226539234162486578239035746745044240466609513785552155581720888547561597884313151022091405953199465726319924076685515633060543572492810806554550320502866950129558070016989521768973624321901575106022269503482071932131081117341610111769648653859117218755346748488090226402866259724722966058552233231296257406852603739777952524263124821719676617063354308793623218605150500691745123966655733058899818010920937284074685402173554591768748498417912880157462490922045692480786338053091475907291126439348480824530182806585762466542367553914384273263663760025837482941154713465017804492234318677285582799390210412397086389216489142822782772763813558622264054313695766379196130962852380547942375231321327885979274931344780124853571908214339066066532636964238293708349336950907079386946719469789448998729834702419048763696445462473632261426518782146122113486379201719505889152444530867837810297585117035876962445290907035974787173711052972845815026046328060145234296042364597597421590574536288111518525794269923695174160286008430909614556701771142150019882261909744213824990880914353493968879427728577897323054381141711570462094441863281927619350336974455707518958470442359323988815463457759237042946489839819774230759190879036173283975150380155915134725178570938693176952072361954423126951090214221065327943556057227617020002255873572456592675022627843476452452139550851363648148655139055876856496943034877335220307844444401339385899881755886188509794473295765062675681541250102704098712998963623912451195070436048160182119929935615046262437100371457246723199090270369664370070278577583898334205822277505198469519268688190474095863614389496288403717387070977233573775645042610080387727284178347267923604149484448996209840701282036107329707073837250651890181323438360313443830779295737913838854922170607679973478274334709855072580195517161351118014185311125668792425788494792652740269766579331682713877034424917096337647527060652840703904725833942179773572750483087758115563461428290871448683659566562904452359573667647464800649539502254351812699784571897068550120297660716582722026318299478737527661917347074342736926725176188820993462032641398262070491573244721493052045684830112422033647080419093223401849038340569354317569263469073387152067992076605843032247903980114605232178516818338635356327839975129119925396439248990754540735231224748372015143491195690483106356079344628621608265110127204069457379741278561883544742440750168659334116167556749277803753387850432841089631288283597471063417953121188898940592692477660893932685612950718096265960464872645524648017231695157798755805954119239239934289376316824368498787015014717265947919492245254204651120675787226808317215627626195455438206488497079009067743303353320071738521055999796473402450638273896476320449183999149464819861602758096740599156529022437093455322471607941608676810801031526106675685971944769898007767241724831327328969168023151824033947789619053520866363015121283996431829760880011605134446893423549734724591175032206157010513392660861107975975364482426014571196331733126536018321633846605024415498416923318267428833688322289295907622873907666574800223781620601829559905968944379884473943154254851785279172007584571039555522430257256183246398550397386465971412825184327018795129611654329936133016689676329000948703192200696557895985318594393968509489099724536853352326643592054020752859321660562978267295864776117678208433073392660084042619980188335291626097507367676370125444673094286345855791263833544112869489310659358361208514822440980348608220059437327322104849753518649686094486903419156481420170287875328463552649252774169700743155206643360641718602873729946390492736481061637722726847540803736279549058429077560385266421006789837099767809199171776023575735128359351128136300286153822917180356195633597107898316258613018847665870360092853891331048376075013551301676218019611991671054742602798541335202402722121192286904426694136800566624482919057850487726546448945023453291231004840865603945003424650261173473078916366447542039848190347173368116267942341596727132654702281081658198296916267949498433731654126241857606835157525911761656270525201992964920676269127037587770213592302992757083716724170968940043382294026117555374693116619283200856555351886075134019292575902950931530312470641659069403179612448096995506348522240171876298918179774077917846863990951662651809746487374870626289144782534505842156607253188539218525896782845076485820016952986145111910607968728745929932093381219648529312235200122928508582081644970977479685850987734627844946651840392746655707025202887329016400327214453875997695828721184186188456553882116359975546335516197934409086956274240549875613919374002340026435398605178274793397400926519206309566387931771277203459352573931409660648429385810436174445165334293362987095477925714927417472790908521833226671300985446060017158461185648697637509279397573445333791104075267128585140306515503314390521190996567810863990139794220651555903708497878329812449603918541108317838403420275283190462801971980892375944948829426690509328271286420115332170523780899191676486008650884731338345758048288933160669960557314107161617178723385295083106909433482404755968605988684592228948216911885482735719302126110020379679261856352132721071937925546104100182012064350486203084047060599080573237465614144564257143710067414940840280338257336506507273542419368870899050841052922647727185043695507496005422004603322283732958069288918313342224887891764871223601354771829644218073971263948674161356432848700302387754116568955558751633397125698851986410079813635981558903373658322177674782738892138909617883816651958154825842431676734602313671989331427273623163324115589365309556501061387310779667536168894640652679140715006985504514338178323375266388421616251120091574379417678661792717231916458791969518933145459427776308191911435182452648695125930609634891112569810987630141451078705895678754807047337626635643700853608211770427708903714156634011740658581140557387013435346055309910723276316995095339501379849456039809435773672438640798999156981464775937272360057325092090130089444462448312615010861612853565992261568463619694389146150515592631924754820007533081501846621812451943968666684043893553395325863445930943165814280850297069679800799063872163937173934664240154671213311590921670592636834446554554670295721172730241574244472006830225821159621532201743151081730872588822096905055865782450728677426520468673483282554794680174261877477497642808746025984509016087073701562780715963410519557352245856546997942032152678699337864848674323097846659681626911752225478246451925783224955242215560025274203256256267121493283791442078385196556039516438570295635948854477257416043327819018254349581116066235281989645060895729272746036154532187005663420745021605561525455584362012406601973377817701754103457876009454970228647966848882878856865867096506189021884448121068207670816583065746588155603147965669799419646250697557943514036792849870823205058228409270658123118824881697533760729987488002882289810572456519527564991951231936044239982535014796660244850790750420628655956915568547623577247276567757662300007267593933087061200215302578520983674968058006889336769662052131396885136996721598002979048481175375274468760884696332725498609708649194127049750540716025589269472914497467311079459608603088421384512044889515413406179593270214581759203779555007001468854927222613798430040102517791964546930785600212241407381640737806234668455022638955540456619257175419406363625862639319688850212344387264626982126055720698571537274300791521215398042682872365124580504224423176028941796079180466124299638505427644071226540268386108304627761400030722253050797391320097732132740172244729395240036787586006918534322680677346613312624513792539459724128730746813826804688809320519814710475196991236367969091684453626830096277673840159224483880233520279287294124709931071394020711264410907586875495996300893958389789038169615214138525918691520655447303543856799237909988412311361650662194681539999288960095228531398406213254992436210100152170897771060004139209272863174199104422060069082501665226510904012959632256875752977150408261956696104815702393157682450932936640201366586637286953554821814237655345990812591406659993563591957722093738696017099630510930381616214541207400739533559261458402768863047731770021066055335603849734160589940011027404173450560612181922537939014898063595381733278588511872143199343024177139386006301689727900496040923452850504375956299287185800053593192922222398126766239198067031149698005386399250654511302004280901248669744740366130527583161142757570166835484043177030235747550969628664852163949484474212141082782832516090004174910221384804135255125316206070634717343254398924726906875753852835609990393495010646906933281535840473568712737168184790804060137431182141058366577841804448174388091687456311143964930381278103006669410738769298359136729021231648284440665687647479876184550212457643677751193710218078099258371255980063577446241092007683259666745634362357485912077974760046084422550173154096774890995354770110046619964187639131675458718429416771116810250599112590989524516828025101169696775510320926301264044804316018868973329564291515755788118179183370998620864382634552724426668767846508887726646915028321010936781646199044432094514677623337020426198369392832171466835231217700443405715462234501211907455689848066689872483409108602724205763286929539969652405182234018227592243188149382105886670825876331609471455976115845158539477046301346225072453832596951906570653637591868763803683293663539284124607062933685744232547504371134857942387114446265769516513491464540607200391540751175397390969455300983575075544579930961218273880787687009889814193526100276424703040683476704228868806399521042036004757925696739489891509194062082476298758384574531922306117602011026486917541580992232722267153914006382152958520478196654536673468211798825945293210012882397420560717983980529894475040880078956774378428669542932019707212110110122788000071372846751648558430700222692462281621939826218252744628535128013116322273925254413914142409956019068056960501319319505003889079009432702531080551153683275885525614765879328038511851540263267802381562995968970511356063512691907726915231639278778537570471790541512874647262302225759422894597081088859806747857193013538000397452526802970952195288435545451063310693738802685863438617185887968408455195562329801414220879313127410738653913905819628218120881409633151422427189711473832452347360412333717523549685339500246226902784173223011800208558945429551901726721813079681044219421361804842417831639123331779933543167617423602224704763592893773890287949222405312643181092040607936241476258330486899966208401107745723687098748682154280526934170909444225208535569993813927740558006772046290821189345701216706840831417798105561564207069996548029863586969824246271230987332157473635102114282872067214342436336380832664927173326258837738666111948855034536993814421483130138215122344118090987791312169384449366036657935467395373843940719684602119288879426190112516457339571949436896846891274476378830291911657416904846383399772192798871878834182879876605500107187622284604469442880451174726634075436112057183492088414426020052974386414267386087293308623621979264044283312683187398573790035071211828180972948266886055987368447789092391523169699007031341275775860828179177516389317200984135559811010977174713787020091751121766702150872734719164182695633844531356462474395607211957693133473335753371068347494139324615121145623510213967859408010883152912039858961206516165499341380045601678245998216836252844779917198068747521152270589896048194464425859968826043197584112131555530330824533006885145211185432442631642391864321406794816189883001438189887328609013662832134164750409668680119931093349177537302153320769341737674446024916646828521711435381496137167906997384393725130319000608377896012999631626143765720143690594450700736238458378111619561579226343406426403200607470736640532516655091815019841944248678234217900324753053077182703304546344631867780019142026493920289077884509995554752369469346701052436813329728513946337931305466198439457217644428085652403693451276586246833504880980308910973553286557852262366880599821618576735638762155511135893590982692953955655187474556664281883572687125290677532422844956091774159094784284100458604620285148943513835714808341035143211240557659720364673305154450979566649343067518984768438161085508214791489603970788294132997286044804912705239822933516518812426203810815976512305246122218283270412001728151014695695108978648723488943776268363534102095227995703976556204146385028424425657177478247264674635604747622583514690480840829884986406591360244368229382977458773297599746277708925482286052330600812152941925917647623647268689744474884352870363369576803883845864214528697930466270080897128934794366896395743499403929825541103250552685595394078366939755132612313602162403225651768875054811634368145334570779014478034791901419249107562114773330825411178433834649047393579982834538359408316723153685715308866022060772863608719480371821937284580017861564984349428841740732066009159330943568674429784672861194007380452010308847276984990248725365380078335234544443124721666709557376402144054327233773944268902968806272204448969226241199609096774689902156342377365708812418037463496044612562617396098810073674725168634022351992842308005766031858777754673454549023764175992268994573197305884171348560802134906654673684775902229271257034091587104713450514327191598206437979060885682256121722317772865013085486252211438689284380013061405252983589788713302038430619403629795624397583547393925356396487808396319928982939616143701838244885924641884111956029007890934452371310962890792682092586892573665326432575816606757114127845199274249106667686722514551840563737590621754502936598440203550659911810196555878872212811309975700298909918248827035365911705885720103754755002699783473637257083280182104804289236183421657776503426662213023160661595591688064309423562517190909281365666235173869762132267268843752510146742449940685835035557096466188737835604821539518840902695235269018747209504307025744585460338859580364145755458884228818824272486176711021431063629141756862353021830178118658855249021348832100623017409687254858468676612778802817840200035177519292908474496233875711440825599649919637058615021106803562265730113590578644936778108877527831990548052311429829914697845362662967438804908139317451677597130472081873389432643785871435765276994453955715659070518872610882215019986692940155700244978598437104286026633628833579719345591736160558261006895094006914705562700775684246942535240802430672726859789655599428758870193217504410025652854157115369184637193144451223323047044199869925060697864651261188585371908287439969657049065749072648174239214112252762965226326170394031864848830281307199114700884267449585809686730407733383415847318343178984988969303411807486976480084669781723379828948786814741927773293804422465761825698125383598471579181628205102369516061520083917485232917177744018175486355552764211415442943269660476148713630452379098008207228710745010649405467128813326127781217796940462878604029953776799495609479265866833109589928144487361369796991419172772432428740577682854370731695335654973287096538793309338494472011115974010070819229137250522298136673033898331096849998638636186802911673901141776998057551257804901224875485894467583284956054752714980308491041729626220226310250482558943316654219439098519564576785677727172867975039258015561943099339308724698724644518828629283290186837600370192321537266282747571355656042431525018579603636687553681751778704799640479420871659922221026916065586642543508658381072864408675696698652634135768945835396098544996126404232501655792727407783254506203421697007585895960142454166603239628917241051362237384750281912347092712095659332425004770305279662485942727281494557743203904661463972598522505842764954712513514415111179056562843032036308559145763459499740042606185370131880068451767932166491202292847764633726690067352379481251033411494450869379803109480523131155859403637382699609059940936584664939475370867259446327592846565238948700752148974326693844007651154263053248165068576306758162279976649528744880055940711236326034339917259546218783451847533859786894628073137718992087198534429132718999774945711523590013486692732483582596649750681951119329732131061653869350389535787645207613072808809978854523931816309237589620735545635592469235904507501989696254244618211701374380208946590917741913449363305071150227745923888995655677769822446048083517981271959711396567725395876029799012167864405247982510913729190159422558309827398775849557968018024602499634593658201896965970493377969405513876787132616719562072964482844146971899668264916731756282985286013213219466140077910877406532510219267948565442785533289068021188788493758071415206912779119659077887012584303925460183599013637805257125801907579545069696797650425612149718572721618277532526718734422110077814569463681860489711912114245708759675079717131877069008353586971869685514620763989984924700993396858287525963897631544062206680968096737634793711178795979759585744546678164973819165293560331459174412255278324509945420522792075657159937532875230033799634846837088642729825446284528098633545727168600550421860264758566365058283084148400980834465156602113030711722871552785948390704849403371684661125844996164779860125087634355469351408644291101160399374893935789857048266646443797028111731064812847331869603774704718752275489866666555660860103493118279358166378057642713463696991494264080272638853241967667789286970217216855732659921349797123267332139999354634053710040894607430260453797767342373557836858005015068318188164131746925848887096737762579959888645077544356541890969696697639683036515640745457535015111886771513891286151767820696005184878853732226821900809247787397162496751559346912929288738960593149358592623128994075380612848346324436698598967928185568554126665036571587692908853446276909493964929901239932214309127486515881904042541861609125741794219899815694017038600323058219640685613792679386254836174084038313943147713890497410295725744665298208167538878489355597480254077612978575334535521869091937274592610955408441818723072033437908707435235929575905647687847573902625951549763611029427392095763106247724329886348681942276225421054047482132475500913874758190863752731238384327347343859720252243704923555863657502765631191144365252699801158901319555996403772509236044633295300805789548961438879626234799490612663698635853499151696488356123847046263659499291902482057664243138636497424597344985085461795063519048303645793913789471588938911827336801386733003758996386377576776489012917971344254491766438774982833767580136727731203766153203545008617166762400912801059214743191786470200665780374525037800176351262939425846850168701494434299186688438306320893658070231590280216328357847438936640825890132166206036853978978786693678183510569921935468520358512291660599156713782039018338866139396107125670438297295238898089554095844426683265442694388389335802653817183295970138721391667851230073629134065618571494321871602315891243068963546881935065638365027095818728629130943316618206926854139336901444139244396064334901303940355679984021325437222611355785982274271101912282555466640424207874977937725105361368774408848413872986847253817594139813477697403847836733078339361547860141309016704866293530961382468330556688416211180678752573392119395310478042722988990126248128980966090246908979989876406755316764214170649970092504523337521444226626564356683245960436073976322595938672245710071920821186675564981492022569849317034313493587165106739649402406634121756336524913763805529125240418967004777241302105944522634533427498180851569896292120939039699565409636519657084497018050854419753607931789605008539821377131180253719810212218813323982405159634123021256255610106448574939661512505893294668269006380934558999314254536904919185956094248999426406109049934657324677968095633340191720089528510692212366985039725733531123127049420484327140547221303187480741659562887725198456060902128656005024355711884140348286664194032520305782423012301009102287899043812825554187626858367730519025877192381510363402081882865498636305344318013492279054254956736583372180513732724427500651155298712742405227049245128768966631300544463636808698223633922100462598799754919180044070726486099127443391333021811075714883679006277821354646731805026524239299799820347724248154972978765418124312497665183907153730369254353799115805420366692556958902798520550661332209101425712851920916594547223055509496868245692820389198573830744143050094065862642315525929222190889256885213929838391354365318849063271122294993270086285719788598079848043501460546001345811958157966005719527817041280481134105651397489293775760634940067283817265009987385851978129478824852444106247884493179002731040129980447142851731053409404266663257178237468300478197644307669464377250152950601756824305345061410907617665891996747331189258000704856835222215590027061998843333087476212683867411207876940461537008067842273950999374822333210083769282077909006229889887101862088783645511149834610682414022471764216307133581213405569812504594673852405981738434460437945313403720501981056911000037981239490721835589244663218677768886195417258535454728954678840426560137805084198958626260921333708445169243880156346250511540291498057707940481961772474820220789592864265902635908211549292704631195454392138756924854422347325367800655035549153718923529114329052786403711632229644968895640062162115749117172008585086007044313739190714206218453169296808519975128475080861720394113911172886127451754966911792938862599853526632933015291639955192529218181427662233816847915262286860498258740730349738182149575397071116632269937742483218624858768100884260047865397431395541599120727084098446888487921091042190777415987306352080710053662516389602870041804682180342165171642268668560097007552609289642339166063489271461779161489320529835688736282592878181356116381909211526431099620058464726865587098187390390592747499680480294491483297679199976834420115576132498311294012305905895276954541623203542930581384013203831512924306181953235140586738375906829333146968168375028556943032947943773204065755139693915871091618908826323279922605001047027203419138435916093736978117658924416175838212009916255492146327393020081787600828279090857027671330429332595870798140163297291611719064991132042248963739996979725980503052584199557543579178473342552924345939684601323396593000997255546494442514741387792869537428104560763124639327217670222940747477723388134659661741762840050281506575316646757937901794027245021711260560074246629785628103894710095641576939097650795708465778603689767306983292189742502084661524284428108066736969810655527458201762457163591530635859840457963925960456534318879401508803767902690980625656995124632496778694757084787136782152901414506960849008645923256292237726408282756422248214510234596068444650858753910190242638915486246789362889854011241515466953604711615341713395942724728820727295537769102962985638451104248810519793940445598673472341591085198393625277917375163054502664078752726582262119127249262548510380381322117237188673878702243766238325601515184883737254846320551215939212381607173516752203693227973060788367527722923295737145256004772482821002914180680358363021321346521807975845397257213132659951549344717472060601321092665712156535591322569626748531862082464408592709502029927065263256320843882014303677245505911890695008342508448313968862446202790329230872204843702570938807709135094070923288219557832723277097877184502107933508032983520982116449775593591289085501294294289158646593550114582283601372461547766213866710162161585692512756756672459003094119220837474419936187389782853627032738845325633548182447605464797671210077653611705616030416868261621078995677212821973667735177745653681387044261291703321168596950518132319793683779170346041005032767356295752817561012789430525265494223171287482042369786061780901765362407565391263179640417252434858690811830931018684601219752971403604399911072771192297715221708838452790690621169013834675788743901085335516745071570560803186790457386723401822182402670905520024410390869036437742314069081510098384997822072003687333632276656567037480984033413417667219131302237198237514273012586983208210669016396361370401772392804739030204967242411127712551701400815988126334017432283039399374291871655310880673483411160773071581623251925694577397696120121488032683999632848824461358810386333067526999347812109415342295203344998777603886511910501079157846702124544432968542971710801045380131072135761022183459291566045698689973534653184811996849869910171593560826041905507767034493214880407852781577585129337620800396971579645692831084408418527904533406569084523783765596095219720750630748428588068228076443895000092895202312196110775981713841134433595766389351898516111544941464728947524959530991024917954651743510623128076589203449716187182664329103747046145295693996084052076743985943221349652245282634031754667924237865443715575154953854869471167940351624941357674622071805022252935106313777079238289466512962237894014360658468004727347831962408986014337025602380668942767607806707152420459459282926198926461511675329499008488521325054043433902667099869510479508278343120478131434835419192266172827670242221665257984052082747147036847654479683473943589250171886033906853736054698283956809816421243892086834470717730829548177664095895235943882346560184268823410985120241808976632385278356844285583143277526245347974746571966169811450759251914695147772600717242961266627529708188404646513924606234176232084714806489041543817587957448191112054920928528862066072940428934960006503983685456520118735025733917528187534834431583452548462614922962687516646215295346842215726170593574536462709686901950709612500878727828854265050025909525145200742678980645177955080002213976050981083248022819541029041477044098385566019162338229675204626506041548410415144904173854200464816599742625598511478228293611128926661273754050499304725282961349598582105420584245385649083881408473885453848880232987351894452677319843410440071849505732142470554474257271520136364294305023361124532204840788710419760845500727737230508114407563563970475348387728622827540427657418182011850747267344825311595271777077104739985004925967607848085247682776047638499484664998258236727431813747705479815897570682518157119039285299240125709446110875529761346359927993421041414087157714978640485416604381471659441134553934670735765948708724645096322482446526612197451689059650583409121564443080883481223177994321389950223188118581333905312445206159339761473964412115724136443755796180259315584546997434170792468144003322780505473035661106769289153877920979215610901531803742250477414733823930128128284968041156132389235640462521370028158640169412530815159232673129061691121209190557690352101687930393141287016509715602414475097033836139213124320319420616689521484766369699717507178211326791031425862963537524807898175868379422506642670861156318376235079350270069047789631603320094967579546161456907384144261782754314881423457049951154755742982589153874958641300013785136701234453620293628955416785964417058995929494983909382789464984722086248410950288765252133444454771893370598164376948717465960998077221954130053055037462436219458618627617026493840532990653663085943998161511830359061889529869298605664779037540863767582786486000955037315595161070985117366875956358774962441256392449195317326936504815564074857010527313075565200052724374690981386172407774971107586144493438979829916872097563419621970105078778493669350898288631122404565680559460703914532651939313197853230829820235979231952434371592846535408726770534176272463720231943684044281507603057141525971537223821098868084096297463693394447682114742949593165356304698876726487274970805625136666873738294988927531087978629474226806318941348837661723693554339337972594604311464086094037551646264032265086519036488919386228463389738683835931337331631366193044090242484961760485147399382008981189228505825636927956541049308066189014602465648927446186806682733116008155891869389407706109401180893250370270604445733436762780872758511664778386403903446010652365407172659681309247557452352596356669664678868977827576325238720392496541920760243203795013721757277953475755827005842789186582214250429293776085952779805580482566656151398502228792573803985995180108736064383119659685216049719249758997390909622355515342638881804598889376355639560722421627049558448931528860058209493547987817708895291456441043262113728687982535343513722165224189534759579612651272081440384666068530564517363736337649423882243981138463092908693256772776543691158095842841151546231839279055774801427394795277698851387243223455138175014717139813425145372626544729260569433947569639563686917592864699388245505261020054428060096400326777406638515222707102753418441331060516169989028648602654530052507166700479112196861451548166654965700611492262689740425955342601330072831734189455073089043262296459330485403658933418066705869355907304061579917252728933713588155646022117971400100552036483411206210900984893170566362420311236326889365320887620576125899120212376295124166208245246932163957667765034482940095243334175326583078469078901580884181801561447473176345131019362323184479246784256711766066372389951646414570110264438030154287618351291916547135940270061170787688757023482002076249863084574605330112944454919294787743095917102585826999937143891797558050171229834325530159463260930607425130600781573788476714445871594734047371516632509203533628835341381657023336600255492639621273735973143088581820503024661719962078951080831087361628062064683532149004576073814242305047135072212715109396970057145973172688769432885146657333990226561269240333958668113481806423835307685500712960909126086413100475678802563735633330148206618487414610724619357325651360724057925458625248594977527606515607463980864176539524614986353942348625755260177361644231781737792562691694196208128221363501657492379082027556286240558808916321529272210816442858183468261220694485715184605087662719236536622661967981489703519395846768538204006235748528811527242069916538149225008508063084075790312876136374868557146123233756614964568531518258682880191384702463110175334956927177968129572498989599996283804565308649864419787417866789502337531334097090735569847523328741412725316831104227521582742119747151457747423689757299015865400175831128133819744795886660509451131038172376913273329843847041351879410584935025077191403440137381687330769978805085292167157666989393403176491299242635780525305666644250828403118211486780878195696267027489416103925583266342124484445080486950085122782313170099415219939321702054363265143919649224418736257039592417064740428120635841144509746570254590591767172941994572139094662312909796790167366399604529124288733050042367038780262050003484852329912307511009985578148578961073661433728877409505453983075892800790600965122221363205112829824914536894846121217281839086909179699615494391637246160470775933851227177373333413531461322234017534873728101746075780540471851004550815951240243961549977968098531854978886925821124090490603777982356893254815446494476041822406695703350886103112796276613069332124276536537877151387885294451297574680560428914531146475324743399206033090289731081986568079629520040348441075840847911720734355268847582925610690369932393221031053211355370318307297705493127454769767274380036587401932027728484503324702136003302103659389640314224182384835992843991302125200057284106536057340835003112274230794264893458068027171477423375242485865234742951695731509778854605490400035284695394343149700173954693201140403693490095563736386569559275945641413108995409590137208119975504852263346282194819672852727338431124448358824191169251495888225837431562409849799241900999123224188750473466333075045584611146477037777868214108699225883256070708494574758896828824903144962093162021072908374931946215974803873576019029068746021548983977180836793323815133210929007830079743503487226221810919740132734014038240919187719713467568136409837738823251874916557055427324900452308544954013907240340580733909132145462233394291515371330232556981795025699382341774473932970414150482830733627912289513377024306265964392522979272212903141752711844233378953683254024496668889657805169808196547906385247312846029281662645536623131219962704117927915883209180305996174111539939214304079505476160435893964069340774175902724937649863950003928586235291358001130421790041961527126768176407782939891585702501743998982299400210700161745575509551901080872126283443280989769247470943156202680269822192444803366169396524665780999330720624563166686501279011652816210890071735259585535629023868971116315976509187613702464640595631839133855545441038785064824008914161184646054305572294805081400668186229249397759320107371541218548960962221430614728316768083781502350057263703389003821122216088382474677317119727764543804460069597292415416651861603171011416627171440569702008287534399769825308345292730405774990208119323167539471414659592367742165489138004788334894552620876750777992952685446533179301327700837337695309792628829754734558012608293959604653476469652077405652163227157977177241128536803144790167910218540692475235725243648390293182416459584868723693967822904280650153750471374729862774966706229337666130953969008168735491145607383841917553132991304516315434844451381772545048313782934917988457154265470998179534063122926286129293616226221726707924711348947536654056248715211904413138875140846371518084259665736844227551444708189524235185129963358798555001717544987686850016646274758595585315178173033277000071747876467177072193810623153082499263424513395446376489613108942927232926502225054632005980729380888604780078330898567784133305208751732305421305944920696421718676838067270433666569786610731004223476932489346443021430014464059056580928268704819846620913323580246014864041088743049106391815258596282642645990221868867154681231876852582976132966096534288841454630035712870909017038097064155936904804585104186639876205578450031291139243016278985036658860212039138006624158705165201938713787815302415360098981969684935194149493287432592182316814474753461622060222985388245952624457152641165461385365589818143407178302306531859373056522370451784540409092999703334811707546814695884275027134953035929927661686536672398530597543733087081012282773743100058178270104504328847552045264472028431339486111023484720603932925061144819219388106587835385965554533883688865331056291898068618433241115205309118537152592847354673683279653113507620727172636613348900195157264591728730732222319296577208413310128143814284122700895014723861604959269286322575652684330677425557927515524676868901818640986542308310967229272964763578350684129029946317757790866030747118342655281983900264388900015313139801885987487319312754717500844944188658275851094285992588820454832071752283434941268751735227613086208886623776455946881306578708157608776947894076034058681673913190415953264349319968751550548308441946322969827788551146433377253674321048512953734515798835519403501771367343412948191824865663290481839185698719388190133893397844841408322525805792791340043444797209688262738191800639425426072353826228482140200292412390364755536632691382647026133686037701057051601128855442606582844468058920612526751959329427710480052568251318823147258121005364069025559575732345818965890066117289088182070834594372956200893804213565636647394372493964405446293889301092855174807452970920349080007028092820358199837128926586468584157013690711531637876757571109511963512667408186634151466079071543168110794054978146740214717136678183437946299406702898580805973294550083274238513060750949536044370025843179034797018831668668163867178953091819125491320808915510777354163862113193108864962020090655505415733900701263295652191094676881474824754164241855784215706025233370329274693877781379341646399476024195195302965071892029500033765417723480849644849501474809484713148210772327574114078754234090633222052063071734808428776591249020208261399305871082962465023393664989233084272351882768834530579381319717190555809751334458751328445613524686128302246021575222793352508819525586349561455821054631334689604654139726955628034712180492217457381356733857148317331307529166347737094380408278843527676941283113538955663171631291870480940975216106688514061429724123491175420052161898337822444797598429429665316585894208535836458368135882672030058397651912622276408925739279932508827376837445448735748968213048421341503102126105382945374642951955909671268019940731773836322861212611275995024596675760078067526792832808386479123013506812238835397073415486528027300637961867998425031889576367890591967034392564542483450275289228963127952999973372830705431179977258516763897155498692460694035176555435356220401148906134932863690469337014020113373671593514626469906561266286076721690534286024819188694457030582125731593081337564504221604148137737770771019651271399852761966343135287387240161973243064392388179208378004148689203622425089158688147981099057578098079952305032506314004828051531453599424823382423000953140506917840680435994572925499461484951343871163783149701952642023282995840327820262109979241199172781751221730150124086789056603397176240564859044548570662772920234366156983784303747099502416337079072987145370269026763578274563329446725022406877120708330046859047220528781164776063182328845571588272657263053434680842365385031143577470546798230183174829384199295408727459693334797803910805463187556862946116733668031888648814224044609126687945977636659534181882554803908397745968671404161037095431245254599720333136810645503727342411139144931750930955550518855201358863122463953796388735971282667897557677257544085534770518329311447425788259057591017815856461222607197423689100906026431224761454491126859190383584967040882426489757878674902911889719224052476572014002601611831713039659483652777928583795334981375180377674238475601183515597717500957008975594368995035497127886992498683587527295332360880644674917118192319866526483923365206143614703659229372326128886866434312579871282591832144707462379115019267116436904704568980899290754363506196763495567727834805510982665183950742472941162503501327486790997751031336579095252077523897641872110834825103851027174961317898517434240587900980370464827228618665920799818150179770001540179145140624268974970793899599298640571275219173180749342468370248585759349118103762606674620564168348554120646014463078119347804619082091082500451604309536850359162149737841481194318691452348087136300539473812573517524328738758931123856828390361292411633094783986950859195731469112649396647956326783346345630848169154827223166145434671570341950314709566210158014477842655047912831032810642850725170418886509345616823016392023337746237873858513572751142504822231058260358890402993753488545444463409083983523177303326990705215460599874199466917282503173903971206346608145928364638652132513150755250451327666184469561459163800996621855452168726125022087201211925233429541841081093663315967700014876298921563871114328432157096926045013322834437056230366510666909890260041360196798692825899625470100688957368238562208287447698747293937397267392728586952737140535157875903971998779117685063057893119721879560711617798927393253285628227732286031650171526839419481464982949361271049650510062736682815284714930028790980746721824447897933126364700272083370866388489271760172051206322583883557344501633575538260251263274167532454219973353680130533367723172096205604099402948741401360818492142548694120303610080442469437653444290464021308982097187355176304917103997054552844391395059973024521504762283376327327711142764769987107289504016219858320045317202384297462026851295099186744832941354619647375621584871404980176529517209663037623242986018144592860095332599499831374461304007109897596505110226008970181658843511528335194076164934058979811158367890708893507475274278428978517306286971337549544424342548764095602166121356223052313152156800871759347132614548363948295548827942245245141638941187727123947605237365566451566473902557628644045565076460772219167462579238515284346650278268499151469387687066062481223552955956393612374290302380413966415676340544736162256642584001959719906538798387989891653968096132816975549085545278751569157151007275065088178038871438685310882858627997068144776784799071310599437066759746896966521509890378482197279763389454053329817032595426751107462706745846357169922764348783668886069854529225317271320189333059431752942455136345180536090859154062432979654006802345178405494917716986642264543549259674285370426271306422868976007704183692748119515800979919216963486688576346352069227090537093619584277941308673315827856836708881893734039453064976845427853299295720406888850334007275200598001766738686336017503781645762715673283772142367561078347207056824241440175970023193721720472177795435525539013497256414839535983832039451406910432503370823917248314651095000720117025236069209874322022145397075148892006208518384486399555891430674014814141919594326249971482256419843429593953341181677096626482546959113823366925395238736371642781579324431711452198473323282180134251704991903127762560102177145156147709341692315246165014461503647469416972474357245233841871240588076580664719575363907326330627741632474563532999404621535825663981758340631352382696343863663992952827295674756379997082885549006267449275610645328289818042307372370062631729960711557690195403496265319597421510552548319487547993947945861132631731250657990418589819182771027391215926453341225622336482071135052230153647451661195944780906552869201562392990951590189119337772127392311443561213065066589826868710109784983852503160563317775161902186495970421844570131082667585713290559564438760558527466230967206851464122524646563745405370864557363800997114029600988607180763690994898924164391874356780776583494329436466183233922616415094115444543281449826693407263564411536926239918560354678559691083461150183023748556670343223325564483152806419871923125622126688599256500517189922045443852900795365233976095750129701727121487469483043830047514154556344423519687764507265655536008438018378252203364572931106483720129657900697636203888745490583743486477949988751361783291918839832968087897034502040628137681131221474333236788446452112974484461818142680062457070789574010274220333970097604749866948682315086491142461018245443115223286853877233477832712574314088300285359072475344706763948601859724339097093373548311622599916722087425224058953317386159579156247898325969712136004816985930264113074610975039453500378740376766967161251609634040964164294650514699724636626778091327595393488010919617129937188383990027280611536319904622469377141817308470776320132630144572359807254047687195450973641833211185182405658125907675108650723414769635412260253436413541965476028564863659408770403305448525714670645887743125799010047869257111567762112891830953831158188854286281124287058816068685504208335928572200264101838777588538399328312179883166554165972641810481706660115176644237790555359951370059700591045715957622073336042362973963346654926395689249086670797810059268976124244640093812696129842413012687982626363553493974788119313622864093909156995597910991698074407005023602035239407683318043772854205688901652601340455123328601701744532117525823256703768319430006459148085652372716393698601335522637729501021550997581773290594383281047196958295840076202361679506851554227130783480218315931801527635539854106609261816598477742611257016005503161730640935421109507332383536168894704808380875655838977918001112575947521022466865895960955740480235620283349458959844658827691728812251269718109306706751775261904320682057127151091684377980968465588206936013763260826388229447885766724528771226434581363289793387699943752555372493363791326080351063603077820013912237979049012061585445212523180882494313837184635731029217609916592549858159019982798412266772455635486336017976631322694418909608325646897171021877944462204806769079316267137467816059017974642606367405241849450160800764954401629992235613713483569454035777016987803901897267932941738785533014128021428190848937508329049495678155509195076675019955778978577952221497086410571867618452670145315129978088405760402817037131442127236940923994172209507797671735920697105449647715715410526773466999783566738892731380042883425021996898820894391432704368837975040962684851871913355435143707191115578455328087846330441106883944694168074394766956352834419322611303996341975040565488218846759490493569916888741328555528749816940090975779162929379785470225397897873260350393057431967906040123298187353597037127448269366108404729714768551774355872287581638305100744386811856384516237223987257615069486791949242842125679960818921397033499677010138008821910473479386977972795592715581718595012298152949947494805170132745547198247050811740222301344777873090857971982461748912043596834432565146967263605158351225067260534525563007642922459149021482692506715136969921053676309847940351203157711786189760337720034212086788708523316037235502825972456194611755896291874758682883520271943413058690270773532723653542806933396889091247999042895554051662442650703369814772921870566098252884507773600307098575020351811903813189878961958414756040186254431638197685653877155727349125448868951237487072991464952745961395361668689117266396033900890598039099317472447255161551977008599651363163753294977791347854558978961478781238439710678073254423966641776944480657301160583260351179023449940681951581086647112079392847552415622861306272992096504649862650067762487824776958303534457244946338655160097491947033193790633568259361249962807207794394545225041168716385009305605423375554286094140159439326968816685531102025323131395767561519903874018975623846477452133851219403317874031788988402393985239807769281274624868066553903014671648299856480127319310390472665357946405054695936247284698312739451878716614603014468050520000591564460103574159219604999108397116167046559289620003420048384536623338204743317860645008855152019122776632945359558785266056616776363086175015218500429258389327011536524500968656839319594396271139275903788750322834267571721924003540216102783132111990981975157404770463843453302306357473468941647363701206741993985028385097108055028591628888554231666587100197732866473907459578874420629766395062142997193285163097275417721351661575211289446235613618618673706835941102846818410904019288845599634552585071076564705423489338988025623225537532300265209143535424742658111322360017214018515250524016230144081682020298043519089417194882035159283549238183552933275762390810754137756687044465320370627324015174667229986214918823544643757770495309879771489555285328840322883910336077120035197702690743612541452433440561176143031779096321955552928951755176318834422197362563360030074009369036649353002048037320823720904744264523778040561232482451198630878590255687453263309652624899538132680831354579967426058761993758172286830183931536386611071549704060033906662259853165676560413581805441550191249258202052799609191746225698785508716775173939273637099075357655325132419273697619469592690072206438102804554843555127879758583019475491335556193392123189780004064364791197206696402654911419181058712934959923676879729138142601728019138920141881035043555058483590689830273465666795716985397267023443515388903253885387216695924921109685357409633917470703100569626200006867133494787799667237998160657445210858997561725687336018687080926836876519039889742517820833264038908676848069084413307837888687442401123131906625500870938895169718675363958805394082358641665594711256999322660768721846509042056173594509113470736924961458794171044910332791013021447280024779816169828719571262926766141141744168156110849293261838439809285699309173067734370201086068349937062653195706549377340520475609171418299808596620335437452401739353566311658215796908810137798547230298456526713058516144683245830467560755653658564316163587679508647217317565057773361627324803764318598583572848097849043411857668686264619825843826971562232178955036345477914071239127267629098764871026220119010088332033221473593879575213399988545693520002846307348540736217066083828246164411886673654776165528876700421238747878872882111927934563271227942884105301731488440788481785915856068908428677975831022990292054747756053051812951061581106318885191991859128495970772357695425923525970309712937469843185243004595543618693284350071330512570243117118500361895119623899392528074955844687975225082928538009666867397671379091130132390247904934630192127899661528712008927313229005592291224600398995794507012855134937489913397509023138354757897989843637865336955042601945805133889576554480447573380633103280772660945981061388626906730846440643041298300268141896107150142244696245583263543526015094884994022095835397625861656706750976609758038378137448883972045590579707553044804126889492100423093423575216398426972481089312090295495768749918404856854765144867693191371138206185378780139994047532522565042916507896047152320181202552863409748836891492493565176518520851193196856524364281179746359432817539690496014209407709151254364758237488435238544791809997627366889825072787565551157754632623328883245783115389176579548061221372994768744116266537037065527507269949452094597033298845837598951521971504402662622669451114737733087372591288242809874701146143241322541443840354838099652354972213473390023019895109033437761528881172822998876274871634900908058114461109553076829879784849879254959537535338458499622100950761339886134561796323778962441633684974238958518740438885687910990261392424452155187911218924691040270299116974291835826862075802787020499783713471645906930229967534723118662385034059319206339928911523922982235473904384598877859851820774644740743346917718168883683720247001075878557414628096013667700768069079992675045646069221961199687192769749903686880748668621406123911041974774106729439131587464824095322138963513185303792667124191326378573605455592999783338723032084616743281849161784218971806360292126059106472410467147211306903152083190665222603200758796134869054563787872737267580629471068889941350012508827878781527713919900406966339011027866552535868863191656873892889324214369010794747132026394875543069717201183593129235573518360447672539499937668702578425852983494566363061470559878919400779594216630521534073383443238257761943202459599717791861855689227370983229419471510978993184720480663343885579721476424906566486953129814766524613645213830541832410607682568087093755688273387233706045834678536985514289845204589826282253722285869447663997108670956839506357241703605919528833250246939692119051870183403649545233705459825223221872082575541376482391360131356446071063080122487851418915350328678402985614738323387646391446751820438280343239182706764441103601176901210260816063411022731438881971832638552282040317797945320520650674384692159440805929487921877791945732052435347469907618099332076343258530786577608348195242227167034946440830651874251631263222221591692859484873025643543080292106699671151453840426078593183894153059982832888337987278307632876149421811805920071618191396372329170015570426043792914913424041412200745317376248106688375368340573749359828404242115529338413767603830182361344789254170926103680110555940309751516830020177792385973165054871469122166027521858460877809681366246685029005816075882778751108613556220017121835527571196322340735117456082588582045711368915449555922579155395267024011212868580781107160322057370078343927387901310880720036836186710171493135883357658037063557573395350861550708915759652804231924338142700035087461015111094029738127994374210695084547807470132106480018261962136919289912334305433782235896136155892462322804015876817438911411991432843061787282609039384325543128088912364537368939078776414145640182809752089383889402652677286740908504105776965675638069474424352611035166278787607462110342464542911636926324015637920741994066275813689809608278290477351333614903800128707921415429263256166892849639475229455500260878663664887484744909456508702284728401783898932292906644388133683280571710933183472348498403456182537340396760097333615289377008693007106383310718270842361649248553586297709748914317218583493717743691978277224779888727196478425149118815584838228581637003371387143480221105650060255283476700620340541788473170133929176426504209524759274422680758584103294524114848576549328235463433967757232609895641196597237117969956884384361315077938408700871398464668067382365999071775903808308951693902547154831874867555959857844912181842767477505670003154423719984238614336395145200967641260423689280648918704339565923258339106010196224042239474155274267665444356421574180233688634204845787566782125785166578470525377455573110786911081162669533586725910402704067906385860845462402428089445801033396445701013891051738806461346589349967885049909343532762209968032667751092318074975863818904540867533004605696395910779457919290043248297855254177084887750846219998353387282029944521689447438573164466795398894987717699130523075640959193636771403977602399153573212429331109150858517677010603944546662417019420951236194655339120684159219891938517288629477054804937408594184677205142011790153216101950396239580775924185973408630481268915104585691550145328980569962908860373932557399047294987157293469288881290916065257551093907530997749760149398150813615908358274610009247807137244693740428085543164956061537007423494422945955459323983992420186728658838197835644052691184020807617639235799248136804230629079155458843554410862369922973298961490467182113617926722159980565579667039558848256986701039691014873717392896864040500045376556823944539176720671018479134853121745348861806096232961636233382957711940476793179945456067999921733171675512424774508873537111409334213256867229604689074735580123505765617749347079126878125202582013173845698696463310252951167743863081214866834059444711315004836167034081979428705097212605240388814762373966834593689638252148577478590565434144183280809675403699551800913591234415628286127723810946327585221119859123355155961224186960714893666651117210180554734284565428468654575310028699081091771208801935961563520536958505881109640765999357049695145698418932816732770841624821439595220000169358416584526932784304018002962710526288947457077145669024829954426677890721268749861416136668337205946230316250909132702066068626831759890564085041886651145020634438596673787484577598491248092226534695313272090816697842333581933644674141473510244143634830241945450243304024297660722305096674098806294029634530817381514651793104912111742079752698643287165183943673560353296890549817209168923083174600969999410940100579112277788157426219893371159999376554879860010997326900956889193778688097163402701271061186400656300468831511272912121962488279071669965318740662259879137755957026933481108380473152867397051770228446089885535565918287242868986609115147189483627450882130569857037826095754409567696369046697615724554701017426317353674104698822716932198675073160631445617880011124533191887943975795947930602547309644804670083118962107432858678143064494136964622663813396111090566904227405046136880224212936266019184243431387176824883875012694223378905349185459133287383879376084132102045390502548703965357940673007829442201023587699063853864535705509239649093174648047869430195470882341152436623022685206335005129430213033236040893798295126506566838451748907731343818324257502678283405948160301263659930679044262079730179050384019574046259973101911540836208125547433823985955751105733144300626645303573827385165747919089265377328008933203367537383758142654617135213885807634963452441736784742254059158290291268796255531480885254425713854572336214981998495389668220456483402795007363017695931435362841612852601974222977552763117614223885954220737967496131381134336191913399612754802963492918716560184868447729386491651357165027063678093749007726353434153797481652060262572867919543913594467807226985796244083722746410830740438364121499503339994511150203274170345153141995682854890799591196597674470216321817868267577914741762202121379108163691305314849818603872209781189246193657501860224075846019011618797337915293552906923133286702426844495465104051974665183809757701576434321928281236316290297759084490200554645918694048262414435745463921295809154645601335954289417724284230791731605809867863542611244778469687585651875372534210874925757361029942744592409889320416204731846022900637061115951824540898969169566488969223552494461840317064316536248197908516283005127190640449596481238038386038920139544031118888585461728512453107454879362884253097516048466298821096841306817637092382321321715088792074071752345452477375696853612057017655146071770299566224724114505616398902457368978970991034494235503563500269693909421828537222692445373696445355914228419843701294630108713111540851635267245696988366121726579393582225157566896609783008769219993578845181112210925643236868850598988690196742286490162671991770107730382221373240766761520550090415842824927612558776384628716651469447172233896198053671262987851974399174948964149812430195351803390513869476757301842997784663162402492515662159024611375130812985292400472824922659324596394389952517012526729865990736388527683434194241163415436263957283536104506469856839161206490074231516549579423534647284331632259583794588263282783540527966874425178306367455879538245440728076416611824785592163383525596209858475481326826838967250861293044953840467135783229689173243723617278519814474456915461906852388130175091099957860531066143476890402356757778440401719499593774636602602318620217729737499300545871538919218857906215691391959714967967265473786257595718182292010943935832582741201120273875891097994187712625015976965419947213330626703731109195056880376190614874886943276801166278988120714099696604578175525667253622180685060362045475813246660753019138364712088937229104699070024160378914007607387333880519624412230840804262907759740697877412243127816235573755503687552173506094981956276713592309731808856113767087523709579179090227657946973448512408966463757679228388239787738850935095983506021133852766234496015006483738178665425689742069457719715338213884680932027870276982725392669008049352060853608043207578061013148987216866286041381217931029999464460396518435628269642723153297546912948890819858047158968707136031446674262499705618410892197084971768326179441123596779531264215791056859334524114761840434693726633697261661650839829513920960777629064843190965490422829562367426154071047521061431977083437978592519941139027171985871693005854781982691082735206897088378287611019158254819375520689299599650980500578777783424973383677485316816793979548014885138678846927395306911475013281520253333407170672968855254344652186902556139594815967880976617389126329360918637472929665694996074363178800277492908073729894693038795171820797115171978094395824270235335032495721841577836608380584487435297559721470575578443582856004823041137657954884583535297704933207910870362405339639291730199680514929422359790804437502154834202381850339981523722958655961464028904937244222861632748596725578194488401419966294186111155019398194798441503011647264239058397389858474129655991196350283492210504343183090711203476686933192882392279387308495352854818844137190408827632260621571112625104344356262626115186495114393511712834469833834791348658744793504014080672274117510455810366462448414168194431859797469789312591813174443497044664160772146413392678979549593111169876889249858620500290653537985698648734823131904535723918529553742831714621218185956265805651503280256040861662053788550686013917795756827165803217361086536745916876170004297998828592237441928608951862904991469990240178135887498519320789830302546799073161895966141402961512702141307002747127011601255682397632129737792115308210318977805731473703772678334152583296530424462699433911758869088551598481977486442410383546390208567711068108609504159767527276137403817057299801977972823305597345717780546015356447427408851576143009057293042829817959788912253531214485255458223955461651767727091288621781171600682335417012409777862388299576477070744853833298486896397113715299856788826463611656832157162889483370823729572435105409300252030016706035486752527251704631509505851774885297978837488537859418484516263200129681844280051501990093747244755476740254376571012986818915148723783336668020356473235373314695255389426698584737984972074418374128979864261138241548966800981628541259607176109756172970870570715523628069259565012826152409489162130528661903794072712394581483781306608158649983806474152708674213139412860726159749012986576449430568058019327016129443185229261304866592093677534406276393996856012870561760031202007310709856947367027949577647574746520450542024059671555622552770315599857940438433876477854862235671680750437948402849657328086108571020648323397353338739754638477415627270433118359923860741303252061089701403294620011818832540136104609707962134119271745224821655306939515672214433832031738058653204374266559609997933995712558986751127998297469706953858357349845028484101858536664006204135649773761315785830085084078750293562008299461719054530079142804592838405772643493602464270095926811501442932807982558044125034990032617506952321659729076228337885792847285204772239312334987741943742517276027536236805463453096845194806150514248032538714271061649108930982846626212432756045557080472087933268624084150538908837276403638444818087804412540472759735671830370739684740234595170267915917011197064816616511708738256519667757938271879754441638574758446643015048802957440208540503343577390256550009997324439272167213511836712728123307566048350122345963133091107389804810299946296546276722541407097097500167670372228767906088479515999058334197193367347196925154133401043270127825127283426472365234426742827709021198816979286228940412525721202264876304165550357318817543886078554568930008980273282213677659510979768477015989506002820773661058728423118542801230254032517306952338349041665177038232596483419899874733154032171419849290915657182700144116490096478246588536438768281201828633918584650302356656886824329694476963287813573783640386053664226127384366164552816276110866450597642672081976983795354758666430117264352899554158038805183293050768967281880667896903909255306712622187569997701678775800428934114471675459863772275604399768841004717298490700854586103857287587859448595726784987665214648049082621474023482814287155988827540273976234985204702756226428300035668238065858070362464849352714777419555661030192999298324769422128847981916608351166150164692023253148084943084273195068820287246498761219727400688061499169512730698140860195745650983097872984503394309330212764159158946396063199881884474162392315155945138048032843191791511703589555106515886591142936739861336452969228692902883146804154043829662781095930877327942066796038260638965477758275914216887090139975309519976434831090513006453410328327605260189602011320223950968582045330319148893796873194697913364030258457779630781399710698674452452121437487545375229183751743572969916213251350995329390887065567399810621173724840640248691103853585406717708488388895207645050711450342936206201415808975079386832537879676796822270201510409677933470239115932130690048947981626476270830061377313876660803821505923043778383695919365834312873221415951440471489594566005471788697220508017157472833636140539856801974778305106397373157182937233241729467423332111155637277450737269427725464197776473086039806636246572549747697360656527834678953117857888612742889286671779956393395992805717371098396176515890505150694145725540319253660123950070612502108643032017925063724772923525143826177379706892547988101782981446522699180711376236245409799573272539351133048778852123414854690134227429209166492602819209182316439298776886531828094598911262024446597769152527484650021263751915640254280591290851605813794674710326003377418754664577622006800255165356405844045024416762718188652538276287042196257990457261851599687360676768754251562902603962623628496224936045721530873070606057915205626916551145306361107476535743821729837108783580862991780465647526205213143836900748818364697322609802533787798447926296096438341752632537426451041020433521650862000669199377680628016282863830615892115160219470982628237480751698187815484567693675932485763973048416334091701054655435939621866516875873387487346304381896217171682125056424739196862712839324859802363087868851501772304334747139923052581415121812975195492207830873502762643645342286935192503562753030549124914046576513185169705124029718290891888126969542027745864379680556503984365288954686482920057913377086387437359879557369709500754280794123673346524476893927438693844919649688800909015003236036137601233267333353390463013099783206054338396741684603275129245584301765875904609411106501322528628815581384701227908429005134816048216225434087822671381868870027137367278358356551799982563471109160432663821081223471313994482945507186333978627556620433017368274000996871925255930603552498752004139184615783182588984736169521543779489685073917314986758940345332489665199051166087244211845394732710897256465512944030368186007810417291737111490079052374155939715143733996295695457989557821966765122824488993207224540442702978815673579149615126380214013963604576233332257470949962999802387847459356027063016069172940221087293250472064592472937843468897635042586126429511783872853361915572088736865716339535949802387735859675801043299661757858243587101795254458891038668982884596518356223322016675324044967905599929430452614090229626287071715856563489101840081382270259710487762856756692486602465110994426089659613980267269570091150254539571787444677351775793597008302540827486510921187792964172879647772518379088813006878993205757734657024138078793073548628828235104621018324252479527093388634201312719521195397712348193226928476240632340498874276374928548279935356449588058220782183309174623850201217060578779930162816803601389217796484994823057498016768720699283272787897469985056308528561824560753025689680182192759679338144589561703585975693184180367486371430152684584413882082585223078407493824545543406940318741931220099206573839504837890523884086186052252627989594146624633916040643330907319509457847092453167987238195320958104424613185896890259249769661902467673376095832363040947610173437142090240057387128329157372388715615180671999371796206478075137868915898000062287063609380015770013450265495674844969571539480746859103964600634262789859319529101006119066470591276715321165485413957612384429209571533273770308468306357822524432822640356087588017267488537561876253772356507950755483185532105603070695608809368551294506742379659116551934804935334019268620230582927624943887383221818687545720821669418066838208897615513472426855291904104137045176651338849868887151573701286496992860953997924546211907592391453334773021264248600354714560141586805973904376195727684487172474750680304324683482169879438515467035444032644118388308561767606620414481707454428246589101429371647290472443111742673196799792355233872678008316981119468431709541458259258199066567744436063220521697460523862971583195666263423181162099499586747082178786193724030127010487273812973427330191475247704387107590276058584141869231737141419675362884485715717314659352381310013742108861390293204436323954745576477196517323777719657517061296431490284487904802352066756904059490168504726138970464965741138572896977503040237791593526172750468418510292425149560188260217737938199968051720777159080381056659583849237677661568674873943664642673959396511125191397120423190447489327839971276051204176310119832787028348056848728974676424521142196145368204621802419915763800790271508459704211721230080979050181712033628545410762317054751155694482068564508991634808190325395275008726075847115085351052325489890596116744750484295489445152911628910063566895064228954719104635054884425914594205373714772911994511459080312203764303731916222138232449288423493432768294492738886571185090262999311934308148976116207859571704895471695713836612227626260709385072738170984986067715900951857863989554204213208023604081070708835989373327503756811826660744674079011879235838307760364176847086972574626741323143469517032943236770506466532790405855550060684903876981749240472933327025806127745996366527382318004281240480194401114918751072322667948032812306039344777310244088048133624243222587672084822579746654671409206675857269984400158507321617794706486578343393945021347463032946453195273229089027263073755111643601501498932754302663907498785232381132170906010336971543735873895050103007436084001064068150433472370946217616792537361810995597298140603102898592628940182300164645061771235732965375210881583999078639169022242735895905215273399151535261377937719613606441152390352112514835938035967965288493202063646911384608171042340523700712824268665672993750356587218213905516227389172649531160620389601494161436047359614180803137636701493923253397917143344655268169626990244578653493590769132285173808392798484619330083845757850200877175982117828109882426728174082210930277052910144690398322212733932792428829959897356425383449535737175935572105533979533925300261774805775598678034998654129435502215442505698644545895315119280343882774736518496786010832369553514578032267351288543290909905604485370964536209235054672003540976867359432830043548513212342952973817557197533701295417636553154612222940250496409245774421596473229813325355129418998233431259334599997530258404333323940986641720322900915843802640912806424863205311660827095497107573599831737010212203982563834780020289494496905942586246951191031127310827992703843876712315360712813876529965268184027075762192520282031309641196132646499350064620801777524777937076871370283115245890462888706083867151096311245879391603417266079146738822235083175126225176070281652658284092810613283336133454726694835464758489509690792960952278363823994257658934383893180517958824006836412432270608745816568048808306302169886030808933309687628115939251139281094159823503811578696881085924071405459361671421444244339982409051651110194693474933686363355918708670138964057090150010955916861549008022163593772626553333767741267466366212109057516677682914334979329526267287282722248780393416366429146673931581502487062247981653076771276676985006732290913866722286382205137056336921966083463429517279009343833855828303811246307798526275483204186675879641074220592240151457853992044577266521448631879004754445333662245100416548183530761871714153336305590774269293164214753990201751301495466658959636377934809137408940388775938079824618332821687739978424839090752320666535580649309636354816368275403414716407425862887277114884969649351984807432152083030303398463065381521084827596329152296470872996128826652478182667457110867381367258549288826921919248479342891094940148858453000114597808678191736058813775554192718218285448840662764557244539505562170989479093778053957200741216189274279127309078395628963130919406059286240416211945414693272564560784863853949239457074345665695587907814223824672951170155378102646107410249031864929403261149387969447873955768679002683590391968864599647859062504338825172638485626163099941459863811352600705242177354521928634434441002051498239018609788200687498195594645289291201830765188669034098845059955565835342710242632301572949152605479841243173944328350007415805092179574792093458452169575559405755676011118611086618446428999917054022124504355252231249899862418124503160082238013867490427323052629121505425185246238437608059846321603617395261045330860712836040073964424045191887480527530592311101104368179432892444409817137883148224655152639111483331543068333582778887478837516728657135280493901392723326949674397105052339956971596289210503056418943776697666913211715663313145186712915716149684808053228524065923284972480762944009326724138773163749351326709630118853878403573410678105194312871596578872030190463433572215605099805374230000730526487465718011638685332999905375662959730486444235249465468995008500223210423013817400144832780993187269066864099358297672801867198200752489004256050004115084076842923392063353588287259765254813220410493633650998357416411511564031652646607649720099709235502435750429054610073160317844424584660447112659210832857012740108129589870386874951281250129702659065930684246297455792205344000194857818741356838706259548672888023152035202020682597555987458954468986920335093482899412919621016126749790882962105895042473076758921378267717094120289357782516204696224500810148128533499374419473073262566453399672474269151949239972432920558820015485660963286395276327113507267273840979042150359592368756582516280286498367985772786122939762648383677410702706886468494213889909531649921627689845088970149266224556575171443492344926205031872785390385218016810722142977893023956616644471187761294208072456094140590847798857205615647425132795652264915935686735389396663805621577131402689810459704366736068543570005779685709132554459991532383051100156469362657024594852342373822679754255574916936452798376818826560840983671185528252617642871230948344376401184344075135345379951807017451397356614937981009495358836517044647159533197072154300410497864838605588405926980149587814072264671424214928928986797693557189038003449803994696133297886061935277958670238305974209853923492728923896257960474954265149794901814339059652319589232626471551620972445949902501355023421785986391789132831961165652036878949871795947197045292651774768940511849692515874138682266104902576777651956437944782374837371710818529763512415163061991597311131410183325268302687827242709489705658741262333901164827604687456694256529481022367316573189719605037609822823135152687429333605394146240623128022099433558934853633668465686585031946132498712850383028867141717356236576309481365779791471646627144029611592983298857776464173491506875832730040706791874229747017223322471542365818898849443267028945030596989020943432696853025465254202138373051254386303766564861993544890704086919829541642695572862723932596796428110200933402396927801218810607956689643267864653677763549138439586486721518301373179553072295935864162359072242137304556562562737813624166053098825608182249995250908054385209502865033427714419201539490846360842740770271305916203086303065550698792702863137279114213421400901441585925852784881940636001183956453570677256617202284131937685093557223026521554993311821692821149503077665891284738194232707214427172476495502330110047815976932473465682270905692996085917267544537301590160564265800882484112874174394493519005817807564328611066019845067973061488751301126163810157107643695736725491913596453768871247460604254253000397835859148832665893910637041076936182789777632481104180972259631389218172010133561658635393826135215270901434367154632283697663251170240655168091989752937597416059327513924138747952180335751125228327542808044173421389322300121839764036271240638423628421236958675382676852856376278253727698587262054672962100191074035870745157040027075496420400535902342172970735782702146704491951287735707780826620533372098344626138825748064975604774581272214728546995025189041718591892499914265222543211554878386807168276233774409553076113540669624508092188028617701392173805860831513044338294673504657943727222038656888714678133866126152309736132162274930149872517835451157635560477609454179166853726375300673666171621873858633117227620216722547093386176739878017170812587464151056916885479722544153614806520962021273847018942748720275778866841371074434130034711899234320614432340035363953766870165551557841055501042560539727231345691804611525426769883174766662423636318621532730020133995618543160023725863989223549584995457225206847188073758684020777092616452054740151417689258021874184819929415943200970877598898929437789110891694188326721697775727791021710469008139842372383455304322473231577142131464106474927224994446924905584514807776148019211845153847482206030581522652582963985018400503056087594419638521417239293246402814126828485907221375570673552176900321867307975511969041943024421117898172666492072966197143731905534990677549325565019328835544527102852893195766250342144776793587059418147962192879105874284856445269539580403656321454184224959547228123468817912117189459755117718024741695994129481380771781356707621530658407569505536825724635928407005191790242985658342632677421876344989895601926963657099597527458075021340052474778817351549771117439104386232517812030651775936936779685798830665099595337236620650123503900142792183716879731222934275851371612575811500865091727056305516611765538384501324754818194349242923223068893067819782419529219001689026085366629979312064726715546686400207297090019563312931405599604645220836170978242462427238375372599047940240010337844931121786179152838453253142231147602280147819316118443945241044595411007173215495645195409701320373428139187251952419518722565400722978666947109611470695966246650257490818456508803550147984830246388908047266379575368199744267340863216171058151625777998136276408602721112242021537565921214927464635639767905343736560181177983237036085522087368603250454270578515745908407329238064870388982764221356246115027313185350079061652850561787105259475585625856413133591863016839065991611745005748214039790339598959577164532778849415014384672148183168407616567027710787129935667940599028306520420107813923882439930881116122728172244104127942248213517600687206750243219505942283466191921780766760305386607862451805169053919246891478600392270582471553660043104033406840415866973557673173102909052673278463749695192810494909124465234261136376691333262463141306008434999351738348221222799414257458885894532599628574931514518556357964912152401955905928745033126547149523712191426003753427319116259068058555251453293732682375056849103784831233862248839343056286457163244946700807499687621398231700653099002875908105063251101672624743481051785093109668363270627823085713608130000230815382518455677809565791707600337334857495051636043523402437514452091135800299120830000078548578869691599459207825973133409488949288463437021396700859272767803128770752366925980935137282067735195730362843582921254510729727918950596795573044930758603008877673803810097168772398701369182829897361547718910397353900997854258169244269850617795070712377127165054142058368919444648564548801725951829414768751155519149466746669540165799194452440064691914311808954093946954018963106589148396582814775066415205051992092443870177044993463347009093870184412937479435234962000902309854109171027558912279156527425188808711815958557000921891377983509968138615001458232720075024508517208048648422899853593459721252136452196691579052061633103993362190115308500524072553864480146819917837366876473466140915232771893373705311489740976771677715165161033156279479153317678765836171892897208744814563073509612017824338136635290919815444941524416918197636221315301950312410494470338569536603741346919519302005054439963564475746835554574066509344752656243121167678109442811493729480322665648863122670748087389362419796212299204321619076481668330467276774528298672127410715603550572102189104764689542524892076267502062837468992037829550943244578393952129258216866023280006424623940913184331158986195851757218255722334845294773876914319200101296983075423692389247064133263302201774051855074050154733536590235767428689393242839433429764914788733740544368894794846016114362194872278531170865729739128089970709727218224917177899972797089272941208587658853691711067106153838182712679912936256617327743411185257098811790059054657733160858997917291850676068850713901197343835268527568001926622304653220372679079744557327884665661665452215782669375766517995323484255066572155973733472281503397668448533007526825012436405183822185939946483977994924414082333302768477592544182573536267401491060403157961989722792204152847214354198095966576305453678443095131798231546651038366675069928835243746148126631407027943425999616206765600174864345156709146790479064948376817520823503709239087011997520823603362541110385567654659632137356623408222381578153449055722804321155801156206586344010562696920507628947959624305007283774709504460027192251467206679319403287803936931037773510993559388899776830061213106636049620635031872816080351177828644343496787944559580557488162723186745825990569281929555905736383224594951326891035772752524205526925753677369178896261913516083827466691316153532490701663498534077334345727738485086414806655658925011315467422211415388619210973024785243534637845993157229947175040924253254269881987813373397425624200954795232735453573090293804617146840578570433743169963076109535655616747133895417056717961959289216286513717163382015496442287082003061783115962321402415063721418707344127604675323895324575347346299735198508073825759680183196016376796851954091910026385469734548978425871189902896763991243269247821574962259855812377450827201571693552091996329821934365019650368703103448839714038383392526297223244685056760787732654072931801937331587858690627378963205987485620594962818329620848618147082309282182942043459713143841517233278358309002118011615798489131249985745664755524962279276060224626259796823631823807135372053783592380523943088003357724398360342551906259446709911130082682342305544074996694570292876493440047627553183510661293066634283164433684616084606721544511961376585464474278606667257564465340540229491020429672787857907992571542040789004394913999013453327971705488350433600592806296833384369084952620139078694011706320191760996003514423002092301520344840602760795730062199734526344478108996988674840100126266479403551825428593373144239147534704470959762258693676435526832967700076427321147012290539643053081627853492825823826742596187196108025981187048855424383526409013844009317646635042245855468367891705811726811402041362006711655021703446826951619011556422592011524049110303582405125409694695431731728514308428579767032019078019702380820678347603142485969496347489215754619209417685908069305773011297349784513108702538621996572517613279642638268328372092315208974819402823296686013490277730610669813191640663854350072806192580113185588618221753687762024898372957029057178691982803193564042219760195768030634067183608245092807083950497329096545876941307529599635445416213033931742927536205430209209071715561433204783429360224870731981714793940888792015179167645418032948112351158220397884102098057816724849648069024599446016437845579671008867468082197655748959763113009076187340431542230764262339236272628327790664327516677697132076316483553976534188781691644387641397273689447563384263867727635100099335406070536190124570175403060870475169491085453503543512028327880892274522917856631880612405804527255850395306615624885596154722778232899327530809317656276095194445862040791078791476500023593476782144917801506642935770445960971180233668753710640263270779684752266446949864167365783388018466896795215055196974831508510040367157480429796616148026549547267063081372643507210650127813211938110096622130297871777485428236945794554734404351268500371440119349541514218289181104479568622861374607663542646421525322998785176048620585604035452946591955375289305031038868777386920675582468666092308549457370846462374502811173587163947940960561897977717911618141177664461180752618544504524157375439205529937289518409727402368184756057290134413401461743075560660932777428791497412906847785138823033622355738247120416295498350692379387454680974825342246301308217748695475428083228448063477094624227304604433915599645223706083175952453516446663804127175553056709269407534195898129749799681227436325640640691840085487728446041039641048866059052206250512453221040876761988639698859368478986314208123813499987552119252597957819809248732712955673798583726051195104876215591738641825699000735090892331755996877242855637588843589319545385626513274444913050653228006794329613945256005472129703991736694163859934407612160692968572160919835760066027998631550355955097091026052884249247067529076834774732061493655498942065141335093948359077022600227932580568731378981660655358873505807022673247643517747007088921268488249066569579110487411854588931066350743086587934984080805997416894889641479940182733484719492220761564043086358833440166992174604316542990391460788605168315607838494156730117463851062119191194769953076006857687458229354166653430584966082354434557038235146875598555159770028004302774833740554785654448860623526947718647497746089397617731023611791510267949806601523808656245700727398768608223061856641920310617054171226292331123736371141243690889889938775709382300084876824336469467931609845051251063792893414122885994575775787418645154267525635184716892916100049110235459879321345017947772837682925623315525594058532686283017812417311856937267481945731313685237610334094194224211526246013489111004143705322782252230456280024799695422783397432903913102177112372349957816471373991831747779331776563124812425121237920437925453313072054865105820167413930110901100623178102605205407848894741851366502029153419063876232345882759242098661563026213048480236412359613136994843264710641489297461622075462283534657041693796329592149983982352464417330207925923012127391016801562093521857923347661229068841795070463792425749552647556675658946089504208059250490885914824913059502273099632743083341891616820836788261977800641624439123095180925977005867079950997990752905651479146418347435758050979545313981614297206864558014892248926072436590679582338697447790524533080712790343901126143551679171617031870168915840278137088704950614333875370380281053694293392049192669632595191950455683090050838031304193384519489733831529489124074820482123766115592911889030736740476762464485558744769362962194112498106787100626646471494664331498938204571066249940885279533385420491206667663198650561495404256771197553198852518343344618942723082321280807595828317047869460135234011958445623629360856535028759921217317850054677308854438802675560865264468091552779462337875411161728519375278125181761111714597309720898455574113660712318548186359621620380494228050921516366103671031700016053137105859501163751971112223534979062832967797060010267953849927123233626418836007094320005528572783764022433289760774824108498169605636903438441145898064104910225481159892224453222978801876173355688863351011063578201139759197874352477424489415650786119447703186783475560539792226284152751121135321195665022796334177169369090099807691336519459505304289767889175563669750407328108917364670799969845234319081077917321170520397184775025567135754859911048447390099968507185388591785049807517677552588900491847266363470493750119076643582345698253827448062341998793203601308371706404283897167658537760917678236578029534881442414739689891227563322891027653732622163024625663767591068920857962247577304343678848234516553680415046311603345725771710153340047873573547310560399214536567868691031748718667128352758852192709041902172089985204098257843800353695967971113375242355290202980721263565342608658447791065400098804639513059963514993621635150461404420135972336640525683922477846270581466290795314070978481280581392042750732844826867488442246338081399250968111695536403364680880937144711289799101790302706239737536762889569126642018400502868081773023903546313692454963694603109926764304164674284480767336941265319900204743667762758582104926440667353220941604322121922882527259518450761767475900088118652678438308571902801903102219679207805620192765531447011714792860627829317039507753044383950024434875364691172588845062905968610262139232517934644474907021692225727821592395549244813797510995501428234787276783561982037843261655519180673545349000924293928495868617996933227288771115609243227783926281245388399493903386350954354833796097781445266514505797747697766584845010633318906257963338255779223324799195490915741315566098383693922195280385848760401205683724920211206301449394218469701647074628101019197624849414463972274156362480951161512203122435095742752824449472016598577117017228222179529206681792976370101524221552332604676895292015266590808177212011377978146265225535086428687954355907340126588462975281967106506882048439727293573587251146932660093093997880917960325985445444835216211083563146447198054301479425060995473439564953421447727979440948189554844507492319474978977204851813214094075182993831996908902972042385691090736997464582949828298001284684359051233375650619525219123727986344314108151185602869419194526376506523464944656441033365205229146489601138088769469201156425876248483832107585710528199941460758095757470621025419053826528122458197498333277011382133284741970113797290148898050799608065072495788424992641339964237189388019733645589213461052820194932906154538398979576828182096443537897205931264011004861047621693299523556566088132134198172124981224154187053309926900588603231108016667683835458500435534164173620979950069684416224120195625064897829010044944588709664600829474869676070510498991713062081646897726483143122047860417859127674200905895594192233500918785662171483381773300607185803863006662160583323154537464118628338019776570962841962539067547973314544385222565269664195144790661750917142136810784102048477788805216481938090312301830729792486165607795893171874276977199494084615539560218873185476398481938682287694852926702192164390116720014422276812186712383150137326220690894594226984927223557496030666770822059539327818388773820547387764638175170615323381981077109361876760484986489221666474105110449131488313929754721905455000387653500672846224556794834415786956190285513345918718143146927182275179905611413408576016267071145277767394994694505993194329232030968040634984421728990070175808066230451779283877745612940125443046473486849235796522844227453085371630415593734975443926341197295430234199189241116024304542365810515205305898402226156521522393438669087384742147431763609781432527674328624970571491938046714551986599549583625584146130751460704999195565644211691994600511646169030762170295199222990082833876976321008216468211463613326113734443346668265884089949094844618851072572831993906056722545818871976814885972116567765212363294781095687071894080494581396184551294851819498072755306779113111314500271377806260226572372574550693129839782525421964932985682474665818235361889002122610177485521701804445020921811984255223137928198997087001052740801290227285140302966869559710167059555273227994533742192041377659907473363235259587524172764797165418209550280018666881978518245356068443255340154711656470703043676434447562835135800434461936563359735628987553378688848610822502163459855371069617076889038379768877403969334710332960023470095128940573128839199321057963938224316982243237656750338342289332775995579709101649350240871768697132567180159117926154087256841409585641574384794324752305939337404939294187725149698165637844480128094878193881639921759075552298698403317258812639337915154704864098872454040169043111402564271024269368130048846832026110428192220200080105193054290731146875324050202791802504612241514974318324197702320354121541379786023399085223261067294198995760838209536129351938069573937489936108371901597671293587988694434518678405501987004952457579890024989259523513887524847582177253347489978339124796762160689554618404046667050487057233572637237852769936835319789808309774809158882845551534644181938157312592096689413898195768303946360381520293062816148363542286489138594516834569263557189245744784185881291228628213225533879533630538968492365123353946505338806386357751962980452042647420492583674074753475728210031302703501493678340582818855813721390256638157407642389153283081192688094511801341248324047069227041780653065397214697481144273173612259236356758837136166474908983246519996494754024927951955014764459051103385731638545918410708673520036001503094118752476073953779650500747052580277379838151427803485561138589540269156494515600077380555509891500963732230100500986491306827915607277116691529616424400283187086110303963683402046628974525785959518918289163625378226663383412725101542380442987486846842227685305536756280909521799145887931769699583716346830607436212795529950801285977857589762369447227549782102574034169454673566954381558609303046108872277531470546570089042932780588699237097706305443729889718729144032302294740743951847277996678545607218599166408586103158427503627514377034114726448842741920915109829585409666067575223681379644578044930250629929992772318568013600730260796983628380301396448029499540837976269451277870776405606663685780460893454959801881175730411081142175491599259162555750922807616064554820797962283035331315502675825086198226584385596421721795473372333533214754426035133503852033342162917118827729821834177031629916384835664380150692060527030801449491479704808538829951799032154619285439737177918290328905786752208648891560257378155100222518501962475478141493807089430359519438986327008745380500831744833626179395561175214840640362627444152464128338765016365985852042947077006845195786409505719684272349233769995698192147537063595263698123945040800820363075353583586926314631771873973389354641360677216951114024894368683723846423383908835895911922465194062637724255962152058168935992666565270336831429688515563205923285161308548494464603713678113541518969192340017630512341082289284812888510498289853301424438424009113336957268610765163763062261450451212862082075428303220770435163252665445524202743371029154392993731132451406126231033578380583531247016020534437774879890612764602724181019668970232936225670349156507482634128657273200525297671091547941028065837610851594356207310567670702795497841300988812656237213353647959464997121450900410644914979309338168652106554412293300956989705927423315169864899728811174424294391650846233820467141501884432713082924704580996031901257330862200527708478487651917391749469612919759046607325197415688964391708717865881865107166506990018787795582566432297298891760900148220253541455228586958843575773662813118833372644870569156864821724491852019935009356674940475338875310393122970662504284094512667335409859856095565009522735673486046686327611394487199556987336997313824853328849599978969874888246900566027093355008767828409106104860286426138159480929953994971344884745016069898365867459657605081226392473276049835057998642771823347312471812530075897973135392014988723582039029563604213534812283591810886697537216592628770089057685459284238492877359284380328684484175603154276117409942059830256848086716092389930394013146783030077834997553621256128051903129338774482541177994965374420220916383418934793261525254260133762730705988312505438939120422178979047841234587411377366643318569450367949311405886915850003766207604921559665477040250318509839845221837765745514065000958003288870944870548235566871962413774578918624053676194098592323211446334812683332564050003209783065437532719946572299989677736827885802544413869451156933934211600022933971452885713409536297477742592375856678552978531096448364230052135723283364363823239301776742009597391478214301472181322466956065354056999480972747321843333495793869459255236573206643490893563243892919838704793318432419689540954688596466574275825703756852384442109262926969197668988390569417148143998944950053481013667317678573603501396270255759406383125540575421967193425403769240457114747506857334302377896538087979312822101362951145795980694677440002498850931535006866104345315651880471509357864249575293056800893315715548883617712587035375229661667230357600885862912967638765904698369330906614742549784397587405838192618996494331910261467744147293454588232188296201199692182930694618119751099339408135354366904394337603985181928536921137991384373465657548049960266317098638392383550295763228699136321241992061050800625611812374286784697783787628091837121135389527228677150541800021696964007503303424244283241479429902563200386091256075961079042731109815965562530366530266112854080227661933040200011995379443540816497425655991305852218127019753521451027711800571025696951073816001305989985224408840783194955518878785184076083126992988358718170903828019522883562279191042187268749934566818743840818808817017138189258389233139402581450813885622138431640495249293114317987709205097411682588494977384682117095736568321076327488884242738734797217424719360235587717225562558040365531727634354360793060377324162401108455360300312374261297518767455495278275361327662293693938644883154175653105506351758610443251368384126894308044117977444795615863135101246059425840159601221953688837267881042557453105029643777710610908664124006280660023635616224181892676026528432257715800969823615136519124554918653555080130641033689313886739413846316163260321108343869752286108155687263875514229664587667625407665911307978684807827610374734828149673488908081702124237620146712965353708959859920097337576122490999043207428860939488076875876994616712006709678043430414548681036175665856479511755452303885777318932883156867572132724271820550125224396005878239056178737391192520796308220622735170559273607388591556912838705899894359443903723633807260747316898541535558228101436384809295426632831721220939614565818575550461601003814710775786763353384491060053765070753280766618761311202435146948694975190576204927434803662127364735329862518987273185125988563599130553016545874136156114256950861865118667683728032499427058351330596192179322797257101569886226578602614518666544057825485265241245477354005370647346208611967803321784393546212729197974923256581232216783969354834203566773032234743187585995955057173287973564364649651147078231679221409217725885167298117699780059370707898835841079588571104724819760977447543384339287501552741806788445200631140091170681948453356242381604099753312994042050811074694245088175338016427301063114386256785306489955465652207140531380968132743906889418009711946703972194826455801035542592748903986950591242759868307676349590511954761007683994820032643019869026608514908220744797069948670595908020155896111684507542048444156653226917936434751940406966732713015204907765437215008887600987465058124671652008934255110203314177621623455559974430050064643336142305704822473198787396318581828359804776440770234973491404928560930278800646154731783583151132456280551250430039289424874559437480020126380723655903391471793595017539305971623692680731732011257927898358207529029848550110480110871099907824982046196541949226746530736006805329513475791393831198164818240398373436159243197026997924456779591830251879055062792205562499079070916782770957838679605280612986872569832955094660585696697487775495191892582280551366312880870017952693881855871410332855164256006603914479184733540169872781924793316361510686696920325495855614043113011643875403151668277782485808164580137398741329579616642059770069066872407131327504809900587251722515998661068505505842948439119568442076248485437864980892699821010923121204005112075321449505639793882856936659426122681062305325217531691930462727697371227602306165096196772100750891795772874243199501542873821321287916415213114130087939211525984400233844064687594771980524412227644191468275066540472569067476322695343773562858630652354045204821249276639338580947436321174413210069422948654625090302477890872362770301780064100322152480235633775649223273020423509204834670350033102095212913717677242476232645107684988771019133370401941786303515832438784896632764642879550907899740833291062165528254261960000993855462526766405502497658227858026487084010952253166776328550998357800477730647587030515799527955314590891053311058137253970025028363984673252685518478132940049825497527546500524722177765609362822316638374789705468374032498791216842585366442105965174344767754393483333621514654168690679802586954277909757287940064111364723619378442252152213847636451464239515379394999458130607584628737295824896148079184528371394898242594040448810591138007197666823985864842094277663223966727063651153365857657612784676963510778676449651375798549196672920177242226678998193015866487418446123294401318174744582353706196307498095272837454445657410957556533113135070478458143169685890971143234704988266727207480763488768127123702421136001542344933517324004377229720004347989747222557967016093650498011111719725617216232069121002695643460455658494275071916304060998570698884143988952146421043701338179813743176952064602985861204661920492785218171125013499505731860142371268439778284913771717264822802664759795770203452183937296466550648426598888000747047848047171631896538337423084846386586290194409444540593064275219529668569410856814566223161233806622713589047833230488569374213125871458490541952795168976190990262847439397120976736267740774516158305562546631622994313246832729114607225382679740471313040567236229845566115035180977361074656763910969202855249801878727052480513282234431168439731856668230615974608866758976938067101653587353475960560127107590350025214892528709232666103224871022268529748397254353040930674960636382121013898821103451304797827177177632615521568952339740885944716919209214314991444661082984835802240690300998381291499974066533989025290411640856353252465681153914935491407041421177444777137499165439285224164645856818487537549725485380242578338716027151142596719409220032239540434734008538670052266006918190704962994685012971574172329997040762732664918288534596928996752154745452679243031593706959391091996742410299070526415701126173150451128838820632118914365005262995506496832276555794427799470288098556215916170559142881824675603237036238372189591653755287575705652471530316764385451259425534348961595593752668416748951521950598191189717553306749049786932494150855296303758523989811151019152980176637764354488395834545085414252375090048772287373837345291801580070493308878481149784367890671215482479740854734281797221282805005863175487076045422795930608152225673105277271951524265083898903342282103520747446008200636398746350146797196597281014883620552506974818486461180970804122260210265120518416906491841433404640916100571631717599429970881854623634704451473488744710237996065899191226457539205289728716257728575991000664668721510427484960627498092105816488004967307714505725326227585402691036058988449404001597391181448983519407370413989502253277953635726421651535771204094074745492088036854623130615633161122204052025325860538137614316007318833527731364187927526515964435343882978933818022997956520950443694016609430033702286022338200739892071591469600134757952737373816841366928102421881573997219300991253889808883222107387014567059519793355268411054934540193911220043552669338299333642946634547828473953669957633824940398290279286381598264918149714294258434086283311341457662261371170648219743023615886171123237894487276123230636423641554136878715352873386718923141175153888729908953510704956890643824138796372270966282310603657945380473710491395620136595055830238446013051652832686892001344329508540686766736955856332618351198219296820969073630129125986766704144456078126184198418608902070500768584489475737966588245582521182286088928237021883337341693636646039319718322650148401997817881337646072181230404683742970611779156019700348345841852466251538056170685799402459271832773004078500396948873930561724676231935527512033240462005588483478862225496654797317169341575100260536851371127364347724549577539664649625071907516671961248783649258641061552261683435213495991347317958459122245843593329341077646480294991052488503252769200312264900495827979678688370167788759376129208260487363239921210993292034900807000779393870449650256899006066176034680543817466499895844116594809538455677499911468059925998514087403680033801254684562597850399528465450236218966332060893199612890944272736357164212577376491279476278233664768756813396236874605326194814280814209253280098012421994676019024459320846708222205781416488511725450891183055837808714425805124328203329999402970224477878293041678134525182648939556206651700163255614112518642601643476404644702743443569160750084060410971829396399269867010794572357492299419127449340044203661396014540989614064653711803604697276044212379662193848275171403548836339949346504788210754372389968556080179243446861745803807188584209951411425697524778392564673455996771048643766740094848200399862463339064848933508582326257766052715243037902522867123086199852086552343035257133059994367221393815593484678325318989155841272131363278413847692654754198661277919828501430546460741055361531133939456589571385474943433385140033540693575880052779085295888830189361861359832446304341681408123010975242810941842259791616854475156137118747292738248870167345307854819990418518042455331511506130653150654901460775981980867425442056618858553215601509843145716947299183793328929833095841274388496908347698501343064834611672768312279471468355308330130470566642536543427257524296473791927357620660617103218396509175943349598394534731080658157619734728465984518322855261717802695182881983920869019000623447455931830259778451108949540352660476718829485983349707395539488534170890663186345817743615674738050104180462228671212178256305613047878752292348255191279155791304104477929074386390499512140687297050070210979280610111029240332382856654171397965829949650541809588868998966295340748295856920172887541046414197860118287124360932299386635141647268475355980250478464690330529053454178877268987738608946066161622831509552925147508664869277189883299864294092159511455586109485181903470774159044686809275675769555209592872792603693301090613869020298784511594386702387998624620766570423390846961813083518652457451707247092630593547524382549887549918721563171273926550547998398697019225906698129532028340298070439637922983359567189241007655720407462613639146376819927749511820814043641138619076677391039315602820477023161098010365946708638401864238552748807584344739986073903185998849861959639540368004754312754056338870487231324851697940074631790037541769904743969492604911643806371933418921168585811634129182871131292651504368469845513983646542814037962559532515772287010649439200861350427831885695415203326072217677501919749076022093119133039745013273315551574478081237565491143729834686331269005405252398349498534915654788942846168949809302456332851955662116771807232390895251301292881889698739950209133904742217934944305237008802910002297369059107239710922325056252789072395339768672693593995771657263415424082800643500772064599910086037730323919805152747261261080511227162512615445475182069928088037974746471145586862524542113975378385194006578026508613894843883938080650126706322173663223434006018646537325600250664933174123896491776091104120394531557619455061947750218195753667454499442106884860623971741212390441152106220953506572501630653098473536201678932924679679546958819316495186597683373707576342795248864993742964656169739206078478302247234564144024717006014802150684112996629888238887284291234017280951745615370297052716111610250080940541072197479821893054943061829571657175149115017834018184397904110526054606114259079956472026387428408986150947862332570150588416386976167587985901057425563109723371208395383997478520533283499905055691037694833307819831204772854036899022936546786195761914964665840835483671058031359106973322203501922309557205740718019851913600741110018285141525326479296868949788654184375039159549449615698530734734466357049011349176912836532713871302007683431694139426845399490403377876165704902283432910740324917490659219718858990249720083094086368897601119260468331851484529184218020006434406884157120638487381632803738105196961931536631056125568760573837212417425903113950467048840182696614710105111784246833579378348815006656295292650138104858349017191947384168137222190674276305741055506473054306872219018010582046733640088982808842352498552069374648282001971899001902632025843342168037514886016007848588005272040268101101537764663110651503624810299224590136312154938585036791113671560002158851060270158169223977633945705314448975563158932371972725233551126183550984429203654884723601285367472236648032922722584108086170125984135859975565385730485622375010663244567493424108352289013903109771859259048230689819233320362641491996646447151882713311601516122355770110710405730686017270362941328501572701787199509864399482696377989087019510271069349543638585396550530873491905553233906629090633446426909959464916554614161541754474395111710899598185348382277448477454299728555986581164695845435769433576145514609517090386456055263221766986833162979260588562407303003546336717535529488245377534528137262942860313858812619391639725038389459665292019858430036320324986359922538430977930056793105659186910605649809730602336505409136512646017253722805190999721172437567184218964715609899992773351179218569124733287802629049664995390089683980314368773688546956913353869236456810417361326765234960514824724598500148226121137979398218484509827360299659858565355799553727276216729751337374822007176373806449981676356301299615239194316954130261521259300570303460446901141896803183917494285016726342298198666428852958161873366163339156747934867099742573536054767091812303006792535088730027416986758621706868002298857042136953786442299123429947817849286675483971704736884625575335588200164431980682327012194231790355345998192610428285838526539261093183127471768496873231437652817218598937460639338471600831112736259857032032086351656448093970631864866186252736964773637036024789030791604703348999591322058973625523997318965539933177047770739874962130586960921838498496582896422966695918711230790343294314946560126640359536797006281337075759077289633656252572306307481795012630137950790437754354171399585045621993354047190578273117961395472293862916945728596525980726286862855284100634086847126424789838263624112386335361043333268847894987023990710112612240501984325636338051820254790616319577599302177775539514815119445192104459675313856540288478106814367505448803652006932685645222590509890808223177754116254035478872009865946709532062626116513177108696600898989106558340726565481902171628716839388335180379407896758737311176048302845065941547737103912353873130489635824519576905639481602104241337771260701381357672283776377933982687399714399472664965296051089987351134514139529501797284425239105944243976335652460609872190448416742602278897623013367185114662988030376168779247991855855892410527567331709881932492405853210544309516265979648904685226253625541484234459411369089290609187704787656444694287606226003520562109850492242185395881599968624084209058141943880268969610095400605642337099454580704631786107542971434417286157803613815815129820578127573877910760106224491426392256825301086187319548791687385759822033218144499892327972606016565866823988090625623446157529141601607003507438779442258254651118167442328205590926042564304427497987736875767932635055487943850213712449371191008940290897924157954739269855327927657606724416293759631661550863991298328807224333423959404750497728264353345461757889148350732375413764277319508653780829842086767637556605539249156267048064388907055156617237827643524137847396837556026009316152405448361030010997146813376011317547649362252644131428902971210957810931012826965271899565990150636968942872167156958440716814916078144197583542400958441608597990804781374284049714968186194820467246682987780383193068620353490452214186036608111804026327855982423417500257119109473218288561097693383986509924502858520397941154944311178041714540412008507938454119127402269788341457404886064679616563373103202867635110681759890167097307939974906019216991142313126767341685555571917811573538764350795991208348863901438542944806966115739870440192534651532610513026128364686698942590472801058400657512779582555645570409201186409089323702817944831500837220617364240403826679310789355629769845698883558811752682378775700787301519824999122369209598844910861469108494156818228740965422606474847937864192067968574092289359636585977078596339198651681600934205131496826872088484893856136321645351198272131770858682349398619903472011106602420260642096396935191145734924259237535520571690179334571758035011859909591463538887961295789009144857747808980126467995313508705156697896114585764971465037527288525933296498192090450295586362090234362159833407532494575996371825264379544328278288225896571981812976455359236441228414090029150923170670457224617039561392994768481852472882969158772033283434072958235589726950653722865630656996095617416636652546401850252643052480443184088899725424733346041381384013966053286163073007681836235962507329848269928354995885398494342550295231060222393471712429336886626659286573697302166517804687055206615756580826857466970566261303481224141653776297031779484414985235912340466993048054700583525522595020721245341189042566079723472329593587188638672239572233883145385637413972229128874378590031990649972291710048369390742966238766109352408951088402841640190894992209105153636787997479899395445887770097990842115679658285084785375917659780117577886578825052352793227882683499022352017242991641878755955152610010513455285145562914376376500993567144090131721427943100774538704608631632382686371997085685453577547500292679503722258990180200085892404712610284229794053407236436505375093451756940742717293872421640479040826643934295584448615405450907749075571108458773911178354456950442567827280269660581089573684702446638725909130723825495134344054800569334592849115378834779517135828068993864905446980189937833955542610592544571227841975829942053092978936579616434425246289046581841827093260736064169000792438226766365400401056563219595694733394508954436405618978837301371400506616475179311745716774056688126832589250889338515471208528297012722564073644670508451313773318380655136309937896725117890890940043724471461813239636198379373398961201462742828374228228586983786967917982846612616107032271670025624046534994976392069713399180430251128741220575851354345312212269410155116379186962197442021325758339586364082188749768400252716079637988319616068032707796123105765817695455484393511454791960636932308098834139714092803117757396502810352758752037337545415132923821886031104478517229975271570563088540956644600596418751298444784954070364918242149031857705661352641032217429476314046397216277848263172188378240388984231072135920166048999987094758483224530221180750884215234582265829430320091415568871090048543497705321652918271589086376301751018777679110392969489178527253749787730089696086168663061134793047731812973305403415074814269130480271736364892164004486735048950689380002471313200637722200236726643786412235484149536384514219497139651002225309081776531814140047114574678681896575920461032124128688015609369278419153517857041579915474103034550878044844535065283659875143992114900576644624250178840765070615294632631006383322385541668512242979669205858879113601268867899827330577193331319814761228528837015793844799453660732302866149642133709232624533917532931612127326623897899370308279904608278264693228120424371174059305292759567354962741887049564118312226156715837047355711566143681324561910139541081323713081765894041138608207420098465853390995868760675636351354979253486002988305649790802414953450040827236510504947232125708272124053709288292494521268735536102217114335731757665889916388185860536574672797743329618994288767143114118845332616975616861279482424958180426579417718281427284437022497525178565662022315450947961778734148134594094939579849358226472786245765346479988168166295728482055707178012953591606341467800929670162876595523977879425763990510267588966953155268427934807975549221120269638012766483436106911604009485383862233063136116575177775813625103478750173786780850645761140435148816929716275913578588272499183033859160890708266573651758827244555436333788157491544090269296368657903844867055848206525229852618266935316702071560603951819112273626629437551687565253551559778315859539892347991235752310112286483978740247228005110820091299523717557375482284279755292377424206255332723496950119227951402601198436703290722950331133904284683522374265315325942373441338577749372609385672292049965373538490397648712351714219402476675051694143375856983087339629195702629474143045035862506827470939725630893487605170461371935224359915708101489580435603449666851120101992315321030766049353642235265805551018017998485392960717299607237966594350944781267290525030077483399970822394098552140821878608494156223643652482163149675643668848650979698647166505559623627407664282442336456995839173314421645778992800957222145704312768903997796735168696994880451673194260508230796159005654514792434742587455361601804526493536543547202265113792976149447814391880274382959699398134577344168585784953807989909468649595362906959668077248233485480090496473681958145759564092586196069046408203859691802858971365083819348039525529816018904456602200172585456732509530428795720853293405006237921424955106207469078766899180240698984522760830017157877991165308759035717675643717562514155503078298378234614758325150875539775975150852544444257144516581499686868661058385492550170729665565501924351446250881631807070789429534734206893316023534184965277553174410208620716735754643937331825941681102997074651512985151927447968533185794471582164749307684022160955070612985824497413217175192102142106308532493030078908275354515378945198599056715236379917817790742850302888439854931116172539905692676987184907971688978176382862662410531366473294859382872826741419504880124422361714680282602095333767574964533050351878008623439079399932721082247244755751069482367095851316442657843657271843382520084251651203901379676792235883047476761296888331044631556342947748247036182519239643708739364026109773845097901910796244991135823987498501678233483045159372137992170093279557711982583448318346652914090005649992400198617714724513244663772530626722075872908612762327495434338671266372147003232396947386284235936973950803758004897095484988083350461709564963906274059293754518003777407603498860389036800300029563940465721590048222665808639181293742071125205622358216650169092005822520302603896220492604759236981480190941375324782704113382908334107540780814014554925898120416777658960815200282362758626816375693033443426820035916377677461282151033534826917818982310448652458083024351288383802688543912020898337439996308800950519124936503464320003740792488901075998126423569049019828932763960612300152309369217441307720747454446157141755346690445176498982229487175525799577896209810575510265650316198889126686088194737575528309288953423220713392986051076043016301997487101849874719218496117235924343494472440368384768436708152609166176007165545388788517777108053007778298489168973730289668057437752013019698314821146886477409576107997227187641396374586896396747725272483251477696751975647355920307453049501986108390077938891867123269366616872452487592946681026087117098693343519240263942216180444225707326735079640240601850715313644277020331805771167011142572785738888019523299890875640994826971498937658175086896399288882534150553006126087477556670061469331481440303397781078437026922586103254942608185543802173132785780669003765000406133525270523895294370883654196791149817190666223797419075734132744894902575744730813426751870451395904954013009466548943593586453337858284331101485154083839313799961537500153496508358237231811401477797087752929379737426964199703266210932737445050553689744720960147913531641091227652797000367283265779446602410185443331614631472665993204334397567126381598528287643613112806065042638645404000928366227895464196968243826186564696214057174556112727737077891174675291884205002141361025809895559400527478224399435661617953108441001839068963531593544909976943030261208680829204027383274706806225883067964425547802896130681466025965565929148554274903878086702364847326628621244429203504107757941858963146769471729391106985105544534422491485158952205501406281397376372850138791052851105568789559253743426949960164030293670017453248356966599493241629392127721915865571703456733367206649528064502166229706196592329242807272371925042714853485170143774009886083034433535483930622484910059829785953042837045726919596819852705843870436085622868019364370123507059795016436819591532934317534234195530738638986236835140574323511187148674125680354266278544040300630316589603872213799697159482651780262859734621032436488384100434985475524711616949871448948150634104774553651060424984877659559682423798074631732372678499414998220109534443281606156610749553384347198699976922968794724716540229923842511366585185132562933400300098860058363646567884233192585019095599837670638486760218787601209228871180487009130491752975377350651294277752917719024310260732573917228972149411657384799094050518992079313981960584778309412150022706360101250610428608189705937330863847492131055374729285497701282818128712549082279941553743005646056873782799314096654188556202747992936867615822102448247278241473325617153242586289362928366398907601361576264659140723902107684452602662438213574240275923496262139247848420406448612489658117909488650427186320821773104208118117940681244788524082665307609417579904393967851423892805880378331638199318512406538408152084875133927123068460270279992538464959322164225343979054131896752028888888967586399987598969057366469628364021549487358171370972875547943039590818728018707225728159102245078056241552731695548635437544863330523139937243980098120824736327168008627496501430437322739258021802436611298656579470135739247771409290230450473286209255815782145572082155271266071449272472213808809340533762653548579166370019381516430926456578640361536690723408256888076775591486425779520361441431871468121033051625173822148041537856701470204319637795136801612057130642399211805125985130950162412912163582271566656033962269094270469999279573351807848428882552217927866885382044904196498810372982822344196061961753669321801526518271079804145718414247588665644811217551945990633167302566618020593936766123952583928497198122288624203131067023426111539398256201447929983142553400062672652058764308788505293506457023392691224115653112989175463764136263337621012472910376485951984132480287955618328114262158832588576564833795990549708334212189155362901827934893923366259485547856640857622484113199903283198693438757022836755919952906347861686646725602055821934773257505905897585486970914492223791293577719616774870920353683438856836403719028563714044400566254320141117361176779520888320058473034127913235070458993665156595485213376947483731258502934935567156999063744657298893324639751720452674001388538867306842068516226663357539912812163784632498907908275013720731271421954349104859258580372849983453309263174872926763527720414788525619472499671273643814940430415228869532184289304963068821088606398009337886323837550953664667117213686485950719609278801880939414796174313641629240978666195246912804004794082954226922431833650504731402705070585560449627560910237448388819814114898385186651024355977692561280329194257748760786468844716343417977611183300212717980878400448446853465089464849203534725785670594904685433010458414031843682721531390682090509381011947597378210406341017201176149208767937021006777349293627827121666751891470930489842255985980755814482943557029006282601902370744739103132764947523480903981246191286261620719097177728828658467402030084233822519388730673854293439538583202841696298957338968240785732738660595626023921989659875447700327464736188224059936791272723234330849503086651400073626039129014061708835472666018050633450374743587945574992093252633669410354211048858414224795524543265587028447781727063874085810241556048782940423748009918722000592906857263549513052493376081181427489419615894995419359903503301175386298226138356614281777099735614237242440678167007490638641814314159442818370946458500928965131255705239202398982227329754124518651278395907851387335137270401135066663654467261205918778368473121583881555169113884593926059630825010272950071387877361658652625049071230229873316780110518873625117570500737199784011727662914104084825490369053406104359768178002765608773768955785472116532614720077685916317056874798145388426482448501637695870376312314705567098891295930810826915022936424995066512670945541446686871817796595703600710970574351666691015435509263176212721371911216037203443033970557236988492793084725119343865711874114252453626079283507954124034983447291427017074409601732945957971664272139268228836569219134662889442011929919088460785165368959332095154121535693960319461692329741517392180289573417672565297276323920076857755598423106001981968525653981293933341745458672757562163901953712180081241309491387549423757853001585165228190766486908627494861920304170985491111122635930581146684299398466857697505920081309400162408382072994015679970770291988927599031792374850730408545332098289358886151942508903549963843045298591476082412253264120566848917034931388525319285677365957332116319248690497479647877198571641654044947662022384897478166881743768328491158712848117341127110320449344169070017592889929112703924158446865840519067733386396597861236079012693304114920141224737866410510879250588821193597062114905954645642408704455083353729828542847673862577034624399755821478605496180918848552514417956241545759259299409087980787948926223062604535831749751004583825666260420442669759841537985238470880840799364216720989356945969447226967039458089893416398116027742137032292778895494563103497981976930472959471916809114661524099953986718565297847954327576788109499173114163528362749428410983874664557057264347911926938109371731399509026328787230033896596203821032872077926519765447081280492145307910335726486162272021087617003061942801752852738962814417617761093270963157272721554608886730831396877946486371005752297664930434956292350660792233203665405378726564219221926824201489888856896292907096172738211832160424969465877642735053618107806860159930206811538435980520190415828435711681777470359716191150808313204307584443843751433074388841336520494003664466506977528125349202891439269636415070272975670505879504384676001386540353427005592938466554235504057290473623372233743342505484048435197127745560591410144959705914159356272824365371358543574867638304115300362276611495643343990218660188916170662542547461087050598998274465393114816847949055407851904619761894696219891030730976237003263294561935837463330270934347954759648676722775014752643072245063492071910412159235702717453709292858119006361966109082515319172387054757905577061713700762097043819530008888330042303950186782651509128025065798441312532671459931921945481573813525837154239387011493369658576500701031266006928735659186248372448527944299495863979291184039529422465356456592473752067291820630395688717486071379011763865030169433415722800914536980860919116025251298108193320817112732447733767889424329916853117824215340876734008097904315895829283805015701440032404802458487004516213202979088665192060539661841376972736974304841091502801048812032875499223357699918419536962928135067835776059621490334489484775363182060817631909890457876760589085104397033182879822290445535901296779311367782361572936439825483448148981205941193016097853310480775056234089873310250813183175203834377613660157039736415416424708329688145950242735152883891808969586042849165184462910524884266540094076160734289710344312149991404249551984438036971749995850250626105257454805727990469238004851993103884460603514669670513924887497156462607176504891884988151275993164247501197259974041683297463694092979171174621896772692831244203364852558347448553704011908701817584600692394524824165861614201542759926270669479901013530366840290116041211713797162246045363406432377287625054099824557627683756439255206764083634080264837989690629941311999972187103860786110763906444542429027528339707058088168659732298749071445196906927633627381096721806993335657933300419831772871976695988098889739183736107840841104819835033238302434313501367767654914737074275823463490742581015242035467259241128151986215208634822162431657076109790260585361057166148426367988930594249530476985707478103259195329937198924614553565498221054019445290221919353230793744009200950694462372764932090368004634469772231503676915716434813396496163976836322392049219815341207304014813790927059768993924455731495041840766678218613886428618399745359761417511897776092717389847416990607312041136687479831782872430647886644745350675896375960098690223902204818316158892319990839137769919780407546136949831637728113933988041515428233704990951485587396734550527413036190672712136102055470049301993805696487330005633110339464985957111093975030974278863440364916093703317237678715040182399965003441382614040581325677542808826364953822556794100445172888569375409880547591781070317072706300271621263436770944003975060220748243801664087056524713732005858097768651015516116123216979367466814057292261382068945435088060011300961188738063656080697237286736060874418455137852634471954837099718227860023377682798693056635472092447782708300359967732891742652931925529573691174658745872662456645226760618774371115012214366279059101303090305380191387816849987503448480710393682351363633268891443787919923379165839827146784324756691529045278715137899490493460288162099600851127600441194789970876868367044430776057694831217202083686854384227701368647554545261204590027778421179582288860740998115390724616165702400458850579135143328673887391773703018411991033795808201439729663352037743551599905638579243431056866813796686013690830599689331829045864833470917108483940168169148937500480455715908466947815778733385590864080728534967632593027367704045875297750571684305803313275796110826500051117331526003190052866471808889122476650576274753400102060893643824222719580781370851290697136326296049172075021356350560524557016014313163776131447639641426249865399294690661655174677044087890953302909036775349577937310164317801368889478332784905365832843958895826603417462260070138731321690265754069127234266864148785221590363378506576173119557093067968519432526434717086823909511687144950161157803690899086981823124329755175465355082662535383861833793969572753551922202372567162993206267806436223325574706455140019616604479770229365766917734801679321327567740503092639115680292686125918425487834378262363114387457085734635056405492830028470075314891646129028699007029270293395215475634397477643772778389371567007635672211475202100383369232349702840199519227248104788012701152831086741578674669662683185984839678774739281172027651791712084556871168269094383601276682334586632789364077456152801946889792210476700898484536026458151477625244196803485697876396970493492706984911957553404440391043757368724580135078665022852205944728537335736690305427824772995753647451358248330492839275970549872851441632746799322459068224018496985191244359526288781252911377029044068221870129815074026265456481396546344282657225826906687132020087687476275831624901688801085064069430984448046427670333935074391832256314493349055091155800112289511798128579109942723675878497705000441953763541677147471619372117264562139681704883183067596719081805340857571576911049645432504771095963392109016522883902600709469693328287005656759002821811208366395717313624670580966874264390611425374399709888740026031046059321130486182194299428906814326224126679812428106211121038043172634571972080511875369184553000989273561974304173997082943350367540963808001458674621882255137065582312605302050059703859408925722636749225000214807776854228078329321927905203198135370129802685289328683556037137867672387178592861595242780017275139942065221880429768288706612423724222779779527794082465566338129305824782598876871249799227728423855444431503437766316908531752209584994089627100081991131054058020187931263757097109927444323088468604182282138800588602337562546562436905583387605680196675253835509325178063095102135454609818480367392205163644096151692048094741705574287362897403001905808075484895790656063436303861105702373907656527114993715097240069900118038497553679521853509720601803265468173014624378867283957370025786090524769569522053095077038976610545414009728413196070870945408292029416644768138722302353130171178194461230361695442506788803277267705984475992997318074884742884251710063252597253893265790320924777059282839195383831227945817042634643421050779616391265227346619755371161699730448264276773844243372365945445235135133960035321692604649192054229136835269074687339211842426938619160144447649009231754832550076442038813812194693289256294791553171272138565702771253385937486264478687028093009266858165260554494890644467479193324605888807076992335563420234711547488926157889564421104564381512542146077798837216940201444578150150595692011676198629691901929526167917512340133169849456371115720381603687577963377176694511535426171221550454617526006397485218344765924727124868509485257584183451396392254585776293960690975108107490776984399386315106662413236319090622270593113444831581292548645670272564819245532862120389129556208392277053991419292036655130850804635645873937470914286656671348626123043533142891823745898324185341887932799585216029860902134895708423461076082720080311459147083728610257338096574864476414822335376793228787980734467231848959134432648604929520646806646645594431649765963302877331966146232070633545629386727958957157502755808615627602889522316375168906173482627518990717541804197111178787877882595974577010165953185060930570804498645772281413673978805831783046702213930265441153946683438143957954205776113232880924885494543246066917796214793782721306370085595986454874665588581793298363462950528403618222876565722724697059089987637050918039662647124557620132652020651731719175744624236433540783671352898452566436947109969599524785912581408073407579081146358525303487230805013596383262929418853267303349820407689512470709793646474221957988927898722471784314248770115210397868607742781346657273072578329412969653737785707625288907428193249916474822682238213847566537643980265868158232910118533616233644564868842255574601615279943849475639739556550563658340745475354090292454725668233911545583636495196763982077278128965119454488698412081217175926619687516241278317889336846963085077202993192784644266304736051769337580199643899580422083849347335225871927309527567378652434472238375591077138926316261306640622842229502943718189446673041463158385999702947632460011945997863291151852554268663104910450986668078724839816711752973138133057962824816059701170122963789346955918913273419992030671004545533821102526937917416528529571366939980366084255907689294811824119225315833467171010702096712350944399673664686035867504605873458727656455828591120204675592483691632055491220926152496973842189788840928987829435173778926021040646776034695198327682466633900054735368970619416527039348110986065285135371692585164810718737013404424815967211609664347697181326810309422653620917840757130209576683591552713955565445892325581465905547635383018676340687506573807501494659097603920543267180332836623309479332128829278987527624674265833243411577609501152838837601953588414375298830226859287856923088973790004061276156010582707565157384135659559261986063511531712666777055037650440647429733304979613657811859312627574955114950361758143079132649373689381111784063353064441536253236728159002822999145734755578933468551415856075482473459465467141830235816006475011167743306309129502669323454499475044526186398553614100316160773205479405987954179631702927817071971444145657107174592647274710489873533273776440306635269533538853554318685565084254021228251358296758649006855113396435872166976144686037557974486564745940928290699898931731560814719167900291451965450505295157595769826051214836984164031791264275301477198479530450167079189643153037412141641709963744055917680414958282372795898553547146354989481044295255607889807281663496351697600595023607138406974016069274171053604549117867742627862531933366257272519453939734634387762455744246646668624180101152082386605768099809176629875739838231993246712870554217853363479000324836067204365271941309863451198987185894694377559446618176404023135686934339835539668333612220566243952057317285969517176112061460756010849963296605075409307799010482178291097495759113880420393666090675126085775408663481986751328408096135435049460074933043932352018281048591950472991815446030767048060541213935299830479483700503577183939093876281855652225432405739709437508441299195267345009444020405972893183455860264102095881618929903347191059872113575701369505140573963460385818439004182676583758896039119266250133603219139503697976058389617480499101873097442946759844778704253378678379638777616744148960852555198413013950462142881939520913135604846911252958837817987305854816602778125076467755997342493509212599751761347528899074386954440079581990402920865967983122197358944111517869388473806611549630040917995595894392749267226932272944857496031611351176192586537017730719973773490137363884977432950030309900420279128236936117871874893214940596781146935929414522006975564278733796961053525588382913118488501884608249551583393209795038492602994211756333733077771509151340933633482311028264378113639891442294491808875260417745619365137376937038631700448350346559203951886899676842497626572700417355719331641398280876617890577026608577166850574900942716068491927422069732244334165687048413619979071077443030350051343210878855740558156269267568110070014376821134299106161279669985672866313645476092336309162747414342667785994813673230465890162761440880948652086565954358062908319064466400011505430261135765723435057813141527669443922033603485388540836420602174828133910732089528068926390994283910236926546392518692314800691903968186064683207211135110034471582457604873375424563742942009630256773402952456262077301500494825443903758738743419086909078611865438661032676774707348656878333608111593237069987325842130239590280650801870368432197269594867984147403343800688112064137633046587573099017075813074531068206771775509891269226863725341811115909771585701682161147545684069155534335235954105174000527024788535058348622376435011123466759190933987491129488048931100350230316239705036316744435916286209445829673900015002927183651288649306648591913792046409230024626953280796126808234082658392628713907516446774725966784316563549809724433639393945031568808309340476536825758471975955622135358959495638529363725687080125823706650638217256718050351288466602905478978064783404796271400745462583807361169896504459681487626418798679754818085673531656180469164771286428283763929510659253803120917803578559325070077117879638925652475328604508206221954489953969208454067981941446840725171764161992574715265477204173666324488593752076286004546218865256826266760104841587698694741071575451605654744991437087248637727567668748578054614659402462509517846220477777163194484560890503459833255887974433575520123808663016045707052396895453089473445939705625258519245008493617383510926068625728388894384202888503476603605145705155316847506139617469337660400864879196070079591226357702621249303435636216367083951105221251308131292052381253746155189550492775840852779503110233579248738742773007876689418618606150646353538942987839735013751064207302478090537654360373029827750005285075118773243946797267800979307681206716720634201658122888018454667784055032707411662837284525645259055881485725427578381172989197675011287386117875837462409768063961730518071739170185246023457010365896688892236207777458499774601278000575246947300204481540838281678984892042504963308930491577241778810294746392930123533742228292244832530402278038004500185458983684127789602252366357203255605299695550981555058064944916144008651405236011219877369442075885581168427517876025566939179860569911047758016745167520526290912772003600242135330137064251636002519427056522862430670718624885122038305214935346045599550184820865320046492851662038762888261606482883760340853277276555664925809050267191624038165005406383463915070688405478107219119826190702249004722155141099691018558311193330351106986413676220212313964249237033998614551507592749985662832218129397027917512320531903117018286122034795341650000358891476056646122692410941277964990268526621418258008598223209354522590802439833690425069538939466495753452140432753775030909774992473133850012391911698211427481156903718230666698988199750100352142300530572741101161569705204290930764055328788985427904681945981502766184828070506889820551161862831866642032980766697422463341713549030614116428610702987721392919243271061297287220941295536872852112517730016811803676850186470943647717875205807579620227234431510411380900347334332369848006970998962375032197907235665626742310116300084560254887731930586755332818923961419961815563885514973148733255230515697854077297832533277145512912855881940140291174160516878035139690548276378980616937820175619624386525166831840923917329774359772567731704088630424556540628287464074654725067841874763827450062937461229428105448890803796484595983097041794939686135457232076923748556783229189625505030314744297950905999944701052991251345816024256605132878768626470673378378579727761715969564881210871964685924978694735572743584334790592343291167596965269702886934829592731606846578458051947931874486122795462808716163726324242910075964332512433462021244513216880465432824679114742593545521503221445349510750890932523137123250620713371037647966252461574676219075380232985143432614635497336689328120801677358264098497770929663062910244840663429885054849945505771883348809253750003776509557107083064771944683317532577242158843570502316983282766488190152599801287849457343410300952708698846773339344908837908702315778176870408580689637221547455582708139012110654272826016748213986817645807871606111068683960177753993257561447766960769498506982833654058997079093740234006153683051926242855117108538104341744347667689353538095952804220266730111334814427214481222289003357461898537243795672344205129203728757043829125167430077395567514416851596631763958322229696086078132997629497552852891404551206075113212406640751371544824948461186788284707254256526974417233854397318276804424294965495837095091300903208126884485533174229279993545190561746122881615919601056087871180647698173647869986667565854302382766264814672920738080964324531046760221019995335194207847449736504396862059526849640899744087967347693927745882579744096643056758954401762837162214665289953098857943374681156069551028802216728937892333723782933384654242167171476257407210855284676250000689756816269778615988051669301368644235531248146325330433638825409680538981278589536013749268742158624008560598252668253922931894587317667991156265501748911900128854962147836018644817640656842551044960387639917079516924206078913149163617245844150984608108583595949462445039390535219643378016206697819157898967409548617389438655722601251321236541810541668771094497022077874235718149496914055026229743696097381708600244115169510829362104840357839644265506288150645482208094358870137241863938829034409343912451893724230232721488918930831090235236310138399595537412108908202471492296812031807187528874121924648467565568651516707451879502151272785739007304418255888198612247169479276171576499053672852984651716237217081186153277095422483187880854206921477569392141150305603148191335825948384812398476368915020110644548452206858623581182222585960471342186416459892746980354516615578810928149328706785104208165380194292230265511092441768560535495056328313375400736191883981877784393781369890133394260303565164988144357495008935849468285768530446408117548348036342003559789306805413095968512483182412896390505168623942166684510271587002856403367247007105978279906777820769604233751436235753833467552111688791177918054749773750723287374539852439823246419549458966103951064910957465781047834080471656877746747138711871108152309286337460371853793273823005662125252021963123181244139173198255661581025752012545555458605247210426934453295485464621948590311196959804425937114670969088599783635681003040320554667013536619022500388313508105408996427006140516943282538157157721414059519686442850397093075998545063487670343195751903640210384360879140215930172503882298684406942214996166351746415402337166447862771504299272883788578809635400636560745268279416203395327838389931317590556431798515829465494570326990861808212868700669275128744502882544939918640492101695066242239934548294575197004512196081467608977255550195135908313768446295770303921378699981726655784060316607677135301133322839632737770594801421600431501287670934061774585666417105631563379688993786413392471968560569675313422580551403388196814634222992013208389578625113459162206847859875150008003124114893101555883793840824691467845851103947009291478715071459333350294010572301459120186460898089264574185851212742958054390728386792131429389553283904222204232952697372621661022942248934581245590997040973420535317590876288960172113110980654370532601253418411661051303674335291038562288981220766149539401865315580123279545717669837808197811665087682683074146117292203500391002955571174183975508113024513694348840043674929596160411976325785397780536832689143792522050461296345143220453033987155960871755395719347835539043676130286611611521780862286623780236968911918013648001320301677151363951916327228120782648433085568447412447779548007488279820889536366955719321059605955927274268591490182053003427503728122209819719894488831496456275678620626426481176728665586554554504486874268010630564617531626515167661798044537890785345815418410559511839655704728400924137512185113224601321397956251897761611152969233417836294245772479606295093323297000914737901425390343298923404040988485492034651622498771300224088474830832969499741034327515221777418903491088646289596187717357712285357026939431722377624395777247206938701737426763913209392973011399048013954296306894127858929797410066265672429472894701327403742699130678161775217385199776900962657367644418381221929638172744669814158941623547043275240562069005958568484785137278234072941288442772574742973868655550204993696146715524362866939034304870451813994538766323144501617177816035673955313894308816875405999862409659305578776989277285454963702041168539118966606830443315839095849767649495022347645618855222405433927498300149510553893037587890426751364185485060636327543142115968373304816365730776041398406796052575980548278782025379067843507526764184972849358935032932486199310168984338015933932065524726893595652868138657261959215591264069862386012923939996315260159647890520027667482602355639259830037271167816397030512432363319393417643458615384782548991112745025412864698165958447944800873022269138741992744625838505430944307953823839667384231090352208781906096309485091721997568298447592251552412485245976884412102708703608589516503159454587889975645345667075178214611194602996621576739468567480957187966051515422908385870806191740274858343611753559386961219287900272843903047198684823856471727694959602261747908163239766387270214212145241026115567827409381815838616438977758964570018278704034653611088712167585024628467044886111131785984539738216587633636178334967620559852545212256427538775250194051729766169756690301205632732432137832562929325069491692072148591011259975652102401752528002927164958060584363599866607527331368513002155500037160558549016805774172115528713679604675867234143357961745667638211807139073410475666813196511788425603993167135897299823145326452603256121707850608771907503013110705043565490568905191720637819624556820716480282089188114941323365843068043944149244572009493258150619947642370831154260775888445342866894645556547714859880007222584014142700165547473446560004412028184498223560535272214810484578100613792676649768128888739357300811468073441067049480349822416593451202562203923144624320308888983571045713691038226413545915496097390695326273693677386017111968907775835737075359837009931440125050341584691026326897000648891439535233858941296075477432739587422087652582796837570100347015675439854720028542013295393572583854457875696341461593486653052147049774109930357506911005178098410175588860259486681533633071198707316679740539672850183050899430231379976360492668185857291738184409621577587950877029580756981257334057190844224830380922570415817378800561776809707323415586994861319761231578656663332166673655130145846157291359171158545456983604961289007214399837845131308897208918874547134102927176361308745071092980165639653191224262170555683618039449381355466403628127615407055106290034425188144703086025645132625671273565557796770556758085874041005180271255814591463726961190237070793327615762803420834646383814159660708216137319806645124909483535611799260073787049182693643719294762251405192019026319859935910790266765784371206110175136079926100572531900444581132068263452247447702805739243850862867052687568946725444821405682221590414208048613513295066844202673270455408089452090477476593703666597159373112112434775772987179639833812771654066176140405807608295261125952703283381610737513204054052535503964632608582186417189817527753779229265138518882154422973648989427152938793723588273744082948269876487429917595901383399247944053192290991370372957501242065750788894467841484190240094486841872216176624416480876449613704130512057928858011518513102857196904558351786146243656546936374752905966941721545142548184495183892730270343944510842576107348670078466103932902475546332184229756285765966481683807717683597078585708951850305784553359839500955852192936971171553741478793793156889044059991514773977814022070610473117082954835393570312242779990235666467504642943202285116687568685855387867724296312836828281257486721241778950348456818596095838102610608112796731692044359100793525861415161229907153486141954045244675731041251468859871949052551610440394902620802276994954758264740639184789529692647941036770838999438005219291824320455571208638044571941350936448200282541889148553552696910078944188213910716262860111114793454973254040007962171125714886884355637530819201153972928073884845086646949239506385942949049120015746818837101787785905404370204314213887943823932491187172185067001506823169251436652457705641512695363795816897233575337097419316504704350242848841388482823087981280195095419659060048790272023134240044788804672843252208876875913158592963200827227200523800468640871584775925065426968545383058952609271727526072072637758601301366007450189733179894978915699094701868951150348713309251182671281188950486268549581089506830687837708498434859351202299497739699005057811689194137072367890644434695319345806790814558213345379795156510060872195095760118658555802253152240201126861037241511602869203655844638061775124051500825487131376504759794482635708156893140710287215634539729082091457919570508977463161585202027362631789118655987513247778174414510303373146099953923758423460670915562789927814263875623182698724998008786020051951428245050413236978950413053727657019756833147130063882109096188454261035637965055444424331409150372908738922553159166750217884058508847323691956939755730763030899311800711287095829154692227449977453456061825289432549630249539054439517503872220551033596593211851765922455073251438698817308116133629778669546945149099000859711026344060401344560026577078988906006692894504349619289304130404289763786461336571201341330539570461075469456357705462525561829616447514565224413732832793135391568316912100270647308955843185112091683166633007337161033850920515270551520904604145944731404411914036997983483751947719007169752632027135227142368576213046297218234934604362004277626543644654993757074944758377036800846651522185191536935361714294777683951122362771200130773816448901591278595969470988979805078699033382397895534569893157722439874551911387620038885686485653008330080229645007501989976152468392137540095097513955907607424930518705941637624136810201528524337047125743860191155186941413655308797806924476452326500871586749355508974297980215569700510015040013893786977426060159823791750790148772863131012289289923076186966064022035671260904867380058040392040266025343326067398791219995554632819734115489895638469134782681878891116762320218065468742225854073112024603452031693614161572005071706361071992842201565858315824299139358670318040507316685258096056212539349629830782175043802417587160526639921431654093050310500831125573889847619559249760679822681257958824799230063314616290651190585189969698642500436972058524222203751918509837230491941415319964114606261162685775777359030411560831510936902940384363687347143449408641021639000699477884400628512766636091843952301124156985061546543561956858809729467349735150479855693882347296016563956074590400089049774685210802370132872311272492388853782681138260832580595134016003662750665440406679017300935519941032579374187170763391679235110376763223754998062488596222066967885422986303616045299681124575889358992583746184989360613110061418060635073864876647837649422755273039426065263560094153323353483890040498684304703791253829377314524482452440174962853957064895638943621682075858727055889697866210969957976643473190238393481103972778604520092854797916167757885956570421659362926831596148799509446379082133477200771102397464996396867171653146195629795554338721813514200026393096052648923318899095200251241699379504425501839598082887398070619678817224056343335091206986833044093200717863089893210582000484601412556111103470523828876666726896697442544365827196685020003777751150294368819626368496505617546153572815753551211392960038169880370350484342207627513889897168597181690682031845895400333035908939249377579647457725115280862818161387561083558124061812516075429542486958976674844801494287003537636646282597471704456762476208141990482134988526657837597323522710000421086901059295678088800535290506268961887409256631130618292423978154250555335087531940405720787373239019009300685239452084577458717645952660250704746342865541412435719138455703094667358235105670405665003237501990932889516039612773688657324622188302402298546936329711333643536591787566714576933866511567126821481590388543644498991995039828748693082477521870066540728126046932279679538261346178890874889735543702445967619041295656013164161065317582453476656209022246447252154609538001096776236090450769996818676010631587130571605039516961483187745431351211486157835019648653151055175320278854282902723690625719867822616563797560668852905971393668163062803289036557886520774161158255994796065087048610121836069814365752314409922771250912799124558342759013861323140268425401319937766862239614185242637855745345896920071807372557286213758517134163712867530430114762203831628900080328055577706619667385835781727134028907555738426127637049695356816099696797487059371828440020380806020646640508638491654113450776829416119916046708386924832853609148942539926842671539416564000391359789799426748128492634109559273596246595146464422832521391313400341404311709872080411139157769502419620683567217049913207158682947619617258236794221036937336894836821899607317144476350454116599548782462031761446675597003829998508951389415435453667383990360404277488370427708240984759599689197578319672708792213644648383764119787901985352330589380704715065637082740051528213862150247900861760614805071926051888106988726833319173882760034687064070329736977978148017774239964600056927474469630993856288091404813995892673964680207236220918473189906375495240026857112230850751068310258066750466153468898057288155300364577590848142457545279121278709828806490343543853712162006502766434537419025292999184718052691911763636934521045549491322510696312739747363505519008171876628374805013232323404756833225058226211466785139951284572691662688208808905330527877554951495471401476406672706101138133038964773601710361419173253456627510746712846635744740303138737711882817223475722313762358278038872642159817778124263627262144384241338126554564770483762998936567275412087495025659933991424531216888680595730209281855033173986369765015382126841433941946498661585144918703019223901677472243016486012248716810656584361780135990382576878022710199782950956123981205013773113916051241855532233169527189303167370817474858727065430342539165235437393207282682086928066451629905114375493527473260574798332248468581246327382912298675557765170330399037240552720736446492479537624549654042146248255545946132337250210884517676896952140382231007037291563121819483584925739661688210434072639188872239611466207045968795289562678038946028867196709808387358964624796734200628453801704682502695250372489704372255173261370878393502085272963857422312235522531445508899008496563126104670845820487630303076602804346155122395514615852236819800760165905192692999256409581663308604854836640926576252955123485198132646724753684864066584393586121006064628448939633195599783883371071943353229949286432578444009515599883150763957404875934776455570119590723132935234024905526271977125283521517393025273550309796662626913232096963240921877052636279746996147112422968807694232408862914602852905116918824329546154390028191221888287471094858027880705786724769076799046092586252859199156377631138994841791148742942838048622552341422528135943727941304044821390669522232193530086879596206927359665142583084924630077358021440495364730915036701293199963560749667275737390301526346981490385395117608615398802091231737309026801316646603116494441908692228291791722170823595594711608553502176395602597873614631856637846576479635675235232544304966007028889521630588065298051199534006617910092238018609995645125894928310774602760601528518791688663371766551463550524829975072021440628861004159258506911542562153528105525938417186386843796642838343899166294904778004451631250238988291142032646760650919275155129716577677810075790352961203123502083052653216081273240550095828818503901998893183002828657122941914395438726291877163395542894184971169087659146723179549333302956470507093860585088397152176970512578847326166594104687461722520020561008080504705618087127114780385232605642831637380757623394683487390449281008758185292355167425511433358893849722778195038248018150218558379136272803236699053366374688115360001217491901500352726766103410611734635262513977923388961589037935068128359147328245516227024595173991524303483069681365800750586769990969181521088253496946509288678021827819537722487605347559248397904487248255769485763857053825903248441660802736491145735795324672693420386571112739977729785179181996721431630868914383140312598837837129829554393646779510407617309653560591622029362361484262658974517939874900102282686382020714926700161016895708151878035593648844891100578290095864624675789027542013134305109703312451645719734314361813224065124456190082008349712532882300541617150114718017001463622881970171305370077892255725222399015926255270456469449227978428657742237906207136198104103232815104157278665400696616815870892489429448083547804043125688638222316806557857033263043354306733949552205016317175541102240141988375141244391472074654038623338285841720293031389249272162343659072888450267421188967390021314767518756232522343314227733793793041207736003191780520351237770977920691743072248211736340775101591388961370181442671870761119584704105437189972364140851747968950536253484744184036590570073362457478078223063549469937339182963572489332489269098862406966976339822738459017937496915092898609345935885678267486392094462077763834592620349984618655376689261803909222324165464956851152620097029729117905151752561942171235467038712974278023090617961041088904473982962238300340011822588997234379443717425242842054854282787585642213444818313972104403672079159596324625899704994979488005674225682549797925159384233885177285521301368711945938577434262632903482075791487398358612523902079245602906817716822159525589351987018196430310259284440519966372431359900114447704023178217163186977969307368184307453011253851538714487443448860922865098451955882861072599423190535363174443605068515344187270445441667264658327571756462096510371252691877661708540567193360062814874555274901486567228351764210331033046297938743941881695933208711777666173964060690823577749962453363360552591687682683546043292866321460350749407418467401493311433890408255192145400158970964517394753598244629827277237537351068622807538954421364496485147998096948648481190198917085064824410950746116580721844556630352160814348847439496943802982892304592758450142542021190860001539261103815235222353619917414917456240572480828170915161788607745151193836609384532265023196488435122203104926765486318240836673505757118149267476332169074834533318848897772120824662139679403961745120869324423475837231291223121108362401252962286024042524096236956051782523000873183843375391317753734981210524709792439530055657883675590213026645588043367501516897563841220422585283766807794022702744451746984617530568448819884509395921961223755289283165936385093704383464305757926837395725800781251250126319468105426435143739057017016313363204220449457362910030419874031529119347003254069596593821613605910626106000714408486654656933937001982717676751331833248438216540172820614303267645531058653444668718961041222386347882597859510443469860683373092946411103961084678865512492120816236939853115699070540616646784985788804597680961367764355762982387759227304110719243320284291234834814911066969160338966606797901779377651560573242301064425205226921195312612491538038493974879279272439466779474771708935353134229052322847101920979819037924273501619345041813083514788206642393682072611543363253312547646098688292999542118037757998439500887893063378026483532102286078074437295836956212677335561834907402356436567462594277867384210722324269171752401729223757627619952393368181025133015237322195753657271431400276375282691573086425907848727830293056321635078754616378060858569839924613547054962536989362884295352392586854425859991901805142628816080969419306544627183070744587254731185068442196710899610458378857784082921078497954733220725498603091915542956092550697507342811119006862894589150121099421424158347708372207974478331541823163356383616050457930838401593342113231649970760893950716724182449734061696708179414897611358836814791229401396595734940007160714018364879759409193169115436474362671960102279057801484382256134250737141700947982219531072527213523228870076747181640762690359754353492905534610630283013813831336604510089849306905494545415721428963669545537271035321683386723975325949546907568771257235213421342316225377382345179061796535943269964758488402521791207870586755382828202634753329106088899786077275778714486784463662133243503807385812478597198538328135729606157146967539574983888295017729904997427680807356011275213827573287219589408776722780860258422481172718812709803307869798737559557789208048212483826306026513990834043732826859803707326522896873912949630340772724755086386225755390374242756245052057235738674850071472522899740046117006749376932808174785797980188351177591069595481877749746124448167140042404694891349671079767800678626335421164512731657441518273431500033530723972081731558633580102654006632203935502744334748532260658015769525548581330691126540530016581581845980294939990960629334844549497254705190759945312414198401366842531836123768871038391689764808121049020369932417510678628524771668251990798649027256960026413192142212950077493390631573754715980463150455334003672786544371889017234540331050011303121259679630310572614039154009804752345032929859427654156407326125376410256059915545555890883635142229955746371743611112706215485839542248439261770558731562913529882796726584717837983432866311274840520207299546219371333062636550232499145865804422126368821079712968721776011203249247527166588603374371922762262607424889122897241960039812445012174750556338619555362761880899839399078649942612285591114690983739974545793525695430854267278391532759996325571188567401336441777801708299406345358794443444587553141243238755726821930912239232969328095601146799787801677497466961953417224540870827588890861790048100641633301697324761099117621123415173203464657988235142326931476487176496332441389423295126441492188137170566884754658030183470880286476335196043533538670813869265619148710722889432199118502231609529876000141759834079071568574473965089917048279129768832815945820981362292351218583617454107258648515747816244029029920715391529562363477395062271371083127428571196196455262831005264028975166647418237977716148080457963915701001926002928995656137508563911956177486075125068681664100700100301922113801084423993622416374350870651376156835592211300317807413150038573460358085428547376228664012738267873188151906548224980970869370625190021119320624780983214358687150872562828351954635307418950738184636787022447243730747609741245462114949347784884795694651041441884586698241846624581401091855985100105844715452379859711138659435665029820651776087341629757638366450628555947168652691439957464748361032409811966059210862666475538240742217229165440508084553218710514144698633562640680446732658645214388944208353509788836740760911028305546911938240923939186171626562338792309176563974468457863544451312094752968475277461417320497250076103234490767292664054431395425072184636452287193514489546059143441203974710260404591318939187497600322671920383315984478202856695126173749036210025090878271822265924412512915967384738622275419766867578326785072713775924325999887704675552936721185332027397993342769074072286094314378736782740041922239826489893084049171531128698683740628538317706988989089119324621680813443419720119721781452830613031112105564781956309512899687562499358889779266835940627826844702803194696170924253051974859267558421337918392422776295752280126594508893368131632923506091623151839519365594590277478429404386453410309711247575562035266105898666232167470674637291287254244717767050248189242927797980183352745356823530424540457742875439823944147714912639295798507768371545277465525320937763534990603060781057007996180667022410652739002334729717574607183381453582440518233947435559621065674868914227125307101235462783612087921038354584744666158896110753526394741799169036250362120399259363410995241761127005141210164812289078019953462481084358182426469798978172043121491889289622738156592817016905277704577397070854581371617163081830550984868820295209204290136394480017859801515452801427178172931412137432776845016968318200808507866314680444964018621231472801241865825344126426210030810449806209107555691188939065347729884679234428973883186705194016300611201972735606747411740361239423721022416887438289921865275681216880411055143790045688743299292310956213947235903746785899776586402790167726548261910320230906832907689028318276267184829246124206478707152050911933551004093048690576186010512548849227324808013930479448775717126822301215490705622528862613731908554459646856230655165243467710627268230938004210378552965429753701721352343744613882461301382568026972295613686161661920611133421664113793873765839260358643082338040887233638235164033974673585034418607032450389974134792889095305334334260295550724365065211533758188185100228883470537275523308999519048802083373223927912330697654936396378831254418953389920058121750497319281748940836443374617299033740110221746900278024315010960465144472777722655051500994288839504141028748447535220085660351870200077317075496769447156059994743310356221799035735296936936107168881079932976594097328863924495802741404361911320717237484541512558837550723711655947316011417922992499175323322025211873555062347726560604359422166331187112694699029610923419098802318554979695225924317730450466653912906240954538585770348766250384823379235192232775394418055768889565528421353305176461507417462538788915982661377671320228230394736580349815444569613882447643806583009771853067907341125317887462671596996504696124256556148581944679406440370895191050461170007210476388596132856915651788598999080820026245294499698343253568330968123800733199448857325414730055306794962963632263904401293374280116653814680305820872819861899372713571991128106023561958831562220882008021464094158758736307644220341451060745689315105826232192378816466955926589496869812270774846714193961006377908948150557463520636784047448328984524683682803456102186893800028198281319510162778454680644856638367868422563907576865585966392511075479500575230796009207235455506819317177483255352261192145066219079250809200907474984227843019183164711814479487112893887024766361115359330135678698375707351691385298500523772031491382030276329082563462825166034208055443482771230717065052171533494053906377863888750655174312701853589878696045031108973906209042486934251662672022197053404165810310049971300924308491955387108024190337391396470898251577371311655266257696383611136489798064477032749356949191100174373857710794183357305312169999277189811062033858595233996389689920595124803854262644007598314277737768811464203806071192251177004196149955527581703964056746582720001440781720555301065904046795065796099991382656626735872591411381428217166080586300615295217062782077336712317015913238271795280229647343539806541535139006241808003735548609738016262110596574429389070112278504761749170732556796681550115339491196771910939418549604220146991141443624787875588365554939405600247312672807980239410329997178227105323937659980388856433782014284524078358798258909232706021672621366795595599260993679469913389279216535806513271591104386339192335877253968943505837308998533177695844244380201996602023986903936440998921151536820271834058012641300797146447751760158209772164528854260125364469055596849284325329180586934232493988367133093626761571420786843240672782571255156328056845316664437512705405617266760021655285560422487950593635937841843384433058932922380027102296598492113794302956394839188822418535612065298819259192860777039873626776129142893165658542624245677028721336811766923662980126537598202905928620970954615053977571617244231531451312858515479189659913952149764613657178095635129538274812111110574554112373464852311272768916866628680733623303811515887682893603721390385280644304479905039985821665930340422447390303344611213871041112686606999557079421471893238330815585502148307972833821426187550043765849705645860552068325212461117352405544366169134137390005038603722388775679654446273906394108005562540713702895186682973666529319732322263624509636221024250895602708788826229261570646941494756681459995893942725508659185074322949533359094927403110603620909334481128834301464479046939901144073528609302501162973542743537401399082904974960646827510846898664673429272237841057605228267725950763862789358508645614818529964109220340670382321127682576190152499465991525464873814536101595191221558145511422724087039354074709201712699587902361190165056684438412422981760165067026901491923023194811273758033905295497864597215656818493899703830071009170274664062020992531168443858168506001221979657706274090819773682175424597932578253579963718951167574134074198189603141133843172585161137096833989290985790113541481694048577515507404478528427907602902435863964260922434403286621689287085097983091919432758345090754964769597031679024961203105064191283354041278453029187057391991352052108888483068315419230954407777509599665227174978131811335718567501832325166999193281602017002145197818897541458175345792841214333433904549933138876091407947083581828389364771017809394746681853166112401910451223880385018400780806311075138191379149718965305211146288706744886276528822623861544922226248190796972764149674884518109676842817803287330810694430221454523326022515365979454147492015702270793881384706505048202693640095670636905568952672541581643111644637868310331738978963891179437702658792117116696214224636341051791720583949069245153147779200536500391939935234552225929368387535071899879470717702872188149753816585643424987532843695017808017064303221391152523480755390486365241938086090555217911708206933463862597500977920801003813106745127209026659163073975463051777420503889831039963534304742588999587977842182168398229341253930921979744151271418650891447120143199534526701864657840861442332720836083508104628645590112277404189464275195283731910299895134761848255374295779992320676425453504844953949160844281641931551161884297819861037580600418528866282927145230255640999416151326927603363584486389458374423131316064736642359301489080655663981374700627057503342893783843715013445117896354798741106872124849937271555594614447367198135565301451789228292091064839184589195897182102314999560821196767130017476997477749355905941508633663001419673567088325036295591235067638161081988357752769047803765418402336116993846216689336040639429868299594919216016112944766530286727760995611687454281462395531969873630165281362210698782185885479186156995184555945725292171712812854825127311358376877239079733081506432091444330175246316132817583779764222421572374718132725925661086129533348968730030494433704491302829388856354579583934830669470412964061141359628094121020448055273354469986738861292941975554153062152193536799285684317126174486155565788213618462599723794949279754388137211195639748971959617930192499353484807378095398126218131674865099484166307152285019166844941673302242144572759223314379358129239883706257764590086789247886912089855884367342612943909945597774779298999592393434770580833354244543820198611787661776165165391941541580801723671491655199939051879106130043724963907890751968880523607696120520741039614218848502393179087207884121717852617367186987607102894640917593326635918108202013351567494600444788575577275476379987829068198594450694397448680995626007560785101432363528627671274616612977127120118129267399111029298978374102657023277470967381696753635872552649256113653607195778149453463626091755833808677266556191284645074867245255624419879648107259947374566587832076815167887349145716141247462500802208655144958016524664657671571688618527593946420262131838348866878879288714192386564023466941397686808508437104642029173430311937392136888481212322613901808568682141933207398001395550351442341477960181149485680771952446724288475108551620762207590625080819720763677781010528001597430424916934824260163348629416863551494105086198383897772783378376825664551252984043013491667208612548739121459579294766482913964129099721292093689455650808789010658331134430762417188387561081213115854953456879402329709926905209090321647351347866371567133104312398898391742559240016655083203425245439742318313834836034037350815583322166383898683108485633840874309532161109299877846275243800666042394901815186971160013728517928458069356063271644858971728353290162643451891033931677581014326112737543659109881470690846456019645433478481754565493758785515031920388915412049383675477103213179331671208253743363252113307293624971432272052817326500366471288633417733640691792851711888196250835324035402279253765667005832078402294917341606285884292802545002407365235185932677684207805492502587601127013939579310496049119115217680181852729831318084606327945125935526250717918662656902847378301623669736465305888164644381596520339678088690104623160170171411923642491810967026054552801896929504939884799714965067308225381478528100009190620295834091487450381064039140263881676240481602144093076631206811587344713514240656123685838146102922490288257277241842927393896976900643526700976097270063712525236820644282434828267019397842232740442022888968382203226037605609585808962196005748499875951114736525044009510644192982096302234638095593876406836894037759097537740047487433878754560835975124567352613501361193719342056286948992021154903335018101920873418868444565666385595927262764058598603908414590723513990831638740534515536855453513225153907800289460205874156906556142713413138684912067942662695285688661529003276697604575503504448328194361293398558339446953595874690231184983839522886013756120569410179070464253458241924824023664030104716231825224241782684897611491899398222047673290971102071076577007394186828214064803909238432191708834427292958965007848146471661783585330775204780327648449044070349677063649948835647101011442292122197487065090832677904933627975952802684306942732421578939886342964179414225961189094618261069547435397722607218867036027352503252473908155273489866172584169089779697460896858943311519033922640419215792826534716193282062860282076081497454892091681612326681283164357023732880714313947805936712279424120685150442470448635590729124891276834299503896537947606260883808935328533657605159043838843755676941133721939326029414231936228209055671137196543847529256928460931441890443662533889928164805787046161595222208498353364881049554789506760766841253771520877438402784392610517225309937945104336588552524292951297162457863089247841915766662842838077262483097896009446916748718445061603692194626017501629022668912906639152651476196320563268347805092836899598704457207852053405790570546792499641465101103581824540416556204715537965660333005097582039008762187397592734882530661846664287610706886664536368036388311144775667964684446532268782546872318298666829853101331869310728019855207034494163652792974075143349123929638368470161580787381197757018868866477210560971436897865904531548531580757331336866915117028051053363031101495245708722119893905168542236957924413268391878282665058435175928909254121161707705478960123294446728585688700320664398342248214389711044756641402484023935527674468920736042682801190083698938861755290109164802194107310603195398931255585991641253037127388886526444633098000919813930647233635136909869478177817080296258464905132335642676226266819160288175320333758192862987826529272935817187094263338650369112896960782385402784601605662347138380372223972226927735075563092040548095463617980461015683836997225308879866209140059236294785683561858602358839313360084502442438029105352210602721960985270776524511696859072863371786745594624091144515006768240976590601926114909165707622271625377846086061538457715726707242044905710844572259137877954984136523391834063761971571507596432329227331776871412329639433854852945070286823807803586325423619528560137653663287969444236275513143128355274785277866853864251590788966282505446263176506291288992952499952379712458846391507359962491552479782322134588629876766808162213065161249605261796101430760931828958858836171965321077320962528525105199438904612709681252971177877751838108132556958500506128528018356541362501292242787900771731315496023969378256180373035966258863780633379253940631835379310447960855375354710182627315733351009214021182390974125424270647851961725454387949776199722899263320004825036432571330553003548679415504639302749079844692008197306006432807608208341776555358380909229408908285487451130793858196284993396274104770303938777584796471935967438364847182779804999138360730403245556546492314360596005584526993140841758113767761364306569398442254299096477919803307337015407027695252818174197029689214657353755825985936601548704650244349483570863305603809080470727809733630318426055147318648929371566914065351062861854119438649910689896550655073830809271249218126685143222048857688764012227284021618870299883010785780015744654927056491322838934106837570855048279867987557834309520227601389789119055063145766361102829534831479337792750132338190636671457708301787204400613802301688686968788633489775357044455422648732782216319513220473380453605303792150941560017778954237739021811301898566816163835792869055206437256346027601644600034243146976172977451917137910500188601429065022344077796413213989841412685611947758112266146062633169469173873657411323433984767350442313290712972262855245932983595419310472938382198895418459304532054238063388225942352626227368427684015301837478793671621444494001394704547893996300739911514656888296031458857544577807289446327081003496835556500279646107340149572287841000158112982840616660926660835241162622843319536880436773460689555945666181191413566120125953908478161664130663994510374100336296567148204751332332811059972728658605989061734399378571374320082047427311457283041078217109469772996455582441359397165933380300400234367785584196550201112775523603867190692635866283133084359262429174971065664781766333015825853496753442252427576990922364264362562314735457424394020554125204857023157751247639932891295657806652641269474247281821863781001295680458113971853170321730165438362867498384293108881004811073891896874359298274993600341619262820147638781708181680716197416065373007614210686405692763604160337233750138203535084185268828303234973517621758126731379175419483134584336185278592566218256230322839368031890575143674537969808975214159765027608676605715804125270716518969945685821446933642681306108767095434267402359759313278426069242323486954840248758277408153110275184973494815087834424664286611156638351128660159487249246814134929444553447943558202797147897810901328284557039446778576266626867994691296869097819070876303466324278832510366324644026302395850469368056049707632912889300615616877665790828006946333980805248278317329359533091186022729006025886038162140024396258765916842627015718392349549551101825175712312343815601365394889160289023825956963585935222157199313526422884146804849931394761619527695863882865894003371723418330819097239938647302747350550619422990225502442262089838509121824531251053384977160765098290696544786895658877669808247654109474100529642901482983833081868812367363591770340754152722193256666890239283664467316884818315048170970779489514664221293934634013836120058468301629003237169126013856386839604935039779704536347245192151676039298462186788056224038875752542592817374140485090561955338230596010490599011232966027679921659721067512826433763891412740626339235064393582404043134570836044069162321866034947840553611723458598297650982787792869518222153139079652281826356631949418067109930272972861321438384476425527650548579680656782564094809398185235288370893171637931407494062395946202842773829744501385733886726400860313300469991560097353842061526803596671228097949120567677298617830434230372436171988277315551852560919079390330899528582272870649694302348653379913039984688693445612408940066848410220864585802473507761625946353995663080683559556890887391406928454498469245956166355673516178422594775065051409017500281660700542304642273292352454961138040993935130224306607787208328654202769503469915098151191564929505497331998830168118741416343019082521042950379589456866276575465841066284918744978972718789926206877120383057569022999596548978547737303462802472827888020857457230371933507728291810720312682738256583824909161294628737894446668602029589498129241824614915049607441900026623438237562602042013948838688523263019786834940037971033510582972862771968217773322452886192442734617552832323623431755985499852288551893299788993558922866738373221372785094267783375987224865499328945537145534728435282446648744592656632279908132792402175904925735463206605652791589906880182251128928908611340237209852860764921264207769264269795370021438623055345313794144535430417161681766382474622408282060467528850622554650501759526854024477524305045117094362797037722704316397996394224960473292314326804886239326734583443787573472050601148323517204182438793839948229146106611837402898003807382330152666260481592760062572960905893432294504302518903722511718932155207543501561091644920758581001282336946516378259772727842793383756357691280893920873024469616871868176838495860104265683392293073987629119015333539405420790404846119843531696306196834120522585335315971607164415021811802741527675738531988251089374074418660950455632423146519297868472149582074993536744524938846082407957763252402902567316502564625397640612056070336232699305012523362147442566600980110594730873215572679138513612940998834243978662486977253036759327017719612403679680276508591701657009950383951135826286722573924446853441223426126151180399136593269789810054924807202815664040763430250741706502165295074342768654655380695630769403130070215019351327648692704861881919030036571803851812325456841587912574011455214526866506733601905157670913868458419764878298038824078261756367521355335252320648635829687294558385002827848804085203414020874308955387968599661990413753859867159721010200188092495609596141561477181357238963713544276460850233903697130250706327755139384177315621654648456116164260964525590583589852991938060274356054226813318593171622603025669247346163359805536588849343865738147684500636204772892670500411475180918736223156047700876372822028715241182532722690432866882706325908663615548463219031666543804651217151598512756172752877736686727911475620144756062949475186068994126273351873385092745449678904349381545388715368843157211288659610445830853798812321302984932358199006984168175023588446099611767039829164063277447278489129734865254351338621701477764240670299335086594785069489505849240435910539524191642597168859675932182528585235245054507502043212241061117092757280996893882087685471272856740691358985387355392271219981430297893647630174718422491446305769976243674546689890940621887047222868568355039769839014753496708903038731066850213428220098409190726151257524287847331367878077264981255035138976476870462004735417690182635470890041447186387865446733822862883114177121563546221849947436128127176303823212857654175454937573693545053386755039176194820067034088201600798587938230989225062592382407430322796256182601917878203266288931400733055716415113537029780479231792809897432470806291092582594686821269374607394639881768287247125906373645046056641259556697851624453425549067117590546517553717359362224648890037104637765439703159145226971172843825862757118518433850841067450527318009717426759095405275625341376793519638049605122266951043795747440102557459639967509018944017999260950808392142257987453140976807356352973302214259793724146377406933170622451945299224588961757546645692051069708016698112163899163854991312481135016945123320702185926587595336619057398491307979870116588278102872090774748320406485120257860736267831669915150615751753791866276203737941404166536960810001866253626276855562899134969002380192035822835080645376200549708206969746885530356269739101405863927146731355362317405444270268227563197981986296570101632353227909328306119578589885037006317729963184257193091051777647124360016245814389849956012989569125194307245082592242677906121028529517016930319191140990310795898350029299014652201942938744942566355477280455470941178772423508676086889751676599529657199182546310778630537622381290854558332048466280366484597855077415098003230794160008231292371126780110950590827521633297993903190884821219893445105003569165118040817533667339458577837087054422295486564878636008225417075835038963615720324410830830342585022878485018661297468728491599832490320656167717602115290664609312936640998483911691726023474350708582683491112039824243027761764581663136947490626041950897672253253927488095467239667460320480607512128160388555089501919310178875181557346845787268176473724192366071158722313335385646283764318687617837747408367658763405547943367123791168462156954693176778247748321184183570171514562237600290079922376456869700479229256577931717248900408613226360171462003462662958117408958765121394594218113836532777196177716986383665480722680414896077149326145966479601012214453146933624456111124792834878384696150807417877017172960338250318005870265173695801376479525340248733557182795119380783855510576857762182441973135262500305283686155928503343948625186331365493246219420146990954530714963217647050023154542394627885036527278544773552541474391547557340190953269003360063524999093193806832921187845870395004905195057186652656346549131330277058309971271994482497302205930878859634335850521977370660902427875131646265790731515139369466572127626811075693249933099407179646043479712704078145487380047500893382053721818667439727811299994893034512515246367776107661707758605040229589525583277646563567754738069307022805528530137532699261188970525511969929338772850953057213151982970084310804820905118554526399097224106959632892356701157282786584403070454198355411747184764209720523037838352645021353791649083096349690116321815954497742101696445679298858764382211409495860806297850743494049749206739176438798686202567928690812092869701069796851982392579944908754960191224548869301084743118562925756553052090772614747951590783922067203624858370748224696653884327014481749986193804070022792185664531521977552419904778276640583541271815673889769512857935774248002775603535481979144957059124692040569796649775694754095059024180217382794346633804738570975870632771413996474604263438001691989698251929906355501086173307747764343865638751559454360820887838741688775164764144190753242885871991202455051347783814285012605684638911723177705595150114762508619830000792311122333600849914246026891188106770617683107445096889193403376262552691550119476065423208290769832939611372801903592646230628870419658754843298130336826232170019050237582693578853852975330012653715366781784311757592443255793714964089253869760926571491809660016149136637263334920509613095048881665548422372279448421383277945731410666712751373772318551167601216934771032030686169086843337374549361077771609050349354841761255904364468189811829081335817083881021293176237189878831672042223804153477915054866310388915284073525387412621139740767612974462461170798422554287267667016807899638436657553879922572906618485193392139316966696011450487523363437362968905280341967411811592406472332968370461725454804100804483406025475965673936097805860866609664476405458714343681409036256222627986293290363069722170014888701892202226440257112404102208152768219903701663966634373092630601245880906390181787194102263652094216433518094371036399791582547799128373711890580017403634866598430254416596102581680703999277261390387945500059256457925365817157918759164951506088441582697410324000808927880145927516740805479005344349562472223954893157410845637267311420711308723936116848014810990322983177507810718633245280593624711619026634318109075497137713174664220312947942431637909855449744641570399440524316081304566314951284790641581958837054627700760082005814400118747194962118530080344271308205566632885083712364506386412034276762292919466097777421687002055095796168872128428639164530758862887104425130540971518757563412361333811195468649020285144957056205108878264851698485711910059552017483479596763654306081217604172265580371020810442702040808214233627769367716979789608848313952079945985877529589397196212952582191003009013895734814099405871383690296045075366542005602068200426201198907499764367870540809633447554461633718690437137135119291089059075241190432434693704541546111151280104833371972300651396781899103518445271912093867167082090330602836571909380164321445617637798507940237541263682712033923095072326717509359272704367458206077699060075441463866933545261220759994019034385678938965115452985147342280172308641398866744123798158070742563063601944304050192196457791897952528432435836690102082896119570422342475137886057897729498799777191070030526300434832164604125526968000462216451521184570691865306130430840272803901882847293333519880867480043358018400795361622212000078852065973492054503572361555132977233425680457645155304648740644605117181361199640007399235115081643707103953354617194264352872699193613251129708628328077683444054812028408353280800655094191211559266607084094431417622170187524057798710074153598646853461986178980860899780840942630313173115796968523791034691023313020851301730843139283135188865804243302840811740120464108501315227485180222271929343380121945078664538031118012284657489560477953574358672512775228474788114151878145941729414553393749420008501287042724107291366720420747355262540772665068613002764769085850190300705712418952235642271315683949834437767442988500625957348726657823837763615144962909898993243192548146901343011371397994710490832822433934144994980732795017817476762977576363702025138470492390353291394949603783913316726797619299888720182807633997442353134246245766279296861326865540534849500943265947464346027825463856051293415492214106440798806012822561470348512955614592177652221166585342283984516968387462698297352017213736585794838276784320935101440867844116872861790579533804066744610566901978352394680557811296962300337577795290959329957225568762487562518392402689212835317644216062956761775527774489040896633041380011327348420704870641965103963025992718078974798275371756028400926393641056454079331406950674886706261102575229278576528841131382133614708470902545819383820414362368040600235994556946173475506138204108302780064839240693175376486240652528588557191230534362615635233478459376473748785714771303640829516168429216355566032971214355788273762234512311928992543470557010713320389490428168267506081430821031767038182155280528495719776984292354176749314930013979853402259664384932190582583258967167760870823349879760056853674385921904661608160879496243777705964901595880872130893268854034151734282530765443233151641476463179976625481053200604712630149114015099056829556358675533923227572257831130318854021642430998707879857663518167343974736976010549478871568853264298948895030309631373763794944816747319449332849658263075459219028498756835704812261781879270204035931423154864614469970650541147251935693689941006041873857162033390531859211217113442045481308001786560041874823018785091957377915424364789530440404394604051401989776835804762431886213985037918144623617552196940853276223466686787327279744590204323618928671488050056528674156333015435270010136010610106504586113591966951700780416211293980993836094633223636316515261914584459140371715102056820936894936753283329423772719539106598623602925632370070552779805038459503632470724982539086751567405265396788393261879610885140942361458716495411267578511038143849829737503616254858300348229331531723460311308833797858896053812485264517821663222507715158863961976499156514110435654929005586509290061150300826930816551930586617746198438818361134424818024780016921073703408425436421210552632889201492731295098337853479931356114857817361742510314426885927419903034633455007739377131119305817922030229860814296433765185180897822811661929042016881063959101993848766620859355527471504722739548052168466864508648613804888001599727811623760001571784142480475146009574003702119884084754179864598279936302121680758627506366592803699541998584970300796574062080003512841670887231359541164940802583422244741343139468632248056144631186126184682802261719078053536142809106028602737351373457621106525524613276825923795323309326709355501350130204738477575544024750415667338615127700087666685453694042636780035093907481110057283610435455221397551344638228625652087555712954766917315410872866077148660611295279841000729425052410513327382621152389991668527112704311452196663703000108059618814725821469041565605099016933680826817379145472027814949608559870978373136612432315595260678414978757201377514483187567326190623658767151061951762549535603365850620300973625424137200002871479609224145914855570530966768029399200558391370521646726261930768435595531699729318825703477233822580470528780607549626226837329849793990955338060479467460677326065751373567039195658860937476455738078116010018878283209288805131092641228815311259437722363054664332261860214658906295020015339291981175221885076506919197227281639063546744974713708337992808198031499562694393498077102446345355287830708856782240238845085294173505108068340174375062162961246210796148359671880296334864697466367032503286357120276201252625584172421687158040874336126222075130482242988453352108493586213192458421940055902755703061351750079423729357124113182301518358137260658080745447625000339214982119345738569142366543307566199307778324073190971043110606095896622136736772536983483264235868169413735611184718080457710083935241014978695656196959037258861018477453531125964492822469553581241161437606049780335725526698829566488193191430584727204410426489697405687177974594987740954941960938896978018977785713387967561215950216710533195871516825390385078946533017398465849190424653599333085845541545472322285630488485942966157241831127833376502013803054339348246984832197016267159335926792585746421274058398886033085435511357376478945677839280016644095462974215833150902128039302730980870527371659812037273332119090885737317004704912993950515518489854217383260181950527988724565267599742281395166749597829727618212294472658008469199875741028986594000878140868759453841245050111748280471760607197782345926619745492511951341745261730115218378497484230765733762423327496172671972683663084620997592206103710624690658867320560407493890081756169868069023759555712122199586124804256822332590414382150374152931255211003468461830329411489878587877609007526512938355751232994973086521172172851833536399700610906782822850731149818074823172783489713905353994767801226868141260107728818240118804979773663649243089524927560690785894327494094078547415310256737259115441911297377237958447197530026122801321407891589774429304047273298234119871800232019840076951577691556123860342818449066988096529928171766213572786290114909302282416905600759654368693353541938694416938345477125762935892807540905095853706616076594482766479574806084622215927500145732898638917453135989562027949892875354011749166080263572915327828684842007769114194337502689527263641743782199699003177396357933534723688899685559288803641671883382899859927398306090401481172429536725714176947853533676621418249770295248842944650201570418357472235440462288594187669853500934323559466971183872879492416973015802683912244606862040231617205304275577980429763182325185353087187313758912181324865753453350520506736375768176875751706527645312964996785049852574271253192605241465539926110191727822174876746263100455150625807987553349683835030316612305696453805851560308356593708207068184653386874543419806411314287740241204862624883613844419230739745964787158618644385673027212933661445925076820719906098339176690493573119888141546184020330292471118492165840503946747861350969342766465825907527380265591988884786928129360805663824613786732736751717642297507473299614655241673446762279207649243092577321065659596163061640089297559709460459641183488083527279985019829564260340189520792529295877099140464795768194341020745060016310065319644015138449883494750635669854229326167342167750858478338043837759993371944914015602044638521327263230985694403130770724690700167053343185888920421805240614061816846774663441146119824054808869822166908238741741405264750903229091715548779967465529660407801520865686189275680113763255399217249744414836773303671502853981362191891058768427733577116432692480023784492975065044702735340262226023588196630790992211373977901622319721797501363807282211101266736956057022531593571858991691655924064284489064524160773466354816360494802449689592845620043032282983164980704442529954428910258274889297881237322596812305945848018039422534108717019023446781389083036782694572658260038733035240808065869361950762923218696107336568412167193723245632322192448564110909539174962741730976570494038339518829331680431340314148141067821227841952997465892484610042709583092471454918511511158820910720357511218518992905248810739547720706803395504775659882497651508933193418143193323256923452983457612517155840015883996459866198506847519499835774465904245653875134061505954821106960085793993143226764429283129063080612752202665174722176000577674979252241564952780019913051910296568490108700588525147134301052889315277941132036230387811550855448947836688614258184719938409968491519436308724824668420279367779033540462298120559714893533850793137571771555072538694027163639352502625850274552479766081741317524065175567317411414227428199805797923071781298704625032677012113945944501212942876872692503922193523839528666427797832671800473716015328771472739980910929397811748553199372342617664953722457107636668186977662958275041309714897298197277976909664149162766496842168548451645144648639356278647399730807578499608040301386550362906621064531745122322198777020733354140795786316980739929872262680451188286025076949435049849877737395004468242295948951042167969305285681637032457944339733498219017245327364866842277601619955641983970808673758864544731331773013576794266152761762390478467077225503064883992214839691776610467063229425378392718905444767524792094313177182229546798778828911443320103967377513320226270617046849155484877315205982839187323852841438592393908918243364465771874634004310191680011823722512521505115991499940175893767716821543684736303921699457127433039197598679587860164368846595663701265142826172872225674097764069760880196800653833900640660850195057252165822369939104645952423303726238265288941880951038808239504561770653592864398692128091554872873228102184372108168537182209203389889074247302773959054962085149335233052130594779518390926823780899268546162019805438007784870311287681696450918946693048974512151009345030188328338405543180478778718393213524521340987966228226103875557277715274966435246211917601259463266914890416742865745888521106359847424458593277525553286717902081102874292573401455073114944533996310172398184095319866559905907304959512022451344889726135473807994601044759672836277470710684069552406897821585202756867323389442233666929057135141101794756600537979257856013072385265401292930675448982359669094718856568075213655923399136910485017374694364070770925094076013692515704695989712752067222937448039295309735811005698497595332004314588472327647079633290418781791764194804630281987066212081366217275133615547254634557723160180912783576435497622610791420088379875328496808628710394013662385563689655006237381958034639222757941669493575127756668466731146298073062752712309002347711661332402098152681812166749071948770308672008523189826510883746806357078099020935406227461000350546133909937271916970049438351056664246019195830172344804372330147655817359526827497136874781376503687288630795437815907459595342774468488629753111347697344783373757909820238837711037920176798870091846889634150289264320115364692242755705647171726849646344124513357101834717785379112495423088955032070958127168389958799057217171783218616974866608979841150585442993618187133181408598692973396703542509631860396580683447639807728989073180222051265944330330293971392066994478357955564541655730134265082564633603324642876545932449460575995940475021074101864090778045996681986088316356449779579984277951981527803138465148584214765769904578236086223355858739926989081206586069027947331088838368449128725389810575927831208006235265907424492462975639581375916888259985145302670428783699590435254279314989807735037544666419826221946815752788270486887931597765738823343245814711157134532554370765783552885342489339428343155930915477179623376555110676963352926559729924320797503321983374221867750953442220422764722909496276762573631264081969857504134791478301153109917882997307720489565708078756323778598577912379277310593459313308502190439315861919612517872974898984062077282922998320668016286913255772386918684754373101765402161458038636040234108852962158400461895873494736003696123129981163331339444260204042909247951446657127879304777613573071852382247909126758012903109911457283944439998465732348499032099974877300295704876634447817693519504051744005232053845483908143266238235336857031408295993894162448939289145683553904881770548383203234723200079785915946024990633713328878454751971330124750601115771044367477635869708974494505933233081991324539840951170106130216977689822320956808356926684526752881598945912965320110138597650313578321934383756493221886891090747032162981650223552922612085926721160661330920209600229970880991160012038405882950449377910703348668402282907179213694006470255444370823668810168299768392208608074366544539918921064434557831574059055483139082703582497714433972797755378122088975926034413180706128134689982657837053948413136809377207309767027602795059072034318446335110750313488893880210976215715659470508086958942476620446288649338587998618391154548840523916646668021034317265758569285329509519814155360961229295986237175722408961627803823786254188540813947232925246040925085471276817668982238416645514919890189404905377584361803959207628284239048590796886806342059223154593570290514282963855963212898254013163558946204161305198517741804278920894720236332757797333050502973289253495977464004601035326251085324866546550453585263126362282146230641993253234417913332032359355582136724521302370353718654042644119251529887720318609437033198159058891981565649597784549479841691421489403964484122286461844572340288131352990134147578922465771049366546849656749522083198064836265025101661872896056116563224750983025047816169143067125701066757936729717798135805933757239507224634760748217952060669582906410971948187613755150960489137967178197644417465637445051316591057050962176106358876310464486906858438783344855394051999257161740524313760715211409748046680059386317874436012528294080676803252693603274680635876745248065902238860603010938460808427919990430863147797416104744497989974755152171060136012938964022334840949007884264567259275247770786827184267650756986687613202570423879945839113248394296507641869615552980429177879735645623924145911050892966458495185868130764772864660719165584652606848451871847042645333407166883137557343352921390873563210291800687247034984258775045366490947856301981296759252578114996444333189385203501698125266295300639136958684733272291913848665775730768918612989681055877806755150976565192105753857913537240333560650456736320683706213785140704000294897751673790674691721142976297929081864211716363534101820033617413930849252887512711506455576070832144218717319989331361248449485954168351714917194808072223066081072617170134118951057954023177825397606257747319908231531871933357813012289820045251586914090775562177856047170313715015342348470488967277001224245865775970545308560767476880413910326455700203306333762828636950957275349810840326640513881048468711950975581043112324045342379451435541081431259045549470315241369832727648286136649368243395304709710684252791664569168037497111306084932546084246389432796683748208563210005398595991672838754994285983807772233643758951161607982470031776721357729589089467284085387909051987457400581198273732467570443983035526182202255946326341814902999339787089791916424878716951492846176611538116245090516492414164574804616056389040005235468064637281408891818554528939854104818866279769316247477406813161683727873279058346143465833784764577542136019845650553453763535455699608805747395433095926257869136518496962055703192102129226461667245708944574684706138018667108262131718098179916222737556369257196110007628683284632439608007301174099851627408090721401073026160015445500309834178217718070560738952572223971567397380893933451102644252379589321100852058240586545462801760155834913898039502218595687032661098564194930849922920145104615698253303180235919970289704672653301981076526051368055145499825818662724761401798016357995231570067254897314725153812775379859970491677474471738348447918729077341748519197515042431676239934604951259609127158859320553722232811328612338853717809721792292483685388138768179132414836797009003016258301978345602107041028960387293550875760187497361540221650942781682342809916546432394624496604749898488784101493071109421171210769326549545396938812697946514883353773319654856197826494032001378460364529562810191119193607759621637272836620107631714473445625135493188503370458779600429729835841376115780185196719981072388688451266586065210177994868554414198101789776227100936740064900145946817492050252047777100034267570236913852576310852946180378723588060393426251438772080140587198887914711658852211653560049589663643950173767268497871840044867669842516685733207910137352305976701993567551075988053384395359353093348046500610644700336234826194203996414339119012058086743540571960673007959469702775315873397834232150899861524927260206504120942727752186372536066715082769393847578851125913483435616449141830248322184235938028975985015955533989237460630894076777356399567891758242958036556224423553757977634964015276455803388516684495274412540862370869083838974763360924057307575919587782521783011300726062437772763193320446748493470599188051312319736525802241798583282247083246537837286371443772658990436638528586264485563965577863787794090054332493154745968368073686138761223309134774753844792436053109367039280963242585310417846494663742195006907938370411274133276871808434185460141754285653270943254625443527153110257165385096457072033372584458102233520922229665523748420302376249364665653488382889808397428690500594604953152090546408328601235125110736084592317738770406281729031437167418643732604506620493029843687564001877074680010135045665045968541991408075558579784147823458618513111355753326250019669580835082414838158969823015536035314978389711098830114577980112471735997207644899914678832451026120123245489104132166461883263515156098014986014095565864417668459107851720832928020366476897420003480205574297188949859555933378461491724118583633800886060279492273130700167328393191704120328683016633660471615218204118775128693850165856016706345507888697178500065671722696862143483108800209687558314040285987651260248948229297702685547270401684386074712383822245485299604247145067497671860597584942859044386923541202090847974153622541733608870408491095686274759580568666239072106581874582242699651069441034705828538375602873548019031001336737718488245685377544165821346091105570422711324811042187296741751170467141572587630216702980006396630230178658577194922149691229586267042059253485598701737264345892863879048384389658669924095337271883346048347072814162714292755962778880892860039701535906701118734858250194573130732332169457013693931264888260223506885038275753761188606032927266105498063414317891836037208495404916148634493165716981511519387844833936280035243300641405020008368542602094420112942100988035411558507458576618400750494949658161680355826814247858012641044359606264303107748282671995751625193753446568223854832377345222159882089871090036519838000995430957612190069672073541478398506384878437633962899128855918857828647477018701086697823673802743256096924276657897789924670402148171069770641710208858766920865059994110378843353597138462727463547503693145621757262182658796668799864331523078912405140554453375969941097787024514086016663111567660205318392505826212102357456504201613708507988708905468358512921639613104839887611767574745166982259893633927229036271053142631600025542721625130694802099357206053879316045673530329911135935613903311399657238401289440132660501380238622150942104586857847341211295133564766748631198136536174484348542883400913353405197348153212804121177708737840926778287136043097319814138727875257614382490042646764329756253032859415174190444042846652004267600800507634452815869402148711918381601210208335254517566377727600334662894817563535361612047710697118735525449536116608163632486482127928165670932818055153643454668255837528734733931867101306905281775598867987237250156443817437323388995447234311517612584416447784398239363762310532464334492221024495686898998577457247178527664126910042840975216793356086362807885484316108000194159850812485125044550340840202918403040232297685461312081399096363472732855151023179696147850119785244993008577194364135363622881698591416483905615806802534887398466081034780447549608050270383331448265595925119730252511146435532483665882942329206580162009919977824743012479018947607720016867880741864672429410897686260674724111567514329588409181217078856802464198164467396006079945377682433166512313473574272915470708064685290205406615099064840867197456546963731558743450085740143429225435916261988758014815061677626873173171083274920590914484095531148309775299885398260461017582698078774223633099962863891107951696664467226182096814593087569294440890270072769397108586889697013125787204436150045376699294479075845862082414341260298344547608269818316876112636069859080811516952977297150406561974122995895177593890035245047338338065734766552567797364480787039893860771111054701304680654790025979292008049243936572463623763999545738467570398933020740886124320798609211796392079491969227384034904960370695102511471292574780581935843511123958701564795307884763716500307952111531385745165929226125971723154889028808621393314617946667084079863601562703908401006632793740454607919066178060582225383448987466423383483652364141261519093642981013161181209440892428698700397342438483288591072381591776141006134374484213110240952314700723258586019261441965024170862874562254852270894357727810485567815146185449230594651975940417826986268419313675080969731873508231309105988238386070278230099568103273309106907125557843043574357990466323571997687981313489710759720426837567058355743297902326573400973506427112561577783701920857701121751912848522589795992648228824311691134866848861639874663784491615043909551408266472933306443310886424462785796016799598035773067671023886750172602129308074635413318176353202991335566960944484525506387969305807913667090900864361682037441637009222360521753461606556384533250324902550968228661044328003716415809371739829226181603946265975939866096248317643864759793418972802278733136897323580850040201753600729084473363941656993799471731501072608568578122075511853802478711104682062982995472718394881472166509668556636701332138807074806155087955183118657552061487026084227393233308904422045135184528698144309493502954601943952277120077770105482094267830176737440976725532293190903979024776695898223485075907494966432479077597217894607441819277046911637806861566327400385874489635143904007438898549301535156313182238422323194484990942352135869342207565487742093204098590149971172944614065846332304708900911354712524717460059816816319580936304776352536496241877475288427657490949889217651609556437504980006504542000242898213281663553415030956722956460034977804971278967486411627665359351792785771805153415044611556432644279016065638297576666900206236577399826055092806844676719131642856449992965257143040213147882013225216128176203380046269498348987538422073666007789543163515433068069990947707987964752365390082407820623330990926043522410227362228571930549356783183603694594102775599696164250344725109944249638349036999574572716242228315637558001024944184708615690015526087178508755133508120985584482738210553603312052384563227031906114946949892123793945218404227551830061890195092671811991526120212551596386682183274304392620626908970642674371500766578732634522918692840244414631851499374024041766898972161939410451234984646491690468778771601205593569318110493070522156684643710042066662195616771355843753805556766584719872311928047073106431744761977914338634624951392041092294212867118500218976199498404170344822404239360841221706511059437611569302654205123674649407849017698188590624871280300266934630608834116490990132427649642620761127055735220541129061692538782800673877394246429964726639203888227741558677163864431090859866323373128045470982523192121866508013749382834069160284109534169410754264642013128784522305635041690394578771342682178775919219650525485131167056767651262169518822225339141819454742973638601078169050755359316861590763161070617613245104930559565173970116150529530901163743638081063824793971601492331552806569607203042307276969607108435705046107230453064122729861607772949966211855948191325858979553281805357436484605559533513704410834392429755927039523528998856726849105045603908370548584685071283625932197284425598196836809048287427538100894239132579776848943054830134523913970570428373898325113053090412971113025421791554233318249670215857466851864480086612474058886354295895857879761048957145727265156487295052619029980691977624436455816939515379902798411272656976964351445295207833274251708929851877900226974294842757053752572290379158254271578141432071659580933319469930807801364254618325656209330483602855931650696644417442720380435442940270176336000328087380708725667006531939898456857795984496486327036866785886696608203623514577064520961874380435617756046972510202340886625579950729627649168026238607928859187218882636687528453470529771818899491912741762013925385057774363991787232221529085800620713067717008065417789560976961472077498562935771640786568997528687421369894814262111854200396213307495169000707341072322477557237375808525967554418387766965276150104603053223341474077199639782642524069783888853202461675808050522145049768440758282295902171127255080214474051308845739146944525517099828978030143466704116196692599823725234209461382979238264620158372186019019013395710993201422898788196615217973661413354224598414078821339062270790955077682839640222620504419704369148864870315620538306720473844725900191075106243395297925666913647591387880460077739024642205544042461317456751702829513345839163821191053437070259965403238499450072718336464778736364448190971714927187128862780277882886178554218441661729025079196563515802911746651815228678457983797273224507452663538988382153867776366969070568248746455344923166284152007926494332491422460534796443297126730836044404725198155554490534965518467643911495404616097904177913255173300384543920864427296383268000702434377647669261786509611768349266209737192067953898677785908737953488675053568741727976172873413719254144180957587928813652677134933621254456678512622058565329023850019919111106981336393659578943055102001762118243323939308696466201635762314073278037457026082398202009509116631665226883887870539432273702173720331466311069474013631274052321347119978014139994123606413890021524100096643721723720641820541912611358327722842309177462429259942273533593527473070367151792133022439754077792462502981432580799283426404702163826794475514415821704240574181438159200919065913963484336524351238599697954596972663197095668299874478105500869586532683052006284599581263506558514720578379199250479175226440010764750923135013202115903932511059849774120813660768608653291682749959299364237252225096831204135560720730787575640633444035709284996697926956486722764087223387143445171674794369242338261923444200599530810634248022162196747897241957588437833181272438736313389445262872503906032007868650317503632007462420129306092468149359292547929281534844274096017810543336428951917256620103378266201196766906917238893833845344686834737376924848177367717452274115024462929224550847930493947722719147307113171882259749914081710584504206080953338565527551871058567919720095703808749801297762538567511821587093932620395568932633176290948671280041397234246390132979888445574131415332676490505282982793415712698997025298182351684789507148615119475977487041882104697144793917417084685166878889784240203460279278567531305268535952510494130363392965971724371122673643702338047457863116357402401358667121301800270277521180949172709304528788148971270308679341674808775353595075018816672179472030776200992486580423836753410571063848351241710948783907342776091869672602282995955986426589261556837697259441461742511991187857314256345111892564240732513799216796882273218464348227949539903062210258935420102444041077714332042458944633076883555260487390559472263702994158951024485345551195962395424023126427450103753259334589591408105278165913682885462158100873390437371059102537258096954039615860237075972686135347991943172887806808946122329125299453843603113214696979816613802484864317601319419004563619008777960301376235480450302964047021986114967018947306990601016859652139292180326112331852916478233950066642499713760608859336911344991943104493737282432153391671681636563460606471007449729416975353006498435585851164683230313106781525348496059161626881097764103898056105717881801697687158516951100443967085327355159562877529165308088288281040470576462924258117909514246906223658892242880847315446009617740639638080234858350586211998924106737392348534662195295505388637712674460799927219644735412681819382802204478439265888606702265700508068507522462649470493920823453085416944833450678513880145910256529187162258617003182082072624331591821063005507803575050750716319883157445456308980820377595964200878655685471980257170719952140919873095372324562507702456165886138755577754819755283810027824719501571366714022030751808153931946478979044299674659424594246282932120425045485807358511104592564904237004871027550463905329369428339120488869441184429655183688205156653320743431490977270192894211704950179477974647018437837107275342581450603473594385090714055578940169611487945453737232258799042435565478948799766494904802196857907821071913891130042065485857320408044174899805348194731305929805790995104738247225830963217284810326748217696426852164675062305216701642372153193299951937828492653438366395698606092874020160027273957468125996801433494217259524302077578531615325377179057140667200932784415947134887601364459879051670784051692836003532358844772596434368719944276094676137215047570028935053964040719481864146936969106072953328967317636793787780334533545367354053030911500481315961440968055477289967280598280650835998505127738626402049293443051898229385631098169121658329512763135431054921033317786084177159363866593459049797809751568812043251165134920419867673213545105764309110415478016961660633819425203233685237831129483908836382760719141209252940286706432399011716945140283816144141982358422194883656625061413692105247163121403060689087964801674600949099643995175465321518400432022109912647523785173566851811712029224565216969302615273275369386382725863133585464596443491564187851417486775822203822682681687478807936243479017982008827871565986492114614352972862463572502235016710493864528416087223409700981208935161414595686765904911502979858473244254575310700201477287547634425493475330490076871754799295583065505478566364698875379550401774717385353221129629166862450950460158275710847347963865357220898849396157917061035766164514621985697608769116067814955717611933039227282641668517337989521213759368657429991382168236758308582651811562017823856076491143746667629780845139779509469328175526675529845384879036758568784854861510842299418103742858594404930495793488061578935420482452317392946133311019083201530245063405624090971998513916727052252620206633679689159428306075181071855768623651165963397161538520993662392537789097440570763116823537338195297689008522012830663993061562460637969918639313908432503956016050554237903415273808423710331219104318247185952434812167962640781713659677136571392427804356922033797145409101671706521128571067975457850935649185257762479737318300684678994764064687298950438357860626531124216021225047509275244543250219693994398526431576804437326419770144728013172598901348712345292609608012234155074104106699664474129174518286506568001480637662552692013099304130077849497204918895539530477134468283352912123788983468656884280506562195792855956273890257762342728688516711966584224539586956482229088881749975682827346357854179521150582893308059213211956905049396791521283662736446167677076802271381059720637201811332296709402664151225937390213797380319806966177228781772588920129337022348250061527661022236266886155157289342450139934355760848175249774849922959632787809413974959406965477497490601247250188623753415946402791090595857093705829734819575752966718536764570061090325904013628302250866697024721021383514864460287995080928283270349119150296835938413891550064514122081380641805681076021295221963235629751340595061325487580931978170191180543893519421054211637024457960902938928360911305382669741354907170759785878137000223019364403166577162991704168549023834681224269839356237220970843060594579722463115691328141432006797840952682089270070195587383221878884884066032972273538865219195014922262540646076367319358099684185470784387422011366166097923944451455786533198141377045180086582040379435955168706905529744160937796484349162905638151785302745866207930844090299277088523466027241613188202619270733184603670901747822386847093705910057031472179253416514627518170548109025104694465851768526076218439547212907602056752181820203688929079562767639147574922411231997646512224103232490430913180849358558462421890568259555568730212431210392624918041921507979053827356924258835389506269455408121081111421067971624734482672608335791592192850969836362669289542236910416189709168593152479896679130550077111265132504407120963536832066657650542582073152084698422800784200372181392833868070810850804582945669212464055018371927809119757660397141310167103739812667933172430326986012329534603455246964446870994169539002153036743947366813735897067536873498516389724000759315427549026228302960886906534621505712614069752663493263019499027569904903442267741364508728789832055340964799842818678380150869638545569179291174795363018776569075473607517865212962933987435932631304892178259968303426299050373372784064425220877610820654070992439603103088343630386071888785877167019713776994501140578544357568194947162345076243051189378128677247343528962644882219435540174649433672642443164834162198497119157321794861511230497613744150480110623146268880189860221273567905561872907457055369789461365266915332451801654984262616883397091406646916474448824023689431407726946818551245566589292490283569846309056334074910376798744554514689167100812437981124313285166853659846337860465070229608497002324665003929288131395562781739347519102205358258235068985881059266298404331552058856092419622099660712891458926639481064350219209577315966508865041694614654463134849575138499324914945958732931294207112057630435910371483574401104738079628320404540345440869543446729625526075603140337012345293108681826799446679831787554112769904861779471617937864339687775929030173808886491727061942484295184773020243581932612987149342804615092601797998822759775543294669091185940321900972842320230161377840476047174250890036314854742625907565021662036921372165681546085667587759973335195049818173226696932545526416070027452174796977881365033252208071992801394404111213956853656868581747713042875310917228390430183804693451247059211628041972578502938497688800727561424413498649471896455222844530325819456317715578316871446293529221014247548247786514336585564956641534650300956576549701729698304214537855954874234686029579680547739647826050759547852710385613766526413976505073417219703594756118956265780720046963308755891187715978706542594066935867095644805864498143647832388512473422708215451878465621461827856540612529777268292487515445537239791828798152957303377889311483618073483833816938071919507135189170445680773221321300995050329298463190773037945524343323834868374632464016615589396897119239861610907423799283047319870064336917479600558129356045937406429162806949946229012988975256795500058658769157217750955411584807876508312899252461079271585396381376393981545403060145513882504976218260218237635524738425901068891014697763428276573794556054104862989615039893873701292969875466223019128555776015013774594595828053501331723068552971733310121818476831426977072894104943613996316921729627985878870784726305531387140572207780624569302359793695913120272078561905887111670915840207244017621280862755619588302828022821159344324906038885828526642652886125055505746435349760436817454240449787534053346621851523097515118675223920909145676421108646798239189798792737525909788908333567347656386399248608881963095300413383955595065748083088908944002786493037843557701003933420928665282469559292807678035903275152397146867446374486978666836292901391204653738662814361311877922061570079096903437475984885360790159402527759618473135384981246489242381514209352052030505138005749514072390551001793184296283308438818883027531578665092311405472594217174445746961432583011333516007321470583551380828135538973975843140408950577484123134454180891221988153416396259958378043615907596036454635187310527962633906496126451743966027385412414844404295009470406427926410867068946441191786258084039912966595219976008838820113029393047602505413223083189293144665803016550960746490687611230920746886384764056003633782286122384720407751823546119823264414654783547152646658444686773670181633053672756683559086075990134858429728872945682422331147434912662347904154025570034635733256516836944890437280147724330032974598347768026992757560458265259550641774671892132569644159141059907228416577832536645007832152447328349804180421654667037674102148939458375340552404933308558394127841053408402133786841516554815652217397059676768781440268305655076449185543817112214491474419911345958529762780987327621582336125077553774994397543761655628158245198933093119545503752808795209263854184180553722050952090545937462996038219553770715993452429739143968855795714975692911344743053849434408759007479342141754318187042741472301259563098245077392804519975491895339755204660380794490254655390344027857356389921632395674593881706983001646625984821612741062609517745947362167538098610057408065377979186333596546995317866000018567007196998877159332076086748612656231769497537772880703869010635229448974377680203457013907572074065147817372949856633808795135298126716437318753884508696975817573691837086977725410274258835544125803085771154824490131141067796085276611368319585745266292838978650621812204380840353568205615130135018560838845362333742967875826583161532244044425096211795692392801019548882400167121425563436074599917851504164273019668204616613026781264096956503991467592628197510026488596034129393928166226054618458081587725646442660030110087050629535832214441781083835761555701741133185548470389796034815813653227355942389086331975309397112961044657752880858451351052828074881820514915258943207578967137574296014514204304909384065597102988902803091426387886697341790976168954691919587908560924498001904030438633523737059509239666832404054231298787989313067110287944841495404154030012907373242552855453593612071476341488727914732790758036375294001338148163652339204099819702599893348215776564506492446014302407188534212297038364042571291857971664492126043616675379169876490980908065938337147200140658861033973403270480023240091572636524631524862225028433149419432214946290519698346503598516364943777933202124446724016559805276536137974798114016882891609448832034767999538850274309463602827615571728643925475244908007326281168302035683109108234249465494083961963933749737951648566374060828712830425038528694403545382833065914775499952175600744516902568525975603538216383315168619974586574316787230444897113557426011036890986164984839388623668044529773204683499951473823748771335328617843153791685761157307378524661912459944757872101633801245461822893336892621777367060669805166359419023904820834523028748072882268984979022189343533509496321366166666952983862757573970345236256478958881127630770864655680551502896928993097817314817353548203236197329018588888998281904345785071057272335021297568623091850972501560794602528713452340222017508915934574553316824326110538815730476559733113070881671693461145443236597901798792201618529771983379685494173433790199690190132957557704074270138142295887338247826231942218629139420707130263425633940654191052227026136049991431590075333454058974109270119195383184381022484434154138682854238693327749760271593590135124089510891959514732399287071149257399079393653745750189569995936851771345718856663135581269879649575450419482012740641026181022668080393553839366767758442580898000556420553345018291591648644405449464571647227629647888411114608355753839823052683550842043005234215546745370979994502591297842867600688659166691574614188280295961353293926169712673657692677920086672663212752689906746118684953953373283223219900987052386966475724666363982496790810967173384060209142727544852663235816082028109475942971958277232846769741744332473278710284613448549122933931723445813191921784157417268547723913994477769301113324260531017478511756647498754858467248704190277494709615191783607601311689737408790129715338331201742651084113592251007556145848153074601074138200527611918209332347593911369548023112070635334920071618170302801021252219063954782810910774242238082228543283956239547331365286530085643471716287594896997787406294703126202321973561782716183708093009410801122513487954093524059994709900916488874208709563825805176867326864637402933314659338254693600061148905266110141883743485989510332639939696941246998246999646121221640613888488389132719291627532582725356017392228981355103255403433572523448105149400208568137616614002630396402686041362083951858357029993511250200382200901141646927986190774212307842949054957036598885417772550691114978655542563042841312514454607993255596424318306145112807168993796483247258113108258412601319513580209346026537476936622525209018283598132594850167210468816376806887749674043866553646778621402894716236891433923390820649892480424088062462832315978071454409047359173275148913973583289065385110547893160501104278342001951170880541417159768161284418377607335208740617261816053545560725532050368821498718629498255145689324176071281154114944735235473215929811490141954302660481100263109965930882121106439283028607916664062549307833436060839571952345499366518996411439369936032985938403181902482293428321734048514126007354092360189510862646139888035647888909401432411229612631370540021964550371100454851038734073058336120022547647992234435012067967129768040150937918542066006274794296925248001312160587713195463907555135480405323847406174186961034201281675244969504312004762157783953304367918655948774748325836716478667012876057581780100076960969991385570873120947885612139906795481607705409309116189054787607254299320361742890563326624735593410069905078050563417430294770513886469864343513858466592352970037202995063088521654080956518457365397643330528742632118396059733640040128915292789779170371904259832583348470372817070882361298761550413477250511124047272934751299376404072943908133764707200930726338220063447205021839878593971904538114666433226527926341459725027167048671312511348349510581275843662175799841308693126448272590491850430725387712515036990518381392427871875771026225533758359834190594571535543787555558335590066702313109893279625379502959465979780800832063590519172098015538086576529082361162662012980061957290503378147975577325196881705488286968841603629120296014253185156481088460196503194996216368331815725113555709105218262365255612995125297276852441220182062720948409216297319487025400417756227871451000225375693001633005502709917690289012467323063883446481951939518313361216283013869469822076556219839750319749499582057092765518674545634111298355617090913158418180400303902190318411783530374913372830273452191867134040726125303415312043456698430438998272021997420031983031269869161262957574415553940384926268835135495180403717895754535378410332736066555745203188875356365752009863295318566458022088702717831623626851079287616190807654138449673645242245482960750476746820385767164452108247425513881778190696618865491514866069528496255998453692194013190741783560954992723619972020923621478349367262839278132375012481864572216221947976294297706699699867852198064819762086144085941042917890190176369691786627698790604957127562434046463364244719544844488660486185167711145428743525222911987058421393934387984168905461298360984592846416709423669534239045902389784152162124893740399338466250635955962462577107569126383804814691895745335874728169650901816907773697924031823534229455216770935296928858505356730387718745591237100573557063703328478100543770285825601586537275495718939486875650176467788852934173656396870752371442367921006471537439605457271815673205945876627704904874362288073536127654739674276868476035197118478297931715126587103328523354066172364287726076285540919936738277296272623192160320916215011106340516043779737063861199557291706999335465758012934819040175625118329796680830125459685155111518770634071486895029444899992429502909895702422139928962982917877494678066604437448084807041328440584490905680128331619275351983417755508978907124233601603936706809701624506459429814518152292260023457749790904133443258206964961630612404380187447338904783313057389266087658215201240148211513267557891612548929323939762275456270651388533603586981089624418912695601328656130995461338663576591273798175282995130143167797994746175877605196775346816364062983781152407608810745048402378244062641518495682417103244524178916188500239790661813960289540001078049328985281008671993626087872234659387320811687151961938404894324173737066283430647230214842392794453629849680127855689085613632853642687970885271839310547045073986146631265924274330179655401560263912521084984195532688195449523649518646915923593312959400423595912074964258558591686969096372892745138131845150410832054228447448564550920923112929685068620868914840215797584941466591724775265421580007582573961737758010680626074824711979133639903386365247253194835629681152633714342887070684475768252853104002131003892568985625025418622495329120059995270195632874738730203517738737329491223927397579990844276479083952260989123451355644699009753553150565606359150145673370541108302013320130047017049846887521540114872279755395610561235461021868110625550440689828340931533418010289053177577317247873155509213933871758706647476597726903209142193984011629012657929166673674143372526715363515777607493587679061166789942566490976231209426201771690173268197388196722451522683744214649387377858971012280416379139547635510417956174920949490267081832402388440116919870678963978485215453690104580150639032881809553600109483050490887635360983804492618757986911370700861697285982041125207952015574394747280136877940489225179119302304939422521694498966943040685649904110710251053928641794012333668403568326247466781612196514940535715102722038169089731541991739230779000129752519050170974278428014025695448460523532266198440115558997103062566315915024578161206795689561486143857782457793248143405567606722496053206893793339141846909099035259110155813079247657686319149046447407455301641262527373077960821281999110578759317470848492143485854334924716470772458849726432514733747875709979564805860152113890310345862952983013631251590357549231591497669929081792762307645088218406844201647312059146019709617266919280443225399960791671418219145294765165694949481954246077702189891961149418901197492264385138620895344933802277503117827897501547155152237696281372037318112490933481431058214044261360349142283452436985985714708166461552843169719711879339350427582649548699885418302503968628101982180419204531326799367639019378074875594441477657341360213245815254773502368481375763811031403511391463639271121087288940869949035316323984836363147388007202061079596744427726546887803123735801992992114184431658934357280940762565424389518436989686842185273552207466264621159918563996076395955316957659052662092937675110168253053944097192805104337094968606292545661400113519929744340665645603449814940637458698237004161529787079764822695045454622557597417629241271623820963866253587996157875131377582171224190071652105231353845038339534872873251799494077983216129913395993058109593935289114710189803509913684347819703108022575656358865538252067141414610619054778472386881501000804226407124630469688276799178327029111173197404001873515022143315509722391131403673104431467608519617854838134213521600765445269052846601346652372333189793933871308382463552576157117830683472471327182152814049020288455205650550680401406858485382261056407306077270637719517995335838629258565982958401725917171665626078400281395779227009083529310292526329573410137667731607960953215112655343765302158046020673008868063842659744917716040714798338165597520829970488642414840091450085355706370039409175200646653564771798712819552583992947422697981727800139140746333585402919899575680218858615311962230353763049707478027423008777025746076887589511398477062852479206275950266209006697967821211058467932293883611003970350491636246682752034256539808956051947200738414839423966932030616341484532234344829552942491787966298433286026487823666581584284815807882669835046138767381967018835744629126063673382007601306792387396264160640602185366193705073777700317103689965237378186916091955292409312833498373137178766488900855485722488051852685811404871821961944050536309386247033074274769318368250137912247905780634057788896486918104047193146753945939207582352009050007401363836681499979474454911468403890294298453808855641797877916690594972518204616017338265301389892573690286659530978714847396986852050977959731554608700001865356877964010192158999715714712579819042130190046377368707874524449138698104758195307082787503943324717183455050815864547904990934798943919970879558499890526921825281273566213200256189271655876787361590174831788465831266524890243021985045246387188535014774882968256792514317285567598316392366115373934044428260896276681371412334457134248025050850422931055067592498139023442174320436208880436540919763409900027786813996695751725533625733816949744701474201939330681398697059688351464710544036438995439673422321114396223628136509457225087358369932416640372015554179061699210712405196519470005993536864280801682376483315533890259847652571531293581655272430218066309479356551917823208180777252025763695454657249701991911570206794353903212625569581049594171451310100709030222976205984112468114830720960985069654372112235945049494627792569697879844154952060462827545032595952389125786188548724476137854480123793254641480156053612225688307331166353931925036676550132256094093852569988309291589234279940089587229609267007864678922856977625453028506835475525942654992815099074064958363431690234032679047542648298544669998006394985654894837214946230156770485402734472722706773698740244991044243820858689080918998507747738416882926554315884894284521122656116510177534231798379250567252645933687917171478258853015275609835406554775854125260021094773491484688898581789461866950066881399622943671374007917322568033275737811319736970939796041581327197257539570637802402161698599072608067696024856640660911990735055852626062183153117804523355051870464474075492772019960780326691857255304473440447893560233680780822507412419255192791697965350699731323688032294592704725823729491794292570405053449209023521876817265622743533466306923628025729035803424568106333551542541739886239065406241025611853023709386203020231650595687072296549526368518059127961063654792252784256162458688421621426634039637869387898011083313351206381454191273713256597688385234596361729706437345598927056326793658139810003989808789501871888582713061385416504876886646351632716897096876807714972424122659343957186869998466815102625390666458714247527503201388897836730071994582532549262203415259195744887461579613340009665612977245088266254824739281033887855497027342259519028813968074267698580987056079507019224493389592328288647087675092953359619838430790049714862373199084464041160687390691646971580840914805275536062593370268338067405525381291036274447280821699515742608884122678598953557849227231209707148040429509482135428596911549224858593801952832168814852544251657218144206088103088718473369714918922523130788783114286722672664744084154894445501104189920158515282548923200609012485190107933851413444445409757147280782556781160168016576874370412766528919037120881386038256498818937867534783267826251039310773962558943548259127085245550940625397723144775833154711237912418839028244834557632987320529509239265289710004010765939646043799358739136240519415010960273319309234039298823736353414722921526316463660961996314565095122115428390274060579729357728729510482799820484539593162629383203307039295720356959694137208629617297138966915202011141134627203009012903097050397838836613115101086993430594620191194317338764071309751194839601453073815273950110826158084289016835938193080049674172167732970090498507837099054954337742425252346204414588829609932965625979380183513333335906693895804487422624122628482291488592039599932762630949079105018581114786465924906264217098324610744675458328532939332772711311051101091680953635476047761729147541128795114249073800317149344826712634477359584331526181152560546154551522784906667866776678907020610419812102578506226508217131065799511632430375594224119377107973238332727649921580387726677281612309826010141062095923727221742043661986059866869838393996925878442984767201578876793132661875227339244747303609857001638835404380107776198541608059969338845152529456193510181515051728316464692735718426795411526258513514404309296919388751819364972858262185013943255483960151500914952772526705686526943424638022232411189672122263419734576658923392136049202514632657233470120966559897584475911625476729624668851834357224897838238519880198904972358108315394992970397854491458338145009211290589272718410044387757686651978898440930309390250949688540505797148845824396654763148413963025363812458746159655422104200244063383288085727569861494594749857214607746783589364662753850527576171264459464812938307151815863715948948129898819688724903842344685192611723566762981938966318652511855400056827183887787267103612811677464927778219559201468789946624959553241961559954841533120978231994635097423174801954673917761301638272845685385429775413700643787390892813502124674423565724605928917786172639380139311091807826916189566508406993791741574367210170520935870733890068263445257841582354650379137467386108735535018999467353878221000909875643609652507440323387724629984495871622584178110266776798964913406067525134979694929670125028939257187738339982976639671178687282938875099789895688727189897872371296027933969333883880661089949176234492860910268274448830013207219977068063993448709939211876340702306349190895246462683942898336337262423032283693509576304458770502216725812404296429501068715327306961258476160536623691119367086180771156164514082415505877203497492841014943148084414092567238938051846451285080240683049805320402742178475310860913224084333981532183862975355214515299988285970276602120065598354935423758357809271440389444422497810285028181780648028349743451153120997842016897425942036072515320126029445278373238461557835070550859532409724494718943254897089412549428508637604768206635703285727835926846494219933688795219411347583733127570416083451987391733558039612457233373311461381522150177676260887306504279459491511894723951067347661573943222303204150248963302293464308519054115693647148348792110152759068665544420684167980591269569633928214162536672600733384467439354237173378790615903514304099884048521754278022760335157332709356513474318853872235715267877322180827751225300526690430758228184055313918724618746222077755159283182187140956641271917242730585284414930380567118290237441723791191954885021608402150463376849787418007196656094567585152194523796218172324688786533654417456170349362418770684785400698443155172350481642532593523942103130479758586428571052926085959455587369591536581910043471678584217606119790907597579227185392265591787451825930972976050530347073566084552499076660849814099844635232811347478441021047885749070877033538660112586570315100941494031508601695565145718040307456168363122360294609815506727066306666680672248518819053102065902002421563661560543779852483880132308961148963479447128119129531800676212818645005888058375742634720952101316147750589618812755283483454762806943485148801465153707352933217476649543111100815711178275841972519543765698729460650230372286969749135565708850558147184442925213080212343150502858520746704108708239234130279380840311928992032505402780785815205495602949769144820309116556905032346709563125866014082873964544791515597613976212279489156441757531726561676755754705305461271850128090974040260107397396629558638422682289653730074513776417367961887149396809603312222671664747861657422992026035088955075089752866402411217091689308350900709101573822061645062853063191219432051547285947268702015868728017984053414889393844436576438315329255548707711014958170594885579638658342000062541311830211129472333769736960193977141862918059054386494376731307960616764737878551784669314739718758334829200112019781638206168043499742250625211795578116040668705799222815655786347687323872009985866685636030480039378556901094550126125231836179075166947075801585576499909153321441597017492297107549907549074538158334403366227543084140246648745078012192499992311929308994204704993229535756679332037074862979373463082888761703064861160660987197430210792127000521207614697280058699322488077807780986193430777214213642029825450972477656217738502301907582650399649952165400163680092950177907051049096546490391831665123223017333383320940666696744408573539631925368588074753823359578091372722133951738560418928224949172374074445119181918140502573591585758585292027479861404132499632766184140394334867296282018131019049132520984507726149779332441478810783702452181144325707739678727136392617612813910013483814084156101538016008537156191197831217007853712311246307388123249862913591327576250521229858233146596226052267258235837527180563352166971782733403007767610809747102621855686118353054602714838925589905190409899855424252275189617067035690540427152543641288069139638281918735410880027273733579203408549170682936648139382069267108844230071720823650912146416797836656794065402901876202494609349958973545230091071334187948131512008080255902872981975434316193922229203592615697571235277102546302852806971294389877388940478200858919490758661065613273009219322973340987482533555495192551717342144877156442716634283330346427881749988845200841017269959270939572448393721032913082037188545637772097639850322210764444503853136858547770610890268363433646968853953908747357699627437107981443934163085481633665678860805826589018381680107336185878083068578680799125264177595837270946501661572160424370621291190475711232991186672417413080291125455674252981278891297089544638187851168700924036950868969283927617489440481237088100893532001724343855126741052493635192690195081713411410273736687064432820763366401625845223936879335787976774420147549504927877074845932829297643372041022823628819635737341815395367110703870414149497955705660345154105597462756103558360787154262907852083452491837383846756071273738089136455562765219773584635110836585415208928455836369246769524557132901228165466819514114302106193959241320551318774194508133845347964226465864216122978311874755223798816952795090273319869173359729053610722062523608699593868547312493648938702538636497272652166476389973457959603038964245618942485627865977320515660624436565283458986090320195834008994132302993555215263382624480650724010826370842794756278272245150839008628576960362892896987542550750511352685793397703596653098875706077480162959173952467777672964060755792941274401982504797638791065920750128231969312632881743393102420276587108038715044564014135094960588117762561222336663716243023290171954554968425483551823280486784468039418636887763706588055968515621761568906364258931804545062351723798545558686734649742979453477548637911067066664832220005666037048302660707796040512676969010054887315793747243395715310820404592292337542199705219766878502243006519479301071687506368451464911630408729202852869990010653889951303822288307487410539234721314311739766784930784561056303985918292009989679419497173141229856931080087456728411310821572525914262007891429154735756517773965532492240832541616686528389787428792844301270426914381381824250558698411987519562266038163504783575114687400511897628816579692047529626432338798327999380806726192237853176651263618822166226108002345115834078885531055783716545608854536281589926105304763799203792282473681151529819233466236422529695968308729320819151606410633659423364600504947880303765650410302466511208269185468217458455258191770697747898181546120322631122451278530382838788503852845813827395843967166759785107559603239076344460590638290501378641170364379312984782420437915656772509364568401043204649080752480192476240695754132920841190778387954280097761020579236790586997663477815214240295074193994461950676947483620129072830703329692866964761028554417126317657472038290051307260239041010530746322233418226166219872545931356624951224652078236283312674946015354467999140675775926440270467626565125167791924355146289024969467327522838186894032885239092114734766670419046955291556468045249813909674627926864649782711930978515588623163464172970163204031087892910368439298630463281293991697846601263165005778422524488367497385622096782048507878545899777467907315393546818781750888443754644841071256467872548260885151734131784903402378986922946378854273783070975769541229912203450533150547868986702828409551559817824938290558619084829246008730081484019716013949702275687700806253762801702435767498473485788198282305821221655165945265661163405228516489611005162373057262325706505998924628461767992633087978411163831578634660629789168330076079075918612304202357702301389708371883610672916290316002553147713250059477687773178863817393480264204131565035389046503141578857662541612473015625540476400657118815925821772077445068148039611723773039373807139660110821593490016845456214891707946778811461331089517985058696219355406173244013305064244506111202108935904250805691154141206022158119079642907588518779406533058406469192852338309596549973771841390997891717486733871321629186522430114233648918580741036415229321108493520527248985624348479469745177572422057582844132955932513535303301247318360825527250518669849013942885984913175112989777614175172356368681724746826729392060528726060342852738794340714196015299871761692810292092383410086811585279176538870517716588573703807864799282992467634009467014341277535515576206911370627569820696105520507204589234343306355372380185726613912311951519463900763665569074269713738261098414620879467586952313423636294919091652886491248197179032819989692000190021967605080050742460904929398590171198631813961983959056001580684606484718743841552490468347573239479977128555155762777659329728557725759369595446477240905268219664901366589313506265515703795329137660903766156735131498401270512105457412967663062648169640224389246338519585720232801389801393126264993657279548079571933458635727474857536222262577678296053137327649251361806253192765219748089229952156655123584613741112307587821012605084938877785716368782680992020519531669853049422736279075858684461749103177757665844451765690240223390572227577279413035603997081137708523300731325836576458774290613886961612973931643528479158311076102960340577534488638807545662088966005165082406256616440662953643547870776047303118743262758688260446580898458410933233449072587290476399285739980468082470416058446662576018405871052747214180679496729449096578124466242123149733059150606519474341168536472267847148936103085476872057080808723843532859441626155087963727489961613778687294368445603936251247375809875749899387310514859413322974053161531688961029408963347874654918744979735123636862817454823953865115676819067265299666599176986264698851450709622496048504441519061048125474417948313314276842133143147880721477588530544125795761078872175772847455101847293493012239142677788813354611499469059035617273625036680491262410716950198638436209376603720099290062024466473886137257458806362694136751387230348761906363176413400229221125714778849230240124833024862572005349249112918622671210883086179371267531058853358176084524530628117616578257673451913196400424712404315041620124506109519886623042423439156997552128354785271441944138251026171336188683860276269920233457573644728130664293051052828875850539807012993872342852656090105782488928602588354392773554842719490714029951465548226964881672192696368462032157685810417350577175278735420547357945158609907633393137561198696164567469219163902825355474237706891552595324073678370363451652396948442789954389731430169061393734693947150997247890337646324398762533141915918733287822231052553676517525978293148838436535995162150717653296364230870482395394155899150253454442245539910124652671159253952039891222292438320779434712261229650776652720032832632819345600060045957078180993864515764219936040120017840048372077789728602276281193903133634608329106183966647515247703165460134057856958914630183404895365566420452000786303656170011743171079170621142636438521106151232779600725205894194631570728061772757074848350203611616458780139052209775813169584298572454269930456652835245448510880756475667585698955145985812332780747029751819094287922930783341488532226754943971029891847770217225376320266527603562665484621973862181378318779968816842269846223091631837850541237357120296680532206149823067205921670499671658014899182058674399840582541369923435857173989588304763429238176634529856106056413428383229736159335900399319355104448916872182478531779588397402027621116687069243118247750391849444446211510925092788844901533026467385510122599045312380008395951113774438787780085359961345562983930007248474094773285258655251575552786027277245673959367004511112635533617635377728094385106771268765960802391277021842634632027974093526179330527033001995425599726074815969789173017972959418610218307850324346324027458471261277174837535622202674444459168775118957192167030235180637195516623984640567109112737871254822804378153751588291993438480287162594121427684989004231035840307296023182380325299234582517316476178905825702773441052296761453716093402085634784101026089421358451478880757465890038516280957787692496556832900877572966070162644121074841761573483382349299302482212860655341552556775696257209338938456490145543809542468109251427990078849203044954256995201910083162111587238357566813609849946940408283518078033477636945268683980722198443027167860700035642814558655897733675088272340500549433399065435243000984840480855738216876705292213734802594335729760593192117569358398990807804099297265431318605876676153040376701791011177571670313535399198830238859538718902015176780534148726423412954063307561742534197948365800331930407473005168771570214945256125212202353991639545158731714833240357099074434931613441762754462461799190275688849185078447931450364296583802137240873648512024648960801881091611701700168933867582467126655048989527679249020166161999904781950485656275037303500875398793700425907551130911804848346286309564333144876156195742844305906540097561134027879397725916209120353982634202246311412495441177974116791687680922312837587819727377272018777898732729350338418114212028060265103095731545682865790513225832308260739867526066799280491102441331325915659397281896893955350990289642841523858969623250299758294636823615297004796885552673414687456762957497192707740857292135546393274014938400242337085912001428924431509531728597438042001278610617118285945372843079099260717775442202144694333260204997168655677457927277765295917407461694479789465632215622260520010711377729549387339229911107948286863622415148085098263779786888354082496803226718635057281027319974284411962790094978135776934430311866204465107125288410717184052108620454124156599956566439042541508132398224024955995503415215669398477327497893622111036998703386222402917020874236583699571275395327791615987009640362760726064228916137885402247787571616252678747614896070567331953999045707410733429968713290830319084596865686571212991280320091975710124316315210609237860910778337617816739139242356102167014765400133320469543041317351726039394749601407896027082041502801314829870364991424976842064830344628546233810958066019837427183231952537370589135631617386802274973164083046465135138921103893939962686244552016725468336653423099545399144792159411404671369134704618027408983765421161680860178059530993331388608951586839658139129207334892475588271793962826343625618522542825079079891801547595978716563450052695258540071884910646684414944035592360198180994943891490040244372782213110744736368334814905742446380158725912383475464740642156004340979201216266265071612746754653840158794255929922546215972545921069921800426098195619178693901146818107165508959875533605241308362023187538230919414236889768179333159321887819591219418936017421716640061997973009952702125285170170566091014670539762658591262915053403443255318414272162654600930395726889415307583950119240236344213027749025627533826504004829623321970773239051090919774458110532274686064331377217270620894057860569053670833978934667612624175157384825951393331639561625265914289049284253036789661613665928557833467410102219401822817802891018611935517250747405703983422526928596810612301238520719822743102130708664428321317249477657489369617327341322870040628811485575649962647833626529177014389023888921466717681920627703512114637653341039280932592039278609034259233757392521297941254828734374135906772419671879836726293789618308204161660198907691415438661569278125718072540428445710652668753926753165444032122536627913567876933220018448938453539733954971711530815971283672769402773103748233248629631197031377832813821097092846893945277962781895219710420327535125432383391829621551541276823808299970701229652156163141752966082687629195516760421845832682177183415589421955458047341918807262361502779060118105124631309214093123160016473417324208614818957180821689516206281461628439027871792426122949186233886574720092626544124909924761192385412755063931175365737013772394323964423163930101907180934314153823667865121182788178878313656371066771944551272876500973317982557762074623386989647791012516898695646551888688527940529719670785189481981681867465813045038304710289262494506721722742098906271879460012629651834691084686063715744564465218055547881728485235682951275044404294491647035516240296564327613320466384962724809037351775776064501431832630965729655154585366576070874359105520654426721055039771593886509821477953526775351774880832897287174864374288939622242719054745219199579076166372762402536195863594830273439743454839921879289490461207714462606093510319831839171205213540255338936369992330586305037743050145119161312859026721232886618895220865151106922603367287380837034448013533358491375386246291812700174364429772274375890727079192627927769948189143441731337457273128369172375912929686238141672797836899220755860117062614774486892685935237405764258895856042392218539229929870089058401700648159751217865915626090605400455450210236369603124846237600128370782826977095111327255528677770698887421743694065354851830661369956720635890199247838702805810933330648217952982488736131171183330502723992835581770468902644458613657812184778582759904784003942163978148575246314144502029128871981296842361108462808587593322286085555831435815945594346814363801681210803998255192952334391492473893618137618227630467067774223196287961036187869739871420130356068894017748821788737390254042132041191467758949677916302628286646672663140018595219395550827798703831236809488756570686152752328569972692971267324271890298374413467987576828543533912651275832850129175757801001595260068050196756973271878355049233349904574821527089834308815352495242156354882071803731218398542510036173226960627414210311010553983470637500803171598431018029088864849117149840716188929402377461351737226202606543366467432185180727210505895055244103127221663633712579582298917841721714191919610277927518806058523082512084896639794144059947905799931057513815028320734795923933864956509107367396818666594988754311765562011302039027705778460806733294450391892429201113163514222581212581110931155566824841028475577915303632516245213595754819976425038057031374176485931332401003406225988967100037848878193512299896888429658116878643664649139349787838783415096464795229164206035768153345628021095163099507946507443157306723015910843577241401919934227792028429491654200656203177337105030998443644824540301084844355212299331026277516518503944198790221871565390275150084276476188922868811989215784664477817573767301011959433305969901642109703762692553493422947609339614605254776554220019880542408338942226868579587972818822666896615000586757425175392003735964083099140029744439843462567673773173381597006867374296528153599144439512662231546836082258985592039832636705893471742498099624217891640891560839127449815667002071731395779484589575157779789300445451160464348577984366875258293489180849692136693337060480899954211177433733870508406836514102180226747932720941453973466115710288333846941597239236112896423837704491268244842742354585296844930746008036916052359508242495917172219285327622907350142681972278760654343987695875482304046549510152368573546556460204392855530863242153064571251234089436771315561808117374280619751894282145321244265249182395647570563638306490699924792128610932205797444866261464358178221008993471559341675111606915095435506652146179971172272110442474322343054084254429647242417434089250034556491679620571785621570640512516076928758733371544559180899389108600020430163922139489647357676148717979172736612420561870150019642003743881981340285872300358635887110400895363911632366941410883857681377327975188666743205225266371304657749746011992859777844769589742098363063045617046224462963422289410958255475457897767511520219679941905358942751260042622356781160993485966359114678877028335651942949334309475015198186761844212036849592396536037288865119469635008402717949112532205198704150136318854170529662698437640692895071470752374066415914305927481620185202503220586270427584269778793915086665211597162151123105192202246076529166057768001107199054327145372825511591189394588235842958930029344735213300170688852334154566616626369012073557293392537597951025543627791910533181515084626982997513875945399698727286581761697183102800390872361978681069457961094370542074796742432089461108219216028892262532615882003343631528140925727291476972634101028938328132825020070081900257938236141988655990918335439218333818738901846290676957368786928210171463938532897774748423540590363693956469002052318174797083130302927788991155951163812611304090166388825096055795269998508132550427778844902706797800437983817283029199548413035215287434511323418167287352042088271973451671365520158569966885693072932797020696104624996429846381954214899209779517815787688625224130987842355501136470849573399545963240440004096369471523743557890126424225432737885258588770595812009384801263017297826625699506542564473921430559223389561889615906008169491735989320272652893991084023159783895573782128421859947978514385048185778824065095080610033094751050966314656509754296237547969949420230172997433274859384273723723084323677755823391232241074507906487469056024579749515338718436714755796258556556622556701255445284489840805049169119089587711415035152347023699664143907303301180946784241787950734526943012561865234468228843676899648253231025329163631710663748987414300359841980008761324956836339191106771828070662179546817684452176756840650327500491074212633903116772991187915625888589364915407334443366306167207402296384006875781070959804183759753777663096118162607210695844544216425624999014179122607023280168770159692186192298342003518753031672548478325136148583026068459888601517028822381544060251119931311560870690470987854999719755333433782113868509367795948205033446035104181275621512768078886038306727651556310635375299914007591069121400816866713653094893017743064265556575842546201602385102389838133496730431678443661880240121804087190244538037486495478658540128662236035677677941958204465399112517977448357425374280166415481058643191232067887541930389585954788586875452750735415796241049428565002649826827161274300431665160134362319560308536342909409350353309051792418889749120371762356060071054100914332517709908813546441711499330081705388438025327291492151596935936544408094648287689540762912054475951151485790035827769973659442485103369820016232661281934968772399812228618180980416955863504298093935632690863504074967790856340152183847186966382697967144439674849948319644090420665286829266247140899211452964968232207078936932994564162573572025183130444886670936968232366647415902689497391129008171874400760207553465805532594351076133879533256477903384956538601483835328809570442733656110565924906682553430411430390805882662117650724056671151046602150205058916385969758821510712921417171860037512831716428608516870954124903804843835099386646210325722839185886213659775194725396103286933507336507702565640384993303998014071274848113145989125978188471417419721297985717257213053939105672258334249610281074487984199300823049454252837108734212927642868596195211707110062875875023189464627808039485282232038207805255763617390953032048024653612188578203895377354671078175507665439347837455624759526981411255667417724447186469646585456369139216321724085710329969941994045271852311046348461903728228332148216735969243203728853156504990811433978257605143952637885691111491965455784966166551174181185171173601801757942086692984138253956704910789674135124425415177547595416215883814958563749997858566360154624641089163696388465634323888625801941329670876628388037491497879736412113540325175891314488845273171046979606947101586558755528548908031636549749467930740399904503080928114881253083479205512675816211107829032000024529985328885395786730877913488878130957406990838929244163714442318662474176923961489280392012920943533293849619559436283284246441550398704957473131850118565498752255283485264328851516083822116491289607350539513152556709434993786074531826682708596578596945506062162215131577345130425188897915572341451640520830305815507407237373471409463432711237084680245052230271023945788760189758360463467988781401668595244393686129063084822478424457614099493624739273352784669812704338358638750726901328400145877925700710554740781955462842748185977299623272471094903471851065680836641332762794967345560496176467533089208283256586864192064609101213925731232305046801978508854971828200376142731304886041231212563703384413283283589274935380166353382463842244281814861354965323162205928078503999194095772916232121515418737620063743899184621862860541128822690942943704665200082376132925613649576639232274317691318307597028763718541789077927874868298355949623243216532540500181116228436280815638495746529767716647242642868954479554405772975222358682221816259361354943506201704066871767478406979533216130728866086324589812340965014959140757104510294217955908230956924554373791658652304559243285270580634375184920608504281896651302157636896261615836229093211996806416943905058718549974842739592207151448778414382888885828393591167243126207085951648513831173611722394318995237106613939108959211381035408394251464484759206393751282546647110290794241575632523106264378283799488955897897198552416384845190697330515125516093233134738076598954395545979737538875858833823855374180335259658566057052008801404710797982870203513401490686861835212301080274398215026264804166304332373746866666935476648488988209736141131318173590605547342350771908694002897676529363619091876296063464629476143426257111725497511799641221020654333933344444227498563045418295835488762567033713142443831014572593228641746881702253950192665649516594384818290211680349456287902215920892188661196928449991192373844954040226778690897935808592971252864167505395449103054244303316744604019138789809961231064134583308921003748014616719155359279227420321277938831377080921879101578700614598628227807965942153146400025521489339297142990912511619352168837087942222550322360716382797935082020216365844736714492856519583806441243192410017189764951719419792741650138099860102019008742007393617164761319240619200241440998742486191772860632988865172988555162663693192901631144251325593426849876256307933810314050511888260203786581398544924331459381843926136566915274263942579523445023721815118777016679618998821333260284637021642671481905619688573451939611711252754468521736077757530739794710934170306692494209329082149422912550301568111361414187565888827477078074370232680929334977377545549773468233779193616740352484579683580857139945276181071200375070157087257782863854065844828089879564775151421068998049126940966889959889523524431163506632561670664604372963095125972574728789752136795387603207080332682283445997916382583280196167071210444191513507191867779019126243179481754446215960716868620719044958127949664539388687589326458779176841840241220265702519628348538106133355149027057619732883870539819589029872006082138801625689835528562824476291660879056277749027387251126844419918476950660258637869726641496175414233297238079213787431502093712344612942400920733110748112312293399854708541256236834702974350248625918156124729899597593033313840089736221306134032418563500760336545195271480616040935533629614986071813815549884361481949678065077508386673152463742370810363594974460200073763551865627504850732054707500720166531482894014267242588884161028413513154507598632373057914189008798648873768445568355712416040981668795678245084972221479163974945255834214261505336194850408814512837688717071075402489329078474214480470645969884667631438916687885397390683680020396205581470167004556970168536242739510916162241930630640799947944736822337651779771540040018520804743946062996512663740857100375579263866493894060943183126928823487857605722773881404798710613355618107485765002999815382246716586023663709338738774568174818946540572161374070653871418592565572925310531372163695808774913748384305048162652736445474934727454446007393191361067828522102020835007895273930341556789647652105489208097547151361616431006656985328449038889382219018603003461569042669221538195185330980070221446371785727291960256970345592312349712445892271753053402862403040423809116260080388230501787996774197753584548989723471970075993662483123646759697927507685559736271195647323895498426543362531138939290862283950621907101898304347491640060451980343863333054425337630983011622286541959786772034003407640540915442030223588143643084926555748113448420631487048824407392621392474923271477207117197010314731935034327500272461354794000901843945783080195359219463660162814246545718512794510387110325038602864888878116006469539824825794494138514440742525567674477125594511105689616779501299341201781452659618715059230602895747641227326605564864969302706399042648593931043095237815537513674634444238138819223064913681376307545528222676658964635991711437874572058380890221663130536237486153509311051722069916731729143113838362679188860553416246707322998072030514430331490173512401975676279571053692198234955746107094640536573045356406764911196686584711269861962700959613494804939612143855708008811088767878761436400712526962296782722524885225422740748420216176549762516948746833901843103287291830121358695938521801463397374677408652171973471133302768655842655445530826920967356973068104627672360039376434173918358194470238370300975412611269661268202930132297234200907780770637942152198810868024554021743949734589277970324654067397265455463776618672739401706673257434900888591751506950969982833989122604114553443725995236454203506216809699207818962370218227627010356550598016150814633434550579080966163975505421345807097100161609129347161937421039822800022866976961478561903696742386205909359801812930589770411828958936166576756560025274399101238585330258474538819341857978751822992933670714085023886074607643265075166821514643709483885477196427370996468536952439738494810437721033426551536780012811709072274123831106867603695985281834099779715054853477715880054281077704232727877638280709448760264864384934184795096834918629065249139171857530856932537569099861458965567126332418520632110696989086568089967451854874398003007700156421291326816093480911644527879740738263172064071522619438202845178691549705130313610324286109621952573194599392687363500056993241805674735149754519449087271954077835944902675292386416466059764592941463688026280508786141380515470293759807211335571319819742079995713971102264261860055473541068756193117699913475042107847155625755006332156028454973847913231485542799349872871714396529844032959523419207801683613413693719156107979267851679300055226733597958806937993921563468199100285534768233505112014777595331469769297808862284669755269200486467465257534985079911699267784849970880555948772341847583316261408540677948212785791557328348328810089247573560309354635795863311715728823288423636968687136804883546979549753094478167697090739017484210430833080019345623623513260624795950790015500776105346056397246238631650216884407059448405072746205369474425991193011355249034098802408612269970041968280413229319462606473623670357361552770546548454737520186402459248376974932702890980157973544685089150880747297539720038501136364008017760836238134327497847305573859998112044627777679775383138340554324984866523937227565688167897472781928683989954592260638479455057078394843555107426560013091080760428067827278655662429029901874003331671137255390106497503635027047164372936870609897337389979625076333370712121408161330254643159507687655589047514254780371061190642217290180378346169760044765907006001487429552341626466487719468061985846601758532846151761414627465752597612858918899943095002158671698165012229219455182347888896717394955004353616712900294553454233535912381843063022862867609746613535859713308511573957542884082361935893747863193789979571551760224627000036635656703994519042486800916721302931743334713519518061019452748486076350629097304890124501550105655666317919749391155993336655445683326760431089910518362946448502604732438350350844837122922304009064724010741958057517217109946562032197507761863773306419760779806706806855846441012615169097654932436477984052833468077658001570268859034985278600295608004820586889028587397765961466337024804532344003413319695484845651511447059651800168351566196480062730357346918111001864762506056731912191663348664374283458069043526899634626695723369481246067397518279775409718910292412119316651972047490801279607174521036133857362152542755505811374765172815086496180515409044994712460551404285931254720072516613121538161502480484174330848635187151442264068188031857314927467129462761710215897340935366644946162000273608009589906566409239895333831632584065548203813854497409997059439078879661961078696569763007503413039591909322400678539299528919030003102545696436605491026974781748795911060605396492457725324524807661812866349681879125562770443668693245862183941295252758319706829552454823109822214334105942632781989614850293799715612351785569736631225633549701568590572588245785123104262432198192816346657779993631951916270066117017471150294082963713925359881710213923501325569820856017621332489562136030050704232812087236428359826409619755264671639264504863458654115916589019795435974846650499579215688768669076060881989828322997994989213958288772744649634517984914543644754732137293976894398571223035071935481063866706125232875239521435153407375570795186054824338975710882035827951130573970098969010231238965426789931421837341381527502672873458211404007608670458355743040735787692321500444537533431175603895131488249586059741451420177793806503815421186412371988602931317884188646280015984295111824729432795535890699570533637846327614211068234572063415435198582176164497983062125044708280093097905218782909030528849623273845849393100119456038763934698436933061004222018291437753589976017997389729965935320287807915693669345823600995825503422531790707622728438714410194824271741735957895294774853931718953091260683996767529844598655298463056976967883411214661802998041220552692144593036534127608717353842173952592091267296811103534957800004875576694433098061078354929850031938278493051774432718068397671949816575555502313527771803331992287553118251129196271894601740209255974502182428461016737854317072735996074357179208056680457909060839418797473185153844680527017547350970160658939720690434381951196686705600219301862623308959136564600032186608094536167080492626427331180757477433743175186254849059218031486590453088701193756932143282138426743688829278419765058580954141070556101516327715599606298367804067701997793555211847361863162612607761467186507431505779098095075490375894770130269325264501064834792108086959387893434213022281695826145022320478341661256661048567613294151112108119859725048101308437545424509139858907886150268420862897067167735410412847909688494264799753227356927307473977500325161172090639445963238589787818547186983570770059214105784094712071451562983494165008972990412385902049499426037447834330166125642342192048134033678176727926185383195310830983538837017171864251458507798314458336426571611125000059398591437999309042274022939163220362555591011974696861802529165214612430300006969126518292385849503332790560127295601393107753424513064040378317865418132306450324360305544903122656870789531050708523340214782686800476106485361718823335229948944697935312844690961482990290491072755923791690566238400431945266972517037313307335733620313398353695063898548182787512444728613110648384713163862881027353962150567393678475366283113243702123089785025072255579283122778104586021244381177086964137897864503888360666874882417306626606067534681438861908111677476172748453077750433938919628504511926293805928929008232469687774855863911979839668121543770400903541525437834910513368333938140615056050659400150030758161894738646100361593156671477870624360124470719760277230845532124202550743987555415858366160335906334669134571144079145533252665486854111095906458641442296699658952139128393202971332173514078742344994102056935874859799710557484133172821755269867977413540411417231962435141216592747239819289622149204279438644789850748640565113337492307750448736073491718234707305506245458626175849862818135347056266393234680029818958466624432760852841490119288148307058327646054731203502789391589342882127866912812384780058628009224505445048100598160917090086071674397435236179895143524490392535457203470936098166767989864174526272425310312415697387253790646429072458776471359584600522912134901096943441669164560001986118138258801429582477706213698488196540213405226210176281575927922234100533255735864264360772739034032065177060804007841821536972905337635985573849934612031301901877793854701577045558974278059950760481333470510138994226611107606220020803316721292684177226939782595366329230194343458592115647960185209992309318226669767679745891746604529785773245382665134986926351426339244050643176341194205063589577469764135540768340671210096623625925618102042425910929412070720411796828581280867744747557041992323690400504346939491121757956494922467642228768102009392174289282436772408164779538487618173592032731520558722100559165727960085653063949091697618214555999986766837875992829102930872109131790966237869951039627061622930247607486066027270392219525761937313288831216366125631714681269951835635436729872552087895438554431587033906720592214303454087875937471696756002467394831813931860424473502204048647971399718114881794440469747825165454492231690627013673347502196211874139432995124795629383088262389367564006941451010740551887272208847294145713951976085139950214279369072109959058831162478344086060406097021532400105770727747394511178205733775960403503954273138197235038463528795090130567076955366298700973348094097057055434815664551993497748974517959264470908917422364327528549629571240597152162215646803986245245872664676467975672115111737624612090432594858782552257222110188873004799909538419000098560949910978474978037588585716972718481124717210600585130448796795239710131609538259385965004056428593871087825972754435554132647116346252359469937821944467911979371682658683832724832557254754173948117317230526046598466572160928010600549561792195122819871430479727717645555751325688138148146757826321013153297340662290833657296853736650564457459034767492970987858079442510116330544499474059875179873584829190342578677638414705696314373455798995931750647573407441801855974810225232798218683219663073370009219986805543177993982168074615066555467389564374501088408234325365504493657393160646085333408073874215394981519389364411389966277922107416721156394215471470599856246261432436205457896757091552165423881964972449128801372256139683292318873746879363870395358160634395491781836434757311176614187967375681313514024081198850403005021513548648775202896459244521917445972027863388427377348209502502390784440336603647055874428565785830257021173006618352036801046310786324886510143568504967065134896508031568816460532857377445574965128447929879086737422548182131940395422361692943098019124715431557158293941598888900090774719120503417367725663096557013503565819557657950586915508972337990054406133062016969128654023613951393319324645700874438997801859271145199779144867309873460880862441430299654381971402656650973100104654163238064338071843761237682087178171425644972143830006660426870316985680929743990791606058907307169368562592101450584217907842924652885133627800929196185063708852842340512767324149879696489878929006663583617621289625971276710352131597104467954733307615765961039874010851837316844225749436634611961268368117956289300870117039640730220129773948613883668535947169462703419820151530800643481889223696748633552703657713998575064779101454163153255746989823708239949098063940722623076392500569917870695379536989706203375951807207064546053291787073892804718075096977240580393354157281398596517952333095524373184421810777255750345172652292972998290429271814334371217411507898255535011695973621309654362586259997682340839352657471692337338907819573603196834483102840257022125575294301606082420946460027108579380607251706739730651247288114253337423695710778640771048520101689504598608564291877199928164151426378048936208619589522305941535745781343069118716097740073680222554194976606714700474745014953233481422423159922478399329352433263533530947529205734210272286238410782440899392245528261613844514034558081319680996357841409920587592051658523970070282498857863490916561504198414790044960747917893888672788598048733010047221680768957903573916273242999927951304476598403667999518232894291622113762055944617229568351927354671801509112877482156672676935159978986804343825426107310341379811843193306710761308158288109087517113530708426319663163785053532179022096203202462094727287373817470465366756190411551564511018509178304215218221319508651307846980845176065659007394888376067498340889131434627727886702007233917423066250870548158284745381508600531107507270777370402514016976272218035061696756875977746221682947016179181196551822080884781999880339175067717996959139316019955846603840227664182795619626540219846717202009695780169196669482707097055406147590817511471307661900897835958297898970648395035108149784440679044480308799522606865838150120759105896126098552710926741591543399699017546628961520674507219229369177702597316065152105541768406305292578660017913848700509415076292039676306773917091807872713278247424558757394039336987605385168070481064890865642937037046480045515522902418804273734040922624422639725946239928267074309534740231194109739283348185884068635065929508293753730318484940794160372336377030502456436173684012907893628154054403876270451169142088550392659087466622653241501926829048314029365109160528741999408638935913476930780554912946181288626299192240385254024197149043165483730809614552604265618326127279610938300631497589862973359168038351076741891028571452749310657077560611563450471703221358901444777551946280314265294838939411259027438248465159612269766529113352268014251755196625926539981482845725385497978700519756671141131183413122613880388227551996190281792190276684868289448839332487549919454432058113499069853521816221164146167782575511362743947993120842443435883544117253405707149567545072920987491869351462680914446874900676946788009770018231485320148822632606872509785472681046780857182886469757443736291094417512611571816675726939447175506335857239809410081817213078628583689819560949291873503099450858911048347046059311538941480520857783376369970398855791927808247886021734196219290698983034507935955575924479612545016889220799658989607732039908007985007264729242732014496850106370574537300553830439280550644226751741261359284265514069609272843542324922995084391286711486974377850366082466499076287265519860888965985116233011087066946333092019376934512763766873706321849320198222885714278595344855491922438961832882738086710768879621073884683415283903267525393664589384805946490634893358873360790876676524990648003862285394866116734166402268465831279098746134931164437435902840056492101777915761305100049745172519718502404924554149294345207220573396859707750168366437658323080796648206747828375479342302924026516059251371464302022511774048820197973149263510288685979834755571134190610421614364903782869015770766299820070808728366749840768609663280759466316912159921608638537726615246369750260375021649523552322218787479021202384680179051155145337658511473418894239086534098822963626967573355065777252828169367133652757200236656050582089159752266543618659542648490851104714343485298312562559655340248492318873344943853697426358519933031149503952038888845351571228474452295652216748632012101129948565087084739463163342622289922761758569530539103929759878489143755742746103031277503348325181778717362355412858660541326471784163967617801167810928832920613230813872701516694557578471119769164464909442966054004227854023951458800784514476967596715808741352155509629284094465779254649792860328966233908374585965156012099159790200872856544614361151442253783230318577346193509586504665987472329908283070746180944051894605667523525634549262232026371782963663641231209725381458123336320558908588278066011806859109304935808014858789053129998586983552595797709700741206105863535976216577654765109194449555741000321922084416971933005683923821485329831331042113633667691465616827910719092822993055039363666863768289696640571115517384305397116280263879594774311416447921585967389820679009401496798762730648361965441799512290793312703948037851418916281644623806932020750111767603829364647093132417783536998640810981928486669007819657426792591316440712812964963771050486193862610472964278199782355850986214204596224015942391978244091375083403047769144348883968190431027493544915040319613148663381636870295725314138396779865389376521633952470156931689068160473189210766396518351093308410699675460944957793434639602649182201627126170094295395608426541697536972450527740086884003682002509727603279002097047787133607558710348547885624322665031935352284166765782718766830110015055738163388263290146497201038138142708265830346050417266397796864373371683820766285050989843727127082719032350297669506704901412393791920392010820355827344419156067413805362338428875608424537723526254959960803053696644810441054670711800006110549095866815494645183187754414960030336749729565507036854382961247674894905925313836792335937450142390514026089969404010828155735999252972372473464907968481869384127528569362687530955479646024375794420857637982285056363524163706475798853420232181514213846180581670920740453398750355708250854570888811086525952512904158528117224650788418155875930652773525525926345938884773501436570143701982030792745280823074745378435361992230491631322442972653923137525098020647916894807833500268686487973165749825795601483206910319382572957908028363204483541734778706381833891632597051618223863107407923689800142104791968195054907839295974477418030614881518198914689355309839015954987264604529779871015155209251922870534441808943984492319554790400104418975949222499169618110634967162364533965397110805801386473712899087009465220625906598069874172881385910243656729222009597144583075486855023816635826365477314018361521027824994216743976805729145492126967020184675759043901837715123975895506746806409578241758373510153931147894682724165968774844503449915857875836371128513911112735744741769381639732905570032130765033562088101821883227594389946474145503218441460780324607792023023408214580815020003330166955248755780692689854438158818064917933403949453183887660342307413132225876564867336358430955594046819990732445025613555674345343607413822885539542662266094026603602025943293522787705097650069928523499653128287794946859379712555613516077670804724876877254132509996746465170730754609788945020779865888208348656447501416072391082128930200402247179340794850843927136568413083932048648162973385355576882078898783844460526284079220453725185308775112983757635393779074518230392936697937555928722310506142830973370818055473970474637029088166434684027515971406071440211070575479084791414313229031661612761981871929446535270089062461776392667750655232547993036041352184024348391068971501548168324171506604125689154409580779930920286127862793247158831624517612765722985523703451781570063052844837702190490969678802715923240126059224614828077707977477427513465616171016769034858567868355487999552578939651153027664438101171486041614399347672597901306546359223329426501585274889922438097201962735239427085382251138481510960466810757893300955343077384849724358777372362075656336209861931538505809560249449191077511040456184945590687624624968628699704864120104977586395832453202081471079108522084029990524214287762635798559649286210516492477835303274816245709829792426978113170507285371594229138338192031528868658235585759087853947629440182487048026591381547374307375878535605058073384689540557995302753790340613230218462597554136325857650246599442189039045035040708838761045254266744619178761415250572638423083142096968569392904109442559991669158460028670177082316328966709543650563956861326791850868481879575763199019762127568491577496651743398578185151539395253247334100149949704367611808333950784135646011904926383532533558816271858303050633531224592345660773042163228643675593644494365926038548692274803068650930091357630739717610674459469273479919899828405936949449131984284623000393190738341195653384417732746229930125114468418231776277977320380843361371741033964014169572992947376653109007002090690602166459473793956212446406333389803254006675352138727598512645298701717666568061535931514972928330051580465577318424179963547075604553895297130500011776301504050640357027904333845422989183552589613913561575749861482513445240046605053941432356473545715863134598122453757834535338239876187738835779457341705538483813858821335291893581156388168661484359286532800800616911855476670006288705203076831655630036715500104759431076048035492715966987390391842536446387279489212929524429873350121588455139906803921564621211632106486630865503765355930091884045016172242623250849140569584885320646229501656506236235709318714469644771406309741909473824272770474309543044886881334619682413100900282109393414945217294441952568878923088961976027690785015717084626508422826948888545211321664633356807391078503755630664454436123679485032590618680597114036384467444533591012339472888661635563752489145923634025700640372493763591089778964287053836835621870716725975980412290686995632708496804102878076905444395023346451295136076748297397757014253413093450220669662071526602208995666806102170183617205514378286443818017815334430989535836478335410870694521492575901566158713857254504600560374368288565372251389743193257081381421100128718436138730522114859294946994532505646660329972849933243123789195554479492621431099439166709524011281666704214637093266743904497669344528627681839478464619726519924598158178243120932408131362864625342173367195265756729692404799240548231173730176176871092859340101884924939029437301231484885937459170280182500468139096587337319611258232085654949961483564158941533697905216064976261410169477544758402643464466427274909168588529165658973524113262214777813703009979318919291723299462775908810245181911851506833614573121740573220601463700320988976067886732353329594959008286495783342166292860790168046386656015529592985223143467495796011342250365437836808675700805910969649818950529122278868711758958054493250247445029569547411674082908214427437570259977979334543280032894214710217927669357100042158327922529241012306395467763710347147264728498268513443786962348171197087364046372278282445015397479093703990460301027230139839674365454793890844834522580185997158182420967384040783610187357916799838139425440819353303008782325205152815307988638917777181009630845758416403398965968443100793633499701814359625818759155680097832246187984938167715203523005546962788943010726564637772397891499147557385382661988223381894225422492316080971991518700134892316799099313901495272507906443413604924471418646880659749832051183605229054150900196107825634833059431671982515466749342665533978959687593896980464946136122798682625465681767685796317277013159555523041715065049358762262434222450392199035295746740958841129173905739863613553227273722215722787342949361913195311020686687741584396236502253524298544918496302262521066701074515999871055282491040907402845746332963805946031269376345104996985981740816654824352876044626358646582954033088580286659113293072582329748973746811944323064277716312544740284937844931465901238411540849856429322766438401095207461367272316634554914755920985108309860235707906703924883768069876679335088084924977756834400629269595426147352729083429096432084524092997885825566556480656225420431927525386736842077507702595845333648031346226491829716310020222358588406238687822992547175181391648554771277432927415112605418393372779523212452277400496181657756316476082047170992571482202531639585845750996527444301199193527196411722612803170670246856469244746558022781907715407891302151764003602786585201384132016846453317069579197156684751881774242501512878260444412988883879229067326870145598053066380130864950101575733848817194294897104271493590337306585881002954208532070856351255883340843279037250010183999863906715631323507301907156447533676718879319539196655337442537767747042539578821125645845292312308027731463247423563989922189968459519138981219479061432229436838742083842412904458606014770788195178660480559463590629351620343125457460961434353633665779939458441694706824294548223620514733881480238892547662704943985879893477176077094078974548070238115073756780270698906981201990655708448705921161132353266519428942058758090827730028754471812011324140703960694590719802970281219339484799607143001456961285913655156123681730972963537844178778271969973130023938404359916747693937940227028880738069144014146230883002101098622165156381674347841437265790740713134984306778691420441104888560887808995621310752940533338731410500992567991705428700793635932403731580459411167177786190761840586501224000757804208139202086067222512027223143591711166384834692358265726155078527543464849547830308750326049101816631490067471544896521110745750244271834812552979156935160377753758679841504814470378956600326130328960241065042984911501907145841088503665499669957238726138936276602973360017649072007082606001612448628765109188900827261281720554600860449048921072850197009863517270555416568793637448668266446294783724025826070956386328813566067163286130545916991868679151065651033169737859278878093189239111069641682202347599923887697709827573091387273287044667087908669008139366559696490494520479847936312686546680021548616037032648487659994034189230793184140225777923336972060022725098106135588797321203950893376520215069319636026043586381759150035711395803191889456823770500300531121079028476485962772601060412726516542413759982397370030939962048776626225925698580302052221275871111494504729907644900138965688487399310174318873243942821833046262206692850594899540718941573471830167290572951623119235965742724073665073595098588786728434846900687293036205624924007204605244812577989778657932268026174409560312196575935553193882821903801328191217096242032747518500297758175233557381305123813393011326949002144464778816028482841743205295560691864210004966846871212463652631957324744349398142580934535928357466625830486808448902595284903095541026498745885020755358871942985541525948815963169542598157982831780856488531998721241491770461996332946802340833198922825452191815317598425672785878630044902933949715846791732692704891479571143712865743416821763748594071225955139520198016350066743450459651919393935937344537185396123282660919469205313839271193554824647948796247733534296404643858101817964276389036011267105167333295546235251652304328918827057908698520848579782070932092802904660157538240842712505498900575898078656341074585233142081799405120783514661521634762804289702763013602685880500138772332360975906310617672434397596985861889816652715494615331429310174980511363469110927146769786177582746545408032495325835830333434040732077032675109561907490697980137911035780688683223078476630900084264432871874322722488460310229356496698475939342458804073238053697759595267518404039455596342317095484972572022848877348005996526194203526519760512042437299478545190659678534556949777005019774477222196952449633472003055927744231442930619303583341994456782729551523030360307837867227429258080768965361100952544456217158333972068324516944011059934971316780015732113659289202441174727790829249109349911193761659063902167939192825406229744247163059534885562201174059755313027182556021641438362663025915595717156609545469368359250395767363679480026974878535395612691015201158895371883847868959813168264664958559676097616315973000155722257899961768409433690255780558960201489204603804246933442087161410015878017692109436483776100559381720907546417590707985648991188650605657859446988931286232896942817240413304837193227136346529193268189326225179414706619081252916617482859119816476986393981447040243545310929701685804475011473837707814297293822388333965826588150310529093808828182485837274372058040688916399809072718056640352160227961434890587454193428024728833696151049398125290480323506109938644180940768036433314043882023920831204164665968667245328530109633567149967856166455454001956189204232394082541081978345288481208254958582000078534148181855005805121704788134624226403299814573555946935908385606136546587370992292006679919463426077729704474926761193099964730556157322524567410397445516983130965868386058955480163500535318573304127504406969948753919976497977069210537691449053081426981911283296113453119968007677262232381974007253318191975563396708935186846361659301922242964643238177356555302803492039810915234168528168007962956143671792275189199216765182827919307344665681549299523545073252409794106868879926237519456283754313913474573377421840078718955573180908209812242726658981684055473462905572033483660591048864715740315224554606086300086996067493823476862294576660879518326501525349148751184785176899482134504521426852628796920211943222149396116265341604945415354924887021031068949584951191531750698171438327823731844237292412398602499552457698465075405500590161356587991245265489041410312279301615959058515685938835358239318200198322610407349989942607145488169017732108650217403331968338305563469321037045833384833640864471621717672992388083865938543971982774377255234789836355274523841484109847455236145576989755672140392344229041238953707213330730317509584435468389989614257593784836634529015087475739258172803423755021585073305996585392215162505200414438014715401183791321902646856076593173668290575603784082257357309326736176087784135835462995189169013643723947624032337850944394961954193390190606804477391584894053320593796696183830630588732576413238756021489038112693483163372528249673503916316706460146493144829517618726556350118121459022959314067097326172488369285485834563210905804635315718120883528171209918330428537741375797606053468925562707972091048036550053114107334442575117252558486567787160635196772691515267480392103856876104137655151188556385822335571539185516448502063577562505735048587706681115343649579090579782598838076972807182179527624191087422625105518828702371036610679428601364155946236193450649318849890960778739702097012024724556087675138338530026246426387678666256219382178693007891445595800811602149784943006580478607026436987450214643239369024406090240819013107540918005374903043774854234282322580492979708772193249590478692916308420807062454027649708760597428395142839485575286684576345660188551233942709799422812747023474110083941293857209672734968496197394538702882089079225451046935401336253071833846451496533211882356788831927075832426997935681138057266018266688737194195994148387442184574101056147535163005940599537203856492721330553101959745790588177544747323593460419122621639534081959383421312712828625787159079465343670231151253331625593372495068045708458932946765955344437320746260138495266774022795693725223866559292674185426274097796453791745816026564180718088880518269964118445927313559879421952812835467437509144976125860434286410485018470341132031258946909190459520535051410195328262303303916763652961984820212294703430447312003160967039574596656152804695778733650575023472338912563069870758859763252656398088298110255578501338561862193238047365351427975856273782369340142240745238579122447640481898968610438660787721287061437534821511965990321442557152700540963750834728469023704611442544035483645145837347494500933855112467112494108742479816489099486419878068547833959804665429935677087750786122963945235340356611271605754245272120126909071485684767022629828526678077467920114837884581951663522942968579434325475766907491682310851949038805500994917892062818696157521797614967049864028667771290936206516251280751447481389863712508548305904816201187091427793871475981064723862406263803132089938294954011848024489210203232123047090565504692973718867878268667701787305278467969794254425959467416582816394557490690120430109096216554921717986666747650765994225378178818284371763894517634589934191126537386246450960317432813365662646181690300980105812179858652606128565148038395322309298578613924292051955709619918953097808040194473930211084457372857343060819624662404402884547944204072824105717580043682552172433982884009770782119969043793921408729555797939628870358001461828412117451190444205818485440290475309037674387903763133059157985101866271146151039241424930401998312673228448599201816537356644260758979264115039294594678899248887634913718524819960400252185046632313862471430225887860189748529386061672796115293045095071148879637157123522126250950028896563245992792315718687400424903321779445898726963394388548010134199307577610287655987413660901389030398347929672832929347800619828427784579377371862108087906576511904855449057129779732550997466686667898992714041041234860548003493796897073717900103976371767621725489970620018786604799323062235129015263862313918992261600369420167871003069484855159352756359353261227413902595964753039818686965183224306345928846772211885209035519620929015291224205659834398724914604182841652924722931339752831398297433593910143974265093648390712220480089831799424415982411586068437956046873671617782227188308703914451576652166925718736122935051974646678191107164739608902078854325262502030568190302341650882811213155180895060182720231843205782088810927803637643811206359068098707057609343967895810217237862799589867623977836987314849257284650351010828947777201178892098812007375331996899152439685785782301437928038060998213766844408834651416643195176266803937830366112455261993265256079537103155472885397536333756816127448022058019759419754634218377199577509366855159471955374755419347526603380710835421516543221608225438872656918878576755590865355892251478564516994639780731697793365743748774865689437115438136676521024289165670205528701156408047385382942785839535357437510315575743397686136465950685999605725353960131316122567520302369120728664931459001991589923420678045937428380532434491172880165901986292363696575191730503605613844323200219610886883961754274005686929538411098197194666727371020252489204894780905095593540505730019944621893284836908133703415054763768771778285512677336226607856074704875611197242295329091113637281064281444967193188327316182320371125967339366992001181361363212038220098525295085602404167898936853773365238349064803170752178582799828834393671936166109374524932998768920982730685579828331462557280734317246826500867070488735575278473725104259527722568486072207051667561748885868210434193891092070719069486178087496018511466316635182355251472812699433076696804270053361847712275873908600220512909604256768709620915236247432083784125284186353197966591590165262199601916964944330208638145615158913602727274759226838217207664566512517226550307813572900133100939575456602895825336742698037654107374233630309474869418880843123820035692894243855848339371368161028972201790385054098447123905390800081980911145410992334951971845441353156397267003264272097439165904530813565253588861200187809977773502785986137808977924728103250908558112163289645883162104626384355456401745071396935007984361756228509702114142411405593323276589733390491400444193684378992822849024420348488985863965314986124669404776962470745158287766912979396356950321549332116751910885874607250015606469836356170519662391143881845720205347454273769949710559013475287932861043258139582958971990538108056369831082826218131008615670196891097428239089603884513789101920417050503703535727760618198445195974144192927892243270863998513365471177279916773425910918136310210516775771760336815568656143247424249446681425911535009012312799187173017877782337416663248328016431870672481796954353356642394955103501610266223773945016332645576090799869028230837879465768374500643597870408975576918162727548602411052291532751895169061489925436979837895632141147655724811470648258670139932476308591877554117275499222519004226203200139111165246161526616346667272730766014426874549596606738488473535571793918975247975466929546318975674783027433803508719204720819484623470669996951129096116494778004135734388934856664636942208634821274299656752192300135209722473737586089594256823396371254762744634310374112482318075003737297109841936660098388120294448348030313102060516390237963468166247974592532924743140659655603602351080078041686032579863509357726891309877693033760464440786999177098540045828335590933094475639993531156689049723404333488728557078355309121255616263866037455585176066472988496400638656220486417087150035684200901769051065711067983972255066897519444658526928892898263538409841274514913236785275046480846661255780928834521587351655212533328147414172817194363433621715328510890831718385445924700743714335129998100046080861692913166239510579196730785165464586686841643662576376878665665596886178280257897049884679116065980395839747741167490750422550681644679353172782993121904577539155764005197885634041427837596350032643884280696873188562703334211038470025129578103969273409231345463453368972207176625538241735519890438485061702279721388720459391558764489105171698784225777097930064100337751062836351131636853693194758361535940294913851510095452568859126133338117952767889411535249681501684693657878900080958961118709334676237422806043587562135541503712494377884082932342658250162346564287838825658441287062489117414783359713278816662512062376219064488706915568198398630557827810909685474984613670883739026646968220722222193243385426501152538482372001787191007471078279309255030057421111281615398569528874287011593948973368984236660769965227816600518674969996185522898831059275560164156885050662708523439090259297123329830226785867261464875942795401444179730167167427594610886595644744192127289409727448913502558774170638148676407764909704668123944423225812036978724256414839051408621360110206860794491726838392383081658899204203456362681283655886034727550343939200777360724788023653630352604711232245211501095795497149592447575141562692121417287588253588834132090169638507143228133177537636171543068459280258853725649621041907249687408880908520077481203895066755606485405071483437136338442926342219931226294249161325861206235351344520937906697645413725579722676420732252406939368218541077572196567124313605111188515288867505864427901063132427003387292186523748196607476596978956229358912773735834329164220089745993448357952731853275557174015941203831554773627192991972719467254268491043661277934035152381362675481562132161827687514882304542441751125626300507164192510713097502171200125437663838304756333417662888504939176886315067450369039705308028950420932531061406470301430239356616324640416315568959271948146254040962488049880767699239725920441431512957157039458459445592904836325804141968241953910512679114691333106727078129977989835698359160089503323815289927951171402053185418125845660107597549019959969625335795858519518309887417383377895986402000532037229697698219453441433015403589039143668671738946498062302732651705761292951755868921974502865957778702837921265627756702450864619585864133706061472596226342707341779381709585814630390226811784383933222437009104411669311143931891753019434792743786816333540319839588878996984251504230729667490011064494911397750623130033884988404509394899659438127900329317796239050922492253513844095694312938508813587217761386609183124971082472991273127651919436687718314390817304704873378080468607637735536701415864484520815704162515466004587297466073380499825757617677314076242772605184634300863018072264525962416243903367590545745125583830249004404901429380039664902451935653243318771992379113364147439682214479833255128326713272925273308425365108720587418068043771106582133386756737360513363703214915735154343415542192466198232231895260434063624521533760034254087072537275074649026651126491363422901854731448394040814579166522274567292152924754666110111676853711706121322057888643569142303573946874560671771782201225248278026972208516945576629598925835305062925524835142304674982611935033763646304241990133104365500857452261585005477969022666027872856738232471522867040050623286606553133366435438322271975960917856924879712241731985101839697453116416686092959476255096447397667004163752186224150427966206582502225370678668304209637430091695942912388647385542953997174278589438066282661799528897819077605257549187477168645140036432289672601705422220549940643744283021301089459065913404978060005486945364759677840050127008006190751087469091849562193016499690775861912697334301109041541890005976161933794722113717854020063680979794870471845142302141322928980570384037883392579657432731710435431907242579337779583910126981052761542387187890177213725099979733956704673804190758563779652293508446847426303953649259172227544331090496523745003852541444948187806561404458781545400476597474531319564727315604066299156849817067492515578485996763846490895984404162208955334195057031696434731964852938583469346037241354298063043517025654443846979729577881285068311492467915837071894698806198503287545318458314993608447196520868468353726931756982132670470888878287643944437695374945270583871938381816078484034756135031280702142413665295365461120938036056173619306958875221556289595813995925186094512816861996193431442134812384821414515919399750388338792687161411994136047457886658875166229563223658910224395108109921720553550476352434705333961907608494951534244161247062246353955979298910099628499093548632287981187299532241196019358822404112602561922986312188204374714289013416399116471499130523432530327717625582718494841154708091909027221507604313812730313248556652363724851878966394881271787002100433303070245072575281753928502653249683766833109458667231736833157084295155300102083365395426099614140366337945085718401245138495958453601075864958160614479371175470369331792955755315153188705635886155170435997837970097121448083876180802438840801315141160734405896338870323284328670863440835764765106199490067018276717676619466376704295957172574851330733665601384186608699555121591303494879665572950058845906849599316674071145744282206709528673353182189381354463038807394581530812445518133048755637432682265401058649992911931178845231050107647791468937486012158464133145909050107820620185628800073711491600304740252197942961689357196215239514529332556213910540147967578407676982652439953387793264314014328529934715388253117351291465584074643765411306918835897900163960408816766243518311697182197675684445933637801564776447657611271006896985439635525942725974480971829218199384479681254348517973988282209403607646723318575149542796089723982670160991863124053348352359236495741017170330397589857675424199597232895080786359146150544742605218661112594972455135263900105906847283836052113314317695765871121711580745140516355855319380705431139195533642078405171449689194425499526182336805648888870566164472149053445087768764692688423034720546414853593038293361705706940252163446972999084420221228750502003690907643660174975649474993486575665407941497635684519656908078801094235527614353736592976489210288135013676726448834444054849078202596868123639639141728086578763675256711204602334115613670672224766674067138390153073862893308392161072645875244267277001704782244550220732480330822203933839384982877088224712822174581761343150507271815582316831775387162835704223697452975875165641137219560769074183123735336800608221944083534103986941647399882423232798720470327897346764756924045213038034250076863309348280127754529988250219964814826086371670490353325870092844116781246674144695453615666577067444545697509111420931331468362471291048596434529626076608924461628250738598198857349742149567274246768096626044068678557789653551244802875511982592338549725356070091835626906616211355619960437494194278081486120790088716292292460144405084873203239776732258175932792632584380884808565855963466456450363846004989811960590322181692676847986015011220517675314752717242993753260927718122713435084939382089469366423245653784732189301862955338795234649388395459422373388265492747012206991459191001935055085022405917635309859358670544413556417218305638481875880574860170461886328940036326978483402555729585180774188957654644522056120232192017154373083495629071418123215573794019410990869600642207573539201636656732758208929898686126443572900824297664907990681177528418424988865987758659033585718710330571690009582907365723177667478731495116641793337105274822196803653096955800641434374945071099782890574513244847181720249102353886128639680367854730402020614850104443190440647111651823560862758857504371256268208160600104858406001517063437016052912087220200520289355827093136093501935759577966607163167207966010047741804851173913286051513608623153165516237404116688129575065098875479385822767246679394857630085608843361262021490640971320461563147239999010771079574238731922906708592715760612178359669634375380763603901577433562961994945947356594593068219304733927535284845989952594839756880907054653954732651533824026245646313171397375716210497813206948158316496382453309811428308807982375084821056156528281538612495441208349444181338797949031922161824669715318071627086284629156240175823777610609266845798377102028019953056386762772418070448338080609421412880330099059831534185025664804578446969258392154797613989365170875727997816476762879638521426821126742815400587035760223733222654527223946552173108006483972292013499993549612425086507440803862736986036024386862949183882367189426150564626022751176110368574466819499224485896964529000161548003218499028336500741472314045155735107186369019423811690174257236022794528493403937768032730497340528142018229782551587933907360315845537395417881963132772967223789531799602996072968397261736801350119612188860832393513780373118102706846513194117473182151987128828540388567981968117921447703317005478089201951987418445717648974877892512943995500806620497895615491863389743673006120370397934604549270288142885355192672279448875009580161300267755289806176344157567479468222436183666619934531318371125850090061011750318441475136876245111831089945749063583068867215189846123413664154434239132685138673517763172416302779196618336198275601438298890635623614281307154170028667724251724011958850141849542747257249683150381429431093618857022307882474497603693093304689903729834534580491828645060425147525909916764484913857453308127809077944050532892001384388047066225741065816269966550910005382283334008155762232865290241360561861147090569048027292931709291496154364037251629014014427741884293315235688941076707641775162665135992384681688171655942633758857654598631469904324895406862257032000597732611048254334352565254244782102658807467491502507730787017903777146387300270600063801389402526111459332683299455421701701436448215866808149561519394122879645713020778236366597624176158269459461524964984941453739036282470261731915553376211723659994962540813960033984903259254031539855566426696559818099354430628997479433849030974099858192671420195882678121868876623615080086250990253251160399680300534437048538112730667296016076680978609791899193263875689680404735064317450680370201356220015837926269257777843108167017729401067810616069365009409963676828838866248846578386953847679149734764139177143209798182193935539519393914591640694666959188759389113754915737391436992950524201601845892336266315864708646229506246992035838766178647505839100377233170532991714515923183625504917612690803292162923636750031999249088472537187776813723279268047488415145495135241060915097894709207840258745924512873030520281155077341937729526769969330887645586760297113426567489314675199581580307658887930326044079715248491353245052895440220129883622880540864713083357691498398714962834803023723358847988356500191983963812164536678907918220992771501450477905208225550273715058487128010473469242515713507920692750143931363810364484799403730919880109493943362274406991264460598668086576751499040039230238200847947738103983617251654372460389491299321445709008012550123456371566614400458884132533214697159505285339981551108540388155611327070800933056443091109584478081309467669539145896044852909902205641420502304169406010968963820591651129247788469448992381081429398083506534694608388065899930589079789714764364436470189026524862135962429019413885960129975284037390907162784788831446663317998534166973772521326389280712089747211740227298876920004493515153486675382870136678280702611988525697265831771506118191866681727681249666039701597945045952791566044338086590638671152670899945010027048505866684178914001378107013429702735552172592592911314249943800714975420982297118590155702933883376575783917273816890104928669039196618272898334976967765822330785320967194436625413491554069692591110937603861789762823213968442622349439529775949079847491749450772131334713191417314849262533490795640990189118734149568334969733475040784058814882481487582131041309246040632468011752130305088127895787239943110288070192198716663006562560831423920594261021731663694181819352346128942288641907629454312337212669181834499137690831055583854159134757507896128018401245486888212323276898545317784411295608151584762562657924400120488744644977776125334410818655272101243866992852187766341315468020744391502450942027883109310105643744428173591322007033709186923448390505362559827369003633633094040553678635663159500352243011813930846069105813528698911457378578102243842253857369875484939624587352425445324288251697945568643896987968117414727857576013681093527310666212735146094491684280053427620504797929358238264675543859489304132652672683079610003609684321836018015538317458782040488783167674787815057779560646176475925527276812006653074459693445419160795136853303236917931946324722127529934862550123361077255853419912510919727468322297263150101324347559428580727161352411998224957533462468340024802027632209241600582578436802514087204188356929263139976164196452835743885796641274219569149692078817373055751797304273404468005452631708488292632258560494835502910081727715847380230615038533558146409866205010140068025522229798893111416364056817084378794237713089115794625073214933673274201381620943615180503125110080787316907488265042373962910614687515686350739804233692981305444098316770888180001102777635094677940546867797808013990488454507705408996737458577039774295540127746137716932175573799365434121300134367021712705735318521614677163186303373493549021705012537572537798166309409873313678432865364284990027045157922629992187895529972954740789721913093927593761728855756396024353957015396047625820374624603557092973302279675842584270801029248487733128011859455868196791349613751647546975654597041062926763549496966314938231322789797474677886312357986752684768853468478620776513274718305179101353816961008378678122419562672707977136093571214396766084938132383529897651037047917062223544241597868482058534126541898840674220940159560059602606875471604293506116208727650867737477040436817764829941350164384445452476834259826987419973135965804381380488642269570519290378706323180829196742198499803066745055975393320565792741187255268430550262051131651985679126801537787078197641113335070856163750255498668721763574550469461429679524001979448175139416664124857626753881734367113201252940137550640784925439533852991498213822455027813459634244831669983561929755483197913968513310362769691893957311679314875270151471720329714345459601318588277008181431844366549038007601802434312531193370095499864378043016474995962641690489908122414475173415112710483514903048293336607700575811894277207480955327643253100044904739592073038370622042884254567779298617176546223646475545575347814782136204532744465967812615637388082584949721690321099762278388828445847284959807562299735701278605507123784349321185537101183795240192485589149710354247963475714301062108117087313103172791117680287059391180239890098498910892640588095893399159347026950873765053602803656134387465323717291640605833723152857372583384830188635275080327829417650606570990621046342872932416439523765038484754746286048517871493767588897170011249901320531719843546178082668917144033485989284656017736479624235529634187762413073312957893248809403169169981657694799758315530268425050713631602903136805661928284184524247785686526914026167973046415845411678169845642365897239441020031113542983130175088148946083004577518106015433338404388906459557679396701451600627451837637547597796721035245301087546470636282696997464417191339006752451237675568203730706069958629173938870428372840289358334744204107383734151413802616677709814661586527456927043101348248801704963625672064470765152959904255127981408057537799434260073586143759494180598880381264621969138883803112349682606170808945024483898434476591203056901178301429667117957372610893970270968172474580701373641373359273973459226654642382774301735723951094121488734371250946347252534095224152716936617467435522383407890603786846309948810465059093423073899513016950480190296298654406379676637921137774013008481297015402260823550255773362319208648710000745626958694315862706036963911021268392165771134260503772166860921474469312586199643353028341316082648566505045418985725078080510803557806397388786398745799209821575690717644110002429784398889449886625733112778263723400637763144208385879977357004097695774162420235482228760144252931826193622290352451120900683015523041401907349505556937042195378361007872952618609751055819749874381765391704246110310700513675581049361137438732713468814115074285312809163613023813038757371028151506584284236984827279424229995886496546013973260088050779387015229801424779876222505977075969570068066583660829344077607920947661418851144834589387805854857605369885140964969537237024640011944458591550321728713488835485740215166104614387537866344360918867832600791316734068449511547156887460920729582575980230101797642428546725346048216377656273436376046637139931412563952970934904840065283481999749842914227615730417948818664273306356929715645206081866367062294032904419727232300075012475392769980837106967733928500956762798710973515298613493397227868962261495188004791624171366188701798844693175019067456905713593331031091580217812505439202788359145742278228914275622993884193675169050348899381553813283999015566288135771426170224579875999172670312543971805568475711816828553318519715449775835423724927648458492418626209378355622338171740563615116925455481796727488740244409512445488762168399008243958193742316985845733877219240178384605734939295610683701138235061432177009130005622856821884718263434563367890623300298621286819536768962897550550182919833103618745841340268322264488549998928601173341369264240751016450867631097264232238573383810273418814515834345473863638741260480760615008650406427283383227770098410799876645755591640784499506326557286777728830554364640971328126351136048297531654335765754390662469363509467004195893755747369904509470468355112816492982860049301177951321579277339572178865892533136268998555424160310672389029361327488385261053333795504960544852846911881741481413529489092484140811254758970258607582668934752606177715457954892969447630234086266699180638143590352778180017986160197783159181051428200804035951225115431468018067283987667643357875057985499448831305364353378402995970295573796175628874869366078503171606904262909766794080871866285004322401565693358530892042108045223304061390334927592267452124383450214127662329055530706082162333942231471311209899444339433915664468338370320430755615078267349967211519210179351193077121092117559974343180673513709005483547761090447181379120261630939245312911874225412597416066081765581440436184521458915739434197182635915993708924200777027678917432404735329610975671851068977497629497525762549390499806660156701686539005673973010724962120457856149077397590476022270343217839883263599024037708363740123634288059105019271234453015941003278882808078471400843965021007276193327675817666179125909449393008630767863877537958469043697854983094172070765629940095042750787770579964673578816694330790458431832564749222351183448747536235605409088294351551390327986261741201816754611641222031160516908472057824513654444523728283350092456883293688145751412718245322835871861216566083558178365624086750920939615945516954789657485549177675642474475836564983972298848027268303056907615816995395172590415275736761377098832940021263235257224493225449633979253791843420681313948639763488664046792469000446844206376941272150295460258168169304361888358522274306981468670315586966495080050497145728368837802191908876586519363520464175752264839763364938431150867889294908270071328383485016227130400376524916395886342030819974555704048566573702219935382213210211948740941849192635304782679860593016951594368006847253193766685766278970917062084754406078938617398071412800520219251366994286453779135323845659427987714251894340092133906782608060628811813748069339737276333603883431188192171758276462110958200421762434379997522326814244660045789907282906464899726462104779306198725312039143632925755120454862942405895859606126363505346313959289785076438615368265559546467339663703914753774810909505136399485031350760644029732047551893586393809884754518242453667342897813810141277728466185288399392001180121716738527365457490427756682496563744402940462888929586705472357602081246341144579979969961385270621676705644809363651699084909945855549773014877587523496912027529740376435544052885047566243200082550975659518972061174760739152620214413752080255230016626957621314527814821257680888545373650091276448758177627342314789179974971659912966954825833783669304654753595288307347484405079703423291825475767185454697214690569839037394916251141350294698123395523946713353784642474006724565435850303074705645175868697101826310312930238361402747863205342654895685456752830900217109839261402172700040008501989881736567721766813521415725206406894393711684262344105016614505856087280594851237675949982247847756846421296784027789285710482138515731351968684162022024844906949290975055361068997810888979023967199901644758326744460594274793948608966914651860510190527847154218559188463421199347810506538304525076411306031663985639753187205540031611969424343157366547985507719945292702350745990644554807411597545986754743305466505156557404809115195137536898851607772069257878621423748019363103818591169882990069157430520967764074728221899681966274690886453030342574961237649992079888694078909191043943798514056314563404378311602121450018110544446258605540031970667123473043669651199653879380442242841297658005411856770682807601803865810614241314296104597295596649427027550289998049415164599533135928629735927535136443461170272022143538347770230570574181151988457245559608301995135020712257478570141236675514293897327367518355121550479706430377110569648661219630580800826597302599527409081005889358592486394742059486026371553339374982440358527718349113446779385746128507828745887144187587299753884493812052514811701327299005732177808028531742512430069305011374559240829382522296828627605792758388589672495509085480756507174059756622253205066172972289134447372745207808469743439380103219189300883442563043993274662067246593239485971869943712993627962903368047252531580359370603695301494625395660006761714481137864766431984265998707430970583543182452420818573836344281627357943314597492936103455630645349108506493514111814920878926133019194836131654041105888219092496860305759050762085837193833896748725582085903901644691163181189603449137403012264546211801031491833348373986647171352095328262884244837957018904445004008519977027254890729934522730627367431461987206024162930543231722907902561751218602174569670032189554657858060943103362794013427329323988797084582919629085116799432484155702684145183398274037525326063813876326011445698018502795082138288454883196449840467473742541235645973774159316341288527878215546939539003673810746610209474427368896542030355567496272855687453489445221543886726260210517429952970793545025571854588492650865030814945579505449723495704382131051750216815261082571832550368759460421239671866617002848940779535877649798636295959520053683234063330686091487885679039174506586225261490051871615486576940827466987281652642074543562444619728945226969338278999308258718319095610153414891640117484088976694251124370437559778271880162647208002465032828174136805747671546830224489220514502769633673590945077406253309697863296869444393233130062123760832924241092622055068952257308290762791345813755107319690051787646906213205231488579687667372307431296897387049855941166584782833585430286675909100737003122749951344385530254267706525352328834333113850763233776964636178946377650113989285510153460594547654095327998511964931480972694162724579726243111754127483446414112084036777926401279157932851155795689062329641351579869155335608394211076524364914199603934104545687428498276613177823054042057009714771043148452061967961948803579530411543272139392594923466620378097149315814073166350002366057800640009893630891788341504472602600812956149121537932695144097865483243014801542752450671087494949366860697356397364899007716322938526920649536390432304571440256367887662827575898019434606100806454867487507696399305774193258743000977903648012562096044769223980107997013676734710322612086114023903276162794932676709832475344154023892042558099402234771312534263918081170574302977159050321722532717082549126986732009944373709892164516027717244188153762995911379226759087287563872751749998356361725355839548521861044369351074097267137008597699725386663925889797388433657543711539564803215180258060645588602252165566877066329722977824126931883438353907554579626101108642062111745566453467440206768481223613210681488753571659431209325327026962271375376977190595263082754332283088670979654032321498045746334747943287875970155994226060533034654150507945766225189620880756265335122723886023456550325319109038244203700555799638980533937826649751544523376234056310512983664556176352978486921604631893724011733209034925951892835621174230927001680338022045556117417583167520869318258045511139954435255316090345950238357376807243903195276766685025659838846154042965371344205918008596195225004674823589126214801441428402222174478803778757196060812073262139845852239780701243289791756916054251378334522021244615178961101899756161262702938343529075414258965755951450006807709458956984101565321323161981632265625552793006052451500260962715854469974476144530896312914869775833974586286903930882904718569776709956351875453485768038893704466858417738352913611422146853824995672176199128747217161568436239227872368057131634384613687299297746418904680217017280011237233261514674680680825938508040386523951621496592062693433092521644186705664208950551899617199504940946318158049638160822632443555094542856564139907370093297844333672593224462543044473722286224905795699512101377123563473099117774077415849072571724603298736532728085933929877301118261232334416421620623215789361407438294175617912843131781595049877937728248089544524271071083796064475138252588553527553258701302705579895975931303826068824316574043106002207827556681678812095677579680589642791893644965945783062203216746817507546309259442348313011379992124646521495248502073822079464417035775044025213299399341464426819486817604546033574274096879651673005125455021640004223365650210258929780015559018322465888620291465632496260024153197372733893696097887036306274429809195513686895531567742761744310748247100934388431350878744871943370757624548446494631948133759282648188884251630675116766233168931838171275259610436137249161691162064050480355915272354393156182341124508118673874882716834560794767745371150093624701446692262797367186198901926496731907347498890426192738817539877946333287972814667478701076285957664871660430023242294613631204613489411818884564270422903215177152131527216287161835948432159212423869349163305451255267352425835480668208524999066082147563678725548525118993641942794768196593263132857150719426597335229428131369932488266920535647854261881466869386490550341703594430388418093821840407149985824533549859471193318734932904491123167608851832096754289387968939020549134380857913825769278884849481823599011367896307817263311219964937790178959549277953827278720234307981769950985319563626812013073609729700441652177106091680071380378035554782260476154179000219404552796391046285653720623656806465732423322162272836157234930634049940344332777528873850930927924141826636076374092418540259964724053339020951041882675380110955585986745385797413719849125610307899028467708667972048612155227610382691996973801882413506318158424505606021335365461047851511015164140133573581227096401062900024282545594651478666550804554106644063104477997883281209294607383543100867357336479337280981773337741316465902920575624147607243353816872837697163010444719308649671074479175147593995473160556401629804175606783268840589557986126274981763086265613563088222915443539159727227497742981807952061198521598053646146556019326041942032683145298902073707378593712731208828826974856502561334253457232612109927754991532965480063010887816714038410639919999476509242712877108224921237181638176298750254868322198167578408136727567829191763255502338734997471667325231675562971276141968614611974308870341850346857746288858095387177074893135663520246282107656686379316205936295458371575252930836744076861361054430928089827670769953151689515559882458239621177468040961215265230436098639511605032904892549841096691834411064739851700332526461394183001367920545824143487336835320005038901043083235012113293432007391432626820891272229091462832837173015166157525477147999907845341215792373581061447400530540101240212761589738906992218586618997525191555455103151268689176544119144455887451292059904741325943327299735811006375076868788222602930724702083514294344643725579649070062134637323457163326509044176237466246661537463398871307037874047276433149556086401674605661966263585991729591516250704112726233854479600487675310204681829900962548626440054789610524692038119934293843833527350865161630125155520422998097789544452824740779738488362078663701619013039280167188080038473052577350066710791050603701394215353209408263156188910657881511003958735356028610996195602787817163590318497474963801921744915556076020703010095243718529078333714409046005442592110007377904046188003481677911350409372915486305246843121643893289820622450319502896109188065111137861811859805654859989217161429233002301603350559696101718465336109319189012467240031283975374717006895832384700020332372186382462667406424475471485561954741881744710690357214104359118990591839363752606604002772912492415209852006775885473823970907342808529113482176673341726179708107382737193984595227089592042686449273271386537434203437344081627467993318694755003081591057420735512418581498508685580689307684396051470119770288337372157434119188130393160981832437714798417191976229910213752610816045603908777506195557437726812937300363050571879757677804795632475348894741503909662830263384865941359076003542535001224189720840846277314900278958708845149834937337869333814726890887531003003677787687139944338307797707983946122925807256946711607119377311468010802888651851697368128056734905482773372820292934997967523616992853267501147409712231633362896674102493816856826291436375666571558638021558007686280143914809891952638859984839665817574163078593482783697707516001059218707876847014655209127858578867981427573033759981395825852633597578385120178100672461494790840999709046143806402499643243017173289217035255051530668997428338439534471419006666233996729197832954092732533012064017432689404915892478031788125917101358578157880716638856273603672155004495519714708105231690508850272070469412533481388236473305292961136002017962257684284469512844742464245769229701704060837510132307271848750875225440847942669663919594936213015965510338785168915514256003723428242475906360234047220319891960034607294545970762912828125297756937264920381140660026978700898394462929324937094603255558275382023284523716473484963000513578067309479058011971543450329112828354518699092720213858981300231707645373413260549176225274462170498006690582940950487503077243205016621688689888372411183830853712547759403566607691943997198342073621370844813138707557196685926201566006723751536596069487293032403047001098041959131478597489290047935095062985338424555861488060421891996608633037993173439201285602061857639808406631950468319318324803786303670025413240554081308035531962190250538177667538523968420693551775450370445762474140890313962202425325866159101249082535472012660673893288336750029566127170057253640421959738811733548193274223489543682721623697146081686937478680356699162762470193969590936170269483866185044173082406056689281758022500635830137678691321300576295478416642430693175018835084420566226351863678011127635290426223104621944875755109302467034962013667647932838598251185565708946755447141465762465790112434988756800303292175808827713555336380890027172109130704818893587326282442414104459236891096880153171998523119318301577363333154961232632786599051414353906569098617271774536117764961069206581841561515868446453641145675047568371824471320562897651892138832553432651024174243853797577446355422426716417821360273084390532762430023127325000959629333960918720576775922174421495537039309124477481916022152586230481691441008554313024204588465524286462894974580398630952731753552638242155303591148421624610182818308770800261781979373390968970601510842642896185501793621611220998653406350479494870396774174646695122121947849109646734913344394739098810157025698841550193022184595155484506149928789403754600242378278208166709542108895285823385240380675328864782210051940317399263723738318847476385154482897671945074268020110390632960843034999752548048172310919922738442395401143123519944034091177093181967384804089811224702917755223886259042207531691154681638672691578800319136224813752732322191029794358972221671165854516202949894231711014495727819063544594726340307056128775642635537496455838626073831064941674675943736061162782155074165168280964929197515068844760363137143175606468477466215907345772766523127951790934015702422916321930180035768455149987999855596568565488700537803998745953049895604861922211628027525774921826733421834523928726257575025866751080426697036846566684625025867827370549473863100859779163453253662325179395324467798615498035641621775267765829336235363925470277514421864009343996790372832349230751955238909256473307007559389585434837819020834530385128803890464831403001795693877102463873647205834116763639931172211832106649438351063311826660358931255467343593081705029376595699435751281012085597910302349904046188117040443251281917482814015916851918826954764413614948509079525974646621999535809465845571569509531282656918672390679247365095434115150057002902011192440164105467063545893844063643062373397462989808183622229345557310547318576102435123590223264344776436873128610801403258163204069108055802413877647591200463946519134376154945702723807248126696966943171230066979126724871944316414782016003480241687793845181818672949245919786153980761780231482756719592503888636162936967506255796547275171645109879297765620479874744497329870819623851873568908617531804399065624225605532175916276111012074256180623542367301034450427976943219453398479710003888712285066377268277195397198745494092050600435985369066914974766858712681545591431462459432253453476645507381104160698344647077714033385956581877063377850509641361721040782473597298791930726358949125830582275578672883894542378700727428091211317376473921629180504005820669600294459105789326167378535784312407475184742675433593718529707644443549351847737479750932439816182055571561965232023973796740364664732306337522155435599694695540088882439776458313282596020920270455833001186282151840237376453128372289534482869563379203772731189646539745341572159556326929138657442823958114498028009850347037316919721956843528329012891341755760829954489084828052860704201106254815893686532493772496891599857987597975379020480182321077865039175305682007082302069750061050309299441347968431295035165985149161839536671895008465498802924992523205928116568775474201147347208933971569706894878251624215469120497543055489627188798822962970170504952211172523136754582912012664076610983440844755772099852887683394975798245756237243919965448603283874265323027755397628707496218563771551860220598737684545370646968282658224900396427108657815203912991458620022438466233109064777327750864420450380963124492074239934375302369660606269980244831915586657159570319655459104040915654228461027502247167411603776427818199452936860852546506236321788837695048920370194998378021603831547249961640372435046601513496060871183730186314605676367054064886337547858993748742951740713559411339011602128037866729846339884808067301017247712439874451429100321922451922458744074839696594837011980562390652901812963825739216409168135769835689288534063897772193631948095336343937268880422815741906597140060115438028494727314269605545801760394302675798018518208866167088875105296421998392523293601371807803958912748307914826851025936131859829523887715920346281166654624781103016056645071411732546367110721211642051338923281086833487630612709648786942111968982691707839764715928570616024569747591002119301587531326281473863145471764984841561203176930749982747003035427159033670441513017159539571159252076625474882029988315184485600838575959770113912566478155741057363769594898054211610059252364120051853033924818128645924585562533630139929962477813214019683253461529557990480382985040193180683935924279197766636528648622989725837162274463826145572113046202822380460653077509580591209883621270014324476803349935439923255175183096362293658947726002330253838121656489670733046027983443200413893823150582189649009355316453344941790016641237689740295579202978922020848788330405213532209895509129352575291406499688511771508864360068745521450406121739776896176828545343476814409967012201083376821763409411179321830965030133376586720020887278036204808876746694529206458919070189084975419158856114142504336774552461717479814524678839406405740459161355503098495655073325346846279461828582144737168987663853023977597560338095022618263174132105148192101786713686777105634567304984981847141961152699140769782140460773052831965808584311334044686585016161449281591759775086120953959663114443270093328701036793965640318228562347127269835004922781567782517918747216558116678784095068053223071787084893351098652922555541224663576371509108802694380576658738006774631619589520370256561835015800852124515899261494504495978865514139888138359107327996104800904742912828558615841143957658874946692217730399234463876591889230179374448701567369890783229996276040976061883886432625145384715073479845854664916129891091676712071841983444485915877349813622817981952778761881740549907144375208356749320177063968973168832289048074249410951932693197099863531676388156736012594308600503101405948088527917099869490130927603731331295849636144286671279868332987210521458365373295151030235256911140460510157694443953575485770211765161149199672879623067854730064311325210713610657742401321278937367108244242695909601102031899723888874720642120698966732518784002850445219118170091450137119553873025588801064674469309636271999712627859960514056891264023582012887607296622998285437638141270623288579789233258771322449750013823801535211529232150022485710414215086099981294316349760928931342569328550597272835016540157832412496980099332744844618649090535807391480710443724735485577707000914392448806152909878774771372980530850084695508782763637302659422273370061970364732243320381430106327860234010880786165058230841326027039426003195226623972162931139686601744947366170154558482297166075401394792636312044508406897911416349167223154568286370147137967578905585206555856394264786487250647373701111229614871841592887949957236535591645367359323464320159103319512812491800372785582481358917472205195518213574096567072225040105427349369672836079542120545869794363129479041971325628488757158477916413164540729608542881652037556441764272704865299120374673838417222341160254935121479427773591290235432010315249590890344513608117433260762298619907101078559244461760970207062891970435515013998117908280091464205664895533525528615402458614599165388886437744508230449563920603741055012264456808563050456962720206371396075187814587638730684090702626508436555670090614386989500989834800951467966884606326439566128319436345841823565571174669956942804501516652550068501508305715968403462628846772496143235177686115252502555641807351947132585933114833203724738629614301484607295030733689313794410833957265991571551585133561939390770918715968713644839207541653464925590091031804055813579237175620490000099243152656628896724032354053676362072751079290737624262888205009586576067592900679097054509604775104371686090543832446416778543398449276330153089451329729781735850688203872106277951815706450218516579803283495797868275601151969952279991098968661127166735543868353801497117487004428553718412702627352135000063977576793085516737783945712926665583198594740958441594226128886885220533079188899144923730976680554549643485795101608352015686651046504937507257638408529295465578941651289944409181481004950086545423784940613630464672452313067508885823028452608256589815218586075210599014692955475748289737069108124698041733073198628362426811508848496297071198605850987638158686775249548717118692397138612292479621682372685428269063153349054246081766776761856192621457922886638750481546051962336178221398673959049859268891558773158482833892891618743306203964579555575182698124924014551181271426910391005799447789819507087491941318264458695300345885984774077827373571005778697991708050108902962120674241250208137957054602217700784782221586777170952190193735492094815200052041274918508364380919312179677546625534490104784282661310186461895834851796154379728860845884684256899325943345911342705151061617491078646070094434579128511903694734446951257375671641368718967044214621564931976337320761005619029891533246241354672901645534098089972842691456737749869135790971543566044294469505687340591757131211250863057487959984600155235015636916390118786050779672460752915640337758696354882538099502945434323409821590853920059390918888664638319075409703753310040549435919660172048122118454849495621617977278438189692698753625000265700969356094368161574379688294391533820481743725017357076828084166011438592025305174337296325803001584075217155527366148070515472665710263541347769014555666335980796454333546865333857981445067815484710607219134360256840587690863562099023489441173886030647061584255897367397415200661632751040357631721684777794512474313100872476486807624536328337375568334065623538941492643534776010120975718375040597264298561959873068594736811127082538807163470571155545671369635895203379625284310083626732937655876009875607181949856218615823286426910551961338318260897791755990637259142953383660325428997236054040552046031851797250789818176486968193494195168195784119623019831929115024215578358501451708688048763610411996022931036916108261833128648485416804010026282959800223116131980451909613505534531576792840797278695629034369596576200306481753648302527022996423519568112447437688580420315783364936101336264007511479740208608696923321556053028456723710452529935004903897373696506368020235619807149719488180965780277036705735519574671783729332173039119095436707929739907818217139514839278303162631916398475435501988618759961143094183075079374952966994582470459825320413130384057746793109822126899485078716843112574514375143740198327819730863031403619229283284140659240412799262939216082632863737919347377969020048835846728566733741223988607724831675209696575180998623153020439428994783745253836262111240071073939362928836024536900181827688369964961105321138194893667422464252593937761104703392791852734757208883542745733915488364312386030640017315876649977321730538995186900720185036664225579880763524162407502842036125283567538866578231797147890012499221327087443186226255206722795830776094387267220534440765354586225654174680276700677442863286098491329750099006082043580744890950481669807162620663724461635863370903566603812020979951255724944299337391805050966182931163898366672981449668947681407405098680236154255537030063832711967745042720436740341121031665582388543891071881620191904082146573898378084664457360132215386087763544693609174360626968280738663405828093871731808681169309250257922187492168179580345181743675164823504015240043340648721878032171507656861259257374826007911228118930381215120716115356043875601693977242282051528443236784261779190718074918304684693080470796401076359298669055434645882076529183567099277301966115301492426004600204265740420346632841372521283973282667854509842347070548619152207098026875231115100124357498854415895759740235498492638968417359302792429631355852898380480063969668977821131809071730239032578222882921179443775492170301354644900427320316187956505524977195860228269082108758767695116605789783962543948122468446954790186473243732845381135507012826269397594290193684008285985595366175424943209634534818006178138590637051454524196579479840234193442102067906372161832388919664691808581207440549183130342343149979030939580119318269159630552564283628087401391081057896434506782045158547404534330826553930309589033202947226659957934057027036988390022031749270321377913508993509403455979159917501216779779604766969613071362453162191616846712098122558168644560861120474985743432718369341806669485062118152759194099582395411655263863550009041454644883618424585331914040576892625231972310406695794387355435831114629988905312623407961449503559291591614416381558484289178229769756145308968607014739778089654801895698425859126768699469119491494718468584960257425348896060321635390767193567895079410128133675246906860029117460059643089067532074538813734977580272854129935711109124961822435417000186249658826872609106068274947427456406857320569183251098976348650019410280729099382022228394982545582928148659598565713568771520240817740540629954893878847721857514361234371257402034376891230484636775011353739451726544781360416815830073006369095425607851474122088850927722618122507673141940339226046667126904990738336568199432714633383137762729241073303158418032136732661591126507191024399301639005481809458460968343281792882681477640887428560219217192122282923280796877111774161294335574988939921648646499922711376302867300754690004866684502669585672295845283719618168928459847943165943947901187196678891083854123506948823233700962512027292393245068102536759133621287722357563316826063309502472246263033391637727421944693649282348358199302668269744137580886794978040856100770160617178394807990416257101852425086819205155880743258072893610539688170789866269727183397071751875774045826485147427757083160283397993615680426898945236554102940029604037902892479952191951683354986175909177972869250551480755475503048200452009777074363842721341660851727609062320412957952513725268769368352927368492148349331958206896092777361589315535807207618837782466324014712738856799930880081800151690941691068491962939228162541140556041555783266610645991493181204321186358883051806636497632516736726999412113365424062350829939501697741755588117729989120088496385365796225838708612012315711637339505664560739353465569105045075995656891271400767591631003671070231411353207751306918443307542661780609249368888059975919411378721873285516814331708641739954708157042774485565502295808203067685435940042861285121168932417487135360839534998770562539073114956571176819331968420740973110963019443207053084967654396886620223517211392629081808271060992402078888575667926933819272246235771254992148860377028052605430267103917036266287989586927604155964169839389072156306532027569148125363621144060710424470093411657696059195335388331459901187104524555375402202381657065688693113889300084826547621144113209497669255532162970434060446504129200475626399947678938200221186106958677613466290562415388090034466105844077229064966585618513384665178504657654812043929127952087842212537717552153239471521464004110350886902298491712190357651139688045062572958132372264253141479166915413695153128177703181326650323042538438139050118228771372971286190108124683096477960493917705208647557258814698409041359458956029489891674654508429294155491465382775037806739187164391838355590854123481913805299518014135863339966171661633647681262914928313469040111749900041978059110300214785836748461274732454928093375254928344693795271325280656753377967521558845635373322599260562141062131782228619387179673239415523751003466726450637924187193703229607957981811788160639902602558907601630871749943036873350367741559177626372745457499229590428673000418896754929379569202685529043604695036415975682246627731273342900982981761284310149935622800012963319859225642157187277968527849684783712144801650134390543620568041900844801579733419848571480570950415128445816386608106610727385068961049431143901572034050040007916211473377523119464366077490397730593614262790269476983606160743534512864826895192864380319948541049312120774067516173377157281494952794767983803873353610585078513935371870975217909736557620347329496922802087998441477241537513231308194322955608507867361882625286830102892225336608868969451868788101673397171365987475585761263135199228428707613730789767496605954021835501338596537391034731915690383638595392778894525144253751991046372542688105718373523012465891103163502172166818738381632634402500009368624645036164768067104370144264162893845595240611238692652700851081871397305383060442695119546268732314535532418135052571242054171770469161981269945735508805982206470227009829073385713026075358963844440356605953187798311364205062422292623888300744453437127515262434226345368673200712904598320291389630461691044433920855649860256654731356673266621641387236690773707327043811234674021815408411460433690024186700935898007912019309155986080714061289385948029316645657916373030056450965423574370480706070399794794392812656130982565364524894371421379804989917365627516457784222888928428800434504431061474754473163262586552741551377151789945165792663265667937877337798349541327493128804161158527778128753434809780912257734307094372063456804070069979413524739334056909131804210493473483941103963360876148203356926944043236673680670684302701876065861432885794726054700356870502260742945757836939215838400465493585555145085262279841601011781639093374595423093692030040866471414697818728673894226739507633606895611846841026938810386480713105521533921758823500424624758424712410317133100093360414524013649984576030473519323146755049560106484340264790512508731335705181591482246906093827228333973700754096100976296223382977888058918774278357432063624115998268831407739769598469708375700846051405466579137142956983963062745893251251389670893846166738848745469157697712909030343247000920940207006530055872529179813416864531937042904097335772345357910977001767255368482292176101088551213423299904946682663150640637332382246017796279792594739876932535758786862057287435076992835325943014866646788671773729229170296113775238902775844853247157143098889534936638501969497152159937755584005823888855579276286784419440838395972952590047322167653887158518627600440840299757365944692151870189110130293478733841955433377213679803260049334751353205070301724798132941040637163729419068163762046436626095102097725202285180077608276227923744206623343027309282050933851257603352595751636393669140182636915539644888131862752616496839080773102028118844676890637847418241995211452065125338280495201859096452323424683890288817718787311082884766823634792963173232318854815714306438948796288097382729061063817039718169459754384853427205695476104088153530173381598818598091558361663906896229283676171375341741685425194188782331792368642017618289294706074452511611625945622002703981449556628141407410901050954113958431063880065516283536141619252894322963772843091499561150400602282515583488091244278533682090123701728935684440913540780395891147963149469924341631356560095250966240551325613750688189451256157310409797019853795548776566029910468377705635819138406703873907988590511626283971913202065458535472425019226900899144323164012561120738420731131579763192122540381521707419628376914159946049906874856553011211178548946748180748440224930075783111026386780994950075013801904551912503177992762351014129391018068325418382420549248725713646982160573947072662720575632791745309346619743280522848037323905752631858807809337785646551789963438108302637821288521683334320138041548228015967347000575912127936098194790527707710407120666151579156696806122122141614886940803932129341618717129966124817731507087223542200145501122982255877969530750256946549566957417447545353135492141468980520787407241631853672188726151590787664000811148454694492463992359159121933431513160145185469381693221540330274463864601626500271037624200170278712061929979684777625465879427400749230338955898367832722794888026242583966389258427977481873718350504836485614197235281473372125839556482485451734757843912690196836997525130585437686245305309085203331844570842984829125626071964855160537607546025238646977250637280718315273452768879307950688080584815139227327299932211263576419055978433450147567964251131353499989663948517468809531455922712816792581591731252001261769921051461405533713513032111634057505541276909234927162299265993312126985527787025958036919101644792554093959603020616353957782151981072675289883221507258742592572704008344215251843709502167754522664067128708502171534323694614494551897665412095624100382650462113220798653967023640008778811158742287581100479026274103393451610673470569290640104344740427198921404147813457962451635737174872572276451808219846096432852734744582497273042596915015383115970630567876426509616086215228818843843259379019342853018278713258555765285652528193628969706967017918001836758356301814306477404816943286967457491312981138467379963188331570105643246734960395310534534818714374082951119313007354797283437862113406614521937593806486735837549537538920634504542951995983489601787682901520994078030335188323789157212670607447018893034904803572875095957469390618729716529117031965210836331480993769236377365828647930521028468574775286186168335277150063394434105391430822527379214269200485135257364439085107208457060205779819398373881944584066165653939239175423161539392135882240230501412504628521774677308504301113725801722789767077410224961923802142116023651592611878450392292369954720456617809786932328989846824393825699277243946687307582154558536158265122255505115460874611184989735720781768025523534835095996039960213707108823888849171958956752513994995099188267689576524235103444039760467810254260489581996143759258809026411780645130913362715891097435311119706887040635307597927133307527191391536189112373870509727056795846974572894722626868574423685008790969242517322877281673182165775299892980403285988146226313320437136170389123210774439464058983664160994853779711330184681217868830787830901536733166482144144422238648176939837271747620410576807037563359746513531294854669362040269602430952957244044258724869927881679056816100244817548413701100874680122897092157786308677948941433486553147835541760625887842361025291067853669187816680668652462672255676084895475675208586458935378773671561841897597849214860037064167767909393863238715173898387825895475495118327361286125584135190753585586081338610210072704545653257707046632212812905404025119592379873302068135422429998948152883497923100340915846955865670036510313937257814313044006795935093198912786270617637717941893598712356549876362357479418080011787652205836226850815297342105328483268004370309241704843756840969201723055487972330723449465643103697754427943718663366649747065034626870168563712991821162080640810756595338712727999957235231618666647068745952879868553901525330894224734028455809888447021380999909308196232635251949293978275262938952716777958981873954396614299866030469916855777731622453248428416770708442972949987433394530482552212708742924540877737765270970069922006705501362588713088602845826600700697436407742637951741947960605414705208750173208068138853129736024993988329079498366700773430442660719454747010928968772977400474357155263483934147824919848029942730126647873419749640974574653576490860515928266188209439591987710832426102349851985192717253966306440933021024971534544495223504440011178507584826196660159458357554607147662380393600732207605744974970804982444007212004451642165607492348821554199236333827122792957062190429279774298441965174302067443427500878957745937092524084578105690993593901142825832253757608102568962081481514734280714208098558348942814163433838365703211328921670129197082328228108916862634525778315086552444595779110699144544919609543427912629580461748979533589299148224345094632897667576575766109640262196490661439270766462058781757376874020048218253738858061919463464273590018070916517031014113350149571210678890028686711078015059443671527544165319192856079866910854519322837050239315983454335969755972311487784776102496706922248004519689816825617409310013079481865428939516871087174424606669155538677426054652799393776634963406586445376519274325491939411363542649259506808507387245602443879237435635692499880254418528367621696858923771639238029252771011497404797253155447664422265188075110911337389671957551336390704450422942172977648972045092171879638789358487051586319890499052348411082003494413864854816712672873549025917085646782020963955130700306532474396345541048915448602494830990898657003973678293011668726131749860889605276991592666238277420580769417733414185394370204340339344368824215197248487219972401652590928884531480439841447223734858011348820788661490244759154427205866468030447900083015006088088216333811605864403519971393925910813662186930787550896801373499044062109225796014629772704817368454728065138306001080392172326929523735856123442665744875606948011717734627857089477001191744982751205215869594897821656333756228703322482548569627092226349861885125018331195821164630859305815285435264023588495380728154612909618902589191027444253205313872239800130260152918872418937455385641624753817911466688439173461423353591933345838142489459382806110249301405424244132436460731979517657987995104358173624833160035654886444232124566559506203311543007461933417986087040939092110259380597093980362890596230383413836118114981250985731514294846410764695844581673919625283090015078193433511873390112091960801242464950778228817461746851763015023946445755057549492673209615340314094731836257722730868160934631927777985792687230733484322700321162670014562867644032629993925751451339847387805588244944887984479478071240938206589827629985228134598232576693175358854565165079732315497509975599421322078253885185874977104793164652057008923836435674649021763460160222329078369827983580047650607144326732792039691009678263691762419173234771448732612507891383222555342605135166980425895863328035041079846589061579444494584376062822368722614064885945302431369882759049260937620671391798284427690143110692046274712989621912200426146264883629948172626175830780795350240404654789107215745130265443841538649056071109517647872165868590333150232987029874250644079647135134655822807856828383293314357199638354018015592518502881996989403456429940064733640663709268128637992376846374442837969957045408563106133075867464901175423355068780122479233743375530419159084103712301250077750367877522339790888202183008744422524401199591203888568126071965433513976936080825247893039704645060268939707208596099636678695143143471815357366330058931903879648597353231985766465828328809007850383568792935743124132547381304865627092744275687072936239953414130408309466746755708494070845951755517700873426555285086379464732227419440318785058807864588790005914017044125261311399906480599054520416074357302642695504538866657167595445616535529630977375665794382165683968052170473968674239960867353339166662456621993463378634461222791073143730317926097969768327825616389189551328937989806183111380546242547064791109104455271324284499388506518680617668294733432412442389578962343600425713708696579222441349408638092217528025378207980764658035421995399853610415596216680299944518981839010713256739281235328731313268466893400141441780341795223640509722787978232840259114900952528477474920101477720172128880375992534616235392407657594193033254311520027430047096042536332683545806698494505932681551783616740873429523540243566240035881849874412502193911286133168772080613741240850131992835486809237844115409017498032522540688205279672647924718065097446282929067329553280041980673651093733338402882832644769238455550582467227580719729689339798447500055660406895534744304996641517072609876921924045878597513330430182556333811884928116942834063209622050668660028387287133641732436066537358906864490384364209213640629192530662668177463363401306753127444925666894628952745528906192659140668027421392996956885616844207316553683448098322595285981434478382856921307138540901505327582802449623069923569611645857127805064997593094978815422066025833949617267490441450362439243059258541057570393114811687851932430700516188292020530347513072689649329034056558297394952633377366005235469786135300203530438213233791449786306428448758602559618030201165469813990210202335104264925205122014321893379520613641625791304988026702521422364719734894403800129517890383591827958759015700621393320181251261069362835850735252478077652940273491528134033946914682308391225669444864924441907886924313957223022034382806494409252180781049569264015886009346371820265375312489305925322733246456731149117822362112150049700355130722422429663166523490507112374761378138627546702703707136429081011896679740274536796467963604651356137690890207101094892873749077721650181207632553609692782030549120861624583378802752168817807763737462371924707016412420657555963957700727982965726988680009229512607628779576772584140934499516866472629081464929486901886160353034705645882957736149823761400221234267329294135370802978668777633636678841770851205688987194026922167541725471775419275233055175184172463997738422020265084453810791695807094917749956030880691049032546546096622764398004435363872802492901659904908794701306448800086721470490174400836573977153644112722613049871078805748373361593967920169637839606711541007868916630075734642640182139314998221314082635822858603287693400322404491706858550759822672704671704561918847385137829014422512548553377813860942396344282465849224883580380156154767204718816754372048614771093090607976089719498330888357573006501055791121365237728157731662708593569030699444547790633832557089647575040507339855352665606741722612306535776387061592034550706250676638121145973862278418631241926673980948594451093833606728005216363929657590096066902779166483703529002227730533569142472111855407240118431972191994895747551467304273077088047123553980075252074684673190100452571390828525762083191122299144009386689159817931303499621742423012927900692376527833400152437026568672030405713248864642728712723616161068568704086082668180601903522526490309538471830016770862197122265067397271408640754119509707563640284928928747360621134361896530857391009807384436297075770281080005275121519246024262454393487698215811601142185380373252086909794217404928868163410923949094354764861333648867276779616016290815053129620896403779336529982586114159004629434148548091534001078603841373078721034353500692597799219164318673980353746668437228391775531161694194376700199332359151262115520718374817638474660682157200726218749169477572728795850864738574470949215704985393317914160794647810538545233503246319653485737117412101107924723718655808996739716437167293380128165255160698992262883301107452245694354269507349211055694300668487342610018284844937941616986156584643200476397396775482122878205269309173324061139240640641849953058936602002027551860818563504386613940269815437419323297540150213464752683798251207470852707911611331678556027021741103869684958838187429589735569446929585239716388558108028101080334554801168059694351443377682247603518851596571274765045081165700679053221613561358376113799544263799819579427389117502279204483502222647181206278625214291760398732672300868524207506953319095476327800804318183864862282831902008094229787520715269043528890643280219340353033960828089443051613371426778761869764373402694063563924173509433042395329142477162511747306944614094282571081389517534187580854749160218089400990169280397022027894523061560275813002057489534200212326287948357142018634118465732228472905322092720011779995295878294691002496079279468665499683592182412185899366501130591481652924403207143683342870378253090644151987537770017516069430867312199450980815938509637200723905492531405860474935110889047577752761061576153126430644683135938074603272798904468653583965779800200172849540619096898148225475669341168790617938301429551273294814243810221876615743359090242180210937491666819278315520431701637482959661876000547213005495938497544699680791088097337162793482359847705375220321474741538413947695637302879217328596443113326675618572829898499932496657734265448599190082786389554330919726766950734756157706823320394467603392650828637343379829818311990682464873247503065139231353713500579646979196131734058161996596998791316049504631075149393074632135654011359073338421593735834836217932427602124495184289049810365016079864929418166642482203755288416747475707746021878660256089039215091966381368405214254107682523259699846697421670934184089548391056371134708558113207108946291166308309254687114977799815920218367624199160981762280604388229307008409786165285264790085375707194440160539454126529741157922228419177965348887042996986691597281939316006394422738086345252386325903476692682007536668586497972434514609091765710430484785706585617276941974818949648747312193679539686488145727672613157616581617531315078609859466713158005872403922357590856930402734392825442465468641224942530438234015865001476484334324887102828005562907017763360397170202874410702448822403292790975797929122532982765473772103958513749837805067182523397956720733231283434957948301784908338917268759573697459799856575072529576161208818505652245619293560011373156072741250221634518218131839893740895666484455388313340587813916560716415658496741904332657836586293971967001262788029247265324216843632181377606521724512311582720194402661125988669899168259777765427488578436169710851022312870956396883843606569971134645782656900900820633791052152310671033512826828045588545280688513740877898945700324852465567569172894874273948735882574529587364254465625276271798841198465933217511078166522512676106855417591942071319017667373748200471206184852786390464934680771276647032982748015353525425890522493631140582410174307854704650676066558068931556761680180463665123206446174199053025867162055180128617837674988903268271585653673695058614459323935919720497173039262451713520368422741190593500758699769765919491972829740186776580173066666678893894977674345212598575213502366415213308045252547658431716447477748844072771561199866583151278665660253888544217395529237895648089139144545856907697835110856638326992791781966799077395049434713184263293461002144703743225118207439972435276572018749227716003864549191407372505819062798575476601998815452351795825139750098239919751067967045983061370849896727517112055650726144820338332574555516922858020321908927237954148258375175017695556031431318721232882314695920286296564973750873323498000044851336314578049689150415964160349365312824330886143872458774415249808009246474137886221102674794197258374291669984520920724096071423306765135608436739427548784818855490537242817509935402001444785465464231933452008858667531456253664417421360076200376869000740596055055756237290481865658323540920210011839391207823996510857988545171748260335491568259669783349104545425631090536558293530689006186451444855563069287753309501667774763633810206250616700154885711091794802235918521149427118845723427271744718269522751263999697207926637356663481536190071584374952081025931080321335807509942618939922394519838715059967169266135057890922753386987880692687640490199009439079299964884658582155081354299130282572583471772004336602284730567091801499044246843519337012124572600207302075409829626711987744955980622742191196567257044380788598531986445758142864057093383379863557252112384610108761068344564467511447900649063815788257887348883511407440687880579702629047118309013566197393218922303104486574586430371769713075719371535679971274979311722338055361392115205960675392999803467672543810401115116251022687596577268519596267790653734552774156688132580550963497243663467986540484678863302330508119345495482604312969188881911344684453868506735063963828083349556226772629373084761017076570456415866164673043414552901702641035775428123670234244956212911025147747337043754448408521420615693080352891347819320483306827653523964014535667257612727800397243434159423278496609027247362561795456958249096225836700948776439440154322758429353326594917873764393238935357340927576839447063063228670268736474888725165703385021849921183665614100563952330251258467449966319780726859528608863902218484660452121370334191689726230713012224051063843338935921765626261662443279648782062465618274368049419173188850170338122213895771955263387260297002299009455776728800101448009362596128109927471405630902532715086202912434616096502791664300270288391505850613806855135333509526192412512925871875331162731072485969074799559548596158433949813324452208729189431132382963153214510332734085403135300073868455107534208036178556492238927470741885237544947596913641501635905583250298578003953644779928375235167985966962132850254003235388760378602024903561380338769348365247277136296451188929707350029562983186766709916058488632999111407330102981151357807420627106158438514018355379416190513157149413089227721255609339175066349471843573885032999753702102484450724206867004663094402863838216361296542380650578457634854406328556665637668192470530255405495646313692303737329491454392393604760201827069112219365920311227941572165318708420013184020171924685644312980673029154312738154282632876389228281498522051157398654894624744225211609301615946825765507427600119583684883914623340102849253693789268795055587252712826897905636514046645192977839126978043904537018366155105890204484758196874159128564896394568415276273315900590682915951918009010436629399591338156501524880618765302326792745885146057300149104769387742055156189873718597511715105557572525021647141727222010085605228185264396785622430894865969083403085389581751226564992336204752051662580203436389471489377785426814105981164779462571940930135317576495442024898777241931026285841262911084812149051451242827825582588655663511234768012697756940969533301980912951469285628590798806196347318704527741893905685675534958294487773652108647762369877608791025005098923895336180817893287523900754588384212401161661290540648120032642938932017011461312577741719381372323755085268115307123856591861723473900133392456466186240126833086042981566040408056618200315509504311092166950912156696800394438853862138836297469735394217461453692226761068143705133574422985079644663069713917609567304238125610782563608404836699163529594391719575507491217583231257644522307565798178245362552572585712863740923482172409565453632025323361856579438782710725267253888414478455084469948765943082735444079009176230583855282981585973586589137488968820275527407169640585679995488306509340878422649010960619519723056922688575109316071032644003854015889676412051550498452924275889436438542592917902961114684065039686850472448246463151059534097036461582958205701494015160373442319203411432907613425459650308966677575147142551854666959519628578937604425004050720570575771606625993925416200885163961692807748082970063374315029137427130282696136856347559461912463226573208619153668486894563919744249328233329713642143983628348034259086688499296817682326868966615279736035232044235567798608587631327987103975919999703842081974577617167191012292767898044356358499065447199802921036224736622882301568485606128847955691337669419417537560460257565200667549367720433449876677557809733101599491840083800743453592595903972733624136056161609842068667922468396555403883497947858354259867859228723289120490088189322762531864646257057947943547087660021241792134516143192507356382307350284834124744262271459128635586253900816409109030035930291242272500333140921703172436864810889928704429801744129784554554891048179955254216836908712064717269152789473814915862037467261058673696393630948855165790029060896993979669813421288161461762026336441932373705889024096165384950285405991378535302877685851710752132747199124105112867627452445082805060931886211359203329868619781710257633886229771833362932915386861805563941970592289357422282142714577138625156247303635180914502000362500651067643848146087136044184898662242694477068157298294698161964615010902721901348300519210556963689855891817893898237710779180830559521482910913115265071516421485764127723436623997936247701141618680370234481936550113717306408810773126543958536773182389369781577715801297311123513061062104040829856899177911354516625731341313221841823799997407003248442616994235280935980006281906813987179666562543352579909864101366130542942160831581170473556399521271919157615404626861897568388595745786042786475946087350781769815147458574109929535266051048182950788350731562237188469340717513041315709526412292230862689652443381470655916195495130837523205772375248053422582417744405157033733552018284082452400676843865027087289762821301268589447301808348117449757864205764053526231952811710284976725004373063121089143002149284558880330698761289870173247488131265449678303689568450756895512436717728135381892982343915608953143695868162904227168648565397724473314766654424942737429901643262923205077814432953041739659281468080918121386332140871571843014412408718415058401565754700991984010138354223889842335023124601778301626978566515676154942822047923139432831747908522014899249262736265623231851905723732211957236885497906505345025212641991762588729933099368404673547245298204056936528684893597412936325299326075768011232999914495630548855670086263626072514159178961331512972482067819921932231651533039517734936454477657584497188748429433897313183787899927430633536239125971497694676494107468068638644126622641734769972425997412505913236494282961115105356004722052702624491056793127421807363065661118448405744121385494888132897450470589302743707075632379541602314294597740109892747841961909438126189249172639511395446127946622846942613122549027456963188701118053450111538317804152381398817783612178874074405634604717224112540874407459558072129074991622085658781648830976428067817837401044070401999329940794650098428552872409881608127617411924477593709381365020765636983602197852791219008867429447781870376805823760418527316830365548396941604039306770196062280452456294767267660730001988033837613031033017418403109828957686498623878846745535440204417016425394326978006940586963810962642970796214175531543108810441547059007259749455605144882834010806009587149220971864007178891889368947969529121734293013607780900899609441906725883885898272994158471948983180319953969150698638552567290662291015532037895811800032876640327195621205658910238683269473439367583998341204606157884418426293153059602503663941490684024263172931395944908752619445756894859185868667557300841643538515904634110216519206139688570232145955582281577665735063835028375837508023194862894981054546746877283482308341417452783156433503428113626420960220305931860737661588962069355563827915139449827759786948302890565519254149733701753890198670255511734148285122924863412251798849554309773062243562234155747653456586647023764055555140363814746870484384725705009681856120768099909645225711944894419647989276434257944904957405788421541216762065868579912162416490036281200806000238419831447869778638153533549915308777851031385392842618941839756689643210196204949907592349084095915291333811562656215419860642463077087087203505618944860588283441351801815846588472110842089734001833264642495324219813566607234565198887364873011978844900227738474406170361278317386040888177677214059652135346168812325156156081359895001551567909837090840431380343723517377680299867532704543704682286165649432807590366030984336243500428742312508769379137270996639859464032411331488695292615076836682315106252591223731902172483560878690641942374330549242468027737434356060432018672056054840834184534028998144986826862057772515112874967336465919299207433405611554061243786462071608667541556029754558297418693588024712693622883607764045111253758510846085064123875307492530334988656871014368001063333532887123287610598335907707016787129768885694768841016767235619923140962566990536700075099486444889066249069484243789548482221894420830465368348316615023930940853846339863930677167212440023340666387124760480092375769281807424864025077748026387048417313566300642620726934223763188222442770214884109346336789051211458133935799994556206964308085048465557954235770831304512837019350788331655312316501358620445758365927500402724174288290513089729586655183011615239260064379976887033733705745710028299466951771038337998108181255436343131959398912883798561737544200630228035939665205486798640858422589732164150093128825956194978655969371851778985965843768535357306286805825572463126438773397801061953993391927746245152045474822654119828447184219536240397133032883154399209343341769149099099749500223638253764152846501872720317859911376348695840807306004500292964314322929179935525117346951530376986444847625892897392338330379941792371042941680982454881238002371389640767194165166064712080217990420449980311679056154476593115246159217523810186336050118114554968185653167726689462944072505491268369006458996908267861092269127699053463028795954236010605495762028716121530836069716276408723965792775539360492218296723488472858221855575842056524102698924914011613323070947048640260800226223349560850190282966109359578544192428805850921538861216700232139610599223507522276789360237195795245910491783398941315087207112593000256372408461084688011132559332719153419195601415175952824970354742553276640425029894439725909699564930665848455837816968955598755258135823795257586438118206334605209877361670035957075955782778687521982092954405071712744701671272017741099467860677103984280569045441209187444039131010596644921911218327388096173577099568855430947169634988899925955509677723741443127725464785482842895729381364337290255924887288767577496107413825592148456667605758542855197813488108477189205441992257062646427028699492676343639562272586294974777357652181548440494899091881906580340794465076630184824016391151806089881018722259590999397365025611155491958585959223791215098882573934230173244336150074997987739918038840549176785162419438043016488374238925429284385793141328491668181996514987924698560112650271503057243720994927442747717776314880131599398306281273429150034540195558910750639010481341161469519766665253942991540373881479139937132186238702580253617642794080389031936954717735247473445752639104487543936568905009740752894866155338891463936278030472231359841973542234779585935451337824641929470051437261750372872638680699587022655564275403386817726614940425111616002169154949168895434602569692625988789514254928873958684735400406474708650439108049613059908144936885277337039718949126331729222471484044448113617137419838652794243199422912658578044229540100349911047981259558345473728883505820881392167857253772471087053347097911657369770792758145984494642808396685458200363225796042835715622057272423937549407359274674446541054575292767939671512708759885461408547507261511012396225928727431621859802193291515703409529257306522984249772968243664031374376092252169579119278094654551874156258285367888317615315259599282728998250465542655045212410770335825883845082664092318023472192419297649888515418518382608010928847035495357145108059988730978520545239286319550764755482874458256665252777879956842513691036391483246897440146852090418024353266499282049200928133510112145792860528313791429625653563329428880763877064279990384692363143288631862610502412191805491480475513726904939432673818825954452160132630904028171427174005867851675008744698242076716005751408433447026309590845388460747392536490081605865716196946467316343223030530962936772078639206232919594870055755574447830732730686963897433822314982558471139244264162579392282716711019378284514193626911493317003922730882769416808206040456118989235552010642535421389080062340572142292437255791382743196851983891721024501600947523593666143200359811025245780815540107637565226505946087691887617083685734715151391317198114016681005584365301501371310483888265284446236562975056718270892760797592170162880605009630861955773813980977929373963114382299821920583858841989894747832184503131989267772367377449333035894698373516766764294545439146002372173371511157277644182356313760240273421187226181884549403904338583721087902107308215158968151847920752610394850726418660909787892448476578795962263421208381579221773685715208983448988627818715025066646353844393320638821238265545147376501318227198262281500957496533965747501329049115042514119299941754072109815946648262130697347260757273674334197899572008520134558374448474464380825819674507307264677157498197291901519743877801441681950709493549269476167579274063076747551672841684655550224145948401865845080111085961957830121983723568785404504719110650914021016310489577779042378571475613678997821623951534857688898591742727911062581878310243070747227510888191708758974457051402556274581589897320189502122406903993843162678105435341958947799874460934312585030194626213138321781444820841818019486012307919478944473033601564667540159706540738016761099541978828098285852478969352187051078816346877756259684695826930748344230994189735547565987220055680923003388494019312597026643265841038293604461461511079035603488712067384689418539150034416313615435886280540194776586608018245071301444685270826696539785782234316734688024232617317166607971343928938228227302848801550042656667849935173471747752196158527049329542474845245156009783465497168195092290767063321241840403206342095357022698233594361738849592506015007508824123366768999254949654343531995719999523520821590125287304235722592822817880446944477802970058994036449810714211176203573579386933886054295305177070674099106183348920361457432303599478806149966451075463525123239914440487255834969854262507762775375513356337793785935050747348749312355994127017973893144094728313620159299009736809252139755185706214119130789846008994565186162323887700155034194906589354724799145075913502415740064868486767095910765547760026188722336650028260724032705664132271610122618644254797247955841501328784137174918405288678815889684484740465428780368234720340659321096388893896073680037235476082136996487663809487869959658080146083123140783134689255810573501204674542889835295413921235138520617399145715058677939219209972305560207977229657832772296137280474793825076815123775273689523765473324568917566870753307814293745950333812899958919743677699919452465851368433818272713517845372604480570773733863608956951097031254509212179898430892697487942854142852897373238981977546888236851370111678940016463490902517280370695842324840274646906348621416245777976589759438357697371316906854870780025932423047362122271123607274768896589095446755669158548826419939581274238963114371859385381153295260902307050786986183654678854789334732467582729040743869485455275010414146449399953370394914850064527166378978620642681247177410052312788482334853882292124381968967447614289601930548530701338016344579923603890515442825405134293022164061000612080832860397565364931055845846245371229623030809024653247345573762299814720977604290733801390358679298791687243059429876170831382207670716392054949878959792055211844702354714913312143526025954149324879702744690749573134724868767907755387629910853039540711028939785556489558081598950612260378937853132686559374933643865116496188434473224601597321507438663939486947190044954847780291935604378480131273639859829892219076938112490647818128165554144286352215401339540101393285871555058994171979326031429489672912560654048616147262321751211023076122545817610050678047765671748065168841068742867117623408284821020768091986814508981056031759868024178596974009428983783835477927714273644070749377937492717941772361130974980035759610921559324547084203684413578486205666289387049687851232374670041563983841802349551663443758423266452815040160524641502253944125152600261573637523082755586890221590977110559016855159596992109648189906134932881843564234884012143258507234134251332036060753224199491804037419349447778240484153551411732872331584224880503842429047391717974907179067693549698069419709016563769254786628335162281615880226597904336652179754164536795040627369925593186098478881925348605329324974437112540615761241414654407160418417576460499298906098573182486489167135314290468140086232933931284156590973633618932600647061373065827949099196407526901247121495087029335805403866200167980323483001610976185031447876528168977776054483664795142518744763823233366557744640875920303157794392887065451435606791505828439018864184544261219857437794451632744370263440423133557763903574158755350605170890538634466470497966448361220156976381878106628934332516354544699227717888288951834674001349701036445161452910600696443127521070876498023852067241742553207191742715712461432189491214356828637164100733067818069930257533936974317732628370698048855944325346943501382039653649274450970943218564614964880458744826927355845866450349512515100759519384379052271602438231744919898292474122083626836537888325593853142815387050777201164064253465545101670498182078923798967127903291182122889873239035875598510213323237089132328215236937555845264998323235290954421894059233314640758177242044045955021519868241073580087893546975191085896339274593344968343241363440336604368715381461924736802554848222640021841791741406462183593891774535903222500635798094926935318813448012839102385246047737138253525496778364488445963677459572611270126398146383210814528834673845379536912590597509151989777345105375866153861797240874550143706647331012209159536077890495471231182856426862342640980060949228096591712010939694590211147517440166198852114429231945136033283552929118701181232472112308331951301004317386447562312915143408219034431811064526532425633060517026604016011758523637483262989648607604246570178501958557443784964670264296577383700086202241522997549242501550320177600400839522529315031201313867427681199665108908971230020768031493001425828664547559308464629729666851899498605495736738334911513686296998125696662422639108805540120756183780559118548146998374614143346835729102147403674802598764898987854769600810565065755275195160192696620710890328837249026193697292838231324007268218014916702105640953485548290807523027261028510917323848398577033515644628696151936781331758041162106043456171777900533334539087430883320212268939203266875411119285004327728854064500583893493702608702878998043946997359503695527542604332206765212037804521407787188582997891138738347673578050704113070619694311509398722269981697911784210586415469794311384614572154266973602557139262518626922321408935067188178022292820559012237706160712029412484448312341352987606058769401294280581790499395557579588112750123452273154142173256651241329629230956257844959090993715215777171294537907394892578474178708855705944865160996782806352148788197602286506795817065113376233619739632019545587585736464041477925356779555006856462876052320767357936462909528319270229650855531937460516849467312432334758635344106953226281438478619353677579264864705257095701859676685088631181354570597197933929187595961154893987593853506676517336041923016052836442495500647867917039267241665010101709440677390750390390018223961466390129793572205543673910648927342005396385403064721200227638022966028076588931863893583037597667696277853817283884611882168271667721605754482757196513355711778252358159712589518599162286101596341970230621872174279922336645551656525428875758841182144821043937219812067484955595548742370681026071502772535171423432367964602577940101309412836733415437486204523179989259821606787452172280217838528133482861926203643750091561052213902614735282612696646473830678408007060999178031509821956014760608572937920216170488415942677394654788780905811801150672515527096550952618895754362381919436337190640531013815933426882336490097008353351113348106765830278261843765940358047828607390733976132373802833703663773844085033951489687788435566657016906521259468572110223913179883815092847804704234140233807890949724482355996020157847905692195481692908005260035363212987684561882392128637879146266674503263307961335595119708980586793441900205261860562741925513548073000856692050670500332098110783130922974143321333231981557160226721445745548961681368501243537802732384873318683358656850719825391319704474758065048810244628409068082893775310061383520223325634069155815469734831506849749335151295843496561610414088026804020311079811915347602466778177305786198265766054499702176808975781911292779630890456286855136712410000488071361156214494724861301081367367090774288375151029182729904317314873263495644086459872909211053314349444510635078632632020373489991384608908797181813279035769295880564012832621858294864561159854612727086528348223469913503575966922737338653284426401463180136206676172649191179813094501702283617051526929138756031926387428760998346346212808403335020666443609083890142118443421118618025793596773209365442338471285960670759763609904240070699598377677024184681405697717301233428211501950840778217605612498707127798310788932334201307923688734190224941872970606289736436347225339624236855594050993494995770439002299456750138771290000253950141510242257108909404060327151738601781557886723121591653373792544663785104791192636103536362145912415982377846803404677929548911638577877442487875603141323351133033220937187354614361685165563577898244330619360946473671126057851867513117235120787066527224444053683172903473615293157615734387498747559945089165812820278253971940681950858380653746255475162377309315719924620933804630052862828270147733717909403726406361924798320588114198402425353643745098586351919494162393180806267386981941262680732600704478118849781614775501723260240373435482764266393850133754263505216432597095183196193414221778175581847814892013318084952870395904575603920597436080619842494502595488639966175762442062517487753667829246542832920461517262993853604540642116908648446177357081964536872577716414068646167272572946081120881746847142105494851141471802292499143562690504455415858082896681860305435089031311688188678917166275325909550401954075888423974563762366280425115706463532802756317647166265023963257383374113716561284779008466726680020471554350908795510726319513593008234015863482303982747566860031237499123878795057558238820909530285991512434161748032838789162560030911879120814164295560454443221905950111039218264560364015333860354578023565889885516214054597167248010149334819868212193768625079224438306407807543839584679300581278797504454368452935142798630208711310446332632365854660503292453157746486481778550054618468265243597425520442911364669117233385976908561298573125323539935620432960794620923363858344320360241854531921337406174929342236898027822692220890610510194828174717296808582066003290628598595403305894915593667245274440737864492788794242129678316791690460174882725545535971524797068065754963902927024555486280420689838453476632941229372018390495600976239239292980238512858218420853471207883457133000161060520305797984784572851586249909032896015977513823821215329924193050324185746859142035854413230279936770278478533102639995845217262471730900899744085721482920199627452812762864147551383259665592974607425412407204648773199854388133811351758725196556290705008120539027396135853508165090248438167530616599310213380015067759038109714612339005669730786170337355377650874546691105883533336354675862455177289304747866129899187041505299246346737617415088164294506372284743806412965422924919793522741230210372217986550430584225593924294478528395767049803753689726037732486119852046752578455134286632665006680691337477801837387313788939986206548928644364036332818765981134481631129293152577395933297099709718308804251200924815961061950145209873570292668790593441406057543531705003987569354495514889588371307433601115261948633881428747969730154579746564074331692104727028035507637484673205401384938913907576303066187399560007442335340001015433638673564191708366029513495256570867498446240393059948878599666497786782706003553784333975645055708948808202497211086872375615984561573027374103636767616253844505602666008299653435105928040784554917472913372418219089337137552901888350165377080584188827417671586217039250499364594229417815624586726239723924401751028400278435970210485607242899180150069377057160758492957001165946327337455915504012690895300715769461918237316881893173749737097157197505556313246883211236811548646316039726853008793904831814702824747509579779701896707372605397027104334159359884008270453662460842682956378981734227399949130820259952832672699457669012560005936821769734622318833413984723235125195931871387381605789923067371639162996624240359939348457473803254590430753716167914690598911090168269535779285485210714963762481868614179727620695235755113919090670489042363075053300397540402377745453642940011917906395056336752309014912437263631719659012482434809234738640477985933202451238430030409468904473786008064452161846973489741044482397496073135467536013477936270363351556711535977903853546181436247066443355355440979449549913004860878063704197298560029634973080303851666771130453542682107893756740548717814317865151766339631771770661262068753438220890292270358690470227861273829869796392487481736218754794014320507978923246475051501402051559237575840541703451380116664987406487260977909391481117309760803104004501313512025908472067508931339218575554698026635086346342968097781706379577619798087756822557752665742516095317107148503068560956791753705097135007115466045637340717827872684060600312443445273883267484901100059647647118319543385575764622193502886049550651976961337209997149519098299243086821732932105648914796071279914141731271411054627743399738869378363532174669321570367077121179022754739514651985596443684402398289003230125336451444659993272411261626056214462284401843316086348538303498436722780437801859985876089477245603399697749200400387269687290076981397568285324673452951262766131807989828315235698331503376285108792803685832286809174561405848602413549499196732487823720684095259937617042421031631740172273332053997129901577593608002916541868088239148338976026296216746178341464000493356067221041925875738123108260629072070731984062019591143031278184038762358097434584621538469437535578508650640960125539074972884268078117146522725898818171895867255990587082495016050536579017603636900270013671032458951172766607198316166677744142208831719400283136313651842175051005052539902157715951262465048935546356872253169647073026864193825137490637057277543853621079707589141293360828723214681274462435555587070545743813252719713465544800888964092116834467897483091995033134118768362839568450040364824633208001709638375357788321178909573046447666471759136822034880250671133734675644514985230942554276296510133479825737801070582969840282062133000175044273463714029222512477954382809049491203070492106066685081120952220762349654248742163463310429983221717365761101210051110308107306952767302300935269161808355199174798684248953642063118361136349378991690241483644835747826238434765534025619189923519870172344110010043900931290958434935966544874542193807234992114378730303498974679695298704891622723685871981838209197340039595894527221755586263340434339636839648896840337125565240633173642279851383328395929267808148899097273258614916119168653458808250981070626121323923157773174990177204607838691600425865817690091271628023748494507750872272484066311391166453870690357669989557534389961138899912461182269016960860815706275327563294842621327762636993197594529289990660776905041551881784600379982240336015410948013352714945699843265706643416180652671941387399916023959492591123545253477838451863759224291781426437403752205681982168815749151206008386063769798934137249086207264284324402762120874406771179591643929217768019370797336722479945113066984180341552297068191394986246427066923710867662014028674522823406469308780289678512054104271423310413016652720949010915466673314189678127953850390286062760602528082499217043451177700631012686164337806796379973963069524885335947516097392763404928881560861198201300909858413805657710086227488495073070083909121030370949735054730712538850274853309956986165967655806257774721665709036420036845054668096089573573881665230983780618949880756882254785016947316017305970923932915663648572064327880812714988414261973621928789088993687573858852985405777148607976531463691722448237655910524156571535184546631817666383022138453961690494916853417945047792987494602941622250715257485842715911714502962037425531065967775463136531559476306804075649678684875388719728896478526875835163403822949842242119873341603799025279892021279628210837347950820951802296700864499809365582690223687719712636066986807809417170095532033486382533462508690512351828338717526845836645055222721207074394229061138625120886646376036902545702674345601578178281057124449228649696501232682388184621109707512807789127421974074721964500768545488713123548797568959889411789544589177686778559281718489086173850578357656841399320745736920270287956093406024244156669635343551247068628450238558748577593165770349638302343299007495372976981894547067253849895252887681396056926002316423260279212167481742642165009043644550762516631873858499220141566971994926961459591305302442020722639998360404935348983414780065615960693333682529252554515491649924957404356535909802083125894635954981612649637446564531306713440292252745762407330123209825534037734059394119969483603599243585573535833106450965096479207690107671703075197150639962563242415718643842093028587978925633282923821273900778759547355409497045724459160681919624299082147797931281015639332220190245439706160885287560522979471409176179038520851944952409797818870546238097350371463771909644738455549102174303827669641253892129317263446739143224120806862517176177635312390826912282136537348413387133093138556354629183328573548700474891000168697989721797551032681691762233641880529997462466680692098758233318023711815989434407652722898058516332117368576591423756176935988178205181877305416669679671051204191603985976345615791494175553866690412193041529683070476020953200880079770068254301376088149109789970329228346055773291933931959673844576867504660270951974244681018843252344699024519728411603636961262416319289994856642333222306633095583497070722865390289852326721836574892020121746075335956395035171965086073799843968540357419020597521189493568504773463652386151509852565612209212965237558237714668290082915350392087017651957336268550882165181567824617192609269182794470287030665721172938696290135210876266605974189099857274139342712943627958279218013440259321857062349507476242789948121762058436527723747594342266880956484410774740477309415492325885832825827932827328788378914714266476640802808022137430191643228046459134478353513615935123243457855576961164879008685027419359383553416220224161511253501974470758604996754821172689760962753619344788816186621632339177845299665198164451529555314695999183898322594672535365923696884380480864923485803697483583681617765030925284048580599101417234588772310900766998978256242295489606621203307917816523019766740909038576943151284603518408503569599047280573517762390194691464859038470422605590618416210549027909891369981309282874387133444018376931124586103130459309666168726170777606362549459251045493399973060600212964976616576107577381672591411444585068362617886738768897796107621097601773739568634563938610087212041222911536800526200101375670514462807491966348418308397497579333558604786596483038515067404271396401167368660762610219927924190368584163366892905613466703063146804307781531439201536594445217890582735033937544481587258181642558301002031842207022479536310695269374942806750513052458308726981283215146021235992692980264651417190856157353428953375179304252460876628101161900251992961810850378782758270127571563148065882957136192081711442958378276026520463571602441973154370309634600453164947358894335434303072969060692656866530550719897227985527385063877238116272855108029610197776900252595575645934634320033391700378476122041181676416536279771348572849509083894173595578046301888634900623023249987193463034987901790862218954842358613827904712986949395604915861916045909457056208140097695392252375300453419687374105420580043134744402168522852072004263571149491102432678599249934493672728705743511915639743225106757074398925234495051083822237894640159548968564995301760841621360801335843198243253613477770235173309218488925184590790598942443027417530749241147411101003134481987609206903064308223979391453103504072839182469179019678016675735576924097651527908923248976256236651597291344303990880696142113769840104870724676776730972998368758062203068593521586868972342269842046386074231049715312248148362807814947087398573896115865613939793652576929449704042878232891016388509762755771125224524421834220900729854133107292586574722717582674899911139596414372659530830628272058360185721559727591194048721255730157016912635316807707031864346599266068573239372383506819618010649016560437234824374421271218010927276563886155892220327059308743634398904194160068821925481768735395150362245021790812118798356370057400924402970743696902505055871252178522123833239812082315101405255690095703311317995472384645738343764703512582900852243798898580972751312101083658354032119950182323481987408571236980315884141734151467740477726044843720736835062164763245547453840984264325401295975221935102201250397237528477007368407904254046466197581094138827171083553653341244948737390474859281821280284670401283169773993101949661463398535263582185698705752306073640563632532479723299843748001497132252245060676690701780967273588347714157539630831558024914677895142445767999675738327335988709873353876454448730918411156429137756033090097042977034395436683565595433287306210589374789524385538016110077672941616041911256077320143734651348957535517163931283514675516646834456411984839813943601483051083372054260382464248688392646681664824847571456539068078019343964746066443681236431059569719047322017200144955712584133904934544670060910798863683457430119008408439481904305256059923365138102425039640364093931063021379571240658343587223700136887623667021117310038390423041208504397194936331867463706813187288292088006498598155483815001867038357822719068050078906168233634333265860336076867725672421990313986769239205061710592000064920919752528533365312471437527148145316957005995724001600422786929916352396278288822963984290665542930455386268252364633393029083804397751895051402585963944085235680667332417172863391780548768698789568778790187254942986583789576976993431142035916855262344687044807254234114865625922698076878986854371928644339145080904789721909003072732681392117767741077085479690256365544362146690387227232374119839153465375129723580644005952616186328359858511680556872525704373629205904714813276198326837457118650665833778746543143793181150699652723157681687022329109374210946221086218551394263305725291619535310785163224561999563452545099945163951089255370516632313555268657359946695991490409557665991641556499579810817210311948597255976905038712329387636264625318741103033146551917695651377703049963971251283967950774510431448009528617437686827610543363445033373061077965746473541381105430144370242964807407569240121277935069905779263512914234770287935975154738441845409478921751672964745795538387294220486263914707956771953113751991423972774108000828610525882255863833012433226632095074440320202816907878514346619425653641385262509889584170959404249961705636760896495777656828111246310778106517979551700864737622047864069930236568201907399954979811106730565410049614355229337792934872550905047670341234088569125348605041814934534700728171682615521601661307815419901751961961170465807832241014650870460218826918854022784757008369064267117578680393801503678489073715838661208855577395238705088979812737759563999227049665240157482015519514864551677291291754278888344169536673261386245290807235933145667033965925977456492082125226926333736816737325114958407329015370358450594045750277909999952287649260989250887244743687892365017134274611698064914057458909268344405782928727317243836826828041641088769732887850969370298839380173645073844158183968376947121490796942213746131268481918009486088347766325407535195273688002689077495425070054998004133615194594231955492060909442983601142319445057834015345149242806809233742958028524522344062391835259401976187851670434668989675221604815769408525814953700390009078221388802032592839372513382833976746524852050217190840911791371555320131891025765996269294968551601473673513021888421709253174212080158365821940880851760133632935953287620590448679778668983281571359676410360930624677625261505193693019888277266862401890085194379330745177707745341863195412288211546239044797695251133494448054728409837990429344061783445478060117323636501312753776189461339496672041413514170148354246929884530617443254630437343420954151726375076405990065071957774457830893101567089659373762960905973032032735722600362541184808510916914893332916303708842692735951416309529331382729419412526602834166560974127444895288630115336832779913147564212152243046834539761753704833765372467035642757845211917278313477769873761914093893459429717329361125858591552382011156613109972318089259957374403994453480522939416495492186745531409636870909353817524931570467043624498862405965922662860393350906276000797805829683560764814573665201094018690158766782485618144447040159602261546814499209766634636154879307119151182904844562511712321391059910317706232118792140674859678411658075828028187810384463519584865271780420191893362775772677270435006304891975683280353773341595290435531414077712242835160132544224642228554842835587258517335344814411632483335071403351528790487655707277175967648684095660586262500189745973314342673244883373240616815314919729777317142940389064336852508989165196232586867111205239004140665301419946329186233680507717009586412747691013009033678782696037714962840239632753710088139680279535113101748778282215263422127823229084887232680851409787540814007715803647027626434289833341648863869274453721682815464740722565563902599005552855688100316732414859092050324707847466103105440468825948251361806702071047616213326544870456783571681765712501580979863408185376524625837800310243551278160360707638862199709703057391514279589939887935416517825254812354100837164513091580323065543144194412605757096656289839817394685613219886300298083899203235661694096284891192114445815293596893218709446699200844949781052997622428064146949637437443027571624516134424887254631693991056505223644210537929788437647556589816692949117379782933714565972984565021265733981232734746200249500875215832722030649348242820254723740673454469726165696066076903299804793467212874729790364431010806234130490147256695660511593146710765906604559728807335291641870704861906442491146588220034297276232021120599305727751835355411941037510049491698824089101224569648564390247168073414997238586883730306488008272545670741169573555464211060752891319002377876893784915240669248432301240937769171363187616518276166424690200799925604592849298234191381944876427580839036644327372919789824816263864650641959732554883049630343784539242458685384887903131977441255529056002787207667351361145273501449249953340580096308659698166577768801553542929348469336857066054178101388687811211935345256784527981803657643811259531475044141672444379767212870299987751931024436121220927709490730985560873473507035094069838264576792145734185491649947041692948459364979620343667305425180485153868399791076194558462310657159899363794454877127139187692735583924490712559298886786074235597388888476404256179463797174736130652935545076404916569020316659623813646561006033968721150992234434184408015171733098994938161218553972627740631792903930742681191530460671120830447330234076833045508746443220823701746105283383707579942191503055451188105296868567449524173988227495837956968770216008838713165848168376190987910882838532854838088154695099269607128200002548158834496916786845619258223525543845854783417781769016680787689173476652453524711665761192706865819970581410543282567387124839130204687245516925264425375377100585188997189135333852316544965678602035643640518213194015331646292151230655073397131709601527384555632776641602830513229840444692322801900301395720443673789196192824306584204216861295124757062519676866793219201212402066553909339121153549147567582430210416964149030044171062295925726495081525309537956220747336427231595616907328590699427957087317112645749501479017665022321675837159974903280063859953598278279774080947335562104597134073001862365897844000945635920063226471300393616296720025548958097638847068876629523774853239983770214218981386766330499092971420540438642121325252457289174088562289129209107362674889118826885389702899204058639948162281434421592698349610203467293007374250410050484287152945383392452619939272704628468966983972009328037825952096981088791701573817389777362411433939235272449494206914963768722914423438315340186143240764935729156614111970369583828365584482019949249458149875412345203125528290065095722165193942407916167647525855883288579162397468699301694023737274521789692640462492604810521192094309863684648411937664864604745217784846925275404392010564123664129350488579661583807487991015134184175085163987957281227251048596530893791018323305587661238783927964651860669285063653624481910355477852116033825901643245148575586455644301730438195651734415001627337243575433368838647166863412640819015192234405546951005512285623050918887350437153024797727804498338479106309002653106253260484747173059992386119393308362434136943039453462634045108276277539546086953171301066340853718506082395305100881052890329043470831479339575998177504417929897320624646315381333070714075223778731877063318494388325390190881360631972027243016312079425456520708127506679489262680230811136395190719655749689397998258422952314888392591763176935269991505054124382922637258067359106150494593848811196928668599094042135314339391955605344786353136610386050972843019830620055946841174269502838843953970516012036124539992591490075350084416937808725447897760946992087316035358898585183024509533360340823459171110386203891559626848589034921031534043746216294618140386162857556816396430022818975625040367168598704786140371150855720242996872238226303191757096172477256715391196811349376733643003297041762786251603856253406316239746103446060610616310523684077987199458341472918649109265417620726443446986259173591590173111478483399758897413630527895551041023341019605530560254762347142534122359673124920498801034698815498083211517589979399087173991117127782502596954849883982528196876850577775996482668716597325929101278348261473344465988388394904028391076317276970121241605805216861717269702647015662415332390452177019850269041379089768968829878545316868750751662447798316041591908685609945328335877723352279272593420596100853717377088603484488242848687430375478549046096678129118104055066678596982920147062373062472394562187320472617200345811783848476477490166111825973692848860523200591367961967536761684457175512143363954351921026571653192255431994600404586986081415303837005906988765385431446943203003317872710389506083222403243358288732813680569254488826112633634952777099832988162350358546225681988942974689545674117337028365792552169735468643997971676551431369635454243624541598364526184161603373396019982597210625584383517959049053077081862295576696530469627067830147377832945464953169715159069527785368816327094800176735701974827529104689719266791865525234859244695897342580228702436301765167839453009922324661152485317655138655740992678749572388800398103355339880176520758053443990840130993056324765077549340320445445172992157798920756774107363901677317054434322183567454627918672328087346549267689892602384719982767099427702072405093942558840370743911094648231449239353349149096817329446263623118479133878102307752822558228614534874207244386791937956857277072201309500795055669913650855194509425844390440351446771904938299303351300327476181940686205700902880453040211265055195961155028279970882392670529013419159287057884959968383646661229743423574108097880408099665700791115474358702024652750519720963781068587791570001044651598554853952101141150136404643578512145828504810538100473279759353035308042963794920516069685659117682091795592390275175429660472544858796647060607422463230240219943945624713148354314524655357896004610892619425019473628804899563458264249394437592554199721203492951574736822196245910424946441572580305304648915532135675338769765050067860470483177919382845904024303958181489860082613174280769960792290224568338422368217156901864285666564204837050306292268585856361231735456446287445990122185154854071046265401224852908694730501999669807898706098872648466320688543651076983404399015156903874494489248634469276627143516858848252190124474701620006642787057056858768562671843342662586645732729849507329358251796171282990422766110778480345250527092208334318104222788065729159352977861274187355405102268797080371763161527691962481966736296867278227758937018336101583331187503664809665973541609431500958720768163457161636400947201470085788168845769076384491735399914695359948211774868359696002684156319941069442121598944435677188035826335223055363619157180555733901727554182534804829713831919754630105528476097839951342351370914593918820076531539064181912247709217017798580459853037642483549768144537960605653932870654255015768235996651684652225252910728427253657230623071896524042843079067939843030682917087560112515709274011525981706173155786137157737480156834321376102342904487112736942557213822234992801800877353028339172255426324807555872651224311745656197904655660347647829785823479390223631170247357227109413570079398277017868123938679510771222477568907105488214290936136665215855085883864050537125619436981753506411786571726284829376929357132814745662366887238857152035343261341550425638755262080373456867862198615805832541282954567872670178152579669873723805329577045914630945152477411023703090220502085097311065514461374644396823017711918491010873866375803584037263649554229801101734582185476622721676894871486834159370667077769864709228685968222325126638826364640404273655488996966862469000696852770386229828445604463765533228941749520780022484326620452575290595599409611923660766074009886014183799857291299750397385864858734439506011854251045012403305407673216184348498483732402261519401548758966905348927932650506104652018480213215397489527776226893849127709908371346166292109480707985455641428003939149921961717122640182501542653528059006526634283937170771001087214362970235714264418944939195879619027200912305199326870206366696836756052940976595444228221159654885043356309158131550246379610626872756932778357018365259423933423976400206359410468243427135358809746746957316120568672412446856434323118313977355121222582007201670688920646890849462782012472302401535159756729435261863396142217946252383751937677722488179173128699233829077423223002844624696030951464292701495106172097942591794934900934351100818871966842440969249680810857672512598524038451887178497284718688277069778457175543803560168719198634723664767033204244995671220614829909439630176065228362680838768798034613245168799880736489657924285187648138013585338754529454409319505308220633544609551118556099416865470154969045937762268148478537570008107131397157277509628736689356382578469592039438650822452172272378432606014870725339295720627734714605546302517182381750268716028889958625421641083920634522857634363749396673026235523576594021394687271369523390516581997381485949307332542132298919881247022914192160450136593970491449820344102429651476592232087883928766992228292285920287389416418841713095543770747001003317788430512821532186127986835692557680701335313149617544176598435688411375305554615418302203404821763690798798831810202852575597354306254740051296158892892068238627794436889853455901194211342071775990756928435437066217064511711043637088735851403021351006632966839668152172668021960550706071337429567708138639535203473678564481853918510423900960687183843263401576499850066734062275763435704277811434122677642785131676751672958793594801260350913355119544510979162823853294282191959954019210323693826517319682139313840046181931909622419946707172437067531441512469849811749310261288062430857186606198686738803726815547582803731021065795138743632746373381896582480874889183482251954883840230980279592832542177358837495897791373725416379880849756429477402677088668163007109536458706771093903224269576232677116123011770051782809311605386109035121958997505155409916056995636816411378596269494222789740387911910140396323443647734426849351752461519410016801803428604709659545770137409415366081773072712929545673911448468323977101205274405084006095254517059088782478610287660383775657539610352391641572185795909280112932503958610417769081625606619553726820824443839463613403999321580057998785517448474406573507112067722503846913860250154469471066253126819887535584676964431132182111724277143404310175871165695264773094740360631379308646034986960339820187849368259909614875921728900607733697412925745490127356112494789597711149838111045651069569425597915500899878750355283709565061417022527944235388382996194278929079579149400144643308884192988008382406731101536856465060806399523612573490300750367026198536152719551429001858574425547057785458342562251710150374536481248119044920643136101785457356672862397719479722084818525355292007670511997900883488753329701549277329201166598365660043763005409288011947241155263264365480619899493986008265710353945495974911648927530061862439078093437172594173563021097670348717150252207480130657844595770198895890134441305348418729358169170219272014040165254136818030622811419543943604959783151915350678293368793498391026997225709328374355439270136193464262446028179347323816755677314707849591838426812273163479040239504871427139029136642806748266157248726262716697976751910461681022620190992839215151944322326119780889052487238468221675548670269072156551711189295029118375554394352829004201882008548058972736926886739674848339207465627309486869928499040842031612819046418463015936999935805880578245898844688596901051917176239742167361355380300314457478430195270752269107305648122544425681533332871395080140429948493668091976492041037469225146041989648714468246104728919516085140236282130597992794584722432937605851513701075402534111858723490443621755219578967266836407231378793474043697445300660123112897136010678147173974379861729891355795688224062359083235609066883324592710827306198802773990217701452107250673611450341541413493747358144467812855925464674361544556640023757410377671217854180687101289908028499534153734042360678225315187142301362819402325023425954302536431369698124163096663526017281091274595810870710675484165448668220241849508210840108036058161165558255072843279228669967020285895091625000654895342180422654002132230144670964632676064849524148522713584314844787788208159461710197376306138256044832420981593984078819797382700714448376895768716069661381044995992602233436350550778732724565394657440699584732521937112486055684716325963268529784510194183892842461113459370527485202829260171450980133107048018631001134360788962820618342931669286696802043391059148008608613679100606692622176930378686641135130810843988874186132770676645614550613257344083496563540395666254820444507145826755440336587127779166101066291025072676003809321879201832618458818797507792959888973758920974064980318881460918686151220486755905983012301260673893064307205063888513211334041323029648499490720731053355620717499862470181348117432940901631295790158702518113504924639236603866743752526438027389624431318128893116447149853358772172853972994541251166884386474177576381289211071396251878913286645504671656488157934479883959444194389621032765696548589909639371803604862741334547931574848777140635124088695707429704589125939932226786134963733422264749477741197292498092467871084213815213882277348570513047639638088933458115525625289879724910030632463682080885560717312786354469450582626541737013591550955276767941037889298551730161719666566800072501211016316345554362910050886818219635655741000010565682282252379329364563803691680183537841460556910186666688202651505412749117238995631957106855800576707803996871599771405748654143128768160229026285022686255810050633176740170149737154142551660679592251368844394133129234633078104300686661587022373575511382346350072486420112236110195834113149437569039209358387167362483668039359945938447479572297988216709429804128809127768063467198723940281704820641689603913487572819185149406542661264074722615304021521655139595810597426692290549135517250968417813026349311913577334671061222132460179908698482145255260172079380460572301350904881859487766887820694448122462618939137495337850134670450685560191386940601557270193571098048230002788255310232995569163099474194226880416796987043927754951986315620429932232921782331490124132030487525197428628529085187308542930436128365453352556351546904275122891792161401544219651101829336639377355219645291149199355860733774864515526817373637469485712703624214063910781856060043996722684425087490624766362108788494899370797735555792342732163847038675848397311247343325837022425171317834963967693530065195094212390630320670902299808642918758372614644004638638277663332367600808845498537476764011930956742555234374530353759179098651603142274908486344159957720798689914326569899270817110453654029364946973218456280652511073388032308420301049398883582605552925958407227620942793673090180070365022460396390955722389116220523828969215235299786603569632023977926610287347167261949674660307930128563569830483544857072874888336061288444443869894974266885697774561605486316516870857654553845661407517188260703162271345334659047273309314110039431390165100953505036591789606223176286073056222298034237444774399094599844304836640617772963354724501879711364672305083680565745691448397535245654588805709348112467700213337128856687469433373691915909728539974248912617285790730073622412706278447293507165123521832248706659157885254577730944051610516364145913685716730184446585297231336563626449430211396589139246298255587870206040892141276720697340891549539008899884121451670658146156260973111559010240311547824583285369072613200739628015246967781272698968131780632988389023911370545098288471293954350683081716585771681338584516696123160740734385047953939511527430048422950624036193493156790226719461919567797906700194027597626746443619756604480360490913657118115285482496944224625033347908115835516416688818852989986413179769414537859327891510529261527729437694524295018997952227505612242938973204280060090047069221814073855723861336050520608816851824293071071257299129662512012105011467396387737854664160986273785941086051024621281320496241059762563831070480788668314423437697371696751840135189361782060563429206496139131451127486600851851205305384556278024586075846717983145793779398207316354342121494748939450454675811246311496642105318700389449506383365622448976004415000612024824223150894644284990708396751919926662273431902531058025134655178255321249342747361485834729064767982051203723186749432933021084821664363643564808511440560123733922861626411846525491844212620540242289099505488959158088716699351689700729546748822946352384561602167747024054055041179417762487245216840688709243481075539549846291908220803949120160768467164179154733646744604280585295634083915050403181251970053345874562196988058684853221607102829984982192667127034752510463498813569782002004418229505804807343929268487835154424616055317913897721526735642388086040518578908854066337639722473163938296641567131019287863905391110371586532110181579480897244448792598539398641546625505032630117857843038077606494387785014281428655937546733247916587261587365808502227823732127985687860517838843142357868085180397676605543461929755876019741744103941496168616265897233599668747539531055612267249033682630443309171603707610947776332242671640906201973129745175541525333200344318396619261674246701117229863217319321746295591258377873609615629250854909189976598266795613663369918966889948764998159884883068156201655180219602113711847763630528470467263015453530925797878719316083445005974741593318365729999242769547072814272866267394910331227002848784952789253788501496289074960808579995401293588329475430404368655902752882548041505906626941053670932609116418442014461463442468057397837627199338447051506751562037093400698249252874011418292928140924690801802314720165497725970513778793794272565576353012474665051969966029809266135961077131585753967447519308947832569577588443252662577198501642014584364219980273428479575577448413693962568057996782999297208801639339005398555547950770533807154240595645711143829232051506671114822811324872948741174077616583118064700298138476149649010304367765103946778218214086949250251656311058982958066121208163263262897404638618194048146564947923863276834673366039300526778559516460405390876512068718161290416694141902090313581112158746924019176870609037465661540126062266796676953881829177418033744919474314049347663341384522994390799636173378710491802131697912711256210968949502938861831155327274730645627566226741365732355061606219083868347702054504378450284443148169257675776675033197108384442397918866516731983515607549909023262782365351529915160099403435965581054498870665983080805006406089097656004186387425710012683518014408231861404198050919204565640921563511219297221022432193931202344387137036991299841104481248711364871915860142494214467760709839762632338616087555893241991872478396279430790072151603667401124643267122117615030907611707900374936159644653475573940316082317761687060033443587573000599336808429124280034846063450870495287332863616003795828723747400267348828772030058504141892257241940670990255006539722884582534260595063873282351143107900399110592368990880714636968359901748616466080061406435401527772139522691588468210891316418728185848977416911160926384535069575654722991877239720952878558178601999352287254216821524816117327707522524272390392002034952123266800083051693402900012932271860096623142254467565677697600216894120802044104915276658814421273044938596868769930577298454967306264561190396722825393613412060901611648497035683494676580641757324663129866749640055736690530876947778177800784342458929286135496352720068555598972097193118155782339116807450223514741187278852564659751177791596964094397341162832002071492198341185796143599190014058059117060304136981941270107807299890877747614751897096604529979606002987256598979123904059594751485031466105002955221442480772746596014982244610881061540917422729639457363222874480723690344016128204629228004808459331646698900101732845630481755129408722656603456313311560428049904240283111834158932731103099423912711925797772222342867335166172355601866924797869626091277078775032902655312355085420147216124098192192132716386080181187532132785947216572002580141758997068074746892505341940029612848726908418344689318281763290533468489804966131989723438009105570357503055708501681871459999794738344068929333988853288051556951308588276546209406766037312874887579488375106621139590467511125958706662781432573402821826336142391234150551269835254146331520378511820509580100972602251055966588922881612188716514870799457898077251329853703799674092136784747815324354536414540183467246382124950994959411228062421930828916410425767746643585170978424933603942339508008356508178108005043864259417317197470891466677524846715466010540829076085859724367707378612457865559839982436244862459474701032446664891476871052327886127958522001969826060678543114192988289243892672678646208408482862683634817521736662693003190322389159781309977483412797742478700927791990485519567371368328305967260346693723872499654882592159883591183281994688289061838659084445951873627890344673380994963654570859343371462027594493421236089240429280871968704206453638062644417244190107006749320446163964540699382592294667923361410334800345663630375790958860763301752975314757974239655899660447678888356189761858045453747961426061775249419102219255907030050698544766414506250109232847434585593191707245050380130226087741593751555155624290508667708544691647937811112433240505083482486515494396485037042284791286450485393551365248936720439676592516546319003959948223772909672316670536422030996562335789267115992594078343548937881331798681840427413294004274821729347497503565449366567601460078220014534493043240031444091683170103618648629818130306001419495857318289078742001563293455155773537402750005182435740940982102878090883177085556312946205791875307499046229798740980530762812827150967921461203060400577395574952337796861196039913798182080754700409242991495268818656587373847837104056917631028205194174519744873554203804307926609735555007529786423712117128329501097948898298847099621678408968444092666623056802719050601657338317508581564731446912950520691256488866790213810941777223352760104728001054577846412802458676999059336150885088615034756131077406466704421584044462920789602422539443558178432558477381473082474265547352984622068543608198593660079173732635135914504100070706717642811936836857127503724527389898537757132878409100710606993873226637063541905745720084855823228551301870808435823033496861283366130949830443670793874659951678597663241666460490511534320087804770793542491311349294717778169070769594937912380644240710136411641052747223751047748493334754221637622686904865533996353019970198053306483234609463132992240767973570856998047239274183078778571509857342328100724556527874247102129137640973492654480272701416228092962186782286963629284662442898640891263038976983951811561888493687099464855664032379369274372287564205527383622178703412177388553481701554812569020540195817528944320216062302346634235581245265257346773533972345625267260509511524412470770983735879021144622465994944474910604899171745224795854917409031521456720938701931297867258231242052627714112095638670084377806931764654494245154756973764012919214393127498812633454286489137360941241940599892741611151745370996306681634223793922340814811051588174395411201886169854643366675377133852737781876257494775115232741218039245085552436713212740935055148471555371633437299357704248883769161235182189867599210710342050231301465699129599479600355269394966971694873199418773163438428545389037092119039946222448086470348792689240384990730993577650030198293011638421456485091679991396900528922177983492808296890564132509556505695481444187944213592519292871280066777162571503664772694739423199142436922027999036466423475837613579186479615937445161138469816137386362477621687977257349183468972134912245884730495835704599646665490456324997023413879579471446295149108978344765055293387971369444435782016255032261342895992012350481558942970968873950777902961388856423989673608959817691686588662755640033920001626996813864330648582189979185563021920471229992327454097184611453729931177687609384728287858067497143751937249274731830872497918477835796832184838832157744872424495517301306503026709019719248366077475623334258460257062746012716454062982071727537720314042794940983035938320205136369543477484063106265953614045976990503499710740815084596697449837660166444029908260005281594765891287482357511974354646642750094475972501178215881702640986685278210967499851418003834983324344217834760235372072745397504500273601143560972349058317034472863672773368467613845705468411973137493789530074463567398294268024572040389794014866043816487738322705141407808488153509970834613940472390432577248202402963873002020281670705288192297204470790213165060119190383328545180717220436146115590506904415386752996270466637883083751095452151875837832732782841233339522328650176683945805160681300511446721729758396185064676842235085561716709269569660450524527049442221414914052244812638494655623566776680649205233491198783249469436284319192622602614021605239870867263250000340131765272474728291620809516112613033879919302153348669089122798137686164652075596998143946448562772916405963446954936207523104670265898828511573641025020575013429860919468929784116061502376808416694127725363126394684321096957639674221127866535472830924088763830286349152206585432769115834404977124876487060181896699549238859689146594068160326798625320810965359930141076314460785225893869873366573820225805597808866058012674707754848153035726985854517743904174869683182146064715273870076889790472263527514722738605362261136925650296411828126367289131558513075193146983011596462907787809839426805752059666770925954342842271751543784107181770197973872852839819777820450701447384654205569854338227526019413978282207246812574291181937988809593610488102789333438804891505548250130765638101094955386019750562928640415847656451090520414718719948214019627600964551358466061067311799491077471381909554231796566510657340248306363367132807558941904606199439343173621870061686890196473709498299358402278425699559675813378868301092807086988715548682977371684927105740332877352675297323670068037589008372231815804949232464486942349304213213873431430363197625827536395760634569313365908066579587402869815721432028053523603100616182174568632611954821444617076726233006582941068399533279345073366283609737233482008746029531302664344272577382617312879382623317862027284586858546087658167832849485608233154673160715636366682767624866711487593682256698536743254332177708113158185294424979044528984286327064448031686010249318171009456965970297575431022840737682129146385777356610829248110156389950534347713077110423710555495315629649866481566454760438085664313179881084358401371114094628127005573414394411226881996476056536638117826286242400193823953711880426669685501790468255400795254450167816800342964209794579009767894094746095915096022178587442943552173210086238395563137944506497826872605976092189616740142059365458890453527882761710794524506408445236825083039870155897981362915744395610895951111047452516191344325930747701218914782335051871135243993625685901383154970899355730330476961103666270748869887146397210138294810401790140319104936679209387088277360384637029853584443346793035036666304506411569006909791459353228685958276090351889001287084709399003354824067940590006046490642235493853377275859079121603852443794055440678002706426513500477367598144449595900565292483846854159708530246718446060731937519451722441428983975264387754894010400870026911090778239562991539159212588414066636980774111335504900756331201624406466495609993015579767056498264283150374861604765049482960324533964925074688336670385894317873981060808017224335378560220296279961675029583091833299436919773866136357981948245286395207102094391816798806717088485151339382153189711112546820627497738194940227548539028617035623613204156780475217607019333781164897166734681288841618526525220006459215676211047219176297873075783820926744869649945976984235688414290054799222631207784706617054734650945251743189759114181983874691256794112626141833922146848672704872141868381335562399500276084791464516917920117415140574397252172905383830471328126806377516408359371991144283955172332102895061098609029685784505341116270716804850841118617216261962027137628176763803094639774742952447972418957913258875209071767921362068050436220948201981315134525693586143007361628669767198955367462670537604150555752061607662218273293752360641506427782446412830446691298346903374993848661272938794280417654228508859441127855763861957120464204414677752484143596105239653521564930035848850716747819910361303543862665354392908095126415707593018666143762878218883405937976999180996098567148390375907118258875472582411659176992516937400292542447578863474909023580956119424004637417666114714122717155878621001301594933641569713024595657847619182541495790122143494272352331297872634422586330813616466187420269848390846706467058675753725475289570646019354225180589154516998611433078916599121588683692778307480267438061126770197945616810680645447921707726520928357769713919596438844605284382589051046976246766240670083525593648586616784284477454114450715490814877264449137246193085494686784068852727053306026687753711144578711845326505755422728996838742606499488343858052320313746010972210389648444608874146031169340839681538575088261487140245285260617423983475321454029321524241146169309699386357669498322119028684782754559027060670841209831785032531132929478813405565087216280100112569911392515847968223316128835303953488396939630422040336658992833290712587342840479801374260209803576784643599520635305655687643269990578445762303221127856780506416096118263956466014624520561229101188589076372874806487127530760496892272625591583384201567119437509869448652917725978926183257168758632854422409019010188909329922676506715744633899246866902968503282908284224825025434891921530788665355466494298817793548250957485978235785244962208140278970415404006024634145130220141264572829509726145312419744746657218303854684094334014536134784012190217943469606071286160386547819588443492496040841335575406262907668907522730967693767615678155028985639441484151989086384387826202347730097028355191107413778658414384925977910600378435373140533938254395021371419947709841282211283483902971176062459035042059684358220210384767410633838880952241284338494909971711508964817779036912084758990610186015042779616402431644156384457855458594201899765471792929285140738676778377163406230198810218651343735587527185743947533477611272624772373248136737361881193060737779475611762961921935331857915776008897633494416000117400694750055627538648760549490768045304614638034008130056866240485081360870414006746264766041086775282629004531817137169445719212102455659634748263138433454883639742770896537491289710234190053537668761878439174135152499390496075798298784238285119027566900425615798193664390328421171667555529263206559573561767170712525709455433053176549457264061046126998661953428946287046293898730979970271226003954501213791281700819144565643476742148570066689204073830888781437026465803228911091810645608878741591918647888048595373587891255147629769018679718160084806305246990010036929400937912713169017915119695478693436279138659555300463478781937321210304758152901116362816454632340835682889724394986721689489034918469969080419015469185815737143027493259699658681305458765887725671534600546137658150233545928149128879706318409764920826209306871307464774645092499388276762761111641320445909767056580198800169161625411825374547645425294581379878353385984329364065473696662414210653312351599713309989347162090167167255017199682414111934081896572976397077722369177939449584914807563626580606796128298595065316519733748097480448668204412430691284861032091828392671755498945535181879235077456629847289977740928170073744242454621620314446889416748034930399495925379684742131700937419026828911848516273004527216271187443179904641779658470138330014457920261987100871128766000937136936157356464574030995947222078322337846088621168362735911322219323477930764568945142399682092968227766773321163343605040569111251644217587202149861132657780743754611423682368192623622361712612101498588244139880760521034882792427575828393057765670187455515961694388529647870762565341910377348419326147628602969712003533697476022925519468904091369505909649197630169620567200324915186856280254131501003345650506275976891253285912554300800215929732422914476695867919756943101860792296835670928238692498540296213835943326514747192528496205522541672966155240866347259418098861279579236969328225620258597419903551972883096155967920997359178638290045521921745797173343467574114576697158405091286142394124269251141000799559987323426128041409156143577046198712980511803408492048103257338404603417528198724045044243233786712500075745135732662515179306743100487896218640012407601650417972448304009805545182079852284333724638952272321254461410833523211095383644447494666205866104240481460165385109428171107927905162040053772203964698413285528442084293339109342778611824808786195387222707411541731336562122075160109936699135015146422285451990517401175291837066272258631707237212909361884689656642344523457652781695766174111678131981526339721447467604681683593496908962153144024612684236967873590867241673724385316585073467276152350161632295063286305348403212790036085218081575547030560232900928646900015131636747813417705653744045986013448877607213114245606312518195710899185978167900604627238715119374912053078503247644943186594706762191545332629763440127982351551441341927912838963593715314823223702650164674092324436332232616659011424366262241135977398218872700758225848615625897159160199585255183026490971269303008880311025728902576698186340547763478861803054071611943733389861339618826640508213827277046126542183971279341507081466613078990140727723799949675877932141034999722809058693470232490197440912596678816542252002297395409339373997302818776887654133408032179088597902754888595404707263651804568232013189829092245693514379673833521053948805039233964103320565640310202739582449852407456438085473488672753336754332065912190126158175854921467089421245327781958808586610961774593743450118898241363473964538544112264953639156560714619149225873562460381999468982099745208901290508537203700046549630083052818347311980485913554958256925336050244223817594295047625950914278189914994925562157020139584676892107440678696291296601296316874489956211239399200131811672474191378283196532033952480245335066501197807326429474518097695107169945904857164113368211399338967338188115512245891567580855576565012255476482323467855668795340184184700914705837744155877769763924950062662180122550075750967177951813397196038562996723591233139700456965585294485491303566663057521756624757249963708986612678003262129913278851441475955291700728073150854479719190329397568155524963352143242889839410443398491400786760518883441080593064495736237925341249406082881877660589447357908980906699728991978789068968890012309980755924041197264280551691197598431638342691422439816340928654453723081263174934701525183820316295531297479884009187006119693968806476774780287402988048312633736883095531107214842606099536881022799038131397399475245858142619453593996160661779228761360053047218608688836588089329323110362886446522177013671224989389528882404197347100210747510960002583575710230740338608708404958508626331264924345237756362891839353809610507480686486437929786585221036329398838158833270545151066274577006729041213141243620124416501419013322206630001290205006705597468158620797433894008404950079125976984753107014381975343384625759579764905977010066197812315798981770090422935881869687642993083926215527523482576053874969895365591029663063753710551792687173750259295740635621913390024682153212418135831396197802302139269384996671187586016350252362305539017439173522531402400335721705467327542317528093573407549354051713864695102248551601201868992475436638137485650229877723027753631014999258289232533128916945101653255780500643957999676248543410407482931089616037811843561168233109063929110116536863782795887015497036823108387915504412347534023123141559467968911741571559151314391114964273665168488431705050273857050390968795599942550097029879600665520653857137006865783726164413837564746016612537197182907739596167257322986520121665789094197847020202374261920656380085941577327143748588230433933550660888786945263227153057982656504005509190358761874054314819348959217997163314363904584094843386361553250649450827717909559035868061715976435646008710350705812070057288752816582341343008967446704709576777251120893734251491665851465200623288235411800682251036489617206380297796435085100452977662078723779893371332999360402043276764667067045795412657418777031147456917318000733337286849609256575342068854598731813208425321856453668445549236131472374711235446665215461934609667574630889396568619974102182890348283979634846882549075085728518123627874250248707337689331002887598250708571384731517671329566458362417639076059828503524808285447505590558021930953965065567488488884631917110916404312496168146896679977428467671527000277982005726509337722671449139627543441485283833124171231646714437324396359139881631488014579343677656271022117267925245843874109738462036785781683072776617703130189928325749582762800868411469218306419247989461467557023160036045880764284804979213070930884983232836542712904150563857663689183609695747462626430236468656826326552045338954222274034851886900979056818068881648830455449880288670286960582562665880643590492927844983473566861509104789394178325636733252337214301770989785046971645888242223951153671264186952130650295158429406717614550292618643974906386064276717686917761864121226872662402046984468767237975646398644646528637274530044061887719447272856305348018837175644792046282797029247302132482848045962672872911076790468311177407248058243553497634951921721298367309055633937368772640024779173089770275290334700751202724628655132703162903823698293452272622815331725621236742201412733439416889188056185801579549031258334947127028975378316742022988559383077199458696800598516976575027017184693551556864706356314722470421284443212754870506346997611383513871294677639866112092794969810089860465763381900497362217718483938948565418958142393339241500229135092410835657661925911498994131955610463587771697586852611631563460614416914893385098236859812368380774944890723008233404658000184894247207784499079063776591738101653203785509967793400028681157417462088129928652816991799109812721679282137982434053119970933174248680268860120616203755656043134811171708321198972455812673236437515017982133736235752631439197207067178341541431178737236739186262928976701015556759615853479597543263853463305155537701310537220846428823877205755595080805982859902696114917333009005795435301966838213297610650149455671273091078384943257149776631326982999774873421144901836877639096965257609396572551741307641512171201392140206004967491924725019119750734377713422037789348740486627223249887547865398157765754310496272714665029656087104780717851290874841026449085934511266015017734920163976853923496336836208260151154170057035777047977434092626381045536025865440674493725427239461513116036658156140957149810607931153275036114591543286201800480544009407468868169015067318361426735804494726923427583855052205870224172673820507426410821135419456087213687250562195577689036883272136526326392182218053654395338425458016099089070339990759045086595700429566136071863304978709359035787309909978548573448991378333390133031903091637100551966162753320894773698642574123572125980560445286011133342233726013978305423088967301374374025437334271690938985364269404742281396403289623317648496593351461905571666117884940395716763122600669061073218571095908364447822381198413990212951791509506822108598704386186600965744749906177876939092249058545034948442097203833103533921612267702461195963402332794410502928347884895397341640018285919714766010320274964315407357594643776160710804414342590709929821766874498903028979270631723864472582459681263068594039878631062651216967192965262258707079150686062872750538781388677584535636415791238656761517014877602945001508532457069793647402633170772816721751509276736694716549213336252578380205087345552238734148800746764253984558512381285760556832278445312883465138205468788900823175150044321666638168348672983299295938975145204885555408351016462389248516998230832254472885635829383130808280161071159151709034916012538770247939228328726000501682427289697843831111595052520102979515046573545663232021663936437327314995426126239867548873195406291879090081466725472005757391860243950321171070147933881262376760005456885827311621840537509694821558641231197577130074449680662687355511829104836622836044384308735363012996363820081931699427851177598391254559081984120684689040414357290027705166053579290019106531638521232244916652408327793822200174770446685599052128008543285263477190237201987229600429229875154956863567307273576397233279306153240477118230030418221735485116271848804955190798144139120820538620243483007753486994700912909247661607662962165520852477174380863739168192856024437038687261998624988976255943396030842309445152462349134427046263082627618707993203286770441309026248152572255966397489814338041263415685885793461327986047524138443099354055358775599601362630175675136882063501305960078122327810989866937185294302269767061376632076096180930294395394257470698142819172872928413900406485329018113069407978297524730329078275893453816158394958052399852502569511257607398119604538971548281565744025689011899143880235436661486574637236789002664790437524844637962419438855895218753397838218993334743887742871926904730165868574177587108484532035336482997082529200009816495247097212693380038619002641313552388746514183825001904821252970032112402060171107599934821418428012032527321137933782278224874917341013869806376347835768220795788048908469272088646968901735978634637285870050315670201763439939844175934812833271337229482502763886049266042112292234987645963126952697276247270881360178653577462790186691674235784397999784022882126169897924968327641736239419858644922170153098407756648479254072685602190922028969901060650872747334524066047663653282057581073277224806081026806732909724539456150057748454652648222428627364505365953200154158341181489115034693794677380029533283352861562020091705976831137387361485994201040415394634959613274707572133007711829164978691248117427802550066426351873376369584828462398457098347149471277652523734366632926156485231563078586715884647170487091966155810996820840490482330573206940501877688033173369892732417711832846143833181264248207045771034896310936695245850692593215275902248145988791629404913947766052917336511559673776188744905585522578904632115797596441879437227628781449359715829400466159012629080548236194347323011257491237889342534236347176312487718314672270942259309176546343609447662695135516021168967402651005334488625807626341451486452361041533585713888107534488620272881360570801373059599726969350749928184915610234262052035379458537830070139305463267711991449495065233492076503650659243969240149772363634856155265943546232021413651582990260260975628692111966305501856613600579113636940478861641804150991063194145745619024661958974340442614240812672514343196111975684346631120431467906632809227268264075784531826586610569649676275707491187650297594905487979021678033222599706469486173239201055345474286238062462610045684948248094665239833627863876447057152799681344024289480506856375803530669498579718619834086280628588360525453088090752929479110071655708418812054237003736521667073152792336325099255616455018233878038283603424696743836154341954116939506056083113814423564518993122841178742568589359286603438128971894402360349347313671510803543534499090478126214316964826365759562415625636067202239906707748893400542880137840537888592696086235992468125464813901284923900357950404196632952274143620813018463114818996908652334725485487944535741650781296973747469096380881267126548334546611525471773755503007584319581802742693206271031079787707504833768622027582993276369381180674138347038563889402477336609192927423242755558748566979852587757608852644952344106690337922330843759747007202042218719397360040333835303982229528514746907811162864002466540410940493025794093733272145761279125532484437688686842048558082008510126908854746681695634277339356307923779655822873215570297498828017226809862211262995963819550320806644892682766462458352471031021648385534768945368079208998077772742883334388625273021224181727769062401021138999290602035263943710943077231322731134949667146990186776133704425686906330447285684370075607455668982838066432228874489586987045516745540462409534759668590553297930656403802612948193420786826937944116816058840943914719123099273132830254037722562598603452461057951953465063916557922991701670838372888310200375677640467714131973739246109843466830227408743785237364171653661250742322683508841831023433670800625993609420972187315093907005866611753829324634790400580031139332007613274736238811414533455532931825022183876754848593470182121342724166024732369054087593582845320964277058894383423427703024724297919904874441747439581075609823263351732883568780541898559060030929406673261930963168177790234979164853232738885602694672314149267144577653612522173419230637587259343688650015197539035596554095384778372474274858652061287942701511836219382253052918422787125293381270113187122948928724860668184725520084094613087850309157578292208652991857332330761238450258651891937029775272497974822412757892121123597997646885416028156374977664910159344241626704883601344392083001444413700375418510881856025063999782740083804112065828139021080855648123321186566189324125259945243578555359475154330871167919164539058959780477041127194244610156496487634334597803042020495363302759664112980746307694730206045056406605550197431360528594937383262189614409492919899282952830197077639022462259218218550457487966177417933117683168804067132585777874326692893554211655360532169856827209323928360340056156925811394901665104602941957186495181509712583422710447674038050478262177153024358699262190322929087023785794944214854859653672842270510806260069813601255167238796907826789059828421397096462168906228036957214622446175771816627372072135762843553160929017319621597667460300654632563930994798799951868136779337621440510625141482364730418814251829772968642987901382375607015641785081261428464221403129207205685504609064354594786032056207148132851967776820721443725984544530736580544554233812413974992061782343817591063985760835550249265967733805418613364724843987704521033172374453152209840431629040099686196953117249681952025074925123991040154110430039568107176731988880084354861830690988812640481043781076361908752602622204132248913828968616291952526939292079901550533737115518907494949888028624245292834413152577359913129561129740255484920052408598455609638204318288800404862207785424514848286757577891482391348868608666991934979536008062952453470812046220648732457928712293990422618293837998051675906327696224021177302792160529200699429076452642896921375592060815806603905141834633666451170561420674496299601541576346751555732185192878835964177124890684630468258270004014796781368979449415956822639536900164881905234746156075022014246190819414762507517359525525319412441546698828817395935885533804268412984818115304509000981789161914890027103479947543417821465871148049428564296381970907414783114191742882816843903362595234940889104521395515230421976635195781189525682978875852795951349850750869014150043802639132811961976495711878699373633657301066277237652266409849190029623327663850417593322162274125043093355817820849066279885289603425232085269203644171683433920810541219173374482468819318790883219520821774310196429363531608525145509613873925551723778035794898845138421218716286038096398008404207368421402496936760087436372801764376994105264509006221536156993002069019672440893811187790474150846207781832669455425831994154038565033595211713946916799883281011270357046732114334960547777653827237506084543632174845972578796152624504597276539977050717938388755130810442866313685887496627309494059559991704305479347509034049509379762812495262715680265616931676137529065187093571545224410027987467138887623989175085724887189372935820935840470458853226649025118792213189053429924345718677520114599415915312947829154396850674645056456399632590974139827111943932167107027397229697867429874864981972399391932129187866513806857573167151450488278643266314574677043233172915873409960721968969639801079305535677958275788591370513157285099043197558121829119296796096051841746306398577282382357853378189699343678922365976359405616157265587221927869818125521458759700562780270550739393604590330805047376620706544657153775248933315931428156565769761151682989654313321062118553437707749717962209148621564920716519082860887820991363157747580803661957430658478204801957438084362508208572740124472058146687202097823864630873247051029857712956657393862382426327232902089235713738232849665290582241408610540564248735838886020392378473423597751968022250835669467872162064892878207279922754362175207023331078894504331439460527835249324172916108600301539350889762759562671475408348040420843856928174181421183111294591398108096885873120229961767265170011326061914419962943331049559161959316058032837508530895083822583518211356195993167412566012849862861111317457101684760890127200306482080410667871882755759429030223700494856016824719839392998249213638023280521144326184901845283175709711412208111895699151842756428939150068982232813096414095305218815937639850227914433100046171212387286788359980884375462661371686092249456008148242166871965257979176024966859449186512324176571087851143181647859203465435925034689462547625375627472463423151376098413534618841213994032219091848666265245909763934624240109106062524396970457646481733289422805988006504417349636141072600564574266263669122926100860066952547348779419950077179559416929225912469320890429404960281807554105212830157516174457428537120587479112360905189856441471203049565747666080796650916473556274549517322228282991071203206249375573126577211561644479172291713693335854464547959632886908411525664453512717972264195279200359514074572015134848131376904607007537313474991560336856847282734540593250491928837065563886517887314566321765041792457045237237020558286486645589569858167062293174237924710623168811881443858271712064997752107149732093550906094969558374012130342173098565168791770009708393271706312289274287153136025766534198597690239198545468016650755327176083517462893514210623766438718539757476012190747834785506181834631255095440024573261812672931597740330913335321683436909022865370487391980558687464301024055002494398177634747826574709548652937528958026021516074329252977709055744890449950223212128935373573915099501890314641480614859506833926408843766753991726367109012961381047058785333540129039324541448399314173131777764303665426467589611944697644271462775106704538043290630426581130599339230974215085148576416898696011631714274029727024567849499755524234591192068335884542056013150752658926911321755038813985797340400566323289519581559895585166141615882608208788347244591636389334894360886559381257735365111323151013692656959914886263860797032169116159206032412133870862473718753646741004344043025893709976053091264551260143476186664142032798205069403772034793614949860776804687104199825356944647145762434738223149717335870155046779957043420368112505881354050908988011947694701085592318286303921371680505618328163808762262979426182451212203799902115728702606644343822263523429386014065039596471095643995684850466940673328722229211303292207201913305252150796549632219921014889167647716534677893604357316389159969463534542289396303046292458635022482086753693095440378134117693095434121595732719591404150618583439543698418961245728790143798752239920682296768077950404037613562823820175241863422443879947559550067906516812787806497242329900351177124579924216925951120116819708577346546453806883524963538691106791370859121347551603323087773947276106704888254270500715160252336634422901662533138098585968958160425230002819508920370053662257894613072485394953282152169373749036203759679866276632470251922966776948761227773900823500251941518553421081666049327232432331435512152168353603715255209573914709838533581602485336055265263210578203065654746345613587483418212980058540315461177761848109384039457662630201329834462936030939956516874823024918862322922014095245761505797517338283960443428958838805315396360949964799225948536937211451563356640438711966971260249771378826984925846058076797255936600942461238129971382716996714121429866142128658151750174744726346980849994424069668359099932287179267477752123477011100156859459681939848491625896747205428310072367331605999392764163302736135968863361036546594047003115572095702700773939557075610310530062721512018957909779123797684319874753623218631504935381175611676649918784808237094342200877559841693693150626907631235339332533654389632812881070461965285091121630242651934675933515547857351407924993082456602734288085729697526375831607357488758316625394058029301796591356010384607478081500469206302254049444937654394539496393667899670075773294810220928412908093474721024461396882614714137618048317681106003907627752075281828037981618482778366634921361586917197487687576000597081213849114471812325403989217521408251487719549023879484653706604407060259021835540669209504917086312203736925279869951339555249609442340721504883499950049595247378899496886812717776334980847766595242152186023837110025210604525788806497824489053322060935885467824714773048295516371201156655460540645837127982626990937357472536673734459537527334916747297216390222006490574925290259246342992523440179171626843423827683577508309160079554266631678471962223510068306213417111803056728913710181518112955522639914798667697790637838141819733094998584537512034077283454945115277045063503651519831776005810583011857979094911937130261498081816067866423403121024747764786598188823440106422654784177968499957043903584771587443649472354020550574898920506330658232884206656133443759966802129610650608626818815646245643723291125990778013634839747947093293643734936922990768446451888818360402326502276043539935058498295013818539330665567282324164007226296551390406953216921345363519494682564860442067847163885655567496238356064846650596314849803735422336128343889276662357700834630839260719271692251566682780082632838352881179744410201272231284491381151506380016718410206059052426596874476016028800040157950044895994909947125330716497836180913154749394479502587811191895395463762926261167589484579035669236612630130928116335063386688013336708619276577765750754398388079738482837383465817452294761905045884437025435719014893462433926620887962666007518170991660026076704752641277178983582571773492509207697134324504158659808159817620271680117370565667426543901715125170738666832600595114686322319535005536049136567240985532281109492002729453117939440553927029412991405380086795519496867503120298958299376258402356143075551139676963484333813938097337949051631483615020548507969426482149626969521034691178546221618168069360568774922695659245740034049555058860748035550713311285624063174323495829571092723337087449471680712372746551927101781624006016984882539444590671156484848450918328234387731830576575635450834634111118762774869727169647606157697401304322985731539015279682544372787135573136368104485155339778551912010298191632648271647188790379045727236658685965609450185529682998054557721693784273581316541568334655030330382537358043410959601290816980417741515432407869734050839418449624354274312069086600825262425410672861498223589710239141682158061078321495570285737813288752283567120691938438952988246523883355683859902177089082051423582485737173074791103616214016270486664356025255064405712269327627511021895048329666075125656917981820252413969393894704852414235203353519469242209828010527792974209064924845319201477018517945044022166135150482740038273584537567005700595572151114179960779455313992660149004124749988789628801675654295171823224612788597708310961703537554353319241499745629900389422101512242838607697284353439779877117269618372647571011007717482868175857741020640028829770302799515083048591300326390776582126219507212642251942874468335167461382349407967988568183499709108541528573467430279838708138966483803930502765796442117267633788282363853107594155520531159183276726546930215869632560642061043277356051520720535948528629135666230839149617726738313910181600900942351605948253119058880740732522199824098659670803971721396054988967601918521188813344060176238915257187740694108127235605822368833453760859796001502123285739185763259427841824102779771765921264611929797148338464880806463383700565032336352255442922085240558627836536807570301428549950561640118077551824054188648570236703266163188002869257781085143160354798125015937723037043047328160676240454354430590043570026130260284927276666348932579729268503747325116480340966097442548727727217102027610351535408362705476542829309301387205225658793302324998149042713522815666201354706499693965036010418700384773853040946345521051360692034564877639457096617395130486471942052000787792807749029512800263253322142932849430025685114361982907085794691168547154885634036385820715490293565900700115375435655591273044163515506179240859910970435150624566914395533995820331060428010114898410339785085968301257647150969867273957387798851499346020729300711051284400735251413627284865614623032622392427886173929949949822208800279294525302916471058705914218687871941054494160679953372429232572365539996145598040691846843870611623073758262316738814516591922610412258006069526630333488118278859246192091424945964636485009281357737585010261396192224473702381505193983946253153853208460750705597130187314786524174897383238860839353786809674346002425870106910124010732502726974832142008465433213644407562691249985114789709049961293834868123047621746146459777412145722000779297806758314188569144830816713901956156767700700764497093487228961603452245487973976167608078349101722406856828345327249334927881628459025124109197679879555213798740206635931334080701791028921998340279979444271979591291198204298106757169399872201083980752954726378607664487678351749751403453183727085510130680769735333962770261634748088397364726701940650812292824175762554762745591580881680408835082688198438644691038359892016439231779233028746482259161701037339461621436301808214361498951075393700741704776201657920603320960527014784444614520994925993846117403016005722250554205840909536515945294773128451735605029523916022389144474026819377724596831609061893871220376561152239864988746757782649711307979553912912779746824796818910071574061744505240677822373828368609702533675678328693306700578648973322987396157799249173044552394227233105117958502825328677110120170483995799749008525484327387195101813553851116798239209371197225777817611809746851810421656691833082631458919824755118721453699502452919824695227904003062187610170479906547125182334238213881902307383000929894544942579645740808089315398306908335260521098089334527875756190038957352467649885627536289391525301258236808842284804696982425035293950745738835642231974772290222201054643199999668126144296636312372193958996928840496022589947191097839660558708326753542665814543303763457412707418591541908400678979195397722120530071652194547371108734932278448742774797913111026596295983969898150706245485876573271684602678601094443176724167982747356127378437506266479959227570641247277690489519631379614768917819681817064024716989987795428745716971375815835566399460161345699044141365403966616558485284118303734553351350487330656813326654113879023483749238444311582223421735069899138155104640937406463440443673169820848199720061730607751238007215207729077953676260862278451053365409805731592744477593695050261746869360299025662849125078209426476241157731446942374585522733961544546386125542720164224491653885739504751844167685419671524549902036195910485704847771874068615686200452593499948469112584045805333960201553003551450026262496969773714134698236539318774625374842385445326527211830426370801739183646432069755780875304682959990985391241746231873623928339532084736053052250942924958457375947950683828616433283377083921572460086661273469778469226375644919310916396897697744729409441411564279364889067718366148672333056775827279852887842300214023872062839867077986126058962580666620488821689794553805954718056337525362066704675785514297930259766264099925078196168121071852698623798243910596065531081665047835840979723427583033422983234247090123387985697158900645960339767384477642109432454327365863159980561507663362776423492007696815500793107781981589126676477830384912115407960030147262285285855395361415779444432558800065220643864790023844700688061653636996816388018771764435500627009032423741710457845084407808307017999608474329635734901425498451045830698913720962104998957069549322818416443504619507644330510022889426572389066018864800687517110407848363747420905352927537235123449601178484545431262566422456987519405020886877876003533946196501464055948640775475975995161470919231982790622801641709466782917634541518597831340152471923059047285206679302052457815441300790846375731489382466991953935614337030168815744937335664127484077161778952341227853551232709767019358317867238480722558688301261320628520551631624790260378066060165821341450365741141897802753368718086670514402850408655827180772971666548417696702258410850397964850782267843667052061700030180859009582535695534699034031761352732174141732445944585666473007162207689181046838401984142865484782129251087479689778463283207084161476817785865033966545611200618930737118299880704427483748802958178489021405962807774469368607403310965236509707498730418447570266195692039028259842730555089468018926507762311560444793365525362627285301763594986442348253144537988048241371513846767193752529581518340021034457227191624532035577725724187205801770196399316411752849420878060264051190467452173043964734715873401168728600065901672625356682896668365707309592915350091835993226363060777990627766709414641235688137587944662024190847432983689305236070890291107827891853842332058127082445666794305489835109319934912687871828892458531316360175022567760647998786274758817445765616200896136322957586045149399510709716926359509681174374600106139165269305805541044636106780977106036287312387544204728705514889985767872052330529323929489097434185803919703570565671946235538968814164832172628124602882863722993840325553206980410870195909473307460676242312788576457231466682170565367843551544963107727340014921304139432893358807469414358944855513220928656790575233592813084704961319660658808800451071180872360250665607234379316569408773307078058597111599549648819288453735707170868463996240021902740045455147961611920902246828939048275352761927843332613676552240175030992561508139984386993397497196198039042569340214051866536262218459920458872371323459392902239009254872572554970416633411660132767247159638073687199160083632724376182688617391944061405407714369500850102258621264884974328714211688898545276873255721806783561190425917389455947068629214427756687600107878917934759649445818889718863904201161703423199291157297749286348000213044579916939011777224966010517977047407048745279957031839908707404913963755930325399021506083153139182788988412605930156964704644521959133223472886365243412070786430538270952672462265687681627307034684351994475125940257999521931401552184376175983253866557021707559458357625308507256089060730631968129216031606955792103541830690337413046418444938563526530515677088498919129117483008151424046514179361311908230124460652423462172536200896282817683830274931051390198600822116117206092831036157574669157875566986338392483219472474162351776912214475918001990355888146368760838612654155944026617444642602228466467245750637107101707824587239216574505356965384633205042984394195261870759642059364350337542675983938369946290693078130014689886958695062408809542150319580275686605857081315411463000073047145377134584750546182983430377026738641843509625489295377460062520445523843011147045200621963177749030534509684121634070692131821465302005452436236424748317581310036770008893432314155938732988704451413636471425828264644095723483394280514491626443799119298302597316138476778810790208705695991510807999782436502081621354509593025355790679191730319913619841650702035081941788939034151799507779983790884352201605015660556085036962978384681749590221103027722040384381494750468383274349433880845771761698421402900861482577599137885830371486850562997697453080760350434289874724584292776227062825327654779167237697011327842234516669348329513989017803995291827352178077443342693961882643457382704407044266813162091845456139411363739410289784392850103224508821117201170870051266523345941998301415003303739769669095429613943298632418445038107476476235691913032111797890659152595987023695469496166210003864872814479173199776150557539607379375234598767040852748405126219793422971626216389459946002340803808946000893020914522303708979278071053993515048171026101441463579218993035991587516265683820300240302147992313655901017860581161946950257664763502722666818660233316634691178617817984419600000706077845479182683548514665939248952949090349412421978370067763809126848804123645514643424903476396216042812432347282475705117122049131293296190526583909316854715076362741515977104414224961594672796852331712783061780125370441695735666868828651915249211443725640427382396428444715476830279703064356357040977992820911054216632012220525895992263562912602219752402088376569684402399935528663873497675441243913577484366402105463021385098053383245488364450411730564507386826347718396018059076741733318930611404723766399008425494652089517842740354312114613362966268184398426677027077611884970713966947535650170537491072573373698793388656413216973309371687861718155407950922395156152727251472569004851227940783583200239043501550079009596004461384001355912203609385691308697949361628998885757714067290898153916241540338023612952801405269897079458288532650711854294858248868111852196890180879984600615905928431586761338504004036632643076729459736846017400029563727038310055161044893451225563385899340687013923311108437607441146138260623124088499737985972749350983015239909727556575770086324174901855860259755980810000599926633696197597936896180938928578297322608523283873993189320584880661553705784979342598084202415427621038475521770004282371964679705884568725904544186022270478194512791091677587641399545623606677276484707139790810753662223532828853134605190356303598276406097048142013257412563391220996681952187161425617236459476362977155429410920013404768251937474384396568663866796588503514724098593399420969427173675100124501466111020678733805520714004529628906069470564169926504879668216780275465541072895578055215975954349011848142687627304024238852933962158620401432123024284794303725599869984570360216456295451349388803463588609324833521892807666143342398881462271288645657231391422577478539238855374903783001654489133547064233402772767230410946559703109862883872925475494259920979526195142085757686867628104508276115809327878226729602059234636448734890709812843730200431929083447768881866136676916014781839223276578207139968666616361519565370052771755253120197257007142597440203860124822338276134255363847683646327257944092863620932377332505515087528465186483285507170284171117654891124974138900646121280488703045300558416009571344009194666659556444354055810363441070431223215808864530229832595190140819545966595944977554230568317439054079053480447788696579064870757615880094592876239143431281968126391196182654944060804372443395894363321955588697288077999818083772099362316873656807064300878537570870826747722220931432634896097297487500558113719528045812020547847753002133949239516302022116394564573615826217082030911179811525632022103088711909100410708141860925409925852464038339077206228853130659109226411144166210732451080381958933294722206198189925410970410312822080783202570403259719572325696691092032649461692339081525505029668629605999049465891948071175341555589253437103214671226300429652344404288983571758142752810688652568781572942055118800358233991193117877669882700898224984199338499101346919733928748827539626914465559139000004429124976372258223002244046184502021520890327960985064620105822802402484823239478357469490241167734659622639508198125102587154212654643943927199092040775699583548583194657216061271899874980335243921351958342652132398005443968172920482137148238563608258002957626203660148141721731793150212342716431356574585094304437397217484705946085164221435619548482179981893619172311994308840653375591212128847108680745639417808491347923607794328617187078962534135430666927294761796629904089854086418663699388183587360164004625125040009230814964946636211075317834257114769313493886383587502787119512514741582407902089553072877005346775554119737993876024358554131261270820544295965925785132004912421538567537530576495663922865041692565469382633660578896254374212379432383129527410831030524880528815883101429546222026963154635132001590779698773665447410612776971777960027610085084533576224214984271285418923183623226422307056943111628215303305654269093363687368431777803433428542163175772121690698307440759898275054128368376797232085760608592621615991360492938177424578948276750417962325451880620084224927269771470017988617496455833802021330058108529348958537777019516657761359823371263204390233131761642389209938611115432599458745521651144025979650288296558724575789469769716128069215369865137405528393630608660242375166742550908161679837921949046506898417463849012135207453455770635338491094200446816881628000396120089282494038088938152294846518324503383432772606376492811786527233964225895552696932545822338700314619271848921886559457160198516030068272649257649295982498883659706526448680888135255376589008614640520427570718720448728629336040419577834075860536483680940994784061860838099713457925712108871061882671272051419828363828358924497697031809892493688576547417236225477448976161062282201079894840578094793284544918957775732616866413299259544327658274851596745758401804760384544271798632038331567581006233978291578622258438522253785358012499993861521041229188139055137559506138007656177563311200212431474520819871496207720076365097142176454169482068737438091427483358842153293022532063508428565605111345365381538206515159748652564127333047286172101925226867643497257159143568661149870966671737981775049550904474206949728838610906522270176610389663394818080022202103120035602661678848422952179414458999159363514358924156901924720972177819947257651790222112604235153993846166171518783740238970122574387514535236217752258461491174343317126364725922557505267738674105133186471194769876865890160583854114472164045418095289192227826996553088476131958586420768822704549706049374266674746081111627943031952824005218072297574502878607273660280822151628936230087166117038570187651686282577466629047101244708814861457585806022615430349384685892173469223151504617909853547034060630636173236540329901830277882871070923240521647245028536617134052254323052280249790500771337773780417748983191611745785274701190215013670700138621280027164724064317029822959764119815857102119687663376093921908773494685691813836717584445778516456907336459719392363864897919009467945445601562539155278327364837639127453432780607800160320695262732573232493510380572868058163347238097416796097376325325441656857878961729930427477693101426557132510515193047397936108506848537259957115288929012498728927484832938359698782218762476713434646082966773388302978047090266349508600628265507097734760263052817780589467367717262140901892677110854798560478886488003485412028969492334655005651280915281850023196548047403823141504735833514462551018616492610128170672007950174007510987835526161450687307156141255020441108215081124737264339100719223899304572698306504590136255748714884469932015776682475308243170182339432843590277226973263589380320608537604780435245046602469353950817099741240904251024828280990663178396684089092258913796149128663685124863071277157425848488278366683584209928282720958874893879440723484893172907622168512877635772494679327960246021924178255946765633024879500268342845349076618184972408942127943887041746542823727002167067569035969474650108153633842265043847578754039627960303187919406728577235288907620582082111092170136647398076264944537795121529130390421122680540506172980619130081542005971830920178327801758170363133594646251130763785853313028464711241195642203726032529048937984622369345680791022318900298506003768028406958762866671210970300604319124250658797723483345645467724099426418500400041736418501617980810368071484600542904205855435925461107274409639678297788294871369072441841009912885311657177709588191014058048691325461006947272625947850532148282988490812072546788260208626008221682757248177319374913632428013888100269251287920940548901410937382549563687548999183217063844716506457558617825509566677549247990363351301945612303920851433735486138068745971243667123277437208800286446747361476956558766036354962112438869836967702678945326268445616478390341907497040556184106754289820800637591485866142830349346869948381623375338093132455797575494896830214683985266989975251119137865885707571007720238817799423850251913310908231458860440294720641573452645026808400263763367264752317693448122861856792707140426698769695509481477004132886426757147573908128536147992175222345437195838224465381258480357853153724729534935790393201055283697157153608300222845914102700116803158890511932741227959144378807111286771619663276795103164381591464167586994196912543801926019261156859776253260298150095868649078444585333389934433961965401418362943914250393171973604163994534586160027606512726101699282793468140559783273690190669203904962465796481352372353282804022348878058541410715623949898840701397964547937278524971233769214197302321100790031694252446708747801451102710663803897645986216088542666788461939515737076125996736393132014083362908913471816600237873522057073814973283674386624623267997937606597963961610582352176081533218278414377766489785091084249596689345400209012420816198252490519003250477169510855255911965812570327648217192867604361077236189629186423130142861489561057358440127733929964186407814490199453452109597453190665369842926870668536377681052242965450741096198064851371655554512683246376177081590240827043256761698643624688196654379276468691020125930962896163673325203803182507654854905946727120532998669880194470799162721514679816776336308171607697216127199726915444920304631187239424907441373754545741419393478447055086667696977062296204403653000619185457529579392628232970526280976776286822967020525371352183817528878546029081099656906111674411240103998260524455738935597613727834784408636695946564244298033499468596025431904522199117064956135993012558653279069291434251208974556753451276672449521424904531235544019893742007284505710960615730610907972011982974362778430080416598624951652718923011040309164165205414806925091710809329528810441133591798819750686220619279440458068332349735531006513232408425663852121890322417400372518900797606843756366144903340715012880551477100063158056528304658652856596162341805135755744740041073713812674052595438077015278097745910442835270367768639796589699297342989660026346833696679913402448562607703035306443739617494216912076035436393482888770934052345446053308399351820352158848774664075874112195502425928433957576334024838058402362539389053217802430734080995005256020954668250818866623057048486410999681347696424181449012568912358074294161638336971475457133492012614839402882583347215249899130094420400852625297425738154410469426623703157165815510046526189406660604561727017474953162230966680449018550795552435249201635229359176816589029703040930425661469319051604046426644271191065426261527958218389947368344859865847604769887500612289533038805483471263117955948732042319275307122429846689529940596748473119316359640515096463398692970705261439107751369698420842085963614901603864189906267380730640840397746076949677486025279348082337653559318141593180719387583163761877215879958487302144333843962005023759420781137383686167487255085648239022944956078495412011801393715011731410575601148278582698032338644944334734886026978267939886380432146616881411358869382835379384764549025088164869899094909609653436275640846322349879563222733254078819138566751294957693962518409764746254969875024536198705021645417832657580899631700148175683165077791596554137805276985682770130929385685247968872057169466738567301511517531930020312032379212755362580578454970829625965921340617426583442857297030740562278442859607763729392152579485082803734116029963226551502868657747031778125716952938892326592937587870394860287292292814074674177010077314029361870379279174889054230280420808381275554650742466041103847988493126714190930268618520480750330555135041703587876135502884713530928600894645528266875729718538231341547631071918252110551184160769771827736796327005892376685771461859926505970405655073519768792051576827041826391664226819461806849869878013062660827847046304862457467441371625550585919700446889828338787538204246550262142284082380721877730436235737664779325357354056943147046886559334478258277223244392302717614417434581832232933470803554903544704302361322146947499147273421750032593185622573833280406541434432826511982938516243356706835298971872532458160006419939495509061835988637228355518175764487683375720339276767417779462123847246910808749309094376638853776725104619404537887958954788902279645585944382887726890740771762378512385389611206031420015749699311996431204908954403235638685620324438446618619958610209575214083927662537455523232299286077760073442711855302037741599980623094157603856601563979370962296685289913869419737210693372715424557046323203309701102256579640623649323273747106637822875481321936911052278148676137966607838944031518464445114357592152498092118697642385634101018554802046566049927329262055554805198830562636483572501016703894324816750947044954283892982549219654542424973259575974036953838651171422624282106468478744259198759408351777186401457793668654486544238117389418477320861017448802324133747997741583201799997307731634880550827593178722290288167330274505562008507292828424856670607926528802632176413847833660741092856999523478917578759237195922368121452365496539634883376751811682612934506126511400662005630725750837306956975978135704607508357767697466309478077070804251291400627403295717451604548081334547166528495992266556442831568440789012050796190909455810441026937049490491811681971728770566946889283993389065707799337520607176990244104629119776662841653791909406717971230179642499379719842622967234925186530163842604049031800531694295341933992686135629035896516393371170255633191839390063052538004013351279422197861626904789151652003706981534610418967818361782649031404479966678732159207646554088078722758406193233234628875476513732264927534689507698118502495614225714761289364708527206524784504922628350940040802426216154242991880582743920417634123289530669460276237831767836690677034120875725922516603700138881251345089492209185830157120837283866577047480359554152631077862751494172897595589448410098241362312160433558796833238552165584675269371690711397593888147594995661312689079306711128060381536035122495353984631501696491302186637556239940746738808042101800529068872503601462714195846787533050641195231853367837695943355513395737286803460931870073100974051802763840008427421397307580785038806957402871482243616069638476714189643082325250476617588417355502687455671241202673338707070573728116662081904841128015419577560172458365347953549976838702354849402934068425251272986810971547976798487484137187028430553630781219108677543814199056681021172863087266677426188805149274251277056994630253660193909726110390508010286953728918630181279501317265379217316845582798600818918849583689355682763119989928305769619720225679094457299441750713880589746710777758435379193010548375649283817772698051580963423954515885052464135243029414610163797794042227758310341391021676334298689197735220099988278350376752742894263131704125268254446099106410166233945166626072673536894466051896013451529190518695147189732624611046871801598324825015080406917868503926827796454357796134662717900505511968210885404470285662273121596844076232028462578831357458443091390121037456235539425309644764371700804892768102721044426687960981647842776142413377972846297512079208820895332916758425780210947740899308308247044891580818178074748459604692717051697119180594573706866567042284604306250550750331327865521918209482553058676855472704784241726577164497960760840524049615674848335391277005505746137870234689028282407438578147892964506643295748153135676915535347393041013395738035933079150237231187184608876425031189710487276475027118723505173198930834167170028831310200312315439391233616539752233136449438763974305836395609528295101331020682047296994743997853645972229983176039617905863939567268912811163564566705861347188108540518876731807095693828416953478259345051142179141264775803966740671610387311927965566952731905883529424419493629188499408984395644155772236803344581970049744967024550242956819681443740525320862078613330395137556328794994704700209896700768227385275790431734822645601761546731123346711384626567773377288844257519054141055374305406024230357492828589613253949222452477924910581237080638954330189104213058568628697662932602229679702316328207649584838704413709263678952323781236435954329657059466031524350610562137280866818982505248197333096172321608544681372438214377615178871234904131384446434615686166694801307571142811179195704804648764530045782648705905104878697080075255374826197821299559563542712697802444215227869728186149903449827188844457406052773543122695876503304100061749739773524459650247046203479832364614978345624348458378110858182830532818442995553166351064624799391175324668072956166176463518965431660104669996303949237334541568713205140670098519663310217413377434841702472691364578978984321240278748310089207468078204185763848539441086781723399191125747419391872164235640263539039982332131780255059393417264021871910677269557059755372845295920487768472495348846520467142239915127048047015469541173778589897180827054603546448046861372767200207114600863468131724887423673029620156726266661925161816866047520984045379154014509176011768175182425722145823712567731330389265911382911161598218199344960976505230700906825650459040292870162747950401755966985702440279865820873842069042061580810946481913694341457388737211368895384367457935647708389087062606233175703829475258097475617045344073267615894215466282984488531543445495669691196824998571522754971578610521933800844319773271289787801338484938056951485240844667463519993205824215678968463150551920647313776399833282874478993879747944109989452790933113840869150249157512709906303281309660524398749496995847422443117051512121804224710451945126859695446186859128503864984143625240742465435843736601610736419402613450872270842921089813401355944836237993213486798090434722661022368705359140074177017248977760519003784400218899854163253872524197015524699669073488916538281292892218428521122125781536302422350325080608098463672567191476056026421954456721084154512968095343116255560014713769386541567073723916683717367871884949706173972927379391673618276464991624934132070043378711884337168552551952022174674884555256355907103116744168622873886541192375815860329645259586527369038465446330591231546782974597422561838734074402022339988429030257175210248979467024334820588362476968534935146835473128413274403955785778690001820869801198147382912599208326294578958937255623354479763434755864283719715797181311683002659108988723341036619235437905045271436518436203516098493851429340856861676407701382294738587641852872169008995150230756604150746661278376419041974820872956119924316907289728512115200020221376266994780213895765542678767822328399124650358143638929381417359300982794451332489403798416695850667153455121129967285609261106039836741396763907658161761282407114061177138927659058280260764334312133823558460154199630808372159175526847288175760747116490790890620625194871369752911556597012909040153582325508335846181613047538011030818122220061376649700211370622560760931280180202822199713158179558282846666095970028082640005039750827915470561094968707329166459502868933834203216517363889215461755426664916872222736815985144426666783686680532950652790115540688968684281919929877124816147830876668618078112104525787069647543461012304704172701121382434986700036758121820032185806738380178526790655135252912993393917746983759909570841218645027159821466841172235930670850743445783624689464604294390007618887873350195024127681165969338961273021236215841077308891168974735275997021696834988066963343813538433764632142517671773813045627089430003085447227623284339936623167789662267689954349291493062923483175980242474167471321603856517280912805438945215879890337718445787584403028052502345243997394725461876139311952453374767746431085396970517680772799583321382288599236226053332226759768537236446909596025109044738489288993933577621252587554561655510450175143590330203371265013023378747916888493323710432012366459842739690467859397037759727192860074021238189769888511757382304389386111618964033568007382961035102045797666431121052370678141988527475127707109362476561428862814685379180021845294864074347203640548255095635977704492337613831836072753785862268066580660413951196694992924445923060432269862397138758580551895408618177098736435591279833544656060651459800146554253997178699967746552320698822769756572168220204826604933311302197825250064927951479926187730861077106865132484674482006431107204898696683575258067648843977729439303216093653031330952510196109774062275995316581943728318693032746927205229615541067864471312924282453162512837749409147863762731256205533498089615082489363159688476409802757317731501609278105503675251369527296151706086919043934752882839448622765239201792263998109560475756225035973008530308605255535875256625975214804851966202785070748791584582300537738648945379592240818823760053801910636257023137110423931921177095684247038901315446976714649539154890833307167134005032502630636226698132804761767082078648661608548401713189565307618432644545302400485445770757174987676045252899615792630224272888426290334476199473349335328843405571825687069384780660875942839209829632593259429611642196751234925549656526587844449354231042909993268008375720291778258907321663656214045931541088139890474304761216316575480917240490359954335295736590805271658757616987307045225644713430682965482357790417939228603432725698949185688443976013037098719447102752883388022787918164994189770411105199642878320327034653526688876198778657714551658181463343851705057373630940970505895880041723755834638806490319907017127508884871631973265716234636192256018483198081836254120067252096466720684650896646424072616390076155672373470464141302303136866707517452989615442389393255065278848671959267237659274881510777831139704915933118281071157196275180559871279734184493266755539305646852560980177789394916440953273425350178171964193970154932584587439202921085216462063287477664676665437344195853720395301174646414735397338276454242552082285303465373757026837400238755274662784573920537705234591237332690063339669713911797424338945307004043583393854505279007839752604428366053205559526585336630299813815481694391421411811921642508984567493332558958822578153225022651850688540111183203282711717757076333811214565502632832582926993229482103189483511867325843026318433199759730681790551964002405703931440848401512580106867181239398082191669401431325542019749225564798028422491925471281279111233152946095507028569396928137733670036919203820413032757767113759852536807572731601716044467755302711492717943075411130019125754891264967432729623580828592430292369046307131850538054251891878589567569753164914608422639715756223410356712148380928942537875533408819142949787214552732251242610888437213441946152154286683228824577802819584894871055498586598170377277393897643562732599260512252833683610061634519914103520519715516558931353550897905531790076750949422293572868862198176984902572964569144042486300083062790301374793214454809693535026949635148695411465510242598121818273793178347879409684124197460171320572527470611618617899421226157791378992778017979850053558639248088486896326338424914497027318533662906345070499575490203917045281362913646466577463540575408468159404439177510551348674584197387688414963885964525863340257159698317112357615961142320227852296895259242157391242769059283756084223501856479459739782143941470687652981244633985844197476181104425359963508121486676414133513995317410971202610484709962935205666917459151495553542631699989830547139165714255219984176475987511811996592547787427867881076560188906632052634835984615036730905096880717510404389148281829782518963396864004301464115673572411632462561997921163085378956473377902324613955357663686609777966256574103315809251753576165349121354636978489342481219613333171685430197224468917450479981264326919633681305132977832281116540011922515343405745391306272937462663784013576867391908720533176462098408740612131590677295093453734741076401717583983078287785645312130980763077963501048088737125085654910129760227414172331575987517772357404642587698366651489664729010877459940355882440461671596356292989494321559231133816203795842428563836749136062465717944500842952548151529571024461720535494628558301357248912679676028037614458659623527617524844416954448593899672987288285619884416024775004680272200789235497313595521445685181590386904458332087437956383158558436907482206768631460251856160064598531161485000157126800629348368953537696301315757899970126134522074833289538586489594206420774645727284237767210861421344734801967968727909069336377089971980623833567818893391311869205033150878372296372113675684438182363952718899285844360027767974146174469378911520028699048850865338033925744193904912118572080924148682467192783924129069732065644794033096802459137566179684373621853957785684626260334970745244543668888181195938162346779018143089618979207172768254016694539814375334450601733747391455488893368290694344591914938170628548045697843194944076247877869537009199304522322502204821001777327781718490632758866180188254550790731690522714588168463250500270092612714805908374448587868717257714067617556086256755190335773990363971101898501608212386290498014409779201283431013606146487605322691756920796440770875023645944169181463261518628437379421637119426983526590366893780919762518486557651804973800391495071093865455358408450969972362235536853332191712836656532669628573750797960889508591047348178606551967694566243795100184093634813590275953351644531841257124723540483625592751940283944696102914030941889537206431630317077084003798333032026367680665560153876748730081678359641073345528772729990519171183004438247378706959185121907441777668710297597651491072496628820789642497299185896958902944648444287366175367952822359319087142762567262046396440860905203769105324267936449296480654998606214996306310827298347188312770257731534024850728715325024571338493043251550693492585307990078711000646880658298492544902701022355680491759359475362516629615125702891582244148351228180308197728006882663660170351057747738194961413527129124019571125715911877307551893914665060420618087698378786890096609796731009505829838148006532578674262524871764844604131360705976345633024095201545649905433865898975759270368918420146353630405626807305954655872475786943500461232173436904592721546170748787823386660521113850299522109915317250778683204162329139475473870465440925985334360502768721543938489428553658494194722939843546433224889414388997473353701825895141771043347570777804905304004586755540291811751029986996409890100118240479385849487176265627265393059340378000844312991966013663978547884235920448669752737686679601393002294942971865315711656585651440680566320282853777808266079298010358192326129227791844951984189691964679021271664231433242154576092362890823635512552832889334872726002911199990372334834300480672314769997078464653524462845836758112667781523995368154343870439574782625471918438203186897217432507656959136057585236734851965942815808786072736621391929374512671468134151250767819796536312624144334136909864162213511807049166516398961713779234052049879850209019271829719093807842303099603124834356057098972009478603152844341405770616702350711857045448126376323158803506717411961365795356023610811272973999285378762607534964343431143158514079224058468622177252034387684916904620114637307069944552954431991672595723607692981603130868686132313419268805464462777330991917239571397756859021210782122237137453726323601816931857174263291647095289308963419059483727725516939168948811571475070839061878764299401957528897428616268350855184942672534437744130801956066535826618114048195281003899162890458958936455019040064956975470453940345598230483807493756962922249427132440963553654618572818949772552264620482089101830938748637036757024755618570108142071805126128371012180589859365544629344484310596159068973294163224237903976215901550582925123725279978819945508054459897933459950227087936955059000741054437518897371009509483304822876926401609684294500427648481588675284733673184467089127256706647991423726561232540904855062862520235377604702092486404305044320015205318094304091284642819876106517510057159743551519361449556665272321204641412974896174535892172062469605556184967920418965504861226178259069851448352417383284811002131155259786673696690539634624148449972015714483750936348453029900389808813643370952174164895419838633112562409111612814987869414483419643558699205839130786090937588078877019190806923117560250341060214693113218826942560720214045084152697936802650174949215373400998545752626720463686274258730539307855326328712122937072666558615435281434326117434125264257689144188618387400162500380752320490050223127588305164937954098476390650382891441831292000055671965074066793535348891398079823190090872819485408642416957837690844555616789849345807426324648625538069150410484681697168217990723661173330419052438929504220978092186387084748838837972841507711037909579470113151032985487057078382934533564162300731573678980192238606907318043225796953045279425360667078570445528479848961420451580390963310641401996931905974682549826423052763502967402464190910496103894036601979154287288476696438161034952207379483625091032401986202396306646371058707384747339782552505741081622836803875359381886329054067610281387766979123550648225304624254469691972901834129167048617273113018820688238012153638161000425276055878284042546288296645147513253866238706765643599165690740665022034112697525424174062670688238491282203034670115379789666275324515702808855101204854429607963787659579876536856072078537135761952916806835185329497638369740124254768460722848584505059747704646094863625729504588637024325609638285627347385544953190115961745459428472711044627496686392968913559055612080959797235377505407556769032918899094333890522124001639517574576163379705921764235332000490127670567097313841326286459755119800069306871585039176903469096556189169626316942908569211392291274059172990097298154476598497252093314470362824028490257676320133292897484915651208265212199238013408519236260693593540968130679300123259570399969898385681600407649827412890780750970239560815031599778656122285497139989220946396701860697369858994100324190813775749114112211355455330356939123528104994717514960512197306209415116722427127417018863477092077826332030244812617481295765799121670339526779481408629893247683584666335746562156045267999042011941429944292457623882403407133409857295128450433196249080133354494685895539238259458543175669354371887013374436995258811153280226650382929111792256349370391546914919491933571407694227151476961685477330968418547650579813836599941762129142878428529940232259500665937778735929902409626127924182368814161190614007565369520900587278688916401830183927494992626183576933362213966111381946803580618750157721189297671257299979045474205277257836999483958072737336607852235002589754587847954875207024833992716519325666451923248606920911301073817766902698096840552680517193671633971079111776811760463309246871107669442026265072345781157471441839272720613562204779306041984039236597672104722524437199335215332948201038851446979231338551222933398199273655667392009428668672746154269499199824764012468568606808366400334282857199540683338101446183221572748698333340374156631331810213308513977944410041656822821609855408721528800232986834942604438092121187286256019235358478700034254187831077531247308610155028584511898136711076497309807006860586496916323082985363644735243030072291899002910384448669627522402896567480167951189021136253379287509789865523571986359354789743720929019591634200276866558109642321704081127930551791236325758652874853164397479623157538885630622143436811434170060462367710379009699240183234910746717161499929450774014389880202718122358786064352447312182468958932487267068161718750140780678181984412443952046648616165614714872724433852233620768849081591160192149019992867101012335099859022093307083123053606986655485840815787865898946299614874685995207791824866957104363494176257808683576094841631136601980346426515059467661826968236689114536540722533812437640491137467647525812528443729389390646523434461679787884374533341445616178234214932306781954123455834822429846676835145711483906440181362124723968756541755188630003272808622706310473916527951317011738836151508428419270249956009186781805354500196619743543219674908948145397418047397604225121070156186915605277921130383618506708911135213114558303482765392688597965817945684505890596017519229838813959669320495713939720125972092745605327687383049826045066087605363481255780746914205624442989146569009531861663719615149787456260462744345355047852749607306522552649478374706811077496003381244759473869740819075641537012522751519136584940471699104565774144079048393271935278618135786555131801512795278312338083332618946898230646777742114834299695980728925157915462729997387756219246415250659039514540662298962108194007176128598664835751074044660541894320462503636194221495858362684726446667063667659691239648863180958564334817729250196484982547139852114359912415434515644000322640868262655949422893730125834144529639872541432890282465156349875652895070079846380735805839764740088318901785024180380785202166048660658277008286670564262886972282531384511269080512299723856537419128968257626395738679714488164049414965598915582437133163450736409860518504180604244608685994654281294167724752250705371962664671623008071440817257975603757029638810355064934637023737841008685823197479422197198779643268516165721099620423567973792119794033407661952197021106714898813715617117738461558276758844239938604315038425469924018348050807783431320099544608762513833521969213386806340619717720079875130176816138236750241097815982949203144302923319104936966788342103588596529511354319016827259757034548982224389236277557913314669177357040898098919202043442661304901277406578443563678577763383728224045189826515564598609822914860987294890645787368217972744751048232398106328359577566351047576643568166539017260347419720408545650327299278715991780111899602664488024781623622041868449511105616705328163045871939686267599474372357316395315629231625820196434063779234661499348636625951093387643407701002156674738385279619715159537594004452835756095096710908335446060045951171717959987561358405535268400435324466176456274978746667581477147673266004901250295394665571482906508913975284938938429580806070204390048066363116159528181626383325986672882391655555050062561191741493574192714525238803433693772630027590130709254983165739472364237828173447163707938321628431843694483579643773183659490869369866581977501778791921095096690910845616150494876321698465370319014530020138666535751056718660936717287638478488937115663772570923571684900062988192034205446637958454613801926818303536118375309893121806663739096689959316636159419644714316111879844391090062264191578515281084094867718534660300698017416292758114103408124441920009634785228320868115163715664070072731723028990444872541043726160418987401198289467660337714061287834722369858692748281682672273702524057735617979167592848169412407098466741345695714189082887941976658050229493937442756950400806792539737095826613665005779524905504539677051612872228309659079696213818829954347153992820346241546733598686170312150429636905905866235542406994117020701205886111033946666600407907080685078407866726445004516932285553442712689526874255315988497603248343017532638999404662561466551218706182924119321765323387370865914033002380889504929615168507786094571773423714643022214632043871668787097019665150301710824730881352644240450516222573263075860029557487502574182997280825319832718527255305884655179182846208868774911595133233654587276298014624707542795402291358560704254524173407830675074761207390280248142691540525192293716160697599616786878667758574642458972894438248139444557500557645261474956675648867006621665013952900699841907970328433786598012989545391194210854484716930737960984836991347559213905945541914065724921800073972978261433386736743515619572668212074719340084250108095580429336903003176742804109923308816417548448503844657926042588174974017685229524705110107370343487107681049068132422159686096801657985098756944035892876148321821638590108981095554005404798374393227375924370008898904262787923670812457268578726408179175266682153922902122014655330038366023078306933940392338554927858807549689177167137302023624534408174602913811543877863512603470069133747180627603756554566860144285220505574314494694742161940229376252282263801171623428560897029877538360323443810712015064258800128935043975367583590616981106067908668232182140102615732743264312727249703957327939436778999618756318019669229719123947420420121181346115083250438308085284187238155114054085933737021967978808256201858153326820963081543198878875331989401159242912961037320430206874324185183816819370595157970125151750860961238273604298073520250128871713212140813208480896415943858883382778869917715915201768465778193935071976677181967872236016856267559223200708872082027103375090404967657469909381414773612288479516577022972153139606331707251551432992897749205598988152618034547583973433886274230316088804912580650672636414428220008291925988720431967384090344359711595563834336816554370671717284696853053437742227910075793637885854142493865812938323364143392407317545005553230754609928676102566483324073109989631087527460613499422820183799305119407174447534992246661325456487787935100244212246861716453486612950361199097266108506027563094770327087129153420883772966574880079148865049019367454451240956911219053770868805065974393634614863554944234458535242957107845019863661882287447765478146255945152137532299313849763292303934055465153603098024063117541230890751309421314452685915686366887512287422040618393620497246889463637647015663962015794498123219952564090971559393083210257639925081063655678226485680806721482139930884182153434240537516638938741746897594965216565056459516403225316307749605478816026941372879164428458334178308407013178192521698679945053128959332339559347826684778490789266864086913517309094420187920068282182659824695223989259228782740503098985732646403358371177784861806977430278160748704984212836924615829252554447479881945149866164923263238305448496523928827939528044719815747093373135683719748316026762547301632468736939247668104725659085855350890789568361592503676075845667443234554286810901059439915451908720522610912727750834766193879043863582038657484490342828910645842846264015033366179038561842102235544305611447068898752603680513207541114902564566034055902290303230503705583975629671263364933024165183073864916215897499764303403791630574191959278700047432390488598109868088580690190003689477982290697162134974549732856740597747087369721187651144474485414059636680479184548755775261294939197717477952772756980159937608003277163120468283252701565582636288817809450441359479628158812283843305793161676943968969256189816749676599112927286565664155667132452285709614331223267530466106694960299162312744100286444978262982513512546201870656003680349946339294792484354682974243110424221616676695184872729595426266357629830650776429143699125265297523319980104346827106219452013009929470294847750123331568636672787870786032706374671960520795152600772642003401786656409746947882735510296681950499378070938341603464105959273293317770948621268629360123531216541652173453257078493076424129011042652041621047575159199143545193883380329752096933069159292508295306535827157013282436751906878101349385609991747868919252491867165648083764811289329735571518167888345581383062400324215927403702124172248480113639241115978661304834216542907142775004632751067235475893332804511036609564818596339165454610871875492547034335872545737876164340448292918976411401134553762678634445166178901931306457530507811474500967757052690954681263403891908953623485503941539826581145389950505849530807732240743351146325509391243356825159288503068572348496799517677025033360784820368080370988204690254898144559611863205583301868002808316276554484418413134193209829019676838172217803546099804535102763971668832998325389752757205270827290516018927547693868938282005134526455310189403732710602835505194488629701563003207893262319696013145582912893410295141626845533885545529284741762295483350749142870879816527849456832387418898442850443283351507570442899031164567304830583381445654709343755184133965872751815035734728021029371901352134736513035478300839080969093156386141177496227245483189129708413556904589320358647952767423399570758962010723418353646252490969498828499817976488205986373673552899083318934369956068475336194303588529189963874000829000407662499993077865734205682450689511155757186170588945762255632477185890681441665578681641632518938892184144819748019767381406306690325556423848400932142615255716313960410625798245883304485204145243933821580613954660552216199805081831797013204331324511087895099631857206407917764261957681481023780371480486026868797467150165739629910642142328130139230028203889980605321126999803142007170451915568559215754986805960427692223208202143802524598722390199840193952453156052572502100285802390127901516119700690246995515905494460390236254109045727155622854796612732199428531997613617839169084985870443870779359607198251425576210281503867245138863616734904361116399649543988685533940180851851494605218541068091281784061875577337203135930529029682220823328678407476739791169651626880402686533180399127417914288768365120584737696733149647662548734626001359963174111355609928769286180522580540810411376866174841401245433679669727699839711582571920989913677560913267489431660530557008060812463499599527862516421652023525245787250078299880477825584329989750184277057962960040621628138272369378740142648739756396427022509954279543415336398486649364937202950834926913787312102295429680401057994139505457653665972129449553268213804391519202291997976968800198427926543764364146997489350873221616168401420275854793381888076789450755667675937855118677055820978348043772758137950242177701080276505543004337818194768736577444017781129211886677798679100862716555410017173391033817340800419406361247438674956890418681464132188795761420132433113839444692835762292549215486925743734028036662841371615264956647364009081200396206136708805695011212750464961503157988371757267673915952390003207007768838227376131284510903655864762398265584286465046902855758074645576996548673702470266137355359777999070564883561266662686736204196372993528674931297710274107534513857124386345009587527762268005575004425591709533871546396248618662171078847679034967250444730675242798557299487004934751224258579653530249802950326578066330138457935682035361872561396217649249765710472676405833928480683168904301402941253742286090427664758097471291278718350923845573952407681980228013208655265825794758890389295052285523537997987991257750661635060780392082159694707441886823749472433562381149133417278817319405094313060270592953794753437170513841787843159271846585109169158178188947799188996337226344687995298577782649219307195086844872189103230070596406898666821361304262306832993795370706202828634441881336137145813026015615680899389747514985200757264217874936533934230045427935099578795344334702495321355683600290073290310868633511417606594943863426096071089954337433364063018448116856725463067924495538106172664891551654457636561989040570933529071455019416892714142749741590434591419204546706155364324491079117456158835341039834265974540829164411946810176492791279660580454230039121895947413795902840205516452320664104407800122922226549970375504280605768192605997578252344947138679982784600698297357599516232722250516691001287625612715969143236401189746784623179978430035020161531235274503804665473699631397274254715162395069676662709083837261996300012405250782548651685686194354816723335078661293834587698382719231721781021860349040037085648468056148778199139484781090967537242925413314551079308175917220813696770009275448990391295171409000096189082071359156421829022502315365757001882479751008408408235339685895736636747204430598411946404625672317962866366649532565924101570314221043729492222748665665510355072751205048098827597262486618482891131115602701511736827317499338761116005368576650893735045441707589222400056348688912112779013156959660532327203080131722870444669416088916355342012156995085324768386261201470010975503677107032256030654550398274809140302457639813396360663560769654338586290099378278731728410808925060420530604051448301612189998878317028073525746118541593035914299024917730267860985893968128366119885421474546237570598155349845787511754660163478769178995827953230788923521219465614072786486065509246621513695528696973059948576262167078736091837825623050439604981950969156212504827894370704741773748581818298127971011133657778014725537181650933906312468494443424003371009315785833941739346528801110222423379532937200737467572311112412852250037098950021631403749056658321065794689980492043864227769928958711298705272848435510167455190221783384315670591313735960062073809756588568367580958323353770694871717764253192992654144199114420143687539311053718329597021214732987877370874207872048702623800193114050696101036274680522028833392716997892116210417183460633001707652476811787187777408998901330163578840312890235584531123320266587954846869414394304522911261242220171130886573738491645858348653128442543820188984892110671158137574367654596717807655661094249811438590203391559756257851579420823368120433395953294185371106528196616052095407159060542479054188295013457994180030571341133955851312651219440349530870634606761110396863998513546425524939928712570007017603133855403791870561840089444952151962187082730500719671022288099994531055235525158609233693562127281496419362824328111872514998493449814310366869542961207187691617619783713527112522842688404227320946291522037588766978293840769214061639977252696902925459283307040274211214358228739095115068373427631546622240967289905599475681414576543659132201136455005003141576409784889086243223746224068209847547617219044227031086129894134143411975118282634092061207895174915825362736578099511523936654710641709714379093000347336067100716093985587905085429665678399041025759014368218465651023641613941200749625077517099785708399251487873459096531036785253702164461957692116887830382671582233337059321250074569287437757809497010274369871566682307560946040532845444161213344330095032198312780625976558585377698092187514186147676848104676384242198661815876897423206698054160087037048038808875634570056847982624439281219532985128898915962326763292649795377422217539216049893856973537566193902844533043948646241303161629444994345728657113133315555174796637670847958303334108370776557548075067265527809482253817439479921406741267951013625428494280903135694343023937391887013140671848153471503194089052429112839151880568684744593395441851492392875032848095768759802464149102434731445558538967083226530306320701142396822838242684391822373271134517274101317695854574150306224582146931875633975300714436109704631819890219009649739905191845069736953656527304966847012221995590866382581263525152612780798091714632735474523767981381533757324434400610237417425394013192212488012579922088401027859962042814718216010692673945862529858838962334650927887680851410543923162238664948824691584672083520089925290727572257494469932162474331757804200274058236301495132470591509581556537145457903184389533674272663334071811555940696480514580248809905057399549031871555274511141636383818655064908793359133430946538005249977530413096025820117299172157727017730361894757219841484665252433950808565251332069019251998412838129094000910606418443219868048669032549703001808767024449094912467028946305512223520572955517650317118529657581578759369590959985792618020861567425662548899523545864825718334771228505867970170326615903664312128455264630818027406137867084891374492338749816970824488626028248220333398185336718449445072262007796941895103289041076276122760544741043787061601087421093487045186641967518603543351647485957892912092119432991573448507067980079972711339506058781562132441561945617874568931788675529678657079631139370263077790288251670963846679667592946999729757309712012182296007408797279752657726206607815405759315973926165962469592612857754443968031717137040560147384254661432976881983692034133047931502454229234209599331407060792546963129631403840167035550692732956131984244019810584509156218304993433913560877631135726212502628010045603802840297746214714994665757143844556481446852248718914394207647650591330381179160551243577828123110914105016900581891573498302192366407877351539768678439285562237534139546881462929284824550466782607774694882603566368653111986053868575174558736331295657327702350553367397150281864866822944704505618950511595536208870168048002477165425497388353396055925310197980089452674116281094638320329346214344234806565237527965767911237385598389586350420536167589011952336494664924378232679226213859012875547792554495758292101916400919334747943320757226234395172456427348229566844652379967629036940559462599768942828261414214844982453973794156815552938487181839279739530128209707190758444227582076858439819267412519555235648205383993993389194422118080072664563364265846356620958529414434377560728426536544538010252389480127281780992095261411984266452276198866379695719984133623057613502093111182324875518097042709074194061580261697164228281538206747704436821240779956483723519280290872011970361967649770638175690236213890989639187660563943014874413675391565431628317271522917525663593955351507304632033029101868325835548515079558315473147227087065379920219965639099496786050560491160785204170500634580408176063435972250769380294308503774191311299673424983306506379721511249976559255288907101657074094568566677491116687057741924577869958110462541188807430757553565608496920963761865208465341261542319762807930524373155911233612620018068328189288195999841294902909804278069501772609782329156092941317999777128019205239625457547594398852620662322739725314767450233902896477912106785923102116447933798556545583623526214249888524670927642630057925130461777358056016151337660350704925407957279589622594545595514163579775501944761578789983623813488795280239811067487687613758420845967712374981588771067940586445760367621995044887746744522480847993916071492307202605985432756973218603195566340618507630010754029467658384774697202621629812983031539441928261758300376615747383724022936522375089891273821881764317654469361062830416277355233358414443061090149253185571435947636542731964224411971548261128418416390521615106496992980893679391699622972079681781022947768470358134025538169816255377823935563414403756130617871070985846166198994571377823755003179669915723037612278580423760841941029485827957164735533641577175373961260402616368184631537935344882382909089139353004910455571337891489525288331441397837858457327812668130756024503651342695318853106443325703481623036404958120374901780438003090058961281837314712381729759241134091820347778284843603413125477003402272115867896298212034144213724136558751268427541433434039372622784129980723891955381954868318148895427945995638224259616114633247751119079924814657708092133499582722830616735942600004728910591548583719131151746332717453156641944615247046450297744342840498187324495391542235319140465322440360169776195132027940166341751996864170772549309423901574231985058706232421004391300090757058605412889148426351280696734839805560060362471976959033755706287809882737894834269783447483125800318449998031111099096015651927750032039289961565468760019777293132357511909815244007967985179399050753718491692384398946777002193562784886967883132136078479485709889119416544589986007142808631846269014593822952439698772476760756062009512228502860114072902498374300884300043984815221488759529025658226313177412162756885872148175911975407078127378241370246924361130589859019928049070931170928281040346977032302243158465626595294698689923658089580405358793987359541761041451105624871234579115423574324554604293501851271185908031849423559935486044741332502293664288835633574502673294770518960208610765944862631796035891195405220441740133583353810213827354729227423545017074341153888222474168399185406801937136353029503614856383275572719084511401018861735125479509897618623590710636258468205116049835553975088320804127455496853202908959477978733018305109284073282521504020059641829202953967417704964963016540872269039078780796893762357813842227894381464016969473721878475620011013131156088469246015710638119627853370915105001675979603222876088935181670612929561380923393735967504443653097192335910467267446669260776008602983962091313303456729649363182289586446219999879634175322459124511262663366907828400041350392751896690818926297977108163864363400673166078816396576856695168709452093132574241134243054290450637499553677960083497326382914265447538828030430988437907296468003316799292992542465558852229369522450658036186695947024176312219647554981035738800484532622754762804986456005004371337950302570694688476835079518280904790735211057813375476682351469087897920988870230432133881401555316591378894196903989795073009158938811535545990859637282609313169249455766812181490779849164510079667945016441347091699085926243008468246592519333609668304095566100003301941268907677249640213886750846168530264548689907150898426210253158221015724292990495349912024423731894232060198247592140443713185301209662909170563586277655859710579948022307923191695693912499574355084815469985897668617456945595285913940991221264157636529326750868385949203269994938284948011857603454563137162077986774390202801940749105545011640449293169860116038847055345208425858670041275267680451119654458824301067462023982278334611676250098619132010978848637912006836444228357397200678452242884173687458357156554255435536899401695359246028107326940274737218134073652280451357438156788880698364242318404743502857004981294058248030992327646231523150609405763907226523371262132258588761853747946581375097511782963243758237188176303873918236446387573167539630453511769340445568260426587195809329704957392013872974174490530120948928513889602831156813077530763935390427092543133647442601763274318499195877179697789809968134313055651547770290076830211315576267916094935240277581057070321747654567559885384936386405832391398802714145562686960614858559781536016965998609541118873995898599018670681321229246273634979483282573260312594063055551768460858839536214341732220889884479885261936978773625790500014229095554036912730249770423803749986691048050429383738187133536168677310192097636524245640206707402264544999697589791707469103897461036672633988454209434386587506665994074353021789441320113428391337614574186703883567461980795015178276866892875530689561133923025644844253304646030862952893823055901819516686092483273151878403813435645604191086358263627599450599244624861651885725083727854942327575208346238867660185014696467290254301251572356598038368500810852419192658321925850011043820996605190349390153702743609397248179230210255527414625801741017391960970858509094221937170612221935095869932375578147460345600668549259215210839332091013594235230574633089052386411107808496853720352035760258733013547954027464466764006667046317620482316717104011561738773668648439964810822165360254818879636441556660239872459639913037307759966054171047758401857683503839591427012568536191522058012834006345334075415812989490148975671786779927542378200836585538547633414481172922947127138068322604170870690866484947299592603435628278004436724899757757364885028176660212140967203309517444037771083708568694693946002523472358403683419660371324563521069399317928980077316073130223860493968541670245382221359701779195783845156535057869320826567457516616417612703797232364298555426958836160724284920799841078077682010630505401720282479548025674131388544464413256630025025241495408554762634072241510931856838169512389907961348771281111969960282225075169867170562185294599032535075739605381321489631186648862092776175553850199179361620048615200263726836149477614852487559499261848559909153385945586674330204048468841726741698013139244880227654064965328402621076190913010472418543535530984214601208069675902778409213617684309979430675613431971265628560057283473751311143740908134161985316971752886339379173728286668102970407230800488691624154892792241266878268334549052388947908418955831031872693297241094135676756917584029496113764295746121721897576382780773355842812129341334868741897939177873953362263653241192699527300959979512579023734328008795577418893323239988888169524248503646496175798651056130859439053492849270759541836341934425107996218340399499052798718590239744969225664508566154690411616708088990510760478438561360162998811446473864930105853406727218719672858803735504914067444100683150087880053805166751195811776768303455381312979933122151651831834297856343012623514196605376906654940062471946923518011807787441555860708766864487823510970494549464448122632628234305920805740062832440666848285642744196709812308422508225430519313293445317937938298384694084882734243106584729617028172603044537892696418056610203363851738100028254379295764607260826087319962406838619196318540626657778896686856164523437780756738747672000343011513305225551117726672000749342289273562415405011929555748335007789135764841421910649469572522666384896272397402077650676057098487023157330672390457758042863169078736940441016786373656500878046871032654800047525764544725181833703491094829845698154142757084975239729937821870546441262230920545344676057023958086539186891668869601244523658076862841157016487873511171863234531620913667698270804303035312079845810908115373120639094272258923924911303736929816229449388869735210107507955728818961464141867716400471203280764151305086040651520987714136818465386037810345875343781245367736958567640594128011110367129235583489240004810348606539312905366506317432921272516665798747560115559820561823438551133101417570337697739929241514366113698686684446681367703595100476909624647312499210584242232563231734806623271113781328039445300119243247609869307914891648314172683749884431481130717035198086056835227474767040816170016602966672329176678119851359669719962844414897725065297813857529430520509561498891920254603605614271611500440144995548203681091607378590041935379992258758566811152320957794995894454073857259269075067071629299060568128219486113419716787661804959247717725305022519757666238907819505303966289566943853517905977921761500329189160290388955761882609538365190930125128200293459394285749582307422904498669647121374293484145521072502445662992574396897879786389979720726970298640262425680769093029886367467818205600532916763933001384842428549387389088081934546329596149248124195118871874090633074166283116106864098860901254684888898622860666712990017389281449738171528260639298428532045770439540415832586281759903120273158815007892870348348834736761804283191292666699795354887059674662086993468638777887153455686879518827430163777020111921365985305442794619783370613998213222655284499550816589714235727231935593238469155280797278462104759113187225620379205616889373442272630677425189499318599766023777733830132004370109290144577154378819094717387099996485105295352504544937278908199473354377269166343323342305358526119346820996501569327669239706782266052964350850313118514744636551692056786471942266680280934899493732292323520693862424563314024406697785861839444179411285724522844327094681988602108120473691895444219660938941527357270889908697560814240436389068470219360097284683938845678907498747523746064745155260103039284096558087170277055144956453031955512355448173380506853293790477557069228909122801982046226582309181634811971521771976172547499839235338893814631754976366984249986542297097749604994388309181060428562830478962683313803425137257805299570340991630124778973173111419543077156463147058080863604471457406968821816796647963870527511698212737886257408002903143925945117093893875777996482853661200766369047796572831350330653203769447481472788846909019122314760663470030942882420715909344711975033180871699920705984232207552923863998220915565478296477417127457997240348102408763756285425655377637283526127527213184904762651982731260708895231158748174698852294868156547906293144099953107351957868702224734772582554035416035971554429259581817656041508454462997823439414358048996500929766694117199930555562215426246878465643506359539809667479470350061364826109717046503004174819958878175296338335814605978150758149789230419039607039405138866601247886261505026481695696430055747391478499616731561403934374826268981400614707641843323914888726434246789010424395344422088372446510176104008978639125778672750511342661453508592158200200084223723133050999682562917765962148169058558725491748118969211387763689445239865450625300771796565011290855254524588460110119857924249919560784145909037811000748971178709688815608562204765529254482465321260568261776050531316863758021709519306326619491896897643730407993943865058720666830233529459689384251979274016042233345371320636102126062088896772937504769449302847364754175509329072164193971568860451641411380369266835467010299226434476522314388798351380137822668540723693628950279043745176242843942238423473571116325246742135244711131529675509129989221228702030604457146199599149323274169608828105902858416427234824007011634982188461082990877523115234315269328593920985449449239283387893589645887515480249753086200460976777767762186087851872639502190960478499543676800006215483768441432102853248463623364339878139010922151410035846912899617611469901372458293729911381599784385266193113962653927444383593936567201973136704528990503815058026299767485854652812839485557710256036397067918200614409763917751071119444350605129094762500272634257607195547443031328129445500898237530195684289539536593207610281582152629979104964507131722429715382116218975971427847761024066123840744647138459008600444483243870916693313491978250430686418374105316198038970098604491156577331507558846372569204739622507633661834699973139237757832026741769533470206883794826453459762208742181128817660555923783619191130697069199574147993421422469906779650765199904018923201940870211694569915610916869766443341928784220583237647457267626709973104944222493650428153032377579140901062277060165140275884333093247249829123566169396403821109459548178641511679785319540838374987795318469650961980865042742657312997085292931455255501567315998679611022725822754430943241672341580676476254143249006676459027376356240982117599843579676849149617616279730052862077758948993231810109870381075430358304207528380599643161656972806473568876286654863009344057909160741614941401272889262283217820524020499954113268207380075144266625201039667282397651344054873833218688507730084833564474306210404723624866892599085146912126405940023705952825149255556779173685078463000003469422946087200260809322930616213871386686418004006656384076597899420551266450123778890538756633960471473656146254830225324864722323476327794392833604331577094684711023914499127500327899468034870520291782745634627730371368890447642583991739176729320265216253188680659062483747104074514579698515823567441610035336636894841984273185631905675120193526349573679192539983963463738574716122064012198252124040591820884321227762925739430835774076583670337399221231750174101838393875082209490501166602252628183451167346259304847495885572197680376793714806261040417310139133080184337949544216226581383967672798597436591958168912510649001182198026519767744235010285735102878946645273527432535223406843775815783654859854306218976883203495913396590552333597662224551124270091302535431093394370178916579310176028293964842886354385558911749456787162607795519712015672293299303435185062706118526399212675056353717061622059625574619142317701667965791019027337729454529709375908501889133861982404652200013251066821263754296798355076189059848451312076355058158887272192022289586533965093587508102809968411301603513776518238051041411806940589294131021737441106377995861007453215759052527487972733353957671544495583009959903679015269987817833715467701380573946016795714077324123521911723398606929036183552131104677931121254530979542732638830516632181972093999511685857856789881450448676470498894223599353000350018699317064834761708567598638073021376777330856771525028497398213609431162150552577254019674284010825219089102008795676483348514350169739655629332185709160930934744997219779086659491587637470723233659779473886119025352706448912398072860918370714778566914067066093940272163203790854464621590688085595825104056675118642249356839862820160064515771846162151951824458905536729784696162998997617729381432853357242822038526794738811770326671843785682534912438713581387273115026625884475647322270800192316463990787048710647639128234077574307654246556561466933467369370325751716042659850580985144761118349511860447593995505140053624797094567537918923052933220967986438534697137080682397450622158842514875560852454618609281154168445412490299833005768373673086016956382520353481964606144606559661751721377866476132703057299995446631528308468260539703047024774590434409365830529094066808938535731760950114082471474968075522559342381514433809996793764328042647674074623915013822225274722709871691961743331020558981935766760657047479778102211886899580945991577767820784151633065266717673189775477985433697733882497198952008539411514142256278630606329164425309772243170775571697629974608517516912553669881659362652439811121587643661880660231282759747929618634376971241745071856203211752764432650041410592698197620595205312350004583151891661847612117774165279392061579331649242064365767568887662585479003832462051451590730842093425225755009582292015340023989521730552846554601559167350170915047500911899831112454140260221320796082684141008757295877127330133615063731994567318117503419661230262666152324636985814193372608537512090680105446607119070265887061767621162238531587592176595495976007143616011441364679606281328709813083560327656489419405056436420719517655299590671212508232775196249100375853077398592037646977939120059703427832247415840471361577018512839417134717913956915099514617655427265332933180921931472075199033228084298384559461459341585201972437630386725556771210205041509190103107876671599854575567813704899994636575226254754929750366453393373085938080254337347746363585314163789907614071524365606406939134756522187009054766644587887541503346000225585476659776711922476931698872243373988653328987946606632203773684619012496404160859133941432696435498800860213250362278837484796922049342303667623014603506845721172630942481879994864927321276779688532575553559542352427341044034314142347144760397900251500157493675052507486238512466902152744419989179227935852612286797773926952598989236069768453827532517425306842804029683599478294006552732127931508956907027751053882546524078033623864770858349974767390256855177579770552825422315908258927148880319628411705979134904226230484710188090349197796306029885989278020682675724321527066042935563976567527329530541276251363972205900352148622445195935296670089126850186104176151930359052219410382612306223339337767799521226793509271843783911431357004208438027689570639010640608468497802908562181780169412433803861440650232987102232964143805254583527467601817623448629558882585584961434431385146487668318614382336260623208558429403042733142156014554909337632882639417133671374161491624213935020860025660212264545957144560932104281310585055863831859402691583569160816096332313989383654619566323402484219798384352158069372307262196786039346442543561137649794144459862663929054590152118358448975183761506512997723679864180662338830642483891848415503104829250520341839915144251968383612634717402098230350303880807994536827083842619489323641575229196681073513771004319037431566916412173026626404107197800508676724177873867238273666246678901121076584901152946568173541104219032271062003735450429823181933883459244187728694565441152379429219727859924083400326324909920925525859408741050785077467170079277484106457172293754381132700899573113944948113074325503011009710951291903527202511540498142354053079146788587298231425877919908728985878101512902655630802975408036195795838650919220119800658314710264472141351528168367757692605585221970176828411476211801355237589579850762905443776563721372469786870827167533305880626331861774688761628273294888399636864389547483191213661950581422593095943906961443914449307177982207567139220458694786757478565027951525302416717835888043376645180396854710587197864061671303068728107567592109804882260758782078858572099187923516135744751091516492414996907103850256814660610218380151807557891856134925162644772785141611084725186021369852800638928242764309649120768378399553772815781836516078980674655468480885541580416998909728395749325838560040723749083292037238933253181770077691822962998942493072366338961921875673360723733111112669972676931502979042756409711475045183052059819123815295125222459019627441653355045745148571602240253436316042729978750688834166234110412254378825538720405450307194453282092815808163119357707767895205793935015550942429101504611771817979068217528763160716104108707355191272040576233548257140630179000788370102690223317886546460418797512636781748085624693217263932515973200332261917940683638532458874131599776310161076273675673286671070897331190114758135225136984459635644022855276032670090287283496365809369540883219900577714175530749497377576314377420314387841130105133628860587387197294502647832298989526799659591641930615062633530404583339212137041817568578498595132091528875227216340150160063069511946527225241697575919702652339288531086679156539358002100003607616712341894283370199926851908727612251632813192815131809876132658326876762645370064741763753596617552832166233180002247218293107865361936308938245102769606451351513806221794401843188259760897041581694815725497571275486016969569059607205236656401582017668030814458336763980150337885336060866009177856381739041125542903041077342926414411884552782604078309131731315353835493933777064430848581447931138814805322021515228733289090595698119970195255344894455637965489008456315748241886883493658710329772113823256988187410241836260502613168575982238933248218913529002565290729897918020892484828447249677400982647870768668645236438008987377855585772494785497540511405224668835512809998240945720685336851489380875909678030309034735514978417349399307543785282672488585329168376511539788979698020580905114784084375673551851948884903455451117451935722414159807998166024497129959235020810945831712142937913653485386337996352265114628209518257762184825157536432714750363149072486447535341164119710816066872204853801623955517223584824854356485051725807020705701267480190391036705018990305546836169426064369768658860536904180443697007877600721792086782420466244642228708147051695989709296657326618242397970418585337869747202235211845113909379541518101702709393059122336254414649261546935538149854718590103387163566806003471565093762841136400424419195071593603145680550450376901010181057432812979367411578933729496104301317174758226607904506353639733475585303539104849260518643164691916540469017588967099051564963697142926171801859889153594999678352209918452184185573928141758382091916018720958875715742045465417165740335563244399622434306819374078199267603400154269994709740937882033349501080718613664150547623391120268957188034757578398651836472705352605126420404257419622353602210301135185665130199675826279209551065384307297372527914451320003102383989432588750756437498093951867163707237199067963813764872901894554515099302406304818525617982795862986710905313021523039835560935017846949388296841516486540900929827990096443324812768810381641877158091001886864332776974520740931177290080865935012783451682050534734085512296510075613998007937198875758406199878506145075335122817719238902247158644433747580264834252154798808475885207979667390976570465511946622562922048252139827726124003851102109942147431607293000066800627075355192484146555117330974221498268491458433677328177449924358591278473070853759996885995703191429301773082690547903989463386187279246520383013047969641825253282858290459502680245366191244233921088877757326787430893853183008390504796600717718026024395726347435414588382408919979138553524282083240892308229457519311566558557318088723354077424077553302324806610468275043364421799619120789224129074245462222321687939459685202494473566365273996182580470748143792374218083048995117825657902621682802949459161939723501312665169307439745781033503549622393598824303142820032639494523411197298446085077931211063626447988262123519103777145147423777406905916574406540907647202646747725531491240073517159678137987086977553913750844330027823729422043071154530733323847147293015427968640930479783625100502417178629675148381134504985658494946568482519911387626416537816696255722194551141866777893411690704757394215331568705774073972613293364357192399973353872151772317699333249755471604445222189749702526369435312952001070109304335846550293648366439063423809033302911928514469950226725676068731386757067592997387577634859911545930640808991854604168088300628467721611121614004258530954615010725436243045218942086638430089741269169307074378885242699075216879781388013546811243621639830829724894037177114273460238738651917394049557398894757093268070227106100216135380749475438286927669793497718364963468575664494196282922217259118196489763278345495935540549646309993904642460113828455709009987231608201662015362019285933521418899289779266628290255003357686545141921199193359071421762100821578023851461497508377224508439829561430241817014331257084267109752673517242264549371222609537761630223499263826103557866644303072534891276322788895814311282521027655914170783649188602556774696752395655582532371656437421263704930209112769598659914942081189977317560461441370573710320894242392427691013624678993257215286309111155892027524428593072442155642915182978137211318158970247627203778958962860698529388130765931202497088461856153682870808575387292297143741054181219453077661746612731780865504838429310702458612207277623786781285142168556322269693231326223827321907837945316648669048703453568204034656052899909411026364090951873254324655366013097529536758611305660153602864845398152676262298812882936733504041616555773119506867784502269034372470847718393776337821629256255392725873466871910948909141204453806830755369677661058527368210855126108356416252076437858178753997016650696184780307276515848729140443867382940617835426730640458845379694287893899092959851737166572554475336340535963096213253509627957117791120834507903008011489714425875609232167169156353850860235540897829274035999471824787217148429452839495130425459683665141376275244750051484563611844849543715357481486774388455244553397307955283348430005647194129807268695637469514771637596101630060827326405563014201340480272975603126099234831762626718993277569726380864804128812848478602013848205985460630008788628139294040962512109782464263360692266397275093727647890114365716829669097072389762275316146938180899212289182139565019970338522728211266026899918700733215253260407022263242782194808637236061152226504316175755836937102540822078103150448237721284422738764999395099315157735154605044586375681878269651262173828676081675795757106957437533205560273276358547351226781074509886754060319071652678968200474200118072360236669583849748412824458160315316807961400629656658841893535021637301121668416778063623936029833103591315789278720519283853597769473714471000610926633248145777894300552386597811848343490051893047374046170670290877197821736265396683266176752510586048823864655317155384919951596807927273235271726584166896248761340260178791230770981700865953105362907718464207666614142092889750563680187887164445073825524573806637612688241263259886194306656774868333572571232044458199267289353658124295343766833487353144318629538841101351597205244434457199002095549005957091644840493564755089080703341124128822596524351660673000755338056000427811907475883236475907216838240280874520536309844993641847025204977164950835246025608128121526648922464678778580709225876713302456308591668713956242040804404212238923257369434973994008243330123956427224801629279487330196277985935137253634941770005737515626432192035058319006336355108879107297473638608496171849407044308352341686227050606766008981350568034561735066247875704980039038923080292854011877589701334564008180669787698461577135488705988898641771987826785482706074481508693550915931602743184187387676878202673690692309996088553796573205752491926077305857169299282128176833020297927731897411420064518444058638527833890740671040264928501107802788710944095990641199003085595005879456366345424843608349391994645139257748638480126781164096924407532307900288150455042779033696995375360111630529342447327595520072913466465142404974700927344050505221693702510170042823992931821010452288222414137528058150729057988661575773249712848296748853333593411462983100460826500595745380819391682758898704920150488078280486700228217564617969508529422982891090072146664682088644469809648030980549574089749095716988523904252738888200415009538613791810899470014301343645961275487067386302887712547375043635840261994885385373401615140046380451770458111505590174588702379782234075641137899832137186625927433284000996371807607685330038791198046816473443126655936256687089224302826396327003966512312504660199630747389335451170222501117915666561374391771462620144236263797846038677580126607259331934491819992477872370654655933031421412271796767807027972388908464316745618485725871256837198203681135302065253983631338912477425085366651977084028296270748788300401137899207903539859538026254758346902987238450384751564284224696573010636032703094036856983499098797202780163256554440902670410893148356273273002904342298217851760438501767855438257081972246837397045490576445281024068349271646897068991753387416236983496857012819690930353878666711544177005553122375476975302415341688515020336102317940247237719252667431400961851582921049042874538587696055085148897878699035207856638047839494075977558914110945290989444897304368619985825551539580081761139341202770950981439070561658775247103759763629458081133683126015740669201323213025991730116395471507321115403728971775625075478136357158030953376334238832688435276785354859262976716604978715665620434084201742865066429633406667454606505768209267447831322863267454971461182854768028947748369698539843105246466645037021857509106603464246188947830143988182577436376329725766981240385006925291768588310597469293708884168963684963412436503743959633435298862808672837159317001482742076827946468333422007876743238107829345013305043597463980702500571642672907768587683593583438077331008221182271442066014092435777733513847268021717309921523109995215610479164411401540212611827186054274106329925794071662131594961543707576284499285017986677951895144630108001496815859819010178092093043580388499508327032865220335291096766143279240679481280579683339177412931519833307229980490057871001245720200388116547858517812720449431648911061523300740104325247824821757865423917027055594206386065445094248448670661000022761589228455629917268908961602158926205285443008182487445097737734365356503281443571250736575499522746737972648990484335673509808914821525708924889543128157141043136087567051240899994668642764129250530804276640491951984492490368927323271608157535856044079435269322299588283323010744128486328933273221406817019865439425604630723831130149315784574390253262163363641545258505566771234522934309669341931817046892649762128520227152199002670699684210802372517213081974627071541775534455634747819002470338715440648569941133239362721663285199619658863528419076842534425153167930228357697699240242449493076550724014016280072611545129064069708418951258219003892165381539630936007308673953511247521260999475575205772924994067882267610688600642952154917045722586627817374362990838310318564907333335975087466486103240570537301146978077233443258283225386703530871308135156947538553955884222430404367375465079143595078803749227781617550070915480813124597972812028084719286193279648134021592903055171803166135294529419401809878502194073952619829785852056792460664010064320876783268817530910457600455514909783453716511217184223682586681099560973604611371637534568968080465958345465823964920479639146788141166872734232580009730311363772550504787804590801396678816458384238776140242270326240747504971414813582027860874327107341365826520998916128318850520689167517103293535135406036639690472755558829201286187630672831081766910875400384968104070626587264310217763256250891747843455134920935710791193593751811118343941882996630073837808815989024421739072809526742437295701693240105372570999985855410954596455684213292983804972760507352634433955687524704226245107733621732956643549218090873524646962687473674916442423994375245394395086567166745979826651884981248878934300832557903312633729870686749366504701670911179568433555215033193836014545617118178090825300508833559120642016263346726899548572768928216428150438651956039827416136959583626877733828083591821036093755543120424295224795758013327609182954982281961272541567104725920424918754730266324080484809431610482579915533671676700675835477276876244228036026111617466858622957082594194457682044312083582471313281732704832517675431675103402017712118168089575929090219111825180314169919370421931966467237671522995845709287405851659671210131399991526183362066849523128547596863370819120524297085473846855997614497847855206921715423759218975460892438040216738545531054237058362679810371186564378541752247915194588214231615220780919149771250579751856692322554002946329562449731946184617419728657755933109601771719975425191085690830074799327647502416130264311714983060161882693617709620107848590048686882776111454159511669248590042937386050510210274493185125124710130196882595492420714134938806388057137208654522331929972576562216618045023981986720358324959167341972769732294327097732139998584282608241826755040175078402432801524893104391291738415681448023277582793111538764562304378973993079691653512040589016802234349304040633232904822530857626374988984379778228226605543744865862179778176696504515337767075731773735805698191132266599867555190603756684486303803142282921466141707526704247287619965018534528265294698944456717106499032476397571967128845520990192190635848873654609370295274116620256852699515703495961747433256126022509843308390974052221081372392793140168275530064495069919563720408108084537979776055882018229716271259559433657288172886852499124692321448062472268945630789485480368687979897330465441914559968518390913754298818004833140430079133302363813574068827096910414222774878436733824081659805523274170296052120208866606169139163226731508001141368515678212069648634146574539151193129123808218487634291841339237440876576707725771184671026675982543711162407204870464843755881183522944587480790282921020846107192043104161415431544469347566992036523719001241710007172589300488467273515596522489073734197621364886613438905441492304933817452311444678623364724264237316485557366861313236009928213559909987470675756140261751523539951332499619805626680795632939324415312605863782815788812168268346384782034435335277773236336794659220705729114317583542875488757404034358885817702054770523803779208120673564307130414214837566954617798391714723557687684774806296528759357014279724509344499860643132158419081115943888397826495625985353561057710239655354180514558736340870601837495294150714651123750430934880154163765110852424648032546214670755443043308010109027804163532329201860790206552821120122388600484948182801418490484059493378498033559574953135710967734088789209465548699000884319722236001286551342191669727000350379274270623201008945780333261033952418024890018051635204812752108508336932959677223658060229473194975404078387579928569473460581877929007636910971045677964176657868101138956330428223590325163870774061314740333080167561887653195191827525956848017762739651576913607098015258074615879193873298233093614780597923684044112786239209521623665082647393778841330723590738410640404537030381260876138528828315134535568014964158762293654155458423971459365095006058311494716263707743107404429489172090027482550112801729937084969721753208433122215372380173491501320735889825817451831276329752436899773450881916673095558736382298507016308806306805611622176251961545249394808699501034250480099813074907156321276270856406139816429376054721353480523884031408482146874292660055959200758865911035716934553848129385875433649937484333634941501551467359205110899248506795391786265670875759565827923474751304044646610950565377781666648758944786853570193243101732167372937291626988743368821966748882091873655930971509590144137825969293746716282746650329433891250340586694426948111524272969425875861781314242003437672294605092036350667137249509275872293151410611694502490139749897985988833751696800258249123865631125098550119372908413169419120467099610243564730939822252635927760909978761900238047652161598284612318160619339609176231538319793833590917595656193017488747433257714478440533035564274248553090729084772290396228121163753603073733018871864799997215221823250326067048509754340956000380444480374576618844876514510324947033594933851932883634757994074595551527994356360523198646523860009950262486050479781584626868549952182228096212539740129547771398476462025831962399668906490290140207840267527727062323657201234544540648472357863191137777384887024561336184096721003030423149582791091161525574031182637274305235926894595407790518772095562026102929810896565636463918884638809394663024266503803038474852397788908510797913038265426314901161377137557078855800545110386640750537416846073966025509738425319055150595135772051383604126839019159025075512163972408597159527948929461820530785181669823204666527761723646244272531234470719900199653588293970416941117581069644815706900817980486349450457721609665614292666338753936751296826913564269501081458054558318252574183210578780395839694926278556260612838331588167843302001071010034272740793528916801638002868684396193635058673234745244923781735026909830766199706169304311591374190317602135934494007219576130418829271882601648763033045025908530788926651973581596256214477538007287338764589865115507848462810937473243020040761777974494149013414405804370692608073464112657650122610533162218268471016511823885374086154967987044625549922335710305728333352937092883925453239711037750000895013455464462177770034128312867392196675738418156895739904705049610183862438900960679248253923975444795600345142589687623420805099827562153793220239917714468558102077263237484176189218398668730999697967122954965844410487715886808826888929995243758940416638257859629389111040961985271794030308574507635158580326796320458562898175627119173945411547249695833332430719922083974993355521629730162060699972027749127155175038782635217031181830417982346246816507945376909156650581496183323271386837430577626471643757886462798345524230517888776333896088368819477672456046100269386349970763451734365332482225996742564108642334911029654531342269464963368018372677547090199105961856613303806565060045677503522469615560181909597876333212896794371723328496045680974199373644881202971869288518162457128398775718844564398329562463431393908878858210252387810469250124229568496636726760521117499112304943130180346839161453290468662126750504750551777712909261728831448811970846144397654007962015188188514396264170318510268613133442753075610927935706003902140152467484135241108146666028856837713947598920282714789924121942500454855070384656979351768229995446194981124121651266401094089669181211923537261256717265632500170097291205193221919725158487618853315668321663115968890953738306423520245478126505578821287642630920512313023542335879223008112522713291982004352330079091466059913111049709730769851480947655971756562538873241024121467943950252317253084751772330071606361054766526589732622169357815644504774310547853816567400691536934708768590009569308288619491749840042344273811294270047056571746619796233856353157356945993591859680327199246429189348889550204306479960259117571196366558263735813705157745095074091238137935680315892688411039956005721710826783738184480525494437097638670951579177834784059229294162016244152732822619542497615435356195629780812146249389167053683002946500075731986869748148210470332500047946432506072555458509378468791932198314801586940807676452908855711171194003306768550234015012772876809953392194659929980437393925478730405412911821623470544712697446578742311250799334535064005567528311345578763803566549779915661587032645672895284092551544581959971176115310690328876679100772449707659395818814954686464873097531312968100851310266218039600508854101605326420977625108489685542800192478767347217413038175581249007491411569866012701211066116283338310813797203403403697252019173506284521255968416045069240741033335296310512758860250353797832460648865703322265697691753107698110297095649150593506897638883524847886125867318084360166115854890450807672886634655798631216970835766057055555837982402851329004378914424689627759674233344921423456840405293001277575873512043532771638243697313482746692216556654824981595183204084285493553834865463484965340746886054316903248618115448187510086733063631246465266709923731479810440606366976748208800545359764787712154141930466530911166334016544353409611874776111182115059775378747012328779751809420418715727990685044409416083730792998816061384047815311625780645970490776407218206285626237448954664120355190918422369717692578309368879844331537309549872594511668787361651151665049183664968422046940686375614888225491468486353441530143040968562226070482478223457691174118033703546622988323947617515610991209353455430776262218953633558203069891020192813879023290531813694151570689348994414001830715299394214624667872388898450375451716790253654489211666269733742887571678806275947428854735089678601313037367200187268924842816319239140364559331496335001160160686439273264333645632764062406845514937774965107061450158098434233921724368831438169236251388156538843130765839749971611700138542689103268188615650318382324763147362986946831498533598910048389049851582795140670379713368436936550993462419795151930366926100997690016547395529524473964171827920157336889323014101579970107516204300491300239088780977006932722402493220032103192223114025195282500531833540262007600210152580292036394147659668776194400220192531310617150231849112866311632423535665243901637826213842652240292318489881004021316557689671424617515546027241690299273456335267278183079683800454505130074022565346779933169088113075984360137465109525350967929422473667964352377199479628464133204166101721880240704684406826838107544188935162829082598325274645404958605660793796575519643800900234597111706734293649536494945035286105773459845163247104941038546317065517683849296325812601416719522323285868679798247027449783225802312818659729712709157338833845392510806314566708247864042208014192041338189012133461143077123088881215887459493979293544006820579762445757983812190580618853684117500004681176870342695988866697647275624076858487146545172596232684348412235338707519156444261139067045277118213260943347216838512776846816938533219908693216045261850676321818796892938278819046350891951214424369322573554654587108740255298606722438083463043978862082800994872158492304386988328289861918369288461701767269645101173135302657130374506350688873909675793093443408719720177297629217539442714407685958491514517174544949066777262116800698286120693726614981450444248727433763175985554669194645898080419861011629135729414805710034614602073120017318571651677459684537163097727537686108100329658778664862096252772910460988983363308372054898883464367274287998192798142774945144312895484021664648355719015423954365234058085190496332757609565671641290280310335080543696509757418807344325680967615011319450288771173260606577979467431965274792229920488427884461779500454229795236347542358115685027435926975820980485122101972664914225490376478785773018132286735095112639465361940381325268165468651740966714821722902434197913763967893295364097503818718637400481286888014525475443428966429976878864569793920559246409664599924310467853056990052944579282364580818153663545967657091945145104186680992734372409652155687834116735953315671535612323288143676280782312622120576598496658168530617345060603908976293529027573831818408355632894592187948874008916484411673907121410023010571684994578754570336441847809863125258894819441381535765193550666541722666824482479507134668518556634432606576506929667919648591474095612317602183537774079585619454207693210573252279836393728109569319937264259442695273107484910682235954958602954392661861628461093959484143273436867460721122756059779686424638606730684615414090506799934319833540552854141297357839866357347361068243065322757031147017838360142831759387015871680856141602465367442150863361931299546378758817346891337765470627290579831106298005861498528576522913107536786215768691519100589702156462296191840926531760035918254922872222509397714306699442146582744527553702075567556019574833345220712469427685353368287650122016591768903538026719887629298845875956379168595384638477285964224229573854721563828796967248088866935006994244911147442201644394488786546098490831074541118283746704747557881281243712107464931117382429838823218346031237316774461476465679564561916541538826984276557285584174031255399574793799630329537261078151057402607963009995833692058084102375250801916806380691531524077686078276546199738907067069135276492024543071949131888071767833190580123727479352783978183722921720330114881227602483605815149724391922447667965448055846979015966304964007183404297284425772343368781694209391795436843326717251135711634005464657522257805866954932574608503081342817658720874990719824731486936002792085410443973304025211292199185144047572799861274324286626800466862789399961898024390362459546851614836207240830502082308441070040445988034787590798772572835929152458704295206883755912872800348737592170373243769293897667658785436764618282050459936743494000111163885808926301002525514091133362467968659379434536639422004639448580975301989460474918738319075126203800443414066559271987037404899229962151516164018782786536547985001675203652503979540904864285944268350297221332760609882936275552759815824452726113089379874730073136440616828774154014953228604276746838567201269244812533215514182475302061659363013326537377304691196370982887802040162280919769013473529397596533993024970179156674679809154619842998552769509365769785338281615542289195523352536314967761269008900558080055827403762363775085066613752994222395644047671934192919110396008435402499207009655492899275931650729681342359957924613035133138878910938327715732016385459048232288439928032903355777529716016044885196506966813432061372421280069041276389423602891391279629799468757792686402423847156131808332802451420979357169412993760786745893672946402312246555522489138713359731483837714596108693362428036501730030903929699213765994366167528450615692114565242575604056563897112508685414599925416673440256896598722223448840315237328587896559036909289767634997893083471124264151756663659104970634210175474898108046617500568560688043642057652049410657316248281805133063658253328976845411346703885241868220628450000825937256338923949399556025231946492831678365118390617971528072023584365160760791223400562269777715964265404369417421439368880635079510410750833065182080795502140675817447441550200169761982591101465198420130449622369675760063158871942440346756790661997492889554112485218183444952354054442761237724785262068662806069192327331801783707078190616163938553755581670129321520765402439073651414189957882752701770825038271623249414419696953659129514188694417980189705953730438278641796845160716574625516882074156556046946934045511962972383197071505437854846386699307012038534023900602999890061335125740131826848028151485329529081348024026572644365519740286748672637397070310385359125469625403964584884655120334889546536077084483711635558391085439320976089779239753250392121014653915466408436744762138149899937116945574462351187311749973499166574629261108152639654975434896141171368837672049425484405809242788836610487599021986076807598401446654176068048549739310326432210640658513686489058218727801555742121208571003043496723542008595156717817261458894238704398041106011884225246548812414633505186216255644900699267978018415063976752748829784204751776734962194296238386552381276633408349471072223015112150184087270597085409511802184458058648395185163865316889312024145211975209485495052592999323442490710397494059691646304203159061795926188695096644916874927775979658944751564816432790963193126394975501468650540102782503863592777285496736207243292835969359924224189275117334619617023453356125439405740204851118812146613949442235763488205302320355115656822951352480856008942011065877145561038049267015320599645998980730574151164720581904927426514500869184654246856910810880672842281430006913014511463869640089859125896222790912876191493689311298492928420547137901529304365559193360750964134620067023719288759027842074966981541616235521631578298687921551953774366965064478917365921598533848178428129664899422811156001390793183510614631188867119336193752169075156897744225402394612128458746134392167847044160309417774319818833672262637381305602471638978914428232451550470880588978264171974549987914950303513517572286863472652428255843433520372094236346089962077170348120415627307386859837875236121674369978813827420873297703820338913450534080184512309869228315287804755867329729201192732062865223460442775950606510518498734630019762032828044854206071877040140762915638724914345693302178222156124840641656092184453594032482553326262057703629484653009924034077493654757358939830574604215180525177673209624557602603522461295150722727519447702779468344757670788784453911265978715267695220043889965109034185852136888779906672513995574558361961184199703105724763454665022529839831885259132132922540636014579528652239137240304468954244633255422381357546363318580630535252168645641850332793876476678650420161693706698236751228926699415447071074845094375225005370586228557401912146432772087205973696806231762055891862497850059660669037860388458588195595845898101632263165886391362589823636764964055603079038141843749537220033080443235945363031805498260608283187431018416424893385601823453915162544462474878663828307408098166541627841366666987366002508219566692272601972443988284258370727216776235235421156996114764318418843648069491233476880696560251184455729589422574478567058338673159396354825102123204301833747110248687745239346659698233404675406219742443677249789957074440846516464289930253256125485199985387029908239268290626736845623481963736508323790494018579122565582605057925347033859574985107313781458942089002849006557764690314086129007252253395824410717733138962005043268544588787227900888042577276437748268654251431743726337759448121461988572973545945472126304604075470287899681887132522936564887695228613222435108715790450668063628314404155616756675164049791757428348187169920939128268630177588178137050647269554463337029813434009895211790694028751402192069157658586022396888899148708024700087707445977270641161385795363062629992956387919528654092537567914201196169294541572672487623962212566055468111907824849037563165993048057995286313232652639614564560432691297774501237865855634588051587081495534397348251428075778878680012738095774500208654066659914373147893115462104754417765284488050519012302444042029519401967359947295288198946280649031032758912440553680040799059779463214728212805308031962719318488705787451793751846287779060669769551999107317168147577825830591731148273457584891459452991449631926604603613874250381119265174543833589210004295942954572879388614076981643596398066353349635670511822013633685774910089855838822419288602294572417287837464844552358813815414934516503194644898571784109941589511173644275994484588994079650116203902722315852221441040714449070054026473980697616704689388999658405565844849668142065140781415782072305172472670304503914781057789978072913053243055634241543926058334788171181317649457299303579164595619735607220421310771769805117636519078881397707379509655184576200493113169083956517221292240052997066841827366108903710226890715812152191225648762508584564393301485103354660893659287707847068745121494083666322244246941116944883455361547355228456401038728524496781740677100474490163888042132074566350067910971005133417943813682314212796470436350176660018867987133244298267128439019138595947065389672588846526287966858335920106746295019638064806094131591001352357005526118047499898681191624056844028350485834303721793812237206068015210682624461035092193567444922918815337702536403841106718988505208621676356049263397620872896152432713566080732148142157481444426104393093586946550989851223869901152348534459850804887482403887071162209565220566853997210944151795202523049481627005316469442877345788605483301723324803372031161290215467145751117064064445025845660443453582170312031530873394989373909198365773043359223893328914236183021656896618359955090463323293831165080407883339595852740594129765129195767782578222045549616996001426340960043158484830631332360345441092427474779058920156273546834278322989046456912354708676463874832309653864963922344539201816096525491353972051903519051210817014665177770919808528341579943825971032902469737894378843513167333998732756114340896220319375424767310585738906664958172591931040846295208976546583190527895231566258961134027853803137424947029642721397614542145611809249547479259405918591954488984344903637034686427146476140581975173507184299082478911967702755146901254578176536901847675092852688143190508247776249161258455192230943187812019619475622457961270487178454212392777380201044155965000949828802230480789311690121072774699899462476465995010794514788713376506611036440998847903872011999555979775303081364451997607572603258275138826904069239459815198752874034077651927847752343121120188085460906166235810237172825155933120488198336276381120723640686064473308231383215273832982342034838238770763904903497649099520904239763077109903638291560320555779853803325137588541287739227623329778967927983329082390940807202165069850780430719402728490579747488950857928650458299653510897637392438648841932074797958270775777963817165442835255728957696062215598866675978256484013043179200528990406256129935983955739200533577868649535127525417267532248944926310516063780280587641451267558710860840865269307258671727096149266311866510537709190154644860014087773973099981192710252449652395105639768358452273781547906330542104115651269348548115963703931384255710640338080425524388776668097088392859602842939619755629761649031308656676762849360947831987523407924157750281723017878969704317841973473992741737449836828210164224281400301449439940262038640955695082078897103823737106399074178831266664897450711239675999225241718637576638067428868927868899517385644493587684126071548647020894539029859660678573938548849586872119305202188739916037749362989747160420558958973969625355893772033212344651268876372905084170080146753457573276558799184837745505395841302291973448510856919627933118212181030138465453886858684870875861657645807790402219050303662157107385474224039733711070064200108795156177457336336537211993478763320963447625687341459746525554145835461858972893721229038863828391811302159909985337274761834828488380803860578083352199345532607558784705490825127528084768742826292524431122488520604284867554272296911502418369461540141965949514578286542523922617951866538503206865405328603185559158358044539168191499481445422936013317061210372454277946115094132068065453376610058371524292613339605051452308504702271347086858647920173747391185549915710439848633878095652267376238534264749207106044584057379128478063177754348024460334324713146209576861511727548947625557062946189494416597980770741632137520617006690702536793933667257407029798892320130711219707015598446780683508706617272678755888772471324456043807727283407901991490152982884405115993144392151504115560986820888743426524638754987391773878727503917933914852614148942327362969061636533129230740287257022988407138467948415629862897315358148013727936307021495344889591436375256909406779477046065116497185686707565396891632675841651596603946657841546761241673824724463393500504413306704250664370304652465635644153095042294653131561476638945187152063584200330891596266558076409967434205905778969619599081013835485638915238674124952361189478756791635968265315167733832117513181765197315611465558673237312427173712778738989840301424588369081884322758127876059409822696640912849786419377478201066648187362991730373706908538289454961700171207527367794668493001675964735301745597007612363073193830911423092185516873082602655168183586478761338129931941806340725822076019728312279145628098867426847287865929279882469146249176191299114745871277670119747931725703537407125208472160895762423359777604351505721170937588480124291294460252403245343032425963396281609729056688393249929051340375949928547055242322162158535704511832044690254134343304649157568480036640327763382322617998259492032591845784707747948327347067546520087877259062513418440773530411463707014628687078806818453161879113526501701320855828460157608363803044656180872434806050498050395443567373739701043766586497235721424207539414168040547765328820356937800644061354635952310881095828434189807382182394923056616853314311247723986493912683683994223214853596927864828262788494053614362998107413930516414385261266572317619586799373762732179346091142608161956232147299884151713357883993935195677786311935141410299055365440240572417158560681653863326568549326743110140776883360330085152022693164334429285427940201788577270225272195161333764270424610754414154221996604330097735404757865685623091528740370552905578995709205124930987385522383429907164846824814722222658423026055096165837082858748652448196657854940750135827660415386327278030924844458213549757659106859396245872048612378348652651118513232945061119310774260888721518997760000576091911457434502139096861733785465200991476736126086675346794717635757965155695219996731300036855727784274504288529537122901196677242932914271920694813997261853022193554122126302070993683621228507649479048386723654620200430925923874948642666258752590461132166915349184215633228285124411079357144522916034545673589816351394867345785620154708735940143939157900265290564380240322189932775154510462546101677186530172632733602702994563864204386876999665177815873960828689463960325995608083828988230966784482440961535581569415326743423982700063512202916347347571712616055401437571683545227739327696620112076724603729722740710579537133509410330359574948165069820243522543279918722557719506231506662363427424555429044231943195558555312171860095279582706681317805990482423733118540445363503350820650598869997954203994346531867859490943812930186271806469673713355161228246830806025918440456735230502374525614481211829087118192979912256027504232100424101894242541400011583170546791450317343676702944746865738085013783428808082634054851359783019569140242764641003703402332636379100462245964596079116949534480923557875667839053811529274573230048353778621227728950923361186000009610581602391500848352867429348227933379096400077628521791151169830171367606573523518484068610715439401261398506372106719612541305193574035479447734558324573931234997860173746989926894675854834816878599906769163062848823064818620294965153449564195917920801555154826682275746532864817798526314285994436387923848685510189757177196595959293446406543998007976981453460207889196707536748616005751133733359628743699117768219383586483681935663945272196638572103498992347892561968942427630920916674387071397446695875989275536116996037439141928882608570843282151832494536045470975820920382661547311695855135498310828394611614661893510882824128926707059220125321620173289446444442934065037490826422146250991470120665982647061834832028159386831032059848654068668984893341027745770975039136551966225875225205898517166816085665888617320596313435893492825788308679459088599421171959891623496995384620620351925861869672872131626832979926823603304345571712337438168254355200772451429180370556177962040892664750981581335536465900724763755272275594211457943270076471960673338534996849116612072645092475248336826467475147126622987435136748143922162792901985748486755312089635238559471492554991250562524973342200093405473715669345693050197187857871481031385974640123877469030884227521962357286981782334661874303629900963790906631073384331247346975376589244767782091549332869146177138661554113495892036632784699077221622558050550619448184726838213294268287192064580522968690198011596646865039128809356760029727986068613477164972221474292381665950515155167188194449812965158747237338256987137715816342591343444616001694686137919999112464452642982792109134491607251258154149534999670546513045556756311089271093107773338727003134244682278102436966870151852299471173624478141231600904126516422777470060935433555538205064762262175592559820032298812606096924119990545694995132415447529375192032616884113448227832095241927000178294150859343730006441340907739930278008566600895940350879777712071379122683034257520440899992662697466331303054789456560767715943161396776658156164589639591537901119941857011542399306412000169150324180769021232665021418217783301765170909390903261657999439207663406932935583302570401329506283348869681205832135660665955163043784615636670558709946651474533783978052027304068440359302258474369548441829348799509617723581214334332685431815784336971850310451041081336694490650775027987537451054592336416048928858834641384222748381960249660988722697766712106957649329595221043063532578924062088033888180950802191374731176535281219057975835905230696196406692875798831158396764363530695969365855263547611816038413769589615122227904509448443959235135349030016382613036898469781831613784171063771219326446777481997793585430391841793916926958775834631937377131849584784022160500131073019874573167215612460551309972561056238062974498687645894552517348896741126243097446052310534449186400547745591123909477588890916932931986163761575896256054660336921356184214270487421459201033796797130053082735440791676668879288643692029343887566006048878287022035731558465003189771348122768526269516664113154450079602729379080938402007877185951502369534106439836232795168354660159283842905384669598082088910715609622575562111110244289660588687609910695515092904527074562437265185352017064230883890204476039388956692841450850882694424182795182395911479523778534361172106973524895468757936165800748168389207892518616987663436385503462021321377774970886505362235926486429161801602876195173333571788226550494061651565140920801529942052013824611691037756675560489126661482859034593958070000152378129758309770060733975107562666139449802473148561618109651209138687216748952839834106039464788660444478868534164503341753971809781177040271513028147270785704098182242813395902226682767353227326034846658566801087586985861185145647948995572700818255834255128449919374559659147974628827342302520647336529795228705862552641461043122462008461201159622763765172910670228595969029427329840313884800819392075549319918124717657860497349047028463417877592301219346209512339532930110034396384935786819241600420491276441800721083991070892256945121241951796631419183806775049527615951852287193763483391840949332267871647120854724036222889901185059835235111396283091546006231884134846877778954581126941168069032421875903144374984819800949052523572039575450016790465581922294883458665349524590231858239092743043093432664076703113064081451077617740732771042696456321272891126595052759213355377967918843908986777333160074639617816797562347423792162401107466047147923144766260210729786601326992335476957210803848836982766447736408765415866030566988008935915544860920203593411053650607713662212594512222434216884454474615937966997544215585780076537257125852933928980115167277498483393403281950790988925147954062361221390037711214450031824003753031331125890039729720824850070627219607821419927860368905201383687900491217036216095599099350597973894584024384235055429074463566273472699208673500482573707725084911538210867704294401972144408467323584062722234563803596384788654851616283280181257448297451587435356891834647761437673217665280972650857877353647433040224550318972040353538086486896671043897866908457535354262715485322684073468534662236451949329134280343637329773849358843916538172310958059147845204833471910474374111387234402809618478490344230218383630502572826032228279571692024789546009002921771322021816807044400404474242956945927467068299028108579300975465063093428601309778794734037038597493728516808731107677467427959384081782871155264876022650630628744085359847221694751495728815582672085445899852530683646917914622058103769705181556057771663702021815837382465950844694830098617971325599247044986100806667525207903800820738420294700176173161640971300398655641937980396115034437735050252058594955774732241883082277834025462531570284382941704280760352745236481357651917640610052266536355065618205881605474100827022001389870194335390558190005727144568025606997067716850151399751003107129467525855401430231401519133601394047980591855886440746438680226216134805867260270524051342926759186223167670112573997601079960346190094923946448979160328288281515498710285650919750619596217547220762216831040493241460421577788452033890978782681485058152084009988037076200975410973122546755866093910661604147949165533578665897416598145610965372416399443522335945203163448795668211634227371437876207134715617862951422258687908760411836063967540232649366743940336601243531993497391560585138970270199957682308522044926262733880481999964164286900959637082680933283775368057033006062580957278210169564668339059254085851304025375665145475430085869207735256420277920353873898572001848510858934716689828771079847272941370491773560362914638385891661218397160782749895471535600552776585293677910316484811541260375559716825643274837034069148011119311090361985668091670674343236471757345227510019662386593459971426823344713829810700252135694879084962268036489740630410422348912904798659943390071694498917196323646677853334268524024355241968208249341543353585665523831064812422347912747416291736845345064186266608877608926070885673249556776911419857253348580907438092070503250164102548734246466847091340717351991747244712674449653732475079424013810155791631862906864693064305198842430884781458580506680719236214864569656121282188139035762192507902471421716855380355938096564240469404041573340205141806828850353456598811747406891891810045576970824937857383376083108660809703533991674823727863198414992597095382211164868653209617939444210242416096815295791999916055629223058320439633389685616933629549509988126459621231380013577457352288959203199486295486912882223078388332220647135749572655359026594262524967039925710068970594868599991152041644576113731695920711530254784537358223756082490296438099664524698043675736531010018166296023135404258256071730028780001358865277558318012979927522289540554778304788464119613500121920941432550827779560763158596175618945024425523230483576746635052855732483328707893116285246803956316449550291862031035395722047527353043993231361636010883043234921047683508817459591333632536583026982161279283036307233070346115859094317925312420786139541161468288553774428033350063961096987095425859613627808031182326356260966064272306380047938932469910461198860106723567167828443792286946209206332879788467189580868927501623408201555945000436027956884536470601704787545435688376170854053678847083369599300256707521289641001660427001487404023427071338240284616843369999594272102548722020775971358032864946187355545321446068266530524903261751825753855120494569255285982532754245618572777317840827787419123400958644978156125297192382105337894741078921406428592862530872739830496974465124206751150093026065695950231208161877568308705214698978675677434869623337089122002467079751930395864305784475607905883594590329083095617354259439558438835665111414463857873742183718233115205336781410614518698756011507993709201284049342361003289446120702338311282336119216476679498953869094696885976725490238447773568278558850766483475267604248383412394210183860951674486692972549853095836183344571809011818795725520988952891168266158905166635602306775382655542110025057291784639190562523508288226101113791295650121272920282704484363771354707334849808936153740681532620887593020406982773624405989624169045920227615393203966007285571087988307340691112388346433034283293647104003240203733917127344879025080599554420139033592423256644004667304821217623939719931918695358815100759674919636846095958412098694610247360988640983903631622941771835068489829140783830758234794727946437936733008104924656750511679858442019018382036116441843389976743541612635716698467250346288050519837617078246477818802018333688198274778707135170330910811376635217148389507699645943671514438758278884245755472419892009084908923429510114710611765653253460923617192920939556950675909679423441340843019950583303008424025645708950325167999576568362511751292389470524218965738854569593482482257557590195650914236183550624465212412654434565158008746274904985128988322445735529649508162068627309429488586397901763913167846409493791695880462307727092954513868676586019653779585950617716248239179544296406027774548686061646969940339180626589429758121299995197743139826787832899436396295397155409491047609748380643911418562222660551623896278384991544415496398574198479649007188599757965926603670412241154401935413310790797071240547380935490284693100781999626157107174757416819832271410634350663793673663817422708628969779528578775335266420755681713244292804645441367867639575219847316948341628652719832640514690966930260956747197215121585433849363215153541509095366188913093776397566548903307076443803685354850027588131148313943108540075750387336784156599529744515607133223432312271080695957888991542243405969207969004873263450747378119134258577068091542998210127345343279293145256872869674067236687914162783597457064174678063800453161720286923707962624417912970739203666751165161874732413712180323519654682645887238053087594929065420332483599750355489739244076375132975338709555032106879815445282681814815041005231663759791541491171712932087080242700013211897229664327018186373818013320494397229920042125344742808239346952888136138808256380926699642806271427622372589821474193628683349427519541358185882200745861811310533997630827154272937667446035473270954809212361109651860593962780112938144611334716623192291383936962589575024842019086970257686690648463005667323064850638943926525364744703440416946215802096889558531585361102479318479326388510695895740573168717328437442865201966526783745699030580250747773026238219862200303287790438508213386399950774131838810666920626994741637492548284894005065632938005352412356080763897372092459021259594627026605684401336847598782553590424102580223211441730496594713793315367366832759709361579510504883329572228904500285107213160730151634980571739331417989894443551011301392127019595773309436593187821898342476819564073505086408605803574801433367312736777548893175964906977295990487278775638332343393230778644021530762613210282824865360621408368484585475775476975317002186303410838746626510108314612205609502836213316681794015382863510060112558740065747057482495493552177605836579439371075417769157317162703345669108452703040075902838362897437255354045878416088722723001830404427011690713062125911370519180765269976931438827410213602427020826819164842987370532144431775613341297324189614055372590994722601967065898268999550270148959871756161897851555686923001644237035431622220054351649050282718046652702536626048098556035588767182743556525543817711928967974126613410095952162880682646100917076554215589868412596441777248766240249959379260670206038172601719393336434993607362829115353871274274446026586330878039733642488396346680144829060615947428056497031940661117019955581110983393531631416373938973480199032372350865031822918436981307777844765318985299517055249140622099690958053577946376725548529053971884678232090975360260580748810362414714169869253551476216590012345124660691205024549181331932926366303856111304114526359101694035586153695565270435381385852217904478174263922640827580038902842662789262961989276118341487185380979409471787786205145203157239901345678088685693336564751801000176495200285392303537288571124787776201455206031536106589299383271297438245002070958351715262681603391716272989030162363287864277480793314968596622790023162322158164235473803328100939563332156621094490829008466573833021207977933184791965305257127322886119905034513203961542953661403571042782523530280627406456472842299097982502255112982332406538348881746330716660378453485951451740161775817423090487489539228104147733246166012424866930570234461838576526267774193070056487971298100513091417970988523633980271633268510328499517371862057116818209277443830899349925548328780325110448810510442898164058225243955093005562684764272112106950129349464534515917224254954468906771019621960468354231170533492390798125812325561959573786055591960809584679734851891471370155027133503835860001078335416098174094467169472286454856276432741168379312325818588775720337384797999055062657860650996712504521540102570884186041611170414520196689388897757468007263760244718668363789475551818196924239487127030368270505783763284569254324875356777104091098117700326212574803226884629913701226990678233984401464722358012816848189521364108273641003535906793868175799933543082907629288029971036271407523667431018122583844477226270476808366651146731636684612582877599151608915450811824707522691133320878785972625450950620554812191434416378936015001033818207511039703453223404121784966217471841218103334865551378412675516606094271139949339947493438303686450145940445988126649624018865984915000370729945187894326284921355359121151150435088780360293199816376904848808872359463439365111883764146925588475110437000755314577588935215575233233227992097623647572630342177298512601483184332346559066465151239536601471327018671166031330887336475567374555608461174765652293692981880958872029810732851250492710920672520433978987193578324287114199734251083659618800628282667250133634546832653141032058217298235917098137570380478979509552262931390402660214867664613249334141611655965089276205403193912887305452634450809055376407712416242543072873354671923849594045406383063627512509830931457943187310544042388637003320740109670166538121099291916479595375569948975479131479713503621331705663825763129436868448169325589552621521128951663922151573749446754178344447490795848745537537948904008240955347764850421687623945428105889565452526027427626026690745934705894830613803630726927531169365139199475486327859666758631222440640030368862286487203689668134808850669346811767094085105941530225477337891316248066879145385278165607992554536872295088824980498995330883068366696043878214562640631325834596904163888365205160373825533884502645138355645612162927955794472827690199682977253557195517431826877371948570711229419110449782179299342973658198858013607029514292835853561918732923739753581495838890612035547433721098343482431004822476939753593022552089173421883003592039052357412093518602511367626422048066830523353723076382873491130858911811729480387255518365946628446551837773471930778226361287959986888252982079287190114488630867510051171171080618950040662292457265537548267375629818407158687421466208496390177553010643605564547224045506378982050972199670758123970790573504928988944640405228666259216360015428451236918791169936667493394317061901630943407375134396427731641634234983587570336829748536145750302873120723304027954455224644968445488800205928449689107529149398520078397126065335070182442259184372963988380139103236084082819823402428563003351786373710574608847904690639424883750812061402843907065627044719597162017644182684318264578098690980131456169054051584658600690782129247860367535743116823501932784282324002877083062879185752172587813236326351888420273869168545868657038465859548656901027319220289775060954673737032696089705791623325228187814548470749582170410628000221896186193527135047789056991300851810875465561035852555451217330896842278117111219925823313165515193622760682231904316451181475507945514910041234523915707780023349751613495334699428408395616744894023349210838536466971013856354019076029048536555994747257130977710603967607249326479070288187143195963915944634584232577681478384917722955110708093800646350401863030424947200839206911386270687905348959945130394456175621967208617073512416196788899580256806482676575715273635662953417573549758986940619922310847934168774855182443209246636036924800563916988999596455603001927054870727183572679667113119411831014468932523391338322061458944626723753521049552861428397124899956057763716626202782973140845910376243881423763370706709953951908934644910267299953290536530600468689773749391398833365146227366804837596224319106219637694396265905362006079772242623866750931613926531503181562558914815144994511687288808293967735947047357926270899212511784191819793264933415289635029563760697280650900766427643587286210226412410883101900540391710978521642117885658913956728756279867966046467078107539342971708902590751726471046447086070353167446756731002909094099209910810053565042491752307190792647531830302637323078407399281063838741645254103015683562257424638212269360947594928937884962814320299489048898379971408087884017633829542679750910471639328266774050296055985548372607747669756291296926267155943144218710444447942220029937683625737745572799235406242539807842019266963602337295949366653551288337600396106485608934865764355862134068306666278004612809561075819854264730092051947446247256388010905607495902914484693533991546845401863426675137826378114552618433274800290659912486479672980240641311569604041542052398128371218644629407862718915979407233103125629723572487577022613495369421831950428094814905939987081289764782681707983922900386668897823380911323747122684891664164935440569729615110316784105758575078014638930090516443614494163823258226434330516218236900312041309181514085101504636661285902725084347938504361887420871419082791234892962346464696875159097120400993766646461566486341099904931776057536689910150720575919684539281554021745820215515695154003757129632367321242584972161889125750948848621619584535395564037715169269825940274923873635300570021182204372372098644364239735647559208437729592378295668703692897933060197968979917231441928131261970002449982527095520022113772530132020429530362042141077610846704788172996985804191315564571137735806096905808681707534997066390984623235796925876358611135308656809306440426811863974026826863508537693408974107117944790875414508052850819001621105418800663250569223540920792992970933595904970539670687958485168584924534633878164689591660492716206490878383162856230039141011528720338481036709166138496416741822624314985265769989899489906086367289648039025140870556976485324177702990464279393207592337938390082535932063017384076216656688380420990109890351864665182231475434345362761886236615253544397297306343394839071125694544892418820815212714711815065696428743244199701596183741741951731238913292538951195175894799201510165126075624934631264329394039371300563563029032369146589371524066962567855218984305042745884562859217791740442207962028309951060772424846273382412819780632745224118068267529797176651886519296972606669209439480758738107479016697933056450415874885022854165907453134556382173271554270489087686468668882607907979304324757343795402406017332124080703498043060305667906303569125317196804315721999572289339041544905069142030028931203242111879996627496745775043908083869085820222508516709442265068252942280545828998936173447476886503136198465993368083915523837910204812981310266971378118618788288287687875856879555237718123515976960575886444816363979060147248463816645017004734921000124480925248533533864775945145939745154565935519036650793064433553699960006122245504814660051979151341766297214596956597281036762394156281317136056107779976267930249144184327736089988245312546688344556172625096909434656506011763791183362835601638678800667860081363836980177644039061374416403237237210846692520106879776128496967659167501550623982730397212099613443871529781571355634211294605598647879441082670834445050718874673538527288769353174121225367446111037096273386022838427468680626126928730086001332092644659781658304124008683884907012095874904729666708095586933720545405597533219472037782524387053132634289798030476421256679000461729962650474259644721073832770382083249573874901340018348813151504622347164961926449673028448038325630505625309060833447831107067171736291184770303055617479203660846323743513793395519248984576784560778019279419996880120770945593819537314217548783691327067503590603407065980046494157278612462832528894147303100314829589512569026784222865836247512311460235479217572725209196286283355381671569158347286065301428006829874649609165433075560000634148047176936106242357798191023302357894440406056671879117989585563225636914882189663448646522868088467222989871072228721050822462381477288725777406047165183898833009147055634013135462441545720329477000382075031139116820511863055446219839339464883833108360012035895966828133126679564680350147737632204097777827303509238879994876942717267233340523211064497783934358860675300006995556072709656502165971487703127457870751353939137087034997822060486575555870187780355464946544506266894356238501842098609865272502771846817836549308921712310659516797659383160757191498795944575009231485751635135988092219599998645277134454925065391592299682308872445661351937016041685106967034160323098254295041148491322104289199086599983612438007089103075413347641715643374893540449299575267919055997958551961035499248223331467284539195412269659153538906703207253981594735592258056641586368481587242902880422452541189835369699384995789267495708564923200077827196918398324474266553934504368076433107649505489756713236876686385814727860080515856152477883877783369873804854798704481475341620461037890359742966664699741574812926455817344944567766358896812040547712500349375535420892391286613726884860824658139839891341551274772323524933858559136346373115740858291726808225380503672775690586526267026259721731960635359804632500850590576862620233520721502306745138492415533241431002283706712971796523926023897454282795668256040195068004187072336757004781675264518152140619636000304393741312249752307774618307496115692432290594598163625305794918968240145911462736035852610952323703442464723827993583713536444676317332228216969888432190308905096921934943768142552785609610187077188647005838453369022879014219181492532890664019198633488223338102526284601316837719999624411589798495747861576537734292409723216641030471102364581787861234707001290242286573822922905566763940166307493956852765590511287938661697566189708792365345850216528577011218807249084773022622612800761093050467799755022494971705000965302641449124819863102122567481088732174988513032555532764781083917139532571136760451594562936416228227459596031899424173949997251738104863858432919646637821225164846398528237339498897491958486280199030545682158512976137232463688446281857340745463236989143663586084792923660316132634661490678944716665121720090644032839614498283964141842365837043468112961920427071689431436303458926378376485986973856609648425021437769268696357462038342208803737854304404029187423706847864369122559030360879030404885690566498926787607219300606740106292328000151487554206461490821749914722017410767426060909379998907652988377472062750775254411646251120257165228440810540982257545485049009621815779434891413201087658086498596305081388466834188738382311096309198779431517208748238369629496420710995810149336489262741695445522107179531693147381160291882435555768107654877600771466831218776380521717356725360053269875262025042320775954048053134717258631701741807765312739123294562733774341929568511002546964804600221498288216458998463326063572365399479773168323926515522681951415752112387138817592130151059707967813819960789255128550557974406132540452493066242865986775853652316254081516760857554900314151258466447519175977179724562204679749517907091609460323413048591991741127391356201394535573625606714177775448273929874887489261380159576449173397194955032657878879224611136747292041288556744269657819760063945840099852363616661487942148359095462284874760259598880151922048627488873041997696760274863505260391328187380493215422695059047592185676452058786162905486378926626327928366123393823091884732476329237839939488149206105252965057444630718615266750221548803006181442167745160944806486733512425658493661773127346540431536433295143671778807250049463363604857160266032166612823594766849070696573323055822619649334871670755944940002286595679696796022266846093052607021396283297749840902488203863622621335022959353291469182122701347905638410253138743138995176298847859760496054046951125500063634428904762781086143002692018991095233816208347376960106205109199765250696304212525793025912508757003011487281418030255194378142552919624374513413030500073586795625068126078606100149373312059672617923712029528696031045154680549632733582074497075544610746859905740135060743458464550970603280662817337024595602020486166707743973914171713034296785168811612960180588367842824050775010786827367447236809932604864960848230493963170420217949693925786754516065624852334025082943173191008837204715093828771368308977572689791894445701192637144419438779741364871613099386345516745241554688103392720732302288994865783666544103596881376470695655202289006015078511908092831235109219376293454899976421289615925773872505938723989957170511872616291459599665815626921851713774599868608606656258175237140512860556389841205539225273228460852031570187657562057508460058978717180392838478043422957464202161681033520360182094600931061937629515340109549298501540274845717486637703756744270351030967554157681488521899519531573835810105151535103215827208559166639502494916861467890551587371435932317997163153647007248657246160487924039143558706456589750994316025396039421264664203407679137503613003921114135341147782181954750668856119455161520508528794596313638360465751716144043275716210125852042081825802502367445561189764758154905227879482678084132195376292049261473757489091239675707658858049041063802249927207201488343704312044666415318556638388417235581670810745162386839354164836395549285729734595219449751161893356154950743251028096902755403048924715504008716784909763271688641626652512270730154601835416974670242729390966263262130587562510016352740709863219701501886493895384469474138835540640553545005315460141184625834146029097525712609315820895031797154647204668352123017558614837988161840535132977882230328310907207055645799562356595536203552511545793120226696810755630538107024973427791930219472602023587572806770022114542977751475205304510578224739960774182995921299785225306232049924356387298997138700052641320136027244022783145533918244294882126381164442425694869969768341020574658906727812210698445876697025421417979502077379005136741499974173452678620517977610579747246213528168837496350700810807448962873858650954702412020082862029645528629742389767051465401477568665280281303916054268005117878906391161845241402036619924947473100026916817405791343204805356983311124700637429715078354794828300828648809616520975544610251596946381695133518583923587295434392461644303822528525332282774116596319148070927334777184253584968404850370964311615386112559456115918496828120251866627797450758485195302939993655659724537721390790286475241548947288028773066908890700113203486257227838009563020485657138435623417330289668175872501440561292898703928245258150720160227054624813677709761847488856278406428550325796647355169275809118376854818721685253447366625554392453746310034497188473715983987105627284852114437789401858223418352559503859060974539763421648613697813340597251159543362051805224857086277533234537560817550535819249858180839329422311824886426961136739363871864389377161763215733998691184585979067785948259204628553266353447147567752551816345957855878429967748162603961072847876536050938411952660705250509187374779529193465834624815096774686189281966203768949840334742264010242378291590785723807191755321151512904267720246867217112195882379334596905955969647541625005920783810744167631723286562936696779928321235182369610482537925350614380731066831782232714737219270458742044866173489312087117587260082323393409300820249556857017529787376791472254413824287561221476804540653776452305109167449994668074937981385762670506641399577141712262718854276499795467143186456532908465160316994749523641959751464563430281192494937983204226276441385252983547987908677319995782860805015190246980194974551425910818370588330488163016134685927962192881824175529450285198877702240498202982629294781959015547327423523223523723217927387831454841441449684818147001700205306423051082299443148359919501611248835396874411178032193180709334798541184907375522167411997780575739385468731867797156583103540236494662079677290167652622291523727902316036346843597375294039787524736708311520589686824351950640300041409858160011400256433948305975444092300544019176506200980776821308657652657549685894025392255154357546697772490808185193438671167925605823261085012896849393994170890973686615093675678867197009172745702291597051775229787770138829463704329560666992691635240296770700457608782115290184148250827699786113512921545427006073767485233186728395229674184408014599713850255213789520868926468206331815375737996253432683902696258425979865867508932447427709560414772540054266331242548138210741208188205071534457368471175020158607131444279117200538070435305289388600000563377518810005057415419314275969670325166620737574781869421202560129331250332475409792392239193745000661259863857409588828709580158847508548003253905120261157379437908112720391346972862255236084977763791676375622968817947924959707672782869611666677391451241393044866186144253554904917670411316324983377307260759756549661768419564063397854142789464865415772204532924858666284595680304786433428823464879137990610776652192109828639335006273096655599503218231582800203629652760171672508605336652451102501855222561616334620224707944279806501776566006759829710487769674637890635128230586711996427033536478071401228326510251187128323427735462627313607036802819019241110237251982760385355454982728875556427145590741483280796357836540059801893448211125066741149025218159349003799066061555459993199570612947121143439294944906172115900689541766633130159470300231151983590392218779137391762745724189341832335256675751828865027394592138546256141295100065888617934426946888178672134598402708205692098871794844523290643615316122154893727201003286833658696093061903886702908256395025617440459525493085863806439466823305088884345452504321864057745746843765334668877980986784593437470727638006041374925059983621354086787398886740187124316801978029738276825766683882730473825566324280300865703263244568631157416037276999148369388754816830659676551958365324849561095354996624778364194946463132489455416996137535832474344004853788512935127393171014276218806815047329402025485875083843414571090951196735971956196595822745684396913376171740415650001226380112076949879084691035122508155945775218171801032573886756561663712033325611319852373957873917509498861501013463503721777609480663077932829968904885662695359569341734431394654589730392450816994772301995044176914261996673276124466526744601593437580844899137125633625266598815150405492257242982980665613200822806082823150322501178973510920626665645808177672088223692397243705191494977227484771008437950536323969841467482582590548268468701777952847327206666601984129260147699057989334044039826372735638637439321062969383737676544852328243370160437313481528851549214769068679087168933712470187423455102162265423601215654651255545069625020457666439791966562392716522844601854923936904414837745045585726998003379111226811367281844168550699450280730409889270236163828874722449923569978000456326428396511778814505684066220748643155417676814276103033719243349349372586435942811930363072346583215193971362805654573995976771602943763317072363452146532616209019344422028802309130486600768406909762475485941375809866208279372121336395729168192760641321636461846200439756424231013124081754374013737245284691252764680282428092279720977408345062467723739159839122283712028200031123611679887537525009975997126321424381321683313462263378732497076457811776076315484406207952858583676157838007844358741785485265141941844991551653034701398227760223603057565498324983766106294854881179639042497479118586945192443641606478512220977172891911635779927328763506879068214096015287908807047351983164503447167381837452166308566921142513669871414417058364491444157940201179779721557737764864268157249307599139713058773099342071453151313021382244919690624675571942659023014274522781198835093680882065024426502548711954398790902683543219834262223059629239382309301125007927218873394347552359929832774015183430128454241416588949314868611333578276748624489399725830865907972250931706680139321759994737353726512517297668631176266045316938250610518838189777910789852522559022994738902164724228846448114392643505620052137506894373611292625836068555653767804941993620898913073425503937372380019252066316360993555669146706637852296475856571241129530994202127029528056431616574214872156534998563930897771345564349094510374665965552957915603455349412642020454230039187430955296550872228912869117570638741881358927535039938218161064327696960916758101105082815234771880575723810595888630348234253016334527815213054222112672320964163080717077282647100468972824081152483796658359218920613856952670040716500204377272829540755036652169810961717835719218348864412205711615707627693634053093054514958005007445828111426478982708213143950450277616257562612928091132167393230005525638373952380215360729121868333217880736223188067342433995376862840884012534864181981759309817056230787733617007034822210032929958775000150109161760386574949904832018508516615849274705475744598886239879328528085543435528241079002188595779950519941785491379411998276137079154558093407516774620767847103670794106165499830970506896806700227392306498358560616786327117420639442532621203082872659097958543415719650265290081806333311265994233703622544676323044303446831629159992661096932971862202609669546785236121946864871041676524600460576925373342629666929631105235555726957589220161499845998088911586619095985644453782716172970164244924356215261225862143437057678575768862844788315238743253743253450527451651154732002279124994235540052367731763492039711337487737638487959643085647521665812886706528102740977566038099576024133514362354272840125002602798707925001883093279961125082095881644582051779700423520402794509542420458960158096133832669437698295851244470573362475632371047355002641925370366089982253337679821427674452253096017096963960925102082756300243695326492996843120004243158507985548774272392059548747682857347207642901562993066662722933621732522822470936590608366025254994512525841377949641117630433405389746375363869968863300539925229044388668026750339764131565247727429421982337760552233980903961204565167229834333033286841933467503875080435800833028724176785921502287991992748103816930076027066840910709723456899184534842111803550767276048051083264598498885767951725580402820904933174179755652137563502985051613298398258619856663564584620107068324845624004122607577254431674513958702095703777340052678203204366182003477144206687650068188364126228140067007718760750252995607498832493260769235749617579942443753985658782573205547263776813806257378110521052366366441401842336273513178250379075234966269140133655761601824205222302854537376600810368673595433214151317054154617229444516215056678070427092505979293013495220186843366647726855622587884965858343331632832119730910827030070660750036125013367703771858351684323093333711393870787791729063878847953131654275457450002761087947934016967992176993747301461222073261323981584452851594343755054847868092736561574636046222122597066192554972310463421434985782132308569554971257362129956898419023099906659299151525753771882176281028216640999990314305055727615503460385295798279645807210609565992698512387768874811431659451003924514387901849393862850874270561717294134371359341696110294207279116840508733534360200534455234895776165564834428680367125357772193190718131333948825762602364625922845865550941718247801411819305356601238946719294839741576398978771191051784294322999980584395145060531851375438111245823417928351209014779925067830991326702609020828192532561498188500636379908785486347529154638043050998150120048369175619803588573721644133998674610963000147114081382483702239503372531397251629343858990630110751646904320864640342529302813966698545410421494261309184473705267525549242096575078193623087156938746969429783316198231370850689880955576888361582677342152970887455981420303690523787294506089317995350428171422465593217985959165454039289555095690744153023766560100013960720387344748965473714543158712268426438388560921612456353680006021980067075203209654600389691223239774864372755092859341296495025821754206461456943774549292653137532930486949966246720052903650830579255963226114430646718992340750490225377978779852194789617037716609361553544626116548651685943828465306900445766101112561634275984934360072884521644831107443647711744428604973351733685672697437606929336765340307995487938329921101806618732137209271545323014239083061835603940371940647245175457705874811727754190058328410770030239728025071598905504229997668812320572175148006905944163898220037271654778514104324848400343044376444764838548711822854431325952057447667144195505478957205389478392398126851201317076362594097069410853022198018909446739301823666230183652124758911641255743844773282623393402226886196785565168824827314304920487332172502842615297687802967324125142312374597919578432916174691125632735974290803797033248201984878808119337731257110020482054922379581986126112668597224953333724071123257339745376449070980498392062496974741495998096719162325506383972504574380384233155837274752798674022081189460494109921120690490925214223912709780711173852927930159628417281002715141936518526390457068820840195028852925801716593430597457065506101791604062084906440848861744731869304309377041240820892983213319684057115858594244732565004533557068293364889578015787521042727219970499514743237952121027906269095539913893537985605666319255600159977509410687848479291004893336585524385851630952476803005037172348220867078298307672866764968801611663152934245294252910086280919915722088711949278882110796873799278756516388040806371255991629513006899238852908554079340587827665118435939703470228835864955308841989612106571142944779840062391169055681186876154567627586924304816909238413396384376295590500005657804643558237700041327201810777737160114713448928285188461710412692095580318379484680812028806306498146007970599339935342090649012172726787097292082669529816956647825687126130843565247371500256249216648917810886298592297198658952131547763100481286253436293072186390377217390171939252985852833021785283466129318159556309063083457935375046373335694967951730057216136719054337616078858675466224623604757061657490540309803723199234626660461704181556104232780868796553773756926754938824424203558332282735987647453378134857707076970138891659538132080540368906312953892998485214979170566035633276618649520704094314776136297368178456206282991694653836139979008344708473765600037299282913876594341413120049466564674118405135014271012071810234607614756093331474357705645155047790419957658064740510939660291902487243396677027490249167702185444187065166946565508574355624014675315454348433466566900142093309233705330775579189575759250582553607445251124627798417162918165461209860845044965112873136838995285406499124289481942746902272713382994571869486368264674683772109150502034859728707511783693701668538398441424358943641631228019372147092514236532670019754958995899595801696175617089709281915165421632759896469168802486236305187645734678029343792857103298063116810871321274994933898132601509463568360012794527214274907498954139231555334234055194537893776618961943977860231472785656722216069340078937608336061794163292555158656991388911045923857771290040894085598570215635785059237579635556081463281501388394260688374381783507058504286011616503262924731070521341955360956823502002033231674930511421234386545992506257758957551616072991120080351040098899542239808560769991587195887543309421958106032361653411229964945333474427377109491400041047864485305800290779223829442216951215344671250114672741774799407317832960320966672684279147653863445477499167117670208943970854453495519915662801648249022137754166598965702563383858546006419473665279934511593715770981911881666706355219179050203495840888098683714986168573079783733246531007195170862587220141924229232688954733736752546429199124093344662280601419116489529209552720624210450627196929837063070637923011650876775244730724672776495387273313903795450739539610206970297780555426585118418933264817752226610081554216665429424531317058272827274060037482509562656228665211579326054559972846083413552360010224261828615152055280902143315767710580449433734230089713992849684855497299664557742842357228897039728240415672719615415782151987615876151502921627411185627366032826331412467248954422510356273665804425888754889537447322693668506601691863190393996701937747253270971917639012972096282655582715542998052916769093895576522118019204372688757338310784403479707331976959189914029763416233004197873623793813959650191322449713203987318630587704007876739396374392264427694834349505248998170966557432545387513043991943898261378887116702869737110549696043060454124976641503361736332367227535525669170699186154110335241322598942742759657738626194877349703259347179571470459968361594889369984185248349649249275051925721841174388746740690778515701035699013780396864393932801958441508068626854112780517483234072787311060925303185985924961663179444818508979027728409793075282470387842253148690096256005229430165422881647137270451240058140573443611939535832704594693868583554047129395050563506366312736201972820116635765268897409720914597909152846153480870458709730496358705765246795288381074773382936498704597299497690773798479917890444697530320663483114161763938287986901792788706835109867370577578117607279436265582340128084458865373947061772617566667688510788419830948108100322124800767051750839722091146077404881038479597439995209483877255754262574613974895864804705369129149868924629038379629535677313202355960654385907752451100915879173907519059446801846102092722995362904217290482908757816089252759012813658158312015149138020106733987294614776611227727755959747447129708387725882001963117401424129556874518998273722504572933952099320438639644577263932139940920316632513452255270844982658024375484021367345044039563685317041311050525648485815488255146268113555175041488105354872822127477372351601953478971275891110180304678257331922317339389045264941030721427613236917788657231052621981069109262955060540355916990417364892444414455074233608929309305271041613495044574896004808786261781370943253728453023128301007616658625590267596024091998866719277022331692408018098786180078209927865303388955562455552336299402377180036712216505478955510175323895325503342137848747341747394759108668333732816820436727005960044420918576234334089364160558298169002777638124057551277281442704618824507389488918611187800632638053070937100204787123850106458256301716186500969842661609868377278350117688033765507123632829531961845989699698033660944429322390900313597224695748831734353092333854545128028658021844272651645953353684996461039265818308263020147368898878001138648470935717334018006881073015519463739143309671796871974405682169095562215320617435382333624730736124791157825777216704372463630365070280305627964500853025710438170411214964642218812809692693493566525199021653149124545459819934662852195111267820084298751577084384988005502924131991640840007895499649008014085448493103436390398701995076988098759856377929387100090101313688802907379053273430011669970186875021945504295024452263418769660160919509628086066721587271599665860205618723524090497785866365750112777711499721859355421548615095220847732149801453641908839609955299885273799663973662342053415662114313209777359045166155262401443354909372551639525553513129916995865070730059034616280118054395086533013876917004289623838577002883763494223643039568450362623733215373482779950959950414533091792376074658515309670599979600257686256450720085917363872996634388195713107394818401777169900953115905657709377212607247340986566029086823731624545052272275734095313438086873656313572534782351375631320982754774106358569498521260638534513110013455231085255374450775265117192429636792910677182671838926779286713640584647188406722598213263702185372974864557980735003684823287014813391855913697268119417848863898351838382388597051520669492688633523639196027623449586613513424330086275266802742497091096255832302082388350111474610589219788676511893759702959544234483642178084783766840578235530683045174250813580425484148295003723442632465070299172664674670102793512231453189681074432131094203141270729058142902627648505223409759663351367484019814490009252066947655193409524712526061154305334110474884584175645804228369171805162844175445749088030307725662023358051322943211747862186518066074760020786439448354847706349347468092120414445160357189762125650780189550636574282168930077518934459460971185762033989589284413198186180998711972072722597277537481183608989139326836825496920969428061684123891030676853177696852218278310597629140725980076409972775250263052365122719127288396346558680864225721219369289097230731110028668584483029852711667931032705239496874709429431295333928819134157449211468598941465880738048622040556714480154866920158150240908849549649846774392807847953297925037688331158857445806029577665055449995380939146806185669488336439130710727711522424237193359286642826208524175967632452763109228054666460477754082633860440866763001391846886640660844873136645048112745281806568793620516975086246593174887643545959774306021419561873576973383487581455046802408054164512695720387231816986084862570548384746227377374067320660200133414796326785006567001540730010359709775822066756166531456780917187096395659820289658039616043755918900595127791321669844344014314972204631815942513717468287607242376733151835262349371188477945355849432856097875367575713682980815483535585131053322198032721932678640700305561303753208294351456117921241674457965245596552757862600221225752005882644467350243216551610969959553474655001253589996278588387896588948267862270391513287450447338313438262404112744195659134875448999196275423679168214227213106875312149017461295727418045679032257115504867013005377527783000244642081504987719759644190232018269852913437933325436528700707870384519744806163007538268131601439751946229830125144827538586531570361333807245028920059110108794134582554717522780872995965990530949849061217408580541486617278533823202943493378680360076119918117998743588807836497363476725377644936228855700563428561902887256866866123973769887382255047681246334078097476536708170279584369762046715563187580864652629929781589626493900141777520231244865703604633058543481018208911147726576710022727316253683631623985788132171658652133956018495642563024635308877294599966356278977560606391708206877667076344707063503599980233427711932743540797483724797004413090162798232503013193028932162821150483270305336008244642453966290168971274847386977646361650056983861432713549788328433476055213730682937372798373074250356364825194445958145311599357556176193253501358444016354785689468217428092096818050957674578755270453215946739839830898933249782788867187920001980370487531933256472517204919200097604772495543284074434598748157837271274293355979953796698889911391179841896204411295994680417338787525712495593802882512863540734689782357625797882462062645432258955918777810459414289100993188920864358540829881702689149707736035449232337472472361798105791294164811557859643212626387348134653571314019171036054017793863645565236721917830542112502430875433609648713656386067750036800977115907939472733504069198471900811506154308272290199672759586634662727581024764792559811075322442703416729583757058248108246003430544306580339921008717738457013290037893333674978971421388746179081690819028701817825847095544976748171870698081458570037096371660652929935019405267159364269559938658529268427133691491394573953815895345530257227417748957260874221184277057652219048167618148043650813468427276973757790483569355782288779328023534545858391851683982425058492363485346969012333987528846737530792692198822752444969721881382166618093611417471094097575405401358906590709472765073815359098027888846655178038590104656037071566482473868542166664556556759919135885167127111961348603568507847273877842899934427036931087654146515031027085921508273906161922722526889585184649065916951722628679666278624769455482241795521620083307353089022764471808789468538869435455753727687568797385919320670724877533598664477574296547190204705295477887065698024917373931266705167088278036785625173696714759041568216581530594398139594164194650891647288090578960844293900804880313579361770713864936146554944722348584191276086556082356221472281188767731752571098213211311300796282128526944671772141842430220000461958791477030071119725212064165460517342684109643713522090238549953939714874282047439613662560004727241762765637750303465119085987406429847107103219389357352938991665126113442672401172857066143828292027068485896370317415472626442603178323889190065454769094152450337100733501680751852343153825939780081491464856743448389048846910924867311200693876475489877960939814016086377933476544372445230869385845540133115903158618691463470196422568286691156506603083686726324197401262951669232293906632173208030336229043072499676368934583762394714989324042226234573673370164613566114947258527714892273651027256218740789360511781820968476437980328511315259264733249686366013938797875670652313137539424517884986730860052019880913970870028651579131426275393824606304354221454940904651738320899453335982088761814122208545643444537545073861453086432695864121805197221230240184546618692525737425341546925593861569108808745917427094274276015993439150076206957665620479731792731628326677639747377111375624034096445237657071201545686122592679747229239489945057164187132135483395432143789479983796483857594701685918027794667490838701674561751234249742722775858819479540570722426899587805733827521954662764297180139580592440235610334571770013096282358983778019750153757680802616804500972210466389946741766395931890884704527313037113408820385763890355016160035764142693851359745149093114213541581956201038433830502926904317029006873836199706205303957256350197353019333052678225400070321741467382021727747099173101372314191210214911190244113134605253947354404870350551840409884580358740025275186816732171072384552005510125954938450812742110611573635450776690346882553501008033655872977507302935631172983221385182714707990200475448770594665895551829142961719059280877641263146664190465698435129567888230981064282916643595818256408472069523414668631088304133804160988307635659045994290716196321023795209200543941386235194844561636527425374124593828448662714993663918102782124535836733411744260104472665471733483181458469607490192983842415310929697551980083794438688893326997869095272574237848855663448160714779171912810708165845393123393842109687600333689471888920589995928953376925369100652726903727606451917522438113407859594590137674248611949777145859317683934222986580441924684702022600652149722610704602038386715247451812196402476182593814357949547481418897858200270798551401328193192274385005129305107578314675088552990355267281864333021304123738159525029066657745905263741256471695052969793948242398637737409909781241276913798786188592500629704063932589912174988744495937162905294962746629510114385473154967873562542534399492474302679212193388914658251391072831493466057449151446068893433357453079852018696382131309371178503662266382800132694928556755490559825552404846818719689618461546725047512425158913039482909320331275497277854845976921592287291760753609321187470640776248033991108992953855568263737143710238681306629901396736013216472041230757092872947985033041678750597464782610098816054835466200130864312210564900327131481222678399278317841072398418735078573768407693948567291947094690996160067952611644596572871535917133601449529692006862735626169698668446872090633827841019990159448712951337437286146637984981416145053546003418167472055204678340106273176310118751463178762635337113712726254115583109350571426584752098605289168575317692186835570510677941256045425533530515784793212202642307729752414273912495561194669975806364465697107177831593095822124790041435857037784910020922042085364292455694342169830467090338400681933613895155225306558942350427553220929956644242795029097905491135190809042095107044011897559850472644178908362884646753267461167582985903519904413164495190466075161498690602376422078553057361215754969994687769707128401334380910243825510016224315858956311793901075904824640405304061198686585139980968676436052422891652156566379805998862734217486974115392349616254699186193787848868310993629826108529043263701323785804347258903696706656332450655029126747381263835176218697262887761389176053600665225753195518445527254346984595006147332807676372307054133616102955238879011065427716249034542466561376651960059517916399798115018505114495652554050451037022982020148292171210937007136975808831988243520303881084539344281560198423484406448359178276691508947725814880641846030652649979543642753586362120080176481958279476860015804999785777992084725970300341493879580913104115521329499342131354570517228313311936795933085725347777670117577593921290229775624929701709319030725455939459121714621052557146579356601062072584589926018212178359485907004035372364902580523709227110862092217283304370556722534440559722210636930803165725280779261689699802635941915571535501970769991634471702192931307197790135232902457188038141987803660986457274018344652281083460487980590313990220145691617307365664597232202039071544119021375559591948500682952839477624935769404689821846618126736015978929038967005792916045733680845766898265868107404109263043514701872756432931448492282510289161941668239031689416592242623104299273615204053637753080529485644697385892192575177348996670176737530841690403749926209009736006873590603426490044125083454390933848196936379629809938972166311501175087341469817093232204019804363580570367984150344696153479217277359972665661287775962125231915438751277515937311434211084384582557208608253606441272952662865057980132833139435161323315287774145154864969565882399214883571517041054421942040327583115805981392613153818456772865422417475050654183721005094227632900554614224523205839348114444216333784559474895464475213070866801858044375150700954176296333419483871691143595577087734139642900721378796808112614299316490911880357770834434306355905088982779039913604468553378325630136602723112031140421203475295611868976892479531741547659081527983817247417450054197758687252344810029619684823992872776675737700607597399446967411033445461146806862927922421273727813860136382000061457379178142156316313148644763771879692940314278646271676842351854599898071464133945545777123885235239265240859693438775023961012586668090295487150185083676985901996104320549096548966722070598346657965489045940268243517316644416012924055253540077301651893748743378707075405293529261851149009655517245611481785372359502826723399151506201666522531214551469433085923955434345586311271547744475351220615078487251197456247221433229578621945234718591883138600347049514683050129297439734021847071238035911785773859681519020202990524361812134357885521499726220703710797989824558801077560074450709943307071280188752807023302340774376987787780091292435089332474596053824059982567167229874899014577708117396018741532755632009807948426110070595466756938763957662324662503945684307640474468074743034671024096021727879352725855716725606855111375843107693541782088285248936592846572896647576568427093215614530801903717550925942342688519934805114399542370242975234315090392362104076131600104614516025084552521798155147765487117909150928070426401339606195676020832431145952289200067747034629219248710303957583636985630081081274901981741592334868715354690273607045244531526495781835194782049378457475034659366573100956808998297577653521467593885171919812864927767625544351073792714920666710875892822032082617289442695401071127476478674652276808925245238872543683978075494487509642228780934146347995980349540787335574377861989243981967555986922420186558344043101224405042505529957126690141558327996332168022786498769004870098142348582593857629812840821016410761642925401199178107068702113339332377418252777548662431792944142170025641947474574208446310647698102219354526850352032057528626140040855052605285603059223217507520642173894385137371515378920935559106171628436163776674374575264373444078518120623143858166677996553331082338553795776016849527864019681767377488408325877657098432343166341632994547849635448106913299659395317508283880287287945754803948987904692777876735175298888860800664483321089370625742072338708675911731635354427474398841835855736086459941488172674030765067662073182854448454751885729888511908033227540027875289352232749819049432407898302900873871827595997911786735859538109093904056849227015022400239633856036162216511981233390359962183742802322878792587128183379564574966426393587931029394064374149165478808165032150928704828043260320031351806602282270590150147924675003244125844756896681968662692498257069453239304201410252874387472874219012295845612183499191054214086303626812485648384363925117227241884164523828530338304011361517149666529798684938124501568310929392409201508811183354096403194275478641584684191750869897636150371819121901121274199311338810646288799875139833402272159006844493275199565190594424964132605741354808605670015287429068117495227108331029729610610494876838876292892574379726484633721902113183004736290458330913705169054412633665091877774949298700972733045933651472358056537472423154374803924791034526559805831588245634083761296199139203729665525451486155456652475751515250639909451659851489741947540899641801464902829975227471273555926526798130907892226973963521131733318346564391622238336949337435697285195374854211735528956519805992770305395426803295737340869570833138735998076900030192335976495715533380508943006189405645787852584743661260110650507386891777658172942111434680332918268581375893497213514603676151135530064464593869264485165416925123166886136655683397785059923296572487368425603990704353676974378522984732150917392554182473082494347021021984659339179269006300806481668278351188420141214665953423000555497817939232983820429546680364319356943274972368398534699126067512536542339545201253930628280052696242708980727451196418724673751752747167321495807998538955305103968033528412755336560897382354960843685545331993184638816543971569364801341747200588706927484067820264202803297239943507223504194613681019724008899647129033164107241812939425669307607567620531326143647835980780530995436896184344038998958719588120596135914807626678278959309795030982167262176753908291941033713109947553083187140760817247064882492698452321312616164316506612909333907231851169659510195696202684884146515051813099610800126439182795287007363383047054758578562917286612393087591704535102465468266852889036099586462255455808506709137099746342587491018606570776966678027686800781437330406237746912091365654625716626050823470491292540870465217171709105441396516102938142558496395868026907863240398418012584995058643922335918381219291666782297107746030453449553986175590478222673846982391526275727484707571950645966615312198199804617661799444085560170134442442630455772150363805352142163983893011159620071868196092567938443715884042125261334157957301444193649871410477641606332059416637622156628329216819055058549214446161881052436060965865931691870993523104162693178302394125065494838079061074665782943276844223483295121247451319134617626765244161242019719788154610956923807689415390992673595609009973194850492490731547451268904319584182593095034880704258646073370970805459592111168447599003864928590417310588273892031079429890863758537029311541233137592707655248103992533380389445443034328106621077034456398936137977705776885152282354121186116183481984800470352988028676798609969068240920720125559812551574029195726902962405638706473406273598051795520747519721436638404368053654036614387494317645390019400465506033074610868984031004382151094404975498062062881530319965575292933988050315808165997764150417587263070552154258645802490748252198191613400349160204256641499532399483492568184310510625038907679670427829763515775711201394374919646283768749308784930170264327817867002051444481845578650333988298461261712801381327371993401503059331625015449831839072458786249323122767282506212370470459806437392680788933461381350203643078238893263063118876826522720428030426601653923690877758815140397764987581266441590081027683302656555910848688275746558629586063354119601532539551941788833779747447165776040269883755483537546867896517606372978081470794904232359719230804318920298858256627280403314195323070583820236687554428812006213302824622134427380881046492798893166515687161226410040014303170791649044806714513020548668607393691997259112919637917025201136757476918439023901300868883562174722997196390548264804205522814035568115767820080436428181969222965212680998304794495779283932436443605969520650682539165898485077406511418849035316687287416165506350279725988250818646906632521461116319150136274942804255924835257875481280881642130284482603420130406620660798456948831411295226437714456329416249504374513920406339922736865978717986670208802130705299768932865261781247276764710847334676562267767102281208434476022727851718933021982951953457707385679193127556994061447317279971475846162196612381732597264979438490014938848592485948303433155192553487436616771611976577904869455136662433462350294440640195711960334004053135657370205790967681778791085886331805665183261409625907609129017318160346961106117305983275974457174658281525465320382091958488226285855909647065466239526629283701280525023464907425150596523169706862763898386856056302487787673164624575962537526521588356790472209554354404808672267425490560017762350884987851251800416909684384772000821175485104872413863292235660574487675847622865903955772229224037513407931249994763026044750251726020341104685769017603387279416169419077904367686912336209843343074731701971083156147285745341527310745025841982530598536515160169606239655170250328095528828589086780950710328301961202371080314470956946801622211574570967707741589297014234132374126704354197027575983689454480313496123140434688515244553884038725280191127902227193089706003744405752060032930895541700806253639720447268442807789186343796804378876918220761858337410234803920434359087429198881580347959098564061888246194238829074773204738232457940261648362550647564239053680776710392312118782434777225767941123163799842879308583600228926012516879382259864188463863290751922077230930211243959235382154056244280575429496591749297419512678521172327652132184697974352191216622852442283019010434453510759913094607367778030574828370627654181371420827037235908526187352414279889247416629156628137293734527293544373598245141496697287023274251371404831054478201875162147763939835766477538158761614441012331772730825835664804454404259716445663721730521187150626385517906789489847595738139853229981952413371313259991354828356652420047683094998138953515315083422922715791774880497442695202027918198571523470205013933954917703621830335377124972931732414167824726139927840545964388453143295968328334259270186825796396403475502986758823031870980141102422366646632346768395076494630940130101275017582063399175809884222976586075798803164861020502833092105644908992206958617218488629426311786453495510394257213088309464079303409848572591220972179694753893399964859911967486574686402740680577594357853285393859853539748873878963337093870148677490747056275392872311004608654531361139705317467406872448286683695868373443985770342897300608865398302689920194973102795214307450555578555012154619688047877078658530431939570592263875924031317142999760566207390319342590238408006847334363290480943571165881638125220570586381030608790462565136803666386022078518356263811919449130108355679810032970637428777096256161134278083975403486077699476691277679464521659241463422719005390624926526222074250415388983860022069693889516630330148687649515373070010897690347664109044758170911874501892299074866790536892138616786807148714328925509993186643934168090294875818302764723939950424451384015838068377815626446179018105283876235291716638733303350225537227146348869973437884471550312307049409360383680100844985003868368909146565599834656495452229489678699097640144752107262757518137436268652107211733729608739851735559906148960215631679124853835105964645644885468160791882013675908754620910304569821790204137924872611367557885923687792026044361163663897539312094301878848134127714687781225327621522570278147499100099099247894137072264490366798533987655088658197356479072035702859557262299167759478510494584817587157824067722378552138337420780645490713148401006405774427437959862575160764996356064088283545355311958452679001490180137698663613336465484849720795480464948975315523670707050324062569789095056919805691395726717774543945692502884634267559637639161138542339570635536047293018859160779434049714457980548551758055032278943955394805197263818629432550496691072011560997060679613237318420570464238193489669557966184056478987057146432385255774656769799180265981449686140323582772066188013612713210779831828663220842606664864998374648028908634781912057023015983552795178060868870880671685445374632429453784536224533325258805505112618752636634727813703784621829699092737396406272298225592370924271472963204937341685473619828748543567218750985834015955813844014527877422082726722171956189586624752344983069479387699877286640934849117786273218742189514010972689672158337524253211038498814084173864105795135887427798455044365316098196424844939268588285150120550660726722981349703561669758896157363669394809847309155094353341905292399344752502523313285793574531682990483897997205044493521203366445616940749652415036961726705867254249073196213934313655106514746700431631910936052557816465782216919319403747721485185822251383495135337415219549803704021604366199583699075407533079372602222914060740784407901978531713131678126671797199098744999795231839785597983162339737070775772635822202335568197457970145876496694967086724204989363318283221115419568426116625106757528095874697864942932036717193098592930578088965292678711009487392721723438967596527586389947567020785108485962251178508173634040605320349011806221293457933096432457842561254867302495134610949177396844037359755650234502490126066446850851088474255883133326869485722896902564079677476652221570853173754700194184386688083984005796516615598973089846009687049435642639989896136334856260126310840729737416713194601773912376407318209429708074387180469428895552367928124550682640244823297041173207201448053144644852877946463981616337383625791387292055424351484147184321022792843920027454993367995092538051387513860762313971764426662938620790311043977588319441453874743473810257925902278894324484223125166240000136812485071252060138539757330691192231866416781108217607011885941529680205330802059932349639128189629667573887131163332229859079435247893401219387641085463059958216224105787604977219712936872081221418530128668076793143963458935863592942466445929451323718570144974360765386697787409279090708108222411939287993525556944572378853185468384360535866485777545641325177041620397145180086214414545703488732826984185769763824799762274976106980481682858579936588901010961711267332042998124382856498224166686096539572678819085839464308246767928176074898204563137220934880387155438290807696102697866280984179116520922635072991073366008196899928764980480185478520889147482024853607160080279807704308811524122816358516983648449392319437721642137542184307119987381814931025896178515987341842187153057867992609061310893699798857041998647098079219722859440132775812076866109348641268753084984271100102666712478846009395983470065239170582790862207561497292020323995632513103424805254758596163781762658024157110726502856639080279742431179782537683035004725417049933497690827369166529812153839558758660179541800817748088157452574627740496420779065883731881154441625701145400031984707680569002697261707778585597628449184199616731874188111506461174914572331710594724459677103108478589715581337686141211446814949127620595152046943818482114373427796765849802630949706659141386937948336261967082360848566364727265184321796417326854650226224589812299630971284633603367717474900819503376900022816778195498702087632304394223801253266576050480298707718993480400163551195179907122255882361499686217057700228038787311095657615544482799085123579467341265077639376755844840665833559375836754071478541338004493788167344534203405600192837021454174549198583499246756532772104786069231729841253247707463992496780644966000384280340239160203922148031607963191842004338978731582889374658250788556403713844744967450802105685016775752635705168165370650717338086249131933740641222166013546541773114462547844790225854612805851530870679812871293310744527915956779170784122521531829247046228302703989514083201308854760811864301472438833346733911312249641257212535567296792741693566166773613588083594811925428336660700670935433210415197913304475196235214715878730998851038574010541922038190431155300466994130544838869437479728660195029882914538806481764912551697190741668785112589034113802818062618172472989615847488493483897037746501242107150650365058698893902445372183839700998311522950168586820894167710439436927681667753061909717401193722718036248485580805861820947741146454739963711448158310283509304046359860294323798802256772567648855366831408281654301304950617981577518641056632244508978986465811369249907203729130826891238838262535172908832740200624661157777911258723371774870438222083280613461947760199306379839814332985483512957404631196563273430191450602478484512713914231552137666143354794829880231395579545823390017341702645121186126546736026639749238441144792302864381878966834094460234746597061522437225674687901670376780818673569764984042616282828280953975867612928920213321876221536522543854092196648536439575419606253022419473944709207630893470588915072274390889325163133049905384436633279063937869029882360051992254362742099262726535149062299205219116921642189629039688138968252767487264582918433888640512716716302239320782468698055124476197943181447919166015002582703418762416508752427364127862557953971926065926268660785774464332629873658417973078732466799212063722690194968394433877584103713239401936949127738949634015164374224890214955470940651573039248547064205452750433103861286742142986631626291985904379050081570811113855685662999271826183402733546100818916993183629084164388686246832237948176827683949079704489502255897223396537433538341264466200016967573938667230100335015341893164730232237106268883738027152692052695982460032693162613367913270109464117472977359379116507501594178220642298008467799867077160677189450514067459390754322315184794136247080027528899016897935835217870510842786570123710662889405525279940495370748837841672508606680551031033880824673879073147131365759719353401013574090053319919007224356236510001070583370383489821298532368122281833309132753974147969907087316351085014466951536917019925028871618985447263237783435528627679657033318438585056097007949365489590518301918708695386943343465956534881738979250486690853442007199477399988950589598043689564699988931962287784203961245904893939030447216014478511761063075418748302266296689108708768255721445710023535416549632720678510736666278018329764096593626456868837383814480586155634047090184053653003741262999700652081396622021215373904197891164983593993670203336491423649692557189393400553140073362368602041124033936561592449377789876596654239641992538517182351355175287635647056900608369437507721883753755191253033223803066126061192360842003772639123761097841826291632370304649336502930554669973348709078072266667609352060977815523727283974731542169388106413175440165403836427292089863720911332504089594212590229503000692172582136303628400367109190787412914557755778319123961050614890412632634364981511967679426577540871410273052425339292346258895205972167488288942168036743333552803216043819931044693415928901484739613526661369801549252364875239946984124031036136755536067966186017677420344666522262835379635503378933627310177599196465629082817873669028623064670996677408759943470004513708992218438390703776753396351829963732110746787421172748173369223015658224057959020650390024692004714314098951286431635205866329618244085078418842818852194736456162187670310976798156378267613595364621477731057387153973104430842384488258445876065907364143611409774631060755283712434378280179205490986111676562399211146714480783073851695729483347837273213502146744566620938379837876632419470638707001774472028580209761465204348599866753408093525366220333332344033966808215989693973894683141580364428159266889297512680170388872742146689730936874815309985396323505381031034996842805557216169955553512635465767893049654852048450032242613782319143225264375432691178816361112989001715149530946801481245143642209358071430638838500367973951664373359995418026791960512715393110736023960005362838519346584778185562398850765099038145613067026765592819807742908628010614449611916879330303641479438656259727997345593725588482059315329079087904572718805144138581536796163794728509939675913765737108624784895090870524049949388242821219304542236699790643677825469740417827267537566465958375950343920509928327523974915782053947705778577532208585377160479001909715553620849859581892100686022071845165910096890487328418896667887096371529404393542079384003212927569406558325294581115429547333077014798826840368958019402961791233687623677997997925476295619467897732104491275953835831381102516828296790219025528062114628465957228442880868537126760326132942305450189306406942712029221564371506353174181400075470149025042186303798958256147096790930955492207213466756935362923185992748251578183718237071675790956615716715109810159175785901783884900593479925401425296211626041122262664745877376674151910634401967413930220517598756315798971974902291030838704696727940230838152803896024859378042229156021129813802678581645113882387068099265912917722416955325481902532660455844543517901337629080683678612400569425423429536346666229038958242963903420158438906296361504706537679662403012595531382815081580969995526519653027391996063200667731535935826075670863054283012049437460245842613115015258010650801169510286428898940645585879382286583491372053304384980411532981295988055983005833538049851475268641232584213773875906480509720697746390552551104770938709370763750897608348157339161030622932972615317585057068397175089209681880669518255743415743020305956736512005442709364972049990518437184033104533315318937686914336083785902322447258388498410373836768760046349964745627165172061561577256327697790590713696163345637385445398908136349349274331765479886539587953381064927829335011816668164927260180335888719625055080394634143696384758488284933263632939051204233747336342775637915533998430959505716839266677221746031940550413403530197271012136386294088760605708970005483306874748818928832391704909362679371212579023881729113988326629841587669418409892847550147554118514861781491536778347873838929880930936667243890742600384343164758605873808715423009121106908530049567882031712274453471636477360358567899764237629958178690956154241283824529017225664731580171812869156336630854776546436293560107485938453570447918672658376934201054745914173796261522818383252368356615514328366622094565073548644279706015139131718446100843378034934527430768063904874946365706007710247353500560324041433752697933146194174919236927254246824589561775223198029719721523104296836998141108998105358124403117709222951939471017648113042190308471281093944816068277955159059448407282429548052608244614984565582759196323366604282418756600399370786009035971173498339722773423039912806655414047753314188999712824139664392149015969218669023071056239726089357406624607890881984650718912961053470159424290383154254301479408419339411379659217144949503731680329120682911065489643529770418466656760708910682863879456233223437593373963831520458553241220075832692125216124632960642085755072312768692879907805115619090146495818160964854532966909273316614422757020764659415497508555409381234864866471940577604232443657070081509915419606519361727576193205441514921953436092107317617999653016391104120757133178096711985297330504661990380037514830192691990627100138407800978796786498512749596126834321450477142460065107976428547283439420592655910402633197199728597455618867579963523300165669814316630467900660193416839182412870057528748950501637900052860207079312326952838471144813653229284281830889996250912581194532103671166438470295749760236950181255246868989613774062743447180259791971649235981981692680077483376969582520343660024022503948592118231348146786795087051970743755397700184044619474668483268240346491416531949034694337139444444649057942912996805302079717953753052631802916441393960695374413380275994487448893931622469532261494306002697905545207032524194729743303572898630662238065473687304723687453170936138180947651405401954855057871723052128606042716688569826343811101215042617932655129684025262232369398284175374634505716541547968089931456929345307960618500469161914659391405957454766303387252489586302462397990902748674432710882763503780983110286114204942781920890882953085662397472919251546871063218534676298935683515406157730838030116781672674301293243578528413717253898052854717743739700534151320349251361903983659648620061924817058615049555440103713503047592545197670371599073159545523780337244386786787101733728025071091771333467877175821527656523674942712600814977537152627668587627992931602458390551590082476489761506870080577452928492402722200835205786727214169599990240083827156890301140735749863012569814621999710625611606292602772390115786591981472638885359836430834266671865670092094862352303028373227750803468279071439786605547955356775583181278210361297778961624398174315626342756844394932142406244760828140465359136073292126020634452341584760212661958298971999922797501256803410015087489617789087379854040996157537630833583994305927327195315248969096029884533734012591295443238465982599651722953194164036024994135218941949816595387457178624679753171435253927340060650442472874973624230261455931325628375601298840161168159370963064327698382718704448841800588250389871958233831331573351963753035800251780908720409161866382347444657584048565270598762949107465627439794690560151697307760365905378020610332509798128666192618664898669209025887057045923097003818422032024033086947925571075445883355308553349418739015852048758786965426027714025037586764611183378008325933081217142180998733799132623231172438973030885148705164623226419650229042018896448457603201085060980283956164618622728440518910950457027874034301376148006549176481011697727242368922816265701247775823354352366534285071890658595398901208474525865921273252918360785683000912149756978529899908906220312301847226222210223065401554591733264762695608758124500162477476423965635562086945621230453154095884334357187533504161203916249073352240916989118180447198327934155211653870289946842767747732707944235630794740685211005329304406998729079116443866182288715601330391978395562985995023977955401021959219655351781237311404866843772533597493606128768000536771140696030883917040095513092310151582403967365062918790479510188645190578167424993916697241036451539838052379238824701533786118022659593802027937857779548813396808680814331794590576723457065734541295882370444647155606409864685435264712249502635338864468392895438319234129034180042473798817159488446400124250297275115638450069006843086415598734560795381955038674166624755150889812858583347737819790123379551108601045967829933921132198939356689788716388061586096519946621021791093079797786818616855391630005985068661136873558100632867963522877365974170973701096525187338928324141775566044172985942284035643618873736525347135668269459865655604964636809731523942491319973963009919844895348962702404488162972796925140103607416335565424516637017444441757683442502709908862275663912700363784660822855122610593406086077328698972509599313392517144587330399288089650488936709397373274232576871548629469584443151058767583139168814153549927114657190193537865583279492256250505700582942735698181685829141413600174016165256637937982298047687590277462520988721785287175414909525918595152871246611580330292839344230506477839455803417123888627054319939091782558508541901409569696562863256106467142900631714562452169087600672162176820255196409228315226060448215696850740612553440432404922096696791892051831887637263419888516892896473173559404959530126479421628579779803825516642867495204007697993746839632473267281076612164937691568930825360905769242247154836095115982143900512651945166478653268214731468958092635567394235283690758723142927881708705947900675578559838083236751919978877899074930516265804151363259091710975370391720612359150965762159731308823203201508986616375358829394451140755162749431106765836395024755505000183889093207128011679414536875722099459092725820869887908684993658393986502646588472476815670342006502710485525576846846483227674279792955321365608021209674476580020920798876571151954916983610722869784079780042656038733801695791821455467907072973430565694346275898080951056603442050152979434569859843120313200885639939883741950721925587513028576133350691832478484590722251113765733056458128142441885806977071356548029280814861710263513687384249441005622688068455286462064021130222828361250016489047075247228617786570495028449417989063671496539099628306513972550475864937631048826105051199524809175070812460828544978933241613926364299999694398365652050272442137409967044305997209385119439483832243143292779077132548397090468003167283647841585190772183493260037604227383216695201282618557494311397533561733794508573150501587971590488255717643224956433219590660790421656727022822947794828113442241436209394308852985802084184507132051530244196829922950353637264053840925991677449122267741804490165586319128942467080560469742179063289009489184184768997754572165150788243744412251270928945625604747081383432776568947720418290676140609530138188620719755858091572434497991014268242985330242226766035240673236274511972253619186378786002096279866649514617993496676148248990569868112136996144985528056494934124353011924994893577369601771284432915375130828874946809031250603048605468565715244054697076092499419859802755251067564930222175227199068576579927886193346956346982353604696583287002508466871075457758201568282259461159975988152892113942047109591611538991947434748982327553497154341255747600709913804654592342905051351006671675963948075028469091041636667860142445580937307385937734891017750217281661596433746271289316905852245642705778835836968024231365428478751322586287591594299504166851311255325360046954342660100256298816759357380403611482906833851552531376376807381320759029199909048820871155910401759340209837978252873791922870878506273644667672425534533769324525656681305805668988506855963867051902058301172024392637159910583701736430569837590794275443981557426315211205084437678042936750074879264897907896938681086585450154774636980468730010759602156137839842509484007834686960361440381303952597006272120664458035575750908705965318248487615559599539849418130419211725263600753347437599974801632387876857339392112822849788855414174532338204675943827672850497313425117009910719423738700483331429267909866242303640454810239937022087082149195843085665757405251167523633181140241170628159546125654910018516158206718698351236859328736569272397093345954756260447521270964080033586395523969302336010922728417162735383183560507325154525714681640474872586584667733833123364319867530949491770507777236071008399116497775823665395455537845760096345459841722822559717983414259020233808403431634120709347388228282395143452160785471108825803606747994119629613709541290243605785251636106403382333057316780698003725169206955003773015832245152012279444176402406902454481407280566854834609597843473736575507724625790888507174208710441079659804061485466487640950276417124917357214703878694207474462029007521150389053587591345156102289004207935391919868174957807642484532530898376552183454098541655556169873589203714489087651548891246247641977176885373753306113739386751446194348440835422355765330695616487732145571114895768912730512298037536539975465204279042609675463225838324173788318073853177514185726666017702332446196306600147791025878075889523888754553781457570166930868461347560172999652800383471025282284973253620528819899859151362122112682927402225104642783720883946824633586373670485865932995306685218012125518618640182977547991493026861352428413274138725396577464055882222143631606668435706591688147958695550685384588253352687304948546623420724313813486363810052841974035248436450936690143163891856233988728175884675431607044567154385791520693745518229313238481917822584212074692456221902299786810615082038240343260859665938754952022855775307246557690273078375398003819997619870897471526322658121299565990907420585879457931732779956016149636999184401305285501720584011887814270116954644005627138654796123728578450013138094110824476951878986571815489516857606864547633594365664908523534278796408451955933323233466723046816432363415017397493943858753880824119287575553644386983289644533461748786130461306603428611162635241054160347259828508372005267649092073156206699612324038694279459796789895501939592424935582360945807830428788224049564548779170780664050716744148878404329189484802466042836229069930850158568726685601983055181513282977381207504876917343179452969605374380076134905972650978778582036090587324838016823439636578392582814539164735341861495970086929377192702818260830441276516279466954843496795528623146760169319918720244492839266881128200703372419805034684152834416730429500007174492389113691166113894822828100416728660501112456697832209834617928882628492662862973847738742771488052791496122496172290638606384032900578710405481392634569914209754213184149606524207287161104586073029669098334668812976051245407637000667024974564710684841510645392353392250320730143880668502132503391770748473080078287059235130606391391812645707419761930392895930991420114373611425597570119121160775571039694533907833551288397682104246972785709779220906521598977995266466384026229406038830679860045059166986694041576871050653905961282047167020228687645619278641590083290217543872897770744418852931793449634860646934163101489783513947774651042661582156501567299355660894645763456913559417875370085355892156018236788111659725903416451599585505891855006756623345351592948417015242560877665176851429386854603261400309738058837735992402498585346492281488594649158070915815415212576917267036802784326221317386096638377869911707438223764939296070233535884897108237018890704193209149373889279486087261787001545603070497727599116131379932538501626266331852797802386233020670322769889797361189836813086065060040387672872009778644369062210325673479106692902922994284137518660233156845794409765304305937044206253022095548767368718069308735110880097351724934231771750473891344452952723612755987421952134982130771827742844267649483474537091643575626301895414169826316044451014577388046295651793412042751451866930595369970880487890657503581114241688364673450195617522265709495219647711185960890246051733553329107074394508378911410468763331778515988545687562502772070914624098836437119197874332269473804247364572430222743244640112383117237552011280663654691347445199208113335899652125867864114582287634119978674052883038949578044957380922232153908072785512527250830105557559885540051880326329991051674274229287146922168610871011460757946903168645005250438367484050822098087633593433776600742108688277882608637283484972910646112109132959759292828561942324419873753676828411877219813001507541778219941946911371360305263791535092982950281401641116378968552358490921998542559415536640995285566994068814919178305484150645677488324989382780544539614763632913218717017335378987599275111242009809824679688698795014638204313802985894350069305734630152977790527172331652471989291587297907825501892664630985704026523523681305692127207784035392464347856655425786967550314675083129648563577851643946475248667798989068205718593879754601246285975841662428104462641323897088490797011448651082323710107726560032440171434074980457250922601474934407255535655965444808349346237742656735876013573034832355772546451660818006542643046731877940865455665648416162779377902732481789551759216501476216736182498558436832379168315045924337994614507474206343111311995324356309054015163252749923953179873102472037652764369108861945509883826429871817436159966316083897144308147456154981063522028104981282053541273088489100579975191931437861782755170398095731558160785756566397455500001693346765862837728455585851068465776478014335125975699985267825986306351566155000544243227040493570987730380985769916477386685720260698012164687319194462271559815165538089396082183656340154558777396583151334902768357565248366367303200804821503251876638937673686067213145367742463060511230311335281538169877954056643495902655450085469531041234839237765789134837602745743077780425141643779327028871779761764077009571569233887075910487624540325061719806064478332306643518989437576850073968445211983180492852976755446427311935999471158527225032778596334444361641396707018643335704356132886015891322281103579320645196444231415902644033752875656310194504526371060774016993743427661544274697726042279220223208700390009433261140444603652742543755805778522867051186607945147848472176086125088437120098198320457381080602859015336059579593461726229787662903912652639196066263803077680310645363207782995926520540680035173588561482332402443926003778815163606166987889937555230470181127125331261525247130080538403653378645042366638957472027515196412064327994392500206214942629992302401462617762363785044667375875498119428004923360127884828965194969046694309642845675063891862303875594526412321412954379198445573348591374277681972867754243946548422494138356141600439759974306007821035547122869317950081470580078202085121091719476589117306888730216199540693681943884103674224277589359112165834074868860834290707670873645869085040942340823082564559441024260600819496707548206276208050620887537620283952412971844777142981305513794609418560478770523417161784544904750847165026519710960800281993832820356269834995757681522381884053263014665079235932157683347052876307447913736643378643222258897341322360205073623258434608600219025342327058051573396320263591913600988807069410579596446357852995604137881451553681353895506625552510451804478217020788407917422412695353528954691812939639992412844218724865572930272753043857523905660960224386450935298199625668519556758742022907159366613921527285098961954634872454290171855114156597817797903508183736144991346797242187848936402112217907146759565984839960560400057788153423903542340177455504947022097738443655044299395371433641344502353808561920481986678755634962824763012287503768842037389262082768750402299354580267833282740333619895285541253629243313848733113528171200595861850812280146333508143829058916058882095845221175031896653591233356179853408569739672332358117040419956070877417098138516802312601988804171578271629713649576788419268470234241788651303192867979084628766299253103709263292175360815792258029136221474706186892818826707002495436440387967230607215917727660648686075280080662900609426199716252749928501040108152737894799031599296274270762538820439897831932574441940109007849685727475449848525090502267387521532037965835623266025044882444383345980360127839838242605249603834656999044844821739000245294072543327463861322891069785871927992269761713241638405018839778973215349582482848655499470423226455354783525921952409471768423327794918600592467322688818306343199607271024597514022766653277937452441499880239412388120178249778525224878097927913606149020380874663995574887362838252286775318833965015401964630708098825112486916944179826479253040374613332900793184479727887152981855614162742373876185313127471549534379681602518214105209232585115989116114340011762324175753157675080093308216492436003005551820784216251569321281613614082401083392998817892207432314686467395523335710793223552840765814246090396518348386206503902460930941169129725069252291637619127854271080574642710529048447291069465372677530458589652008364329575656217638958212691911452961024655827698961065228044668521544560322308300927568777242858510233901302511863325577470062165427935037958196882373748765855262667147044383383974641048917857305889289452142236322315320911718064268220746033777802090692179235212006376813259093606163818832060251130882783548899875363379569649838115526528791848772429355416275011999869545921004417562401974845923306185253465484173345367588351410955220854191751132187066547667968433995120780855360359690605528943852079174433590805860554055982148011853865264976489238311096182050666465147962480069148542545452938882904648065611142240533766313694110491317490068015115865380628255998571257202785212877247195964300871993892900676230378780200674302605838926503970023265165987850831294269654396636279616672775705251590221253027792597509163173697783688613371146938479812554614264647311324462466293854190642677960484038794709111273157168041991449836746991032250388702723220091440775954651888850534328445607621385938214756174198042246524600577834520291067969133821354257275709887918284017214429912840707152641188095106431377260640799817483047881906388310210529935082027098207382535313143267066188760826388181915454381709917821792476015452676175367604095332680376991128019133322482494797239567392507126026346094897254559798161028835818264735002333123960993674354556838761566303045289589938701729827669382769030893650847841449516787322121275456788057634252067636490663721058716599193814406515337732479473809976305526242257977748461120256660475022545481293697415359298823680420699492277644624628819568088667855416527297861847376015133368350754979693441459577353087899293929798430687666154588637508063256997521841180287751417416120832499539286294626188112152981998393583591366792616889571801713859136664918123731122704705331566609658706006532352188611014787838203374631448380818671680817306797898583366076172183062892871616782619995781191723336908519255476053191987100716930986639236963428806463543463020466876542069317416683151221377947293280480984567149260986531641614865379151834040462818913053436565482673774132684262728660019265345229243863862929979253441011026769917313439253894399945985963917014162924981955766605609516293403978472080392870500716620614194786029172412451007821104124946764924797141315689625594152524752071676782378836107336634891436798944428233522215667565578300920015143010822528050186370223147728099258631536022056148409070433925738925818718797420620782246417161150194015336773772977620186074877818739265376497937387856800902828144275323891704245369692404238979110143765901092054317975849154876280412508595604258023839376343347593201482774484638906487037423020174972353676087437179065410490663593609645803913524165905881457655341103550686619763265721472545244202212633754051216683406976172918029364238155879628643633613840529078290480086794312566672708696432275448833283635352133306857073968406143086297315446537771137735099942942239909414931944480262461484724850284615378395599259149400446699121661743092789973621009449841137078495245212170586540351282153901764622087437491370660855797959754565450969470915288153796007524365858470214279195495719714236450292576053380566327985814079293235253223970424487408494980079112971577113449832760971512359878496108371676777884806682899587205166788343160192410377040728980476259162804956645456898154873538771909236524963336839721801364424430632253391220051059502426865503013842809875906857594145210806182451809227541061778747473401082657876987196012326120394457798715527795996428062166645381530549710066687947652562595859615709462398868923542178250276554169881297870044517048265811877874693536741045887976772004350273258056804047534530382146643602417134623878498535040938195939545228481801942868774051211254355201890446675022134787412650859080451407083063190513882357728886979356885209920664474526123047119165339878095774074323186523349272817103204866572064567646262594359673178545809048304632831146423660860067489908500599527065477975837041132237256627677971733761366469472775531060990945769924988483190360333917154605747823620521947551310477352258054203959822689263514332860871607273163541486009274031671506288668949223159819098064443789581487622889021215096591066116707432084514473464815269445982423668410045251473539538015490032372410601539899403747059610894627388584333987772225140079842604264696859860295441270477845404544751905647824099660828067235935022705881754213061895698421188947592434613009544259646424510528021591208285537389960370819083513790485652711714593827071998670411499978573874555503695507228745058948176024310933094396517250896796302736045163781143421840945450339651621617532133516212685649189196241165314807727072118419042606537007764159612148127122748607611091161281529983156407241450479582094323758393681628860363110438555612733203279810460387317814731004589026724308763923984017286114895410888579220217273556858716313953418658697488014684269713716598093853015024379766513341006943582791214463685858519550403937321542661538071073296597305150902109398047626777552108309819970987501455776843095653029602923333754773056226823053347330873245170220340902857945575034270533816937181506012287668851146760770624442188114555147903829047671080068338184870233911825283523624304702413618592336818239502960404888345325159776325766818772827857947418883781226601431526770999658134712890610390648738185247794092490294780962060099240288344359689202403449103105453621930664529210224968099308126686883487815460286018899449950538293845556559814860039950819428029711950579622514063992178645418697008181760396355792729106858207112820923179084668012042232890267133935064142703868675457158775715181276994438690230009638757509708685210991230831769251739341675132367755485066222365587229347668328301670747218826944724042784006335168312246695924379612882626173420347100938286727761881877660175008772015959233250754093337338807723495497808000249969868279251632412294964200220922541274242413167297618694554464882094819693460518556241824969092144557499385930209476330586739165605304657357827714719480536652687323665320457286637935232745897488252914842617605927330058580807502031203291067103874123197071992031801819501544941813336430202994236537856777537749070533435678422848914889729511210802294904633571489965664808381741707354752025544381727752941581011870841252288303506621932049014878336817219830298225639432971194151677380200714525191144700700823490062819212549945624754617628297041338997389254887653634516520889077395725415092564142335802969105353205186952902641337617151004968771297989016963361125446436018993159829357429267754844523023193149020005726351131502131857951699159181079674281631434200767353352330979318019629560119199871838182921980915963048510418893182034209121531636014843567023482431434694781528039448534741192558381004933771617245888947821367168685795459588886300438590922806967253019530838825042487022972334472746755606634392228339558299169259950633472238063758426011615701278228607069850855771319116136112409227859599029614539650552156604522077825004293384076593972941519660568847461851194561972999421017895496144444909992838538076406357177512617714264990888660667583268750393969654805416795280434892412939666431438702486987855050748247286069142465877894004056522302786548397908981161253464766917509949927079606008047223014235809009866837063582512310676083166877078414312480643472025851668159626582681443139817268164600528296648700233112535110584426418974428472157707875122767380665902813556091974029218119370488341757661368842045275170117435976825239867668495039695679194672520106997627303470265889618540756428331982681819573398508130334518921342124026863178884829447071182179149723123913691341265544746046911766905358872258209058130820469065067857640821036692802814451457060192540153984244116760289204629110920689056026443640762041810668859132385904351765346531638633396730712501252023598369409380227237521365053255465896975908962851441242807267811234747637535436969486014993673891770181545498059710677368416702613067584356193873708815005347550056368455381996384399522312419673586171019926905569590370058829907702214082072815579000133105742142904645324417038268146469992281179219689983235916101987939821246250234682591011514038920871022901490867916004355505697837872067935265328537608791340387491066621150451532215184755984974731326919168304942032588885799754982373240650895114110737025544613022953818054909701259530072903283329160778432516645486420292088300641739936978366415789508543550317200362136374654249308310345656419146867999460740806731215853165586032524036662256363963211002684252018836416493443062672125904011432170502391345359927635066331218642822869757857551884930733073629915634787923983211384467221413983495818172318388555225408135481378486285208179482061566987843263233016027093008015528841034328555642006477467723892824272710574763675586459370099702064067640076050348783194805192305239645286330856604412404124514610852233063124727273340233529072891861326039646668545191936210094460739427976992999604782521582418109887784114070774542327735672034628003850092926609697055163967950318136292493643797797687993194276516808663751966279917084599584796592761723642534400699881029076881021090744443138106413339766960535542116743851156103603190861933500213491764383218093581305427446266931805273854207717825744844665487055292413517596739223319740622490671460734231282907298045919881285027951063883433266428442306713841403746443244417833505352720991650298426194352977900140954775413257440366810096178102396498844178954260572671419174876464133268416925664454730953283230501082141249527629028736483303417686435969813818307534523666687522442426212810803748199870710146029075471299909213504094926050939351780797735344505698718900219057903939627624520932303783745087992098617077431952002216096048238037435120263981943924264621204132305284715170774944310743880952928837166445552835714346740079661710604688364234375426469838816620571803993575064670980491036324425747986259756396127317722889067969391333905464388285978796223041880591080316786614636287116322890064209105767322997755923568351260576408782696505836035128287960795827916609759342710821185558128919872238576936183649152375653953499382382421060794739995153684099018282699024054960067579081915342846037413168440153154676545911615385928029497762320023032350427388436812262663121732252988675879973735548558309516988558676072053407469585746851598911263969292599387644258687330410081262521273367068808067936622430102663759643583702546020493702940197720328877654523368781966431368792736794319803178112985299200080220037597559163439736051927129464343560717511485844794380386379721411015211003284736792445092050941867808601337081270527563209542585309332043981722058773025841588692650102476461213022541270759097620665782875928652272938605142557928101356880363754947023089566538082401069097166420212246029835119187856336087652957579013421220053118987452446951582423171178717105222611477602085371496322277161242793192267335573335512731188507257315114051438027054963485140861045555596226096402074540728663949306749495261141144071230096542594560058528243825764991078152634725987919971386824816656721180764179073922735431569213949174456778258195197605566005024152133318414249229824378671111737178673162633447389817002023943680063619035269478592922762883920709811069697023623737021101147198071748376230411008774990578707618904925770517125110798999293789238361468085457392315960388242945107762268430561535738670256198493242852303625005432549975665808605261861515303066415060648217557533593347829838395633310771802028572038373264264028260539392838735304859278893965577956490640495266980669794846601712127452899803126190399892438714884704782358755518535334962076068873854835161845061017768602574057723674959060562449431463983477805967666093835134173529798812783270198595902099400593850056240773450449175822887741794488749315632104108620082149596952709526147076234686009032675408161476256709390929465577535984042144504366096680810227096003301300554799688764578658997675190602157991682858973709921151981806295296150725124417665169397612118431781812593109200899923713533034756746206904800041306458815794797584397435241761871726490912233660987891924343292333987906352104440616926023525835694029466751982025508922434662460358900754092854863216210487695387322353212720266887737751109809313483925813795443294670745373232735187239878176026332474533877055697237065444430070046287117121924026460185754323988460980688497232068076403146547463018445059060873983136487889866325105941482631753225410645273842183638981076221059753275119868976096866827972268766614071273842113810216125821135265840898700883471373372922924033981798129605038001988587288955076577617497509324180001230422084318684681305286100717659406476481262774396887036441834105997132627573835127155633093257112932908904932471468220973332876688818376855109891199552562040900228717154110323666467015644232655732132810059628485424413015883537205364552869203814615376986784203140283679858524437884667368637829036806955715182397332988848458898736105245221039378832495946313252678928047517834670094307914561876470432807806066524098811967596613979453633006716897903767026378039878049607913297246586268986119493762115388011647228726669130749238185578651174278650361133155153202935707676230704687412154826507619399298225555083558781112109676863470470730371302322115048698994211093925757551328278256433835420128483550425405216243403181579907192652555647762331012461246740639592021557978681501272419221944278322891379560628795103257395247083034616225578679587295515288178032958802488116924973509124340660158423741076277974046354724618570804692659979901355664453124321578431425767788018245992036813605007839587006496184848046383535374971668526864013769410600269009750325400970555115220064066044620153251762398555671161524025889386806137526041693339685527154936804317214024377445055744467227787902603691435437337123591476693346002425549459960976926624855278396809612292880423776270639206149446160485799605118627143803805052027230830648873437470579577420448468579330322079496291606251291456082618323134884105838463692909950174404963924041750168541253306426456266056261658061684580373756980302214217833281044275955188574680777405949088414853233756219362640126467704975366482928423339704792159947010813573597557631115851411527954455219158007992516905905912851734266549872919594103562283672622535177049984487270603081565820128311954652448495988047218221270763155514647859424578545276920879967279995935509202528566915681873433771309162981556647824605886994187638280852644082009582710808827322059625168330089708361966239638808972370165263910898958415041956575608931525920648742332406639635512245412010748588220903821368949436903730878590660766373000691507349595211541089222117832527962409691972795083948677575195620941687655273869629135809949308398672462234666942588711005149318801994867365516497336200985721075965722228177685191048258500955396203214937203805945222199075775544197060049307672836764902933915599865999593297830212998213051828881217467911293741753654905876356553142559227720659626163999873580708895241432034107452823187567444013112571200502232316221633156103578276442708279831694030721824047384993354918820985006435701343460900475284636802481856709102434373706316031599090849474415704136842710091839382107322844872684482612548281578945163434965657058083021368691210705211729243925392386668725131569333264073312353131610113147836229041373844828764114771292239823270784638998417068023224772962390763330415502516042559979247399471788591495435664271204037104924484754368476066786780474560190417842330137880835694492326866133783191103535331449472547194487130705072555660589064484947127428447437025870294626281817656150296376093395429607018096742385765463279182458303582773527967085981097646694231064048577271897757432013789162899765828811478682811515171784586657994454825575611839705742361566714878144810576040926308488774051648336104524251176676698295628886261611320387465970536883565652423657887482790985752468271339028877611132592614883711431504433958572634621912934475072241917031888205181084448285094296425436832964199352402897838566472480048521072285007269375552012669228830368371600458205404754804674128964675235685670731121432170738018116136577298083175481531733061684671143042394892897675200382227768578084539237689941418197629933428174000166454568467680809600841600244730497859030753707637999828977694724734749226339021474124969040947895270765274913662828758438360496967706901408397668876620825419035729664975332354235385348809612463042699550589771722247410939303981445249589904959208150840417707361766838885574243885303575009341045909476378840366204947526163048820739695952189957300846096606730637201386647317168776124888926818320118681669326410770039435389107829111254851149090478355942379602070996335137931906612572653156964030397808490729472621751109794401015051579133294401068031889189445753702075443506813200653290740524571472355050059983583816727011130951027918195805781093832281049396050102370358076244352847042085793375922874374841535797018743530469100607307161881208192549983176049078668827720354879063266336927179356318055405259943565429116899930448780905130867752981588765381763148046257712873655627909331986393979211829768745854671214658098122687815001880771732306078192489934891452535863138362371108993087086189365010634055973901701209451372695550793636349204897105983385973887123248835703666207068186998844287608263771609390440874955848864267244021919739749555389667734592355786164403805880805466027933310209760135583593978362609182999742156871385916685624239769408035962390654365731355545840467757218063001468107122332180357424496181664021828883571437285698807635591567490047466393964307927369497167825317939296230506816323694850398442316542889852189616291869804429547867472885814632623321063598139548213608795474874368785844415292865440468394740931324405312645808081990420854698796739593352528858677381528563067162143828209192366538794368195796515264442085270811292377305197485441481415115232876601645509875558010253948553904723772887388299136081509278838643150592599536244739687978821676959376719920015753964544840385922219776599158007756235584140121611470848918347298619775175157694859695970440222968686180357426573039317245563442503038378946040979057840841016678792907652295014958478812863630392234553764284568515463445114986911978920469789464125571616443093194311289026553601984266871040909436402169860643066032011408562001183237813674479558473596843709422796420503710560547233908907712058081533970138174646177106535298882608789998350236243362152995417462036812528824895320591061299924770759261668215456809521692736423247007528821061983929875461399123904026507928839389476936865423429787735762288250146592674409135480470449071335988051496391688958670268333378108012097312182681041272132816089151726324764945295264454743174618195072501121442125164128179488536374383698491968741840982613265553018316296980662516783670105488400995569523468486259792964101137819870795231664766444737175638469951123780589668779480231771440062180601046238411837311728776962582056909107086436658770249498440629134574109382104216949070703300531264967542622695420962055919199042199278733189995059004692620150573400203032906184169677283427325329438286382137015982458852925478685357346699352996314601614921655277529862071439377228608048537470804397930816676382487887774513025199621687827980049199820481566399067188494483638860866179321061774848616047277830312561019612056764697040864846350974297444273536765950699494453842361965899368120861989668640591264566491215180259789887155956103871787946199034853020346422321718862447005618031157500418316959479054695014155791752253855440817467628366428730039235335095213991812332427040693238129369217083298762284112664403727211494479830599058797782233392271106289618692711430970043767245056638709735052552521065138300724718908043099339942677640129821542190365906451459821267807138051440147576804122582494515924637942322535851960501687036536542662731830407973131988026917566535922071930941124061591387141928145768260157555753176971814862233386627549171815818202927769031677646571330320582897584615100719625355429898008410364644099365283437698109606601352594807309369845230935942329093080014374266632958716818416497833232973037651458643633173230604216457550966385953142207650382177368208867159148239702150365279322482857514762467685349619255154060753203297902654596269692415101190631181100310381895077171671689188729418985339697699075668810711578891715165398925627677090789427514191241430938437669824828321708381351490800233790732768499134493442982210008969265160503471603837415709422955195182806248646104013465857292105586997191647250424733685323204223101522797673971919819632263230800691074853989860847338606909522216720474538384485961799293442805254845031379486826867938000372692732716708863818370918829508750205861350793673259328796694949700412552468035494435317802933807978908289653955894908556848462524574063267106381717445005400969980395242007151275064486528201284332060797887187591790287064870263888329674191029551304622923957069201908956393847868954319373610539872909608521805019859247590044698267483661839803994665648067552440383093066660683911412960652020075336615868331096617177538165892098108449627597050104362677544248668782824615448063762665152735813610683712759641153096792704267801934873032121588582499732141818096370382744480665912958101883049859075379130080540101716442281910021748602228294961204508224895064302211750286746324287482073428455575992527744566792469716963753697723887955517143786763110291537710200696176110483327189428354419518756719517897895075259896089812337595319014382321564832734414930132900659943373867161567684846027990245958192178458786216737600184208358217015205144283533498877894717880423892549304532054136541853271091581611140903781894157593859433071305364752021222157914476425009520102070937676913214635259085472687771825534888276232938917718494023435410511386573809835781199955205337241205846900640969155399736154955186286673002335140353918113367291510493315366888530678403501704970490713859905462495188116467533166414232293269493231439675823182635782211665583441829859978991475452404965386331831398090518620761067865883454781800836706364967285525484375353489683271515291996318338765454008370100470366408393470899845002043575660852176154555221585371666971146743707819818903566141894693297459069433222807295790032870039510606470313089539882466972445384431862932535961903038796434345192550997680596889949182443873925666819706078374028712183331166657514694373926180302717523536825297843368538647632875300599013202009222663405476079395303999517196648344810998436198348655575682831196862813995821999795243416419585622562487245931873723896292361470405769640890411276955865350887273417621511943678373619600410250546161454045329328892191182692499979657065869806122944444493988012370358932801162756264541982846417608551742247232350948823626801331031041443053503885405115311224756601405140026795336264122997222472485193058473011888551306013556263298396829300593203031247607193794469514159944092384843625103591959615614286339367308533461752560245378900294704083227389536327796005942699598626869105666168217530179031645040413320255533507561926251721895059478998247138038426829329064474458438607903910301781981112416983979542500050693078612803007687938778332556010405215921760805956283720906280200205907741884421828764394311000864480644349295711816669385644769802135465586292741533115262737845837141603159003563753631983960134847155298572294769936158411819696153712103035257507984023505481420165544802364161596824162659029194325239727645827536850970605652378926277312801523494860769573135728026726321775427891601077732154808781026304150934858156228276379556927226024989949809084649246092939006355811537177839717002278931009999230431912660752766922962994469749604295845964209075217050457715272292354701453418174743833860556847839290630500335920996731893392178384662140098170309983992989232051040656276788949287179959919629512212815719502092318478637892946312347232060552253502921605325785802586969392845892147024508381145435080297052565143968569074826875213507336135498086381577700226844144971448315179797723906472540180296596558692477938598297919564252292105043969870309208826712862730098826954328235883091512216506258010404749939874944565189670658032730404464069565836850292899957610310141258331979426282435058634367245347752839670097882684478974401306452371839789944213803625838739901668204734877070245371253575238109248398916370398725841761561935724555861616542151999618439375492465606896424098910759284561064295376038724196116627461773711400699751588544776608151904265584954527732175058936365003502830794153782101217881742107043373182078349877877917869638619973051334470264025956498510814661098156098696260050922840451737721696746573264519008421243936313405529527569471454252622931432472943293012365727742625223091023316493808899939169992124858795214376182601746726304820208230600584774036084270603088929132111987392280596473998665773000093631616319002225459886478308958313857283133365269719198813215598080400733155455372805287619680965776785268196199207817848751508207247660384192699363014318429750006219385072951705244949205843353464520161687093167475749965065607685423104225002615226336044219260983408484260734706047956545818251057172360228268609454613892010419223872458392637641174488555183216423829837600419038189987051692539548715762414435671385124026240958099490905571383431235664796051832994176637235572101907935347459039031476610114240249778719476782139063381834921132729038518269265018731829854579121430407112424974881226076031415665619295679171037521180982437069501461597042284322429837599583365222588043778629278690011080331110374359065340849970459930928501022199291813165501750484985110439311093698700881092591089522994348262101749003219775789848795810656849649882792666966488113289446422476326382194309820186492431855929374937148133334942081791974368137109504102389861798384950499466475475621855551167916196726991897886829707665605761550283854775746968301025099032976686205145582278007795429584452915606427232947693473290971089296855640812077183482412551232818358483886951267773147804543651249359112991095246455243646022189105829857784089501658857938561416930593244086966092369531870483543122934886544930896547897469940367722177249021182816687775426064663555849908965290092398497659302242028671824644355687709602753714708201996092120855724849080220088576395918578909906423254413638118975795572464735705645895347325069740498955451635989342076064014052836626686328507069999619179852961285278319685366649924831938800641165505291010941438856585859981544013746142150573494008044455094815472817777768556203404335195812344277245232297042398209802329497488951022365909191256446348907254577983812774683764206968513209455443659915506654219928119654976516105651997899682659703437306693697115614534187413085898359049876390418622923666530758224977961144908375059683503689903332967255809237615530891707741380069216161890778612196197635857634366380508509171200506432132206965041860605874841937756023601863843151099253130933881704506883235473536722480435572252313582520136253268200002651396633508791641643129328191095829291986660882002133064379010551712664611422480386362727834466293205621757851822534653735317924106133356246409853452967711559111295651422509011615612018879805367017277099123221549976412640148862960025674198609242070495340035673758407040315415152939502991135604121037257090166351320562971890243893857159612038892303190921451623741891260963124461083313871627189530347267797626156368616183081056380462415526985185611440319579332609303504019701874116585462182677297608850537422840607863959635465889077834419532737168598379961928611204304495932742230762269701139156812487919027172704062636193202498422214199620125731425812592376319988909941908223192403926149152641932309855901595027360030207095804245410897626097208385340508955598004233676706954714915625186162671079795749782090705459527935284530750385277843849275994313721162037637170101448301349622205151510207100322858771058754322079132234578658141541910700868335900581542565144146424920667978346301532751767295436533540931122521252168676313694641327734749321556444450662760473990304816355692303999382647804702237613614802566559779411887138720432973832401913008517081186601168284317525426527761472859603448089788583101297054869531967676888323831173353322837252529759866744416789231168614130833644410422280760960545149868271845088567072620360545463507382016586280627324927557235925983519323394378722896138095015717103414654845288446307042234633929355075702918940236787801142743849242153314214560536854308943746932476481843273138745953178911931019856675053906048458405649560933968519679800998887436367803866683228394019190489527451928046934027681947310937632904376876281165495681316886666077185115108585854208796194300475022665332585111165422734630708991789271234376261265969140081712421468726183005268824722575058139556179692518971228034371288631103002950537552980298554005125189077128213469030753285339101951989040401084277625784208368364108723026210097557089151246510330726048740059640608696967253860882089810537652454753105794993966460366418376681120561657135033666854014971348740983598800268259558203220051956945289233673263521821555217663243696536149499660492138270379842356200607447521851312494720465458603629091684344809873681474700748391904454379207654759268463013590075981170056412882687366375516225442304055698593875245293308182214572412708408833421982913004300673398847551570954639229869939941400071595053308427027609506403829849146234188093648295791668461759848047870021870224206054054096891218002347484446959604403636480501893198640321622250103504998872793109637759542431755451995792697971644010281342095052029552475392471832713088894814541177268935955750935871110982851642391883194650665127399662368664114376699971643121600459965053464763262566811034873369384729252556292976363598460376245537460437274151836784423509042998203428616931953188506416529178654941843732162128512129715250225673200147604258338191079473495498687413018757932463403678022311192217799895721411202159426850794585040229190627567108771625465401129095887290862751813303357227489541958857267061508397989609073602436330117449918714225981482680237194801207346482232591128856437668098897759304094689007050680200862946745859377872221757822646062532017800142001899232622423950419853653676746018976039210657212328459868578281597806589009787670557249725159290886263423392191845585507374535174797405526108992239228927395466240207283702244124632367109632770761470356464049746442344672736525614080912804510877270353555811106651591125256279045434273574515661764272846101068696125431747812341399857737675925032576190040734259510432726913034542590289979522062178265536391932653104934698121754277694603856921791211233116123659759996178713727972532759981818292854779570017624905153067688095645844029211401334902999710784090170740250132385935900865937472367235541648787532159899745507250536853883387602511860096714400952501324459491854272351173670897040499326652167632718410812070030208297011153594843862505815908006832484626671413567581149980503409807126107378478750360423314815910610139649042034804219780866275499408104721293516764352600415244109862071488797344820686329185777391754179002444983458222083102747875565496540789993241056107267828014813754879551789011468767944186207799436102414622841463975498858338631519298812142874919622262118530907174005061132994592728615367103230249027553892957119550159718899795091707310056229631548969601176261572891998547283581694266321958363561805995583113378383983811726292364706332353349736711851961376855635721055151262398694257358094576034683928702591266987316741511511490073468142805753283094843903467040917383645427746361984790557211413279503165810694189185733918202664812504772585753795785032373691420015185042583771356626877935667189080371927605248213183834594361600236919287874990628078647940870239740669388770859664287035758440703259644858777995209593559102503996941200382955128827126091027064312301604327405347283301575292287401882669288296691840131711368639064446854084598430550269187083567101921029344027438233008079822752694879261817621832218124268592165751945289517811111753904055211439553094641069720548393515035320365032658789065873030717573225297850768250259321394168601435090126154879592824245112668758822996497129439625801817900043152174149700704139874611869361996656838237359297236588437796390409659255754474521940012919121758706678604203603790887150281680164702563742027359372792214165630492270691883320610728956826399613920443723625151317339030769160570448793332465325187146377497270035762790035326262782460895638758642728754614937730296952735934773529420341958457565098273888548551442195783700970749041269059271152989382516171920637125490521973224722362034444888593473819710660538948642673502656458565627730026282108097355340154379944730368690044063321728300443175160735271154086560832712525257802045062889934905870489741359231983137183361566923354259622301271512823933929794478532238427058198740140702355624455172137360888148823574270497879783751868576294945268833748513469597766225346544202482600019634037928458482981602201063595243118721529514713978682948481028460562505685615202125927628397294724939168079464308066000725450003171878805430646774684502121024278849578680683184578123731973418929394234330515321131104544105724601904660054379038830112187890798893910021455860310857707256974884556538662571403429028578298684840593476924682377361275236239529833132948182598356502963116569616652512488794244185805561691329768159544157522796016670566642896915404210228704432294450693904812740833540083765646525240294597382561583099496648240287695850845447609322193489028176818192309741410593675877406644830009276310131158887469322451378501607800006511510713659515903229533564498397090337522468570743537313612410980956730574815968418480576367014132393026862232566697918835920358441753150248698966789107509280029511824211254263228122182193982933678508589890583829522437740008128432179320754300718146561825971076191483101152070781678187669034076265460251857584419229268022130387974185518592220715446950263024058955173660488103328716301397662654312207762370295721350590884893531543586644717795252283399059591203060233933746544579677187910670942097484146509604770778941964077366534221399833542231687897398521399372536684216448636448824348140893529069905984947958231139985397594634015082262545412485017815747031812718230912234535152202537734905818825858231825205931459455435036857545233566619222053522920998040957845218716339682558008360133748601415548257055577225654120614757462618438922191814265122417471423236268432898652973935529344037119869795704084585152962132918048479732131976813222447517861206718105480288188729071101561668700227482745628915228733686774515545899401109390851562470036224423006672375307684854582539623255237614770526177266159352578200648688954035026932938148754854387423843718933399057959691564873618065746125876477304835192604153459923150817997136868512879784711798983450969553254291917006569162225406380790462035060491881085432105057705301222597630969482132642690069702895493010808326737441629061317649707136071094361221206508166932681792465441365870446587798465693777037891462668143351378091297417061796272777388453512091191514041018548632542714546434892959839038248803835132523747369024805492536284138840018026121810620304479606748071386197926632038131015630098192281025464798756548034043386409499844075480333939875930745893007325492904091594524622961675748157699032360878335346506855387335444838259582252180440866058137526721525065328281970615296840186631758662365830524441856001504741629401266677256336240787190459152271911320314938824494345691717720469413295213154766441591504978755219779631889449417960091252971868289556745713155407631456357740805597106935231028084297777184601588483244746543578178113560193814047102889236478192779889235168014337438618829301939909992943602680626146433104873311837302814789530066560121116866031541931384808766792881158421016993608900578291864667514094060928375028753870625357961182650084669663546364356014879687312272841500990688165107942155405035064833624626159809900441259384853468753551712802467113932301621166664618761015875680570099554209234316528435290584496663791080490110676414799449088667729727383350037200146611106974988290762115000792990600626713510414811376667035289928823088297415829014249213138936538491011657375719174978360030544256449458012171049393622269246472663236969332177448079276493859914783797926627134740796701661974392469932817701585901824561261367924360392403548982875774916232119339610402393550976658378553461649763403014729511098857578226064065244013776355316548449141848874328089378720645210489649610059261392512283052786061545148962371534634675313484528459121531280623710575734978309856218121767343202414761103450848248634976989902731410402994483644833604069383463839630003447904735120572829818579658708643558347173529816215326167276678470024624011791431738435490106803283312868705533496666162281453463272927152999008742010048206671307560182543796689051223439126198231884866225958552708453154963950284698911736563692306678128861965733791950834430945335752483716882032106132980357374832826988572367136725144418378568222536337859773596087607187117700376018017460491928218899773071161501796613005786364889873925659626986816961255955233716354693508146671558761774477054219262944934510395187000548852562291035535981884535274561744945599365382425430875101671012458762226304794263368839486215089414461315650543854712160407421865646598359569957100058352825187843850670879685873605032409175288320717943350207848414214251583708515919238494309661428598722773715637890821302571127745739503209360862138164321115539341399104021113246051765366521965714522629408122656442587223249579224071534518638735184406128251901829905755046297350690080018864353090524196338811764945566432706119939337595205014385469563145381449266535722156966971773035953263163385689215819894367134611994432048399494740095775207781310888758845324218668275772134236518127214078928046069807398995245787954237508140394901014576883150186789977064285552964107450937150763735521708937232633141092994295318622272174611406747524736083088217632712384406613665055942031151383439775114697356104979912439649321726551578615138129517556411680623649119218807703100719194234974238766651019721717582507044034728801444536941523077484549290959987121387496680887017709287929084747884114455749906459483193893782196818275498987353495471549970480477387690710371812112935583919876615595476942769336474750135460018829657611613729030539872042988396344788605753847358876210983535730695126626657079608406227595339335641370139953002164930451363210896507045218109724795239929429945789580698894726144199830542206453222073157269326818080408491334196497180768119156519819755918623798829767872831787319064771481565089504909694223990241793453089493383481018384853076479423978942325331817452941583271613910021265153220222448070040393971765285913807569585516820162781575604811332865975401618676279257665972563343194259352057243438395728645863314046090690275167925117262629198963221173908505974594657863430374484178854063679511524161837122665961536096301677998052817213289359464675953288854117549022570503153501444853967874146964754773816180749183097953886349609359134395763151693153480483133787699769369676169445898723586407295849019838417208070012636518504390185417400152629716287147717018992957272938022731236892104486163139496865363352884633961599515423522350772201656522755613493651972791551097065235909130852325595711295083466778210475635574455056398607743068331140504222780673912607317729974715375965437224930279679352089502037467852304322219471476379859510944630866429674624038482360564267907035949419902473127942396047952443144194543550305357308789637270841251803901878139659009748592029377476301314672923435628992053134696122659895148764322162632943805002497857532376386208279278833587782155148521332221729125237902782251765882960773396737831874555750903825604992626562148121145719014253739496487640996986614587047345482779317333858925865392948090339340395104725009383354279703758623366078755737963837075689450040159922449426777356484767314456604897082747612014522852348013218131144518481082997225377341276829590607532072759750055864302029294491261547276610809126841376531409210045998942973931223909279915292628620356410248148158281745941002406815588200704857678939686622871336981316398819538068525296572955651825196351934697056191350187055550123964914742740861960135733227379657225279988933947070147883705048573619861581396494056861573897996877020482409545659124067340966859310859788600684067246362956966374854874063910065556418987477924777413257666078447435034867419562484903380734616405851886456558621525514187816963480617924960531578280996082645653764912726104595745769827313819041745305692665891691087292792452977466296998943292273812799436016653157272801701610754120446792733970800396690113615292108494277964947893671072935071164147087583404019881252658667584009079004298825306452715259066243028120751712259013299724879613679978548877780188824193089513159683400535227303465036385216828426863523407702951098054310102653531009207733305088060320903825797004714893232727889273131319454487375220238750322598361862698807842160993971284202428226942664664759482499466735523917223161387689655390347267318191050553469139910965401713464169271063250114346070473907030947732954857300902468145467261779250524420405475040164358180830038289407925610578683808028873659455467909060453064298258092911574175230314417568600328388949742866156543608989449040544231652704561903276318299970074301865154929630180201615513254911141170610192344664701607576497466112657417880035030959713691063103670170710216412195889921215419135696188666104158721091190696287921714349198747803563087761671054851755094914746724464813391882385252923377199960140424160216452425554803607998562964763026943136067577923812624401725782111830236172530486349978590901631205940672091644407278269646633925998825157608544496703262160431332816169583910697738471833499113637974917703651684324088853954051255246116925730114371461898902023517197798023727207430759913396226191612599805834886770363404169158584374574778386376769568687352304237565217101901109532314198420272903620914926274811235739388422165888551770812356984233027729947814835147871299425702200605238704502049972670036982607703092786337514862795134760455528600535563005482421701419044129837820943499528528435953932390045024841909733742408079836103249206410191707183808952403045261025337030185634896794866688933969200942527950130871829654731341093925540446045948511280882031238166148988420438830025543678018155234735514084597237243522414147958155396963619391806109917255683656084869050936125331180520325679910425317966030827305360035077859478332301759444873697246977246677649477175714021022349519520279474915469251678688355015746779064413677215791977729896274512290550358952810161469691156978097904720014114774246481788285377520024564423434137595482845309140722644183362126834837281664318349121362812149442859979740897916074363789940254143175354101395326028213385939280449602744269464327186404811387996543840180797900072334913680683604102702669096643774465957332729571169026723487855531604858612794485161894301981047493999487924085849520422793677173173095635256631665961158790984278522985416651484402771424745611924131741727021761470020135732549301234195550946995108666769985009008604540565361047045462687714635147447773356036412083073439854593921481082801651066263768098989749974564442466557284465893295959803670067679472604125528588609849903206982170250065873634393979195823959719586549596656106332215733826512260988366294539091467975351939531699087876300057132660607997255321772135167769653620429164739977733481303844447461963534942084200910897979198697799525586609360313791918068952234989013758859298599389131631445846215311008953330597789044364820537224579798603394917504725863064344318922406983375504838307042300599050981251654666083593826564283943076626340061444673959353543960058910939709616911885613938964595352207128023694720267651922625262937567652110664437345069035860929528004071629596579897867649765425111165811690685081554953307775510656717052118413937396531074173684903276257296477757154188564947122031114987531009787565639338149584202265265883403934165899660360977797262657757037700061926243996022138365698292330189849325458612599550253011019118478041433364534533034475472741036363371214728644499074565016452866126779814796300489318905539755649270603765131984663555859595013388815738157489088444044970477520165978743504037684984775508215715259228285562858868458044360392194539414576711332256377300676929557048730593625163905652503215503716953593858858328010720655762835732365687417210966103220662438160583945007212403519560813407476120881385559037009861691277251499501894722362592771229668533289790797742386146036984643454421607429997902798981453839088940045276499835737913785119789596589194003558253470828611247446644956105511995016025748413047775527894916498470541000084746098335808424163376154039213568072122800296945292046755480299761870117596431303868730742161563920239724564014395388988776480906652611393447915079607126891214588231850379058332494229873045696182425666374003207100020280680809824803162576970494921387210610170787638940223088358246040515617391272073143919994756848192063830242307193864499971577197332827318005416863313912550458911476666922876173685601670535116563067046220529803679021194901030080905539365813883407732213638553836856508605826667531016012399911338733633621344342029771943496595404711152745684657591356851556021730568082319324588034304348470759694891842228511151565730279052988566299149963641839131881246552626286824381477275611870325422417339206927500210200442012695327495599058370004280907163746703125083717879034901463480808020965738780091135921786587878228767552593285882798587087204681245206897376562442518290605697441769316502080041913925613801014764222235643227994960748393713825377662598677000873036984787497340380041504875960898523730263078275019253098107794191973965911469009772724954159106380998229241456700797187662088907881869735112371372401284551950020651943069733595962655700711949963724704607410443773377605003241820152033131561244413229108215806115242701978347958710801950583995988203092703315045658160828469581621146529189132825631736467938419688088373330280855885154989982829032270385604614483749145634083996543250887868799410873138179028495237255175915787655275970093973297859014201018926052636256922137940905291286871025768842933439794747549356898993668921889929765730684932392686831158625279031330477140629664441830537373583022511862954593748691014862448480732135172770655379019833502279976987792835833981812216099118593037365467148837691750309401304723281107912548849114157516938792388344448684565436676490433534117280623017272269605870827692186465554272313925147354778304100912651320754711673100116771927387478538975049818830252837655166288924301650317293729751964049064591995558894604633426932468741310255012123399149866659670800192522431902188877747522640221622585627438911676962651830227212467570649276798463245194010760825791969715128927766552703996856693209595507134948953932471253633084778797464746215564607226254664573805273483795391315044056767975907039115974713448574832208367980142418075954365084863921068841235837524252431151955911604981118800227366299038951272714595239742177955109090352822053635641553267444633191235174073161591378353329842879279238419951244753858461379326202670161603033478450253443708114685428917546459791586942732851540177874823884487357285530032047447999900608238831717697008187763474292564731436005371559049633031090448529877928002066657943689096129132190966982540478340346904836727266557604576348634631145725161660575177776899552189663772549381686867325126830020985507477860478453978731841056375569817858666919252065311631163979255940796486780408513356040755378508951119760026470723371302433367106667492849167089930827417297121856069159218674165741009567004122032305556947167317505212641886773156143967036410982385562849780555404725229001385875403268597364378369855236646915423201213635079693471359568261226224090344934809546290229746530623816147285877410538201787144153365346651669396225602263940079555329902779319783357504003935588178063139308630334663837097322107719611557492216528672552163419079442262543495557260400239483670682360900398623002607699193166591356853671104141683202793602619643101542429352809520142095701296205087155930632403620724291572676520440346225337081426676614366305806011898111268707593208133347776358430515268798802463097930448207481680236847533666008160772945467490790416632169668377941449223058049094448577186161918992154976447886145553623117018103809577684509751806857297195878244330586008385320936812942776093737753779406113669229962885083954312755829699865534675483163307388483467544866454015016208606879803880702482193690732044032589602932005657385952983691135183412324202176842817165375633761160767414295921155145517063505548241650304748429410301822179908180711133163240560724341310209128522249471755861089914753222863162620865860344252257874381562678643110740738648530531744902825994729392151883074492111961796814210165095509236040030285318472309173357791060379719839291068237137745756961941628535800891388044331384095221265141703180156582702347475852806569353441436502850305363468104313661816436400514996694581906173732104430468511318732069550261378590827784651629813078056461572562397580079569778613987188872130150650547900944009053985563686972423132917258325817187378859148249057892648959244989650341982034716295745421742089621781275715803207968599395083475918548601168876138881289203414125833098667366236568016154907987336858029072538542640095336004122316427013935063074294036089658320816343198156621159031530283482312213104336907211171964604171635230676366095660052925228811719205377656426938265652304443146673082430807284138510787419389298136746242856601564466167369774263736319104373972973759477004083081749169995031856129254096040176655826383040613367658951728115729523463584436453562838661320234628259472544360539464194099223244890753235112151298194897238482041114402445928921468382254197523838027674983549452720831768035072278483189834080955205995344370278366619198644414634967632818467222695525575578621267133696145177852445826497035990065826215829072827004294674170712813486021102200035584506437817585249558832747072066965203426927274982237754000219784887892392796623821639760404009653558206873405642487513034793105952753853399920794115252514847710969113799080624656242137755788449955743321004966661300864523697319950405620096071093232888390911793737592111944055686201846696531864843768627031497473374921062231367440394721525417484576134472648848376544721119809632932790854131061040250858518743242879067380151406201045527905896960612633961209747126921624231141758891173606187552468339288851786405575975146445712618668407799527618583870559640019387126773152298967231934792580233290232952128057507236408152812037221824396693297099661680200353098438369366542339090345773265940634011338656651721982108823346601031215814991235799488304469004688487785077975883495308400108703873149570142094754388937485672978235090109104924118671158721033410584291675245959995329025521148681630065255363867307961613782142557850077227366609353101864340733448281337449886694258336386249222417665335397633860646828895214928197467179557989152577718885065683267942066492098915315477036667168979843931491496042826136070778331505167560004905712831903732950218414641282663102430712689384165571586506963820450213332478745639828726234524134334730545924562034106759116003827653169978332904344323741060533732276524448739166749293836142730483647004895716675109849617133712676821978179799243538070003249766790970092680310758889970579464298491534266989525860154048896561156166739320774611261080742526002611508315344456786302726014620700720241676328366839885796283925731594469310148298311794342164094360638241975338706525840713061391353392555702179289864635441554093249246328087094287075944859399296103488371911324373100096566216172294806198855117440238482397265921189923235775688998295272345993082737727370965972353333726339624136342648380352405412404515674155472647614102313129041014471930149896426677151083961486196104498319496133200962102295255825279898433289276677936922958549617642176268901893282462111393139024171364937179853588051759033557098268269319816364392101417008988620660475639741528368801373909247739232474161897654206105275202355023119962259806280694248131274673118613234014584350490242710668267788985677980511684046059698741095895855820505526239821019469268276857193508476725160120849434180450997918973275329901123570509592768849188514180260396179203772076930926350681833302735184522697740187658560206973501585974076682661398704273711586463763529730016722395581556064645949689041343986518457985907148279326460079671696914797368213134189753611811854630438822228463704878893032604131349924367493108023191877334893387452209413761028452502003798697114820016333442884971854672808854677890384278681478950643390228861572205632198505301341971133178451439616030671208713208182689964490911442304619891853498156308201760051641697156614225772754663936821513881246491871542494506519905321676858530920397935063015888962293446246932284723499742630639525271690136303818245555789144672444652863499349724767725391111456365837778014127068805634036352908778811936870013506300253824845618878594259647682436771586607786312549131382956235176042074842786383955992255942338449056420371965036021962026221381218890401717167461315818366305114466626778657746805240187380059123729932335807381281998600692645066849175182991738345418461859708722097898265615789834319895911997092317283697452223856621170215587062310583020445425046536262997884401068585190054879459002534296003949856135393618559724692237154386430836928119476756346873761356717321490230712003942854023943206599813543442748684300696770194087596612597341801755356933901971222733351954801232500661117925143382300657956532009573925592935537927105551761728236327885835128303621100314921667957502999147649079039455927263457902549033209337560966270042274156015638811529513555569061044054201918358727367161196802072089508683035721406500388661709883899117722572956378808944917007174509859185224861764329029218348809120193652695255494148499472377832774739113497191297533283035127840371533203734114802715766511784334972008395647530396090095013986494153849073465719166329978386693567927255675858347989514473597792259710683096962634902315365412222046421867697522662434507225894845098414554484878826803772491566066390884542686646805442896973322607838133971270773421254259926753738795774438785904782652895972076867984924839708977877148279108067536241493276489767799358112917887908978358376331846012664023716409672211092035790570662636323130587082111640738613837959369155452598385678436692817265163661822153187562351835261250181295990528178750235949476100408351560259420106748376603606799046794484988080477247031955359285480789306475699268142896004464084674389891474110412219213226354913104537680000222022843192976965011310700545648230405196219234164754199295345951644086026009416835477644741035221946400865146327034304958273000329310616154848941610483583911581272044362770374665246314549380020253621746227367195317374456416259911779125878002383435778129923530800791998388309140105362283856655855866102471546030459971336239268318999543166271702756826265633012329594985598313065445236469926130041491839345047871283992819045833950372014207215668473144958766653212792963039590672633742115762502343596566631293820585755042914880232103585949187665331713872436999726914466904503784872893389867889041743085399198564158976859187952413402323811515277905260268446391021670098641180170605359697747840041844381787064077354820331321514800204884372384927911726635385540445828258922846328676306007688191350822579161250072735155297988346083218408552688396468777126921597597223213842916369518513345277727783201680900204464943836040324721975508686922948309100928118455360834267171589297984897129540908645441323066665483465923459373186979922008967324401083955939892003519417664523312821640755940582656512061706363486086176874276921791117986454738207325312149763669985186967587887021377476201226571017986231495955679805056262176697884315840757994404381316548519086866117623110659151328506358703370556935556327737495171523395206110770351988590764151464413372630358658282717406641454267717504226707124606339435986360639902441730496493006118205262973295130711960702548875055688590080631097302430170153723054717018591337176879596021786798122275194439699116502833322632258419356575426394975406649248579384468712148847803331483172820670010572248396920035843134004660161632698927349865567927775352863392533221603708703940754807946639262380188465697685025673036173553251168506468465691416793465978376561320722110908692437111886883554602344123000641822034875291130141046144842548729801637957544809962213151328004290129922742652526769533131656107108202188411880777566871955510317615349910038833248632657248786988317309915224539091418201530464933369682579008868440841714863316099440134843135351592895552894431536013571770944880638433951710539036602830718716432271901400199309621189518273008221788110397434315911410716823325269405982700825838274094676858448793620350509098448325020578479795376834816403351249374330914969501918992445975758913868099631768746093297079103028413264415388286146976801184007069819369844693783227601521952628054627298449563443111632242393323226158257257375859161722475248629386166471726652037791846196569942603933676105309309562298971539257361004224361579365216759225348400421307687057898143132588774829061189403234210922238865142686720356883736032755475389045518488152895244792855437736708253194717625835768553427316252867404639619207832584917264428082935303097401894964083674422330544392888044580535989843753730520070869854587552741308126207840827532940068721726853661483890901743045595020620285583728505761478494507495184688400264951592719623392905365054739579691851739744725709759280627812686379055197322931438016423824036313839672660093779145285611271111881392480247004306198978612629887512028822527406768940592559525215127618488512913802185807408591592519745823341091528103091032688475436431047680007997243598341533951668336743497284231180197298649783075241636696220089667410853624580046130271844276406248894553389417433314303352117863043110971000715823413165451979984018431185279227319046315082071289130187363657878392449171771693981045753173163807085184365906690830777597376828775656394728000457544965904136743487117275904467921348431363070371136265178527861693212276885925088487535052905578713652727444250850771852187394017533571699793552112376494287178854908216673142564166667374083436156003797215044709481374251129706738380366124038394327723717176907962522589214641668181520569119707051697486508806187611903843238326807930958715988485365990183083982217422588470151008004785251854180549460140758209820978247366489053170794889347377109852559529126532305819065322991311905137873051463984634473177597500273128634308064054667922436094376470191477086706706380072144863830918452539112169655224807439564267323490705628994093504007878512771126673980981739636284716744252675663051005024358080860269892732730254125804705986295626033819389279280864610327280279192096098839556714330045694924485379005870153734830934694068980478331061920189188661217262211723750845688308099306851522551084232884686917323707147721286666679898152748826342064831909099542033385349691123252385353550782306920850401594849557725208914924292211318968104976198299785136207328972423712984267281400631828791162379473105950949830384669604523826240348852745223823817774213859533764636768436881990538604213963235389710255927974603288503623386500544005634838016539145065920402332539402537591807180867416639140566351534284036127567943251232466554055524480207897952887245281168676985191791915146727155153410319164999589035651120631583008402309576640082087836356940924941641551362782522783686172239681024969360562317384427948900207449351087627458606621176707405977355014912815538379020577841898272537989217341347684614871902265807913602680932149834062610366707949390519371454492115550849974535340634795429381801433979903225722948831894930393580562976589034816016317216907885011813279043765219234765062101767501208750461929056177117707784235564526611361992864333713929339821502946630090851935234724427421383857412490643852431180112215803494098097216099008812334096865088183943197529525708712846635050002222853202176720756777302887094657424949240396055307678333499043610489481158078866265645698664269431134314834630032842113597579507542919777300612888972776209912308885342378465944997217472028779739997653666569744156287503456599688447659250753786517944622047100464726392445436657336992136051179331293260946948247958396148005188135046368893238536393913513242665602677740157232449980174820899359187581977197646355286150500976421904658671009432877343991967927519238928155904766316238151313200685089771173667182281772783482963815083159824593613123193664173489039639012834160918080103813659848126815038382224517635008592691832964859323919422316988988887125685397833861596246633788614171940181438347831008007847136080276688423130781845501271038249208318541094368775326323818199149933348056437607661198121432016125304654365662399585101290997749523394545709040896301271507004730079013856115305595993398207536571805774279626723219012599542309379636070712602574376743059214495129311896765611603578477842227332110517206067180837738845292080283488295348773064420333643187310879384718463261271048561743947753963775269530492999474574813077511977617875564517115617230938303725185363799389530497740147412871644302196599765601500920473490764718016751965975266839458045074474691304083260403202335649415759445802628663039814060286438091301405684395250401931132481755316597153532771012040214872481463250127207005516058709220041339988405947151250480230738216773039390419754557174488104360072707564603986310039124946796640347935369559183190184755373165228970992363419506570694206799379065507317769610236219144891197350262015763716971442575131590936094608767194948468479927245821556192318128421098348118087266091066646298368717729969631487023999230372650573240347957099495713417057493788285902836145355351187724708971807270742982249101731585859087160459480340478932449650034390662616132152652317528728226876721591369817322038877883983454287150642769787768405146960540387074353848913978883658425153381927345556442916692470923299309429578762138506379043386922749680838689492138008790347574232179148359543458188787347579775414687158253268754580834432108758562882439934709883421004982344096032558328678011620568338137105660454995089789381976381079237062082527956723100365837891166185747663372680523373016419778796256504073223770798983472478627418488435403496801925489085260310898495506373624748573497752405659442351349667586969657323196172597480096828754156322098108651755024179609321225233465723076690737443960866550681568669321718931499449129430316921457435358278905646903159079349003808386155273019178717484913217497353793396421650056217438122640046515298546393841568511795642797854189834800028673385817754273542409563260439531768858470174891247353220670702333975503072286067227228619963422781869566953829795016992124090287651461492796849103343699485491632014088807339978110715658835615889575750476002405901886880919945794059554665840292001212933724848549380109467121503703303631966038375919330926839744446373312777847749101473881610495426611125308559981216847942338155517213113947647114822328789738479643089328460361958381186421177439016870181767683888172828997743370499427549652981173784286477337581773747464604262688831309978680254207141165528117780532962110018688327036529657374110027355237367010466058412908454816304696173254750379716818062399951623275942785400914757814992898195761659023981491781533216323096714669851569896732323397213808525744078097997455014173827799003846589084408586882027906768348417339984513254208528057901264893039944513501998037885506333830273475200169030432473601117249480561259846704035352068950106485905749457163738009290314102935418541490038038435475647440392367302080378111282828193272124300671720278530921423156969083697642393790449046761760880618757937675449190697302256116390126395721396629789292684690140371627822102032259858000456974907240184058254055949116570131380090069005008499120763237922441249621140578352383748407410299325917000099141629661692912910847573863672669485110099707726522706774346990578944716227984933599338569839270968753431720980757202079383266313236387210941812761783358140056853987250705929797002512019567783312277565439557092395741420992820356083219337019467974219724916392685081863575656837713527302393191278796799388605943687473966339954098020174174593014293744362085430880367304520125159457257437562591823217685007102322273818424684288584074910849900184887014845014541201387305460030408669874220191354327269631886325943899903757591001828260818883255106995840128580480119397857860190661920981981855144611481886939982868281886881501934558087494533176170201208984055780926136833355202344730479081013908838257158341779411458203045588736195840791030908605409769339549017427650963819192364092611465557205359099604212823269251629055043171920308523017892974436146484585310302829609068364770169000677617538287856590422273095141632256555017574949787438485008123280259845340941688106393658662282340057534227245021115183982849632981357847403869292256707914624688988723141870681947719577636159055435355724986282726378440821166236099533115109726111650006094554445965754176756849236015916424410407111773082866033507485381269113662419328219799282988160648452268681789676675107294332481065474088888356882144242711562736631680251976502884851924751437465454566653769050278566122621305807216302570770016515826748969121604110996527203472477521798172103723164385407733546245025359564561880298728208950697456453803829519494969923596609537301794597702118922799091528385254530558140439251897653572489784551950247437640645773850725632012556786665830116719638599944805555306235228518073642251887585136681900308535567328972645032858643914704855705293460876836546538128839662167890319912706308058705741157637443979019578441483735260290642173122192189082914100721251470583082924179431903021056702909185744905969711688535145430068541772803815965730976076941783439879340036720737544475766434523156860671056212790642502279117139683495127365874185457603307366585637625226809849950163735827223058514918024420780077341577780649839550732456386546313844262513346034143361734202224221284279059987698264844845572968854934759537221831113145230164053025077867070634498015312473978415285810236759517611065140921558981644103048582407858374823686406861648682779563796940416033154125460350911440150995358672263502278532542962099605618878563814804822270534291300342145601409502232118327984435402605044914235095777830457805023287991731475863787306121027497897633596207856251542483991755000114547714799272672748334932642805197746395076717708780223659278430787796558984201708402934066214373483064348761180209532117133986946791341072565265396522260336089547127134525436410279818716605979858636840030524639020673593058461380791454317235147959816542436925012939357381641967164756515993273452942500022776157330020329825447159456515839986011496181732329582923588999393938942628876450468690938460713860892119004680317903164413113393345934219883183562362723505760988150033676737857488670335188379325415707776208152458581729680356101201226844151827578584486807862706787333081331674080504605219188882206106172774746002973652447231398096817912552429779106286859294798943384888862952168155379676007582880639003612048250705458293239627813543328728233894859797982849313135027709913402351035532340809278308928553057769039387640376834968641904257180938269934684615065385816396116862946434316354008260355834231741292461913867998370313104189072400052138470245705631076319257523643921369455564117963944248229058363400444971276769946150907086431849896327667019741365942195140414181698966713413251883077026120749013494020339765827646699455586280451162382945733429688704692008082622731156241402661988553078939567378466929606584310847613795454488500028179114173086783281198153245443177827859890068512211399963137906383214028045799269691178593994043942846004615057763799869221561230066122705658557111581330231254825999167070535840614324309441742578745105506801053742133549004942599259935227600835056986867288186296440687244503352712739320673709876271109498871522307760022913258330682883221456786870891780015169700558965645819876732679296336815010590402235605713339729507469297137972626179884813120574222136492430687516390472415061772249949207262789334460565399041806262486796281625538093294173759711318545099401132597916296505664002656131175053130681782033621098905909162424588655720038520870096854748688334202423870975499685208298905772165676843588582753034922074144674650307317059207498205658573424744158410200621753532893892163335372297137354062962509681042987959147380716831464825676477037850420779152153346518969518182244433517611543727201132745190262010738801801477152972690551465139469102792657501588035395920977422934606405086844165434075891920580227111125808974867765147713755861359948034783998710871089078742571251239688333897584297920524941879441169419552505046953746233289577717297339308910588017779819192414129765078006778944830076235536854039486966580128527966984923331331185871364929584252443591718607538366750488650724600409178611345944105854011161997421605099454345391016859704151082277610493256022560406022362675051611945802249560214890649154227057619087888853226673941720317440499420649865996817965682885083322213383366805476333852294342615136311577679226628390636517430253783429315804351773390159023338217673537601010344232025836662615444369649638254101190027716142343550997533544891008983897544819610745442698183311003470361716833590410928487761590330441611286708289718509107002095846846464074399224101334289623393106590691483884012317219947877569981263872316778049058764794047951841377598167021242307203616595002975876707963323238087259546280619899298623027693974050274056830843429604050919703566158135814090119471928012295359680550328289483187055608335661587103110596962692488632099559922077391832230316878341912013444801330989552782608535269929349929982567660826125658318027711340583337360079676088242405911292134795667291707128138332816955403249217868227308786022640720147763723429997761442745601820443290187332272137966604457957115963892929818874350496909858663793019650185520287591350214475536193602170767591309235734519722090310532768652261526444910405317404172697090238061730961423991343282928025014944436309309844850393406502222061640662613971543324136936685634787831551421472565770460489138462228901170970678077868184815355350841907617690883156326605165484607144348883531367097060850440578781041266295264203385949174293096394517337568772758318668176216077538148468296262636226944998170888340390265883373556289472101657182986993875848973946506300712638104608765142723045031639876879100717305024811756562609319330148451405630511530065244709364085317235198422417250830098548325104542379833929229267121005425113348003461922967960940237928763032660853542886420217879873775162888831124780865369737756145343279750036039350134027915489282621482622735733154647275358575955521972790418028303617061734816209424216174572902496689664805663058627821057634689101680540271144163814965276058067910123226885296397509998547886753147159252640916896971908594734000128282250046358758452875952166376143502149162889458786943852067045318222907629747445422973590646546649655410396624047504402254964588625942249013987258308305944128109698087971382874224685024650338949476572424664116308286013668851850611284518415342330923822439438761833097105842423675713990830874560194006636880310451353731319639969927258640505831865090841913313856132538636645608952638823284040726152313042095130070003014473058674398587680234160409548800509881035799266437910607657613477674794192672467207132666415653904415228668010597791566390537129724537380654329434029177453447549510045448220232563537576535594351227821367811432780894474169890181027469151071645806611542396018409426983610094753635193386177562291980162530900156638088267173340366464567404264375912320092283348816802066187481755662817456763467351174476001905244003525707954650147940379885910452911153513340573190076313230072118968381181491478415586205750298092643039200683815565179597786864212066954497312739603884733549630464998175590680406623542701414620630747950270771383739999997536983933886336512314811452881386855717715475886164036857074566182547552699780404916185809391893611732013974331319395238469309552193473393738677128857586036423024741617144003060811574573271980081407826276009218256505738541349390705087699344301550935997284481917149273813381230337564158332701904541485345749357886408639053347350425215768384786950266394972308174636805148429628925270293174534936395083027124375889162879922968139884086873420579029417230174816576741370594588755669486548223069980402125563607590031682451114408024163169151005457985796442124497783443378836696058393313952065205453294765934363957493296946335639754748747373716614708688211840831515716023015891593356799477354046232924072290392850913185963404396010682588101657129380242071330468648125564156383110460642375283887577044443048721779292445446886050832051547957344709066435478514632898807041610750530705892231216582327094125658419069289549488261489865012154087076398300667183166748503083456222662928604761048989376744872204455376558149378912141193093281201865160374634397874989835217832588535798015243991821468207145007924989693958045488072717043507870130368902413925953019657891923197788941484157840258206226547578416570326261200653286732285420920976683545697228633814334155262508480941470434015932875492279973608519407732794325551564589108356433924328260147992243521067622862661848100791936566808373383927365349342177070247548260651991016194951439796393853236117279231999874824069671846343072283785274034021838271581123131400152902049072912336478900543551943345348196528547498896890835925922160635615203626016561434391721576262586474463495176348005762184344601439249262018329809073057155295804851965508028718988465962691217958868310826807201091181772456898643381094385961270793093922293875778945725651124901148823222618023377953819144498931229461951310626947523305304571925348497563852738121991372890250327227433865624098620103203946564612815018394500793276761879832301119527274077519092286125845951778176359527976828331611000908433786372369591079376910249798343547787778231952280837003537543211243876722658591600886046875558444988588794629863736134122944918706700048263181888013842603174270752440821871656058653291675700230681775956411339286684645182935407692277587191832666015736658432889453365372987638455683728484737362241634581933378756246179049927451809378626688821193755593935799286753423250559389144667445688155524830475351521099549115358181714503497863619552973746157681653941391054441038283353651853823566140562100295575502045953769745684200633504138863276821307288837092957953576261728309497666099611840253205211407958919313374496682665569626380364334975021103523017205460888686634992626795481637402050143482950852035708740402894482772361613208456533429600659047677540893470240870304041852910212027273884170405470611374694618189882724531328916039182104634459371742687190421466362229331751697030756294614742417042936971236213223712013083025643181573739080884538738110351483695066432527960218277666473118467673790266603572819470857542257511883094572397528434934969140984672656705184173033972342782374995234286089148430698229439715825979791891930294233130777832337790768194873787801203203275144228148089105008791098337492829656752766298799959658439344302354990853966972452280119534145674335889972778830321145633527557586390920850804896868509909736763428812418603136376398968318005954249023699375976616044092352407750218715425435375155116657385006177322479490283295300819667730286009727575948029810301296252027554413996065566004159659168901719717260889558053149020082428998734920652698673445498595273580620717238577455723934757720616031051371036342547809163870225741738737276632433493340337436407642636572401150472706529664346120771655177479281716287533137207946878521931032925194881432914061907216413633887292127858322306840094967151333182498077169381666174083607235430427751774579626251151932549526697936241145554171918450933744063660261621081526352898521103719028755114923855878736198530446019009430405415106287974842642486930245566639025849766643199063385164408733799221935734324632280636272783666603948061109469862712413843310564401063854766362324113143517116776698843669672879650466263057320558325174709793338032455488969646673793315102887854589822485533863280634578510033630821986983869775544838572800464185044119742013359849782761609422794427424935483724281963623455074102496123941354752103599263320482218911649041656010562005979471150996581351283043972474648878911923376351379244401428831689592946590484474830685630877335221852742230208551358436380601070252169064760879213506444218163992946568150597713558546536377374300173619493864218703239404171776369089623778240907819736011924642893250897045110047732456178655746317817870010005583208652783908544127814743514942888908435061611580223751086550166750931211794889984013462255047750232436248326362130732821705311100346319856270823005400531671668741408212435345299770917648029234264244505075839716025230874353115470690897302974762598053025098088816329648072671299257917202462686227662543968933503872558558425042809454548415208706522605692896851098444876993716618648311360490456439583094820824734975024327562352469712442622793675479140577300430754215318902291013795476364750989881146287120010870437209471130842171078900525390923375639435263027931265997232755748575965715770540734749309948997179274191715473815642085624265950895216798590994905073955602910053213694460088689431008081955393662821801582835692741325617640226183831338127688591310142526067013031825460409809503770517814271941385770273924610773671036362454382671864561529226011297239429267961976735082081221724871231575967908872318195608703526105060952128794582807932608102146616541469792000061858727262559963127786885914409611905477750662325723118554712586134991310749211935130598054560293409519492999091814580091554752390414768236657582215960906642534970633636554249541634481168570756439632522123947529543757991521561105513750188890682677247809204008342697119085554568573449291584406636131304049884254920772329902370240453217228656283600862183723884241868088557080673363197286685450870418255765193122409638504695395136652407723508098522154939974276925809840078290451565443443215486725751673676610543821101755432636985407160261976298170123149492121592479557783803197671428668642318900216788661598052739133398034034598373222861612208847443592328090906346506913740945264620616940750133832091295282252227628408644344060091125129027722514325368928523922008308655545100342331950955148941928017761179754061424368466341416233941354233060131169401162526236480368465431960138395207056956446530978237807929541701893641866860087320249271917942774039365994758943482969735205130494800338924541482056622319799193973816109156086949422460320571425066421066597402609422394593834352402100814687935891677068736250125926115546979716477025833140687703802788598777399344605150849528925984104064656030287112400603206748280784725364367689462846476980260272993202755184164894912860022887873709447845075245966869930528856708459976496683844032195097611509124916320851925635823759650794779127303816449307393416917961869302892121367938244628928345812290864692315484855183934070932568513183778810506719384392192308666361417618075402902159227600062118239535649414855237615003159813421885309768459403919989503841975326275239871478227239301374836375975378159347156353950912850908828629626342245682374769338819238935846780061685605063586317211931384772837062106730736590148100054567865773809199530028979466730850125953353620667920853828829874397805403970552879198615938589834025940255452075084562514427125595350775625518843854858921196723723326818018883998471599106823556684178162004814267424683681171723871851019953576428156276115435440420064369656796550990656576301738466787096781888904872596127456887598537508867037624491065615973340591682965138316185159912330234639719939791480999427618152713566784488327346675086420373851649859554403663331341008971766011146848225763662320166185559816197398236946993191083190094127692015730418497484145885687581712771701358420012569535749985110386764689854924740628893077152240029640317607962418831714490318795102661110725692594353767846916760673254370278040717138169586957655379513731816784343598448119565991132684031821588404551560873627469916390853892525438541328610996451817849661807284107749716523486158338929284860939240234396281998142626237028673872401129470670688825669604483558134809381593908445826365841584212653977549722204870075501380395620334336052704901875652912023145619461861476674841493246845569209284380854293925015639626819963799797111924875577439994847877361415493046560901870569708509360418538799867108123476372184250102593612976940425116775504370710267808752302314612998530818328711295085137901991863100844988384589919274324131842198269704644150262794446676445987055573791146764733269357578700837846098101580970356522127873878093351746651599656744721097701795516428382505383629588147542241281111654164814988701438980245225922568518653664451956650946158277690287320993547874530457598518671314340719488146766969700903962746206084653478261926571270704061427780100841342224876517083657526818428576859230562367957458728218509823563968246298255758939905101851368339072414085098161106811558518980980024053605275876915574210387113524382438311630688534643604301541116857167734781703607636623889361659235649566286794615449465020210986092184080163134358785082496506092080480426305633510236041935801376900627383940422273461333614158001327818786866776199550968776083917106482525368221229129355254113518805106865453462242551807177857192362133790712918193849887979816043384906210978562927217477451429727271288158512393841704460388662584896227604057322216950920860801743683105969806868221827213421290770302348986682662727918797688951999191032771926542168982300668844906630457873718251114967001192526713458437292108076493427796429322227186845873922922745761049428025397991918499569144947657420799134449712033776848534225203189005843224691478596029245277536899111100005116790469278500838154216076667635185752998028057852830715242230283857639549638983241657539956800973712098448252067172554152359030544258933723364625043409348942634424061860184578333882704392989270170518236226633496026989501033082825505103224176715340698781935463121610697088723296707243692665326620881808890715890401985625984617721137945944163101072805455796373433172631082846745924479449883813226529550185285920071681087565386262722261372438576152557565550934912420300412739076562613703903686301991813550623124901450964245399942451827520532197105084226258030920368409671942283389595594363298088068445458183946353915824197288801771377249405404124146146003810987346180632070309218754189474170229600447048611738505724765542597098277354338227775637349876912944945409349411607861624488165864302772530534989357219503259595617264076108042555784078297359702237078013455074936879900180715289652006273892201936424896936394470625803869263453449610417435626757984285803728141084169002377561066829234599229142742810634322619252812427914817045195240099805093803382986615524950120730247227611419144217882161340570091693566205048294049466548884070358089063513701420900154395447785431431271265529316996680016653555147936272839248342072744789536541683293346427816643946305307270532662506279365085115022471004289681254394809379974590907895975359057833507686727491607269836776678514391382472162940500821346859108376963078454731778713920859411856128258809710814475937459748066481571727606305389655170784895795655356533356592603351684148172386234675690966084228129967131250045423096536296359116530689120657904343317360836215574100258475552365209214934127938211267169217585285501054613129583001642852450231782302797392575685355940183318413519618943568952183635443896749197335317914305364418405996134349533754345804223033034603991345623331773612567584420617485985413925054849429552756469624196707917817194397561303486012035607270153038391653312780685331068442026745669511315883546350213171407849503035810562539588092759419023302152997615644791929739810750380723386166222395751621917983077862266117667731916736289453977122871950029064722754548936090867573681072618073239795002914431099756715697644426836893960424373352598182139250106735715114222325760437476374697329442969232589930320139708174305633604733111567331507088248385251039788598973778653457484378900367115274559288386326525366528115040349102294427325594214414654897019544297763870337660094454237237811824692093717451616089039234362399200228812568288641580969938733617503352727688819997710310878072218479977655720947738675122415351371956815390844140637890026758783631305332682696069032875494180635576094241363824691556423823614793846132535271838430985352433231110237327742447069334234509696296079180862522800300492292574698932966358162773591847627110137316432438572133550063381587859119606494854919705095808614249941400540818806542541630450237471619130144913262452466857235448511646079027939782547783079301985732931725542321151844094801053571919260606645935670426545279462610829470264392626778600405851612883307768372679990336929644408919358234728719306293913963450613363167055541333479800020790945132349661873455110982569448042886958985718149867392745684905570598063627230715356541446366593064112133372603421837386056873436456408154338634767346171458819199234838621357153403535114016857111225856327756892453814223418019499890680859183629626485719373219741161328115092648319080113475209411451463176590708397096839071267619729023256156757037803864858805565806707464238172056708901066268925500908190090873800753924629462401123864719266070330677700978982284217902353885351776225202271053691660363927115852263833484059303984866755355974365084978988942385520864897273207269890600028091494303002946443851447380792595405561795189267151418749865609920133665683846239277397596514731012441424869847491842392832136735079449569638568445221622175175941345737656975566072620339351075084395234607529951830561818075593893821185651141689546660020104066452890860752061519110203950809310780335654801912233271075009142127185338219578956074145351776924282617692810260257342914804170842978070676119857021107256182323233949416649247597491557568938579283987597819031133225833768039591532713041954996237350322889501087967598609222087593883749208702532018937899088104135799904449857996888538022172567642226029321014575969521104989763548904520370828937205443281899180694323514823413723284510006861683381092989767655609345736041013803238582004610006408981437619056862986834929198662564371398003483948873526762516381443464847497834404159400718186919601290552164958574764479031879658643082674972807287841244218872275091360516339378801172086842324687638389084814697014002265963213872139469381258094640061649682261751559878062618060186114553006559281292133205445956395034124134198528252483718333270681998607115095384062219011111303419317696054841376747505959834953276371752141247057129991497971044901825763959891290860030090418316965359079343605857140449886173151990349369950683812656253184192498930498836549059332874386801470379426702938267221249306158130071211893210926207938138133010979034556478250990317872183760671576331526545948269036082296887951078575934591456497588331192405827885733078100097651530324919235259960931168851572668794474865813643490734020630175362202241766019285172877620487208608297194720188668285648657938652858397226185277324772241391782026828814505090450524709776907693826815711450608169742392010697106781597295593445949583674859354676652417596101328830578607623468763801185910287439214139818282501062481546278253196672326799665786545966404170365575904592576308141737661801611657013189251655585299265071057229589955538045241018209423999844547160737672680921621959069946214231904360534235133698911394388528672082617743206884363260917817886561212644089653965245644224573218186134638961191670447754854826232929231611136188733717348841508227416488223868196256321331965495515926835418582007536037948056573304741736638235640840688216532568656739029361443554206768647571848065014798509428516614613720743079372362394913918923435159454828022704187588781057387301401438709946243415881855778146811768690955406398653584347160435356882452685155908118991865657034724239781719992851939827427436164055607459749050571440768490683043019424516845371319091041037278470223916191241164426178696444652803348209393705356661527825551002736748705166781785682800783195060954474105581091922538409571567922971530785938671876829020438334620245600534673183769300424519936707201483586511121647336467344097079758338562843006895755995287755752373987659722429760719619390541748319848235173914179352425124993084771038781584721904813712937427095223871472585118658354627386886055685329063598460205696407686456067470295366364632018539813195663915321958157788428524267398082040206989321886249863966389927354325027578006784707870004133030839341740486519743351669674434871953904698586830068838541497266264438565387201611387757280414742141424199098413536035693683758564395785997306627620795406327874518391225511503347988768075501605842504348067276396877953102141051224560639006622818848731533382488212656157125726013277868207897400753937820932800755421589976472720662712769766870427277638466305515789004389758059382382093953925417144413926497208748294056708794794332469006836161154155955047681559615334979425618751511079711556810518453069370609646479823271621427450508924160934562363941954737318939431433143603757099869519500504296554016981897103064581155584903127325298489179926874783119466638175642333832591215430017503540945252741804108200844501093431892168051554462482200997808585158954786807020537503048390741844636078233319625927932229758677976050458820471161960200775800380578302942554054959874246349686396522395928320376249389708733360231509129552583242775118056888878183968492563707821968229080503729889895756345669516586330775184414061734513052582453157194460183917089052499956248855941171338023215850711119912601527532313128712738350318261201742679195861739467113440990757715656526156251476290879480923333278600555860242519354683804756829617961834107641856761317469288887042463268413928464743261257358902207348921396979770876283055971634442415470588020267863625883535728701404593402321101500217291455875620755159413736789011487499883791588067461168691545668306060209900110754364425783876835667452898689069418644139962963077868318306742188645857846027123228102051354018643586856078899523244506329282494019760759138409689545366018521214023330556623594329587257734929808026709086748047268168837292802906151122450318779039721301834506601866922228460486099307489650671088121002560419921779216527981432766030846396302847209086222162742357475012931959141122153793312756034870603035637105529766306213429828937768405893641022791837462118658804394321604906354836608581227867949357280982467721347645701791531232481064506237823250240002943095657481957726986468067128586333957892726822360421280884766418098984388313532821435698517306244051140716621795586100813950919487500429069797758170878808527928700295965275394874444768884930435846340478417175226730146844136170252329296498882913442782610083001535603687874078690083357894826321962664623904493106150151675757325491968103205769396803954779769112038751072654349636737237569278650170845172049940267523803386535659448230871209826521446803265623887560145125408920620089908202438763725617166623595090073874606837689017255257845953577894838646684502650218495999038329185741524022532549492044298305871298054493211623148552804975010169747650139654849312636381205617771719211328768079105936162526200622717361595395141044634751047481842259759789848349444640750965920059128380651003714380707888416565721682976908499933283155606548189926529644963093245903284383646700579460318444462895229699368134611556510860722715349573114682968667220016968492145143349436463579067563128679927972190629668889255273870504940506778268140715110651539599955825291948147719840480325788694426058207059178286959219650177173092142532126071467793270376077429307310800547078725214359403470219584460412311578618884817593393141999763082032087576508888487549035815247535315178901381887760306195623427733611857526757668113196458374509264733754188819624340176426959153747863919159438197144115533980958626261331566191786281383686950168208255319448456581616550574109442233776788127083055937233994009524172863230650481992680730357053366059586566631687021882455155198879576240988619704298591616173778140738720265359974140332882928502704418410725852414510373659186203726151765990603921192969659739130138763329301289358791323281203227209969598457519195713341160325016098726081170762533100436962402734890896970879081803516695603775963872087314343227441111253797050569796142362973569297565445771231977982780491700041080158391395022736016741182337752004052753586032310979410699202309066936565338608387287618323099009359370533925639083732580219720395432641726641796338395849943710970629511575580132501742012975672417624369875772044582158100741061341392037442244889077791332672071545840238760884312767269410714102476606852491386724851670785002256666311940845686184124321121410996963853185829596366718466725287804101988930018291487040507891796224763273763446319104448104508534426024063698639810443332664334124465571327100878713561792482747441000013687828785766662907996289363118176118462210862634836664996215375831147310191768559668442111060930611782561204612853851401239658882472924522047050402784289374101552777326275949489186438782983183988497926809874211508718534906255966054781098587230729853362234084768940761379063049719386851959709859845649520149647573213968006714277961831291172260525834575422502608136319324673714552277844931298711659154892205592280037071884872864275410342161712370001761324895288761583736171045108870927305495866824110876910542672339693091957988499281590160573419312665819155513792071378884329575296653914056116661868485003635585498040487533011028318719260775589758043753072914999366231804904875006574374051999668600984211159648564830055324718986752215133604354755416142228172411202690153835059937210243800471186521288683367098224906620454765791700425492134488514691493783282417418882213795581423507115848021504023105234082857982131725799694327324953478649171064216409973560504597447764277401857225813991160248675678796318962355690652674899594610318558715580747728946575112698624035535137712136470658193420192107236060650193373207251659142608437918215040775427692517495344316566420495165804268865162635944661287510081264847999795948577054595779525782594313913404742117118393046919357653964014796512295348880940796748219553913663422485393748508555530787792241168683706551609343394766658169196976185827651122428794206343689681860645683809750828743779427789103074856903082010776364177233363568979745475007783037016195485778996374961205788386259689398710669210102861890585919036964963238308268380720587023283722465341950147104979727656227216238377180474108598724137405015980317348576630864515274716008984715846179030549301093316975411510137875337059548336067844168243584123224943905527147818675222770093567081480141373103428685988086699788554168749686708089845048204585552447094619609780033599945210867089764296410744469285775147523890279565953149071702689606953415510996008353758815122737120821253620433983698756020101325525462697740944652473858419708117122785152046790367368242268240381516231197036782124497863966149736743861441467847655504675352951472649457308339659665150291438139424841896925687871272277768759106762205740493349646710507547382950308781677669477181988562944962447345206053985750304498007925896180716981231562073304469773046450915290229129393952121620311461034732611790100666700811332176618793027166982591671222655760288745096027066258789753473154733492001396480427472827814663239189128524928390504661581438105014281821510219663247779760398711174156190486723866603472907799192715128112810551851027985950259022981428477285475553299065919151136719159485587082694714263291345148968523233622940630549528166555476484481330699057958518984035284791790575232622770844444392877120431689192756312037250140103373657408419955816862175352371537932221639798957881251196542015785130499591473749108329835191042277427906422909586377101566482057745109716017082147428163902117191797553640629780633397349186843970286217976972345295090660558761316863196404731089981473877884262869225540998312891376789278506912096226286978904229126689540959805837164339930583197696855817037484519704144282270457683815258507596303460057498697974253896682454781125538675454701453630439034519565758653019660446714056339682909521076985368373170459118456312918008284183565804490273311009777874491383234733139869019904248974242095422931979572675613421087329328238712429420429386596565335313217725816553011285284613185335775312287860086104003757640904633178497154924851841622691678065498712843873940325599774691277309799089485103140131550871747759486912639100192455396071157433041794787040100403660194589895404414684602433691683912392065966710252660310705777895439947800632829628646603951379485729770297515640674875213581852213717076831200167189311633442350750361165901271006349339496798647895894489775716672112825308110540717554162593678625559619028622169856594311239826421590330701219265562952901262175145822543917573373585233332367979973294980032930840701259770370335179298071604277503947868897692894401434286632886934706232864473066984204444531114240645940717990664309315272846907987372428704646454293002484100756026684781820100345031349184924597696704564817568424649399515029769913188788302518866913198321275873433519114173893265229963427561803960049821690695417584242590396808598462550195146874957808612494332961592663734308915509720451853414212449854531846808311266593510236037636146140664732544110119146504987286732972950687586927116918994414314679645060684463050607100309719450519671766596318240039169464130950114837214005087285591341960683791322231146427107047262831305165490555496373835640404408572013923367009144925146471582186030105955246037987835754548389783160392875367542428247725907871904463239883556111522585432473033394206491059392303424348623399899730967226382045963403098826362640323311141181284050434916393418651837995106792675121462420886770172233748044011265873384026207063484726982805249816114896944395262240500958869997914246706289993980875759206883335709883767337829708548375029417674733873949182233744803169199749079347596821877293593584498021857874295574471626184330513831795778069685251743328512074714171076008694272942659598025889334335945694377287416298881469663978620472546304290248192603509467412848439191781959622686526462243391260667655874640566521116959864084911350643628450675067235818351050721775354050289088699633161451866982216415433163380425545150828825693767134899625863820749684004344914183980080074821724502728178301135132765129699175253228232821805600386556644196137757255137440538028011119737704307166013529919830482432882800905225225870350241651241608233389702859850619072254343921355513339712533456306015504164212885891527471758824700655962359379886446585256895864500246969524101970066233931797714393989570659852765172154974588385571653341559543663261121900286222619555623793478105057023374294727091002256312040991031910613692238861818048025296041819136231395297608429144662932098190400990163941749185237396583287430304562175765185730514134122581657460835339692631124942144008233891003351301908041322881033633536218654332064746941684714867471853882288793842692589591156686867339133235847340808626647506334589342978120216050960119330808417691703894474118182261695239049134390891505174182930314925813934918973985369046141720369970611985171382346961739286406048052368059635949136516245628742110098356142326649764599393594598590556667561715659020730620128622728695708636360256469448582788358362809269973722106058601179749283772557167381909191872319902235902850732771560764209538604842660399792472291601565659404362184111056402272866463718005239402171125515125722513399884684594405622903530526483819108482595874220500953344943621975797845306116461402847244132010277926639119922295490753086080602605415489977372921988677503885742517326740409144469917082255623278427177204272857184610136883725765728513198926160772538385365416611316883158569499265495681295086829876950691111955064090813746783674009748097812585651639851542162940178809787976911224188204797900346832918341934946945303779723141350954237987924068098206036137964641403711675009172456064641685968007274140957835599014227864080795086944636396074818372196958346426275652184806963745676051417977902948840845250296263713764163142578677670132004086473160240861800577684602945316661783255371380669986032980504928069386141776518012019240947209351896530536881318537477618006690892291416416418059790943162105885017699483464622516504908128651860181502853183727447780871595879270114458691836081885734438201819380869012454988659580997098245258096974158682879110963836764480135360318844183087990434523304309681379711877220977366351665367689547151914960368858823566917734216381477756381257084367616019734751146759978604198029414573532221263453896602125174595618286678771997290294451102985389750981062781293347102205315908203450124518835394644263960725678972726984146926176939347391663562000561621699049672890780400805040258230506948171239964426967813469001909354574734618101781570610102053479020979087764359391318326334565328464525479637427558354443046317448692135398185396186281099747903039024768405984736613433764654429603610063164991401453088290503499601442585058772683772451409278945553988578545498441894962599496835219834982257011641864030439728909355402114930120058862984813443442615940913439251572992339938824856165196825913483368806707064397810112908014831974840570399050648951401387116489220291694187159759562202522005788656351446874064936934874826358696597529043380917690620974850166264093142083096054110445510909948976987708431259652725592817196292233652810844498359640537870787361277689118964621511256708001168553423584797540430503098320996883026188815972697409471806158278441701081631427260742882828706388717381746451422080531083566682549920805219880531670331300625276281122302243244004347109570985509043106254540096114744234956916622987301116326307791730885007347011528362107020627648123797118822598380320617115928584497831759547583349470425162311169998796222943612547588409558796422796404086811690456075606614588371466111167572212093984961272945824604445364342955660360421159054182055351944924771199947715309576552883693195447134023254564585390698648504484098441488728623306038793586194288344267717845385411229854840513089026464192701074485381381348610390786158272693470232722341608686332856285171015997041913662863020050556434023811706040350455465315294591541639209920618478508707040234209862754618036965674941334151508498526877587021811443878666071153855198923335977961831978543920311276553553378284093970847969976937159232180301058328468161919116473336105496709123205493788049550870551850039930915843141158220031533558758639863555941817650298161625541420626357997602815432905864932809120763411239239358794338259571851788385624987456189976627502148613110778116143596445203785772482402067592681876706259209495716929489042837243375446498157658055477822634531360705286796120004764061958193109960366855481198607179975852935266776526355891748901334389085256834899346481675966171646435066823581014631118384886462730633968482593703891039163958474653762141821504179909499577483672653817452516322626188228065345197497074858769399066949868393955166119181601659670366551829593398567165556324865845652498094227624398352362274130081718717303523427535225774010629394786918860667966240696561990896649393711638317150643678546860866012780374327666763027449860081187171003898960749581349371169823234014975435737482475478780317274314477160481182642336940819084961612075345569451592889025193657335716479833321768588988719845377073343428216608319709358781325938090404760946556461738733974861026226029190035936921304533629906870001236262810452578864752380281398547728462424767186486951350955889558009695312499779603321016167640654207087493218870149192109522518988811584719580054186700328330955361531190854369374922717421918746061446442025172761026758050992609432508927614591618810389420702751549535474161388443110069034321421040126333866258094123761862353436594115239095281577503385150838096178285783952354007583736980094228875095255898436540610265472097388986836580337100440496201701877197365845037718865960539569501630865416101901544979667875137476829376880107101178835513141163321245687960814268242994505740088044621013565632940074499551498856948667636827351535613407676795173131603988646173117508267435946673693848836473279840521437615180589359424556970915269421014801710049315313435902375096918475167269408412410187718723730153667201369524705399707378814254736461374169861008830013218707158866378310342425582845556347275033531925778428134263631107900045979372467944609052148570032330567110457654431993927487288761715851436451153669332216900366407970470594954713091767884827303988667770575527937349381470358958562735625197284511305048916045412404613126642023577316611598303628996773389100160546797847969752910465777548637894222168288163471869126909460841638222709169836334626657099917805629958385636337319028838853741972578259859428513189262202725325558872164216835320052189948337155637956436413168160113411358558037366007866808634908709709458896758954051676373310266796668014809470051361634138413241121708771287594758219906437848577639632555576108380325570013726747894900941086334851059574520895780921874164708960178075871662916073231934796003229773723548773403501287800372596007911830092674927379479902333813388770188708521575245923657847249602076457900260443043822094709596390620995345411434314672047162289808995471255210225857765899023781001485658040198351904936686854928069762306435318162662634645090465146750865748025761955538705143453181431689778484193643553923673482383930794594794937154186470983964498525852047923396833407958317951385296912060876810333475675828712510096784186683682556275147732414696760902234629601480484210048730461296912522499802092505200016497312154694773242459305422361647620300876016223487095936650207046588378569509120073686257773906392091014596905180915057174605539929020026574695094290300244734394296492263193417406953288498877934667596648168177815259740235927860857133234832796052506949149532039263285455932500249340116764318820281205963203768421986510746357132666467188049685706175763989610477002496155356806481335413964767894828125109190009756442898647508447730692195211954643301832956560642867291325385707850365146789938291306137361870328297041502106666142096398683171145762487491702252313426877071557432494629573762841152064808230632981263638713528114256126936245297013470465679003427807521872775559745251531214139643519493786240749596660647575756960290467911911201314737732497520788752078283955650840192515395047542606721939246528803238212631604586801197789788596186761599421209202419399218839017561992380198931085756925283542924762682521124982828608851668537712573821969097575858042800175263901316968312811636851612486980033206477212978722371079381080795186300639174395486722418051234805746379876644117736690988416541210981899515260115324054831645889984412767081563843681463679413447055525605459251169961577036223431352489309564926740922796799386858242775160408703980366465696971240539655456390301481102088710550501475366562608733518669143092613270710591425888543809781129793807997767296120586342447416488268456029274349206742959050346681378298979517238342912825295512788331584803591411197969570269172070662418277487984082468335894205275901592827096641417505878885813383322153881262633419776687740281997632455057274873293489266528564569918375644455022126510452259630964824510581223662064781419592750949955173043619802252709282464201129372926914769047530829085674243479763179484964788942650495733759520696082804231967391826021782128458117158801388137915390876302622312871836642326243874812193411024698755916647939449039056837082041872788468844028017913137205121740217270887388875908758966660382879309114202725637076434579603980707306872133777472066652383155696476874098990803548431829021096394101004680095218627719494261589320504187046128795795602439057804207558215090627698284016047901874817351276498000825272729015909556848986986903843711777804767369591661001243425895643481616440915490566966893858869299225306440146312529975443890428625453702980639339089450787572333802106058665096379763096241626896462542114029956330037345185295888281592679645305985304483078723749865540449208722162247332266637927478735199303392993504639293361974918638563377536600222759982357664390238502829048587819191712385406528510118576696761450431482282326273871893271081885279399170742606616995839373812266601782949502054675866475566283832649164360692772171711908800300042025914108267286200793908627084110437657180203685653407767792801232826848534128767172524645468032408088047807026845901805486587672360833642217805788382694728801069472387996512212628286576180567389265341444156556921286291762523964668991751777816799895376850331161883980529385731992241356715002657700696141921419779175127694413536282272893922279655627923622172642037570700282669255051476358060012309626872008792783557832080915606230085824150622345207034837190391025965147578766726087598693682018475592243833545274408709844265799082402726875805883209878859906607727612858265518739639983705039115462606151824262202211104193245845507965530914121857036709678097746661749198414529401404875545660263480595162065233317123645480488601413751586405978186992648628724001416248145287008293694375828399663412874243697936495886052912996217128665832320021547240042282815117304176064277208066511290744139022900315701698759336395710177554013644368939525767137711244728065573263457230705589383458186434017320460182491614187786102872776030656077293769079975165460201274379950770913572344922305330483293631441463063041207640827336727346228788908909644265630073366544053092305024594887684405781680886016169318404287229298439898448896745191091568416039344622492630388308560420063060864508673589895415734254392392146782466013190367806013403986733246128622753929028038294477747280460821655382528954902206580518500015657091184889624800524514859521201971190298778801677135192571044762102108232365842710753214182648348984248296215938731250305427881871955498161410040084228427415501291601658131871944416855853692656598833688843515165458035978833057943303880345323587562887786493521878831052692674297937181449544385370683832088298064021207731497566847929973584293471570013693163554271618469311148313889443578330736838534111905860097379090510467704322953459832881730456562096674913398162132509623236597657323820246326382253022491933780893531966136437910345085672207991500422964424084771049924857575206774345436763777468570732789997780865588992168809041060053360929000419333741157120515056644961663966437229801581892922057050570527233337543256835594060487647359582815757032165388491759215613282035657799670886785956425347415152100960285396761089547289620765882903785813028396668205632124700237155505095470748040722342875300591375275066650381077309115205556174178262740578940716495284054454804297838856965144141324222503121966094799946722052843390578423172684809885947355365057934572281461710243166456925113443986991887917459972621091023476992828904930803887525090152047981384738681216323745500466703030700529457759658143781438077472278247382995372666347906570260946361583742680577944339150717113746162750664325137275083614937496911523330653778957598411042749920900026165319833439554403375119702674098186217260621508081434387598041511673121336816333640868360216438316515553203064670801995316844701722937013040609444959322812178400695000581795733662876322913914490310820137558326817746661275441468839004656912768428858513826732049699252937862640355557829539658528528342607577649817058671293966861667759005801092051588205412871589449865553472810215511147918507655725216127508914742873769918880683646009639905321099396246300688819331250755159408320447586312476335837208846642149662651398263681440977859858090351263304609713847664975519841997136987095303615487188318696468746782100732785189262792445536832924500918686544793757837841989263780546976114172920795595347638210864895383681392724273276836961490357083464416545124927394613872385483663975645692956142474998871064478126437515910310255294538299406472520614702318970834204821285709657157668261948894284105739264433481791451005029502033784853906179519995249259743536214398165382288145181349316399926525871493770082756775004114551132115433315458854542788147038894629343290397254228243564942830717286609416650326493873869118699767085669075423635928844991849771391885273177937015900436938584040847534679858031901062413605282865209959822595088910661554999780225725936701211032569508918714953297596116592200378428179611562346378507222655594374693117113582452362595510700477188625609218373625474884712284219854165889451673448105949323232610076250425192925306051970396385343603280364571793481155157847741387647789732229845862122366951911006048150701744767192065980231233322543007175742730500660915158744486640338446046619913090411372873978433159342214025963913783919449767983039136075366462720522367844568477850677491393867174193964428459166348724959773076955051606294172294177709580149651205848293740594906937018742955093314733874944104732346289442012375865886099815667238668625961593291167192340807059659272446817757117752884116560607304979764302144239242599421565444641311505070814439005287063965388415381379073920035018332736388699001039391610079248213218120600825699773959675927524427385398962530283346666918766409623425260169775534014380651549204901980465925959456969494885973086260741568869889580350908884895202155275223262385261877719745509619357084139197615011839650625404046423314094476710805245369367538804309302449868991386623037673150116126331875958078318560265830508778415060599031336387567309848072773253486391296920041327965582269732400666822579202760357838008078420096326338701827548187252493330230422541492416016553980502885595918785543696110203215047778504519763981964057117572148859538254416987536599211260302955544629424473110664074753547815002669519658092058031621546689464283593003682305766136489466544475974785319431624077343812793219117624363225556367128494202943129277781433771638621239665436780945129920282909072054735866145342256111969658160016138468846831887922014613750314654469553963538174112425577157860963911073515016302416206736579111434856396785176305905715857173346729087153924103977054924246209785603094158676759811344102358041733981168887179645532443290445397507128341538089735487104785709117562691196171489828688407451694275966908846168574179796937848803236226704714079731277574127832679647149108246008324785996033812481393921248735911234041821342524427054279929116761229754040813158721012013900069437265760349275758379823100457325178399113477411820229609829170694481010433947835511161847598284517892259168963955359899853789499420223713459854058794662805117721508571991300528996569573333233607977530227440408210910517395426278325188280064180019007757854670599292780313626072487604498295165748684504067980655869603499325038979201074819786632198819905272499439333335405373594920181455268874203597971279461219954660627973192932915212169605952924627674133401101899849811208842473287400765992524774164679158860986985842957476106215570985692827860355173226544138843735537812826437760587758248007889574326582619739939446153590098192351960228911643455011744511622428333875593315294107028646738658043224609703670047926217474510040018177382842874380716915504876022475933269066056303676804643102406255800062239837426806717030181087713080859856326726401548513782473917349618521125340868117444871451903650242452926792221113294165779050503282073375662461211755705720637045657891857016583859445829838751691091378625964066194333207885274519644974582892307612842043918022749464755410296759877394647743703233384124966115904697371143588007536165752901517426083793219486243966576388330680946771471802994430341637571230451288797647285291116717505455234068616085113321002028159888514100084793793061266691886568995399051870686934624509203030184089889316948182048059207143506691274834911843637030541613336123793936548696134960933403011315593086029681707693972587414755048216991393776634490221199713214504296782154954434040805228215994409347286688626199663573890199970976491228438682268425905530096240122723626260218925162728849723361299089387125819362948305761713635825978482999966562827399629796572195343654326141304740638752520929302377252229459270673339860110689579918354332686808604009279246564681333696097865973031818455338054275162720871133109742165927117642664258832583379487549181727309375611872005134288673511368608780600004455001734690668011009909440521355628110652551295607268062473231899434464799889513403426004137867489592666599321998315478209606479955366357971567944061454304884551269024268671111654707508740750043564375695802616158819338577907211761175616502233917337295896219922868212507528230646409088483257943731236038288927823850091420008371651829146109661421255400406765005091844371204023446120503768956408529008801507965693007140296476010197043642775862125124442452937091112200297644272835592165110196588865111666608664227478128886033035903006350676868198741164056318135981413912319196889028122376267338027500560922703772001933120156089371433850732869935767703548395892751068375393960220925990711191471448231727901379455455166324864372752665817475565439515256128052273536250149112801960420798660215083020015746944011081946128068196932000275286296887416786727754762467054645713812209504346803261858051577846353052068336840132218802483423903800519419736153822130924667197237163213778433656712433395882287747916416038930309725508722304296255077007859735892136252843521313921799450811175965593168487688929030458127386984509943257289847021682788290823842500539767965941572464058034771078087628862150369189797754536984691550282013278272260702276839654603650618580956739814244120056504483724985162856500562203945630547367319526121849640694372330688851609064251627002106310743669968980882346694670468412279159205198358265292163354806461556662328778968980023908647278842922348772785058901534380602898093986315404237993228802318942327796135141159985893002838887837594082486648944232993377484179588760189046641895676761940299690533618698385295979631395311344219576087852158868718870013696359895954160434348148076034144016947616983525772361305982168434618151409551849358288541376997873974102923864204006365979648798435927486836993085772847315748547845240607017307532606091962630437372962965827159195996891916635141281230114966697729114794907695022452229714867136578357115384383267513777978560494025011111375368179725559939526345773610567357747257812343736430596471440735549997250020956553661024917519297847672683076397548641525758840402933726832439789932831855324555051981680834461624986415793515289708104202331743313653430174845746694429516096557121162792620534162580955940760364546063110705411840244260938389389388368021300777546353990919905634973698401133150416747646456291046807969166978937212779634719408753227224131149592221880857570195596905047222066401272447289689833269725045974482081437348323058620707469200467141573370530743951520744682379534083218228140090213000184729992284649580047943230918942088794359585200038903065036430550614887944307575283674889448795480155438930164942368462460610690283015265830726737529716177351407827564169038582687359609456354278002582649770422442762734465317688283176740975447662164587948871938590223325839543364569435381424053929942311341726293482735561389974451923563475491235778294786678433190009670730047986764845016322995890550603087683187591477317375208453365695509648960385769149678999880420710659561497092404875802888556220472636197135960324308738859756857328780120941423652914437193804190436810872614357664288900189096779868459566478786280530605526981092137465787954464788590417315898428937007135816329612043344135406275126649928697556479549969667249313571440643677260212391270749612377288533443982622837714606095441720017555300258192512289262391149844680608669540018086780821309609138669776045091677597237186187273766877061368305663813008651108778139849551338416813308016422280462087499104515829872235651942182031200858388308692363764148165379688227956709286062592434513818790606243000624930145262355036700776345235650219610429832337729001963819696912551502090075091638744628347749157359201235844503103325270921913099726710488485224752780726167634563063372747577246143686096158791937925259235580215685813879462615248782982974579436125646312698848928813027706369379919610730625462848293416515252910621193319610187890925722988475311424194054385105366641857849021189746634019738581511313230769281775858646721811201370397298967341604984189986649879035442734941609678766020757694905347283400593222374365736127572851629156831957184250460314415478713811060818162679523506997572029260113599235605618227526158893073316530734698065628846821875642139126041035894431140533152110830610553257105418969332878169446909395395651659184333648438276336049110901818714758157945468709909887640884775470620396094475392861427123448881308561283544244530805478240827890013711200493236080490535647766349189501066065570225135187660850402031524787456490067699481938513346340208310057230137262112198424022587450455205584488274977520887867444097412529989713980239352411118237559880626107729794808837436783538900426015926937228903143648911359969570115765020669372786362968113617234569173265426520776781096536283049964946394565658940766553167079863451156882076843392384371408388222864926321212596944354526516954924501653487500736969991029565806873255908539511874326488649363609098548252198084268894786923708838535667978756407996467857522196189753029743179803713695956666246576419482415766809151857735219508578156194523505741457905973083850056740356664038614921837469466210564199497396081170150860426380654791336133074607060748297610951567683901573592123233940094016026891936034914529460049508211104908606744242301897563994841577706493189679779309895860294579455828958089672779740090009948627178009961072311334238956981144159871982817786127928336042732423671677208708023095029436432201479480376990915782660040830027385907123291153231784329475819864330719977288440529114774739441932200857549940385771033485128256544018878313843216812250722813451086498549881493747294405373751830827568333277469439559476394980257015095304058649219963798846619771137712131158513732974940841375445779393248221757482095808129256616639057457078245120365812428893157243401200368763477672755805367646557412581696771995032862493785317078741739081793963061715804826389124453396087650281313872933184411594126081750904697270418303398233376598255014597584939460283283857155767619165224111287105375712735334036035286201331956677170775328895381850485123255477760534506122686278337598744508785169891462671986492605714130074747091630254211795940251890754257751912460473035830747239566559613298026710725769370469707310528398096091599012157469084745527344744286481669914387037960253299165823740052036342347183090400550916167600032485577616994430718920460229427483877123515288057852553019840596217673053747635116673084691318884137810406163232503799321456740769145960827272166979621555634142287603492011173507069070512775321961285312492552312750351762288393864313098395674049313642370704377212551183775690330071436467983049668768903180639056378117927372923471440106471358797545989228749105940390730511824710906053604495669345641291439508274685032554256069613887343968287949828868329391885792922859664436087450776105686843781082935767686121204033724229126437975882671019943808967708907627611018444222032294659846179082075449327969171016892746590319226628233371561308623938002462881770657254999145593053525053364863008537163597049769918279134684703398635120118220447701174906844036758992092031079316022653587149320329386800914732603446655496583754818027685139166416605060922009267652374728697331718912053234118046930104568694747503253584124929714900381588118751703841533630476094848644802853464021334234639959634444003385882204530652254970884847391990701556744598521702634086653553814789475093463243703844260744378937761835879668419520730033310806643879705356351391195307364346234843707797220029816355309096471996538576130383491340491786368016518512219914992893499854371971870208492293585527339401577562579322053573552102275783676225811283977001562211728784120411561594345820581115508886591466029963033506958772183316879034606776656727256632722081607968440651500036515552541170040712573123418192081373296800012832051608325205996088236791038627916506617275107589312341039659122929906220758688256152149020662953980807975607527128576920937940895913046550540740401578672744728570717418383579863322542146904029834766593788004645291214430419931898950787985529997184820546664088734384987171677635010735161454109373690462446354044747211798524245602118847731647248044016562946728957737222791313296778080073800756935906930629735930247516303969781949127191063063589679413153212539704227972792685526653306938210157536946667659254745964384991433062416215581830105722369422386945526751128064798596099617240293530361169305076918657565101222981811796468002926975208682703551261772424422964477689576679688308237928106349912167182719010569828755691456035121669255520443147430386309343807350251799179098173400068460740461674152423663681219990795425389248901350860213212437689648788685813414690288483981669340913311486470163243563106618517954890516811040357257081708601023429998785564566502615281852076165395428404643026689935392599087975434079512750484372389205321361953964939321661829455110935777059453184668660760430787945771604129556663315049645429720738628691057416015595801156117795279724013881622508974203902853518419412410499203847814571451025818999279341624456949751869291672369967138068778334860479450322450881259956891386247646215230362563577766449433671073759017893696589032690718056795287138593836803359292885292316353342272665832000282211160634642374108771421751289011610683055960050031732954787353219581764972978537751151495698045598752836943467523825777649677947771468182156281412748921399472061623325797643214265001128827581293041705418293536399942905109181967202619370868438186760739212925113881687493782962779633819014208657245305518050015190598329124689333794193883670370939715407547778037900756708853981417939138222096603578862589876486579381579329436908627815147081399083907703326898060004284247104839775026651774150338090878203721001711701557345037315658937554887850678666783469543996116873182097272316071644187401569768829182365843759228412238908046657623134704648045678341463953750965071055488597025714342599641819078349165834025331401825429685468240248263701876073744544500425680720647292137440945757947448097013743242980729099186360254526878933272953759037221058770799674786605288792120962699226741648492073696704949747534157930187723642270813388650467832176880334935486076770458635421630302877887874046164191234958505590556773053123082793951414175934719110530002727937575221913994866455797017260639940359962829317494666736885627736645229810179353305036452916589040964836031592645117390773474748308032228658134480825255620034352658432696146045582943838280816913254789683075996718928340861924633020861212492107575680566528723876194590340495833896789670233947179412853561685165024301210585291332320553428051205043823705354252786710828926401061847190835991225885260363913667555132930490870266010154837174924870756872571244132333245721477873706338344452955194956050993660381960748454561428401165730615652995346985002631508139228540739814425886478802078520348959044907621150834700595277297604620225514232118436419691286362263914279193835469682846125867425210011986538097454142387516377918057299662582682386692443362427971443580813266583975661132049775687019113840841430157254842139457933629867481649726874586527396287551523005491395305606142695063059325405380329618689737489158533811028340865435275680936790345052719848021904701598551888221852554210729096372699822390103741341669849191725069011477293903878417183890924382527167339198608674494125348046642448152881989907520042664482054686379234583448111579868857042384572241066663088672677304279018401442116746849087395252446490360381349514595720752622973182495788196592235741049446143026235060920967400821853878216921478527828845909805064294918721411915734378796651795630820933934076076315867550411256041378564225812877776735982020529524711005524154655131191996278138256377558899163931747018478184574109964459715854079418000786250295763930790885246949289219426521098340803955324790593306262111731509852308590204823604722261113133054766658072976642012044383802611589731369653609500437326961037998575371873168958701210590474595195746753707745218324753574083414207002631503782098286429473499713151663749788412715513358019283254842858636624686875925794628003991312084513449761265909396974750816602198202915611212407528043351586623384382222276411131893161474484898756054196057326140281013442661824821464694054037315495867669439052664182976551198536266545396667163875955889572742094128338742858303384915583302312664981989406457942744303512218051001880177542090086175343816970863332420171610512116293602194087015774275506563896570878478536518546408578748757072317364807742004198898732352199142946671480247829887104802227509393343163499273709576827537526987858871503488332375800779526515413778262999639674250107777621006587741410468843584906097581700315108448778606559475902786948403758693990836904778957937984510935097217552126602897207407135575799570394483350612198882438778522290219722734154017795488959803996815338186963779111517337637372295469088636397427381702928968469946561218283196543539597785425804021506847830512553976413453732822095954869044718744379263334447952346074137159177543889996240391200065247461915824200528209162158189720661544648539248372000254853972567222043251671278395313744358836288939405373619949740365293458714140199100549490683522471054161148392846578156163445054822917748134509764806316622052234893661852171798688895293941028696406179626595012546801229345667227409766763721096187382943979250414954551346282010817009909418478434145673913418519164325871925268119885095113813337110653433328703526624412443634375748035332563462921097885837522178920718928643775702945994934186516211918503232839197827628402711308638054137902202596274795891811685295811241883301658388869706283017305207608360940107745049854535335486106175644709290323679560564498748894959851761239882119558194164125739507224715138781464230020552557409071083582274553683867005372543755262612607374981646393888474222535561129154241068188996272274961719884060315135196174410097248889771004305061470043783527209503026119143028067678592098199213881350203721109980810982098133097563589987494571688958315236622401879908190341306747162177613066963605694508290367691348834889779005561520297171944097189592357901188689447237309690728070235541946533757434586677090877646394453137809275418532395817838757657045371158080263131651460655638570004069643428957581334795626976951178317208142784635147270534663530055427004181560388552846685987228670614037153533971004546904964276388914890423258033082541044174824597332645104269374026147459555363007846568243843881384850760084145171592635873932008417303454190886137072491478439167595976147005816433783698886618836895578210198500652636950502662150337927406351194190661109928146826415479621940409938656754020180460422613026899605119094310958623608413799434257909215370349775124024191701696460509633017458333181178271389372560273539844466238997283415863420122643804104122834897128287333539986514414257225399753291202186756714952257350629992207793777420897718466396905881430051207673946948956900700575242708910576034333803994660672574019255694356635876545586900118174435232575615194527462449669347289523046136197125966189625302933644992992232976391249885947877852347103907633722274904044169748889455753318302480121282716718315762249421519041045260955642559290989146895222821163066004459076846019189855886024478423536473829152023864595037197047444336254304004107031001515904986605134316734144656442691428500438358840038004840094060772571858573196677069607976286237532665035573831627323848538875146221555767396795709166993191623434022255289259387524375829386933685004481002086720260925989415087739262397150093224147195875626671597900839402994106683259899581402123297478034680659011472690988022503230461428653422565246125332877772399620414378180503071638802138422045898426273254097242353644547253457931391430756538218451991074797060945260737820725737750643751225701244420340535101199480537599696935491967673454949036188247684490173650758078474424406719779004831847076023657582247851548058628528176121162823388527387336761197982125313594534045357185420551247765559129312734442343891281128814284452623139670230402155322880565244351382272196681671912752454643805479962764409488367130837220136930144228060213635138422832491025822197089367930836930808879300438120454697188002175515510869979608650599023492686919084822086773060532439805497237881424199886572569077840721767323472787927758694744578461515802168379748317385560027790794253218288459825386270532424969526411558650671493818973046033893413161238449384021914959391042900762294885329141420323061175865007673832528008741937609434266129799729002439876799076683318316072955202247447276040980333982836216988862283218172871703754204021634944508137702649132530710759246018003711693709335751187383750886586274634546261576424017543383528919115625461681660753855824977414536223676828572951558747833767906556405713436674246617975372484416295606255050810560548972405413430514550060394632297291719407445513325696870413206584717774351135406222013313474536523540236377554473363215529415411973675842597179653442922529540517217088765924298722538322374087350810296587963752861623033663071868092314916195091762420741451301943646926997767142667544863876519370672221644258289391803808329842149031662638575089595999653935859281426523483100613805095583544327328126037090163410587484304509312791014881938589143111318728129734869521007250556791662466859012563786997492596124696318355504846618024820455155298762024766249915911665453368815954152900920444689116924366033679105854974445027414643506682624554110180345466833117201668001259391526339456644584856314344591170881811151970995201611047235093474256244772462656777329682849678217751962310970537573745316623146820113915099389898884364673169695218768672553082895629098573860579414920104440608897996918887408224330613486912882936749747526432107975865942925714684612715054531778364714797939278720435712157410393957253134512544301229575805794020013742411953144212300182268649879867736758231169969725644259385890366947576415524850329861875485457190154482204734343720452111686086037809256036884365838698174668917701810238803254906731731683545730403378344366318261421994389190950334451762463107653417588111068280778527916870327350004947165069432587502479064956750302499723800220768056264563184986615307067614908986540014483921108496955579132979890810578019427996510831696800176925871606137024603895705071561657619537362903671241041958225735529291594983190144097264644401082027727018343556229613781960840296994579527239247784865422230369216408880886983909348754500556356092774932792843371172540870198640134839692507365435403658425520179722243910424210785775663482540226948370583790852057907822048922870215511676401297806755202641346525290860134387599095133109360001364088509062617070017432477073429362230760286559513182390692602512530475885457462080281259714106961903623527659870188361817766124348118404254729181385850543685789917137155920911868958759365822798431557905310939276634578235074429799728190491079039127321867884830660341620598988371661748491138863106934169972855174297054096662095711177831493968380360188515104390395257011723694094562224587332698558256907874315978533722900244471306243988260080365178157332078217514110567087219374648748638562184434944432788058190325942667376292809932878751516089457138388721656066340725639511372184756736828117561137999774522173063001398522213796773399901925553802898723051191409475743286926940694692765708762711326439496235103679305152197184779852486512105278674749616213077574986605860678264309483612514232461425983000195909145595372281403608649124941586099601605435901693706816423806673077707158092873575632021588990818021109158321841929360756000946158266621512749531247300051038627955241913785158043963242584857690366018276200260799168187988916149615894843622244966895218793490736009918229384425499513193636783284298255504643072085838884195663333702895923171977896624684109476243694090917248193872536247482442320258105481870278429578070938911258798017346469338906563990340675550179180386666461303395960494900768696429378344670684793678429608119749164177681269500325020630492238664244921955855477229341098170256038593850013666508540579928650530267308001140717867424024340726648062167637664172958100006942015088173939277454333297140631446173525883295961856981054521633470807890195060179338810660368662717690229367816102415223110020266655060492736233146903879039032402198996869560954248295089182402363041760448125243117068661134672647584875042066571868077557550960257423429871299022618079108023883389843515606610773466144542752281859303557668952995624881009076880906225217012604004631133838980655730835036014556475593503746998967907990327309114333745356362155072298365628690817383406987120171653336551521702557962157831463912284800845961686541250576347357962431437766932896210159558778790855777998816300647315257131661274183984919565946123354454811994930875908873138885197312708564359897967798743544113474244985162537572022429043845327369323209185930157419004383844804225354210573682754083205136183530203135004756300373491226016941505728715609749872013916031612505796119599857057413180609127152108569020929611561829319117402974219593328723329895067698475692430957649985807582954285090770413694470045274438330499346326609086728211350141911072699346688854269871260825749560111055816549839477726280540787551843210562805708463202380195783963468856668455268741656325442960967516353015387347892691191298257113456233233675159144048871601694046802630203220010899515789979380251900456228883605208048140667549419811261199694216235309568454340666400712458588914276585685224961708751481640881929682910956386707326733209730527209583596839934383672700108331559444459781765523849071490963715784106390740816558697355703049084309833486513745810036697950783903902103858002303072811198342287941745542179851912468280595990165953647534217921696955711016811646937836852018355871331450464086259868587698790324725873964261059166605764292372273125693364672190756933329362864281806990754767225388522186740403089323124717575884146988356617354503524015235176910954066270895254784912132039647004872260283380743890479063570686958895424793842521487506396067908927325396973767079397720831533811084012841521010353999022311047898499335149896781656399656456199558940124717797387463436309484949350160516901389997435793618132214282598932925439967304392856613412728998067917881252195119181626685228234537719903076683767386819304429318860125520280662529158495534841020425939279241321386228197902255683502082476124110629542941674450133716549827902076956582545941685692586836742020194063771405653300103087317807207158234493881849897879375755665518278654731353715430225641875246484972888906762254668236074483625391529435339186773969394376669224453562785044448792376133743529488927099527476065133034880139681429651669299095445013496718755298297946094731657601289626006518040932150527344260461696378918069361240296091851357462967424794567391777533854568549386121310927444199547724200305677678232387932947838468230751926559189955226969803931500822797255506420622889817376067976364047116911033012755783221766505979009803852509339148001815197195841115681523752323004404357854237284233645978487857204599682277242652912851382356593760272842666029291772661772980010234554944266592937518259723933745114333997038508496809431196488786086804386260019419953257474616461798983221979128492480233452274875144551861749028208511823036478267412251593004736604947248029728081976371736081563845153954643407293601913453518871146637395480981473821183714663209496015064608308674372393455551381233643513053678647753593173172273317256519827699839900234300256452616790222045813905052059862018095029385282181895336147442667690092355713749770390067612294722984874080374358818684211128764852708833114185522812448081259563645155323287911322705385369387590998913569989990418716211010776434180052970880745888339311439785381725615433966920492021904581699382618838360783534144469827434432772933587794086562479607971214227057266909230063040643486369859797709982085848813716330160150110716260285185718746081302094205979769373012857526889538997082092426903421719397535097538256322295936967859711139094662418847631496042393430332846732929591173029909736773027127102148460300117262841688942182475267538376953919221190650054338658865680917663548598762514804803622278263939212510344870435154800886357566052836917248793189788846055454119250531099430692562847010986226292804935648399774158875880594088821684595475005769932178632815980313807910940240390829738737503735503644793490351534059757498671524012212849219739675520172724775721246213402705870148609425174465767974403258503851232347598596499444751654272834626200115699187550911947195622842516341270400509376518787228467799398891378444468304235491039788510990721750066249295512268266879719105174462731157145244688097416992044907230564006571009195872497575513242693819734627540448241164381888283229982190645664299473232323730906968000011677444199688279273566496663370671503138029990594251380923872600642341338619740806828816676979816499373539167818830895384164985589688821552745417909537896869753995377101318102589902692662167488257613607028566703667131351641798195003399890190737905600012751594113633252113979607888495913185176827126615863760617091295192301525708069675231295529642487604557331442962081261513726818238969808983531155151638765952478432849903019843405533210186185039775921489974754350369822378627420727891232148995913425438083873073532633067533960534518202948772643352188609007417032993231489385843966899521602799863083409437866181546578532533575620370320072694518726537193863024418648562423639787711712692035054434181862989794016051587335580422581477833800517790433308715050585090875871031907823795981882026716378846411118605999085929185279001430501012288427327056691306937156142992310758815519670344557741827612920957541039458817378677964035728937784649670482244922576750631901486455730249873483924010095261678934930615476016774262583554669780609258467167087082993074996388613912273761686412486194485791700430985603330539967917624121751872942992477199560878305025871405510570502170785152359211353876881301008877057531255694051651403107777283678204663032317547301575234833124939092729461875308024947639090386071777497810242282445758809891257279618640341843757180639353770893768478063609510615035435931345469351582749971802287869206542441132646556977652711233801307999699412705484465449889531114157345897386141638432430176551022105658812562578189654174931681808134133329549812285652511418631416775327448882226509046352041995207889798324443587104975925075453485051648872704069338357073865736623085615184152443768585718125919484992729584734808400023877228068679968899268814069684709233863668276296164312573761312779612505244198826828379529557776475057971961590429498479725452056179764317549498162237984092898673415944858458057693630338664796730670114830870510848679181921677042472154418575401990108769060256221337812769892954720184628934164402000585235656707670967293123761139318686940144099289844582655729506294777157554425248147841141613284854633805972160391929007683404525798234272029294184598898759799112001837409575752700349227203280765470562951042956491339521763896462863018299257314205049952032124177639685158567271552704865516016248945803741645324568771781458504787026771019503518962365602444150905843952287688463489494341442408839345538581985634741092780849731209276148060094373124028406538133518337993099417972452439937422552967512277497068788301375478485309267793662578799956690428710263545187015056206363115080891228330473425144082763683397556250692985330765448125275408512370391054659944623393765124669334968142018010582770612034668160339271234954057878394335207026308412517400794526494567075953201690539025385689625270338273235909012783550825363775913754883745862085647414651536670656426589460173328869863060940441978440060982564403758751917152372984804956971427980935260551546637067260719015790341347107993761802688000521627441395762412564950963739410784604046634725642231154699079946546747298736213942304673436271408002517289939472749254593242456318709192014636340535768203376232628122140159053156876480690833139664014503833302372874496331226318232838207787615407752609873243355720767781353935488810650627780749197570844818819105633322451164472390271323903576483448855851233307288268587612866523084402630684098963122152182702746221265740423684811939307849602840796850867827121995413147736112822309716827410650504289270402350411112016742775137422344897511730196802786549134590616283890926835343572715427047539359160548749564933244382962224743650616570329449817484497884490930771625232519297196830154382622834048835883133798596280193503562915722812585799823630367439836563167829528947643256886906473710960290696198952043530630429119049995123317149089674088137198377389190172291226475256288434465569354412911961925664784024351978627922939359332977000363283173352621992107543365360438302946365787007517700402659012265433794973565014232545150144434221665573638670922279925720600562039360297563603129937134497690581751497696556902312886247687383385668180179342835317657343003552514045008557315379862907286680729421774322803553205397516982340041555729533502093724052116787647145254611710902982000737296852949015628626215500234350536092378804993894913457847855533489122216398135022157806136447399084994349853093069330254805925058704305254406236468168527662169003828272840719432525454529863413249575241262923703745339774867063275342196438056681267255656183482451968834623998064745083146069985272869264302327438263669484886396890983760534452755558999076369251144230111284161162181520023750592768838771042651065370601613633119148112776910442228491120934162822448207846555837989544590937309416634218071198768514544442371207294327066428065230024083816414922317441503044467911635640593264859795424154939894382510497345868255426648498728959567377582543194070972529669673625164667411085521139815496150964643365832047654937133512480264129501039284964315900592418080306589752543549291001655680621868351030914428351354464870047068993941611431601606087111763145004315135877400162658867960682490487281670719801352484052520469772525318391399528066070232239419748020698843609852804568275464901664640270722316293832321794591058452065959482700839185676161062550113196525227347776587202788499903013181265983661388234671991169267134355424610381479707907960500400488272567654911947382084206829334747893768735792293602559297161243250406138243550277389879140088926596799353218008508489821009284043087036403340297122982722134845163799824514933877566407995304017716628943756046572747469354743016286315743353603638315501505394125434041686742637358894434132883860157314533791602499464342434695803418398849988690328294353451227339176662091028091225786603029647339503184809098596128184024207284889578254195210450936412702328246569983494335145982209866724247153018187460017705441804682618787907228633879619812632471620617299338062598522642343114491290040816855646734639722652912012955451453453039981592453433938525695614949343013529144825520559169632098752579486469422099820636711817502175240052258410969078500631002965714242995369191880270230916609972212405393633492943380430358544453412862627445585761950776194581499824848100503136565670988521322239538114658194948059185751768638177673993997133864504687424886302574923258481726833428413254411318877345104858228971366811168421400000619639223697084666876773623584192334766549399531323027390038819275324298523356218436132730805286193354305159846755685633187784225169748906839457972743596614490218622521405510185391394281242416915148065936638762869713768229608745568501127956102254917169110154788562897234857721966495601307518240998667035941629804642380893982710834946781383527586574466174065068040389430134563265403437052919595916786646943416152130729849386998771958750254392041779273830679249989481687453307441339522957277326032323512346617503405110992949439640844729184022651056839174178683859830601553563468782203043392890132879223185432893158199897971733493093404482987807958431292397261154921206315531701765416438927737792081311533882230024060111915033870028651570646552893895256790684556977400897904715320782965184928638999233632236611413972944425757908624826998857247386777380046760729930567266966613052386025849763582005738197826605453919294201900224645575613977746749669988263002763371859532168401984943737753150164176066444353393185110506355274923959002887422204711903111444268505388548699017433704171758416482095315244497364691135014190885973498647162639997086844271206736063658876271506809795420819127578616679027322805860524354970816227246219751774802274109889863138809038831377020860893086735369251289844765173451039591140329116307815894609812671928547235189635129293277297335408617587065673220666631245804776183442070088042395989556859923215495922653772523047386261566532411623586269031129574732052071205183676235271170419009149348046596576512432556775989179703097771416963770258759511743713885966762369359958157100215570104805616297764527659241341624610765430412310893843491099187841613060310928338252759501051636168337878121961791527212506009584922003831393841785919459864767747710750479460507341035952048975878775701221416835353414398622240317970727514305577907804323333932464535289847452008114792143084999185553621213998313064149418473344471320249954450648030925528895778059845593785706867516046170286760139573370593380420245722266623713646566159933962422669237281948340249456189743209113712389729691173210043147628434395402356158118592455498306580851011564781892997702255058654951054302815152870109513350910943646634697593792390414194183738074476878348303514299350680623840257687863983520459633469198860415469934122168023250998910923660039658262376081050951239174918650584848311910355884349616984266686479946893359322174536049954040161422017959216637736441523513739622914139552775020241999727028650002949075594484004749811370089155805768453761684957030097132058929477975464200244461166870120618643777731807073068218914181131725208504097771782314232325441572098427818885402056047330148212466525645191861852017753682035025991061381648750575186287875400806763620652732967946088490109265212885241513252097601909182403622685996146373225652463424957139679347540662857378678974916613703051592857218236883493326006104255951615629407218955848056220549013061373581852104289439225176941431518121494650996779569448727940747693617416277216936344133919357968458449560286817157657399169558173383905242446107776302463135240918168497692403238724241917529257852946612748165627445983407401023922092518626500243173803959407667748452447605037031725698442104278178639220896895668963312195274315356444339960532245600554179849917354195080279903492045003950811440519539891892483829364813433851817391190288227183443978125993013295079706837495840598977669533592986128952040438666348043836250228337954880633558650169765983880686170074084332901297223172186465824594569469260722608248887208818041353081439559754353265136238650107728562360294078343691817117208824860385445921107083355952761966232364415315711674184449238277797589612757054167681716651917588506640739108859809957424572342238588941674519557154390286438642142753905248125910784650898745539327840248522216044780109449593203743783243354440442896744702979777450979904515690864799151398336534164961951455702859108781395287320786321421502664191643167079742767587402873161737442476772739752969963142602028773932941297597427244979197221973400444218714443934352427804628919332362369178582768428886812610039033990185907924633594286597808775681635159325888085648057108141149424334790681330044020513818373919443488419034246163007892574112533137695614365462618045435071226898942573920157264410943709143293116701243918060510905112929430216149668561462263921364350512661929585914582991547626720223808984293171295874682835005238016966286778733301038264526552682862497989909002933346541191969505882495968401710600318706667513912936772388411726267413101672347209837177265370907363114166900926221704253904767544141168658588996105301588994893549395976117106840174152677240162250971200920984782750715987106313294025042548493506561928186748811815137232653463122482028218802572648735541097362886818664216230930806543899302984699636975405108644391086661281524316223593652987096208667502116362723327138319499953190906859966966272572819273142781772397075405077507106463418640374051708146052821682845734412317271411974957746830886148936172019366270403750001177894727136886668133178785407425583232774020898593291522332543205823817773573300521377792920274142038908018897893698838243788826810721702723136501449803764386753174158654126540817591153004967267118215912873282829768169854653513532311720224390192654773314794632368321014607029084187733605338058745043111127552141054972853142541846708113342968557382275832725958706343046174975235128562535964171675928389663514262183000599109185462823415485345187918678606827399271629952403063569263575381695575879210481219778795894331316770731722261265064265206991244137261688922642660855949435011703922217525152144557589348070704083877343129959094808184568373384205788294541218820580234748330772570035567782180893743770618736253444788330619675215654732333866732927921157323731736749319423843138608178235845765377313820232167822756097153880192703741565210244245053146255391396642400200083584458978645490044740140214011437761806984365100984273990704948477131325171587247926311287812294780216122271931814447289199505911760834275294935318937735933703214095072872088268907757674025213406914268817490641350769599715131398222603272314349947097337158117715410698397922532645325279382382283140095007465884346204516772723606271234271506899753118892856717814640995532662417066692215140350488281905073310325230640054482915372404806671804136122982200314496951889237290671762555195585099563772892731402722194766823798811268213098156164365188976766503024351640588123235502772046240524493399812210317466089442037838307816795845719606611333464364687359357950255986343808531732520065271737861457611968089559069003614043850719511903591949913540088092346062401938300106486576804978036225409313634615212776721424026748869328941312331680778761159040877276121265644663181854673054793914311828451382806296752015668586818583582962193262142404827586803810389764098351475691924826285126393552194036979888589123224730879147348656079350985108704976657046391446613840798470350071873280288471403764631369927688499046554066444195565754431920101636260437401302649616233057943951864806532878641811459054435440427711760640033830463474283726985191692110023385852885393786586863351889731935458104219917175914457983240448342778460849888343624056486517706481980900540409630351288402317468991607072168857010494784711328088020818270585249190652753232728461661705115458970910905919540382089672627435771300505846221045197258224518477221637038894540051243516776771934506887564935261276079406819289578444294873495141930066352290640205762982659168168785846279201801132199973657208150844789555529005323815618192959676461510863387325747079475598595911702965710123253704280932853612454710051727441819911517879467958091543395189957009640388877025394900838119712862197541265281767209349883578028695329618190878824404974395810023854382246001855768413707314253503969415755799153639688839209593128886321846229301018657674756080080040511679436835651320608300667526633260731944475581840268531065489208017468671419816538594896377866003696594083115702735740726724377809445793940230385489230839413514126927889655177197623761244886582414445099368894478878542631169914051144557173514078662270175398589007103714104335160382872834364247711829115865825370874418742581243474955942756302473600871643949962783899007849961445581118674064175187619762988185564301615880691081758920144911436192332774176038700568046841786929246907047270045227305786418197125197816883601535357653657771211082338779181736418392844412491324435898046992132719913082948780086912530815316242111584177513112189025489347085139159644962011555349550928875651280721162461073693720748837753740984182080319209596419217498556698614444414477878982732088641013560077897106117327264435089223747677494107661808258695125479223701690370108054046756868061932884397148347783865926719440071965813206901480866386767347015727393703312559450992671100634284101775629213667155417108759289077991818740974099166554833373094004408048650884536141955779353492971362553382105802672496264985354494213811370622915937683793803744261703783799331993976594222874026481214930247707633718201251881635427708031881465742315563671432457036538409294713946061329483840067017460744656085890233151212303332245040695675687542096827254079060499002212695392828491833569248437486257599122904722288986114693337718416509360378900650966217797897745540769941230592142478054667421997076440498828788259621793207500407881670223833087761068019928806591496898356440279759236193550407378984287284063371029622047270727313383274561930162000905626953384834245257070431294318561993267646262412598888409269695927675437580153408173926419107916592724602780429329509209175432707870705706941033461287011916233803082646086885177557114966481366271455429830858852137849970032969967637994822178511849337914849827101635320956351335965459941200921749724610843060499690539821445906207701873714752657843579132292117911597007830594900605213610697320757518788831584327014545251989204671014609781814510373185223789232338600453434280197118635222586754829892804836662962564857074482269352712092093514985858537093662294367740433061610490285123345492377633822260405943912732061093735661121556337913050889815714698721753576710623395479867643633650604375012930405648310037522612767148031593520893821656554211759459740709374695659968611870304348938664196503906128170128752606741230922384612488410724787214961451755929402091725946274567953544486066035888785681022052869135550044881888738782764511316107127759325166166664356653837647478633886161787535296814546539838931287100603886345413021951141311019322079659401324695713035102221126433955813528459197182431996706851406359631001918802181857977673076812903324597572631332451365740507361076917064623246669888362524291272678530426826656481193427536541842379077191024647055020617441887173322551951359868567480173585380800459809765742735665363337899796136995076429797575428118446642485348557154240881476511654779608007391024865263223962376045642025111929346860168224700193353855714857483029351325129636154480237047471595673134506515207685748377032891476306874410544662555913679277028642391570793865719052099784140690776814056699210577175168549551395562860118368144824792233875504636169528479494007255348920442108739612189546304110536808191432413310795369122479602215026210335472990871253672855016977709383283451873250217779727678981980238429913511370534591499839821623834370704571425864330945389459040585624146967587166341907666770987790463322451500990220468585323636521566789508319777713976961947844428318588654278870950757488665263001782439434000648507249155254641540449093235769551922272218644094895457270701010835766064485301161317595449224483158841894571372753216688471153866683694495072104391774649817418367232290168447222728389046021829855841918894129394217571013044258104939391229698849835377542187783111923071086013297091542313092873582175645813535007504406390581358103844418499143542637141685659056378456761413949621134853399165232966299725782288743713219451966176104055678920795590929252160821863713172141308142331109033567234169930735812972229930614382982842302776233119548090944956324618128092681183140214910999226821723080808501041068042429978312852021788791059623635242402006293754903587305764397063116737869508993507559812201060259750122677428439332628455841041873766982984743190943883913292202381462959598553617476130499147618652910126389304496927149235049983142473218236347586153260036459237232595737486520376799600233666576095082766335017027892870371283756391365370503257309210988271000776734124885840371954532565961245701768047512290854078080272194545998582457616010017149836545424684883732247177486278452498334336451878216227183000227473120847862274860495103374871185287702553797210693076560713883649938215503355539177777307269842283333515271586043904309650805895517431245796118063821006745916458891900978331428309843154399200213629596251652707577839764600190795160413777225734167831042833923582292801078473004760042933582822486029102737968767144873811838083697155556020993635432142133317003486726084308148491392762909375677063721675398586558842947297983547553274601528334843548055564926038072160471629059710316390839187326203482840494844744001153610531590019323068064955789947001608556837067769844771692547788799302381255315839696718454499401700022577662141150142175252035549236687609463297912870839958568417977877834720282795479526122805922554989133045148930359864083152433146629210345814624556531206658773214202343282638608010653613487278258912916920401905217642635130525579975208679458252638696981100194821785794100973808201647562376037234388044203319351747765187625848104298978538557839001191407685143552114448674868889882925612155917750188532845318286686540920639099819954649288093104970737035564845744640473902055203216728800913437058671038446335554129149034526987611512072471871799844284423550838288113012322710517282909640889853671854643960290894422888519175191205062011516720204870695090000715287316245094398971403188621184105656045935765446915886510236252807329511670591841433968013342213378821218189284917756207876004924426759725131249428365315756712026430683985537437732897605317291562463609883476391849222462630666203673366935564314644288511035153497196474831698926778390471234741291613467775655385129309282484984791979316685059215824497123953710785714633721173469711538394733765401673111604839108416634592453264835182587105762900160286704374699018482610665431364097232784747799855696773184922007318423722880410041871171968697058130389357538461017367651491358676120671376090921660273069121947986984484792857196587618876507329664204820725621326187341828918571869350890033080726984980620914771081806713280072077274704317131533035384819416971975989657476980411437869740211984610878836888530055070170846301328321471653562497415903649625049472860044622904707170969803655265776067578444714553371494076219421342380522069737067299942389688894323224290967357851914974766792822596509033107119086000220993726837039311511763805981225365832865371566711703710247289550910201521036081928983988929291759022610507436155128943957179957338620102975549558736245800508581444656680636962504225018573597132767846525721608373562586268932782977085456437338952468770999282358484604561867512567632208692189339821521500049351451005736061447260725253251160541144515312379274450335408449736274494993858674008207967734998339616010936322208764151500290860740060368253788282862295824688069322611633713577530867323053066300689089097382850520296303856688073911342099509457864431140000726356363489063077349315501372179988256376575973714491415296663259127517144937551430165336318282765234095421599137661627219788504997357914554157848087978843719410727987611639996966296635124654430534648263171274237103131644982257789696806257022914750205118034647137640693599205660431054473618160160497529256754740238554260972806091823178266432706660859332428615144538488587769915690919299462651576660103588737459005245419322343580709753519928048656456857062402373642656893248655197069665214578287322556382640228849511791384534773834022421279272044657922410485974472524185354712064133518423886102619823149022750793806928601539766215703255806103818759113970448250285685260057720464985933120444025502099447407274287953431977250245642375051172788958131210561320001131248953621048748051969170925103131331767251823802874875875877042441238305218311284991583605424611170788188310126159585984016915400960197790409925880186229242319887736770272136994872044883782941760314443939843526862596017085284853297318645156229384200576150492087880387077244324595729437535752433972456819169662863335259678227259326533388894748880107606883395079496506380705914770486318392133255868217716430512267516502973469010168635030010257314500802619456498061230861825760506457721446118809127273580706922027697526361219977814854411806792601398636789362863673178557438026437665810106080465315265716019984277092056996794346249892601479764508502775536529084440222032323306611137948342900146702264207925896553589608450145276306536697395978891481386714254296671075542498524670478758751403766747694666396562740643338585198718536753848529598438529750054110777012525009080260786908872102386959657453028382546377039726148665023377668191793745027791185620369454943657820763320656539680910624565348846982401534665208018926416889338805938426536132228350003497546589872939269389835270846321908909173933774902599012346762565516109913312791963396823019651375144209212821831646587172507418804292689262365490703260291710386318202438521174501697083888365258385723522011740871269293486010778663235461913239875010377978565395101278430733876139634880544108155759133224620037396659686589944117982672364020573148081039344149688132560687996962793453692556982670006218270763491608063340691889773307366878042526843856823365509193517950686893026380176375777941689162898024138769027230064395631212209974628160585274200629960807194911951473946613551698495840121824799118086686373709283738172316064803279936116747448376678291166767512125921845738647233383414566279454989351326963103631957433823994595888506751229427541280401623360624670333485823288477940624544246022138986755749073194288989975210694625869293608987567599907183119545993991813714151671167002586031791970535457932137940813101077591218832849934629259948569191531838712822357358832524938039405672473134624085593506333733297176266007268775725965912940559874248431399043422905437896818035830465173064842162739303210673365026128987209955202033699670622283103818606170630621093888429317392804605581762203887449783655420585288676250408503571046978883773046083438153800109964298127456885880262637226924640575880863849852327502110033024364031390781088268218248077254989271652358674803573372684338397049830719416029964679186280849797827058738330271857726460944793266078753887123387236762365704896228280697506574664615917482576194565751571907172257867596207392017808937035410304158796005483878441327562852964660801512245204397714386901873573513006438474435983595313330923268639123768522987709658987887528687583703026599156090430854807698563759927533072952541841630100258904461688941042047621999480464660793654481664865216289530600389231458811278534603100170496644626359462630604556381706805973724953403801103084178834800548330590355857263098602661446837705265806188054851901944432243855498901627873175664574603920130994145584362020221594039532260483358365203893758504701021220584757499289985270252915136670707404782733706705620716760430076488678708864717245929494285786358322243054137248153704961991933549359747178160045128937364810954711400844386235918455405249249239628049011775629588388659430605473442364902770226685393525508115363028097798989428036013142674578749190315007678749526518587802514609174493641184845241064883316797856724774081395681255901031151646165033693477976322422706055870418323650589760986450863268030417528387613376960454417036907117031184512216751648266472798830806733556814744526837244325149614179249355875404916473250191284754307005186045304187686915166907863856435864944456667423060646049823235927783667214997482382788675193967611818877740750362002304962617871638575899956274840519394446827060038260831256908282092387016743404089448123289223047599919452368513865820136535115803000758846873882680358608670341327429984829701122020382317336988935545202612698638020435112748754659398877389754762177800763767058162853252840477725047009046298586488941852972107704176283430982958620451747974969080902254805587579363416034405903702884467870306024183992035979983138479207459318479672168121167422774124375595863482431535965068349844632732312951852698258440139895666066705871650264459455531743688338646272750864234493625574813367710888158818212210156737904371052460957626958623695082986456455376831286685091199267554946617680870967566777010203931864738779521611837448096643071253171531508516136989293115445997189228015042516990357615189680365848018017496059688493118830979770072875543653572931317261977957321833938498764079697132385564529709405137255403719560994000039056774923659875113713011222220815168083198494935047953068565677241405135594396026716146496584138626751626241478369411910905015991846451537664315840344148495089755610497883573919973668958752007646218655336319689707140899851585467410279733367615898685617618717321816321676215432734659575293016332440214750266002457849493576825415359171089605444619890526888868433389035252993861785248030341761860411006199758852160475259814201127044341662772788466831978069738639257289540098821823627870402328841324501308683454447229544977313192157280593057635412951326285859033869888256701794430285607324034219494837781384225793284695112351102309415707334167560990898205274797268067915421372527680027136852384940205710218749590314146764951109918571255453029468562213851549022262354877288133659686582342097017257324812405958026129557498142527846478247635673176584418542964895212813590712845784079893146374983400183185918377793972299973142739100881314110346362344160894830829430146185895211095301048696083534180040959598072522144599931973088011532690901461779128428801968636691696767009633029215494966302399171670710846231923856890698392257708281721540529990723790680156620610091951263131661878096160061541881743438510074243893478693794129867507254945815005625797267998983565131212293026285083435345007448537591560256005060554420918743041100721787190076694229655788734357755461920229181403009297891740120128888729446674801963956090741507613118072448306805150403633806334525801613090163547594187350103050354595785587176043180902270558606640353862536650404372401115603986273855488043099757763604670792887014963623680570065730577885799587644294552781834955893235349156313574084274533952617678426521869039776835039921069629338103186808497866593086575832505855049283460018873760891601173432016227480000804867101878557768463294003875633334643860919163327901662768708180539949931499024681482014559983620190374138797943727513797357678214647638724357720771356823045677544432726663733882384784262475144822508452513732061947421917680522603491045542485739577364155158453708053495282649119884016144433193853760596318424519040685238622650953146482274323741655806854840535812894997872670179030056291090056689805032798105035165525634209911443079065372854906322834884295662230716927019824609796243974193058415883440105685039126770456203736818347814049541871792214806490183609285572829809178139058247381705433435055844028444938588230437380001985815581444374023174477832242686125478891180546079368490795501129354551390645278066424840801727197194129315194056915269826373159243056260643600360286267377752011782438355008757161138763817494134116310839145361501173348981477152522886593086837273192481372736456776565661474567493101228618979094568149843833911245223337754807434606968466832199667152475987594342715933242039291181231141104329395680594754386806849224865660660057303994763577770143487077149426513745809947776652105852777936554343743885347605321908444360029612553513149140217739100098405261810149129491691559503086707199054315242815363164862593381798166166805641422836016199045999367546843937125157789382035151417556351601516697767181033993698478730378022036935656981011485612971486779777951227204432570690087222171855232953987677813193835477568488629544900115271201114495599695152194271357695895451368725087483083793840943548708477621932103790318083141382175066440914357513401877309360705735114191011245033859246561674032504178380160290690621019610322189714615997889361561193542418995802210579872419133934492667860978404703031341072281331558961191682849402179300314217833867319364097291658066315946348749193784545968714899420128103080135824891799638365996837642574937631133981753737352000731169809455837444871588466144091087301526888975371367885883408359211947050301223462859043026738435786339174498169561724201100995648816201286219445213959425017187794882233073759809334644071144824045784035309603466600187692160782357005900591887717283173731847900706420673334670533395814130631614092070360697059743899930097056206784546395028979641976987186713597022989127608624808624482981425367148672174430612431745226119833256666815107656212608855914849361334218701212145671914415400877387613961981259618912313708717252565730751908545000630888419470284605551867120370537653184584862435486862658746985810322905711986592419250814154624601722692234585168532303332812056603181662086162583298310866793080623769059725819812978136060719981021985715154293448257233521412261533307310082499425603875637442048776179715518197347058764085318591190080516100969399200997826413850277556437960095521609327263979991054183358220390798842496623897060345388954914740993193590966280907965556250327334513740010651241204846751119984626838792224113743794625201093745391729715468431861259479926198553083204410870285323665188220591401642759198604589117537287656389792918755418594224503367659158013238294317606912111417880481800464948326400523456645447589361775643654135562121426336705222981246994949440706315891208785950176761776415399771889269298060035476066027925522343594479927950693565588697618219447066608584301120216058312748785775692646334823910307539969772526094494911443969962984428523558695108133977042801773863204569670358791590005948743672279194872316393391538302403700271872573822216279644755589230652094375134754592886692282950728091324731233431879240462286634363883505147357353070593203907888737788373372635159945597056034519099211393741058758053801381194248818872882060069578895959994591076236242390648477878243385734865888583713535209581090506792224683487432802237116767540994114283942735962636558840308664489538203004419519743536058224810686910168098823983551514103025293810290423001708718247938000650099603808168492315905441111064301316395533520429317224076704885050191061975784472776413765041295581070366429639362812014123407425819011999589159825698579553047711178648925344461607451569562171972289488128607454604518547103638207419939072341404323334717699366510959705165174754357057560869512845099081017237135861744134582016120310022008664592768494412782542921327052292772454938199282305256038487997686523763012823092572202569953157639456848684030880071770644439737002329958138183753705185732819236468083934787421079448228767926115648388297941659151627194236702413657894161877885015985753400142140907753603881159837221726443006520988653383184733905130212371968982110322638022524302950421386083654976194555113430360435301594422602951368759985341743032442290493019472309202422656948251489317742632267301377593879032634807143866104791473041986433455912706226427613754302891707801898146347437873030593537902909451014444643172784191148457196612254806946323409526520659650797260629755728987056904933813611679281594854135331605698436140840540833058790242285515047349323628812848117747495696809436653179782041447474925931976521038152226221842121361301444213010453734345734939888856844204089477576801747497516098629076696501306838978554961763386506128858872655665955797812528590311500318953320487181453502567938319585414375850475832507080072641130691299373857881164646552686884423864457530880451299044827333104433506686511181778566711337510150658520716014561945469162925493924621254578737718239333346864108213190572055584154563033882572690986326623131666596260981363819413772139557357058603803563595235824728109213161642307522045852333545040662919012592887891101077259435426988687637269116402434124044155868705521551469011186956447961363375355828311232937192192237244230176433695592854271217049233347035847072656312171912964778190841771253086080355319747629884638093467051738025928504183535967806334029600085273667259624801690486945051300262530715245529567177511551311069945631404134376434181120360762019193459946042293260654395307053927171457138386136472518065097972515826522725159039055166895722783935273053645052111282132227640959200003678777452659870213293353502710186558638895984177623021630301352018486796937516272728468210941454525926261346495839250203020734094751455888539301069945780714215198428730818198008110232734647283005948684996981424293852901212795568949981550395451750272929235682957302442485680537697827088904641323898138971120401426193627676951582032286444896868726497386061180119452173842662070539984043680135296327832287579293498076440063369972867630582716708595903425237817840504568266315143185151752660440584370214332806648574620313415312958101829187815776488652250845507711477964459786095567596593695763776205378242678025326563918032114898267437974058314520236504430844313544969552422810200333896211071107290533075073636176245566914521715506591880505145163342953263001713715234576728932898225962457822923283964660438466310850589848257493140870329492703281935391223415255386418335091603929401744567805987618694440197593547765870980342501200365032546648497039164093594656610596346037228759179696975782001744148745256956434407555272064691300166531728155589872483495442068991492363819116290152279332329524608202974714188196510865664432552835822050986236354097528907814070923624665452934144736647730228399091486508459461831192299837947264002056933040684597013423226540530667059652638843717756374477312908066319353919639860520556059625453040230736742103743339254315742560708420408598953995295243680034646166263624091253075453779140515854191586130492029870663822116531998705402004047515509202503219625805285832395308340891092718817715201611550523278993385775700371073164986879548104522272176217256564525222236305919997689759754858003687533717154575547708298959319068712742218865155408152186566942560197025797324386479698847545044532828752426931365948304634355905708837632378883950333823189071218290988849706344239990425311801760843045911414950662591425906448885041543953622398189675337632341002123877502668546068316381473009459536651174643452809980817961120292279028361505847716191558310056285381092639041778862799984669610247551760407870624405327116911300685267097439904687954613593635092176958373126016065793357967868921408533538030147410025162738342468200423895687567083576823189479998378075642391245248554550066653458703401890507529169990519987648892513226514928403866561090460446445723234368379180153776337520537917106672413006945943775832434465313315272369029539074358201785816816350234733716999190636737728718480256008631257478080769953460320032859726839142545941185564323877551171288090275989887153869833589608201325172149892579614719959725933089037480745186751018432823016580703798950280645499802563195101296742874450307654594242154812048828113827426055236936314041527416172647376416158693747132811687598442444312893945930331954406282309933036720356900948458948910340543153676404487314045725668090771885023423846464517168622921135130851897202784173062325830883465498962307927440422213153729419991886850778667888146852293760512652512100422649962569758140093166987289117707516702789413353684539569859476371505474137996182048006371195885278881610298129398897649299259866148955040886823602144744148333174814101252354388634047616437781744529753383924334113938853339867261383776169561655130146793827549056752245729105758202299999674132470070228074369485917803354357279985412444418631785708746644146937508216431723323721175639100584898850743739713370303491668638977247141384012710674864310306118939803720881283499177028669850300435355139667732580914249670787104134658684266673558836593551351894273926853591933076762778612277579899437159196706817698211393638274407721519576135730872446585007621622899458205414231457740892818999905128015867587010455902152399940768403029198091901842055636599407022111905554363183766722136296514285674904566906607841182272375584712775250756749274773781642123702741807786310679217479670999414021304562614976101820030366907005387975654514086041166846687536716957737951755765779698801262499825508741600998061325945653895295738450423473969532676389973855239163731830394236781631550406732907292072146479157978823699863573472578582343148613744698297523876434673600692016658134691435592068644590893842251598690934628364163377661474597703336739928063660987228640149504458060612958828142740462750354375437714383244372105428252370312570755289834316619184462993603705585662017230977456127263329627807505818752145862983983227529720665009058917804166692133614289028605448475460448052369948782067030736826250846384402772547572164394145272074764100367074384589543327121977911118194466286239577902102968842557509589385607562961747483718188309158742733816667028527724955554214816219223842965708289273020454778722634063852757366311353404667437430760284517941522815122363478454570751349477303260641072590759875945897983544202069104764449535974575757447660375000549243478820758757028965222440136106044755735604363743816310025409477214755318603348072426236161047593738629615859814674159090720621658135018840959190688049681711330141556989521488128596420103393380582605734783661089182381990488487658711663780143720251809750443227437985501857375842076549556011441976580632459568082856914618139209214185925733844499929805796002893306809542596261304741371494549669118609642960319497596467193866640988199759296442860194973266401503849493523972314045223275679729010199044417517564934199170552049827695755170675309412954028085871642775716668140237072914047012980014051537270575703078745032279832895630180564166121492462490030334263425571322357732706248720191357593807914457183314768889310384893912095419197946321271199638645285772117540638943067890518052794258225299272626472784317431345639762606398600079330033209358758532707406318686721774574482040762891576727081662612252616075353303256088384406358371746335460274440670635690402477613491673902435295572279884326940033053309965576014021144346082909828417381919139206159445569395199766401198648391369055244087087827769118154341330403902372425349868622323645090768902572852806197275248264292050019388920561997028638369282666966747028263422449350905079304978328699048819563334974585020979583269290490785383837936508484129551583800375764871236556373945859987486587296491327681728080385292906193067661830149090303725862182729047565724033034198785083655961218212883028436099341017891337782357126412515934658494141036696315989793890398832861219797226965582250508490987753641381010526572979233350212633445336423571451193183360259173473558853170990288651030829776113444176614817993559046456707696403658284467040438577376603969282995063198551617965650361789273090325910850844637715151948398607699258413395943770286586020230713071052877120541702754970422156196006021911253163770334859311466044195850045047111490310480498968763035352043185286120334755974459084561474733511453263651095874482471922398375015499464713973523091208681489836615289718927402223718061630012776722753225589318878307820569579777046989246028782713678741044192408256990416000154858583171362370542991206573098723785510166909597704363967189351897150848792025425402829611135312171308465712827442181599762068648088525481758385107514783999024153286882466175232546271946764819653227978490327940200587125432699545478533364241562320320072227555536530611697151923086113996287523330237771706694505980519961918828179343196041475067502982550093924867149711607393664966265427082964355077548320063858924773376559532951821148524315763400070831024563103623498938738398246412522182681759350268523669851769229399579632152696018131671258983079538304748998913308222584892600489349566105402109632648019543215069494667284253670544385151957371893233386042230022126103048993887065199769826621058812487142145101573995729994178716070840515658256535522728449116498013486619445960134383164456758527901309048303103080382304413212289563771067881748944023405511510976147864155924509757037905248090047000892646203965853984606494389710925382372387619357486358288289764430253416325539397361268491545194178506407465646079717620049657435114320469849871097192668228013470621442263146010339928755802533260837805064310920304480650168356564584911047726080247730662016707502389356136996691434566453479930506439048947417780646519740954094535485890797635115922849200765225225347756610835720487717546133319330772205349430780666545421208879875419198843998481524018990413025626172552462062361436541390258691078775785310238178149026226836221116461012137193520370132095220458048849678524590755106775284590174783081799881733856187562744632226926001239784945012146706315644618105621505272396647081948219060202298217231010843732024625618836919602043770942838084051703331336148890934390246703793498390065863540477351666050140231518236070571606447625533416123823786985258251532025006028709908521785917576728426436318228581881466535052064619925124326133056658542325512304346057020223074001685039855888026299076955076325097436397394593793074678204297731451172682324901005732232696633258514519092886908521172300652479538766081080419603540558853922548740516483680993220547512280938274184694547787553455141377678538112484725445371201641336008422336732420763343814316508610617920011308889726209608313336793274095808093725169468670358357151031057554225171906656239411399508478362318484406787468068235221362388590567313051701442781974445839934330486992037668755470599916216838306880219996273261323290833952388416815090737934654442748219846144652157938690866991918302625881087340599751634958746437228203924425240123337984590930186893688361381066241952783975973824393681955955693929792963921754222392691767314115450008988830073649872202993884534608868471431851490181863492671081553129800086691290130209253917538360886370016493319407382051317741855107046429730380125876359049592189465751156249918671036636968013343216956578388169593124713222193884682954812728642747256873018288980272596225927540094249259733370556068553513119891733855965437360917339147277723273397400558326814773025244268163356269200686009016413071683319214361414664157276320666550556812010805330507569738370804896449339806698098701189664338441072620227077165263328767665677136484407853184739904540128727276326917815754704252469161070556954863653905508793234088837710507022523871783425877610995543515263728563013567589200510587145436684869973233734258184694669733336851518080881310670090954706769357814606844855830146570170453461746597458653506547047596504049685938678967400057234484460221944589676057005541041964481431756622645409026382258503797568592543019980692242543185525910345877374400288750008073818386561203452373512957193378018355413305187841050338965893101257425702156681862131877980336050523992360946618262817717580607838888932064501508552162255484641731455135926969610603684277245271423267880970496877084353300534351496048404463251256225102347300596260865925349966239609531023265295615127306388434906408704559919584391177123208367181381472630745030505612348090752415085821723491127360008659661865854050996913761200236851977728753256851570573824930417061667103626071503780871644842170686084650047004810988874494941209609615228429854179960115083380756378745137567642939068025800576795044101543386701143887826406296291793689269654053212400576914758864891721603523027844852425102006607514438573133719986926111687421937719411486468114168406088041899584227036958240120800163540285240196499291465122028914106370241817523605210773653615401803777705895279052567263661206695598574778762498232979299067125405463124336595965647958562545237592149261002377320009831842446248369337305016486179253250663359611825793229178057233558674670098175335193002538917561695824469316431482589380296399706211859712420525847465552793218249595553688769074249088031129407186499552814407677663564395949899502228524960714614168292747200988845015549301513822793244099238059617133399040902832040168341443587919864400581862504013363336334314920399767861543847438344899294682525201870120832437394013790956311736982886819855856281513590025234666667569002623802095769749949585346279744164531878121952226418362689264276194590293438834473524606515403173125129106414415144838806475649005182827957208736738214390006000393970921166357903925089449108269732337720502384789253833672802930422386946472956854743724840806288092595961982668389980491973828774269039691850755884874425120159091921699571418921862807716193326452624247112172190507175650882245725087199774286513644681687699082971694724357835018175195300734308953193405401706999087643490777377715523002861329984712792598338350973437771483088443288518967134147493492530198490721408793662868477693006273570238143476110886861660014051490184546669231947320940060503000559846193604245863810209821070218806114481752426371914351268113764117220202004998613597896062637001096270055749661440504284525895875194183767447176277500764091743738798112421846725247654060617693211954307397151397817264370657750529980656237612833465426384300731284975127583556532929204190925468531040435380605763512690887513051207393028736364721798920367321915635255211076439409988729163107766482096261438310487360564184199788003095122795797754363610398806390586820503960638881664611766122630569517806263398501377684273955298144138338895122906995065572227132547847597643042816167692454274368388861289367522145915857463982698122769915225977771983297821299145081154059652687678995149103823420035920957328422219109959021573439988850827945936488926678175846270030244899526633554064627148919379350546189373605587692580454263444972255937525690666281380299248871226999551632668825344688482310848895464996943026407169720016952699975843281162787857744650413784066381756292893024313077853667676009327518419210401351112924983420760069235561945986782548596971352457408385747319301553362205553118880335056535097009272283115094556162176470462158771376894550051324713745101804737667522880682773858759380033487023235908295962748310774555284089461179983149725812315016966505888841543240409422661951774480078846280802897969452690525498874090976524152620221634403301650075473289550615720201688061015817598707904127702575217135597926736521791718634726704612632926829454693183622495355865071323591499132361017442520738156406145920106883236483076200714807644062055633796043725835987705208681553795842928823833561442496111268867180424926611063128490211797220793072800364263710068193043295798516433170661398718931731586578806992841900206683287750923993700123969766516024542581334840362015385662983334180214275497533802438280397360279857468543462619503979180718206908640562260237530616774254606723717759616021494635981490167012494337386387503221676330709318681815184243287503385299858810428731300848934875549082982260267543782246274919318926869638293260530753977788030064548193921163826251087746101532169607025682791602871682497793575129013011872939029533101102906107716635610343785827565906146430701881003892093448862159286681456250742679137857524966235920728364455259401197447775393338476174043227387950991987714005108481720170838083935091334421723108184711161238910696713029446107944503094703424468253749017247405626273507280921281442857595184459376006856993221087032459564869272121757650285633345728574789325806003823758630895533733716766811651122773100093168829144994327225465355042360645953670790262849784075065664296406430510372092554130292017706378454665555697265344780010061080878640694716429165950449304599332155684311103928589140242000501708747916206048298580166998671545521806536126080163532977353405595574600101582167664045874234921323456987742521630570827560352939364323000702273391251654606720430959011025177843943869301296928090704434349813939033847936098655254726548156185486155945711677928543744877186867171759834806559308092931753246843992665360441283831054726794682756356255094925610301566051460157636190763978661075228386151937184802475613375808704519199606258670091493721910991779815438233545983577289268673322149682580535218459947179759390780420087973522623531844932145493351774340102254998762463838234425943572196165260438000916498902663017714777339472864898527111033660747383083544794014832748736367063778806748655645675666661607631740232981313001460248597115235876103727428147919574474352767564193000955368206128077944219255531055519364019103096665832207010242040634856170098540699536168339189947024573456916637671648374676460461485096686078551715683503600168713819798088575293854650368060222960504496741280288094863554029865426313299160614155829550646590648155070753191050270622083307129843686064161503433425955038111016292439494023702774059546384188659969738810561396999148558670193856300717348117638118719004830005898009265300608640409735617167225511307485240945995582287907489396852565975295482420556921044190971666456804566702288524176225749380699534942832005928900484901952453908792687614463680537921643690119036267788967450531753673868570538017144225312308783373666952968199243198235062083987461527571384759097146255851876691070370193834039985662132643982953309826070999080568178577440231983169667291892990822795781481273921646030905987289057502767309180534159717775287232520931369597186868370316348665793853171091800993428752463037377716006414594626277434483301401467515439442104858669323631860926786516013249616895001496747858712762887297417757853398417720176319835275779196148176235632100585477737544564228718787672690487862139271745621326186982183229431026182646771656069689831957117422063370119780611649695511173014293626664449397509248543115893741283225454503890072936545191534028927623752005772092704892921875275547082100781467968188721818926594156642199522214702395145912053825306082702554476057987908010743943013033582979384103168445777509305559463852150426478321140897778283020171227496020726292561458638120393478506837396716767855568391606023406931467255017887402284693547229670752048445080452259842933496909603710493802122286553670679104905916950869045025080207732607323202089366656510479821544618477524660187374296004163035686861549862587879421017447157964399346633711464102711277995147814716659595605123122736052417073918163773232513815199663523046532472796710437590697762033642551160319612940714796916373589186592901595607184362973162953059721992053723977436046554481003136306467326852850039187116323123331465548040648933231578986619192710333522119003265230112518608116000776994226525014881800767139725807383628525826137554440279411668431817021886748370114489261338665698349108175261344014559218186506506079457177964315830939781757542725849214850247642508977152799922309678040305156741282133154380503405581947480045998476194421682298825492146695508543411120888595966002622144426746295690625918810744336254202964155028091025612020807083763973520273633763190564473461055749960476901667509299764555109795556090611668478583754989685303836919091565533183800079262027079916688387283511076813678285450741114654866989810446767674275635624755081073311348089987084516290145564993009615536200716800381069144199632055308011582817677074897456891646409682743670442023183007479888732503993601815929326803865883848660930092648396212902214396151156716666869763871248289842696934274371936372578236713476623180968937723120576695324543930401219543290472565033361905807719533360734580295938450770102198043098242728263135035862149466953531393645252862119535391944143679084662290999726683002602216460855287958649716134557661844675380111982003559510270275290681345186642941498259136445140580113651651241321262330045818811171300945526725412762949061876803647331610878881166401390612863217500735412038207221669540109268063750689439148761692699624682512696347002489693832494006666043307526722872226706503764903503356327553920824084233578816035017089709163086224469422536117270235170592844482335704198349068792072922617718159463698652034243224213834725319528628127176847909590130236663049080739957892700101539629352735159365476704594181264435751611123410847653912294747429852135369793477658722825230739591631783793004648353482266525087000946304317318928538428587333065610545626831426692106752838387911655873866860021054253664611895926657493524435487550263795190930005462535074266669127158152193947069732905241205484845235626251812137524154069194057473785495190912259052290370824423522172267121799719933609097026343411466187509599558381771509138780929000522461419268589089648359728663144209643266866083985210520740105801270413684207225392467979167485592799740910454398682808939894334982188771139772667262930490608900006507791172309755724257258398666434248300056056894744962012713227122891787724503259815530726721364569178845086988758450050745911957931227752982301925592481718616806029418820211647368014410679519525649670698837178162930643626513103343241357800562222942772000727274463082657696501521244360062748831271767244190504817017416656056274694335276156104657573693628114763078635609473067318918275648187510343542871952995450566365093922561362172416065803586725452164359818604824981834467939697140119819104558080825526560620868619718828078316259334578223208512664081663124957391079633708422424737419978056156111314473271091073429503760576110120781783797269820556379460809219169847547086458986199063510679966237703181084837241598936830553888765010745784280916793599861689334830008768038046425426069484993861927374268910702734040654341429696419369216511882358295137403927972544202604941029754177905056878880064417864874444205514101372936245355605080008961425666846719820153091470791227347999095902487765718638044606299964767075041420081075410823496538807997112105933270677890658374010753158242350484298811021754488247334689040443027303959722279727826698335623183252362012878116859812580750625056710598020805979959247791323611033941163981241858265514963649944257735676524164943626634333628058670877794176967993289996660794572446948647222438115408479433445510349074558195117855081680109354173364639953299108009135187137004284347883304856869456163618150449543933721008151502012896983736678911845030063429933053172324612381115704252550502929229194443875935825163730066690618602691463391408714999934376906277665903713390904965448356204223529883738973019201881163082671136998745812309344668038914392095713981110112280424054215755680080649511972072852025196361051278736897919411011238275165307571552040830251159350902758677046360424397088186968250452476937400686669545363895576855323791563132064122487560232227846380855417231366979916043702521082551143652379821463323992479408761421623366945217401216901650632122551043769090116654033156739014294280706618265234278642752810556230859906667742719917454547830943648093219384275196239029300728381507439078253610361634907543578805037708140378918634842199992366284849637703877374872790842541019342825424974630251110350341417907984055983675290990021598549713740766062074715378288341147677931457349604425318292055898946147231409865461823006891679443939727442977918342589822673383359022186753518095883322620336156239000065075341675865786234289844369351062098449081731889323540665002997847209824168851112750759445596859817149929651904610497545764858175886657872911017732351552325097454137691057834030570522516759284849680769535098930322979950543353348430607580868212423040464080009250792932903040070782162266261014194437193032625659025018648544357792751694777950908965004816354790988184986765858983469735688662470028543970347111079347720194900963972179241985128306702130037006918248514076134201491031815492161617814762640769960206495749886054114545611195529902702784711916352915984138199795072461175136289587736363478958836283755321376168978380167651176013163780293298693642352493539637725908140980517603197720299923890382586714824550702803960389111550362764493941616945785414547760617035975604345230512056010214974824789479073930926424651879650174427550328783623294395298244838466000260984600974342202598284645363966140690653394974877150212125727465522201320780516299563792830629393431607997356196125468339118872293803496853549038567446470634565386892341967808215841382987175017733506823039050897673248884433274690266716639389063700383974166483436192369671317648543324536060673761158586453357288381012315765626420319390255229629917153758271311587318699482401091377503741980253672565776080345769343997414687671575286678407182146038856791862551220920850274436500578379008189760185812898985430214808687301911270583065198915932595087289069711504935410035931908526374743062270382801403535199326879429513836667201792160216199076084073883615810568379295480393339328844933792231392252274594575627585870125953049786518650692852672481394376600237731571031011820478685952705881728811692632393062800206510964267434829190804756216699948769107969336821866141595710913082610434316527713677581374870894163358434238407428219578017256629222152511563180947798909066321842601898554412120656635876480311137206934802564309179057838659101380185940909254525555427264314082487748907789952378172999669277287723173075326620200851142656786267580533378387354555659558241047523450404773277561259406683628695337587674920603261180434310431683036081749172818416367963743371886622252032742426439221294673851321443688401588153751704602994358724155201822622942355464937589278571365184940800847099898216405970386075743273404053215178227440697041501980518725173208212611121695798563131474928534536245601815439017481330024454894384279662307480864668992073686402546026255883362850753573116850889721957637265349502905523133739647026458029190338551000740000513762526845409873593462381062354481873127525870694316962855460536690819023282092866181908086216927037926429063786038596090472061681865874826502863209991928880700593969637810614124688161832434295119940701409721136241028496578569500874810923485734261235196472209098947102424754095178605607122499916915910780487414108062529369963643711847764921337105506983935281951941237974800964333649737665932339046608385323632231932562186933765741818460559843815732926725947153850536133491510867974628207667541600931341492054086515707271799245402991315215904561855512471054449116037479818255458847284596524701440932086740404872131145561757325186180190420068949925020555690851468228500044877281308601597298285860538126164011186972819960262164949027802573234416237365933907085149730372027233769632918290578084290101128373046651937507929324001533538490984082942880271650174546373961576735077984794580361215906592198306549489898180652805616553526511357368551027506453438757748352593750925258234838403824994147333220010100882217111648957994623855007380118658630609634380103518037718108863497016021849381760362157826835388667200553023927133403029434540722586525225103198886897979258854792785913247320083747783200355066170669517021763116828404067580103085674169387007640607403529665169117764576461678973125970427044031806608657171945647954828885907942229540131483620978595672135423609448611207921885799218420631763608781554181339063566430629626451497930083896471953228344535610641985224004229400069973275796329630725509108055284168993056921189092553456995327093083848342736912080203896366203063418858527708185287950241007304463717756368817583013070408406288625345946322474223406631322472340393772811055435045070035073415295484602591915462824061681730332251825760423470292452612037717144408719996568738990263329193070149525137174653896248584013658787568443374862718937331183210644601887348659380890371918602537661352512287301050746798987707424753171932359092337704197573583040381201750449906344215011860660524937917778913439341253800236317799938278215806431567374260537550025572480657581428916575289047137118903895083379633413271792037264386057035631915376091309403397924343409314155160568401076322350609218953228120195440573487779822148608085932590062384337460091665083091475018914750996397861188550153793703319405087038559356589908008668501530173870777187634084154504289444602515911445335646545175166986310165264843049927500881718118957539934182389513261290528579275829290156810944628496290046662890965028161046587359289287026578655745522251946935447525878728220717513742972992407214667897931511830961830469230065592111657543762707841209496645842946628977466960935761876540110151762318080672453459581685178339510446976443053883926854755254187447475682760535120846494220330174904865438544053636444157689806798652621462863000331186986375094100507156850888173265117839073749861838278340104085950987560072635177294622359798428759435953743839465057539207559450489125422445396448581431723873182778421625202135812636218089687333786504096512881363890100295258394217384503920139670963702296753878956475732631168390450103158931337019651278094670172293239735162090085251534133290724552666790751577351746495109920067977180968718751661581081142735548207857744481289273976275077251485234969408816846804907978789267342782690120229740594156167174659099660093224872590149638916703837585512461956503433127284982387870827846081054556120736700932497450387008623642249403575067886886754365346697372687769215730848449847613901899774196069615751434404344480493052605925043648835676964339413902700428529526468036240799716718511665823711108519601785596465179633597809451062590703226130290471676953823971280013965231699697963815949604699151802397459211031763162756383494636534226662668813540324028578758729692895637559461663997343785955183868059674912243871940353331557649366948640002008804917879692751064809537116301526450078996852348301721804819846270850034245663362162161980708298124644699920373221773871272162734050460123649972204479927179163422857894174664549997949724592002826262345238298474695902737578508147897412430960219333605195106581999904229946633177780411015668754666606853614952109321070999216263182702936400749580282271891029411722323001925629966729927028476148193426155226489860654968122930274321118589658878681684010927369892401243879031609043957320845504563173968878847184808758217164022489889398807106324991557531491898229571633523826770130769746818348576803092225483822439796194138753571541132015020561651057772533669825881924609047236930167493549815431042982172049438711862950107658030601842462540807040004221579674802691574253342678276387250101660435464533211587659422022311091570420381029464335822105010621591130060382550408870098231050798045341824754688150294645758561768479823628118544160554198012730848543720099765517474589837320053222320248126556633316696350217461897876013475984141847971898927312142897740982601516376590366534845156490309536365370549587137682546870020414842183508201375654562480793752982062368800568234795417360051737898402928306952455898060532253580340486460944554037901025912133667952443450647858534880729744241519078943910854300547188626073485370356229413013652984534267202068068359107456114515062300676617540358905272232034133958636422435393556347030373870890731311337102002076035024657654308749029665099600776722070885126728439441273249253160556357657300462365071299766138362599817862581226538434335788421921871892830795622868120129094508439361185373203698570709810436106791493455927685926772066180679709335501626846476852498288409946356792255981780771859969323797284179762996792508002517316065896750248742880775857689534389731091166262278087133628498634762464188741419501815158649961162323232485519153846777756501907304272759591572359604447032268071974404232548802426988600383572926725201587688575108465526816537464476386005311887692709713648841644635305410349647687048778665617883853549828525370879791355378853529067056331296835559602361271023772035449339190660606312409506808334624851707156369493713831634639282418891015200014277398780788363169472958434882554773833997499156060105324446144322940175495520306288979261934720731466241115651503156835712563613812101166279463572731260608729696922804862442512557685003437995421560900560591113492411895322179711929165789125607569966929850504432288870844887778213138968848231916387229946095342583724586260899067979682232970315523840919859929757843738379610236463666399085759048787282243577886178869844393244828240010607797123167746676307468716035248330908127263900724530620481610338821472031590424795683415650780812324805832057921304985202035204435109299854465687662249470599282558192658937702574513680342226402641100249002596241790385961960586632575237210292661173128601217409860141414850246569036127435592523511345636105741326068748585178098709463839451829018217602522366478864606148694387525648448295807734745174074788766816451999611576060580692487521584314793810565645877504125707849528850083885196256118809030947825840077884206162873987972402804843804764357481162053985578801822159268358459563804619084565870906879226211546002047004974884351327200118326493860702819963463513621024481825767345170706725446962033186763830511571922227163390198541217807911253739140693796130011086295888537437036082772288815863108665264575804786091908407655743243851269008633247871346389581986862544166492731101402452969708994800900700984743944382562989668568655067544186776294078994329207283522955845855975929740731630303197400175066589081248388679803156967821256035158393409794405286379967470483504937906963861124189268717186874176099942188415607321664683710846812369434671154000756163680772466460247720486475788760995975536204626758315738023482183357868001224574240867039649500367457242590594051243965547088921050945985838075752531970953722823179802933244347848235408622689896451890485907911269733772860569996134220275749260228824857305916102289527431977747281982858108748258411973489681533461504834540197558860535464925663515844417746275465434483647915482208606473918824700543656756770223559824267528982712403670596185794649305718661550840024315401621238546562345850168439297554083525143675025791948935532813722023504291043553979559868385123491358500043109336281925474992111585148049864665688386230517240737070800236878936257988428610993724840878860963800102190482276442814301137978215724739021202991634344492918729548448061604817180338221887577121606419439763285231024256154561406778486659837344682820930158512532624032934108121581175812195628462718861845972039241252513954782799074076479157834251052444834357734135295204133037732444512620645388667440201409771942255830532054243131766184318089936736827419659126102113310843939786016867538872933129275383863086847539287540772495010967461517682993060883794825829238223919315634651708598473450525679589730976596648047967848482350611612417893959886366977069594348895128268117135299516354393822675584335634147084767351326938238881964210700167079255543112891801469090334957388024786663306893036741456008838912523427327780347896534472112700671694466675493969881201730837074249007717750599223080559728696179355921048125471735653662987986800291466406179094789742331603667751515662509970353648292342797077128016387168818205985853314784979137411069589854113949600652508005045407429308169771955281431079814722281765540468795967318804735168454316344091863926377872954739453874739396284691751993567718465044703252792903258924721860340881690996310103638449959193649931020237239659290199629373698890399899447082611944831535629489234577283355202426771893962099687346350958072185259889809463387370214393720084193661769209459121195373936495787278127472374979510073058460225767334401835636397612573387256088073002377086572629581766147795789283617514280071809825793008554189912923494342550221078272723049316182293160336050249517907015301283106688026191091070275335430697796140877679215129904393064629168637723794889986564249536431934223343826426846447477351934492394384410180390440560900384329345981902318325382827344657735463637571860830809099262276768608822608618295478619378189785619176285928908643220882954685252089228712421493648368390913321420475285212401733243581046159124993763848229890942500205334516312414300425803073211852569290569994341401270577694743182319768351098243745979580153901267788206459954950166383929180220696458245990540064155368412727659345269332575907407472334758085057618233815132609540102077378634484957200856430450266261436517532171193842261665955326311389823478774395009659228976081426365707204430301461932261881235498169851136525188646091321196466899114651295483994949336837872591667832586488505715066258289815743149025918612202458077815306064026822104118758858436173803907914184380500759595620139092310385426564508007550728597381564985156977276584456398902944987268699215175293103929598209036037220384174748646804521323161173665438109991325005060197383873380917408107596316602138543283871683386929020605728442324140358061246725630074914190511267054416485557362063923643890917096783468199778316369327991310505682675116654804947158766539467846982119143347601353621491457185726163964938684333785736300986550425038762098272324297427666217814425374865110814474273858171302660570571169180907898380433466948911633765923544418095832446256847768543121261371854409768838456553483339574753099776547270807103435838585868971134848630298767516337978953584247484628339121554850023763987602063316354747703182224700443985961553114949290303076800831685314563544489758106326774601027779810049543754345268955418662013413331751713676756758389834600115656107272578776825560058923773857066853537695662550646847424929802270086322234366888520533985448864829673644182373618401033107706574429376921856490643043065458454819111382834401465019349537399216943484991670689605765069356785869478622063628898223541633978685538194455626759346280902254099322481525797941373416733551485990187915349980688169273935301399258909156049007430272646314099172335437275152710042215875586254579131234228864311145219062147031041981499851762711116330013334050837200058657481639302463740085851525790143301778407502509562283092611548457288658823949603820904528735269712392483738401571477572212004796640753493163015102067178144063088671078383520687775943303235471178463826147522711788982435367580147756616652528589829667958122860520308652592941900519120918803944943176328833959846347070582516867179609616892900253883971145824608651649132762338549321199292297149264905222305030542728428404783250437764480286600466055918736357182111258996816912021842360909562805018900963481547475981315129544268661528404156178290920348962847868137349031263191546347979848325784512157051161001575903636789957825088861134982984598153599513006918346371020962480379410036845160508677145550992012099945756665616535105370747517266629825499771850929884332130883284406627826394274130589334466609083738783260556890415750113894697660640963816726923930001250281319540781283814370777644026200287317307121076274433120264581566424628166942780512035847631337280364275074771846515137941057230487382809344126760148817139842826310978665829366128314467276527123806151417403081633672164513229280546620530288496799826217783592877980281107963836631179996874761279583658642855749734037351717223279044368728742301358539995357751467337032190034832453908419295423700882856821067229434590692306004382626622365340123439791591555784906599300403905590679118704308233265025859649648094232813895930459219870719793436827950241758420139433795178189634334805686569284705209666721561994810272816316741250468701496885316584248341305433908619411527358413817270973648696762217543965492480006433376413775972335557695620329469999773793246218542591510214167436842519379561200059872376855093928589583365167274173931399214455443611097567521784382260581344966459959923913129563240204919281615136546516092596259401411188439175550485266808734624811183283025734350565019632860051529156022816133316653461408744102712222415566360734745086892589639385216050552289115290414802277520296696344922782006158069979436467781302935576170555970939136713868367849577898152291448713516627316854769544348172192681774270268598981557437922632001289155877445832548278425906508795158899879290160638565999693210543958044771112667637243724668164655378923484118637956367217222749686015366294053786751536849588405161372431399735029326515321799572424808505165863049848115442789728843367319794644673867109992286538608721990739781909764569872990322000528547276590639063486213412987492446863205454804398299544482496054029735248326505396228958888441246786616700639595673292732700791851918087518961907107100014257186492064457377823829361036677083466011995008612011670224240058284820924654113693943702349932617770836131524869314496369257876264569156669239676434496332637325978966914954595134133665547306967327816061737426071481859774322088159030696767652606107738200024773878601113545470306409685542946122471511318348091127823496201470761679264339872553393428733983538937127680004845898458361653354317864989422798995042495626778063509027895309261459831593471364968701047174373687162493523160618617319130491248247561554507322433544222098199566957379747620510948868827187452716110519259243106400723574712247320565342942969781315273666766710737451881692634274871527537479081158363417711570442551527614304758085421349135364306334619490848952741479972283546319058704528153876910845521694098872113764806315154213571813236351269711958074999178976105267408331973276083431601646180452395617687298193453129681955858343851229142625855705114762932125082871274975882697585099295755221130239150772585214904598570869250205468338788855111168254717864896672266997780597113869754896897639951156424236482133865068978368740626066132198992429271997093232378530485085772230033108524391526060803878059533166712910568187276122480029308344086437283984844882543080919457448326423203201016034039295423676057521625776419872881644971219278447755482588213492755071671758008384679917776471283779407672084178775101246305480920971534416324889313871081647429329692828883547911973358061852317092289111777584472306510902114432744416484904291183821833004695299660270917992213183843764352440166868207370027263151686155644417728315605202976006495922636251981464534797892576018928050203055647609608641470384980967424047639804715568316006784345413193586845577954822220525635733753502625037407361454818228235149224551589168882181920955816706458993157248677655918016538380527364534735979431064978254151613742090730555209630732515391876105663492129299818156730265028432335819857810251613283140047669647957179750266778285671599324661655071440465502407481312119540382799962070304032828901644620456379688762520384192671228316140096730515285838510031647221619906679105154594727282710427492050993249802277049903056503134675837321197513704743463856051484763935761708175487384025166546524820604692786391359045029510198050877559518255387863463759362918958431379586829085504806431074248573121966862167530972982022953242066746368693656487563355139096228102615708663626284617308894260308089120442759157590043708807749784882055902031600074739046483584244600364438186796951477344313965080147223764586969432581755555614974453349971782166796306236201071878553938956003847673079012948316689681925798874964308785947876710731891848649087845081273658022825334529665590283870867459753581912265282598303921226762414547779178808685536295794503946685489174087525580484915340525795257996967683730510831511811912411768350397065209902015659172479503010705936737209885628258589620633460579997058066336164397498834801394162573030137449596611073652253952152641662378504192685000805070132500080032424143467729443443670274113308601398549093062284598370162608859080001382470782389115683712795563823373119763536456181100226506392030994616835574880457940269534703415641107480976812990024770547985152717805044381300976496369654147281164498922535640302680910680563386459516308833539339057098792914495740660882319379091428913104368877510408300068619603757065196379608407145875090035316706997451097475428200161164855835554759926813866200956668489825950620493305067611364052759315457415574689024557515248209029979860992371722908536704732182569789601264466414272111567541278945001221953127668350309704195355607783969851076501275202334270485366511817833532180490794942075456171151581685855483234846746732389272222808286515825005610180907978845685513750044518357349204785589231628237122106715979929718628501813518010868230968095608574182634118132345212836222138317295245059674481618683390796734294681802201535957893413848237880615044537687815449709040248286223113491853262258373528858485863522816830505281842967278726289933905132064911603785624970682821021358642277954880036774353279942686792609005923467146065781563372992666875300828887879471003532969067627239249382876712525771595825497915704738368880220627303629992323726513230890227783842793501305211521179388547387076663790899312014325492275718536075393682804416905721145087791563379818424831658954044855747307471682605883115237936966636320339852522739433932892223755169178438506450142327857294520279673226862233231543225420501572004445795507630612693232902940044363094410019348728175471523204998139501051237200927346490580648647769994950734517954939173129156226623625776182660011787726265438858306614599656307582913055425887118679495196305325575912015201327228415833923807235254251339107072060299816139145471365753455389471811350917527871932693920521122692438039470267288601751097645277068125116548443158739880226442494344553639337946460261524726356027708363632487844536029984007102588832401445267433460732062269989454411256770604378774284101642959479658000806399350949063969637114178435023663798462027342276288553545620038243558465554449061716271230852948464550146868559735957604781279415981315196679346677786342949956842584959306085115727657289529323301408828796487776464974821566120103883864276108867404577547560027936405764798666210287269585354039368892380959258122133895201139508460339397458212777255337270879942247960764141232237463649236439029079245122887074340998175298474877409786358042225020034535883051767901348779588627997759118460290994669052976733763256874739892044234021346784708772834720384509522766246393149825446627433555586536088318161145610659653785809788075967206480080721088706910746896798069125106331073388844948301138740408922529771987047894916075162662006131839729653544966709016301533842150005131575393275273556022184417811486157708939046764542183055009918070446082893636035193757174719125536105852905667686278836044576001539584029680502302293476356244781735094387957105316625882847588713996134811379005462332710052449447188869928029168079190950796964357995215849901813695000774211179976053083396549046075257597049739884045894497770057679094928926321573846238150522519429088952130408037541773753416831879276153689140850710034613597404371897623218513783266350734691629221587193808821346816150646330479240251436937819958242015978029270431561989216302254410866201248910114653729008175187446585117777510010419620356681874932066694082328685463117361806011450594750366611155955860434870889225772978166829896039759762988981478537807488499395288109768466876723362640309983370423199320744280254510816132120947575960247519300253158952893619635879037651209840257066747440633269011782507876120790032241436303628755677114020993362062290946406567590184315292257698723132059624213163320388351725242039187664138816486136597472534820492752805723172210914928203077884650938235133734153062423213922164705421895035074469806376186526262845148438547904018581273600400603362126362776832413551266763240397367129241975753060608052702362269006633882567920834824050997369911274306430428058335404084701587604291991474071514402010617337726727487285596023883763638709261266528044873013187722483361901453058098034097241208027765517159522455531443203114386681184475298538401845331891583620735730818182169197529263192382762484624930509751742713022441673917776013806626834843546384975956602662794446151713357963116205495766993958993036100284009382817183086720805487942418098416264418997674832517729334966085841006829955966832044576117442258626371452049724731667388679566127394729003455684060666981802257322838808609234488685313110817111109469424190625196612801538293982036251613398111261885138665182257004738756515923539948145519795021564372887314204549979285246451075510788753761201883006089214403749246521050953430411753508106166144530325919510247196006671807860810968575416365299613034993103550937054933639173309987572276332387415742325555505261488834580645566081456512006534632544913842139320079755665588829072240424193460739944597128083892893781359961813160191752863145795519726149262273244949146672146279689170155064838902676607972961987262303790550721210161536582874413112277103198500410042178236019531395311537495762836493909172922051148346979554979843622366228509460961419494778563562691991734003239722261597204930325709225090131116013874908586188016131599666252999708261855720651596500731105542372686953978077911666314848197027140869826545458824070208806805910862924523270052090372833337352966753015152938275273572624059563951518586937502587684941409592261676478508406323316928548533000163514001734170965659629553958689432309915977094675470937815198015759809025435592573156172433759444863501052274262456301254508949803885953621481856120651665991731727952683181962453064941269319077601282896300731320736282274719593598151281056562157072057681386126035884912027880319601700882746659873771418492868143802423051870778166356459018421516850517815136550349616260017910434610071288268802968539356431094882666292634543342126095005593787123451101977285133425595759427536910312554759967568295715029453285378505898423650682903027723719844601912784136740338021097970355700583372398781275736017272823473458046153264741686630548339093267021478646035404634235666823386599544877909556165075288548981396363071770921362408421539547800328959680765879898496391091652428642836457575178590702875754490222823440051475080864108897861744539184378531894312794197448820926459884783691128742729546058333886931807418232883281410644424995958069142181014329827147452466559627282276280231596742343347874582328062957072794855455708183317368939829139712195016910758888686235123704319261025055580602923553295017884448179197615182384717764799865724231341641451058036099131785245237198404846656175835268723966894526961418596419577387341467461151486201600171398206899368257696715448778096391208158446122012786127660662812709222890314086781378226458644148389048521386073998973977373873721037599758882135897676299296929630818464467277388033646756279632565479653830829867818392429999729516928547740714653903504675521380632689621721491155075597182633205828478746988221656532194653312741444465110348047101089566623240984432620788998796245380812988550098552875581299972032002871069601086075450970835264785058464917875915473430532718880352967101373440534288846802194090276395571678555794430849828121304112622899625831765410561156662223233506572214071370756473581308151707782922389756808768316203258600087482654627693875422914850214926996135847941704829400934222286629638686118386472778312956158270026708037097410061121322578497643242699969048785423157309432492401775745307448684809381396313810523538832561169261807023817936375176309194249934514661098342989783798682801948509145226808252691775416463877116942303690887993780061494334839165463329849944994411922212595970553165298175210376528596770684856590283397589537142797054413215785888519081528204803762366582279727116170482039380734265594031843590971148706581558410945915907693520983478775928241985395983063101318502296124398832387870853179176142505320730114384441491216514809068549407560719250577886292381034337469958263465039897204666930052339077661230675274862589004982598987524389070741377113671826497741484308502166193958372005370224174541195513868141726479110427268575235726658225179584557169662659106286136432829035271733230774607793499469614749619319000378224965409599835766236665761245965397677694201610332959794060115819992847687587471534752081965079157167494380735805912700463026389833540074183874727423257154500666276208264949582500874286140639904452267454096187018907692446246087691149232632198589059200479100822945437841388450477367337568758901351876017433545361111737120232379205018222399355024605437886099090543824178834132828942082051625173380332319927209269838686941144839785537794690079325192012059466552103359548953293430297066470437837060056543580446275155164925810849415280221848936191364925325454466470794628088186833235192598370665460833707359673598273166677109162319962180101913072155223493055818885007409045724427571180355807142070944774554552790720364349003082828804093741153717338754090578059685838526472377002587185268077970351765346445581314164174576654007277454055792785988782080574372316663212615018434864650200701639937673770875780984545033099559534439021543943859773347993508733412915657596347792638604645439760299398725497129787975061320085104296507507517837700169419430140357348962967693628801652293762134094269097392234838715969842049245744872152096685867883073944726407152179016622488190007071484106523554838312440168237523296924821714063832003739385218747658608774405419816383548934657800284198910939349436829808829936624346030909804930437322723096263276919302203646909732821167913766452227307948821307923876936199611086829210040050667379354052581733244961471930548488409558879131402718255435549750411196385746704980028451455515285915095880322348922494162777383104299427666672631028095541054081822592148383417859512394989673708002434916741271612253672707816855685510000584584461793696742020711887766672602829697350055609658623328565967718401669995933049431001063430425459442231795808877142493624281337430207551931353713044982966279843682557210455663307441646268235509222979364666338645858781054909125236035831866081032115150720560471234074857591736584838133350655337792502138366148411144372548326551159795983443995278196415400815374768379148888957233850773438029201153788283680920678471617141124970243249247642259988861810194064358613545484808608269405698751168777640787807042639581710997690635673657238665094475522743221506541718851088635751490012930802862589635359196799336363141478135763977554821279848720831244238986645552116203097481227612737980336711188895721302891413274616344645249280532936869885274230776154413112123066168401491142179155867429440387481263540475505093248644906373015919627421263690959581965286717415299784831203499624138766901060099832719097677134677618411955655492024589158251391324686074230701204055218976240335912267211285565616093416014063551547425683034482649336052781662456313897040033574332329567957169420187481528005823044327536673710537404390673121668955246881897582454592437324084852613779227305069439963162309894942419917489464763889729863213919503050933211124045846145065711349789754059544773484874547196695533405434167962142663827551041339184141764465132153816337814489924235838867114397473315716895747603429321865390716186349905805488758588466289053869577895715950675212872560582144131066462589490364423018145940072694954871220708035372535689641282099223053916952428686165121511251312016832594896599351517439171310217813273228884167543694472301844050049457137963759216410474407002501267298931477524977663823779817061174179066232183648771854657493163317795494387080539388761547332330267788711452969929167863851875141704964598844178044536762907081337831431308955323676410493649857142075109047500324622571297554100716253554919958561192698134972471056417930306393772786390890841336921480937118585372813140800371020992535525971990126354083447528178859445085618291322581460399929878883264189104277859772678535967344621763708930143237991498474609245649596003540304328658266026288508239535633941191224112668098698936464425981997338428836381914218900880011114103942474082591036202780865254818850795528128870820991907537165700794554246614164769045774849479724801367258320117024175551240081776926202818512347962376262657200834682372628273204128374737180924780369861796881973129139537753809662694595243984809614544628027855878239798753196838788237368902781443328816376930378016013842330919929984894675745040408700597260503029084995033729929566411501623957983839801267528212676771048093351535741134725415397772915208309799163265958740933058769763764356252296070188888518167019236446913103899329617785961178156211048962579406608241098570409837539574248522393381071990576941990654204828332530961912409618686336694698190931609483796546793016168410977418719261615113428181966302405951261946305653307635504418365349397456585721605129747009934792957604911578083611073727874826897364111021966753583345632851827436745456628375104234468267231932647262521711855990956736091125162831083922285733398252801494997080150570511032143091396729617319959012236486187369565531110035454324670923635492419240740894603410141002525001920908215872931546124916258489506953803921058839535837054620342164993051099883235815043987097151000124830432987760174750250691773931849803398674861645813834944608944830953448886774001795041502702411350016888528114709524138169275353195292248042315007021382908543719956086232446084201260244634411975963448608815537199431459235665083274000173738411526148738679636195361039646751924201238735653587884114305602819841247134109518001155963606151539072547455423508189413947981152212077123482871453653138814751927643768467953967335250707958419409229377432690937061167068784182821560333824212799628004614141568708171548906045108951128918863448681683482099740798270806109268230550231076390941151971457456549587216647686025772790661224940204110447222163466349064347156862378877751653770204695610766104772244839585611175293043184598197810792228179525278978882219449697565825798699833764568368341560247601300383862560876418052395556090660579727148493844469646081020996975879589167075665571176265702442310161074887154046592979440396080186844796705335636317770394587337984010753944078651400536925064800785393022166367497308781647806116480106850607202581922795212164068695313236965598770299243837678429611284679308806486934798549335760464632365499702483783059891961430360966489593075481336008513487072765494695661843028028105051517199123035816414360071020436599790694247164552516671182594289986934497293653161377036458104142636096572536973258927194364151999235043483614687873576971372512196804163659029583500686501924484087590349413702054014859988782331938638374630709040550236223687307820568245694754143721620332981349329356988977547279462522358995944268198790721839543037321717908072013778934049290452198029334955172533109681326599060533306966104120557799490713751828151919081268404367772636369960793306943288865754731157776847305705069810615005441538123087450021147645986181289508051344049072243021376252355063494245073172026843879704812211045695221086520184816077643574679657662158734540159055247895770726084045386971499033765371919783478373569787458140010845933842469234422372645307835448612836654266107959506748595165286642867327547307114746180681790397903188763372524223544604904572433516426701664019532179716886952091338486393637530617798227809573302374649047152584833123412549783727873949914452996728792038725613638947899755802154079393798466614561798711060395837150513610145749100512347216643222490192780676348644109084579372749157117692532011666419482060088368641156119990555980204711027170791651831695472886471866976835685909404556424278316608996364519167538191399590179685137997452180105867801194827329592813080100024383026649504565390831369798122077749664894464352372726138582203244854253973639594355476390926937505754527263540036664917007309644070215144254542274797714969707679626611444348601927238245772752450494388864181795324373710194141229818020543361841211877151251109571273215349710366284685956400229238771517231879254053202738709253781489779486159654258467537696566887945002648313368862314000970637158502965087375466402772899250791240340653848099463490181713001807112038521874667141287723094080405524486155783566009044974889283187609348765411641114131022957969352177542494533024906104682375134532033147317459754125022109468971568011025097958103658625821578866579267594455772518283749874149361527788974179638977543365138653221156466701139906449406809010633381472689644292098518471815101627540403201934063000698791913956118507090255011497740518597008980840546436872733071366861605328065049525778597437467432221546896740980623785692034200301344482003491070667493478343507197714817253749221063011078068477326861758425003911618048059462984166556470294726004717284092562644859624345774236550851766526555156003959595243961260575188020870034497519483647650213875678605298430425975357147548469783512791890652658543381198607742034626773132555332913766628605248075106467070261201334213133402025016461487168030107702466894401432463442298703271570050834001401587982003648613139462577771481236067758190421190383717633931001954213911259315239318074520258309625978794328590900618369322493751695757181823814804937812782555009179304364737438901196219587650642466967863822382773066112275698187875945543621093735044724954517634384215531991581748394968476198801231373665476124401101788456427488846634598753544202540879617409396103852572334007919753496367227506341499287114838621623210184190781344273804659949191584449305398447260895424615382912813801744846619972850059226271953671730066115304792234925953811928400676756903222029670258172303210663915727565044081887936266321218317609627100228383857500916879320291160853004591145261656214339081171027898068536444001599144048770091271438918091987169252272248796789443346308638028342547004601709692301450215354778021582852698448240011981753429105981223664850174955209963301430121963349282858689180035234682305071082349621943075721929636570371203825187189529162746695470927458237526680649889855617307307610463785609245973049980737474630694753626028016105773047590948646021486093915884083920033536633981481496863330237562607537558470505873710080553757065002717468568335210126233598511965672116721943542878515399116818129679487496967450285507199749887526174396322118239605391707223622694579856904470771341831196736886844454652134774990822566070948964552234182212105944666111795111224779760330075105909057474989378376915080001044542053456339839091374938143207702250289106558049515791251922766283677503022249523647434513105941727342761079206710010659913324863592653045918876112353718669331102858762486915085969224327185459787461810984003415243809394917786594434503844158851835441722959549783000953815363307385335005830474353730440166049816797097142940973419255235909681220838528943161033324334517804204141673098869587641597053049525174757479428497519909981670486100184343322843152496430792691279015467865389738380772074462951541976161256777584480417283946246677880699389461252912751017624859560929460760198181105099397979739542233390936276205886407254327744543585225654499676401737444204167700546519376786941547384149337576257847961885555214072299745736036252503727768055521390581496957995639203778996787184688307699999742319545184198478981856875377932812028578749448066534152271798068486777279448823515641430781281755707248458179160378077220312496934871979130584624637462068428108284851004320954037455863366610159480421298668398119124451135792787150978948404411810827226831609176728604768681698234566598809503252381575824934763265193578351035123130567960018402604082686407372793193590881545113167852667419894293055812352487204118414991193422221986316467997175452773209272781604382082154826625603190726062416982458021160435502681814656446690332338704409627653986573954838434917292685838762874618016866275104500806966897005870798867623061484228674997327047723076545765610529229767424980078109408217902435941498849000532457183533498076393229289763649657102330332673203385462637263992427361723708229062903749019589789697300919770412108315587016345544870296658419875755107737979057478371486877492382864557656082550484037795826057548179048761514495726634735937499411245402006104627928234917936480645602892534366968254263077750580953671733279994296347909675753344061698369113005839043753831989290351416588019209798252084527948877808343111712867112315725118168762102589163435245153090240420168060779945429389973624133657683254796062287118363853717625604337744606387491271087536920413462557430607707426603558960255699372328460071618280735870551054006721259175321023605511983316308538248509832128282373522010107780654899670294198555723970733018880238728828496564721667782091828972423935661527919159330712905945963010253190169187395995777108562138944239221855837254571683677977753777820352261741290003432650705433997620633792720645360493361611954972102212284250679110723916338567170216397825640524685574858098171841221250264676599435329589414419079718547673767086855638725964366284632753363373961219263107220471119180302645468935652114082875163552681942068705325191636182991989800862301392375509501187469257066012093747309728351435167818833293483882938561352440088652764887945382278179953165587953310643934217966336838168896072439965029324480236160352477095866319730296112397181290812615768493768112846321816046169146490283063440366426585749331227148549833466011178358295250434284868860341886826608704436494787825806538797342483988907817964815759494695732519949457962745357218122662899626778320182235883557601720466882343628384885255455738640909867323964909508080159142388233146566021603870225824721457056773924483527308908713113971774012134985338839032049018918912153742538565003596385397958236524382767137597762267012997380847040176006813308891350486544453576915245412799364940151396476335792670263882230967552051143421457492855773507722440197390545866823503329496807261692655471232929345411503367687614633684570927102541901367710837759661011860792675462570523081162610361328613713833810598408318094419834183969732794892128970327552297246558303946341565674474322429926667062449634499928425500545402712754927152379411963246946648097377115824184328529783158153574690419063978275814583090853336090655452105069728640292321297799304288524064755260065364168855114449162093458399959342957769283399616903082902630058135901478218483931159045653798830029097675779217932051028452264221109466579287087941639386143470439463783942028257461904788633613032207172291373587077028805862629660144386435015949593744146395423546704485477540171038953654499092502573020820920255009057081211211103352579408032581186995289208102988655385824901927121619625314157366295321572829061652032557125190653463444751142690623064274112714170646192130781353547745956774027041801116022869203735573395398484485430523982793767071566051618044244467689621792997534468532998061570543784941173971654926868154926863443107118101145812189613026252156644249639474158721202626508724791987774562314940159696465580694308679438515097636372517107652055052096884018055549233039929515101491448064126980109095989764200614931861896624224771471244947554382188447629450967156442187383727249035002692063471084694882124728183178735847229804447140926782135119095537487991818558345087832412768121756858647966270316727401314117560706418205617233329906776306649732005966798274214132831032249139187918696706421099545489175749784063100496365536166169736414563030518158834293565156472917018506652120682867622565084787494767221042588440030223022212854209440727517344340400020007825784083199625503789187426436486692494299647380501516276903726677647623785891104472609741464898583437896780183658551276132413734265815342947608035625660841664186283372314761108582367160953041214082736496974800801539157166930338854237325363908752333975832917116097175989980964368381836819009998476989399825655263748407224375502689203724238073204821402305413562472601485535198682730438536413485091275351909992143211878175857067520637712090398245363886720438966540579449019995653733401228780333031819407508689018866501539102277618954759945965699757230687243564721217981652618823448398269027754771102464628920237568355315688916194805203411132639441982773128009699831938863379399362372353496215785000526962320764973747672582069688125830401714184595974071903501458162500566608018339512119445032022154721666656466694536695133658172245629167069646370233284224092883066029268590727486380691773278977468069701173741118259459868483046659962544564176882155734607116964706144241211977159232268007485599432645985134805058473583897640976515256621040791355081081451517695175991901163213093921399371842729433918740623986285543819628388462232727978275312975265106512712586613160376588549509641779060136505237355905487997960127234621093976766055700249255766483991036226128586963440564587613422088972247348052360621086603014244059093771162795463037926924616211602492233738454128573901070252938736735091328934281292696529055032914040564024201818212844726914292937893557076231653730650055601786717647474286375890656318445236618294294469735768218645996212668682335331169656624763094186269310370851164800750656143361400260016715842940663581954124207661235811999040018079565145802097319769878106106836894110293240635958325251916967060435698308788389161116167042151144494946862704601472878454202687711050610824241351616137394467041423496646090137273955525388151073316049764594035459409282865513303420880530115489710160747521482898556840785090374345293566213423117349691868363367692132687501559556295718606468846729409185147999063989066668440415540928398097466557285982149764778418756463553534994205346790178365388921486066323248109045616070443250588401156453517458910757096736607555626202916951562813259390633059830882470604828066509028567058758736177552384077359219062508368292969836515738170267946394454677542540830302410036388250648115841467424368513080646040434035994982603771608747506723729937478265009307087223044932418593129660882183730137062124214602994814139743868040865232825073887469463987811201481220541570031106556732927653806877608234827376502583913503143328847909730598937894358939984068104280346152935192260659201232175008000239422373490913703231757239017648239178071029213478066535687362660328176766720767534754900008639727755280343195387073500468146726700321110696814434328810191552779295900577351234543872683888686703967814855355506727608356004107151094303840606593825043306802535181498694378075357328432399556688381225598451064362291817074926014518665116241957402209423174882886229682239887597343359626658674282197929680247621361138755948595780679830114173581982265278163142963859454043856468190261246362556901081475817692260445093462690054780548511343978142630868102533559251997096793294243769592248263380178079658877450619381853729311184182350463542439247626265596787474536272393186739789699135034784501960704122605107420838035801212377551658319609715223101818594095212132916333276494813896811307895963971269918974499277355442549877866113534963339547623377028435281609009149782707518486227196671985383802589166627250933544489047464536456588923679088248452518840455823506772063591722605710059375586742508082917703228680514256574480106457217291708675738260026771120349321855392132299730482522376095790606896836655425819067871997102544057056236444152376776301826493739517598288758514910567925534511641250053055755929025747804564465850176406670616031525954745695510216807552174588235147552055913997080454916615029212063747951193232273927154537392355981658199810896829712284593117428465704755089873148535619248023516204419920408378454438647718051984228067895048745460186363931400554341741174238414825076636008236403178242257291896039839807494265218728937677503892874389069430176199647030161721307360330995396768533734212738074272547397207891969343861247093610461689658852125075529690562838576524607710629409197357683687899368423416851206267085351973435345268693805294361115063091424908085715293485193821607485306195223913197169306764870519592979138022714674103773879233543155145572347702808471489152036168133319983295003589500277732628730487464048789755352980528936339750967713939954601509112430311115585706340503638549311568532194251812568167997986166081151741731141903794758767914563483666481866937299030439953759629585080142979252515101452272893509184044412803758143989456390478094865118879568868499774985094362797659385510669136378869098886428398648598723337822535545018189955158237177637362906659420084329258120093311019995952241934715335590774606930977070449436486388535754581719903732016595270610170440369438936902709434734588790294169507397937404523079896409772021584241345554335052043445753742154773978695409269911265948943573702786328488374244662544670391591434009932322114227154855399021358813886218380681907949314510697334170020183959913668459756609668869008827386343516734542081373642523704660654160851185016688972904954252455278683849596986170570112877057323718793642092811629232401197075813562284600163227340615892383456356042819810028839111373304215702662590217412693394776791821812489233598963820590697409307357726891085423480645315608480071767180803201087850980501045685332403951967905610492783186357375752963853475843416615187213725984815753814180317426038476735986587035062281428897415331790830280008382221420229558724258845511284289347657138509837222829394768743758770409034230639917895934065730859105355713233274829484517061531096350884506262230503474419125759043859954530484222613918168601043708778058440017897876224823715479030315604125051095375930490835028951132419272348708244663065950339720609060907123278229780044963581577046856271437260518755280015046152599626602526964540909743747436130549247051906132158725643996700159185358577998737234448728878342217069249647143877576899985866596735898957274842668694136865170549540619561527614517634742733436886710927000599651631785811457068779017847088935564875379907260585873225278697619139507922128620081551877109525223002140277296657599143778695894353582739295994770421878852517984766466653737746600666144673634323170878720844744505357137869288581368196095867073194443393833190828992025283049239615990670359915322607390769634648699564477538413638124991662862603017399822901711010213501530615666223729629792601318418181988799367034718896060324568294875926918550833197276555097847920590618972975960964141759917688677458829107250541500288054473803143217168947008906233901441041486895906624955209455244447283682553253431663286579150702459253404137386611314904933583076495892181918453444459448030996666818082965952434362696930903358524291461165025404321453174089750002244532163807695191438977990419329390748477894333468628689937167868666786503283537468427005487295913454605047008003711280642617899008472809227739958333394223769385528622710453569208272502016312862274032190148399798098631261808468941434872160434710847599762862207043448314971688686516279602680185342607271035764317102934603454509663401524189833423833808433031659862310980938369040269841490529150969275420447080845101591934666698336532711917005951185067775334829139112673848141657908273493890766573653989869681595419848227038763657265118435863198632051552699042178788693400170554000771638532175291083341936230187959478431107172637173934474092947441808873398485067338000030787551222503712976582210433914414388892993270013573368316786254390380716949775473297957425003243504168426498694813828500419894801976764975791548838633035795084582560078369225815678584795597199420648185204709440727968771399419045289540067976097290208996524738330325426170479900550135756456931226544844137283545706143150698842008206560368742705409106868713569272028783592973673589192109160710536236338092471751969973226817492932123269600362779736389244608938710611586122927869507481066693991126474098251179242667380798293363369658408073869434386775341616937174439217047302510478442861225897684729605622702479505209603313114869084046083787343873909074512799107425847881299074426185094702249593313112122988102044216501003552671065584322419496445919167724088293212725170184478665437701543947050144501350080419275861563192850568397850420377151942221253175377984052482382075355581372854932987091886647630788338409248875755575163213401080650650673965595720401469139372801587139898146335382738016311252738704651163202187082521042264832724353348829979406204867841470486912862199931789109601800929574428125613974628292608767723170069951579123499180345520339554663987746456044292907781142136659331361846944711594332487807979212817767883226362391089208839922064061753082710439861828676901260988679090813219588514704656752247280234472224873452778401453434059403096757565057923136918981629118599699559876781789247446381088458628338513212031105049500521282739610525934794084932444257039898919334055473690606861362696120639335350396264686327591818741834001697130224906465552894526449676126603956425672685479647810948829626799342110367665270101738762955217600851942741249757399186666631193846971600002512419784349566027984319896924607972837778493794223883065178258817040566250797896188143412434306901409923499920523052037396699777012908188195383967311105662327649537662696584999774121364375437825467591851634607081896534941144832348478513409886458619764082013996914388476301626939551181638639726139222506302707929902255237016341644905096473046619388394118710425742418767892325797907550494124142755047021657539123490585868184371288500246455358709080733581637694531739108970666537595596691220248921267230129647699697836251216393584920143731079995902777262319119625501259752741270353821135386367045920852580461971597479255555202689917117394774419888711016227350982638793123114500980596264630398583047012906347211447598161076012362746427232538827421348170651575510593103716453243141238006838273553778442575807818899565932014682215015636767229601472804639453818097797963981081401993259131973975099234524075179988164719136069547859962366787083541674111728494566831610659576154997545744049163892960648127412875753231747046114347146258588759108048026946841197275805643580067621700830056660909372350830366193472310534917207385490873939505986490187894503393215450673218483477602921099831391035500347786224684526247124530055851564075599673981038380125474248642756438931893080917981155266470487383728062819505096841845837932012477860872765796641489521767263522523880356906001435704295500332311888054935773755912473040425949496485463545229014736050785277428775331231845343100657946881489866887448167283153950269906450738740838396356842325837308798210176324719223970167125790246322403073899832916524364096209440181116879227502059142357104407041905876362683371938872645321550215250388194759873179648893481484866790825873654760431907020132336522767594181523382976906207416136833833673253545609593318811289671022591541281606135108660317617707797218114621846829527922604504423602625661999929690401188233776917982802124920797631436502283511786243722938972312749847219545440860655905646535734272049357602643355998034853188808301897604328667697517964794937025096640494628078524321675918592954278986890494079210654788696368616281512829101419891615702089372353799696118657197264740408008509330453418117005901278918206166715055551735989498677084356569249692074715816404393170545513407272069791560038565301949249120402080857601992963769082216539522615371881671304818102327498304068344140376224495410205770826633301460875245728461547622256866679534367307907937927159390243544528073033437102543843684086272317871144295724454594774353184347349124899090406752801379562763125762284391905417610823184420829024387287247626999000247903691428304182350598133690443008618113808550419996736685597380378035624505949539597956148612942914408387310608279473450070582051147676900595530146768658852969125071206214470025340686104026125764150571035888732964093633402124733822459304723218743005309060874563495218751687502317249779648908812666156450304087715123995981455579780004983662748984288997833988635755398366721647443761699020004938049955482451529390922180623205509022265356595494994641367014565971455724664340367021291737007574821680130176917196518344661524369455534110850593225331978817413874493395872760247512792558018128170050192929875994155442923037420873767880403805000762219251176060370922919436786000518102870750805448133757651835240671290940358283671234789683261366344571541800712478683039945875378254048971277740990665118727012365583387513508590958005114686183433067900608427473539048782545892378373847417639231403862435441076152460568217668266824400636738276476153041215557343453579740954588293646912707862221465325035883284483959940200283027398395272785304889915230825780521874474304355856965651581287954188399510449142029462629980658515717745887520746035834707568887060822234291148535104209326309627347395767475183854689111618892926024906458608146991485841475453127778351409194116301547775848916266936974986434635970992899546604209125731236725640591476971221335553912271590573354233475329500040743822789434789982499142703125518824926264154566209444730652675244135576994771358989033588326935894905275222556528432815536898389879572639153227435843805840818649119528406505656812107220049238974293806179341425869511333396622100054769780707461236163542591403673945717876882839024188273177089543304675272541665209311398049006954431678321791305451239292937555717274164150412113097636169212453537589405147679073312672187569944275152107983945710233364051386129056049872378499984525386945438711391755015994213046262447752928969923128734777274756267628877825138966685003628210940853775728048691765182633198311125859545670723109136072621164872455723218838160640209098025494381450044179924489927670222325104335461704507177137556240617051406954169343087492481950568042544897496666531745677970304890524665141025023332820278824200180946520256376606168661758511963330611900242532905169765640168381385191767185002646514648600599268128166175944828057658450349725202737955966511088003184713232210231960030845339789252390280089212171357893534140657704143018226665860369377406075564008114428210030979791184127187738274238937696558025692934849992448779581829780049685810364915547954398135955451125184853545907281787681474976560008512892911290966906258679276475761164221912106626287842676220162829425186593384984806237406532251473881497895880177475020670302575992742694048595338077152072505416190560976114227135267089495123142097116580651442376351057867776109443147376326717866994323404504158578445526192398682004422666286372064715158317031519034111374800597975105851154423354383964400724528811754899698625782449266092358332071708724488329374424979490499182877622106606180155837856578465863777501772658417802026607488578862809902592330519964719705368602926653023600672272035554695801681301602288325984552244933079424755967518628730948982999585689709263699624259254988808659918053594761097262423132092295816487311801860273909424047211180141397697512646098649896471158814809978892245098520668434513297319614135029603898274033501469743223949130813508801580468033339762341769951267123143117842237703191003619365949576019863001879706445742035016117935826807668406671712226359358880794750569523106471191134146118499273465704506029255143570452109479025749105552142292518825091683253298121194423777598616553954915447331557566497251663412728287487695203517802022344482717116852802493037937736475854555751672231228056641384980024749109919744048879055565854283730328765454637299997255875162361796948598128039184618912848546001401813582292884669358720256118481239228405223221306059999875781278311331781766754387110931443069833543249792077679328111927825178906789997624444297459274034818041563158292104635500211119249050165345768063788019756634014343927425708311676780987394838686364753896437264425546405089798580151594728859780062101325334774496205349011149914755083849022907898073415360285952019465576118770304247172415335034174745391937967492492853369386152216676901916714108992086011428619038296172486384391403347340833909916955380454056905957403712989699992787349756868116540195695629427576100982294772639955537186418224267868259996165522152734239786696279267010873578662414598923534569324521538528981320008679122851755582912065383967028914088845399465731680565755237198046358525548193034790397743370631995307569072734255715998340592656593604202023354640748017676553600597576400085535014663617497054583792187555020343917760380048150572716046612803573920907122864455867893640256811445954175521504084807105351597775536141680551291149984551200851928493577988557289229035275033069441485185508711856434279713051859184991200904407261837043455725663232484851045266321503957966084386160408200769877032043484880993436338160618585929495311686823651484645443054427441181208577938396176618187866708273129300447646452986531162144301570916091127762955821272601469190163808303390608245165731090605159439814540226758121918031654782004240530050272067264461114143679013678995921597633335039882024555713531190264156039759186654209825532447214295658187976433988383186491208619495529010736346054254042286062992930102154462014475428081848690345185114923938624512056802168870676173250247053759552739783283582453743900182876214072423516129011330737955560799533440965730754014035632482492381543324934475701542127596067789344335752256949235431179118440901907093946619045631952799612628438975639444403818480142635253558427210305523652304281087858250855933422503703089298389682812410321510563764440655421384666276906719497265687467538211603617880907293893916336482579868039900779758545573206495564274127815073094159775159977867729401721263439666536344818763647757086337322680405742990831354531071047386605635156034477992156836642975297782266985739489758982487167828996586065875472511191005568494756787999751673178390113306145945575826791776241891992656143699422506464686188544149922856427470347583780943638545973080132982508562930748515469015086875852059525115572519174929969920075879827314745117334493822111665899354384130452021737233412116853514814622955228139156254136499775662809628614836826110925413556509266192250928337343745069750549322154629878909657328059442231919501927322875623553927819804849570751834683785787880932540661142948452050184379703872938926197102644323445218252650362138348760501538372037828628862669654749031679242634365250410997562938943602554477012198567934669156752307888790597758545258238115601367468338359098159393371169871366898523667474665666515352250687591205520853653156462185990747874372882561679982353471869663301042548324863321384325433886544176491509248645583789349697481011246612717658262462461347825862582646919460887574292793359382205692459442895804058297362356236718925107225060216476802814050204192643517354664987724093439074418208645160874357392068159697688756610615100493549557899952608116943231955036503162197004357367753853485266007136010058248249036579624977909710094562902688102275829156663499463239892600167952025055521300353753754566152638326952512761910052714035739979975802397373133573992752673277141225953645465778998470447079692586312898969066705441851093239912094795140882972204216061219837820538713025238389923021668830529367087917896530976573410264929837731833078534033458242177534062233816673985855883320002574021801622608289766521028868276031229381916459864735913955813653229513515082972343626718971119402095425515141131117162086334488617165379617239575972157050230806063630000016451351014095388847868250263702423089314579972717743752035880473674653713843757191873072852363664265899402662223569450152177690758740625256200386035539095398977639944095055184012234012616580989929876512533948687729278996647934477124511783580424697797281067583120556411745305079043850311357392695521141124971823702352030278363440867121075958528084483851472112370025458704857505885302794358310442830683404632781168990793678839395715093309633098892372446130069042292381113180130381915433889693373108061464770721711688379452772727907643973629809193895588129738460781928241170783933829726787992585100448077584038909216495054547949599654828714923893096111901597040988259433830183510700730635904594078410225206788689192832593111827500367873284101778591034719261664674813543559274085165895884439859532103274499048314267776558357582677056996742676126032793993433222543697059344866795261149046157612145806637158238099694140945522552356088505987631265577061469209854477208239258595409670727982017746441665790861876991968537110719426253161444745535960591141945356343251684910145153264254118005827809509730980115119981900909614604326367525261258703277888321568727747867983886631717360513190564843830571513447932661214292839021989873233376079010487750467666531534829764707168518286027690098844286890144010603451564432632703449240267760440860167070576875921456029607154805345083018273930590995109492047557990685073085081044523549170119771358055185145801774673022388272003145566994612882770861955288180348643550617386638002610748201978521978352706799249107047630334828511461877801221506190464720629250999140755737445239251028688618579804150157604081288441218532188532303008193430022499847833650002012477684488575639410368892625485116840932945645410796545632498405531529699919859554097705766313111161193004038317834066117074585449867322607009624995474832322013215810464269112087705908354872466014856527609093353597808571781447614040100166552832701381028599899785745111751831552683048160356958780636864281024526274406969599448157892230342813626412443326629383364048287608808757257993329869396600462755677984876447511336244121140433962015824825094549430095139102831941676605378833967474672125723760809021320410476523947156741749624039227721739404277963925861298570603268612036659589461290480406155407037845791303918266161802377863407821235834726356403665322558749796068294024978246894084093321279223228741018327317329699029031420041238669742008356654561149525974626489368606560639916745103214771840875787369033170530526409245706386294406567276540660586725207381203823920284779101056458274529743528867664425599440589722417546128618462874212208392478181470222947003024312615629181327552334859851325156884907797136279098095597231212305667316742346555211364451632806322528782165849013884319402093313353172496463530111691245114015811237182611193610499094304626916475521338698828817882325872519389422349245732383203429409117461207864192685045079161579387008132404889913454182813347880306259695365117132651432087630804073485714528756438716050530943868215463665354716492269667270756848341323789326162074060649133945507163740544799040584529062054707657002831123610068729410616531209518406401206486370354028808110120621398680357860641752012958212277983831635297502455698247777112751997576097236340731178382597119977134205264185419483121079487219893423666198797659275978818280394934601064552528371272411003916318482232225048709569928318915085474664375709063137042386202661979953764383020584545904736979320442837263630369839609899999713107928328968172376853528771358607160850119451272721746858924445652631827462382155741308033991206768716120666124740997690796808442851572939499648919638645413721281504028778823883762224448372588329804585020077247269448288105933339017461076101212803354932796887656361683555029336661662536865830285672573780834117053773631348494748083266430042044291053914078109041613840152756516063073802233049019197447702096966408421187968897327765009630077319342611711586010878568350012599399738479366386115952599629581649656172673719441640301072075116224275358404751541956794322908621713190624325308693650109857253553060594466997849719478806993779238255944205004313513035402152418174141562676571569904954458544045770141138877595149956435734300070691375686355121400441002200794622083411868378452765253072304004811725323050906512344606990655349512815586819153614892020689902274652073581840096995655553408033612132132151257445347911101805723061409496509165386391750731623735426331513778207739337582844437438207300044417996680664898954880643738958698922295534818539172633131395872062593034413584356638400316375805609267142025831373571610813113296617501251920942220288449914504365556650426343604023584151924428547669892171169281670128007654206820527844331451056907299611293251510775898968988054365089052334035362790244907387908814765250896057343723839894305622967134897957125724348335675007609839982137269077348938932336317956297158691993236002655651513506912196498284126390266355946516196923962591877758035515817201907291251811119536512067544852614513064337172751626368748190543215440113113218505963095003808954652760245974030848923869569345728410884496107003166314682571943001097231059815689405673647047137443705691477084983950701996901696600738980115159738277483941587912367060698884797415907007005275516972266141265440931502196422757686566880482785023558985399550671120027870864534118016695164194833228364037491151773621183263853409261961035470718013746206575781742194335337523386826807063748105431661199289845203596403323314905069625165287361305060324725243471831988684188068402872815215720480876464073508370702935442004357546722041451089477132557028325822991676662067082685842468757841610569530560225541796315082103520513647036369421004281767430835482905460584106463986975656869845402329791775079137812729737240825154133936547059082085437580316078696651132864705820853333052351600057987738703328689201415429774672787635047265877089381698489755373412961989245598338926070062601171409291543809260339994759857710667770062237227443531178230333528409399737734511654983891640945611798610881848431599300964823941332153467560554558487075902386078266668748417371090479630004779347213906574238387163690986754533096641535351815211311864548639195727308551622517215004837298599454373295790343498494150965458162113180920598723517049492661523043353482576308178232138075913739059379314444371892098495609962827578141917948461526161627557502877207063903094797725276858419599153342528947002768275337593852885641997487913307384936722411184583181429077834187591815862807691638652198144818868600592036797276395466135354767719637817718319574536340887680438390485326296910378786998363578723430821270544752047122286743121685691107247804460321157602392637611548395804857423782501437993634323503886546334527138047164289381793464965912626152593261870984871680458988630037311812166705620677740545887011161684663188973968325665841921486705162012495631498773329463092417617320374244874148700486036321449266826683225867052118154991288919950085793267019467352111201363261665017046524213270641296508302598856419763257798486253623160647776349091385441762990985804806578178131846197151821701230569098563760277049306913826129942393083917752649782007514503167885948430306799878702267630655876597911987680955756088884380658917790204750482889077441713627335817450453014324820361665251849147890387914340608511066834743279606481424228220364357341670850901357457550199593701096988943171130976332703244647710625237417010138374859677407509317487835586718817196364974255453848945691938413311043529318364620355422532917317413024133781496551755911157530117804993402460969955913447317280677584092046944458686807695613565957487570731122848646699076504697991627777887426650951610834423255274460390616423135047749787031617963933224315928426736150558553987109356974924496551797898793896454486610886630492464941593258789201388942653388327589505398164126736484139309422525726489334871902343464890677353361946232757723453026217592551290853996785918386577145287466795173503735320044080235034931853240280777891410765107435662070825692081544427337779194065929576045860539168197414769026048171081808998586637760185644002642836075036569732432285246601808920600784615448175253231566641838404264203931314585579741734385649640861272424882814410455680003235453829693537864294413543907128642332749848235171560489008160259527450658600878984646046926714914950477986222203518996319209828331617294096843826705995138724431419240459629443507683535342312223940469946864357911746192412502555199286199974766184602717168360275597397011084535399744733666618786742716530509902952397740138090968159901582194608258735803592136492865352992450331299432358523480198330021111656508436949275134201680065054061716103125181765648631500046310630446800277169053778523259909110929410033705011966764113935737305057342496881655118070053316314626886466334185657649495723868640603159924119481469098885520396744760891097908487928315127835427540137917735270287540566987443955948530980736234488555783475947514314644178439162354854011627054819848958454242731213329782342159419857934002685104535174137209494217501654999415941826287101085285024513379430697799176696992621843196302222314097875272585770547425520442380989823699248021720565934565559936120184347088740754166622757495824215596680631327800322878700619037646461941153001300499304870913275356020470122221769167532750399894314784427790522501812650256215200684735729979282095143971283221025936755393442489653169325059689496768161419094495752856020942866594480214123036045687665118776628647378381211909969897924528049358955959769575252614490540628726884753828144548154657235652330221101017046713203047917823965872280106184950763569392789715676991317444556964006929793547928884193481930302034243824994130201332799557574651775369401454954104074270453070212970063906395339391726200016568920279364630698546846453044684806742746662888787746256661690841223469717366336113965550538797368173156976420547549155498915819217717367446950282688707864395491046063119553589474931081047936056813714151527929466130846811433075075751150689319129473746933059887494793492263680565744968418776677629275296949982069633822056521518037534847074048170783831703137996852309261680464172829483270235368551442742840648628423414248930941488656338448668776599385703430279988620319469046838702657006671024171103538819251254687706114590171854910288796117216478881778468219831001066103166903216691518920385190494728018806009136456536455310810704974266665347812149980641687676336224619182314297570676796902297683469756237940655186844347999072905302886358211313522921765585728275199324730794774791699767227891776396379029161821789664031973604107203181976270408053737195556791839456266248225445537022069497407398868738198137950329747953856798339389543781403556657792072524405317484260874023070365905967532898278154986683725189361359670070633387315414148756182942275676569902581252321261028651594542498257820843380043185550130135782556589602766521537520777127275160721218023557745181851567835899022194655090929957127231383663275267491072745223461186061528763276765095677637582975563281624895474922965629446573314190861916986670063556943246723096376930592730297486473734748813841096771027950725945007603224197561873539127749766484247041207758683512124000908638310547912734037522792426648828851330768864746889424588890068788542665940867188644244310647554505199170646571310997828370905126200856155496247850055702150194411033884451898485835912264356908056757431119727367240460515379856491183968868345084083541910422639820025405635137142804434343854067400981326265554028229961909798194879665830182244030200814144053934732112321841088207619498949823060219279719794385921028608130417733632830490749705957683016256145185497637537816267248514287405409743888600663176648795395615854628802565229717319258012884084079643788178397992281199662720298517629066511430334256161527539214415075778492473373097303748683008564911095860852180402145605356627034721944987380388096583362136829899928367755164468707920885256777856816439102182169821121702098966215010780747512810669980987655482632440738395501365857315399957680635366431623725765235149205596307090112155353981415835668433593426767257296731878564330136819899254996494474632305949902669521240186055010602042109939680951266681897014479605544054817255212165936364733692052625378540633629253233424450494948704282619721764683916790073400907494608050847377026319664991989822918236212955271631579860752703803404729828758382616841257205821515746593042930373162223977601999337663754383695835720283201394509247632445973997791879337765262573360822710042890342535831317687417149155433148160419018952157847919191414377058310715163136063433849045346314041653718058236294370619969396605392823162962130461651154907254931187623324292626436832736289824236168034805501813112583719351527222923444341152324466760467035789503909668293681899614699860693378358986568344783771031353593036886070345018146699145867970778512532526808132980086098435980337374988094548950752883281036050265841835638775295667424298142848625586127461374170528998644932945054070163644169502240410538878129750101924386008812594157532013560234596047472200278417155421222883495788156852976681391368971290743375184451584860876526362211155250846656435853033716453497384738322918973512074828728310198528911124117814980755990732683835842489654256636431839079042331446193272291038419621410109342469978204324059804303744874108251955030654285366909361070367048857922452057322950370048874110057044866204255601100810141526263489389563368019255307830689935540179544273917141598103799916462526741986711705145925149417591042722972142088458447936497071084009187663547636708577399224208021981696758358738508864256892279910566893508874897721031500425177305677389662708952109412904630234348826248297428708315788193570526894442828315804153670886313920553086174490674485855556913801152076380207895262403232049515265447545469421004214646857838856617515067294821076564781136183627559764205921182530752046742840423237983273118699939029699178835884580289388563098466605592986246326850930498887307195804847987864991356494638479886800508531962617213771745790439879774366104220675853605022054330525973233223734496920526425851879454041021518437321688926408402674837951462711474442980532109127123780691627576608662371696236083280660344304026134446903326985262184146536503676568069634297445803672174119488216273322004403871314422955161741641362492535185782509682519101299568181935359273759029302842777077049683234504123734221969241527820825119502375268557827346205725497443141342235704277544838337729503194318952715946868422674926990790383004478838920850000427194961444233753952388141063641780991753343210839935831696804571419306174768618897813080860552585175535361295111594088607590860599832991821328079513780705258621999759460648588937971257564604476590246151281552494857885741932030017586747905806515274703551411236401326481342231140505576551865924071527802124451018456349544750180322458375069795821634953544114003679071987440927543955270979662058797876246600404306192749486924607649778192843350620078028127799575370913521783799767362575310734839646799903951444834537182311525063820876574770204848907761627564143177400507058338544623674123904947193062042279640272814563708854623373043373543774377404415982768981420307697501973559866496999215709971415073640398655672384145043137446942882192747234732225256167578349031592200898819661280540294255539866129570672050937536794669982266525289982576461580596922964352042890039090904816919340711184983341927590128024007125425386393485670074610353381453876603297510092715179555447158084838378908514839742062070968744559384716473110427028854944795816883716192873578817916269795887591947774254434898078509592290332518301096684848989916248822668527529639574234888416178871058655623404354002955185968546846531679991713050466099404048685702894961628426498742646589900689477724172401150938686420413460288121624068601329297003005472465710644993962946852565637568165019499013946309870154009634825749724223704633210725936882321123626491781960390445267442596536809153147523993821954721816276421781590845402971460543553515352757727376710301742732810447049082977348453917303600534738859591606934878974138219844836651265721595161720672322997952668501062891315576175777420480939644946950107538836083266703396019586173479672195377206475350541424002609893106739257295551243264271143801598858787298978477319676098643072470349179473025103433588920295367526100940394483130685834211382712494675623930031943510973543469485422839793151800455719442851878924622418219401045072316417260820562322767144121806571145066909239979581696587923218651347058775291071985789209072635035222016487496014611422972264090207715879968424722053515448837611204813905536946001107596522398640964738238481913669041734867233509795292737109455627031524545285055815806389149741855819667617834766568819695661942551667282156230610190433962964428343376117374851050614186979893070323355586903196359583545911604955833198332169640475331417268160692917275504014007524652986419204429587574092538807650090946371368698937699266820339350286173886962449963934272025370516077772190570635616656460861080892171623395604381463077863220740414447129399343603776950100800450144847178193284453463162257793135463363301345046230049282190823537582115504418039055903106597040669011543873569430291806876960713291189367677335607454044027282349730606782643272017644655350280768955703073756530488420426498540308551698186215055937131909573109629412977488379017554800317090285491688176422647322086594651842751402519296696519442686131312055616501406905547562577282551806294982303062262169672779105611642681558239629269365358003658631923396427682353317398216425109685012909847554305115641862432904727420269023626264809661365809344770564604400108475483179684456541408693006023036587881113795664012246720782119474351652347216408568949955809460151632261186724668936046290064767000940864093572175019223448036152864606116755053622125608264600188025356140585277802723925330189427899727999225605870368467367551569512389097296677581585071814269756271380398505986532117914873820339218134887680555435586680421658094674255925332073081794984952965778994780155373532330835011148346995884450295079657519680230598200043816862557957575200361408629727330782707512845021353209384432881322060582049349868351554353137478228624560823566852518701681657453980311871407292778643351479618984202912167180295422380165187052704974052659704342570923867768673164637241979785724172529276907458998302764371653739909190205159093120872139156498373491822370169906455381153007119322870023817787272219118225110452908465305042933921333089132082076536108624800627003709430881656146156465447804584026451481788904957468214921363898693865818526789298262307218115951639246234398022727212107309153275787099667584836493447339047591305714126346968568876704780286815156943717542072164267155752551658623160202920129231713302026407947843446058446105426754631386065132856128560600112094731034861023079499688598242884214372705303796614011856521582565975314567514868540239284633921894459411899974065661217384527704392511281619441745737318999977286685385180684099500379808495691864694963520822538810630322266852312520127312527832095533620829704251269739377708048559890564029868815948841384533683973690980566080469352628122723037154641280541988971032630581407267759059283447496895449127710663502778102258253159348529664545166014726530742562901993961715437141095625980807941837732256820838024357372415606917908237193317460547189145398741881798655493143073225638654550456335189590622366542069635793111921909733805725402815326031072586735869255700981578728957657565013187055105512107252341451967361869286054945803683596605474506892357413785862602780001842272636594154786796207704134334343991725089119169810765664946859915210203924610066307036907793936483107201125451214431439813624401402949013086126975743188975908091884695017446336938456093454201857380353738370601343637794985258487758351427760248325581822679575392924108804177846575182207719248480714079309311830244917641299649729900189097242759095559309525925662985286751196407390042734228925722754677522471468806915365061068471947414971839247694330152312013965045203461487006811246058122155428098593187259194321940959744896641953838279928553993671739520504978574519220228817985023785117331853999812711334070461180500978671340777817871159052479054016281030415299337866451462556611854891510335059402144705400684242414532588405205717424311142510748593575496244265239407381565496559371517522120747424307158727444735255764874845723863825600512556225005319015659863756161343537787645010295647044074307583862617516352495866932799522754830502442680050924737387879196955398856232844872324739048567239385601678194432186951963302039596320172820538372900832520366547411647829997329923733022658890872632641903845421460173124457889831562499688753462936421843267490367480626988847487783137383118573082463873853423871950322035907145341981621822317046928126038903172443182430517983434157740915899646449352017133505305670286028454993532255636056509915362514492242796583524137190922122594288625626488104219962398117506438600249582791939547912921077404118454085680417821232863225575313803288306277153698111730652658414707422160732121454767218191093155886067482028202747194710385555448747435039556801232230825474181155114797593489875272158232999509207135253834250520791873744109880268449480172456799949508753271996021283751548257767068479333930263984801557410026613298734534841384970354369231922559966779851240670048541578301475221254361697855663485632337235002809846310907296602220644293159981384623442593095534394486876441052281698285980590335154964963600360626342985352238190439674313821733970164429669193671942619109373181071238968024192756343247350846111969826478309730341482975974722130793528512624163433913703119313857658306155564736122092043969116439781914158456182675079618151447585131010098301473439496113350592829286332665042005101822857621740600460604512550884468604494274641554905810369223494379125596980915838016247156488545623517629752828492916491350112556699903949048977640660284696822078339682974111987187284398040854422807635643804678764004227961488049766790163001224184001781095634793121453474656019284226090729958869527667678097636166962990301509858970345775779713373970523901304655521819081506870984876537480819498675860062363243592439432007128331116859370867493415219152065966390061827272802049716851261123307492602572131530858280937008820758006231660521770664149648811762500195989987879308071194717205589297433959554294017669240009116074367818222562764186961750661015022138529570831354568853114274387857917370846670229682675692239437360177641512817160325747371132566754861648117326171081813295861850804178173840834686939429555426831181273914819094737754000117169053267875510358351620699105685147362740092530391369811328224496181517951635400040309071434086042299970984616943571307514160572146781360127166078086541395055887594927625237913320739948461237728885157256200046997151925183928294592793018644417188543401572314626871962969300394233384988413576787992695342185097121919868346562732649584665509284488465226747861600071830456561842964781465954679132134349908352539420470589521804517151606403106240048295656367882160181663120513809616765252653639322723671111026583127154049160343106309817856711904173515839071450716096440413402645837916274165191961034931042589473801226071396672276703452916784671564989790930626768389159577816700824264042996200830953276653556912468638632131624543120167180414878950734456624268274415628850445738331071694860256414880025398478443296124350225756068050825162940465651235297393104457130427224419516669153991117158313453276547036592134172074373602414691669162169899249253125104170514311463802330228558978664683276766870929292985286775670113613215483690629432996529187399131392581172097770827088227736759096539668054640429583502688311026750816085401698941403231293020379194604236215397482575970261383781738596281722761610754847829883645434994001025504461845919481128199420133995040655482262402011684445761397738291674169621467147139697283422125328900463022904060313904074910511931535252809940382207966103943787335783470003081428850821526081095213113474062392706261825406873126404306268203387714592594487013770807513415926560127944531671501922219823460131985761291666922404246332855153668988067236927520381834167496799068661986344946281554016958925190585378816901159954566536711368977430175708024517824813425087451706095229749415847811840921303896090738981167819015245162918706415147124151402560467248099480412515476024467477964745388474764709747863527930005953775447358428695330467703320645129337644224600913183463092459772510239015276247667982985023950722336095682476126652172954762561066019556327391933639513849053570130914224976715369894640495386215466193502386855657538785578407443821364769821401112094960272754047607789496521850554676270177452221634873019738803971272268999480389034398727232512853866113865264539459485327657150171217284395257650284063219572353587489267689962393497406805360034650502391929345693507204769960321683353451514577039507987872970433938943511964878561176082993538797656788692853971990073894476467936768860184297437120499276406976206391478206767833871349638540113048330765262211260603214570462779257966063017339871644748341186325339425258541624938949581338469447269104169506248978407977527748061372195941487002139394537468464980369850858401690198132577957833129768496194596733862960112006251360768437404579950349952642255696233132043365982383264216856730299994204261559026387293442724162363291993448375174749971257717787055379515181066312318791868846072407728515243282879843727294600782349492136562127190477002352406688626619252609598110041172308454113654970805919612029902209780897878690367821043663267588889991202564407088879899421231767345719867665174102548711245189503339459780209697591223847426212537473352373599188686474760634605689180193545131579127914022459713545662843037875034114012325272674683231184212715591301670233521099218446853440637387922184444054365855626600277927416964810536117179916409017263494653651728282204937528941194795230323782719102488344900868220391961237055064957103751356980141001366656134560447697397900155543189595827028926250148643151826498945173676294307804415187568735528079500910750713748145182410850591473216050158990402691316529607822596666039642219601185078272619223675080652646063053726948557813247544911285272028139539947597762957526400476332454609624869953723659786298554832523580345156974418882282191812857949284622121505745396472872223976311029470915568414677625350978202116614810606136655038871648310420951444870787514224042883518312884593429033606103302541842624004318645821767860917292144974710942066765614105769599233239886951787750877156947627941536327988759447706226362515800174472687671220682466825409221829156170571404439493118192277089675501724842240262747197229036208183963605344134580303615799695062608575233680290660188340436366304482062518806691216609245903395300548912939862428135366392305080171724617004495585106760629153003790344520157558476629427879032910339062671417349031172174768675613166558388757596722438462345337697938087951587607546341094154672294647540735443624216242631819155692791964082767264516741211064963417991671436164893300968604352772164049459311873015769790852488048293899895337146006757025117984517970938631563706291613707162663101935166798355179387182012815442017753223962518851479291698781479904817651288841192106938364568277094103285110574898612302845206637745524486745034499395196814674827294625513542919909562748559187027354319201401372629100443586391406560231476228415165498664579382808416937750541344556946242914228013829058209560030777025026175745315826245208945257056862444119265501929807852368157498017436897497833855456123400341796050736841733916270184177019981462563466729661068986167950772174469515798161950970001285256269976699282032402312373308676569745150162346878891096586605165982936667236243034120145231862104449316568754592507500280596264075898674492561268220701585591029788415614921895199020684141346368694650783709407430391810851640063140328794342644102760211181830295356204099100801315187952412279036419563846618983134285645530636647485545801837138739368566740478459260808377390835172050396613877041169535757128814633225080458625022536593538774467257124756686010826587812486204237127157714970273028748218022366108327185009528494371698746857928950997407367158857960963344718590653198099339747680950823872061952847365393253442098898414360211018540844554851087042120556609728857938134189398583790179766860501889480695370036939209186057669536164217341142420922073685742392711420748658974112158130845347093786469739363399058562337728021786424800667590482454852320730828499757647766693853048733928566552729415363040130099337828034009433093970580188750907087388210025590960678122359548606113842004484030405834480739235283440462119600492561649216903833613852570144487626231124048898690527790571081567005550175386273799783906380328946555690500246347995886919794539253509462691853525094662614252031827091695886177544633037135803527558845381480847577604177425737393298511413875534862543112970138837177891275085482185181888839343321691549899015250247335349346886041017313577985402271932777987411149672170285089018166026218235220091808094998798156943978796487271591899934274226729330864196876552160920427889913862939896405445992824119358242772787925474821272317690565899158607907130235129683833123693927538036065165782961742048188969200540225181261294532827161533158649990031415924299375723102972094591034540233149482496037834181806082983971145672090049555153521908970687908280758636287309893573215667575791341605479239765670579230990188784762349587191948293967508037948211925192532816669142728284190284874686197752070220879892235958881435959753737518300765210497095041233709449845161141339035887551979668457799603858486339757882074916135255224864807589469441302683972986928478369781356273335337953232949887363747234250906621520750864001840896415029635533153523929228722516149465279969273745325743363341172202599056640095739648018945496186240748422430889915021355636637913637165015805910187087694799720181205076716063519523649541008220249233143926719946616273479456047795403544282982667176347794831850729937056553845109469222328432071649467306814495866460803582056265319392913615784358913937128304379788524150367175025830035026221933583764918707593324551379020538858720699104032787915244380647431685031439328847887063030547051295106017689836385233860732173712729864226992191188728239779575224815369658628590720372357066012561673484378680825346455293651535424785535277862269085054525785979422454424929963763027522143437783719082524067803626982687952074314752669719357561372983185154813149797414407196070016969963471993023151214093401047001316856524635562178904284805668253801548903089742208126241517951335345077098135435362798808984034957367388704385721507154874074720126415716038881822833992347435667980692284968165637828594263668378756213675752115302286074072363480091800280623286197049195054380215113152355754680779364255798689128833162344712946545708377665054758549759929151790464978414918514233293367084364335018796145303649042113425298085215259004558964215805312408804040497036968843804859089699986671112331610419208454444027478224222598747759188237760568391585034575762223898766006119057950705416864110238301057317757521171312536654410718273437582077910641291334744267876667471883804451355852248409635496916426245962756010475259496349853044006318053648778956707272908791422916100352065317955377292870527134051681883923038520077801994879834251066852706301738445759213969229354999751874837197077647268133789160152431407460048761993449383379589981012750756410023807375756123311856540601151408291071081009724707321159583471750167647617780905514063550160356290800628794958634195465323590852615644095368741796950227249454530120727774525897483812413052739864699186401858130536368719743813989869276197212074215748146678673064945986321819509508537686991247332104931523587371983860198261249088101090006949706595846444601441360504509327632893168641801249183024615918011906071774545653900477990121580880329962978153876327928592710208055863425305086081579170230048251133446742957748266825842427661465897056414609623265943980309926244710238246933978592489437381067348960260323738952408378773353300694464185413858918933111768550412207987958683638328768753711213587339575257045266510989858029076154482616856786709730274960958594547841650169617360824070424730934409957930849935937981104440817152039155025358045635609918875622908657286858894742038318963242149802093656932974140871059817755886606684518650994451777140990447029528170153991090714520045959061239493287301322916588635823093191445642654812684075303577672365985486700021212703214781189385721070550344773614906753284364603422817952172564977910546881168724009100118672806618832110475452535577348553389564334007349417879118375230806679500311457943248752094629623173318543641328217717768025501142427587871059111426867911929534546745799915262126113773538324308380883424312142597735562821887937311864761230210507189855585002606950728736315817630535756584008905273362137098882053945852220926981125373937110911608828275424666331278622432359509825148661598860470897449715253546300714508061567201326852357300140243030794205868202558337567491938465105396851324934095153366501883543695248206701935852187323127555878479011213765613535861471939787770687535830336964812955301850538933121358471773001723550659175534442610617644569141561860577294096254563124828878217438405086771788471950472219402868164886358684727574491708840637118019349171634657965032710371810367306629855785965338933726979609610886456434902099755277378267114340934270574292683487391532976374597120715576707679168413012265162399498717293247249034375235738056252327355062979539726330338298218019129477232721248041646775306877837591948090458663572656877038672833031447652567878395536013493016641550509519439310653723171678310283085902216960897346510980105975012932968335547737224493073875337741454657403987009888076893773945684973869925935365790970409206327858836895765658397720114825623698875307226734049356102913581472196906449034485310072412681015737566626999980698827872042290657488944763748677614069637155357351008865728148475797607243335016376473375671799096516173299196413976381908254054250356010581692705895699775846385475639452072854837391412149594443199476013464361279982660832357734665908458025733929261662359820756338405731800939937690968735204591860467109546965205749335454377398542521527862251773284476947168155813159035225996430847758504696114378143755016097448649277189798239051756085750473676073561259692894952851510008890153057874508450399493396921612062253440899311837548009555492724448116747430634423418035396442821304650559414344925922950864655276426742209649572534537032492148011406669954840986866186944530296501356566960282462251802544864115377332481507542417847445207111814843921537411568628579221582427741386690257480306817328939844462093589164963653501155334091223364032898367925846348147900486629836373365554624312018004765702218695580462090434106544742162724699013831385998232115582722081243645916133913804958754484730935345302799694937552988429725007167805687802056144328472732031309616267006565139660882284522668436446108085273362560463225847263110085528378093038571035655178096089537165895903850920121884983962238337374340124946609549526177086392428581979586111921106088178931292855439441210171343767257998488117086778726351566012090431345826121455386084693761020874484358055969591620861886517108940783492869687474980262545488144635911363684049081731438861158807360458848956060597293141823565471231077280731472954383176989657797969532895309823396775354233436422567589697685008936933359055762901767524073060465259531975715644507646955070969726863188911811318990149388527417661610328127385304413275599189678567680047684059651256589642481075957656428217010365027073872282864517733578993509522532980199798310804239862053636372766102315486822184455884690325670999022144107468963712488488922568186984121668824230899311565213231971217513320535329960604338882661298549472706124338266015507807595699459599999903889319901661854227063569922785522759962458089445481237214921012229155039374551993030025869778980102962613845454956142131370191404603717461201034806350724076074613231119460407189978532049393851669163989377244378123714653853168076443095760740162403547683618596663303050151836326245225003700096010067569009221179814689211217405005799224859258448197392237657444853440723822443076951032756299943238673635337131966852238030396312143481676025539527631834940747171128900743387805216664553095564892743687801771974941956495410496061970206357841601194935653606252345091004628603307189916778342409575994916997330006978278418194028475198456046147968388404148406485042011942328597953604603865335148410437788634788950761550744639559129815774969948121197260013207458074985650496635455669085952458497374758812743031004210679433783860593302133820070092607427840322679033312561219014029081763330412578262848812956104237903042032077493788476475435086913758510737202210579879228037316484195712435772894898682017177382988706114280383777996895975103128840453033621163503593412939082044252544619182590564874290843717156637684171667745926389890100831443826175577190686003923484876030504661681630283611420316237859237749285496708855497797936959500696592046214193951481737425061858775785628864489700592818962349563836265536874492652221184024859865712641815854382847455879650783651871358427339684075203683760857656646920507779893408583260195091473017782208218040625428810039262459140006422889688611010568021143578655744454868636628707747970363700980136370204173733845905160021020568509669719104198040037892784663281905308969512560547028219004710076022173949554957017757344609272361977604616658170930727649707907271942935955681274180771994090533604718448426418106771637398336493975118476000115918348230579104952672803445111999698995531633876648837771379442097483435958539001850409310749629598670728220756323674848024526268898315999731693039503561701801992929326725009564360470269017695456520414555278934646503967505723436486942968651128025509092041044212474140897872201151382488284368233289833164048557375462490280538567254604479297760849748190192027110359626204479778446992339805106586765131065747336910635551273279956918978839218300916562303587646977930122135702241588245725898967521846758031213315624788747587821175118498530401709880675426169443454131016630958874750423080558432400787912603828832690763928304544516280675201615394778123650587697797429221834058015508035287521327467864777312203502510332121868400466802039021093901199625404877174692711479137121192042757464101906301509612019033068001558870163988818441633005548651469858305736336192280890385811141378981755169542421544952840035452531774305224873669384067551125240665718125740262513104730142066151772201810632951232398135132266748833117003336751305973052069935655086738410142234739949015773170360915378761693312255046224747246720824751843267823243026694339428373586499123012222161150321775343866605847842635143011525965009802569482999804248984202533537211227598635787644451869395055330814877607231830992986645548785067361630615017901375343545367734113476703221114088041521543093994941803165526821980717691011422656876873666296088679314259704965552510640935265121033843114991152216512169914252025748624979094028786559479797080506091881269057207758821008771113429353963233996985460533745939126290052005893017881375117988439266489013823687649422116579342827113446859131026297509844129624212684749399199984009335541774473634881693015187961957747333286796432041599483179289208409972894018922371499463474682103366334609720631255255613121750539035162756453087429915408684370264739923119276481148016666428956328421446299580802617506107824357440494408973332452722824396819929409780510665525278147232331879349045619198119117892518462235279982622980552037125158303874021214930003353992242331444863042940980968393826097647344966459020661432120606783374369709526825742561503802409441935832505854465963497564833810699700993262238659417101712747248161438486208563211831518436639409353214799905067855905094722334386943198705112600637640317006320636375402373588411573214485297328577578125445993612675088436559803498386710985771389431979890064399223899057515195200156340253312206208526332818422158318943691729765717727808053161523025496249993985576362928018940607386473780318368321539651867793807505763127927245994503457324540150823650510266453112625021681560067687919371262581394611455577125652811996638598406216226207768895896191843950104110094811394940223370671168989747309617940339540840699875195029628353892635479213606202369000281440395141347684869720519848353591441487419664285638054526647991590865587554298870337740329654644985016989522264867550734838479461763765666266704901920306420126249251300698420672475214131927914861535075234858191308823575949495018202603057103386932621199467100871762825345891160956838898216386475389318860155855674720399370704467638605269666382236283519874257495988788472929709320656754505804340261438938316023091972503237553013061641508142931519098281063382781972977397052978657170542555896474335406626697692160784103772092386031029355057711614143332518069116438064442150138159951287873152563003770920085471339412924326103490869226437822282754060496285178031182053292515986198251068492530055620088978333843711705806450745874136770030481221831011441948158966130411019762042522079660769377187939664540230700030066283193563015564466181945394067824720221688321192423905920127425325351501991357087358094322454400810521482468894679646893502316031095968447387776700942364382911780007439451963716397385065961272458692666801120968327058413321558460818048342644115718266286643416765754622444817127033379196376340647048643802714745048562664566613470963739138912143345743248408146430467067342639941042453013674670275194075329007892063655896464607708889204841966845312973586064139602084003370679168469189979115921435640364074712643198430982377135977296012521737623188425863516010026128563035448000884678466880558118387973854830095616921912559735790740574257758237040741796028548392910206334139501502256917920970618704576384673070043978191028541019813931007205796982248481253623348156583071325899509658372675799920430035419343243585269416783208332073662807200465915798053533191221344063129429272180531427392018822471352590743192751792265749664757296783663404178777058886843015651574114137643161469574717188124193135359276912847661043428304965572133807273875959712509411502586956510875892322754062631005961761080502835355462226468503699995660430717145481932457531340290302559522919143079191988124347162434435424400642535204827644082685829742126794581018883446814164325496345516536637878648055677134300192743556874714028646376182769061840019484289346341725382501989718292810262461873835192322302330646027223747275552981416456559481384594345032548398747845915308607235507896154682765999235593777083739665329346160237999518261808920034537127109179415114527971798176474598012064560760857628826604348696716228516364080011115969115093486414624739337711745951441732763855553265610969565257888009689139632010511488933121477838270615003637163863362236687868905467720282582863779762420617551438619314624716803740082723847095965976996816351872071160111249498876959025627191291200246341319411744627809115185107358328643336152297720334527501088072681781098766087977331001344779892513899097514502349560470986570902266941426061910814808069417054110428643165740514576449171698762575658124145104923949340116768680559871928271669781504634618096735331806570640439097999942285770701060756167936455972553765715972838460213359504127195325205912312112114458952786366088057777042238650484044348699610971847527154802229690363506440167168513204540055226159716540303938976380056715690998116164503847721840003712434320312945804089499971119487088402806206489515951334369269477787635903456775210075854651738589830768245206310790650106961925590650135692294592761941463501463941800871420206192885803525590342593365568621824942644601003740690494338382732393211493880684278733872044956231571574597920031038909413188214552924614190079451584162455284681001851526472059753208511439434692376529605309024408464500793337330582077856676078091279428516692571416776003318924119598236287917044018834885355587688232266586957912389157282559168772329400260128335414875424701052567299329549289138255762665729386744848814048724691152926528943196227346213976710258064704654050018285001025606850017884633106545998940213752409596953740931096103985456303952479183637959998320370400633426927756903184221616834209466859943244595845273134930359526342878318598302600368481450849623229492376713518629147689763383241204890505010730241351632204488252969067877873334503551941127110038168601060176571592859457185271940749868590880917416332978472074007064767281784374108139761345764485996887380449340129989579892271665648425024857213552680806777691560513297699281163596866008063420610443027050265599846528057580720809225778067893258695247312812172527559615602874422071540637150889744638851171192244655199879046915080899918989732435561004603070283128977676287006306716894324695964401115442501156000280847168500824597007079457070562590845883610809200690153971562631351636089465476163531347350155769311862707963397837399993244115553971117368673883094826481690143183571626110890157954330151651004714975626293572774982742984886323603774263740486948355464221729227363852739514794176337182203674096234955881310503066734321595278231410146104032138649120980430564047443215365047548484317289750471023139139956625047234458804940383393110583886916373441889174424638511633299419634208505314716522406872151870514250148816910331348436011527156606182791652639145000121424893260710365214006112686257006918447077111713232182289489888703443119068118988606478830846110436585980905107094586945110176642838805375842435932360089749133794332177895897841743167425515067306890522339159875885007924223959229018121585878864354647992483743122569871830016202144169421024522727104670102841857698713582175952128912643984600020334498447669827797147610584172022202339666047679937720202445022481371855141604204721726735845981873627207330020917700299667710920262640738652460268484317965592965626559967468750129859704899522048043684995551489390260795569509480083270050238858931858192994163513695181563232658697137329597686705165497790152341078666810901010322863367798319601873468402022578867134011616846195385448253306293266540833112223596730171137657080054674899003444743562322048741449813260590224907154351282299576054110658324073071653386804802473881847729611425810383912420267605963163301633353692491218266642079948303345652049635135064048053729291505295376050731493580254997030090255873017521406950696902726849394835865448665122654486302226274790873264522282012071363594115347334392505940559432344484790324092370779696847326352992856722411142468127544954985848646271656055726888183948997547945160475511547820092219298622960654011983989702105888931081421991809491406096986994826605675866505321982091942482869518747983895111422243377666722234604824201917094000136881660481227549909596814176819253407463418309748515491156590175205955508807141880981764498504357416058401978352316006619352415714110513417944435363522057864885361282107394160202587029284186327912021531621658313744909424213004421342012079503455999086417402064870162206890192863982073756000924006966756500543315971779136851452843536069562064859870068590886393097324163972491312150003501266921264736028171464056029096429344504629647121662828738868085497503715577191645248618570761103620222311628747189126043495286542591711389785688352126535220033290451815664055221484055098167593895246199893255568232720691981057267549395946282944422867796013373246037247625754805993382082255594578534941970990630992550258910997328082683909192802736661694826043705298187772989884016018343115694838524953534829971504586306042201269797905559369247740946146991034971529419118413603458650035649813528610618219452638918191358944857351533198248502979231444111267147455986955920215600459465766877518937843093713086432277535944917953853849316995637820440277416368529766065428126079267907629390583344474939809355474930448124859784243859283563877081907136263021816480312258662988564580620675825012122161393263247965365076257958243612375666368784201665813598853449769915197010679951988999185695081816520785499435122091697467837801799930209124359423367774488603792431577466411657957747530205495059829008728274633493060532097457861066581501537064304293217655433374969817293839984167345620028761356551663902244570651032094648433692054767200586716336593353925594404969880904820264960143564200606555059661458063767214528813268962052037950521143349478148863916368302281651865742874204145272469204761771284165948913965987517894940236458976687540541030226213522201012458759530659369179046834094096871741235454533273830671990001637898742212128591723454270744231755561940248441553106086067465176638830436505120199029644665988576103212834844315065707631611972111759822390396751043035287425662655363293138598594638898805728942856558315062531353815289177239115870232147865962992305018990200545615436085211858778181900477799189344727443974924931438156444521456886532903114685584726819369568359134290358480179836835788699703578252501393089735454884631376061910051407428309333917338397454667180281864809818818478381693032958359789769305154504863023153364972692858344547399476017944437079998998781173159850211884128407099600987828942620624358103737623185753619083255139582579337682990733890633547914490464891038608895928892043204006343117600217045186314320283310364567303242011887808826768709812262329167848234646703469560887597856431888394219845312079598063654852439541207154370510368800969403586196250072708752182573405786475153064486653675844204605320961980430070112812508152271182958719539165134585383736638880991189774159493230135687358262043538884892015683250917077574954191743178740920989429024043764115783186637396472209554515330459813588823783240919883210388034507223988408984146248859676100646387377978201710313179128280574042056730386291070828246166150438488129593405646971920290954478683743621004274540943100537833564749540506943594666368452487148522745659833624644283106342952716771381002350175225741184849603166507428082456090632751910167235992607240907469967183675026919263184760606829780175365308585063629760628949408474766972144546705919994788772598829720432433594621935968515352932951387785656318129370049315468282515047830954513966653237405254066944244408585656378383384945456902845163688733137207598597396240702885946986564478696359161786575565934975604279314646174324432428777814134178500652080389613780798870620467647510714313486961633917178682387807652897410064887977724459356991392560512840598265074442967936721732353488831662580659607410851431041073987506024807810479903385266734090618642489550150366619885023501429275113068201170935741866900862107935424686492549983708369372863120415908390025808553496217657969236114137059478425887238268971274116230278495016054963156518217666736604182093687229527238026430225809604833059457695130646537848901784637352487735659757798913218877312402028839790031935665883175086759023318515901615000967570702238105323517136922721019115391040907276655588865525493847395655784682435915884070901936278352145135453961762088633333908220071925220963471618505132468896736483806253867873307084371137962369114509338620805907590527741634083435674259148614864443830709340619629350838930281756383314483326968981741312760009923249571679504426354234142048728819306315798313094258979826940214667124668529195333933260508029888039598681610541562561251761247018940214849106432439153701280941045030253435798533818294298281523460900958700724219082934177962221211970079559969106101550686215416134000076229449255546297533744118881298838531807338397778258219962413698508980645444420337223799811494719762257527208737107101570682270588932274840717464463973580728225514697879621908630325572038059816742435775038941641731054493919196501399314854128106509159979887312095903445162919161870681764588998420973419505310223156915796567497646921876579702939014792936951738890657178821864300906379395949494071749327473859184663916472118251311026577305840087039889248709049159021318430762188026510149286072928149416176838906183172066588060119779867742374499828965177723217320947497395694810985658730418607511144580904399637771681060149738715901078044233610988349035249629503749718538787890067079102691696732743165018597756882047673584322289498781242024789137407287590155096816071779740188391280293913686666603759157807417127432233730894338825178646616484977158697677489603050202863657713121630409407474297520681683684994696241980219336635219024713052436890309096168803275905045518842054157717823952037537299140462574446428126375815106110107827441827941640776784640331327816519482341640784307345017990282867938481182968918355610053153161406302451639730272661180156838236420549507491832028962520177685281104431467935281772670886565319867200452411108926407643294622700737456114744031656541601432544768736829434471057364868343338653998314891556094000789260415692965425559703717707562174723129448470643989522593409638968791776191328426480892644677942031002725210528600054938267332629055519961511682589742912548957774968382079785848029060310280827045523148312134129235539793117666545431053268859180672129459548521651319211237594772755159127869976704352665961590007681507567666583517899297869049457332463129551219188977985614231596063184417073933502776208455382717898411371935943333841687397271002912025960612923451392007016457526743499426819218032472672017860277061892014968423641598821192544492826896164972892711955036024331911797675755529407755773645154147471121420471590999868213569914974245825389851348466531539495363736114381471647052135100113771769596694896813121805250493424111348919516359413932083138289821567004344376582408976869374444180181774191411933157878764688816212671957834000304931676074228155370655868384854131780564396402121875927230601148332835143043150901418573899460596167298477834191069500326676004014769456671395518806442023447303281710784250875251392396209455083297694887138626325078548059747013105217043185244735607976435474961942558570693059202886744059015889997432633985502571132334134097136200997348501845207291500573979222135393674186051320223711816629339676707647176327383555609528343859853492994954262213667080505472357967114685107651181808857574153073191226894771890133858834276927119668901305227229367924982505544622602003672025688333252750303002827197440603156996197161971055276932224843533141640941308324110992335967621651503610076321679316718025603007133786201160572458813590794351057815657862149087629171373837168898379861256847984111388336084311282557333571146001085460099252581312769476051832372489788665828489584929704170124849359038608712869372624086395529997458395211510206562487136923592796759831700075141407856214510440459658524806527350197667961395876229319970729511674596262758900879147682085307432747011146640348384856507755850674868797378219017319037950429059346799346602289289021126813118610863842180371408983249080770487222127254997718812594492188634870078769810351899537931495681471978329399677829471680098059308215212622225636418434079330683751217184131807221478775497569933333096185334124696014721861273599494312805179298069682467721675473719704455696255677661560736861825126934713033257905978857407128289621753700372618296008895600004084234353629589919623535564018877593934398690924687382038969726648577709023135367052175835361532532197642166864205397965411484422068913837600556592686311365962557972795540817328181724041304402456348581605550074035332375624640983075074900957026255106600327447722765075991098866333772549684982971374753692699477261314176636025834709742601146915969820704209383568281751997386336544089252601857322160498526712327337458091255668817872385634961043803424028653383383241212041260969257420592460666364469386672321241735483615784191653478651224892501185900253415845739381459194380490127775700679455159658714531378270675229334898799880094590124738354898222640497184413010256039336306082377431057699695859732274616273273077164344408802636605434590785775077504505917169527867956697152982126972080177080911989225100491414964084643392664362350551654613603378656997196814178173756848352652848401299780250007261056344482744154597660158421380368904087657519574540755609387730699899016266739894696456816109498661959035682338390555440227180589376086050432782507062694088464260491535364272519198368763699334545021613386581534549990561371230641031584255153853914459212762409338810439998033576999200937700390365121685426952959583173542053649536126511981814916433159475279080700696645866602892863702885610629349276457236567249158485757400917132839197762674988176651481416536217755019279607203033237294417108712317698885260069383346086668993569294268168147966633238749424708347473542440188418400265456497426456333879402613438970063476160405526182923629958323037610402483904820353233128572985300328828546977975332784023138350512993845590597653283724882307254524110870971256572653208639789508730283704268646280503911788396222907762275711015027215394900216961875352460993162986650185729443103102557096914982149282315919947252360850594654049281750781550928191651487696003641588163373839735999760557502416226827636532619498256614921045772883235622171832300708627687548149797806184545644319666827641484562253596247577666504739144404624538063736800858999233211623823578128487337742544177038562918499778905060337997120846522762779287466256141997186927001022860518883013888162919086093752910937404701453627510119788543195763428148728477486297598569517847034039044579458339408358865510173638941850609871052946831397601223512387130004890044012453656063211144424263748771409472066363652541575004302442805849972638679809898683152305034856874644688421492098171189629337892465144186788101670281136312272999263328127356385634774245653634050178947957632901000946781990236118813512513846463698520269574772249206018092123552676463439252891595091112869619849901241497897723698933389346599446687866760758697882900043699703638818474511402756754676974512915425959657151069559672781227978703847028614829742501828044233891319378467831870158006819047441845754582708706242031435051798229703984171923767983383162920498204961088061247699309610930157220693022802558619450933538677490241596171666141498143990664398457433729706582263379089376061449500898582849565143527347768262148541659481295359346446544375416464392306995950039837739613284905136836358378874224404195941441209717596381078683127038452914177886468252584559437665599578043597708563255537455742867004126730756176742813111759679542257611991233524794082274444620360126235809692256500969261924825030700660800093102644547375445278443490986606564459968414033639204533431161420850659102407831331538936417003202591154699257680500973403605903931692497995557760484819891842785259524145783888790456842479065157342551982560434171705778337993130814317264500608776879216013820850094631442434951608394363925877362674670108182424893573381333372538045517056314822622647123284311096271681333020401483719271043210533070891100943977244599605190890400965998808004190249806729753457201943937697397569536561638912320778498273315894183282863459161083760123105192896464065132141347241225505384635788161419060293265984245058881197036596247238022296620060953262840278760675250145866911351009953283143621343239484785088902071173332368376930891089584134238187267085829849642376690467772555106408440269253561982019563757262834244521958899815644706795906078059081952547363627629618250132884906260307068700069248263968075167021554204842946692202975552056881979406469377832906259307965809508000468137575825862654379178603494476339888419417443861347841757279498859922370772067467684195171941564088728582156029689582663037432356954434263213609659482474259503083972534632180213405344121031968646883165092855563090882211923328497154117802580447856387040688381334000808402444375854679131512377682724647579275429083027205439028026621802843301592181388629208235096079440608389947191873113802268111567147545718511230934222061847789386743847352377548610784080226137463583784434586894580952263354082523048630224007059491624899319521217341131495377094487647842958829258557202107199970556100906918656048247196475119829930054915633596355270566304367579579421648010821736981138664044492302577821627997762812203917698212318756490976914222867713333674740333390107422410890622151198591642735693008772181838836374265807756438540058432040109409429992064340645566221328000390429686242843835169864943067638351134498894986552620645394153871356577371467564385377059513354837236455720953151835351334624829436325716045831310319749952988253626228018999265051783235551249481302701426502830100543901156878528846117205795749543666729912899838437358806775685989161143242636360191306033648324948175172846606854028994090815742697927813373962734492078005779154266964643722854826707262290217385978851827396675477442268843567484991642249180950527942023246127410905719696846836721623320971487135412632152078191344127989305164096438000943134350133959726922035886167302752948263175742088807574388107985999182094990263756650518117250541035884013273618063815611774187086492145411694515677343643286790165795560264330274422703795536220199860575862156120804207253075076053007977049250033348057855053274963054185281215180188283464225415840524452385318483480778631786539007095754676842854864445022428300805614345427666915395158708790831492802898609384507982777903796582119699947055031891320432096611211224293929618606000107534981180802341761892122668843588578262419965139305371779563147432842224326645814324894189982301743616213383706690383310206626377561034825503058282727197617095233311359421451390497769312555917136177906231065825970848200472845034522510192715121122803398684997617259551353642896136304839182699846201424768644055042534971261139051126457553716830415162464405445634762047637350910883868687508068435271485761688277048880189707159102615904688892549401791841063590666995576865135303764170996785565234287140873016817270229591499361490083630290489040189385037311595307809967468002551505334925924317369640668364874136043236191264217901399322129107501868207483606086872199093353608751687860194535272044854608500702154473009798362235981255150856689198039196182401685239957376572126358624127208966671569697235237452202207336997889772223883341647642289685129351683589509557730580338725424685182280500798204941592060545228889188503927186806891336085955239879069737029326233950245590025425801064982766501654991372762712416642780222212721795223852778260938483086034613556522603393126951424254223055241134931078179059120641559722557525340628431327970280433999546471906992312375135420313936763868969243107822872260084870622443527480591133207168804453170140828779391860335233925364094035096956739620826526390724076107399869047150331403580766256416022011250471843463145029039843992144107547252858002543751260338685046614575711303745178028854927044503711737585983352639916773384242563604187905772213715732307795541070125505277181658080178546459578080832179090798707463562233389824712664129044693417343941754141646410544629246161648393404716867973607085980944809951314492524039128186373625101689050035816366575620394304413345510413852799781768717003754123801173063564017536630682552198564669855084123275578109846785329358794515017356892100184324624732904348346124758179802117465907299359395553900172450032618396317156706857824906353352078116746709895609049157157361482987679567853969793076598700969281763794352193533745615697771845610671198038659565390591667288091040489805311440609238990141728117862271003974569496611829356748191288966897411420523069076089554829070435029959559844545332870928154677769600256383200146806874167667492299010877847897869173742068104037744431560356245313448928037937759136230102547847906710650551978812059158659743330401714339477659159158274450171894227957000691097240513743253933818619989315940333412005202981162267983760073185416481824613639583748389607816416391193335537784697357940505811908609248006589556893432221546340701285506180376876324466443537386972499627718531361019650791057290986288820815050071714853891581532296499319944159968694035152943498525695953064875554765493157245712692493534174492061121257631574179421200497434269026103944238266897132772591791123861640431999576654922145495541481739576821538000828129453694139405197396310166848587669123350056085084595111104900136632512067605128946408127336141425257389297543476953607628483863201533344574909391737980427059708336377697166645382163437182623070282729069991298095485961951040055902760039366884372066056933077422520921372479924716415805783510626376590239262095629263129309226938761605798657773869233235518783776014621573982960757115204430101281765802956388525773264446754695312889275333899726513680158977341553821884704528648644560566339726065177595513346256401846230894145105608874608740322891239839859644037800048048581120422741333769239037974597570808564627161512518354923990573822933599854814180592871779320593422686828011953269846722488911241012243529978917078994172975029146794809856459908602275123747116963374659653331481122963086079434840056509686134815452909780677555934746273028413829173497563257308695629969465652325360693929699346459335613911351804943003944849078452434890927323205297629440278853064181523068119175329536313268556460194829616836385597476677671382553864495418216755739979231908229699421639494889339198048433379091701502394591228850972586554969090134162476791276967098861363822836962201894837439012165173871728511217200621452053910804194289907598458865180492968757666685702793656022261494157897871866876377213841427432792915409531811206120652566241369615803820132877192752984994681514281930906794573243186049895123917932256633009412298275509928506839050900415490674033379782607049681511507021510685578141077694152818345974434139420207317289643951208110458680796163375813952488005470571603521880674162090242591700653042309685400947859534902691401127668898177060637190048299710925204461834403292632518416759647576382212044370692402862195073522932555127308177829464924468471010194043632389065929227987421749427170256381669804181958165686720206000890847136633441186326785209496811257059191200121526653505276610284798691428043820223022200445667540769195713266810979445806470959730862781911282414722876198221050781401424567067196644931003561272455232874969159945117403169176494089684632079480583821240763322028797564889707476587611601252531693087436186708903198602022213547495923446201398187281505330820010095454080471084749196329791077419801422381721992539675512466026396233319283895475761328164206464629229278048416831308882749139526692626135839872923484222258343682578837325127716329656799932696568956930757756282358228550514959292706293392326535586926867052811489491030558869960352008938507703670205973179874859748516184760099459142642278120704246166781925067435884880635685988463642820511444268648409195666366456909775986731475968362789584007729783806480375274025704146450763357145014341208254597895839903833347483967400834367174940645626024446719070654724201704271820436157739367100598970217315581625542033659019299651782539399127637975036588491018722360341243216154093367357497885404676269295190219634089651435552551650526976840542520073574358581777180395612192364230229440834480155879494282525675286160374049449328357330018293219166272908806208575658681424992160569106124155961919053781508546584681221294268421132038612368689800445805381799958037436230092488966452001495706726787537303774211693724395097562773276044523409889750220115681345850162547403990293942078504551060973107293498547032897687015426200537354526227689109955108786580543148125454133758991739833806448363050498423353061986757541269060506077307269139762735983347836471234446250671951429877946281120062943369712326003917808157825863550910527062233100984534841492794056498711862203719680959737537620852312893816660259443073507360495913596314818225727308208106092041932900150918856054899277624607808183235678425931744503812129037468601847962831601496802357601138883783137516406992576908799275215826683152039749918591127950716185009732533152699090625896577894805601545957556837010196565699011051850837729093042957760026486096831736364890851877606239378871951279287187012480047062347570004685078668915558438404415063742691138168224715687250311245537636781466652342156323218060624799758106299258454034912904450848343042280581172601365779705094390229427143531770814171671926789921818040202465475541838203112575394978728717173751375167661171424757612269303513917044189006548281369575426336073802211012310207798059697312892148767418262437209500682384264811739063705358444690845701487412877041564760180629689885478273698731861951278971432180981328167582259898353082262915367355395568778835164341147704726120924108770153170520200478835703091770337364244967487557519891621428918920998599182835315918675440010649945371817681303582368400350826315058165453435519274841425972670564832864647662390821988868525990846689973063259588279483076026243500077441113838725412828350465864602057566601288815699929235318081745731574907555353048619481882609770784914259689414194880499520793778534875286873478883302588839878710175709102610295076841756442452002147844396094756332556971010439176180198588686133396344452385511889906375375539096978809871667718677697701775810183881035203979696741304966523580549722858824536212099645074421540367671747975149454121296189517914757551358794307019855981054430353306770071851338265841336571387862988150827647551365623764709895710957465815084899217393999421815352545815598593674123357900117044704262244378863131016851018586611928962363735748100422175407259306484811678670695947318401296207943788623365006818819854824878241013259566368083943760697442561064961642366188304908759848503878025539194597981840725688749315703323541457602233101177071220783276861234237656732318473406184597672290856842133229745813830055087244584551020063313363604198006490795711861635008887411537945584033224353009069776646575089974466507625842333660530045606035100788573755975009589831946970096059583622805132976398292527925747400024778764073329191918168791722829939071807427966758603626946183999164400397181593520251139185482922071917498069966465008498853842216786800214793747139775168465647116882489933668008232615523883422155097737669926464174079675601708555102058627674703489178057667737270769291243965660351821833521446575894822934757569723196866200927364932023508337570601223293774551611469423770876971364137352289041533207477213398345530983141018613578211182346817442310753401642099304464210632805567686476984715831047336262144719621334526106266164838608757188968296428757182131055846610624331191249787676029570544724624047594839680829151127896691238735603035625506881151113605969802810864628349774415308332396939198835729408222579788191087789617078623667713591921362084756020809399590995718921906155035706180977669821687033675840075317681985142570423722776291094472218573277411521474656103209206458330227636573688692499288646054443424068408145312141189644836384958337758629000821765574496132854795012893348546244356066754369426419900331713170580760211145650943047710337435745074521599358874125608363214272765185056133055992745640529611772588894149741946521005157090386343306339761986634504377591041449315559754173355738479644105763519231072644384750272091189849673135674537500964263809594613970014057481469824422734894659583574724560178376510427247033795864960582275793240499258549309380120639782233711576713155200248989709254774751783928732266359903028795299489564413768812264334853920560300317712588923578685728926126107136996717379158029386730453651497046711464671572135249527793754342462887531696489716179134560216425053042935245081918979065955482128443671552911475666955346746885613604961030541294515327291685616746487296054531323600844061723780560347080282890388248044105023108052773364364801661099829839121898499560650079098277516947306927517440147426021350975115697840754846021980394182634898370733941148097129483692368174820111447167193352978089408420249439964554592806288124989100627689211928243552513256418867990547640296381140151944532757164949141761772006094998461127603280692091107903890002443524798669022258613684926799221445550257840540170320363980553115397452059757050972825420071414922276291906803072974325281018682624624187469754101745578466503149577002857890826069218325535365710906651166481684168808497447307278852730634904532974948511188118477767220306296910758273848011944985018363484754224637598346403460249438481346968852868587980820196785878238324699862982625203538127993655761057716328708112225628673859891416125785321831001805861584013866824832483208571525957918865940405152849303101016482308547920338708383716819123724336255348703034389844572257909592799043272730827303241322928831489406982921758504949805302552077218955043968640628536704789259716349759213576932157329290207835381170044368936501655849410854647957812239775752061935509398585160095117698803833903523529576471171949579250027721240876021641015615270360809859389248291846296510391228571044751737043539408272504114732132820746606284406821885632539033063621956735341327688213945106664201407661862770691032460008998023188354592725358598811309310218169611882173833381041548363718740528640283524725463077802898830062823277505946889543126441555260887268560386022598301923079144165500973565679704594470202319689289334737480105712963241599879497382868555294745660145285502454295492158472530024431918463268682156394408805829320949208020697110857063102634821654426284266188775454947020158209825670833149431894347437139001980804901895062859789013731910521731275741917211115850129661376120345986542755363715347227702854673093404723979056764188184634267979175160500446767498330447257646267573698488991939472803407497157088624855239745683323047628392459328335305508534403672622461438160855865946474044071004988152102287463185682627554634566491805683350678752408212973387672420951732080188773043974556448288848254140771396015063574240903239904480222034555082411854680660260067456970106819141320350439132261462946118027274260569080501515530497816672262977249894714948553558414479674886490506953095920072666714723939738266000482513512940653381297335560264327156988976847417862263095628473741575151901390113989992001565388260325229382248594069114478494702677278138823114431372332432360380329738995132576224240754040924131491007657433179718127063562773002667577669049063073522953123179666004575270487262301537740193429078439211310362906060848310209396866064973058028969863850532383618745460309592257497547304171283130675649986648493862277419423110795925525832051128203712433666834501519707188284864869032688883501309414358166841924853731898406483710101208188136516014249472987388911639438048493073163959637120714168054672586343085055575962085849838654900902950664607571868648244189940231134694474113714862149815876842295335804187029993907180535461582429361584819899079834038562236324266436564781110822044635128194428587380909558663502016744770530942520186297220906729248076507986073861238291747931978790727091882016991730301505306873332882301215558556551755826311295579068070176605231653736437161715129949507333123739917967338139075278372273896822066293430533291964302751468769041469507098070141956293380390403892958122959769406281629027383992740107247504220353294081315849049580733485210091797250050785992357175752541508213914531725232696726771648320938341039801744434106881600367135170163066671270982674224172216758569258525548241488885146689317427323057550211382251156794017092564323637133358803568018125512744392769896335991323490872484831004214947066059184252686721656407876955713039334689982208470713454792237705369826062862573208781692821111961748493842708593068433973219641430762568295931663056490735081669031735269547450780800535974697536745230662135064353012117855355383015386595643391078583184271851548427154235015149054119720617978616052903877124652219228780265070498191393378087701762077638834752427502233828241622034368402875720792659975806796894031880115590256638952792026543092901851328037011869555091676752407726078929969873369993405575754529201223604073498289562639125209037607130687339514135195141072442327890837995174731273572185178617846317064152940189753278324286115676520236785095383262548606777709286586184753340062008290267077733993222482594088294644681582428121992252388115868334105393234540448518093501707441732095690608112899709759116104049732257241340421556425072292111145250364556156388772336814049326225187909082994432348412532831362685203930267087239620196837491154091601474136553738237621705019176924357720886396863023974329578083311693540046483520835674899311200432088805773776298395795638319264999019289989554145047211642745228787898502390594951200265066163098118123261529280315731857032827179595372974477186397103926177614114889517859628621349954063123842220149904880899832872523394811658190806592642549779787326689575590833012556938127880438843681908088222528837928821891915736350048942588793457808897160412643400514564739619048492025762141929380813175438549583618207175679825286008544860948793594235656608241128806100160078512591841057387119317866983932340094563850207996393016914009016884959914541742536246261871202454292953305791899900213881929632970026561898959891753171680896965913796032927442081603334415934697042079642989134891244963198575873783464468866067735430329179211214989963911989545585730820917493200813650054043155667438972143522608213612513913129949547264203397184116231308194207361977042868434166247278284541895787317435100998630625043410628957940473182676175825541614998148620363448169687919260197074098953525409265980341036647105714432615290682290726162719140539086373160866260677251197225837221185292757789974097520306674410053587118876628542964691471063963940959745787444053355589857150343171797603498182724979365119058097580815184916925262889975073526003217050337247134260338704128396532698501410697442839534641944346893117375345027709229486072033655299412114561938755642464164268810646516360006034745659014894798680662159252493648889171776822247711192740439259005860845875152842510581508677313089722767100550793013327823890902243716117464747135762326554903654714794997315922959782984326705329719790432602470106490549398517010133694680342402435409031185294795424863274823190746544941281568153871733144138584246420776389189600979844314443394248567975883373126943247657981484807764000696476782028754466502427219303096654012344424300115155448524631341991016812822599006122273935621446521029954244147090882925576410683848796384140362886513070737191549342387144335325284947644100034066329888225025730593220505497953838472410579512867012332374722362612457513964467936424279737735383621830814803349600242979230183678912977891551690110505395047404222298375886929198296868623199358729333619266491852522961931879092912049467641632116005071053434200200249088249723929939546441548925774446384766841186808308142467495818651515419144889328146344584222028494971864458346971401220527153144902381737336793995075377713614582525151743363651088246518684768358534585316824134842655102591728917340821834754369774310214004098101110872342309166670195265224663400028684382033831600891417541105982935574588429742340098400063991101595214623157092644102522020282707514143146620901756451990001177130240430641564020837886776888026427406115889889807888430789450536260716112811774758151031217962472217274845794142261599384837845671858216527163101682493023522761566978879454970068392300402991198331120117795191182005610084678631806782647873435497346464170863102546205120127046956197376741616269520120437794876304164211602892870890679760043215752931633947770055063713009551326252325299454186324997658625448311310702035385191241904041504346047152861595107127846282147893359294026355541072132455607106240752097716178146156383874496462350127459076606777199835752168289649842428859648323507983563435187002492999949056165798381340252354748217016154496992113571231242360724119823032444322220189827992855473710835654204558235268309890744301962732710570795680092392814779792878376368048717338678401613067819194455195105941023526637277775218177450129814212661102032878606644836298443744617735678806362058757182745123137984472642606240384466009806128006501774666596335611358864406927089451613531096202911794466697179596993147277244342214378425574110797571563082781214843494957732499333812333965286516291652532333065439451767743432959450388543341252845204930738634875847549003822441434594373686595857653057859767998736958785952903169832659830578099323108024092838039501381034509919579524864503149479325598726866768584920345609289418201717994867974032316650995342163130086005070705821279876230608674041030011652259262045630671941396550420734415666763158024608163745435402551118684352856736015835785127436348588284144686753564189953324124243226757411905859403062191849125487516134476385637535534133403896222890011984953389894758391239129884185889899389948926632246104294789831255344824779781200572815333289027261917398213454136227740988057224017562226655872198865967301932439752355143262411262370697176816653792600563966402761589571416038305409786863541840975813820985170689706138092710882630680448357971076928239273570642797123847615566269011551540744888781743833568417048250338800997139007683155698093490918743263908294263059653252334583253925899111809223622530750025365969491471288834566180499653670851579290917893125428186104912886621707751154990499512423397314655165738120571606867395398244309447081470199528865338209874697422729333871914888987929671678903094393345080197476752322573989270419064820344544694542383430372582995070270979745709708668042267058679768880910047721847627833575392291466011611578532208649916834633027348366054632608756806056029759695853346280200995896463512324246178083721503333596358543098108453797307126416235425934857893371338473143978404792677658539562154966214000144599014933122286315452812105361048926381537468938849226339346153781059448334621600045765379852783717600638119463353047030507517819002307883194590719036592855194092596211949517929517627212649248871300109277992288799891061863523070051646015669403458735511440376209788223861651328007304194022498256057287121711256664119311185332100940465621284699332582595459075534180805022343256226359249612020990748057195587092331390054056287763033034715669525976158442645166666078426003388867537189431543054132058156065827303558260074557051831155765363442019305670935827435309264005301853152730393286546392951763887597925523152253849214138682245351099995871535603007952431666647981879302293098870701235818101042658058049633488948801942829295472804486661318886184268326369987830242036417999260985136662935384979987015922120652811029021920083841031162190409316671642346123730805041216561432536599593355246129094976122584241486739328798667335093801192706106627330027974409420604704405987299135997242620627691123196671528395443298428309753343535441963263697245279533795037977502483789843421419889368366511418128294933498563645577928199786117425682210403806320833365560611117380009187545353328559258903528674919456520977155668233899248892818672914257621322566956765778902151987374447082815638019997599440039815896283640159346490073221471933503481066385731726740975500668727827687884772740157359307391538283731488561876665175216632944045949932339620775544227183291086447897349323071296155530286213583915312236660988854546642471342219869790409870061031914037213360476542823711324591128750668177996198963848339054365975843481753456425318135277497646621996355538049984958202377439527405661763043293773978779305770105002132665410913436674131752926021967340992836577865975828913717877994976609591459314523556263898446689697525899374008084304583909187880219703409818208265468794721319157491476490968284877781358913722848585622750663556803508237612769735777165312502215747907554979177423546658733895070274423151735250465981426385634756133841176717850614000133122141891906023584230980651763389940010703489412354226884264559689611275094629959056046613373673087322695369432589699504855156149734718923681007863577870391685142333466380967780270405988746523324894367310106965819086592035756667673540678094550543600989367076154603853922583228670180536972521270266503019210817928289111719539997540919223465338943018442698660464100622324393099354111837244607992678129376736677660380970720020842120451083622900723332774989396165229752069094518644842773776166171926418501346398579159289879176285094477116881262132639635685690120197445278527897297319421907596659576339721389673243772564999190364915764770302554662645420785679631036151686047129942495529744374971523097057511064332513410769756359137187821564180137681804951391981795797140306514219083276564336886604668763477997499496025833888657018759653480532012424534002482209070512940527035674685405634594462523587196261013175946542178565410702515953023391679954920777923275091626897902573185320929631911240191192831363412126244048055750178910069323179689147602388248718060330112634971441669362679039658774099452061259447871054438520217118690299337981443073627770121019941249856388414514843794495627694005393975637805176056447258080698992436851237660254175717295226137990675252602635596943665541257232267793356523157234591957600298924963587017670298772616162785067087746965939677395131545135999081805235074877071287570858099691640258742732636707598552464142245972025858460044585246256892890075009218564190159404155168059640239853887672306467415442073181511983408628071466705162356714281128815321733352586337646311541120350263139338895988605704877456162464598698567687667630628658584607128785713805003740813741850578060858457520739486866875698486317393271506025885088183709583301064647806649393037286113855828600725768609680504205972430840201528510841983847028391856855333424169104031789905321989015763869904235436758106025109359378289187508436441502339067793831802184906991021992515144648380682331641747519346687684990797901508232338207345517457367116256014198065012723144368371838224168751952895296189009133639795165791589179974528597426842659546893338558588152763100748234813062778154709955011798119664147329554343686529988876676942459600873291299823561802804247814131558837326435601179632896705502271969118451484792941030319719264896455928915665933515838584554957199349993421651011961738528133346848834702993185931815191757598339641013594994363424573879298786948076239564839341906577723417611228950104763581159328913864531011695637185397772850748894922493959229266850681446596090181845381133077412567982385984288567471105561830760595899733380741366159636796083214114309171083263768350579112794541776626712104825952941954438648638660947452611181908326371661791682290416728965127775792834416585946528923033048962354845075153660431276848265642625778982240137975675623656019506804724461717775732953176265486850262554816698740614550746496531012995722764067176735353115027295566248730123827763178270695160168510456953767130889971473117779366619037006848742390356107273384233904933828288691274309466524682451462853390668245562396774566613133440403457898944990637678023306670751894752657077311946318515384406675752580953390180402480271863644960682321211434041744249925970120986850027549933230314755318025261616373233994269578259046430418287168450102703413617582679410277355612892775597037545081707243223547992601596215575727362197057799943339365786093016679490413599757282257873939839857717462873906706143963795899563569852062291423465788049243217275951148234387952016133654072762370213516715658333414246321498712867268872786351476760625246714719852760162182998946248594509702536317368835763291011265719205162426626306211835009374281407852932399013284766036639506210146890036097457169660364407324799122209681391154755981561265420364881798841388493262753554582034206540670033414860967239758750313226287728022691124083292196156204079400149407045329653319308701495116281299180650746458630297936473278729063198867751781192593455121718375574132029226202914328655253622543691309945822245802209197049143389055914941314062141459597925293121147573778230603766809529269674815749450302620946017991839473644895762789130967923530033333515814334324780762058372676296385427645899805575761548421996681618576135798335971091068876808645245496846278503016326661143705761677751853273369736800664402056602038057053033545143292259462884638814587543870785615983669688686731198160046628745813101070557334856703593671965057083474870034088406357511701574526932270130715627024632107430170311771768724117444828944347612962221165165575883826491719091775642746909268000836220706402916559169262526375735838553514677267733793144832987697449375387410768426086849786128592354405823362748560911918815237149128152009471967755771051216912597231002866853622525003947613460671951640648340586444817091325596201223181599997303863853526338598324821638856531374706786362392838277155305566136858275687703124240151572212845564524473761966436213181001561419921769653291251776145609431043034960688348982079867454761796465424458650200222363589624310403546411198599175636736897413889974339996125637207523483998885600082232764922466703764633882233847954919580424139909640459981561158523957400524969060477570337433221994529317782969692952611861000758469067311081143413036838096147114707873900116252698093570615922268793302854115571962272454029356369063458428171306082391499541511193868526492646139619376010589282509120461182758365295040371535241412913598260833245282201852032824487076651721622191781957342872406935288390748141766263363724597753424507356596251595900797592921295911020866140915097611836743500306724228264985545111915199389147491273754083965875249905618651107859542001247153602742404771153354531522451969855807951557056002012138050979421780447859309883019419307408108472370715052875400745369074745837791178222114339315226474599751896613328778559660601425347389631088055154971460471841915921451318148837458458442595243246815517597982478146646099256716550753751317429583302178395386671232602473050150525755066029910670879038145985326217332226443268334516555942633761093871495295732429094271032640363873864534772033598895906416007259213688054714364236877458791619981497848057028273740964512012254293362619397024590107798357255450204450059843268830981199285272787885583960497276145449304668109549729973505354618719761685106663038268524841936466183907685297412202909052180140022843866606235464419879009675940795596035049589370143323969851619972448669837871215633075682355964547902369431966606190096536011239214357710856428576981323201804439293309544927192837964842248136947632823007988399664103515207171529918969717900404063514260688181058902307215778859388393486736447499133079416440127184960790681743632289676726030907109627696174539060742668323672095080651325984927423081639363248271424732994472149739022485535071092495379560766452864109094821517453326831468823570155404001752090411031507067821101204194743308455752955827514507629076414620406444925121167727224237798498541609906565202095768007493324779681736505660324908575301917027370266676345233521309139683728761552751440230291139103995547365718536722323540893951954906715323847975954964236837732528631408075941700257166036922912603539343695372300026388971450438397781547561244273999084992086478421371348149860947439904911438526310578534029609699306143596325273567928872319694005619948779214774243744576778562458965364962121246974234332567665871489917178891620966073895343757666033702174667602122291233925774922587417672651687665735427166520451597614238070968438084393317394420938287505546680224133125415550716636543804655084267061579391579840546593534531468838260143724911057314716529424564917542373582813555903591422865426916163937030125109306687222542540159616964247709111518149194007035721420618202387514328348468555144615100070644202817001298953757596200881166721546422110303630451093244832778769373068566509550942068531587147444308426577148789457304167500657494405563576632394936463226641160008979772906962597609827606190665693826091865667997634825156651281482866492824106467642487314072078423001285770663458344127926507826852387051850491028989628667054107911420690094437051969381568033767764465135619118367956445855686341026368763012829595119894698409930558362311707244018647905284253165613360958131608066814195247416635648206812225951049235025750179515290065379364820642501658399183626384136191083796620007016824115266339123980361604225309346645067601032869545376793353999465898245717080565273342143469164795315179235039654156185612207195138781687585843684429554382778145041399752759410705780681276418270674553020979139884584116115776120038490556178471121878915366814708463005537876840957254212135451382373588187935614764648338386987206737094109729471793203927382693672425722713448452593483332323806218964042949979766880009610323018030433461008690722154102285124383489374793928085256577819061834344544529368962279109681013676909204448116168552026691046881866389537543884868226393544699795850940534822846980989026720194429546362517205258009883921389228067060987898117979427876757241670606336144924946969938757027376249051139701442300763630054287770253353966385187043866634358006772582352541542711463716027254000247753728000329212121793671159253009866051840692426852887902421527742923799019752533427915178310728144684527495123790336556694526385868374859630033491098046263087972148121735003772495920431312713877455881464140300155165462079238538797757172890270719198791750665929556851763417265128581350511795488924215626933841324268509574853350893258292317683924726696144142709880965355395779620386843948865418858365929050932507346803566221891436074775962033474761461955701372917122681901922963750700794419951052735494782704137959028226807062538825244684299763313829561773688242654634806988366405289473193169912596243397800022902989253451966758729679128744589911264994208000056071990926474375204265814776668949520378310589444040673648060624330581787680420002295705609382474716423054464235256805531325255749263360560800883480694526373687881612352127270502112159434186271176493888225149319407920776756257869626420180471015538236864573182281099498724472097311068102141813283489602009732381178067032497525294750910315905755110948346466430676053107052319741208418834413256477049309403638525820929923960480758893533037665705441724126989846343294649854211621301057326973433553645214498007548494008286093068865794702997509352363809851124735897053744868686397837856879177680958752381741417750935769010342452610202395386141674977272721736004333081685127574858442518471280663667946823276384689446813562875519183150312151268329034056678134821317845028278778230974148520895542388326358614182955373285174261627932892422032322656468896757504320115049193013340995781092749209576659684141241266515277220647537043685192767347747637420810976416109298117762549839884782631149380800282888008311386090419624681277817958595826141560820493815166670716626987277034490344385537332173510319881137347774661398222363556138780440182444108002441727584444525205145352361028514629375738807859978434826671603184442652657175225235309631870584394351813499675018918621044641504456672214093313902076635472966770375632012601396779244812642535714427533240436742407419004792528618511345731566555513092270593431920197314491074656026364177966939174720498110245963853903662744260036097538266378315573790230404859827052657215324872840397615907224760556645668525052788530291275269442633885769164170298014513562680171584930555207061656044512736692351660804363030387657721320954842069544748889966178769251488947904270677030884607247634327982281322012192513383443577440319983362747687437766433624825151175079921878060918442353822325875738038167224755600579317502760785351484842228339535733141727493412105393319486826983454531721466790280455708546991600868441889482089393848062846088963578966935118960806233501426253179474795319366290925831577826711740281406818659533033288771983000265921756161239491859816778721194890797774543492169479316731940442994952987136952697355682896733467319413470433763237109595973760660473428691100441119850881691573659129739295095141231220798142165666776469100990700089648575808016158926903188604355245343782950077911331118950705865725321359250784593223907613209437054463549471948720526273741952910464070413319234522724446832835959579207391041216587565858664888621576930844916204629351564917995994088776233843795726521731174081323858308359244097339584004893942485954935814954813530583551159046595987953574760309395142747148357132147397248395892575103577907858919365132349717828872062724153070851036342163550127685912383639239449364853820620845359700122672688524730223438118908825393247334622647102601910319071256447447203215636275292709659991550786186831395894829087325638872233560520093500017230658981962106496666828225684511055398674418355136919523407753337720429495764279856689501311669788172792416888126078735479306903057749300650856567874256100077527111566834888092546461666923669327824458192408237476608458710634534775378887074065759778324504917961405224577440930421448013958855099407850585604342763563423944764954884098027309503734221437736913655107779267461831873853659028466665970609164937464440519095881858473486921829336927749089394457836533946884278849880202182092184871487834446210188355869942086450897850110856767901787256415960251762288029773335662846331335893049170582303700848275927235826072425155481754996037863454107029393628922997432545378139802080529761163222327605464758751955980881644479538545902439592670231251999763899457273245013633644961672062206974527888853413310792674644435878373680724403055461232215183358100028481320108705439136641936914952946257186926158188797596612562786405260284338920301541140769220419694555779302576881143436819578638589845734358244574778238755283082344831428509988994550800282932359776403300556770095967189067297228717240094456142632679669573779150931181744376585735083907205218367209343736989535979270122968404685195412912138096306437905979466451295798531580049534298998102494609461196873878352291376038049543171134612657085874431528500172393117653727617264294535215801778472236289440219349626550645423069223394488558478596818023341173873527963571525774682920773817074518138237079100902659840562761456786989728709904222140784404741268831614328981609040570892898957374435949096594056083317039212996694019377140884674008549704812843196272807089271708184918104686883665927762192069852642836034535572318499774852331716541544771600597729530768000793278609942427033311422046870834547858212586679971323404642017361057331979114712333151494125136635036375602834991054843002057569703050045810433773210139219075297214690811061236751254322084976127461357672969595868440954664577787143569032501280710669192166913696842620553839054463149958062016700108967043518510175635762807366972857341270429587287339030663119511712840886621580417570723039940144909747236554703303840873009550654743910919103773491381436134582354585873574655078630451426242587132737818397832738678467084181056111188621474341195975896566493982704672008004457926745031238101018135070070608837490050000349129764506493330021679792690300503587313280789971039013371208640144576610866882384061412968983783526101668401156730071038441735285140545374862827109863572498622192129780386467628608347467619096907922714311212946915430901029616181436580710754668320632381915522248317254037102144094978808413090212859617665571465188196386414824383405981306862858752957686935458390064552417928704158343134114706810093824087054292185025716726828626422341743775648522952545255112252336734620104857437858964546963215326774997269371795245924719679315697787934281410911674441175311638138990480384716857636828567230276537029668418934319450275856567962421751937722254946437607356344685286085214908164503905950456723562512077615544270913132539189111488869168391960657480177933489978516866595544780774384339391491687315376262271813296696553797720123125111939163092181417206541658784029887876333557509644260909560794144263683380496123850218125186019258687252104352857497788011967364883308319306324333163310405586100259169052551248757365913564219019390655871028068931580972514691757113974266137949991415155090670717384959759266329430853621556566369890412920342109456643929477507782552864506084177221246894363012065316323022982800623474485755004220906571901479551284535416224098720562772864343807542471911363129577836439090890371016089490836233871514938872838788502532665632662163106839209104840503237896993585248929954422477327845369734874857414502284845619830287823830185675601941566281050610617847216131375144203742197762530459406206896127500715423185886882702548773201219286026683694125876166843067683442170028993841464090441417226485722655963104676118525638486106267280490748623703170538457259320096147278177155665753921674589011572215759915051077665285221557516862740448050722209204280556789782770544605677101462511319330080912040435328584604987162852347094162094975832516524083006982847459631827563354949916001236547463477875123740045532242881224810999119753834402720976396775200450125366782842268112049233567858480333955499165487370937328881125455519631080857461423797639387191310965102511337737351198462527634013324321807751000763030878353983066306649065556503956250829901775230180030977299412310948849540347170357140044274446389002012335930571087940591067469087221966395840680160031284730843856333013472539948185585213974622257257612873438477635911972292668673444443246466391547322688332250129523188618168613042718157688090584813490666172728742917276954896556532912533263465341095472794173480764209638886861819145096243895896395484827833551817862338225841911317181660863209398923486915997258710070465265993426366872261053785454491504975658362743036242435372880963853725363937732755676019655708823975557397649544610403833778231980467666773131136267062117276580743412658649906825266772975117686387026232426260078637675981048216188375711324212497758520165869217693623210036675539980341010487304709734230743237865556440631146462748166086387767025727930310892493104365013068992875147125260621652472192351581516675442425086437982604376283800622167807747777946964196663047212407056350858280430458068449862615360902756954184929400479216830259822315223239138901146476705307928374200440996868241724831878477966761070811323072251062583271591335601214883387871097965301118846905221508510929994160179115605247365195221312776170385475556652620465069342549950357019078506440454736017042612329067952260292317840096187532021188680278108236609776043579604792345572016140639596549963490628399837223492085174814404836314314021103210280101713873476330838108842834316070379648054136768883239924645429206019921046816394157887790094691462680343030221386014911996989717447190729633367448577337651825575230783242647837908470871388790418354313915071016847125152560620848517140529501440815527786059017102916711132915206001247761472579028753273561994759672008162063618827663762566524693970994011982842265135063741337041956016733866623629895337153146195813052592191183045699997067063981111139667713513324620147445489388644962913822235430210079811286984027577087338237947930087573575202466805990402614520683404402386594725932028985613738079206564275701260152737430344769101989512592785190000304367944784329097537368883092970079285800558253108787654109590045299596842773855980380882873593098150788864334796673860982628047191973056483425318802244941928771040000015161939353664125519140525758607588161056595949945130816361641420665884109809804354177280627518850237616726465314021216481730288629374408256775827882865261347196134227070001581180798737610884810010824181813950351819116608331474180257193179815170418163884735986930424616376765405681984039953357681231898991205545883203724281662237281679701482792587662877278723472647884525025375535071032000154896575986499612124692108789983888225920319957652899933485228548377719826094287799962217370661276225848627291306531721090963888153183497459221080800726314909583226836066167517530330771131374358577316773460212944239332642524652699284209902956284033161543311513899181352192260065646062035620193891336815880973170811644596322445582904356190764281203887617899846552815232247097627756929218066097051291332371155566579576371239702688418197531039784838935452424618552950054426681554052158459162529743080382383474176710961829550139646706928839414806792428782874066425432374578891746160971710818903270917826574862850475990551269505782506557953023441624836832653511004826563356006124000566095775680805226128282579043071933035879552996107552598976667137940286153822265527928491991937238416549989794617739901740450073898573953522754659558001657827218866824210183721176388059907938423237032836360524126396482181332548370676186924389324649931071126290206615236483991438921171037445819790872140502096660324388351909606687518019958648507300308270820527521298474657147391293645533659309225164565254410370423675515845652430371160856137833607584532389578800140383021034177054326810220044780547322238531903079988195299003785309036750205735273844595033511473069399877522121539715450447337318232438451768097449945330948873714540012222196963472518636514321061960471414086640778239978248395337376360181683317776573518552350194167569973842202836059022821664533295464456728176151087553959038818068095125610770991643553819545627527981968673582022364421514264676675781899017152166180396716298028845150262321459032966613514311026262652915485919225326334711220221367315956460941275743673315606773836654457602270533353097736962515985531702463781751109721742295224103649776837771088710962399230877436973723743153680432961923732066064370516362858999403648273972677394854267884098339833893741104392340901597243351045778456503998304660136368595299625457641531422931511016667751784980183669234267927633618537728534235946644354781094159787542952314602554087651258871934585258213626778707875033023224654021438025119673423528743765455065845487286608639094996111760925389949116365788736751722987308135956816538828074773917003565615312094328345318836189180611326683464633617723314830762684496630265564463741794666010728576375971134982115009471778843007042550490213842226983545823755619141649412859420239294445662557677901467426809924984316203249024247581851091956630197453025966579633496690040222176401669382628225213158068170851883508292333139864269792360796963135917328754712925719657866516764979957511532954086790527481393559844284368476119501685278832156132132189093650813618588798111845245186617742782852748481368151830725158643897666443946970358984809331797663046271708929637711433625538177012660765256278403311360983329360277234642576718217109966424982440613813417126303617141136953524952007606354142966338503660155358185732404888327749463502353296629947796260469328700826751808287156632845770485110147311931161095427784576010001334539653664371546398748699183253783438997546637602865261764080372073081544079048007816269899109393169913556636659999204607063390085924205702341426185359993381785727937406129793913609659225242315683649321468899637662983592408173103036874770220184090488414473407048214360156790277226287681311642318505370807648974808789956356859412713762870408547545888199210131906302783050029011139465399093548246441910649888409113592418511163424545330206958467278911131078180514769626385635549521174148303656969457542720450127572299188502559034787985864159447959419267563178926006152594573454268224434666523459685870605008944311938522269763226597723067884013736081170587474548990982987374123075150381532721501392028560328523202584696559818599295466744182576295673937215054802622411277136438062850764104687311798190973313412800296367217539283915065181858833021984406062718381908203822985872484856513542303985686138500311913389345862021963673982730863617598731182868357789687813482784690604332638506155834603903839417779192224289346318580050579976085316932490009650106865523567367680989744317630870312057261301621624991082786167290469128370202481269230599800989775883939150869930544826229745770646755759661215809114371193285123788798406398031170159213247999030554377994947998916159670531650989822941841399851555774055198527863072797375524423229738898674616560908728063894489103082937577796315318302211343225812000744695761796959287477877946494624381055765103632255874509576075780575121331435668014392376904137799765303565081078768348532535546787758707647137853517671678662926732946173526678746902325368140962795729506694547073903533969392736359000328537943810210190199057006746281379010917342263742342305266226312201547850637994208055163893528083553397043710723649785657488195496844627368971927409451634900075005261449470091810835620917087457101466029693111883503690549240732622044020769536681445760780656539855791380557410639751992691451066684221777371544126323922191544022786998289299222196371772030292610786291637980009889319914865277573648549278577218863333372199728604307795292596163530969466344987204462361298494793195388056663486590568428509872756333074305432095511616195630857653263576161322803061652193870728760963750356571325194578819992277149511667374167120227710475614084658869242678751100351801388471770632681130686214099069631559593561548170824233745741413912666693153631158322801651081717484388061710021850268840419260771726450400577016639352435383711530890897161484592990700728805058800046801969294912998181410771280692580338235766028673074859038004668711676595561845522701378487721798189350649251395171220312952691772255430431945094731330155812423881861352447652691693386027070792553044739427091585366653982492320345752778520401791788392840909727767873730319779912902597348453245904309981160898505445996788431108584992596561585690392227441337754800397242796536652628913709058076526405409328717410053373318079067983993626930487284999838223497007502016828744011897523101552688116745102456237271700374815459871519631854135928872852940745000571903796078747913587385751603342414329564638498759482951518683738726975967190025149345268009379656550506574705683642455876310345174138004170441353428087238188501083093067477591695750755589623984442718729194205061151666829701538400203533114872556586301497514726106446367565114177732722812918339508089199902082582778187006766329971912011507512772884134668107687199878095023228506781933692487319320084165977523364882553174787124180869060611375393361094975319576050770136642314563495234019514072004415249199289572693753756046024624972638834452662954355976578202252750344454766068888612167750087163088316155932487584904830398870358531270932127207280345845713545817235021682966789069291151603396297320821121143171803525811991389444410540840578135047716160731399964999763307144296667374310291002120831222011939096829089941517968923489911836330676604786432267885507830576573867848670469537546129681460816785432776849196893484755210396757863338769407481396615966864796099543697287030475692292736143664445659055821752424258530296989855350407443472296793431964655026557709185205150583742596205512620909479133390011401742589582697989519403390029022673965675453790967255523427408224659645156196516153347030401337879300170431299027461287494313781861707379642450047377756755444202891387845393757903953043335878256533412471752139276119086791317865146709538126539361568458727774647106017798660181916183280105918165887820474950272813845428758375025712645884552611994406638526580048177582052013903338767834153403369442280449830763866080555614372407361500111054378910929708101650607208331714430922432282709250420595154085064459392192307841027982032399392481586181011251976440338423124508010443192784889466766385973032765349208746399536663913299850937399329590453955062666111589799451197381800915324267366291806533233438734228915992284416208978751973462624080238093414448709166742548166059597613349927690870111174445665660899955997313833522285776728494642328970629253867312394656118375404048785919420781524878047634792505159933203499527028817145368789521096536715457512681250922160491459250459510392380016038268606941016425027043477658281064730773708606195736160447504752645018840885247999484156974047526557500436689052296926209078196696882988164812155384399490507347828983742962414058907442550901118110279805282473297892953951473212661110720810362827662649310802180849943480158459704965794347888661997441619806221342737059055393260431029715850815805242236640311776092974704940806426833351684816967124022936250282500423722059817515612882600674671447805346309787254887921833738001435800954953062597763767482228218941480192294316383437769440875211824945515238580719251660304016617034639417268344768535917291222762122842444935566721275467696772112602792105030294993369180490054534552547851797180459026246614188668273431773393384137621540750849493253693205361260729157100364848216750297564613041159155005580716127171506411150181070543583772988566878054428840079711362820562709111153214397865677669415226833836619200182646361311393108594376906719213516241854943412403253075427157802405296379154715824647747599885636104249750338000422669543098294882409343542356288194682785358309240593735513345775847402619472224135973832754641155395251652165266961061896456700410788941684619585723714435540676988292362375783130248372420888713325721224222012940289073688439450739865349053399961560246257596842034273001206799149153666433737095206769573286789447642932671642360535260598962210096964898600974091490943794729010777729560869963688586549694364980228116930270425557330514960892769363800949299907694209731099128420833662015215969678517037465530563259085638882262908649274026690061542317961909261645367405961651511571799994090897135246562662507921968503792824007999660687282825532202673676424620851175785321696400182262106010243806247457710802363969730664224870122043494489244483544609290445728223300129561366346982825454236735989366744755191626914607651547624385921275128339511568185191335934757200369921079651557822707201429467738158651511977250862882276839680150332169506518519784633511064918293235822410433261227798353028645633788496903192726935875280536942462014334602235823343694651920634684749156468315266053987755132317141149671880621659802306926382194240958238936488905955209776405669243609196329093534761440492150582175820797563313058224427041350581962808469018128703308416446119495820287978548651841614615743335769472206521510014715522042005749768753763008101389215596545275248196625806135188983775426292619229973603192024229049572034288011771752195968779790211468971528958197229411302081007738029643805574868791744016620671025249996119991247087669282785670812175770819106570699410134808075412884418751053019155281577867582693835396753765348960223298684903038022020403577872807048168202607163871179645441099824008032057734522286473722341422601752810026415222804241418580408135001838201390938101400154189249201028470485719973939611493172096791665917230722718124798388556831179353235660432498710720605241458676377363538129318525968329078066195959776396885652596722755031071055418807412587590151791306675565362602430730726329358298763677070387330402156100431445990368103022108153992444082001224744684487595129921586081872883623666612622773791784391637034818271342566881873935432138649664682633058439632435004416576654055899701734908422545960565993113802980657345350189427729990209614975596098723320523201065559208530037312827130258257474690887569105224086904895425990915952094635478875127984374422693037289933501276608597055561996643115292312846603913095186660110097264110372786067609558240804406805582421395261155127145418598110866508510347903310796638178612888828238425765099080215044032518835362407177769612376261501139046574557803009971738988058300498274503071168129868325228486368958140051099670350861463815246516062499223017457285689434922346819981863285263637484289542420088911139762847564031298365589153340341721591831410223302001682546229677799894853597274357248673143037108880085996715754849419246456457035994817938371774904004006873665391906139458769034811061581845680540661138817774164368113529245749456625756922838703962966186286519353196210858174539098381143303982356889833579714812446360791798343581977120720008344366094260361986014191480408580848136933693355390945391403996162543801532695853327750787907902653157921638700391101193951319590755398520450191098528403825760919680782902984779111492602534338448345772812640025532075118951928185707872165039830345728958642505658564578150452299482995998384635897669356630055551817083080147674984732384471078087903788459182661668816073286937890689264149017481392195093117556797413706496241781116409116646231805038471194747846346905343328516243003875323530071018466774335544219216272614473748899393312829125123498789571768306452393885091432865632330483670489407098063054558937165856731870755922014063209855899569223207618114346955396734034893278858702437363202540601157574615016440832726719820730872291141014192824652773695378796951225790282235748320744304450369614052128842025936560029309393412881318881518946477018086981891659298728886133477419189180236878958218100734362215404039882001176937209262505097968766321618266956315968367263140765369779646514158526569475245058984480939605645710428556490662520642296168567414698483320779112583254820084118564602286518644840290212775649853040918618123179072879844580638556711124577172889283787373657062984040234353689695279243481924448957606256687562649184488410031412770730226703310080552546512549606382804925126975283181241080805881711471097037324729442269215361546540147364404601879699911279143150804008411449078221094523922175415935038823235065160337792761789462299383960574548239868808853335442835808005938405025907200773841630925779167375241263127752595379634681902739415753964259255482411122493679055021684749541673397347328923286997830204288083341489066428241859641700612921838245455087659442862105261056860792927322987290347438357952566268858270740265925357926620314587863694060369597906746978592335896391233430112821189584054446902549850265200723996837586688861354359771769705068403368109327528060812579800469959854216766570176900286748009647647086002447379192623253838730681730682933729078530932199169717355241035990995899090783307275956111510035475451776755198782466701188425479025752794448017255974569626992773278579545101410615586536048899487371061139909849399110289320418707705312555091711189011502282585950525939211621773455608773019536841872544971858552541526119984325529020039622084486618654212736902503437367598669775601784680402568299590174742735820765291344110410554781623728133893584656098285241771295696059076288358492403213908699472668663160936112445181590882198185902411710205042689171069997106052785516106145420506509343588954813492345306298071964216225204875132332463575334784968761999377426230310383153413775018772758490246406905141916733491025881268062820041282360447774120966293912760140743462539447814344706580851532550227212244265098594108613181350669242420102113970413386216109951655395804565888414513823693079036177745985354237499763060371117453765859056817728030326158211494714665291762131475096187100449820993453347153740517427151344426575285630244574097699469481612988104361189031583711378035880817014309016962187449979557191754570569459209238874664302031744797464582057994580510372789649061545206956555713265463759968695084104480573003312112053252774527763593390936429291048679825438084599130820621140692314685219214139753364193119997773570843916211119840633874797980930176420301881441230284194203350868913549110628387108766094423501570093048499890474591938025516058514459521179973016804047317726899467346531885258397535736927231921831255017763710195782345686852363092788826412384243099572947091436866029778131743974758749359903364248335275675730107954605364199722753933859719848688708885891737163977928916163147531756810093553808161064797358502535016431814282936905087555661206812908568894088869289212467854383923851887311743155523298532803011283493291857245135943749043410314398536468806857548054047790545953246924591831370719743084002191869507765410397355482412911638965166322483199562921711933762455735761011748613117865618665048109352836441147977032556409857283565226752689817740909534650629749452281811686339655726819857669980283065051364093861101397672998794278097669549172349872654889170721169487096413630052443379463311064742359747735053588352563198586056643906468443736196382995473349385173462662998982510333404921796935610487637940505647799144074831579298272905512972415912460707064169000606720256242502505303098419973363314431955968346144039084774736257017101882048409189191170090309167692938339869320755994654112020972570801036056712046836167819843109977494972094894993116749169115010241953269680259296973286810174919953988581229270435078156778838322952138077520012891636823109159861350525641000924663240487714533284247955351692201353259452932550926970167619117693524069311313043535091544000183311910087843478926474205647384877263960116398281965009839291052134547001154830854983984513752823943938980170247948628497909780236818152658199702657841502562179107622354695734677801182597784288153424323335908669126447440590847577325790961258280690152296854964125200596440189192879259575828660805344051111165099998500299981142769680665363857665893345150146147995505279680438289772288208378422754056713268200473516923802295474639746525369347847680665023527685351647343412007738196060619188715156248178257840940297562265629350071982394099695069993221982702110714726892352487229827429154216146597506694435445133846918867053931703769457268931122798924665783794398584794606386573843262329685345348130471450180383929162841407784823070084632535134933986262731350911733104206807419438601190135091142472053335769511944929347245099157805600411385977716485373747216117692772290076731495350076626684958414478014152135149784166383041622862430858214141393684358795233765323871718075131055927539582115796716445475905291250195347175456056962087764773137947816934606625629179991708791425546364499762670298791857326268048724101904016018814731084381053523261391179362032234017384466031344209396140991738938957720176055962738070850445158230525369502501987212918726225371602826476409769533344561605964964860599237678776183677112265810480057007644144431106849732027281274124762772328551662159498046793565305618214824245137973519818836132552115730706638559916475130376435857346398342121726407720775292734307584284426212987386495416086709104919691830201566389927433131402430550967970035905326709551200904720436471102053675751433741087458071000168770689214351117881849304579645467211775985113233424584265907192284386015635621515599375473711635960853500035608504494921909551087020752506011689485928487457086897236308995812902928737479366704901950774427354344262752399438986511884136751361145116680462461488329764451290962716284491715681956393110109584952680072753614252808283731423947629684227587055275013442833575598065533530448468270138767392560513009897431879752962156034085971228053587953174269542164992769350030717807630485709187207786536345916883565012752282458481123515004411491997084652232918652656308727493706427019938707892218854781250368564450941268384638685732965805146690207058823117600074662043072638107585888300391743187184279112026808335702583851998423687596604171747788550335454674239705238988977051448803255564877084126287144473930250584895132078530463792005279373149901123645253902251944608611763698195117743431717908550839238828993647642293119100622513206879823278836628046951937588626547258912938319373477386309074646838784740251455791254768094447441773569764393305327489084103002720005499327480437199526035220728803973039156936497683297115016041418321492681054690928956221699592566266554536313002310907684616078300223887093871960517723228218180171198895330769579077835908811304644486213004347685173301358334674338268369437784329786702074895585193920888839413459222164044491952406976656021150167683720534753904095652911396608074434980733262604454982356139289803745649229789407450398951504389276202261575169766901445575545197759206719945413590493979074632133032202492674360765707469803541797362327364433482095670955687913639472582771714044237812959247806921248701908949813659337717830031193760619906749062252034388811296267631791968405921234223445841426677696025190259382064149903408529654612070300740969166202110199273230199616383564974042664068288660055846530341484221166295200589209155435943805297011818743489666811204005931798154284474749837823912203074436807459797740279551566322258475794515161182355803453319120250482956552531600433839312948935853895588988617989088146855143169848822827871403320298016464290126728695660038131271571649273984552196171599297643669693031086645479394562707695086390114326422271529974994788651704184774245638114297269972998277739220979417892248953576032519414015980527292151225948268397242381114140133209202233526700443345789869232651248650491421685965131585323481584344493147271732364590046077254337436118734133399625955311483772185219358836194808845423830420955521070796523211370357354898500437535288424786973735227144564646480476065031603929589905411835734804289941591740583367988050758199177502239418751289826866208607796205763349467230583801099342736914217018494136037572106677603178054433128258952468474312153683539727562954852677821085333184554544787639322448996983484920707413276282937714867492165633432985151074838345542813009293076276382259698711878678379577465047324995178112947861603760962286770008891113995277042868432059717520436868618928428073355991453820763249815817782711828620925167425333934479625967094597371265136596280561268778003000215559013021456412175658481879451841438777633141277468084950133930021427793508385157555417927416963901009576165380663973734514788944607651350437909311670814978070119683212182367242067837371912651076918036297867274184357254283271800768817148466682737179510974937861700534490862647243687079643322331997771292535226909459040425044903264190715249307509597465461373842858056561046753041149625714132370501887004882519827285415942956068790352350459959172336129176761741802037539888110075752447965806925627967532276105411833792484716938933488916375247717631316060965621295327110825284515609142921605336617117467737609620509408120179622740892768701853811716676887272982447147971963342406210868952114315195086667468131051901204789399627253821589063926432674076781928196316423759766677573747907834294764326805932933452340752691297195711459530563403726651716780233143009327593353969408077201181492969454134841651751604501802814326688449297180734052645281247439364029189197629464176850930100211148941548151632300450168578463852456620348473253170359039691783085809416213357925449207431897765325079776477986038982917388723211941996091046280940882075746455625312622170435082273088240024100343020900138562124471531478664825738715056779405867785169052159581022044629460448058598981666086543302422118622295095325312453760464838380370901420343457811563166984610910149700570650645035301386299595807244096898418580899119752698372478491402122055605860423883885914788716450044443144108648627788166186680791999055838640220781936669181082559480778039518821426770117723677224464162386219414382241180651884750521389670577518104846985842072667711700574325857341854108805839537995489342007219207053764759055893981766332924741432752625164099102279318149908629527102973795656708391489739456932638554121604691515437834285566540927475774349556588199059402585964017346042293886237513424273900993718990349895446316405526484662846878102462479001268898274909798400572779617502456051591974519978971264177506847185391145574847362204699460241295915534133541020594417065201216151179800451122910477121225239965018693901156219302399659918457779730351699067022382256752661732612453805896115425926159879088947924133794993583885648554663815964777959333172736027958494194014211225584999988139328070919586282694887767386579215533471770585321633391376766653837749339630372857591730165682121784373868238873704542456210333749819856264202008687637197363881275391711346069139187468492277070586703187868710291869073444813146005348163160790136323839684466005171038794967114217155333153634757539656990294136949888570377984547087764870787765114538625795296414096520003883604782991580975495143180110197083390943119389246162801517495777754877380461786230117286670023155065306933131699220009443887905371500662148513175830460782251195472088260925544011071413227656662118847266924289582358763583666995699644207965680460033765405771560191938919834726342689526230812893553532867450868978338974290674640479094722472447242934347632864802065269108378060542879578757992630338303620977716957401213202497332018121208172064490126481908989291248660130716377093654469964227462711624980004339149942411531003122091944796359255606484065838066686062683125308418709821718862640360074498123816144018295241493918077316141535403272500029371072506254498315365088370140128852509701223326420266134786523644388456600181389854211285315040993047673334676929758239304832411137957129313270717786616646932048071814017701772767873692431545667428578928542530116997450222991056516882677352531348530706338585653600709067785971722811156869985813851334113773316110656756770170876125542073662842034192498996489411625441900685521758190233366124483932196540347142438514455944449658975293954037124029746125898308824967706883579259112958852992802775224409205690762471569341384750004769751342303583567611255944651489460530896126649087674961999068481743422294379564867791650285167198022437682717377468912021416090097009427008339074585037584100109603238424564018101667194228731254162560252395785530016273689373615044520862946675272811061440083662228795410735770281295182175454747613774847774357288625916231747119582251618151721655152910291698556654800960405090985763702580507039257228318082172179040022326624364826359999447674398849055486609417533170954276347050682174341247619930392031736831437029839885055096631465347805030729030123079353825433123193854248741784300604046705569002957731440406364848267525348472176015245561031588176821476023796917220839528320546363055345721721659658415807568090867298425050354548046520538932315037413593649359570996662307291862836872281449697564204341349243130300383830283843343473552790266878946472547001723253467593166345734493371499264620453917217639041720726845333545307057975486771077558734549471180224691637587063550335538866570996881995368340683937588139441979973909974822964417204219363092197485130469364212575920915623080713679030678852540031132291721009183618677219876724334014096558192084197218160067017979067610117965579370655323602587180797376559356433698814136237643282101245109634290874910233817276004419255347615598284059679780413729201288517880343388456368626111144385290160918071109185354219221410272164140694314382211985219932246277284493737146391480998787813232161529898706157216695722416962829379847169878822549816843914542761491803842677232195110633470450341007391519586939950113034076596376799927706912592602191061622086157348469682287544833327332982258431038043274657483912874546272112681386383061377504152050481064078705249786262571544666858627680734354806976524567755570319412624612932185422278376790325513760675523452695916645808069826167073812022095035956118330948094679528785174693779756647340409006734443456098398383265523629069833089571365468900473658109978641120859826503927393768753010121719821100466410951501272126801289028125862151734838894968095497754267231698180251662173900262371426643248042238852345689928365039424057168894865567994943197816856719881445799920264166189023694188018159867797956424524484025735490100256752734916334620951162733965556857470596392497060499088630353996176082988570178402826761288178914643211402216566989539396135781539302910265043062710236930229985061891970293964765307411058022127088909440631865183365990464182940594464848904996648803635725394124826914090012395638753443513532595803691565987260827370451189884716747413912844530972391804994275760375697126068714887191514117177202573520483647517708596857870184832356791424287205657005241146289460454194690704084499101784791834081721517737683246292305591820113918894851205167735145954286245924798007827220265110386904802111759852001374919922447616312667605615675194256573152717419086836222839168336472785017760349072255899734112400351240129989696212916188359048526450996053712588213161321740163611423102694994417100419742477379239400804023351941594122670814140873426646705374862523715229517332850462768058679496041716968181467047719276117526871545295014337152585934023259567917338587737822764581907680141378114066974325387646767750804830411926255594545263994062094371700122166796707958865239849550046039112341771536450133986425316558940559546203011920668616689748133964053846619528557707750779441277304966150268273782488455545401597107065328068864936388260094939366918812052707009215790280608471862686920465996497685817738113553185510781466513491005617477532959554554006471835366198115061934555943493004895199271412975445376894515344777057047848835812160705603138655617305317316853833854899930969828152882464409633428137477057485275529303312296651524434137680043500343583864937990998522211336928616296247007884038490260790141695658628592353780392786372707137117349311787828264546719815967217814590903423126850818845350303958810821588848581061717517306944561622859671054971479210248645047616512858015214780578118711373068245605818316311516338876402147714590960520631050436594612099561360093322950708080242327832573855247613472742293948827382661476446311599548190958967058415889607045212952737734773331917299413501923574345918895527696588303396476217850099268558058910761155329489230499092539421918061141367367028229744399931781458929989831358062774551354846351354167494576203159081972766797328514069789401744624685173916469156750188013075610690361306046059160319880060600123520307315021399418377975838992742378790041871934053014959042432626934636569606125422748707167368742375659753867410426235756158454153869708866632020673803105174610903215181776980001716588992587243538737169440641357878009744874958906492250384523950939129839458012748300364062674588243436717892461023328220003096720737086693701002699985730861729660498879532710406170978540982695191471697385259212366863196077807978876883136564288952847737487220610828311342879106575667081326942415384110412474768232994788704729843092315363191041535190735387316115725561886754837934107561729439253765568561268606442735640466395323035373289973155369579306242811567916458230768023851867691964074825885444366343470878544066939505819366044927847487687455386756980484282771191870821561903130027377236326384113478797176523553700328906995163148437791557177335863821754255667512177394671382244693832299837556405446338288013308623876658545958928212888202078642555996507921589075300031357023023707422537982517069637933656082250530977321571412688661326496912376382937002713530909723896141843849274541469136233539872073809284697836102360581816787994859156477460090296329768353659116180027303557711451614936392174844096072355220612248231282562715734759733908572979990171254609765319547175367864330959364582266229638060311037912789456441868427366586272362285688466841125624772547834993819487332032402395400454975530414176164598200874293763543151168712958169904027573171357080516510253095593892999655560754366999606005519189040800161624387826585546350123439703415963941756427510960022553000996729167246478694276196807941221741130897719960254035233536823812555585449769828578789793684585964762053766386290216976625118204959694581950242354017432280865364949114140918872167022634863374975705822390567888587406626395984612941862482544157801396680527702883727371136335079377659333701057946738042593627356776685132992370825902207891733113609765715768743544968578181581462085435929150647652012505072656305873910075405666789351009710052022160261292861376277911272157300555474033711648992896084117129026510842137807601497775755437663126951812037480987769407791850515014979921004794887376778219682308678920859261295552894520628453791995653819754167024652800812909570658128201037725596999976892549078800369548717659519671411749283724820305158104585205313897992188324340005658625062807736231106170655766114296648712950493227290918263634323990774917164944376693658833708445412271169143696214273278124731078462387345329098018222912370714373481842461314522008727776147276103649610302274048919094978834775736946442868194250063031605794183591802095127686134087703723874297448813989453664885882281592153281282971635697733869067711174014221230964277944416225665162458816754192707431204485296516368702225144165586549357290119340306757608356148328614585642059645256527088961562511129304668310425883068968045756993758654584114008002290753166802551107872471485619147392713537166344654058854357430062416509599097482206521146187767445718151539026808856722798371622994175901351384324284796735802843138632806959302658785457838996544379897156579822348405507157964589316544861376175827953372587680736981698958204228883790655895354698490895193966192351192914258321419989472350579203027984980072235604500921040140536761255010492574165932633073206991915921826468337421238684663740035164774751705700024157021589163268027385284183390766664252300059834910470153826313834651030228074074477083043417841041954282650644084184972425240499737102137826020607662986853210186154336520068722786310235506914050408940778658804437779897710896782597721915676967730641655699466589860624484956481485076110793982245429125887065981262833050507423386196395024787968052472203448485996641571425607600192211289177113110123795184110222776494342973664358010544606834115049576648176697248395779817253075460095711262450821743828270734915729802880642559627252632075859687371378451835625000400865459419482004246171962379093718882875531889764993232594833141492399865177559585526962187564494290183822716926034406167907873289080818612843651119674122746500595047533003634627373374528563450816187301477149537096107048717426442611512403586573631071191168164237077848848914205596403771289994298141126087675467763701908305696434078298096431699721735134264315441599430627730836418309736391911409258968162603922327319687394089852879292282826281824016420298332095730466239082003764080793593547414766840633396865161990980192375433732860885037720167491616660108598817114198848156957555996038183240957447740018380270871442526558058765945424389518140904013354988687919689173026028863236862148427872936156278730621373711285893003696382459337456430286955382664656640970798688692679460037664507989273772609240428543222231424167206886999331307625666492395936625879889544426030211794721583309762397285273085327135105979311046849620630502018897606010651313887712077807475480740600204348318186377154741817055425570610938765044715604868733423710286270776617476364325185615404807716190448969802577060597193677165609359587550367984369822666937488326879221630174782352905424905295605948693518888476425565433861171312873454112393404059017525591814132054648188917700233473448630884847219829211122436702993446923452957590769390764498648880350338220799536708223467156939794193415501940908729800271229541321515175083969594110598455808314695623677263204734091932495971151638108467253574803175611978647398464025580788059216272147280664269634749768450524160311323903898749780798464931029720662985429544067461189218766971529618528342462014919724032844254435564542152422950486842568172839056692507548030850370592364877941861302608374898655480380932727724591250967387558443749958234054810819496793448979048435199120684346982840230478990714814181261825358767156649122817519350638431876474171002610908058949773458445805216850717883431264428977421077995515452457618172693893061381415447827278820719758286964777746643007039829286161725993015631037811862739892224580503957187613357108256961381991829345373506615239238752714226294667665180216734477549799845310538406501748308568003111776441026979792206259358916787863840068506770734557157038805132127356353522466590441979593457061319720107637367492227452315183536224519138016332459483988037253973876699281788292709396876590739830338723094848407527924256819900198392155408977576867355486912918022792372220722936491633365088728141176690963648990161465171764920270161822155642814390393883233572893012485584722589717927172796513972537719412265632977575610991137262184149343780700794042141245735337185661490862216284650154461910647026855870390081052625405487476557673605307099127167248260928386307782302099000397260915807989768885557624407094748871742665999168066946876470697051392675720422200311971372935381938995495384902225345761713114563247810227715781899231081582068943384839120519216644963046707914275649518050114266795715022739163014094804398047672826293308865529084574087819744301099267478627905553662848403076334907469502234822380893623534041980190626356555176141831045538496432754053561655104863003986203565938743196321616949829594498330569345892319269146409853399488438211776337713460534396956702539021041425045432970383954460131475086190713744745773172462313503799331987389684430333483551930483163928268110725513606500698057082176051317082667721970118614954093659472482116150692170794412600702332162136653220820292902246379337372769008283142631272566334850232813500773120251545923725331283334462061841259405773934698879404707655762670409346058404332204948793324229309296309512813889212902100770425507091828691488025385055699983768824116140832998754995439978224647936361083782390426982115946754466065327897884498717347078438290801403460134224569921990056133173948032508905826717159931816701267713176052105071744466989406231503982882521997237019378473115634096305698461694950964854674803305817149185141738341246265672109558253970618300316470338272056406446786699641614176311235872063882711289200056912852366577603735544974205982194622431054699528871336853101164470179526639127437809060451723375168770054213486064883692170732126465169205042043841169824278405223512583087970286490584041209089923619179053096396447059376214740667681066361129076907158352896706433012670317296452077818518535567482773098870527724278093374612918566711346395613833954616886703179720607200443949677490902613756177597885636772466157443377600275648739677594894449509015823784671265131184358236496985928983131290370520163919372543605816806290081560476792539931875007531825080444549179562059436909982853543411654289425915538990633023033674168066790239441224450985701301163626668492841367225151551255185275418074281868733457092757662039601830897945885015061021560123689793687406713507660204844872944699464981014677054007134370132035476989331189400446703731520191857395574679952400911940407889477133111318539317252082903728674502816300219352336105562456020822225833077965593071125723508046148426087600798614531791827323335019603397528055642238266274612993549401932072020197082450824133826532039258874261729551250434066945707458874573407971652738273429665027919676067878044890157310494062302866432511897530556669109731385474913078344545135497306436017432119274754313135239726128882611747578323621113799249920082330629037133882948504541341113807927498553174793814690664190600675589191979471740378011873592479898184490698201792284133397118439479454510481170165746906271959863852060200168103291925749102146312129903481349276516826721038212602067055326996200527684958446697157851691092830909739478301556152476065109793113620360912127084397542694861927340743899634998225768036499791148599121487087333859448508089915997570791389330277684869901345373689725410308521950211557871660374798830048312048402737021204539476085465490165133330977050728614614103046452658617918518772466371127708900219610627745929404175593251783987744905186840631308938100278273992964446856416686368546355063970909692052534499052226897695944321264776401660333804364668624378105359884456056101120788744281458807004842551796020231121094752289482321615325647146539348129282804118204590851915490803570236988157516742980687052151462771980652422339849494744727440286084447824658629253526251712180334523524067305111326397650409160769631899274955426242370959485198418191640503240182732599512850892156569444773430146398242571295249104447385400271619209963109646573808389306135232911207549504879152746543671844154133419710223524453388837305480012534013920709975579466836555803850561051645500454382133448255833539504602204298760138494010550575633450893526886918708102250282301324029025881246866248943865884347191635139230600301874944806636788879232627839444268727821856467617254553457139604878346393553838643310594357511026938465660776457269822069577159136895394770904860698791086483787203877093886272898071823542094046087353775366973433150125898169517420410907197707260943754573246559797972372093858148404815442920366501118406072384873177247524143926359698233720631520115774358209782472744356658771216295151639603285006171089244657518492229856037956715693918103349513453032646560523180161977451638850250381975456175763185119862667309406433808936847900857799144294624618589193585841791011560091900484378547494569276685479322461446718925872827221978179439570717110620066116753772606249023076359587474514236552077474496292977259271321081872604132488342178049915793942556451435961838028492471806336444180239895704506155018390922581450591073487313639319750815021126568145948012989496392561011694448828457518441268693199076468624482012954786474841356627787289185525199075329283595641403111016338546557100616818032820059085737680458406192170660262904397971017391673592115295393368166626069271100444610230052682914168164387046403939006538827723228908916550655948417379215498411697956138436884540322082528585145996915602153057163453326204955771303106484686532502989122131451307863354764847228872365144930214167573050547258475902199382217833009254793141426769088638646430362152952027175530671270555602850558037485822503484412473279434863799353789618084931623985113123141539135271225952063949470706877704116021723809037664216192425842637464163664028117437583992638883274826634225919496273490646233117002074680588365605224865394138269472519425706396140838536599334858376496195145337608175665980403445911061852980180583236666684604489339029326221337609665002449857485737826582200625497293552454061987607277912337544515050996923214157178108184480953755916283350607637013053035645180497153800424048440921219671772766662472094513533482008909226824939025493063375570539569284837018707464828746783302755710158526237197315955041422640068848303956125329999475879552484311331170559460195720089729988038850403264128941312897637364588083908798676489224440561874428503305668433398153976111539589715844808009349171032595011355475000895408602495162933303578986207934390094211492804686351497894525070185226028328117563874044713306974292372942431867074312600522391561464322638607200182943949219706709520965157007786874437366789306251111188727842843241906370483528511770723101480889050470503772451410950676896486936006214751232940246457531244241397921109109149668552635638857010099385567323495706783735831107209120327301823816990441703839855872602051026362873051347948957074309196327289146099852369710057786876635267206328679579847911781669325387330435298841668253562453118399354939901151184901908363353384513673202057818334849183426131487290103544583848571976853599287841684465923912340450398817334388528588552511109228747601241864135303256063667171695741870673229681147000062973402591389929948853251367553424132887135848398774078495474359152460642012737199181076474993034035760359338357336889865605343521036843463867656879336594592105417560641932709943592447701613806646015152705475673181869970382279266782120540525055037308591425646787619567557171827422854172379900121414922319223415176921125182710948294422643858333967118270181601059562449866715918339899117316679206694768413371147952817579219471503947951494635379629091103588020396122836459257619822303455008181411444181995972716035285231868384159688356727417245745823518054495267789362532079148080101328362793852154573881590303812246287083261381306525520046700465778493943662545330774100988663644469079237129588546363571184241516370006129104857355307569152317789933798865251425683387342287221890417448025543882909508796693398122049927962040241684640975098008285256200159812963727481812438116615789778033981388272666357961042549626645820408399643078183307963675379587065627512426407977257135754516925320546525644011937828196630837308612717645490082325110025780818749423035802828879591315103565666221729458587366521124399655819989816968765850108482194601433939567999678723511783553436615340033043540674231749626896898735392974324868436613381128400050026796978210865923253457585130793172897569141006491240956905174294141587799477902538496706910374207351184993459044304682912508404666027167807106738396173642478267550833067837197123688228480237080386060342930382430418939195213289321398934281923444007454780029407797539931253216387125094160507016179799771425019000306772677470657203317920016361808302637721670146635493979520759911896523158072462905131388458149396314129073820452796144986026120262983112938081736154951708884465921834251802388141929075099656967988758601073188147765014121522510013971505165866103387663685480982920059470897980345032068215935056768212563661993674900283627485270229273756376905128680259420314892748965634614562595269377367314459293994913576057527828047300597768443542403000720005641254599614398913163903835676100900676434143282115196682815467151390536729933286752391663741653525170721725593728583885076210927784463417154899969025462177433122249816889835543475773435217357883761489207221338809193114911330938522575319744939764803185018062107257692800016416611436828327727117942898387285207976370423754808899229129849870935097467683054684698352963656387381430986280030076362388200452436917481322765778047878370832548095192406817509405044099452918610209423061855225797760626161581557281868440980033102784165993792425072843379152918123456340517698606159685962748408268652581347006568931575821245844172293379830361998701274930713003159219226847532952534538701573590907429394809883005173585656995623266987577742350638689248879967100910667774067350923748823561184776165102152966908667553984673855059293631325511308899841720930610000754612075106488983625650300046467391591858069194498959135391959845457181195318605124168902908819731535862067175988307788956505505507221926857426162408307678541166777014273493483312190831608927129697025202451767167956744799497249735268174800535741220788682280804556895312078633341750485509040165682304251638358367122133241803334632544123523154731848631908734928310122884553988377383925243692001978034968916521658403271940827426467889218695246667513280795920222360855624173904857531376397214446341509859122657735003296453217727007883747163224513779612700215133430473921350028381870616761594222067082817704654679424964376053627531045207094233583634795325634269122886358684260604341098387843694037062405039094504818022679387409415223104954834505071722919850272119318169642857346705766966713205051090139210946202297721414971510558488427526105993390342024480189329468976939178585486430905980682542822677021739227151105798778579401932650407079555882774882376357120212599222208847921943938283076666216373527745365956845996777022793723357679452955997012593692502662022369524535907056781800771029204704063883481507750186949596421652191895543954095017180258988937812857949019285573956836508418775779478766915183447253075414678396607287926215175626385432919945422479455357117630273331166801240679115125062883624540476074616102326970360391035115018339845901246074600045562474721052359206556727597580320031641696741780929459051644777998804722338668407178184243176619263283454580328612441399682924536481716774055709949500852546715940914509569328931207393179275897202540693417286693463660143487854080344829816893414071603771991492890221881340255194063062782174326469928058247861646688248688500096519543756836287721839093253075679147990935180085866187672357365404092385624747605995829385996270391592855931659915163544160504352153958261949490934646512800551182410507615960437152675783137227606008843790055931821828626587327420370381925837861294007343768288191375903453810560123750841893192312732800283108094323559780592623685587285836632528849952209089051019757631063624739399764983676292503096545024842546320940207829784510213299917594987346432463305723892257606674656210354686415509846538151671568757795507185116317122868245781960233937654183546105592774507799105671647690421050611553549306304659258251446056588094755360502903384295509472063733180175538879597889770469744903327734856060781754929607992863402664804324517784521271542085899706073998833674450838709612579197563062668789785864048350736751983511789622236415870473719236617826038969690673583080809917821914528552848832153830862036343135790760072427958243264042936243941644263227366817570809367533695687472975745807903031530977215926888569132025465023627809491314802637957636900516836135395671795872444288092081427982608410680374364939487741986298989258663945505822507163226502201401886357674609536417844376631415550391065780279075730981297901600453615426821347147116110069694952796162536399833518080078430402960080316176835935124981112204747650591559125616610067310171965611693060607568180160630603746168286508908688870563223826797638465103678019108758979466381778258166899500430227409112684374840430750871554633516506432119898690232463258316744836418460829964261345474640303267269683223644024757520004076445402629610729102583874678158758259824055662106309917132148823470183219899643457756732452877763562349758052099088818832785417271122246835822677798101578036552506907610278449880249118796286929945711506126228019826086590315225458713234543982619136660244838704863660242717507616993442454803831898115497490207097019698239591821589645102895780547829776909849586477425474220485479093558931595466790557776460248418078880119026612455593024139257121508935278215580892961774638042721683672627628794895590319672276481631009163502903379308709544112183443719763615125848182063759148132456892494393276873141403611278415208144614522728591995525251565220319840914589627145357605578942259796097641441695767352573102104786197716590517020592127535448648519638632564539659988958038262837706315132991514263046414600684182744766034925042890163608123509509128510297723707182091592332633547706477535061239577830883902099395143676294066392812722940593656468625529120981319672571777668826493552954992313635961641516870678349590426140298017290881642726045747122498961472742532719915111974283475413719836154179463934562393469250911920585347417208660453992727076115951085598207057673283680824225944866244014819032996749235510977685488761818828829066940712597457278122938012685583848642986206608330884940985303726671088433442996659648879063412730921727090578724267295616720834140640867614311479126265234850045873459426548861006866735553770096506378229023893267238779669870970073190702016654240174962588876992380906182047563108207684306907644132030900107341435396867759325394807098506809899264282607834121688767528975216796111487628254679028150241695062975901594423972362696155232825440741555036990378560919436815527038344108409521092345639911710097075151331564255373627817635799475892515704642553411283719421460325333574050319102437003432070644350281011680718444192134508181448724955140699185999475685554643980708321642317624466115902130893108727227226877224902347315579174982022726351276470391397381937746376206731921052210692946683382790132881061542115722875605824185387294292341981527583535468009137345155336821084423114530654903375756374651904648806266770274941931153604511467198690712323241489128638644259006754456577749951433303723172820821610763534845121413242498675485702920886263651241918923645722291970130805822214444116396458296414809271956566109399271286575052673663216221876863104312916680500974305766837058934643006090317370313066230949647364893947691357820230870353094838746824097350614660155301823981292218232959606750156178440169451715758669868867003179298141774944462336641558744619330871581868401949525699763611965102225122818868209562809930155203169278289853482023009386186246024667716920894066834699046854345351701316691051458077266079114014024706811471658695920396146882256946513924006614540244156472764338547472795526981375532711889338441812795360294982528022740758415248972451438346146441637576832653617650005715888927578969298777405085756147225300840805233641789580551328790397175006525434586855759212687616337310920687042847936986498538992492595480895914615547975502597970577062505220597508475231840555992453953107238914787955980725448480824513190215644337885188619572077262081691609778730018312975312006305691222887430959792409414737730086457638796797567181201657667916695417882404527710307902596804007978754584974837362222376814695979149003051672406017912710773343405576536420959429639630631608895621149151516789347683623599202667937370807491655514852711693992747369709638368840589497886389829691352880840508691641859685822180893623495075454683734399354101891245103718105345732757551893014153828174834496907689502725123088018274878609948064404272908736417130604020874701832891030786761314001371676889616287111300569569118805023039901127653238604644997156137586668883436054178203774003291733112517531902073975627068518451170391121358387795079674822788982225270920197774927574000170507847106112469972275047759981551491801511274334343127453103706595374825887343395956250344328168902726955403446181998874417237408302672555920507617685506851528170015866772411457589345369199220092398080314955374224568914543191513692888834830836721081656153865263718724648755747705557227087329414879867185909226513503620177263986248467353408342295667724413598927149810245604402980995696815593994617748442330389646427724789255892672501421334169578485451837763837481917420705753204110442467569062232421054863593715980279710338137326786307182937640949093013218717783064010225785864420402958841286078847420349030866536157499389805385131242373476864630139585917146652337853517681590067007148069626216520094053759100481976882543846057464931568619499556236948121416206289853462563898234986983680658902625678835885908545386723873061917840582682926997939835542418601847854637602123531739767364547321683170366442887535661152478593139374761788595776702632809718698987705000259160965792961728593960672959157827192866570749536169510094002862167391948028211362199111324288331309674078658057238392557779639816815261668196304241377240228103342678800635274249372700262304523757819077995540730615982985652473394792280100877137517422031573228353752724513962131990899860960706941746909359320650000837452287161382697263489927078128994225894909285382547326185081878850187938921747551370311492924054084850178656326215638565387526266600642846395176876167039074536234203415824096115909801174601908021844927606455131065031439624355529389883572231067644573519054899280603841483398970225979857462171880824243784887278583058120598631251520541867742987785112459273583105914813014251666246415852831565326491428068605660350634283309542843180502877395681756049652453787208878198382791700670285958913351606286664042487384378238789629693153499278056926910074504222945701960106437386744982848317239140262015673684864871771495688212253028956002767738454475197229372608875303605904579757684685730637736010704458714578017824637958274524859231552980453737675061044312259684277590715380757273305399572617364477670495093791021521144153818649508753338090754796293079525723874331237757015155727674507161065529451115778425944996354885219143843586603979182861600276225471478161046071424585332337527053591695296296886954877902153832943541295970320288422262014269151628429177878168359640053068399815359129715036024276871166816131973615148656030507194928016705553583956028749995418246878448549713631681540355351366033067204064964250125382347688902211758017500512814199724818385258536603107793866619691753423612538050019896242397648547787613490934013857118576210165424667597269073523429340325698011752914673916201386752864250903250141627218424274755895439270186194364051002963180129501683562009151336632006587928729007433815178773689382909095883494072043490264774812191120027068305069108565893247732483983826816697562055957178360091618570186421912351420762138735180803950914543891984910737264037280546585837996049868857190286791815840897635205655802015481381470127612160019893613121463984261668417635063932395693874464260417376591374567915574352571394229413617737503345531298254012520496231015991880703615415980294988240370686445904349865406562636719573467174760311039664983559221250912400898286845010333985555374443210895724953711955542319253838548682831791888750354584053559527825263860154766553435362857788817015795271404493023919191773518169461956638497025902751046020213061387383265652797639213700485150853311804287651467662874775315106148473515009843985794324949991670946903295678607058016552461853242352327927327753562249709675845733469684514895201773674575177848728223845706104186671936189487717412401242125699370415769939948976777434742001344962865185334777608815289411805462399003337542837932449756794085982523360930717501742201032677234684009980327201984925823554431362222669061432366415339477734388236415645882097247334815589959864833305473993362592016388939016756045809471464323035388868005868212379233313938572519391031888542588043443236118718105317352362332432619347428953067831535079752856942069919353439969124417915452896306137624872226925158040184121583859433247651076204317004533521895098726971262233945456243876155483876907202039758122360783819115902711644398780001811294330744235172151026395561598216112022885535683605817715911286217941375206531028235405015089264839462059929291577923642492945297665928535825450952819011462293616050456249791329921130703248687419605748759753055798646102083455034480523004178856159852345087736856747783778060520962474301727917648611980545044645336295537032656360163745229038476620509026664971289393706478637981262328961773267295112831296511774876274722575326735631233818602566176169547205850457616146515075038288742770902302653775480187077817977608725366010576013980842070309086596146787522777383184664290124834562001925753300900008246985769769148729455172775973135512642297405285278966535722716725441256291958777757552028792438885959590311080799625185125958178568236045211632854198828812301819877702157174488300067312168958211877591217218011219886037169940431647483475453621659839879331041082567819952890440120424909409637825010047184242178874113162600290436486593845988600365218322672799420626462322338706895972682699450740223158897498484780139473785973713955268383888210095623168936298306323363274934591572261876835770507805210001596177807354509100460487768144382828659589840871153103029870172039049363567200132960205826534299111448405694013478149191171638943812798483505871298512269143982391501411051112552092289446069071572969662817634989522304992505997204885074809663275641152898532183345472394545609457495348819573130151107121710500242613964991350295104636213527291423998249827957413567679731136361625780958627739810651176178124848564491055750190308406388796358359631225758830826770361135307072269120587337780367477279812595256709423941341283219961918561206556716757262348045711438595653782830781681807159934307587970492732287369133326894101893497441884521260390945798790663186909274560131353570393526838761784241788536220632897400645415448023085696707670414573149596784550258131947354124926561544770911406053158318160847402314348481004800670348399857257811270804380564723509366909047523464122784936315168669361703091868806134145476128325344936807046869284559802751556518052195461779050488841239813513106146263561377561316844203008533021297107086957842484896102499379893510661144339679681253295240721225487347061697858227431520150022666272063836082716751270933107331533836739826285103963086992157460363326397218488386354863036433392257771062252128740040490244720945833885320565080306075049318800126803879070792290104696372403492959806327855681820097958740445304092957379076386483366033988751195952975744312453778124259312834872468621875143421416162339550174309926935758615465971558334939830713402436431160643015404759232972706890160519817191640608186619429135465452135579780369283430684943532758331782581154116740917634027953464472829330972779658763108718678346491818166343470268553431112153883022923809741388327187925696265992727711102833761708499923625431841872738841630191817620733691633300000836912136015572875115144093727488926684016689046168143139850611557309332616859489899876341586681738436174048390124825621299267033679383120575224880597372629879146114683923074850150649143072138904101128046641046533184543785087650257600522234078960200430776364527440056552783969002719020165531606574330207498500472801608060910199043701011008504910321650166675113589914291461662785063136295319762570299974315393028847202099348976519101584173795030703055675997940707255285278577476867073004773107622741547017057390508552450812289629112546695826678689134924086772807173880293907985893178486001130762029488444880146776186051498464665827970193658307057579499174358071203205248370165454648690316569385917166507027675849429138166097402716109490001938504728956285671086753841569347266851171587785550348981305066504322898657768936624191830661396831666779156204146973027578389789024600832766302532112375346505415388699500099448182581472399991135965358212965834136153233326186423055390846943016558655947017129506742901824437313643580573572347326096188688398074221247253962852861233948100037847758807650890803387770618348446078184194507136495801759405666847397176337981926036487923265898647556450279717469250344504716407107731200788112791078304285506529280998682654645158932669522302553680993167446755901873269011345797824949864471467893001162407897473045448289058173037570573253627026100792390001471849056141498292834125411755778127448333003309008581527069801015177497882170071387525347032700609488912434662531077994054084141343786562742635000912230916078900248706790529321999491646570983359199314524604748342128833656939514397414186819720662839920780786528773398992755169287298568936945289432832296821364263305820890004224829461833703435799437449648893156341381945410678394505404159927333918850208180718789232937992226665003385318116547552747595198086454260963871942969522153830427760511610281915973331156400847902063298276961219714347394996941544075788488564254627653729385161353013498895702018641224393569628311493577610686945281863388244259450755862057582962723029955304537567030192152421944272493927576785691134094688327162469061994557646215690990143350171579126748251054299730345474243294000541566810645759484255195679884812299755941992834284138124013712303348153092084081461918830184671720231501369895782552060689420067111438254914356423496989850266958811007471546205544479484912794524113408127110343596946406096614220945567840923806413484725009849010735055850492699706864939232394607225058313241154109502768754124639982892587219965319523169502020356860136143665148515171579767878298594997406785206279916763482543325043522464593073138357903874310380790837495714473188487749514555951054259398783444383477534404534167117790784548158186895978230401717600436354892594979286143604356211404988604484393732457343297883431263874611240411351282840316807964076911722461242237195568249306230046443650895140287360491426280756682172600191594717865931799563172950565370005299168941233228316173533323098045828991292190726666269496467300630489990939627542821692372266585596450177137768815790483045942361984444142926575424740809295454262253610857799712175828232409586263608082611877953010481935176335087359777938459483902420990128293291203789932415060993258508645683638028848663386878651252044870418706569678691203620180809342400427122533140700311174568433256235994762202131954143785870299050493192923623279528101545896864591312797242771717003182880255981831290506503387281462126438512863948620299749893453186492644951847430319457230660800186687904742501177952824101231400543177770903683751513650651915511763096899155430587371812499915156358109007968569726362444591384415721532688882803129463132786264515289651277904728882140054458908812172113433902610767337325614024378929189108453004339455382754121521809407731819228030381052367631972505027819942218054554049104389179943867151380900447021874183805722436708225652499695884590830743709913871621077280472348800329761986810070575638999766361344167598489640507562260936710987120763139714221429294483161047915873350820778249413702850585363397135751506259008284865335739532904020374956077696629911133198429588112424847987105278963484109790379375928319269271345538352171374077405749394049735755595761101951447070165169937035046699744902439578791401498133080528771098785163371529328297669705060881022331538708275048578240073926601160943679651145301364181276646203243251052662911121987520184950805389447180806319307380056909298005531115322071850390208335528822084046555103752607615268377151982030021656599286040542894653832786723157006215019573540674429818584033475656634512808716484283676732203146669089995433324473452761721350868302921779097232323285565357270846853938786006207196462450044254241346969750510930398252864518271560838525162285620331787092503136795993390858086414319374674392869123600920207811372050408009219565697509308765801835886258069991386130728998718697258320361189232410105747769962339794108724580471499166728858228424496359901544704350126201780983190074104685813312276641332468182076073436632338888113728447577219009468176732095159841632834847204960868559482183315386077045196728226480110605840092451360591797475813972257777748314175893463335712505975377316065905852778180142533290972490177545274521040824877111606042832713112578787081363883565110979436272295195847646297670033740884257303135950829306475483110290052473952656802202658829690886785579541605387070698883228239458146589975435418130167475218841140504094507386908339642735310885530801418657337454054123917421790470327348408768450614487593563905939021840340936105616831394672281631707941304134386761441393312678797949723629693746292208082225149085877644618061085915502601359088303930907015491679104405686198986443032322202974683974677727195414604341906758334221948735662105285854606218534288519203928793891552001494982837336980259510746178608273292865671760271965916564506117460148083615214091646238334934849558105090486023141605495743217173048223007687460596227499724987414316861284645670051744681524363714631438757372940402829476504107933480850534249170916399901481924938495665186183024713348287417326484297222567459214887839241312896087354459992107381348755992068192785129526760895658236626130964870832556141476467295517226673498969948027943353667520455011461302394629763578012589417582054200973884969968580097578978324399038411453350217147475612207770507071605578124862013359024183908663359394703217943603925124696136437413549111233527157021816331029928792838724384177991772251411024742159193206422811052816873631523474788858668111282291702518162934992662856082996790008257968601483609545462761494823284877368846149594114387736828877136525242515462422666955552543881562641127050458223534534797359792848176326457851424838582822591648539134371950126617528955651778689434854940413092120131152331074121144947738700062414559950070067071820507398477953837236758229830431889002558788059243927423580414427768727317948059860251488679533785558734092070861521002100129992877675746272238778927787211907942338766974337166792516816867256882933814824137535320705334133885701361533919514511701205954445207391910107889597783032113768351306658192234937763476623828564706377458946568980816430938043942054972571183593123951817139241689074306490530315478023979282854511614767613489534420067365940032343027351118124026444500083881104065539954041569203472325698053332547292422312683737842876892548460301255249385870580143757183213531591001085353415559060032034788205411932280723924587256611469991872096595858319489845549181245737661220406311715485359565392200269773843455494823651789539533116591582307957229543918884347594963528470263659624727118650671088190214309913396309633228853326230277378861255482612788878690778852784787007258785874079542024047599686091252529238491930023514365651027101345628875308908008203417630381165383286232694032080928965659722393583817697841824066249858486297402700594973739426109895758506889593539724594827786120097088493685656502674645022354094889615586803465389303891315166763633806432189994464057421348019758338677538840186925092407753808463624924245568105252147750252895114126988433946285352655959435849147665890518022486227435003572657926638218714838224573997304889137202833705981773280918679118364118764360223406199763010597157805093704345660413233975443339173998891575489705610823474039855592116769196119210958369254344501038637018494021844656883308362555104325559311555471744812007512197548104067717197294358205293633285650311142990095919458905624670822213103850868773355974583358162187567891391574438004708010555560986072343508454783122986673287587174080908137704483426364783144433137931377073703813089611568512346840910830421369304129343082434899084218560158791166630988686727950317409358627422852310252305705691912400062062536024385013095256427067127528445076635198196843579367181114014573548951347265803083465980346511551859181115811187954477120866251835077216480528143084237226796672571926263982408212117504152152191586789731405366679275065945639318077717958462185086340738712295289411049390507773939959077105096875371009226887558868418776664338463714630767050024946039716933251907319971141410006078982168905612556027075846295703670278835517515927983031534169907964140777833134591038956602072214112867355000288051641389009230989256649069159097548350364646632316376006179830046189051953519747523146567398048998328170639208480102910841987336951380227676610375171263133923809143353991731792080639068908972243042384171306696558280404934797823944053605346079477519854406316325914403542680227224855512735238758741828864618089846218080789897755879846998059384602518591177449946707889030042205928493620931109650738367921974549897383039056181728298956437074651555033318327118431673978851735898375373018025527885580190095986301666558228228098175411105871254149996134109147750979825836007013597060882684038044312243534476723203415208419329711445859968924957730266371409897891788281826219769578943001686141061816490058632620631632145044068061167938595802870625015136851480676360350155205244529867445606868955468337393120698525358551780505192468323718706684133698222923088460378890546696921640118832188446653809432831849863263050435225982492116325179037505591884916874839761621075610084095772839447964015121425312042516120668536687956476966315424948272955010179320540132436346201284880185171567723539239206352735694283013231040544230864490063071178588542043671978534353322862516922983459454113146782114304828102688967384818268522128862822313307058868549878684380217123770156711762464431142702547140242462790339099503888571760276946532637442663928102880139220308170935798030362288753634206375078388718920168889611242360080710738848539749275021654823026617514783237922556827453712788776112438675195498237094181581220128219987348176506160602946228249678566220365700585481855828664260764130004226961865516376979339607495991463070814176244285441894117987989861945114709747870172011337257615675193737245926343742693122301896973296688856927447642427314042863534018937339026804716651875575401656318506620491721208896120926885745576513599859615430310453289663092674299491878250549313421762911282898901984111734986469146758958987050208330334704366726929009979985040019698173273735590193253630788960539472551917126382317373559493273981734526430532650641722910198595152327185700154954619227570837449821809074768699128398186794798879143765305776805688254781181117538284638065776572378515049085522414071982795045121329321304017408269463388832372711147807252979588324744420645261721410379325843908915920375128233312426375523547372877844677550517291089653552505023049137472725319434683463804860937289658926213926629213263261511873339767457452218239828193717919398221298297446181000903538367752254472449363954751451524885291508928907245728566088716343655553727964709489042784870859214089943205875223466468820019902916683100498968973676751356784928622789553590927241586065793804444928095117128321797364299698497914501687299714318671046067263658106318582506336629609106381178251392667816303731547713236471448162623877286129717422427841864150125318928081349751558939595646604088805515197280608297456225122514015805823203940811652191391731922691630905087379512532551360332246192059945457725833184014783409611518855657984833930540687691203239455624091708187968771650432173932632714674090616222515858348213676997451297156478167690113195926491295498121461270368315881836380268719925366522199309594086543684729762692540383828105465711157879013921421125402396995395395620819829997135789472651722602315506656983281519023641792721163532447522570519987809155638448900801364808702186936930979301612932377056772505705329329108839486061671900259732366698954942103038165110388468843031981374369646968411186584021113840871328317576156280070961814629125237525630656810208006433054921494743438200871458450473180924972629101939279552471119991667685451883068048675204845765661627630782379244702197138713823135875211702022826790182151507045630129862001373913899558731852204482000758503087775458571828510453568624671474711202047211632495038775863900636713084784170441333632391959602736519320582277349688086943022523477298426313636642208222216879976870998015613910438665987641716320161457744224322918569711961545912767772531108182065962785864256572986677198392864617200016847854398584192805593188089699067473348468761455441583415200913611394428044598964114330035565637747479046043372068666590862394926527131035177282013393636543699269753273600424888058775104621793353229052407312640885944287256838140750754751599769274257225301650312568843725451708032558489328097662696130295954874431094460720353887623434936703949862822471461660624295342801222882940397875475001170340843990773836096428577312950257820863828814700058182361394076221014402347717364232767872720507770733574585958498565928323005985385736774052753172625973655153190111615703676507685345143492355672961960048648476826076548952886879017020067178965046876797797651556903097164509558869555128708357748612819472783252395159702249024491154200201751194355902286497001155129025484593263116636460870675341814450228450452984603713873231449242502025761595231658040164026804215811780463832497645553052969912538933054202007052299093848495783550567887104685481984507289518441358983879025247169773648216301427067928358412516452587182688475210796524956701790971583553743316264801905077876815492919766150530772851947934916244146641444140472244792761596514256078639344840118500900387348804349757591110080145910147815527480349049822640329805513278118549835080963295138362953735450120584852281453200832020878075500124138899692388429603079269103984510698833657336987047811997030327619393409796953123098150564086794065079604107870642022101249631733271380211584645791710362503326944940897612851024358346046874080226046220636613158880020574383628531939617159540857951534739218463204973966054671318643645927035349940151490663983218190241756631673205602618033713734195605632580472992194452382859706857151404499790764480192106497523725887316032840498999826519887138388315824866838113427862497656023001708872173205757046788357614803626784410095505406681560014282568672219791743597327595634029083358190183103344222710959859672059027804694929797011572033634763030452360303568717170469112321243631468310077087380499348950027571387634241961746691242009230980737715625303603578257169878860615715604387565736669751677152991298258502133098475384480962028203132533975999442039953547819596593119904171894536838917033561374138307294686398074935190793642980617495453631221997013686037774229682574831925533234444860710650103706722019302373862345036150142609278869927810424996306218483215995484308919636301125444679626714667738715748681393320757664820139911025488873945766258509901288865149788160365856145430638949551634174336485831998694301040920503147626994935578822137043860430929526089087016072788676308040783095496580585774332209431232157395876152016758016442983027715699220297182118459482362902006466408385654463044274588704497428912879078712636386982309981198603277433587158346965210648756188601197237901027236075891652121629316037146914543429154671855881689040468461747798869821867902283726330863201255927850579231479889793702593324541017064157775178926182000288556806891605031171306054029739788946952128227520212552758292287789617350160083349423815878700334957557094332508918466848975354358523504946941203978827174754888311096311345995425496886820458505515349837157211295580292422068974728020066144580562719365428386785754103471471939427060433930641956091305699060530235765798263230946152771728085753468103398771550600224445273523259888418001593316782890968688028904209246934069380776976996701650220072959253887195757362453505376750300451023906653041707658961192861195157171059552829989776658559406486294650701111305613048645772444667127027464431075389812188038539368875519220024122219574447036614806480976124404798032958484448743657417708308508678867741007021846103164562536631468947142521990952353230396731097239761460803573641913145222077017892920785628764864852274446403154802056120978141757441840051602135181989683045045485468640416460542624932062365264940050038464178550785798723874189097128177991315282626623446479811991122539821817361118539987578347633772199776748788541989102471902156063283670141623237385758580729499493726425510148422152265775445728044015639255814502086153758637733528967460264651091880027588500287970420157323122373561515801283506454054958179043054910546177231053975684577674734891002069105282386950984539148530068979364974297402850968896493488199034703173868443600849502940307197790084015098733965819820023985960327648631160318131486508349881883768898418786808325459696765620512196757066394156637919350565995067300810921463593914792120737962616528818067608156119911949736785243328503599808371561123510731480280632779302741243431547243934940728280686457124225730527917187227997691988086906817617541266861158210795225435864364384003596945088735161192982511234547835059147629052744762108780053067715082576422017521759609541822040158691051793505160733554283046460435852412941123792534191844084412483719967583138357455946971190421220403654162443619809143163178038384954795651993938635442915197713584565437596017526368798696395397724010651922926007209004940160461144609745243152221020248303149737411757122571262843506296599997924695437906019717320173376339927450153870990296896317026832770039831008027125450553006748393771903445023007757507133277463973670627757894049674793937380269192621403357058348852707426834627978156413055656388142557614841385916712748069703844531073561184559954686847517973524672287289503720736198445085135087796883378534775846770321743237849734577534522687961389223241050498956863059957526243633930632939542684138512129427218023225562312597777197731683932182497304865259286312050436708304730179947051185936210289182445052935401194348360676235731216078725167733380891399482476583264651498733932655937464766312252110589012399119960388879279825740503877308222874499548118034207763687159938090650957218499389576968094044066614759200492869033695206464301893810987222373576523649488933677802446332056567869176642245753236889228677197056529355959337325851698804272169787516932656708144376893437913442316346516139260826384619952724581642307072978767787016791685371534935882441872988067160650051449600748107464546018362293697103944967096826236590475206650974084763205938461132875373225147012174304934294341036199138301234814102847299441193425966235875487585384302379611022140936576596550482466149795884578240122201311373038359807594977306780497213992349335232349709076966495947991422253372685380679298443848076096030996266066491716846989737207997552211163122283213840470657283877996849330129783116197715442086059931624492055378725427218753702509918423192495586029900474685035786508268701553380875669635138098065346666236103862803334988932422341313583736042433364817258602422287704528102353523589596633286627058329077670477799170709061991062214011409636183133059571452665959320567843624934674115123199064123293927292423458575239174804459036525493254907324472748049326369079405522370306337363979796189773118048678527248340060204229587828048814329947972526413890077727013657690872214688761683586735103030893192627712966394898292008853553662065441627877114749193886712673354214265180651381014267372590042871944534771104650490561673710058543962527816747063007964360112781998811070997929607323809400154011088960050247914416938096794642876036049842993410585160949493896403449308864664761926426691057917365275807161909148174117787647474523801344397104079164765592240930055739228005485744137844020172435760283729701520678632456690583942203973778268327123813954007873436600462384474116737792596257765561990322977575236342678929233977912215894171452822288915546157305699672068332567902610591908330150254308978510315465479125977132334714924761973636059434839989000568969479116004295288943393018300006903120151914598063847494665478464046717440098877386785525903058720015395290768128104506039144344490529693084078124022072896058666283493374553741729045335070132483435246511824762155453402082152456754905096034249205823923394378458952955806581148504935165560428365871030659641832964812934274056311584000992687474138772033457204181774452011323202267278753773775774140645965195241489332401415181560142390357571653531898257809252392586573298146800497953393087598567758583962099438763450369869592374762436581317896455671992176210414557817044498236549436654917945815932242123747194827085519738685712077597837102464110517862325149414653300016388434355003341811274267898748780180751491964584897886048399216791850066720926674480401729727120115448775103427926058664393943746825872052947428944156656001107031496120860065056956568934338791285990150781907891727798926987633143098217042468414134644408498750350305348754517980533681885660295436771104637667998907026612227316143961170520644126536081868201274253555464719279998170621044142455792114395674278769863139850349127099139746964122525225113639066269785659963038565754175465832158931212062263742063519479470722644163656871375027348117668531181227507967214096193115758192269769974833829046384195723816111339905799124438708007256416028593022110059471243362640480213720342790741321252401410264925798723798861575762046876500020779903187695365585406483168705124499989583569528289517458553706122603534659447549901445922677161037174407147630799180429078366684075688883639033564319017877284439839850844776965404167449942777622158840497662870667940185136673182363261713299520470255596801750122193672519630929807952128282945170267049110572800627311797627458593646624931036010046135014806099954246918648167831636456827246503491558752126105116039410701704586564985211747452243871242358899737644207965599933357404695508929248118732888353613542262526143845286324008590574245248442001268744435422092477575696748974781641056600160976464435982485789139989318717495066126461750714317840147527814859416297792242753556940520555285120666961161747450624524661254019694463435083622098999721088851965236457586281064457994572401875818121586591098793248903344060621149728877151261057931854137566809146000429127549955841720275316371603216384928467383457677667259129491836695102223958185719450189449748000003051860815888933150100005356278774248756632557450049418461016270820741429122994834113586920386462303723020586437343024812513400901431379364070819151073483126278521089478684520462703435584406951378756958797111974779968773939655961383132829863994015694044997431228035244507439732151161391555718794305962595569620770815159499425985104712246799492342735462779899871198968801569712388602162825891467597462113535529294814022160641831350081667025795850683012447303974727980822574478176607050452545624071720622491740478339018543840054328152497988975346080865509446182276249146972927782435413666684762549138866232283753960630283237358136946786589018005018989128748001891417958183653053909992219404194209892917556176007641885976627338744379436785458802550199943147133917399613459111837874585049842293651770311849001231551349795375248615611228870778901196799904159958742005343915328904802999447144108802898573689314536966807871609490102724484902103697593615669369828276824718799236039096861809213557184041260281949495353761408396227640781332629812414324509391908715908934009221523499283449193444085313248147585724151783937194279070131353168912742730901011066272797788140558288289041405300743572060475964211266148166559560702862366643335151741178388102376428652234290873891792000294554315885609979420661591747705267362830175304155188271910439068974273446576168025357212644828050779118633361080100057253422694492245611716041779968958170449848750033989284664027564868640614145437947336971893859571801751017658809701729030958189411325001865248427006397622152548252926291565409802067415460863898939908790203479401349950160127680566180204690113282967536010594058849690945101535375029370029703853183160620732603107704417975137966921242996324591109083050171853350828991791191103203099275342274310199193735132761746153583879580897190053182939319883944195757287623288303086251652843875972889342708149902883977690672571612034532637730306148647687721316669434770312070340419896802100744998061069745575298703818906276391108899472165757420419898933868139956940977598232275787644324903665514805668790163703854675110215366495469259197380455010687517350682320291952706134420269908994684187313165482778918322532466589652720745596903934784270142651471168917511013806567219469154466016636900355849500970880877568884042183760456012100114398087040064421203718317607792731162468312465550963603039185601939622551512571213869981299243045323625850881276501038219959004242146501485166610126239672134924209858650232891891470755410884072208902332508199056756371638827599034471945280415370778709560989595961094341116230717219988814948872765519683019612555794555638683700739573012159325412553265029675287712523930809519814876781125454760497921564831094103376241604332303293521231752162871910339744979591409469077267070499260348880511430923929750273034588252852435962368803113257646634958780715476022824715650875282846034820029751625378410677162206373134075656114424898803883571711885283718501548339662936195024744184803999427060260042762447894235676978483028468118930031215450122640413232933496359258165863762869054344659159807303621889654275696563698555621107858544079415337940953271821400634867348889995720180658620616197188156551041457564955863253328074217690364637830957089531964415106152297796212737034898811164778839740618042943233669626513925195170147450855421138177138932149880746681103624461382814955669487912180970580780200244240158926927531367800477463791822292724160899187722806980848270545548527515633646904215779786749663473832480066640123558429844773395880114339404774307150202291893864328776112740973361600262923750953251793337069336281489559676247725766509678570142035690016945233221418514544540216106164014436178667556067934330024059668695702484326927864783290511718336132376264900548997874322768188108694268666711992717991856954329934365716075707909588395280748512149265975586691453477643593254016105478961270720526232280768087836662532147752360787432304960256765051150171018739084368500902546591123211282787203529026137900112084585760955859540113451618507274461067772408121600305147210514011975630559319477757131535074263509445013000791468284051400860245991972978791281111978144186115056646678435635766363604716324446675481406547660807218969158052691216915289480755247570724470666920003129596059457356006535504337797702434050117524206795347926280683948142628465259276382212887585129360885361142234882241037461134182364280391603633185158800957119748455516785430631362001381683540260193106259616607437927694675729228422611360156077941537676890611417744865103445324696114498167889973605193187481410329820498423309098752951796380030016822918281262254864745752774412692198637758039955281330311784066895801056416180495382488789702666001313277010044642642398968312138315096650643007122586720619106118044391065298196034623947131924834717126832501792575671996465543764540380198691301566152199811100231365399914297720890369813204594478947880719811417773329581371647166211259946976959474570750932793955614572366525856637790261720420510409629808743470200965951905722042296553175333111911300785330742696824241951113402935703159344242999371506720207948201280645204916752690753361444390510101255545947302223157401839967703334239555546596654331541107599397461762938712081808595375803570122307966976906825396981705128904396722673207203371756156793169181618437798223436110455093956084463849514156049542600332953452588282424003716913352405807153538117793337771025503635795341131281767768587743181205841928617319998425599221624280357750659632250886347435695942150710778782847082674256258316225017884049785826274414556951145968819580396148473090098545102737321227034659925640417784209686449273719938970930223460148357423850087055908005191233417165272241168442126475297535993163633644927435398310857307100630437837183567240348806091283769631554023596204776761561706770696713149031167102636230727792212516791363983377727206219401119395746901876623015825189857680387975740082566758680863365897826214580155957078008226286362708155207668665540517218296424873642784192950705864025576730315623699004501598008338170764756444617591246864037131858173636146031609538580720976050909772023159521413675646680856339159625138650896980084721774090007077055498539557721205870763919715430187449635766817996851943698617557507196992742434127574062450999783788964318587277255129597937847321831131503087623353348158212704318741210027905927160575563655798280594505131311275299963373646839144112698051451742456443584701406596757834868301698382701727251645940966156338907647974364158384281628394185791063649584194108159109889364489356389822707176725519909342938067854288272495309024326812247741006285393621195157063433403456947513565129789744882219453821489018635024298222571864454186759708376260099130499583068224438689812050033483483849946331660342565234701357502862408256037801707198370274206080206198483134933655512783660223123174068380066464109651090161040046593846199931184453902250921093888539060560913889715447842624855796665243614641299622289462760425582484547018891891976320380115486397306862899145939502914571532276138332280460993453921601191937254950064741446345511690789686101016616525255765359559728293881679418121260730176220944079177705197263221969321830303846145371379516444070245485934829596991158736498684459659343891479015029666892150277903615097741665160909571527806298425752733402191939678572535282864073522525733618975390392973226457938771228389843660002873427374884416425745233979437309255869503594658360824877328009877679920649982167087239073159503684378149478299482561282637452752100881356243078640374285549584086398608221667825783542392634800978339742444562680470072141148862574711233666518101630307855176923662696435957791723935735304983014383549722014109430995306961245225773906474695001961057691253179103729322089689592847748369403075917066723590052621060300584411390882321461489710116472524718773272444914328487780931164329905916314359822732878407852099184123957612690769859004980556267035192049137167032455342066042209507642036133172580142722049234585488408879401422151795699906006751704960252004152406071076000223744467745675653555795809708478460194413594661669454684429972311994624359469020346124285237610988118307253259298277678270789579039166101793183839992144319295678741721411066103185999170616826365583156292337272151476180938796272319229419267612407788454383011835014139026491471295763365237463053262617669874679279405273290879823159664796650921959671314349402097369112975474722340441126999971924003203507486826524671979737662313968639770604032886811938057564858389094495119396450560209404327941239331375761961253849848577646247871547065457925209087042901976185424747038280364456724891024974411148393862369543225414633663648238613201259221662647366275648977193208859134980797248391633997274996400716975042873450408068211061891081972829970905758485596721006991396399673284602672592520570524790220535907166153659846851958093625607042500940226499706356675954676142925024227575794691590279234403510878233137665005735435785970628976596044373392737870462714600921746994075737578080511895606224766139636432849738579225513794648188389684068456720870536841747703981500213788930353253689938135640452069814711889086364521149488250135470016731269744972022472143828191303738015559174713523409376800829909357652224668829193309021874641008419382546930098399741343739542359570741932464117839536328034705701815256899477750290953629986117843388708638997474182464126414858996852597578355951596859911489915307091191433722359954187117570535468090246475193382588766685638273792125156024666207964674443153955920476161685776851454146070264680302375713485034042873945062408772801643880825305360336826341941692805275192959472238244194185467456678517195094570056742811255961465746681343955439912087505640942519509361285036809869649608714662313481239249740480796083547949150578921722253172038106999644713979667534129273791881379091659943834115776416426597110326248165117042869101732941444389732573956230594708510707875760504468638224548315656114783655611577019637645337879835656907078406005184672230905427042676162141204450751973966654765108713651026288415496808277921066946947606061878351800251643790984766297349935975457513261799319856725727325286856330625272541251601342539676245195401321644880449960918893641604914057007542511856712645920282098920967401168595819453419168780893575259866124345585467076168309245680605969074338279109417688147176617796248528145724216221604449010696002191634629986732462438263934353813305212811526319448034138465527375366119305495892721296050572115804998919619788290440492358230054130772565372130691699932409009728440022781324536115125736184159550624315380843266263197912596747412804468105018164834530222908799719230727537085811530656040922674209540801202727389759725744960685205583539001772437845486758142076606557852537743845100144870586827140993876346905642878374137060457488152062716289805658220341202712942414518893642101640211790530637932166120873620346518576718261842874443914501674272241147920045774816932927721368776182215064546902007105485869531280297635883561897596742580636846456276189027956591095103883268850768279068992264857894818474731548814558760849663329512610034109642490226064566276619000323794834263201989368947025990736584546047990552683598551110424057483999105835927837819902219613539044487495911776101117714042211135424417703947124603161337111462048590902255165939383255749289351842775015425534814672614550618487131882760558222166848895464400284741869929457117613957780111855871047308802307525444507171718961839547940996744971747280515812542430548530082518687870923583554755276632029856044692418304980897431946034336257412894910106270829416604574934944541921903256843936633447774862525920101691872645322731162383872236433664588191079817353546033267782071149495918633994368644990797529965718709078862807596342171063259270083307807401366128463446986699665622767165136763407471680335560995964148068813982897868193209732159973970275833479466945328255267893225638698569907892657098277597149708998311750218776839669488780063111815896567865721456514615649778137576857295722808606338604475533359707663970766212439714145861012248385967043678561048697899811521628060987871089457825699166681984035229026054983300803266265125768955058565204896948589773656387858373068749135140020717340266759289405068990809903934428846569066134446960591908573468992160046948145009789584671071889298133640867150459203942224653743514213168634021778409938660585056610033177191889268278190826414392456594866300277066876400563755425775931856221431406518701015265540069491920316507641319804877503090029332540421609398740063444082280756908046712293913334304690672664719304422001098712955736330958378011346284250033048520644943821710814629748952718216238479079351598932416065842128148344951011648951862945040383799815614498170912456479848764175624805945851176627730378346471241951272780809182795784651060469066628102955097349055123058032744397267629758682193199158900827511793065831057577686815890206690263668446084172484056141806851587856803466923755371633173240739127216389425614581712183369782406840760521952766613979056703112140857355280660772640175460862300687472149837031403870763804272667492646112244024775155007675900704396054380544514418307884368344265585998257398559738568278221438547407019850888351219218480183869030917206389643235316606173500665496482487823086218521242890749672901649411130665993463279655744469662120264948644472781907672941492598369695642739076435308756504681744104569074642383160947571388787535656438839018561634928687587591850338773212225925305597081868919842213108927280221493554910502490281847318806486791851936273979585147347001194950323707568303674121818000057844486978579842500800023652410657187097070021395414435019061379935225466421785326718179932582199993453686426798201219052415090304524780089728020218052819062282947406504724756779407944046773237645633886032790590454718679792735374216930995105211873637701680642171032962473452549951191212754492644315525522659354328666971604706931674622197050409951646164430847937059024482300651362237141786734193994319806658223233898033627102684113198858677107619795794675768801879162405755326910870654622413688276685768198630280653945200838186842633658519440048293552926586332156210782042416146935043550972582578596035296459592536665366605779339404704886622913319020063090006360951611113822851265314214609237667471602370939342743235191380492977804318266562657232614573603139604560495408544008938639155731973837340980067339595097054695333014011477370676727354411341529185201278772696182037607625486919376234847763584595242539086116140610082518437057188123197647130249492635475644891402074161525248741329744508969282505055470724280227078688689089965818707026288389665516105457050654032143408817931674619894587956755998252117222409112323806092346533890277234508454257990984212275541465409033659131618483140818667877227563411719711754948043433210394253264037524279595008234117274298585857339728514955734642920869481918670203329010691360910950527633670314587007721609125598145266440582182727386700494944380551246606612426508647109993533949760660686854118539302276294499797946672865293007451173133384417848176450460153723436270957822352592899311874355629324823706828212941995682482426551562105064050090484554577388940907084978050115731001742997988075058196009412661734233520169514114890977679456054108026554373406075521469809047766883149227543631967326698699038073206582962567581062871959366679291163192914885462466844950272269840777292442301811654188651924131265571496018386256651497622813437814405076349712444697167401253906748617909642931012639319132143508996656773094005370841948767927113806081519311860889103761895213213867976686644948603664868469127422519660291704381478489134831239709031360324380608953904878485541034673282685095476631193290994624442692111797592754570023507595825451442156037425967828344447338566778220490342968930892502603003629625712167919745305736244814712012368029915876141331596117756136927977294699999554537048204435814255727061812403942749053751402219388711291471893846561801622139566665789627845973139617773179691167018071696360698608494608820604424170210561220983831210096164697775515811804808091087359322517121154171112104485752986703526756675517066852774141352023828916997134724534733725667069781256163181610891140024272473050870311705450362393630378853706750085014501779051457097796944685005520415387248113410620088079938132046609875286138656895111310810870123645652850765995844011733084001815650485818808432154250969203316845249983136714027793705804755145263779183044151395881117196307194368898500589140607545421175648523672106000784435238677682791520143866381527372677613817990833149287678509628630083578768668446123178286990443377270444420437224332156087618858653307761043158740742967271457204431916487106678295913298399161589313173573186259393576730696904189725208228994103331511794459156922149780949743713360239111199958948201516896797307847362159121669398594117102371318257159767099713355236136486023579184357263488328796426330159257848686208985491756393654450968366441431078454908512615221451461053778927553831160408890166420435763942986567632194722345055724207469846201312520171756441785099275684032694627442985468693171457778957852868439120592655498692179954979161540739923701534564365283267190493429743409213108580302447884589788057458588134145513672970470795656469154768713119817389327246142528375392745481556344520973877113644497133952631569618179705862554327419890754461859057114394784737181663104160989086321853717143327375453539935676916734033192134254765611823104216569056391674545604028245431670209703314492966485173074263396215360379209494329301810270084323718841510856086273581475178551073637638598172346593367924176274555373806571104183824546973898082604036915067497876095886433646168793049278222547756143394124592621137155120901613826516407678609425390454832446686339131741962516738848445692196230609252006688795496812037568955130009914567682929474669003252788311014651068068179562588103270462388633602119404732287334623446256522115962369714879522057879778140885712113171582234601518996816222108843150049988986628387436381514749426118174704136990259587634281227281026227070273439493396612712228067762878234395016663385728702748292118881033098080077674504409472904157359048096022989850172864414825132954887176533265438409979247986125076440764758726754580992553336369648905665427581734913111372732009408577170279816681263136530899284003446856496952053966729107609474935013098857719200324937717153369763070367239038625700549337653299135495810092125302988534133408916814148017872194451999552162652027411207574589227467493239877328705257528507556267266921170562149058018635730855268991458614392119868744592658338163504197399737827296836315580708845306626013065239529036292892619090324433310444661010576224174517550475690745181252949441077978286017587100085753458263851512436755915097307535306422611797689633823946553500744899751840268466053018358990990823209120568590588235215971896872660586348131576867299740716426302108326195884607551341060864908889965700441160856857716854654799555223748552859870049821656250723065680102829170974105079855109902489480999218192395956119777881362574816653716673968860518572370748990148994967105120470409321658734264483582721492495051039546726738321721490335867835849293597169293000079671736208762400630446211244370217080789007756119570622845931941245182233608864529706806233460268781204559834003814661402487000728597808263411709167091841179805591161325866076133214584587524988782375098555791870443478572145015960186422820679680797843409507077023249887937553703675770795620427475326887492778056953496536004854996861105976266865199265705668890937416800965283247648270384335471840014973924040790878466667476765312227283667685419448331083540087745767012243637498775252981622926095213716545978229293801364515020427570322322685894330626125820315219131455772474922363976340147280342838433445813728266485777668731837551367981317052478411854210068582827240418337650321358543750193771533798604997025864955528216531342979472905592886147994238268260654869192300935775008543824967765419783328049694268604693858188960517005015573337136942872880055827421350867458070041510369970398642060858472801677075815528666944462847532983865213120918931180172758178533382572077645091172751361546103671627414046620967249337182106445361525815706684612295909840363069912682821690484578947223830219434007597694929961241344553163690220101343823367509641867545130698564416992552577994166833773393988719997936172289889128209551401024687258653067288220760282449531937360686432390150226411877515642280210028812447608742905953704323132302425959966778815203134088491775409602731355982940003007186932040085888668026333744007880182107209861491105342368444209608449028539586417626323437555780266917237363478461385868244265939991662331584706675598230638770487255975908289663713910026351495982439761897175569616068050629204235577781198713345302844023363079429783236264918444389220354519345852941057353352298578286047257609018019377112393241633727996193599563195954711827397586748726095361921221051013044766282468858386262412243638158682512417785812019470059159443485215423444050637631388987664683503011691843366504756948800251278190970106867650773000515382614471949251773621710250146207570137581875135023446968074229849354711686313246488990337443448678225337724858955571358756238305304604590241970989474852397378180691649659007730012891932340290932902427651459979786372043316475871928771195424605654827052303510157940192468539997047183359445278883214953155252833306247189976959172931445109579758143239090222044640619869554089299456710486251986444838689617646341842647669628859972854913264352914582252465416534954058794988270971603923981271707155120564518634012277293583634564521731666883145479674653268963737822944583147704349989969730446988713021401651193956959476882267050333027698889645625670849061689536961633473489595076167796965710538481615041526988049745751901533511575699620680376553240885423458275637784473360999961672037321956173440214830815588970345365457802635788552648798049427818064995445475826574226262922949561967676080183968345682701827956887261893389967242059015435233112741260290754535214790101948197157835369577938508073684132869744993888669112337219148368981354917622989775536551176496337072045632682499444084342994396840338992818252403308883661374382404020116783865252560849583377562197038589581840931551750955433600662646972820902596038924218396561884722922819821387319963051955764729513472225464745715125679311452344053816632404406420988600614655562382748273587206300143714206316829731260596634856650844823859014689660119632524595407680427334030349698435836758464672934511045684812622510438608286381506412728172018910086641415558928336799038268311499961606809975125157562292409926986058998044498875776366220509138669872944012105646848320655257193721402471933173882819713877872095928091835754928881912247398642800293284769312906023129282382300853469701597006828214611698088899557599885660105871940954721002334569596166593936419607600537038121720153141866745637644241017033937446278177897352532559523065953007159637313707709144412484155402608528376581830889193633170480530278523003517487803587841418646430693516389149254576303016033889921665938824904886940754613266385706610586112325242644189682423321019701184459454717552030347940587576416953161904971915833595472785227668859732579410371960783188885670081251106846857702557511155211064379310402650966273588850578169156646784120388007760299289471239376076656689686351250631335192181692125618466802623951486868552476826918098803170175892919529859372621193366489398949764214067594999668893152586053580919997863213839483273530926696918850515298901982187599317403665257265288958628180461019112622928019473249371072602495447851461786139265883441631118626507942624360059790112449044058139177026186267002945212247901902548886087270666360271482362020826784788657989364688676035766488031373446902270517879275609183046233101657921311979087377181557727134699654744831327682911440409591393272545349389604607718587233236592960548315566120186915054737039521020763433508663421610730509004051040929127112778666037165459332228088948285879717699999737166081747684577093546734473289370688209471322105951292026268598162414510929874577547372733648250527666979683896243331927988192415913950001185871770679477700761427249936481514924777280596715430870745323529307080684346686909612730790128143903254789427250595568805341322848173040920380762633989132178166969903773263870785549329786952271811123706801502928957915663908084876422782035091136143128364133740349137252550082400673387147936749947706949873112795605802883550602884562836415048131524054956785878118098217944461211361216247604425526566619725886979718718451957615473496424247604128888164726371713046321354431365470933643790685136589221665401717617105252268717185722451316434808787521475014113962165592068432735981696266866811340587603806347153576350326823007427957016872117977285137066182552501746809770833828613740455512648052318202898865055468291835853021586560019229599876488631639570004893874650423826204665457614103340008632747930597991779223036055167343031069301530512950380404911577286910096293083992825040362257857270285698401104316652998614875333510041608534541432318107182105522418955733746982075715069130145486366877917491017350957985917219466224476522485616529458804399773895129887251798465302681082704277027221296874628739572301598623106851150157515620023450982893822105038843559909705084461616660587743362561034417136378563153543776565300084244767369684039579816436660127068582033226503716155035100969523195793646351094185299894629865475610317870309838194851440608647275474505717205239349768501117160995435566944236286848087755157936831255065633739596359352474235651027429932489074222969791804332724532830952264057102995011523162641173225785861921749965210010283983953635005181649575774774280424223087904328335750497768576242405273493184439034140375242597303907112030886902490273807428913999813183646751116679927573094475370865244945746195695239219853522526816299545153671534607383909175686557073755229671432921428094887567024842726097288264373705005029184280775086582928500123224766445313739255483756544378746212871115111062547938691694665622296427809283156556583096569094035321351081837360500635307057074188602981183041173470746962891316797817240454476890925104359403242605983622394465100194883387380658860408673796026413831433205409497263577226017189953041855825069252776805020846644320352703719013949208030070314804361469825850425317221208915425372433179642548897098329933026811246720430159058974680180907990889488471799882834812672259327763260534150079049369607212140141955869444325313386721196466180257715527528013390947516633957646995711800412165763507263531472413666586994289940964790954221751323892473453690906555326991209633574116331643927336841911565048852951212678367885574542583902104846610163416284529234919640303637992147655483315276452180722412784943385905199417381907782642695038203936343216165355668933153165996551826723790371802689094507421972532578487262175046368070461158413222549952737837324368266761671781262150582223163293936159991054605482788118009779675365669942230810973504698380241818952332148934211394034198114844270247906206886475984214664777796297496268347076182223067097628691274794669665980121212339688530734729048226205022275975569711059555888128070079339849349212972491349741694315875628789572040961789757812535904993792900963755641808621424701208969980287603026590590618627728770607289029161633855167674378936329224633365594369122160222850850811807969163760452779882597246657091366223732275491983488511574407757991098475380375762136253774292011186390551355492007900903536503847769118838941281643750204083002461837973181712461227861856297197417764482623605473592127929420459093393731254353180208644097980201646080327023468352865812213615932529900874973875994184192341858953703242539732686575586542318123076845838557332683600010950927490518967546008886408424174751994012849888154906707950171614722752079709758541404008491950477969442194201436883783821222318729920790227468066025151174580190288115892796868165926414808196631337074469191347440110180406361664727012085656069342914315845615303491697005980553125358870106320689391331129502305730044282858198874197784551788478958598375221282263716082591720876360053015349303247182947768549658108175085331241545028863291411816401026242890115677065493398458799594359843503153775915078189695404850824061821813487203211617581060596831456849153378164716147439247124447961702886542033652112955413587424649555234833526803067539475737164115961494105392894933112139587756295839145360348457549558492864031611432985779659745350891339345716370097089569263757981391078741394018133776180443841742784034279337494565823766886214450579144628145747384664988009193417528597301632066510394373334881836384088007757197169404256708104555127014820727524095770228721351476909598642595301652727002071863525054334124352711125588801879009221525503614701099619141354786661465217310513875496345731288578667121696789395991503138197244240245835843374167861760939841272959273446638787105290826014129094197656249159427880777066008563724368964684892307047214374323281317622220235079847020317558480092651052049155261260580857935403973054359536505724171829264669015713818370454653349629601889642977841629801136948963573377231176422170662314158064642346393141402228150572943416135084938751700532176673151914547207768147635859946320869106596777391059972058913942908083571622077120447464813110570786675244536945811991161349904101892883874774469377747223194570350535231803962361124469206675547631078115723848401479202982069341269049339461442907165903223297497194663782177781722426373611561660442955730785846032837264154115184759042041127535547382433158180986811077007236842693741874006098536033449147422997425723197241269411949946241097421176491822663912496147503558587374909993960721987542586050041573863395974635143778275373316688108923191908739118528484438825032973306677995693188464674715603594069530298521399376167342195326161975842286811718562787414106540422981927384212059638980779967955563583552219292118287616053757551870691207299965079248811793663983768377600123349412553884750329135316262826029607737157698703212098389183515030935425781703617146185316701574647837316339653098638353510708238110043742531029766044454470182185614381577004432063633519536025564374128048233205325549143582776991975951784593315900511482062673444789245995782089050452855397047798177402466129749111760253152859234912106387987124701298507835154180710576460424312031689377813959230953179061945663771424367201932424336020661313328581104593896759922956860459393984104806409238760672103858677000539198326147127003636812729146738823161147144185672030410741646229013962398934847093682864334748948343403324316468604788706672377072839627055303586831674265020587126298258457894244583354147320411660835741561998906613288984572126089637146004033627946535886665682770169608015023782217810081921515137610253209265957961478294377875987299471593456026682279837388073947492807723532911976333574938216661271655764393811715748606614503626794989701465074900596249980579050356577919263199375432826378662243765186727223163289505498771290122334522705361019956139088277122384077001600521135943369135590128985864550279419520002097976519487596985721550924766191205351733562708298155186205550822872010477408936386924610311503295921489927131202264527035371725021578925660783544991105813010399013367929690827808566912883153214107243974279726723902339232266017720284382605677282182266889958680245050174624764902842468765968378512826766873671996852191875128806913553756483059224716314725176718298252042110110048971452177272303602666072849335039328280170358348814986770448847982797826063658088248198209365892350725276598232854719090738255722439482877875286078220904558044622257080895458256600141834401109063790376334106311326634894778454963147013667099602880871937763274260167076335691647008001293825518854624767588651702289421095248454765633444857826678695796051469715488417044925171843216826903080629759172792658159432204242190020850543025469989590167161171599177323723190173084722954329388960304510960613457882217993687096098673259445248622632011840966626969211653469553542926705727112546967387377853232792591122526526311180229406859840080041773424465127950616622912135224115581617711998211719646619063607258465419203690216675082114962308409918328937124380752089277728321706774026435756488638811215203974479875832192458147686977193407103021910207173520020682062765754236477534325274297918536750084344071368729343523095419870021452922742527247079823791240758038202107225340715872776321148953680857591866146396704472099649011481893399132326807907166239238969454862004630792944880511772724650154180391409393847456614101568523731220972151934645499324228684711031502091861805356798020987192659135117105671040988444767429467253446289478251676523199154603312818948910305672291478274351571784178472635516017219689954418730514100426917780065022400830902538570799545277185059236004307725136598504731817085911918852732042891684740479142867071315288001517200739748145588482108654765024559805609797418433656547853891465132360715822541755564079629464470455659797406439198282435954488398700625075081587394460280134439508749008378254006387733882022555203898657893833812353432173609791599517005928772070252599353130194133466115811158363917391811417256731664117271399666957000084802303305193337218184504501566992042566978999197594552581959904653911886800707978508180703945663266793975073313254469916791031046127853265891415257076918864365192676688289296208554572535303888433168044822742945688449436897739632774056789911774105156252260301854564398225559384770010547577063795097372264360176804382511414987173021714389055983925037734684991669325453370563018358847057816893188874272547060064673990659196508699422695734106668244410912865479107010139484006704640361816182786798530744982655043988572024140455670327194867274910947382446550115184622581483300780725314646702443819065404688531051742845017066529322566809932286156785631090099205322800163448018166269816941237781501245168815014937443304903507659374255773026356050634972806017215533745763861596319747146899989266884666850293458798920608558482238039447766764319073398085540430989823379525103975128716287434048236560457305628025538952468097975151705387972360694016533865411739321109239721424570990745508913167667706647181243659986167295245900354744951572924623811343747483034753285993795309905262737676711702258609159733975144171564357781777847264460780595828157295081555033365065884183943211944815098454481948589788014830847225075669600241883935926494505933666278459026709219617337936693734016062755872195392642668759532392588353311066529084926187998793906462934415600810567830076130071315661407504083895858626317922248245154738875966209843508643065204878152124404189189948662443290794222022119208865274048326606640692958475766429422473430002666273801655994314192900458078082427852598599388851745048089759279677859754260766508026484405612615915609029160679330684468867021213923830844722754517536936293064276624107486359477054200242689413210225313083043609347586469188830742587274194866459144418700625253006620605191432793911179734855363650801534824261884711294254218733653952822526192694750506219389300376828999440060575321808916307889118693505073354933340682090891147295987289830795749960387242408731830728804745825300060259397099923298461759900185506658722036581837191603730226261587078157310448785980457729474472347930175782585962303563797583896211953276204598009597027789016778910700905199552034853737300779556807217379543388997533300511314689666722695941126723717293832686056229632931061913602791421262461662488266381671791298805504759566585792951882228951033420548802184622048547926129151855887338098738986127255375480973191771913178558639624456449248263973295686661491318857685806256489040192331563375082252093613223177782990176104970293060406351878863117388897787850736023535470118320070038089702732619594081003123533948534946383672005501138590996894245848433171303931645785949144101279484961788419218183203035371159189905991173593612226441372212551006702881386079900583557117719582825525073607043367159736482243718499172134419523941806964102220365068271252521135628431649312625400330771098344504948119826644421874416438074362507549039098981495312267138570393909181651761522577472130453455706986249282516697051197040268679719147086078672842314015536144670843088218717348350278987634408880526226644827306527068516718956037264566122264338061499557580152574095533786423217563533050491381037891138718974547732010024880993566499692392773618655304873487060728677615427944874385029536883185237762017851020956994961507369798789956399269012050343379339138215558360467199844326275425689738705790230729589641604495918350272400801767941756169772578424020323764833337781317978790337062013214024554553376303272538059447418921466165933917344932664543466294948035359315860321104364223642097734607682833467915816821139556291666928967158046306655497595589777961350427168590680740057017312712662304909812592051927360799042751183538555801217778981346812613347962224737007121748738043639548362377923927578695815313107718668744586872718445773826426667636475374984566299055048702713446534801105311127436584229804801204939099665690853290178523473757249240112715724391142011151827875852915353053801485576654569775924610712756734410280401438490599830880275408432687742329258658444370488017653568197387090057779399610705057442770693631790177723647912314062460634451476232327945194616212946721531059852990382211862322517710485847220454332871403020809146707984173075027248732012649219428146469866254619496011349662320339669744766448529930963038217898093915685265171055198694557405994174785333021303889912102758740128808173674432276834729798567949103838313152728965046974291502014438458524105388792530216835649229273013557063438517996594506952586466786465451236866118674047980736464008860261175199770748946127332989637867977331197759194597157166669580733424646699052824660027959490083155920265256602301030089815468365176482538317343149696389929456153850325084200669666660651001584980969765116995581906459679280869459063834212962026287883118584831978830316557565383739082370932067071239191104733426410485495913869609924897528177843897135809953090566432460721353440314616739034091485031575163478105329034958031656296085581114445400207543412761336544888848894029481966215721559173071604683451943497460319381736030851553263420246525725962300096249125560928157052474852916953769924176513522768787182537017245147538641739545884154662908442573789076321208949918905509893580768096841552517332943235971169310667197697235639719884249483439038556825832139069050530805158957994437787656565639384473298988927085316386561832735616386800145831730498225942942543164016310937410553392281363778680566889338617873971141561122325953173310989644200682713884631131613670407658690775867187598657850692216559114755943708560965946242170126892225837984272165408100973216944186647684416521518204166135666442153248817585500916057121369285209085523395981004081618999154446010511769445927860162959970993150926569255158099493592572307036659772345248651106412327955822614478485507238354379158261085000009093757109284542105886250441054769924196786458483754416617282906069045643943059051473443669111437023557879970478694465248557587585355332930847268491945877001690577383096209093640507336765924797027536360913473644203853760925089361561601810948216656221906721013829218676477933754417161686999205385879372823601679940500525766958015879389825582427817992298193211673586164948631718261780212121740864230084470657850188864882793850120021730308832973803711423668563053183204355759832253351776984565811590141102734925750884891603015530377971062270824451960494381384853096533993014164593917250757788129916321399156520087157771738322592600082424403451020368659530151847305431453693451588102684067918571827926098687041712667129898634736301319198360786493384823191506240383650874878969329371108323005584880754741988815994334578763629256959311522730618274736289864938654092338051905271799537377737240405306071758519087662813824907251588003595370197137368752732043846110015538681553500383855983275152381846035140663002921289212016113396357184129186953472330099521463896251894241791883757042615883537436835254324157354852281185667767407362731338063320733646775452047906212352172474588314844367672122657308562416248696770948358871812856200204569952779459358579241733675674924235860760782372895177732136139189483636012016696677841539712601932653260832067977741414135006061667543226455637084976084508294803850276739205760148566088167367996904905539867506886509755007550958400902108681917188853771286043279579684485341247679943200417584181298286575682697114999018264120557087225673747603610521760492214057735685499994521979157638013376581161579276938526725634654133933741973500356603983624127880494016156606079641131905997088662257130422064536747484724473967024604844235072977111106506904522417999734374158321180296689175045650894180563502607782927029353692934335342342424456358718204049809163239679846499579520723567360248726166419012967105688748150617363732672453100334686012649219496588315475124319229818186427060744632607889285399387072672717137034817600191783261937228498989915445179950170993425742119720948734025962481813086994762287069147642516298708740572052748083899013243098596888509976505157290897535695718159933042614078739025660061236390619548607051466011767581864853151688486508054010759424778376885499088799548360188706573825488411030088796467925887463615385278438827038086421755136826728858893362591049592977307140913936986821535957310601810844058431430787781131044498014859590799542821283005599643750984241946137819576964859472528612069292395660257938876569025580469538301146040315961093616053438727792086364405780957022684166025839179642875392912893312425607594121840100282383787206281426587192952527628368133785178530955652803544519155860592648443195284391445989230130528651550416605272839983978248460873153504354044469298190853542809311075266812185923752724222812816952213467531304831481129356524234510925050799474816989621411449811501610360656096730415371912202864304000431287801781990913692405591314915611249754101443137041274726658933053587689768076751311403943395945369567568903894469937976233678409191443786478809485094439641914589197886404427094514855977525924957099700759577964114458135729879000256031286005004067299980655378667723956941052175976594995106359028200164076819204599879773731490039902387047469336260824612639770880278653362907918860652461659151876421496137916819550237222679077801634842997721278766377442351033153080195567687256060530916516684484656668838510104722096815490172464324529301600416614768647661497512559983338795570037289865326741312031747497324655953080283715543413762208747490934896738430658045822504322389399597284518574220587176124902497136246543370969889262807854173838227496883877989173838391560803066567801816024755452790541774809375305702914536295189742247954876083679669348574182381128749950342950183002961302828312643239243820107198181664676929076155300478246602607666896917735014758874040209717620755043995740629662750837385882496669514032125143160107408892790583594818816712582242151414149688029024776146229117193092646425583203275617736188951427393225004020449246034095805622223972667493729140146491887432255934055471499217955324894844890549526468582705288709873405457255070281314768748845652041145558637203340351104324747404008724515868853549526134660145213345423412108983943260536815930506825712463654443571937709862074094038502126073196734851157007901343551464107633294853438161831455392360408748018612482262334435408081020157944201297678332890914787588090304031476028314894795392512561350663938298705662420483096183192394782947924089382409806350076664252352030576327811183993742888423110733444557062510448426473563134993618607097526279257037137009447086829441313762867892149251499925228491980979511788600786911128882854024571770198922376068544924252762213013618529094815343302123537296863140756323314273184366167208991828978358747152897368309892864051934177378336777694901730740737978605966480430911189223280994996443393573264613651826104635730600897384670129358617156004189576159887181951485967327094020748353837069546332994830005837931069349335773657740502925985170700325970584537635238157055342835590506487233162266334069873752465626209063829030750338370679210890035625322651220883695699876741613538678119448516103885809457035391901306429350964744473971432045938924232624659966091440063568112477394810382484334188936255802436182048331809609367751689963117110135172675629103373339186099140415768620900668671409630986645996347103137617470800711994266508471386714888174348062501077713872703607991901868052072558811403113689874379634298285695347960794306074518142719466192906244164275957343767855468983406061709081799172211767665688682639149696528020203409499562930536278067881312617471103991030311654225591850834162326956194870820277336209821380211964304107674931672164540947587097442942054492936704757126482172712084241565953937498854848382933468714562023070554545201754641384922646237561279368380655199055880156309481426127184915606537847512054974374654323191077720772653502417170998362237960449512021773035020711642761887106733421510891165459880758073007378337671526659043138327427499514824387769557560123109004521761846544051230530168596469686458555578314621805492482808737269182820600034676676361864602593041614786098975602163557000001976436960453031015793046741145119487295746186836318911342889555212689234526203024805477461986717247935996532988881626369157293584615082239062904735773015925405944675947226035936364208875876915226674385778099412072823432715597241665744357588185327366326930963708867311340101087299409307223756449210032038814961721443990054188966957261928760161781362463167652310061274156122898005534639757236736235051950098583842488475722221421026583567069981985010433902211535846236983304449191854885103533399588243545733885933900525389665151407710026745600040727855237700190283364672661660170491428804414869744611478073028409365092013974770276211959108509217696956494258556362077108759996994217477414177888633789534671920124238717358336738393130905820578339570254838703815352727852629368090313482476765731615593272599857680711840197441555019853620278422072595713264953218478911308725761607469624267576339897749352371810247628164037539427183504989342549177489275007453840428328536886466017849007221507934817995315993679499426508961751807648819133924016198348285980103840577231168471855071099285446734850806605637316115104267978735636175020870941331061946044508735669151032748352357000985049492326023423010857331084874812129458538381778133636143907719521724969189181628443099821447455313382106835329599814698140491641423820183943472464541818990685787814703648168277030951040160345941927923971222747092095010549583726138877720471219136945362403198797768383404205325562813998706585945350358795476743013740572187082259089132415739132986190221868337226657454584774659903870024288420019764396240859187136629409386423189690588670795610556689692897287366334316379700797833019584651622916391686050093014635978586085150242504164850443647600113275893213246214662880727706247789315213844795105371208169244332476786986336641594340337301137275259617233664284585422748737854887937835044749521534298917086862835713394397146737833054086682016218226252123141245390582339508869618203758610288903069762394981245701362119577607861037181341241004801356844771760967137010020681006782083035211126259110403043751584663825563849969434735068437388095907294761843341654768674247244553238141655976575435024262606949750075340312893240961657221986055105097910657328259704650401129520916445984831933997890258581656397972404639385473139199845825134736805201816169687517593874479694730797058008951117116851854671516724366910007070650630768581059176877102654352627671755069974089963110268483781906949464954877471495944795633968490956676198177591899042998163548560228497573381252384369404444345417961308926602279344446237461138687337814329448654011970578795312145804062508012865597858079599527984759924600624915684398705761640378428230936840179563211994387481844750531050577059728896239351800057619282164800161276811056386098806128282352246121115679372053926752712396267117059454485505248813458188127041751642729154594463680801445314571686096876134486605960512584537826489836937508591915675935712754130761923948738593170667091701421363394416792565147181112380643381301970590653492977403790288156354350212357665686494324813009122013832527477832807798008477867300417954772952230709670790383097324496991901452260458405062976181459266146287679342753103046700248232895235406125530413704688615844668233652738437450346639979043043528551686450418386723683285381290310148272173192465341547728230032083627834565027455757362677693349244600768056495837668444329241108587147605620722088394685181630542767679265788315350447218227661490292595722314699987073174566555010588573453967952334534691165628386361477445737362142595739520305493637689061258395783583756598303238771502750995969278576177676940654166266292930598623501574544179796344270489887942948318809604192167170290115604000247507648035617120151005242951917197808265185424744679086788543833581073964846216309558968095527194256283845591934715067528393384152794000542910304769301378542846498533912531958430135127621619896677964761035556947715282822068237719229780782679893885667292194321692365503937263352594207821365832135279391323871253440154400529321444747276650087617863832112537288580426478551561247328866461033977194123490333608942080802312577813415650899511863156344840976588566703830786195242372409869419918948969134594352779594679456919514884705893660652509485749778632714047511293114603145913300593184876510811428143534417443788469134615805957486641822862651997236377127119713838405590819765153334053603862140076126336415559668286276021123836957587584962500122277455618394394065156386367241333684775144561772197489153053803809424226759539110361482478412164304816315575736496071667314174423503430840641408304942770657277844797257312431115298668468416351425269735203422919683213934159564785705048060690665656657318281704659274199615055372305545949204718682886336643398684721793551130415132792021677854699568572762230392872660959948598537973648402916282941346244454288887458645383769574242016596489595837269778889666950828274120600440258081306647184438857831400039204742317545778953367009428494013436095452369384108770526341964257799848288979934138282092333634461894789946498015400851049480797002239447143457604502907284008850725468350493597418140241148786749094513982782331175084816141056146979043683762592390401023150392479763305330395299806544860377987625056751750371164500730123059426592227346308561067051118867306697387093002572412585037623770947609848629964884230288969646456805231381553054220251682041738137077896845888044203786190311918811488614799510071027986814710002197838778037640408338974625873936209126997304253032587373419997478700460499432573768469428998164058985776380095698206781720471160582028317088569629655557719400353433958195901515305629807387705726998178872293784606116642552052650244637905775456469052829764737744752445571547062609374935703861932490508592483385775927039378960393225320119679841387537645763309522853988504223744198122298267834095723973130056330375190859242919739859413367338910799658403088928491542696252453543534743803776082739347492293516802330188320448062264601946581413265934666822025578459553478345586695697651110756150299227576737767804240191364767977631456654194499410599302061965585295715030305537067639070429731923486419011162052694797771128831861624618627649550933199586725826471550464649595169285414445611598273331048080212960688148862435690299615572278017857198926670478629607601228880747191945699968665599786109551107025376588404745237145128070690517020584726286432632680706547886924630152369604603576419443476096947132553437107167885607345610829114082488644849838132289431224148559128882119041455098509902938950930871555503989598910052218361451847208001098753693208849051420150356377300548254383072269038296263851290194774224082195206861073096077639041270233992451536896615573708808793053840894597359488463389017837045449274814750185847949559496799401441808463224190752705861510978451141790053728848865952489583553067785769478750799853393970545857876343382467882915573885046868285060820796018240268776583783480753341981271586703315840395160034041442569659832360570230262428204749657576805125533435775909505944602572244451611534294279787435053401976745256439578421479960962824997175379925536335817968951775741210998580935993958428309896096311647892083178220854048763904039236759092509372304438850117361463817792222122079258526273041248376617943746945474783378168097932155392717614608437564740862196016369589872124684995792113427596662476546390402202983250943787599441172167611806869824171591964486839235777662216156528565942985415239040452273942639526299766817268302360430860940199957029891374092732060674674058961864165137031067813356099007306900355703526869254443451910903179637597318414824004130429294620989285320711413582432439627378922783939907235625499001119135645070457525582364072097230662401272940255636297020913551438314832420327363938099354758694807868962375550106993924226707836385113943213104865861703551985300333306929971194246926844630407324769484588129174285614793335014144877451110567444293774527810843085627104020566148841622212195147290298554179618310646186606721430889945536635202685666638194436022660979742723247644496818662479728853898242114976075734784390738190067100074439609686844574006167490520146746437917853207280416542714809522451401729719302260536781679869034940086207974576744764935116048019574815262990447465200493391098047416567579732732376272482038954330579712992186775148734694608258868778102641208802130030013306855880021073672294041774190053378784186938000667666562299111589419546336151283041962365543222672009604626855642738563305027924195944429897221388792328548129837919011473203215954153195201322273410210250539185274670430764028192881963073640258470052075819724700744120217291954592375234036723521287231651042656480569608686475501201310373521440837009145545313868997718058455288415984986228458769319062580565360632603927956003586263535010795103902215111864179514805597417770370952895374735041088187929868989660133205660547321746656777941624348268665091937530491868655678941870041572040583648386889584214481640082719889054699239530769502829751062027144431879505299369629427262912946934733556606140121956368016796828724807773546269451816064470195455455488055747642233904815916867946103760872275133362727791741534578418240161461405424549891811009010289001996940925975256363205228269666383909596456146057165930883549473864639906840515355459361645741381850721627715745013257479987475271981325365596057134591682014113924208564948765869016417888510241036303069335978693365333924928474299144355299499231647290890150892941845543110978087560213444778861889174674558042853884374430584230583954296399008191711222405450335970630890684066094215636055681706994421096960406798317203944048564310393040691584338304653448968010271363389097690903603003049265158765966551293523855346683985354051205267947213993660640551187719835663491173893312214791918434222185598321661056620306790253042340478769405742502756959912541042397830881495355411293750881283907357097813106868850259931782779386135736884557610010526189503025743202298859318627708898098013554710801815312614339862353308644036093676760112444370563291328647318708930760644972983284547733962983418146813693350496043528082193334741265253227671510107991388820361926828380482642997807167852855390397229069534553146188264469245919134669164805129447316713624528188070461944303630750487583913004094851731122275305874087250211037891326856247475592023109517279646949854482207059372921113885049178036208718604687876990766597918988085554845358057522156950675946221765553991575704109332095629694320111164899726853611233451949219018547958949644253571155777059013442444105072228923110417912627768910865631301040340127890148938014700127521852768730603794539772238972488386563064767362805028337105228108632447067912105949347423612259148863399024372664298529844259725216712104908413267949275348457778901850458140081427507772125805861175920329473351630950361014123084901424136669228522323907602741983198936892105395622922093299399934346844964611960591289940757670601071119369593668452284470918701976880778863897493727591565004690076728135639149882317476066836354360427477120826265654524410403573088303336080116910810744527162203306126917637019805009902722297478518289548992610063528036598831257153282540238083506058040217237622873226082764826465294227788075182214396178039808409730688571998355314104530490709591624499368041428680314893122370955245502711532417335996213173027844779789453416139338054167012180320971637522008694826954729603479047481528782753255228780086206151019638822500196418872857693894062630165271877639476597034470613989694859024997489311575766722728290130032749610332525733084622777673942307258956726087833626281023469102379783388671492675322405443922869662205349899018700292835954224437722157835042402526466079590930470546745839967287748224861181956366509098834723260900753059365983837981098125498853067758627351155193587251046992711303585628099636868668013492632209380493802689153705028484626636451132350070221977789411190543943590179269564801493403490973055090548934446509030945680464488808173324402334244036032352131577320763721118939602304502580931347274865060518539642383632141075692054815136022680975625574015018528158542732014297072799780525252960979684810286319463198886680884922754690364739424397563209739658889411048215938116269516050336607027403518214520974172926821533613664035229053222109673703682946270178687537271566918045904009031559082896066409277333616551161757347639600572518771069904390420441790273091153013871367307480579506275174457636291943843639303982616917581074473741729273194324066163350919201738623104691107885145931811632963271954055533071741534036139954943541584228553195849630247959510901459642386348436698716182644563684030323031450644959450190467533388713766753956810923668031582758478066731083436536539942907225739080405875779537612003177461664181344052198672383323614740720836790076548716816649482094166146588914276246501881131434664133156669559145252288013826271318156660498971767676619451020863459453235455144611231933806139638396586782781497660739068476969999884225977879071882987119945944540833651748680892605349612211615650025363645655260534221290228035940252360764922865527816113106334315510681920869500996940674334791816502631858957289532917110377369200527190417849858421937590404728160195243267344759306573872899789039353479295941548251162335045859664351294108092050233152368934797171600954589700262860461728203379227148268577738930112038149672277344239228889904121988772368146478315581196492847273447207888942698535656657481642742014461263260337640100290913991152181288525664721059603087422295193727305852556273988130386442465419256951846120565172651939480262771997014284247873492423870816086600156735997143158488818483144339913432345875858570736766115909356163330800440999460833322533854933173970088910597510194029926491445195084088016731926860892902760172185265060936683693030148884703232215772585968841239834184833714676080951720529211157945204908004928309845253035400423143981607985236755208967942231482298149500344281697607286014843125031846480528305242787285148266762797040571983267750672961690856102597510708673844583903349421854127269174090858414858654635230447786050527878298177473922234035941610744648484901466067769486704188277175828550224495287128626324484660847173256993217820023054088204125408109707951240409415973504782838405413641659651489915028752777930484585517078106297701217696715904485380463440649703593507934857991438613993257525263466027427264491704017866818638540032801135350279165536639821672823553258027974881172576156268739982011438737501846527489952909826563632879965757951348157995673003673947638498221922067554657237915768400306495812242736095707091765170029535392721676588418464563268038447843681581525408924196480279659668939789692840144835476497863490046818896976144346701063709411425889796491612425834050625426153411102330160285477190367318266236435599618011229623998817794174855394185948452997642653557461066997289569229512880598276453785224742152326841982740785363250299688539525504013551831821112594939794899189552712107833621236013408663027240545572372534381415229742034737409463579622060719167174354253205733272690861218085204764522979608556745245185111701492143283830773566842586755986442324405481442353445204060109611533722608562893862427038016729003405292838510611242031210204851014708546521194730581676969653364627628463940188020089800220735473668606068282471462602568562038660621301993956518512225417240247179494384965188317525163093999468496624638578955915892897651002855165939796117853007606531406800153248365433875683532349881745935619472334363949328426885543127573656238221350502149007078332691248969003823863649398553983061007917470505650771139377722264661356361416881996769547604528362121942022628848027300695602031932811297468536418947712385493211485198501617866268985625359655607199444039276435577100034501150618088350204184628624134665451851914371519421552185380239286680552116813852854817309066981705310334297339540481432957624327033596581308266512281741238752194922985909451438220311201308052817502532593216958453741533448000803533499352285711895801657917878192975334293454667838522311909103790256372293545623265293442082762282348705314754817814623092289114364275804654044789263645141210022782407008177634934749303809827136560020627219505069130742263609649533135742800385791509661005081533511511164876768193285537168171751107433728223390375866141538788148578909827691887594921255632894316807013476190929617301967495693141585850831484099473947423493053909832684220387770416246041340455260956961489191296343811753030600026677776015057076642125639773821839144055585706726561668087566953756221053110530556192821769833992261168713467515301977986544212872451308587581712228974293144054384997929414682404497026931598654776426668952270028090301255998663495063543235905253133877939249583992784855693584063324147324178308386935519864505970009723342190413693681807038697749591143359189151548187012422338414625407011974219855901676502649821974412513093521640209726201103217817719172169606752298066552775946569822106351012097547916468748189963997010078113266643484805049608100735359037880345956789626470292221119437677616389507831228417347144752048560336219386484621771823035843424115641722457574557288336969810306326660834376427101221742593342558779843063066967158066730872522646758174294864614654531172237163211564766497462604638934341231882603696218671417533120649754860572959193841158207465011193544100867896636386616005242783075512811029858565437233315544189331347239951358277985279435906559402918957175945024355343378393957707708683897034573517736313659695329279347531790746011691079720356377399530568546181912515079922400284371850335156567823924372817875100610120895499185772929626724849875496068866233979366000773977338129534474928131992848369058541422708711378409411576534684015906499540857479173680893574452571139189394903790101828979442395801552574789346666317610656912736500997558768698657677802729179635500822683183593588161534257682355260828243362869181913361590299648513640441067564600040130506909183692272586656883466210923386010734924261407106164713365556021696809540148874181555696228669702816010653628634473157562366390273113462160937470952466288638696260519108375407454381062655942835277208002526884669600901050233811828081292943345239478382827006634274895578339687969190143171237574079561138035171906925283456847498168563894515052634291820016947071993504075159979183369529158024695996378865798087748015795789872001827479029997280155960881197665425348561106855292842864428962652943398393020193142601132113777000373668007382389665855193229058287191600113268675831280732872906966393327726885692381080699502003608291131293057112395760309196921397166595271905997031593707460889579382118015941911594275620235965261502878911570252754391821335848646209624556879643550375051782291343708918016116527542606913736989102153546769905145294733432882019770087647445065555600458161311044365486907595349911566902263704055291390848545517807787062172075956418636768562636449202876773151163103512293416730501986915065089837598991119798827206998252822645339151493484985517228478174956177153209968222943987056487460958022961209225151491902872944055136224629547971392926932478596108993548799049916482952145298870131122333980384153259900834924154984090766285421137585884070268930527648817838715417814970400648820782451140172158863588272025785997768567123026508649026201922323018478628827081315589376288005199077943580268130887766110238366125069853914027104976462210542896405236812869966512689335219993348696652965152822704862293876868302789399696523964043767786987501191581734109629823168843508363208322255942985815165963245083479039183769378483744796417302859820878462325360232826148127840195920963202617211886219941441169103231080811633245313109711423116032972594654624596576374374376644304228529691318085589562374279441895314898608911023238960799829235187154402302892421392643933975255424336197898858035263709946935884534463567429210640802779029824963971227438208516135191703059992837848646761459391606735251062019036197839040911322827534579765253639914311453709608930286729792915735201112946290019595369872421603394877933894285425696597985686969101586846024388693157733196329225335778248411891702484230488190115756334877911334308736249183077632761629789221281910362154505522778114908277650094481607167378330876754183214758921259255977282077465097901009211750989784270373596657411163899825519347580657231837357461345930935556959321909053935716388754457445144295621193294470721358174204294965424772610739147954194005993785422623712812301100988358155318725797018514955403239156744324405168214450064789099689337033145270162714429095171765009721199064224741777759544899056521713304983814876264635799247025178089210696194128994753052470587591672415432708460895112455320143009816228389596221039476493466003100104850113843711440402248191863295091349155782217570768630417214191301823730807417807144814879811983010017664529261729991206011220304110339564430448877315242571617033958206858937724403079839305931733292923437458149466719993671529956104398237534568087589996318443703113800260018561180724055073336383997113486434494679318377326255112897337534575743245888623222059452674713414565151019571919905203350717638240528756410035625546756505298286623682288258630193057608106342968748202111176861824709699373260884798924066671854863976306898692648370328688058014074112463710026580117958905292568662375194796418184803831981823399857827412941039762366408367884400875127555960536063279449740068578980603121118481032159099134211183408903589059654653909608983373653422575577610416199712442087584111401658038763839712905830123036182971319675569636545687152025184925210887041067669659594213421778080425373997366464840697031432861632919146933969591352668162564230517726227777138275749810212136102400964286392690445027566495708573966649517080629009411271813348795936136439925876919440948330835216632648559795950412943914919540291223658315137513739570091168958237358467312746470126135559372729158417532084194659909933814145894294858147041651490104049494210448838050470028568456370828633457633922200471086469569532448482475716559646825888123913525328967107317608258638209112872120641533558234637260025530126606904813725016541798820329308027645284771454229569543728555496141158283026767101450284194264220989956402339487584319451474642080997919420900838011022560019011918258942393341368392543843592666376493687617536949926619237892908188942578799061493010607158705121280574200223904883518582567153893869585376614124340143047374333753457873980234389508152847770152050899128913111860882088022698042072154430707765592411527791029904210635093046305063734312128662504200198396619650891504735048122601759172713662067916733833219489129058565132701814905406466267207871695313233759522028159368584197275164496459780202391643954069501694985865945437102859679572181753268612533363271454759507984951666559498134954739769124778412342105501446607463922032127245633913691938091861998685935964229280649032049080862969815405895232219671226263765549203418066046420512662389112929681761206355882321308249797782718367936535468373658920576059092198200055487785538329657819490027119206790385865770117826443961110872195773299683650810738193079953169693248795954825091763358884460175464509928063719122504258281133931661472999539857071988414871475674791006198075443181104679102861271334107019909562856124540287637290132727193051637575159740557145046030690006475896880914695334741828907971190271385646338497843874634739628118544840199894160943954956730534527640829976911042758211094588441747986508176767640022441234928013184558597572655928014688697742261655559243798309639430532307743765240418893335321300896695719630664669914135272970581124709339182281958156055326028571655483293190751618039860145605659406740148502590719473063738890077851071013761140637680197169871790756734571524503141299606109857318513434526526953577525085519047085532831717570646080161099525785875826675643100454680815597120896561773824123551876767409146517660731339720934046151057484059113083566605987833619040443817440361810514218125008152530953345223724701361918161046926407622190484769455724198726977524349767099870514434356992590442632351296676092182688022399546682583570303440522911262719889216295267787470023870765437547250148323411265340149687115698044528302548169180510126336618946313624040705076676806636010890440940016419823407218555315701284909986589446238602605404940220824383404051766663446650389860799106090248693457250680818744389013778971993125394725607639379301184542507648103951407999035291958060537574447548921057104228034920596705665804287442935128878436267189749284616240452820086611204904737491507464381723780806225799727327817228613436071760837814850871283504681899450387706827682300694615213825387632440874592469575889526345576135101727840972282859851913117110773880981161987668082184434779533823630817631484066727380904488239534719508199074914712462637346394115154584075733905122245238742669084761343929478672597570332896173707140684450178716070172759417071745326564742813279947657433080243224392855381286346619781799568777681885093844795953416314858830912087221228229555899656165545198238831568621249601997465456860751227334243817350186802996555960957943253372420752812602686631714012366350437771477480979317382010988376676439164830363220342702410657101617645615051714278405788576831027777488773322257756775596861763429259518468441260440185563409896895093728493324841954423931312713624167730300766561609757786586037762413562923510533738152146831170555830908928050688217551699285417430515481379326690283543936779540591116911756726919585268314306317959484236795343977277523234994170172476632677887511835157961549191851835715130127634144243868530520897016796771858972409275347122179995288001293707480881054598957767245579343290538762919879771522718561892917454207528872267690072125617778587050528280426814301688748058897502586262548138028408204167603129435178026934325421836198119092713835079536823865579509463139437432563013188614044296924443911713372708377637011187473511314399783770377481497211174102779817784732784302880185899160743539318355799188577884528736441513099960243966657466830669121881532823661464236895799867950650946589965201797850374508971379986742816448984104203881075944091594648317156666556239797063520378248756566853016281890466443526326856214026951090911802846752180491592918426752172940301479960755798801203547922438872356835398503003725554327075686920018535451392888989885775376174800909539113626285714969819580113546063412889898482097289743760477918367887799919390818560816839362870704759125783613794566440413643243613470891152999254736814544656929987307163853361558294661292233702474873552806941506281750408529852219900763735384520400444964443225195664311889834967870991851601199036301866190554619642050890727655071372291850671119327170499050659644404532031938651136246211768996492357200449732602951645292583615234309107535374495272130943087199194980667846274896330361722337344302156196284573348421128396305978774282265535296006892374412121474830114808422531636842686592230088721705524977095168959023535480084762874770016842687250598092703653322799576140281859559284608767900012193321194048181913559904714880035825314335314648733772244337992318757949002372489011351091226011144905476475828608311148205060473416075959570167885751360744008408173883356591612460822878635305741197694767993694125732022142601800734024712007059546951373303250578055218245962582268912977034161829588867667649663952564392017303884508551431037516365794320101813933110293789014604132514619431229898105125392087119173957708134363915881869900439583165583726981767020332432606171442093718751697697337456248418183938889291751482126489509072341922327669509673876843760116648278931507926797119606963415571731486643700645492306580024579649184878229453882487003203623520783025685233608597801962417552197108123028596036255842871318374436061210560788260093214071018225919966609054831839176645140932026951523173819486464163805239561884673803093562475774970393383516486135041403317348620138185852463485248464942336975979290313853285681469936176681345199936118557172369776956764801986107880857744066266483199229167119711452394994881222166184359591160358406661737558665808821567889287237032358594597134913240259785544482236569319018791575477425000527931351634696231369448906652268463902968209558614755895470929062893814554725512564455687917024134278597270664090383403615865008473443355592499957807339535849585560659105316321565417663112823704207867799721493742228904767356192668230897749708090060301693151568947946091035777230984024284640801381875181797638751266354268513412750213161756179317350089469743019169564541773212805691779715698729459664337731451541470526910169108838496638874369334334083125578571285092041243576701046679340504154189744575508762722377872520513950367223487744294646927497049233663670948457210166859984004086400276629408113165945146878152828575311788758256214471258558866569683766644141034771197550276180590425596489732512555681913191082260955328233601888579384085205682275506892699501532823028958675528418649442050458920984383641590084211416841084344958750099301846295079668169107949584011258392815929571671098597477368000892975712535323297658347568681757519642886776456258997494918490219582936233829569833091390105515935515131850654346181849592493289632498792443553152184700307414419002397309577761583929345056543237617223151313494091070671050926732850078914934423853027008413580774415528563048298286474372494451601198569882258883112293752908404666512147263693956968805478300471264463530553419979798384350383122819865390318762498088169410916598758890562194626077742737465802580724532506305191982687232758760044052925335901883845515782621090370285419729664891562436126501939889792779931067755045020302226352036898418483141436307557844649177759477338750464024943892373261226213890107254254377834698552720802119356041667365415522597206899335808038956688170527296077675171044476711151446284452339828797878278449831120254524863971957588977409168237014330326226692265631762550779236457599139589121639298756677096720993889911823174116607028210924339147116706311033069518189277625290293434506433791200696077576505664319888453380152106890458406529510779144284607470225128963459523637560697502403724959889510549796733952505092957561135224310508657525948912764299594833160089748021749202632049039190362201672814397839527302798245469313404562621195757800334908440436068519361414063572827496554246285836400449619127036051401116057257264609679687970112074579402307674058451628898895869655735945862350761234142433480339236890730263107059087815215775238656845797048169448004717000051674934622425273252761115961092826418418082008128610543944565731765790778021057060207697353137301133603294214343461765788298208274747910453638859668151772073818138495744792600231745652482051514071236337560759693710155738956595057308448593942897782046129819900674174653811058883266055243077151283582620354321057904895949255766926590803523562700884218184288281389922723759316833817112452304653401100001248091204393399178749051955476894135438844062132592721856408141191246992710739701761379707970749944211926541052550777295406220069969919182367988720089237841581947475905862375578558028078962843882116744240311178191538898177039445128160710975501568424852488269474155931562118423727894762782182281182212183742987074456054724647025526746882699452241902699846704859475257320018974516292531375216406285020354984444089214812353436750515043508824782999454359323978259596417800797615642924915753659349971703508707998827791432999608991350334139295054161698873834834760732565476952934438451738657914208087939917954690545162326948659735203654341181533298224430272745913554605221705564031559810735367573637019344578329138570583483868975565673233647390338176750660115294758169871259188560103295578920322410132938484091581594821961367761584739971103021574545109795366450683286157675756771308961346755244403093007331755847158158889373581595909628085637036901886263717656998199598238205991049181289622091917842457864624457401745368212840465264342262038725387390443338294962979202508305234743275698748551860138905300527428791020027157227029797694608065038817834672711090552205611479761041780547631387707186424011173099576905552068144500802081749639122704782153019998343036161718183688436070354552124868097071734563130549761488867281856220214190730494199450528251858903257886381126270220135338406387032847260901263880036000775623782453737401434043397711519541019770796345452864440636954313936734443549711944104768367428489166760435382716306527793020677551171349053623505553000139015628440522152475618193591912667169989478158788908076851592803037209885220956166976245595811654966125355324436126467258418134633337546823018384875407673775014657361026384428072861846773382599392607767869179155677318749626280917022561945808516610567877220638159137999216327244394405610011809657278920321437873777024850835304472445863448938511141298997210189952021410126757989634865778694175637842170963375757007506024546298698068391397538542292350822411091167874248510209951160768569325123046867776783322346401006357618715554344776826396500329856111966782124502845897674408473545203071927353777574781091845279830666979342608723087010797168853970584294862625983693496340750677463330400872660977306033220975556689100443573354016188188446450537868952663760273076095394986555008380781375497713343561659433898688083303076914880414447645022668363798417592248222595348252429115949965915173188870246652100006581369044905027891110211342294333157040672927683532026843731574234490381404617861969200823698861977700668965422647236956204057503128633908077021572466770280244383147243554592995492137314765332879255317752966528610332669174381859099709854096268144234666949623581169212859964043766983456049624943442417968143601423132884554640508976967025299927235038034354632212951002406604329061594158369630724694906000692181635199217865314431614422056580712201218267118450846520054579866600246523844899468457422823143870907751513113018518535506664154310361160139829907528665434256809187046353645720808182333356293587179735927775173640377859226560947644601832688383812575238697868244653667144727741753790386392455333444853016419850006193223041537103898717354429569410217337550755553954360227759807324991211070454764648272759487206840112648805077856548261186001273188870289627181882574311749844022078904454835265765635251843284123467435580356871476638612459391915023713367574018232273338534232669636744010340883879024053082723876128341528796622156089667512064724629436762875192621874584648051912554171033520026717904918340179540240211139056551652871503462155892625399553313541594049251910694865667570704838609664950786877826021015305622972918023159985951569185273318857307453232408204190182815742060150135822193193480128655824604505029716459825143517859581584954710389211627441882006381945041583565683388222273746636174749152057504032292255918461933657289016741210245717512189223812543670089103719894238856354716152687442590214911852589402169015942960015754638236641636251387377574058106530693765413099264703896888280535462534161068342407506977445376624994236734714534447262914992988832987414280292371339882149410530779910132039728165027619996793654301384338237295308317030043922915580724502475850152399537706658376432343378560094009493381275725998855843381947747622283337804167469053030412044428189617136387517025673321541587490521687916808423219591830446694995582071790578144194270559337107980828501379790108863937361288190155441750561900527824279459265527290119513652387473803425766048679163066795098115820492269777692400884631393041239129323693207572347495890135809011814520431760027648852971062181650958352853462516315613112832149248010488950504560404886620278757810069792653116020961309745458620311829875324745071966608545452104413641977308137149501822225170679384611082267398582390824558596370752666132924534659931690957101310679966516987839129627628347402815148549120761723694104011146999343200673951901315404021900907604406855798851957774531425700434538730433323567281806639581225240791563848543389845448139191946453764358305227232189458395530159705923097880255451483285790594525224531165636514991299692447460243749964642367051073092291353268523661302108128566253517449103045228297021515379539685256830194580870050740628688569547919427411355430639019855592474897638127506659987163302902638375024108752384765733067509466243738096682909616060253164326687099716622850325123458913555150871003373913356353393110133417906394437590012300449491491307392825800944484171689465703504082631578331210472971256033814845711545065195009230877442039162275062452932112448763930646067513417454319165377293682692614315523428682749685595742080322427133475188309991423935892253021593306924066239075723093568798076996538535285770381059096663849825299385029932122393975104313895259038906723793300039166260756613699836335192606348508095941351926357019668385961299658929429825054347423606547170146215264888971130897782592343526440480166650592217020662153408703568139189149625906282086369104338891959614617501594279657016888553598706029399848273289083784713428052048151388148766119570240454466216874763887800208513153211319921984842575225313615775161219266773522376007794894982368549687250487196685978640712695646466611374811656693253673349122587653722334779528758047207047227381048097757516441352435711830086452502791832714547872883637372437981806019840823644371838968967531693997353809743107975898510407339350159288777695356674559524643383122463776632211574232752634848955171144062123382283828378859580694282635273526526177981587158141943183075106597580810351860204839626584007405426637710285889556565249663722187356433914924745422440223205225675949812505021230385903149092951707748701673974683335076806228795777987844229082999258818326392082249224534534393849806357069559128866944266301571976858766005584711999652840514772822469100229699908766368444187864920328692239267455315636685661625167562475869445375730540268134760150450629784499260084401440175824853356137556849865553297391473680672246593169314021393906144901582502165127130415167676610678942459373197111775394123935230532719915764282582559408410569976575056699081155115329680121424769991753509151468601267174633866230502660133192198302702305165790316424037643120138963210186905775353747206166014447573057504146798192528901814335161949859070320874487994020065939995068374337808088331171932478897360075787292144751996295597061940950454366117824931505829339586457949357553368070754546642291643289639989915659303555125860664251187807955811044532820319194700789497955904884868158986247966889076444752144722368230042315828407529130392417624438327944469125539257755574195065765727066818791978565806172999262676946072297323136802461890038425999601361495897306862463179762718628503013103316466136710998761653533282263006796618223949505847489031759256896057341288262038175742936414508688558461709061178754626731323064264424903888944860187441017056130923043292085966226715295967759924115228117752132365941045789274003282724264296888432772397256902746632380588004280046825659430099957330464775136439454555121355902615605492756276205842952223830996063864952018956707899304691883357605674350280229375365270677506346167139254327674687178985963240329872032739756808398308663826721811534052338804687124093135485473372255153309467275355697050565685608164474186773644861351421904737348519872167586318258315936752889842744798259976702280149887694925031429542162171617339603593871370600333357704974286343726028406675287825543099154542758415835010629954230848990414172649551728756965018260992811724125130065116687950604763093649735991879026072995991322944290061802258379588531634277355372804896574297297144455016600861207559617266679867566517945128362823733228410328813387200638022904686727721004832479220104690749384711829900824443463715455906171535765199168527667599414672647619457450681251052389885274252992834722055781525945398174356032133183271727131214770325214318707153147184560188801573858936236622031125781694541284186016996430590981994996984063554226694020929783509243574107521894201346391292303490881093392400259951724893634814461803182668469307284103838741864608929801638169386860307361390089930067974979051736485697503530440082317743019961662526805894839367375404501667062725552258661530440475113378849107819981294627810733646725618831258928658143601106825611496006188591519722110222336127550250126212735864535499980021372021472278059155627338734866301959665779918183508027573663927569317869619195256691717241499142853732722864287951038239312317023088932826924431093524371701833310131183238238950417838092212390640419495732601697912159590260134427292506793780300390984930329851856100215360445127885820753208814142059160113583534083001517692075641217499161515268286490448978814978238472367390946508590105038338654697449089038669619437930163012429039737911737455455337287126724169090041309791789444539748417565746242826266859714940160811911362853819524526259165216895160318534112591356235799195911269730646623491338966903793936179115137419291175900774070838630147557186705617870190526491627794055423547740209471568672110228477268047587263687388963685129604374058387254517720005770186796481671587589441046153011837832030636476475384136162933743322287532206560838820177624234439809611158799875660068623929831671725492308331602988865180255823360652034363342782580385899961393765039879991009310972059633551432250260065192611516166103025690206057312768179320012262907704608227430434090793649478220221540269881187144685974811216780864476670460086779355982066572626868123084166065931393040376608154977636006172098424211138272922809575060803661589048949820318359993949425280180697821428143367680901495609788836470633779754748195990855787002446628221673102079537064478756725967239652492622998662944666458394655539409780064799345952089073867698538925309586837456106557304325984607101218027185628796902838087234582512469194047441062225901544031461460109453465324210789527436785599630050172283511439716048693120818636289293334215673513564519013654979179320856476914469133271120341724106830345799126746266421479278317684620447883821821205837665037227982805933086306498344226557068464050030585595391081462291786708490829639653667148962583676217996279646156623274662779267216162506613027961137368826148937057647287972240395473586845896727650654639357363215196033389016876498317366889662987872244163474022074527710231912048429939403267342079733882534119434985687637479354850119101327847801648769645100283191691458123669777061025331946151591935658214526485461859964992814446086977009509107050111565085493468004660063049267224376370096630081676632105600301407880033836839500336760659888148341179402751820752252717617324433554341748717871500442229365084225696688819961027865938761227163176703182702710464553169350787678494151363327909159437634028448967381729531378170618589360680658119925030544668939467737362500054482420263887372433345068364187302926287876294195382193157722013288026047476323237391201842378116203036698117690996896776396569561694218709753438413098279041859763656587307238906930334757107807853541414746696220450081483203733451435870949153465444143539498026134251218348942547205334106853002353992251720948645794640232670437644887346380554319032651786744396169524142986580492223271000205561449757220303830024447338993168364162560450029085488648860376725593673346498703556073610091681233298511578942577671388803256274113275896361065088947161132613640970627946148822151042770862996077606377766604917229605553218975128106672474942618352238412792279267488577422040127249504982270383344573677117491782120301184446567587714175381065746116761522655484027874611073784570081792176352453214275078835999764092602933034894186166412702770921331765653970619605405451153340235177695877344796628622552810935681000233104294513047341839482550279890830475623546310659855890778352379185319590144010988724896457940951025546945105081127544641045451227408272976662900395483401103131577426589192620363535671450145224400623146824935425846636455553024862331574935604283893319253482166982945734145144328676510644794669873817133710164049474905119029107611261351551776570624378270985901759904590305735257274871921500302453132738564798674794908637081092245564148073576038978024957807082537102908661848797761113587535946748266518220812672140301781201791801562957110514323179056455704682164116179521767957865584786909332548636374693128410012974298351421232698383863823060628206976048410727064510557760840262779495852061450362337285732098750971821721801193019093630792363858758778109674744223856803837904280670407718910968935639582212544863237984018238673078104413422955985367233397377232152292668675913936349085117491219685188013066618750469954271975842052496650237007396055563060567042653711005489649744825985240895905821200972881842409686848831078265445190785668211007172349800386537011361394012383288758481671217192607319873620340740437523868148476366337291611471379460169214302339294629250680522815777366028289668386944924773948344729141937982800165997684057707652245685606834699865532445518845698995480913143452267106511040067674071603543659898119701111814154356590256298698724909424831367002795784053497694804519546599373212202345617723581644655890912168160285232700041868489254510289805836253496235004218886070909072853236265832482023921421622847263798274230702972173858287036158338390003684108925851593141955112133173043566869467408296303748818954443343129123389237651975701934267105048978603324622458068110912350462386182319652560491464799245757409969488747972830893346610281056021372611724486365572088986306685286899422617545505901451668486651757627273028998776152005928728032248499818157999227738013158137966031953274193197239185759327271501424146996878409954364084454062521137545583422095402486043156230582033089966520160951712045837742845565055548650138927269180959152770121023794189652429167984741008357739461478193456909279276843685725914959139389738110085529225794378525057593627401090117535938709683972955832137625713968334392300820806530182452929921036499096046168594460163474393450000747193592128744558038535179826729380833338662001428063338450099990841741204191278702988362580713248447920246431124904891923803707293074856950020898428497307039847048545094277604028332918048752458194503666638785212640124469649021088720657486965456959099527036022280949161947961180451389636265116992095099504698758414591488865628433010194218651880487590410272857387547104024466907564692239854655585196262481658945792283144358845040039727913349224426499561134582665295629718034151784673716085770709056877038060950343612706521224692079830199353912161992720676061155352600357642796242279644294736790992207623790977296006029721683396211811006872522659889788295963457355813205118506225951455875631836340182928343671961868339019613818371459641064438033739978358372072829957208719451909122370318858279053898865380908553415104708006704160373228934755986555058273772337475768772201982650164956756905389680275559452070709902462206814372875946357560656868481357798819108998944585714479686413169900937175917836057138323794520782820611016581255922915099407272099059837730775420242222186324713316772135526028662972836684657175674163239433531075079129479678332413579365305995122422916844076640222205009559367051341166939102707760092484545748149040334970221470655635294079691119115210728111693834676955831991735046528735928619214238828698794867577782686586714063953875068362030235011208573835867690691370432209010807944905138171420761992299796764648556074908157913756838410005685323183950287453341427029417642320976701137839771112702965287786750011588618494472043495528184129379426517513254499458960068795058462216699912964749490106331077806488785833674700199266629815088704526242545426641095636812327241215004966654533825902834298464657468684949906509331915775334717103831824272192416081337170263736825274684172846911132540780036465639505794552594783759556414291222096186480185668146740407017393838264306512520031871837074552369920841633291668153281265076252140943019794965999577413737993668222274686118731733395618262707874119632345945203839575656758395089303417224325796402589343071724563080608482889099584258100708933301667885115547314212616460617442201405871023274424367090213005193269510612435976926799463406372424119580501515328703634109710036431330980829766666186286108719209153194930959674382759945997991102930316534665526531517955935310932472521203771999299134923863344681601780262570834290410723183917822115938396797627883873577768538659814044574780999551216635812277711425471354086668698927119160842154265334224180438906015492185217703538539337643134439386971788941458953502915546421304035823680867639560365811890041533614385284228730020850031203374024705485243137804715172367055327618704702415162378119645306588895297895048577695207306564146470634196692132340098678396706531119819517405275036342519555706729559382518761808976278113463169929742171409247709806142925307180457760312638749216652624191386975331155736403825849712015222192454036303975059721703971334776000927890473140290019978812653591130987141524143828737448475323843015315958529149072811004034747367588395500619311697337592634823534356119120734246387559181073541690480318723107298428174254298184205665299460184083755498440151274832802218597763054997403207897521100118884692562495538725588959665756472315017092308398914897493101588089263234363196471904232807937045812130036626557459346705227643774717916963216106405594155179598096802883484162402888968031817649960322115853960832327661558421850849767141006337873926552881045066427556011804018537689920503963057778616203356883196075046805358885288366561599393081450080908357608129566724980078906074734204228757002560094161468975744630793074870245443740279350517717675169303949834417656418281589640411931759535707894668355395722288939814273441744894419845676530326776858162283870315339885143539378884854398878242380600446212196821827857104825489174736777043865932620693437497444122221556271641531756380634449828180068373445819304990838659123236199827222291906723624251188471875486832964169850380908490211280870989929343950387281685853492377006654526740458884252302936501350598180231983577701127505841973809105520456505685953804786078007386389635958919860970524406442880010540915063730221700546415921092371619866322901325861288541159202064633660017855881425923311283203714448333374426948408618776132292388341964921672021249447735919409654906288640709816340220528789927261083187255882759089451951914481730255177049857018516373896344873449171061298130561535465896625036952301466674871435721852811494249938116359546815879512608353211186103620322848860092948796424908807544088770180298873898393699000453701544666814758865652504819066087407475590407778903812180258228431204999418774661222475588615773690022625827682716717442221857219912806095120555651765833744983803294408290076470391013089485693614204754452821715107170668056089422995952629848708543347233846924278841981942158665053724876991404234332211913292259688113862575423132271198530818274803815415860514074023356746346253797098752956245098140217013653155386406788197988222769120716881639904409417292823715284435259443453972572786792655530128636351505733953379136214906710797370660892455879614109120767855101368047236909210278808711005707182021482063652731862512795604534278420204247840227052740432498836987050934676287557175950571648895441401523107271045685861407087327197078718592364535613105995632282252807946229681824766485040959661965465426363664762845204980742970265421861899421038027704980706852213321603538773550949332775799452725261151367571501484316182954742770391774757327451264421851961027710791716822687365147778217604973972997244952483027507499775253598214323748036914956550106482316921827123250712147314943236341274360858955033598541979413015015238896589603947132438997890611051045823386546172036549486231688397968761202396473443744924852055415940552608999002279871297758631404687104266123259050860960462223142304180766355494815656177494137908709110183849240990217133632614447339361952540658464825375804231571574172851197570938953653666205930631805017549260395920833332405081178813568349914189063774748839463936933249210822908848246906226155434626073947807614733618159693587790061642312910501435327623429173275312617925933731946737902097996099329800768578239963841546194389761958934640960094725648520774592289755401038570480357670801331891480984441385632802316853923056050889539149995184103689002064193914737965441724707217595289478939662635675407233307040969799859703813127204427019026718782072441415885577252578008903500235759095783455945425747940287677887907166902575132326448599501974052626568828697645033095482871918105291377109971594876825283839952926584830667773319012745062565725257137641018304215568075899639268764422980576158384448909606095637395820859894186775589113141371671256006697577581796860402039871966845740959228109307585709580274816835208718806176948518305261018044100388341935399787347691341930309479324750979125947866074491403686233203583913823700087015281877393452328444598585617102301100167340930356499716376684820341443620909610032353644956334011255507836844762100847622733581179738916855714021414459274878750515424352904137671821647538399491231860264283886454126078397142395389083443190687212989162936835230114618427853798230190207448033577589509613940163989687464758035828878326033045668499946508858517145197333456866731852790973277372865583042801416098936621135117311605075465464454140344323372232564109289291706356123426424993661919794249571837233529730469809561896522169131996517714924073199492469413317924532091458252896323980796721313965387233954526123372082885330769890412327421838027042151132605164568564936619140317143394952667250857740097668393189529735563183087342371024747315394209200758572359852452266313613854307499198136302975329798592149661896602134870696411631225285274087688292486268041763442885014740209422217124067791363162927260783925091817543667976196998875022746674934208220481467725451592827526939899290088444929589331876624561991845405107878257437350769483112264075980434586671990007997483118092257750560789181440117886025631307578659762112616914376652653530469765801424182380292371857871748506794839190578752924469846491061184277391978810083787015313893455004627952462138445094094886915132407745562640984575625611457963773167202071685931794981350690025040225295852473678940675982745024171137416126731013084572101526760930201410529543117135326940548851901841902992077411283769227638205920684853476927190280652088320512998736522269936973884150566172417028218182408698211771331570900580086980621478892603538572373517099318833359647192372556184679662149325086831627476758548882146530204064590431569112297624190123373588253507665320098177848097200633196812603308491011783777958766441454019965276794999510400043031631271178707022746396298742225680071726708211779744721169197291707955014327571184985064341712884537033341808305385276475639448311212099798377465034988312093808000788863339516635965535796028346651668341504916028767751305966261952953810648201289855528388076320227852978731721907517455498178333396277347021774112958142473913610060666922818444365385420130739584815665123671466909072147863628856615291753960296459795900763527794143891238713623341093194985289466495775433625498293018496089101951445695625918865101798117482731603319227710962549065702313984029993428281729463676434664611107758231715923458072907908182161183641033485523742041422466400262306220550786699456388274143843711337380281472137090429633335285297453193232326919746614785585303857359778360074096880639450125135688547213232996645076290875129301386777280364817033289291754610830981671418418108876260919998482976773343119602752763043951707904302231778970921649878689584130485007363330107148379548153634728408715986643366874994444174435760608366974693216784446427879450589606446404091272482813101114029540380798206374414630287545507500972850785185769165604644097234398227840934244748919339099909323075005769488916129736161865335521443459409589877633950014267948878759712778743561021015046139066762168630891190515211522669099060579621193716526073437597176319944751695980503411342952442808714851312396712924151512378074773263267180567608297912001017327094966922877594666143820082934072695010209626542717941633610924508827411526056028209781385600863444462227957486975129583113611418519783844498266959161398280651979672496239102198730990745235573150329043908391905292587443765732882712191749990882221996605896712209296951526281170731638062247985048016329132219675696067709917049145100832547763694016809535639726593185338319729824508524695513673350584367126550962848043051850871644029620356614237060204829452132681461928050371447900384993403025843250423286688448806261127393909341298139639911848319727593273780517468318987068036185754087201319638212925792394901502952678022121293064974107858334123267189261595058356521475733327603887304582012655778806752623555359104467320885537250130398502680032313352841597660676650738799751734193633353586434708183948022986548091898599435498653950407976492877544911897730800128648969521808358779350046897800320547170865619673838428075724361616595896849957344467856251770894527845984401397921951221027663930902553631268556382943020549576814601423518020412173190007818415430382032792756209399298771725163618136954571754325757330900497799640005477992218397340825419416822449795143601645119357729622704720506073535513215742606605758429849601795957546009904052902725554585774759340977369932629272902809713411751577454422837345715656253879177317346169696250033900144775537980162437357345855429940313014799941773009998807807405413028914150941945598441187667988130144156936764209643854818146317809508216142991864675165108279597934482762645150607536847782234176926669594394103075809716290114949653744164216470908092906545705924003683841345968253250263037774349274424710565548172998818954205829358390878859118931219583739199848233173247347347803679028434153032376640908169734015929661198351082598451175311455783530194175235228410418364049515199372210106805017466197240901762075485999350034624400831278748772334474703827412914767317428465581219917558607565043894704312643308216735413924237740003656338479776794098031570099205589191604700601592152321198740923569089937508320030814785512432170516823775042149903604601607895009264517799545501228199618722331621747950132659083467127107153142916444388763436490196624487619412764089434270526322164846781187996553484770645226236822861030780461095279197858542691318773893233385843030948155058415659460686448475500965845635277486571301776698706687159459848563599306612157521152313979980076056853827535872007338533984323584275353464911766373988273448673975957136666699192794028349708614436761526577933005615462361731008608009807678208413840921038066870268061460455476167719459121454956381936642289083016884273478791257830506477661123387041231731159872636468221206269108214455077440695124835078799246586597446833278960250571895766527044950736204156759820323032481520713593922469763702007976438512697966197131330136118469039736269035961611466162047960480652727184658504066316284206841639226644761927829807334589541250559609250011267232464916167277811226522043230196409828751596304498596990683806770872692376750495745320173428456112180160302303835835609393957050105161120269540104267887326868571207920405623465767373426410529654318586921941315913172092514255630706390521741106052130598264325083784188300288576130322442121013653665286407020540377120768035185938682862626467186820526947275176628135068823947172657517404706035636471007842694617983596178643221851085307326651776110917943318614749749971628863864928719409750944865364043550588984922848011372506770722887097097173539255525156938539972865460079342267538203320513748780235855736780504061837701521119250815545968360911393286734404758106005730004838786084826952831061240152232673664185069275632243916383172334748430615459128637282222320113891069324158958273921183855832224064918863296624797441234304001755338301186960643240578660565799873235873329149864746090966613597503899453075709580220552607500274820180296001111371112165498684701240335864703614886616448717527631101603434844695153378793925296131269227495055117247233689469467258166514593679445162522623889186372821163680452159585933651156442870924502447362719472178012694887302907748968099766120111286666776421135470813724097142444022760956771414235221081818276416329997587643658100559594942925255484916413972458196961344881373292303360951140101907451451593794125316392900008491503747361013538564773225128438747409090807428721240234569936981899984374645995148075117558512473171066921482569725260880120918867454988396367677608804731089383395101026283645819299932123317554001469344258632526590599826734407931733071250316943752419746398847517529467654616109488645311721210176558516480614567816772612449927394322820917027632395271261502128769035449945353750617412141635745784261128010911042677668375996075250432732995334921261109602380984961767777383880458736837619501256296792278642993589126319091194857418483429988969036316318416046240181907276788089028045625336317647096458624758766966168904569989619479505950242664596407182968304141289427598190407480353459075898736379586501532298602329138296641160262947030072242678252947486546175572336354535469325451847658581869983102739682930073524217292461760007314880928751069420779988332163631687268376380972068220697444309063981042604788843477630210078316383323543162014977679925016865106901996957300805045289240350424748256987521058835706766676536603811245141180462134762044731627809663122340872061945067627914315670355393745412728188898803274663538644823050881126135965666971969784910006726981342179853777452367751152167739975998220471041641810740957071987039715212522461970504665925464558527743989553226755294010440164905038448663722020207066094959697866317825504613714949545204920574338940855992607205279081538342926619569198859829014912934411180403586055095034220639113939037840625569693947092389224471057216682267690314714476467024979310171888521267760789555496112318882635393206451539895222913287768434160299928908332944307133112909584183940030228460740763788175098227179185003481375239413795157352118444148346030879144806137640489814304364957441333620833976264929865226411645047083078516459150950899452983400621701452181586027222175925855624268059586734553897722706870148804523912498407860749563505585751037648904796951494345874821133188382121047640907079729173060148907430909268505979348439512016933913029824910351820175820362783693414460068940656057875263438029016993742896807857777670695774047239784595699514468286873547271138283020364768319535534629343015188055304635527325320945279683374000456243930563111870513786301457098002439743015686736846840113655812197135461096260737870468113184321415279049464416302002796725992438060511741840108276652297111220583582104722966213295366256635897648910023061815291007760267309907167572027696257448152368186483169992946126094014452897490116606128744394030736810683189982706181458310158117868248131720917212701414067419431133856845705579695342737629221512496130031218366330611377678411505843463544553241198123664151235807561046317117963121667094378378343223810696382386115321917525441371330750836915469298677426792071489973626381221890427618929048952111955930187965915189862507595843083942214785098467495077143077919934416002861237470551122878593387990473939175887682834768775482853289690680932490425544167093699542507408519300533861127207630113750897548483466948836871749033920942075694325870756890887688837597190543574758716609471247279064810471817546476214365757283209218028142092665074635074657559001941754854897547837850215496581041215945388468459526702491295609741601609373247450861501151550502849994816636426393848863424662197663728865842792385069825943334802151587732736820700004575090595761730596823886528063257939520286786332480171167811346456701558855631221649793628590535257003436624181674386081619446720963282675418778030638416322533582508489937032880197602236962466488649360013994832390168760666543518002663621909744620166380809639106035624487214122032117210596722125647496199913953892401052310721799587827820065859287243933455073327388601574041794747432597263991356487910682035414208532379786886634141296080575438579698961817833128049361834532001350157135117989649397997239785422954922023285715955012260697394686596936170224867539006639675071626631831196120326063162313311083982275852793803490033085779735295929235306600987215316628453482803358086645237391265808235363485256991168569890401048626781059410528349416472188078017694209177540217957666425376987975376259860120384087809518925877965866056607244704852649443123733983273725196598813248196729857234211683104195435309655770558678893248728984550802112951900722922194772264373035025280257295359300079115883400031551974244553873635819270760477881333679546049910978214515799427384859830088825117000440695399151075547950592501765446574587503388760115292256218561546687509355626216370434594695234869746388099314380614661013887506913682387583704985863923741759938568135804008942791679617995618841834533765428378041189011589636903373209173253342920896324599218860639184211341880133412985247565492104148641854576486380221703295537942400075383606187806192794670355622587969283303157359545651800578909796664582721825847672977080898066093589952159548364383283716999993758119544722680297534320882831286510389397279358322870454425426733586336334644447429360255959282059194011101497972900477190135149097230518799135633868257996012793001196499445432906129661158064075591617208491706922789256441974091705149575932388182594768772285758920932599019044025868351415520709849044738998553692309687898295580207499431645844688943692962534848905212864770204675867915707693428952653942713843209384178501946475366131872577670638906506473642519334284654499489306472826298334895336152731483214981552132620658843803139655129122088577596834964866332041121663525991683517645418033485193480371184597139443917907979910411230757053615322421874378964484167271214132657169911707021650249321565715583165811035472083282857743300535633174251904151739536507628585134719306301767377111137497386335526330613370245931712710315382098770975544353499423741503379427292228291374576005607863325388145752486206127826246049830888207189967352602549779397451200605000013233725070465028368560344734345574474158249653105232794053112714072841412325422052524798732518538871328680883380970657365141780696636368766409293213330399825927697512335310330516801494959026408834452067835485670508933558402205670295156723165307145405655630013923663646410601318726449038743293492892967359408293320741368707710109082501146156321939232875512711892442223921391780057284467731248428492035561650581586622421513497974348606133364871075939812912459772687180241748840600566455694372750565402877904694205688833859735912407743961467697636919317198150042290909646627180224955566288850540791912923216147566545337517879374591004281891561068496005696234759476713430581801896640089483492100858279188592041631000914910941335332336690574543975161287489897079663324963021396338861190459354486899225868965954807545230271769491219287113523016180086525270933514062838372638004516552166654338228492223953195799615867477866333337677915043123241394465130227419442294265549190707850589724543344399204958242303397687929899877972998799618970793024739915387214817456435503440404203367012741086908549992754652796002495943471900620050116235476295487003480407301707883682764368849891642990161565407711316923702148393675204918555398757222945910987971533219154404854709652243691381896182284831682545851243986325348375991193681725228674706641833149161184411567588783791310809044153247429755213157035363574782638820168971421268754319880039109824294304579802564644590691518172178559474215996796277330141281211214930324874417649885748340887800902561772078556055525215947205719196702026913309439977060915701456531416699214189751616082518673944387170130442633763195322558275217426567299342632479294111075647192863996473277192018531600508739430585007041392654226733427610927051478809353652584480750765317085887541382652345714379256894172023966049040934464018126932141345227576344396805106588537807621070916449400825222025859665740764135231779092346907185610407859568936800483927207156689353339196357049325760601755919876377708957346625059591282133280704693790455133230227765701267549500772300805423725364040765751886910762428549537443808565931807992802440551396799458185979342485618524062368144787054138084676921391012584675484291370500024848029289876438045411621003051660147857314864907492219800168070534348285657931332183215705815345535210176944251891267407800588946770835384346804676284560348999690642768216331519002722351092749199540630173958095729199236203948338267173084716976888392794039529012953543810304660349339366661598441273027200544290829605312881293710039964201863009071953445079460441197675758159719067154229111042171994533497627322766259782007327130673125262333470841277451820121451632729985115550483339314809544464873454003583156205951149214888395107847532450414445288780064973294037458244601429207128741327965147914846764833568248521029349284689520388019654215605225450269887859882600604865207425114434115709421212275633470052123746584722471212129217709923142086371851659707612584113277557781847629109641791512403459479638567002731030043141290529822502642689310238013551554636461612854950912674284629786825372395908499460305318541750758204919531113442715028587939077545926296843066274750879738623588981853414204448859429683486701374544012515353815410212860990342367823307020867170417162531556180695183415081058485377797611791354370332645003151784346028583458745867502138272476255684470681135907966799991633316814381515873692763273435884686610970147038911613648899344392927534387102843982913966646686307588142196146016882556907539201722467638617077726239273272656432463263859895085856175468931414628509804381387389179907436463781418565438708556322715083601817987765966214013896698175205504229167014607474134189556525114329427338109331106169535754159653938962549595429592541423625041335061060662464911951786100557161043288912820206368401981502734376818297343490407879756481732076067857791786980393726390499999395196343344132960320008580540445785242081382443333281251123708695832429607731172391289029586105353362672231269254252842163686094458966326840579360908598859599878029472253861461783463626775092763483084572966571531997995973285890935264328829334349014917535959729279045327651388403534484212031405501303430674189158117283396948721139245687869533465885919722823812255752646906139353767972775078383237604030357037040149538522895607905340248297413942523146935344629946358497722923702209889420395818770632635903951383874526073788118585212800865689525164201210306474679053447696128487732413954390513565127618760730661127914566441223462787014105859224092195165412727794352806577324382283994770109076621176511453458675359786554411272475473331585460469680216557676898137180549148919604301484400240029844997214236180318383722931243134688639537209465145979623220382631421895228000222375519707070340533819613813206895256400528059987384957437578324889770894308135402726208539067676932712076426051584002780324145901358525050235834362105287764685584312196783413729119194612331692353100946679357101806637963325390088685559023764655386825445526746739312461038441733737895256383519531603916009167024203137262745930603009390984030225283259433551228078535090845071977738337155630937926202560640582055586163365835545583523833235429200331837985620534381228857809361012828261815163618983107898033195006422093413442470526777615430727922401086854338602462609479874298839871949370967266797711906007328416260588724604004614145731588958683775675506743952826600393091796167473612093351849851041303083229708112290586526910616274028171182198685114048650624146045009160088563836027747741621367355569705566726086032249518678121020854364166155512214944007831033499169967306668348133506484298390265743965456825253409380262739112459877633323602733799376605272454288324573450864702536918268219607193863237289960644959031318538957389645224811856022861912779171649748826636386685617059343020223940299216031951513720883111586609366383548542674981749622682247525811030376067024098448763733605630654193639329332301718095678883494699771684218808364753508364236102720444695523987970404599191734322652290012328118827870054996498810845158834282661580874460689272122351372603893377627459260518828834527591356638173259825768011073168313045494595940245108365504164536349495994921331329286599008978893916070503767445220607276946395135632475012166374595611310568784261614041262848579075413834673122911213098482186647849881744998855012525297436545744929819330922232123013977989719601297097303772384846942328042899692976717472811212034377351573932053004636973906810616531447674476627640294860929303549840643878380689291875976430914144173595069774605220095150999884951002498338222996554529649872593802220614075825729881885697215017772508774577119247019595948968207949876542415103586371119884333831646742487575767292389400866080523027071738941040642784517680070073292872953979131033523309513527837691041444240813469318961988738473921255647921947583075996561412580391947492099811126134403503428347070305164200587331082802940375462549418356189419285426753122770092230384282800612565461735375058452871006903377235744768251110607530819461195821125321834501206834943746712127208965808183745961332795429654148082711350563930443456281484665706506316970224704314612570255235551391531145951966104646235234247393732197157845191360131519515009438158758890341321672322068684831402231912093647072026441163454227357324136413623446740493231935868523240236095153096904539158272315669021411763056701658491602166224941840133297083861674035999302617626598292741355863960872903714623542444878886679486361501618656452721164966290481957512996742219860716711571277544861595650656580515659739416772742346220399463138976932973233181761155239795490095218858846178087840641282088603226764542235006384006679573191128853199665236906750378952802637538852155030903479340608842228601311460219586354082729772966644923398589474272749160902966470594449817828433944494403652096915795697850273382733561997293486656026421852285177292869775856163860030651344422402625927176875960724975508524284702284129802082471759170462908788136111448496562272082185189258366178014142554643862135673150146286361409928248452313163753755343948223360138426145780288150369118375907927464499961734297048986089729877919215845105058044205679314624345365939315461606277787085073737502130093149718229933450948035905754798576697042739261791959592548857441388423558856136599117552568592636419758967062984573835830240421644781286196998714348724708524794766841620002311094808888183944049712866839327759040727757093549916976273030636084741598352137354051847636439090908263647877986346035952019488541407724598587535654605676592819054113564007654926118912365822875104772052992946935785734830041839073751016543852552309191269729291945883904362288466430668362166511933339779920239653080611758893867509509286149125379901302958265335215882813425245790538131405690061213764646991991030756373043610439176900778066290457680915714660171952091911772593267807867824960501929679600771230978591891731438469236723632419433338782085605559014794102932751007084330535204213782108656754638221569011584449822209504464608574174859589287791113308574641726805908060384392329130828596405250272190866131529019541827286976220218582383338274375759636929659090945071541125950407460370392924261152541019396843754435153907324604790477592723151701196260564060358846363617384561645956377115645288923511849652920452928172337678502309741733215999191972907596027683269727493374801167036996170039091333621901076704633504779468673057008112566007765520288162508294462569905279743300975174812100131191812865135609972537067022249029791259141866743571288503526314626990040611843066548886080069058587331156486965155903489794554651665512633078878602069617540313416866329074475657790109783560815518016461149789060888414586668875315967814359686960700452591690876344289752625768198462762846943942143581734205001158203149519383798821619364708933488586744627152734707155901474469349000112312803004359090577792931267510806284788494334474735267231333233931868866355836080775060922098807522286004801352340648969792047780344297905807851965621931216253196922140645471356831767393408778861455854693994251346649796818377857581505375305815652239833284285634724830999063871321539247993347497433685087151674224789213555638085890845750774710459690158993724661332927193622072934891773202151188778156397501609986665247297663781703801558794769528539684625007038180514365267961400933044697325396945888421100461960022839376833405803453928487335055088880668083841654436409251851874608611227008503865916624157938140228433305791579020303927938479287368664344870451761994472237268864953010459052295137317905028497748871321397507665868117654281944506586053531094843323573571396682330409349890157181722664664924343224253512943048335640868362690165130186372064621445647398839409839443159057894815402670899785139040484588335173590548326275151642790012916108551257077559932017599229796285451374128244376385488643562219678634724748276364047532750341541632653587253416191737727006450896066544742958279504755099207337566848127010508247655440955386427442666952474846214858825086986517883556677052134431665624871309031287482248740304039422216223336083468710436151646545942626784318535718821956203194695831212952097681723704162123973295075928999552276645338553237572478642579079986918152446709132006131960268560205816716773230037782348488886802726838278496960972602153991989291031168666047991531619003720729407782277681214550675789066438996093212819401188714671540924127299018513020856817134718995816427472958628709990337379986852291851144833934741100113469212403240278388069890802859511935875276499628242998186997481767901823117983191211220367658899703275049309187508245035579929896029479377037717916225231628066031849893799729623680704075236085465899260224478258815485136011441688863631902721817933181590302315890348341973259956755885151784424472130521272616876374291813562421141527599525231136686786573677537355936563342692245350666283452949005787212835624377228940704263578592058568232531165100857052904146164969524316838590017580629966505190565384262869348384987788513426946207140424086452726595714965660864610990995742190074248342329900321789359377013012715057065413914140477423662639516054473068529416767444475717469795720003067571672752533242209880046400450545508057735216258828647125990923882940967723326830766231239692423280436807149818209649922446659720855252480887816484635012013136834965115274322194955449036319923105162961588693628753421418835435081554293643782457498730891072536668081988542105341418728393529934108686741696114725337530626239243635718082642118021586637412413466922398015553781471662791952590588798698163281598931066762246395150263039115988458247054937682365410440886094871284806529822034160439047838490550012450967428265561043506729161510772165345994404848349596615791116575795387616528424536712964341147564186337312748874507242366347240808648943167888978195121026406997256874130645144048929021326039746028523311276549765588055993131269897046984057804554984428184182008807734706549115207317881061425149324378414535742861646084776553956150447103683838493707618823318249707538329204075963548432146202169870364522980608677324133136030172602311257818242890419492215226339481665222875238047593540962445898707725303549600248343505667955770361197914855093754546509637625968775467075803536209644707486973241149403738535398791625779788602893832527343619784919503640625969063407226286882442350945021010140676117378030481900351112623013104822515962641435038275142030874936967949552862592867828693061402238332833443466422011579746248099018572370209258125708252231507588067399702095821415095033461168963721599204926835412176894923594945629998321544308151287675021922932325428011288139905245000928523730384623621607418807005668501074642136490709216693436611028859151396035976994987982923359617916452068880804676638578409501213578139618107228521397494404736240296500962369119468163115463804735772047152830039876384648196245050354195544757716195845185186779681069170881398302171471838965713086620596973395487558977015379756604760382707046281253697003527720266674261737431281560409302035737453524797393789395725687830695767145180542647400947605788864159840417129655478110394666297618759018920916193824251362760451899890880264769969075429767711778637231239748385519841991209995818446689909934418114529714439960720502758598731522263950074688916069733172368805901887386887174668093076992279469835057044379067769433225384311346913570155580771413575935948721331498533496886320152600988524423989003024509847305579897813838634572531915676844090559773477606616225226983866380437308096379596375373592126441748025538048980693146283702196244345007072557045377140515441470528175537812226887314285860949153226071913793178786183399577119865078841918279112737319916065772714889500252229764799409227241047950327752861914694708822803037895048748856227109267975805583096443840542705469077137977048730215613895333161288603943359714529180350702091915470356919678994935384600907767430607549523915056094409576769825468954214617017325224883208639929082555966642824266904891322789744169313966255273250367931987177755682205353016967685245285821110600331371846910816853235118399537794993037107758220824760193999726413545292684176882750706802835296124489676080315980768279193815788004657138373732544789276320469899210943516785912024710464607481982338942326604798122748347136834273030793679708720184275864440660972391747205022976333509558288309730823395885384175368160087775355486256769529171747592627915193283020217473697184796350070874129263834898679820727508023473494654223492116722388761151633042422165948914504806352289121740334442860443188905198459146984507582405893465204415152813616054735824480568015721026445635761664556305820415996450050947708633434899862651413233181191500482123156947156900051717031691352374771332240830812244032847079327898876512154943731522201998528242724863745516381700760418609631034308394706727334825894584987850700934214718998963825493704981528914443780773807756297650077443269761957954656685080622438642517275553805332016566280752081102520960512943504385207770411063445303643050352143169534069417863619983007867996765559613407197452358881472360382016040557162788781594505771213230503058703476992660578114621486059973792403029941829361163923859848436988666403993869332787423706974921601727194054062887886491000563719821318876284545394932967862660960251800759197885610379371902830898905113149902657589755594597230455336523975816761468192306892572476283352868640602952513506139396318348037304440895758246690363356579031298507712722304259881355733893609451502647204136184197399272710863053509240172104349723597711854624580283201500881704081405061521900563330994099793037889055618005525442252999720578424139025590237190894952407286449742627195465369648181827721352351274820590525068244176969219741680913654394634791260501293889671278107861051045863500450462586893510320782394975059706604127131525325745821406714369709467529040122798581623420654154465385578642872300070995963504112291744911420556970083849015319368449689508840164025200931925404527395308981365437634721434603970207907765067746202845021422028030522520465316811024992334967922917232330624377715311541531484209485761058233934018181953977938146921468945584839631142015456753587856055343450326419548593531990163111383302964042762741532847878366900915071845989109090862019281859804435068363155223680638544432282260019441727955032833564542360207524967595348484439066210426123011133979255822736202669134368646231775957126211041207194567731812302027654951921741462855128632675619693901441912447248869123288415158854067026543653319114075885671180828225040339387711329032954671021655504750615645792373884574522194941212339382416444112387436917288919598052844745661386905267149709021511959689573717765023010624880603673043941694556147662586802471043174598202277861533167768723040607635499523747004698704229448051347238337552674284154282079092757644935709664725913338276107261099246124322075165696075300083440242016885212735864266009493350413155927813482343931909923555520140533829478456929046229005836920897938943768091877900362121146755353992963609048378394447040702696886367922086890881477349403373388637448534037716037468015300189460096932658558699595532547915571980292398704656282144123542158318639866463388285283551815459174914405399920353648693160144243506424601905584136296207630081160605389836007832512926213215944845213433171428550268240967180537877322269608100965205771128642183330378955242784288696544477739299675524957551955577286371270976817129973128427164972339307080144221376549422646836877904437595866091555798327719899922277283457561470126411690071119816974721601758197354079977555298554033029154290153338872145682507784077132538259423382775553908022580028442461019271740742332503944623194889603482975237716043033006491456150741055718672060489389890231746135228441473477286810587998974276985518864302299608752812186427845029790276171516297036467450715599754203563954704812730477250716133216249238465248310531944216191437219401194914672739713851155161199485610733475368978882482583615991309065374307618156177277810091514880162086518479725900427429391813382833100985562276196646042547697537552939082976537100187433553062892297284181274600060291235603156893727631241361565244499450697994840132465623061744138581119847091609966213918853148299676034225893010483443881617345026408697237996844561082370647034574417267111657972663582629272031553666260530313559978671161199345435610296478329299222328394976482804232413267090477905226712403138860024791537371722061271228541798069226366827381565228120387425002184584620078149127215157076707236513890372375915698556025152341177074411896052461627896669930217236155060789647860317975477479753436507796426281489870491469066874166710940473700108171966997992035599678259513347258347196291961374598467659175864651229693938833042887708648048586770412483561253132436045539251573200545205728351296851378254045681697810896876565645008633598815099801782532541979027448211681088409771891660810036939610604404712012309738641739628976900925323184817068808567209572070281327485051591549405751184852955618788943005985246596613988599659988922067344211751769730844577181371505683149569463970102188711942655186711970485198703753676217923722119545713212971708848531848156982240643236471655114811701443498720788143120328104557384992540090577087703696011332238146528055436330251134211450826059978291110916613017809836735726737954462483867142320692385028608094567227763564253372634867151465075224862621703748777480423464870566393765547057703718513134574666917870933817072630857615453409231242784418806401055446855314252649078363296101104262252227148049138377671319952454641502340258608542508689379076374279623475374989062896486432944330727737399792412599917188463218541051183093332603188340110120795023291103155589129173174148397672995100912915516298728444414059461950843410889454419050164068558285078870086379025585507942203558636325198689981115946061129677479814106183401353386853131211534597041812224881127343982208368617376222271046070299684592651411852913360358611414081914471106727340135504979746580061982878030259347277569607913107580576810883961547596729253413571953491331715331185625743838745162636427752277410831609408973360278584378006678339929365312755500759660433085272801631714142321074776335718103435167020458476226282632987681238315854146098087886774460227718573294873494284718450750507723991283324952511704769419797523322514500271993126066509543997616008236978017859658436531940390891546613225644575940836597356228327380398853886616996248501833240723400193560025054036182071860414538052072486202921812513755654631989401821680466316002267675007111459883891129670343768858219205763963329791344916291626340557300625783501658171176200242139387410960874357673364955072877396218839589465576272637008369728056549478087456185008265680430930662148874523622014778702327187287958651401131578807169757082171990126930956061162447975766213491930712683630850250785201784024871084314635434658191186919349429754775273471143633479241069412824586683664176452175646992467199663304990242710511632798304686248706250296582732910108037063899327609311491516117528337135665883070414356073087659880694153563369017207390357675797253302817759319158303176456816832677437361472224529704665670731697770883055725481898404526591337067233118413631169322564093848673577805729027115347164992018504036897846700704526439393538590720858346071775695735279652314444968038970523003226984664817593251961758239183658635310852624415876700669939215623449903958043357090407227230669185771704570174019569850716054358266105651705735944491799500616779793639584532921549831950182054492445474934971005817026147422705509960729825369965578974161776278765972573027792418451704210276154641073721515220901633646007605687621748439959446368917890276412244229024025315402935512906001084269320854265371577684259960323206079308987459180087720900287383518229655139025865122253903838412716391998075199109530660154007037024608436383916004871526130811832516039202643769679864489390135704696108883139673293835431799448241125244473968885555955370348470818248808150304154630770598372803698281159563635040553258605382731421277626602667702683834623196867952142471845190019648730965203866679364295029629861723700748639114743212566094002159618512197201168737649726396734860809458994158149441529820959544376995462146090359837523505941121638768033684726966409168987935389254917524785290076678277431961717155368624467610233175085875670427587397167610144365128037272220915612388447361925358517014379679464882478824943900335269270958925955895166154706446061362460336137877625058602136288290779723105113081645368313521987304379632679209604179818236739052884884937485840008872806088410554964633324832688312277513524508886712723775521954148008932223160758718823735668675833791872489351754528667247616034505602319376592502294509046965187128026728609589564414817183427478381906527136098948193837731312452688217649564003901518791518263337435940206565813129737980226153185345670862300965000493292899765116356928035274056668112274603382328179950435433227107309418141709957009504900462967498757946793010522196423280197109518239176307044606154634898912274453738493841603987753994081989569536250046937987919734603206993759387086411649403525212402317434827695223155700187075802510412227402954560205085618105609749063887829365171069714740848929690423676565744964857649572560254788541561568427381954878423377888672348523412632583314856638841417062583464410805455188638157922885190842469210840392849534600176759325967435649008948143834532187677992221453165147224951440316392498803776672052555621684235310508151590814268966047162294255624709301509061120731553948297988776104649577267052043114000200279259066266522914712949248916438338645894139457795140968789156701537401268620540859223299198399176332392077670131103184102704785897871616619118468558185136088036955101636890456358881480042304683664158658148667116657875153380660068218640086759110503818852156871323210285568479634259127123650793220306451551097831415777332291176652015223251932340341054455468363663987775934138079751784418203441596325923339154528806865968144940221103980067675108716386104081682401554734465833978121019944858159964012322768157149545380808728773543134353097873753892667220453382281547568402811541948089880821292648375285376303998564213560494575034683242726926305399265688353010321483565447877715195523460662018818595249374076537138941012797509318900157507032623023455762611798026946508124975182044903623941413987681042672648493004358653787842937186833714295907940112118826609846956213409466380971387694597833965731922807555558802303849034042216768463054116736036675441932584208795903515443989451863225702402464239455572745591120866350119365312532476318229514768486533195933765942934573032746424198901543944353208639519352921626967509725621491223744164917258295525369625008354388085257449576414379805442466961135348837993477516128956781469620141066514452099272941574787570271692323582809537186302086993676963268750466908934783875424136984540516728539718713264702256051176366375915955005123954835515233364266342009080830223522890295292398680835608322046924106422174778552965504907629390672412034753128579218120005977117491314531998405145675222406182215754588281324603322620027820769510490201548172771687558471856603699756733787997412118660744994076880934919088110021024814333192087724455449518531681279070259125540433344590509446705057643873549711876156238615940045801780872311080155457873510815222323755209971366244570656149278237749220359616583807035165806781541129701268514565889614495240673088637304254921231551317279020411106599126131871936201466517729584068618692857331816827819922711787800670777297543612841631951292563907350221116503918659660945935126995276427256683615849533181026309919193643511412313665695991371736489263549715129610635088253539496347838143977581385921947615179878296889415194256365905946809627535909292097253462769001199533543234408558974388725875872845388779367292344377364062975986257067418467551186104570268749966312644504689360118344354942693427225274390811663027471561633741059718348380672866824492602367602261936640406723338461088614295785738505643343375796814754948565511234154205941178574511518645241151119218713685523861624712266276001073114233965531764653301171821658268468577407168021825761866824830489952610242320805510885928504694817649473320791766268184308885992288612811333100053455732180375244166026811115730006836786895188419040750273756882901720660251766720714703751301558782950185547236978817476127177568681397517326296622488443427835632252738178765692780289393319229530492381840932888671983318216097022902978294248964761145548499482590457051031789735364376164681138138730039724105610190328280706249881605321500748504764843140975147616906316326602735096978121594904490388205160530888877720630518272664619560901735080317651993912150869636697923027971403273678431795829513540236384252342646765479164573861011181226031400185430973819360463645792581676592457019836448567136990709687860484218749020095992871175610672491239777345537383281554576870412590684540410781008731882746637015501185038352763150612735184861912712532074776242825497224564398837057950013112242163802722023214485354758471371096230890005267898120718146815949395462205361583105539057865387522662046978683380139092018987123765192985257921850178587993430724375243297670685721285727380145059362952164957645634814538082634243517295686341221249658390236985918459955076677306325100771759154288430691726357036643571510532195859618390696992874428795198164464360952388747825191507959212091236876988061955751878983465013721673904103793495280618502681298801426287158182797276764630197734412025910664893002925192040366666355562240495816569577042404615367939349006313439671209273688472768268097068712183598456325803949623603431279623586143606199340148041422429065899570281674448205620202288506478449725439220523582371938097603814295210797012205375160847470165141242576522832818170094848620256258486270888778414580315737269071322089008774454826208315728197269429868867405697554247221200207896023721016902705221121123163604990003547081491209586371375246577137700797827090874825223962741059531159505180077293541109118855418287909832448706845079250305098189532408446029565522546216632794552319174103709264927981519262803333271543664188619681570557165057291623946749257405177236768098566412934406551152619351453965035362863960194494833255917386576067985510522584720981615142224379482657379587310298173604376261951002085407133156090155358928594622102728269600239913914152025670600218827453908173074876512900885003701186432289336279169714400548356876728932861989969065793450420327719068362002420825239946382670636389097817883267401126947943664568428917852281000371855556450456428738463607543604251744377526259680290459388110694325661308311950380090355185882371027439611123061212819142839039171166344997500364992540677948669770182720021333403465096191786733190353378115780876973421709118513996231700958196709896064351613263206230432197570217616647775984240392846776811456960172287399118125323221281916068766437224955981744473420780128041659855112837157941672055871670973344753108262501361415553444687795813902648906440507349436240362062617337545530705090280832942764566703000696794363853248605358185034306010852618595069167183509836222478692345761781739824685617155670409364710169418435051277446751951945625450729655477105871663045194407641343596537050586009892774837531026400174651347904949159708817461516222166415349616735111202529094098022104829459882722543632114934611579954270759665760019978213802375827948812039770374786798109901143411230977536712382910326458840108107486573707835446323379514190494743636159465291285185711407121979807323582082808210080364693619365482761081072273392989422451233521835004923183541117308864664047374428904824922275672684194207454718718767272852199956127379464684015033007758955488149899009864440580496620619436294091293798748577465775856162258544110567321188065247638439827979174347637885393175768957091481887015580483256255357917883160125371664640386371546059802152306481786277556242978086634445416573755653037705543399000686152407612639653474805196937667403538790504539482239387035994226665656124239780241584841204711094159682492562219733684246824861911270290775364420955553291474931242430000668099973279464027498643567144910093238424367105708414531730420304134734999860536025560657463201871983813705330024441972143332494998802565625974742365033327631631942152518951050362127215646877872404899089571408071647179214934819311367526335728420799320836080645523017151679723187554478561127863251098101943439271193533230360081433184850439404146665773736455181782670237981691999879108401263593657700092440798506960875141525115087833056585502310842343459721825356018191593292616055370054773179385666821039639114807714891498122175845701635981478115817387571678411568798527209936989682983578566173366728143087059825373517752961207049227057243469870406639271291478213833270822421904195694321651013646336610272616992313094947563117242774005396099112354491393999256102447973848902221280745263235036511953082742849359989994440591206920838066931383847742288520670242637737839488188312285569242415533675219983813629597982411332946574353605480381182415197238307639036364995761263822104862129108675839811555441785723091178855349179366243841337161095819306664121030480220433087411772961367760388597184264888459449267740831651879928954669270149771476261231620201438641441254673741592787362527598020620042667975288804407338717265357055394398874769275967172003051602335118315723567396943346236534560519354242248900454969101859959192634504675014395342171009438036462121233472327486975599089839734669825329213421636485113385063308953297913085047498229085961584259736914623696876653760339203435232133988904863745988901185306334745315893847029750825609142253229120704189665561710631547099694176983675779083235226672609185217199230189486345949884308085700269277821889919035851111764291667457842536116751449129345869661553537382982073334732010543795348992099877075136953352044354205379988252369378526605162447468440523095709846527045014913432804978652664360116677618991291805623457677189638039643354869481797161748423280241991180312946098217488143146742792522921613542505449445657557513143730241151962682352556277443274769768959047378502861591391792180185923495515340022917416953474343756873483368692941123228865211780550489195138709290074264259441542197904560092611002956086086032247706583277925578766170979217984390313109695360355321929578731659100753567767455176960416696716666653288096723859655475911006874816246229567027054570030730450911265352640673533938631096537583048976757077920896579722956464572042651868444110160627072061505113048209931934924487773157690298957772545537320717698652381125146945898537961868962567986750282898594588429023650521277698722340495960322785673828021694414449598121430161167380229584187875476471296316078803177614357850915011326831259610440593479726022413555566398136415667781624057373848952726216997479765543563259449774415122323310939972664522329447539872805181974338607323611130986636140290741085238801758974731839999643838754659083324953209638882661204051720317667702511762021240144571779552640833715180748441834209278067975643009249174518824053514464036387807103387565491995321729767991814337321268458094731131131117835620719647744427895227496912214888912175303561801504865705654936361194032534193108908288483234167408623211805290909397432556342267459992384962437458363720320220894964462057461008080373788678317434639123529084175686019650982876486728106592632381693456188980343777709131934099933548210991073237190721887128575513250874198909681555902300743902609138608310071636611854424806185203637437030501468160328542533427001026382783935902654709055935542840154680099248989848609800182900622416764549508016327657504565403172019682273944638432739323229230709265414097378438764896741639403287000413685149811181904719695439430824227222812645635246084753862686301339548571528726957708944166269056204966020383649499837932063545299939849432805543571743811891569892913909207611213997429110441585924505571994933933163062543613502880451821948039944445411695937895675008168222967937147762227995026834773640140440981801835612869466783746547579828278356615318237968684668610045809986977043631449307532540138472137370633611842462084454584108391765746373060641839159933133115440938902315386379765986538485663754359779957021188751426908721490815874058728456597612245790554080712680776889580784929285503716927574280805655035072701026349645255839752537778035168549952418859311403285347194088205634056733606749400340463262661403322618991881857997975238255091513164090467666861682733508553130548097370307650270596922934583938191077417684678115630943911163605723324150747889421896945122404679144429541716784574671751811693800368250133463798240489146345817367821828384994563714201944879675531153761949385549185413377793471706740999826241888528495972789307600795269663414605205020928375081087474700460983609877256288387714936359559499145918020645031330609892383541725924805423836136680025062807499563805306908566030747145224897468423940672606461349784422632893201014236913243399697774387861016594153758323758627790594406556976563400080882161695853407092917875879661131019777358284253337365154498288345871380156802531367354191547894289118126427086654917578994804995442563979289073512766322095770482855533881948376227298828113209902774111777840035183743298519230548812052850722197229498855416189612484960019757888699771411979334355197448616465870396835587288157080427452938368857072681589992462517640221268859974902538339652169900799916772960567445474613740982823265540182497199854512927300468072975329719175300118396559175199540960596734013013504469227520285384918720899284541033646741962088334006988097604404900775466584812725263288045170447595173816723637767727884029081231904333559854241995229598909000034747928836452374135399255134787633170801687619889253101770137771920157716669233162208832427236196452957507152757416654210532683074234470953796982194322633058415563189180427252957798596136630880126712578638106077128814399805125256370965041720625632499787451112641963618249540792153304136193054415220582519957046280577053681195411327191981103879769153314877629110829388347715245313063734702375646324163214596160945902359706243540918053007008592342390438347610229092477218916400205354261349289041299884924608242329895053256996196713591643322834325700607073681607777513493290737969810532124271057324800133806473584112965529660545006612180234898286429866214996604154251027128890940185112367336561404723713518597639291612781020627475401330496174927087919861173036423798104382370629550259537850175697719212421118362123279127814036140309049512871226906638640608932638046404096280759445576262465117409454969699313072859729223544723451319734206991588177270924681750260763605634624518995164780580885580511629364513454645764311069072885324372826799312161684566446595928133499547846089484958086231961287925173551462285486270153813779091106296817659177705125110630443282129473522007179863383790568656564463024980289016560619095814891433366295034826686037800904810705418982270601052147291020378996606669815796659059354641598816114974822177253441737937619530136346417234333009670165477220951747612421199807347217237313642558471879761679811019911328074480326063465384654670226304257523427022386916252036111450200429633872292497500516725730536839870683716373686719747993055037488812509792409301833042039551946532017115320454101280236672374471940590889937123898642600757068267790388594301995034323547215649609661958629577148511547534197407531482867881604264278386297913139859276837809685984034104316515062495085927699037010494555804056616095650126066168176169937156816965955198761042830914809407243504171039759971303624493989246753120149361320639006986414607631406334480514534255097192283504221385661918575767796331936715669353525820004514696785826076923415227649117662592961413264514660161186739561048139859429535161965666886081835233290925085113800983753195611055221335838197233614537332527473152827801167133228664352216229199392770616544609052184074795289006122568923678577452193463463909147611351909213059076214648775083799373981336353967686942561133453728784891408958353003648853589346207329716154842679341221933504288389885363278160010816657483539381062222582720476068052710605701386263717734011651905010596571851039718269632546909408238942685346438974272696333305503205408789046098806790834091298632669611772190465180593744596935567383774094040912548779837059786284598783946746178451169268718691987578701835689325637430801843611252461766123242409791610814511574970513131714961068433629854647933628553238111166492074122571203318609910003894800318268859493447374985883598362401023103905570981352796967743603854423773540216214390100181743291244223309791921375052576305719297191938106735962305585993791360583809407529110398908039713646838841438645650451997762889974887502050161817549069613177803497413148154850692954431547272144397975306637098197724534553110439704289968373492119468616638286475310168749086677679025015218335951915174044707922972891357591605999598753708525138591668469517134154117832789668711187089862515181303074267695559353440586115610786601849556973288197181961150696255695720967896672638265895200856947950990331828753161531188345613380572839050578922320366729451726409781873016465019725591547326588257080752456221054517165681202594282748861059670622112939457151724530301049406889300639051126980581895497285879765876925937925917465340876730762773124833077756873247509426776173364361748488419111708403876369616635556568014325759339795873829994624014650523811817279247283779616552145556918179858686545419465403715756360366480687681632461019447320472348326902371918592655016033243507722391810264315040112068315555175409593582841441376651016163687562002845252038050527750290091342012263819046471682335428255811974873140943842150183513629148350347644191372997721069978087451775476425204522607543751862296801273673884342335190545277651412444129088455343581460455609001508191968100165039807007539534395588080219895623920587122667079297234504101484297984783776223126118876808518050758652917206916053621902674819069991124421551032830467188051794349994847640161589012489346257097457893074686961451357295720730179567354133713788198793740795673570248263157733601017731802150525199702761367587144026456699578139486493298782357439153360960384825114628592327270079925715807121679162621222860168600450898140889856131512038791383258133923068374830093249792000618846208424375518157103288579937511125495745046613185444400127836358730081561190933426040170946057134588558893258667124495869123265634560326444643389058034655718347523472177437595777063912012642344975147214731284043799555794972965003626630527520846876864661633723317698941901953286378170799058783795149938102023191408416181272259507078435667789976518495819294247758106981047176943428809597311666259437971435262558874021112128783485037575886954060414277285016888625295039610716875943586359192615772297094029464902322274238981404344448655077646503092185080939239518557443225930801728971609855307013503400059202834752188721474184587594940952313293459257409039856663604073124531321288171588675539955325579054390244813033059601954067460684569633969509151589278789124297911843958206535138205032389769279947812994867389776882953832157588050822599081115451514366484773400364665328141398595084045336091260879540629310217318236795258277270573920449611133631486165627129041653724907155628471265173984657742412021913508848303110897636078323085554000925182031730082403210469843003957218404571406587995409095947467888126960301669341211851758225872113599111061185402091143685688383939954380225938960291513844572508757761789570244469279853809896507127858001108062399003803537946972821807142705947354390751194986281151031360258631593689201882722885879179476114859357018019407076428604935231641840725037125342091628436948920981650282570108994497931677927032622003172311480641169535668470462292647219253576738229745746129561085124213017642620946669973767113052038775503664687586061723227024143122335178561035455429822779630896987459232690336010992381426644152902292116107860054960807981992217028435643201147599308698012579139291991252600560073336929985913563425133526770135029916009815995538030063535976482246060740257422417820860695309728047806990140817695778822933210947284723679404927335384546732914705542874884111746933195470140409793016985796295534735428962503715266795697669436323851332536005913583567611751836788478944979812382553147879457650250697877624468304258153236255159209702132949612803392833875574814563086864819008589688765605235893095541300241567511183498399377759927255608602042706694407004114408268108257273335987086592112506628661773202459834328435227590088810255037559975328922896296668830374061015747494495672108456332885411873647051467200312176735262355269795651018352713131727543130834732839427741734207488548119221756924973732701848917478281151447981567790597926048892884774200528281703257043222892257570468641894020454577471081090503359091484162712877986823016067305705500454565676211101841853511101714945438148807943227308621577414026776572250052179858034551919370078734761504754871324536850550673651913551925072964047955427810430115078792608603104053690542548975610595857634338393335039148897017156430072328025326224748864834750480409837529766665439229520950662423110266082374780732740122744259577740340220052856049741977671717432004113235992084201978603032723249813779195454257970156752147298007687753139251699797077467207102576522384477916416206967123327415646028589874358348708356024953015007280855144947056624248399622828848560249631519615997121422444311272129326811483170212059398849999974855182318122074831474471976894584410939489001331761962004523737603103694249588097387617999786767470891171049572685683998643801629958308455113312550771144475858483229564171116551046547168399775633992414433533065823758156116675335743880640564052013668914633448436955349204683848418799409665564273154955101976161486367932793650417912133549129038722475555422753332724539460296974334781160584231311873205176685495835122241506611192815047577550437966374051491653158611920655534281097066893119876642591675928555018655005276329987889591122174762480437707760084673443121240887638983164081375005449065116978759142390631774126392017503295077636880317122118385798069983432764876723088966680994287167714595125982297541427601581801506142208334748235517444052933793614395446504805409571048156290301765256212662331115024694101363666572245611849099681368536736251711633762754514111218985511884252820640660865649375278787903550393446582357337145569528559849018412203313995558495995411141111759663142190458925332270943519139384597981663069954455637248298188539335602945499359612716896996477655646149204930986132712465561152038492036604843107295521333038092454354722633334088056077934779630593338805661694960996935009104658859113237634336551740865568033856443173950073959245675252679958107541864792300035878366506068005458612410966667267919552867103169014433453343392725551126352419299601488467310182363166299146086297358181533755185302884231222115675012572276550178044486499876507281977620955632134295594331366715106974662414134112246783273560036030836065152080113926346119143711295289895169343948586588167343459885882649302075534353262248030562396240569401867525476826604236054209432453800896823919679463952011180034867811612941632236625280094564981785912361956136936608857461716457838438739401507502358632788384938800650061924804067875969252224146954835074927796774020628649012000127697714577822342836042621182003567381595949379515128297606303198745135296878940109564977165964612172483231376199459503627012899187884629666837871894163297630282190253459378072024838886806481175702056263113209906228746240879400737268725449340726287939580874436450552530364234702341390637103850485769915875378781529842599103078053504886760067175449407079205454712445339736196031557030964509075041880817187746249281684770491281068421455646638642442626504236653822602217640056293562533593973720246622915413766197307591443537132703582115500372027432571308418456035074328548114341078955409195113829146800056148800093796133766514638965239643441408381445425458313990114444678807658933123424750631140353629501903180982479075114242405546294634403254544504235621673221736308259501232582190663848187806309279829076657560816810113669980238698530411271564300925633210687976841127159327931541869814356141420941132450184177327652909829632919958156451086788702669923142268476157537461972112449505344800337358406473909269903765465315747771473645500701089064928329612816994432558760382892670430945522461677621061344119770154370398032505278688414955178014822202947828357853874635880694890464902222848921715856255315172114583911875311286863900886843609893906638511470226697232120963117165963196848743244600280185041446095583667319553973411771180579465459511079733708708620799832275507445108371175231298548311226266906731730194272313002270315590911753935560882432567051901874088078100516219684687174636995264232102892187453941380415435732152417123276506836700119046788953620795321406117671523097255476226730429125962499924111179173561839516754093735050747608391608998960621560041629610371206212716899372802036750422561396876767907453896657569124055975422592074647569459141653525633298003302598111429700401728363830697242729543813867596260722879634927061683073312948405326195202017973096034234028943464228487492606658467393974910608513750151539546646015645803603143078729798796901257387925102602871997785043351835465073719138802497530812208741444239018442024707531345313302847281253918880796539653161683846183215902994304924248972642688134952624919166388582020457121889832502307919084238341625840099378080950938694895238506663461721608572135007261815747545491800850413993550212178935797167122299604496526219527354186072740701252589385845705994541812316996492334749543570483138961712851308199413883535328482630781224075826780959696349169592120602199676869799701232325814041522287380108382206427626852352029287529312413680571654491218017111774672032201821869128099214701665204433646085403236873841684521392180838892471320871010969873549690298089647517305264809066699341769653959423895206964660648411442058901749160653427126097049307227536418885904206050444894294699913999726034754224611776289191783325454473506790730935104433968826110327156946265580835499136828983839770210052872781157519806040741472166834411767771791175797674179341040192252130013380278783730616768913448032345687263107279053394631245451536643637600130468732041249577624301606270284678988287632093919426908267993335800649707829109944677622624551883420986645268031073585734463497505847800658485436640023570089428522259903432771762079837603179268027939090352941517937442510396148664163421262127257804402496353199720791551521226706189708928444367213161265407291020004009329087710104932233024111222647589176023372678210839220275700370305915851728709982881941024128088291089140723616833455976256949599041670951153323693290506644858413750103050455489938054497276680965757551783252401327052445168694626398039844929048821053335877138638569875247880172423707257277253477375530674526374937426342959254166818983294635041303736062420093173281355386243293812405490180134064834126724030343684183409750803788780853492010539722077224077916664091310957720198823607995328238429680245325146476477818217612770371286881215292264195749190527532328417563963432341303322638975766186051139457464702950464329019173669636252051473715148686222151024626250297358749335093132350390132388669479784831594711504858639627419374439785450480963973406711067038364078944979753438352429454888848756838646657313602887061586451615499151149171912354580358296926110615443082069092400853508952237451968664397465991000278111392736214602246721636469166322213149667627543245021601987975644301663389680076280513491514800463870520616875888273686852177458372581757033519864701865094572384761955955705728601212237082552192268464545828965818225263544016690761187213027213630134052276934310946067950012925683967288615952568655473444568606854182259496993795792748566074469492043275624653494391537183752726406391762688564238253369377062556968006949748099805960293742634516901691467985143161633734440967841225593876915470711331281440063704084940547353682732340708481451187534360113206442156009437070545304854323281904034582415308759702751058496421799437850900187864819778080767047312835824427524525062984703364309276526474491270360609596241593159738221827582580420170740363219460401741651454215008616702034746535906430756138912936975117852680421770055753525837101144314137265171989709495972875197680977573962887050924087633155839140520922250916383327360960780786121604658336848526606670438546264460950686285445156303200856852984378347973511806248260659887865992712838601237251592536355686370086904431576509835451100748194629927490794162530246894939005969465715289451491976918442542196926226050925315296094081179514516538756421628573182132795134718407312434317516624060030334755833000233897013136126997500042521929412081795454296509725030100827355544409321499460776282937157100357816472680425521090469896384879502191080792348255576016065883873567350742485946546160720395481862651876927382218499865380224023761618097828450555385871783142045124856773026179372817235005813025039726991740074498493403238198673844346525790747170822151812125861811223219660013519775684561099517252696992460187210109873598840457891475599565983300264034649435118646281466665483706502997629688411489411159741829265163562275401213890737569972962774093986570503271670796275846724317255913568284222708050041921392339285104859553615504965030040230975701051541127251853247086527649073488059848738995048527560728674980794618102987350847988791444549735361307875772307421854312804480735367776705411129972401133746571469398143022791297823704812075143790549454550724692791212902237334993469175286136950059649506911654382054309390168532056963490117502271381462282040791528283808703787246693865590544235980642159867428042372237008308465407262280341852947059631089609482753141797236583496240206792833342619105398101757683774161110307842547398869432629041662757372734420771489868976035875392094757428317872054518498183480222753324504890225585254125208269879329268076844095949704734734042043639712666089412929828756209171321051578578303018585390038111517580511589362646424858526722794632145437493220979828479190599265917436963771144988989639614268961958587864274269451786726024913692814664032041567740292266740361639689660674084037822616737011576038400449587082148746022489305068497565247831877027953908058643487038983784642415654856010236379997149100661816310033698569522319320832237889829918899677148213451801750214280662869186370394067751986732462957961537027051797713761757555648160271513315739776280209970821754256737567193413026707239358624275833816934979450900960187201321122665404879931794711514147316316647475080033167323803999776517327014202669410727761396199916951607664170174313260989210244036049285637940002063774630238320011982916150338347511472351348258942621539074011402696211441592650345951407604225166736253110743938783145810892991692439361315586462388467524662741403219754743046060865969945968155142985619577891510947792919496518343813337895510629849458282637164417514155463443168245333253046243907692169378279926500374704865024061101819925608205644062826943134383637581736883140286930023830307876154539855525732114977112390518870014353428243335842024322866006892315642158524419580196213802836363281620532011704305435959220965322724898218621373256432419512110769356018664120694723593315724729259069776118666026969753134840083361431169548010145328713178557645274062076913665029381867887234193243994041296712497933171111313889534261250088025566941751576439786197510204224429768254309255484734609951465399589499468769574701471826017986375013068701392485087087987275240441971714795024527760295746557032494986687651262358428390823465165947139018522181963181658530544109367633838071561954767199524920849184885723933148031081253555987627244644170307228264553705297102037345765683449460679969579499699696247999132647455381050143293002423724976872978440300820380538630888981002352191093304538568853552926900722079237289456777911331471134275100567552437960176929657215440881257333000980351493564001937272795802719406554507422446962807667672465233337760962767124019885120120268779898345510851746025525192352398988895664249694135283165994534421553022479894772990686587672922586627190313601273807803457416663529123082932010119442369528653514899930985121018245458535643514516498752796986997896799840141531467395587659995163092684802800305916873039823550519458763613680630825998585085970282721384641516561051865736256641539383121246639381217476099992688200011442297666370165125888113021585286959490120441580386065138852471637648437709989700601284523968539128617809899404561305153763442969532479883732946388982434038028875042383259553455162975257525249767676651785187163033060255716534982322858314395636067238662203611141619722527523137014121904605467734580842079485633850651752520883037861934274132145130765129489906170408116025424152870159331648285382216241935717737724425999089334697889985773069088188631425545755736691913112121575853109673966452890487663466506631569786096070514044998065244120339907490824314073657456103553463240777796150569112182116143481924227244024776999989923247467579656747130816098446514708584437412088868119761298220897696783095979190321856788974000784128466560825957827219028817061197943487137698312617949887474184002926323593136562232639698247989520094061267457919182930268585155823258956028486542611670798634614206212621354102581057809662763198742374894195290835191762550973687324896137138514508154957817122493127896584595866350050653814520261540357098005046853162401795958088699337355456385387987197685284940783667538971178222451042503448810134757380301231195123497967343232276615564950866195211809894700456546536832012095302495077376760279596770849563435073432174184567133562088169857895058560538006686825059286261469652109177235036015667759897099164847936259868893798453976832582280158892810462381760638602664360309043729187481211202821792768496559954679130576355209961376608071241757072589087873665287836123970503476191548445670899429246309756815499014763332944298992998051791176801501085382999809498962031323185598391680008784736083547723942446609775433881922438836883471353634962839242316399152163854812760969118406341862303419572288190000620888804479086603666837298478259142520577913454901363640279245165650845870164692833235872944619735744658170963377391440441609155009151522512017111958709724358603822497973552216348179870865939796647083706500341244627922717009058675536471555035550918741617854358015944275108959189232817372144380747067983303334132592293180062947355119277526686709847866155421096386575330212542927257924130049616678448851357312903492028291911861026806199630646035496070114081332360065028460104919408306800605741293856417505320697136746305033731117882945935507215301973020631047379437666671107118281522104031557092998916510299679885615519146573311381151973795821782228831533393877975684959462630063603758305338994338690822790004136903592352625900004203590439586980630778560258530344775510213864074370266635525611491135915302881494772640528846527596283641614970030821588245178433415407141321765300833137178310833729048475623595399976836852277654747521571293545544206587908275483461104681617294411989485614183371643060644639521385685131547305112741830466090816777836932249734625695869703271667534568899984344420949546634688753202108588676130679310998182194245878223444501132254241456395540435910782314183151292544325403263124849710729386202762539654581175608586726128769825690779433344267710617365501238870499195055597367010314647247165724577962195609514067905606239715361812581756288509031706655344970610636518936928500630625974078492146529527683330702308345135699834856976128264105915058916656481450435584610039104152910113918601660266749988456344702433936180277939240914413053731451278206648426717757643435891781896399942543410852326848014937654409214597745570015183341993239354958825177998275605826234377033273326742063024673648673978319671949833605758325901263410719081848689688892759498523119418774491155369539193816561200291629692414027642556997090095687852443162017187770305268099195993235614447172828415190068405780202963509651076693026353471215770339608854485614531489282240757417238895271039937046773124878928336653278947750227241229697793630865585438915184578409098776505389082742486263561916554323140261857574843253598828831907636700521105156524455015273364861195553873879581303282713201265815600576790576814330894201354854722217835963507019063724235646889702530863674232310361101464647673568723828354536899646973616232414034954335496486891712049616900829059737564073788926208427942032826737555666038121154996206443447977470392554305785236623846980409121279859826266271692558102363459317238062422555116691282386871058508037893819730031647047470450613297080780035027132992971238828763934623872046916057396819045868009634227549403865876746816254780826172794518592332547499495282184778945613728760814079171026495166968878753490146336119983053962039047212830300827374877409106628190109362357160850245542523387460157150753571623539886514376354977615732102336432812863152311379276713474766870879697778680718416657221489242407507563980909395417615649941160494661829395396600394024004992615700516135736261095003894739041979807985159023017212737199724285697870610554552881364755429525238476578022010443301243957972895761156309668918205145315709537509244427688850243554228905609488999109811152103268059166145858318773260259322610063093277252982510755458050247419534697427834704136356133797630639054193545614251379712567555087731623698616876104243574317845446050239123785454727026116479715742295992001301163885017380655445639433456919251288009045053745148494957597100170411531227879982847768305095996294511242982147549021888936163391799330275519472992394433397451174400433044483408473933960858722783184929826442354149751658022571299210210806230039948199499068287871626368946449669541828380954723730101161594974638919136531331341392227365100555049095911472443667466158020191211120327529300262093357384398347218361793565506983192462414843496582456033520577465762088093056980924241969496458254511363524645279497736673911253615653436751590171157779247726100434490665083635611261151020750427433691009056511616449851122418809185769183808336452192243687962840345067247893304404580748643139623220613675735306437817312865221965827181889258627485351895915939063650681767420318739757551666021474190371783753849244020902666271587416914222059658416786431759819131588722652518940792461090747643084028281487047364454943103335733503065478596683645290681458862323411712954082016307141245020312501055375691453360727985385736502026154367665898775733574907087670846043893595500444636226212670778257829010830699404403899803452524990783291609821683012472285678047982575196996359295387858951987685179745933990356984290385734152152548279486152573123317293273309858704837025485351669449288915026578590587093238030982410451078739854056419368913397124922365137860458314900599242022256777624816067551665871853489170245889572104930912761553253104653001162147204031893638911972207252546629319385851469713918539660590518283235091735579398104715583952870561424540002212611805957977639548917482942125240648888617038167135516630517883427367490762895428034789899863324153301276047974112131113531094953435252243887261160957146153768058897084546720322457724477959336007942708444283412854377895134790259001873607498206132500258320867696118360642858270598247748605949555334482826354882321410061311562177824456916928423069620098426204425411038824024731294875771459717540129532915501533170999785910119566331274109192299067836289309098327465589381944913912189887006467223606634604769426901747874755807334689001828838733158904627730355387737173621075390235055256976699217354674253331307515578953318767576740808405611189529365516988911018766843971634865928717937873706431546549922359128286766623607482724442324754471073417550210770448347057361817643816963950740556499654150533104660195194189640384482650347412762631566538012665888077464380465381113058479185930229116862678439203877854998548783983082994747996802775856088742625309751639147010626612261810176802280600820786275721309613531121581529443169099131545810788953180620933451477020628760532204021465518210571709598465266657018871658981384929873065622582982363863490709355208791796989791453117905872150087515332377513213846667727800143832908637866425867047105065564948251012700191216025754784542812426360408619782160758294492656746284193660254143949637898440026401298115612152577127508832247390434801174260200625710368889523967033225104255288315140556760694267097725590053986970111633251495883715145568542488361546632732907898101681875702193193609229460610922137967343001693765654585008660789987216381318617684189161362031699349933202370541260192974142289147456802373679045416337166563048729797686040003127379088284489782261424858900490186942638727819626190716531305716560674746881918447992931510695659319407827915123946114987764541794200503809744075501242883289802436529813009913323677045736147937251343488521433301684820550399272488306404754628848103827614395573379773152635316850820623519156657114968852614238176408224464474903573649496037106635391294575181783437627905321268830974677683484933093142011879731444917615685109099237000166646589008536579463085985292586813502654615684228329259612674449759265067643720974000379175450108772636226288948157551226357886645117234400900845483551727561442461372646816938579759750913140247808461525769335881884858264991141687427008519887671062178541818253115852020484594421621869166195669120081096149754234097898174661648569242611611859585500196988392474604581955488736837368009123877775907137692866162431166331848411518083409533023836511765036705347315075037978263286567342572536725933205163993877115178923435477881880787357311832404065174164086255151271781087328795908760112300493922405465581249183472905368557607723935323334460167018464806533098455475824680383917503089222432956952118359248601761740060305250886192978739861221911374834673537696912071248686415963813434876392959419936892302098953971570466479454464640335019661116780153604068005984518974866468121762879548722077839249336132374799331688033946904069821013290505276162863410522263661891584136285579166126942058015070366551543631437261799338993354999079789820858147432284676796619760322515750306225559163357920415533010225910052609409806026323057613472135590428203042609939584057526224317609797212406669860556084980918092581694140259088409314971119655458979544213948734416296245716789903323317290307926467304943147416776880906275546453025413946416307926836744232755298822080252313672878773495346804012394386970325567258160635982008829532391651412954760207851414004282750258522669895920703038117245624051585704987594993596306678433574331393354714328139453655480103737002362164925640996995623721496186787369998260918313664387504633731234819943884917490403550345625531628114525334864348955905890936860489201376599288085624869219144563204068914418324171704698514314182093628533964020554146822119095882321083824796542225914987993961473559313351488063276199369169246347608017940436410881623350288299676935814118003562972429629519089974785368943625952097099971941084312530721036980089024500886660208662699429001354268907759084908858826405734366183620012902956900219539553781045827594270390540893014684273671080714542380601978921843768378812499416330596781453976424651285200815382337462102861319959263107103542458257828632551361547477508821439358325502966602765644440365650022819203421792257401966976535684730692552559105180759293250250941702091423468751288978750189308690024769265810720702265844505591443794188547155653352914264948111281234075253564085758756892019791830731229546618186967135480113475824980937834758320236576599416651561833945004422794065471423331967465679782254465275569764702522023493291117827564093045995679655036522952085773407857475308467595577708035722904843660132194173762380548995872593978745652881387135943088105470766063675394481069389318324346837211362240246622886602701786150336776682432235652604266091631442181209231975603205633180457038499242743423552480368959099991228044656280253249768027034194036440199339478166962054598454891635871121422165222524149142788880030836086898212017820975448908162329651735321934295375651681140159392080890205814833028082816512575704051039075752171493911810367573979936694885019404014849531713772332339603027049752354756810141277444287527094535084423407178740145136473384808702582780316412654038607120555258024658676463024397066785469550425952990234647530334813828629518818804245152286054825584075858455900835360923229602363393024904128514926847931993035950743346250577854538763901091526086490411690464868209924030078984867357825865234766473148355806959298144290861556631144434440724411182814350309944750627159179948282682245188926477425399672949419169645890376863204416133625585390627983941241897435256531671266807464855037243427805515783584804965964811139092943786939029781733768203563593794511868716745683974776853578188600145431543932249914270847070335400431089058747355713204008034303076728945853850958907855559921273336668839387746805444821151445982190475071150263440700236201274286127946386208662550820712419530884907378354606289460815228188917548252362288489034460315280690129216702350604305831594937652516251683314847809300193718097788000666156270930375450979351722227840611131723981990255848675063237971212410563291020742626220510800318884042351543839325808979907564555249923032307252928578143743541155153756800879876121507983574799550921388747382459445588067906730077923395928674010443997656523540788962111785870006607247656946143546039313391548265127471490546339642154855088279550538438302055919998200459853294898887187193700600663207429089855586763357625245012405056883450220165863331183047847846607115095327446378786826026859996395988894973120528508148157061641583440494284142457526936377524058198074907423534209880904616476146183977173407100847605019746185328718064027436488584241837886904195455390098829789865654075129413371342690631966817528035864684155988021168913427957958657216206653812677462402315007191246444739049234649443671145959591186585540392784872072819034116450613110276571720628385048313013354502110669673114820605583548921537420640126102870235566698718786373733669885452121215473028526808304279703264768135252525868419870335804183389267469199304931639455535845408575061038011753076195936651756249289530637063740904311804522837947778344942693420431175025936789491012429607755093127440775362314914640766842265587723398911699287317342909844102042855635290384458184254292982514944156031283785310443167894377332508116900217272461555108656853408800774328878119031259184112768380513167190731152934806336177246634409966044476047727613515643458429986672252637970150868243059396750590598267076896402920846173328542806745459883807276161242470859766563167006215436960703027523981587629949875077881434057564004194340624188316290835846697894224664546412865256788776020588277175072282233515970700795415533629068957778472632181808342672882814530705024486851134187142888816118007985457399096839218031838495503417692676314607619454795824357942967636835635400732846665986570466933625697724805407380181468546285727153442959854713505426967314568539502389081522650582542033562846130357775581725016603291968139420420960330641133164800776746952466799207381329840364390558312663223688611991537925156356989045181270862539357005808051830628831038930664572555625246333126739049556838170909993695946025567344670204297071750238555670376480334718924212168804480926691212369897065274013411291211840567518182877281092411035535914280745160471790348094195919959490067072604536462425847360844445684899613610157297861579684743583381273376350585258699236388080246311254563653713777797784738598497365016321451115048699676749091753002051664697556586012090989094597336770455482204107734165358423076726950816292020368991607713372392863210974048040464731754206495423733134397013727568920606985516430779805740856889331121045939781259841580936481008491114488467228643961976971329506180365704428624524174824777433715804722112207041650519229447700066676913463628379407537558688861802724649724427150067742653025152232529097063545629120888520931046564359350965622124765271466407398831195783794396383203741285390523168553579190928335429132619535748607718392003860548251574478434127577666446937843414798659186554397381676563289377397351152249811832977717676315721357447868980578736302543335450430486665974784069045550706032801702659899866197875955371805603434476300371267532813074197665813107089782153687611201728857556478723972941497695480837970426488732834860045784968284595962618723949521146953921821386749509854586214561527544391651745420382907670559937559685325078536645215073931064580059851788699064578696982285994066277066161362848190517791299776048481739721266427266267864947977723502703117839683246189861875285857362711840969589648782890261572934594809067206677549388028158018433204778187019341355770386138982196378818480713872102371470226006036363218688620500084836702783929364180724795342303226092277639024266023819347731184938341656799079074803574411623779732868471354732709920725125018047251177355402979544775652478781557725021141739642014281702483492529219821227297499401892137680418246869781055778543313379351028463382587220771935343521115039468065957196785239862686813471206011126883417224706459457618982823966880378650171867007299833194772998438594693297344010759145930732810915294336778585528482912441224538824286004632792709714673584394328481713554528528080710994966059392608402632942419743784521435389659438448858189792712345306469603627425210575557639641369549850122375778734050819730956416710366093512243867597557246523100377319940618346342626291603210028342274200340699013169429458853052056312401590149245744084242473849660632511207432007131497328512392747042921908626955752157668358903277160932124879398714237206110725227479097335912001514478544117981015578290151983633627779390762104769391595367267393018214176130775589909572085269865758021702348209512871367872981931690461930933971299629579443246056053570398936665933908851351418451766293967125418839002393650002346076379419864520157584728862043673084868537945282380852709387656570191649094215259241258785703720301432726208516324070473112871850630432739488629051060832597479095359258478653348764801507458771881481682206527815029558331947180018047007481420894473512298399295771809088914798500301977605719659376235753729109732961086119980730875483899742749223965258254347195439886005729566152329947904981430705578575842541950210874121597870717606093083460721734643094815182564907631268286732636587841233452465347210829611342479080036024331101234296593036628520131809855229477278516015901782163394273973188925069184022618772385524203494333788662761794176666699893520823417570896064654873355599195372705945607084114045635484000276120434782273063930535265827823567166796700512586170807725651393020267555952349121515016998042434680536065962964293789634960373931783535128927813562148217280535436182331143938220850219700578728995657526359134135539348323137443835824113164280234957143991477149523531706759776659486117275984780394132891730463223228418735900522259825403042938936076836866742162419181672276803575397639523477492769961598325326436924828651533352861684372347411233270816148790240168244968318967289397609162143467480254338783146229846393878739039469167649613805587101939954592811588051621027114775238441774556151710297821039235760073453592930735926907678189793600226080764347097292180180478508268253689419158140938355143250984774011323128639951778135655931922684215819106690320136072797259750419636085669614588187178673334989613972530914490007273966472063960349873575875047655533154350061538062568923201261558042262830694776914311337514938393029820229015098523282948192231111395263654042442630712074639518457838968600143817784048814838418133932351955263869825152620512710305056854257138415475036505701218956066214840247900683330984636705793271457047537151010784362845472386851331762749053607925121417422558231928454499072202994530998870267461813782223953506962932131123278423514074461174601385173297926876580041448944321114869121527292685342189614782639055672187036553587160734192551120430127230482915490157679415390502077356078681960240396782631394671476447469152999236639638867600103253768445461330151143087042606006906346779640773910934027308073843754897162651844632576201181455468945493696231254713234495669577359173830843624319130152991942482725574137114393050556597268922068041360636100832475241116175465335782609330033674781600768442089771947589448625361410288619342559680268036844672582611748316874265307729542506245956103350747776227463551923198261417311201013222679233488741762426305179475889277310739992099638772210927691429147037726520607490813813984241911397155844207681176440548438629671273896599396920319942038438420004630646944296774390739943656027292468716490135557565713881728812022602450096932396956461902300873279299527366053573845765730253737634377994858076170886588279715107465028667776258469824057772148969693027472957038331561055782281359990717750640132102349781847938541431393975434662758479830901063677266722501008790206974623617797026121724493449331893082370039728067292200182858094756553563459316419370782770326870773880733598344999540512158504372636371984600836699924186940151012290105715095091451809232527371986771476396166374942018544382889153203014456155889450951664004417314783131515677730663341621594782588752487734458837305577122288305946979451865028984679219366118805149057675871269889372113499491508168263509621545647343427871565618773490452235608442482219335449705294585848437556035715363079013844752437571642974698821475873741185089195996242619172595016856318156074984034712297434412018053682050738556354067312815585299046021486887403085210771100559801506956199715707785305508579546663319882482470913174609473941782563294309632365632223418907354059006731758530607643501134320919807660005740871300133457098825121268591276405875471407941482726451019711226275917022788926493135223103543046776951519478706402101715272862896707276668427491612966169737288679994462777946011164712254614120237316678856328108838608444373132593216855632721721416565673067273294581270158796594854979369854266532367848823266316869431169324808147733486072420066483249072176632698392749157782888024863129900282304776930906282810962286501882457903036015978064709070410486181785199882328449022453653477924751829302603034301235242489691818820399107781552749247022928978242596568974181798326245193197848137093708060262434389292365876406488957646110219463362567440029584926801293388337680773575648372756839443418837794424433101650553506476465623683075727092399445417056197380061572483772986658956584393743001247135080601730809184703627951111561065312471810300491394101229951484311437489442145909627859811965407791015921774688826391256094001742890032755751810328441538339751255402084819298294195705994103848581537160374612291657400660135944260161634241424088145383300432111135083278652089384535142794864454637967784777499426427603038539911811441180355244763997902188160259808981928669189289699771868548840891084026521799312614602418319878808859787708656873579150595326007699098932871333901540475462006331055736411564745517564037495249359827399736167361649218388472832441357160966986407737948817328072917466553550081554073490454747814229626249915709584636861149879915451873514206382253194722875919881419062968442759049420114783584963513019151267083475174848948403502605813155768935245522453883807402802104863099072373083379135693745039116166960511326950535724370906871549117387536059713056749399517375711489075627449396004759440378699060472430604416226613964054728038642034778776685448306960762886165925156414566066234008101370336306042644272853192705023501760781278674062136643161810478291582211874062985928916498829176869436367269353259768876116902971974212045739485251503822012767129407788152131356765579196823650204943230070122619151223685045830961466548901938669591613730571339014116489751727945015771342662619937535123820735685091548987158474019117250165426130973221500461650236201759074889635366173814987059783422368687095383602587043418475143548480361957214878041959852874403423758006890351669550949177189951187176841297463384387359258269800278333655904457376894777376572579966261026631065081103024350519187930582696548506471530381780394476693223785150273815019052702498122029697044670040090414956620422174230459556636464230234467474461038964558160170047271009968181454805421367745882947828343354262977166038586726588473691165041885922048131866023665874025849864051363706528622474943002096007302987340440943025035565021492419672774527923056228242183249835304348676634961401319122743755400332818655489752979345097065381546915464759749551532543162801181442855448135900201210995909181516763673803647798645703358264357415083812168462835389752613574156197212862073247938627952820203690831266815777045327061341924656942818455565012499457296621084619950374032018671185002397465973939224928255594278746805914231378699707367176223171912523676073633659166647964556103495542017886072202570667095178032985110129953714470320284429079334004234498793780107519076017110587613952575687252838595258700161635614618147546474089570690277076092367087571754713627242939021846701903277006333787766654658148956877126612211732558466770552987232046006701611361414274164654126144974241659967218844283986088002988961259426168047518332771729958084223367041772968126041831801060637404407498602931606680662478889906581159847214189505192996343879516932267428268017497242945997618371668725396465378952661633403533974058399958504837453223500342365807494492620108267110008560101707738988913999361231411032817027125623898433933127340219928553569104223462450407824487836474855581951439300497294108324414733465456815789955196019901415693784933091346134691816591053583747784122728239533525491000271447790363690789462767237986420400286830507068144823483212548909077022574558532506030697198392651705797873475004381745400621705924424132406035188393548399062546046316367434172579480329395200322417884741527787762815463809926165620528438651827040944252784959215660282073640060163165104831376038316011056136877199202356086563266763136006904330758342169539653992404586153732270957284814224174133617619955409669178399240331135027963786661489462474884352458209918934905847438877944283812582663252354264286536346725397017064600651893454758179090987385115175505961450058062554451391119708273185295697312535132476615703886637278187000557888261064177139479326312272445656546424753256672777395642997237006328936414409873811646393053910431090713012027737310680621945841767671222785106368446456372716959701810405999896464238944125353529798852774009043297118550718802686334692383099688509067317876685150647361543959045406250506977332234100308207930224520161756428385774185472197027509524385499488485454693438704508768531274872519415217368714294168913958208951070181475707998398102964508278833890689014914235801416805120684001896843017996259967016899267508247611721745015791116996798146511833902319224889059789171531655365695146927120289947841793068032873005622788671414936907913930375621034808869617407565706983914692258168784308678958209852673291271798350787065979914667451180457238693904721045232835151213462876104934044430678536110578403963860734394888434182176829517205760768944717712802861156045929406241864104088170458131073887818583402897224932153115228240903365506362137826012709797127197464186367618032632224157214887112588989381565319224887410069118069056228726791312730336446755275103810091366140787423481642849027469276931952206954519850987068765850461446203980673609469110676533336671238058921441953534364046291839043971983325681946381992439244618121072518815584066705330282783549278773660797548585681559731588101285009389107412345270342599873550372001221955259546649827778092195906723476360994024198154621044421637864552344892357927738476527529781235641803191663139197303028158475775259130690264845240721952205718263830485962196979966151341167753828631701357954822689646278299966354115033148483601730540565298561457262804264072655574268124221756281976301107788329657512443905974591130662182031460322939903340959368439392011468325844353522120436954338494606232456222376693912353191387216878708512127060906078415773380598261309127503407615672483075309284898983900062677513966521970734094791055123038831086111449771637955748026701416230511110290373266993525810199446530708466742113429802121396953014307809270038939431896338067216409694576170708968713500698650373529037036163183569714283276007185155627126721053606092409881670581392110150551958589772298806111635705396209773445982452177892494062950920304684973455078250927793182579261493784362185122241313596509073217416496933299678371137503997405953395789504561889116838660467502744197045485930357189805931843245849824943985343995508553241889810364291143642786780008545308470032174344040451311586087021779765598436121282737314103822057814224300022193230660594439903501705481574025512320888520887631195437243167716024517086694225234934174720702468170855120762369228144446150815269869645906669471446675359061342702307723323865619112703165877301933425753860525143765978941106356966296205005547429386770184035966694564054060254941689359230799686629565048276370984805486161526059221418538327923422387730829064239655629061938316268126029666078223942833785257026429566128584341894694972538081628246647056351890544484396531867124195561310316340087328626142745203850472850191125613436008136211633954816711125344201034531635377988758404085080203064420679662533056123074519917236992804659618673000553729880453330772056825843796949280396071278142489199833843633851772465239523748662883831979346513579497788556304729700555671827023162705954727601433749651212385426973114341510185252604296874128782380522776845020991239354173968241316262766345478302788175868833547016844793434629976219114010693377018288275885721286697613221147910713380644819583300565676907777353044127545550351547677846162064042531353650321597579341998736616103252654659925361211048755025069249278235744385669575959840375299776872968349077656761388852703818026210518658743681008865420050749767093978170419842668016416319748402783365809949515578609550630409237640353370982381613733174824418402436937549937664806456167496616796517401251028294971632160760631578489236373408824548881423149122083355477152351613622421271088184537308730280274737899407564978736362488822139211147122848052583916290391768760062730377638160141779868262488385656883412068330935596370993249436808577527101569667767395626911718240982303778658452561271794937021639805346872233099713951198808715136773567946085095536011070379927064694013304824008407692226069292804561476774739775899119657719269903705740114469021928284821359397188132705441494375494096633796736930484208501943935680066983033396424047291626767783992832449296433025843219206582891855507639964516398396875894312518984279099348800464357956716115350307098727687303807007887500555348205203757631727544178083338103655692744475494139348233780589874951930829930603468329061286889661694071603489134009234020543230733059984721986189697832209584970258428366535387834178347038658815247871026073040481838662684994584552889947209678038127433536306991943641858919284302888760018388948484517080847020670919367558213101607221328164261681351766403883484294766421955647952150650804247444749974521499014733936214246793456668697506347249657297823887687286530696538064750806048003611105813369497496252523377874197569529129238039295801503814869001527322476080207394281207125077381804622616815487349937763417216440169214438181444808372895378811890544627308136524792830570277997911455530862244654688272137406539067805285451183145265604088564551045444636354314353537273702827876840382381412420015564935088943535754597782684642788872311775468488031296504864358744335722392613499483627345413601232473426077213528710442801289266418125353136764518366198161781296164095501887423348909650329856070223360071518200134215443610421833920871736841704163728362880304015928719107362968449027435052342285574652035339012663709936557310843962714331201019470175745495596310192026557182137746373688223426366125111031015147249561213300286982337375177041459569181940583690386229246544117855266357687562669808929406959322520779703264168583230553774088186463634723726841064685285647592305492279061121417776200786986873862732840450273502661829329502524157163707200158685030313983168982884163599236598583832879772477747491634591704265243642142767774883671266747503988221508689678189162632395153796354188370788083653651626505903609716427554498881018236947889125619152548106607099908886205783592536043288139253056247482638308925159096848293807916620286518670769846268616606703558595458494594175220793678365706871093780561176833435474484429921426795702002914048704682730127658287127522113490530274096614394468290154288493198340794608113031067691401937881962303761754684425751257053527307903140708707111141050529767035317482809798982169318785994513090413755379951639621354262501301476133345277952481946789620837598093814566451047028778436893258015726611933100277596199794599679003036147752406690939731170411385923799732344839090906544333286938251956291077230327511663587476225008550803913111604758756897894823343098885911753298542927134789484082576785200533214184812345599898067257780688411381885333743453376710562570465429030895391094037143409705939062033560207993694937550567157328733721869881139996905540539763136161683668832357697780978573181210256092651299656885734672586165181766910238479706954862887008052167226760349300676234554609161179840828656420375390464703258067421534508224663604108677260443324846224758681577608209822266145244009457021754764285004825519007316524899863467148480630721435746494577780139709572748719935314447380570693056549243422913451213044961318919293428162897906663162538277702240597979454738124266237579725710338287497943913141825218436969170224268476683087440144196629483529006775551662377949107756889355250128199940786146473565081479086119338430810864880592691563061623198151313356715535864880236085789132226853238627818799687377404650223640373160142808361445837955622270571728608907742843733985834808360263150911352448769091747972470616112107402801330021839042019108922278216065468880673043811376605741013703938928712255218114879981654456985954068403051850202974066361680116312515885300561057136238737222128977207012289189094209573931684266443582689639807575463267119839515924251333523999777240348454659264337274595656922331443587948944347655599678386381178725600540998233444326583622959255737105748853397617762098279301883670147107430591603204395351364674498984536882380955243906836253135637159694642092158560739620709444415435456143016489569986030407579219390148788214666434185396111745537861385017459014646251156643729693207051732395580626745658177574452530793619053695205378229531875312485171817614153564947781243371056839154838040672864193950449203691247475315850773334540273240031910558243743686070005741616750021299154001372559573892359096573224031503303903040733274463528274331817597045963660234673542151795520873403217442567906294010209310847791075190092066426061982903154841462926382322236813003346136161033674231581893453293430134192894079532761545537091157486276046121372640467814975526861438320623103717088404551608646048227525470420176180757981705324370197078463260152896951707240181849966119571259903351207252404809129570651680234756562186200888916742523911179780148918946456959888710350020270879365716110542768017294287408822552852438579803868873613654891341469306654981860312945569689956613138873095369122150090290293619010431521556888226410768791849072984219638700591612428678720754025996227904304141503442422224247766254391074523488922285286357435150419555378735088877714495126524921778030748453629590074763555433898757235330747237039972284361370257724510000021799510797857501417404795781833970526719500059828516503796691665257031822048456309076672433424653905268704372801105487904224748482336538082657875847580321385113670376961039425404312564735859256528512066114683089726942391388006077205983372008359708423243781665528217188597934533185405964407438953311386128620619415105549313280054482566711784155829971881919345131531277110332062977294473774317548593459206508901625991368102173728833685102171557070424689222776625974680069012917026603781317019153592426311119505162712734184554463676090014036103879836433085102827597013019208147956937017218571781603791264440798828714399562811693499831647456405388840401216373769217846295794584962077874486306243436879532839931384338661428246843130357332852232401999208494275268898560205018480566851340213475452428280560671570802420403231093625712897729908569426681112207050350181198180102442171846381974240049480699710779649704634465863509665279544451827742341540790705708594312699239606168158623837553866511357202102900916905521377800320903384864927265831240542972202300633246153582938470611891616390599213910340739943302740466028676900737255666081981262613979828638054604319134068362279709625976886781079689130772502540643503445784612759422297991635497054030063412825576494002283627573985027687630656058193629661085499705483931950874588876117009148618793509614932525870289077735568917508333004154917025818289385271167176056552700843652887196493972434052886878417029764705314255892018377122730497479398011374638404796868049006358597699677590470476404925221778864720864231692472812870359267079340390082591270634808322588086461445131756957699538515239759985705543449415910144974423541421493293478119320540270150107774101221276743318206872332870540973204633751766194225102088084219461607219629339187040412246325493910438442652278846616330313334690906452728238788254806119937769904247211750702917604342193155727102522397217923146552658903880163315162849972033594692587358351677100556455405833526977780628883093524571127339425901115015407575922544498231984646369539782944992621477451208023202839860796861567967770213208958452359111885121522114868088859941639928613350329800073334401794950247208494590885578644026363627763645458211211853643921530865365696215418124844218374707355722011625125928168122056405976711043595365419142638211428148365777184672280618501778164859757853956901268299279403383790176216721164889830735981365855155429288182073910587309587727313355237764071806523837839657371262557317758422622474002406469992733549148654666345491269371595317058875432339970339041436219350959867006847449099342958870162238446609587339398284357944581626693433827716088003778999367816474663436591886575661219895169395788170452627692441353805355902242637408939982651849304031984159173180343272665634968855945503459596097271798534009813447465695424224991032499023332091741121479082701293262388997187801074443317246720196301678011412573680451600006424096970321661397359414849323439723380533747779034246375479997622879738620574771071124733909144721850929746904796670224176340634810609848307320605101166554666242976519549877640718021097761464677775285502396725550156699148053458594190584701003010510121584266330326453227476485902032931900875357163260078107502028292320039994027518193409174634458242425987915124542548703041739400510441919616333329393342605534769103394194796118716114314381814601849855842196096226760002028150763953752330147493249067866368358646534256819932626729586070359113052354134297361423847053632635042901207120437415874899685530947681058953825492297624070625883171872872123382063777691789088719440430647043555097044788336957061275378783067927788048821250888578336715641941885609237380551221063877382005036806989289229106037086744184536797840165274561544720834793762977969867661221179385076813874955550548191655699033017200329802750773802672523339241369531914136309793831353524499460371541777152755803955829520827046080423029329897413890854165522541131979786160560896346073750959353120958861078955112099304725831330827457919576346227973056464493042507588443512130254477322970225300063407266515866086006528333916130039228736762867906932031615944533262228737867122063381562447892648114582937942135078559858372403476991639626744018275849935836667034658103102555168026848248300383053943379393224697851819699648924221842077921260838554317096751310695478083104167579876534477769095590871022837678626867545861154484025742570838659570630958867946277088136169780848744902453995888768753249317876835666561756672078174917847275227689364662455777818260282657167122719307298734294897461895680749983533229642367155572589993240691048186443937215626327084831382577853170351204354659127062992077097384683848443496703982745457390503306010055731105856888186097516748242546694521460134025610497311311475336117423557952522014922867273106626239856728406572141483985199120456749592547905046200042485827939676887346710606548170113323275698319838482808809246305249581979521337197249089628734993793462204265027660208715214399379776476605930015558532858387183798934528201406032815182071079214940389112749812919547237598427157390813765883838998744597237177099396558040620623640449350067861382432411459802808462631257589645177592893359016413102722980195488411717820377490330631194148786041643286353988483903353570812904213586678724663899680471739748537096853379967491968516221092152629142514279334881099287818208114602367542253270627654920122490119156953721841206970963974464327267978112552218617871650696595308865671345033694003052943256368312091180621748320416980787128885430672196272279365903080500629370068444486891257516851206058965300065633503693756977495189641370298072844190532475678030339475241669629488935624453470921776491026453056275974902104510192854696095000441515935326905212196651459699568490382727657505628887752988510854373223708972792092351488092364861024404805781134139341617594982987464791868557944234833596192057180039051166947330682996639837740817233390115736221026440173071151698725529548555050670638672314022650709903389202345558776432489181842881513315364037793136849996961156267137695332466855909635844888608413934391371449920808420232186222661811607216407240258640808778711231289258354660971549357784941834248781285758655717007219589854120714012763617996615737387140254646969178052807120484503130244071059434811781215479563091245518025652909944223251279390052107382256415927437610390734357760274907934524269540469671703901605041935065052420705878571144894543345454804279348539387077626593781315393012557040452856737702877795232658471903329658124173523884317019897807475354871527366997674176400509094532075457267855514672269131031093337745282578840397745842977768919800666209971580580405083598291731874875370645893852344797068039921497918141322335789459137560044301608738986804177713360405646366325244452190745074064267288926028243918000348703645484001040156295615419042313416692538514257553769589497315944828410640969516925762717568950277180078242951491254654119003509934147275844371162916167570008832320317267731192215345593822302005479013975211422352258636152793893710269957353512277814024696030607058553856890290482796081039463874873754102802928278467641469267977688919220088482180169249511129277595751347837342149858926497371670738458813737421627107541746844668143407617492813697425003301253780111979232184088132222822697044230794973603548442962813932611211756789732288117738239607160699778150545658557610290077133073381625940830582449880556292930982412062610449553019852174506178275911585643110429014705144059344002495506259120632810215012045168103803184798683843654197270372795937216049802329338387948168220294303676550939663232785349155166597740970818391598104485980130432298036664126418832102640796058248931860237000651556360663545193257917487434196188299955864051634093782454842566553150375425053987026926563519499964094368976954035989401284576543865754136521732919802663484287304968328069711377760790038165115133085977424737981499938981907599493285670848746272454215469899688640591798872522372681957092057035693171462001599384725963547015259857754371602767794285985618384052272383896823519328355416103532039810114813227720834331514569954753987211220022917989577654287689929800336449021337713274430696810765807694570287718786659266501666659214301294442136582967320391410815579898814004098583868484059210999560057961048784116962679843131595178910297036814837048382544681603780919257498905754084197388697733669191263307240563076381698715690217876990739090125722241062605159387461125660037567955142955866822136381686118031451875664185647890338159710604773764770280116391001661531266574221006565776319105475514608453031214793054419379402272481952484596721699607538281398884190003283886330842959059311812384956663834900372292564764042671711217133446440025460708828181297550031055732849664676905081992179364754766621815158171698133481694889755714977667152691005410275940009240520047296670446919903201485177262177072502180432754127537233045005555091515833876177341383732399907693532739110952388365731043086561667045601651354040172914379300792271024389557686818360881019608325136138030418918679076971681673338076249749243939045071701306528839721863843567103571868589096163193472796640340627747656379792930051643644314863028403206196410741913995305177486703912385661301267815892749948281200632162025816203922192904559514426291576739175612632991879252056402296520645768391472476850171158309873293590019863732263219422945181767963085676890785755417158208966986447414973563708100108570983031616801113739369635299034677079799030749008327147678845974931077790320375805040528745852483730498406728565766191084333306609419567792902034392755901029943419055544372281141955823857169767099073483072768365532410529042015200265677040598639006893754272686087709849509534033112742543190139729237608595046149015154242568501085413768245421194735490494522857568923929831095246038683842471267112837010100184783115507233681220872401911580369735466904436125614788796087554115906793253932171416189227351358725142787197715471946211167257954293157582228148857335755360318034099193648223393154924913074343130372712315070285086881680386778664961577966222811486275254378170538592673722074800363776891489710127012785884884243355526851279665250129124942577666070967413436482145992295789782910558644784581680581550433555158825848879988742860617806541379886952201547824375026929541031434678189102340978260745550698765274508581613221616886069703135989392731063226213129746770139551473621748518422969845248186947132525648620560656101608427003941099724312695801472627757674870295300252500725874222939540539589353531984380916933754060190405290307040092893241203536533102458462442256313444291128142041916169175032431052616062679371382208728055146247624931566381611300253422988479760725285259357250021267304841805158451785387065086516399785489809126080350153415412863896631359840188516486042167969725695137084095378262326535637938986320196378380125402975959796479253764856600385631257570433685960665704451521351719862045138847342858859019742785557223877680756219715773181857855797790121285797823598795425071449405843707119608337368255918507285846551564692235332012601294080890285406400110546188312924780085409636191661786758847954539416850511017540009546522164260938080851233362127846025565836649494068572480227390770052435887090820524691713961532963312585796061419073043165031659273401414022167138609226357570009439441294371871999571849809725407854002222003889507142345322354310864154514491462163808278242424148238319683648710273224335580192447568906157591350908637296882134694163084283425899032028240755804150057078319155382488178854550022167242347723199939788149401723142132184567685092597090666066743969322201646831244852583475848691417574077966584177086501020614264233440618548804756614137842700834595664253940860711446998543916448145370216764963442714208543873631916533274752038942403801627268701325744191281072353804701867936328026318655952637014126532213573955151414251553812667118397785230368343752586475824637808141727148307167991918899580161540346921062909089861970448074517206722001401173142999156944431415034676891259479533443880065444713332651515326791617910189541545217316665963531936223653040102796118661396775199918326547364438039599305888996739493232780186351155571034194566865734666010987725325267064275816341788993258935634412130769295370218502040745420864436690585675921658644300218774813266154182015707777043503166206854324912986013400379564481233420702339734667984163997094424386029187013894027495760595951007684877398623528690039152509606124799822861441308734454856996105928427280874033975512308702042791765526184752562083827672848705652526974308642955592535086359331437471511500610883509302996053408045582199003349168136084480485492329945960405370213047502230350567363481249247344552338221340532172663816518881449311975052071503832057489947697213214705151010812234573018781433829291495622621227883514668151709812674000317686953863194677612002603765351569939290323615373820233904327909518998506377379250872352907289053202964213940146895544531150682296029556781927152686932048931706993966554656248605362782916832824905923640412904932838410002913621428960940783777333892094833794683795196911606785602705319175455480860684913871935193914884607885560155211062527392563083811261991468838117125675623189057152603960468694839270811593796039741796844020655969205312112046666267969004090759267928368027898506646043555541893803463178806731513591659426786608620705366293744219867587258240463046583295580206564042284088727058700292071639742034387432301493995855173489771137313878176415757610357801210784164749307578199201599054718325792569620088966432715037768085171993937530167553634727962727727543310123558360219120957653476974859922271576112579947864709411114744251140642478170881280264161439644061713355233919995107484889409506288195327166053319724082209919751131124428236241885490555232265995755766307215590334784689941169221292235266009335267467635934153681984334978000825862079198794054584325327805150584623030505430725217963647825143329949584577734029128535746954166076110422973283157920279022952197212289307379766508632232666853150005884042100401435329589165744700373493350123612854485016424368978022366703348032642998141426154929620442072882575170174578855931787485138727034411645495364656714682954273061727274492456796021531406182250730661490528905475554454337102045342640102232957074090417731509350769131573271429865332569455546137309598246828274170888240502623711982900811433393725972588828230540502864662289358361948734693753809515708797251685087377627816135249166697018021436282883899552771027928865569267648439489086829928469356201802960035440920526242052931179879765243323910491356107852148360178082595441632322379027013974149405479686312013126892423177672271682180354929328358039271867525879807587591468016360148868444927019481660962398875170541130784790267950230364639045891530180048690034318110832808677572932659926720082898471884166589415070271093163547587710419693773096237885390404808130746060730310286563346077314478509914632306078573744782203463983701448254603855003373719414800727971993674293874460393209474318468116082195892648319407510310732013888219794069112358076712023742706893414096666234081458894117338728163287096269923889886450161458882177795544403867927268564932277120946813503983998907455920070671303909577475980871825034667261544454972156731736142100050866039004381885746437307749769679449138609014695012476019690528729590410603955529954038401962169059047736002257901133710150159216063428033904702753621414470042670478779100912184127074176087840281097583785583522761753170818142910138102399367280920855417466486212803235274423579534865500121765338151992756720759848231387728568943140571030732291971133483659798133655846578635071366832909610839706535445229819529658971446396677883333771744682944234682491985784585008466336091319663771722231124997110538009334098919132831126620292244163912068869083047640143272371115131992729057764055987756577612943705921965658058958766677542636050186161633145358065531710315446394041977472917586254973650095289003055930670170377116430552294069224576123433836833607268730774266182033482850577286309095750757074107971034855871530068974381773971970338461683823097506765583886912802564307022834507673763220278194526537100165108864665642961323485574429804812738674916361015244943856407055467018053671138122337296769063042148618351868573768017547311800423609618017524053989143043984526016455452683650709575451963588833941385369305063044792921155031062351579528237731204278215511603748975238229400488953545236827746254692078772361247803614111306660524895035288126744982527602867670251397833750027731569059559608599375408943152240000112505461794924161158688526112410953926775662712167144069074998260642647196317602152143512940157337633234833297801038181724725711471230873117909839593696101506839180837893817416836404612953527516573772004681010267295415015899890127627942863363795924223033110868024130124916789378485615962570482571605865712279234143215077552784328797650996504286864363451072048570140728062998886440792696654723304575175494841881666526505323206488907263833347580471595615589328743197526508467248180090788012341320854711596761847469410258194854952770289146090507025755328781485028555448141487537550863535042316280010309306309253069569909024047701592441395891212256038038845500345848917076027278698761379868891451293913450646549208994381608036258486192719173097642017102880190802574753146256035099269523980402110957157014070090991342494281325359191249717093341533228603252754922340986183383776845292347506985720886691133325150609092546045058195911331352173106521867728289258998002627509394781750537052133182441890853473149396328562566920134836984358057148029841185193052276769064686998992299795048315426115968368181729730497295926873132738336457931139439520176588759091209398853638125963081284193667830999920357222459524463739497661301886391744528731027350460527712890266240671084103401040053886973380621068431146071429801585584442451108231107567186818844222313666898182867301400224080227256432868179517100834476600131925810109892964174612539691425961138844708969338307341007714068508678818196048805759748917263861757779626051755538217859989189320230400628857333736347626768274381416148132933113627367692324750819893011031963704664947813556510884285356642773810811027353236534801588082887371453597713316428093716129909104794507386394223118707045438764610337157652068395956957032306017233871535647944412598704808402523258174618270272524142307233659680232378296101951260330525177534638266214149750094944119602739570167731873442156889539282582649838612347749013832493512868718416270756342545469031179271258236251780555462767349613211588340492185792470542717821819598985446063350348146642433991167236814588997268234329395280620458550136890436874645805263711277980710068616741974314551388334012977645654910919543954170096945734847961668118466691944477405798199003512858419389267046784630826942019946908659470346465485457366275843314498734966935500482975233538496041331887816607638660966668937990970208322353071129901783609164640684810819729201793318016161601449956881578178212431439375109516386480709779657752840039408073023383180260154627734651758758252918481986949548648934680184404290352663974494010195240797113608417773733867147819586401011830664845363876737229295964164291728632793015735151605496957052143140315101222124307388829916931416763405001693620943677641290441528417653750613605496150876897492873032708429429531592920027641879563707336456885946578412885438969631245318120412814936297024113536537631534718204676687768467888826185546814932359645837587105801788430745361787698872851769123023011681182137734728975330495508364444096793941651111150684779915628853880800971095760017788038576772802343169415843427639836367713779648375384523719356826552853889147412556806570156235712772364672446236870545798715050232058597697986113522322977101888036212438665428628621422966132400774605237089828664442070341375439235112524391409729112266837719268292506645291334443798753787991753196169907257338007039220983387219043633866333851791240528701306407471370016056605991631785991048554670803762658089353627451539628068184011642041908642555754644414619393901127900151814443705980917562169807538503748130666885075662977746418274882954993698052495637213940143017117518984937925046260969693850073448219746440980307149707202754358337839761769864970545774294523627706112621087399713076697367265285296921944186964867009515798635580473706043474105352432277244934374896585677398261517679877836595797811773458454253726430346414923662226603407841019291264166780147750339414726605115850653736998802881802674379654274452476974183665174275633572465888685662861961050232146796238553047590574890854980707784159085787973966813961127882081869419327141070246290185737043714917172816081610288144794805906648264466038243415980687416145147114837075737455804583371926241924774996137373931746472280008384217721160445026930903744330974021310349502542153346672538372054694247512433681886149318478620025860915532309365222632707330177817573459963708466582247685716980607778315879879256283073284229588421850213257022648076948007915335480751043595891897193129704758608179455769729855529586256588677698860792133482547924861925446401219049112308584139404188735581517320631014899342477420320015388729760030625254778623325616635845220863933196287150161825204727468403702265115859643601879374241868718941752850752390044130997483892443558828013683657410353922348028617439358970126758492027817308605155657179342746577194416546810017701570560643302705129343979447271890141309242484977992099708381059085432172168336204861890066674967469034724506725606987070961581529914204664053752167909796620346038897102838382152473431107425869198277619918648057965495695277405231769311760726629653714000493013432796252688349263440478507215632119855821638327173406467721182537460249648292787527542202073778235123664198918683033602926433129584461459723133731447093840715492478270770984612242458170616986383794253119038212190626141567061623790173646066811576216832129583508633190858845890168345894715171371248685728521473654309292258622335275700882983690536189243469516822447878245866563955258274077705760149420499182529538472288907998580011412515780630410459547157326195310776508090414215290210861685844853758547327151758856950064283179592084118765848076862216696397810279445800398266847879767056683277078152007440321809571832148015021416535473890572169668211442309604844805234765220495012902262906626977616601240791389172449013734203344681981282855892118385741188733950659178673788162636590687553187103085045892950503635537588805266369997428379688045962347617716509378220237117405990894969681237366016220174143318766636025177085725279170704623598562257326609540087474213655635396645552212104148960334598639688006801431312189960437111540516247064043583644369821361583847395720958351164019710452186643783377377606599653712971581143802019878420459723196991532605613172335714368216597039915252383789204397495142171370272725344912340238912815516730801221396512120986642969063498861072624561706654719842784469806008248632771697714446087334040566967275417208832114662401711058851476429709523616405166528601645084321609509307785074379609216126208360453614875210138608156033206690249345477094410401592492506131251528934079146217882335753166193926582064964780207047058751592465542020847292532882001449161224845423325003836679047364959096995087782388419895935589764672312831955775036532888336490989186881234048888821140890586580774169023417234715167786226198921801039983701567611162965713857441379307953550574382784508761130468975804043189960430357878248899827233561025654713570138228529022265416406480832704526752637434221740657076453065220122273865437401530969936364556571879554812552009957507832478820241652948259575951160672834679109431590339098681531005910129581701823209554881766791915745372011425445950780008672049439919319173374869981557892301869520762588851501441997993211446107526000730002582743067060826729291609286618610633131600652473770573776044495405616514026997188509727216048229677929624584630408534697079077419027806263261862063037776489863905072518494948741803598484071283761774607649482510561336224585356813827824767110839727613304841146435851087407502752506355427366790684530530720494303937938255956435776917762196900484763448355485946771327664546589629642349945092923014893575088166857275205342758778691342457334836512257077726004184578918818527065272136140499561176829061682892839491173933633057155320812104542819653096513181668511940181999914930128966911127063299388451506457405430968049260697673762143755951404058044626309389031436435096275566727789749455796378181110914201710107361877397097621322375806590544297986468934196712436115808887156448995353584770376365864493420508533813251008013915876646470258370407273084401286780716368006030691594961403534884495657319635838146403259755060136939016815111806868405437103860763825869793983075458908101124743102880120834596715403587670557189310991870092105771042155035730083682866827993235211237981753024006605534483951624560512266689378448550421877451892000156743813866267507288345241245535775637684830764762016110885899711440635466110735075706595619645299456808977337094040752132592627457058072491990330127932806613288521927360440596535318576557380343557990862349219266918642470090733751881624758531437124302493111993666611614678483080766870677597903579896963720236727778219056971702703093615016460618381385107702253446103650489054746424200963326016630372292563074912980132697885912854052284475486545646033994210385591295242824328993375749530846295484078125931946965498782088803639669701586520397001102823674993198226573167030400217215104670941286479470005275536986732521099218316201855526159245374763348701003171077216662408696402824814688400175768168035923887294169070331522936281772706573266412447926069420235813732715432081296036179979419595438852467531683213157063276191211541442035515257043182759688275286120480877173943588455581771691935696791754791160854540712218219736972534257162231770811822131430696450874492475291071759214438653071252908907212027691161540867514215325996951309701915808831028334668364476103506066306507860269038358311305588663564129645219615318519475295314944176437385952794122855672713683188122543473785089771304390676403296513229787591381181709785774014023670506867841344653809633584762171118877171766070073879449061980680658872390280781124372123081759709742631469197434822233405111927350483654544700426332874418117476920252050892326385069567973870227224986419935877112279615891894495081792492562998249885147155079374962537049322488500433688504308298404378762119649367038294554664777760857666150390487436088067554619276965783370537495113231530925551102514852890873116548475728906188358921251983066145516772568771375848007192656458217017836745646630032924446538559581934325950547780503533575067693852108720986727018502580409753875248531104542476353566233800957815953702400391283795461533102963895317229336079209553686151421278511546852579125473448399135562989981818405069845661536253539266540009243998031220573993414357912642034074551019497548860482317306610060429798655784931168721043151216391470531367513091250062384006852049404328037941861737177365154739203796063356828408264300214450306138695942323193117619219682945265707173388354051732202016359383608728108812281710958070661324808085299353273853737197610778001158523317923107447105291946576834780381947646300537097906943044470989196265168053941764627518583665406533540751722867431147074691145291491754011072232601690163732945436212290776432061293980398189688108247086563245906385339760113756799896542373972709197551981293865799786935233921482960747741595951059408223967414953588771597174511310494416376067069893422465826121560944082057064400334532027937896038415288126637600084665800469512203320288025716762506608761063844386879638144748080827694725631991920874876451156699793394659464475244034747957225069634889909553043192442585609190533817917780104043591979959701186550837212062528500506852334868955876906659978022557919966829909852219755746313387917306929830999294329390772913262403493712882980011129791023976968424384464947482408739366529096108840486507648132772036349370244602691523929406661957984453546209531655383802441013881204517619623007690617817673089274933675138240255770662105573650103791532969731451775697860991354967953193497631496826423509504799408566198299829284512845374705097185259063261790979662341525379439615551410930199377230234538355407150406617262560803659415309758184851946460477743404773713370088183027043848477686304349142898762552051862772544975271416747925624952979416840274656743720150221651024194144271859493526314513360773324623256584330496361022746915642760140301293955237542823172655102011011871572312518204489575307803064004012102525613409777639337811213466820691399821445523714939478530141293932956217857606908676762859668109603371484659760011435911548892430980533106140523455889040485785106688575034827147991300649154336225613806072336859475931002601035065286952800341564773529351921631652904281662053968968044042729312440970029443044272384509075971810761906667312514862108148447621835113164648000489631267338916153758130008431935261623842249608904951087627771243157479249003847584481059204566809450690055093952611819633421949190887431196047685738047687781263449852870379847390663135346706817624231161851147759704201871851179421002417848048853939679670314827229029360132924015891905840517159863240014015916440271111232006019725566113654378696389904826646807969924514642903263144319095546007849000867954926063972201270395431600829479762531525795152484985834462822628844528474386116479803166803509716660535962219572402694655753225604613108726257290689192212296885643813975383468664779599369375129917467111050142359350726367477064420795961363366788588104842426625312467219742810051913506100130937232491098922376495857868219664974700561937422997854428745055937287250046123475580565314733881024649914540339841994192836300531130916937759074581543653617524179153422570058531348602080279611334804089431018051370806774190907654396303132074544212077783731016303251468325155645359182518499682199391563494427257633243197918515155341992718795172246502278234830532687573092696514600454677470153635712623810425762929940007416533571665307987982731490131876523651637118440501397509530938766199709000937197704468688731087734568067760857642313591557385899569947220196134191026895033829851173376207324066258588863569383646977548771613963701414615318775035627184014966971085116312571631946563488768504469161583702513067134570881571517243111892085112033711978088118490615162454916210092202929171102037299278789298012985051553550257172408754137310393658733417244094922115791234154702292432234264422288664240990451294915151169631907471723505521869208356854772568834377998135431005135593010436622497304090231857511214688395625492358958078045862643984259048574566572917991408422406366750201335688456549693843125866788243894097981680532171932249024537574395354160359025800723412702354327166991110718310210091570003827987531654497816502246452991152137116396832278808113262686789561618594190104344091260202592351006760674183925525740137800141289767803971527902710250585145968485581067417498945602457235787644360721845710414730622180804552984368773457960122536221873558596192186868545577966726154477690605898905296619401919755579858091214473037110161269465803987485854142196736101122797076559605039566284301541096423923478097091220170249559726485343534487091616659229871040542873096730688925788077865863686546011807299530264206676636490141502096789621430915974112117346370537030440843227855972482654572130482673175707135708024618754045864756463529684791638350931697091838807991041636035442937971185378958478753191787503830956870926139069313597378917047982302134776047120197711605464115803700208858772467449698762488675688242598047883084381358806540350018739922809700500601756036856692399713002755081456245764418826646154158044428458771721923359111141351007799937196664052135753130326167208176680561509102298752487153867589204566506610094240601326036623471992608425829047156493439499346286526878408156252349340310103443123843665838482317389224060381389618937497271954217157758867669940871972200237541319050867859269444820899748386099472466112333239527364187326080721216999111212263819494258420310963545015347791315006737087060042324558320385600623683773048241320963423684480383090574063479758789107217665177765564889335385389652637965143326863881703761815219624359816538939626030684047689477314688304134480322529660643859761959629826338768405373005408510656018954403321244571747589975619725996766725044763142919472375247994392986671473865306868135425773497586415319684046832382947928139581692950644783812274420742919559079571756397037653654266109634113375407554178341711560238887409904116546037496287169531099167269098119237403019962183842405688464237299955051633927337069152002896531411144329303611658237595343986089318282607557174013133540571532061676468610452528401641080004808909188956886123984884193911322987568591145208506563865859993565718016000546406839729188511101877563862671129019471807212514953712466829634407214055104196215713794125212459447253192580981781015549706493967113564709121923214815369797246639331308040659703891494851030913737539464421372484696558151263667679772509014431364541409810881749336487282734482875622154333868833133024201465502489361157622803578461940175864848590629723336424173521871943945229641325697664259534040444722715183520095649942338909721634533911441146701617283642791632397118820294904902417488201057158770443835359089387851787536480541749252754101873359569487864986333547294620863362804785754714603151799650222051430597176606076526430749871438592366481683852622710185904421216507398886288955595512797160854609995834024800373120878038861229223888946507247514595691864275534048577303315318107138291231569809707498874043267692622453977923367905551332000722392233139265407477042285096676178918589099419277152015955884530417211204426862743983157575492308361971667578082345388918299597540939343334596952580119878331204444415961783569727662996783949420731476831253856305367293765530848219178965906631738713946064777609082000452635127128314558377003429234481884938570347712858302390374803114283005226258364895001360776990064951241115236788976120497338759019636440812227518868679638182236576906565315544890036883566186238369875450879762829195477846506046283222465238716931948496850898593772339846755757197677936890278906499009764431823592943812853834813970402116956514299035421099101693375738063832795839569217210030580858279611120772728247393556471316756221138618096487176225679004244121446421295649933654613500357076693678829374471092612615422903964715698711921016620092382464177803992330487264287325060878825538308909915572332797917038851271893550071036718957451936748842778617750771889947268783399158017036866401442309943668543412984783105842545747878521262683753439522070739033661301340746337633581128176684678734357333076056755921163769506903785585708577065085610688659071899617318581531539096987069518363343899207713931374243733280740004320129159881620433542397827268524595127435269319928226348383501722438853364466083621944849660865042585684974540185166950993859029132165101011710856008302555117164786405539402677990307397883914788455825593211597489718810118013895543044250985814187405899004558175201495451384722088735053696350452718453111662941840809853848416960193252275985245156391183301785141463307253126158524436749070618901274048684989272858246215687114079811499870273918723319636123505343566363450452136709735332210773669212443209733994340808684630331191796025645176305361005431775595423541033954018359788579022987400609600674564932882421795100288950953830994285480564117576324508954940935916340437869821746050587376260137720124111601923485996068998556825878764435482672706705441969139839701622739591831385324531100633375499208833022379797688650466266104913303753789411143482274809080688636375172515612346530360932700960711826161397187681594847127994261070762793278251345659817423239470355808494116599719187572376591729831438421557077612400030056051001352395205158541039422948832348305865301179445568556790284151778212742828657788536843860803021424375903504864283194696619461287652193137358762444468287007517954960877348522154688024246220768083186703441992499190942289056721646537520025391287425627018310993523970260810682149357832297414104668393026177584912686315949839785936806961068884075168785933014167156103652307573601259792784497372700092964746819211787156143903572684332349402185002741062072090884220560956571488859598699153714599224559619697685816282322015825604616848166912353402955083589298065537740003436411564139986091606260127261741735885281570363141465446655303584767203194249989030691520569682550236893634303020698521379344894773080550660893328845055369517431425843728747818231670487178156488645977780934181871388525654599339015141894760283819176033720734691749978491251456736090997585769099592736648971258620908867107921143727766662770670256236674820640349992620683167113116361605083611643986293632555954741814631824632416623335504600763358136952663862446945954871569828268333289441190010916159481245191282938200655618658033458741077453070531646582117395997398145092784846333948053276707663759537789722921143313751044785486878129766185549377112485443176598361795192851275271604633115185136122969736059959972517418134750160290258950393409547961288810781498009263345606274133107009906388543582859976527868897769866275122826474652087745386753405668914249736066251570260692824995743957983759849189472188103081362619072319352095390955908039146589137932183255690614004779477774865188384300837793462844520668333071878355298629600271495157726153168331467953383354314026901377345666991823439811296788322197697395175793024591931241777874625226534647468270156730702203027862750457566064046789284904033247352502232364963141656668923278276645215518555600459974008717780302348885476112301822301986680538507520159237664333862102596702566118367950460840849416027603067563867908917423206853801007420520576799809317907683110738361866094716925227279517446210724796941266385649319142012712858093452738814902969313398606401491673527818925215815708687481660673999637099992223995154668258317980035585021480572670432722098808575934098358933310418365809591347076314851392246777286403869702182361969158417711932693174733254190865205927112341078536588502104196862557890597859285778868576159999757008640014875575898839006769489118431571610116344824095090602865687641399609890832212128114211383247508060788438954236528656380741557695865301947575997934909906156780009729758370232923671371995920123480223153747405398248256896422779360808493883796553661295614503765273363885511069526227131250078405893367862543515804153654178859406145447925348808915049902144467650868163185499966381168725291579978676856479766556885828869996516290220743987650416444466033332278501802840619395044007934758099494215764827251500731197088888013436526449599075203475948647915983075500467321177093885379111614124592627847161019125958044493739915069846295226621210168164670165904463343209297266338634539825396574293785265293366866788645542936986105733752767803746188186046805992581336440793842932380760651995610718554419178437922854245221316287154443741168971447015387023265692989364336316804492328613082952810882949034159716870882994777427969939192869083379008052322875662398166350441605347578428893567308204374586151504675802700229951569492738410888075657937639240788755330370759394869692559526941772605621027780444266846142668284718432651818614866794238375430999510130871452427204212050140820761815539593180643957269011130888384079926081169103488289377612815176042088369139955841598518738015730252116118713379143647496680421933126216950003583272651356485355758533488726023043515642850728111022686764896601469428299888318049952417258825614536092135635750160727168636576076001615930115337233763727410841981424055085716981014657433277015218650907015795686208434931838792689294944622058994362860803716922739325207665212942432503232398104741820283730835715990616829572665152469159707191960522387769202618357026360328395574370502932769833182899633668949490093363465704123108925548865017609317662976300170838996324623046767602209628260611488737010548300399694510457607801803082440900374326682694311870477819964517160088119185846284805200967676096447453056148987654495314526672375306957128420978089955207250311174805234894398294090243585436099329372216996357285302966095726253061021822410102871251695681194653791897757273607103536378070097293170977819897032887009306391240836216092358898487023281625345164284160365047505568362033296394128275646524454906616448730422071739270840316424730331933329221829300098905322565936541287098603693032855933082061399712478370105567555762001469442850951399625210923152113885813830271706866772866523141225028677679003927826713805478850905831968583889404034881225261393395752451498587941078453716424484100329786539442400601850819795288019502200146606025156996863582870784020727468125681387025626265122912519650540316839969598053221823719827228747763774482159180064448081850474414773475036889453875314118718327873886173220705048806367968604933244540828053106070667606503736660212171096909155606648385100245808161591151160000003608562042664301545815555289800155497908840433627873955539105878452166689796696154122524441834128899757426146176784842568483933116720133017008339436666196318358285493154501173576580189412357931240559191637560100160311765446088190971094629830644407548641449054666508139388212024864244275926472424573810042823485315577436337600641484345805617821449367479183206415774804051317637952030271217494180699059776297367561748644135875974414335021223102163258369291481905261812036943707056116679210138262807755092224960882288507834194441533272898543483150811719524506946793527655385971592490671667207254072627137716038561126686425961327997454953355494207515640587093119988684874513862619219191852304996768404884000838618482670967366077716785727402357679896966354963895393249249402876790570231741493184807691723612334178176248539151528270714606425925598646419828521075136092918990019615811634936017385682164347883277329976577797734399964630359484253518627045527356613236125938767401585706202731977686287857793503915343109240085110908613366086234675306943892425019035798886678368379928488534620818103540119677336597042718431107457564172764779833112770770517761163829512474902817959967149629618813533688070759653019388585642332769123191270482552589103289087238413632510411320510036588755991432682544548354036414213599985733174067466499712853474849509168219892237487462722878727823058885123730782009377126326394641149720776746184582957731536739527591824366684644641531875501424899408777636033199758323564940181031028356169874356828952689907547883686628395575252083233050178684779511809505972731917259915636633380697259228340765222225943227664434215832217913694851125840559404118668600525882292902285093465863117554216464464737740698572062363687418432233825915113576113701109057828480917552380887087016609465101713183516052129623027229412063658286110094130348069408349924467336536301867223380087339698488351555563560748662862037679291414753319874127806404232185631067307423569146011707907314795444519347720747369261464476341151781632826061871589080242430861463875105866667205872657612626230576785129815639550732279063824505076722368567632954075314905982603035427439865051449725551578100450606212262840099466360436945009157415745350998969216013776654948879258201310748567920220693327457747667116714656164287446110253884637899151765360407249969270017925519380585940277790798430847987793803883865855673024041011001456783574995550162035909656514585101268219084508378978546599785728192374133634455708694422504835428712787280796810384738198944248220738214383903629199950857316333276705998384932022146362533040041922589838027521535728159383563465280089853656688169615578347403711882360838074658121574057058782270118249385059299238674884934676868045794573237371156467997192944527765609167626992043816671706826870518511129428185715866754958136260472634463252501276673825923156776585965513596790315666133169720950515873878249099927095558494542020560947743989164940874101889808599053754179227743822946761748684103260139052229812097073751436991731526784022042064724975438897829050544352538020051117295564337182095249290213833485738268445430089392370072460337211365410267958115556653940428323889749137146114382622992095867524805221322401690398460547253144213402951810914598776176563915754163400538240368480007966228284516680191152881486661009795447620827368014203417743744854505407054559451321624034073274362307824448007733424421658277552687539074708839119584008230088042092304482769529101693211447302205921286466361937110022123800828660535009744579684446464327849763885186567879324808837722591459462592772308076628882299442682649496781985917058420121853697066106359393299353384639108645808766332241994721072811396555481411226620453463216322698895064597660074658702788029237657623592774402147832559789379298387746849512524256540983324721049955944020609503218465206078697709515008640640231576463403145754049728497572504679153612754485781863617469602719276706163074638081882677730902035660932825208699876397758633276099961771143827085167514163171554875463172228615268363966680719740882786718428018989824187310744427952773110197360763900424476633274926410166050306287034653917987299823872210281798842344257405030614900628917172726882118910553533480801854497342671543562606215511916823502911259977666039083516517069273034160760918106486502159121306364632763465616234191973555885245661056629954456343426860268324770338194341758680297215659300666267258838268718859527165598983905567950017901455811255014653145782007239429641333798712998480343717944916933472797645464573649363874340383444757705134197437760753384765326925238270465345447270786595743934675727472265817169933681413462508923199670025316252026636629493630089014099329124599776399241962352898105693438282828077763527192949932583884262507206479940786236761141713793844424623803076699765022604519195361295193183940747696350529464622716879848563000019931801147687613441888781813370312787440280508702364883338551523864463532091811658166308383868774824908555185140679314761844781892684904245961595191064537961278949087358138996168290696009806681994272732056052470886581228711255292423294242202104774779881357001582102444923700386391184790859392862534792616832047805425837498515993822238046892245923765011490539901917562121409659467696767450613235010834001602755555200812655088687141964818634609020814223768805255924865705066411705937595589289204992757436287764703125478193395527823549521734142281105500293692047315015560334940953658262249731167847780444985989487120282582545203595228245670567565530058284066022690020554625170474530241150076780828496654262503270591707062395777634519825562875303368316913331459738686574425191971067415806724931218646329683660596763853669988242892555629346409985190319288614377641368047258879755195547456818071062085612268875577518808210096046534868682102661112043525202912250472755336903870043500949180385344377274402671477828825101259851020158775544015723025092466778047270620042028447286123726294379563170945061407015781537123392624585599584206777299815245775703435248224530310935474163289503435372430780823034126889047384992715293284236118529708309555281277440908367259458532208439016650771047950421079427728469971476240233455110593990741326696371501493428814075715801420132192160794999905604649790922660645599901173416784398862308318195687944333451249483033886709486911740508575579049163548410590662210581796637527369745367494281693614523513593901030225822385801284953191663674586119470603935030022041013035396649983338548798448757925803522060930618351280496072551937158163073049151517111930449365089660430828838074729890262113129012292798222450835143339887625299908722649224825285927509856784368733313387005986645141166602188379506379728241046416190629676122500277744823004737968080488454929385098786489867505543627660317973480502215641142988689470197019370401992303040643986505814840829599654828631280000532007127994068293788357441171414730367237563112429182575042301468069582893152636988695491024742015727351288744542328014414826699353939836963440329477433007607173625673991504739129425256792919499954875195027814500509261004982308373732551652834477225872562334721593037863740169402987345146117804315615008080793970896557878505656655212721603587929586166656945881414437736363202174542344079837200440440288286613060621097615617467438119940189446719497575023026535646708421823190836962811794996675874401286173487822564416712163162409521674858032097432516852657822250584601359424848792812880978763206052477851285968308270910363389070022930629633244234489060983962342925055536681273004839504101576416245508875000815895209214419315948167269889529553838546889233897328825133874852611451024412215176536636228732616375183700978546891426998233941912571234070821013352138056601890534365184192657611856518225046208200280269177860325113764887773590751027981667498958388145920567617359185681334683354061628753350523670920171287572912012107765712819647379554835494735453471138412076994031509556858751536842453572602250535759143688631575679555311817138953183579572228259077725737286692523497435649413522865754154611810392893115608000577069118708408617140258281645365548080086702086335615400616394698485934580129919052505357564392410165979299788992854532009649857197619748720222978607347990737979216393299090878311428431484389431484131867264298614058241835544484606974578873117418265235207475359668208189921099464300698062872352793264788823267729845270182983045966957791971424338954416411897486981861370553251356899546336628525135457429109849083356198591584929128757438845385398155085912202802695615929994919851497533256599878443482795832355088142071764664213775215185324136234665454524443694496824021371339853880980292602553256288861912407841464212617359491844818735108325636941664977042505731647294557557320600498098944286093026498163987230299038536225388583863863221763949559780877645246756285938550658014015603394347575280928683347703012675787623894215918541428814251184317195470083799686136402510753742079181263792090280966770803103574065012847342481755047202838836232276304955099870719125192328452268076983544320812622243633517028099959682368216744099350823887726347604989278341750064755620904546398082740301254880068146887378621019330671645632408853341464692605362090102633081819130595988134290645139096123008267277171405261200450701006053720132520564419798108356596593446366019207957192704473552290738042884397598964248160458099135445721619298270709285191520106541916264346669444667617736161405718662782868337000569021978642119719968897528455689758355111283045225922794595454364148406188509179772511443186624849809784604078832202218333912582771145996579971505504427780239201440142759856191009381188057479506633839783722290248851811350939570345375754713701046348955218559033631042555362101298868099909365079985292629941515310013713673328002836451759570153557105588239723361996285572464412592251665088389372936478393199757890627467971048479994095967791497012417286408241378255039883764158342697120093304679438639897314517968342076728650878405649990068443893811887132706429015526786427568568380662811231161150794465829472759924818285106649840595905532286970539272527100520149898635576430279832464731273204780165505969167362270846712905218934974259088661935685334099250313269636545149888534847748138418076334106430486777539278566589053221700361413245229305058535948888519255203394944351248667763213404771690732161257234031168681455167388270331200415052315662420238313202059425876722573808499504238663879106208244418994275669944966342626701511903776018649563937004692781128286863182969524310490337508548808994944286166361751554823424168011861094275701904490717929593192978786222377844842814546671180367202341683412177422819055837305053734619746263531314871051909115175466105992388237716325396493590723164482826785831185103812459580327790965440644497625824214213504783472270017081332877449558910271599324086820879019580776106734174366335838546081991466594411835491190321758707408455783678117911836866337574872082081723823095186240554131904675847332567451248387190898906541911509256250041487318620310501016403563934503166457447239288400167558454519065028510538291584659724402499721362451480200398516066486296333713681727163955628487075965295288795104934731491714051090397002852976908228528909948958106764505151771724025777758401730646500403990731777397078435491611490978781330617942103517372510656184375074558771218460461747913054076857252765459056997770426625716680185660354633782263788953276947351776121397377715534631148552659666710764977259958356958427789923386789607066833313069866832301507484150284968301385973159384700580830156413683369638537781044380216701125805851717416923965152480520019714806896394975603224209276246434500118962567850124786407196824738995884906104412093258844339515206307593123737262260675280629797582634164535455244792936163912882910949845317204303137834194316131074433060322845130359614765143844089131468212599844310770705383367469426588361123237891711072838057659666182886394349516432841410310489217223612625063569483913342620806077112916150231764501809735643685315882218915856330704029073688955181330195060860884252770659799404004183593036395153378048742792063014803370658897682945341374660564132971865766841860959003500096005112780273278722871148918378109020649939506440761968731976940563961829924790594135886562587649225580070374737513137950956420771250886983077808386156845847859217479397264659681885836979805600191234301230243864180131769826963166225355927806455113728945988507360132884785176982064223307612502189385304199503094332070873955606874490103499464071386308352882402978889149240034420646224259459201829210355058849498672710578207120140208356591262039889765684343578634739043882887957040544252003433542512572802406945345665244983926687916315832640076982450000722759934654262026477192037876109014122043136644263663442554651641217240701438343393459671250532089382620668184439345368583840165644564600120174240602461404749572645279975670377176847096113528702514888976622970518434283213366631539400907839460239730898414536543538347002132793919642767978168191610408691397071905061583892363073035314746282555204392181799161034179961298795132532725332995477796787066094213867752719920048116205851433828477873007467411952637656583940210496015712129745824787899957472262789033446409091662218555435149379443075855473468190938278322974451251407538083410501817731552414754073073260913034824305245823250391900426075266612197429712542505029869526343036588296743155275210052259092393888869599248710058745962297002094246366154203443406621748023383866750286160843956927259511814370725214436615695090801955958398558836188815574918035357538273868003709272019893839678886629350114409245058470868161091725428868093775225020913814453237621632947858083916266190503733772387071058065159362934144889320943042563821886207527656469677273334779439009372608461624575200489962752712501042903886715523106142976685367437759923104634397810544464616569294112515262762445305508886183358318245719425077841381417231320720686735680083559871389834405002499021829501703309012338416327160107107116159999037697205340928402540123065105954337417178633366238396113427935018690198539081675060806982484927194877276513356784735254073704032467638526481845114159405428667266802977486611796702548337550637944247558920428601059774702550821660675060229705273951468616886518599857496900336163347531636033168193313848353506046917508183837910760427658110065172647490002888906659326407570146072324185164303721502474923752132694221608759891018729068795973425080623574341364986811961718302732891068237850562957393501196689685957817395409748419671415883889122082447103704682631194810216444817554037994987278140492557230167637958500553055882111385935972246984964349859997075547668837647848311874296526790892585577853887416773827657344603652557664708865953318687440297648218860054752614458803709693171530271803172243201872932462728838534397251857852837525137471296549626886861130025024527631355798954028259937919892282306665845763867979107905893056360627704857263775869724236159329188917301997940321065607125732071330035616902679400083268936889307893494738123623329628696125946097102367317667490513826016126432663620442158457724373877921285706364144312612119665987214548339848397839964166670100345471775337841627164777029825451631463783290575048838363634182237177462645541662380332931229043724279178911746176072945355848047473253699322381576446317579138703843169639199589054833492460638665422642347169584489769701916139911912553672361214714187805791590142581962685436316286091072861810867318589738959666599408476876481067349200758561228648453102179365735008540388504106974581519533424997380367018903295947213727874146614941646111442534769681830857849352235549321478848258084839258863775608615868679498639186678936188508626120502939713249366001084967386253903652188357238648711910500924560670432725688048546733112273881676015507627233389185958532474499217107673805072736579916605276200073304725293543216104901398294364630439906121608260605147146150088174831872732524865857296189510849111639318550440126783586982673570313415886468262257270273201012694283332791877604223242034649598749400762773942577726840391043434970925308974712505096711990739798080768620631889414544203367654915625609172604978335399337766036986122841424209313494371596988231199324357901452816518095790828306074568555961257307657163278919087887183234126461465738038466494809112925495222204829344405743727464222749498181517567069226934338783869758894251481989034029284698637954835198430022328276269430245822070531515196556154816964968630577042430190546495327484508234129733851452338710026007607471660153166757685198211893384611237032881645975396003601827179150546355767930873326840755361450867523418843527855171893892154840967316118056954960842758857407551181233515105936417373060546310486627461340800008054516818590303444284493465513520725136306833276688868778583001936234405134526317917006544335597684202678206980456879902456299097092311572292167169569452214673772722095731613862966928877872772592252562626889620121073118849140460359177659514473422377291519149050427482686872054323837571179770329023253937268251108152146161159968973435859862556711518434161005882155771470527573054238653756629906377642817052565544772847497086222050554124683107293898737408233843214510575387763111128871953065364079514985629855358308345710441141565187853780467071791952259206739701064893788163072154703054661444624378891855021364485972714332270729259446530275942384540405188870750586165967370842804703801296019917237743668649864074190954662988359358003866435114251808561618616581945463901727292866575739568431174763460258849992441668942116964844450515298976411229816503651906123538638889166912859767432079126277844484271520587353640054251694945399358978609079388599456190856319336249919030061233747736222055054235197466054601959371855208191154252675594928050383440086662676704661767088201373747704192392073804286642160970629861900384171750803853495076897515274331486329145470854863529224156295559029336200368267982384992809085447045689368775309722168162968001052686664875622530611133666080317192353223340822155334212553963390022326346257262131396915549681177109540003964721256744576078370279060099128497641595939720121621737840896734225891882800910145092047999354601331722014012831972256092612912300466322766958477411781224776000524090729029476895010687268048674162950151814352247835879805009696829919704758468016028410415228616950540311228497842241301870231085238483508550475396505433652501477721743466867339341838256834087751767244566527037436571641437003573529603662176589467473786243373817490899603694057820478649524224448928160201023489305329050648055384732981627561890144898450048852012861892864205200540106461836015811331878919385377287189745592342237698146408970121111456010333956046057362065258202002594048770266042826013917867337564673572203303738288276133401753219485786359215729286654355848717767484610629678127464241836305065439144016166553498162484793538017181069627003164882787383256385078147294908133719002301009692575694404521266066824546430616803172982882577845437545022075109951567520067726149998247804799248683467607955057070728155859202612634588166311110453093345568561233194481556603045469810078198517588775565431157220314569705650740817376897842057112964302313497552108821116946291859063821859449250683893358624537011062228969576817089631080358574539630594831730560591584968422731532454820466976966662088900824615779683633001325590691780464822080236910593913827709014343742826922819343916687698643130427369313049496053322374427097174444303105620096576610382377493090900791181846563586220543178120500331678177969525915691446628045185694721239804314059032086969071366535403129425640917162987855552894857466138702628804244335096743734499571045074825340029537528359719720261061873714930188358739690551482738840086583784127679926742693865264938416560955328597736869311012416784400906129531987316684168187877943438999788368574244772258439345683704776885603336490747698111656432169069869881910986954792782868547710143590712608842907134385080033833476095292422381181561649143197399330878666948931893784103583839435302294324928432423525410496545056187605957383216573930920009258755527778143921943708732452319607835735899884186525709074940987028159525268974532692516165753748902716704750190591861595657307284336273344335125184653154787207929302968151725487814213119892920126484039565524137881786920240217749641319954602610107492124896872377340279328676831996228805859158644223566623150879422509575636951482873068917204405498672365055509824370869118863701322277108197674986736589727875852461566496000802268146346657331917000122453581539594941005618693309362313775193324927752393828265679846798288479930778526105598995154948396477983614817156083618975796561314783200815383258499177235832387472386184389782698753652523633696469913052940032089885753645575016228443333936273850534410476246289113548286161788386274357462527069763415364931105922490308100918808921313244644752167989873888706082530287987489031633065435799934255500484112421922934192782902976301604347413587494254171414817607228249334107126793444731498210126255606265756522555114535687366901140015694471304295205856020517406486121918888206227181212381403905245442114860102676780337078199990778934968580242765367789625276168722492296487438981730706647515204109672967244578321239320769985731523162661739100668053654946578498362495545668155405312344496586947920882555726603014852283587125352967177823652460442480216752096665673130124387754700872967043749334493780165335937920310905854327733175388673548800976892423425088660109188390356714013238593058745105749852225574521519318953111384375384753049289808931499950957626405298691642108116814126483601914751447773221004729251830454971822303460967896891387194755088372940725933894584876346845560916960439875653617546321568910936191183032383399912629418324382365157188387519239673694865326629875547809142612036216306637569030390643465355397498189078927307109182656750345110624187822505917293977337113735520624871129283590685743283737911077914701387289857843433249139034389741476840006189252131916501434814830150998682057970406901149064992217889232057842891251202201625567825601684416645452790273728563982926209483805734706059985144914397059760047950879717692583637108821358640242644825313589573156082268855865195249221002186591407574715745794050708020541797055583955540620661089428936220296697120559382628034402965614633026654189404730097327189604866938828108511036571860348027076918153524263509500351372960242098340866396937797148641115912390642777298917882233207894282179165300451659752882097876845019124874833964768908285519505359164537259799962916371204374076372926004767798859744888658722409485254337209361335889714558377620708911207584710556790800928580165281348926144898341079996644413709521372108498622605766788752512926700326760243299680163567055989366261279286395958201580728821566117229161586563206807469585169615954281149624905583214816311405933681407246259086697792568993407384495264190686879366918445781835688628721395530152496365974029013479887147668228418185160970377609854297565952397455046850323952772761042399529211065506947600414643255146654553792145809646258557644436702599390590486219823352386717021237322804098524844640823425889809694789837963516979095896143773466576092784998869202804167592926160456098081052141895721961615236398847414777237638251997954572266482026770370799263250226683042722050773029764259648593267389766907723586073704513630870262544838124577617873513358121257629869428815429610416380997852003961587730594446154722496319610109800730197088015015307088756541280775760317851530808557704960452925775679437033171636519848739797276897421337713550072574254831337731294658596372483145872762979149594286832593207718892407360640645411422382478722952332695600584064812250437528513858591729713940432478030433986163690561302040931998443172349082311067073008151830935139934481440848486414521689733911357465346050253857430798604311752553074780250651483225215690062204393740509990285153056639884821404991618550028061962309533555692604503386242764847543854192542052371927544025735628103654129115933063832085091130982888622659132538367303369720674978520351599868169924384207252192499058354992933925096569968712439429879660334485085599230173963044319674240536867590401646449946251692637957509988080593341325431517963484627292158822254571220780547671139136292615277086645841491603354793265314571220015984623604669640175432323372367606399816556389878644158958628744809255444806425062048288644893945719596948804515439978151345607481298428241597737799913256055673845732698379717665863041921084980369605082106792595020529985656856635246166821289752934724204047359640804581593410036838931145421843684919577895810032450625993662712996706590711850390037002386154405142451535821251362833537583995611038525299008620664547824779229140070928442116377614547672088046138450569191407598329836959092064356767438999670393918731376961255589940354939321266568267257647997605834247573731051801163703984559174444238728624352746093525068772353171885048262052623696780597478707656595443843425857534749194899849180870446899451331123935208308881930789085646679187110879739305937555475482668299939296941017953030498482442133440659168135171865536003811260635180279765540220966049789562733981125474715879970865700442137881325204977333030417770330306258006517924881685665549564912969599371345831712434437105056696429077918551186790820444115628226281694049266569170177616871861589069141233328426968140089360286421960827021414260519362410376652989088152870604948351405955154801832061065251521397285867457334907612735179486686289365443692195866862934843759141343128160028174730179490653789569450787867534674312850619416849403170713387330811261422064313297050448143503530907705956149093939650390100787868548347867027868532134421830787864870544827241503896445441104586611394926373383055647549949124673759000515172793156049493478691097323006165530584628676194121791012442797628572308532402812594334860976672620622574708754260364035459931477689499336131486784824553330633340853274421697179990525206228381317067281410921457853249653771110132389604945542320251942292760789386379616203963532165135067799113620863616092947092686180973442086794629518361611370787667498221568024661424121209224789381801589295910480515535411844946863383901857431170770764844178948629746325199489529912324558701263260301804697891078194681055072581838914317243696985815091488709685746366186477667853247487776120707121900077842091506211847944155643390814131878660219784772869037856962749364609745148495695844950099225229237452394226377856620605514057541033025765196082977187872617847099712935445147886477664737836370130179273182054208443444465069403029399917270479980880891420162181285503598326779640048848126632447217709490744338139222436596840267671905894819631098493840175426850377715055140158812714021476065999376579516087821729720915196708856775150125427609474629367590663339387299342281137428240333544561493819589263844764185735665090252590054965926775897761272580424879315024391785047551186558706750976875260551282554502939049747594189368879622452185069428206097835668318564750996646659035310157190865065751796265413792437962067731519692006913233931455137986251969954681823346080877638892959943617307831923516859818622472746546985815852579601469521694456929238957903486668788157487284095807397338825705162727590800512323511750105436524620687366713764255631773401571439258643774996911402634534635685820474275433260724107916834725839067100558613264851483139608972632470653563531367737079162285401142341837703074741347009280681297830652855558902850092551175004517568578455958613460853069108526131325289438859358015315147772427771023863655563795798885737249794541732810825439806749746697375393261610613252793041829597469850833166042053121839946268288027155874848788454607839393980812275926143075144673872170182655904677272232879896624837215861693177074809774007087475843632987744755060785235426772495296603356609367682045252668120656071878569184066262865182602892263001552043889043145927329836276979535116390521205294963070842329049079765544451687912866480440150849450810541902815549806497413613184980475710944381046541564554662222997626592111721935458722363437166704901277169369864069235801400449822682654138389507098250398087099330195682249106522925300032309468714457070676788562852547879609719252131533420523852103563447596781404446147528715010014031893174245440038254182021216133147350633627434998866079973147704080110920366149300816975914922164549648943549723773314499711823152534614912530650733918491786883185156546001637570663457605288798097138175976182338068046286827766414850900605340493629818854456077274548718606114998722082010263941508916128593112652442695150710461087681300620772403759458822813847175462630487794815564430025577905022327935990111093886232612429016267400682322319745478508200267346539396633675360053607123162780789836696484505818117326921632821487731352202208357122750553289959968311345310449782234777466245409127797530089850566021938757403346766239140947732462030544665904105156997570598460623265114658451971757596734217676308479902389311093777464964118311003319204862925441154930406682402497559127569709780750453146026284057177670784830886142612639272786624882095609308322078159469146496962437504968190428415814986661034059049166305405969315500764037358516386236786319515010945077660152626148261786440760105645426515087886328460044835921727328816315648506452192021000037745392823802435102721164685027013905274701131589137051771214435273630493357169789137387289454852966566022409983220300194871790828904450377985602933007022101208110887740834682089932446170275840511306893909403815597083096408411373933227585654828954671856222128460144079305399602875161260339576400384961708706234167369484645779742973406630311920459278781467011699770627333433831618770515371570963166188588666330424687374563343281619022872088806827489693507278009668667708868333948055752851521509837489876641292574671553618613316981712612481994720777242019210354998718123614908078235325187295580500816893970464773081550891202066143654568057483177169815392848532611524946949105850563586317296036775058252574013718889749746574628806425239648457212347219273521715657903677739754782190689603388781147928134063767999022517224050702072769724737445118529782223398547636807461718887319173589059983932552509396653836720716521094542536702979350665031122439390874017210192645487117897142109525574611466621595062303803922825179072585843961762008550138174522016215962870384380056811442022708765244104503449410897167015064081577768698532897032740883660106060888047062953151543742451425705350429540845798246607233080233418425799712171650980472959356727715612216747705663700219608433445939771805740592090911375575787631968054615114778805376000513591151266657157445282992704681709086781533395449421957192910867849210290564138482845581110375045355960571883918542823454356092256290144920859907050334136229035807289823269469211359198281895864222858989430045443501190836384797001212801633266487026602772927706614208209048190715040016119513753997239425106042831856402988736781302519587238459447985398761948225603554612487331244379301567775585310136994415044966718622443113993790955855478020030444912832994025222532205040470307980376134464544483147548412793699893497890357477118628746637729885840310478751275441227708645036761458686610939314203326404134373978596899053877539238688474128928636989881346291575242597497666750837693728993050271701591491475358466863953287216597122013651632960299526213980416866456943784483114400938823190219493034698287705367273945383713845110282728299297039116174734364180387746904861215340090456788128305724364985692055226695317628463794367208648592647463703201111068276017082923993608488037461385957292458267184800605515566706316950225238702721293898092796188091798805067751363793960060714017885350551690652359301942889915678379840837922273286786036617530075890873808916530668120503043884809820532484901562420503581703069496919141856998089196294050762157747686015677587531103068468846692118173024171886714234871991162372906163378171771724357663049493061438178564632947640173923937232537034491070470076622958384334423480181413480142992924712849728328914649659738443324818856237592433143616103767739739605746174288391942569448660420304054663723535003157039341851326924584081785905285898674766170787170757053379135113394890216288648856159780465857380602060772751028261120945250274549169028603695593465599289536746426429928507946529891010330996132671557917283538976519560334768934602767946558697178293846859966727041898571322244799153903873248034680126396416984923240218163723525903722155437385761326460295697183711696588300916373293801454098520488228361401018099271691470635194342482214687157310508385710481754259984501964331538240145229562703893051906461736001871527739451501376254726633695106586626111744104589541274235547786670675610374467612079384578014215408197835440699053831248122711081118083427733037319356280811950607226764236966577719733975424624812649384104260174073941972732896212103817847982586004115696962166236698556755273818048529530778811937910562534427090650950747658020855366289735122849775078430305138917333940039348165821883391479217758927753830290569788660795109769428707032375260568961761520138319230420298239104213918092233897534523867616595750373077530489104929692788901180819136835128403633172452276556958673101772614195579912883642753484978533260403264003378475016175907048918266263827442387568497766686842268608736266084253997396617141282418811445883443987416861944332936743386603452383585845550075037786515240002821274393951496938785959549485055375092773421054847106851808952860123451707123368381703397481582201892397963700592746433392106614111237469282982973445810636744336468889058603130487437921736244825544272959520655201102009656920325496968191137000919926125198062442561422848580161111912028878815740201275620433716958496339023264443482337599808986366261740452433032977863053941282572286508082534893590552512834811873572643480319097978607066612447607138217285933491155881546278297808335014658463618832541875861235671079119029076623693568088683822557102948428390366175001421957035911134772780131741089940768527493890565155714510920953537804661686738277382097540771426920313976954113465728968580610858464607446307803097932389391082207826806489340989625694534319150051908501639679352392921927246540621710021132203564080971547324610357703531357445628619177794894099408895938411176253560674434903585058050476345836871876891962441674613371384457497618742794580958344443861705135297799816019780237027847490335594358928484703129707032526207926654953809697975425638155533582059285519707199369155498613892911275563941748482836306023288372665439249914805684249103057929857323231642665823479419831063488145583790559844000990869285262257308981852790954446230169382513512363357825754689847669089968752756998633635778256579402778206397833348448039418023524928107969098836377907746943202522730552776869575795731144618977039638908931588468434909992743310805991272701574218357219904883635658524977747824741566403144510091408697702833917380693742764775488183784810078258624882052941431761917426114279592822938181373239915617308209156285775775491754699749948189786758080438893371767424115734501773053936288149242159920892613126376225258089419974929745377857956261048069125250350377619067594389754148345618095295482737060386765389101804058544721640886023217848877940161891332852325386998118378233636810801690727924206751273981267483709557865125717250932783030725900816781272824679072584664903507090369565203010316961881025285075217431836509702394899711735161595683317434984348504457626058587557633688469582183066940323214484774675584352947967475981846007184128071858442635548576654019582449201659023422343718927976292581007657604730217468199036269841839682717251095857930826475388591338045483584881538984375082607814867751108094397700295398923682249357531099577391901738603348050710143151679037767404236998480629643064083160271136651228583841557790813359304416616982994130898052358149637558218843761050264417443742521910284376154202946580787966582945519892338975746290838753222012164138613142921045496312133222027103525544843352019094426813046180533957359939662103910802849369827067497384730545474246860703155862070495236107647356143875170641874380526530085186605465873076674964849657714250927777214668380513130432190494556404653853123701500633670278933945921063747351872484946838102576229878291395797832467859055591062040604436708687910081058793804074762113040062667721240217010738194444838404407526635764386057644602965189819469615795635429590394348118799217143636323256430190936222406449530191006404724842988584602936865038669587849226063125413169612602744760498361030451304753019518731332495954623844504886079074640502017331124158644561811064836167907327688291102375903190852702555524560695222239669779048720165356110868605793162810628784658516377701392628630882382879371719171384719403274113021171752613577534221308003037934781334632671713237841385805847077326593438416192406030951144096953885690247101486623261497624442516053494974156059764344165624802258414580835167823795894846627428513572614221794641966046907812884041021905990610494984848393962236064003895370232224838525413642361960907318457009577297055564622683008106584956916911799246646211024788760647387406014763121441434967830330390468792220075371191593723234493972823423799252484669817580176239876811693467089785492062469415540553390741636370997991544368645500672258258184979375719231579983043241146987574011344439524296881237940161025598273299427648145515600166650648554782109053609214576186375882254682926419721376586149274120511986358610610930290645993372502051292246089480238758861915355838895496072619243063430624423934860576429471687314804645605047961769975873978405406697376097278111735598573389413083843984479673547094871064712035171351954291818825139560416899629892160012018577935535736167321588250239719238758554422841549006921969886076441076651665929270807184885817556598252008227090054681884235054115356343754956191875463328799686215903800265020025266378471230936561447882002186710082311447838578777468385807268212942597784275474647508593648075448773118141312828386365132641791566147561525232393332983384955624584527881091995749148875691186980911552789055308592018668365346043428097742073034697504474039724894828700354868822832616610156108925196377483981280467562782150940762003413024691069833621669541925440291227907577154748815055323461409994868808393692881214777976371224895395289178676750136561841505915542054191874131373412674013003349225275369628704535049748542738119973158662947233638477107524873668556574335529902421364511487980838229568322363891382538638176497747844578328340139077605593747947827235876374835116447156576819884832975824481817481974571391002408650095045827502970072329707767309596797004182835089860721997930206693823847101801147862164084904852716373070379093971255670682972319693192252589271476830344220462462325609846566153619636492355021961327949999117162623489830044384933165834486793107146930717889922556703000070649407580520482118079079929819508209190679349508949163347060139130891237854214674158041622379671942093269226240256016742870517178599875129541799523409095239935196214412923266408661176750143247204551260396600523214335728514113141144142902937730002283170608839501668282788224901125928622346393844259467754501507212342140039081776496696008797183726409499494633035960547956111990188666317026958740989218330851950644368737256725127428099606822552492291275363996344163898145920217194405141904430505117285614325534302096845717975404497685401975442104499107696374360706727690844879560304600535813931441709691979973003182557568539416885819992575421320002354300144866388902569706348097492677745205225065874505966604811335713575395497791395169356494107830394471198457485852766129520770510681047587596051418983921661827839276605690713805792568628678569741481475830446730008799852649606240938373804614442401631688151182342987649671980216434696860194860369452053288279514926430946149112109351130307248233022684207574827597658865101708735439651124341263794297654162705877853688739427797274691930147092628722412776261837193065617343411985484206382588157202919683223711245687976823187697646484659461331288516841335755697724006476017897665946131978249060333505661475828904350638671664793101068789385001837473861539011489148373796903475282612527561072270862443329021742346182239618570505594681465721434709394619921547828455748301791537804151883833096380386096568075644551166229696577991990785331393010961360035710106437325308097047137647940375590498205107400052922727849946408422714566736842253052086484889227505215844937545752142809959842751657126185740079339052214221577768537660891236451432288355336298300287567578342241038214370523357845510467018232590059659782543615002546273915591527084021169417362816913532310909404240417646874819174876403777349178073499175801555318903319856954331946100500033085011329284784527159146422915743479110931469913158239659205890038097553965908460716781607996777167620859921882009629641240823177398615338218009507944707079129060505897613035414191131969821041882441914830516751107178365801047703754432198185843938357307699575835423404564650872220372733256649096831581330821730850969686729813115936847846159843557303920415585972264381525843461182081027704004288116003272659578592668885472632348977319695393858194874743880628715346263712408490127680305321449276717828812746226172623684553360218373117411153547590498026086579503480922640929669693847620519712539023711651045543635293732950820769242546813416212516892583043360252722578674049436352824365015147863007467775674274161556486063816915344604594329715480121842814861779779293591642048047915826474337208931135602822018579380932665885930679524419758519704396403050559100949552885838272744301767317845334614043767081239363584248866386707286751145664052907956420256206998790050651650657635219226227419958233672962389208667120238278370100913687475486932176575592786599891993835412624743903016138414791789897738719999126256999088130898597993053448722300088095946189224277202802041438640632372427697464926745993826246080025121091169859269730380093522137142933897897964174703745975637197152514325523302075786146443909398553056757228943386293996468303531645455297232184169058984075561178204636344186741481040591377255249271040031496778510021379344597437970829051669848722363107800155076630526235207026253759040165026045937795177016900017911863325940014818583685126262628470012877979977462394739822496477493700208537644859324045943640699019025791183068403368781387995849722325078801993974121572357090425375886016535469241613275878999919104789369628438705682103657388703062374933171520438153203822281703625763468217183352445767361918148191219191381940014257379795681382479762327974729697920264692499800673487531049621378054500560065076325965756702796362229224933950794630902143808762028078897096038543148254594914856425428484333093085401004063349620965689187146987713920069913387740981944555019572234990551737571355085724333680146206906634067901322330277471059747019218615003983276761674201915264023246456073664933046506465545527331252618937627306234845306748061116396684440640392307173839717875756599467352285779353429204549394152539945207610798368351203923059035083278004502867486568574105698750306147038441892672617304901431866020924431893870408074638918078664065083958906524268815078656547931172892548079791163919167711094627278007708714277136512719348971415586525708757533295279522847861588491247229125081772948250372335890730869828637127127995590366444979079526557550769704352123700796024584110017880246086448559218930263643082404370681792658708562107610561529744698135309190700582333997897593316641790271016458509318822120123120007102025827505862504210900256163661375148617051516984091953665517135198054242312881198556158849549764403978497408185577973986955029153235159002096614292865466434761386136427161602531173033213185418052637976265662534273437929911770697934565733201504290073710673016890020535203122908624344560005878583407435156516678954234977608655651107400336406165005659356890945616694286243099439712984755371431770668627200763421571788874730593410539478887508419534954191720597275643131450905980865774216235992392955524938673542203423795773420265732959837687760800186638294769114764180693311830473615715294233472691954504691843029574351793215791352471001454488286493774483355403263194255403200918776256361302270794094586680706161323867320430225407379280587780788195318747891291818485514490523413630494912517004755682222506418431139716248369763513653634214920902190013613819682636972207090777057051903859887164642279063802220789171601521740588178319051957585685618912722727944245895908072393291598656060368397501512639890779192753457037639593509987550292243954437105022940690207818497554949530346425986273391318443463535332380907063529270016127059338863153768871193754841335631929188193447444809211414681283518730627305396926396127044925703009896849964794094643728509289358048248805636786214348309404032379475502866691047393358345768204170416942721690764113524764393861465026540580547821222482738369679288727505363823630738610878819343870344210466603816932116079667251293119732301053456206920039165251757045201830207890420037335612615127803356876304830195112136454230193704559848521469883451884581625127349720724448637126614631072228200310527955243859157923192846436904539087082085571736762269619304494338128598930097053336795942880828709285590245755585732266268193268054700286438925485324516966913122482605122674737485588052268915679281877413972319515619819549658980733172680810134551551212647633334615811724909209286570425232835152583384162970552075133272814343043327316568470739219664273542930343629847271668114689025041965971223021099521827277324578724712722749171930599234070073534689221725481380737916173003446838974078973929187423400902915617846573628570680920876635679863963329593903030388313508844864971686744304483767460213501080084561724198137667258598796968785994345180777367444886773580555991441401706980866880962677512062978608716849354495051044321160647236036722085583997954310876653521430345812035527333466051538222211397763222611952416877708991267598405449910772863940132752295084655627984045261960711447115048472871420917131438122176482575160423787558948200119674229735049455841275912758606683833991561254869628752227246236309041370033531396799687937748996681180880317855057639609917844933487864257694178062756731702050262598094810555366501048093929693570698474747063758065683082424897982605450009881093085834090621545127276694264715922939929083263482892510805255304291804658743299494069634154703451781559389658656787212541950356446673712807691791526414585305719894293727077064419918569552218119269058880310790301005864388018072563666805460017121909184472582009965931257275192490901093727995131115337742409938840725658547317044306722011711649124645938210375345893644384643148984534105321915506993697967751683533196539783368732488481021442680986386110770908806606895698585817320982531219791510994439307867250268163936425749355320931955680009371788055090399337867679379734387554583974896932253607478097588236915130677718763889652176797793189504111069082158529989293288983891931155003250157914860552809250048792666494565980559651552680617855344819443605697281560151949565910459964119541764700124053276785779954259761291628209701685651348225023322681511148592132555225016374032342384808691525372749060465465738916266301362015073090733945127006903984332979619149456066716501673463642517559916554278554618127594469075528487935146975374221527358013361667499381111505787056871635342852683798669206742424951783724307484397159643054048714009357489555691216764725822919391967886460286642393439870232179194800423836323101338541178433905998255999078823911172087367054991219907839615501527203843375322703985130299579244107056095044945636649157429610669398877528832086018539673669270030117249034416406754441170130725983309777956766094323500270116601839431232173770139804665419353574629508776599681033325201705029348374338816292198533847943701020860584818500918658575093338157415929388613222028215732627624683066450686006319408451492096691820112372635216242059976577764000741607699689545987438302006136932438644995329108695916719463518760139977116957452728050318143209259371208372948189178285981555526154461530271447854952180387502785143147264531053454976483375635145638903737424250269367189818428062764092551432184644462696030331924938168401169031130563629999140927745099469473932225393460750223443690574689065926912595345827225900966343874043507630100241532502140277524367863338161357380598050282051381501404968233794584844836712478508069051130381929244891721008152612713488860739098819395043554069254165108230609499061086104647038232991416195790469568556307161553452980256345450209874705773589591504383559113867084955890202265812796668436030607083560822212066441769935742291242793265108127682660130376258573265975513903098311940898140840530276487067838351555122671260046233122971189632804828628109225300725209349720642797269636283715435925544150753138553930542709316924494240061324009998983847963149213973562016213854346997861962573777456494669097518147745327732345183849551968721211599669982717567424272018727811971149900583093294640330799235720759819388544045858643438208480005466718691031307915148129442936807150768190995035109541548056092017056768171254243618560331351627974287448925999890859686632343478629362411379964322492211322026247426329041401824632878086144242134686635864409279218604330760926391669634454642210689353945698861403658315138132437220682730138125872479182012342156036967840197142101301505092364115166084761567613389552477717129280029217658314140826316882094457507670855313263471599005533854330245314859601427192517878371854781579775308968705031710333858244113492683621115419344360869689288325917183979230819699768571848464680364859771815172358223549647677524365214464417389660302110763454504783167007585800157689453015833200899232918605177414782827471384070771117142786204401682906313517451368284020800788236215202498100435024804603464198476916495817540821382170394475752804702698379316730178598114295441825937328522499771831626085035148790710966201927075548122577049555768627043736522720081746845433114036716819990114816318223850012807032241563257220830578561248143503422958050747738076577354105803064016876718467709897079228248945806714952474911842159954217977794486768333057700696243113954082296813485011466719698825021191324800789363004486725772259353996812478391914995521657171551708931365445513588557994519371418458718665344864632387647223999146119903229622250022871722781774476226193932387010667195367988279691353916255722508739419851571982118458881156073366273599314784479616270473176689325372391089478397576483012806483711383801687080576399447723805710253951679138856475041315364900114688949055350122349458196108183781911268205731266087662716096644550376214290302799403437466009736167748742848555937959297679890737816169684366532218207533262096748050856740595149565500353944769177365725964656515271629538016016436006077573694266059283024101028030101070798895136400206110246592828009359301590009490706824642514363929073657304595405158438344245813004673856425182040505211722186711559074648094674892886524293988416533170871448666308844866627645589154900035539493240211097326022608580210264273103898594972883748015534946473244655300077207880765728677101763968678402153383635510870940779830261215084416223556614914463745200948355159792845841455433709201008981115701210843172884372914617889821327458555987884334813471272999868609829238844434923072709224285551400783506556346567300813741789375423846055201205256716339137403795149353092947158398833411299430104282002558078620162036488154021785874828741954818723139341005866827147663982380985687895213819422525097672367093825545917950250140495015938637415857862435827229334101748812306562159302814906512508591902104643118483976405463633146671303390220179778814705692446955118591177871987137846328931602554645416897834243740307162742921931004062064729001804206131170785049535214072152932156325763323495541032190080624350003670020564857337184673879081304617897174360159445126094804565199211146584119979788913575879996335402418954742652185574371242101208413981704226665239950026158821372830898779817501514585458905756366529568473246164362755540205429523813329939800146459416632528378676858036952610850922325996308357831969893221086512618545943977305024939285565028616267267039023001369294003253962680467470320042337904326302087988559528038953141147956255687618005685062140191315110139264255032960004078095033653145317581708031538761690225271105772196806234367622649652324262548361577420551873060250138390442196688194689575420686728519180783400819986498915324588477687117835415195104354219683289424365247903091859276432294760915062260232865755782771868501916968336205420996281421810139273231497802757310132591818671150073720934400779584774134712826161472125928765919472362361101341212374924245102366412324598529773759424931101563594858356263641551301999961492191787118023034366728852360004324443257916854609264303282915358443668568802854254511558921242499570385651583459375467239962388178572291932795940055854766825341374578112897269466565934250833495892581711848682850574790994687126775334709030835887871732993865946835575931553153470611686308381098968591905896600615591081457344108022689582206339365540653830316559900804126093514347230321670426252907354732553892824706690787250590845175164276005594225064160047733605182223316831719469184975178669555695518754558934699817563219864352161098124709402048975374793876355893502883173104209622067211511204200526640813202578600856678669749267561859027980692703445221124000788219716854799589386001479305787433962051969625279967121856182145231051205606300768702871515863056776317978915805804488695596599738328284433149907884995398799172841125622391182998663451164078562280861832853222780503366561202937212057832537434215189253070249753545696794625962412634271706157147600057780566454486197254906167366521215074367758744229510540388054146697658263582909691519066659947893261533006355037526889662644658595521003939936742875240286799825247436944053307710733433437833916004460009647574954856396475859454074244687824633673081446900734193437829027221569514664390487702087398383649336027157062777940972635881738315348181287253488084194065773763417052151279398792610331461082464772721749390401602217005070925386094599115604356903093218219717634165323047452119093813957452557654365641040089405927886758127471080401538370976017566744181937957993319095010562898579120052887809093188192400753050246227921126078309265057314206899129904847761371378780286814356048347059629105335382753316246845586169255366829194679715947414494379845711000193118233912109838677175526374031466255553196092308228472106400981174975076938420803973894043034056712718894512095074482199899072001179959609155760741295031177595264992610505173535088544404379324487200386124671296525204769502252978628539723981155982405429155003901281097209456528762047858006260649908083600231671318788464651292993483568423229328245275832195855147298717309435673626647308494910913592128547048487507894878562403320365920728249912453155157011339018826074597558514886413709649847358898823992133754893236047970382299399499365737861846455669385979532170838517641044078829887776528974570334696075407888490923637898509108705616030379201232567064609628759124359990421657409919862947436362321727962294267643370679556079132658176678567713825637788420906554830877734778935813642514745235002494580811574944831433938161603028128804030309174576151795224435850644598513419123499869259810842780680374922122814397624207601343168994458602565850254493072755643690707787841227808702198355317099260014117540972211713691106433836243690891842686221069130361867186625743393655310598659860676724155347174518009088532829619214297073722565201511900797067861822553842276714511677137103031584680736208535694110295884230873401547843516399779448402109911835815900654177414633721959295944021942638120279893726777051134856222210348416018532759081389176625136025575053240626701367027104408422826107916420158062822512673155689708897617008844876746908569867975898520695198458624726319024453733674005523189627051812008587136876591695662337581991934786597472482641007262294077821552011087350258891723646788980077396247967930505342021695204662022626297290761484200362248159363256137770211485876525137096095120494127236689465467444210877190591143413201954447182517792853711640124065881514390777788084584629799746717729842916450822882870719240178542929399986410952532549222859751903203539884115254127904052221586063852821024732059780851414729219007682483312331947252312643942427585203296447682860231667617805126308667807520603149721708588647614803400508378346901688230147678398678995640758109097506341651055186452705929260734249461921054121426929957550359337760388507903128341750676566262701807750429602126647917765486419949982493196689001852386098928239912799919220641473001677180952051590653983582645130331200825433690937507080845889618558124541333013637438923583648526071085696165054029021217754643242639193126273019439622666724797003879286341641768308289773158934736659792427250082227012690620189194996624621922896868620869034897547353206002139968341713221471910307502069615659755020428424445358015543586593479320900914342881594496480765303007494286805527824270315934829496623895405218845983469293070780232930492213632128006057052111080863138202705109403819904690062241976307253189866704519325184653490925333188598579027664842260882936002392612375623050162133296483721346586960620918274453526962190769351388182982753078853879602604221645774922396822042597727589710097917932960728363903593451223983830421064655405171728883481132563051060447379299367942958132321723867466266151109588362572900291596173006799014400394146375888134847294085400503552559887317167652925742999555184388643761970438435144190792580488125107479835712630242403127990000707839294663864623956806297462305711748415286387222756026744505393042262454054235447942160697003714600856602447251729461930279472782481423600750949576575918333922387672308771834990529498436856193708846981557274865957900421907518536223924994154675672648413790831718452212348724331603143500625671297211650914446428762279226237626249963450329555599080583929873146164796109026134057949285612276545333187104283795403148966512357366363987816160205524668125594687539371801934639196821469461641217876062092072496085469474855068943074851580170810392821463097863965754205042252111855365643875353603032265513108772758703037080341425503628927841451464641593227419782026795890953155447189159363859682287697470911451673856342863778911718923206530682192629223104714946510888674880189353455033183113879874086490188891544879455301350540543929211584473629770427929068306794647595065260194841184616696213482145558118004895024016337460488280058208343809860424370369565137482962931019216226154141503147456972857614544810067769039923324398306315427952993905594141637983364598969383013123173043482530322766025992101926425579557418000469117769649156533001313101906102165660504264798982482359859305234559180660130823236558797787874346302471763237120475615865198949493203067470326314295518137695583000264671395338750275954238268286820902383867461712357569397990491356001373429337592040355519949526828222910798291269453485443559675649195364819020608629374448702141135508363850876367737413938155093609905216794516659847205964439063625476318571088628156835911370813434508047732057620184725017957327165347414091644736780838610119608030829553150172720131334547148650695941377765772266423699232139486914963929500198490008757315716137709771128953836999277511995058833177710160392647732564449356891574951920539345252333094619294204041363941795607499319003844747302571107510237614789967011945498257939200135740862730651245248542295341733906334970945057492093857977193363061359055443094431560930357066089599740273454134145826402713864413960941250178164327689417595720930483962367366792800654568504716708233004426145626794854823998809194087616857207267895474743796570196145639314424140183773601392369944220011910637364303195800421980235694931445887811728421909541800668430033482059320290137180031305705497982111062269160026302990495858579664222810671620938645979065327802692981383595847950517226420541088644749681610514792365046036163667111553927667942354488161328744931417571926386894814318268638954410400487239988901295535318242878263128556967585393708456140279698431137041543467328435928593560651000996912569116328888382891639647147972278887819742295667158441153691207739791216140940568271132486633068347983315370817853485873278563937677920354476703157888328513144120901544456665776026873775116396848401765532055982768599683740450505357335887842623864398963946790645837067249325912183952202368467257190817624520416682450388176717950557855938207767184630109964223579737824612260522078436535766090720505024574610073767678881946419744778875248467124892869492993859840613839351343312946442169050801473301058710437306177477059048898276774934956938242168396778521061430009954741359547896664982787693221053176719234706413891663682963810623448881726861135897484991659527477528326903507885360890113849738866133641465266814747404852925279944380963105506147081295146337327462316392466675739166289407536613926345215887700137028469777625264605659099262530590604197252974571210147947429939537124152168481334737788142806306771056529054590790742219491634426270530649308900102106074316571358501589264564977319976673361058967856578183658441156172270721558430320941609624520247660001922805225548501139543528759195501821830186346589444371204699396737833255759010468819450688463380974544969068663960299274700724513320086784108295148812128588984861590913680948569042605387404891890045302874095663217326987254647670453813408997813611981606236022900612921964248212437258726847392230849113655116151154682401912780615347622860463591675817363224391889025336442393292186247777541166601287448983875252443746545067968422827282675327118802200145075571422630363627793145917539422940261923294148733368428921813764871193241951806489999838136951195787790349880314918164992059348506499140808845531188802845720313006184466251112867941622908820875054757664470558324522953157622845402577018027609262962157395517048209595843696246139852002836710879193556172770266918936667812484854908203963096510554443369012210404370230337580543435495964269899901212284559860035071284353448300148250930897445444410470373978557860576817271910442106846593752351047029764359554150221416503726231851034933976358245604055255735004118422192760313939889518097405573450574917463073570376220231807300897957129784208157217951447123799874154554944705194484777006325792014640432714688099657334039314941493661483948576576278973932303357819633219396881857975535558311659543367569044902726859947508490460336831693349957444477283349220606818146370684382640338106853564739777970601437149006676951123891220058470193114179235948642666007151685626833123278117530782927802710924007406082387173092552143684131513234739302333966752270617483755550381151151989546980203061401910913132349025336674548343578126779456879980177274632273176966999642072398659085479539311610716664328936916104033260098980862990095284118054779185472852607317849555158548556261355680987641132649236273404543612673412289579168474023563397632252973963205881294416554103150703798102288573442143589180410116927538052226706653230677343328304796318265356404131383730758318814491280571584011239925088280926718268407168628950931369275600794479581948343638223919243647236709324973757017526484710548299572371431558920905744575677448048328164857242841979037140100222785751077306743382450456908505220335522230998474607791837906371635244543952818558866484743990770784119265836606131993551566390821913949436250712668085217171862927129789132426973278722660801022779946121184370673775593782603888944553453803636700118657933539712819503613301484186143622029017574972223817150055835383740960283660431031801669274639584868929983181934297176448315877073932281456100727816007475590661543077923541266266497436426494823031418682661906857192915439420714967539149755024124071900677435872260391590867423667551269417595939798983538124693492789542890482281726285753148219486595198971059061602431741417710125255799177173610452840889401762563307924690135434480678690740663652717756226798430195251662090532517070221844853044375443785794075443741345699323197464314654318909263543271321963208770479986878581686051601785666653306442443072891063595690084712693096439757789438451725254805671895165486019013159926164160418093213255883510179964221389755738086358125555711872419949055234685300072464946812242760442050136355242087411098903888997883351706968135882548275650038505226600960161065637398541097492611084075955461584154828096153959942411844123219937833852949025809422403133974626925456276701434660805177232641362864745070912102496067110524490794486942048533111052030711195653256203994802012885892529595749651013382599784321159574857791142178765973018033198043097479140324707790810673325264680124526818793303620477904480344326058297507213109862013370219879395894201831105436889412850710039288078504621022346365548252106552812362595949534901061704516581189267757032815838480171348267605712017535906299889749980532719351504078428068943096841620394752815449544946686988210188895755800935729461918722113246340698330264907065557320596699117909203760445543124529659255308562046029600643594147602008342079132146080862300405412825036618362091723786322255690695398338575599603614567841139974136779483894857056396175601934490386526298013697681949738733273647511714347466262773428877574394503492412034906807296957852698888845693220089988213706995528138419550520460083459414218019929226445327944954973200809737819240370185321490446591847230320185155034104444161013843859453303696135883167755701708343934666503701418345328595757511213565848895185917658646459147968461848250595937433653509478481347277928247720273446460335396441069516632315884519371716545621868649853508240852968393478605943272876246158365675099172402012522876650148045443121600894326611472943313074407391465063154277279646427921054991074993111925378524272170188860105578211318121685802677736647472482154748618264438180022045504929164950957900748947942754150739294482562103427244355683460335575287082672305783095051642305249103738057486907628518395385371791077214519157875516095991636262888870886665513281004795583981937844536298563737077655679586743533585464844206564335657300878861953044841232328733684298566693000417919029905000370076106226946790227952813309703545593387587562881716748053648225672052086227602514760208520623584292245547915547776487152428150400482637456920672777944704306821664580608052494080338154058241970292492550046743741913467362595123181715481183656555583940211191763486238119653266521891861282297938626556308960282860288639113224326984338445381954318162967540151093018067966352065164017077761005181724499943386519557659775353179444402472867441213163349602182632476687423598262099524003556761476394070694753105610908486698904623723841233118555823994363191514184913036536743251604225914731382433706239973785195194120531014555994176914751686168745054543559806152728788752973052619216207079911893305582948014041534387436857582896065588550137703727010871171790715397046494985333273787501511208456090531735074222408114570219900092950997552757543483133676984776746837202517317388713971762902199675352936646104533943426077300107127366746566797154939970348209697257897322240688732237721031532303550566368431951388763963441994015687321611184237592346932024458846045630693710824734791662850072430634054739426791366976650140853409268588166372318902342907127565696764495383698021761251927136588952679168249155856244101279167195607862929449305876649107453095275351872110749735885930161126092395350261110016161421442794662765290274396065486160071789967988423065328118376788451207999364957915301913987210823170365992412537239162755213511952915228629389442005653473474361401063987403237083725789181003611288374450637007073434542496595875768303203734568973137152574938391259485842106003030777304517863053975117656852387987558334515318090721745479232149008164669636808336053165701251695480322671029785421092569793715683429181953580464023778444685051922525592528777585223607511461796856100015536789428792164014424972982822247026205669910334694747586065159102754534809900967164405301227955422846448418937507227806637838135423694475272693339939816147298061982937423217375056730721320864789928329703677284775222601975237936862849281134322239514898659721880356524100288424858672731616465267350823413570325176702454820112261762842789808696451373823914740685266384236587060255035841846655891156994142380846068388179760565348165765936414246788920947842523194122557681086624021094760874131475909275630399281487042748114357307660649275145703992503488961202467315662777632224062260866529571576877936450526713997586003900473934327572982273305034097186671419788750378333290549550416568847177538832694678766336190248899276961436924255678002980212516874817095830530883770838485207583831735970004962223581729546466097042415249933950878877340031312360610102613764894730314346276492014964468147474262011656488884379341082880626675346285217897076617879572905406402055965761779801383736975873539547398058634183784850373710559514332696614671623468972220703440328284439770125857690475817946428811869882245932188938527310075906603501211584692396016848360884699095610140307345889057482672359551123415176291298306683351630784913136128059334397976760131380350826261564361040945641849562418069368252956957029379891093994926075647137678223853756468226710640876869253905684707141549313762857507675091291022939535746092672425145916715396039278946501601541011157458530328677021090113548933959514109126539001319424716316974808412424965058372438569285405389245606128193646009879750983414004361623168475062846967688123800628288014419566877420805802926947092369717317365942662498999932811878779838893649758693316545664153902730643895834868074220012850822617280508424378331310773354100599254102547644112755617056226493134438240022905370310870551842913278139616036044457430478075979601927737705247309871949101161627596068722760119304514241216516378862133220234463733820755483457548640246968455551979256642352733919674328619359881975295414702237368728225062648954769817056080716043849203479697218675535190154889374596630644463843404854383726801560142781081207381852394575604941339898745712622643895049745289721134258916031698581534416160713690412926045157172318755888305915059084200981095879881411088769862811267617526098514045701106825358985039329500583827081806730142699277037322224716549499208251660144258557521110955551173109145456380249886621075960964342485399592663831949216956300488181379851015135051277181518911448422490687659111976113977880864250284392901982949715184052557797565563561891143797700210735034166767034800215919381375278608158458826143152525823851238033115638765152888206749902672571354421724240195295059884632803735126094551552980506008057619350220256410005778721315324471794128934994934022554466406441085844017090200797998223944168941174917663379034243254345574495638142233174611283129973709046362657006425604944093384555418990621764448213823092432077075785983635224280548282850459116231643870799436874783611197569570350983183567421988212092537083171917719739574206965039803808042570559550403765006777913899274848789601120124511903315418912468820395418628663571314008792876221510492811457901275046035995821603282084924071933093025848527758556443643090289215246919355201015029845378864290524416136240079211313869682373265618829376181767047127978266065636957555354890849487238215126965549951970981408667180759599717721617291653461176016067371367481254137544457334838174492446849624523893529568625042957501906184918612471197545232120781982540051099885208051210755243905329156457962087074187239739421918387069983469760298413087108083691587227090307088730805048775844930658837160943448274723673626084152598346371608601087143385802594487855007806762492124406443959910329692681979197910702168440161074417519568942176039096372317125285144212760112242509860687492729101943569940236234594767222265875271677144512982034907901393586205190787719009296042008282684878104508879750320193194259823650941208398024988016608609790817384638330718733465429326478612966764166424274920993556782736163599726802391020640190062694264631822618440962405231230795072366404991123202210130533985639552246272701260806046146146676445448551507953355929702494114147154588169418908579271717281876846000332569236225354454958778083715857215630243492326983531888173659369561875519071160637904558229676442341482286934124373625472011086382980134302808238012685515345711369859875267315029690776294558492395701362654748960361888045429874560498734309921448873240101541023709268284738520677666928291935569526429426289170159115690959936880004094034236310924567011106180074511612862859649861987282347698510324127484452550697566641363672621266107261732412805219878703845164216306906507986134279121730524280545166503661931846753985430851785355673758366118019666598746584995600442126702564747121970944783517247810869326906096302895399921209767602347522793920539533028352539621923131354104256949919712895211849921136271560894876548429721712171020920197418272852202409073251171469720067216098082561342098766677350480965143765217659898315141033177962788847398713972492156452686362121796590924589476067217180639261988570617021589461774740657970498586189046575045837792779340052763407484339535197907406237331391989570510042362621815659279002909793215183357778733707541293750345205944697874378702869972915921029511115489476953085908090818314917354760470613955088796450484631333358099116210292327273686485030733631971411988359501745369738144003497832472149826442384917890642238085149553599361541833615780295586852953670350417684709471642586212296975765522231276533616454305921370748751173149401174646695918743998020912648230470652700789883879290310327555945503343200465943658520965775476287106057351993895696149859156101338446656163307091397125730046767704600321445198961160225329594511695634166782317747949741134855399655685936283166471581706320016171949677802306484333998837215035835952805560808447715351714167808711662668194560405190769848344275793903178893969603409176423704328772310455249690744380208702409866336978031783939992142036086894746406252213351560833540120553691568559843534499486577433297310575031425972722851280429078183705608427825953799650508417344450397115229721642458382860012218704395743100976568653559744339047827728991111530622450521716589547873930033608196028541024653793211163367762373827542499220280950841819681147894939292094836651404664046390139064530169803513141492704049964349172560552828256014521751349732298106227473622878855690064994677965660530555944573570242338949342828470237870260601893787690063647558000835516183758376088824125626511271726966940856971996604523521875517952552624837653333543496230414702081371820335117972905451279756759749633520878269820507373057716819659499024946126132764777074811349674987916974329268221687438038178252386222032028884516503661187696541273473860555594943782223292985966472330073251519553391745087756311986293888318580462215939019079539321918781322527817398726167965863556090644003708783709876704641068340075958975321988044602923173716628128048644402480456688950200011301021012469794125782131486518940923382831613368578979077383625891406722189792392733679738803048974995520564628415496472995738669971462750573984396876060300679193249230551886693874333470435337632801225290912500336538560442484759853154392468139602105845767204439775639239445271314497105749348732371020850558163573851680891828508575059066116025966001508376224243187729028863279778585790364153185728703880721688462927741237667045584703822108701311271126452929848185371638656529627982470532081233581874380125072570442738337409500135101089422804892014921046538355734630017551114673536599015025839798581337901547503056699838919583254338079981016274153823151156384986868923051273347762651451069310765185448533824206182265298229728274412519928777337286339854463107119826858978927052035616809002126685388776101349116557968997378540640276740325119937652145847325621552290144560364643732952443814461417448000670798355136982820115693616154803944159203004567083881973019027720889141190092228584526942880339400377265676278134635198779549000104568856282500783174698126780467864628052278988552320965629159064748201403255835765308561480223676285889505690843798793382871763175062820922031497779179257969354859693268247016197299861430055551115647852645496951267804510330565831884125082477307900501607862387706656012895514317711008012096728164927992237511605162060324801649958468106889503539940774034276381695410839995665044710149038054808902471232665931642305193035397156721401204962051360936016838669781352073575779632854767153134156790880349389032870093610361389853393155579927930163390911448452896971762999112220515587993736124557141842755882318378170596359974934299333105076259862384406244438363521202272463032204525495859996731098406907714277279327671089376790996413418370903935493354246011679860768761717681855278485653997503032718672374738360403084491610104403859989213694030106788887089723559451311223745601410869730465572895556156117411609716851759840402820883904133198269498213105277769408439740046118158426663105389635935042910037941106787311257183117292799456270693829292046712723898313812598609626411607398339417826597557012501881120075251854506503620743732778899983112817567701421084747039431672443561817769978704487510518394385987996829199852923939046473224602083249552971207306365254205570257831378589546274190796967096479151184700124569727393698011686814819008944044322294014447745617481451757388720878159581028000682258192875980198749496012327918665205335112451432939559577440131457196333428307743977665759659619863750380375835663673565748845804296478336955027446165033829688073800847244254273812485706323868591119136244565849425813742315711059723058355141111586249077518463473326918248522617068004401597156251110706007869944528747450609882874156988779417182835705356627870401217141256355723933517899049080330145595740717899379137045781397539365860089503665231848424354717309413321225335292801107390087193475232222826830245365530125876682603044775121362055603182199288457108326501348477484778350560953051081651085498898825120958723971625679897776539377186563025760509550578096217774167303723642753319407678957949989483850139344287483288997653645892969301822373743740614062056497872907811969011413582144861247539299453991854539071229200240224718510103383936132539275228167466566834315293772715024221608399961713059969721540651512415543618613773739106019216219369143314096744141036844599189313703911915420724195700037205988036852978766119919056288817419180504631127004465793522740906421612994072175470682389863803457615043131887411277853903008135737606176358061905498095487297384707445603103595073695378030823211824832900663480062792986005845337792368082855444069941034198731416221259596409034126227382034483821132168223518128962820854645009661995759079497279717172299670139903191169946860895454094452072764521066133984659319006209131887394672208621157748124915033152287846109166417508748163906011818054875494954440160584346861457618102896532577471430238667970958019981411696452972875209713832424254898174496687565360608217098823961064488726207401240462392501832025074287911849697861118344234781208227422572226008442190151456042893248974051496399986978063059291251486618455834506906863327125926545030895044569158791819294185553226905821669826123874344573907346357262093049201733006833627085517140841140552261407458173606253184461210870176856904612957217312084040773181297721368940366137439576252594984216949266563602826975006350723442001261767715408768542815745516055084177913349402917098583355738212722830899143277913505163821781260619786922727667760778088884261420636170113411423714074828643033708335957054225515331208063211357447250941726350758923839511730576835970464337816611311102236309716133908889906665840595250716548699239725074209381447570117362729662128287626719065983420190273854540593209355484369722393347750197411588004619778026377137441472892218953127183853837710665741161869419020497408480612892204734601454742291522922836740334097163149987163436315343683156113109588408973014415558732227724070390574067244567118054761042871588139983614852153660374750589211985003139984052579699559243979764076061958029432942096662777372841508302634693390058412298615573406699128032408374030177883468768624772011216015988084927091867839922475761564875531216408064302087067344117476786502305179835617672628920001737923254571100361897618782703449292757116192246776666418456978761531099063667092681684443665184316204469368713265458724800414930539788535919707707451701813675093387679916258821268374667548292222105953306790435190150079991674060973401398114306198930188651036635200224540256765150825068792322593725817746430531312157647425471542805449667333313593932068384358812334203696798013578687447756519948644378194724462980507785239785797988508705183103639233014264652523133719942156454807335182313705727015903138651706682070347617711809157653177155678744318083665689034970204867790128669509591210967360041311090067718222607380932737793373143031525353978050461637324023789571621078354080699923062398291473228679137034482643472420922007426823510066645529790244345043338226576911679332016324436004896253997424945119793822673007303206398585218783528557681829790956007189584636878770720051755674638719588221062163410469761363888008192152081371021020312970624936368243903791090746489748101803658996957924333942036513163984279213224657309203600783567558936635226262626079184029672880681544272642582650430151492913478070237493942794121930692763024882963116752536294399385000304886102831394045570217376145173987684657254966960258894556846206891720165540204605482226400611202994588373973876466461434705143279318583886169262583092240489018215274090372218192344971021851368462659330854877881338218356244738542763853284219743213664875972479015634874316840643048859652620832744450824250713471734808841608139597449714356587171643455921716996194558673746166035191994349547249774442848088290269692637954060192848964164591873499295875816198407584904490366592343805584106912368970148069631517838511319066008505248937729211620020975353834914111361121956489799615996679342950095612521545887283514864627977603600299167684924031069093207207100798570573711161425040291109160110303572173295719699831665569559280702091407850321657441922519412217178023782838815723595406883358999014855240995342561329900661918770357331375536787015485269536851907023167221747594131540710616559405847488772752914639817627488895379189573461716110080800918895446920462960099689901906307773807077953894703401802061684256444570808651259493301179144002441150661374969630799042846346922073995593913446037531961159513343758512473354983005448725960779860113229261146694293381839466930331009986681069537872279194208496458360851036251325584651755032414007754688940240859011077339608085663917872996160423762599423130553301237422698137603305106159413756635887274585515510458327439794421822003920597190066171515043110702926925932389047599024522429628891470112260223373114069207571158943026162851255478548539016487290075261841310342506468045904032571995032186551320865051112504411179669434188586105221894445637816634308283666556437219042738834914002265541345183245120553682702651974152803052397433468410086455421508907086020655862253409954464178892705532317586047193277785655700272981854090087227955847628016125616546800246259308705197696327456232941169797499282409307289584118307032141033996792841624053644254853649752619964847408378202083479660190566966983674327722472128719525195686161424052515959069885279101722424088212609541140364866854683389619629740909472743179392379566933939793378990077460903778927202355536076960900493366039260660552885738533023951488856197995598793689478734849616153167986129129629695183990695149398001251027151317278694358413221616539512356723239224064482064727207595135588449362833694458813214704555370015291860564894307006034027249775200388755878700790854519967507483488606634375362996331216309944973284559153627494079321857499189101051264892717914571712760118508704436293545005979562386799626506222997972614354345992424158340786489709112975789207322388944727407916422785419132734198681068786001044014484779133133972223114967632964933714151515008929759247085908792679288707186846967342169624498631590756322152583775535075929174349430725516834536483387911436523638932712755823829454374038864232659849659026461451311656198629682551731366968673546108049950023203983159589727582615031635708726830466679573964391403899403030816177432364816087098456352425520039912607616238976998820096464179138136363786914781923445291039348659342023662513002670131979093549556684927105683048077939396954950909924220059331972973465002408676114219868282097031099050166272694910820214725781118349338130516865059873486320844471531858535175917368694632467036587264457513437937777529628923957969300458611066678813867513978784506573640285933770018562779585496404863003744021797282810058038903379682128282658648061447005861406445380189748062915735093026260719134195918384921930652017495524311960812702232096921442365730666605466128348667189293340111290819561559399890390480357249846299903236837239591196470391908069039641302839170996419190630217058001886046693435770087475201332755424311064270485255148525077431074866054476353015221551506342407970736999387932173955956112557561818772037516157088184944202103665005088351872419258664749564934175424897877664499246509188761179174216978433771739573024886840273315954100830263995087798978340813884852806520880566782292972440990988346017201208014626730734519529673447743860755588299862568492011987187357201785612330633680363157896930389468517574775622329829027885788507382001621733246521242055610479760595915982509283279287215279657942247900664651883802503606685576490955268187722460246578201748404588809852787463578250860646519185610063690324177831510802775918015878837104364832798911040231320609758807946377369699581548191470624182006327434892487206977813291519095405543624109757479462441263830274140781609324056330922665909167780889420979226984146006871422029788107917540917126249859771233298888894112422631991927395554987114312564647994868648811781451036622393137960550155722087641315166871193649201022550659173032396146092040273964181388036087827823443864906919859008297995816431846189887515975180637966212322904591275673201351154177918879052873827575510139910192169722117693657062368900979808207457133160840443059581865993344100703915815722123657044357309412490476276631779150796618074521300590024256659275080436928535096432221467998648864635538070336746378188390665752496659644548802489905969847108752149202164241641262767592659688188536077276814041903849972844010327661779621162876933060265320432147611320515085983484356366792943897232832014580966101334431066670778818125836969015893073455272887471909723176063174478843929888988000928844084141597151536792993059674242497589944810451198727651343234584668993562087168890241597347118661744663898478372207292650713199482649275193625942067467191610188354363982464003961803424360539837640643835867936223017015151883438561092996234688087857253573761173417189938971024656653655899036314506358757626150999053791860146448634930262061050481740201675465694838566400564761164031007031119549920014575012550916112087077597842416629371842466434063419760804370633742711924171856360950361813965328127073143634274720579458269079899106132112443002669281266841938075650129417347329870339366114789993865028085185506380161145698975258800422888679662032557487978362057171979933242660357686085731002744526628824566809536585357623930935784524758350522315941603816378778920756263740125497079788070027627635390823416983958644797991517457272667480660276945325312065377034820450278908597591988778126326180467931195519165845980485124634037723771767896504584465179626812669314215684161368144744436555233000811906687156318537551479453175305928650806991030509150644515471826183026973418202997925406466597313033339338151470086868943349439980827740789454179262926394842804558272851751949095048051656389603450365495372591649983447661381862764627911781522571844100567492456192737317624812989987080716651435255304743417200987210591593102406753260315782754511121571274167945151926186470326471409694023993381526238515854774630437265345066286316716537453068927920849916255582588604832571273644903593954874521227947394168856702298962694043099265810875736256314913309644130088480128528511116282500334527945017960455899764595670366789297692006818097850497153638893317124293290019690235257953005178434822892364622115677494271246671233045557842949445710695412757712388268293731101089738262764168337462079400938511763357655244887732506100473189810604122581093964283165437731637982550744223143646482038042470512629057056616954770437284666669795810916497871729713410164344758565088580549791545636341033077239543329951888997925738005217260404141717293017207726011641766525999288509853904438187072022792967008685331105503560973280142735266067102142241949023145978957235248192742195670601496379392838476883813069172352978296452758970233500365587983900166952800738793725576445198147361796037405906460134893787688460707712784731133169030713626160685245394411241671698918774041097800751536592131588095675790103794375820323963675555294760799385249813241654195736599383541534841952052898912905628102476925316201839118498106674204485291751857780458300207566005577796352702741874037714430153384394173036396255225604820170056661305925954571761974167547161453045009451191657999735387692973328368309975321245380615397096663022280508156966933442679628673449012515339960073702730058423724603547965832888659751992351368868578478943520225795188933349404330336845536866229055006587228130518083283313268493401438688605654377853908956553894042197622372157779819501314533901449510205337745830220399226054755283360248371684120913793816350773709260502018863094150052791678256816298611548173285264157173365570477722273437434681575965224275405348907793346962801727386981191060926149479412536740671424361873185644085708546962918769013123840251777873865168903956069446328052390198256195452821291110427962413221113173894625620548015768499446498035773842515985049054540928774704526584113218163810500422103229895149207066336811433644827096578756885072054345480468915175188562861662059713891684996457411365301520805587580062258026481192585240945043653549654424080243662755092135939125360902662034542626352619309623125138671000741986728130867779902942368575505576409878577445999082201118686980544550949050144881145724574336843240010420538034290727020682943652435092291617397436163612991885522771974135914424187768455838756383506675847541742753779203654476543348165334692730256907241150029547942027723412750793418341484476113987721799379485791120003495842636345063871595110912218749018898880416927200357153788791751451059829662336801169202443424514114317620805455357728807075898110171295310766183221098908022079341371166302593593791813156230268888199921492253182458898121561295029335340680699112764191566487289169996814408164479814413366262850614265250068282804126541618559706455189631129054638892037130540694410218500576776843477380511131639330208051965934745084117179082764390928993113654031023673262851399775971179887443506935668586496148964664236856514058920118267280603268285857773006857131756012136549407525781740654107163808065542505682854594234023486869220862173151102729763844511439748161439758394517207796599564848422544750630536697655499930912655996145583481692155399382766599423074079873268528157871204468934449728724531448966252441727392922885824796642561277407160096172496923682018164226209651158938292339083646763516430584744976807788631695258270392242477967142734301811198320311175248655604937163121566109937009946994536085703569895854559199013131805977763582668428985511429695454461394281128313428544511398960410411148091668916747854538905591441068851322736364602329796312971789181956517563059923917259373198311151936830597415330220244391529954564731039627380324194210783616165665834863990615141975031795322253916658778204534151918610038398303887923714754852913851697601932485925567950981257473574157484595674117120062196241079782840125364704677172063173418097572143219103407439638353460030314890748000266252453625495950263330807961844729509545338734372887909116809990363610299496172645904026786984919403715205762761920157533289151641882665424508104313815804819066031035250715116226162252148306609920502765384349663342978023605796710538925378082367235565284898925108417947095285495448747380101918334541038939141553792564574805407719666762018861833201981259345687389658209818278439953634465849433029656696136176382539354857865465734772981526645487641322147233599052144546576768625893095835104430590200629823969337799596631805143902360422262032035369706697279980300547585096117596709367515904282564170774683044835015567677974185954018557553165401167877444508428190431167672941280572508870192307419613132561116525340057382238530086201411964053819701307260659297297530413999619165650425315383895097637091327354553070615255445650350651802099505091896399241770068314614398986003772673449672057267783931688155455923975083703561811128382626836987985637085450544483645155929824640269570043510595771288440847838366920818397425780052623952875296891795021868542341864504031164985604766830936054113777863286786446177740679638384418758611867517352102395423159411802909888782961327898808521954901083649609642228670394077034646752455352929663460781566958084943407969867529951554602710711979191198863030889733536640331526389713798758293286897111710912812177193166890859622641687242640243723882534903590178532957422423409527642457693437292941706082154885370962955349323628349197544127187781513886511265218916108617495136174871291001607113379221532824444030268092510000401250239873716667879908048297528031022312755181165576116676506954092861054527886570039732954729482577013533856863103160984636763063776830507225735409522087888858648799060625311730461929081013008783171287881052757248067428188560679534799450760904546285534320374594421181123185943304406637548340681170103761491339784983662606733612408740073645005143030216884738466363075020156361664179639142532689721087620295628879843390097996753114707617877975912781912608718050070137103358338698871053689330587474186118992795432968578895383772424526484650581306837304799277111645994956532859340785096581534370442708022231877748360675459158896665464451217675524624734526856542089594380410235948634270296910423702135349407574154628972899560930778208262669784373521438826868810258341128655421036070399026184616940997442234670306787343770515415758957397991368996214132435813197861519434979568158055618964929709663201426180196147439422449436496064005420253139339342513751380643688298277347614259942714483082998181462372862183639152450948423035981502179198205722808436437635437193630990999961954595406545640689134056676287176264306813375331207040158947601074429081817060864416228381808983657302659461126576267161383636905484062153979609675580140877181975103018729728767147301920120861301948245334646688623273055456616858173275254617456612194431994967413760014859178045581532379545170379259159068850766831983704464045440413502448099027927254996986942971309229052986172436291935438191184897303495489690875821875161517606433147308777758999314020771066025135508187884661858566522462021848074874351154140707840239368664151049643859301931429143701585575660231129538596261297790513575526242861945102270995712869705060441190905422273802930815798040798664268149514390390558569456781132219961985591061162746242418689618167402784485630721702400965625476634103836346390772121540753733638379955495072952287587472168626033310289968495951997796676514275263026627178816075439464220056223275244827259887972762126911636287200646533709673040558197429043253648857727596470574078645428201869375671578387521704938409712667098052193897952457123231189482719676799773049491301257773952774195574587937792422043421656676539776286345324096458171340495729017769293946307544780285729446307345156459672468493511036802222867469539135265546106217456598293604823636537560582286612255593662612016938134552360669397263670536110486433669014361896863287193532789191260637031826241945337082995833954994954675801665169114643901735219401723484969218946394349968459699005001067337479728219525014440073908106685970882748821565822827605787859107579645849597106233058091638727421237259526084870898795981109698773377905187162407065990066241411651153714935894583235176468427745121183024809949408870406674911115262984713961156633640135284495553166965923050616815515510713506001045657256909562082707293406955805519726872734647718814797565916939483904113010481917099676681488186623900583658339993782500518998486714974246939703382894290507460383915756890693126671393084460119425505270962015014321903223252854402233327813686832054622662295308259801648381530675727247165555029247832770596426558521508155838043252928553464212098338640805637336662256625661993351061686873937427427027067467547172993714343442195496130133639356083466001006095415737965548137114543837200269806625003193438291420628080415907575427281469230195777410731716196549437411010561827555598938627601804725242479458315577181655236017170995467372225523429128416463136194088710477246080790875825177997733218606306731646231128716074069911862101568136444224718212256898308526993855814751372467239315241156828666688882536828445037369310859155188447992940573980086144500205800196696771255933256664454456332320480427125338902995210584593429827731705034449514613399532703878772633337826040487905913193130994738957732878482998785076472159457352730878334574657706144011360369753322012336639338207504403196048462635254487619364465827057672062195210646859688737494822073469827709948262850910958151015998433636743723294564133271527299588002458370327398226631948867007424643799550839156830948359570308319499342198373197746263069200139730910990224501662244541279663315884219276827837857845216160126005918183596242849820066326833027148812357951822151881629727094629403920010590724975150877564281888763192887012121702727265675870626530320244665997089493790579963182126831306807114247787491774122953149479473418320617593341353608163036273317322808993439022742151966780002649515162572770821574538177350637181010521763421341690656367366215977159796653964497376111797209634701101742161417425090615387970753294955602420067604372128624132481045994355117595965863078829574845412104262463512763710369933014283123596628430778127987293448543992328391895155761281733407712848267138495308068133587927773799920406651834554344342577089645720206555145088476265103886317353360504907589367283682718665027227958879756778189424297819167308488329374318362380309835158980039977450065131614857466083433606832518062469675178288640019346531698435482339001115960183021787252998301903134481774898748748980153709053363244183008331640310407568627963948896954775628920329093421707234957905120947168160818410301527364074846209859905678654663580786925214571253421866991253548934131057647273943031618103335212883168975712042447119700972719500399263489612372462914328848793254852078351020079024988927556975616534032147595564004641777739821825363576571920940313585615145867856895086404635961940440813090419906701933367924166920668826938559996496623063410766024098803318970096177818143974072273405534128721672448514590256970441913702102736777779540625137181034150754694784469538471090796487738883385087272235485042292885348962244150487359337649456774586274311449696816504069184014832993624428137631663361866315655911422851783334680105738473881877678867204463442063880238862124390826599238277332764238719744658019201820253519559419499350161410723169123985839667285322784037157627112844360847749907128349013476588970571536531296472733329068069783598497413292231288230986561737911999906102289357376374619480847071202338918976634261496328117989092459404386833506067412615045761711420869476569563065497313937925177163944136108443083727373126274913333282194029099848651793771767757131665986419867772648028712967532454488400162583099230198887299901759681596626892015862224894871972540732477009176867496866616289028627815482687966054570275883194984830050516660705189484107642085173162866169935929024840792125566554629598832142614474866952916624988519153772465631669876181643018287441699874787386974658882054979705987801097983734092179630151614536563706511947880852357396411376224604872524534208464911300691133268773550314396098178574030631686056364124082017745913220213568361432425385674215350938531914913242616301754110802799797236740629039214474918607841666786370473254239524086130593820150671941406993297037561459910849073080263764860987861966994024296587892558788539119353447034399824486550256446927733411899648746029925306100415089946334713665828383635208441930566367573947210246837668555607734032088576458690065019888642434045477836922836581651628442985639062872053834855857262272452480681100411258099788238997680338279453418027177175624317206546522356012513929962030846717805873023751257850184591984341934854066871875793738278853512777952368303070275695007987937374477020503927640916336273498316570452996391762020229751913456475639199117864278064736777573303563872742589392139623659902363568616066701061087529305931395324227108236942070574138135314886215787024783985934733350644863244278921216656281714887977388471753199154607352050856220032051454702346443468845561820734069717000183021446950893368801095537524151535773159942576673252711531096728215961081762135962195061014860190159509366728158506890627658494445056579621472924105973555531485364462743209073776217698966591858133921723912733505999069000348963835047975847381207737962263648351872568701682060813872356699483937834647895411948031881114488973356364259864064592061761141948867060246852455911440045283191590582526160019137696720514439252388628064914583704681329539221229882143912605973079013773458865861985319267919334009573295897747079137744065212310586400283165943117532981384591049305486328479040233158760700409122245727863242206715915319106232262591323597905919403090562510281844075964051856551918224739851127994814547059077482743477850532596230678120504111945642124291232035619486599104768823302576570656885910424779522282136169470104885644989667413880406889620161567080081874744270582054519416852037269636023140752074679048367170138432976828215631261958206632577937048202914831928701728570172358277894248865225474392032817584726925482837943319991237002477806238110802807694928552159446053563101695336207723098850702170430642983774921039182025297723261624023440945784616321393556023059890487095636709308020345063368030855901761274421242701687126759342744834622364639760307080263896702544142564743221068895729067184623253163053374562317587769296489028782279094645841010726408453286208414957684519077563409034055326399783780927151475881432560274351713861789294172964792318827493229810125909072295227901666666912606338566129627554214663361802877195034888699550899113706174845640697885742280141155864091800653684223646526450579138848448225239800472175558014064874740682591787307563180299729189707527562760224914528114640635798424727051026872435223103107145526215777137404249949304951523780184230632451858610484657095204819192126076715810352182908371361341310262720438430050169517635427820056019131116430430325211012528893459838954474234062335324096571668988981549216336546395278311829832859008946294434863098248664717216371774882204239401083802058385993992446197551192926160435385646818819831650619364494031493785983336022492954917192819337475376553424766260654360343016501293853366883560339023291294030931382881603038040959186134260682405543279611322021075796029019733371981123522229507526818887524457204292450934988807285161128901231798742731027730601023798879414921992879444204811177224302405191889403934793812147716445604583298121366927310586072581484304051894321459528989760327900637049656861326248597827109687902045585518197150711621312240839570457320423913541427708739495500211649370324987441468678267336488521652980927027103147795725999708719927181251592894946262221225757941494154036151502421747077453328438974985453383307542637121640774656817056886316078255562998535130218006491483739548096280939811038359426685891960954557549400992810531215982774271766869946448082286666862280829238380997817934013315825837831574381638320094396133139394026552022370796950958423734756714775760240134848123494211843104729869627078878270485495069801516501361617845616115492744682957993272550762267775197938554766645795795166805027182614366157119714303522097187942982397843332519230223692501528098096026800498564162169495308044787108288438839466475132086806901923958961056525509767109746257680749348436834303048394585157511367576596591672828290751830390803472349725588903054684817516283327117757075870593317171496036686477432210299617245688437357452974052220452779039734763489782587976388180954025601621514648234011135200893001618869688072789096547424985293014263276170860119430819947946500661141961617452706287850360643597159193019358575609971139369381349846913567089801626191534405242191138141667299427258843371064920377674322762621218317986449431125119339203412010539915016877815478427552064801918273743246342258273318945544365423352611702729326046211596815239817238145123466537995772314099317825104136652665109305847622856324502551954474636608690023260979825470007986956539617836594981726022343023593138615185106240634808118956208580157525729346817484827141232104071974822320455665869314902396082263564161554920922662816841757787380109191565056157940873865517942517299574769594809180599956906665329809026223207188588978499137358625200415922076780244808944723764861802949219546080800332820959086432190611535727522718701065329160267997060552901762198944310671536238474613371304934655621793230987660710450360278122489928496652109395451223362285042813392789725969898785329227296105811268061037899836910712568656194509761454450937965822731810418082968095800212052851231864995032999571660638436945239316116522231333006800930262780486096851649806412203421709492330649311761026052332081921906272625317967106549382110956662925977527504117200679039281521769820974706074139371352022332579336286388869566525915767934088382580212453807586819903903997179266478849891375520087190324865980591317976853469081805301635701384444086729352638616562438851314440017628858060996401525690342355481262602726658230964761939620093778329213476983284919647632994863099627576956307808391068948472282607435053455969035741681842287374068105953542961254016726808382313571713868614633213396117568794611092484046537789204430520522835756681612804284879000565383416234398698275626692542811766828098480989974199879541478454387333498887122553787306378432800251107238384488999414700043471171704609077293786092261549938871589995628901556820052093541119861957033934625360014957417105396204038140904719929970342654101091304097034798391987664857726781965758500370359255754571534653439274816865272392769398073670265852721467893485960356976296008164549784632988896074782195387112188503790903040480607204215310395855546164871632136116256530629889301800844966040184010997214538790858405797559663975210200706696390463857469959811815644463707458708639052840041902321774649346353986556489789488680532728637810689590832474215102282743280244142372220610827877079498943682406077060472238746644640472448628276223986896364975216438778912647669151824566177639357388980517847029797557093414412342201092379202850243172360296881362870461248734368044864669388879948105125246155357484627265757579708589415306576483461021858331968416951401394904881849762666369335060404158050930945866904856600165158846115851999619287163039450911949931586791113204274680790528062396524497356628566528915777663291120149422705889587008172783149248769135208415017254213643556223820915895760737735630683374619331035146026458410547956125631812639546133957739622196200807841100072969400684418397123692878183044322739011112693915286815409706485665418441353553932362786928150733326839443546942758537192620528307480005048858153299976792130761716807897043153406206542623353031506043716760145282755075427568494463533343511091682288319678585716055239306238497924225013912072456264160984104542947337842510593520273033083317533437898355787682389793611023237413025195132029637436217742233628330101029247191534437585095963913007403057903284974620161950207033736996537220101943230701709311430940960634569631824615167191375827381638063366823272686032762853835590793085814777035742187186085111876279225851763143348328010024853428699308020842076416162527679003248360578543729662700884549159646076440716878817889148597135717805227820510209935633386465814585373421334015051320647722803493412011176878567456513233867804664187369073645162050340186042124947371778115932781845740784487147419708774935639675330752497954693037965848620596772014743387303860557536270288445910773773860450306149613580247042303032157332745369375913929571185057848022097339483807229632255274125359545239543251768823443872299071610161368236202419960335919647206753505972180178891013040932149764919175313269782600841022857591871584442361454773144774373652680065026618352279770884394151072380091612285383337638217741132787544446828124310540744455066540889483791544768183366390123604994027251328111304445543562884749119074495946917493593309362376161290428616937016816622203694252599935374688195248886654558483352639261769583022271421261438047926950597763484040582553420532223807143959244491804110058755340421213821127638053945210083571611037224858851606185224659595826506958232316967962260628259360391100641013859938140714105331301160562131376849041272040899786110671480069924150581129654228533420475985413800333358926104722609687311784411525594952395526949840731464180863271826096285711668829782360625346165489935822293618764127152411322443583383529265460783038447910761772819792958718684388293610555966285338845634618244655466060664557849192562746785827492164525605700755634214092924952706517411480344554123087712437490267223264527753441358558399527465413129359261676516384254747806598607934622544208524662755513162678291939420522249966581347736616235849132432643341283418918241043349680888223938365954907254963764001061955291482374744559146462960230700748947232746287666142090537376697816774281905982365708611106375427380290144754752903096430137214606455369461936485608779496360780023283241725003442533337508737782057972468084492675864970086992318880228771638614644905249432067030366631535129640384058077047660413241535632529679970240654878361654634155916247412694061862351696956531295591986741325510451311963892465692945720604136415126273441123196978623374538293518675436296787261064518607921015812571746404497725212627262584029560226289178086543107789421851195509005382082467365272310397618145114801685811147850028400172881379813768555771190871171664487926222310748731535011541422713359518169875831180047328045631268695775196201158019866703220657995595813457335161965597977749837454010517204805346854641614863351196844732613858896512117679389485569588765963458816095136912475767491903229904277300598189010419335808512191238454948182758831073712805919415465179478225167940749560923242880942334525051440815531407238651508849665363518669533720451074519104287322308175876431897968629008523346931315454337689541239373885933943330876769030593281174839961045405825596566726574441916774224610850759305143691948447083439948011768978384566328548569398420971886282831879344612457630632380177477077957805904456905122746581925273772991510354353828058462233005528344291205183868584687126314338684922329804607845663370181463645116610095927428164486974311873600328773854795907404358248786882309305192604645467791554796207207582665796864267048662634614497689168194693381967982492540574521962564422344952738300489058642910154568942961641755017701784292666095452096138514855917365139525951596881625665249736400301817972495504125354916075571412039747763917314368168971226154412888191820812384542491300187184020980626348397795802315123961566147187466640720623979945823633148594317940527882624703318658074374289533768689275621542111783751998107103034211202494573368215394063253850666998831753722088261111852314965330878929022342472710911951780205713340812730159079961351158954454354271122833980541133688334372316824014711857765394332275478895419067336670276609919058964149669100474015665000472032645334198043167648462562131429386701200753132375824589898257381538790313097058686526112487124131458255294730173670351509020226270986079718898949937207219608798378269886679183996614239649108419496159200351989529095063713352213952006960968374047962794966012701849697247323170858776753788019852845642648833700054552662318218926437620223128364174729669449252681153867670069238617588335133343627649668403418781352706957926994031030029313990456892568371557481282026412364327481513716183661304062849713649022250552999901888214790976745457518426857213158055591587313440508414478271965394931335723058229156467093118497140450207813441757425739929869812313453035152083235382624346187566596799125859177032366238506322220207934080576517286124776331435247289470342401562863396896734748668446312536929810285182219400629125768645279993375304921483608163607556859590992179215154548935171619466215719851881945736074069346695497194409099942787198124191966260401181856572631195460041726043940835471880124653599243863754617943061707423128331178142061277056844246403167875803951161013507722326094908997050097578966090149034307774446469566818343353484159574506980646558468529275106370366314384627643139135496168054182237524504849985715002596534662103009339905773947783307612343548251968056154080022366511252520619989013757318252974043936583095107316067016175117118939794608522389092248338112158810326145983639689206222317524182488926678724313990143585171016093359951584704203579704736257942808841775876735827735238847234412712276422525922526417436273540822537917308716924913104482352887471460899243201079331307090742528561211438669088438791269398856906897604845013918073023331692920127133941792236883911622872531398200596479374526505834545381685329273032848204873522058833360260187388992179005410959819176156048950741298439579198526924329293923270076147966568039261734361627868364918142986569031038730986721439010017555934974810500692850983672236482911042432813622321373056665529536340096253857956814912364305624361936386310064345720198666108832449619553357310153294166679810535517344730623750336829898471514406988187891996892771055382055803806402288532233340562852146244912746758306195450778790395646121814504885754091997756364806720786740044927392106041583880932130506374760114500198487903939804867769374833324362512791537230968270880790440205685280331150236443409438599885762925315534868042405886670051034714137965662588553535068365608799809955745587892060239812390392454078650795231080396629570079870585783915879281071769048513913850396813030118218731576125310132976036178745584003389782411891919923390297873217947629323785654224291272813501502250240423882004114904905121306471583235695665051322111969268104311221986767827074569056673768027091904066045979371507000278966145114492155584526529248317358691138391292787250564207677520157982845819614552314863634149571735977110338279274510677186555748211055322089797517199863973037839198973279337893931890120847212027038836093889263950339173817886601708855591733287876294837313434962088324450813674642828384694865980074692511490607430090018888931203664237098032278843312079245179690855322425462456562184868033787438305979078362149811822364030796216795170117067149052655281898619687209470608140175839692545763864664057935864698622562075186120099407057439031114004183406558688499286719183882120984163487526228976810091587598847415827268463541200757331658585985720308498951857984232307550729824317875561972295784243094700520047389954050732360114755831615373580736774980796654144815483220499611139429968772533744888790903848927346780960493708608778650764270550173961075515118956854192683877191677686901689533491582250228010485185862551245317013459700769297324098433096909310931910004354931188201772694683264585360429896150726574517226064153004920323319078401605290198070797672236860644383799939577369565774459956456753648663718030820370424618012424466935157978194088327324310990984507151753628609381182279358873327684318490567710817813074617164775232097956722566254612046402497636251849507948685991694223823628243905099596268302561897580965755996163266680350906057903749658116552592510320108490891112507552916515526433468993490529188202665659667548546528012001516831397208753753694505679702325794024705797668765032944230641444886487766936315554697295695100709990165078231440020303365656168221477486535492326118018203162233438482572422047669553686204285745892614039944781657443053293478052751850515377801352037087988821804695637122689037392882522316988354574436557066707712758624679672058740988430734833446818134988910284606974330604077425174884046470496201707689827870216496757397587958734670793335593023738255173553600336307261928324317072263623525377149288877044072076183653930186815475861283734681131450333331712426548920438948362570444736751138577877406046684136542391817924402906332480313957040758330287326359259925180050994312006087358048547296720650766573801593198991147011998692609194928254246466733448704220432831270884985716425796783271123563195189349929978339923101691469411763574868968082403358597707984054076826081984221917853855750170629516406448637698236953473999251632541562797591282066623933880843224471101257626812121175157030352600399385831346171188282600562164136189438291752778423050105958574318813841306282605042289896465975873983479274552987066387045195061517769770816314196218153992228350349778293676489832264121245788963942218390161485624396801791529589708164133444504786523485872124713077628090848107943420473279891415484578076594610035181864567603414429757226429597287381965224736479091204448944896412362852261599430625864311908230092616611245594183072794814105659348296489241203208737158613988816744647159648387225905388003646028448433628532557681844932382292140732178132501944143025388179198927706091317826996471552998776546828391577213645782965212029898074180175411281499139541938844950079510102043556696115285590378507260486454287136868000993797361892736434691240592671164689079760530381850370636135580008042404607275546631882924850424365531508426324598874916299753102322417987199528244924951988492889818150854052035408216237183085795644169474272315727344471122187846781172637274234813694740503244849208708133217206862298241939944167021682010025093306048509682117188636245179650774035250298145272533465039362602755545989136114092306573658234706274587044224805496925379611673326151144317031303810960888584224330332057056547025170327898946121643776573381424867832896124158486253798014465000112275689260674908160667222776075476132751366189386126567185641281238587192105199152748868269978252102361664658678945713472261097828670233643363546072348253683729292368910237064950864256051915042264461006694597050226241135073438378431262580546525829108638313549709643636770167445876163664980761725583654100710192581189966340595142168589313181418138979390058178618967542632807701458741750443999105061639603073926840043999349899657478084534288814889569078628888287902929355683312120974320741837417650700453698743983371718317284231113312509062118781740969926365207335634453670449030896400604059491628286106542411218648440586882791216385200156324625688923773567813747574361468291713770717956709377622159206689368307187118029699768003997863190033181775282373155154590537443499691266000574183128467414419092775158238642047014653755527964234051251569359493667850361634363083511084181425196820049691988654209791725518872337653879135482878408735525613214912105592332627937375925629299511410172311550434273175555235794184391829290950576580891782085490658279766144314230880075637808342279666810061215482986864526666263404370567023123503358838733304236796425492726524188190120949329261052968426616047461331920194626195135069020215396160181791701116497966790307561547937505526030901793872083003194941186813496368486175829747234147843947837131379923130414780607752000737162313555194079731379936400590350925845609987953914476745382773067908531382316651466136656200758133487250902726864093359592759309308142827259319006087819340724163553591543851259159765999264173957357556729056239833050555299700187042379000159832009846314230316139254217289376063792994483700941821730516232813408577505880957579599281882035377639077637562683131555091938304704670044759772268928215209728710211433888115483074351437994853437547141092868356251796125901685253807052868501337231092104681348110517927517224856460347361716421295305635537264387304328725312970993251232635100699775351579228475134207579222852915082269754223364807894687831036304879982680812922243032240606530042831855801868293088748925009615652019789693051272965237628333565336250126624516471004479477353971327707673816124350286914287287032609554998930154017559513424851830119460126967358330991195223950306354919954859953463000235742911726969304684034865393568777373479139867151270932250612608453970917701544202320456670671636165191407441742336569802671848969875050347335262893932977953279348036895716079070422283382922926125693869234602077319565158079198655969504637379927567133255052026532637072666361935621116332439847918702930586193562060025282693178723087864828715533417635240091938553457810969333543768587975406491842417409578682736252297198249594618523332119926779158293432201971949900502329439771912656303315907797046882653693770435009275152110917906511534368834940400149417530365120911041857290442811996886561443722922924481129495048008570712492108005375767003900116660680409429138974752850175440694789656248812513559361364800074645342520939949598851619478312633942775579975929221966311008430103214277067722181221216348970182565240345211145075101876917675525688354729048399288267580370585975188146610893359560414207328319922674720143839388961485345184456440660566894309049453471692700000710036993950051946789129170442146699475674677152822881035606497198438631437720710695504629353721670447001256797805530057393838897619664726819692363399216069956259994300724156977646553189913372382894158082828714526103969803718380836249865839062186346892675058528193727807304302129267414067547537893862128908296375681759826424646493488274226227956329672062012168651939140808725637678838215585632786016254107948489325513003097917606798772658491031326480656755852979995293416050925864365852011954570187828706746770105097531700609084789304095989658529993530433716694536825294513085940195955448223299630452674827639602597080494863853155992950898960720000121204399779503184576560441877676007741986349110316949203330136179370804498625117293402577469079389718158582595968702685488409134691653365384188415570306265091977401698867278305413503864945267738954917740912088216284100661017685729309749363806494053504078704466546760023495142518116231327825512002016231347315361804554609804059191468368352401548995165530613235652981346031158917361396495701051502938615624350967262739748103048764475970306376511616428911073058089465129647903833164993909099081287298903217099347907575855752322673070363344168785414913953113840172510241479013878304936690818930904946914993968870942916748046941964058248977919843578905901021409713694701141147422131539345188745437407708416714844831270086681431217553237437502384964135326017434844093848774762579929793415769524466980267903462113532673308591681358581955199559381794377884751698499213999231715224094698280627755703085699610375245698427477594091392377258276980914375391492151013706831951671621233256790307286327605795867717061787681823522819711413032359571155742503381887236832957154827437053195417071529900498169594289654595106854967703983515845011951708958656469182321596639264883048784775265109593606079681283692408008073506843794601129689227183068209557612136477936403356497170230108081944570323705333076023003286196332713843292796303697800364618397397295606544268770693351323729815538392964469416352208766825150608169529967641257084302102459347579234707135779596460541863999600479625454736566623047455211107299217919103867157130557734256834197525905775000187693887579135559006736316535009756993556376992992533781394035718827620206679632179985738151876246267382449975148571356824064249604579533038495917239768519022755330768193113851855362384466577051191287762427230965267257188776295009287775816767235090375521806495471895551919204075777872583520657476525862735895425670263693635683890976889400740238543531880575397467870716605799355933149524356430916880370621709890432462798912710400836646351710447522832459917549299375978130056930829921165062145958710374200477610497115513454422237876832769717244473907022008219202173633151276337586094570726511527194498517445864177501904768466197799632100421450239778357468030906639016692439009435604969651252322573254054553053824481874241507220754544777586741209055202926495449906427004766604848847980404473351582675440447529892619055732334286567459375479970359473599145977672973290673903208658358226623545648914702314489768757538412881439235895640914872832048748660652571052391884972101448713329399014994618152123590710774243438936305917416021676596036424693865352574127770838982575616717624430619058361030026463323146928346032304832062112149174720599198328530278514140247033019331342339332684274268780405560867487596532421102327459273648052641173754963882030415433599496664872339314178044721925611887288454506092024581318299756679187419281194120054700300946140281918070953679486657585719217399301749426986987656072662016963026074144642135467151919196791000468005155158180654964739844437886269694480344100382761508110665246048733696159040005145881271344887807825115686382186046823695708619083987042216015478063447204674989516141588039448503554771510667279785700754908507930376924047935848154555426356583632346369964590991497213729372742407480179154582983256309820487097102127349027797330104648988943181288788237561169234521283082336473502240424575175144080537477142167844370588337786076171181575272405706004013454830257512383693207658682160313412964232024454538010313751304548500150098821750684608325531436427798898222263443179145726632304812918605755249872010861698641283051154923193388860232016049205951637772587213482149972562578275511404672315123306241533064998000123804917118159381858122774797856598294474435691368555244743692026943116567790361182580682387462829743721045560489687470009186079480505708862160886495123584734545145534157185351178709404089736071745664406994725862563392165269729698291989165279870352428030136876081319981845601025640513545125211436306907670110700905924491723784058198466600960904531383712151684379481110080605584571666341257286673285849070900248922194557277560582176444347824395254676415424989516732192752708876663296554574288930139748053200764590772159178722930783399635164065014469167415873217397177724005386156260204557216422787156340922844180798884795859799230141276317448350557080318409136077242587135097813442556797478125846194646083896608303469681245241154388720070912467444703793075733380073530833083057431215856732290031809915050122538372068320758084568076693360000613419347288278672535805607236034677620429853395456055653343899330519469832512127374318825943444670911851794887125532546960888084525900955267305518507053093269919503102741819961188575593434690737452530732448473631906033290999449395735648150327644338054781393682488786299214784543528320260872916431463735634176585454582184951109268746085098789065010033548056649365615717937058234321453661342617419315990379674104765708152495555872949961642448884922405542613996610125635741986565143063903926304330599780648656195890482689669971979558140513140128485488303547885647612152174921923180262274247888192448589335567199372538033051318642750370912449119518999102222976500614303525091276080740728160990825779712993807131118934104994418643539624389600640650030935633718292557748035833729201719766985355370391796584944265756009030783463330807791146240035231597800025704397087880183924567020451022320190478810324049097469525905338315281783627719900455823096050042958168189168649035969930032221442569470310753476126154842584403353109810062375409170532822180788917350726291173156655505704469705061884412331353786505234432839071880472717288821581942669876453026206889022554072728529840888069558469398108936371044096554571080714323950655096084963784559740017422526214509648164321524219087294866194542575297480178499621672788920117295273449898831428517868141568358418982832386034583025728712837410496717303705035676338975630401791286100299173047448131126878521326659829124372084341308734223587744988816872686617644175099055922253495203018774009519000985971939607444036282694050458592686837887985971966049498136388966016237675175924079154001277739245578795951953847939616585023810237767344289090558437887943298863803359678098228367526557280599374078513865046289165722675873035277470489763238426295285607781684628528201407423455725098407516065359295013055219820519740296999620812368330207719217153869923829721232772360767994755220734143294305415123257507236059324008304899905848286141584154506145874318589955965942271466130125008089726744249901643008252213524537880695894402295769510168266843892922708727998602068482958962051685155691373739269507042569382005112598573279510963313747159395340023862305407441350374199973704396016837024338711015940794158368883639968404872315314829116039465969202713308817377553556173137608200619994230367259521657768659370396532651259513149116530601846739118334708310246654606928908647201239079951763951717419553259068165708160770130944291692140106384738138302843416410389068652628157993276454614528602771923018305579806405407891322902624440563415342662724285496252334074477633093908261993690416013366904908981259572128586791110472723051882556005604963173968711192727584369968126454546237771254848792106293611528272028308078954242017115673177530019651614634144411824677133829136923832091373393245873406192984315565934378911311144112661684435561702953225713073065043369561002348801761210768952205588106992765356865640815759372229568488092939380811389007551779072480152870812367487473851638740654864095099182107472955962330006057489670844022041658589225987393665530150488020034670122544956167828560923513051139892552444813708521266146114372317215944684850556007417806842638169937522657352493535133676033305165391848687108589137558006129620224844259758458971184294017825974872737225119001312892179152011136833945374268667885134896374953305607042758113690564429466175067694655931366726451212369454746918159800662241281435472629423527301885990894412689026625558341173879824924949953423242680171022418291797152876672445471928388533293367392765862414158729199929489781479843776184464949371983489149640248641703764147610330787307530916898647780855288460275693442319387944021406006528689389000930754237654439012457685552800642903154220951413400580722581974843468665085880040344255674849442929689671037053642295514378219043353552016919695483560121873006749303061606054867424958854082610868466162843393431994508328224036620040227482572129489747812960819871149693164266233094895651809324929294683191030086383242791352402456975916930071659394355215007409368611213694633126205987641148535875294061035286735981429035544108252850192964813992324728258258839920055054129897586166186894999612788714656566494834378020133691248110654971761646492676382788628994602130475057182254332330731040129824778398598628747053016542807959299169291124350610183636779966210797764847803424558654126419070217139046157666754848639793187325999536609864156416075369529028927771558164046793005187928137823456133395241135262331841246051167880724274759646621812681180025135557202994389546094031151775305102743639751862198394916614511968164608804167504271981257967839390547537482754698077769625247581984515865364524585209557365199107140646962551132032251218344618481002288187801211816126267276967721850805124689782683839203900121545430755695733193997614077913705783968233339235421662797266301189604796956960461139924996525754481767071233362495188284947739286086633517987987779549251043761969519134615955547834458120318021340465863679349620834346774843531186844312874583981819293400697787539824312261120289528140466877126605548167147175946199304830065781374698153651032282529684738915365913987803413156077301473656453355151780169678887374006994727856630712319471769980253236984692106965329589737751809558636175949772100716213202606776185749989282959072870293775323717835268752585266090575293127431099834986715701059587141185521280181187737502197518514355966809406713325195139324511341233510554936375762366938265752494709478750906469812614624404580410378212938398135657186650820793909677109720226350388302814618455043645417979961500956839583647839530809655536469840096011263257911446985907120830192603695932501810789722242908868472359284661035200471429003075173409275166156401118291975493649082116643661931828954517249689125792133784147361821867727309643123365957027055449313860800921107827159353710129429593778080022733145487955769435139248023766191784173617376105978592163626770584196455462018587045302734948956607395895889531470293074913855052226718145241277091501400235452554140763698502977829099433801162501719611257444583098401625760895617682236667051328570416643856441087141869371565340878301612003997964552206574397352486288714172069781775584696533381239876162228156117682246083378086540378495743083312157852521706913375126029942225982551174284046673740832766396998156684718586421765590434307654535953343197108051759539354304856926279627747310618987824572944964386389358259392157540242632272206762969312613233045461050190629985643008048431761327521634595609341811863598602724472884026444472436548388687448889921186859604148687127169817633315834095914583223230201858168195116812644299636232622119673052638573279833391376602240435924606213807547144748898485898483373754207114292042920023958879830513444371297429675560478982752944471933568413150951812158961089895437239267341863860560627328966968529677226750017594982394291863220584247302842020144732048197667431740812402414823521747304689775854251853706172315965559713761843897467907997486071985087479566524520160927518504625749738703193297155808581445249678033315474264865752422714013711706706958915227793875939425472465928037971522278478943484277040830733088746116516809560340547480339451688110083701267980374552149618923823359007026583781390047165913940435245008578900164772992727726465290246811386354516277444893422378652731293684728398322952073169715199165986835626745280491681890920503577972144351477394154555914252848013685407189627063988195168014315175665209695896424750637263728342943248257979436528253771705765069578979132745555280323121286281873320678232871548776189570475499737886135109472801698553697589444898836939447217204259217396313916862681166013917232872068067296288094607676980142381337554445840781465632521637906419045064077841016349408722236319868840687168990052737162671954170223818686635564887779247199143964414886744039669421148096504962281538891704953458956932009886680552456968383872310604988588898352941565647167739072090526024672778978234167549324761423307398953170345932443843446557049458322803268543507322202936371585660503772144691363085367943510814733577956058989762601284296718415459757880475589523538752202189225649716097022488382012937299647430272589385822208255076925691988486602428575050233102468798000361932414994319349147362610200439065138235218611973375304881093597288743494885085752900383114949751929361558134616627269762722888034735513184927552183489355373727494638321604803567097918198474969266985216230836052844426245214873635068796758255257910262275909840949545195280233296062291919061873440413963267230409898464628208065764663537266216380936207689945127588232688935481835569999171921337373629662462745294054936619912276718963382604415253462619598418649494728265354170376263035280419681297258093934050916056491823644980751353733826949189786247087242764697042427947686727480252783516605754208261883845358395397792098428379129701566306402319344698466861893760719761636269128319459620398517953076750083560402609348245522426538665380732306467029413208476458745812070497471826449714843930036609806983737107406890070999977628938908344731210484007810347677082593880781915900934364213345165362157673518569502020850988379848812672342759196792035384573081499198822480498657361567844468779420427281202176766388488807592396575564059150058594567666719742683840426027821825642583272284161120056094513906261719642685840354072781690221229075907244364045337621715877835896693903162373397874001124481154062148749657759114335217327545031540572224276462962200529224029857380752104358652985471132569064061581505033548135292556784016069469296117249571624520015539105114414004710882438164345101893549562810815968236476638273369881950128477166054009163264902800006858701406230606896945281200592063524880084433328477762810672227785152166091041275824483488422018952879417853758024848333211169894803193608884216421468797030470111260868043834073549247722449060649149458252232207117900158766103143561470863824563507177184182592988768329757834329209124019894734981603632686544684805218501758486005509362987570636818001088602220262468798485723799289545958486260293717843107681934563147194397887278088735518276648847993278676192755837187440082201246867808365853894385080570894697880368101994737196688380367919563636139991178009764979355413720168854854627899896986044152040108943651224031531000109287700936048216832718908883448428347474838781322442801602048436549202308796924079864580375341737937371437805464266388182901716475849636986095396800441144986003262039028273614163583891061216012943420246580199204534846203239132261612327069347476224340829110810865796073083707413179997704422675382194975302465253834820612706140764934295152145151460395760861934376750507380250735040214308030126331230140637850367837654931366032799471033927527190988705934871406789125796509907152439238271607356449387381721100081139282145377405151892084928912795802694205818895973443301523905427836844003983388487831033570513472690889889279880369940332729606856235182564403842435719228959270641944016871203137413960725087166681885005263800603712330719203484709027963907142038875293413515050526335022047415131648555498187639118256012331460586267267266861115136638117365419594911173634090466404891149429698761555836421912655437359345997599298274868125006754837798829491634299000420434955311194945093711673194561757914968694334146550236665894074876711292226127242439023995648156106774967799047104575279702478557890778668713356168388843014493617596092502411724630841720670136737249300496614810928093931884862498033691136844924800893809187420754832221535183978901030119386231418759057858795423028092677979737490111395441550562106848495231119088862825927221334686521906600973837657718726979225683088559254373366509677829459646005351891904747941764085648543079271253777949338555734678252354296143070092654197711584921223400488781222696146545368657408202419297045109583747139917980914474343051928427092348284787585086351845545900851460474615607032863726292895863519235066783058390902663534531863346629159821645021169801708369548280926990139198656641738040623129304063948139166498775105386819883653743110992409211737432827347561985427164865844922488652566486780931248346397311435135781109663841154811469295960912210673416592465899030430414056136720737478927827422411379011732407937357481127151234043712456066994343389047597942716358597283445928299739083688538278434287161133322766993026933772482097910506454199621636758679687759264128343735252980636279804038625979399517818786508074661251520607951128880616154244132124503962405056203023080252495125872176524960752441122597970981706196263167452484714805523321335525810401985671565603959348866050685831222102414230997067858755284464504080371307726133541307483704974460163530336983401993126918902471567164344886308969480519884584763967747525688941679744391330497242966972974999620012360452385961588538838224958258842583571132401524669537550284181792181720990467330654338154996356102871840534032921191101970348397672579331159424348284247096811653639793666166402242505469461671567870012336164158525577675909703556091878461596425945941017077638796924849154254003376838367451708985462303271869275629953587344644840388774316375907887658128384791630665674887530795903667935882696130290288243263546220074574503585884141147765530950656658425485452176188908826825011746280453449038658080885094038706176944419430186059215555302142046993899709657878613266716004918062517221711329662450665275804770234664288863485603149209794763335353281030836558706255479409434293737082366160668886390295543127837649147727464701504661427027702206225169603970469467969657242508311157880579074649250830214127138802527369272148863884168845645426541405695708668967075497274186605261171496202854287956538103051003377500951664772631240977949375224425473069446743328803546548466812042896898057876679669084014381835879723012464474294142886177356146520474174672364402393705038043777203346341151373659076487244376333302118567622273453171115372797902697818746116766715678543415505569452617299325104602067448133798604008055715463590452873668324763494279477435717686351284462135558910096655396350090200146910038777766069052900717047524272356790466472283656862467614280587407643467641281510593834852576634171116467683968491173662166983001178753928654820691811642331977279480503252669018319293814242566408200749221606809395180075926081524997203317874108165846351613460655515568124375863574536646253108547640908963084580214414184111616980643239905042297744432447093574046755503261806278187511417366354189957142034323608404598818617470653750463781187663219364076323037094068876447134690770422551286466818632775740943279267284072052945935558755162610882363036467321038714363381900669629469718631314811910818994495088558953829498497877173981052518801069771125342537612788157268339950890303896049296236959441145522996984550518954984207931196951634786441468317808928917114868147316979072497840285310191796404107520197838697263214493406569416018925897191361906803487550776946381494238858926072155101891862829983056501324211779068704345655301874117047838158397160482376098875363905814158617918473355942768081364894655409253584077818761990231455454041127167661750047577119090832764163280140089302766998647832267235605977476321513813990905568756658046285654372150098289198156159433303491968328282517512756310503210086356536822474666083863933649311869736534458296175680206756263097722626748247622769594999882145777067317488207201771071828844506088733957796966292621162592172114281767552718359119246117113300699675650058142599217047328135082475644789657629172864126863182175611504843920580638129527498939173077107628202029638236563630217732874042571519823809891510484933994249304358156519251608690902233903538832717908545249051215353366614799506250349276062957752620281152443633080593900478276274650202211177638427217598649854107504578432092237626727310346328064325219203531562029691801442631443980497461444940252435254916802565834062966072707539579589202536961867315230980180399794873942428329208480175964349809446335621336768905892123929303384328614311419417518508446265965866344801605516998877914025493865207767680995098144563063331665857664485780050133712774361773462819851325868650663961881113286518234097920010124679601669054560147283165222856179883487604291714099234255693582093950799961582502892470019925458315879106929057272130044208755486382163516945758173896020897717614148466313798120554856017132934276661510293497286191899650487801588636540063995433731464056004313904095442482031302566885724346547103331075496999855325043771249850269544987467739264958376508429101026137826948621693914458566365156440656435304778154513127205867222638004300181710694822717273599181609433618087783346213484025803619854737818901511882702306939330478848469706036298765802942466357324454092385330116427515010374049669718656924709234458039275954030730234604728676245114015506579427953521768061229362157238405906574547556137933526713284085597646102569547576466096894137387259212296413335712510320404420995956538134341623169012034991054187906427841825765968534450661893829412540665794055448916086836985415682209244195363375817771259554148850514977007523029556206785553553191738198684603250821243871474364595318305654629970074074729785749771843167568526782605007568142317141564765740361314458288050134968103765485700741086730142171876445742452874112794460656395530514028892526947954572526992476864016433583168982989067707670499660384276228004535946395156239438508419049071192465336612332671833082304142816463177035156135883414215508735662904885404857570112313366958372013118630466266014816779615133204351742873062362122151695135354643325557536552133581675079309606163346385135573773183823932599800566180344361147679908452654476768260111028022235175576662662830476648844999654177103471959834956651149634850949693632188892141599827828047766405152179296446450625837215027483236626969357504430388205176918755579237704622506122154802715411919565071374052386677763784543962602790154308708525463116906773478064654175939479302726027440202154875486860854497587212855257070161094118606756723631748685412349098465598542873949682606972344205486800347694372375630277746779753023811861178717855622943858425221755720839731572831618501585638086155595490926707848196321393174018130369108236909143652879140059656304394329558261232870180677156565499924888926741178019724552871130384985894577124216287550145073815904811760105927394125604606874849059796364420076960124918525021853338596495067160595652750826446106229942061937413782496683399821221883680296858690374002153659804005920862041406271024970123457543236111604804431391266468182472764414445984957075509432315283051096883639759580404619919223489203652559168796138777574706182976167635459392377420534834288181616216690451173918266722079693967254862297734421177963316513637935932485266894683716346327766278561531099014327628644187230800365738171522534955486118065774684930508835718138145408931434773790615846017210951008860891429767254523342979580531522060624041441731397929557156955243534051438522699461199711687574039275542035224818056257325869275941835362684455037789817124807024939412203880956182334358220384073871002405898552638201601046953663210763240288015088086353549126960586773207780189985752965444883296091880408615177359772217177172593042325442478747196083395842126628078174137056821740739964680935213636553847407550066664176123976082521871123845297006469972211097719428798143517553225573245882902312186347181533395995973490600346455521044826010564914779539891051167094229327564566365269218755490828154295986774548269216441997956293594118601898223713624930963444493605551607087764895934619687684165681272976337472434588164060380773403083041778792234221840593938711779830596977719563836252649772230204034553757888221494150499819077169411017933419357437109724957875138299390649619362374350720339974598764762856910544273992400165638384005565105477813646581758930316454657767761902820044121172132820459394297980459195906012071544147458225442549893083357700626642585749225153001249248707923493140670147319080702741835200312955921357724962097637549768251260418698481053980636436992084362218937319197684741796483432472271037595698591831193695233005899379136514299715524276975997567061486091710087233788238344172071937007639595413205816245779183792327428654375315595271482141031461049704133517603569650378879501096729377451521707843592141150921200340959659360672572950802116509694154501377715936348616512096689188020800323615136454932285681434805023938806477955511415387058811854556104192898025815282180226186640482948079700085240151387992442862938285399917947154319115163346254160785696665622553339795968187260743682844369175075983695523821886694913480385799221103981775928168861075335115796498292392425071037012532607318418860512728822891127025489181952504586503458743625853915229813906201298647394377061631385823275238860164894648521902092344319796097811336569553223616645822640889519964004396310910989016491070049655324031222645633683972433503441458748109445140301613921919092433564082600833146583455470732757809886863630989817329318486806445966374677874570381607125108386691157317118752002547511214024122004713990013239550846634109736636500932799666093522238716852251281280259135744934647721052444659699455684084508518547517668685339281042757030576969294484880065624681338987797308197452945043401959234450803989749906380148204708461368733448390828236012294486430923803901921190083318613777206781577531381032776737696199211602079966859986246713286264742414303186384987012134237490945727760330605554749004468581550901209217228676652134069588816091743675529617475297441252828326570996754334614933710154606415123592203231347668408210907062836448268909053426905343542392665219918719337979674107597603806772533866656487744263609726493914865912126178505511407824858918118045744432964197226704829872064968914057360097244657905824864106420076765833680369970871081448669805197775653446907145637493492487330088606395304573875363430971198983872825864465595672038388405856141452582955511794269354245870091842039093021220608408789581916280899338907982964399827429683312325747632610436234649446410586787851245423259346870639721129392552568289162472227303741776367821979225758865630805306065176282476007949279971987257974730970295004804675680179285915385497317815347699221746351238570428375411136827816132419919393697460186779685904202264601052378408920204078911046174137781662916174036056756014121045312063444771517617352092069499237890259124943111823841835729829045148388958585446414767730550264099633231508767098007144738252707681249396568959887439411044794051168419890276305108940221319042709627971312354491619474776562638921038765196665742792071180082719972829477857368594963836293469407647494487410984026820296940562410150703416654746447811627227414876398873193849073131786385010250225768900278325309451641389235686423232231609542144273156606621442996634135986043145903659627269318776213231836454786993964308769077219873481968925823632535374068502679405609263612171107947712975301844447283227973315250473499625363195753438166622246711206272240000080312484035615309086260332688875008998779906537586357112385305207963393442954776103464057708178106281320568609856955613431098908718827797482500625416498761085486043403611552594977523568973969053587735028793089196369453607487896400180912324840475795673425786516070965417251254165443412389196662291297144367742994657092992383495304066765628568317158893382858374623312116280058891314961182729033210577454456695820277585252403668701508058761456354764403477339643519505252338594344643134115246936360070122736120228888575857282248402547517078525601377637551055850453631239594853406092810857893961061138250690741033284154251511327442407081362041460142420165272084404409558546436662719375838641767578220474331201294630858634909887811913259590511469632612814563166239968634791614483984111777542838047336801977514229037199095594908499878142173025057237367023995193348305326398958895277934306829014508752216726917567234594282866387679300063203828291091169982163447838194799534396883331167540119637898737527753552741057273139712332303134695591884562413022205834464477530713668177642887676857859309764236672108265444355335002343663574142537232879318331631583533430711897859153191209618410247858467845869856780944225928618068313491077906506551426636473997752637034217926766958481791538694906653883741936409999329080344351040929125808600691563821405408594761203586513013680733136856023058190649531809249864242166713032540197206115906977533443600171954674597201040287014487331864017522203817668356489463244573828221777277315829388168267145098448237019375282042434615894442571547732616313138476321858631940498878380324628364393556887963047496532415945541281719192536642951195620390114979162239400532215195724061989625421864225803893802470150791961415825197041767038151667944632952077778121242935524682139703194437273187423353437296610849217124270096692368794431194489241472547163035355935255789179614870532663869735257708819957597335722206734463376134059190997710313553390674614346646475778479707599760116394672345411171959549672762989125864599043954120005258531005578713793684893023384943777957772331511591545853370420860613490506710021303920578690536835801734670791487786916298354842180342129418713753081587734583901770505907897154901729006065814123726395810504490624753706419825191178132224044907478336423472236873273289733788008455018496545352196004320047481429582948277300926034832905075347138605613092570409483241017125126531325171582565803030446694562466434606520929078910946358114105526360104708641984393602274140081444893655450291001728672419328735561017750358921819456532607792677497073277605428802980708814879069675521377024407891879619579758225193049322235697521192673038736482711884059730093483491963369391589294988179049889888778224177885577955414333804620498159428492103204210844986677597276526427056977774531857918623919427156363211214635363331228395921897976578489801585327715573684471568480006928767022489159878948432303624959050312963525797424818733749204647880436668776632712046802967247585758377935071934451552385706504898597526024824654951000294669354001452793148466506855312520576667055551317556432039203535356152294404758598210744222598378966742753410611918101950145072269335300844689512212870826040389841843936778442855285408697121971791780287289622622439218818858956158107954049854282744796255180008843547507672443991757439054067446224303658750070517897117102971757800599452963206171130781414328117753769759654133741564108447139399078794255642280951276204510037790601161998312204640318628091147675180956870282354670103115152194270628079510233376246535971353893907692367193591137970341053379816519023364213629260786373503092405370263286497679010683632840124947309725307626233323072843769941479252488284764456722576180248298180059695820185635189853978791920312027405150698791422571621351642568078183259601785444949438477784643034465621211464872735489911020973149691150114977169504519086493499872302703624735390913436703592082067779758016378173844893601847745319571165315178590089507731067279987869312739206956052947633094603604372148814131812916756392174863147777971071246634420042165701996095617208615545734144082674692984441566310015198964111239880486559827357277180015172867271056276665879979808513360881847538952904561490900546003716873498907241113310561411205903390840012929972692469305457647808821526461136598282290213835606657992269543043980011575661911228464582278284405833230579213661686113566562759580287194858064613683274461630567847142001355096860499915310810920676031664951743075896910891669880979191438869669582688164531629341902580460362007809198556945287029772382938378206171863733027915224046608708904629638472748491048284310229135287799623594356368941368634772681555771841733237105158069365890135846839992862830849413600718369193082835361401288185061349246467759906674553227915226679753769786054824464304494987118088265954929101397881287263821452790374089859988969671261398819846031729042854547488054728420837756193417485517823272970448131631935779279800820415345069387578217703072192049080579012302909930024469498726135132700376532004565164945461977456104266208910291546769027232601120760242653419876891340546225876834894344141324376040995398605709176081782632045512891011207701064163437511983407381425796551885034288495521219196773648467494134169550526157326917433185655976181341676191316507681406562034238526918452814988553498111158897198005305825370204591285664402747096919740844075283995675280340607445840569138225756365715604033635045819792887664237531562645280456639236801034031700244065709204011491157312562055417207617330847706752148575454139798245717525998598234807040249392736640133529495803372529242888741846521565989412676068111535124305793116301891366221200789578344651405952956435472633615127209736180013099711660803186866095158275574169066248933382565462937703555934530503903294262629377479890038190550704226453108731550984811294620510281606885672095581875401135108386872502626260967791544321148818878296792447994429802375686862776613595961533661464559672529034433083032283917656182822959585082079718051017997361191388566222461098770828134938589242462345812339208070881843122810211642274464146408497115132673862284136606612839902821914050225722444713234176106021945244170345235125274945885458350904280341055569168597894700550136642205873448020503643234105160177134388928567682879895080880403459469043326407667218886341999248674539872400565696390866521241421962689072987835896055061699564410754887936755423695183163539860750205690142046507248737999287707898304400617878658483497976156753225251381953709950913374249059110605523422447088536952672452041108705329354322536149314360527597633167341715049452129114895011966270362974285403947391722062137521812991740398443492124380205331990688933819703300316858187185570344712911819526797571420250475597513057977031913936175253727854555210496717681521980358147628701303825734857333957934573895588126103761953699656266936479193479676901962309734183834314218667000735883061800012388292257932520933353110596229798731281271724126677934706885229901348330482786529052720475616116386711383571941083732908326408791088941885917687289295333074839209229339463488205141503472047486455045426201219247961406729603634220174554368948867087608122761913620018183224166468264379369392363285470365263568899959178293356725969805007575112209717548921176330046833048275880195326628777623000753183605649057566402985452203087585682510884505313180372427596822401572039074785697063989520549495122347812329942910932790089073533191117986113106933307774994548127562369385275013252440348321893408168525170767263257807524876502677700335905673600128693933635665072020332794368600382986175609274478322656884778405160176590242013448843836343512045077224469277502673415829269126480032690027056296602754422794975044800217974789139042970775130318454620641936347586354968883956495050232222028420797923265299926515973993342168543140275665587386108151951869617760926571149636579688803294479222593081664267241471806372120446522287003285822962515990287651569951720947891590370415348164486015594146773552673863021969046163091065279597685929733478006970073568260922216932594271890430423522786317930631326137497117493635037392143183943537251340197377649973561430793110341895130982452282993026341314532797485384989663604852837641800100343911842227914071283423818577547913960154131980280784534530718858077139451379490207082002709620069864759611236952931746253742118817451109814178990962341682611048767733939431520050521846941100538012611087704144479128669457213586269552720199660988252897574232838428173372040694241814880900050465184794778877470475841696086880304364774295690826493310858828110868914274541604636323521942709732584225170396698622339041952668324644981912234540653047448735356198093439087393855559768344224396086166102167121730591407927803742028604848095609192327148825908829066564953121858691568144048723907294629667668833930999092389047040181759617892920678544326527969080257850938429600906238721273945593492677996101476281735968208150929419422332117083845493853358037414439900279578731214849070619758606281997489745568544312355695962777989696043255476237258328073232399609273758325164685085503434043780122951415308746851438533696551084252566441518585071304596217256702945969942610463795174305601974860288997896866249018289878075632486762075233271940174439053207424662400980550215349859503946681202489422788744436249676390176658037736505082049486285094478451365604156091096055186523141439597952252210309110431704114757534049088028864814861491312199729688599444419393312801401371147192783982016150640969424455458942953946089760080132237066880928358527718023176315846899016828397338495655859812593651526912776642182574764849283097551844736375398884680218339068963673832982769126461583944983605772168916156279324533108118740745116790430216972349137318794381536194729281216116503038298219346871146539693127427574977855045382864458293459422984894282413184816708727221325549606508319153971311317672702557694816358194462414414694167802618830946597825748760030854123685101268800711068611472468910726440380329349707765491605794265993059421825503958814359704044313319907637194271068299154065682788592277632993990467900861378745666416300891640611925692651598636338819440828403553523474157823948344021413852447559299326464853392194441903108072265670983834411462462308962877915906534467698214688107715406310585621538833944535720950121740350018418762440175756998632792750102829693281193905373119091316960652437955274076915220024780293040726542889052754915242277209351808395210463933820162244113583930273975934405394087988859090876490454634728163948269566245632429114511501821760266337033856804718252856734748837847314292080229589146509704151064306753006026611422156874860696397662646688741962246817091322015554358899186439725820751392883011869948303593095426996587097459151422864153941974440522636810403406673399633250220036519571578298001881608191548126881070879539638980894034869705451941516145534032374215314292170622297205663123974684616324601506406713650599161951490263041651414449221616854186013209222858272091610284986662058728928204523220210773555519098396344236625526216425667162718348218287987098804650124828701015770394848098288075011909531506059800308844756081570677977032134340197604294652108713287618523266588149824618119588535447040980631811659847661893115772706003153994951588171117975168797875624652121462628903805873242357398376359031999232077027246714087782221162234736402631226888941689313795331553783905122488168374009138368357841484836573568880130722937928692349212139825535667899386238049013826953096574573823969502767969535425455691770330043740650118421226857472650901348037884924645521487867704600240849180701154944543775251967327411491625454937704114322730521291608156969062460828289187744588671733599025174779764611233457961687212055383097848478895034038167138403773953745005098305014235255723802147351731503063240342616678897288673169741146302418507503588238925187103048875407076349709108863793800193255831684163590113307933127126952676378151060819972517478871031034250808342184495126907661455585434648272894669183229254526838704738852724405964584930041342681538906192906172103766392471811604779822545756454426633022919738991622249361475783372116552874979259767898585426065863294594275322280468357904899701029945119522986034773251809159441115578202192462052870473326391683369371021434413151712128625777776507462020381039267079182527634052404789469226893517172310264531039497278447746349447896328713548644500441046070503121558411093325567688292785453917565817309236583245332427885209928699186439677397355178820711684828809216003460956915918864217612453707601382071250907593459105500240403195047267465514818978017779493601972707050633154226938435382612056726689890588739123631826335515550603860728934205759049663733654914952036383761031086393613871530280265813858059289710104001084876002998692919854803027982156361725519202383681235482218982203815441800088797525259979919192955998901734999231772636055589828227319602996420682492880178660302655751016654553958556169990007232366073377931237140200590055762146037066604028468242930004509649768771304218385220181287177287251972698212629584211666242069410264723864363748154408522254566501846272227437406422071215969295462369847415076296346848897374513879970720391615846750187255952006967813927924638514855719970435772057167950170556736219962774405589461534253737852995199296868699597445086207167646295731217029409348149769096224324348099495723660347125319299012019462119976929439096316783414087069287010209488167185227494287051286316831049643629182116248548813572119551022344514681692072719143045431113606409198721031429460594181571737203083114368082115656550736455095883668192068150106096207858919950092743530756142227702815803986695264825000750611157154587662594045429376389324369530519977011909480555013639834782508216982614746180161240861183889268791055586580601781693166637610763970291924936996920106148886784309708052792118252383766347879580035366270513534808948085992994517787598066013463089069851785059546552868958320799398595317401712152392738299332155904318674706962023752979947046512513070473646161546071840581117155188234813940968738442074411485016184389476392017000840934751042044588170006655092195700128794854178399594306207384935119345760522698041857313963203195773371228053071865722213060873360636511290423193614426870271015441293376057620708463941426849899629067309560625627444488029447658846695061519885723274919925732138425748493285453082134640394579007000744825080938763668517174328448292640649840571297909065878160588316932663022624446536013661678747071507637892626521820847781141235102809716966000149541091185578799219760630263508383378467075754827754376547309314856596769292709279282059976499486505441708564307737370132813519181515195649291508812878790194054245412970136093504116649059753010244424512962964826091212445118885758519955987011820268909792564050341554167859119826494563806997563002663932160821885754580163161972315988985437817348030311960509598272849688451874369968045545019314985004480276929657186053930093959644375690580279674296553012382551409852375344252923432516309010723337665367101610252546757428119882238811954688785321256311125444720269814609933711544881267634059426466455523826621969486111484651994699797768181703633108606578989304675839072735464761245193445945414766820646430918526956180968239679933129158488047974267426719897912871290459860973850526534304185418297031984711962388238119302080796079431227181805559123559745304392616711919776389496283292056144731235081436615540001524596825680234004876833678103393195896306052216533739942983869150104631784694716004386281388273084008457238524722162401213280848569813182063686670694809912950041854756182349704928926526865680961979083278408718851537441433566236632229413474717433743667084859996349046462191760560490785751533483277428692381487224204871342787932410603453187899433738744056710880200041257158680568417089230715324784363572614223385220049041479184823313137375557205816542082358084119234464746735239462611805197885682051705039446659266763461442209775505327352275806258466522816266204181019867511584867306773753676730705893008972612518690660592857403343408143108689746121679347144054290039141678693305403307464299997422449187323321010569077790480623833619827178807591591510193651112185878369193729750828485328501264839449587613851128682407372559906286452680443631016859090762459107483687590482686013669724510809983102938869910125797169062667151553978576869664266069737153172707063357950420605451129091966668975402354777995756255528481533505682489741095074921386634789527359521468403614537781149571929943366965930099176913882931573677896973549637317400425534655429900681326083719987893567109095496379239673396300498783117941937833180171556214606845762907776383290781024943464312336420956593480583012299798125686493366743380207689739715389169711727585674620317006511532389848174494716594119217590129656696109829583599248515447681514513322126655916370038058074121175554517025221244878377899669000120022407773459943559208776147736144829135194312869228006136513067610650915968779553598326781757596207325712713306201271989414804513314057588507643712168833686067345675435888261385820018581255965201948007539295786944139473279879852400459747754435490993987639375728414750303630103199694230326486589125620575000774897471215889697410257469666332864081013818794477721783507457404772432392978865209334422783605028347834904487557769328733074803316772566522162966097596273115148273090552918775062562550829819564332212879665753762830488255752504198406411974745651222354671267615186607288378306339664937943981685231137988934168208529151599329494415099758714932047083895219443134086499000353044571578498185726330643706559379599753246233410141858935651070273484675125346947428084551309018860567331789734836094637474124280266084511944314872855145709431158159176316278240241337279684470228853069861478487203211497690560490928685255413416504800835010034910620189610500892962623084477701131807759938223775199191723761566788889216165165074316455783499044913115574679399072370802499919307658328392657486726840485286890277870743730614691530637114234148022728074993493587580029097772657973846608410135427622925284223819442596283771781727652076864188521781349112567621254345614932556575156213274404873696099751919273623323516007582416381003493825012127866794978450480050841518131347411258354009032038624324157960615096983302593580856804166770626572415035979200916791261267368569224486956040743279572297847005068127923244984218236895082553055781995860984380256562788457940721135898997589555921510653477776457259618689347001236059528679636537863642426091044694356266707265475274752936630450312904085142936300986415575342870242034229672663883070616261764808187842189724207533734430178336259885949868730802533737197704423133340696074689011967692017874358764972531158322053206928881061487527280383865997198554654810065812723592673335911783400759732676580315606676062273071683850048263183475716526059794813596033901383772192237492440706132473577750012355997060095454060693474055909885202381041206439494080830665177617510655156531008206283128219386662344455906024488509908635482855902454121975501441234477625177240699477244274935796997422025517681780003534276122661517238814083687575160947590459685942656201888475689407076160130216784826859342859996576028242493723839723994431376692241914015046762242477648568322438756688090241915868520029569097252754876069332425719276013999798154862273960539664428566065555456858164963555667159994989223051834870727752426412303974197595488211301389525104623876006273564100878000268419746973640547101619628002307370606122097609067999769000182071526409847001357772992280776889712102350548746770545110412916455433570467484263609941246786953679118847275234048743360150445343200798318871974074339668235014733202257954111418462206359315298568191940938769337539836622139768182157095994154341139424407498846967872810367634774573730541066330535565456894330574347578933423614437341281006204176245641670671834097496580255054437710057882359106304289640331618358687042989348827739575885797268997466911562860977588538176332619527632504653573761473105694282485233361348226353103817526276213984628111357082357240761845717320586574337593043463754025548012219434449835593327304656705944274051396935194080490082595008789019325998187881922874685731087949619295400970705224045024999656926191237395981398848883835851807568960361201647908987181010975220131753158114374143868678271359884125668568658238338444222941932656330202254836389891699634851212511749087650081569524974779360826430407849898042014224614305606130417079228903984110571010831018408498248459680042864840966687408406809243457055344091749965678022549467557803355941640776704864237554793880405252461346311980214078047013652459186580733602213665077007016624968623234150504128511700830489600394011235315693904164086771453985917257583692222460382466997968224327963696218090170751235680475819498061088131439380223358363732648013731972030811870743650554822437940980957845672855337098733990939453815272320785984868227230502645131298841671544702074886107337846770878161676180947408447407753906744871287691500706491491323555782234406452440552859272485559703429371323141115270210720661350935293617580661720056947461698455424061965222699459551577188816932682057428980786024931844927072866890906393586108760080391313032771852392463233889965134812587893962378076339691528948837057235146178199185670468984825746096192960260311331521468934299087761440909665383482390402469755421476683288352757345563698931143685365228010305392183330180046187002971758864283482614059690446030862598113080792681086686493426552669583038122903482057798912765045175296679986803142356984288408838165132828773885048579738581896449985979724574990321764368624870422486492653713275102435451837847595413582984369870553847623746461697081336146107295930016535130503387259490675915572980237171121770234776611174849414244157231017187985613598208952353936814759022706774539555645412080830739371976760127392433528374604664579542687869302180340688182019962290958038269004776508212297531515437954819938808352384624412923465567772930255148224370830189592376049704130906732739776889945320703263410973631053877818332190608927108617787772874035220782290820680321282463243045081684128928338461760435709852068388157745375604593272825078970920292707081346373429191378807443435794997574145269081329135980012188452467615232009050152737717905135136113852582452147293026709021769433206057235721892795223022061580403336185576990477102824564858241966261895382251643846947237323691864298788617318663658933765262358169434153627886101563679851641337710145863042704301547213647842306636124580609888406149527568306031966803998468241873929022171231736653210823410653630976874744546212151806828974403976195866197481944384793122082827165826042406931914070314842637247318614437453723213012730780856406525977290877761050984357182690384303390247045216635707205340743088946526286832878562081047764472602552832100112054931321892351857216213305978397200051810022273123886200004823929187812913299783800823504455994745466894691434838297880736542604217163496423029087382048526212546356498266462810577796284747797914979431449597031317011419919435212938303093082985030536625747735278990579281714344505304826710757237561719175084503967838640764266376194234802027548405637320879087355471632431204124635763967734472621475305338080642736780233299252955202378133531028391799384263599640635624845407623288782108735167278992651052065558582219922385379739082205515244705543996596253499593598342649736410604072187739586480929129387057285245862530646339386305062068983057176846940869099372691230837274343321813818291671828731124634107371398005202923371888646214852776585855687381838120133394550329030241393046513280847432717158619499898845945769657080136938311254757995655372128698288880129031757104543083379081649812646122446002227156345508600028720279578718716572339601066394498563960980375455842317749224062903106792851980867947466660401476485436289627716892845595187038364795314136030903690761958818592041484966818064412203666950729253352011351999628862954350918108335093353871698599418201331981789536547349555642640127705653584243070521353984152309124866833924560911051049158334899526649277074761967436313007743979358826056561685641674916420758099871969306015505860406571831044259304172658251550158805467334708609094661348154812480861641776171421616758924258979891844814080801141812155533140587419769468186220855286292987387004755020700986100738578630625643249634686613761719960279966220828036448708944996827045214078339681929621929057267490874509908250139639546473622738506412072943657428517903944017124433142295279785865470433427289409623513505911439806990293768256671294123056362659731154893429947435606744028815691565545599293663340010320616028480239166481521154812586335358333765230757339843115852104130372777782729840019746063697742191372661711824920758692290007473317738420034408415682216062918161782276072600503565610532605343929281518295017453716089550775422608728292183724648709673955356130612646862774374487639552953494800045672174182780824310125361191987370413017389779818977424640965024834281761604824575396222789255860710348664371668685701389824329093043345708512933007657317554701758625369416700711528554119490926615828197304776317819508358380811073053578360981381515838548073372808692637295865367362150574373985823359612909852544188809926664664749655996386364043901663195798387500802438897847063909864782311168514960459571513817870242629177039413241127583474808157341474519163965946665771535793239390691348666006776857110908557115361755819789910257540812034450390590484171607573084418939618010632287380294618149261123048989626964119411151818029511901408582589427993504766946045484240279686466690813158629280225970631950865472912986173531178448299767686693152991055411959888918515730804895688538171279347084318053744842344193475648044428298884803743937930078551041778597353972050111080964460748176592459150338091682699804290363975654748660614064649605924295425724074189188707615127816195885212186772213599651754489106664762837664104082048091593296382871358948976877741885347198014287581465397425781155329753822846173218101660720941245865600978453590458876926318959310617032501093993465978543084640288724930285101532929933984565603922477075876403306728970943034524769468726335964770853260927147471320545948620971669577591215757207541695884641636612169837194447062687981792218834575621001062927006793217792961932996279817893314356432403284223171504235166137287631769013145312385684603635290478703728695469913366286183810057242712075210892497424041455683490934832944575016475276040904226450124352811283933379432928847090675032786080800095114081956829955585984825870711419782652813301070002274822052269779744665301988501672263918044384782556396877910297569695964050339648616930562663474743113191518618459130818978783894928076022363251492198481206447061363550197723217011166310228225184476235038184416125809686748752432510803360274845792894017735419092919401419699277776485083837330500616502746203645478755402928648028040398240542257820590220940411378183513683738938325120789263565555578923611680451732248999273559549007915184890497051446258400892098314318085004715322445616924371886884790952796813249070171526494297310062924030111546702294658839732966823188926520979120776588582967555997812011007529923205324193731505913602359877820438767235986824848062738791755105423008581562428915718172214456914492602140729307695214324394962819727895178028493317236098673622069508454975755241889289337075542560265536037841878276837625116314947258496898066235814901426540465861320322069265227623443156174989717120266838905754705393445418645788291049797816804510872577934526248632310505344217150570001996167345545953809081005622222700748041108220606421432443676906303576790158606160082751979720981792277267567470084665434979979902524877124757582474555477183532405480566724369687588229623443745718945865719947192002565572883521627074797407808809838683322019177393071129199404398595267191655377862171731461045104832037999570967888290636121955717530499254171858559436467684764484973639514171392609452162616624965894177919580684722322205197544328038025039668315643995258842850017384093494909558469188647163330395941430435712584808208067253298834119033286985088584167581467116637357470490940553006208334438356807053937482512135802851427841509006703864188268496232794524462494612120180059756112668599207719083062594428006808942971119251347729339320608834274678199869909288151000581943250491023554412989023605287319160480583980189198349535381259057510269940155606770311200692277564893112102941225377774269633997627859613341509497732926892581408011175769196199580582254485069238285003866884860183524691440452490591039979701060119638900161224574068026405690944477134221611235918516618293617719795624239885545864784833003245848174369602300890412717273210870035931897477766196056377003856697935045676387438096237110613289587273213738727816341791610404530764425311859659796608328111980456702243451623120375089765144508792136970199984372616726225478453090075835308837133673751702937491393155770586880908343677451685582525697146899974854912972992152797999717715377360677242347805301290413809426912128657727554233849396168071857837646260563138642396023717504587574186124764539016123399700204098489757853916773893021860234953143363919238963192884732817333956457008845721404197739849482200604845362287388728587714691597299833609789465816275398362302512029097208098129318019628778444911478439542842271551031031122409895779428983869713272525226615917856094318725360283655058343736324679573162394404830904923817927007259970413408186000730650596547429402459012159072879814376858633604664593739024577117696594017079083722199074430127847607216324612834982161973752700081020785169361258378403129442757246800559494683068697433567706283634208835818691318654645854875181804301464980061737976980645969937805803188759129511626162437700076026340592053869487179604544292015106133302489061318882948606858812714185640568027586119142422050527623377713335736689127985206477926294043384340194885119061002366257388267065010006895875292274688323327883973040374024080297045309282888507921345745043289232277961747334883318921172836078524676125092004472868991604230049183450435282658320872241204581767714692377046114012450639044152042133992658688179547573424325726753498746513045329815298158528537364753420903681340041058165717424495898423594696689179950396713258375173563975831840456460104262892150861010287340746667957157783224587991500047196623890788716371882897822512767990504763583387821013818847197387696767817635359871751980987398316148320334826843922490398029073185876448226619016019207704143230114431448114812914035394176114965788530652060698952828397817820378919783248261625372963364273769591895412158488185275870982239406852765258064756714751764040394874257968782729767079100911575716710947190712841629567888728628991872827223081555333546401397592365904192633034541826400596537255638820256878186294792273566824922516888485742794884392066399631606406886389020244742900495059942616359540526771220716006431848244233083166886131740369081538530363610069628376087724120814510028010084776180721736815068601643184366904798015050703493004177372269309845359219753233349007139720892992802778782032513556340684142345926622921735680208147471237559090354141897634674582055901972929237627026665216767651241685090748774631143525370771443059813870769863561681588851728082091246996470326718469517579249391892491465662289956463320080995500669173233607014559351087110909628440708160483278442660411222096284308350797836899548762321909404407324942467586143347520374325107343171007034235959714979211394961389144646669559434162524582958094584295454804165776335204833097045854482165968635600526971361162805612557708233600475204101845519785453599387930540000349720389263567583592751111381570335675533353745708597549867384602507452320899196179169695286522476141459869492752311242531692597777206190661547055441406585743770133252589472888518435244595802429367115102217856523432759664726366195305710675561929078636343079042243167869765812040192420227334115080383443842465831002465357324342007673593826681082444123431670615554405881502160797138959724312559266921302920399071256712166011904514158130845301670477594221075270534625890438434107266457513654428734471226810958655767688612241945334816029896212553039870310940989174662834864510527882200448889846218413141018423247381489023287236580373292386984774695997108247591230908793744948589191713804958203250402813939793740442934774028257416183979355762380564001243173573910351177851914807542031529967503504361021580042672554522914230979927266655064760975760144418185264027305818440662842688409686218514629215001443140269801959528600641036057983096915334438963368145474385787323687127717074665264868583140017168605339580305835148155266250863203856832783237556138691342661249832800716167638703490779140896806514219109294815861798156108417406764788213031954103911603293206169600261481579085872149271823292181783203213378824472939128491641253493101555906079285262423455982353906903640933819198368536522269054929657249395200318516576489017170348661189515363453991766716850424141667439332812786186330457029844638387983652297317770224974406151856895702992141873097919291099974990392815399919691353966723317424874499579977006696793596293417424372682042775064041510711669065674184924431542104202569064123054319325154773453133379383274572433350145616924105295756809712349182362138025578618157179923088705604243412410174048209630043852641978614463007732230874957858245775723709847098547176146898019731649664508357743542242684206511625642301206621920668541811989006974514317215715757474121579311338276771807640148794380962300889809482361670978529973420673874867117412770300051311538138867849583215400313474052727272833036550490044320855739483744622744125039051246619026260839728999189024190911627218088632742851579278902687503618632332812036189844334567103427337799018279521385392831387432601531105633687640844314327354439561786099982671908950125180672281263565713675179571927470458294613443786053142616425921092294498641655031017509448607963456371295711940582497970626159792266282830403668767134047966778679241218371794746428676336748527415515261426765281440983988636355008678515704747580224591950270468431509197148020029797259701312956699441861418749155037712199162251210943753811820909295695573752015541075613157864432116914695358010103617509862354001095326630057199390428989516300314413041961286084794155689598205724076098822362460377508180384019236022163093997925286110780623110581890484281293425379836868430739939461840537801972485388744612413936462801630161655439562251015029102611417381859112702221661933299332421639522703974729851386179605589505197141635814945257350780532446564256599497589529143172412884799239420178005206125213907936508365498753341996267960719951619845780846100755082846914219364543475460692745612422153520988861421899936638714950259537023107813071563529504232657162903445247078896947268867688876742359786891899918000374310313759263974609345396280343647398661991835903465405634794072112960215204248051034932255228052439096661551581153272821433585690576523602804515689808189819024981036684450347378722803767700678650173982985762573221809840464062667550712950660223436299158056556836693403418933802872191257303553540372238514303845362307534650243780139787399572390992499119674048824203305936752956197870605116925676793999148608051288006201677997973955568488744767506426241186412001453299988538501082860792208867030435672330560108518090706441436477312607745848179291402359460564613371525928081860255542558022436177484339289411607908340881902771242867545212608364646856587482876382988701097068958489198538257940383566209890289374909779256081660158983291353446481783822024107538183759180813682826873149616935945074762402303240632818865822660798568207505617813125109562732503135125191512365285355194671283038827533227156204988353636903529464561165633698065761699849439746632195109267119641705874833952442500311758026980348307516910822513808228194952050658944026934151044106835586376336854797221280600584484427223715780072991036503662060352636539266638722417303286995204738569941518173650365331704707392056520377891609475774094770042207811675745685902872771179460978776695607132284573650888634996401780579625479592640543368800163136108863515678187490557804237769494399532908545322172301511322602285907281310248921387741295607006152588289408711603811647559121010190663449041695139545492189939882488072332625905898775309685134927654410086503382705016976334041511573246995335481060716890731050053192678720810598147752657637898214568656718368098454857317757205898081471654778641921120712382683800258425813355050931562695682847450765992246791064795339075626116453254574671825860873746040468532668233908745250619486214285091882202042737629616855441191333442985200958789089666672738009783966986596517676575026958169976178916605546534937523150942908302916619063782929737528082581749758913788220884831034267873112738687994285599715841639739812738326892259762652775449241207606183251408782015085643147329215873125367192054212696551011800869588498127567144431175890176786216116326024164880237396007729178335627682736064829814338562390315965077620673002138426112069375003444521599157311085751158748013911346721438360593769501069081570839322670081055902023456283463484741870463005950821255801626692909686649232828040016028863722000883510257641806728254592469208237366794050579196506908391372134906477436480574402661000996419067890313840274187729620673098386405109357661830284586602438893587183433080881803319956887726423461858431966641708933973102940643178149496299138444345836387110731052366462302280697121789540279859728102238542486498137195887731495092798716940960945030894955444565095884424283785011185184114869301068096235141648941813606514269641567450669540706105095006739200305170550460822930029390454514004549606672808606819765567047211090386579265093677787384736624398060159956935420026295401417344767535401511917739398080838108718181341983358581049315861167526002867819431963671902357109968374654847117561624954689556567113068649147655171640189792981442073178903046301948147173651819344925560723114012003494982864936959476673142902443446891515236306530337084166993983838182065446392151574533795863077111535117918142805916548866759923760619353812621564848596008041550755952656925950201322290567366637457535294033692561083872618954583868313150546406814679479861691984796306983885119398620661243227864383488368473227953468267589180018629957074659903479760961294659943078432673442319518488377169288269580770657555929939172490517132093998364666972448928829570300351029970448987389728598357407896366955808351074985791614284499509792721373247263266864294563252331648795183652530129097408976824479748399391098452400518994483805038615464195414982965075539713249649898363494876370408452067124737241248486370563003383323138095234331200199902963073795478884602582715257260978987411754595749101766923806990271186666428997657724612144969658548066885806887121136853877726523935844331093703345340566443361096195544725495543627043020299956750707153301899715063360813561612889132270120626350243750281648917111810476834489826227655797684970968189075134483518375703096899016675851296378282032602673001515303524070498635452881609596747168081646793654025950306222826525496402050649150754077952377016734347825384135275804677463917943418934518859105058616561871750031335794147102075612902574823621850499978575628129747421867627824290016808636542569051203201307887247062522173745858246147756236059180000614257216980257356044032098058226066931707305938298094406341124663733929018175595641861062781281348137599226205381052588154639218691209021029379941421744870179124529882078601991163849101287419783447300667226772835193578934862742541385163558559266471460375327850791166787048346492786146213213490381269121660056670290386954933685827285174960197631117671874712331738592587886662017349843422104785345372347452125607345030824323833718689231820508906481492540260521210403420413401075568720478838908186521406533348540813575926240739615313177192455315533376630521530260084871995516519678203814639860927128767416730558486860842825897712425193658171464811991647807477423117312617765136637704780000550224697577631972804660611543386744946469753586581266274944755438232023080060706202108099502530605402153680301181773414465921928282048378715398274456413466161090942449235097665823643496078637844796429631146994079213267704019363649798659334354554740099656188911879932614982108766115106317622284526057858016247009874345809211321292240434592014838886609058766946875505031603281011142427995849569008507621484705566804672599268086883901612299086267707724163420663543822988823783212692319613989894652358500925845102930141299665275975055560766089269017992018720627775865491873476061959378707282959471532527861256287374081346876185193549776946310259550519814314759377828268121719164965253458618041385456220978746130551091067228856379132494120379060053274120572466727344669967250610561312361809335552933113533823033120966310641994262332295558663451219134747762361762954984398890305068432176234668362883279574767831396703904306492058751471323050470880286145527933257385439080377260803364126503901519032891533615886643197983120430365954561848272222719744894350601352242615414264664617764366842104181804057395297730650895896971756620451016603092375730128670842536598781808624879787001868334837554550781013577683108180512468882764570983468126627017440673736673408872361582492976208668989683767841878035136218248070147102171030247197025585712886594253672569614755503900528278313715225782223579897610319330395041223973928735168548755879762577329736067054529123707133632400637719477751381460969802603403774007910692568082542130403302719968672936163978372108789675800953634981201443846318738592132744741132437570947782417158753383974882327433383167674602692510253525495745809911312494284310728387399211620912829819524851565018665215526463046678741199077170670711867474447756262483911606580765738289368173014072820533593652334601702729299350469446394341163292735878549000975334174140664362390993576634567940429427269054535251295738355172215339920567314300334981725395087201836162721231793627653230228511784863911802587733689426673882110630412872839555535512952349116817279840792215657352627054796283042863908482839555759746636414968644795753013545934591993781509928692351085909709288658456191843661126481705720513224900981577259903983824440756320973806502370174555543041254549176286916131170530403113521238434312270847686392124816694334725666525839576170008502394005870253948625779598348307040346058931854767698207259704485426918922599800346722642324501884633360820416644723923997742413394724794425140685782206754962617037519947142068877462478841503674948388860855039564203586922322907369582389645414639009217269899929187744668055810192137140022849114228410393877847594127270849637397655722440024660623134416511016626511654092507849920935225207492140596346356146967668796619139410692198008807748871950378948555616765022767843212171077829988270204274875348079738807983883196305998469226472895280360964816516016846759035821950045308088604222665452930550859617854097341577207200808549787957519235122731464576504410789054539366052580129083752645871331774823304940016209817006650817932995968004134981207212737512980122224917687924336128280443850009186451488381825762689670449409567027885085131357057011320848319792877811765969289461449372511629809305667578388242740185947503054026739439690830800028573614767594747485234278241706366535797875225515817060452645326139486146327040844244415214137155386209773394367931049906123064488350425165467518654691749890263572229319292886036878839330850803952963764276764821566083164930942175493100501523110418314887971343890688037078106302972905133530548729344820710276155474491388481949900344996282642978892626032984628780019338951449404607896137460902043517701507716426436148698311296830529086837743169993817242093646665330964582038407714515231942517230645623142837795108175277855072606818736536800025092866622841466620436805353239373904361090912801454589567024397739373298277303018226879057241307358276450555654387483927851935740947756178705152750118173980850228219799680777248464806132803238800980259376269947386006777122669586122569841305273574811826656713810715058402651089546721071423330889959290315127216860250636543334749413039231368162662063144447177941265702673838861638236623556335685420782590136766044627603688323440907992171665638540866699687799649378331812756212756181344572229287493520552058345384887657526541904590312412653657439569757718420783337863871025387754765559347047687482646840790069158021342528993428428515264785590396595322050859570154763580262610332259871346884819931850141787084041842927557881120643344532748785158691773460361164644157576615399084065929045281140384583341339935854413169850730759764143567114386531268925482167513650890732181347444553402759410764822361581444503080030657718209454607568735559889414575228608205196255700771272701046601316452875263263055237002578567284282147253528713668305452852066442532045612921734863035309852215214131227746573415748506859841639377483380723344786265717041984828306017439480392792356961503981718508242656286730223559849088616623818013494141163035890885081810698643613433350840774479074950649321916558074117214040040738213562616590450174249697855519874202700566295308428725741933155650761808270050787721706632067858066748541494639811495918416108140753603075178575810176618195392536063429329058088664284399110209677427579447086622220322486939847580324434235288145044964573721219938031509885865519804434511395377148567420245544084607821499640779635328448346020107786937918664510934328725717579002302321349817840279598394733193699257074810207351482793544736926560586278938600758049114979667482943050489642501240154665329390042785919382416176642918487000248346590133242493923871058696208555033330138918991906958247273478393720346530981538081532915055803139036339792162588009256769063223396392401728193113953557710088306522217463249172780515563649968144156038194725394860156245806491028270637707828404019511076158401444282419638967969279112770935720565566620792648793957334675142681575500360759453192047757039038814496385231297898086929554278444247478705728194704900388525442736924467097918688107305387310689530447258583324741280615711268240414472948240433509854567714270768320489804141695592707315014434168113975882803758211807191522474521502506653717246345080802594804888969100275377471263622488506879884760983178197680459835879025932566555226297323654862914789340735770248345627633537719029023890972366298083803210813876300538005774950740655971331975251318991059050493538825519962000827030876660911940377407150523630557501908048921469089302880884352880746147779359851034961771539814061531182641711555206962237080415997220838733540325708129394951790971180323163406995539995807692674509985608836406711791975268418451039770750227177193420251322095330858609173694426196448952540294139432894986412616292486128934112428845352227844798319324780425069043933882199637461085591156314054038134960194842106409317820864085525756721103359227751976063834931221546767121625359739437488470519662983236498984312831332554780466420027094283307098467858509136581214371714103326536991489904805901083944525513627050286106820613325071289496603461116982597956890034064477089140268069363240350445961199356023663231952020705522263637817383746207124711690917253515952628115885682450832864129071904116845096400062336101671305414737163508192265923701465571399644786018009644430153405353563202977101457637251233163320721896186082641297984587770282290201530852788213573155497553035714529584019129572726248045456056795429157552508385145010082642512773017665337377174834449403439021377472095233876169710847817750009935284529321990114985968602815553336363211553847193790939804077620084000265243212489036329550827433303517750515467576664292252723652764568854535526442059254108350947383787303931362316153034985315049629128137862161079398269731574121198539193212702294537942763821368528988680079727299462479051686428170634708443287463121883206336916766434603507837200180129232897244825765251519525009684517305074605756028228391415051836727594496952023491558591280606187356626040486872926322496498619453251519070022450284103057307727462875717975493589544618769173242866971567971264684444557396478611875903587176624053569922636070986996744247724064697959014803460676931875806757752383271028277312533931174733842225802473835455507075801592802557943458926692832110261298122553723457833764525995399097532127205964812864859722405432260713368126406820113835379796930296583439655621354921452064612201604524020012763486065919236497632146230372614656354196482057125399959444308106143762252503116143942892166203976627192734214209536278675962243135212961305037734587195866117560651133971054727000470726871810876326488437150154039908692620619652292256348991741858684545650643721606361161040091592051120990710991755746636767996690310664528175216504798398996305334453747309638053989515429977013261680002498054240244666728829471493766014851865411049900404653914956274250705912921462542004849074348478107688611757113645771322743355396454106848401482491528883987695501484350955287505648088513012803784125277870397981577445751068169467803780455857905748059530314429559730845953009973379048879394882671104903057899864190193648287115894904376168015013776293885292387957166257100670217022432569545728800398582144259249672043147994895613656613237595327564432370884521214544969657803612181402194676666645062428678010578135678104394696525892987631216876554210406643713077992002175407220665663926094265291502014579383822998115885024309064897546208309738023853219413777370610536453857897049328320832744198846832720559447397311431163049568122506779148513658565988420244108711455628128955825848603504965929778136757961187533928810793137907008464083689617634450054135724468451852455792084828220502153649475480074177639065069627035205065515369401330859102575764251812792107862635629140510287876002293659927192720093356766635636412829111998831799301536140624974254137897615350708336777515700205984988109705116847348753657346787098019889559947391665917955791701662691780889783676464611771903869917812476391220979094153800153860589902433250537979385269507454476763817057812566117134839588296834959377219950717465327844917737851366939653496353770071725978526200318603178418160717113136604236705304623843937087491588429597880350717697054512986289623267541406486726748201824259795070097489020801934035725504536669635910676184958913760210275327315453564514748357253838783748532263667144584319592965542805737199551768981598778110270359476431196359005286478943289428063905629777904218384432892479311535876661666331015742128485654142448138790750507284353747632365491245632515046230298172895286161010569393782470151346717851878742202125675649429458107557748993553010732202117726058352346617272532816427629576815169728897838121774523662437224328772775275576567213932340750004726046590994080462014327203468196270032732578604740129204305803235329201658058134028571625038347396479473507427246864462274179063658766603579061776705077612980661935829915404050626558993710115153336716126541762429823869038871870931396569586330503672171289744374137975195169591015554345736465251841841218302318251994993724264807857893400041196075700421503082802518374578472696227240711309345903497552143208568683573414471584365110485817339567967120452354701611587558860255774866171554023690401642378264951429476352754607313735099600786334275075711113529909867328734919800250125045386233880066485319286992666026215640610956731075215201492051198956059424168214824373223417427024644503946418097897438873490162860409800116062237865533303153455475064309242431430324910179119822478066216362527860426259379779690977326621820158880956075583057664487874388942093090144727339169057813427508640944716248780556649114288866915937159377924350985197969391358950449247840159497735920008671510255179691382384778271221261931195074199214026278459738181420017566344002011888926223141927355352024291458815589599830803050550533230618653989609903962804330759984123858103603721263414529321035175539937411677369325423605787196847101060161543095620151699295070995164256029267757562112514849629442530088373977801665678747599695596067724693174724290890532634334041143264152736396218800224170060819442578644776748739524632350269530021572429414652655544587179279474453353662868664911471396424289709789232508039975088889865041677984628315860717381990123804619216298494222963763000029018981730017823222432805445815464602747505171901028345871585313479041212688077013254142249683529081455713119256410548122107061909462658374163068508045620296411610500740677844951858259276611528021954760190305899991748658601846104451008738083603353895062527757361726446315770193164734052009331572371808455316256497453921716194344550407692007937332091269944248721058350226431306517976404621318508519560636570914775738318447898828601207624571859667876708764005042258479330329334075639651300244534387760043711649662439153893225084907103503998994613908446183975677078360100840761457902678342123649306454045265938344663328611640528953826681139946374519406667705517663494787922738533150965049351019834726106997870599184080573681691175943746489291354341900761734755164749198989904602860313883639816367473792438882362977298174406319195280536608424757318566403302797936437523274900646690818491388854325029539906342878017785812115547102156058194174766699634187192077651915424776094870864539573620687444691368365957332869429458031287722846888705663453098300059113110810964584235817693468389363170930398836692005146898533795403592009869537576410592984451932709567298552572654573358704741994424666386991695981888583112774941353840165655628603141079224608330808915608788373254879291752157553733650278024342556140335010282267226934749401046839232239651756288199151930666677575152277057962581928075027530320906673274033417140423769490254097600744924267486386420144575754065165428551468185044736753875190340411683887034470109776391972678265401042990475834442135614437232223273173373654524190440938409373975787826433891434250847681186199539974808673164682735773134005195582323737772252714449976471274912089785666072330115446984605021168825513062705623280722988029489204609659248257189732416801417919904652657388856079519348205490967624403342136040025604073172898629282743803752990802554500938048344425350380320677813826134131795174106891615130920133090959631222675916132838857483412126504072882220775657764528250122825801454718162005067356189167963646952041013246819269115932164156593701405088315354590964477790798635828287275600282578067754520977334708799078951214736162685449585541612005561846357963504599929776685041297583375120736205902474289315980755649962022751373338735074177265064110428201088375345818338523465205056058639267329193345379349761747125062001426369719052647933091108379736490982612573084653037968288322378551529908370402034309552197188122561785666742715590017186944901006085323941562899184809726478848462047508737430266749505309469259826345645410428265785796913659243760722114417077929506750518624884742845261306145708467930303789685552898821970720058794524685337858823077164973782396994363756858149907778037344734556055498083544865444970109216638076632002048430536480833689834893748289636290737128544326664292451842088202898926004364935493072144203938470788247681994583705213822309314186605245589333282468005459651595671428620876337539731155868314672762396918860082857763718172283950799574769823934651384349147522295068304700345263015774935956456361200048654347075092505040608693444905297765299479773364733382931068108448394465213526685963986019585967615244140785516215545277539352146911248807570300423141629017814892257662819280640930411433519201329410412704341586419956125207326105186282979502029540774079797943597045044170230766515606412106650070359663504136138286265396371631531772569401909844504013787789877247337731183481825218619343009648994388975509248803864314652678175694634283303855413962505349638002434266017886205131478019409096487027654803199439006195922143795454480014957719976651300982699713253339150963743550532568065124419769037977523920746800126967792701304238188677857524105659215785664210037425759705609074233775419381644077766276819036907535355481778331750781204583192731964670846487333981148782541471821676383237230519781583726522988459663019919711477457430012254958403145907854759660957825667589056836808692117151770175587834167881984370761797826129606861339955554637822068524103821088697926115934132164919786865148651307637596199391381170674169770658805289083410293388004655556338135810797614939189524458613075435039643121969341868867699831908022530944425432351590556015706007508574173510812176182277981158008449458005742704617598780918990099326083382904092054294208636592309391454514312718237037406687496582849048380203912384829652128333875750506006369849990380485327063244688370020673030336342299409887597148420558075513585193607022905310347290117980534069822406797697908726304835817400043401820259128521206999960111176607273486543126405150680249010175660182710446127070583169942091211357649349420593072300869403740555359413651458013707803123895238180825213658297335316696273126192368974808059675562744256661335826013147437062205853315011051442730943244414546262607011990954606502434963857894349822495475500184512277161376438889377177468908263022670008605963468288091502082675152413696311238025453292834533782066148945789285129580836575942693031887645814485217282329092207772035261946440496602558272147104861754997547234252663323024025158762486235330743519420854897426067724736701423421151475657597324153420688984354834302253498365568002183931444352724492073623750377627815058572630506261236472914294056131403640862746784485509040473141880821094612189039727309914020489252093893953746996083588844041313617461001480204806912902716778779148075176527808875771980628162522656126601941113649372313055845391897073463480234816116477342220017765007058035538404185736576039687684744147777651928401927463309140154058438787182978536169347652272847466178444706360668648781806705774180315736189177103700378328681864608070422213242127350429508085377191095952852536828729299212166654535155630159411732652188365734542644145160171909567982674758097934633736498798324473937936845711582893809172636710946141408181356181501341410065302383237604962054810264175268631429078649124125446120796735199223434662780342507243171807365008187304837013620738617884892289053610457315726555060098090573501411539847639762860767069872696880940640744586247577266930875674733234356375945066136674432973084169825973382700084288832171615097923324292596047023877187952927886331303868564525362584043598814903874226263908126378436374490604426094392997475381626907839035739969563230171217645620469977678363974971104731240908006941647167718592499156821455840762421664636880590344592356327550155790860259339172773623289040354302409180490192941467342327138624329160352513698848483213255170013116640604642682542568081340965708999218910127341405868531095052801391914289610363636496975256464337150815893033452306974970872556632793744760873587838569856743485022141248782795674584351773839500240465222986701995112597078074837928303184557327047932276982630135585321120361271690614869551424252984396232423569570701467707564521851658981667069326947635070942260798134902994355449995916072211601289143658184059043569552098315156595639709512631387283825023294563433499270804700951824813471443513831411544347241117331758273539426392896976350742281292780081469895830152977853088871795715474412532914710766514583316277468845183452144300892044114017817294147229155994387335790773000708090062538236240286392089212675528818173241264244711536334064676692058046592907135355573822215925649876635591526422755316646556402319008092870341921103674397393758457008532019626867980878870072284821076521519361156677578044077573160745769172700507552978494771871573613590470465838183572639160587708511034985260147824257383003026314846624742052985945548510780449192843562511053112730972034164685797016889248799603434580808892326835746252104291098724734173268125981644503754510130687564331618602427419877477163854968051106525886823480443269568316849132857326887136351769257137482528640713424298566422418699431968248668800632634739699639212636564865862590001291791807273659156513814834065184543022278012406867502703973317469283742206282050092232103531443034086553494581473525302385247255041264203844306134588620963513945928580259240142301319700580791481934982167872978723323607991757137452026773934205767114161507524373193882815866710275257772281268032031095974604544212034845323715835658332846623385626181459872099296740507497605961394040464263060754828201688640089567281579739021292572475418425237942984179599043121902501440414400968126501840165005127834882583535404060130175205553169838262360226431123900048878777362950943079805528786981120639143026361111215620836202579216188464612762922487702575892428095512221038245985176725056040938038691957049084828667530206529632840129288301838514850756571600496415232891842032124245360459835055015988769060806731974338615731887003512179771846486373138198305465660997271019912385647495610489186226109811681605665079563645134978135402075090812121868736446101035720344735915284818858570768965307339061982881433953379462144892636475803416118395069789562863044605749631796124942094787276614937766768430657047483803149820209889618782484199707150356593137861901574987046908224583653911094471830567165481357674241261459427201142810559817792476022355337089648479789920356731249363840165513291298420713777912827203522734314898559320106862828322875381257460481215088591920710260660153836685658095203223899862343956293056821975200692557813450260150223699211040854036358457393296197583832634543103943781916798818920963990045362064928201257086438625239153336260321924299541617102084207111357820522234336766586824925074800212309939723109023537289355630562962367517654709784075458372520181960820696113258995393287319040128771105367391934866113127219613553873133004407814085239100872076410534042017274918381465731860259616198211010766957453486398944006131773045064564635029049962574467633965890347671097069891812908044748118829645257677302452394645421748956672178345656035336288750284536459366313980098200727314523405007004906983653783805335688941324801523953071520693348561527182611694431723218807076924678027281100271361577556495853170298117457584290506108650221525627077115951548756316049834297012602905620569295364793958923662241776461461469240236905100894865627546520455817364186541534067820815823514175829102541397362098163157315505122674245861492593409276107869249988832180910829250536695757004689044844262369795491737406743704401516191242312521390412655650715127736778068277203568305088295635238858323614535740929159021709252534895297619096668094290989651544082160847585671559448225350333196261896056440522374610915863721838203924096613423673418578261716770619199318042669345191518014198518718911330837321395144489527576497643708267458281121732760395147430489366529878092689272240536014024194642864245171212047449445955998900848505590293472565539441502546231481369444982364945463302380003997906845858774712925100953357311951721449595541815673939163823269702682056073491439497723253917398802707180395051882077624610948095841323044193890683377532268297101509119071398216109429501501516502411271332347833471224679651799830814152513034599609920456224584894795134695893843707958919947528625852306733527706560364267525033755024413531852503702671883243626541525106997324201435205702367158489123816434577658386209669320990073111090328727846494548004093813879746445214827549117652991086179673424791726436154574408910737092530740814805488700655373861470857877524400500237315026825381475606024435190029881529618872315163010123336894220743318435956653511552332797322284608753494962372963968003928489212149048184687084113302509633648433249597582987773902821768920199311395543951396455126009562806114706665623688632814127413961444329949033127733269710252748753175310413851149161395816388197555837064291587971579925196111331555996668984027539198080996140333473562291093144711977167056817181196394530017934885748539929737787777059553006241884513001214820849294001008579378773990260175205661580016513193437982490274251056982360707555769306328938417699302827624009980274291826034249087263664507585808542837846214025958241732429767015505629191796993972506638087549190191663186865019917209064732564264076154921352261175611921944088431131071274210104248890394621248085777433231451834160358435938574744118284587335944433177097135253039030974975063364639399740265107108667621874710625588419849509752945076436238361361653892185124990699797886182192019835607410096631974648852364615159539074114859453150135408551464938428549689065245717803010322761405019050048194722614114461604704198934163728514883842498660909282245616465417654547484220960211989744043195938778172174975500984433012236758600561255320359532501156655941358316832464629413357778715518682851365755479904061728693315515972537442800853751413249698647643140211144683445531907945480301173895711104518117684431954867721523446363783797054940233085670207394234469540847847577364729099394101709220069034332805954058439041795117934956880805113736518281344316754668290937244116055177703790388196697937591661079031457340124676309480895515541236081858127050230355056237543725966352673788671896215730719506979215854251470248088881688342978904705534738606040840755229335426691347362441354621281752557916807463631414056006846523278645199144789026124724858021850761814831803895416082709661345573324658375461257728640296057509400903470670366226362299992089658523453784303357149824634837601660152312763483904269985408888055239919283980329381987291957366139040731781327919239956317274051587753235717086745365741695875790079295473136925013049909707631019316010196305225052920602929061458195943062406166610646097933095034979331883136896130459503940518261638773682771905171335850795165706463741577696648820692543004381457536183569024440457199942003501843501905326099690368901554538840238624784761187522461225500412424450848192625630869328242381211828660500896673651162091018615079896513775821575285786600726328185257260208533745683535262992484284093320897824960865904190206453685150290304870657810643830255479096450170439127971773193307783632935247985519191994391640245678992817082396698662405282108741681097420240932543672934646024501244484582838575901458404086828721842783721680306410457845736668135872271151574153811804434805681373922006553958181169798983249711162043447818721954706832971600065925275278774858295503682364112612728268758328396422330949533285853937061755798556278772816200171746889681612069619444961807538846007188293744248007348964803505571709127165154008788830604079927102182072282128750265424437433035744995725002276164616914938602339758979746903851968941741465470548296866792750887221907178311917399374005336558230632815081412131212699615233084925110032674554495753527370234044145241404434574586292177185697546880431441133853123060034294091210365487592096187406502570841022174813967408383186673442137628512609201904526056385963499302213089563408208173968749808724809237571222567357438673760038899803903627182255533305131515708046502893088494565936168533144357913013666047696529360163315826557885302188690247656627426048979485297647384713354957703391362652187566610838396571384900397250288255284547226086960629897154268647281070674554408090547970465574183153615557680330844852503942984449031901487709731433918532179748054519486483874527801930940657068451507439412350473327133096404857629761562211001799520316053461995362462798871571940807896757043939144638093244567741234752045686943979165031790782180776774047454858630257555259200432203717938698712439623928429034469616956346799393806580672512263116165905647378377418360012614101655159284686078856964590180705636406728699230786215904137715229294358293107036298008843653922095709772010004113224428350113011304361892565416211589844474184727435801174166101917748153967041536177875728728401552839632253760520483974710050180464970212354154842680955201345767150753180682458165314465031521385204566660067021687580787189607041913969112678564269124803247914997136191699540126643090013506087178324549259700654656264632701657471438854616213520285469549868431925077254619129461291209852617367489687067048587728413713837175334463666411045174085648884677934156905112725614071763684606733063749128482836474408244094879852664543910168613930807169425347069804041280574669825273156787417751099431272978467768721937886012714020636711937553191165773423688814518330841541863458379256279553649883736575886955888810326629943018067427475548522680383752506652358786576943210005798945050448737931641844819606640338979847876798255046362722581946268554980604864616575230333176854853524144073151059181342905425161409163445515269414999534126998130359500144468071564798870738332757904330024390309461744189976613700747422551258289781886084946284829052691666613417725724857415452805553860862936563056052675171156206456884380900821742534293117551766568164290781987028392035009548741029998262425106863026127861596405527488201452534546075171797998937883873171808415349595821599139447251289660362273658582702601992309767172726788992400911528480795157788874083011533559359317805995826809731830174027693014168368856340425914686737534146122725021482864370374649210293928409336907804645562078664224575410378543504151359333669894869480240456642270550488943920594011813114661126419789141524243217913278966488609308264982645362458626713701122113486343575141374215560948853409322678402039268530038763429263071235510248007129465122475691480240997631186969043735799591226454331315306480745510228877902464553525320955703083971471530705732289564137320948886147406757694931524949439642838907786417984634486563730347277699614752975757285933040169772109230036864234577611891667519288216897186873576711463834135539088983906339564779539535008857243835798262943195588796509866386108571762957439744831108337018117647492946882714635245015549146977197694090716076337680638427950667501541167393758979482781872115001349888771783586856883273224011712353897344058657596027976879014291502199090848727064295634765949824006948041839417925156274121525929270959912986193321162113489757407063208749247761320721979870412870808077901149739030428508797796462609297347576410556020673044945682393877594770297979023029111093162618515927170707654466472153138766214028052265220927811079906702227114043730783728010053288249271678992890706517074634940543235442811310989662755693265131584174278439940212633544494295505349240441814354736257769730640434976900083540345135293173172524377052761785272708615492864703263745439987406382553995339586613328592354159820310468824648571125312844309169970929485717907938535404228743127163186761538918916347904282586187469578693631498282629753349987938258924980675058861570432777471918385728786599537405898458360060350961393895301163549505257248403318089408264262550288977407597400441844994635503049500036278221150145804530501070809083895343758159741484786409204495536439912773799503228899698751918542505731344391553459568490772951681415664239998424544717715549587743430683641065339978969030143615083522723657688671935069084291663505672443604890247128751727590459085334718672250182698392475477717654584105826620091061437395441113805312133772047073752928356968126777882063064033937500173964542599747496677281370755285441891027355261017162031880896331370684050144614712153998322156316204771229694075068732389284191271433155466803039907293300927616836601849294259453211248301947258390528045952051260004413846425821440550044820475057677245541924163686786193752653466964587401732919633501938972312550539686372208745916269064680248937510560636902398375302386692597003876106807674632678201780035057557695027384240158999763554749335011241796158599636412874309026457145455353610078994152134183137379396957368428304086769315812054871854371209235875279327840585481701160155786648327456564445467083097703602827100138901629057124105796699284536879045702254176893833968310962945649389985382039937649065322153015990315523395915374990581352978202849507347402374189927467168149302749923475340243246405586363595969725968815005470148258731725953516966274130059548809084158055791514590197794749550016434232580282217151552590814422420740365899841990015199563403212340516535190478016276539195194853102716512142257644528549644917279702936020679486222041151178097130983634439401854444461009338280283097067832874187937003348107420915243059191538154351536282768853033021949758710054065262443583749190735473115699522113285447233052699622660770271849210743328356263408082564312426242936629223519013276188533375690984569877317661007211527523939064901889487800906765065324480682583805803298466073493697789999255618503638743917332166104215353026875269113251549053508323645125191627980142824679088268097487429293540475624286650522476225765872402395351711811558144299929333121865233783914731254546786895802283721102043376691232675155316492088341334727229880522119494493269044587800885142673416406236408817940930752485914217694778872648853132072415033732924273795673451112178557292471108862905134388210938365180822062324951622024301532598904068096391214670870349304798865202229548784610022117730617192857953804267120571792856485378854349227228455726216537112300598081685608649386881877937827043228096248841147446080504023849768096343193622642677044690994053888432908773709895159532559402529333907981397802920219039573316982484942488436902691541446935932547393113911099636974074603832027727867975943969379866277547944211740535008221473820410511068015543995037135899356681714537765297252251807521086123856756506992409712239135014038900978039330827553547440329026291562788159797374418500525118987498028674387286381848170430147263025869814172973004711462342247357833909828720431817841044904879082156683929525571472009826825711262736865987517068090904747265391974479027729379015322859563380683386843694189182004722214621802375584103878339068025143937951405598629812488808015832506524893616727124242062826651715259353096780409131127847188612209048955361157215046649027194517308654836229820470091435723313004932628035171615158787219704169341376701392522398815246682243582301782748441037472892492951076072714289932221518124776763208562860079990835838951557059072451987854958699169232121762673807827770523391130807757293096029771836525269371820946988141141583690661410672173581379303288223785454200236856882621191644324360408105174766069407902077657002223342981987770382021492789664215081763798880555990788691146516785196014182963597891861318094698533917774641289075121246661913672371693131435965519677661680894286618401007846019332503725295122845784638820010500438929797207050296624919679255322833994432996190404005235142958366137045063378759338509953284696073126193291753109038161303566846718546456801323946703150135002962129287084851200136742134196299199137574927918187298125214362925081345885842639243617514260524087712301401264084845811431809532927663618188803776679177596746330123214670151917226691487910215765008113443340410422525887006650013957181431750978589292135438345043944696759174694688678464543955043056462548964429776368766597760685830642990672946993749656922301047142877237375463292692192812980196212088134407491036654217678927889116457718076245217150481320565985038835232360440759199034587589601812650393484739604110481100651576132234668824820253259471677008591982607573052155605114087394482085886904119857087427627933953830386651639161939293635739019435535893945760542404873191185671292656915100156471728829121836210628211401839570001156034972102786463633896872576348193529420601030120221523598140389528524257020390805117518601152433511239909404014498222075188161611387374065854536155890559858222052559926381697575821769177680155297731658856273199063625729142316711135878721579484150194776454370011674477363551076635966970152428373755481162781123201573824659168557687992561495339677242702378736847302033815204948992546988991710254634929560169807213051203421810613105534873011043833686219492511157306073044360528294216502505504475184389119030533500427548188692854250955340396284857596977490172711668086359307257097237392705557209489150807891169325345429583927987831712293261921443591410180191356336543417735169932367182730832863547351802645014445557035581082992665811750317340462539057168680043754599598288709555017895934428753668300708191638272768914134499022107434277880110237328601206513784029182300919681963250585567321176489123810007957168297583558059649129786604361051945172206875326320607835844722913704093347456933240470420556941925534366367709651924282077447376485256387148111226963764175287840078622969750639534189153132848353775727626869596167545225905616590204513800862904581400162000614243007124109732887034773059076707441739468649183477940391745636568895833875147190259686807309510247789817063993182926356415368291235815705180151017573280157596800588230437601201809460355145900415022928691263170229020904889043771677645616335750428376770917370265000774485895795812403609525653374902511923936626084009644910666704792508597480247336023819928173650427201009310498879055468454960776539699061553108425511730923033231145149181812559258677980858077914854819815587438804280953268756015177448419930177209875719489361513510637136340887342351980496405614357988808601061967416919803380118928765583025807173742510331978151909248782255901626511084973038469297149028231439732969979269227004254958792156655668509029936845531284437437190234940127669949008471898088796201280428728391123614936433360098255643609824397800260826879146823575152300121143954784801282071365064575646557409114112143163177976276706317156132947802898454026449385533889317572519818807370508434119240869353474047774041000516322182724409574143994976340396057383574803280433145120549984806431137814726365922963430301166670539402867124751343904970992381713363706661276633607961893303650709157022921068067449918135570025136432343363760385069390207226992886263172586352638708779817356116034027472593582158902666337710565164872911348631580857301092534464076330818541501367756422945782362826727168294549937768809946400686165171818750580673744513011293830379444592574162610111776423117467855418267568918294441903280550427166265369426793339681655356772543699900608253871614710552979332740096911745621811693886447394823346422669742480435310651541332292551149495484563742019283981639268108225729386449516673080139799207200931104296510457367904171525253881367221121416567424313704236054726986501304785382453172487406447766297496026833952044114855861365631312917791709669624945284012470742195095637628469363596195229849379597399190829580301801015862646934596458982967340715378142721157681887711476623472089664425993408886359443337777974067846798685121361008745782708949027830031308427753400567452213167699307512002487212651886617390301374940945245484374999929432326194927638120223622585979719508338914537859803918102736436346731833844878305585047418630674550138037331211727211340194748561421596193814867809053726941026105979418458742417300307478844928348606293389270089846773565954424288609400834253808605134684996886896941474038705315462013017275255099405497344266099543643820262481741429126416084178127641601752147620433786505467779556481673309747383908363577526333673416868727657329675359612389924765963051221206812495265643730207552041104783088926769969552000193318114440155916733028410289380760333988084744950334320737413103004466098627622297364225548049507708786373850679381184863486907834464724369365392854632306393886560637186759429005256322178404510621724673372231046553487259044180156176680567579964212381378617246758427161278901251691921197907089431074199532613330726106441609994568633085217950670224066072806367312681627395198398850496332104125044451273673736362464535574466555117736054077589661020907132223017307372499050170254656184667962726903508076880155961973815221372922156153232460051439691783773832674860095603279779244805135151073898440362160196134532942605649415780768258607259475359476062060743244941374985504014655581465113886076257803821812311211816825912249311283513730290384443571922886075872219348425377111198558256656529983259860189080132496979690452675174171805707708819426739748359502187655737884683376050725040550150073861459077543048410211213770795983682624678180516743712061492504826417417011192193612101093666025339100000795871251157721010313892925606764757674040722922114725185123968347165043206155850963398355207026639580865361532321047960580133545389930801387540849256616484291855677529487418892127675137784571111521711683285898223354079292556091122110129475599236274744970542154463461740434193288681098360272933412737420222328738420269139457980994945158058971608094594036566230668055111122709627934526046471654042444171298266654528242368955790313061883633980560542033133707684916526742851213120353998913260239303498492059577343761703127512251754284681335440158526396424663134209689054531744038173118107558023929932860365391069773773581353578424773051460692336480379848147341856708025096566575148886134115427852468823984063487899291957628641388637960453427667016450317432156126184384755416634962975455941760991172493439542076754555513044973275169725861991011353059388116236318314262923652576227066804609942886168850067849454847794193073728493421750693755823079016149484020243024048058640484361291258825361269471540665536981321896266765858506279555054286942740793078738820846729066570417542391518468740722601865902284715278421257297269804559705110576520463546282408135146464957825634624288766867524659846481509574026030378496407122159731767056659497255602655148543407988791855622445716110603091695275275584148119341716603971709942845943909813847097911628251644160173854092762851225068958474610743307771722465449479648298642050486412921253565124293766095592082788035083416655766640105867840387847206866773325711323038439928226260254332210111323532837244491839650247641626167134874322752607232122520372781264698203063102474887994309211179824779597839852469196675262458765659485481261603863479611379576476778780750246426967682238297157387753815896456709530980678278622392366469412509887342432080046901057374990981565738670948077013051832629844643385568813839486977027987632599632850785150368420200966534087160515217779949959606795338904859276957277643936295352422057728291328999303981379940674766479837203412222481751671526511709683335344803852032076303731188535605018320803224506060075805692022461066567289727616452143854244797307140614841203993727819957692120992981759508691916877731420448244694795163867662441700995501358981218057591151065327683244885634615500351473130266873697516453995816292447604567477476525495140344913598135831558026108514263852980848692308972664471130968027430765593737651094735457988596588270333985139145070585438258218078744916083105877051795447938937866019227111918630315315585204284235932111343818203089785118703706235130871581136393074320503008440766696487159566368190602719885295777696954517824583390365410792193956798627027613589354795954599813524315659138003162114915930068765148675583894304861358580580857222545250543273459533376019711979775923987126400585451057287536176439779896055629532660255581261150430295826601451418764115593202375568787282142522558409447170553615765328863871824635948866817914632686522605658224777411009721745764021759068271252967924222082543904887159887403051063488418348456220445663178176085378921647297927383381635550921071828044247177820097326947064008385544760472279490067443040948375877726973936836731084146375013275409615141428097662000971922363880360005378287817699700490174112597430793683754121609127743688232017874632731283130609340895274145366944954524813224362902237521602172483284361790216922983969897947498338061247256198229394811947630940536400383298216532065859400284390522005860924922992492156193882220182481090450252526195039264666041866834938573401566189668498431892334163960222645738232393462476380457026050741022755772705006134134261288484612684363039078353525893693645084180988895299346632899243701956462674864677247720982557646165377817200390254060911966307285522612045326544200497619969111104403295010139375582820985917832076536932511246545806887305407774694770564587817614957598284478780929720504252014845565440073073872205528487937612301313739322712946485095211055880443977009685165767936374088439217849692878972261935730613543263832644272493223790750190743499151637657996619423526221905345447143558494487971416795576864596719612450360367348048724537952727495473604665536468199306790635538898831854703927542833687732811747404539559740398474073740147213474474401857036367315866066392348166563660212056439766537682312200301806294562199504281641740263003253588688433081967253956731378635515072454690236742529578152860782286489507206381392548593045369962123777237812972870034224015762300076075577777079277757705654500471608274602094424608844730870663190118774822445794131547226150079540169948073357774659940241417496952873387600408064037276518533575793125653335450113194859704497568587078335485934973514853712315303512742207757519540582711402834161711319840835689298404078196912500886768552587633248756836400594111100595118688752667883650621873807995680595326572687870018841005239434355279935576161684040674834608402499890623044334668921191418582493786789024395197468921582826539822878347270620065915789520313594709263535258272305984231588083533567299884387487799036372256829838642613175956513584010376379540384686677563157199747114730881600173226622728042356571477051662396189210413032468420246034677845205614454003394795908103614521604184024864927467727809078019681125607957871485428153563714886949234688011440613130431251924444652442344736043656535610026670195769520636872523299338604306376282423038340076244690297449624587417230937494321628364004709324385767086610423232741727003072665518266078804730204729119411881841824330241182407218096195718443780872509341468263503748433263369661236740137795509993768414602956370696802465478287836831541873444024851208000960359954377125983893059168454844921856139111478117914710312958569425264624495253720702719839783606722876207011382517918748649375576214100019549384258353166511402946176285680409320154158791519017318197088349475213931578128872671233397716674130602755296336821225457974782084726505129347593037148452469802124503264498921471963256507883829993263038330742698560112559528528360277742587390042266364373162989796708217504019692081713983736176776659713128378547502752683155953495194414442004343184921476165299349233654704149383484886777867235390339828913563981724526407363273095458847237728111821909100633803304962572207687397920568598982660735159734565607493770883128250576723519316935924109200919391718891107412219028597142662854540351301057448551929412223053505575161575116546607767262069851162240712273392720597020415788440175685141326953193381295172458253762901207504385821507456444233796250420619528313944423982388907346446993858827620692348384068118040359292349991778703853787104222459673374102910112242100130557293788228629522418926652289442538305215493170375839894178628460319803248464385715037255530971409950067894370081203765020427154041585258295464511311915723277388137938258449361695397512982594809202993098394672742227534569484163568762314713050244105117290733340472013259609062843539134495599349615934080601219484177484054452851138306950920316265516285613101192924078915637910311736480126754181008384103466892533288209529029996751714965777940454058241906973529136108027802724760083992152661646718187364691624309241694809040915225122563723966371938658486360914049155983385645472143730141925585519631352542505182095182334948607099418547876695000094249905957937443080906069475584530741104891871465539787311110212315094678911088803236908531915945814631660202962121270823553786636659951541858708641448692407806407507441767298928839411207518672441708030440593001132834626459606519176510580035193560451669865967800853047435208788614428999003263761978893801909368420275162672757817740236064167562382550787753771127760053001972596252216078490222930713138138622473559661484982270320870509063454268925227512227044055945388135607466973820157087941560795569488387013360250634988298374725544256097786764135475000460174618726531082292252623360917787873153958260351231385697712514762812708638053810454667170912207708779025511043809218244735414347515831871194864733458269363165456915892380338708545969775604789301779844779807297024256198534485623302052354818470443093003662476723229146284802274124640425843012164464429683753392265688076657189938299869161650551290917891987255350906310219015823199054385480827683575041558089608164620768605934553000824295877729012268538327430696670510416784826019209594446263931887880126652729225352986849724016696588913894364093656742481764588396342533126618158775696950987852709977422073105290984032426347266327849989105732285430934689945999856084528115002211685072700712770510973352911027005916901494961175105579629508350815876916583300473423133939283878705717846916210997231205901576037290575087900505295845543810270791695592442106154284208460939745282625436528517459251528789969172852669508123528001909705592315566854932563731296307907474062881654024503523171730907890622260274746616199754527538333410774571649884480890211828705288382521521301657633669500268525609307168846628873669020743012529967085300529860635857759223874564212344940382112126103533054739201876508721438967514124563279991079264060663082054045767512341203743875205819748073127021458000363872499929652304434540015546057258504036928302693538644282486644466525099118824566342608562203082616312035716980826153769932304302709133121718533750031774857004384214275716302690986510194541525245003446773774940142222244477587629602045745885102478897808941181976004881266377310771051638882430042225153112782400506597410948957272309038374861257562493875653090734837164612408866896802701767256134192817087398639984145627655274689733790859536857795610350989859365169702882385750747500513282686794923040901255234034673164037580998371241866176885894814239287901974312389180014574971496048083418584763140033662763384439578541227966057299472257811314957578791966417106264069000140555427257935971551263518089039399659926658345725645754324775409124551476960949395334749595740248527071872787683690479026071665390510809206104716609357533894390924896058159521809200737877294774560612151976361351235593153345515810757421388770761544193087384488443980335039502489699429940112171006089698572108406132499141803838103279543638470715110728075852122004456982133250724474941336195749298401991634934411527511513734453660530401926598990658242164850064022111182087955008237786069250987896129568541902533130547497451377318937941537561483748481694033658901912152527180565686108926258524938147261135458670624895289799565712397710904880043477555428037894516842952946288786169528409522755005272238304305078141740133309323661819998855008350872011725458375213612401259510776061414835625816573392640611661056012993214472109454051911429576934872091163575364932030307757525615373467341257856570517821620356462491189479751719012758124125215920410690273380156160830901948179486286038929306963203643543178637149013692264068577345019284415154387823711018836404392392014360420481537466425511113594229953193850504230950379176031078335756108577889800034357861216278092204055047898475094999990175176697287456824604890978352642617203906334512558004110499318351897780713846882078475314243268592452957251189961137332187656267737202317324154430678025073816057326319996967225004351120114553491346711208094866831579931944996020351141570568766675714866173062705382649979801288864544580418194440570724515316182979092701912929783476332938004293836526903227494132507209911351125916482003613879349123506624228627271195913564425893396504229914199784126976282062885183924909865801064184334264250782234131076529846917856073028345938208022681454604923134070735421899540193308476096460107882046345317134033491079588378366368396267667133641979441925487032233782351040478821426178725700987169035017910668456697365950979225147782337215727331064071504159044983627839119948982072363945782528612535252541791160196149625275687605264184610444427099497760549335127679817552146881432933778457767327548815364767238292250211928737909351288935902808807201835246462502917636020382004121814493480446391150419317661715529647927874685306630778087879211744416339811939452588975531917505687139935495061165446830349086833888126377225255773025613837811305909633766140322528465451036239425940860600717577714142809355279970254929200832953855354803913403840390901327686096618621623479738389159920312129853488360062582512849618245335701807483982459844834516594659263745476959626627358813570545246373526684961310595363743453682471815030424628510360171109505148588479574315640993248744042925594526877884753930814761256322429977123182444194737778903919596494597850543261453235157894650002980445369298426720679501332007112727877832828938248373710296252551910655993227863305651719840430349722742193385939414937119457424578076823522782560282290505701687705115042067154684268205850464947017902133076933133136574983038071356825893279106638101080607824130045038889854834023066896924308770562291876204694548837919992240900343247187735608035519743843563309494769357092206685673625306437001736154725873737602390303344520800722992351863125269413074127100020610947880070240761711815143998569723012095330770759625595428114909924632824316125239820157421417830574255775432348071728098105137128315782643621628945526767431328022460620033496969315576765733218492786158887239765739677178876207735200060258650116446923811049546076326538254848489529891610654410376941566209923619588106310324376003637079883116810147805656954832931599269277231616110958701377258805535483304496099073988297426619192408917621565700627020150108892897100229211599433892996245147607561252418015035451386094909849532660337515678310091926332627443234294609021552897569817908594826581450639805215591340384648196803803330350218822377000566020120506793774124788324423744002269212280582833343994257213659930765027440660250008161672401191626155185477585431079977117374390873419330852806703055221678444485039529321757911437448285458246734620898135124813467741170929906231772738503428744283719819303980405257417029043600888144945899836413771711572487906693564527945785101896352067371339324605101513329244322215799219071262450005374666952985385932199297321840284497018589519099195718141162597952969753592420195136505971040509751760853415058380593264296319473899604850134623430380294639917010669222588759626573844032948421833812681648896562231211742592940321739591690063157529858651543261318137221537455418281775050490993140320943406674908519906265321687389129084257327219947907596689895088682081048975403627876192842246645936472842843282392344832476115336585253231931011350013263507808929835449676123008879430473089933508904339960055663396168095242391922931079644859295124130006409448236501763224196814485174325024599038291540080721264414188323540543580696980137900437300964806182070556604638810165612219248410512330386498248074259733419875301648763413109077318918310589821438321381376176550377959834062460912073450289495450779234104735784042943622763422660242717709170216982987840757441240207788308975153260943661446567463677388838606440220323229588808516987205665709405696084328283166822150372218509503176718580452996901831577933158669848048892376520706676247092792406275304482146839185624552512062468946990365052217518194410056229163267975426002104545030643704331267291173267538005198957106140754794272934948110687827887609852117194510078807700607765568660659153523477070484127666057092212830996770590087898442420787218384496873709608865389343916712009678949796042585820099096885383997011950070742955723534114649509171485120495456863439709042190363289722101007676732388613722370264386788484178186493389018657635358712229524832995957255519002541728491102924514640277410317318888768061185203024289214477979694756692756562460395656941977656399879712860063079620056388069112531889886270129347022593915113799879220893353193953196747672283790874710759745795046040014603714704854974362262385600722439511400510814271883769173123832703917195666661634372928106501245312805865084652017083643383517633344709969658532709694314373099967882983986774449718065923590066811652709048469307320587828281242649983547095197900720803107211202574366218881882562953746125280897215635984706911450773556914832848857668306104062557440434377758051783349905232248449646359004958453432460817341646433437099798690931004905267637206138426258081342543243458144696978828111861300150418210295972285856832914242937464664328730889989077807839583495756358363241445359884659620127039243423822949546894954757781422298222338050948336293459395181674927380344058858194651405082729322274902278047428349071727397374929735168155950805014160493304914908189231145890908627788480262496222395056775867524214061732846316701452412602589619680979676292824768857570005238968923876355469621874127336059369872166068480973334202569026970361243273997087471787659634526648243755939873073559678863466076776684398601041685694424745492868187922827473353541127086794815087223262913157016980720740101323552826639046023150973649507126148250751976604787806793397502552218796445421901470184844868171071529901688439395916375361681034065759574982620384296644551387829725081478907667105820425836934848218579344257731866779096024139717005114341465637545509994570995444349602298108506235423633978188535697398299392466891772942180615017322052105731251616930776119697010586201472312528557337990909548581771651563476917901543792756292981707517310939050309914657935872614286391709726737736037032531328902627983318262201355463988877716252617610563467506384410070579241417895423032604987910743357083935036669116359707074510095968414973956563812073136824163344812578078246749217569251457372898799026417777262212152562587433235994866698918844344910706272348438500831560169547868012049583261980385190126644583194641932456751016378272252828136648524834552346742705030952959711460055710793228493432952321787619514446630511442467388842885195973394787737085202617715601241802432483199428995189813347309857597380737752224947261826127373839133872537339101756189278257707348865398168188848184150086004995687038253958952428788593048755312612942095505766480020635821781251603862374735208061443916524104665314790728942461920568358148887907362683537550113818314450040788900545516547111614661384818900773232155227114539992409126230256696151718149218535503402652973369774671523571722980262849220089212981574107481037767976677507063281619637528403380019835007865304499375893080598321220870838308547283185869587484927186108561979201009568701087754385726246738356883674937414072353586755682765218319475915877977826064719601269382633486761407856825450938152642856601120802388294165821503102138446169075872151213993253633607574579891948340007372347872636130801175352974311458362922243112468740440715138156230220963902563243481501487898553857124528731686547203582503634165223727582833086688581603508982673070677760300429355214793458342764320376332153697032475637712937109986302849090189932778010962109558035769937224141670405065619009730075837779666562493662809623686833527000826525978774738994774087140982218580797689660481849381603534909177891605340121017891274557381179480085058366426202763857206325460127973449366608882870958499007948416148706688705377135946096722570245074080044555844184816723655171112754211193701542385175819323537910411593968171599187120550331385823467849741577708338589374027969648184101862421969270810273081316933826932171727354219831620923261973350935795318756479309838376248705689845979823896567891715291892820460510946278834940311847954842137419599827508402526048286718755871595435137003157289287563389391123125802996911780009431353398935476074649630311033685869398597641536566407677641626332632587428449649324535508484002494060590521619741358408503550764027896885617304829134830265357344327161932316457842989960751855108063374562576913510729849122159740290428503033028235461328689092114639142269338212968524578320921251817258748241968910594690682052277354935102210217463496020649767988501479627772550911228317848247017441480064678995715399143599509817341131002584625142302010356719129710877656010925397296138998249631023543666199005863842428462672905160041954836197239938160749179285394357202087851753928082106985003911465075605559692809775510476887880330114348846398936918589005714569079185499307195131786064083124071201702904427787795063871000165070913172866887674380500034398175626568220423283554612441622541168105312540532723154712164311336295871624225213395793775353201642764714838052138999867177190832590446824639592335560759919539009800374311202081366048440523492943955228943761191351009889181634878771197629298068239045745322010036320887858070302592754619645797531829849943653501372865193470554481314967966613661731003763061336690961764089353415012638278134190404277433667072324444368199433681877748232360667709793122944735464167917630577898435288790403808147988002706603090988461974450746828424102977786333371856293443998892728882598630636718989002860018572792514396222537696528072450812891451413808434943766714740722033407679213386483448101412255156434475184488613904316114187629132045545063655735021248022570331391453868974713170690928240607121200038591471361424064499929589214641535760831619036144468474462008318396253950685209923345764645869626357343442323497092586545665901928473584335898046972985230321743457021983542577142093641395573021718803269631916184799531940980721578749961792231385002289756491596263054702110077293520846579697301778567625917589110097472817813024008608564016823952258957689085074176078714230786035004226869110977031766136637134709723626685380691365158258515303207173755635657800645171384969004332763190188537945478842312720308078823778102612373074043752320548703168864038035954156117939495172394224594173929975791463584026324867329538114966130918548098093169002011785689652013037076882263040448826283212436600350117902910302460121748058635752422897041511231138287767778640371932843977325083400022085508494927024668303439545453783279097443200082586523164179043327931363523126915810213105690807556352545819374645270159288177106226046431029006960379889520565688341676403717969515757094354089669350881815069891567085990262367881376601346720784374425611748027792522723353086701358085727857177445847125093808146594118072851807675689040637442845041634619849508093447777952892004677096523568484239311725774300833592219432780431186253797876538719767103898763681362545589287730781419826387747101441580498520891939747255058624085907502141200826490804070395753542233970313412187328224886559983092158944566513337937699715111968334077257272010080208281713946087283066302366618331482169335864474000404477661077427970346292510005117009504502236844891726347991769961124614063351269961822469702679807707772653833225732092616485342506966273709492395785385379833553299499956596237907446877974416647682292764399263660350174971713642557555723316846410335985649060072363798264765576649995842248251861530486698448140893351399830647398844160989873354115194573273412906621877374126958466902212972510051762860982591369395953030314533760528971109168570656699265865766095675473419932686666745769382725848064972371889910503652031283015764485385254030172747636177685687728974749430460469211677167059481737132852482021167259357706460471480347732508490802875716534167906799833167673821312412520924312208730434694421493723744576986288764565974155059884925204483009039689386230135593131834973065003464546847983728539035545234096302025888797320993562517568549700025494217951429282900674276450500131502961592985310227971255852310399385536874484983493206233601902207064578017806731432280111072304155326422648205437257581968153837439222345078125037605425340780372675382361630138760279751637637164183705057040242780073954915207364430230950473591534154164863950629941521097952189586070105251031387378666647828246901324104864451682794450045810814165585697030689395286142518553053708232772448368171259720359502429470052721303218758752926673922028000624170562331052650921241763201308154632896049574342526361637428146108290090138661960102995448153352797058300975857557875650185817110741849755658944669404030661440191815256098559218294308473211313280296355518684554312717260793828494804815706844912435074821491451822162727147219386353448089477460751517941023083203079575163647808778985048454365115997376988712801901583022413818205771772461384863572037948542874717508454580520282887654815156365361561168131661486255767380972894582260255067746345671236653385259723136383523739150497755492615479791327001230709251818446269430043264329708814493786732244269927407482867606150311078219520499090125611381685951567085181889151627115097335135537515805844825282123795810675935870770952787389720661936487681824462284271997831106902209677348097152447969939216562125818557099836126061460428444043836797950426080522526788753967119295128360603039539486783210587333452566365670443097420248683796136403624856983569272807843703780155965560490537984818993049094517922067382039541796212702591034371629795273680365411267683956659920093043389568629053301050484367588302104783133298238059520705816156073673810822267421840617539062307590278063896716963620163541945129784898096770481205033255455413713889575802911294506186138755256848914390742265215596308326819819596233774442537032591911569653835424311976111422416907979386356161604280045293491145239307731461445388343296952637573074845353336502298797154040913460964502803095284374656178643669491253799431094484068586846353757174347210225400997124235535793325018061571590902269471831829299071272364068685523861695443898091822175255313326593697386110871669577391554639622790754117382795727873238144555486628095954343382700497542213837597415277787726968644757684996701567208531821330288762324330073610835997241381726476062817319842873566967044037660281280701717781902186295817108524234458425132809442662765001520525470004631093626298034690821825369320160815645274825897821220835730931925376851442382671811137681435721789180668670002803059019663697833407575288560799668456926890924507668904396134012266961195979170357608743188583998607374484813116792736506248864122670154805632904888800669738762378086997917963787590828075277130614166710952885076703969860036726653356534805627555896655547071759308237987316117777588143987857429261092945794986698866254686235149801889348758432355216632244448888256205041849450570345433510913970744372655113769977018346749367915656401666040186457562429903133043399269315293918558204905098927471688564377942917326530962553369320409779444019184757205313389453021284754660214532242030407958558904244604761397849535479749946135194081372320384741935195528490419161586005006953932816816786887976403866147447874769400003901037945594138182350974304763962189866996645884710384960808787763911458527973957005099610047871661157452377011419456163626010526597843509671357806763195430199499597270159954037488255098178348705945415617659404323607354119247680777458501190153923057351796644769031403720870713114147423379924159590418199403495858215161026277628092864760436122488471651405707961358180809800888631227273944552578500046697032476074684034626312214363514520742022273271668921737058031911109601145616290337927354606695999011090830781500052046704883784951249899397688322958541794119381400942669029723604912278593289104198096582505726211812048187190295925455070249766969274924361321094547704738422818894295017198370244652610919624208416033377534224603819777780273195706664884827972323966645351009439449766949224235420750969790146743567275898292197879318932883092047657106055584118702595082838989800023018222970169998013447034032812697354892235219446491019677251523886068441873981030290935125612114154954019003966029097429388083498350940078083446782994625795650345244003880219131468187523583925242083674303566411463001258018087215041444652783093358455707370823206732900433766637829954998307941660277843362112973129769512848205357870545116117653338168385952782824113443249410207118872727613338193236004126547997236471444225362991653633947259025023293493291787965606085371345517216427208941007580678888698860554174362731038618054644021987950551830233063397060662747516393582884449631323881322109719460722805670357549198634395284483404445802872488183142555943980582493363188640540342239825530848810408713922486530457324780044783361189631023052797366316391033055517486056261485550774832363962358623574441743293681835830895427710796860395552635066757918777796817243823905192234530014290583498353156338415441126054632953020057023810933853176611834070429580487281341301595268241865529183086616141442979937294074370692662756251075778896620394891293058431981277852519451943527435335502025194099217832324667405752134480307897130278755317803607614804278922275735737607771419265111704956438930498290822419277245287602594934753128497051456154010037181678423329874089176153032307802474719826806050180519782735297324848128967783067534578800079462808633775690273809692106244825925043023388827273545162418392295160045305971707681683377974137360620989132982505120904440917921775055697201031591689101434693664791806080930746772097611145900919139437842185201297432376191305836560865007909629089556688319626123270757031919722916920498592236819077212451633060617550522809059477091798929972514837463503512428652434083728562055987095549837737982211370672879837528956702429074145128097517090191812223755873021462050531419029339276946446189790560014398497463099568212371704303468211995062157050681938409745315285216102384065958832723800454641847213924619605791452327357506754008937865190063740885017971481921694277559660830193542390690519152343204279134460590738923875184159800389562068425189280595825702915622553927188807622748026860029890248062069158752625216508827473134320773150499640492609197643151725221376612872460430261334066658084048720307334230251623099992521578739476874337244428744925581396745805360176192169973010162423795880843298717171784100835404257019676980497192914108212842788749020819585026625190142696880992371872121636385613782982107378086609155359641041090577561669945551529902681478251122521386416978033692519463909206714430495502630482027421392594053255250967497160388689490370447165128258292055924352782929566318673309532950148063170045866802649945162332159962489948718390409491785802140055501271357690690589211526787029743952047810839587992193057617546690709081182269017453642992782276407022695305068847202489571630207530359169487215348882722515499786182935304916536469866487998527578179766282845727339390142601911425837354746411089442144243126152080995185002364251187469164453831252423496368407928048127578427236936338735002077845432534877491624119323251262824367512587100728336542796686874159748736836961193092724269217257552818876748651265841849558696808409379534368588372739831870207094848636725320119912797575149890224420237085281103836956755693556881720679404945616164869323004936824909393628331297877754251229115163298048014723734634906061057700553865730375075424864904933002322094770345931776090894659470195766143292345268863471774660713175226738227583594491732815715623774778074016747060304341736191443239283739377644093043596433583616618100999165778460815672511224217998396365341902516629583718381808547937571676174945672569360963592240801887112151958435580931075625827454065281256129192538596837054584560110582666246166297854303938874188572253378069211613285551985265817163687381019397354093386750662639762108846449551708417263745500977948571604580539441589475499654475202511705032928690133877740094268428139224803545845079194593761616873403879884060498062653276410282707393860238607866171331757097315303719153697116229156114164884538031039847462741290172959096590243780031842981291852613540179879382978137552684224872789791646538742213691429689937954526127368407137250599416426372634194210618496698200052486624677714650655345763066515960783900711068556526643349496753910102472216889889102743134597270423675285634922478136719007839569032480091580446221387102855371212973742611924958849763486558094485324949528945355857496858767032229463054272956566068809733900605532433773999486507428919333936646875492659171215001796167280192140694801231015677079811798903519018361238248039926842842045716892833972543715224000533903781044661527593392367328497912740891899002075343750479029862096673687922468988850547338782136836762940371262141772506859666433865231298355211271696144492232312978491229200480526390113127133160579873793815214465879434446967959120961155997593400301328786643872203536940542850448912212074893535243422679578222678788043129625411491542410418316995859345531032974241380317180681753079662310485752234348533124740946685958193959403400101115065280248647579038089195446203619502128458319911919643669217945701144920444096783683151900024729619789263312216674569377778436226592275774479597940957453680861587766759958973008999723980721427343251188092589893730574535963375847184772190688147056930322004954941802489820698754155426070283535742888494135314697087280039977601553059479346710926775912135929117163099926372262590168536418227882496136124405910640656830952440419070796506917703312916709010720714359888337486871508531476378946004344693117764646335710627175103786175413984552646579369812833846854271022777230568295093373818907641928888780689613012408116815085152787304746998979124965382181887139275185832823146343130089916724274047882147557036500353249971551966395538461886199265772587959308484878643374730692568387076220463562209584816929391088002783853413810186610384537027765380005379995218954643067649411460950159405976973345951275364133261272353823843786196328908101216406043940621169805884212143464824785107645596652724381374655934951415460548478553932014137604616765672344008409431487878121660766532129021833918044493746879759264099127438219541861727547925654405946594773537970436261423124524333463269797616543458065469742117932775210548701753927180885383115598364163911021364361362186938286102653113279004481545755277577336910331792546497520167187744008209924018942951731487258074396896532777423585458454219984455745517625494074120316483363718775228288262969957684544904629746966013963937122907109387324601616357431334379653510038301563710413680963127955802004067698347304079128777531061202173948814431083676749890594642436680151688743322010681721344525296109665042654277534277468562662211555805977283201248450499731270380970192238754459765234432238218073994971857661167890127739251143270138866792493831596278058693036003775369711546151939569318286826464269551743236198214773534929807794536269936162435075363952728795684333655711406191258748228382355733483550405174607050981502311925408992185388832798287314402524283861774049744969089375896086462397080723101475116734703157407673946375534656750952729661176616273560745384664555648559899978743910292353214752038256227621757845098692391154174671797804937377816775204985057216493748793610099828033075583033884961876231638466903200397868421279823976987335542512679272836280000796989998277086551411825636074196763463408485281255964429872403091460917402520847759837959734015278440514232480936831043531743063703509514875149802138110141844289047101512424248464929690269144319082951493844079703251858753661163020758508240756224102327771617758820488563965564995446118828938643913323000906944304605733035122378796675652584788513381131004106042894654884877684968325234497904304823939518753494654820644416779337404894123048852720112363780347623540939247702763786741965155605307513165258741308905964898986937175997682989209376690413193759270832092194771035982930498821862086127120016511379236158198002846827317656771103350112379752137256761036583686810386906666625634201993522288161092043746952530478932289630059673359489491397685766219154092143118265747058627731418853665671566597118728093801076856684182212470884593803497847277200161492376875895972922341450040157521554003412477430942631114244832110814099363532420061735431139874679325774997676458841217940092294787909618366690863095430337504045450133839254698034681247432155709481134824584856840088378436618069444131721963230287645268994614348179020005061334931261993201705461181992878745695891276755789839953779904331236408793284790572813635975804809930974324982229948488587457710409109795224661326263634954103714752715982432648678574306961302809587643386242474568574070875146473022478323817855042700665532644754535179462752825857556220394893299648450676512486436974470480652090340119877491008163601482840806762619163942909011331611586991176613612947960368901464070135066082325802351274416912788779136496286311385884436966156486800518998655976495127866778649922103141161349311975350991508208096123387251901974366337109780119902415799800284881100584032244135870793350706948893405299559807148521074762908690694564011015300781065223120081436911148087010898399754140058016083395729865462605843194231670514834876063772104882214551946006148648952485677794255105037106964470487353139743053307226382300100110772504277216548584459703283267286735468299252362536941833740194002117400596154429445767438127908834488263155481362510017611466184534957020102774196136618131584399141319658954767127734151470237040496851052635773282516480244166888866970089054817375619485301142450370485333936752727426166106587783905693272578851094159842452206484848212770883861440147396931815525061276680408964976220062687758394111996056439621500664095228314245862004930034497913616522845174553875017393201909763380961288231391041624809804472953958231260660045279189004744017554967941195674417899795976067473787745484138981552540709768474719775420821938666280571157925244318170006214124881199804886277918007151504426004665063033502915727663136266723541049363619414893926544754777298364695580489281681211616753260489299302035058659351777839586849077054427892978602746826735254554981054147302036181671826957598529179016988291223946006436417269745118012475094315063907219838585049393532299333493611501582781049591872898383347201431907589639922556188742009772688658369752693583701805372132001830028538528332139837491504961694484458963416027828845347819048186439536928056589297136125354643676840482348444070596783718157981719779528735523348780582618681840274135813942016814869221301710438087504870331216335255635129980961260594612848872531664508886370076079986611063645246515494640909847540727927474022691429440795596397537672626595841040250164221869949164162918001950224203131121492977613303079460349648762985429223890008868864910976558554701669626424175897390017988873558084765950958743959806554659216590265419767412646899424501125212299114892081903154682733868786359090882531556516178434830366258338573441361998434446337858863307765520915520070865350336385379445166901020250120510633023708306127960532683957088265490157080717156757684516638212131450639694467705399907536153541062336074316524631033566451471251536331567291545523610301762285521898063252757969447351521715525899682600814685468666477398489829637096075801826646035790872014872023888038111187963126414990817251703106967657992043536228335957233731347267092364031793020107547096471079918776712858346033379914794264828512493587915667748788121832805560209882612385826744988896233515382802063693868031312755059141476971685515275967771518260075547705054578433133527945379588281078906380028275465959424672970334583085623335782286569816456510004980055686412986941407358511318779609457196392913306869653255173621895061828816033888086246331873075101054541207870567724151900281371633700015113462614154385959195915479498633982825744169633874079190029593027872435389962622674209541831000440867715700886391501935247229532928111224286982798216284192626530193758633037467480032600388064477860117749751273274569687555632309498614739099267124187656425374076122404848918220206302177549558679904739872234361664649609579970549977527292008627983831883340228129328590575036969916156857367254109917459366553416324358945921675786892870447654544380525243108413555236878546346959422558866259245700831096653583624484228869341262365691853780291606598768858746625044151440975036571713892352121366987567624896832142021933568517555847577015632294542545862410031955222646781497349144373330463471561920329904926081152566783203874551641958488680978568876788959205570547160752066050056507464445133447243419291360347425653761401655933537535784506874024560448650536395692387281171149465618271499257583336222950056828875024943455996249594109009487762698584773414788699554075116894637778559934214715216735904351965725178495406875348740424979721318459476262487040334408904846813579297646686918951258925637118278926290992905792016272407966616577016610546506862004695467774969889483805309181378831061103156111601215108301305653459779965781775908901073774023834094779659619411436930002022211253513709540249029108362682889344790917228511258849317818334607198468642125555137676227537945825400869002671683917427861877167161433490556565277916753920640402619916158859366374141163236102221658310677059034652586617670017627263180256926710174547451609674285350071481776011982002785486869312415829293936847658743047099469952855078059424514380961550916513432328945240373981803982659340821877875298494696386707252447657134242079487033542152330409490868185911898127032573453581550908896854415137229683759845160400621911420782478744102567499659547753619554976494268759487587411843531076548321907468405982747077212213415150203066242644732492821524116996204876979526872411431776735832985668769819639866997759487043043257342242954781230159622645732610628889008898745068740481019974458620763739346727432288091259616270444542970417838927057371632213279530800425909238042102938752676056000408986325464398530702112170395793756816593972631827531341342424950892365374568475097190766010509937150289819131695018802946246400739269931480577986340971054382675521867395158577373527699588580819296764696034011508085173180902424577177112479835608898929185644357677809161362059819091522496500542498236001430290504876716117950567608268817724534234702455560779483361215344708575573904921597261131837891695767531018037244529519464201381282033079761806268277134534094548985425556226936186739660925991901206318792055999977622004966489577199780205350819453907463336764411059029384500293005650203369226273860404669247346412013352958990069271450232137409357924122898714767765805021917767447738226407861315034663218595289897050164341170525468839215017993368134479974453660692795620304088066894490915137455838213014975216730797368227645123815873351622493630031443890051849813268948416544388535923337465838492083559403089450800496810833583356464957776432647378553644291124048983768589045901411972098740628080116640446320924400087962720051156182890658844097698422272258351200107834136070771140203520331545856880091350931069820481701119129036090565039466001815069775982438572054318443435348827901137191227336564811328256255032335459011713243577918810391712139222991763427856205188938103336859479613644926056068246202779131132528389211267785281703900297762130736134201435301567334059896541624149164357875258588953915278931708636662238396343072884378575626366554516860844512636700611708028479250355369106463714516995523118476388596763410915170322138068249670974101877402681303229356158812623478010224937704174430573886995905511042817146940897290442366131746068129288874870740444035810352956664930202308836167756770538490343778780227150312059485487158757626682671702236937273631832651958410307040137917118988647849192224459550791230330017633637469685668634802814542742363744487171369269645336681003726427653663162223217056652156187068285163155165428783070741748670738626258130591891407987624923755925902780076308757144919936482137689543827011587663425739684779416835545411764900240481408542488903896294102633053831128137060199471271857460924818388814121234639321461862928527967954844057393457691238652118549872003831475544957281058334554797765605964072013247739845579709440236931902939679403594211514512000489982932726417431767182239171966458586352620079778696921725827810148922035844705622905314826937399291652015875029145077230432077429986254985817137960478562211680702946128981952264928548233752994159329827044315889569287283168885482781121840369837664247649160314855918394331497350795759718958465309211206835423466427536817638261092461124908338780790491819537573341285499447367531251156945570661110766308997424897670600641808990994805945925297274186670827288771647689163206205156711636928181408702675996571830264306668069769140743546651346433607611899144653859586247114925808284685021774471401193065686837106028311643843274643582656070670588509230959968672577541392448128887044769290039727359204682361401178891568637475293231204637703932435585267845210624586671803401116775700484283468288848697347443522633587936199430915339534784561054675294215544141985481632965601675609750922603634301285195395212821082038629010962883204117104910362425091668485556909770573357975454503787977806352166812806297506400841619794375522083314727582116235132142988688377645576599484205743552164206331133565340086232868259387583566425074147569166339141899646353264340392472346843938900178107203023322072755650888218462206790316219494969911487526044342168637736599955659422012828295097918588161665061712324972600766181566995314089558852385001261164232773594069163271999879506015328244304437307013085195761448290243998313463650019367580806812922024806538941485324680362055050145116614097430200518051383415943143094235336504398620126821695880720449617948745960016147889209101544612672557590323409016655919470532357463407875144932334400494722198279551267610600694474482238282149192161250860176062077074831932202604522452654658094257434573588124818374958195063414410623909803873033737585142582799435741698382126190893753430485211824738720813624914706180329245095915711423144550732287832881255512168914136741033985932197710450627002655019782817205790509654937349552953848326357123112316891124333518233472467603581262264542448897916673927804306526778490158649605232170708627278212826490426401788004929336554899542163542494030373053268303135640548838872003312291913442214980178502567602810036752966363287403769277330256027504085778372297971773637449303187154607971319975995831168294902778470033989768649805744824289542054046047888279693969365839718968293523904250233291291071573818600373290179173970832542589292707144018327709297567389280754325565699330955126891118909994854151291784730388741541410420821982915720756721541417722984464645817762502861002700756917353133212279721809203294004488247962319658595730544099833202288827446533131401540451788709879214572154146037712216364552505418879282924294453389234832629911769672045800480166013309125890252224315151793732043816159458487349775632176544984322259404856500027380329307460478311251245001511490210193232609888608560283203173069651685510385317711496820430723454317235430746253495000775979234149918618804308194942547830010360454102656355171229537759197152347340168595968651016404691648111326941387916074204349102920390214869016427715591631504561760369549701875061396946912108577056897835571973463446561396331621258832107123853734150813167426494511140947093982208896293029336655091647825806626025898904584669464560562440189372862880549125958513133126486177500827806755559360452046240662072807656346519544869327935633462205178921582244187291521041620525763201441671007186604411172446558996410382888572273766098195156987529125088287602779034777501563945607891898870057383427562120518450203826848058575862355305767526133036305679010954881963863992700368362109034188658567770093516341593144854837091575930068228488051069433860240905854435466314907101326182560092503315597138891974431332427752625047731914539660976736471349701149899604552810460442730697852606621297597440469159165151865234828492150372023794155414156111366323344419150668000449289821577124767048782114557808412643779620851926381076341817092350259538699559825200931660710910441832196135866587740034736529261228955331102472410724149930338190057212660820271146986680125571356060242260741898771111327162855378239430515721487160649570413676892886321080405639085440187685341305343509837556467141569631962967905750353370160566745813175328004632591480188498121152287615531335119372923137529319926606855602385418412363326061730409365166704837010647174420211821726142221055006598081935661253259343937554820254369175057914815768371395471017836768381194163724233327189359393464695044455440286668421574570284401978406080738597136233061803213341339596111121651077290515134677427196097421974090390284990269759630177729127165952684365766287361160485121388175746409237577337505635273365934962185248911651903151799678207933842078842417340382630052580052575741744976634354148210438375069545936904798652664069392851210733709257834932940423309005649664904311769043395747967776522974604824064733274010594268947741116439853308703469349944030243889086723187955948732387083488244017337418355239771535830787333583242128997062930254493208836714297791956589457325348857854033099024820839226434269784058038552240270562190945640436531336562369967430448774122288138148722337831843532889546652757142229790796868229081286746792118501263373150096527640964816028515056511843456873713692795043849254609267138387231459500200236791841847183126118249241053681171286255365748004022904688669269985068993657031722629862095047115781013217626893203553219196547838358749672468706769834112599372062114752918168712469482926385797680617722480332543380265531172959474025105019970949815300652554943920059142514885531171364211888383633821752227701496475387886569061543773747478291238941038445362516242936203170651901501537214163145753035728367461127761693026591015541170930569818500854208732489547118098627868046417969982960119733515822998541680729852387947142055137528380002315402992479662307903131831429469760124487858233461622794031865737891229930260677067430258172882682535485601707458100921029365439976171233160401169196851815985401294335853202944249148503632626680466671244094694381483953587086347770965202068011356100589562336854592350886020040814380350746268004200842171865926176687650093443920090925640514723243816262269037828166981602641216963883088392142959575501391353923176150791266985512506363985994497491392003031544245939148467070692831156768133537037454864266309617410411862311428039191974410845692217742149364854647619634694608481169385232556525686325899010448479721801796262677906358493926478720418226047712019964772475001168271359200488756559343651519842140478434042622884549410981111695555288606893711321215053303961340539155500980673789429767255125078486197388443387442782593867135024068223362878641211991443007216232000873464473215196019081777298365432801825323726088592270002593118435521728220236319529507598250193974070936479692518307776003158635922857431796765843176084814452478822329377320280507239631460123420377768640928481525374414198793326410877835416069385442961603771953306972344342281536978846054995220593422877130330414618927485846026722999962680519342160420162628692695932455205681970790299328524365649652962742405133795918912144287156826997422405925100275695181459374289965219441539342440192842411255033981366996260289030668462872273724609494130646224078388368598048288770560450497634498322883285916429394658841718505258591770538668306995187237776320009456856397655825646863539467554409575870889282427948649593134010833401921003829295790258809131634535329920010566326967432983755282479494927957621259493895496678362077831004329317612120421423226350025272034467099199986703795628055075282074235736491421166226257605329669881273835571933724332167411322933727731131238320830084355596234168829381246586802145783509836920125039308614381185515456867080993653743479525616827757682981453427217613463581688968879053003682993720865587400925153195928743860788954831902575586360617319603864939437712795692255625768680243256681225638133611688045769149224573149852396102573169105810398184959059613696701882390458099808143126231238729648994137456713321413635563928244914236878564992740639531375730320013060110102950723503558491511194718534713956684587766444588658817447481105962997785515735285959087688587548993351280644799389471348042726005154816132789267336136681713322398189310295337350111930736740754270599826611895565265546508114636567475450853053794531678438427083294459622144055343100189063318267929030548422314734031840173599855845615623679518686087037352680892285842963564978026807321915703745302041032456975798813093447669347000691114827131261173430241366100529432139019547196300989381973576309941502624836555202474490331924560642015937822917302677652462300092292221359686778285210686792685005633385961411814238569332236193753485347317850122938687709066993493224701617027096843139563863992174335422260894174958986250338135096604393029553869381778006725286616479252563518340729562816310437142165343331860375951861924958133213345817333535125896108427738749365023631849547770408830352140681400950893564744794413439878240437541938033314730497603390919565593253850002327723491455582022709079402124972384432813650709158630049396450654735579399422328265920049065462692406210088130644160562503267335134698604313856014304521014651755962961744551526145450378354460218481405142169782412481891949148701409826804207187144269918948232782625214174673518816726040486095632411440535827898735712177602719148285630578036377010742782985234563852320713438996291732945091816812772363536334438579164527112733856383354173097772237488308523365837326512386062498999420879638570972705747310176975077638395399601335604029472059183383441229886878175396814993215575654830548939008944256406741377382558841219844300078425838394405336983135617879032666811661595345918637226221602894257997839641696080948440270314650685194199033825827953491034958155709591502962057306319385935112762954535042041587825314866697135519268763324955604501502582720499147199833854068885443718449917655831103825865501565604644622900837693756236013930283550571709118212876043474975791641730043640364292599303572968262746146289061686210011343197678913082002338521587548363867410565243411233037549899278294676742936242158811441960364036657673801913120096562709671116668175264014928084441178415329843954002836041726915384609577389538081700651379737142347226515369616543513586877556068392826593648064883321926259346299814040364534984094098804132057651634918736401898645723916812486605511646731099950089411854381552094607854611997744514296199125699058795161063864622393418835634168769463051851398850926106630108313470410240336177832434200308022314461961188340963850091205614299420065321119941262275326955725729237642395752754318110191081391491842449170506994525740117695636432556602626363698808070418192875262001296216675487089192302945625995196750958910091833354710339715668191165687646641447512662854185690933978525280726557227891585521669124162683768918959302941708159664518727659308184738236794545147427972651717770069817454820336735734747649201800446974074179855974996002636878643147263655183338918320283350890809566971115101424346845002360715587138856584281107343277983030984047570740200206601592367279177240442586825040275961111872984921816493803371443840618806261058959882636072464002191413926087470108962040136524174671291132439658706704852308925833805229883783388383869963957004416944598841351813908865485187966668563987696292790080792216448383197586381367400921451895255499480352524037346186698663604549996029176674107525235439666555512480917949211004585054861149465696074196897102750995622104847528830149896046526950381801340650699014365636647760886502946755958295223127354366338656330896491423721292558224339649044286160572356992318068083923152365452796783669590092518167875772864022226580164685556359320391970758169261296414646178618780520702979304948578965351694578656003559998058805653071797686829588439940977507791774014035114087350672048807950651882848392000425200869341531782665799077289234056134140827194545420484230295709837683002207013818925474735184843219630822585418074891319711328766882164742136513864741217824853900760994889897095279027029241772896680935316280000632032653881318915254624727510078211541474043210678568352439932533752572026953388628918244757716630834863840406304419886231641054534288495160646711979041218043819546536823993491986791365106778899820532496400415308386547576802036194995902579883376686881875223312866110431472973319463559854001874348805855175686295550609082850388410251477003055665069159397825399553544222709149539532593718094419949659501136660739065077244867805102439457744220120850798623626553898417872912478176029049858352645806624548067852177639385373191968971631534407797708554929300254344485654943148866238874474385938051237084309112148458863803373850341715239375842133846393871895696058260868717155880384354099849511174820591550391614125341352358632665970453748552550952150777989977523767163579097147200553042265561066872085462984024816297021855859786917872467508459210506441707782362675778274710769137138364377060942136631296974083194717353965219795211098500489969242246264814918042391243830814949495268693515798734867386436744261959438249666973857008932861614037228179492979624607281377258707852450502808953318860211148671217653011006037317538226586235111924156735654006761140900136046579486111313472851147664279678241707900539556730514957218801670196521745186990200928376335147070249076750160391861893137845872471156878060595528038303489072836368586650588620988619945493733090047310602205989475602212925286193648832117408936980828494843569523431942449277332640206036607171180457532173225287225859986067876098342118325993986018725575411676676863844971028885017640234026735024527433641456639227086076398793042208715080857164412762939308074341125345416893151970672929505041126316845632094972281080729508787267473454720733044445275260251449232571731806402585525580193662734874948940734448244481678811842210471024715401593970308967453154163469468377265928939096526559806993404027982256624853475855593144776082443435145190782517601493917615952451624958435945694199265570481617624060122692880704511874358221631868818629904588461217017676759930757040406453004278789690936341028820047017874298956313050442196346213471996933600514575105407561967900872065655929547096765509533717505133368618242082193790458509409563417955452700529264041070882132123132265117934903329715685522127706126863088154512395656042609025239185735240920860337008701130133327081214506768559812142140963689965711359115956844902742360389285731738711712776825223001816254334283554892683185792380943174769350749485226205333887494209620143336291953775691925019119871838760456672331195998256909455276816116810316851313335576549562626092260313128330113109837093085426557902388323282568102777770229830313633526399604313082174807427633127657088088307014015501260011883477472492127604994482583439608916755254017198091043071270087115747540454980833257585332282275715005406563571229621201825546145500690925355416135696255666787478077268133051848038557979706957627109039359646097899180777370120419204753669788830134199589900803961885058723122405833118429715717973182923782068965714022212340081905016606253610886698300257030854455990229830172358391075822960652571446564334708725443168022563099361475601523382799196981491784872998577579492924961422277174859279924038425389539542938394327381545787192173481146087207313818760045966069326627084890352712100951519133146463554160656026759165923177724345199078967754197812001920846708723101636462553151962558962425449365338077777633914852926137984372142905274819732935278087705443418648394683452093424681729174518981612764526435095699079280598425582213901460858411715011236872283885825274173012717741186542374434627319287419271438817267953606190669945268906949316292640502339482491404578586999646824274930960565406305485011185795828579634978186645520660492087890361220115680940497581878888700341912909548384014703948215696612396113711525264101303591682987664227924645750854688438276750261109536570903188057738904291274983238918675559653118783587173640890441338797747051979871386690716630839908309181481358723203708336947915790596559700207104012743324798759153200585276332840172281619611010312328359007479922820987997412112251573120908561595902809181077689150477196881931562099480961962840801181295657067815479775842717861491416558059447008174076098629422817163913924292857645114003957811351204191386420471748943668556794819611976816818893618299041822164649477827437735665340694480588557672532504513261575788393888359081051439386343818840805644546290796736645779140631158142664225327167547761658894893616749748236026423708695581129061877696966850043482654820741515324552471152575591401214957762510771283404637764291520540543532362208141552050501283788294411393559892692631029256464488632659638221524974382331430599213765275014053414878529483094788076070943126850712892310789990330625907458852552260894764597972351218525506548532368973433146965769243685229228712153636034523977658287438574457182487000998229080119350937934358616146225956869506158568817439286427837529975899916989216311197690765296808064947478874465675773447121444940568112889258504721991157289975680928289888143355763064061678954469815035673068228342947890052731946779268563243267826038503784558991459458914472434600547985507860757792435693471258639219155614739273319389479078010656451105672951605362948781752866015286085569287614071189506745151193215738971598287333127602412816988893564693822803597561695575462881524742271824207334675640551724512920612417925999521006575333701414347123750239687253016107101190752215885784225722589856937792304378703356462620776191373931185012575041202943185019847885596867581398942008470650386985119540671852594107395905875803500858723394086977549796301541812783341800885957935602516260533935676456141806160150563553401513895669019222638435326367543149239008501933813386911477828147303528128312305649642759154879380490061625795890629104043473635641600403159455943725596934714737771447692530915639555810291167461311731224075733033158393611343955192762863876759367988181189782675749321370411695538419445993492826564184529869003370954859011624152971490306801665471049827411664434154922433622711824082916741619313406186407305838604849807424849093232338071890891751424979103425711510284627509234262545178803170062358983918087137307870665045942704475411437306654532302649808156066862532122351648422851791946312292794449999162434187740667328278146321167425719677104337027827999171066265437510878164894583048668133928713980757180707236588424511624496924705691287739382660681935104312470590604607814030510822852757881977847444960188179687137895812914565333195820138405796744435042741545692232799912308394469788109882833589675600048127208556435010536127251298867066166879393884327383335421953960439311015868105807071708113308126158727777736853868682728751650516719007488787729769903455789882052347241719359297219065125299887498837019975136996249343325668882470555083141841012994490474352092514196891068298432021827489805151200880436698791686785929831616786332567551319044221589119662736751197421218477580172730296949339175154565853844736755665277098949424646349391078341854651972688189780864950567466889893270602633091444239377367785859520376843637013782974955446447789850139790260629594822321016001610213197910660078016563350398346180896190008320943704686947469474108740004264671609995891977691177934825149489033405215350807166683309418401734161033849072800204706091273248987404685096271607028205229030678472696907388628247938370038928030790502113670433711362134047898370368307619234427057884924181737674561735981173489724675433452746550917437516208168045384434548377358241473433464796759591285146349389906490512771420314776750723533011741120618928523629585050364141789161269720308808889633361739778276772644617642253056454020819279814114176531924938184212825493827515140737928856324791695732630037189638383841228058187957830355155796336361427825832379782350469478553734183931072745373724934544671786160162445414785190951079027261263472017662395566213986388580202992723707620870122067929777099770307179159323326577215123577372413029070388851287954433875618139485302713372665313335285782198626286747377593711702166853117460401754472803406468239753917386751947882162928490564618228417192730317962473747625101304590829746790449398308544397625725646213119580358532915700334487955947597504469968487772908568588747008332856901711503197541977633683983453436502393730977200240954869671821790974818464630970629032465702313523205415342526303628642437398254729227023395375720655411245321036574386120858829417286087662109552384428513844791798043560187337719833303808923793445733458748610882734913990174636569498759790261058879945129684811680746385626738708830668989598325140993673772566084907577396087357304880083003001655354043243150535881993913438817890815803074609438076717059111117510310199793467396218736169407824882768641282462635062530439845075164407927316163608469716800808889006376368819303618693819129792780227402391681170472037419499576584228441029664335098976207933958037664687666471022681685271006238896053519689186227683657491828219958805618980504952610837009317970336446475937791098214464376207174322851056672137379711491839325037404413902638858463891379394380142674233398846298970280521486171808664384595872383185841888297737976277954372346104452274726773579014901542573565183498827578284987269285151441798844536963528841068935930120948959824707596073841917761741641873237636486996959778325342204967445018397069578214864404239814970355898327032006620540795168235783301815398312353949518537694771526010587378472518317883700148634796216287093662911702261471700809720973320939191234009114627304917757528155246308750724386399194827850791025657786187544155365952090443783925890030362823213301150881692387223109836717756395116075427491892268517950424084973974246677956996446042415971943575760603916832605796135508553318841374900561005735103934323252859293569346072676511822101217999171976225468176042286683969591106102979403486245485939105215515899235442964226833101643246148617472758815027800462676562797883949455895841637392153876701619501825099040647940026529184583887664638557466581202688926696476178209647749378948285560331621205591696451521152222329437971569521113541413648042236701913064586653876106827043158211710050044528751682770841462178840456980420046688588435745519805338300732029560385091957175267211472702897521579499384172497334958738969925162614674631747265236849156939008699982417198480496071757316322780959534223359135570168649435033445305829782641509648893599743417875628340997916001518554913553866041784116248582376328078891792336928252716353541328917906146057230870119134456916293648756909677227195690501766529264488165593016985300181870450436888551530702907816095609082131366617377840543103238628492138177806861821738624882976474065460367455634523509111898119704230296936719103953381436125192817452359401491752594062629221781008384258307633414013052295779572282168954683179123478970213663667303725650717979634672991074266755934656655007999695920061692357431431157696258608610981341759423563047533794379236309752647051938666272691522035022421618606959133119679260951648630123084582670974396597199648693417873695173486952743353499934715567545728006973856893797685479054916345767575613755790728769806467792362080827903429792952731746011043326771381090025880519053189356517918368035137916393048753173303851149303790645021139014277660582690512131087132744327777271139035921241594054804907027309745800453331457099075768538966945938238360561091275446911605476036713438892743394390801972240122142436285042709879971899336605392373261410613743184011559649954464762322235299299017271501734308682156440256082348656978566501342886060007819851242376808753051430423704169823740118501533449362637756436057925116562119475590941249641744865440215041994216205331089272242315440871039845046986052539048666556690300907910826063671834301454868971503827456345870103838588254170738394514555563195743185714963174839015334408958475376499875291922898373477022014447778663255522272226485915162610371860780186406769498605352820803581271643868183953873107367449087372886973118923816562548646991036100382913538537343507213887553062252666456195659269851324125424223455395960355185243649807571139010686878668019025562725589116987713983351502059156918427781596873048492545777398784408416770743798962117122937807678692309008435625634627207407478447092522403201855988967829232601635586636080336239208949724169753792704132126617590863825282907468441638143309924502765890494656261226687061346226036095574249077127197407297024779455226419494236261097178428210989234780637224324692537915444315882043549085606421229614124229403791109579302296623684910800629215873099598852351052524862166542680687475076126139511320186994016991637710261855682436706374324101238705662492640073239614551750263383178838085838938492636073388614480097980109275471709633079013514411161794062881911720080590844419210778907960690474233974067251438580012073067910588506322776914183057846808785093577918985216780447720820106761578001879054463582242695542986339827803011189699094548838341552405169521893059876251550941490447625854320916374189557389601790820325808905081720478859509561671944329717982643367806112969900785058823133680874828953546207488035928074716053698520509677327236528881016557520243165897392073203324615500596042597133447459578958439950168211346804193795444233514279771681350114961281057302435141470964056921144711684814403432098026622286183882706511862797878740436343537795115682304191883087732760506661275932831841359881734253361393424665031752933761904423554765275162324295036179699683525841775347114912792608634839485413526880798123184948323374195963902162761689003060963484767715458128197491267657740863356356003510348909119061271240152287941019335177135071432770584213317339172359538645549525404703206886429732919206199361521842072289864822660488520343314321471244795463767548781264641428828167342904566506642260906771288967292313472672253453861647020319812690590798538575584347294134461416142182951999419335602148816727468797350697114241435927979066016371182405664159532403186485699718146361143744193258647945817476518613829576545715524498670195972506231993104092702296389617367086630896047393711716924271413254599186983293142082113690468995854020753848143122912145555588190046350695296470321033259308844239877488488034699936348529588679839056930110412150822562913368714305452309955744088624363700551029545710029207696778264371958080061759893747935641216676821885665906514554045398371854643909362390692036385881973158688349801713896110841617931786762058166637842728382545019900442928453226381130132633047186465929113174135915279363579943546179847584353046866616779632173033746305810125208618526357801868091087288847693944236874424482042165667171221527324737965627079553274640460902944736825725532915049175097287705902425148984760901189461647741019689286941901478187662416877309875515837319285883811956611208711366539245004147354067581969719068625706418614166295741827249678754233534680624643350042935302955510927480840936718494355088260298211985382601266379549984843426972268321069967015895065680684995585301518795237983997122850991395161675203834825780099649630481967826920841596203052190191578038139683348945261067434825156870661179606028535872737675146301499454615432564650708954953019639687395526017563475997015754610530870667488537850945944401715980752731429866169624035461360655632770784520971769795572566693997260715122975251245701757336141594788412217880994870353552664529839464065502742553815393057009290809473533706842337027610543112014459611548049534818092461548333895416117692108405194112472090903335150524559136197425094472283088491241207601870804362625188925542440272722763401801985910278007105706555254893066242250727991471461082639128281677077592665207066514468825901688795312989090595735350735941792538513094827740211880767528017420174830574480367065265647375594467049164192749456776901248513031695857315619621062420962885211422954916682209808656224050877000129919845104057294952322743385074672038949142188323793699814557800777835345286508522351206185475291147976331098759193510418540299240459939678603867099864261210710264472730015317300838765198480459751027473523770895115536633327805783040902623125232735492769274422296041604158140569213180588821286633573777250023816302055556363942735620733973122818066524211329066332934111395679964290199532029425135700783190425215868146741567509658470311843691602764339729978766536243096719052336243734958558003838740146166368902025500267633022939544898368596494929129767282980316746431713266099687519545533132926690775494514689450078326615339607569485990754714340288734278728427715560557250470136490610265668928671527833853256087376300163442073483378922422877698831778512137562894584149270049169032660681148836481302120138217138827866585538431927838698183230829950493798803116404452591708983158454628218367406767429348105573803798372976652191773468050934495158728858053429293404470341079895781282764999261804583770374601688104816501609482286382527367685317565168761315490355576647015774947559919128480316486020626405703940795726099517716827894235717394219667204741723266557409634595539733778138669518393340645938511362694806652964589863961906777527533778783764667854525124576319641007589045247146079639489455086925650308903488499610679461926604779094857087449431580135708653904204091068057233508029278527566661027815037215946167060373321464709285844574351024407043470118440688955408934736249037900535040673934136776176567847534287479739520607220598489935148768146008476438966523719392917500593205888180444517903351134248789359101970909009694463424177341112670015109339742730327888512340344894701821695763296515808336321793829638534539733797290501219251043078016934037912785676848706470072173306174650056787226648405693339424115226949389768097980683947493325162842851043929368549860407239020501138756638621162486861386859163030111496905930054083714756252864363190857428088530651491081202942930486649268570355490733339026626331654337013180791459250107496873101737305629114958332977471579263279299743838750716878488136706347730144474393835824797028341348329960078737709279846344927475655459929133052279183901111171576585399206824719950478853115039058533543983092038530337232495915179453069943321156921573200633812532249054276813755026881861609237266842894352456918035487917144086242786059680078655644002769295006152328881121000950548976198549479644802875467813395714685263926489424888329774226254625255503629771452570238095674019733555673562473247636848866981586342390098885749682757107170503620936266799248891514076079597912075010953345478513955446499168128739035701207395131318983030822290307699608296232383429534628723792446793080930167508340131890075991286750502560333622340799003554576419510398359245648334195262830429375747176397579002967646222508598709322668891927211792749957193948260847786692425601092434969411514603487162598634840256048362845703277926014559983415358436726282578703638843532119744268728835425880030757005716754399389220389218261403207177184075687769564680150445849216315752041026904474516623167914263405862247343710601062714551894215427170766012966793176816596060894227081375800618424964925743484590663166443136633303423261981048422273325872903450162696935678084515021700982557068190928451722575805824789451653821584224161500960498328438290881438140180573543597007067620743809176903077422867498676161272384047612690195932087707201975114789043704636856362413843739613734848294939679218899603211037053396345798495455714492369017896114024502913971016650877807665248930778394531228980585522102739607236235091412605425093282108421285602324620313334921534995248641310501522209431217799737444377412904010621951093110674519818433042251742864105011293831131362837119962210688299626105989222216095187966474926851475543711965872371527612091682118163684805651099112805396978615571704335772992036476882612086166143567626262565337345123508138371893413533338611708278109592868579001736457784872909693311302832007458131996410782525815019937409023044341177804474387998902136406271938927181720320915598897217809998956500183743854438921752879044776402337416553508758429928641274875184941906086926706419856104464701567264650349921282965080288468558079741411923264432666888817744077299357574883428151724492816584180483750617246179428689795563759876901671177581668541493899149905550108792417473508101459581419108924415747817938814409220600233321450510627789295016166663775364351474334956582919059667914108303002399089938038008802244926955349334024041806026108417093107861228853872564748853373670711869723031008976471320311290577364952704992617062205226583673053606070342772489449122791217898808211942014328820902639712772353735093380649561869152457623498649449893763641208423502079455703457357018229295569700017540766121800550666781903820482414999387946595444699585899798147306297906547372012407559260482152580834608765923415231037108031131160557792820937048933741944785805409672577676762236003014826603062525705146505457948185703811726163722984634000266021955676666801393525361512830351286671463141605510953818858890604815150903510868674345181519612557992297968590950870804928092165398061762726896805201620117864166511939478190092722637188530651790095889728177330816413521227658236349726463075916190113481310141716243036922004489025316239459558947768524266756349264519749632102704206664014437822476463714608213421739887950295325524927975651657775227116806319754517240333340015096768250565646100656339532600199357751935739850729859804052491436545179722109256292346502437417641444242400241975099749120620155044788318558897206469906981482397173535905410242300125982348672491423462411484945057620565980225189614631207273643898005900274477114743590208610922589209596882150423570962941161293907389329711639229749258953004981653664018621130621817331592892087798507635205533174978090931455331364326309543001116558789659328230265546571755312272934639971894978987763855757099258852506058884316622946978619367114930604550202384698922444530161584616669764200054391458544429887416795250626543985159902631329928087679411469414441633798661361782277511285680289449046752768571080094741538402079784786533529914089180635405269087442333365743971220366930657163273154319526110048296350619760930504514638724010283468352164834041128374959417474152507737147182731141938224485408749755012024914756662890378681033164415782314689449366191826775416051949139000000809172680411640426425036337899360303634346771951456112058465423005925738753243049902337833275154905345256489037237108602976673209496502885119562451584620956915273793617158222169507226148146054146826499481203987165751159475281003434358823647835786420708937454377658482325493106485004021940891513501185372954279645553424363151546931494181452440322665577976741381154928481113983414688689192279252638435740778317963704517131314761915363269061911244160714712381561026214987362156178321088083057523992536653230798642967024660227319020325219702060879026117434737140459170419004139836946948017898129537251338242141894987506149791586370513863048656972274501439606609946229906442430986469006128219650190402206935032982413954193161189656384565474015000287774794265722741769806609288009852596120695995332126106976414624060025725807520410305531141711764019583061508563428096565219637348391669873173725226781364429377774090254666408459187152646190288555995162039972696833017630102016848377658255852153735058556862688369462870068269880483805589256781699733154010972151145817338443642140515209970580051687714420983600200722421253340298630566100469277846149325263301545346076001288649719740607456188556272357280623635253329471985125776525698049752808899770635089529541547032442644899011269643217579024563402994786629539176246739727402140181904325511987995444237856410364852014953909946020703599709229969009318503489666436017665175355342466952000987112753950625696267790809377749057417553468536880438795554067951537365727046305378883617004397206134553454661713082579375225444666251908484331982689864296849464134597000353237798433594253340744830350490459936830082718398885825071280047297388969768599812577736755883913103157753574278921049140938642126926859013896519239791839079275391318673569383309467210196499379075543696345924052170270396156162084472919939281884718822259769024149199004970650193875791546224029864094926894292048015989215475566470626443334926410811115429364459883789807240080210737447916874394234671023174197533588216919873028938335009915607458659217441642522903294076309349108868782912508615745721388684204026987592533270713163873470700294119820013976657579185020046414176621573643339759758227415302257119418837045613044259178128267601462591887950248541368955677762052924598570839350146621924848744024177730447911451354859014079766882941636236601127663701455083629735262302669760473327336147568075321076965746402911707281799423736342394266693797942171360465164023357079721216411414812663970955593552065509655309960412759732625797077159104557358964515547291910726348538544912432004515797165596924815364564782912378743628100687575926165039863826901940541386136261065584314028740561154696837702809064954768698384418760398920298977496980473701766530095132680089173285845866438173623113536941242349736827458082922002787398632172236536391428496757174539836617126095934891163119901161585411298549678743612702370615709018493781947823048950326054421384976826562289466785055992735913018280259415899390189064569134771249262457015258538121075290525805698425046042723473420449863499972002723768356597008454509004977065976125197849971890882633308653535183365856314329962031559341765481727190226654032037182468668078354860309209475637227070228117869686540151023466302797506097938214180668146057203692549038770144426789035864338793113374061128507575670998035628537966134898117735949941389565925932250712260919918367073662949155659454052623221571587288376266172381422238802664648627120749124647747600227365548909147497518584706051176062117359902643861930766180944460201110890399929934109852066690709583166408079962167499423052538300267525080637742150191261399378193490991348239366532501399546265138660588639682456595617704117327533932616930242131262099794103657625475377177182883086834775486634749173207509611288960915124758459098925944233688911756940067027715416670774373088036428009864177879108864087133339919531663924668363708650801796342955231521683909695938480043320694736799124810296797139250783366657369884192699275967909577710840851022505100657813579832323348959062943540423290648771391756478019384322642958928167569029936226920910000862236332462071511834317398427271807298224106467429613392482644972800940619135156305593481105621149652255819458242450013133465464789013188199437685063105276256499854088646561288320518325015594032273664388975829988217412991976580411917610390667965814692307400741039652178127952240606540417706565052762485560688402591868131976275575512832620195450816741736754115273517663508793981666399085612017066933341174938356905843905552519669611360459022023882497092274964100242328635939003028266480940428292050432016709031149523201276185249745743575820582692604038938266017816153261635186018858736324040556913214777957815201578255910537233402516406861743813926266660433305028968042361662430516685960489302174540580376944132556135157580288482779672089439911079445448833313836136932149227047251107843326754614307704620721091485305118239187828147194340192780629429998896313697321018874270767609060267403680120232525942039765700344105655707768127971016868335589996090467698969151539475767855589230151875315309194827248577628729397008222856682381675469061921054871110487552642456832565238918589168117285662757628318067280839974812819242481131052356178282052723015964503034945737678616081800080181816445283827946964763009740869951427134757647099936591702787707639966609247900627911000897547032517650028817353673188859165538621639213205746841521841198492236052188026732119500025572825194644268994324761281777294389246927337867814719416400904732254044647821340588292128704301497565461079032419019579376823090143545955306478229235657956459720597681455800158304219405692299620370389155096319237405730811621431116779392380462380253196590144738303854603613553100362417036103814395053614367195242178017550822415263571536792935699931080353765629913321656338203858025041784041642954719711770248925615804304079842630750704933200868213483518586899863180774864273132651337767597066533435241588707518584480116773363644197778613205825093515667010988992690195994625196083129257007281349324230919270450574169310140704150113576840057382430651375149394186985576384422090359852132851481226336523439733204394755260243879018817936564086553149597606807747934330683345752374443644610410838980522757819052272064811367268852427532096650382320510371099054405554280179186628796364876212431911760987232377894867086770405132728457594046164714969188846682790338251783996495444943662594619029954140091654821424120516479335149812055352610420675956035388399828700316224548751039033517833165967119309592292211173384230851181974061698848389473807742294286164535210866609567880883476371717544042519224471395620898291468362150217411519851406983368630103758349591633580769383661673378394320528302093413279183608740062956872809396660968729083614355663782167428350109400123259559714353610148293974975881214938717329155350725197210114304499540042818394114338640051574621877747139997585615868762138010327192301121474388456872953652029983434967161969181125486560419103042173174013210405054833406427415273989785895267241011625552232719897192636187087780754555027999661832508679192992814600419350998660633133065569087274131592761241552382292720273475701489277912917613409887235217220788208805699962315440032256164991088414929675754008998312986581589778744687069966369451470346069800915845983395787117511479736173189317761404875903871358003922983282480708386990013020301237633181429399281464190989358450013124785533628627126262743127837509310037810993824874749179090211393014252058644540374806931239101543268361449822693697842431385466290340219369111823780894774399572553852385376051563079331833531435380849636963567261078675977169530529952632723383926687014217595308217862595471246850792766989090882367894954122841021458614609854387788353183099483799975233413870882986421286493923914608940497927090552389038270892920149328154548854808717381790846557283032672164735377068448170318169215536789192865744448933965950595691255773107087138943710784831784504950016579749500823360932689047182806504920965529601179223564620240751038905737958877299033338910147050367712579659328330560020753155449268118072663397968861424607493159033676578557900482243871200378401824771362276748686365047746964219691333498862567018980433263961998244928383385550476603696348326058633491561751438218285787940948507429482157991554155310209730860912972772922281462659585499921641312755089264644608318854848641072925132936768564487883603525855061830411243899512022080644125324029375242778082916927110056337167604789773678791582366073408044605765552134983438986815112665738536435036707559765326777903757696774458160471897714299475204727324568493623296595492477139861552358190243258959052662991927919778928393310380608282619625646837331169993481204525927420145709344769745313211856993991066940596903016984016433426982948761634777561441223810275918078902868192974549021682869320072470999775988570675300462668243795818803884712835232495664827609820550889511517911900658800944502965239467943636332473949619204222088434942400249002321649346877015347714118666599374050212305960854966238741869930800642602421595685692792489096602098663649284131949677688266533458864728985337716635369870353563604923577138281918926431348911802814929802162184639891724105803708737677304671465761192792756412874105585017656132362786320712598467084456549304946854993809849115686277998807187314852268741104097214712893005640970595694234771943747458149779593918177381625672390390171436118989853386303582900333641136659020682433763483557535689471986746464351074969152486715340833503947915505979317708706290300467296289622175760255860438747447693439972776207769159422572571511460489371133828571433020693361611061097609007192677527005574758552632597505013558339299467613212861370649924088685161478826873482280376275867893970712257883958899976572509600453288900166532755693727398145671154416620318526465915875334991831713451818981313045557482694975704023190076328296668243629879325352463634794617004899658857696248095447617196573111706024336375113901012509234573596972724025122608790764650515627435016832029388214885828984771183829668522750101277223741904769323445569600120449759488925781930259806988939687206293187422078459823093068860375906724372294194488802279362626464708851454621909176715212061725416068639344089373296817903544937712327417283585044355888117422395842262480596486698218099145216833682297288061969672991545688542701299107071181400048668299562159641524607215072406328848522500040626957282295805701329744152043082938507372927171334807989905150791845265778684936320072905064405370894594427218888066591807087032282016769714745818723128486623795235448207197073497454061906255573537220348037622574796341608829576316726166375098872486836608532836629380602402176974748975062017521300855982024169781874968981680580646574591361550021790228240661323825484457275376790322967023673887183949894365302362099307371005733948833197812299120200759676319863578019568003901696647944743180112587320929512127683377045995548399678779564964850298492829522027690911348616190543066169143817756927722796235486380514012043077573647023239272063865567091847123618161131835048678454465717949757934473612931107953364160514484370191511007601273059059567640741155403556694155079703356804906379987282787813666645080815371821149470119862962061132020306223828278826605288528368248255509136941042974599864743273510148827668177981433526935096525466115997225656691260091182364871939164184737794519899701922412363889967379815719748365262863942693637792852508600434359567444124518455784267031470054434298635380609531253796778307892596501092851056685804983444663401031721220540252904560721426177475955259237199130169250584030444755372150043990584998152618247333723128535600372318492178256448470962761884007956787687921395144979122211319251537313079560247101822282143567479287623516959155709387380518600389538970225581575528965262077727285373274955462708916148596138724217237373846662573033850825624784513883036826154382489805480421716105281123876803357052621657060743576025896612876535079423007036555765624407544483790509522592529524885391135389488881147537707710388422357669445320141590601876623881542850756750869517472570127357725672017049308534576757461818116780298168055082096703899439583643134057505601598497489869171993179537452554509482019709994646868604640378884333437503385429698920160930387561416855054085827284298306476535443388308518805705875364165807676182910713939334603079937890159178071380842071623251393436194158795073951269152018916499982890849151162652772115317251354285635700650812836237980055145257971822815841056405836854661676159434467572821439585892671666872631186450441387159403186500011953915994560149369817903030526486647027579756990010126346973799937412547488634794257984122695622807944888427178874738098259437265263583367865863829173599036612692593635842438915303739220268007043884193099160334210179813649843584935973699095252324453500504455578906829471641456572446046341705111568721492927994010383214980185028655662894374305991918446029612219448956713535578803743238965625803798459119101738549895498869484283185840518697971064602470363315331096322344063505907086818867252660110161379736320750789334649391434316688043211303698682593349064340432253085901215825000144295263473178646693173254872197993202210147783888974238619245823296678970955958150582436559355621042969538546614764741435755858237998547694337480869213367357427691395647397152299456461578309987000507282636318146819311873973131828183824950045038025387170123963247806016136560005494955288889141272297094169256966836609576679593983747511801134589143806079139573344926612884163650985276180236174628455067979312755914624744210861999850347169198504950509557582514165703293547305797382887054306594476821979213358452888139544231759444511051780226472390801336273518637213793101868223909113715271234307386921009967206664217622413574826817943885653401003450014795426907370493334209896926357207982368843576120128322136735483752664844747551849473504510828200379080746670350363225968752567366180859806527133349935228568768351829137167990274254947704676980721490520030585904163205488552531754939569728693597737663330711101519028267049166709598759144537324277862778272318552292517053040493994525087958416366972994643919256175073308280598109861368144867312636992555908451131222617563649467514066810863467982733410746720513421704627708804181012296409733773597733446510437940734255194970715514965691619757210584498843360003499312203858397288781459824826314210004170782899138967479720220348381346150746625617584766393368123917733498192848028077309897954250222212791853221118571097316689753642375884497323381132959528025077109505443224729650249138227917956347013432007830191665849958511561353869814539390352526669315974621177989025145872803171445566180912079692454855470892421463773099628213926195496540488293191820313634234158711839610140792345365080048215508945013607938857559277454423577817818093091734891576849196394667753227790656394292202748685060207018712668988123405909958086611737237182547331348563847821113924789606615806963758282980892686394496327616946743781989246897844286784385244179147076443867765916803031991124453431673868613706852117012160674787352623846236122084151383017429526864345914167567343910949832993714685199970023644108020244887956289333752197931394392083388741204627950986995842455309002647738903566059537387106278677979494968308135737656440314746841585513093385469087410743502681588359773418319303053949796509814229320849112055367456204812434230004612574364673846060374540431017112905717561312465991368767204292467034157492754793019154239128152053894672371811869133819825569783248712794256733772440940132531904877037118295853369516273546018842710574136651930626574070874243170801814219059546418276937008330522069065410406640427767316444142338131240950669541153980485045018227677062391919473253785600363790241921399116431179010368055237202657723815199637152150045239845910045650674913847982890275798157416713950023865005734523407306734793369237060475711137973037236011908472071223460101103810662391141341644331959562311042939672578852029036696219756619239259584819910418816211133816928748436377162541952153085043505052334180279812348868428468298004894125381622680844111452033402641592412258928502532294567230917879568139246201241660126913686373053031505479932885575421036283486645982544881948159636092620809147945481205968201205917646698315001199133960826185723307056000602653496035081848115670471584334522050378644425988290891636978189806487237470502884770499075611812909828811176564792912145140336371776027811957448052915487424601987034236145347421424646034913016045268651090921294966349391333342066798927451957528528362104339426519629864111247121396999103405385162731513720032208733889507538944196990764796074396442982115473671265473324959918378875347895726019332694557555898678236108473386419045229726498065943833794221358029840216223847180415085514569441004263243657337938493125837384912741335958558100054719293440249545369121507934778315936787162058231052396587829405902933767365184184921774645058771399762118625509420605300519784090004908670574157039834420782502196563255082187775157340286926075541139492482735563307327461776969180833230618415203412672047254763519884327323209733067830422267791623227993785455243971067669132218778686375061156759894179481874532879713110785352450386928450849529896693304996823673756327390178880596014309326653171564401828085804326189458629096804738735559176184494019445719833872128350337105811245468566254649694372140946069453657507965008234430038810097444494707387017246424644211675564235156951495875994047795995984406880080863013822624113427850167904212191463718137278816104519710481849642628029086117242376305391877703506480082713527166466399993501417640569170983719604906679332386092220033520261865012054677207664185873978558095786059305141629695211121747727983423547821836794651586015804845620679397471771340674327794511055016422277640334046585728364641225458530393038953858628826755375025879641281214640075416415657246773530272250095583199593706496909271839269882599388465581006819492654778423947377296167105774801234501931464672979472884741307545615520012541298634350252493059299763806990511043495994174694523921721939886458871798531161708602807868679575102360711064545839306738975643595954513490670430879701549836268176005853136867339879975527501891443418893938581588398502084417524428466659091586217832529122195197799054256106927923907728361589187267120424080101965041973898366517606313229954418342772450661750727437324107584229783693681500394984853615197872968316090366645608231844289995204515614460315484369585793505343642450177477275328864222130675163217135067477506744789263447201576168847739558981313136149528214085672002757096996760812294022024706309760514379712618748818074875064815068088942409349304980277491913392223850850740772434414239403932491381957803036335351199859402880339876213250460326299965870362609226839995016728721235451470934446466939947038460089639329008219475198952953801654320392006227481374576602781388268867364803162285747141374453379512131972396290650164777132038973735961345281528146903826926458183055041931703356585467307096403263270979035947278489317118156726151412338686409627463962498319336468409271205893893465873807474077228925662360937081401350451282231034648317676333353130652551258202272273367945911269689758658464511066480059242274227728397808431113301420571469824703821635340416769292996975383586142059645652078862637650453820443787561778291614501957265678739712196531866933047354619290769228363038670685949486322226516752712547413616467935398806317139173254008949064996382088489574085749606912754035216516545630735459699404494963064808225987762622861452165656196055774031901260271744757719431025931340561903418443012355539359031586270796260938122478854323562885577379166130682424311452869132521630034021674535045913750859759208953245507781692738336873058008068668695173882979857101517539447903733615081298064136377687517985980665637173638997106561422487107574229125932516768041725607263205439272823780037783024790281867806719443553220518822979753487466479152572519451162065699551609416872014904660953678580353099356612875022784171711501260436152675092116883187785377150179743945644781107113098146476961836193587871463920389388899459075733521982004721532359956993704057367073364553706998538333674763994989980321189068409852297759950450763569386803871984087404521226103093624934969909793468280790816918705027819896629871867353345574845458810574049845486464421357103754548611825632777973080899936614451221286328841744638261405551486450977518402909264483945802175469526817278178068490744945735621274071357253965302402034714026713041406309119841902541502271515489936250308021222441802305970738250252619178188465456861783496799164784256116564024343598811659869501590494089866255221064121512195521325288275703389686569781848212734821502174814684916502903360441273372432037445746119681560755158092382751263295842306920282845092606459742278294003920804004629604319116358664930219574232851452995972047191990702829940394651635930099388708892588937965595061245244921490413575111001802362244495704555504262529925895495689858014158043601806560801976191640405000503741477876650674514776226018433414860721772730481397382390754301428595668254821828285777049539495810097190563741808105354222723503735693498232683734471348667137470224509520251084917012100439173947318237899121907591691166391622727340487728687276363512015322717583023755950650159744888698776557269857947628148750178135548379187660024097600780060615621862056246499891959167044847182800076895785938832968452067509926592141619026038942557093413443559086686216240230717879757577558868070177539242214084938360390241591124999505064683122481992857934678014931861166504285936466661593533006437805644607187354663729255359760612888224218610736285816314132115887154515756507889271087916354941906395071605316107151290107426632323128067333972062979649901674980996940073871845936875536095519610684565875041203164773588962514992484201049609406148467675057508356966451888849666894116118054557630162535175872539802546571769481282513280245606536619171978269119225631612066493031276495737780677129951167009312338606308189856100016218130603512638740675220395682001520568458742560673013416437506165005299132760144473036781074577772252349627837612734654101556339241928089816249076287329340975765154650409917293555576719742050980346118857574765355109823256101843161206862130423987670564757196926671178001593100262510366951024215524852052749346545198912675257528276139212525855383729095665900575889213217227688076275956675922259155484120215499450003373174156653292508248371552156416678383860159952982106129139236025243791917678606753324777238143564318027593502411234952669291505081170953776860702346286148027958560729281641764920399052574276886861917631061871176154081628043363066609617527310975150813203728868203337277381558105864539264849813064925805954949721427744982293494196917879528108232090210378627053126855488706152569464048578380309724120864106907581232778475338220023317445280623760127791272833608970871297043864921261413298655886089360138406566724125074230354744515893974438594436524065760194061099439451394594436544967251692752873434786507581831495263048257219802274315431369415541748391642846613005090717466841589866164210178892657023571991064207595086033525873356690303630834725599977575643611824583397563012794203719822564142014249929368451541460757906400566911024564479128381703241104479727420784417950573624995051359475426716681533185536090311825450053411108661833342026409458043331023431794345056678694185494543892587038732112982235429446127160324687065738590528888083247638757766973446872535081077574683227891822274358176445208772434789795867302627623871660112279833494887824958031715001725217709007659289304980182122582552283625402446112547090701621236876221184758833934073042320813971712581933713715903656716435180782917183201583213441035669685120424005900816223219816104093364477549621927824824612621411214209219139338629041582446565644001810640104913736091603043018543389035976596425892095491784962595982850221913715330604710033842249344696729276647271996927417028096139933708160011687060652830806042124292199256151068303161701834808617225203542340393373988374826706797987436387903430763937059331558878995479361117753254124814391596090918962257013393452625178018991575303889308396340927263015331595805787191270649541211932974609853806159899238059384579304257996834494028612329801974747992114412844083584667514496729533112773677059589745562289511410998859831418038608960017867369624679144659270176822151884710147444190995174983457310416832616723227077360989404386188118368132113132254740498900945394996229307936136404647923129581700859992773106832949986075457149910419526276875856782291082967194117552667821829611599403852044424509248914117608048941522868535264264057254459898259084832682322892609237102546441215210720037385962356533282938134295978891021871410198807461088979681302407444447372770641943503012142204109353096445888859957227433568495957089856080897932572516021718500288829624445344965824157092883549468911052601562369780083809697373675558611810485945136183645225711622700430627344439757510400882439451804733273070899370922554554830448198896221612346805545120719045568883579934927719254489196379185777762930688189522563843851274946505670735529493608406825438682813348363081128518427658461711739352850351375615003234125083661538010725842679284609357756663192178137659925023806088788068195897260121042769040886160016250880020219552786860665740590634186341976045948286471119935950760241156897822434124181724479388515641799266971454861382485878503662187870665123303767833443304490651302197491527687409435520728646548456518702035477702808106681866120439918054140025159326692463162488476703310388403364913059886674165052181630779781430993819485101019681303174157370074745971618773138316301477732083253921365731912965492295130762288974781749567105425554730063253162222202653053505598198665272843666743211252632898728379000403936081190261327744994193124013759477411121161402732264186422431446512732286261326567072149656196151465847870443737595257609264730515200949531008465212314368337861296151118934100033910266685084432189628889044461716769615374047042456790846364158985301352112171116485465476204922788923142906346011279961694849851364376628178293597197352937804936342667231024456229746970349041597239033400081606677980213034737257384425392861932709115514208625525239458237541888425570362090300205141026364860806590016915483394034618165492496734193995481503442673326363087787853797931459256859625926336604777295433840751614067147066527854569211577181002347849082877047396164571194482143859149890712896028269092134924360655280302748329748406498401380177585493006603908484917521815740015025540584853109452920592549104221888086338466231408686482026850360924223623502162262708631494226808913035585263584619267910658849401268107492012674249286149274704477963331258625442870690706476105392978809291240489047935130215550223919459785424645838666460314982315105133327814489951028982762030991590324856451794017861335612607387559279713241061862970345000371372493963718095343245554129510201047242908335476552586803330910345045445265332834122103042632272639049101951009298807969967103457807948219499963446255621132949960384875312210656730360016979153544131077793082155090715613977731722110242774524706212709946520839523811946279949238405574017917452785874673434819383402931746522333036834595329124934835239366733482919659566729900200634389579339058781154637799596133725704066349791195743624249228347016385632495811292233448646752453497767389678994738120080159640920646517689583961770144429383751375547166291459272632431118136008950206792016764016714432119845722439155973862372434009983930985982100888649642918107395918230194234488642955615922799346486840404375458279574986969356402672736545919601219884840534777564997227380096612015821896358956355241497497600934400928833070554904232711199551774143158739678117005620717254926039980987000845722794732822258845167600544715450296065811039889512121701635386276890703714068905625867994855144052378226015678485914060609288410715223527516037834744137705316111744629241926964174666620392774804290054739253565950206388516364200797929676593052648586917583404639496152094082119872328885084052427418948737821521533878085356977433693337279850502280280450791416356094513740811398543866067381045126047875235737488668814595905117398041166971031719637587953999118849883903011201237566965558134562249194531105479281651290597166633562247542072662341840195361119100438886093136998940170497780640427012559979278122802821842971348974930502659832721740150698579243642293234603791295029963200878321434507027314977140533484481682091751697859718532978457792007266807937878595094979333951049897835880574318587473437664739661736259307417820810229949954325883984742509702867176630675300518403775593787415121574847053562389540766867313235059143489455952072850129388228471166124947591313448622077704596196987431165108081365335017456482462543777845116121788606216905333406899208784647548104529663023839361919765995645958048656249107662989398369020304348728192473824248599975769672736571176630212564760550010199720949686367438894717171968542673651229154892880480122815991175714679563905156397061639305845430436257883872624759259264816748680129860030975298290643541907401301933719372933036099682780673248894609223961742600347241918828903783222129167077815536387395478461796365314568145949626856575471840623102479701901523546485304558297370139272991518006694161643863047658668448020874032621450154110370087154283525033976617168098122596535123022767982900842338103714250270030205681271112935852840544937023216275856366491800274573661026281396457235251903952261909615623078795597367995528567499607677952322362165231410842933895276831294007804884289000991774292068580089785446321212351311063544732687367649433100633557434992502107540143430612105320678615710337994283898632127394600727084924567758802173647868896175703493783520290893612210073236173895053541723633951957580138821470525629250838641717803290396001443738826465730484673807061518457732668170434165467313184431191300584762716062998934821181552440217262013769260001044728283433336149256794675645465420604470408149832734245426076833377177941654766833710573580130079124660319529600563605601150446969696480353159477262777657308557115380837916240212464781934354572058525713312824801696297092467649254963688348077664073807515011985940572253437075332545132356702744644837089394958923618381655465984373133933287196139250011399744141808600684530957104721016377213478347688775549926151901270836360878974463511728305180346586073826056313954187159188196255292433835583416113761266272810196198501880857545473501229979085734059829160145044462702113829254132000417286948848317353664445099989670074351779762048897099163204083736634183964170604677202927427336589859748602551425115656410537887884315747654572045840307955746449674566444128529994668936359205526171944715552517208826919324077081150748412874525081659228493713990283394329715187346090418752749770500131391491421125502961499099148119514402693612857605803316594916871820090939376431148400723238702652154735604149691414952858856075766640544673973167206945270503979098016609353370314704987804836867397423811164723481263941541318967414205876323834336891241683061031301765687715208867489768825845438841633672111169054541654230692972304542277271425469732479440731150001465850357342625629627874909148918230468493447603064118742474585593877205615650736350600290973519533028637623623163614673346410562340001849195195178902137523424845367785302262876898739980764308039159070163237535546076259840064844649732315757727934359318865625559115908819513289720512239507751435421471550748196943517503222919912965193220486633458658735976139944906203798600090897381779776537441692497939220876329853692634859736539717127789690316135133713487573478382500180131373856375236613825074107140760791646111787593061933020422693339098019318753599587821591931568703452056421371070064856982940689713737363522471402487583510577995777761910217719670340480010579871641230010554170084953787405802945515068667516616440832677007954745814462508212769681389863452866641142814878642942539417578116916904157784121251954514962435276113489159111556464198706208729056101581487812705453532521515492505716015092222070131920896320155342115119278031575845513095910273418198452539382484055374983322077395690272852808629610991484183744456514949940146022049056336611504594145081240747038087864702631478718244701692394594028592229888833775382310839666658840466815534686274988453156674277315337507286834941625251108021188906377095592869475863763063522550835657921017887606943736885554843696200479105587394353703152496174297616117641239660430909802394169372679884753702546019913797039843076366345606671685173453346683077235490995058143065980445230860789905126489021707824705128766976420591077681663068765004469623986433483748448989685619032346785250013345340478098509225026160174209659256535637848201733036485787120572244560590495287336435825897543707914580104870815907053260162553325668963746748938245114513501150821361959302197206572266352201680202692743135876191036407203555694555102324365927178313950906128581632639882658960509499116569603115101131905463389559540618662521391930999821106298688640746956065711718066950464658011849070803765512168992930737038607242456518139286581252428922949206721271680308067066242337637856739088908282956246741802301933220594323490820055542087343269363242030962728968634222086889557006498120780314117391770950717659311456140439882788355311209206499251990337700038171370741957100758533099364742281843796564533958029316536089223191166865936159338575946046733271610534699041470850097320139588092340196723705005699827903608774759815594902146598390477506195705796699720576126372010538902345758084133767964686689165155097082635847146605457312455488045071996619125609647397510208844910600662974545057271490246077701068345811997958554660976390417040328597160180710552271554565227796655516370355773473469479797560398286533260994857026178661685888205098870384055272851854865497276976638427815229292190261643605565859201171033697573325109348602609806174003498987844939793026687104990581670289115892428496749033703506444775964448989870689244395352399243081207551875747740354293927610268358987337069922242538460901108254230241756479978723327881702179049194114975057268767466216654014775600899192383048944449322263406655930539293288515533317030599238006702295971082906747489738461873970661892373012344632863495308426127434644806431547172183845077615951289122133787428776489414852210792491196709717134930153590428171408800210026910468396559215443152559944505063718141679103962522049281376043051219255839231199319606676032333562160309436943525779396119350908828474686597918335280029437808475910440035099092697806124582303800738143011675890992340246667085848581812451177449505781409756178480381701314459842639859634061902500401337249354759224032815949238912719693821039437399970859102084027670584444620347692544982934010574826577120594898652976728305225746184353438259592979346771343084662666312764294928418993206931416151048107143504148338769262490633891000069731102971039962322311822405571235091959428027063778243930193037346728879293147783588377469836890206605840056677151972821558659232628126605291835450429373626958581153145862047870138914174319585611486773479122112035767418457148710326852159523193035175630492678211896356924578525958878491103338555866357367256780836083405195237655046747229343691589682780795836495801906894481983998734132037056835430754693057765899951130590374894568238057231564879672778263250856274025787725552721465723645071174274811693496634846556605629789388609237512334135779829887105026404919833310745101075010462696209308590874585706047312424977376556887939396032240921366671016232475155823260390165944202108799425996368203526044999189815217838625862470604759457088303482800543328562876595064352015346837260949459216404146011361953145957432042207294445716251124105329434865047991039917344896275936531133007909570600950066218726459424290161686565770241776429886028259192125182350401941317251460577361278501412332560452120935308436305575197793169542978058316143729235641070516966717049720412371262470615896389022349698664976528276775823368800686349487160143107207248524386425905922060922652710923801107746713198456612741639944826078775601075455709726754521513370327678209829664642938993753625039706785361387267756272115419427433055538223600019023913405802092768399888595481898995915927663978697335133142482812219403330013776916147638655268569065415329875048090707814832817946984763510840257588377915508486271360004703938090131587649733170083955684423618770414074530669238686771864460049887759008107694272037732613849603963897595223038085750814117139857361503072016936382188224535945661872184693979286538119487529737310374860816008861884571639857837426962870637188457841059495086287495781483370653906235340123090939388731166727280773296354135470938350820824774171707388448133623778994926387826843210011388178345167872294695436094957382280313972065856872655647428077357541284041550294708044623158012865485897877014066069324503161078692276917148823876175595258737343128434393352446577022218439211859362941039216006874265432234780794958317596103252027294775511926780846006488352328041585716436614041253914038534356300470286978300078556548652406936176142839612067348771902983621252509009002792583878057465787815774729347026844153856462329676136611914957119156777071393230570170847239940070295433914844372160714691863454775106761596384512431444151201680296230575863003227903667136844397728507864314558104152447921857439781819037607376322966169362797583906678031711149798648498055967096966234263240741699603575052796607110809110945209715904558436652600059638211738802782431493287330771000008106123072102540137501928880628365207447594408615443000941032810236109013477443472300941784090778804064307779723671008292984920700324781942777030968127760448193483633970743111454009047188303956726584333514320197195440136286747422753324863341822536023713770846850685438209035162203362880040105386840422503470325876641958132671286423007710631177175414802413560027207673786788134346563494661073297648589981829688943561404811579441564262541467905509739687315816936894793346290826032487790308495364922071874996301693378111535435158224425770915179232028571569295811917211134025004071559300707109825868407661320210694704857807519669907267167300631120481289951900075994852876263896414524002133057418221919978088195204410714445366105548131809500314849414223292249239144614464729839468676161220070196352413529452801862862543869984996628070675064293483056331325383568364747290899496309080671703108481014267167389577882268654606965375698221939455431755084439407388285706168792708206572571149501032703890692834426805658821996561019760289149490430020035424368493802125299392695379117199247979642932369151818147447204297103580857681739499170848614165005171640928176386727393034452676208938317631775931878957612689841454650853125170327273047750481554183177905283144512361335792383202288607422820913655468748807575087030286912372660731011753649944445475260914183948985470821825773349548519534314884343815975343541923762585444326827349451251364322000887305375898776006019271521517407655055412151813482277757091140662691278479450505516975991869443199413995279370876546527039761776377554532732917704510405651742872875324545005325757880209902004900669349616512265439484797253038838142499625721203181788067862897696072227272724246838648374022614800033889001883386763125896814808486347677713796607899000964931157394121034933760100628560224416504916202616807582404245981753116122102172043497011638216305587447204638485460793565021000130962449609957686327920531953425626516146897140051755150282488044460640277218530764671714381527331374059937885635590315259622941013426477507159585373560036909724827034655372551199878498947536137544680447885187639437073979360017160466002647645108272396704780194200596325380156745597737826004172741745067171980001293900906315471941724140768036702021387853318735778944044372552109227449622017048588369636524440671750772473022624141416862298999667121557637124848233461375661051787753682444319609593861899084211984677864571645441070003331744589979449533939492969358587453360484063068803820750161929745848098426889381949307852365052659198771321752281771116999215346441827868974755414672075940916810343700744095240625078978304240599326128001014883154226124043634384561736675945592616299762441888498078959294751869244004280842272167470386399671856332463051376089352008123406636683142479372728222878514938840368114027462978318538854943688667579435721237101767903006758102847303116819659718142761190698330942803521171377850773919636640339404879755417023732531556401172557633299277250196988918791471782855677605908959677691370381890325584282851782323698748766431979448954433071453298461060233754565058267293084851754173369109677550485417775226010280655860524918677021007202940319031289011040096402520197302321673526604947672236630470657955161043826654600892770409532166323858433235171375706821390986933806796945982215451481423253385913897817236767610824382891332835015348818916324556404642818003729053579512549726901648164089983466659892835006499665571963463117250890899759873134039126376653069707169051563824546361181651008324436977581547209285558512203131076004703688856151323523381550372784771431631125959903888174548567930289701446278794106467622110054106023614828809051187144035862478006029052773020217952119289264682489284496252760409636421200650976922178678833245064830722915796460958944211253440496523005316750178146949370874158514798787026249971399346808641371915929401297329314146596721391853787307530800422839090337007680195890369193713090695174212957221812183899553110161818499427143522534559909134309426933890361910344857552528448214912529246339940057706368939114576053341591957313270517602028981636105591163035363017059430698220276839859107205167637632332470560353300272167070807254608163307947312047256271733700085089151041491585873119420930468545097335706601485260332547574171317460267436192950551173206333286636640310467059583384188456920779581832837111925436901086740026002582889281636365818216384904664406292962537365413261267207522711406767606328577916548557685948437266745261126504039008178635165354208322624177830682016509166897170623775076965710858877663076200621308391186253172832073758085363600098963388657890397748250345191686498625842778596821575962376091415073227951945427392926368494034463529672608748827781884747520198534341548767480772010462518515562154604303976596300235027526300939798060657649547469680106633332812755225773373195091209963080482635359036895497419204950469026814396441741091590339176931454739021006783484958156191269657669260635157085859066279493152322033276388324827512790954108655118565398197180424468135429527185405287969191128194622064737109557889044345736099496131749368889103009805465701378914389112719078376577115255205715563576209048778433210761164407993905852964303175137903316591882740576235291383436029738064645391411028754087715761968448456581613470562231206163540329892370186343664162038513859118474223522436014226932184055732696708051379870752964986075181019032693818779064356130723154284005930862921771867384191726846003770630919417647599630021281729391805095524343125315900770914071626340474087123612198904158423627288979346929545127664547205260323979153421063899019444260794914812124311160056515920234744870390212385079943147622965973685301417640917754187029593394804319645229518157078179135726895935521245365349886287411730400255970730552276732923950480251197014400638381475462490182265120181149934649484619419975520494424662045784050474409580283820584291719605638938716223107059649575424120523879278254815549291792686432509996402554248246469888237751878986247547738191796106327601303795357297977264704226674056612546481579414437199638664896825872183954607693327976752927487929838823532097167976053945906180130019404333861759504797919396593103032668819672109055560750353215572214869969826435587069275518990535345372567296378226061952113506947109940462804041222164951512236806124066431923045255084903702636005589386963849685439398312345436534198424998068152789045807098413922205421005990915568412016883861189617585976621117437789677661963273782478630428546326639293603238757390449899971015779071354246819811813954346053096012291093411676639992291747258033059219233807737338627754273159932351040775680069338100548113758623799836788553296476549578028002743082685349504934003795921580180539263137250784393083575678526984513453282627539132421842792957703099441360453857206029098804972328884563473515322591064459679430882312624673094413114254760117884654684659935487411239560855075795155054638650661085529839692760354421428363103378847008110586879747216501660271649874023981856278318673729364117708473828659202454636563603641481352228334899021465519907163630602604585727939725907811842982738478172045039344374789620688289126390804582242703084376073473884383931648308035771237499648029026841586693684283972869605672177947666811046058033410346019672081093672031455509753351738211392559841575358451915755473694652759192446101851056043424739965413811398192671812613376584967756715723757765282006003237787545876979981998225193897460540168284715520064317731564219660667395952483104064286061614277444970952867861999655132813394424152132400302675115129646908564883276871353005186783954185093271024722784778741506855652060871493004604374297879411130317226919004303188167971693508134685439592437512686838237475221501981491426533327840471576906712046483023079681629268958341684134275005876258082012030497156804058803609021608287339849268439287627459501061425246588850414553581843801157866219017304046456494488538952502613759727218722360722810997335247176708492019746882382680773056571379732390171006767550369104863279725037459768566673774935879095829805759459918756761668375343949951894408434784555591210971009183160878633701640168633379268971038656959286127553922733706432602952274009509125440479116575319667574083076683307953992032996208153906119595567234221347877151066197295879152647552742886983910875296107997617026258241693194488100500167236417095473646063536640108153434261689935012069277336913869937010628908820232681698772136287030724597984626990034540708154479378829641976998047298179338169862593483186296952329096577889333365361532882658487129213387266112676119130340421487709049733483222376812657634817446413414129234024587702475968870680929501362332669643146865645231839258705651536300612184795703334750710696589517608316088955929854814383594556986978901870582608022345401189146078334210306031172284176009012220276951495228928663616005051903627887591513158450240696645231017075504890235607075986653405093245229769821985656327656376597400142006120061020166681124578277529473552215015639705690901340379579507592514784143701207007903532677366222506785869072915862322520018484206525404734028008632384789833899720932706700573063115321395479183609707786855499421462934000831832590084521455867231252822215007257186307563240858002315255780199568915691938414443419182809413208755310320548276652995066025222762146860157525807099626001532691658424409760889164167363345702521830621762336108465233411761248569408090497238289716113196734266656509336184880406488057144674436012037027546441885293127103267002621216188633712204882657031638048926142075600672909495039701245014203715310919704723335252291540360579988473805610996473890508503695392374107282202630860702350974274817681681243122120265387542014562024051462158739279525791024264060873995611621570256429046375615959032861240627793950688685944974672695358903917242941127232741334545633531404517297041921225975804069901517342518700984471161865353316878119650833377375845682968925832217755999202021775167521255316571744459356266263330531159766776284588020058442918731613641019487893914822611128270886179842531358827080572886329201443919777339907703922495062200982367329233615344972857697948058599051628752164033357960015407973593708306597833807603088701570024603682608463139570812820146176150940502809603202398974610393543194408325173132332533808643872223863725120885985377185312148495486027904601547352012644548297203626827929328421438713720763843860431301759730308423098592450205643427392989720257790264744226199248222234641812804205997875305018963262978978006039551360562779493121090943164740922323448162965968953754647592655620765633009308292262744555926822035675383190716853858729875254489537643551454114088302146599109671705190037183553697667287563503706083617469007992813955462690807578315569660938948955812752325950767114272469695984464123026909997622395945731681165693362190722309300523261249278078216470187683652264963640454004848910089271062430906205482093751720339185335161051105303028640814389716400147031821421591171156764201943847628517385928890376909445691233916619461444204651500903623559821012068990877156581228275576705916268726791241865819958404642725712303567111791116361003632344174252226787193532067918909350847289763098884583687877737724071493356434221487574532502789380553173695539961962906091086308379994103647223777282790053466793578517696885651240030194088392649212618031635208839568291984867000655849943976027162587692848369944324195085286964377129942523186298883143230524581322088315417437461615217832236905606681444264549110609421942076043317472001398224556291622488680489527492916471927261841610518905164818935964081452189245857656686542254779861550038118282820162229702123170611488606924107841111882730291885892613787305930518408899911818863601853971615627578093196573881050093153067707299205064808453095187395927758281534969306270863912512398668729962924470190999458590567404847203292196200445129848514344379159377326742635683478776703865134385520463573236433057022449921720508264335195035269315378266335151988688857710887855789056887530783680300517680746138184520236431117324029088047863137157675524580282696020574234756250752829334651069049842502236079927651395240558256319461677176761328754520690420466941592284128884825680474752111778987185552582654880683050849378523996945293157211650180965104982536404878687911167144231892861649365679544049589900347556940251070929120635805341795956848189838318463278551715695901416910734254464394610061434434303600640903331685270414875852277543414716663887102265501186540318063060210352189595948865602399656346535819059534655585839554716653246016376040197487240808620082634803056913414832721901828451713533578758299346904601225349663225983243921248416528837325704368697687988661633318353251586287234440066645149700206365672823107420769620046865764570865396292748357328365769416955525160138447311167446307256905577300584268804593171179897281108030680083801627572783348040176416410193380773468872778997036299955321420205026787194252547815178047807514242909058510943383094359837941720968633006527974661682015641725401702052640233627360390841561647228553292960155650801010284657011523375603887665333034678881195716255165777816346843196609231364550666917542475509636776193212977746551977882854804786766450714223782202444086864852899923855866695904498426013735372341767508576205940669997644122297876554439455574520726530906544611954857586120005429569801948316380927444473763085562747729403003780290507787111975669232776699949330686751940613830527705649248958649927151299371380251388475981509026629059999002838588080342267721849345501485429504283185554194253928132289315280955775613355340413306088761425000608772478713902958504376759549434565596048132962322038113464612838013692626220268360498548862340734897903796840432464196841389500774707646015216362330350546528943305436829774770594489806101957170070545964617804540036858390321932627441065343281808617965276128848482361116786555653607473133908727060389568484821715606861228852503606330713192027374077993147941584533364574874276920320427114571686368869881990249158582858624729195610929361194847256768867537605599540808216050913698383742460022203329550983725199001061380432328233227444039088824576865373149396885525548083884845525454489264251183416166835465197708190410781402759152385866752767044066206184319126669393213548794365726104515217079010409006620662427882080212760665571141156323224736929610517120006135169581323924236987019298515912459682632887785425676304993411914461820163841380436667656587142792138837375317839745461483229080028152602813279499475635418610732860058393925523177968847584358466556426999279670041584179567555779303864488750637613710819101753695040591111294282500929596827472473926052535767935625390033604601843943896029181108839529811561236644788111919229742119071657412919536929324790760644441164382520691900183759047289621238883321515943543661920773264801122274360738697336280504146621612420546296170484072169703543235971178338995343450678549919402783332717828341595432693951639216130487709075365590128120898555618276286199031202793983133461539987229510195662977017448313000021134803871146881834073381081570585426668703182947284514089806596839684652240600784666036359683659682026078024659968134733694314023702669996008095622994092415943663926549547708097713218774184710676939462301142822860950080172063385898531043491151662217579939245675886813747720025593724433126457105948429775351062758300910268978884340745357952309334091101515868260655728655015564317475971773519407702345383295142115380646545720199729821803406429634642929721962678533151515458000560196446896187927861401501933717596008989583645370232055613391220022967041910199004229826914573825284525476845482209854421928820525751972747694687605259246435002307444328524049439716057121588449307229438169590697298908614826532448741177738855303589655416396727533285037080408481690983066008089994837668321530993361519340342169008615352055119347641837085986040701564818444156707194558946032915471379567497975589214662330626848695372059460144525723330985393297445022623964800040239257291648361610442620498051811605551352395206462777308838845114590168225522765575727437820852821447108894738878386757552238186523017503761314368458139258427723891028733771383186777664466686502715513237903802626667153516289629276632233307489388846355951685238286548522115057820903477871084039389892264656149067161196191336705365461005441430626638101150134911287596696267876198611832345393231221351246652254900340544742721256278100162714773122437106544041056719038875999696325230386792129242218907082826255704840842257843252888428591480470669444858490345733249042804225039287065216764500118410037932721524432188103529156463232134033570800276571696560589016308318395340943698401376377367175243462478742294588634184485531223565423354732117244788099389923117897373512429492297080155914102491888840611558875557549848095814404145904359723928314957767480013816889467012539942691459504591180156965963256542490071392605122286572371121281433377904137542468770479391354889646549588153740541485175989056986524371322156926630048256874206351996246004788996989523667760880395785027728684059581112289013543737625568007838243482037285746285249707541303376302663333642205442543520830123135577758846713642848209730033189205022027182746694710265678908532226847931502733811705736514737757985296712456652373764387914924519024980886665595742680437796684349495066333686986310573869083115183106194146866429502437848949621284440495017700015102324750157256307871470721665844922956740845366354669316469397663088272627151896584014737799045130487552271064019264564791728122157579275115413952973970576678901075522108388751653830719332356886930003888122756051044096124338743878993543623488744223673962700261132206937212689687882271527877707789872608237777687813809173704608573076009793686725273743417322778280343970279403755674036736723752284514852828962088336621544574131946795063323261936543182828305416244713084485914605949517303062885656817199403944003277920791479280965343860381795110093629663582510662523459922402026214125378730564163599520654118539330789534489559737813989781576980706403170997370777997371745233411955984957589970898649013065775204085299376312107005827950621384771361349691450791764643890716625170588533392281335624801416953881639346048680832083313746267573663011577216942394173508921659336582271656732600863516037683518765850515366981669156602585931013221129678869209865492456404981103628227864739600072098656021234616566071372713315384519978432894286387989701436653947877655499763873427470587065209871940925207467680274201375061734041527549051242986383033141634035788126580421729140579121060341412476652824344720245157157755499248037093573166130380163132097873324898741227940559403243268833342142587797266642125611485122850026332605192446422059838364024483261076766064863953380289213470573093810097424279660668949101267481972222481478126996891905253591772172026613138331067983881100731319121713543574861555618094154074310886424101669779765252828249466645708356839695099579550204914870614592459387205333668676070869513558145945017118031471936776518350698290791608446059397689649359055228146934554429513074429831925531380181512326222029338080926947573637236966749190052238970271215945173877406129446741635698450028612932531930562833429753220487544869802728230699157671558006369338881558308180273744115147191972609033443437912921459023639189233014791337212445132818381592292038792974561185648858819538747882213748530216217094032654430208013041404399672287871774812089958824633471305245883177759913008177106521694748470354409113683144040703620660942012196414082244285991960395778076527524713954324880817496951884441547634621653894817719624104872296592648427140484183672493413429933692070798858130020603445552556883666258987824750314247818888581320981136961100731649955200894040132177045018398685937687319392346982384007532795562084017838966175717106988383412196805622171291514632534283355904219004078324269251675066352079564131722515539494408115268233300483206282142746812209879963190527710017517295742758422398869840500315569126237979595812263152444439897011938332933888266997365454675989710575943404348804285290090280770440963541219785601395376923746930021112933117990692435577344685498163986193791887250119141723346433882250186350110226759281392326173268953723886474164659848035298891812417277992878719430541426122689291153385865151996285834053683543819315730124848319279469739301914564555338101248144303463626330568320119264551666446767404643462872964459892842175845865019028006835420654270358464130654789218167964634234955336639457925433101599203647574215372968558092381702569898458679807812584891003699549520938892267325391226974911145490269283227301844281435038503348389218631278953091421696722791135101191710589570967441714653486683170770105785780652314822112420050593421328206716470269728088843389810263928212215099624394316807328212331715019666687599191549905844297092439040588125164191671463488748479296425709102035155842762705781417189813203848644574442016404041221970307681592223631157542829141396066936031539036445078764779258541491822751873067172832402466324798716352736598739836356742684101764500628907093898336418606306377591050766319027188696218912850187872060820492278120478500337143493655898639713763369791699590230517072881824228088060989870431576061575576330857706156803640807403342596759800330992252884409681033931911272499982457309514829184305733698930455661016164569431697228956234100939493013039230149095568269022110248948647185910995477481670562679557216806246647201218758823865315016144601718588512756449993507467006834007370048397743116831068887772642538345307806546644097001766459638100281342481875031648335498750878380465994227760108157127089479566511283560717867210381203527146803147993521518473891730219444117832958019579838795471506861783187005394648722399582453339711893903274554721586117472987787550014164442305470350319934913936574060062691273649255825164462291809154109839776086745649953815048706091883459639118722512243799209004813586683315504903048386098371457205829127851970684620409111384070102555693992497505145102306135558678698722808493822883325530859570711970636947529826121180921208188954350356079288485822885167868452845321870873577467729774622317249566146517197999163757151301726929575275901236751122652188197464281033095980281999293663109311705947859721413552769249618927229156166517684132075360273158288887665365020382364427274746729809549068077117072553808868314496812683234728263307964610892827048408731817547250045964542965726235377950020770418709533393382394657611186046701158128720127867590131069021809208755560223634087229099157758060716332039276292380466622930654198282858386974615342145053255869041731157036088354232425825530619349251978371602313658249595409649226109976096815916021201572738329907715565419036594601802795739867301317209265582405759963453232843456422773731142928912778282275053701720359333675105282773187934549328480926833328430724546128037872630568583256577019712338596448488294850663068315631874343409777159220697161016192301289454450938217687246248597075440059192961745669242216762797032184915103474318677524539479446954070057472430174538665553453102632027492569591330636250065348009648920616670261305782320152453786095751863499674778612123943087968789827321337634610678594539007365559306375216483704693547202544734510067482215962754495665662503174573838195934293170794232077734380581979098756246088443983254238724260677641331294887170642891015337063488724713842067040059227933193197804596865588649514806697550213013488272705375542769258766364983351993203307978869178734930982800755517805445122530446926558640647515858063512627603138784334717272457450222784345928383943679208230592615542397108200688368180309690903705964298876013712805118543966355367900736920785985166947675391270144928654360934846592726252141244240199250032718683847330317105930793238935627216532798238466819816980948127810843941141119147196541740721855320881851926851985779686469872554252416252765574624264196283996694971566954897230385790292825712182449974417660676630054281802318693339093259741979290941053823720447737146801298424652149304953356958307376834817796609800393078315339592259391822447130487537526796858033398062711376590046855798410720873440628221218227311187197864046423240171268932564013575158529188862145114389229682848385023387527840250665443328600251864786097089399431730052065799065901679652102545682878389531769393657037041971115108103969528090258419745621604004056493998257012869877868202929909895455803444369845518509382190115546089081634641537017074708469254323089556586860061773028322559261018782777513684009032779806607961643053449541060901503780453882552825152030352054828708060702066808521591319251633223291027425447418673572630376036162601188189346151995718076473636474972540721817452362881673811685972383664087508233330121403279016150944500153907142729137978611213041050571633175007845497652002685884202663063750694304900024733079970437413849656738508891773821278423183689322889892088197961505980486921252188693108763773079482320068349931857305058234577289413079022472490200609912671759327216720073558293396905588285277668566597579189337365337481345198923969235878868590756838067634785094279461328845726422328400355797563859219477899892623887486404504569489410510929758640616857594780591340081113656069372218953619534723399292525500137818017189305195996461367799408240264840159933806214751868170956691782798302949269268528733090547807781780291738795121681495791706726217108417922309131549651602392465001607380498415733465230435556341909739143687073576402607259551226371457877156302112911193057570552399268396204461474489579906877695481561782873339453406664643458107616255405052456664954853031403286845520279414770413246828579239308089200570264543106785307680111855370519750473623986657027122319446228410285848878090952797488525961276237579223403945130601280310418319776100571193516347900422968999815861004757902503671735916722288112945931268165219690372122334203869460766406736471865477533934718532377479815997515777746534065463277175165012210621067582316533652147673465983409066097368193428478495480258475185712010872032066332301047505571768179682576094142481244149423903470344426952115611122017684564167444917092260771329508415480095289940587005864858320952569088535618124193961046759558755670090037297183713068060197770799165724552040523079722871808605914553408450929832067958164107707061904485690586057901853217123449277421410448224648261224741784880211528230295658148401038010281719747252933451451651833241606560033805457056602296511348541287547519736708228854423259418223072541254402225483653072961290543217770178176344475686442644709405275400852026971998160092588538896069754315216744516502166638972871600390646135486829827854132658443461398578667184905289427637072645521537564154309685736118636037585741759498414330463065247044206625035050676754005850700733669318668737875620553464427981482807862016956031652697755706903745593570261284683529584137411280495122992160355522676694846633232580852492966907665682329420174785622799928493982174141570988300536376172014605640055093571128951242154482096823360724463606897499251927877114694214978618635703745787247071196080184925261111592640069147340995371428727798089397099058339253708809393336896970821995795467532810092700832366940490117687759090674561003645508880274020829041490829469291765140230363758817770767392237935910065795808155977153686860232521295029354124116386201121636452307472641361141636595028811244642387300599068308738602126009804829751987310092849044362954384702926747733464319175351590871046538331567245357443802931726344543442959671527728083467345936443094973023284154782728945807311463160127437313292329244175815185999987784126514974899175283180545247803222039401384590561231331668577170266821610520553167353594940608615222100624550575851868761709806469047293135052766416738598220236251921005017747579653181408966245608103256480683427417830131411267045667088483606912390478462681200975575995581203573479936638335231457690285524081959601318236250743206803726953504783781856798483468931161688179036165582014470026793706761759328793300842709832438560788711540452593259894637164473881963137013692793576378062497103094835964599337889040132713244090994367088654209094380132698910023672674431008686340373212562139613323694947682796791865776225385860175319630668317614818435464669133795692294334462056146350441318119080686419819563595892161244237258434244838395239369245884633792486768645186526992969115842791207891291287805505372082316139679512685386164722027122773721371673185844352633732438197782144055003998905231837571856778333929361431791871607680760286619843955943356750951112900637798086705519679784088637078610154864325556183009068808153432093583975729936374944120238484147880052441543102240444913331828900781169910487939060186851423000161312445997578988869749439162223877666504546879045689285380079873565894267401820599886238766420735491068502313591793459750091800883424670508959069476861847945185981776524488117991980009661231415715094919079697116804099627699274098343146291688872242699545603067569325366048110661214028399604008931732000919733894197451146972582918533898938392663521768587063951675407519620583270996470962381753829157010740149519314261347740470253382733026048370528727409268209240163355493937437847966813692258512126872225076041020225626288941811668774779286284160430098272135095238657618122994425875739057218896378237178612256601436243698686945239790948270711065399041358142373831318187407633605388752242449689835236525368403638009823675312683419254618943408182107429315988886895153461069831845810530847282516207046407328263429966754574893347627961560740378534795000138324030552077748729712029481464795003416619518448944677383138070420357392825471904873071460979057755278646977582418259750342611034415972394334287162964941075381681617921804741327627374397243776224183014753112023517068926658936972572238386959016518827421147857501099236762872493681311828298102020836320690127662669802212634855626263529690461212888368663715507321936512942589804835880571789434957545874601387111825159401612671246243700144143595355594011655355624342025825006450586078256374784574842153759022681825117458805396311985053201767136103107714268195846443515444723991330627164528059673761740057535178082249468452476910268235807773935438404445706926698549505717699350856502131223456173622237072024382075453439077194402510535027943844857852665143347624353797242066196532153974226221885977342500481821872898512233122818463641703501710658381044534213009548215655794289539861347174545277622355000371710503364245952941249465614044916525852121575727931563663386575585607607614701176724479915146951285316598847141884373314531943599167204240992323172993057265361386169286823159697944652267047992411023385871060463809452727157228463805407615053392533844074089623741136836837522674086857154201672761699690337636153540460317556503202553145612665132380923052423111839828806065417935327439144906240366070251713688418660053459105261097170915308249097458339962660723608811734024282540686338669104019605482170789611471001066557960997721451176546177482695195153719805216511134680966400836639873641248275145164363561870547352265846528143120170605601735409949001409666478147027291654482494963070309758113239086198775009662140874332781710326204478138884955092718957539261976582180891730104861017228710627752832142214797848576421029393227977759530841304385991809457268763660234036802662726988474780348144716513049057833057269607017310126304223003987775493415624742351303186539043145789905849611349154603285982369340810536986518060650371529124750038609076312283072412974315904018242307716556191532576898862034373833706844423017348533666479465546530371887987931166221054665989973904381568815236545142647041206391012420036517680597005101373789540228277714227323861553035846286647130388898359825273556416805330493883335475432871213174356408003255972048504264999336784791187174156335823342141872368835042027873786555667053937950491884786638360391262498424263472978319290717196312706150128685724856060152305335459229119292090903643061602281002314275240719095206495852779763055398879697822075213161054137966368493763605962119777099396912648108260547511787990997827036498918799869652357149329726494728235816366894764483050549715242714043087778040159632468147594627985788493169138133775159618959990374951275421897334227805371615466237253115111849643235138971111780273173405116365288616838257695572940495747347884480759088382603128486897397414177838885445936080079319084527300298002472061059409631764220750269776351108028265733383201913600400731634476845246515114007271697049497205897264782917902822525785982996881832785553221814012227443893588676007859299869040119382576066585465899350935572685934037450545334579314707303505883648190020797282807330584546173474999986756273091785277977947351297493674218382416910224664346388332496883752588639773461398304438755958227919179054865814238098801138316017159822626415856667340715376927551513315099859445231729873518981072362907720052971818156281178469376910873596626832484984128638573854886509265477160676857788342452913105806511206724710390841478598672209379368371565689256736698702490401927373270240686249908533782902476245748097033333964283225450493196796513230771298982984872581604946882931455375943186414272011588212074587019225069785296092907760926270445805262274006616492926006649714369725423852596274035839116773574165809508422455651981602526591008473625144395934114306153699209619819885915034988705834206219193719619712618119450952157872155824354431372690645005589667937567763708065304698480052026814223479218447803329809016244931866051603119475104930086564943258114073156030307189154024320853262247604174331890356192996080908587922297575094035373179805629239186279134440581984747561452802297654015322170133100998878442133059636447331443399490918657949592740594034225388046602368997392124397726010139758904611981293399831196482007608546552816498324576244731832646096098670142141531865462707008223968820614532292114006929373332844251688710006111104865894443788096602043715972635022289514285982998446598726461174665225356518418930691291678317732719408680941024561616894357916534364492810459811239047022179485811219203693563458526269026597238416445402810299462208861776331325893972417629549307044727858567960345005005790822262452497530767286668363231736044698465308229813283043396033006001336026795755617870189237640862415534417590580905400842857729947423229545557727321691608377650488462445456590744157171732031166199522111399427733965023661595469168676826737112876422471090648280840203959295600606092158203357442948341669995616706946198094723969899233156886472252728678901453672947865050191386655592963903247363945104418483145863809790545102461627733004228736495054154530423240130016358622094085123691144164388333274265847736765366374078131576677971883144358548662539747361172000184888818313612418680212043201221149878025113119154645682974037520867163154737877280895165911622637215841585757565391263022868868924230908287569391347787660043060589633423531790606414227838413362105232299507241767339178391099194566250646908623338599890428671142971514798307822436343827992897039376096440205596892148152921814243052011263947889257303652541210279126386703640231207702217904165392921623523292605562820936549240820675456974676601800795467766960510978361597068858797504093957682965242277100860786526769518005778146853019603340994851999405432081564108124034272112594516517483790612928913078728472916679480414076918695349490729024530015613536350201496823144398484178061533141539667356176168844824650165053075677317741503009780700314088005700040661981332764023725376043952136367559754341343204541359679517636079462966004157774368465349549536995202426187432492422223718630541146900110140154242640440465527816560443158236922253437757909737160241613768289454194729509334421332439100304087839680394349904878770556960205892934464049061345075391419586394903442119749374264522296019990057571141867825873169917881486772425900338702309514419673658868190736987931708425996332716425745230183462901928316814629961404962107584175457189045641495958247589316545380104974054701406276307606188576520677676243700101495415901400751457566948960474194164170622237698992346534936969475252062836388426179131646858269852238372343690628155900085213236038875439452184120278820539456343375293923322073378213798748359493429314170806636514655221267950371265131716421179056827475259175153859558613757152681996708578040969135388687106612895440388953648685394002998629744118172763677934637664813920141107995901235973937154889634263516724337681473875333432332020204979547530221935017343852518345312990027180082180824209870058373089578575578140324378346302436610326079893485123220139713239689077037463174507949264580143082538677022671815751869466414670863676158320128266976039524017156924700969260934194080985595287613336401057220555795643585551922404524069482052023583566330348012891053795475361096763812016465555760813931878944953098590075338009847992954626743829312874575701771422950732889080376467651688227751152934798579433145423601686808530039077896397746567904102203623075605493492636668400544379060196756254180600850785983812275956568748535094076408309151471890146814194748382982552791474050403048916851433117353274721428980115373146572573166109035928158254712287959670511475620000662234284280206233644738100741365734795938452021503646301499442438514442115303810180327171531055420666567019118320865293925476609029422702740349794646026045994283586247701970310467400951818946398878239756300836312904806387532170786033882681372808134339703106664943442133338259503431911899755708871368569493491660309289837358217907942927043648017622138830068877034485684608559519981792537298852572930588242634610839041431735694208324399053151165435265005552025335193990478040008376672625372989442958291971011577867697331816987071048278783651469143639007437309571842108278493497040113490884679020970398746295414555499381558325274279121148862354496700535680815915145514166689847141894054508753447755914601552629870214632785681482135681119663330471534997672372891760478436733594947951418339964797903729582000461759937484410289271502315550374529614998576846364116958395110738380517816525464915046118251049552585479873987085926639358722725994755984978144600672893053198865729570573692882059813422305659086884203307974103966721021162839375183001239605488886240696489168573513442892978119989430211463260173953856765693430582919062447781763085863403114403922645664721463365376082192787275426656512763801459667995790955608919887609496000879079396028239220574274988636886560889913599406594726586431970615119398627382978947950724285850109738932149299824730509926550455083032788744283052705618645055549626610464397033290991792434402553982941542557635228726272123792515722489726603421271334266602406758865158843727163501334352018918469164343812729315959393006099481385132785163828470119338619301183465408266296726465897169415234499062608542171558111093231160047072368636994004654073475959335301664294145800634648559655697135766862901175225764665944755991414860058653359960432626055383263919356750479932879599393626019363824846817989961614253775397318795989437245240597916230936588968818414081837349301949757001772047662861485854424124463338343700090527279218882549431891531073607280225796206454123404647792653360891525770783560648696745023628051902915621753731359515111759232210973930548407822985781743271520070840083161880541107318048091482278635652271127206414241616700799195141804419945470752939519907267441724280732804947971435489119010633934095487216679996380091574829800005145140137552726892275622105349059869732524215921920712952328667493286098654795923724562586766443122013999050582659759973860841113106269022406478808909143304455935047061316351707965030688362808318619926710030102461913875183597250020314876317371658586016825794248478178191788909235788528338560505760998438780324107235972274265812452313854441734170922852347966230700228486984356867873769623197302748318203406127621507598763348481052520506472538605126738993056767706314659637111458226119583749820747607025034471249002347597161990423445829520198662444838214442005415453822772867721936245782954546107910823889742595054906644220419350442669666228558861913610848853229370030080908454952088834890896554058189906968389529863254671825915593969699203117211583380026900594945467023007558168720846088664909310281639903973196016553854283306793484660412498215018142186146161345248099437352588185664832438155960930883661696108445283441658270039710342818043835322082837291240389079565323276057027211145406200840440282706963772121909841919778250095881001840925480072097154086818017671516198842715420208942180934237888886006012452591765155432991904257294499882842342505086962111129120952989657601169480922975603553205783831282974626748797887968605177671394880925765824659406329754652535739960455968944882007378378951407714703970821231376387870672903055302350013901355985768595573052537682442447454181037546066588341740596324324514239902990022627821691180003612133571764878278579725680267768391786948276838674367407003159434572279684417011967241828275287853605606590763627110699597581524970037042257882766688789497423385556637333718767410747144132140104197547473285984680012549777803064355569141533411177812813428852212220038805986152190091524808588456690911843700797118307081268508344864129247609291617010582917085307062055644452890104597261069588613452721004645707139008057494184175378022379644970845254803745529629515989909248615305130877219141981797547857875995697485332205900643395442863578801774891964434613380115120654341734781567374430840514814012128295201896466599107690190431727663490259744700891390762029385456802092447403240848423092979829372960977978180853193553092049267070989480563246794585014219910484296190762869980631368823281311345342528842914462888289739645428324692379182079377181247505081740442081939946169018338878144052870407269572531654892301722456370632767126709711326505230245981589313500660927311054742911019757278321844810535610092197624470842289301382355320008731342937217624777919700814788900810297352499097900761500036368858556391428211655531831337859430218094124407459299569645775139818019349601876899570539252212956107538135134778007413081920182088866861107133900506911639118644873417534248452019563505193473289316863481379024158426251306362822610230558047226943525090376822399880776412166976485587232672027695704225316938549849546758685692004045015402732102009141496844105939591757539261266177130422838913882038014077155444333324352803542631177797308325765913989289928684480177737138762170153449475985833627997562624440739590971490110881975103750926621652256767590211557311496834773815807246197559165367050701528205970875645016538867372359239935490621771547958314110420987243482663829157327409227907987061604645760596106460618444449981939238209301149243422620783906499271093433346156833861664660962766600423332709451464651832154051042385794575990625589798158066622099928592841996901985721610361699258509833291929095837740703780972138165225471891779415271289932094160095142101126473660038539310605087017171261342619876000674951437480860538871829526231083302405265054634059224416869549060979324633138369386556625304989646726185555232562730997312826074596062952741750877054079491292168981274914617411683135816721201029960097962185156801854457963876686279438614504052543423802829818439739437202329061936935108799937630932984716507730586130825295607878444855524388744700740080181609982220669007800607454362892775832748587565213342046104405416986682039537582118823593064446781444215088392770682239054941731137212996055382501750323532521953884203881752222927588279629423370207837001112417174859168840666906700518853839633163935804081769278044159771419081618034288923065204939008404123558612119717947574453170151082600034248342204950095916184813128199461050762106767816525937979059530076346879293815949830239783975804802664729615410626392251774775794531682338179451942543558729483416589593111825144556029481181417565835098965321078644499318159901268897802523856744712617495776422175372534552921507018351630363143525113155099522557622156535847876656766276345863618194559244872658297778351728875341739906660407913475103715601070341506686222705368920821041333152689269913409272159856579269087541358683102032101883331430162594579715450570962111522231617233734382166443628396285365938743190268284966400176008464258723640890666047975047156082577331284773079127820564499914060222276849396970542926335888132234212675200884425622627689326660393976082137708499041198647002039588393876057267051955069605476274648646916983178278137543482636657053457873436947080459044930055367132682429969096200127429797462921341455571431384588341040864635348045101457830620247381898173630459183195703554854203812139572556449517260683673993414408624470129741396867021342595593874750354149023551520373788036944340531451898248967805889361152151861592447057770167659575309484681988610580579095200858661021756528432918828548540348049262800947420036786291741706635858719202827311809165269195049285752362405607679747505822960005572167014266825672506646237822378707567471519755776631099506301254497006645389355057223077878900730095092564652323786751497005435813060191700035630818468560637649634895638109597987155323740761971195909522929142125339446594970028257990189807365521041351113868625198413696123025697493663719005525742596234653469764811338321515077790112966487925517307180324778153149372797557139991292078449081300240008186569819657497820471397949348697060305033209562505555811693725730235612931989726198071100330284153066462421418966633165251032103361900523148973708035925374516368352338737081484790550705501725103031960254875529153924273369521342221904999361644314560811948503971557210479012873400488431841351000557700874308541981948634895307110989012961569129966738546562703459838504199534105041897963586929995653447306702978535300736409878007070267018739153986338142594881979796190485989910974252713357530072446568280155923120273101652450821116348659609192185590718087105986115736264343986414235432406006954023448790446862808217947788885514232275561581306803793851326900837302884060289494793200103003527626460847118844737704860869369247681610558848863087913679662415640974748672896705219616161783622020168064008403816655096011552943866098350797782219763135707732773651617092945419247135148412278164446099860052839094805264330854450597288035414463995357914779063521502795501391762223459572270703255265003666049673738256460488154921221519890894023033426833733332106361504547326169347934909543801176793139487991714751335051246901206566801677994076071466312225406748461085959498510325418197403440633086727308586548772710741757246631133220420446180255006635973314543078644982863817808194362725797781475926253549524175853044607156937279953611216192003776784437169011676460053802529361488216638165051641582841212197524592994559998945618757466096427457960781190110236736762512996636656634774080339265793552681133659133809391153312316882752348809847727031977443559952270958304284841338712705443568917206511277980088027732499947873124952338997068095449025060166692478972483754388610803136735051261992662018886046187164734357416505731917922623796376154606702753037237663416593678998953139513987807089654932485981925150682984962054594761034878701632200007769927091107727581367563315840366012505894205429657921235942777256147118750852626978011262289536081939024329630004247505616788776726156580171718725042012095503286080883140230144561100923136207678935522630354393767333398996450291989086808685912764501385059570481704444638018699535881193405964927922642793392333075974751672090867289115159802228619529755068023722302670701620029345991115232739631937281226658389441987822829559095752278722798989401978882148604383734654448338021957197206860875486403399029610429656090085617427125441028748344710145388142880013505305363010410190213911910423765098895836834146986381826528471536465382951718010621226354438027788833036498980331459422672198708388602126051529801494303137462067364212021214515397959720748651435483825426711220396465984738728134427991500249437007221819531393822515988890491024054158938008279353598765501086863279232349066916575994064054750455111840447600552401117037981885141950304587602028532605515575213331740027617062669008989716548581619823414645447120368443876117958417867300641038887479018923227040965958314839360029395560726280940810883635995064310737697754448714200589687137551648102132885426912860668746249900083895391533842805857133232015462296720426906610133560325245645797432466580571963540235972918907766562089084345240298020001070538781319786933501616857237191495572270878408218882861440368885405200571086874644500996282964060387371531514089282303399975585531231897368388863687004253637793836270158168750194037826304935624381347956669835446405741995986332222372559632630494842349804799463517991760903298801339488188698217177382391964873199715556911273741797079429991634581530907332585445698910608453587346161062778268158816886792496448410330717450441453532124396900874473912586876831857480863404356005910406503992125016870829174100512079357270010619536132088262582336861829775100844057845244609186150920003329850751516089661473877598857989685827648031056879322280707510992609817893322634508687489739917551383312287285617526068165007008692142117810692005269272229007453050599503305788677955308379344517455029799521955431945418670061457687745911773686378853825319258087141521793332604877385444092080481915758081732355926769080208799524361587794049198417307936339102258210742761353384575252386704124823304003852451434839094657803055313992555883767334308547067165737839618213550261109746191767536623947486715533802593562380944192910597377722568983425044076431156092624835303979659428608272018430904771683592319850760632478426035803518596195803599054177304987046373490737683558870462271534856961260590344362912634802840250858390885558971007191826276520182236097903520551976343384413911683005837900671838442081748267920331590522585831564705073227528013380506101150378202160126556133857806616356064422977377097233766076409405463782254068629610212659608620214916930654999811079454358553424930644534255397275245938929267748771584095824932636938119231981000969780298308790749505133789574766526653197542060754984973081943683652729281876607869695813413015428902231502419736561219279926082259114174375176844281885979369641393318697287211796726209152566207683001654094112103188637173949426544222976400333089955576955035240277585967928229543644011891009134174511378031316778770781407511623545140650961057928944630180808727252593753136847333498629774594156345451912947335641969437555448807920272753399288645290477578518039229978915691678161248280348658783809518992287116502187460872358686057699583198416970684151146889756711879779333189102437889045667962292275673707509864900527356460111052301390814063080158854800719632904386365970878258559131677759041185543107382688132852596486057179584374873079837401062694576140829677710372096097500475130097263309687124605860732972611712096316225040886027870152877477108172225436167727072423374404847171984944669175452116979447470110299025267559988812426078182182239000600802543948112447094717508836842939672796071160750143424845386172457640706969450312996798263294851950962254745065290252089337628109316906599127205028779213619561872644856181432297577743101447181656601826516799204629901161394345232433452117948802569260486915931810601384138099377071885128946072513645340843365951319492395840371125219586674419699398945418436440705992030331982379509865564278306799672492938321316708949321562948709235489711168566644461073271964703865333395279096849726113334159940680555175364628233979614183029738177819060096485690960583292735947536165047114693622723078927618506094599650428482943012913022404924814437351634741730939832140740675630619416245532810341875402232115647681387157132914989310075338643558261849078532358139496718312353252789192185026317615785243078875276759460631502344600716315362477945826233361536148514915164605549249733647480574339015260127964709700583819769120304885496774040633027757109412526147848246975793883387504408469727045875354948472249860459407372354650592150636289601050564841111627836646560657449304629591980585392762425470500286317615195556223331451695354819738454853255862626872281733435517945604059039589377268715333981883911168933265092371506687856820873009240254782552353726106923056630406557593482390774272741561932955733081948724412579222621890527092468639351522262172559225247079067722064964932047041502740739914964664645063433341067291034217034129484341786797243428989261792583609685947231514699111864260023842710688607481538663145705614731169017983874182694311646724498356814780294457844797251121638071048253037457864306815898825921957497404118304193393997709958115543781634305084097494177230551471217605441138380999736628470538637578653929623044328060622171368199580513949690785176432144868575458193807562788260146339224032463099764256438691769549799404398611707411088326473091241622057892387544789653099633275057876590998185064967747516394945076982282863062876382276508300885820996367877387989919829406434258295549973572665043119919716163812153028163037338037107801887527799242356136595833439434923166589591522798253764914753885961550754133122276722254877330591466358343226599507850372574813679753890449866816786193378302676687202769468584262289816949646404074163146681738836117158232249278910745492422421422412400422656335359682212844295003508197543580811390296201873168281447790234995018081247339562279357098760570308921537031521617603510130587316464943925257909847657810164741404169372220912038676780089689499873813216221080453309271873301789472151833516502813163998658472315054221195960442192519136354412392238973887380024830180778360540657360699568098020723834748922487215958882659917511776904538492414122696808258836691573805909395147485751312756548688771412137471334136527625353062162873392810356614348892474617197578938863670604284054584641380559062618794395454890798183756077048906173315752638584499420396688392188048251047762700158132093845558533158698134690357632436104925198593052324776531648518301005372687289191808901312099706171006071315843051495967620534251937157726962387165230531804164183857304469330248384442213392504827317959598579603082631705759775255758959239392272625229778174982283142779726582508471064239393366338258192667653346755266042096932427867897683108638733139396296009258310982360941510939953191835848178370649267827582854935639024696324570636946043611717381335690013217049811349979829035471842204193304218838638664425347541800839758466850655673838603417902107786554337737352013452784945354335284799130380891246948346319766882544264836774303031990439987903066158399611102256957185769864028487259648180451621330214692113984663281112094850218615976164556048226123375833044371670274571856517171149651836928191673797330085953324139817046999567685936936028604303212320580413908528727431098741410435157227678496152197557103225592033944484158605619062655242225665831534828189973878234628039967790182965223002887306897344597378087846263552901428191780765527300528926065436645204149093829851754684984455956566416268224103143295778629609175624311316976128001304925558853273411181963319477130648889071974308184986420196888165283256092446794109761030798261092338668661058947977452441554067652325175014196800203961236155814051956715159544478190103361524870265577512353835752515381187212129964445668068154514043358975355100111164695148005929672516377360239954427714337076384172913653972438450141553658932274531589639495774795798740990214167172479527185964478898652190125494218414214685380580934705700233081606675934007305035198829349515557977082825171996379215508307967677811977748281639191226226959919646960198217924324745834512594579522024652170602609758340041651830906777695202593580360087150840538030954786105372449040105119944507452549546854549047497221378201483193840645881373371445798758754167518261691759543780750046199481937011603349926676997455362776488763969776355302209406932561269990089074299852336668034809639988543309267830904066233291141419019362802069707516375423538349492751858259736746535014598030169745318775129835921999758237710899741251308249422013659445037582379226807305485284777534484095075149979301949768348342509671808210276759070096009234034608049365653561422490460726879627847064381350526084130932964128358004235297451922657138478578032920672674745417435339722336827972396615980548129597945822261307120891548861595725360470030515437714423236461762375678440011482992353067259088554528911990354120479262389641899917872643056102738061403495321401549616596651718318632033676951482236358847880352440859367206471206251249836545440571621640217021335878880092448854335914633664393708237283206937090214211925221510783249041669092925364649546988298276227003500510577675274832045645415545665678052986726327766459137335887628405891967369219930364380763658466008077725985927096193026484082891135869899431694522193023546745570154785976682577423366311686898244084066984194401632259983424447057330065534134438144917073737342800088384731421152181017350843215957920601676588316171202852620937941140433085389081804586369649296896627512801045424138630592355713011213508256480470507514479631015225474395206394874504764293397700087517165448887139888307229992007649003649042118631092781997229812190120071397802148409762202628499278047187389549141888917713769383366269222972899984301938317928965901029135080014946668790494840422373534019421183273641807613452836007250422231650381762746020670899698636687427602010518617536093963112964807363982492446271708621415836584838872812251520207811144785247857076886042782906531439428353174898595337441617580548088836955270107254412636866420614981746811044688995133381068142204671874520289377106871425025095884350662598661804142885857324832273533272531356765227812694006823223988016536776285772710194423721912134400798578629218594002622359639225037563887825089522296171332783281017232976260093652735234050235565438896592499255049815758914186950350032515146738064630234366314593998178781136383196184346997951057202865603417062120665143289292737041109081643969298765692390532961498124641511339945351468919482187310519401772943588776180013190447618442994596280412627998579947496872829008390841923632574844792426155592216000767802655407611164654497464162482207993642784794961728921865227875510030924813204725884135160134508210512686799884930349649475620104559015297249286011768318988157113070237268472010069179426765274570859049453388939813408249075772903511771263921116810706685667224157559837900500279038375947979308819708247061413432502299683812318598658619765060093005127101796718602543460236306978801157220850501472815552058375589233771094648307125791136234983036456653577084785572963138864969106713338927273515870573975165160514753962634023798717161352461543103368737893608351699684304466679668486161715882479870434159805574656617916666006754941481351701388285943973245491231826637192975276300053223575920921427011548247810672827671792367498305133737581475349300387240722734561888950534049444188308196929405783995672679226245589982086463962242521808142384690675070213262299709340269657521372171718501358500630599112411065200216256251164322686367235493034480431566970936858348817856497546566219043096356723510112103096535255996624991510800609389013719877599166353961692885840801780445104543613419610588788954116157891106430652911556496860168172258840280505794404706152588517415641680285059565107106378424766550604397677447935833696972480006951849099691813122854966748628737918772560592097074613055992280842443861961151744019164026979390936470281892153575578484442329580701612441142199052069638288853928818537726626413140258292421767517158755179378686044033656804471862760825050366285932641924362197319433884582820681951454277918637572595884254911936110282910455199361846867792076996532450364802695329443252012080652412403629269998984246577763244126296461252987026173370583917736827242919408795148357388144458249335713086517047686715732439909646847518230396303276157251153663913183266260589127060727612156108451547612681100413569443014394329895221085747219334038371127714028577643345936711027758076775332834176205119111090242181001948447310041598538860339398485267802500600508978948034243186942203846708799468050978987954124520484532606725279353683887957607693091843214343702569117313692481257168924744693150410640689567071289742113325586355297391471988297073936388678042473655586419386676395089577647957099154823859455999955341210756501610004952456887136511473159980355708568596513493871330754285161338436666400001028393977326980226283622636239453970572532509171749882095096693508537263970451131210510952945016203741520015492327534645389101576829594903460814443394547360742583937815717798024889283932450611135803177956547015251564434071953899485954036077080621514001448500818855153063518022064576652520587213615538941508591900969973519399128265226863345127909302777059034564919537096547854541716500756724645372228258742749151706454862869844161450328710900303171691765736123648006929690376606737209019931098693409369056831552867837381810658401117286175781475063928828392388298046911115191916407964637543310623526906271377459622349556819499504554515341070691260353811016966558436555451584781405542687692869572312009547021754229231167426286891448698138404412217400298652884969751297711349333566627316708842646872548267485472530342370416867289589460533807992242196980094595978369085073314320982362143686884734546494969279893870303904180101417646371593600830006262702248749570834085160696136169460185805825712782727912003369665039224129271426879269160657229585686376649822663083941085983257452720037307380310495901029047337859162389110748545560526734354549178405917474317526799755222979788261486931569720218634434328395637467685367236019299111892540639522355355024694631314235041542800394278574597310486293629557046150515543901831094025612778210406106173423114199095073494325586863398281649813049905410478505588888281030164672923209551851626830646131330962168789358261333236885196747096315331968446475751289175401217575606227761774386236730518505679806926098877151513502795709361138024113460602400151941102615493913693537730393235573699024045792208423582721345679593623921912057724332211805036510163759926323907070537563049490385777845939337842839528856328019448407989408177165638656263975893923532694569691305511241247354122614897240464079503438007995449139601611635210325128699107379079553291934360289511001997897603352076673093251403081421268171418892164118267727529102938410807302964381549739846547069341507556244762501527087815605093407572198569208506564736585933210295296275340077191231092155355394024289159411703370427874527037246881353847538481705123510885768352824344186183245956564848908734097313972878670717410099966219676004109040498050148126617321379855293905489996399615023226915232091340111621708504600793133127515431182879508131985411198646275797124126844090978143932767927248035145056957486986331830487923704403292636766465533500082828761663074296183374767290707302705194474949093731418889404734713214062933067682822233674796838112351403875898011356655243652778017173068758373699996060221631748749540207565731017414583329560823694639871028468838095413083849788041702233824383813666079694897811493298669096974109478074011724794380880608325332067796460758576562550919738726050658114571250922635717637884047011422287779260094549385427792268572296310899933135918625966701996430400583657264417920805208295929101736945494161777971003482407076108967895064687971032736401652938109843299171848813520983157806694469670437810144013050558873428357703709062595106314079986757946136962761506157318665158452199215713530916583718474245839818450172840163090918943620355177955216352567709352154201773923652046811254013944798208670972684443337269860510031653409902822609515052675634687820434195845096161832348678807704404330094813993047933883882771270748359763606462738832057731738133052700719036472517615366155666864296277801761898429222287770867036067101107247905473132452198341214326431267821763119875116387465289096397212730184425594678620859968096382186796962910146623010480280779787409206725294202548769488199043778593304646923661885014889523915683824549793330798587018237012284598652228473353856370026183564522964643977912744974862125351027647994675698078536235076935734167204712398475672014196511346955985715935830887456345777200477436769261145746426878963749046884832881866786533076942064302024328958694612571955900079470102973038387799746168328697208828382138402501636504777357129151819295214034782260108714923147520613177830662558337400983279958292296336284741774247629981086424819322399069925312539676650351015364295551102759908751770534441411987145261584024541638810721510141700396709440027053663225555248997586405630334360705134826656927617138561942116092621216874635495802835684229364403968002886222340350191920769249259665605859793716122924930545842274286178115514214242772534778484053948953911836138674508492330247014427760167712204388293209317101903764879903690560537536621899989516914735493185561037549176355947019430816089332154950487671866132393028348737039828189420816395688599638242338925234433574044065530160112252888075905089485440338474820817208603091399641529087382692492819080220694487155884815030890748809476352206292624780961118758653883011486169096789094420792026541629068876063325074410059213098590256832037584344112631128487814689423851645167636968922790672884555733411795847102199413745816096448963177717884484339761547676460978396766505345634054429034274977099072885668998807969289745735082468886298716328275707731455513737615355341460167526133416710522838087284750563849322491584066430382930289931255739568769941344011688170597117215911647229758028326173316538323993714597643250339063052640233641583681568379885342886933975825762250811010617560633368781723454776481255550510231879037833657234281886791692532497833884859058286877965157183818964674579571163261980970761963952200693152396021471976568845354493215653752201277326515595553478280370905979783077064492824523723333119954158292741930923118816187729451441527782611552108970651746492432065794132110345124393889130481999868067142363638373405434635679966680068811012109229499785850290534860666834562150528588772612082837331816838087709735420051868658262607443616133151522208826186420182183672950071431950567897176005953630442948697909370245274320064239035329162741631756553745592788315411286666455368992203577530951701216988253257625014679700250390970016460015067568195042598516225983993047546673382799439152978967943141062310075549417385845906535786187803012590527399869177167716213863008525700879218152606892776388479904978968386102881692768282662586108477027609583516739630614484168595984534156475017345183405846858068040519337184742949980802686523069813555986705628417430013430495593025514422292225591233361470404393155540937096480468901659112758762048301070251005949664230424036933441398330290407476713631381013086315859051240490484723428293507968707207412641076011487984003104323698122839361487389185663476608952138380231584128858972439357935444259129670300129724621242021214553960087003161680689375207033352868853483292006910231126674073476659339071911517852480158403856003835770140525503305641382010819511700477306268022377383335424671923136370147486247106050262666649010378656258490913056123049753650974671618806781600506115365695879204262866155339995441103342263272328524961971208167745284098223899969191047571446259696830451456163551170381726083670220987742131935819735310415436928723305940879198724324295986124031791043544413261557359377630052903937087133216448552722275939440187646334748887516713007753613024861670771988469860491311273150573044369719045461297207236464317945447342903984704783388064022564886474738189634904098382568540736744584232491638631009252218842252688329558002664910887731032758369635342050821672422153512861505974645319734811255227326592476726786391748197616112908561019406187154311484621054063944767306497907970054746135897491014660671284809225340767341002331378039248764509554417985694278236426704614214013297158714283858947415655257233545341660048205326639475635728094544352138696418593483135146132882296085077576645555320005002519829316507125316019938904442358573405623133625937892411279759556932985218033584515960309784830919829547889785223327398405337202863302995774295850310255465194034833366828842716519475642807713630193775540042231217946657033052717438256197586880863028784381575348330784899724856602096961716494498288768033684406167336798873021461746653508371817326931636776997421200239011044503372213349939003002790084003812023003971305223725597843141888691948552463892826240214408938959557178972362766282807856804153681576454402490338685050176217651111609029950939827869200851357554514067566102304795569476775622851660138165852833735885127867319272683793527401055344805247309028736379273647071984335529938541039034315992722321021514942226928401412424161530364777106479777788053812867748662315689203093723434088337100324760611632266667776434666345918005630428213007504859594196962793888458905491703583829670043071946696661730557356950218870756922283906141604478725223231506682678354035376194658624766087532474928735937618513127298861039131700386966600804012674166947667952289605216482627176813898817873851271231524899647969709929753782073792205810715386581717333402879786095689408301356230765062865512325553007247297312129963629113190764772556177886835082301439360221590059576130151589126496507103703326307839283873189493918516812246640223100978064860426350641005339057883669731790946777424804464185728524506443329292878984127678910880659823075595322358834422158926985345007826511036722498547173407978411303321756696509078208608971955069324215533460505667920404829468137201876756250702123388787160814080330684538341766518113794978113263115251207719516738258278371093180167577766824521066047961173372445852108836328261011557300532410131832957254571078333975900938495260094066269988346022172085096996867520309649615915906014200944626089124675995928864964042696875728702977088868583291502601705021198337987090371456209401029517875834973790523931464067168012322529920646003846443471350687520846102355078593699099392836279719424998819566210982886993461980063719660679085896671897734589262592482555652148251722528614274389179455226573956937315600463904617405246006425532749885126292318564302331297730545016092640642202611922080024736123326079758630527378450645236768427135083976006567268386754758088986226366320487847639388605179774487923763569876613474051939718091746349901292806721591525243986568522085553652803979849578054203822955712017264110293725301439365297455726268084498293052492493377241482439529847206102066717114915242012425260036611944205401637194455949000489865678286188942971225643869991208443247935382024335584717209581656489879444773840862124216400070254446900408296820507295803032337687752717993972967996855295571984138011806506685422856348291459315750072245922104207564998903391505239908451913714130160786726922236247482850399512194965693347314809332109367222335594223739917543792835242678048226458644011652767580420105089736030173630428671957914497703582306281599853204113276563114319976163100921126697165178123068311296403721201136869132835213803921113803451277391822720401902087408645108279716084060076372406889637587420750699561716210929434466184822152942314056231120133492116887861117719903418741788160262070194245414121395730009374179104274398910492672463017103547865318884124418270284265895652488941746753354883538385837056390108532175609615949863803283829763326397129588894611879624059141464082137359050195823224009428061571537939218650301282551673818554368184570212309762294139966842403770954462037460010040668489513572159108952711090154721210219349800312325779516502649019905920872599312940241723448128241520404631575254368088829226316832873702120707694825535557563685961316994953605077278315421261690012202725930804882313276217390680035250608474821739146442861052290297580128849215016979807769259158908361592497398106323876806951353262548644705015110417311440456850940307295178931374669037927884843377634924736886044323868803929576488896916464986702516785983870117879104856453202988250204879634451253749224932023940077912572925522891586379920395277676031747981708322311534726772771192347264899767674670222174417180073777770605481376530221047176987819865256486690408448182820741963800131892963192534625490977903278217063788266976932703022702612298993282104303943844329145826323695581780522970906765229196302377333231704834752874198276773608568554675225310807924164610733163650419145759929905013889398751456815575694135486347918360202427432349555238824646881986193076195273604152517913701752795856865514787345578575059403105184531746316081880210790699539245308023449462518259539147742761189694344495983349685889813174240403916946077543277083567370201669436565888654683065535807575305456789457080963701044965587000472118273563365895536405295001115203284096190382842387783763929420373156561359204776280994785922762621913684625574085556354663481910364675646413509254915923898592951595641518731588722036453170342513236780160965179222140268897726396336054338827318396253092610332172405489312212813070452652148455134489950290657621553980352575307005924417116798485792524089642087626959297564801621353090133579730954131448831507188065352977668918093089619340212195385173533959504095721618119685305657738860198201752522682817666987594166662852098343451108866908157944706792405471705936416159549381290655994194742186757525764563436129806434261226483133095312399878581212333391642756601815970039294126352150589094708369683748371818616462189882517163936563897092434367779479973696716922064493105237882350755826167729818565160819617625767176224162213281589000349682936734507257961262557689222903467475856838488232058493857891025945863648962641473207128936164750373966271403462758765012132312108434860274416066334560766582855016763684307085843427101991805366232886265098077150171747619694177889452228521434882331208700593626882926382921714761092009298191992304766165316469431174320653803142743859663702359030815608189432579384118845049279661890739773370941614914599002680422879442957279544480315250361726553278148733244209410352847727644097233569727880037940120669176040806085612389369887305024271019867656245651324584824372983476806113889810881195130614904926672107675511236017477893981441002981587560862005460317801866501376366408386366383555805963422093940350390770139296991109728124301280517473586829128040191873088421502204723666174848960765946346972362497438313468249766022396004427706510121451686209209552237879050164345452023072865844892005347536267749972349547940728627915598207532871647267315712521131102956756393384838451716964790342168229333855788509009164938794635213842767554883915857626894019329211141878980514044144890062023697541998619758646340291996196428427652227008787959475221984968668457100222976444791158834044429883337335626259447204285772764927312727098983548452349535813755324158826186494218640608545859614023960789934717782139136921715066178176985713982133573878646044603567019463573266744555584486854572857887233699510754846191598998404181589749573101340215414287808767374827516275834171092660606385039690459276856605908109485996645753744442710860409963335725046739190035199568551801710123380042998437958082895378755898836408397001410819021386565452245845580697948075776873844734625018915658748441297852697240744260688163300105104700869144137011726674367258734738456794955790861709116211775404670005171720666613362427274505284890082206073170191558015496554677525828645501732533717388320902145131906370888447370985177410352740101967443988246956134548360666528590507383028149611931929884933572688815814068122059917083426650331296280780906941186702807319214243467470502610672453311738851954797244057368513362773521769653472521519978780153907577997696655658136804695735945869441877978936867434554505983338536876474354591165989324676213168441564640474926357085974845166995697512680317083869771129352055701101792967468021881402703155322874945340798724340446173611857370099041043623599699151548951534231473289298001949980422701152855996814667446589866048031201457193558358899555151318434741166109455248078882038040128467004240597676735669806547287827882820911725896936876994184564286987656804801259782249679363346647981375501858011400484004190227261910558712474735820717719584425586774805966338667609829899344770686614661542250405224726760194700769577252387524441565310096909833027703686482157767810251784523886073248974929289726188451031329121676608690927270947683226552563501316127342825814668811470551372313619675204098161553122718344621235193674389459088545525881741802179795597195562535716035439299240463475833878750264030052535670864275203069105434365357407743198043907399625347548924051125110044185982331079436620928195719286004474694672717469895616594152991486836174150771554844724604069312294912340810143615267187935996666217710276086020869261927264862657159105783393175913967769834756981338490319045698684834336982586428402011359622625370222645859094724129142508071019814138356087513197170376774950773900846116189110594524639153193646931923472330850245077231201367023284607218837276472892910690288607424939968115472076350592335251099982145740293460840840742807707626247974187349650120425426188475750280306199889750616684733840583298413234429453346066243725889454474642770177601788570040545967834138722861925542785573146353851302123817381374951267801827294766292785613304627347626649839979958205229640239710077091434452006517240541349234006015804003376772655137713158446697158360936681088933755151378702907114035197033371807929618912056992058900014108298044061163881086940316596445890971724994583136823087931476158059388921661052827330668113147669153829232273530340269190945810573221635535284973324485968460458450801136557073921484818072045141277061550373249383023466231234033266808003479986534368466878870989772080078787672961407496630861953028214487089802658129647836501769180732010928441489998672427319944489333155679809775011020674533772321894707922723925424150548700588135993244056728150988245054019129948488691716016318632018364309999038191709468760603094372232818147075240480505016994877988591158944952962921661499767377416699035974764875046748342496085269299923347767704317945057106599752891430592950140956196178546194180736782767106548088708677459208051142431180426655423178246221976080929252352809792582380909408889361683038158111466348772807975871978820448124794383547927469499943033009471457683709015228453819884603911195114399753318044305074453073011902132805739201311769714613035077824821358333473905326338920295698142738613962375706132842141115640331836611410415330135257125264992397316191789731111838050531672599699426813612911003916389581688849647276252813313340370560927278892083273448991365841955631594592875127329670550144398015308345856089644755606759718625090277061504297304918003788764624286809710569246950509816561201941333170392945401616171726233087314423733557223526963172473249682767592810998223470567854978023559665524904390636763754247459384965166535513034095893104236110653724934795889079839146555379251957102631361688653596987760605330398404805583738932159105890057611878822243291645809146371097245329871404718966653312563620157338051843360507972147045449435920934435303344960723180456835682964170053704801326404928108796248882085654384870905246560620825941158950601253021556258169230564815439519320077925886330946422735631265706562607958037148647778239233487717279786359293336179361631230934665943579092854259505047427477174901074605325769817997223331331206030994446144891549750487179240210734230663724611246225775865382389510611558217928507277715733658953949910925203551563480293186757155624861293508910664158137204517409218226312150326342123422434020096947828408964020943379115914573208104260232736599589624755589851631118668938912506913011472475568938520711620997179828462733197569602562534856040824047358171406921342435921153752395874056669815238354011173361252238948188732347045697236425241243753404653858978882491067850476261435292320167070382407310716480251861732412477078543199695581664449376763509464199702022201298619367627215822324931645947213883894102090203693919020561229927728350316883853808311720798358770668187851483897075680483697081521127560326520187281042770705742075765338729584486043477822519556382043433538732865507454110088080452129170226250664252365667564795802798289820782234075043241934313449865028629816426841468516699710353599710646586919588006324049526215532047814844618291585036146940705852791759251233036173959044505529593994014518069343374037426155876439692990022403885274786824237362652249315113335739275640965153833064440935721143205821833578773286362274755892045212805732445803291468982955873681328587937893596606759028130304272187198291451725209875586240529626695598339594946854618757517546302252679523925624102412680372726813116517481284149979653261579312312163200509673517519988771740883686342881889374813536429341839922956679180805557556703447400234498914000915260756213250820309400050394294626470417898256236601578466019940350279327019294349512153187873312535762699726574891023880763714221599602285779953148428453744782389313987871586706681996447020560270958714422817871543039954455832242443136454264726267722322465762304513336718860168504565779163060585974876916413243665893840938245291031569046865579678268891865563923088163270936766267267011222892171716129254113764205482456559606449401615876053678203936647545108263984715931183965579346200350819070853638145081061448928214284052864063628362209203659060940808578786801559709741242530837216062702559347508795537347696810129794263605695906115570523268699758248231746037614779995433996008532870147637953898839206429904608080038797436477016465790778046844278456744598490000482146555251477265705558593579657641492741235850516845258455404794021547516721422225532368457254465556572102331764289719406278409549055945565203842356416879350211460907939798683637620442469669262667937586172492122476626539939718065507493742179409281372110268927973675968039745931500942126651870680376603754327014810103767485354649484157457540886693057685767488195367806999386906090597246386986538511084531777610652027915139697580214351772662569966612210119306817822577706516616465509167978447554756188270299712470955568779142500060702810983465386171577149711612112519771310655878323598468350887815953860892179931518948368861998480044160760619606160210874008752243684320159058341936460302082954980435047606177414337739733751629798754962679416329789776548244163648461091325405769802190606853087319584560254017344360639137129248790174292628008031681070109617348800095133903464803690707196817254284958616765280056601963692170407341233748960770163305466286619317232270512082523131117830444872192158896262572664557391724095449981221750931793909089954296365851767289748901479999713706763744427292383289407097224595276816383982120410665938347278396454713823301867279994600506592960582154323400068290168620664801006704596527486706616057862746510018154212822624434054272010921499121873900560879264950420763229182138133303989376177213297516637829399896664021989102112025932762738097001590405013626653336802446566285317336110052601021975283212587756926782255348315229145409029760858572570041431687728918798930743872394646248285985238233277340693049757616999766079813874059550812160518185905573272699947968643884354215858225848607638005179690834133640816703090691044060445254345854601286254766109163506767042250708936066330843086804009092449311692856551927862981758283365269175387649610688853412328300545419867848880372928457552447254008580301373992785735536725094274395381713634539102990143475277947027434759239205598806819989689604167129761031565972964886888329402228852091490977306934755911612040259337918132029159261527989472203366197921254219074501795240655629724279870634148171636062895865238425904025042420259291652039993971632184471496769843414773001562550943859825434125115604669247132747541729104290675441721337413659872468443822966334697227585321636651165039064540449818764581181015978936253244314974028810229795723789120172635494538330152757832730684276414091972161726907957399464372186676444074591501804980104214045160141214646196919066282859609820977405448497307837135061278672438789957376150921026460375507031425190880219163304684539871294974634799824324615097083814649961936196791517516704784245292474378893307907854682066509586048639207915432509126515784105515140034279228577469962281414448916412789350119685760925452826526029623540022655464420731645049679498489073031649929780838602436241126779875298200781779902984239717071108319229903212222437424799318767099122472201140925761361527519476198192807999383465383172310031994973534318321919632234993485459570733273776143212477172312542014866738814358992902218521897871683685510025107018523179771675332952496135508229388552881426679773267128037725745980899386197505863301900817354638245028472648533099571779478097506116647630765254726156973880213303985144775997962547836792741811964750688579562596273276225487793217459190543146096758656338804985464917888142182826624196073987559436727018564314269894010694407417997482046971359871504584198693805387104137734420464789059882086877905220720192384349775341651370186945037167002194899466108450878800818221561667604931547961453753080676928989942565169682694687816172975895028955549464363897069436086930563447762989492488051540244915542638054835977984408196811308901030859011709005227678554944451596932945430786949164828521959522068554356505488872058618995885731858051618021182658944988279008819057760570603626447011217370759518701165019987129512048346050777528660450726538237114245667618890610068034392871011711933714072395127664773049599555369253631387016414503303876704755867835916018891055862045428921067293817479793424006781013391271158848610192766555633882738062430052583497751403071419861969935150776768523904709223373882193109270475350056686275708340717784631825817959013137422109341920242164270709757407916775166394918055930780311066657349309585307497570808369720482537916128958412100220916383089776775567943311308595495198988406914661222381102272964372893735151777155196034003460943507268537687201869503029889140620059012453137390456592527627964331127733547218906672721635994216727438515851273921700895257830424162431506859407043246380296412926739528308469958240591862635456380436161477923456799412531346414491398451118333636809301915390133116017230547340484113878089607225313496163857369719620970065428467230366252307272561423749402198858275294808925958214405641809836788197156729704007051166568633601291950244392538499874178256831516313565221815074010299909171707277342167690091165982626580898577777567447835331378712008784297061942216698154621009461380751796479753384090401770559927775680147472978872378940589811110551659225097695151600394096606610287072137124151044467018790964234827491077456491991280156206088781416877414839149045684671154868365101099673663785946186705727773852818483195445745705744572236408424468667061283938438847242237411872919916250319311879183131755257433176718063134107129844169742886428425140620515384230280936831812293900522162890522501411705980680144277729882659375287382039670204307361377385503976200937426101354790669308180585139096300417285689324237636998650179064778575434606987171691386528874235663514739780062897970493776743737171928806700744416038435406406770437127732193680877428130670912653534295740844719577834711820598437389461125917271456115842025663534512178921071715917191423093918557092932662307811428794827172068109989853343960162490255481985176401809419190626243484467210128941266099251541173406437271635629733639824319469117650158239360240621203745012224109404663072063397879111878393091968368489150114229037032558023108241685058251218424093097326711360090629038161830682713691028366195151235306587413524462101362526064454734451309526477562626984857840373318981815353613109178115318327908440166816561676703492147625183324331390963489671265523098474089756412243966186612201215106222515249719264686974957979100964085983049724216078763447365924486977617568026557882598759035627198101852394919443440032748910466296818405070702775718787707261272486033545577569736335008216122465411261275132762678720802990282887400971041334792422545578982727618956299315922994752797075011341263568574842212449579591071552925318790137636296228285049353911015243842146101521118819350040309770690216441455718963376410834457689152321874112653046021061968212218801815158903760766329129477034732046368589362008827930940363400006381132647821787287301830108242929100542155850864516524199323960931833756276091396813945227327212514017807881955488420302205370305458825928698319670335401446900590552825011680181188089274602655407699710260631484132896676832855176044444021772589177744124366009493708909869826818850719634727541440920828549102052394575580710900986384909534856614482036568350602271503757498156484695885234485431506056047017639681989632119938998293743587621842135437709960922925519744382774633409564799413973740182037466052459070423600459635547704451597078911886485263116953745948100284294817694153211083836453980822763621251289405337972139845484311889637026538715155099524884893337479943404183358567131619038136451191536980944397594735016376145008232720814392191900114697730602350716458915471104979807940292268455053230152333371731985147180987628750287304847183473250179163917491764846098082867006936714378068780877459268849077229674714045668026761701773871425356776397717056540126280543944729108663050483772552960218197263572732703223880902799926249875549500427599134192154390824735011886703240502632843477790373643264830274712781968447591361138272799145210311827209573054285484921925024184795764190356001488912422452318394749185973544944665534233556935877918957262505466046378108362468637282239870953899984165929089985597766659391762547831589833700886166135393743139775177703817274146347382860614219629359664751715404509063134419582373079847678499781189229873203361241950557449015872383156238765829949643615104045651726588858662694833105303404610881516503554385454490113498280148367822830466399976140728640605600876727625194828739013455772027277742164090971951459782886235489831034102873751905271912883526946146493082434640898420434044649506749348741708769705012073623649994565648310882087161686751397524957766830561338664116957439624608631676805637691452363267758344655165281640400862424145934401321861147307389574240329867185339209679924680609060314250923867015693087383563362639857102574315087164590464061983473079306808358866763114800087431010906904690850068408227505103104994900372261408749617325857972912584126375888639954401523230637828745331278520730328206269977881578032566074565424960338634535009318004329099787465154663526598383593056239534480424294466785910626416668066654824661394425765771788677636948753651335735369748583792513104580733896799467828695595375091210165376185800667395080862750189584274325152602703691695833108932575745870041820566522739553963106219166553994946703074937134629466447314853463237092539391293215574329800541497294156055947038806954463914505651395191035233617463222499044445201675618159925297261077065702586096284939982555274658569378694410697935595157894312078763202557927374556270660547112708305023692292744773340902931386781075830015457063203076764034066301978416170550180704714757181867288242797083758738460207750134878052994334524707922426656533420497352267014680952155358518759979355507035920534755736352821337659367622801930106764679842228199626002716399117090795534288733866319178481911734219192164974719914580894115225803289780436354919027360022147376098502258938301946575748622048938093646540396175505289717967758523762830400209817356917352761508342871240028353170926861627634586713915603844790242977718128993547080706340797981160061162823364173261249977414828946062703829448190077680719084921963893746576831992898291715026032291361508266781148930463647735868656807240744137398223513797602349815852986793211968798362488833002221850825611019130838776276313812672740282133990207679459675144932184144038265981515710113893143434307058001000286842546930407519050104151253558765398942296894856504331030474203025534949047004965368296669843902199277351035593121925936173724804995810232384018326635428500115404375276271942417600194722310709463912760117732511340551996229294316562361157901867164489515364205650573842460418840690336490786519243069018813543579975080443777103684667715128063543711989783382030543994616865854398611748660155549552960748759908603568490823041251934788872396137821140318646558629266022866887502283576005273249510534909671970617659283702906233682007463466633285015247450686832514257527771143088998242613091056158989349808797427823505135472798276165136261279066900088257820028041623916894111239378306053364559818468954154743141714521969893695157157858307863201474646626502022484404489317954530469741958287824507113309491321383685925452909722999228508933033073610818428672991590403475699876111778183154170449689026638217805991210991911320376776189084243021215939688706531795090679646241227923827053035089738507770176518733184355323226228788748924797345951113241771276329227471471760752971853456488267876453470381504269309044963870272606005337814476486660459930439231284654625004163630053785176677162580727887807832411977924383953024078575686084582734701964996567919636214273970065510153837486894952528939046754278602409013436437838149428543243323401364726828336653967077382320446307217611531493246116793013959161994030408248108437971283819655436267678954237086996523367753309690100326155669630367657169053477871850090950917555655400758887096118859303301336668957926199999836208532105362793021844565367434110864217593160145241534205381915229476056371811635467344494132593678347227535745758728137858468161781622091628876666193330492682213099438622060197484557797093159359235617934167993405437732794766331673111562930755460291077091533404256636283047643196042962650163763355754101956083640019618760162520601518905819144558580994367280466887268895085671008081761772351772733411642619168243458797112741974711238824122723907257089123498943201165380985876054080947705188281386824133485402200058542227480394515682262709635145595204099621352407874950252847818329535646970601600022626316336919355111802546820770956130142303683166103781461377102905174813240302507382394316098615061411394854603186043857514892088741269044260379741174042294163332593669858247782065442599938993522406137335083753082099310254336402345917797413487291826011951191455343368257059161329456357663793547781216695995663954679146708592075601308498647880781690392640717219116240351007647206100888166165524096578790423849910119746454023921125437429585221001771694641567717269711076827391890453084284500175961700877902990721564048957129749404305370939196641844301219750041388492144636597488211692330385844186485532469559215534849322645727537591306001634558328080453244582631387199155689417184575142800542766902938957076228560950184228292445118006390152721218665859592379358067590256917818456198551189110727836214112326019799544729527557184118723926333835268983338026306080173577678534216125577674846621923588518033342157302737117879704251133175251852541094623703697848980628771303627767477295744136208622555965439997225979494608508989033753684617261280113270623313024267968008126337501280524382826250959894446160317739841637128141937186619702218189955842677524185767612416823536744404973686849445891425652172239989122518874022104514319340385586910636491034491290586068443366999840847643724864875387340121448785566608933153619076869388824521009779939830690749945330159787536248117869819272409259962794245595335928178577169635525114735582121290202108421835511648839182574325561086125573747643122500909276336031375208506735443129971023992865400520101798378462298545478542037982130217902281491068409994851229365045645686177097377257623635584153997243527053330907016793932584002018660285326393678770560986106915927631999853453864974771948584311846274474323755564318845143546576410327443594626317512357520053334767248609927352145115084839281380872358594255952799252731142741068727361526482998013838126546277019917673712262227565285258167794051840356183068080304684784803480551934801103000523783701178151460322038810513364763938626019395918182242911359708056237296682725841121305782577643151407374629621373345801610618518758254060941255151449608880928731056213160667574095341079817865153368237234699377148489587775321201062173312552026131318645351108466513128758301450944061891909060798149745313593416600677843166794392779286579742581676081884183590113324045502585603284715949496151368579793378470724797888380808562698329781483987925243076213156273347027400622247695895047629350674191574407162509737721542787222513640242884553140737686541183079135117297437889425961227556143692518106778925257029376679494993975854245303163436463407498864746340952092746898488546542893519212212093351157412944664792507036534388063058444153947468829143159213282093459360689428032261162676995926530494385686175802622653698553546771392974492826596454654377734567467545550757977983488742614617581553587592650655623281946209827427088861743399924225993553864233546889258404397384784427620434378292135126315792677762258848513883493745948363211553935506645431611886030808055232615893260903405792707799961022570509118996418676198549882045332451329610864750357146498426880742448898650536395309549759719633280523361355721655591601130348119060290050986914575971457173333875802806531957313425822322153170963159804163450261572864298404391893879452894813237391057025919148836374910231028655696731814193906277343051683775935682190680867032162745414514480071564645946376849521009369788690382867864546142975239059569597986423836935787916098198276484650003204923926670737387752363848416254756849866743533515872137994584528494330662935783805459880894237028592187588640103523500709677235212936617089489939010166235703782048047488333706422860673191227786650128228069134938724460805055483308587517033205793520660973729346590258665533202350004722871789917668844272012372050626076607347833521055957178611765720418758654741825673940896032422905379466326117237504512414418355728092490262361152535444310434520673134690227082299031139114346688805073515412322634668405629257033823583476873796031255036386028188021594894551977992475515838050375804090157949200332596478566773681672192561204742057345626424951053494304576536103030460098854745331965618696680077296548656230551528849128888677074577942759193101053756411774848371457939041511283156256774377099152985065573244030786505790037934997066975682398207744185829211820064192110502546939050558572831848974998687923635846101920134690974217607895633398045052217125240437286732837559715857633045244576256266507216970898972579457450128926049102338622669230890838870098670781166555747416529326794192131980548008742435520674162555592460868911145232369760301697314866489901767054731680298955396558990574356190246297042722531400297518081424353040195055748528419379915929261853710155532974189084095505620803629186331669732641356360756817725205972508673639146555052805655791598443565071872740322418513965549558498827292962209664002667739759205775769365767329705468901510052607052034509522174439436117903950227801786233684504284090952495782668813686984630708476315280261605414939006626853041124849230152729749347572234458979903859818065769536901907330884787670238732010539697569558363017471616832486891893733141201349109964553271116947448506303672910096249949827649175737795381542019382965104708492462666946631641415743459749538599361089594453022276940214370366511372803134283634367169486250932276395843521526517760790170538943020077464396803807921577234025410558357707186769289000178862544643485994497028839618399530204138658639900010220005354378178008931187225690182032872973596976576152295611766108586753352325754561311912475922529787945258347915873750952108772811303647359061500360161947391274654877734310837104640588646024325435196621411390986426424925125291071357907118826218733626260935508547807613131550669563599241231040047196304447673334463635396764938609358119950191358855108968276977313586177349963082499461316602269686717205989809665545365622384807728469402512847570526685779026206525373598308658610914605834443146101744413662592320874256230721507571684995256717939262580922012001460898740903547649207933761437089241068265706555098455197862487001985085021359999095303255171823705279468772563178597864947290932861595618901621341383254039084366731243922770744627076525869752617323366483383837757954075799200441070448392076911184433444545258030448006929855752987782687524859874661291944966462170676521649599448798714094387982528375569191899508649943467165896937392060166388604004554631206084323428146617013143454143833352157617182351454355862920997996848076512812484978657723213872645613221430181897999708366397665796077965755493405816836073723640388807001863457089197461101087165387078709359330975425254926059858384425103755385116121607106628966930616144574651725091936776662585944878279040311524355055567246924658377062420086484749201105572460852240186401870367802666367037649346892190761301424396540877529341661468896458588025542941681424860127982018846361868314877041377723368188751750736339718072122660114371962690258223371309852188654217327952111710992187638901564527036477496194471084301232544274909013252443518620654602129769056554808903013335336888538260390188824670724414670032429757834946788685696480049672706978428043646144580795757325168630223006783031000454957959756860128405575372351052474339177056739338222456082706403028374231438427694875565896720703614752434346953154379712012932571814896879241450738028120251139603540124801478664691767004767269986010473378840331647948454778490389817812951528590474609454474739471529526873849401776183289567319834541500800593878914911619043266683184951986409035321254379814800003811790621119542125237511878669735796857908978644750869057309778380053473059065154161400088983806168767774744867456280750164032110134461875969711754296963496543801917700039811992363909478825168385035880352753285147121249739014730764974433240990976248472371991910783226272254507127658438809995219647900776703231142420830583940247000376788645956201485347633729843704056235026109079436867746275063650656258880584938969350086388802507164363384152409222524205876975413050016690734255203248041609880202933208089033217111361968143967281902421392727274961916895544847659676431687556723963149356851428174988590010509466833748790793390803641480707400799876319012722193489959145895996348481540498843576824041324290218791374654640521976374748285307144024799636336359167210503632852713768395068495749739791390527357484741936666902545344674837943825174667623114756040186942392130173054382655186614130404494840148873771390954641895087496096379688022137606057749521710010381829945648294146224970378280722670006125111739017172760966979519207071594313080793622011444683562886896909201236304621920220706576366003246168341464198011751381959195524993228963098916468537341995781314783583541784441367783909512681967933430675228371225133052288079497520674619483152671525765049184878105373432398161782769135770853155712298946219946428209231777390713444709326586910743848018281279718650661759234591946628474532344631543737549779985002833611785602114731125390968199217275788974806551857245353248598907074297514973398131803370272416092851281110714926571270015125345854124037006802011853266086191852218217864053309608699527417466377075574987763567627891344840991974717386495145191949143543923098532009288957633926412874243732323225052043893551592548921724072708235661736724051103857670892033451272735067609914370467084750385590660107953626654619227127771074049578485593807741553554511913094067357671795400436448988101748733506771385666023442274795957929360650960419747427315814447697761897000784093096331942910551386474500703213576112484265071255235356498189257804235506046793051218206649333265206678723802646611816597761322483548415306221666610490340105515411416281965414661825075467576350269834176080792254283467772796946254870711783480320209186842485970513293349820157331705205396293085921174305342236262292224987616716660961299460066920610002391484132521960696007557871753433672955691358460773397933418256961455563057859756862990393122001812990944444888274197669259469039370935009983355427646517919585899611051925685632070336724611922775146332752748460289868314192395161426638392734352888942297438710787294623530456161757691719924940095822202444175486652327184121497889588694647069620345156195824047526198112541503488314095285121648668439174737331678557877779780318504046585853626250118589523409481133082206011151066711179203738440746785892829433249194062498099864036352619061888838974232622249646675525281106641500011824129093612242328472804085528729166824328156659051710459907477095894306119383390218388022225710890477124535864891388675050313713758774466413437177630772140704833779364770789483895989896802194136283885825206983334794087226400334577804719003960566594009965463318937998108251601223762588821225867791671962824365661728623532866466427528126142900450145878302505200186965609015255642689059156284015694933595735804697790019344446289805291667863666574659655723980224556256958759032539636718712957719666749406888455961042075148853449668095179267048638623571538090432757190979959625931913664408316625383358406211706700108535265712400184859958558185488025515788389005080490232061065744436588366472352338974862768880315690893385219513620982094640090483717709815478854856378540848367076161760137890548725996061406538493870628840742180225613149326980829288556268853314017091181424280026899220424463764094543492790941674701024030772004534971684277878014253306487564853629261361507206276531945910024975198490078917856699307798736682890987446155618083854749066197535291508127395489026638112631452924839887611895545201228261211638933996033103655588029946211970172818314826239234269417208045825551870159464047048723812640564453728039923221316447497038369088629566186437524248626858251135387583928492576576243253103880708773191447854767765864127744950926458828520698755380648426539579556604390482756743837100812816127450746079424178455772633642318378053191342869968950391848272998080982964628964910043206594604676592259499166685912013234002752570873064299292408805656943031317098886202197663983390004019689605970528790428124012726927377088937939201232126055538807134442717525256485957859064061070298029264711112968635167665649918631245992645241920211464515919730096458733451313575155382283715741466739269960219403457445770775312223260661420543288344828426168662472828126889238614589238985961658055620376573548370266971331351828861553285485413802976526351047693142585721908544686597270505609235177208594234932469605241526909417276426102983325747443413619662488680064875173127963010925746941628778345630644010678702663670138981501080259819191416997331592981928602090597428718578263439637618401617102002874129373482848696863131188808965268712298585231530205660294348294615788106899575101350662087057519082360902303382624200544162382465078720068645723587339022203980578788641113529899657194663461203957451344261994407502192015076253604357288812351389544723202051366222069566388718524251776070907980543591711013373987052708361400322242356465950294957277310365666049186277829407873276883223140920867378460653858790797711424192067293559884388008190351327758316221328699356615520158382600077880232984028200604483420849160014789063086994541291193287166957418277012831524347102654497032932134092252921132694827628915996969436747026219744903389572148786534832423257292714054741564681110703716579415538048192155106558600850323884569013926113179261501297893937380454937724363449758568632060775753623747456606220973725358424570047368064732947941396295513500694924336795140484635585214559685443658033830123372252433209080921629523913532100201462223401632272406405673200678336771873773574165373839173703402359644240473838550110643776034350236459839310289169486316937505892366134843176172321470199523363816823174131496293126805591239121467557310753183171631390296785034981739120040955709917519163677344109760707965446256967218017604131320155177855768147229392693125403671162695071843554812815389444141583536951859688903780868786695872639774402808277317175692004609883058163971752150189152991026682212235094282765500911091771875089139038047760731192179998071134465622124262924579944450915799162569299023175009217864208441017627435528188557241582752902961182616522364880443470996673233458406110160192572759854050787835385456823759096132479818883006658031986879368541922169927059676803660032331194427285210403089467907465635162529424453116720743323468470175092547655453279511742150581020542968607366997658345427584092321263103158122548310474559678785561259895221550224394042575076352604120364070537917538838152689980131265938659588669352885769889827198197425283284833202787780116756480869008936239555655381512766340310076186237223439794544603818755747371018968890669005233421681150487520381075166875542123156697139330760147354846279933063910205294735796194532286925205778431663183127377900699938216444759949450804679617776656764931560640692764113385338045184050397063027074517570573035065503477616616006057403809033343640842748199158201040564862591575665702422494376744894528605557993088907829173299128173896783933644966251052603022275402840867284628356388331630505730274283961318267350818941886637210819985179131282147091713569614975144962749301295507060969317452308000318547680664510776070547959452138071143721552872011194265140350233555893200357600079115029412046049652088078491653012175470325731322545360478230217041698296912224215915904707334306772760510267758586951068935403526482977807494054008029053122518115935143901364599954664401079148736713153688696977355661058688028499865651986751751705311672247252588055720150193819683326057494688823430230971967741735615411305682948205264679603362063669467705009272346251008003238294721182861585378625808976783905922057794875884853458964611215016943746362442617078067664178773206660673607600167692946962416836887922716224102663418542587742625253325732607087772894370425751608706017984528565541790663162629551636741156920816442026137009033390318834519032081015487237384800086057736600945658222351048670432056124718773548393202071932772358122698977011310163554759015508709291214037839377898937446498121924357365961414294787202161859829894384249433243790320329678878338994667783711977407446952350525291563117809659534288741448722307126882582990373423297388232124926873358840305897549829626040404259550298141550142486070478986112495739323609251845607013533691104011586748214264993484001943447423986046576210578637973603020536694559541022891038273232054934293577980623795337339648552433018931943430102754011910262995916273594866115363165606925580094647577393742281285536902332644453736157351640825872714500295146328481611153985212470419979794796775231655681336878881917523511117836339261809999569028682517172758607380740667092072210414916147050957647288934976161900268751375218578400150957389952015687741726964633255600745498565176177164478434620075957044286056360434683402470717057073735479401430361260734422773636284872202498136648643114201370368002279159875991637265158669353153999769629193619925499281094161274834158460141920478650160310890684243135263106102271775286521447813861400986574059526262174902235433968105377532204947382570799287317675629432079585353345354209054376829553559495367797071325826008890578257314824288678294467012591571583329309364883935050006974026818039744816654698930143479546196586883614838791986570446251214429054066838755838657850775467629263861877928843178471509525678830256697379663308836918987066470607869398710612021133274450690235974040940209007608640981729087689831104298215959436736259031137082161616258797748466644761752947979119206321071995185172983570696779665348975012019442351832837932128661861123626338552004362413766971887431325998269482954504786619001035613924744680747513782787834804227022254140054117240182736677029385117765424014982682800314039428906109783854924356357396643066353123427428118314794259692506884347644688732623942768152091483650040823295970094409309708312613231327178595262080657874302055238872111125182393923439417655483358647464534629952175992132693377445777988118607301327511121498159139071487516771407706751057287188837384769475310673171216313248865650716511623909071890541724210643235268489837904174954100712147655084056513856781234340152693182857845622852747062027358955213029970446281602902310227993876638915345173608618864323980472091139746985201937593121287264922024718309207983758644709763956044584323954302882124313420899581418106790208725003857849846139808990760734085900667046241525006588776455769552358762444246490284546392252906960366538918077311086532986651020041906803689186457187422032975970941411754294383606865115077362990674835815511174420384835025961896625179578878098172648824451862293957224665458083926829959520302214718611209582721962138521579616470053877747573641571886659268284402329458660221070410640629769638250001866904252229085318039744099197917344357169622528668665376763454993598737624590292530701623236369777362904262027944527599524489472799853986509731165757320353218718121499606448102603681165940107512635619816443626363538007682840227353505545016089968804312401338822565843731433771633847717188043468873421370167099294270283493891475524415315855931446389897158125170329998300830780632421678189491444580718800686373232753512291090621541910323354142913554379606779369999720625364834836615745174772529074638408600028455313506307782606196749143684034961625774569420865493544956056951013304791972538813588172087899269095075336284594523561355938029798527770899603717433249432975997084308970716977999527792998362944024221165276222839966129782158694538621591681311408365622468202060314966638688919838662278187137674695574675518226367261565102297138537719017564363736614764244784804656064869445178439914207699923907180658861122411241062340555798390309682977880106551060360171082653487514814694643892859144176541771755864323972005983459832272315401123555140304668169898875422306842613931859733907202162580998967459827000447818957513603271538905213758963407170586933476041680500504681391891555035702221137327605217972898478381229501953900746559263263311472167083630918876785313963909005364326715430710798830826935166323780656026764404716137761512260294893650745596769183474138717410799708922779393719778860204632638095617535056451031513284451286627241554651821954419395623874593186944792464670232346286909573420695569454320765789029475615409405490161052111833366676500840530252063793763544765584785046343147824165358053270804946888455905931835695069917854843271444616724739688315547139088308837860613470774869045359138294669240194095808553778415217425014778958806555507175143336428535596223088054517788561003151559960788811689937632824240106715615065556302459001463285753278302103998665809166060852118158589198961376473165158364258719231109423008737461728037022565911572336407308196308952195115784508378330775712478369486555082447219145956259565742339515290761921891885519182325889166580952375524029805418663500026624515678344397596321902114687564967320210442852836450774567124812698961355874547183604104480478272153018314191856969746142370670898978907484073843548780363066553513547254679357324442521275977573342962145813620066578347201654991268936493641953162571004581783829032108752903451330243007073924887266029988613610622614935546414689404111404218846396321545575812620662685791224812965768053402248430193746416695466152834290348546184225628300343742435292814651372036952863661341168035488545375449098782794067006202198239083002983404626991637716271748852653939700205103619157483791376006914067011484259688908390300819961875408162925869124138246597482583926561261482549031118480334146975896637065254617475207871051084279371765333775661087006512882226732471420422652055104280459261806520999157060820126475264363142231984294597118819106224394611881901310460213211790219348003851639693177115889433670608496788752177515605593695038396774725691767223305208698527015484331110640595088635372651793178277128700163727402624689323617593047233039884297509277730454516528747058923312404446332049156761539598455117915880796525802688975234079957361979073407911338269367706794713232377737100693659804371057870107185014128136971642111288912047438683374225464991344779546369315583650780341002993935086487091107328627982091254365292115230112808272941289512507788624836865780355326737419129838760588164359491984931220061211576969802791676037832079003535521069434867427176560765727530631768883911172061421772395758171715978266577246881914215353514231204160768342410586529790229796300362988407877217486005517245757534195398828892953833441008295377965310446136344434720788532873418615506016477598509221627180408936902137733144326297899449638734792138945684999838973930141906067979780317698232190121623729722468602961304297903349463578726127593027059331007100489099014489895509679613927360260997300671305833060291248886639748141162092565699732893420064444698208517758767350428708509953741109537989155013179205870761066878360378504296456673017065420566960354925411386899789433866005202031350329116040052984329791017290321465949306452138859695419409147487605103898772773949747367846827539730268544461377950317280779830324435129906517857207535178459024296538723115209842826302122609747587710841813226782904996115838368047560745407005943214243421133725978344792739724403644477859475521315771072794657238139242444608618620440814603083602483908205548067941926826827297676186789404481351966300063734547165837707131866738591122508878756757141247126217773281397368959684406982258374966162492431784296322919525104787667178232016441454934841312062917569314908297257302543157777179535295931361452917061294699317849840877020755502564647250777922603904045944522137161662003412586398424108258636867584167358926434981661125801794955532102205407159459255945521052757961720788372527974067633179316309467345548998153655190789006369920909623368678582844719810684667142336435673955608730474924307956806753860154588832881391457334220493512556910352106849309827895872908036396306582866710075651137186298294782972148819143955832864655508666728681614711787108511994867219709363764230306415338324898931137830420090756732799718087130273907624794020795325583914841998404447777887804714734354315129475703792544940683862303034358328704339402985983980180292697244139323135769593021663704090574921720556279371706961127612352940406662749725785386162043785091025973891889576459122762373248048454622167678086944865931870697700977102549487198745114511129682507546172465067535954779629306876692887146684702495217235626987425758154560771457760116882981888406332737200238466021241167170664367963391664025894658716462749447911704067950609800353839482131183321935466425991658202756347027257792131423296022521067016832977104407825030866391450330796546712877216131129411413968434611922198176416654474204448256161322694151389310317449253723694997587948902614928023121536779538734032653183680969447026180439699764359634429811927217402178342332177120561898224665508867233685783883160926019239482537128841225794078779308402273706525985006442178571669031062956587512192570214564436207449062297811067222443791909703846588367327808530972211015851804495036498278833466723094422480587846992910401049172690833530202309712866472480203325968823413332818397812798807981869484480464576396509337788878736809980261111858003043243410274184841368324571049227134436702445802964915481742230657992596180012081659616757775279661110639182830323394342237974714802121331281773391045102883602605819668969725138560111541268694686518911835081718395536631390693342889980669645483286208028830234462829842429843426932100694024860218861767446297845009401055470480769271422065763848221675541674591430803154846517020643102387685323715223874317299265604818664972170642885500253912172305940292457810707873265342252648180468820772385018492163749672116334002719773119357005674436266886856531183840413087385360319988646172362330636389817801384074483076263165851060644634406864550436951540619129851447027189363289348359509488269814206175968999021573647087116236392240341938075567432262874662487684889298191054536012845899026560020836447474671323278738210289353875568619840299937494975294377298603848414717057399733465537408321446173944494485003415200042145145626440517254719087195605687232252051114663923291239222153269978726998993339897907338979935594572362559710028177625354941538749844380776626652609897637291551315672637026076235508118482006722901896711825616242448688167032935008724787966959868136415742813593214356167092487935847220129255115676014630072079714251121353611967623557014292148838953808897764039653908657024231130863884112075153295036564880366243129836683469723000444522307532981642225967126600715656561478945980153027478230419898059743896183428741554887490186741219174210484074350082666748558368872750082389856396648753753727488729748923116343058600651804593808441923158008070937531839630578136825433370562899041289078209830695930070254664544363515683563339290539298876679999217960931342851764297045355155165944685084534240658988446499508199429878678044448415332301455999377105073189884396271389040648067708035200971008755618099468040735690384391998311154931541575545459611981848361821674931121283539749646012794804649519621830395521661797254284312422368948066871556349249985822755027472530349750568578009435843072798973324540640914251127511011628292613537483889848361464772019115802367331420166187522653054044454405929771167922231943968321209706236348450943846740121782290521412698093399137046171328340790882803327460183812637643296957524188256003431278395394860410609894207124733421521763166572588355525638964910323596777598958418221765677890403976940625941397450761158962557073923185979925084286896243309766447461583276352115883012475091799475865832290707240164028706320305634759986293141389943577542730786238716611676414131665214875689813546873316271225194271260700435939091747741388759433559808122486090027897626988270134631281437937876595202118456182393971012873545970858855504994142687388440991835054116557478811915542831716577080568376659855802850256830518923102388217253460857307111391231739586032260657791903754062742194866976071334748543301883722441310636824674525817343542573769181083918424718172473487343656320781803762019229625364196783529311347692118435246105817398311481670679678786900534550405159287193822966155787338444873534962157768777295023324927698659304128078240359952018041593658315025177515965717728080066009293260155171857571369808640641908675084343447366405495009467733780062857196028725420424150129948910134144473535656273221038621379722037820827242834403886831967816432178806871836756679474904894349622813205329788332770317800417752570687385694792581319486306637611038530699369102528936037853281715276851145750490860533477003534232669215279342683974944155690998693429986345092571280505171139084457328274826725422435165879221813575159716276988663526590648401560171092854136090419985891717729415184492788907870960310935616553156831953413473290730207745082730680323028004196607736460914340197180794640294522726237468486161399574847513558896031636193335882516301318367715137646693904379072174962226317382090054178416470792638273150798202275832421789703685154028858857507016075880138011252965995185713264343534570501165996892618988028226910839344552224682051235076714077033439691509708686724435218489766697329930850088890830260002664922413089742520936736790398337770394262384664151740168651566478079662424616375830566727985158747403612934346306019989900995563335789696583697338246277007614970512572562025311026642101897919826778656222762609976419649550502592343824752999824630738967753687069724610274281253355302369129490088449007093066497248585967613759586294347019778081824501631397391085130567713478928743046709122948651696251396510537706472327524615429853302453509328051763526107220635962191474263541777906774649318739712491976864520033351133933323836232864205713007816940203153825084219880421284701000963636399796642206270157904379299058343351237361897457744202109587064853677937309167007219915464014642187113265526551268542391505255275980816587525085622843947252707244353662057208580198075196040699650906582299797607859559410419628604395570432027336953631530442397929511896899273581795145563085225141556213247487866505765151732346108500323042239225912001826152082582142521322679200139807946266483292761656212791235981468273621932374707883105760347922327647505372432368864120341359145301114607542485789849528752930244777077908006434229857661349569647122221159132667646570787227809035965559211937399583716848803553915472185016473762641041178550657255627261198335816956775386733414578587006167255394150893632545677635890308155918118094317202563060787121548871909932619850797613542261266478380810861208752180809070532196112592443270945498733746314227594710112569667705995626167455579324159847822727674849741218976194109011611578848954527052233335663444028587108601097768776147714478995603207173674588492610434272652615820421611471942402651833094968014048102721185295877177973549576954245977078796282262897857466911480740425846240911484806708333737204185985002909425150727099746963351857375270059268267686589642894142115669870494848362623945397450267580159004633787971027844723099257822723583430856452832820370816646450394218114857808658353861675478618632501488025120579615376598642344448327189480074091196349526380642268435905013879384225684739147802961642629915907643761414697453183701503652455641490114596149914943231878501825728546429551835144891574437720772865657387697570813833833451597525945524142180172624724100878322153784931010801517816616826619876711810484457829713269715231258779726560239938697958569363171646766714308026305488786831423194375825858294354440299061293386422684355746585757808622547261109724895044168688927247305328796594669447604380389156747584425063460055328984048117704890269328813934669388341986284102120078060695838354209419652931761122621360196814820605477920412404276561528957285423340772788486999915938029117712191802659447367777757687918534780114589097555313926081845800239573549602840482537911544510653159164968628905702739958787038658709027480385869174946078278296848882329069067354126928876739393111971652136524087556302926404972710914363716748984567010656991907713667035931683030728393986273431431629290023725660271662102987998982993610457081646068697600485354740340551115549846138187342440937545018851805890064470549137081989290056462907275704862003057036751649728332843763963807490460824674859737702568783626887650493819721072069554727736138263280908496102882910168636980691442821844893766524319583158936722427805078282149564331145544294634361417826228138899240943135783160839620566639860576159767870430791676412878521613660112593398960974716106545745706866663474485666642288813418072855615201451457632986377378756103023873179087104683594711624940555378951765575363639623336197616872374268967291596931828905835958217985503085499368547967531220755847189851669903710451778279685114748621564506000314497148951911598326734510074618309417743902040781113154062282103396945844331220147067105354488210770769903819506781542802494492356824285598897321115390689982960037589538766117862154175622350079903409808684657388128578988156364733099061519729000933183108388544666047979279428312143073688880743705319831300052530473833787427184814342322846098561521870780126800750903959513500325359868172920343377098632247511471865382193355075445293210049971153196778314472013491388217932188627155735985235968777669344989332909011577651569779315403923754209982460519770089047787674214820975219619937540523608312427920455210510740515292520705978946777166264371006684155152110352319279662006981382590416479089906386236935770860862999270889728504122473703364037658045845027441060975014801997448109819135154215662503327856206775859557426157319503946520477378194318222254309146673022636963292428054818829845918044665662959668673233834099190577608840542884580037932020278375428310032412617042900240224152677435590186905981029194555110917445386307690201200137397229233963766297636930034586303903542452590541337070885499875990722841480492619284913346242912957512990419134866787830635987785094495487315564060957766977772627324143037678999653941845231921706392964271049534470167179413702365252675020006081032387350335230101326412157025079797645089661255807029870528871857691105951308363390039608651395552715167666996662587558590190641162535240960516732125478142515529304410664642243970299125220746468689959561184995753137264487428749981466070082252427411658935917781238257779402039897483899750343754366775026515661787065658846439212702297977415044866888098151959851882891038725226443712005969973135520412751798223583289945250870072074055388918269217831753578867796813413875360844879202087674089726881993455250478496332147576221943010622247165243711902862272952478377096337032714268879168172098437437737112438967000271600381989558307301297096829532733549708997190913091410949671747621104664716905393183925150873414035214342178427300133641568392034200859227404230284321445184480970132152042221488300614560556459389408188832787613997807971358585489334075429066691119231740307684528827394197920638548331492973270996590158277591146747259883687609421509606650413145936385444531783383283828443396739863599928022866283269471206847082870884724031929059439317778398136102983188566628919403477877843113800166144010660911499138953765272887739809516981289297453417670087336661948173951827076501170929280560592308426407556864307935893750656785094389835166839437961630717911800514982705961850194831313082850195417128620644264832521623892367608766818180801477849526496740473741097516608601268410303451780858811996910601306333121231309711311701464954565930499961622190586438072758825551261692616762919312205080455134489365245264885983077390466564024025413362254496630285835158097276199380856376491233572743547705660217062751821469344237764719526888209845886425534543869014574886635347460110315089483934271630379451710392153993593897182390931355894239924860500667490147343062088184378940183819861353539849813375782771449009641504171470884254295113666230974987698399562103063417222204131428827111964202778984154116494791037513637241211856643588313457130205888255564657032137632091420759178484464650838138383895821039719762396494076858563325437032213477390761200783084293124880194229991182084366763940397877446809964362791156290199081064393481475035956274793995168409631645586310331935969721900621600145197355793573797908063973765344103069554211686400391745749398666177903775249880150433058730578536748400250388765611053805095151352950973319066443811025543437723809201509904035765615068915680675688121535889076706997221773633855927565487591004646030950453666571308896836612385435189863240824228927944943154310236654221515567866082604011648437057729783295338298149989154839008046355865348386552715376098590762946480917495628785560859806495005302135991186949726239648650318744752218475850844195841155951494554323209403747109039662279755323415027323608956328193524381706851557181682015185143788469183169875480155816757216315613726633581419270446725696611059716980120791942296768933308781717506154607427666585976293920352316180565409377588714790244916718845180199929247642395705208818172006255086530127096808738048179187718990952403518057881496041343071986704977119434293474008360518154636559488021665209782418463454558725152105057583739335930485379505873502963425211795702398630308485924127685921845583601557707062273523910087597758339541529329359944161695454990685655200559576415313379670880480262708050484502375594283817853213063980272090009172543346108918458844978340072637826551189797540406275813954732984234421652406685702223115843714829037395364650332710918153555923601729850271930762997818446544998280538116149998471867481313852019812006338938409129203487905729456111511184351300731074249373077249309856317977833296509718709596332259984837510347579755254967007932627405148350405376299812982925342276421304142968559922229102284348847276315123020829808160112560413864343954021306008177420852994601208873236635698287845328510671577650559211701661737514307134935104114250526171936115464211923967453939454727257944504854123880722111905124751638819204610572477857039626917772703293227196452661438907999563223611682167866567180804984251720836994039791104537972277905846664381109940227588828694032796206784459027663395809629441623421514874232931048093850210689395106703794803110482527172806857991594087709462467236366199090439457306916924745569948954013051904645798084290724882166533202876087852165167355724369702784645607405090498630122705850519389595663944210466029893266529374309550209390520867570263347014400299900118521875309300847595109741202699075426266334124950500751756493665505047416472767702810847415774069050637127833524425021657951746637088277086609754143143325064090798935557251488240941183753783877781610328720073529673529411040306054335802226829507497315583350190827868420978107580320065341873935318336481811503928139653294979597530719636209609345697237308952416670931477061548182905490084269678727521933347927477987840332450071330361827329097087789622629710451963791179482539682427528711863832273688832466303920856992866941470612067599507000914787686725006447075300381048595131597254465269868179342176999700956684134023739179263668199122553456060540537064874727997056887043807751090372799823262014601182512920509880594674100908240157677657848117158315374415817498484111247226656008805529530094556217709750691470598615954915554590001428894536650152629105997864490899989689854817406768582866158361074758017964752545307140898065327863038355475907052882814726094398078130208997864918999747389548480555290768290701940180768173129252899393863923779532182502875261757496770473152637311123537962804580038110806932958866236446717331621019563821417424071112930707319969474578426881167048380760971496193637247923725491684669044484268962655416480373064413670321419669803592008712894507543343650394724173502145544240657894048094126466605052097131472034035497443492641978948869556402383237720286086537368690504033502989062974867440744733312801787529026466060297925344456928738526022123198363169983558195874221029493717437253025208529527213831540217229300130394603545681301440865037779971952793213729040968177850665375328672286278667650218006009910349359136147767348947331285585749242679923765190860122387483960607857063018847055386138311600180431426847228641375813163031345705772312429239525106538985385644111821498591575289167743299364733014180926955992880150441695067643557181706454331251494416718763016951257577729724167097063115799255404840371123913137703519983998085029515614844244621950613567110606259481852011345871573034905765661745974742865505135993745951098873673112803006336041605799299931361009626244762270904963423203620690536765095498586753724739533637287577539307002660270829250004439637567477856006786181231005302276161228125297443972203512601295296596617829825109210964054380417469168698040504751372049298367757482608313378839148984655900970023370810215510985988461207094015717639242756503861861466550820792607760907937410469033091068714833079476026735331803983982529298108041988158096023175934892307712375150520286494214799771151549129808466107895792924125625472406772518178509866906071104703672379729557464136872487351214514933299013015866878757916114537138241417373044090547058671674616075019069984410907573346878146409277595103131000905459080858850962944488132737661010728106489269222825251434220520148474874563047739817689573858198927808869771974319076845897127309417466784285471873042844225563777176563232580513387538856895165425714736673360543562573143282173395569417041219600273326577964389012825867885841098000399117684203986155796929955907378313865363172548085104349570990579534304994583591752348168394807184879384564795833012200593838029275687439360836375032510993343717159246751190891032790950124658813486319800363683823201542957157200727525539485283356043329392477560800916902208743618342933648179389430081802499935148145281073474126226237283143327199226056971207812421834979016478279153554642989764710858766531533214612563427794657161109169127160054455132224441800029219919299062232182214697015059630121360118346641413561098106862920838456485922287981297222860264590055431007673074193843842091637451889882158421279106539968897799641739581373476952129100022258380944362519240692435660189549477220364921494840768150709828825519088786960653238575510073120919286844696187945798588710484361509808949516002046894848807357592703275317434886635909639178782726221507870987089042447271906196151841699651072853934530918206540143127465171069477321362677283612078379957191474501468592913710644943350932592371259794921466472890976257250630256035171984499053793328468446439867466902753277506920316269076333264297473369021837867415696149657758388883210469443320408873948264980379914436920362264798529743759363713414395016873248154030830303099523173624683627256324553130299886635381880934645038238058245983051108987777584626399949008917576678971148221564721931065945471170271961371595883340605518943813932567487527813636890129358585027535188127840943437098486487256790749690940636560213247624440898773318983379793922835502889795690370352651940447822473146112817837467276632486936875929400448268331388894916618865383249119836930725471470137360000259763243701128826635607816345265509460843326520939269789163970313110345889528885309406057491576886027505885828748662170512414969005858338808290988579231993646611281494429243562344417091454617493867310138904367799545526445956337457365892729539813822674590981722224149676706341226319108015545009794062523267989764005786613342014939874725932118583946958532126350729974381169991461957307346193115166086696436435155512740260155945539614837498635710259433828718268524571585586206405081031697499691022439608535076584948952717117085076292552659324046092891123226816058098174723563099686124206609091320622813162295687539748000735246273711963959542773060987532706736935972963456974860701979968256641260961192950574776852774222990258718379184535625249371516401987181837928647901434228184335128188805616019836427451135846721730264258339254647831729239879975194199794944759446996323855242498258460383108319436712461602806581544612605089508838389831564284865458187970819356713122006114794470571774039787667018128075157857591354410982147001021118908228103766801185838015541080007266222673018880682255368963486157303113277073230940653786749718360246935336573165196696312053888204662262840467622208540135273832254993169128995483183658093718623304748271234959723656012366812781141454399595125862838701375794342820594352986495175751590878848664883335294780815087201057762375160269474229205718069213565557849973309675413613948368757291333429608719277136333753317481566995628040479929596986817734215971510116214528644091193958210273014821553129985256682238764575918378740924597317719863123002134641542063123202894965725027973828195039925975576108917650017471342501051692254193262756926921439438958468369735863132000306713061761462436126021811023501768963633901804373950454013613037556964988608678649132929408694979493992694676891749035260578409131566368625854337979791355860537785042627620102089006471233803997246533128518862618586028018788994022228501565706994155412565602469044554657866212823936796141954020142778115816381611840726670125059407827040873704674917968847850235261064623659478237756098577964675370503369217017486207780151459726087715489729892356292852841476797496305522723777267125080405154311343560951004343391782523084676332977069712387735856434945343375848895676505721974345039359171529273096585640504661227904027548542809311240876860154410172182563664290932285434452357417386500952914950398311630018316100253269468147223203352383084241060113725433657155506759266089951878054112185051584267800699023349154429231573611127497960917443770691603294005339731334650308303301563436431594340515471869255974887375114650321817822591274998511792295814041965540050341178826543445326564761788366455815411796097645891150940468103769454276215633365545860656747272033182060620044988997321872698235613941505752508507283098077132972184466501041981316229223512069766004987485000256162155945674381149825489145828352454355376038955239246463619269572235580644858034374275109034647843964702691304902932719146755098353841505745066442921255081030300134831432932332489373761061652135999634023751774184689016835410480004508977575491562375554933392806783436519134175684527991114602732937444364192765704760216620045300139447794379640549684949246876010022101168569859621725184055682475926033297001886101420792292105568492604107835335082588509568297518829103349990511417026503900195645813839455117416057174230922924750767860958295289979812466933547449406664408577406787900714208264342997106842994493799041699197580278069346741180406508137347120947157451433066034525577221683492067469696960630424485234601263421823909844258449566022768710267172748874926447355026558427364554950747447719538339577009591383809885773712821876878628787606007134254371053161670707732176816363738332293355664234260451016864628976233567944193653258996213591820320169002385034826440259425010641731924344873080057145551596152545261749200124031439420051057158442175376692459280075406636735948450197296874520121363341945055662442717255361119998472397476287746416431993709745852675637604998208993245950735522218323067680396995475465730283603122168506016030601098199957190363516917242682009780953875511672391372737508635057005317302264427369014471880695937478648790855306824044991828262493488428514588063113645667693266178162978807189832858585556056011421776461921989267331716978223612298032453965150387870715907902175769899615908902588871607393956390677382611536426668522600991619678943542453872021068246097673130756054839127051062410029547013296651014901377560626107714277350438750813973459213935063909117678536983539619321149540628594859832592845736779539857836929675484773153787418193344345342613807234938176305296087315620616621154705476505151837554128115657824052823545863612188075190390023485129725651058545376706877707210616891400095317804809641471268733859406973161280907445148352713091475089203479840685158783757562427456644719113189949247840922620063261111994446876107499158750028696176540595830962427372360808560077984671830384211940195654468017238270978447398854557973307375877727451631590945869032605221160674956517527092852431543779686907640733240166618353801430985584368116086284159765894998245340678417257357888178477514328942731614546956425252067134497292073824366109899140130189303255461857385233476322086469503632627619143375203594518620321186520005955058508593981363507919679889587011412668447436677587763100381309473816166118571486009638861861035922689965826823386412225217110269872804145564962989862632269168405931525764506937783926776258122996723545098649524172448685873419232767050672261828907764792698695017832537245726021185616869178388459106942301426348563080383395141924369855703961613959848202415184468032959207396426831315361534236626802970873210317717381747726888678964843300679886119618233101388944014117160528374926965761991193396222409206883089219622851349777613732321339059898978494273856809359210682542874316620996370423849048447270025565595689281503998755880362471590428528267078670646303944305194761405028955373268988837373444294692457671614941645827434281027198822742721134463068677540396107816004493634527136536630852820579351596697373319595242108158557231083241533567012258910546820476735573939735632212654260698650699891091158878104908141542298095846397996739329004000825383558568226273885200798409210020272841266519214728444257882760190488321089265250887235324779937530623213451110994197115804997834189830087722396351376602373939052951967509465128518122615265596533605623237310024330023794011634533120468789586762536854673501183485103663942440789154239618057842321345474329410713366587214449094010422597318322006693622823954875183417441460489112640115515872693855091354138352831386846553521707614842806663486296495436595507125326027230193746349422306067102936451396263597026498563989643907105096767261665106394934208054617787770658555551995406539418450572660046170038683385231805342149151096879386151523176601595597194842370185167315827345972981029541543713384314864014649447461423407109895884694874191514350296777218272819606834713069644838108168578371221786221355053529971406660312000072467436618726401188036414856823832858069033951522763787742767141767975427629690096253144591545414498878040291548538511274042638678847539617054679796382451936564932686899090887946993440000688572716640990559261956771703348223687515269916758812626409822131952408809212585520585260235393728399541662654288216604560496258715543371276291581235250013537126241711144170814601734798289976161846866765953131567067978938858719989820328713410309371544034934043668943639833563576638210377556944026843779028832715482276227084709888683095854568360740185650514671574280358486418038649735311971881935753892425876086258349881783742394657924015816731414755855360910594830801788774061941221349407820586948912892083751733563796746307548435000058450723907399424165474763332756625119065963455510926229877981748609680076696048175764252450726627311381118179402063597382297077232531700512898499392497831605101340892800731138263234179710062008927382987438377533916380912110202550940502509755295619444922297135329667842898288901120976690205394689365951449235558448428603415338042603409203818138953935297968873094011980150168753468663353493807813135623809583488092603326112810760722345804542259549954574899832583006995281570831687888166132526890933743221836751376018593955301840130366189365143218245475821979570016063055541395314943487857661098602299772923390319012794056286906184803505330157013850495386056848379316451512997631086644249344646339302086889038103499929199815539501926738208436793631556085919859357156087445629260175940364441432760149711167743501871644761092368890369402199391400774658326757145506682661124735874787262696769434096993356388126251962821581143063409885224079127748436331825536028765484072533190970413415030322650136793796085298785297315328315450837893398130110446149724489106245997540240535818641530696973202458960642325032882471841163083737130522921562910361129523216749313635781762686634172614566580265669342713546007926234266853119077848645518456886846185445434126838693929320685438528385470192500914932466494654131901329023458249167907913104309484989527278030628259723228567757867278965343238719496694086302047857086877508220506841542377128293097548834930368223933117242942115195217837546286569816738439257128335930281070327892272961161713823545072416438102123633898358367173766580373529041204099886959450425386033492393934055731945914514941428023934465224289445343860205453015831672756790553868513727893833427098039915644998196252611880503512979021848268019615408885153804055067499705474442169545424011952227534402807813584209061813974864341354872472533702413216976693653918888305887374997930786424650214753433165213746112013570061187604196258733757081897867216904967233698002167852222402352186425209688911836222764688837536030876409601942477302804275355804349959633121377701911652107179537896491911169448493033259222561687483625532538500342375714685874638739744693116562451097252600506688803299004504994504272738840464763028839988241612567514131220969492166976328288478842345940882367343747702474939411736169018419895996996730526650019250888786221066905032561842477951287719128267580285939502039856057691450561520981127291893327179349435311138374669628555262948119956402095751688681617722206354546832403464769312641917933424609726779978857098543569837616599996845571694103248481755653939622783800162724982406876717920413925542656064756992721185012963654873279773900724908283455012244046818093637749022277698955584121422725985273912145138315588598330887118926390181949024469703806930687632554977567935006426814189559425989442576202437854595309955594651440776445540681737610423220069816650816447619960285123367507610220758516387703507073841042859970791747076090295243505076778343625326421409135062119802474277618061033713991091070622550996325855960084044530897288684982829074664132654856860279349516545353986322717386266916428284831780829983151921399795306722663566327978653539784816762165212695577648027334620492132887114776430547059169122104786062974206451998338440551852616370879736071857977292907376450974561658676723154735206753497237146035204496684756993671916768869144730895277521038877106906745735461419717229001584070916354329342199660498027045358096777592639604743502051524422781620903875955626818079815292845234144434015490615926253866180415280314013456624327035866257257502286861877692725570937795639952420826609205054385749250724619546703902295355923715606783629984280700376045483258370023350400038755208492008464256189388556838985439414818168562213982003638921944144539511756785766315460451131293550126512523296761279359533402071475227474833060863809281130437230063966492881818045440034149423756761662655305533733402699233877646294764822606780470703993389601562723534290694930146500271636796596167714960317246520444019316709242450638205741724337307087262711850766467413640004085861285462381349846187391032507896961210411043016733344890664643419390339931340747173543580760024471189696617838979119814826432030404307117245400680599981621564837240732626981027514790735455173603663759992389248360825535183711907434008865206048864402445576572298498693048372569882031223021215523341934710931347789161653401584665712937178815425511070653532352113207405377042863255787853980071091982536161664085861920193421057263900851705075197025605799295254813572497701815255047540280021447648141080329262828840713018356510269728260978433689885893737841417436296436107797704404281511457469333219363636596783276772848643577712893072506515990882930884611761494786956870802934601493582603449566152958012185563921747043913506260633815072995691580129337859318545677300589270313995697492619242008404018631348541745979470867449866456297602063322856249598455788628341445549268429663901586745727535078736576144530331737097808899079464211026775941664185301747353740267984137144274908724165779238164853623385171610542877589782418403445951805549446808514718101014658829554799643942507224843671030450622773640968553971685928854260566564014380700329982987261194957441360360947694929024260218269278892305462237459322692828965021310139829493933533246430948177564344817168494183750524117219475893411788190708682934145654403427853565223998714803088134611110923212385373346487999276833338080541513280245625573728771746342640968353026774745895390415712868285774841666784724379868345586902999414993783434239332823487777174399986966958880609875224560614216967117055374896665429990221279540951672570181024154217415896477109054591088894782672338668960518267614501118855836593453753425925746719566195016191212786267818519938653887864167998918584257808294920012301827202042405617074417223707336308573039591294957355098487168576774486270293518408648093099813717916132273922062776488452427120949573318960369245143896673262223860910599060560108120939983525525703663956701240962741300139394032945697020440106072985363543728920646820388561965921876957627655287573812829014694842257552476086723140959383920213776306395376867092193545987012433716026451344196246496359778970358055985785356550215177084833272791513082063193551221579174999026340621111903005113719842565395212997516669595494366937356497903128169937303656601465243735271302814604509678397462338728977140927313692539058766862995407238727561036178187710085078331509079412464402665326126184068797507518123041312689184461263315858811566932964882478548002060082025923197355665560301765527271294486853057957218499826844438025097068139232553173487669525382668968129794542017524643771982286567754245135141221467352646090706656472270131323336710731757800262635217504845691969515847864105389044749538686387196052903664475061879404480796602743790084090408529064387420950538282338459148351774931757362959825806006312645622952451618372438017619044788880517027544411186611299411321339358336028588404505138819167131805929264141991828650979629577250468989269375808355918297001927682328869422664642242610266021918897936958377425748933439933569830271290495927979122162926302298980402925180669045625671459989566565752826743579639788853166473081713393219593060791899604872060911527489431059113132056152993170760719183923113168254610582510207643807359453368948066136863221393657289241720131925184742934286750385125442002218374881922211850129764358838003562625082638538541902400433097786299323650797812342784377162398564191922801438469266001665813756681747385119494623815859904946286768235062316702813541647478175871246567546040252891404118992956850287473344065732515447718019118247669155621429664572251487322665112073828065076085955800388672102191914726824872680200186209834307338745052741532577696697672110946636413395334226765023397622068957235664202868937624720021161251811419528678936155524225160226186461385276912909658039290534173406686238129348119272199510454833821720499070947453409250570456082679952142017170734225082479486627533816160900488726653771332812837930972076680869242520109701318866751670960983794057401494126967879573934539375994742150821255548321381537270539276215458240338739262357909923585752581315203967634893967536067224965431692657857417203725718900569597090124829118085592638303033855017791765028253527591578684769029263875682063954157327973015806369661100364728808303957321943269088055124083404616817498055106315029149768843199310559969728820435761848460430383905563340382988650162439975695636933416997177487510836409814692547464617041192703139412590726961754471317631610599499743052975688342450312341197989801097767381914304117194201778500694162447117856244252765852330444445768749471211396946018783356300533586311848142309030747612693335236580875263286335012110587251549389496107267172638479322273462518503588442788530124315226565206297341839607960661914034843046249739850551002772777711319694540125351798910516964438857942450289061577756199291632433747253469299653733548771822531213345969791299077198100727793431746196784975763926254444582146483274604625681308725649885874497552381096454069819342653500132507790296876858431119511079815243765105304625921951515270970300340450747489685707864495327610102398557235082111110335313260878507597081387445735170367750092859933029385087969990113788962719183080501459957816111114427057792632422778803529264264484188874147264304888128398427685273066817266689430987301373855666465779412761014571775184138169878414800826054931413979515348523397516237884817080657859798528926178019805107646696128496809306835000972401466963380726743745793527136357364746076992170107313266484637287507811603527251031068920227647095212826735932530507610062603204001008639426372061994434364794667149213580310815284291930843432274739850340798437514766689750454896166834778104454275792789197168882685464554233820706268376647836123628707176146274559184910056966151211485769807841505549418979285519417970625294021815774412023874763701848833491120587043334128247066923013122409988917613962577506556473893810652972246723657637279439717158361070102170086603939257128810833062069762904919823560182286270569470079957806703283988287900833747751362929572662847167899120664885714535727460966304830384091451113997753712648101217986985328586959518786576886587131589516685810915760289306194881920230535883949757840592884589424162794581040900984399699817744261617092532846328473784113023640414140194168993884872358300469056586544433282562187038169373561129971090208667979266485831821182532999703556728261174199361152235669932064911080458828616265266094170386102392910203258600988494838464916773166700079899451169072161211770394546522462334390430810317349831849152908529169622247446547225934480152706597951327326837313650429672720172396857368810891866065551354020871737610727678209490478316363869132719147987727170161484721364354261214442330089613771820295439514057932414869933912244344806405392719581264466995810186942246301114020384470948723504354499391668412612922857800577881354293085358961974191445185985480256651534993197003666652994349352477459918155619473255037409273634713581273233586476835950771093750801248370486241935184381435049986603939741960237428273912612986886546217683768261419720517404497074558432984771685395442435212712917659587395568054672968024956380895235984846650600930507747119900732571288110635587926990528224185646502258730090811501314044110960175356667940177683486551766656170057623733487635956577509550613893510066697204555105268344165237429677640744071372550979413532222520308792702554167289748863436454324262726736510097494449021764664392577076092870778397754937472510478354320912828001388028016682311460172613170040606374012299607688472153601157146650734362198185161440379464119843798127987855606315409359375581253470227328448483508197037000009903593568782092448279576436407434993066288264222079609942037371123144247875000745454554134314330626763979453224940706725924282152257733188405408954494043850525419106230191264154357683916186063380770005146702282267695953784931858505855626820776512312315241658852511722190208476597779323025521647595247502573408668725922052016260073877847423684993757775737488024403199300234132951530078556458096520571026170465584996591147637832871149044781474195050697493455235257201772624382670583949662812807158708978373437018779149387036390271545778894596700146951670329272873148432384753334972449026934447103505728892502534845022342541810026592963886365541123672936084580204315688653067522049529897277379440612680655775121933513811536466637653288888233920985460701500065502866082954619820621104303264510511884783641414399081509496834310077479781444164640209917314978710834001550132236499267006116739813599530818339991352732974703265312814941089707134290816293992497758620627933920661958451011183145739256365220290068113843794591223046837361664144156015432691601112919760784645186050188203639675454420712451905981628372844860341741444841962696266381049330890548840878584183862463708865975403469884501837473444497866957076766374693988762652487473740280426509813415352994741535564860297815944284533336023800106942528065819148588737915508380484614467109364172855625168436672084220373813876773097818422234849791428371026866836288834395628369694997002549033770227817316974434967475783709019459586509589788125145890916834068911653120688624375539593265319770374726216510978366979049427035093295658666366917760980842317425580061772863075363039878887094632509881061422281716808574660115935002212587668548138840380513940719446826872951992522781906483299159697144235709098149883697323354799006835447437257342736530766480404383300552178894419915164196342310846223607497585243849800641597653898492093322846778228650316788871996163813181006062439768274886760475112406759098072909215387734875318960160380751542428943766864319110186203492711321030724451416941673983112052242348181638743252531638373738487917675602564312342213720176995803911772959239327781239477135440784472819102048356343683530494215870966307598414756549108977944105420065154990002162537557356375330170264446973982138852043028045230232626274083525191354812680218443920660741279553997591379263370002333772446330541633172581370038961689576843515540027744565614207134018137971513055980538247780418342281191845008219137033270660163584463415191887891003738901937815861561217549318391129703257945550441155302926726766721680030250980407390786179705553029768219062470470790099024907747266533023606608657107390012742968380160003844125356797312654356606519997497807013176819192466582938015487048268117087044496631623338219431986564495731710466712787040365159027548865959645537842651399494060511507837604490739569493110745996136818704682322692992969138496940186702361757981273991647724388019826530198717316713093916384918146024797543234560372874741216111480984290857806294914590639061549532668496985760464014355936527677589825858534366253378853521910786718971081208591652568578950631729333607347840353152501190617953958500741952165743075032812952756634015861678350667552671246542546250988219529873468545648646790408588730195177144446434019194023795166862446595112104081939151887458876645507201634269840093624177483606071652347962791180245747904951858283929669013641515476114054270200074412012911125082694330136562209302184932197400506528881685204528305075327606722379673844363882914717207586234715409850896733835518268697764013040650041135469317889257908699628034153196645572675654568425132401882041078136365029872729000893724888753267094298934376551325775022081591189865534372390436868809889543582064167213588131636549355612307369110887474899083968479107203840773605266358346974960522896417969001672327817013809411506718121447378883739238717147327211571675532084484777107182082286328211681242922225611403884460298471664167547018787746241553716062406378270554043242409511107990859510277500252118000224176842896341660164284760561835408961669716752199813357724675992144545304576904441493038833561533315422912124087013097609581174014566917251062809911557160863812258672036707384706943706091451726629900998094787778202889856356099601861777908254172133045465492178945573512672037025253701843106260107514501149517925976079201335984354125084661951602777088825488142885805464156300748688019910181656670439119770183157912810161103322464589476362820703657359696766867853859783312220685526947714756266809647405432378562382636588552177510786206951144923280780703645126512380027850431204812671777122667704718081260416355794746350293150513826122885245536720901927017751969019182496738969244316268252319494953829328968403642343670315605123225620823641128953289064237089582525378067417606300859665022840497996855353793661132639970872514395987995085138835613045596809125756523213005842389233344553808843081076031991773316093726625172231243428998537684545639586892902851571097337969770867206188428290422392457803062343809300760968994077461383760874467204938187519532437460307725009948702703882811682819000712713952846220479725745997147385960616707781556315810850348434517735043558925557736647048305636275149737622869376870905254433593604539746920232637101333002642529697001665976981433515563840628858750354543070048978627230511490947261484477803476974583238127516657099827711914409038225040900587915384358511911896473476335787682947849681699651194218531487873454473455663045138960071226601782577470218311295491837780043729982196909185809345083679285017030386192164261873263846715230380667291876206329833605055941796844458890167311895250212928457224217871340367901176619733606219168687510723702832689983079881678131816060163706441293378819018401643702258030054528633239173933474292276563374900641253871773946269810840035747624692788080968138699651646010093659224047697243156534025853222884621843841873493211283470880527422406289350017200154131566709487268470158515619502133559837900380944950125612919062451075682190117461003331450492482260868814474321607238380594553922586304204329133161353485470100493825014709575757808835665519231805860534817262706239632224399141794913833899510388680244396320669406799428917214031105008955462759023887783658851838868658078329023375043576178810283349754746701724236905679367107996460925032686950591285931784790091799923766793025222830920114718082436496450086905324214584265041045391793039811732230482806891061871072391803018891808628338045915942572069508620238965166537257180935094473961844774380669102750522696985613974770561307626623929489084626901757931842902900005750231449996997876163056835203850548512221995502622349439992181296507903712195675716684483974596136015629735465168746899705893135388286868965405153434850827348051671788912715592959015518748661875997404121785702979153586641050726316345078684246729833662663391396884599996088855007386612168112190469387020524636554699374288768279936037030139136092292731622295492448531280181685158427040466136546291204098015534774761867247604206618143814134725962950479845092065402114523068565392379800443713935792655675303603806894776247209892790629540807739030830304601986633185932295424032738152702025899902213659744252108839364128956845551058404244769606730729780381230365602556004699345319600007371796807897952925757055356027232959640897813291218240729745883669141315848065793925029286464273212676093230094249070472619850981491381682202491452388587388272729479373961019044540012929162373662400612685027131664031364061249669087478998999052134962591849327402014901234786103090890518872754314338481529027528649730630369677341821244178367356035110832450857109761666625945221337874782794023090955150970954408338414245235193326178338517137572655338834544961907041932326338321956995901270771785214662919621012924000924992648152740709948865568510522819287746063124172886991820424705717750077328685656422914643590931715058139130843876068716584348492178891332541329878146216455439555990295372707724199591630090001045127023999719433276162946799942010261277407192519675563375123409506387646069631416859591885995199745584029656906678984699346022743009390220560634459670507461778522986035465791453455656393451829157370807566535605357327011211429999561199766504065610204895749087867532386947194245776591165665062260582715113988424797599900534809775649006027698628446354903569266715880723758569994640749665251535841888465765657726643345984313915131483309290959780097700454606281766517585656600449504372935103639712311194146524312378574465640133844267561246103315059604756201760596715098460043325891913091774158231746230833722278381349512411804286672232672982678960686532751068278793303698699612099922601755790926202239211600155396159334273892476855503710681015835416323773422720609730317558330123041575261879936546585598007826852171521360528057940560279665464372783817594929002895126859839634640480151864433655654488548389413374561447581673878166057348373482156934731518785008935011966915810769518511785845177290248312657890148050015095927680989192046191365940572548496510369733964058442380428041756334202034142705536005676526882825876944627857654681482380196694881693768280686357570825005967606662339954958844759071613348590538951516464892201193816021772623897730383006459959022460007969533671996562207358880665456969096283603691672733537311670268289148229761405863379088785791186560708040514003136129533460888602043561104453264243038450069488163967978389961338975942213637655342814124572088172275510683955487189546578797141933052232243494260031011300442154735373928570330293675719853205640175081076911980652574358504279610319197889789520726379223665656079752675853466607135432209943246453272508685401233817273430950860425399630841912986893931427940320243524699477820653551974854200573480657895442361699918635449488313926493539554013872114105636521349443036423529719575980745217144579709584059889872597183207987758436946911081117160561845796931490976406008975642421465544233003432262760944320476521255164464341673250205229185881928853610349522118915340404342316904438507610947971158299406917693068653654935228678715140162007375638396570921210227100656511184169449850108932997088554391150689134203154236828267978249127546560896380139597128568682968508997816816066503108960368287229887899788135699119974314649904752357902334630760706220615611971426792107684567227707916406413324811704934255084218260956738850414802088724866315588653253519230889146293507708591936183104044445171859416533596518120618587009336484277029211630930160378918052364812417338764745442208924486473684265775527853729534486250349469955920856240744948231317996374058675627438808739608110139124668209042180729955255354981029739105402425428545977745773372544437512392745659750712578192906673821249864120493616341019059548151622720546693398536882194831798604871982303840695426719409071645940291746009449904222948525538870534770118869785583987798830156579947991151693278054933412763110817109809548564756105876739455186162059811971062378717945162538285981355596032739329561105833339283603335577929522531560795147229980003069854137632597616273793615428440383135953191895467792597447700247147882217589321076578564480637068209705897752794368108904414929967802517108668976725314653535731538713735429953270882477906289808908292617895862676323991492993188384746929690970867006050199492146990501970299131599888152601484940696106953543711298604993910774755293705398052531939722423231507493041831355236679197775946070764411373721967527575273368803461727785631618314408876127139942470052721471924148941985449541704015210525110730357537510391816828845602309895908948212917366528655505122814405552791165163844776677186140260087240570969681539497115140106318684601365260789796778894680338367790654652528776747398612947872727427500011483449425773468864917483179114733183977614015437042551363977264915453065264724414286561598019629819940030625154164390011002114217502594516899380667951297856827366189039007415228473124297616498449587700494768712350765012450279608892555562733457041191170350425695611439309851148707671110104089093401590171546871165048515941271890626170834312118528219675791351652760239878971898338517099114114316355535982954242580718152643487494263221792123544870335002069927661387865082458422148621040915459295584021753216145865001903162774033678924541127895782768575087808028293476086079758583557255132240791472185740094348916189948126453915721308985081368685250328647192172692530007428926879442506073947719576620160785254510195307597583361098917431316920772472809896285573285814779160980072523908997657512207143111519021489519894444632940826689256388519038103975317149653476211347182192374667516368665305592606560354621030323425106700826856507881020946239607477584779185882373240835090743352847899965056207757604829743146565526324736230813543275222662505821101364504210785195185598400993546966379581084550839054058081298019363986105050841128064357797868756660604277463731499534607923490910898903824240268822339718491128287405547680057455295264110784460598708009089652817184676589271843711458861866431995631407771796320952360207803337922243856372573635757694995382892042602335158663437210916578079162348314514988152997632406607024192631904989597484752532754310424381784837589579999226218807922775399831750987245680341018526012978124211429546513090496654387685176572914751023488849957517300813753666197836665567987518016812480666799995351560475189109205379462165928563248109954090454575897568029996515812492460272021025640403376657216501533239691167994055483465957491816844863725505844422427622109244579883031633275547193919031401252682016566426619716986785021433301411017795373628736518378725646809787996852527857269819918855514633217970419449711960653898651281402417639830715865303483887867854692464578350724381038241991575224154521653334934426885710590262094302821827011207124951052560063813859047793064599693412278047060404852765412732320589945107949525883747584384800672703191265606947618539939185043289548036344134354063421099937958930156475263511701670139822011427966203974803330849123724008952100485834591416874546351612203891549471041374087988958936334587373385744222468667691997089421576013682931513881864414376548426141225214529731896392757900649776021942998432166677375450673921106301282598409549165909626579233258129660686020361369395154105780636793034808739278276782632615608331079895545028509907512393469206063403155911305962151235942951714445860747161941039883502379039520743313839960887980244684164060018430882934332490235243795424384126115190505554370630493477016447666654848460660127241630280623520191505644055634903624690571399112335836597326841128163119039549041594201610313098876863743592697749042513891210668852789510994073245688292866305604087549030415060092631614898473442710864702662285819369398823486920849227656760135330273211712244347706258782855088758855119911919017552650902037557545280392264474923560684699958187805913331570099041807273767393305134590266991953478832945848120545177851794740524661560161733776110495373475318650462244084642497785498470849537128059746788976500666251644032410979442161575504814234859065688906918012846872030039425140963263014556052630453026496094513403938708821530724255623182633566562565446672574202723580804881525592480747292290635669114275983649522815425824558751379327328515473645116740041451369727662631553184525025554030239463872473008646356564924704196346178496008243299312604965974731381586515825952760271752711669805071730404764590062847923663929008713543967090921039792637570518335264605662974527329554248096662031590156870545947082908703681421963154659864865297074897392106261452131871775809081431742482272278367553531372702965514851435399406086765910496081730980900808214772888456195145014711292980357661927132337783659062718598065059887449655281716884630168496644599219528631051696146024978480835330624107322276146750039942260247834188106066495638064821911350513218130746744764274765316714423016032433879216615861725530376895639183944834100805601125002591937462100408627129760601369294332121281140948965567665783203761873752930843233101004080755728061893209755141607089813903715502161834366936792188527448017141519341478101999144570808238340280874974772153466097221993582839572255254282303101281624006300306833089152173534192232663223366150037105849233867920325025325015945699757920050036223239774042503902060973759566084268168015261033372678140149778149775139828124539025793215003261037392227597203019998855626402163286186510347243517610775323151839847073672303250626429092309756080249464745976957868210609332717733128263388323006513888041780388391040274891496658226769173886588102471786098572873802469754315941307958594308224879722418649871901844378372535519688507470397567698877315131525896696792952392750558802202542361378327717544039224834509245930765072859898287255060441840651312540026538632411984723670275418716524169162527697965726553698292214089323772748287856276612315751478870330050205858538699723356526645644661226389556695077626709816356120397405466803859509928447385695628467950883003508710289203801829298838437697841303613612982498822813258279128258434648405664747514618070170119942078795076325234541084722606813600962499176385271458844057900065508430768897340488221248181352904396808825832104274114976276712681970324779858417820955587576951397859355643778156750269735005307198282230205653600039172258316452395013172163323448372146439809420022921885069473853022001744717510792619753129577370651809420228419653846381363484416890551339775505171006685049942537239484750262831413916566349850316253932798310013266299738898143450947386002126908762632403132275472842786468802884863795209651455893757699139102492073931273909740524395564078834069539757885391456125317806339665772070656475601431045524707671753441127237110834600489122992790669845424251037580213526949400064997932748367288251190002269051820937852400277183658354480204579778300709877083337304008413449995584450548046823491209944939997838249851743477928178347669502880045318452571729060269211378839964667103479378882477493054259123587117082339528978040653980643498795248613732112955303945810613108335197084860796697436941930109578541775268974327272346308267934005344757602295149513241775288140876113162933826726590532223957682631553220293620323601090258659608237503477247361113213832242360128504673073802327172521210134799679190190955375518690653612151000198482274591053360403851623801587254250639526179270267063373180541767206576608340108666183459530314220599259869287952176520008355048200373049967963832504785780354042529633312871184857456051780094187824393761842673649175227003284130073520812205421572788518230523057162982540022047223391758562156312105394600803413415390559267297517870416115232119011667606543606173496620953726440911635625793361893207367061472550491416636084970278630033689602931174170539441500947886474202561626802891416616977982583634864921412812940309099581425251709982479683709275828577004002500132137652147092409682296708510155054308402109517729627607934452598120308173941131800370219644140827921789597798415970520528833975508776978166160444615690953590558098365996533537647571225677206755636135135611913719067985900826769240510111023207149940808911811273550823301389802744994226371704107461081920478864130580246478489471797793697813636105941974197168270760879502041820672192837221575955641670715892452987436103250276051275151508970910354838384323891464919387940004406691976300976254139193939279006412416028853236986965264918093571745915287740734106131622870579595878089162188298792016087145273335236641976884845677608259237883056797335026842370985065501496026243451766013859300734292340376945538134044526496574881953325068950815751139704202106663852126089091111128932221374145026525595130932762719439859998715211204664535950624510722546345856418334993251853159907961041795740284323842203560475164228429581829775924674993235392836650735991282716959606291824393166779457126525890538602037947675112569856054204727935485886024642088764684297014196839870223886868471906978732267979972247993000799540696368827419437691541472806230032357451893393447979967080198699112507172750006192258992856760126977382466046682672259092859766560223697297755466519556607641678617047376896771991317161362228310591003625388208640333051685087876955124845942292469108805177528798326202128246687820738251833593428575033936864796149210834336918629411161477505796165140584442998228798617290808511190322820706985823432138890150471306989942590572066844557375963086177372826265473735415189755105514481681284018604831255123869519539657759909661778034373108007770686698388128216117935566428338451087848306412346549407103714573642414186815913456398643346258880151458159175955748253801356480793691405427341269306705138284244397941564384955345469945147045787915643812542947279271898106825114914800579064999873516276230677526399406663309439149058741144309229868001753210742889042498273634829471652198642923642652155692180940166975136722838146425477420986275459393962321134441185207561879520485027381674994403129212436549874887019023775473433281489720490416370791953756801559268434121018350043210459148333166334048592686030120968712627766072534732577599903857850494324621411016230267020508155982151104617250124317429295950291536935782122767186097679439634220248960506755768668901432955154210265073439174570164827514461534533829291236920690777959825358586353905376407624628190435494826635420660006793244225669679329596330450518497622634397355621041030899033300244899574364351950242430519001339616894534633634334225951764023450302770470514470776874641374668497775767256100728592212361184016250656502049918152289309177445699433344997799446213974495467073939266122876421828279125449108599848827852399644688742074387796092782577707307857718534955645244828509420820607834822679656202548726263271655695590061520719421157321414899180780895210756488073797395390562862061131655074298711427643046256772665037105923307208078998404956000013000211526383440429412944336755474844572904509445539976280861643413861212129354687675418490930740150694081881177910888400259840731851552379199885472113899435754900376452853070919400735581811300996190204277877332440939561951541419717956816232212500106289545770172943553967152301363748144116995126943238127521016602703993382049520241043437328573724121818307941162305420251605048903644355745730434732963517353261321919148621761985941593673444721101789775251998290936292174291082258438084082553882927567123251877698925215510830397391430655443583614946979554090331020719693046485467526140971076178728716862130426167527479562769106465065086146647890142406065944989967939614336069188213893340579783989596934339710496086829220033973586158419293383192573285256911622393970329348364964196155242642225497511607178572812859207250401981626531060947123928876511847982548986038677114088340204530727254304231067626325293261640164783262079507401361426212970074881780422273742885148515015574336940956711854033893780050617242481004964787731493706257947774795442622779893595857032427812934713010606800917767066104843782182538043769268322253278357809170595300715308074385724341500067062275479866497581150009130054483172539254410842980472792641869329880632195053207306945069797451126373077643641181681434565714901432932940423134368507368169117884379270691443615068598553416613944899196005528083173620211197286649635135347785639022796092166165929006226023901610819919089072770073619671673480153501515329281308296785671416522397587251439509061471577458291240675839198066311798305264384023617439156556405096000697156574775313916065632736257995602599496841716180164170731457686021310694094681960728548280421734049210970291563727065880803394220044906092584773468493371990337224292870973367598647319706515367682057161325454104265180493999864939775740136461115629282963057421096320157288660319571982109774590760061302538928420082864833803433529464705443806852215310280863855195076325839141619221906022969605685102438137581849010448160276611316517113049934880402494557266267844467618258349856478642008125106616484829831431397428867707995229470388475656409313265820269818159931379303038985801266696126072975950982614986234396188735508310665213652333312642969501345566338642983059119811744397055582461939629095071550558567393182303123779138588909441439970603606132437819820638269816408018541482606921667490522290415350299134074645801632023744314703079066715211821547274838216114676702442402698661307387127464557954311284443113677032879467712967973756169615891587542932059395526168994797499388221256273919096777925404406668797326227361965299539844506475377378484225547913324490358219341069600592004675012820262533457386608820171988938095197096336276181610133466262757239509637952075709648671751896273395619348978514820990883530045637817544924900726917299691914225899914584238719469266796799202610380886311308460412061568130203309439740790384913946158100954108079925797003887650028360607986812936183518447340658039839870154991159831432716573465174975767877423364693353001705250244582786664141055888972612107040132816994867912006693179946129362020284596991274335886436032512644360479681004295724411526769119873092334240799840237910209573354762096213285339719902255873834559071236441278662653258810686201988604672336182517413206400588901616179054358229287297165760008312648083407839120233001527282976004055425936363642730181143731837851807967243767353656859634886495568024545827649317369540891717140860451340215529299905023175939571760907403222027284694194225787190699279109489830008977573025849899230850059957388789931100687278454122755189524577940122923014723304972459706458887142177240245763185221784727555551294104976948116623164631587640480299758763264276332676796137222339637086426779277345090235203827461987904578261391969322232459273034704183671433859688216400775927854712715480517077225348534035012660561292592050886218438863797067420501079527762676011439531245529220640459082415258835460528831019662915797439322506938882600367632326155725472921538375014219325169259354973116381215642152987268555262208404690338856442612094441295931642280319540107716389681572616234269444258676840542240566469768659410033870455331368495397680053936012766715371423752690464729555594293340513381372773866546825206686853615182894671281693193899662044929001077375409537362689898941308278331949867283770117752655371731184356802381481276711656300179532207901947448290585961070949435006482810559072875215799413024777511267362081212394343206622360577763313191600094707061369583699754029654929874374642699522924149771143022630583576947576762969896306499147012518841208162486593725341569644533102231741538463380955678605891247184566706009189769935966137500387541850230950917179572065154267380027528311638572665334666047528112506943884330209462329870324377256863130730978415525071107955596325522717686154483779454435891185063658660938195161986652929313535311889385232561589079865675984686230942998585894510468315031071628888943059637683468416526189138529978890664340903823838242313227639260815794276267047145740577925465941339576759611868172585509159534545131146881878037948277728496385993023112522470590328049433533399898975291617674444398661639973429972789288226578768732797824801451020112156340819211214241709832921718510949757294864930946139099877897251823911042510370029406870931724044635181075354313109573001420644743590391044448665379996447771591531217200595170416590251385128234522322675368927237561577329115090298635224591914106812827365975682078415570566808806961321474616623998824542705879431013363678824090459901435684576191533852700037442101028659352013155884179930491617831887261472111109026379622894425889000078878272590499074064507456654544651076382257100617484842287778450189227448010485119779156479680086386265544870089069833157669925584443333369703813266017353544017537269327435602636054978683727994249690077773654242488146676255998307649398769199152460550806603504697175125809994122850368136388429207517466506972024244638003523490137155253529663350380149527927136689039302958411411847953378831234340410706716283985423339670530059792989354281705538909578433335749175613173653232337335086483349095727230092798230877904268760585893081649065497166578349581710131773283603389384154439576737875550503833777596286803175871110774514654902719278151279141748496964265916488787101618252790159310721920377786533209810460532048894847795812548104962743730217486527320703981773446193820761927450156686408716278770144231769291628546713198221520861989406396046907971743422268255376564705075435684257266052605408454633240281651616174476822169754216857495022803679185735027352609849721570675481581127425658352095665399216700093537452915268539457729629559692314022643016023640127316337083378216420992528446306937013415075548946769820054768566269735448430711276752045293752739549740951442185039918339191280492278723960948578864959580634604133223894103389724556679885086674310736981066204624068795830632503548883994409317882861020449856715656747176765319665036858509824680973698093371036297208750594795694045900318550916601266420549804459793806059027000410286505278232807106752261560875913584411851309936343032968414811903765382852019649889226748647603040263019415279483170655446629584276974635116491724723895137466564478898288299461568452344512511817019937574708122453921056555381318287683548417394189338936439257162969622442434030510430749385104567745992201889306766339771526198908851362337731966986963446297347882048335071840777502675477672172064240577196399061780249698037987620787971637397979358378012984724285129186975021108871721040969620353301114739796679166313842354527171334092964825261612486986858195715608550977394305653779697702702571016519510136113561736069584715329074510965412759907005470142126535820401893412670214877804975498091787252775993393082610482538352660576602108796551519323592813103669764241994422289115743076719608864915671859745533616594360363693615552020250370276035735530624910608130897488823644844370981901167025232438314164457447992069910600458760024801653153119097262580822025993350108579153424307529239058944111135291214574645239618555185113406882359305818678524314335371325060884753153893355564698744262544196611416419235732669540115033189675147869316747605988405750593956828900161737806374919600871174146929443954429558677529415279024826824752856381910323350835554418129464338111475812111643194671522422314718360432597561809559251570462826707035337863822944428105450555472753162986830149979206703856547932328881366493928303211588314066725618766160215974579017149521941452602310080617616385117360008572946375970014704245293357826878391066824551998803599014107913681991322471335275368792603146416743705846156011023443193457151006878016945894351162320551114876580976843888638556186875463708630061621314952937458756350828016425508503057025140971404041275402236751471317273233274190792889914397921317697149673554113275871733583542999601742507639870358951529350897775372081151456315732845411182585220883158385481604368541274287116729777215446401818640418373914115374983632313240585592304032096609466212865036876760466823327953031721022596869650052145556504192439113124351782442043125488266873628387905528553213797642854346609233524016344642235698309690744934083588586825476095308588285069845050907644717560441737532577068741201868308149316374170759378275777181915415513702897464256291143379302945879947517540112610656408383297791191424148674363706330042475029181663961303560173614281946353694953937978020530068610783655494959811892048213079676201722185103160179220457839814683747513032990649606916431809009760735423121633778197803845730304659088563296221806441739105207522690995072440751399798790970180480593891806418797469423088707858959449385473538210398228699322027057976473889474144693910937857555743368604067481766262839704079360224879214819926320992885633681379275415333510871913343121393051911214540743489143427809052340760666440692148817624497030164753272396550106255050117302353920324037202764455116069528093993171376258637726100244140247419929150762315795646108675623289432260265009715812482215446091871282435730174727682697154032364571263058449895368448446850757256002919543931478649239018099459538403141764798719401142261242855496255705410768341406344115245647516253693164854372250199565947564697837071349115456224598524553785633055926525394026542665334882309298935863086872479639009499444068491410676109152468629048493659373895238200884400656835715405627726445354893523834877936581082848535564941732890133549568277917164967617248542941217117598130181621742267853232509185551741754471294471076829790571360482605682206972762884709521476029882412254333551864011125323182050033188639265651626709873731973400751269723790816451921726467748922308379183327536326429084111649938503018023645499883267001929201921594140853938310411465664301363297215842482222717239782641377590590793270251876655919610257324283581392741294093659764642628183460528783605675943269460868327183771000018388033306394965310514973112790586694629388801624665385702708389710270025486930757727851264980967856951537572159519538813588739623018773842772930275696623841009655783854268623759831071952895833221073942777875759776890810184005532764520637779977930457833329551514439504353799190996075648477096090325460635291753502233296374659140071094058072722718512091862372689472765448379552694463857930084749479965578569100436861538699832323690844939983457875407838390118888146718647818239368061808785281292774011312690115179261716925421940040395764117952787642889446969642246518443114986108584683928818580792064329856527632652480324962768787654123648312207869181389608548072610419914920816774054669833100419119945106844671968899320717179989220079488054415808352940070408142366686187760471812115982652322571952197803999685395575976168039531408575990695105160942215481905539880772651425253362794997452569415767969985868407089888405599929174883083303074358907912541487887664847514705615659266881485177003278118059501007067453991283949837512614261628920844269026239129634059046031419184918818173884613921442890623029506724180528653691880740285242924065781611688489199987356942621513022112011587098322990714965587003735503375401843710863330034689176508351621789502884482468165954007661280170585206888449589349149962499401073142528915457024731617296900606001029657847406458565433105361204655110373665537564620382188986439887288550140801724062569735024707699156791719041341288800755754034014600396170919803425355952761917508581018774980908094217824123761685042809275485310469040957796056144033183509163104797690075347895818143068977017112645812908788133959990338982564926256113409670711924103002663169402327107782933490871547944076307523917328173725037421183358081858544896481872959112526414801453632885122446296180902147204610137141083569409985916106025574578497423040078597141234567591810798160387919869867352569740986531070252212449555462462838274201810622913366269794036665208475434292020682406412711413754285957034113430690962984410385753017324303666562854099983378881603676067883236341763891166807469407628172713901121651446163396116536480387007928376368465778043634121450488720930788478140632017542271012760001667351920711688350489261985477135408515443996514047501988313951734030281340801193042980647534361119543967011107661826693805146181011128889521508716577195240383834533270733828367534601033015297274414875582736917823193396249237984670606786927402525750810041944091657727433081323321757405187966827639493994767127379449964159591534246106301142328078362404959839733747645033008950968749649365391514403990004293927073290032037644259733456313007290312178965167258887328349080772521942381210177038235301302575588561335727947008293276185592927906356234132629504561048181413535968682155146417622304695345851686680783520823736192497233873429381275642005284775166812742148774354290966557204036822551251597294845068496801941029071213365118285264547099823443304715173813933043803499624838022045474745468534262556593743140493325975849949077740089087746873736409270528625392960147975159892590515929846857760320519781376076946365176934518901031457039537750912832094003101761216132348254063623175316581581116455412820124637238859821385097534451635946344412392596215630458594688231949203628826751396238639139389408953339259919754639594297831047385302061581625868622486323696065316044972450753340913376515608301122559595950075739934541056017857926568858891750870073639265583693891771793364659239906942888614024166849876668975427265028104321729670496663578961590069227481430077557596443370802005153394739937928909838543283127203234353725859629362154764666830821311467720946028489565395126236340713437764418021456439422347260993827159038207328080630199087802317933020403948216140825163431535133670962178938437738346981972150813868650220007487972693022075330204775055625509490049686099929465934855574291470599879653137325680094493217227016264650121193052629831439271394606914122991368334526467587529204135933401942942785290806742502267438828985710617715736364967353601695621479524084695878609776961035788881324477217557481191305207181433996663744759516693778101866596721604958794788150916438145998684734727923440199482094218216463094250873899834292496155821896104191385754140299816880830132140325231049403476439542302265819525000343553032535459475906711247531529462804675066162804311524411616171986304114961988710710400565668487731760186011775400395199656965546347881285289873668833612643242250344024093158586129915410926529572688202760840935105039596478007589798041123495729460361131615028884224919689205500862477085383077190160245059106617471336025174693845457321962739715421380829663061935856269978920882591474856864689344333972515213596700335592975675762447435219470686735188521845646397314719552261813252488389041159220637726432150329133756457136634904488011338452767403845341834392774565684646968643252165356045985322166486520567582421668354607696055137725652581625218309358884189406405654705930558975272255202242230542536874997475145271078190426354564606294136643008048565115012060441041973719515531042670278677584352406539514514433496856348432389544602147280927850428815813266342849790599963088697477641080230017332909717065709095196688223729440497337200222938448003548117591325803450898541212689974973108481466592051413804136939727936497441849147303064609722246500703246242374502532922147918468027236658279553248162176655316668327707080894280478430761538349800809447384130139554839390530108140419966152632206416328516434665951202460255256860271682854073555806695771942775203209883612082580192268987752548424455910452942596389096258686818957850972394308869630943452547534932936719499886193531766205853525728559295435544833514909204552117867886296835766702976489013791482404083267429638154712756789437712133937696020238849864636241615424388399513776217403689680917620273706763352808683863912781478320885761388836058269501913194970476094757250583252723622054044045858128577845532501486654655202551923153174868870418495344473777243381288481507318272590783972640977220218883031942260315493140891315586416739617546251301500778378866074718366001728556185277245555569572777240678484634947419052267115221478317233900270423153935176311431373421323567146285730979730072345307332371392306929448633193023759823678479260659674861801587271147527859560501562773881467091833756472676141412665331744242918741706866782213866829637389597244759548536364287825668038359005528351956530946446151789067407050028368571166846404491314488184916062791554941649041905223135198701551710361323917108131703176535098140965966946400118849682571205834476198528773382894034027787384107394067216597439855394326349427078942548654454200964996990201272858552482961233308608757915423476955821559920223542092591954627976348278273020322375895726364510273431786047334891327806220961953222172660088447140062277631532927639260383921191906688580625449656896201887168075552785263870650846704457699245432586412203629677640294179767002319162913248618416098843327824428475812222544525733272955695105499883760871486047122030538378403594845736855016725734616670208622867975269640597755569466408686859094750051475881812905760326410479018750532307944415907812525410347523604385927297734428794122470033846153748677803644575352236535185676184775081303749504924026057474272561400100469800841892058331901868179997622474191316368330042020666854774785943009961201555037603912934260117255428957939686682210093141901348590173243588279608326263252645590772963109285736386005492872843538543470620312205932028974301840974262832683486251032158137591889839942467345569293010382295153338494849886952188542872273208299609517007052076713951156095174417223794072077470318483830779880722526140290652963453119508512372365766841924016414156956536957665567457851941346253454626323704788707255707710759568945141640080140403355845680597739764215204004395263155608017602921128749071045099619538679625548924102942429221239517877357613224986697136771196326691919617318900479513539383956306787543736600037225673735437016365438532886922496790041639891562382349314521577049363181054873630147903694926270072617960461528564693993160891063826735135766006762281558246337903347857159342409552281593407763319172727457589493013183421640014194437712462753923850131727092886577504352221128519067331078999836624732913323637584660997898110569841315997240703999441868957841557013057713868732804216513810760457475664313554162609158685683928917226860874696511616319028449153907167603051819654908752538248957148698243985919391542060103224749521512177438883945772920169603954255160130443673299512013992902371177182928206867435753819224595556651473050072508215892040877372574809352324591318076152572085475395368721844196920952826369024577573532623934791276302575736874726756514628955402078474677493571168567808760460770141971605946442243691533317810439936443976610318290112960651401839118189605353620118344559071472381037638036704467078717958792739161284580072471916946635816753069575287202705817362992958230004328307303530038857961933481508496319151353832804215237486816604980542629115434832668228235963299769801412051397171302628826425915027680204370376589648415395970211189951137889432799515808859720543736410250087208608877996944143211694270461264668262528232162007354132052691491167134153526965842275128420508818377395745234773252379484427115459933942278818160603833701404770980388052128905540175669537372653240320926972815274848663663269369016114389427584215220778450445471768345737588258808994179025233345774841876371387060211738778725869733600197446124865003387277674684588147533435090021296455960565253210666027440292191355495396243356400626273481815681257845500643925232717122450546728985664609748883558566543851785301414407832269348631337550998502907910747705954862629882103099929149632922057332839171299579900478310891439472260634935868346074524511172798807850842699586104234901364449837267459733369083540603235319281753500214612546343944999854943738547999391431372817855469468567489543366745565728474299975224738458573202146864400270445614852275071317452183287328952933158006187544145801075574345187664002181147478218236327197746391017438987962514371775100666308828472444268763062783125778995431502105284680209337091187033072457955195763924358651189641421502292639265527577538024381227205892401932898154582841079799898386094909290476094791040318176752617066507766512844060356406422318959109811208021223921355179701199378017926505173570864064191043388666198490704701038820103078560140995510285008962793135531654701289128059564423417500496892817352185100981487408046202122314107198260255313601701289721967942801138287652997003051610173474694794567577412459288902293858238779281702382802880922395829382002688191156687113050867324274723237764828892166946763629394400244681999772707245430660215533481879042937559483209084753207460378672699625950653903731440143440947021030573550641595243887166471354182415749167713836449215795750315092963413370674664032230113191931354478954740115092292364208378400232585715596257633634858602687501870591760032281654969408146822018451373330475030477993485601764104343846115419970646316994100274615786917127970089225560052879949443155134522238853011383804899442927038495686118099972256351586368933062746007662819188964795289110241537928392332609948511440945889106222175877462278643240069146385956829394372572168317883645097931681336145473983982504011861379719091888397744808996045184798624887648864560925988868829039518584357113386047175827537083200036884847335453261381258052094371596946894809345621938035504926773307878445162493834657680083058777957954681043642632495071478661698957136505823669649415314471043815137030250838727373969692031623990362970394274849308079705721287259046215320902985716083502001582251537556061308421669026166864230857789731928934879551627090856329029202245448686258088823613983418047734963489708128662426434138346709000594935559511087419418478998408322271969813773176560600780146883435331833482289034441122500609709616631468183037385907683508360193474592063212846438377012766137537753167473877534638908719599571263480631966210697505457751253852770603365950038894370198966103488705190218196479782607191586345615277418498817376921567336319854193660613000908500691107347924834215802054622565758022591370306387508006424299869772869853706235283488799077267010184678233245738062873001859046753625524230018429872077122028302279365111245735240838815066703470930313758535265382208143294778272007895980540144413788024716017625454983322887582461137318378212981942733287684172505961160286567682080524165302492479947275934810836898169238871643557310844827510979443594662014171029119698644725669564763913809147605961135395312342202829466185679644672569378372398079492747036428670273378955601896049869883243761761593296893702356405193418337602444969631915703875381834308869246095714118133034963188907167382781242675185261277259778251897743670704586197335134593700375330575697696540104532309432410972084013488190780646451066080803004044254427844514649873693286810888617786885172999650219204921879483984297346871232761893738428331513683136647028840487152943815442474568955611652285297772904163988264341464228311304072878039118963409787339207353476332997197678070300013524519464493786638933553848744053553743199064912323391114357489303850994158005626059111635715833728776162271617133316858275665285535814139723483882560038505443949029736827691218934135157092738984217186330053299383906068085255045617748639920773528055194944210042308898197269120846813689224981347277264617094705954608646762065776704976774665972279148860201466394002450912463132719139151889786726892628236035806019284085908715761285919982832297950342289219260247099811472153922281502446738919131257786822398568441453015435031758756283775854857920187531328445451036655287900924885085237909221157961160756944928459158707247890929906984701873704676475516754504750032195197569313311959315431358252584324136916915579148949233163706417275242309557647229952224270527094338575910598081911222643927839094068672760805755696191980151217275782495533340087781722587007504340318278467123433632810262321887902022650449037522516937706343911409864711868617559042849878006416432212822841016285243460342192763288765807026063852727506559485194324597862217744273643115327000931102938599476325442378732449701717971684455516735329567512483729203040279761108337381531475129433890460505710701513484313368191860935669496909201562010701240726925865946759280522635409632438227569934478022538953994237751999420929963327099871415821068163631203135030761690896467362070838705421941852409288371949330279059772544687663390220212811257731779824404186629876600167851947399283089929189031723013120961500785228255989134972615580322863437692602719868764282902717249085144105504937511371954710593160925709893458718990787709229861645724333739041836804244909270258450415195454911482650272499832283275929799949418324613990357231915622489917424011267090792494687621903961999033492326705145631217526103068463920308779449177697954179661250261569571939365797093798307864097304085977030139091961012768829640980540942317346243569080479317588901097427695316307997828369825623891501494683296305053653874252388995530618149328502168863560498820523909877149001943364677683916303566414729071953201473184747742450547693031837980957170684169829290477836656393149261489399891011873506485932460674816921838361057143361257415325133911016755804730501214146802186242592358280425175850804436819038836276401021572171761536966777225680205439289763006729855923133323920931098725659453369708530424633059569740017152603551657009359036594662357787870144234596023915513813843712608546221453182100216098961041387735395324618266756830640311951697375635930501872214162595982098126268553158507423748105180944447680931182109102014288610534089127133617493635267132179741494348021877606749543719568270704734361588159912007120772454690099554107386267259570944755998088052339498439219907812961894941637537999080071429876569873037199506234747966884464650683210884188517094209388089556976555943076635728881626697962139797683436146712083004778230873761011083162112215238817249825191179669024241938281069144299628218716670724341678543066644735823164520740918672079205387112986514225824145146933793424707102186066783211990045303770283542367286372944852590104866668160394754580157774267701156242567100821971063271661259112590162962365912548600344916658859614851422291893272114408647681212856421783793846739542322308336368430308025026584186730945599115777469332492611765310031879255175000371302146721650056741102059829851900405189990686617227398762466513678630734220051121170428317890749047140611416131307268578379791514260559867946894478248935176527625270737923055181039070968615359678097236847931174806997658926320443942665340146525521918806357992410150866344663319806366428736554330208023764614390418194006907445876087664089052902184004686549219598561818341003232923414657665613881843621725939964842899595747523959491260243840739167215029208761733558296822095237258689456104450484110894908539851886773349772000566119324463285224776934272935518293466554573365864658545136730642054064760737209303144248721334977689472776291310655899343822676746276718500760678273214866550489704864112015700516579586224939141233413569306762469011981100322915900631938141220965836529935030911394044292485543450174393717945569505512753979668525854068669343890969820101703816639169500826193329299680873246563049168816440900973083290612435217665793548060128573921023071827948976106407955042274723766762396978401425020967598365141516487071788274093504028311132055576838690443561949369388629970930803686645386278441339611909005791119816422189999534219066957643887274946296995053918233941688241633011627028197948220480510420385634100467935778253482215816450955790470230491943019268235835934219504492481264507958218778372109544815815410231775845444309314804932852238391595505950607279021892303392905227177576927131730725885888203959755114818019475455906883055223211098464596176051859277132480333972453455683646025545066400169282779409171712583697003449578856646932399473359283513466626269799834634552360713144383919612115287337100669157082581552525856608496986972898179528567397087199417122122665713596407073989145485442704478210565618418879860612270124017436035500765014232089600172354916541606366399779949027006669370995173682207429949142714015905801217135151408349563236702469269969237868534107519399969119631204948494819968990468389192028121917686377468313889180195244098111314677591609568950931471711110514719511590597449600081309718951565276492602663525365738001059598555325967794957264562284703753331984241566270371203580775333460829132737592465024852301798733107852138267520900140070895582378127273222347174651347886113223396909318033632559479125911430547099654571062041081141426530523466853131057399766676902718202360608964814810270866519416324967976172678663386101782268876733544691334517526008214160079781604929079524311670243071710492306252724563516396731273620444739323289412755465731490253625374337224612407920172469981408479559699457807033237681444905946549916532300948510248026866290483075478721601769207781168284785408005843215292042533687120998689940624302712460334828768872034274283125836268667238899822505060929240780219261457102375946164220149339971945567696538520780380624753151238725083449168487333327083603443569263505116372448955762163239145554430870177073715868580214570917192983125371398622120778290471820491634572020069640398361577900613390291654235403313930274170245748003055967235571898848311134719587824523084921123499280017914133608112692381049151248557665391738556499076824381077737555050735208021205026100355382706086044034169778952890798790089007331177072059340524250044781797216831098065520611398524274376610244717173773861047392783107252622858675310991620517989427405755878234824521830756384619793916652090555081789777004801861127574965856985086556009060310777116489239435564983843472084618000913972958618547018170872973114716553665968279247119849893706560250839190528824922100588904538311223775879259052034178197479433771193740505168155105064473561088627250567431036171394976604878199966858351863415867718300418106799667289992233640486023829388738366622394930186804796049194760080427487288840989517253124967653233451892129746845307124434062375687884025978290435538028787582445900206299882386788784697179178463897386114853299539755115213731646191424800054582786848715686653389793044566945988015226709502140588096486368385557647998855018775320864624706929056670252678442521149060686757996349961848507766108189905774698092181819056482289658469927344397401635688851912025719972718211622718525196779898075029464847981266073225844539573691430795014996906106399750902591669774125636778094427047851865706192131892603097186794472430676388592076580769449266825199924507389837809258938544948522910028414146601713856736947945112648196281089449971911307969151070231845456989320279954098757029640072458757609087665556453849264094695042243658220676894400319816205369337040348969246833041128748082241082610300584551042912015052940239980033958790571493963404696607448834939930198426763880869162157490739367613973554606648692124064796457236256570772540242916188453964017893260648995741185889188767446455351694589109927484689721825728543740904617203615567240616547147917426196699103463988980757091739710303037167246030820056125586062210124524838417788580371051157871417194639538334349646630992639812900540647477739026639716553569296506784254602998923422464814813157386317009666867089548404805953338369169577797779723055884441572622562421677972752809129454777304292302748355344624729740539702443179840582881805379842498373531139227979428426887324258992876657343697088681276996868449686229974139076507891433268270913523014090524069528867980107003962555291756447417510813307943392343442261363189389494985356649268400215366590951729303179773972384968877047181512096681228180971484276230352681497606826757366755688741058924871022182456063644131047118435907688994544136889909390774917084667001320957333093507950717601855588116136917103591798629791016752532187732223078462412728718436094922008319733079332659249577152253222361156596366794936743147600344348986254894561215570538556425895673483244634130678793842358860041205855668397544493853483773902213745177419389801527171491169379961172434094952263489349585686462848404574147311118228278757174190318819326942743346082760179990105829392771346617404551968299766017750383375749257933669501804583562211610604889868657698317614102156949373398138140550011538518975252577201068174638325233301415660758044354815345975686262186674073300219024117792841168977112228701865537517925929437007568296071079779691938210162067621719141247639339541986820991993310250497450869103552116094713858095782944589641281552721931004439751398520016834779354857690127468698671120478685519247941892186655720843712579023554800925134375861952761031467988428578338244860740253094580523431636227867010571623728500093070240819523459252710888637026406165904510418267132152203567670561979322943264469384098147013179251035813794016307262520010113051951731949555320118380509864243713597308576876637848453548769971002120915383369366420403158010815007255872791368010295024877157357068770642145724668519507962177618536174159731145393458887852933423651582975928435627722513318685143421828147538122395942947110568123855372404204548088054852294778304486901991265691598906949017191115252052428678916573933996795825553947604266098999769842208353018597568518612531973625272727730957908509126469150676081925956456693611188486454713192962822572551297264331367015671872608711466329346814672250249106768527638085379238919489624781199301413355871244675107285396746153608061568135341217185725851539550404819630230538213048134699941253085830689979840613771961218704573886321615870904397955447285903405191551059201399296320195692745300251407966203342496074007177894234542848701680711249423942175979508924711597772736248681504757024529569224006536438134910533210275480586299055302312948027912301208477552865741138867634649622963662146573981379751340111018640727460502618306132445078761019224340653530817918715746780774264790138226835638995978597489288766972249408509816635545578288735233197927949089120914161659943043864915773198086206599719204316777756990959579032643159961619612346342011089354040128975801905609302930281109057063023253390890962431444503902739527491455619400255711369426642851108752302498334409310209189570599773862311969802920814404978145784779685180160743940788093438087520080860118895271572732199214349504857864233028033875974261087503423636241296567162298053433433436721655694801113133762456809810130300212176562143846779663655772362806019966974412949484889815304959976658230074218565908025149652530277257755178876366977704175281022382344512128729949702961037449974342155786207187288848962509815872501148092166758136861001292400818909729005226502711528758453435442811710244122142174689096468088333366488807364238011770849087397084371876158752545651945189512574977062493793974147432439693055794608248033858716222207981870746629775129197868442942582529359287671412433157062374210872128298934381315682425973765730049989614803897950065347974348180119730459767943446392928452066330211399791198765291362828823870538969103707274396606269730835722066727474378224575972269295888441680836956441222953825813737772968837207327804703730268977918175644200965060278293710627639035105769933270044436667134073592238492144553753688753244413870216281376750857584587991297102940761761772021385024480435105691604095851895789089416832618478259957311583053511007294778469565096210218266557746574143268123793504268517119911557061849050680726950786283352960228523407717541442939147296513925216590033337755101445055096883264091064477666961787565344835590084159298040567399889968524251879027093182387180534905383194554066613649083987184677993266074297598600935282909547659916604780727640030490250361336150628094495448177216843477968025504011986837768216187124664202548298571999356724169056966607781323246264046299413326506945770391497422321474138898670660993100805892504919166531758828519884492821179655267577714798956991090039749741925078523012411903569179512742211288172566905246416038484578812701943624509100604402089788569314796886275428168358693616373345880710403279810516738377809939306786457196441612965016861408254364502806701251480560858245482438865538186920695952562696620037254545427382140904641623794618470884349000427181548823488777115526512900112183950322553041742440265491772388729068802493855995285316410393424802320819737289868030977997443398397828968300268612808956274616730100407498280031328642413811322173744332082828146479407671895952071745630785869883384905382980062579023846056872534080673624373021367783635273265662274095483916269902455383840116648915815476185440000656954510908211608756536813991328504929835201197475360950997454412636643336255012758023963760084865171869683453126912314791840262460531205790869540607216790713565712389581029580268653798450500895149857148877950790062988603444723274369128531255850637214171874708489943253630746638282820582617214146507435927047041999027275250593681864066835655541741066148678065509150400031573428416480936157624626888228307735355997589152865996836539244896158076729069035694493509597597998015788126851622123358716005325166162421374782079460689856841419590393183750423014577915208681416949067796819930918155406816156700893203779966353726371163094870999093111825592082136540453053736225759742780589142920967420977638809192965582049634780794604141757100095701863761041212526598847620818991787403392118247369862423227600879050791301443786574361617809523499017013556334245720456138537022292142135124870946250769344947552029816718659489388276216109622709493054473995006269633376520088578949235760735114142266992541426653039216529779505275645810126262526338560868819210094891948202851985794142703589823131391621459305587569497290380551078198609027398416761741422013983398001985389129631884990578041846611296090954499546838503296450775588401945423049043969597987120743774365693383898033844644202272706075430344323237915642346022043968513284385521065305262450554522333515244546585735200512848948634606391479634530448626820344837403160946727779806749338400443405952402419332781848976882740152790309239306813804328476436693453160558229169095436876399362853809994765384408219459166869842953108743907628323017246950917628556519759339647887507728303648605361297983280232929871243472108928678250345855607642148034025486946025186026615753163181587682397557686310534574290191544198016402147251171896016045364448133563938821432755622647820682160480832728720214579453480622561141524352209852249352841066942460595442608722740794306379547588675532319687628958150124818596654236271700514019062078894039512375038336318648833005535169978198930084572164796464438501635673009705103741334450622667229842139286141094023457187103256790587412181499874836685308075619940410962779964077044329227023701842896492968754191561275790165680796455622617269953806340639463459136612992624436890575873637805652950080398729516196332009488954679839242136394495334080311728926371879496611010018826251481256028368763654138820676453672897460149742912776361613237787061451369574933704462347075984440455035246518846649679751471829385657891246417821055822364484254016853217104034540724136631752413264164288514749735654817427064013772917358402252635838839268474935861110809889842334118026910719703117197349217145750960052508203841941588571802293692565348056014034865989981739508032206285995774012297099745287325454329522660379947567579802285602292331247426035887824026038150358436024848122430482916066517808326854517393567573245317853498455740256967145758759420425092654830957342792825068158037420386416012607630025996323187420790492690068187190885748927144654808742530704442097304889815930616872916047340767020244245013799187740337125689486225552986590198837053077022171525857097374657711292144106116899652315833605982464002098634508188225784263631270257002395952808219802861071084008867569840795515723403995805082103554713476040949329657042648061104018088725965685716013759452369781117667276474100806327129241682326941926250759354661730923293244935193014520302785064054072144671029917854107953351303327279446221774801576991185421810144286996518702267765083694934131415458368222032906523709541104998004467947617985717521110418300581521081876841206575158135205959421017166117030905150280514509879098010449253055620429394111369990198620324623274219028256764320654758984691505212514540937003333673983644864016965290084071066275157177819905305012775861677488634960776448864302114791558637855623630194009251923969420299516921986253772139458117765964525257122132949938351448782528121293477628438672376584761387001853991707849367442625931678089888949747723016780786371238190509223939931334968681763622142677942327140013423486455200009884306094962198730007796355071199406039051925226424931998915938152138685774270761397953473421433388227632695259452027289576916513967413505794441202120300156515439393247757625579047743102043626376517444278769692696523431116528204058787525197992210521913408169917765076435801806286882191713133737092556614837835880131542957608256612118386342367273656095238965057004630737499111625052932366839269523814614369480247824035172622347041611395463587952530181050644664315498687593614463374958501165246659899572385766194370657156154344076308779971627643052975217781792801974108257030595296008759065833800223055786998312836295637473861581319007286576946255150584007733478167797976807119714278620892263548305897011668830367219334872815759302607226223139073961354218119413994093440213107719282693333268165945201283620911946330174230097806093506630312918166410787410225728150480372520600968283423031826512677449456122113381437425656334183719043163880973869606396620674818220102349284904681078981535021926076477208010528867945243269651619947261412178945014596764191591446973612979546758014936006375785670518370481555032750263656639260682136144019284470383470630977717892855391042841728639872985762120635749338530121951941343323551744296001080029318115469149451986986584415334134979363363484984444420065594309035338283793419172060696453222675042709248429178104213116645446749435327658563866729216435141219918543334373854109597367195736481068071708448386898575916327314382246898471466386453589057344658057212665729304847271756240873295177770016646679073338698428513533060424780157997778135388015221151969307811557248117448771062754427189634406955288508389032969986501433690849420157864156787442132199912738161451754628265825944196792733485488757323728153163709583186048199185106374939842532868075887601271995906448020913618718187108287166186255057472034498616239315442403150519364892690136944280751384825455756442844292267403171332617592647528790045520966450842338840904827261875980357553698038908956214455291142984812417220899327427873116276376192535606916659094397303525740418879305168065991853243015028856249244124572001776528819317684217025139895644043307351305834216989860934766381306552817656942203871958462155801227122028589469999582185201361727010103714506070514117047814371827535285824167011118555852181451977958297048555386622251724048610563056118006527903454381087114015947556233371169278760827611368496366866988010513104975370164752784038233177872939293846584059566172345487157540237168644811848074293851401784410569379449181692086700283280694240553212373424048156138418959497891885709450572097782191536276445658092657360613923755077628205310120033933543294672845077156960014363140103719186463592881989344325675741488142242305124663942046252142843029594375905924254532871028953219707961434081935651884161383668684805555985260602040879270895645917631118832915767151895081081788093332391220948869180797084767577155224087584229838537762016851769096746387322270976931767193516678375732317049234937996150747049836670854869485766702050181882651161800968438138603789081385291479260117902086966342283289242696539154132911289712623257268397440798016291632434398765067270958914144060447098279906022284306036117906907603419573620132052886866869425138073776674774158882817348972252343811157905427891956640846139793938821300550781766680949092478188608578112449485522593892154531598894620962446373191283332788188926091656207039203432063393383348027903315452819878459139124415693143325805838799358392305575075359570996677713322432565851247633924783747864256975283786218842870758995483452869710812297545275708634926335511603446341988333210359841525973174195938051825422188077898501994681727044012648281490310910936479201907341996268402607262432538618595638885418463534642211052798410284429188393645414718112246691598536011622404903419810634802086678212119721500242208070781025847320158162654522384877284045873217520544937109814555949537674763595653583402214712588837931108996222428832683481484479304352980099150519781972506824570492637177441540837558981554420023796397606610082080652148712525013769866468267959456003768454905533487402051013015177623487862088307418569507486927284462719577311988665538549568687919073902355873455838381669007688892272975451603365388233798290451519612130221181028505532245557890062255227289654978421735153961096267514797707245522721901243378888072800257029575724274956814266471568620940987226321372463581524553915481703770871516848638726667874388548611323709158107168369613872977572490243329823225541379973556475197825406456889386136988478305642859217545486250213321468593978843064499218903821211472609345472566515191606229411263790765492922114725258956871549444673253148872326768471838647469721482516957123407644399055611057433859368643061870780811748293852482432847518835230161300264179097361527295367753953881676885248982721212385715591513180374209283942539399129290008336350450575598960164748824694446541027039826765875124178847725978166110313795057099176059184855090348251399576004432896676134199541433177942823373371611253659520373681281765587674976472574507654543037160818068184649849533276939884600591816051073251780473141816525099940848056256910249424040789309913549529339227329432555220842860646158742641053236127934741840488505510038527907407652700108687927350455562664713120155772175797969274830609112992871226082754740035810127145272999112174864703288963332562816023051958522132022019966372378501648176432439428110246598095499177179348581846220590580363765227211412448726546385881144239482151077084541370097375289509182943717790131572949036661384352673109858951764954686729696139997663702007351171836807088546833941960510180596569506886429283072530663279768966000574211684468628677091121239113461496748475707979358353143722493512619631874624784774552976291246288637962065422795382074208645601309270592189469928149533909926191634868739315451001838025202420217306747680884400118510730531214799436357602336211626600507419868378637687084381324324053824713858032578566957998743679183922644857143735808548023162592697304507663815023175755176697508198483652361742119669708486266957243818370120863762523860608962618318582994263620384535524241748646959314274200776521118100915939038739094795215361547416680470774635207390869763976450330349581518857737883464992679394509948013976842497102939909342928226309076535742397587946969041137804234767669257086494370747936577158361317638883611064939172538262526477361239371701729495568589435460966319609204650326995617466245357671369075177582868543590323754338389739892630201940022057163435223189556443634631410731070865602682349049262235369704429776685324349335876884124073302601283965540888029826967547412218798659207786545345627187451216329450262558454792179476609647421262926361423618472432388015616057272374266155733710278733615177744071689073637426074762409006782747266870268627030005459465741070445584527490527896703293124953933160974337264717018230713297370320088662557992013742284167321319902095387776374843258563442110374345999064194423064163568870557919517734133818900818277675826097101483489393968050357700801720514213969631569798094978312588076391867622642851343924140126901699322985816859559651002660643132920463202813358133773453174084418443692980452330525646461396515611929202703716011868429400140274944520891815845102033947913001445553000694163905039052746663240045003123346725230270453257344419442417585664379836248673885003325613891559757871437106560679844822742805199752947286230653012572496964168593598563061708311556693744783456778455597954372925979883277784539721079921790634190466810271588754357956825511969968943764742905262087874381050399601418507215603443110089585649943635435287450440059009927700482867610175526163866941591665398327848177224568984233206160603490279390953064725316713201286897519806559491130515812002413843956809934445550003307385671096783896864180571537144765296416360008718613871042393773224763989630028751057217296505078294276528873032008199641279101197728860161191066643295561041187214730918571756489039450205507532754286211917443932056123734756750722882643178797929470986457753279064206671668706722057580167058125380509729231230926925119393643257187205109641110302867607893660100324295584096801953597816469172717432530880391178088099481583127688793868707001473938825044166211076186105785063884398377674821665116956724005901291298488930329561631901914471297533541069440197540911891741965528064821490406058932162885823959215429695406728991448883408721220131997797348610644416557610086388503059688458019675701525019454087895007686396223140166526829545803518794081206511521106441111888572643693982964704512119142593594360471595298030229048669385666116407592215846107338800788655454677462687215220777432814237495276410418229555833757926646627928156851802585160782646689745664828937046070130591914723618496796347092921361468958256746825206034744415135699644578707950650759217762930881606240328520041475203010764357579143891757198021998558725674257925338040904267753890546688552917621812626224484156459213658787835656150100595789711460433288003439692139419885876854832353190127697778356500826090266773576891408105122510037316978122681373767480024598347919995785345811187717863601119187003204539311259189493723949026250079817583933564206376039317568754558746589641959388906129244612296142419958992583905542636790557604043033698436870197577957121200902238789326775376692388249493014358479236368475760527518378192027927675335177916112180318879251779017118277245781725223635956130841900763378461100563044673306658505780295991492808813061234171003799060547354221413065763042239381292764377657272078988272882495504405052190662206264413807510456786987182274081428172331691552300561516302990639111646740009783220630257678148512406937623974938755131317371343543260443184688953594713704751365335182167770947980907978745367370197977617168894223395248226952979125678590364848108099884994685169478106229107276742102212391690794796894814413322643166323019123802003478836559917743160939795047242044422023814158522244594089805722529722057325692323263156150310317342102708295937420322418530144604592829534204871567650118337434029493784460012377994695232251471896690135425865258695420330078121675926086624916799252724919755326739474642535458299479543034722344526395105106889121795017953247806747867075984166553698173100684914206932914340919546745324350090029047717396926264636256281369455906164266684723854477560858061591733182865396138813876229616208595793316087350666899079570937527947704203945543470602564371033580213310576306176197715365815605980763806588603518957700697556434482048731395316960525556324561928287297312020879698385714451645280255544661221527997690383517187004378860135037748969925779929688291798669243738748029589889799622383202535942796194051162621339576414608877437023565362842775226237594080353786741865050081324180346302827178712871246844309462587207573422959394367196556791002322671916972015676682092742588624800955082753877458072484100303966683053735493663796103933443435175782003614148130850304447771037352493418957410108773973852827216105751794932408841367884285128599205068638484137005135562918692058071759183415703134727030347210064743865500968967852995139175462057517705055792023925558595067258781097334108292768610908868259359206666102272547527292950949436980446968203483509227356043646528210231886358218405995024496627259111925768047439849957111002172330752877004142531118218455688329384877755350461204260839679052634723486325590133591296916833436641596181381228605112561041151945176114066641404180316663638086103384270887174988880046737135433279603775820015629592337320148001997328980198224542543243007246589884415590394490597700317122463973086182381179696509212892894141639834506414379119610182387886207621326554399819124475384978771063531910184812907466462559200100272317751692745824751500413416850299566137230637521527871811095747481337819617690506785558048662226161259903605433344974005081498736508058474055892547604932382346842665287171277363336451189961776708952794722577461492329078318796149047414046247005604664431984955233312572365319697017366122058178029530820332222971086628775772363802675902545975534089759378315883436425478135613278030183892446409592482890414151502301290848297696385473385728061207996491231207498924700458373592085313064551833350000483462549278237543104813412656297701892296386020309598324691791764470640590350710041025110298116174002779362243004500713152726342777243609006439828008416434595783906694408793957495956224059061343342212483061783370625283783857517904774095011076794797924127204968843916547903650863933850204560845549199984645039390521975425794252330726543669303700394817846608804132280792860277911684046640865159417474487111232206180233373057881299183271869599601665023899062795498676265856626739383114569191297111361940405493552659840507876497030787260924642430137256565092126874079051542728886957097640866058869907607701806737119612883106069799576235372577221667814333823083986872129778747789424001413971783574876050903364685730517279953426687847827691620544945445083478097159045442114697635337289285331021694569201309504249745364554165501236879135526509512568677982328078073104229453485784271176600231157446951444372125105804256002289130587856619588894728704839735300162733876845751434074221470198179939810251814396280934210585006394392089872389094759591614115498888021111913487165878075762030295807422268879567223699993494679361474983709876106243031756092123626510332211776598257675913932192795651473094342057584515375585510359672321911944723516768385085773438210608567244223625748083622223284571185967467498867367759200389750112358069429835793509070538525986528174248991002100456737897885619023791274543610593275375705736580602276008586104189004553307021966005130936565363690019130388742511634320283315810733716133767803534620361497389303414850443149899978720129174895904965276822207506715483552574334857897742128263866933517444274810902877322065362625338777855234721305803402248564147173663045843499354453882845652492350216931039942460060214410178027190827662203365697154628816840745798588659185339958393114539424109612359714656259040261833099080509266418600016615879278457652019629367478007079135046215104514643082498177973696329502683832781009653825061346329089746454505041336646809087479887342046356133121748453329978415034012034854576700008865170980895393771089156113876152205040429416338669073159885019040016806951998468829906790896501226425862268944633791770613796551415417516713051713020431845754146956797240864216274133836083254792377491663189016657587074438989340592670101797837645887979101324333863905597167339636851217133149418612575109011725374879530684407419305122058884303376675476185922906420034845686782821081831420931195761849492323868973545216402375100728438156594542940195815522590959041132878854425551471718920921928851608907830591077821649409884253814206537065841954463819044997365273533497217620014537223422740994674623649721051721796162645590050489422325716927957628874383190067446917529933719897022792729142697844478495971571471726364282441116812582015309001046501905949575724158870812635769472574891275172759282640635517653278160579381121443898287708130765755004194645741548177782133106460293139533283325234106591477337902540174077833034650179791891519406827015725022113532906936654349769958652614838539713004171444090450138633495726433963029077014825890915492510369347729364989420168998730830645993395383489941307160986609972477958624843304889333679908412878506010328115027621579590389487905840819462543440155445366660035909118674481526734735829790260574954869160540424939594300216688023863079521203499483591844474111630515658419913967589778308273162822477670908146218235432198051356350412616162371368281994666207763369725709012512316809515059593071388959951924102457525821390142227152430634804184258738902074871198244077978258182935786887655369672528380737645782753389131325372083978454103305248332827833881928593536409523695027718045128273736645965527828726166466978453280254199755902350991173337183789796607810069472959242202454904080908961161039899925938963344503623074568571749236336509618867887506609775816352461120939036213073252601702601379734807223527596778505960563094101349753247877167683123144960311642138331014289365596634571310782024078067959682010870106853707304515568099886721404021088245830498897125553702615957603105442892697628128332089015976535672957165869845096436006974380570521652044071522174082689398264202794058222925003944051954429485085511939138731649659263501468572751753198546447198343111998149135027736431604416279278874402679484174648339942201231136850562693700306288461534908344053420574424559242217958771778103134984758555462204203944075540608547834147057785186657405918057754542817533993777660219472757027958349529417939577412383854838968424147565677306574240688436594336372037595590443268104397328966042560927180744387943238703758378546101163433591798936895402644888030149740369353084092410136533369615181349095057157939094107829126883810141925334101859637345414803117611516545656326051408109438963681259066811607074250748335992765483789780586685779659488449300761097115661226257030533240681870189786761481225613085281097278129239780400134678428451818628805420299583626471944173933357671955713527841875043361787823685394219040966470227391273826574508240092415632074974069665622650170182032627337410689191978334973269789427314302017950425158610212805657166435066729036663038788881015967780245192304879698781497809628901567379589473070239422134619572038529732748179327792725998696884790847472880994805272141836548477786414948141656859493521267100401641758960852366582755268275321199871761653792522658133411801171679442201855375685933877046945801033176809075790195659991446823247692151587690677670782590174761203920602118138363088302769379152987260595346305512602311570232855380402588006851121500322255511273324794308510486555127573333365248936255188915934904489324308033885603306897183912042407942441771446030786306151974844379036076747655819740250140792120891996283514741645646962558677217140398350297493307299399283668489745908959596631613800812460482636973585279805259608267766256274387578873751174113353060413432053669392973385254312033248027104330519619889844317539471477705594980318832115367072438203668835970751361661865435923566107997701872026430853291795048838848600721000844190452883685953943731070974929748539901159549033313074030114693859430809906931972039630344596742622761881092745571151731373314412120317407351677203768367621918109232577358190844679482699176911622398343732782500994337082415873050463238348927705338544214432787421465298824354360727063146120012090555445952431759980010470507353491041239227049408572706676555210316029418681645950782835092264844713109216107414102386924963543542114700320388374046198790569621031807993396328442361697621985465508864022140203808605399916246098299803585576014207413022728718047421726472572018232979388252233430332009164517058379729130541611439268739969549345416224443831142251251793823764591150517036628574797935869078495514540955434258555613304286397839652190258602548397992435042947386721725510812803754527868411600425891824921767281599618645014455521584957341474826327463992559690283325318288204722229825481983577509721915030180447025299389673053204970436281039358332442552464568507934789210787126614310036910798847053767820424380922819687370180647911152724129292774437394178427359483079065187911838073983370601911369525293387458260367082191180770416451002368953680307335444314828810973172180469083571639128003603748410484385206017887209594117141169293174615733088438759062451782359957113020823528227331232702307717034599403066586615701942768151705355823154894728246810106695572143290580403526431823365836887206381701458945824705273339425480845990271083586321004611668384753352784887712055152279002180627273520661854682306463378821934247703107659224853219584302476063444290194161353582667574748653265917891235589262360435925911468106411552422639544730769585820096344982445729862522791623480780815731889652443099000140488063985792014863592001456132148555837303604861457885724678547877756730397600698811410358855509365420242144190244401875643364171126636659711382607512882590382164124976421129428350017625058473341837902160610009093515445809977497747459357114492528684445778411497378366565476249469090687059838732574476730015344070826631257285398627571941479449945980646840029899271484924240351018538143862775082571502527216741615688190506304865919491523131846543346684474106336953287454416369438081239223448062426933918432644216305781014495344063187107347284007814563759889811552284613382694208942959479350705427265136850865824598253848709296125468998775091281664240407552818668244268999581673313311869984033810261031072823149462650055310240574198150643815889823865445572947484507456191315858483496362145728342160121550547185374478180720692167313291089027028379751511026763773470310893122037620722205600574632190411265799183130139905484630727844875065270459915679479217636504001442053750644463296839159846832863841801829287691490573207401627294886584017386465593361485806387356887402549600127799670341492871973018075179767436443882777121609200134486236032497670471613574847555508168944505960620410075386629608643811539729943287486931865199839854130440779481088752599240119199080358812469280917420159419235387301427229581431800679453584905114986128908605329334095297204829197198549260593314648834965771991721317068537667135393538361719450761623020967150239881164700020052569700108205438849360242564320126684273692763223232518665119543131149081640920092317604222563829105517810524040514791330725738207742789993235417080989710639817469787426854637482332342661463433279960522182844674914317135229893558461237981336405053600355355135139301750446779966810004190981704930142013682505847312143294692077500222225300843794114544717126125331975822875310664217789365457162127659903238501054534779680586998292210692397818553850430883887488720744605699675462445187666950778366930214334524818967325955930057187692203659799875524717580784452447728101227980677800362976530314846656338790845375861142995446084427462199232824788543235882566640812658881431977290746602927579502645312420409670352658249120574816803547985075067329180022075448540387741635835730480943624360136515887434990290763283614490402721667832858000926287656969825445087949380668794993601164993457133554460733807284540914184682923251098197553330577074442884958809036170487979001184046805491092255392030883354536227395049875282411981263444100269584250033589638276964919192392760771608256440637906760722412712764064448613593260578990172495619419667376490451677347824449175220448758163215795666969413195687627437532317033574069470967304906580516348736364731862938545263282237716729016453306668940446379023821829225952888499078479250889741491891217582717351564368138411488312910768088550129715135899611337716003642863685712091532480489862524711764668481463181163299748479681135307687302402548798204008033597195204815430671293275473348186344490384685316313738909688162491836066360719614846220784494866220989393908089627980683398653137544493092520930663581433194283259354092755977989055137433848048230134230034427238833187457138514488541456231223315425593047129268090982801643607103277094854477982392933758788882076675469155264327193876187256043385660180237516417742129592371471590974184237146849044144459174811703028146036999636758355623543958021046126702638413470030920027340720483411462304076190430110679155394018683791591679596768052851202624712895903737145732909322954637593305246881091225248004382612083181221700202821260868529273499694324364836422749572049009595410386565649386164228059037076149608024136512428173612169032259480165839680050459042449564548499988762612656890987650585820955452985423449940838460089972139626432272304831640256588280643496946031619376685954601770060838199927452862607839491471139946955125191740484445951635485435939957407267340567545135463874213203473355166230526762268511486654877835278147575525422266773770996348899913744775626464904340400726520413715559648167899161021469284005003710880126508299910492793589692239395483440957780980150781520629286732427916158523327603726667996596877426325100633827057564509046155673895775168777083645488397597574117829773430448291782339960746431286798613349552362966089564392122486849025270559875197007974849825060433829121868694784350841906625567338552892962396465133628916067789250414893592697558117212358402773087064687238127951873595397990251199586646615487850792192010790951995379496577602145145898194771714009247794643068474746089301082693911801106495353299952591019621724763825699872165374455987997885170171941478030498753545015748599873958427943681178920085044307957650182109799661124494594892663525241420514992761256192697155378833365815402070740999513532750214345406412299366272955623266497566402868350130619419389343126343293359841920370432771165327435085214867661122787294563875064690584849419147311479766062733516817462474495925765083767953975633895369793645621988422679273460026251419289098361928006146959119136187424866492491558137089029915309275919321793898567224303951732246596366685299884459441696551107686224466759857000156422244348206027523792741070937812534672217683020536956615257635738422719148799428733252704686659626392189213943621540516327535114158205064389846665173833262667674898976934230544144593473271526517924227124378008455707487247985361085227748309693281942161044094616268950792314367180937603359890217292419597049616385858710724334558612587835187573348762865896865162185210178061894845842727947702649511803726206484016371933291719193575741401147978469028631156979830615037005422184834830316614181719936297708896411313265740239111981635194130774586520478779260676152182839679881341660425314532025132976613746507785391608931195996254218553762944977976352173400539224204150651353307524463809371061957163438773777791969585723475124039086030309547312136635483273921838747231335480859234561156101208090389684518004193386861972733463030422680826550803667700566769127852449242717982919713689264334617545652984683372286776225733281666119578756416909175290174584776399951738228966180642899651617359597689527554078089304337052905767562179253886360338868859371153541453923669624620104679311915207897883954906137104271118050335558568292460589820636395813585269784785773175620015811490414370325685970045026391355356155859198743634827255650659231971393444882351619365296808736236330276846915258513811935868041255659729502806475799946858089060141278717611596592670957754797080074146259070104911136112757478991933954142843551595426954273156010023898766830323379484296093412138984992862827438626257208667150118626671386723771319555555963232899064547578534697713280631700502510599541892518042782858344261689178647978613260313001682417668626638914988744453036068527909411995995505743504730521910414899002956119153944405737402333160686810285387569175149748198806930804096523260205854603175601139051984863083841472256177373890352444263207759160617093164089026749757457919468198413281480623633749939217209492009644732221036841512629226125913137760325207628066329638754966251301445225385087823074983179777087648931432981478673764694344705430385607713697784739981876106494526616446313172263953981794194230001133099630810879065428061738552159840506884981526944140869841985099009624158516607369075280539006607580868343981798379758088156637762480863276681221024861292728632379477203867997258589298982938556710441261197164487230395801867332019967008808042697922121439332248085919976954462145299158915203947849032591582203274920945904949039191330945892456991649846710336838976395861163115774160314421298796896982202628810796719867688411913940751383737366910578076893192695670802687131724754178611185325546064247209989429252667569828592383169729845677952884908105799861422216060853145324934869235056673828770041465364078504003898071154794468508100101076264953815552676779762023074571457251423389557741007326884844902898107684270947841602882773781352275622874494068518096685471725068488308778593845749195882242856612273633572538555917496103084758334165312269595411991166965862739766038165452488197413649298777452911640927610716942780582056393873042050156371308525624806842213372729047689075277045303941772372440476801721467586058835141617976276336966570137426952120205399667416491560211630437985329692937484049657906000028735902224951332877106791729883422298608398172885739383606522945687019614592358495482005100826282796591078575310742302159756268377545099865422065304417224420923778800569916051898214408792413364825781234196127231014116395983652364438989019916302153741991839736379181726256362722286561812441833604376098958710960168522773032382594842151488823506994336273150511466749998647787068868082480891527453708199273399858184117745095322799906668024467577024573357144858354453561630024881588355859556137067955166207340255597641929905367543400999938583918192677909054340518511927737346983123604336047179984592346540369624938527044455288816492821586349760755317036611357496971664629424755211632194940478391512683005006836037097650960211208021412927661660650810587805051913167615812030935481999608805879212216332763897926773050587407149658689548963883347228448127341217357793497521149175037909687304522671557237390076080187302069488980845974460002535900048673818534857872661514166653522109825252030938682859265964360916296997935264433297727114212460856256516015012603941661528627528671276741066265012454751290921976786908872658398715829802912980964773440772856848657684905141155284370266320560198602471182821279550487112101527791781288058023697267267436338432078622017326056705951635045612204516754898975890262269758496506810815113912816848625710047131088262332586286503180494101988207981752404513261364107926005611376004648809589583291500127004148638098709876530390423995067869787621325363122260630696183536344414155567538691173582038970811800275144419739579177367892576622325514403665112110845104351785486310471628664987888497276415126462250092412926571114833808745639868317278297240050486788877044522383155818679153984328067586620604288194366037790730301797583170959845907909357657861876694408830748926168556852019307974140635804846849437536453410298948344720422205336886762716436617986645170990256632798060900342833254495605277036290522135135529230644483138276443105776870379307388862559711301795184456291480066456876439058637407735042797222229739268561768941764876593250208338361272230045768866011961013591862142084111365560322273851344110879776966658741756040928176631765493212060468584581699105225570631701358451667433414940772219655575988408196678862220270994912843476725459855601600800702714140357117585429160716526867839715258815048879008919217504584653226369139681426615443602979957241568082408130820411829643271960892343114047976083416880176400378243240859730017536466046797005283411501666364433563753951230097782507128320035920101245986220351134472424755760469989752994879646649747917984236938222098357521800345992883196076112972482259144755544166796981492336259772145745446735976340454680009728231263440863775311343772535787879892816124249272145791529249624978413581047240167051118651554044580051717275211478940373397251131612799606639521183362378545709746707026032259483299208354706443157614357331518050044344314178288384717895611255662034402610327007065743860843165541102948863135853195666416485034116403222204043038971580440599595026618914553063383785731054529435516850736973972627693472489039650415197322042605372997981031735109739286676218363841127565196613100531323114031148066515113185546230337270531796442710331239321678293196226241410931109265741247040279397771954266465300084193261974770784423391067779928478246782668146152393241332675663820755245320217631884237343425619550641951336623867927919068399996507981314672070299492389346759312034435888576899162523989680480890296244718888493805498271279227108909119680100896049251475743144282011088451407387318399932843395424316262504257373673042346352342457443781962054483488489539385403131434112414837029194594101865249276151073014537044088677330932415210389801644759981513257997063352058411892009416710843645851614319754613758945778557973444437019128574685152852696855034219544563216186692700491307086209370888614296438271105534133925400417019926223060799212034145636263008116592576939035796690617198829440642487840144170993811223425458882069397001082438026403890837916481499176704851931651648528058929346207600830447702636521276758959456735333418603216869445174923080921357213030022568017528503525803643739170395732656953589427476448690158386390692169623235833418250138567280063370244633486421787362369173935585305185190168321495645095178460023730461761532828224795195818109649187033813979589431040211113395883938620815780394001112357628531672092200258539181322471172639358961499088827911485059758826450605124168104123114655129440896726467261855070721844169907113447142319202904857797075534706439063889623856905538290917806813021169801971199870921566575173762825254779137775263901723119842863693674695649941364397310876863743615221474107110411565882575415991348885356010893929457339806107641773799624819449725665188919836288443309732664906975343560736326120176272265093963682401740809941193697544082097068965116774427103107248178549724716135385942054894578909488794312517721791666655111886988504467287144279943275708765962448302466036824158324861782044635070908959670308845103192841225278569859942227860860817794017359824792112636991772942653768668014771436873605597599627671701028948200786638754013955684176248572289968730491737472917355218271072861766779366798187910550876191244121497454226939244395421846910421675212833406412818757743005168691439492311696185006604870626300614897590485615361092828697993278178876662712389287387579247893688028722077296375519017350502515772755158331801248677435599820966913188619237405805807610822917941448154334212063950897601888786588727793289685620469945491551641475340182315261301850949437273187654825112907028563592197181510663706760838008775378853906846202310577345592665784136608169807432924269030865869233511978541023599885561599712229851091428197839922673948617094959249487847679559100229684912187167123920885515465192148401246723224850464377222978172734509969420941622923114371978178611593590577859897653855087106194257536286377773610325988362619029626169873721185259045198260894381706873127472092347416347466925442770164468172514358669157045245570532768246661255192757076175263802119676818723056827063496068557525201242549413978892038475036736718196377430337911717241191586426495019624757205823843924730424586769381238711342587327590719719923330492721023043842985604651964231988071933444030454058068547710867461203143257302345853568725458950379406841210810754096971340506415366130269919962199035129776835213496355493811346660669776320300792665804298484265685331213425918291620748836862364411754553790330111525026226186869102255305207828760239318824229809437095951128823914240007866170786521579249672301351628113677204643746378598127304990644179216035946353719724560485986659826788625252352862043500259640160775812333513357413479131120672696346304688805119997025638756967033962714442457924850393409303511648325842275620820716083639153174045468099946775096778308695017750425661772645290012860443349380410825163833328795618055395133821855417275109203279472416116782900059316871381560386187854268845422709609361035670253753389628625398268490471296309709457241851361297926841894156950723887096286450435015661262073265227506940101678768091771461387147194854497065191432363482346861103464894740843204480228470668286518475310359486312935813644830287929285137229440485033859639490238732082821925635425833628975493409857333655658860539620024109983367390731991758553130714426973258263070518863585301241163605252593212014958812742199681052510214266662508871128709999821431585904481748765437290168863767972630702777139341082895770720995919134770067451677040280260853919394078365035296718624495912111198601085518646392946775764326507130711898203912492205324835101387339462549701139566697265012428552000069764379167884209230034385569518104392193494854533315983659204607525090268444962011137758169489685503085933136542264301763079213223834649499070840614486044794964700851775181557397712501545174831460388499481583025711646084554946848802442989832193466099014345980930649916817035801696529795057730391756237857201321627398395463888897973792094153943016681844573664568839438489049289347044428971722602184435989883386412121370529607314882773364908708027271122207779457122178302497210643231267186533718388807912477538927841700602537543680957459793971432336555344694778251837083153610940500801496034920056199455850819401977317425651863542656075546511643196778955457639057247338918015843193077641155979902519896805561447561632679484721047009818885261600232221183551293242075203782049262859080257927187241310128106357194170072948985484807566157154091918767457168834203866784272385037817686918120556169895900217978283810206457019256215006433939999049574456393735018809595973619868215124557650172582881367653917530138295873414168973101920855238599345192773383107384227486651535606171573168334364636081942784529974500802564510495786212031908206373924343337730907055319427176662539521627609382415596727953544447338327747463857768641193882617505903190861060301277442415203999049289883784073003536439746505576591219695680709728444408698180364874279114075472721463896214177973437224169289040030816296812098681049956809522323113926261252300140050120759892401520132674896459817725620557433203321381603573960476089421865378370211849359776772691561711659273846963085727324557005323395053399790529771598259485676081817456049839223302057907595149040041619790284638509687370554576318905003372297192586198228637053993923573967099752307391348396771236671825989570352471344144168017841494362697917194851691016633517590521345316340800524290013900787709651705248616199492130702176289424491854474161088118923325652537056676506983814947281697569638446409448027311370371153066629126861594416271782125637784924211436903766691029925621202341461983323461310586569841249371524275915059362551659671386936031932101364370919328914925572045895506753438900770991848345211412125217251592466776878415930186585152930385240152383309400992677260992977230775920245628242054796723843764727417548982621881480266392039591128329937191342103603863149735776522894849697835851501322134693276799441199964952811302843425613353685547679613790141567874326609760376621670779814131888041783257457564111129027923803397448705944789779620856803135821858161178149921679336361311102108847565234865462988155663940014231289921346162640210717701578624928365823540247652388760832177844148994167818165070026007012136442050294351404989049142949393267279640910524708853147480469272167453394247962507205638548999296714952849005515501112031141716007008338714455489557172838501779360869327394717476606596820070154345626038571760309951592934332805567674826313589309348849643537316379704162446818079185591768494430849169149712904707933074687572438989704530071285165143546060123534401386607541108352340843867454210450178011068679541620440091405300528835303534566361215144264940430479724977832748697463835296534877309112036362141615941399691773971206821434462711400107249028511212803878487804266347488985568764819406986600007623357708547444716777061767907698885084569454537565628746458416227594469107388472983547764463563867189672521992947024984631221768272760370261001981894046868147189769819344510552572564290176968627282224627963938071891277250530213666758512463301852081152727988564823806762498108123389994305472798911308956099687685148571687626734840236634582183872842357356933499300281603656532180665927227775550087996350614707874878231039595113570906315841087435226177398064758736801559975234417050750597119822217106257021318000603540593067698573302018983462881369091760668623220183480601294818781386712786106768099567458654935754614181375845068601045687471316569357469288077188331479541310918879391191554105225322552278857685447503939135180935153521584035979777586569807048737636767581205171050569234497781436646065748124193936083667268033476519264746792186123443186313764956656550278528488303467992506589584402931325379432076460529642402112209379358740055539205300416801516605050366221743226035347300889329225256036492774536469657736624368403244278226140187526013760170250116457732406357928962933436415930392196857606805672970027349555497538027926003491752464047061605099997308088628448840788569546664110382882816378058453582560826203077036137811216841276534413716078380663606539314703094615527837361600324627600491372994578432401400840995026980753270466293203757767671084448125239153895832685727152986603722254296923444690237903727253019580669548861258114141793534465252087463446906197327184156727661156919121002683184289630802116713822109952321542238640556885515627909907412549553014871438473665244610902060392150830429375012578557413993703638788374217903169147385473056980541500159877944996768157469134619359271584749319022417945827842733422479747300420017582415426993412516517451655143423697118585618945339896024272828952101106572867317477822444752856855681690591305582010427956941778714196728412131914761373155196668892689063325884246719773524962071307132958718684603505422517723661145821407797197709214510491832111648679338339387794928267555625510673091358435867817577934163703987842475756809818590149978694187757038431752390839680299305078761116090852423030188888780413271213158544505319426663068626130873469551235452184456905367274890982167145086403544005770682449325578680198766657102910207765075983562576452904307033222690144636348139430956066480579955239083794619427832505015482464646414115278078546452965067502332768409397488402562171659588040899580816448434295127453620307382714767102681956219699175173109663880622648611823578084201060963501649442922919222047368209372326908691171086772359421245705254098678693396860045840573655087282460597443201016878628557008551759359938320056968824802551348067840452681464547923541247928276576818568510950330298275696007528751195709822317205659953865558617979600095673888968821470319376158738669694988453602750778321914841858059971244442165525713415348958208839590891996434957415112100621542616003256048089790836208191210249203115079667540341431875375939838455090391527941725041296332919960343178440542605081712700404358825192038709152277153460922199943353276049691016782024007461447765381555211653218721326607883196546410444159054590007923549580277562181674928808469061388513591367031257507661654213496541951455304545199352556150941950123571655851900647492946818537829478223342013707726954129421449848484685747776922565479657156193339957616823537162884286964227192727774790777556683323785221342988926657027509979705178171027234328966270815594736067037463480827084321606611267803716838797387766346114602058683552197615850803773414878794024514955695957456275891116360154312265574688184213969039262498938723074737529784367545132287058626570597766556321515496215614810210427606557938435204189190566567293030842083075165646405828302426383794097044271322823605689647542341855166206291778307734659815332833860563331898809938047955910772430832641966071990196627763520574392840496763751248247425723173775867472142405201517011658359931989689785467339310408486045359026783473053786550247948921748095195123564427703462504227036476311709565037512086177645103360162064808898766880016820243867640642381654132427012554273719442456698913633481506433780328661368303454005848153597000379015167945623147344793274488689142813564151857227109045639935438825832775667926282513773696727209530903370416434849021917709521545327330896098156706293377890315998450716788452572505336807612245785973001162361979211149052752193337322091877985318110614962664750124548724461914186627067182147833080100779704042806107305764204947561381601340319243425110339426778130151205991723190354222872871489850629125936704642120450109780899350086673634772412048789076028662696561903050316336964771035827385479750212208385426182055171853774453713657140995280822382447068506334446091525244525834140316954420520418917853547892474250322237866260342616564643414200514176999920054601394990237965524006588989337793774981206002874598949987117428684555053938915728542719946625100197589699326223403141412116411040782084579395025703928102444192053703219479132415681061874739202162747402561040175969223958632228885496063846028807044375805107158867565733924184673735858611828755829001244401111869518279932043211817318328148591008611102670988114038092200511290435850896527999227785313198445730839546815293909215417686539053639299162447000893505306709390932577262725371419207792771710916646679269456381017658108452874224774465653865938194966709547562280002814599001533275576766008228165768863184194236567961426748825058800399649069892830868085877394058076785985745539923689682029650850729012704786015280057465409565082355059462656034384102102254639830575728449842589009883687735819562685875357610314035257139940351576000429438429625427926886020511270403606815827343745489781774544565254197031211962525000070831181693621354551906380922020745663859385932107948259689017499212255774017177633923799571331786790705395277157622852853513493212196147706640236848044794901642034415309061808141147762899012738250965952671556754356945980672803356929237363415380205909411391949351839270129996426141720239041482573873257157457431604523943130353364209458369347429765359454876833385005945098962349879602573906014488623482732990662493905720386276834318131351049601664509089789709133153138347441666757848723955272449715137784274460036728147904903183919130998132320017428478116733951294318886164255270790173841965571457241857823607864000457199440042778643993705962676381157895672924047138848534728038655692440137974469156589746352578420048556457829171928625052529167902415467136704546376037490849769958232486922928794630101899890041145498575872555303687938738054824963363565353243176394173909171291381867953109869982035198723111129681870769359059006896956776998387235668704754571644683821794324598639703453624553470954713257382072389974263452076942859059265617602205692885448415605857311357320024147420880913700223620694827472169344972716471503529305241205777328760354371744177211761048507334127079124481911084271183235772862923107906977934515574643591420010880117705956477563550508508936203719324238537991732547897301982342178293213861266345993268536377532429716603373794237425456116963854956601230799122199120474561668741324652572788323255387838102680292595145626514224315452978658131497233161122932949891018716991553751453285764806681202797436942815424228120424214225889522561365125356123019012141340420785868824646683226807915677007514729502601208811837126265407547508876973623703977162656945353547962462952880043553980379397761027067296006968971391874421608542084682640274542348768284508924796990150146399711798260357620146482372654406662630966245120292481754763918069650295829388191866258971164532418858286954272947091272188961450785265426536555749461246702597661915838913361868899977023450754868567212667272620812119572902258320711160953937808021807223028593127412848456729710141069317566012153859663505698766751259049375359077213939823162975494303589982538272660749723017933544269169244740165013004837617706532783222732300302442865340248524450626484754387692471105543596484259029042664554710484178407355644428012067668443672919107167689124396910440024505955484967328082141004536843254551388099927006348683552051334076351428358796490364606569085886306759294366875017577612239182049767050457725974748572236259930536044700132255104576092165001690003087824244225927890702227975315124350252294512338261450557459968428655170190140848737335352894177055648535465618452473154816646111455976336973557140118916523732203469288659953223698232114491479481399737898777007358918296287774143668952189955168254127743745839058300615892295793981952681080209975193605533561492826959595478456177521975143867339998915952878326346185128687029187096036812011231648677877459307492883865033060572317070014745547783938460101608670842629379082153260640141401520657947715500083399976291548273407198132126919600619372539910661103059824606229362748960111332135663411069790981850095233391596521711280252398852039351649231414374116033160143739405074928805937591931684433584515984609400282403961034112923341926983176157764802590662554713296794785978057745527999300056017619469323471617717717379093206520724305237466512622296701667795881123892063412336713427134288121969193103388176351104744209642868020218454291562458378183888585740924565711909421294181383512938539173189868861187128473302722906351592818346649408276249748781847912137687577740838590629765440392800098806137291235921297315356742929037125605758736386099477130001038003631910697720808586135920429942977208516683230173404108991166839500563020862869819448618071635050359894161656022335277473458845029913355953543641470666915326211073563353436233856213173954665863515592369657405158378409682730674176875644915365742395411922736005557237874819107205979056103629009820554058970019461611208456859554093999658905140384831365332209315855271372186715908315790272304003244308636073296432312448368647246476297399244777891614748020824063103207835684300112169510745319281184016358130685502048672388212403509478368846843878500915251704681970059511977146176539080261458360281307231192110228236702536339556203695159945671841389082557333745018761376886623460630762957586294122002668071398579490642899817486192276506330993776189392441666695722307023217532878122128717586237600657423681582343405834617631239410960126127184463993973524723796545295113258422076391255275368586811163167800868425519762523320970459416449972570595819834111117131012612040606339548260570250333841674102715810775124970743798323334943338887325183340793603789147258050241177151691047487326770861164537917460122762048050704605825073835144315646107414315360238100217692347922424236945015726302339684085194717555031711271106138407545519090285167881921763076352428529793211746106309120999122968852607034926203139614549278658763926866444763911815611439805805016614522273917883026264344216179151313416853656835841014552391305139494234412846094935270415465915909629737222746107492304605115393801872160353623182111445332954463453079334380643858511293695546246260932877539804469321695628647000184515927944812212913394413543658327532604380949720467848455941874320807801795638677107288649501273748551668657611456922732737407457994753635197887965201476239953589577241329040567520712386687256960203177144650869834651375399548598288182050692501499901611080125400955444877871995804889985244289895540881280610051023306362874073065552673430972708447884997193963741550856003636175295081765742945941189377646963812124357978123677423832988240429244157231696489208985922202818965655427784955756500104210255358785350530241567924353010809133298773502536563783891665099784427881419859785205357792702022617799953612003134536313474714473459865387894949326274586021389394714793713514837873864128045284779589138102863449493325753230283279705298053430497340547366567500640957446559639367288807062164097716681294869573297460420634520298175699144845404094484913004510528012197535342039628713044132890441773671080209492982029479963790688438963558214198522153997261242880401573670270559750805251015855845959417680303936530827149285191607742776318573852371635716360609790867139302641431266429195503680856429402557270219107671795010904318490168146097844529482043517451640327396738900725220396178701862896448945348749979935392575449232162493273261978234008599199666063897955226225371445872088905040281061765509382944815029640044373907716090603980650987179609839656525495742306559241515301963187954307106591718407678975537085529524796775332424750560708204582112743624429368883496372484010236364707210799441523885658713011125641233991687959543612639303601387419615920673083808214097818488438416974055719210034055822726075125804338747802453338109894631972656596526748959650524203586934189789234887828066499027248854294827558080008173066979272748922927038579562400519900231315433976534674502105921534242954819557592649967282114303313781656673413072227038864513134862171744334568165228186187153111327630604109191014763861869185459568966244352139094156400760445301875038291310636305084732308039046736702120511292937851277756773404256122931367758916170185307305032535903071470365873610596111295806891286784445510921958710401154822071076090981224336193554390154134698731352183000830775614907612730582999786046338474708899130025616294394718360277914222615436250583248069256884874335894686657353394752010431663223491814902889261211969972889804163596147955216729179001763715061227340496255894372099898813657990738927248776112505210146519644559699897747712769247009461816537918173156182247348639421764393796701110564062719242479403802056556145128794093543815725230195563299492593047970659803490903021214174908869203208896451685287445265452619072990689574723089504598520362195955091058906654412194543054128463175938341056597383853513256007208981585547051466127789011296610950050242065045910984496808964468635187753205721300884195607065907127203969414493273020729810847327575264660685925961466311405613714229108211232567044162816607194345206970685595621350715692210660357403399561083113538799733601865335662846852264273450239117678848628074664737349196532082992932758306294857942709275374663241680918198326722604667385654860190896677538452151541031255754219775879558912951689283458396490390783557815269902323394429355125042423824671453922164434488478719056787346233479756887825933826938117051991603457169279083312889411649577051253987809959950701956155744022791377346614930996102973478007638347193174910440315724933385628124579593914823099223570742841384349305982168510612813176970108635072235738762760345224111723671756517558033583359876176531161678310536947228036979230826479094935390828949448564536069033349579181335650367681740737662852482270695874453206865538682293047433887534986122968748185860608819027801886182430739525562222913116024244784565572607727423550954492862134741085490591002284029895929948758678181035759017546565039711514065259885870767056700480065198260756748199626527043456149167627384175437396451783367592953311460976516596344646427950285802201121099297816311973235609720833514401890087698936739293447000200958641667322112603434270243056610025150898314250712344777688648639111287545368769126086047308521925142604214369325619962663030117654504385491511609698156840888703883882584681514922153744468437393125969712518755779684253774032702899011535639552927762461191502027123351929319067668380784549738420911908104498616660688276824131904191166599879858460990345281726859710642787313474429612724288983281884532358832375645081984919299857886433487458918793719893697495966292277397785327691297830763840153190683905409049841352112395039218361167575642089093746163512901665841089103696376963175267086496822986646743222808661487488602689245782099288228573645117568986348936363757968900478155131366685966983989960703030059441171571628128146087866460523196499505505990043694400081710113787983321256250741298309399764914348670710646825174479381325401664548588061347381247703673550408504318737743960872773286462712274070964974656614293794756379440782194589677072643742416425908521653544101087801069738796263122543353370436025595183821911290702645625279520353458499462965280389987543938643826437530010970838360972087470222573213806762480368155499084265558903560204231438418106949900802373757530862625010199965756339503922910755341125051528033349544392733917043788802080756633996955253976849892278654463174364995294580190808680112960626438511613209494228622772358813597868494885517144677004996709918792884282780776192776269850313602402058477972274766435125148503069695018385105500049075537513896945406076900809983955661251309803611511382342781172547032996803849417501269862197781334603247275709731705986939923564755007349650507727166884887233916628614887282465167554786965347113938717059094628030643358137248512165286584640780176118493936075997587840107558989378471927016916982891771798199163515993607045317887334382874906057057822803249569410796355665329630792645535218308057986629010199567110543224888760635893811842590501653700884154074612796044912448165667045009051282148476423867804673581496814439269453183882483418836736907211765682066609429054073408556140045130761287980843719373149415479147699538207526365462651150380403789697402396010525357569903932822858236872157118053187264272111918079026367890591652837412269355057393701359876749133096570925907180074376791625337924145189695270310455669032965211623404564624866099751657189023034764741905540365277121183140094645155587473444979964561820087534436697625655035749135612885747160174477693087155755121171367460488700884414267878452593043855372912024439619531712974992819941895691893041631177862877955997372859578119772708854466923964166429198118824840349906976101344959332325072048542315154302213783309538959262998873279556908538142872400527598283367343253678866495061881708023954057595870205243052612311324351562475549072439007843519738391827792631900751209313316619754448986995564203805927060598006697264546566943292527893187071942414548622061489157388589591945771206813384938345589226715124694090753313909410827011449981042511857820443320177493679493549024173879602959792233827537614261385126746371756918249540442871742019636833516561352385025279027092466778495483825076283532103213580253684509319063982804704326389237027972591601486547953314917760243441424577076589671369002415290098153531978821513833409951337252643791803142387403080875326601150941175224908269258630224952825643308549220447407285506405572935979082236638424252781015207383922755313067080056527832228368272079538158061509652082188741012959417794539284390656521305551379991606096157620360707113976439791681008456560513094044710566040726579122044905744866485826936462911145802924602189122771536980193500895448369364982077165404493662303730612569262857138723206054073405227791326235453645141857028108226335821581410138626067185306011270882629585996350758855115805494869491509077961322371478109652333356151806636576787499933275636928526077536645402512460475845022243341009668623077604119132841278871731306790039101734890252690853573046932894005773233254414509353379725273332110479802770265558849601594061635585699578086850722288582109193879227443773828297163791568779601817475805676300792265756897980637265838440127792130672770620405495715045029597493437282991610386913397375933493002192293735137575486851526510724049450184167117501169931940585007416228389859525782136720822925347233069523067289614148629712773537987946130046063971676451169633165403724947411952471285009640578833701560985255897768922886134412479457147886122790030831191316340378996853626371496828831846333703681990374183512025184521618167915798460443872115301964394742131537765372686116353467686836880929141535450661779810969516850567279641852153956060402728205695568175859130254376110274643982984182877301275564879679407220601061793017290110238239035315338522525688866232699333033011877693774871287148171642272268352369693103393674058501288924238302404556969603990502109660818576774202615276184792700074136461940282280173797694848718810528422750602538262269529989138977135058834920523606392158983010904446680595504821145753549621137489485560141481088723651531827673912519301174507146170457653303261354016506891359225863813783746785393894697039746073659276874919708263778616770878915437707546365577134952619655857561422623215501965794371007589116109065540017751810236092121196786278937876485215159339244996421820655898020880193351248334032919180558670645267932485903381080210490678763403317361137611480389468021252694932123074165124654117826441466195433232417152199019307278467235306775906045259491547219477801714133438641309285208365272229997282655048300469012970724609345467194732510326156775173090910832751278671394732180146545184806781686738334073891993345952204049479790571126676775270062167835066747058666948546263897360954169078129623541678614218950021264297174452783019468558458495413460702791600249572718345325400180888121934997883666641024757268024389732339743018186405919570246893946671697463067904315440271913791223263022575543269234161241594579729052507717580900462921845254738794207727234088967758014404820232940015705755748109929736930469371469338292761850345464636535973201466906674007153640751600760487742443483310666131273521462909057231696720733135395401724695670666788374926007524934066723125722689563976986741626266715572524381400626216628374667174641879459474587189200043479430269771999116523224338933030960258874497088309738419039428944753006957141130868058470582419102944993707574933669532643161960544061804997720484197427455277549982474763180533845066540585331060674631594856635675997637322718560272241337114776484372524950844936127141303723046291072393248592082702097980332010742918759515361811862448285026573477067382281053872538641513885723698349253391389452007890928646471753904144915948081184715971378753133604854602571374341942629660896773180141371479890103280409913963276786885400406740703651033890341754298195817720035406344175509304046170514050109761138554560828298687582547094686405029726757271525532582151105599242648444072187085488958403877536418963898573890798132242050997174505537154449903834164428195499912094550464477591784823302683563271129502384788714979127412242344822094213705376594582675264852141095445235201117323477666383142909396128513718409770391841741920513174692882543896134748250091579863958704560150211025361719490452068468035030243149140701504734538312162854860739562260613178754592325943523538153555512477781526775654560371781640445278470995954538323597799145817188398973888924551550132041534820988569705999043165150558401037109424184513635552302017309524984438336046522534129984587222277136263668930897533281920167633781647735559340873178105207053017498216397527457784326583872641742931652825118592258055858055925209605639913101069819294875950458905671796210090532857946259463951319594203964162398103319855651964704335004576954930787257987910420088230399131317527674371095638497063074104861835141854014839541916707977941033314486959416089681670802425072939195315892432112939338227614577344429372979502974327975227963369958637112983912465704050611664575678879278582997143187945407899811285607213782646045112667652034341157556203507205291547466442320762723122690454333040928513187855805745285610351556017346482508999276641175236674614186012546328215338882877662233174237882179931991029847069484277909292324121480700059112631255264301530508228630649376318496121888421098994485819838705653625707494470848111282357043849180977621102618855210395672091624855335926602220226720925386895926561406389139469321974142466028369238276624705485166467971417388596266686788248354935514220562632039467391494953201303513461071086903770997680754268624196128038281807838967292915738070855880800904913302264762031974398324288200529695178226255105486132298607616650425516026178600589741666151609182825278919093421772942442189230941357948546344189443863605250941775656519796259051567721060728687077755444152474385791247846960052701146757598862173749007607317615214624097132095531958906807036303390068718733724797266600907687446228621519248341923736189438546875516531493959436643183899412430103352705848382611504346244446009013268622610491866833917618941038017068509387436085684027793301640418584016249805630630540197897373331887445821831641106273061314514816438453878031524285837622559489275841550486358630660969707393743924962045174763747038852277042749872036987941469677339733683618909772506268376280808290544696820614808800305142804664575367569645216434766746756900159865689289779072673321709994840717903944986648990802487918504360833378950119115627743672346780499398031169363989298656955392940276010787099122911418354237535672866093892075542148796555720696130262526703549208320455854117513341702382354970502788019962416394648253751345113809293141988017722728324386122662479287566060656480583474946648495907405997697587118705519354830954288615877807746629942391469266826934179417123270189718190655649174580203925798369416531310778952565610356149904786443868315952668943620357044967954667060897069506605625764458863649842610412061160997068268243981260086983806248458352243253674706593316249116465369363800680786523622332980499549995822561868816432768078303710707040877169865782835019923477198153791943917965080679181861431499848608441340126876857894651522759529347620950032014990084864866208104803403051767311009435969155795790544473505904906774321777923312761953761585479907026941644991323758750513830715557962175384687190383182788710799238754817827000084984293896508957912916482753550848805677460232312738772827807454837275445631682147040991321356923962680473346699701778956989879929875512320516575084483560129854573509961787618355759360886227874836997402140468505180100442284400879691748458116604014149851655662517680344549214153138417281201106955755063184657222759230386561168815979201042260967326182953710939752651523208974605754978343108473962683196183304015480775908506242238824497893581760315764759168179347288605781104248462223047532556598852130174678531998730334950216143959281791351006504799228335201651047440843437428116530682490889029684639325286696061774318092364629478221151943304855764950814272306577933027102167854950994595159645364363690838878777251048708290657118877007557090175366321257392960823963761202236352597031786114089823878066073936885393744780474450640272800250227599004097965125146963827948545555361354572679523823636221898984463151331915434925655691416710090447679865404279126379135044189894780217115421627654239903804361111535893365446620371927490426351093449316209024446773017603596548420309727850657635822230648078545994509002498177994113232618627252003269239306201915001465772767346087177065004977777553381186260478246189496483509798016305594615510791828508867669453110920710303563020280753077825209330612168879399077695009088622801700650415016249356175544259228400549497803024182049678907740884963056806943110110078394129734474985029006974759878981795265192131098418946453388777500663325573295005074240243322777368269111664141152170971282607660526033500686948004763912779470931541869127589039987678119756058183097280871589512045810376150466974144914033635103190261048082333135610640412854959007140735927369147503604258826218374672114416341066255238734264148968099590791213128898425574835887809867650219353837686697196960804877802186412161849551422877731121857357157021483186350198432486917736676711376271720404666525397902960488784284857114666623687077314300154603554466061042593855721655771618264120669054331472720502770845579135327034989561616312155869280938094664320902453505173085215991134845458795475826421015321550806689220828481515091677700830885880019604832514263178033281976041898863415828780534032300286818016101252581718746214584669429794173938285409922070228682384970890484678059166239219192891223144239297490268982265445999779525672935989645841961352793094011875409029362734599450655994732874101208359016665129932486462981867693490298726706156836246388804165536098742616203145928328734793050295652334656192800632858973765921626633801597880779387621643126983958281513389154266880202385508327174524088678167497368431488734112037526478886335672930989037327417222779545902510765111497180611464841744897419948375175510115732709578064996647791781183152748761076862146139274932492017740494476589502653886554301454043621532602243108116108682299189815942472523209461628878996937510260000168216752590372100821174627895813266558380407415136131021238205855818874492182529000392249993398218897345131311853501169263524095875296358958108896565906459232768663150971608018791317266447494613989402874648018960888441784241137563007546270102968300746109959064117769737322259365250311496823326210907826591120847474987698301025968428450266645100875572832333018582856175970279288843582610624205811350985849376087006962782936094099305005167897503458590032029305607144968213241769893143250700439002622099086969434510694295038926255297211351821862675380778386137161548222286217982511282987819293098074567129020878325675040501596166802293919534860844389043396571612774986192716642927180798288836983645719956760887868868594941294749943558224790058469138677271033729336032231433278372930570110876209681546726417629143422883879952692174239361870616539384524958478772844629106837873632842053224847487190126416771936841665356136793893543637648516598704019811516055997595275833627581379128248109404061281661066854428806514847584409683166264677864741408203846884695522902814868576003835794033833391765473521558294836360348811663746034552593537580162416609720276899441775192211771622378548509474395879822188909858931741933380957614645858015995603999300119823364824304952066999901785131953331602829990830492071290308561938056099525663356501632927788294675268189289523132511474888126591742082567280443127817310969839725320853637901489435206099395005736384067701538048201828463933233829708607944349863051189743766117102831305795756160036938695057752078774499774298308352688003664324547822897906838291734250507413006903747804707637362737986807407233314729333186962996847228013809772291387954652543156990125682508377965474422635873333967260298651539629192805482533313222453288048399669085040714816581668497661704243247527289703637682588586207789778894683420940522691032331979497468693418112205686865540056945261398443680866609107946905482345875007817649011619017588893128963656723723270591460571333815390474852941347234463754860038466792235257314173473667046984868860938657989667159325073287411764863040728097371328888722124684807112544025737688944790765085186766775080510892188378608601137468470760232074478208178648973596015284625101198699019477226977840373005658254986512375808409146074798483374373073011665881395390939184702189271215063236714099724087313014026938857183451842036931631395367891613690916452022267018895503770103354505116387280751005832294069104325975662350220782371375465388042193501645267354924380268405726944217987937569131032381868080518085491782582925922920352907960435425913506776325838445678002454920969135674413904715738618078777821327624106906043236924359887004131588981313593888119227265797732369681251580328832504040272583807556449372824687421160875087325067578940197778286549566924139470392546239935535416479864235856833766537486101045598188824998766397789108514672382129141510566651369020332676220971600882925242464690062609481990621639048157976733216921804177206391703568993232423913733503654530016272271540907797004837439470653413465955281235660763535231490385749096812910307390004908474862020770327767046081595497039209960755659785806937488991278254824467632829561690849484557812809321528471417569989233829997762652095846535751249057590380086779103576428115243383221174485753905420410181040344408993581744473242484264928028833306249879990255022741383396722554466330581377654500786892413593429707760964257608101948091588028263903251592223468706754698719881094726644451339976440873731852922533803466879428936018146530818698869084737563181700680753163769664661003635445137397742788024728212753658081804345010218014654085809941262121441814160129936684685044014208090601910486471710082027840665268799801685341255922358019051250999427046483818482299919908782320846395067185317306774590446333313579370136883888793599552847373172599201135425598345530186496021910885283130817394284930926051975604305493592606686914034947194381334444419667974963901186023109724965642898131710990587219975070440639011819157232285703110697905934244396158372583296993646438359538935645341177302670196254070127536078421008274255315788057776502901729737363057120749159271031475740183266245449384847005080070866682002084807854370657066081014293419973106132162683862253398880395708920194373759235190692268243904336071486157717037136001202536504086535362447037342544850318303387606623504544337945241634679417077493905722594473482836524233298655656706411037276232158059225077883731361345122316985977863947535404263554054179359759693845499192314110814497165566561096103842048078703525089275344021216908442397114809821963153325362190192669903988720396741599839329476833127246609643805734013824488801855424539077898895800243440520733455077166674123144571898736932399010082249735823367976643582513567062374431073937931679958245876018949034506911802941948487457370364329891801984164144622194009630689734816499314462727411794745383805574694939359846772690841193203755876408266784145246415523103131181804890004979700481989938249951389463095757385174896973217035354612568342789633449599549989089727261923933285676863365965528629722868778307025582281491755741095107024262714960599435749718756986095585594256441042310946371384513977638473798178225775799957597355644260791349506232525171553730313571100848436636958553465531371399118455556128851972143590273693789261839404118345911614340523304110746767078304591109159903388872880758586662344864121691703309860412414470880368437479920891549937648642710904562767101943657618638662738963702311293904780255571133913811406685353563877798916352414859964024764819491853937089992562637146024945305590464292031068218944370918214834685835173415713691353385825602398634752794097032084615626477422981351068281513913330523312711537437226689024255522578052436251859699901585350017752207904676989216748659043313605665328162381209172608512245542097641662696522904289248203274477391280409781301547597117242423356622795490327747842844676534218640171893922810672030467849702862747741112871600803484254222801301786992647026884413403070873427837599280703915185580904248013916785474111267386929815621669837121766555259147846706173249727922376211297664488537246643823035385751234727673239190060945348717096795962031272360156220050426845592585312067260724772282598835425503856528838701735367428528654281773324254207458001750685619080950927582045178417754539860906771734909850093571619186501485392713791152748493181995454290178770017489672741394250832120706619324213356149104940554990728991425916696578380046860307308115695281333200532977070337496747851437792487193809233046256738846134734120639364465579789787745800787434253311063670520900100782237538210685608026905900564836044668505080368652009536180518634922841979246191651131707054555901565393629479287443095312436563887243810984247360188894508740011851651967413713155527017956084196770607279198304943518593041166199270648979357590803919360533000574350516017406138216051966035753548237912512241048019281053916995145327544571756029172522700194706680875346091299432167406299530385245489649439701380314063319836562248071703624664463809178928603859728284421816565908176886499887675220238534141724314412795751341132306168713386980046838291991921212318721615440908429156690346798025964350850147114049177607839243740414672902016593099322621926460148366554887378045297699837849750135589936867745112038544616658435706991965520290481194300695824510730182365622511397569843284380892490738248938990291404532975461668987530675083301312377199088348459618476489310789574876448180063314976480067752923732864466675320233743273482691176043836360074387612876033936149620532090349713920602194328291364235893364116105510820080906566601582235752305913228593592992369271495269823366251379775688743821104356499004822814663131138467909671153027876675670874745973109283994293483774923812545989316451134014807333327344889233273816983262163302087773921731821882115675152105787801678508217417659911867730475619261979540256799000896504410297685633466887208658371128947547995199739921822039277644900755303308715346478106666580425584176333638495003534120313811608731543730797651975630240679931154390607696820957971893517608566521034763737470024436751914059993850451732167257813297423221424519413687859110504989256807747939316720611949535725186245283887914529863144393219733363915049985793146314531382413764923644278370341038079379646564085470443203406437899520239687290930967544826402596052015196538579895428792172739067259015170846751445249777899102425130774652950983251766672061909911657322321025150072853471073608855239709223178338155731629181883501859652490919713092003439094490523245206377368346718138739643933640140724786743839611496565002100502943921069006949418749062692440524097478220601459102082020072375132931314176370605428114175494397818845237977810657713531170115853900617622724210030764760774452822113937294711231202789302303948128692102964728971498879340124507229674690564101395176241877503341104063018806948935471563207464513140227204543155195089084236835167569494214938987484324943848598495050925863651500888250851777743832761016438196470096180925754215867314635463043082957575427871520352055536652319847194754098477459454891331950022836073550203072817256021233223916610095798768204292817719017004541886857807704392331728899363313686508334799386137425335296971418713090014853288715661059620960093920280039174426087473158180616953405830194273484570076431739679092265383249208707012045102249288739060502981288934824955124354497212093945884073086263972810364564110937394089375108244597838077272118410627368409331716697283918479859048161611554517852764290244624674763278674195323943254722244526379261235779194138625652378204531226775509758566379942961411623018245837015620156810231628709221864056773778940186897919162971144859909512697807622032714753323172434462787909346864798752852836643337640115803597205046440656109187753388164740926161673420754262602960973894534574654260756436385914172356407844484511425779950566799517889125007135063890591093267766369644815396627500569717618063037706606714430921041628609471375180012106638831256086843876764420807892279929172940036794555233251139460718375238742510647319481603028601036783218501446485450458762217976007018728537455873834550026212891710333958091581601832542158910508130409002368609535774546008945627098074216317705246930792234016920831524827913291993267749865044690541730265629892019569346363972070504976986760595279161026587602301213207562498254339067988933299075762579493754121549947614440351759781565012568373202264864009944767429753759738521560457125864094494931775676428777357526876037784611275232190358081367202016709308561235890454092438482979974116917774990371161926427179733941330520743969569437650752602494212439858088714832069433468229376230136521128410726783101967358321626806329566987917384622487259947791250165388274742323739822236083613235480367837789023468674273653276351535640234302448506438993743878467738077458616607544750975215085693883667864415877186210691530175997512280962471404767422780260881385418841765093301449493214784009671869777775675763496935120557280370071454247248634071444732682579252416305467183342272741941458177505785593651590965372110160870188196029611991784545166383858777311666737273856971521069941111149482311573903916970696978979584957419350318662463548915766101634401490532440341425710623769086729810596966656564133450480270187038110165161285295414696620126099043159933566178988892268869024373129675880814609505871830720702660472780155234157734947584544342282152389853017501015191349864444018196657405186969009158097625031628435280055807085254574923808425971493814921544145915023740523381700659601813079100805754342152488162088511340717646406231548300939987248947306193218653977741494895363863371292856078678618083338296215379913057020309195652010638809399980577511165920990753947244657570440904665417792928673206067425463913690788907211185202143607186781779318613807052870591292038252899889202050563528042721712043565084236863829992976254922139330947325291857556636121957256516114644407206912407973006410187557365350844892528370560860441194796120698268917550047662086153304961721969213234837778568448283066349408247248013345461577977918809464504036585131378996235052830707035438029050263573797228842620971710442799519470085532160796795824571874593919851610916558024445922035293505895699580971389000667745613298447440817652311069461737674873157492298228286541477895973434747755204688205408010018090770372288141595432473477763811992646575734346432099778716763959013547177139253248347524074787634531184268217399283523972554072875682396602102404681967068202463395643782296673325625873591953796332987049975143312025293760207658630753817897207019754585245520040602639026272450964978041805628794828316344387821124243805098011387540832501319860779518062478991126202967244559929421501345260566885470221316891682526365275324163294888535221555425455334197926191662252841184177834426381777628895160069991667811542859493577139484378675958020633516387468962940766956849234758083110758569218374356100006124446609198540847860722065090595130805932491464784047154979165239438682915758763323363006025672567154024816710658638658727979722259003277844270824192776824164003674595518468765631121890241757308531104748196228805746929475802489909376891748172006688146563398804137120123489598246089117138390652999305626176180185734995201597786420877663843331265165888456471752020310459047419431451214194137378995369455088240327616297307948088690667121424377769418767791299966224614852912697810011002196514058661708600129658864615021455538686311158009105690508647835585393058923869134804866055107072707460826234805774093262060260443042664915164542179576563608248395217564936699027054952149421705597228612674162506761960491545005187509755116566063820975370368924749439517782619805733364096527921755332031337794639411623092706481968432785571089255914464169098030444406656232131475679495853235162720118060275433568811648186092841657443250536621835196250002193546169042088955369047634846747748585614820406992134516743717315036739827163322771932796176992026348767381534551545260131438425076991999418588247230356630502847682479449808258964655180142423446534970734735437667157359149187258463913980332785847435694876041121930204091803391512933985268828823381520530315393580373488744941560679941822838984136192657369466931593821849287222521846012852349387167701047344326634622855001958039944498351826487787688320166795289207832451554561430640024628123676212863612548136411418844256709379760201062326417592890785401412884743466709190718101795457147153539760292553445281207175441343801127791286628599786108427497486668496095904013801872866393301268012917292023405219759728146589607457496776787711872824172006637744882816621113612711664013899590925507244564779701498915789685793144551327165723205448190550426386712725847716351107116845204260581453587437262249170438603916740308356214593638079419098356303084214756400661941122108037132370540044102096665005784960656905092949016137686992433668157114100621652183657258935085193630111091145396815486717209083995270734726025232814063844342969455317841752235216014817049034434477813318043353382630656481902838170210614994491134512152658212744972795522763798752931024024992094254316847732374425778587288800556892712450114153957707351243948444275814864376815528982875090118228131995189431565772334782983275320913385184524630908146479611091549431405723367334284521305616397715083861162415648726251155248965693586063452267944696030946583645234050035094896530033550690505183937617277191888372099286012383656498171260038527565083862351495870874628948907938800501915952687404518241725121692877135331563830916507803414134476662709998885782379701028319195108493268753994079181013770530630445389131727418167246710081020387464652007905846381015363899210346774724089554519374216669079565093978401550074073491748290983087903914304885022059217949554692600408797487974055965950613072711908498631952683346795156891412203996207243727617260605625871279428512864329107948052529910052564649724087885658747566842682330374897171550432273854623861423852348884473341625792304416295985306832603592637794448439996862787229367503689701298525368515082082608514643618711375665274529845850893174793545048485297887625491257168970151791921157036751806241619035339524800728518081218817187733191492088751221336775640708397273639610958689515748940920816559980002467133422151804806108930380581051597176792146150330853062109244122179013984376627352010956959501111881448261134255599357484999264778792346993497869147079796298152952452050787264082892969825164333424637577009481246736305790279980854295676437649229884801339428491199761180262936476669363839184118507073305903456437723442123777285475558998327377548234735593018404232618614081601573438953557739351284978170454821550942863685823264471281548549609410173716755089425693111184360812635689706727225571523711221791926357139189815389708275875824924494724635852394027970602697129861887250568589495813746220479490297707786631625024780053002924892565812857525467552743118885279252410415218519200765157125384042088843445667882966612645061543003184690718055966408357106954651586693017290310798050062652842057070551927020864820773525800424259967134587140321673223077143671834179170598002213346546306447102483287230361818265721704237847586522035091730225082562559249996366112686407482834005344750797594443021637982755743686339768390367904925972466562904029676846523383255080904678309486159326152549831441923819614884501357121605693774942352577660706015143548385296286230812083697726337667925351830788620406841380116092980587949297244130384684312603109484794867770636447427083857635987527920368607420320560745555070406374159216620640876044889788493545003177357666131636606611333139691867782327178754286760308112957903353804660781593312455320540117270469128046382648817124540298461681191958656881275868355066135230509022472397205189567634405036669045305806695412832079190064721333788671640940734407974680658511429895504062126405383739301544479747967022802113834381680106476972983086119812574617954304440236290697463037724245118327350754993719802207935380613178489737643617497001960578764313502026666058041723190366320947708623788726574139455467897037041602753501645069549472520757209236380603826549997304082783273330206909559831315170286894121216849895125257134053625492628625269819862599594908701962453741400897683203341862490227545814294639946910810607236034810508871600025599629689743863402519798123522993119620839303589886992448152414722012644888456872500659793695309048322784453982377528795398568724558124880576233717073535668853411990062034510036451565027884025246127333249278321539850918720489785766093889526770582872955762426685459314563842667281864662677416845489994604787008580258535456542276117357521847831710588780400446948791720227721949974595602955082890885873295620223466858739481664244638103818239518930984301547628206941111401698531922218993193641633724126653241979957879387423644233913419494810622983229224869121085940783414917675697931174582645017258726718187619011820374242882383028584419083631942805526665932215732408952646797317062037344549837118756913251710924299312165076627521972658964894774943808581892544751338461699667604384146108042246098320172086347020591300485600320011330594477297019259486266851908691901402860174215492907628663484896896360241281648224977984658973440046116635508377118110107489336186528435940328305568398232025009692173948065811299923312589751009058174691368867089679371813966453654559684032068607379858921510188680880212367545514403447930560554475200608942649299210419102693857168756586049993061890022873480504879394822788917149729204710206319831992482319986356186404071390814995766625455767598119131941352158969191511177419177724687846971029197718126814483890378729172928774625057295441114095513711827441885833017658662232207185842660982067182598356403650987897840116553642284821415271980264917085275791153149931364833741081566665111642905101140006763870379779809036768039115439765760398924093412801256479701186038096024527883216279361053290571496335137847187914705616254710808404480828216141930942147117166688224621364852329850257697783772997390678482318192529664320826610945044711439121541052769435869720888898597403634447383980023975182545664977653898489805567917827750351352947684942418536020151337986990281338283163796522184191863132310876022535088733828570776433363640571452745804232586877394593893307290255418959109885670479218624819336476025950534152965910332651680253213056460791018305537716481370679788041884163418860132258029413359793628907018649595204577202956915912495733476794897449391411184937027381693238329141562915954285563613896939703583761720472015529386018435259081814711895281493011060633802817235784398582793967943705132687269367184916217413092477614436593121358965572675229704737815534691329658553874293305310669454618771320156074328065929009008564127184159407491074231799690446707159397407572519409182947083908655613891387429632218967352650719370408071668250970374839220774238949857857929238748796914321716902789002776124509342214660539545293105559787828892977878561823166497394859867030327798426419301038296842864003372591676395188107988964513164569809340376417352787421285909289140499164424907064933311511325990382952642106224992344010062883237175528784564423372948760594297049289090713623079264963759907008664605724895392856600818436217683530045886351976446458027526187522621492763865476148928062786611478567041110823584318499058765846586849205184042505198657149477327362647140742723780563738273562624583921278490022993500030600120710276898501133160802200597781346227527834141482921565333507954816306787432303389196721095885098738217691380206451088920222533782055035946424850945145721993981672870047919347667925702748752148281936314988866502801884312810916034762509997298014121749831241975710858571804989945756172108147422913814707021869399142124342830619883208148658189786222626961672537899601470786367822159646508506596917536673579979663625707674952143158049495718366954581693826115879014235703168424509900562607924164615531864239107725853457322566402311274824145734856202661589216190725441124661782011501495767608343865394888425224953483042942346199963233227156487971598608634197069244772260646640999598454372626202055698663040787831402954096131807066803872845545607866082821438958620197502172753225937836770235085483492135957982026910995795013122415516679898971957307321461931942001158882266134257467229059754956100707969583924098375712016983164329709253607398155185024142026734291341608032677340839239358774953408933153247355847420726024532476032990028840366610124683337543497597036196047143374554802286180541767775806263657332534618874646349106192317290636045667073630647027890529251648637587181038689944350305443810443350110777146432921673109959130724712547681705415760587303761981428236066176836149220843883488325778035692237607814735751989781138689254502736290807318796581201441171273399278922772933163469717001637200777316713923220957293461259056894850698180066286545968495801562562006278964037877213196263728893061924058693987471623317750748821490834371261477907059520922416120787468496782995722827992200173769262528848219153837186890773717958648326418530161868642380179063404654874758863225654341008233372420140424568952710798811941698185727658436512714799976562108028211427089817051927059097103147811966333572078627121305875464050567136060997735335412497932952181193357410967782796284963826217068591611796063562470703788147089014540890460362402574373148808522714320732785104074962050074391681446157561652712387697044514157403604303563802164821624382200045878264927540926003894159325331303379382691994515703591961710648448983783574248838673359884857464034164680006408447206443948986772982923718170070359888985829288837968196950944156328825931044748518459318405561241654777815487115759370476747194245950819231771002798423305753852072983131003038319350099961707590610625935521359843763929977495486247976695312015258215971770860815611541162917449337045494186818317548148507812399710418250073566956968360055524354225032385612346317675513073641595062120576849926340370324540293306076522853255726406454694966545359813754034835644093726563506094296900951560755972206772834534173673510631959275314344174159094407097080918224002414614612418343714155186076309031707811844865884394879621747686879471374430450756417557306974771160184643937136079681496015929314852901923198020398093045065768112889403843582760831157467155248306553129844350431769036587515713608084493608449375453222656786474566962671345476615431146886680366854180777836806967941013736302966506202010754531392303128056672799868305369514680707599979206908080317962125710145174353095040263838322196482742396099353525753006107250241136751537708008389827688351623812606625304996037257953071516705906313511899813300544268352075797421236675556036574652334331905274540020754165675284250624115659018426715864064939338288688777408328374551477592284244081809674273837190768769293646240385436467991356878209232560055870467344881351450648188620397601142412563031232225291518986717047180467026138289027996510443576516908499831857759769575159821494363485419510185713990222149293546468805122741285078943603814847565715819289575242713032970266731401776291600957482456613034387695734101337446821134771047348906871889157675077054594204892952378779343835157576897070867775379731133743218181882826806758545793045195217878852428730131859765024540580357703864913238061619804485540161597063028923728301257210566323681035891379589948088402375197013835596431209977044919524144433922851184526367045209520627618280045054247290224419669103889156567187336453570866476141473594912654662313810304349699134613013179463681208119695257212461860965299784265420769731601089485396404360023473346136913415153410631365351264069565264509074434973349906399087071740692402645768540998933018897492821463294926706712762616262102366417082082528015829700176249565246122606467213828405658258894295544708415048087335025015164450630683565237196452065534948644072577507969630140788343544542141002948736252048439561395583912042214450098547836914860185995604138252228224787675389659404733311484199234851683006966077884328303808236753500237136734064319795781535006963226629212797460292882575584318159147993264318731803333329141405440702023995424884425976580966254003692989149159394246738003397113579621908576091947835258733472289243970476375846427186656369567531681283672566266145071561516127234476340805099728045085395797208279350993390960094125706039850373174234932080519870317910946126827331499441811663099418175775105938875008965684769228819866827128443202224339351485651510003154231502712704989998915999849581740304671621964356943409298048760289485161715378230118958452471364153705951270232916119825003766898457677123279134522961519839937882573425559621944737103934955561128658953950235398415819014604842686499212681396946639073449012522283610348280590259867098654242098607869045132776959605686150633208646191928764438858136715749473481765286799988020319236257881490938148384667775428282207602443178152443209942238291508326504853329844189650348675745833683302609045050691798002609581189894400257223041224400296443759458111487185834669990513020748072869686158773433456044611924538648437245596177064234600296593223908274656786863989541136592693623780428325990352316181327819039218998930982972618350153605054661049433161601799583371969851823851688271255935321401841062450121912673673075328248328488092751866434534475967679331520584164703179170131798600966503069480296496625363223447510689658576321653607815276216479964396120206790644844917877734113457465272660480859126104744405114967404403500240259706481288314951720092101310829603185513261746830630079898637169894952744569048901251364815824172177526501979975338237243464615475455440345193919579330069093891240900828385588407179504134354000230415508098644540653880576515764641825179916668104789387425318529430731748203202085606014023037248350101272570794688149846195066487141695008301569761001629961476069238004513438215561574536159996899851124922668518874919369918599875916607309302686173095736253070201793218621007426642496672119362656293078241290356714583501596502985478842852769612552315231748903359554454393429115818515330623193829811306084798040971830892166588255055048454699881374087446931163478455936645858307309330611955749380625057997446008711514364182377110688369290627561646584006660635628588651125351443850352193477431869077375261231325223215559991221409666859206667438047822331390137813948930588075981923032408217511808557365124319079938909140791192412577232350821928385317662367353097315556725176360029932346862035410763324557924746075210188625535923731596933074723657349284095066888557075933615353957617827637040296131940128556212525609719144188072898850744025376046314836851283543626395931609485503311033983878988098650289405314042438434387954157885128062437233234544318827190334721595669632885808378979194680931926582357409015171578018694219581456261683526440682345251604842667298544757721132963147933359342924817899267444966109847880494267696240187367223088296265297516093125771635147463166530917607555377834020397285901041326135387262396451311712914351127976924475565496943715497910228632070758531133360306005387493879036547154356876234934467388077042840741489060854159649403795663054714007040503007135873178849312973916390629186666957070486460426491684302817187062689070181083234213844427592308997567598690010771883994296529597118004989898441560292564337739736581643734447556444937686344052080979366642906285774933546773750828920661545272507102715532243032823501505698068038041845222902512593135277665125691121847783868463217029293484323776916094710168120539346001336864636522975128425897075710149793640590669080641115035536946696618471162508048427378950141909459369316909031839743514259267322039414174097917603925662113316677165857909826661509554624960818676138404611909106176212537720996473544766133427182792389907288501302901791463696822862988836295897142507831725039155965136372390628345767793185413413294614902610347317709163691101072591122527057727349524392638552809641245521023736855262748019137702402636247171124121458553662733094403708127672376801272187305959201586697074857866923784977660454088374816894050886055502686322422149901360217424908312465350456771454279140136455656858282132062488883974564220499871861309379069931867400908510487884316634997155212311969474123179990248431075700554346063396645667426633404710238960213305500059354913708291477464930295963653812980534976260530398197798043534873465303836726894356305394020859276802819230523138552289588213625087028869474378936001064578362400808932201799723099891403524625468651858155698709204690431982494314791463528019673437236075079916714082511502115834821427530465332805836533030546134673174308285366959638513428534426126584504653710077782452136713737121564799591191120850406324004755068263269936202735364606453061236473182519029663107306158170988512547502292152220189222906810318408131559228214890287535875733483758539948738079403443927165240212190705078923405989396071898593263788851854959983809214371033489246630014102634252857795140312581189753911080482457384219892798502470195869052961683626783570275358880818483158352205170200359431317597321785778648863756933611917033071012848623256107268868341688784482748639963443194553618531721467988172363683385220321213171520845758715280587798187604348823201978741765929899516526954206584454673798740144971078187683143461266846022566482787909028320207288489928913719926643073034402328560481705197388414409346503557500336490815482698730441211896250802597707496865761654212139342586615182677929129946180647416037077906539092607875315595273117543765605359340009132603866406253661064880615775341801508797565312422504946676684423671744057544702180316566062163820615955047183208896534927014221823708382679136131662401407549048652232813436673885401390272562102097509447062557572766932786181300718747459109662603931021714549191027991826509081282537496851547820341143134086071258241613515731440011195483554750915003732507190396504937569635342568531081294400735902120145827684464251233471547572742894464161329016775739339060603585812347629286417139719233870186670702126363598521736895803772587230019968505890983425799203251624396302579869372987508179347039083713534985567688609174802155414068952701323651462542996879663812060572659438226192146861261376740915897537732482429115725429642587744830435255190860661411233093677594388632112060494608900820038576988430175114373612479210550709845265727811775435910026342794726554803548463722444223895848768760223415740607578374976009127032347044503886712635755212181789142486512245901546539050160526155250569904954113829667997390095836203464090590292109531288097039185743985430061283903508607000326673008116872203120938463558073081927748476569238616490182983835399129193209412651275854345976012631077270523569002692538101881860235182087453296381096261682027851556347265028771874350306989522157494809044049639630750664791915889258922745086535263976206280799748082739552006435632003292739298405950159276017525378759685485645282727945978199115473828053790449852919128049968130805102171882750675284557793169211590050641556063200239150642779383429934571908035970797324216952381625378023468275160883346246851804566942848697760653901552157828086212887320982683743779456422928887510173086816921623941012184346646007994627014307515032614508731713139949716002740063490460002820559217758638475749566072704326974391753709113466060724703853737773701730239842401854019606930366426180751020015455936522515807778149979557950031691005687795355504669993435824001734933627753881410887582077589598798647378591919740989980526485913989563361433288295173597240211656652389071127930989657647946804209707771351022895547628354545658941324759477188963039486639060541154468837777661741653010169741230929716564860911092373856047142571552991044845803840769051758963141968196407071634629080261472899959049365153006206958304189627935740623899129356378515746870672746668056886986368733283407278812886110154826254216125270820053380361447632430322884325321116261363107801192815460785837585573098356310086756406352015032710380856360419581906604906831041634173258490598341581801942161948210088903548270474091077069069971857978576674446577680134816438912228651453723694334232202355377340646112545853038192312260842369984115058297420490305320555839697289667352948011996857968443331334725431405801736316614066646103909257874718308922351453034288976745528055816615267667429847859388424565697193073252308816976623697527742228450966376788837965750904523798197282272047446795494139107348852455871040205987590953562792743857250050500178582202438286467373856425730238161364833254018025137880166894637501535775200866011114330804594212341741365901851084012892157993597294330517816193912823101596036931920932030130971231139250518379321637097901773620259895926969148705960657887956017386844741918017160315587496376026226547199434949225486965309661936172999473015423425587508859459089213074216325345266560327506097301779805590023796940338213031610252057053791276388094280597768542976108483933898079321263867687072596480779840423502868309493629786983895126199147791230234005554954394846714266098507613652914499325996414775202672416707162947688053479701895977460593557594434194912945573854197096688823452933744991502054408242266559886452671287867090104480425645999458799076461131905576516196617283993110799821480703934235640883343406502748616137487746972684765518619400661974697783721415626841019321004424949475992477979389185550007361628513743532507006698889302152649946188156707507786675378896160927861468911558460786656035181436026287610768715808763325899781244653933180118701145371809183655779255933580878062742875659251153657271617955718413394822815398025025875400592049981435582255301649784335563645534410525455535847363799864318474970005547239644955529003686000656965920531386782144773970953439399071305520193265115240296951674430569421232240188407455352767851974714259465717946526909333042269177506270312118779674926853864806047939727813019936499176060536985371671067355642432201418973506904378224077158858363728212484059284052949153523444934459171081249387887742495687597034659243653829195025941788562549199897120590621611512563655129403252505793974206342591847018239649536133624941970956431229884164695365185500662998967796025113041141596259433721486980083952295155743312733099246188314361496756558436795109203275150497003801262663012726495501787403694515072420039141890936806415207103121139147626492489206903579289682588671259112129715869051502933882274605608670535015263104720912781790152684037739372702382202316766727321303000101324001525873329292570787146493164681802719943685756478807705038622096991064213627928580299278382394251235506802733102841095528429910064896469465098517003079739833640338007484616709616137627850037830786346030243258294174528196075988895514510138804847051199366351947738853165811463519274074573181559008129732454172032738756586787010432834996333022339270992031708088015932252485829066707612184978412606581161647403844142722978003335940934591367277261600902910446097881532133079331308798611637342211617899064703731013148895226268947466485314116153737760705822117241107920586195514212925641771270354134179814767085729882866167567370581919994694700369282683277568211289801485212313710262722618916678521525161569300127638596422359986723706848593665110505378096369438994074124824353789282602574047795067789775327095073616161781238036644755452932596415306352457885292587696645680715818316038878482840132860263301247207221652313044818404967514878794278891376215495636443329372968699390649411347853696590497829572147133628836745103051502517685840791281634940601110951017163549804164362998676137558246329271891058522251383690644850395891608488378824519235515404853725178939625547134555269337332529749823506155765682316399594119829449269817891023324873017140201748839175212518192166446455392708697105435903959877708388719706223933221330431642019825304133468402980131533485582766669066979246485343773009967671774531602951498833856332467156575594094458833092900010012287725335212236496356796081037189749854147473701216291348176598806332908304675615126939480253026490490283666953737917521576541371357481420518733985134791135574522238623915654432899219138807965373877631867634124559906967898923928520405079246224210362249813308299147073137267824156934238854108681869074773752111503133405776077346994384942075280206255764413789433361162776686288741073870444526282108028594812856612213966054751015532863359673332281136150640052782543306323127871024521502567310829029139401452459510611773724954426674726514830972208338098740545460486356815421162186398084852311876559047417871527963772882046718211613171995874319178499484438795736554492293508306327408469063027726934283879672669984503198568569989175323621204448297152570730057672463788545501562428974181219142153530737121176670041149391042068710886984541793604930612914350345509969564394317335047699374598602718013658260768640677209987040830579731736126935971215567915259496389490799973287060287930208625484900387200346838731384838151850124667763535027885644941109577785614330402154096833855383607487778264836963674009736643455583647404070360100875376475170990989390591882193437972070956545365300030614588641940910506414531882850037751992790601634532581865723779743130337589996602862573039487012815587261350264656657449204986657561417252405055014045765634792436674287689463151805661533997902820344730924123266118829857213742475828332857840475950924521746475385545560684563741032287184819059402577251521394882769145746101827587875591998642906316752173852258666085815654267124133703965387681394015439044596564425405392292385682841080026355813340177626538965410409738105538698246019314454958050622512133360721884713495996954509693665313666110329634052694830570999168398630651645398790547649210287777929618432399366027732120779965815641629539950045780549494084621257870151855372891698953851658405646538385727392691949583842987755686967239895760039233316029897073473914051006512881272036037705171959106769452509274004127049395073198518236671257564076353479297053616020464788223022717992480011447649669587268071961270435261470229101879482690426731873162417926675066767478673824862247397802193631262943190351859311772319859756192776318990261829650077112888295028190302108659147920626436536406690811393552906544167684886194873981165560174002051970424123206745897684031701488822758290829107325441664487762485871470371432444163414754976423634210644690494699072352486380645547987605007667363513379450826609711947758597743779546833165121314524375802854008116837659475932529960837223922718971911150402399278399200708931200367835449442314951170594704604458703466213767665340468123447955362665805460626524746704004293566215184337532570572551402872430770772021609773431026923423451537779094108620524996925526250307229073770990840588994825897233436646058921530295994876391848782747327378720269571737388588036325258643823973586036513916310663977336301219172469007799706326823726087729288560094518446133478930964422125193837261443936658829951787482852316871616937635852178085333586643881918161878238117023318646262092753726425706493752258812009355522318649437735761130675987341263559630013581994712488225519742828621518404907486046584041158178500355607653504086299446488974274904200896610232063524585342310207394504532112331144429313375215011056510417829822335848586578543719815519140545369564990189967347896975651819145184059376842707520018429745517720027113649059594554433908546647942768765615729297495742932213587217010709208743377784325245069876868129369625694649305117546325228180908398347237555145538545111648588508657329253459320425659049644624877814125603953227107750902774476073165753913280646651062312872616561552614148801926428918534208448489671638609619296179405572965383938826684384346860073882530625965182179473658895078162753031932905579880289400348643303577371346310974644059888244203064099462893941422871167203012928725589439898493554282001395571680500413427025454755160981191674988218987046056702164046981845153386791267732524751305265788637036095063826598564069344770038084343739003026691257523920195330214517217421133971882091915878754869226035702890622660044264292972583229826904800246047273443544255544687430222715704588537686882192024777932066358097660989847769772408273264473589484019213944686270648299205751418694457633622979434141880808726878790112362734571292258376611374239366696930199359740894298175696073425539459630782852361151843224281547965838298056530657470985349120352609219689145258398273191358964365472770644736902551004491967131611512794837187087972067707476385112338020863328587290422314824787779440575681769027616055185591036369645003717240831471865223160686746262236409215051272228808162691116110380911417152311210237840032761238089576219969245089194141049304386843246923563811995576513180295517788053410118611103193252911744320454018810198638590968532418983654511854871261675225134948209576829514783048620382861166910303478973208400568829127200374228879061596998293268189981879694610686338259143476504208136177424968078036453815918443512770430456293482437446940677322515134977658439811646058032053077673739114475967589104029496581453368103503921011358598276669731639482227635596055378662363528786881222502477031664666925856471378872694217982202842068607607202945499185425420934956707739082416196173553812735111016281667008532909632659706413365945955859718641318790383269551164712159656275775738070832430685710842886331910209923063236395329504863524178847360635321413466417917413855155931020440855831755483683843362732832895430010778901602763378678395001751142982831645075264764737588320562941244956235334075622897511044266045076085726794921759590861454158258204068588488420923388714305637204291975367990851463862426937239355566522156255396268108694904687604054593323707771579767138405847953058663562179984896550794058313182591379552638015336646885356735967530861412946386483758472870470350951612463321919841784607559524607286037914773403370028882693275944729125159170990989854182373600493749755110201114001199232269106283361003147328380690768435659225066076536404874567241940528614972632624120745216902849735206644922368907624008238273668068483993971663782045687000098532905798174133096980450415409521987868443149659960718283702267137665566711909323276887569564972662316928407439579418931946573091423640494755556224042711886059198161378730017519311305718986097132205855650182350820658442618967296410561514521438274425859105945433281122543312741925674958673137803496918396020842379615766885891018429465169167347446838962001934045558065682999981668760581544054323321113821842904412593730165137906037253428579576918346203537851042080508745121477008119901429177641851046300879814501777855220440314054213170230708482341745641995985590975785365978510880549239133117771819919067452129005523131414389959789993266714467004065672580096105581474959723365650200736970911693935944114251173982657380103476881796448241089622941424294361297369395730805776817915507266383437970014236153949465330784547279040863571878703307603751198919280772072953130211028229208912766089485968361403014896112939990173475635396403362325768794727354242510170531712384287678941006568183214113346028132790678221740080689410790571703261800122610378167144891674610250464875414303334114059454004697812269940249218292164622603714001910938005560723622016719259651955510381225675554149054560323185745413997578564741690363972572551662902308137486542224704708663511654476031716533491900781762180802694622409414007451994909721703447271691999761932567293470065258565964401992992190154229044637567810347101773176061301456956997686550932020970863787785202636372856994040891247614786547605797261561294224446713718771005056841256920123019183778340206113670620678480575119490503977001182092978722599102784683253637948683126643864720432645470158737169944138908566277128778420948364427354453560379455599172591017525848690086449579786263801922094199756536333352250891736263415301016280171880441714301775869096568345334676542037687831320032550050093791207081123748560699726487675207628101742446236790865603957565664105914323891685967713231170312124088125405705210469473699318354405397616175407121324517591339378614545897462494601041011528534747549593138828119479146048386927307537659272076916306466015472175355547543210323385833050810336211935059587738831891925796416188239619468932435445175754280334010981223361699249995613480806609474979777257341005590083738914988187015510963729240875936708048755823471722581978654413861045435081319825459495348662977182780809487001333180597419751230746602351078142996999392653094154626386179479107651861027729045490994372152826564963574521040936118025629359431443614600589412681392296612325732661215822449346483879967080329946257108988359966403590588772453301930428079768658591923114045551406578476152192850691722013317532652689236961256579100612527845815864100896476102076065754999806120809097122804054132720000131703421988223060317490244048026340731437110724974972625583899618087537558755521198104940416683454324773834282313199270283803673894981750663620005931222967998278950612443229396347476360898340527999505043007470934835039449715039578315798181128353975626968590648457471027839825211689850154609270116492891076781308158471703232551963600962018991918030065449091235043805258000115453771955927234016674992830978188045413463541551379188221723322636934949012439900661771526462671491490668625625763080750477867891539987636164541950959586238656279306152503432520132905172758677231266221484748909793944474974005439221157378318367152275140448567339125877464567782442815563432622778813146076865492361686744686487945748342323856334489816632196838424130263445657386057350247207922010854236536218904256346171775005404927557049454014890293750265848564854135171010498207340476096453937814981133858526380631388207567148603472524134594496960594054109175030638420111015052119044336995084256234809203414486600479909074738656169063838910843679338657421580185941766404913960102418610808272778699940957271021594477769427578347940596707233041040672052009453427300745327791950385986756658920074770306148458248280782560854181283807971317820980926742880023809726656339856426051260449620134482109932069095280704829611647226643716600678530569836520917078159474390289123365172000455279744106626150436401324010899344886298217572473876689144703886884800544226020114521882876537824445650983297931869062353679095695108248275824671928152875366984979063314133580025456575575189516671913910636935501957324526198348074286710637829787314200010802338218170068312193999451327589409746234357855875923165996207259639128658191198683439286372418001784413882171955216345405224775638717950771320764200632714559727483815747751095101907459830643989336199272527705800977582621325971479694679460353322662657712441465564596343576766403185496532001365629485005007150870646199861666613797001722242292033777604202796962605622732659474731777837221925886211320534172479605739240531845946068620787225584349901050953519990218185172061153816908088367934785795143143301509186491239828064379635454722372004411870916163340612636170466553088988310115332347881312008815653835321940927174321823528294129897315309826934538248531020468885497591287392926826489440839129737963567428672251017114429541836274934355622377053247504359686288621758362555247927594215944031809469915941549176238339381906540083466500374871311095010552447508693818931780621056883888637069142886248677853868207656037779535315079994801640800580508391373921899830618102336910768645121016358872057453131526847073849847221220188068934228945361517257061733333446316686632931022836915953525907373201857242878526426906087365826651768817601520613267936955549226709825120654219729984102080811772418958629736544088594076023424517772403566601826783024461052827817960717950088630921130835181787392922739803997061643321635008638743005380598276002269298236835714134018928683142032859260029252434422029805190329644599903703578363852475771101552848655987039369362326704694986451058908650593281526157466896858987243367030332490085574196924706763176580829160928322006379569686384949174703935650867048696154770496408371879074760107340977463156359964569588930258643332490400220590882757777711358960471333018270611290202669674493410060218809398342670431798144162526783186814752648854790412246826905799792329367864360021203198385964486742738425703060524088102287312407283938511734979231378457441147045386010934304984632801158593337283009198286909691388167567922366330192675661510602760952224654580397618849650284330340626101612767695997568527878160431461842821638386091145090586459183370666817181262577612794047902987345295848689284335414940832141891331130277510446634096936246898671018151305290601370092013310044165043656466972346329659444719344780222940087128954256395115203007994839594345936579399991104019822332187642627570912103592416557933307113593220104420291040599636365181456720261208721525775025855603633696237104792513014276171733014010262499479909097754188907616676261842211162004192939628795850064741579867909853121576445956987995380859601400656116156179307325279233299537649072936546864534560092093653113295795577436945283252360455883171972118847104444653885109755811312593652438534728296978340847871066995343431459946341076938678037704946349833732033520374537788622788951237132179590341042240276154580123485380568288269504482977299262877605107907353825625839787106180447684687409729685881273272347805918314268242304788947765273276637191451665220951977363810452451397669596789057828571666846793455440681166988846443399396332033588052632183081740072160945448387485642803086471763650986960638440425973323633948845355910093013249169554569053555956262561652545103601517561471100258964182599659280344183792725009579182295591727267859743906764775636149675076804030992961156017237098329973834378613457485535574104323169839134772191402614168642287879282074931945877742915242880691410245948495275083930743891892412822515339861610426199094748201419396319597195406948025727416611484466567926487229451495836300785270259159198100802763635074430995516309072192854403905330040929376114762776502218313639106763576153078707769044903395495113139689851573582788401764382702896737580121533601789016187022981258433393619939692028567394816304773151357026983523029858903294081980773848625446834520218372144813988242405355149877670895063450689928096912269830266914936275638786927188375987510555721021277798020658245497318559414132473257019709715135424639149935075820682687244639338055407371081798396003763888214990479017141962526398238048473817813108517293391777229458694656755798544706629280792983491274512261341645113737331738873360698333743572979248051809106034605882819567339480536211248294661363397520413008614085465780201585773354619804621791853116909975384142363514015734117884075314826071510607402357925341230247952843603338942707108419639464214611877071181542334541522809223566430399667596965023289316163282499731778999883183626829187975397762116718580626019869629863951833062124874293064740348662445786390476512946729747809154918469523498870599884518196800201098185536220996430227163211900818770190629789749475615374440510894621359276544290144299014769137460634195115693583571168218484813903172347560098621573743413251810278895975751209353644316487283493816651927699612715732375277735590255241397481020051080867231869623376779639269823701253312911622548957969755356346489058453221174631319687406378187487990659124343262848162464304521196817399709800102906859502690946966617746403123877383773230197797312768552118960938774276804254990652541465862961090832679929410628803037964794705819656305313095244890827083852518075368846307008394535244865065447011513067372473929960692054299155546498162927371639630036252175467115637763476476282376880951454498365406556472039134283274896883980071647327927781096525022678918163292552476548187687912694841881680015324149040700141576433723272041704501034418602877015415491346105672712302841432372960079089402867702786250093428254881276147347835722548364411006917133013288096280202283109914934180358235480763471400411244310705106153163323840175079713745197476501961896641945228723559843793229586442345071586381802362019252868076664914570299719373767899439479265202467195644037249482160212316802050389112434875813026253086180548335056708567301603429076874281421223934026138135450986434155743115882870273041987915413033001663417496908313356745470414775526470693075895934062124368389435848386574441084130589691488700587923150762959511227772868962237080785596552605363622979954490797395606248305826929798631832637655964184191941374141586901429032511463578315946057537714852427773326471538784273447668336095769715989863717198135879225664227398798079465050750193266090148875998097849921404142686759457103569645653789292481122523758288824439482446772798497251923338509895158925982743630905900633676638692077394709896681281489607644328198491129577792781904895219872621108982825759157478083106562913725069688643974078821195156833947139704963881623127534859573302416841727406150031310120417322710976530241503549082021977046539377089225865345970598559347215354175226981882788124518039615331992876697771431190134319627048103188950788399752177364056718459421814691650593068436331577718058065564868392535921049655982977240720394642124258886252231315608759974007556739584480270321970668769945567437808253360161900741992584183492394052995133525329948432826458663795891571593556611202746461375440820109577599832076454934647378814363289620425987831172248950565473408859135393903657574980821707478900694677507211680133548453958256543257909182192652274671147400359909099309619719799342945197999548940874134451914634943026292630454299330835146320940821711933477923594856826205571059422916820298407442484728025184387263362060808193153460040779528544194144168156343380326621568056267132713687301195573581558699069673291380962359531829092156791822521774108917877959981150041227410333214333446663313172538462920735327214278912146604216334065999029611086322554159948795054753443381640896243934642621150471897568039122890996575368081707897314293101047237365067261105107586996755497687951373002223987612375470243010941803874692287864785028621119301274344689924934169995223843139969409123110878757563707893296914620766977862768770353211148389975420111956660941560361200275229557196795031526605417210296694807112532216733284049002479813052069262724979920914922928381787463189083882257458430910669020213663667292489086594154462459584284020239142944348210372525227558649182446850763823017037068392271872346543944572498828295060882279249536166487480807229656954572672287209630321492691346504840471750327084735324798121168792905834746486402633937006290312872731307302459189465451969630816328666653668525731733047001615906532439536894422116947632120479814742206227556521098601247147021452755963810144894064063420371930048129892462080786501974227285589643043808486574412292556198022032377481711456176036007853800473225054242905478431041839336451808071049612258079164208731822221120949097479722785772061375840796268443395632928337934100018658020374662538421818102333638180133416993194502843311437252108711993669634199889843463336724773762421463716428461747344484595251076547797977873861688337559877643193041361735317659338049044626773544735126171463750114870942218436414418703309826728837180375386957235070147866545806521015370230494300445469202540757669499767808670399862824461000892465452364729433095720742696764508298661134317391728961562670751439203879360868362693906093321761163881638563484093997035902463049960501727700882805355289548492061187766333614768848505428589355947137216068139613223522476922984971873173724149891020992163470193962778273656369690339114973778845654614877124043243718177933414777870016818628043731275523127459586241106971089173431091593304651898912276546201033856798022968871945325156466328109716720975708639220441377305982765088088686588264517860569497833947884533465606915824768640327140469354702818774020645935342204921658579220348289044279367057263462846429795460457459329556884638266787614258640336794546165425462729584165706379139819012742533599650528035250535649632998082212837024462360646853122876336747136585612301476763795232397081179470187521260911879637762594917764454728164571913835641703710116932066585821832441761344941173852474953831969319185352450049015579540374160151149741425536604744301355468612753737458908351648491711529086724385649095885110370775572535407980010812732072564486420847757327742012684725070700194173440735294327108109664387097272992469916257653564889081588468711975287362152850172694782139821210476698588018414566873820712431935681787336073425785709069583584685314582379623283393152620933369320762282145660631008679426898976843657222883074861308617314800779234883160857691533208911141982738555391728402545236929355392532810821320561584559904446562071040156771162774977361432808698550179482052374156012607566325635388893073723192426240650624026698697132128432910268411059912120957048315015217656318281569281636802481965777995150738156761725995881423699123128832119096170148008698947475656970836193079905747814523746396836987888727394618912931828469384380131874675105349585817736470042062216693556490976219786921018518840538857352664652148030693047337046320111043161721474136204769205234221490023320059816553833908777001692764309327064897781815342288915558890720827554038366006533038830368459854286024256123045732271742373355769780477075399674926864263296575520079207790404593294168210201035267475689828403884622015395274246310055566160367557255528056334276263142478552099764078294989380766826330687648824418054638368071427083053247680594917279504021335664098529624735295588246575920274812129702588194254949248533767744312115991972651958597806310429799434524227039362715292264511490674081067028438029272076355119489160129639774978778571761004985482356785212150892992200996599861340213041323306772043165690358324805119306472959330079368673969083587047917248541162689784595218167566619526051496492034848837078508703272971718775152446997122909437399912142179408863986646441832970728777626908105652442049855167099500621240507727458464252919222236091425797921146311288511061693487188621518329859025230904475914123243902392349224842027987856256803854666371481150519971836883554429762128830108499841244986489699696088243488254162600802355817791999634378336968327352369865228467790791668944638543481773175322581783988741074620728657205565501135048907609941207374064796925042812362225682688974045870012008442234080360720449105893073731506076045756784032885603350899565518753392865962724803824146874835853665278536994942879762465834329850206746370803598813429808943512828111966152870645334657891378412823735761033644633852545968326393122998083015193636319889599675985060695010444870515218748959500548923793687016704574225103104820069660885131950948366194305007539376702415255707080534384584182670954835400141362989236675169988471116431535066102533520553880001591763331509212611286411459300565491947525506061714282683211539830657955431854000208927626316915933579144448195099248043997135082202621162732130264717246855175583620960778722902538681231022220443202901341185976503465733617339023948757592241341853992286795232836098105565107074067729108200499551948701444760855591288045884586135439780767584797739612995234724324179955877621523747450349186244645764182788003860157940047550694966925372269594324429090188354980322137094020119802065524485368133272269042850075900788515079850349939301777795281063357841706213471874358679811972980539675837904500014171235259666558838966814253122915739824499470589113657065115392159038408863383628117516088143166518940819425471778690078018138248166850623985348996300278004531168657302058901228272990676003112168982599225605114312339136128133500434118182605578772152137853728247339854949144761728555877911206422005062867559566382643025160915365277641101192382373186950519214197536718441441794395724645239488681673889106453241390325713424535227738837032806028557356531329639401157461245542996919922820116704683876222194474713936347225380124453194320417793538933107711170121394234466563314621708012230715630329532722715307932891855115512872481991253524456335713984824037442208110367047753022937457140900743100989783909063432554343327897976922065397944368468290466554837238271424171006574774820197252653694963117919447307219455236937642925715799961864964042102756502621796389466473140382634788557088004945854398207109983660859255468524020655817929219648422134048892484378401795726954077497340868405073560826825779134920654142474527493154017823626762422411884785194363282350950062786500237675528574643299338220676618290025097140438153688260237015906427677708754940867689229688191641331800048024791274870747214908027154389912451599661865603608654428484852024660693834186182076640597219306376133184156142883442948851577200195042453107019778251725473746142371354153993784268739921377922755330199103927163434702242293782982497274490771200383180632072283766352153872817541279721286769887977558889347461094795990076029498275941535659123650192858060847269128079896865258675895696998065432906172238020770973049193584634929573310001288271088840524599667973653731670483419611232782456728414021989582729631394532930607642311677066198718666011002746470516977694187361082982927442798452334531260089364594125375190338150944795512957805570863486322251101585396288032895720623818860417622274915850160942753360893827806513157653720563771090787356470024239755890657013037900406359557640650173480092350873134944558250873802959965694568844238561652052171406516568571744829924719278013991881946528617056065811542201292157517288487465433453802354183022724907321713831233931314852633102183179559918197342174977953359021492316184470208746229151290742214068949007411047156813549688882587485554469202074053812470225592613646157179409412358508389944512935297257419997255130163832696147395823994778338398573550226084097118009836132116350741599989085468905305583713837510641941242537461757409893439350573135222943196354296330559318149231598690986999976730878312505772882736304006747815120157492707554123686848900151826771580445901968636083271964686105266572416278130024687128573135660026523388209415771012662843253891156994390094158689252793087809958426254391323564584026020337224939357423656947117536565423428968049338974752045006355930317340144617812379118882842561705200514420676120283650471865603156268011675790706822434323577153781067653177319289213801947978602460344750395510121342932361679096016673718479712422847155004548017814918654815589597164578420139219135357662574377121889158842115519314538828939419260889618230990154544442611592879441280555724600587717343774379505207261358719897594796625813970704438232238604515863590176867282924372978897969715929005380170499048986588173670571348820088500578945440955516890783586295368677208066484394979159078798833264719131916528499640203134596047626059985184603630493444017295728514263397580552547364561130592926337177174524583890373344979989771098376590587790810976711064163155115266831492641808641933022377078451859401671038851894478870947977969145312615073956058177611235010448206588769122484436706233170258700942922095465804833973163780611787239046399048914812343898009459179395949343797581761401725303494810308000020095729858884184196950381592158707216343475020351755386214606306104415398323782443087406926608237557130268449321639756504292880367020817984084147470891877690769708609415737529196064441697230487455453254967689077706750473989357158105984991244154408539801715328766887417685985662172900972962760858312241813966270183745114362584701290909660633803815637083782104608101085273341191824902641244893183981760834706694979853904155262624952061610206952574743968195220107766317353160902061143005799291901994050528189032240609603802231856878022059403386820418637565155861645762283841060609538905513481180154426283543743535977666300970770430093041015740317586724854149679296197067308942759375592998973454647513427526859282263267058321629453357722042611574632785059867765198090235821409347260016267614324477913529946514364222755185226249519136379031326167756229470934972142835221509830583330058342062288331073294023867268496805679898810450148227436040064922462847256466514874419707204678838000272282337214575064392766772909100432935890509929253011129288258222689382921040740091161499407375730020042332155995119390762337780952444331522181633965725870315967172395001286312557867529498675330731624818965536408086724049928215331696293330015736840708277357930966587655582366546236875786052885392546269025850274230906974534982775218463901479631132881928114921705342842373711415347062701292277370089706405445054380492093434332305552821889787513811635850685913359267896075138406244892172850934115364758899624025419116338651831814105614440827050278431482857453863654468948515074285830740583675082818958344136459371548503198449145165849880331283764016306782654823169888038684015436259362569295288882368447597272690609770801143176516203174615175081013440907457811698037290910061695626874985533076624911913444964668774269442007659762496988964253368927306168270118061920910188309827242820571590238757201353637232461145397886489435488628707611561225857276234325252170680568571645890039708725582377356537577814665214173232235038365659550267574816772669264885798951888795807924410011426447285704078323891716774667834947100749539633306550660919296118277380920412106970414319234336474183710646951085904278539190433684541302473528586250035127200473117757487085207355465375285310328365845144427547890450608831700974027456154332165673190171387686425235034314182179176098330729155703281255427053132471109457060702815622966628355511806843745119977467048037334869444592238481369301257490312844776581164098562473900544539227603796105454846410149075450181261084774749140655213150094076362097198080561660432013715093937044264391427515238633513678551074597992380658855435693404224275741020421042731262455380583573208523320551212166881226264052946844946688007643796055017906917933445812625708854974064224498595016484115052426211692322674141002552058871897457987378968013910761380225516624724815728522327045596050130792815710741316126755627865345474398413027114369007332686761470388673894646043472871844512619492727008232609798271048173940474172304890452059974099476837486494870140143819948383712630302669589645944418925326605093896609387962274345191608844859101154608270816667186809680053277262686904579938730668964751073679748744614105813676256913230264125849702296457896852622218576335666980208034454551095137228493369119427160252847415438135572656602252385698180347575986725329683590597928759731184289163415375195331886484308484732238718655113936615324300896880270885264354892250595292688388732707566471260297925557309466946166318146805637899776472308550442612170025639136033428811884253579504434030049043656136704579250132951125800873749406957024405576748945099384547405528944844837421749231808850413257505009525811074121324364682393616110523663489479442655775570168086115697308166427202403114964696693127737067236739044989536972827972722407447434773919868811315771266344792597212602921975086398625634990354587370585299067348179134712832088290091109489406944225444523034091790336795280836714608760481871729983829570288072213102412649401465539367373864960145091011014158630792299416444582775834774435398736624422665338389131705935753317115192472135803094378349183519054137700688430209892052716246332695223962859897274157767166853351550330249735696350981967467516659482166896226946578813113635992561437332677862080633395579094481518351156503100898948597138713693525804186109096495491379182260509947228650752187713980515059645142188772089551615746882542757925982649732355529976939550586244933790758747411126130737970879051111638230265200456020202325910784924820786704693682004743672686583605860795807929548023894680334675915956747888004745092912796980123085872935307815896880145391064635888107092286318256191701249381390823149380280783833980898079122578683868271167354382929047507084379402630028858256362938316189753837913509550668263121857595309202224462498476081954401658242924112943493844144228395307637779367301469129843476840583220778847125750046046991941565307137191130394090434114159163143396254529473030252190970553279150165941861145070910222778876521212481171333790567480451124106221401480551230063767475534798528200379164587955964400764462082914731865356457590602011795298731777070424933786523675391714184726474427611824157289679089430597138210895030434437559618539009173750760156090156984671497946554222492289136484476299958747981690629468525303696921144391362503400040580550342044344727453252789720544979428933852270552054542297927061110461882964127381437629116862110891756885306154923637753709934558161338456503446678156723752882072235521554111054133413223437275749929873419261602947211333175362624783109585640917813250959554611607987565213776562588005635817151372831441729073190835348726432684070042872673800542623173235986717312737532288436048194821180809880765804609731861142341566955506888837464406232836155391068133782932755015867403710422238204516271019586300744082144710825563334934044260306973543097401164382704631256020712277389118032213289979471160374082428957426956096327178945843815702937758441340191317802512843503116011409557569275408842871806852162023789348959585114246023306514901329762193242003740829578381721423544829631670960525838826778849422529720306665360915976829131585312417460531203671537061291902343752161720388560553332375229010865288201125130632216426294492669839728038272354271513796327758849527460607261832578260183290935215277317966500275305225975451364252186341732676890514699033403511605862095901922383358464497056989481145593161333935379930518974075223102629467038772940573390003166540884703149997589112773067752175877105315806103732006851513266850331496493280357505486711088520401070562469662504114549760975901884581120184701678946779696362288906255528872583257757583100121037871052285688058986271679205483117143779552455268785193749333140524919239342056794794891771055242833173558829030404412329375924341689209746772539183773933865280856174762646770488959904456381283654308812862289696977754775490255931841019445815713870958083589621053692995771517721370214571403791547774853911633509410262191680823538641242827920005849621952093211707730670372482437883208181764561548917570809631419332997886408176236555658773575088509640929431069217646368387887633504218685097495096506607879095963148501858489924560713313034248043321082730597344479324861133661537227755512267141397753352583536045488114108880688845180489485771024567906349712996453978708862706574650403641507402912381382905653929003364311821982895966609737450084822336484095951167741944433535309443492606317590046002683100715664285212187988675931680365307444860788197986287110813771867839765788975701398855921700106319435101295102277281586458009748963377557561375012042329908182259338952733513522742526031610166033722601756731934099186093374336240228611627742888671515310673538638034574356539033144762963916143608873203284178652188662659522020197534430042832238837403271432979035946900180449972050821384101864322186090690845569198073038706104892584063374221341047858198160933036555169687411616318981618988253361793451003250722058249535510473075865146121064937688991147024277173004311103763748681200844092510646777577960229288145108802273125605550652114999092861021437232159601479070345201107814992594009300448579245797180528481593671964647427041217419908768128998034946864588454963497756304930620623953589197569562550125835949477152451545841134048390250242694300792691115946154861482350356385678553129993397638855746769470086562947753728109909632618435525472594152956960287472680031893196675832945568541637632582191840558422287986050745682421908729208464494173772508907866682365939236948794160212787343881700492262113243926355112371409903577623111363480879062832946866615697378543015227503953375965076808631003673684010603378054996202058059529278026495627755147165771433894097942531746919243729742539617062311667338004127245684156836442024509463756630664391091759829068967710866296421157110596073510834433934647023343177954339589711205415830645500578912900144140728063644996527784047980015979557638692967195646448092123216204224446434057246453514146918175894764511528300684427682049865536838163248637763261822222251882877924026169176373656638654425407430327060610357783623383706369368227605647628646686482055359038956431833468874542821454354075003340178648442563303354227463832651535451537642477108280978571413474333393026443606251953088414446400339844863069708457059688689308268922073916352099168594529965472761991239891021165332991403545789067763054556682188602680763530878223135844082032395040301215494731970384778780683326351051842822741372117148262927963641019152430664802090287069452079822028682938000454115611139909502010700859021644860609554842351018753756373927304836298079062431712536588395756725633760155094033436093333189715075378902893718177656189611820490075240612617086591839545050820990637393116821140928020113183165321090366272621614153748989654543053269868231257134492187283398862557440413885780981623860049475629984787123728196888734515259020829996074672776434089892625884739867022375874949124445317525692315453967164888368450694513042771383712735112282501281644527555262800963747570593384200829786938858004300094577283621048619598482538333627617033485902171189176478073556324300243113329450071433584522868264712392338536070735293558030959080838318211204593499143331560897483554660834366843496369493009107721042197797845078081385234468709192610207302509836489649539453286513294996750849219927536387825654784727701324490128386383240905333349310293004191323512658291273682222444514162969585185121491507152186817679310030787502786278343915264223344352939090961568742388536046220577996678034102152571865135636116842167469552226316917568151040145141987516037585702284333825667285150368840926328760480333362951438529942956861564165946368433405239869585794018022253606781128986694004344263155234523221056561924229238376975927084989921526317099255296256990911447104054999343572763456790475157660909407947114358979260118909248772297412982436472610296226359478067376279849052735887743019888845531825308876218580265685396857261368436710225734181749669747968387560217103765862475670578460831046046672992750021588725324324122722034024375785277740043054766186712387259185935880015669454605036693628899287889074404513167346798994222929534258735716035996804832024051665983235831471819651252196445773223375407192238239942490324433812664508047295872939494278232549197362401393201960650805632878432839066379699283703919390760145413005414129055088170941180856407177961193226221817618870341440107168965131699921954617253268963173162837636638429878308835566689932745341808524726621494678039135225064449089166342289680079778967040908659224733881781290421633946682310575052092464537460043382031307339172452559810513473975518370940044736937191833077776280357893129487141731389715937367169176274238070300736504031797598079462478214143943926226550653949104563905730289750137386858086493412338378609586970989544705261966078423770283178152715052467564373754356443477386414406379037691168940480581635839067039057750637562885551178873632018362025170815753633018343797118619668343938598985815118723555129447575173328673217557871908310944342391386291616656513619336369794175983601327286380759878308766617513264764620565671116981526037901288168456489704145024003122995062194858577208933767408745507989287406498938440266718250421218977757680516581005814469980229339569522548968363469251837652708745959225534046733320500886687360168654413865184893942546622087242630400149318407207864204756050522771524852867886507296036848684128469881070596410821388763565529203557796390105858578660238190411740845696221552681969184537193779211505671539967726889063218821658663770361015029908263324481247598018124542556012604405653913655292461064468846406326202075294457510630450518797813520421461734113725814850747511825069320014384465485937100844776389865751363898926407224059762632829154623573424270527180154540167460885097725085878198534977604046645890421368617951760131105865192461064975645546111564193473753534051217051402487112941955279123904535412024913826954599250286066783326593140720381784607039564154787661467561744475074513200870796220286190677697981160167142214183022291505612499265116269972238947364812630799067896618307082374198902993745731071662091548682359837957118404182124052888496716543316901045018454248740365716702075311997496247703145140239170624853450180614708241864052395759168578822210242613665584170781746021715326237755662268349205775243088707135041535865019277078696887613262319064614985863270970493779618230725480428051855144251191468340454036961672348562192039658562864580207850384852971537918239359842569040310879851413282544845956359452233971585015569308987626860442230557920297243297825252076530752937580610652006423250815877262397753554674350844904384820159490518497241150791960204247651659010944805062646066788923407064135375065874055679720551591974002434347911147394496298704453883061450281092926467395561530278673236957306205101835071040317812399410824835155398869096914228202384540885140907565222321731910328269676552753048927781624035233342274165004908028631084396882723186059775643489127096284741484800068881518741643058695230555104588588269226525733173842208355391943463621925410231895711543788981974219762246862839854405759087693405286128375736975513752853529396450927979823494141752348906300481696757033906247249779195810932706074137491248661447916786410806759072694816386782960081398280420380046250475811896146330122993844300607614818485760140388390594788867534017981313668397319850515408439924371429767504964466586290328597366619846149869605050900129442800257381241307504742462634504285455187223849660641008336188271115694165843627443113187319067077077740500239150634561312883164315714933210105097445061928925161027154912676785267653162186274068796801154346307088982634529197261788322012102037746225681842247094960452037958131860797478616984028051898462274702735474660106030781703858150380752827864492732991714155380991584471597798875397302384964819385844454460480886423078605018913874408162944506773219104449318494545722335218126314641265117774129102648266804619413856781279727034440533433460890830566884961009313336656120235278625014098311670426706508257787770690835390198697300592333929101851795099117048595827833186552407371652956831624505472240745806674277296446049136702598528602914504595314603931907887551149874663188393750166659900325810614089891407990219387013885642442931662733658014303089605858292462743565417823988979460440715318336098090104429324889460445832800751554440506948460598510016244910406028091536162171409316019192694361147914116515401220207422520817049366882148058658574805392482126925102291616913228407913353970200743307831697590934708873904611625722102364826263704430415709697834498908482259348917596087071664372930316288082528678332099152577926599285430106725623272000265108617275570742754215785593697367219671997954507425193113559727475720374043837740674880457649082148267388375084039314107113028066096061528051983574229727784140048432565378066597486697105974105384731701387444221687992119552141292746096709771425889104513023704766560026328516822251089130960614231673856845032607136469491836844977370132168464554017587332837601937088547639207278276236509194856259772737241163846032345166922685219468591070272054306209415267060797166893068329363831763225737442811643332950793734947217942771910411420574327745099366638609862289492211600304368302919221207923842197375529264456879992709827718353573675521083474876949612099199131711664161051198664477124091289597489565278764982682422828723112554403851409315566308852832938229703803043500597227345101907411932486303875956263555993650016574502079429979508451855399655276940062657572977298413624669398197690274231739506866446887050943096286122146169036681727389356242215038748196619091419768218689405392137501100159927713853576016667210026177930264112843848008023765786609182076167075138869254661544550713117252184254577374412490384026181631933225041715823117397049207861568187664131155176082949928369618812107874070038944071166410515049999533451040582967390194956639533101635673775357106931712536054811118974456968264956140693641682921321982584599514662402104445553109114924698812757215633659044690885457734046212351826179985617088078918278007675249030675677847757112208656815865890353183114605090121383638106334558598625804656351351790694823554667855191052695393725767958664458013835376135119298950146711051909881793567497683400742290227970372460244028601236096512482821342888350728293131520025578316879173518888114635064747935757743036987278500112055071990050083893626222111771325636001825967180821846385620406696961992396197648291968161153784704833074175090205084162113770171672727062558105906681517306815529373609664114814233604414577898298093238569107841297217437100881756049736986821805149896369256972816259385932489328542025643249704746219295261351512534248471738070364203409303340244531124707761772686195331951039134003438083544264911273679499186384314256499451324394883822343115100579542310344664032749539295550540160850855622567665170847303839809514971833006455949304323439410763618020044981182666542737593227432135283318899494158739741213277024269716241969329882227645402441802397670547557447748822124190089218079876241471880963334531351998021683565198721706850494252473297196656677276951484709062091266142967504055416001862457987212228042026383287040522481222716197507568072853960552264650141570453846691500253264835571902531991484648515908021893553194815583495075969546491407024080413337124628118032684009832979981190798110447761746671386594672326719261140286765587249560600411250876719049856127975728725493541378774956286485008579234148830338521950835031238762218580470415748428194373922735885603436731689704870938360366716677297585907574950841168151968292966158314446427148768644387840459886566130197241849079271848787791983735989930158622056092656545386126331041003984758118935334961161341597637383384226246002444078071326799273338564849692924599558148315052174931797246638114964903892667853647628219593251364139643630870507861961291395029805742226520317127725466935658051381210399297078691974823841752792163035453768881163001556085979032580944307325240165775890721717704995025311487932957565079197841272632172912364418169803229275155961991450653007227936243278634659825679330241095561313111495622285892079295312185526875551036399689973651259968346607905170089345139734097415794552767398739940502273476383126464975217196053926495379899648312325394754328541348180580528387673477806950666222452595649081378480948529317753214806699629122103502323277861399082988570557542076830179992429581879132880774962853250925917273832723984725758467088109884707716793187418683300747881766821098415634898229999460442899851580866761901258315675015712419357995048003667766962065147095477365886927821207203588139287699310224270936132457275355690455072566004785815073805431902054837494254381580160229320338754259845108775892131655247986337526108452530575324361876784166565461816639488038617407626219534575282815360938214799326093593241818331711792828521489212066570574278878071105709295137012369742132692885696814035629041513666593727868110669166986094116304693239868886417355639954870000576055920596698321777111462306335507247541479804281468709235709683313105550021530681583266270597867615360647485252341787243012711904068568575815759009653683340073134553821099447548401202851476964290045516884732232027719168514724702274637126755214778690617347015977803133561676278765599763453548973859930128344220571341665157628277031724066516422159126811241173056770958504773379904871413882632420478796703188707038640567822237715713900383959756196415375479551852067560371169627217553987675547948157124112118671653125764562674480727269601278912319535581379003912966165278639009386758237501501523119271417719855238073747600880678013241629337199981174465288773081109719872465522199469668398955787810538630936428488381872275903102742616278636162609511493362652403548195815310051889838623195956135258657907940494239507945423880498946551314290080729050657320209849724730732179801356733171862118920473512815677222769990925513988426518100965967377752945776482909454357734321943886993010602896345726056225586398483009023518974090201066782325880376391881887491058642711471417192367737239538818490990669009576204252891088759312934557064111296111077167025695942819821823716848063877472998362800553318075479972049653579656611980860309065254857136482954673190892484911849657805713142876188694831499263857970899069759821132523622907994495273523197170906108253074180560417843757073158653041228258349055737126806031323623941609225021237175059568467545359292824437178453362326844506058590270067539904131212071456701751134894028794542392894487643906431186404966312664499549831843422405781301206552767125987777581226552586369201631420209189095509286739295122735746106482570400717897508096080571475633115741825630139500381590310507535810126157349877646669801975178137879142598158930051833670529820027479484244407338701171466769222181853836973265591391909448875854940244889328185207629890851139556003848667017155723302148385108249220504955083687186307252653645165887935235323499923352674346255119363630880150063191112455204753548242696672475485416950515705738397195622460333030851122441421477585307207735323738858051356073876728903517403029674466127423047431007089457682455002264910651908927136012110667581047573060130750583651850820843755282612351663167292038267671665442189963538710185496097447961597400619722175619789481606522557500412678964886939437389498564139925043051707493828867612820710207021000526636187711989037302579270112921709488470763690566705586566483898945327093464564935889571390292046847788530903533327215110123219180001338251361277997988356884025884047492425409531039374482352947503945137874629081367850159649287870337862729042719345033918765356718981472280015933903858079790596617385386541433997533646832912325873584351828111390978662441767075827838156135517683778358872872415328640052553696369660152091955639833306404303364203853361900457434364347963527771071358336327169958077460792301014603719847437718226831464403243267934206683627363098067942545920243483415254076064206076105382231119006510676825398465978235970288788303986105045022140265033172099782918525606439719821109765229258556185302886214412829078932748089293890628303179213903386576547760842741829758393913827257213512065589264905703217144710009929654238194887610206034102563980648343070006589124064776530437662454345247640023103690895932944822531998079078585738483580366385865617508295910340437916117836883044485538095135963218910114133413377959052807463868267019711836139937858894403738773136888003202092281222552390937558085378711052324683762023398890381037357412190055718689606220864481397311619990287457110353576318882996292386731089296985963679180719334860779618524356017280094206268255326109958481234827802844409767556540609381325419879474099617897868382432041007226795138971661065639242198015388368212274397418994835108241282909382750902692901628763313653615144081505452473635237322756876400389916191963236146961684628196632939601172360516992753386361914057477532105522154834623054432564761222887008078170951682708042178782737133692913705298382314462906086321022655159896206157282406233718782131627299300935699396745008722972664546504680952639624434621260445567722168272228256568068791074833469655725156758756349259519058036178035861586859078568484966208238443951525940908788247870116893433038152940131439824948824930951909424900017429191743478332565860814956970933988737398808355018278401196101228819285793924063734226061496903176193911921624782704967957589607406580341327224564685726817964755281834522941711333470941986666647778871004550767769897213073030712172762108328886091870494024249692198986198006161317665540361048196864423295353361662425003962946821450366683115700431218351225784817998841088307937749506406309844775153106958608999959205371253973210905161428102996342158911081891818352288815863333679641456661747467086487267524938719795810314172838096309775424951803010582665966241242528399487999939059043426188792200026849826803776111754831343506918458830836930926612331722920429431216053121382452134576393584143947113356489350877762086255725359011915042877172210712560085347147208109584992404518183386960818837278207690313016345016605215640809517391227477121154557384419273693994362851445307499316977010870065733627489488330346658664168319398778677157759616681372954264982740551944424384565334908365043045818847189232110552946712740949950438196283374461301466950793386015467922888424087205769529126380287488363192639515782118400794972558352141046699333094603449877441704554043601448804059666930817297117612298276000231087490024057287608227563306885853026920332751011836229230214803739218103284718735926960506591761187665623197870625930013780932438760329047350663934470876861229161953984103432121358608333473462599566085759496037607523855239553012650917136082089530449868844733650513887495432602955443197681093708384564930255163873592769187467421624419786392048386726115807118393141904567645728968575553646553293449161718471344620283944384102159381209711315515559511505410899456998908552456600931312199552702622542027009910448970949195717706712596643192193921965555000757500557382145192883910432345882933663067813169616626340325245884672614383685244866126831082017381296050565034088583132517232755360390025677570487356461904865078957561660105634781080478248587854796312410896903181877752579076099283550053752186739578181421175919108985739321023095421698211928495622009276756185048191233720242725836555737830285541374918801305160901848095654789933443686700801270022467343769075367008399766389084358488953058276469388018659053677980482683016038949631815994670446896339477104070025646593856648580152145306863407593952622375424043929647254113944867383598883000534272370636633189042056502529440885271546648606606298304976929402022543008668382477691143708170728934378760964927620025359626852039393674890164069376934270727654618542421105267154287922550838128883201540540996389189970440977397420301805647197588364670669146757389172295859782502108855648841223971502861174362419733662761081212416045315238701476799087465362544753206970329620266085546348004797016554081050452308108876589305995186831073108904448713065888392140715095572263804063618781408911538685458341492649949410108208387591501130532622201310980557266587770512411638225870525242921130897534051660213038193966402387954150729527641181468379809459822543405315424570538514822789538512764724150390909884056192436879179933780716220299382820682211342886677893292366611894396452969729913902782445908383289920213627359488097743384147884971237099241852982659886138677186222718478091717703962353053123719808856574802819692009001345150278212443229733720323100677180535690820118933768059747511961058658281716891649017565407217177901252183075701760825268426603190617535221554104096889378120268719715246876718018400295215734170556351728295558991320135093395159967498979259826946802584719945698697845634160568732769178152476657253667670621852064844146459897088318410926067892272842054071837473753432671085658223883824311104705323455212295693808087375535029964604623033631615459204975771317820723033267053621277843907940166124262887378769558884695338331197998299941905484657877429008500517383773922622057631821262520183890413738958703647413036730875360435926936796775485575400503739595210224462157937081077412085707194114328660306118021167897069198519168301108669938570467907331334208540548808453768391518999660458119263408432062883787646920320082765964106332467104030149750190248431169598758526732003240639721832769759559080551354987893614436221758045727745879548275049617386508417914634106180292706140034672197181075690777800574098097565651257632769765990733995416084929017889241612490227798332687991031863607550720291362309999875595916492051698388534583519342742583539537511773412024084084461273372638970774096356267909658902460961326810294377889086968844295179292670637854860974412773441565394527514921165242454592191794201044407927774698838253427593506876429768380803817763124122945519162454946201429193130850916106150475004783168262495189834045162173885316300114604157124144943798055028848806392788219762048128099825334861722705959938042510367448441946111700153733048073123698753765401433778717233706840800060771170599994838389418955740949917930806776256177580953333378271755820326241254517400910292759303862612430803844236218358559959396814467974114504595734880647965703066680703600559592046512064202851299894934055459207049758275486432147518780658162996813857402936113856873594060174535127349606500657230707807667674427927969321285906388504305580795559968302067772561601168477776149128791517130630153463030640204685731876751398829428315656408501211151423512584051244263064512831385864952025852139999500149422597359712761262798219726506626332617508175817340881038592049555263355988694119854492229142232854624181996860325652886733457359209258893893615571844335187752979135298037321807014497170328048482122187026802612191646151137185390232151245632413895802921982598415654638389908397994366858722137510741265272237783451209820260336301517019207908881977890930933274241461181733646997819932653433086919013657888659409477570139509565083128882316934164150586073627040286813948338536102332977565162945191157375897233039391893757842679722946292271891716638805820295079085473270122303441395145999576421958944665127287489587590476340905848367739016819872778793457179854082756554981427315091876694542133300767004258968149417156087001431519830652108095609796569705331160633537270423825433892055392617463917269229371476889519341587631422868620932455862791768605873846986437941222130884496535953891760413308942755428034760166043882461801394132903321848110916900004468427348685938757001373526678597269834240038817209050766306510390238831237340514222355704849006881647736106103771183173684509008981622714828386524461920721576692075499312392216968513838557036249882128728226365802035547958042301609146609576339281330142292778069886470193255689461026450113905301205004282583575591060475584196294968669207303758798354477094471867647131269804258222717220321708186943069900681850729395333343430342973139971840492848317760986457708439823233158776642576532911150612156498505278336855203553770824484394029663929422209482610180029786763423082695761514783858602209840253495364982450295921891211618405856036475473493365128020543529104785697750809190312312430454303029738731123688489306982873631697204463622031661065182264573567515268352591202973800454761013756345961784395795126887049492685543113301109164824975148046727112496347419114396964952850270030980331249483078381336530954346262691388864673596397883432806945138314165987973508109442757925448509970007264925601858363690943754657507600814991908496921460273668307758390114600992090448288822413622457013667675011002299107760142913513985703233187307138793589903136625175912860822704309651006077559544222661329974494946797065299667310838104612936068580039277257816152789244128078200266955305850868184659525793234811645138141063650425041080638662468902118376379039682828216791777410590586397282418625925550406252536292579879416991460630887405412081832629353346867022804264917306298742024132852064088689682997955925070381596879873759152051231701148250610837219494691447397201416921029472590782312802037696579053489211317941125419168512731709029818052410772479726454063671773386856418750220411707208278808811774021138085338234373630822309729848253810679338092194495955876054366670167180881302841770498644196175381014252766213101857801685611903627837941882736058367249687427432689166281933035583454855258842873873570415501325289169500307018076486829946812281510304128382303303563553692757053298627577855715526523529101166415487890064001542719313021094237035760255982465641175750667627700691596277945992567344864997353818097728121457376246405179440225397886330986918407991556572090011648460466948835076418848271083597703341375402648851193550306916113949150233383390537308918247348212441527036087802127277313207414448966090350436220265539932608366070503468675603187046451004878812652141593033832893478728780917083375190649267508510114891101494456153162337364641173009956675954296040163861973315608766080992484591382352240706018318657961218212393548975793723214649489889021665030680264957539448998660976020648284688384356965912796845912754587749328831188462677731915669046629041216207973961104425256456642019622702010989059227716395789024322860877675489445994579510337628276250050324315973271569840526420284137657820727918969288422247938894831221675041949515694236304384806866113654938533319028033076499685334876034553976757999252078591503557202231074248428495625965973911152696267981392884902527046045604305454346787747685088632506037499060811929889798400637992296706859741275428516062226158147707759228423388954954384308530750331964602086104269873806184146339233203914031158635011238332457468586664525793373122165610119211520801850697479859056952856977680101371668481851400814273178124007026739366041977208860156960365113391007378381824566809922105844224780482013091445742828392473300595746074159199739598874706208285616015746587780960799227713794145800482972151433876403422733964039588787647020749991165571554100798386158952267282131021988724033323553263611024720326417107872679834091003564558543417928543832085830703917083693918125349889606770464120687167976425870507740479228097368062507812326544230304301249652751732615508814471266314788321158894446927455447995770073679068691375093278675676136422270119470621203447237320664140235500587979085149558643625265790547096207508042314536538482653453405552681905592039385190508983026832661461109633239309494030534018399167959284765746351134084973493156944106755913142441537019842625095751998422706272862579566718437801681766259060430722646818477310326716805689264682162834028100345811243995420459980464295307065857486129807398872382328831736674349805836545381000984657279231202711169597094188254211387124770514125096451080159271399179463932791067283858476444613752134097692200779455654512002110184442719158979031125405967668015849361735460171691245787300302161451474416755573038200016291229240863362368570181823081380496206412723344000625311173344408645948584332141965548142953628378351792662846108555184909367566251341571160031122122942133872262139652201201798208378332675728481650422919046640154417512286122264465472924281210496408855550256507714692869693224630140780482121255150435906964111749197651346731471387933582306771962412020673582439813308966879589732351654445089572181859779079807605239734197876229557775508581577631769180128773049992760013351548322774117473510940069548720663560545728766900092699013905770136306439946481495836786021562771151636988866155599188558794971641007485965992793805159916682881737471207606729615169945713259969547206200284372098867529485160554093463128029433988176056177273370275689395069735096424849518962793597018125294294652126317196818336650362659224278107964170155238487702119392016048388834399473622405465009173459314580766269927235158284950557410635526932488057319475666948138624324963390219788892832948776891981166443023198193789033495445174733732809319410354538779698751826153221039700449184818918261538200705115783618549996010005638878080358566067748781813306684145274140113095529441172930630605613736112501298970617811329978223167002045972050784394366552985681471117909127221184776535738276780145072843975033670513453321222458475823289358460271675854454557719814784080193792442479601613251110356035791672400504813443989759782988563082945245075844848961266974198756160233543282884602279862027283128122267907860376936950551640543476543059896344314055779487451119414382137215333864321915542348880367872208679083242743656091506109970183684569521806582170186897262735659699769027367203399449802990010656418911706020584223564823278342905199938280760169975727073667541066514540877556190663367286073569819071469854607651252011654668586664491320233021793147538483398853413823976440631816958718522992582793568028136927171337713778964691242793863597530621533292228584141119662363412951212277739625921408146238555359570449784692724031969571709734007226852940160471859342891509448984311667864486130226844005002789635340440845610362480382221870643449637783363616420718882232127317705947639287008935330538710126056381031628897896109310196095689734917349794069909205200980789908236415181168489047657199662361824745754950133344886938665100534868581468290952665810116230455447531318990154719246778043643239652860073998393647189708722876833358457033503399995439823238435762875731061468889184221808951514455504239097952954700144137145616273796033974156662512546382671544840388169543587955830640091974410085116705844664675075369188801546585492567575161354346021235978187431146927559784966756552476666491397584880881482343285435358178761783217294021620645679292028428458941543677529965311702100606099178983473063286336745407812190142222625173176727376435883765893314269791352969138406191010271971284944442802198412804596083064419099578935554147262091180927301676531224741387918260838600483419406136091050510647158541190111941855079995109794194635530343967682949516270015213826629069602780149115499987432324235961355950131656221697008274811987792688290479253923112152746051918843718108666425353376244414196540539155271162355453907030149047744173228443795513144337044611291783507723661409480447118690906991926585253191287630519617808399573029923300905021288055343918218296677667749938416319756930963662976179870996418618330610132584872333632637411732621490292488373690251006035252321359353848000818724155700449248298122009999284415048241020172098317786273725260080409144388815006643257434216338564218228249521679965331634152898099072541424876884835540934018367990278326907937529951252525985155187993554608578378598751756976487842013133033134931119090019975636679019524174568897573338221296840567808206723935251979271299479333710612694519851667519023691210739503357344306217933594562985641761117984252088563696340848925977922570524925579435557322126093637834028341709895861868948903669158573243439112840564740416523048817769456099941373544375068432816100612051210511972596559728877091714026435361016411890566444280166028844469836208657810151366642825083256699921115789061805383160031142904897212710088234030445753252452520166717972491749943088356872300451287326763731055149151628771129864710741987338055417951661303014389711265860952324473399451835734376527267764727800441021712583078093174310788547078328972463335694485694586972054232063949546618794446557664196843588493778213517255883993643819541621391295969701997044660914101923212349868960840009346850508166302011175006956288502390687532510942577097692121337563401142461746512768146505337971378062920676383127687407011016739146568682734069894999836675193617685825107790974314623932391863891013177481549943703139748831919156615196457405216294186282630154372339053402498003384815569059119411890833751834005507335856169716292505799903533331916196381034916373837967413233336285661891698014596385253816646471771060233647121538686675324940444119730126546197091119435976712483885755125732200344180741576929869956169887633327563094125724555094067018100176472323937055029899278612262826799391904879172679263331390634842275718767207958432122012622394489119810003521864865107851860106183544465240917584976339178982030703878952513665768003725111917623898109486688064554624637626677886669533148828783737907741454576760801311699409939915604081953012289420606745632745232682569812913529505288045443877162368963192730943916169419559014068830705748515358863691522129729609460483506159129995883046617711801978935139508610724379738525580192952367244865109972024663007997392134523640283204015866332813238366163931981241349923325168537899700600115867210759997704152284885832452866959340075347169793282003317546591489030061311387795562144926054022721056350061741809596166408980080732090744129289443647452085655499894534049166210569708388781236114223433833186918451415239926289639063859531819853395959559344640024088950233492546070972032189053750941691900434773703601893871410855021823206648978458385370643147511550522301430118706799789625801398447069578870208064081264383825814744469371731550020455711995937488823383867779627876376150829281367190698843530298985681835012079759449409386670697833324268849319709752832775434575874012000324851082944140389172795295980455347690725311057130258935271494089674125946693885022585779376337988129270659734171517350444404373066110804046971831357827432437885466886252564495801106586755500331565205199662445895364652513792661325050869603843482350041378506257984752953097466811059816159205452901139280687063057585523212996929722827098520517553401244866682641406591853924766583848641067201180106185332172999368791832439405867254338095683579043519978048953311685307646713606536049058887901655219977742670111371313313290928636745337939828786264734121523055510495072787429259630619335501618201991684459954935830180269927737214748035215085943266427141309037590787291905042670187256828190680843762086757480098766438436359675978219885447639666687897991694258936900090626762929380989347596627103671424088654790220274293971079750914253075907498302550745551469652626241884976589295269500565284229421532062315320263559595528045396469298044979933947291261440048087228480969132822747590292196717869680894099840263575557367293240643118509912734497217374046354173765329489730107431369830195161535810063322320777841392741630444636700444567044461301059696025163331600908651473394465032341464776937982722412145362998562269126347444545728334407906297618310530109316960743451034604624438307549228341225155544015062102273289956161903610398406312900443215700445569490523610394668201396535568547740146125534402148871636894865813179066086276760688418641293287895722094105263269999190257065263495333578660243729778283193316128504221036620739909284567864987296302443669643001935441796361867941438489897317953535933987020331214173773583332320444692598381137971155017067451172003868493697303852312470192191959458862474550568723559288981995701101350253807873933990150334775857512585776860433994349630386186526229660240242461663300803400417236644563411006888173389712845334054655224655002743315075057319148695647753559280230688494991129779091089564080749442699556651592907143189076683951860880220922520433815820956578947618741390368037463323012691066394443602212099513755061073031322778653292785293656914404068472190099746073610435156168747965706101691675614656317705175057532046988785127099911990579878697194403693017782564368355338586790427063610443412854825170051213786882280025931601255269679882101616587147080834444336715035875397331948173890101337027710579089076851269302125229484073992968495096518703441309967012386087097244678288452521226237689396905510517884747572412543127271238146981245326698201549607921074442694109742028423541568520867613851183439011789257532073407478858331724149540402373896491249576793710178475480859854807398520964160108180261643958844782751052795068104258162254392677499026612633640318648667653757287422777340224464773833271561903074422424714055974888918437766200732788507231722099516455087670622620545733647304682673533495299610980812994108173622494596915975264372641385621928180661209296522627365257537708523643884544794638316821171299725467217528709575254317869281363523750777578628277582716995475146120102715819607565307417608770485057424053329232725949327056771464285304295590288122215377874237459080293068835421113007054549474267930002084381117899480273562371700487826792749244675998797655853020596177945288132820045435199887828043676435737751339566348870807774399349634011482116684996213396581183993423909141493425717803246810543108244639197544868717687582422440174111067418391182527579478886758875128565115600952287073175003905618374549068866361612934458645392993933526638491483634835985091450808515929806450278637478125364113069699900236705562079266697888984997760759748361363065663911740516304747604687007255314040831656089446096889768886661666095873259390471395528232589175521822679985674099093772387093860796877355022170687024650132069587747402053500999397307718303530484009526666971213154547215375477731290962889502428922771483071540407784455304020315725682953985933934900352772140444007026219173350331341236741318145870609624804954829326763994562340194459072298193054605314826184858591367099309861934177783280977264402135400021882557674381263495851464139965770699197811444437849993462770164196330887787163899334837508351917746821036860925221890140896640100283659533124029800002744306770382362607720516299264783284785909659043153867128961401178917357087675135396628198679517509512330226576944513854689105798191997323201272287534286347003824594495264954433827085487895977259756685120238199699697007811562828744758840737530803952725849679870089669076755596189489980692663417256008838630561790786621896173690162021862451183066633278365299674455558625416866602727826362046159073300587697507129874669263434774019688897203169624847850330197668071315688343441397607373804509303827768575345519068581935406066758524593259077872422905550798002893046159148851336182603166024891081909023752473621350125329473500553808563031555975191922617700396451600138402193230423338349949277891553223566357024306901450560948228414553889837446220184665521271369846239232780267051602706086551651893354212771186306532518328329675885428020035309342726953817853357761345507006491716217297171824349351019747892833793783268547962578770997169156598561077351678372523563106145250196907954591817256747634653747899313451499705852659818385541316161180746227999739953964891236781706270060042856363625512331977368365875308542141137321942441155077079513385982635548538293619224910105680373453253182925594201004567943277940030751637244340679440348746598482797998725423112095092208662433587845883137054216915066378190347842451282926913973123262825956148100516659372081510743128114888020595574459548735744972546277305767797865541965050509522257468153554842651789344953454638499830974986763741950929517238799437288409169841760254235292447808397826024924584795444914957435770603279162850126938249141715145958198012605024919199211247272495413307681599890547728995693060298061320466527160142331227599573704015482587496859854874265919599423008615945719561409584130158000791093860820442089800879563663877789757289264235785598743201615474686499564685954774734483455775125379806052068411814582561451534290369982065266793771274796208804971421759991452400292281744578263662071989219802553094591419590347135084980135462666099291798599523744301797416428685949826533358355957057248590872809081883354410863302680536511105852576240979708691523573247944252882184143477189410416948970861186802242741399453073218237924531307197939000194692793525984147180136423531133781454472489184765581585254543482509770587301441386102315010106667924479421923412005375021634359008447634547748352675898788072774360085644187675164696218009221301536847181050462081585948555338104592942309409449167529138427665244720559209487952374287278498052675274988215699734918596314965349354276787459529975128049677741401193319123373202339559556417300915008020481713940190652498838200730398290193643435472141594971541336008965971878005115088541644573351759788831576629936428823270149482289525192646310661627756468593451912315917769447169398447887808657342189723887701371163801535307697272818469177079444250270558698070325781686373167218963393530605232692362763438202071442936343111599551305679254750003215511420136567428423309689668290324288150300437341182077945086748446174793725265357528273934750507299757244326363197440418030100378973027690111255745820873220440639346123435204443737462900647128680823847548063667258402029592406811485409212799944889681841711350084354422317810508403126210027507843401510203074884283525264317467756067760768402491915427849646784633943571679084641081124320878087217822866787520944940983431014972099198907652961527057146191277164795098287788387033948617401804296355830093198003879036350579232204637212310466151298950031141101869642974714390364805188822406078993342483840331942774655169254626077512776833701491298597626758185275946076073250021059244893206444602327010274330960782046424003849757843855363754115819590642985775209374635287284347065584568948457097104223635111227601614207591791160989453811496659152543833283128008902924429788859800130957273911424959394394737082849743224927265352202273821327931736615429745565008567375129084417675125245948245257191822098280597842185844701035632005633725432442121836555366721931552266343708128718196894813227014933390725904899410188702263656024214257506616126626622341017244823610316296905585174867479876457911682744052283618151409596740198954545347261851137239605144053066335481944641650718125640674379671017063310008274321376421598423245143928842835705061065160591444189536461297483030237402095208639092326315005728156334254945895483841176107410686840934073994551389359306064293153016782009247229838362483658734354945062531707693962218253267822535865585599122778974229609646605239466790195578441250168147495325355800480969146122656958120013444047560334051908857267239800376320753746200351865781435761546398860801706559306851431158950465156301486557146733039762321672994953254265382360514793928502862631871154533876070478690514784469177415176441560297399955936722974171079731497789844252904732775438198320426264969350170392983727055071343224015671226558358668775255634048416752407591248525892712656999790655683772787592353209777081720263251997747106587401824895618663063206557265902548365043854083367453187626105612227877498064058386749090807795468393662495456189402047448562676961448053581157368191402376510773284279127795363762773035940111033470587013677964968750958884669576811247268125287186484300351272629937062102443731884496683576734584061419025008571647668760398151788874437157407227973900060767124628129753319994292105910342412406250584170553273133209193107220609951864594374108607909068991081713701033203137532219844825587983773982455842782686090102236172321401380529925071301647324299268288910267690940343002340197016879866051413509511874955195182636732221488551788737238388442000741978192480421451683668343024658773916823289281319612977896083729893962260743547635617787710654085660046065535499231167420075801338270948650099499752941064177214157004770747945782696671146535031680025400032039319652805904374597328061975424595563692328854350882341263597265957182080036599755759503839202940792214639762675489252653771454286593620325470365052287309765417781119097123290050828173233085547916855328409307008360309466034408883942061948854133172788372017823569883968772898679293528679353945719117505220102323982827981695375189682139691918400006428410048347179843341501597738111837729618893051345174901094565794116047849148318419016006864407423020633648059990767352830912299531955112342750927206622522687940192732468241480435571413933029464622828100862573496047117754329019656279081188887732453645325236214116638471934125628407181219022314927820663250438299687368598061952494352739900997611024856947045024221849991719185698271225344185540961879012529319789937156303685778893932736937413367712104870730337247367003644531316048694017500319098450743096538956410763037184288120330937250957035637186216156984765148682916343047510991885811859450328751596640447144946515303875372152633531837259847390587559155567457088693375064280134719074789060028083092150857206443798949652519549449485608795750105898906565471248375843790293278412060484690542497153028806971028928822213821621943973628079966443615211237325040051600429257464729370647486170556928215172934261747766726332149253279636696898248569660529897700290711648534336181480283558631192776794827683346506632168969350760871804266659501784386030619056822379378214978429608414184102512733426837839663587520831295616010419797519703939858223760381845466427258815188776422240490643568328598872205564080973670881068240071565219107670303392601530081726907448250680864093543327584802892760058259186254377245200703260712758359089847905196486716381428936070279692865280018913788484151526887397595621704237863063921074359691545175775209557503337219563016664059451592324505802178749200323927939055722493159624176213373809988155679267675467030898944015726199920816009187489147120322100691459791446003807858918317743995179431058271949684595960240325470931065947142304337999075261118903830755936613178127691694110111332036186696618523334752856960368488632287681164008996745377756371726283923699382461478350587846114086251936747205616199344941869905546268673945445499040290057996550001272213705359080985689395579075149775675697507801807207260441565167843897873315857881959708398365076623961234072340854620423396737234066424979297067321117153301797036137798151738736378697936229879377443114579168880975264338519307765052908261674125896410982255094581735377455263821177366152218534793981584512545130606055268482752778453701769887292846230312929859005035168499510347750556610383430372364406565085576372089304396792635674582545695894748094232919651368967550387328247036054314360635045046562291947066594144816813392399734431090386545470253466006974518106850666979957922499848791135198054752463127407052103585604495354234806765324925666699484343400125649474658779716100804372938404722533315815298793789268631666186860014636479787554280576519911432676554504591021673586715084611864584633215118285123015679950201636649278718991701320604379981006648029366832723486264067213041312100642425021902882963077304784222132029289580745089099692896880676397063218533571423555824942650590956575311692376273564229659427991025706810996924970867936467477793879204828779085549970432190884133187998174336838743910213794377797366873397013601360799152802005735529791573943178221978796324980624942071127818231280369322167666594232408926460278069777331066770212942910285837274311956635540420169839619685300681131856779564835906074508866188844003228277854453246963912018987478186801134606156652796150775276032796582487804115676201734885447307660106939492700129295206877972533442317774707665995319124197351804647868983367039886144328439466203917123652552521198128604567127794218498128970589237034972022996168685720235336178104106357664009786784862371544997558934109286162982837719631507063162289772682177735240428973188068124351069965529624669459267124762540025300144949092455248322450491120100439164926584545195578878556889948257213005224560556956957610231944356029054378423546759509068081674437038209782171220881786773879280413488186765549351220356498953385288175225850753289567945579700695697317871944865606115469765068549247470449234212856582468001129272763542799111977530327187783947999974046466479279555734014418692791405097839690061702222909608150452587373973609491423039915928934798445169019993727033688425601705045728040184732181617838277555431916509604390332024830723308489069543452879459530485036742458606058290874635102020972432882003746628701921877446734785021763898961566006248560145803093671497891602108766333892474808638476144345717241014531782356301227805754680427886876909510023040084251599639970391586461738549982511363805933355270448898794006283978041543359408073488096008034570380853926013801276420198668656628776137061495553857182614956103506317014633853498639411730023101913129361037871154341304577065556709623872658686211890620836443071788402850011423093416508348174039363476942614918478921421575619054298043885458467908220445992449402339155604758144420148902415472031811807265857666978747184886886846829813425865156900888552824180319184711086344318108564876419676222090514939254401615511595309666819785187100952829270621027506979145081174556519821265854501266841587422456162117079952867362738445456629390725252427693841761528519872393358844888333160060867065509379288417422209358372577653876557712368824737467853703244421887268498258789557909324364038906103732428558378203270199639985185230233005198638612236284533463210306071960986512766352210334379829212523797556093405547356187333251439788103225091366723526432409292386127007604448335819533965638198150451998789202491345619071798166412202567688184119244928677750778700210071768394802728346977242291576022642860590639702869963665849792449822578684580646563752162031305541258996759222811603312632478607635779550558345223943397897927119163522707570731287222728251760076922526781558657630785803950808989710070301873724413023069172853249371978047666145728103818679095498443555586701368884146672296030807269803037142597513415509952458840618179846040357514303857945867255991055760061165164122377248965231595866769482115892040000952181402093593378235354661001658405094552009751588819466624279449184405014471029583220415348320942835840137097683690569346766002964815051463094226337002570289595435394951445213361724284386143648253705515582236578342416161855040062145368103907022857529473873127822157971192502555556409656123573421422317650499386800949787985920621849209536377994726993779382404165280490918506718836490662552786392693861445530017610298968745735363923252903131024266418120338252199257994049344212571711776322009524489510182306137379328603388858042413041438246428213210270182243395639318442453176931364434041181284421454127188759863327988185190137094991223679772031544285996086574946499182399152003599995248292499895215748466020238284226364813823728363218450697613943009022548794195469256489869802478682077644276928825153077165112122446027905005413209061585499583541032873037317677458067069019055596893403669624665371972427951020792138154077776893837842302575326101287622697108356875885899375814789614190042725484339338407343324771441189512600169735947166871823681401981835621152590335421422576804956684661233596975221331799298337535265663876403264217874214196100382785094179482699019195723233081718011508530589332410331886626320713777061102944601191877071026304120828957718956565634245005390605702387350759691897264348045323569412748508837447753298825201802584450896162804691104940761232117360400500829757338657424744788461873075723927405320864536276450773453904201065376430767074163368559940251819203256535608691557372695934286144063629027759559058007800218192680922738316797562278541999215718679197491650561923375826861813466914206505457446714991650334778094139464865905265186390386876183823235013655949767805784122887247993271072158222357035390780130917537277944029340941128798662060980678864717279576692723833652089937226070159881111091049666677253627214370282313708690312482766875459083251398442477001135962934684275348498694333620280128347805746513388205114891336222725650234471193243869407624509175981324438885886744799535689101995205430968495423141206710403771855513546420402695139975972544617048179674702536160328059868098397077763778676903433059444090824429347506000099140691749297479023063074028915186868039748205455344206118029653957766435736781359613396213826520122578497778984838592556769765151708306002605825789359271460672283717968070364510699786470878874301059950177182106916702776839251240590855181156383030069745769260136959224004145297202960031695386358561840785836918353962816384984197097494592387032882598782726161850558981236022292806090665256786576496505641427875564287276740325742281185994429197616947439386324828469768988957816911294668205671499430152037322288644091148797609451339996863675549921867589344142163235325305050659570709194717014566452882349054549993504951636361830153351185959422420692605228764242082747281640728501704692025272301425470066983625463148652236265568249742881209971723171635291657384192904505847163136497298135390887133494107921735011879291495301354953045833566849007073114254419834155303260101314189230284747109264108024045810615541211821577183048230788423020343950088452406160658574425837743361994964533884969713690933533129743537515716155369633842529614284079238513542597697406779475386645194394784237848295242217157561086108109256286662865339023006298152656252471893935018287091608577840998056288384285263976492064936012517361878940906883531405430337063269719996506109305255332197621668047974037754723423250197793501391419504375281397841043358397498856514515026213791578374514181064157937831238932844069560360149169972984590776032283891053922559833294714294959494197619081869264856845083950129453850837983324818979772838747681863608034151990003348922726746649957212889317222904189598129835935750195527379524559243862393174813170917821063952380382906013158967299705145912816158057814163242969570940055616218962407217512530872454710053350778081173171587371271894384008573923639248696100471321072752190580401629296933325416816335148481096943760033432720491240346904311593261566176158516239019864111637679013187277733944095368626865813726410994295371578867496392850125335032418156965283251050780293827121503501384929053319423139481973577953027134587825112289480524496850866198609716609393272722790506835768168883473280830181765058658346174408765987711731531855390464420277433364298331159970065915718854275504664919685752231019115836243355166694253461997262319460482753688983315386437027483810030759783774769686883944124309966080121420588085708343563024015804021563876841671727104138876300988609157423276240286434040227162176202525421653913366996076691637928167209972853598671119687279682607775560172353318736274600801868870330962136353182531920833906831894383677791797588409537621132272892075312135598833669949998946168636126379841960738973253761818142681229889853463622164685604335960582193932272149595784040952706516748799943642464876458646452822081339711181786480411601614814845570179485528154396886890389927828381430027906739250509853591554619323253873322177205536459974927605960321098360557012089599977357744877065626982007053148937037419441654035806900655628343511406413471016596592258112296462862631332308111446265727063788076648910899702710722690950491361116186602763872845337449872229155082136325029955086989994932988524870281685673405377724414990116974477285960721436933586163787250490187605996540668830892436787965428251137681612566891952113646633335460681987232343918074013167751744348000607615274942803101861456580754962373008179528896824655217016292692714946234836747143790602783824254843343685138863903425534042665450562738288989458033844425848839230079607513271411473094985860873050923157107613616259456141188205196758081806881544640992085001691543420556417145374347586183402912425165395771091625002651850534321374595528317637635995063187085083644901482683106089113132240722368260423044475307984257643440181753946835206870785899941939032123692894874545583899004497735317745886569379917853588799855690074361369960207340124186674732247369709796116241074586877040371525061215478677585050326613476701990742896724584378791356962373683613935037770115336696715175638143902280915826153307129884422221210194515905287991777412418047574679394641815169707903196539715738813925060091114273716391734021274202603450955998190732005191767311445917900567407401731656835276838239747449964455690590185785329921674958634294200648599245822338162844300420876388936015964030787756403689711238158269935564915753147753526713465512036526972249549336235589965855645986576880323993888120822311472366138713075707077589997960736607641642310016275644452495031080560614673644106827462794861354952182569130054529507382446872635269076061904941956067516134761700070649178281798801918189719824124658726346386936030865670307074405804672980304001725859115538945346386469315972437924765101848238381584174769756075934930963813476621849098297039351422379898576497141753332863661849227687430069795723181571808582382722260935835140889155113764551588291401697045627443109493260783553476836926410965973232129971563209693589839752726856132376116377307464273256332762569941145367076101157952580234618118863640537497752974904136292031099116826311367938119715554134186040125862783966110457719272080484285339837840458421870000491728993592943325425898742020575112318134908566063411569885748540652064649363869283283292125675839745547033473954522060373328723640485804831612935896030767863175076740267551871119546448125856018250240534744789013590115174032998080091481420536500853040155810782349550043923953844312828797520048908283427811474150950575380267593013742842318387573859699452257451478355619588106520084510198592607654859009270089895624728365473787093509091154115517870015025484512022171719157097697158021902685704442368902985955002875837561203561835642925584406152621728059545732532097455958027372468268963027561418177667808274084048722191706165835729605036576646090381886472308635589534692558009735688076288171004693564777812604392224683865478193080392769401118370510133229508746367898921115317066617920487611401595973068308239822631943359847449079761341219800172471015613468595908989427643235720489586250041241211130700163629636546399489953968513586888049223969630923480954458778007720463909709252782505536057247125398973038475022739711727049767287656412375004388363005683158032710341461268599554060754092671205706625687219706016454674628521550152373013963622008840698662167375737181838251401523807010242123550559720403443788778040159078430680356026504239338194938404226424733272422915594664512832913852239216608011109114636934538798234801919792164659172161419580371330918760847386872565252833018227232981262921000364412869982540191724414073418581086731023343284116674153508478121147159350448468532454427158502272844224249568067180998672836516307742821660678656949872036444307603135150102563454785304361142640881908696513681016649385625651038505127139833533031821130396974573106764854584695150870057798121272687096882733863319217206076304940884642346360790161698426961077822818482248971113300919065732363102728856825320851701883620751422985858966981498664000207051823996960242248030873273576660490175544729526906527863779634384246333929715719300081583814677646276503617411541247820735120008534972571126804476716285851300634860748230068544372289394170043463790386987458548098234358575448278825249968035910909107220214828775274399938952666304260470945486987229815833718125886744795100675791160690716459328486141579280966057178245493183229227704204819901900040198460979056168544919734770075232375878065184027214846508315798113894773262427168483079071346229362333034535157162069061471966803263682063609470688798929748867730121091406237011770561067454979504798791453408146522021040164269268029157171292988242237835728922809406973747904365770566760960760445767327317080150834272680960484253562459700478630748847055128967980845066807977860680886294312500037646357468341820324051811006547008966574887395281025170560366874183660301733274438543137630356246763805569807596596723508292616768956304616423603132446252772145286871589447342981063535410588803853742777695935654680690901463820887694347890414808778488836005145478751770014998799983580769030298847898147501825895514488513746851098916086738521399425382224330619151511719746994698410870492692154951945795328924349312134906386427285086283762619355688755105029761161521782668407395708106716035105435911433126110223057082081889169402919103920774383383549153129802355999604182857515898258126461286382192401638411652679890524925915873919013644570225870669698081908024828168118071400437502211409091233262024826135564941652514558486478204520112490455052924682022750917243269264045169767131146554157458574611368858842032971779350581038093337836730705298614350828244963506643229530836664517577684770889384135384331946258558916744187089574633520964699914035217312250571958848452873438653472056761137114748965536938259203603318331109141781752821085628480013083081784112204620126818630888034485524835544302643559315057011740195603343004772196085164326204167781727321753128700304357923519645241915862564884464911355102978675807439615622630685736534344477589952096326865813979554494613253620093911312414024811272157961058831530387278189553340441991954758600518526712733855929871092843474815523326425236586662053212032716432621716591660725755822176264887111138566876828466293752095918990116836758785451749431301364783591449284793561252031435306886006459103483684988314741137349061402195622347597051083669521956174374139336582027165702395446013972991046703312693515030705256369358016369963116818167556998684689359394085985472197109971397010187440322132308694310673242835344784985116588551975060224401376939737362047021628610576535759435717867449573615128981510459057420261850817992713682937536363674145618836945870191916339396921980764915604008548553362688604580176504994462114417806730685038741149577226600820956042287879977645783194648892989486143231765831070695117935278946409293973379375006832970754992416285473202018943531240283725275917673447666702691360453689100948657121822533468792553066893200111581067457515834937901728339664370330066194996992299137829558106939662606358045145805186829418934466468084354130053313192525119281943956872196449621356178779471580323300884618329426048197558370756241575861058128658118099964950945334172811750113193530670568647927257432733900798990916416861546772771363351486261888325660443692748199425455043582652283268443042515860464602464593572762987708289567632218246389690153543342675984633263907725851878709639608018691941330175931222585194517272609027778978702883676538221514049116666037944643973671984139411904007025281629603471859178151008827170162565472317918088037960833624689755733602968844898611533979682546874243187212613837427305030512767301913909532709251216278237404917828894193943551867880497418778332419838494474380403590342763143702275548570254553204197089047581049165177662718787675723732201081144263722472483499205606497739643677846724075714959030626729336829857043346995176783034174855770851888032057512382820447265976278076222441594348706749202492614549214058071031487784238751654070937107473514110972532782436000990764911192678148524140929853632699915237789391695430248047260889008504311359270970055608224589528484265513970455212520157807575466785530399148702925587357769510528860646753228435720335547686358193979700001434872836313298397845434094753103415460291095060851069553779429856090610730118303924847956058797152955548314742223112328769085887574801737221110738247101247074618045449580753729666454949975062296042305418889933222776340434836592105160557116162439392065662262899786345946780572969804512990331102510679944677424498218194114436064162209540690559652518380298500100711523707773885821911349012513806521623243271531178063961709604619217057643450902091470503991265807134051836651487290384601223247670450467848980006104556388032621883731351774394053861266395053352796061118086573205641026130449742647589878326667958655710956647014984005810591469387777549021758292999100547589662876772398133981827217225530909031628130965529498406252303298955720659280872154151077493620148122108169875986677988186396163343727794700044221319104615560226150044268916001884052891567654954947767479863293849989583011509816333823506522627271697483094239298628954720130173054679169226603631552125638207545963520968385783830475004451385099674786653628449444914908066933976503288795231983006746324038724501648388506572837551627832660109527872370493228659465540321340521527198223334462140122752413856010558314821604758123696166518645679600393699097170993402010200693976738004463007002701716334127042969400021206904491996705118220068267171432660331541948510842879664771157283771147850525850099509158320954375339094552055199780724573171170979552732755432846896989154542654803964272627772625320659440875689570187833392605663847066564826863059309230682035676571202318948797662333105896859379886994396975461412795910538061094634551554099288178608114485448843795306628248637411370012453483561954448145106781917010401675281518824972787844353910461354188467767546046682752055492612566765839385185294957878701453070923810051847555932148382625530962222624209125515508166769736917919702261146199550343479968376939508564240728246294380442913349135660170666931122340767603539629300144972530443213898803818172911766725378401201306573273937663531651303504650675854198313672948524842364736036622005971621724347403043044818628441266708897475602663283214796086422915145938978370964106721449816414198653115921856056621928568904048964443723833985285240675222939590676575978900765020705302585062237999943346482297142436067932074067081655371252619645429420676051207433716609238001557222840905191515680461234780342450441666927384334698113064938905541009872299035416631918213496967927668640182194036551422279858985687553162736742044591740729738431742753256182707371000528389881290768223213283047565614117236063182778841144159880313166117516258085518534616322367302205999914030376374705418242606005749332694134447424388505687424633279106439818293318387643776121796276039280634495587214972907450923916885041193297065566450637992578926911103542511633532285132899224031975898836666849548582102503803179893559309308639218521308245801755829272251031019468885187863612053469378138085106074376989612720718611717580605763087007828119144567782749483518180094124257690234672371907335998578038749270404056489288773026364146447420053584173394467116424732530171456800732082840310709130220055869763441257233657900475716287669477847799641373873994080370166122606244677342668857445943833512984874300810690174189689214131447125878052742531951465260205311951825341225190320453116802265152676173270072495000984653949325111434293010362096350761320036208551682840788771782228470419545200824426290168563674131668175294505294204419601258098493887501911757566231614899456521497399314224957943307797247361065503410177718675368738397112833416291522574972375673083833883894325691999134742505820467255649812501974452788897909309645029292077698815237716293462745781487815499470236994756766781502719156435555368475605512220188876917907899496761589395902433116629080028908590825013779589905009139620619270663139244909633541769482752049287208815245154383105009756332073193292127377779849610003658892860922003573051864110698095898135463664206378752836004663948396810970497981669438626928950795933205203379787886618550141961744495887735710837739988734538874682259234832186867484585094955397267165688073834478467567426320568302572426025460826832470217267233755739105765291840629145875913955028497417978688914492519982864817445928187306026156777939676254456436629441082627079220544665789918054220150913369416277039320909582387386494558455255045254746976008007225335584188727858206022817730625998976491151634036494849594893219370814578211018506776580652440386341202972542506979313590142417574975082090617929926599379492576126337582231663179707394677819780710056917074123342399625468834241623041070439130313975876869981574654630922343050313702252363681133040150518232432812806078221410614552933599797229811108186231167130995896316819315659816196502200690600777997918069214510755466228521758993177475993246770914411690806782683542803446227082551826437169253299579368400621704372176981750906207591593771984848051752789578963331940387587417160785516174411514490105457391802296072494573286733446508456920320204179666080148948084521856561666514675921191355904843885257958142537937180330517823801160713891780710385905497351442960988919850606796542037813667696091145345275863287745522816594446256501054497850091688653140582673330296888566115296517409099304517524497571358113820733426793862500165768145534153527284140471492137645449493834426285175327856180172011016879203518794632197358286308050555146307124124623443544655559816791358809802771379134979554505268073446276291373061581401601137548394401177841093513813094893014979351748324768963145365173054412930756308989361736161019969771103587446112976122288794141940604024691394106551736173300470236160394731885277932658678141288682122618988558408023710739668415114908692669256650738171765469029612406826327522088525124016371604057619318513238480837414828274311381217157697380385394596937280400726155381421247453449144819843401493976166390384463226312677126838311647967643406781196948432124047787509495482213022024903219320561532088697061241915643592003238867762506409230633800574344578173138850970885857386748926199235091011045074883404967801664512905043752964243763878982566637686876218304313136101716481027227219158957004827840580365646618822976706994702754614847044868690847476221843160308341284993264292929131543267559597426381848568429634662378363520807481985113482566656316782092065511164911105263362290682801062725492409381279311701804509269246523721891023056097512527001342065574805464425395266960389740540488658943642463713156037938336392450601689144239687471090850737698664550154484438675494334661017669937985242480787281014095671596235162034358644828166208405263502521252902180370912525996712252242363471543998372100661955288220055880726057613555348024367242323540946753025732609884393393570214168842481534015037769910521550752056526577849296001444549074082888912707635145836232424360226524553248442017345396684517883224918227214456063885111821173649710626325382515576201981126303353312452050291297006454220054556836145797025325605581761318546529822668149412909575182912574358348115622786524234911041224555193920556159948880616427662921307837613575601533802527420831628036641959655987582974348471376825914844443722625332674342070680746531176420044405285620554587040647785265042466612780454406388160804555874399482682859219460096048670140795605677912702432412590088310652542667902548633022094714978639178703304067031998677560078025617678699956294249968581826647031015900619217243893233778489378066197616444322529818707354600840752337340855354789049650535193356911616275179599335240533477659594251257452450281380815981875847514559993392771733972249222298283844019842011463430033773362894399385163763022068108750650411853753846668232753268575851127170026527422911009219626272322243419662110273375368967302827129160384634593960740116002705738168176360658635760588041499469333340086653152938336425088947207942614807258794226099971660996870683639435030165651039792538960173249670910905006824552582995480387854610226412077074668554270406790288232095749817087047370697912044246925175969306295424293913567548607755306138397619173913171199700474512772654672137807587519062916635079242230644792610595614680408635269014900842798645523818742332841763836384742786525359792723574616897877405192445675641043791567474298130562351180824000149535715440422767156907989115853873225064937181474465046214008764013861300347018896575461530197552164201321302368826103117155135488905060076140916944766491427738015179589724603380153535621100694635601443884540244358042627464141054131044088304055377981065636853118673099355427012675709007392643527704394837436176192953458858961352772686307780955241969781779910248583140060291622395754941820182142296834535438881460952910344935884996872012982355642035618303915233463904530503465847389190655561349774160121797686793172990821754387472585083941174405531035318903283961051223452707257677133047870495914298267554469864922609910466923755069644219583205130463337914968212459411945699326942625134380367309419440735483871849908693659432867472669627568010588112764211942698664610388998698122736935983468199553126235014576486266151256094318204868897138980980953298141512052668732398037983904516646613555508385268629832657668035540326389564884033952646601706780165876236835683194122992739591967352862383612172900199583713499900290160904658006537158418124058708769890863174073869702574068036123288340089433472013135366979383617325553280433189354581873503466597279365218894051046502150138975424330883957867893127565706261496037514024896042645354940282069764192605946516672655223930861957412787907747053240027171418756917356732417423813643960311531727926807717240951772666060902963228311642971495362544367158413821926229831285111306252666792592122475571720420572321338128952891770502235210962476403490057450104982101949975807439211412543794268724237742062880716119733313171264202700882878109431023891643519715916456408812295332030481805143626074670424989603332248070839939181297777802194335691465509097707765403286225550657588407497210180569332433241736651899315182010714550558224598215327150810976426965878430612673456737269665381737394071755077018447606287241866530962261368984843440719748514110317523648102846413549941389666962988644803613295324355411961194251413351509682194485100278277641367378686887053176558071083857946884043862127758427653210683169232282106931311071741973391605421441771268771623644480387956513706286406715414383212087011525607465182476870362674782437507308019485778737472462997594780649130502659581910893833080960782892180620681216433449372348290901099644885145063572540538079522906191844002645684451729639839108968104585613634337359941173036184785723576069604840939835317185466398759340561797004813251492342885107103988350471089977132042373876490634864136448865443699215624442630603176726481608082956545547285599013694529011193708890793675357396528254277224423021209952742653426823384191109193145089307335778768582071096229489069095992038557348433836651646673843474613043326593593834667413794309050383307895541727990386789264947618639761084275932961264607509438446712124049783836930025321941018520194494940171800056865554183823400774696896748321767666037580850312498507843999038274776108524443468328324054531319623018793692479404239346320481681400185822490669886305692279358825987896799383921645766220013708431785115077326314707027003343514626848109951378163486235529532230257687059350912366680832737027848973498457669368409252064419801911608776895883242995254713001185686853489994345442194679714879104199276958533237107404936285981364266703460084070239566685396435129246455425136100325613565494889964606695424872721912357061629151048914755223637248989124269595662916699005480094190768428464195502788134788606144640634549845497934166738185243617910614571849356713239027301953602478234201632369272510476045016926388477778408581136128331062695933581324147011500554938554354781959719647051680458531573977002368783476605722948775591002735609860259586975403349325111261446189803857484061289587704582123361729958925600019066560103579248894537905942917224840540560322880383747372829726444943239568597378873630545724876831181029313119978159240668168639889422317350178921185434637439231719746761162034824069433751128592393651397352041713311990228678271845318644981299616837970303302531874643962189699790297130852010010258472956824109160487187937286877213349636245522532019225168642506063358268147847799973777961592327333832452247129685850091133149572396841262713222132770593793296747034912691067103696537635181848688191570125572130011488490280564150352322182162970856777331433570588532136042257727588602719245596500114873382526619816022773857581455969991506212199121077631971120080213101496068338357334719690421324600155711424865096314296500731565180614819065317661665206442232307968270290319924742530858449104391185540964007080383561111783921270011695731182704068331180916969128884939824549849114349613209301506047730046787819287810944962555803266950556299655738096923368175226045290342028193333642391166516100221913627542473709265761151956928331723951802703544012689717271982210852706804763419918887198301903398763885153241125855187869653207603672582015187283343318917478693766513605212528067635498334334655182220846612412437804065088441380949772203818554114342248454268681874859573250328234948868354085856192479535133883426078268501794152528135022990265638620965108228184948015541509467459372264140377612645213779783024218656581177426626884365567367302727030965271509008790711650452348088292205568536085597295147050678798094744192781447983151273360379722792469627818815953418302619308693328535335210582563075801745398708623024459087931805827568282844033881177175442338371071616710266737111294174292016627796970693765797901729462497616167156816828672717707355927453932755765829101518098590155854084087013538436823329428807807199897022296807814723102781161128871563853904582025413239510774682069510500430920872928310378842409184384236609014308735706053684922550530605139332271830810882238508388078689981331912182029075848675982972469427051669936048288402360649227525954553843806796200672994211477803869104810637441526784049469122062157328369714686747373179993949729653861030146649055240181178617338252124521047160073854220136840370795413635462077630799514738627940557802318852493069121654681910603944114499117935269001597109339101166828101806148640518778965215348344255028696368972378085092253986799702474428035001433413037062926290331039479007836297537474178359021484473542236926364222967021639029535729993770737415934208579917901124822115682264183373708812211694853830182631095983091912526956280795176336979697285551495868317435102916076314050886627184705011892496312301620243879137535478682262000486141617450012233950088375517787767771723531417132320551680202134201371550539947294562070842101770946400440112491821521929961348760912909864359060676491646928322223102498814951421271379704166530854659602174609994329288904440274089432266735140782196544912441848567823065972215553454343357203995376809562576809429777464570934276237959383794507652780601268780886418726200720280530087813953430681193423941590171485031312101137297498058057205621218030443627564063148266174290719844007611454167279496405057785859965212450365110472014397363623478959604988356625673545142901830024210422335326819504527862386100745008193425523533178240316761420017317041344153663967804735796900890727217813030399627251827895321585278518220820836993613587262271337896076604910115150763091575768799603748891343070595165040895527725645955972102380418965480543293804212807706993660281493523093375304700569533519173670626040934782607395641574013435004183439321219075902067001375949925890991604461244690004075252491370486751542598128770344931266342608315448018474906197725662243171393318053549561830636278036036850477871706652048490943291834003426665898057328371573249787383236096084719832068115651059400322721695401134016627485391587041794725265666161498240058204173284670553816702299477314038041081804774530305218044357960990401601483523418728332624471674011062617470245801244343830112581339579813222967363917590098887219363893565680925088425659670580794356922431897469485915770200331611715512046311942750727843692899183746258441609089934804964540344169401568426687016997063954502049716586478246790303500289794210844108177415946891860279352674262084154046568345340765525300625944568009567016791801520845162908227821542416909009752747328776471536309481282492991749415220660186581518734910568515517763398991144065931293497495771251198364198205514719583689948557417947605808429570299902625219603608845900967105578083929019525588919790496396598819099802136763701158834391213113066605043511761831085181139685097677155379157579858360281674337501233660316784943364961797237158434073089800017305612921594315821232454407903001702168609484547333117495062291329326675128104767076835159576273528074248600956699976863372873058395342131020575008920765562475207590564813463043066129602823415384763302074389474774698049495513083623262533528426336196218624506295904210795735194403945546156835142291996871351398451620481662632857905428379809783694695682853837843322135820369451528597325631275163273511411528723244424363364986328143381833522632624439455233602352606939598193872224917875166866952602283657435566090963486905603985178086371172950637158777506061578338177930366669717025093319032186224054285155623521874787926149950138180683392684765061253979524383003323531051407503125518328734270584613575389865778682128850837855622982384985231666340254828652812298179795285811416513908430221498281695885801991693820063705069442584023483099689216417941287778362954383212599200860539124992612935099009933087119277358961487463439767429541157864205634285095558065169160772755384964998928856497276585542011489957002422534204145421206912831154861001217852965735428531109334638145148021483164720587028500003189756238021912739210387437447500714981505753967364404877778560066611122498163196027679619323398015011560455247808090865162816966022082071824101996504667299926841062487093156043151003049665008152581879273255677690038947603106362975558825788688196665097595581142444740529079711165975971390648687886244864456163718731289700415624590660283680024909415140202113991325593967907524892691016432103488274379088813412655474230472861101781157378351080529650777051144970998588958064882108927614947113116369313543015490697677783828674157873240336692415923263438609626623201912111106444818829764086830211885893777480322821611206427783745193361392734916456731164132416758225508931259964527533281797106016375490986443105120673390294633860039038100931910971155041524080048516695798444196101150177461049209226807078217431615086954743393596892517184949743920383139785469239475638103487538591220685158791207948212752175895866657691832799234689127159474378387409797210496449582759950601111169075838547040039580969589805095809511269039246646713644701266897670287271191550045278420575214256026001591826276714978277295794272146611809043971755255222319342354598083004786800368339668316883771851784904575374002447541877805220544817451881280342086221449631143160326554481971318426815067427096345952458329896216201161740459304066227277982070920193504355982256165033354485605550179861321013751836072962587621673020792710688193918266869423308500101220661853876570992588990769278008686422276671310600935909183754539633633549163346919371078955779833095647917989383308770415941546154695276384151562772381315732806885202929899092097766875741639034032712349904353283301518672339484100346341164436589259648413895665628912289524793548102397380547500855582809226907924240451158958723081409798615188577852006507909351131107813076518926036761272303230169984368390587842136814271657446321864376701748021268195266463661743997238889950214294621947877137160241976212362221674344133760380412588566130055488714592948665718150287562429751026665241640785485118839725376007771944052173370402380027971422895779333743164038684967290730274289816550076434820645134155765091360859369769404384668937174190474615890735823412056168480021810813671971060128666119540919392003133968465185088260303356899448357017749641001624312928669875641864581667842851924831317169906367063650749270317114960954550698962124193283700452401599147858654545698001626964137734941527095992517277620236046115550697595630471764198123825548266361668589878421730435122510558285387264146448247112040272471014751583161876782148783324425573375249802310529691798007554693650272985642338942026145793233921880706909697263755513041244839931164760219368561580881946117724079543333799708977723609697310841125641985984405520613038131512828675592297876889571492795991104770382477255725684932669965032966223722132466275983362028019727687943914046216708427672384401832483175572361277724667572535732986434334151058018222393187839576756601447697959602335857406533494615232212276842388021098886959435174571535838952736047440106704381568224469566772458630784509402730119580245959597061776347808192138131269729617230144348255470009829943705276494303114178858650667400039964855041430308545746612478818144730987586435123518094498109932793389073662611363302115527148202316553651563582213398390824156215872970636495702528633797781223206495189403904638863304887486576239094393788560298776070934707317916679254612867258100925079165493497487008379804477523798129350534010506376114684305930884456146739814103107685939641473744073670090020370331644183445924921742561212516110077996685512567245158262876723385078795020513194656185314541186083874100679275901243485614626059669606490245751307090193986839581450858509314023038118157015504691051156493182813790500248545591549520735836491133233930104227441205399623406630396395937385466848430351088208827396122553863463047748762023421308410946110931077386791015161062276002192476440762704807367478665696230264193436022746231231551256582930540253467565603531567893301632306381644524441480153290187277586829476465600887803521909869413402027820452563524484137145898708484258270580265343224506215502581701271314156613387332526329762165113523865249858041972016196458268488691097622229164454398098029343158406845836852285719728200534001674321174746066978114311310299929490160493369316511806534152374707499919853933476751125856699543197421551635533496208655979142071534232565795429483417671053384886979712388537754501615801502562525627448795733985602831915153889089790974148080825987231480237255524868042943657021302565639721670512937484782407586957471578000263567290028100559272991785703440103550325914788468668185305108458296561543343445345087417169141720930992006378092143466488601677755451682551559889634659143676757112536598525078840857091238390342415237143799323239210392308131436780040535876936346262759089789981295412953344710965067754756504021735702723285163376614690126674828378808742589031241399296821737975620436559272402881370317459570251189383263548142233977273049934719349143418000767043988807036482997503040139690169798037819494952233459760314441843800646698123824741573721113248343721651762800184923046369936983425564753187089387583114026269700179584366464011457431501287730130453859536750702582630584614336659194989502375317689049055694056417657058408680701512720290952860493561648278585464881684152928227529620463236766005184273978262058163649969167492585372068048210781776736871608197237566764464525537985328138299083988093595111698755169201596696245337279535031041695512956951352201141654940380012559597681783849671023959097843174335672274413313047630004010060042694969963072057738046317993896729438401935342138391077403624865032090932037089356312887346416219439252827349266242700005664176260235082904955105280871460894614503098826586515578608252079400969590581001450014089572950737044858070343388698997299529913797910353713309850956519956138982323956200974546136616807774166682556064791227632371295542454277392261612078480813600350044306877792395033294023594046731707270059644352421549563631501993185720822083077430630190357719515258303292511850600807372399613000982800127008477452118621807236569575341943523463469158767552901305459150409270043037742566584368880930682801685570967227802139848234706646778992269254169890546982961569814921037977900122339383446979333188349572796205168741633881324321914083874146684477992240698688678685984740864509677677435111989067132683101946254284723447084947128249729185037529940749377605138637522036899632727154791957625473658854008060287511655411574156496443895025870958290133715787817540757205584342280920670623573543836511333794839320881617918259185215648707453944912762091769353766626671805679331071040891527711050050857340563392814700959512188139404655331565865384828897768645141489438954245944990187038188047907323270445600296319214158465749964661391823642305192911594665549229301439317326912785616062505795368142715427897139465555541696311661560533372159813809297149620959433208930373138495201716953849447039773421303370695217792347172011353644602777026289754118345270101657280510497408383584130934773729797054958572151856474302618786045668563016953691994257530209846550218495235082953636655376743447564506406149701530488891507330720321860684274938229038390752896183686181475969899770493540559700487208237430407241484780781075722105929546971335358945790357588946439209703808396481840346114756618274705133455778245855711678096359850706241614599297790576686516795694800452139647852329170320602649218034080887588447627934194112376076811335330192932145030848373108504277704958386630250148114958501042231885021301312845819396247171678047584847710949786602061912336627410504061179925440801216634443776973580007461299944812818410138249914737036231477622075163607648894253399202165295271093929093647962352491923179059945440023276842263903351273584619178155523051360781212378449150195929637262018766525906882967857454234000812014597240629384712685317106239938273037255501605976011461348929167921144415251038170043417782480722124502010455361736631927950301215054232501803083252415630326084814458661659942246368312556654210142828200360530888730821449966189052484481045835962561345241865801764329031819131023437401393486030718326897765007967349282071141783619048118305273721069382263340748387074992192260729311580058406271465905798303870300879804382809105615151238888416385834409936257678039217453205179500765981965633688032092115148743878049952899733061999042054134299210744729710061906483460431080970695290019734033456960373636989914699043170556393302196488554767285640096103848652651764316060006659769581418047968624516904043759348436982462307380871675673554997897105500892347922094653656370402832600940038279377164524498316302896116127592883263970521073283167327718432168877553378634749622942716719508329471809382752092103070849148027760597328713399979037780637509768313865460958097750839284202975732385264399597867722752026955259955883148525027852947711126721672040638914030357997355076992405866161419772563617269238734693699068233092039912541269343814167263427736150358674147349879066212052940122773917796277539204892671057081591138290255183393704472600690894662183494394812205067102781071265417042291212919749540134241039346743466300593768774388150807381731330440145498387915382336386014972919335587696937681425321818196635893276231250791610226005433462276027666895235177479575104133578169445813901311381818877562765332160301122202987204482922007378064832322792301029742729684977830718587952550246716710701870182424400217754567935337552371836365803922900023102944290960881848196109373946844980567557785491433089190085482248169584672272514511606978140568315962193090592611198894426803474364314785570839275329063625322115373269749292565491159442466575666028172612033503437854952784128795563197337155000646315205129859168188833387457254730780036945125337598526502435848957559455269879907229747859191889167414587165582469383290454835388475685575991963931160614056303639880513422807767823059327823489092287450919832432628973982514381710948821809628927940904725440342757386813523047290295367263157562506699674236614544498104246434224901458034506667763218897148545559730180455915540965996334921762365362411381120427285722449156776185029476791395638043051118890230237734934526596666200257972467043998862369521817217665196566563330355529334443377384044084510143814586455815348945345325458629985951475115792048912379960125735602735767688053795938808566531673580394812970419055340258969750128081093821810184275179049157887685080106468745983615911494087791470052583043407962876958621979114645901307789994048343927272516633474739195731329295458741825105296424004887171211559257294104037325656770475921575601255923578389042052671505762967725607833202411722373718593093208839464451487372493595148313207638026215449452663002678065269806224635394581214592421277163511570406515545735384287191839488982969068789276531580397395008598213219059905896343893471650622176789624727175032371504745400277258047225553425358565116832798705037415256083658480218033806510788490143898743746270223865821687292046090986865048691418919388591017688372106274709599176489676236495363969804975947190278793094591573409962884636377138764756038803594601033009414444814920465347769974368656776498423988587965494890522748205720453661629311431002263254236134435651974515194843067112434039475805882488662181846526541080329543426233487789322837921004915678322106962652096578307866684662332058738740644687737577819595236205115643346449933750757382267371459194745559778281124165509650524526373372654552899131346307531161813907400802809543471185163781873807097012940106915725541193254035348902326077797904165977943476440474815182890122024801390458267028221402470490679538589939874721982536311221844382140302213222662489464099835668091202034106092982260805390731966080392823695770818559851635647508045614466600345483181395939974812323523474125990662438281376292408281479788473499878096918019823395404079295498436932165679264408990526346695922160013566759881515767035885524995207139611688784034533428908481646515431868986460128137030206612331460324465268723935360135630073065868019356136946043943743871257357368206322244753581495649882865440071351707884022437100168861141598998683076841268364970252024430480894238354160013672098611591026281863300457667361523263704953368761596866959173089828826538382956989714644909526113710648124275109875293790336391797118420508174471897387459009035718543746456528097323380362954755805790530979455169394575645285648511441300470347592117009489494545499748756196487981463577876773091960070668803490541913253765141557045117868024025832979581663114977272700282896065386672827678034253482954543647563843371236465945669360713396302054374517379317831771639984912385252762883599438133153913523360964951548212608124274019806529614722076809784502855224996053189276803171068617330879365192344999434460503505488087782990373093489998756143897232839353391416160181200694698905859988373602872514840769557696026159336276672624894616411161347542295679670054719533383512173273735205665575285241840769368949336240172537700218642714354658667458665434175660654705996618656620206434932601401590684409700379189272507265036518599085121070934444212189455580389327834311785706097701807978993419290535108426288585431288127106571727246748691790280535955316886323175776032338264502773684089062885316988331202729590997960884569384709286270472809723205725389259907531037986665010156923134846579231993972145830135152164169588189243840385383883867655931399840504891660950789980941480021094706937430359977682830292613639795027203008715804931553631654954570048488150344647564079775082938141850039054429579666545782347238704808159116097907421731100731313298844638722865007114314894716205287360502067057474425113339213691067274806188780488825337277653033845133350608273076735534961304415986209700208052647627311406069230835323862326741904357963930712654760019418233885357062418781456512699376158419941207606696883182916203032860958982671120299537741043427311175978457850534982023962988636546496427486362792684697250185993821251898731881187237334229123265345578941907020852123675733485065658652752910268448866092668213476535161190354321825849730193928630596961497869983807515142951361137364563812908297788229831258345216149239157670833842116634853333534570550356758857562743560589264937167997949012925160187379991630432364857392205137537617836716066328921755602103295841045470188610569674892083981951407738405486331838764078382063654043262167002483406222738112974089843682444957858257067855224563850622908886960895287591951902662640409924090302166110392354147429197307563772703825732189077638518601532495618013514405389301955491938637265922804594834177151324494860642113718592300553164329950575585827418810370214608289477637541954849485177423163372520744267104234029237903323856229568721409494727973408572697307145809048307714073029478588225433818679436412114297934891759410907487415406929608538003774946338040291626453753158687600770779477785555050435311840417980673079642828170244842250072466104015756176817869633225356270283139659532677845412338377043077426792576311442687335872745223158659230268162554079586625059599415005105856323879959516933473181221429359506621947409029371074977356879184164271328058506847911069554492799251055195956396999054784010464981781025860973359288478972534912747818598354145798215136117088918089203064704070266161033411418736210109004666945327674930474105745333460999047708599576685304054552657351013606170966326897383910799035600792442573024110838191198048966120568201240907029148121092254186453057120857068278447481688098720496420122397518736548772216579550185403526689063754226434328053532222090990008300309569874631182741311026184008591687160187693356094616742261485648394568276876497109215292103125244362597565977205730119099714327925768257699768573343191984938493741892074010981537711399218718046644705306370121802156985686605050357485451055378302929094247518275748255952087969659427463139035324195300247207184688486181012870861335321411110679518017297658304983318319140024268950394328287416994060941084366502619602021245630514631639903059652879705458574401699593867220754532595894615596400177403728337477519898833385306929843458521803296751116199920600341481545424832155885369696133730247095905412063323072197260467808565830109458005014324709108113253443278159780286776683241553408133898171176574682911481018340320992955799762627190051004341162171152618629291877824862462130355596470074803144889838199131795337636231143725951459640429931161953052129071027840450419203200751333119959323400707565229644443806781177874163191224112954462933515687470106829914721264206260931693617645736480069781636588281730850390860243119023398760939954524533904221724037752987521463442068532617666100939896450311457031763701794979257485028762386363525548300754980106050689896704978512318079026026597665311934494636528872990827852286885561368049641972377957464108261901228381813546032775627917907403133517299256547353744061439013970905415462474955693341943081085720626899190690739379949004084395487957172807173340086860899539183656022019851571578820226880862466512104689614600688002862499501258709274345890855407103403763338523694737823270781702880985805606642963319451424894244058093022543131999728478825876160278656140488970029787858064199654966472365799450353178843922284687665622544456076899214169294222504790503483786024808320500306679675070176885382346006326234567247531118663185196987322000278983780263846576756221133311953633076051089076266552933669984660242235465152127755697363215635478632732619208372421798880877368667078268126083502385154917370540210331583093127609459034920345287768978374119209614854099446559841288912086611998550224954783643717390762677501043636854525377087187784519913101467834745621836543985480434407368569354496177157148440131203344322600778329346184902133618296266978776824053339486237720668281781269161789011116718479273254327218716246335436491150865510055431337886953046946582800258338780139027429421887996138860213258945554843018449166994141039539805598972902913275327072706384753141353240652650749749826489045363160451946267079894734642942688876970922557820133160380837070244822341914289724857378766169169200491900761410614480574456762555139501580550558369585124567503114098333892385312073438277943816556208528412255132596411807658521539213191817944683045957607563868148163088439320591357392471748008687401723995078288572980898397329406843210057220973967834555501598203151075406166810690286171456054798441320900106370601650743079116040934875987514427727695686525944021088421104664436522897400789432813644245335017884470934513548105702346968434928988893585187158125304860689717514788620687818028053317954300069771121725181069864929420064895476365589527978472783158336388662511466906329623361998329914628458012178633146926727803472474365244796407523707557434174012892259954029769762984295023567479598532013271086908907718615175184456521960845526723365293659995634018797349500522927792169219631138528097139820807213967471826134814226793293846923233825548601929050497471894503094848786225850481361908923436057500203319230090969947805095796595015873869698320679105843056627931284766629556492220317096845530507579926008081547840483684653351722991748215725909080936010308423631684866634272690113986703299879119928650805201422748668785131760361948496981376435755260530498394437323968302543281067787452321923832029599056194807581360865587992155047080053124587757591083314919270508552818025202701808250177884458424599524650355630956310035761417832479518854180916264897303522933661842428645583904004373709011046506211269379255076242985416759619444557910513739408124736599837648245205809026778864680355853942658333049854113858880167228209308819680393008728125287385997934882133253071374533231320332296973102255952483066368976584251221907859435377577590699752693863056060556866213523634679141169564471925347406018623393094769436723917885416490471692379632016385578667740826621846947033838927693706970595743881411776354790032084791387276730241162638248873516152916022156712609104216466095182112637619793628921744032848713610662775240922571570648023094221549444984567419696211643799204298713055495462711611370548295823958681564069775053997695921645142957125244527727829000769859780690859875481527493320778612947298818283085194376496455386082549636497056670012025174971726668462740150942062337897361420033888593347969898963505262252771763995639769918085803762717599494229409281517009073045888321763638561904277705921780061493426133702977214569103599892681106485559553746570963698496822050117656664333548291237600844717615566311299671850512059642803863222934974415782531729264440829993109614003709958397121262003186416567222247615145552516216140975804525667869322786910021326169590906879888217162056553386655281746745347384560399783957092122456012217943556294677123074164327463666607123649458913770810742876172242102643738429026011800460575889954946227260412646502637220739163599559464734280601157624276378694361844694415563853678552828619209572404408393905990833850667491019877489701631676138940610800916555583566973985664962386523858345825224990353388679487401287578656370406143628390231673701832085872696559964068725085539881619196809886685481543589741203916606982161357245534821143548321885437096406802577998829112713440857656621730783931180424219056865605168737406252696504139739096100334744631011571285832924100474527593558399489199264401803111434951574310302313819645036490800924840468501202723125136340161165529113245079520004954221453787601316391243492261811771629674899519269635352894565825994172571821917481415002645751300218364849418864357586966042489505089209884442815014719796000710357288852007191919864068406486906284189219324537070665861379831551052959383841347002324444223874834805245869312441709315089921512962349696870931661130282660817269637474126068048240355988350885659345693211790594212755451898409187354218183518966452166502847141755612422666137614172427680490722955938318879402023920693663029619956876965286904262256241370610674228124897445848589537392240257574438766006722975475754063037982657647421704446061085698784339647978647507834198869138008119593915152502142126404685911199701819774201089419783379402158804218023970701586631964406598361540810189047261734932894382072373871156975199757709745798291749156741845148214058314322843800767972212039762998346852802764170818019271317162489647563391405957801754944553345719148688866393755809481642620490013629948724212351485519706517389875449866193094437432153711399256669508037841272193769219220357288025674337992906478321531271456500718896805049334768622555386855802396311342671620744331014887661025351957106326264676985976681542191994718748667117302605460981825562793628763857667903719313712754288200603371003374627530290209008744403754135941654110607384890985800760789601289036443622577744054050913336979511398212501977964527454588627957546153204291169991511934333605959365948922712958432341070937275196645662039486522116761620568678265881701514861035547103937009562589100536821140421391338519663769808021514277716718523822455175198729673616316559486942268438546257172239103503397249263360811332573830110501424222191380311565661371509345638018684872094388966943640474651885115010099959059280823567370806705362422694847628708769375810166536024249685436498376223465140106877253029790896240872487251858050873405203488512181822224100832920424947692727508524510324708257694461180824614881229015820738315016882896378999213707204588166966960659954954090024066297794302020093080776657934770825171895461987948056926328570423699375158545945583632959369057287813210622655445866166321941888807571310274194413078587323399192947040351476334357291630557642183762799236050363305390482854980301184202207959216899576505605950311882485640407585705194912433870729572026305683537916287156291566554075692631082021443579285780941870476969871315590010898620828390114000861129218511073356214200671447208760030245820798677716174248062707770845658805707754868126223347720059710392095825626974277626288101627455085410999877075106364815905829175393884867023151257802569386954561858392395003380549764403187717560979647232233080798054368220677092462572322677901007324047800099297137449512389674387055754898357076924901382471957975877546580300364244260015386000439356731413381888858920377776685046354335915834645572289275873816432338969660707233570953242286692811856368050206046012448148680619431411561955843778293884815166985176407113808491197015699538163084814029538418327945862187086273888746939188845083608991921096372450082888741245612596684189293601808652236629775114785505277529504879828936792861935763232674458139449988061349305383831880143223926379922434798890724541233722699791395749095127030735964457267322040161123542074677179430357090615312013955961811839187349767509724761563530123793366158214209430910475259495156538841879253689282960979842933832507278561628633278927964597891703805944606786419676581433866149092706680006739701273051166176925859459580347705776232844503220910813523385558019550292078692404803551441781624590943366637490515338907850925465934258126242179616783564910555824886460572849848999240090304106124420443515395627950299624898873846033324983536098778722073931596129219350360236013086051201980925805023342022170587852251581484914678654068239635265500920825780151524950353196905455905512256630541561190272367329210501338619047836947323571931538018913255011487126724033784248967284941761892599606544729325552330747193359617430111885829194864941951992320864786902372747069599816390079898924700505005359748013255836316568543941066503388495334517435577497922126055095750620094052218138440916208409002603582613737433337952970304843721476832495303736495500121493245186026422382724352257172572123576135860824458668494760966614658383073590846062625151928629726674642092839398617639033355198564278938426134580014484427094807625153546163455454039098754723276749377296144248803697800872121465560516621769351155914773003830756884035522389926921049522382640967372862131045220781965641645770023403753161798651193467428888529551009168456863867216678808847661637984852990702950768546158306454867763957974717838794190255087771851099574650825680270717066321774328620689695256655216668068872803421051444296889381357247825656228317285255294761712265471063798590728003438911582493924818824016478263606149886221572868473706693472527891812042469904923318430880585589512192557233085957645813168551280143468181015433343498798415632925697659440887153535945554851182527411742090035543323004685562736814246069265693105392022726593739799076074529276952608025527462654842017061106930210675536621723308142170940279371920098685108671198680805906377051443938454125904192468048169991985533351943189733758182371340872781896628625470196701321046303903517350848018673991924029249268842646612309909518070380068845171539590477039892731468619996108209849769828329292943048752103100822620679518879963780537350449664209186231239249205648909406499861198055861919120924982588928073650665515812196500398534132685845370523352299948822242323640974486872431151611343318939317025469047957906382120253731253846119709853237113455734963353260111308160868335029395560276778182006114289347225887692462003379116041749350848511867668832830559668130760220497791276357791223946102043481748854928149423495528500999209895685088278367197300894817818367800583151073001287502783241948227972414401860137891381567689856511111563228977166456894942726364636379926072701595716155388552027994465462065641269564989603295205174199122517833394927949500008357668695079289155415123645839129214424438853941319026908851706320524822676960472854381255830908167136139886261919884812775551681663313392691322155015485774929335179323209360714429087172965288180109938303969891851895782363100310002975079303708841713189303595750308748207434522731264959928274031625351700316799584034331312728961496525568558740843973921439788374045136242136646035522461919242272853123689521857519988872713561783895625592362774965336994322679142364747639221614624817513183880612691048181224003771522555538340994663482615238908637309046089354819039688044860251514223368757737533055355326073753267600044304115559435890717547775038171173786601855229851170832919814249948034487494305124558135939731900970833563874523069480823808317397908296884711792683455913065445855698614643753320323666328430430850225708180375611706509342711615383998084945089840075314570494841229025251227814562108022810376796929396918161282202794291951661765623584260637086762763545168821115075124863512868737593748906909817784202763536074706563972622044038459708492373230489986291648797006059385967620852500205037003970907602791166405360714025249403838822001934768979919683249746682176192626585129516421615264278187089660500923919371140423117481822153792681414181311005437081106733200285583126766899387634506371588498177782625789547876042908329562854603060531306585513611207027144309357927620308451795189268623414543991467128874392319389006676505042468180926593245541374111731424100230552863753190945934254442353420784324009403985351710869258290577229478501608650203556678925440938966719100291799084432164691384844097134555900561512725791738881983090575878555260213872416017534164320129780446687945950491702349281570073373528095315716142279076413528455796376016460804789514253714032530983897668362854146369077932515209114177132736709450467823664340062066966485803368120909256290088039571380184576570457443704599991640603904355847653438441578245629396772701114182171007807217533560677662256027675732863595010805840124695398547282862460670679998958530760536574525554218936711011733151938508883918826796003807455334494848406393374313686051343154162009203472837522804718762424964830110894723343174978100029557673414430563136537074271189881632991163925690615496205474976303094383287223720034193345848097137509612056742753645214694965938122566624114497603855001358115602736825170314914805169776336540573546326384551405182108278834306164733962035098386579031430419974576722278226681769515806648134287634909123431748401863704686716505416771147690087196642595971853830478953082858794793320035642488956318364671280061898121402932634281050545523594261053867390980508735257470111806966425109005167784105592483846407743313738246874375192546831918981802262735539479217777114495820497891125183005378827369466375822568966331096702122398806416893530876488843617927151785634462738031046573265354708948523619913841407661166732538105165468704476221203803920420579842089138252935284837595775656455051895945344116557994121275885405237474325994303494282407465077947379356261173701930870260770011361659110445967979523174669006459956154865493046938769868036146576088228208510651769694579458433588159927515784438806548556901491497361515600422853779498063739477164851429166644367342112932907839330709154118385469140474535498368342208978202399920930296417526306943503522411088375863950882778891553482176362865711527216380435345132039322023329133275869788406475490725141961443352634011618134802413795026812518173923558278917289341594770938540809643964305585811536770702486026866572104197242577729439173608651419336263289315524883772368879450686927641247774821420640985737937778651714927940279828299654859755633570256321271062007679512122999756991900102116066302298379445267296592329293110855568006987598319851836227331469507525393943769856964003479563176638772679195637515426765231053707034485502109685476319007015957591136906637469094594992615776789532737951816618829302172676154246396724275974532907306673134167909412150680296226572191101234242772443191277133164509685561441842226274331361812400495625853579639007922532730057783140877606785646331181595494087761752670839087167124244447505836434165923822957539681175440359612723038045179948160542432853805209108772734855420858299371073789750189402015832204212666693210399227471626930180208055415464318450104222481605362250144792801433326059895264825114612839304015422362751609194473673088747386921722953981401614561994605074080637747548256129875315233496680865213508838607161110450604988352865004317368721740479487501665775301193625891408729133876262937793886467077522056823434460309087429823606562179951602811670012484250603585597310910510070864898245964493239618359432687428439483255131246729931104298792882183926716534711861574838304873111515647584375027834450813916072755405832619406295969623205373348922538521736256267269378793357909180633265898258518631830394728274361418767718504361479070876384546506396550863131446979617921458200171214266570234258525472364132505856271846886528547023267793381176235369454064518424836447398965164313801914980636484267298586982981583715653788479632427312185572652569343527899525780121174092325058062523191801228070413866491645637029342070565182848222333700792436220280075161941914931578012498877021294454304354770879869241052172581098148597285446624432813407838788078395996637844291792712312936535703234195232994919059637142544817940953965152315089555227296120963432907792851864049233716377087152516720490153633798504035522858401679238739193125678513036334532854628155231128489639062789200572456904459573156951798599260152174236632969816667803901824274433630750900999954054604286634409978771928898464959084501735311298904772753934312941868007445834821254329785512624051208383736142728415888712341658353612060671179262051865731698837217475305617061658198341922395159316891516119793809438418299200577916747479758815294166759479798298747353926725132894858105519405135407948945050493748466128674093171670529544374109612300102091267160802924112905224005938106052349427726251126421636944420435780281924538581151497577899272117041470971590732844458641231740154726886590208582549231387837621328133526810909783336843284329577410705359358855464795864220661699704483277571090896047516753631367471267864300212965490279586208713214369304818072817063457949532575344910914256374901518098564892652605942650721767867093369136292053299579167636607834373755044889214035484181009455731442473042511381058730034021247154299322312903924296166447539696448194504493263423420943869521157050688662360257392693752946539537002406493484882538527169647990519633090910025547729255415718128741498818866273715476947465316954768066024431352835732552427663074812213907018271710576044599087599535490099081754386829184026152862736307599973008771723653606378733421445993585063635604672647142668172739261697783357951106233160741421240590300659037052657553952143126215492547688597614825991166944920413510031412642931322476197552094439161524189239431488807118535454727524392082652695690605939776453131922897197851074602322496865759476878666327288597640765713686780378550728790977598468899964681503003420405642733319220960093182501447529413460784119826940629085323430215728417487053774570598771291171787373063324467446941399709281190945878137934917881693308061770576259443706183906438858718706007721055171012578982583175657566537061399037229798617517989521515396949811388244868216084357665893374884380854424455581098799357403442948362861347805612925010889547179960341357893570110635241552312481476787416436640205979265279156474537442198462430145313247089603320031684729419237485746177422783294293104848253411688810997916110817417597252228274508127032511791050828790192424745383388157353968906310940051599980423559066500005601586043297527853284249379628936762115843197263602701094041652392070099649799847947763550199179425471685718372131167657483562492674835073208916577592043547072180531400453253235348886947783924089615067890189811861258012884849287011242690837417656839110984080842874752461719702847511298722422560520385504211804626897758386748006543547122721928212861346131126739331637245465477122603098224166899902418826235911296779160841648724533134611135816662849496956871642775949419006432826338411676317900354786924829373239668168704732966796540199724477433932177161995615709541010624746729788514061663323474703518622762891560779416671165506913940560087016808275435208121463558740098897236303853520983930769620614557928391089003880872720364276330064744168748977477654447186300488876067209152145913130349198399756337327604099534642186412683663896323054557110846942983832061079632129711165776919702056860663944289789488488577054343127930747887257724993807485129810282715044242656206574090840957060381875630868500037325895275815645945777070564162068630183632147531225425931599289927567462015931433921768582704450891361825399234706341318597851513812536836973618843736345512389329259081415857546336479419148137725694025333097926528439029813258047059979807044135552112299497876318816606142413422165827166156829685225139630815604787977311703968661034754090936600950102067609982677052933047362783400502917887870211627905692629165038131595837347857996347898340112008969117954643377334974062620022364616698005909555448905822624677505712021356033225141929742270988182063986127879659178402413125886554972166407295087480949593746421442589308176580559483614241242539306657684831705828525094288073836885627941204857137090990288584810622297172862095036202068576972506192689491495003745538060379730078496101108149132674913087048110499656065309278162728567290263114643445178997250817334762149402097212458927029159603368356023454374018805603969654969273376615515610143114536923633587071138854761969771707043077593340540284325965550556468762429501539464557388375964935354744170407712586031259547947476131340440143129153574185811696099346617189609445855092500066709602379574664461391872333248004603779272414612818624253784491792922481376338556359948253447369603809576897697189163457494500471375328687093845662803529126895331442569258220299672666921811309747190543582359458140564131061974625066699511832733976268763419697734573496908374201518069698213085353498100810128956641487198009713259871359411410724226539905603670568178834958432551668538790370283674908129849302678061925005143919214167497740009934023256753466648066996406892390465383344916185710487647737348381854588071548632495671960620951215043266817008887147444771813794357377120585917253076448843732886593507583341133981523562412744526833110370846183011484238831365011766223976525804936080860130941985118834403338284878165173010660460945005752038802980569594077696687229726928666232088722050754859904794965876827369708655271396714968028839777014816391224079101267247714529348728939413081071585371452147121246232142467065279494293667702276610590642248194096070261818321842671779230730211524604076554232133801651826348759229206861649802019452355575840341451656434257626704122823308844818408270834149087780929211391404478490644646054376624574151690968438396862378555633478238195575838909525129909941724747129313841593433390425761294153316578716131784353107821072606867121268658995562678237587932895504143668980804073800621204367256063920399213062234717573979987859165155472024043802751683939887018037813035611284571793373127351751909322232597978995036539782512645166034763091624340921390824712178180798198387841252588602933468403026936507084512305102124950716477775933786324986798228930163933857463035068266971847679695913619502043300858029762187038693288938159123793793113568123519952755040546962834259014820728451564364184487118573329064353284471663240591478520810829211735711639049581341939305761924265810394661760648290088092187953062411570889193834644129495486963531040001430883493022080463752564521688377199992573984330986902199907856673012393252789387006412792183288719061433635115324955455329554332430123038241112973277688279822197325714299027070927431030519021949719022342370403731783503104174457756284906460741330174030266140070554792461029399850052433611521999955524041548976489825708081770038758594995356814018947091621993040308716497067113420784770994063932712365887717261754088504466725335414096195350720366480068980500690083044514035555396449180570474477755848645498292932164492079921753432012566164834849076276401832731971997330759899617041773339016322681828080160734472475337011807280959030509731582053468721808098685452124992586972716973898562195094742805779464648931853505377783668595934078894299196249566910667601823316631801463328813572564509784708975205903708211698596279768631138075503828101197541658734006973394278877812361217473295621910170556441654111733317357137173597615043233685872166009870130583159469619626903562571245164273342597949588918104789199123486503609682808581880297512358368396851686495689125082299633670171579557849832511536671998484826243374723387140176639857660344074489243604180207461238766416673413213618775061429203163909602215662156685862179283864817454063073459957111121605689301547347872567794077681445497029463256861565402880520299594480758298981341504319239243261542563743524972882994405229049792875065844358699039292170388116254110116876074254632907036294341733128784395339067661371806578042594196063596552546265992429759361506856940215462682066200243549940989290314077280638327699179319035198607647103666061604934392802773778648735501604092436746081075264251145283486731032863827953670510907596160640580258051405236638364690566159962183501077717514822197504701786666215948670908025436544975773970705855002258467478422195325827011626244309720438368990915113337859435727184268149579100938292689838118107654637189683240142901893112140040541637483176899036968080555506815773353810134827433018591172544138369663498307515171711397058869682235916158247510031895341988355267460427893019476990274258571936407920927471048881933227191650852193953647003442000096922981423429556595253893474562824246274821854795751137627975467133505171781662346703982322502293264377714700244764555635048182607268541285841402422559616064792344772942657395335249617499340143430008983907658757408095687442652977985885964057023951172304926836829571547565392362826458400248914698218021288385456978509195735975746594170451007524229689569328462159849228071837216338449343330573612283040528626770439082699601955364904761770170910474927054094484591284090288341661364288931537799133154555090776176595792091456837846300441749880788132204458003068223230521252021016217879823594217977466640121771080705305617340258581724325665807351684847123055431401537210372301057732064615443824155206455201900644445232785704355617978170605415644184536399910121553914890614844063313508330421575565587068967921095950015090801396867207793988113949434725034515644442333152279663320869901975916252204132512528039808913305402603337191099113699967316877518876733680151922706376279625328260597315246090828087116124751832777794796928245892834593195231013075031530826295367644554434013753937133123824874025948975642912863164922210418909042847402954924783129278634259942337186150144343431054322295911812609790710830439511645538363751914949204181272182569315608107710308331520094536289279767405721779861227510375053131781652388804754314550071804005348565158839238338586583193343841349251237130517559454298931428081568668700410660444744102133007068941063158310382207791805984526717329009840913572146562154803726181173660619461299483988407950313528759977455882734734036582352582590483779692035285758423783503197142117446648341786138544588008840829728994051697806845174749832455275133386734601083005715729028024980640511251847514149395592895826013980189554907643237801343940045353812207388774412734254075890315902113869753735893520041895606163020882032571706070084332509131344987436491164412477140157228812134677515824436936954663656543689769614275325539781741037198918202925311774887638210340442601191859957495222516394110704634466767671388572042964135821785407440399169226261385779803756010885621349749660799910208498573878634462379886686510705176875124497396134815047290349222780080954338228248928290068505380048683086347882894806268569964707079313700333452558380184816849604084879250737167771794059271415922037565756144789683823179465705517140213388957492819663257227940473531646155868532562059269677858913822598849173998396182298684445104643675260711748705322158066884184880576290900437246284239349629516019614361166587867288240851418815170102586975557360305815669569455733838832223956397645187914014099970722159941054130908727369045489899904770620549681973293928387906334345914424548522114669279195838076732726963485587580859961197398842677026064090420395162556332153157609825578984009581021738994527219850365210504479414380848065123590352943618077004084499852853504726094017797879349251708966551925535928652946863176812783225963839029393279241996730075200092637928139996916811154327930836545823424817921409833860717871058559610765730113401139007614466148825013754243262297071587650173014703085230738337629630147796710026545664085977356405235305060546277315885046586972912771698623484788966521239660689275532810150019761632241502835949958067016949160675573061645756362128117684625077635344476096317825599450908979095772260849681968582101531291322893203655764249278452002239695439932586687698195814348811992363290762699710175477327596093831931967068308724996590089118864009605624010274849819330226456255374705653953899388932175122903928197879345497081162421760430413433581425601676208509769589939239597917153080752908189336968503583655531108189331630068561596375330980246625031412364450640228095002854396854416219555868113923726456338524949400772438247088802115886364708737895831622607604387308610566268247658160798884938222607414351423723192880127801125263227504034105645852878870583150768082038729032947688440299295314255000067695789680566338803818814029448077881300286724569948082160743873109658603988918334186679924918804971831980814997007248556525900370019873463461735216144270569657046231438830698496793155639192485708161752243774965169357410204177681871236794354215212396695345125621592653445516971322553680863399479831829572788885841976391984179776518003333532960176415455350655439857159559098424685107548545619490446861510971577680435502057978040725531679045618663041478995342058629033655042891616549253666778284080186232841092037144421137583015467593908996849854327824934994915539658457992928716536689717963981096486166980871270507772883860917161363257214989177181911880835074675169355552907771580660343368899323815278714422088951334944973689699126218372751122527347484109363839468937375475690613867322072116205273147696510420688558506248846405201166566122753962978569380354762390205221990153805709163193080355393438113124904987344195386186958656333350298865365970131544957796771201940186062476409040184753351430845640283232939466829734160526406740727014486029142553524964905246447713604381460126533137771579345704308126076554034972742211472682107471068041600529241247901098018671765476639838836056673831064646394367955977458463667224410159925477741414455838830787983267680152272873631822326634236891058502649125861157684218358397987859077514572929600926725840716335579314255535621595852558984396790857544116064532793162102897282341097225105767940940164604636757881630496980777360763646101689760222551751766645185699149509626409606145739346205408529189118955041527989203869987621662550119053119741679723438879769409181638748119768386260586764301541638520477738587617645200653585357117856541680683968987402790183322986716013092181056707242919997005098607531999523278078028184348650623602418542218693207429404850228104217725225619341592909762585719642140414302434432695503170404432434499670981414194726093843186714240325319190432421331832805205269898519859126437487928416468175737061218094658685566239820954194939394973562397458175931639379000183387433132543290529304012363814620491800058334202664160456164480902294332001214527035277467507523091548449644845961768795507681364929008549162163466398785585442398555318985959520697659635470050528291288286675312347588011131254587735378756501453622917574534462514202172347223172994835491507821728121842545488206028511332137995459601503720082548719798545287195789998816682365533673704494938066414586943516769940349867189006944183927237768145942804423772836414417001592688136609686386844451108841410531227418599014021694953058600605552548338672691491034012606351683782929412269959726144153436949723472390153621884550570426382345545913985882652131104741718860425686856156732407244953952564280327523999130231813434394713864346203448795467332964513016286299126909807885892960980796129016156663843959171141255947995844367875512538287954427230453265531632239831394793038844680047578072467835714395871827053703070796878377227501072338033168542939367779907022995860888275237146443879596860221949524953831140530236779733970559683291390032092914854491261242856216807866387671317809406773794170784629784588627434989322175984644368286411147565570218309864731571022247171070720158771294377680340188525820226568451445451152065210555166480034654706818937169144278785243083795056349295877407506405753745349693511077948629012652249064458331576795306607837715098919475145894474568945511384991628140672343603392802874627794278481863985411678058770727232814816775036455488160564162530994972776126940996772489859110465180671596867079608242346918208288045530407635735174530971608956676550767099191116637626474636502901453877576111786444393016055833988244571788379890132310095387537926398551873313538065651526678446521201984187426708776045094522486472383662063329914638560406033905305887484417797649680246536287625205582336820806971005294107244578910373490583180151116705628581603886014095058426837032026745937280302617940381074860479567362996716096172621413315591885307023714399047995751095131370918755502481027892203882421777805725652713708835788740660710931669820862107768559344499112394875935327982577054994975155876375557250125665202965451873936458648015392865172818432195227634476824374542336316733006741250094669809487426507729798457673261872246543159118044976209772628812287837198409880823943597717552044743860952230425966331965352459985684641823680761855990177212212982444480877701031721652354211667606962627125706598062704130386980693044209945446911177313675628975236090207983415069564383091381883419661780387921647842370521704141194301688217998973890407063508291010985925618547350474188250076486348735081107940175362136818377350422980049182555774379943244927620205478119720829957358291169667291317334005417227020168582692101634015658070252215239870624856299376574892199214915035162380925791594118935713217101131352654715122730827845335598991654438149159927303185810383506506598703043291648723156663829719512554560940769913935445048914636016099555830146819425895261109981318200337541173619860560021238767744382304900687462895344920792909638854859371574016156106669783368133019036282115471236463487952303044438181864167785097507879185693106962368029719557167943102166172741222875670921313109351471408006840358433325708103268789808408767749485358612536859649048333775246947561563032411735554331074473813110755744820500662280999953414531431755593072970693224732094854976452035399423742826305444308958732078628206286505069185484809755104356623704438023063716377028683971529453238607356841127360310190176239193001412324304949581591007043296265821062465974293773380783928908686020406014622167344959283191244234792813783850303655165352039353307119895461953403111137277986967067245149730666657329998481121978514853434919727456180183389622330433262071455560692384295947674102414291957298915328187400397659260371433197969186264733698499569358677829075313679673009571839988499128322922290995800893478486795355605143746931059573596870027870121507409077169597989127233851034151096878525787163823655846384103377325150687395517116746659600636271327598920119599010759472368831810692253331677692580679204632215466477603195562779577225075489728522282856672291384541108969442119521667362897828822938702206487125379894904911416508379220685483978686648056210837264641128733839577097833378281205586239663187737359120145308936895941716347726010208973628457183159049770272175011095187077392563471421121361136973994548578024922073154834730183931632437102955186969686155673935486903288578806492181083871161247750640371117743476585047008521307758760548730779222104936993794937598184661542755316379075466013824596567947966307375061171342978486527716999178090592321414174450122452230081269021260930314993050950063482123414587558195496491137157296464785991905267856284796185947827189998123288324993987668891303747033241436841516065529102287510038684992801961355036144287120851017434702945671387778212295243303617837561281518456145306906758951974155673525743192140730219448961221402568364696461014400306962504817409808583820482018487047429622402755184886234334199927435665566602205997043978139380540999205358397229998003455130703441730057571619362463714871810114412182772780580599980321712159713176152822074739389240078414698763512602516274416703523794630745768936780095375708926410158352875008878348312650091584527628577755264585861698807528253047210231535959457958674755423535171131267396155532381211831952744923156001784096303502958948598113722787421810257418132675832724979822718689781936307791222524024508631124568675487208337496582240831742833329064144064778679801458252543955369517106845792048258455717401002075314814617537411055920915936358330575794091038856508224174461773585256299262751907273129606287752866348523644358170403191149418312444303386671179107049020684534511348507512339429265847681490822559302103112254939024845390845285957559901693637254129774041732113026251763338479583842695894536388168587646538704841694929483237245799660396545407574184939220556273292695641319635489315695836267462917435875787018042534161707165430496085454423480943023069990443059886935450767697606352312581041252719556017677707196194958753223033139155710319418953162614780139417039171660851748433938439142636046913814753280012479643604580866799748408423591823608745856166037416373257770693812932361024035321999164277101460000622570424729168846450133347626485850535135078102022461341481517046169742486781672405248319474778057352187513065638849478338655078772782535023837030805349229979354303139444773304266633135449805191044639689331126651947355821212438708199132072571700593703176310250369006661477165146996692645031745903103647277612050284929254014906932096123337399834722296470111695594808866507731762642149761625290507047221873705184443977675482126403856788695377679308205068350985595448485021836528278373973289532205952858979276484912106359455026031657406688671132695354165218389195900298934969796624073992408929652051119076368726998024660740357367582320185944526777566532054212027584857315263610711313216864463059885241260060974059118319853254209097851305022331296240052393337456172488019511293498558595994040145870487211168677923460367011346476055580487554038079166190045099273525322218738872627701287706414453237551710657933300449733867108279689140173376581054928238105439419267846092835906924787442658079919360870669456746799875360746167876093217735837771787401642237537140575117920669100696190353607386459447009764685012269917108457091314320080747218535006393406011579266856157151780119153860526293184350098573905712864248187233499804008983992805816130151884653326731929973096584357415615012457566699666734704049187004186859428799731684363992992556545634849508296686318627852527929923479005402740966926327791613892660342202255024606622420785434915993241376244226997784375477005177332119591466630478427569792213977447735881425547304372282595931374150929761961486249465793154284641708728705594639260394104669400672589420221705897162732282501467222630214811036139830284825855927492749885801806551253323997894981225574803597652912752781512978677976747379787094491949697429319448103906252105155723830089232554819805326860682163872713212117902916261032571989038436009845497264958008492975025363529356736175651717871330362927328228162915093265583629665331834414773240459016897147165288153369436689703720943573447438695005004899035035987173322835631211357568755669848901501111708212680579854573915209431436578530503061290058193599325556981301619002258765948488128721110637897548463341079390341979549729300259369527118260828743092787788663218458007185940181442578838041411238079757184146613588049732535781465687858730593583542156491204293161500281147941947895829250064758596795721608080368278140832753047744401377211938332848699864688745326569191312566263915816652475081783922469991158503263450539020607159498877453938091618357129930586259264173115195944327655770049918759643542765300708250629354662668485873271395226170339097895744849576153279917102098640504892757756693246965665099657513242950885238624147166799411998229151734756036089095180266600334004854953714175735420596983260758959689061100882954829234950770388386258585679059418821214135402805217354196129053837259432252603203846396241892428347840906162135328096496426915742200253613457076584228007684112466349440447653047165718474626394930664443410654683963305088641533729764991578423869029696698643640652824395243621865313747491871083787224868842424241506719197533725477021545890282435742898618658250542277838434929423777179597864299347408229349868421546418051299026983463255638841969746103937372234254058300319707316381284618426334557655003241064778619442437775106766425412669435129294492733152911154493383449947989372662669526068850203577093674292256478911755011792042044090664689089038418967264348809361267614031943549518379488033009052341015151358969269124079059501716551557784980152980069161181658781600414862256008209751842523701076865000592520245795807983697677940216126962350873262351600855300605241763711242531386056841196856132687495786625733835057987586398256616972106222834405505972399983963681061306954039202466604581152216569959219588697599991481591475009692500262071356181139605554520319669036989656820192073736127622375632830075125179740948069542570684701412853263232472486127216911994531369134472145769085905552437281680924505881696336766128193784802405155706350928977331461277088858126444640320499798826734453016125351597053461087226180561959013615841982554629725170882924715659496467917847855165931762008409926363293683788802777734757200403087597666265177245549961228438044192086729151156481660280905957274465611121072776792451898227271102740739932337444253259345743265324537430660884588464163299862978619517196550508873764408124032475963084513443756787048928104998743905208744068161973105802347631962374665638802379863074655339370101535914482426159060541566187773957778657221286758257207256661848150595049415965915833724711837190708567562090799700071035595534220296705013281075816938337561675394912240044888598789700474691729142275332026896263729808866636413330128568738902816794999424183184384645627239384889654005547865575986886275953962672556903794831724029748838585262512434142026678415720732660437324374838249442103271971043667505287390294301681015998297349183761722856136398470296904608223810408145260455922845929967805079890613836780384889055057238433137974927961916920065418760742177767582979475549109810166202420178586708308076599814163531635449183367988580974668913395790755797774384430081770292950018653360242646539393036064924887571949943190679992811511322540127819342940638252255760438474473493503684088207547848859339941028469145869372382999811481092727657111079284814340289417319628375489616411065075510444446790192243940874101080962900893062050619572182514029236705444683312794346105714718744793366078125906550842677586063585077814567881855898831475635985472833688438970540630893677852018914755817691322402413762968749810361952305541332058540558069731373718615466827600412085523311243642023088544661013523139319630110931008690629038857471036656063494215016186440734549148904290953241658564055351671292558365949987578671823498338124439399811500842824627547602304161189990679950313473503815135715648112696085968012695540715290428551534388191676536458540253668829768043716641009495190310322442354955278328372996883350347401487321177510427004229781452011119553312170727464187491776399134745716402398927461600053257469291783309239954188999934418779926735462284010863077769693044494116664442861532997359662146090567707559594507705526742976396234628439381181425329740704544799739729114876133386680529121696978156612135405744366403399136980837102710557461497403386014818912506844768257977096488872539716653467892463271350696296427050930433991773213668588586338350498026107843921378902527068051413824355821446405387751762058648191752029099312394117721429620218104774860992944913745643214870165839621446039352484124783082606084346105226431630061012692129182113296312375102512711105579080698805706720321901277008972848659606942046625931587576196093092132922545067120777764082771647547690253024648549901175712977949235080077703791305785861305376996697739725667180941404574072095216190500602224768798133952537689600096616307480087389853606400616791526527641574754871310113302517380021517715016683598981252495818955185980776854055197703198033389508250696206159000062303575005554474772081960942283070416014556952787390207227650664340326198886927443293904120403761351889982169876818142130827421031424589553294337905632622638104747906973347023972703595515807011690435555341763940074539153848642425960828966547893630822525123581968797518159177350739216492110998610582558544553485036627040631655957219429720416746268392028854561117782120729693779758980943236762764058127015753168537943805619087254985933817923035320247013965528304045877786250136601142209994222373935383767826376050301839609193654268997005231012044482958805378452670458978862683909244163260552435759272751218517048899312263554436832264164102528767731920314954952125517720420046591623252184588564349563437604704916709223538569059510226977625924485292360212384747729536039394936464303546501830148540154732090253051289181812240287271160537518598544904782976397599017681539519077108415805209632682368151035954410954452465226016689136454607130252504963315337601495433021000511574195028303873773261726364478933314123176295106133160187438606856678301535195565527703892760602678995881875819332206207726277353401658526400498593029447107835583122242743499171008730588118029687749862320818818809783744923655826572860013294550533089006723090154961733249173343511328033718747923370787724514828243330200640761253398742656419985575679285498632882182259943045265258242892758775188557888171174730431280430187466463281275181690742251921249216682512360713979264940351274175111463554737133304721380495806739205472022868811877177767557344376301690766910856533077104720247747830737578077812006669057956483354097903907225122519742506769177139419901928244945937772234023616210020285063228950705563845024028123744317919479475729264631355352405414453863679557116792521894992620044126111141273897553705873057377181610934861659891843181577599350977300404930828615790783008393306966584687763606554073779063540828438217642460632147396931047522973511858663998608758351781766848287069782472790849007359573335165853000927518576880972353135076842419575551169697954134966075992583829220979153477494846159039474378545702875343317172823416714164914551473584428409185202674177264776069639585860192081636040695684797392612540687006080340625827138604666043374927421010455505630484023541556829126590507958465754170322269606017402695339987224818924850385451095423981982876098232663463197119077535874154120178684359160889694636739921935973834275403328662530185725643372212327947193059032779941109065120985078365161039097040391250632575098513956545762444845285140209811263929614542360792301792869120243687825773814100890631154763496642956770988127168067973151632808983515333347670767987159670524165206113128862366430114017847624475706085615685627958619010701453726277217290357562927327857835224684763011829277060404898203095803819380767642686256850053650527814591609272955518735285608393185739148476365487544340438796070571497514928036056120552337176985362660057168984821644804441981512379186017713651698394837494144967054391322468554361870480723201706317477113798611297477361352501710146835144408755617457030589329692506655815646124047201637389947221121483388808080162093311711712643655028472402268796632779325981859761415849815742547166273492792192572152436277448690225720410724913497618253290292142090700736257437983504947172991540778443291792152428642764791270869273150798681710524339971770223374089535599586948991421600968610094040100113112763864443103378004905394084150613769824485170993789257454260556586676904200091682385767442574064401336600642292349630803764170536345900101502924554741404193059881019360315591773853396375638522168361702804185624423745637472658060571711470835472541359084000020073733089406810306795894152608065499362875252204865398705226907627874398647083144098607062064949961128738850474254639598412190407301650277229986078548626580039414974387078280739868167510118190032439732549297717955766700430156426746335380427881719923421408475047432191802923692690776181962961791463075625898220620890000114932493631989227878541488724927082560330303539154097835013172206205119179475717943315474188306850886683683420609083829692740732715261932706302001570574823142727567850109364037144423021683709199275822936026722178212479461823595607488056056440442257537606579133252773158846928966324295977312780050477346974981856610914124672761325348418696878170069735525710269399554159466475108022103723898464356325844519185130057100884148517044117035389967842027531845586956806938586656758683840644042493396196099078051625596725868321135310234965849615318627829954727246497933727031861312868152886093845291321782794041250237905127116205416890844891315982423859482151337715798041963312445965691808943402085142552318843597692062491733981798939746700962090557869220755714377908007961385651637135056909307698391735850118379150578550374773858605169864914336351192634599396146754753624596664885934116720568323675764215592807113643951252983485772160750478965614196746674511631640356187810768035474777623019283904762969451115403855196247842437488150357423561823404424246376250166633505918925069348330600112399978574958131298669449153438040310018128551879577490884208147815414898989673707188134541005535354743377642974713362759452112378590431719347131720364290717436335899403630032102134361441850480013396010266188083357342198525213052111006386235468306060768864457677563252668439089402664495578334260447926226269031393640396539943139135373134802598776125827165062890152894688958037437622543743463276062211026732074567760995899734744479430229247291578826133571514488045364615598631934525359886041846408170370793394399077415280518575015696651993805285969141211853840903533007180358244624358769608681026512551190653248408995105488787684429331093572234959982721402991627268646847945611227525441401159400972562210370085835014363170441795984068008411980303963941475438576485644603231670002926422154067897967938043140020870334241028433670190099194031668023614578815377365851435734265990213217837834677128372708380391459935188724205301008224526603747991665124805675357705076141060150056818872929309040220365633300984769190606329061988030753003680685312204896268618548990420952636515279040293732872341588681126826050234617131436174472520831629348189197728419904463071947092706193870102379398378269597308815155499726529377062501954837182027203200086612020175762070583180826556985652353781298021963357889654098357970712783760861530522501462588034170405600684735524019869709295751429264497786383604796784112682067924172910470437063488433225557322003784073930373706449430135338502088680167975245125623437596176199600414590635934552748795874638914339216508901677776006067460597452431530736065117333284519638989572021770436536447477118138858728569937047009978041345084087959150863061128980418609686113784948862322064341990057195015654919856980640868356537354751234706140070449438816207474582113983536694277972669354281766236748724783590318069126375507819351039335975395881649687589166703214036548069433312047958570703159748631930972999297025242851874791843364825400863901558283986477858410036130917122814824442729752390567370967626798404515927638276455869044042902228335526352507341340303737553648403734773181282809084702514249069300954674881687780058857496315357301287123785627534958826886132260172798936053721166224632366352849687517658522887934397326889554345004620403691986757019009741400547092500218283086649828173273245263052888744136724257264532599547123861814048804085104446617628947010650099578254454428056993110569962400877262025893784159052312361540701218892907220008102513339366951758010678782882841255727277440762318752531267344894433982564522782050891029508406702582918073691878240880520395290284027846213017822858624388476721135185891095006945659179453521714898359491153667451094616536946314279821281341561224665530580727877754406030222355635793960189323167659464655146293701854876185569710014752474558441432173086934976930982716790378166866208097743684359765478467715793761064518516582225170049694125509308130285839878980344939012434570173556612747482031438030449034395745443221632329136976449962812305733952866279032057873280783831727426185916582924914767953211261977467082195431579992140956444352832271813526307322349685695132340762208110608516998042458060467850463676369882552565995852854244008522162981757797874934860619797498734434912131601017985408600264637428658392515659505064448232291292464934662929271490255132620840935585787565126692128512360543432629461523173770262698940425033291959797781466742798604026888913810221823113492404091791581890642486559129080281503926694940301826193396542106762516236077213923805043020480582433016783631663629217129311252535099670785906823491207631800094648797168328054958789945840799492106935367369958972624358240113127590342975465764731697738169878668333540386787903386910891307439128402271134920763923852334169261760764228079973951899548863401340519762816909713307950810827535448875711988268543426617041845646278649408341053045833507485475450939287005504482624538495458747204105257464684120784440122385679316811076826773176831277927001893900362574749451164031627418501371298819010472729124416218828172581989747236314709778559295358397306200458612182034951072530227326404125637468083077588535219183912629444110369009625021408611943967901995725002767750326147194001041222917563932286110515648521743768736475789952465733661350738067482510737452290189883990065874621606654780122293946639222486155537433749346512561846337786425957585653108335493803885805910075988628517749397383130899669792320962916039622215397398817482226533099383732140865345920390077439885121108718698278811810477136764117659511131235587486472265107632320673697259110449803811156436392355664510834406375882569446100762465660430143886577873872156653941186274443295889118398348518506105032850933100656427375539680648159324032219955908373653032274535542509759336319738791252783749051202377690799476991831229638902005619911131817287934462707460130067403312977650492634995912551760523410946683164590834816461267774378144601145577569915521997850174352511066491898270366676594762479574217089876190494409532785249917467156633281690341630837183467789840928019715612859583655692171307899865942932624650725164820001101109167495861602097090007817017239413278666575472235929675767500927793500275118177233087113665170644211974530525251624663266057344730443087634947165029273322494251212009175990535404801504025611539437843261051912905840272096649945184229405568031724148811524101869350941447389461400331115319110941575035912979179748117813185201441981459670385103132189687381366859293663828011709086760701911015068627555399198268245624128647507442713132225194456582411241508967470196671861319812136855043324043905666008121179658549746421692570485282611960611675635667857348689716162998450834528353665429778166316382363267960095301970078939480585866995300458037193963111003829291795144124563443473098293981655925219621311604950812017555811101040586815620974683909883923265982741715606138086185049502998405084816109329930525179993505963843335821024694921636965699275974653890058557040091185527069437360176444740288635775057686828450077359531011696461740860281764947689603287662206299847116344260235148913378307624574421203812588955643177147702952384998706648178834821114095061640173855393283109124050240701445269518276812631759675247219425714456049759821584596632535220403462674777821301899303801602056909299591340185187483918434112711654433073220234559297185156839991605566937026880356605625871134734920872227742526675897980715742151905156990518331472666935654293647121394841195877156699396032171652477027438272936069726484715033122176428733997418828903132528229139456820655273118398179802855419448826788233337092284264034567545642302215745696433107515139969131060506139021451326285421849800879817274513122811637165710250732891471303330057020133581712620308763126445214086712642871378427753180976974248285697400781575315242038835980567367679892225413415218530137986299641583330392932945013632636860658055776715031394345989112320162820971392260939956532712175636683116720969551332853051334503202055896769872756024988336915082665527785939904458241587298987552565425996858960913650686963962113228158920981077041974478777978392861037493598706116703742186223785823327867420508173504498335908990296640496418926154654390465304828496818218025775934324680387071024866129394979466722757572641148222431478944475835099952001114649432023068416102935782895216937028856275507322074318496807425978765737634922232975730969050640011297148817027871203481679925574907950325640284140044863751065182812903777341896023028419260564177217064980121538729705312425315140990453561747633224022464739246171418527172968727652610635735368966776681098455538238750427031589351872674276719630604347026721048228225826055038128793040739074477354986835712324416335906888808715534603894730114807789804302133937786951547320527693984426259743513239968544823900681592394612970838355684681594870379734617111486079997668515754422151113848838183941106620038765424674001027443771557528621147171401586295250722871303510440399891976847250324472945828010505333231648281604847019665933998102809281950538780351551093448354006503305729233390723627149556175503968805475935809959144026242431346771587910956656898573357755661604913863204162974390322270583937531821690918578614445174583449062685349356218634205044753344809214187399251236680930284184880841577494648091834618031885740088972831985607743731660766003566703107205595789218661655772317447004246616456312025521069915458017478168249101171244702459204463043311295433300015803487264306104184850097166463279287640913645432869952910020722038370204974320819220597395558634697846959321228227243400607104779622564436913213758266967587948570088627756096853562961923547259051668940458583101397104412219668022002146159150992427008408681664932570026690459391131521133338794210631891751906718548792929530549394845415798698084738594122992545348539945868415761863308983555462342471173192678494960104155315555940600330418945444175693506311848307366189417809203066590385256447725483979683606188210091358545812931483871359431895219326509340024324541144593872272376241148299407214101936605352034522391524620539580254188344274367795038784422991058323367840757221373060171097625319732407575670076840550726275007912677291497856526047894607760352014617118156988349222972313603838521153326231576061951659487789232906381546588941934645398158547276574443785340274196726572653235435215939585025888313878091653272350984068546391532325648068738546102633796765864987726799132948007127453373954548163049973795836194559974678515146045286774497467669806186174018609682793182834858752094833357091160236166304883043166239486181637015067587725474857521174662464570632794037083061170136993673848784484418734677823112965994944776854659268205350926132618151106123382969138250867699331681706101908235966614852684627488743404884184027140557828091498519789276588408970421922564507754728308122902649162447112325421991577041173883573466070070237557893841076917591746150035369211151851609824362354840326975757603161993286047158298948763445043933843516647223272025958098170705769671432711421508154570429545843468844525776791758413824464887141134180753069712656346877488840394086552770489487584507756258433330211035251884752739626323896528412274426998177190423900680659239569856246716915521028982054112925625610630530532039368473741859602205055852942735618384146386958034788024978709195065210286075938251378138574261300701813649759954371795389310405130706205139691345600216981810722048214743202791953268490943365671484051987686003229835060274668635688056339123155072823385870692830741592373028252970675364376121951821816218657083205412473533308597667316588602625843746851122433685018164085918672122113655337602086366619226117084854107233739795929086184263217630307521643744287123636919490509127942121408579463887028602114300323454806535758406217866998788542739381205984298155012764735388075267679015136075372853861921294180847100925028880182716388166465541193277718034083913645131989869101822767395727872696575857598454107383918063254276832153581571319434148537940814297265291047979939504911959802453662297552792174167036858127874574763993147272451558279318608141994391112325017287450326920875048589710656592772568572044664841066918683576790917199054111880178855784531771182128068043236498691344424709388830852002730958098205374442248609818257882054669188389385707917095600124592405493650416091474100437388322326658357327085322370114350231350888931422681244563569833097370958377813002275970354549752396256969703497614219353427393404863067527263928927509469232214772159627526760585127289673954512975268450356911571468016899398556861769125145032432295371162880066375285658879200964902778953192516992772476833415591642952093031424232764075073695438970404385134429413408477719235026395678295166229508915969182460643817183349110167567980625760562831143345726541684513703346681979836519610223537602181130747280337079130564055921170194280044905939758772077243045101166629655973084112547255417442102839979429534857170375608812764223475196579176450925580768184055890509266583387207594390275187006826286421874430293692391906534909839355540173147877574430934000937461091724889917748454587706866125423284449406430161652567621024403438463508832089587575753237318100029820028020254428680508970559017866818297453704367955399462709486862058462337826453359282340860260450552879410582557347868754365313638682999225710654857327575564565033905811292104808363224588774092506059891193669067965481161038905785709956943929131797714380516162576600639992487567333571064766491632547292845864421895099361309356174185621803270966791342406172691390797972187561166048779813380242012177385635168505148820225243761551237060229512049501689084488318157293616984195006985965896539884691780184438699650616569972135660433714610030474356546643128726969155817736260588697731805565500231941888593375711623772233039715569859100209620267059859275821577210981308665481797595411443434553727139189259743422198260104019809508696802127724655018124094189603087353214570558011450757060395171648955305644581320440287808000258451733024730874519724532621074968311176970403237838913603072349688390051583620301352210705842576156886886763935262581575560365556523786903653853746663589573776964153618597806062594345069514564321739826074738053171793118423576897603434821791922993642127076741864495480589529066762009417434373618411915548303178699587002440894973754579171718079159407073029139758689813273187423536090920564427739446382927246758694728361625465214019415273943158931404681587790816832452125530510111898586451737002113635981332661989386597575356622822764325727381162275701303252739302052267593974887511773501938974439634407190187315140444190326922289249233225652878473359326868733013714988194806315456966180321835708903108953083558067108301968850962871871653807704117083050524904265136140793772886293821233240360702647002106353276948556891996364688352010782179966757689776446236072258939150389124437059880148592306729221878456752383292178900709879244415169105670821336892115280996309819414308371653922438930211191289436419174942740430026671582410561839538212383490334235421623051007997304302827633069265048564793126938477992322788461657002806931995164939997668469948368339078247985940931178298205997952042669176967691442606850507011963409664150067114871846884073310104594295735744336927672362170444093819525584642284717465028579675905860642566756696063549651083164011024678288849921022814227884323331281818885410534555751834607590465763034177908036507814951547101050113255186273249370910689885540441688999369674280973002941175089444842209623230110236423383292741621035649590050203119431871777959354656954871914666984217678773328986237954626927717053000544485508369170148272563061946155577693482884912312726571578958099702626654877635564412341360727971576393903236250932738737794089762688632762111975142578087692992048262721290005215010538670959089814733441804565373031755563349501703826310569604552288143314973940132410863837032560834045820566357658064139085018383984236619175739139238046837377571766852907804830169911630710657098256704576586553511577323715730327219036406784038553993598101204546643643225759087680416891864951333375556746433799997419024854715864124191353865131028464564631678588918402412760694214822761795355939819584899024251203157002818226236116423808211976911153878700773283919116677564872179223809393229757460759362021526402842929051283935851809770237301403381015461102890775191605751733603988704845029088328220082075408138614490395879592731416110396090610791022755209684357465190569085834323958828897505440691429686206211999359403487216590648702740710499323107159176122988236466092891681516745550284560755752367220057603095448740450681653391114992442519362670570555086754216728931291626864263163638065300734769000064349319368680570072402781789778149502301948844074769746848707963882326432982974903082323519099286909603395514139916070000039097407698632945484106463730195948407228782355444368812996320383418678036852605432645156082392049740858914405059855305092170389061191972818539000753027706086556079701611622688574236923919976449642447270677812671632844504352330239026133283932440146541674837862507272564839110104418636635509165924100766319545378437828921952209665451486557264729172463650542987715219803455684552484351996243495629249153803725884541131728894199305154998647229497449356615770972462115031456241866268974909768088936826059868193886003754530948805981074788804613475722622721808165705416790494669697758821217359784619011650227406565636029747988170768450938965986194363212375586645320701466566001775635841814982722679945150147444068791581403100757497212915133404078652589335143727109648459134096349816621096547599693429088622921246452838684086423154553437473187074131493472484938871334322607759624003462819625901242022777753032261548782555110130734025103032457370678898114017329701923638888775922382284538972157507799525575915814087633509599195185202190775961775172797899053044638757728561136300898683343521633444901347589204472147105541044665091170942669063685908468588715658080951015550844776800465179411338651285487185008492645032907467927985691821505172313412298139392840865865651435425985391385336792431715595436192040451730612848811058824220117708534849369600744012042016520587705350352046387348293066402097907585142593852278085999129103308429041330694161086203411392323468285010582092256215956465301308459476396489483458874023836947973910196200688339094487415945899683594317819516359122982570164857443262833335223017317628559871258765266804893170689739727277688042602115196684493073440692937400795033036842537165996999002501785164683357572161236903376484533669741943699556412295902645993170426587839401920240388612837016748245010351449278354282349954627221267332688032009360841651782190480539264335452345195901806176623549532879009476652376225264961932989641285655965203848729925396964194486105467225561622199800015009613302384376850703539434784988197079363151872067457547026714391631506141002703002164139472539900313260648310799712922670274889938962420900131492892306737167545036054512400212449621556995506804740682814671460481139976358541883070569883556121223152659306198376799620174159862966317294367530468990447598319542505757474786547154840635353265859936456746484960941729387591791359715958378529172402782553497011986467369922608529162444040898547339216444373543652996045528296842447263396155544011384014095997643383350099905663371434956492745998084561256817666980002590769178351634528325551487720440741670834961754487044226243741960792042960447625575229893409516793862815114481301397540786038043891942999775604595178814288072857251857450299349204700548282824168372359254459457432961557353065325547580990685211514720762319178457949439371695844994226498183247471808788056575604764035826556574236305689779055623644956065525109810315699615324975058121843752757630229906172611202253433515917526038362691602050775207183541493643677454092954320978850816325772126663366573483234692980319714902338392388316281419219797619954228382997966884822190314807822156649989164680736871993391553438119240225595950032855307644540483534646966960911696526520293387678075204865603252273481522458648083655534717211377110311748889829673157801699315993579764382951754956536136170399367700406982292255977744532059495468185209968504670502134231899036960934426315269115756027869203703649462617794279851632187740199989234737963932685592322462496217117449709809153102401558388832254113451328441081795364888495265464831656098638753495189797866650045380632384319317118119887284091730101260532945493507338761280200529022490917747072277526750965356308678161262927710790240084011075237728610812480890776685412044351782406197712828946378839949250895073402876581561508110662338918599123619498892964386801913783280370951745314413459314903752432330760754485152342908038563969168552587374859489626116857845248509324306049587556229499478330266441710429042100069560131245466915351817950868285822202188718853312714581452087603862681225456975373823061877326397260843957547963512853529645065020572636032997862877770130106039453832463483230185381968751631657488629661617957348718651452577633160617867240745326518968472204011552964292032857835460317754288794203900655113899949588993466531266228361613809139488030209718920126367813685586626275119247794234505811591757769259320471146528602951661103656937599110484185301776092832596053867181411935836257236462157302192878938598332427730290109273036974847253152834033816506176101255359216278839454954333587832071508101591525547852572852038185861226817906820589548078773223626169119642558904866454180032919520340320010811604270474418483810494678175207212516220469304639078249180196128584078108317877103347143251351436257114727362204654768271662587636627102716931834141687020478054045111528871931978290861095293675372734234835633709353885243106359230581841010350867813799012266542811384443826557600771167059293519116746329158074000612599206523441268326605600845585534565235295560905907878109916677945869743825786882966946813164576166370870523369664201409128462846791939992588805870858678398786901760346482566812386672628257935686659466194261266237143622680855512993957711701139403174776874584539401721480190318509480939966052758728822395497773595026515935185771155569209896271051854275404614443340205473499673291343848643563445859010790956890115985608742709222496789823225186766981720559554664839851478111497219586079497474991757018269656415276291045633547851203562036244536296829102215609272708744981800789148490331391014034746674843881545838773916996436832116213012399543997894238694007363136485399326134129154628893309178586657717901761277724646474063978139231798509653915860518830968593559512551054490925702695296068506201818864811356791473185389616290427216497855863985916519594009914760796299128010370616492695456003616362887811363387732446584881349612421617811351510282349231054112224529789298736476164440785168265757978590989000104652354172862998940956672752814874104082666765652056206342665572445400365348619099616070088056705047600800384934966482622147700100534865932568043413610055563822802807082955632489225592152802408564399668438669143693468777574194521787216625531049716433319682499127740691503573130182421718311603225222814334547516937934525452642176350009846128783066375402849368526335819811032559420528578807218554875961229411350516785734749941710496549761362199782415478115210709111437918533481547042580449773724883223324433023555530490193343854921187725149690076402841985825416876029175729616793370487495969425802546460742069485817421926406142840779145392972571148618728628565623057666859921028691475421127303047276522113491508266365772248065718261960987012730784783264730683476304768963123491054333251481113549750721379493457850400573335833692078383419720795214725120077424149990078428176073430265209933658789315038294687750720584645671312687353745031464638001359104632359248824676178558610047160910687289742381142615559475083232980658876772311027227966994433850107140577047002497037907692139056934020552091671713374206466090291268647710120027170836343304765314634481621171136968451992845343061967700311914981958188909944217001162331750867163206739237456520572486647791432319283039121543277990233431875962253709758794407705785944323645412188320229092409955555179297208166792468838264965408185022019178894260963282235037853504232835133690251295658909583268081939007420816757113791743951712984261351514310845853229366491539799818243323334144571735392032321352514150595271855289988479926728631367380036947818472195238634098733104611070493182042412546907416763434456140046936227851748761844514637174716454769123342040884913658674684238103580196163710798741415350312223320299573277480831657016794867936929694743051933480584119387163816499812624793424334967042503869354102435243284712867381036878471400126399961423495402585875303175090324700158244945581376783898110048649761588496994496919907139795261330823306193097892797288841483673617498832067388214924614749681031257343336348601766807366697319058840030505540905689350660636356017510878292911011316633013771653865990213074768842062970170269021378274360179372325214824439687317499663818082815531122498064986666832576984511727924642540133012535836891553865236161843099562985424746097055583856083514320673888709903046563893884437742658876710289348785328861687604050716270184837817444826940652061753492672650442516405251325977121418201302820167402910032623428323959455257274792250650893800179117582023188426725241932461914689944246240176321650024041633174951799675057570438205011242827842939185192707731874588828657627449850159765428069231448111829239857662973391161739776188694557771799379421739103832736542445768492989463769350248030458425633033733821502250473487359061016294856947519997377310182050057591158345713799871240596804759423721284574760332559769712953545080997747485574173326970634193141064207812982371340318923459363000773809121846642899643481093048465352990150825521882229220982874216638437830610692815708367502930871988208324125887643490673805964180395621049410581406001110121926982581509594958127970514729506378352235918332347355066921233637836850615188502970277020936049341571719741760871331116342335761472956042227143318397028694139248670156232092470987341790318429186132647143218995332142810113697899039893228131449517040181823675148669987203383585205253483958741776572161144399754267783224082987600116750726785082755657006573550549454766006125639521055858988727891111285818632342475690032895659635732182272037532597871475763211394726235839829182356837819423912255547608636081679752338746699063005762294667135267350846895388981463321368002412534649334792914858062358207199480729171470488862896709277176867834573757185232756839584976907757439126435256700248149573003185587585414370808398592990890061782035871657365156867138511791879706572187799271174524362336738757314510501388939860316288516995318471678009213857402441468875498376812172648651170375605188623864205601788144106735168349369065807201659818168638966407139231801026408654289023390401085822868308784317129438515573186550538912567772942501316008453287172151805729164235302084898037640317732712516827266980991777854673224628687626631033248270831200565845554085821239680123164106116826432546965671146268113879683960672088978185188802141978682205213511560538753780221621110610555621743774369128471161602144233679506799390612947153054489196119695563525431302498839704739593625697759699178362375440220246832903989470415968263724802800577763029116724143911818944943465046289120427476603094471338473690066880505131478399808945821279316628848835937311625180922927560936117919355822452746764734273903642386129826989425614171143753265237891413449625173528021116234541263748120652533884763900891949422013592600861915932895116836681276353453498257068704049826463537922441861843927953187916040518384044140692114606359955774366260801433447455456094601445676482087241662743349383848526630639236268527001456709745408537000962981414754970303315214027793361755533182908114292528920143644570976933594034596512916227583599385813822674236980713511674397333292953899948758468449837842436038111325950133979464900987826056406985939812260516193163196386280850744235230868268642490390549131298746873874917525918917575461513875370758151133315087870172291160531812821077796232704256506899891069680256983468194023380926002538380981598048638681858562066105872132010653145927181336589792588637873933308497865760839348547006543485510524745146948555840142921391879649100107291055558478958947661587694825535326365992684154899229950310995436259175874045667567428712774847967180930354822358076534305525300861865573765576339501817746548874503783706924065402434084590273897481485929043340075755966691698066052423767395439094456016787242859088464185902060809777487800681470631466368770532979871526581818268740662285664351703004231193294384664587191838330090496319987327373741315426724209727006483246975512635926518698554186646535886396640560807195865082285237444626427513672468191143455881545830266757555594058653604069335586949982588164681584704186307259975508128880944556719917288894365190685763833630417003140977295233408291512870949002167342727572964986353513492732168742461390983140544098670297569544173005600694015521628055595598056389429203066911726677678520810801827336662257770746831988661174816166099448324587245304467375605240362777905279089599734761552827576749236617042509650675304969912238814364272383849085587587794558070620434966752519465874540632498008006446743778010345214146803833450580871699177940366680913437891243152772436132782791999948718253967983162671770381057049467081387596922354258231105008491413086991042024712862340600215529298642500807104800255601955440758912706519264351712521608714867773845946163780045178681023384303646543323449207870021089035249374153841678524554573606846761161754885559923945934058868176620086999991952134324251278057828597882839558745272993030910600939247604548215341166673495106362716825419280419822313754369667985796971148487626675388871570943073331937472588520254005980512502437528318987165371808342209139283261158052286694007367130454689434835353361469925119502662663583860389072910952399671406849272330794757312363193123924310691058812602495106265988790735516099116716162645991887568484572509715956565782666200291151940476087986063552720543138217800316383906097355164586884312976100658060910286118351356473794413337369078108887417350225277796904324646944971591868081448751927741732406710442911254160832399444168102231899489320456739028859818317485845042772839825497251932061579176923377551006778920684209960090124239305217028924744821067968803982054412628458684898464708191226656864968155753093978234530648650580244990713103087964805285899855869340856430741819759511043010655432972194385478955138375000354628073208748396773022781210613144373341192386355089095078274618468634160088005238468118532279554139535302405208797676357789902653955845009232699923135968718957188282694359910198869699040085038021311842614392408830705136960912426839389117326389233986490019491254407612145474010923526477741822922507053907776937607001293302274949287766400507697218848381886871524928584226881418925584821289443909117312589360947774882841748795043263135212035686129569975466178201127746291006498320657810140507780154452942292248589778594345477572868523560720023728625552233210142147345042350302192319702829494393579101477279090755463849884106300408918095780623594460949925549919058895541787549501985785483486953745019233568761401085339645483120418738649869949989555308353008762750554010346824944932805111082574930534061410174410398763138665524020492130648117366509351585264154518275598489316564865995250777385129912622381783174490894915281767860055917965478759187717193181567353235387312915239049032215088800483534143018583590605706322585547847139916275421168799657806446118333383123156359001280328150728669671746397908125449752544811313571588179341171188568361058583872711038226463559733875504956614815131949780325317350628025136748924226106751263520979843117434510109182260878150353228414461867494849071382548684856019771935396104603086983108760107202469051894001900612233182889957332488338049060924907672368661212920882266847370176733955272893578515129591221412640204922898894083666692117635946166317272849569437236281319595295907583168789191260238738090335275783404799056408848091278453022001787452401649400480226406663824207357064792314739273798445213325151176635201124222943027774571525448254013686715201188246579681778414400412427774424280897209337027096400234392331689305517491781238938504910443185887138611176539419342010586529658532675942146519047463319447777579261891254520939788589937788951836482067410484837716664988304824640465613423183289405694204908216905417008774668230728936886942508171689040231614678843259934754684185145920077053772021733027088318456314759903297784920537830621501799975652954268074610857639961844207684424602880273558937711874034026332627474950328909799362753913743277234016254616418229906344691257701735988275001884011649413239027673401856806109288552257052546810455029555369020130569191408136257000949458866152907252846419791174017379596905652485762091727041554260708331502815990538417620413888404513236061540307185723794638448336017564196933470096594662522453153384920030575169103607584822828591925316023258578538464153875620977699476344924742046794879542855918345643244530254047652159402330941112965592824817799095309560456101396372775103734295773450875942995991772379791845151380421611691631719582257026133807154172668740154513990832101987748493270014442669435106300954515903005135264288974406420454402264675875682796156283608273054791095017029476194439409581641896874792129014445303471117515311358093275137515584213957597031237089259743227330698313770136522549643198234574779176642074383282011475292977902300624221282881946566604266384125529032970449627216511816949018671649852084886477405026026774869331671050984936246728402242866987245803671701694952316812357755358410425496319864137981393225814348632816294877246475807666569233567850625779667363242436411703195424241258785025187881361489852226744047411914062623387657379308766797307074969364957318919486552488722287074246824253850688732702731831230818069258191554932632331376933878744773497917392182399497294351210300939652188267572038879333880374738286502907415003453512255416675249374174197609985748966659016724946213759070674912761353267925420063272611793338936184562433182918326942645407864765273611343544126281461073081589143825332899967295021713671782896834264094460613925031443959577647659215475582809909025695842196513219296340586387025561879121144462898526053907778073480927497395034799068860769573350840847160629572722484280565684841137423537497266505676906471652641625663109582719212067165212655355249250896485045857146339656638581433617326113404029675972078159548197389455240680061250890508908193167118125012376815277966599843378399228762591067192816151052532863809891673501551450875450371883035196319139751341063829127138972752040512642457185807015400736509354158336637657707837142021143299907558196729538156113118119599838333761311903928207149452560842722066124668002181783851081415518504305094072993444856622259675344759860307835293006939890089971786197044300814259168574900833777842174383847746599062682983362215952981115892609797653729307257428207079668691295776953538064786940221650823692328593633475974939298470737601841403395639857664574261859974920887342727035090012721959211650771767003451342316611304568867739501229846334772121516301259182903524663123519781599105417491605016026976372268066620663259529971370399027250062471151191538276092973897102470277425510899429459887562465646139175629570088411628575304192235272371813680714559894903935537110237615657502762999225823986036876814604156068342824897487512611182928919498604290471639167481457785344716094824640290707085194190697801476354498302610584851984714632483219071891119411972641349388542507413557860212009554562008749146625469871986239534438889661010953076800078089468722790967497640104126337244615294850645226588174103853983798899872006284590550938590204075251079604763627503267769618672949605949615230020814309588051750707735269666868953674046204664227808487394253771868434310338725804841051419096837799467668276407394197930536784778009039971167338992131978440328236492254223885720250278383921766531381254381363391434906817790273522890171823965453161641498369158350068655837773953480173677334703321680253732760006401519689001453870220207563712979068497214593900869475130800768088591578890630716651537960460609393142617293475700498088187746954116049310267003764353022491070114814547706395280289955654657789697750611039742565674397282659875541260307473418826510552445034174125555232512796653498830049155557632416876934947695334777799915446127614965407412585561738718053268454727046314441995304361449443585021765937069253867532280887276523906365001289121448877610440909328298869073873021658202957251377008738955629565280323163073710344919796276918098793503106302684578925925748163406882947773439575794286930457250488585217594886645411273726766783996834309745629459460909692298087774018399594431993373769168375843408850217327493192487349430791240881436105460311679794145692861500399555040990953807067613536538442840043469500637041810241370096468102869139126485967384147357258249933057927741611964952343378724108540259752478396411875966657557673313925030944337329022666540005043718497680119072095484078737285039406132242713285951699212602829241497755940483521558352245374192116458003388177276489991880731168007339585510994869458599868206388769696669184383205847703141615032292488778146189184695258734499536768475362461752807937889746261357584307586818512954851018744176012318396531791049226730887624897969678137816154390236582450492114595880441491611103771631975206587368447718553153997147166238767661709602416827342298879323073023134687840585174893645725708844001895289978564542721415358404111027179923633988787490711298200979177163209663851573076447666941635845780194190719689583153958185643929602904957436111875284694939119102989896973345483024731860268601615702419823010216511780093378561709022054672291808576140996088485983993038554453107666507224136136982852248017505152489340763160672821515247095050171483579352149304916503003818940554031219266150160744123447611462006583114260538262059999669613497694215365842718237889833286022917173383200243893362984879645970167130800700775840901683594249191207643837349557016802858925848301209340062633451436971037453948312590766760645065482793169025157278435393800397053689460344648906348118169043943241492201673516164530850286980905834157699002290530063917953882118984163007573790747024432090697879655540606417928038581469935296699710349967549732205560628672452124250764767917777279977657779055582413989663574054154713838173519479339487051455223144271897141192810547815374166818360083188877380466099101717757151906175647654563000670032692534928681072832111299210375997163273084352466049881396035349687966996634747957437227282743427360318824628278367039054556560271095968681378276581488804026847020728115192919681951397198442209406932165029201942819643510846651842719920776816981920171579934446427958399312323800338884128914135192193138420045990228854446468485088938624185094399853979117627674876154056344384686390858456442446605640221862060061748036459236796975367963535020271037020085762839047056057912908465107020035216746992263980628735208735825756997679571241878134759481313130164394126830029791883076480930174307982623309696289739456453110439205595284327476262383060642576271480539530078254996734154599164672103899297101420591418455923078542095855705711742765680558560065694643436508915401627295798834795264376004521240216835219002454941283272695530795720780280757384815794071383393374445360637930841860770322281075455397918034441968433876057584137268853862114168479510929910775238552254646171582083154248097932616312889982678693144160163338253376301643459096602349933758689899459117116315099359751327567550470134633072531320259452353512137493630918214015083712728582690479721308260254352912115956653607327498327819035654360893579769660342795696261842892708714035727836044149530004804490906946333211790080339304674475312564835051051766526853328712847015280394967781512063972266043885680288798459727094213970883404816296290779886426530924268248888945535005198588079080361050502544398330963799917933445876044051589310652007492472250703206688775511564278846715449076535770394898614502640359180520442764017830868438576387041739852393995562411405695407799957764123673264007966846977917102883273478921307141314177184023652314110709006458829723651604713799242923984947248710157134138699862219441654967972341436364769324945314705150256336837457270411156074522789988076807757744822647862218457286131910671073359885868069320987761981176063662952726469467989180921641832656156923923358158840656552984723904795925317618696411893942818195885901748155509513623117409351342976486191605943425121817513691779230024246424045257689117872882027988395230452399764800453121586324531924999967317008476113154687855807114042408649683875573749959209213037069776939892299529282961155552609529282217455411160240961804125728935100260135646125520535441100467235325116800248947100844298149231228239664903925899097217924317191588362663011118503175202430193108163520897764312666040370579633948988205807294383779091353998814470783130319337112646593262843478771919395525720332247328357718034837084971340913144284939935392596116302534733406331904411759393168878905158691821651412796916873453861659981197950850527549358037612814445577821134709871327953458706424918532397330185352566151892743617428367686196270188689898339602912018183741086783934297004549495055049917576426627453293009788860011755374701206704943417173829157075050449021353075039866189467372621262425509642954798396527775978189375818677394010675770967114796480315311095848464296777995606283911460475291341064421331533712962862495919730305650905850202678295032707729741630053042233156338080529287234294616049974629970099638514061061314326672952715909586986050838079335198166279437509606812572844691833412815835549072139097834684296556979318207915523025294722496457608804346572023180007770129035058026405103467398669533596843945038040630005225278889660963200331845913569088048505489222478066806693828566671238977073317714896394928356505005222843550584023839537453588724454188778909445841009291758710785253061789645006495550695314615725483144644481698573033854609639660043445859761833807123435353627808244291857143112182806105886537045481187330315706887057343071992108398387990469105303402053885929838982854933749233877342770594329618508392269479141313951623798722436845998419693429042512458678747471152655227296429321838281539085688147632032108238178794355251446884100935300373015282664791886651031713686034481258333731045701069354120037596349059721607183595030042105629281030332993862689880005340449593669420635133784691864102406514141367327155503440046661080032915160698462212504498510947658297577393869924051571436787852559127370560771869001878902663595822068242305037385651487042429960668880486557820348433005738671972466685835293991638413689320038990828463601116832713980818779884432239663672040944521075680539378410933823628841254522667118653636167271713709341279366799666810336802128071126058100809160254879757659017373220270002023692676132577808756065428382923622911720522288391943072256981588987824392865572370509927971839486274700307859355882632142849375009831576051532244831656379319374630346841800163748670374512607197418677528914882929644421569023228918603298734560964018430020238542190294514952948675055641061303365123105099051223436205473829622872599977894913685040625699480100556993890749635538572776537295829998406044673855378320592759602785232627947904988939954309528081933136714461450221100713812039355887494743594881526897122551700479471760773747814493786446986954868638737087677521689989109698857745173312907784514286993133560365033196522593571216088026158549576805048815010082950386899224086275371777687601054707059834663233656620778641825137550440724387723576837915955212914494166547969493801560830102729051360703579534703545066330806075387166947750874817642299498327519616148122698036388247277836543954301205719368556734711224733672262187699814477676279821505027128235478987359312884405681222198695633635227937252877882434619736082003690567561816961573371581750557375962696721104392681801213081317403510520714634343634990070548251881668873106131786473038353968576288467400012096962936425463908634794826448551433894614115390522089524984368787411284534612220419859091890056012600417122298051845628470713446329193936976616453701082715140629004843714811478773307748065835890576600597456338099666148598631086058142828975675788021907632857574986076338832913582457837778529258360285489708641292588957034796686019347361600474483361081140546580682224947210391859040858022588019689231418417116028158584490421424166078127113945941552560749515173944088734407910155077589166233219189989161861038296750402107054800786440376234083318965182756700195100999113559618747317380087943917766479439260692904922391598203422590772159160993721061671799971533232472132110152814848571827230737133363248572541802388179363485969479659783070534410020696227704727360347107816713954155866495315306944248557978740724351410318556819272156992260186502351603619877435432230525968722514235033891763949187575385932697479918049051299328633288583682383939751068067473195335104318325105195991986305048380811679920505825401621347452371479374397194647090404651966554059134412390858344329005375658951577919261406294431498751889568844766225269223335952433559590331579455802988177801785726667252470464950835992446222288406085688886807732266929813235679522175250195213892520337569931543992547163196318761306218484377806752379056830974794530607981576733746036734774681202809935978857192029267347881482927978942616035887964923984209686389385088608158083459011116013111450569316820480988752595079243876513955884103251371083825782344863802752883634538799031270446226925536343071471359024308749537763587353338882535365124888859588761856216207651648678948215385588618679377416329294674634651657093449349182190281097746200604165148089892446776754197100449253734801908077766425105726940596900883328598087366565800830864142612016384774758473609849138525077769298419233836766443594898921681709468636374734362889431593825897918407423938920726194541068804051093078876739524573992360011766891565841780312361963070286715971652862712950126868164808202303663823912341529601516777982682633801316948368096814006147450981789541788875857189597489186966768011634432790293891305242990975450373350942449273194387829215873069052595184057429940681143260935250044225922989512117332452366531461133648529821004890836813175581049813895393935191782309618822508673493715007698040666210782420888222804099178820566206908053457564099330697142952558071521171468869257366317474474640159134441030225007824073521958961428693333632853492813783772612404124308596614523622153962524878421585530947818372185377939873109034222443060733883331092936956449723825903273466938258208219926666960590489551630742852169033006887629263693836253544488323047862821271639287472058411629228857294173783796553528071192963878062770735455761580685936555594513661903442295011004873817296719662918618656198852690425582507749688678950608703105292965724525764757816646198483045362240626695416489544182483079710992599184422604553733427822020377515656840343626338966832227785039190942489232497340189586928154920621018942335554095703944370588798210822272264513841596537371960717265499983553072070472922118505274936747795795365978289208967906369908600564086302493152730947052657365517367708351687941814388259256930689685837886657813242055901317412212205518588217625402574490105631290852609319811441825265825254473971881243675858990585192178895491357772753620597041825505524935395431992026571552538127827554673260949716498644292874412631201078258756247255261626455799278580542712542097742533409740847657042302124888315652761077034791507306799850268483994071724739171887205096607231582349826687316884707884082603854182049179991807380648316793912168259851754377728464033013037118464973661167318273726614738754402839663407595441361634968329239202990656438962886918573096822665845573086436872281347390078687475006020760776925662609595124971594117876521982895081844525337962876838102745040758645196496715493063160301441600744713133600239444840926308400330836318987750100843722120263861443401378082481078619364992589988162337518679540607829735290483440101753970892487172682954797947500008717918062689803062357476008670693491975913370000124028086444766889113272468416059676235219997798809254588809339885644594999614208494135823157871132056149895666947536767472552692450743738309672350481957742809154882857275801189374813400143904408917801152953262480783868176514066089014574299002622854234709649729336167126438477018990388174175669683951517830006396939574596100630074074528229250223998102358406800508205882315140752233315185436052045078149600797500538948952458920050061105112277796768803924930512011485042680767046139406475418068790813090665337632097071720258231417012636592407256040156029793419889921320290437409613684428095321600356748420623241900123414039973365371982588548515257397249352954302503574863986870607405010388501003300886838213123985582153789264546193761390952747112207796356361520370718971649119795551660196356902897633430992950500907181793933330483239946433267769870439139405370977892308603398792056320447746841235843770671746539906446980140336944338996443161043295421745312382210512441731921121577754874242116550063832331709803861467697116472778978893218620483422514105469493693595704748918746907297666250492258231187633130834471982476254700657112600811870318227440587863394988833787538926141517511901079549838546908053808864054947753741027056799165270702691542602043343018008072273850128378463889771239259343588625962471994592061221051178924906568487508871067635307378094285844190519897528659856103415971032369932993525485661732208554991155189108614193595390298731975891717456693619337933584161238087981502456218830079816282439862680727280717384437330467114439500073212743320692747500259378668862668595663018267776772781673808542309052251668634506490457934812362284019289909083283185989291271786598372152481149292277077711914153195278229316547882233386793619787378013408684482498660365243016116942785877808562214701477528081201540768455392368195521867930531721522925112915492954642529655300186117315799611295417807533876248654475387052222145417738926908595443569711176273436576594464543977200144025111758830297611573402072571939231402181670131250776447118816171865033332100526128735139920608338167560962171599177887614095556664782546897316326199125420833181998741452292624143520315121403656023507004130608470658865908415573786746450803393683025651453789219945421575688289642993572714258564829481816681059156315599289449073679304850052898568475303220318592279008283355439398566814581859356288521295807904058583293300241967930355958890981331277818457888249837959761733993081484889329604374851497073002540740125351882136389713385629909675605238863088476313416532600804014272465542365202349434671725555758674540474865810677513779811230007728439933419008788213386172464147027055163105245649114246252909165348677250583262780770973850375692479680541180660513266983711681684063269047398981183289646290741771678372742914205906830425434412124973372501198458009021666463667354447366048069470892634121755009616440862046855564106097847843881664222469675120674256343071922174882904464412237247971826319095549721220149720157255717647108785077399088274421473622630268513997108143798779115577514451921231592315374377323816094852085774249865500626822298020701809012038594407215848899683380439721116523537110227498619535960370703841553213321859497783094495288676861356494908951832248995760533411248726069786929491001432370233809704991778722569915851361167375123539494135634445368129288707499800832797465928351847426797091552454124476061189299535792573462787805691539376827460854520360623292942168218845344990686178132462649616761343403272229601817525768931150581396391735947255934481811162508154746740990580970679560872054299159716390075368272876552833717455520365871365917683275961798773720212750981826034015854011093648248372739375738746095664973370866191414081676594546669106552456833090506754044555061562876593718412347279100276975114634679425487885224727678768410059664070976202087495690223220150054447621933276167207769104695220305405579136412473164765412592015662060059285697335608397560076279423192056424404498863167009254977909360982555695926726930945279990259238792694673951658539478488227253430464789621415834523571450345750460626434227395584643542492080115218193160082294247362969895584847306135976906143339921658081677106899911179107580580754427774657547586702847761565686030099497529382410793759164918445301343260366411711415729547237925510909145335580971355050661403217024804095220113736667383177262578581110112994537600263610309856325094500560591236434346401744777673648706865828574060087254420761571179978355363072834247720261807243804048923617368082406340936803218594795560735471036675077831011872190053227154401653418613945209674480720073497538764520769462334179616429291810475761362233498953040058660519411996074996056289172812573854270359242470838511666886125588024197416850419648014314335899257505840856850965876171431844445846590335407224165097359372717797175387889548028297126906567344550429434690305063539411718790608923114405758670846920116199959261879032502704974226445956951147194719635571122290219815747211090798627232077164462308143759473196699145483330095756340225860315151678768478790260972382372186391972568629481468475035112075193826770023831512566093138081404877375939575945737364487450646646399200212267520669297565950481211360771730396464244032969628130270873576101623830552113763825469299118372910969476793042673756996984611400249093431626015053259056438380430671813559258568168135686953505398197975236534847965407038914057693297684135632368434523417677200871078179809028196573539878445913600309353570277048574881954205041071092403212055083852620740201164739497324401666493138303230697237670968536302775705750481079168407286477741189054501200296575097666014774750175973254024340315629156307005281135904784606670896132308902351333102331694209495034742382240585183615717994503649098743533154885157178767586541281343994593215591512532900862406791034658028493240706092676945048026380642723690755087331552366192011857509863259894630090945046459378608041319919665010280779432372800059990145814454953750259122805110384848709533735855269911031595318421901023588444414261399332066309525476795846586910681666389348732097136014375580222221977892224218568876920417687482626787298972690483640229328252229306336531918913088954994247376231832070362756379481385668791495947833086172160605351813393598695209807044771177192658349415869058212622079466112272096986616646646249787913284901312398956649621266079956993671098965774109422210297805540734740243461880342421539076625022430433943989207891321340724434370605418556264079014434274784574771726137018610278326626866533354690010330944887549347993065683047190391110485379590301950715532600856255038696705888717705249949817067996124026365627208629990197100307093900909843356550013857007178670184217375870675441269781415247831179039817101522549542006088752041116022804417174118761439159252772116763668636138101771378212805488995927845274213795854870455485909705531001944041085745770646845468672122919923399695697946813182689485129178571711034077063100458362388806260714555694658679977829952472771630423867403354320344934894188892129831184413638768871427957421042011644259147094402233062437073846520111310756182177373027069131205430950786380881651122041431663433922804432690307393022040742711812917071487490835762581556070844781047513044653312330781261891612543305974607717476880746961980090211615395131076610402966741935536945088235208906135318725266393050961397249165283179258278415964698715817397512700130806374147559856176065879316341516170600581210338374953898223475945514872770080368380863814166254088189523658601039998221053354731349280076299687850908124741007614376331388792282650279853631877718965611187788478420331592836798084156103981541511171647402865171881822749294045436716109550809887486816048712705561375028305261311616423056910569738548644246537811801791118765930905288895028248303333425052639133036484791209194999917257993270319046815596831712277685668623213070161952078145187863767278639288153654384181268944308347771936951017132200911369266611397715117265647359920033411512900548749484754857420405886766380765658582107577543327942457181595878183324820438459100267934743117701224472612137543598861347517841497451507564030934675955136115238633584545842427295752496648053622063325254350524343720993444699577379710730150352307185106619002845467266789709649438999204626177726852186194955785730915285582450992565748858305410464616050160874285008589139928543065513824898393861479098637934093659779292107745893308002464697061920374236283113211610667066256260738178897667880981565637428443812255575209459070909962268002559141251911798920607566360946873252748801416820195125538461687030412722127811806276341921205660691796727171995921910202500426935977027719213456839148005840158693409468351709297765567122782063278003689752004274985594630888459067210513447979769557270172667131831211825006828896373794021937285766258165349370306493400377207949278354828122455851680094730709443778615887462036315608938296410033334286577848425350658204387581724090907990093664353011015862578058421008872608405214938579156085974841365344980779830511651460028617387338430423436733884697584863921199161065695812846982067733382482837087829580471572890339542969991011976020839895791361305286783726743471618823945927717421939579631601826944019187142092791412148202888533904633137636522641437586527352348650943062828586667385641831755277891041360351807129830940348072010414582497207983018826053466178816294340991826133422093434894519421538174765767217204799968067687928479615227383649725928060477765312462177948788264091811566615281202755161977358045042336581172789639126993825672414682319274931422503752562287596801228970940133471573797607910385980991741183635277506859754143295173741808662327530214329471404111236229338372278518334782980714056395005999474361736513986334870317825750067684802962187960371440722394135492375293301880280766085979888159797263211448170899988155481848535263174124229828327469264818571082313430996055522017889601698362516919999960172344533028702957403244825915329132189709648712021308150101515807782666754786060016437499635399354512347687613095595933881143669367677143776565245554892109192811202129039347172162080463305139938866501903094545608966853287535684971769974129272528417288242402701318267300872883571880509456833516377907071029375201859589987503149400305650638311772463247814073922392577109821545352365802444386781481656084145623758882184129600830839169464824655001296112865922212959987144984611349327585789274302827843145862076898465858350656530920159543238076096481476709480798180431723955669112820741093225618572516203822561172683984978028034863518400479670247129439218132275555343725049737363298077202598973289720385983066030303939947998457938683572941937849832737937005059148839656930038675748524690396202926837562889487335734210595581115282784046047791279822106055965135713713892417359741656540334859460946467710203936420401340233018048097252720001246824382640703847841619207312113022813494536722322294672641390542992785144692812764176410797661532721594605497569370388713701072637612719384761363284107115492347678315731482967346221187878584901571110499556585329005326418598199796834292416473201874380754542098822747978138829868232173547512684824442472050312590840512279543649090699798862962998605870027169157175287463694970499390882848468159783443951884250144788502586597278799762532056219770054301759567840001124357665324983287918584317046049337386802743918484782327426053871461372627648420905806664869153396336654955477561898602036848962842891032596760527948651096178767540281745280850474669626996293256947304796663977168863337479292495763124968424205916807927543829905433936547015248417238931511706180592086845949111784659888421168265546495904400551448985528948231379294665896407755970597840799619482536834199601599776972930150596946279184478349008410277051605701953718662259340816894600174466054410473934167456419472538414716779268797801828142574758059262471159974870170778695324274753515057309113284566323367783060786195089880206422961056648545633543149172532872361052570166180762592320739943852971034572427034643940905184006397586666155585166151005953679412318336430213460101178741596599587773447942283402341961289552246719117141443593398161465819382023729323699882092362437618458354475875927477772808244762223297922774896639747139749474110736931162100603764696308923924829912863875828107705856912766939324630826334638554115310915735071424451101492928177401806848711636408572245952815090052491349153550383713417123697751425551127642176986254846873972265232944927861640303073663001416559823444743744897040772523365320935853933995319337384549107305021047734114385715397884786784047339098432820671806874502927101101045581416070632216313982619342478034764079914095416950250175632441088835438259460052059807651351225763285186208835558875818447587179869434479256366637770926553034984010492183928915113637086947130209940378926850254885033182429997498572104573552119152436459513998516492538510070838691425932107209955989110763842192855035445706213310778817046043785380672609319109796655820121219550805546932850726251689128943061714718347287570234718139358766742900685446505254284752210786310776028378870022769637554344017755112161906215687633706479913556942274139522157005697005009587753326578546303096755254183122865518454599804313591567720411731502846061208184254190864662615654787723281229796463708335749729777504159905253485539559701976028487661118718975947844881847676792586668266253023771046734977078554863512294670657626611035968361542604080473589655130908167145565296994488937364917864542258309931208002983207150843755017654013828434100750967626942865398737531115589815953797746703848180685061615969474200884037946884548201195804410004548672450082816744789862276745612737297759901568473380488022690527757068290573431419980719492330619551086550208811255237832889906260278395435531626903897946446353880934074699048406288887443488147003984369268178489266277058396082462552856762412974370591261971536950109970473291099307538040632582024914766193540187043857274906525696593315715847702748410738572831224932401989738655883125442527522488029528650568507226350487065539620982709164404997929568296453788206551164315153102128770938909975407784066918609931964187917185246721850559750002666745647746733619117470959746513749428145818605668479295890797495699759021152750642817038365708245808150482930622724153540918958073683629861199816205570861297141769135689257255387228991596980990296746363427585067386097735921971002018170449870441831792171361096113516802409850826160949031550899327936857810282910872950454583985028498831662372209296352132622356088905677933295443409770024540018699783330004561316239598146812975487126655976081989060958501390348199229947664309853407847227635062295937715989542674765781604877634262268219980246801824587474154649668593417924870938700799251839510238362068228422038979661152031244088953579802573122551110399613158704788282406516382167652705736555472470017442039157446871293101369909384564380147617645225383925527159203509329963657892882257086087006706183072881673559889585620276134907849150363851190548899973946286488709972712036094548569949140710969651879683442928270779088259245058589674389505409161083368124658123724685779210708124963983095129587493509342114177700462395925747273006905167014620392441777534830006036529567000533539645725131099588517101435136649109148683153529542655053702601402032916210865657381720646680859129238496261212344794721213252309936983886124033616189306876123569237135161957604385794723312197719382314684809591523639999542854625079916109407984581810076930390059962778509885383721019526951837444778514826238298916127222178059560113715753174959299142429155810658674318356571740582157563620700045734969100448165411747758680247292193559198512146060177146660117949055733030349379434834373578536973221258991375706047552881451870561920191058036739047953607802504309309050074784062190793047632510184467057402083036868775970361854130974330877650344303773266359150531846074094911627719271271766087340727933648400240994482379012300115104009086745333394719987291354870016352696699824437722115149329799659452755178375879618492432201628696301883939278025365491175985384949612564790677184207870158613470216116346827131949296222379673651731722804031844049552313371260861146539256641192291213768620212628156755497585011791747050338428352761141077121395016704793654129020906076237653108195039566353662256677968629532615353845484341114733794985077247250389623095007608087533255544340910306187353101298593704435959895529444958941433388446103848448058893269011865466678156617973767892390754067620155932981338139079598434565365919645522704277664031648067378950325749970873729437043516978740748756225723408606952324883740642379286299605331207627366179912770031369252534247402939650659277050301026866380343971383913039631157807610737984049689256749380656483839191304530329860305500661994683421141351109509596506425775333836282644338356569356989923345429092933293594208153848067299437225157702512543187995886760167550941532846296396235879526521639209944720561948259949970797155934902413629145285225180297729761068554771148459867834617890246276918927350559398937698039902479881041814483484978245282355089260485617083022821822011651775719718118233066327471282833618536686506425717469672733494055246214152088302867894587546202919695259212351027041204156193348652499556717444872758062379791442673786463406843769414332472827136832751926240870325072507469811421999141724146182910027254281394654936350781355234973996958778697327076251174371200738474620508410072557842995291644785241711725578962522387391721072195462457453104798427834507271218233487903959614578758199659148307145290597688978475698255978782863658878142418589774870295259731510739820619171100049036237764333731499187015811547677926342595942586158971641534979439270306615051689388060008194428380631097899582169147262189887373378395504263267043563148194402309607007848783680864567394175101893350174262912413743465935079343141193481072503988479280970108741400671816492633839115490058493697110509002221310142342632779669584005407596226504358254224793900684754997848812457294720700819773796690592481780889750581125208785844344022879834938809846275690859770503502670703106294758765764253306631008127798883509968257827520978588964049993812550045099823420041441506085366535995343442219522676412998953389574864051340515532977760152903453611561283915380795124391348692020481856289098209949303339057118572092820478051239168713626942271974539614351722918483483867565283569093895130126629986408174967385862877557487911930163861978863772823834232273023304798176881544742179701165840953784046831202160770465390390326868050453693519558466658678913124134177253890822556234289814641843015724169295801204126441695025146892391443665078882465284158783056887948317819120130754085971653796748334991181347465324516170689545893173523175847797998752742967038274799109962636528341682182242922999315136114137827785384827958700343712709900935835089307660285099399600824724868586115932732396876558897758497440134072174458252314106650099043654827340912226393955870919604015015265663907439055551782385819891049449317874636115618110993793836982231420760752895639389994678502556251869216187130983834918550003231260959877679535371870775013462566936385416203110263117976962891873610464367176295028350459602865919629564552877315074317237478603814101224959360139106482947405213560620845847808942532168838341021905066531463574247406776186399085451945707566444345839373809637932388270907821008022119789067492779996965452848558286657015409240848238949342736206177070236945290057981123344090474441853690570494971454525049924241181775065976233608167441116941498509922935941244587472349546363205992535250729494591327627540207570458929747310471073780119001689077256526504190749896930287088713710034357258024902387851952702866517568355655652383678535648471013584733708010302864491296982779287523977810976488056078827661190354229052647683452107123203680611002861302730623949804032057068238566800305208572202234587085260640381682813068060128495465502665585281534429270620922367119299145659116504494745460346694374080101764461615064266486241570243657599941917055797747443369060677259182243590283532090418964111711135708977687357887981402227660661631966086668715243274501227405509355861207589292945789874929661532112325746173496818864714428572808523645900304284430987672228456964460138218432004899687114063402958777471287868246915688936721384726261902469718479107744476665215659271176713053652588340020302788870713234924487571954841314745901505825619004925965534875233589340274002293099096162862360227882298962790732305071302562092483484173100084541953684021569533660506656600009862497642140174307583584883781504788634601870957412106915995923854825254570722156965539642006662649438414904050567332715209134818545616706006259838703195434327417114987234092042868832183766220735705786059689343889492527074846041120406341211614818940851368907818722277981530288808910517115384767026821848762160053832581600024021091024931572828177621623368069164575305826770468518508343570950246863767929051912955920756525036419077041932517656082823632510314144008896111630503902205839236244766864053676593666544092948234273289071413169493872588362178673553585929029425924748267572709141703458845466171938837067435295147431353302674830293683184572095951398417681511676344530323452493828212345626750848994785990654903610077077084054377691966397729891070352440247931696039732017712575619485295323737707186335958268932808274013056309672785984846142895104836081389986551273145044511057578632939305597298982122845051433466331952130510526847153974541643435607360325419193184444425619768964134886495811161657669201680041438103529065258162341468267645907385645438306672186243519169698647250388952238539300276622418287025343844695339837226725854365926768912210635803487913470401333367892416635338990603301696359033925007634618624156802437147518933313587034454834894181381961514246434116592398440028434113048424769724574167446321025790991566479939461906379554318634458894035037682272983935552134170409577793392883408431054750647847856761693150005904076773810539816031934806635858413821444279314927324518621638405331929794690377537922718813727535919345787994244901787617497635337026168237341645949454280314034235848984749234198689614025574274929937245963720902741670579034708919704832774007667226604266347195986983052767755086564354616770743087924275149728197261446041784418887998697815216714408550594028138822067637763668469663308679246442829931630706929629584098776363173401002504732033560088761380420084062655410053785331044976254651552531860114916469281352086452003001011702711802787248412171017640728977566972386056174492492217034282231475052618650097988807898705517858162400275035742340106072706324714573409564221317437551989206871415254783484167048419326303431701200576108210834729699275885706457989714159931163339573807316382456076621226540338219689163600834960779201923910514208061478339637693149197417424476317572432714430153933492455353411083256216917386136758380495608854802418773823222017425385652489382112692733258468307864964428156068928985773125021311443183737300525520290758355864618470071094423306280045684467230881143648658507077933249380235515108789414573747324675835522778884003278459743531134766455851465463668228567195192366431372145899596201496676878319740535488461504897691382548610242137658474729318181192577753076276931036278640598060016299896260497105461321844391810600574674869140308963434933251775391582307638367074823415898502156248830091803774160754166119279299149754282677537273700657099528695213096236843859423654022884327848081139844884143522915706961616413187601460886653847276298705169090215920208846578711413339403969328180724721665239744281192839671498347103942089366167757790934320118027021980628273084199043409925267083400878658994996542095666646052695173517063005438834956308774950856451840366488754759877445009952209718409169490799544440689136816803217668897479656714975415401941293523026992460295286689179782918903996802441788579388679645160384103191376979731968173041865158731708718738244862281289026000902272172102446214656159959456134893045065213505558747710492246519584972486175502504745888188598196565578224437683974677081830448269045783801581170339625214988523509454109643434216546775277401534613704601324999852169482117585873236929325727342841256150980207106901665242590913042375952850474541516297187328414696275934811066713910293930384026239702570582939330351314336166074286591724180503991982201085377318753027393376892230320746298376439178965328169761169251645938681004105413022807945565102797892117877960745971691721173879450343682089750284651312366577644041990524965030560468875576485523186144171568538567521841319463093999259451279368491992490503045490532233653070402043267773742393573516486364973558016126943675085453912328580563681262770137083622182440859820143419211322109341444835098969415550268983055348242654930778014316500474778725432184678639456752008889194384535038848072859492112848556736875934467728256846869015019732803801249857899394669182333090261718351143306906966716070241960075196971922480866523837283018753541229387114657240380499080665470221219693589857771577718443568496438400948595450088265514672703924637417188934192966753421230508381320331186564390906273523612635844415429851277638539618516603136610782413829820111561708021605441701593288436422704125077109790391187687322829393377640303911326205130209162589767379907019899871897105288145241530354662941350465500043044298856809727918650344960696007827237000140135026123201725958117554714321505776267565049965183656220529122015000559684390230720908591580827892641412725761984881959256462113372044888418583531506434991334650676909384975073824157494397664388088581297446353239852979133601511371104156160521805542694460785132712401316550557932909253669268725939251373027915582749041736424151682855109555738395628286286656795926952941769988951196151936964654771954523135379368266350503255191175252888881613929711390638931183544009605035167694989469890963326475651451458078627672871683692410798901667030827828639712882454772589729430536226243187711504700608879788208554568941451539329562195247020079873103799284319124311698869779593033260363031881771179144975967945231778188807135577548365624082175582157255370507562160978150553364937572321263055417772987352477394249779515516961693336925943240338893732423942521203805236574648126168011186205480690544539827803792293293404786592620951389746794412331170995843263778303761057906674350444196993336336901098212656567693859036934038299872351663304604250659939702434005511413719912229092268404445808429059647894424485617719401114534598129311704840786337573382060411618638460119762483081935929211729938792292411216706671874075259655847388296312743539502829639715080907396474635709901053851923395548755470106737711566990430079199262739726725305657217864095439957172260439476747057072651240528071937710232492037198383690024221152701051903580395106683334862515621165179573437445779342419891341152595891408987653603194016504920174563816878279711583169772922056561644691657355876185251492247897651579033879501416448921235717980651798566673366130329824481751176459405314158409431253399798807240812254601684672898692232433944626378070988478689409880843423088784986008968378990452055758824454658226075990430836395860063329410138997227634434437760906208499128449964009050722415630828141837104260617566885509976978277490902792556582418102003733217956121600941172029688443945958050534983667726246862392139657251808988044614221390206632432551010073212990374524439685173008800328273208451649392832070100456169519173914969817904007634797938841220065306489848535872890780448974948404496815560881426331887597972175488190609070483158824144995611808326007277940586892779172914871606784775179260138766869925858565341024514282499059660275453191314783811140841882518264899647629354058223646317666597879877501412831234007268119905436445780110121745488469935508759110929972619823669884048308300310561813953409208042497621430739398281986594934199044159920906651525581826316754501772385037320957505140884388217956419963074188321552981105014626959681941039917909133245978536543320540549107223637577083672767826327341641262788201376806148486923592610003116105525197917679646055374876823155629391340899895370369851390437269557173641413917632896412806012679202690828143661541254059100048684842569481664439474859262135747185541983021142618868246829489095242394111704391849813455419803615633899318089385766443415221424260666446100705452853327851705721458286132982976927129135319467264182089230009319901686156640640878861786285140418439832305887289115624701498211999112988770045728628091964812899322680278537187004485177760530825256000560924804804420810783710387363764871055709210609562568644073944978995489064780743410637555919346791321717322430089998101732157406745500504006951808394546423541738339622795341769930830559454941714239211305661711118471106803243610466094229279474686447884130493935418657690077263137951072412603156279293137225563291203605636558015974574443549450813016077430801798884593818429545555129221946994639083023036368031966281969257502759401429807157369433254572285401452886684676292356146547945662386449318234823053986337588790456553902122223974127802433791706970649846621977923302975884930669213272530472034685134057272733910275086846144564196595783512459797362254550428824660846940724243149564470596827746243009358818000561829818143941585753500644999502296911675255874045435387378677668571383041909120997512358750173232670207928138923201068079426270603817125300702876766268830142187195164558258852528576637661378193701557856036120335316664344668968950405047695263178824518031630419978451727542473455990371894231328468886991686472211407604518811589439608598599497005135265961320909025471139454615893074477721884807523312741140018446417877343980445647939759396433001137617357885923807649981581650010300775089159567881843214117297567615143381464992499372090376513721937807579624972344937212613872645522184930782902647328157084980403161008193378433658650841038202911229998666954071408669548577965652877574799283846988985352883047919257061487902668958405689581033038845113290914139692180747378147866112712639222409780617332272452756518138953768607039619260901452287670847663853332790295520585973394781791649072338792750236504587134493743552853894791021172403301579207549646690102857471424973911705909027690360147423315843985680985257392907070904334442431504835547200054856274293370889672189993229492689087107046827385514893576059212691286313102092467374248923685285500638806133643813135563186730969371417796221819513643095772921166621233850617721412219799690404457626871017545141773848206960500086314882624311197750293879023992727839075332191150919194530517976126255411433701125850417500417675390022953769147356144705030219150056356254844184600877640851936932295316394506185158739692079353281920946597545979079550764554525525642510255839477420699942842924187598639724565387966476814255466827918000643131933353113981983333954019678806909748763929427927780188156565139766052480589531824109289489358182820269391329423137814779093462045830043285288957739216522996566595274436841951445162556650999249643317059671674899488592559474241981672624231502440921491170273776389215156617825357136955593036608296949982497987215438939020471677473221948078686551313706079352261163324129979128744584414752536596890704550470851927553118078981822934427682177805133791102723513522982067063455818454752297858854173159763885119407469682741922118460892409440169812823245835645303730296363145555970473738025753409541268001690111650168074652285954148598382181287895466719996040935934963337712216225978663497648387741396306803491370054492054547951941412608216315120209682319930082776842176320292467469610746486750803102830909685143663986529243961134405579732471773047794560256850701059344863282853818939319582867071792051431188007212127509625265929457100245976432394297716313644983730141126749439310400263334697210769965748838626825376181898136339505733589729225738262336965822835720409185173540318723335993995478589202024483009302565021602067651827616025113135017277362685917793862956558122201409561977012811137986733860185121848953510071826326735970526297965922775900655796998383545723355149719526881080254317538783892111911681964904089849695329723206747512991940270972792218588077211651159223774904473363722970762755691089539704911347769931703658435338404259209466260242917308141785692269825087836292769593589377950959763353875140302540956825273235581402195476800478653433522537868449189041185303661574599544992868451191121545819270011752206662740200979107535263711426358769705107681111679545929271561580312698826843146334705327096597940754584967533518817060945471260777437863577136673120799170144590515410244465470894723882865710379215315533802338000754643198757990734438312441463703658747594398592239390465436544568439975242034380984032335776166927189559327183041062596882810445426531620977114522467193479019311567668796124141269769947162055338916101319159932070825291560633412653581180832549474180557213603730677899321823589155590306194985973946898646387272044305764129738852818378357336147273321447079163221857542917395321974595685974722855998945868524299751006508422089428200919237940271548972710072639033598031970402548852351914059554523116350049521177900703760144924740111888781383436643700283857271951190859973756176634885838975698399878159971922845246017903358010194615148241436708803029786854768622883519720632655373954004913777345995444309751889165368743507690221886636118634493314985319041285946761422940647522488255852122018887068660031193294006908198122586910948471849261825449752015792258071203459768191777978049393109555176430095576965646363883090230222675075369141984583365215599137148479973728553929770389237915505087034109346016514235977945721889683925195735085972499610330132957696849755199393042119784984030129771528694001804159869182851441173547801066719319951260387013770674127742795141151162673031155825056580565599258320478148840767379130719567995742580852559485014482381553824976956657953045354197169930150429839584211906377026441809997036610776454653087797119056176549198174952280365585651381059291992272565615363722683915024613970531956738058185948502915911478018497413336739256883658025193489918239122529392747095564590535946829450804319005909366508292553493566298844251212719356845167332705065708599222802565251766964663592429679964627660245588142286789141735231243014938782446660342745674442360215975930631241318648446532767429200418821124907720970039228988350909846492011972838434625744377282567637209959711398085957284556073071591105873032183934833592276934006248530717352070248993442890437181947451967324306846352929239931838705844336649205038548381870375258797511761216062113807352378534340770032708656641034805845808598270454615762001708978245808107072740537359710016283455686143853308192028215351143624524567336287275650063589539782123545380184455770462245374873216286617418168903067082636020220243833183448520177024592514918800896753594934900409843520417114805324865111928515517181765529864105637841373455885339215315611115284815541824439143898380358242542172014765896164805843919633962091107973572083273618951451301920692550327907840119274962712848892301869364365764895882261147452399119349440857499408748095982657414723630407338182288913604897420884537082169036162055493884632890471739732298918932763571791491613413543082115574534985082813644931382703239166102066835361105297448538839870633838452387163070894299037432542152104549507649248127567094016794756283963677294129224732942065187516129589986043928182894389972056183925157547923458484080418609205228820179081562866075877680136658550725051695367044648284353220835901287550216910238027089357117088707958123503893128761220046607596429239222094018391185832070887883171949640998507916038310399707346954597141435611483301255609104509741703710879515256429889959076290296321131238305895082980826405769182085276271849296479563090201953747045837676861864651991441781210547932356780807893423739586073829455654778473505814077194158942116811886311696101361546002389037762713116186428807157726176507852775964399569362029290058773183795371339482750082812505885944493270905535619219765700528812882851327065750774537700525240211110668107498690650865626109320206620397834645162254869251935038352208518303862003454887593152631357986180317914584627350184299715621188848375147446458685252243504940982473514596675649683484772238442631301832178634069448673203026758384254890092865906556426300613952293047394499647360408538548656819877144000780758773984297930308959677824867274881066905811383674176484979885053018169704407861527878214037264520267629875764587797673252810480983150959052580077457087283930012823556935897595348522477880191582338280354147559842713379467600990778733126385560794976843632827473744737659196361522651399480682496722963201965060991510418239884556701526183028595690917136942290446440800391514931119492982015147200451633180975716358856014614178739795058532729227135748142537253393010441957679014248889518609505208568961851217313049154534535992408231014439131771372832633964051282257486053218479249028876175457912004095495202315389326080032054898540738873439107523118458356972677670967979957710208579638852210158223378136678998945303545362684688984564282932789511122966130384304062785334088392166317069456538590612823570304540026224624111021499794836513392508495388330831910194251909518952148425506691527642682761029952744727182247152777174679679297677470085963989670719051930043339898161024427596075454081456257461602707968044021300542473943440709113157529816818030874291723795370738617436063778597143039175926653534469018564619469611917846749478619928891970697140757685695338322898142692319651118138507103376146220735366215496633702424715340264528985507484884057894895723409512454432950076529245636019812286497373223424623554832814902288389732913150586342174640790508188475279776446081239413305167368229031165930100253923503069602033256482267673314814880200684103654895368330813176517513365775362784659795512867174691369024050138229343230069592656119468146915725520356369746376700295392803481758260993850129566157214498959803854207336287042205900524722622932776863140523605901593296375858671446773889278716612060388110517129326467109721372149719778599481731655654849421838907391970700919583551078719315044011797051124021917425557543692584851986215039936170287635458718628658169512550020591763215625569097678539705923210998556939292612340844515555932115772137732529183343560807766909395982112938747560837157484439476721732596792744562628698648674630308350984762803290466604136441014358032945259999500993646055284650729117637304399501134626454167089762722992078376150388346856654875994490899374061247312159189044442593113446195050894116629349138548830263072990914424211110905724349962255784820014276470127399500196580823924379370471333115072705850190869461610210715365825801388124644297181332260398671302525366837869457486935255547776205729790306911708482701207871976595636048812735827391500022647100680308196128866481470746013934713897005258706415218377006277401888112486813352936889214008064958866328703598424574245646312912725196052514020880388371155398843517809450308765716901489399526551925530729885461823186226672559289029354682243826890843733334041663745769459964124773244009414797718907604096785154015596499804370234822814932260634991099678889985587727400774761648663258518056183814415138254363442878141406662179634833034649144150028361793150890810686784563848700128983295943455960043997738189534621166942374028722700084036576973846871761110620861256508093938396510450568136217584729570372136218793313708637127836681911863656664440201643479680286891002012982926605890777471310081646226225504504824002550788968328272954459193854626852532605204140760191512554454604078959570808049075667004727136067902256625215223805427811934942719774283811755720299163799865341027669294694953212068872201074103088581673839335947794545254067103207933826160554912689810129435945823539015764303047600193123655894454893276042906190249481850637851420914010033473742530361656249054820830908608972912220690572501528717810821875752459182801773420528260366187108715930878027776951623955127094704099609044789311774877990372479636084838190246308020231324524742061153541971324788681918250183098014114492552233097058047406738743220575175561854351177661625099292668411605328001474869521214224966106705823903201519312339960360604265522737988108018805706122999375204499519354928191945384748103631514223694259322691948206775473269013931219202245949015462096832478577795043920854607276003985671325678466669436055703809826322925327772400028869019439739583343536151927392914596162236476906797569309249529117141237426800578263130708697068214706861348291827740812519634356281136246216002761637974698796276046800076213906256545405503955666798460704327202779252450122675457655791788074515747742072165528740415084390114526722670216087195478869895502412523060910471072195291581671541825139183305091508950943267705260386245786338347601769646269420173501874764782685175397841251880046124269291942203925939027457990932398267092893823655983949882240932745544289958647525256747759667364941772891126980046295827527505196545885018114895495943995419973052752580228602778802999639098561086348078052244844165008927500374143754139075146734258888868171536686161520061830395786649208107952874779077995542876128688763016154964740694453193322539346621317697352297252244697600136301652386151411141941396647724655740594875655323924508892527715257223698934180397219777660651165148044833285979798611323453957389725791190374803083550881845526244648408348002320582477774744413275488763605224879368168141323120428834419575451627331595155190084779822007114500722483857825256488315088739250904751813529452818837507128417801988049777488203523026224835102769259150341698563390896858136615794989886062415350105540293590211053944159726656432924786098422395762469936022541660593738117551981401122530908383709680208007370330014707082132361995540839235574392072024968633284062379204092477256360867433725104228895967147358401598639959146982356717289318289962610340059694445905260404581833540136074623438924665174716118024569433323477682381787574018996096107261683935198406521854769662960114737972038716298644859067205953062240784236740162730095234720683047541251709982443402797060333782297972756454182257659785479156041766623727001119587566947095219686543503341950409827229457627579342293040060686432754500045416123370090820727715570508460270302366048491597665293386311324008736560774412627452519671335843836626181929791289889082283937704523141813780176562389500040804125811608083177431819935309466199992798246275642868170757408698310423485809006483434903051834033098026645773627443455240899542211574387884591935505591056813739355333342310173408322987788048844525769635430311601369261440265450454261076981880338716721234532634523312668544089797411857033666532037921151835061088503319334644936773025174568059457428390889928387462350217153782346043254789431892314606226802704920904607251259725756083822329189477330627702346376300276908646309221233920086593010695927947898554389243162569058473469187776839443921649608048432723565112871350383859776687841345283427291062782932146824993063059973818183644196845628137792091158163456929612519131191982496734578287326853868145436565493793385100052751680357634099221863862890028865195981660120770094730347917725898186348311132164592342926347768373578027700158154707648678900163207638743078288005226992596346477940733606448977749406419008674574837304960312715315129912413851389466659636015069425741767121853624454790882520876108616087514483356330112868836100997052164565118052655269686106938641917051678514530975913098923443217973369508480014857941791026152947278951902724052237218465734748752115464105495301661662058312838233623426117897062121375319787812703884156689596938805128312121521844715297890866048451778932154207931252143283460040268641970802315145236589199443046361071154728763012574335697557486946300444412434714065722237400111278474094241396922851795442478516595981273594039716991037110667711922456992280523581252036211119674443522070258626938441909809700938198471602739036687049816663368816476988196229893304517617078301253131501777262096785802209717275192981251316964007183748237176728052608506155297538027808213775555230588723577495102045678505699297077969714753529790185626796771532432763382597406231113519651978986399493739701937734367882436371306943671356438311114106424181653270892540890913879165422002412535318411362574590904809652078927847640905981558027427611092039207613932523011460267490070463035788331721202813933265124851047515075712214282523249127263291388868653563261716457690948157288334490885820984378340443678832884924124194461410237808603964873341004022492565609729943512039020061776850264019986757162441355266344940292524497965320903830581131696640307126440152557938850794265340914638091089975915889520860625985200898014382344973264064900198607772415828992577821114580300448426583788459961953980727794519457088379623581861851012326035200577775345820551124308464972110731751390253232553796470276262333428866420537816682777734004845012296018880755521670412693794878066333799329661000358098526772211697901477888388126202799612517182910686880594992488632916937529106821291037203016270263755863517957070115403224513673537522080531564740351460518970674534066474774722674920452263914366569982687798507524277445747149798586866025689243021798971898172334757002884916481627228151770333498134376975570965339492820173374455629291362389948402360862742115538390555964909646777069492282406105793811365456235703416645023596445498427251056954302793751474192660410347618977196447909749881013208526905943831449760568011420277646557982247406103139703532168008498211564391136360774123687466181821452495578775905999113498664014257793322984937622977106192290770309890611487536303371475129644633934241013523000217734664568073862695941812015107364960239127387443950833774118375990148082936155980895258307313414044955864126747638132498755857461073911350438167494191480250519143685936117398072077170996405164022827320419942170051709304747229327361332810130925860370789335306373884136150878123009413257987761662748338463055854168766736038183595922283015987245312299161584176252792505815806900419194174985197944285689213095409016157635475238921257315862990320460346434197133050240983149060590484910621878986011400103491241520617365000661010560355396191207625961900460733058670704305204588503884023555425181337551021337948750515175988577580861113178084375969897938987736598924331299228878836658578806546187040283488434625963208870667586582983981753432713269862675979390271568426018719257868170593253728321616431447808110560747047589756579153838678218983594341415971077968316888773626424894572359106246515600783779156189224645465012830231929296779578555608177186447906477814000375389012938226866749469980677341031361177636363169547108383183899992233193624851367039983655413657783561266487195824752276182117318876364283254981660501721542932065543205137474853266033930327216594790768377259151703784579275130633264803229148327446786080272381115958441007511040244406825298138666503811645653756092851383101664270285797649983612211298421794124428028652423431664443994611110428326002584572424602226314342296716470452724063487188206321919391962406890462271497363939325484018113264815147272939878792319642984267108369389093090969080286666045733899186615890755811748664631636021069224552524387338264868399121613967100812639862385096177457234632239003056124281273340788501701499441198879209453734418874505645171732611073748827577048310925919480845653635507492304114690092256427370217279799463297933320719267051137544724028567666486337154773718258956229591389715023593195129913872491897129954260174717583219605473689555284905127380942243601510668300783715070319770939175193221992357226686089500862601907022625261211749679272848306231141937282342800657047051554713654931229002983273274331253349593039872523540980764154395944664431026131173947692403950429337412318414274513807820844172994693033895685754967659563453832727331189349869813197244182915043624579008452149195611140617204589062407417354433239514434071382641788361212401935322450843186133726214929903368037500075439207523759534102476840413144590413940700621605635543683738661520190197156328884651249271606453730240560587833728264565609429556535542027625952733079216761435243297435234705999718550624557128287423318501224351061917478812463072498721296849697298584918742134528088997423008121236696319650996399461131622185582998329935825320196107935169164580975358041872392607234353670334318208178922095819101244915908964824165289192921098509698445057937382338172831777757834214535981322949969317830892146184533726301499176548997864868288392711605242598891808815682127080776558363233456441469673685923166910027147200714104897887681904303022323512949431328354372696282255259833139699146587694617933281716890222449912954087859971032531157767044570178167536643327926946580731136267488076323573604152544362635554009431072052582104421721908267508115112283144461912960162183941968960275092544135937015558924408586302706115279424690924943492204058029464766475230451683008572796528528346898460185207707409226083623290139813870901454604665144421811236018505668040849095934325768300758041053298304181348559599139919692657376938684141481822922824583961436097067291476175725289770142472375721335565602727349173805373036088676332390962056568134477833218146106079044184167704326715537018900799322536829319993424748393095635321351824812359328735293316330104467405443778562754127698607178059415949061960232838644419514385248173503160097668004483423418221632888563382873122415384562440485012698980372565280818202941067495234709841485816151267145314095716760702237254079038263430059454091963147131351547292066629929450774199885540042309458287411344336282592656870792631256777311636579166713304480701273177574742404049116573476068037371874893112336772710436884450356245905808442540203201805972898289919895306144859537485871803715801855319488031891382465753756450217048644761403318763582166374776822895585661854892518321816080923715536790901889464388406708013776877878222296694543061397720180384343431779638756731171492906685884917964587228446900129204680304520921185669184534867254268578549877299223392224329203446515870333939653319831530099340916641298324426680753521299210717155466484359419994907000468365285968970581653791846645488935214507892974587932042245317485554417249725080939121346913999566734833846851357281719995412301385583366010657881653846320239295533207709245085983488709818119836027375744093351067263659090081445780949742283109838689819113760986613819111642010629610864265790841285668307228431567945355915805791175299897693016342055024482896279469469773515941531268280174051004076500320566813583436988876117703376849477581898821785598714059095245356210287408245851270501414323154207956609084922336376095152446219652019799938326912485558298004721872669171780742447098579689999736717773619472341155860854788219359903110524769047294292782247218629735084975283089026515597548602874896726323102442213625241996877580513591069495470052501185371206973158131055730371529236841263488215843466000338894980762069620751237651752333112179350248461122821775819001247664511987864584785282017882281149962365337766359160647516058739086641984283777553279382423543958333336282428025806858932193306698548830942395899240690304010833539576543805720292719825177967503727440711650911092575193736684216024385726158974846418498007113628735598938666423419502232283310006446223956518387462673143369073538974517975748164510061968689768081187706939718649972344373172532579838373649573667989621535680570228797627276698833935195364727707933824552399265654999466453414481419357024898265231794838657515128671519352327585832069000215608417089919045561208951726418921759021459255931930179483237337803199647783953377633841202169134455431069311190181994313612111262860738839974720128390919480215850307017726334645038135460536185249203592475694696453691549500947433135057334997379475173566298681497882375360763969704095932906450268326759758668085871941262431589527021357939791583238056760418775226539975159863208150671620329557332905313267666355366283017607107849321543022832335562980832848700085216822527662899720149699330976108634010008495431127199781382061605691999064057483604688617451474176535891688079661882619321131204866080703206025905304531733541600442660742963795035159177458479112079854566091533812732947473716101561376228685538112700173925908378943142624712045160647489074020069064976094032034135595981348968178797808820346556146999296497725765105333745252875105269665544388348635093291395689583434506429850880924396028031254515269684537453135900583025733443906314160962989753605388824215887507567555531354105632760573898848170279628423603446677933782169386751523598372893842535783017712410900181017477061193927715408025908148020458083922663122985337866661330554103996190895546275601294055992792844625104447899989866916421326557118379879148668189814719716344439436876786460116019561018395945260500782877989257900384181229918570400444722449542840576468850702248666924555544356062393835159012812780648544928581020969737892166781979978575172496857642179688430248136567159081609167900557027509657848254902280965350725832692113350485456460694820592051162126642954444628394074094125511119644440693489879287488060586951046282289886521282745814104223858757745591329734560378124178227929558360558099839226102284945046199944725924070319226250460441665352352573235582205904284344572093507556408762588930416833678662508339788832072754429660601013927184584998845296316667052401811789481756302794184550816757073546490518452427711873888851969074339551036053922431780358738580611547903557317044969577631901022847256487480577557322013628144193045509720101798141506888735507526954255824528340657167051086711529725637176933627293855367695567930722994461178877971049549352517614506594292040707317903540106822079037296845238034017655447711522957690588327042110549870561530331557489319295804813661498600428863505993643378266341811233636931250578992013595274135586213387621038558405482010103079574725768122402467012837300949551127396387879218577404309429769784218801571736631114727817062083838834591832799955011902493311771873117987297673841064007210907902580216237811397699032242575976060275287915793030898437282948588260173030534822882402505355052146452164310685410931708827112255235235730890077577900891040859558924030378604442266458347769353769458318410920990937334878412855818896525644511810171504291163529820362894013143499460816493355527050708721932925975580250111417302325230863348087451250172520448530723006520246540255855681669837816096929754747443324516580322339036308366221460719988779782987879817801240452326616092094996590828346166429950595573745082927619633708074730408285091807903917468391356088316249265779325021787678518569994027084348234182701929494085262940992175779054669900569346432466139236084780072902964110367024704804125652646732031782654107809128883088363455574322309208185500928319107099231124603875203130320759189906659725006731981452961248736972155664619215243234073852572710525418554471462988407897521489517189037945865831148041172389161788991495312016955633720736596220157045318177243822974898338280233238803466137530151987592104387474914330535571566362517090780768972179113695671286097255218590008097821496816429830983011551261801665812277531353540180318784998714028139122608562200638066058119963585367116342507804080765948260367748455431021535181647563970195578481288835995567550096940762687901323412954171116356231259939985506030700046803958681532675960059829321070366445364728996672805446975970162762738476036041658636373137268554838406937406900513972666050486585950501258007520303691699594144241658424856133872068143857498331795707148332214675475587768350826025512618162630182422380505357469234294157626830185355611821349090056390743164632912653176708055414981488153639817042685880539230332050097559015517193468281954743957480646780945176345616464764773024097730692696854247808752401324843938286981548167136364454301216182727076396104937864291558517461638255408770278466470144254651989642383254195253901917645348628494232520443600821392174814908972780100818484418400881108818186114556485402096684277597632954090748088107944053952657263125082888640650097089440058012313133265135270291371077271313389389584145872784462949072006656555485793471997264935630267077894640706733498109373918760267181077754111466109969305061876730608969959805011564380802050532475764517552983407931266461029661888249346164569684912235685006125860143367169670585890938559172516595340563694853923107365342661046818203698868464888627673115452978951799776927276564805390923834760077886746135799626148367776149739274209296687172654840393780174769433999168234495519971389444892614081345451072098978115886641680674906507899633453635944312889041086150708572313541513605096104112381790157901431815571027267596674171785533227849743107717333645124100428390390883879734719646077600812466334243640847572704735641268942000865976559120449402449169668479860993677323689044408618100427068024240316822303252447116984976876472924822536363145649204751459237856018589203810276135924517112274726278176770202637786787032437693491000557386400599204454723573023237554949116371243419645089194491436143794543817208485068109243609150744000381671817921274480678656778664130674813574699557909312056770740701455213889698434665309635998896265053367428653413973366892687802808766241961005622951926260328149708004417681980688196647381101206327359316416328875978227456577961505694107589897234251119226941538431739448113820402254081093078228520404686177493692408589483232555071858420349017358216437819080266011920701995982982914690733235119049832534497699097812731991990101059389244965770761811706791181550075667568289102513064448096829198626637988732091214722342584573449762167629343346970058690468818817121013345964383556354775433989319328174738345338790470759854192058310809055725014686279176960742922982241323813195312495717039398249927074161616213113196212970410379347279173923904746184935888289483888562492367405224488714353213044472443054603982820447036991531921003899856657731951897977318107320721107233530433687053849935058374664523899889671128856300246930319444114181457471975732244807252959724245875538212349839670873082244858393833027684485847448712346546077277057922979053866043545295499988151982888460685994646552172950194391565094321261114356628243737307755905120480348068294525484801309898395945973011392161931026839827529864297158021240431036430283908400449133082238550618955441575681394666056039051630461567702936127877125314101035686044559670393330682082402625329108417502006441157872601972176470113659753246511774365572318608199606765879692214002716123025308918101882936152602113088308009588803903916439492180310180065196460245650624676699318374529581577788050992262315272009692768759962592082457591478935856977569531506245016417138032725993843698410363816093667533174393282839184193133724715480495103551131156169473481511605035188137376386578202973587713771132986025980964374469631547818803921368157501816705511674982534722120270784233069785588472455676870251286996481212381671118774897900789118042110724289055711697666654121661965425156617561209723168263649361181731634089705843862730085435903901233933537991173147152564174731616592168091139922842604429569901551996202351921735402002827739591999905067199159849131472266639954911858423687611924711868324838768278266941792543308682652730023499596773577441057435616352896799968348873429761974733716758035674760191504700344153140309996286862314502352331897389525112351881387902149088049180826799980645787644478481898924739026585708985573621369185515694160142322249744641731533069096677358116593297108691052257141283711232900528114447342299861578322472707602440757474148135527329519096396767116838479099741392750944020939558445069802298427811972301836991075787514032621551915428779906266148368004630434453505866312424267520638400607592858273617291824246055282672279591715193250574622590303570971170381622482301351070329970934655672695923230248737591116484537082359602279994599253035310005498568303958754528149443925139883889614477245389143998190129196815297280252795759386884530813474003896993712329819616466473693549612054148742013690017121990783056717098665140808906227957149690638933072020682408689924184943247941117093040059781226530720376514686612204261916883924316021631977617447685071066634211817430693729580908543459706852796186282743693775390279838277759622506960997204603357166688325086551827177478678897817227314858888792275187379479034576411529940260093694954023197765329613070390567654411834174310685288511942993167795878909632497769376973678670641317861174438317233810170248981198625033516160452378681833404843068132266224522803414915363852895299082983122909093745664996405741300853916699923930183914975931095301677700849048049921175250903600153553553473694843951973864775250918228261738364602412151290085565029669572797772656107216003107616255210469111452048010044813700913907762472971514350536907236622411257373689270088408483589197366169998177132556792354447440428085358464211012191942729151726157178628052984543126010316697376598823357670873243449881682151038719235100068472629019804046481839606957890876914836739328100381593004518804422327446409343081898122752651868556571351773921667715531328759613292105040077014064837333003364767033589547352118336478926958776209378461638163706710054956724066146797786635393269205888092422149933641817214363456347341626875315282519830576591954456637607539541013986527353464499726483713278474981741057196809253847960002533625311782191049360016570754251579724090991443603914888697543806265854675574454806001651517103671691890913635231882854119816226517566518011913584476510450866533825585066995612206822216781583472214507462793386619601554111961585392078229174229449321037833546028791444581726423873171762773125178676461245131413584270642634194214002581968564597806009222550946655168995909711646916206012051525216335139114887794705492421614664916556349215472234476963225108390748240035536177640843593698541629360673280115622002306781917393293060581358969106530772335034108891479737137159959521912883472035569403468431146993881921857773476445944099610348426321286629837057841343103895585713118840359781793551024695172384057664450505855990606413249216459352320496935784469443431888325508314693506875041565620799597413931002741744313239693622013773614634440765839585340521692325200718980951857424731603395429271819947037663614510743526621401881835178064781861351327411719884378070004469407182709535858647187118282228716594354770174921930375386189064762238927415407862705773509481433531199195206410355349209572553581842454130020026538389883182026586917426348035893787283901316801572781169408286789516449516211594871249231755250666558272610554002182037855819875001585907189120470607693779144603296661324705866415189547546293576420537000656211118184725967407014310008483790724229442137415331777606857809946616920873631672995425421963183697660959306001264778367664800973599334505293350972534737796022076914295010648413164124589755978585011998824378618542830159341884452783477370888250071935257165705015034648845270378128893760343326817091101736888998529592407007583096530432355255159648858973470312554526391065982175351867219169597792696986322349522186589467806695946442966331408706157631444465572636047409341231751532099169716217426576749946679926224567112526892479162818992770395128431528557841907613191111620005192903641645284387573144752549727722178570113092499585419812215910072757902182339174917735858494514862895456215613353822124982141386516923753761925714870865189453575634426443468898312846620699390807644663715490074458297436704348804315807174615440944937944173972447412249684903812545362931240268090010672980196501502419046265840419703571902703382699028575790079158927122274374142149233218839059779136478062592139553846067014495199831209018940211063396972795700969272585769894975354425672091513001993603814786284331377140990000777479995342441106192711837926424397177157703886459593747002383077762042478350793281604408306718158042547747593987234098858298671158135815930122638332723735388524949539857314965048606570033339715877673163983625250515937843902066613226275542511844670720174862351603961230254197383645361403797209779015941318969105151510738190019176351142348752228002444527706202763852911515441922995665061305769945287375795998705640636500953826883098805700465299746005641454131856772524178827712642853019664289090561774889248593858041102272065433616155359292633980684047148242696618217068905339083495175970763581294073647707843016542954867005424739735802549711538030439905319251496374972857875541115234031698410965755472049595493023345034184381835350685979234646031126739688889770641743569041127263399851163532787093846147823849462961914028247576889143579187536591619778989818072931126185159896818842424333769573615342622614423278093024918172852151357178047352819444094725662427783282681401456722034132772409681838896391619539162613521332710498857740296118313531856314177394652085867192958981729425457689858023640307774843824560894177939686039243000976101117414475835168827786052573556750005457360653088399323860101611313041051106166449785570967569412464643875494628141257441087257587908304870542069421708289437728271122871645618212072989278246929709945897993833370717909764232564333155808585422470900576645210319701318575682770420655642643990604779323928418023888681694164464113277832338619151633942979480200276200197820875822143834209842815289154491145587545325329155883683015706566379256257840264266921427217674298812230802563071222399233075422053571153740248739076863310250060911835556600215951798054785769458892473247100395454269366594164491449368404374992363712052874907842282937177050358635839318279016438763517438076198726066981801819082476023918918530213339837526435973270797385012457100772432909028228253476128561619661205067673261262939440285586213244141036838556984995016964927416963832712180455637679098650536941014616167037640339224398606271157497555541343510832702183370613490837943961921249846270029130056028247348745455136644652821820275967847103466185283163873296001520117885866158191507871522901131524316156695987876227393588098234899998942877266766218212405414733294862664075427905643511053900610699180430131598211978509085329950052835536456199246317077092214461505301783912339855962959340169189703998010661447138037006760141755993814871420712172666203706292307123096326235172225165961017629807976508904537107777860537914946829325536847452565936961838247669858581213107573511312890625244008023419833312359966028558227540014061142029156806429992284925615708765565472829060362662717584408927134498638260331109497554908394889051228908886601445754035531138043942868651000061902897703648517520000967464275045220032901611271336324087075260122420441841564133154442104087700829282057954372472672353740612607266586564995672804602822861761042376813681458962315654551733817712309167221503214397358768481139230239473365847477032852554218435078734551020267201000521278242341993994635344980003746482161479861086848323782803657606045572122288340958635951912376233815466341236501746102442589914591803085820565664350261834811639353718020688048154816657955901342995393886243818486422291184286020706321520049940416565576316371981448369050821312922470288956914649928057787755390145110857661714421157021465823537966587044090355077090288341620384540567832760907385950407015270839436469745515366356705833734353673815650832108388369543366529110436240171527880958396703023147358578076672471786014185161067787043475050959740042449853144366101315297069254567789907022951201120793782560320107813602681287174713619213876138126852984232514323183198355625644430936340586836683416626687678271386149635974079309484355713698409907610683926913319198916955941943619436751768892096907898880710826530595189051479814360352443879090432200232834971103356748191772383133188010383299032094976324854733575266245028493192984314270432642622401739503401366705417467836478893211130640419010279735108077217400989699941405777447898605860414176571598788344100199632911211023792119930522572269367436213900202500300902968492042557042233787629939339709985521676025381301767732290527658400168875220339344332194735957837240603646628102504657919116606275372573690128418908584311626373814207368832030615746461153751114091529226596615529503262004681482113373069275067567213102580438130728865818376826852667895444123761212934951163195545335287071118010574167594128376390913839737600892663575728390849010136815518179328984267851419626173973854737349189823573858896169295706981196169418612711775106012702130196220459446945613112726108826574403976496694826104836324858524090660278522310151503304851601322498265998894332741936386020269181827383301942729888977424692832417366810376220414243251604611110987596468687673396842285812510645610824433856062945763893513326419371092167051668494737423583359747238330420984474532768279040775417371935701017696995463974120094356417945280037663302329854367193275195850290757443301728735951359788767165027233704171885637076375570113733949046931170834900865291922983132424689146144407737951451284620482816497391175925332690304579773739977123824865627700226485434408283372954533589343551209086883906026364127055204882713658003895491360793100913103815006747834535545550067295212079481726134515990457384319271315098051208215577008498290435232280392752702492955094790700246427760466254338228899178890940731311722323363502195602181294903523735140965974552678176918426897307070614956854770653277011933989034377434434068210717866229515555005882101122114887820214821423515234887405132220933799800947291348167033227197998393343832282591354856665719541214145680365499404511971529903629510940474601276428094583582114696327294393058915583977663397188548984926994931085626798205356395592902019816368124623184727520453063269644496540627186739839442011334592801529063619857028388540605608721923991155276528856353189349548118860167179597957909202787881027226016723358284730550864216963311737284725850897854970389065084598976159603507032656141246995812333054638761271717857688713841658277119974716294578086638644673082019839231167957548221502861114359859676940870627066239072479413148112115781604595277849245860835530821701579964648102455710804302491624795955342022642022895800895226809644361688878459812481867670021512681670134769598058596117626533121770170248752680802104469044800191774455753299881378574573331342885855149529714088735382405942940310501517863080670148132613650405622368032956361790659752965570807249728332501303397230061328070715201524498582393930051628313092940170980715787771623352381574575066879158538450581172113168351026281721384272822634197421311310161346104295890046567255752588279626995075377381348266328470712168049559434231602097259723658151230977430089079110651700122500955622995506041214835469654320129328443165835393195173881109345546533161333977789739899136132216707147878860928442526373508560390755850638029965229221105695188359721715965299813556008011929831810190339400090544685949924563564983963604171513044058935706127868018974384857847913020624123547951300590292197670679780182495764531791834039373344724416781802430352709532827220568256044574131558325505148750650716131168729992775356804840575327298527734237239971707512608226271585707808219858121837686740014727475012809912854365853453096272349432558981699410226066243025288467666600973472957605144849562912447248649614093125556733873263776811056208128278632803542880539775945810190806415243640395186805313672009592178214862836094301871386317820265632347332746174967722827836767421066785303213406790957342445703398152692281987478087389524701527053729323418336450822192694465560837322866976192714028584207962318124124745210221818770106944939215449121878865738309089893916956672385907775959695021199581817887497303201031110629765901475885722664557293631500370449614721531175576367890069560664309279979904109302057032639534463735948906693075042171780994548305973846312673170723996312901867679117330770028425598312887202464741151725883688520262685757232260130311653220062392175799194070394645261156709749263521290474431879784270540658088082950637463565880761946012807772926702568363912455137741744938382965096769991442592768000995671823575042149737380354522558462170369946498306106189752255327370115170733847368690436007622368511542555277467602417410720501656062169964470233236541296844964357141065333181494855343188828454564411235724037500422751488015369150662907809981863259964937267086067139606713863956069760191562308422004543979668013583388952390678312072162981056597403473026558019097023757930341951998444613975434873765882231937517215846236570459008918595328159252611464211710561956280838030124626715292768055182473350983519541728103831697242799734304190746321305345035903334545424891794510511907563426701010587701057497353461372002819344895082186845737296884741537575087437613145699521713787913136698684583217938883721335425099714114425176162794356032929479562391532952503580132338106431592195344364079965156424602028774154700391722834792066907855955766946845338824893619281811430036322771002080495312102001085252130189949457712566617523210479117198941536282431089529956391558594901920349033033656993093954041568396524814157320894451745703350931944248799199772889813410168796395196093001642617596780377037856729625496774272389220018229264329654299491944227122069744682680803073834001102149480600319508632161463853498349245609360004797400607605110559451137555687979056976162898589759076863804365576958664076151260501650772794686786878528317517305230476609426024414199743074284997566728928635728317013430588785487333689969694428066965407205780803324838736429779146197500020169332969186817375810909720955389007419659140664040858217572960559970213645014455820756204432146590731077613922379180148869429774561746499093117008698195754726555621705737456831342894764996734729779907329400295525432074981631868776990108681481888322606342571351495711832389018062067648225334117192073989557216418094131781559900056441981083302492841157693141548504130922054067115313853240183878393496791511794169517021557257575378460031331588664849606739830700462786690583399586728521069542862334950034748173404599058711196561824731387652049890931865034315627934229499866244986124093927016186035844557848751112841400246049462988634628328401463119960919604123549013377031328870143934048482239364964867962826181426736701355874659761511910427812604979369812694363511683484151298797683497289958573431949336662094387264678141161899127069634103669297035370589240497192478677031000293756724409852613423513862104775431050968025541866639578611222181866628152864339665810843716454635443172028071071574733207160773458438289992840239159942328122988455253943919360373866852843042050820154269332360531842228666361522393482759153513585059330058054629306178231773885272265881033134259887440623777769214170417663087559395687943047867035680118333011546333393612929096892879316788643310708940483063689159542281550980051650841321462370564276176611542722487501895877779165236039857748999604977023413744123669106170242959919027943892692225417808138026557352960676305388101597870180793864214643261740884218177136007011445557356376767894251742363427185417614266030822051608526440335819353548500555776007663072725202121779830259796178463066719085010371554698509448047928112874033093895195794586241717928255029807749484952097310572806869953168529503063268198446720981166741412378829581554762692419239108233061885143437506783078577666345882661475085762801510847531069835992759131029189195405733735346363473737308055398909102915719439216872302307910722552643645727188544997070385377948559213684026313585221774446842017846380641218191072997390345270956796419073638844689881073343687138615661410801180500081782811556797337878441521877989827063181127913047799470254623331673006684964984643408035378222790740990432776817567543908498537408109338882702266295426727225228019986213355051880336684015339796806293160418137330805017495326558958538357530944265782554333473691256435344869664767928429645042141374827438616815954000186381779873116728157206600754856929479852292190429840659153507387695008428062503517410966503819170476399439260444594490723910786799506374470273026357501129455381225235728231146971888307491798295616778983605757023920183103939908025341679777231098179278291439451720081271564640537703848583611543832131961775026247037781078600002577919382277019967400228081788578117923674901628682942562530846215467343985520692572271907041446422237902628738306558734127206636730365498964580624969565343998606521324473487749227534278476290424129694512912986077580894970151373657647057987836313130787340249752704343047341046570791608938509743057562759281970580037300032287729558544067998039560399580585915469770406173971473869343888038278810975755741351627764102098702484043437193969353281315645013819393043450655152826486402619218400793442397427322448799800201702710477576845485572262035228175575621061804083984549993521654181094050013521208348984745877156981941882559680893285698136657604699088667085850518705200506147109346271894058833104303565718655460898338742449398143445879590429554989822607936591982606829048587714514940063023066311029590965723214466650861927055659889784530059811295420566919560520536842412242650306593009690275965452973433937458263302365118397715754364253675725061010870398355577885872259187198317255601785688626065186050595512308155101704973922374452942919833301201589312523153902181456414887585041839597818664957167705683036780529130672321118301596218516655564096337678345613613680969577092328820719462790715021669127183947093420383940005978133559922715595708320871231700476583177081021194174074233396149757411088082308259565566178322580083659001822858086271805793812478082257679307515495531073069183372406271251844147993010261741553369048992963923899588249348791493651578999717840874740670306839152782402965287260217958249604731557050691207205737019863617627306455464021493496309683168241297307374805127952359313769332815344512446098413946953542980752238135572054502341382449869651946434349098328693247076065968192169025859746833168401561599911357631470297769312684104744658558066737293276011913692104908271350035742460318461099939927867933015939894597433793370383613922361651486502231784317939688740417085033252211399998523758796039917871046460845224115474246199282852233174074440471042097280621961212088289668060768268181592747336891934049423549778458606102325184404521159945209081782084987133644337276472021241495183543139785877189205100200829658687169228734219337818866285470933142689054327415939210383344120548830854462450721103474254729080153680936818314448798096643740086107542362514690408435884324049219244274505570329111169287023974673567909387378919413526630765796929926654551472128658145776063268247340736303146645159237572078540899949853633499065542143628188733702513713454177444576338694250978225539268808434314780371060368780395772618329696897377683040922587865243990629891178815098141845929044855324684367780732386906467028389080733227571925932740500494152884513509013232906977332282143585371913762879674465811824327543955817858869202925069541233652615913380020499338840930276922328181041814581964042756995879976486025311400444223321995086934970224983984635758714951438468421716994825701331562063834193537251612004861018376407272870102325600743721348894978145962733387530870854705353910376409245723275224864379275414138970762555428389455086199070918439035964281562691284265835327779770002014099423701375358199274044297564847463198558030799204729840033815148915674191338235128790532548912954460256137485414192362695905784083489518805762105847799565869574192438762111069322492196651679057653415538595497193714997325147181019005971208457497614740133141961803585909169580867942058638131677443106552145480129920345676370781070999592625942063556134203032032910211532085981167304207761118463027985825843573561592940556241820618248066474102213349755309085280700040667587429756057790134801330083467344159858887567063603690117742041350449595483511833101865128065433322221658834173385047426771427915346266446032949812473353977145362153144303561140504803639937661781868765251084431157883629995926612803378731979577853305818037421180503757736441975919700876150258530878515139278446298922971343279646852274955042537192986705404488926505209870205464958781691328312798183709133578997406842033443482160527118711278203658074674563042011687128349361215302171925370664655492452827159515080708068591937457073293362415646176142840726869449689482788318823359904175786264800683483261037822963996261652420521717660426275520105408459287721679023287434805619479274352254020565174549930167706189124402108631657784157067990610564466901201791886030953304952662555858182043463164809821179348978958870690808046577479627353439489741971035189496978704293592984510441183500066500501151176184899484938410997179534286743779723967215573382836053081295485434987590040224107079982553672322018538618473914717283833196084673530889047489597077597212842114774622147344763390850540425243272198722669910068596282614515046055033680412206176800028091777795024680922803512160122321227201491772411945276265317110916215666801959376530045337484675626859079375358083009786206369740985310233281590133150729972426441779906050247356257249416352255497448388226872791706503282458046205288487204055120774411520498484537277281765680357588055324491241392698425158653925711980079226326847806725993160775757750369130137363780847360548168520437477202881725366434143607489997580514171619572403449210202734272257640925088237733166344196846363242874312445689618574528035666151660414255969998227311710344505238991478459608858959826674623707843823230758670987226531565907424633559132296966164039307672632631279287951608535983290188854441652218417945673140808355025038904234684919996384917257920586548505786564880142551158851608152429302323377309058395001557246128863902736376959722959056690069805452744397640893845187501575011822085984009615574898807319371376238432008710026115063127901900206801799817859889246141257279319727118418843826362305752090161681781012124297384261396841283505291701052486702968342756269935414495599174506560952652541683472962545883661898764464104806077804318715277544710486682252624700921036165777073993928323897562306235270437991745082594301339456990535738165772834193489114172572470341526014182666303249994954391703068182932496823933827217012953523342506076880509270111569546707565419902645707884106371595525979829243682228882951667013473320867113503797579138113590217804870183810074064096011875387887482123833767142811572246549128149291590575141875332598312275336964614936837294215088676953432964520471793627988126668571122942827754304033274298825451061888787915050602022896747219158639514253899122720506146165200727684020617594094542085048056575156304759360901288459836947260760930799789553607583047241978214980310284599694525279868887949139834204470394729869260216263715166288909298534518756450662652715228322672684135950478787248336358230870105786808223149919252482093513706574454217567518790438772218779575114133091050102542330895125854044022702676273946215212133684957014458457484000607512475152809827187765472756218497498700221995866861081511056579005442990217307595063994573530064643636986123502350334740677813650042783787346752541234678418553892516360644117390693249468974560814154483677152196964085323575495037594643001869908485646318643971792295057160311841895011275837522574580903615761774469080833306429175697097622039336772125561554293407969895335364106801334468265261949144564187447406959362788096570962610097335073770238013404394163091329018404294034193347270268621840598655616327035976025293723535717710717895748951146450411448740559882199843464895418905245181537942007664836529885959776566571672580602955770306997774953531523329563675321226853864679986188440044512499991627275079397133359074578183686008092471900975375638430308295038227993120760901090855389937744418183606120277384759828381309158328517880211614334236509652506541511894105732895067718949599035071751869649309408816353589276092668540355010103029854533467873661157018079224116102918948097318632256299977079383926774036225506697563123208960856760094537289052417521483612424324695650848234532645330516105215001020971208411277350906866413820103293684661849261407382297775366490089342917399920502441821117684790487869789908425519009405576538793126847367321765581123475300049463821913993838857282327992007248775949982508457104007070454196724323070633833594647480749084536060887316004392089849231649210200597858377868646940714742441811489832461989750603170244032985161931370816588487260191814020233492440261545417662871712708919265895535296639725986064838197440383092881459051429877975325830664654440639500110454573176924858083469101859609905365650281444620222681585703572698341832818852697070276117034625363485240677529535337991257943499018293175764462196380686113065868635556865524193147682550511876698296901619586012498609837752828211084228757405540085348728861151145480118012763252806637208053755535197283739745371452571783069586795717866535398605339916681570701102024550790619703425155521078581391598769333921372847338393061521395333584153361031656745257908749576990083584025032701964901611518721965036319790176793722057719432880900434048236267265772248103335495025026177454376434096029363632359990631640217124375963070015722151151992809067832433203376267981385751284317020922068610821887897600277175891296234133761688599644028822694408088652532239035837997253135928346774313881152250517005410378151427714224788985876242980587422642113930478693650208184856237291397317063502439622554491319384899378084254827105717560296842276365975590570672285260600049214031164905809574220626795347463088547790093000779580949385442360459713457974241690183572462735694644965592766857919546306575484499248322361949448082762640167570425774866862523248233575880631160049745865872956801706013004035630291005159562373629051548094185862078315669751735398242699313362176132014874658545440682412492830912669668154545530652593070078320075827692160012377904447088937977664848720580316317478469305585487668747263642208237776411845821328745237270705180315990148206261583942622225192958808346239842837762941043552554972237008315571417410961563823106170354875814450859529521219506669964892707054635267474113245220668638198750278275140085901596709511858269054867143143799875446308093200890719395341823434126239774428644620844641765390334399760117667261334749925366645892645328386085280026593478707681993646910694467396108420009408414605332959331066646448724293426146042541341232532483745611072675150347527912109772228827144893214612403821970329182565677529032333446193296663248956956200019762041730919463626917721719910873956134008738942962031877643546740988319764021351304280148375279757846320437408671891673398650710708292042907603981095037925789664342708973478300748848723364796871421031739490880723254097845897208789116055253744428464786423140894969528888577054886521185606734493456158486600470012460364548360898521484279775576292797171781168552714451276873817261248373348198883338098796478958545027733390498281344904162242002042189711153635920491310177292414617550933686521011241854958547116919472987844913456279295319791470830081305946196167677638573709102657690530730628374649112009467276425828556233835271025699231543690966916616268489124518081936692605061214257189796190474860164704672487791434395822189998329787412921358524110447907880232837467297493468086965761639936845360449523661183683322169502935083620346684489210788317969841157560908721994051736129072984717705731765428637591420930920138658080195883939047492764593614733847332380940470991449964265577074680481912437249460415402512473306592073367367115055849342144147837299959927025748094533408613390717252125566757697799996687732985679116538474142657524766664227185273063928634910532461363870317026891719088007552206652447323959400809858939725027790926922450452880387996113150849304197793349542444462589166173998246927267296922805722688264135604808419662890497679899556135406443765174218134414660238443346153379908051959049480330983558870401292775210880928199338919215975838211947480835856262693559498321505306578860932377465847794004438927676553713538277698346784407014669539680101072938686444449924500487062615089466589135270192301504698136750310958291901581571249241840743969108828388965293621482698696059800372260798513890734036328388565974177927080806740259821572864904446831970871821686453212595118833720425360841499417646677226542529071303074851737548570674006429217594256553258972476415596785905780813054295639150954949744920626314766727295907149552512560840710331370081743980362771906639557411748970632591821159728577532866948625337196449698612052619619292906910866267802677594138246169255974081806600777703092053816969643575005766592495428983474487696142432620919325591359286947575404768930695461143997818032245615371861103627163795864460311379640247340663853606668415643475189154329689152912992165404382512691718821336300015683882458436198512869461313354280575128150321349037530801791174404373437369294641068081224622426569702114766043970400786525317701108376075852521481359009656579411277838680487250064536938449754932810467998018338825358517341714324120345148250877932627625814411608660427645793996280707761320225003288945438628692368482847412714947054802558789676174373172871912150950387727835692696543968903057053714570286028716540967075940756170161753509223221740079484447517148714416823609926074685333143015589989960372574910295140084726918081012081963098544537000746080937052860530200797988857246840794368626052136844000526348847552868217559547898811848639393802113693770595132651237241508119590037900133233555494482249409642816074420845909515470821645376399384806188854074717121568763717689248896908819201010519680598006847452322228250922283511468665455056680946875481477926188823393661141893409511906903684998026175689773662855791055459444212605145702169925289881703524619548823108006542021723755820011326510771394610983579124719661966978949793005251719178858842078856869169522913976466262730520766007424209706716825614110729255900809133561140481002717403269120880875487438857865148090522679501612496300261644018831812776933395403385838951740701024189452481518760027791358693000013941997149910810329635470677868916446433761867274530243966160511128423951142731704903141145153056774566106830114773291255362485023146137202466687546526927844740758103954272334953814162292938622497954094858347398113493187680309975042893996402831379143698334184350693964252072204504695015856197113684852562647977532627119579638645447110946470814355914242182922251117241594503722487065760833958864201663717091503826772766828251755972389058887677071710447990949483045927858714385678470919206055940851603895314654580232699336897898545736961210023599558610440082900858688937462423556009011530715802207935620554325189894770451956168168054972403085142787476599551042875504842149571134459520235977226380833141383601354779806119030539103840954058511435991498464012214477802632085195756252750836169004408878488481525164522725780402158003135362789810596158944968661117890812460192125963099180943726786040934097586834415912825753783251049198889475634435556108721992317354164105949336309878654157796412679486633761823856026623540252052333231841354961653008170696906343900068265642472019589562945750243169536699417770369404263360457236004613385951847150000244828545823080284278679136504179716160161347611232706450096735627002615695103722770113686942302854885101475924447222808664926769437181641286176339462429971210193955890460713664188578458045901040877476156036120286671948454101738208499632684314833612903359053412754872152392016430987687575567066897579766317584568249006787401163401048401180317522291510418121588588754803634574062280050023254795632332722127330408316163433532093235483208096172466935018869272423412669435764494209656075909149401734327554725593951709471068151723592233037463336882425685551415805981888032512679786628833805868531328866556002129328458937547327245415168842587123463408308010609970875011917611260158577070293499441432656227093610974270472241666886453718254209703950867287460515554415849325058153049119340480790661804993244046480348961065681546535561279071544473711375125980550526080444740631483332867877845910260925749075721764043505843852205337615452796009297914750516636838132983131208291005354855589903853089681338732979216511644629430181799336137513996095939515825885246361498817289609623493235764336450958220339401798250062387918221082952858590265391814705038057671729327520368661132846673200942183898009797507326908742512454791349866084776550122814991410980053825042811048154795975184277078015776419588904747318788554482737123591179453633193486021434012207772154509565098137896269453247204118808995757157464342805730374938983676595422532851105528866498629598778492846721284073475934341737340147426770247610555018183159468484125185965914318686970541702928528558176860968785288029978965215961156647930940354963239471403759733020095939882493028001235260673581121974072960805172305068890509829033712741104896266687031528844809881112193054110095000806524618147209439034975463716896648785424586696658739465640090389999506908403852748841090207838885927514728691173908268778802381529166056672079591148827176425530274570187300350332099164580977963311106223962971178572740388643415672449568538139773171848499687687336730365842156222724669999159260114068062515085961873768193123802783882515195681014526179577402806092150555536061824971798698992792133418872899022260647849871748695737312765227354321547277611101139434624638284881995556931081212561502442558856285052098833138067650888805083264657801541938870463974941308776625920350755597699084481938583991090211580093785359907999662286290524382530520425897784990996509537233809601537393341193301089492843011283785247779868203815625969681695176944123163339949013902781268466373897742072285498446692769820196456040982573487632427557185585729299810455299210604547741476161709916051400613111223004259590038121657116551603158455589652868335338975106467642440054212050899814542155211945476497322262460793532194236164249936445472348567901526316718347393244337881159889946282319210030908762324540706502921835125364438721158590310061428807618031076958198726034316986339263178647633546713234906828340178938038558744239315968256619043431338198737769859666003979253432412620287292542542552358665370226483291135877497217697527242602350560627608841492134726042339528978689434050267161650753197480078971280989694377644606159607689646302466499261891277488461141724199909645278623618142855835172357549144931861050142911095177204249024391775921903670018719948521858221656131390047858574421971582746017246629220353914156205840416497401752040587924309512152021282885248584025520233569119604571608912385999192793773116921104634785632720713453087919791859917311193135810298852061322396537636824684163780814002423543704132485625571259823635655870536871962739526925422243022906342838045800052761703051530861713561946099265200501376405877895662617475732952944535559270179008771280735156254765914176401403249049927078854688800805562996855615222558140334868460935979034327608206874890411706541115197047535343176424506171069511368576366583299867993391922783522815085829596315757781261208965147521781858356292133331519040688679198312197984382167102771928194279999015113948887972209080012095622408605439567797530845841902943032367410947488505994884783453870814849007385725086566641975477731987576962508857981057331909091603015341087785872829373368702291578865635086515906962215646405139602766540525277612373487239059258569828905377183366018393020827458989546322500765338906695455987251140552062641865159616920491394294511198745667037479973746125275613301549462942830485576901327932866656626482499399807802872692265497903874366512050347782383024080152466019743457872106579927621459682456825912318922531581945288599445572535793672848120565447812468563795992838924759085156173230384407983009192028500358002818095959902485001252447085694342550620153293789198871171451078712854272248235239600093572100820764460269218271638793664176657338872465273204557384793098005759183547650393474129594416564924973722259232082528595072635820484966815506223810970550336191132174954540190795582112285535012723439309339217845897858352941503575363662360895115661396721965410748837924810751233640908235654194367071228953437180502000956935365618472914157935286062841914040314502637859883097533132775546870558787029371402796187792171333787649037714305514155662317159436789049909532791398392743976481655420761779925274371306650963104892811757747352268990353905163564705706399755053291096905421077080659137794551481100483269473055304248784586043555095594699513542105724668428288444537088628181692265006151220119056358785077539105992825591648053709216785879107794320466571627404874598067664079447406035874453243823499147473856189792409807386689037273464537971698819188874695560971102466952811741988722650220636473546747953344411241995395725344837145588950324351390958248722341969195590009830865585873996209909112463024966296445796506353740428234341238846993311442508783151849395921942183726336487511753006941617177032921938267202059515576071646607478551839160501427073460668698246655801236565936476003007565141277250220232183297051583346643650890185566904999845787585928401854740078920948376130330747574072885208973682395906746099962178326144798106519372079902690019016535134623129319889251790322878092910342666264691054892454286992332387202697942981122842360422882276909657901972085254461266136788300105706843398600584977567155051689925332167815185489843149083049472723570282361823579043991337537341689418493548134632295390999282468610458746552507485156471029314326906823782654290863337815876640860159812342903357393006523667506718574440358476482236602839945261878827193347896611406007625262533020639095199120358879062976633942286927003375498505117292237984762856105297163901912869909154305142595322416210742015591512801823624116417905338679716595313477198436208251659060318999437971019702749239490419059815008073464139962631856526381153601409652366516368050821771514635365491902158544917851604533517144549044066568572752438428818779508147808364701918551165810437735005224362650695702897883135014970324749927680092271592723471225601594575143865070035658879459226105783839375223872853682222214448798424406961418484358595320796123811005172397157331199565170599500226886304188108690299243439463171431233870205707513274283006583949243629156012847816709500424500334656275891205513390609720325892819830378724332068110250558570547974863702626746859305536765589757171827866104114226158728231394234685874226258242023929495072810125864712910117066101022453014773700033749596385680686518289048290204298023637563509713121681568280122415125110604431068237955953343931248554568389672283012818344678398303088811080160924569436141949618478260420782070234244987195480424706358948026028915000068892746756223399009816901406584915125633425977323413035708189797778071430904356770292228069642855229003821744858524492804978238698326405617837372620466053578560089416428855112115233833837371873331120626960391605272694904831968716940045262831286836666792006474378011421917050158365050805301386525222300657750089017172256818270284179905083450594676092827079308532864584187522326127492194665301163123516763649018515326235626138478311327336690692029283630694739877278663176031560376218484193586589088807712871543927041708889997128883679176257854403066870340799041736559315991335634007952275246067500954416025578693225237442998737353003656111545133041215854161107136743617055627061267275869502912292369618241845178129075015983051537400413059830446135644523064352582633211457401255236099202048811850271006073314343933860650804184928329875175966717410512592201910537295460196840644559149219560920281981226604587910765394047064166142827771271432942403500508512085015825157382978644666321960917883466707241949208651775164328142097462389691893043683374300268071514336075136786652997118521989019886311531040239156313420192147816290795497132542550431603889478531741958470797930828652116154066342669152850827635965479088245963177331603957004669053242309916072234923163905613989258864282800146165415494703967180973140434646819775226133838997712203978731197084444728094039823566047535076053039541977417514053230931033797889443453262019757944054155033402390532327368793925729140706542661214022214484571390920096329320803602628638655582336841229474143792549479122517013144608993198620001394289267585976098222624334524466791032427665944996592984128896784015114997924488645673253920623659206557465313611982765361249137073182380314389564092177203007454835800243422223012755474357277778615364118125927153088894817082560609354482060273900265624397488408317940405101223150159974724037180148036133551857663445800793378804152840051825171127600779841060936603226323425543060438414171640472852288715142290585905610824065418371871612328073233607257179828074207399206706448307127992144249794412308542431910178495881682951340784464801863776840467179159867436255666606730613704616611665633205905117183023249228255269866127398398213062106326858651334598674473241275768862470447723557065000590580562829992116147279302857317193045331653809388701931121561695607348161830024239399924784171314005712426554453075456073430068144923803489066827223508650554984038537546283831814614608706876623231813612302313398002804588403131026528682080025729204201117594352612682723979317464822210682645377202234513900951207794224837408874157827745170992996325143822363981022149967864449251700520816799987193346816989207562047682878190088863054526052728823444337332761360021887153442694809518912272362103870390242941164486109694151650850907972260899952255820482856269341373666022359310177810482349882543286797181862784277042243114344905237669448570316938439192243892167826118455292284556232016128197346579487356390003380699021985893178243838602696534787256046532110938272496230245220448793643075936296338210525873407002487144343124104082669730399228786948630326721424133003792917148967795504832088742746132451913507317047369341090924592602711326204756966535663101549503890002802812649380775369244291749884878460896337374087917199561248507291390597041540324488938217872457230042057234215999420727309430036325109739193231007621559601948731353689492848223660301844566064651467466381527317995238771725231559309507546027498720295428816543337478507893551660693285631762653706288587082964199581120168847757248638476534371797925899338394468232415746838927852503800569657332201734926421423307283766041536820533483317611471783549365722180857668669071110476032865798001830632923578343221116269377438028763455913026293189967920702891202987204492924325140243550389527370114146219567885157684723549197318990000084603547802606855302499908943227397558059252517174620825895741961833880933137265806158386308112037882366463016580410880082664773330660754380048860456865193967452546169793032951728300868183108536804960400200125239810748695000197083510393857505852616165814298827111519183244609107472258485309447498113974430112380346101451172837326562256990409967276229494664204466718637041819358735594877940802402086364191978059766272351390281095857085483621989783885737159586526572867455276692884192931751703458396682940474031625870233916639567280365887585406578686739723661269550969716075080801427925725276393855793124842050207959913359831537201627957042747165679417309209421296878005308598787731914342635461399998242895275746871325066153343935276561153405252269648824694670336186247184737906249396417213434634491572262668265196496310792799711771779125652870974278059742207574949027335169016564390777949215913978481158297640410615168395535753847187348304692693701291158130177277336107170781734182666931785037244559182786125461160366389758527831465939573451071513484793475774885356407576615563724333459436890597263397696837521104574239502129373710842446784445002964939166791004308879505809245148644543026926306380035226815534815543271789463887464166151758975331678055116207239902593000877603015860595947682632750009563743315345493808531704095171703964046059434967567992891287541793149795713713216058648973782327649115174211359818329377975252288965503625333132267377961640027353281628136097907739044039848789790695024484409534238593678381750648403891173207232010602301573491019550701848562354494622116292683834839500536388387601361942130458068647036795766210318645416222823340886094298844144335283499274487938705893370300371905961374054220274460833429683350229334432195721776064999726584031436238551878921339553953086440047971815194673808060641242191082892321034731725235324688447017790953621941343668437710096439547068307212721311032808107138980938824587309904390299921631810511681646277771238490429959410294267176013574235227392633715168003063213566605087680491002846541290919742426882188677514161906875861861972056567716875025987272938598631304133398073012701091301103104436021053680988879055107814552937471771157612164179541046818977965995767609911664139327784493931577001405674520256067020644124236276951558022397580511491923431676249300999926321804891119980509751493109313463666775466643699877147931232784575880048346238615159061147043251065069968656761562025252660817676368877444156049466044871702276964729956385573169417452616915135871228822705279731175969243185553516234277917191437480938770270294921778517697581374302123043255113761280333243162371523091146181654582028013203087615426728252819751407281022267245823709309163129141957315678324858270576461085025475104804738933853462648705740552801449923875062587872584725473254677758949147320787338768599849113755757888632095808302667016007941470588641877122440524670773875877178721561984632027407949355129840067339849202360174659356637391274912484552006124752012088724702435288476802198535277273725408027802250038179464366206000529653838197379655308217386250635980006155568012738236622820057883504625737888588166297329012898041200808138037891232834417519133014713585352113544742074985275606116848366624860023557448145507116016135881829637146763020828683150932137689833629964753595125523921023777701265281170850779304057182704214634214092128576630654691869837997145956657806968653907816604818183250782732341691778074636604352017474780199745557071093345547955194925897705564511584130398618409325023538483219705513911490161306159085409854491516072284797984396069393668907250421293483319355265875992678616988023766083762659881849022604524114039985016911404141336873787174747674216644072863737541300167544887189695763434057115479791896108685040467767094296614400873108758275129581095712379945528503253484314955821923420339416815595480784441329972928705758806419370841850760596913941268376422990733042539148929860098848571264641017502039607938868653285700684233397797274975859030005016525704597712908157045215594001526908014179230731406553709639091020936299704243897170173991125919648548153062803923942435223434774811968640527141273146253646890379900604446247923872293278212090370751688427618871860201931995717315184286473920593455075516270602000099359676557832304812398255219899255851312609116204090972342891552232294775180972184102932799148821692442053098129839805189093004175042969272450923664090347759397872428979547163668844626142850370905157268696742364600327824561928142574273235494887980639590669529215011148798043323411729541889016902088518566576086345734152191093785586717528380467324511093681017930685459616064532106861544738113762628277888025982689285480436583114461646211083084629219942046321402929530893860449507052010848412675353146966950668835790403138067245449131488256178162724765761560458986323171260212324232657405231240589127285812265855865436110689675573234505027722693098636566791866334612204721007472824495807005383215223843769446783510029594220439718265175237648898551978756792924777336753496155036757352122474367391341553435420999834776806320481829031749113249287836233293586014583518085882636666460959669925607327858144539726891146054263745418824187779394626552181160368430687639963990477726769510469958562694030162107408400823188998017189186599981818243129369777299283148023342243054989541989381971569163224179375440124469275990368757143283317263048205406974937030311997039543195624306494337891913684154186572945275848622634507881437008018273922595571558330822046435978668638118496212396993561372307848717600892420446877222892071194211338996363969665531522602617261085058592865845142986282981134702075910889082366401078120189450936143977052190726837457028195403444159381748120444460793274280928604028284129818665561214397356048351776605092185478038452142720216600569782711148144796755409665376568226185077040279119630782466820320757262800566786039439622716399543437651328411500335592907184437386027563582149759159199272963118541946199922180662389646000174895395123947553170926545531619494426617509616203964807213655939563905750897884284184083837852695439260063145180729909997332984431727165967371416392353150060817443431987131543412511634696723113928361206119428861710851888516328071281029537260315789151631552249878469819190884007132802646761224544731527229104193523480051200036870102080370259351653844286575338968201676367044588173802198312579980481537676245237860236724680632608997901078430194755725057246994729296133098031286851077572470893155057989730448036750370943534316344452504690096476822127392013482361084720573039091259481244650370502249205693136870686472832373090500019939396447469361635367446467300221463271830391938841214832122912538391234690057633641034309718675118511930347261051958501685935168081961377773876980056589082722482674208445508040542875652477949674840975587904447532185282584208445719013624653912996484805708281015973218313311987115336757528109486501596916224310558087978430145294220419988649012668033585420942534342667632352477234172740537893116910951903135824747228046892974597856781182704808936964485801642658402649121932471984147556962673394850223008643101076635865737754125066325576829304587852144405786546684332596008947690700394065829981594886645315674768005018963947104416236844002154023297913532395547696527286825412474189261842732770459276925185909541386958701188574673920355432426041031007380507263695607948432501794630247428467349814543763352097345560330019401200387139680314742071096384811604295841119544981996483521726663197482524484874805887094883683887577733789016803882780328912386125851946997370856001240347333913780632322427843733252425752862772957656543483798517780556475165514462453238036467279892393072364394058702363572198515465971850620418802750286444987721121815693055515791577710222651579649187019954485827869802135338075512252415694292941642458361681945190856124510373028512406412527090221402063513983553279007743059771521706124255805541249695993621020518017545931294199396627752704275408677383270364464485134618216985792636483306178933916869402572825119725063949296235298664370305994759678132520967169797465491954494886545296333734353880726070592124362049988918332857825348085070824437384481288070861973806871071621537691049398340753548056505763114053181168804581822512156722012681701036668021581292179068605008791153110664912303688159942131271021243462476465180974050783456572819321202011074544071720706358118491135497670247472040356079089991639341788071423717279963903616682819192391983235252281075946300026559744209856279613164295391858143905519804484925558246103516467348862227099069057700005983427485193631124166247733838541594275369630125825372041492449972561916455751028582510459926569361491661199060542456704900976814043452959664247208537819019227306989423428647232409358058336070542547642017362969138934010795264991250601612692462224999948819741834501335585623830408780436138922381674873511587535739747094603054964575160377572665659590455223315141329115227149758940667889368546501651476708751299865242887932890535898468362500663420511474680531053753166169926243299149515814294866379686182672528234337305994479912769313100507300351867628853204065856918641698608530151619336545247526948019859807853024855902647265819826996045717293969095546685512581602451084286276421162073540400220029825503695941408527280326558311453072846221225140417658913013671402098127268492507782127354978580410888002302312896385913475581661223071955722563486538481228841719417852589185175272951971885841453277829580304503261718439656371135373906236489571679017776018359755930424913307138921259002835655656543029317706650686506850883431925885678819202340254573088286901592665286713139742149862554298121010544102805656241126197841523369680967762021099326851059363172535604067004845045400447707110978799587143734540380707493214255324831750084480980114589716829834454360344804504801298291900648480931562042089660406469857386768835879801641646952134213461840319972410584843705092400184559618621832709914165037928312511192656666948465294527906619013949629393078815596079033668849430398368575703240234155666706460328087604054976259787859824452988048323198643055293247745338940239622275342254283989283365905350769466074099595387017356703501118310538854786123389845690421952498978949668961898912064756983753472750051614772825471505069135845774839571263059044759340745427656067943078676914651323092717378924872726310338989338596141207284444143567974953320159052677873849504309058659236535081527268779256723206248786512446649013718626587276254646880188827097776628718570754199772142397392102136133663739172830898692013800319821326152791044937017037108002378086966094435522403360491500801664782808228377531548796909059867480916577647274525191900573210211297646359349814549573287836712739505392558580404130561499045482977649290179503828820383277503195147166303528145429427045736430006255594069637690935904592358860471941018637580941047969699096092679901399288403360132123405741884061204513892579846217654364313062788800594497344287499740968997593560742839093302113445605874355426038965627107425242900282243172906836045042566101579006494602175378849422368225671093645382865532420257938030783381048113984967157639914532805087622596638818734906502819968435430467123817845354578912401715712604287051227692901014813187013915631328229033536414766340250318316022731684116600339136952614934885813452481215163614513968366817863822797781080942331190502049822356527972041543112148457923725404405608152603444638763536978307153333643513382323320452389140997415312722356327931592386324393085145696498801323787591378980572741546720803037550974482091897707686008648749089906647657970751533694231778795172067845029775341633660410190090665210770215667985288623765248966113768958778778761726973958599271503483886393897519471320308609211338778907214302268316454435629666270239742609170432150169417711956401848317996533169220316185759997116205031830492772928230900481386389490638720487829813359526405436810526711603115177513750939078096835657870455428994586662272215803153658653592671464512919632230786098840328424399916690884691004675791624583560707508620273002693388903205424585921534546527942560858808645031735735374815238322679354474610231156992001878202929708458566144136706582557409835880475715353524437334845436566305184765814146401734781489158254243211399015129784342306893282276946350939036106174193231373735968010474598878931202747079203330753112644354405687521729855594383389444561104896315723908590888616938479927062797633406409176591361223212712137606720381903521659407332145616631713098826682071410616337485341373412950615561448214026168499148606878413740585859556435747570586282394500693774660249584179521251717555872422684964677438902180558084989855195130220313405023566515855125249523297469260843754068636821410315704791471209541007483043251806145472941420106863819458633265683254415682618716766787691486817502777705928156056484526217510899071037240413504505267287006974740847719797476077786566042983313367803006508160204884227645731781505357051125078330544519522594061848094227619574835715351141055845529300117983692930321159692349169531975458895289136902826415453963521368979407819717095034882257851260597700586926627644618858098631765018813651449048292952109652912036217793011083363240231938155837405510806775489368520537637359313722123395079656614557648004446741066097046814070005447900270049144384512284223136339027440454539309331007769322054439181471098204462254677254155287483408600921984423978316923687007866832445671041005254422608524742561072953397980917634561242425255081978974288265653002269794755331430580593580909269529936420589621267027317672874817416093120053516902456906362439716427340172670715538024071971465525951098852002608282142693102323310874190901124951264760316038403168160398570799293698479120094096548693079186824439445537664215101529814861242816817676014904180873352616431260234164267991356349966357254732383308569175243948820986598245203005684726817183244772808138707584491608802591714080937100358960342114884637485132105394409237710020812727021955561143896306276876404790118398912410850382364031652565175635670594750279084433259209473368181861086159432059839695600957082166986661112353859927054944419836912947323679072606073598259115319041347079891084850048590965064240647359945377642479942917898728562047894258539755785430653329774746852962687939695778766423887626820117340662678379737420592492213996891864046580744623838454374763396054504895130092793834888803282206522014918900870358495695753675185944608072665014136537772048863400982017132657919090486039985059965493475033303085528931636438858473789387709800878585290957781535477865015916896487504732340418687291560724923494890651798151552526368497098341364308652678201646760228311460817424733108064706673989488086323896854260691314142000690656316108195047633560792915951345977624514736615339723444385424081907625459415095866742913392323097293208425949310295687239470878076857482912002035952473852682598695667618983281990931414067385313009533205335346438345431142747517555765979804545209803454591120042376505564547987534932855687817584376388821389017496833448560893328900645048699870043410098417182133508489835236660428029288056336047637154875708679508881595360534306777430604426254058289713014781326121007217791053494582852675985702860491585279374024031149560193418549931627172118904263742071452304176577258816403476972630130045687328686745522741006078784487691200434964933146504182644200457364266452162250273472372043782240184298184532048119974682036327452567636701614320471462567226909336876293941636334140852698760621436644983530863736382448164084443696971152313783919332794088036765096697362463914295929465611307620167615214737738189499745931838934313659365399498552397220119215777014084204804096341172361897081381557468026819433127234799666899278072485999631710583778049836401672744666576725027392969990627327867841230081445800793693393466581450533475230438598383931663883632423484472822497140287420234191773322350625911964088662013998589747798991955705866590323050241638427115426704764649667667718583638311026813960500525557787778388971014166858613395897095407832766244490159299246759130939575688836008486660665736987887127995043983792813014569777562027405463828369261435431595600855405140201328473200863986461984382202344250490570836714493567484436440978567635529437582116262420690063567549028515610481802315510420232433739034276243587964667108832418812334767169431842154990281445716037673399727697614870102643545921307890098258402142619504156116039160668726359712707354815903765648669265397080687855030688010223075858827144323592051951188860431602902917746905693265243181996945975449273446918909072025319347937717983850575879750818730743460613247416178910654785579362609358302353661490702852374141108085625536222536450072384409086219396822949012250712653485479220882324604568998181996805289043566378951843032850913433166663792840099046438129232294134214481649118923762500800453522783288131367978171990483736983923887944995742835339118880864049806167817537531705758832276718571600051197717324401779387702918461411772559671388191132253110197576625590452477469041375963805550790430484600241121598111059166459204147905446713485033470112962535585589931707442797784878009216328860141008598145513805420379687462179726745950024490742929294013277595218439561625956761128551745425268234436974729670143804182189486286401722098907350882673333147427490331694556628817807285347077207695837929181156718272248791175471877595103597206704852918258333436660457212523538608823380533808257645799013919135204098652225012842542021507673058514569365581708607852889974464808476120216322144483820007762498581372161959683302392721034546304505014080575505251357705567090073826838289950778250956521881813354896818230493139523424313510385978115196780517963788927664256251872884159736273618294882547709728918102745541239642537102506387921354094183788927310930598313293469154208161144356606790013202495463394350777943601283873709731711929749577939851397621115150449441822425050669103354817435916220965598243726236297884250322292316041552994310556523719815047766361235172169169534962576713374296962109983440519973049366816180829339533858256310663709083948622294559899322951800362143968243599585845538573602442141294978635577593725331314693161355821641392788382434213206354860754424179066659890179183811742090187241308839841488142505687556294409633690892606393741934424810182577330134826380662449077651845435932685806940561222779168801817319339636665401524937130472714877262597581862179344697923790978598495094280056424544081359695741442121898771291067226752827202963949923287215953610749688658012927630511825229134623102933921595847817563865226212194491757152461127669746264329398764936633268840531437903483640433896848467235190836423127969851811508036681545131848923765891855682319133282689378608386242787154045442277390137809230452764591576292166677325319490705918456737838564292912258509605172480018699016262842522486228725950651908122581358529871073832098603790497326623153157382124617790751465637447423839461361652858371773892752024694624300467939380381710829342638520316827140759336796849035651572489013972385986850559290164107864893129314856797020652264823835808344307107860847464534163446653298002381419814232029377649898478196052053092621632338158097634268090019180263577993971383624576490231718782106015101338724939683596836003206228997165138550884437369396300759290282570100853205735095021966806475373991103793525377595305188228267665594452034822028958242269547134612292298847765631785576690317605761090085356731244423902287324717833562915455313878715558998072161076096759239631552913654347411180034997032295899547352495948103241018629184663787241396366151632188478307588367928899629103145687847570963497168825050565185904985757034217469384404588553916652214693341347003249455203260968653569807890770418324351870053482318128480630148576074191128484117633488114322137269347228058963327447849921686325569321553453095103216381471592524825833032182263576130768013746299270908845587447602227849746966859855203208090502180572080025387439948013915759515680578068709199853417182006918448273715525221749954330295430878594992787641170887872218018023247726565754988660966163287217418934209614367561766927846308946781912820746722642221910041652392947329114680754122137802457931790811026185514613135236451486158833015427237308020516893055331994005139176139552556350901138446416132539760917718551618758705368182381852250223688059155989599966973474196604241502444399797764794626131840744682403385053775164680750380833937158117710438016765273716445447048533258462579174224198518867767572908041009332723227427973954682934756858723184027226156611903339782561994595452219654622817655974895411180554726433870480622635355611372393241071667065843057091268227123143472222881466251840961896879328259341699948049475130437947970583398266267726233333911985616071939101696563789144106554246666633428432186530520795161839327378485749058697659068711784115305087336121833612719275436398460010894258890650523299613993651627983723649390311276180133871422781146016247138659713702843132251985926450249187019651634235722300528777290444005511008003276265548879914234507746047101278106846310731938681407405694424231125134658479709033354411983354990772169959606214469196473903062857103644989729633317865478596183277653616743520962902636349431990999758341515477599783341758752633436258280398034425176623159275698804697920772256790279768869497513916902269246297086605275443052511898722573147006178280469214798208371112233775832391146659760207661396591700143768542536564884862069043728626675794213904804263594574980545934606932941980246374143021577797466508832064066866339903694533467854307000527997748992963363205062327802319207811322924921564954157942343490391065746231801347180606798896965149303282846645998537189258530038578633404425698939033277119098162823565604438274424503960522574865197456793106650231676120909320159687651251258904185901301626061675084609797669942041407628353628328491163204229135834955516957313423151383758851088726122701286622448290135623781038804372939716869858517198642403140097246080070059938122376600182818295356739356666321772658010632159631071078276297912216899575629897615025312690945639627216451139695703297017579418191268276778263621121329769037070917018183368962081876797516626327861629307869386734317728830196104779584808585996942595702220180861985815572501660364485301333790660527422739126043497210968130276620053025643731001957250904878885708950333972666382726914362579773616272022767438516702966542048568162028914567561049504889730508919806039791541718659147305354636208850992732513254960290967794784732616960859753408409290692171466826603805096828972098295653610915603276568181139470213535163523594362527776686894976474244458377466313366175371514306548281981432771229724139044530230900875335704290001725643933876579683790335026098774828152844300998006121662691393826849204386613544491301453049441093378000458204358746103343334330328190535422946381495318852901646006017113492214886638474741257994136947476502703045537832612725765213073773162387526506699566962163667861503289045307077651945114723271683286370019056588425083809173387628630046745874100621518349185534521357835243556629266313533653647593080564904297872614643176097927824958965856650355159560469789870225449826144429819829232489998766161695687420407067129430673148928323878626454632848491076515194370330296223283836553201854619923768340650310651734445164026314805198527422696755826844917324114584137977285571609129817885837240379740058062410589830980847835341202124756016440036402912350662403323641237529960739489669918043767558780509670861426649720487871641397856911281573735642303343064189331157678369388433879626685902817283838868827584230598668243407919067478490823775803213500741623958944949715233258700248523823902964298154150650375958197136536884507077415595071198576115450891006994075054287300508409883485252089470050001084627945664121739753178768417428983503508233662691494829848318533100474950298285820078902876925218031049851378605150704206533189419457600609960013984662995830668898992728993554370040556003182598600076843361503382994090163724293528906120178420368504060243095361708402183804699524694163095199196940348220867619365059477216730991471396501910423117570913642594886474782319698616790742368085584548149200688507828969464492337053512394418696897965699455666833585840257352574569332637087606246175983525668159998950737208204414668801452508197068002201659117153560782595685672205169845384766883718784518840273843208006224289523503099072326125721032522231472680890257476915178037929620971644064008578666629572535808796262285933012288224425701875807664087560488206527230344576457865539990299884260573859382535474356689274896007967846073035592853117003688759285024412763094099537257340266825313330342351868013941634352166221686708391960717383856045024740464018509093697514353988464910584763925519431289242879009558235826334566941568952162533601411163038142213384538329111905667557099108114640235451839177647606657911171784921065611365124409810235627929812267181534073347075736105231010430711357198734684535059153882421079396189796861976964556370150308323056783560993225550696524268454815034588175839049711942747244605578673586710961560856048739711953444612743149721127678572796024730171214607413453941965125788717262896096545537407000487555355230068225194859147229535299561896872483609524184075598635842415361884383258248805813515604151925495734861274738971672658486879491113206936964290327260994730700522125125353666100033307473827193474097214673331680799699142416070320831653483944992945409418777278184332719053112672921957867319322599635852773771290755080368838351445877135106674227580200772503433127242681234484202545472257908346752617205094573358390223705800543452081250610504019295483331371258766107407639190320986719687697935071474755217552697906749000550062330110119346644335011380330057331230985462669176758704800774504672851561189724115594621987832951927187884173061833251109504498269585202863061728217011493681005511872144460986149674051486998664769895183172383672141496699175431493938854212177798429219735710116044211112188836265366524408703420264531949728262848723272793339486934391391815132545075411598832759021037185537837751242377868577888485532934949808075395139856858834518274212385646597378320158175733659881334749117489948821493028564124092756886602395601894471508949461931685226908303155984237336782438286587391271141853662793238780071452423516222448109304487496489659672545329124429670237617739873298675064558162208521763633127591119196904414842185653934681508320498946645574901253319997452176683124663820771723617166304689363425949150758046304006147242917771823286394549425335780636093163883989432846972842804296473095582126576825172505631901710893861441153169167655390921560591186631661730134059723375250195287069101495780837089370478704173058848928282883255714304034633743150670004620361285746905654028238518085031297231515146231332829068332342823661485239146206662127349252723066357690893356585071174455901117757559635452442929505843752748598407643124947923377911801383433461253282866493848788509762903208294623435789504254604780186904872450609997205645273637383812852784273265792384745174239490503199751884855217893503929618592500709412482880837525145562516967241473261296302993263769745157080035573223228269164857554207552781610393208998472322976978700305880992290154365047938729515710451364540206374331071904239623878180913196860090147236280098494622622259162792594629297161170362155107196925303850069948124491241210836008749685294301372155369802986184097448254022744798411647981528414056898993614594910887771735122477974548647468500103618932399300771841864907886567838340052072901400064444149637705480221992686857144449584168547987035410449137285208964012744548506751568881002573081853212783637353885547196518652337059644623087613047303382156891487846713216674120396605875825187079910284507532089067748466678803895630269204780894556991765980159571893769732538039402677937332314555360302279212340376686883172465313471050279516772045196673007424041947623425802147034421287301526883059867484501580555808691833850559478050548046313918931338349679963051769304866781644460421513792889477526526447301534626048486081375435859071055665295633544129715170945091956184754974200020286403643816619039500469348100895542656236497408318104828862380306009361604331443367678991332730029906422811615297153338905057517694948664013637168206814801684842869758992860023049351354142209541007967411336719989269161123222776647056252178721989538694349262378715074686090798778228282374310449154916349805833890677065834112171205321288137119326832929847228005718907923427035909062810134991021459217314366704864433570737987153351641009106477161749426062691661861585372720899711929283511689081830299635030308802144797015758707711213416562041069306787923758666626547885635353562586586606217829194243957237011516716888740535010300056386674384860816825380438857379849028853028990960947980817753697531783068292451075576403753050594668270146876505029085326499254144608023353380175885440534390098378639719119531401325208573622923383892384166449694216787156258752656581223352985429079686391452476599277365198444725081834884015567609130572177672794469737281548722002147312379557007911013100231591633380600943516863364768134713106712167111686708848623476017469504031408465997325721578825908778043639863889607537672855027182584918646658404418668321016746243398161530113263783050471977538164660684896850201792061875547436087501588962471640862193805295671301986427531782709268394407444960896273218073888980613882302207213159902759668227593208588363640055266777206975538353380652384971146518621538897306069952589911856473760032778808984037201890186087682004942309776605480027473070534127219829980350800482818984708653809334755438627678394822528405621354842605019710321566340885133205991521296421030577721477919964638766279812399049486795572391705626368098402121693410175799352911458072701751534254974557380173491138469616923459223480195468705858899446408445881126701486698848564757173972468797303853940696918403671256196077805929629131275067607721669019845343114125498722731634667118722430564562526612836613908511246025469622658669328048422525533204223270304453537011043354802852918304366227023071441413877684380697874321043061777963485262815393197212233966953342786686360733803489889203255090527093313145116633307534043766188614604942992832515444280580694003462909614588174382874302092579977305785382821151486250460844921254063145348080085458830838800058089197844613217726650473486525558158034790033933574861952359964445659559040629537615020562074108849290815790827787166367833067414407439867390707682660065106499269575283105022215587716435052794038619128618883126795650170633127605291358380113116801895580638821129779024661363945739883570643431025050808157412220563577751624823021617088658329196813226993001796100187345352564638060172546767846037927915336293774017707474993708528095864392909711640063255832753783855297965021334073205385527529632532785228299049006120383390909639068707515796185844929689305518778765750632811503393904405248547173804700636644907559828643579875434116805941583794679281484061762154600495862601112929030186267943436781060791514522082406211865449736221348837928617774777985918216673661184602871317785224812955740394580223863699059464694749441785896294939599918397005523170907396399301504222562026482772510077919300427886782525282033089759525922269292996602741021390228355578371077839814371047318314220407742928698644550156735418714964873932630598551541198822091026148942964941383455892789955869301748776729677237285057925892531554701557325929587978373904431523109191793647841869945434024256802664897171364207049479292522440693981216832077932037907483719569177739599942904653753887146510615237939295815629638352198676276949869430084811296737499017596212534338223506998670096279439605945523198892804270599478165415648732992327496246023769037783903339285644873302074737838655967036660581720272091739678466344308319033468826382425865313974213962135618054420225383686264382323296721230749229221402795040543791035397607085605565725224540352652635950943540128787542583242748861130657521232874691246993434191464967407787037321937193452575834274309580293922340022859568505412244529196271655536089970207485739185003406824154343147226750104529277039796215241481683248978230003597159718099485827285615301522038158203825944157870546542880816083503042901128177426649227167314633717093327485038831949109311795836782457079153035382933623886205062239642079352347338522906370240855608059351814956912429795225832709256970576036167022301100194015383281079761242640493993126209351895663905953755480402580527919791395257475556825536082335058709180602862342496317387152475554568643829807256295471914299002177045439457769406595452097780382973157784978364660330025283115470470944625560961132334311036136410174243562177877580204368755449221911069292264124980465952069041175005985369446247274893120460435854358616882615133943115752740937763393519733641663091088696779719358057336223547591178268451729787031124908289780645388997551847090503872696442191335495741856546757415074694424823928025563325962135860095082800504898463066904570038770518053920242591469793484080727357189986731069537687189990770549665404374345823047920377927148336747155529295969719095605749427586964873936126763615194919276402173151399233458883067865166985395448246840966022475477823977843472353366053177504327844177720043319075565362160066905162077411265585361852277446085386646559902583824634036051603228380964741206380343013432203260510388023706647687141733374964019974346658896460311342887702437375999413757676608623843837591321667912367596155927621173203491896141236075771602191855873858057283320537697994374309517570114592689369979560414156501329822674677182393659014887567330836368130832986615143326046400010141332761224347321432196426593038276869282659558519725080198418523432832771738144068895389517664589689501827990863717258161573718336343003988355311665777129244784812577787339099318660100298238316074979388132896089311897528736627271183892112003382966394759133903587782746368129195334056195085344187037081971534689483193708233826480209863047936671377766015290571344611727786033477876133284727411774578268912634135968609464246220965885450917211260701253734291758615424849952052472915616402120631208961782609579926011891455016322665409057654024912135413743625195760223042619212187035266446516598657024840967105608067254995148177006849064007648300105874828206019667613405015693561103591229861882190927184705813697683552333412866686849524592366721906179008426475463634705224900555484433235359460625868555425930883444975040949581197569367482099858601287703333210133873075591791186110292924026519057207810875833632602998678237316567325293373622787501701446756516517013244784072526858052063300855237566014380322527362320999696254539535527506090811906336608280898233990712957430208060744935336863394694325815150142370446387286133453868356640697101365610450969496302914041315525990374511499840304008758968407226278066868980937117100618160888314889116374691752654433530400184512029358149811137259333185034350097143112976556720148853063673535153035177016919999459079099947457918242534735355476864469702238217756619231628822478330022399015798764432973265697745876737384716937124177522195443731724366701461931054833361590030005105098531785528830845967891394472944883526900422072541898621057082528113779896411214399781238994025187146311256949801607106268259178590375034907483423357414567328556186347790431545543663278830192123222095069426996293382632259803724241361537960406540379669062775137726543876622349120504911803709499692242217925004631172057909699563657799741204734539744221329167901118039511103447008793924348247628657591151656216379290076021121747641544576908018899936140204400448177977459069426632675385370662150675977799000344038612864440793844568522710225579670490828613663001481547427505290417330870975922171582057063110555801183852566181202319404945388098405874932885852483021139930112495480970582778763052084601275122752621429701124090687286751638409325890861674788015709887478749837569521775367144325014176707168936485264717926259980265019753024219282147150408265234927753286281887067768791038640165063024928346548758319889173251335227089819744479246829050384302712404580229613856590100885781488497861173335416250808039054093019401589741943725689736167540952498318763644651946439993998315277681739653111916140971098645702807285586916923585973940909595774558006399255227728185765367935639286657984187080912152532629461327052871271949435413958965491333960895231474294461540247830216895897436355135895731314754684838114427669701967551499675605383545386624686977686112171176459061166168237164287863204223849702699822342838638623959684284810038564020068528571719755204140078000918511616180919080743543063502815720022995191345898203526890955241228557989206480378620532610687979803615344677082677550707990532040287261147597951919267098808266191125690974222016893861544335527362322493974125513653750983328382436188925275610720702448993238518413315807038276935750698435533466471741883626229773193262957606155077905120800035395772172058614699905752590110697535701135252623535586838737830445855578659644045770979072400904551466943583131195622972769419886828095288813423927798285908487331819724982925199051395772173036247190864319168217843451442656748958533377328976330484950199640456903430588597077007237120133425941583773700320017787142454109088439501265168444151430569606079836753441827985747167811046512882716797947414804516313382676549881759421166730067317070380619216373519173786409465973002612881559850405670458950510917562837462190515435261357602470235465505629117884931926322666058399629729270522678718238205663561096056904437973039908132995157831238886738407576062715153663796383763775910076475874971693160516555794830808910205055659120260844184947646284149453345156316304525707075484330272470377333045821627707101732319177473210061413706915986522045526540907181603362491210947575634473072836306479218061688356445614522366962510890470938472811897340722164101811669141379648618441560223221067573926096025166077782490799728898364903799370516653279391402049264312487759040756202689436774306064242163330225987474357462119299815694668819547700278027233490795736661649178652264580211936789965370244497734433113573374699195953725534131731274400928266572560714248552501332341688737059445953876846308598887956811252565376631988757820000165478565338721521626115472927937845902539700857614621547150867531166215141698598194910318028816387975335733448290186074456466842269708779837426965401970136227063217640561812694635793745237035590985019585339943450680541125041850461508541663775486280204698378068893629158571513857478127194719177014558712818505219907230753596138762661048028233186988492574851887294669345616469957038500709708452159074580123887651813647410601023112347996673755983097634864715534777576119324367917469544783572011564180896360573900877910842596485425131025720727502274063319551949052123483311565947125576763360422312526693306795987137659036495771285415611744985923045481271744747601021839462111745892719116103978706558461336617184817356559831896619242841525373183914227994650471924707944625964345319193160669070219694098243378254465131451499181366473238775041794736410644764100462965675842191401076641373243540678405314503734773914172579660573330807952168711279584385974024124262772639319986864283275841913196035074949919241047916704955538042188589149849192254618540050772975157802159123909524429063599610613976939462896460496885648936095921665028710781310878481827133378618296322498817350956217666516544159254093097526366977392633848604001017632902274759044826024503009693224163024925811782949329872818525090905705902776947906114353395151661588176585062072166266470950650417803105244349020105296857975938928234625325009659729693521892440418313320378741384130361099100731558829083454410542005797400743227843887001772887194158345264710148957090600751195091039416588535315553845486576429459504477477233816511287901980501969882622371520729840679123523718110454173685179202358607551904909117894124593335151782544928325545501865259704989778622894723884898755115991411367239641016247858865834726417457752356192639481082971390061407622375867848080187653651303748402864509762928473278737800029776406642215327042509799362161996245321130520055279266286022068719297497522148132151823601517373221707450818195876976333234300255743035305474405069820199653243511570595074496673980781300333660420688229219850875588321045356620355828780046666996014963527729057193022552921427112685703931830078145228181858619097013430089940150492924469359590110104793049193938104569851098445565324278377850314287835680519489237810782714818974634916376543596625976923280463636738797172125046335137255123545096192091734467842681430070732156221247157392294554210833819394729292115352675008978611993346939626053503222545428110790411383158230857715713398748153691864658756193660873746847816609759679034844969190914541105940857152564898264658161666117839975129560082593135210458725809742755237971758011982139298294341011937812231916562630186202581983596405316028038658064613438164995352788298116166664093943048085349418575063877546803057411343203163024375206342590846430813961887226970886957557316251029214278285514042736397589449363603627603248317906611695271798434502449903399269370449463393783455732738619254443102744826936894629682197127950976832511594444785317396735404745401807188438663883751859500633405087873715389834474079958426811371997527625359676454923596851739237111365069547997114941147649136482586907614940976912553480714293710732248606447447785945589781762076774065933750079561181295176083980483523441922909660040683431110670178576608009185221824714740566104267226227142481900130891182579503943612477116399419598765840059910569009642206929563315542136092518004423524076425048461973211979434020716778173826947236844574601894862916369675295765840619286296850076151833446205544991223219756173672211359905092459819519016674534246539635403757527764903802339403795261065245447823251541572317746395718565736634018707188221035289345421181231420632848292422161921721044198657598154081384418991342357462183011693721926387158941363308549089224477650942851874135853491456066555324398263963376989220212571135558882853548734013743123940408521476474122428094770863517210479542652030390611136993046563423908155653675171611079909769220561480555379804553462070493844528806194606169078458314771445725185387867897528782420510449550144062320714715565189071905730641741380921794313273043706964623874086303017190409347739574431314116670712426332540822063512695308325202080323868136995683408155496361287150159566820483455720658710532175118948578112441502540941792887321791107119284990051648139161226609128104291318603926432553275328245739852557231971887613668324379939453171854102316970986820997027039928446660971457781641449073628664914106569974316711856307506868249887637771501743926371714391167883804427389588546112379369368197363376319253331203961949775540207616839892802353529484256214748516629607187337998287298431986968155284853926583035284663184850185863606760087301684241930636586304126823973435863750547543899983641675790477832018758339547144748198903072261927633731495132480276735156295227216553855473401774425946357583807592036000713468379380248785552198870338866707474015262602447168264127435607141466835785380724465612242313329838446145380417761709241315310664339177632529711547407504019018470512250477367658458406709566520054297788906093782746026937465867855905271307146056228188735255217824532925727693215503357600386622265114848232793012751528086029363423281249592776890681050157226130173457001292051564936919748171855171295954515668193577163157291166387423867094493347290305395760045393404596465134704363992771021385244699586179520953470679211900301075737930610044693781097441426775437372800458501370656297138185815272146636326603076608983325836465764984571691676458168328464700934411722097861747547825879409028398409044085334983368126851867649004991143162835766786147469228957054171090384185169866097005675245073435825796292092330938876613579673034746157659754888967192731019578926520143028359716393859277783408531306542762884978124900366317326279955068619486608421820404638330212218441398086281284632090474507421301262564466287099150764453742379305713800522617734122360098607086805495711965496841770715829971542733706131265677246721062302163001263308808087972188253494820675692893337171813303607723290764741686763653752051519430901717881332105958539140179153422923038867634742849191140689319381823483179840604854436918009619281411608361794897039300632101230763215253443490482841808546902433595240503712838238992528729507265534224725227392933048480039509508762711536940066668358492861766288493133244798686598244047997631109716266110278887753904840884550976645574228301828884730714831736992738675052347428369831105429803271989723320216623417395972843367703856325486477134309757953042359652237460673592778136882351190845038266755586179320371392296162377003053121576387624707879645547301589493329922284581357967223722322949863370334605256423089097690543962229048946953188638311137568644113716887337012759633059579343176176563490844294644374889697242291480780124093140260008342318331216077142230849155816383894506745101586554745180719922222630379870184899482876117644294442173474180595881816474358727458127510652897286109316879787313172980868848984503086604044978867490971993763220172766797066037598699749175261853557449342663766270357116621101293411585016441259306524270765833898365347022163865421280154529016800888552999237706647477759073504267236160968776107944395873981424851996054667552911250324977382409078033086410170112230287585076184561608443712704479000688314275863380744360851904406684706790306648752238885049868254434710972629635491786645286395372140398238368063027367982943491891165178966668677055348132175339017486947666109158537629165506836013680174330643909818294282859595556375099462787450662818781612264546004975396226610285194945301951600281600087008700051817991502181629991309084104413263511719293262570121432674107345311915329870094605082370715433019765719642235158065877019407734618596034646357342385647096702244274806866811978312438771861071545412724684684549123015532987338618534120293185733588760634416365676193424466601213800319539055204008592156632440115870061602951622933253079854702456151578224999010207213644990692199956482217631930254357918738419517499227936282477526955942186623512811314849790489434929311674190772032361478971072586489194120912929779702678279972320746654400421230141150747139491245528718760300672159357004825517527175458466952574533235580469002573805860218112736939722718870126476501458144285661399513743696913223286983782192288000256313379404347356558757904901624172832941960735506867178405788937451052076732090395239108953257716839327771491630848694000105447467868616630834023014397141178625568345333780203436266015890286500824149170403421425220794208598511276442321940328924230587673847565468856696200000042209800202442392081330369955021423616545032375258159128024970708824966665689047544069342414721354654506290887987716489425698991564743686310560701894913189101279084800190687271505624777316969046587585006412549004709702076950271222054875205246540217410328579399130531668558522724381034213709085510038963555138108118732446130661809635600815817120382770452088613390947347498646192940101846662894257178477105468682681708593595386711478183268085464616574294885691167095157839751869494992314278207519778255566873301030554304304244822523040512925731285430947957678822637035506129244893987387896839025716941490048884916628680275531853389293220869868091200991011873086218524891180394579857649777843328789252729278816087506103116708128808651511379120300776941676682188562830551399941790824338419332723130831141731778758094072514271066283736015175088373306677319893371056089491795971492737108889454131276853507893814445776469312453323186005702043517023822467821741761208635058560096752263287722458847358286938747941212287656301786052970291364489169757299474190235602539804760591999206066797076834198443537945118366859968614339209058953025256975673670957402151502516020860623064690836654206826642840304850161240107907226818572971138417020239954566334367485739317813142093783700112349595581564228336924086372353123393027580097606551931102831318790906104143211011862452323174305348734469290952217067604213319570652371828259883308664307592356327131272541543424449863653618672682960832432384925191560940591639097565581939680804241892383913758892850264612269978528200551478952878626087223922745988965914279612711165194003936550832485267567679644552238119179226810846966576545706858085016044050242551904982768729904776507946034640314029925221901220895840121053170421906192472472556536601829412298344957533243037411200851799893567019267957377040595753016270303173331088834750632783257125197271504165753536155427083478412692525401605749967837984559472356295741267347393623740586979560847837534659313311978893578133171294711499946451858216275897668493912004120176538632379058550375184575706082984695958244755346343041342150929082804198646955798845000214951299814360536445409402501697217715657992741828452131062370385803212583164330442301651152040135348040705726053882157389059978209358219216891586253766884032460314072311031068306108032222258818149236173987273549807164075759834198057744841248382352548564527153806268811426101601872823568270049307792493412829235277785799393606814651057856926791617714148822812652983700561740369415845124055206610779681358679629289965050979780658091792457610683006581705743805085210949505245623636695120515999873981311318381676364699488645830672570510019536493125705829478542839717964303309150719700365962714403007849642147765416818980598981817369634188473644002761487084979692246040614133150783846015448641556244077231692581532594768110614381661951955092537216341166236043360104330675807262462473536402130706475746529599778135412619484760288389654552364154637216800375852950108128736758201938211820317615176786273952806841201955940570221782448350638290115318136442017327566164327747799951030332001076083546369815118114110526574530079994349396786743532971744426277689102981259558792564710908370573536723611416646544753385263626670179309512185703799015323533165683654576408839545741569839911703239367708573700329297073560721083952806129985113941377254409068329916510574906429821187010330725148959786965485311476865150087355815113591097935554979994278188008357362177232174649543977628161840392396548505553657191006427169818658418112274261065188500651029359570763853924714764050262760668574444450705645418958311060588494840646143270544397332241133794172961835594986108831584159383249183859929161806914074687292803960514713748684727845677352560920116349092692476826080556569203889015269554517456941680792771556907694364071721965746338303819724242515047274356961295620542985897059502793021574933027025162011174892891720290398129013541366733288257597725923598352122063995611791960741062371977925064201913391346362230230661967493832425094881961928242905281827399446975838786048873084890855135954371299556665859464338744008359996386675705493335205600168783842006341963081226756542599158023856220874666514365925872188949639157528790924632568668082832059123480754193961341124081724331929537979084256939976756723711727080433666907681139935618376915685425287281308391659887857086918438903177337617215489234991526689478546223193457711068825757472647068414799865596146983764601784175797805993704728197845318407045980549925202641173631640389174809979375566534866322112767684233991278565585585526540888905800882731184080383502831987631874770236099228042654751325191763635280255052652476900653455324772570096976914673013297563069160532426835243050158945915274510180505885946276050881788983014054387010958595794975128963303987102598485967207259772540136690830157230526770224126963183156576587022540270626800193311038449050053978172842117042622577690620642233365635136074823480597245572406600964820522276237359421617418194051461722728117807225370796219064260022397305377743265064997610469778619343830712845045357593189495257139324223826253887136003453497758419949898727103330185590275055457517154105507662025369082061169474188598034878669922954346556361767981611583548683459934971540971124618015065747447115487127323773861494667240063955092983906959082347133125215420227074973320280169945218947793343262914516732703211472853077381043525214589555530510606001185146857548162074438529322161210161312435995572148281485656679996732467425080279157700450334058859864641691984441216025730118193689700031584222122938226905314958353091375346654811294916743481546635206665279964175249831771773393470742615340224688795543631136772695374603125847031447461918328665072913842572980164390127939271107850537642539274111650995733316805092951078181278039948085531243504290423065696791339525831810004113600461863590792305964290435300077049784003911212530234908760494958302700561469504632586230886406858847926126033877860614252003552544896685969039402774858145578706431982929036030297446635604118610704682660187928529490670316940534921337448999641960404782900175678183689742005961025830045063294932709194741993686396425646982908784786436010839735787523194177699309691678238701395174248638333036743866720335919252112910940985917316908308563714057031085757020887450209499900633298267890368261774269247907847582722636702651971903462695004517781165682762199210668095094764090209091999234468790034058709750570293605614644657072420872769226319329928980248276794575635040348617841736067760997899061352008005786892296572517187610972076562097628204514879169541887459432111175880388673362897461946950688735858020442098160049761632712376205547505280098719796843033297382008218030896669173407629949704706237020438328252690964238667683073642510166426077061206940076122834325169296908717190090436112398023282189214857644720111554450742146855449827028318996750029059946685445466804802462165835207230480773537568778393689401682512588230567376149920999365314508973839393199738457528242296457884323718552463791234509596335709388718909644420062634732368039838592504855703348709230565019220718128107401137531632665366567920529319815964165328357530597157774766673557847939622453325679847080057722650479650150909293878545514475500489540143827330427518354719669615972007004277964764027638531236791165377896647474748261762158964916408079863623456082726129255847513224132517484077839818396985738928799997435689522541473050275818201297941293568500338618184784913154874119771457007866099696445426280962021572292810692448550146148012250852528565976890183277590796159507536376933180036432789308020358861271012825895489699644541468590907813546651574167315172082469624831758069153969097741287586794145857953303478903065455512001479749210451919879434316587302329084446920471068502830449909927843554736782098513870575887475151966313789329423758969024643518616028743490910696113161283771433636927501088333678450528463818848714311498807629929172918915548101789722805088713891302484800087125697135187731162384005282284757360717101148591823749350350965005888565033158699247697169065536406342240107762821680543442522857573223181131129729777810404047699809770843213800058655437501280382700825680047212619264104714636772175131921887194190106045342195776931816263630497049975500882768103631724210576794596365767806806600881477853921446930965428523651288707117833342856625195572526346778986269672843707917656825951295925357408176516437705733812990219343140572514956700553811983173703678445845976990812733267392072634747879160208880983691348274953927041705041933551028709296683592418217736720437017980956633843050301514576431948361967128382614587848334167148706299155885979609996476284649570822573985440335592395137591908937077622674706157575263641336330852189570091098960397291313765473204951585318169643381004347531902814672634830796027725650930795195007828928549917603933066736657314288141677981857083596369956882805701201684962645425414756869745872158792423662269489605664903881845992802373159983697639120779160657182191913905969303670229200240697726092222621636297700488153266310990707415642644568076272423977054657837921819012602314933630501276986475643344983048270188399618929271064830165509902829806471510942041347527968495804574310662499396214274301577794953941575861673311815364986072575368457828163747667889725551031162990779668290651122558679726311302004116053343601537868844958998156950902020314955016873392734028855509905569498567655717580464725688609031616110964718793934094621676040749902499449640719254729776413286394384954608104408012882149287679663186452934346288046135888320585110883245466251627044419013725269067773773315756128199061634828906409337073901381946687637207702065399773677203518686452247553756701511165880989837198170211215222536621366946784635520898383103556957636085864175178135173431849495209313956942103744593889378237733982028110673894472195523442840101926630545311435349672101070470937193376872440590044089491229545827625984269791550526162990542895564732547589069927389157994947697367008648147498098666904825055858630659755240161149881171064316339546048269461387171890917121741590356049206969175311923478433225783032505728784391544509518784599847969931911004883102087412419619982495309927772271720289493132376424866383014597330417671416344194191777838953007525466144284375408776973811331072850037952863676375152586770976901529851896787550932402280272135278500754286493869612650742009221364112717818848958520584949467512983319304646310499685447479834846347846833194263578304103981280377762882455474349594748694884240508191826204031874160967974085605579694338041977060065634860222486143873119464836254546388055895993640446566946901242720320801024724538201394220300991810451097351805389801588063705383585913778728003509233673625099435357018042951219383066251762596433263159911802164143013097604806672751853575164095838937266099361795906198438247522265510530091700141336864336432516027387454374937608458247196717946306105485334694734867833226262014104329746806501707985861232164103491408572674449273983134053164856866678129115286594412391015343626664212400303545411484456795805710316051095186679753109971275130946119986360226381176930217942139293058331118666760694956313147619255022346067207916390017775232630002652294214388112844391925805863097616240063561975346423324643892957044616373091032786071315360486255182901517462464441186977105727793320067290786929245563537217768875582692669856140573941004665625139078444952145545627723827020379565151678253137827592289506918448372863766646567056259020066620380792450504620411715106098148053364478252688057966311120929858645301796720650535550900718493486210768461710749196396899529102971798738776375266453216638732861251741646322170563340441197234636841971039621840990944855854098361064227664264411675378297508542822079662877775408605073185262703510448165094559535041991591861185029013787691528446038765994383680029037452551487813529552989285348956175556557194899983302019935840382770768441458650970389149544044187826270227465909673338549172069380446129902766825956705401565069471782270296977059887076295353080290664247322237543292446053420349406115576829707938771932783264906310021353743829545802089216512212470846054863373364906992874090622438924360329449619326787927925355888629741618714916128443338883714877155692507554340842558918995367827594166253059451497852137256010889566379051656530040316460598201898825994912474299788522976524182221378904036953067113590996350968316780228271506353688670357308551382064434118486844273298642226179679407137712932706549745718375600767135561408084798013563933721037830117655655945791744490792526609959003719892963594446145733688524487383921072246168238831237117083459372105479845359120195886355732859551911907460319658256851495845391208754827041271803137437460372184677158681411691365697418559105527621893903372438177375891245499257708702525301731229953666921196373611714376444633193392870369017069461662196297766095171278940117684609050747559471435569454389961473512512381801364197647541771079190087160483202844769157698051121723006360643134162037681224399880624973401586550194285474263254848431728476204796971739587570063215621245492964202319088640879395812531933876690716761978279465977075264722749444424842714040587854395723076817806216166603798038872251649459018729750292223352984496434327665188869761908664101377273500126080212409178281232257250846291258392743590378324706321088275201270190721362394557486013100727019960997950355420011741833672053762207372190594849578499006193690517548183983562898215655513820981212451678549196178638821451397750374261276914988402158610072916896291031235952961218761116166246110580423185789972084877244966157255206526142074131776280251254696559314790367149528027189575342603574180869869986778328668593506684615241835813102704819953242280784607358832989250588941810774255302596538047038644490877772461071949987410242375334487222513385556625094168459287101471540537818254253095213555407484936798471963085387094184308035647591866710059289656306665153875397579514975211582310663731962653920790192622683052654155223172425984614652037322585919026489132189670061444089104223332774330227844383024699885382015542300065332044091058757901573742444758339663087353279075295612180730135794168378248395821974214825833456609333112784853391431528405973667773991431536327902028086046049357890980672675056295399035978602660829962163019948783624630609000322384538597621830398797471798158905647704696467715342140536567664620959274243636646824025909910956926869362319429027387918634107025335261395247671353065077327025990922204924194659375875291259987104615400771407748521671941404400993283897514196727932151720890061893719140541686111090052581842311546910730567644340394270900545285405069460755765915871997304141280062957348197751553071616630671321724094076838163002973844399740012421514103999291959172513913291074424893778828541630051899011998228361398712198556869233368343684309724216934050746566123046511017588081432829668563388633042214963101210802532027808516140684294105967361073614573417037618696778793618794238719802718710723501429518672706162912770610052072486084769213891082044471138456905930234762606532146813068166455631578577183813796798596547960384207088362573591312553746759828344770451358077359299501196608772002408368670199756516831527163723229672851568037782468746527237207051895143959980903446493283105748439478397513880866883192210184898448834731071580539323174912285526505121767994993867166220259665921443156569765696242908590792703005931909641637058788095758805632333382227071798777926373506168912909447792532384943470699152052576781173352934258094820180982695734126232820718798088663527390674633203222344332969214824499134632438127630704827349014158655961751367346768705303440946243613806379093207416157797959678522569864698154962800351205508453938131875991234151605393876186528143646421095946618633766235650357450045144745013833856707839696151399565771431804180799700875280259071452687239270410242058988506820815318011866109999221669159103117659404947403402248628063229437058999802973171909550635638255479355869168020189836650320440377876690348528157243952514697097436555285401278613514157323987504949161330298597688573327841405435168069154488076912704039084751070505582721993730482023587711399711149156855256622455535479332018928929511011505783096865804175555883675256362303450325698419841176707578933469685347260845251247868723732203577380315862483521352077637600812531125853257555421829353371955041569007519431699075001982756256620610888075867057244990816346281943120772768960569558244621828451398809764539302885235523520306980421029346400309011261821246430284114446219819702875552349684547107354029380061518186550556033408337625514575231171209580632644596809436736047918593880651710317482470911993797707971453718053674408428125114016629968069748878433318126038974383954054409886734766320291106448059547934071866627762567682301102051298158464019919638109788405531449130141251726966954305285847025267163247101500909203513170879873401014517277087288248875235074844823370626155254276913263342186628992900299398922027350279945949533978072320533431989112195605258477768835991225681402106773852476162408640205052426441635021866289132709877016601607036409669589185752904567315494893878424652033554726944409899601164961354523146671201974624401113920786987464075753095339991891580667361896600378843529224155566041731981377542844629407824825718325160767164556772983408388721614781612447858559510472112645943308766991739310613083403636317877261871500821303139546456651509281577224072231290686946599269987770704246591547814332360986684519111209471921927679496389119865450276255691800543708116081840155068365198665771342055543785585760353758954342958024808284915854052623214439443414770776654754186427903446671318515292183743790420916038463414119218812948843899141084934407825568766109874082452141819385571165741716231642682055105075269474803335247518594702852225201178446097426151209848464384520442690420741742607108315867711971857084121291193861857382258538551006456112269678480681788584370602290230553062709522078488773015680370831413236395571482538817149353600456278055604488809310727283463656248342558158679907881218500436990241744859816023970813570066611395665801752915042018984542518372450410353781544875428484107726220205792039864151560129888435039543540492216630049050193969764709646036031928832451982836114188214595934597560717441251758387399149842644699724222851338824034138668645046863212667065452663952473765467143906837590326139934206925592956724635840190666055311893005027120765720406679702584930336614790886169812331479282747239129951913072568450340128398707204683709121132767133015439134958739724455578279687513490805869191761663387978938463592513287716863480721257804752516402900342799265512039081464576637556434582947759755425472466883720085529088992310145249824321245478129622045668245166663525496421680491158871435140678752452705646569757363120519769858211032980968166662786085192445984562253797058983988245368057129531951683905810589744498709376649380443936091852250268252381427160923405384353602288714918043066232942636861275977062680671802489226820922275956531970336519105016367853100814798109279917378095545825270749197478969615996807000152754525130857911666028115963965207712233932284816662880058304922486333035707247215325922174260867941031986504785479801942006124718965064162049503873387224043667619299366657164793078591732822300186179255581776771084039397451973220225536039021828886126070504535237362087508939870183360485386900224280977374575108252636875712960027590073711001022822333227345576533335155959391809584049783371501381518979825559414135568240688294622596290636805783940667038775780967278945717929989312162826627247458817476773307785454463620031838699279410236409052407010262549793326687405830202412213823876423340117589531638320247504654508369917272702009361181433155026619634997360734538466635595855866814252045528225857397967997740313494162636091699311511600163207461640442519149890293491472880913513946928503034950368670280625914038827363070081971408977588867121480157983813107890637927425387813547358316930715733886985061888888856743243389965177699850380627867391659753693930917612740959085478839486923340737290425863726548145922934888692709541991683201812092542233972260017868558078044202259013294636202688938931661662217136563211071013399542903846510841067622439570175844334303204835865470276104328015313986363330638715036903608907101868245921391873786940196081970577101946689930751755674797839715053032021328499122601859511507777885941694631343505335383677328316903377694352503545919384715921061111948314415094506962017398592705431449588177979608729813532197531799365694829016758947218907872929447885073096871210274910535099210030828901701426664412559924571064255235040494153824173629429601222351813848608017947134245086406247655016448024746288049322718822710272093451788697225842063169863288792659887849313681002499299034763434942145254594095632183045771610077409726714012581859420640997729348322137173544943317051977768699568929504521050070076205201427052675948535535784780344406216092327625231284953719294660921279805184013775124469912915362260540939341899426692628755873074153339801139996234858342044500123380299465612032752364144322955551758356398552958150749387119028281823444937896855312276700142406926449633484422278713736258273232639638644050930600657853189099126959301269253790973710375508226880510672545167887986442579572077749096516831157431910063848762392261132603274446643744997080819881904428224572544611522615498492313677705210172001082099108904227520098268633572775318804201463245376669218216801834464767507393443195311173030684181494682200035604199688639761457837773783874436438274367132730780782789024978071383595470939759072838483438450277718324868002032369031620018534358881465978133615357791447505164891333047369904081740650934942287860929811695987779912020894376717121690059292509386169683499901247113046474699334385489843805123475039868336818269886016818489805297549862675526249258034526064319032197907229238845784712852327513060082222391302399958251624887073387159842647112463134408857207507626428808349665942555903953953387048084770477915849126832189921035615526980141485193709165770114284816395791625719390101094272203317728889582065833308773574850795201684991221234103866887687018640101564734772344597741246020582871375470269237763717478508853786919934703251060232418049830686301536389294946006807502381666628011687317874508977246372969694026092406772461228250044946926213177737313724232225443077714071083638107592626168290916276174180327745774486840739832257046196206893212624478713607847291407877218886533381171818604641224531824343450690504697313075880152910191590815830220333485948907231052845072891095143163360363997948066038912147805437789335567387783137225385033874640958036466076149971430006374993469155706920114346984875237647310725436060379317626312293125349227059711175696608516281756464358092557495961821623692397509430028617757654881282538808369856501160323870514974330430150532671882034710135008950329723348948570044617053918001034520114444559411656335727363272834689856886858474621741981998855554749092810772964351917914303208158625059858872974199328414907973168466605923386667494375963863542457171317472170600956562275131466039780380537035755640744416244822010970689935194241985280580081524898232753368209582989073223414813736503566446609525473260896215067416774669322014359082431205484456113232756181256315451513554512047285854423535363388704763022248919039601262914633013576674113246584062983515443555443588988817368464084674642363829825927026035163452154904711696517494242826268511733288416047389993458985587007616487250100206587416155944078624796548431813037941065824974950510365168925386935339688584176796825278808919644673181538183439219955242739197166653619232988100623222528722001413895934989742721861682235603766910245244681355071054219188159129423840943351141467603061158094920888005067014633251490252713749152950259628304010547607003736462760310697708400940743203174865006272048334028877205743626087093737768850188068679298995735358348179756995453845318707523929806419694100425289213676284405937495858023319809936085025446106705503589349677388045767234412218464713178118688624045759339330718273751365791525683058135445122075931233554857111531321684904965990843830417139040487608764599011741431041305780806741189475372037080780265213551623620594921393121586247338896741084294119085427031675753176515932706883229390210826976967092353921421979389371907205685901188366558277345450347078601724138664919187041842464673653581240343841365931614291390645718623864213527262646267947345762542558579005005722634054612930071151827333314311968178929581460177262458655719411259494949664537265408848119881077669717031737899981620474212094001317563734709144835417966630188905517884058793544496328117455466446627128848905692907069647672525219802833330522712618491056267037475617019710320293230278546870142926267451717753932782350339097525132369959878353327518329863656935704362869041741709741494217519611873567781136983271341103074693662501032083636825370432502001955923906687877789224830524847043321438193574223660651755795166155500606654943674549241755496392629626869993873473578119147277639869267282057380447630462844985653763114078475323491258247905259323900077171005236005151875699725525996433114520757029211545550205073064034610024567797684755175287952447532361724082297605277564452385362541299238539290221551533124944371463977452428547674639706483179345455333779010360634740242166701245116051656085962074265067131459343151320983351694434478558841825343253880914723081676053568668586316768237066397466174411199961235846851071604681746195605895211801477200382472461409332046779581802849021088546070296959347717553361922443311645054799914158141427333529034410898477183261392295880773188188461994719334488790719243056493975084551054214699551016146505301788988085122278279045005284887047539201818792324507548044216225558847524438055383290689544006604986069242918020434741505983793830012171637009214636038099206160228461156271741670516341539091991600208620968230970920852871077534837331945354187596838750533375396424084250881317735919779001130016388052012739733061768799017926836699277628073289483854113636222373032335371259912777664122094905572818247541527558760674426345737378119341694445379369807191413245051113593445677063094546236400424772133786843451302598258660935297979739791949991773264344957286863702281767328243794231608161409153113339728994438488037014655380291713502786783171708038162003562576752606983465380994187427304423913797131199167035605493261338652663729255007201001363488792600537788546870536143876682258782177930713829825983768894622504106421066294150667387637832953572530482968169654678775935700995195405021137503254754012720507962936691039817283353659351624929830680600302349227980608963828817863299007687906160425971474136430657782080960498885643458368275577013864705765009855663457741291118837171162546731817028221515361987196615329682392688732972398391836012318269162075586680172892025479471366471099018819449791815916259146454425765466764375601621893204094250582989991628974805787370216649069894780878390337384690276109832828414554898525138825993701295547546125480808612156578910081810535917316387204553981723001120913110730199080321707913169467208547312927236729684680234664205916924355678432287852447569156336875793319497790234608543522617920683895899571280494510781434698206260248509173177538639484925124165318887802980001243465919522905726434702720506372869301382371160504183529846428400754343244914326129144270424655933784337640967372148490093315124719660366830477211832844260326694832464703978342379804729702647223963557067989429767989455679218100444860500004362683307989972859633579902847847516125805577143484221830865665195644799029449059007180447462053087953740017664903807362410607268125443029477539484228012219602461760970365721990161671285464668436874827257618006373914330985923988636179524758446637684398394627141665625713855417316246335854724666482017023833628962362582526772646638349967244709296323907207505234219272918997566962834494771896135265378081702398278276176004477532431101550037294316110933357874570944279857134700395008930279167526376432311771830087293143931887573444693628739843232782226516966246226781577513483335314384160368906858532203304071439739015043902923425031707784641327151587702062001699378881864000352602130748994217170283390764692613751952330310070563450490448194522378064768268490945795105600157145322787047174524497478359876519406372320753823278407144131197920368370257732870845046307318868314653667847416595616683919537479025860825788998377359078126981346845847164205516038238598131939479042136458080838749275059359099124733947490573330700442798813680485818641200282132114959228587280504717937849391284449983144423860971393234934018019452570573740339736523330592793101179207461814910756461823462530346085695507021860544908683512061747178777062109107104060494241091232560825818657509726447190830706531597932461643322254469909891586341792830055339322838552254424492966570751286900312792852280735889826689503302380706123203877665289586245185171648390396803361930071752052723454650785797120411367455892129817375165286073037373368086263704873714861155190671354511712463088754796533944015219256082891741280857263621799978598848892942797630569311481759481768368921929006522165681236088205846716455518590108925860593312325327271907795399320740740788034201516930101144267000709221431088873485125170320383456932819669749580500574736739443289202932617541583587865401963396071314125956801867439565418229115359838481204237145603369023438007914801852354409827391107537697833107118334803101013826660491007392428280954903157646012543981689949552080235664036530649818908847889999092859781456503614358551298237497069281559574204262029911061999461042786673829881586326384784190313076805245717877664507896594690445553346981177730980249158326743278061880250721190848017673671776682190128033031979949190973657597405786058720383797418411209308606542108061825319609060392727175509763139516270439174322591371453861751521534441372978115916799503994429483706099289417776651373128959344677903909979583873601980510156069274950937062728931397781348217407391565938489787809091391385532246080533919147963152314009371609257697884624634397938977972389830353006929375244357392015137444356309653172706001843993613934238613236914525373069330592145704543738882782956312747166797006242806800106878668009332949593813815176889886032215113920314820256220250770398149253371199014852755964858000824718221352646738513651561380421754995310614921870869972505023055722584263539242487188664954107591218071323150542022505626059299362118246971020709129410103165721907186314333359858866278314589079221946919468776160009959148986092061573277697039552866719903253800896839554047052635042328328702011657606424104872167884416711282281625512521358053168461876221889437631888154249211354828662302359262241085890587481322737725236296996716969578143930416634754756501423904856369704679997854103562492319457625674144068757654578254696719599298392297603052547933219295874191162993142509550388420200035364431774283053319206748584603007463529445318919746823102084503408790619422667883163116042783453233758986340885587369694884566199269959939762804670283574009768325133354126747387107010209604489151525990706627776849524231427829931616305042184818675276712660524162012032891893821624067952690346977236419860039544757798294134809500574527825876183568663534537327454726116688423245202169544333440467344768605234001278329166172012779847735350823627920373009094244437306900468722200952722810298029197011747454842414350959610783005693832542662161453241435399941890576647686804396809740636343845746493221274971045466728187827930307208923657581793748697880038622725072241215070502928773220473733070421661229361745666027654960769671905721775596498767514017291804122432501239470191037007520750843268086325841830472065161358829142408456018066374936608905183789126776731160275598551089685776041269340158491758327474884630238587350783703671076590128654415058952535470015035168220771692316107826509421524310737383136941073044713916681237401532679594584624127351303580832023658460383540294879129379170699804623008759092755567970507719338836583497582990701095843892969004282170949742000152448790493865671764214415770643542980949160315573005154357318931926680299974252756303899884848617030435738180187202112459823437372239007676018322828921729336885848423635348587145143387455126584930009591093663038467297404876749627263056550145033215109066228539634535354745987693746103367518084255606520298351206599571498287800735164820656017695683301043261283548924809491909059841994139209712727004180365436659790280791813673249094655124105680421459271808967271762075096653401317897303486067437387821946572647999631408950905891422580763786581744280347589219004241420574034356463671422896246061645064471793778180232330843041278894302637408948203440719578803725150595300841262397473275468991609761612088604019962638914945323574067467004738571328501995773274724213803997907068372390633299315493802764209374696247588097512597127427556510663783696358953718968343041041430902250625475827689055792073219613014567502869713322738701005272048223158798728082958904829186101524174174053721012901731510499142931751808718937246096281047858461001255867256959883840270237454749276714427380854943985683105966498327212024238351074278737968688378895307024277169511721625096728897997468828442025566422401419172250426389753190002802284380113579018317685001491469066992484376161839232631660525462245630137920332027030054785308451127487281535574543281155466480264831029209054905301001733713207800383544664187502486407909044676307088613602986716711921958290226316912960227122308550256569794893222224416908705468146687275495637178789369225167751196342395025226695293917285167602724455899803808371394501446064037109424450503694071974026014081704879149520640511329009848787504193448006090560908027009078847437131851620139695293146497839734616322930903392016814452174195944990457155036812979917231069341719667122244971536731659697622374543445247188133343663455084116581636621429856013139663396744180537909335382749759874526114009136835699930664606303833798285946061230077379686182508096385117095147878222207566312949415646470468791516480384026037657509039056236935117329255480074379831049441108594288863541050273615690536742059883989245362298382103174772347313797397149447063673152435551218941802761951721125141033776967628574490002340604124776590974746960708169763218554829354761790776113039465566748320691053543427332207638356702182024798166611379253226842821605419867260032962996828603405378965659342782372732140633279246647455855929757020921434983002012144436924818091401400045593779002283392651367866721250227003692132066032992615585800434327487601252367027388585005135751417400363826974480821320240358149166721413102674808150726075734881375213541304671930427928138127478396504391505030731095592354947724096690274789200426407533142790909697676979232554184395844679374448638880887664050354374794146435375310703450801871821673096221589934206312899524766747739458648297577099601218218817666685685688063557077310396626919777071487436532504432514064773937232264108225081132128424048591345510731757498275990067458432147826298221037141741847855527666476285483758187179442335829233875677404599180072881572997182560512308276972407370560645305410743788893810416172807615251528990413509584035321709015381251229603403627578606493231215184041456983482199450498429552228687459995147198782996235299863623529376158381389174648223265712144186956536564326843274794251099959181545130076423167855266212092029840767775895607658862715027837094772177436123651811103125773151210659717452608136553388279341467229031325321392600184008875214404823191782694559721388162728100907995755591128446942184914151839935390054845187925049791286472540718949990251734733561539054028321837694632058632489748424817799971161332212658066798050654276239325657214791823275043693222886273633680584434008144819868810897279092574808640810621270919784491455099328865254419034638488950666529896584463736168181740216958847047093602239257620902183025237261665542469813707575675361210719678075843594534241640236221052432937036676997761650741525436824635338208401950418849676542350456779442919944753462636902732992038142223396502123133859169937983813462619942941602442278239743409617178109230600112224932440769971356876054488880571843940752308842439052492795812054048823465490886593328697134579246981948531379295806782472632938305891233211025955510204892117733036207966808377345458845351926033660797921309458434254169784654121185118643846911870644830877806599515883919046504949120996386259339781420157063037913153402681617475400031514206986122321021599800562529789383701947296266694985498258711465238889973081255351417076076177093987800966517968932990130827151977018440075114100326267438766919007478901537637928056743515159020978357849688091598675186843640737893458282416970635683064096316345276380161168011036514251450866696532271184615677416923420133583413826872547728490444101437909462671832187925815991791918338533189545339652361470818543378093202804075866430901422838837498395723638283364882295680867717299211652728201850304443167987637905510426028404379780118767792419351356836538891950311738772880879772621394737811384343665752376948625823647373253818349121568127607767006974530434286551072939879538552392009862925448416445312826650304678205325194020667027711781229713465483324986094301166859394182925792268680485812659499540556234718723943880691434700159199745347326070426153670523723436958523827411377225867498591844554047473074851413170618477246005841878940048762735114963276400632044408057479865852921096261732829699199707908197149813403969823527077329536256965725755726481928840776136012841588314889781736170840030180886989372198508079075399438514094632728431432000259320719670060147822558186331295199348205151032933372398352451985478596976672583070214603803294349230005343026008953456108258968019543774541122499481934675523306982681334752507414909629212357856573181480984497831338070294175982586707352030721945491814517469183123463757766651318770473127371863844317944894314318228488741936001321860315935424255224006167123837192330380859620454775333603390804455858859459974755546763406970258236766493029922130689209173929778845454114251776001204654112505709852573976681300870053466797702132910310029476471249319723349112567393537871055548170773050634840435656752861207269748183848033601537739111145163518086289926664775881068721106353405875603344038959757246212532089858575229438421027234889385640078059737161071026719513516845559333853040075926026698785461642778856375950687085243955660638557398777836213917505591577970994026447347944830391449953014406442801923800974960624723465699565417960857379617297851767313933347954029189356449576734483341764459337856706574295966501054191516442398330286713686059092241162094639724110868148563515317711533276149082790487347891056907389368807024289766396747433590006062857747502583294467378104416322823299689112602505120945554477100721631161640309182059486373146960862008615391970135958152326477002302198567791890857205099914218327363120749590442565381018232572980890229685681297539380510269757695398456603663805822624886668594703765718982939041434453201277393477870125645215404862397116625945636904606677777694596654889576330450876694284287500319114795154147962160557839712414687562989025286130132252562677125662008050208385371525410346144234662406808670182399596615739845877108504987348657272359030513514220578978100044983040214733199660325367916919271479177431001134548416504718323220297868040509836927687452386895720512143643113961565287695446375146342813456116591598565657426912929841338309345310102813662869024781771350135038221806529034257344147173159598868815772192179875342467603982376357980616998816846888127587806634886942089495112693794654487743392908136083131785942737590526547277263517907004160557622720291234352229957683178579720917849075867291021356127943644319603967009219715421886997215615955929870073679451279517370454575727121552078739080670613011101156391796186986345477601800781850087904461823331016453463853843992655515287671638715520455217036906774323033847359453087268721598643045969549685298140441934009866486831908320764125598262272776565991468484760148372755586155408756174627107504963479631801134235984977478626554916151035910272357242094399778955998836725952970985462114819516529566574145767103347671642790286299579864264043363984695213499216963943944185375632529216953973224403694996836243339288098802394137574470144966645729282133320127950780792790479430028192908602248879835160980421075905797741516587455337224557870852103883644546958072192666892923385050531379537175486226825429694172800431314677285770781222220894401543169938457356016844397492917636846996256508019567277974986949258605180767610567642769080796923730446880615253914682044506477454418699611634227700838950825518154729125814915070238921214655175111713334288671783509599002832030378623910814806211039745424814558725406020376374349748646493995546701935843835897588884737546139496600857619046713489541104086407791027677996764762635376768429868717789446667001141504673365855588565590976689016013535969140506103735840066672252823684179513412082732743103853108231489005146237605632947167412961789035169830056645712503746704768658012902800125777535237887791813294090255321418808803105484404692755936500727477982198047888987032004311524669926413948062635177268932109887939840358065172616407250874075087436992504176810109558490912876700388842623864687220549482803493129510688494653004007891715583682895936775408902394389001760242439966279978270996945518042083207236667733453285085509370269877131928606750158397032863642489529046752427415822340386293323529340354446168500243955412343386597075328507881139251140718053386155390252020497703125101108676206164044310780618812334276783636842136088347501844781660216908444222780358019964869590961811627825909212179351042237285802540986885531650628694827842841973607895981148485173703128508674107927299335032010849226883337984125303424261021261569044045520530886505306925283523985472628921225162792770995805752094612064117798318698359763178996427390089905808595350354230810491329916438371520823725896964374919373747652793313145310668060591360644112013067990295044846042085107513874349200254659075942116962523049034780519290272688419010074619484186981753123854806118797829266333576119959600769764962494071157667453649082746855603321711458269152060399401709067334050303415091980230916400833643917806527117093617170287018192250355410141837466656043892678343695044513919920836157402350570517190122729769546065243000724153549481445946846479527200898629553864384524677250552398837774214401448304720250321305215037221371757682822192056122813287508672752088732991280016319425290857331847913256430038173171222455461278899747323682568210257532014446393779326013121162350554504262452659432542809633716676200603804871040252728327286228188853972222957047883252121736653360703365531138509766054525178390983923776717860929610277596647647131026514700493208876129631772449057312860275465634003500073967395120629806738645387828536379144772642088476843537111777404631456140930069134652209996410502756408791717973734357016944905519856747916925195190719605588071483592897423142287736179151969057391531222482309589601715514363305927337265301199630030407060708986814923894275755881244836594736947434652710250724502925250565037966974323119856252809891268157409067947369946686934209697363580033792017834415576354147620849661381998837307021152881534535077333070678550051440552319810583374597312746320911217779286311189307811348141906772008673034148525267988400890537592837177012782988660919895553108239713219422151000731778192985011115047983752139190616409918856154264536124883958270786551494499694611270419943865317965750569886562660783798967964734096504653887173031949038100674078987902464576789333028799311762839343892090433927051956426854703564328962657694771097219239760639967034507550679812335371521085536239976032699622351562323136456561317794133917284920273688567502822612043115715861629867655903005280691453729886935466510148646245988806591291640065273744935870266067470269497881545041504662526566734820720781567612492814261200315489311170824849868470753503306577716667278079492943736797733362690188213720963359301978737429895085181290847550578511247133647719199771208022937365327303390731415129292705870118555941009286305293107824956332836466182180727155254719217153511348804296482248209693788525613962363999121300133753389014160454806691883389961781947606527351125880078892046591545303120064563693212146792936405798943353289722788737690093604171618679297147553671344736416922224197260052491943660647644892324586039672297026493072607051708980516646736559244161031962638456500103981336854742683506145280251983365819726642839350788027756310721169687751789852991925510466580278060933252297086730480204254263809315909678134163459442757136960340817436601788911202879456078930535802441901184038894896717059460219175940908780919087144927128007666573972052614036656118425686203105128670959784546467706381793248151532935756643778628090158443442772403403293789325012488488050687802450187245126338850272464170995319045721245591233720332849586698477518818953262300119765597147849314039785121323566282115787451485698674889838554694839378631890815160385536879813614630544219619284788541176070728995979573726398637848348424627323703007593829667518906391926543651569358499325414907223635007336882179062173398790685580555497449144371697844484450332136023054829619808008682541338065233963674221805753385051635388007924315760904034441641994293389548994191599447461270579432573564613810477151674002241348319611947161763394013560749863876042170617468245288569893194894976831959282966031707691995518368472899942275444087699217787404792584591097585311620800063923886836984658186537136285584234725155977559360451084363611457417580690952501483225987797269499379381216462650592948340279213863238105557304862941128918040510417416629956444759219018303857400019559447765076118410504135273098067371984132903341792182246946755544775450474005117102288347682944048152893507620823074863640027445878666402477614159665796145073783235420304918398857954454078729931039844887496180619365338465364388710855218666572552592558563033409535623708029534341070565538761853987988118466232682260214428081484900722579894106565715419682972621430377234204749163691606294493307917460831676205646684803051192366870813376534008369822168685784144794803845677082636836864835043165082590169609822348962640673267551032295100750879037096254731873386279391397656764475760232210979491295142271405155700865188304438887693875593488402734412356463048616567865907633846319419782130955853504303110057927571755293107718092837541573789202976192700282723816726839930366972068292312034967726867224647728824014308348939115769247391442524572594730853812741230363654513489134753550878118177973499468218016685274110986119787634833491919018619047467757925240656299984224313131750893847069301823195822587337362349568888271598563178109786276820725585097203786138058492960264804491576800425460395787675341919123970357623179239011396693917337383109911184232219779329681449476690346755952334908171791147164897783903481981147249230710707214745412693065905881771673302237701189011683841497404416051182787089869937268451406451040811659818037552214592016567105175930267704816813226737715027542430025215668251444475062556003580991333340886192978888505603143800617131855970425773829991228432312219789401164418065770626563360830447990196989002676229850122355851058576045931927046589873180076042386296584713926672461182008680367997357836403930133498779623639641809842846985998778955571666813020019712632695794891379983158619385111002510475671889046055138575140057832639518261031524264311888416055924166558232219391352772097054049501230944388460049698892860262294841255890010124846916730344304929632664387150629792617538416792572522780430038473136590176057000273056992265659727242462442235022207634187580875652020735091143783031716079592612998860379692609823579787355149801230220417543723146234099387405336522477984775523685202282979221738885785013661578652461383291965971720403455998377601657102241622141234105006097417223167571340863374653165451474817465634294708603657123894706903470920220579850282910328580398981138335080297855725951728942483103390639157058898621654353520893340951054775351044623898863108847031016204768729704132746421336674149540011375562904176850952491347974620205932852236721523441319760209907025713138539051073202201746227238903896426668331008549483706502829280896882438198187499595279225135591210474300051400154892284166376816833919155265779015275546332936016930994526803203291211193008576947892180083725065676537328464256852597817981736522921279504536046583712120995946334950461574209134009832525585536982392588592126715490820352907092514110875547253365499889838530909779064862504232193067418589961789379827189703750626141143286908265112756122619433189191241495937285733555777289710274895973194800620037042292041760700568989853104233888111787627374820965305929329058933056689289140989548070847342555381321335801970538973423884913999641810812308778446790971645027428519509313495748163765022054710267954705341611641768720831353886100003802474574358041078190901677873778890522539627359685281164148595213281005104247536851488196249018991221308712633831656241901313090546638344607311988127777596063273414936973737102018486116014933691212462738675236177992105479442936326245443046641728476359446622650370598295472120268066282705571141512778250141511258409198989651753752700722603668127040316633415137915397938246558812300486523307635843135776114782319685465180749123913539383306940399700371714230563052397243028410551605820498861655476978463982428362460103361989110737705896779406648221808188575102855481491325308677223573076835893160832199984013355787200429234819132831065712970190936449848702899525820442597182259476459104432503331300788777171510376621631159200429820996768088435658969553911514407075455947974692635181079689665458430042608037917902085116718407349732727706372428595358591699163664185894091759623972540519607926734061181857740402161023288515410003466786180552519123416628915008961808554032208568065421321084202270801611603180719750608717129042969907495531588257166877711190686873848592875130706270629292888104794379620673146156562986308096547487680125320779305475993628534799428938873228298321719973750690919998480039984222341180780330430899788977150747913222925678804000788418773683453169966271490530266779361386425113441676974569919527547848626352263689553579187286572427891807631329766725940003728511540237754091169242073511037926949721664815089398870116397558076217832679411992510062755297410576676441668817073074722793096025492096527348807955650296483033464177253218624575934904529324162650064324887487990461778248437305866692062842047005474365737914115418036540342269654027266448845903577289322272329214611719822339056096850018470925480543669650360029998053986166704827009898122661801753234610911975233299258370414808188735293547240984293991291301697849030148707761079188626688474127334515119970964497183603114069664028627445862810730262091021843289764826063437574639390031926447735577231976811265350953558847973386683143164614414542260002198738023991215292760331051720997579532296253924486516246175602756354546563782594082279321280116493712087227681399367830842138387010539565587939632980448822325180395170737360879950432406432233686252792002935600034264887604707334888247506836450600156449749652669439839857949220957389420226788820406048417112750281966528552490707053618516163053982355013031969636828207921170432097262501097975864854533891065949336630019453406864634236160202722551502174616062270177005075572109941379610433346645656627972474733195288441176625810842471830642792582106995087635391856470206521133307739178118190579634217648101222435960480054101699523840705593233007949740415549713422041641651508159316216441966755958913187629663768433604091563616057462562745807091788832355052840386693562099722604249077565604553748740389020618260300806291149029102562578616572356004042892788762358019631674550453149254657527225573925901805924209756833051298225703110893626794889163874977422815254523629272679796861040876681051774016012311669907554040654608891892903911725189909673034579739555468123731456807231542048754559601932440014587271774295649682581253503576774561708873666424712054831733653734754176225249268246733945710818605514845132278514272531643163730033909751715348616761302230963066053531445153138448746876643887860128934284964798344030407311252204558233560292934584592667476941518202301353490814884405037754943070017845982349890649167980486327270718715462824343304867067809926790526554380697538319857876717455331761086479451489295710211439889377174453392251407341946533162786674798418006671560792818899467835624946830056642821479649823401509567363645514910816745167540919894204723309814726090301432554564393344788369713205230273808217086579609125804954292419876928848289537144369089421016780957251040178370326040556252466355477479567235487113134474530708930106948055016151390432333035612342133401857535531897980547423204093141013976758254715400024617855585040185870108891567912342451231483478071275327422649056964877478573235275363145171926993361163165460190947441245755297330613352166698443569575057756464039195605102630317881590860010022914228839157825368251418041620680481378962356587916738930481085263226015618782731678141122799558975354292928243124125096198392021087668381958386791456013781872138431181596863963434313915738308724919038918133387194971705685565203032434665923128825044778738975648842302495168396584533120453058255721725817900194464343317688324674836811161945424625206084979594484237523825001777832817914537702513471571313751349212638303226068214002621630749498013042675332455524407752029586857136786102454031125349921666890797142462163937769172664581007336765772644834224949700234520999753041844999921144544519013589489525747467957225743256168241578743348422564741432195252083210560225972481202752792169968871679222010212753770094958548711981466847596642538565452183566848373279189150126116340001336025622579071754823197639580711831653436930275121312313306830904651635689380052467073146293496123181200495882310139583807272189557904277846917692714569337984718262716165936816769227646786755880885096998173720462081646821105920344751135843992858880653657236489788390631390105302221959244818623356740433215127547907945603087847783070158284686953643429331018192926797352344827232997283462160561291299001583046555947218061768583406331551779123268540805246653418894129254149428937199255593511820597191416077994769237764295350251526281101554783395818702601679706411595730153709426419150386073538938410495381645255579980434895494432655054719783022432239722024570944889883589119654461897852579150753781163006582076129776811163878389606701814751917981356036921714015948817721007796197374530175741246456880961159886209449761592415533097535076162289116879951377974437589306857931746078607825710942695497372558536727936034398112774279302342352706685745287496911435053864806477867053507246865954981053412693454307269031029420312899769260570545683688844356364194095158217941349252297794732519764578617385838762885188125237209118959368524874018462746011546911863878897443335942679054676059464394675931324274510993093618356818336979639649978971080357212941221758992868865896307813904939959916494915505518319201724367855183947541897945861544826676304355317641500623247934146078435991567474442328103852628104257154058405348070341740991771657019926425831826453822757167302326012639336517764653916130585207061233336864977932212836632799854432675585547172661216870944587062299179924278409492511915438837360744957926110028085475174641151429565170216908127513805752797406906995394801432911008742559800413713686944755588398940157069924549046122724614555758588385104340283580374882450026153095421860470689895331917726327915559964077910958952766395597695618910899122510595699635011333855848444615647344900758566662321825216305107863858866398140283871308503958078908574263615624605830261766601401874075303751310790260944078558554825720328643822218767148938554350988481177174029798560273724626799261248149565478072715046977674812879481964209385336640844772503337561794747280620611978194247541513510629575167981572225296195286514818050255404178207142668729260973466497434689914889846495701838327200987866578121472898184374359306490877864172128985360329238357571863134321005421442431893197087862663281837545431624358557107500410219951343822748224030435880406866408720021836808740382387912965142840364727558985868677314626090261791121934677626151320567011181998114277288089018591412636680888135841242469202824843225991088532201271248242634966647703091856052556389124023887905941234471838546909449346830366561075228719124276813973066583360574074510855350825828657142872144278078775650143889115400000697969464440865488095463465996978646782166234108691902901145063923313625494576542571022322735494736889480317969258904003989369279344161600063337626345880579346562962071169272677024089005430985949774277083310259710734597536788224996148608356077183170812605690701473240989742944874997611147184676335296677489209104225410734574975440278451416326100081954686605890172531420723897657635482102072125994737946994642392663059319416272448511717549070859760558348355319772674473524356034843022396440727031802279123771704767008430310237642179071932590977585466514393915628825443001959639235339360874008224920082043595082478578961527039775614609456783080937032784750508345819663743275272271831746932685275716180654452268625379237738341770458073557988156567334370710832851846552328390552241616419695337538632569628250717613333555437372972223459649645032453001065003592250999015595412700741125246958244899349530632483574060871428196639572628938574428571540973664104929991492706341626960906895315192458951382952590605406483582697306527282509112627745171749972662523555470002213383806982538037671612659992642368345617082289108399776601428678081823848859364295704950735628170944857848968608612910636298515445553849063134601415865703539061123190579723472227795470626949043614040160201069626500761548265404990336433681992385310858112958351632376909573057826388649529547773179937267223855133766701621565964103950662742479691142941370533839559695871466232656998262271086587151072981376462222529937398421190392655688232504279696943063356334627867286461218180615815512092244270652159417701916553921108508002583506981742738073765790404242662709924064126508029452249314209824951197201763732141388967673324329347085849889385854870022350423873863469771135958123928729911280446891933462561841544570675183625362790012079594687249006004472641120047661438480016176461176087895941620593193230119620393499905621065642418842125100139397679826079334619286516176278506724102783297361463533990049252914912571541345726104604632657030647178306818672656529313506096491738991095656123639753944376327256078823461939908685242155803518900266726947877443392580131989343148758165535249475071446857905922920442356938877433285225562009777400736872492198897720143535170417327544695763575944339581960157692577960581587489552818297708094049383152425498655778046264551439614185833572782382051693884481382005889278505626284166690204304584394842912099848548668806349569616442691110637687258375882819469333140150999210326635847439966686283807037599899932909133425301661660917626040513685185652834724896990263108232545094803051435789748822138131579413133298509399050673610975916564997273456955405630314419395420726072413980749074252018702909017321088904144222767641942881013740340147532308977173058489259706738265423522942587039710501383214054225889208324068293773152038401515034831944510552307358077228570257902615212896387944715911535808701258352502037439737373966694730276679644501038348303481081673899668902668889946430098822235550229992967578684383975139587892429752729345967543088599761135785513697346299389883292398705968228586268503036548205248977351340252962085073308065873492931296151384617883612559259446387844898404423772916843621765393052634882605752349888738440527619406420846769335820065499418860821317893242466387019668290166571853026564202288399442024508271376077167032933717071032240091155513469500571477828995351894200337374916405107938852203286942560641842927368674055714453467239852760170135702310719906421906317289501412819598140803959825043132139314753155924812466743233452006418725835703193477022181824460929788318252439721280599722682793082556753546117813515609842265617746474934107800174199823900518201078375897505377333781313927824578054562227955137555603384821201894796481802283983669435235585697850203499824487824163368047922831489335272651827081077297929556741441130920202626673801557752260367319927202551543441255727333958833885383162988159742431280702440852333205625930109551504628549865699661176855973296256098952057614814751044206645561327235682038596329461913629625433819725619186705754015400823822052937492778063946544541331880818450970427374484905139150956566424209473032143748055667667139984781324615074418394485315727235894317610802564338355371251222504391033022935182534102852534992328855142844896161027477814836711320034223229168299438207703907377973198754008155141172958317417882110574442878117286100941286874391398709228175244598833303892459871507192054367565893977974232188597825228764757974610400757050181747769211186958594138540513195289427771520973906249035242787336867551802383458722226137403405108489399397528104240475515531227450047671287205475775010813893723469504647209887463830014247083929825786114743790396717165426641092629435547020094916346542125306949527560431252201893978611825885723569936825911527326227862712452633938272038208784658242662207308556670066333037996241182666136235406855726725336365690872988857983769813174465867857366638915661388805584773460525313202892913811047391704443612455708714297234614975990138628399653678058270250219777076637140151322049876165913245596181054868724841789152151296208825244147782516031496043780691854164009518543741335354198667982374275010264671337205885140368097037407513342739105207160443773589089317374440757496886885580595115416339756997562699676954134968965871405429420020495246732855199858456812711325075489356833429693316922195417470038311230389274240739971435061805407118538592399903026287408574523791478176401640570161945645032523639494222282792922345090808846240682430509934814950488705665979595278013890934809236514303347153546737375831319574011922396364237627507572693413913983991459788521033457582175368629952546778270797961447750193525887326069405323161899449899164852871208595911297783528055419876552954780955206407813014617698490407624286148520212968595125351774014675577091126138566987867746245667361695839434108498798222176437919462257295717248059662680908243787393752148353892470847784971383132153587607347539164414891927907182471728059759095185643847205651851162021348373687875338640079241946483374267576685184732842173673186622045376805052470478128286894130114805439391394774833651569167858506016383563998502476441009718153702019721500451193957763772515284969375985017317882402515024928599843819052956928290166983708418912207029067266157030276540234572824911111293466890326913806809795008139610967173893946079957718130933100906094698475762416570148779423371241510010491305466233482657835084628906677592530604202085865935038258098902728017156982259768071122361173114770585725498802534332873259750391471730118949824379104029280850846815155888226993499258294205943649711313844723173145669001832925870282568997272900946821684084233663894546948974566706924249016862348643591906177860152270001650142167858223025711486253975366876872944798009106990625592374648932240613093067639192204654226321071030717550742806604560099651122700517487737665933887918509387296139451279283266131007401518564724727901300485810861806253407458196938967938590048685372649624562060666889751955600761936027882610269272462865109918742070703652084864835025030447095557094266201004902123207442234511861428286020317142341573201334757402175169579199933840401876432286748120574142299135539856920738663460291250550827866235592657679071501806903272364731716902070713497132828455716745131014572123116739115251540307813972720686148165760984083470035302839618499966769976284206285135968301699633256228606346971905341656214019354299898374387654305994353866578737347559539325532604055947281958186811442904653990178774342536770905930031718159772056796738165367910596576630618303492214884455244873246446504502376341766513761043339205902955972878609441400709618771954958578363382342998963110214894696935089994675983758336551964185949817438876620637932363427979683764531479246187628187339351836908695433241414103208852338090030314858767494675670871382253234351684466051911979166683637999066952356813321779217778800775437484131864013104845353366288629151687283220931790257626043245684679248110254577804695764111641277175566023315996680839610395670285208277414499574659999621562154219180164858898881242954011449307395726676619762141487491221723404898407074385294296621414627035040959190587851411672373628877484722641724372867509234116720706614851168362054162008870218206759952841978240963889802720255160132781478843188008594362675437676294240548508301964276123753237648347659668814425318625917555673186588246843664968195078947135727175295663131243536290534476225485321393420585591333641096278560922616311066571072546661802278064356543773131548379645266874630803548315070815009484279087752937364184580744452981123555086299640587764548552512267377295171347713962981134928473838798613351489210063340473161840186128377978627458831605983130930414407317560851597831019485897427305261851073251370828719329018957484754037180672643137622762282280950972773776526925684507376705531233150980851211887434102565087667725446805650988653259667410264246140766079057015379270284088870142013427012658871938523102380062849737093003287443008455118949915149425467261124759615118675022852032053627094767275999453894699461601321542412714672089732499006698196200567414494147561247989227950168728318724427767844989728719525449225703032257213520860849103687752497648368885852183821222585923204154898610750779281646121157290449836512722860779835125615242220087240957770099161792992631307226242990569548035188895031874954868062126048176542702726941617776771506193686532761398265130077453704538812096888073631927831094772647559651671624759771534266228860062282564439930008646990393532968028104247982219100285328251656283037328375539354020801646992490406195776995218769720425617536611644758287315918176569149577736252938405676805990685346852930061950132422533869373886412031769214011090084882345904379054792030869872404142446982597254402046087747694765252776475730883720237243362144034535145508427000426122411821819588919481010578892762943752443644864584706711589431193005518967901787272786679210933739482072591346123281343750277636304595118282564831833489783034661091151264616275338062277635434736153264834263517851518869554677140923286007309924833591879455541848623262339975067958019046148547167583052485484305197537680692352214346032190193201227659926443651741027109194987991033756695607485617360216131872979449633581063949498425211269048883284802340375343662539024167596545364803216319354826367922069259410587415090704371304014703833561047081628188202586657900284620462307635935158093065062690190386746194976040030771211435927236648280449031572458071473816317136296552313704138972651686410951532193711746819290566257276459159670696641859007245814870634825698043606469959248369125363656489195765695190841794787081270671839809412673777909302326501601131424095980739581741428259450688319885399652854581973053113157090294420973866330934511022304582795186655281796107304812789573947812370495702703939965639635089000131961843089377280180872100599316086395035565504448623784103266947082198822509107223022543946143864585439887870686404996770087871800908101183681206279411411774173683753092874304751694476672764293635607428093653659840584204806872686967128259557618774455413443156805977137561788240530676313394578802306756734801423204381482922693114735970038448378634706085844133561792320763741162438493086916343952138983892035461694199631206714430485275327495008708309164377130560931114200726902913251252076964869094910710051477286382149371624643427594447982105638001959820917461393236441838524460641189348801746307501165674609083590413803561438249972232976079552482669164061539385156730895677353817340589211558013385643144409325532333896347263509921494155208168886658529570480395651106922470165581623479170229946877967760949423122486339894168845716905968174381893947707953449466858770037076019977424274118730194116396239947353650519135508600216325383917878172668801529430490044829864639106564474120961172184610672527075266031518009972782197077751257388972323055285509691701544854595543065276399227389279743192365014030499160796524761869184162077501426100696815967501356966001666195905078676065674993162202108751846851170115100795315138115504059806556609785116969623452726638599975859347979258446960916609100325573502501131558117678010986708294370539018120221074800538273531699424559503859197069949953407846561208960719729816303620018550521096239624707923925687791840787652907739150581862565278023812502803183591661454375330201154550147578194131046341556390108594069402232486547112631117468077610853749748869963501624753864996711098966591506644967293683106982223650409792218046350446760366914449011337871739120097370174405318559454946980196237036980041418684480622529731301492260678954137022092282181009982155851200502434322423523126395465800522928831040623673062268590640164532718917958677353740385852859827984427430329048960638778062688847249318422200556639422561371900850914871015280834485087855039306440547015580091237016076669591642479896362074806919891869364756587033362666766917375134721819693785909473536600486851317185068301869773654261830077325164792908001951737666959953850791172679995882381245821621944654540858293992345174168804360294989699282485412800591642406543932497857352294227566118772851585357855686362595605775383648634004225719538934140367856546555017072099072609308082540494844820584221298815353896023933165490046203102527147740322537108206196523324748380550655918021408894352212893427472820877102575674597093176905040559183110500921776474469422249541462966323892980171795896527231163170797347965033590562148399299677610321474357506763206869281737222096840826118213270794798662409471610315228579091193267533713014262189816043520683299924007287370803244036688567101819907668393812385814678929890720325632841341882800000412922973147093203148952289849595615693040256449225374399529822900822059272321711601413563238626763124029507314650083338752232023148018783724887881730699159571012595344067559625523637361435517691052461181340846150141645815973847928712141345927621871473582700147208946347492487053965427505238940133898991310649585848067738220782362982432728017235984247766231915777102580563513779187055947557083316419415488435968604218252844452161627953924820716310675478312882440255975075433637520453999549584319442047070503316954404006585442044047751314551968827524293549705578971142732151633470985586426859814742038139490778294199353227595546439744609843415657372114771035651264805595577024503779180046561484652544732992437451354407988302478729303943956727937517410884374666706411262054701956663753300281776269950565443266223260937942065728030780592454560375317804839593213062517599045780512005058460314992159986083222610057853235295369157612972841266058340765751489139262040720803644237911389111313354824127631761423029034020464588848073192820768351636082814745089464964458086976858462021906817354351240590352608454268089088957005121609642992142365083594046165009434301795566232301969525863265791990588868828937293578009177398034458170727551353759968764024590482868783381774768961538870025864756954210307127254557949280208312438959688544224391144496601364517505358308024830171533011371762802242106136472510893426972297437230107325344652785617415695871721230112967614126812153569362310596504877814158536592227048371925288246850018289206393875293865089430905385087031779615922288011048118388351734811500396291048104011508476811826001176197623551913841986497748046913307717764952454438470136131159762537176216492022336570771460602084298536416534676062129138153837012122044132097720220386612773635981860773387834442481231824860873254470663974201830963884675716250707520748541078121163845004850164872658113668710025215949989205330439785001226511221915810253630337614913585397942078320211500743011572216839522824863602861695192833223375960790082563674385900619608803194966100464090802732214291319165875472679325462054962831355278184590668185550723845289754727269568712247806102242155555117063164947438640979011465284272633755572455274522482022544059945226351066696427243908061566387480944507452977696374121496663242642206240958834379975365492993379632220871154349512552433175050626446840063653763242652573643336352289838354424164906761683915186347412119645615237509092986672078787273633735622410497806966686693805418817542474925649384173086318704995365072250030655313185689913678066819552926492161837095804237314137698994469946866890292590802867558258849551800693162070642536412030725876559974641569251941457209792543821949646520364782997541370546592188108249758309265789465095971010253211322424555947288104849881863869578475157532184415704837201984477605712086148078398746187739027664007750847204631089908489208092703706549067703629516386966778804186593776269157586866491112955127345690900813350421509872793409719174456294969280421111015471329706936941815059564038028446597074270346445327495968040860901573895919706852797270287511510271878557570070214395542392380969133778032094470285752245663794513125796943479232383362187771102542490942432597561558616490370095984866601364989798834024156891050194239833397938448816226549314167720368146818016584164864289580603127106233040622879216338809727532541987865788304207423691047665667855737048869461210960925035164088069147379329853772754504159377620547951322841575973966722477722636589332109127885340066944970653374924597915931703907820655554781272638118903384615688769830878806215363883652226900928317001174266957222657605358128092253847010413884000866628936345893040705835677659194062602766730136795115381095856550069494909752501165510338103174802941666532247493140504854525624637026376665702504171302940498457133798552427832264499528845224459190820862084512305516541014526076370842311067824269054888646131148925935121390669347750896867097930525210486961127457279328392692534389051903577841350174508467925533377913152239981976938148516212668448578622439975026617083754941523133001198720019907052367354960278685370805165799347612276406648683823731482109189979181189284502687968771581524741340491198197911050297909058805850759765243888340114088701403320101084175571505938846053638009011993910410326664197702430969230810421111939296498629264322609154922281409632760516696792882022312027767981777105762333889551899468686368259237492064915575658554201267060609668702226574511646620790798379719178491150434290005743678892018542656655219327754481464048152551569844306283765055188001110174751728066024952271662218163541465004626477420078529701862179461663418588265451400597738960466698943444709187669158255967278410426329787030980448210288536321090176537174874512449339118175221579424297425584418661332894446952296416632545456886775961809596925117680113536107159930562398331868186757373407940235185111082033549283045314436475190227843647607514256727948483358724434104938031232306099641918630618581488458554374149118467379285191657146299199848410899104613503773618331096025266659559408372601781777636327917957587401360144302826478129754100500136605208639129368200648534504295150203553505863427785360421402973525505667906318076661112505871899510373142765116542733954629391672547825732784451744797216967823727544301660611012207200533729505649442559630401759177160439135544158339291533117129213638174961436284467255757842880820171979499571562863605906760279626773626759157496896983245702814712784831746033287083850221785432820010877698129683712505664151143169778927311489976599135601221515312716972947586416532108202728116801891576652195252800252896418125152726090466426163794800872667690300770774058251580247679822033346332696979724320959906867549300120932043119317535263546526281094855501887036403440699735245132333042429103512688460503677324170430327594932294837696977175504563700587232867889245896358362507160343727473177893886198752716220862857079910314963422789942601804301938410850388070785123972155065058544240555372174793021470922801130528874275944364087991520433155872459250893092452556935271987424022666508100499754395937821627925002061299037564356110172729978902254755581516759302480540495306053290642485985755320627059889492350905658151232626609782117314920963706054300774845399245801278889091940940250644832780818327688390660984782408821770395688677946430863485073393164663829918343373775762858531924594849117892926323623355482133528177854444507584073533493429369072880753680615882903023859476846064469117773889953917002597381816424889629778123761483494271298773918444657136892391447952998919052565478066579531922389530557526249097995085671382227403882727366723131559623118348696444720118932827449237944515926103192216173305436831241056519646267610177860237389194949907788600915955134667853768430443340836879340500995368392856176140392285101528927298792242169278638422456426182132747019328307284397109941015657850777175305138418732874582135288098902283210590749192951744338533073169118270503538171729907545343781052327349599590638196635560916885211060018435234269342400537021136057928765750874388053873244937945117822686604893422463121831818707386957763770896913057475887277240644226800050493244679220626182916534586854093454073354720822687395015542983964927293919884373956658749600085125161685946004919771341967919942928221741252086331622612800538271629712807666874211010935433832897415796485867035529541612012429707493409016606152483212870081264131660693007318232897178152213395339702811943440134872302037792435218904012482320856536534856177098294958592278679945634277125228718586416450898183010415984888714197703364749440305919139272198539080439721386905477169991267650218463349486398452591883130000752333209202390911268790149735654195532290282366361104486700513097634141516416801270447152575231102076681674687099592934672506438946396771445440974867822017243264353797048301935887516477856242478976719228674150936892737785245151916662499604596791873219890746601973199421959868001828091565482270763543098432567614582648971997467669847492611812828453526486699687338597337367522851806464393799835239577354497736075077459491553730990920778444831174176509213129886733042093693642597508026912573834426518218694552336658505298285342927606977315077959647354750957703776365932352152476479093154510979174426758326603368230557660016698864939199373252131850934440993716685008043777206582742320579930684877738959202149714455123237095036861559088079737029938515180308263401217197154244784105299717336079504688933997620242328338097688335236097279572572437131266573596947097286727165343399507591751103955009251274264731543912264536708143114837735033053939396792415046548118198664004138365853342789416491346402679284334265397074568629974720816836610015159291313682699279769334755935845449736611828030728133245348243969896122273946649260672235169830818179899145722504298692053333836319782277736661143697121055049174004705216612276448477222766258992260305760056351945691720990549064887907792179432919303966136132808204727485061858334311232555112986087025898209200223502949412672171013843870230771569488802610725268789681376050538064848791964095909265337825886619552901127429091118458627544966780696112985002379233799997072167762892025975040215040274958794693633200652687105928342785974793829266296661663779746413156551452108301879637077826119076313831160994205962754612673354081394150382478473735016274869661225673711029876787740862204661288816744150008490158065991191024621542753036602545172182390211024461427379271126965179352224804998264875387214732250634999778682660207001557239987019949125321155858527775306915849845633072299162838737076076025011346349079910242791394352080004834364120385929505882081973372772556468122495892569585035995787403631352735669703411633732645646500957187185157024251955660509763466146904230262191538130276695622684273035673844890568229358545148367093134422611709459543867560150776765025795122985904183834699641662960761573827989622879807761652173723389004477043254433881148199702350465386872587531517289507517445563299711805196596483621260961394413601434411762243075705003596761042300760032106689241153245408844834741475251436454724681444189114757825475342865679139061691692653003971279020185450207270609026118717216547355542424202096955450204429446994096337627085689746129619457458080147918650176102028118559191097840784545874390234705364555493739236660504100804121995579569456715164353909106792788930079990813850771092449706744058286519702290215168125082077630756152187093146013176402562864114250490187981844165135176652242437286032751628790698054713220690680553831934220581622498452814199010170461979978901190119484708810674842679822397828692077754433518364664899342428348742602240146625828070004533288279372073742523005955602497715605381651969320372261467063918648055792010299468549716381777010357565999149872348110855673030168017812993989649875578508233492229843175158536449103423096831074664234416092614041334857152364554115567592443670798001731703519872357125662501806815355661047141482144154818095580772602591831814615682515805090387965267211590898755772839999245952427569130207998990364559129078554317876719649203691110640140484972201199612351381866631259683304131993280275160134367111376632848440754824249263275774545497597975870657691629885058380826222529458615384666425290506383561895259523231341141882608326590561330986641343605915015913312600840751191444220113201631021851553931502292557407675864428797737536206298867062349171207739770333537601899023465065180783131618531515503054494412028062418316427527972379557440990905889667101726661888355958187342692552636719118293993246626920760147519723644006988010490027511763314585443748083521596257252576196037049363426322976137239198456260347828973929270188090358996894908050212399896604631741977825553220019022302032011208403084362005127989130337662279699784070184278465865269989163681649211004152344299025893625792229506876354345436789350870283004398652285463746054628411552620830977401035583801886006562387669383980319869373928744820907160154910864103518529602839927449351448365172339023674312951437604828662437070318541546389078217036416727439380088280192948913442221439161485588001182544021410421565048124827428313108712516313923727789871759342831533027978222413965000171196404247985126041711258798397353418216163435696761577682336126501803810504083825342026916702878710914801829768881275392528630457712668426467727717099704118471842256994517366398808321550703865514441628575106892634739834716846039382634550389928670470726130240210709342761015439564845732378380215119316751881596107191692093052394101403830237211171204798405746673552835926638000106512238451016227422241262292512405339866727336527610536916218908796838230382020917033708370964523923046531622093198794551612249174389418823069667963806822484733221976797577377019913025528735118041352756041058508110509901185082005609449791111915312999880790219505003848024828855904663367817147006249697304408832039915584486823843485480696222238812118078948918128782025015543248930861158721320062199088788679936119200338875526423876828316310492723620864482822323813889381275579818657234375313674604132552321428364534289598581066667434873788467744393990947462992409605618658203950673346235438102882869358055227430447243916165579160692299484329559793032107546774007745505754718012121880813991751781071794311249455820342166026236259725886702779878065943611591101965148125764180217648881697001688280697640525318474735351042824642538801955700247926540852815392426771765327537120835839988454507934922532071762650981729296383961278349923272612715848284122856566430558805336846155094285195319952690426876462481025846183632344021934137976325262128641417582598782975373043073557806691323776682040506009508133869091686698518615944757682531483077558814276315359415522920648417611885505395504633609765189934383189301152091519168812304887366088784962645058202818524669447386655552187641371630860123085743659465679166623699586506108478123703167019330214011831718055722736870304982249743302547945098626445035952722889256222487130632321490043494448906633916039813520418915616260452732229670307304808393120623367750155496611378670162686871859345758321057343706081636336246363891374946896699533126531968290485306485896295732687079116552024253573379913504886780888147049883701962334607000422717882145524927478625205025203034076677599519041434113955422863289063106031566754074146661450540335758231162067528498534842504239688144514970141433160292952030825228511667118427708018524258423256850423113875586695970419765106899775216545370518107470422569314234986643127529534741773537641690139012772982369043610619049530100444338190779369140655590787446837366264595907786709245520877590923899182820637911427436390216143968633307806943520168050849079189875652046925800740930884486611347934167342787670588117195134137831972823037052878303751704815940794030607968065748973170546709990537492157598495404341832911646053343135369322324561069271537856962931507130100014007325162869340489012820409023272631476995409503090413465378202507211425760557725643523844225505827474331570411433510601677712121325694670814684495145541345435387694829083291561257238068981915934328132946111427404424195784719356290518563565997144428755333811915193874818374977284662966812618402982158911863560947285470962802273259957624505357367516029541331954154699269315273471322227737288447563724694082043558774012671728204462366660445364731755047675917716215357230493186393667159446425860620388739544634424385674650486710893121378001643842998885965920269226002205397453879145010708012705624460198810034877246235310514956629226400283592285824263736103563479053459185519686213368019999906737437762033946292286049987985279523147193730965927026065183727574869230229419227712503817470227919598374657516910566050866049760809167994319661797449647446529692508114379935340835321148996913801941920689237531046867494424029003754948892092952492338409495416796367573300404283509328955261339084780666475456332033839896916937391419892810901897240723953772261999314285456356477663139097542435036532877622239749262627052088646148882882584264509075031680802616370200451145223727196221923116032571743082080274919940560306361356572576900476603612289059085168939969864029999496731118695844572614452793478363640739526634617287592602064366098418426513129628477968865058481234267980999512235019813246970905553813734402405157927357142113523371137335916053701954996033703437757136530775932228561029692750820804634721985654659384190048706791973962550136763418791181550739657032738783124651284314564510113443863915524445061435656813751435646480142628996505295757973027776624304794890934085132275174334028960691578021750742916520646828989901538397707522500600219440922718399436262232431870063936418163513549187753416729169404019779488778681867650987682084439678593348077752526459093062514789006701574208815203939513508383149038305563356999240223007224541630100423397805457128912734860502066437336678365301467613317569793818282956291564450836296498154440368635170475707755158549481451096272218011977281519843279966700583375868203493936358277265848412163482844205276330220729246083940081630316507884357186270463929245475325917795696640943269940489340155187190491179405628458655391323310691560650050727966032476448998943765232040562397165120092175640033787641260490691472243582080455615972819615392270732944787851341121063988536410163693562887902253463896870284725144629120511293261802672050383138780610122493299231365952710297161286601443317334646137808264820394866685793100477675607303111579275639425910795039634347167915529640541790119014635373460685497515908800600749871039034122167835503847655998025134931822605259605576073217125937732315391332611090932966439587247323972524679791070264753297191373053343609829114516073362681372570695691023045987987313211572136779663397022001146691813697504420917791232937183675223524427931742838137989467776374550599939521891510872052305557698468184887408282816134413060484602582463376659167297172820013682713583134130356292535107355706155104807244207973057804156603938258406033198442479574101538158828184548583871760129573001020558949569862874359305477932737621125841373330895002779713779998746059813903123791201309768144669198214993191338503230409472422494990314267184848820739826292614214924210874603314794585452605250976434297448864722697829840650257947345197977642529345468040840342516729182971748318942834156050070082256532339651621189110902363312379509477960473076248714173769114032059980343166074497474780068276619491778809289679396359685437875221682885449311901305279942092655797959579092632750863575330973297971050851957893008411425521503245934998849484460152613312109864885402395265891501181562917890442747154689093885126740151996121575764097801123196522637763132953016232371232420080641391853603198819346368072773792403998619056552843131510998947974885938543108624634289219397947390132619833525713442146093427447993383288192496981081714331406887397612163190410354849807619607160913948477486355826598029659613131073129629014129035366380040678204620893212879373795039476806419295999273959348191845948797134154533284381772249516392545480858979836672503759770053421858955972338687268167424493699684579744345528631770002717396291536673741607807354128973823505031141449503797825794732522200033311681231722794139502986691597527308411721504630232383644123459378109500198493643055287053861329505079089369568274784946097897591117502879005445218113356226429393651422740708491761029194334104242590709751993091091737724605602920150949879017151619171963460099002449696967343883210765184818164191033619096048744197143753225242306239013106581389464017214330268777050665660066874144200042918606492175643597734597390334119594839299382402871862168468818564237867335796266076453740488898974167635305288029340152999247228575530902845282399217745871920408257698150716978429089063978932110874441853339646138519016944057350865417403809230021609522375357237655058510000385181881341016564435765269409074794588504459268670174586841845250617874592086478515387439576491629887531001649184290722581716697897626413568551321749394469155702188238977830996883617137291520486630758433989764188907491119121412428835072106557793720666627759169033931842180298066563743604630306309429931251373440940269072492630807493335862949857842122352427318117661614372658481984462402083452804021159367300321653672473668809480619039735760508271089254774420916716918796289410331581085966276480807776945185779029835644239918665700214627132610588008884207108637695222264301009726563697266791342202065374565156119492012837260532500553512991468551785953354444162890296989645364665039619779646356162432312306267726705592797076896084729359904610178495226354021659046062753777385361986029813400458235768008895808879111632470949837024733342278423251519465987431929119795637393490121864183660655651879076134789221469294803899879294440946359140250482002874392194233211341527689780210615783516853223015139939393102237569885302159397580080204731354316439126326988863236473587767535488007348478642165217956045004044282156480456793033284976103019880986650062344898944746249642890236870995387384990922606132235184447259638177374860296293963917216769274236540225688537669335792758458688212095261082572189363424408156701968768548626579650074760538347655202125955008699465219736204677082576025581974632807182396567312168308461276506824448060744096402858390995882035351436369445971437372365883154859845597861735197924964496292641929744551867824891691475889505528775695885930517049182099858781289248334224993514870447414531806079217704076455694532343279958248373670116804752251853815188540114642615735522650353442810544586816262175208795147755090094749261625098416909530406350630122906760857049313736599691154057994499891041198943345867663712441648255725157340957295057345948411494032352428511707080349221049156168796246274684339758886720483030774899653689449296488294698868896991969702995309573451690421375005972685603376252319224306639266049528153357404500263449558981968246939150485263186480076244958316099253553881818844296675043346233188729760919174842407888070101854741055020217622629975203108561097554271066168450704563923743620917205031619394565757205510711765203470656259157697273787548234935574456161079200002359322027178437869764786391547100085061408883019127262009180685774953313078962906147037336877851730088356158360789718175526745475939276068534379217326197189560822012603727427256048900640515659662368064937433610327565061522195139063854519516197710133348094090668814678307394437938075353282108230129163272876678377835609268355818586229411176514401310691136383368603501271631383077596545832735194548359554591642365790331569015477604047423706285594919384289076865230911031534523885694625184550368349761078522313416475900521483681225122556643346006926821736212577242317327567431743662585889410729817602024277927271831439895997658580173621589688041570266719898793414463236667088761514030808262850841538771002908245213913091633081297106909904257010432862246390986814530483851326515977428616270682658793634246083142318280408038802560145827981767402798698983753820699162126410633027432919866979999872633130327078187033095418574506271147193385943484370680830491850931734524581878855255997130724573416440819546443628234685862673553864338637980340980028474795080059744634685737080548735434624451468724463656201210483786940380072010344533646174243887278345216430864844732709149787947545940921863007274737238920021437857656867116797916611407760525785002090242402552783974798003538320926495794259881985556430643573338114543995351333138064922087449946483837952337219486468103927622064944620095611572813167793292272748919536973492077843212004733027855268790238843388127805216988682864396255597935357607358172435604368346643874402247812960902992425814382162916708923590927908075550575132743653316454979340989569501644434931213645972325776230051729369782269670101453736083234763499644304023080458863708047203623315758650727734270718899662400736199752567651009995741849656134824093865548932467389388743695378736814227066364667013805532750230865556994660376168359108304938844970633279506121273214016982838929867776418168409603645834297121092136478320486004012368891669509243774381787769606430408922986319691770959452051637629564662650758908856776402260742573390038521572541331957318848289168507097294542570915532283852236106859007282099246939811560406485181986263112605771460038608085392695732552217072576052055907607997004044810859120716005791771867297248231629911940389777129140851409859628484522083157511795405382359893514722505386364535333889012176809906494297389308958417574672708960069985278164268281048054312062510321041794605563009049397150779461093659703369490501679665292406274217549055357484427110264072306367054722788257791792808302660442299817718033690334793768870146604955644862970771017736114310295146606238941970709814911809841351593187888007991055998521273671811342392814690872824709621168022954813046716782051364305596055763412096153148415905994622162386640481192807386639203867094131028998891209166431438774521656982606001065992528942223772623768854742591043180144015009828220095900843083786820964585263042324709904535277925102567209632841394375617095977966053795504123899888605176696887151500472834404435740868960516824275406592900723586456491924942833276718431607398283609349665804688804646965673373734074766152137144861239161576538458035464883832632385187200083595414156115742868323514321972522771575873014926417568965706039148976224075662372604659564855251956987422917757142368929260906213569665204823425093147377383237560321691337474199836279893834081973722931089933027154124148887481135865522036810967032275980220223390505935514958845546185095901586482695526126261061195418011081317841825689080400334697672186226930501814953082701331350951300695397025408196391876254443245850401677390508508643379525238844078265543553520701936629340761496086664781365876314420883449022740528584529602575168826318463912624003673407551232420974741514879041398722747521069782015491558773478851996500854257914018454113203018312132908689371880813281735810094095159219955061731114459064564385568844377181094284040165850889119556720140036032164323268780017133069121966984171525893102144344272059101627031505441954278581596521988499377608520102314694207111157152137709048862483529380002699373879816161356672440719419447793540377068169597724911075125613430756331525606634329546980687051522546826511457279934815109088716423779747060675534253337811288942110578548094354669715340430885263494222716452692818712043605788027880339496641542631209650334687221680901309294566999348607160071459965226141331939232772468534572474010920379206633296686083777577048876271097521552957971765961569531659763552538250199288868907177370909330054469839820211301823046943977602290655713018900339777987770208776428730489965789566511295107009538829253287150077690242975585572245573733072989473452355374445741611879118658993004802991103877162658932932492292187448192786536136861578112386965991308555944723242708775023457614748107613540797195161018212963252827651065096791844439011499194598919127194795651518200113843612425666514169073268555217693568059587959304851176736237804708571992261833849302406727121861922069841876012395520229197534103898404176324334099427054281590477362864820076789285924030490751684658587386166384756915690068184067823560076212054367432682803851828217428109636804285061951715559708205697835063925376403828547807203927051342573617923966417483727055086350264978740794155472549430552829087741548771351468797259539094857318764417175615516671665598229932189429633694090225020751455628783440469357347893442580028587365388235789280483485058208159428479244844945447530421845330601744710768048677441390521990083909730879180242475363144305987588637643451883899850443919824808184718098917980395375104254003980327797667007054970818556188450227497847005430386741099934865712055700529483472576016288468350327960054815268337142174730690026865852237352669739956041041386419443438926823333776507836355862714815600270568492833250320608293492579353320354043868055253652492360720846396129671779455753867290191179287181749000129609377632968954062728309312967241465826689725805280451927829307401230935040184182469742653063442641780918042475652198222634995795394785889802705599950413078657287399944538179767981203912378808080164254106822112367530991948197713296079590069167557982625818776504635487143906092637802726588072268174911620033338427183324866182773522568172967971479578528474697602951271569965833879281650722467895620927317277887945228244000482154305111387104094393793611527213803264922284605625224250625440674833852090855593515731432600499842893168648902438238721137194311138136430940461125876241307393736970355066841343502599630267268516107273170591214897346151607801436179019728730760500071129850624676594218535257845349569087781154576399315663202220954604935570460956599698289408447578103972005063204132210076143360600898920574065700085514173344079163169472660968929242060250119141805783804060581404939169023552485741418379712113030166213691768285183783119790239671526040709264876194835509375063157606907115871247793672451890769714964906986993365515828067607992290478355451028863868926905348549446121960821191082493607880360222744105301089633427618447295298687228912004009346112617121303212957276870469645184128111404489083133443393034891237736043992278157288781150337544718096159233371022447976355629920834354213785411455355691267130074595050028629603192075517970530902577501918120312877412438960083543919098562998987640475960691231279550988893589976618251322914411705162297984257589649472841436579557217752758766181470049524505336509718554396104880469578752875820701836001138200952357657114847090207515485053411276201513413878741947890017284111927438639861380179892859059799512871195165548441656702710638695651019439995831634639838306068729279113881967236082545432154036392956428142315692423317468494355106261693529103403502030961512410768016926388859914288380366297041746442602066713427004920823224376743713182857164387927563734401072459208729466022649554359466472486069602009179452694090759259934681304350962776260997274946853499055024131908611640499254998150213643701091653042027909094539545872472484280516217384742914190985942114411040220318634300125018221667823026165803099801508064570317551021863014635463237337195190584279919862769875194310426219597315695523781084658295720205809650880521110647067743346039691249400338793245509970478561484770609880216119801412675832650864635894128999648660129941510373481898717680591890835919074098421935150625841283181756510623961592242651317241192045388797246898368473347490661038974569317270208615962500348140229850995005651947606526046290401714970530356755859675046552563543306810129604252472631133025093322752904046427604410006385190883475230322139624079641510646575722624277225258568559780046465895753353008160607268100655438465906352479014451271251261124730057110444040465953768113845712575658718161962553208739435124344763268309520329497992649399631059025043400588511183882588415023229069488598291203993738518474194474881917451450414600814888469865757977360131323171111196632254672506833090829522712988496145241896262056861207358957254379482540592747843800750964098496577601887335175116085473706990951818793448708649258209208251017476175586523890724133444017325717129763282337901945263058783300512771008106329068497550719715078613632007834364198560461721888764016474275537964135705077414280500461125740575008686579666854819671572703649110829528912672981132372560131991383201459358266967843735159863986544382290699896642616052998743992285902384921454653747287865442416432391497564358747819803654192806502759471255662008137420880475240529957710290537238102461484773477932749521238240383505298371106287340131366886888861675376913011472728291128368839132582609046686469398930340453989065722672237063764204871182564257208922603022584691955236423516216070808497849657523737599750613149031459821993488533212929631196037518731057847200333667997671109218083078225108956174015921350885113676760435905867797344162142771036034546111509142238539526903860864245209702717833919589029842746491219305226992915758021958399317889288074585070914623223846784048273808085417349092127972682247161607929387524951697705651690448921891556917816236454072401684970544517123408519877360512776611595376671224662952838645377671327119543513284733193606609607340429567257815810418064107165184532819938683350757385249325692000982117091777145191163793749617734421797095398665417774588617844777941323573030391461176008387034654901827518185102849295354263362577321337290010140518008366944601895368399505141114145763596756424974302583526772515870374406269860415471251893237934884437374728587569921210476273010310974000947367437310408501111827925496095133704828067658290664981143113670180793186807721099737139525961655315383376218081009819226594071637775830248579352076550622630363631767729935198968283192902172499758017576161682283026345167497276937337899820319988127109578839481976268991005259205903975201415433356287166197153328227149530545986127404404097497854117357774576620046414796958237541091125986500212309909568323055923344964698880846501290704101843164477938400676568162856239530853542822628245241609265372993812163755531848767110047277276833301415398800024617864061974515488957983843676751670518310296805142902633062512103877097424599101980079708397823483990067816881438809877551606597744806534384675278287156826534945827232323114211516570319413300337934790469546225955515236527182572026094408303902347167625321587502847397042894805422339974750080429983871652602202632343070605034333677043371669706774817633145172423909907178100102831299562574555280806475621533057250026983892538259137112522427824929247934961907373705795194507538155851320096426840406447465141113674185749932872340849082323936504584986352401896525717560342905324390103840855343224908803807556435790302928702587530653364372264712251861827270849718743028971029795932012498702407177473659764779309945272260656905919826318154279899870837108282984676399935353834942669170197205246317049417294288850020907517107589691614382983178297904067200383945079653535730341579788978802453956537282796143285498155842765947793271870930897911548225451008420295833716450370360377501881780416424402055754041408085397160560736639226200504795043920647795354024879160072707837567603656219921343112955300298826035613245832197283462710364622200382612776061603010214670841121785084460475304607519708941548564915899839624653029028097503457018896539923348750053417773427596113461103112727216864782975876232658890675335225875451679465362358659852011124067859236975123698316982003777536309194672794991588187744369133229957338954993551508523992007663997391570817868908867248296992866611203048325982153534787573869581793612655657855318078698251986983333150268674552643828598360975454655403834266850720721320614013786333394938044512911209125605243898007895420525428246723384195038209206199360060105943928279917109687154333979100240467327826109165624848256415248388678563498209495142696044164133610585726710370708645813551204670537907135963510542229192224117610374023649412547427302411327684483211778235814633844308667602887769301005673581927488414396883158283654226065588701059900507168732960127614317803205092677167057222619612922472961857031284441914611572826097170009936394202890905347546792476931577287465466048722187829228317170068670076393293795407573557406569364531722317192914521383557368660629000642592268072766696125050779749886790973939922214099487582043184453666804893570249448622091018082385943217535702423679887599203966822948308691278650869002727731388570994011678241633977118502680419962566898296745298907734253305317242642124468511892867124164863930359306860859829201736984801176557981892003067603024373787218942571760104311723396523384362001266643897228813614395395099232066124342186080944008695115379269426547841570623576426858036805337130632985131038754195374824085540427591204983847319636396558829765396283876145547791531455175406490927903739669206910234989209409081512116983571444557929516985165811490947623352696220512070386036859332618967417969894868636308339726630481031507672029162510596804551295084349989305728939592216847566679730645249665758365429434738812896996389106623328083123969203715871659213719393514428985881854139515955781987758115598117360326989548169193934833906879857445769215784214196384311902426563664628974777834997365578548945383294478817413312049670694231575781981501075915502971157911125802143805214062126426021510042216426001349436414395474011931314348932528230442435984351513604072526942142161132060096661177559135665767266011048337358687397435168974864713595451648403839689605255463914942513827086647220958888432478227122453621068485818012647321796580364360311640404404297790844766547157246201463348389995035230485036910674005215897445916898823228088091242767816987768876476392523726037594818194535325114726542116346837154173339167785532932213996581563023734254851162277074895637335292132849583096062758234686727650852361286405753553114498317725104554388931282348350085877010701922155824416388702296462523484057143404253585610146534721911777426539423412645758742921195754902659380715939995978342301885894756782718112818384629111016871324901176422186017078810584544970292263757655954988970852606904955838439750458741297134023301211494023002704263612023872043642993473425001866152228367192820098637500278073720058557544539985435479464518409008108653145088154425947971601977398593212328628553691726324697996525122679805339218893500556746318010257069005485201136082492130674043684180784815675786791064939937358113299667983105150583989639809749296196371375424108160401481151352182237947401495054388043048984645154356406406176258116328941758150723163422615828475429086985541964065091483800693606818058042494110937946719917923987607581997747411432152330423123240901185840996090247891565993880054718290278521830833161660872475667859552868521430147761898681052737867067336835201595487965852873043094362298821647885148714893355136242936202471453739591754076233755558096376990939084953914084431608515255364519934910222104872846493513780553851836118889684864194056550532586177140584774872160474366520365115906134287031240701696578248702104914796634405255873326061998891037816812351433472006874372920683615737564964025018591522632630181740448259373853298292438100416090026697572791193202557456852273423157728653525904659499762960789661931679178080785531716370005467840285305468470429152746674279591539387927869014938318860538351105543953096833697576455941007755569196274366884418670864747717813387925158883217682129309438218783039521932860137067811227491506535935913483437180400099079625520591777433528895088637387220461408111721956239560000664702992740538545898835183318180906124563239798597016861156473900091840014716358618499755734133821617363893652811053187790990677972851877490351724362251105582179027920244731602705301670538204901120518220797556692475241268686272982611283350360239996773054290261914848867457574345393713267362897670730161125904304954112391921124424214246142520388820592062635538627055054319843156450878637281652440336964270473296140800379400588709088504313483645555387626053028839700433483468594218943832837798574479085206109786670933828849239474926530958706849078221997617039246252119627062667919033818182965998044988751140744595555076802209750565395380890154567899676943457090274634464872922952253593895663843289710993966506125058202239235505375238860063999845719285619392782106315588439443231817752402361742723078866550160588240356004779893342570883557823802155811579328548815772057800863344084479523733977297881333416165912848426137277929039545805898151137707083913722998007324817553340354753903925797802588941936009059732994819210415192312031459801764929326002206579896048065349243373757936399609862293618394151193127792204476768512141720556697998190271687347847711811876410403121555918015340973182528604442396785557431684758856256844247410464460222570040711348862063595416171960529197205708417977840547012444761879552593855576242717878326348019011818477278231329560851636646570361318735289426121215863973589042567114396253316170974614358511766406326640606084650422156865732032004177554180481755701646579951068968438972734094724588016332287473918526500844999407902128078443793929698492611707497718675151031958396373636971349198873994619958693181495816114237290274137431247586272450997464394461380477345987305487025265895090387094480572864890986250661883315744917856522113869547286835431746219136667949996485198375961509065478439328037484811528468485055438715810851956207738942529742288398583357027199401059345722512212935660592219957180835940695859890192459527686022125584654463288839799578369748724386809638097947456623296553387791009772877620209354067084500967396347571623973176551846774854293736396690315325289132421716430736768494571187612535651795177190964226277981225572356000526332211958634441151647981069143476949387034445506280184513120367680520883192406927043316427470679118362024242873420960076698225159308232910409127313513813715021786159971660601038846986044841399242140451793285458008891364007239402954632544934495781833849556842793383571464983257756321130479892179501864616372259487733403813536856771348329614291505872499151204183304677717307883600502482020179247233023981738492000095230384260452007988698671925067472515029049769699639708832533729094108461978538702613551239721709857531087049232909900480407920501252238043660005080088429025340273885820039001928874952363308724705191975372432181318406248346884918771394411703690555293143310488872627568378482563606620213857111869354030486946133294909592132972990799557232521874634453513928957593512141851393321548318337077170053361389739108140580462373539237553641185519410970105950542887980455673852404785958094080499299272093415004554287738414604482530703932789580079295501151701580449952576498240943198082209701980746215536980422565255561440515339326314659560875662911870552172891571946972937690778358070856897075120231029731573329125825008174561845773664316446207179539785060951683728972405929028773395020893267069450456925927058018049435847661798447417688320544995594819156451434849306406601681787828390703153677401626371676076653574594592625892300957336331768102511992295872202076103242203353659917235388453973067907175609311297554725080040658963852722930301285636205118339050730989633000752721306867555458376630508813921603380699859553014321464886881813921189630580060159451354145631374563259384414835624787353326123543897404234094539880754013537938114308150154552463049848000835896210606312373546662361804411136724603155287934238208498541130900971110339438323884104758460866786977134819490608179902295491366735751420419582086534227138806185239942425808717312152669943423149500185058973793073701656811323544604554372034144924178792360387799352675591065154442091047490621853949175011981907271029798914372975239068486558601070560207396646748499735455910850082205025251253455177515674422676642586710878389544444156705652032938574102863301471997333810302312275685820785551074176850913254648855549987481435965815379657357831806119925185686432517617410912703674611791857453477508013302985716520694180178064606077580177683057851897048545870277790380261208054855716600984743570121417458948198662142052162339102892255717697667487390104265123537954006459270493556917924036129823950445971787751138619780074165435922373383434106920269506035499721618157755898105955082921679407544586403546473936447761026628832467662948305333015774456385773069113220205629828913937646168857693444449309033946960213378909787740450407921962216355827845104737478733514195309104104811878706288357021538504252285354712598663928206694374886554540890877299264883075376467574198647106067622967956659159870108569706327809148558097537135595148206189382937547926795551473496523653924955766836305320615502242500509255778117710857563789503356137736290321101327135957608348932293417376425827863604279066143106413187021713800944953275452885041131313825750214788977230209752757715598564868184659307196562952960054721789288759302984406292795159581061450702853101890545803201344629810681162088494694678935225266882879590564404820733840448447974634880583654376943133843632274761971609195429068834956680649201697387451779567367682693218916368371703589586005023140324187577985052509060238185791655481270185294360481531089660683017239554268915569329338103820246650890364374935523256662334598827679068755469003139517645292096483888527112667735351271333624246640145217705807076024457887533992030426241086905301579629882547737682076173159703724130586988186105365156002421562284996310374463686499722895377701025976861452569395039787179359276105912408143228579301007448609261181092333553008657263344532295309737163892744448811894612494133884093506836173476109926446457368779171048228035030777117349137984285593331712888594404079035828954509077236730447428593703523726932952768173144120189716970860652478616917768358560015379972051857725236592177044598834535050505588859892203038793490727672888887763789300831943974345457689299691160711757748840415968331666524140218572283678281462510344406169346512510399790793907021066618346849207530100642330444776377162176725405225786962749526512466305845752932374976634291959148065530097988324392177525854429339056662037198339641604728265114418862108530497946855085711131145526649225241843401518695627410940748234723539025699908460563365908543899464925480260152773041981962680255692326193307496171377279407972319136851840306169809945615247044996841557097333958170075189868698431221565655259188990149255021348905219796186373608744467068760082410013646136626092075288419878838919714474856186528162580781042309778784791749793103998103581719943983743282727544053605599496634899511135669718536326693641692260355723952402229561838634077522576203696879582258769089115563542194055422774907651728563233345196653504941042545431252199557894452997239371195708269637134172675994585545255238461863955406996218481500533944885127826751848846962339409961398801776437535892992883315007754916648578482745805506620970980547587549609212320372203141136203448030069248356647486549818015633881108859762589305837757196532754798105651777230104664876911614595357936618499622241393498726048274886129589250426699684550143636333961004334597579845337990203117715467788950236867053434589907313925618787878138937957915749463065025842597442194188849320885009789597904875464809968535216662699508729799001895948236559318250437571990692654242210094497340270142045686944466741050192833390782857831950417596748694949804576364725545760482097967125373642301592824833595265835374254319222973005907707805228143925374656473975808959196163664231862734339139519219899175468644769468838916332971464487462758428397580310023866102049986023133185150140182323500560057705761420703647574863621013884915125235638081409772840201600615514891154845143291598403156201074827631543804973676169855866370269155312757197994234948588631305447531798066815719604112667457541959400425095050595460719040257338414041974744378383949563137414125900669792548796373614649279915369525710193367268778974725063681941928960021578005660658051485928577728290124539844451592253452556724952581631718114893070667423196430267179260336055185515418964968418582840737199713722222961801806096751382519436728684982436382038279278389078824620502403567041937885157025088403722764048764937948091572916010717220547065747828496862162748751313444432503341299350757896517439581787916650236724868385250668532761889250000505590862665562480973633369700127296130779803858554935636998882801642328888016245764368550355174137291620231155661563600374614226519755229928986151399525543258113360458322317788838240686687502712746212526724532630833430680432064733208149384800879640351243523178903802381018888804169494213972796034918617552744340378437870043618174364515352028779909645735832549559798405086575101164921277163658607888609070609220988888746842306869402902987676812568080975282816063833054470497871216693261798701455183281428735959780569871480109427549566828091264421238819441997021001813860179841029524342983819744181528351131521676402867847215918326871266186322423566138743149136754846028417520999820918219546466935351814166570408890815170143229760914819845890676322715202883902011250368680153794716442493700265679424414330403731660624923087438522046381913122261381857609727445967367889848452728848667810812907384862837262029979319441188236229039405152231429593794590853977035208195685922754003267982059848826112464325656483008945876701840262852812438192682888833156025087797008672237321152937393848694108059806515287284306516945859396886094423658977710474734091598541627091117592280582994608542287343723773457881358907359565304049172248471522155247191572914838639757821698285578812144872647130080650892017407920674564673988379697476185398850864176109234434336105619293382668072067278467864050138234407490303714501543163563211362694452764881169033564892849536220451496122313306090941289974130370193417013048881590162260009299627238245455809397327566335994747388186566777784622898806869684154054478666841530040992997688862095562002888169730994868826212251086276716663653840519638101448543179190465043256925865148958255351324733173966666938215628137469698227369113270177753143494173377969267483172042974833878528386231294098634730296937147573955988122783279109805273566996161740789574081252279347450549245446660887869747797775134215852370161357220431441287144560963505597814872054102271624587903864130608241440129881330659153149269261421932693709888176982247660527387947415381197678370110903605145548742983366902779828311304048921105714006708571087341826090409560472728342777681767561771162083436515731672691279086281600655987717137066423976015618719904169659685817195465891303179822373918291139762232877915098492938577480350077442272508756261634350812363083603998693559390119360301630370532881536517656985495609056039572623766231081090960780006411063088876620551683438394048539996470277192507218592668483121913097996692384753292194194463296523111152062404607985586483585657431832188474534585090384617862043279229391489007786454735469765289778010186192181290140540815785496035797451191400829641666846311643458256223405275638115304341414934195413407264178511078285749501114966475368573720049480450965196996594249794613621711239297642072916309239539898920483377788852072760690189857480298982177729172101927827855650288249489311046006050483078367467128338713286117836400743173901689575821772141939782757616637007328655152968292258996267731445966045512731821379893643819648496351060872447973717871687677649315317096937546782591089029387018164322014374534360219077733944630325927283747566774570007911252348856424941741360959911319440772309378075015981163130211032009527899245867791179107949588761578396312362119832744844082346465529273781832229995744338767183210666361116587152042298291263746087671235931963277572013518176282219381482255012512970348507944813280288081602102909247994750518689825396388029821392901053998942608735141361858203297278127051819870102617332066900624236850885591210386963690364154337710968645100330321466655344095476288396629556256238868974867282191143920139466371994964732125000101803097500953816376799519580858735294720379410584705621119084761234725555464816048877126794716467371105482501662734212859660317546171335417092348760150669986489390192926243169083451732415114936286404137959168206611534069644703357189658113362598932804652174579810193177364196037066009523962279844852116126551181361101160571094162275554067008792742192589525509773534331517857943779648155906826699646370545019851747312455031109835516516113334119054891356007441157089124995738541013703441944190076450790451367622530415709017650377466167638646600515833205359345731026553847931956768088631018329683123415103161201184620526206621866278381968374268323482808704548682366451873930491466082626947510955670760757137923691706674795549830816446000858086619792415447756078117309548707741794275635056674555802264409127012841301515611637389208437382895737240124782304407834997180324439086793179957078735817153526529262946346501134960642206712220765382898889232533405909822054355714448838334236469103450524831779255770288188820251679684048252816848057149985892213243363568091923875315862847902800587723275682749225298293088759107444397319168152398059383348795094302751615882481976073241344610351247441023500175171990824465255139096208392139305982071655574534196773827203993618151340788307326369592833101223201136524264718915778223910065082441690486127664641412530823207666825675638099223780049170200172740333950649387875575747715030118649550914600812672770435432551820515600872670191082978559325483814519719843853922981905431113050961340419960306249181470265076138526762123783106988288451131241380990076579616295163714394157942008072977803303969513466421742719688809274935122330917665464693794853731107712619466766584534091081026847894338792237430556572652688392749639656477357199517283272956647047076732684462614952917423109789045999839249755062251655844384876209476584611825318357289241559941841731882431492416803282689261705548899400039237585452334490757579033296152809437882167310689666299474938426088500867765859428661711018530404395999788246337007599872215877484664466717633402190572824512634954886384173272828543446198824556029214048395563081049993935921729137029115245344538289081512560529159768924752105509030567922210754563870075550010773325952995421797294897006338123434001916337373878521785587483545313386318424058301781786812178669001489364511153550900199923776612950423573049958029226287364384858508972966122424232095462002143089491136565168283384187535631486393118714167627022616506501167180566573263420952883761060531967188570434816964869297572236657312350624955289798610232985897783256768216926568210017881118999087201607274196648509057965981573741093748898985699705479011682820421428604600526872088552449661853645294113476712190331964780120125890042870798366245729771545321173698677549368683219947131560638905151363149596898011136595345112196439674084847686779234565715752992521249287856169728220501292657963462101877765189039976033349724894373121921747071737486113234161390974940589534763934157077839815733672304591383999372429951273389376615168745709382314851312342665797944798151033802585617556564354464779442887650688275562774093743342142640245649220085669564629828601275840921363431719166132514415861193086369854748237558349680008513044832332910895141207268939546836285078446682610799285572243986140251032630098054155979832620078430598925785113436178171046033974541893204863329613324768674129523937900775533689671791179822812459808684075129452049215120663310535060937198820584042752080715072085506546962599848570066763583822503058073846466192851750677301421267173486775596535056498184540367181044832972286136599240503461446959036859994273634775524811033790307939198520305449651594637058137845138546268847932460158826109047499248063575282208406342894661702651870940719152245826450387661228150286548826470055008746728398053768845341502624927822602179394013382150976184568557244931344134355694975987311538020959546010291335779327846412664678677237038014913299781690861553480201667412375739676516173157103295608999018520976002968533803646239195335155793361954746254962327455301312256070477660329208579391827427592737129484667945544909015035033855828491524010537007130026910439133575346186167246138957744907715601009250892097534669826154929744891273893984721867654112955624389608514614250272933791023417465449875846187038216875049234347109017099370956647670945628834269921396401347335038729645900928789837062425012285891475200981408712626040796929166312533192532411696454096660419383602021333788436813798646668355033414176476007201626623986353847500316207989700648066558183177185095550856540178356790464128161311033073076614346933526644590535159813934580090134152761969996276595079043402695173115478261068756634348382651434271420842083787926568282984531455144289706785308814261081313544504878167753510865203912955328709169278225116319638780988424181774235112639970247043153526005802606995451789879650586514801531854767339594094488447185136409947195355648494072902855557652597372475398902426666278472129988404683777021484882993820054385308485921073040806169661553356698026883226390375032082631709078927625853361858130877653416365823404407670104733831123551309400447722269288480084512751190817360762036366042822552696379555688348451171229996754777386888407652091021845043872594477921808536625375614915359831485512441983114993009944201474845716063852761660605618442716620718408941313630840873271832996906517208839911706537972527294243953455291405698761710164820826507319498914375035441035894267911706817706320720776394587299242065356851495234465436018785763800470751224706594464976197519867511321281535689916156008364234671948092709167813387969464155389956316619524615435648284662098482565052389671106988149942413216826858189650353043603549615782910639353938367856615991732221109389645473085307014248066598585635245235022770491227083329154970127160913939145564738396395145959266277095813747023635058071208586073520857147258469091153428440422823292229264145596592271873303745948155597096481424219855441418430143366874094384107846127948660207938493790968428491651579758734367864899903669816080545150779854501038758827250961253057353683779787806707626277059736810061321429852968829207893067829878650782087925984069839595417414251400042379850100027447433783090882260443832944516706214603079648912004302983021127855689434637256023722005563397987626438479031012757980111277738082107257746510407982322821264052613760825505419454962654123592468141066651434497048387902644157900195304065891814483632103490949643301091432642963841538932900729223952687808607390444513101541509903994580730499833838292959711947198447404629859184057190951498961902144437496615896110782006268150974674006781201962705904969164354737946237012103004087484804818836111072399257892652124751934292689682136769977979930013019651397102336600724784663113958054383222826123130005169750210400233767913362997943335329881188172122459165706416697297817166715156484865522593783481099851578349534436887496745305830407609812716124045792201230258260649547291607797802533920937851442876107461263247849601289450146981899107057445381403790615118163466959831551186357535780647642050088015830993927510992158094264148254451896270489436004938456586916301260552194946374771207618891838791101791374320422284054936884443843774310536859463271610445643291902038995117664745730513956367240682825455707293916033831321304153606387560658521615590917515805215680699121873752394505969486784903824234188710487740244319535509357199214836574059913666257804090589424210623773486622156476234665143473956195301959984583250975134673377379304095482028829698351688052968923295819641339515966965724613834081645860451853483319029109727086513369156871145306010534825005216547919801356189256162979784174123033009851292615886511088367477260470497832469528979066887023403362521309383023359001820364276988723408520642378932884539180365937020843888393005553599211600050496873260211819229357182314695013591168937538484460734762850221335753849193832508237260336885147240566357683735139593319693608649697188804567602829264831186412189226586062062001898617334197610510321007278657767033782579715553007307055908384507486354507569423554906959526232862883701141732127068337124473369459100890303937485353767122021486574289715405357747856277047738923825065579478925365397882454991229345095735312214780232978118148360160848676005859203719018282394712477302730729459097164543427509523146125180100108893909067705817743707126171847263257353828973694996608472403759570410752079252616550522393573237436148364958848303774878616142819599297549785192012265610354027902015959293375528956308945531346244074360370874813928001274376456625230154758721033301295429518993658889843129233361841690964259738933307517857674884722911898685799365808106988558118976246960464282304420016571678343666570881799555546031238653522210147030356359117903467076236927915737375363491851537149769196030653881465733289607075347755206795280072712869470253049975214965002151843503215268646615315268705575329227170103465414786488665716020468548800836781078147752468045964305030033463751264599060801710892475367868268533432275574513052774924747970732609794224390220353622224767353467782951780061494116206404751598870953609809155628950552138508425297795004266127183995436459866753787167805554484308688155872581480671135568061770753356424410611572011288352839214791609582768819284784261333165706448119261770456633526212276490654403045863831347432637477325343015617210209403925627250164985233330620663552604119094404960224219569746256925634996925883448940017125855905241126311263941757207598916391964122302763346524131832693090244081841740094508416543601647457639861141759016777693010306419906319987925561723246022799535401613437379279867668348662376751783642222206405412643109615797455899432734571923200164523314445204118286341334594453303373441561106283517744323546778019901423589074703731112431410317709394393072074810192090796452770994716754384692666790017187976839291683967374265586360566763182070587853175804647208223132782466646585759043824277037519430837733740776082016663262536001204147589974144024020685056337236051974839555504645441311447941899794846959508660979358974953318307883239899934183922687538172160119639525813319249624207809377225238972313909762487957362429859977441925584215278525620912532113005763197472647400437031386306793331828499198865348492679645278365031424836368811012258840625797520406156326978335338285855607405222760046902511129422270125652255408234707359817643431107452764406919950180662400925062035965933161762172329153621204752291015026328859513292418248074008087531696920085661632715485190508563493965742670605844412397816571795676237435589191224992290059891839055080272335569124401317217907370279036044887283927850911060788325635826941454941047540421066413012405837741178277043988058614211246838234392298287258186931242294947068269085946554627104913348515997754738672623274265058832772013119629863435765525626767417703514038600594461904237845339009647194144475259053488992304579715766451292319209061326951191118917881234106509316583944651814178701581858221030596307355767206468444691608818819343884204740857766626559944125650009416047698872929289341377939163884728526759817325607919011102588675237005021315838941358215033957924462005213225832079502380844646349831510340424866769919327438753606829955850917321089282387781409906819629794831629985217499368508133618315249221025644918883921135068657539944340759065722286330273752112381736284601415295288447933139188042073290966229251224819773639104668712076631030650381206533342734203166457273549388355865926811866303463388089394340791049375931724918869343357952592811276904373319776099059674850664061007901817393039360117477236906084900149760778687226488081976802398196270731629661746333265867284364044853198543537743402452472895981975780563465807762720816415675105913084073667277180164221508556222063103041076356284755810742319419000956655915075064751777165380649409054958789840785885247537435827345638303065630687160589525600390013346010489253393048051028740822975738682817789723108035872449176580672461626822467544137182569514247322901467317764666777685249134547709005340802150736709488723852024917863964940784035387484153641476819055107533665888997960704284776034069664042222717375966658186095515132103931703303060213923990578038020041271320205999524167701849514053712367353196893344501036523585216524525329586455150834482771327951369678371348200848833368983098971446084574076264901520140539704182436176714080659360237158556173171058135673555795312195476513150847513623289035264464486825630231876828918927973624310070782378281420960958059414975066096924183939219552940971140925708834602378859902651339992597435854415454814749252157281732680470527184577028298433265562184665059077337431895298548771336836089101432447500213298010834744465351173359724660157552270978005514262912901338219503088547474564709725743181358525852667248027563111325232218789512154123060405542356917852349988181646017200597328402082584455025273616624177870542020442658470071837528331834916241290012246673686113627965566737918645993085780488614183181354293379104213838995321237125694817638191691013354414476826336449435932539109652970251884915577291495273799569252225822839154584834188448426971415971892484367115370730760624700620312377764550371604476335747623961036616411108952680869003293952347329650951609298730654217001757386072958815312827326644848910271614235437362591927349935199595733758621375197728820089381751028679611320180307801890541733465034114627731594523749296270168005696079689958455245471254220099068843178660796360181703190653578501812797920886330642356327917850289629484983959041843291437424357900484569876057714941866076813130868979377085966092906060214071363285993566753953815331255570897680956739815938447008595865610077724687486200206867520389444301423928063973942189192090298391750751405458205281844149821889093485030554479531179275600899180275430699832609633513970798481329486339890772658501229320425474501309558055664082575569611652945053642813008966831235301187601072086090374348824878011841442988896599076285871768645981626843414484665423406943431802840458048560491757832539617094733062841614762492315377961451016248704228660986864959288901152830386648268415416616899118417983127765002026782243494747156788226181591002853723935243077504138633586369877186894609374276813609253680475065136404763566110102892330516612225305576501342988986135372186511038869511495133304456816212231819188436798519623831716029551442590684249299386660425479599510065334016392665581368481430891386042144440892409366055042035833552184449290302930140544406661620005912571735533296787794707114509172538085359547430522719344611435244090823237663213329639761647313971589447094373818638912452883455132107679537393451270031528382780719785059422607895086804006408183275445053543589627757916264016804681461528378879442185759716802750355612499337357182776097822500855847877643694490456534436038240825342550655505262931677059092819578427195595259312732988290912006256567289879357655403054224608381123148948055806782834490019225965412089621501020573893042694137804819927901315553344444346715607907066495325769674237804736522051080047007834509741632273746147817434584159011773657011485765415200588593691024460213379557810497802837567418577004941876366527883626482235907796170777764230426620509130773377933525573518638503426005934282516952862244161714406653698492944981116478418002339301509485639176605328859477128325235128050162658730589602703796683686362460300683827757800373972889784727335424766012220501023142777762786978615015448394009604097296681069017496396307604471417084702197125252972185345155303974464043574258217425669054634590021413312120877120490199594761725040480702531222910938714704524951898089009178124814343898222328647236472394656465878385214387868992686714132862372542490855851636246884357927676839353750355537028482780940588863557638876869787868257435239169777508232279181312209024180309203526598113201829167854885099162192053026532794002765075728147767397604066338171454885667145049829570533970428137973121436586263804972081515422853179895207230131575704036026088498866997507291784189866368097133369166582355757675260884704272783943439878269469211583478708495957011564445251612960939144407278447209563669464999727867665381065631074221588772019499454252185333716751212931682504801506534643436227603473343667914602319950982583335175466687659130250398521417408678971502751381153557359776283282602230200308855178929340248113101745642529524778817264296020843248731533815640105072689122925847782302614569930137384649582115219585393042057096775771247416507733371667983582011765103214898574454625322855754937735521102286701821294364291892990803789327126338416647741403509513515232047188354931928611326517496593040503698743600098610301609296244035053085768170090764394525841180002545651896666929204294931106486733816524336949976955869547712854779724727411039744398423293320726018584911191196459206770306740178790723046730787553693962994057963834410132777841802793160222972119015159747783323107421874560951820254402831071762628793276579000820323724421728847261268817708642479999101995939745515098354022839882917555437841373082367196814596563637336187523792002953602687468718112352070931145490691030832786812760823566774781880113893371556654829764965822456963268122951173207514564486777503606747250245528842232683614823764181400281313770185297290890748696644779402533998726556860574551390787753949895231262493342955245607864657797579846372226197982155697609732957530011154016031455585440532169470582895993336112105329584540264014960569244755036117310097002350628417723447429271055773657806684064238506121040644278679138718244884666817051664788290053728694133998720713610018226845979630675278142398223302827863838672974028565505026856594702024361749730313089697555361531259443886743116082619185158730530742162458710134330062164047247028416172203168526354076457228916384965364675807640463149884038740008965727814218290808604494842292687117820767094251612440776953440280649241516510831448010717622239755432852418339150166239572323411301107862647508157392147262632206549113471738948865802894019270302143606487385426732721136636684552357794343529654230041550689509479864674316805067184904979006894467018177768147047679677560114611893262274361931444026854820233060031835707865487402727428903318985772910632229750706998431234141517163973047996629546313210551725695461200477758826997977378520003340089521771840562241589029045733568954618941340469374464251777417939135025479657887911337326340059105222736846997150414913340341439638927643721554396171814678443077495217541454305875408548901368333523116066813529280697668648053639610700966892617030281607092342967801146735757656783703981700238275436442591948574931839368730110023830652020977368842023107053804536581456639040835282492431656739476166147361827117275069369550436786338653950663649053826079956584690996273346469371089141390547147954110752840446245196638628277522844043651746604109616040308659590994798275479702115792932439277365326596094232218699898781792983509287065072399219951495279470735170566569180759688299266487899744243180580374475031204955752449030796312785202460573311453589546895500063509580062935357292975938115110313089210082101164155394497340646614953715026226624420594169034833250320786614705022559119326913517465279818858821577793739461907829986168118391887934738999188753898713029944603227648086476522953860828789318500523340157820014445562927087076778785676636456710228896281012382943164819484419071993633162819398226343112004404476343321451521078653724839717989373683444939779786824454214127329903630056109071857675180831854041334012945566547790822744997979535028735998928370754397930053651039961615133588420084823185736227845819648189873827947342970470217762392671131722072598290499395024560540448961416200145311912827282495122755842682519191447043428549308195034119270566769218352735860145119773611062425376947097102231049313985710612171599544949809965759492477739726892710518187058878666893498815324702867001428040915739405437466253564451213179648795746716442550336145484179095837845905172192468499263979905640827783963830428915990162698921918938598746379199713159510737872130491443079488660944760789721753324315627017713123895999491544410132446625167064596784225256374056862550956171498165354138093664123278846626235634840096887181729321715602178711770806075423611880077779365434324885392282213792822315469553888243415830766887870299342818891940319054970392914508598888151551306557960295634561835919196577963515479672897717629976657846068981806208989713184836572045405842478872153248972908485159726207666654564517233426614730360067025116254809886004395992442903443090809415889176680438372727704663216047960393989927482802308960235713702098927164003952049320304640169895010755229446637873054811311686599966599478853952755446132039888295395506022623367432623240825802147162455622077833820019315109936651994184054798943322984462918168954564402977681255139749835177378262769130935699258781407985516701915721522633629071781444604142273763689968409792981259850377860003047975809430993891228640342566100423642414257481197161735574594154871473121434872505000094804912498410379110735821276617882785494686875519009740121347952787865570997984452235536878772902034522243543462601444633038952406310677332590914996213921042478697720522951288434120936211075341216603329374555813375897681692676759382154908809109733101743007589771889930348097861440075698640347799273406144044471521071965661195156329551150656624956615388952237027259569519244595151797260738793822367190293554066013738677925566860064673662498500846193461720591348603484855417784140004849133670376483990276447408348791266382082686631914904168933061076209668259942039899706778607255352361567378989888781920541232784665742012765344161230408211264918382625318905631947158356004890248153648476444602426115991331091074215705299252455748738878114323383162503212524126402070323886382195574877807385512982416405161563986233442754857767637987913435788787004316064298358753046718326940833580586777589609836363862795536243213404111168616442433630665244081082832027427652971878441768750431328291435369230505419017303546548135354192854127104713797268155711006723162015039145791375472809074906985851620805941073873027051186902143449872321156212211303912029471126702331337103693982779311718773475570754550946096211471469017097167602760051955773862364739952855134366171156784714910810524440315827868933373675658416281530169254593494031855015689218881966337906990341611035172578897284004925754813240851151389959400516210367570274257081190200220121258423912378523592783520571743005171827874240379212587472765288203478852346335398738971430310288487944935409579226134636165910852905704095623640858439065215387738943192824874236341759182973650770923373965836317874018099395804754283697637100803375467067201646292744754279908682264858180025029986673076672008813967260945404348772099929413973100907000220592096944948936321277251798626592391799017934456233962509108560826012476662037432447793429060706418213227563106216481913990006044539696149090939361922955728579548422521431243997556731866453111800111328844796002376395041064270787435491893211218631531085195478125762748320466306254962936808823628743297654952691009836708859608450224451766064558315472145988623622776949289268226945667139206072763164845029683362472565115570244134645101318347827586291744616156949694566919040616547000211184477586352543552534323344944887735583208823448782299259995061022124811211706760509982060430384016623545228050229911074408671116138666921825818051379619823470509726095008937792820145752378029732078521438640539771799273235281257473051391117714539485845125334225380790831097330673771558088521315097629748514506218088140320764472493182536601262013822077454254968199777936852781482688160956855704961665493535094789350920015763742468213694522814284939147400159610623441563840085438800788890552212464026756895178904823715059945277222208963683099360054942928243495338015913042240294580482588042615709567448517240773365878776076600643948424043001843299159235532886370426207241079728134176546915749679667695460597488489595831685215568930170818882331652278224141384842312852969175061811966153795302137528763582996159898633482859337193490255337628167668909176425363821191188110776171102854745085374424318704046570295206084739092055074996171128851007445364395439974784216669800038800971315617375600246041365987410829180443377584311587503308362669997612647501603830890331382235426956793345016169204875355244782958735501822826286815767476775143153763352303983149638128640109643973859046414215565848890893869406408645804809009187071521975281186939769648708753347384197971509295229232317455196531841378182119692125346067877513268223930776342983466493486118445676748126937379031528750088648029681526616427214592808847981105288791135329565918573516616116694299456004667804545097005587058419142423207849362959688812367821072530673555673434696390808248756524092970021874252537421078263583338655830258202528191307937239816452425767841400586570170979334843614372449976212958172303118674577865249327948021142701519518629597775455929965489319711515618515141570289426694930422443912121211707636716962171689193850663103373856780191502913530989663902193995718757251881193508583532918288123127810199257503636414331597915122189308163891030564834199828004489649900904628873985545495952154612403741057027336671240304606207404938763026453610748207207848528574287510158148113274201288410105063306906638762829566252066526226131378256955729856967656322272845756584417383047283794850600463017230146915599850367667618345249041212468109347625520826671315096479308368807542996980128406226295434454783277614502706865659524116151602122008080668607220630787566106540415338119589478689179077936806958675597760364506136448308173474265651248118598370327121524854629340336998054073935568086533307337759142492671842732138772644701216982355262894012903244336659372114090198484308655734429503044295834894557012121818691455735051555294626767202499566782960057751100065564888525253661367710125057129812457179871123206368672475553024772051296066605456998498635167055491244882451246383983728287791911562580762301604443950881034184549350182794240863933100189599080123478653606316331076137564484704369970425874618210717715240500328454996062439177011993865253525838726875338199846526522509524474353172095881438737296670186849689741109375461057997101903989547217054622583144490163550058431497489513730638424699978094681931892330903892392224062262890786549799916831553454826309716707368438393849502835155058471131309653559127738127522911730480002044215924059574248923646172194808732715978834793299847664065497765683742665220329985938681567192299650820156714637015355800813688504204113322420357734353038309094412433544488317270899962846613297002516038531227512424195392947677913452274693884201315462749271817309775976104454475648340654635773738691159590387787425345402724363709980389105147832121782730550654527091109885486051779758014759431565444131291241099474254272532383015510738344814237983928747658205670642237258082283805704287990363771995386055317201866303850150831205113730165546254744029958236737660138847826602516242137436114044829257600539604010778378905080784628751237425102036251509956891627013679424000309979689791989221895836930523586135852720495088213021907607695714472884183473609762694982220425898888689896965030776374701703399451583531480409590123160988847012961464324854222292523326128170599795678166118957117384874430413273761605083379264641682576523985350709295420018989338277098717808246209357696706085874929084629914094200428970414889722026458699137096232137378326404603303456032342271249829921493478108877365503811606458279972313643239406185087664850089663310007393321171764626435718157331634494327434555174594098719129376051356658573533726072726050619397212578516857774126465971262218920148439630070221575254830013288794422196386353396494042656725172124803764056998919377325338152129042717615577526048029881131109441050487775932861917702630948237534631512134439814804739527164224331710788111834298330235679411862780212476942934269077913396734297333646878416509274102896597603115951992423495088928441120790278596212366765317890855482805467713397774651525079612551994831625331417955995689994118624291469369423488809617528836298316921286914302347577364872403030540853061871397180845209260169471300525638771277674019542941128144410579319323150546485687148699626231100142586334782126899781108909514097791169975756338679000966310740032226179471676201767917663762108306859013791251159107848094872592642339120894677405610074561623129807520834897648270018090123594265666118102802246786112488069047504926139415647410876601466677928261698602894250417628831036141941837596265031247332036821194498691600711432609050117464220271256723861828128006639235694670539806595635719152265057193576511978197543737533473610347696674982236249778433825872931203659378155030584675466797196433220388226614148615407255838352944438097668387724169655054212864547505520578270763894012520117879878880767305580920173754798544361283311970673008987663907690254099303305495236695491329718747170571948938527537663901475703916689081970748154491548718237463918942168183802562122473922877832061025604339885351731040765550219872355179220179928189209781831308024451892278834752782942866888876389450284082101577299222220365934283764047512816064340810494173042883743218080490310310247936672279076763827888061672807160235630580654564047384681450111314089268471189461192872643229171778228850755210306291833361111386332753548777708867739977115372117569628946062492212641474642951787794845029535415108482633692635150534005387501478441775716628358288175452691605075375306873603184143780205919003380190172974657238579953431352293308688324665782925773069909701850283364119316846574200828072639099318876779741937550182079361449414969466860157750708225081247177220240133115585848605935068963605017792972235015541578098055856306675992302578331948967363759261642560876500803094854213536299352492950572818775055721983761359103354400398705418560336962973553696849687454348712252589137621338920041011111062094451234656442285305436898623829596039546274740774318053693618936500411784300663951895484479194388558291286186005155592971804001703341877963617526747293153177596449588964020111842910887096784023357703151611584309267412521200472585166826277473474454558551667488302147929215127670193015640816669204547190016987810920860447819998556272914667886019942255911092838818518868901721067932213721196014342119514958219127822703784948311403942567482970889979837773926212972949580431941586851792811389628446336158199651595394591784094966714042588033435631726882255948456933643487841083212823055410013447788826315603484394919219996659068576502286066712706219591574543603402079714079195118499715452168557638735110575173428597665990837238463240079982747118721233545387908438632801169546962526549613354054851452901212681316917835066234368913115846483756045940304019010753786417631995901864642868619329681750869008067580732256803171762845888181861772748412502050039937014849507507867284173279951359368716719724881928009226227209985845774554151916026630693201430232670035825000565806128677610133618111570277505549262679217118834646101392862131085966886839686346455502357047972523056731885736125820174953142739417473182750935379830493908152454893698797359357251976597614999939393517512310268476955461814705621318144960970756852702067880779621044204934455115416688949272115887508854581960086203834043161727372437006352219254196532900874958500982591419120676960149492516842116618719332184250556292576233463192481936372768670874283638106046454376996712919464844714269168006916997538883840576370594411735728640455582693210348719936193883108514317306675080579534987036453942487814296731632677356168035248062668706489424164600093706656048187102982789285131711906921873262234544757905238875021602451775065032032309855424466068365189740643016473571170594371283818676515184405632879576623934209495559172882257582866059253093924802333489414499618498006463541206352673086011524086949805547938801928356428573476956883850554282847270359096796276267654988652712175398784683693041286644926266682232699165641724206433341675231073385594149734417044218115552943579516058797565024174351832853686519850129640318163168805828621142530844152455822493351205112293665118655461689644088271234314928182804969577946160591842742746802258327424159392575294317093988820703177167713981320047448265790216664906401531521450889511231745697448183510157166270765311520534549143310340691722795653278639415845925033124876259414211724846853128366524182296623943612616459336043167435497969565836269606265704181384154983364614263365311567295404501022260635883174202315884015995220615271416808694047725062028869399845408764009545603251556575787556555296307264619472668755494117050715421484256421974608556615773579704985766508998717118954836961603677291355589425249684584579392755925000264323123856750314481755746174427610143195222764447982144672937532084025166253062454186827319657668669333490518764050180796552897020544751111609398799371116032753080780064386706860121787243100267170635903622604879716569241121817553515465855170630697910696158848563648547917901128212503321894798663123593836984671093221102619727388454310777652512169125754002027573512937100613097624560737243334893728047463073472323436363264001294830707210384655198319352914813442685081205201703553581077100827106356492921808556607744040909686977756978257163859770729316254343844015371658909904186503030561329580667442210098918184004598102563817974088565711109523954593250786217375932331537196109845344156519565344435748123071192733595010097480334781801417288309069211895697370277091363097594859804933333495397400005932511745065596889873679613435879708840725585405888761594073541343734011723254796547850241560409077286349837004347102239024458075590658430143713356491090615181735220947692197149150971194460934709502389296446040645439164295352209245991245180588930889189339937372638063226850358152269907151197755649710743813743713564223530822318079394356664795622275516082357605404041354409570994967039068750081770972096427509530360737325476001077451178727353393239501619326116784377759692679491900869916605735161962788966238206417785701210138538304642984191400346564581707663321602024805189796844776858852650277999668564351606074621613229441777040978070538228469305421199140015793514034597727810239232296016190861241413337746791282804733652310593976381223037721259572383166716087064194320584679823308056728283415477188699607228949910840794051084816675087423191846585882554503080098740352206645386623422649102583204982488021514330147205093913332416096306819854438259906075268757968803749101592111184719693429792438399614658633378336623592038633543126350350584355176548830582670229873766973111208887772184664616703322678938619352595994217707132470583527685676906920708929594019830135966133661336022076714474966159376285990432457196889993258595478208528384427080636205052606822520138408366274715818082648053889519893108266535953032876627121337388524630602607021391820357524221462143425655607436338426513692787998224446521187138899731391332081326289899402576456325921198603362574935075608994853377128510609385822900671522146261112746243499234874543678060082988478546142746723417841710726715988567707796036246957173857165949115374635479916200054736773169965703844240147665049088555703721744983194748043857357119678007447967870183120993182408592124446172635276700719113238452363283594600195397495604020729743516513139062130529150003613285561159256475347714503349188849612102616716791210612886998819174309091560196743313371067754980587978983027713071505539888926116422538284030661278516422842913622568026053851159482566925906381918165077260416119565533201506501971199955305860730287050436399694931027566068301712326130709869160592657042673386402597005724717141862749148028755677561017597720315498780129077942259803396977479327652680417611479848006604098505651717786260255528881475353710540697010688178881758786408511877327849755817713107065026532977831020581965576918962040320058225945576651040013189965979063783333873745159141015462673887788158247911141634861855840190709132603054497360331569179203987945531897274871970115284259506213554334702548469137796783663477223149098000532273245202980431732788016897396209269164290120917919447814680878474544476204166065247232095335676728734403286306262024600078779137492100771056107873509088791253960250847039969393449802751137301179124335409158295283086414578273575104689491393140577454165190032696446222171169459031385828213040920217539649174599155773310862900646452970591121360363090187862433778170031274363249518071805947790833989744375386026209923626662863822640330089431596606855177146308757522353962681338624889502100689387679244535924997887634923423511927211086986308853642875843366916862347041135354101769150696728721988931722425884074079539473714860960451366722595367655594024819584598772061978571461937379877720467743866362600785837169715018765538477962505836532362864657105166508270059801718978127689130632950199331451657515210071131338253527213146388148011386730666006669377699796353349390096991152922296432392516414139627745966291204569646469622966452433769084663702834725637275482058765059620661891884094137398959159794954337867829576518173668962399114914347416127449545748115512910858608236528023821398696567113237530671578414416948326757604652010198605402160028734152991073738039743264977608254726498016627672584834288048352284637115549354831414121882998115066603121528154610504151619740860743612444096389574026304219943232850781083454373128794221860705127484994717959693763362031220463388535346882773904456197362463460717752811671196801584032586146128168172202344121162753447799363776496230617873559509885506592317476574213273426248748860820776407648312000062681461732840517913273673516205548668620808836303313342935556770134727663036176567813683645988825377676280336392101046773145580542867729382492824728932749418083467213291295726957221324342685032459276344851254894012306687781078048328782539247428967458498984483731743143064769704951718296911062289422521480627502387823215324811109429061613330966834997551138542721694842303470851562113287624109548356105014854817401495435043572162327906095116384178781765609713798214604130344207484434464318170829043668910072768078734471345542412272986676473489553794521456355338610758818998160518861545747260782391030457758276207468694680901015230634358616408447480729238083760215699972075282430200715808882160148988976581329425169485015193029167782736364243611489845292471714681994289740950752667670880761497091905014684467369205060562855555076848726806821095617894347380776879138790209925481731199228513613259945799125186796231697195355778823451368873786972123802303904120485387152229671669454135226440608915968646217300163326921288950478715645973495175921191816938821315264367547031354938335137768432331761910001020388911608134844040151953244627763310108305086897898638491558297533368890349667630932473442258301719936237659164511326546953325913770417646870412095245303105473142480155435992501258730646431428970778926468904791773575601812056480959201640320744715385931980981945260987618045720783758111187900454451890275077000989692315476512758976967256243659865530809597259118213739952566219023828940446976393516100017888471405849049652750191794501826380505089703019793630643016770257567126983270815030650532072611260347611118393365753876994392095889690777233842625168182614587224905037878696829168455897580414052503764654291167539203415951427930828489750381152521001590286083168156030963208349901757914608393174081868716703858453025292049443365844367671610891498828508303688999834463995698276080584287399910056404088469578429048570593339326896576496316340763348390812718546201913593533008008946301009625605432968860174499188628088407825191857984518192732712746287521483689525076007763296026252897888008079594319339848958736618921830245172658490186635331576706131767612065393443404120286465869734854587249000977176865254670823817932624430581748732401382126891633788939728544027972271306959701502868710736229419573280308324837774947655829314197257860715454740996200972278844508648986744639235189806944854995351757121766197666982292285758624761855837974914202739540163505934683909759708068572161032218592823147479464053748704813418861722266520353966392914458356138858424403394642985706945943650245650772711203508814680085783887009824167819004427661770654086807875455435027574353828011247210150911783338852036132696695746861716400261572141949921556215695136631664894462849790213738719682645077784640472912659424924658989610445278849993878700603963601914963328492236014452212630941261815559387267829831965984151361224221278430536130243664429801883129746090355717731280055284079827313534230536701044184762698381228448951994002972184691302934790862625731542406781112256331844660856977555083263409895997143600085549063741028158986172556393353436942541396816798287960363185897048480999416322175044620850022772699632324534395952223154233761859144167267173666319584176884929817744071440999367858568503328935034228935558464000291363803159391652626279319026216092578429090716562464558493022813651099892637072619604132017782159361874482668648545527336493386142799318788691265184641023715847736623709832474321526310913243640608951103408476102958961011303322926916444094891856916925911570623693320294935315253290376293413792120953029116873908698263046242049564083584247750369920732223523270826324733696020787151479519604601005458802722957923865832601288502040747848060622790993007911543924341977601021774775964933761215201482949104798005373621783951006865194672450490836853207109374353598743412927356701239880439028899194548190701854143480738723971544726285897416019124919791987292200511891231779096268161118993676090797093137498487887508526599968790081402904531867110728201687811287647954422678960761101415076898027269642634186914644902731989528395502413854675927755197955618363096858662516626057849048866712320310662890377589732232248802623816508024171555300370728957406799835570960713642374682408923479887045780110303002083232078515210241527552523408049054344496905051464044819723231453536946742987397310285533462980061589170839056154303359508599761921751693417938044965779540183242710969005360163428716874781142746935712727551489648930049016930309783541030572930245182227620744586686347584011434945789526987006500851329557523770735401440882133910102536912380832466286337857334137273122817375556390819827690062453850710248892638098059030025540077277544549574593312215498573193060035039511194099586362130557438046390496926605426229668950355766173052545552216067723684172754255591252069705555059114195397269372250942768086528705933009302879475478827097504983379733072994054866338420978687214821214177318499865604487419452707026164821759818734379413048002270508269446197323318210011392144951911731371731247698968457573581182402842183579003673787718647252079475224260810222009427949506931702548373464421075879534490848490878079343028168056502852371103666817673141791690921604640878843965884739606796925488935329239508358548872847517792546512207652005610342908877245457939008435470521052462509349056642104834531799093647502302750535106171780433697430954112328099068566278181960663584235643712674599372692578700156666468643199983481481832149926533097627356170787863832679853619832821058991609184352131628762109836941826213745308300441741836636227724289622395550580974011304755797090298490888307198004096925783822865009716096798708823429148638778028072295878151305280957714624597636776502646403691412342819013219780203149293178748547447368457817345606856235781765446297936454900532498581659738209954046633442567324959511280467602404552010702806375255503321552876100952880591769115593832637146016599621744449593857698992315186116528519169951861314046390909992232773152841405540259905982341043586852323259465673391315096004162032631431240098064916804092265101851203960116821897404227199326864130787016762753032334214336240209615341259201329290659620391088123496756155550458423119250907655330232523324967295583502501876180886473239885624386144665748552088118592189438259287945785315327900852222631958441157557406786817389356870350286299355213109621277847916758728511954283343198250276571354002110694276230038976147972933348900684938260298709230687591651552613884182735557059842146834726024483753492300474122493426516212942867103073414784497878875313239726277478599744318071949682856259948704557926752774673094619302305831243456582892233645790733237954961896412933666343756118663747603216112222459894582786232979779098148018164446250496165956794709023949235165579467602469963887019480826881247306385641683531868189009573276242596203910066943912628066467870742465184640915277453781719213043450977471080432081674220124658328485414009358145805454475800649410132262929505148208353690162421295694346888453642338352308819336734158694437118351378659353800054849405762607461687211906324168199299330726145723646701211678846975477953336323056476830564213945656555072125411445834263109045511640948356990122058345897116196143019212790991344391263558382196545382939157841836030371514922982385371155099068133971457172037783345108065646082123948932134681534543851415035051409797276884059551343959820751703468738119456764127136547258828450316229488557419768039771476271079126398562181600748972107624879356719134581956503835478025843090674832773885969994048722155176237699299310892114878369842805178353361728251303565519996395596131168509834862420283379024575231690076756438075042278756348763540655628520329553792311964063040844363260687323373387406702601327433950747242908379746822511113388117350816707856775379369784396484484196484945491659199666956401548556831738524887297844034832138637977554138068919936545363766021025157616586731630250521462202581568314440436613534868463078370704358855412606335179197748556187947677592172387683780025884877954642427453565841846900543079985092885734487807160788115141288877491990952811827520897282510844950903507621661150311256162158776519274806111906108654748988633027348265476605805496006058330824121302213181424158543719512931892935931092713061207896889057946048723182505539468029654743386386910649676884291433871682926623034900860525681324774143392390985142046715141967319174091664013805720425449441848681751070291632237614189209232653284689320828289093458951322569140761411664363171727014422628095587679747933260691462763438015708641287763572597733371569090132050155344232275288511933374474039086407042815297500925770619709281741235859966502873654226145121458065218847602090263652101169106313233646871665784576403287660918447836375819186534333141852836634591388812656082829550464314087651018901764541050091525777440491216238539022663920941325923275587005539712225046555954919702256675050582910114504620707293378335102235588680978893096862794803994749356035745080959779235243416109641535766847837689450348945195851927931130822015923206156582702927204028849013561612857116416760705766461827302480133611046831111231083703519179851025081937882854091607326538960160532901409769306906726996681869509693300906094422491102580849516345256535104475395765802525275201364971358648472889080165683438390708199226126502031440957192628891563376928997701869380748789942256476152641573881990912240660398476065399453231969501203774356666027525744205561037884177264384827838253777989523431363712015091566485939672037968781203592758199875298468088265719062428423993168444586210578326176407149687718641660862289900826772175632176964592607638816199394602294062232150200784402433558261171645485048340694013380423886248468832424395530759001266522216425006663297078279524586121698241841728931715075729990383702518296328800619339645320231363975843602712671436550686070821602090000348756326181564229363933494352387581685564735233808998558943481759032570594195416630749532480706810741552189372513308565752191024378840573576811231009140964147636465795463475100271401932148746249114864092219429493663976220270670887551292363085520116626687500967441565718073637395545548446469845174963729396612560702288687322689825795630939246228266256735781284784030273583517855736468648415962432981422905766914565628604815239040704534098284053605933656169522101549611353000473051326787308293437941890183809235976600326820623587613275748663282312157912629686063757785021609961180845789103458977343303356792654061627928083217625645908481937388342417789830831720028278773325967631052484850344758344399824220074657538773117603691539062886612037469258314364010212939268219047747969611709258049369542494188633847855794212809762998144849255969183065001077622370438925821326694536759741063758872144916612700612931111865127036626643601940658956712882290665312690131567600024316514069379631759003661952052705811499347383196519543773446203623052772897774952810508938905477680678021116549263948657378785389122198993336992328808289458869647611409175606840628898774489015926692737041417559976615850801243680883355070505210386800991154568865902066694960830402320487195023499528825344032079114318389357737291586181122735755559891031664329962076737959120544824620468403927398196047237631046295639520156737447694468494168864442616845122999582976040647818351552766988245111027882853835383751689602688982263813996046050692049359259999862885450899779588912584372855824895601912826004156753708130870800952896015525328482179809655754097777054383724359682313481845636160126889482601872616824824459155972750865502278741107920705613835190837043920517592595844094206702993896520879713497019031163441444724957551322421767289395077004961025690858219184065771098501917128232707243734034391951107903760211864221198533760271003288005136145750296371405308358196705093080914166453766749765911891431512113453841456289007856809783592194417141399510329959173231819855517412737749747699503989971951394229352826355743876611092768942125356499145871121338324719846824310939076139587357012688494131159640459492959041048956292023950996188616072515478118362857879804561953490889702575268807486212988466108666854395596354085034602077942872620862225264274620265840732853074789804722279441105594785997427146328181181439382624396506848145736130126048942328940573801583173964906135890126690201065227332056182001730621402137371497015566467520326007440808147759071105038868964196857076779864932701340564563849983091300882955929273650055033839828002362498692809099024826087624175820595332523405421764612772707693667168038165312775069451684575761200838101024697284593815295085156793441300787846765958562908655508407923756965461309249970464566258000426998225033950654905349575874851421955230111081033399585100913869676630722060751880528597992928989308817313822840965887599767446498878131451958388578989842167608625492613304071839526444197371812991039045168323444954753904393506134250629839454946305994207362423073066361823779026971469068516524280654424142777173538435746426088003574389023415497057499479893748531419885418657861380380697140661269407344425147572172259857341046332243744940351246455764580204743539036800252514750636756000072349942720291051956890096489599188216905327210292659210031049115918026812156727575616121521926450603924576771644864692505242962906299013987772211095142213499736837584714747060264541132448055275615979999334300897424555962473369857086102839199848767090891635823730875768582187395654544909314108026918663752067245413608555269658396143416194048375638037405679652706507805098704859383652282797236027761160990902435015955439843288935413935821026641161297073310614354215969923565083421477549455619058760875382162033972109768296152899994674800765808006038637875409027894807810373039177047090001179229371785441858564239275716294928077361477316619713454479887646753732013635949951662324874698107058097445966714353810791511319382536342315679622334445631598776189465567992531253592964819580466029017036339719949478161108763833743416521725287447402848097462448805714824088332543122212589433258822956616608434999162831385764586071089115386629467842007347966712126334365585961038665881807128503933876364397154358524516069981517656465745373828123325414517759698203459423344024854695664485193134419422107127214667577495044667444123626153065457048998842719715684866861157903609827391286048905328448529576661379499690504556862929877761772351137466525076557837178403592789298580029553877117251737230737948871734689283055461064442212169467400765869118362862704405960160909158031186697669020657129997114308401304486841135402204628969444570336542015102701381304945292645528331100778820917531321340329171678263805993078850694415232309382775120788970625148338976927981960795593800735006043787935277111855678633200512965659792920261292754840932417831973137160512587432690227182688932596792133569134769308059918532798996379866486124735541777987688367314351943283661832259417056841288694481688330573886384213961569084165272567020441857099923769201297111804826449193360000831381612399927340010810662947101152427530855561116131905774481375389375066406204552611258383529008552521633929487166765142497592479835426619704825772461160376097422594264217293632759959240250711613830600454720004964075493672192221923421078311491168714294514820230109248810709096042286440716388528343927820261821893832125760528524092504107820042383939696797137174604909209858141234091765008907994786711211809866343431246246960826804826274939236185368702042828548548393167538053227079146278330257277769685593001075027114814555349979705211471493774949045837241054812197974604005079435254424746754878437024438509373542571343355649220947271548729493517250427819040723434807043167253306868749719024142964368229293473346149094849245803841598061104839432346436655675725776367585787957337548999745055727255002396055037332548116878851980405583539789642069837520576862541771751589051890912057797707713608109224535947501703792518593902344437245369647515676952584916228023544227510525541310306355703785744407481898786307502400364058618938977687534718387195022494485325163876754628834461954503252671217674308334575129548527748099053237849970119206512361028848187976273995705161327623680186242596031499150083367981729820938575432655593658536125237017585290601363652344364602591207434331846509601192055324540384274095774805843710471796253703042587180917073684370421866827265564714689081776213769045400756801613133956739936416683140478041168128681995036918382810007511643581391890512748606861058505229837980571752470076884545567467658829576288985270745688913262557841090073691514447633116188538939344515803269113846987793904029514772675816752323343320739918242030195470324838213781993101656244920173351374813524895836685874302037049907432809083311473788552021171288612418734698230260076086753296661965637255608173967921787926175860092121794983716759382492050072001286281862445553790857303743805347706325534776812234264699731867358045410587759982314105357357613873249775058588677538502557962562640451302853727929313830710744345428230538479971237991114835301965075097421580977664468245214633814601364133412225841229453519156137395683503117675869356490085371330964504449837397468552250240848918217825211746628720769412156655448834499187773255971922281529594405712322962815386714816752401474536331812387189373414083617766999916596095177613266497795121662402541752133942794211358449594178288318688087664387081731718144492200970933800906177274344480997033339149011676518988463641072505754566388873886352787055785167308369853804196313719824430880145998059929320737636418717781244378889290296538083312207231929310427205222285303715583252325011006589931293119220855234077803723152735970364860680627527578803066396207970987717808099113140846282749376126332250742835686449776928774830782020953689538905319990720930953231113368961353145776493880912523844834933451090038911103719165023091039767372027072153733336759723595379615946619289913687493264202266105767855484035062787600951374325906514394226802572052035699311464822983960951552221868444990776793146299449694879444797700416638664004347463880427201230665100317749402196903955157841793530755577908611238282864168435216530688656682293391899057218821948994526213909083900666856047069524185581922169663120070635878105751033025858926148290569700632827482720891663497753633529728707697572320732934211272656211738384197397935063634647158714301906610210020028262291055867402219878774269433686869271150746312132844286729912103818871085026118878950708678920995732402757027451709756498060228986717022469700142866186978316225104503476832541204310092749408800526925623187530500086469292463056553640750122416570324458541965369206002711621392213219614623483359806310164140550422676587702232135455961029298072416344453124895261896823129441462114358442328284249638181238357541337965326524827956467124781736379782628228837461322686386542527842361622667745210374272858922413910823203346511710535022352365993772783207037634433148905741360825825361270112115444621973965934486669315245960276855336280192603665935817582479152277965801633188403565239060498437674662609859341875329598536094951666875901281994482772282840519992301211449117098977348280935332243867000678494780268239679840214888626905521730464594825676270098825108148982027943573990522460545699749855801743463883801145833014316687251998574578404113140372301143957943381081417061697256257549702345081442372248117321922530928255969656733452757294069654100676557998265768264042411333683664354100103384813113499437687397760788738801001608745029728645699506239869097101044431336875712832167075909975107120906716692652788759888061477076278207552567982061632200491702658153037059454180352706580159078014552423066801545275364624204828174214151641809996734720017983646184623593148647498061635462477403605444957795762632883737069799137564219502410818844793488267679476260189465578685955867493617253223472242701008645081096170287210656795620129446889910337324954069634400589322965067911511693914035529166505185294591042382042290824046474149713410559636249202460357736408860090795826811125863075398124308612286432886964686801660231950070602785230945255356164046764625077315085779778224031403218556300377846378110837862117657885256786194696197601785208375553300995216550958986883594761793569186740631849632109045540571135029893999945028334736423404086007830589294920311820588746732299369011730522803210474842509841162639257657752899242142498284263397045050336104725094210615915684984209951079439831059188754219287375325979857300967927945373517422005374617611304552534810645107775580398107445725560849848545097799382050627086101406710111670512550517269428540168195031175937456229094934846842133545572613667617146046029103758982450320438514231263254219068616656383148412521385278601762734285613109351109943081824399854953294142341913873090021383815621205459776771163498545560487192841127588297280939254953733830094429485487762026604359696012826482424115704842115772627548080278918782876237494388937232819474268040595865496275236228523865279918300807678635267851855699104980825447327922677173952374943975410158035535836249114659581048955242947270750597932935326895016270563991906368036139398351368964342892893490899221430386092724358783709437054003358736094799382491118953608640631431716983683156915272623225513647919128392122467112335557464884895076699943106247617618085347752876537464054277534248718932816142848102827267147196071131979561513887301511143904743883504253959246940035290769758986617649593260540861316762841055175418015270456956827593564634588040445077484122918756230451693803588143206333542414500319179458436343932133586677294450581567953134714642462921356582359590164150368633350709706339804581644811733706276821702606497760681703087260444845618194034290906958188489689289241265467338933937877799447760364395098219252066727140487188550055542980507264339473152264305772930499787755570080239115866560837682444318211385328295822163711262217958155072764761519676839191201206537149354402379013274310305743112376356062305347278501993122214710125784283571539026504559608886076112859725666605517857529420094826830451547689162972102981712344334047083676816362537343745155915433814208042574825669313655483584683833658679638807352169650113400084802822982996465465410007986894814586393571207257352258813454697178915409926671642528195047609373980377224237010429875466293851110364510342582523738724332418819198461633729049899973288875614508532748025658106242344314935365296591514724530938350353038329647670989136026795896955088739451865360164846835972881763052126879736595259613234698138215543920334942894955738590601871879046299614540362588630206787547551657050097325561209576502329094673178449045371575621359296317209677999759337603386861058589968858736706436654181042983688188292095340293059268261405214202265577450649249463610712080583386815730139052026812471035970826314829662142435255980729589646993928592292721503341556166065565646122501649216035542921104301018845742282006448169511341739491114572337163273195181064595773839566558763396808512916622052132024229520546995013102668972275030522883221971059023355243626082829164061358061108671940608637471140254911575517844227919580591591215746246870614518030466358432252511684803277923726421388474184620693000031722025906337218565851283519772098670945014968040284767703038260883473672732148036156647282647891071470025028716933060195889103061818409818833956147398388934041354850814060466370837649512328771579336479465563493851698646455267406862448168271221129595077837776056710447964583430900685298009536645282901964970855774741827911339847447658128911634135797143417725820465429704028485591515827402314288921819835671338649277087300260536979034813108609523356844899178258049309118922227895733358831648750496065874589605468206164696892420817079085381967793567145632133794947697939969674996013618123597339358871095312242069519175070473737348483552088324833340001570407299440749808292951374703647438670216872110982964825364896780695444407551619839378670263929678735362263016967218155319525202471513731519223836044045873904984403742399084362493263422162438044932487922265309620443043125180328385218999735033835751619329012030441011936229863064738001387065472822661511321662787158860736269904792288620451235074247039623126211152956767880704467961959816444461021879075895907515078515340457851842088709927187809218626912855297580670346264214859634500779953849664450047714112042405127039592163209545904365385376142847708615669269780910548163682993777101738812671986022674666511869736516128476434309334525744070197706199071563326434965866841113063703392918751615005470348103985319692795478109477670739918980363707048838290537506737915319675381508478142835192688249972449901233880474148881241694691901658662864340360077713158237930410819931989318449165987445222537806458510241300101742632039141979506231771510166544698637517317329275848852704614028971672686705745957496858489189781360388340974015306610685155522682456174551626626153944931244455512597347360545909127852582953875433050975402584560499973323750148519151195681456095160665111386307749061655521079102109509756833076008839222280816008582701512915619246482213266216124558391575639420459700021432429026429893786882692986197706832165069638649497475955720409288676090255577243401815629991185500627979058832925328147602452510477490497399527806738950098687808819152185809044981815500904446887393935322221230530448793589090875752874435483394391198334027516581953768272235328124304126115313632711604580638736994193917655150543802280459182575804724734696105092563200723421232014348116962336261678821887645845028216140785824269146677186791522911003512373445360070263440707395522384930251544443008858378505453539263288685326858447579066875926340922762929673679786592414453288559813391245049978835307849399301168651722423551163976676554381386453167152757457460375874601688580370284419720055174008266558005920972042723725935792685795325872285257345917822947824639935266297866278076895261318442521586482045768485488249013950941798959922070749461503029162713914243504434483089195185707949945789105631572189324209904883933759263131758103772952797578793912185118033809701607565183829887453564837392180938287381205870765258156264290510290985067153352780066379853554967807128306747678834975695195626352722531562719635540174278162065708132748857179421556850683915002739917926909573623185163064667473262268185931800386504900687974066121951241418702373554811868231926109072617683130426232506094836012657440746591167900360774718856809638202609226559745704561072082852979209424540055399361655063983071124395317295236536001310608463873409880686526947464463705779476080239866529750626395734307885183668700940794550430078620855726406548975145345592101049869763645856284047316410938016711166693632337398016150876771087278330771812204442000760160449937531229875507810354540759398349800657510959162589810082075805934623378104361592663343473057670388139398547559983841968610745716930629771927478777437206302434574375729146189662978777517786034689890073604870634934603843806175555627254482226113487283656337086228372406534234850544065556984776935915771208045815119246660874344839213409641353999342217401122901994507495053213424741389667446284273485177391434711780362274208839027188421344336434294687281935838237140209854677371577781517617581101216167289787404230562340914039194445067902517631789486627635314945673669930835950802857815926102915795425475112658199536602681469587850909052388901540410048411852655917129157561934814856285239113913168705942096238866284831153294300270432210838752306936413058982897885949078906240090107469097446593856250701046351141785698774225276378799016587738643571685240813769580313570929277076917411574960922938611103081525737615141865964649762025730745823577860166100850139345476830323267527423575750246610356074583523051739084035942363990491982018730848603441271650407852989736496444326026398986886662535006075874868621129121444383863704729252253290918232028315130807805042177960683295438552283153826377048899232781980661105467891225487843354035382443779320976321600384405966285939697855374227950233486660564643514846804994550600488488910949504635703973116858315751339679243971292593937900945068434842041615602086857709460615653590938064114692651214286317105678493125935272402762612303025375574454308148905641185193026183886589071020351742793126301982078279215841329659092041732043549812399730083036974949933931612120830169615727035882136014467068617571912399032868936552012376129177705292761081980023834199778187333983730522399414173007206748442186907456582444351808156549784445818070283507463876443680976282192165939225267549197771088176790232211194849074663334645116260801833811024532065710201971735705837372293654550248522952147824142740834179827129751455156635547902500285426423343196574520404775730718339481229198873977659733879840834099657361151464908185143369204180468471785629624719088976907769072536998482544058726066703260034386637399296921390944068034594913837385293488966130236904499134110170553581917251746887846163521699396055796304505326686420167737758016609945964477948099549236627586952421089940320406788180257006042303969187052780514079664304016722236616096039297757595666731746626953466223676645471895795126590204857288938126687970536184363514929987550862969313123874157744374740787198806790200013352462681390188852050802914777715448029724746419652536328092081647349491975532695830891763963264291843177915532241813647225531700336658003177497813337536827843991375936075160231239181814773905786381776325281213503688877733349208853743353774674722080926215587296487153380598872721138487599140349580549743343564945257726282486317932788522536758531668422068664660840879210964443290307905969154249099852298804596440294607324950360786500622882118396556913973776953709803998023412620445487665754500343716978152700100606565351682791080746242350327063166598748901941469845431504277338990641678386792140655164637992935007114841743734339227701846489074386714477316385103723716233667176515942931432477197043889452232304372028314129854774527763852050711910413032557805017779860838887848276953995217082793568158266265216532049735616678379077874782395786432136956103457714981818949397548513406645143793366472132601298746809690678154631621248166016642472506556614166827092610678197544459258264869205766372941585302010700064896823152270484713880825798719866075434924760040916060387425835854595256881935299307456296000703115593110890613165514604601848306712675205550851250678404487212962202177310298297522152973204327991582229345536716276266222686528202876989600764707182187311450896471305882106626719119580161692596484302209515846515317673288161613322343271459592133046354376054899454140946057542849599997073011584306379982160484641926130469936355245905537583714837694415999696688571393618218005738769708761800638393007243765611695285567990384957889542899734125435167868740617317834155740003809522839665378877312023984002673900562370846913590000622305971727738561871407554389302384072478600247090594310140192443001168966842165169260228343282994970514475761880226999927232194372500665481015954725858366490081241817288364817840949294361832638134712974382222357808172584923824353298682392866296349630434668530693857471538453145105165895385763402349558216251334084183565974672203379328665138516572677030732747477384535520656538752541212104679842321545798597937313157980531414819858095303864108890708837004613333481679796909177735900670603954273667651418726580536898025550194532491243177464789206380867748494965837320346227784170794586962532458225227079566593133043459225656647443935185253928145671513121075542966303761005409466222110329875693236072238552730335089770743682952360603810463152105251896218787133890355773397043654178634479945850317058831570587945599227746454736895263472558228440558253302635343495810252824658631158164863025619616705141795591262679264336401317779015447247088130082494075992801380355590669117983160567882317421858168518286886639484078299403724011181514669208058692182796761459016180523687300206962803244267900119638007209876036563500866027685234240284740493106786872224824651095817641149710176289940766517776364813675270751264775761707548967460033826881026305322324711324222398043857957608834386914934329467929917781520859276557634630432920407746622599934787590289065797112224329635579442272471947039876723881592331644915832192850573634131962822181250703426495884597121097835843410820306052272498687428907315337558251529377739387887581999657159487309900257643727173296024670200207413031275899035928025380001411702202262140063065213560774152392998761571608485652368852165912796204644479618589585069572683988318708455087126218957616145558147647111484777353373944446676103294654682219266880719575314294560385345044901741275506119950465883960811073284018042407467551633243143561340095643673104986330921553194803567605437079432007777760452406304160636532561456061570238165924595459809485587830009480733888892357108137494066776842747268583738384515554440386428897534167649418530596278440257187988054508340302239884652736954261217508634623976347456879312201357121534808832172602766969445763470796069304423476098412888146002996636025062515891851247397777881440203045892397253209962153656100584776891240399259755891077263570905530265791775768790189376449680927740430873719480453866799236090913915305163767421439445514508854031109850271993589839093290227302944948519823471486327983229902911979351376191207992899425402838488679633208165722303215945040301600272283652310304862298337340038647980880179588417786311337752412299365629820017332669201148102846870622815031015086221437730073840006870590653242288187296317033901219861857334239746575342587824512057327443678451023040163025050268259750134149247932191545699631828248014009340502524942010695718138366473848448620081693107408371735244724368239567585480798651907203810701892800086980773012579153944935545759298026135845183663506830470582543949281778208796669864640628700395744339284515309334156558517702412832611264359243836817194348506839939060151765208824832045111639715520016015874581881418194343782733849567442044601865628094841579048789317944181256435150572991348270228347074676820478233524906175698812402923081334396856920656615364890177507648848544564042303981494478132392569162809200580573287600583049283998308064106613864606818801638390562444880840388499397682865699293846559030633441149321205066337974518307113043273028910535795808337642706037644849656111841419369795914284395793178527722843135397201395655937610432414251849377819665223066876415989159277203192715847651683656222160701588378229299496510492535994763993961511284135191042754437389542610702473540333937389525189122668905273089574755070383039627093671639669105386160636658829609024376549464215756290146778345877786220402813791001580731503408797660040842655777908868143173447862296041231945769237223482679526724152648125775087366909151403185431845991400041268133727116675196764706950767124948669526492802290122027138632789571024681573425891976792636004574183034279399391425474530044519426877539407680420736712294514304629575938147686361626656168294398460814211855238259589279063722405768562800686590504900839827211464885706585335527273909778200101398827887412634257445533125107022587115926924099247515033686628381948569720592486202942942059394158473496323726600097344292510650644406656946223838632723763515497314184090817878238874083091623837199009426518005987223883475296566333096695297881759896115341973139782757606441662940657728382062370237554167031616548891217423600036185510964060154178672296758006097436683742870154670510194912651242554373819636925583149010325590245951774951226295711570062690024917586775630434511255533138708618673145114858461388831176461365982260896944290633090589771414602757561866107820614017358573029786165110602023986868763208168378940212097579230257303824169476380589581064521316768178538645963250256036884528885480717451327356212585958277085105722928859092078114315897107933649518207142778737377815925742290233559411912190800509563256080914710579918936111068856290100330883889642375396036867600326713673741203299914458671912747211012994493332599167584508117297389185503976439512723341440785977963458705877365391647015865189201193298731079267063407243685542145855954699299243621650913145254092607381199236743315244446957179015390676145314415265026753416190157871706027550457129281059602914316409330267235347707918871296226820070257512361075660126451151515162287787485211735528651160563559647063753273312741421924925357772651526039682032515964989825467888689877589694115276953054550613559062901513567305635308383345145463764057017305303686613523553956929034334699258902368787259625083736628093829422892976844422419650155325452800202165996367162817345777669083378308819353433945629913589664910512459523164957668534399514106876798634004745497960969458263260621706534374263967919263377285041407774904289018970003753772684984581466166249267434482793300462370296470265836078299384633852104472807856959798462315409232904834168036080485746961315903882676410360519599732782193523121746279960222386049432476219423814318617819004285186686641493536520693190979983395224029827198378898647997204176974955044362085121715290845904257824298660556395939099957073386466541425816504624961196449565208333228133777811715901875365223373082028491070979454482706712289322749043061824282797747463479653354413521506453598840545035916660617532078251793659615710236961682029199551070341250776922725178830653303731447849279842838829734684868168627030506686426893707228953004632773174182941958644041920256716772360881732485128347636511832449173383827538140012767455318304994127499964260766521614206784650889975393674356857166215630698619438097489258618378971114326428793073192727317704450858796886819081567615292321076657585309552992910864364424174554699954368033482359978666843671529819432045933095870743942560845435565860663708242612435693385487067786685278619231390517637391815415400189886432974161499359489651600575733897199962177732765286694182571065212914150812856848531417046986020650296767228038517360677037423212240097111848909401633271598699829400324383866855754844539473426528847587763330725342059517316690960670739287055220854290630828580897224193151325864822738797500916099745218789417817703579859396804057778388741381832875820371018761505285037965542674135158826879536632747016603092085705316673397774501003671317122539511597004566049008142459150920942530156021441794721622393840644102245376324437941699333495702273845059812626707336988889858100462293642243480609600080759521436690606020900769355254149933716020700887962044335539076250036676943795954372677556636371039168295282678839718695299970153132563064067535588663675452220017522338271476266992498167007704936613125116547443593143807891643439194518388677340705875515077220841107030100187018596080695909760876885758974489847509760581073299315104432238654751402553577014753975121578698217940336674894548456863018884823010510930832820985960471359954415470639492529991670546498491089504125111056422395340422347477627821542141513417201848199802200164854516589575388049092231531194942255500873997970630153677778400226600779595622303043547595413250780285203580660218488779473428824291283693000551084434144230339314794654998391224394526148159160869526164691127011822316526871551274702459982320558659110884360239176782873410733445799251082737518217643677333082787442385796415380476419974734724611279076977365655823099387501627707839402207050954071796826387022898716709782490804455683659490401793652221130084275798536681628768565011166428920005696945044802139778323376491402187316935013603594924031558729421687129390080029112590723716371420121315338161928131518061424307641254218240453803869855412914609814664216185982690265823361383149453557689647641519154033153409881505317481681977286529063114748575559688961606417548825366134419088064112751829801260726537373098422144277482508760497287870799175788024177827573946328355054372592563072757402401366642388973458465658035899334607149351445717095145564827503937020634170053888377202939012684527431050689531028456438818693518709152290068274966058353600429439628885481818719621739585198102841525394228047815914998712083800293385562022249795898065352699358734113962204531861127727118622134682863823531289105571652111858611220599793449592272977414011431067566385894858608427458422298071501775852922507447024462817007884255572468821729902706264438710780855498275798125290823226438822242207242139919874507872174217849160544724902016826434537444505313614967434734048418613553124864008081195201019281318157730371613853505119181699577775867922732684305372256834563021170840401754097455683461469748685357995750350417868952234609472914797055912938831938603581001045234999654440105952883486646705556506534149946772300778319858555962809869763345599420610655373615346083909097223405543695275211831057790968570391673639308815305170010380950211686681817976893363926926232682089349131293671519984831068030898251093998744629644600412914424198992890529910072511992475023600763252328388352310247992437563978417601193441504393640879311241252316583599010054337435014321847435089433029831834510488065418805862811617515322411001641390659163254423210350407486241313245059057439377320384209666583487957814755064685664650082898290979682393563806011809978856820936092563877668657305460101136924931141849343760019466586126690735495060026284838937820464429201314423408934319900287324695077169111331094732254290026088516415593477385174791920968496746114272757185818779071884670844957993387504406222115442388356792476135273345237474351416653338072292690599759411698216323237612819011605610863283917235239633476604589369545207021771986019701977978008437665718024310260926172036923597451950875078714730280522245643597044045822536470072394465096883496273520667649717053439255767269845589323664402942694940022229904258062427719905427351445500459117769049252303955269761572965742944863613472467440475900605203766848959706620176811462125258890848490334943688806051572454405870213197576792975215308936235474422423117777674357237292740168256560558884463103665041565067551829292360508337477536304175494102317401451619978181234124765330481060682110989706536915939075606330776446283002844592828720992657922560547283831429893910303927976058086231610642776210999095460064721025783782471949352121220441373788909447999053728864896156753949868954532034636480302205716392676130929183447518550563881744230034159871292274822579404517513600409385763344105167457548557422187424397146206773001757347502166222169109843524755486394059560810335470841943416195792336885868662952399611076803791029954070887950479428418041192944424040365927341902152801671985744629134491109929935495262179781674482309897488504819212529018611299632842503056164035138978927359264782138459139616576577785489490711531779828570216322097183795775011675910239181112400824127780216772565438872738796021942701271658311624004343827452191412548157165291723959889636244901821392858404265732350212803025754380284969288383585793797051453077565406270263567936845237316118780382436052038544969628826995769354435842957723106683472725540447281873691652724055181095781538500745779200141077377050207262213483039406422279055280063909140287418457134638650137466913031888240498113714590743761738029541088199711209806750038889098077290435469930398244056793356927765568235963429054682801144679556900893107070645083524629541036621212747865858609793082784102947928211479168818788468593218987761339938303395413592899097778452894253236444897831117006721780200006226298279990456135892842266508661588264269664251716720436126555960697243638426066666483739340352454970480576406459952484111040982529379914084250358883072168960235618801891266036566239755143117542316600534635923592972972770472380917992820265924034920654852278603157332747019222206282278035716127894384400296027696094820857180179091836179373569370179118981905365464853833051425625941188071762331494030597436841658236761607537594859941575063271326973333203491800439716304248377860252462306946587944160230345891211133103699870631178136433855707903748420724981875865146765005194977341431136458882729541121821053691800681175165312870490113845753682713657902561526750973468378580614316005320511821864991300129171574205908609737206452783481432396452210032271845790662416649158162603802422315129032478725810879466212500323399662874160452796703150243679128768205994212576915119254763894761072251072561746641714261614150509235737279522128403710141947809137641659331596855145891721068711728087188924269338631948444122107355249828356876189460528157448256010841421835078313244918300905824119824625325733246867569263376795101730352113648142285697265654862879868120540912752594289223381305513024381643769902875528958588297923161378854642241625425994474641083647164521029190896522066625436010870646511130561895753483789848543535280904979567074671934254579511879558418895132506200035712889594893820666884002241198034034745174088935315180317453769957375124179468084177811707591746250685047445568930885195295031415650604663185312980464234305277369738724523028060764523256914607914293308623544549775390601400901803226886473237225037206724888478259748421685145045386049200528454135456394694702126701052263867248372321067057148673593672766363398956728226942638937516352216094192403087084362918463625251150877548121618845641294408970140892015176115356084204867953841114025279769904300604443114655012232938996711962358023228436676347835062316423324345778149089854947786481274351774866029591122254120407228613710297676605533931023143335080386010914356982493634555695054662844086303439965897086352444931146279641689755291784970023628235431680065188895116348090432640726025305024409607398803731885459142445570184946783214301612915425447117992457134272078505199138556446681123589056581580004107298493602234221609262747010388502380045004644169927044352463834141610074416546085703590398706546264603390851956290342959736787637181867149509728566866780932718498837345274597378661834416370782181164519317348817555816841719133246062633885804532328482282124630982382313641201800982846218464692693110195316612599188093279554341403170400069559712734343934710851750979470879965286534102372917237383323385608762013521670815408687688275594362273913653190577813824836223210759776480214131780565775872781357996813398962856096101457372927340202250201243419222821534168816213039913281015816532896650042105009693934145164566386077415208192234161325819862325806235032224324656531477485435401377523067899551918380131841064023914275939879525187254012430398135224221218639131942411673065734430935748329220512198042633780060201628443466440583940235035428949575183634645954967428910703524434796299744393888011168870955958736579149559161567595671825417319821159174156802099167416492677075223810740509490975374255613672059442861982613946953549859560379151576527818014679382986103960799623598784697308815553031507421248829063724147031473343370690724355825420908531679212945430897013146751191268318757579453529932068571172450667844907123202904466578715236225591659967379950314996385502912082948226243500402430151267114688434401500114672567808391335834092767390107472909734152062860113117665615298320418528339325111518373471349335786517309528366613052427597644905502806063578548133746434791120024659809628624921671112232437680325957143528262984370338992916707854479502711786544311807508978094123504145203261947854722939715378146934702904655468167369644099603231162781062219872630712168958778080898344308690184914033020617492005140545509319761280820686785049860450756566507841036611388784588842040227308842214948580039388917933567783086247926816153780791727994476990759412689684274275953301822851897820156353296209911780370479857108310494775294909784260458313141089732367764360881305718402259061692537987513626929516585229135433232667721061071851470886568701562054439856836294776731099476136162846100134337487102329678714015992658345423471304845469101065592097584506185322974286772038426960267497453512166424537906088669227544235581292510419982676984114229558301331336424858776488955002321718440525045551989819871746396611902056338573968686063822704296358008446352641943999073672907705087868484546771676669655183528878856496941239584393272118793336474638279333025095245004357423166753168247429873561604523457503301976927561348758255418477460580248751109913057947412730401882741843670016068231624626373024625916744543051755000615806737017164906605748996281323532604318180535777714442764210953846197939909875678704307826993366461842856154643512555599182539437458080450690535412215411749344928446320624371620715358941095200698723430824256674572079783651629684650016876438870661900694511847214086578734859472970136999886232921770343675199391331339537411812406717545892695421993542549473572987813035371610879683900787608396498906435732402038798037761778398139271974456227012957750055890056868773307914909235056463990423442915561083864659979097600250016343822155536533012836022300855583528784337353573072186133985173745156990959305132589600849606986227321168731474733305415184934355832925381204575131878543964945560902233078479142673507072069185250678330686107023753824236190730920496351204966152966844540569021443681623077399569971236326707439792341391772575775226432071543711316984123606204549420966932289199313334082406370403879672023500312982809579581555723834239730858708138205820759154795803147904278557898277145712197482266122406535544081131899531834422801807470519458375003970133058503740034733806162842857215164634624269192146885491895409287695610080820848761040529967720596692866337189899385291782534625396603961082567166561603576624858217273605672718750835181803158281571708388276682911372919506591340964069119502357740224117876297431292044278786143444111008897448736634447713280620249371087994407696414434091062923292084376489639915122040443595268119337838583961936797505893871037991760305778759922411817638859531882849245641132673843237159857060577420292225202745943091817054550426886201249430584355054613677905019972320811257792939087985250522109669615437644401370263075882108567951061526750333674461556968402836305440384744992611188731039190045156077205123190241924752261602391317324724638601104605690738735779279045059602816250758039234534114091242867647533437697350908809521093023401075707857580308334224679081941158736343893508904675686774869527382134290144982079623676938573025575056587641046150213232147077521377741902177974858319160561424297761026830769012136442634627235518675548835349137402205352102317655800340116936753162924011398528643932016641901568052482958377052945059789217005155054504688676230668204528408551673897986957761050142287051939163658531090649205847382773885821845262404392354116155208894897142031583695880875116519948240585538929463978398845294401476084206577605341520607243830348593965255582963551544923214480627762892139390311329665624158307892609613681646362265983683631800276358933619950958356961070873182029153804265462506347521506558492754726277797730572083222975820373472280404089145061698244699766763599101856250878958856236502793850743026020758908379876412833594045954213158362636662044942320433796283199280621587372976967818517025445729131484504783692679761080758524609216862970564850828067650705378298834961647255175744055138137071924650616233696695918690156903698675138790175164616326648578028064238446133481026572670610324604586435493329726229455418406687877035752159195280721303839109549677821051698385881669253707737821758931882579390892281485270054608128548534979331943536261041243402829162909248495387764255134766140939253409432796965206693859108840457351401288754961756057702337013719462711821574115142288452800805834049223465747130636079068338422390386575935088702154224272163930397575940785313504122823793970002339474063124186428902100332812135684188505744626996265148916610801762419350023547000079644070779575864257066583876973946667633457785095679014554081272274672606104934449843487898856917563286494934054851945224874363545572010678588117351475575669369113104295964829588158859784221853193702945317703445212981933383722111035575625780906414840358532222285693823038075177968555831113359778825836918849143705610566150990920917387865911979874064971018378548605422258799583939462247740792219837633955783004152327406272555590738498376046345270153291098265148787473445680865045721760724753556224479035534151296625705820873394580646558879563317959932626424179564205461908170975757877588518926134721027167256907834416762755049342550703586284863455245032112351996884055809865267506111371235505406216252412546673590587048628740017233883178369273134154334747457256871979215470474218609835549393044512970867848412321331793006779218680822688173784967479691357036187950430781149296034759064846644326503231214429318411350631243477606007964063854953334935642299966807438749663887353334555416397427988622038769079558338261212984631582692869552409656522601233084857799404120633599550989762568458539338383023142412967131916377246576215747847107149205440694727540174039075715175152204610644377593870745774134486220224003218877342118301312505708408390323495770018911916570455350199763666389926028598449045594200549822214788500591331051526377896335556923420171952560964641220836036258604659352559582390336178986924326833112937960178118101646555998934958246686887176059580028901390234641279493640778026113519108724748894539518705678824981475049236572442081798152824735189285430513284615051217366595806791873454197313590554886363013006323578877978871813947517004870933972831734611090435914596142875197506103979559193773054212682970059979781355358310227338896763370221750452798310236075189058300735157687964866945593307917484023034966245913714136309406169549950781090949252693807722323552456235040571673331631092892786431946706317293764632138371916067273323325072530625315569435723597627281324104358294906579709458256242247209044550603527110476679866631957305848682596503490585586082899295723408493874005290426090108952591586142185711898065670209531253655952225663096388414416863594931878036377688122834513687589072128484383513148866655381442929110989798865034636818301685434734675112557455687463891973997748928236933428818159849446990235672708076426468884697008244925849236624457580958327218263374475094854493283156727966189580972949825351779779697945134074875635222129310981333277303788859036045482634415896267975576472160779271393199303815892163244487041279797519076434382960857798502764612916604899763541338435794018081619110836860109665218352273530209681776011098162105054988308081044077974922495250248095354639844232391837088687898638946407005730450257312844843242165311631704416252469092084949949534509538113756487951164262914344320221373844142610712696258348889702090115489579340507485577545407249161778134821447210677758954134502958617948887930018490974828863063561732093047714977422693557646440396437057479544939254006645921239737325020111311893846558742110407602706816358745866990204736406543679376580757710297326294095837277515528773150309586094006279334094441126188427536205443919110444041733270998439701808580857558734968115481955150627525972839680229759793754662442398457985287300318910430026655639791238769885323935913598770982866366973411319828607461363398323432760582601540251777938558685999671224837851600485204043999585707977007148227026122796527681802106830836489174813013593089465155806715587453854923241273454899206102376466116460508787774713768989783579419679863135108048304869347362472314613568308806843794841723753292729770035313678817666530904613740945661835406293876845998866836146385107787469802703188347500766388965088562765175467738145119546420877938670865753666035257019834946843448347074879444594504912468399983039197543371016216236219424346208729028205277698275908838001148836307884913357047759543542214111617991259582523152795043494176325582399931181252473129373665065901257945423715391545332050767138340025727011819509502751218815979410507546374862820964475816585145405713306664332148788318584846637455812671984362164390562938847310873510441456216365928415189338376083436831345739197936528266621993187970092998614023760599093852196165964655610761160778711280579313523113515134723422052908746925166263805921201240920860515822507260439336768300863846286639304894343635003220465253875264429402173661981057917811548214741228280655965648052765718483023978905418501998603448689099688752378361555447801074625726844818052860351915981520384333737846014982709419788988439544788524368425184490704234623118035038915547216140990326649611533733318796748244116819987536753592975134780763968409426923030275511097599335142503939898344716794647142046428870660033386043267786802774641573428966108963293185239548058558729782840286634536825631331116176491362143610037839814052983943760769858782282651037479195966665941564545708109547657515505548707967310659859963041664551292291132666567305253021255818214939881972018613847847422361978922960253100594453721096278204824269466422361196726490333479035934553806298812021117643367383049429336095501158980424734828797140986642086948324334187625133981084928401496553848784445206890416073291495911747601090625360924161728141626281737862478527690300440222341991910932519846866168308643002440105631895082113025669244727985053553850257112801532247052872999257274064489530975114352509009010836386353322632824955201399828709343374208755213971780342194140104300791388574474595820912675746791258060061732308181779997974322462128205711639751146018021024013532759612196562640770398817434627019541225088991676366461826345287416007885169930874642085148734374171412692786131970837534708877959722679122534731573732782274677608526811597854785136835614006885939082477986205060701212017328077198153883489311487797425797035063591007722058892181416594768980175888685183422727016813952197209121617170927244970760435917525950710797570967075767466415080543480715333676381975198570964593098379070012721181933029204754100774238337268769824951718795237109315242041469309708021727415006061158002279705086651379478238464371832628847693550412976448735205033631290757914831299140257639002628774786229753351803983432716459656804140490588858489276509070503899639082059895358362976399305414893661182709375283106684813599491308545765001366264061505787929681043374247504243987664393782324321303440881060534347554177987576138962477372571114947322743881102725762699461269098316695738016846611629748492853467109069776323324802282522625223158047221639677626924115241040158067139310625544547282736420868237141065522361905470078197521947154986605602177918430516463811089345587099008043898205071932449680060353934599140805890952558251732791994445269285782070386158778277808045717475880091827165515496088961683937825242599167140275386582773267534712668956846254175533080163529780372759615912055763159844496650752124463251976742544960216999773292906585765633208400053021342542940252518430071901081836665243237556268818984138809382044174734295766344852249580788543523821533153029687297752603913147321632565450871372500699966774868983833801616439930661299984084913613966043575317320688120221744729954414687947949370061954578023227788227616122490865963887853878581822546822614621306235599047773372832710101160078981857674772925542379034923749250910296853237355221777323701841126796268761457143076553212714229223307584029249497543749629434528087269272963169774012119856213257371682363572958420259281597360522268334190363586958313527662896122982768421086803526925578549755842482042041352047949992509511400011186539592436509801616580604095873537321707950389880309227034826502512169776610867454709305328232950626420557854744504918860954647071892326019994667690603590607651016533844405538496544702108241544710071477820397616329932667275855993588847830335230472801954391462191223628950291091592007134279439318061827687716820145052244962468664574298307118467203522310695246824897344980680620450792864218512532592751102879376217918525726183752214451466926300011759504697188072050029931549805644492294974760154251693373593773976267914784907969590961568194968666481876819823339065103775715051401233921513924884708229369955292494437408514002301711188422005866760163083743719324311383304829057668799184389405105549219210362359182440672687813994408216280384426607548162258014138684525644034093898471779361013998459133151884767448637396159669688567251638866146403326754155952514783122778561314000553061525637594019277961714298793867804709750559563313204678337617056634193369760356481108918015328952781021566632079936888449028496250859199194825723411305970165420111096670157135822015509991825407451452517200584378308055912086830111934953224286087794605009358173275310722295792171637808041081739756905224827786093998849178337200250583525245768956275707269383541448150836589815307949697302456070111009683404855387151757531985773944916996969189970000714166190951390356461393728494991973938650555633333304772444252324170347500463355183376689178233849387034008357184517344700583154487248511763929168637883523832307134227331861100038424815624299242547142549199974131127425128490867696655433372819637513366485948363738061835838350415767012765158495289580415140931316628261730331377745543098473228178696685104404265281093433540291717320993984338014283243381635724831322376581988246304658149744238670953820609507310653043033435064486831470449939246665084385582739390293712736250594479295752471403090836721264267074997989629909745130340853873156184370792325099966368373462744467425572618828483994511961380787963790234704253238260570856191020084059799465903946464285624413570534624656630117218220075082617092582985196656111614149643604083718294214769772261688600509432407013241243159871746685889961414963764893009922389626371538576383469592364302993959803864237820506453988826840647865802068718778791331599819874243125830655674742004335716351187632045185564804183693666468900899078576243365907307797279445533713220341189025426956703205748401871039342121622743368274683431648973025970468085364097939432437669023336856479633171246351400221687332241486038643627941636654660168887346694748339966630127365390013858252377850387218631636713222354366412335068011751322467112864977167519568128812033192492676274426354159155976170409486337397574204889533691017373413104979534672898808845253582836398717899105912634345584045922250549704991705718958579950538161010929604698212161095591634380377915722850480521946957423815478062739418430434073846982642157881365907234409169966709357585117507252236719564022328759830896407764263482499879510099833880562844964749992607292859269420978782651978334943656278561130185890996690349027480277415120779750570637763285565778293105049830176429564641259389982072284518758690025768894147485833460203213747196748038898789177558857081280078712312038334057167834568837403427846460284402753483492615279305743580281765366966145072670423667279676951978771420726831536732460540886724662895011824149161511727686289243609041637813522208778686202585466752588408728727524320578682181023394827805415533987274367102650926043323633307521622976105223530155860278455487395210720195152366478150734688516795182927464972230508438344967833142580735647703427760875242037850389324510444744739934827096131817787395747731935833245098712715756785416127591958587264708170905197331070606132327381178419525800741650706833872568282583187203008119645823750541410260031322321717234997369203737281878218726054422058959462261401769709608669807942085073640721279919396917581793914272063913884027742918971929112561355288515704422584753208120594756696265290869354415748568464771282584025449988000611234371779748915058258480782939546756813553371239664808739179564065290061503902095228012666147618504179161393141507206041726578174532172667112753006977777944407301484662036022308651497256913493153524635486440210980179529910319941848153768750816535426336205412129154466301348138254892789081891212563284722541877292122383689656496869214820999429267537271267017279894220280309029561051581373710197825277228671120499214782102182839822175404447539584255007394776976049930362832903106597594176707717051288034427912278416640710900536565444685278525192943264966339369901131356382305148129754046834593691188880091628580532847840584969655020661326336874551433578991988995891910662979741030604737944576734410728174214962065792718009091810231801014332396354703697440717692636788824171930638299855160743029834214828952399091671500445504940690966555767759139444704789726006699296039618869858294370146730786931521718821318343921449301284670353046336204718387590373358176018653404883854946313315832976360012236584738401236896227044364904519834279968770470608239107833468136751412497447304799106673252579768767341975313254605433673803200574411768817986600084855604853909426187730282137658804141799703678569027243634301224588196789801791988204850279387720319064118577927219455879205262268920688465054399207299099340501910852865049864556801699058205475159405629884851206252708240091962225142927327179419094746465055841300333948075632482566533319646145617398909648216006143955087676782817668317481573848914738484046175141868919926431120404802546325175598467123501389424569462552436122814822549616777301491263157005519840685309163906349295346836496725777027740479281870783552542842170482256847193551392152978838793655689091432302587046357152609185695708929456003062295312003640585038030608891454699417484239251859408464180484857390411799986815328059990948536628166444427789963184790030347068067132932865635001608565961049679786705269085938119837665007271059505428667529869004442004218645405993370553647880927687291207403392485623699754550651382676286292506245701821121725161612538426608244580184424677707492886708763785184029167584768722348122801654196817815421713431406656187889874459592800691341591490426627815830471132797171487344414355999862877142915100974221224817308318741697187457053002591341022125070165170080438252896431079606023853931096745386353922865155154307389512790867831416368352248054266303728850175547021165228759410826787771931810881493264676103066926052168717522542606971006790389048079700298983640356066423687108309460263331063905472566908094263345851215597480360414099429241371423712796150886011417802766391827650786866865947415199731359016651929761867668430071103828501771756261652196009468175388676428146839475650478029751127944428838264304463153485307792111600641583899018925169401224586355877088340667824040332831027304658304019110689400797242772495616888927398120566801412053231411082853572334741992960059922769222346242749304880380672413657082120434922856771859765942236653680961832708488574733269921539129603344454135608503381154631442171428086441644196119913336941670310893819069071272539275077555080838041652011059188152511355443122532488879609847593047067201593938651198055533136808088823786562596139982132504694674333646631957756510252525204646125315659355218631546910860367707608756524937113105199651381480059612487491705162666935856948080642171077343199245533278071570001167703333522549749679529540344236097072260392579872838558113686747280526181486884544958333043570141129318286724843765844345033982350360990024006921981038865793603712367075045921538954375728556092500751597236565494633928573513991838738113251243787782829218485944219293834553093196753111211245140693718443692004075814005096166836674404166796499063601103058447107914847433990165880900501132083267078764649911804575415554000341816074886033959988222669858541812244397246841184591879502643664355764562338378536135452759815939694350939346539308791586191230027212106556522690765832791007460684370650437367056420064790667590360269892000622319062651021574978983329896472889415323767997476193284572671657630608709770587236232554323912227380972729003233075895315688066284701610065359211141471734258030870532834055577979457199776118725680656031405448011769796340077630789412685027975060204748615403832676746818340304153468959222477633693134643779166536109581269896857678312602516357135393123995130986424535222225821473846655250911987536649612013022746056353932781867433164914571978292384017061716030808117164935084656018105766684312080772049151005940301561683029369172294698726576601000568647168705201349577673315353419677071725638956864181174995109235886911864591933341401837045758456790176858784874818963779393185470528781818005671058647106508861528418200595721857102541341163819064487174189886269953347229406037669764595145515359539322550968320133668940973592102679347405760312794224829318723720705136919090225925706875481929001545370766579926331528075010873180488042086094244988932233308153917807319990272140440428775560961289895191238712982032310781073382424863046334693676657328683051227959058143371660813029555214439563690301409348161476305150569611994034340797741066881841393820601217769891290885443956348804125522150065257084311968752220808581714362789919803972809603788688270667235480252874171939722142750748292385099916098031480005738794237155115889995724577820799724603332257607496151019677150355574871148582823131037111029392521092433099595974094951184880709362923682461515917680477220746090293732012130504680264009638294654695084382286371148183528063505644625388083464939056369601135480985340348463253112201423807150418711159384610930672969334009505685764738769943317259509890185023400497670022573065215002827105255920076442070044563982655775300414600082411988115279363227160127406383258938581329361707902270534502729185763910893784556642214354331405351322777227072267249861832816791647035270174589946277710655818812312242955611736285352680982101668711773245070394484617543271507639167698341236074187726510545948625117787634874604847652237855606589217175405393016640629922399153681694706032649338966151176911543702121733137747772885970317846686356360263062897732708803455633835673774826735137221819137415679514833757964506592237096841215975074906730733583893415080639383338250918825065027123526512745544808760909374312408377725355793656010661999391013766402246649875304220138642144269297116964050302105052080317619363629636428648451477690577505640477383597148283561498874076233418328056955956797677944154958626709426783424505614778368963010056386835449928075113209014738930981258534640569687155804735411157330198773467538538676684535365002987898023270445281371622373836374286113505458127869020756755154874539629423325939293056174962868569588420009727876903178595640754010960618541981700842771564060130970652537116862666604083985774914076543436215144900473265632293432725302371087223802341760591596811257766310782900716470090179493410033643446937339489698188846321303310694787708801488592078831115240351564706755802256986992240698822381637829205438960108971281537025101946377977471463189069979780024228776184582201852666539202642423158948076979867571264896136061136066308025215169628452597929870569372090547512963891361432680723400892877777754907466566953194356259712517034378700683474611144470531145353451611346126700562401594512973989666448499109686100963093084529333050703432536522732418249936696089623751268982168824041908145679511030923300026280497366036461814209703311723960471800438791038726081222483036868652599960048902052909716700708258384661177073177474210364007686777705961598437732987371830946971037742822829687106814952245879337765524037853276981294864278693286950178837619476225356028815574608655484490460067973472183483687051579067228278433803348075228681727514930149285097894568483645333041191698980106173737999563450424336358406624800719381942987729790523483747170532616358302651486370282146105138309514862971338193606826708808632856578478731035490572126961293250298174271535796669324332968574245139977500040496417567870468000501504344484263190850361368084279769099170556780164295546779573616583011722157771302162319593047098643710780380160210366689663332422584513454663486919935057556423364344716585393301341889972948801636806326025605294699091105066705191352306320628036950308735948331025485794467417038928948915215638952605959118004750924493905706093613703852813187752925705300210518819883874153858887384250135872853853661239931327967088952495377426108220880770183842863975263911223282041030647966349290640053188998818940845209841530191953337741762548381530181524487196537259185265061930706608718210802680984542001199424475998442007705368666737608017807812827022841471130326140829893289151242389619729362569048875994011978763301000739019678121296848472698630948605089534253676886675731194865459585381448648311484427917486563952798053196340340896998731798821872494280003681256707607552057014929600610930021921701864685104231301564096368870071139559672655628701754824511128874017581125574694839479103792849303367772798547476633618120905136748189094063085565700058251205311446032982376209040164497749202942944987972914965929723150921003653314218668581152396522734516281823655130085134370027696013421334058887347428564572217795981425380541417855304996051634536431197719831413196248939448053961732948161295752642459585778078332477367650069311384371308123763948935902792519639094555461303647718704524491846022549285431889363467965211295820515387838225499919925016125426629787092735064240424371016258726040145598015700177176041948167280360289542913192373894236917175036943142700926172232419988026982901178955109252335800828647006101025678080316957894725300021907452305683146731743887780529037911827706232608609326720258256039281418506087014261854571710662125369450163114080667811384031550566326993496445347110626989576521421216655687680969333964430773453232913038215818107718998981001975165413904388973798398512646603259449831309177106890717704538950829034285573253623907070705904946805487245380553960404391164427141157728474159171377507244943477596756663134104462212959665605397345849228238021822948634610676480890465731555348619908327747144176316040432219883234144967839213708278547906595610699096545974920952883231737277937281848725118341968724165547303886302314511167432991568076756212994620137130220341543195560616790862306912271198092286625300957819142666421866995672779484042979247549546252108006711853253072057723489922745248550719475684625944000660471200868440775121731227108198678271676384040059655782013623624597902361485657210999199511954327282391458405608270964429385414512034335511164635062608587479876909069449570832997918473373620525594111815075774052183688349216792924443821972663592483628983031547506627918829610290192682672311536364199840237616545929780608304944724531582536970990703771498246623872924739508082424992388477817886889996481586205397642490439237410003214935791293996945360379843337014662193425796539382179274912936466545363398368429831330283768083682034088783076385407714219774592206298910895341454265523561670258145859772375416812511121172467601974964264551393732369246024720954631568052384990325970996792871616940581497767331107272848899363533126945045218952331855696386804895471141469973807821119008422041412363494449891154467279999251276001906784295086022306289668511680374215311803462360019954293695247322696642684825268461216021222805416532393468706068150414210556413208774748730745821728353273404212066654943106856337971220650044314655009913127492242204909417890553913817672525788703443664202732488743759725803219107600562012411848874679991220908891471799568114526631160895414997069963836166315859565049174787664952276650670442610991363517045949044821194955353273161910684624672353891655306514644529120122538541166152776785277115740968971294217059312727093795550898405809165307010547926738213695667926600259446458050447889223489377290150191403429032725642510850332734932187864058738436570707723633013936958456408597892005875079000389183917551616890736080549252515360865421539510490967860943914988768527333664520462306620503667169736972042720640969580012042387400796255203881933569017746497934144217887390715412288484426074968034920724704434014792045322789880473132153808037142943432385862882582034804635454488313391994032619825003012228805468998551907868652231955530459348512282556839094269761394509839655102052066934377480232054494311243410657530197503388420175066458815554883530343084523673561624295224542288983332121670509411331403193796338540208587345170600217355031242165808013091895490789839810170641557112287288113429023079890198053296126297405599727963351747864009117088481725088289006727867610591607966016774277793308605329846991710372893155768815645336089154623632256167279869106056096157824088722715308949299415918745559977865592713970277622035260291132769865810172848363678668931684266075529744282431743651834357357906999372519727016752172231956502833383012605658037905185655047883815982496786181841363745702838381872729049547773617829071476728392701721348454203724544976638611234754357041333318540382496342849585250892650478108768501688120329626039439111686789594377234524615499355969572172035094045689313318398997825602753811277855345551216980619189730534904592336922621728749195519737023354936475230886815491339375975223091884857272431058899126345624516605616119415918092960663681793217568532877759628359464847189276694457888835450972241522961303535220981152726764622761642644654112697080062967811263244237512488514240766987199326002216922142586300765995059021072955125546634126179651258924365029293417956606784569663478025467684774370344197980302223313317634187286429924629549665866071999599729341970522196564952405163304528807460750175911223928608568718706657360184228797661668805822472271691992932527507933480685727976935009926501824923374392918815791935997186170936806953126904674071179675998215590360095411477562963544757314330358504363074702180988739711251448881505409511528600918931263370652608683021145401838343595725853758705785227036514565944103144631561026671693160624227695851557742077664283232792132796938241990020118694673756359000345964920948674884480830825440004029211439584239534236972177943030176573580475395568984621633909290767834306622649188006114545653623950498008985074052882756196619405686536630680045894745802688187400943798865560288669516048383531566562602164850371423384756855233131536484925402567141268065787693595622089827771074743540719831368119986466689538365823925815979567916221793326003473553331999585771231497951463045753522666689477416682009953391630373328359677613280082876788021247380794139616169381363406860993238830117801638402638381473379900365042326543216583197738082853673721463130780426245989110368078238593001022057596999471660481128664388499905954084900931060441972294021018356185345210789614336219096711354279978304319376183656772943987542171655142774200048541507053852824906489393162266049960202034236580774568840305057832797871972951083032111240320089966251912143948702807868884927995229880878470590090580698658010381068734991314733673680776431100605174938093231289460134148417995152600495631845032819322980797973883568734798337640908622051665132941955690061603764021500703952212216811079812912399950277465797345706411023054386519960809977049332611153214318324841537922480428278777809818823050630227487099495144568765471354895879099114986314830712311560857713297832127538584834422700341761618589813235306347210473214566926945187565872704636852798408611129377908296155980485184234274772913560441097824299591256039953375307902576354973200586178757565261423040893876440089383401970990436632777862809750266930048418537163661105980909005963222137179010838642160219670638267025387005816539562216370460928833036653432889502906440863503946339751437689935412553774785354600107014757200371436306201193543017346054951191968490372481690380394967240663216317337179178346964372414522313832231132893481356083314914654591044879134737141497247705450653899434862771432091604915025041109968789659032151133771195829348465551968915694336975939281995437494767388158389589206123004443801733793074446277790751980493032576896826182117001172122025432369879368785264340669418314316743087283229391315832807591232288529960597681067210317840735830342144105954204515819216476607254950997720627308830641860622147006393212212877347147282960142640176975752702369692322087241989613490611044704317681195573453030845859981997151171481770041685534029341929370090599389366746163152690141762592690502139358189961579441665132435462448734771707401752840808506827106928268811672120278795123138806985243673395848667895103588989247057570257847073696374335893508005849977214738229698466005538849562728871757684338773996370632593292887421188592465130954314720083546573241687581148733169084131381245465424581749048252998130269391583070676642679000938611099251512438056714827752036793205391581570535371461704807662232726741065741615178542087295507819374199708605927215119659853204154401275352646099061250597875990894544438805631992609604724935784817054876589614899194934293720755933939445581786292154792767269821506848999202115686599841821959364857383141301160931820614098451238812236154711561061982212984850255558591957604501183805451063983767651921799933996017457565074244379902863446245841262863558187083328787336072348583678510919274515838337829523526129731936578604034514874627076334061052141911213503861688204458061796905396622994935234722458466258458227852856637524883625841230991429182500664027147715424597324642352684362295950331518830716783165045818691452855650759798458569756863860734933307282523522077543570256197900982990016256844414351481242240661155296141864808804556621659462544562595570348769256641460790245167938252437473255116886429423809294319757218435241371110562996588776059682854583833214985711721557445617512075743716912685440485018472583399939185325607733411254168398642698148727303568044905510895317874530007079782848265352240651714714688519246554512068419625313166435533664562226310507483367793419433721283699346589697705339702968439932786003091758297951300713939698045437744400271320643916816352566484380569206610385228197279831345831115077039620202679230310109332895357004266606109437718816628904703514793437128733915786873097622529668219217053514751322126652694849635679494906320268107560547498742127168941858150711982742370867492954753807784901576196766559050056190792553146676178127643643235492688846838516333365210335728686139690089561119148812715375508073553050575789234835580099800862718540397035945647402257354147073374492983185257560306587014017556601947901308738167821744150699846175480053385737355426254045022467185593519826979446321971940685006442160082011783656597663955843487598495831863346687609581094063108248412903189780988819681024599520448371234473588196988800203385794788306310756223294081984405189607429517453646629002470003934231611526881042579098725440338205739065621693102205647333018158603622695101612867944053000235735521843883871766157719741840806571789293989364580862101703221086935458641531011862602426081449239008878930648456084010004031101942609048165625032674978732043446154877534052473385400514227078285694923491683512025284443222834801671498153479452320317779090122357411333082113048614645851962815237863613218927839550808761940471351009483197881734687441874694326872371819110985622218772198686359752288746686037727690883047638501304389813207473816470766654680530866631567148590097130461343692901895978327808558858678319409974668331371394923169743656616694395173146450025849500766381881567656498185537425969739289682770225922728363865262809889765920384319449916717609502656841489046457820818582649962107757469767625085876287039532789413945529821849164182480259523317340752048936295518633585636706253075174526951614714659781163564231428750853899937122098968906775081603595243932675137143214096261773124823694487982185768000963610229671235408819290538909096846882192398734597228986025499352006392682841408409028352219619113306101226923191891687126826619329165918780825839524914069489449501896542191554769791073521903106008271745687360036507530053922404735719028431450654448106100888454925232887583774658136867128746975146390004679632663682489304888038535699504359057496033358955092558586394923245743241128288876113281416056672987098828292570263387740757990293219011597401756004254820119929937518333714387569591543312917763951791845620086899009303722120001460714315048569063168756893684376915172043899450237370605456718267234373171360461990881750291244066902829293655430422841702636437652477032262533376319844733983782423519011768381352429112385290303287468851138106077037912344185247510572966153032581458499343938406758655088805034433696362308092228607818081762626736714688657812203120917915937287286318833794268808758379940962327752723887800283328955758109016378939015410523178412473903574270109998952106494254112386749071616980394817404482902319108239594993610855428723732606849477390802537435028239547271527370477617534409464244310482075418017672828126909369787202622504798414943827855473235986627346237246681243486916256075094634241592702683182408870982169869088892798153122823433239698354941996474333272931449718062013637075892967451209293700267827414394229621468826599241421281290207078674943143531475977912187532826005492102477999674464010378838503732164828828834660032499507247908935447445797233473950625037520946013291977916269009736865530129957535948264942924566955388230963894369882589433254336147668995394160264214438025289532491364184345764379628394887869883789303594218115414768741268307860244718011483021045975977981267872643677379933398960131883544139915352999070648013142679713518519558206959459764792636493314856227344033660402957418651691085299971732721800669408479461682384842200443314979654828646266463984546871784139539131684179093081002254790473890717319846086463813597788976961006635767258143777268482647279639816150333777682246217022854534875867086615246447663109774444665760000871861600220006949010021010817719274010214266826532199201228225430017929083977804833457513703149090614770916408519557714968993460751724654922805030531419233591138566258335596110729262346567065612565999734886370678196391859483831402972678475599738339053920749557476396198664414747270883402266068751483109875713354538612543383693855058271121672274936429103435145176186830658983151539489486910978890586220117079617550966430552735627068179706574436082887956057538148323229031939665113084172576007620215036499800974469724284077611483754094562394962791275098077457294258305712855986418463537256708936802069940795456934549224068633309802207955603754779218925081006042686927461324164886406924341440212505084347733056606607901905053006647315764297996346429440911373534840644722681972136801590733482301058939869938737112935794921734345809881533250788556880997715456501473172526316710424285702386012950302452445647749683029376725556632689900066697437558418484818694460511423133290283738467416225558406663908615040242605888253649054695689087459970120243109422572133102424141911468553879173146901470907628596462026939210182279568249661874053950655174733861198844556878061902940119804674362572870738332467882524320641045694097205689628536741453564223662350961127954345200873025792207205582374034076244643049032061735941796001336314002480100062461209396231987100334197529640287827319426353983206679603285892320948819860341550676532304741333576627238544192990729043953226952400854011558134985131874347620965223993800645838366778306547115478337220938028008845933505088887210139117680682129458934813133512501355938609492796117489436401687109957459719886740531144947843263370557686454383441756997360223893088547560044074595207561778320733208527600976982287247212358707865136929997478133202758517956665672539364877355720666415190290982027308084857873445865321611607373955844447041865542296297569643752448012635532304807095964090150816002954000746654192477037552842119196522435049884079311223894152621557277863581684485784188477583581779105159419421509573255056347548858294886511326972814239236443024866195207575079596675610614513532282866619060279174282488236015642260452133791615277937908966331884624916011646164639677903450877047290180383281550245318520688970132238780818005772131468736246118779755625670231074698308009142939611056119689555510826973385943879924539917658536908245136417146640138199633868451612691094960770457743661920835129751765625747878553225060751618368731604487028675761248363305048991997097394569675211942877408163796410678652032091406134679059239514882288220486165882682746635767834164163543286529956458426555456518961388995089169743417007671956468473781896801106923870618390296150352836249241026488401582159163837021963698760733218328713206355455079863605664059919411392188134561333883725166915201905758879169270600036726762897743671274882482871509977551439244175013501054134089447778322358378142490134403219504499704706315685473978878082752741646252412025973357903586587682020436360601643019872797192382253455404697563196150309921537690034614805034447906496368269868172720586028279320607423387418088963730080235679358479345523383932310439214289760363987449986546414169951053040477991771189331676468317609785897513956709980923439683612447395719476641311894997227702614324525731932210965453273661615613538967331444839021624271974985548766388260182243099368113844340874766119629095344134878265267150009954341266062514646880415058623018133114921226569082746287419821094782514188447643107357637693584930381686142144189861387618534744862613607125867516722399760600172348726679951153660040012152088892266500376468389889330661263855003281292683664849766027016604154839341074830919936615363606529294804187296730776491440319523944655396714566514085475476151450119433803954147561486070742830841101040617822034414651164111992536500111152909955103405475521847657719368897423380560978063167298887712073809203331239518241593342840640118687220973861942307984449529941571074971431082152952536721351549581449566707538862952692566404011895775206142398020405467810965616911041314565076508618678176333375751375936582032071953421977317067791635082953565828042107773346970767200662854703543735171298254956440954232913998184424204350817299778690392440398912997494659251090860010853525773976808271245072793949402643878869895889040092938225587114867143838501669641219408631062116416270201298301526950900357405545732939270418593531972573174535294387950853132822496508788562179611930613949036098438238934934169321081087836654154263017008780009089854866590097975058432939993806494813589980666583335929608332645649528646887795982107797248433489920251197519629042828057848266991844083938992956809034734854301775679312983680009655221756264064199628038080447259635251635921232503806372106949226830537511087036055871114805550488425562763997120527954195322906841095271370322371392679765710279255881386529741391436795041381315287735889687354988245092093264262256476680837916736743587746077458732070125675210600732998527365680488500409486703298751261549507945833573990271057370923750298156264490087250143617594542562831301654322244932215198702010348268908780101837168716555690713097571298866295999549317629960171414650263159066135348653200952774890927236130853170913805524351584494542052465098792775416463496581141574119116505969865316989076070995030141339440076000916317495389473467223002667491319275558797819715617941144816378483079851112742670334373849525679655059239955270388460421655049568366868641691766167764004826217094585495063523067432089288918364428009298537372224311954424878779901728081850150197803980532725523047423649362858108077150036175520149386275036572113795130334233303822311677207930594045097698602194510767790604311636882455794533684143555949608579650176909771737960310215927640246809027233518652187067073054239357774220440188498445617883897361969504824315464635534952725546496177714409633606840683395600204378346436429591814691336119234157900598639250688805882056324109663390546755937165692470363335249663622138253565478396872659714155249318894454631296181095014637616582427859577464687278353635664274023305510326318350359434274207115756859735310667189515714596418584889438903847765490046339504727304069564651797990436370369166018558495725646482674656743540659320226908162524986654140721376159662949568740966919079981437847492965379022165280715462295624763890374997777682311761616249419795648684290215569263745817213373621900640248228389653089254469483247793768107290336573052657756596289068419654071774069542845724512854278311111615432017210701675790410878506288217171537803793875878287965826357279362415131249400124476446020173494511042044373573679171100435614737302213285433894703920131408564180117799706272915016843239119386184228843953306592296825638718324312833432561316189746071266785299260655709952968661744076571604380032852493630285758624583703636493731926190395020765959979425104773206935200953548855055487004931845502082082409621168200486885394381792472650661344860323192097004100815610258267844620269137645523881320435142897228924778431333082618616209200894241373727511697498142170877166752818860105151299544917584375434201546764629405501977537645475075164818227397321871231238908140126246390648220743652588201666805012605174558680993088372566415906174506185718296272512942907008419111050215577763549529825296901841790464368873033009479254862302799119667479829389701549103105145916125357982690673880040640469929671722539221757061707981804136210854585766397266632636562649678864083429070159979359604077274484951283464541427699191950847252232398630828804491908729650170729549226313361372557053364164341358958091531068661701805742697774080956815025089057993525784234576340086018363161665068717887597467534126156111020128252429899689870179106310249523616634601422243415317189337056601876579964419718183864485832330634486797146884985936964830014015596122090358546968329498224583157174511905738684743031629207693051297859682820146212762999696274142926227834172947759750743298277974257006280153878575103983076420803921695019012958678604040103129248063795243321286780940356185437285758388665918938827235290617111147518044195684561489554289669138844629199643393273382861876037805108797586242442458229665255651796197147666987615559474504868435720664376370580247870656955726643628130116981821828605322956322789086765647796597974894449684763012325679483992464739708264395700843430151674413311546002346127352868806933565967086575206027619910318266603562273717036706160134575425089140417496791845101278000050632775700379775609197274441259345457566158351958630396868615155134852461097105538213632492424939968641199794768171760285874703350045619494663638128710479727304381682277056980174044552340090553412733299774799425353334578984271404433477352019033916776783785741550814731192412508114024451874935066445277532289191358295091679319240395107723007998042797541728023470713898831208897990382548523683931596686805675096900220174824324331158447673337808219101388047216125675489472951949813742495099569781595131518738886913374592294768659858228608766144410263792829775234996833405306012374912172570111671162554522874662379824626576171994902648597320594333971568472301011148959655120210483523127470213570471664051568224259128366216432444737140221290076154085774400232332891382519740598498582036821427443541791319335236210573202341943253046943231923244944160966320563907803328739354845189313210173814824485173658820034374810209339045932139230541735264491001854262957577626122189253449060156034252848082104083813530741945909795395566451487417478481014775219526088809254508069036808826069539466844646039254427267159858011822165251508313614196459248338928653498286497917159357465094386731285660478683777560303481865052295428224780135847689167533743982401285663233065470159496147106503162624133429871360462741622178321334529037770263275096951336997035127762637400750785468396960286620837531721305249783121654917674460286596588899862188936382553660074804745751833488469457479230856989455349059325250888259223033759265099870931532156349641976310805070617228844059228067761551427174064621234183146738559936762017000716425813287588734143782196162663940536198919675048683704507626883066683207056260724814286768269580051355354778014196502382856342844924569902440344285134930422340934432176724271243192568314727377453069053257983400728017863854095697995826490373739774049566564014886286062282967889795507390970651450647212205374543056085768060336194473562491698298788650252047452545143435683962677399936571181726285247014392407016643214679394764217117232302888468831094361226526802769495472834955053679212437911604314138220812598751339228022906265520674006627209458287463943265040043011696644222688907846629631297521249190821492499014635736226283365907511078480656058331546797632640773844181323422083605529375001467077007849563264885924397908229487437974671788186698709802945848946674531430925788247932255981767814828661849699936541781929705166960121438891384173588178016293549639831076046535063460707298933830746368071533419339983366752638591576662084096636413122561542518446408962981834421634530375567056477911406925423534448727202939207740446930990512007182450145252614537161750547274175197237200262856803260698936996453281283103813161501080551312992709010397247415798418401111114857170514562406155571896999666511803609955166307719664271955934846135249177426884842406682821905305012734393161551294698250078512636146965318985082582882649189500902417490829751275474410814669799869817107136461462255436288664755844994083407110079193620631437215936031291377849910422133476134290186959300293677357952973551586816867044628550922480896840037384686944885269565831758153350910854704286093271260426635468069419253252568289860857662930068516208303349744332445394100714410578114719407915323555157927565395577632884584106391265210459764019907010589892204292045604093074682480847941013788140181881775390885678894181713845647295244512091818011227873056020460490158935263729692751065058907823716105826740141274820372333530622554706062472929516424486396230339517513140297122921287744152013135243926933020089601827896387604987645281100487642836357402537216216632293554747074670468517790825972491316233855623081577998848457490655479331469074671285598952136803591969306540592913143080939597633578594013261823506386018667424413867578100654239540619428071008679361235780507773632513028124171036088877203679166041543576180393483255044923159043994060095866189379225330076741246893152517475269351012994065902248230871424117337322381655688615834814403554485859931075549020035790937598462393674462865636831325347049590280433648575387231045800974070537637703882464288519824082191507275598181221198990711407957107557005772291204721249146515207842948780474252944233066405286194982272985296926028769347334791782963212450546319574887171356436650912160458561899392259141553965417308274888769661064112554272991919550547688309649701943235015205397823160767373938572504058663424559542328270928803643149888591890280216077302698298852810846053080419105873738631245978626524398576604214886671990051662913841135102634715249815252876771227971014859184733014143201287286302983362120539214502426030529275992835084474930857997699855917713234983855978002303026149582204046314323113963479998602838742422523866077694518717983840810268838703372513289404553555693454283128720681958574442353813175469656322711141075592478291904190262958965409364040741274821913142701568298873059753898039610455522238471838455362075310238769872356191646469072430767463241346143703205149140331788914140877508192325581963320796650388915284894151431042873736692401532288144587737960611327284277840817518633126124934947241120416304028344750989907724619954210427448096275935337766521294734367215076568302231294279774333518551035480092250647760749186308724074703194537291372867597431290720470025233281118350196016769080035480888823269107637518155021561982649829648956877186764213250320049560609849954594740548635237594957276323359246258828744315222540507938046445608621083605368724414418291809263398349752696690613357574264104808801323291618648663754188188837712549426132540240637823779373568803697934525450832327143117621396468432282818860148968535320036240253074137797287102111999100796130626129674793748307936966168856737246936972540133917667519816842215399196438681946869482522793643915319815781106721770604055222111078128128446034376647508213613587326767814544475110296590110035820421298340140039831668372726239967735202578833592806183465800861366792653187381877483533120991472130977700181087927257311400352810212733104727701219393448638232835359598799058405579506788867993484687941250932771431238530842371483371472065386886329024525861193937810478109966439574278325850471341418316997571380397240419386248056616663846560756661236996949272853899502890992980166127710311529095202551661908907112609355832558791223165015687333259156849044726690048418647557058545155450207997434942327804975828758277973046462983821101361638176541524190858044875738111826679854773060301473721156433126080992684837604907404974099942127919389972819101629724385620992800379906462457575977810524721162361516815000520316393796707360878242686423569717294624986447325047114273701615282241483100539441801254145150718938912686008184104426402382704751370470297459752601131368227093357364235565062153827964502277797939024042919271973706575378147817381451180110323131975082006221313058833082359743798084689796968395210139940388866028325400820385734960672827348004880744310444876805475151084343741988017541699941093244397169503255004749809169957769004830799294863480862499421920168511946883137147777977181626309808112894123618246724548259232213131328764059249079721628050548323706317613768862639434201632059913691153171506006949945928289801988827540187117025880352775997158562187480508164953646791366079454499698573325135752595716842921581115684384791008726544635477909278987146590946416055948116461543354125796547266445909202757570276136699033911785794069344755740020180590891703830898372465221888405514834289198860163823837541391601039496380984977578841178868169681407621149974972314557706671752656173923358439066311026583154437101878764643381235771325201018988259963100406853033077646690915275331314295874711068181910805404721346140579276069936238799626048495006235684823845062567989742705264629701196473523931368672288257880883461618366526159293121161124854773818084905364908075164456998244149632826006900521642362310240063989685142467391765227820413063682802433230951388047683656581434978804176299117745314240750364207325218791695943912618840832597070114749724934397766838235370865303653074140139954376944004998851329783842193052476685043451282655963786012105095348686538544336187855155531764589616624760901475587019004541293601947117823960008606908436861934728585174293133879981141996051003815892288806689360324029937714716661251511913224422166622586125841147442556069806777763784558648747477649761034492720535804820374434727422238938995199698293403535751648236697841066263629791380316240639391760330091485175248105379817642122604513229427583787622588347367879796148878342978163426526987920063333519166453025056698894559493776897463482419658891711701202554706304195295016026848845011623284213703310461443803357461249117478185113673446665752647277095506720071279693867867232399282587748603640661442765960480549721043135636698291895953383346353026733162507653988386656022802517079617177331634092084394521095159978165109194402622844078166532287572622923508652144074956476785719203557978221554925598077404952325233833192546390960803190216676840138316016068839294481748393474130996681983971954861251743648314153795440458125664851733649810197672479662163204772445063183038126424889377658799351803183613861331731031104637929935608166803779586256004542454899081360911478704527795888608059844947693689158742857439006976082210246273082405758309302769336287390550625210026008370518940923823806501373633857978827179549064115154769967903979284258335349004637266079122835188438662307850384856811553971237217482363839547971676993909207439171503901785492132457717796716488561420369051340158809473486509943158709504462656596934191329952670243219382789948824334987956188966158443282289206687009738480348152196053745277925756227777194042372835918952396648258179418473525131119752223256967026429197381650182806744109536509132273881248903815297943621014548166450083809147650874993399382730632700521459230578841169206920025981138768882075555597453064772273778968131746277750022153269490101963586826843984525908132037423221859122728440387138668322395280217003256384214436080585448834201711177145423348370214940039129697772274776798989867412604105408483368017164530194336652925191063043944476170325141983983569405039625474445179060962661533053446919105011973179126284782545444999201296975001323409541612302718572540196024998235310373456762894499346657199872616006325380192150171441686231950405386802771115202335529927782938345367361197895699847112771367021940125816204370416661124101375080653922766147901494036773079916533575426465993154423781297871228849285504879174207946778253179053052753478892518569002524997244173005942455029705041022304178912269160928557465972004954217289538123964950871764120835790539133666859716016902405838405052143773453989411202345332854357482454277216486460806668667650547056219754561273692202041472975697617209472956675340174905733655612342127083802693186133981454140808582237978919252137996922397582909417973278495438057314592819581988666294615165308518315043453706799833782378850092720273688724275936565552003952816630206911719676235568296447506958798622818220952760055827592406081760721130446213130939472858681207096775971105903348158354524473346826778248253330076212222245991884642307697163602425146626109954087567660294945542697368893728546829976715338523114023722445439711220011322713854761742059208827027309950469961762528795977226273624653283348004909520124149818216288568890911189598335603091219261064400327397989840069052844313285847805639626897159329424034939480373155973537545086204894099753435638812703576830994599577813367089612978973613146035630140894074016115356223711132334463903105067677241573830340304176179982058533071323810610123932142113282543734321418652566344112148196456634715009026843931550783252281563376614345906513070412960082599663123075966333159509248015488965108994990368397467116516480876198636194903955037238184187589970888962409664676636851352644699205004938218144541229575444795981322249357106545404641652173708731054331724657491205500015044597371557952099539867855917794655548835115542725123294249104150055924862972329837478482041969755848518737153298776408746804303785657501964076032556460545675653023925390860776192216790414846752210562735366758477293806533120367337635384642460815677044222126340508289100726477984825674856999513524000994137433008732922498411664701663553894242215070404772307122799521893239109963156367267084614267264663651198816498516177710051912757069247407574110850849374526752954387368406862097981105248829745083201127637939814168957643775538739492846794368372063743167889955415156439317584993844638179219397601015269049679663037967014820899282630301026785381252330581588923311275723824347575613652853803413316347134686949760144224071600739215523262384839445955825366229620747491903734439469460335970964231577754846662057260964185857357638563823770219789813253320716733124285334571549488583039833620418324129430922951634465905759040499504274867892176266797741252270285981307396344186455946264935898580781947446882087542933040552540168927905582092209693966666217114846029924012953128394615436188555754613505085020008698146747293763202923956921048327314538131559482089667198290379499893407608841800216284960148351158475544615924775041830058315056442880256458837066900138705752868844855685601800384485074245634227587373194992483577572772873824865578224581263191409136213216289741623839857810336436925944300236347294578954509310157023778592092730877876572712026069488111224745971876008732326322077411983896418349000034688455913752500009196044945842684872544335712657331410675848423649504532495951086892582449784508782172877821895083595001218964684490107508259597298835851516429010880337315601487784689683326916857149821348547548560183866379299484669058895491643732972886725024931487783544406619454017142540453405667654875042065561014179754432148096623190329650002425201467352141595391389923948390781672890475184016799404929422652982005080876610313277283997685318930144115265114658005130403696951230735908300313322076247632680665643748708129923635724340842269073229781131149576110229037013697768130915821787788846076564761024300683472450660066868694303122863388831252844976504703986122660071531632301482204686333789943945688803306155309374562384153646738895323269765140880796671364279522010589833578344559764604578570915165072673445507560651644812832039138152080864252097544131405585813742924857474856894854992619524053087056079221742789685919014526266029628390058564262878694585984243723981815707633706226071141495379403487041349664655895319605268204495552428527782465941483281752963047775371519019736192769079739572012804984808192927074110494728435722685294785189526236595474399532921758971392140243636752979134905402231419909859561123747047995330386015439250669705091334340838838798886842771833673585368788972562208864189929842973668156589810508501717177403395529459049867771640035597583860932510723034320444986906195759139031999388687191332582776228692605794511249843208831361510084484431137770326750846069374004300821225859895868460183823537927727463463270776691487249642273181745049249888119730626552977482810804150444222493507373796044528700095289413451006103142937705591705712184286316041416493081919973744762776111553967609288687012999263302180115906576823336352455344197416910948638590355955701067613140656893521429220576698026554927393483599708074502031283850692125467694865518905289869921946760992435091517803403088991164185074838758689529803502317015617063097916977856709627773469184125673578204312734278544896427680673953961006022379035984865554997356738373122870779667433787926120909549964539789261382873567856539283355285421105964182460565087767598131664896450828148848596549562366833824192219868346930750773259911689793110829983655663815142925149457131256843201871960846380288914792244646895585818481232925287854445924722848883102585772609103689248201114947849746403742802360422813977078509392601627728853440202800255652869678539084983501321275018961841170954139907976998387973136751031006470718277937662704644078073995251284185070005055809596888396762878661943675884693782118612090296163611671732841681626945501170629461261657937276933199540067188018930887461273767648038201638320987091515571193594763467656290558950782132758333209716534566621922015668186425064569758623625696703236605371889045463043070701549457188986863770551253920077439611382206144309352135163964306953837335251390585142755482196202627103806276116108319181486272046320533312156037424903467879471899952216709080915102280921078383970896345082282153693846989503871782309276632488339579979871100827537192032530178059892199433675515457817961674746973683548138880623285952025974031694492105226705399162396748308774840146469874262935465662075470364220796031356509498013637345276781157107676131745068196250428121286510321029777395978965687866326725266610906754712804175124051700791054948447235879558124116552121735499490818548654327525440280952536301760464707675206074937652132199571194183327932443087201980435796351348846965836426829663266875208170633370889831732703456841153434224217680438347677543545699351764111103481386986886719747605512665645795528871213622011434941385195244708167164258137254272478419525560308213548021498702500542281142292382962735804849495991159720008957984041040006381588682085764144095961791272462948566114898816613572291399178136650377056755368232466899563233202542720824523145013454098771738847695342420089975107571780752151678594476316497463725207839233147377567697697575794556114697569531552577386070803490681646173823924785949271800413026454435038431406377999602288624105645811854241196086251199651876239322716276488700155843737219382977457300542642972021889051691738940606951792659846091669783927184057430682063858914114091673561903469045219377726926120332001886905489905537854625653947586102125915810755999687091833671044566650337569670488309000958032369441085825953070941352111489141445947989138064251784727556777182929961275419534071384820502228733676723918108368947316976926498234052692737151755886704745592795528931955643522073589688516724128061982313671740147406507112035309783794813486077433208225100276132175783509259723211987031427343974540203558663757938558054633036442157338559630048797436775479733109694488809922521437811464875916206240359543902841173863662435128183467782405265791818957450474595654148520565114555378331723894958435550194433437748117880936811907919232313571958875400366444136346627153902360874056392018963132771911975192933163420557417310387355010406342342348226105734926896071355261069060791496745299754785430512308938467756549274171458107899018527208593846844076418017015650724625660176674041654170691462884166460041642211864487377198325556698040524224390297246482475424658909661584621601529926660793314939442591216479426057792729019992014331017954506864234795718040932464416491718614685829113834052390270536500234245035407495309068519665797071711497741906829138051940468936144218175323774132000674760449935399708089563738074788426225733118540324495235901132761754352628961572131704373217079384218442548894689279180021095759639082071341802706897104044710311518918547177900184498884955132048157277984731191235812882912703317868195493391842528325622396949183266442691816302335492664999647583281094894687331299636288690775226581485464936266869143839231460457746245529123543423418737522647224690573782304900766545145161306598757858139516525527335539793128706414249298879725723701871024598857664724208440419203059081861351415388969939098562979255410573577667232792954346852271428620428448031441675583263049045398522366651945187497233055050395632653700311616005224953641870661037293948692101516230603099355646169824825674239450003994865747224819457838568847385654525157219773184748882215487419620260852491729143190911113211431037471766109532829112362772724368768842795978190497455509691184611644739817581853739569020332546510251814998920270000938346986591774821811516899561344958878707751601496001288050134526370743931793618961970976276385746277239266185532979124891012518050750263182325170441012445209968067098085652768555693214790021939693663751323841678916436099944354090200400954261759333940162039046725580021942791395743967482096304564655037063654220178941448948811208922164251407469734752145586957602890407365334333076282601606810568832859426848084931551925378770304764322008093375197625373907165463101241184217297470868839251170129302837551525395515134021745902958898623348271506029760082671155455832075599977468164007634385857461841655484493916831609567184705231557984837840878875550143590628471305452856523224842200994247264259928051102739831106025696766104262484903425640942071088983611596123423668698992480263816891978821587254621623241571431647034963371991047929605759085296199737344891944568452029609008349977270914218142125670638160393281577234422189842166276397338983451410665790962442529147139111962678798313754053111228157967808205211395243641490731903148914211191475226664539380321641519959000922291820319017872350208871625295101662392583974413380318487266022551922547623885749746845113737274159936989667052427865135286458270882467623249482524902258546301818590655483273534543959879338555117534665919156258252182795442488742562856578930425870341704001616948183448494579293486435837705452539561883472856791469571546568300385937521614687527162913483727562688541333413359134945303137168057181886413272605665264494283399593395025872316874409025051980660335845852820956990289766560177279666883540911414850746321958334926717089982596122588863212271086033876193720383154230007390140938039666509921784502891794555176730242293752720147003586498472595347946899874393198294174172057772118545678511178808409179653603901554114375029462377805947264126861811523247759720163975749085327844238687450350540858576854873340826358257226107945396145074253548360471394575244174650803379732684344336350343193442257732739972845383029051670423139816701067922966104617510673623681669990902471935517687836124753520469477488809173301825345075293268121082977794601539394836957479917589764844688581004398203184903420816620272195410097669247005315988174132683268699500123454224284619117652604837690259927099441456409013981901545358754208057161842911658982355518199461057010243516798711084321568160583336783291172785296645787994905737017770765111186785439808151609042922636437473772910982530592868492394188725529339888018100717693181153409043373290112053178248238102194368990883537476407322662395929718171807696730611509911689746862334758511530508629303523191024005929315242010676223895437073648897053881026930259855818732570642050493775865493121237574923349784630726849755524403009709227864882932544465872581742878831076235549821729420331336167075444186863446038480890688901868889656240920459543655557242155034135476417772835924323883742775403104289789972182206081348938367607132108831770239027230362305244880950201728158297789943855474330508334955871057368539681477454388055198479844422357028567225557924993467114838914214666319873719336206486347838965195171740277218208029712638700545792650043963072440083717293103995909659393179189747916604053013780748655118319340462823347720681373797165432675319768015521236604258830144581667659341789199752592820940850276955798584243754045148293321401900960107068947353112118875406519765635318212708923775196655766399056073246524796668915184291857300469338351519518212606989699259722020543912855278796688317600491815215058909720633227397657298171533880226559696244910647920863605020697740309340231114549928304927307267960848921696418177887318143095456679393710394259319328073613868762943023237631512962643975070671418389174957761521071069787126955032800040436052348244096166592414418790311499962613468808558012736785867893874148480328710689879878130155603544973578895781710367202579181424015246631437938706116636598324874185457300528425738019342691766768133237485833282306232030835273572943950259715942995516857363817598199623764188614472770030333330589710228020687675821301298543193175915352216881584816455101135283833011829711249640166320114975153261648676578551557130143040176828026271165769578133106304633082787750412316579988359147787072130927588418006213749074913410113592409673060014461267008835976325953019292827234298481608715323783433955635992551368272843269477094222068992634923444573233651347825264435632140266854021541088019113414557888054235557747442844576547198558563255497285847780854534640996912910847495038434503874811256722790621900938454543498012337803492976186743388423332208033496829174584411042276457220993905678626734416208712195608372629737632592516125300211730570635777835281461152999978666271219672466785982916082539844354227334366531927802627900376526302673431680142464786241714787849257095330951361630570233444949418385644823155598217972049185551562574718087871935106477299846953919405945789019780119917547867798147660348657328896820529053546198830269228404348352565752083330202655203053730975712882810267768218521267980019928647112078281260506622067784060223661985293213999352545654589490877520634813209164849629121740026441383417275481476490063956407482827209727689165528608737547762234750049531317759069113694434417305166450520989121534266499903689089851868452780625181223860350575719851784381467537533749062898270153310043940057803236468767437099751935698601495931850457797288094937846070716542867290125342464676775088460754582126493242460109306011651332219388740918252254277215839342143359814092167331672088833674815390423387436886855598498045975665130818423401814359076510752386254861359445501920869242787100133686894760468489628751253995049864897454906021889505310381652125464028085899301289596921861418064427763851836999033152629747648634847966875782877357981700561919135527392418167993690890520164657270509269940531166543191363161823693673933310661291922122857613886916076314987987671545890483600017155463265165290965890411552768137381065158541924211876272977970647385000738847316229525473402091723755707179273044249046998346818169521073898663725207910504149001832797649450325299790273653666801961789118203227996065856060375016895829553822650346527300584666044625932981435769142631807953493766446572979629658494228597831665504810740731595758877049401734079579314534027394448090904777248188813721738752281806803790718405298989623251900318437269883255471662602676446094234799370784100083830734814932412166798006217643147711423977584846819350298642430850000493693272036385706554512907845690020132962300164106632643468613688332264275401806836313498909990639840954749223129691808179285409938836010663202701325501317093600643264085744989783690655683293985106067943425976922242386898527102685052756482844416740185507879405876948323235213612616215548048323655965824493385277144373965296586633410215986465164404957237226085340633280250232864654343007228312516678672082170874042334155331470020621227209493611936929043784103274916338195212113364298483961718853056305770834163827826181411076003236673315395499554036648497075408318126413127252444224935406463987735678253242357353755892280478649159680390499401056826147626181128867384043597479504233079487677046889612629041125448484553788854080516238096990042020728209417670600872256942481397799047793700965245819627052426943708654646284453531224167505699214782891038136015078300955592317998347234677428800049632469288491405839068910829715106247483808483162138271142551345652457435407350303486584208214515190314371049265021352530451539680568258378943860386652968701960758020076041299118803307380807134271001777613612341092568607171328882236092142336186830242272346133027856505741131301221917641151792254787841080171500888667800934501475219608789194209690509289750123628649767359007952453516576498965329475001087958844139358322125545051870155406755358230123588379065124346969894960596936881660297558658257989111626342464716334047219686688200719299291480241390291184100561605770565145759154551654186386919508697383191943410605655486482427143814500076611315844775363424372061136420102515286482185324136580229391713271733022333425354732321477319272102234537789391786763699224074699375550024259798958201574325443414848273110953077350800807273896765214513255587460619393692462507880593792180475066646505184575492749125993190467216537979729737559557493596781633427024490511768813965187344213214928759554204736256421222696434700371516293342809984157163073884336994075295223236570282333918893495925752156196816998080952588161501969592145614566243805972140020975784387757296305634827010371493500646060689277284874307532419352958182112731619524212857077988594144287519781701906349019330908377840137499416746983239490479288330707945006612055365482764896553947462157920945775641629554389944582824980704284410199168462780827910998480964444694653554933353874666290271412761070337413548058215747194059447132438100908964807405830732300680520737715474251946355275900920769174030123831798711465124385175516712039032605580394515672214488614360775061024646446487646528701430384476377646799037873159910256688183526424638342799172741321848143571265415125441473881862500813192146966533237181101247555163846293690834226602889408255310551109525428004535260280650161223094196075844713609215365870211084122186808631119800382141767562886112430973088123161311843983971694826535980098711908609800270422490332306530059462160404180519877363392390167812401042821158343987444795500503996887723830532738209813668448487325665888534891869351333467796578472227160553147932083920675990537084875622574660753057409166979676405936844107299895865125279650330838565680645069322041509218743812094490292024978557141822781000574769045195807299687279487933391658767313779306305207702597517930993181235691783153009098169186855304041147398455187810395350124304112866780915670992655421934110032245447697105588791884898804095084336526285965515854748743541113091248729535851502233418019600161092796612732195531119207798565948291889442386933916535021004238618260334206764382033897942376318402719988879933627322792475197750468266829018903638717487265043678016272046556808077334944223333118242863532823724768578658101984166395134847736429863591851844394788411652546972736624677125249811439037404035940344554922367051213235365946722902512568551105039254949288167206991084050322980017296121264546994548638638797118227543298475596695086527066103066890404301628829241621043985270510435892285447054464776903007329953762817013262545544316656363252787804395389354100538653814300725203273231331698745433008555507499870679815344937953059327361322296145010281629829273151924138144385726965133974325227787154161874232071680864937026112473232830594485207562011532935320200343087225898678969394474989454129630831186649368980833582365515740122948901982649095155162948932708177061858836187582283571301535183685559000346960541816115424565819345600541033506438546037980411391733689134035368188001555629015125392810724132732911252033154774601220408521335539371660218977638738746585748824284570874725251156378319992075648176016842955751221469606895384069897693239930714728605991207099963704511442106857083393400943505742575864353549318247221339093410793071487557407042080982971313202361612040876945478593909392357501407612864410935437370611020673558177200194579722025860151384211651527922067647281645229071939966718194917180245135114254892755346394473194694922479152250702248577946814777446467553168304510947179715445510360131524844792410966312579139052571697686544558662168633136653754384970804636807343397144752216159774855469516545284372792421210265483122330025263990257524717974468821092873306836488997070779133361984243419090115311124881078230050319269700813120997724264779310867508219076448365373076992047442966527699512591355333721021681882396716969379441359106515251280938980378710841493386316249136252283755111518292241809951189461452149660893554572920976170145707653019504527362719219801545794159067140271790908708263678338285637399685344975585781040946918457719525416197457905116858863775220549490412544636254860302771418516673667320849448372388856052493013985140136835050789938802381190188113745899313568746558257780306910746880844948942268108215199545934025016399475406884256425840465212579200393547980147576401802453704971615463513772321271490947519341082302918228807114347071615146957725474031935961376808572976004378290299893806713219208797756363866612346027202475960513679845558503736643490317638350575938956527089933916695791804609629812164774684135041155203840631216818504257175140901643915497720880469267542782339008967334157576591485070949887018681978317894180913071319939422680499035260689125435123740685577057865955005643487525510168547023423467314921346846897868744370980300476946000759872076038752408378344937890195838805922267067777157318923852411083639918838007597760047349425131146147220541512816418853959141952532657216012116092748752807800911124018481119991583416036931279748985127721178429796059520282606921482814044611042193642616416417586340839808494057172279106066613595030536301393508955241997456373353003000810849904476833603612313932199688126024957699470528973609089582722366562253269569929132306303350469996428293806129650873260792821231600397969657247561787441820711358605682588474214484725279817248270207482559139408392087100491264384044701865339040932019652751030812811070013412728434588841673704285733705255948670644415761995895192432907596969696741700547597448594847787775743721517059031827132687639526586600638569189800236349693182116300586084222103726005862036895725277769640322136323270596367833492719941761477412985308800617018106542187353484839258575719547921538067470445029142614226179759577427307542305477646077770676827844620499057553878294871786287978639782180702596252907893443496155416570785915348742613744563492485614090262866055078252028706331301369570329751698861052933792603887077804317076182952606971871943083965219429953018488925345811792164264897076540803151469105883065591977234102516146668071980551888331389321166002435784153129056881256551923311822201131585510773411593857468879982806732464340923073156581388974593549934608762235507921449323823028663175535006964742048477188572466502050759638039102284846278351577051382435268737515175648647330417662738806605034640530513260071146124101980480521513412441410913766104285595973464216585734382646712479311458576418489563761149880713275217350043644176506196589267406023771783306592380528311586642899907386148024182705663052812323855046025739780304767476367503238403903137875125482393776023695943780027998895803865250259515263968642304226304175722075192566787365403136024700650894235826688852354180588082850792308717341897997651778364571110917807606485837796368590926078848070758352392712577090044727282229522759916971412626848610552276476429970061101751681103338221280690551966334990659770319913302537330170960397464738499483874560443132396636108836058952763810530216523250504616516653064581100157468011569250464361698052703877809176236504900692375360665010901658912466980637464050918691699511931309592661116012674209959914317511750370521975406037060924962981815488599566082243861877183268461140228881726639139862952615115875906947781889201863826445397457902932481798234261077665268202318591872478738724415411306846962939410463824678520256935930995062994548116039475155470735752859940478672814412759864045758892390689117561822505928749550891286608591749006054332547398786736004153983909966748599639241802928684559203601030557091782698504961940235737123727776751622110440436277660376647271893317835929042161594145329536658711200984142252641102481037029054582373424870961799888148170686617564060897772135956331777280047790825643194966917879026282959239089061030958928847573730297522323119852177787407604368104659383024061559228788787638826487959398853369091174638510399409621882514447559708137512603101776767680007369833297862698246735940285703597908548843544880001414475861496308139213205402434107972759817816423392185052686362543028331283980863194334889728693397087214455420997856324152544405867812422952476157837838140788952678089232480667030844820398935088862211722703495785785922673759964773751493904916447563123383506477493139033405491296887076449599482586736335291065243731630519741277190982303870506760246861604617723005814030715959947831105370397189711950746547159622096011449237109754490169332360292288671829060528261531021433183919699617859082876076574409942148207078834991797825364978729331969161696500933983654840886126607615339639615884937986523574097285618314952842726222609987875475870499724267304364955009795620847520990124285064735290021610722593713410140222001948257045121034499809272377394606505249844872997897931825457002525981827584785937803057691627016295590433014890821908153461766758628351423051070189179962305574945355829125652340089313743049268211350789200809976395861849713033710739587637639836990882946992279609774291515699303413063533115292021400463268539666188945602013827736101712242191438260422584906144865723587778768450619354233552215263079592903761708058127531844943828896583934517147827609950985385765171655023721419165916220749890117081731729930718075390179824497041887456437507336913199864593246558908500844751340517810146687744305285916252775110759744204836484872658350120472060131410964341094548508977913263962389324802726568146160568311117655282199447899536910192836740264828917804815989842476036134697258955527490559297262370466663593164603145322389540570086116483210914533918171384429625335753384770882743138864174940054034235188628673878805890402959193199182557560062466789891438520133489701248184360731196949268851190955857778830227836863265107949073291506757983064410848655610643316394836763849098188152967086923883910475271415976907812392452354757691862720217678132498368661037018030545300381786394755613648788869197437871517021083681044881742369963006303027542480123629674451965276098623378235824377137906483991757074992147001491705141579236784703890974244367109585495923191646041919740111822919708214580224927725369706191172764265698548362084923074690657864788166997616474503866875115597907813629210644970282315190986544838626776773267586724785635806335686114398347774046581684250676744460309830188059122207184408249467473690149144668107812246721970292806061216481342967389530066973149819006474794548238764009488580755420083772497080679910905253999059524240473044385011910008555628745577591672359742915064285490080045812728505873626150608755221948084020429636403229932082308088348901069820123428860111303461305106912744777180089699274902740017804511995382885678851234224819380473984110664990131506182433966315427715297902230329008770854521701087855375609795850611845863747734828275373627637877149696461949518628617196672631391236611409888794212994440799207602540219271469803526431169396500756872188441693438504586450765695022390955682752990828804286657853568896816396127781269570546772034803199347587262650397723420801920684916839527749002282458313539939188438467489136541471099443378018890165823576627442254347609097486797371317813227821499104852052532332904779077683534763714797117694207662325554135005956662197780122964314350107644748783616793673997610766931214632933941436577866445973505212481706352632492560688035280035208954789051360315144619277528196234613461592469748828796731765719210102070587636773447185726431538198534941674274444485235744122987206128816034795785442992461025940500905037660986346230904828411860813771092964205840313164195703241880589983305275513178254047793633389260865505424712075292394482348958792622491145781496973048872853112258130729301093590877747112577856347323594348374435603758484689676954541196286023428998908863191025234888479886181238934084186064316133919429271802989203776051550343315098953657960357788969174126699868215767975918680828035723073360311850620640791578095094548685838898205877881449563810715284787883893667429983348201641232999251730081430776151411903066491529277812521972399003823001835712760809096243018477731294863686659278299714783247617186583562155513412302491758413399321275920308582487166301724824988689402265358353845095411527772644184575723694210062236333040047143593855565682863246801642680229888009377320944224036413264169184740307634168474546393762785834537920145995852118441867805394315119837386886209312148819586288407541859068232454010707685615542904579269860296864275567743724526859317792049156760378041528255409624797462056248429027429718924212423698144060469328223623471133202600304973759937049485471794375916307790468555598688631982864273032296200945215211468758012118643079986664386160553665433872950901244532743134540454823315435319819052913629653744407459695916089561921155093018700631844959726726274845996310777188856202204768791671184474394968437292526926051882611164274046046549371043079647648152828031747127685328845091225395955229442807744347939990864984072535611027570650056984668700744217331869596035588283287827442212153447323717536487175744943272608902340468185164668224274603221901085791338812709254643760089550375473973642583776517712668117765003264056145164753585200723712161626990564651131972999087055923455440608592307600461695681189930941322903702367582119234044408565695863610875254434088584124481151925543951847887108018198818938520626826198195400793244593629905494852169264175506102486909790769644194244772354396601663037690911967160217104223179065301046407565119307580759443160536820560495271427268337780361461823317190790159240254710272836545363255903847379565714244967914672448806237600860181296301226863009032518345247010662724474674676807240897491658743223307889483171309423332614503385826514849689379953636683269730203525851243036638373542924293747360607817363023177680456778943263250768578797219958598632289907245449623243183035933459226470464628523750642371040993480929911357396465699668667875608045969527586158177921942317764137205345322730272862422173271300493170318457702434799642572198029445036375858186198538429061073741991621571972256492307902238015430254476980857510011298464366737286409806051054286919370279458966725171724607127886806530844511207612321145591751229253719480892248418235474956342472171763151157569513819733520113958350194103264639786994176481880323943795699531662508127958708666013892431842404400322125319951298276062613771088791694870358606341303303746817831096576520408584493375910343163709309409997183310057995053420724516856206129867635843785687458806259373406288630290988500260867920112516611181117011492951309860959229226464354457544806546328967245470429265386367683326374039297459574643867144910788629582162693154786013921975148370783359028774105758534199213071680305878608527366999679723347365662134268344135037074573315314500386697533227543313886757614292793969379274886417403338629620139850769886372307070337027371075091014914356206133917352316518635171300261348830454839011367319395278502904402148933314164434523025422751363552563142550612512187750128860624559190045975575910229555478364256080046692189996584021662515215834127701421978356655773852332493796997015647724541146463236016957424843184495224842393036719050409602770873024447031541105006493524168473041567863301015050424602035662897372049613655205914837850806558831079402666708529727621063973725825621197196924040021994041601046559944653617397333982458679701325126477777125555406236219380603825789168639142442333651878774698744830034622364591443531825995894419654241036024720856311397082342368675127810552357118247364711886117372867836777510951409903526885503586307065182008721199304583354610247801636419474437571224546166781226006728669360735291125290997315737436026940995762401976825740595242813663004849001486373045110783497421487854638651402983113414679419879581095985371019209345820345211772385640751348105847402853657275767090837860633763497426438573424053464692418002799057121249604913766431202357310403051556124392328810117855688066983430428880875987013707641851863653337674534192869215723829551424223413065159345743941684198553904805183925379355223454714293739224625704212027216180129398790671263795537978324482862666408655133804600288072122648565629021959126590630514891741310207490575769411938411079934961467170741756192919288863828443781389862284709774409657284207687760585415672390232052086077711657605704744027246692124679415795259185404444726376380477550436623494677752824477827287712107768428282041088648037950632888082971466259705111932427049531343494127461292081095124635729226069179237047256000743734444322401283021074244301783812401752462690851111916163946670798246528379155969418206870569484713745403560056732957210739648929556626430572088055342389750244590062962825312743471548443875827327691157549504741025645885553038293531508568590089749370273507056814071814823039941822353206490411112897146286987098192228486718603721807845444244219941363103577420154739439021727826247703101191564301005150290643465844039008538771227301103109609013798693706713912945097536557162271887113843095399534072489346914878823310139428421946972755446710960623849726911102982380621568396363237769345582231622027625450166016929753825107788163785021335033590557974715230903271465860702744901643862618879769931726837311533690542284850862389289803684627853308221305582447380995547306021609490819745106434817021057468070510605246126264505392704111814267374325804491065831785929406890089711072216302499691822613916663927494376067591182196876738800521294782988507615608963071009307455687647041042581383460487291289463945231141800454887372138058625651552405660354476338492154077894296759982331553102032101561043227393050104351348812940127287351540214766420171996103783546353544937753170199272514306696058843570166539730202479662954508400180750420072726519736885925966638935642471564241241437594787136747681531470189714429129759700754965066982409370223081379874998595428061970448505930893999850618796646494838099528189076915732157323395944204614829852928571913318186577971329073541561651839250496351014333235366863373184345073578648079845856349585477622413394009514342023373554375986940102532597668011658722362756196560764957308890382505652003676248670026143077088178562156353585029808444356774015713476730949809333318197734387571305221859547725932428500178561258481025016113183279643618458150097460906952080002848761427704758588347254349694349301431315936845298171108594336848636847272404605545391915475182583020119934510067969210522425443992588587186391185323170993713009845427826771970642913872716483730976644978270558332180085819309157920608393088233038382301678136932922870885820134236265566563279412223932764621460227518962852404504740323126845466158109743163485258113205924433716910989204548946081966165165354518731043811459083542149736929574079465007341122065149552520576938518963217154337582978866970002838657561497394377657394657203080376375159622465901418993872048753826537836322425705161265044242062836505024565442068066945909741183343693058294476101423969389661008717907512438899169305468329993948307508326441422764731416198097968535297086599662088795910969105076867273753329699485471214109625669094457763046699196774440821729534225578462486557243345131261171092512997826011864733678246212462927371693686535248664844684963876620852528801626342222520638284973389854160156696458815871337039435382744213319189703958094744448107341475294985720624027180644585619351898076488141634136448678677998451196290015876040341544897388887178989197280429622109417370008540325304565650177439128549460793539920599584207419214588046803108818437643261158789515715508696830378748274278072766376438324004825322975561651778940370224302584108075911566425226394762311294775692885117001478376120856720453234552792108143785134144296416034004996496194351111296588279678369385457847858866864437737375977868732490182692506123491846803881842629757239731111356744819449798275798756133312788883946981686811720724632827591745155568967736018550144004727440949481508030610588944079987684944020740862426282508708254235986470543136613535678721627664029185789947196240590189651330470702719579601354196567631314573226028793141769203103190436068560801594416233976224860201521263737311492298689341997256959748574176513176519712686581273571215012977985259573712362457355480731201973943162904875618517580484032435460640697936330438171200710759193179067368549298748585037387124827848169957151521568219487261949666484118984911515383554040182857646031722927567692868488984549856346612271669519055111630315877984540189106068376670734978594377672701518042965604653891731217361614052557987375495710786160606187503905255050361947677279487198205167375469676585167989758156218562631071244142870766917716496324017783931632944728829669030809213629591373149577355653850225095747371055052633499540390555072368161144586959243457351993720025986100561575838804011210843638569300557541059851202711296733348861457712749711990535685108873936830481784912592708610062615580381092769892546094614048040231850712851992163011796484952996435250634902017758641679941280761379955349568205459443541401284783027808402510860311597345386262101992135886170495386310510367137903333278949064487094305736928235300561921520534721358990894964648684358093832941129173659655310182074883544798538670960292334713998530937000056573492494168137847838239377724697280105241425041715833747240546752058658549338137856174249653609775358640565141736590543342624028391756694002242080436419588287308655041609382128960478010356201447656339420875556516636817743684259043153995304876141858184845134880110203800632764328100377130935256221327094587491711581359705801555612062922639004425242505118189411841511782191764184938830967493479186602062402569965855566956812611108972914022731831597901704751393063324733992805294221420637190887584414185841015969154929710099222420740645536020722990980496721153399267475579488544090617868104651723295242467230192975083257590499573975866342078058948537869831840788923487509174255524816344044545245350896874883947553905046437400445072344720988432361195461227149889828247419558358549895091740841850006550170693388360157822842575116010762501040171173367001269253400928816666074208622114536346630588018494576468407986542663591527963606788894278965782355034475877212864423909680904278652493814274599278985117202208952298041345271182429678921170528461724067183217381352020597322444467941346912288335590856705855163563757031439649143933095229688455552978375047796411842383366075514610446844797966591791911742876733382025246595499285100216289700693111474093002299718896268131507374561615110146502110253447714182541817562000886355323339631997167830922510049862526485520382132910665646578633809141029470439449005290128439502450019535504579237709456607385781984735298260370391260093776806173308128803824792258065730616927747971455744489715111591284713904968250757660467401527516917280623626076516821962209499497404132864693648402372499858974526059224024328742244711188296931437353123882061049166666136529554277881383473237187055303815279677650592556047980595961398444336044355615897463538901663841813475807356286822351172803602801791676093483230009107625597783098740878366467811922551964195307792504063080746694558696083641751373472147630850033437489400384204265374227555055505588317516931189117387587073506734472590306182723935358293831801501938726394943818331995809591519884837118386553109222493933058949140582053498919209486192290256165334475941622766140170590038594560612577817241393166268793760069067187047773422232050041580305754833640028365597035481076708954656090569439322403282584217791691553943155560562061914008794382945556391528351486341236062402473607231446256095519303115489004163178761614583252627048124735870915089263892500296269389055624520404057341930181086070509097675909448832799328285458297269021030687592414441458555392294400354508854538926653418945579754232986186727131088374987538920750119201980238324265664735545538231200117851698636659624532415729208181452988749491217614391736899871726520319963005167438525980782509013668924858961661389832799292970957828706064288492123278645407506214606136102017979761473642963680000366783045152049835026418056030243893840844726176699235596182133129837395813500657272454642851258297336069361111777500449671614628613382220189569821243797191947611476460442467553620803953894501215009725437845614923156618858132426630056984734756265296590832833206728412959026557420058352339821611072989329354583869024154779742556282050065766686149281097320827220301173253010804292745211962060617160085457827376973555301873601060917399522563285530579509600067346470912040922840482069936813577440687217926938726317603122758685988067866638781152023582168006702597130170135459461568920739980068211229231112496954653768995448511816327525002971178731239212313777440054879634269679424575454118778120833543438208131432374105245674806026048713190610796459344611315352072582209672367204212535384177034114201302848605626553154178299873155368337657938200446395786831564114709047571368780986501197455155359621800877152542667313650225662366601237230288435162941158792284834825151145598510127460711332779815183386135103558101815386345948338698950158393552850553800464453225945474693147411464382991071464225825313237467112973899810679637062939130512114242539250475705152690369479299057160192450226985620441974952674083086708070215613969975306009766475005994674858076416980519177948177559186841975066108409164822698787306329457793858170672634558445183713953498287459516600718363789221338893161977461280847085279384792664160826223209868085036821866822827782490541397187825036227403180104444289842941095692567727432811285224122164415430837396921554932798415517955765010697848261179602098068228610894634083545068730440351441485297910726951665727914687681261834836974293576501688048268014132329203253364573575843608113033750342303061060141842756327869902410341345147977951154022401948418302723569357086722760801042158087293586921398956880449436574864783580733072633195409800175811615313222690242293933638397386276304879693661161768545813844425799819681926031411549945877285437316496887024645120591053493459954820435091371934086763777654118445506155499564408892318472185728808429518812466026296604663921043494861297840164550597164382897823687021713121185272973262396138392382807114425629524103442914042961518966633721928920197649493016537019960888065821597521375117740505473614600054127856606467614639067605850520004390756927642230638507290251919680900688812165668045584578362559064339565105384563159523358499632125483051106335295318517044004782926748792021444900933801093117552972955882346240399465527070138275933676174101907757784567888538772745100434569420193759909329170712699335097629053438987279028749390189619311745596730337121717221585034976524099452890952225504274202798646223491651667616095272913245814922985873001842792645510883116263961764135665305207382190100361547893664091914697031834388947114293633664396919383004865527199587985458958020511508167702071567893681001259425643129145535103641324690874068919700197442586218700785206319235970276662055623821063128655555765452147161486770708527012238701047285650175955613754194372832862634675424375680225831117372395684796822592592392861265429489388427885538967144078733925480828640484230984523514180501985792753653586416854967616107943718319210508947408413498662059102561247602795866629898367265111461525517125644142752070635462774374646268234802498447179942574322579075920962013963178799318673626942482862556340299428304536566142481499278960073861151915171019832251467816549617146090978646408920522248391411876257303403216623340430989219187800575156763242846536789644238919432640772535836900777759809516030400321870839622870192473778594618849274173495723803547859714698673640701713380120140776009323050627787912494553095367118852993524751699940465617095785119934818906684002463722751026146692977920944979655288197145254058598220564575003285840145818612784964847631170435626524056804766529556298370368988560053532948403315867666432285529097503378978747238269489060297500071612902690725119582243007993097422357284644089752575558641030423673249581695057724361857444898711871684059671487118761163437164127707554060651639486852381448218103261325360633839041521991211178266272752287800333905985636772771374699507733148116504713021396734819890076138636785664471684872364917555690655004829213347329077876480865758663024599108448532849327223315024285784692669260273049103864283277609807521736251291835162070448900353198288608548259711649130608258264020411269533265218801680650340677660709941604981029721650965378732706848226813932011212648079442467508152328879765280308445203836120565624070722435228708551807584445150263563405619113379309918459954920665298651286451281432579052836297521509593486592140696153519437904835175266623044020265487899223672791000987498615687384667304020738748103311029623856553604192837824666654175936485591223096336120060255200886915413688307111517494989084150695184356051009842404016372274283619477567385027845667396349169202768196258464308103524444450412828449769957084718143503704320090140752138640687080511536336521030568353432140022082510781247309971155739881027366497754934680264009701142659395122555532293996558665335059270822047961038223170081715803963152184927333982498711600540267254496954504978868628381951077413874075313042772982505923325448203705173339111474528760914002595527267760690068738790154380072503053868893991933048093443079131966369492922743376856193657690416313626408844654316868335319109486740764435143846074079248308530383595319968686437177918611540414184737256334643838227288177127168274716337962469636032923427730740919405798902611965032122616497229406736722223617559963995524015631149574951266741031911176524178911868888268487198798474100006860396828649544992917213136646228063162649519992612430807817802569212719339456722939656447588821786836493395933886604221145022476035063456027092128809950054454668366701176784675446835809869095832278695790628099690377688431053550319750540456640334992078289609902968481641618437489576435810946795416415592765544574310281144658687160489893270169154666633610843063926919109886507157330132250158718794058910732920213263887031728692241383810365881506190811394112161618956114102586253159990958459594410129308730663243066133171553293798594118029461266957244123169913238864580551706232986752479792806151362921829193080280878964952922985945402695910418457571967028154935453778537866796289493125990141652832524234642205614198917302572252068328587247138573490929365675511497670909538273617408891631584140735606571100165309059618941853986086081047558823254649681256756457178431196279568198351698152977277525734396347703380308535602755986501894560044303383698263486556456802553390285215163366081715082643000756101624165725696839502613279955279055890135212934702692434614739817611274693018074051097453107698368642420061677021721673696131839206744381006105847755414175954039629413288989572981089709495465749232120935021808361468304073524590696389599218149019076044402523173458168064860376607322456445559250976105229515751972098001325420375458215454262240257085451255888186661458924154953473635185291125656077467888857165418184634600149667112391140702525584448968931851696912664276168133016851903292544484893739023183292448649166800941859702110677517843374327629135700187395287088376218751804042853753045790467498520343336982175639336807627000910818309710254028953032683975606279943431968777527340726921342655577120767206818146764400072649366282013906824323455618406433612183907567700075512502219817502177395448782768095539687225822456848949748402094363188246492174668216620981811721314832032240629485501833253109290770330540236844872641027787364215561480547116892669084827837069310269603506927676103613446873112605033803221881036108156219116370303711841505278266089143528846130762366757116053765221524092853937044726995178062918921435683852797077357270118762125318596032973355408839060097902760257999358082883306124937474836466824366353834852187981541756481184193803652143809746932966199585870594263460356286513622017774625537773258127197387090443583075441645803348120660918998742764449771602379448651744635613362163558583918873766077632141244335463428565860739144628622420163772650243809289045655300602888774026229007600260735520619543613114824367206007660944287974476100477454022043767449825760161419083813367197349498344126248309291753833438568638624956473789941518966189173039851553714559372352573341395046575954051932034752377924673030932080774428076951371516559875985157204575312897497635486693347112407902608746657440457403788906422562248726782958756594614015938695613030185269792385931481726471834484075747120334211877591850600641989536685750037427018119675417758216840341363213231214596786211362303614563835621431583034421284213913377710660276358517419934541330026613913771098258452206170303991146847078141824504210085970930230653006746203131831187835813037173714495776927556331935890571668178023778833620090720336820201136754165915909822489562559551817705429372862255174852959909353170154891060346936979008096999586880358845926830190040372154980708903570770399995804965927656904390023467309140805742408008809434931503963177501688904294873793157962957674142934668748209894002046479675832616701927500285992685321190789584793453956836420760668700357912773188410929017751520289227172537622607533218151566552463353528788734139286533134874853866197082795466022070941584363512627901385400526760138473141931741484208321872352732226384160200408442809872642168702499375640482333620263456123025935394242939992410367482491399352332178817602197201176200564343823294861193590696229796047792965588077599303734034262544524823874397753668475815693754950613156019835250920713527541688894530607672546267607289876526883452966824652565775627042739598207972897723870343712799534013060009993141998422292396923318208535873133911714464907554092750108115678235870356180863087617349118966668159573523389396816918480015904505033435924065983883815426669766769316484001826141805089917675167838846560501218863719413464081569282428223561007625959038619841085211493975204092270447126706716356081764410489401839039919076387899005906711828422490699972205928137274787558070970028956112017065551477890778336059671025931490186476418535365811197967009612191973776478592155120951416655712902609393112314797973245717290921434198956355330600306853564149058225534964288045945144475400776166001244859718220130371735407218078568329730045139184105152580888704649605531851901066700079414350517787518805593279338400115826466161909784200996230935310739439162312597580379937548726577200380845196607940575951504355798968987738586850083745224905911645374237739035653983605816172474197253732263104276893445430465998039570525082512507377964531402486579336668012322627764992572848684478855472716355157254712921273034739590025743078269610716576695060159597712197685241647958395191345177769069510640270016580597014631480472929157106501385792399996882521543279870769256143977809339342983462468734359205837546422062502189128693354603209728830552500453441005261597619547003525781054895140539812215873399540226287552996408255125303589333514320795002798787159930305020799308495478626196495496608412802660307953430330833582901085231993962019884564522436075184496567186680256715752455300722129839374443800622759448837159802805900546165016367329867845889674939279540312911273174464278075964921524886640085382295143227107074678495262583933892840722572666780791810421254402527367892475869701245692574401627209204833557391663317859491685538642704199702709636765536102761043314315775431649200046139151300826269892023968834410060948346359206732126772665029936853620196768972478941055819103510022916481435777639223260404692654302851425683266139045381563965060652596135529263366785091365362770456316044073122209841695415990820312721309430030315223048335240940801263396969274683152923888947285173696758277611689380887288636668660916679191711863678227812232902779812447554952033227555500889930064887727789938255904035138695014415276356829611401194298766014673973166476351293245532482225159043508440366778382123145941805330355893176624074318835351096583797012440257074404417397833468045833448759995275843163082065671471257171225419047372081087773197596678141299516163306431394823120056284875302074569315243374398992764441837070354630260136418994526499437345145393620750635343543354555232370302234809905357321189072199887225271843982616603626185972718616563566566403181322470296239163059330760328490743635833481995486790107243113770540815051553138887648572939082508352975173244956804178585680981747309351636088127241359029822235341521394722470114204203798769520394862619061504648572555030546660573206926517765189885557348848246030018284471973530254786883094608679329679333799105693488674445004573413040704473853968009284426997548748044324558342657712238523510892087629628093924189761999831054314834538737213987104825885061347860925575021943335868254944410057097870969605898871452710202172335866920333169093186398359061462678587004772900452939580192888026275916197738680501989766786142312397856360549830185404145068704565562088799846568309650941802794283063346304350676237541843479305988231977287533888720284339524342880520119225819774246557298321281060741162555971449058906781316851870981389725169350319348413218458027704051259471259909238954519116419741436585074298787919299336170880126759308574403682685696749561704739284956624099431868899463539538116263718499728955744193239131312258880538340467819570628919001635946006785328873421554185331939648706716916295438640520751653601987059606586207312304801675851113203480857612804987478359994532172781540164876703627596607998015316802647836153621726153802584588314843709296961579130512110815991625321760311917109665119665196022723087751545612201637074833713236024821845596784687193361223032096364574567854876132689717346212338436200741550625647744242271705348402002990905749841618331038672310042230691462136718187214649656164993332244448816193225232397700561313319536786699957725479826176769369458471156030679762675137015876852934909773183601619506732636187259355000779622251872096496329223651451035568372982260020648208380083722086549515081764798413991423200606453274773431393683144714860772264320882280924870917928140332027974087454964585052114946482107452121207829153059689455433743668584974915336182900217625181272917889817298999568837184578944073824403395373479300695113682690560719429802565870613933418489694837356647797985988584876751660830970082754177925669598823460851337662623382692100217552328225084565769934965191897154414945470722699615610100579145582117663577296411017135206152751704548873676374292218283126211967928065518021445301399429567482855388738633077979249342369430827134890583580308398082732034898866444905288965678534543070692719410336404708622958651536431642742852586215888994811275327979796575082176429625445612646836669480338689609561054877731312360841803387746401746310413286310176187808620047148885518125206793107923671082563943341121852272809664785581326494766721862766164439776805655518063899819463720313926503235680712218525673376975277490416821003824323555265777429192290018319617027256139826074389229815948175382903508163151574942058427088330597515636387713351298296214893911949247620999155033224026734254712437290570091239816750122793751024116808100451464857773889961976527873728157955884217061626931581570822623318781095638328312525587489099228636991119627101939193732303551920280170810882875202115320634751924360695552062875979903444138029578817640544953209665707297157841557057425916686940546035343990210864720149560069560375370773006223866005522559154797181404213274841030671893487819769173703539516373959154686960844281102257519988573413482750839629917805632792208141744279461567461898756353361236854109857761719899996022058195767901774105392378173408264410950421971219330688756835223948222963974264176092379766243067526605768398433888372312020911535644829210285876082466694578337010413308743872824865009714484425513566641737712063340383734228604015556464777873953223586071580944708121849186272737059270765456527728214498535897389131056212697814674417542650796340977534556936897839340955111894560436991290074150045055187238303496518771589928058695891857943922305162299248792346082008950628051493739563864573642590493897746019444071801386202234869790160304954615999833229781273536455777622695440521625160968430414534441362479361326160910202811208018864915882479377983439632967914202938589518380620255908916920735129180354926388151395976574669220937472727874640219511703226479679560681573018253981622853129719551705448817894000085574864496577951732162203050018781410530251262853667485587760030580012429042175758304044412519560680392906229974438101753109196774453660236055001455427768387074558590446808999460719493100997518715619915573882655822619304931501078182096108202458264848846958559647581954473903766644418815657403085182836591537166415630045611228805704844941118572776429230873407245264556964425434431463544938626129168529620790804611034880280620869049571922673437950912123917757816612676138009525905975429296864887823375303677161549003543340612218222477924923470468515675733860241957561673357576671206617756211685885461669723638047305501196135514001020979803245599422536012460062731362626069632698218790781861684182003568453414191208662109728716000258429149543280186389095121781803907465975379741209678531792246998172890019904598803998347117596605715763334788325111667828563693631001173848958701611842431357572747199580832973865302285255424826485604522144244352591409222733010817678496092606567342430762956636422665965359114319542015654963559749950990250994435277374745773725911748282325414829767378937565635103955086148138346425137140841775130683633760758784847642063466942040232845046679099964534805936821364719477743732639644093934587826839770407219503632646425873509904413785877173404233430919789619224095367631799641514921384419707991750857264391793010778990590113270275488298977046052508406810175049905373318384793702303631557660712248153819382443080445190510004152740718240522599663575427933482962067184519036604687902498633971595211992071689400169289933754645992293804187851998676000700961877004688407366877003023306968043752985650414783517133606628200411860165095203558086670503518448318582386314979771589449949926029134557393073247741796547071018941524430597783559475966579642286083978478099215892844059909991915708090112365230745758769402532289920045905285356328534023480329455590167069952010003117414039321179950303410499362176110785830966219934897858637186796259393386574166337322797795759861049422737330865263289470721590523128270384701423787117007185089576231278342895642848353515400873481242879721713450809939121410859922881468247420218829645272703613670742493728053427255455061260707732277275892598635309043571359131152255899784053091579272950968766874524325430530792542405562362158103166867216770947073282562424203467604632301050126853790006630006731644855613062470771034592909446042896204042710803271790312919435727642208071509620267294440826166848432042681058806654149936733732330698117613797665811079576119265462745430107476899821751612457471845633954883592449040738432492070265327285293493829856937475080702557922275214830072414823822454549393718659482882822235355984013420396174826107288089170423484782532129158317729861350247802037406602861228044593238813432051668373597934019490703904211984531737887482736546392913715317439332444481927859133667554779801198831808197435388212724979767579973679702346952262257868422656026127433411177388038549407322534770452685132854256622581350384251201109053304825866471107499430280237503064528568104987693521657429402720829836687573649835979326343774983920167187182789733159740858850819857325723114406752982341570214505091211757382193448916964138449457421317202533869177978241723372229019118462852894785650738837664387686486539277433668341998953409654869711058964159618659206134162952480241643708091989668133233963622679291634872998490227446757618530182873692850205929756514933588594224789394307777736294430927514032309735815854694043342142866973323112481115736902803359140155193913189632123622977071126293577123826714288472561606600917560956745032137037013964022266172032500713011695143499910995305787550869487150911174803091233184253409665746085853932263964995867459709463957281545996658254851104638016593617448134468654173095886960926757699621064744535947740476642166990278606325870799106874571392431927634194740671123204311417787948592788639700808635710315237495532854355447847443772412700887243446720376243159840846028568632676092925035705001832387626284576330462902774804536012068325176360627542873249611837112816162607451944766954836756561815867984722938594265304740545510918231560624398810275172437335284566888442562731994018642970736801920012207377797851429661705749187768668788842306816833726747532951870082372915964245770317836889851236896241107009270128427870825910284606139363990842534461091706600652952244225377058097531479036635342374760748029931619123350615108080673328052109931328519684341332034662655552210453314722149185651935980157308398515052140063521668725186958031182632776298044345335585974449165591191512441424083187052195311528342375988277827564862503683666982113720828317403073898783242919219159750766160203250691534792010001520008400768868496387536731653319989055556597845183906172305211526568513121353683987383682498105157032036174148092498877596971638151314986614265888551155493419922902238258359794863201378483303560554302139639032085806158166564374773442995840214750644291191032591938849152046501770755464814689072187504412036555010638629618368023204873182748484452938659722726968539911893863044197910065689586043060733301147092312063103882583589827513513214652884265795251209787291255880292530409586827997941523618986653268351294475842415365399755312877826344936761076803362367031749742702719144279455843235325273963457394786492061613975709884733654972965751877194992370570180821037861183042121291888756772085534452418805953051969107278485983098202561479443656642945804363801069485203059433587143171942829257237920645649808908061951679086605631454851356985205188127024344227194226482208519159229751366630965018167151876317263438433525738857039866293353222781567477409436086568970962840373412740376608802924807112584331404461963981708257238412946194509569148310217637428162130609843803159673777970873530891085776039231946661027117824730367253148395437843312769674618844900927989237852918833353498509434064778056739527229128102606745836299869150274423226111243930452047650955756262605524772830085656615056532814210860545552859438431559795464588995369478575208870821294165777773561559574012745964239261266425072222738113543936364686605298968144501449037966464928283856792644848272864272127375689270397859202326143554986630064413859295015381801765939102043531531217137477161891775067589810846512915578668242990918749740532403018799125832972230750524644506293559523155498080039668274108698581069554677026627375350643582358736854205776901850587642150240668951500068742858325817887967690822788549008562700157897253541007235657490821643547480971991527226540477297704920023263170251916672751776504744581690367981470753501457887949853995524607848004600011604506617926661720881352964340698137771669648210463732390969683130768953923389307384762400874841543313795502977223647668049200104084539826230621047654314566328233611486582269081539981920803388991277326000775365595462449464496228318030428948600051901128927985167961713451158154412349469807948759680736736205194296787665133171576988652152446260333830697523285075814897799431529562191871949130435113176257406739042383878539998646810966432090543802445796787672832432974296036189697599096315167722083923485163179324780317820730688840727359408403473855943453186642877788793276427340992284806959870360715503098359681032727637039013161015442194987430162211275203866648897108796187451056558316638918045823073926851154256780004228548802990011335916828831517627871490666592366577248537812165566374496654367763957619893031273183439671872533891176565567764690815849446891733314448104979608791569540014045341850714048487964960045689362232838784355030075429554846778252317130958529287562023959520662368938165726323352177136627028849039971197489557624882299503853913667767053823364086334880866492108127251935343387087072600343182099188839561027011987398408336985240734246056613070063315965754743122588150419429073987593273571825355884961204653043371651110656477366744153374882717228788211744306466121862281290204822786975421630919978192636450284103309243520566954776942291142309529350119528175594793149324163384325691873942560644769059543052401248716892343196421917095468426930014635013592182483771818572904517530448405739447608446894205537211736412365612314953782973281759484771309045121104861687815972804522273500029686343554952880993560141492915945394820352225138890488361827850635260824812296395555977878613238590642172085837926426802117722091403305470196904022468479495175422765252899399561694643819212557583078318369607880652317111363578226145698876193316330528972297508303261958114171045032891218753047666377744449531722228065625235523742613507627087435280640676437863244225648703637188941940996334040895299226991924480114892835604092154104518063733571346619477840379328141557391137463715100746111044016100699603674240607878290199869613266505397382632489588567311596180381682679242667070614947102428728194242699870318603695071312701684932007702421067508026375502244744457226732775731772446045798060307821427136130735503308786629987434096418543047787493536474537606883986191652004878645232587942112343249821552058600693787189927564348566248948394010098683177489428296317527942858367666057775612093172300512501465885912429537678813005988858632058720231408954085564668148453332629645050383229303813687489693637421104338674668069083941802024555191647881710810964606385283734854566334051360760065773339283359421001689962033937514300967039574562978735816562140452465582360057468969814280315738471516900135258474813820399978600571999842501834021145381583125675007991764636127055792272579581310554330971184282787710805142259998712000478990308875998637828592765190604702608793224144073967021785375910434323896794862434901822866926521204026836911582405702444316067443260629700370175340822977667263013515642484015185099088002891991319842989879233698491682303024842924717797969078598848723005314871257786839483144419811297392232815021288240612301734532628573734961546906622949888126623431867395480541742716609594076986101083926376136191201380326931966623444107031998717685853388053442600541294860717420051251212062644653358705216871044532474981428588269588682815888807098247389111926113646277821661971605201299869070375181646555704854218647057040829018645382691678206740735142424246803107651245704075733092029557894779041721288156211573721420839965442584966572606329684084574615473622157750376221008095688179323677841257931982157072679214216940796212900909311516385945530767459217390553691863862569291510500858861497510348854050428715463496612952129703773578249470904666965913143635441398716220464048480479724832082748744993185383334964020975961795230056805662498111483846562062237575055601130067079844238010702548991435301290548831701394687312227493620373931338637234949595499881573133700829231046310332503150545482043174598299383538897259921933507342472167120759525574453064538551976770030243838208847149060545945864020328218651235892891595761635249289801780483094939122648219350915991560927681760889100867534913600090979603835921618800779891790836487164914943153209963118163300235590115233916243278750705816018789372782460158286340264289572803625223453196447651427007050545231653528216274522300683194725400755313877748581320263661353361118822588066746822638159237193343419956459810524289022064391503531764958940838802702634646988794589772028984655028688899920367419145235859165829465860463101819399157364001279684440613701163024748311903503994947667672005239455595852048757214508617971953919314873242942257631592107689206514661442902087355600655579061567093216797713889433913170104614717337364685865668029644893228927771288760144897136269459311665363050663051972484563315094403384020821358925273004720023966840123797114949011642052282410969203725663820665593856271820446998863286873469808085913510753739742462523394605947034178359590694551696471039252317283636678838109152700496001706050491885492401678227397202825826306470660002515808114104608902511943002870383111773875634561821423888907726173568949508908786243907941975570880693593167556957962167302012013929422137192741738853990953534441357895669857480200833170368463877453582878063822242288106801356405572594446543010972063438054979056617850185671218579201117939060110208753972572120764136732532726590323690480102886382758743182812924986971973498819812250293468282871897177747407143934188263157464708078832222942673575392584953134843495962557978289721347159359152027074351677728065111240494479820216528928963917367037830347766631166913030447330447327507299707903358118204228220032766632018465991050339469690381163176822685536255972199528382529801249680885981368661571908601380128689514772232289884906615406719928123955151304458384810432665288158346650609696352386313004504997554756141143500416504252287253935699995851310924945492437920098066565500452405225287673981559702242485212982691465505869519004758388888246056659061822553877665190750120676610282663591046591920320776704074078973365626431356385481482236252339015617764163122328601296043468322487751767526249503779114630442377000435666677802058739339144991503762140218344226238282886667572318533869809742312826483428108528786753396327949716617075870050077676050819413747752153038704282571428258311063902607861330790198046592794470291175343922906403164263627010923938898795423418827814976139377207486683159815814564697923210056824414325155606521715461087672095226521643592510490600343366587706462642818803185598410782825166421539196796636998689343143980824452169584735096301134180476157286022869668580941411717907089050465216427774094649504422315292973780977297252318602239476468432999345682633074751547637241324915113033768689085014932902909586258068114554051468635067860333546451286660467680845640514949486285172612241965575538135403833948553951583727645566358015514030964243282753599554553189225792669839426478176341034757390577060241207431475053010375286545712095880614420131727338352405588778441522020016010652593637301783652709849188815899769698301762495750585207085732254216057228326323932367309519051246264612558959825187659060475473627214275217962449157775309660331719652936424367856688462091214875175066863626180932039996357738481773056215532254780529012080822815711347937481783136945422070792803285853378062142859087970947867245588267653821533522701730053086226767373837525802058198921099945820785594536061789710163933896941475850252159751417232485817291096945418033428906900485653146398574012597465503799945890245902503190490470567403111376560189784223902459916472993273226128270022416327801823448460943582813946726519256980096838486210134027459930917981408766697857575348115347568084568625510394312331498436214168304015803546579437619044557326379547459111977461016800224792995773612154861619941906521792495354155989785908781981149084339194791578103253131096588341873976758868567829250955924130437944507823385794620478162345556478296515629229244825052712710890183215682567031836610562279925469520720654450696450161512250652026819747576498581005988381646033487198432257897003238364380495948325089172529347943704002281409503968644855629780980842955155137440758229398982635835043137980119824222746515930302217838528993291880878308877061977367783694155932723816538076438145579515883982213972986067840590781182769882204003903118989855018789087313480286090395869585449290671319897113302982156571367009887878386957701221228873566767657002484136035336789934755021915394247757789600764406510597322701830087776618321768415607182182197162853003588071776218715059727894896582857109576661483195177642467115431166231967158433941631727300481693076968591923318371841982112147826736860854684781450553169329819624035507834268032691019328626952721296000605412290633818914821836230120487785252632816735004381569688082627370787547745191079630943135767584230266081870625879888239463452289371131960326252543865191270818004578914874773271325057020799744240576924852004342429319579730552553890879414141160535267404015705261629720557297708402580351733599980692956139769279233089591408187044571647211618921290617822575383430151872236893929732275504633844416451890310454287820223516759223803261973660850655386346693801367077428288334405431068789723857925837419307282771731365937307122994336023590606124679006241086756081940174731549842629428069678569376302083207972503211636328035011089212299297823155172505219713915364094859950662623545642000608357036561360184452433861360040740445851300350973289926238719370378525726389537661913205481826117064511525130338247987641956349333914966169602707416534215007850851813704128186143978184775049514113538734782398780508351528160629232225361742649725119644363513001495706234251909569754655471630668372135252081733959978967313945741083514406985861215792467092328929212376181367188051252683796112389542405814344452377544191306991310945361382164797875157308653309665686662820058581488081860622735566527553691739371538311723080363347252181959460063348005491688970817098499403155133206810749867178626966269024488505491029701416865195864560616647358712321994564532957996463241440503082606733770321749594518007858398469826408693267894468036650072388329478345562575420790360999874367750874616937535940652403544982771445329312994133135466475752486279316273275897070154691545868018196411474963677344726243248233734008462975693159580761105729307308036080325360602146501835138809187619181577298008999815026898463448318517530465743119924150798118404061573800264161267863545739643566591751933862222065624436419853749030127832410011905895070238602438029278054493064281080143842454644235903335469721550703048142698447846892438765681548333231668309195841042326507598784660914655952163054601481007879778987799783117836948895508138328817474610802007497165945613278367954620728013913777003201471533792195408209487106466102372590613716508487968541502367315010801335908638251020241152546069049483323218263926585375224442221631625638033887492771665353270781884191212732469028383490759542457807620127023926292494201731763489568000925848281668588073832930991678494243155324386653662196806650265356320033929267923120297256072448837952902575297895817565934316168086461408836341127250737962614941761201803659014840799166569723323364814501281086626099077274029894603277790656341885840406073865678967417042577258473945364010433648566405373032703423383004933645448460227311431552944026083121347871420589381832482133646737802967315925724666803845485636126542310995912400027529322888463465791144880950600382147581589130190037052039083100516995511829501275798918800774625233173686933527778152917851575907737838023901134354142903910723923302168605598210804383265673259023764814332801177406943394570266520609707640874575056570399783919831036101260203124343426101356498606513130454631642951453314098883712654298426391850220006666013278375454723936924657934568809364247605606386880896570685908662012944319824132492249946568111022446712645285259428972892972598038376586468011997712417881135400612880497497159377969572326858443718429934077444412007355955018831370319291780764634193208431897624835136066078999094567047314891724325412730441662755151984528289426182971561090560779046449220475934526257789291144467637179576038202926801249026056344025471010920143838785411524053542319344311859078914558566579497119811287658607256722446649430867826284705124883584603537271551856998874773689434429933886289426770616795077559436089287628068148606002409991519283705870555259642470261589169199357485209406791055729094575123500100712343195430447175999376205621754908282935114130800017027613678225713001346668237769004704649122360313784114325823109604216764289920107649090244969429881629036914660431146207264870178243390826348612988342774579626586648629954958269867491741720457982440433714707818705710276775012160351627943592827497386156380733460213357335474501772777524763049152641011523609773608000242526950349930155768511303904624703490028101954638692537725796293647015778269533916950259384577144249477615922715994047761088872138203486266794220480311544783447634885061569257305199247150488440098378696474434839602487414861623935646667585703820332333765984778773034417648754938978152989126201633540379091542676304650828445620776731073118779259629630559022872514712735583701652628949547303971326362557466377249098876275965950205163099620199539320141179078360555541853881820192249907565002426481734886056040924622372508285958078678529312628902248492331805978949882899300142704955955600564490829940562083713728529541526518387099482050789357294156083309765036280282262627810483292237277178869012545046073000812327730657496934914362445776546027338473146730098633485566870848735270036180209167328627235699777181565173597817428871399805389553233729571341675888024940207130276958190513889585503278151900913827499166866271303758790980142248363027739280078584216498822644804732514774337688319435421732792129598203584627099719853147039715495493547161570584330994935699105106613608844401048707383608337117408048126700288816884618613593174587671521592872511174844684663511502174937878437216912482347041178548503593031146587690844379455325487813725538048594659119064400999409097715785674840334547537543866202462618257021411013612818333341594534415303276483970014403294268114301422408417823162248036185012809973579493465731551409154440204506394892750586396422141112560447443212425414760390691973860347740890984341782371934930457082622200169802187691839963236392345151846028336488724233855025775446067785685019646238573324225061434168789233304343502040159468164598045457304507602121809227795185800003976912892477721604848910904228939527723379555192457405288579258606863054259546061923923573571784580082471137474260911547959874560629073487732281958571844265472403444502424374477436790135618281796715827964383386642379077402912462603730879581378366866258136459266073332582069813827090942825464656181929671267567554326759447369949322946903398478537420806477997029954224411664826958196369688030631376922744042181354742961545015416883586990520405804622543266759695234783887524010548395113676251575286151883064574345232589414364345608724212667828041238084552529000817603211458634561076133289225111564748730175447200852816279986479994645321638009030632682791864135602796441740628357297907999605880602832561371603606037854357088046093395441767756490277999269131011822814313649357954066122725381408555453474105163354899782443639777424620170498839493488328394099007022946457734907874366158730295889027694001965105301527308125792005065341776339378485163935822732470383001760167508944292398128726817055897344375894320046436707537184585717427730938752864398836118701098816227180684075974798822555799627895883635302621564304716233088767177632049612715929379538699694235302970100401048458882266943561452567927714042845650114824456753741988801530278418190643971349412135778866276938691305586995567236500593397280619324167256913898829041889439434979889064782116061373032749518653338648527062322286314434844543988874270617293685198879288643529884843459375940080213135012252413621693801936690030338710232985170232619787984200318757681741798136655219364038262309188429055889920555443939390367819755245824951806026266806519645522378434068016605171911894729590933564986028514941380998971709776319364815284568312953726341604112302526579232244820210710486210616179537572363473013810345088362030044269030395145180028470175447122770320081598753133180045199168659108743679299266944209398101471689157072377991436210943388935206118834304793502259575262716702947481268614538179981993918773679121262053786285315834382786323918431396129464970084996912485054993807993801297920340852863230800071851769065855997937777964904134665991904370362467531552095924842157730779208473887032051617120086620095605499124719159664642721890746889551281041684216999235619304849110919412033455271338581792843955458310770278184253185293306588931972981091847132504786657842384741287169807122407570271115259549831518268897886154740649073872175670770256260219807518085455373147035108039818144631295830326082179740749703219365006915835666944743481986574092765999182304340576473193031614692125174730932593043157468590760536490672984037099996389017108869315643903543023587886834427806066861475998608113742661863068316530679270842278163292871804625161246042956404641164913315211590022906119796968225089118072388017631714158093883180448392891146187815863018404611259303114060653728142638739762225651879884731515924707314754033930785578292272285197396293488563707661192839848966230732798627687728498665138942163228992993796932012698459123398030790046608102620388127720338797517936858548213773880283633917377350168206431152434385624716647951120684490753022405662858725635651734143303510958983736334643231136625107278518568859377085876523237076162138030047182221204614247816008603142411556234848532037719991259227552932634728578897017134587835944225560299516478899756386493190690526523509915256542448401986750583766901486555900759213879279493293770611131922180257764886677760027800921201325260657239514958537335486373390824824389977082598378361358958038229094891205283308908485232531037981784003104603324412054507051910010997729205876762664708060672844662828973595900503009536596822856567961939996618483921513639880236726679624874868981471313699841653110427216810265423792301588911880680521284739285305736350604547334703543640376511384848579878791971890487223327783483323858163816239931534802806031423988479618183095589997909080016810476346739507345855661526632594640303308981799097464755396116851094115320479726407187900543469460813152931000094468183561843830175246966453945274854999866798279737682372831654686155403312774346541639015679613934110465955429108581150886550448845882172578219911574456668092730688496317398702211430172291886396611831519718776058686708675425102395455085519563564763408692776011747850976183786061025831111004274366741769177920241770915928378822609631295451324863542360233947451770108012120509126304292747832060986464649847170164601940678303344354475009870130116425070180079989545492661672594691218163384314355651816320737346297851421290489993529116367516352878284307466542700731631349243918461295882621482166915367649869055751094817262694922985281195624199541576366510087033443657849147878639736802781532514922917709243041946560799117672660359224747789736744010486967213078095503700844830217520790512851241644168474480274797608910510195731220333957528062322831629300062018480034587134784195293600491735656654679402602198521262052634955540369253547856853637783572267238006219336033037997915180096277056700899450457249378037838694770630380805176640134357668690195770319085116263466543821440860606953481730309301053195587290758237238711827633849883639239730287487224632555392958982731611891681687081557893864153088088271966213788449719896853029366567725250462717876548253540433033964737666755569438576447790288464687780720611752322252380155045322856550611651941472373994300592295033438058977431217112925372483945078012182980738564923792061286719256825468484377422813776013597563605655004509944829729688300086824669409469466022715131196597628890373229368520481118292250943745909719047086963843691480942969871646953403917656489350832217026354178109027476082547330239485250176211361954129509790997108820493488062477042903873148584851641459082473354647453072216547103618184053377397310157730746886052503547103775684985047437002977401194193417164942523102633762862468892859658148505570698910164315368706124098562105453553027396906234472471180637579703384216986869303524224652137144001169623443857285291554205304157691292556206668150078019236529959415680677199661125191987982890763875810834441942745689586161986422465754485006641356125912620400590171974933227980781553994970851124111552529184318783682098017651577498828470155408663749833304761381377903476468036722327400005049915681961348981634763791839291651548609067023444400002015499956064192205335928659962299947323135538768793651645649663350923865798076804974766067088213273469367157606733969981162399061409805373282619696641662031169955751601842015713918194271295665610481989407898503343833181170131218175912583828970523516678976953681717491945192632391914220263268851942141396951518452170685405745333845462157106672601493899361037869295509637491306823444855415984065851533925979850720075372412616054930400356718243909120309552697398264512343531625167431800012324950095303520532370183547772878284510483933623609395429636482538214202624003388360372844150554742526068402377175471290382370271061113123379440369510920601140874923951431361757060823518280558598103650187209731734879462686043886608710030437869538814377028496720952330982718890156891692998673781382044239109262627209740102618559002685281744403345275924167717692783352604693712748312321592380250253988178076021524810635920362329944154963771607602199366307105546118402796227283181414537355896046302413336428901917516049706068954430327799569250480331433040397859916841557279531688737335490182918202430837126882370365641797067125381565938480509046941828646657497145048185222700662273929185882132461381982805048496437132164169044452465941865698811435688721730597741769553935123465369804895870897238123756869389016662219096722261111303120932693050591606621256408762839732594234647730544837828698590880472160447842529564760726217692517381083946769711522952118431249988714710194019847818414353606262503370852015258256969837559464681976024353335814952276437566545352156055080421565994409729714426050078870035119182448030848583049415693447345706704587721307338398520367696067427296829205645699896139755884832835892030714469048358140350536082515419548988814413719444755903813571688724866640442563887383444420817425589978783603809601456269437600386518625514888270609301395006288755126908280896995075742198110377343225424395737350851110579898077741901937141746925785163709847817031100479405486047252406565459385849961016407486709515100047142989305331201329956918761964707114432906926122878938098435388465872657680878387432836992078377073919364787739990708312440799026626518522801315262554314456436970158333133931084062000300051395273086525689448538757023276848102473167724986802670543501110473872942129519574230099938489861013056597845760042345536510835156551120851266916923762086680690377430519335318202610876370853234616078355885922894777928170374946410581930431916056469732463959455538556564880380487204429695201582626797315531726466324515949006629639203594885223066971797285409838032466909829222918311957333766012516989775551182505271753664553883032302440349177629079073406644308886252730169236840906867167812478083545457943634863172131289787783624809935477471326625155585325291339807760247377422512173766491274364661164703848952693243616056305346297547497681329491915109729851061374521685024242228269435811113594275349129070028283756817331088622977353934989105658347605183521971311658819922442827197419710393594884499444857324265360651438344009144099626929166421510703393079588702892982803729055412964251759820946213641753354065863496368357655272892251469147676754531221944673277587568332196544303226882280412670685908360378455323466608422132600803875729457257466335566357376220737294480527681614436533793990058890059533657506331644940899240766986940637391878585160443313183083480638734919664189859019084118552288315903881280404853182195872049418956064170796455533550189777600889450023181779066017823715827430548974813143981913348671730711363478332242458733850415133121917003827312695096930567914015723777990013999153925147552795418153016951272766262935356865793083945092112680724608097735576148657146892368835130102719090224428977646273658070316418196274158507984028657331486114619689695450615003219381820331008818123584872594732291761955466338712886384065282872657683609370138624811654957087917165913542331094246736181418933093905484277635357327469672568448509347715972824365458153396185522608318117110897996577227288522793786103116044951248659179086922896242306723552377646601396238508360166175940734177360268085732370205473509826587809705259048964875112078675735765803132771865479286793022098273240236393033719661468425539961973520733073169254453236723393209498430065566869665540627349839138610930462696826402721234493729448179416865744157962316610590753837679631786916060064835395749216661674103842772319954839768310391219686741114492410164724795376490105892994235567647100952034022495344200377160155719211840322403709625131955934348100630054519726003950584006097323301036066160267139789234145182653271139513797541446706429405931785626566359940813054573522538235476344536033199581807957310749809118000459646725736637892061733694913516957733831950092099188306417311436037738155205261261177433927822790190424227891825317852402240723773603520739646643400184350790734248883848970876875522817860731660842253305106085658783299221272153887414431029605306761099291372495000537367829250222527278490527573515821198007832401814896320582626627501477493349206576185164305107869180181602510091944703435989822321209926074971221808144581651427389023217775452742983915209019832646705656066419121185899392929608105927487819656112884411040650610429029251526246918964660052611773786710974983285628415584671980601174862381633474609281377323646376220911451677459198468088168715289696134766874074777601793856631636838367392424471228133171258036022916496911634120642812833151262388705215685320378741122631049197817774210698137119558059928568282120834431242605067618127497966196334255380273776092649519178257245590798325419471465718459683407376925927396788129014756943803945486324546414097501617851975575781222457926984044823020859025186688647879253763097287638817219009117851602380189845714631105147677968379393427993227345840505244646995879904539491986077274125339213285199552225016963103296949721767038390589726152477956218184024294477617207815933554556789275382283528757893655104698781235642461711278736705818042966159718219590328836109987813753321387118535095905746345434876140560992047771451411323843738848053092057129370829446125468805217105943789160731798072171896777934176845767271844664766362019206200535042169647573642336992144213474021185052430954504283734191543088327349130490056491623031850760685179948474138643450888216368790900018316977986318880427680502889323215314120983510609903231896698594550766687971147351306329447826020971655658611810467928347737317894287996076160074054115876797574678144564346230957695561516720154152877042251848538301146044373789096316865044957210094981743756101777437293185181572852395675456214456653629375458219977117924833881296083898963299171343828746901846985508146303927659905277865146427458802030186917792358594276486320604386566899844043263091252237513790848579195548934687383674558547663442722931966667104239053567480684416718148836512079812949729110920184486386328843463795438817531819733387092499908320294557173421327617812460506073712159176854747784931190683788079595709799536813588446284382358078331190903986780223184645634677668712714747690569154042864042096214154724095638735494377632953447540169104515311444695283906882197114988834308758836625353969379028953444128083470628185154075528744171422110778775339281657947344671170723161426947517133005501756536703801204696298248034240374102853511052758048098822762930718736589719094418423193620406648621723740093767227546025007037702606854447031550163820970312088586655125167572491615914676347312842968793210957538696626635605038845025084579354630093368508711694518414079989829854781155243572592015554357281560805047011174971949824049665919246841639001036797984856276357010221433338385805834585002208679189557844616575396429913227299298055372216598069257653284323932738033832857993639197406454899323424787808412824723977351352479768493109687558551406712949896479207676374690742806436697835157470231866601060026935383724212610076469709532641864498857741271760626633738851143961868920451015506128258638644000404542937451856240999338150630351152877984893938414552852213202004358954266765380103617661017948822016066896540595117332667023228598462966149470935561544762301741862678458466706324513323283006623977700133771058096305368823713932973751271681222539887096832646985115329620868861717211731919472183132383091061065822048011545753886426104673038505064717361896640787951983366780447206950008145486999844443323033200833160842342834267622968663085309998967051847275370581462276791488878164047952769675372400863535489155985540575412352778578356374635447540661647259175904967854893244369544451239885793156815703904808629758637750961322236404686938379092482504678779003467422303198685524603505578003030667217508772307158064895659169787363850826688821288722287376961994884268826344750690934612817443369708205544523836613354469166877287612086903904170981845718324269625938590263713345831049489979446252102635707586021788011404406366001824649979173611453600335463383948603271258728944742606967735405708605095319259330810361950915421799332603438102782172447861098570859373108533713796100263941327076729145027762510138577539679948351539879077263175989509116571737827475376674212086613415798502452422450400744783009255734701042898112825966793764921773204765023977368281214128502787769822052875788137831443273970269270170481725196506473179248652857046706356126765221018980946680730552953454186483839956724872101757009228843067978313675604137583043877557966173992659466536895472175032813615613549046183344421437742715495949518740488128166488738461570624943662834643178202781625376502296269877952452617047608284980787800623506766946615501727721048327726227158835309093706864033069974464253958321404950813040787306075834360001861775573308063836336241615920649596799089907338907863235282009977294651661882082956626179771900177653639601742336855587017895703324015755161068191982744143193362646728686698624983575944852001380104953052630741370136643407885689006808733055168194545125412116057586559765018920227528327699199206645423210414523074631892037309943722702395093651942135902832182504617173858112689536705052969851406709928455052026848450201530232036546963020818407192134334840533499750170551416448754747500546221038870927297991786354956856468635044884640231824545049835018976657954895443386700831562165485794770459430067674570567841666318473862265998622830669535497902026886195816496749307093306220590409869602258932327356719141577020602833796894786313738409365065716197422220636110518070455102922468859192420479555154578763647261851132572971256833203201775736304218772619861411330703249556451258522376463036917864505949276288816303958518067099237460327677105507735828926332987604624692754850811455130944143900710364183385993949541105356381278840231369316560662679117353269208664854966385527316587135266490575266845555292848514066484484557201347329403671063605562814085449701929080852188403188611629675038656607651740394522831385465965736936098666313132611654059727662796050695072606766138799212594143666349886326876657408240243152754329780725627595211938959713929002474573519700422525329404111738761787108990721504995103812859127079704333745341795546563117272125066327812114596368505158231543035254388490203264224918343399203774604102210577021545275716722085921894929745890527680556767770634815976786749004312098261198291837696315021196922553439176071949720692546482480295303606287139427476795223012994119437945763648383594385346849611024595432413474356897571251353700377529861876165092563509692330906813149229500077631067945246069008929017640339019343672796535483620949230979339313043941470265258106084998481258470803491213865176476174835678222455739634711251071909974536823397161184164553616091779931526138903776660440238696987179629296550179690623449249806319665240671673976178037483879082429067727080394826141459140262404191521519538272144724817236321146476844822011273810217186716931860840518100698827129137640643477394776629399543967467368837383033215867835940200642265192788854888235335653169988294065151391494204525867356491595361582651561899359125876387860147716030469973907947726631239157000338458858746244951455824405077356999227331041767227429528031206696083789452592906208907086104644271437018392705076891356526426133955673488765298051274956260010126995545152611543143798035194483322283153845987120674243232526267178258819236397487657156172050319657131162526945834837297945119411395502952772333242069245896386099016282137865585160249896793154206651324832761159335298975224581538496511376985848936952556319120785091314279800163029705321337519368884227094063615162840663100967077956086149789674622701318632076824702554318403930049640769189374935086949582456229909118672415971520672347178666815392810124436173623841030918360154093017693970090093394082300466802230753214996978272397680856902876171442026626544817905339402205557230675604026191034333667770653310888002368838872414719966635803711968304088963959294796446712302813307213790887604916197791215704355009135621805464400414040553337903570042373168068016796586238107408592673671999665881282569555645715427261322796224019597833485661443800983722077388918688663174779491077177501511203399198897346203234158614779745016698695118691160484780106232619906327627648196611777895515141974828656795861149327913213385391425905234431655553725180015274963845749516010475580236146255014963283898139148400303956754284502096316525497698990713839447327197776813035414548219682666681813176478366634741072951896304680991722633711793047366132107517400806926470867889311635190676847695762308286464491995147278343194187813053337115197843276850695883344473948667359178343435201701846546729497739523610028505578729645363263894679477767392097213692617927501621710069023217559007492927607892373966981358984815484835695243659882467400650602769841867098789479929332633288155627989455983818613984908714771183190612960685460171097486703597050032205670785410818761127798300038549016688608647145587713289951209052557123209623381471506097882317793280835494845138248783825008052613427435835193654683387380856726684203603979351305857873802218884035969015403893552812831238465952139763300365759638527868073300315999370555237879026517941211881312483849930211384615462638101161778532360520118858289714121524685220598155927761898211485316116909971846916936722774523797178474628640317861630846257948400360684471068167648560102020705343483306140040834713239491314956056348786973999069046369395039824278994913015700380673544722278541057108944788223911111985228142417027457316548685493488992534957297670168047092048694217576187268098484297234280575368685497990210816897412521585662584223944080730930889343263592640618223360507284049893788646757638750629223470601564997335661105443397289753380497355719906030372561601156724395392278778724890644133950630327256470683071364296540650023509452455732273746350381396073482269095634441178152731783151794845849246309523275346141126623443209205603940419779799742455517463147299785411211327649990783422186464543086583980931422854698175047119828390927700429801443678685783471772405121258919908368276769678668504404082946545464899284856618903333652911863689645637590073675079420259441432219643030573691715785141433481857164084151590469018444912895511287298918195169772893233957253352783840478360866824948068022870792838642904301927074622161467749542036786935095707317393721002399474687732335421165747184978105617179741984880558994754177084747835455367632987433937436423591796966403829658130234914385756236002567878580832084102860113695205367452708404952419404870040174057723386940790190256325963019632538577373219271243781565235538571138523982292614787517258750865829957974260519378784879307441398663428946931869125370374422430984447433576420884205247681906571626519552652157168982952864870847525864274525675163441636295213615905765907691551160602310079484120813983409322388954009749948729686240732467861526401795247407975121281372997138590930279580552228938300191873194415553887666448204655805889679174011304742340581405358768107618898922063765739862255624321048436745417756929595798152859012830804405402733943140965265686756575174998536531459525911417186923704359949677251096810337673388281891451780531738678889620434718808057997002830630866021947227137141466492019306129613395476024958829785489982703075558292458626019166599813789397264973294435812685193378287311052948919559542594718687072578038458455989860143428575352667712514972669524262140419869154238016986777198015474777394057859500567673563895073847730573618719795945582596360237925959110786634698551513813250372735395102701413520678921677394402398929077847535380520362736304589449766383558816013877855354476906944242525998281835425755447450680962647256493857293393588148264566511245545152612220134691134921536736132671270493889063559898929313963018571545033712579082413716931574952847887337819272019303929364941548027139116284151874164108657813919990908510961745794935481110055294996225443634694598903728150950899336534266848295884358426301538764748093824110789890088350703857079124447095485985481361434041217108056243790302850487581564048695599912241225670376455230588977397451539385535799106674341217339453154627569010464907812803016318099256448482603603632995412940759302317913356218306677094888590381220839960984138852494407130623729691980179846410325797401061328587832776915585943917428401506098115953555379397509485419580368264113182639935178836459070425983848680964062646492067399212921262789207620698028089974931888485650123224565107212906213732823609578890587443842590575147166563405650148984260011737421240233611358256362289568675497161500957034575964138875406169139095199337654170160254275851707430504560270800277814787994913665598783183640679900328393665334102269573634963957978021200048244772417105342581306349218042728576674586268928178566032724802771328558491300749168638667127737270391027314149853520988191836111618425817704380825362543113149933638158699976928819933362195354851435078434991961229853068665741945820058344312869295016501111815292899740791629520955956779596022465469363949588907025696681941031702601297689285952747397643186979811537640463482089389159572067402726570325133016916568712275765279486852428459656865807055094742376298963038218564671264219914654809596890074936918655463722053235784590766685681391321086913165549182017429545844542939176643958170960040243262369964826867962731739213942194647539798426983544325668211063322541987458111361129608290812513974186223883129539811821905115767328063668653078789997796110208870643081722229579030940136136739328796282616919581039791475942938172050385447735013305482690482319054329328686667237020965733927419419238379562465465195077186361639502943659870406982098149467155600078997402743282602203301961756446011887921589263794660803563376010094651166707441143615768318500247989899799051741383992084731541544877786403545799954168732706995594281221610332426214710475188013634719783804306547308043223858410124107512542056686485179112051877357039600818077436517104833473633946222247553537773630723204446547440327714191573744304904612903954583811796347483509896957447497522412015493334074560610827266004081406966746529568360249733410889852466592830837240643751829035059187422250233671998520636984961924811229217944653311119700442071053290666150459361940895523861151404998417658874913993251125977542806954342637949981539981205135684922332959080976641054390953306852956934120534020886141464973784332542929444709939452644823211732450453577862851879020137025199330331224042946604662886266543869578542396254505869352840975438136952358260218330729713975424921200817299393500734308888505804016767584274928264040522621736546543504959575090724767056034711569843378183199325429613085828868854016838541738521595823382103973679605903446691411680568160350318642093612366976304809677125022350864164185526190135900169856236347132750092636315786766984903049989289944535270657819501959636847723184345463017177665205750781616024174858790735848807048487207627609454309717839655596761480526007369869294982069842003085145121765006278086981542225343278618614400377937462763579623094350236082931638930224079992745462787719151891705524102765355762701859153431508281646458491605291902760917761656152510631220554321880927784801860187593100500627630366667779521825349326427475980020050864003020012293338856595481046356810528492674410352842648073416583721594543065889184528069140219420871010958095090583954059905306940170408573659111707138372009551678990411641850479255047497417991373516787610393663912962795217134308967779070835629532051742380804855962490901995416716118256938879680248325208822428190889975770321233394434613006485688827950971126319164075758908484366730971937385850437917299284734492703874606320401903133210704352576782704757076566241051314365091732581398823074945956801520959755096557440510557556759441284539226253588174956336408279099674136286258039378426277075009851451445418497427527957222645851235515010033616718385642158817422755842076598041110239751555062112200326679927090318126200745142996904010502573469975021123683058213188664534871836293689576457038926209299458926467844911768727600101114779957401958792526263389232357295200781630208566680982734067574882562416867718064204793428653692075477178929829698415046294118565847463516599757688610121153489469672105397835403274291235574320220870020695594775559815045036434108850907901535935756648863294421863938220326127235684329295537330315098426938772100739989084809261239095002753671895026739478815343924637416463745074834741424184628937155571897804477675110116503569797788755809318434983084209013786274472587912182001879614892220342479095804599612291411388482311940664133174371088867540486378470704258442444995893362553298920544090669741926208192033791607164897281612286970315945749764513348604920237473595498129830603275178826111849057525439454078129553908537580502138580548791497171721503797347485781570724450319415577202839662145701908067361001559781461059182755662665029238739603141891742180662456462163698385485035449596277809227785538496965617383487571559336818745631762154291143411233723696500587978328260780938451822338684246243500629792685502815401066987860249970110744756729341799692069785806212503331450316794226538930960062456144704301885598033269076041656813366153673856558971020050911949167095125734047603671649389320069164157198567929619755492833740578432458761101121396213060876528771714006517413552361556093927281738733934220183224301896432882499779527341296935131936200205355700698243488113478014009908705721818550218653065919217582465414036583255758158989249864260571776661444144731594870015867586627170885468481937946193132925812459934719811334101188918385755332577058708727823171687185375458074362944926982033297953043043809075684800078292106991457338045002401054934899435324239057430884260450815135320746764985679713047502327974845338035873666902430602175238906149211763866764022288998034981273516612884318457381662636426308525092672158363549332672792720281304749335127425098985763669910379207359655506893063991505909356790411539590773344268524265778696360970327002876651057246552432367883056350220817173504137930846822476823207582495690174951917969652093518254679246649360773425503621465078049155549434423567025771195864697952523643865085700976069309185763386136195202287633405185140946645141067166020618148503972511943041445910527355440109261123570058583062318077649484419816924184511718548905363321241389768094653403864289596316572527859060660601357309135781079219358180372207705897376375139098573811244012282846776651384992348412651692261177970063054495984563058186619828702335925235971052419257526837445449464089718724743807342200263378016864149641482721616192530817896432236102810411065851878722832117091762752990336805874397704000781769760542253756778105245899182781397631308457031311595918559853185748866742314401970991181938135710453225152016879583980882769323683439207989359395079543753623142573086298748140518723020298461906130684272775874636584788347103172909872834267745318685557008234404411979374713519783005213314222223524393932680999471462094380659062179510971053927878233298509890369702450070614141821019703034283426788268051203227635863886701114305176087490113305547862029409488220470154230158164890495514670354326922693570331636547326143237737161113252878564133703997072647841621806496787298148202935006612765277748175363569931058966591549867217849752149126301873269664728151372679745703854342589436188631843930834438749792049457441138453544396438495859905257431732341153058002168498124156095681813772646486059441640712036725038161824317893055219491856876514845703310283379366127502987503480125384759661461807320044045388199812913196402259557844577706350000675881110537115011554048093238965974890247811858990370261960825710914429991987593877065963273748446605284225069768088889193292072009975438803320318154215871341345866477533635720141211186365952191750313688721877185871207362080607680659034339683671328566252103535681315616915712488882447298316145459752774421085559215939799362174301539094688451621277778933886222264563008673951691215971041635049689635044939795678300310107493778478275900537150437681110004779160955916186663410809295320466630836245475752512311191079768612215178842524449647404006252011373403437742975619636682258951994215638137816451563668681097078136151844924254240880082197148172431747063376066178320157233293029200682271419519336097137630055835337452228233357041929478488468020543796561651814477408738276480401594308460620170784050266206251103439029668035061525803326028455801424970227557433944489993550392103753903011232619613268424564701990415519602504254783583587925802011072761801333668014872791091712122824713621717739923754082571789507070479801948303328560980593162753925960342488193334532158263376008398830194568458593521062246772159805448105463705748118668869900883205150124909267601803695913579605955876727641486879772181937713827512331207298410503656464829913402474763210034502560414147434060997026159405484412259265225523410799601932414046280287837669685715121636389772648017205081454938519334758910879915150371071763312132464509861189127405610985392542434891037710246717119552479792985084788553007396686312520276484749519441047153575351131233245409001623168295343202937382466374477717800513422799987574550158761182261742683165728792146969708504729681002867582508383967949390867606462407196493883357032309539076554684121126358045733476021100019036667229286333634384563839410924478259994576291611443730573348175368151423744737442305738444986177677528426049274883170844769010433462252001303975286642080995456643271784826698805581780298829664741303557892938308401310899074372730575571174525135222410695715730706932688644438243784733508264730199821654729366706720008734789710548063277324449869806016139260380939299645338410984815905212081580550667387066812794038302286384714149895308410017274483691710722043842079962476821113613227151189964624647174413625954479320564347322974942148583309748175121500429618456034368659829268299798883507076768021492909418147477612486985285712349843786966469098428727745728860978207623821148317756588998156677563168412279710552495708507143721449443280322920218301901949290205305165419858810330635348062500086146449371751819656450124145407828155752187519670803723463736539601954724581472087996356684997203189065056756172362790001167369225145588340552511502173425760830782744016443392418484554635047319337401841342678974260828474964616073671691872761509577753930865126351620997960537297092723908820658156368880873516930991400617726633506577445682000983333093204850596012485885444266396272835681746928050432783729115398545482199130101852217304465763335856858265137260728094582120428197693037877056943801641664243707390700072893535145087373407267080921990420988710951187699692086239149846664952917209182198856032534666725555663438547259612997414269123761826516252127333170804292825209941162403665878878820288061335022336837911863094200325314575790758725607438891336590719448589029682446864528837904568256073899107922478921654729287088748732848970279369497913051156967281077680217702333833972644759709975975158683542517993400282162969701952203231444493310538867496141620256673483922363100918447217052221276686190006277244392796116121862355412455653932110940857675394622233125416658655850393815106607250617405322901691868019116915793291055334150919376592782319765354118105864019895771278593472355193337611334994186957358714890700647141439659060674837997996609943311964686111533886702678327520711406555256027377294461536200154417948688175175694794247873193387370024557450302158760959001487862333077553138775660265374474401034733177265509744392821472756592914230021290455079615322320019706165008999804997480086085655397018120604585486208456411879601278181410369489657590740942580164785556015140368349601865436282140778810222425708595450409331878957804298628221314991176929711645997984733905196378443293160948630896722137181329121707037130104139360149892155239479904208186516598425140277544522727839982282343465631152035388330455465740116072966970741205987955544796617857336155063595474074948450707184748276532542742040186403198802215815441157987267577579791898508185922460302598705259496880605876122045805856172970203495552160244185684036264969354031022240375344163091625100556041231245669054163017478277930001893333547121104721961890286428184917451247603403983403192305916349700256944282466689261038605955730474271295199285728320450558965704484999922232648665883044074798356749247674900008752578000106229557796699651046885495059811629617440838908045361636871271944035823039646883047962968117071098994718989027367158720088909567766941430329091839212840502969376808634058223219841757588003371793048907151433911788847144703958557956026682350459717628885585172810899907309712683467148442074327884915369398074022957243233717502639236577953098771006598088317390936216650228522224862505798005566268537882577075725358167944223311347907121814326380885148767688887000285892115614063925035725084411251979581270135764644647953717289485221033436197414388660250981994677945281449528603472049108654906756131086368392583071836178127419003435669808881797256411760222522562624640761042010966341577235842162851544394187084178562309427723881740802451748128965327469008179998593883749837460976257255386781578931755755525855972919843661421023348012282409526428223395598146605349040744700129557263426453013273663678501678979478555290814828944468477538815800236481272423059402394208775523416978526360391186257960117979333589683524500253630049942065864916123129696352646794010367224474308689669917811836269967804943083811458463799682346647300486347874911058624370200360961576513405866866182261911625680054545401807352261394207009531130926053044185304892597854534120623787741948386910927786366472316340238172804181879413375040015892460252223918990582893254240235320155319489352237556784415004385637806893410372631864159339232853533454519442651055427064329843263954078007944971464242899031075281113920025846702938225077240647425445192678623263410943331411561299059708033503014046613025112977543906433558466879846572508919259882427270861691461910629146045951065725235047043206448694012555109184822884475748129786445509943757363457552829338406612808693166848408486432082101680096519623918415040862145968869995535507929738045268863008732872705791072740616629509829082836875351174298912088266435187548464124959075217450648878398614189025143509947592365830211950389104811078932060182052717691415910328424550131618346233818819327110043158008375536041120168260485840532299483702639253398815980153419752725026411249927379438935830093771717987982363840753086183962602899001965130322603643247529918947067998832937956450573496257181816976435301655400336456935834036237409890960870392698425334717738623536820505602661475037363289588051202919561623735430605086954666874398438107973088826986533805792408320266046074667632952845669490350204516403580300403340224654770105622626035092823627639617205509506156660895477821747322148175807135779922805138665782311650960337482118776456111587632555425789609257525982581405115694062612475202138818495181541635576873321182396864021993108546315058267315075966785549213226205287021585609659363948765541155602503361592531962658716155370258523856908979028976619061608605462874976016053109291839626401485812022344574166740553028924021668348209323432336091524748131550146533963562570026959362659222659004834068322298499472463818333648257438123403940088323689636508905508882510480240478054149029558686084664784032389406603322096541813748339287788905752403708064157853626921449698296009768010719300111013676004045296826607483860909333805220860222871425595021801022422879501285756505771148581327108249917816031173052382346125178614275844819027295974214118287475360196364727521734407130194447580504590281994891885898727482557194321529635487316261013568696424994246237100464732548677308773314014715868569755343166842916621778749856623876549854275418986437725363965376334508132621954244461112401031402351525620497608924725468917540104057432214253250218976247098364041592648245386904665909042036018614601122263227145201301564894397004035836501076727460678295912895759462536036009829883699889175146201376336897059861300914272392611741841878870961810000959242746768249460318411213302231475479791346053198696624771469691345974843867765502640495807611300827543993432759483192501134499358539550263181062231682647348353577328057453895778358184066667797903430038009147745184217675175269633332600080913697399440824413962203300077988308981200963604592626991896394444119803391796834876521769668284158420769272153829379796614727887626430079725654931922669734304089473208532017232097625321885300952738178767350179988619323631967816452841105182122574712324151862344130159979445412338561324905212850535387592469768119983053712583063747574919385040696643090575300369519523461426461260168019394797704213417720741762902635124949662209011056150716406256814424409739025411410414761077391969089811471634810441269889546129756535372823225508643304945423036630561550640958451287436580653040218447188915444970536954575520359434548546893479164412889358271853913804834724092435628995772507808669619239159545843283031034936950104695093885307007838692522867510118723123216107612218962522851704269368872486643875948455523766678880919051005291478067021528464223957675878930168218021045288026315301764107070806200712119729007731068879604405852748607227239572870774966639881468144794444319526498716681056324529604758229436410261448237334759431810034651284936376457863566929684396768448646472706760186839380633740321220972056798666259037228767543474356222687504037469734505694521833254378935869877878392643130542064014953574332440722738893955602300501982500970099077139862966050551281569723859487702276119744488895673090872845495165299339008707352565160211334294572061704419310130886856590379351443746833420471438692601806919192507168168070664944838701110795632298653874142715735355840003157738595372878720488193940680117717459408328235827848030216289485537294449185067440930798386390004494227074681932409773848732536077359387551106225822853726294509795427312365699542722420081640525662395144831699738450992197597495460106064190220438334235179608616669059333586013030957008284234234587968477980573741269030226020288654455013650728978426293602097103494150692277412256046537947667634053332079542807978222874116876269429997466349740124876437067062282592576812357057276660432862959278364334308184644719908711141693325497432346674185865372570509469682738460992044850567667224739521667194743866912238301230877338328012310310706287847517942439568026603451858670229275491956509096446606039138434752881251252157266254618425270781095943285390801472463417428488703255913117039532089919816599574164962681732119111553033077196708881740259978903755222220280895437815112431079734361159559789836939794932989416136293063634637493759117805744590360474307099958223804762015848051996553165475073873067275878422900974781447463600531054054686011365262402212643660083333459835056535990176441494014088956891029166825958479987673369139083660333653054123232761778428830162522092468474298371319127591797372030705386658179411566107257663929091545913466032613424465739513312298849065798901299572074936202322058371819156946570945583656506932177623073966215328424837287236094086918581969498121358315383825392827227222966278677876337264705397694931610364961755494353740075777483016974085227075082348033662332515990052415478322071368905112242172466491678882526058328562783277891552162698754725933783194511690916027214343860934114340870061433350736400803582533767573087850844774240742974357592698042768916122835860246845461990132810878154910929639211460459329499549544237433930309462158599042615633718947196835652372628924237103444642163289834532073040788588818948808847123379595864848596958592449718560400124438798111039186726098949318277112275014134095892895136333848735979381396633601881213002031016625513985967989342556744374883003762158183121988232894200124549487450212093716165409377924838057018546346965372534227570070047462808588976057153231420183711115024403659489912879983495187928662124034480355625258723749662049230276346044947094585427009864229776292143145051184590630551952545824003754610232974103903546644225751077974263980358059212785944504182954927366310014698639050199118184603990341173643199693382785788082815430201055242992575368786559115667118771807270640769777919609883363834283832521103787568940125442935754662575198668550826833476416671671294664923664721672070515443637603141640105092048997048299756444687821745745325192750842210040718387592513503127933859785477161479001753509287370687978843936979294585558490402684440786123682530244667960650483659790915783090149778498668472480933367337560559079573160289699751626122797187548133325720999465263047317243832763657526900979051707374803972855574153337698654175302886685390809185979178132150765595873090422531957516981371306626980260749569747107480389174594763022091696930554737807531155309373808346818134887738875200520475448267510021315859496587879655851316629732412357700714844738123090030122548095283280218660623445519230977810542252784880588946783733603550428942087471454414212200699629632542988953106793470254988840487620803424963397093935128203894629858585372705622025507359373725650328481736041514209350704474163673669804546423638286700492688203860066545716988038129395168114565467539754074844725348097882584672735778700701762197283448894922453853677533755418992206441456961851536389928151791379705350648791739196844702498459437453088529565364378162577411258198824800733430099374949751724499414691127784666435391962938153759545756578345438534003526873874939309226667183908847766155836610880030613938516704984715178284718504928300123061958407503287087599415839255600874915687476913303009365183142117604880431012903924291552265610740994781403416053664056415399749853097440890028918730495299726229640378075763406896395414490531971352030877202963880759702842406466107316326350746896018525196635635760181764796975166085028538080840341661701517839066764734041801753573900217939839074870956385357988912617679819936413873653031615099742001926445092061867372830762446124414791268128856471939816611831638547083799393698682370340455923346686396694859281758361901896391161718632187123195627732004342347995146081820822830883325291583158306331703764285868901859344104760295132133035088296460598368060942589802278344260819066026670416293962066611398937917982810517033595182971815327232431470662419482875078706558587297767154580211868656142020856215715230506534624055110459445933095254116071456137326369768930906412556696057122424173593617482271393222798856041194971204891854976270630370374898313094298788895148379401563354373433098891521806041437069224316554743095506529926971082696714316188679019369071556314975902420466466115916166984829429319977786591218869475317482139592660190520303058890739279914017409728711352265703747222960997356558844678813852931811465055989265808221495946720016073301790463082948405382482043849679957329776793927934936693211461855989426173377335923913899504108404954087573278284166145419045801310907766033238801119186175903091503312608720755222168597665247813571565582782835586220989234832813122223187456021524984985318594257091032991852882327454765387286393185910122791491847041199777873220622997459945044407231576645069421357882180276275788566914386772665688205390043788192089780848740868619647131939543524149508501223558334458130621459667280329135608271137398703290141476122847540570792486959892758684386539582581576141359205825549044033197326069422434579750842893555749667660887444673840867701802944863687061984933781227420837618697037190948437423008454634874349260300705067719532696913982238705485829042790562157496829673236297430169270739400179557712174107526576662033233727680912093371108724897014877681098784551963670950058413669277804069663762486241856942035800296168317291829932449296557383215886970621710619582475524863582187223211376252174764639879368986556937599709857801191252225553689774956063210029100222875453233427177593332787292101578545516182308570466717321901804038928230122868514564409466544902321859409172353784086047420261910311603129828466765572209956691528706102385111299460568467492265222366058452672854967922112343794325531230657770641252981650058050355347337053787061115696121931171548519150635252257381536369523969326704829269426557263631028873813353612015333340183550565327141808903484402847823494018926928608073854897364897540690324881035101819813449809819982801516419195912269013379714386427367771336422325389522161965493241645700033235513473975861017375745302504185543395605228420268886376854327781268681049802836947515403186454188026163442114655661535706592704005306941787010006063601346621648620449574361705431690223075767788740144151759133981302695264976082706806328875528601560383761799544627328818613162663979601937435819052620302165906833491670158823278171357830812727640276357195244821967815498689714172277009038547376776932944171683793507836135106904726501009442922844023221289679212444598085762795974180644836499383392033694520646074683140547053655349608138618413703934359505765762159636240945837592170033385556981798705458255688304047379971911619254632355078542953815208210733150196415574526000661168880634378383818506846236783414533343644425361444491840920936453374026297443564127987793086591036957535500633899881401883348097954137124024987139206383296898744926573397467556613260132256363801296113075376791063813585324582364633826605409989751574875677307017852473916050910438748626864519210150666432291687651882225551178634216734268494849325571024263162802538229957714928927785609526120230312545731199916219905482640566151654060605531012922777545828419860281962526501924498179166292138883269069149207159774673748943175318281691608979096483057888594456313816183404261372270167762065710087518917120456112210511653166957203245864925884346658232853567242825516108274384953106596036717500784525336515394902041223787184614163291713086958214531532014633072162404534930850773708784952547169017647795117681045882362395205318421373316938098875104177038732283426638125199854931941912399114289279057526547138182036753047739075486755406328994339982494728035734192131060459175884648522842300176275319123110392589033987941178286590419244756868270063942355505625541901479485351906026486318118228894221576447664573928967814874408844764390322501762464657587476300731848383184815187668745255009372612406060181891824195455420049103685436509479183169205806320102920512050736231623663311237838057231493028433138588442910299956901402679459609691255538150650071956977988985108533612275287140625095199125986594627873520922989439220031780265319736969716927992163524060576557188154710000299896063585420806927044540378574918827056665513240182738840519131916932285768051901434447126459821717721018310052562492878582257674703632167850460095679230229551606677941039181709614006955815973231716790917434758162285757217956712415502110598213855037800900387993297443477234758788595528006002469602296059829620000293799208233662120045731994619534594336245464125535297886988470781300740511269620020090960120818918553481913296175167106166103677880102092909291018436344199151353101976361533507038550971630349204804889427471557410596562618907004618223260296494743971630373862919712766834852458045863418747138133771302557740273507567671789367375705920532216808695833950100067128200375529991858492968911251339742790130879484938176999642903660937061606733581018986166548999273165356781200001145550892633904810872333337685723666537423728266371309808035590728005026038855007523079460830850084266302216943527702863394006269871273148887204138864203062078284856728469134912755235247688976654625387903943770449224809935417647010303814327128111636932489813785458815748459286254661632880493504111193568071798509747257985845319116256564342303977684311649664279122176032559565832302785392183105682621355711984439209000402704159804699981857368508797337339899093381937745948358484546732070000600330873212721478761699254168576765062876258563839993528693225885924343921389672048769671152581902926063547027163770125330539938349808868227735388996116304096338893123217996634277125585093340026586191195224534086148882721629565561596322097755137135796836086313381507542953738568378441173529316102998060043392728926629555858697910161682022297493071253754347263132554097030945561615027601307880030654508853052901224758410461588286270837898088608446307218751165546024266074132468655245325030055992882347404419670410494032865193651620232700191979863124117449288099465463055516474267414004236502745759941054583389836496866218442491750424942012061232578788380979348005471453238420361120714316323423318503434181284218522577448337922042283486676876281537904144994683764124293080462793461216535138115503483870374849334364512782913972219081581784529902511640096445139787710858314147407139174305092543575544887848229071404428603374786692156529060972780630966772212563429360468170400495080509484864250126867286639939879830941979978633335603886760456016454398889925248003756105462792297538359354195504146594761200821326276619474159142249071171710211756803365675843398068333841862659733627252556908034407756666365497261077986742771808203442980376678565987355148178781794245763319992340485783875852653246236576920599776980261973051586152650580435893601894159497953328657936100775996075290899660942188765666114726732594905206670235598473702781327225981166799474087294148879733493380579767058498079717401242523927572552744105309608403625064511044643056797676358462186908089374627125185612691558470017973232418188434279894419769639658623901716815599612294968516981408634239943444584380792201447619900706538771163571282375204491702988996776988267943058247830939059516816943287272302567721871877436883947042958018967746153688299489098542757351835557136130256263605966205831603611215211573308066797376711727315228934067562059617829743017003273232053226653771188202216461603845686367858487462281918123930811123139719556488392091904635096991540391285720178623673298941844265453374483011508827224073643625241641737759387038398553132294298894829322866037653590206098878794196762881916930804728219025102104984122219360803763515480881384092471944663848338665996623529077826838853759111595980134697326270977211316573893758885819009829328525969032550858242370141029740791313811925039878017636261854460026164892624472454602237572444673385502785459971021076636068151317247878457027163265828902039410629165295524079853496147593931490737310128684152924488767892746270533399352016548879757179309082891290129745508053169788464123979251118499751300183082388420577201537403805500705885046035168531712402260066029997749334041014489352424974252543237601703759213245274360055192157424831374353017708011233749033911496882744075618780336351654906215577597802660994779116853182428895144341345110543768140615186425751165367568937145634761452334918940111428866440845043796825826990880526122833073608154617414949267262789781511216078095572369093598517269352072496896719103591875539535411079741085296485807281088361917679315611166528640047078105956288939163031258278015802351492191422799339668442097652839687964804407450550614575665598260461526199761642180259443652910978007738981100325313150163233965364695089862203242816892076713218355964962209174943595089474627235908497787524513319687942287522115614219479706662761553273376814569042186707757885429952741994585127472568944538225171606409272012341282245957383067345609910311012896339964097423917460370981815455987337904997069011003065758507191720449509495041195694256169698110394261079954946925759534419127572812778767014742829181695786745578168541409604598245350495746641228628999642610411123445882075789230673811398293869288211489791636089821692624292488865638818834827422231267635663925999481779584364910220943977140701557736256837155369225874846748942753231369641343899313330534978189254598565360012791691992770690824375155258339004667495885183457530050043559315711721427956763576264386786755976655870485008387261397836537483622552566920607841930669704453064833554355802628048294050456630518228644010233067626497163186793363647483162805209472082934804210971949080705627303801588413371073690211653680640058475917031580157689254649302404337620129089000709147753763853389768289792404196527113541887564660557337600404051026796696525355853320779556862661832050370853925530767405553582382088884328808293363759074691028071845886326167868664387445278292553960680370492573919252581441056420607475028428962880404334975185892512734362337072548715136260848307566209140276340520668939113982351384167186574750160299467283383457656550938974076451957916359399658978589547752262325801547574050232499334467750051460678269270391261322334271954315537570774897391740412750850241289432674252474306680452572339208397487572568154970447527457886362938964705631020329141537151383443566478773131271705841903772525879112295565882549201402362108569121303311379750309919929305500507731931950987180397987672342212582081160670009663599087984976612625188982386324770816216751647417997584921058101772881464716029508818141837797394774623852376307011413345195788719040048326231658434171887890161216869992730797061200321866690511547366711942782183228503068139608165115246454139717928542629962542216950117716452242213670919816729921319002081386531517507777363711912972427176428367032055095251325131668780124803454554219653647520256370594620607622591913659297000575176508005050054472321984627380851999183609578723716773853714357628071781786441469959089508823134101884481452166725824255011418791258101867437554520969785966267418702208019304668612540597001053566550550543412187499364683509599480624863793191019622695639580079758328907364792684291429521545906751959002858658179733119759005458609482292048587050513011197127446452362924586707395909157406764812690118117349013686562945890094000281209581428883699187800406926109280774677968543841300073339196666565398919801992862985688976662581985015800203657092260162364824165492406058041839587292483692010402486715282141820660894710492038003889095103661526542474395336479808625922874552457218424814293236864358849521765963359109439228058964997324645763942076053488699157207029459326991470783000229755658433125944125730674181662748869520103673706380338970696443690898347471624066119934926347517582707843631867578491036876264010108944274670868306420931368907255283995287853233168969421771893958366729734452390786585480384104113128486102775177202396176738021265839211023036706454810210276973346024617209297673896447446079080992527252065208086909047762139834687238728842639157722877582625530095597840907301179745626437709538383865259814461175938006429302283728234563474840041627500364035047105383363496080805003197601598171414283656562385099781797017422600455220071063971406354246166604526170159723442988529145914930880721404409560950851599220405250235248194536766275927062640935674193501149402217679845269314402085288340690566010178456605432323982068607449742813156135449308964316850508547105515485710198297557220862106825284925471402973008096763313726118468258084382574319398313738727814080252495362654369470687840584240552530316731728015944202520682154861660891891250530356990873893565305993273393292620009712866958201422050431142358414825726408043982258910895746542029480443072655478210045465223590253383872200593198314048199805807842638219609119231834320045106241799938379834958114139867537545607658637389011781285903936095838164924854007177140674503036982739718108542591166510983801229715233609318721279012569813421459141177439831299883699327656797015219392457612626358395696197213517393480128878906485925691330117761029605460755034778492940003840592774206333284485331255790543906937932440336859913184284914117246891755067852909580578399481191481611535770693721491022366516966696147786644593836291560039425379558008693596208836871227518885950644234179646108052794521238348182139783701440070885834874575394187732268386305124197471527966969163069578232152976868050785369310442701002107500338980532978470541337836089553479337443958188087040941711549967120577694845620601023136087070862568586279596333021694140347083473098562351785701639504195804272759445342960367477677266608804115705438828062340310211046029526203002604127272005824884593239433728360524222057370592380021415741816050996904560965474569014063019797911791189438141882266524982507337069496727325120178245529377256587680688165028702304498667663119390069551226369409066708325066871731746251017547655852251826076530695343924132582996970438940607543758714125178265895166435323223969684996125139630306387908520733609285218182076370421833170119141417003488687074318997755646879056347782853686592983992177290548109434749589270921008323282568506216542117139887076292402350365854530914292290637692677845005817177060637350722433821886474591521884349635471281845044499687145607666140282202508531015937113159844426816925337725881256212091134681993772465085395737002500939892269631571671840317559714177320483892491072270403948470989260023213271471808599109358002896635083592628661881526088151247292679534004693912283631681412858408345893527901903473349761818311649013908047277796207390230011084413426590198084140177489842467916210648006676117341698405266800236196358525442316311401080392299803245968500755270008697762457226701403032542673864654899075799315292394309673906987913422144446744301614734311487892849528788289469460409572532878365165626867048916437983640614351587636859511747291400278981435468454960664774062842813457385088120009615709567656819068851185273368283919024697168043209985522651705799527883376973558359339614859675188459930992221546881303701313957633128775599409996302405993953139911764287114946245104876903242114887198815110749050602627885138059597556096001716756360485123955233569776913309141599363118027831387015507946806168034248744241125550617528613289438207583574971889140389168520743622671650747341622416185042108477753577416766652730311939872312997424111966394743555566091344835541537466406080755997527476121809854672992906051166108898974192303169278462015557902480458565354080002585663151207537109610379682321148795401937839061959254387322039725768242340129976500752278725038611031838184429178655133891386348094922543079095497475651098412340833228825104691655530240723323570061266009357446591414653381697987170171405983826427729396213451504556382554140159194759029061625426674696282286774629084623242957616601554904177353022807202660969769074853759535432107456619387965719409670641744157321344175721036673050592675359998851666149581892223349279999340698385870565308087922806259432536430046028049799219685251615166493007605434658583246572721992067984164173335653905040788623460991102628077007190156623695637234829493042846978517612550565413965026652036249557708999996662121897228543879099245459719809758008563584831934892174720360804396596206403108194586432926521891258063493447510218342000392948272444245227362339938400840773669184672590297621642386645613347558318578086812342200038010866643102632972220139829598706296357792766575001335874556987894111326981014721061060544957544606793577183618138852504856194695978935339442840243414127346753439799155970965999433535133180933318625425665960187289254223055820445174550653318444522824260153219329443524696860852490136878214122355411865420474814064177061523100521395754025322117989401264094217100486262624416059727364192945196426272437441797490066618193652254924744689058621361330223914296250280882337875608362754749781633209596124286530774781064666955701865504066064606762262611989578440802289506109674050443672169089319257885724011171703954254584990882924159410066827970368323893359910412834208406150305253477626464144137848396194159937619340605847564739576009948864529497860805654048538456992160275391317939791242322382235334095033986772718698072706057999240432431350260361693121384440327096538389290334777445632002442801179824472285285176149847016651210201341081770972654795661036960331516381765062860028256480213787399400615452099682106255251725209163327389663286781195090107256963406445572186890259763906607911888786431710806826521673865172212627428647077593632531879119844027786728284229475242092648122913530078074380388015655128072009312782056165818175397780349959233798095674594238829305033158979283425955939000085516645622539319470731471350832012107536890418089899005999850432993357086003222645329065381134914408960225179112706642109986140417436941638977346063857620384706599868565504843808590066935153504811424735973206242740366482893710746511648588521593106971454649326149514380160662650350161473486488349730066173608638395789716695259265660228374434763018081163821838189756672638511382162909612049028578987729933657662123233206726163174353427932741322998291822353551513473962199555380179962304079790541311275835438747220540255023334688441584674934633390198104512263189174328676257684184837527928486867446120933490730862537011394507271983721163122663101818589037260986211755731273416325863460333261887142056355279693973174870596046414133663913602217334182969528343252234681387584763452232763317098930707932619545611258372424333361012173082841004048080333429326893254927747221166385062568230578963535795338138258635547382448214486814575024218851441686787499604930373036949657275559485512782449519319529735792232469676624102941317152999472207537448168624669358946348084437183526023087788118728931279677637651548549132372769546264674898224170607842893199142665781462539853245283537329296968260959668383133818829177090437177941053211105143698624092923156922204853031119466417503539892338217616505444843520512144446031425833741397793857318950757754259184838438508186467396193672318954608118249562312640681716769190713118620218850433135110363841732720112715700843460159736027045785785638638802755224651782104509623885502378502830163362554859241484372995744516410701619544432787866555765731398947564500933507164276279238590080943047280476058910789283431799308898618745615133430098050376993695746131214916364816517318947153318372790267344147025152951961145579031832917354811394048054888124267224907158336536141102749901477679251110044708590865628590741823764892771625465628100559588621787727706287144368901552747654925613814882738551336974401156497838379334668885612803662302392987394390648755544190079007900957529061418505292137871281814660047774175167563994070389962099307844963960497514607038491203860392040479263997726186199129264457176592196880808338739990708759221150452331963217949592961327135018153492467240139409274063906675297282200895649026750854777056931742728182745976004918998435758766145776123378632379054103235103375304972988450848800123268045150724382662530141721941228845404636656205257634913432021530700005908205706219571725870520005084691753781219939083627501439728817113198053279560476304140994103817762869739141250118573041487106376243209956832582010739002086794664581718517108506781015664086953855101992574996985360799651462443861679086344151332162185022811086620381715430456892921544089890702717480750989033713376407964125829770764383504436269351134741182352038080054719759075654542118985977598397396904266532348924716487166707523628205250042998044611909158430385552469973662101554488107156218817574008063954051475451557555786107866787687796207645245251525535467362154452436817779238979713622503636462617200164393004858025160951385731795501741710654576495882415679783982861743748514297840604838389548129192416793563771744820968268579850185410099341409517571667900570208209758502083643946387737734488319855011829029740906893097674712318900858612006968206410649404576979831646034505393484002864617747444136128902443209327462811987000258538293761071225949814797469972193472746016088508721869030926584265988379233022802839095127470927872926491150477007852531055673277361602970400479121017728513904061167062286631020926594987345022647965237215949846448774726655897063976495012916254233556361105306527459104880923892682417328458267142634736922483323742780178885514238589819598648194398798236129341602179915156329286901768289872368363474323671159908161569247522418730418334147627281537019375831204940911025864212123078724992574257640489252964369881615743083983053748573816272863969277793125604388598973019784462961088029481882036789981263327257697559631179749140326091798324038066139624349749137811305990412170003226664616114164395767965697008644224485205184753377460353265289590879623846643558695285635550729505268637889873448177646093665650941438598394918228772118203566741919324780676157037070792669475559974234355014644869278159607899103759258674879704451997983792289338513411634581936714850619160990456799884896157922922410533405254397616373270990709816393976470428761136156006634957005346707773925086228140900546092627285711359612086187207157610612518155851905359168434944848597943901029849656097447922938061987499665253349711934417910031656994321985053833735234909052137111022290626137861575171733896519432823089218629199769160026423569236154810209385708666447642424817126719426766600397130251807794370916664007947478819583330948577479066783958200925904162853010386806079729455795466895712189002221085951785143585119441883171331030886184789704835289402436078202580275275059345270910963012209112137505540590567750666815961665534667204562701311302120916627023655582356182320117692260752970299943982423140722845571567548039202962008826118397986322217778803597068052850685845782971319481401994183204688261279093198040105387668437057271429191325093156830033736395122302968888049585040995118517792086362098598570513199891469891717990454986154212632658155173438492548966949836927654463234262836548695280928038537794078642377367289632998425153099773540711084888518826013588467239210524462801007892726324466462801954029666124058262642830633355933923398226147193706951831082080991599005013168972713439075692450801523961997897630553944470257533126280750424106532291208221174994772641377287675844250241513226516743852793743146128986357644758954784863119687513483068220008082845079101922705679993430369625925520884190121497154882884783330886152252307872195098470456873036750438199838800032148173128111301115786604579380823492613723225486762825510793537327211287331475704642297646358020667930677047510051359804200503494097299318266419245075986021963782291216123092212464565886734404322419885033153784462215277503252921560934839368228192200847781294346519435362055154517664857213908266122279042120363230093628561002784396255343611923621055555407048325123881558746124693809451522057846509598848405778750403302543162678457939342506091414534564587483016850530763373867265520300854438419694839011517414234268949698208627275581170696711061737473787021059029797072878818867746839308468007505820326293484985532034779093602460049648141242038012509937675210845131441642224577169932720881392749987345297007006960637628570232662678826703696531752893049860697319715439793829024437067422571783241986718592801347297372511198723479393614819410673335803594654881343896648518240865233691041607050278727594063191821983434163838200027544134482714416461539923769951834368940693336519577248299662381155903027698232987387667571385849473327398449741994180642853212877369970122326528646627657137497503146957775586048007550805836900654253970151273947123702524866109758352700872852705405099607534656412523961307446189491416288503199514355788821512097633761377570882270305371838247812954014693670274757397573418472406508801809383930197257366468717598154830481138078647752136696965937692479463861980935849341124497138232246551936124352329456548688199116937004121235494077182353600202047217734967349722815671698321735117964114209874232485980771311160917889852009540642487488880958507607908600687700435352067452124445672782329752743689393578249576476945404216523012147568257474458031303835114615280304647922431734421194028759610656502754276073293104938820967194219187924830425250488935396629833559697824630993504816685913846930872568910589579901489955656165116825699029844441356156446729979784968511268426751648036197751449812232802975473479795826429944112559543763699045224928524150247337580668689341126457916725863346293561828958032710960394106895113216143982680716800700606299849744423475736945927044409272014653308643221113075247123259638982942181819133989052383109019794224472858786255227986691180924321383470038272216629603412905240340058919476141341066169717238305854005203440797643395081999397904870981561594834956199774392732763915196128450495282126237329775591904767116876797215404374490324667908425703875115965310069574560973105709697911148789488614671230864941044000540304950933048616307890459008631972369586601044944722838510168622107292420104414023566619238219176768768236600597566093064325682096982556633997732949320667128207643629196076056836456980877332675282428926371038948522110344180526359672902238167493332839808099840899717128861073743407800986506316081287275047452663622328901443160184549314255619101930290971564969355377013809511933297044273760333661585901917087114345473456121258700479255504376525597788020001716240796044392793814369638145290918547615024456981343564903469193483324562973489402128628503976208966185859693265107881060989583787464492074344382631531916977635654213666381941552851835446745240111983947124105045114590339339104415647633041797782035827297290428522956380744683368677468697108387736957012341494585420753570272304269752799275025415681974829334906475685095623120576146497385050275070596580448433846492971968057176126734584609409101269259545569788294610418053297168377860854396298744554147379393147307077184982527763889841573694814904124078914237604082394166226200696516021162050076587804370475189203881513238327950476964810830904907635129702080204789654748359378602994931840715953250462916687058823623803529091424815910276554208993216187446718837362285618190669692945708400916806746498401506646870530755639275197000695454858100680097764740485250380464149826533010464213880056600219532776826951457910570723323239418462086881260753878725037412390597604730302521701387721770464441223841358017318230846521240674785038981835101873756452456529642032983007278451262888184797446760310987665767644523950262377018627101976000588008091514820918677988025024274054291662964078023339643481945674026250959503956856290296361503613186245769745367081439289687333218630686767855257277513063745826271816810644932261566152845476013446300941501877600295923447144080436025065828919280053867402239190921796341501379098706112355603504241776556348828276481911525548682795060099751906285390612024113080302161431219910589503400874302760714447166684095163295780661783107529474419291954792263741677703749446361850352417432563587026570217921362706609687747237066256375666318905425027402418082819456281322630845583479904891447168626038673780601315848028069841169003811619323071272485277738936629627279480495550107399273876381981031533348940120027957857910433940082152146126264208247062886002399687639023784685726032369858545773274741004866018277559615217039130230697496355905330337941691238833695857013111681868380291299075759429609792346943649119330703490986242168803139004243628845681610568838244327416472601239899124853348871139687572035022929380690522979167946232622924654105729009483428057556248109746703853881545415463010828585596799993887189890278813733490261279868620596652680283969807512248318632101718368789942001403596130688492581263675110600179884950904605696881013312192161334971318489332088730828230402238401241146059872518248263974991520831935819782448054749000567543246695495996004311951239565035111867579045608116585475238453619570858034111376734813157338869708620477420858095123282751594899505483663504997070390974839151351978433581640695615571119426517941505309153098568141953496836658702784096138493891911959722025616857541039670894633501324687721251361875265287119257356818962020894894433881899384268122665790198955704320106755620133107908983361262804952411166290250751656402179220359607512664280386249465508567768039998557181704226836562842503853997205075621518156300241275823521668151943328658211434848524706275400058492615248037869711196995952848862716340660794080343403687461082130504770043932157640778106577441609399804703599892899054450950953400514436628760055483902301592683042975560183172835164624454503322441406681857986981785562887406829195781448370277568087490451813247925296809519490291833522740191603033386890954902266267190999057962257302722093292707375710557883769870795587663691485694191675353450833933231571387439653317059719667507118452307843691019506420640612351546811449831323171648860586754381261736842481321300509480281139163629078680981529187168610056186013974377648755256081269017294327702261211413921370361105616854322290998267619810356307820480476418043431609332921988012738184673423874145711847478318803305888007622743159155479956424991561911534138244556903643543460288925985358532684788586240015182066804486950243330561509779712643135176250028773046214707673244951263156850704023087445974491498368618244865525441100924678775014738709487968152359843323241905570397323502747157580565430446352771509721520605829763515138014788634037891453284496008245773604799625297038559105874016427003893322650000172229237932627271600313232305915669271574173141436423969600929111758521067883394303514970038808914241831239718681901557079578971338131460824148071329037619040499540603133854331030053513921322429021874315627843905799786549482546481874190106152018226654627277332918757233298484570770012131705070746034649078179045390364293472636340336083822800714533576264737492694824539043939173127179562674158719028480808927515152276483385195616687960311968825972796925543909742304698167168675030726537093746618140509173643258597244066528147343408372015584216378811676291860703168950106459786273444862919583359189566493679453736717226856699470315648377765801565432252313023901210646540149015234435597093007194811817535675525464173775403831412677085228159840302089722823290991143511838581935154152955836379436408558205750038306861456072148725271318342747174865841824412565623613877339127165541885453988270948189840671036135527985050329154742269728725098047350984387345168744064363212068487367622404054195988480535106199567665903766461458318606182882973907676268459462400917134043930746169658630407837717020441513391813012778225924370668936210510960845679332384076048908993939625024116772561671505636814419395718900588615950088879982472399166002865932447706919860611477726558863531917850742846921922756207626618180070444447664879740281181405154378093058444367730426273274372070782703142073854833580343721421527914124843068983458368904618261088456138840626815636099022612173449138832104625905035540373861794673043537006123808211250814621850846304552238425728612850739902108910708885582360479061041391948088378961561820705640783687872427761122670875232256268745402745641813928641570188734642422104198122008981729450523781733174303263237451452718046864461102981150328398325411061761160911408263915628961181839757591309673729388157501633177403357783867024848408937613187292798239670111695189478810184831296073044808441650471065000810592516634324205565390543964328893149061672499401132169803048931115293943811657952870955981547787854110205494948093716807601088233996080518180963984407050035092718880416009616392637694303761447934143493469163933335074569345048991577601490873028180177796490127104178818763718139172217367054696648204661335386043129678790892527943975505611693052838694833873215883906104869230515432256688406138128999948743041882467269353083949740060159936992763947876250370545251016765347727880008308789431885423718867682817069508003031009231669390651285675105039263556013209582374764459881360700509861084432851305002186274835151127786252776246472925849850058981343907416174990068054279853803384824584491875082150705027568598951410135743008884153496476760244345269733689077263966943858154541691848632626858548929803094619893381814496123144763457901130435041328095001846230846692059328466598318590204147747613068893652298772792881628532155202874764404105459733776698075101720478114480010432733380491941821972953468002305863791147005213988130787650343450388434744028124907959294618746341011160434783219288637149670593086544764378504879331474239332048004001175443051247763443430821676705660142965352058492442082269513238817870750050404601228143790059276926800968168170418966185294137327303146045837629842097497555694035429189175348401327865821690096594075140277859760464128458932222538106178657466382765465359886206378202736617554256605118042353885150705200103620683949628015739368449378786249947677767377635100269469368049232104758854638563438967242565444005336738814497381022037801238126353182168381760716121601831248384947221720675120734359511083070681882037749300794749064736341753523804548188658727029850107594869140669863744671791267326565304487256024865071626105579343800414961422430921482854538570383749792553029223712801556646036158777026796535453547795033576271689624563679403327876866330064527024539774373560890767936249006112947052550213518341448181759408411809250677692988615899369844448762576636355063736090100553341180693485111859198579349609876434341431936056908918430768027468527705297070687292995320672199369818754422403233099970241672725125976157611180818692439541335184117265685015710592214239083987192485960002159653701130362633584426537606345310164998706518100501457964828897565392914697259094156929886487634615055925312704532919801802679764672687515623991358824313237555570119603977480197814840051548171748007442446040584405851964288347624747670891259333090950954714104040217803621176435102595494684560202545404490143959965683603778513637726783009271058675153524770894598153848290851166632824549842928582485825251648990531181172134090149234665998041729322558509796154199115725969716310296853791723015757270272337452356645045407407634584446995321882507949326401060042417853169252810284909088641061992188939291582152155793268032905372512389634191868301259834424393730731543958145531163372447616445417189858822510117444285903190802440565704788853222620648716375647195274351661589118996807222618176807404482965371250242485524302791695113678189499410285880492244839781391200948665522424780743417666637753839056339395631564098650139098072584288321962629499090408719912153979589006276725632280553165437734947210347816551686116300365268747524933014647645241573966961139723406353273424474010431893095858538351296784811538964664309655668809515545076247264538699154963482184109678366611664111097382756788150603227315332664562766184928948438964918773532959913548224560509395320806486435473541586275321972903369557031936767896191419592973504336970322819743387196325497051321115393714843813177819503986381296919653739267070242048279871547602205488020623888364169339954943756289866850314186587135785175810767130670122469966299037918082351659837111860783944230291509280364481509118536841347489535435615727807420527953982737086100573528929010983889504368106762415116483932655974413249196618145137747870131527332929326969611494756923092974846555595804373163854548997471649699095372568925599387639810165557638632120657232352623781897553381029431161333595350336972868692969256305081099346930695289371679953144459085316919177929071297147702515514255882805177418222382248408948305666018435441435160118412229986851039599577821031506373112672335131690708562423172779367563655229467222962626973759577829538913778229489433296212088016936240559415931313921345853752210273097117688427177059888217000632167374819258258006816696598120145211337297358853252706421958090465103525813848572626156216511428601187680297095187456633309077497877994800068550704521864120893137200695883873965112667919189065686947488127567172757527140048561078611371626956306136805224719744380500400388204213120351545496277676120442735966687739235425547131465713923322636665669904949110946678529487106796955627845213150851168183498891525485851498993974197295796669826149923618048338542714037528986240253196772987293382774271130363649309725804615951522779205974461322754008666030734438387391704589153218298207227905790387732603494383667951861490612945004270705550294984989477942429147537172858266297448562345629372782270363574848259331375314639154321106789212896164983696203390840221871451531058631643450073940837540939943360776700753514112567183630958980724830663350105486154765159615827366036710125037469880208747062209856873211105837869302764884459098556732585527858883620766392983619393828700072597843318700155732449673033397119629671753335714847005514786396629261382917439335848225410991913277145427196394063566782543779931856438170950351314086606650091154587752148917322313959299683553531644242818293815190077145164608953423043723013236739327466549072572988862612475208828504698568323259418409561474265332437631769432480614339860050296090667143912949120792132286630970119830516272520570716111015697613106197801904650483367169612786539096574547020881605746770962525597414789731678956557639564162619458546328582226692874492524799934175990377331372125501805926522218237755728442803028858202003773688079416402018423172054067607601829810568046582942694791470973289976727711195392955706025514180504108275985641755101436621954319042632920310912912468065872609418461946622674083236983332498885516579798726180368734911187610875828702585776398849769062576550035372441550134122702399345734193473566689018788623230938606907025942521020422398601400510967020818029095833550475788459547023932964577145685719591527138248437630967011422404570536072108189582953115647627851201412961172886380570892492974963491837841015996420227991312587764363143285762905583564932785980159020264829033878927786245496941480932388574518090389070264454563157238331275772954201400226345003872506682933505662931918085133435149364700354490260436702609020814639209367455123550867487561483658507211701950879563038885766102849702374009531016525370564821743412851416362312738739284108536871544947556881316306689957536762001541750207633579367560446632809009520312673546705203071595797009472985541989143833099740353390478739688737673968158611401359469829793656003466353906721982532140716318613488664971369861542072033246045040827802307572697230316935336974977818718986311179824978860183292933405935157945214565941166180559314215363836539818400901782921571437108485074437381602712590469739478054133251242893068746843775338980987992784902302076571871247160786481154655060609264614557800545137455474011816936806242838892545484723401825800842128152949085332900833655272668574479982205737750614886536905510773618497150727704705907537727023675416835536187339027199332701107940776811631152813290116902541313539406592043801101648264188360681634031406057174219573376517880084718691357139135181011777410931336931657194738146251547565101252257297756007519104884326895243149973941870140722097813476968130397639568816586562569009550644704114807657399172371287100238566111819751530684687663246057384822916105111739547186186506373892799071688937347897238384588013592485349013171655851439233121924995609154489752048732964080463204953425458696426719539334639937863579212287329535455058827060025733548129894776687512145201201933851738062220781822757689069186474615912708652018513664756790270485018675360340436515926595075227474369550423230690688717045059557020907699398180497731747764375832097656863373669941052420896664848129512091688757818000000859226118844512220007591334585020427223114343261774600442238209391182634703138956553174287399682175941028825648026237212109790242784638662686793139907970301928621592320787974070853166823428343756970276691069589952134236268800705861788913243525261862572681461073777776843929592563811525079085131479825024950049713283377770016103304869259495169706344793524948704366240244477956397184515900310617560590749629775790191490326929618595806198860161705090407053133868539008049702438568309881311941024968820912282814557758979599862314560793104958735880374417391880595793677612734696376932843884901734764090349979225590237876791865309462466410387366276554550762329871679550939056480131772450252892038369233260903588417576494252658369536932999717595338587980106545807607741893515732603267372659047850459124651547633681766365847468578837851872793994609890025108662685404088693940541751996297169486298089549390402126385931545522708793971118485915770414052103753388056652847801086702455184955548575380568894284811344251356440714741413817447641469223267127878860210952257490544386541562309112362606329776286905296560545060272526869386162981092792207447741316329119411221848468280801545627899293108497029512117576163727405161291377139686427628576587186644240730329005088376962228335978781553111477599870177715276178553302096952615286830186091899439839626095909957583539161807744987541771710912292419687921519748520656874963721135010180928673565680673231625802384849615051868759609592717792072545417244818499056004382437201828835387580174913647444497075001565039059344794900212809366150142452389586838435075841229901501023710753878126110308909714156943202144613607232809182604972486580695019594942137346320770973211985724135913604821097518216785588090783842284888867950246807209683530944488371835744495481209149633369202809459494440897842409040372764125492368139146889678630374354080960959759432388478829998952217934877604655002062768998671216392343817725403506496430045414812455562983481589442190447676782375161027822050496246657547483557308293093665208397259303749880041177455920788285720278877780928255755182316514814099484665693705855992783534013131400654169861382207716678904095491331782262917179758652782960921640721237726497530753908306661418887447217540961095450482330974223518713753219606493992228254550961795757642042423594222076235093194312334120104123432518360129306949221330642529017177300398399346930056801421688257662303668623081399911314222760917692855595679068018756175115500160116193041545241246414340630819139101339554963669152684667940020641172126775777725149657476908118163588465839882213734539067257447430734061659063057795835969209152742459654200825531539557953071611842490633629034085263038103432821757293944031006899580087531564393097362314559646956284450616342037103257073914395993509747787252588439623193403761704610171667832012465287521485232343462805877644070326735269962029242876061947025825135554687978081431246298973010349620282714230335481770900931839401793394302459961105005956680516625868334378626339882612078491440288562558942029876725886164160702881390007344704922543700978024898956762474546371379633108639722119173438976098653409636758835105520747196983730007692034730186737964897976162082938393032862201964502116628504032355061066255442410495645767595573239338202379991184220661500356756579722505609826577044789389978341439763758948239815689839642655601772980486099942217906771456892662342352794197236373228474048779895257815341858189279600760899201268310443305228867686411614443253694537850700547706811742925897246084151865263129916703435943102198487722564509820925591908958398867524118547618678706877460448881243046345196735030604493559838591702638572650388274480573075690659064678795207888684629204172848326540302619698742534752037231527040432256131849264243794562061466080147521112068496241633650365165674732469619895119486955804977246064660791780833420367092415522609497872537099471648341089793274293697019313872661438258726548953782995372961070600952812913723229858857195038391075880971767991329799038984089951538041106156640541874523755870748957910713436292113121548173924713290953017514593942603660670470969005294528135787910307842359456948213805086183103292032838176634123114903525882206872019446430694719570559590569449236215573837720171030867458433727710539686155525118898459402387736104538049912193854178432192790322668114019822712977966339923618695938292415008922547670938087112159353709597446916923077278917092603643523312097429344163469555298628376264566166211509830222985627883885362466876618935255071174690171236689605134217540871850622995938545942129637856567176957282495082094510975936853827303658525674658438792766146544397124162652702856185779369196726328884237932172724345033574212013291728154537179834334728289275446315872325452133780609081879990718396948029823330020074521671883429039841172646051801413532102567934976333316090144524535095665573593749140876295716097266598969747808015647319069132477966135218325456604838900688287346719535706246165071201004173504980260485520787207231730140411336594724368156382055597344154209382175431278347115517572118345851555778262631330095243088973583304896978155347197241067423469751297523147554301622766067817108629728532284273570063132949742115459361892154785494757602577807545168174558433269618438558063351128212905066340920652380560289207799582265279492818602898437442690724781143129338064817241235430403806833896607782462755944061514261556298170621886815605844349637063522760644035406732192781516944630309015379874216143360242954553301378425886317909362185842489642933480077178752975386940096005063188882197512517364267668936487298996140856740345970866453629733811017676473972204175779542219619577242021681066571877546547859548655635445513721111079937483714070463095143038628861019344717502578358446020588245730794746024982881617370957777943038074564206145074396391714530000301753404349366911491140211396774783128971964306211936674016818518654105362717287614900113395034651626884324773886045810053324639744226988757195350177379297036396440452599641777025188701978635241316393350530742552503294420462336797793491313366030210508965148275135948918638501844088522151316118913893528406435890074402624315515796422923265720353764211053217224966728495611289033192697751589125728283226645604710401223142009582610070887067725348345334455770780503252043053605591478722630414844387578055099370801810168239268829163458031798823769892526286931211041016644907822251596123453709592732395213885095118185316454027977691329247424862046828340172101455350640547060144913834669089849113908908797545102107996553442585277172455361710998268546599093452957382927155200443956411616296831855918948648852643044135550999356810894783426318410937024338861930311885901479630960060581814992883580975852911156359661309491523881193302111407068594529528138171163833592884763443223353351529477829672348143585051270128776865431543113447285997189512915223591369253812632199669856287602423916969400564777053482347864480370049861866078714557456083557177097400377073874010292685397689406710829135331578490716829991756337846576177306770715728740174597510492746358727005107970121619700945523850628610081888780743645237121320637650089826591578571654393435872962131950523522571922543845559558042714272637997505557686257488654640217061960443035598476375999782644099213395848841145199411037749080275768742207066544847267839312204784592949350818543154757825856162466068189599043422795738702176755293858326744374358393881670764288626189762284495926454436115893496688109910599734438759798334118338709579734607988401105425270453900875193556192885982480870734368816654118948953878659284454260878877332317252976916158448966685783739294047950545558113977733028699753439627031726710621488537448596886122739794481423543350402223820362079048983218702793064890493225839639999692844798742756448452533980075847017237676844505865404632594103980728274339105831737232783373337169408116683719329145394516765997232585183834209985290579618604567391384667500305780945262411447106599609091257714483363987103482191528310482251850865641382664510294458909255707889133187323762081443101081337535035608565363627061423446682740907368745116063468218697875513254198279334621347477551592720572735434977083738653778766394331816382368167568068804835202272889212098832971428482351937380165201254085712624425937723452367796108111130991417243250094829031686496917488020768418471737165784755156295241970749710306334854124880728741669971733793657067412573319724685301159908747649866384844068242272933205904780083409595898258401169586850012060236704439433658558040908119133107152497603381846533562886709176471843721765401969727263351684525868649730942381480666455125267478906861608044290052483996064660237380604214282408154128754164908749583208723970221554887205976399211006864532679277531635276548102931444935207359869919416938640842449240924990822045980063344502138709748250019003662503814347027709618230688036631815405139156818534661834577385434391498427993811055076351027910270080506294503743956009965873121258209925622751559238852206660287628573529433133544263495341077389159666420735898024894234359650875453236068600808692400552259770996988981262236481265070615814265785427419694721604418680853393608088889991629892131613704466942612331333567951826545396854971196327343648392802668576625643360491589536634991118604734325622182339190031328978753956431294110702942607274883914135370113089495525818495542454827992012893566667308639603632683841596084319600792437081491746921109252793144118798392085318288003602727884679356423569962007479897451441375250854053250023747917383315693431737449747895393298102750112196815199141152124705797920789669679342819536766859051260434514350418797661743219677193952524692334230589073334566559095251156745278450579371494681086079265856172786162878545704041883542871384634886159563239489374011253245533467834278589594878926120515785009372298945932045097993401264727086082890449416525281022876889299632067151200948407594406648274323304770952407088336838633811337859529270477823386852065247696952744587714076465970499762341652295960145084087060252154063012210875106559259800675202166396724478361435971619599935567803511736077934258546985074227128333177246313634722951198903687221021853520892668881746905285364282647104142215562822135251845467027239398637598300803686327574575781515980288173069892469298509641296760776862777378213582650657969576436866618205073030075489247416910506075547114051031641939540624259406199928055768012680358626094498826845028094416483111754645116562468354932892237217577694580758853432726996231040887330790382030525434111251505100674558481974902506480714819767107507956580900924847381686187831637838367892817946858702356400839000061412963335984221980471933430364392700446517638241687278287043387422572507728778218110973606498506760065075993296146297489052923672269977622761732258369961070925460722750959522726949232945950487496922472970489339446288210567930694445391303878205165153511468562049596776704319775749105364854426728212054453506058564750235284773358255139786267071076379144638735876087997693888772642038630190264763306904095710538098423224267878529648104516662376506005339108183392393307317867944389450212844381324689292643077777829580199666598495604480742290328039116183617174841192823916634587536937770988522360279380583839844466850527323072219838600085953156018332371894835394058853719864313265781367787022721602685864124356399676397096385468703608948383328104902493324253257054404990851444224437473435054402512441236783578833550048836023522174893076441552962751557868286197048485419967911518940724534557620198305622175382256390103326253049715770035439908368752784843121818280038924823890356307026658253309893399934936336893161076553865020898312883365917493436431600052699024213225118829720193836565460651324457419690995336511857079745568149492737413029685060246320163500143331439192126236680503613508512425815012323436106111106484318705109253495801521201167795329049373840140697559300552620458141769316233816557584361037648784629282835826872603659729059242357338327009289268617305100176413207444194530394160099109958005430487454736132408839028562709864542863181840395184082340075716503854626788078849633366929467978990864285929891411970617704084632272430564720149801245009862149941236319215375491110539525195194256388057154941929110161511624452689977747090357895681683800282347644600260433782147970444259454404956505558201149404318747406008599554335247092963671470105903236730146945890984145360082719414005792548151579422237359637443433745184599514574335246443672481015552074450493379908648313233713223934631611397790039675447413415797122946275062257369387973039504247244470325155247424239368857938918866676211703098846127265998741812427169357882442413297480599048491702832213141929789521684218603414318706751746952216751553680005800102698917209942438892373023370431858191694068174169380321878333592118876402477643318601473866469723343081123939494198185653160376654533510341369253684030449663151221079744072014436812134150172609043599850342695424605561051806584097469877814028502310427330312864526060486482282149927076414821611324388544943704005360316174062676129692627946134515795308741036895854552426036620812576496247987618126587569647498947786728330462509952569141119007922814727655161322229659840586923856099938640243927330554434183687380283120193827953022883878778963728299654749122219264366832732692497157663820582276743359836414494090030731112285744281310211807681735744623206592412811004209095656689580349345779190722562011867262933472590197953054505269895546607418009187315676040365204335255248306953942868938332639012306562861766070425425669052690703906535710000883974124200959458752582504416255151416070447754079444725054057787937472563187920980887286295456807164085536709526983160915570295745323059396771043477759278318095014705490435314690980524639003879336679702440579564678579036455801480733241226747772175143531336124782521999569596816364400328451307851940772204872485645417572242306193982344927887531907015518636300914577456248264935645135963548400614885073006581836861117821478997518566754507739012775705863175449096356925816808805889672436418892981193454557405514042197929242456382154441544627764501326955621418073808552535832480170791820864791204526920611820062201686708132206865413155311103415760546514184197047285636524316190068213578648453604708022112073006223958489883069099246144570497120154718116475589039751295187391744919288044112041103175822478634077619476196785719548894106589373802064857637557150334041511279293544330084330474164069649886862153215365611731552749829542356073049686561602268348620956948976454833202042128501838656084947018878670346051170968737244487695483333248355875203352320018258129093916254717602693474189056632600989761715227756566994427587776252000223775194616340008465689139979483961020861458014486797178526315069541016307232327442508234661331990356068238677744884109441089065442607836108221529589817419772157293451873681449678452915197599777908999101744095448438221651624575976652651840397842919412993202059340238959329739876518515717524950816635171643477752776670443066554822870192614488051149800201466787386318404062945792740004055756500976948824726440394259158858057389683560051444005916881694293336404506359273806233872206350189124304016508568437410781029712439909765143090860707583677528488340788604530896012110555977936885561053635779955050384079207384021760487891188410023448995012874798102369599912815380520203285454956673748355086611182771027145230397767246216009188168457004626451228609092790829435550629951686316319128103841534170275473315445678359241543732228910192304827346883081705461069558874541480395626850886694347656593833079742247233200079068164624575585026172711938185286926935092488852978757478157602693080008503131610093995008357083711928738714563982696983996986741074901762549623458341500321298903302551647792476795380328198599645948076378783826026436719134215045192247505820752134797130623124356708442561540837621027861829233293768443701915469284974460721992429656785839973540264578695083490153474889181385103450021790314570514130098580595944556187055131869496536180157434751868345769905975918856683518124011345965851387837260188753127678970755390961428800688245422837694099004922793100591965193690554638178896476018574838896130332527019327956383414972997065399736323378563067124545161027244837086955340821671930861949720906782596395048205832872694235054090082193531188725390886729278366629594168453725493037173982966816274987019123844453163164589829684611040156405356078111435355049225279167676218865357365100473604137079906936257375039760455079833567655094997323011619093566214336800476525278325654775907908343146893559067372570625500837603277568241109763992141721102439513794859604080993199580898079801611142676601600301867651485061387053290507695502004474453476060675606136829399420583784838299844519870498969623389482129840040140446200233578124931543283202570706079887369718197936490949367094406978628631512634232556649283616527782200410642561463116503855045352610650151702003643821087535400297946457318125569841253734257907547588786208199136511605645002495583621629075493637239973908030694287629943887727722747808392877677686589548498741338761430836047813111467475719807607776300590168675550857715794848558248837134327905192931776747789891923398483939062657630313170369445769122115269891613383715956369997640938037574308027743774487348203586955988730639663310206560099893174105789876365320591101740717993598109086704276822049909093785149885646396982544054584527212091010842977412260916359604300801776234423515372311991500715667634187133400624976358695772016100761168865520478171422999366581820315174055403556782426653102858522515112047068318050747652647441432785633302304016251515136688811059886152822436649803852308203826218381921531734709227450964128444674784342875546861466462498153189315597324270550522386504420473739579539973101883348984651744997631469797874893660733047185850658770931781118060593599829359832534095613468466078046371725147281364871409219559826010138136379189595724286422205294954094583499402622074009957941158419160213744722999125974025731812366966845268850356971713257816646695463850998708568379030455840199390109330266133651220292371379693163876072850071798112316216009155722060011145881796829856085056707561285582827610319273801253765090282441802683510398809955210255221142883305131609575091502192616288612430179195851109279461509233641692231668687995280456827368630642977580760486079328125936294788412773910469994846119875189591893141591232827136838233101779549793231577035559418038095325238093774201729850090171725440675205944018076538522213109924232895625434744092595516199892946429266995944350813177889064094359758580998282433409126890162211849375306564581071703779487485770120126369135650374883364529365336313784023898290779882450594648145500873135677468188589407769687548542999912338594982957702832047136363506839666349042726512920854954114398739821839472179843091857545642073297355692427053890496706777024217788891873884994535232499187485576149631058530119039676557737346870053218972159003422819231703098408190619883610924566958600010945576234689855418458599363996209940171577146363392640574394004705958020967299304325603205109458400158367606546496538778331310350214731592226703355326609857988001692021182542967856661646775780745333446707613120960167143161202279984282176482574656140274408700760296114040301234233244373330108646879253232618373270051757318174800858192036540467006507655768158773262553265506738655641774698826312789753580420298986866824206641800842707655330842666001151061911826654672211019500964525432316555294271525830083135524058081673728306614612814294140866953942527009612932115108701178862024719286533419266413694545718806544898478330562448677484207730705945547247176155679181951355960026230221589109959808977786739402888159318932114765589820058336380564733972427788146990464798112280977737785571572875588964977456964846970000274340572397763338027611307732733523467391358509158179861019445121226572607877579300193046911452757944673503792172122147637935272738830355114070398569496975175641543122491175090439973161636540391642160004393318775389499000549485283204689295965327067989237210154420734070425919660790583545928592822527201921334696521370566710516907453762879392686512440938442777282731668100919821918066104295074799476509971357576716583066791630286524644842553355279345785748489322108774211731568394790738765478651676702296717676696580379950202110133421834929641823834457824708592170783627007195114243749491381354011637934141190725337580282374096197622471307722540672562127731567651828362085318808315807165850511519756503130231787327893874516130745528973852868965840786919609714924905404983292568067698269292132335851275563847988876166504784246760043676589061218473547132004596584515024487557850034485267454484238016720592698327499254640418777776517890495056690266394088368030169691796680852328608727189329427775331687258148810798251495937930318851171566801347678138076151227831487664870337876511020272327085964483530522448940380377213360474130576265091273997012111349649763781630006695193370773654024455105000368576774362393759015611631723865996966541829516917279697900147819324168958769305415951609929613470120395274428641339077523290927134758116382943351903731378554947099135892536975648008705137772380329046477089984624410797771091692970145083674763025708877788636017212266476336134272650799638975732670508842982700737615521308850831110910298347344414588711000161388276723194157111321124495524992663588993884566126082072730551900529786713964913849724047124908389319147266770381625999988819320735620853757843394384511766115587182650498310559307922663375754847820571542419412453706647795012185408462050728964465340241228275214369150989145565639036457238518514335769148342264626616107873807589395576638663780168527343937907800374670401043316273338251549092167279868504386153375434328576470617808118924421439364439967605777993776574776367695044335754192317539407342128784536147690754595780436851642778238123707817689452332217679298696800396800098197814407663914897294086495609420999518658926260200055837115191788936903855860635010857990351871616425356038363327866208246990151114498022067356970251555532576550473806292207039790388584337223705039098024383122876803258600021373391421700031757243658907362599203458685670353852208594966496255334521857515829757232625544772680100400511557894280064898913227194730242800445308094169485006141747062022198205510563874176713078210403248314671283159328877617925659592964550292956940432296066866442058717153541774590160228034715228159151539032249024331397993832832334394628981643663913852175949820160334873725333037358005926389137532402752406376445062317744149441665376673499548829002058308883926782732174096255190762996541776162735560468372804563983854841726816770547915213130393331831611303502615999703582466131345996209892164834247014223601914409109126797829930252534486708360940096295733014416714565970033716843232233764174532990607358669538236587619299806776093680774651908798096947062078621653793977979298226645194975814385445068435202938811402648924688368560963544870809872218054280569720032338576016955027162797383013385913733869677333508076953301827508413278290573939419971189165603985565563852846572108371569375297297291390711647870371015804199243762058509493506668007292331341857636092814711024486242123984276474838439079086845077970382711774303653518060348046138468034957524154379196303347351923271245493616535414533228733923087053570672881846643366178350469982719107644498321769513652662943703058957095316819081325133920861393744947544561390356988017160433599109444305200492948673912909838691359319129379314014314473140572476713034360776333248100438374978194219843229254065979506833771679071020187048187975985073027552528992488739682766339854102299540479274551920091786215590811758692144465813383765333597294913620603805063901715166743677922407648095896706316557010635389832164413177224020107351870326151435926740428073463446442689968775469396256354376690874949750728812644099104145028939102587529838317287395551739518232549656730611196917895328817640267976772816113312933068005878777973405514758343766146893588717173364979472407609585182764653134118488099366249730990047149561834903446082851081625350115677004886975225971350562893892229411341406218381602745229489657030634976786904758847817409412515321664947724508224882398617615151937529353919492420037907191900207950208212695700083318931790719905668673829883103018806561422577480897281945949173735743421348480682730313605249775255279231204867957509113549588117777361260121110570651947548147465221773815180150834802912839680040249029304903460721334464357437537793001704583905075768409443482249943808013400091821983103807826388821162798020480379755897952397235921190941451473077606520255474330428517510677248980922909907701931343040069095559917362638957011683676172447052619049008916153530618220390287157945709643619904015635256561919944965351738641803764460308676110872330022653890715916581617348852988183786036732201950415074903781450596050806453449690855189672565808230113248458572272280207282562912978370943000616651644024966539827222921509392609513186929433174294745037721183945640703205042789189804013515018691416212280762158087178898644419038426981605045678495828015307984169092553457265337219380411352321138326038309784914194514029522929138426754811023083934252864000410202385784892125156089075381727600895709782405180484661228340300114300239108645782769751478191924378977599375563686110337706438157567710326891455654621831120137233775088839472780896918766344281594520059343519796689539750621323458640100401603916700958263407528946241213615039726893004102908235953056145445803357060215947731726492392450420130875722922923705091420048770579280946185318920443888073525643399223237677361932671842383030162059022019002787802305084000161956706732490624121858064320228023128625826199651717078390311722774228245906673403621067617639387917862059398815757084075145998173857123503737372919925864051303588833688381683859009937212372718260159774462936012985546729310177216795179922079547556776093159889812143225057685674845366657794890974166849363712031327692448099390094551447591283318166385349278248593988025464367862385125425235100523795206555436979612366280670529939281466655333371041397915508664848327233630302901580121055886146058883669608675538482777597672053050638851214611300767038633518571815602252835180985346834041070443324449660450813794292411236665537828335561935083650072920366108597683562447657377260664506221842780542265118485591277783718948127091570745115438552736990944159658630155747200097862757001287026805837902400662053067428460157377468463392462771846812121644098677507786937774565875164865156256356221641813536685602746364968762379757361990544879049161162456550484525382828386285827803847648594112768769879012850982340511045972289897596577938658791744147950454076666275374494245417962120506319663440341506958738904279817277285807455517446973643546073183076937266352632663637454127084128285791576481764302993705762475172284320795384491939098516498906951435183460265197878498864323521036548817424225764617811534544557828586701899899689663232012806131994344731880364158239685716766824366377720613754366608670263685117953600265818387956958766750147247237676469279366380356822960080469747914577533569814241604610719797125663772209246892443890497340978379628180406815711991912707485063734917951826184626906436646353845301973337471489339618624815754798867736994695564649178561495686152394219175367557676401075492206885598700306909001322395089136503304699637606466813906769961594953507802092634011576783073863568120674470242651552466952844489589719879477436436029498263960524897414312567665452529734015494382556194476445147397859047353481689193133290731551952569923770920155894898384624301496915439297207437537316672038962249756390324961146222276425449388017688040522156662787802727036226322988029484108259414780420406450093074298651195706833043930213401132936068734486253784885872024508320156304645883878613470917823750187693017184508360362468473729219614518072886201161604053751599299527551675512853664318651584000347618202372691389582663345655365873422642771644986041464466717586407758944532263740473410577440708389933320858136978229604212078660445873745184235964785564821718803512515691986146349259700406413027547844703699850470551135494300998115971976679215462812819034182074099373378333924022823434790661866412767415120326854908400472145875287624119123424282612909386601196380794520795126800317391504991167085952361510273678105561639171592639578870349446977372492134301381517081721469857081273561200919419648362523563122405283728968639800234893254304716982516777375353696019289742346912861118045714522998064212414167731057561431511036046533374045109504124125818138623090834355622664507166482129923720979437543911847699074903590659395097939905473308255022111955046904467630742938675711522321023790971931901416814398267753680474878821677000342224250907771599413967665360945157488576776325927874032275400803224684853703972283356726083681924465652937671004096180654456122153043876519446026392683514941305102252818859493945652703890182427872858577700022294070481660648027600908462271775148951786537275410037681764535321731789325680190586109268818367204759637539068091995950800761773666446917403162727985225039085901314835009004247038115033415276170418851126770488970811559615862498509224136431330722930656476793886900524673034029895189004550608124263284758617617254559051594113908184999131707117934098271533405627599475240738075821797778535766997780085086760979736401775834654550797015982453578928772309455792877861358780979843401031209402931666999124420174299057218700670288463365139467382284368936243678777626684161227378571769318697568958495794482166436228967239912591052233861935677350189146659723873577109973414589467774230849665905276956362161264380778075129163926692604537634518296789282441871763848586662215039935655251081208076916457449996755266937195302300005310854725708170691358496233929031483843316422677287030341360306394198662000925066656842225838492363803828733573725492510350347315797965357650160090357406025918567826373250521440540110897509235727527703660185102326814091175613812541644544085750331842733726697136248388998350458849658659696261894014154297496149386665924421851413991062174029420124731972086386335855681415835455764866449971932160942019237561225347008216525548179355054710186101573753028100041461250915556495060794918821117918246226717915955760720136693989753879466339534315977220754000392648984206704817620754348220831504743612480004049312923656128269188173040328650777085002786491513454100652866472328662872481378221209205744835589634625409242324504407230574639782946529024647028552097418466494090252855240977297048299620649398801374150263952750726621957990215909747231690910872344042567081979908879557978163845773634615161469780381679088460781008047997028991415642263480566153702961960388077180200894418458951656551562566024807655566136308757287750750519001132824680645678953353296875913028754506119516280638955641414934515171898633147523136848764092468023854267069983352146312888929738297827366873216449778978022750439431143647967817338213912600848060115039751942599943664539629979975897133192798465732247135840000581509270958340090588863740384610644460513277792959813372554882098834556382656360042298197565398297147285820568540163474022243625911604507001613744262085282211054319838133934255261529912461538653999505036475401309399208417650538964570155868454035837136141557461558926435150758383526028732821412339124545877241267659983300183612646335260178716311226835377353080852041806370331921571121082135227839354060838336037844575730972011960289569464309053350552265403520341760785127476087988512508060519520403767845822047926592096338395591517346677978888790265335061134101241087647904495460018998738226601155593456412704099441490298894187087374962559614298186424726393573431902716278405148265355976755419607856613481207910330423878836348450753196439220104868424609712449072344022537875297592857058792571469494712248188661895883576211883378631147429806756952336326266747153183306807855117605802413881280005854193198473828467357318918705498246182865504670371922665735630051585077068913603440070606790675055572610293846973594536463026984340488443679811060422866076963126632184639845982593728745367652028871582207964607138363577407870949684489268354152156718156688599351705239901716213165907209960580039186004932189083438786602259768079802044803594744716725538210949263923848819611227672413405439968547398842897005888295045978128768491677830770207589600486688162946755488191853526468711038993888648578585067961185392291537895109075126876586354039210994298268584284534792705355437029769601902743777516834945470044268700477969458346113208990176692444211192592936214517324079709307807875359306750342756819051893105915887998180816619720882471606726068697298517083537317448027182704090060380545580663979085734362071222164593782995076831888684170587823462238306396554275820501915938362220513827477552925324794746915295744029507177169368110439190764679796348491112758878547716572431646996422857195894000173902751362098505373079390442338143300697462318690018574944681538862752902004488686246539019408115747199336868596757932531633923404847742707665696511359936643462353717296599470652766457781385209745981449737362145378749014556976405728428304611767621811950813594298154331164641366448562249806601154169384897385613369026782865258027821779488483097607841300094827622976349331064414588368596041214456208082476695714294634612398856752664695960040539699362015099125433547375723344919333767026065388264994165656773191911011435963889016108784118878081687460890783215834632851772479028904380748829802873986340847419542777470610311162410404492379340436488477506091880748541793523766319655654713995237544544676058419766158437312659407419059688118160036942160151001052128134150480012084409883047613892953223305111758334776130569457129465373820538171938273752639851295611974235076974865779956830754167282999057149938124295179452952639241739414860468807809210219060896014772885235712637615829828737050547137090478016051828908608493936208768938678855625849368374101207237808524349272760216608268942789572059482993979665473517770423708031642294062000393807757669819368623794911284299396938501324517704624361659787504775294500348992620961226205801308089102746291451438176559800456862705487983321612468244101811564477688141574480549376915900095259158013003350899852381736444657402438218494333532683083486812823892858957839730041241602003042260392188581703016813039945234249596394000340628319818945001542122823985956118916265928981902985706893157629814691001300243668448998872067690806271936617993635982845917569673268774995724537858805840819524006813774983392541303915893087277518401122759889696793633482427138985205281820982194176405785404916967681082295494207408031422206195677564633824745049350008140324116438926354021840551106596531352935352328422373056362906279332880111697391943627111955878490355258548432383002105695879277309274609083854961221098671154116752281512567388594365753339868157825025039301761463482333234708530613331689225658284002800436102045505993877392136714363647778332895756253409085592253319873348072823841535205456429767893170385710325123754092092435039582685283812049039959216922500692309567976143535862994765263407701878098234527096597815213220185735760107779031136866687130457548297076363872705769574944187590937858732845337241421281497777064948873279045444351474633073550510149006845112115022419138856394700037705712364692429664105718470000829497927269430505415880514659423059782903211572367062404050255035759831755151897533679454530343854781409411734345728492798130613799751478975884958755372246323938621052138924448225901035487978297732067293148825601621883509205360401296832390544796684898942501503486108503167472397055901321173989573007143107531557836729214143222487007036440134672551474168250170226144090002610291141778802457888498199648831677516353448949054038726588225887078731514984055203210314871546803366655068362029069643996756927882892115722048432875358762093623737095306868161685177830693875509777291053273776416537979237991455665057065102550376265124696424320956021967177601222794494341619221983075310825861136960908872582470629401142040062737045090900139471199126494270483920094247833442188887755545444923371855737555229622872207170279500602009490217378833316271337056198035030554507395434721528309250436603793850185385140173701181189171887587172728604354514108448955360077608520271742939136626559735450996146873426573377670728321303990395165732917126756164656971219788347361783673698526472848527735870628902945261377952165842009160427053399948489094181395049071497968043328511709660775006007225101883200312463279708031289394668519339471048241717791702806629530617062918017444695814481362692102794068116671526082737860725802309449114881941569903991132264826819807485804761013324448594550008079503733709691886748147633619525056552785023681728206447593960286300578461828790189871325070751422978316408178618638945856364076949638951391545723125575043071846249089808616194893023434903488175740703991863252997808750471417507161757226938458679872463340029479791206971783335413658400420430069881481876716063588979029042454201373099992296478244380509750690966275648493559455837676056982261751202378248353448326033826218497839175260213972200918356464254140186790512228337042448182744162688275889456571805414182555044228098989330732347955005088584789125115329524622792525078256021115831643574221799504511716846555056488564880928370665517351091922370767350584053884013411146150548253475478151197214725559539018548069589509087702128939271408148041897233325526472969173203623080251085727804757614655728388114133336958085786073063175453551015886211606458989415526912571775986595187898300318994947674653701203094932337056983513669724503567781570962930962065374570473883914231759981819267203855154591710008275727638906979827669924420815448881737405512374233151818129300004028404053798132472225934917609924572047625374021424671284541482982527213909286805592098556698087118999036615164249385020655255916141980753263938191518366812041807936517289036362835863864995331894272793335422953468864343301391473230669099930257148465928395905953847611663526699163840461022478418234561154427601082402029516472283549754672579995076554029250879315034071169246002172928158246826954082888059464158194092569401393091412221716661026582146687579756059092216135223681189391726786803166010040371788838588373968060896661970897639180412808366903025894870780859375925171977993912786055237458554867487556587934159359687447740759339505180455096788762018055392251634275820351462127605598586082452393674543316353865186812152420399913096193882958321281927891388651744209756309477327469141657802802868259230769579697629082694906921587987043245212453023386444523636872042338245647696173892799607514038184500760047621035901674510920390096474579565893611404452810904376332766140849250046056485582712498193743395161657410347024903084096058582410659539493874896441018915990817878184618272356214774465035895160248989081737436504237932050859594878064864505168139975092709669258954237171220420999815644595070184794882420020555888312163445895098815537938464045361972367862722777472382357246493307416247104610367534926666546895709402786339428919551263285577805378661397679767134334313927005337723095183111876615958350309821346532659632490618357551579354534501974057644242003810340927356234925802834706724597221310876900293105428631224178142176758505595855365609784338914758830495884552369806476463171461565755725781149179083773127138168396713988425211112887670880707148080385282312334969766980562994734404684063613839470528145953854666361204966348308447600062509130125853833929336577591352239420912336730411909793432631598021939094168926973228111453296974910082071428745373428773348322785469824025669666130190011543671622853407532606960776710183387728887479841661041503638177791643391854806921977519967241886971137959513268506536987574349715578902926299494339142039363040012616089655875406693317633634960294231397657435079912563752963586496934338757643151055699108884356873956663223844898469594770094972486626488529691954319183275959957932091188108975981741179052947002678406439460660665812591193655971785614078320465555268162721308798791028205285596812751171362334295953069151211234644043690646576397735389344840232523904664706802389959855073476110238037926250668558146552114275835629690534800729147269705551096285614463152878820417286744297034788245902328687650645386095969092588969923127271798967016490769636559775124962303431001086681877866437292208885413712868772770839202310105481771258434509948352747349800927555371150186238385269444194097020918641025262602344383495942046446833150552744113430210957560118817932757002212360948215353845844718442430067957071421391066699824945030056029103311228221976608054626651223009589262302972555888181739971025831435739594382216670759379762469378009586707912030747577098855370535056496871646298330392090513432187522010886788284531890951276165077961308949281718765895130172237659432920891079123369869557115209697012475871536418378215536363114748130386581593081813242909609561418859863184181621684721354602297357569978098929622171690342659242092467890679671472898244900919298592571319073688476937369799059458346898172818617124785668401461677409402872035232274583745557008930428805352816454964538467481742994789094741826224475748680085373579376820436222675231929005303239617144432451267766337619509517170119376566003648938608125237278847630413278975431475227927708533465512207069234635068565620203390965538036808272190182028536741029734049534242698672738131009075938129628905982937927888587589552313760533011850333730432791678857993405566196707332612924186487415644619141815063902184663481020418574310541211970105779515612646298436164573916736164334364701367611963032137865354995264225562518352087675738118132949927415760006044725400820730462355021015664553695641830946472785349792242448284955617297415022794081395434314279170879276807168690763188579050193058431500533319122857500823071763977023229918914150443251753044156363409739177103278664500038883716043271198693847335936115148594467514371000148623056484229272192571891202744700299653148746720314499713150137109419169555215022252197001005716873178209565267058376104256063188343084547410518183051970119102880183960034558125881536211435420754327752239902961297808753268215645151873230832488462850257183916242357077000412225933306491095940213695045575244078445251662611199679151281016784229644724181996887402499453102812094169611839080516305495099321679011548964806161664669659905954385119677146381760113308703707589462615950908105457147915899115096852059460476359182157454913361590200667068971633161335198806606355900616442055352373329855369842890439076926415408693631353409884043473334636497383736952825065240867103949380016311534050930493618649052555851347596297066437667201056459620025738460340005187034317621255654533183663138453739093412310408378869629431872911979955161171692881787088213864127579707021551013146317652621155748125853649826726275648913950283230398055164688382907705134417011833069450770388989992983466147921434273996085139861963486217989044794673413268565214642177557408053040094153596566065786316507503537719407618506255557627620302465195919675204197286215536616268229665570740849376779676052547520918368002315245195242597415053587344217453788599664144861066446104920885595907264942158149218768490473133019565894621949418362150011687364531911907910503642414201670158074566157635982246406056428854412537018431765995701496467715600986248349438978422183554856176125082693837654758211471268027544802977155863287467906582002849761547901290853735057449614052577407492605623136725982627519786218116357512125418823936292018625807317338013770514532040234288165134892349857864984798312015736965224564346598065001341754711718483186341140143657065271676549344187085204396187575128563542663498438839697583144017526369412961817260466593121374046021522543622310320716035461834042188845328618099576193935466247210563625512159536275274184163771443349738432616155059419443846299589856315576662760877577861881416352055247152785903716523191334395541556845992766901618504753892239808121005700226104813185522879166755955163010970600192813570563881671077196939113344800984783231313489576692719902280264398971374668556970932419344460493174103446086794274457332253315269129410336568124377102610145719790363603451857784277569298978491287046769786357842380426997295995009654291244774534440652904002836609376194097042910605611015840156246682814247477891706285775400935500606983590023648308920413654952194564926407784212930594004803681914830980025844248738954398440408340896274953657799646075399979946454586658378133761446110036631821926987636800003354617604220174415666166852286554119918744695936112106850631029863679925857742853871422000698512151449524202376048685287241483516927387591997179170571934336284752176308730578902187761681365782090772402708628766804717722982276484547616514837263942293890515800688332412601316903305417222174438529759611747373460063462721539595143352239258932211935370569233616032861484586482668266527725640865377246276248399155419186726606396962367481119552269082381646378081092679254761239914832575601557794334797498190618621286165053998099063204290697674683938027664934943270606611821626367693841460822344840707808885952585495718375406025409511991043837832942942779960139288057949446194147258571006352250645181044435328285488599178312648348374774123271408812591816210804561904985777613830861420345582747589999337310520770196209922953067637186906196160976894303010299097342009513837926398196861159819912750113589274126978412554224873444445465033006193677043613485675672091853677207137262534946719451667391538036978004453007601119007482786747010652995939249231649250020456632053661485384169306509599177447563451804339469881941442351403304196898859579933360266323946375577175638273944254441577636426114780398241129659732903841381301676028735662880244563745504599000033849847126228943770093555492781536694177985752657376925308505046958213611793955943458581852764939821419910463932792068464370891001173315843089335880550657186530924652088559120295570591321417991442684445422819248175754258921422134387474979858707041826750258017950773510776902335948271591903686626367578002456921111179575210447069896601926968599308100157675591467717559281480440535991041528274678077152099843732807214988449592372830209238554275066065448139039327274464204212583629814452107225631953516568268073373112505102248614807847092529634044872431700820045750779035684449920524733778728812404554808055875877916607476496755306909169407862581105802252135128579245207946431586928125115935721609222023338842764413270017727441455473157164945019371519451826811087945528390624184040612073759511993744024953712148040927133959699312184112004288866510934765271277848900123367417115991978677372396249621173735091981442157806323136689998418109164554409942042805710813848499734482634538481962487550944916649829457386371912481670842798836824821792887500490461788052508879150943074188200913492995519950276280173630453509389938616771378131558509303372087238852857253693520205893529918655040738941876038676560810668760812173240110121916521903286787502927976699985492623518355950826635823060587721792395029028467019038721130379024771949009327974057549954287578635906744763503328340472138817917662198673208598517034593568133971755276262350671519063776664239286343418191294911991536780416245621836274347734926567633170284862871785429300695075890516100195288029826053737853517767023508311358550922051081040550810346169121518393757118200816824849630039726861313283870774934086614046224469825843501144524616490431233473779296042509364358310797955649014770079060478584254512692201195491662996498944140510211447198585400974837132512113412017853883081747268445578560318329430163123673924965165427589550089327287388175411389887383066616507233342505014974000677180167095709282441696947482787761612743077283509753091167545912415396335258911697945995209100861352565094463198831865483884320527604136949557651187312196138001113082991799020888960504919159293529284954426622177436006127264881873793635244318649023191140271094187289692915218337604315080925043393574914203227962654163470763984093969430481696604846661663009148715021152289005503639827573521108084772583506783918290434058554943399399001014831047714511675549323218822473025055332361490624707235787080184835993853750893673362498218460808732921213044228646347003068455659862261139936849491741385455657311583241107233607827479137154085724649572528366989473682443043879105038650953871566774011352857109451799077506193855383323031925125535508415673436742056276131699858097608762268462547798329615415633085429162556606686559461854679121931809388280597659407619814162176825310751712218812949145856398597203740582726076566101289316246021762720316971871035256094146201765017967204913920837228207064726050858605466428293638280517746422229270780151245893668333032989901669250138768772683952159070937562569232282902764256982011482329885256982655720122416410336723547358201051591363387811269065996890183012105369090814319855977437907321444057934701008938707471877609247650354326200721349592060605729262927506626621745537774690552739482753889026776127576178980600641576537635095854473965796762717596646968530485512330515458496284292353817234998066051061865500506378555768290262267840065495481012644145735998655643012087923705390722200081818085716802575554640385719697391682417683989492436132103477937581116462396884695671768231131300811516562469876227223471876418161819454595593517330766915638611620989757194371004393651287505316635602688493228078763031298746558847020675732201357571581947572399101980882877125809504410176564105818956779868320289532177066355239544104447925748317119928233880747933120857619150756142575947549511824359527571653484061279944781786222433164565562925686448285900812465029871888883437074203479428614719923958561465153367645174433061017735155919742643581336470792861931380388255760318951399092301705710617657273124721409883442151974442092700262985781397516890003387167517900437547657919697491679538703422371373267412195015302271520597375778730427287501744963881963436828917000046618513991092183450405814063855702994105958221794105740093241783943688771489352144859942750733439535361875337810754232893280416681480595143640681919048250548907030909807347354990748723654225556380461190229573174768963534110752982955892007380198306279811692363550129704610201652305179877090773488705077335276280512776677540869965466188521534444829861931217405144424414597969593961621031319904733780602402618831177438313802880325028227250138804180740268563722694935104900936556946731675113089949094787362294690645673986453734781238493205040575280485326974747644503000643374904950581959040971332959812173446614519044514096531254000548008107909728628700108898200534431644673205168768787997657820918705480225428010119264734088751713220713389219683539930616476467598448510954608839485276310046949078257023996488953273886908143081658682985152949342378073469832428087878196287940726008095888606079655238901444463857216173974170054479559536912527522975650229618633705913293987908964802157126380848739819405440369221955044980494936733826046917037000538571430394766733233241728574228341680994993816765905998135376217504375945581997314906065365367143400871783144737967684034845639274567478090315697348391125378290233560776682383069915527240861439998049824475753438756183185139630845450995288110536527435379866243156025621582182904839630081967902566063122289070623003060538020703474615656839911215541995125041317655198507411384649897071418423340788897977446372670771297972939877230957313266956048102415203465361598043560170306210660400818941893591521769521892421908276233159499028687017756984420932880753477223280662649091561357125739597897541013890311135744398460408698997554396072236329102079077574700164176559789205033750976692686842536243765642331848940501831999037191549184664052977851987902627202264569379831405747532780480587021373258867674052549896869505622606030954857723845054250110325298205290771605758220080365680803863447128438507778429364892933779792295976992487631204305194954568970438129547608468739956218785157575874138333208153747366848163453886476026638719309585967399895816974396267896581860882579038747577781824124022887673223823133310247846702882059488649141055068048664273468052743241419000034659407191158272240420949795322661259158955580358817675723182668375123673976772824896884465195265426824586359424254472981167304832550151421356239852900663868084988980201081272196403269901923692312503927451816791948571636426459567758151815250717181161255187338460644717431264170579479791880813119938248442542886282384589619986703910887415397671538614648334637617070802450903809918299277451567091393196740262257458077960366647422979742176165792389251302056177653994531405300817999013084696694135583517841559760298413638502187702571136639347438602506758577320613639064718877234063939936110062921265441142938975168061426961789394046287742977322252294927750555900466944918303236123876130371120316867053847559939281547951387971096860219331302146414822474198659911882561111264473586740124887505730846465474204813537784183119146418522646910853587107994244176130754391833710384096825919208732525587619480007777254774512748466974760264689676644002013523323304800875201608438987144218872973561319353616516276992785526595268416277931908718394607799502041971454079883870982348311100859392492580014556900359854997267066230199321892012303941924375027534989085931429244034810687863958086366689227902195146667028946715376392443778878908999974802704507648432776890547334258669342745937858239339216477484657871441455982455666073014993312437137540456078774313560964433017875959101238725988676832522617152775434971356510521544465862792385709833662752121782819697168504625270859905616645727197989760273873918990895446938726130489007557927221663632590791473593471007594369036653225533273272710483561114839163630800908250578213333887653951357109484960591875298455242805752265318688917783379108175177632658103559298852388817692084448743688792382955573608133592981734584976469933767779895894292344980205085136028530804521895483745908827937396335551301918997166501270672686950656419486489821791701483461972127226155302711000590032225157796036074678657845115231824239753423141198497074485159749602254344131854910842627124067167589694330279718994209273461259496738379759173376714051235307564552416127978566518153061344842859694130995872734011925910673753331420458451930354189746828543962650163984798888155328942378037172128144580892178600568078168430508691370985219771617695623505750783217512141197417623773252394858448389497586990302250259950908567266391728908929837844643127438266000700379288344728585402427790742220844243937099946268598836155903195926343632257909333384852916171936547224412182309942005644306222786926724041309071869323279028207654282443786923704086412940618864169438846317188667600668339772520940807825132472491970965865407721182055718386438706487802733685532138131504827767179187764671031626639392359890520548452221298548048062104250163826366510623105392339749925958663032142456914609774873253836140225809083941049375527526571324211841353835958522030068028825957215427335070022954750757624288043390102360365221606504673645375453474925548261486420192160579468061188639779273684529342885113132790808097819928153920184267223227093424480795125129702857419694218062551295109065752446922125195647115467851349812539606364504666510776662141589739326627391772187176115249438423555575309785950902086272567652214384804719888098404667951014710846075530552606381414409916208697363566140795788180615968221301283576734284156691578322085543968291117263070784844448673169882297593874410392475660264236297001242317777274003634723146617339076464926004821535736782841985197647855578430352769001103871004043979976150449889529067084646820258383126098929797347982277050694091823653053096256125449413379545823405518116150127536503960112642298832781688365952785709568611856524971334697902934964260991060215549383296349875626761825803238275071679760811087802713618541240578487043000108057680300964572183724120616746824076183501485829869877149062403406597911530280919906356391765095210565466113704930130115208874855335094417783455860632740152459115778638237082036636736992928453096938743306652592136696185110999634387768324853434120781028797874456966206460425008491243860666525408085433356210223674661396463381858389058898567884615924462382226103586618317267976860748829829627784967639505016918480245956783227088179518728853514832354707578121368831083647634994398095487423304875057410832224263072200492458323697442039319894615224336748651629644314467741668679456596516495556390958657163109398033961510918487438387880518016943939384528280562844919332297777053208164657079251634206406117443971949005215072256540136847280022837754815612099695948853675676020613605910987223832310758201210568127142350215908242767061713241763212889746176632819196886395337167583151515632263237236371160543474420803452707985455076758970840849638788211989206729089056157084952032280392754491538482098642955587892238308046356077450770888999218082577870351311676904059062896153179257567973113829425895649478492963978998860610235863070620475270779251672707219025986770583196601908456784223510537083961629347397395725292275092817205888445198903770849747976180926616777817513119765458231481382994817080717351556421903062027081070074954679515968546837200876941585490321449489054048723456097596325513439752660519351879917466451916226097934336154087626096380711142574888583901877903227403745012393993789496094063066388322541814996940019580638345606596217692242368497202222888552328007976473089444836650160517332674892373787972906822726311911506787903741894180397776722877077030970766254948926477941365573585311096786423561484605470228096938731584145708954947982337063312953543566642809888963547229860639064948300425160187729344442596456573436088995255583035580319065224769429855048568787602962656536796176417889718925495145166906308044604110882482141546673772265408505674909331260195275403224933128498459141688885196682608230569405978245088937758500689877447447107112494341912947056775986742599953676886084782601137006894507922991292595589786669384906794029159597054918250286710174688957210659552407564813719147212504688332312092963335317392661376936085927622395485485642316428935184049789884727354149168199653725406312774032205485647479576039566743858413796273155888213650717819169811273876943585232245574929700841040063518039653378022429935209510112549569040367473196008840433959093989677267236911007573376929785073108500666101902106580430105415260273842854216476673827272631758020304632326434230338410331552923759055229796847042322755381547668643987957439065147597846037181634993781986698746609257333414671515094940591558477874659174596294644227359440940900193583694126994356061095757877275811620577838944944272840982976369408232508639091673728116151913757866691183660231805040207555386224803846069824601728224005962650841752434561660187907240854708775185458965145662350613956516848044105890025253397952583644532026969099968169400283689696775511163065324717101859397350578244902122714874641618000998238277576056777270041684237615317039696876623511024830803141062209216495787457367118150710914714565083453179793512129201782410925583894993787675409841364083851695839272770288250220864376367467062644923089390324286380030824809170040223678047855472668805385030547189042516848921247070211800381780060609020348863708734558536466814010665636173140081640565193090217672784977423544894657125899571677833520575845530086271556949568187124229304018079227385671050453763355069857614240869508431047156406578979288491129506127080105455945791738725892496412638823883992782926645308400608144995143980428689913829965610842576726776497309471443508476235099142449853756071890142807876260400194199828981301574318071489698720288660002271880521711051407997670952348863085894617339851367568115516639797846304393774060573825835707684101246671339570907499143790040796426216721506971543756695430860743713130181396938467209998534224214082258252280769995420060021676514661977685309206002223627401263811031018408625073544908594463451485812689904619096928762951040239654109044688696975796495631124159739480555776237653200444589423792362512800688510795757131781537674143474778496791693739016416249730044590748830037137856282010011846842567987007905875423645565826210711684501666318545445680403306661930836664640544819098613243628093469061956014303476856289852313368561905433787031996603904741147395726028125882373333491081317104817298790133373490791674562706981016717439054292883057136890288002151631400569112523880324415435229271943955996048975613235858032938285646294765769165905691080343001394884720754128786073491252704720395023589223423855185867647836541540755450514677608624280944025270585689806812825738490026409023021801849237864128543278493357359691407602017750578610165639210617447672525797327285932977485169487173234426292874701854951397832885947791819753215835435504555932310548007278923572718456440630349248697219943285129911504756475802911460565187054327654432370686272940634549460171829474959489974372164018917612621470767029521947540763483895083736485856826829769309738677732074445444472459969464134068132857582186425050948909040145106379194280951392764667804264764050305258357730714955699074075781232959391182727280176511661624202582553803221417546100641310080581414644362878657593514068001440993876828423723327910447071044146595516205951770440857930775585411045714397888888918389067159416479573861123276942706118318774764844377453884579421731015337052857736930558085780784887655740450804162503834091287313538691247493183875551618139165517078262504403194812425751010081672034168698713438864393613381668024270486175125913362606937702126367282216235530488767763626186348328402032497093524929785811955938004056993222351410308808082491849201630620835717601594439581578605806236695618883060885763415272594218037154519928917739927237007470522110919742706796821193226662755147012852050676274678498622983880272492314392299224891805358168810147660034069165469162013183609737124555339155180545496240972137441828369218890901642108317008939566440178718243003785923969966554669721752378088199111103189608801752885278872651028415089547913011845072960925505741939031156097179478179005992738070686100520106207968833976657894754378981748277012897589717826303582916210460329992569897831312140876526843929253809158200157512785784130070680684599900661615864759078927173933506256183599860672974990255521575207208529489744011062502057791438449076567697571091663883380191916586535536083597174918656289647202159156057524278424934907331372016957327575731127388902839688803779923251118028191566129909744024688596889070814302019319220580652694619737330638503690750829031555660032217406524535316361541972918054233295383910618221905385188835650977351107525199218942141857195811876920350677615709633019555800798104964282617045828987232733268823876536059086013890260350003296300176547659168769683626490922591733648140489478690309411577234505913227714936733731799648371708222885060145563888382327033007601762705079716566823251250660405338504213263823490249825080790672930385147847890106762551595113545585547753662652787060591140803615601927967240929927510194854243053800613762248080906696273610487904173345513872120856260739332669897019559182478250790101381156959122888541307747143824119440399766625846571286633594172361646535536744384228088253836159672251149670601944087344020450190071647407650336648343073861459157266458254257311304639702063925264780770506623789266228993056382590564126155811333341798217691959468608925712045820589553014886653837548808968293177821467701644229134014132741140665751025809306169802622241865590301113804918755464219097436818744898115443385046574858688762581389330056790359914164623947667316179503480733402637350776241941499657764109714523986057484828634761569377747339349997900700262367058201268650158423595581566865729268122379453997306586610422737878792175660371924224850893706396481703800012915417894087519729784425672878887265843460148341179312796081371394313678204584230917234960108280860145059722286330885895959111724157483386894748608973019754146577136478154405086577300444245328361232931240090568811217937459369609753888450996490362630185415870772888316770300766909083966566535623991602194508026311900180409296928343843408014466156612484687163237435197388451683538188526897301993262840547905366324902976780808753871981087017361479314469169849379371638094219277695385089486789699888246056604538779942817666208811588765404422874539517475718474074652930911002077632046382877623778806348956633546812093304132961832449888457829304833361542312998585558948033418204276730842240008649358016495295102527729091525059908088227819291580993822721641777602724416174252174828159883216763264906506471685983446421154614782612732684652745717269948634480016551710820604125704852230167807342090071078122965069015426854791509599135048931098295632619519258627310926387146242573165957787804184526643540814988139911607042761946408817213533274713877457923995567837236959421110243181744044069880744597326153865640413280263270784292596361380412225816333805630871529953872176707650110504943290542198437884183437305300618439485490382696540824718364008880285953846137327219458254469490124009475725758561109854657619375370764313782322814473197642908067664395479785227129904968643970405247038380323280553440543545738712308607854313459166656788668445285414802794897924556558642474176655619327640216559428427634317056233586807441624672138939470549734739860266420994952721386511220214756179672671696086698033562312212928131551816287335671110881071081081409432778402009024661125270981374140857070664849643157029742556249122792856638303856103933661731748925911792590778582572234685835458663479671629937133177200277909005278808241735563488333981410079942071048527978613810668167454308997807185071817179993321922400072919822482671795303934227081345624738672878124942260540473972329210134962099394716669864957644494011343203437570867099137814557761423794756858722277289490772545885611561449591034928371671047779394267280104409673120047161987786306833113958803365544007394234982424285054258135960219118201523935578455671309339425781587559597916480605775815030393622131430321239564492566301489847790008778356194217607961286845241650906887862531397426997628760403477262193828124977313148537319262357633145820313418256873799863557845480032733821517786335723207012303302928540343781777116426693773243624331988420264960338776336565948843803143438875524926669544337425830509704420592468840675930390992057252685150766503771062053001880539066418926783776862594452915128976602865040927975926754524017670559026423688804908649746573780309643111686076152384543754116901806348004996878745023730651935911164123014187812751677726622593453342069680455029359370916817677470737953656313530316909569794379003306598852756653416282126828451828355732965033427349137681226106971103019387374268378262588540222386734789333783928000631121499679580739774197875596756473438892712913196097712923915419940857276043502846857339541461882731447010436206372774291367987897912839868786688384633914669043712018716464896539406496091190264878917442766450116640372742273409636492562245404426781623147321091308976249768227086299567893265429197349056282408605710600274114487114268249925340703842159295247224238419635375532967763104319113725486583088515720729315225980775205151624134893929140723729436406727634776585417882045696128170906151633575019237225154521740605214521423256762157727817623519189519348963768876671751084920528890923728173511356282086444726120360922580956068727196608378110738274938509098558939987519892580882014491747639542483962732811688935092920273345195782877430453528394022478384259212698082758299379231428930425982295377103984049549905014487599581194433101520956222268067413408378233694191770041891835063821717479087702664870392043790883842480345296996495207913044267420092631939368332067888223018173902826374858431529618836450849227775942170161754631367941910833228245189886878896398558668135618059892225256308705707033823428572163099794927542488500437187631449067791663767762074296746740366147320800182012856872551851006048634545830434718129148169804145737872484145397737841439609393692110168202615955995424012210121764241295302755789763590865502860583606252156531315479549860891282405803608667299558102843247235133492311582336680454498752751989238946812234133627479244303225625998842147817785087060826456538835717137901588328780207775838559412282397798003090880226772834954823299927477219683837611803156429726373048995249256912729776136301596050879570917011730278126501338209627187855775173453650412007761369049340976199469534576165431898604983654962713773711223542127089686566833831556756826335787681524828911453818059773411962756337207273899453898241503660838300624182294897395242795901873987132322248761772543937937481049682783677884559167323321293731568907056083373265529301071505072705357115615007057896441204954869847427752324926784429663340927855203853734264177492972990463493405341442704398051957160252274561309410945904617451497154567881457761226630679877127862130735603012445720361071483312077578467458406281362046235484169473090404085556292942421426236809142338047201452960355770821453499115221772141623402960019621991531655074960366075838440999245330534576676358316583253129408340156039265822548067448499124239065025724831351582138074821142432049959399809116311743954289969004005051399836535900043689108000821493493453477433062281380808946556953766079750873860941531172018606149930689118491573756380640880345524704483656947314825435455346026112319320782581863447495677382451416631586525971031526695373189337724195019685590440530484271089632519559463086420830359164138726960668629366474271939728272274738611077587737627097994380759803897374106478105221813689760813892502141366284971114827286737924958061078504198739379989477908366685859976363817598493704675921305927676165106415389221434312820893150360866651975545100449021784710157624880342502622337053637833939833406218258953439986682558666746007407463356765768633169810152038886881007452458702441789692047584636693086133932885325928058657905508425000511753477401517617459935333136513009580286982152953976016484628041694980285194222929287928373492186941745434887618870751006074011931762328175476646772205868531213787476364295723485864542669866132401683919882064044087814054618448992431587557774451620960624926568952800967560849450286453589250543743468180735301896557120701454633625211076986958196270241211805092936422247056723735596169977578777276699842136227739019704190458902179867807579031500579288024471306769890335480738340579009558128392387671502158659216832424998855489961579684525112051002983082544887124657907650183980867672954850863731162329504439962254559495840406927920215124529467065780673868659602381797761039443479308475097751937678187238684251689414733182093524515980310758120928752820711785458664158336689488930066612198753865761967446847314203808707311076380958619258454689895309584502748304790794226546431688101348904888651228707975949317789553636103615638008324435483796024024985060330583143568792458356034329147096382572376564247793151353363441129570075203427844035654565156573153510264152436599128458850047650851301550989749559164650685318487089961809352045809523705012308755563498186451222443732082281433685729604517378812710789732756428288426056478159319613308946687737989536932193498989329049921114599012719455706303979100454949114292617473105337186285634461217741419749990334023878167159645885150967870930607030750963567552530972755520357746579077777071904066843656696813458609314138860115352539476375142974795387937662221548400142119680819498976243466192787143643391309841384373717916008410994311271229124311843762169955592485979609961272421698007400730274606796070876259394766687829396123523726007538686483985634637741419557895694291360151025481110085046429747866695680104633740495359650277062101024619894233978264745404911057693036079732116975727639882938267688317654566150599974632748279620222617110385061417908723522325652696806878835366102902015861943414401478274316921904978390459646711331985668541141117782199277661777506580903619221551488155209343805618560784055841719777479416494051686135362509049854829754424166209950400001160571081826844499035443854238258686846035454848420449287158189437491833794392418081961877690141950448125913650280046972718303449055976983480538673027618431991879397326384002243247058405956287736587477822455093514863988217999298844023383758161799951078390732233933281149688195443262576735171111875989741971821062374061476360898006114308121997121431618617934542870608984298777041059012503454748790669909548399144517417699535353113371840648460597099729797243078034189061299046198312404022472325411660888640848372308945821129962672583024746678865770702450106416436704789256911561550827700601476683651679198955265646218883012665687536568071005254327443561625713920744848494950157827750865434619210499760108325931870835484973802522449735162995187926997447096594395563498743579327865069538477390275205108770849198709381702401248668065545192626992858522824827305792392513407349716583779582089434928812209963157603640206534965320347672835543913253814276589211330719045590764109805180311942504178577758306861374504054324115068545734524101865701402504957500185949544645788843350186320146990684080919976950110993235886769129861076903754527175459020873034089364476204160839408117989498230002568667888516124438857480079581136057471027371570151782162571471194521577158442873304692304669897636865089745110191883976618610509570495546731169148228742031273062071160860832730724849194863450160318065296105607896610900776741689015226617686186521209275429581960382502551282703821901205617324437857803663768843853070982714591924433193401835635837984358278196239473957030656508396087307209238718238995191451612511948064418683397360972365481757711844434928495325414715848184873219605506429805696206242773230741547515595250808913829982977279480602381826879094459451086767223431056464116014108491543637708980801241032928280132643294744308304322942821176938813112893853105117045650432467701118146192671918440321049735118491874886621862231136546148594764525381091047658983796923768358189127538851867741782476341264591862800575664742932426364454403657584154168415009371698941416934944834605474783176048007959617522875971711329118480238680802459606085765694798273469850419678419626242940470243670422066714361290698849085647580370171809522984983965109384927644184923454779943906791998236200770027059413727755775059728863613013755572318297996028585561122684141282624771580719241382625737312778338356222969338190263032101007298091335127819362337234274736941144427333607871870052452577935688157241154002870521210970343011618542589412949682638663015908683404066982288125342777525209315312912801470146145907084273213586269154356241341908044213409248971745934584632283702718885715167189727115847678160403320235748213734202364706555387287301635797631190810013858634810238075330932944010206592573992434471156982193338157711575429062453891795732468617740837812491911516372035306116711909040872659867757400991676888244106813269889462016973480756928055755065424054949843224968330767239040857875145874376076342164010373438195028748700224951652475085794101487983298059237430812480171933221109657200637669294989612537102785438818230612254604527620183146840625292505824327247527287686565390651655766060052660894504764149115696600365649508400350000896883027120802038480677108311324275660620275724544864086974624132519236187588161497344591306132165910520824659354767132068218040379365635311927487526115563757430042422715817892108725146920577456280329522224289225485705990141377325693185672049011214277782918611038436675754651206333227903954205920439688877635629808821032614196832401911316114349209459258459100497528020821674474886361057226279046494379424648436064717985216018518844354389194050768218865255119545229756345629029081162703686335577043700458118327210840416150294575095055030389984496404584269473730988238660044487479772884117420041803862905634682542173700973810660369007021904064227593733414822727919089612325390195915237508683710721659223705264541507398061191107458364259235450218357112728441399863260694005812799277516880355248751518580499468749171551939210802451364204751303144271619561524943958778516169245873227595814778628286988104647132288505345136416479221908111583556989661117126528785088500375752046516250959146673423834303234084026482439291259780905379213328833230723191812118938857277228477707930872849339482388809947393772945024967743222358749998176169260163810029291353552050698875588654451801893930189399651023375035394652271994053270713180910394771285089352296526646687310008080511676285310005968312955223414497972795532494901338044599024367836439186482299683818391091506562925359018939949026612895323764806557253798710292220454214812370542355449417917438073979517608001080933529244009043695413732926741203038776648429386139006627732731086701495541520500942018303006947777624923563625525153184240935829950603525243141480586235423553501158685698631924531062690256121592483128700043875756443325656731738769508334740619579767845152276780023198383406288174855187379888810172200379373723121842575757180691436435569197301064279107871666623481312894550986236498224416196927725240381526503645492942512001710589396409816211052052971400945634709177629009505213303111537135508864250301819296753295605413313938532053514853992916587633746330449569880936266442883525395257773966650409571211760515925330643086219886228184447106384989868974243211498366758729167889554634179816733533021117069264001527408032631811427609168745288619643286840092048655824117191477063406076516597132381437690017714873390060600644769173400481004623946027593082343108530795625693150583921058848720838989555407875551989398679857380416653946416064574684391743827937751184947413031768376685975370235624128041063902166274387544470439337532225088837209619974498816644571880616694612775794528796699331566527907465746777788758741072437290742768833349746483037154550538687151546305796297078755440985813823410000739854629482710576376739164200392099897201571375701079408623528600565596808797387243742549031600445206776013120799720178724707704555691837989998407807395688001417713288209750640748526064846748756115698746307693680185064710298198791441050701830696524498467511896872896745376696907643186235221739124511944877531517707211423962626988840986143917034421116350869257793922706737468874601640081053934108228790121088657085545513934096387689293143523834030179804000996132521827304363369535380085996002108130471389381388070503860512493114656976589053415144466830141467122493554354022348662639753262919183737315152076299926788624277752382620154995257017940865560511446736109854769354459198325276852443863809106913966041511174715567476659667895263700428028391998719864626915527041486226809288739927823344570152082469398179943072008568265112248211814201374732518388202378582929614393828016345516863461480583797871822505675962084440526844085356325029070283127299734762743029714871916942266906935544690251639721722594993474411282300466483824516614824329326865195731265360519917890472399401879438455059850690260793270357369683748476096246451752261130055716910821769332287581986485839584955101781195387806969194476828739317115245436364245491012630365870622429851101279666428684733133091069719336561616270475994738885472663583997731551603716328144637493077316053959807546106253968305401828281793868190648218258002579838130717380578324265575151817940592573946834046848253649893940242061306763363437783084162009543016531472426293039726749808430239244125271776821811702992634764372112874404222761096507082720841532904343093378605264235381175939815750423431518707198457455221370455004054920052507231186268939113304400909923215502050957389380067786575083543769336099627624269873848758457347458642138781647822225614684191694664705836458384350038164031080713975433485078481349710462073298578522524023161031875272646926380447000075898630064740663627032513678404614363421204186339641101039261783041533398356917089124770086193107631766130189631428516848385745618211345703095789122809814953374183569508524750247505304939741430027717863627946033944861577151130970988793600740203588355720333299091260114558233687937595344668590677160600258845026551657803357196438393883369986654941815103509637863368161418653366051502476623991491358195731433669147707674664903969179448491669660847091522488977381624186067867560692719552499977800026304366924544235649752613396926500815100468324591368073611856490929237906201136373412107743021923113649279647776907870333617974363180892804207537868843734833807500913869774871645122983702349737717646452995341734985724471240384881986582771461908834372718044058165747231701168693443801351317084656990559198186378634361311023905258099829192903401615748856470133752205780909885301347576995325058020791764126755309146234157835095657752545102195960154369030935235233750338204178504149938650667810053260264851888230222240255900156123870142049147549207452930180705927941766064582429947575539177824613394554323750462715099323525755129544688027102319721548048737794498086140931957992315985706175685223310589009802152441949980493346505308797236622115601508679578420375990570178606916758486214826875831005421348234363421814469027490469409545571112926493506971932633301623366748011955754787785590538210744253407678811809942824740998963257199903477741764992303759948958890952715695148181609203726219469803085203440173777360679974393000584305420720630051483708588534035073906832065856766638914470660372512250985321409922898349524428506224513626764938572841451420753631287403471135124710546856129398348679732953835971314296089798308578647062664103630067542149185944233595069940354012268207328709051802727147192218312554721325598747050961401591897461618641718874179533621294813949393325488780074093702833920190540025121253060816297826321085822822038626852682448695113265639756458419214764168447591231448290991412928904690385249584796476354141814426912781664683216426772694678454288798324479311200834444094567111805200485346616258653590097443852011120983680618956756907814759162572882574951173142589902159338135987045031378940861289963239387184483654610099754946686835864176960768822588276984503588846066533166201176298229880245696841335930627696330800264560849790285879758424162500056737304584131754682443423061214942084127705964083865731440043199308844354654656592502622827662030378654765886257190858284006222133253896824051874764257625920167698485761095433550215490870294680969432711391554070378322915667622058438823156949565059237747836820354045593769626449070748842051090267741219922786239844813958016865491924227387488465303414809165491233276345653058260945260693048842066672423228266285080411938404005165466798986967729837656342891215161478778971402237212326305016756623656399946457886592021036291513040753822560316414736997287567830942848516561732247564018772089229789600270292033994149424389481707212616160667104699115891732925247820210988384266418595837680615256373493626276073601953803962182048955865309482376795338779867808191037805988588563536580358162391360186267173805460699142073722491937716406481332211635099081238862118258590624090105702912764799032686576492570998879761095333663513527794780981344766117409087685890912857076562748660934689338999915231954228714037296258359118663975557807810056209916778222742723961613159939110507905302936993597891448141785567295083515182190518127755051270625392496652584058357196702198561110682299495190441969421649712168548442216162561498192447804029676974741823638554598729168687984833104790749936416518026391069223021290975864580451139994694176195615610446507317974359862199363365029841055464070899435986671779342446030191535067660062925686403850144938158009273616160391534229486431376659071088173179606256487535705144083819068994093510807390405370569468879949165327814969366146932086258105855783344963220110487159116183136006130977150640597749315115099941973188435013681774301861672224790761420211658650751092010556224911708369949425400501443062544596950892290197216125808415038714784502937774805392476072282322214259533553868989846805877620274208036647923996142478129161200516071875960380317393820996054066716749926694596580271603496281984378168559087276719674405702561597408450322223890047008165244684178950405750452420915196082659180683410130794938459422621608798833080166828679777137203523517969697083398903617428703322690623207099844499119440649639834927297918417335529777344649810894005895426858434425949634868108584197944719670732785767521860768577274492879912291203361972111296572119892058257443251727521587175830380365240447759952028293377100236657229488018925683384057192188173836284857560987028667262515965771587656616301836504219699252630403196674407153029931594782082909405485358248187670155409576146398602709133193437676587212714921023597838262501231358072033091009630924463025429611961770695925192923849238777405676689548610090924115919624901353238261019469910690352976114426341046330920258236740389074330212848571423627412736579410170049742900753477672862980362090177887409570945438782450490424772012070947238835062335981662667499744646621337853317566388741339165193490910269824398673516878054679917484443330343512427623732976602537328068899345120202949578752115451472396660054624148587346554300000487487991121852054386969498040564141720502489585480997398732541751255369003827211981339915933143802626047598895750165706355605720211779104716778780630340884706198709600888510674909947377625134982385364974584519149587909358284089924168557969218699319650920577613416661747905412665847275643847968135008218090288166493006781971569198048297917071232465897123852291649678207349527962916564013649341374406400620670825152536497636216158701130797804032648608206772524805731084087556076346663013201924553220442748729697740034063809643539122620699095634551970609725426658182489433312035738071983767305401873630904797492893913804555636844814244825253005805808874250579948856802963858568538676610865429990686254420311652705804236048865099904159688339381217901978113554655648640455767773663801562133009403143197496291310202941366672054833636545401707571105058973375820472226743530733528376126816228925501878416643173851625868825863971350029495376025673056925898456793616679391406213047907575188362356984337072589399750664704584143001160335350364372785806993676866324033049767693654214020008203647846255892969994768059469842992358650271672388697064004648992546273965247043893801985373494986761821908451228390686330984352551141901512434287198177818419644549552332529230868271484141450247937241889910141752197914604177584699982093311221188510058030873771196121069342573692974964183894858798427327025430396788212819268526968812029874296336656231183061862895742739355248560313171713780584341207312033602889350265301298558355567656553266105631341273847386795018046427202068854726582467177873791748091612531516833507723930294831074882494736397137114063307817776912496016174716419757185193098732360785143601533616807558150528089428899350672095985915037462728375594417182943135714813749458247125976067925051845272648654880275540043442695750428762647428693358789445594817160724819651029574685649142877917030060917476042694490449650158469623854100212796243815728697112733329474569464477885510209703967546698183137237361576286690379987365995223496827349873205697792022345077126686243714389815616235831556252770660766482058397486709206395971229249807662796616509974568640453653748978685410143741765902103143881614132402776511113386331833798885331726183055657636888836936160047597387912570348950946915596926238533216911000335483104893897948106387914530618548697901267391240955529302466938984250851224722412952316622686422690080257244444571069210578318372017109522932996976034054409984791414899036189007345924744532024959196585063973265343022288888338656970438484141604453803765808685078726864617843004363255557294234300203105335474615819202977780594710722160619678132231203288453778767811486903267750053078573258597882192114412836442962336126703189838367514922067413790635593978147444668260680812849066569403216363235893388518644387711860673009734100768160366221821597557527252321391298967384236458813908517457968373283861698411990878556198463235672221671059090465861649571279421062140915965838551228472175436383240263232513776317631745803576959603700252861476856038292012478503906935831418659255109028829055514632739164598031092384317130350911189731497649976615264748536396379018211463442035720381634229163063473017442863782734953885336864633237464180762105067235645011307496402324277997601514872432392613793999548434405715580750334166433146367915954576966986931481096584855390677851710581754704515470560933665063065062687235184186920453168378686378790492895160687026244756590459558250948556691301613949002902003102234317677057871958772195235207431969616454482209574804923794423394862123126867300025958060039114806318809470560581625570665107644770647007249699548172737989683042270646654875193734296355426040863570561470941641396595047227498417246550432823437620939466613900177347399995299023509409989039688027762838930569300175473747620152965590927951381285247841905574383737861434109360045203273664999933992573864961967175572346025735568749300772024895242522546098686705758115490334926459159264324621970266821287077812089318194119853334826960429031377960181375910089247700629100083400306233306690673163420174830622139577895906283938660365688487835631947965372044526353713896899810937464003800572186072561732874310572032500938696122112612850344895004811490410723178037170306195655802223869215492878551542218321708052833344559866179337325202211149115369098858401350188839322456128642359976471675812297679607553286265136615139918885472483387556081529188596721684129841757007649098893322628288409123248756630652929776299168526212303373501823613017392358753083533915227746865566282545658477324878765190277279473700249643626278089514146005886540490118375876388245508948485977865984833763998341860806247037421084655795802110236604366060231499872010179036490442931204935533503867287976318480453200370268827311015860250843997785637151452208288818233186809562214225424220904386491254474464036142823014018191551255167595096476958637284973057045383574234578040293677518285477538496650063782146518456109528788252157612602134584455804817105674454547246776754809613719814974220964258616109177203213671860593296414855989817802391745259231455409026738024380856700566213060933424956507210975635778604461063603642079652880684188602576076525350820824098292838839044927950027781101063677383850641330286045322720277358811280817523743550206472340499029093706794979085833985529398508103536918477144939430807186244679072820914894398775996586838795624047853622970207871156951766568564153337787633030488878197415657158428722164401852073111256091841232600644424023142080577422108262302855536695800517288441839629926836885762834528784804610902529742746836574293432240809476699403381356851702804381391353909661261807718792223012464056630832387800961515177749705307667512504653303342489672992829435695226051138719905285071229753750647747378629770620459556735558880052466296299965480725980359435575263288724023410339143021992932937584208605199823261440394038670724397212165636457004555619683506770970680408480887454098096897483758286004144588582392135339655604713494688537167436288354359398294908176839744843283766598915737109881842788704724435679729780640485857756218406215904217726496671552136326305664099221190774311925502013632195186981586638101600387411441007726496783482607226279236789662316918475548872095687401147001770137938116045126424116427051598905570444118530300993871514305898587037115925898166947087612420426274045521898125829855696679354027135166176087684366226950387316600270758594924231048596464823695435556832156898864468743179468811671650249886430507535986741020904045999835881376363476107211884607550300735950131586287521288887639754121510675706939650742594252049913141764001819829177420327990199554031386267800109889988890218910043164972638594044433285176918391557864124918417972182461051909025856887987130540727437304435055444443885995599242127095090903101611358581094825400720734166332669617010889704384078790170185579319977830617674445692964267048625011876862303761487433971596445646803711899606493773528567836218214137559182055734483589689006868772777707010836246187545289886155854651175563440508429852524073532933881781232430349176798191768022761200515528690326926112280796503166414993771161235221304004179454567787240376048182014447933197672711999737028321599525667489006905637211413282198774861367943503653170888871925810138254269673428687418908110889680038307026835773657442004488424151694912703759918943638571665499228093213438067086993555055983180900499485070285045748958764587142803288274016335516631507784492620800646227039896551848919073813356631469183894478346638398293134598572488897388521619857938649918637838935373501386359062510796993836708611621838337253145434143023947204007811256129277748205873685820437446111084204697757687012063098121578209366944965582404390973261659259811544720221580736435439846342937685038556904278024959645993830827504226306210335224590081050432603525940177591704736365679098523406267179576352509118425565715651680640655175392946796099348771330928533255271806425958280895031159754490361064573421183125841384725191018953213475666782673733448811558342132310465257075519885905693378326068135954945848381350072537473943765289515110758828314659510972671917092728238074893616848641077457219446765030937228545556673697111167164349195238806453991346772454624898549936342498645137445171754334237247999865953922192703759384054139245909863164892680903567101996927659196512032850022292581347872078522610187493615307149889033650892523155847980099005319842287440010460819932244759837002700081081369222007490693681802490689896783409270938334528236522300042630952284044424061496501941012123485799529961851959370217216753770065745207483954559298881325301841521819837502026280561954966730134392513290096317283030975809615979893733656563636133615304650444283564737672776821108688377916102222870234473247299433188050005534793188966761715781097505570017512938618669653744113533979103667522099228405029119463192587281643982327713142951436194368786295355213334872551344883917668419515999940935708529604788709256061927636649574447664299500582474016958257392120969529328860932302433776314630231753700041221938028541884936506657916391507057263417387088803596261921409234287318936683256814928590376112846349854354906122086300323337268073652685818500655684073572551588933246765797355213799575325994313291182357607750055134769220444923327109143492719368632528478143511732774168111903488189689371400471713661896831694950557628806758671276043431812799860666537832539737171588374143503403772857745102866335577012635083309352526069210615878939531382044898424814977154760498082270787033076447344932647322921574079929383631139046135884365471926431941044828425581129294580572487374644062439257492218275655241226813582111458373062488517237903427977808760010890643306340507640061902057581631842686017561207623661107851379348458822398247230821522490951301571418499425828927123251904206507026901301051935456181731005271508161001468001400877676589816889652384592325692076824466992518942302492368084871134131864549277733236312366639852292019698812192036149184448323510760007605790240273093848106236412619033358523352306750245899554908937312877245830645765010720717996812225350787708337027849199168058241098702106973562602265212518194831823531729878743645441630439895156498298268154524642695095872040237174946497539008994223896847572312944558599345624261783891700685430615795811184150439560567614550851572664335890431105198605367168554562538196818579853973790510831081505842728495831589732337134089632589544726573812425592336052287223876415786797751041341099673476676830406212719020946080982245616698431672439829018152188086015534073000195407871645758523798542920944785260009402662615493715096856489454851162867711275198542384287077831284923884158142983800672702584491723335665511495473399852248617473366452861001402843335145865912341141952004919171768207819455481748001658700364598290643001649514959269413365463374526247901462919585177233795611540502290002887549528892567016483831512178842263329071615547778773604945908155367013071690942886367308162365931500504970880602796033004609911947703867164456073224269940499065974807220870049287944900236049527898474520968017506277425750985910656547560698258852103255432490666368178775735765789645798054358652196314992436212890931564589751914314786481909769649679100028946541736829409472149630513503698279015411368312300580680422407947563724392264366618618488618563443793339198268035998154369278609919165165217867551830112415871077810330748097224321143602641098971834853576438151123002363689055904896035574527095508839707128638131642139953795392550206280448055929563257222112262077976025899272143267167149504930100934137834537443935782137312877968964210727775057886680124403976755643710893332494328589748672678510841100147525237628444978143778884089606150031496482904764841654860313125475538398954616264790757563984840307807204071668164674005608560018843433586395649845738078562700508111107552509861356465957071162229490975968701567966418023108870790852276321637805843858792459270528057163235799308723045276699124422496191213016134179971560900826883319635166374732806439530800474302618152457465731252916822400429605369335920847398156004706086905036762699944473025352550496801689652245424545217560054041307537262689588111547590783700826034121207798374651370323794721640254934680134710695635798064752419691803055293853461350137585522049854328252131648791100746783525331871511398672156318395910886846965664631113366211165179768408111188603271816845572963062482122351461506594436383251305731739852092951523008023050038532166786435356814377770789654690766439566844943005590903195626015865691763186500985149806497265123880119758982377132554550876018925504017582904028216154491427571952610135132769909438412484675556681521659248529663044017303130693876741304006357373759964206536967455847729631254592096306136606566946254570196131185916286672551612138178090962938321574025701085008034438109320700850300893345738777953545762333164539080822981408492204374906668184538137026037104607644370747665820537180852634891442980591555312323797768735396068899410653905442558494207517008384875519027631711706810282721968419753213511592033485231874362513665617825813591230220408335440861001981880551012697376333599190961656223555750076470335776543194201631428278114012553391474734976317236003458691607893079257452882954367360037086926965473013669979071351675292133939074541718632690875058320415067378509402184407258199140721021697184741011657375338806582151639513664670338523415721222643529418389135441610237580094947923268674754175856805803455465703703247449235097419895567634014175985094177315120322696969993150519477179651813516030389065665281578246932839157474899930506652819860721357533251444457054819950700731625398238122989233281474045112226409080509967103154860728415830486825809554052227502955574747755445871847575718144955719705983880370592831943264744811278033818453237247283391342582153114392639082657917003607844820609370563906117857941046059056684478235754389846821570158458477820996513849336174911647872341583868629065442028555237060788910705607922260148893795664726377601105654174482018564694011929271300933026885488538847320730920232342932520610338198257843670191067372499418617960556071545491419500931272143507632813555127257782691874804985946052148359033612017715041085873803943502931772464917454046655164795819474172497512216385043091009199284305867395682602868225363475906070304669992830185879164203422841286109485175529650768190690693620707929917451111344098296586930071028802937994799618248563390474390384292938201113622755953898657864978593415615279825499278247185696202669512853945462140937910600487609358074832274365912803502374295390827026099738218513036130011279043655602536391720218076060966727187797984050018314539367690284068408064656587662479628475943344177300514078051477440122219354993660337457278908430497185335681598381991899952544305241720148542000436409560969779126584444665030382976313315305300086443451301716745446897486720748485799175014137880155644289406673542122969527062139624615560278198641031843260785268933929926968719797357962794593890737209158603642755797833999323937607259033126630859488342571301579647255386495627103477081715224590075321806961749130944328773539257227734079851198569549863537452670593209345782058369162027066807133761384688321193032993188858528634526900829656070347673722542579812808171732121305811425139856903230333887353517753291990476380696651852979695775265519258688511261606717022718617188598692626939485702661609879420298030650750290278660019349978074454360560798095170145108985964507968536396552791055824498187042208200093856044250451612930422045878886187166406470196929224871198344820997462018876276720157454666692786985927000410472484290352062242853398527819230554944946077306801760004093149638785005821746024312694871707873283322724748311380328716696203543116658271231159470093835913701911217483983935119582917129287602994473754658578698805275165911749089261720057564078481608964033953145038089310604233332740859055383639888001696944753720486394576148861124505650716981695097975693453900360523201354355585022244889472340541586367593823044675628868264815626908969227988899526682129412429679021363699325614889159130712760987703822454796702881275826393302684251617569854248307546439951545133108656743722460997952706770348522049594593443006383380028892912391246148120363012251511155714606265707764752789342083739468913396315425678763625620593134964088527707817536776492394491336057613074603001887190282545749228905129889148254909064719851946655829130366633552914742660315542719949937571074720822949575633813333525728404630334528208944187209871073197579493832321479061453592963591609266608026514303919135235085846402012682775621652868785470662695864030231511139603972384803151624909881172639481955169386016688310298729686893588988932424641429892310483454095768835839347799947551390195325591571930981174500334392568081962959365868132395712753903067989233949651811056775207225974758656914245684932313680344225891569616676219710918263123496128933018500086612108452234873171223151404168311885050065827895529057666869383637228508632824691676102808684051551979499399850206406360530815717586203794246062141518358307574170104697123729674866340618491571110126563203897089172679189938088289944423805101293882387485028973881483397796288900460351636615816144445558918732071125440545943897807400388905222262816071459903415932422530855519301780257807037620829988768722901646180918312180915384535392030928876386989073771729486721746827051302899529469365091593783257420003825364063795681256884049801383139826957867992117110143220714802005813092837501824557702542991659114243000900193210709249294347092801670017083454750128674358094708791598918027864666255681164629475959921703769240243898785568173093258751569714308042969124381547897742533557793318517430770897902461213593519495823343683391167737541121219329463151552693265005666576260203309182765696414832105676586541129004469654051616714659255783714727524792061794549368380639122689898493639072997931647510848092955553434019906483764949595554209920701651300577403229610311757378969451369133712381937411253101234089428392149880578860102660546750923204824869891847443123966417631799986847943526883620507748488369808661336288989681313016440751555454935944743260066714545866437115307606186181543524046509608092993092465696493920084777559040026302780563298533331417510417690426710064257668733189307093698576845823012869252151353750242233383997462460951356854532561179875255981196537791989739625730136807257878871266385512326810315309220433589543847739999174872585098492181717694887085313850177031469058051071435910789443610143810302087945405650245685813773541321708464704820446421466093838142539712392789563549508889974919852716703525847675438519989117364617339150750593446901518214999101130964615410749703541268081496522142580855780326129916993537557201756162199632976930485585260312823084885231739527554919993248841366674226467202474921882820403778183414061041408727983176892620277537556327309994131524564956731874181463768197215340704853818940175642989567323130493186727643100927470710759535968460638520621759016850037470981190375466590890227150556243548593893073080554157554095295064108625647058099078052388435486192778122956668770986867541886707830217988245932239385247158782635832966512730559717750334602057553435779672213642883605103527706867692073699565043999475051645369969148979905727292779811034775925489599101879293526647021145639074614756798994150188915675634538368328960670305334607290583424870212972283251230071509656004683614060269421549569236780288088982022388780548128426910416966240217603877088817269974787571288095113761787039289509565839469977708360549074797241099458720537309903050202696619787795136989879456349178782085961032575158608191819018864936870769102213418459538104737602277293975095013170017203363539449188710053943384275760945764284584701644090505591145043735854998701621167919012618943804676536744443756256520700509571577861375163693963643943125214257198919801783512135183874266583199753979587003701764052114257127333936974408686485379576857851609928379553962416899367239825537068866926746667034689953414651774259365371601995461495656185454134297500232612259092210529057064364996870382520761076953100486090948352171883411284007480323341702468441548060644189204116349790273775562028017800574841833572506416382090848681986522366559128103716897682293411475487143596204854318890998494032934408624964224852416661911150050455302396133465603684427281468378666444141486561593447669478398093489335518609475118600716414152411184045186125112099680417019695945033115007751683380269363870715517359887477589045071507387120437392451169717230765109848807313488501471308406558392856016503373118275413522873788708743887378718632783996588659953277112102729007170589837880445764809889816091206773048948890929637269885515998650983958918641932516407673876183500657924099643557802602260211356576292294520534460268527069746748891004080514539485009292290548910409933402396627544785416975881640381117827298084615657565411712404872416826831663255105941336229671721117022088931864430015330997446282206973339070144460698492898128204822327620690929376108734346815877612746970587371483743214467596210017875696421386218361025100653194645968243873740111935152777997833413270415665721811345289941830459806648290683996547668063207688751203874512323950862893112722980647202399246744414330544593740596670888669304778916771714157315920780585149727826226919290445309361620580261997058214174349201748075550236641294573934101731945169999957059089321238989998991774663449553805962719915274943332053840009968559163846932959811461726471975154231432358165373771815277913729962300807464662494813184103454596957948946427912558960144973581518656838540157241446274716023927385574833835268766763272144032468061422221343778345412031422203565606000247279661939834260680272468368992455642250203257583111597727094526003103693686047211801641619360307666333623667710540482482686455230187681655079560723803088227771966431384695769620946423128985893692328415724205507496687033902628398842381028144230530138950634649318435077528312095067949651298886769221091191602630837297249562138948383992214984760464482377370595160809120907147524045561395058706094977577312828453453249125125161510480559380296192161907184522842040028975310763520531355875824297586900543198013472859440895712048112770443277324473495009216156898372542097302443985856216806411444828258236003087111409914008571580169741242286426641547571530910998865373989082033391953158858185828736981176695314490673320815999654210103578722647126585869265742184716056364014804178565029026558440155434941674115772857019945113536379068429280024889766314780518420610850629911621027371463833502948557080688513862038981231895676378643033382479811098544121392103259717985844075122941951024491786758134284230822300318821987010058311408034233283696178848986035601457675276340334842999589278776844551297543608788950143877005588896139478600751473629818910165280772707038816552297440971408427083848861231454056627737634136221317909669716400675494641864283708945801189499266546072061285987665019693106086617846451787018695472122326739940868866973961148945656827316382787642874224286504678904809585367257590400620958711824637240349591363394121566569423273780943358234330631480646508356171782303286235034353105062302249870869383392171678600342200306951936043632341524987946036580935598687544919240766433942018238198577540268036515007025176157625669807201867968636672094739361264196514701050178278146934765652456517117846959966540832550688837415522063084515543943117145871019407371978367061850439513446594329777808854133641069280828300536866926398684223958596517283253172280690080014035016195171578159139789366578669659748343639006138876157768235336967769640978299982030263742960857051648414344934380495253692830262090965063820357167165439389056826165758914482250201477381173160002754055801461077795136721211573633594629484687237138248817702696945822892980430161241657311343395655420383355174756023627547661384168994781785473360272227046102210805279026527792406882579588907381074262126013638408751512987086530911675555814768767695564508890272864481674542907680155518010950632144425339745024434326798932137351569389485829950702967848285504281568240454596364945922067692480117543195976910176634832558817528773876585658923079685149193997419329418389961428984262122176358802742705917216921825508162199013853115063631833569593935008798387775430745764222325076312509954976163501816345438656345647091628627120506676407030251664563719439527947254893856553976539278173285191567682796530672458575555619103244664349929194039014861610303634622392626250918117925436651443766787227363367973783445090091244898993888635903391113623673567870732379985318352728084855529175483314025070274906028902618820893686101350838040829206939075655978740863249789718975395260214568092622200816789301078565347603524305759539056482052563533443476612720985747578786996954881409212846698240304876312459315495705179016489143684180905502996415636775788599074668190827472921969599940814193352252022433567276535057557861924260414429519516219552578623401490274813846320351770360077471446956621336734346639310276761162760781138828943840500408586319363492655947491520976711921298904521266366147741915808437947179074766673986063969292783947106799669035884512750200707284797594753622636041972222084589938382393893916438105823784106058973080877264083865112899880313612361261816991284882090531534706088630598393774484832341420258757024137372482554317039641347328272787159014464761462109534940165444301899351941859419553517019346777645160110343085666139042147664635648967842306581547885352771223064580010568370353109071714638493265288260291978750862088383950651952845763292693097256640254601800157498463226961152469647784977602986533618500930161229228727614505885271648243845274946849050944120183840753444152401835532432718660602544404211417169542737587225036503140113613233647597134676177049424616265539376273796928096659758510344245975805567115099136438678635583830949446607149441350781952596273832583684079417464494587147838002912975106346764012248027948100310756618102894559829053690825070743152609370160954814813879188368649405403913443058469050788434249609255926809976133980465874497618768408307309319325520141772532524355008042141712373872256783011283753456054281245809565293488745400753843421016473207167936671811762477977647885559321816406142018552346624979013231213480145907881336755560124225657884464379739029052858665088922731080525697743714473373755018488113685183938433353890537866822003566755691374034012837142960619291769343463058247473594207585315646236877610294462258317388884222142808129986381011213521059573850298407422176253765369465228923941647934803694887933838676780953855152115761476812892861614729130540118217524641792536751039542091710672803011141288994362991368424204303073975910255777467620790419650635049242498917947189388889817316321780818020427028191005368198897030359143969987558396843684573971209196280685908998629737832329327963280057708857181406037166030570301468729084701491653700752997524147431020495905521041990136622353218827716950035956932480162408726520193743360100277643961837063665215339994511700789783055594842880847278113907478866860901110509288786638252907473837782859053479224733058942241377052703867427137724782147525101540922723679205576131819529898603238383410772849686740808528658440075148960874473290863521030887019247715169897580927385250069268117296968136600067368789463290606500244984491081708930079383256928636001060955174976300279202509878204734837347208372891217336380704214907793973751309956881456337542157893637830502091678283670526132787266816116597594201224141878710942666417236807980463019048053382987836909338223183155116955388846930737090051888812703997642007001399319261786786601563811638616554763104513411999660433825919074832212754465894040874094242163299969059995748566518467335658724205289243272204597314820835208112545516811672491726345336358651594150079106594856634694757400084607532749461281781776264211892883645679560382019844572832083977481336956272221944770078030028243401830776667321499396478874075822085791232990785898397542496320884496104228129299481982916210585707562946466875662350530271400892855565736723256709202796924194363777837002838898423574867635967329388200258781338980637725310200839388519129585570287646493688535721948251731048834609170370148625464582893120602493479810261630869826186861827901828591806541549766772453476163037079995219820517662789362734248673105379807720376329963983157022390718932153784004431522333440037710113693935509064352730990828542106957331273903061925294666888574567504263253176002171842429576932996962113522358299485921381852137142054718827006733982721874425432981163261287065945534223211184366439350785483421263971836738458633396567049915482135888748118088571667708751870277413242870774302417831028665049000181854908363253891014752325489170015142269835426073288391061479311321808690855649232757563892303096457466815048948069988284028494328773545846198539254874683018306534904649479465648451767659724903117283128427782258958122712070038714675898811797725509086782857120427598403015332648659658708987481795680811591057163727720826975340577577474307880449436994630401693631243419703484865314771560610408640732873856781873727723881280261451671111570383179825195949336845560016997065511181383687309474420790475645954918001090475398087699419367061363221334366085290948925180102797418110682469525360781152801472788048866179357052969813294024344848991318725033796640325368275277760869817467149137104238436099437454472022212216818778723496058529355373636975347468134668126139252034437150517770715947668149276781219071758327145562090758323202239745279179656086605805541532477576608406956177290512753804680478434998879734790657762097931204898559093285344920351571102961314353175858190693804602144867488506224063274005886651388448767653474189573755728183588818349698302631000150073448941944831440665550390951466009590235437811126734741118203383456521687455089803095464643533623130149407300419876694343323925048461712184214897019813332718566546851823154012020874644393041883967617784576754266647526534200657747652732152395625390039555284607006851567617735397529713382054962167290571194605109284653796407038841486645505771468866336771711683433511680539657381305300092040404480895914327789855194220135342860508567968064166460973405566279652408993835708673380789593961551967667384540714163991350915515449289688638366969133947447514956830381229419577648262135339881092462660300807410386928277058129053260676826956264880762040579834487508463911802813394096019676861208748663762241760024355460708587623874443451835798674245119997166724894428931564629912256536697178470509130902289033370596519650897758057715933148887097528668373855200438482913260788572147180038656617256831866285693511469855571520420590459109621484555022040125958961418618036504349701130592355821402581314400950986371834369857365437210131676362208773500354873557946641844619074771907903484440490017691939330196066399333088368081743880640671006993262571126974388882279197686851471792037753777580953869774528054094228444514594816857648892871813474215533524848165782473939272734653235705771854580270637751875562569056714776834524901999230283366905571422189109458640682924911331874643868910792917688985540266542863227081989321135116629219687435863358235970029130143321988224118381428331188412323528464622849478967578095221177815340936366706461495966447646635197124747265787565967379613221901422864535541109156305127640638691226161049846686388420755310494089724482117892096807903056334378482102190260264057136949254615427643597003524722120764525199994852950584597079746595179483689267223036934613589854893439566266511665405525170058899232482345017501568189327620283108152763436391585867174448248583795701822774559313222927099684126335787249550868540860601181011371989445205074487146882817026512857317972317997950733675212462921338789474265301392634795668132236110627232535398290537264638727728649319828201461755353291018752100354902378781690716275085204940332106427668822666877784299722043371946984278522481965720374900422601605364380647389368869672958498291153405371991602076145665203161858548149476832473709620517363151624946151576943901389295194508973840485210685820907142080889533071151431976649364209834037185969237707649780435298384652522843799953839347656423231555916387848472193496361871831210246437118963431247916825096612854044034722662539572621466483464854411445277504564302568173981887170693851341903576948619341742273411545590680252382871683395188797272193959158484587497577429357136605299172327106267174576279181441926149901982360540055239242134400586922001333743227792486545258605913256334773976179833405141416457365847035087862368041797306914557472581540777160602121724102260159407996081228082689401287163666130918109535142246176866529276479098485468967663801333604337666091239104054258970606198867759542380439835221802680719809526329080463311595518582652383227234710729873723080297388540628071943511241774181208849749992584697994958072014427080083161785292762460770343932320941174951846030614365092459379900549332745970392512371018891886644494444678115804201876828007061187845892840603416426653288721547531974375279763555586067458416427821384720700549145101442118683821673079407926264602759036868007711543321768103211219977640119976422260237223356837217204064985170094138151924613235757322192930233145354401581700038732529351274378259472219037457504505100683675648766957908017844513878751743850310314947526488211686172084505330242784473363096775884023432912473377453630444308819083030657265961791532141004703150234566681557240641293291420436177983225568457762806334984859866510782909206663859652019106567165703350663606577403601624929233589735836563396098407010000573858652168626462398372562310529288672183437462118015657102110095957368602252471314049990900151513947084842219087296042310975925297859223526199797555375042523446438986684949878691829926854353298538256140168428930641310600038008175169411703933189181461938438218032676593084390668087797993648309229603192411032476852906006201112379846394773977542238661035177064741178986937604876613955295087671583844298075198176222735875977399884928188673435131621222085793572537346647977388662079967005899729378240452805101211392210379542967285055605764397833215213758379439012002592861581332390177805497174871679965115151911638567328996416053846140574241837706692043188636193316409429521048632657975616747565982926309391634805966425099573396535230224113376889898670279840332158037941958490774014682215442536476349822013474489281938449265705879342994897801074300331214526739799436297513898405305372916278000428973900153858976320453755069537467315417394331195961441968193502675165458922784002764769030472618946829253621229522224675214263320559593791085742586665685392988223070878512817142301571587735284558490313605351016963740356285741660455613547719329433797149598934724383284078755144931950358838594556294935608277271284159554752397848447220043432477442780943764697790317799562966436746171559135911221322043883443469434936236561663604739561298492483017333482345076104316463628715874313698841239537871776517310391329880754579465243008087291015878524838353700897506384167606293534117971789336050682271076658187257840449744664296387185437781901688037258802477720546555862873647120826320104867035321317861973416600591568752634101367226770352337618897777725046936681624093194675837111530527503321710698661930697476305193451747138487115599816038291590142649329566249812802301652770879016650239783922742812038409953299139025982190150466492205519833357338621223837570945340549626333315964477755316677487093762816976641371863174947201286772361722539049397915789429642874080142198760866713976209066139489932039142783212163771966336467068384745681135106357997545385611075939940831401686656372473091307622760805578802248393939181380844304679548703147260401176698922022638406402009811144891760152217882931721902636172358605561004048998735781123533607653443667377037625912168541550138603876754701638807962461061943971912786279800551941150212887748506486712300663858878014872913249692283054669292205758419433130635265698898993601560883592939041523774162969634542276450278298107930603609581214642473439777360075736176849686168847130265096514621239327385346082423061885267907711671466761854804137591889441660594545107389735323967863623142880175199548936472199909673103345689731552202913168841537484574273898528954201426307713634061857516269454188506864059029075606556152831283065623866992788807840886024034520817099506972118114495014336956733742851317079034156904734483307387568594296389940730117528871381957791329118219317436035460314958724998143375364892727821706052040933826249539202000408045357479821411547856911161071547208441499127695157008277157472598957256421834029006455067698104694596493575697949097028423218351457813394341060870925986013942147323809901441186504201935454195232622212756221936418843032630085112220884811181709391629250272228424594646284889499572581445653088120358906107664586986344564954858927477551380610283281844099469926285230045436521715374129206187128148912560859843733204866823540207400466157786997179828326600437581299634588766177087102325665158905856715558034904920134877708884684494332799407601183600252827128685277854360677451171602337630121949071002596388994393420447363423248798322203309685019832528785353437823249643117097747249116806821450436395376047033618608865552191057846944585148404474249146046238416466421861353107180743204882289716005681503557830043495454241033539318326283984757290984329527684521011702116823946366352905885458322555862916587308537030776948768802677156443799337646183946553215880137445083248581611798471494937139622361558631003164702491925807075085168405274587604958906372914014962370592093371689025956333465283344898201520148114751310303422772806409025549094957046838026901368469515363636663449436054871312762474907578218399387710996659029375172095611026699027278020692992246579332261511769135167553573265718812094337440828144959783931902155213571748093813243102461425609199903133586373520432616210304759646669452361259672647149336772394701462625149983815794415446621644709009566905843597349394713861539238019450379260843130852747841772341545728804898140881142255516988190584839239474593397291963372089710945280396071083725514581219458369736622114851355294300012352955782733604327218511405096377827635938350806781656280661393498587790162282788854390703937458544628525374137723964354771610307751559353010443502141575212402070653653669596073442026958342404561885844935454877491931082321081967870516626704571109855804364621244967989185945690384053599014060809021513605374078345423423229250448386898906730560618380547076778577922903206869342352248649453121727531553292936259738000980051573161868596776746636263054900776296067216957515128471712465110617123658250696644472654293712006198838524091315957015688345958696206866366770705093295343727282557989789530998425421285826018172309221444942775535665099706377593550175825166708794843354299359115478501474943995810688158871972234522820833604819683612642306803566549773895025974837697383950412727962789746650289315846609770577060626448790287220170914361663716166139396244379904920246545685856129019814981536957464439939794081978463841089755981231849524385603997589631757401622134613176956608406000170095479525210581240174245101977259296315593037363497563696643301393741995270735011679344684630929454389130853655268589286314799803118673052777176365885425043905940387045493461932190283070180224025571935551072853668845142513509927517409644814506058737637555789647530431475946135018690443358447778409354677969403593644076851760275056973601771655162937802454988404996193096059171597812504395686441495456341297817512932629516263700154826081916448491199659653252569708638797912985179647815732360002806854732259297014074171257767021586300470068589981828593989178112832693311982947715987819151729541057508699612399581947020164701909242072325634017871376949788340537011858954351280529440777940569121462870878393968410847186954560465718466312644499357982743050019939303170957333266644056071650572471727574633491299568719014011978141315643570181677953585818130717594298581812536437449628510498174990184322114204277266233448743821988071932692588187965805656368063265867853548593465169420422701503886248839105219353744261323745973836574253737515166430069638562795788959222866744146249987446817725519500737946075573181062980643979345353468419408554821728767489061980472224281222275647205944506997242577242645488212695184933360564234474369843142504490922246636068772506196146142045166472001997120290681939179158482550937973132463493854786529247234043417621617610045832276994637935961235294459418162586532554364369565866437755582067209858248750090436420729753803996710213209708439723469620632171078564268836657556751209724381909576784735695650263617147815772778456100799929908799844918451294375479501891377118090820781879850347538949312736898675696975139733583944802076896225127035250067919836622503561639845361129165988700522677871293334910311534881707975415477202877818605770491452035719307833999889370921846200159175947735668731726631373767216565487377329783957326607278060881642374875915751474152888497393960918398013598436637600505496170698459140767202711297631505913474526442014430115388112207085543253778940882678304705217560346886175210998093422196456513552447229243276920438656546292133308165169936634062529044943772366035937458323380523155740150620993361881376122591985381791118242461464747416599437812908253094301439976505306183229846861626978506171498516263463318798483604112051090512740215291629216093815525330242131441906906938569193879080176026117422612167722164759703782762189423679226588099503431398386981436341887628459547749654913526694686192818720218256602922053404596605852968192478661258905681710500318872655230031403848144357561017503750127575109087554135990660282364172734970992151023895272323959004324096273661234834260279243587147199835205732533486339456151413910295338050142185961633651331560563337827223731630991073087429290692385232458680671977204838513592003497974110589741926997975123479726393289430416779787456493935407430605223130889315390545843107450360565060863387978424743523424692792397112000661396647809805053660768185426921145128370136949956885290963355742974456808775229674486051546320697470947902789478829609270436980990967808897791906702983375769202902889789276714847731610525025035132229033675050292470342223873555636739485699432750643839802553331591116645569892796808250325419699573477732137315130935951562336202585345094180814400741488271119453807177255385943877552239957787552941019140698957418612696527743348978946865675888690541999221446073442145917273917378191188075621631198102982565100412689832156219105225234043429984522614463337625201158452518456977485213774611947819101107027539994277536789838007899397434737857984180588164641195691067943802755128894453651001961495855690895606199099617555706447020487589638806111131575433354565054589897898090671321738472693985520826728301042931985512977404380447641112842455621075708313070565661911790606037155433078086550332255625650221578597622634423965765333561164735726392470076014822472363016953704652670340043586193210795061652266987417476564965389924919380214220415849523003644141142342589899696665823456383014042290185674354928538089073018242054304029068975575263067016249132478485862737149912424250592929784282349965938671656511460338764937524872806475736780594756322050069105080682265563110325147440231020050082821495531905052563727472686217554454359273924275372438032140414362490995536768798751225341542285700780205104856179026721401940488268015120754983849712636772040428266781728784668324446407966984340825796381499193071686313365904361815212700888137839426497726393079387831330899909124867183469766837466578799299379668722165630731895080753673779097189974843959272714520054387085498294058046340711513289769305466590318577755737918385947745289254330924897156670875354574426302171323105767879785223236413553715433735246741600046329098587017659274384741970817570580961452223496216419906679042597173626739667167169224007686330916283608094182268462410894237967950073974221659249241641147675604293672273793033032079892467882059119016950300206402100599332112259386817097696664125501313613840176561323479843312665769968157589515023957926060036584733011400304528425936039109139556124529218122358439658614337377474343175855453208422126717091274949968817985285130879367708984704566851869669403474952994352743841149070835500661010646188090432252553359377577834588876012593141718996303960006577882431739106149741087987493735875001367042945584216769845058909800688964288875640912225503573879695470003426829697674568533356859003276625672452226550794432413890030702590051666474686372735990765593022242250962702772930541787304240873411082592332172365113863330376037638164621080656716048574907411755831907791360581542038618015952039749862282734866890012542824080360685526617616402538394559468926912955186815112033322025958062101981553621391086648917376086972360308970300413007754131900479930903435023399128163447672166359803230173407368535721674485298074482058569620118134084581944534602580338043983195164034062448051056714773653679614691020724758474001162491855324375308834172484572848488178395991386866388889940718287186506834721821607279083838332014478488659378029156313181678127102307386196019668464749644762646692422796924449319454940748225752941278973516463172830414107015633842545510269952868145492576375124701912130600545049843074419810317255863950475508387462943246851684272603943843883186830969147350689563076890091709623510365497017623531064879567182077038762094464475282989673010761410854853488119901521925575955695831533139862018713315368612780577369194313815346197814828302137424145372583210257454580763014745942472084387281726970760599862136346628303259762403479420039003006102042680491742830842317575058005566419968327025284710361521704913027102911587325827136587807336475945464520439648914343383506699965454228714640350960057341351055350592243092455598583660331116606901050037645502504926697779459785539744827145819044447695603161252341283857538275308677459144148089865571255456099233039502126901087262264817685893799292864372180591857296128365293078854638183044377755956294382927610933097805818123105850504111431118085339974820465779014818335365954631367603561417859375983578670267787435023289916356091482687666617916791803418494605459508343118605127784140793318647063218292722973931726767319694698353538840652029931374630497721155352627813230245366709518781164927508068599242268810276297223505569548996179654766969001984008044883721827951356424219744928436649018725237676199201259900398152013615240591867842198370348927471467950867535883766601665423266679083548875834617495419768414114292300521846802943273387258666563167931779838410153540439460202156603115824082275956531901155566059731822146853409149776584581182312290644183526207657570266768030254835016350925372171840205024462879801275139309660237755789300175263592725130124976454417208236850359448311904669525602205904559409701359161677529490544119288265402344629224077489663801513164022985239483088760727910754011601348538982212806771433237521320407978399831904667145129844779533550853647652004613641290309217018944083867759009927860748946508462370607371693471235340654452897194019522688265074903049827634771581974683225139249413961963387741244528417057933124357608923347592796847544662828578345599459403006057327564320699292476342275595857809519433360333200648599442230257913921379470478666412138856250348415725299747337229835853930544644090591511924437508635392398209399116890001272718007378743192471577671163117226837172117541806782075456510521387091461147564079637858932941740375012715813706456586508291482742860825460652402003789731806144117208094133827692865003858837199950136640293841229935986766975444263867942137536315811313612474722286076527847094003702215484873246996531333570249647614243559525495674079328627792495199135241464887715353545628048700989816641963489431987024314900709636900356891621234859112473592568505137811368929890449290475827821733781825857809406464707646117440003331225001850081681183997365797193279060051272131940919510557401550173326044318854074693943456224677117644791524826472589578578771598227214284478059460511524152172958319964427127380723919956767142865077621004150941170882562214560816009890943211214416343016234713601240851840379311298904908566989540535005121656706750700128986971026823573847231967492840284943048175610371440244471542967375225070053251440204480561701192307775318275163122115043495947604584821501624761384400348856282532782025678763157872431119240018532159596874997213554591143411527062524265274937242256394009417398758075417487523734224686611784097745569985867306069501649826914426780646653129670631033287288603726347039134178837748191057471719794218012097433520371552807835065320756243416768597707597276542328385194334864298531529155834143353872870243824109542130215332130339986878570108878361672837410848168745330942037112222489472237218598887675848148152459681659694250104691143290329607040378202123414550012934058674574545863204999143006536647133954561114212670856210423781288340355087837373913664502861132061952229834275465612059824665159576393052320575181965694954476024553006157875908749790285834314908235476467916070795702013075768735215417758231108929379044829889685009872304971251718509451085105852756662659605998489268766954293526500806277232831555750469107644522859387225578470236014610920377037893666194404152697712509242170420790651126763624018934392411075343694208944427133820302266984610797402952757718471998903739267884171158466191489802793143018532150825238155966414927678246423375317870011985983251426525466348835806025109048292357760390963490072078625915168989083075178402155484449462128029034331104274094376060555884385285713141231895559992761915523383143055349451317493594637904292503228118104143478862563577308231306225565095309910707548968782156277137673175751056314934342320823678324611665887971003599794666274771201868186237259333109453682275584062269831543081114927274388577565429467705290339068857988429389132907653042019482988403308587661205611340393659345984795460744767172717823100582686791617989233090708704989781939232862109156055539958852206511159374460475795082071552859363404104448670404235872181587586388428631435905207278303119054709136062793813592854154934473005251321333702248444138307736493678630818700290779220655454775520305618279683621623345608880686424777131626743073130556687625380502301343049689213907883705708949286287625978710346626621594312112108145198155466432433377739059986659905255733085720351674313265623369186678863782331318593699524670637565507484644027319852481504519052759108062985384700708250271383044523802560867995055935814386155252674918051669674705255055423525172113739412326512283872048217051479787384953530338519682545376700285251558701385589992544924154817365617109538367863866958969208346256482025729381793104665170206296402928437853614327218590072577440021594123095580307918716502760782214487277693123708986938894713540207586215701924775409092548482432307920561852239215419585686098901267428875031697617168680035415165271703269920096680532831864119532959885857382280699035277837412739003551666874519676016169852039720886042301624512073072394895710760747954242370879522964709269091164358491712016908596162675240806099097486141999329310156876030160727401654901944739950962193383880102372925286512105535653771343737107963106160646583727498596834196526067783755106304308369378412267676694116144652276318622886293483511253555782688385222438865559736530591234928863826593880277377343638079685147896996888679975888803479076484379637119537568441362188017420328957885296145425416841390666342006940667119960799385611718486937676572594105624893805627142718193574886307577692104001586887050199197847164706026157521850863373878374388856608878756255715164501797335009272929587007289339090066887300770895086798116560979236733107968360632794552051520762769361674390702278152142394885924616195072847697060882728598533729752891333153081452571950918788065462961785458823457563301673379938023460856009350547147851474240894083024541103712138174644954004178110564058180583518684770972959159036167809099640203652499240926452235809119235384092322686130510625867610225370094660251549107571521731370581765586234782346975181067585304268328990305770418194079175823495916635328221703663764436322432135467061450340851614688536958121868884609185052865163087827867693427351060959183730071833725944786610319396562725961777330396038585490677638938773077857315258281996305294893561990900172641367509127126996852859255675107614999337056045949971305876112425129953158593240425313192627694541261458061108688516244995404434097638054183158805876297332296143977225720589668726533314185487679370729026811204867776216581650658398179096412912014137490196780068867376217226937432190039290924913974203111166549749799461921860491534032669276799431860359623532396109612088216172617607059649519009740297552952936663340740284695779546487460707163927770378349879186487079489779906642499410549153674348314294941190570145089321331574555057317802180540401123698049714557914168689782227836811398289816681277070906211890748609132522676183424799761994893268965827844473276603996607502774022391465835381418747387932490204291851790390357668169480280167840254673114389147627764044321491781827339386621115012037135441441923789074737743039058284565822456583861124650669464796830573118108243938040717980687500573145088438476983703940991176960254679559498268579534447477645621728233187534410048675562292487579503422421565454551948472945730893683241521558823966343511348357565743683744010210104710237300897119567996680679130000795829258266399556837598642302789056604252821263375010963938228043069620707233365565131632632038281618924192093843623031505625302746303259678026723968840743017643320360340910514770249865528611380388699440038829739865530586292611289819295320912502291399961220830844881744331306463919586236808098005568654568633094420109215875016150983147018678565739066440319526068332109311067977027502443921551957282626126408653814524531048635721437263808612963729444428659221303637132945641293653213010103430445976875129251025718207344875243953663537958420156789583639450867728217889006560629141329760515420269609677848582343860777333342276110597489954302873363350334624599203257870739921341591011657921601128060809672243465106676394432442673238090792051241738924562430806411903350572476402468430685904116355233556817263659980908752413352058027988036417024386657957568283682330143229567673910105270487787054675973029101750300955946364686332220375784894931855923125734524263260525472072553237479650874673816133931488648018742659951353693508896751170577569316536321082670411833577325796118212220491721063223190209389006797076639900424004348596409592014480670485979518910379908218516375512908372982859555967990838345444358302602799830362539015647507656598503245172316553624481190478305335320009318856581677417306931111043694793392220095181601000931208829963062208637147005915182875526211981350558848220173362278384541332532814458250851291100733463084544468675617851670998673640686286419306711402540946839884356540885393532293848272579546828897518997064937134200486808600648712074722653391781138077450626057108620014487121769872028651998847844934959602214458235142620884871158194104752799160062621761435862830378470655674247605048263275375506734034424200637555567144840144705184722976560717403370636072249706041923923654486865417859229165831394709317674265477777208054175092502141365501879780667189657980305076563491955564780099508588112439934827929858042681913597853869167270932042786233038556643832423831562581217599098401625167968494421471675075040696987669288254845274204889505383265572421831022733119958458401791894556240430194191358596095544996607381593240798548089550747661048898856680435836942286995474444164259614386214093907349201514082296137210865177503590928425551786262725002116034252194824562249151318361322164974421099009372910820607554684488423843794532317275235796025525823106502437127615843899822019829742593230222646132122448543216513725676901269187080830481920060834579806941165122338365496923568189565020469542530226508872912229797334639980664716489465048584517168335554576521259552340912113957632200617327358790831330087237704414886136360065777192241919593880221504550942058075205391660247041261216838623399154363645392102384310472146693558622956257172000321658493111386041022412526679832674402403559052132289177432467674768791245568044504976647666043602461819288949067690148898466349517172481777120380982353499632467754607145371657184417062765356797654944771690927319224366395099405521534723237677543441589970501620992142525042339238659082678579054160611690254006732189094392555108519724603413492671335799366041611117877859313505483697404446158411136321621356801802288999891104754899652128769760469195282523836631381306484717948031726358085213767797815044583800663335176631501927471091582086518154898820477979450048621019481238421500810647309032421975897848192922689939677851278755155980528645557245540301321027269341520282888439216786381326953493335493867479998699727003844411915198803444296248310883648977237605144158629230061954107358439407355558766438504762006620221379701947501189188076505166573330069353536583032968807577899907198517682431611096580592251223561718955860267589786239690608771308717005875048719336565547935758885293476200037446109171128653517366530120763249381758313954484282689300350386674320676895488525197748780830837448482153259874307024296025990667289812918037586984276601478265417066712789845748110960735708830750045605195802005535514765842246534514934445612467420709065286083132554650488838002693765752964387347185238711662366354909291681330870222556561988917329737870155795902577887740993367989816045504090806398250807305309390391619486884422396829780812954476529669687245568068153365046501566022555411322755105167614365437695964593529198571347525147359347385381781958047214212866145993543441278304294912553665687144033832641180283844806997238162400210053098834203505599248732996075301797148664424897930080037427030751396954776148535559157958537697716427265784026582976382683745036932298516650380557906644006528240275584707528363330935298695966089466169231939383825351642538167867228605974903429803984249539885457512197946125872664066945947320257040658733109601247628192845842566005104187879083613934224106989362847594661819417243082780862939565732223484529834922621741336737400141710546050962812018920318858430055301221875896163505715008582340493613763246324614915442204519625122993294627229867750991293491494233277113730149704262750078058946611213459825842902056084184215921429713114721816160300454051941011828645257114256701431307367321458976239038717980165868657801071103840362062032348434775939167344446691941517718556488832189805948207863382909102115210430077122485481416951774672969566438066821401093591566288152489877994160804239926561490050513892285501636900696194615818647561009756653837539998184233580576803194539458790136554069506609026266329892588139392096194482373927715807019213462789011923294622995750175996154940191230549306374376449822199467428584462469934595642900415335920413708971515932606895776167889655508790610376672662222481561587727572319796578234849464919988828727033647127002428646712927205054743333388268899403283599381310144600541350273399286605365955539519073508398242912273572543633280758822547025068333251187669744835589519520926486038670717513952632879530676341859581905556344470175028508430547148461242282176725701091845560583558294607420393033024483408482514461849416790480571313122092018700030530902992006353238360037074416529195405103620894108108544417247433724649794434715059156576295912403818787815593595214028989537467736303562477702256741397598467655344672166173164147811490632143086444630123454327392936453414579375853541195534133355269416428615512096090034900785945262196418256175377344831621100785994363791489442752964054121185718948231067319605232905784016552919073302339313547249228562938455693506066709310045975371300523226141892662827914289180688228199338200756948740210655583862784118588172259920510971014064540896148473486241279542597363384949716217650489378575364270651831315828093515403091766870150465588637335548127633766973621269499188385978755422749949598053094206793053750174594604161670554866626829440934292981803894362635497173265129581502030502886789837954580548505529832400609235782899331502771023954434875552437042330089226022557413938802442800493954504421846182912862216796459710014505125192756771224823231808547042548451951194365262609477089135252920588482415857937525901212200463887637223897952571665213730027720353903316344926202733184537097031122227943902388292083152002539063889285335908286914311787197997888309998038633902024234200497175423081524941544014099008876606397358933941963429473333147305987952301617561713075435034370702089868988585727631492980870016476969071181765361202349080070147035461170797437356939778036553938003304680791895156123346982426205126200952099217318122609117701329475748985219258460706704904268128436081111281950967299504774483079328180772694153919627319342861237651284479892045093207715710261880528520832698776464153029853450144571901132298928143256276486586796565118093746094719622466447067918304526746808362431211885325701263296911507751527750985765303091265438193532943059351984183591319521610414707487949231815154127909173293194112825092012771474425299361901393564486574557086011680476966148985369676242930229441608164269929305904358725210664360495949682124836191287809721456139471055274906104829658208182421102620425804522752102510643421866901377563725967093674551989589191222962338773374045744048051071952464257433945405440122379029953507204422416894597247789267048338950341730740305362291056616402212670820810453138220924253641118437649336321313469757934694827625815385380720101623165144801331961117887316382433537915309136382559303032396590806453168481187349021429009921447539297231618028097370607252090639176875858274491538828909782582939800930733283057938468799021013010534806948710522935510210754668389848017016450496277521975029797020273311887460795032988561597121816575027442142705295996617460159952966474827184387666475786831467707970203755753711366787432532969907518967455393546753583741838791339802158313814733368039650464934467350629347665527738563956292291756719250107948105092144861371486259932010794185017433454803038946562901634735409843947024764583537011897336958106400075819832737271483082514346783988538085228364719578736385562179721474603232040428093250487602706010175986705980694900018616595170825112642615564144934393500796088979212097600001537422238875165630573243487974279405745432214346314517655094536806743831143209447752038915477652026829606342692008463525519276600399931307513690485213220090913869304523405704117305799353556374299338037899085155735213016400539826990991252389265749468715013068982580729949923466896049990001690193192738134983838891541852837725574353409145502775683244228484793872315858226526986803894537434934373466063928740233456832442676995556944470917894479558148238452169205636728693215197253018459576744180191858614951370217464830267507005045700804859925397915604534628832214494993001071442057187791219632043082791232965601010336444479790009063760577596078653390257827587030946201049929096425433061683607770449209323832894970798778177918952735751017897791965668944990444337103004992613098186651816979108900607735247173830917697995818706701895515879123434329514233591606668695299748506529025378104124334344435866248918174578777143431947907464501509073073849253784041417756211494112332890565583609340028133380115942950159704084576493857794827062867201582179097443211661599129040442655878375834110179701538642447007478253406412765987219197267856913608253535248265366354264504914553039885011391264972740550214721513548560115583756393695863209624404888961764529428289062832943120156188195606928874467958340850014646246692663964943920743468499877038774157077809641453423038812890484706593713586135087032031695242784924357178466562103879384598990803133494978233554003093530542041860876395032530271986345108102958733625512490228792779962830639868680857174328566386054890607639374586860395290802768445014810489921360861452491795378475057507095903945108075706975685929940174436297282596786433343954756919309032516594552228933408818416103105646843704351507812211061880484694673287696611719865846035467322944811260126256807012300721540806283298044209526956543756010508042363071294372706470232636625681328271176458948773422423668553200475412987056680759734851064627694799198453145947841398949905448798449037513336394812538317717194081897021451767382489855616801840113394245262174496636085684804238021709984393973646126116333371050957494223326864423048361198309313949221505406186639997401422208177500205255677816024495640308715643693865471065259333165616858723168760706434250576344875662777515909012342644371105287843861190882429607151279251650085094181973111320462511483733924927757064795847246125560497631915510483792659683862657846046345938775966760145121181054688682446475210468904488098220339803305708093673961189466237904330073924757751634241928586382679677762986056896259666817939463899630715163864584409286880650889292452432219472039446038843958543268838848118143439133121267447033588381875377006905984142591441249567906952862937566190922472338696012446933033592377185966391302275027746766947832023066445216117343317084461309072380545365526382661110285516999515474759858583779874830645614263445101566798934584137395162715449670882302357509950230955597815160690993355103428645528958933641363239870144366321890408404191449257061444902231139547192428283884085868963630014713178398458812912242308783950605051191537764253469169150927794934589383613889962653135948399824692941711482820495939969320523631142536638619600840165032209053557935301231191772694120823645264928604502664787930463658549727031545461493452464943205320048647019851194045541738834594349070075854968873435094729255701256528872234406793818699379244021238350648867859680898924159989696904159756144649831612939644753047495956820179058051926455293174959742442391362877555995445670867048021581732976643345383144906465797792135887142953401950051509270953393555358568757930015969648183975828667592868548286951947611548949634523382951263623196663501750277814818712943598799934303959751856666949951868504746830299561775569388459080984956383699729056795556646404782605957962541316250744870005036122786912216309558417592574491913732878188995292206523203352098836509267812114164429607312571608488895530409071694455953199690237091980714987847955123738738904904777733441113795169607402603593697051458374809074834483577704672655354321473542258722283566258301805847123923249870784194982833643304727147294234405871230215877464906716261164537204115398784112201158557756495334227349356200053211600807086727646899998614684952498007559862934528547208795502652114180494271725235114283908919014277476648035032692852759402670419443148789062315194251544234763742092616919940838936023848391010256271000699772694521399226740082237506720003202123435613928093906910195344080517727933608427607404780483835799029631084036346636351688326890595583290663725652452197829479129733301910367917573960010428104733743573289076773949432086506151356081847901242765423257548642015186857148395413818682419012959999555714736104084632242698910383541868008046096687222343943162292408957598714537170438850981662721329850402666825676980427136524106984432951902420173756123558035902428534465613549670928588104921352660257335770425663955692679786413451216771633655397976916790098470299628625104213882660059855081785917538728454924382477175052895267544675841333916966632268324572514721373016875661414066110755036601062621079615831591849824524661958715556443046532101397846937400868608578894869458443313730493794542127683258481277308773947149488825611173927314488751881706940645771076868026725367562358243722580303127728295361614063147867557913017501582929926948791099110136844500389501847208120625532245936665967441263099613302257822700644391930691847437630575241566372296918051599704897583851036901999552636473652342036469641959353094961121777680587865938364350555446611037146945663916729696594282867831544004447755974441656655123448513471796472166585623677418650574701159765147784866941197445597473878855744636909184218660276530896668073046090284303912994582660392935161656227968926679243797991627016829223597227126887986605153285861781687138523184700971003978628944113902706441248800586873273933725915451243811331193469157541279028374305521126689129804432980145616147243816123717579711145079244343180141679236896780083527013205826717411860678554413944305031099051378462149674110754176661587252968246916774694748040001425016941875119078889075931693034717419223396264588827796232797117239983627587400792495601251524824814977225903250489347785878370324799068853248971828974017572886558801894580483046503223443259330341734317471578216596457262090688487951796263591441979213387274650338450942719837951679160221463859802051921014613328045237265201456018561274029241345217763412396871977171457271543959889096978801339313027856219292397048142920640228441623127595773157780011075101324374392490497224943164026681676152503687253828917838150862769011736276760709721009255559614918589277963195192525914796262025625126977859168190697638191789787683722301383630099949634142939348176002356836491736180736514333054331184582074635837516989768248683236306423772895962174684656479137962467111465404864795987275163129729158327625038236565216112630954142253619478281778969153734883757155913004396740503528252337031690650421026222845158017781951933760185978806359412947614145265134666337041598837465705529532043151799707471779188119994196778874166364187956874496961405046474372483934769288871214223055371809277315903777143029338161862784164948735728415247641050946922586333678463753727443207721274399957216945007848718931862379136541234292780809670230188287639950273012578432257898166866768532351928117177839531450527758058386203589726136400001191792111469152904701836659651734510399879917898781116019049433641198358609047852031877411654938067517071530330399939700224227894734116695855642505502932601045127598432439083973281052821012992676542447012284627800766259358868751066951590428661310178331638660349696383322566678264080637506004713947290310717830352884780148733790948661002912898087097265563210234499490156938663559266901390028202339429487561644398425711525995248233640555096752800520611359519016095868131135677669684616163605071649264642568075808247079197239899177774125718458207366267644985982195405253549218280988643161192893886953280955399115529896969357021530026010684070173713600331285034949435291803930699531574775874087513852144173215659098031707523718481354423588337770122365371706481505127077202863662419668321023015282545058003340925008543132213071585665735195723921801383451926732499433122719427384648268195210203186986812209025613695053960299952248139462762052942602239100914544354018113327876263340586405754602773447046640155146223890511345184954116264406546627148746325444593122934653009838135290102652518247235653329514903223803038222489603012340072598895296938843913954778720126830051801664832227956494001168080062702725241874265773871644029685550835779741094930443415367797054532689917473723647158362607113006049690798884975022919998536016309335540397392080945743434636090541810708096217334383906445215997990467410080700071682930017471181824653952364108594938196292163473008393484697997344410990042639559122996996939332676283908747588255351519926499423969631979996800817528657960223932400287616996844215191847200631889715676004337893947966796391555197687411898493642472180861705118814633584548475845933234613830596823719974436932147357835258667962968312906225379180515762822949178442045211112313365561239705420982420686282679092725581137590372322438828030046856780612127067690394537601326907064935002496203874875675184990389309152775832817000676414878561907842959231352520218772535152309408146877465712829356127452825682298327690282942707395550173142154194547627109787285380030091944315434988234304669524053124754318207680172279811345756464277086748703387113921515960411278821218862234853119498164009763654418835870110639789512532624113770463586548608154476837351959923149144112131853088399375689337682310276966715286260274734249970411833635490447853121558478065215491000180385550193384653844349342862087045480629680935838021627561559309926942387691527271533755304827899504585776293005148333811633092788924887750696571514299591652834297796065750250523593483100879984893923449149692382031811760812918722305623381008616553668970359384251269714966108079631282687569841447480860787998064125015868917141075731409701548475068481061093969306686570339242926440963758804203984304552265442996157444431205839369809595849561844346798516586443637109572372083190314524505806137824833912845695553869407665397840504977981207990777144076542868947034205238248259256114112562805349227342492531314322341284278007252078446564654922476911332043016007065061953670963810577237575861483269453238595831692480542731162565437001596363166743478183043245834632941967940731272233863422728430967845751402303412853906121180091678566362508284162677862996902062698213426238463780851682257667860070280131247172656338885654559141303583034392975441484331373034035744842727436017496991509046076064009422869002491165434306029196246884238072184553813519944573805971922472174920505951875206087377354751717648590607940402171267284615621864808774214527074811395529950292656264941278502933588257963288267078887140024286806461316628881033034580832663714425105889411395021708409474630476543090122627772336849737581391376576331679579309625240221138721048097534365597478853371878071420827714651167274059531495768546114253866554093168012611979340788492492674153845873098178415421623969286985635247528363086647017451837035321024364281199340202608563990173823376724286444904298857847274260229772086367325439515232995844650407394985957335685876775427615217728364761992182598999001298829124345852599848173391919623386240257042483525990420178820810234737284751375913497775910140332279599047321824280106432864270402912122973518936555726875631512071523254100180791947588119797579072156370329958655497213464697523883482338386590412401289372707720200875585045177005566863641938921753275270780671087960368016608864750392465604170258740684952177607082439102206052810235110498741999356639159793931384584627308658925933265909695394547962837104828548428658871978438172704714720004395041494612391240019674390790931879997589360009438310327160659993991870480422797847457948569103530080479626731150369772169093895828832327574574822860153589102155938504060027743554298539413435464855601609058067069090356584870055873882184547240100550146316817249420446632046619954748603988543074568822674755248257506047063539113420725399265002275772908609141545200142139691633448931465058509277880399396418573429290465825188618237217484394057314364935955450605511792573590253320079061709060647911320907027481439556320183536372145621045770368073260605573595612737965111273743986132865776835127401380568494679720106642504157576373026471501095923998667440129690663968128335914197511977836094033900756869722319606198079900261346866052091399341660878642685194611823324472008729615519589453138148078867246968307021009655312357653922120533906949723076922601860809388251187120868921316902805568947169973828301511678869207687128114244475948201210657081400991751520331355269236340017544009036847305303008224019968787769944401211212138998260953782321736256933948674326424901574452312293765496241196380828620068522610503177688556312582078557179369811216831235001568168764807553678804212669049285850202149578642615972485309146434711653451746605428071230315518750992979539188732311900249624799701771910293505625119652199324325569849037073857903234784659224606026178418894471573695220437022086663189227362362194912597104732093687743739019940038616198741295240529058860886495980723997562216504379482379771250246273951790792839923228814842480014474581181973428396801544950784448439292016068497509970355835318558333459821049460067061657896520382440340989939830308198132669909082559918902943941373234483540202221888105318186886157631147954439000233723822285880998161601647945899587013647127800779488919633383002021517061170415450238476721474475319315864390563661152776484961328464522266821245494334389846435755920541861802494687243556903695684482531687586201798004953673548706545187938836315331491106232006621513431689322447690823553747671793981296271697510152635793635245772581199196743952178844252917350718912509330358498322402850260670199270170674015284209862915910719298341959883969032026328303419206342873398293777061566292885305554289703899282857194125992311812698033703186818962436650397778457817652303049644778815190691597069968565265392400564900272776300595509312017384085329125511370097370671594272160529589963581247842829792221801814302270467449992749697663828750935677808372706791335540121869075903232706200044485722023203458295423147355861101303017949841706855724209806367057942530562356217162763756345237032466893101107389170375848356667808727810218094819166616932475751643764669536315204808463447181373260098163804434182302123564024746347483322316594366707645920731383252005389773173474147958769951693692121281523521137308064102290874603806632700692250895573299850043587182725549950730819165510745906688967797642173478519175536353356095959567176128745096403662441306966792104048445532415718686187044539953766018360738342115127840763144769788751295363047223536362517208359199038231882368423148942332424430286628219674319977548369002327682703953438927298537209078419606476252707760885798750143817831535880938112186220139070177020690104786095383038201353083787888444597596423822113836759470494576906934498394763614879606781022900641528060491371709187376732271621405305267494362721421881896892194723546513722005220767670174496732413133437385836003298821941619857465159999493753689270340876141108498058782606134816710484946815572957949858522744226612969468412574266394155578084901936433846699905952232022468409601359803649875558880702995361200801002411395195122438335517003449686053192421133390488785966812654087187451077142834659611895666120618767069719961090489836768395499450450101826704000622250691358911175179709261168502689775603148560204577626240902023939044832127839456228566597718582609473990963897828817768569900014533136035605003036068818983146230722979783033331204902621430374028485679672938640870994710728627939351887459757961469617705096859306418169803566080125827119484252695790346134099896171728796209060992340412121090491721278163079621837624143318305205775305303572706656316574642876180286123322978185320985651136266373359000073593876720149387800705855234724991704166064923940387192388373445087639432831833798766076732653765081165998119155717908485122465138466629227749899392405366506230509878549778273724892563384759854431741598661902421753754394508539434738340853843357377202605649478173924767811949152012678335164562908495966850338952651145151622378723800274237202506483700337362778217972325392202365189410830663912322989134806092460761451268775468904305779527762736555405298390234502863791977727503328530827773740221755703449400879093670191521807372661335203211729847361200863841964106860328959892924420772529249849108817065930344869030395115725128775430560120806697096865703086505324252161650442035979755390420931127945372000420184927776701852448016052053398981255751311718239282995804014237211439132841070870343023162480710043138412579155863161616579410442452803910784279816289128040997755835767061092972987981450535137946940044056413444478162697629305068601771420758052285364426791835851695763222651134540958068252875173920385957610625681673861775875097495057703203594416855852845286825490191069709590831284972068434488893632196892868696556765925709823095300670155040064738895412436845289193034972718934278205105952776109240934001815446528864623800936901972435212797809913942049477199371714375108096003082195675983293427755982103381637867033159390211377244201076413791539919113284352374871951769671081486540901010052756320632571877854435907939111264173102391813520221760837940605700613243665701199082600793288089195772200087892320462027434919061866346868118057975702707097054375581916618107975692899000324933035162820024583743730431033555119497018514691246189148916775479950183321622110650101024964417112936950232866573080148614134428376644998961034978759631101354117367423830850365049936814262409519630404988063248164742898709400488994666475943285549377331143063089284649873826342935329916811838612287633920468513986740056888344533797682281690774206169379630258942973455830352627646582073792052313249007026941586284502324104352080171000308620552955419391919569368803343918947594489353406464762561715201698057020307039882765693732137711794978735634553586392690413101053433997488523360180932990200870187462540329750728566627176671075050209919871099014261995283756776789843185295536958712098069488875591761249491139013400956135701886729972314289450604913339509935839507709063590140690661719524310015573491044498607734662399610742088806775069379716063555858189558179556957148558475369033488356458643744004504520175459998668902753696002667170356499144794352823843510174220078480273418645664293018127868448782393529338192324528893201908085791615230412517030808615945962340319921881661696074700543762948901114673991084846152684255879007187775116252462736777668481751010039524961817187802204457399357477280105831176561577140397434650498588540402224965743192559232701689942631082199935424639992321388610334981746831911853602516075277256251498361748678610505322402924373479158362685408916910643218218469425210249641228889599460858675944945331378708110620205458865135258121005440404512554165361621724888974155500802098610800944280837771695198743878037564084615957521270104955401719837969002016522068538390738777309340678315777653890220225100229408328658672117411183865818856359724317145335464501512240655010887905661053810873124021166124646558159950633567433592808075959149392998615117586716275438124901189827664924943062893263904128194608654486428135841588016607739647062028656881801790353240589914895764020816535662006511651742654089902655097302476188034332932926146155492058066980018634125310691158713552637252986404962035846159810217539080594402022806428781046453454983783972234291942200590099657195209994802887508655843150904728473847959737656683548323477351980096178737330460354374837121582359165310788176050352190252108963316072905109857200245910896251067547890236934578780330098128028075687560483730356492455563238523744241813543243423836718787018302563322535267545449539634254047389236981348756002659588241838931589657840853622308362390976108289354786380463195428226629148674021239337142827632056245752589395191068475148946321916847265997612825570678953864571810734044185499584474512955853916729844654443488306403655878601478890600218995241644508790969510028877861110921872767256310950581296965238373250604831404690270952737034871599882380330586553424320791461640509505493122182318767375149654712538574781741628975161427972178506301542661508934833530870648246296771206834849658192509978937926226852487017736036702777130493301607113742608837601037552327291250263355148095323806653591159227950264239817876176881031612080213851676917437757550345980702629875277333330987400282225782091229384234718884758406651684392883308535277797451004010444952476010577979563067983733293812742725163613256511202437638971030276352970829225041266609404381956620071178310940648795598334277254329182059064226446788516897077216760723026053816456777872018666351921510006171682463830727287598169936992949558693440127397825259025001239145309426389970301242150637825994811344503559188235332533068850130388019286127547413444193593150253834666393879520729422494597734085278382087143444087145495775463076351440243564446377101186361158201611387776091237786314838555947657878676267684304687566901649567375731087127058833863223670758729592192447434569818078519567857824522887035292908137257149177538443464889735991475994383991732565547215647366284809747352242061403499002196449263763564039667722582942057032224387182285118853332749822643789878136349568493385550682662501099469191394780496556585644782581535782173643486452713244285830166891749963704174182852827649674078769097191348770886782301703531130826916894886349120133154971107916996928976316715583284829234712337691091003748995257391528568592211954471091430238280543708434139503592086048115103675959394003281169891796834682138125675891780257765634867228717063768334778533715778827215221108616452644793145044520354279406107795176439075128292348523487596407367473720433864309874952042501828102539396081665294354941855548838033523512166352428907156587357718598043134000094519478433049048648182551550150920070234448620163493879362254875994556350677782375042737618051915689036971971569771631870165175581607157054084727183053968903564967015391553921878835714710560020607476016184879986214079094739629370941721881120009415633432106034365392270635479096618090913313284031190599838958338968056552805654240462624301430710132932629466061046129830931070804753005206767860356338702549116256281042010157560871746250585840488202942060510748805544591624732853465572279638428136292991914164268959076651598091231743448242074487684930843880308506806905715036473419115992306645974623236341752923198017916568051638609687127420844466554155424910803438208913117816961847261156068228788757172766980876855978790323860359220052196524915140315113717887519312156820688995736550247128600894962709724912424613817171434378118906446113813058620460001562125632621817959584465634161427087852297827914066347044322624109355755575075303319744689053227487845503177914982168258645725793136274710490008512714256308221013552408835574599816107054417662116065764537744691200384941763878602757771550646008078587457626306677358180103614812566417538329820996457956081959461667747214239716325967222731675044377565630475449825590423393826460856485869180092924480751424665356342002968354647701129104327837317969071489354841350306210452464698474086138033469442914368577441053155728694355326811212754854890461319878124293830269514334027051335267101177929205468277156926129424923707917567546849905676466593147089041591411726734602535748433740635186238875604990835446676189285615238027152306075999414431772447855869105757827913246540012385269953866343330292139267278525687861365467354836483016077640027377001708397760296005778572497121755802914088391795384319501333896508236050473007704778169184547580347811838175703366743668129147649399707192835968715146169462334399499808326919498556287358514300174211225539021368703980310997440070097623827134048625407761623803177034396739748222340007983934168400426235046948934798643705785887154433636385891799160931472867220073875985976924192298442425986751075350755218246508672158480396362540267307184016273257097903459267675391432202990585797438593766092420571195804041112505433755911954384603460708536340502426790708999339602480172119757904065102282740127957386263891420846950005540392038992230994158214946364682173078381102013546183903904848364765175332417217442130148061620263722542498942917965396166837787640444506901928939411624579848192125123455408737217738290671078179569085335153090967507999010870336530290169811672656740712798375488843681048235365676258660356411184345624578455532059080654947942890726695627499261585247309599518159943396322821332455092409960759408293908683330876538312410526662592875895368386561722847094513615699043695852470947680233467093524159060879141655149811049691532178906077200827759532532171153787216796422619893751292474302207574815726962970656874536535641283450387589324715404755127052433840621237607475562534790621739128067560548445778288473166389878233738040910868200059337921490839156565366979165485344231237260018303837304289723181260555813178939332351524216497853334698755492005527611169678184979272076921979662265615439763436241416097159477524587378341036753962456174365090461628418986349695720053529031217709623153213446495696285518746376612100624043539326408222518844198115263699110485882526311451491466070151662906627882213850360751034890314304534896647008790797105837238200021205763208645470610180372328347077085818166015723236204539693494612198788910083386315182832267034331381194458743872704479167196310339822510975016042326687250841352033999355931087847290502374541790652473747745348812628888478852376307459608672736044550850150180369152438056719905433742267265738528645387092680432226785403276192982147849793912340552006948541842225419962327766404971666281117128189206666507437643446343386346692526174290999989108774381810118561737774858058406866148946592251400947314548948654284758075687773746107379204039859639703883309407861052747659667233161217871901541169336289279866060350139821550012488210359911302914101762552348611353651548338501647957737132594139049861986852420634626065552532962594453476309464935899274249110555548918314344608871048065107172733548449217931804122751013089156586164496951368206939454312312880366631605074990205163190902494708148052356001301590128172954641116346031846829483082543167203061975562792979970863205257559412479076053029750475105048411241664642981304431261097759520863895638409167005637736779082275955643110164059328727972968477387155329479136532072523735464778209526054757374505630127877045196358184775379185473909324191420478466226129347193390623298316824938613654500814305877156719508370449572814444309882798724746737076704996075464036006014407765161873100627445086163232345187990208077730626553867280285211120675797081867234082943830741643629940276838144187645874548027567037340423165952302494977984828868115801161299637022233277178098829644992161038519546142840683645926325615898486828073656638029118836722525577801009066608217025739873063202493670316200509618061656093196970830434092518516392663722211548472035652492297734050803820416735797267022724232105508670854934422518736176107106632843874089743314713390811264679400487692550082422323131011404861204519113292764926712286185338424787940840801643720943329668419521185376273003192104231227353481494576649142342564163310057914044467086064790630014549321238699968681407753407466386938114573421365576822907688484844282287329426869248424340894757643292290488807928377670304630902783266888015269179609547361777313503109757372195171636698054553628307205727645689329903179985018177595312645633353660330641753251706843013601447852430083653355691427028113551063578357283666503774324961417733144834398719600962461091821944307992827564555581315301414034900060600243458672618287497553456698235984835595554580848829857626991153176907789761663339347089721399309992050806058178238190016284491942763661628261624082881523989115553817610956611872777271003237759494942091429243312743985023333090511904694275393585324490017941054832871998133919062027762088703549578471874155926893862039887831334856099277753178312554624101698205797050433716291306941804862347405642441339669879147321232693950243987788065676240867347268226639580753842221251994472563126018341391257159782105820551863454111600101621659063904781868164901263871713040092310380839774306087569644615980794928593642847613873407338704261532946779005739369347890102940799362342598354572452879889694572292370771401055062785505903384392979646937765783896628330377985716949397456232556740068395798420042919805923004943339017663983932939046448543188674059657861717623099846071295630636233425551762882946395635199869688301835036464143939713814283964475829793634677878003362435803044475738577193915710563050371217825733905987632975513987358582064058667405872700006402886987783765017759735385044454479415390471197996783125168414855181303079891754032210003344516959537709991791257801771298785806428057649706399404247076560148557955192504670304728403984408383649777298482488145641856536712905994895130586455051777228814300546453609873577301348954373580740946152105385598364090335765815625757954070896582893709444614287046165646293393978976037756979740619171055558784140447210229056965398392552010744900158579263008591242815106965841169180637171790285911618957269036639642461859634047024474396903903151600728934436715533660643870866677924604478762765013367789851184840432573930248193504932785603907312564130989902311778974504064438070885805900240642477145919126116583544777414143228116045181881710578834240000063020348591173615482391919954139198092967570638494321943949209371382417281371970694236365809269176344266618579336145764201391854859022398977573994624054289792674034000805894594408981856087779842078930889024158049092830929165784229732506665811561540221637197318157936453583127625508433850761902185957109756947226556391312200309539568821366400874049493910590883611797208532916498195038535884609611725875313552629451835402012718733380846686646332538953349340621919937804642285514416627542386354015484273754241829268298206058866723977885747770800250479545693174448019400828284236306155542049843305652863480529544996225564675309140792050708294128256262792325350358044687502659991063494794082408488347194416884289571672087581382952698275463751377432754142287786555173439672612899844503292173980246490413534054392207315340879015717322676237793447640268568884496995549367614742906117878401399517838139541133616414385081742932856001814949685475591734142897651886745269604517912084316567853043924211908715339268538169554010071778759926010878691047319454685985272463184992543892578138202966748766981446096031752686262091970112654892229610722809527643222399144391639710974275184103523935912843168925135429940441903189748261175204147652612032139108439550099841915093908732428509782319078906515100271959493812894526305267802463595677743850631023308500938574541465787203877360204581677362261458724912552138496216369811320344292116102551228179401497098019071692950909886149858316357333543326073278683090866852157463359913044167702076626593481572199787947999750243813857158751474685693832039279024173086348562372561415491863628805692878419989247372797701918598406095120910965209900361591391104176128117563128747905808319131962320032447685133318137378538977323666052940624597063379317163591452068017220613767326546805432977375103848389356352378064740238253393591197424974960794590485458369927592030809512946790927415397733880883607067018098632337094622994520851768354652071771059168755392042552263828739802263092462341771250291014972871236930379460069775403202768503815284105137906515363408173880113078980062774479568842827256491431776390832826865555530638534777628085443781449808074930581481673667164756505267487818532596452759171583988304317514791407823279894581815228448769003370659142798678084437232715709388458312791471460664864668964415273713787638826171297536842027543133881711890331312710398728849912216361273095909109210955793138928970531723018320999550978750922847002895824719855107675212434950933689682576155581589624110273067062390754877611378418433488169123431885995557090224223346244292364117483135451905163125721828072180831745399757944222664921296148498056620619657563147804936956107252293146027871814961695361515752044842351716808013002225305978874637491758603475700912351285895168868741360469832986848166127699469091071361847095706984299829310481856166487771384946193842226392421066240624582308546216898784047096617344507867900868920359776574135210708853023013747579182479815174128129487874760013511739887643042390606734796466089122010754653376969098623942987110269859848182424155138233072612699170013518670910211370206859907845677428925357997269572625750176617832412961595931003435336519124648601641070634382042796321675812536451851818869637554153904520524268410751115753859510782179475180514707425417217918926255178686097042810880669072631839646230758381863865884181404924789782314632911467024868820051168589095062994589565226615955316200536336750953198621833314631458656646989073072237854968538900895888312222318361997367588145322850241470850867348096828858734714659790941726392480423277417333914999511283783525193717480475091307657839271978184188345431864876733040722943812680537995969018852451278066892988288071085427799135909199249636929730830160975401709672821770614352994077706429909604815196651525237219382961028351154437188935068910039531934522543946241277165655195455784691441131279657829963038353771387028599259738687317615163335961289619552540947815746685501983149147913189931698889219891116671893183612339986652572700427721576568222304905501897155580832716422572272170733418923434957138486176679608847483772303516229248770033433102292070738579778160652983844800604581807467347005809430881946270418536306217470552837102872769774990037273901686469725342458441302898282488644064641913338501096540460604351826658599314361201842984605666854388611500959200480687122539351108741710140694772660634691186753686224927294046565760528701165519117623327752249099500951620221283896176136404924264353619496193162085459441757273913476758307683803312904122730664521408837861761335566741587093684820455828799674899800357796418887078966623400738213740164078118189746150340768481377342836545755675798785073604897915993483766553215614103362332961132875574202098041005488102333534033857712250049906607802596866565260137023410567185569706196736189664610515549662524326317586786212020852685167803474576018157579837655047429404493392350451206402060688478564388894128346641402633907749519661057168078837051725395881630512920733921815447268051272797431164891362683384519569057563644107365595067704214941213976218139665880975757831160711127072524926520548042555887156499751877153009276600906033654575542123420805980741515500819447922450031035631147122330417425761551252206734703430592186715047271545079372976866104782428780559048850668404298021257452703456553264458208045468677428795830542303635634678230299014883599224868409809270966150100978890735717317126876815680023991427189280224656181666428957290965960034038118931809120938830270183265090834017264636145400735506985149496683589045889600610602108017793914072525815050143719859302509378513045564191587195902797773845195995924474828831892681281646133011623561250372212361052720269943358731188218389599760633957165475590385722563366667644072524257253012515936976258153825837922475949584025159162427753136226192160740043071362359922395426707399339552332260339274769195683548237235519538207192647768211507654611476982773205656130896739814719505666738758206410619969157507789644848635229680700686889339586040650660305259088456543646656388586709410874044214575954203469940109340601451381645593685909753523697805768254257202438068209170328783294247570347905111433429498521127442318506255989178202234493464472602085154259844388982858204871349087700345507022064912384655661333582341729401408971295125712673868075748140258531828510560183519310868394833248710626052811611578548246787745138590123188008486999806760179654537766562161820169711869793396671228476591751145968614844592540885997211291235336388207666472371882683759837729663526755625674460175431743567691446717698918125550847403181712678706245012608885104273775420117391081330796962466230039615206067177744925450600113490407713457339768819921628796906408763461907185672539085674273647499165371716594308790946344216419444574689856336050448631313716654929397866057505678177649959034335144346348993619585065990074372380859750956174154651277935843744817316010038232229157231852081000416132573840618356081462115464054460886113460511797297627880876437861010913463810778339471201249575829036832859890135118441848850193104562761147234219126525199755687979087524493759900713946892788725824190891131478773594497034627692902436424567884423846912599608891227370630561983889795471147864560640698558012948133688503760501547897778779994754228983731576769126344657567112723396310447143131297619633349531885022170357011459298707191891628168437629135470067508387400376615670179103591602129200185501104600337302414634282025034239170192917884164329040569697904106200217393739869220739245550487980415439905601528866662436326115799588880615709510875178368689270716487771025603949583272712368040853782048514328427043818899330456290190422217437712297998560979874447082163102833872458263106844262367149008054104645588944845761002891392911964437971595432701930233850581345380090698551577927385164328637656391210604964897165425290233059470109584205972977277584020443484923384662285953037553608118194123442121360630896437684065198878291687812976388921504536949833788817855320530033402187553163637012148689413699534818005897140581358867146104823187412563887716014097098125584656880405281082609381071836953305579356456567378443551071322846502323931677061682713347597474403121717239353899058791538692650046463823054282290565361738677907912604577499222726363516200685666893921206070926394629797203982474277858339082565153307387071225087704397780157067414275876698049032581158255328311618050532571016216053622587079569858353565095502837269635748846815075286627337483606356455197439416456393265960201090616016649709213839025624759839191221854730056287132552737049458786480090217583916440883864237838668117071643327101555924840022695755298067743495983968507725226949350627044141275128052508547769048442549537109286116177922513289972821750046067770402548358084932009904579580548279096151002132074276212893451989635015655493795224419172048034606682470222192805317218055381593613055667357346795035765181725718491998778981159271758307887180023395646096177321981354327821302077305356913054452651387141176313253266830288003531543640705941824547280123937559085010866497808429049234605094759305168192789187232014132036652378978721897443658741122195637768442926856444191226576954981071731830272579298715299223864029127097679953210270029895743518387199017230036727068403213349106696223258985071571734158454610346271298170610151475915058148949131760175406336681150591692723108616148091620544605640690601237719120845466551879251457481496184880509049739517076820297663285946995320234989646703310107065160903288594234343383546412429831688858130134132277091131499694012017650345305960561623488620933893084174308764742834323230643029668821396427446775229365456108073926338096205546409129803615805128007983222433306750906055958744073759575978181457899866773674243581956367197291290882448637745024955878774988120251770760482275330169007639307415551085963742552639930464935512447329058517612710647389414884181162596125727433641518567796017984699293690614515073624978686385667509759469875483157604853735241198716806816593177504414693843846883246806306926191131420432094894958859489004928208368966992089261278550081747308053245222600114537835175006063879816043653913423666581873189011690200454093574459603489728202995860589601774262685402810388468227737662814091744909540810661348874867016951096077723537803270862024532527130164518062535614653395323395014465699610232880120232755913974560037485488178643814955636593452730937606877117001073609595929811648975287046812588082071671367913639726642187247975441914530777149110998108081151407763732779605096422968343775951029465470808165790714724630771198814112935234224309515114225693207797359897398963209917024268229190333696293771320300496105929954450249265519426982856312643044912321817052355656974434381391218848457032675751246552482329905864498355125853261790662319595725551321448886130910678510478756011709478502660160632293382096315372595030941389972314968780977419925244192202503637046703367390767518291955475969202719988717487843590477694088703918827751815775278368510439849382725235379288818859369584713105484504945585838455237600161323740835337755836610939036986878627966892502160489730349928949500122328048249846491802213461011840650623334825204691768856762194654091490962371014434386818075767595577294504588250839496789658047825468619100532323528021564771095055379410550870959690909748818229046265209540641730185479093899661053954763944219336015181938966632593410414035803692955651623486883302805351735587984541927465369976272502052683836603127395666468248185268787838610586447397198095576937800793160683499394203544776586448298360354477301958334206725005918133540470618574356701430369772741200386407571936713734431265641369406412404918905893400050715063022271257288074768188840926207607435346355342355165540895542035538857807957157214398371206113311549607220736160064963076171932415097732380596430923768916909553088725013135110557793594874125023553749826209563640457501518611710175215046904418242574129123222611017042943875426842269401354166448449326139904432245920516128848680508345654564954420646559551303382917963533228373190577367617872154102859588392983859218405438411062426322784297289151304172622214642527322630323100442023299519544555634832464772153399342678705340828265526719484119011983209036297246809611416764993068741519717492308837850815851313335986324539890006291876923083115000357668363740466715381657734304943561839863539774911085482244964535027837884416717938434888328209411235339720571608966638703574027902876764624513053773039723186065126199034211732633756849551545155692914105699481016067161837258094108085017503884709274182131640814132340564776928468941845614078986110220280888824835503154543722396747904982479004391438551133956704462464807896704997850558833469144651341069486819146479196190705256400725863069648490846333298752976343648082228609527764911322515493289485169618649850334466038755638733454608694974040493120905794602980666167280453323262313942715824228898316047578297698650482096129696357825293580024999019811874691134992298643648798718476670009696738758594099292842854146375965669430425549965656315306032456683003844661038878652327403601832577347241726870533236938474641931521552303962678601363153698643156045404807073194465446588217001039875681394114791553707885103756271405547132951681402883689329609453068400299292727092130194171690193246051074602912224584931755993032420098770128170005337933860116840034643404160510260877454694365737789923553689614428983873441919130146777290037325175249444265390120983996189600197399070161891918652446911723503561366853893417833391970795691904702346433921060640065948728971282962066859400226283114153830249599917883879110043957044378680685235246431641431204556762432276304655555272646702486648866318544384687609749039348407068029012373704839720442255975094753094437824778363101862089958021802627856374935150669892579005472187221453082877954228033652364694795091875818251493524316687231033607799276471646163332760068839661015263757839951068402920848103820565861176924059967647072358720099393077787052699373795125961927856133228702817756228682642199944032304811517504175014844083912844999140672853887082555013050597559667621805419843080404013905640529126934498752985138813102587859411857928747445771948874841002700749731332073717616182161130592320203606256000529440115035762520085250945305745076311678504816816291240774977279978427800654173933526399156422574267259205851139168662753346308895432901545426258073063094748486146531255898238011663709895737118090344854549136342283341441992619668443340387945099689609059380309505377364216929467405577944132100972040813466126447535845167560000582268698400896046824652204361272060988379619453347081108837357189860972233005364953337601338561425162678250335515158265698168590073259734324240692560008838249620001116600134574657967014313704181735353499677576545956897671522833625611705050599866807357346932039573307590796584706508226795403278264364871210103189350503232114972611839623199786582691517605799277811237349491829065046933769074276272818192626426163696507453688101519109043104918481821112560026563392607536421792113758414313669289647006516475823523178740902444275572928192792907807703756579117199124832346778344550498053201803115639960082075714311062585269904560193665516794932829984389655918332835481562992801244751321819987549283785060019193913123152052625471875832199632452364823710960293829689942437354964634808039014996965490650349893165833203993061351755154001940200229252329048968502072511370412505836941366755664271320003216556838188032454976112985525137806109897728771716103457663929814819575674903227585054821142140783623365188954072468966190355260411377012525339545538286070757086579378529595412470156152754091853746480642960075718549326109103748333170260508612290911736689968853966736028760664355117568646883286819509095330987996026812585703389382227398166339536566590555008373472478574869780294680868131108095608471597975976488337070579433732831534143734306208966995747542982412464796132292056819588599668992175948053371447059951496843780872321858320468799808345412275970010076651896197200259545506075762885227358276526317191820089773930298708530989197288765704833846824360828286239592999208941507616974222895285442758860731371387228840163637960029420861313466799314763912916444026443423719722669916462383158918236656195775495719279448331256584005149505079306597496799529802590228586292650337950272877901322440168210893671902687874566145082801129579464315218076238619648603729056007261467078240774900408413582846159652146129284497047656009738596692273758267594950996749938875759927907410660712351031283040934031212222263792325259223367257361781047006236743218030730213796281359278491872228348096456230139761495640932745295545918034524443930686332846179197178174770242336125073108410328921164521095990035058732729392433376228620900558196406412819585637575050874178620414198669838261475959715354837931831341466534240176106747329817613445664179601126173169968497818321449899982636777395105217750100971654288143245538969511811103138763488352005230539094874947990699600514320437219230585515822632090043301074804483339892784157730646980163896000101968969262454495904305288906576878160359472331978666548438242278913909563981909926750087614167597485121084899473362263994284217992987395380699790281578506518926088604770444411392787999709276276507263034187552282426281221616535302527430954591289306421640460089186470433675353105287430544611357804412081158410175126026752558201345175216374075513054184532163994916630110613510448366163574843523946248027252368433342463960248912627856391399888102178459162819569167068402453212882520637776692433081726096016134451362658124113051536350131199376400549379893017550117852393766324980764313215685430266093249060271081012174117303527360577516472280418279924187538012116410659327841293693114607279338387467240166469569269782094575232777826329985216017694420723113473339511999948244386505638976935706885119330806223464444697244126605256064247343052841740861512117422391366321389489785886687765086821001691753617130254969630655328309517450152270740759661874599511184427805175416920784899186143041050661879425446168867866661959502630514489436198942376319903780480096918408545799105762709654992586418908493748674611962446421821038629914686682419184797818349181620687610202603414200167813496494932945791284758266729247922095784915090536607890590580956408263595839960289481147917202052131074368679373938145072589669406560720051371216225293400665165876887666599033994391557498829189880268167640515223993193927221290649526211154724677411393152428962988195538430379951953092305631214430498412639629950823361798993125162785063869074155403219763276281382733254607142632414438445281092996808024477549883801435226384664541837987001294456105497533206772696505724806201980923850288039084248555367640923842074946776514654251571920647174463332048458153683190206193909277138445283307382921385874508361912256707788175055749565383539568154171368549738646591754649974310625887629298534784986765473107641989622224965299095087570407675749813307239661926805133157788397450886206320790166137222282600609339800750212357814001400578272997180367264835780397742364862098713172015093907818122685671964990440560661041347296848484456449709671581538062592677539012353308514762973369299657685365327034997607571096014791496940344983592315930929680537062741905114381704452904780958262981826946496862834093842559792979002711010258073766643829384326106144587737690968839007786926654830610035171238093055931675216463681804118533314002378925741833729070770735622619022216481342036324084999915674998756346828713304710677011157684246722829783122465268679746996595997486014925879284280289825003210860162473695332425942561958296228373465217667465615245362527227638445065754713011786494374219170190274027708847669289692717687577485294654342870732907998296429860727319866942705351399720731524086157510036061662033720969107970045814878530921649964132748883955431105921965672685189916443873574499398956942435418095476475920943596432531180791237977777411702960851302504479130099350007858958469465828762827197795208794317722176353026526742484605749272827710640478537334946098722200811567452107895121930880103331660056591602893041429887087457542434468334278154805074305108721293294087020499970469938160900561963304744367352506716405592240989833840561801798694863850452095194805519289778676753759079086783096278564665827105513714355668123533383391825265793268029453346981220375891433729694805950565420491984372391125207851552429813995458044837685139525582150847275523371620106140084636176287639712070104611087211618837174721422804353388297069833217401431646907245146477963323293235046069303144203798270329225167191707525061234051445913888587588515434511690566742641301568958682445813528440448430340984946201635174614540741722580216257808934610569915073470959642454649057041956530506800865130317920323680236110507592142366938427026397379570103380238646376713998237028759472685839521816287431181113285078594596235503396044398541007884252432937518040934085809070591370400911538562028169233673170208508018041052139112208952853030609680266115857014773983472360643047913022833897372394376790955927458218984036906007560272933778311515599348266099265880029898415045490057762447997869957001164781400951326718047679221795163723306543252981934692366702887719146110787015890533122633592747684867907411957420811219834403883023258186318056553563117038136317324499525188364184949416230548432346453079228181928893004224346563650490625377033736386140491696195616347197651011234147622868324941552932653334376659782394368583813594416173760128079558433544583677796931211928099270033527946987093102262909836421518198129255072316187883245508687810424697971529359804709599283194949765847069954646105535135985265723942295950901415269685126221863501625411172634704372943548424803597630298087453276160492502580478007677304965772742022672433596364764747686456701221262677590602377284237152764119940959255014909218526746886132166501041870098956479232725324539777324249355403113931369300133033006714154586517605721271121533868544991231110557599563246623648428587668883231907075253767377971310476045985483443383203210074751428443334194369378424629100905754841057106776770184008120665864551805698590792366630068494341418426001293206469518178217282072991203372576375513158367625885326982357108340402803972295456416667314621075044059595156154178770404738037754032891666705994179959245248955395105723828255170456925816546722071780824620425770515272325345784653735245835687960999604683468073310055148727029415298711369559424337663129397591573994983661989227651560206696218335512378652876613711489272093872752572024603390462783382327560076260202022576650352238649795550730336990148274533655113687489050000948729154668492449360194309625927764979231041726371133270411090676598615027320290301047951697048703383645592396417525792286100478002106886849197736731897222147491744238046644268662006898309596256047591392949859710636394659914987394724100377535732301581003111228016166393424491505900054125812858359791800639117753327523447863093722639501896674281725419110591488069351397412038992891482213892824604033711608463249677539775475815262918768394227848101091375238289580321888414334768294019814005188554660606721495956503367002728027282757525280962035783260850280747316105980009627286586084327242491547816861347739465384750813410132099215393573336752610301880829681106724171729727860255112976342842904335313535203899952140845370489945263631033975125760509498085602613324783463534768146898413492791552249685524116335283193787269340687884317418015162453501275653593857458139453901958157487925250910319495139669746271561568675517712512205450115957737743972848118594256901470150102366929681641325657106584243858652397989222635692593390004453298084891529912235629074792229710171826650211932563163795763240470098009962651129849018729417104865053122181592742015544144579910744139463235076262304911270813136909181435358540380621451259270609642457394579473377691541260449987245309283627600852294019889567596917049695426029135170597700667411836239343682673302228103126158941643526259145023967085608880626855097025697228478917322980999395676795994901199582204159916035746665066843124680703359230581761840810520364573686773951989003232648497882274060237023689678827083088588163096484110897620379720505736961442942692886529871210007042671325639697457565686422334999950243236554386737092478600577130239158539854294888192044357322055758560245514245667780175317425611455519597568465367811683567767888993226213488387958786261944467078528234793000500111597870043022079833853650213681660433419781425687104493661748033813274892277195296979879412982786457156939613630367462438798978697123725890719183104114201769282707935580203574372719893371259355959193566224880514245285846426264134540093691570093776216968714420943320568782542012351489195185998327529355155802125585053718369845797472160220063120018263954254167546287155874191458460425570612595064479970646028211619958618915828732829720235786146447592535491628348240990115697051996726308684065613232598687458417000612576427686017576465545319480324212444722291156186853357557910465702273814319607603252594934337483436292260421118949478824152533312957626786007401040686623010749716328419569014746525128370606322717151045265302751422614116781480849517818208129208812545202904923786372556261667046442536198742396965806738527617916741951847573993938681361886969512446223777516140580942109691303109874619677948733546332992499400910544057732581371341547529642515937450157692222864127915314952663897338813279662375590308564395580709825703180421644306796883201673175650014820784986400834433758487837345664617117703228957830337342193131093390408035835122588935996009154999759055292676583899261782165495453734118600805198225395536454917036185098544365165152471754235051280847673127626500919287368284258139427506606416440839865642097867729827478331789894150712232346390999847931031466878714395657844315180557605863513499904806546880608719039272041597668149829519458403861947887917942151910030128218368838236390359057092787465860298384633851765879322314757460459869254446776716162297489118121558218260465946040619577551006055931582910240961476773085064188659967718041460342485657744986589919998772889775094268003273730599855943977796895508625825833385324525719055814026182116780125873974481527012260465503388120331760474358567532830358538386827709452124835573920631925340066791533931403045870595502875148760294292239452867063419931072130362626982005385362654621560268215859202478564731599991508390870030134813741078699840049246193706985746877876515097373803578075892902069842392666661727362802474259248804092726084810789067574848548121815344867573569499039046264910724272094584808363515098100874289266876565711959498568698593640585717920376415072856743063619684696370764364457444100946474844210495317753937820421641875956246337526707879047929953485647022636898578284986140431152025301959033682832963425011977795591945889760896766353774598302920445333400481066785229386596191051685940256811175110916402081280592949265162127180274973943287648125510021920433155742726239350410816750008499258078340729546569016185405294273711108544068281112885603434977280221047623843396917821274354411601016299620880367513753330602792086502685849719044071939667672349970628954189652645795905109218675438621185658222686818330062489012125593835653311487721813348682980245811102983619927484297329051328703457826924855121008498604331860164323949056163095933867363326650156994523397818367289169762384584390680322501172624536027134096773303179983206840988247229219966544494610869870239040168507571714667407287275278701663712004989266397924425286423646830244442457386394475326049170470887108818281150004039236980022694324863301720678016630313029876497613388663190006617361313615735694958709844851379669365462996959669872400558824199588011097644778293768878699807273867718530301910468381855210333841256570642983935961741411518739823748612871486869093557411405289993592889100458383388030604804331400805181165907776735643444252869967357257544074396246961489549978860866180994899278271194276731041457680108859325979581010799280932988181398030183479165700519777578611305594359267224845304889775998638769920018359187326283886986582307062589499382597398308801216616724603427444107412557307553870863690659202929036690384246293146332523462781546929263692848446039844339690007825449415270432217670786194907336698559826681448823965446441142149260834452214875868147084996058213545139958728723196492109558878105649508426999863121182309856089203682346507701320526800431060543196212786789205547288740132970188804096838457746755248050830127063093330924288994090847805957815018256093847631736401240109019746941045845836035602949073870071393518915458840087042093783782218840411866927281399014332573601614772499499221868608842734586160402030005505025033206123113635632061803870822413392162712193022772923685968127242802916761833241131437496672609716663284436686417222475490895052330861584926896865877611286561768248386241313818082633970679120551202935663557614920253630249328385549364161309345193247754081386103949103548960854483955004954133118675041761965824460972636708267975412261897025258080690076480264619944119927141239113101231896113455017738309036113226052742490684391972534216096215945674513737459581247209309993097664345576049247781012241363900008457274459460104304489357246186054715817504404033239266006558847800171709758399904385532935521268066150703149161197909893601854380808236814846558932530991886206554011690372429798495549054791577652268323592586589688331355160582545845649530468878781742316237721850900821418916776703278893790648373710484677957121386696721534851617380162185953172748356400068811380341371943427031545973365579020496512003564675062504669585652517340216889705229293491587101698744295990586338416147786541410486361074916775107534640538620147985755484996377783480323554138994378872184136681141519140877677781965512234825204926657204417306826447127444081584585808248292566721429611546019968073173338583526948017238659864164680424254665914369135939112509181989571120010938101281291215833638622321415608763022012415439093028960513106875010784868920890578162671409717053898268609500890491865963775206290136283408133875607956495864792610932542138252935175673957228861971199694003959952398711326383394455675550170315777773062178150079755560878232781959417486625654694997140350240323998452892593144672080664711352292657746098225635835724121950735707395279644376255247563048550653014180830555255515063342814901661540142006309000511931668843332137124685675584989872366465093128092618943548698449589985926563955856548206218477068148686933883409221373334812988137581669242674166858780361518982328977316859262575488546951112004598651053361679126420511132599211753350032127412941880170367966615301090695329028054041133689978153898102923175068720651347519292522479234835905832908425559154781220697899191143652700552459292793441707521427711599329208325557346383988130170756320028443674529927442305021810721711736458590000221586238705692501801990856439548259509378070735517846205874406881175974715691115636552354917394135787462217366371420801706312296133589279156456161373032957247013780670209253032719313974883551859860852261659825966308806357902221163974799686699832434213956389052816174048734087019970961083681635680065893673464160007848028954256623315932869620037051974777678882709268028068194542614878315231569820506977430569558554818699084713687176379574981065492457097167192990605220691123607612176919434643254017999712502359165232787391349684205563570861602208251273734889444575513212927469608490625939052823997706156014119813162216500772569575366861622454681554161434104934500714236330263154674809078739878888706697729904219966303303842986164691503082515752807812521433057015647783089176280448386561365074822694944991128114829140081511775174327564938296073951636272024801570638869636250244118455409434993820183514894236345903645972811952788520438821706349459024509620669349988648110715606601293474047254016670236559854186226742747020062277788133752547624554472967012354441328535881031580591693439024570026246712974935895411354937734025438027303585096168949743463916623459752604240073563111326207013807148453393283741970342538485118577590194583287221576519547890811184886442388496224061805129725389968056383253056899121572907617675378962692854257477034031787730153429624111550031109951703857942128229865543157579132038063530223146351522955151926294676918845062866264207051101503423919272869863527581091245181989671552261620549318624918053944068800682999104735834450364255860330282717756294697889446117986520559626766463268103825550422845356209090653432280917669800870612068873631289519816632130548760449135475029981398498367684557535963216274074013186151015735085454676160318156386088356419131031056484384021063011776187178342073457401133370227628510812674645222601483646407218263713913010957810994469740312140894119828141339121108274224179162214130126591257558655992541102559315042183200140494884348997561197068149006385612948685747797685201482879035380154560206285436597791909884141123392626473110591632620171548722806842754619732130924092512012006426405743598248069891586895285510611233404549030361940330751715027395423724252311621266479878251686380229094583716128850174328422877658558522504786239752289233869641370035953761297134103984830909467003478160354752809604947766952729786527997211903584123734342605198003100186464751605196584037882327352120753487985347045819750870004532903343000966441555077468819824035644392306871182525514837083047893619358854668898405195240556083154862498690536459929993904873342718297768729158052703822685151903144657449286364017183746384516073495793230500401536883069286985534205859491911653302537600480647723370347267157529986762930886340334308932784722817548760700893913293614455663948178683033953416467898029151839216597840408803712889190693390676722447132634512867863522954787016361162076109783391651572085167853049502496267549745035628604206774689901068509754361460871603800247689230788009535780645444856261727915710037622056282950539499848495225023732024070482198717058489914362194862690149577889125927935015112039501901299490932264494354295777038852913937460775302465161082703963967030323387106976255359715418440115372017445963969911166365943517704778590547404263482242406399116348376965542777105734480811369859634314400943076001130386422921624917117598772048250754015773612311389636930850670414577223803098581336644045167929992286549940061241436359848560187523623211694960062523382693423631162696109509767977618106237831110572100690270247128320675865274086664347903034666057250600792433063939849615424971010573848437672144521089780301712387853660935188950565869195815918352532755359461174348227913709607397106437794885335372748851211297242585236303036997004444029196604133607295781308925193695692994770563541180759239524862690701507189061730150574673260827496279885441657889513156269488096623537227784812266246761208138085224971759177101378780798657701748387245034838001215165215986468432471373953420402805125499772105589118170506577972221515573240180398788950650378137741778439600232346247132554386766361600343103791608538816200304128114433087678899324748659867932751250141019652070719334433495456892367665109534173526611564911066451157882011616679474088717492534062811109193007767129471530667792077274403276574936981484893927095426014231472821383715984582832600083646918730839934844459025243795626144108859136938649797606175812315657112679650028183203414904533115785601078430424993119451169748913960386949032932270603513308374848064760299246565822684381527852857601170538909445357088093564347748511872092956255079579174283049589167209610454991146976676600118219806979144099737118782563498133400395148123135618850914340085911629823475222753953086451796826377061277583667357718749502506048877511664059664030183068649228745000513079213475631882373053567677977231265762043386230165220196597224849428190232259729695195541295280588621383902086611965662131938964479342755049262911888556774608698306416759074517104262386777545301983001937330082614779914175763249825022515546689342351397259460765698858437375648535492750331975669489664816676809527934881305726729590194276989655192621690541548307914169440757622920015053069317337928614471940130335560939130823181293678538638776770696994196528571672683022407566607953160856380619865845265478901324453997867470509665097289587201957447681156354857719981980405710900138958238975898096740299885784463871155367496778443688239895577825742691379744067431900194642313372465259077103847218799557079325726962486712855859534685744803409749097000356779234625395773184608622757276057774891140384333183673520678249651813653462027481967018910729761786917471779938508165275234374283375994816748098998509523168904134896502114563662262871492693740698423832266380537221695479599878575858526446472091263799146634096972896620097237550406803858179405181861660034118029434535978155561653701541814873024495798752065668280289437038448785275198352261913727503659170678028379888630106771107568015219640206631661464313999237686974817857992478757716714198939403194030337697139549359522596992096504010972142795060259579997384655643479564434228641278475695813123169624317934022186141098226891472384025298035196060704757754009702773406580011654380427821327175718064760424387585387110234136942718048141493301374802680023223522179912601814954762693457252223608081947318849528526183126350573431194774273839123579020661344446441919039422993211302250818239001778915666383733698644090654131464444490710864142192377753543082626805217629308591578769712961205099197527905677763692793406135344669782572744947901750333820382547371980911466066041316887602232585428310861874463913261535653667395892154646217735701115119499809670118217938083107841289035910403298493703000678418033519626666288609635122744403642532674311962641020898264669635116921584740472509341335411163731628666447630449320548675291171394958581797264415574122797601907723704977440767218545523338878248315191104282302888552868511135438190575204652126128244442738671688779890515669516558663925930568567796024547936697852564196372541498452109376444660782956832899212177779233459450430414870151222470985029549807767792580937528655690690244878347475853992554700990624562217615779184343114069632671746238757532830246629167607315738942877495130320251056468052221888641533288100025227309742499517545619310769573402433730889385923983916565662062113863820031402918229254954793690347515230464670103911711308804620477933995585734105740323520408429133388834564238956006519073488292487455299004065853035651654541255596151237121320814574763513473715543766889504196217603360068349967033897420652849946717700739257515424694038425567258573202731324006038807248491353230758915006152398699897504311114704411890787990365119816921481570618630817110110682247324245698151084617254535995476312423481747144790588552107790271245128570533873480799385944822911107742936338308889928115825286741974639520261521549901905616495298664077414061309713014387084496578089521161618334212535788635982697756204663822495446370832816670981052077116564543237914674907935455057196028718748836314226735910359897882341105733728973036439382552725233524201009505219516809637494406229200178838709621170958251626721044913357886074015837240307943734915321318430495324843818140475673550450259075528311503946377984117522422121049308792281830553276568283986491476190078747145453087697447935868125901768501058399760310596658870623795928020357794810992593052236429512713557449619695599002026461767941201394732009364112512778668640613106847028520160768379517017098719270033727368899972766981466975324634336432186570068791999694608735483850226643609598510804995998920153841914624647572112423869584116723188470179623885460598419118557999054880752846683612378669502128579839130497473212231951145429207815639675221676060748349063026732944723256087547045389817916898099344230020792135493276972512017947131708771983525368576356287793917789591441875055322494301113897283618378450972256258703507252296106388482979208901085543381786342259569287837502859148282496811600743096439071634496030540618149961397551768709458726084196648582193666824016071885384205016340338210984253528810617144670585332717451865426466423434368008592682265350919220465750909284067010465836915124613654080213857629659800601264772021582776039707309710547546877630264139695219539532475178659238865088026003386675652834917930991312184386279421270659565895787421323704376533742529110419444223094410691814966503669893557778515988015418969764714225896062858941987135109929895456288185622128945928571380171282197384122778919241127767866480219009283540618269393652345373137539773674511954009325987660214209972271054677826873201796205985636150460987575759959948510434658206445848095122138322218673207757332917682382507169994149697503890679714473976111521802799931643246870251270150513636065361889240029247104006291784875071378928020745585440704871103823361846016313625607498649958907010643949203744887368962553638460492629200586935073226676489777399842541725973508021228194813108654176202326261413924382286531349454833219408149451613660025705776007980969920770031030950110659781539722749851200684580413494170563847865315462141986519847755740162423724387243522487608691271870109058088370535678961875943007095653424947419719138258934917278235310940064239431314146953557827649014255348488319785247625245362148067123753845318921631085574863023259179613830683385980744452851274188443377877045477590515265588769298733906297837733145599207466393946448858025625751408982339621699577055419419687598893202048998793930010575476735938128193115308217250149404949101182588089032522508853640833497511873439959189857463997074860314954592347989054086142314423760002700883873372883221800307514508334967529823716096195252871585482389850722294008076822655752925038191232006981748283188995317079414697510353720594591096261239378516046359795753061816005212702934441250113901985803232456127771975130187686667560970205978314927814473757886760857006633866797515024512541952726602039800730843803257390610528040949544991113491489336954381528200368118672830645450550335805964288723082055936137786522282984386103654270570980840163007866623991181823438465752293583524666485588820302244162790659223098542154336176328343139103332034193589432900932118339230058857425148295727632779516089644800564292101639043127491901274835871705121240546476539169297800447414073199670967596813215366085261793745184209125325897011444006172727509525343806092627600730645667072057611702505142797567237092523093258709225862260678885654968534667466836710861731756970609116171808156153337882194747684643092520657718138431313562354289746824428428723621951059208404165774103619684214859124374364348954515538791433948839439457636086780898351178811129121503639409483580663069920066161178495038338045350880013763424392529035070666724323953747376374945575267018426877427278015900034289805637793523289476710561186711480619565678024709769870312350490320549724971325077597439719321887609177618036530136191612854115270230953837100640123350325318847323273231675320628506784146036630774435862010102927607848269099598792018008621342749493058007752239432634568612082169771083157376765110683794329104716226831621794550743134298418030947749063914662255749494142314433229173872285201960403490138818704843638836561159142883445368125111397323076233550471866157725774065515911853370212014671370574342398103458765056473342536764843969590924366376747625441144741508449955893953774084761224807482097721979334199887959665015792195345678082552665389460845102395875094945627158426387660396003779547567170579303333812253861712489443817443523247967956680433504083778905048867451232132086642365590309501403231995739877598017120050775737106005101882384878710220497424556721544457078371909812604249676730260795523451028666721054534475839956975864629989269251694376715017154906328659962904451288033150433712666840771971298590260000839635492516733191305143757523927998981754708911354878927899584984169640095152546469769089741248059970130559211783484494496372370678503334899429860445838425442182013653834306867471298536482777817128033390476182278715027878832010316355438078518398786614005893196299098317089439289738034777925001593597035742640356977594937537312949222350690394404142570963352979656204606380364107308648573324887558833009045606523614513522161813737289210242640460903287739605446222211550698895540626392776950361160929587578249566446892398974564650384810513058658416425158015395164723420842648745882868187956929920970702108495138253434390123524478736368736464460767823374423216453797448412140620146168625781609101364032138491507909694048386328521227076655171914901552497055403741496335970635020249596413779069668504103360226222537730381918217899149792591428379268408950401644595595145986521498296333282463029468090185677644232794879931964267696616521017765640351798390014105487411054074179515947046391871757679046799761711470192964175769693102551992993809976605403391418008877912362970754544946328085289593438037126060157079500870236363053000809233459575420959743249606220963343536999641611057633035119290384896968728382017968475360452828317231722601222371792012316164179124058222574277180018192844479825950359497082698055933975796355556497951091671014280046733821571405280194563989672451244159912587492021737063913519935497429137827329966842888420074800325214785802658708946601875330972975682724182571016047061664061481177810739187081893865374311826778167489588543600758696877840540459309451701038019278345411021463523591115491561068365780015217196244996595841434590526671934146816630099660652023614968558335229981726711733365073912624051312545835467259733977112822135572289887074885040174926979016285478185131615452326674439073825802754601999875401075690247080474396637037692031812899605773278721234586172202907878774614186618355671540917618408385614843354585017551013263305824657499450970619911215805021500143693306257734460342969109505625449878236121494918882167857914967047771759123323699113498761495075102850179823557352287237765915928765135906634801286663797181612989470460790345543102828834938551244523458195711454592183114440984547009841359194939786393300344262841230781616272959284534051029043560488088082481784093554207262333718734682406922993149525985407323793531439363035146988792003186866624211125537916841483700305947372718471049307070515335427481544547294162929144983154708028039946004872330803526365720411175825577514034483410242638460894392976911139797925243774867612518963841800110195119123596810624390450809673518269814771849739063692883899439192599685930978128142029787442483361638372714313398793174457382209615387381222331074292372358557906013545134191326385455587308222735271493332321837247460236543488545635710824281555203605985036479450730104369445869958422732837971825091131843908376795255306834414627896912529267013663935807798802975553260846797955151693685593507000128549191581210087233407661297040457992765811434828793262134572669690959620645736313580136728144822984721998339794835428734339644520241436413258722849371114716570127769629970271470809563335280149662990085760020270531813638917329572178053177311395445085113748585580796780895601140891731278240956937027396065862614996195174559797159281063218877739958333137267035857576232401543931842345879219719759006033293086685535236438266596672829219765015890400130368924277387099444476963892728436725687633488448951586020347387615972125495484749826262333279229112911678127169544187185410077379846945262890245728286595088145193837137583735023346636617787375288622614582530334077599466071620179936032176197080033023599524247136453401790662286404538013055976003632413958954086718805028912045989251715680499840820293988017360970751428101019964910116712285775650587936516399658231262531068313526274482036989143910610603894214339893574548525195833171492310195411889097301246980094102918077382789551043980014245678344324284506849256490513229097142508776397473131812542680215172446458205695687793710777010260879591711568818141926343020645195206221031776774139789024828917772465296118466577075315933431882433008398242908895063628311398595490309735867042143993002146504101961356368004462363547136298111764959548007270081105869696299278700843982914692301008276298422583292247396785626726077673667215748409013149774087925107660222407545879410848764434245759874855055621986035813207235584462179416360591446145238387921938184925098991395919539741005106903060128480568142683479361287729828894118723067274806484984952976282583676465425978327907763036539074179959277941429901101113155618026390609345738791641506967033246455547801916078322151357194291333299192003172816907368090607048264100674170353767812511658566909711385853184733028456149583072830440786247544345498086374501012520396287562798156274905537049862154392423797470275041369075557849807336389817299941817237060728441962862802717285722938565230002242992207972449173617759700615602768502542979037212678094800714493593480840369821327116123183539634306894655200186182185253235199044483536333566038369306433356550631478441205169655964360279746152474067093946658106161809320269713486300069517885454794576866165089497611713570314549510650766204606675711212161370911479699105416362370744169782585053898729491139578805880609194906707415942871867347644495906719285977005385344153561000234678115353352277899267499391859234222845902294289445862867038201664737442106826807990260697611262907839501934219818904566704846826907516308911477102989137724970825600175536342350902934743604856691153052247403404679582380319676701515709872957942902811523234146725833928894248736435958335674772056304724579807709671937850712220728422642602068409042627180559604670909752231378627234495750826461661939647720179586263371552470256635835065837887335165366336147817702783624854594019946731455825981584916416213485073601945151494152771670330714918658051738809046935316476847272952311057997193062282596888245149222087888567852324550804168987867609879887107298812210379162946772486795990260249183393954993587835770129830920385044937731692214922337562361789453646773291464109943510580705511102045478884398751932244636753857928874495138435077091482253313146779465194370207227856620137414448772247176820089845739639362819072808408488417512326718911209301571481477791892103211602861369068711226464191407129956426415756727177309215965839025907202475702631417914108021411906870800034104766854207320687343126192251833469158804061362227290542322830238064718216214097784229255537109760133279701801637856818567827258503509633785799436403168139639229304706424065523027678793193522649400906742036120166525686085522145563204669629836625344777519191817465944987269184189778936041518679267406118882950567022585177234203022866555464477553417465051477165605142435692741321055901895219785079249985773264247434888450315504886214998189104630074426759057977868759395583824845650619455552345801949531786126623378255760803296355099203786730664329884684322814201782576959123944142957926084159768347855016210244667402455454315931253735091955517440126329604127354061400425106279359202562200752614178041586204246258911267763921697025517866915133746316357591200979354789769854957599665708846452715507882117955783618975280931864967976671950520842616361356502080566388528902999839303720072705237345454997068077917763937497749440553482658809030214563138986623251661584189149904950775396566619231314482911191656108300454425406859792990518053600684544599740318638659077487755513670940920487997897013839638097912015160894198137046856147670875795920427234526998776140948664509803437085681515771369510387720148900121518618230049413826941952971953828557817666044670999997988316466383761193255698926359816881928228637490496875016449100761395686112469919790232427642288380856525173570636640639025489816722164103444521487999909932399789573825769385670413032667028186916879870974947989465763676482107023923864108795127006964816439808008453415881007102487115182393999366309588289538121677327411319706229167087899166307674923843059277884233682662675795443932343054372664914102259442595312884709945395767399319606563434828533089067218458116438544086950012610781134750043214060926295608436910012822920870793352818531980458362485591454524385116611241183985235818981502923894245225528309656295032421353731579435843397488008461631696700968895013443020050265761642634423303212479317019018851595619004464466470430998616216994431586217373493052999433111281668891613492848559419209848346124994910119834901338895297785251972903647837406256521364537477901024614988495625711605742232384686893478502148917263477120003447332488834855655954745615993441201958126952818029840973709815994213659077363479042714992565539295727199814244493671798926958129904125687247902050679761430840208932477576192971908326191128191720845073588899252223082181323395812875547914033475554337836918984352581381111929060397504364688547564748500887328793068332318918729915511203150942064777400006624619234227564387529538528731977090732203733445059961713757007269977305031406925773504727665879797053940616320615768862068259701461600965132388444524589473586098690771191563582991212201165956798235520410904780918511878328867452099604833553416978435560537235454127951303996402376630771320047502098555449988841636909937671772974656210617729825442801703761824047360415245499816450576995780558417767204033068718460050655900655750350439415420532415761238680871665353666159604865872454508132966293617189920567762123147262533027163833677205861077714554169378791781281520232287531439332845714958331312165583734263384690873701366596669717954418600692244414800714801088991784259202833073105415159516139238556026805838035238577463740868767350973593421890333040397488352167714332870273002386954666233663045267224695059984138084070760138071494527804659301328384324667399970312437161982088899254965844300133920591901427249041101541377757649488626760708071372530821033821447393819781527961038844084009208593218179638213564614277558617013125413693820752028762224493212655041262498214193318364054006916432869859084917855133527958353487668418553532129017697254640088832523272883962311303800352023149384316167221518177025652095909596187701839812807423899466259703699876312485020993355775797857853220932911162572337455465861313618817669891422378379234513290373011377159112572304864239284762761059425053382449395664615852712185543052884003343276365877655123228419271917090455561834065273044669452614935371570273049736459202699848195650194479816378661139532635719166463202472355292889689613984681125395618761567319080808465821467167756987369208630846578829860373642402366583085858183961022913214497686422171566855603137064790452251413383043491805028826293286627077746385904342132711217899200578034656549206484789184853167304035638134741143282394165788844915459881917592299621816821548901578925625829524872348834134725145756953758713630359434346500973483912168132070179616261996378336636959203723092382271503992797847873191601750921838433106876332345021486187055683862323187659042022786339153147906720097658934368157432301114850294539371866356109211512289274381263490749024662966172794104379384949582368084868766689014380473070199309486640317056059774940466476585511001703331428616202549816213637121439406287648219339392522504156469584924322054499421947821984240269736480579176246442349813413664751444545604818841823537936666867070102716414459106178907182051450953869671145508990596957452463006294561343546079182994485373372488578079746470217538313033335314063320472427447555477534230156438602082517424101588395866595015239238198322040460884824860890304799689811046293442740358906844224041478495922666541837750878897999009948237972667269628348007451120403118463313225161492258218986112304202677778909469003924776550224873957560741207183743960936275175157623660226033473620250907918042357289530681536617521540343861303411214054176690176060469697199894822943491624259935638598233262103376969177235281087565707934906833016208818040833464631565751231818102429911406744082391718040472283945719442200726634566223663274662526007041956960096859105832914284034751033082425885237038238089191016936819837149277440780869865218592226567098902123560232052398667038547261693926684020338250371457858386018248181182976584244158356144889451272052066746233067988945816351852933323245137238165798768406119241769700976250683387768934205853376692576716763404990207475722014663404874678614911750332545664008205847042960852765509910942563274337821582181143117640489742453504644166128660239940859593059701516362994902022047333739550443455635272683554110130598234382461992099637509506256153574027555932906736994573334111292919962123461801799451154645232154812948425527948119128607763898344918452972098031886193106588786214381383159576993040130382733520640482938266650219441629437817143674659206776954794924339515452341297513138369337662415572022529530735310852540531120351137885316125289843293114944889335984646830889008312524532373573867379956223779218747729319424670799800668413412335977738334114686210212017048387742044618093672267798629175066409528889691619072612499904293004767638723002949220185136863257049659125752106280197649826387070684257579297692108108018119140922827364486791087879319837078907598541293796445921234893442577405935340731323857845422784264218159084195582232445928664222784226291694045747928407145526006993938604529735415450129252585949551307803059429142171270817998188320324743486331000422152167330760241830227408128970942792968147726775235021337026053407774502926262109468909833695765862205810003854289383662729875427532642203595166744104185372423250649752989928912460966592725689639432276695970920018839453403819803551000222570859094733193110907283486982052988485275275483181817587418409881337614745595120133395342386274707785425249332177703025700387917132332780661854337672114714174106558465413444869101144175621779121709488424275868091996481094268547671713469364583359171121780053198740646838962002454366883917291422799324218874191674318217073077244506645154738078461880672697550700142050986684479710931244117650516344280371741227749561145005221826366451814327349982786831812274096166786753735754051111294853678361201061493308522603740733579295247471439915352864410146981244403437904526912411628095645479475805206046452658420222287043396990563343668197162966013683238698420548841304311990315109321366391652956163023950497832288827014415718827959327783768786423966372172471078817125492091764313626302465213280705794745119383710441913878353793190086091016378958929319370691886699562064948190199238051770843389632995116520257745290062380423751793442444123000716632541314547520885778717788750603583802043613881369060665364395095311485820395987605874971573176656817371831610859391886072276891798595790607779939649008532926250968442295447599283722865153870183180135237200236207496279458885102988660079411636750513323827054212620436769442230044508720770352462067979376435628575889524684049403277011223180314404860544019596430507728838185129917416891585813460852018781732605613165010197893660467336847321861992382741929466057909720057575544049458648882995139294859745653855769158815739398673734132807504461688588541121034595777271562468667805509590977386431632422175274381992183157316245001633742556596901961177374733515516530050567750230387272941990280993552439733240551888899089744471858062595172979342799248172481801089871744541637462220982770942218256873646129823344738900179176804169588265929920012192097831509908321771305561021295298705376459188793290140260359828052061013708485615793295504626807167308260565478888683066147168520404456856179465154622548383269683350589997852292022115707249219518003265670118555456577096031692613098056819610070248899310175844134624683632285286907782178145739606083619472805658191282175365692671812617099201858970706729067720551309686340335319788385168635727650745920582005499219054985415826394795829176550757249514961166971584726481693282406717518247570093986334159724058673236105601862800184791074991402439261253740594119086851348970481759664158590788460282408705736980441227362674789801444280986448486386837925053706640196560786500010307398923084836831476465645605863123648345773934629623091462465850197221485852607010537845487491854426557201569666250292126778547418301553290369940098010415782834801874047337299364049323716691409095986133676445377160483739937988270062050335719880310788691627660034235744909504489932446474448299628846608495880393248454457703956456597198073254288859238457764124809350975671130917198680000291338951911536456540017874300058136180454649154652645933120793210099873906568965615041113104307894978820205164641463402095844232414517563967266911595665347389020711402431321865236703241235941251263298838530691217824175460685020098715628972817312754594243079345838416341753888298337146177810658973903891679458628014778199933297393979521375657712268444232404718144410894119648205424770944155246644264176697884540219922253023173767187597440243446148871780060869374400959419600551848745669147569219655671709722595743548568501032892574374591839841590342427886639050752725714542006964388801818573994710688523343154950676245487539424229832219922980306652687968895133813704322176121487968411121233824372784131475303972664489512145304572882870657795823267608962130743118432970705976982182880838088994397115498045443206229913147988807551547324695776661815373843375257129571174133694289413195346276915950299577369628816288862229721041847604859458841165128946544424106809615885604151844025221812352500509282158711549183083924488132481105698717790177411647475011269604811114414653109493450769712325415994244371400961853578590286694276113833049454130006248517061835463289616843754460240671151321996159047749888459103311389537563711027476194099679425026315978061280786235109353578160318323315499714875649444029538843197449790720362487529649354010447953675242348937386620170863969862780486558091365191833751589075823175810503831643190141059980982847307207498602338083184838011350451080891994610134603808300815044550107251391050800563983489615298062769894008958322853787448228026143204507911840087765161921272741054510658992022690116427176873822358486846677403730515264291249438801478371092009400173227385098259923605011687407516446930286519990176421895423856562284814542790613364554985609152421515885360453729549526119460969029135766581570989892707323455541843802435558656873619738198747425681007967855142760220505259868945021917211759744228520885221219919462291437208755840807471156164169783485725926332829187864914421696869322953802259645190211669463010688743095250965275225377380349609438184226863577055817833579215227389454722123961554414149256570869869822155031512362797174188919949864986833232940390917065895796895081986779405477674255669842356876278808688650965375517244743529989802601086153269068092238768117578175625136030636052782280258860220770884063506907697372040713794581585734809721854532997942514865727363431322336065705358572869551924777543296550843219241884782085778527564009538094827568636111275151599748253996519848669335353477007931615334030727099493010065553305974642068983490481258122755599251644844983356360830249796041778537798664993714560152780715420035799790704440346880934329318703108583910370951944204838911996011227924525505544224719766070652831169694314530322646863738897428212227935404532415719523272968882490022951247922412525448729789626884103943507853237422770685502626247794435477518163981942060798813104913453618616286662914429848756125508161473686291806578393478699343187086370504689264427797240179835467291423939378261762736871098541822295517147705155123881809780586767601011449734534231433677497475083299583257320238243041972387130476623121217323230389985267479820725390618108537707232527364964742439110260978441761651984104137616604273399020843800224004865007846675638471751327723466442088767556251334696044361229278225119202482854559258635406135436852125934032565358616199644815952090179727371018188731404546433138000638509329509365331589335132201180105208419224813679546089410025583180444482457833409899486706195807851611589901710982651963549632024705334106121354313393364180109023465400229991455142026474517152607608006474734567217894989254888755094844509283634928390090972611936523839266664743655272904950031583000643466388007312877257441260328429812705536662617085296116305469716009979009061826993241612957724118414988165964288633765515005025363310805694664781927625915100013000319585935459342352727751749982797854062975159995350358734945071748109772229888662367861319872697066620533671027404147902085749981857542589839212977574065738000768361500678836148943485547482141583973806206574747991521553888502687618781984614919281511101738398349571735088859869814691804736726641329712212010564822671046517014117744919439569132294381560768063960058812769804153310739084510731306598736543321807776965564319325988439049469060083907957695891462628486247890831280322585135790445985502982708034812572566947031051616929195155017155987834698386514209721398571968750704951794998934909259160852566969508777918254920131435730551426029646951057387648677570030767135679301592011526491122165775694579584480810764940267182914674854270732643887575708244686541854903658118827130576727856274871665899231741540221645888675336052548509092058594773659983319635795171189802303738904471168540163389327280152601196353760541996312581324143254155420573989601059272913146270007205595334763566828817866884522248254494574245828036891330246801953604238363178186382414230288640121540824121749700658227967967765086384449359249461075850834529666144611210574589938388232172219042118984481805092473331243982187626506105723175634443103996279210895620665458999814077725072538921303921757252768936964631204626418058385087700787239393454124708031497650179584247683174476531010545556577329478487759740871255002451815816180571407517803128141866088019790324355152420555746455764218735905287291802101338441237263690217657299472106186754512559937142758034773115391283999856489699805012932376827329897162936663841799990976546677792938528729477428328628396237599962293203450815158351081957476443435733206782452403119005441804072117509619888489477891327153617095229636526427053960002770536485362560449703701678703628833112876367490823157979700751952588842925227248770747847942542619328948463397555678776837145234697830898151551670636387393720300986654524576488612730671479417177045268211279884525559372348622403025404527827315173874106039463458579856918240877903094903821116290063703929406598645446269060330438796523454540213940887824786969612046490809767234446429088390614792221511472562884608479404750026392964896603657005193479594939189490576963762345965455602367951688636670320900980687287443953996368738199168997693633670930882151857060367699303280684291702402937212836018083166044100834710879138897784416516387414641290609212899672269807791642333811743217817458598440527634493234001875068516598135430796540206472747983335838622957881833193406100751708495349024846632762624564732754763799136312286835174800050725333069087627981392318579700186271507973150889931623258299654174597930395897853950105273109906273049559881703504555715110223238597778008489240583972744691442675673669761401538834664662177522196949897556842460967411229956455740529961190806421433562818347174295144916680394002174223777205393270386871735337207182271861559316240420106086647334705300051841026034537074825772689185157555310005950696665961422555843651119064089164004420962731161620697284888147517983353870393840189278087634880764515169841527948689518812797639754940934188781404906408994905982927371939406961363401153680983571858223700105241492636549129462994421867945363320010635043441706566483781381174347573938633330009145859777365665993062707497951832667589495808485198698725227060455498549002504546247846127262267721827374457144646091455440219019223723306486398111340142601609924157057495401141618004684327314718265821379501250644860140151528313619662908170459171049091948146012422363547648263233452447730333090435652723264973141195931807033087389410845488658412354580497981055953520295003096852358629194568310080262478420500343933021455047289556287614066557204527231558070085693252355187848343247668955230802328467764378463322176236592269685894762469115783660359984157571679841085783224145544719246117668405214354039403666597447813428018984359296523536339727191986111940956842714123749867044325417342814343467622065450176922870162893415125438475246893317645925370387607167333735950625833932028208533354376331208607741836619721276829212899741840064325935931985113137926875061262672414269049056640242454999197020043585467815686298249477546784850352388193186054002793688586208518981730313754183848817369820289139976502618513603251782922624158679375135965455083238942430769714095412518049529859519782564457224807784400157545463368895205942848806289258321931884755416831370178384637815273371717463904297115260631978505099539627094545298198466097941650695334050688888856290642830491798949226189926464837381193872039596574334034072351393737283474475756471756988362373690970000194968120328226550215519410378882621525352581535151132750540028431978703430681764127886385548027573219353628124900851080742482970210759952212131415680994294891116790400889199697451869505625185980908725219140465254439845999249085829913468497427010446481675334226997404379746946777285580970391318882211480477113411370296134062214251225593210142782723342310800187519371008161772461973796188118049760223585052653964492641882750691593565454729606683358510889889551751588982902726884416860225415397797220035479715716234631095373560447867401221544574629193140846026799875533357504381048246600538496378136149289460734671964971513560596086102831382707950205707371190677015135061092480468331193415927960716430256289987651548903673144708542080630577295738650053708877393834802626807678965197272670635085702853157549313097719344311701332662442712321678929501206697162316379768066364284826099614664624474951822520125573937021082077677493898378780656302918321318873909416631900334064612563599641663990564762575315812198577258548202624224900624295784230327140531111874266673666984333995594600034573454173020417954065560460476586405198611366490704497570907984999299559203577939873761492434998443126395080878941112908779413969817620355248028511475518670236839728693671201560718936453972234838640831258832272414390792711947491686268530613920480658563123005078840989111058345450928473983279648290222709076290630275663702783675205290020839423408564596683167710533173974696985040413209016710342991074258845889912645589755515339276178805244036698444138180922178023167631161525544009064489555306879428359302315886627907783962217368690151007300281671451693225787410768943677066552898704320960725010389817873675228526904654068918361287453970865369905379983873213592103764502264056874639655295813343373422150672701276412787239601678286479480463873203233699781238617131064224957865268459080753628951068637097285448348930411224584929070846818226920834802594931418539582777165516766689492483789301225584210417679938176449174532149912691627706845076173490725922447912368888519592030313722923034344256241592358319546466944024105222811119307403846403085526847557023594913423848421876070221093042286985946692577009188218135227817514199856976392290746392701162471896498042788018740358575876207651859337189830083388683122707021297312602436590318462355678542950548686972228642906425096265836065516795223685051977998718604535715719207127381209348664984935166033615333828225988376820958993310676753743037320516420164154167401888292254901700290612617073499622866365941917635662908180174662265857782357546534753612136832394531822604380095133671394077970263112920037323521345621138282397555843945715610847158265182911040186762098652285626801438203549441942657060043657786807256863923226576695574442112212310463700207701909868011544575101283945269976635638095210050054922848496494393892384157098290038072789331435116070607819656418032198502104443977956610860017227131213749794625839101546336452567177426827146719119449573495641708155917152475752076857472987124167725463752686985551039762571700540395120753089624159671455654520847614818457196797294020741327887343871540905995653712685548774166510620112429640811149230254881422466557034379816626250025285985720816629711097067075930826521373575460097591101883045643193654118861521999236299307539179808435039007707575157561128618104579670197601963200118174752920394255548815978326489127808563158860396603200111009028932825491751659248624438912569211436474492820414383000328976795212745697795768161457318288496082918798213021758129256523147952003799830752990326040117056268019141958917506582547536119287225973694661257223455065207751511850658000847555114614403850813060713521329387217461895661227110357783526034465332953319000452224988249616165530875403008520878965968801649979342362488480081690513953471087958740304222459155072253890743485973250827060322880918807736428344858321389698426424953635794890002955093236072599216607070473891905529243800911755422565066040859794340149177459937780166755468656548670561695341761903017403770240006079356739644971585188950895572198838780655931173786499106919066480894635657015522161154175794243642575193565986960575376815524762281036371832100156888526641792001248644694250322787574511418040522593037791334840743833612011573684797781090480884015158357071733585469750167831029523959420113893357329643748640203133099451415254189292092292081598298133163299680267416595878054957707144778887479397919633377192358325503337783514353443750335881080614307658648153106253092479541473819264167642866626128239413225186579860784233616616280337150440017667015044864696660038473234090823931044675347368980149510872858490871702138200461780647018841747478194845654915155669939426948173721554855696438039152535670399212363172606567060237675631114763282815931575985336880513205562563934497644709710765975122465822058635802096028459657942331383121766614314852474200262922668861048427260358304094595530993977518381664186510728127169753233747632955679004842167329579747340167471680623379530533220052968007936611171166365222679095159547158341530000214082989557579494151874150081788440969970550199445334979302592732280087591462175699291701000344199979145628982172918853288370088028425311398336225600492187521843374648199373495770401122543566895715709684002404829110394343116707042375249724726669309533135024314143058553818247898564557002162621430765668838685609914555310638468332227000767907954983811893703813069899108805437160982861420060984502851496217206442256648348368970688812216562630189201998667466472841466632043854615717863713470561722756566973750930467805162833788978851835777593647641113665426959037032314901992631595254835533902706989402598223815280939048928068862488095554886816367457052525436594506615981229607475552770355228404409012164634831479987855063951586447363087992446534344094797073533780764191617708809635213986118675116966372183171457701319950967574873934353753091176884247201090721588647264093220369779441013717193092643506562561511890187171094617196706201723214452911323239225739484126887408868227683272614183963059456596282080138050610749473038119438860945929020826179230461644040583781610890147352467165747370458847902945326508668694831311657802173141236730008718623036559703881477764273108280245102598756192638164836491042995220656334561328231220060629644765490891625541991569809031581981737638809773326523965962525968693378407278234488358471211894583931165693926377267482532605494020859434013028753411324025643525357631645895061065778058284084006918935224999768414572154885267291324021369491707438217347011478840747149943291328626211291898458006800007846645642427549913527174737890105210777734315880895552665902337138727648578195348294430365174696450582117070555170233853070329317584737181747113051622017616874480518807304411846926593129140450303205862611264511395503147036720221439071022988968264652836691739143994169750873341552057853124584734811825132175536101091837152567339004647955511934699868587044770267706122071673127838751435183418091870863419952015350752596050587088139917043015015959086345046993314247233310131333661095163166749592522856264652230573632866337526581259793252875560426529701243559380032646731597563244414447181368739156396942872058012400783328512094249379424377527572747233974470367078999774062369080914170065844933949314053919711403396355115397902380774282463643429182759627765187991967249547563815995244730941691036868052154535395817198636030108984540560343330029944541055695022042707236648081752212300855206704830175812268698501751195592313746472763995045477039912647827213728214528814069240514523114186985492070920824360124179682109580814198947670994886394097216561196909818390923449482322739675914847210368507328709499813362635065741864659300014523694646525854116733370255048380482927003507036663734101916981127430696332418442284778398627654461220494163771156018134672097498800450644185770562100391601902245823748724684490165031173864838153611512082101668317938818981992277038856095675503856212784729341590907915235931252272539533149646211952946741536662523560226103105087788735735792276139906259080147047619546157167256311928544334167074007974052454276457339143828620841803000370829038212797913621006393605029640037528393436321567490636416855061873069457050646698353064575918494692105007329871136148426727733873824637231446694754115823028140228709547304899207566590858148644716004055463452863527270336087425475691618026234569819119437030238182358120511005672015421997618794145135273793582982601265474463918649542384721228874458227206231492284302544372320099044262770701225851215436807755644770104930675269167449064579993025394320235295328816383249095707969887463226205272242909180617109518565585306533007696527690062664726380244178260174051258187087360600753346095031075636051423583349874492481206602120652224249718749077052489977191001256263878998781606932404755868111534630567082825679775872945708858126718935276562245282279303900448296745797314989482272739044314539254759902959666404351807579096631819050300418886062258901653302463807653759396559884540441211250639226486554458167999833212181814502335235977137982780055698365292605378213942516877808566753259167709538674284442524518026146918115524626369959910026234593038956185537472837618136628719293137207182963880509209193785474687069775666879108276982011920474591060415066643495806048824964655189991152143073353730373633708168896777349415168128603451067101272994700505078027237212011520766630892773087620155832639348786681253061291020177378953546968248860878695671843077408495337904116371967106612811560693579248027035092113034600911576542177917729558174047141021890382296181418741795361524369163794120841572508911742631862748918475890893397986155993643919565449476205241420176188223957081847013016014737947630724542408501086110525739871627406939855055244445080282245224256821934517775385771972136206783651289462357441588032864526200287339519687454471923365883559395242625663342472490612912774529392614081648906117799692559716517014912703485823026001121982500913210412012461184151415638830058607836735724339691893496594620074331978054156303398041852115485879744556683777155787567893510983315363916719318422414356859819932003804077399811658665256058053572279844290458019786013149792764170184574243334430684080960744476472704472300843526430336882755806443655968047515198338720941505149483256785764141403346598391158972107607425180421825269100693980014158598399006806831214539048109576882004058163330139862905098287769827749790163034700750633276589043262719091995057230893801519735927334226742509998603991569166549746940314012881878456492626700444147341866472017098307345710057444005183524942599087988455407262998091566168768896432744604366875624721543570688232148763012014972963023399699494924021368208043939515492896017269759135044633755295037845403719276495397588026335165985162043966706652451311697663377892407935279076034509828081631072257100739817747322654858634988798580738798389046664170822975582808860474891656580631854657368709580493879332311016731605496084148840709420730999124349688326089778442805273355079787141658040499768353998206494173055848853934880841570899109104963390040306185169075942650836339909456948904386203767438296258662501846507564271075116472316945190088062843548561998391092874024799319466382398603222301789153717173684540984466351826554061054126716091499188209295920008276600915098458687071010025073932810152757021881367182246580384859689790573543217893870533821207098846803339587225901456521767943731004720241234890436072094899591052339184542711995243596477350851248855214460371593355218929796167182980188534479421571825130412780728223610345209533390694444569936498506803841166185283308933301414339169415421144623389457727176624346150470840648567629562118664573612468737708647414239895802355483184242696885460455095252305619127754618603223452633197380457163586125531080888790978973188149715036126389944648692429352225274479562455840382464633825593493600431612221617663926291475416070806281776337851781513370209957514930420834022780841997623971055991587366840778161890932101780139175834096228510670411383414150421752695756205532194714281328361837611014149795909585928128260751296325053548191516419230008961331367643392267738093970275669818493824850551781864205029766697184192845665450120243170362075115351377993788654111151690790352496019274090530764392228505053947463085218779294800446221862433508459028526626429356164986568033013945693137762976980300751989370790632048727046041480400612992862204806942374105028747450563249763813530115672070048206688502312014677502841578344926974213222540063158723657533381342773088916759650151367879981913557676139275285445498189388934990938175266980301162853962653357145046923255428348066893642925478262098281542044292489812922964276752288526311254911068297880608076889957286435306747248901510565294677532648002184142989645112416209098882024064066291506603185773998894727349196321301952612399923928423078072387918368484344871379550069070874161420405978681235889341074595774454186711161959404324931517705056120441983070214575601937558558770191051903568780844273570845117154024338027277926935018593313209720605574590628259567807744572597698747679182299259187000523774456152266983924550214987764673466784549662647363434189498421758838228741604633456878117932936047029623535251166327097416015443305053685976148535612209912630941153872269573362813341205607419015700076522975558215950835229415983426094756565515459467498248541911690453732605460533614942864306654610206091816622683380104979226544680365326282691580387198252153627995277531852263584067167259330306036511890676355372532808714509464507812668292325883658822431348262426986012825063833013619548390448226381379578744945363595385541233402841254417535168813116629467982497559286659032421067866804986530221616945116753196736498611082030819779874777231312622173724876933035350205921136213605076373976811155038458219604895191647498905717410753616133071169207538000942126132072477537631415701580461262794441300489412820213674969651080085021484247143071221442885043586438009648354498453999749491595427103303109200792539663854632740716496758606956463316275673489425660558485525149992984751024373533934123764327440845652498562224959592502312676520080718756042802768967583634386938061550025318854690746390895996353691179486085961838974112041452732387464691457596362344311938902485567849543159442073664855099828021021837980090545771989516631800504184419274201873239855326138126229041287415494245418747531512268196119661102344069641222440887489482393262993423727242454832526441913204102662577988943215241490583086106915346053631122921939246422986622259288361015728450208419040026726641987318544477970513192489937147103383597532814150100802047983481320558642684413498922336688947320365701849336456273889057329102738260555679617991232299562066271766036026582727874207474331402119807661071776621489015970676897790321698939366744956323283197559002725815078501028057278359510644259085947337096859232429760625355059828063520729335151844080437742103011016103394043646230834304025924614984833913779909974358502942692244540622394287381751928360893995359281829853852611476112353870975041820315842129165109450628809471511690312160090746614375552462273281140228464587745297588596513251689349594283051525418375981824265768547495662934815496188171172516870339216544190483868744563803443436152899192347741853941964066966324083417247338517134904730646946968598777655249730773570772489414721022283608339740897944463663877442874910336098999251922712651911644795008490162466830676368383349431736040350465461161094053053780332863550794857496356026819011302112177334893576946833721747604423590098908625086319708436978160283123828404761839897327527529021757068356224893979130931726078206749395378590673528374944281872216194424762172089403692743372893146484546424201965366131249677840582628477377729908406071620005350329793638004795417185398743896550628713295050804933847168583479447873488509388065101302322878904074380508289177153172029860432640863728955828135271908133313031562576306857331881283700400228992081217272700615789015455546958950631976613115071443676784113206933029478522653077438373725229338509040018407479485717615092824816282381077175823923114874477656352284171596964150976757581913946414758800575159135026284624262789882706353098777582233026260994366992941473925347755155891303187266154791912744831470213130671690299216273061632092948789313321524654154535559962556804995676643899920389377030106666860755974811125607967558965979943348452124662043832942766971980774607264133898811091150484678402031015435824211434761305491789527170918706718967216500176176279257433192920370991682165112761365432866826174119879390557151193669142723282038025815130033515443916927043517251600594560852690205096009143411888576537976875298352930110655353400525970210919050346567849036084045206943117066917237421761627816719474088500219278074820129279728922689311597342652251914253979884807324012429150437180709255824988578883825858149092188933643295904393119892456276662137927640440292684719730919534977437029950938172756168496091271861479258113008999464256955450991638503177744805867933315222636135034572801892869475594174539408008780342797181573667907278460945745779969786653126238717161460177312139222372566321882703507786128217411088894065081634722853546177207971830390686758014624977781289999847162102654672538169749167371015501453491103349639710567488993474662408926683704899675498631673256391371586183400858178333394600784107839185170201326458082872746479087457269269556154490771186094158078335620819701111145118802806238881318954562609624934603674421040655013514699109381330071493703326532022747711014897385883980064907323268537498273188973308019176916416492351714043529928580112354649882068269638541494360091598098674460329712402672315980928026139922053204518145669995760194400209538557831031059794678379020743481092530743278551224540477546335327319882423310770127760712185464393926853249100131522876885250115712358295829298127426628552559401158751966515347828323416820300197117503322653580235204551664769451388745898673673134538016743556031444972429210080458114087155834455237900035999405758511861700445800713271658572010250931271960167904291279379391899507056010537347138156967543972604523087358962408919338749173432133310802453338512939134931492064824858502553767293770098097179940312322923561934963953909163991925932516127587274555102197912086366160986387043280444795838408808733585539742527985639820945836357957377962654995901722284148765194145478463366992408189021107732522094956848686138138444929769151770223666347281585929580787513143682607094406915368028121747182861514429066840723679748159656641923303141378000648429976592495847268972247072503209454600258673235549704677158073285159950529296574235921100701947028017994575008233797392770007194336088126110573788691124116765649570009683825377036505370217034539794557088364802276726747477446248258904572973961777198123161276845513756707274358733334875531193412090818764553757568282926463762788561823887892229030838079781580292606626529814727742162754492019863914053348213722304857217714189985714536159867267792421449010861164202926004658238119788971658656402094782655357414986978676729783221596759395059327096654260620965600697878406380749285987437080827512806439913754078030475812749651141304245350551332713070827202358699699632043333802721513656088431452262819198531712109836796803789704335650946878337147946794408959126931249897123257864971424367312145471124680277645833987921158429427680534520788425644548037400133904792550365953477623587885768419350201155196461985525653428581204059347416497817387434412148314902135319342980987685604978884717429005912087798579194476753344686153769958688213731377189848686903574871262718607441896373846603419056725119564839081372959944467954131792900880607284362010052100881786322407715332067680179621049610535278284170189874007481525453819935208292662577593142045880729853861589905899101117648080760886423480250888346140967799533449636250032751139349394423065810766529168322985829580301679694895305867056639320577807363788309641344377568570316677089159674407081429442097672803995695796629796400716342867624800913605502130271708707213985681699339614039275277631759200325446091647150774593249050082268544840243795194433933089949320243899284953746550412622586518693770585097367531589014001916424194846082607681477029454120424563794097820496843805077603651108691374125352015305902419283611529448838447162903776101404354644300701564090079744325602087692435486436782785263983765072286733896805139959865741052182545788643968009725279671974577894988243907953130181088916060468235588159852236274122693127117155146505361435641552383734476117140623893339645082378207336693850224666991565002435266550635990350093948565599117855841569313804915499136132548647094443036205796979194420359207806758507002598364682723811497488419784411240059714494791067603143451866579131362432723496474584590538233611434338501695643463783606950630387023345229995286716213186824074985983085284120622192626890940509431683900439416182533928633309746267135725127398512828990883424396612285147257332601655390273007934115129789136242326749148128988207461596180353827657852396132831199458619223986746849382780674561101404317448738309737053151940061432382766848753196155786686191969207766481536744464333825355434522165250178780873407374110900256554725369001154688121397527243373727901765839987784912144713017969318271147083530329907538989797101676018776561029487495897209584244395024356924260942919267496616583407399459211307528753152663895934358012054951264514505099681534272326851481821399400818101529558421575473940305430295004100337286592328652401244282126519964408768174644251336209543313556833239741132866712941665397725046867154081876972876348878759753177298586285605381786973789397222409271095435388571650492148842361286506691987610224058333581227242168524174586062210735031911685113201720346723740140824289139307582217050046403285615665225193594550208182919291847099958267610932774032904535178090297409352592130562263456500324866367256544867685801052481280010974755958782422399980611802511116162629798940686530284249953853206811230638124088627042451696328385620784174677307911076473186863648841910058466083743306024274304038173625828254655196937520158169863897959179947735982999265592000125971672938836616567921804217231906649439659751914584390495502141674426668709260254367785465210273712235567279185932460127834323357135803831964595283438113344585533317728155813071252028164158860791693638834079703144625239042960279589885566626657566174430118070916672410767013025447344657935422130309735004437187664688492104508879069492402868882957088583323332490769928062193739149056966059672573498836247791481206903950399270022931056188603565323398999376692535806635758737785699972518895470977996535623572931867223606515148505846872943205771974247289827110376980799680133890226484886026182215804402214037068065401942926144107745981251654784541411663313927491533575137917071264966382855217999800590657402986125896382828599081931401616377206980125351024095980992259382980556727371499295633028598404867113501989085376228018465777752184134431919947946495823859356727327293948039414382167469354095601185073794575783955896229057999217851557565281066705313898306927045352530276145487417112935495404843764528673368009912302843924616873634937008592083732542466187844317288926504558899447789441380625850885326614232784547019241953111035126065582184477886450092302872400211355113996681132137910412461523536295902153306169326355345433511432243581960077870425708335192875170485444020616314950214457782166845258999694837357680716689560729308409348589824725086089380364632714152810513686040008407824329315269276267478149208712768567400017480047239389959099938683967655964451222611719610897875266288789811798391562418895566360593787031298200130859811002916764460944587393474400255181773317353326615305172926136509641262440687243399196425094954009608232001155545381771046522375341815916328992826736523998713001134196618773062318740058789264688922422640677630306106867159216311830632636123598737731175501055151005089933749976301353171441560583879343546541749362670294965368155221064753505267613944079035208811253589020586214884749295876805017434944185208008628574546011664756679369701424477900917385162829547592725899332024376756320775748462237821359348797756458220345505952201103577072578209196410156453405417463693062815299084016393452648239922906215131958285187280761732710171762475778363564356736910574018501910636612875191411965421987177319623666366591958018331827809411692812365329516379106898040130767006396244612086239862546858434524264408791812342945628868509089860624991038743454813861511437048706117773057997053492362960923093582473253827106779146048225200654435877156866940773764065317560451026375584528303007281550109993718300615790072773487216352454421122852177289351221508404934615970205960462284519629856766001008372061972514826007253007101396978715778626660303313434037491148043444932198475630466413839304686310102312534493073777336023170284151407084110250202410795326365531281747107285954588580747141022091769645722916278317173393093845845825227436630573587322661548640100708888335673541946506479888415409576775550145271877830117349025820631327380259826501631636814471264995744627927141358715010271403810200325091712932493861551276132419424882062935429138812342819059039079278698613648187773427754468493004949963524856583928579037866857719701726504730064976185316272939554777678713199215884506293850038545503876430192823686956376044075322470216242151408618127330192707007420739682580732712181237721809618887961359062613980551380137627688022493314009760113441590504361784727773665347082126561787059296431373477282040265664755940579406864489932200356768960506191963940024812256585498117188961347184478267257639650932384035811535963812562466364942463079696248863206768904161923276116430953467039773820707781008430130175520017017779231905293090818311485634084269817155187792398778501368034429209884066031823311247285054131968325446667319360193421331359146181540508686194568000176602577791895285794826939799652145281523724834576444294037013059789728359112852728750718438485908642849813187238489584839170941315330021965253142065035238344679887519307773880502120939008901453485264688436096819638135819673699698863765883222700063573052117815682591132374249740025549922434155356335758292658125697794931482210682664831969601378905488768599299862655926053283568152288364992609198888420777805877176527024551785203392829653457677100364221451123138263065240311116430113071258043311969213774654259633746477249915680368529081208059763454601573485077560957917729286537804513058566682491093646739982044702325994591529748361521587569081901275595617239356795719625780990179860275706137205266010021847819537239746836736697351285708976314545630185272490067107027238343719288262309597078227092157629486353916987198112388811456364040327327992611972053399233165914701614369492356799819453531531585178201549721428741960414334318620257750225256593247845653863290539723747667813899170556241045236444075395018437382836716901162609784026958535118108617482947724561799764304343301357967379823310259968183110058256211814038926947409671713432168809983807594368197452643509944478949649585897345178364624881555039885255505573174694854708567644701372216505538332232144946974630743373611924483066876662343879852004579454703649183578374378006457767117804374381276248550428837511801830644600052301734921315765496460345742913192422074163580020873104244533159316141270697198197458989624678252748798490773100280241491554507081791279603923376480887152880615877901421106900686100469464033910511726314967778891811946656504094452226711059123876614444900000478845291974447992200081459216076915063292297974118922555620856268858983757064864676824578434494710800456152643649947346890268235547832741320164982333340587777513394363655034792366774898269713758187869051649643123081204119739685525098119583506017832137618175886465665421157709427558916434319080139651627719774433574430529518541767409947875816060318101315844238217551344167095023979456732060405684636973103665597979302011625959779123260581730376940764146496450180908981024029590284134931349594121308755876822185821205936285339551237341575153870665944972727346787942883312850556475399195307614890175317399029814977334062542827420167258018417441924399982887921886260457028577100444224526549648720668790336324819167612469357874001146759305141105149528744242396422516034663138574513836412863902793978317825094924998716581287173394395122035416283442021805430163400755712131707109201950844822615715579440618887703824814114357002086355117127971941942656336554132792248212873512379454507559799491735960173298902145565750611214395821232150108580821876977780079755616312043213874823923975178089950862942206409640310645040220352956410451039766254688376534089068705186056124607318211146098890744519104271257240616805969183112330534444726215206203293690421213721890617831372051048554596177979219139125631388221117876441337373850686052289638762505296842735514271951852805388906195714035598704766423482097799778497704168784702414981534942087763194114307070603870347018448754416307362386570335720709640300433494761794291345831535932317151735635720188833786211659084060329360397457540201984134927451880049569117012856754645281457243698849344709438426743951541773846859388577310081434235861973933590313035525171843624385413164808907656721828211626521018993798952939265592476811902899583530627052401044831138490415135269090713847361494669993302347202555015900436548615692923708897320221424120500290611812321297318828457599302524970055474791202060079415219613397370117111949129451007741051262546727063797184015602248428889114712534939535308603247898124811009853667871147457476087433121433310017852517574346036472028454345493134273371080674188951991129562476472778206955440921572286061932752197330165097465757659065187834811290048600302684901682887686372590912325282044208137731534816117969679496142896309053145098634210083980511834368037240563556447800350327548661081987323122285369414713683051609297286699587507812866931417308147121873191771727864432985750824549785726583505998269956088343726229406794341542895325936676781645006962591770950954693471637895652526218007930255575968753535733104993570474490926484305662698579957726785884117316650692147630983127761118739107080410746113030588454058806190999707387715226105284616315719393506150615135131366960638302696209900349015871035042210010644859497121365470114186380187498422482755243951252818244548683712465395141370937070053153820565076059898720210939339742911843605496616093723954534508082400080375085603527724880657449424985931637804865946453927148270956268787508603055317347597910434148423320258021628388848257524689586209514108412869530915500261970023338758835815212958180360211452112735954106255742453650026010668655827885082072749041984044385989572929354445392165511295650870058180476391123411863453321100246942941949121037733698160501805987125371822524885841176684302310451357055722764379002347040875676100199490486859804257591820538947603520964896434527937171312718452524913764823667082918907146506721738699840819980617077503340964621994209497097152698636391494715684558185617796233399012465952603115280819437375283107695906361626520972775634137244653747413426372983765963801991333867450467112805082507092228779442306131249640670504652569973609675656803041884172629442514965848244105710560662909187817577032218577699984536273294595937501534707405626488706178835999972611425032302427989809142905288799805693089405163088862333623616697308255169468855356764543506675372233837025772339219593322303770073993055181649827603744775780887587138204094695376929101015303337182938229854154516343577941642325118678068841461332002010880601477464898617090536244491806412648806642493072954640150673520122663126451489363636497729896081631449179143562285170667225990902743802122487685346236604629053244152066853452278806253063647931502984516507250381289710944860617766211320271105048431316994710437046388080154163263627878838236829312511040346479639799511341017360175554398572586156060532964538979191948748741639887866329901530478854091874845049576400893709760196685978590842560331396075879961770104778231164619478647935149679474524699591944005975226918607790327088267284234071607392241241895951653273004648429182374351678534428396529292148859838301790840486138776448388668981667776283338282251563734978833889951259440030935508219773751064745075322015206821652819020151124635442208529647685824522949096390094067758526783739734449105512463136058980604633298953049072365796431256828837163513214312973028008467144557005627660086763831040990689607278115143952751721061277148603176027058693377347475428512126798760776617920731432906030129087937535520113229192644393278441629960890138335814188604266829484173976537900831899070646244078887486746969729194018538768338882631783023174891991146649687109782924180041160443004004209061096246201534281890337894718157572963001504642865506478940052402528299860402419412346413594090566650479539866076845083811248324573146564767811827321760431611789170317044637040949961137962051542446818817720821489194557479556081544532936588513503773150363933657447568190372675181865079609779997951029611759983858327628130656923903967349166399483900685591644634305078904624213234887196878489977389491438597289964072123080465677534055165257689528445361993889228595673897838574488718687914964556658007055703998856799339395917846470102237792666033933237621929757901439711859966282194887864170990671261609997244021368881060889783834142674539019915593387082002416122878648109552855540284927857286892873270258144907373908902982064277053959794342055677803279131440111831574984575196915637868649937902667042915500724337323246398216155516770051225093890015936167798532317719841586080194427305493819658038061810948842576998205019881905285363971840789514848850802190118479376726795990568237668712791092256870798551095579630569927881126341881303448053305234322207875408122130198701075456268576907008841727476801569254366042649556687897442551151952517263843241676602832039863358245806175236373600444475618215996325370376998651344785874567596167827450371704966624959164197767751740326764604420239046068399098502614131254360437256595766687656591784376366866531308373394379752816139316060427419553609907693712832704055849680743026751773187010956433470234124106266565674329147882175208741261606039414052453475851220834345048352940775626729422271569474761771349373287212725590487677859470197914493183857013464538325093204673826673939314588730189470562343259529283204830893353933406013709955660488559141761795960287144831483012465563860488364476734376847635869971448578257841178390944566766341399333703922259962376831989942943459952849712615102953957441131049747738200579178842014135627573479032531289231477025259254180896657199849655365930977251987961809911887436051815099193937644666341786910532955360656271522580033033629241513881163290148579088414254345162238710505374728763591735733461723364835882502850173494458611350392373806841159758699478042640386215902366887380367391422886852612738316832801227641966173548672422014137658401386914779202182945779046315827049311017691475323070067912506473306942905159102125011728656879650189110952413455821134041358925631508261847613815671026333592850992434926055401396669703113865205427496927266835768498382787151557253477160921241782807636733768473528932911353003121517350413960746553537262891950940479553193230051796826372379565640439692133673307727898400946727041568523798510914203241331740061518266082093896760686953666082778913069509141083730066833787136935482335369062585011488125693945971011020180275122086042656834685551819844617324968993825529597502575223609825194532653133827109760889674031022328208125854961500571829334627995360614223228599994359447417212958302920541379582918626177781178002630230008143019272148374344163622167437222510782776324294708982286099963310345072794757049464519456989160084441301077667450758615640313072681411483755934770966188006085580975143082164429837372179950037630960050002477962266770040863358490081191329099775443478976456262033365015907457294789433067599621776713255616962207095218627831034339710592178498902297398977063883135266877290661853801349177922013801804640267907745561932986992103319100885292480261801917309634387154580571347687258556875194869988773008021807511783540287949587356759449542060637537336781361097886883095730725330444958202657716793495645084340030212465638954993386602887771132189201182027457917452092992362683316843194346719147144970939101326050404659315854545338832168707021981253282560723755231614251116402907608207909292514534020608132692619889608298554907685964790060821007365003039120114649519526777397934242045356439456505998607753709125218952972519629656822328295499367079144512739078473442267000686942877725264269582510826329564565134836056453721875445743562194606198165423825805950245148005682569395573444942780891525365754490323852546783653438396648886670788052710416561186629066521362476677361153046676568203158918494495088913610346275421210247551056166050330920434534680219565514730448288778257855693626150271810116485187542280893205129712607748203242743813107213195458560170809479178997072617032881570612889472486375934712460077645042237049805314437856535459198088633106247240635829492588275832514825575377989604302972564344972515579815507108585015349494864833255596963538070950286293550843318436622137183870123418074967308899152315144210870928125124215699376421008748836817561854337625283912936323408169101512401675313846788402888360785239650618056211798494291587613296487961505227815001996185230009748078975557031945609807763859833226255231672101981307788175716426558473361638596788721389611038225790117127042606311254811759267510598459273253741142224054944699783918743552628125615771610655621609050497705309206238323945706515602168071963099475345038005919637568198042189859010298852076257285697661731740539062105157128928480984680485916826089385856630254770467347012468768625653594590078239725836327765482227217782795168075850502639698981536313540390816795926383474524787852292808027128869522136616945550262265014842678534983808197653680572437197937528778050565484705440538774164781707727628206123388753069882142467482553160057671626892097215648550666735214968927871051524360531009147730036333306835188402252425164374829876669163652719280779133669353720419465441725963133963393237452864962822844703410386179876205399164101948447940265519946453946192588346870651163241689148812447633012383237337856268809610523173352988801290392036624504127856826472037277008878802343477680620660059243480211422511405885694542370427296444658326102999952295759569694695472118559244469493968261681017746173635747126505534117317631848395143866932374285049554878903163705822172266982651693303957078880534689619686055694281774864490317190216302944291395803509616188172298430158214744507787525458706261843642580205591696532433739831338652565709984435475069499957052085738047762275700648812493188245064471892640171939537994488288933133608946394961960864158233956933802070255491898447595372331934807744218468707010907324108618879942854642619614181187654309037308248844414905764197055584097048909441241059395877412272101931688393861657138325572853596333114715731460952443586510956941910112235496643957874849346081372783978261779716743255660107204056183844316723148344057646374310246403438516787436711298020710701273765683014629594800565362646975621349037785391067380264346993937930065071649983998923275792857173026200022783314235842763917911171467801889412655879224462521288693129737581419296498084804199691337364879767370562137007022355799012735397110281502106167483628477302595088788831843959774561228031508762595475515654656045195712684600271848307981044466065439938473753468304851763158652136871199706017671593721655876776477892000577697222716709759096032461790331336063742108510288074642271876858827099119031598658024808935224060989625253457308917915363882544095581139010113863511077941777885931516201893652902118848465832623407877974871631288937736666584043136457535825801087355977953741062301380963033085211464758162635136915951859642658736961766147315584674815779824984387675254557022279701833703440641840339685993120877404910043833687245049425085085851165780087063527961283074148374733218128645721061069146136369945868100403433210666112722549788983522075622523871452223011652822444804207123312718147263197301798099247267204830592998072071610517046235438424434178158449840383295393293013502439799992942506355519286182251591112964319945690926979378089857044783424829948112479625738378354685614770415377657579917861866532351995193997591071592054223770024872265632442853787316737090236071301176383278717321478686578143002060587240206817070994106736358866871072685859076881425398655447665584142913378183221160397697101939673238243485900325374541059574809498272952690564281472027372639678785074730443748811494354061058688390257574738721054540150662271034860788683466125745895673031603076701772853841409789011412022282422116949112625555274782944079034691187396733715136475695067038972681807487302134055906240614068087066788987417226938694991484582704048744467424608705961621290626274315492309110337572315830141009220579340243034558738576984587565890584459850335314393742867241290686666766724378595033414949623673259641249385292970387266247218718863401196612379383736192959225943450719979625302124150555524820798452586403890171378601146363956225107980014295763776858234881485893549247185616706628753360750479017131552370163318038322786280249765204011566310872095288779409025512828245120286367568643178111346722135129191763597266588921004458026897818279949170445131331753624192534709600249206340380915165040471645305267668149213905219735808141272306385943192230954438020960159907247345852212935098085149252717727498277348968869813719429737062521245068200983828910130346257744231977347588569057304427862596739319348882405704960318415052507772287513533913613795747752603694084563866018178577201111688330951838213602419864789270518382773298350206820808391660429910755721435927848443130383997624689250821986602716168180910072385282075621514831912641951416418935289961818492985822863303293978269095845447140424094996696958971267018753973045033878935710499838405655684996240354324121913088724251899486919552919295330293889128796278075171695162379117630066250603218641267700583522315968742142327359676046929345122409368068350813341313404328285440147895194506478477537049883756731756164747317510110475259163044725657214968198395361742529777319007378792912942291001995203795018952279870812285975385245632699921817522444177432236942092604813685187254136453686635341877839789325194081633025323942505884034478780737214699081430504579176912906396209476800379440161201124347846775174483865711393265412280737607424184098183838569017158582622417339969194209343011525199977241876335054293218463677432726358496842745377724751959973555896584528511454609319790584963344280681861289164733842606541826293751523111533718833863847854480821456956249282863953718919611944940401972227228482121534962200030077297195752734855878245631296370082692709211400626802226879113326132434227620857118366982448195736098953136458856662454808692136325167698107571576308447844474926816025866403361306959913024459907972987504202439532211620972427795797253848805465641460731182744064985430151680463675384357892804412673249560003133001554473558259186968005731386323113764918352832337353603093509143456992328393267493496833128195924633063129473730368384725048739589734334212426934348395041079994408800022681838463207029794438234648759584529315585803139785413149238047212421844577564125160169388856604195472420678373288049845802176813310095873660643046471644217765904954297385642829457387915530915578260529239018575030349315874095028132869909483444107431578716553585749141009780937752095901821947700691156788202101558722925651508988599935501793290754179591342212371240522961625553223804212573374925833868038144563971203087370975906786250477584633253435873400017650383880272001059554312340308963923483286747006271817068552389237344284716581652577760566300095155234202345169464388228826616707206687136424658076973691808883592241226316842463226554893524510934658211023296723177616565528126440330918954886388897248533595235977863683023302385620056606034320891003977642413594678243003660334026664851507054141389540257364503059842840489941997464637860025744072304561227205485932384003304881646770717739843897548553714104011707928025475278776118119218648197953699826284420623399657595610464989765114360988849959058171549137382006272475198330248148898382351066552394174255989230845852594346976044113839188057228618848080576666595974038728523767256281548809094876915022669150300804147273417946249913268165360020396615507653906448284396148982963638483069372701435316291584102266534219865645174951262149091985314284590353395106600085230190709222514183703092525165938223773280112923193056706740693890733859976867105399016969493459041867449956470580813309111947630502337141771167781342241215841237431810994278255099885934310735692027842124077225464765616245714351484227258694893826409895273351204871165411314443162860205276604015296564025831158665675565572022853472069465028494236501363130824116252034426271578566733940494642752716007489794632608348609450613708437488208376933168948795054581692171364655724509984380487264972282081737450844393030080880343773925423881765371428590397246217495038702837893427583120523005050861550886687634227951914907309856849964834604161126057803741259848446031179452388824655606578049393609927142813909687465472768433411912935835491726275511085435463996053033617453899672358026092229017655138953070868478449341127844865511076250801536045903854345101246869898156572944688987396808761458305589167482538037098686689279283435649185577747665086773022983403470085230745503555579383091336257958854194408640180910379280852532648704888054430915872663808868467502111326579217876201200012607537253844657796979471992372269841635982656779023919643034264037281688522786176078841653597102072011396694345627495170230274138500196007322461927717892732458813286460966417959532629202034651767338311600539565216129353947918180046272522349470572047038121910345461451965504443455528612323352876230657091500536183416222066079720433550085647027449559548814747204422436351763652882834422593514560228743281603781840929702443436677616656709521952284891698655782114217047125994326657165419638478620052684416961475448032303535891544013021324474551481382858880001749974329127843104299206637122388377815922859489566359484542892125046068945095054456697908370382192268083125338286608849576880112470390107812857081667704135096834159643477480060296820818371242059138604125039343255519340417752622511436405877542424640819825022916778318239760534036214636595434972260966342695822171190138565932619074801673508417987545282915033502775895251791495781337413670285159800786661688478079665033191584095499833162896948732993793516840424209742879659738663839802796038846704572127197338599056410643088218903359530609553542712078109243539090277245737556255593265366827192301012616269549593269096608410193864843858278439382065205578951559747756549118182457862276157565801539609154293221822367560373317050916582378192000268011338352270963796980704192828916326052711368119928684458794728080897349954513437387463005243573954855945459741675086291620533864131915262729491656370912202175257724670686724470468671662374950820620881189986978221393970754993594288852998159073989364998108236941915123727787292339979913998039564103060995554357246229711840556768057405611852031108822678286362731746875236893002722198213988211736252131998056423249198073421947022767068070321611546331788823049848776660054054922167177008550747403459810814057362320749836174510887085451783934828214058393760483556616996007944984581102430067873623548921241439909671160935754017140019941287518771734486936312946014153113216746977883642605639454741689275550528979107077248751537724785455415655650043365587410425979831807494979048510311634943780211055197913439218641937970369645067603498283214933871463697239415070140300173642615685323856675776072688564241183158443317736401755011315189502802268037293527647254339222109500873214910767322367007825062582917044496371454852678728585354806182022238239197759938863362367947775372371537575606349841430693925317814396228882607563743406498877623031343051961780979242029468370414290083268339530971637002083425668882666095028496986819693691660341926422267979746930919318502686612203738015165767468126723661645438140801634432188300226999199314442832801739211886110166585560680065227775175953715850981676052225412565294363132909098607560487881126116534695041625456796281285436203985318227425198898017761329427333199508531463670271126843316821810101503987390561831094016151821924269511174337801728668323939981551407990922531124905925726743906801365604640324672547862877564236713652176355386039155171480128634881195602866781991798690054944066337880328966669243191072564204359406170918793024274295932700443090013215960501613042873579596724213031379853595958778119894849234847178237784024166870290528999586772772833216916966738960183726416415645627449157656645579345775739413859870510038584531427969393162044116311148590931319581722214097239315222566336129555155053378917226123197907142002341218690474264729159858783428461300605911951864429163607335720876592980965385769235248166905512139682240846877017296594545674053009992050011298198635330912907172578161156011858957048661639065457268478394004112181041674065108111864097540536597214405958843231471483400803850424463437635062684160045497360573983180328304027795391866470240946201165054939549349636464861995671459463455158084310073549076317721345098000624726685898744823875120198001615222090157544483610517931766775646241794293904559094715511958512881885999498308868423695606565683836877737712535018279102845253986444774907664297788286179498535312383766466876303050910088505152509579710310172003890353974015925796915311706989714779192695092865044748417747605332336025907295824594923115598714040958710818477267640084161081955246732012883628476948945589957358550127962600838810604519718746548591072088669449724372435364652189609807598854893665622741489501968298645095608380524964453675872731806444220358078077881007420688610923855202542536819499010924879694073474901110565716980227240786081021368637338622586976612502907283578669384826637594997689080995507449890986558982755938617552812343362866137259809888539829885838791148928383053848170419209536664706714256062294575581717878897998704428881128026177252242263797599908585828665163429604880128180805117145962187888649841546063776060249635312409207714210700743663325622002095453281155065757052552603591324135245053355087324649626263638492920404463373317675266973113887051618001983058107996929877542178061148763221401472793626443629141404944792336805756762850889052306141725962855795813524926972442864522163898234496646184448963959510498317638210777304980308089885621920384725021942418599967256490417930943227595214585800852206481784983128134733247179054941457860953997921823849175399342867863758363553137895372052472854653700886735881187550753242939749190400200318349720959435029177431690961396568708675215356326482048424912347061462555532551068463236116321290120185687792895986774110215752119255785847873552587547889824799554799741946724789912646246327531462563265256128434055073422677411193600126386850923839162531576555613222989152509620197030760313983502783383651267161466497478224180141463095775762860607592808857519250445765108137801312675775767904648545537308736701894571685493058247121878009628427665130252262179979008607224014783839692716193272066358266140746144755657026571387954275816463512920027622865256090956256067967413653675652490815645308615316043101463356826760570272208234692475567852447222513405213409095453015893900838338347160100094326857045052622044296972644061060869867495153652783582027084772493418080880093264876439832311820937896054097225901677117658564052655557067760689648786557110152019342976724656718190729229947784822961794593501743604453281697813055072309408913621237798219840729408480547811165036549343762855510408479912889263317480417246764789059318349637755263850885462857109436930273216175653696591798469445586380508699506422942947755482756357052968435167749407754694312770175164813812247078244090433961323235678842343039916122468804098415097923611818624316731973636743238481811762193003569193577820049471529452714593744696748448986339644522175435634658896728152260624005939522040639434287388222300540221767488214430530716320896479141526690850592492969970362423170486336899652285405453466952425189068260769581720096729834730965002098085534431532802396345362146311043613625404571915832805014484680682933083537411591487593230826830320539826082651867137207475089308634274743719562486145940414350203880018008433307764251800362333062099577270246010504997244005805681896750784277176412554067905326317664224368012319933678894969811940825558714105922822720692973616616131675057603616331111563735424627007536046720339570263922593334533779538809179012596314944800225755354970862367623177133910582536380856859697965416022092542550829176583121426968571355313352546066237226273899111041008377068015163124918028816552149549926816854154236957656764881277644778563081319959892308500739134745100786932061178100777723864408827420830971715854604828633292979259293600234565351083547711535440493173574155993060167354258445480408530998352397400819247243486847819292056333437360987314150960999239111164665483284519480598693960671093785977693232632697587175132941924955597978841000522959191897708103292745376291739002149570913415156242493433025518281819988560826771933943823226549396886117652625381876529960386461102397254555125833819487722167444226557095438194485408190606706660106786648800425528222502138417264809855264782743426524495914622283805120983251364514039449298804294420327681216622370146620055500591620271767678195441453108237272899722732439129526499928490418797930296829302059605124591755653362920735201800335535419213346319763292187669386498697952236948421014334048348147308045392934443379305350905403127742774933741234269705027500955957126825524277183667181554710828939985823981233060047109867926510163493498981543536008066599404615991373062256359263273218690949312820856555448111330849081013586462802715534895146677118436767118289864091398442054470602865740197568229860779283857639219672784276695913255258159179071668031716113681311504720144306041238601942725346778358011385465503351664737235864883535087884025378344231442561992651075812644484358862880498457758004374437824417518248137867101808784423688736508258600389981116498709422854411877723643862785469686986069601349989585236111550480268424969668760007577016190202136414163400690951268058629480747650107532789284778324924169132909697184252703080489527768082369179859807927911458199518103045314869242229649060184877838447011656757751805936598990481310860539278467726071428380633033935482454550327357988816774173572726087052931748614901778449750026617010551770779019158630697030049879077241788249658657433310110926970717211685075992729515037136202970562439068281811057504833536577528100407896679942804284649123032090554781063758309696786268806400947580366872993271826552891954682910670030009564482155176700222139035500212536670896500659561962048137373904713471598756751769098727380761641705200116405630001419949014482433199345659231334488013955349142578897413783454973672569840960396584643052507231600319057942795525083029666270730828514809412150265077904844991148119589848757718196216633373828771475003567557743848072841251583082189523487686701877311167174463463069053236862891430376973549799172470831418423414294613865056977124295497839241882021051661844507757562914687998268819540597958362781583685340930911681836611820933905226743460175147402864300610495463406756738875360190344217073416397415853335241324458453548867859670625095757532756618671933482986342813292755616175153903866879512845015539915808737229861985394285731559157482001306536918773467764831064199584615106486784908158656441374904599906404178198353172964511810391109705474378082830409270303678723376355762794294994409184475475201985379252111111605991700935622104471742231458393711369006817932249340584297469368854728945173634506768868234354420254772641172716222318207446660894422224352441880438960300747788793899945242692320184453949088394271094271133478673267458164114719570057690958326023488799215402639974102639512354387623646824447447564276296805955811862701023979471999747755107936676107229052982320220391437867644886352093566289768384336790422797071095000064806691048424058366599670624733119222144182604495090436318236462292709609845170521814560346114119993989874751478028480005415321850732410389309659554988101888790558309422239439543623149082679572277937524760978660155797187624102943359426110729765379016789117821637676936940663627948372665282412288388273560567642627560049317242789680027284396816529396205726373571915932259653010801086025515111926682597307850944901546618587325224419074584961402446643674352678821113272786860023344753738469459684423936832173921270721286698474743208935777201800283701352388549637362058534856750795136739207592642836222220268464689640471817226066642773141926899276397450809391132115454995423804495799926376578522144839490529347160686734251339664233423172857482816588655141178447948357845760248874165669863033240571527191529888385248526808961360385014763592178063251782964189093095837127034699547092049019111989358086825323445592627905321701489719849574859049741726789300909669173071580053623248501663463955884392205359278215387745614141197071027073207924612378776668531049391531237541676291719454470397696344389683611869426916270876698186983915219037252883195743742889984818704683690324367237626562366422344483027716843545186506028265832075860935493937207511083558769096861332384562855742543453080613427459044038922090335959753120356751983309219356828315341556437828003422055739181276358970567458594758515462714839921442957394981188341147820113640127888543662977722602524507446994021211276911724766935578745705291690725758880430531387668109091229426472594062888302713245672017732439228392446247752874621664833275613286215069651740072660955583582886168737844245560987453065757390243323867373333634573895633177759136039913426769275162199499129123948486506901493025541566825361083114589889674461235692934532612390613335780167379579191326811827629986113238737955470315663062404356062647473733341534841138639299491944268331692551980287502141426088833993366852670705767601776183491995256751070145254243663166485635968522078517878453294798304806767038430496638732066393687803211664737082910080864372195890340568000300496799912511220541019662765200871738099077977168537681688657393733983874883532842069898404668655795702059315483533142532909742139384396567627633187034206648096325904496324098817714201408182202285090299522302922297073803094222109077935386932340594407269046009531603409449823052316301308751332961065799785331973639247515064647633643766937844755701030871358003449177391584014362457048848181314784321561663096342468444258618952319369883712393761794870367279143857251177047338291035718959602591969628178480205577831421827444776176589333208837397092345833730058322558863866938889773642386478023210041287606702624313721110759179200512871969727146377006816937365520583218378207728528537850900505031272351985844419157353368188322994140913428654711073135526109339361607382372026134860485190842387922582525283734807616914626377522743740210459543452862625976549053562717206808404252311625133781811204245045822460348778239505319569056954537271371910657020595475206917880474921224698684940938472734798626729939659618118008187667953732606260742290195654473353368130407007792817161196401036166355119877183305720236946851951588919504616230607093907729230297580377433630369957031693288836825384679404712196129126518300253084917449254562966401717118796968646635532073826274045887910008842997932074461956895392103538231921711360604979708938737577377418985151422509537674993682055109621250466045147742779895060498912082871682539329650969631403158920672591131143040430429787360075739873192118211347877230964945927235873602383215754586560749320429255202165149962397782932599263958012375073004982614563212114142539689432972921509217891169167231800193214917449023261102469892771836093554787541994937954990130717213324990282468546201417870298367520304253258697822405434706244353704663679449641005146246640408646413205595121598466328121069552315526715915818808813457690637118114184605897167942105348039500440683179360517602932296357662367808244352740501213199765386409544919944805502209910391204555491493431316745562935429559486834147246165983586640145107168728481845681008143984714313598284273962310411627458257671790694959470344000558045821996257092854211196381996892479623872856248237786246510137070654728241961807596207255425311769074528644596097112555503477186472371328768661068268738722439351203991245098850539051052249997240792461132747993968140686160280008987371545321350063786316717308050427002486972926126087720623132488547885499526057509536240555022880823072342168219148122320616614091748048894516386724213808573305701438977177158405201979811555928003809307669096664533331216194749145162387963671105433346614019806628860818246643248003213915004800482518864792013133680202687943963483973482189426748159375984512384799703149372564567283971896934747115600553223723111440458858148351100942542026147555568539397284111804789296502857890084918010561378644145319505976569465425036116292831995753038731378484666742745286799768989120845411456404585435380258697630269121523253769535879879896254889819288053653541318834256002447754526026061773128094775785611371175372491685521386906366475226067536638536260784546525404318172791345255404216105840303140883133635129131061513437232818865238908050989126862577159660114895573776156740942105897558909808047959805269703091043718521874702167079431299483322111297031472450165041044441935022436442706376386456410234811181489303110904432391710881279609268201407355506878134446751296099051014537980995872164467513991995307698178487602603584651066195160989988907619636460927597154532458323600521553219115290543049371619657671478929526367262114704039697947008647714306982974130088254815486855111666559250332355216454505947181123050148347578112370157119807611180437719775231961500543907570158036102095841128633147345021084316056571172163623689856949347543633900689083135148427993957649128857816209373542063182240900344610130356328145235946324016880309480297471134362437295652873595884220908726447976347229740146824411798611840736164364300385977956215790679194998742507644917623523255014152947144577724527578977185900382154429960593491469670544748604766183455970825411742621161059383994253534567130956894271184252389034636235829420407875464308923290168425779563756683374764954606614916482120758477414654177884821292038511327069396435677170212140980878097845703795503227851706226434252145507104771410418310582550585139347977903246836368873842791743949246417485641447501169156589715275573908831567297494777935351486557759865461264317715883960088271701886945953335192858426365312677087683793701151644272950090824431195558885822968570723521988540561079407947206509474420982209016208905202083524184332275150561249057725155877599071243656908481819089731288625258928874353508277038357712482655841945605983543310320713946573687663630394181129994827502727822108340631680130933271483320151596707539909047379420836684550750620616211260465846524085253599350114224395829388640178436844776096361278169730354040075554751194318877013216633279356303525920690300293911854671824459564524350894120553833176386316931477519029364889719217244658374494470880570902570577051937077595662810431215223104403114278416121392292835868265570190134351529783456661512968212036111744638853241446447172944149997563724893973726841773718368272680135894885729668912680571380090392564980839106466969908829716146269943875821621985732471401082897026909329124491911137427520301654129920188052397810996937717347928147334553978383595803920769765965622273994464022294597416160306448135336295883351685696964766629337288999582028151883571985353552282424484682624359447600268046375751737388939639936995617905145968583529390321708452784405624735255651939173996468744195084952396774817572344496253112406644683084226164753078348231846314675734615267916817101006421497967257707614463421381034616242575594461563887154135552965000019402181180979437487201324530453728071321682788779384788113462030210442881698105629214976929539669034949672636130083927474237010136939088144726569126985454727102790932937335955016659234972986198583880076637237572667543724618888311647408750431605710290624780891191451513089572993474437653126940594772256374702884691143940311583741187071168906765748406443433068574301307997026913807409193854040502130096170982942626776775374740549999565487709488351025404180268631577394636361928128372452197420149412021084019102150985716796281458243537341908777335228822164945368885098781746507151755386836481730163031664942143910053863427543645019423891054680371830447389476392022829385604140826009050186009433249936626067173812495647903280752683047193242070452970980118342923268790402017921781890537441370366602605877039473856159296699875037624492947982639534123403111545639775283757408211485852759228313020542136855661452727103517038079950629617223857705681792779618554630028342356928897134449631000347509895295385957851403831031444815346080654187612887606006924941836943947445902716927614142816414143096269749766109999536874686556745554057130819104510543156058852751449997976329342561963972219247815762044827536138128199461345390488745956663230723650432681134119297674136066336948518645524215580435298836037225796803973674837690123724270594882220411643299636652654736145253491644390624637890093473325193383753730835848112299360156044321224079590492345469472245535259581197631665364680311465582279452268249739498848614067476942666834605282346613099685491459140985295475798037135511356999717289276210774375708174812439548042669932822996021532788696841422076454907965969259544523829505953299129387832190265943947464980988363650828390171271533261788475710552463601065841504411907888561216543127883770605144240084743919657811541216795854930381197450387699929957789504173550018045900744697072735026191779570791647466013425166814288823397617313369220333801163980788434687757712470170303600280254403923832883986080881010689788907017154199201328411706815964122424361731224185846104682830566875761793945991088240316638389489970959637088427571411489866606725915128134158098621158546871053272693353576646747489280106023747749904637219460376388177186402582080069249040403121543595630262249088805069760112037882015813491513167730826829139141540313718491224942864032156516883572577842720355150987667274132619219676234375842363762807159110548620989927637768298047631058795917785345222616188540330618117794317393511838542000373511636588344405723219454523298760717312004031020688666779620963557222410043839816188401757393160463687822977645874456242176517794729635142510245647353449918817644706582472863057600669008286575267756513810785290707154908628774442132746361650895798372124918853881335443851666409431137451286293668148903853536914646268465258166447272156269458757677393133304263228258409039989293289285767695730888988375271266606312196742484480177760888509026670573347993786081733559083725902048095638581660768880675258811382584553734374065108950755243677234510602950594686538497409605965310947970000518204418638783324075393460377313714381294859935398284570719435990893134763027050444403488989331649094313601626801549806899135918367200456508076120822126760567380079503610469274455144064838036367591230041116203764182953650593496617686174133286882235872356301293884324647125838028397678367472267667071876071750484792652894367056984622324740667222533243428560410873815119552908798310890402132277091913906087281637228689095828655338077506934341753294930375080984145609996553349331872075765518814588983014703942243795096574977003737080529717659848186032874907846984138344007994505210900354205033460636601989764433914081546196147165547414686567143620113648384501005634805802264950396363158933476033795807058548411506043724344834983652326076042359724064023641015700993007895824431277392717743527720580076711539914310525328163108705438767580233020220381624485823523159832519448471756006637141358450618590314903881158721984419642897904482293047456665462401796214633067942120876390196906768605344526355988975727693772944174163038588431444483083783106569728659797031902905707230299064911353021669696077348639060841336848971182360842150259646764343169274204919715348345353118129155501357310039132669833904403066387373053772425871387507341960871291039651777505433867355900847047886269835687402693638115961293332079338104010335285867736995363812904647829247690423243492423599133703149446291143422502345204529244900042567418239368866931365421700049061793040008702905732030351562528422689664530838341859112460714197004259091050233185468435479583201667854569242197866611593563360573972442997542771043890385436236018652208830123030162578609277775743513502644954175338113935748618400462111386810255371164344136189808118697804455501920163367877948192891460949498747715644312231040364842847644726709766666329848665629068631082080889955447735352176259990756520679918563391503065470111419450766491621858152339474745672938470667628843729188628767656235371090829331037869847222564162416104591348231842470501464200307629876003964275399206472604862307856931736869615455702616166999114347525538609187468409001740977108751269099659478533270326613161771709926967324146295038719375305323894873388582847986833170104130500867054766106514063257334714156623258201648984954892147774053997380872507204983389481134112338566301015003826324329070598817763428501492495474206166682079579844016867710622380788913575015685496564893849805230307287652669330721716818583353472291624152852156647632519272006658960293658114007398122376808105942766961303602912676792915130399964432577172948482598545893567042983079305540942548665429772696534915258577455628689579200422296040393636495924032950137059773484202104282092197288977218604748130874099227572500809534115207989731546688803714749463619380313845733663979015834239955610453522531230213602664876661379776711537828241951599234793071051906114117277958744160447995484984905335881762236802828612597177855596412142367749696885664213085011879725125751817901561855120612845388784108375593959988491765332330743985028211662760481380770203415649011612295938426161994441865489790137620633040449068325441373810067932513771198122880322971234749418230058828709241864146726212113993978294339118509214206372826461925031291158901912680637249665587574635245612425525729872489143270455370357220110743772847550157910116289753207405904274344001305143260875555607184212986569635033541121790159069557221147583061047252073655029209981525034007847741477983609999410306942882518480525190477996942227027995810575002986261926467643191749934894988232773543258530514945665326701931642686216924839748077898191322455240165999376150997207263522037653564918796694238276591694800412410605220093298683066432623237710689889678529782959302846558168033794151920877837963132718650903198153622018722913882770484240925528076586444063840923663958666516979742972215833201745058243627816065915550602321910017813084910077590058922453602685767946490990795718933505868174563680388889862151116395155196359954780643930804666151634120984976364876142524800653665843935078175054821480191839040985708926129588792112498427999153961126847193913129992687065068550450154947660800367773191899447298632859885860490009231803088758093449265539258584502487760933926870313471110774237370380712388623720864190890338822910752601658251434586825095231100542703212852470695109765695883037403723350734250861558505272097608009034862845877342400418560302828858892017071705533891548386739364599142855239577936904060006234677655521583948251559719324920237458993722720466452100933111887004707802995122402542710928865700299974790281777287968020747585821983702612134089814597675969043901225361107363089333623924735303909796379008014682100039887340683039293307771607358325099216557080718181121017142066701296537664626800041165968327244807350080555678316385095631816695239329527752372677647491450151084465315807916178686890525427971392055380399681725033231460309739603253404090728983022382046063893869541758868769684965548562994359907436249311937772347246134896317448703063608952735054891915482976945100132959230555497804394321086663608906179293865421105095279709002245683419315588222896431173390968259870767567827204799928617682242347056799185489155905017603550857171122888442937334269015457767937533727634025472457867081968517344464220858936223064362998380585045056121667471529500496168696996597661881619750579137263934663357392589721074138481014711378765740684429310410176100331310868548422587426162732946177544413082032217456333727151872861652393343300100240023596546193835336059341863717993951402018277093737657614801075890465253399844504311120091532376383102214007146591584036190610493068947790997788766120892569469100264949391431682903524938579404360168076703140267503042478939898003286274781096540944663522910410297643107644745891546249223711494086013998288678180437802721190555293693287760149679986182070179783854019539828554553154238880777644315821648161256856494115035633689646919567462251799301494819207016187841769378764656046374280654833205681162682580502146433000134515018273783142326380684604149943842007595561186159332806295416565406648118235831160460762312532241871773169772983722505749494968808287446013619286909887380028895525316667668283164300827121541575246714913935936952235249964949197764485342671506721437324270140570958876655196780705336237410411540532522557931782115625764372690226588091306955234392610516721770636885550180602626991034129821477931985246565301210867264259386272457150755409282843390717449675992764016133137419784776360139647641228201253884661420697344198214298078070423505506532710563851119279122249123190731144532438155116516600328486096185228719165674565233319462355353038391864851156053956943070172685749916347401995311866438359325307673467777880167967098678915438265515941201060966771095610519955760052927712875037025634147625775977241153512788717688231731639050521633257843503123439980270674193798562742690535818220853784200382894885209311391470369560262763538162032022106683706455404047762505479085283681044790569708536364245527618906747330858708448777061040762891101121362352688134402356837833568998204494189640858356387398511206866310200227039739720261375522226735242774626623686866531760779445051588776860735426649559621933751532502699350120925183444591016971085966100192780213208297967153673393098720519997401543731834147792624949897374876969916676093791491036691280146029572842873992232779344590769644749697059848492606204606550499646535265386256266930398814166386517701907420340238780206680358628151749365945249036361666235967220175918139244969779613019964376369532536280240924611913507520793624200078875161067937754310939912951139765980592924240539338704271670070962906894773068236509971844158845084932096546518709095918117554362886772261383150431093725403672912308229875597007266853590791284602058051214552042895013182302990091881751793373268380036643351864667011741064753952106626678384381567630529138260475649973150735607388325158942747392123435043413357638708052718700606793305790451673052323051376509863337302324603398700281396009775697406355907078184657305439954587636851405174932660622176957253424080379643502808124176826440356191507741920951039480127125842128638238435647844856503350037687241218358394105899574588109715664869257265177863583617599027504832331952681873897924033928060620708592895459310547880370952888303646911599985223392176199629131443512286463255411587983061217988710436364131267278205775197812646527682689892937528691070708083722428390618104763702793204773121790760821768541041126088034576218024553225076570986604226543092402086003174932944550728907531640438047706840891516666622047073939670835898087403142602004725020132894691383684203756676018133805093265692431189836785646854974372846181603192961809494004013465397445049965053734105719434810837331097165097565828213320282559321721489643975377099290939775502313648391670583302608197190977642462899098767658999453380341794869558746036942725416488332269292177526863672318281849274281607577848284120265533930982193893073920547218621824939708410307271269066306257343724003155509360407317778720729495693071796548628405635231001852142430912252940324770877645703112821634938304633065971783900177188685300128613075249107477657039336007341274702787689190565561253826171848123594690309394602880605305704882991966040725077356536616116729149896403660525412979609030707631366707885967020773270216006989662764248024414598485779137318789508628786670652935726845205083372497694134955624160792423340843044145407501591025040420032908618108089042888122836396187196737342771516443672058490227362418933855058958763210770356478655164773595647752150191570059306120471951742427033169504518081900003908827248350732556380017336230368557825753603875234655664684537973877803974168772901893107838646185520110946106873302180719108516104621185394877063000087860678042592221463760553397128774478372496896887808145514304948147331059771698565531772332984207761291665958550887805478091133865283962573545966726136392961086939303250636778634666885106180651461518739190029585199797382110622012330080741653222622826587243527790545265859939818034054848908086635103581330980588215413667284112062239191564157748306815866168084390404780775470801820881891455933448519152328517236202105902234421986649526423643928829283688611460924824363071173708350434433038822996910047399496965513661367860735091253361356049124987808328510866364026187565383333525196884164283179463589923114192278409097815590670520280100220347085276974369787166114121830251122029530473598610572460768269960549405862395920783413809921340205089857296838852233778772149992646965644961647623613183298029986311965767570411058679223864521527651255003018549710591828994725000149845487421918303446533133737946955741902116529680638238070308641567018223265516172952743071939765015547937525222376292135524270711040558127288311792256038389513018700200716228667762071096485789154428824133387274328152604497156433660119099630614821447290980206645161127928292290945642319705403665130542896827080633446233982798572089157030639726181651237344614135333319648845237168368876660022995467049612778542078545576083206453560048920967802400792107357566364346426152390120982204268626176256960773631334832576098311905957311823164865099263679356919296690214861705723923366106399115477661355169031932167921826021416682366370887687177214461049951666295891732063824613510533857576526130386977158906760094413211174203059716647982887031293216657458930175657476583748982881858230882262595858913774910725938406684291436899415069086964833783025307335545093073549858204981509647226842330292752462132108585597787308479644640684944811451168189731839693685946366186349057147270427357037089554069203410541365567346794279544735522955069430469136590131211831885688713228927866851267420564015502483102497518124272878119105796948146275337912279128387461914793766528874062533238720398792710557947404605274352746250057849567169428650709556183990948729939609004525823889256925421575684992267286952688775407685970115477430967752743279145381143620677065368815338524104958506255828786704545533149679109245176894536009773005448284121865562374013206715643810768971695232192159158427401910212622467885507014089664294562619042136488134337781291601612026814801538503287038699722180021495617258880300389370809816983970671732033468758940590717085116800511870673946932255120176447510403985211472279829320923878970729838260965967642838481213239381648163567083876665909330421960363048382851239092214561889153847302118190773430999019573557162464627065981898527963982340451474104228242520365515013024952215824921377359866602546990729058306440094978099836372830521050226293844472367409696650441196815717051592411383328209415376414600724185105753455697830286707811912854099598864653030908841902095926611153609132506553451227407296558189109276544421786623812523520142389477558308145470366573083425453050873604472297401584300959184307408289345403506750222065521717873989999414670930058976171612210616405090010895880056057395261222357646992079454723833570984265198493521666852360805678091917519684373575709263149140873363548181416660747536311582860001406167640835441263001364953861525288346637621814664283070696963611266227524960827205880955860418616768816025488394108910088354665184008275763188171988554260213096213931675324932793802641450131187083204760782191536310330651600580059989202413993614423821754135537360673199111003428431854922041226284719422539867739623453314292071892047399481959468763666761220789759158742177623058699815270034474979326946782564883922407876963159449761286682841605053602794401506773025075233157546175012085010444302098523780158903705921101767013052236833581118424859278419937983780715763151726953321661468906322401921155321997815508979955535062925152379289655532258167500849480623547284320265353290754522456462047694086056808547725515821599879552669244144635296159961218982631621453186803441857316450254243958684433190608351652854221468901509472031632230589220806249363491037707676277196193008857763327643414638521883337895436554021804623217576293779528098282777691848328239468630554416852407418335178190202259130095623643550326121562870530985887411823770748024635381932009460597028305711032941849426072684151466454212024379870626752458491550240367853082400862970333672156921931714002582554589528755618556851919536388177769511349967614243559092223533623555166096158864127747660750579096812827272673523696800516295894956456174076235934254754619472156056853146712396188676656005211461015148892376793194316009596279681227668483752662032985057908043264410410710782400863519667640534026438609228290182700902329811843145285208349479032264099829679974240259302860272059657028398874727578711964076974962497651610397415367912511148385356108046959622179683839167881946152171980415893647535760465108301665625658785892979914690763463266156832037179006295737974200847376712868189715898733674346476232134021905676601785317633190556632602116442450678623592048901759054378662896270655356067306843787499699203746035849193369549720356409127624640224294647731600012929124562243185552055753655947409686645960487814725829883031502833454713013089780111699676665978567854332170044494391537793578301104150728718530918975751261995775806598826162676516747315990662829102943691473642805019767490484538090652414542164268658886235912728206690933432875063680781963966141722053779070761837450532538587201633573952260907840225513775546629893418354017418144745071157691271590394975792953187136697110955937824795778584309099371755182718047930988545695572688892275608365760794182433399700481648032628928425177382236874152804646054928387414000292453018688022909646133690797155173937069385690264985414987949383136157626856988045768659451857388135458399999419498595081443159023610069866637698872733526617563396734917883807024176584163651757818351324149055443505380475592884540557204141197621928377971074063929991187879641138687447254194427843489170459964707125053685296512438037979389502843344007172713475686031133895769584075191865749047767034332268783300005809831754810341263016824730674194560396132745760253395923743281079287248056272040889945649040886820439032760965659559103366991688039210656224741416875026985490069086125134822080799398579573617049823835718155293531827083568160401534139680990970960319196918007618792039973579713193403694158574754773903434793690981368656631377272878117133236548915660349343634945762193442805715291810824122601134269002115731846003870017234012391206745887974610275267933398527375833854432760773127661819682112805155752475952219034463748700189410504768379156406621213647388011903937634601319878654217502470739694642620373767371002543714892823825429621416591408989936233126568477287346182401642213364346397505226965476061837675799839747623603890538448079047495409830024374070413810216100461361544193139573739395002770365854859342948074255632118498175361417534214638654258298775779743107764879866491889455392757394103720656446668660915644489141428934053938360861734340161116999209804302359720179246541702531928516081550545221716125844241116031550688480931694806965168826245295197426354333385476041467888173344508392060530537229050040991426037426316057478008011889754785974790357418155503308992444373952144107387990458860523958648761007796275387716015241528255228862673708696483424459309050879038378716726483208401420651791099116098575983603748073377943284197571693026399855104441653596484597945947910042071772393704784464651711769663186216669572059239918059936684485089274098432112552695687839491931153882374455470557048032472233260498959268516519752261762067917294355903291842022229985255861378811410803676635388252134890042661651044885037977966956567751370244284907581610662552806558434878840734268954728542911974598070768913418470077105384192223251694378549463656343456185107739548293398338338236502299878661189413928541667013750767626391114687545325401448772898690285176619827004213356910869066139696050392624412082581918664378207711118418059383282589849963740249548623675569387352061285549066670443141594921000113037018052385332881514414849895802665578232204678520774231925743938932717544380169675116972404381489465408995597843502608288816781983436358401212286341341124860268260549851228492956754603811982683066572939599844574672608665288523820607413922954276145734193946017832416794534018048341522927418560605900118274034632392271404764757713114744236854226112999914730054414471145397744833953157136246781982990893432902943533905265183366056566087068328599678025642538667481317580596005783355430298625047674479577247780441708728568661541854995628296660487473239955989930781545534022193628131572631906575368913335494913609535971619775623255112293226012580450741407633289455134786106470258441080612432499536882428493085671818459381964887201439435858925846718615326514174298526504088165165711628010285792657508464615950735785802789690601313977348713157364535808402022517638322030542068888647269334442697853155989765856874251614584134955523172996783876992506032814479673320134784319937253194605856957303622047134570136042875072990493831272840209861192304927231180605702959054534237114640958495949074804746746783935177135624061251446348763834810136907876032614824825213307374247378697248671455978317035110450932031967214850473104935470078893157635693736476625254512244354075704086695009028725288022122209220008691617013076169593434198921675130706330176461916543172382969564946685319712230299766507307175805939988313377123230669476833480741741675250423196568249281993584034156285271184105033292184771241535539461077405724890824901740009164107254365827930413009340407364297148082883961957120757143938233868504732811514022066361687294227652080985828153387192919767553892994992743892806424488760950674633958196211809155893577540089465460504502937327156613601248936912445813215512446824585349687903945269605236553464524291094222844129273525942937598599181066350922263107547496983281234126459745498646164558022584717747181990047711302569859981373096325367413889250608841871308027259271416398265252239222107151888251189998728392459829404023936647942941490303295499645641819214503412986581089417221719093791027787570591826891672698618879365706542493548016623241603853954016754378764268566412151363312784733663420921418635474076182930770954328313983314065875216224900212076352949771369169339049517665835179121705371490333260484213171647035471552461063003496835519354565475339329199934227590800972326193976014124904727608224095839076231956861844270258684474769503155415950825898635493149070813106699522013355502707563759188883735193478650584649190973179208764616364874739493306129078768633376468546920795360507061391506242111227673727029313289440782665259768858906087295551483544870868705675871425402497716852484202392481028558577668399783731018735630422637327989823394064007775877913040773961676295116123509452944189170012357110061511244666349479774926035788928100330884538136926898712157445877456970179723187360779238597557941878348298205173664482479781200348240288437455673040728411422672792135422867154476692157058932609010280509945490313999407335108906823747181188579502820917901452965937217537224766773467619456238706552182824862560855091125633397435214836288524722281175367851168695659109900879960003593313997030190382080743352872484723988392325646314301885308878434929934914797571068569883421353040821563144651142264365707975362091678683576708771862505981089121656178910632388271220362079975604225422451135675115872954327276262200414540309132984694185279536694301025642384021005683966566656963276329664355134380156403138715242743497316539948916224680220389017677123169874475655126961525353093064973376880732610351041023921631983876448539167046017906345450423584027868249771424936305634214306667883010207024145022801312459377484925924655899723194063103337911266777691723958233082815512983801720109635945890805143802201417755036156877104490015244204953028000597012132907658640882014425390109583685476140688335250969790465384841863774854871699099424136507976071053609216343576732537037165861292510514550707645769050354308225034936544864745461816312981311095364943600032555502403231595141544920071052558775900281226885274759631613022183685905556882289527870117167686225169631305757742254073370426849714380023652566249576543507135322638959944847397219585805678291335295534656883521141623231529429102869384284941946832813191477869957366498418771402735116826413026635926376420152592487561334777515527318409832296970963306993867372349363752528027535490527135822004127471466566869113132378765656817901773327409758096941059038195598325607193902379770447281697870463038350379846111083414460910725921364776690049052673766503960645935607494912196859353295094330670990445286706020824244243956898292715081735851475994422029386891422241108839915274694053141161108615214929939619788606400165642168567764191006108149574495825100456027055604346147563067597971189467019090465081252673589007551269386550759149738184073690838925002440433370403874930751412460384591624590506267267220122842009174076893304317547344944564016201006145201127662275969875987414417010755443379879822490930821044093018595473774117736920990997909253093034529590129102420870654306895320953955549864042793430998215858769838700990300005375713820419293382516473757977134520651677053118697663400063204140736977008017212710939138684859315760012074585776544673537583618493719259893731325956389158310091044214438018026419700717922869009703820254207036008649122065119340036845557590588858761929817781575380909498610021740075102297082564170036351261771144093848488853427689988531212235078224683096725606865090956654729735135933151243716240888204458238934654355793801643245948173921640740032242894613784468675517216603214795896620258472989585176456494675128773360802012659530612280626420316946053863130811236576065826062711311349004756608744882726510149992887474182594544462447674854463385105658252130782562036229853132726740506816353565435776000381111287892364552213440389337502581673703402982848439207677509481602082303049737120786379607287874095259529136741872171298144598154518130601608165128255002229918273623420438629985508185859025066515393548806025233224036781981075524674636178567689065354758678391774855010067097042582033351456626608260722687463319417276705245715715727054121170407729774159202785607480594645757993121055026517616087532638958955002672328877630904824207452217827694365298700856930148599510327055350356965240875070228277577669138618634909919906694497211414245039817799396089882961282722417860326326248558311548811313013462738765591857900289375367007316994186303177891228089927514180672209018217718998476262236785219404286762608957144509248540491803622862491892457243120326769532810239946174749799186985736887995836344044576286480888152327456215560739081096049665115208443456186850530261162118957871677547878968853232988048247909514363006302957055938319185328679291525434276968584407397384363531101796795393840455806659033271927285543843342911580713583206657256682844124987411977579827153365286552533724032090178205450989423630540556889179684164178325250278405702905980214967167047407046555537317527194890755529164209975607073231589085275757624125625558195387748643312049470601930680259053486249999778253759760481989954361403222483928358125133742304211758247242249537160975089660622057922049852896126121382973729310000358639800333601008419466543766620696551698320011486522372772206266058166175073763021811749004988488255534700774485439568414216919018877078799941016243901368430200621300137988853268935300516179072663086209355483343162049428402232063662164965509395711744205858428809438854412647405891943768449358003581208695300070641376823471995883641725526987281869252840210881790903373817832128318418700256873638744445165913537428808962597139814819702306975719690698806269243757903455982996592959680266922339785699113049297885043984112789261465202533338729349697823576709182367966980194773914363635091709733056837767298464930255845448267734523609863923153453736201328842405197981608967935654708227614757764741878039426304588644282345133366361928844034723521500279609281833839489043083729853694677428531834884524513111363527106049190764293396090445662977728164848416344880441476979024664533420754820283722298019550003486184670111333996736214589996764228223601758802420445130839449483101623721433391414215754845228458166955790308283894569464173999413873467626545629126429307060557606736414663936310385043184096397480073164795319675040584857117212094601671161454334838289930700620180288384750661769447454704792542923666031137905442498151241352960513855165488952313033561909346005459702379467509158134703465188088280807676853574759106547533116937696623577362773490215327566089834203993545242394412648450154825739788654730908766022623192072816370991752570215169116733321268231000459984431348888563275303440201996343400476811028720331425408973629538919896030214301318382765824003238087636382264068045253169681320466310876624579240056951382787824183966246646727764433356417433605522400635951647398742436964593069136811154688611733576890535136488674064548768947555609675160048399741499759936916731186476389762032278411128695513628518337149484681155135190998953271226754741761222357377185692135532188954371868826226481583729260986589419082697251098952196976576365128944154253713058420126100269292664722877735944637298845150840566288847073217183706846796823167962532186308738022273269110360854802191510345286560096420725004532949475516201003534588015299899349671179657818128822219049598469900991269253834488301465158782268874780923372779934294804530180523870980738904850373204616416357577088115930468602035980010863325746508912013052542291836548527462877913310033975980382916397124533527481923882321772146078411834222117726606538522057980272350938302150310100121597580374274839503254588718134802171811365808526967636624561940704930465222078811105242063643660004152269154456085031956423701016038562185053090465126567394275121313724496945530863458761865686866953016992555045510843544919636788380992799909485114583559376258710689612672319575004115114007454186185504025944177425049852552657092951727164956689668575231789299015737893127056633173401454620431277677323482409232698809545012930258902399268924387917512903663177854795946903907506708821180560788253182166857360812316321698898150021212832657481294227443262097236504422991873170121701287797990218618139262398385997278987187659368139720859524697629181157973096236312421121686293702001041168919665587711034234931679402347563978806398245548054534420819435956747033694084612487417855208209984107727439053744354969095814058355133742668270461889485953197425696637887934346560407772491813343263174366344212821743142960989052835942339675378329490902146638989515930159283379234826128792826241564034759208224341735460049535083374092437601549580680081167419269883605115461080850657846251270572262405083974410978700064608375353394297941058918527003683632702085015677372752133616337338333528109160568247873312712352826819066484921725908275205397285657581269975985596877094997836038258223923306328968902427806683560353238411578952349214575487144896799041450474448229279253396044182470093816509736179589110818733321593255502357867631146770533482963970405452011907060382983020680359148436012705598969204954834298052044562982639642599685471796190634840664529129899423891201665813146546159205209232651921170336162320909131873537057449071288300317480922473768043392847698842789405565198541310417042101739014253006526495590582080276807992079214680002092698475680047859597261131715169155715092320907041674445458369078382659544261901849285498556709400920648710797431076332426253883080463089682578373694742022582142238679532034148919949629533612904210454973924777077035162771093903683773679715134215084448385725991536155167526035903694976053489843673876555762598845488597654036540524112029504058667821446697408889131684579287642169290184016229200061236865217243525926405457341267100596210590337188173004471138424607043116633828496006093946299506122585780316026373873277926518630331263128234614088868895763662571555195607085105837540979545904900960856154972068124050245420919994346857206096656575334817976430117119624863869314697511100356185734036415233820130046315966176924247656258825094896871557945142521175486480760777801717384697204228825079429490451567486417172823177800341959581612822188002928146134035737922523236311431271646596839555792059016908452389927562995697658782653329355861104133875794338075424502767823254976419438795935499966997429323400585790588812232685022237651392351259092573718912913106801540082441381045280594836785607774756400371119608432281127713941116787771018358248234442721049548906031682966486195999032484185846894467838851424534587782999742539801925009760361306819254033496965114410913096417245772408298918700893967081431159736278245181925972137377359723633745788981018790587449008331143679450482328863951669311180236143739706189435360287526952254401095594889324969941475608582769400932471243532815269922799103129274390480128451272963860590935287532733302206408613637451222251008400932589712187048688820136785701516305361078222286403445037583577658716106096556260453692931570120385320405122727075484589164542991897976393581551494298409480169015018935822104433692364053028493572341326216463476764038282796191808255670382630998392204900643681037707663237877870690584421838036375664335648081046552103262685985101808866024439082501936532661719433636260105017919670660890029134560285343349165540406747507188665333391942573755408976158347115444507561872983517709640549690015419212090585205969180578823695974233749053189452528614367658938079044198649904708185275324970151387120549597365805296985302640599552757681110396467111449649547844870264518761363156602026940483505925413902126437998707131395703321364547217526112617641642468388584436926561374061947026903957323640163443330045790801879433375261785696556858001935182248480115851033746455560366404240925129534775779427802409125879886251141841733450618179044929108881994481420612320231928410231563390946650344423065331683246890248059794461945367554038182444883643965731877036463065850241288823145141648948766145860479008532394171215081583664454194518060795767386521531374527554807353446436741969005937520895100810841041469777773398445004912563647244035360890769300408433768487256385361370866894511207303630685173535693394548601442853080236223508332708301276964356788734624284888046913472012828748094604792489584297109270083633128818639680822967923133535574826292537903936431077322277654698929240399723052457309266825764951331937450124018064718052909083747139618955714921511363674700656750101979384592609132982413759547574571292657345406810483649905878485926038981544848781527478376252909548463953360645563987289878949418211069823697031468821282728636656998973418740653360844455414454518738348737067409599141279591069706516425749727233386782183771339002972424200015635901815279197413061806162110585005171009633618771920264805655710939200437079505547655941710407698172835720990245986603906703598332912889904341284301628393747859403584588053426123094334563641731996589202652700280610749558963707052919223820760597794536318814163272762638366763127605695927730807130508729069729957717455975678636929317327543748856518191938060125480826837185798579924246382557511911293063413954567472338769342250677245852731317261032966455127775196489598136232952423441576930357873047366649756351731752918699874036117263423310203577531201259953773061001843270953716250757874968516413392220444797501749101356251442862234315076316341399471362026060771781057350252945063635695016008546828121685384415324890125400094095924295544656620996354811096756492837493951510225632798982354685149269968936624909036416516196125295615993331864118287530160273718685955855197843628693481904872977374910423437810394049433354701130300245146316951802118785863591320089054259486481060839839934836692342640542042803084380774848002221655079186723241818766273814038023809394470597719444040601016145852681862466810469885411494328487524439850352536195124931328525021020151505142952989186012146553169956852561048734331431443875080322273180334748921780456820831479371704136055643668897949248375246582890173205562849598017533501253144160012984983042909510652264968797150632741011580847077523377752619159222606016799317227735333495037870141203779246962214411053286510155059133251868983760132288004250750311677039343944258143284397393318647888540033973587132470141049000947719447173257256437151856848169056660706231156007783787860182849281619890326092948671879760190479784484627274680785428066322959444736435916255072312496453694861632951127762863073899160034452626660092687710463263358660238936732181344927213733001726153909093815605019738828551440786671264740235714991938311635203343727092557379032473034452285125206937813198315957463895257372491372572695109668364946283833983107704698330370650362927313805343714745747204354707840554510553087601484103471375586899308509977819682513682751149250322681308308507430855638985416098394066061770526243654322026763609774699098750171102491235797079729740007861113144409014754166068221902930217842563290101188418743822616036263438127547983514519728867085245400901053697581860825353750129760986494558904957274272618033502100850810013958709452660750600911380255707350048922208082356369953531138478647444392539660256686182529021632859016433021558143272969262049622736487478527486466954772661090386753044107418548931978788002019995063830432413766575384461293727819392476618143110433985510612710704815954771240201053296115480978244702407330426333654263319560893366010672324217651813422640263189764026160339820140499396818440340160917287369029871496374127447602825435547981783686036024015459777650671538911298142422795492327995915623552228663405963122334156041064826483358897505146271020045070334613675588038028653385980841813547339050703435111818404500834859979483908309045991180180983306653141888029513983629490392068348395346635071046477328108011473162406212136676742914476197727048508870785090511819087709074184663025149403601403534287425211637838495698964394446058255339819095878418585717543307043334704905725566441364916323292316131381392194122454658177253102445936490765243812770348638623841182978946732735555511130744282066989307373538463681307032549448153758242429802364609336621923015384383851526634670829221420993250203397684606160675688625031060748824210113055442211214956801314476974334944749335205655916314902361950312578906204024779277849236044352527673944281829184590100018727396851984807439461831122830098520697583276212010633879069295504057803377705022213280153598554253288232299547972091672550109697176650962921223570940243010076559647121308890446710048015637623440853773826663897826298105688824166095580204385255434014813172753251944795672558740147321127169547743525187311856908644746540963331496411847290160542161282647831770190060073102060219967943781751633994387494365420151690405768299462869404642357603416008421612234932962141118661596771210224178580973603848063855157765525186917341477631803197602571016863399536910397594618522687620927902024769668396454703429307459435148347367743962058113762149786588153605978216686560490095182002865259977339178338073364083292208932182666679437519715665958293558677906094225151089074176287449074832165414091692536047635686608846268841513634057694067082767383366118343778602667309911149379856441557275666997080502221108042550224117191699795672888589172427459486016863171543000095372110490060293225688795944259378744042628147146200591627683306765980383044923880919005562161887567216322076971154482241464907600276063472764624130910045890985740613820466546842755561330073572280832479057937939731403318716829580344290854077898958431873416677719457614532919523832228366054282791969273489655214990478200191288788926707664296101202263991241603185346372666365863511749865493534324124510821904204840898892232971155413072227884582584033752099725191687234638981104385805199676075814525965053636781569718003224572999297944486317498664735785825899399452672223237597786203712190342638110636319937322638756593485145521660839175279600548344711259025840275981118554227727734839546160734878792545593644198025990088996911336226240897744538000132228840390648000691388447503592638690760182084355999503774166140144034970025855072613912460327603296531042000564407269845062381637594171503932628497621162370627394738116066015343013459459091380763677429215389078326806336453023660883390072468711971665586224531590422842028108064620782403777060422523763107814849268203498120247114568085455859003508031492340173127769993433041514935193004094907554546078576200756163058508426936442224438653615830532632862029660305566691386046673680459968299506908472734516641632856906417862010867948901402347298288629291668834683088422671854659775997649334461516871018843985348829113199141100679539932479407525244881085103039126073301690541639568964214730020489018519270035527111434747253826358477653724738349060977206346502793683845818085235467837377699322888384784907646570370952696595423955062703085200805864442420083183704135455819158071176901335422315261592652414724855335743132085873219605066929176154882916052674441710406438164454355815705674365585060157193966697421830770087477628390745321153349111280913019515275096360616609704906967512876212721307116359027855528620126871188911240693589526787432727286559587994957629708791816868459629302661910588776915347402229634719033494523668097127128282276988295598442409446576652008890265657439138123059277355971261108054721451790278176056498118961831108221471678951694068294189161196733082389159242255673800844832580494014955484107565307450500653988629448270436772666922061416233293196216819200314469698813239015050511430928658800741352483850833423389839480246991031758056111321260764554694457291571151949325908061415385466449767119746339730794220973949221081445926128960623602814813810929144268566785094139564839056888900576605845713171217652667526466428175961949793169896695381297543271939181856508620823313306465181587852231714000770302155743154579013073856822074933902057880250491251873840925090436917175391445867842761548452098934603029657441264878859819373720702752109113919706890285420547396317069790085074149741742578341088167937844312741778664826269010442514000882471039679343391475674853397003898360768541987087020277986117655708897560702960196240543652659395168786786293885771210748787409073408936356808402763301690317584766108731496466295556790549820588634908564755288760484389992768301430507814240476982352488023497400819488038588966013083597639014207652039236781328722640384536886815896821428636483700476162718766541172222445235942374928137030566021203680298674146285962846050256072735275959846594482645450045645636738890234416457890112034007885743967333999251112582884449509476463556654638703700303647072062484894382333837887049695865771890399017767107730011586445342986488238584772002931138421404325005249359828916895030499692012834393569896308166109480861508869288644884196000107615488766105692528625434201135728483293973872254532717741032473920761340654031437634033900954339111646348401237722462326289348693813438462384707445607819831245371278226186668256475937052147962935524503096866977128675752119085388935387293467812559669124969990432674786483068242328150943767290281790408728159951338369285435677041471867696404285803182503222181260939533698176171785481118986396535928882706757746427970559582342139785501327634542516417457892244765907868472408280797229261919558463760833505774099565573369837695061220868410320191896182249781248024384681397393130885331909520588670592077202599047144722773815530044040846074484330869018822335413550472955424072439620944542415455161252340597899083192734163437564468665676634821471879878283824467166726319685430369130980660688769046015275537254799132960475525727339455548245848237267884271288221283566968869940619747323380072017615673570470756561000703061837249694527716425600561768761380183834429161064332751373140992574067253688878350014183383799688211319794604554871278224729320612042946553846382236829747544592484597082575976244423813878561112311482778457185915670123751970685856167520108456662631648399152638429525683097150736834395134775139435415157844551751879289990859218693106444268715547875643562390786943496066325205336756818594711492915763436563577137264903877305806224588472373126899457721880467982643194858063007476468871044142965495090917056688462471746148396211496572123492260214006070834700922871688326006193173794664365862659376704789617547632333467707466404535547361255626140691876483365660333235843817967784891847797768585318496757269971886495030642425379081891315176198324164025471236316053806687857321186181921613442749651108648150603910961477292182179253863726188608785624794230186148218063166411497991526808918532981260246014018805988900177425408238251847992449848618324278518109271664752777406343853920430883468114048146613991426566798266463760596829640011931465206947047621099860369885497217753699819198654479658212901345898213208289401295632622960765713115698882247195309870049992916807465212554368025823813885867729484067368389093736795207037965442456935811987834743044667054378479037602975098181979077954084699020094569436771461575614506314944399341533654698058453519527230055508297881136901536368309213025128833635356465346045303130688984931334299766044964209407403949099559142148415026463485910806792124510455101152432915615283880636425737111945161292518789832066847449399498123678937282781356636689869901974655039302696780012080532412806164616991504205511263240235112344333578297377239674152246185053141154991442209655411854527047924734779635041294055872250512356091574441342199688760684726645860257017232028856889299610410204852997419672265318468947803276011174604512545834366904344481948702756192077465877519354449095817720828950087797528215238717010316432404228001357238408044279219729025594528689498635585495059358185977603081315307249642882519038878629027624648223743540585236708611278952912481431018687650028722156102896360144425885643302098515767823853262315263793265201343066147243052808977582106354746173704602257806779202530362431849365270726780483948939311422575763094449206228661003635580182859933947039565660366030178132918957724651400958295409115014620537649977242192973923250328121875587864044217964766814197701711049953719300337414640510378010179059703365395743697437090738112271198561667777327844507799895284797611842135750218244128924082331519982143803532549626839415100964880863033898041176754421985468252932763652112205181395785456771374637944233114919781120082136248723596764409926282352517943806901839463554667985835997269572916876131406881990269263665121646588054600022029517669165897551579913120844476497780349580841885153043437504246429848439598511532978026828561653012616083758215762724810037142532648297490064331348942533279343321551810610148666000097392031074089386239020437948826395965388789935728489667599454870665333232859885551829077445466912052699960333718055178807197689180863778056514139823903529482659239368084652795075950304683114801349902512634063611286206378247600508356017855049857519668660122558329116063795914383873826253477030706540780448109572931907850086783111809052280160210541819012626537297860036826152620341390121342441822069145741024160871112956448950324898424508403948658199251330471679166447653208655528772682834356431489509304680920603011166588487652325385593037997440550819910130059344129674380149448607007118063356231671260240926953155141546240180357184879241249579498277017027429475365247698580328795396674125841166435050254426190500182706979323808393099195667857528934450534776755241538274396968620107873414853067608569018578419795945363852989673887964493849426398362604349660143842630086604431399573378647147566244606613932128461663173826662308445318611787147302778336024565833077833664957026333765070512737973558174404763924704275341975959841864568314156192113993128512516483118549513943814512189930483432423505117904625534910412412231907206933145970812508504943887226169598548625204917504550683945481405995030279784236991185952996913696540345552623453400706492450210310183211911110997226149537776931872650510701318533760943260586921952882853979271648679069667240147861889321447351707016652291951164633007541901756756814057971285510700605950659435764600367586634976388740487758047591553898106632923210323686337411145031558831318816460592351741488660831729161825757697238022750920658681875439084787872600346173190132922648059359702091263600599302822755780070528770420378013555390905596810356371226314056261305660839580809734346331033868196960746202236888623671349586266798613336184548469113993013355687254005150153998628272013053986343959894721354558768395114982853338324804552834221822055582112718496469336363319280073396985701869919583920770690889164395299075587411695193898579581686544892068755551639396392282388787285235906534342900379158832301056918299198427003016630159879692060891787831552900107189628960564215718065166936830252270774312250433016056657696144529101897984253175991676299231845259258091751097378127441913224364099588251874647316488678070012948204976006570774353530391053739136430880108378304376262929888665479200300670386104137770537875542406223511107368956369849590693915978731046494849041882576339175064996182418470935202508323531017742671196939265341516134530172692767235448893707027643613478470101134066091680537676355984506315445249181716534390860507558751175388579996034437697875052118407769450809349427135662709734599640772064232723483294983264825770567179935275169003964296179956841578390066461607629052198766488214629170452367926949876300410870511783921091034381162647208338037649194246263076163699543118515382493201204238251165142857152913397854216184820340961875090249431015294990386380232535215132259497810405746228039918199351600838408403018500925996326563164288603669664955660963633699461955482492218865177022755209837954658380692719934724928313670802847278997473054757639424900563368806189706725849427832726666095050077740951413128836928398817859104710845773860706527701153336139422963355063247534461039822411011190251697169973757103978844573531400645001116117838645388501985049520088297671755503177637500508670785097115775442874368877841897701169586668496774623594877337068037683126066580094490507168493549564528605077481244920693930082545804100484825995652871749063849352257609674977734697976770174867997455377042687904879394486885886057379990281014517792287087152849037643936241717011440667289553136628904454916395613994039688166284343874231885481804559328975131064305869772790129372763431289581096740266778634572284815387463960837677053037012805737786114665966972365298229901657619547167096462435161887670429126767621178567606191915906962561402082802901972503442505312723515740312953194271992129343156962286647688788885859353666957560534064949148805962898366080997634236525855922203998901553077761396553536400717742710387907861684391780751356913533214776818109324322288806295589387964188957981688263083408565343896757989412825305134413447761925041411335424528857160829856598221637895597886244562904930553830544333198793043203620004669243890421274704816154604460683932420820243060363017450521866693590986256061240528619450032843811493549868121371115442039651537571554394467961747720623825849294258907658248609611732301401656405855979346374212334813489119356824180115401674918499119166232425648607720535709522043481029585399486162801339513460361180451289382395932471966144671189415982939558289453015595897105957759886727020093005277110352851238194383485396301073313735400837100296036476433131021290913508354162761374382652279924986755785540313074372623925846474914129541483108297677482956715245091202117943426309490801930702721036484062187638781554815601637345112882717038139716546148973811070080427677096085681065524310954581276638104700828781278389602039982425136889901745321318918793905647990371563987571359990152121225141126937136357760133452198919243285262834125164146002610397544118970069110151363489184267589789170774068191828392214165395609785151595033422927569522536519874019414666256483026332461065180124622856527680289043458551824576167710575059727413856268158466337693716952658737982300455143344208505690916691883124738086858839868770105443233935790621642679991677844754872257262247487137075240223070530147634610598410582184195186689805080087031232877013794857616846597631628257444130410566478216312222321605353790388766325144336873976380084344591359458853185670563559737377082309279377351696315371737756208762237570015797122562283951366479011045116580202051539002198046453711481375371196758560265898336325622539670535191370023395918826950923353895780131930725974436812087795768644846723725247269012350386008599881923803057741192568445386664328468892166609149315637888425082187742414282307659564418042898013376989990819070830871609735229743495109942560599609831508379944564067929121571168034427566591076825762407202561998339417577114476147054456326005018845310437518491433345351432133314256156183966466804789709923873470426999452769370594443858963321379285101881378344595353184132829471729946691332458127764798386868087366225595531297815413205040074293843370218560583482992128998265831489622828516753030019928856502236162286045883559191165484313590591358140192291911424382948337595692710270218691639086431015715672776373780940599488161505813337268499037038414790638737210908183321030590027754251342873634617435391519933685675152913618747913065827240590777161144887786637820039696455247173464297991532500680428039679088007737957591962271671086131320521523942765237342432214734285550260689730178285192329683007021510256394074945894964250301249925876936646120092420751591781824541321436532723560587080747910177108816691613938457370645107906196445303618186375365356635466921113527317383120550385353904100391624196341357278035874373497201971210227891544367857573205393820909219608419653267850424658120263253639639784668979703279177658109291519754771345136902856380372454357777461731317123639208551912620748498448231089565011777153580306308317713705602123347767384295093981460218544302111735390079362158716452599287549695101688582587711803790491771879820004562888281754677107131175657910629091571689821094327928129528374487217682856035321347456098632897080699362397050100085211343017932711585834754777421042254070227336941854349131512186426347406252989004408387863436845497775382601232828988399835835651488638922183776602242866846702450017487427571344534580863062996458845387679439861436455982182683415504243750836195129622826208722935071698214304253847472141590618007164886805769955914705429090254802780023928928145935357086239168467108530462550737536137600611919261094419420621907261096414738246001354671090391726189728926657362543499696336811424239657913595761867741298082554795368357185115707902676011959272889320862227567206477825156818763814271039276526440401428734250642279129466367006786446910074119593720035576938617209030270431846593878082241873250061822848964536498275521236029189344417093139118604629624794320099673012842575054728145700614592630876842408731856217212885352429280037311492980888322135778751155184779904211625217153154251938986316892750690695986056772460422128604253070439914017393460471160123469776540465288618393572895435895550779289336177871747599673241093299443137274067374519316223602637612751121068003968168184651773244261580375356552643274304294335763535581911340277001267430075889572171198005573768295251749591441394610824500290894388913858339979918124234683577134858545378031455471053546797526414608324104459571647600841118758701938146731489269230520631068799698591353645563048791842844764134433822712291113761316760599539713784037200733751862222833320463641527147186102428465480552294300345947560440022739939928592572617340439590882847425672582295367842382900352699662760672782352235821298796346736901613564737166455570920757784031422676212921506322706471271062357885625734043449729948403126545382314936085858608423724075811386793944666303714654789977931462142406206151339456446095415039595769770638166140572988045842812753679206237990197591468887319028920895266728423637960270022485424494675680267506382032319437406960194504782671824133167134672792189358339759478089663617941149166260714301486516491568983164868874788777807767477523015508006020190890014749097163199439246995619353544729024994902135891190452743159216849236190203937994389322823640623866818289770550345795602290487459655582872941469433412337564413294746012847705052343947346896450021798181684840579227956617046916882046128071452082128630107248960068476742662334367460418066010289221507943278071967600904835774268365113803133378424260581441566741822780207817570206506680435227827106245689862774396324376077926993506641943952752791622217179230203515669120359687126538435204546735962425892064321191746878287410961558387854380809504091045666083070424679289138199185474772916045359329963238919634287919510578170469300601172315504871402587957512848503811692112756287593421905742710659063124002177974017795644414147727565715969651315905014189011531649003577619210585874258064697740121572471629238728184740230602451395572527145113580470027041735297129075942822601910133782983215202073657590822058474579996856140774945626318628117166605829153447140703771305318226357923403794796530986896006303355762419379798732866423275355361940846530828437502810705666248196829725506151921053713527399341508627975280229652694020773535992675019282141439264209931753837892445168136277218820100141998727027305565249566810994363538542519010185545742768969218333708029429649492642970866606854862457376303538773757168897063625964010640431967892862868095199885858924144500647986124493721928957419555061697125601889524100950992935795483217144889243502953024262002148082791425396140397295191460483909391138143429912863036085930265767092656398273658036996180565611971795272916863811065813652104378703719210448389807439005878884566341421206571167790745507191549967453338441598382234351259364619714275374072113773266775638035953944358467313277896904002006878905969430836594589608412725493836958504234353501167603319229366281530687548546197454054001267147801779932894892882098454692809406404106884325902033979582787883217218723678527242796970123920463004181955594876423203780251885870753879037512769939321283585963797417561552257570990430932542040730049346479612443620527442308156979259581007979471613272706794276635463599102815768576845389995289333979609123238817725515616738096559447660621183735852779110073987549080666896644130370932865676135777628244927221706360639870764987246982955940306407656232535242027777446192013613536697206257706115471805788548867633615614514571804386138088425274417520161002692064349138253382652299570329910926434622149874659952748642882256639940826303344787649076870479062396721352786784055455828370325557059383978746254932397457989629143079417049145115980516987518266470845082848684243394514931381637586095364425764315843229171814486889051384689358609727679205426951216833554192586239201455128926122088572139269754754894263760612728269215309853024114321865312904976537058882090807442666040014489604906687930697668173276761574072419010811779388817744306506421112176283250186404496595925254856368005216484108299190835515453028656426179474856164430627675338132297909153350279799819736679515847888101090947818253483188022122656163611218478346067103091096445631596447472840182720862113947638199634587671735993130812848171097975694386543465943087175378633601931434788435492019838971165272861997528886492652995157907988214794449354508930597708924244857108340861297873384440149074389877641159925077444482630117364756298560225538383477096163068539796413518466744621342642885252379305558436348626225025758531100476776701933430790057088408538183405062758360169552691004454595825882458819776536067906566380905612154221905854021101932233093800230641452074958947550573026251726939928728510845842540623427387035498360646927968645541115578632329338654126170126464028940074662994715867611817209513484410877264181603704667210263064783335247412039227540307174017255996635063579789790417616550654728978753509591711986435331624409510231085596067867376841246081675603283513986510147277230096892800635938631790787596758649186016105149863243157161097813194262289039001261037544049688086686727319448973857405507598985206039170936641594647547601352685011360082971298552341135435447451020184824155752126004547905266045745994054623773638569477983090262200719212126031400250181059555570874031910181575819979129589970865710445917362289101952469440226738874648662038396623489336130369616712607036505569171417339012156854307192926824337652235607605876894809430037325391963015140104246046516782216323564459095177384473961181327406163895812312934293067350468585658317620714942623562495848997799064954075062746617890870057542176776820800942092890223820110215154528872651521338230093734965814696827382598897139078752140771594124090021352130765685424052439123476380074068214530030528610364395855268309588435262281673353464567992863103521679434088409246575865041992108370892525179016909143548078485172795413094792051689327639304265813820913966262558003785003725848910604226894669218833336563357205139220643840302177762999695819465983674802250569476662956441896560082509382359167537668147816684637757095450475531576170610216310378222116782315194893029657836120840137000868967490772679236468439258066947281637452830580426506782211312882038352215278888321535742074945444056490999634376708665312677661455176032999281884250315491011657542853712001428933451828239373384585263221652407370893288098712080746344446605667305177043336863096641528791974393674827747852125572717691335439125744258371806705584163413759181688440789193705580636788411421161335179598142872582568301376772855069972904868595838195147864162532761833534984182426850996507357756320295922299753102349233636352128535154925003653767792577922893919443915175882455952018021431908163731470105570661483948577089199418274925973043038459341407322550592283906868906277236270458027649952826453020754371350687577210185692897109825040448787471274535041110788204268574423564736411933925926752970989581378600983062251561607660653192338044063550600311311373472531573613561660030017805824171176194548631360720801849894944355565830578002387143187585824938345085557424360709853117341584646843409819675217270545921534502943995486502466618129220175635282079514210905532249536533037227114845794740679152938462346282305568764265777415459668767409493536040742218547905145296106991550219365675485562292181951192507289223103669964825154798238119407667922198700572729970766802163426519366402797501556861824372310037628070442654954077276775461797599114884136907910219719695216743420806535089932386914365277299400277691157275513379327754109908859188703284163781467179545514218835722746180396784223553274868941710018022062100091164702501705430301419994425586845610892849053789298086362999064305561660525152018000734879476721611874307180605352856371265229048419776082575684937181234540360011882170181839958073932064402968369004814963997983021731614410173991031174558488123705973841594678635508287392041284727385428906681964944045007670633178094106394770161213882565100521635109897071679409122028232876790544675245764485051422095439867756764029129482152364940809677382842191704671728811463926556975464881952833511627294879008653452113100163435778326994755116923933768818020621131040277896120642048576187029140857599508699173829904302128572636361575033196155296133983094398170030051410827697307132334756275509813773204560829189688327099768896729996896991056589277805758897451983592251359213775326313958107332426619011462771655456198313824221307624631046532898031858679859908598053288036674102003282146751119537149634601619353416531254630456649844885110250142021605412841762267752901427520626089348696938756288192760244153361411589060502662746849936573258016480553841743314438208585614275645673609134744537947103342896318904522563746581800403857276381466578981300821216563187136942136096984975646523500185281941396750688381302569688561190755221364097956649765947244355446209316174660795059362354317030841145350065207162968969208971647843340299042187414428510661000533947461521119126839560560974825633677358642533976034809047206270028582261828220891056199532373326939086870927198476329478108130831730827162499377903976091665042948267540778287191408590905567802991680405321956970337250285219607200983690401333463420693594412995221723953029839245389050729462777055709794367431846910042583667845896312607847324805073236818670286526634431740624377508973156143215425810392503449307906896874605096385011907287513538732494268196530104299720231552642427530212640667596922768698579223043184179885597109021610552756739887971035347969331944645316300935947032703520534347453863669902689945040138277549520258242270868823315753790583769329751900227913111299614730138392527425786535258879018938741062239482419004050466419148737188541263411496449872463698960460395327587444393316213031435813573376202335959306044486842854957103380025028164028845502772411579080076253597693977232661078297632752802400678825606286338851027080569648022327577590048625964383370558508609078444984085851534916958465541050273244019621834429863339856772391381836378939157160497698684078218297134931448833261172865072294242399628761798804231747307856649371304209742070513357197271879188668499446135458431641251058516779471356607738434613114936225826053042197013102778213469280076785324925554173697312030246780588183604609337793699469145530379375658112219412550076591761354086762143049521515216400577600543391870966144875046109299227004017208168795974054669438437375684199127599644246379005421289552599651493138694689709393889520830549075236638911937220996756486003500302251142005910336454112682803042569415457274976166808873722326308410972608172703187600553006797807512685230394945424174619634750044156514668172208114497606695943049671787514097037074412479529422283023531915369640133314826185755228823388668947097734842712746078475026615647614722524181153391818342506604953437024040777009913339639949253774238053091412120859437417099910462644107904602307198937178221834207979356302861963538060286527521910180916282824453644162883525185079509374857106231950713624538256056964599875514750009921679161073036448011585287375179055336276983615192027270181205922989552931496152225225038798216100919055984960833075730126780474015301087681954869756558566065151608808149011482579728358360472705192734733276780888891201500235776415481144247139947287745819718772622630980063766987515593000064641132324488881171029590533230796793173445433447910452256821089585462930336552028975514552194266910568326717290326453755128178401589504022135675121544675318680627625027139608613131388282568822856080452311273602608405552349232478604129977304192242284843927016916994969674868789742736440641706328576058621618022164699227573423848133677587287508129616449298078599929696554644910053044915859971371778405289162302148660931763312183947996503596024742114911583240905997438611639541081955115262468493110509028038986673832675520309825711765060269144696855798811269371920673062650622383142711655719332763683341740920441927712999218096401762752921799429876561140164354723090567921079711544804151972026943498774047842018504706115268852486633521409682900684601087682066378681872755355384013020257184644828773128960559162143847442428017521314110554405915770351886314128734375843169023969491302103471453664278806846829324456875977115331410426380120547516450528142737989881253754697254022159092900908165787669952280388945214127171373309560735178605180977030845736070948229748326400516969928985476780783831492743273616206318014481523293791542278615422766211518731544427314929505124309811941758559855967973970600702794788087536766376912103515044395164007890086455447854308678634545524734908378812933697367932266452188135615922415240677088189507249088922390835606184243613410205099363896916323389745055534373979696760233198165846514605382474083385233693650661846330181150989993350854055908599433236516467467174420239788597958173776085914865442354902773803259545133847451378781635933634761903359156289465571438005360635109312856419896864881332678332088449866419312534541738198774242929083012844786338442428279726626240124050176625926487583927835610319424716089226823538250626173806361653014816654807337097367534820239216361554759774909548522552552633639750381590942865304093462428104286488270896215427148066698621973501949139513775314260027390946480064063916015997664636802344319818492764405079512535368394288711417489297111556727190566010379503232289650411205247709072836014609242521458523683732513191026457269273375661594571485906346557261620458323285255159451959375097036635581709950668078779541395871923789437156731018545530341900562332270138779491082896241182034361346760196916694686819165834798208015356989471770919538895208143560887103724841164939969560456675604879832147609756697267095295514388192337308602356642011637271988490015425630675769926653982363905106207457942617728789479497219012805759265337533857955792153008533265887568117780210216189352526768256179757305311916984209431420658463223294556309728000979592339752513589481638705271683962844008014820271515834292005313585793810425461120552535426336054893752327301137179526824217275947340041216615602046846496925530656563562236412652492767849016477679812260060979721257852099475164118186936549183891201835829969583328750895666546801180842293336916070502563652035885291583727678400324407679478737803330154590813858659810263558105304909813454624128532420453349814698155510924572491202565546816794456324767016043498923499004900685001400334808894149057910903572059478179052304054152646269822542352454172757171453193768615104893674430773029313129777167709840307265024186065173814664480469117978081340037675487901752031703671555802370628671870639723013685112128245668846067429538451037502296078644533617462793516029718353789105154448517857466845402429683620952310297499237169346994409348386394528298018981248588462160354567166061602570464030516119583477655452401050740305715085568927698390058789248955477952750806735804506031760512810429705434901503945359778303468924356380567147550830767959077385970405252492967993344878304083742116792456766581672399350402741713504957875482092789882586766734670373983023299485532048860082871603775965298704891758348840001726440442885192066814187398360354450168835019535331660623915998699704992755325421060538734030076402580236038940735048756592379863563551051001229638719543311191788028468634582183767049307800216279031174078693303266746472143561957699503621101408515845742007398835874019317575088968949129614812298795873711086429174131142278500092525497775882293780588700478483623119482696959985530515676060095527062679039606566051162005521444567517143611729166123193684631994528021176555238973161804893245083609712333204192355731503507306761473585633011873837260471028269734324123517649327539226515335232423192540819960037421229589867920745293938558303048390364386225841476994512287915035229537491097177473035210017722327628854158697462759950085045819748891307162279157141701275367265173877937752401994162313226580384093646573033136698813288997685343511165449913558472442857034452857297282165773257920834089837533191896317834389928913142865685346783819233296099937597224621318811396052328308422636290973105804244033489844178847861953195436153316144475605905223876231470825770215915710656546491060996500116573225040832639325110620309185066160127715076173175751451065633519228554442909555502381280469076284750451813177302279762578989204771687516574636425321722491704581502921506664990045335643238666303353761840361709615392616274606031038990673418916474143647086559278605433848325514261016462993186748289141378640114964541674351854928907744607035436647533108357193550633808312174690187565436659595636566076164276979261503090410925474789223735799959951819669409215603107363559961218640740930667017407757651342705146584862484810727272217738886444440103016406333029531308813777792998764666426018181413887087536352312919622684927436305662924866797951293230945845570065315452696609073508892266957216732409781395454311414202672060126724944658034759813272055795321474189401071993289586195121620017000901336543636495440493462635187185418072601239596846993021272400208270214343440294357819101237532016841978062370450314454433677791622833082216136601463781340944278568094425523336179559153795482178451648206232913203452387469108649940814326697395433559043506180760465763082988413795894742504759818331282686321534542242973032269919659842758388891403065062091150850619215958069543626385173068120013273536788454922222263853066922280661296414292058558093421610221935421275100645261593011897154684226032436041035291400024125551648834602836887575263789434109716302052919173845758899890225033633789209918315138812949727170720538089777683286786200021626881914524212964754621238831610980303008226966940717515683621631239861718333842753851295723927104622888592444163076387427710254774798246188731975629609119596097443259526565345638258688268194395976039173530067499233794538639040835831503218314461482225280709645193066259427487493044523099304249964861792455022822853571139101509196637357099113367600922093784340380962933015017960424666817386909669867284219214554186772488721589912529484714198160401133239544878869196183251186575034950452177056101789790977236478777849107914596255754855482086868794874206413194935029876670635038737844822549649801331324202291733143047672976935369454663199978275772134783862846720204756229364760553232062843091269807388645377409534850227042516417137413998450389059446092470632263285606740013542513608187586814739445552658217657478173645399603310778540608461151881358487494669855831533345499604612307918085931281606462215935877041139568820626750479487167890742221777297354057140795685646693818965981201826189391024699683554379904076334777746990657800164703743605869591844791370262265946162549604890618211278400712252437371644139447443776408452641167146518084365387515984713088526355800547472918534156096691030256216813127952680851526497276586440939482334564976509103436114986920768806907984866383383353930777247631942078252670228276700189945742908783929780669611156333047808724088908672019911924140437411852418922112277290544324138038620882820431504882924010833524265134666636473077716865410559421119075558092523730447950968608902333023447111592643071967399970091608145498311825327841596576191130138892962500138677637118018902777534533329925532984668043972032940206193478061013181399234481957146401030538566420946606353761482573483899294464235174631766413629372459992421805950397933920935713157639530046482218852625205447162101415853621978785543005869882109718981613295288109226813378985559111225343414222973795890637202997951382540220686411486485377727330780990486630193130624482305335474560792442535901697342207749783047995472107405157317907650814849171981781520644899552080356176020292191071508360664313366183159095531940872269899377063657172878542541395662087412023058247667192899436972523120786583915394347323940729286371605750603999355039366894634604218667647477208733256970475712236187793076707085699297411609173577067759481683117066829429639398138944865934241289613762989622804799642306372659650480149222805024942332489068112635644397064155501637423585801355832964470859274898289075305924911186205747843909045070766085226363569890007570944125078353516477654451686950454293843196685643610631385902644010613572584052162271091108986497231154497003930860570719099659313600115672698455256036115067299763428907814260334003291883378500805481661902733818788652440912646228901408233163445023930685879338979364201269980248335245009733699143762578120850048329641644118950748003091285100172131487314148001691514173482471996603328841955563470431802075591224734100281845568579161023029514005649934363145472954943915349105252056769045405257203093454762264740094586270065833773788299768794042926352803559046543841895923063408601773135193446886172827656959135100536277576230331522385451274393265534409613881843402935780421549135155273455863166600307622597744248570774331478676039252016266418534784213788838535974728426537235639437165396330749799057561557575738547298607750671027451685019981513631982636403928623058968476949054715583001338964063230361553699226990984806113392962222076623880876796272528940771269517716984028096661087215280371572841298718924599759145361799309929582581877390301281699497682778651237872610916002259105587700756237128284697565577732052380211683284929774611189409066658635697613861602409161329431330591880654517575309565427919256155429602277932058163066195384553150685767366408429483774086719160874914136467036924061296884674513579843305608532803367569238938328211660634888803032581046224039064887970377279919883619721478373777374879304949354450183750055546147202412186412416155250427135621809429041373591286491912722468709486313343463327270434288831105449190497669188004901135116228157267515751547125888942388519189717599429654062656955281243891553912517702846840706018477907083360098770248041978244530054533159620878133003770400087552717198729455099749362237986769170435040663745021567810084412545153800984584377582694386158044923839037878306335267100055963313395498118380317187723386723257206998185888012984215429756221603471996149168936282967965619412823206927653736779186574091043569504321049096084132818995294142539942865119608903705049267975544537992495421670301403651494798380763018513633126262895673347113440292855274924707705315681896776922167697527771703461700575136096907879281336083868340434340969080879176256590789293419192399992378492202098021689821075564576663397763496466428989532408319029828057876828156669341711927352614516107046775584876385756379852513191425272537045054659124630072265384677983010456161558126990141135780212808531182572263749641803431038282465289136002338580552935718905591972129207609290298403869309771372094586098057273592906320719584131316809472902506438426720543028223094582391325371579548925849917254728140632863660874038394938673847207110282662070375262786499341466465317194705583865874456496004203496898539870042193254130108016424441059478551193685629083812560284854451533728557164331665157045593604631908469284976424978628453712173573427797304624947738467759584600974136256929947161610790662134301154721946370930648613431941508799112347236060217557562431297557301331220824247794996129209133091465439587023297156453691719214050705081411256873444554855663277979019989118552277780356033695404203195315554253238616401539262879201145524018397760021771184439054039936611493799654399257001180212885036051082460004984515193508160757769000459945290417791284780721518239324724814584141189976000892690282414058108021437786035859469070622034048450353569375337885242414383730771848175412988942132553187159139724264133630065954101993325337596774520380503439268904031111054242339279377722105758338502448708845616542287573919608629726410599145061108752969772073537387944216187640841851963853181904738221718346518725524122042661743990401378560554665053227771336363197331269134282842445860804970597695007318869907530133298340154821868250233512057565467681773843067295335163039602143593331028282255264615716660889978834916031211149109540273800761005182465009740422391435866566202816579490631393595579255735901704055532243827071005563994066225318291931241994244939995703264910857510364320425462454085280016483442457383465683979193949666591418783036363924806370527033090866087971246112872833229981174030374740601006716375660478583234303518626293865031000163180781150315234957129523352512639100043754262543576656244315517748730444546878399986705184928135091316641839821557026610877026562855019391855089262379887944151237790963338986630220731696835910082417093881234100380159092026599966057616289281718452052457576431822315997257105706606568647416727266979492136583891286676278548627611421090231594719586538040753964485667931074143908821986564660324496097768978974314860823310697918671045836108382158514035078981454230852346959036928376811534543328295603427618173208209001439227283077685565376287760097176696252845946336000592653967363912623437053318092015998189915422546919381112482496943171627340217006546218540928978613519150786240730116144641399019323104675663738258998371271887697030962976331586187031332508707622378362269680893172834860140360139806051344008363144010871541183052628274450474432421448026821511069778817538688530043684037067458618424535660006764757404067757708998688260603510493284649518558169320845508639365177977822110213937943687636640035964883029091336655529617470556725828604834859445946593366930595602575695147757412630902561254110329531734966177526044726572667373655816141543979796701392123392975566707708966031079724360631451190146284867499187731819097262506142358765528013985178205447134642579042456151008756816203839762686607970004143082977360372594215525766136574637945163762280995756308734525828395496228123458194679919511005188294766796938163586250101424553505107852566587625177775262798833597556979721359260464361674857418149030438895048272058953982267167237593097145897506208600261767305753189245615606157100475415598157520067410659799671193389834524143076771588450487739088635553335917411056757250999117454009266010510578603401282204503545462383066278185453492963106266194914859577934313494934339320065052107814046312402536050279388473398854092677847647987182924352387169569169311256778641814802384465353171618525182937508658350655520156451923365732136260680215727322614753752815480621734281868161724090617527710480932582300155170898951552167028899026842235488581207131292197000257095289511454030756714152024056835013399875787545176911597478886750336475721863469544175683440020891928254636570315697936409258800963501545759435315975288978536120279180169877549006151848128729769754644273622942847023438360876973189442253385829431203999238611184760685211700824692508349804528967818823940646294178281183521965978769483645156545182283158426719683324087298648450739203477966402811610317054597776422516370851120031594275242932228298959497285660017160003732129833585316576186699252593943228499922419371694271909092974398834859585521699513733800710710270300447050573639371287490007606752378356938466721476108949989927338301651369222182706644139602450637838515480634054417567797419988020889213457319113881831997355943443232905288973244594151551935306777018241772821093731273083166158283970636915685114808996973735930128807329625197792156332517070959335866217920420354053946579498106823142297079199414018532375044194379700907068291435391442702077764760826887909066100616210303883555041141755970766098621374053343808416745578644421772114898777833454872220858377699056705703295915508452563334897556663166856239359431507919528321688300436736095295003162745079465864668854954121805280907461417910799396333912078049154219054914378515939249206455492547759643496490332042022172604498241791368778482383973329980379804516666673867892835656599548278238000719948710316807007840876573449150152579075288848085872529700869379287756106354271125908368853949211998869772199058996869707253613560405751082701474473717256084724975809218131295701711865768595206473131369625651378819381354658990521545915174578780087461393491129741430649036902030778660846190120984735115417553327110791702303341694476522671726017335108213485160006256385933362790975100132559166771876280875545800966564283711885608859918217210856328246988701689119580733326076579814108302215323013674176945627201700553249670978404430319885587927416512571222162249635494576756066952947449319697498766576168743115878416777884758297204078510016881043110919119596564917181581925082004795935809840540321169698155630383114384871914212500585368901771091121774204434199961673675149136018262096071589342450700395201851758915529798126502029026976194362699913841844918430044380147989101757217857503148552706329865322617251409826284029585219093711891850293515774597535381583134195960404665448324072384134183238521846596275697259586365113401034927683964552759470470706706083027474717734563004756802948231334420332104815340064661150512735931226577337835210360774197180578392034487144757913929307000797944241001835968883881029634408454270353668984938337245301852296720374494830323216098891831443814117125179691888150048358927432836387199133293618845029296744497809224038362316210668965553375261058215282258418977890534867808845700431231169461005592210863399079099977268906435675545839201848179354449573468832063701404279975709695671235703921004950997669836673095980906734302591803803093688206241108362238530353622879909730956632025090396723879159121250005661843710590427769363117113950936565513985755917501359242049253659382717825548201043481350080847552176495308924998515630459593940555074182378374073755879853204508153022290729109747946382418361477632495791119353412006763975420767997527760241555123234375761004522528322439366718040031708454646502675395423245395824548590744935029779566483366752785147390140485069556545563250162814199316689229872778411639342797440849870445283755846820719688262978645314430526448127714377409953180385167336341957412244615632312629778578649435463777381536992702734046985126417084716900495538260075151325901595816628883286476386075819879034288014617531211069003597857397793443117940227349896947162134254185536123421584381077077905194024598861387406891163937328735684163456099624064221530037637912327784149247668660418056095039988947727891133462708672533572806419616782580326256780143834476130204432104006876870579746367899853831970960327168373484468471751337895143439584890877374064380384244741732269451995115165407392148756338822336308624948849477109418069733198959993501392699807125238332354548370764531529022177812968702813648718285576590179092792247511503214294330548204054479662634162437369836449281841112626946210825780256526253375979724639134097121656101163902070367065864129242926716211040492233849971385093239770938295395143353964491073626632407066108191002292655350417850423397680650644557930782816362043669765803148984316000861776429496807045822564933557977828421940503457377137501196278737717059742300432025984321730241197493227047287280218556071449140569882682509900131437282865160534952025669979768784948008184638408762150427396282817992141725407016900473681751342266015731487117089936916585867032359382154884805263693813848103076774556071030762876564497321228827732169513937026689490787564530726967746264559324109054691241892514800743453936975763815102979890540238001237728236061552612301005062224272004267503068387932715529084860022309232730211099612517967129071923563458190848826308629413662160720830243523391905681131469093645056499633747693816441747305932371951833004927992754284375410244901596017735870447586257478806317364009037061125833662392045131619129204955754398878223959487101551984244187426711651880737392533077690756881142810527839303081935910643014386988124286428738724874852133886016978624505700516307578944602127699813073518389565568618386127174044600118297771411886095733163198550933750028086025336639857472496610316057019471028008632318836582776200236872798158270676962332628922548442137637378825850737904763231931251487484161791234282525804367201212328591313163906370904208765392707095900200693343130027873810828852435684960126562004006029516011565630877252165864317951201819311379747430785027254544368711805599193204164611306514194965524369378403137815547710754090100110015911456133287596365503246674213328981982427146996279312470853956293122850845924858999123823444053345441680120210136090829840232433248329224021183365007782169241042518484365799241923533400428752312627462894110095213600069474589080911850403071985253588314902620756186572249145075963783652112259393934509290424816088333328187013784973187939523089386358807577859576013444070012738487483729288436044295473450482811927374999992552971938415459466771470237720864686331722640955616221364152522205377670706401398935315303397935111009626867642410139320420718298611876458345357752031409344666036695072446209280012320009704842142789115148652597073129558740965538553635866613255978706236905183570801443620967260074797495754126428731511725018021171774519041830016063651234729396980216110044015396177643488571442105823060550998559764012096113868516827060619298225258279736909316426831722279753855207728787252829609980929598513264438819188112845664803338871308117433727496040585530764141151382098365314843835791044196619938079934564269032899822547243581765705192940021706089172760176552361598327660379924580089690846369257667770756397597161665234514389808986433559472226301447724908593204817256037104962045518902379281811469143359693462042857159884897670648126787584924649937888500558431892646712965231284630655934056183719856243688389955696240508886582177438590700383125642705945098354804196522362184338992864136487972021189510126137284213350734402785475465412081063797402196553729548112226589333503361190769482379803961865450504325948148855318734775259940929770743972543851152564183601986736406142416769914909847804197955434356416235947817027899379184452116147470163549434027432630002903924386809480236767046898268605747569429956328179130454381822185525018914666084631222801735159970277906773145462360054878646579911851203814145358939370806028889258383352706526315583847765998130372098660939825152290036904661735679835182463398973743872003313123851812136121801309398444134094411978618864480026635476483402818799540598291933244103368666722901489431482365180275449587010617605948775478117665780638787512344552431063728715949240397951877743117915603036890538511455466106919990524569386747886367921131121827262197822498600514220680026891342050697514514787506891562034991714358663505834395960662123104505566314428395948252708320902095062224543499359165163765055054311199421156468136265677205179890055202066694049992395555369217104508207472113025670415410090599022057077597940638650651111583790330034281129743876291740323594374168568298590061644521786814768718609736346788232414643761971140782021141173305126477150626794604561193415972611575882776701981247600145489823188041172329480664169053376857544734285173478849562446834445319062893677701065226353859340177389677467372341966387703910046448760148255056866824645020371970613126961789054678842381203447041252498860396225067549535121559959505346563691021736978979933757976530175766809742081727259942526575379735919838108992530246624066743295953569684467971600662949425339355588234497871025887761436270413645249511495958867152224568941800235115890156066191151473636368425984402924540288198621401752283238000198198472973738638510782175703034000492936474705328625318392979258592909500168952880464596704667998010382725783293590088797743801523476963295963065416702172813674745428000268994494204821442113310831693415258073170209235954185816940913877681342267074699917142808639219073390267069335510590540087590100575785761179891626859166366228118722733268955237981791214834631424801209882639008685660471549139561740980972625485506089841365752263487471259825448828738541488360072323716771488117174395452363309342769538857302771136526948587802969031133777806011621681453423560684219438609800397457683109738575020420758736456872255256156563646453448779028877432336395172639631990957208095281753975130253081260875461125749404754346230142507161348849406791886796545628179874331059847017345639540155321605622298168695133103673608113289590702344109713077567217532536402571216999646740833176388001216078674752999674596166110492418928386363580106396039525110248375512133796251655923040636835486366969299658751096456399441054632022733413168268776665568645838679561705242692614394955622547944430162115804671250382578065410014316353478476684068416848486463985582935494038532571704853013219365585283047415995250173719025703934795191331688795191974758341092884894149383028784582725348404830567494643077879900431407591188646031629074272598085555833740045305613211708357607841649436000462129265245821324940985393169654544011001488254002189346552406469231331503155997146961851163707719564991057246968897783371880898936643037918342930219927593908640456294530808550816523240026493639592500477585017892552712607995263155855403279780370178419865940605671814900746294825844189697944652537796441486553964887174970336850062813504468746535987581108723368576399374937494432702295392267914273711088477770247762936206426955172989822264174331642917734383710771480805879563583884878311651654236554523547486737960402505836426436653827125511970945330378306006880518921873241012732427189801819883455353676534561689297203819964760157148663354831675472210700059735084272569282909605810695269289513968217445746256633630990161736645922649622756480397813675189853341604710798660677582631776921968324187667449518371621518506921903202450051296629693093364981497915855754788572423525571601227108562746693497747389860548969048738277043570585131837515751272009221480774939234278372210902942430454158177576583008005144817500754629347771972653468381985104261735931811075853002086199929674178809072589720902033741203714391305502322143921259422109875308604743616646149547918512650434319852824099350700083674624528328210678685222053439078068707339611933732835194152267118247538171461221849115061234381116646818120231746836327348100803580226929333118540579053377229369710294219728672616452952702326730656193654758717710058720126311312380909163344967877047086110653339740960299369140516769633716561234560993604841925336215282518593402008341864351277596440055782914836661599156387772159067364273261602991825886482231064799636863852417378034305768200027628055254774140487160044262910169843521501727298203155840217690481642160707394373172644929621631357606265825025583291853145164547461620052251016680106973760390596980013493093238831766138878677075184375799539553799151196792892143093634047037484014913793339934982412857374873037186972604574846038772518167123788847194483750859214170698086033628814039615131238806973625477031235012788960509744741595713169355109947123736413593388344049913514004443180236811989186709318588717129147672616083989956785593456468151986847364493614719934996690716461907186745836757497552392232682702315634882125229191318460565291444336523471553355216401598255423034385709774590392088813009892543004698887365118314854856073209658789679269778177155322934921524819053496476870372474236238120127402705488300256901200818677307337508463637048531264508613911032741523204223527211697518667006655295389255396543494281407148614268890883150273282952125602924380474752593302828326217960933744436173611878980781816914692996400227235223346973281986112355346360512676120037945178415965855224853960781544304730267845158420285477941277154430163418664208347358473226067488962313527827254063507739179421152569965512983910569806967979354747215710524016064992016411525277932784771033671334039748080599471952808242339689208510383318412378543012761966503711514333769996252888834315418717530675241909926954796751436133127228981085105676191873178682906524528093164708809869676260218156940170161493313485306034341989126300172238914593905075477319283404703694378927337196788487029628195457424826800259379557883392651785719640962138902625475384125012324553470268394673604776470162222461724672051202391019007886502860528748307134353651820442739355156673957959476901547157353914387014489602187988354545170263205586523366420383503561874893830295489396109198443607984898110110144353449344910629761178457202537668421993358017999568299951211273034681131690035407948445782198367476307988982169594780657056849330956375526928240856193929092794170481239803443847276798052286321727950171128483415129609769126006127664541896975893891404038457657426675537630224360250494356094720702491880003420300077796985321250382607047557087495583724256524717637931749384333399542623236043582743159428337487081791446017442580265430902968610934620858744168302919447003969242998445412201290986519182890694232140217704614611547775034657423963453527263451829745066140541054884837929300259480543275971532072322492117850634629241709936392727597835710510802984288339231355546840828523527600940124169083195589905906390013969886520864405027784406691481736783750420363518023147246625421761820851996259616022783063472685734334430780394407558958868668699028423430085256131582116680396881561866226425037851511495933508074992596980565969675354074599766019599607163865139083193364025657614415512650702710193158711650103285938031378300767676423581250806539746159165001091241396647517328914410893077356482606991367864801767929172119147581943993666986932222973258270080233064238937062249301072668323219302787231020245828430737501416068017793553151595849395315794361418409228932951739428608873927182216240657118993286856385095081948794625087433820445425269123675824050382555158422412410443918163329953991782215230086902373405253330864342242479476171514842534670368578844063852886656148519020187677702125960945992771509017932165627690825929728642130542848893413298789770992180984607851766351228669510669067278218324807099128008407337738957885416735943631935025824142608152749739998144491891667288523850471792284278568968406214163658839039063366903054052892753569810407733120557451945774714959909502767271801104473365280950044206421072289721334574761751768616262393868945518834570465369248856700479634205761230298596852908016218336717675663298190903356506761424010912477114021744827137358013749777131263852295282207757638902061201451973133579503032156165090774646152361271735139776809563539808947887674509302282347641676576898587720717310981267213338044968954796549782416591002990464036652502125409501285453371919774737998387839307014137391429776669833383765792977027961923467906922298219841309735193741560813234225460799703124572840681444356032529813359021430369907496639477882038863423322870930448547942292072495305188146853495211466715477982685993101720776542905339575466611681463844256151699665756392954644441644806286817408123946668330537659208751234625268838004442912313558596769748702090794761482810004671067465919440526843030037345526926625440846584331744146179541420747336396261859353254404581519654426081831583228722379535989598088409610477644848983686926413195573939991777021263910673460740737410616111535397238145440307379250026926367737679473038258635817683784901585255107329954295406638475684213623206624343436786165465056988618736099218364165890056683574988031989961259352108076370346863169391211574290313181118572607053105254663492290322362158458402766703215274143538243642079880115659316801234438107966572107130328344425756781943626679835667791967555821811225833648810474903397702560079441566772610287585500715565141837841963094226017242813017674905990918676521036325279732793930670521861056797916948354203837088280223533746418452006582236036598378589836948185019277992080880488390958646488106581036812257490008600295782974653931926544237462381018202897289467559693981861435373205228797276137619687257575178765773533218726034734194013685059191257661775534112321355324144447711012780559634626945372458124534355170161590996003456957385919300471677975020972860337816559221801271157804577490554369823652704425799871914668576500772925539488314114208770859435431844664468035768672356650956893010623067583323982679386666793083801473891711643671931292837733595534632359201767977312736285911451227633338729120323167075423329111656088678224769412532969846021450001145178766014040656350315661346340916921213099862673453405975133675332445705855131714090916115295985345327864392813646376408120899720722118287590328944834152221933001453612061781967218781738594417496272523058298944490474020626323722397026422164483579686809539533620261789039562139396183030062586357798095858304257777183302849955470248538720621111499777076569898337497322135162861966940408050340275145850125720772591022118962267850787469127222173079957433626059166969466868870198774397353131200065382850883839058546055756178483102909176590990536366554043467897047704185766475321851353580416243150147276792537358936030960430871337303903609624633762601187127240007350574623706465245741995856273535998744048313616505269181907908566234240074969606339859458843060202594535760777205414702200100607812573625474880618571832232955214972453344797203291955326091629954071714461990364884391512815291920868385553523414348886723290402148898385816433354298021313693319947269974461792862471556584455356113526161957151645824954970242389079938996845511467398234593270394574793783867015940638454412493139632408393606171210085328241883231197525790704607438066487398738086453628174163013063430255883189163299187553714344330020432366954681161551131510047209641981971091257649710125082792679922710333725901774884547195717205458416553706062422399636633272202616985543700501666765474441839783380695555803152543235201784631942291422765028766861930392848934614276315400832899463439741409462922872743216407328034555371609744480816006367713742224424465311606377825499424954277632975921437027433221615876050159166534051635487122936073845202805455196902627353200741478589669692838042387519452500378177351275587060979996178067545647552258978140387104691792821296008531682726558937158527955099077707865268382962958153945621852303296193313658979296601423150644841708445517666941491669222407656576718144391878695497816633424460880236582335050162916821411639461947748605485055827812114904634956976558592203592515410084441363196531491138177042879841234105941308451293932766684900049992573996003119798506470667164387475067579093004106336356169924766158044031567667450278912120433896819339416358266390870226759439458250321276964526598773169963661926716652543752543452082608488108258469979515804600042001226145500794416261371526263894996233111347035931107185289111986653775789195742467210152906365467175075557767455674948463015874793898633383769126709843199169489098163024387315157505010502732490380140785885615946853896504648812453095772904012446177970201646220096015332544644126255565876617834046492108085397716774565716114418961955980803231835943025748381104861352735125377212276633433679061134540777494996207221569147751676233167708085292021981593372702041223158745705438023632527857441778415735928198506444144031784440175798370471232245397337937205012542592002334264219339064566320285671064225410364871013152208081874786346969304055031875620008893562577729742235787740835608875082045644686000195286225910111313358906457685432836596399475686731814232091329228561066072967167605204398706268825728066063318923548974295838951699080755162638364081938984817325193890103294020147170968520306920558367509854618386479508146403444844967263096984985553659068616526618016709999361013862211219871476755902177209551266667116656405851276300650502277168698955180146180067092060552106786969951521112207466493288140514560267172685984371523653972277367672804594970417143280335140215100760340080174140345016064276676004906687583318693765734150070232734991704221477104253081999642323754490879856279580532581170428031210150984403297102690566827929882359089288967984304288818615301390759509936616192349827276210817522988197117424269036857165483568172614946946456004043806350394205273223704008111105125942387295110522110926481860402467646417130413709981551359857052373491698866094407378028728867377854905982874885843288961948747692548137475475109638817603935852219104886773686132336625283919718582706464239929720630239934784694897653291586790102815471686996804987391290157186947851565783604785714747588461196720006676260863668316526875869501343428658732156736158925890212382458680043706423706231508902951511249361695109696166430158279409877938999370430646340594360289557753135215625008542957094347653341640830658579362468143292161359077590327244450601321650482079941083773499100838096349550824012026209170474165337085945897860264426692660018841207744423136817012044515783756911231938375752541659576275940406852151950701504948562130235251433632391450097927729028269616852958073132717089790493930427276012552734468223970293289259093036928980298707916577431513153937195396675848428665929113864335101958935537895160148766877410334353387070134184025719768044891147395073584161735005447550773253709199540019104618038973072356436191021542608443393022220710559149356519996182570922957654942919917222692974629402419494749751003359823992049895785625093966154588186976990414854835151485259022484869203607279066172224699543715986805282004154926486079475482081676018055600108262368148839171192672275354133706187367670561080636606147169997911600551405208738809623054004305212389834178311105492289872344861142902944156443711467294585118680972474831095404373075035194263772767333782360801952154029529155552619983133804881360518350782694891739732437936627313486828301720364681596863230819887016962624712265025303002116112275549677441274236403214989396936010484523522984736740657867841693824442128412424722229249291331956560094929080804787447233454914636356085688949930326130262903432316884538998046806227177691926947552781719149110074276319179680100851632701367658760298240836808635854568245968652221633183951050215926584463288206465173167317835493830089787056572301128447525876334422053621100739833324114629458304808092174852850568666920887134079283733599297991993521180657687606814743954143073140237848817178395357151884703204399746403303470725355551828079215800732541719869276901276568061753191074982042229278704515473520974144082268572703135931665618979758366507893903245249643299132240203484490555668141495563374760238234225146608556009715908138356818815618678132399518732323753180448210114503382150162231148834204613343442786609197341492831636356735863835337963887539824088378837644926640290847749919874203567033587502255913920988366575028593309667479104537834515076011173525751328538373461819474211795065293831980834429938803310401295484454208741763105054271601917102436108275900773240858210140467275387683331860248970902501357251133050037902058024389700831379268233226856198450276360435619297290833828054314216097158961883278672682788992491822185533906912362667999308127776194374642934443801503090215974188858980892623547040662675455984109978713155597407134863648393875470797630393846497450295760437875924738715999054383553437304913099079300706586507615920414998274966916587403673788857828753183779153452436856909966892024641228243495188772225736500357287941425438831628874615703441934418452576259154463465024661447850729752706715691555044915945756429314451589697048998165308582726448530997406374691939396535970206158907823820701849112120945149974657652450502820067390882084356908272411926703273450438537368528491929625091246747603281378966723505419319472178279036754968301737852112118387124376561113492108167745583362837582751183167802658617571418024498213692726594061617628681406078269907924094424754699791007072785823738262877364081898416186224163227429044678611194743444538527947050437563259087662340099089234262105351228310367218761790116095735579562123521401211743857577342406093744830225026490864428752471519716128933149095505810342572079235529489869531595590871365983330814397594001504482927196513552360003338882062038050912107662934862705695028386689762272222486060095881829226971030072481665748729749844179515729722496825708742523811877737848652231286254183297376454452559254007661295470682996216490032077248026044720613523474004462044847654363952801850852529778020924280829371416082672268996947838123137760807344315569460670629128777468483918213721051426505924156754423514575619953625353167027872591826296737691355802461215732858987712834033108077085016116997128800539035896115807193666109166609876083708206003850910060252240662093404185640183770464037714180849605983866086416278466881118342204177774440596428127395446788038664704876840507751284702902539433838270565823101905782903185850754230223136733107580368956106793663771989722274434488717858937137326298107206192039146547244241433407287873225942921166160137199083684452410727437827836776308472969726929160724950925248857749396392195064542373422499748372827956070932618442536936396839195362729332564801330413158374005218729491917637360193303447433873823466601828678980316971655976418818144194027858491958827785087971617094229030955480509781609983062360852208354126644186095079234682268874215912254428058139793501687000897995013018211066278797179010635687647079706419501986070882244127080634725468444167152206014591100814921129191114657397222346372250757088578927710035872583074676168843493354372271309406060670474032973074613610174259588080423453174536599529509301578191663392371607412821675744191672812310827794492947155778839151434632212694362366836255592228499286747955463535063637578139207147665998764327306994203240598758263525288586191471082197284814730873681174565181947097194307831433738106214467526337960235736944609803038608910319086486659036571563827274473054970317901291161609610754120785753068834358158893699054113466074523481318557838044925960344780414600805672893087063417777529965975177732596843323488080199497899376645715563628734597543605568406327619626755200890185665165167454721686962453989586608517629182131449571448434096362083381917381116800219725562085735372505788316346413804623988169928300095137788999704906341272476314434612446431914216698098984111526342024855916032965769469741482280873813798812750229177892081445236487674664401345547305512841159524839401149202989582316795588693800052373487059119802897503309988052185674790813331575493552268441507976098859827845300046175025065356673864432585034118639251038010954273382161070558597680636862882709794582332979599869424751726136823701471786390699525457196113434920539187797694380829095338089640969130040533097450157249475080072406085138525214113602569691886651082597119773136049705595574572832943612244517982777026563031456468576386148645901940767154315097961856414114123279563198030419498244477034563126814890470777163451813726624126867997538967303302836853367217715283649753540477625807313363882477442282651654456069109036823700036464563860652687182376416726998734730290592152078357074719396683020570679132257117634507519445394206221202774001535617220213629959818781819409357891559838626079706291905219938958570331194811311102364812087250930867218340011503971788783939967880779141261580628885960986893356078058830335350635123046180278725249207708089185607930004709207797938804077147540236313982665217662574470117127839753821905839981663462271799070887582913260684228895538115736861581607965682132728638079546634255297710229488066759543668019444791161926018672999395203063232487409731659462794382781329855689388307408925068097152319442759244440760257351198423127482463965350218730686306560607107876111073132407054065058984978023394558153777421542879609842150454828847742313914797018344089631557962011712951022207449759353650612746684962740152178941308874234997670094373008065646181158091457410843695564843977374099013975015940462089042333884387354592864234622271358220873825610201304148015434517792626365276520454594465052292488916105695952221899033450673889687042499816428982138111156578286781216465621448433389624558534876503556155805720842334275335797402479788910244512071396254261996014689636485534732477575908000489430525106278667569801615133170400805130316646790132117433821651987731000553427101894279695163376408560157170765526824508086899165598482976559955512538697065793412247856270110962458833716688535647171810688238561225243196999651155595591537670808272917477449025557348242366661271805700189355400677278525028617517795024761360081876769375873645236568378247775773338548578839256769741802790726084260349582760834545448355288080281175836454242399085672211927343003735118837484499636260176400981350610693053701351096636441398185919227899629941584884301047621299783756878753927383535180073060771296623504795729634478506231916643699081694157763770878430237626138589941601693265837970680078422110421776264722960911788015280976178557337814556777552633576791270867781646989791965380102597454611424811931028907139649701015495586374806753187504587823905635497405208083757449180520185472948448373412350149954372208965460940236096304506827234635867943402236222358384572586738410924681299399742522384143308803166040186006713622507535897439173779039921469048008955868698742798525555526311047859154940263469372778356346354441345362400180505469259888999133696864932494065760799719815930077091529274166007589847924931014304016780021012413812563836121816174108816869586364703339126431826464685136083465603928929315191371165519452129181966515273572916205126615850225896113563414289723758282299405930484037394380075984485988135734627694138748458540840336620556238771396636090583920551540930382039935029751796700378214039306263770985820602287113027819781965338399830337206592844054744008331758825047815608079568518792276530547039254580063269182712560122359343274167580585963207952354920300324865214833505586143590589495031170100201614868856278963262004306658361795717198684058734518779794556906538201610733549889378129140438865009130247530334328709873279704791744696144881972771937793970804069536885828539929807512638669980870087590876268117153886576709952775226125037274016259948303155357099032077581951785450190092162598484897308052128896417918957951304736384425333386631654588903466853781719317459641764393121730408646600468550871929585715639006487007382763804447393876405529773501731543292270860387713286764870622673833366243538138228670336229178460049306310128490651348965239361181223152163125131512229621644955735583475657975452712186742589080550439552684003961208307013155360270852426394104320693559524787857171783870573455593940461801318709297708852896312149230979082388830791388069523977449367840431342392032258780689057041161910548228217460990206523694884940712287122767788619524604977664123425284053547944680258092035762358085049956627276150323099701363849079622672943804744740632495935759511677696903739617733231796472561751884606989887557585230844492146341261509943124838947836530635396028573401907228234281533221439495622250508580062422493602578923142136216749165966532398686599923248526541288731681669307787433633624255291774113055778342683744941356812186699559121322204956916043709729448178409496674171736926059714671322707587992959291405304339672655165555347340988592663724392786923731577775292520351070338380416817828393716304521828494057355185920823968657509429042149110738466504901905871220649052604410807229152996113276086192488781712746509328151523282972559459165412712493683869101128496330908965735953689851915789311561811606164135298068316361153401953603857138821029916556247527708394153845650554851317349589359922374205009775651295672458823174389999198060139530772141511883387219837951514271180250609645453847264604049640104337226098273873134356478087798004569785258805172384694755859082009827616969692640911103374463963095773549286433006915803181101331363697110220390280953878568316268126674115537517399629890609222889793336891913550911434920606313124908522100736825037730359858314449982163389170637992961096698764998455352811993339884196384989365278245920071238836367832764496390000056973713736186510423161573950947779052282956983920713106259624390176142162676944385221248465492412671382853154457026405704811759463211382340822200114449838595387163463319936503292552020162485337682238190065735769014028249852921653821871991292528721051464415450125771290082969893994223392551920435046808588180851853395713389811115601245147264766801796202980862769022699116709251868036993206320812478023797474135975909603848940776157068480431549934541596226395160594308056192831742119762987578640882078049038042010904962523675589851051107401296495852989523423510207843755947116364861365016570746227289249530611440799516095696610158892627211265076082041538939801941673792053612729827459923554368860182696829710825832583836330959940767075084239592924771363438282873689042292804287258258850186889048753655910624346997515918794633655535045972846165475094752360799098147752389401169613761389971373462636190676270929579349779001003270789495138604267902327337939764911552215829552673192670183670579312077708091304210198649157186983975250812550997743661394749843529045774671265430500059406510588500536322419052750279747668914303475219066553703822797653469265953374161008271628986345883443737859037574330739751189416326086003872195438733882484149122252621215608855531492515988901999994823340214979186434601047745640375193600161953242041941135571851252984128611340069094797687704156545775090489448200139406695359718861501818620708851094521397156379134835617986235723937341939894898623055396690391510286944730216977039130446446760257231543699019116507253133018025273185166230841532756593489251127100399529624118094039687649757933539224317416740813962631819924237751059699098460560212981803885085951470207809896416123441737412074910419751602581210741432283946289293291095694275807229248680702965507309960444574502708102671493367534785852182358568417446103020640373401004496015770065413064519211847100664250743376561286528852745557190484181594854833063938037449298527927174386148219674539226501394212999238519747523488583060596208467488486474561078764658571301193889514693601342352571279143331102397569888030642011071679375060260538262877568356085486401858104146824406889690508409032104505033067248546234302114314363413215568701219625890279083769434645874355711518878009399620155796129232578831019896170187773640504447814774832306591137833948055633203595994853422449114291369828182431561044747660012782584018042156224567475755553080835138961910735005734433025324698638640514988724264362652461037012969563847156771294215703703184374278437606748254614501137631657906518936302242067955542192281313500685591875366838818993131046555673550605219390186511014341144393986556024092974294945828459944344659715641101417486347627132491853720059715008529031500359347871399372269622211363964952418330181942960174126703648965937479667225153945056809937317444073553400761116030773201798808710441576440233839043251044284789722103896856649539669155953580672277388224414537394375809921746536596410919378015210852697174333219421627151818423381910373892991542593187063028724144770727187705484330956034744083632083083261723582045277227728224069305956168252484276345375072527789471921728129039664247380105470706669131122696852720330496351887579298376523933281022557400164463545846827602487510750293891271076338570358333264631545066198457887950136598566340428616882599601904537602482072460034235292676571566791832439717680499421593374155649660096222775958141472573175360194931921708143854194615122047934295575951998773707819137473173607076392815925083459847631800473989531270815034521041501654779551917384954832225487800733779150169393791008793677671600197476430187978593599481240260854475961959982084785129289579567844052107712372108045372875863350908604877724436897283070258960151524993746484167635795301009871725351340201509213101967234910272548322502287343137029896835398742266809175684101867132808319475283439366320879539235969460512374499210616664324528498200253036668408144311454866003131223400794083428670797358664777014888581942696779756022048530896350828470254275439078279545973966852912172094205378307061352712735706272461266596844930822591021363962634347188715994680651938310667343033877538636039805663683891301888764969528689137993911179535125246387446856955536996889558746448802767828651246096699352857656707775952646910881273991819845916059155900188607764179858740454378383929507956863567304848940667912684211286884195135928061338368604823760456156501029183299995295661793335798170982931877273577828265715075762245681419443363324032186954977368599877273040470436802459011714100331244211057130850436523762946450191383055436272079320556801517953285284901250032368804308091203160509395469142638393316010090167898608281790361184994561588670520462287709525597590062966858102406568421575194811523523908282980550775441219789114332500458064037192170319064643350853172316627216704903148540145395542416851143480410567164880627062565295949051991973841847040445979298789527988925192811134861943569533523329475369910391759238628310994635350610808924347249238556976727127627765170317923377287092592425365487306608777124429726058738151388644142898490904962241990389274369267293930029271713516579829084492509696731979982629594783980732463712846991650176199920156310504103085448646466169212142733891404727322532389095430953463632240643227601541643083595189333340833753109194777192668418137054594395056441551778559864264294149592825503406827192057284456928245805976683535382070514537249596354050586062242690998531750920372794313979177108837260819105907404130009843963636119265856312682026287040164144919790910461044171414033736273177123313732681803067108805434031634272979406529332554994668997123740864043496050177428889854385574341084768803065887636082491619128289850169675324438545592098146511817113967807827814456161354449190624945289498429112824577581672741916684305330516780316329911532861031886192194107074836195455614608329200963937251888642201727255153701217402021582740564244098562934874323853291050035098631548757254958540289778177315871054881209359164206559083896515831515830177192011826262865894167995380127825079772750083036792210436257500627245819430413801485233192218085100587150992453078061434473850046075173290591067312626564057224831809759899228866089704639405187536141186168803339815609690407652252466547257322323340323492976919371605271554935289044246420803030858780125746379757020165899753018840675074652565404883185379895567711503516970781489983553320145310694395130750082020164350202807605885616989561623330972576946448847368601722973812017448916126938756073837850663895881555214635073307078483488159126528065459478915587542743250309938182135631926639436059211491992414915058480681127949169167328384908927635428834650578149643691572050920545039665388855378749762703590741292412866731542530902925220551102469737035682058022103519681342382871446482822812215161135821836249646221263992068868635425291933764736348423440292697656433429184325708478980357641086317291949431857098585973035009141312655065982924991633900204922398063580994409205251221431744340863128264117744163331040942378550007497244726204275976672596657698718973706561462809323672725927671354719763052310548348420300294986156734607335766663442477348844470437960589280768898163475960483860823766527919567860115805289471883147141681668872140678479286608629743165453406734644547327029052298017499671071224574536510673941305633612234247322248279759099085755923497261811544820257537785245580377285565673688389734425856401252582679394070618847243481973819373731753838828182262313172403682309855999357562368191879744302474530929448155799350715797108915355240443040773318845991616086420006575466324954209224080063218192572971766986970219636464656736082592550478038104668562871809577185814501950869704936165365704007115175138339306353365084628263909983014872818662979901056992959642531561749715819572683291637014617681705598462693102912134066279644329682047778877448654572178666084323321198479800311236932887336972686644523513794917242288155379598764289963523794237990473343993297024913215437164811901342962746618853036701584782530907111836692742421092776987294259317983877944357536946155128848839502630973664238022210848001486074694369485495939873303792805246465308169288176320842789775893244885884635714683375395135565511998618673068926369574005955188628654841503931787172306285637185805668987303830526721357919726879133380950029172190309193855665145437131377626521520479752238136651244507655865024193935101553771675805128417928703659340150374437165823690639726774819925485714799658955375532109860706916404694510435813106404126916085431006248359630088457320110069279322983148408161413036428057570544902507467477994222389840956520315939342140332695138929467187140123352732840581779822983970365535959639240818433275676043047987135315092197294690470608165401346223713147376286381545946526929900055015829514868808271694710915678559751732341517694122491156204312804207944756919450063454138935635853648529558544795123811166384798252510225680971578703648547731737579000259563207920048745266264157529605766000379892127337591663893199648422688082836647718926831601255782568756450088609290359012522525172410877673261215654983011161347966937244447008592545815136020525516278058321676921403082664858417810226273705999295494730352621457532807636704478732527498363322208972213381064392295020311216396926249071004999643764927099813660224204737242129177670361353577141510481057088701328148765824347872275608763867134923734221268687715315159535816715050746843267118025200311278723623133561829022555807541486000883751097143403706873666527486446343493034664671888274437798107377564521571510053854325920112361419360635940636558664646090232524823017140230069556051718011270627500103598163202699365907702309805165283187938066206879611328487310573182983713305456920795293254948393445057802739941082963411186658114476849420813930444859849574203320102082846568162837698780657114157534203049161046945148622472446773431395542676590453783143976669561135816913546616313142828423487795356434021712454786195101017161223189583088268002974353630000558735735518650573418438521741413162596939991406311006666966311624011778749660201350264898926353383448757028175319727321615935258062191082685709845201842902718915723179062686257790481090840986582642862688910712790723957610320536558782781051484098011133568830693005788178505672877018292723379571420319906718132417760195319572095389848409198045373074580590011979254890312294685304516649826923402652857449902358055611123189608289492974612044912711931847686031726967193641025857367981048705596769207846030529597645463590391253038302159258502346637637149441404284674379745370364474888945280917687027671250682387843293731566290803676259843749858698078441870966656740840634554118884190475062461415944400144092345911986676030748206070097233134992403627001844387013470025453249544420127364625120457484273395219833830790920268768831602270785171183708971885390785389668806962137705360863994161738446266659736353914868377777069717832474296787661093484930931142153781785744516798057022147353001092864523561535802067920309740970849841085472065367930216965331312620417591983570488227008319798246810322328973755596369278535846657476673174650620343979008019187612432674154985006712147846809589916153867784089291009719072123077164178909297180656482726064813542231757585795486980537153942604694522596483896231039708150145968304398517615745369943158475736641076044787740317384807349521317032261483798367395103088428823313031096829018110052625540402538633101684475608416130656195081815103391465992735919507377640189014164072236967755962895330154314951251246297088921389724023866351353366362692639019166442813738478347459155359921994103402240384945662245094338866045611608291172445831376957377401506857841662316622613439313349700269018810787497038731789407950045108406454171659084619193876487977309416911801580807236790191993693727307463365718020378208681821168244447555575932161541495044731305324052031454655747777561095823529779783426438043185353476349466543525104710985179382449125368776334250827640683618944394673026578195130712054728683120001174977121418298564991967931557528581181361678203899108176362345620786173200267347310213153232300828018123336588550427421289236562568979039962282753149622167348339123701435315719561033802159469366824281011317340826930810628835612074036599268382039438450379924706270654504645849453868872547220342842769070138904339090924275881339257001369414647140178124398918983138651893051904309374239636495441854022537436442834561273525398585919609531742380819379402879183500047766597506672415254669531779505837406445041724648196817425036027568643940563710650050818118110668617627445471288920816454714171584578868997291959387550800367282926472779655996244956435754052322486989488982129578700594537356148706386226550551735148429867215024060037738512762567537437384826924860046775924610561894569771011146902691324427864835857258978423219784856992775133654946162076958642413918815856760006004802772396762147559774260288930454740783968566799930888400109072480520557939291020763358987874493858533477540178118748051868533011864607227077999597863868505338650743005902237735687220492618432105628092084895502197161045258545964774297780947950104177802717350423427584063489417587811789181630835749595552802901154552283678789460091119182241673021161047955706334403481164329775910626657419840112178122756299857870479272332261653391464960326662869114690316477180153350592482169400973065318708569502529178793796413879059029541530206267359011157428581943021276184759747333849258399627709363278237204406921975998816559230282613521361341783157348548289442951642460355878729773640250783200776702125374530392074760644892196393390171433711954227223396930180977764386300447765474475678028449472045014164807593830951063068769703076982188320275111193568918999677038323667890843517631474963599011471252734310315350383484685600817746543095847748567421829398004122765101336307863634044186987402993674873244089434278654176742241720005766565012845350453150321276780332155710872800086263350885598157672598324685673694344526548285229222589207895172788280572145129768427427193646400248080426175768642924674123911273318079471357911882792124962024604322547147722695675298007685256713310275011654790230868892275833807051349358868871123633510006169307687898490682800807226686883459331721994414061387561753739126096769589134066799469732229867230849857287920438389596270784863509529156995110153382727709805342425310163491252988883979426145664339454877912390823056675483226601445412231905260821777304722477559480332382835888515722456233318094057953129022358972637135531708007936611521146735911980277508359980238412694839027829844885454458759497192949936090672098820532336624070119264380037172909294770364457074092771236133823024779925229145147088283637061478346595867644382911851925524401182925781928055063560362745406493379116591527741550600836188057026839840533048608401788718129382325426756765003714369736453564141821437371678371469471750629878997857806299923121675564423576655939744649953343632831714914663335942511275523429534841299475368386413560433337463140179051658956367403691151945855043648537831990444931179907554588767572667341771683017301407701083860912509617309238293100942363700534559655840804559597168974280879013064884089887360092388530505450117625208663159885986755635504314508270173444777197063620077089174682840041113173902130521391432321831037461811371347277605579126053189437260748416067171714994690107549648423274840561034472965665648507688844320971680695930624314182676386412696141582373660545858179811801554775118072403669858555288857451260412625853527148219663025099546991682711252085432711525060158939308939393351727256677157877394877991902076805088929112726381609801193463053994249248425593561209899858638444470971038495464573876042655384402682575652495849593277628599272379149377477556700482308149417270128106308585110147292140723602839802703965446762493484770601329873279070209453327829312583809265599720044221935685970072660496167984782102743038148001865966229825157666491447610397765260873133774938631874013940364333858350905209448772340918489536871935035281138737977563327242725087356866306392109001137359494750788709667521109460343839910765241253626109674546761805883335125514513460082040633067836122032491875613221013594897246795481575080343555035371552764054705248673819341310177927075101172606084493112764864916355776225012334459500812808555806246709446763222289321442038820890661391267048985624102381557742421128002036950714900065378193359719313293745850480519884318681948045309964411774702623589404550580426745946380400273806201001628167855019634475677021443210688135716042461656892221175719161800922184406656420353587864736882513930043594069705958381253035489960477340648615962945308479445835946785524822639533541704893737308252920704690450848837898996618050152429853353664998739693868646586898228225558629963303387224649536048768091456198916461796737410713708628303299644562514282606934792436611252578481092350526388062731847445297256904882399714067470958285113790199363341705481285826786779893926101242317395007129475563061193384906800045821910498775579466984083450622415807633266840092839813021476253799039120339668913688676198543978096610358660227295409066344350371696743978795302407870879601401543541730898652803489485982963798263718382384639439036611244559807039848911121576375579050641868582892092318288849744054113771916160696044684294672669484596223031576624048370454355423468414196315335468723354099338454261942795699366650162370565883301956733336572470708333651034202363441192232950431136370055636467433978528678226170221791305729795422533655040145349303135329888621920757653648505707161346877544446027737799646362972164937477703046825965950281796223039400200039200817201795509665022033892729810620342657624438457465046140183939880813858453453284725548584577676344801607461057108171197084006575695494822528186115896388768998175646024134000638313967806804978698638396810379567799243335093580150814632545567228145700387993794094437473634282400547849449096769811882357556370665017012284434644194714617695153311860083465228874560910186056115503733247283872932022030112993638799173447622022721549390199104369993313176005018400330003537748814462056993298438512112260227957720288549011361708246523340164982337805921859162226465996052445314164664502928966114941504328250036422459976073639858237487383140103835376092403691755855975650172141161534665889570709254651607017270810499306884211650417261385197101109996417105638157952134594479693923955345715562485840845589619193499593137066236981567314502065930782958911657927647314610307455272496464625950670651271570262182897352678324239449884874214056368929597721654649135585047714438683605041371881988228161728725576087076340967605596000943150990075946799423666614161440994667968809250050035199388007712285000887009438373590304310088519803228785084232289980911595157585783110999292284080501318195184002792080345421056612526595690381482508984538905154710106532052272996944451375541976736009864509510618796321073153930693246669566403016270974497294693543705257215284718139368692349631473324581372169884260636866653285376174092336834234986576422734795562423701441127367205138401988660427176081115275051648935885861377474987557450739953467201098759518552996563094195980600204833312197263654799922314270430091268267946357796345388086066780426166193238079491134989960273031120775009610211086309412241076172145441707316461955929612824981601515186766916412626843818172074416685964213969524036444751640708131304579862920055278218549122926365074279387781301032692079800544956068845860927593881741747980636884352427334379139153503945970430102137336106606974347243984812649026932932789946260651565913535299654246991570167361779801507459665128711164936701228110837863426335380469456634765977936265765095940190377067876113972761531585338363965062567472444525198302093299228687376235072397601765217887562155725525909103929804964702566356696315278876470041108385495823699988290967507228497854772764117656799996836655798511888153169620339695062161281706642717310737716547664902526157277873566242382631051567888172000724802218902970528236332095822902402999466889520231276036530273683646159152290584614469343389299008960061390709294591372603614027985923805688844293266413397587470160400855100833613967016952117122941897491047746948592943673951463149477441357756555121325774221452023641571112407230130557473164856848548257220229784081162200534171886859182591624959560284700333438330341544049219546419486815846805120823162716983384113954252085787809186276909901761297996846839075848333558389210385721625400238593358936774619375930199948266899843820878156858758243779830451004453471496504185774728550527151531754819075998008179650198773950561634893040324651248493372904267944858309795683792655701586061401693592265904232878527938973869887014168425164693530764035779038815086739885908132864733290994564852766643482185835901065525458779852847260253604892418398665063990360032935270530720854032813464538758162783840435446868000926768761386469224793527932108856678197409247322313785847027215888244261129268981117920518953598033418413612435349761621698828294396053496175130744192625407256204334707609384010409825854683917700642518157250924897385396146847739205962693421312879183952517020137170756050239439138668111489256489554388776995467835801897448102873991533676544592475914982862038491270110718628749674180607026522035963560198064769594079239827368504925144311246482198249428648335057240408783592298753108811719792903969920198890667941909716924672755802564686178615556598427529990886044941618997513992187354009660789590976081387030411154811308099268816810425507660708521967027657229728662674882601504373685683009630721460720667677013996412485217015943720365363715395034820668135406903928106568795538396239114918324763833216234049652316275327500359772966221585603737001659398658902468972183537631188646117638548261287240120093106333565886246224527120545711095586638872408052650166641703555683607978528083135811755338832264668955510640424750226831877691745727658233753398115865957544908357137907923589761659239753605457362308716121781165091364645816678127071200848389253914354756263386605961896880723521342186415877663775091885668033693696092064704794760818168639565405581127266239249708651281877048141108826438434329093837519615934650664959836514804931945261125304851429545231768438735763699143438100818857997292284861406298538524799457203272443716207664423707817402078022889997300650225641952273006125312634812081745497893206707983414607659547942835369882806328455581716278119022914864467149506963807756652110980103596403882090749881292542084906224038414696954479336575954262882758305071302861210386011447663339972425594528597592945341885453004823089153913805387553125378333611478766414303223987698189243436421242635447841365650366465403720650041607376691180908620578458753083032017900619610839745274875572322521997310465686420773691354171741322757012033347418585014983404915275734949435261554599789640069707097869642416549319488979140376567496175605029787215421608430385336499197798253072441250013534063617723789096807177431154914957881669149355220623474124713684580967649514601540665274414091709619565890861477648346080634150401480900174039963059844065886074570567072647850531077802124370186121486324314776721742001763616102448025190213457209694824969782350814436583462842832616438937694394273155268571258823190523050123723428808496080484151476946358861883966060462849439871760156603393371969201100755132397422621341555665630805611441962131818716261133152777037878931025075343537206734033365436207993897810336580990693166076534211424134621256063061134606218132800010138658005875150939973989478766660915923166613745272369683636247471649073882447245726546244462942147589574210557561013009094463700102372701771318698464603375912529828959606399991490976815926360386955600629975352169349923163809305488066860645160046338969834860950991332461835062266950974046251975201067386180888841010804520785398442723979812256752404107458572864533510840078202006178187792507437610092110542898535528134698181805492168400553014062101482252439372484673392439511090375514877257330654041067883853304505492000416695189846527111028444828803884744568347250011437644191789568590407611131706480854794758415487117070760854147773173629072863295521215907470933489564928036017976076386663546731658895146481276839808196547646198794745557977979057487297345781097763213804724121724208118059278092098486179015911717875934341085440565804223687441540921869185389709608094321599670593212208533543166301243149867756858509403604150700442354537422282133747664996391910268191260281254775267982703232178616082797439643712454665568436028070935738061008050811729555772500706054313743348302499761739481447336739565756810570852970783923709168880826769347241388528355944940899516081677047942337358544636759806016070929124319001241995615841943836297714609946066372715968497681058093194412400094663865164078274788915870770984663481388258395500221696720850732953201857425119844276189986208926733973732512744266467258472107675964965191978747683125109600938286674655299750961833402657165758058804193953510603349146102113684220019812847591881657263469353445369934472837192492469831314410019674669566910450067747268118046597073753036775503888094914923910572233210954318628182886341822697972851268533461124244991068852290265200239257059470197652512901995552809122061849804798641895696915933191395015189445448688073355291450102031992147413857844085763701566107104225053638555678408887735788306127022727111457406783956173893309570701358028750198823035220880165493106390281961275067063467007421176198941255789364689481127184086503562094966368215550784863769967993328342389993730920247272356530591912898024743397802995776708585962653802475875935378192743878426395545724560369438335238158639536820004318366927347322692079368590542764246087690197679351362566867977252405263907352443923086000299359144066475192304175035974215445604436334487383017574247403872549541476866324738908083005208445440537108305358786564469550063726974279665942273267967269111007144989896746454873049584794078034666006203654298944394681607906401521708484041228562231766856379759267631243811877489817455491564567367385087760239505744424721927738133272241962591404171515376072146456922398403726257502006483805958301880638446166871722088806938641165110670626087754279050469059454860258364917550296930277735558858124576538583768443328168963613701692669133423332485444209935742210117768400856827738329497672461340405658507387174518749725627498542191935249330499913636893468385421710740379862480823437531143129880427836731287444604132652196032331683142680859444135363921912832910113364077975766933925754126566113644293810148999727871041893664708011188942324408902512145096052996195585994668153346015232589583145530387496793446520310980615070962048485888609654178380867315038147172746419529114316060872642732362381280706947599156952744432650670303223607242027998952253559192995342231963969146125960115502321179746960463262919979868068416694612231366480860701618667775958138411594548886466073532995032540345829000667202904243456147932939077726215490473737337863368970633557857282537439756041965877573954887839483635634926438264888809385402603276100109796614109367434247472486848715363894727464903452125348978688247501588309736604256380884992493267658057335919574115814314393557452710442390006585279448474237469287582623704357078241091484929681262944809882238640795973107145645107197794537616044481963052019438245736400877639689096483703675669586248158828741761173162717558110410143126138948173518826653974025286063538994287164758926292063650207802020392770409760804147735098818887118308322920896945552996752770340147078735724941209042195180419267447090972610551749993736282150737147437747793054219901511466044594849493371353956078346148806286025619874998422404519326861080669910938415856418489361269022345489497226451134903622774023144013466226750015783037073831064558338837138466855441077974400256522485221486532276881632211261362007283550330581017641814045419749386942124109187758935392273943904285720163998393402493250742172048760190748180217446182711470283500303060250043669332463407972662188160655264733398359273621765795322536547925904632065922598529379644885132835414681861938951443852235395342978694255493117153891731414255003690879144643725212971054661973975421169919496665439688978220737328676189240376942217852958837086777809213132258291789971815012386592110728040509428984416340252616327456073445962803929606547616369580640202880975797407639358339905251300202845345322421137602580402037550572220628121804012216164827508779121886318200790320410375937659591386342913935557421697950889838268836869624696194996606012852127156200914949509340637548416996796434440550988639164607802000092704442367335903648511757037154627480504717516941023354633636513070205399592706447321181543332564410261762128249042568843158824962351672664924433570230090186822765228265862559388950412090048304452513093276386184816560177260266958295560349887924195645492550587080186732927182125591816994948042823434008628196622927713111030656487453943649710667900562695624483023025710654085349922161847808380882223867965793074275659328930509343559734062323869857131397311054806498053081692329197883329336937577705581999992905880129406878675998873197908291706326650115664606258965297534982116633621206117665231859982784333555334111712679636036681983476962244830394030673627657394209816392193917319242468975888589871153022743757773800059905669555491714063507546209656212412626244771446666578888887814671223763174424221157720797126290654001754241572472473752801971373571495186013678513411932798876400357423427980629804677286899540839574373282321960145896239173949295471667612424194511130243175165071175305148032831956686884989644058941707935272056827275555330099988889635689298752124226575849165152703469188317450099781271140907971473433074960989500661270026685855624864367221178197985944363436594056602204562992443072511318408751518853615991963462122233843476001432889208699940684976081236690232793420491475584635117248705374231974941695285396592592277742931839862220157748624125219494749562269046867539167880852955232533180427776069169821496329422787887696926265284170223687832780466211397959162543330433423484486494304732707250721885540160536368604744643580167824578758895968415821984108103075304297476911678158442314403864436444311959910272902787481088313303165395454809961152578404840611251813934328819247174674466068285936359815621859745994133325559851530103211265591991564319516784143721070926779310358165850676399540213080051803130630229509284015378743912362149922173091881959154135344779755891715099920914766904477405425749258036263456906754274945327854875780419334193816327483654667919172264072795096764098921685336688290384241523232073184137847004475240080230504902438013700353375361545684329223278091194925445851860338165936303276913888993344203667842165590686048066882622493542916855990363355762178968974693261977229410343473944167791364192269798394387550071722358929837756260514636659519800162729718989213307166262881152138825694598849412704784590493229172676113495237614123925643715009348012344998499464326039644830630562097507108782452818971984797803881570161442364304930900280617821475938006329725053996936454915886185035459946690881023506139808257667535752746097923864692071885432613850890527072507234654690027645798502848478907433124729436192983282803187466827246505250744464608061532559180746326872191186999203520633910098858770877825878985098443674393273592156296028130916662611598012375468532567231850383841231006710340823940173907842907712083006662670559624478232090970677088196448654363434709021992295770034455229529750671084307223528450985224129754004997338194530721793619090854105360368024936948888338438019165542684856452834520179940916316602833496039257686823175434092793074712709394647612753416621653655655356045512801745295920668250258779088007131728893011893522451275456061306083341221178273137957618471375518879231926782237620027045013420145949733687835501219803641655781883338668595558226998491206558633207928119522992042403862973125707207929358730495462061244836071378354878632411720176997679413723905337231620393151094087205863835255010555242723483096866877393447961020599368716671116130523227743112557662356608431942150471563122021114391084859772453716626183098787001486347580477796515204280370472320581483129765404363142733278654263762677359286232733968057800937730372213383965892604424756284576816819349262741527539110625842540029698570825920404361089027727181437925276275246074186683651470914549670166698688614991226649792016180541509468118638905580031052276565536928923905246047127663098709643610833200666066221819987158900831031269499107501122787213787759213603062290414981898078356645935773133167954692721993854466798717645948053526681009721530870542902441724968349658584381344175467961513796293895532114212191853527505214066632770680098248080484388035063583701777133773207909769344682095474070371414646005000773873928520888271914019548955442971542296039534859249633385328465667619815322072232122817429036206996332631170287730818085642480074382211407070935179240574435334197356529506634035530453250674556958564874623577042468208428838057238977724059741765629025313120637395665576705454870067513921717036860259083082546418465471047659221981114135908004183956974144249082203005321651724539142611563029235209747302491115237823973520496170567039433700762091370702911046722586086584296027725827847507755932785161482202048534559518373928337703567185541143072649946588039821536882092002214181516233985404673763036952463688461677661768756382968291990465351648823658500966346759965639833651208400532096986278106428069272976947529073335974334893340322071199899659480297524863440284995398071989181691883124973315292737416613665774575173796220691937534434481017344719420141003568997355226807128880597392142505664478705892106824728104020585087744421103725904015640599215207806334147722055567937256410865544173977899429667711786549691691375246071610920180781776386481766042776587689494721013999844169286643650389888796916397349476751950206276829551867445701056304122689943336814053583849504104389743408213460303919466011074853216126860809858457484517001118009947193479278194174253427324582675515259175742400105205981246893343328056347767771719809838967182753728391202324431239501727279114990834909210638734897453347564491444950689249912555155754614258596661302611846615330115408633699433376224480757084054792142189411300067057956434933925747283553270638527880240762515102593312129782003489959454363369661420609265457670882499303614578898418816307089375029479674080565332824558395089458478595272739934699487333745123496475223171030770404824187074416646264124779436874097826997746109721657041685354126540848670063448123316918181905831360782167081611377253932038090346118998716788330986048848788076869045168189134294849731650603082740237965294308951776389293382578550215071402617363597521693181986579074793306385090322170965208807182388106431065194065251741142373850701798774169405195301853435792072766446531088163583191836463429808146502992787539549602704427574028198436654081501907883838902046149861566865176096170319798979325165088272092471684106530078408434546794854260541469582220706714694447923129343452724520110364625008727669367559552340602530948430983235549572775223058585838590864073454422374865220001639415613782002885494609476100682599960066692215731671234523680535080782655870931177690223103743495884768459602550359652485552962232679059130035497830652548763470389116352238001990616768216558609093393413160817888900002495366793359150728834204494630905950964634102763302138874126625229113856290100339348176099668058278770580735751076838351611238250463526539199939434554115946455444167455255083177801897337915080247715427220090774169748850890827508393038396120129654970714339068484441170336448128807496098889331004259904535708690654207969968112680712881955165957610417581754497786506274770197321185608544164051022751639797212274961951616589248343315477012004633256166754793191837869251072252153240653647082674972539109185164868065376892093630705924998373637203040755005376348599005426744255532607165279214525202239815120571197139117341393376116319726197670093950585774327747972501320686100048995415938053014211706563227925118953460242919983084650008008654592102279215724390639623427638089108950818944852062241381319814813245118731731048321358324832624284552862298558227911511058728262610286364251725544677354069928817798436042708877009158061205131560909976409233888317511265830556438938572700728445180606672194786413732761467194545520291429864899675050195549233388178237789626949607525933723005530575293216451525789362103846304853592707460602374572471130357977829765726415702965136409783255655477425070967990543495609024235564375014855928689585550305121910874335743032282387357629608305549529880332711004831053380470191705544941552897472419993431316728414529174455694820093335059748401181267751551764164285180650316364267456100074335362197428463265929408514032206532850979174026510057644138848725334606178996118781781484704560071701749127304656486478824940540653569555580004952147012306234916940818103527360436681048020946683531812997004804682610135889617345501501310090842946334740932593796378304820660884011742502260006813692160090654299607725862174055678624686324626867380559459054624365352673971792457473420512900423477732948287123776433679748085361458341784012441171355996848716720418168299589508039896005646026873727698748773929804073610149879904066192723267469942981659919846509196370289109287215092991508685169613471453055583323148289613794645915800790819413595308069425491263758493315655960607143685024541747627384167121460761889057551104660597390122866524631365741657907218874735713420367498539450410833786188451929286639903770642953922965932417489630500383121750518490937361901836943606512054032744190705711085653988387966588983847027972794368375559974237428373869890719485182248628290888417037711215888340807879652243046978550937388469119248987973287330018170132763640953229354124805262577207057371590155584775940073875678385523733456190376394572745732536351530844697378185337891104300241536949766985243799527000254633763907826286680152369100614988765198179131202961693620967698849604597403727731700995732556770018482765144143067617498415741696359813106495270076609127485140128500638375351328568934427418211884457904676873071938694347627446125968313889288113304364766604115406661829016169018799590613506884151033719375567351956483810378009714249450373566381982762472545742456874521894841043840512608984476851454166888876785777341607548281254459872310535104526622226671210585806854039657479984606717822451302363035247438092060685597170677578338617880083954817243688544528822556863116886907822190494277216700505106114333967294536423247737040337710669170140817204776513698357101353457168925153907245926532321601589259552768347807911884933587774792906042056444706233360700722117797272811047753568730912747495403288465293042329042560363203025684028601767194022925533416330802064987930563102394976851643126405438652612026892601890456626694074012923995246905857327711186686187105595976944806199118638006913016054028599087344269514792384774825414062474030069004110959261010023774668628951383741525052855596537567553113675188125490778891874431665967684465378724601354865055067829745526224161588910473530047790179716438207506616540073588578453031045418478371849493498644965602459751948463420370321101391310132554706903673299999212987955111309292328864660021805462013594865787436832040670940144603880881139222633840927165120749918951380151951225359589752233696207998043036172503388732846194334042669172888091534181950672324334135052817408417402674881763621674624482924200738241993824809945447325355280413452935192582145536903665519920208225342987718582393676482058193854304173851195319032538169691955437674799956848728131117681546374518912588599462601432885436075935307643292353753066199729521751100399137714851681896976590769059417864800769450369798801873871975989670377090904206464870057721211363102717900255548891031667038862650044808242409032125197142599757916905811150857136607301340159969032685581060807077864374204000619638414464503799302105238221073373606363004194661142973052560261720414273378464051182738388590288936809249325449496123746000306924010626166822323068372519938197862257323535612790400213550021623190226422616804562156968636233961741578758264738878641101149589079158095607463466652510664411701388419876562482374132571753760325563104154655704815195185573057314438509311275185175707358063788038395903907075995866790121973637253207340816860158657672323736855160222797627713502567648800267449602377659474953966505326598581041578285274938852304908483928471561183634847339100167061683377333375588953362513864266301439861623717436262761343084054525384216089800127110046594516813837144589742440944889812107794835810356378700854485789685255709010228701721801602009061448910806041692751181675531958820773829353148111169527907349726934276543665949859381369346970842155900556470432630895152831935715943470671846746354256667456869265100080363897871755901136473333065018440674342408054009300677435390668860987517940560282721103970856053634542702085385054712560911831476310772170288118856249320673290724786669753028930788442908726589021550026511425056327935058632828143208057659826630926293879667870025028004584587530597193348632192068464577020266146194334096573059366310500052179916370413564296999125672024746760869297024230805997318858668186465049510808070918450083049377498495789607978499240732955830231495379805449165561552654327415483188361623477879858374136808754942920089819919097245995505461577731854258229851718971188413189164837733968183462402783025684942797755619446295820542208452669340382672917089169745201802398952832686620441759688891190782657638213555134388937164083557340453988466926046569629389618446482503632188764421569331525089460628206188470075064906700125822201079925630869045749318650011809816562365939715365037745235889868446276747365005927162072498912616633670287473265674829917494002423104126908874876581978243563744418948331010567215539171897397415334443970249523097624848932132148084979828364142971188759713600185791396723442829466596947958039222526114752649922684672881814938355399927605974261169922005664005601993324765095372175817340600444990705019889917477137101197890785019923299889314799870754921249959830954119403510809430640341969214973877200690820734897708874059004573621992186195590210641676835022026003671441871453101472079540782170489504197304082197263124738898139119835183617912687674153961428989865015161986143273977321556271877146580789099575786495229700438240862882840534946748627952618295871160330181651802080252915544143714922203412517200538195622998297559954634580212745058056620346730875562595226135411951753439746825889343209170042131431041319101289077899234208900141899290443284030133433432355737043265336000916252434542616883882797893504047318358915578864970493300636382780747539350292538417077399600783594112308683601801312637272469572451469414461049597444271170620376480279043507630358543283936090851169511438509126809657402238550609837865678097860746917155442230172763276240783294723997687127713826319040926051467578487240520997881841747182279321208379210152167320835737885987756949028923225979134085649694109236263683626052400809180392997470065006732980259041691188736637373384134603770713852496185229819967369870573211132060264872117858583406898933608351285141505349143814259440349652171469019381097264385644567850622754731187405776922042659783194773889973160416499415269852046043742114522859469581499689919058141395142032831056665833548242751943880426513465103109642765771448551241962911763477192761036284436406467224259969741232532296350083253248264568480497168160447010233919190533822884372339433294715427679281894929108178266474010918449388413114238740691631867093548286204722020860688559567726884722859918274330400290947140883733060322931381720830381405313484574101504183346465085945343995047058406408744791638301104982081887083382274638210039628312063929687122084924698767585400065891284804396121696568699485474164607489323594224244203916534671983557287268299604305697889614019786521736137694417860592921261824090343038607670862473626529147732998622780807636331537357159085013197517734008227525065780299432410799970094728100379071821787167066275841794863030412040925891307888103607739087428541437630504327407543767604249961177447922259399968078127886873000725823927500112282636756333189865258604719874093038500173457022354659572691624959204751186096303456280285044614936876695931622527150507854859272386119061283749650967439024285421384089635261825738856307981808915027456541468806227468045635348288867352548135786344386575691935852075913184570992718271599514724737033769422480333973093423819623190691756405015453095501386899643220598998512029538198658325638212789982497746120834349476068475127411547749072086626087099256462026565037294266777483554234811023341320497405190084326776500137516218586731377240884008080315813050459057601000151290397803326869396932403783769149304391579484894433664576598612767625607153726395329869490259318274317023726918448629888975043756766821145491700754245916529975393158674923287753565895397645071260327483101318663781755931688607955543381531209163535220879284503521245135675071351103226586861114693799207345854544479009749999295563693837449759499040464779874487216209529421816796191164368044993075965674151129457098522426820070176515354512423646117817304425861243990507545257254712701518475565747636974148057423268458812023522300770965544117973664104428627576750051891882750444692383401692374149422799053615919539337876211539633431372708966052101548540075182135411421672840294651023126480727927837507466969545005755843699068402241442605494596769327659300157685171674057683970108938900439077880314935970132909332661613954841035781998102756380944360679323388058109074083737563716543690907104058792154095397307964864769612731431542373986001548163286587643779917610740099102639980788046922800351984779957865080340273052563806033236628123300091429398179298995522445826615440210825691679162678023473587251840961173061382741490410263932966912943923801168512164840991981269620205226675363561691344852622362315468171002053610522699395468809253037405157136936203298336870524131944695199268319575205940451796154476338041737019017429829758686334855751970995984147835271178939301893758577184985597278060966906635621477613250708806293167166497422903258522904609264190545114175857499109167002406328109207954203417978841920835909463714172055210948285555050033837720633048686074576501448404720668810920316745062689420109981313654059705811468053396638028685068889917972639044223140038986936754042967016882030982621178952606561785547112916496574169509982125800977480152625090574835944847567090960644253451980729504420513934263511629233469496598191763035964469701804405480617414779181953994720196185509708669455760540152552258195854562949959995854211711718077040672128594688050368068483274240524054610702937373908243517472195319298390869483494079552284359752463432688944211214986562824014795276436219327485743414850833419059793402016111810416530344984740113818064735282236512197579224423003222118136699209551164850252977020598314393269154562355334974778151425037234314578819159435026124749527795010949696840283683750372730534484079385059764992671542160234468740823516249591367974141466875314238602140405217049140691196133336807886519991220476739181825694908700311673840774872085017598698862324581659995908865712795340198388698935511671069828347333922518406000693586229194464244519890873912210228706829865839952991140748760425550792455390883818857224862347460659337847293447428581736641978544078321414010273698428493003639151892104876161024877418469923811230599488446411345805681345066507054214461989417045767344358906436501001326354493338011121000082456551394459501847604829411194493360608018027712984135709372094816281397620485101891772802404824494180326059007135276634801900247938246583151478754471607249194165665619586912327434615114573318700518967230710284468443314403902455135881984027542626039022876995109549304837821765968639406604020516817620667340891497402958686230578837809555506085159516751214432381545245251653329227990997793631108106365443187158884107372465203240976624077240220508989042328414317492139806597520103858795398798607194326064825258211479930554544975673909456646248616375370404116348575656854330345654824321747350618705036139003304548730790437132637089728681932921072206696261009881314341797350252101344693558855184049931245060434352563584567284084659847770298080441585599898610429328399951515091810614193700379703685636264108819559732073016900046886449818190006486373560075897332167553818696752783229941800911275826543459181037240896500945800777866855609310662574485149003122426375054263454503704066221429232695354051050710009908278603441769297624108621039474989763633859641802444455412313638375863799555394994509080497370417180079940777161635524541284763334626119649118274958029876416583932039095514343969361934255448888075720253932627545078215353494404948501048311626102227810301936330718218048474085997989722437833699318257541936815167169503983011131300394434014374608472327929591470369157127873407577538327881496534972668634681459963484923247756094388074950346114809810809468538269118490838054994684210628363152951332595173037350735346053526858986607052974777268756461778872202497681368782013143339565046826404968226015406506365726707128227096349740747719011136534934250663276004089944309369924016268212058138122663281336492286371047925489041666656784205863049165898953665958529426986274618302342624001481414022189489907895191431350587846472076966697535504849920317841627056689242732670939376992040236169482833068211242390368365119107505382549543514029038338658134950401164050128666059451220977867885409007955359195550882128052847425905415809388990637734017913698004945824538727643798087736074941092937516484481002644808815293236994413180082938333304059979089626350926725476407227280256951244885660644676501189968381805877565859141819899875770631208294541181491546243429281487433769429303922559481200012806425722746447668446788482665759900563059147235670175867486653103501672052238989144747465912789706463798467369831445208356761255478760120317853740966223600050850773435497680180738595990150444384578725713384272004595227389174221803173373208704188823256253903203106460056707225815278435632252778818670249322654116467971941814892454862434311021159994905662180094674591497824054505316356887460738124498944765005468470686723139968318624936826529683731909458881499578206479033867687212881388699335533130282750234646893424650085239821791205290091768914699191734775615874440454458231043842195542480616711631493919164192029522494070191740669054801831764581043712952896612658597830646062855322531943519405577818922184151193345813811858249229903639356762230730324448235871512226542259076930206124554899282753769482911362275191412675850185444791193808573407664979376350411037641612790881227941201370783960916369791395781391604214862041512343981513551147369316038148273581297361122240346721254283520532456733854276235518108428737747870462575992589386786403223991482432074406858115351124326059675064410802173162530861507295304811369497808802668300130389853602104274581697117364891850618943028795970663912716211875447300337935166531727736996431073121149356458176022289301974151312363386678681578452112232584868317160297204833073248877571316055948401100978958806486022076413383484222860488481940793915585570969767187446959500919623071253045175831917193244706245727201948497047799228145415399783440447205054292652941574620838821601524514801273264508464153654201359890095047465603965821815295505282212077270198210311942569698181373443515315659100217713347070609162291685309630041043330161614361217132137785337649491448135150363259126240789940113335736017017456400394576416058297682695221530764505026125281998801317605361333996456359882611059325218182310587911836960010377146396606291450443611593394354456132819251983786751364136423607229947136367033327291009245818646541920628467133640250829433510297471840067440185265597724756593996052427089308789747361473070430245691154074570359582222848466993600764302156055495421405379042846378141338617133445130734851135556727233735017180875804808625894254884952412099125715154352602040151377591369505879895625135605769808801153724480210823435576529879549833786026479447853834809633271528983830024393475142341742883510629233054694462781755852189000993966161942693197386792965764407703753484144678401437875250062275032984306310069394796274987216991966119836103167949503918129089712641538333007035769631169261694399730177333315963581411069621015225419945141198697184774454448629811716298233602314338168012382716867548419089409482925689529301655139472931735431963789067463357807583078352467538259864029475021467383745448936744834638206916705852126381759127803277775305552066751017745018869254653567653977308526672792492078316026192018513824093818546219366324073983367846940312853813386575771284652741596145642305177621790934228603290707949322198621616569528926647873638609843636661885993338302547776630351892962987965571324486415061543504174789971033379226555265211720194992337550507634844881822005040028424619642010127251216916684889395475108094195900781751136887609424029437273218347028405887012369480970742677044630156424835537240084133564888471513968514680522246916803367141625323940600022895294272986502857420371230737297407447287446912342024402834964799784875336520404478295260978811941996509439200421096728989981557859644181681797044855105382190165752789464755689902170192918186617454009394104329374932566299831002508322781059058869001380797843607055018168693768464449760027703172305183922852487303701377783960268864345322383608403397527257648939387959216635572248831074619673178112738137119263683821628952958424181677238829697047277804935323971032988825141086868653944335218038954932660438000038111611888356239692183899924881135010511552839783698808558862024878505659795873323245359920829933942474234375945129093931811351303231234829441101112357472507719720903301338501692199583140667769636376829462338875726377032055774458838350058237343583762352856565405076607006130149282283153198952231982453797273988549074151034117192514906666595521405092116343615170065726573601476662198877150187347265028340179461401094845869990624055453100243109110245145563534621717793333443174721703812686333137700382626208825173041397863991737620731585978207900629911768463478078668345802577720655551368353535062395420655950008418162649424034141931271329379177752735519222908379751146130377139884270529581042964631881789452261822899310621376918071755999588196551510495761287276562114571807560126084224182244966420759866609872541838958296343419036716160169713410093187928888324406776409868326781492579344569592880900094905819022156247813722384140384485087338374592296809858559595534894391006361058076690300021508471168645265229138886365409878724263732348245913708287118694508038251546661014085164532686135577506982308649319615682065221091526856823803030302795935852055594943395817142419411499187738699042035534557081086903173108469931421897460353223910323678856008683397234570263530788427476373616422503759038842150203452382039034077377334975600758093177771479817463564111558987709802564240250791530920277228026705181523918810424092649840193948169627969035809448349534280317914960256302033649254680843805491648198609623765690826091366422497052872471370541665013531237252085404255294264924019374426800079410230406696486332721993909281387560667284217140922101901131437279680978964490691743472488246779267439295609269966392018822755164834715897290702149087717444781634028855850397116278642570384716901748658199621661033731559812937402267811974963163510323663806179631694455656137731279556795731285052021707618196308379162871428050064354041960373140826177115383176808537611549153562296706337020340326643105088165507005410192870592906870197467565918106521724732195885545867107855843165360190182281473955875630436204725896413455814207239069390979711024251709573777833857738948094448884186189026545981675523410176438087284927005170387544462556390123624655851937316940519228081483749284793265017100569448619716792532853106842559357629138584416535294648415882056851108554979813223801157041956386042746767922786958887403888507781257247518793941250441590596926544764899657236749351150791208701523599406118715064731079501759940895807041337519606769798884872718072683801557875738685053858139946739868119022835824374942750055799050048835343076295546785444365279096158201119062376636289061252898792506344803310409637924773300323666870534952843118103245224655504165599528671080233298675565347285674519239698449508097190664364768781529267364959232353041744819152983782637534877812444876641633605958894570934374685558099272930557467226202273772745682692518530447271836431533416367517735001069403262824457276748401988862318658881416364518379478864856342270987913668016516020731572490907598224515330049175129936982934520337885024611209636615558065047321892486454041261204526357084394553146797134638452024194575603107456739874872533688330453009153431609062410498837303727661463290576139205197405760714035335922782653214115798028082613182904941829938201568504916267579760892802244591517513557037329889490557728889734957530826922572383203537106569864135728990077950232343640161340014090160560253292953486361659364891807253444695402549823446379224570741180581895367812983313580206423385051503733459640830820038078329465303373233066644731723059415383758404221133617910161112217649279812084544008127600713411455790445132547726005861186421027354651389671617167557976447703482732160969072013275424443833684015748108975326523017143910081773903532510532687971370414607819924598249218564384254803390305128397232335160101817333912762460027382349996221161321253663007360111926373623080566160458321871467595582356116372362124923688322378396484638596606940062134723692685394063496680315198158203435773934027244454613937506758488127908119515428085436568132335779605077591851323243399312578640649358756077618802431673759118326673879314893791744523942992258621137776381111227524233239909207440607230986659782163184347353374214965967495211953266390022147934454369957573647948498728757502191063771909139522270727136099012815988790898810032981859498204855951536091085290222057493316182879485231017095418557945692795836805762261242065177646244131925990276890413857612174661598879464419023959978279202517213531409566185471719537724753756995226338065814027150184737328322925941439899974198857566690766258706628920450337725547738512095924315392199723420451274614969816296506726009872131833015442262928833070140040397360849819332090165456518881901167190604481625823552758131869825592425464663756137437266133825084490423562686047194661532589447420050213392743020769454858238341524654398244187510857497942996750243470673091200673250951524565152480988518988398273071053555769739332438172095212792567533479704960340896860709494812799646700407174010839142609853532364993355685595018424629009070846947973817498441586930553447978801124865215033898766004145319763157089749861552849683022448837478578702627938061710103327664446400235426119114213972684690250370986059793257636600050656199171564271887376792145576632866352833939091330315963352612228291070524327887669315048996737996278581685708426527181056844024682291251686068277057214568468894166264953872318034912471096686844298168611694736969790586356531007770430577039582938398739598100125061704993649742687650451681209257000672513312970607785140859175749273412968927899579115597663055854136720372487878452716088450706792143036906690051523955025204740686668825710928590315664763122891940692340261852952033870550130540338326376899652022311527441004974563731460452147122742839290904759082899315185853230119177131557610840976452575339507080738973698177667032208687018515200982215892786877879564248248358956438156432376755073710515121411616957749039831136206162404117755923751587505658271998642566822735830791595811794899024426369552971681255374845777753817075551851656229761575955434852195728876462225730669656359353497624208979785033661170118721905978102525863226693217038594270763457753517984861728042251154931178271597344739035723906897879167488276167699114726384340937069692803162852497921779878984357131067311288502382247504712587752714268191552472166274176608754210892057456047570651863991180673511896114078355312254707791797061277018861452163648611938212695043521947735272023917104646263541821175750061258682313805910295165576147044359708771763349444042970519733161122885484891560182776741194340362146388034936598358844615907862725433239970242040789382825758293607534611542044518852066595327347757476568680928187424896096110772010347473264410901258172594467869305862686668154194284440489830714564040465079761190024135988357688462016502085445199544819625884156116020568368779246641720482461014145061927754369564031798518509382990430976665656162698672339367459454705232811458009302924602330380031994568955325362850260927744432193720121670675233674259098357512635743156961184681558335028788472975143625779698226116032547785167415942957406790894596199577887339061022517054519137531372101994687455088368427228425681357604350001815047212481626123676864452358372670478615946107180665647248298414028296699531332023915771438032683438835484311081026625435093806860399220096848995390052968197023857437002280440717449114886051618450634092138429673049906422728429618056164769038618593988406881404924552561991338771659626369506758415459432179153741996863944657485748977834688257787707310308641999573517604596949811720409210492528880420902355667046315450863640143644388335472292913626793032982084278962605287123752229796610259286975060689826547795081202593180566390481218443230664778210613125018705477986475283259459862013354708453472076100665340621547275944007069158028756022923391681516327534469921535682578414729814347205386794709171304087026329541168895702400389967598367244741793034313520496354767657342628957565844085015924069056133553558521541245132148124297927544895482152952806406613266868504750322219857607730548990838131363126032780335022854066889141508806495709108456665601887263223490534338109088743194109237438127457908019671044002337772239628473626924485596225767456598570781181154061777177791712715575696981105231867607789043599059772584931609550289631767993335548694535442856601022266788740504903644377909502489616249898643184904661654965200088797638496893836298699335639282830849460339061679444870396319593140780042987761914563670332278526709226124933347331907290039297069753521302766814061151029371800242062355543296540241837641581849807167734446585370487947906124880477589760311825353431560507126107646211697899331631030573143343679271102039155730106914855018998182584660940697820344073245799812005497846048889434151109159222434575029660075216035955727508081078122115144300960045952131710065070997837096193874038126912249048027063057826602559112084870168734155226491514189940233021547558552148492188214424014629815769646655509678360363449312488064621657607005049437440303246131644819053117341571875521242148485950230027948353822983252752349059448836049743558269762061095015341628516860057966718128755966413181839431796807925491947681509333598519908282555904758387475854282029720880969148596751129057087297553769336098756881775376175650992566011071993477655696207349654100933621961335219009486303271689713764833145832567492741432286896094089900803882906441258483391323307094716853204496079478203222237827818962041934994153724430291755399893742472891369136500868728729262158662610254024009840164110235871167279090797310202334950697525929766491289702200949534227647436341666537749936555684373070777851116583038700992953892527171665706867967432487761119079268894187053906514464763013942463620576635479364134509352415598656641735714882629651105117771845508246925861517807449982823131751033293864039658775807794852641422342216627568153173993487944021076580794060249167927815922019301966150735124327994753908253873631184301949234298570295202123501271322922605762068402893511205000372530381448395116001627702353101443423315112742217434701798357495880808419870904754728665314019059594944547902743328188608126712095723391657787507718623279979590247911842154854854012899062722757083096704496364563117234196059232775205720080941276586395850547297121225877829695454391669972779559456540218778494078179885422505237940189088828418498226002536913937112175501578715236705874454274416466881937082377493993841134094300384124906288005721853554353406393141904415376827359365791122029691162023724834048928730310189363740668501244412879984009390568571462708678391231042167290379090011957326761295224380737312376646305300762139844601786330366488652584913986937447419687967342211936268216966034774757128935872213539864714183333329602724105699832628004960899710781175306669475623076477977310980763171927997718828734342793436506738823917465550625165137242996387404434700968221392415674810235421219070479875204087760044007647734507400344740921764745663428761560861024456493721440974698932318930344894977079979403361252776297176383506111977870084462094124792200042079212829547516315869062074958402168455277011767308831884511654939142399625826368113872445603811559491905552569611190089755842696203929470207860732713408015635347503850683686165976576591345057285046613258164313109571988020119382751400063295791726119905003605644003221246641542716541365371079239369360044249017457653190001639876003999758869080590874755101732294100032122073053340018137511682677916437651696641222892449829338374812855786221369409871888466897499205844945350609415216060027286182087542771813038026153096277611733575944515730182702253674677073993059833992771312595409671303885884190880800987010406558781666014038220199502835522651731046691786493750333005738504978201879207605239138024865379356452232405835963319229929508048615492500064833972670500518895561997134934706929392754518964370205508568551898216116242728284052073663783213171784697221574815667049679817197040072765340601103170221730295650635369711346613417065496344673872458112279870543780729462739299070022942891725007744932661312783577935773063234978026558150515749499326317821062813970058111089569495938724724573206591323891121940444354213280729759473911984307048702540891619587156924963277066428933737697141660529642435132133282360796019409871467354972001944995531239977322621069034586936771658328712374329303768912003873693582065946976547865459175191596083989226278216704898309299741957879383268676830954160699045425098302794132955647434945779561122275077825912290158856406697188485393255531987606647695554228888255640870438247983845150399658036794690311834175647360314844975189648958989743756871793327840393580743102653722719027514890760831906620076459416590713180387901635187676960655232147760983955193958681961501532549456181174404888444050984887966464588480067177088639505181122827726050558001599251527135973451068985297807593264136996985783516152791247149639807282854095138416026870005274578009566536459810726457667805634918625571424976548580608306214282271790738546559817398441792492146879596789545994509830411650831730036966135401536907059419429012721757193571825638738346653327536312761229865273536391813657564083438706722028531546277907571445051625637082286155195306566332005822418682874292746309356717686258679980105289223542002139901809009988669808525840140375817612704115181965547789042754986058900595661040573033809163205285059554299460092929781907611916906447978558954925637256566471792081635765776991384256298716320493763612183936015140885611252675816882221929798462278600733430432558572607935855492340788483822174837887453179503961989569055568389005267465677778712590258396133622336124779098814083869745656722594323658530713490355622947208688912578815540175754923693217942789581285073157086843670976293019305051176766574268537692955078005344339219016384403874863798558836855028264199186474299098236129052489537714585835402832532794750291637188179728520825139414056200099663457569390257402598279163653587540194202008583248785676965355557476314957358690359253599062392831905611840241552050213426851084903193590434160168745194317855960261210999494728365682868057189858271694801127381552047831271913086812542878779247310248919906939847825734719970047048844478425117901281191072678328247176366620130558021590264657080593055008746914488191694305544488222648972705979525600496778613201032339096531049127351065208553805514032243646254594018985694140068854475669489860785278793021230617029498533982201950438266067856842611130639835129387549285284766304926647515515085789338355561822776452154208886298837129622440017353935254447515080870004563726860892310033252910869725221725259134355421243917744224823635940372852321015692187420050785892055167544515637519647781541077234594736746787354444810494711842030225028072007606960145431952126566532892168513329041910112369546099788382096939788858141113517197989300036230323496791134064286055613866103020164861925310678464797679677318291731974319036597924222611647608466582839839958164274775040181236806045338417106389607418623174580063042831761945573456544423281415384386240958087213435973363434327056703733365593021834854896516519763364656393555958673266608303487230793587332803969485932808460748657317352418321096513660828834778859599773028858881367814237047320273589324092918596224362719362821094510987845912177442640336107516836317759961178895485113534348078836550394275625383529815268539748501875426060978291912804418502792368003004503121709689715117139341897666069064170117203552599628388168190487190772637767463932421854279822642830125397580206826244162764902084194097849195867477976131732632221229899498605098765429534646344392283570351945237000694916540160782198877390357502323773845321344387358200440406882989510312084011270838334048884264202038369901175916537157884041268465604267876457579464729956377892071792651793155975321040893083883000827938119798799869624624061469861140758337041167141898609651961547923776854087532346075869161187619748289989040686825480264665801669471429391427924602865964699218800270101587008045454598405323353579867607982128445381633929244241933109784350165324714175835198519556922466548556312231240604390117518258312898917238604870368230348461120319872261926372010328058168576801828188980920224493199456527363779827615885710783384417495660255543132660830505228209491460295769110730311617867148475420173726104838534566474362658472147536855172104118920486730410666263136568493813933532306978936232815913419035267807592833082204542782249357097371375030808176537403799929598307686987960946649675576665488614291693933363685239866757758647817029103316634631260331013835997978732322563386222944872401626266111880803906473503471718415473333072182129867554024422566127818758834705362627284571938369037747407798124262787679747646561605360231425811166793720885709491833706516798788225843098287521833154344434470672575629707345160699050234247612986347076457142301940819861659526087118450160446011868704742632757839083379917845792784567098146403536742287412651402179655297442502410221734525006487322897393022639872672481646104735639361464878685646258350292423210739179787680084105227394786450420191056776968673803574463888924252391897269446426708090207279295007382230302250752567283836544713624230737035595109406819805785927599092412904374709389748045027294242891032071024651943306348993444018882132683780356937795444013371649108402578593376107207669126666901741611203448978406357674137410850374886392125618812356703256448343919137015862923976097174676743536039451277565654643251079888360858139192770383787596572303951077012877492387051596643845581107751131085231135062575289488532745350944193868959908281531778340380930554155002533549480561749001093026895748625415447556766800368277482591554134405606988009316502815723706905841106228317891220037058792055564088338295648784214723654494632404508247412292259005803877143324247283606883312724789014251629163164778195955295499769612606480234351462468594128390982951085057872196269727000766539191616570546263722564999136819619220245140783893534489833650083934049814803102032932047449993177544633519453838587820929587088120561646848166717165191978683496101220087208176332789071885275947704116140082097894347445189457526582119870384727000223368497436288561705666955146348048134739440841494464201769498555560784627972350563981246407666421500536503551436875261442974952971289596333947138033233795243550451741952116742687822804804064304336305628692567240629491477520027986511918694132919223861203835531368804872725578019065935958473517480777487886332884276667659955360975424214608717333166526917433205913580853185936930876694276102723540692240949080508303369219775698046470509557472905308134957697557455445060963964131473813458180698710904047850907941235766840326419685701378602203467090835257449365163245843571751148085901529967887640485928901511230332607785883214934175636736418741080362179883293808384276562984564092256790334330571542532574518152690444510965113621210844879389935113384668310463252880019172386922911125553835715524182897332971827094993931818455783973201842662189558867426234789633035784163866919885932855697030816743462030288505251872830814520377275600416449955921190202383931284380058258395959739312042274718036241170274269836603448796761978207590963352774804654411057401613748099301724278722074366374278920797611985113209926686265718647158942416358177572864135272282897664584690935241203554443467761094137777114425621657621919695316862855936207125802683421203050970402945538313391315599599529847314235090898999601342174215224791338872502980062019503246741497965926127239247995310574029504341285385505785481431008314555787010742382366814047195247168149259588249539447641193073958246043737112914899462520832163159561978656283863426795828496884048855152583249486650933577859380424502149036321332122564623233274827230756646557942349962640862484666682232237464345518187110420805032650140427797102587310528845121472888237044011940001555080241351634082965045360146938266106632684972707242334248559507987447464180921539090107323886289126596821856739591693438804492399426995565064346875252005762935457091014211209247515176882074669333476750672328230841296421824434449635202688536018242111170585754359451195301808229979165767391824124198599233270386070122366734723521061499863643357648432171880784461818553769037034615090448134092855495259085992159581475216946917199448687341732659680505759244302517413114291640345190269015885996867630467454665954192508088784513251849104524921176204466334324695424495771508750566110296131440798525365043212603520159847542010496104166107701193267975059914147970114395756779050827098687683789898700726436930913761881824953900911836047618113867528699114042021071910381851541453702136281994486164380579845362214477215998050809289528058218966224424829676622594985908922259894294339620275967499633703284555086543403866536814122996053320549538746329933016162405341968101847267334357389611447900492114385417792299622484206340246944775963773888666511641837730810773196664363447418087937117988459862978759960471910972087171924420388903125288527109708278546056059490319010874806603651030437026077907831182579773568469849062151285293262496222946723534981899695021879132887464275440938012725001152148251699817848435345920886302989007178888924189692961217336909484216712545174123189972179276552764963787025538441167619449329385270660569566429346427730190951334290836613361114388385330943832643603742647344603799343785028431973569478326830303199322656521189993144513715803649641340410119016099767902485624897766528356202776364123545466380492931461669504438803588770843697765318138214682874307934857814453806243416737284974332880415736602051163861964408177235115972786557852086816809750270448102830835466130900354954551388099554566759738968446082313920283486998863033666418396978394483866501547920982587056402404230029338972384521172858876909113994950835862191814301878876287938855991251326270012412068823081873571936448967327846353391149580936933134313177628569802629179632910069310550061615145561477578906691799390960452042189348770604492289892469429079676634401265807133035943272934909184447699004436370600214265487023037332070853049066744552470985468420590558748661602820601802412842023546449030564846085074440432619869063049458962223511934357673279995694367582563474128808425785157355268557384813266999847269838231646050733822572086275214483837273455967738665576547712851486912588007038874331450002834995419195134523256445387769111769077316628309244244841070369499592311997032947257150413634852973279309032445798410846760475304918242808277250811437115458211818524530430398207000499371263834251762409544202445220925389933712564633331067678473439884535558007636694400775836836210725559561679556171198402658685920220037485843281287328327639299756539098843064574825007873743477101416180847354695230652410148842319472163193853711139550554851354860710771896571953296851837302365899372593769501686942775081525633399370419697250322571060698175046833383437683463251859284162803250688797708882918809343543916817948012604382562140493584993179051019675165704406536356656114063604217894329672755016060450715611728767799275396321795877448458489032765931908353680853028614526946857461928410379770450378650164412202975560078367485683038295176829543840164421822373337726971319110933723318807122575471394497269078001555288338140907432687542036655347587290475728097265218272986676028579527423516070127595946294559904993575959991310469787409682220663085923976188176489048069087464624364767394007843822465075545084839449951564987139078452356631293348951879691858402215802296042037690085382591866810338014284760007699155351672873779033103819162777520259761911521310855516541965754987774347134277427376882045464713095678459746143454769189150112570925261383365047362484798335664376094175196647883246100588097794996346036696723731792292783526716496932015263394319535039732221376541112743583637910339364942910812593395768054132014725037234961942149967688572817112365848543803356358810089476472045876952828205738912605192272051281315371290990578148972042880059172071584228924753682873095776993603707202392042685947189602807182755862511429371161432318360347619282234421921635996343940085223829485771235132153977324914581736113313716234305941964798896040392343117335458146385484165161187283636286227612847303993127900634743857250800922579970140522220913472693296123785371576199443310738093062079478671489149722667850524947171789067804110069470862159233409798125205003566976265525146237926093938486478167546677191754471094359652127272996046817741816298821025005205156484565349482291353922105528007927774471263756157870695343335424710327218938979887636674139755894865095908703960131381944383955327960508403967008461000139063573140011241058760184321837870423772861940800334968226685273249597801443814881019744145938092219733973198378853119218249540791065130038391410852376561390620814532476960609201555904154094317749384651489495775067961967584605180763230783910002259584359573408039683762201553524229351633249295896115536902743934394995916751954088614437229546096704962940390813556542562487538990212604699980111820704934774630402554183040208479046602109888122172587689085045767150891660738961071700356333026343511100753811279927334169574783406389971912568524946780647670844696147649161126432820120278349361006812881975952056176794345531622009441007505484617077579956168809595700782418774907030890933232172614513538436482522672879500026058595510190984650161066987025836819318760127448754209309633365991007193157272194591741477603879789530287369398611036437020966884166075320949969352902987441853107180100350455799522649418609001037646599749613491334157503160237863503604989875619507440729022725907542808343594077118545260667818844337169288051520727749011467916288171660982432194103639741765847142435081474518403222368803498880830479513516129566902006028333218786292768230846362654575975495740132128608133821364075988911127319163971368755350952428768526957776743650843709134558525662362138301759397706589679364383285547734178966041863428482015316029862912348503482758140039595643238227309955688100040397528465309376949556001706351441111888128173665141248218794140590877415800541210190763454637741551831467633589689303311345785961458846628586558471968500373262118611181899892762928688083605843395479240698084486453213192879398935910707584567612902400381572836428148150033050305775555010773050825389047850576335539839639781024496904006750981367018188848596734948525970379416334196730028884231173392864118717314709054161077227531332599795332793034848476613020646945743441006144639852067925892428963303144317585347635708002873435035564263588409921465089970814229683051632541187331654989835259496370785717282408611290298024431291396850450920824630084957824135424088733184831948080935627725258738795769008136322257542043083628462206341850260348700244654616112775544065344576335234833287607648377977097224038637500503620227698803189501875397992748274374258284040657625168855689701283146294419942880530273762771386731803772376586924565578183208364102000202442033047948620283425118278171517892826672625569778778993182143620637063735667097803079672076159402435325759730196434640595801613236278361041521572770454025853326127364722038790537177400499687783666077131209476437093128430977723278768993522484760938230436865582992271041025146102550095787872583558296841976807848501971442055276470231099953579075142796743062126617746717496250939918695362498759272036143887307132663216479146344728697784411350996881003603209393628486422457637871756660785211447863683449526489551347154786256456464675254267364152292642599637058580085267514528775265482246814260986028881119383580439541802568541877473580121338663167200055746511476523225159566754041907244913374239759777668531814048927893228740769988548628453892137739623425707211639462811901819182224625053815401378234793616550900590480771141081936943178821606603884915852373972781047919810291712921399447714101015055056702851574414479255469494372149426133284534659119567438868724437776624096766164529515003632064337273367904380844350094059137809174366128548886435332689156859594936363049462239661350169989667011464547320452912595037440960009477080845359458053060472772030413935146124804873527482093112570729392998537409540956139562481779405827505895396137678584029863409917417973162993984383559663261081425464520595339321634662982563063388994352256177355365434823750076611338329298120680424124550510131352250283602783679843638209161124373941662684415808501748315227008025962848953100737067608776261268970854471337672320570307370940101370618708181620475954160201868058978750052579370576866462109818542857211431395758488538483823349311006828026391599113586527977993255268759909784424886534582986700767280981073157932569429669451835563504145569597238437103102513389536111127899890576911199028207955934667585567129297792264268363429591891867462644991475932413891624226326752938250454582936134754057853301900723226255857830585862640774064440469618684944438547486103385847777238032528127014866397624401667161816564144230112325428266004128326863695014836702331417633618055628186907689088994861215656948314873251167740303761446027943016621673049924755878065695587319169123625475134987976534466141836987293884928898879837288597911037940394175056627359905733946836112027227399769711606354256598376213253914221360918636708528639478934688902184430859371693350009119216855856727799033715297723888321956036169374802709594391276390240963089329377665550303449025626139857778396931907697253691915430760888226091339192554271302252502783242695876980451359854139399861490520653952270008204905185467759759765599135236513515992492019505371015053363695279748376357364312227539266605520117305119868849525855931500524788645848202182403215770810765802944447203677441017167569931290013825643044583078022828565131170499625695256862375127146196834651030326306899705212317076008692449278005972045189049953207098213318334696417420094907642449168955358371237659264770069587777791101783454285159853445072302865725036878731216222569700983168240127015308480213390083673902780230564006743378928055799885312907262802487939316929743230140446815520671245167125047492757752822913162303238040106750959381862867409133609937869557659553519253663330435419336836004700415878984534494338535528745480252554360751646009217417833451577892032181146276559144755776158263792366537511394437696648766067562594342554866296629351233126024185040499882706032156714083845029312209725337294874892194247245742531556460837960231158589000667181440827888907627572476338186845483143431382678613221463421520713430671167131375595533985123133586669069420217290608746435892287130627207354919880643801176354417370030296367451541876354642010661731366979401802011672781288332446740329243929137632339923076402517355661943928616953378317283046717005553506235481052972638788557724603180323400414763829540050832262404614575342056799826260626153941277526281334435447737229277321439674320630247103283338823796556602591152643658726159581511414926554454584809483509509509841534068558883009570010868895454352517842504681306027336651122364901815691117418070633926122044302988885031997412368599757767634171946152282896119001079033840861301624856622314405594146650157378235038433890738668089253863832768869246005225950707332965867543489709586978378681339705387752208420681107793808487565283590036159812527347525035976491544593086003651757796180276507019045783052733056183202807066676654620590780673642610787742068005595206662976383604054323601188638349996602602832201421730022714920553945408550324882479250262773903686275546579646255174360553738700440161128479737666963866939472621494447220643157561590555746550489454571447995688348214991106443388651163104377558936372393055016881772162936909691425975726838790303863764199414844814683560485756658008875195634867785518332923927065450988078981837328043295580599712923216259105261904909534140604611937049669932619505452756837384054697902578149271207078693718997611071899600108260593103560809222705799714590414841987784678454753776154602642711207145356852227264793668881611920975038016402325914597310252094011728610443795306624642970450686361179301966946775207188007127094101052652765548495896797412765562260979914607196716697960780747794221917556946046594047837102369646043840533726464773877320445808579788317621536129767926270783654016000550894599483233924643986693108960887282994053983811549504858496217460428304994126067776205982663862377208949180239615520126390560636657487206765496207667486149266075001483164550119725746984869981043222496486753406044128972086428160291497816904714721353512318714527107835880157414078398009288556774366354907538573384412797527379768038882981184436644210850499297906671719760569622535027583557033496804313094831972964256117217880688164484242653296954421938001370695213192632310457002135882421239204759600103996834197845341793941504273744416450676573662479994547413620907520532203729810645816038309178035131122150775061731279254074310661038463159570885163793802061418772822946529058321940521946514121754290494842678999248731395968987471680359745672256978414046594559695905312293054621813830723357850935440673306093941607688963783426884697324656294286801636833170304052671341982679064760669022828522431625589636645125559444844042605480329401206335600866393281291469738722033894371186820400175488563225573181003953955407160642309900139693606414834999169448739784109946189149290535509760214840599660230038226048056571490569565820945568742029992611231193871761656401984659091025552031256476427393861355042428175939048902932763988008383887543853875788487115057708324173677891474440718990612679648893302451634221950414238205124796224764826160437439698619379592765613391750414273137580358108441671438477248553908991717938093233502717070846702523717464003935392462322039302562869419902966064423375318956291954831731139490907121496790969330594560910675583757177637946835826689434293542116567224378359085271510887697871957533343425483800465695036227004542434415862298645081510497327593380549872233758809978812419861646605359670732531478723344195768813746712041079816379278097400825491113554071164400055639693395973789940290551838205009849344589632664303450162629485443086091064135830443199243059784722200942985878734735736753366968783378965991449173289033020094177268538350760501696958477837351941193534889160885080119848844863931429973436703310409399395166549945034957920437215633612979633324601278207108352863308231778929016582837234636535986511219850242537297499053497016618643761942350783203718453183042559355985729120822816956893006375072595967607291600975378590469617623268107757668055274782528065558771216855752165190732438446029755607537907143871805677735856588537086989739165564624100523566362278640492707736843320957560892132825727725783053977155639500876062722982056114144754533379460878798779039330604660111151721834240707930575716828612059422528452844154959577276988503076507803773273002145918753600517061615839692346184216692472232894482986308485318617822176686536597603728266827737057177835439799389974112967174042824755849078103224900517239387305589442021855799927304074521978756067735950776038406053492026976545340427186639106168716179599104812930511334844568031882430080549520671480468326068934175507124204851025780383004079766754009553365812737738447889487620202828684363508450384119800596384412637914087732989519103399941048499308751368519959424244969833399351000148411669270030587421155245560626266355403917886691999907828846762386209774471850616066433661310710151525857727184990566738312623190104402374239759038915222620655048481186873190732396665717399849225478233582160723073236835573954674938685191601058819074594457599684540087152084282907523103439515165565747887051116596759838466944101741224087199745733976518623820656051530374852251045745119218046909124310845239118906627476624733079273119955237290295540124702043152300390308057878312935875142342546664625836405270712787297307633712476133223589903090433788791643492914521995752220373504402091225462466141936448256496529331206218949687232440620764090462104655885990604059667519915774534577932760100674582353561808813763941772328585980778282094516014302183325802336225048246332536530952991119690728846079827212163562811875827890792131534303658214154155607318671381632314047676521952332958851510459076918311219012914744974452904438834109463728800485302629369311388700904665066501362442056319120835767690949591198887490763989315082324119215993116684142852939883387806271071897989718707994749673449362074678249525411303845327724771031195348027944411177780879103489394509155542102541901367022810442949481128237407500235578483558368732859745953965695009267822416982645653083024923452290821510553636684023112129095152992716379148890519897598287586781930381562350776754088285007306349170340500564226065166760725282863296054157032027840451595132603446820714235303437253353817024321051585679502141556005538201916713598835873234502694159716405152868763352273670460633879537828999788403369263029612715630247513508556372376951801868510605897542966237199673134816037670250176755921245905579401469696605389537408275604433995005430599216213544432432090887417531312840436219432729275300371864258469875390850025513693135833083190329849384698620267138016452405481468825353277043934645395542687944260305608219730652171958617882859986533861748271928314167733244730848649659002107313749720443047706415391087230756969897341954029468265951226003146213108546515017673800671932657654767805112551376458270839149475290399414648068580681908232092972357200169664155438084452475936982716770405396288654865580039479708632381161214600644161004699926908287625877517381618690891506136606883292047360510863029883398881606349909351256047042676850085912591700089051440815997147261639155828903363877436298324305131596619496823374756492026246516140904068303016361802572055052114798474945444360957734085331460156533153625656141822736345209557142744384609074307930487466808084576579796704070357134412924843682328479755324489677193278169558207821866917439134691792939285840978856593320377558662395067053225452326449477618679236352519003540207311981950584073963913969962450737975827889477283755400190649451571223562577054421587041267712381988823390711994173151436172959354286688350458872580102547009145200470836861440099180259467650074781485169359579261419326407622186473581976637184311435842757790857088582424286064291916835778929009923092998076179940283184130342556802666452557544627009096118367125182548705384146663353804600443436908283545202408333001352151260378565464243455523684620284312176332520213122979878593941504701401983371830767222948894765236243067733321644324253226609328003661784615353280689056232253777863932796698659942129342420147793680180515764002766269613749950167150815478798761858874127825888511908440182475424619836750973929982706537134942964671167351065665097034880828170714293411397706773447269359108763918589412899225304966235673319083891232372687189233267372631070877167954926386198903499895903230992247873102922763117595526864828752480688898906207535156527309452927688724550407284045437028700242672529377720950708228768279252902149212603123306947356093440497240758857658804747623838629144081054600851093217304262434912254384294911960520142625052798042851231301381078316459710096444410280716294923470495100759539720518140571934756180466812979707248785264714933413151833884930842947043971098955326039747747015033895984898915247392827170939870818410352572788015739018232846750603844716483883965865416539481121786647910985896345336719168577723802094262641987058998641221841116232500341879356079215117184316371210740604625921373482726894297490968687311465491312407285676634144364794763176271109749701467810577493419451250403286532228099194665755909042336270507290327461866479268809930339820092570860855004847836403083953033305906333920734057673734636264473766863502301425360573062814813837714285061746388532909385096362797149192956558517572140519263408282913550460188551809771525802967906063811009117364058879930987680283625370659644469885094552006773078811285513560499340092444891340608093565887677172182675553108942747688854567224555728237960003782255493445794134286360318315115048193116744257623675031943296569129972010900242618427741195193686020274162709507895492244348819852877213992458414986664601509230258641636530054659645946448439514063594351015048462580525002862884415424887865040733249244403838216452294830665790409158694834947763231456191234161227393623259224300430162610627444087336211018163835530146886173166598774711501059634944821115616811989621565824310529083648904065032417968766109220141631585013325278880816471978088566788293776378729297318335521097501219484701582848587740949540218096623918302533442498947568923820145277842650524513559610955307205786074461860845500501838115520192275850938149301903439134241155286202577251753858101410162420621245644328053508560929561859890820603900305788163813895286461965035008767690013910182998273391508210155231935870639129716867370894345713213447831083564187536159498065736171038482308798967023212018498203656628889911159700312401088831328963627935191799930961816576187710842974741579353126188722376617895783350967547885841361540783908125507643043301916097135741513709670176033943111357053180448524794325306499581578562770197744544098203322001103902911538670819938282303669031212030580852169961778224557345912529003753181133080294948423055916134274724820745860992316870449309686473808300837593959196202961854365071544216734618722815541942712069569674474460393315156882851186880550472186521822393879398028112198510164755307362659328004554474574364905891653769329104075917675671599209049295164467501358136667171477061259624291873376990646576495919669644303650708682589672819301068924799642239576778332918537403619009636319645685934271350442440678360547798638047156857890954808729189983651512332508503601251313402267341006234763541225478016156671920935768205906358720560468286393313411568708223516026453565093301021152388292557745457652623066413150310469593969634970957611798235666567573758729583420831143061146659118367073745329663037400238965899917152656769022447507593401718420115672182464118602019492705434557771952351324506194169680847094435296147999158174652943241301738390800338627929915285642347722645141939718551636930882580962331201587116609150338735911395574355905438163449128675159959619743122320721370678814666818706226735681337702943662567695872352565683683249246133518619968090758325624826456503651093972592120737778047368616094261590264509843809854990337390935477685653703490070706723153686394871577971746144730925653212710455508216896397614773609411888150977619731073195038809101879495193368165856608355626660020348494611666221974527909733826683040089589744013705462847072627306029238947399007190555737966288954845269367782150236567723282773576018716943067687824188507051504352566324269469576807669266891548506490829012097068277027881743916062749746587569328399992081212543173969575684250921697933771305846643672043958592117301605729068732756572914606034856444252402655498248344636268901492244598624645153490326617616523383220053452926431429240633498812991068669412637924540218027993784311428656956463971594742263923448673908333624153545392980779063827222471218851664594651465132827179231652354474432776483929099253456193227862104877357860959393977779804676878877184125901143410932857862446975427654403282708852226866875336174887584263294404938150023163833405991205907167177793570642539836010186198712493661734008135954647834892488315139273418845982986606115311980530349878164817516882389195065802539724822129155496669188560377101506911160325184425228614822455841971779142227076558656826461791709087662696983052604047411924298213185519744594913865484051053403559119073385383064813220071130476767303988200604172175634499197184717528560203583733439462276579398850325955765172841864705122662273100507715664940946780296904568798833224402697931524039056172049605780506957095522492143119719663631165195252633338896839863959754249162867634958571737191115084113616474675724658070566966977410225297361143187227135633412993389846513583179090098563229063599155374699068987304509691593216570005298981558015764343191438746043155109662465291192516432158635450298587795588162819067692722861051877019783466337406663894509099315329148537948204977022635972236310998794341377297877877168358847131222784409638271199502846994500995282680240699727931700024638759403299273456613705775543408343813798197568535109749710818104389767033051771368880639414142410690376465390550061790127763945086103436431585613617349755373715091957920171526328911682614059502048589846441501261524222775734807125424206998103660408737467628765839601161220504271580027524757764211956887025148870121225924856261150695361709750805981129544076772452626518911484941646195666023256479708523169183189096065120923939261778508445057453243720157296143366324495543552414842669760112311429395772893754532759126016131886748740020439247952308929840106804962110162993223555091521045909417048838133070269955278850618587945283314574845279205323348276939875121089827644932815459619945717285688575185807953121088312565383812987217473589652417201907635596786346478432788984867374711683738259236689950082073025362921272034746406299822633963690532760892005483459308322189781704487835035238987021228099743801327038859285022201952740690239113685967673935133933980890500198480190846051878251087151584774892059358125159519445423913384851294161943540348542425642569836705753439515082043575320523920253124058673115490141450409766451034444322345494226447265907971819200155104634711789878878321470094700974678408021685964608036449042390312462936811241359140300247388390552451912797796685869885221582677891941488441600134310867312131647682396497806786340658054295006206679590792481338821167389259433857225200847053294671827906173209512444282562543121258750581921719339334426070917541787184685591827840830614366926281267229896033519469014395256688353776225118985447958301921845176747216001893045288484512201825374419870648531079755687518819075885666934660922907687684360480770939478224333453559187144269264973242042740384433220829557702361994901394785857795467966923004541841206775367340038843440546677048293215839942590855114955373616101517089759050135034016773398532881141903413749435173222672228577900849982666313408777227824571626328108703232025858477886093059969731388589652522643451233493147261252035424655168498793071613036573770018029166720205387129236684160104148749848167793053165002154869662244680625092793163613661459159782472804937474416833029131978024515021611880532313889016623058804579102980452060343771665018155023642655941228144315451377320955550332954833543041279196995146311352532554250705877272406472597133148251162210699817912526917114448185954325932445869994397036966062648690621609066235678969700225174385555603003823075845156944260632430466148466743156222493020484328605264121618642616330194512769075101079283545843637943183006462104012743283989905986893346843013963434959757628255347488054355523656978385438586662511460714466816802989531405794927727290367758627951574110003305867615300952802670134263314923873341266362454330053690875375470199942620104100897665721658724579140434904831100187091554740096860273260901233656443307347783497113217148231658831522368319240648861868222516160411165519306158662916670674873967425618606654702195395659386125545641780716268504662259560410143628507008540258737862998763578061113415035193480849011273845655209030039013114030413252863354372183926082595004791598094789152985757142823837203779042899358764186539337739350666499329916067713581863535721954245937116760065813491999493220952730330350514417996792694070101767553255982258909232583292681063389677144022522938772779217294164588317903801505293269022935347165125487989427571687663787514132415286985108337518824263524082407238672697969490421613018189599259228305264503925623941449730628241799580260103688905779469104158180316051281593255719404395125037045903109093956499536768792771673437928607933005770872517490252419129441941418245793361638233910399693866184439588919061844714980495537385676559295470066327708854190540228196914501273434784121460905024886991061828374350267643225194283037334311002278099812891302392253933293147095399382220378377527065930327090831935337312223290059812691764280804148171653081648044442551964881580685502494080633829985337484042890105160870570806703242240526029160209823383782056546396144034943465283455518843615370374499877526896242262086353716725460127083669134696159272957199580315476670133119901415692384734770048166660009462409381583057080198566041785891867532670095319943743130013392806560814388494763907635582861205828589306348443054592189395201749403709281709742938987762491890928037739403466162716998925914679068515055197769269248866446967766961046710843481022481090225824770477151934278238275438302568540734458087578129793227353094848579512555637663770947120188815575449703825167503199531319699693980167170308259592350930942424004665497811878715099064184370867941660220727443367886121262592035848755846291394140106053252479184729235017073842616099336987877164644990527163875854668325056246188645446352916583585832518576724913649894959747595940329418294669003214507605573718553929433226718763311904602441720818851083510791724535441200221789340295168542100068907481266352796026030967465984781345237613743276553612027065848406616692712569593603554708607162548064956145347300770948481484196714176786263060524710922269272696223430697163543339275448358157939008058507370284680564975841715264808249036802130622845485500683707236870813945474317005677441384811985761078890048487332735648252043887713293485321910337931098611808068616065472677339948842473154738287398482430551904318704669906892739289276153955589274079619609974263513554225757509300637378492147666421165681122705157105847138945737178473335548643694096560475557682998308606405334589114403689949491506730785982258974954746496893679930511653095137542469300461852000353468235116389919932621817846186126773703252441668586897822867064423356821651751434279358740241147891153634404857513154059586047782810343636612361227897054441199048674080434513065931678175217145702839898305628267409169332462035208824876791814795471867771060874326499185859937635809200374561933932593032864525906127505071389520611780846313752323227856982051458465935365191247030359687996721180507224735458841130708316808184482933080637052997237453507154432330295864295087572955026245921777626634922888590756777480211610067078324249437171955334374008507167363225685993093190367320644225216310912286205333426060715126322503180798904057298681491466217646754320611531372911970995601606653654403080462099534496796420907635443957831517330185322791826979367628987073158843425319462976415120354359006984908395066877608986202741420745259074249035293467406430952426290102334083600059663382754485791418274209555376464416472886427398970841706663504102027212247331492247376845699178267962209642270282325715089832191808872904950410662855783589122340932669920768994567284897823713661868015813733668714839994456620171781017092087738957895936148774463560854633659141094086433317646632189510762042557020682303313389231278166233563936558280070059159453040313484872550015056065895015247615214811794061872809910060955012828051164419041236207193649843791219321704695719846428925418302577655713010132684527572379754989213186533817068979030943076675152056801356517307676975642857844075554388765847930602323242050478464022828594837258119729522762028671258622464648355670931451161879961750109078918800124513544786916034523456630602640425718100538896948398721036543517761180588478022719094962631023227862921169402651193685986976971322726919374908328893556299997355554648346556527732943604329223472942655035480049844044363511779512000290691685611069572240059073300141310389480559583974758890921034486630275657639042159689305516657568226497563003135413169033115924045094821420552570611851803576968216806171897780707121315255675504631481092758176342403188306538312629791877521218286735435633969994004767578760482438756686178352244601919793715052487215191409045731655296430808924288530664919623748554365306328303923824692442280286312927452021003732170800426091420952951379727338059570199236623697107644934568104457417053218674317157101182059553244679437781733869058307755832940433477527915262564377811999533190647157011743654683139558566614970274535778533536869280560833781041332053888354924553261693596765824534013948088016440566607200241557807045712317173363626901999698614859665623114323603397468002265155643405070544225339344561902940202666285271627075449893493768023644041234117759372437669557762791919128015548151207535346612262098202055555272961328346056132426125724562188745548956356350873254696661174104573259162706884894808812128229436536117540368464838336453753964496480423608372094625540448315549753753373676017429898193013478041835604003355244981403936772325006103292685938187012353046431227434923037400290815138320209810412007315308989239370259366286535253829577211855718967737755675848687886637906191764410579731714599312831476517308837857703658106407073948218821437726064568905323225164693513262104773813012384019476696115209626980377635739695125758032789681827405927913833873853136763121321563532855625920113755734611100120158528298486530467370478831440022093201562239946452102631246948350526530196086482823961515421935736294618661443039024239257702588617263812268801561965917043235831789813724030674025511228745690071194042807584436907258178503406333757354850251253904870356067219569770687060970054187558929192375166971433147184512994173634335282678106389635445025829823297974160486647694326631218955727221021514522951593587445641048133582342180427224392945152818582642300806695110582365254434244897932086757716421861522524087359975221708324965194347581981283578785360316529545193499041780790476851888326519033836867262862934813316279839491074930671677587220295522561420860673866878834824240631697013610402609384796326043118720758649559678083831749625157738847091257476963030203498551200658677996683946698870474689052021793674695865593468260782339086367417625097890150956426554801526176851011432593854746903105649934718727981411055117498475839033917404462384969124543102297021245571032353969982528381296385669483027846080514812883128683942108690319633721817231612384457067755116644212837440859158028002027640698915328117522715468998923287540135507663889954656719735831519738665032447082912795498875809854281375433526934903322085817167509967629353456358271292583310946074203886239799912008928438198309759163405860437416403585342143621439976633024541925144587800027505594074087042257312798357585513773564827959594839276311118989168037147945776067826574884432919458836850748372866714643830951163660122274666322408005021904232421651331059503445549854093708185473611696793426936548392515550372009786428464324803632226833058667522069480847913043805268911853801064318573198784766558427276449662125203192302164594452709830938823883534207739660140116664290464248754198247765248354490386437651558083620510028662124780419912102442097332293694190334169832710454322931672174202796128153558636393675796778096422301143194293601245624947315430583680047245228703986861504436990312929301789465574777440621716620734364884533923728840833567986533745125030022222565968242127430588366605216199089583212868056379340737239594485126445276848414300464994406367674240253396544677385726855882539845405388181528598928337977600987616452970771144313865941541851852210446409480671194338937104117754855225464806802374592334569557688733459389871747567736207192017613099155466805784651140190763089748986989971048070345688005693640253740774600085757316763027592163897079433444915175866874811326156087651497167896581917822705154284913908471019421470488242599581602122424961994731975992131362393549416436233405508862035220422392065193001644785142267868206125877136922969774951676683005530335970491749592637700720606692612582561477982455777007304765576699566756989770617996148999456990302408710415646361027345891028309033130795860836684343417119717788235761076216892839255008661944615649672156247830362011049235262471416569794697873996288255076066753525246232437539418173622779901888278706709408121641436816461925907293668610017897413812111056092838627407955799778822299442724253188840229956277543942090795123993841406013561518570069274599513552046407098699439800984376659930125988701258157956364871028789661245301527321921712388175505861849227778545673744041006168416017573472122301896818691704115494517050324440780110998467159230099370329191956890133140086021101583612786153171958908137016807797875430972934607116265367790170679067909308798355485778068476840099385607220001055777737717220955397728133059787623132535781909982793418179449333610631197936422279226002485964280618985422879406659403491029968676782383206012585714144253021535345946391217640805660213132958638692483562782478483709206059073585230358230070340911616835805430401028351887015793114580854228965280812550077517150372597300221167223572028358828283512395258217780103389652984254079439267361873048267018178350075070710353079045720797718509497334811884879485636026968852120511086838204856707979647795461419742896260268614458272014393362192341938297400035344307911931113452957555024189979630060397002186321620618664640503771750988499493061256126226453925893789845486818198554170633134802530155197102675142584926971602818634960109285882608780156356520572024629930886763312224895016388972562972109849461069203282176120986286002843433302290706164661960729807952263877433223563168744121236060385908154642120104669895670756867704248467082765356180029118851371033546972121734752110534997629898482022685735724881437016017466328321129547970100953431113060066660968796684320818337095565573506945199907015152813635740790167305282757131939988802774720356327489507365169126423713218899771756108857646307728873604089364818755789597343103064547015128790786880080279948351649238262763744837047070315048799141871708867171099127331855695696932798894733458637806378580888362737969582658842407959627985939575951122252113800582359294575285933353019375268849860670607710749586874088277303855474568234133157877043087606430532698741933512244777443359441343871439310517040423924122036279132037331248919374676669622276413809887357328018968868083313859999167013933442269657256221394271905344004237079069538173430640037615890345192071742431048389723263550329539410401656162171465768390422722466072793960054772561578703430646305623375879881662418246679698266652920061343959906126039800404436350460387634958256313182727100441497659816907690765607013528697957673254547033553364397714293473633176990640885254724042825974051592296005854644112844976280596494413318441999941154335241829174811158692761034556448089036599691425906048707917990752859424021720189378856370852301243651220889260882143584248635864128937559786749558568286216512941835155011588818683228086769223544768767458953188689655818279786756214320448431319214549986802388545364367911121957485649612926190294809796683024870678377042725282597037397098804638396496888175888151684691633758783483148955388834850372962804059654510931270018250662552374824502657073145410700803666104558615363901064713172725992441875250854161301851704221424222063423806468210623540542015305537243656881473258947211981069615159709816566504254753851591065375883095098093374090209456643769436743067960452086195811719132712735993158054084617774574859319675122544465402429316590489423258695664211499747846607188234151253793204156605417932212792355662157954995916715801405120518256268800462825980752350962504086703249805660742038882241786735978818008226758525898238358688767403174690955737147405315773442818870157294232080023490327194384604712167129412980049148132661751252035947208718900246560133504751093736121216335060281399866223208348678101816649820609132329144889180602580441616078868823334861857397786624540022841138551218636819610871270032663297315713176372310669311191118568043459026396595598308659826678826066892138606769241556710914908901443342931721386935932297211751430677797616612287906903802136250154881600176963888916476378647330330880528627127068336736482014539932846752348908964524522919325972019039883047488175327096391688862434790672382224278856041765986911743667361872076923513277654371102913631703704837146564066661641534287124216128549421681945835337152354147705601596503876389462073584441981843262161058387207365186896046692385711341775601734342342287248918902878709835363554635646823517430291284376843600780911213301755401632533167500559542328675301199319450467980943484932399556338217169368185204485264787038314819758548226482964139033742471580389217708476482237751407349267677388229878290486896312099286076242927262049480184623024260390777716498647907460133411139528234913582130613450719160925794223962575041241320759547730510869593417563982320106605819862363755467521349177841453443614755102011712317104116746411628364880704482951222803979451150380523638025336503725071843451352902190757631173249992202953412006902271676568154291527221471059623821018465003626562875685954667637891499901171512467221443562487083930534997121237228451662291680253812846485085149159750493717180201302125212265919213340145298183662832721761676709215156595261976218264748503760145143877603938866034982415561906566382685079897156732886927085089590639742284453134339376939143288633404931655685370831728526886145320589077084757936310668448841769887097180052027217047636770590265029127680524785981188181147458067466041147327493555799277818238997437707571915790311299942540567446609518062580607014172148518172923388758622010892079901407428653131940393972852845218046337565960391031267186066684667532761905766032822298751768517860524089653951390332127776782296974322146349803060577383649204333445668856380045771599059576510940276683210444535075620359852612814717324641214266688755288618228890996472830442387914077704484719683428888280445345032770465365956463761045648441585124002127509988766066126963742749700165178885908426654001890071158726447714983278386178577851855534010468247505183088167255141402766792193450960546747903487601489714512165269178751479726825189100424582713016036785981322104496327502434706154756691006479979574709178256991941332837872555803414600148539744334447276047438550151246402506837607841547124013377690580304895981860529227861575345212414719149530629712902048067634490756969272767621767526613811415962975801906690932967424988453309777713540599451011906161879666496747760312389999435833287057971903991392000390326050889161868672708417251807190610815468658640781284217362206633010432822988165196785235372960470745843620044125899403238192335071549726737599557039828518459561369912520447442038681804483794994047332727551989362188314805778772775470073700983808266926689184898061091817051919636163264134331649079460849998461801267305868132749736591396523021960635466162944397228709632312721393097427861235482898818966531124685089032065108398267620368585303482070988502507479796026647336378473952476273229326200610611997237211560481145026994958604490993526928217273815253919980883147075245570420693782479189886329923816985464414561110448114550669638033193256464928562678241016935968419873240417468429514909924930343135123044180137071946338329536025313389956113098258644106172991638443485179384057510487645782719086253645374102526667023672651399534386405121377108561598287077704727242717233008408929887768583414783644986650949447423446680610444037460223049173718605365792786822388945238862021253297115984930199118114780722576520993063329926138661257893753401856051069882419519399053647120591288764486582781980967858208401290890261042207106037001422598499317304558222409830109432160049563987094287901034563182592702504483221372689338439118220240941190766315389720726664262082047557288874939323300711632655191063642490983653885925868851093717501336977147203899586216832673975770188301142515526794854366026557355028329370951779436790633417192937050919980774660525156055195375488945569606871782810759240243989962002229010164108505161214841459084555328592430516472627472701697196761297527512040786093672992757708861272519914632349766204101446896260204665426269384505892024916431692065892294645547487771902946846780445571439031272444682107588893079034372960049176704251606416830068461850130783485896629930972314789842439789560659936492986293091062478489059153957106425170463040540634999495300890858723997554126848161381707993874893447270134389566742421173031272212918897940652482314892266806113391915982188583286862204108107181693498313508901814400963228754153196415508070517850742821018378634103305487256474768161701106906757435493190433355426941202857999815934071467467046493795577112209316286976585948867166158183680099528554807500398766521491019951985821289254629670836876670104833765479419812316387249593666720325238583930460726742687784550198820574974422215401447051968697144566700494401314618588334962809990478417311882630343286346230102925811576492210912740937007956936526767305338766088979939304870280074345182121570098066772805491602379685049267064135072131464854109292784843871683730952221552497187334929383491623817916236976732490042612889153718995136137937051171024774767470005664052935219344134802193523762999852214151759333945222336888237094764793938926127523624359795408221478473145645679829794903341011365761543033912268899258433912927960771950209023560213063748576292436672158158278167699948932872673620053773010982687930949120426925172421690464226686474931777935123406809274884504823664882836458479416650561987740194600392745440431439938816367558291067374322359506125136369791437699246908344130900772213992502405445876076004126262174177957160301704299878466562606090916800189188935696687436633525067920808364418406762886708325083200330406653235409887094180115345494658697781881585082260917154296912525134638496484569172946181985964552780613063287850934899687929202289645178954890108154486323736644911477854516742003306744046141081740056865959673682486708317359256534463022128091109165708467079867876470291068816329657909647697337148388085533249949640887537413618826523880958581716935747963902743999942321824483326184271800140675231401262983456570030974377853791625207426296602229981550696607720352513231733572685526972529736133827704954259763913221112026882271340512118598572829420550509236796745409558021476821049069419148405404626297956196478013807855112248926062019865067840358116766488934770974219104674432707747699488012753695142291615933356574220052187098692378086655288037891464805168334171461184889028745174699056954714502143335322970649674601177968478356209777443936235580012124304259709523425858554920881247797695435595915699496456026734984783997603799190690227081720541290409021628985855441797941546108556740479705890710175718729183032230313022060600636704035380211211709818307017494242263476524460038478310476360836753921973381580196678630486512250780803908481802025550841703367227883569002771260260087588384072357618885387294056856790424363125520237650527153897730518037270721488906787876584601720054878462714751558666029330970602605171773619688022858123096300643088328883284550269079053812541316393643453432194912460284724404170584356744692594657627853791578274815015651810619949790928304756599025308575966096940597275704552122803451907288902296730244066388582717740997486520511361907825260899130098229672789162319478839416378434184421552271605016477343312946310288796488980135522960171387129593244669862027043952133799327423736270269458556445785132818296655151406710800402477812120622753385216849801493691999712878780276604853969059611217929049877091902745311481610752819047730924265193880101171884782160639043104200624115243837491361626539496136170391766339125018272002678685820167199800837645735185948231393871548287135279956570671071041032398364479730075181420146526220346766151268391326907401140812461917934778570973825662968102870687069139639254676608294545291294851675137736573781879028668537791254356755916492162035081234903616861772133882768031176060844473092910429717516620524424542580275444818195186340726514978985474984852781791869813825127397349921504603803236219107120672901788242236362683423771740594268633248169886079861744597390665759573824970788676851397503329279368162901378933933789240726994334588352007149038859998827758217589676308359714018648713654166260889442865537268750468566464772169217357177084151604475503243866254917057716995118383426671400625377031134714700502384461690510360608317782541528312728252190286063924157617737374073254382775374079162947568553007466650869276739495666988200661769829156831613114945752966913811182357218717566347535230021668989829862038550197599588533454002244059738078896019193295369703048022083699327177631195818522425940542713437758190331419151505954451294643467904042566396807751353244082842661279005269006172849736211384523825487912487804563954281226674101915327648586354522892095101534529602989369234774935264499630836801241541636428808283051867574814934671825284007640912418214940777252056970756712335409896288928342026819249125833569434493067847767469629877224932156732749616271977406649876295518174398901405178172330184041451752024475059881173111595491108777081724741117934603177263010920248897774493569945088194928262940038897896535811156631352432840523559557909715508522622616061696338020222750417245653197323974344453188896543027520435313754606109378323351682213651278199410458603439542748478823361465578118243590090644333758918478897698187939751461627231474808391765226576457539771926085674844268088626053657169124582365224266694107468284618569934783280554150665561789620928436351711789556970471210125096801320360791664590370549908410730984910265900134242213753099845712801117167827129340058060985804789109235814229890941242719150973145334807287640240088429605356143407158948845333338483981852431758580494017319327318805444244013456494789764100358337347525162605502131519651503728223070199006152326144273909823328967033413730529722113579226077168645897727403689959157773802918593692539296406373755961512067805356916573339286871625872963224677929347135868928658789737051079418247917636937774195075683009299722615837367566211673765071746116417532566249765524727089995430874174354154504255090406962183858814376645192988320338697661741930167574280426098613109547810483720979439291767437478572452454146515661187546251952570200802016488485181193102148736256525649333341286298623489034936923253765997938657403648494031492207607472480144582614526839471524206586933864059063689181358678958019529047555370792971490140566722731340354403049418470738733204600343704921997482632860484328513409234581640186884344967831734763595176909512706369233895412041949908765738310773039526648017599337519098975556644877401353242323596655146105675840946455773133411127874983309214190689796643544227955580867701961689303604652367079602341110403301760920420787639831713399361663563359003920799777874333025404550059363272555568014739242216529290748201158382980676399721771660119927722068237448805432130539688764057590356448537874312164577974146774426849523286097297244200427169288189802292058042764477384635482992567182201020816421969070608823888588646079274094973911678516883814849100596138259910751650491546410566637680543820589473107616354788765600587613018354113297866350608188570786295380651686048767372490338902750812478329630388416076587303054876358931841741453817461377823945247550253971044549925834609655628500079644695643769205533551094931973662203807453786338653108640397646836203977211819446265824339827787096755299039269950724277204348936113892503979084555103162065258279152874053091155334621397884297181745079735547772959813627820294827352684893565928036292993246978827373216934197625797816996694278088206546032269634627238831003587112589319998996111704476696097648021425367005436239191668835300974625359568409450572166973137961656403188942602136990506919543560814417144776490734966641144640973021499484626666270141531701463886916969464675596320607580670208321915497809949496674062840016465813281402886474663965453922170837599015012484031061504008867294783546946302801964181016252226434252203536047414597729225159340683963018550136310129896225591819870704532985875056387639117407371718984162874491923950441305504573144159659654412466842365222265597796017566127711828428300900578198299209802158547383263448077133707535584996027466224677408347749286707460613970025937641881352773249463377874407492612974867210193588736927466518324808045324638202599216490841140477666186103861793260645919277210117164961629568567303362790698018619794615090935147507269021808590244155843900820648457856991544657698673906262817509187209051502794076334705012995554034726523536480628452932998144230035525769381146658201444265608990474383970295954963040270134674768015203270928325940635603838941304247420845626674278767650598851376519642108680681561628871784626958638699159966197123209941664426180920353809563432596689869753120845798046823082991298345601410726923947341594272227696181389127720859436025466515700089696816824466570483633184981737588885507870431420593322737928220289103266725241393357886579448803700471490429304234670108707571152502475224980143107995753799482092507316005968265242878719934345195763291178969880453863530877941860987272724041120175273706352759819619404263070236179446668084745670992380534637564494718477654148524055314077793887813056453644777228123425087645282779875971012718157463569735929628532801568118117158332357734294807858572313421737687332453648228176597542218461563863200934677834745164077272795580500368301262205966044435133411249146779934784472282868245683115007051881145480892710136709741691179798011371380309605940307681823129180322004352172426598551461083794746723333844606772801251425177869838650945106317422435348936068202488075771922732711948260919021069895147397224361844352053132259499081542732963080304033860471506601683826558435403397774275311154319561170249987921636402268265069832172473710675616606063893208675423907425336515907857414523308567354096136541950842431156884238869507321217543564660385499520854305759258224011225110820120212201159798349061341096858356971541902333163760236326880015048550641607136813242382246651838353005285353983506131102511923909954369756340238885758651581190122724496760047662889391583260017118950882381348249517432901414745176274328360366871196664723618755751520957275749725286201931994179580763317369477342807443620557096439563949046806095242944490240681555193525165858922391910914400668214549194322634394316921650827175959441163027077554602320511245243278614801400127580647105864881044016421081800185387568724504440173522988302507362394336277059930528307132123062210728615088273939702840484482665499680883567100107260917269230914182253386554225076754472389610611172803059570433943260229008590494326888121824593946354383063599270275623321741912869204554304952138691195073120044260420502830894354269872666214249835934070274192374918366941738814100539476265479120638965201371605617499657754404880178124140792837273584292992882178713542158785158092663571985615049563040562680720006924609191862184490549157880266054992218484773026461730317650611179378943840443701377212279194350092336546775691313438508605732376597536093690635866872982545177866134079879437274021067022783242436860026640935666215407829819309274341270058880882835873291488739746924064275531292368876901082028588165045080413874574886375372527592424651831990543369389331508536726066182113337812472281963761559231123142641109724887537871690530462716299185372132768483448142341231485668107223409841666545209324678539598847705587109337222969341277258384333546063738026021857778606362328570365742290026766344209047716420211797237625798371213902308671986076005268734906284305357180839439125175986336380209772704228937257347602591537272285843801360334122433084252942418753562867781484450206139376928597795867796307711006806599445308341219723097869434653294764692890947866841885265069194742163309237464352457200457704145047623443620340769822902221089269101180180342275189130808485903473784601937086497886915946375468596758973432142589543660852569464180316984588376526717454656357693032564936971587360744752422478198692398913905183072644001708907016368739375282767588293870143710211687036859551529201767366370844757972294737195774421786330693568120712235122684888140313170062288602353054504718126671476960111961572069215423347872155960069068319599556252625737559651177007988776545361810291058648539817306750933395032662810289461467514296061133168955849296482506624992085255893168924075310188616527530052063490060685261484421483448403303464695840086624888714158411623166310472482530365029525467114740227805693872314855829887969476026840015958822290606481187509885299747175819265195089032696036281867006431330905258392673350929069798075541661392783325524731889957162810569102258275928944707274340781359557160604957393929862078820114718118946481517885366604665806545714212142878808576407510650283140511351542809314845157707628347094058963688944672774727412464612393642086241822186702186895204185413158117335136723483805389705149146520531229671918172812712786189137032501635459039170968112744978405335951761952504297813568133328829449198467642582022941794921396319446355533159085771521628494098096520436233398585099441657328155730495928647055078707060009642534972313192181810429444822410560161741960750280713541019260422260793935677896989021548569132510091069358967960812315986445480206431087079993417002135007648444752961969687546363647597702645397737905335228455305892369562225668901654944352551360057458685900678103477244478387982400752282049494875439726594365253948270124749184431312345563437019282165421052223834945995742118204786789397488058235971416335392456727395303508564760457828464254541531846398609415973553091910559289166950654844488135773353152513471627064461422993739778794350058270174765811089777588819121498485600092102368655817622323509129026348776743016568862797211820758784167217782719089522602028379750156830839846738085850089583067512477608102335025050578130843421767204569682700293763246697935020546617543669831249723454768833386494318485203984328950068130231582434049102639080647297785933978888395653985869348343491613468098388449886126795568823045440582185216352770858523795678242235126022584992513657109400961261608437630327898977660386534030102009464479324698587343507423260851123382055394202585303031516633764819283149615684898871783678952688579168784407064412454550286483344698301984372879236683030605067650937213301272791207078067708081429529504388713526292900405877334782513387499733409967353358204148141492693269398094240241635045282091244835801517893388753687919349031314617560438760187283684905594377489981213408423648232813321811108071368915478874732661054852001298733115541639806749180977705102782625441105675966429096609498555041565836588747655508281663877123371011159628211289303687654071839566887155566554068651859388547654917303032283298412476846072707273673497283685301993634322321970300807871118877966399544455024495687329724006632727763340915664430927173382939649225863302776622450527104506418678523302432826859463203995084747022349138430381473799796217656453530207253323843427685226997023419927828783025782672030529825410113457328505738560100704777110806937626212154312103282007076152509524858709614120684423624657170911394311769246255295062662333084529450290732280512674456242803584864332192509722422743674282719328163412641791813822242728783547138667364274046810371790491223756892889522181675225591453370260988569212862402838907204961247249959194413476933338303622039454313349425336253112197094119146065037667279574154965014998296976712596982978635315270337061775751159037388184132840504693345215352708977735407056994946490525229748637314683742564285630857810626974161536141107399385034987242398018961537361575506603791798499583778091526785743000551437768685631797854039645251234605009458147081271004290119035527848135346057463796971253572552146748789355459574746510964125850106050296352014713455835550735128947943369619845103491561678568922450148870555089398743996468363905738507591211970131958794969078078730096058318775713296540809879345448477095585123783802982733096375646236811429168772811027803949892239424730134638773182771105438449267546905873223953162591560478295212815412041830098660182544340839289673688724229800257835863672167580545869882598260640782794033677781980041049592279909657101210254306238350851079272872837394054412390762409818528461484425842719203946144481154890838247253627742446448294222911538383256293585417097109918792148143749621101655519819340802041419495974766326402634264612900469405395696000351048955258276983947948548432134980399265917411018739734176465266526331159648194479359166895602665413139325533530118394895273729032371814614003088383807254989351571152018392327489407704063205489816522198155825033189430844895637139366110883525324439695666359861792504337839063033628742920221038664045046004922706154270547070012264123463714403233825108281441303746366403569498812874461837117029178824662155090414782178807920944102020688319258693104030095453757438088220705271373221864659426475186691909362943335393745468443812636061481479420605401510267511985014887670065168086912971553284388732342009925903707776322139569026481446805078508677192973879631421028677896485152973487637882104061964333234280635929726283990332889667897905565420459871944299157393493933201615077990678339553481891223804874218336815068018558103748310646173917675762575609870718139696034587973268085469703813985985828927196054743369026102594145053835183487848452692850629174917842559985971194240611231845250389722061847804157353794752265097782909972802100570686336853929595054722512961804767524243376016417595050061707495351594855021162350269323822979492684451004163060086324443702374865280419025868756193786061864028045818845510650965570195709537155165260813277335564174465055788220321525058986113379706692940589241205194771021303308474660494458144364036631456941169442955938655261037190461337631312965754026426800890017450958178771155467417736400632882326985659870228297944844833894451088626950045543975530173877005976834398166327933938512864284885147418849346019036631399054734539318540798260687484363319165012395215324085578408506524192137093363928725250616213409178541746704102728997814203575065856005769999045706249308433516940690593849309141951239294715044843264797790957175154131475059164242383781417347053339817166124773562462261727448650091976927699846875034039126582168406453917225114123128779680203033679352700260815203758851060503907983986314978791067132187694087922677263169081863593108201271720590541540877925852143949436548238652270416517122320387809512123482340235348083392100442487048103640103231849055435507956229626703926163465923284758042336768239796329026017915223020617701584364628244383311178043451365848987101215391793013195290663590737392599415517028358607100899258194765990810567460533465531114982146846307461537046063878331979820252370964559942504797288885102516756432595864907012774759563550091340573283249950157785334635095259425054061033120412820065889665702680701942198608272552078615312259390536493692202606582165056001312803778657455646599000942851923213077752953339597180767197506125815199303453060513822563032700335449135624371658759354815355325187829301660017955706884591094821556666529934529610817442460387655090226714019579481795356438926395018301037873277319905368939127300244924039827266328769763250930309878241155341066893567452574250843859796907360349792207323348288721514186892034950647380813900424787691378600569350117494069723176779448920708571856247411229070657691048042185333349337635228877204536029248474774932377127663876719556853811487409374205267488466061431814179484087712138258887186436295263524742422245837877821712531125924481987349882132130056385276271113357311467191721072691684139607634165780834858387028636391991778565119680656111328253810267963759110727137630531790620518977530812343409783901023335456596434196504347220612268884967942999337290762444596034327290714755596641249897598164593037538147063512436108647272108127520720650678081300643847921363891975573621093141417031888202272445450436234655029592184921765552964890864835583739527697050186033043273077488040225460832208395036462447563681573250543266725573621994102623351643593724663553273139103062517359876748094476535483013759311147248351478749191603470418259516280683540969016210333695882088149310192182142319839563253449131863967228548915393457267599833951446914882881783230571571020062743470968768102266123198408384634882003486781078191987655081100721418761040432363845039553700911765593768205401820502690364020853941267327041960668695313647623552744918193428398573443722087009194203916314183977335247574466371949250502992756152061774264815183929210594609965946524152318850189498510946949086679732318523643911389394057879802998849129918453612796640498843407760160101717105303859173169219243371251032587114508218897290944575989370147381079525576080622149482945818598430908993099810522206549819200906527781121082656711580085987661272923954059682832846594471946362656145156017516221634543504599543549416292108232406359110785149601126542835520699632310366927773014865946949724449843881509117747712048288204205308954160094612589583039996525704523670751501443662523248447194828571424295254709373968556170435968369192619392508342532097360934307583069328310769629501288873143432680733004151520766377855434836192587054730415896153373908160509971122376166442701857477619173891875872138094443918559603679514241371531669904223255448581143027811592335007903394194918527998628857394911201662229821633156802681141959027696747805673528609782705109767146800117131449709145403010333930111292932456936740312237694301592354918854443108784137481474795669477406953480135416441746638449694275425260454104755455033363752131802508885675955820177140657899737769292420057441346727744624769574523112522903875779398530964249933629465702770949693433215986545212440261067416308738927487192985141721615802308305054172357377596950510100703402003676796566810584913298024312338252338162025852808366141531291625044119835137032169264598622507026754358818532281545345763099021011527146945313133898919623001430698758611009633159154925419952981317781534884369667297822508358045889480887930321196200816631033057446309756686552338918792061180886295852207482746159075682574581479117435192312260160943383463080535950888817552641737646968239373963117372398500155460682618251512595458251385751064198439314943694444824674427593696700755173944355418000450360502121028053800013424876040219782740968204262620034174975853756463057490051704314236713010530625635939698702940733773152840359087679106464838646105030540986176183589670487571518529718417788602235250019286403108467523546532156258587344458641393801251648091323532200365779725316594234699425383043330702998551777560937713035135252607899531045574960796746715002687481789108079190886520288328192859843531419748454010812743887272130423101305263999062210749062151429133091272994600048716639291874780299440810271787368277470848085924660137400518083664108088546521486745605951988288951169253042197116289252692783202838242457702502692799832061808608225199983556230040111030532162754273982710372322876988072278026084191789713286431428387135690413051399923127290148415579123436353751549694710479637446876381315455754616955215344093476322825490320353957277327950681537920250815856397846453847295024605794085311391092859752532167740894434366773783519461882950224235558973231263779409939711426330801103014609636049808499804786272459741283848303704427647285655807111974250281564101226102846548108194342180265510045841278673554882231867070498510272140657621886421514964770959816989691293524674674833440117778408964168968067459834956133943040400074357436271052839554460514387500954007274670301990627314343374345093824760563469754825731076366664017445365061604184525568197662245760500695909255404007048174442026298976005666284808233474173284449530943148900582578181222448817335099209673202612700066961689567705447254799745310327939396937733434390609526478748441583423790699848789924236346139729451867474970526218980532110372263105167519439544885392680205885567529576956978949135999949687718806097372172502644057294063180721920112770006383275989359704222101936300041947952791626153334494199129323056617069927343430450192745630478811338923878184401627618806546753541560429316814036552638744425234361797177003454966555849317573027531206523433222192377476978443141610758461109312753104545443657482455277257823525475024881246989075973399146973576833005200936533635207707617027128193636171630073992617962977608930748618983811977468738420893958689506271710716119459530847227347675407323792286238373337439764644776322545494429636317001764382411446959724571233123704410037860646379403651899054158783028977334970234357689295707497626033304791506395847949347347246103940586911590428332562214467700143299253782549074450863813120374623680835768181000643713995871974132573300055017199262350813109152050740588969155626593622515749216102490905239828602358098258989080170779674181389667450295424161170757304712642957169939936686024983053309072740137032210820210769169144182975910322777384714072862934134093664222363738460636476481202012072328608318426261630351943556473814730269652370677802866479257023719671955377838446803811147441325792797161308734236324211939098560159646108653402271948318558892093146046690717533944338617873238209580427978921365685606570144828550450255021510837807984787758876035245662657671857705947198396186698869708984584606107381221747164479871046496635237772977923918128066688586510695327683298018713648096016053937933422253150207086917109206592962427699032759983134887909592799633594036616299538589390322575163719767441099063186660860524618896419626997165152469105240219303367184575802588988341678891574312792090281066294095301236136946033565521010923900962972628141708388722947355532551871967630898724144228606668001458568512146132491989457024754493779444942661530985073513904666362195078741930162054212642188554331456105597030755565050770026255386129537649578519777289184836790203280947359042747240054710398441902033874555131171561683198775746784841575014196661731043628981805644949821186539300927898911534471093675472987507668847332991463227841259098806563585310433463658741180635404417654728196526345003659392021170276231780656264195887993658185668936344546864634661566782627410883828665858794746581540743306258504560291600525606418538523206569505838986451695541438495017905651597200619773440060112739835070270428216272282999529702373296568494674363434459748568038049968601824068544777319617128656170827668777675993685058500600952989898572700739506539227593925839420017405325787156722007926799454715169713296207615852870872992154462932132418804569958834584500438528195143026302190968694630902644715204418040055032642268304484313011058209587528585388795425726602453508152499235227175007089481721436614007979447426149129706474562899612452807809231102688229406459810998443368413194237603739839972567555568020483225887721073729746049578620027640248617415940911155903092041510736014915336158352017394974297022943807579177579027005097989326220045591286397175392445657466225434339073466744368942396996123490053562713917892696537847508240076551511490385009032441479919718908081586871897630915461311785669611084162333307961100653733866297736073524586830465743109617751249905980917760397816550020254114029280236775927493361585674870357070530282285748275393345504393904891867796313603116203545068328548067992861930489114878248110097995949098293290647960193317462969912540529893403281464980228367886784847514332443366378886833118805328046810066567509354525356404603957618567637757317309718333143028894762294460634924683781273079835290115185233634771087810270351812726447445405685802408345993601220639866677487571938838796134422412682012801364225342154041588218955605718715082721865959509603976430516357299802609579173655828337500916318315716463265970232801421015055825930524555809908126916288667543208379182322210786063349396529354041671899008551149477340173664044365442437001449051585808162262498492914493990714427409771537794296282310479794849625207951815335725231093728320841185568728742209000878860610558204337988118182820928341905181057403197933114710005579635225704580429383579473285533455467201596640568294439406928449820917503126335026540845047638860082315890980845768912871511671247208396019812777112277843740589442284929545822087257950245728807205589824359620401598459475794464956523336771911646836371808908561615915517581411079295789392967631515611612722894484741862033677108136516169273541304278686263759083005951820970432612818682552143269351186960352245334444695611564693977897563710203180495207390575823503540802760631922083508848931055617069439690607056750155802022466384434207244576357901933968406637565856976544077285037078264753889023192011456487816923526981591332939699913332638324156711760999659676682990161097103976451079212980808574159911211815525323229302146460874790450277574035494759107530439717826847467241106771822919297068962666695432989186486878465619029164990809110907852963371833120892432333273692776318843481425914860973320020878663457814250176406296198505502081733398570357215945784005840126318231831738454304156144595911270144223814634147831281149697629460661745195711861952036269917859605457553866488886394114987650275468248909438531273603638793420256015178517814220183408902511556655653538482628607036485182457354248390643127811953456141609726469866095381840668007208482145679423118846641051413623129345299709772152519531680472531684433581178507290530169697580460853296895625882423202650379377437306893550504620473312456252562003899954182084260787055424711746034092612602267425927834398805734844542539650834932570624253315488823699295656078511383118171901356117498911056421073876764601974077811697326392034826237418179814441664427966134053406440898817798919372442314917703861198165245660679732334542307052425682242088160753339946989802926549492659429361341094961599645247890916773733536525687437460814319285281784247775730526626605448499346080561532647815999821885700212329856127651310964501131549439054536291722040493330350672536100498456238843872408199893619307976236269148418961103376645653329429251545293814793199693205542556795890943104893632084676869397063004945933075852199835024764138471003912755930986933301625049213532459166380938174699562844939020077762454805358173066361302655536546555653382710949508995433324875499112083653004878512465689658641026911746518201365466779388711611704779290148073651184038871886340950451067186609164691104533081598117938397616420828315258580157749117313669169725061045755531813232180248428763784175291202863553748784281433040528789058995537838751108588798080593396565154969575690669606278370675821336706766041543788404331819741320355470026729591333278172581449705969361047804989093118370372682588741065733591829272012606553386261661586734432831208408608147107449138566213116309797170030329027409747060667187508742002036057231247741720559104923747505549660626287006249746275367475977555996263514389218471082676586723382865887653173667338979722198306822002588181715155361956548891677207574201442421411565375578510298985528881658277194287832702386224641875646948997653120654542480341749094009806386934221065743843795101313687459936301269563740559512193427580489489583704339080878843300072812638430088461684653018848900687005778934300353270600496420109842684730623681731601486733179063335884374001747314676245152552299600603732721071478497009496125243623506479671202061232993491541275548498196207718851772885040123916439927502239801053451538627901092823770752441602898529558054737949856388063756477055927162341927947048617668078200801673177678252472473731848769489422390161673960839881350187547737583151383344025914783209083627459195338841174764753697756522676151479244998267951015488313487691119765649044314536424201420725496342532334758777658330323733895110540544211532709866459310322804581147988776673780568759505281198785849402311409847139595378916676825453723349655274213288873781235178076679122781461708431330497095864301784607442073229542705296988672187915227086610472658688786352780322078245608923636758591074267131824709411435004528566130093805072563122000728949593092562320193550949400142114465123897890508068019237941716771958499864355892072616914437669501064928311794063955206417447504265952566552088562062301160411549016528027335881816029657575833384530309070879225008318399306492106125743878191563059009997947839688091495866383946549819330151770016266872536238771557537788460835852501045060360822823881628829095882135429122039572700158030164505103292996753206763508888517835184575565468854773171009129630919205912653281663392772596871051121335227437971799039937433237504043294483642577567144730204250261159125678364048226678949441378437327939570380786871689614012707011768230838791816145226463398514562648321913476883021424391896735927038191404073366862203667680332883875232820487684433290692424350653530503834338934682494558416560682503346863957024462907652045214231511155357483578834078099857033992979903081566140485624079768154555670283399022248578935452218865017344855994511137505671642894328463747375367089854713527927123354429932994105374210820506505151318320747759384716364635251785999722412222611425766920007028496020396477961266200317941980347836051202746421945641243476930698896921932869137833876268624902012094074517299314393666558571900007361686132562939799642761905548999532226341372680175865017240493105307204219508818652782315541317602930527979578640339846486409441002549913026986380456723547053958134855457770211659060545173564654030500779897663646148396573801668002599831498296509437350060885648734350672095729458324586117657335060834589159991007362788857481671510703118130383212684217809523527748667303172905562439461280148913884993954210277836156187404926173555752952110140391395388241224323429550243818179915431417092915160935877165751771283767811536245456867643066901307107523368115828713182281424815552891883129329950214100556152789784403049717310651354553902299002162666646898467213107919909423377333258471445593345908964799133615647735861946494986313994052895521386012955053047466816436646620220546845022993110200184315633063580472090465610139735283928084990774450745202676778094146177597175508455439215371463470255424248590888834351936576760678228829773598339829957517596546374956125487022452345264135083662562300728478389441168383177255172913139885688741351909102529739890321314865518645435820436842804099946416940989250146919857701596861433108155859759570942786922838028626268395508557875234785082671132622877628615477978073370494559891786705188115711932841660892760180202882793954902632166699673060741785347461430738945773859401226805171105377769081324294177811422665053595534194562663426597752582788984660072434659927612035789697781579036905235429164562546877058121608866270254827086410606228847316609648041602718334583558873106897304258774035755690637871422326799717632317518217401256091566884804345698575409371536773655303517056680857269653160077639231481564587145504620670811087330277069018329456873848213027685124757079079398923580035935597592703962838370286279193196599593729556409252226038085699977272037107218974570837645646614619231006371811320225877562767654541470121176321433446474658789994992985987838933921173217980597492432418845411040927347350510582478531758124613346647197604249314757030737421746784390109808653772877617868259274784249988761557199508162116104607826997264531902362828945378196687662669320017024104262515149926766861602817206248886405800219339968167028724328849134419347471821835709245005439759659901006238879723643703522518825826632188590511289818683876609018684471508981487952240904607775869530488883366919483846706391438783303115549748214322577638727341364977416724863614233850505448473402798706975188136103406565160090373978591397913567329738529627708606208592137543070429026143987305903147155686079969618416955700365100907589769738186339402739576922925014427845618191666678898048195784483440182249054802801455328777789620988246914740351099759797737588468013239547308049577359441527469365238985026249645150474381545780704409911344517199715876253390325226882333439443929876480414116097863977482781497276652743641910579261193558949617623286223060871723321150920283502379134189205189558142955559821725767885756041763511090870737410807473277868288336439155259615138025974530472220125901076825780624420895302875845745674089411220713259912025906787124071284348602293700024270410217027408141219460789795694969148748013005249684670815437514352727303211279069416985461455646583861625969930079299456312540112700034504632682435381013890581138099163631749355429403071127600965980983794464165382662376260925282736229938024193784484322983845679184383784399294780472018679560475851743472030956170992920512298056311916232198000928238205361175608456668241045180464261864504920550979151636095271940086195418621651099494391797308557854715917597015577935532115763218699996669646146805115717201037016439905892865106549132771446020937153150153794619236764883780928303571975288407890165164552172120669301991887275522378029941987406195908553582470923441821238704237013611333381308896726326647022944149118949971932698061951950808152256357404780578825334982426696051127364682205365331376456490343846533669850750074802930658064029992803230566654781810017543647203407633483230007903779909441320095241489965748227344192466637288498995223263156538496865197847819508265455876629839795034590539277223908385682330364086015379551334292997057378208698405339881016880692540125093446674803358487697069284453440016957642601274974046007601997361343846929234290429847701978635016257719647999955893258079404712834107284456417439461502831235202820366684909540503996387428030658275195963788418663651734693529897703600297641964829668263012644183329582980470049312343141414396299940747049221057480366499794263191886308300205504178216329092517240100131695161807735859163434307898243331168510851343946870628669212616320473986934668739561600115948885161291632040949242120330001347278924097036933192851298890938138403830137867686475919119590767356352181590563570320000981138532100790772450365362004365496115442208136216107263114901341032380432608345213398653709086087137645385278065772059552915852108297564811198534592384084981287822767189661032097787644424558977724640012697517316832006113870802796393939971373342384149016001088185360323599473903351538756667707623074586166748092152817233629006802021543536256163166018755719463060457926208543148653763937290266597719743882937409853971732854858755431608390542844086498191391711628840711455704396259400790023393227690506283752694516077876364829458967495027531426869306067051155254387146718249618437924020250279017384463548093890370137754167518818216773667072653226972554942082268289072495889653647973837882625858511962971213952082000197541365660859398613905851379175291039411357489603401011130287599456131981163392297531757974885938817355358779367901719600770369704384634924906210206388213953861832300920909168268305561912601026690706037403283621433148958687532135111998266343149824908136067525433585031691235086058280194668018401209929023801059655224178608755910959276944193582934685141447460621437752974945936351498138546466030408600191405477406545294133886155252649815914700162259384432828564928295474178292183850665620989382129841572324654388624554540282696792011805151708695093432775174008916184526999443111943841190529930149078923546842489812719977060476570246704879798673322493725829411972915190340031315299521617693772370486390813101455962046358946265076311057669273489080900800409518577347069481567963419333909793513780119329061938467642995285359840023902249183073772659713115192586388955533449454139294871385882923925858989104396444405849637272497259260259259884162240786507199898087483473195148081945442736955189564293304533169697121781252486535150533408491987600402251609954936006794717700995070030110196749749351375335157082775127390493194326258782106013010710770185487586076184850833378049218042940263509871860771336830428538583357853522094069306132190356288314206165207646241801268701506789223385417624324677927702006519393697904973980705687055843116538309803438640706223281358957863111491643957193290611457036785174691078889456827790350484813708723786330283818354574384954454511063305919656656418423425854724609070977779136216852166204579062658421480411468069413673471662810492044271158542217555647964775630129394194687169655651712842236463146483092386256350468864786477714963365782827953916249368265929171644781709920184142081320655324235940044636211584433280973553524117685075070949277000208199655744346092772543381001831813303797205703145446717527657680030948231267866527502112236103906422202017639843657829005383511446792727317277782726006462996755534246922753260613965251316251056978569860057523042106056270437441984765692216426630319408129739068550030646976829521983555465007055445290291783127101758383360867101977717593156316610193864505886013785036034247152015456994764589809242102325125290391946158059721116567169652596887482955899949244299686949114397137890344212964839272540832296766048332249230995461463840353309064871615862622955170243632307216189498526619662095769154334564035321504111698866976715721399263643090318480710873895381242842752055458822856028351637781680419593780181188581871000629551040983951246905592246131689536963516393922554317669094001313688468419004098372033033275146679345065288155510100633855441247084780590202927332644164135959595742484261313092925283305766479119971261387004578508448115777727318086708193332932966264231190955501982176518938465288962612821763804241754593895183088957046380792350690302080665541263585908342907577921890020538409863297066015952848043159891481256104795527650320759437420939352956416212131400173737732635323407789912181071363906264073389931703906176519914429557095868199108414086791399340572042696982862382445414259919787155729907245539596413298658501165911599844091115112635913175929830638610203627259064878054888940647263620213658270288867704479807501214772541110396095216773317848753353323445740125685546226512344988073506864669975173628885201933205534135203412414660571853559757721957627701704535913526393281254639460456766073522513337751539658906591634840580487985968641146400594633540400960152289507466482578721850016009983337054183694785198218482668339745239635228587946076568407344636193492230280485847524375630192369540416416836560966738390339065328515444112333360532330020518015008391858359996270365566749803593024374020417835834630720982931765392247505487648499847601355005178685511629293858194701430636250712312084240407630567379802680150680505400221948720247622001802523831372989555394918971766727603391129686212042995714972461911052325239349323063620615485083439658390583600981025093821842109810706734206476551021626575313885522872684776825330285686307311159286224899843047875246845339800755307982520850525682003430735027038885970132715243089125060293087864486000561646117659306717397172667490524674925060352566868972716073311083282425929893996332116066205226574811407136856054875958734270502732029268867536250186171251760434245213085236248450098138738483064134998227409020255895249885157256222678850690449486752977091161254147196313665838354752917138444903197458239292812226897252094938924740505704530670862450857235502395238185153791567644845506038412191721886428501472635416691433527468348101756223844172624050086186343664337394082384401023120727280467011148679604958242156559193991515153499848034661822938050373668669750144320417237730056582519100202694682850824042567142942401815001041135295819389326476004746761892444423643402573129744029881553123674152207565949285837101046189645747512272615510067874763523219454593980152613115875241355519029949553757137824151348718213644807894362592366674747031722617767111641320447112856157079381070886536436543317852824048562435429814826858763749825004975478485290649672975027558277563725121199445334349491984898971071528826129326526268276003167369161724728704915939396747200706796146541031578786449781701069918314328206291498803442549805907693722165449802678848478656844495827719107640541473847943643309480006152075195116443091097907244511960534052307370658110267083890519629907173042712273842512540000622856982669941666802458490678829312271097314080792494162056117717783519463289730693449650317331341715016652924710459717669708823556352614197740025365131442744943251645590229574144657650511267885759737981029895565109877275568085735680050521718891428006338269031442577903376093311892439680640656596584623439857023847945467548797467472466064564984390799592066857238051370652201554415551406460512260756943436695537826211429774262823569162643192325150006975808997847958961454563632411428219028259491543601126763410645434985622377490718936152163802352040578273020525150595189848879610814914257496592549695742409724118641945191935260783041338112797915490118402852190337231033536849715521032879026980886302127351627358493465164409734099141612108480909813064513072676125828618611429165778887080265355125993119344040770169190944892427490390610057702570087642069250226433106266786477733693040559892447324579503723499242209169359650809681852415208473462077862104427927770399863131196110402772378616964368164510081274890583080009773340905497251851231971388045197469628369058128319173947681421930778059936935164757319463869421409781778141986275506740671952336966481078240748813644168183015337265091639514438172609669348839564964427967560916400859172505269725216335476234194523326968450503436767786086362122622934535084275436156587576666378231355609723511404881539220618404424306822127632657955323850772414292845936337049810242895421190804851563496031632268867665402987228394373557063051601016253151481627344999218910492351392953054617345163857078399298032943652314237408213084803453292926319941772278552200177707565235068913631133117920073480740370126512222627047614868010700280067235323545161682825574237313640782613747855603613024847183480032345305007203339936352019622183316444506791099628992025669604940015198308543823070277664585595721053346778871273571838525172120163927564267767638754979744305745847820603107322443455770459623474353764831441877584762476861525216815793095410757155767466608796477437963420183188859021849915767650736662520135870837443794975972282157544516297693811771387216068742528178960319145016897393744379839152729112101383020444663138635100642925823484142973009082031806458653431941157445239037993757486966868268334077333727168957557572604357777448171335694992269596056540431800824495813973291967376132040724569068147287857619427490296562058910742881252006517617709289595921410659586729137380565504361428632507581129586468645437138118151453152841994963200799060168321528905633597518949393416532450538566346758540174430454843301016403599143505417041300597540798860213145192349667206900822423688764780863207035340335597301576266383291395940950175695200562091325157919768534056722592805198807644157754129343370672040654357690011361547188017257508940703979164906430609694631061742076246042966455867895494771871103635389660837839174157865751768985198587340661447898996203712062958419058099723523549590078185935879555869645141639199932372537422092203572396208673051553233401836147413586260991818936543136222249593984284866952703061495458275406659851130608931963433243398008610705579711600557650385838728411237034947844562808011858182573972291093864227644502425753270631855026105124456271294037786367864864184074049279059072975683037530191242925116417985502202087756899488437086237566514098315103322846035665874101787320319829541163362663436325745264319527826690737236790564701812665652557397049670789334725162954280894414432934438662986180062142731886155588722745057735680309967852088891094384413347389377246159634669725274288137674464147536443252128932479067534345383715411003531714465588712405891461374656907690604784477760234149904453466114535191390899512704766033441005870602192750855042689214823260531293967708451749437449987214039830830225128344623139706154092703940879642921367463365044028701931425123026512655874380344446947194438748579660929331449011890265017499009164867165976118167107300953774033137747181111980001767512551140896936102178888424877801753726091897321692075456853355676996236066855642287784539027722957793012610694855686636643942452326693053453180177974915223906641731004261920207789334590025578812174294425744821295913777306278522779042754837728754451072810726620569169515438725781443738670496329791511849343885717265220529965267305469958557798121215083566537369868204066334227707377515532683720382154972967687519100846126044471896969874805162410453311681765602183225510454112557424034664241147570142946755362241660590191748003821965619027598513205715598782499692076869389903230960324532551449713349843556370766050974708437010642683617874214193491872657634647432887768606974811036748258624693849634872487165038969522446494276199975343937543153043878780929081691839076876315930029740224508265530975281055729699063307076331010540786967902187299186371506911467292887345473285682108053748337023569761060472615449752315589450215638028478871836789868664666461546586925099909117814026073840429138213701232504066337223515420204380219695348270033203865546898783934749367630909240710219149237857973942863694015128020453531999136622851333524217228080636215340297238077812720107601941086915567118560649351410934618198541891020547261122964293153439070221515345754494392204430409764236051018620820124018466132518258662987527629512402992050001513371047878773094138380673060387453705717276991085922404377882024350404122324669099686209205628246739922179817370609690819592737053698845474164553001320609658996828208110463703205344499692640354461222068800030494185366406037783100343325148242246015511069268575700070337140005184180938480443333855122831723835874627957476303479091591259762918877010340529699353442406096517983468881553991059440297391663766774254114873516794954306640336322374954290632190738024446717772560053266343907658296682201272588817970690083153886927282023203914740297134350419464999822055185894458191440463302420080038777770011548569541156741382589231625103601629999910864928175615559586448834546591432885764613118173199503627992680672885082054835840548332813232983150264577341727593469520905647886733620443596026578759390660820479373226611207232583952132886955214744707941557918340534314234780413674873602978364815572581303630654032509750421743023399230867082993127079293179760209870046487950368453884545913058958033709001039887131309610970941320058472140623823136829060684766851321096439485804548343430144146972093083511834240049371657789663639627101013710986869850957175746405340992826670271976489719478093110746838559647847261484729684599155220219058830067751562308920924818417007504760810133377980973332742591604868032217422610916798368974879519240746941041631069324970630102572827478855520719973618810207341409928352294404346945178032559746318052855050144298165994841686398755591791560278365379128999014614114995810609333240617971825022097842650545957195614719835846596477949157123669146368453860509867096287519270081906241807502316016097574824411286506849889058749188580710119319936818782195921846025255507963462753983170016184189845651339236584982677510611643848213208102212857844108532571693375404651118974290894443668807571561643923236348489846278413539435804600420660101188298675513654498444054404778008299751363685790271327893961075221493734627113063601612701917780740116416518819006323457930769825876860614436799295867932637617306556330952911643683994200356570604453454358197345726622387241183600775767576480542997778938977348282169850770728365299493091714188982547886122807596308293900815907199849926873199406979310080508092895706865856872218301784323775363044474819343935694115258391574623958696273055205751419822569796053935561144503695422279933804323546949191632207782428676638199407702553948881471923277839728339362365277077374085787254627840909971623406533169751963122318473487305485037282569160069882498253968698140287622353819697145497865611220086719049249926220719176415092113184382451262368391980544060188203978393050700679363802095608406628950019306688515967630413188811800089103896520612398429910452758981468053432468336371289220822702563915237476587127673984470468041328873561898787200142055144500542209590946906636852637044599269815551771331998640064822023717668787725697407590211894302294154222087837318299502221318178109858301032704688574079849924772598040249812872406125808395523063131600028892198603353299471433355969083547533291097778717386916297977555312993748586509919414353807987793900599209060022258250173581791711507436127903653652403077880360248203983398541560756450051215791290818904942736946098173644650962310040066381065269515543503861904676150291534310809205138686103136228383492004180337675689371561602430091252491757955883188281666351286930950263364208038764129652758018852414691380408892165826748549550148408799814080649619908608362223189025420775645399298599841277086832914285543051712575613178973808868365874681328536089085646947920852638931796395059625871617952394117251787958194441019301919219900301904757793831663319652471096918634508453112195261451708337323972207265616171646516107055101402394809394821445809961006340706251564706724372602521671649633747638763396444842457279681740112304363115560071633454821074166437837650398075516995676248847636898707168597899133047216037532489945989744095907328159800358518167601943656853852427521085740475951914173261467128691066001400546777733137398537431726192904724105677925970278908106634039755555085658078104719742717205091661084316566834187673091417855652971399594046447613201384532476269166965184441941366238514459544640525603826152589872543078542320434773255770462721675148338997121394547047835525837510407409924866970595360513221553413930470907617699535369788943197887634605424938546954311061727886499438870168741019669124080575472390378917629059364503603141591364572524761032140470473166348787148698071234940694605588502490371779776500181186519301959421805065986227433900788646593710516082660424374517337014799621935189028545077480616763001452933983606946644406135742813695046141278817559740104267107629438989310897482773179225409864427769492166989922228638865396876050813871806160179695315816553707153881062269167442687202340503639979618587551925996142908698041319695344192477395586068137983159469441438709691150277747656685711785402622652354819935701889260263834960924844624767529946978787761629808587806234210322888771471673455140609812618383715715903624749013928554258743474574353308936127938711384560639837855658610462101685268691172443592867834389013592499277304797848090065659490793881028753124755890158748857265364028045492547433709489360830792308954631812387139576190129258835816548896890998575873919045705480080305208440555543413739746980511614963278202552113862813650187681218162608279413929385944349128354400144153040855915880698549687351996820701784893350988329532385450042357691746624999999615317697101112614135469006455583204952596219748992806675122270598328226012016905922589186387070717931356787025613011885281554647697351840629568668888669012218020892689173697973225585700043195080441353077737085564134070817228334957332449217166767531739672419957651855164476136280724694254717688320496494790862753855341151009380741096076643533589322213080437451933944277167817832600241666454332892750379579922904940789915379764190494872893496187126761621907803977398858256833243908712563325699135872038407941246867083587182132542344852167439066625831440613424719739146575768694871803840553840277832147235559584694113952737724730571681336820823465033283712123164308327023335606678608965271031051536861064727777531930902968651513232157968854895247272513179084018285249906991540355337494359189522576128143361667578053291434907442578327914001879223265895233323353699580157366028303508947685712641376708409549649952274556117415240797269142072037532525878641439989776348606350060931017757289328371637071474296506082622504361381839101597544789606786943395371959169815993068844013435983687774975573134279996629533038261475272240914667934713058724869249858081142853416435567006220453053603313818635014085527484065041742624426966546779121728790517891122978839715564991982142181228620711795155750656730610989355463065274198438129410185531699364951031164810298066389141722222268893704747883762908584324751668605422788014750724265091421831151728033517679759220567821739790257564412644331492527683084022044262261414032084123716865421281970912449467020768401219512909471990888622584781848850117948293840247693355463438871180982506991869789589987279948865029362650766462459736251965657368498518986055423774194630913768880737096685496420262742521305122757797380129477459784292624331848066706868023859667785149656391266280286578952570331876966682077530888108163266912487380523416124558805495764663365018275710233386012951766370267872697517835821572410148914738647172757928948171447629232116656027497203430000346393125591357088999320664018838721549010090684845530982658822112358369029348640971923674196789530919178989775731433061800150580984352013324192241153404980254062795062745533627958033010624954037078588822809335619382311699760895047788960096322267604184656158398936336074659566690799608811435300445197819521862512229427607214663693509683268390106345277651865838879582705825055975605879637717621320301127262602434279804348821411645348196590302015012714515461833702377052288291671015034864427332518439968708162251831273614365231114972655143236949517835813597274125208894589297891584450243759440614529855898898225419738663092589298421396049405430130610112492807731191596399996321549128129506958035779103396849566343714706138525360641769878820613622889078847274500336330509110261315965594098006402466074253779639473039866959116969777876767026604317198073490974285489653316229822648396359300462519761491181129612757739954248210526430667964714820654120214800683914305292477088937117027033824255870099742420976669749385664094375393648249806374386124158518096061311995381776365731369872401592095215477614852933460043656659355838008021383872644548017980789247987765855547441477422585038205066876808252808829384878990814484328502623031253424508189015450127675860373808549320198514795571081560542952282336677728222354131424198360788881020499945455637435686184491754517200018492724843202857872587636277901981089344433294188786108514095083016497824586573722118122143971924369710877569818038484662742585913933342777241326485305654874333432097681564363633113748341080454487066798508725019759010229852064251907524885233220411225555741071268265755239254646011468847341977756636460545120762970560951803777944653923923624812824853825611968089842094313674725259002590465002670384547646057637185684661399810101033680074903284546879875412001357736899566805417402404932608811476526354950904379902770688805309141590885034374172296825446066654875670234052155230698605866105407015619250142058915157022709822921897542591369109040536177481211607227818567119361567732860911185912479139632795812726131238672308864255635021403202548390788491356507291129775478422812642891739555092057778711112501491349260003335394520533927844877540456146943592152870727904833610607705957079084614060242887295374877872292192789667289062143347874333394117750194171096578658840896989256463743301232916512437952529821221112092076384951610173821759215386355288767581807826894457195109745035186690591389217005497303330909064868356479225764513994847543379285114310202208794536869294505854227963851772288632847294084501624226216826023566780588755624497468106604615843427824906251035270080940714669873305210272403686455215511746072216257482894030698125681928281478133018158025173187463645814607047062697960942454689709925679520390861972387440977537479589458563702441530892124136628450354071165353823478044783099443455858646433219495815671532399429733789184085738931081818167139317778853019031220660891043065597014571874581511359888602829394627929570044213327585892347909078229154040210442668953899038088759055168509471890754836168703778567299589990029453095596775937888063433462353189041254539802418341462168475010534049162859184505038911339030339668874306535005576532788699617195505025975059699025744395159976343162038704428788140308696018147219228244479267766729436585810131320235068072190686147174474524669066478028571018142266196439267849730794041256664898442710636820237910977844183294495157359215780671520282110802300218564056599973889819422180434517493989217611810112137185452871181005026541197661432908154267061805497131351076807836693657375689344183066482683393188780775351197921338102626311353379863835491460563545568182557990455659442114269343916221362709200063222529796003404209807756663362293574836881503431472828064582326727199430981863979906025632921260415570523275142346469969981909540863960874349690518605074028527252609296372800316522556984239121707578073081702028512025493522790918108303917964646688484592050072087113410943527989608979991789855006562670969597098100515645273019692110572362508257159805838823846956566938657082196354732606717049594088283872800608893961841822556880887722122673965072645066340662699803404513456766876206628620609691478057754777179605508454028687608679285562240688507824272493953928339556063967771933868030677874257330574408048833702846414269502497666371367295537970848775342519732471871728596088765022281635479436872048834566383679352861498236024751504732995189499792517961997235103957588704295917138168052983858499531838296613050446290944391923190637356084940614650114302404908821125716044261284022993333030359779937619287766667060557711749267025699776441662867924408379321885687972169948800976954201478180061163544184160824855214196900348384252474077853733518596729663396862635902238656567480817024780147462634616664371506382169743139031920036336631369641843169348107869184985551362732384503176676450640871085913721786754347456335560920859659203631188334334841798652154864759225471808971306326774822211109131078636293598576942456022150302565457835544698521994921272673131083345449096582195065068636799317282383869463869643443659966059789479361179645602017169859081305731246215949880879912315801304740755189404631052632067376047580407653760999919851388321569824009966889565841504841367980916666657766390126561128170143973743104237287802858053076071943536086097365531133491920949768881035229062292689225937714733952230663201324781070213571492985889725642754161196861830705527270320457578906978902854873405393641811337037136724302283066516650508640277255140551986948364149890980258758122432394952519406767828926291971812219062013507528134164910088812569480970377484942398844849317894348330750494489150264412816343858562472401626744021095114212311531636698123058329182204840144012002778551990278602234202726881183743879046952809304211501497558224129069030759818451664247649747394233720691815244614221044965074910200282112799832284658750887678325710636470046663318763024311515695070698249212994915528328325718802721355926647092855978472499898704901422967855295355657440297394142082475794626254794783382216044116042513425868114348281255818033986130765326926864458138880016164110770585284657725512913057829609939376573487380231674043800707769468950602423904548452656003087572860254441795850695482314655588605850426502868411313301660424463122974417349323012014615339514484571486668638545492455886585005505861116681662636975140264881516903713288364264513077306947740197226282876717767418068358178622925945321677187874238965143557293438117419369533509570901597780129466948948116894322800592459048763536733527359387055009912646835664681920571606214294888987014633865045632041392067976714288066783600776034061729944404801549312694410659331019673811027654089489120366037949322988774520878797623625325874861359791705426619295761754163837436595999260047074903530251623235487133902170761751207129185331513582391712236143711272692565260242853496859123677220631466406608721028387771390015143933871653225254585370487621176545568221853129021848825537581572448430815482585468664628498491642366666933015021807580878126377636861914738802201026055457246705255382849100163018328611860843374971407109369764755636255313007585180878062600349110741805152203638329231685103027537281291120914089260807079976397701774462755302366292901974836736608672873380813967415845684794253866928902593002416450065684582454524669143505948825029844241308419751897011780793682337843631788526341100094291703175515137658308440895138157679679899838945170304598803078834990956424253916940083569820008735713399929137735664888648763443817293943548596714623385882552393445154369439598916977499370500021156258574896016037822144707818805925473980920549654529393808990699036529435824282724070994236231040978083764370054083704087772685194656780003500050303685503132709985363984865818832783468666375383155142008291151299007423176869531520713514682824680910477740266595302557895521338251501796835838818687251443545027143311312964381142570222168164395548435157586847459363958034122626091377189803849967419176991098097203069061779090724758158911832156774116669389626796105640317216080631659704861454241134466603322751893989120141182784620719247087322391440171486073823221800707314418216798129255040836762384560512321224265558451057977813286443232205182828245119363885151541679526702811385115415679803959440652935695572954974334225188614574945265401968019103055557421127537419612623738808175706656616626199252811554684268611980114704322664673772698849375823449360815092046421096366336475093707232368752444664892969526785895998511704875034796748115007927212111149926322865989062109529691846745578834944585093435575594811513020967559643058485220672091823369550681211235869101570778630366848339060958200363398372154753486681115163780030029058631475765888344879522234684378362183563172690092115157738810145500980724703007076052938942182920312297508851134294435101723020918918225138131613384553829993087857757722004550485670934570523622288178199495281447330818288865023998483045812291073885320151770906226746581820026883801950797254832978425462220459515659865357176126188193359288097630493376779816902129335133153652634071628831390993353302262912308532402001856461460509877303364518634377110966476869236773062340467865057298668201401966856865215994878146618854454175857446733815717079887021426421703971147815248807564889797479131265742438228026506721777404948787757802964088740988327524507033426885784213802411270178802501277127355118084429760912644242326169324576265411525800401616849209500022819565607886868616277341539398961130275737590742490341449139418281878987263768867263623577978170260898912376362302448222431757307640559432386934223254161390602431852366363017467150444429973263773955224575284098095148381353487461641246987873065907406247671260456266983840304820611643939259506461048984351620061791122908560672236833285043702175071027206944115188039397784379258219887118888620565132896964836249645512810871386866647596490048010353057744796265782969700123762900811892943856801367959700485470447483170443730791955370631092480148903936219043011331347446433327663123258379114566718220913996036083582578283230532169735372265954816503372343701067227916380841798750452698371772344542962128835317498660475031542298704143678113770462653383774107759318326845781765274378909183136695597668343631340592918213841595571730307374993371364855848008723046189904078284298339788188807127780687930181970781606022127453069575326418319225005378545074318709123503731803428495854124401202562225613606734495975753220907862183317785342496779289194143389699055071494093141404409653934545756319639600831102966254172216751036659724509909325370108898629996536736065208122075015151785266700714891593860896904855186534770790672516221720612009046982212076033408454296997401559242435039935429340969112394065758220054770331667811946623905971299595136756843021643025281887090093374139597545159740146106203338772605549494454045135655065934380066728727615197096298594610981554809433031964520885351631646001231799664663610206110232133718591219747332822589208690845641375697279269932528500642974107432337977812973413980924572194468378999180169048867854538056164324436522423513620958663710460324993418456418828481508382551571859470207157218710080919991612787239044721556369381238729531326230301360239930608282536876461658079080831365763055259714077940699485700075692295795615415137540441989139159095382104983188785274400637714933041743915983703060201970467222215583641514756476784092371786320990508088431619885753698987323559694752045017470109030213101602009969649890123024633934277930851920748307829744179859544283601514325007017835864899432183158972338992081256476707459095459086342629108157818600214095818131315982616739365135793036322447360367766059776380112021954279326065033880651497529252247076492802422535608586296562539194992668938070513197898134056227357448684627558318364739653251807554858626848677115038890362732256975390202708690054947736892128574911165864107409184624845537912541755424270895283533769415634560133099752950739554353200839155955503212663485099153130420198327713395653483348023435749272816884434522798313817437077655400978062796871241766705902965454164188525388562872203569418178802006251650873189363412528479818743628044941732739005086918288825178529665487062001974392485687666800181546491606644589430064227291868312488743636922411581664621889492708676023440921987280646141215695585628509123944695374260267421278990473938004487189031411691446110767002775964295328540303695454733908140677766680654366632617126497931001112827943862316122072107593138678394222615048555260584582772567360590619656971303449175870604174825821707057507176890223713970912959519280691372636360373596460796905598452342405857726271864184182101639898121572433557501624236148780514616957962239800909652762678563785952309830070711597615109082756930697522414439650733226114191459157789602535916138947304438778265761007611467832263710931282545250237590948553446449954625201207289200934930264717155693369789110599157431684027505276053406273810687792473786771824715213188721370263788050558309562814527746078683210469097334911020188841193657915817201585139975422894992403610265039436581341570882391677412309347586176438244512300521886267140057236792478328330958696860373764826175145885834724235509232324215264527975038481065524164146807184570463682812100362644780909681623046112761508095116104362509143056273445030309097443826881518570767633409644375465022806783646421275285652593587850057075634072734541036400364006450854890676847430206441129499320341442417592666696319439372036155950549419575312061182894040334297101217575882919263855200153904550589148490994807971356991803364916799250665110903508332432920750290413530816161480867121276120044295712174279881712819287935171418459341247537014641605054396692854627100716300902979595560288534320841556812425961741920323679773157316415558017023370251733432474995851775709796842311933516348105504208556564449763088085847323685204800683117416076194588160651365191274562527025200302973463994960744666037120252889030603776509783931576630033026317048995901034634555880025866536548201419083809908462902743094893327145141036399327440192319399694432148902037552478255061338031733709640864313317543991027909770571464193255123753253907541535321341058232059032905095593722989770834036259517920214379175206573042368882975025702111188519807773477122523663745788710003457413323295514620958007577577237415959733631041343206684108334316539865195413632639059750638188096985618186708923808391662440135329992635255857527003246044945253362987799278185468453176689737798075808778844828333003409032570575680246672520055430148820340744997801454803044590530175769723660116608904740475700880501574181075906243190309498978510080285234119980250404681844330507184046467911923955947237768530101670118001931623146127740440586877855434294235031516759474061227460221369339401825857754909658088559887823284546536624612057253238959781386937793665509845523780173782541796253745800449842792394601227285050207120310292240140383858403241663918437414427402413044382168515760791475697178938652955285656478257115855042750019110706073442880410348288336274970284810437569204399645394492959188201238688362621861651993019375939654529631250283847161701241407523063992325454210529467332333146785367352722728839539087946363267717423750477441956178196534186482758671157634037320815111100899138022471537448396367594801779522564605059272829291085151695934357695925232516927683934232897826105190884242892074254814042746680406098031818094718612385855267542802216078765515818184531984382252787128875137955744754184321456468205006537357326239055065755643184432216165893735529102425068633973950662030601739630039509254809535440839383852245492974266928502514279786321224362828591189294370817106253420139177570413218724900508457667294922690685418132230531403453896059706638373079585045815291140516819656414017917398995188197637136049969613491074079312683173696813632660739155375537989920649963678805906920249945149957328286133290096736817019870878174688244511111017194588632406298220500654604905640479912585616159013344093054396866690157848841045974081314665652606146222107738695617291508440928418586298055980624682613157582125603294101848263183974226731555027461972494851573367445136115707112627152886469183031305450560904676441104799936579193416195413918366235084783516751389856079192423432499064304672743863793334421200773683861917509086128435109040059845895196950117391250423266364708646499466326668756379367128811720539809377400418998948239738178596769718961824581793336103883778178077366557362182224167744440521120296797078047857364067448837024992721296638228731804743802928092354256459850540388690323249743497757136511293935090675306663921851361830230953327086048055563229729905361877873181104405457001729332480839686740059039415263386297114044189256915267513829997159433754335050822558964655847632064964926222757701394967289951455923275006615225590043033515959385505618368777512925457533090053622129393737668300883192190760829997871939220728721651378846224897167664988982750451487026541235447091363187779495118980115502293813333930296852727577385514547061227534231775593564323606778680163200569969767218372744856385196374251774834324775543180367668710672515520364623307352911978313700856330067060606558905117072653608906422456386148811076283517880369992584230713659405439074782364430905734897080838282147275654717588544836846200784676848852376952898534602410475176778228867652096833091339749781214582189887925173450776591591196651885306157993433265101542246343127425079677247490935632148048048634786703974831700379082670463220726276422824341756842670874831253868940608868709653104296677205020541745177704300356777845695757495533651092962600352708729261326178387461248125704226835936458410446255074957879174393504218479089213370678365459532076349049222734241778153272221152171059496283229831908849467349745665568400786900530065670638887525119225720166450689515293211386486252165042657646983808205204828689837192456980851552522011182268607001402487538626753357637233463343855177965687860596688743173941299157752276325489040126896099871660467525600583845620183723058222666948259045268901308881286889698465023584206918089416785858183860485204951058000198364286709579453050087755346347901458912412174644399346670851578074643162273949168638507003208394591473230914359998678348189428424530696602997076244552518968500513430308930402492733755189644535811526184619289126106296379456230582227746153482945064234077969133624601055470989769274020435073142095150409865598799928854185989438071729400713612771357755957595288523164747973456430123936075080673007070280752975242168582076753037344372704430583204851511555814986666090209624154737802092100026026611215535902483378273762303043544914392085990238139463714254769397729350681907752656361535721491868334274610857465863892743914250859384069965678726906208179605010408371184085470616520907643849894232724814156180421944351343859056206948604835322839190781082876401925166862103394205101294772091501563228355393584855011591558324878058315454479565954503104554780584319054007602353060855595201277521365288355732007081061474807515026555739568222044095541689738862856319757924904161903159160680030794341610684599371790189188121920391596361083958534402653491100423454902471581887836215305574270746078881206730034332999814437521469373160601982570399683259638552830425907219847373361912969421880003348618588067464580870012939750015430370675361994170602736037475163585079500354473770767583609118431667706151166352452076039330990860909760388992952727657657615676931404999757234995646739746677719412484941376464641691440675893083072709536294527956733393274648207068441782006211276781698348720364342365114520193920940187521349088942620453323993931514893866630053174781084369379077947391085558240897427367360521945969103306462787482250035774623472506818880689402192646145869207522526576586544388283509144975356182351648027973389046055620005937404603642392683703556657800561908749524386324321709514810401745717392150352399294540572593423610740314274110852018209105133189133656615527540798448948519094583892417390927644349521791181413917007160491038224959179395234988494898790673768260956954000351090813250592304291519843958812020902190730434410703909499086708407682540114356456713537678298739496893303361864069977389699180526357481208506369497150095724139887678276353810750874160785581766026943340004767810227358873509782961322853908514009241665364550887586284570097601696123709591341111529554810466820571070730009592440733175027854752829365432241093929790756284239788635586935183852424749156019682029625285488623728322258160330396221321805296645804996470059179843069773606603950587346880996318032293300258877220670648803492178437224855549180166130035147461202887118372059597567749319951502208593986969929271432370515189949263446153935741532049202906213801347087048993834708479279283208146838615412252168769025025169039539678193222321977789772737841411162117354649859771171895555969050792055053604099437899340478389558835770062142013807490317721071985720349474619829710293418935482469487775875229080917837865822019953086592150215603558118019157951189447408824754370196628934390469684294941401178578288886455107458335696421242028874750376821231355621503076299757442672215369676136498390972539852526894662194699142854192420799530690513594062986090810668918844659223499962072672609216116180337961006646263404242802391362264930968925626066269862544209519207910688212710892969393669070173410285588734177011871719332117968521375328470545017278287655424629998932510245863806157606471673081375011221597719639435149383489208870103164823853753093721148108148360164819141967299374993550837271653264430933468797297075912299223062174894487371261752366216989983839830239341427485286972995493083460770876892205160923251854979232741301608665534097819066765908121688904055342749420162980362967512855767195957661364847145194716522668848372904709013863415010638983694942216385263290684972666234343156585533677346989263030787801358999446973848306011516117359166121269736210890733657992389298374738119333081513403908771994142405700413841491806645891145007333804208467585393154601509006124059419238033416192062649999660987484359988338883406497753467832992672740415977905835899664321645591260999145108405507086985914434008885342265283198931323246983515228618831541835412393961705672115143754081221747735838971452741162734809871551848367734930632523009731903931405148004848944488363990983000257788342890968183103977473098678083780697115215131902204286134111645066199196348155712163328305606829126206121335323596949983921269409384132721630593585117197417074400161688352608994888898006881378643908388990543663464098673548779154011299137495598289651605304902126160327356131281289118865186537441829218110390432679158131773819001781861095133800697861568277546352707057930758976882655471303801172273633323500560217550898665100087637589155556228503979245391826598191878199326470240234504465479245028329742347102709493242093912851280915806515687672163187302518968072656157098354117275702462962282272074452382930737673948299439284119711398998241762252734633914928076680938711018355243871594498996803718881904784451189908601548329622099818666970021054162467815463819212507638168897300616282078187017592243153467430242828922278146676406657066397203241989430522191741404362451623367402000071219795848531149099844483227938034752739705181415596112556192742693193745819537283911992256862121601338201147184509225281202204033608666646718781652514382602758963118698530798366722207467437236043313324345895902072242241480155273918623676429257515788046361439924386231728487174966452367608179745522003469859477669306333777036889242516046149459176496257231901501851386301583930436038956629984382117539628072795814608520987511695755945773079709733243121085234479552768345573387916896992164964811346043995274396672530987500881745179762379589408275959544056012296126896988140513206572938066511739015193245539803672882335750505047674506083044550508015097335583128571962093502354253506482945296827603914735543562392839236883393922316142093734065744069023754964748490065379211929400589655366611238954327860025767042760648383492615022373156302418016108954903099798019178865259434852618745378358785905210524252582444921952852182552990080537768278656625035007600092188741192310516979756116691045844945720767477764756224391234594342736348600875805574186425827776969939798464323205040829797390427277787098576488694340068466355225476703712256117970231450124665628327421993367238478877836611629623129593781351373368188617258089121905974853509968210899528824837554643667924330454414119219988921442552302779895630617058821878154767298997164901178556168669917838162874680684702855376930042344341311171065283266670763771753746637967336509194704078025332822805254465568139256496689846470218383089218185183295521423525160999168803819450579235086320839848229883318384769012703169467005770424162756837221830177521114454899241961641152383941759979772519067376936802853206966929134086431118186411025621752284831628184050157081836540705434661941465471570346340331745135067871521413632422071443122184093076310219914612420061079181390661990303084263534861445702825717133975600756309728601737352583861141917537297252438701040258693733572021894482842670972084024112746801916383588301716364195769121528640072644727757406525783622421020456268173749169918193884393057231232225824255979719390524798320687076350883136852524092971950002481230429680883701142172875856377415925459315293517860046657685144316802266101066221423951949573551464067055954720114570050267748014956483560431528126877457151819539539283177523951941586832926436563282505413778078345408669635033676460491264908894291271658001296389517704806338395039618561295413001303864364917410020760883488470447796080162850702566975869032004062008617186303823546308839510811048953023220445354506854328558492372015495338135860610385983441686621549946674247781488605848230057677005685147493474192820864784398556224181157194383876023654312708114189558018702317782558538498167952084508370486150498574312506906224215235877122464692968155719177571021518228176170081295249665257568744818495071126148268791331926312241102909660989946464604792134651499195667830507753429582211630807116889136568469558281045155159390810124397750735603868272330861367379154229297539845613547463247218341869959167977480175376415250244667817271497490788492872557642037265712574546333044901712192024717797255826932728277529118942201220678628825462633003768127623703387587950337994819048049847481346249034051731168394120353281085135736072097999966352568104668498040717895479952992951012452038186656671446364936145273940433819631507904683525408242613043048577661078012290014300148264985178909052334304732103941938683395486206553760202371828849108777451453392870091441726709992418996326357401795313474483669166834700704522413261248431595157877579727510684798939205794666717409009304654741595394405463141423142447580198792610470119537921784146276995321689160221995951378762114451738028681644369597657079686093522003385150320098128530114110778838783189679235310184383001077926510064867638154785977641533721031444538316116755951135187733631307778003143765545925175868596819136541910648242593436117221715283082844467436688491377810832379471416357818498417724528875283536600321437081793752729989630726109522066606862058320325539016440969623151626033422419097399030101810186515149005679981869811902049421230753875471175211554645145982844444624430264503872019976167282520713475837972327192400537656986238724168089118555175931779348833159043422089962967829973132922596834454143043764424654049639804092040028588795962430783539736718385847280573435571685109938057629548531573764481264662737455019450012994700364801315537847800500907306062154443324193089508487766233053812302098748007241915871245154799271250236941398931051201267008201331749456892355771335431235411936149654112235924217126938011948447351228288781865925598620119927318246568853795177328336945289584939756518565014722757266839406178994509302970532917661343786293202720504863789331561187981666190371203862292901762248528012623557715227789506882865217428108489162014581763197410896557211347045955100680031065213522652845577800184959736246127789326797009858596293461343893522937112757148331129625791005993573197569312493400109703861429391395023359320475001160610086447360939196554343550772626285977995774138650896287488773529094404708500651017386563080794725474059084018683786706846005511092373629497910967912315913993780127019409128655957822869689395089700301550441590426867957719001750509618393213769966545296517868410528970086338233996757039861766524637189961473509636224781090279194174613579378180924537802393221944766064409073669347896159352733531376979994270011499577841624852353758529696153644025621351336187198231674587481939985792237862371149329414504392202774665956190174489509005874663502012519441879917961142399308628467309363446816683736396149094570958930406615509750676616750637543248731184703522238902490912925640182751803748724284647876162221464073217243072514664605711334312979945362081518297653851270950490616264726997265956345320939221027960678002558656322520672646643902456926408590751735290318424633305171517447148405213847734785086507547976793230756705090719713872179060579046640949943878288841952397128786552754915044214738891350006935071100858687584045296345411599031785264156241872792886659974609346161308525055220711693962117059793758630729965740677385147291298713950665284477410157774126244155616474494606480675220865874839913231114472273490681929666196042189643038243303711593951235193436043987412872013290349464782482026839553078987548228834099978844694446316892114068842866421488160250681843612624335228404937158121835476523097233927295553736613761700406767904068919099955389052736049344280617213414482895726741054883432952561778944869676613787742458431737249290553572292762122839071648461537655473456730910847399719709391593193015298453775882053141600327716177703309420825621952032115412751931001018625545152773728072749469970555076658522302948891924330451126361812638306011911465688417911824603514342949426712465013888261733262496372930506467616594417599176283820265052191131791874142556901902874680526564680179787974644537700389345793499565441670697152335216869412570463547226054769199682904210594965933576543398363362325014824409032862523745732713449600070170317608135444947532097039220677399986580396822057384516258099486938322112544096870722413483100910640039676241265838875239902588631594034748101170385029885520127461302704827924717763475445278398623477259552282177523621447016884685022859039160300224576548274809714941418541935079596068126772553856205080878398341249526479415542626823303026640990873686797950058703980639914780558569990984457519932177170484772676700972084840157793370041406335000993097610370347034608204093165664766369264063393908492962233923290610056819310685366200919495700577201627304721472399322407403105950837141167326843631683446276247055699425545529809491579407288089155384018723685871732931288007890478605279704862888046102923350406651497096395933484706160778229472335843994447665334679789611678591887854942301268646085967690544709271197314504380210156389094550868458414863450819538043041515563096197746378980735466125338093819373099649894013381412568890964046727786273032606969878364625777782778869184942955136506847070311936656266591361659995884949057672211263330107205349482305159192364582308078306060388893963402426451253765440621039516963650078849288809924521578186057557765224972492953926538274888112385440406848801026068284086371476272308665019657923122277985592938093185734692279884521175546112500392736955863650130446142531102152280454683127391148905738710462491267410583690654531620811202730709310299647433677869711452067887854634723259897516802810683326326693004467476684085573997351632278462725969066432370160794802834547053134734365723439849433195460680766457946058939898120117820182418440251018413228936595657106593088746822130561335011645781532439084495975411944945603187013146723312776147824199371640013538766549168791705558041526835142942395158331934498783217186302340372102768172740581339083813392227574580753409180823998233985316600689906162069383745355068347223924848074708383781652980327991153286185173835477840570608471860744472728902142204763050855568504385241686852860636003628091455472658058578453983779286982330997557360731390987156005628520421554932734491951954672662902822423232485877929319130207997188788405657377309701106102469224744698248003864573053771507474423497423404794390066436483465897178875365991487210788404966537790982548402725984920153208753103316551585853638878254274239233204751406267749737848085378188031500602352624491401429524098683925308321964874632026571667459237498790045812809885625959903378775587548415023466086157752465059382745831272672826815426395853693525503028015647021471692771102552556606841717971592178057831715964428634873359668959006026786964039501121469139016295876130894020937701495494392313964211757792899758424690198865542650435950655349560564854464665895362208668557711396006787158318706920846925362823019805861285469975325337139820441681997618776839260934169769678290828594328244811900421517469261161391864667158646940410281716631561415438785645785668972567977985536133964202487741290816774425106378339018994260174560586929421818432574910740095795024128743734090517312733922447642540719974416489559458551655072474878452565456854643587444845443266489232112265190653386565114484334288205148390558141034674968388142859650395151426399035129079040936552410017913903267594298838215403560206720515230931737746081015322848375406650625414576595615948883980004995650052769149569738159904206315998124717599641122014835950840034629855021845153480675985162249215587990173858142176621038965114064851844268204885713805453958227511525613988059220527844229961316500588298658851764380738217169596148264782637510633557086925745289343370778540089389581940640766716921933738313970059110546744010229264117444355217992036194925201358141349295611086749181584975575318952014679329803306170499716670930438541649650337803582907283226341347127911996388196656311752036732793759279522997667554201761420378481338056736551977563748572248026044096959378605431327647608887864620702702971690669050120496711980325473777200862039533534654388643122833613071917523537638531183967556962462299907754483155114300250955359546733965033299927508002752053210171688732415435565145108946622714874912223523106774541701136965356424967718595014416430973171486976125888613837921349464066614734006337430007550906608405429308589725773200896546710495716876758437396779722358926977189034545118612967129830505843289287222371604271111707761658075131439099219658033147430842408853974298292032839012644741862656700525718488143000807721687306626309965767210325469295977291033198462388549076678768886263446548212703868406223084043274568831429871846459685495219752449893808143419745934665947903809799647337093091482526172422169301323805139793538266866850379711582925016768025146327345871735881279225974872881957367275846732231894273416961347306250247899970724899783397681612385980370847352011521719413147017671796536142051482688636102707596159542429232099169033174049948878973635610601416872911196379337758795212743895391982334215150768027943707832036977977647836353575891115658624196024674423925782582130953654805556864338195736782791192985317830852217178605241124859959859050156204465580431472472403268182459157324071228417579260630569115302745721500408881227699413435122921095132040655419924684865481161606631271980212775690263342571746476501680391965170264290059330147874724961305159631752413119008288541579301094728972211528466789701795551663829269372750517961526662074265285513801045214189237587102964154394014334068725366838936975569025021582323163354869755366213956153267442252837892037147271698815157368259389683074759674916525355967303533314088619419979601228746424598896015606551834424186687951328300847106682102847611036344547749099097029496984600652190899862880543132149773200039575780998301875118373409375706806203151868657569181294788882639908917243856065395493952496227772500147559925604840983704448673728674624532467193061164950344412835714107220408200389772537107501793405940717863238518101228353132519907256213130879619762968639345635163433649422393885156140416386833778918972366174220680937041148241399781027211192019227404781419659236708246919197301482369277500248862177842578294195898175260155012653144123932432894551404344414166588276267513102190965689245212147981599992588870887801736054953238562141087431525793367395081270877793631111617315973907607103224824125026746657343628030716723516588374551702282019142011421702386164174300291887389054319228611269913648635041468455824390579940426622927714162579842289096359330977480145132953426971182751813638212166269897440082503192688845043963588238429371411320292690020954219981624381869323607315919078441254968786119524570760461181887316660081275762342392518078261830007493726271828829156741429458787902995998960403622709754397030795154408595318002272445805634569475081094796490586383446396160283053017147979888544706186829175670115520508491550482041073716559230911102669771061806766598259628461544494563917821582410345568127608868018498119945350680977205775727498960866727114118843479267491566485648343619327092903415919384783421412104904523450457183077335585347632773146476086562121923787006351923363831448012682024222663810591072508870635167310203814962179755479365719034531326869265604009965030471704932361216505740959872277621854858344796304044910190382779988201581772601387449827237107033371807426683865587251327208992310332045914940047951057012886602877257927703079109602264939805118596475892575313985868580631083122001359002700482474122914857164027981622331612845761767913569872712719513478821311246702263796715450574309871598017985660892564444673000960333893444682312158428405307724939932662864085726617785910223939614069779166980081113217330254053285840968211048401212403002191148273687528932839105793339880985210119494261858061015577554266238599284906094194588990823106951677927064231809629893563325853250450692858733651402556530451301290819062707992158626020795076467917415746334020488917657002635683008471802403046988388725113732417434118841396508956253324867266199318442370312393389758146263863204017875452485546239845592519359956243360201876025930288536871678087937566740020782871809798083726613157969290975359254195359534013358421321018144131858448129856866706761380456249337558552960007484952122693017167923257741604590241862883775387852428083837610308114630280345950684621478238232791641136001068897256878870508821023403387982124940683274290437834522693304070173900172267047239458401949559691073948446580879475989151907717218624248353674351568972162467590755193694054615765977023640553232789491864579751107534208202669380553038657975308427739958392161114736483274263838589771240931123267415129188733570113641145748654538783315866153150257772373795442452743636288167695928386316771535698059350548640551879445412019782591746333478493936956141115919088080306764896878420492323365948341721239914445093543933137649314119220783479551130964308154984537105267271945426201583975600061450740239808814468399468852427943311140456393493839885986469388437456201757566464570504818958137767673722831841430342156902417332576695766338429007507673273538946419159723572613086253843883116930319635780313272730343145110042653832341237960033782629588913813490923028987152220359381624144725214081605584090741176183073256484751118497957216373026553461903056839764358124147123874714353038107456206318826556089999313842577406673975495428905128138889675118325713370555927132273695944352458351828193867045461803921201130943560609207645730411122378664323559394761357458966814783000511378671847961906193387326903036768448893894228258285804374667562761163047049882874773243945224654004375228025614884362015664378349886254252995526440767901351837729808771116825958905992134351354537837963382607186654417747357957686551619153498835193056916584536218034505624211446276064313623468013386390530830967082450906132556018237300219299506845980603248664684795722630332473378008271598435313157874245165709606156029552657326894528093315787153404363976560026036440355468152391976869265391508883157675948179753732127732102029697697571480886525036480425810512035560018456661319899739034666211856945720159531239656910859580838726857764250526450823574096739494126739227603541642783500310593301354567104505377067894712879953157373750952592210535583487806813379539200595128093676131129133337535484926958131002222607012772656150414040863521297982097759156702362123977609947582718005007644630634874980734739370562187621917852124988437287484180490256478353588832156941420263989855542166084151207256612104670527894355420076962309701715253467296140101070079508017461879900869875611055972501267714436763793678862462342656944971683366551429633964829577412022943755041577170992335507731306148264509176959760318898811474166380622952891694742354873311339826769504220476354151614516260385489724966573037947518401460720629707719389128635740069376354559681815638543603504918156570427837896884849327518395923553333618119288440503553773868387305911326803039254242752468076921658621649601546250801964796787529177287044336454465740480558783855961780140660301150067280161447640547049393190319637886611794663815414677804832703935143561495122280603459834834378470250068628757890764123880468876308069802634161866978429282465379791216530147442711787059935870455049999385137196994842403865141837044814092620847020623036767078121792807161630619414251706932944199438675383569038249601999729342727070718446502877686303705958758132738127849572474517649654213659703294452824321593556042066069636632969272416736965575313805348094163737229934642130221710500306736564266950168575973742264728221052534422542601229134861223017860438307418593864940779561550917970952697485556996720306237949545815294213534098155632288639024754666349295262551334580563793772160802475813323428899990070203779552462254924221724288718664755820996417878184690755657588559447379958472269367245071671153941834515911691254021740479658649556580241146558758041296640499490490117054003642824690399766166540973449183017484000300708448405528880866425183593137994693602029905726217738999251861370893233821120522184116425061964627829051679128076627185202305652919779626496836200822627589714042759096434030512936200025678876699508013719279912201260477243769787440092626221052558803304564609256629774941779209882822121827609363275079762897718377671624018068176958687633693419053718089071526616101505298664523329056011399902867234898377891350490394774525817026949423123632991239266258780536983468602314000183304762245994611571977518498360788068039947543694194704300702201755478347440067022691988826682432929381977719015825432955021931021015725854435080129309604062289716078314156843607406129285384360896637131859230280477426893141617139981732172980744386763688058867826938199278428777107576273712153321102649754444898577157179669351612512264512636685898640453448922069049512274291263657023591230963751380201042210944551207435388681234028714519186259636432365992098518364205237224753280391040485037199525711487911352519259950051429401109004895845685023980276717744686554039892472317351031093317797418112530604136475603851168480040920147674275752253952592413588017427433679241403422442801608194919937378306301316078831910823953862477238292152474720163586058498400388089298224556303108415658046486085407800048242123637951537131562618991552579617363802221795135562495491542913268156517217701223290038555643314593737820738714971001250538590543805536952356652310749936682789300711896098335717808722453883396267288840246901760966259077106685799886462284214093793408453040352368906420754206585548238269159975925672517798999337107494919026192899263338283618405088233641460327897745630244458711883570279303367764685993484025215617814791047713591776189982459406940835844775156591405539138424862316384294300041584374925511638261332693064816905145880328228725786683838275404483589656798602245122637445202303686310050031141132807119300723154751272681754659150140948777448446626285265519426473490853703694200667479268140394111073532877028808891905737988255708977526598086786729210615681399956802594201374725053000267262809851033041627866020970917355194744796740343006326337271478521425513980461322154209224893809879799963085566301517823699975339216910099192876079922992771378870847833521974441837752229430008631236736157199503060051429343584044587548872926652449388417556743636720854298561344374357420020642358391386663132007195332983531382904287634799695340750719777712044928330668058803251757144507718802870259747357580260261298075473356656606554260042351227019793733579357086030763051742236911096849149007299578695953334230249890560510383476199334275036032212362409219849826922628773699066742224955563401047318922419647979437560812141662134264319222444853706367630545781396634447985801965228207971004562444053890763855931992653845094483798018891031598642761451920972742768220569210750868074979788010800708696520230074920619894583849403734578627260824416653133464566687506919823087554583811196669116383499176950265743168233819720346063770766283084001870785322240391524842749667943475061192301906526979552332168361181331548643715664831918638945469997835977330409578684188054522707775717820490535023097747613837333205578904408231408986659670227870945161952184409442195800088753244603529522692167626084561660012574643656709864150211758496727572160849902992028654835374995513806561603677627564909887709549387633647763158369125549795793869683328883498001390993724269497214900248120843237701932674610455459356219209628724130517086581450372132657041942197069438739009068088568156245606129215976968858857719320580641699085304156051781853184630942454391680547844769434235190222591499479053418237538253324382853068982139116449508174720785437299512273833879574543711080731635650300953018622787819291709529344095736305116915922223553724609987105572240850728115109526990862156496157581551276802064268437210379276718351551776273661832374986440542840599455287595109511224751711291477694926648613252437984633144891531555390581561708968385980621192746708012725179715793033894556024677937885266451512076240493945541390861828463341836930935281918301903849357284772358041718617101355716493712691865778117088607619822452238059387592874552718843860185616759398718088698016231637196669970257291683967962885172415340679955337459445353856419745345958799951261296480157439176999295259557295683330402027926088329941786891626095282816356875601960049751431252538362693658647071041831589639246544681767337936778328837072387758375187378018197870457017630753751863359757411861234180701195681992593070984035874717665380733479005000551979527258010568431446230794644635847131630365245022835300235175680133268486869960011282080723146476648784986703146725184576737174924859965421793147140507052818598317965884591598982851335099999979975699237546733496450507761856645802337668221031135675031798697160719076377410499608604027181739572586647164542753657005537925831486170171307332102818110242028285873266488319658073744707915065821167778946390893012448325660020469738757273099150823983620445651864031338698780304469006395412323299137964904546884457522081951358136708926762606620981586688932361440088026235019522876443784809214416394616761044796498341072142946887726907672136122505010008218079032733825382980770825537218404700551912357805912620409771429336073174927372737942875903076811387351109157407593766226424840194773953599018977243864794000121398396775137971986951922888780289128608287261491479634190021776143889625671677483581310988880988457348012740496891834353325318817040420771849037882943365658600045506545436253462037715798629092552682433096149964866080783712544046950678829347871278066800173333750821127014557762905917285110977893449503171529133355002036781125670670309151673599382737735818836752687890214836954205399699512640408034492199950046321496756975583978702603880978202537866772195810725167079381774051654468618856669809328023304766898362528969661894081721878480312555555999147664666516877657197269093850793777282855562687210334567398205675886994916508299192181818728837225469007091016385178348372739206700681608327621006389754819290514208719693728586796709343500954501725138281613874443927581464422944917163845552735103213899215221265732462357687556667907983854010651645736774948734800474510758276068567042287235825396422566188671936424601181802430294951932914553800217174181428200569752191340670002292149851197322880670620726849317390827913345759508845124248487130976165104577925952312351985812108595597114231007554968690589875499809994954114264390839668716728534269015450795515912887016246810415536213058692971743762058822948566253946080384323853572403686306038756986022741042121679710563284167707932195742083786927294179874860227567672346292119449778653662383978454891238926729538794208121015483786972652351237053051943896264005728179998050614623836544491103014215763947569735456223415016641313298524957140892345988836571340587578916855989210691881827691944794794686366597483056691920840415843944706717795723241229458570144187919207959105336300105118317959831256516944022603329108175738479842067851212466947050865790060006485780376591720022811929964276056774678677624480686909646287295693589188541417366634018479353680855570617763504010381634032344511128916209894951845647434646752202943758528433839724973074410624278963504488100043550369245913554229026625944330288727729539058453300630454776162555952183920469931436939706464736468708480940915891251840642438739830187075293260893085465983875002240190331157431018326108084043662092919892114582638254931465480653399722329246111790263066311419395802286485493641676386850158277553858864096077268848936288688137641545567716493637724911567616731250106670999653888215723358721996579245007876716324967710940022910897860875139379767999163080788258548994887870734200390855702448431175085981859426218116033515862479814815289013259066288722527295002929406303778502524899269942313745779163887985899620573855569689716994706676049431017576447581963187439149675257859682145436065857203997752435187462588458535722221110218508739362231017890170857897393712293937020871143142857145663481703575700686971303206961091392652639248493403138378259060442154939138333792353602546529819183976767380195401333713829560664204624446807523244343896496730816668597798117144013981550851045802127765695103670138097122797751615691028416446788881728409641412706763622631736599303865258286329926834999132376778468005139021778886372475083548358676464315338825773949276810360909482327886400917244789331261080886307093631631253263103193831152322764139100628251160898232941815335851741719330870848322790740979314706524905717666091327299748347644633004849432922525141675110846686047177198675951580613851021129627675523872255379363518905285209095455341366850500894203896047589888269959090557814048759276312573639726858054668177986563728295810202984544189915374011009642614060371802687285638639600675499483861127294685397750024381874366664089109391852610618077791344709910095794329429746756099248180608628296476287381082468594192039150631388524153343766129122750762978105441686706571205047095357247073753195929596327242017703704143930097703347094828540696840993077693118096270808254085420355104740137530484989863717658736519907249516951309208338507760901262844001359062705420400144244542245701561422588720408719629303130581690911065632015266440139414425371969843046702088333287153381463970489268015343401593336398966828730844584411011217220791855602588910014303693344968921668209138638643889396045958351642219518359055435243411006847999088943996975781722165512672097244397653512393830701659169202622447709037575545478347899747391589574900638288064963880039805287009551179150207103706434049817127485236461708979019436780004726193496998155346649948362389745245087860328620834733233312586877069045216751470408146476526056913239501254417607186410759854211753297176369677949780538534170269309486459354837129334668619796933345256211384379095732357419199565670211849657827713882290851342900724181947723701039189890387191698715871588487458155007190022703399012484248594351922140751909190441636126519200285457719492216504035649586918938310153510595507358471381798075507236304504569102289173485667132915041558657019992228913677741459595170283308978127248390689145682291016541764025678315742185054075010381477298880682524875415641400463751855156455181158574103140041558136302675472545082150380944485957162731955178936880401771241049147855753784027589770284664758920610824280559050472981843294667581883160077091217320825001961330329606364687860456979955281251540818090569558624825271970022978033965909745537003096248945940566652652306406443615203883557799057677207628394668198106899134164245130537508027958896715322100591977010175212747573256923625681416684989333790262538023819267810902392407276051740806753520491773805282471595037307014155544998526653505692241743874598550484017585013019810673606916380445079344152045336847974707564402930072492462725889730143852705707206164807226524058366184334637813675724965821499685162930915183672406478903957730541376069371777578338265358171776301381165942507948308335474080732345117886937223258007777431611437123997649181871587432951969543772581571440173127568475824173507979364005397788593132928306215121655235924233370324971760495452226573113572581444589476502406895733550654984422910221897513002346188945960852786529366028480299423308550608467116377009734637045983384571438115250110436334792391939953837832946929293207410849186908040493150562151823645212791452099977329806733845823357129406429346557542567490608538877457186087828403513360371724450584363907779899227355630426168217750813819257529350539806001235096044033199560825842065994800689610464692996073927545256784843801050970444263257001258493606763268414125922818854991666245479448214315446020842985891087247895165250360725005815016316336573239930115215501750169478537449815674046057431429167771644034674733782195717428291055887472070361606988961179764055677938785308953799142740102422111085362941719945930982692568901813779292863154828458341765841443905548825205450568362863087320528687243086876912387111049286323690366539598070235916539859159943148431403954556766701567658186975448792048491352360029993328871662916186413783244995952636631702319136299055680428597896356042657393942683139966904519374087812287868935049714017620992845419377723717818720319403176385083454310607007119181441402297173953793875775973005943812606024310566261180159216362081852669732955281319399221261563290715959810480647211933143007926501916169494041854998397591177051089216709063756401642629738875413907645171887970758248049411604233063455172109180849281780872066140888973137134365709336257458192008852340865541540923968819217760392121340097916114425393120393271144521571800869036636934948319376639503991250274232856165567534362820215568450560158805134480260793224370337018181236834424945557435540804419652758368216173823930010129366017259139744197700728627345204740187725180745485322763880587214643221459689076226549385688706751725667677183643190094722353048971989143385047521062043674831950805083538999964196553218459847555252057169867298846769503768707153924460798473902658150956333627535912508717364327965138578537469856934541354373950218316394872762400503343140028231093901907341445995530203823383614718498092034390267932542784780412385031122187688214511714047323648507733462309998512323895849656736853671062093007824289408026048168599719221028652442976435465615010247422016529654997118263333175406232715849428637638507158851773123390159569889114295559921107772760912290840433292685803269108621173210162031110443367600558818831780286871302749642173969081556453200458030322012522526561134399444284161276964758537751910331970236184878153564172203369853305588081431902306269735613638594827038255565545079985640908218541928335273675979192775748243077219799574401317361208584275451105796175430827046951116123814715445419489223704514912455612875859251197844823867331866925851271444630228002554770157275725710398855131547259990037784117024374250883843709679389256098030451625411286573842182388152743174897160876527681915587819540732237470106378495303432538529881718987770973633124878881300071833292658897472344751203423970177406988012080335711224972540861687911527395246920069781544053833632508051965775436533829874043061497883733018659424262508868121231378143731063929470187994667926093512741307497509942116765150742082873159784183703632091697573313033073000500889039161583071817849863250294736014421557396480058222832092262848736186130297641351022119461552083670598197117181579630773182726921942326027363656180258937153361643228577634795788712130647057948754287451786598383367749859896618862262439232263171431284429319549102487987974268596400422916881761796231907587556438706126640038917109728029072966118420362335998128660479903074477615776319043238833356264769107544800730939690168774932121265281576869640613169428064527424480749597724069724029891113776354921991893535409733314326788585211049462472504508871973269983451715772901443896411066910536217500370072308376244663256987746619167342484233285799811799942806887764526827368706892521285789093750938924648448895268787971492387245556263501631123922047564197917307168612091289807322430109976769152230517160498563116175686949108932364364516845704190704723579250461654652420876742550389574262854642360746729164836848257515989426988351912477678276659305004662710897127715493853725456995073745718188218273069794235440976961629042301643198215577432087843939642900737052689872819703578978657066804657891931577088534391517902866657317220651426459892827134938764143574408189050818028925977454732063188921539405877093882575427449153507499004746706082199159138624784597628750470291939022686621103394737900198932805443811448957084585104722558076298727118761271354250279801639234439940913903707194878502751707784595410943530764784486852126199360675760291974615295145509047226600683619857791301702898729264163672795622340118925181052173493177920826271425773210045079244223780260603771545187999972731205325643190406233497143819395096950267010328419775479188751082506524048680200740048439546144459648782822264285904253463659091898556207725510498630283523162718337902103359562439611333916050718739746788777507739486873512376348104858205105480934739416341336714747668834963671096910426440494343349912839613263691163328874778558837083770065716422536613023148066482404612446904218249442035287416833370577384403981881219044654633052146844009567938581188836833876882687780264133940167463191582608069503026159548776900849270123800444786958924901521122413930884051185242057971018694108502781695451129853585821763772283494338820011817586892668743823233402322406506536905186769187708380376976314924865256675156841032541114593467492868148411305196095981219579666807860718496452265626016034953646455086260377925654511412696312429569566770022836610865401017866339691240012272232674627777033889150028695495293219822947980543234566849644545205294378800103577648539368780628996075041896947292696715355321727858389878680906316956922668558864724750690190907911417266091905300415314498513978142923896340001599397701165982118944650432096112769953125010487861559900025786584275292256505763489056021593005121068666377555012334661442352899220727643204748445313397593729594590499581392912450012942628909693260132823307651054432188919370975953404914039159151399713455407483063886527517238025762986050953841938960711066699975621860536129809358135612485158260747857606810647020006320542647002948465219362603346706098770730085092863325067048348816578086617471810057190560933352453400648700013111624488437324122633088486304007299603008637506772831222262906938419573150529806107874158864448024388020789887518128680932390022140628213608689389965055639621525298374861952503454817443184164921130757975912454345435995995687504381101304613596788355282505295041920100523274249879427522263353242148783849031958905336968985403458131690231072501495438154067556191753559224687784726441269087951646752859337680648133066344265506002593794578530199206863033732963734069887095209408588175838954829977698369848704850232351822251423589525473761247831186144727922289904225196257304530318469805930508308738996259192973341312916077251501586514279264746738517680904132636348983305645096657258801466353161977715980551164040539990076164480442767017493451387180569370116935031457059636118975065310831844799876160189046894043843408516808028937354317485089199237191745003461681260646644041189106530908593520164600701064991138203809549550263811889852583423729120525887150966112215151209316603736891029307549180531932134954974161802728750276040007535629886213319881545470028343696012865494128906078923523573746217109127820139698629375057958528888241334905204379586016881183184740822159412081261481968723447475529518261193296264058196586810779062443267329259354086345924397036123530627123901277702406388606286607119447182548757069185078035616922164724535508189788703029131427267312369882317658415574649926097668414919530810729673542166396371146781644376356796685706271839096337975124247928538359854052457208344163893582819864730350632535499849271885812106730629172834243144281474756045932609280237070352306721732906127370398197393235954446512934891922859301695708313542058637152677118843137114062142091896553532094239116503986688696871019662159701871801263103959058534181565000890538050978612058800201482213524370816210971099667306109847486140478072120642275956195516133349222180017447384699800443786562259965165530512118614564242634448105321598321574441804798390126206238174963816594158895360226000208418441974018414072833838152451527189229484903200029997944260594971571283030895698127458463220209923116287307427173797484715270449650139895009945655437102205780948201672115888941328863445760932400482814268634873197609442552209374606988534573317186795535267533382402157763850880519635473425399825642646513140699156750860564623591262598982034357810737264820436154315100159884819300464262341611278272360465747645663310660979745049509282974177778349094486139342864282640755332847007370708301748934679221242422163915974183161794635065174563015218862928911303767361525631033345410197408366763199289852534443033761084515421778114637733180494114218940567082396937207245476110658067593754562213513021487326530882681606912289486780336011032071997202603557270501355105157426141849321271970437243311040721113016248874326831227905122198816237169094234644918637171778579366413027037874667981113510461212433420547009467948331170530291319719035779363958088291237542875717561309341708548777110018319372625175987440919547444589526841649593214508177602029208728051175066117396911137555652809832360630647773029530239085002540624592407637782686444754092982163650644517935578034511558476061454324324082303270848788385498469823387919545481577545793239245969181820788526171206521535852151520600511582067808322145998654180193143566168852967199311854431291566940226471309769314009332635819026939610481181177523490830994542825804114306400706426013303875020772258036955786465214350056818560081637133484605734743817985362228128208661302668815715835135322759195454558187691835612013920654534243500775029682007860511159872900578233512469688291455129677397840539206805078611639985004224458622011932991471536247804805535320785423135752385502984526903934631516451505097960432000700313446214229329443260878108210766412399023134717935238259513460090190498683547700124954280279734632980033375796604784375387755321440150703395653700081043980525111661980916080753804053545093222468900767847509452631307496938573214219319402618689952285183431455845211287350866035846332070605975150989515458550515629911875787722644748723925376506952417445186559922409532126862778157495877985301946286814664899963421670370887388680798364469741427608813789082984297910912126806425447036357188872436678917091467252509369273684091006536077945069293071188149879714158502485799276520352897612661570473320259840922117012077827884941047330584602471590232952637326086309137197873346501412052540363122395652809299942580515582802305398793792846150852022998113861925311230093420818912005702645932093368201301289708762715432959327019967503575625332406648259460670950389970827930301347071734451390417270236975668334388178698539201071514845653955785775439458073344767544711190969931458271360280691618206724059901472436207051886717102649253164139750163754311131463657295934135990402917770826858414714505423869356706306775085727575048981724390924584474907636205877651558920714659302209700124432758061627638963818144651714806231613344392344219701424872185033752887172557899429071729054893587184808123136290178400480188093185953879378267085160948348259776384990510299706762374300888199727399624492536853301264266615893856788914516455816175427430495957857003170644111221105962450883197297510985029971180943876720184858374930823307174048371285794708918837943667451123390482298906128679142783112006570699403901358583487947935997986643886201143450319669845697479857326603394923627957427053769985472603269064567574846041374482317800564830029117208977423785819100290510677459572070000710504213300505733796838167572571052872311527023570214772083034851713486699308613911639390613894477848326855000311693372369859412222794897022217038502450273246367624532626041267097275019913566241455762183045339378515669219317073847505110884294125673471472025446080589660382454744687037272221027529261322617631067261582850145370575103634917119230546946814526180360657975635660236102407619309570187873468845669060825838037471292541488921238988672914535439525425670763966623213484656511479435791761227739953122727609611268526034028446421737192507027360418939356031757291220332131521059294132137769151480293063497926517069767983449623974361157994953715284713348792963723950630837642873478600859636459625395451043639469998542377579650800960805964314791018090112157198591550500340579260181427504197170509753682284076141031918847494549054986935019578712601287004292728465499926596125462499279360461580741610196603382756766083051629944013671505702358913302869631708935731977307820928047664919992182132354087585319033527103082746736965375781139616365989187521305086214267760342161578423706486922349839018872409286086897132693809291002915882629508921390545994178061221472640401591085001458322662014899613437565717004300302364155044426550943555339916999091920979694018168912701463706814573283023639846095990405752411055970285901107171724320282990519890375381102521994176292915120424383251684167629463428486804298844636442350862379351537749884590233165463997153457975618767962785819816961099888280745144553717074005706508294040701035920198841717855012389465993787857977151229364136872644866625610534604099215739230367387846947241429325484935733140103326808252931115816398574848965799296156126638423798047133996010966797151596225038860092341504761184278843345269838343857654862389748502907195521240631318090340841506510592769829399398617726583174766369917475384204280476310830589350834586890158016772775704459581703719550362391201930726678818947241707346782472196195101121146649603489870665305947541878692573897346918600061438670466973936474471700565714591261160964594877119017145954725775894152003279835821732269931913685453930796194602941567735255795261859848245941503318561210338757144156557875611775217182324388164449957946645727188117297673776046893756347743606237281618869738468541033806006444892372936138899806066158893608366765530333123668205836408924431615825146275087407221822179509151873228932885948044304564607691647157634862129508813665513580897720966970862680647218884346379837677443783962468870054481321047329144505767847516689970125402416119522735469010041681241745461742713743647949239055303086136048659935799710380355296356491315035669891859523380178407665300669704931147497896078308242252669795023364650970866607078949173395058256025533430046008961178927960449512624824521489051722327017916911329699291583223710626773347536901534908473278587508354198711502569485328701368785847046464258254519760605500193358464367443679596991638491911028666652169612287656207771139054338155449329781696627399718862166329461111716686252905377057974496863777553294037109162072197730400130418434847396960981080071670501840097953293032862005138114318247018475025836573082945513711059367819802747715448446398256170644369991311552088879891463212107922211487913690391467223737989730513136543459801890438187961680203880720673592513349437222880938299213350686794959383333395053037296590414503755098999136011809761464560354553900546241779794333054486130279766623634106385511518847022670378339879896080111378932487771142703329498266541441234174240703231148080484888530723674843220920123413219296471901858127837460738434950128151226616305813117604010763702648984801285846228215785221809061045489137628006337898284028073119846467234651454343216277489609126574173513986919903189139749165755403519013597410325926334136756883440445822066091691207251378961567206912576397539698062114192039574581675296641273675874084593866813649317661874011010874992133701824716794265200921208642171928458503440664793994395531599758104163507241958515509757317545180406084987354251326522476282201168162849544432585541278768576804679455901969935636362008823009355940142739813340580828886362547626977667163675373705461092367032730597378333611985938526551423713409639775878849837588179650998111241786335245317090094657190998103270169684546753223799643282586629074230827270991595488531791637922712252326730513481044293884117404027162731365720602487734212020202711195942211870713135210652975593558879300481938020702295832282276188068300736633097560452488168132669853301961689025834774336497794311773876982764416441953298016232534033234814941021306502700348742441721166294310334335369953743053415026291564288672450992274675955275250760860592597774004323285856180440531054956582513746420408451356389740544963504405502809378041063712550643368387091515059997674285432249117734774899009615251049190128607452543905731214165609735252446600172133612739088717381251305807065362079195235460492521026751501548274522266987346092570658961145455950004631802805845586499015890740720989421103858446460352941963444731836122898480272088542301300883408175718720928831424972974372288529995105710945705206528422325594660337518261931352945421841370570003510981879141678187462846546552852687247486859458364016131723314457694040469792450143431071628691195556493077064106403983673174773034981279498475038805314718150185834142078903995335154623497137519175920390535805849292593254986502438816680094685381255355181185716721871893909102628719048881208323215390557801067725346998514849509087109200022072280938690165631839501861026791906868483649817242266245517283670276621903399527067239840135262520068140315591543561068604125059747643513230345978794202792333776009198796547685360406347237083868619870337947804774490778697853857309979447010941825424813134947336453302090928206453591360135911366002408230933911401828560812063059470009572860450833775859344169791792605293042722378184394636181334747377560792859104890892072450856973177038059151282615766015777200153808470482215692533314470619990471522018678582784104563184693715411002372742983056407392559242269550937508352805910825713396159729599535911659880969651122057288328834452786906783710815741938426100287520303410257899969504323617212238466620579292345094938361123884630793621888679047775176311200499974438974325297749564559529381479416225898729564864348026237902397899517874623612345024529228089055636637644523755345816127332141071637769454817195516204278038806360524918140346404913629431890293611720381903542771507587958696819463094223712185795194739586564919470723314166104972069043240104670035038998345478138252580610677362912642294021240990855312090731774620735410661868275478658357527920123155910351470117526498718317474476563582837176397397827631654574155090527044752663558212867255401632459002390932813006386500312173515552685919629224630410888155252405038526550170545890667265993867743020351891953500783931568299945264887508688840512478393573126338154056953110531261562980456927159618102188142651308856066557786812164971853852888715691340555361791544061913967348314597707566237942478780437300041951822034842586712645469416475829414887015576871086521757225047748830112306132703889874776007347645183958131891522817294340990912984896029240812285041366838924890647003522158549171190343422033692061635766600193735038061570384851677667016708522360878945619367171243511207403541644791129701302409160082516488383575012561959093997509451733419336846046114518885327334078708518293971515401159213168623146608940995333824085698743194436632753556230938854399724290326067558298991731214206696997925786546646302370584579775821485751761378346669291053366556185424806143137279912952710868524519158173617010789388038548087311115943562320207085695416273709125402881388139922979620411217597679841771571969609511947400245783496214106914004883531221580319086518572785235280443492352070135620784150696940762406182642534420017638593082382917658642999330328457888546442768671449379241833697487992776947825560878341013142035792930645621671647252918369993007274622444961856836287501321998598688288983275727063410655238840859346887067173930106794561607080369890961640029764969215799721863221987249826761739367887327903241046942300690582592775850188162792640813423335716044335741745208563864610875799961797150619956314986136516728636968385147848263838047654395429816426212601638651735755682817063311966604028745775060450174680553614616856653599190984084426281010986988943563290216115788486650710090495908810646192071728585820551685218229544524073309162781633780531942571475584700737287014536722441854449355827284265666186190681341381671559728732005837140080751353663604726938229057639849799164286398038458316112073299598994778098719229028983920837223696449996046561375270510289098557330098773678341848212558191563248371147739005546218791651222807398845904153882742066345630093542101783576388525961102287438409591011778442070567135491299373296022987691612279707716353131453968070161439077050741075139564046182281500372762846072457948447923733913621832505352201436559018302986095348357161625285202455185170997396592805632326363734352725404918780298683589068333975695236383321320353665242232018886477934369802805668529997160754901420238077060707715655853828900390133878193300453689680810578290444290760494628043331760504307855983496365728431327247263575340759698228065918652139357750705685711140242838499125439302789662579669248918360830194074172956222977329794208690096387038129978396380379899584478853948738664783004834996712195513544793199083159261959574495869243427135416473253263948782660158028506007083858046805971894289658365168116860003373227436172310616579981550088464980492373154549432971753562565042973351399405794628415260828255931457407862036999294925096631019518771530803802036949782845422315494908095326299120417504712592261647943968842510717393478655769904314749574301206935705170612604661622182242652013778231483802819987875545347789312776861719251165075566044916062732366364945885305210261037957383275969558503171593268506879230700449565923096233636309141825044460680371321731149553451525269024194390353998468098828583652619621108560558761442282012374078002265664905317341024715037302221307210608519778755104827131183385800432572724022534844323461392629326186848830014930749939000563993592217573892049314497244477367067309710129888759866049626186073769171359218098990707204041961739135330890651996046862878395210133274161829088741047982158620334299763194646856539765737203330181890289364391731980374922307172151940121029101832552462041773762631583923953968845977947676202615890759997550966022778017114163278582806088435014839919477847764903214096607100864830234213722159691217224078932333722013795329296675816062308581208741429672922383269123359529758930629759649071180440756237787587000190173864085391210931020625024284993467827677764635806352350695773227021612213512460646126320909115916645172527387044171611517410546841584121635736747661007430950224128557790138664251172845046554777424596911824201386184339805879291196217371491781775991777677214143009300687280932979256789322846370953344527851669303058547837498566501143135307672686759080709853673224146892070458222339572886479023700048233342358427336764823048147132153444823450807642234539583748756131518720403052544886562832975749141187253048859505976755745554638454004220847196791581639519424266216986149104627043032846533827555285974643859640953210841965956664722196357038887957127428498762137928270102257030266400690305311254191408935159502860194872536011340353309590003119179240450693616214468369214366931324063277424467876977643626483818911081763197919230501365186313317561774367125003591742108249069999109565810063082800547490234672207776505566516056975538913852217728198005633371837259370286639936243455399245264948284256779742744515729404622840897046371993322130543234265870145206107172503358362054216387320109444544100780997588565895527428341028907201677096606086272969227528689723858275321761354179498667728043350164699367792502359602511080948414128234777671409559919773136597582261739487472092951614067120321609100337095403554348498073858483086211621805536659532329308945512475713681002683530913394988773352016228577647069862466521603100088938758755657587153887896834052650991533363309551061941162511491021283009887140650336757189725574797186091520888968006025361548721163960062828544330606607245876801169007474150129843547789070463420678718824242457570610157869933712008124829615207761462674287866255547730455642904749246787865938756793684865705008675798337014304291352734195573189273447272774323645545175254605964122773560848581411324025231313010642877711027392440429144445542196383036046564336430557574761958320715725004539961302797238724163152193623987723416544912471362912971340103732453025343562573639883391308207122341674304471111178178999781617610794495415705972658085782088196597181223955202199527874374664856462647210769736758764075896508991536436457951163864956957669196135065432113098369406380173068883640109677475909277246391285746377513370662914908312256866298164418046581033297458627415910568243000612673111463459033907077346952681687837133596384966578218785995654087845841589654823743937563595054435730146055178243741832163158770927193421996889120925042016702389130979028194453469277250353267647981805212943423263940750223486097343895342372544506561025061780055344795644173892319971579423282293513471634432331427010398132716950698092720427349733648949642531642393828570071229125519524709263079060774358451656892916020521186654461965587844252514088206412875629882636618226548499544718448320578972842377038076272905484515643633660319130136011701138983133400445094085226692888779957109621395696931410584975507399072477980880216951741133758172959689293038585837071836266360124190299013998814349369667792764287396261974831259442681637390734958103712870154349131088773142507319372850441584192900058784355410571492269911151594695729673977529370188225973135023333003955186315193126445154491470129970408699200913984341179611170596663572558209299237397899420025037277469081503332552683393945952510459522485872937747345495604690759008640475508614705941508304649331467304127600733338020851848153106678979276302684097582348687881489304113107292249257774104072141179589989942698571193276851422608943289337142125144712882535272560378791167715006977546968538687993746219817643231544526633066205531874079053482789700972448218903515758266664958899597429468642303652048806369252344065257837854934102014195136250246166657560765405210178332047287761659891604210768914927699719125765226511337818756250730393522134954416025982831539488115153450823461988779754855072628280436944813914994625265562306668379590408333048005126241175996610948236558238905729210052300025593647183141769918933881506851859085319253646667649260139892147933513521203526896765491270391581360994919846782467846097288880344518307716291659899189774353608556491275910502257700639046857826127383028068578281465232015944250771400702371139309122952298357700131913715903708162821982462904860826606554654374796542538826822739864599912280405008298398112955160191404760285224931031614716523711009318731022126885444806525815858015668276459757335068031756470345477296541040669404234394553698296138750676885733009258530787176825646179411106489274351746196950391125730665244075292653580082586935819038030646289788768198961038004535729999126879596010744149284924165062661153255984445237972260861701594795293609861745350004624879865731933240511972514518325916004876168624718588548940771396758454733612156329966377293646015291025083504697547062246290045799250374954767218421880300693182845279970673010574757322449924325542404163590293680239829969946545229705555162980240591440172062309931738036412014160442738916183683406942043595482964652394019882975125230617552873617747636134425472579407728355555053385441485053705860270374742620186093203032364181242793379463563225555728909372890342569444743457381294296371001687519005987670233993738925592873138134514347783539262526027204404744951966137443511990309277133482613840446665863239425902085753953377993180855048644906832613898580782116218440888604092046638167231153481116538271345558975977490084583148704783311712494972136414500237951813620897279626560505516601457761001875276579386939842008373252775639021989423054812807972390556924760418679171023293688693597721356023755111385757323099671775442950236413519509042171649923928426263083943578542577273470554225791582761467801037373847699096466883970595531023314209906051271219609417888591773102737170485836219326323373813944692516360248685976076463923827902341090586953723706610869631588894783940552345971048585183398676946472457932526673216651539120987974745922207546761416855036585504851144435352798298982242714340632471443150259167190567352292690578305207590714149909903413635670162610167756081717594916065850151007013327788742494749096226121229741389896959327087643248827569113562237204046456350866181099772470319216565185026307751571601693461311082051698975232026735163477048171408166839791306555631346027041455362202214734667552352877567491957741927204476494652465380074790492460937513160841210374933206399901381630879838188415550181581978717634600863230947117780956896870510628500987245222185047159033376364918835186199051283977630124232689583063393299998941821502745822101924671560686735268640366102040047887398338480909187079055094825819088491331850692763274529260894147130864919293603825939561870294926856967641681241005184399577569569136557041855330188547279038921501531769917619880967652317861951866944375071052880578454069939670410880529229109540101104236419062501219251344256678884638147291031797089893006024203918890424918492722885534852599555248870240324407322788812728813600865528386295632285930771056122249333519087525329057506142382429394634260306298493038569880974534362750368258488941971003443360262155893026796108165378980076172838586567930327525566235361219536334437309492270371974035379289352560216923194667827836517742427461495058342975735212898745669471212179338648390922028544899444084365275801535394203624657563103954102420742387956478020274610675120010069240164066071511345276721808667125738675107647527580458187341369222536107138541210420785272496586380350448639678308789553038868732117360397828519388988359664706380436215714335948697120886814806536642158833665705459042429161445216247983353117950339763864042993809657991097079044184524829863010785578214465772388758126130855662179413342776680742818361524916387783992028386858066979976328125132890321456996780627080107276066043138356601513240272091943954211439859687950562081565027198953507996633921416634266007125319870955691994212053113554954248394189796935158024609911032673304761773579259878671193874386593769848115294323671545639382981822965867767469124491354956654047667532465503073307817985127889655580626700281725699750735032923528432455096654917452141987496606670938854914274273319107866134965276118373380922000760379442638242431480488969718123131366777911058413790806806471004786215721320360611529270816780412507148092904308449442890266843083586870588721307984115024263037732539301216394969006382577356337058025461142522132100229169404557924828483592675309188915729602362887007975246154105374846463977606627741731896731136984281804549696246846539563139239514197079916380631195414614493792112340026263082944422604125138741845856081228064947415084815033189124708575036040729428966117625105872135606977686323498605878731160848121866556884541767750056127409674696494451662120070540887087063426259836321708841053807315544792191474277115754489302567992027125912623444325071582514961815918985743738154599287400763151666717855228904788219613400766509149589292081919067975315979973716602918176271158735682117461889266953262163068333665989547677162107068491973888690901809801612925261620604120329972910003205252699022023402558585208854835436334538096973753196103622056323755225619697012493184835929732374498078381474957104414357495158080361547137601029837012761735007622326555810489333860320188193692591648730717992616177115165814434787203148966659572145542730153911436161469675275726187014281735085971919243251409304585890733299636150275629691089432434879793938401851886823547327486850198237992432500433040850915317082082051609418828553645037511064138227083347948142910154584294572646734584874232229803428791915501307111754298824240766087783791306689186677465497079550897542893294829957891604603781285704911362824625899021455570153127747558930411650749906920397408384196011270822890752252227836123704570780574119758170448979941803567439371957719299061574084497422324036353077873377837293266394384919470469303482759340217945031821664021187514883429818043490751168439867704316339375964009850613214128198260258637316176989605046900348808245144016866595953024949315375470504097445255662241028143642672365103432570666535928539738843700263720082856132720653528851359266175387832571912612252691991588443190796352194311507239642486909269174440751620672889288048604253828038530051451728485601869304213413216792007968038327693648135230181456946382397997997792245747296548049486601364647102367083908444701352055240867000528462575770617529498517341585603934091296578604595983865982230269870661142221179246006563716665951089149072589021611192103515086581271454793428591578928648613123447455169956069338438428906960575711730492342630074036366991450334600543856383779277122477545378135713198087950303679818734248602924273119577992220995565169947653466570027144843292753406063418265886271989049314057597729235206778528056630371703182965565416904332158144127439522205848318758811175640040098169714926706869261923208180824679327982209884454164962508502422614354789047239258028283727682344264631653595968049308981999954046621004644262280540952253537563980056265770473707234744012503685106305455495096207357087454348945060775379936981045336244208655259714762205273077138295693289697091073365593154566947605961681789063598568872638204042068570482219337233440669913835402425131461190704072667229216016661955729769429001959411678152602746124774636414771998347129883950023289371253576592764405244970312026413787968422372898783827143286802903952916989741287017221224699597426860041065842727498467764531268793830340820363389541058113417388596336741401725769943070045630645388297957755016433146076016371092588327245643908171612762019735393606137127135173795710485119145478558336591164091659299882977239571110066809960240990248569924392442701241446518998870519897381999414602991008877796446367980641438269841986063396813217081713976936311831456802785340174025419793798000065082589642863364454167271413500683592064536547886986187288726739967257567846876069890254839907642750163535023997570026082657285583753765377686860691421766227572969730634487769218722551658778027487789611625246044925391094163873082237947312545601015769897000858231217367131931763817269370319047403375405509560135030067704489605819615376283771916987741187392826599567018854182694066893845168083971307093584821488645135858160719906938869235878062331699047981600792450398549394212408312060277282425342043609382234905722773147412271131379186024543243292704747149040058518280637641700272717720216929125949608217410083771501787303113492144222576341279238574694023243226595023452292593663304185062766501673718318918225431485765660373790758586688276620805474179196837026949634854434996370602022459357994617217748356897800256724369449025213679836684197296736879683382969382168417723426331393460254061195002402008265191642456865661165537428321555556751515295058233255014724230789825716771790307700656801223353366427306628473803898061339628026499080798545941359576417485204567545419325420201989279504966208567447766497353799287080585152104723866846785975468018864613948596512123653736888916652512603570836765089873522226221408214380095879982981284763106435970631623228082494051586996228284907336765482945533184789287689373399912113719599908141302992654452431786012120438457383306811409643610239969718457431241185182157773060522535793362830336471830873999811109224794868908561658268070262265883933559461028628795664832809393614817705947672869468096255533309061988195753712837112724556699173880103908968525265046094779912548993779313616696878048349061177116213651737998804530630970789797971492298523744187713998098788692037422638659226975691230693297640263506007653896815783064071646528033556350347415135070387245515080763737882124233655112301458009186166008829932536360193267310292989113124306904903339551285468457568593246495091935056740170422502578130607481146354173487922519100169319940725081244890745768773375997293970778012218560456951408432781262046241720667836078963914785577863254552586116251321165653770992781530257644642203582525379228100101933578637990165752293616622062526595275281446715009653724870785407848807687763463305501620309918896884751065369331279722493004439778105831286166783215578961330218811167940271486949479508270249243504084032553569890358469026358118311690863348851718034233246331902674823406794467122629701378318514085602195358156673084581208419599057863382094720605696707177729244571639898194535599529343069437401945994480374107531119487421076111130880821445224444772637733271087677930620927537501374521993132834751726187242652690161304842679419831490820279965008418131375787072310747933840742269951973266065868368435993798658800282061315900851208743134669413920478229628422304293066768979071143410866241799202513160163914064547576207835751384458067267490619862616567467974206903018048374872779871967162941616966793540996254598518877174259499576676531114720017310008280415166864709169519486932722667721067891747566508677495243612786950862883501729438246526166143813035604030862092022705215155727555257254361289126470270567062120078283684995868925625112373527938391623205978542371546493628944719107317422459854305523435970477892916064881201951930556862100130135416237388026590382331037727385597322213517768939451724603918037034742512789076664064036482412120723801635550333718417377510849076039822291914433269138064425030831657089563278770685035033064149456397651187496667309333457663385802799218127986082496870100356229780312958903748047111680205233234280624317630088598959962154893928107256040054759714525112834827713698643883251206765924819673186220052296395200360707425121985283474081988715055504770496718073082082276486760017374707456629534641846910834059493864710963098317212565148179105117873015382177161225329796131443894293788083515575145007182373954434393343926474535789622768949734246457693137383142046856045949021564960377607798665818590820666413210491051515498829628459459753891356008677395114132762759327295750136290694300688195609082088320170778112365843919274725191927954014380430553383273360929393513245842245522308744079635794734524895086488034032731123560815776872253169036814607115946605966539251104931109738990461357018859511357690028755951754042627575896283937816160706748674217157250572729840365697235556954975942419471649042881684324021742429568996039057337824835571514262733749572407157369821416973425695122013152473954023714010793481317139085486550345424197887251924479074714724692899054293144866998273646960293227765786250420751856430332396858030711164883006341134250267894898707719522642008961593706615306418598867733216527054352488299414298200230570461858932660029923518483103796708829211968049652960993247655043305876403368239299887766352596036082607440254200926879655513260636131559316109456676603746138568063721340494283730771072188144130858990012044693284278394564394154211949844296886025429976710118995995210191185039902926108067808905617697397365890020713267145351832396976375855409243393815862517537862544157244463270502606948304702874030612583877743520201656791557814573164746536228831768534031741629092437198614460510402142816938992886947588153845077029457410212479425089507210657344352898384417721801606806168347383349722293327257452314770196995161794691661291849540166612344599110500614233968940822172458892682008593237620654685539563361696546225267969883400327564048690063661911401093585817610241026614251557373432329004119757585882417324085517430659511533745864320554601708726080474991171139754066914084094753753251810987219413235531956656776033374576788908216498746818991866713921250904277196092636236644167288312550187044719090781254829172653006209445227150565473600122261053405599502684635393940979345905067022573400936867455581485064385536314464747043983273621279404243755105308955707121426624696210407282971053037142202091127226248159312627231212930049717078901001808682243425183163220716124056914072459749990229495315915465794887635074803059053478028966888338438983574868992569964584321978215344272401026898490731574844244181207396502881603950400089164219545324686990849072804038084606895292890209887782417729725108185211383265139826217626035097016006235288464860417838285737238948275917317899938048258263474715925798758086713142169179163725541795743472186637638126247506500975822698256490307577824124030071776141768520137261355023297229078382601373042034507557202552518461291216828766042209002307088914235063307037717607697077704060106136226791667654573758906566974596841936440335838952981758914098674249509323318983386387810222324912712480297233840126867506440631389429371941743620985011184678541414060384944814945385612157787257104136073903857609478258194043896914404582127952436386941393976482516425423128356654450288041955632365758057179698203694816120246574606919191377243689073500236313919703548587320273849161354101328731825298939461399714000824298207815936773935611039712358038797940588191762336492810759912630634964619770618543184536935466163581003882345044137534590401901632303855768857889484486007929282795601387100593589133124678954164654288531699848759383142366681053931024749453910645413676673572736510025278195227327159354861814785647399109907715750725289526931109687100789750180641855245475898443095131222320739163020813957083025691538655021595375865270906273668701311173672959395568801163818342336674739623161624631680818367953198091965197298823990305100991354037200517828803985032390436285355992018279810416777464167781891966191692901979019436799899978002397882699140584159364325094907474000821143494688046031852279758811972094421441702567876907394412365387966505751523532160641753909243416283629909436672430967631290654150309286073978500542077947713547065191999278381239554482414888533585892948210430116446393593032010273164777367337498427228735228466531928989262695103197970768209656197139613203184329364380837867965863548488307861238748299363935153331455781842981213567582999250503717666482698374670194262031676620844506684629094374083491435642270743835635630866456261708907661725737202416571927777812360947742710747784210301787054291303837615274681208847182828456233902735231556094885895266201363797580997593496850687394028711414341499979213815699658629121048894264082846305756943858616425506330919471375627608537570549028272105026075363834703578974868018111817076674578272487913662682000123303308158621618279079877718289278111006836051792164776785293526133570749393315676629210906729099150169542205886784342779528024679369620920642239707952153779503983515528674902112701546590624287893175579809486450598808891176670016121328564276724128197558194401298452134170862645068286661155960618262554561158024003282551813588286868885739374177005255738699470061562956217424426971485117394963619739787148127333835983691870077258194484977532033168634173050555743332535186078625423924150814685472376507809123939865604541904518475459337409397415296962109048215578388746722665210361680589659636433991784915823356646151524111425629782149967725977174894050816174172048958646662627449077849779672203473182153561217696617678226798159276092299600313047699724173174929149976137238286580422488471877492738503920096672328056178203838725422506418969097643038312383778478729080686947574964510962734115882353772488536427278412924702978358572626732707756064854736876120368999879160581237778984096521399226141229793178267950966139249274625166381766477442179188329015983263387607105757991054846826750749808440856637998014333515569029231317346690757070162418358372577742524357684640930180992888186549396744651675305704083930824133787753086404246580353364788107815275694173287499949368806099022696992809228398280154056191783943502986667647043640458337924839306584525784749349514016884179931337797110312295502557788357201213293842790558980871725384394851169865492407247742605664066857836474745823005851076961056770589125238243424536810074903837289981130886914088704965181443945876660954800632139023483583867461666466314113958034340569945524064949766925509279777705316646845007201242066968125322300030200055860952914575887498736793224407464519744773935852336342582740230238585137718362243166874164805357688193304726045296862109582104895777327796175161941603646382523431804599437699532147748564577545511628838939394608053741974572044854980822762406281664211003789819212355197364956112162778104796422356928606661551127035714288291087512759220181235495545508291273206396711474844658082245306492428606044770243104355540054709219789105845498603805267768586883655602463100071031206710444256679249087472071069997749048652009507980073545582713273354644743289322615595833258501137102320069182383957052401166249253779971738157068566923622616199201784764183824660187897981127301291048211047168121087799268924392733272068083708168350123474107514526088498154219504939882805444705735403716091279560170297709472797094975138784476291756550005461657091895145274123051268083790634654542470376007556761526850513085156816666485653365106933109678470430644029646924582566973848548702505254236416554247168178722920316882029525638549656708807141003223061373703015163486931283523607439379452023077734281864314548247013328979142683427319229192824338851257269766961324334431637165090138381001542412037577328174386628286471106978022957775406226242788784985892852167252716634060062207666421003470758819670758291206710298957742589524903753072382287930142491255227454897571361407848713856947257702570910868249121794859625656913027412200965278656405128664471949393462761465719683599027168313596784267794135593088021832229712403560880906332459578167942791731892611791233596050959933709614753443960887273060584392607971375393501274067632301448586119387642754251246297235456495834691972030212444856545957520731337701497999656217703060912935048344233149708493747128863808778703692791562378378479678937633947289546466947425794702535203296660690224324443443924619395569947223937099497042521422450950665069619291661701754979585224822779732367944463264179539447169104179343049771307169867408031978205281117174438926323532822699398707003737456108711208762116103826427321313194598524659078670740433599903130611107465942488158473340304276002284410620675623418091927429111867652237908555780034484720750808335040409330497688272583203741616347177755429653884683720992416642553141401492118881252834801081480546920993829005113955904100816763865800918083614424537705447705320862752309921013415692763869594107174322793502409149556194183917028162238899417965141108737403808375421465358127226588927409577709502107836845728795309345475535072815067865259989941988020599093386030223909084887093089284555089466978709357551312768272122390405210451869141263712646550190342033919069225609681354610622213559820117776189312700194276498963472552000779548858238962323730891197518259010100411800778451013137838230799241724754462020050252130367402633336498747184300985915386968495613084660922497124728152110834149960472480181178482501174054224825268780530201455173056318099866924797678856287293914999497476859174154894418983198226420120959670815783521521079560626050550236448063944692050804880036841078130600812490977934594867359391415969319347484500261986398786671643394623587627087339071384089354277829378827720612003385384600549386208073350668058459892610064059526860546980972019509323901817832415542654475480492833436620009313259369852671067367152271971615354462544394859542892189731180234388959302979828669931116877593881801379057051187927519077384631470034566478552503919454030000893539759917608624218825261532203642730429472541782047320714405328377760677512119237441643314871066348858210118328021306588383681906446625135115335633919010034107459899541828034342444247433627611709256455229326908377881243910386194674827188323597866632663469844478659503443903486041036282366061635773639067908663567072560016215428282369706434201053834969654165550932738156079143608676783034949133453956408995443338868611168719422746565094382313067190062234595678964455652362984369665373330523113199714585625658845817662600775636615266914406045398505076388737965787891050258123991608918755991096133299840464762871756682285102403999460806631205886959941622876188929523180232268479856119884431507402070142108399440657179696318351744511233557418922233915756029488214014211614215402409734910276599818843650339838037709768076038020389473075281511067788636692527613979827100905232518593270331041789329646431267697466761700441340508220946266037028680998972872434215616148877641477846742958953828972369385085246846922235608008759938994465543467566527763029892865333737981376563935254647136639272752053104690011773488526463533649823792835712331162983561371585853021112335160970695868183607036954443644907694575686719392689857446681900536039017439886189442604732395414239847238591222661826128093298921136416658754480186672073153962926074970473341798155303952413771195450705832969614411791764065784486317205028818211737689898890161199779976299790647540185639023867162188711696252591918107985275522485877248762901364886284994824316617568045868401094221086995761393319425035945693112360991064400638460587295705065941749415229098624381085569657697063456544160141012442008339109606359785522947111333855295579758369884464978993277049113705537223581602043764427979404580154749853933442712610208135109123945253644617092117258694777686425140931807104885986319421640434622401795520945116299334417126257495521751175597110281929862977950502745652929543173667550270120640924280240911731652601305082515213699899412774416542291559890033940919876243491886230595899421695393664367366112737205172085689517649242975851350397695351374032678684550175325465286700045317215521164690722543504991328213736738791579416380769063867822296080315190901542165830735801491479215224033387061417357615145465593362004313576875430135600399885563145158821327218596804932272451305609203974935110866586912215932786753520949956207551355272415084775807460568506110125223207089310026999633041080628381178416911038542549689873394390150660144007655276304800624747193165099327632210919050252020771099188821643173470478221100797461850069935094132301891659112721396536514557514351830056852419617072815622920676624838537224553205660561003770100340780512040441415377561881544610292096151153490730395386653211372221794059485540934619214010256838569626661515708772491640033544346948004037414350386166449737848390211388703227088920629021370460196312319258755000606494963063004402183017678469685546177828942279749965622272471480763908582673110941388006293798249067710741691208660692537453308926614108173237771554405117480837338182624714931463884537208399598596115032020193651811056589424868170474515261545299939555024248140065658116417880581538774675295977120070131866722370333548174828869365646613099318081101674926856721035535303275377684038555960975403497107671941909349361898917726376785602806101164342234250841140399729229820892327240022256716389755069392677636027830276591635387788047493222072660952192897633830466846215005419903534486277850804550291361827281341689584981785702104668201195812300697772490983713276887575296715946686301790652609168873341006016836949297849004532188540135665480795964711300507063792322542775679904608765134290417903378801392280840594789375565085368571032988158697109919255507726343955490611824469347393519715168857576956795555049657547011850994548330138254958247231155901717863837771988378168277691474970033881668772087424072866147355938821542440054770917096021262434687822742535795279170585193734194319123720243639559044587050356576704407069379345338422702215549694508963613597276016211010471985564554146886396773131981488997825031848421350931022454673929854173676335612929509482505307021835691005844233841524556363583965167460261779090097977997448891748806602908120379994518048885417405692124794597893478775106334047633876808173100310883515353547302262553178514353110017258287589396854532107829594341604572166518878630118492796559869728916631411196898370326287923534126223386303312936121206929992304708478782901844460196401155668208852377372507990093256785495217684657661383630442568976725000571170010834378315557042708840131718303334954439181174945954198416177935337718785549807758673149996619872954096487442375906219996933534178427793690896179645839825887866985750653546536269776422845159435305957658622352545033125700309219133971041930433732472052355007349553112172376202208868806607081426232716742390425756406044551764862397628370678283286027665405092250936075072296909656371179397940946640089142254366442675146688069754141147788038447098732732438514535283980940233420426811683885455424725707220429532883098735818125909959371833168761953553965750820464683450279442295127541235762704590181033497585725919529685360583375314903794475504012967786223262615450686354302408035368413577926246418502941789641992354366188171271805420782125226082328240615644271315991671761897021242942052975982918545327142851752702517508482009272914606819402624509920750966598470683410429302075332437693089798848606613505328303022756416440049831100161542919247843472318883401870154558058552235316783725999621942161652148103761875496138242008907027795564062744570773248046604096458046825280787177169651896990469313061817564253555685039497392554713084672974129036278015814947992123481206154426280230257710754341639661558710160727745173835044658480716440877554495897504141815282646014220189320023260347006826480723744122778147907915847228723599264076344044554833227795197707389170803969997147707895213149936402498753052004536422032085189621877413316970975324055540115402039699424180658181041164952273251111159017193013238081600672136985845699767766131714820584124178981608721704428248060850329699131246774115556327637467147079432736799614789555176665249299606355630533554594577076124215289545186133279959977579644129590157357808224437204935061091261202713495382381250746678223168001798612410028855528127903656026315523243888590640782207827270320956809129768661954261437420790603229065590355892022542270136614295856227852429496953010220279680413472244533973890812037492905843415671780204134931910475926854632283143122472777843759483551708541667006730633773091350175699225378913751130683445438946804632157756350029921621835904391607396281661991622998944008318209655883915482585736525154143961127168618414818649035574115805226439588771811347056435258334124862312338930142130876276422489574989130620293761101237837707112200874184708823688381614198258104104361827633053301608870541401137028344115679753791772564213228682075141479914408994624724483666063112461713523877838526811511654692732504534242984823220686336853241414522030387005823124335328428882671328387011820553155594396529177492899707188653039152184500136001382561959555737296143865230011210409491892649373125590308151705276433941580577308885550647511526954702407433318705853205437441801801441355688297359545953247835823326219338147758977450862342515464208456483917944295530180914270906473510560404087480112203469351583382623946432414537214324280772600580340005196463409368098108703939778929142121439466118887402795950105492683402550092188752652988696898052866692801278095791429779577298498650582429922249007863150615406902909622173241108366984187862738027573316947746412378773867580059716125339896285557786837107417130240883323870182412948653981828661064137898833755664879522963863274718735882854141942100099438220718806182025077118159097503356618463701781236855726736213342999998135429112264306592243782642772447575545344002287941107582726613532394839539883884526044722440970755400045589805362040910262606263060971382409362087033010055172796237320671165683151412215458725954923193823073658813876493518650181331030884072626133571687131905607575876608257564949884192234328588360615962294252383963794909087667938233644823773679455447446057637547075585354181557283228599132749756440576074276376112763773052083766314311712682988739324222322860507697161528991551486201385487973520063660449167825646141221716427116587468436723900002461182214596205839857823969823356461729498716159310506812607377532000272859095380485591920563119131296863553407245124296928759763405347953998641132776730765916000837061872550489168474869859401396917266645244889027636006206355261332403314776065472232375095944350389441513257485238059379718427046232317035962663059727709980039808497008482398690172051048035435572815562379563614001969281663719331362578743623672818200325485095109735001103375834417816157180650014263332087348354329317106967470066711994902076730081764360435909589166354952732791610827945135187714084803003314986952310047362098687344178057393789783182595841117776017729106381856868545889606842641041401495799592930794860651370596010332598422988074778584710116946268711624686744777523188177102631465762815325911513640701380787149846827486821274913480537596510579627817356102195368685478142330921646702914114128916289288684065219179752155660179535855307822622513934152089568990068242728171449396864957780468525365437166801940385204313947982008895241003170487144937945594807513919164813666711351543156099039216623035708028281096261447181915635863112444423632499093439157723720218939319034630630638225143289783253132933887526319779375542271185436806616023172817994287771484559214753671004514128464352385506693833096280681581146754601506229477419165396917884861147751491841269476812299975726906684135339631656014968421335600853332491198107533964118630530996473673019212092665572611044657664947245052374335642047582718162170621739915115374286936008113210407777432796500010843702509449265347213060095550432008233288921734666345534753237696455736386370151030921873477162351055259710251881155910830934018141094244975663973713590569967126503116434747082949754576287905671239783643585837057234913827208727695511515531090648607221484554778954296134488524549572118950003223292352205345743414279999755134156446240759726649723834181225107378716479410099313585391835979987495195550358519764590904198705976966830212298968398859411522649959838365059050161258894891930897296752690850633161633680422248215242134294328280214955196654488850808315366250592564421444674919630432807662768917361110380178947275316733901401080017139403875894872955626219773058196263672960084068247945615567592882879943896912810324206422852345131473026509974299775291099644044795312948080597077251591537758325156423224179129888762980843692350303608742601955234046984219805142950285366905409521815573935680419332802398972062411147978251051333334232021798428683966314860329108654950714714080529715696811692626963556456018610638491945848192421053122744558340577024436880794483941579258551522429845380243408143564768406970072984915163880727901329325896774100026310546057874653553461330938744667645746216778337296346337181054648400009252771723206378705470876217481163521985938207528260252801702668367661994523392917729925804873009276886936013280429526003956205479297994174030604583882224885368546530382774741781767168526868444757880952572694144673044987235586286934024176414705303504179695424943322261795075868082707528637082170836237464350412416939164678713444130341516469532525513027601982996616453747375305354797671400738386882355668575231239464133881944747796525013905984140530875532752948586409841977308065176513136795034764870077335350273773571448876587202666728832027530459256556642602416502382264846681144943793672883295189475466681753779453755773810878745394290049188894644828187988599605617728177331764641142172730622242250633565388960194405561620748934116356314753624068886455155553888867226903575014331854336354622944833554983926020166514152668280462075772522808954389009813601079745461736659538474421055834501894412428811488436517664670748604470686915618340488755739184723728907285285979924603329916534528921469704364162993927271096377087985436853509163157908540400648562452868843583963378902823509089612132192834935269261329617012621340268121768050085401769532280490293245395146888681272352222429174904820368599473545217465048829170534036090100962872637355771200609402581077073223639864772857551105284088295044592761619516915137363975671438245253037578379909050489422069630847590264297503807097670353642322189931715380711048718167758331833092437221893831750759248953003410054192451839163405239837903711970755053783772196712992370190224305789970484463245427135571100977099492442238914047977858834250301456292018194787559933617792876895762766941193182144128125907006298628265821303063002148947566131876940534325201063408040737416522240553963386141547310815054460679145663272767897404294491336298259024751535014721002637800846147669502822895642915045872255889835957596788729889204761078676624718385506864128358676384007515367036036776063191886294922299561616550937928544029139804280370044372732370746951559078622220795175189967328284073327314595259171325086539770404690149211002264300168234490348135690770493436688968751484409893984822022424571623562797316299335861942256105724884942072257333676394515027888742257747005075498962698831339219789400852371321511459291455669572659568535136211215690587691255206733772653639088655896720037673351081925670021865252471511449105472609025219161190119604413854029617943055677823420998705229589917065914248422663341567497282749574908466306383152583403891075170314494746041545675491668288148092119884906466320293556795438917862117468274415144299933795556822501973010212022235784398729734962718294437987339287969099826548008938324160834960858970369625847631314835875157771343019606829887170589796325259674288664137285768864146919166534260406946752776489689132130367633630643063127480437865133791248701769848709630828727163968128055160767718428936464682370318074505275299128931800133152468674102217932394298719469222713424413323654138882180881227753149176902915622666837527427138181451677483793927131178538150075088859780282780324289557031242181429792476600769948337390752925031978261178967874228376848990652233396844598832466301874826543192121564271301456421272507706500799771430397075362328746053263651346405085648869540891871706702123434167699372204338998779881679517375226913699556980518651997543671235413341678518769029420046228906156250894033870091591499445372097940139064349969572695180823960949762630502442295070439482095197676678134576274038926644778799916836704549614273063678063523336646607804560086556619305207771463995485241496582229636434384152466997182958029948310978002862573593833972350356023418517741437223458583335674193040876087786769071837741646615689388628902814052926204877817691097117166351626123379750205609146878041956762368355307217848063961463456513470262918542909661562860697491495493965926509627804514216610913051413342306210335574407529471863204429468791194160778300927630739317145807083289395096801647898216783463696134042843671423553452136769762678919363402637717191874475402158310949040456210964987942996354037927992184416040532378245087308872542521947052374629971636946579446462975900732986154001403291463656779560543249752410183707914696386390888810894529583295771394494125651559405849544252820816059387397021412472023807464568699050387643170737069519344843017971195184376457259474897447292254072778926571536943065063253024346326483596372374423529129799639512883663262102125133303524403823558579952624149755769763953477272302287712224809976213239551989174437312003168809468846449560891497594022409006542750833321319510847202817895089639139057647526061966985257310706422269880390137197745538842629150175679311755911615310159944526612432309594240534431721002809474903919965631946150716743654797788502777743717754972465405323496928512836887514296950742094917616434801609114020844156062611382159806033579266079964833656202344308541978819992188038317660270138876795031748651559265592773816232517841095161679629172812521686777126862806759350160700903576912101462178964757129291720017635817722356237088882031289325182721980015210261794596064238388953961685043285284487890529738699420873926783639852866740804426304329325514214170564782105845506591908036086096516674330265114653883074922387137439117825545929658374347617837605836420068518248472748668852486290687653303169925195596658659988154808825488164732231479142534695003180674495597679113418771133770236554228797534375287996705680030548445636654298865146510673020217010169571630655541977003142041392206697316873886195095023625629252263382161399271825255389895793754274031251251196710688919424975635914287713737772977129092650168894134433591264743044886070037649425457684223293565493180011314221446286815941597939538675077585984804097026596407797189374809569391002047498166868148821084852518123037757934352742278994317427546217596152807293785549663679556123343634117459458402459859616949527941667499771982333518081679498786993013838439224606619863406233285053333095982123888382615947765746860543603636624691863742461068798989673407263925242667960411091864484824610174032665197984979673022763171930579549924114812516319789196624379457927327315467522667612220247976446322471286133086296575756616440944402731571298033267982510017697155411930222780320048187710256997923646657075645104648890515735543276818837788258909889432401100763904441686241100550897852232191928837124259133789448357019891253648999912585256448360307110421827064486026045583023637379366046860956202182506625571624313875761033342706781428886445300756747475291240042214524772344233700858879751733760535350799838830326626747462808503171312288640195593034567524352728049148631770305909307017407486528191559369352700898708338777057703957150768403853589606481113776528141336626941190203737807994565501161945133032342151140342168389551302176607783811775894532199739044891602875069545369860292229544438686671698814891026222039691897894032944003058064813823296632389141723689965738204934483800419767407243510739963659891850155304926333635149733297477349933123064953387397233389327601253642589833571533136422031062392409207443152767778618327665465903112359115775260364382232801691960593511441199972692777734925285436417773667925398100162130477282235958653728098319104707851354459483652811755628009881061580054728478121878390174401951087464180349801710492809221931731646333041108871278082797410534204999930783030076108716438671318513536082138713821244339638888682628439697117093945362858107799984295712554142929744603855040408002985282193239484862561339569640054549143749067323794807241703526550920670372660219682965370898818763653614777573650400734624173326352783191165027050291818958139766772243360211375452349252768467005494072068278144638239799436753861285970699519123773756535209906763342921957904629523733789694308681302160528526654796947264741963309267847055974804463152940061343444811969670567529894159677155817394378112078198582077444887650176590879376886226382304494309442445932814062946594505164916609412748219213405951915983185445799705238855979503134058264383649101574408322283457669566611645753376773321855786967710278994255699527100701290961322559508718363883538379722097940773892630858745417912794973923521276377536296318973819168794735318990829031266131933770552782014134855001424866204412060172251960415680431584398019477663517405566451133929584431454519074657978018133779731352295979576635153765648396092131488892305551464395204789510695995989614387080123018219956686627821449368888988111252432801994220585596239415296398111586232414871039519241400625984339871095398139167346461419230124977245030581841555463327821585837928815006161085896426947653037612505930752279289662165204642109537395793814960229492102920604959670204617978295167693067683744218802595184162514714133780741861652148362525518526598442624546386720598976079229119300390713327237512143868080198260134142005223817933867411650031418087456209902677036466696010361094374505636488755210102357548721736043358666720407184213718819494036068894201640720799970488742927168754151691869905756880592930228439954471986300852731782400332901074244388712140908522905725553496431044995054591978695142629886414156572164349493408266416530192384207127491676479680992383378109822356901340443822886553172429823110279830316634256728822129553361126962919500706818537305827830922799282966396716533835311338624441699479444947028034005210409344812190761951861575865558066462360492958179786163869803719752395838232430306279740505820337114494579658873327905021696037896020601238997606013255152115795901964829703192184994145401473907830169466521584288913028971358255554345630861558849833776338896658698101228142525525561078172804825246621248514065642162532340479497972577111600411755675793975579879898521267985781091777499610100080019934242260442118314601205623277159060225975729303064204759007623902147203437575181785823489007069643944012066255841709629553945342417207691523744796811738115774899687712474598743023416074635207813018059815299663890822820190468464751195813860128482683009659668095562192989177125516731574904148790358997668711114470683701073615592322962675922630136424771695273350073892289768808238427554418425347642276026222629320178384499671569003632086653784287659239416032860442349216166937474154523602062617021482306779301589979882874845349282275317581725553287143499665116815276191274674317460145549375958855341153276752909759079554567758318870800751316274764309260132094720345080953442176919766235186467208983599757173969908612852815239988842053871591784763676020548423328046473896274713496930768927355429818741010048885649874534594741399516215304605114541541569055952908589407867810429125835759884208545396096751727675027425367562599786762178377209800218103170278060747949805711305049322853409547759597408166310196403800831178965668127088242801665715002794642483896599364592863881847844943566878973881808695064743043206860440081298395199516441683509127152996066625735435900596204320584722302808578414005315835631024619379402009146506194079664580336069752599947412199855604018564647564335154149319348711388337236841197562677589087670544482794338215448512087189601327390502395171941979214643852725048064990798330575857106529294283249561971848515300269277965631362555325538064235211604780069599030611440300833151860690193991247324369992050880946756468694559037986087608629992820072395291431938260427693407293628352898206394489994199733741542224228962059559372627700400346457559783280384798412192707169694333305160070526450694134329117749938870785970971009984415060211117547042788476212566807219819329312366711939917176866303633647883263332283282652603173983515233887540934106772796994810554064340569403964022887829250907838810053263147645038918080686362517343486144596279077102438672922828287838930865395009496461204951776962725324919773542825048640239139666929109713846180312734235707284933399111869304055345906659146720956427571937141198839620479997926155976998797757060094711534480590954369869926333605470359674050461192770044638432264268520800118223552978658283757842815333843734761817644320122940121754029677772596509354407805131493804034581320061440541987993375193300518274484502490497354026127717258978280725274951803844492339900655876595144526003365408596998165149214010299287773645550157122664895929765938315918916361689442753289677131757475100929847848393762669147906338808168798264731931767286393174612855181876553849846426345888377956843279567643986104505947634521157299281725882610802598176461295186446615341512432527179416026184686282542867003336126871630214237624553650188530079715142853653399206731871794398075090632066355732146621553480676271120646030355918997091565495534064691445275926672397953818611385449091559924830857749059459217363537678804447293786438431756871186725926346710162399976742442168229254483999836900939684930994045886729180055858646922390230217180299036277946621949107121591783530434285774962141221466821369632779138578844875398827376692345356523037170707694585816876984557873158104517169006276672937019818290757732344619440340956356972033004987441822332018688543461961391445456951768842034448160190223527222706873549406006139219295171561759766892581478178256977896201063716777468395015477297265218003181144697611228738821395244714161599803003755052816103681956806613251892699307182881834758828848869105770140375456587619827964273541284326639833640970012301068330677853728304867765163500794055320844753127660160410641795048203144710651598501681738862821891114286121914802356214089530956000653611877907085721517031779171790175792964658462076052301208246848529475248059157200456203286507125689162079919818954505984161382813981003533858889663446178157295378100520667794607015140852236499595393378733097934436376347329191784146754363213020176552474863275732041313923165146076408423423674141297671988143744808525743102088684580138546999163017216511374949892544518942704980680284380843392291527943623729337648744226260327846954828713234729891599446899989939052324256052253584430575045650585064251589579158691497160482085643970831521841642587133045878818464605183408032447282571219429473112168587032664110297815850824132608591820914606817017237135364270386149942356195022064858136692213230463078516576944612372816856087438163580652409209864774948664374153445791753125884670411107854633466834036773520708331677643087856536726626366551404722515989615319684019271404315429029030107624396982368472097551272478355689171094969248021135380547099948088938853599020727612785822350156328906579087399691869450711834186480698719628998465216201726583132585486464228976164575159933331246412883956919321462800354549464288780891458752911009222826713655416287130639671753051547082775265599765048090983519561643188486814709483738404286668973871538530605281372853556671739627951934595103914079369493371987672686422989963730437036006372615090161569879173681175785488978968879306796889852423187174933930940446053165560748947471516728826055599157461943144255888682994197996952217239017305359906732338434901191740002808770520046986183702986266840387020379830233460144334908732976267822728825130179262219290781050222121665295505222547854955748635367786658854344228113321919492511570219077364742901672091507468803882292218459115249387084970718185131517636393921282977365026756652600784421646992010718177265581960426725018573973077208308540535553316146534756216099018647845589631370691364263536072869391011003218552464301628786606330551252514536127836781258686801689431559813912999937382244283724232626913484648850560412853623421129790890596379528948912276971502362683119273846919072755926793815797006010052215540279367780451571531643649215108283144652933803106086388080780002203758445730578915859738079975718992807083719042739082814493676638439322094327418559681657899438030467682442276555597792368080697629479366984829916919380100451070070126394096612982260941386671846358505114589738302490809200540079629919879952143159312353637745392741142491634757114048921689190829453453719904643470571957566893187329152264070428604297691946898085236771022874333767553181420783853450290717516977910671431193121710675585669954509384466820225845824426445764536127881614126597350409554645664159094397823882956942804337229610437915598706445808488512731202385561878594174134957331059272784796569861193942586450819075122825014076199464965533300340959501574503852666783261728131006537561032453882156613513868102057971450860606511598220962840291313257633914308905914352415748718238931573719390441303725921018646361100850665505274458949035440806077012426634366491375933748602754216424689616219954666496634342493788195570808382521543070053452360773379224227788933684922215127460488478783584728772256929823995174312667075032161211877113555407178710496141957396056961051089356630166036083799883182632667267139012877704524117452418069748256675738303586515035769342077366525564174528623153757573770940241314075090183048575918026042889029120209127608066489850883363883746642998369102242410366024945760611010933983027348362629476442725866107231361226007274169412611281350956869011959189989941037442141579350155139377315821911060203159534082377951696335861006898638424182178215568403682942097664029966201957010860066287902736496641073141876204368783244417106972005217966680123020695904062275116790287499862985415624491224711332227905408169016118151507385750149446251407485197586242352596262132059004201891061605964947105000268305026993946466691315791918067672348009002740143648431557944299656368323570637304244476389228475779125585036949688756953038250852350496607798549383276647036410730815873586876435614746543090753223462921933466873856465941123318353958601600836564763337484632308477298775610847368554218387916994889600521606229633396047624432895350260356057178832527031254008029079674668882316243521581185596759071698955779180447323905616404094711550231090804769854765150863172857302112022636967388853234752470659679433890773766274505645922025220556824052036440768363188407224176187589604817581909831497786110722632765585569990866418156727651129732416336636177159220830462831287297563772995661023949707699408787544409646972202074152831938835155507789692855812703950938274715138636020761870086335881683549240342679761751984730480351052969223540886035232299092801921818268813002225398881694775360022325126477172295405525476901454575290233360103832541320246671962391011273705989778141053677316329366195482369757097530642270490401019465205236804456426150387206041008403724574452056819051846017504970203346150744201865050499169516071440825434186596533037381090604388465607912110098563893941768049187951993928670015765273124417383936246875037318719833922340698166368409591236305771051318316293606100842785159075863156419571955832211447662698536912199623572591222601518900078952835859248027615058866896730093660911576396391199745915892156123475279524111706298098449746741848500659056830060647148155143659108792961698796485865284568886727162650941751900833013477935216315841898671295349048692887884009999832048003659892189984324385195557245231205535466125465267653036565260420180108498655863862170560505645981732304512056313186602846473746695550403274371454222320024761300538722378351308297660442275839480072734997255277076963539940296967604934665368925606507595688956727060523472294730535988369790807391741987088446187885333448327253926517772740647649038958159779499530199617934846405489586213491995888134160158356451682029940712121919427409383088769662617552682336865199548761209372650799375430387977123612432979353022106783747099123617919484939565810412765380262001277600766461057140712312889078650489962624853591280258710394388245621930652704115667681129774331802628880009200830495290764089764267386035083261027347069638030268603208899010596336921851315069112279269206122519728448480273109973202066444261014634656188946742558642266980310098434900190791570300959952833050124150673496032195743697259194077615118073682627194606823675412936022434121868407892514210749484455719791769921411708560340036848308570969193680340298676012473992230804380980316440881537624763685379262791341389022754330463451541703256375770303270953563759897616324202813525037273160044644974100364987755902488541961006744760036620497473570890332334930194781972428136382249594927147160935211919349792522455293120038879209639887780808859592001708084553481986828713730933340290650845959316621519674672384960805691868639398099549035443936893483881480985608242852450429942195981838733674025391003648925760065012473668000749790354090827275517685536240330285913290646783620939871131730637103637624275697233837014550195891927485674780085083289331627099959528199472687122633279282609989879456618338888068023356670639069812135757477639653531482984774944326485227090230588137131418516161987263774538968516727620792896319407390952712440733211940505814744657740391392545785400842269497199841323560734278469201196076312598834474892643360146561520472870874945473740742727250935448670222594102657110285009396800772153600685423013694711548934476872160219417620135821394373100512289076619591040028061089215896471295986304276578370504267179637198601223918754543907461133952725898742228042258675357851576617869015344119095281568293436546656100895181296574375777150589730732803573778644708460561695414812701817139474836356858382683264303675501000287181982844954245282137571034379544975058320244109130576824081012882550508030160172930524719960365374529099639784129916116949978781477622249404232704863918262518852554261149740245312302302415915081083448443805819659850730752173983839914411142671544967314496422087845339725629211017798168558645803451894940878011411426441317312324346797635170009210341179761836347504358948816249628277961851438764557008132481199831918375963587849521901164936021910323982276507535844324705075789679653851759322850310289762485038290345679100648535411555434464986702945994099527822382106116770217695048555773893718600247369539733676743822687557629685640710706926733638387797679379630182299835760740895971808246723081903728387191686159179852843360121581801618379680467179365238462630272458860903756315246550059220277858418563960645659131567276327830375119051403127318514936634801774315211492865716637880139197732343673608993359846505958652469610178771036887170173578441385039311523635917692330851107781686354749170790852088992491522634286784302012223475872403717054032289021854421754018655621733609903747878243269135420392782408429818622899861558009716734580807085013797408612438558697624721266037783951720495596336604412746141607350951086818084444468086960001909606391162910656913814775473244456150503422930923648996900507303908034012815225251858618397330195791966315260619651553326958242972597215922992292506991388728383139160273904120104179680844262841637060509627697228616826982672653087769951184410279051672258217940739148941490220626842478137912856750637632458188927394999267301729103694963159765639097371286434878746432872752685444098379837034772282338754155570480528160920337712452084717089319272210430591604775469662630653297527471648954078075399701299267092832262914476402505679740559193626592145697189950448832406426445583861304652407737841406542026327705674633271787099849912933096857424180596298863181316839799722512540102110412969306102704081207920568400067587693177413519860194889944286557855372568423785403636220432566565252548789144858199134064581356257626199617770686069382481677347499348984208464224427681739785010225347556008873181071056880514302154930155149497046904958951407394037109462321535021125969965399285387192523297362980877208933176696868260361234717587740130586550610667085654043888676676273388181484611394239545143104138152996778064909012031061234975352068523157405907990141592723194260288041402939940453566891833266469732295922493956995021009185338985004944136118944801378668902112270461201838440838118248579765697949279136951154444726321408108873080619691298021208133816360774438588120041226006130804157261610991690658311433279564925040869951857218809510115166447669553162510439738460611944380026465059312048016406595884140141737553741928370149953600457429725445257712793536897178744495044252731548459574696114212536991749784928326223514308500121636180228030470981586143802316562068418726589568969418735342024874197338024725962718692424695197513544702655611244270347996824239973906850821118039518553239744211768512299273346256132810716637946530167296325985299031711654397701282467191994281905057694801166382889044567662585588157451033202365469289725675140101905724801715599223157048765804181675366030901746049652831152513762427177126789444043524628340380843881554832486398605336937023178551818521245598250599565199867584040239544387844356608597926202248919161499848138947390374041633752731192339808222553867386247653638715847264950110355707649548015266315508091204852507360050715868713791330362849296391315408366185113851055047018686566629940022346622102447486141742967953190843238324425971220010090887853636987208858406696162419129022258031914212316904177678760400503705603474214070276485873212790282323865740464068090622414573703854478370541612184566621308153588289550195876899276432656278203281762413964641961043663010371253500744000913503057948015843971225979852116537635291250415489893887897905628385364674063424277551303855129014082460690783937043721546774792032435229557689141796961455153588674377701413253978794185802936332382483961385180552914563439839351699563054880617045121735067387205467982797010043144203122710341873592396483012905142546395843350226808992304842360403832425034638689575173477706344304453836186871365213852691780703889219499823767845188940438212715748448134773748972620278204402305502376813887093008731723591313697773074755795602287296192935268460652087627930789080151635235416109045794574004570054111967176889852236276027117601049712371393065673370563589273272972116187179314390220983444271358741404429810095263464814785069181492505940069983889255551486409245930071574966893593910192353300601814878952644741575790707981898376637015919374493788623560653467324532582555708243041203182595405677056139474079743651824115811382317419919967770051659796662494533575317225856413290095330578732690529959890198391648271073336177223836526720835588436566092844464050975650373057822978241407895436738212251463982180579467156385103270798026491017017262247315931418666490977419285522163020127371492908602903732107759851014734218019177906319388023243455046125251155475829011542527063551571640126984917454944124153859376859293325998221925909268270660330987167191608940637953088663647783700407436570724037283995333514361503694055260187042243973695852591184571785705392099040112095491937109376033217507594872813523101832841634525145109235202002774596268180318896003781161951873693079433269577633721295635456784271052153097024537393389099478515495973098686076680659832542586668863264414424274536978081326329261841880594040077805205685583250533157080531782590052674667403015314461708745408651333291704061917941835804841179418118381495684739265157495210652257020418814440271563432494711232308806833145470779655570993122587915456479821846956805452094272473810186718934317986822284033844811014137520634339092942836809587234051077748174781236317730683207678484379912204961802410152284816043076081735264145489523367555861776832779976763843313429189890529430759855663267827960078692770113037530296626721178948068113251347800740491529409468951496313641743237942446215699259773491700168943808262003343890176964214822007056487721660517314463113194496926296717385765189410502171727354663171695727718532953960928767769621263275351345240018918368537368827658709726400041315554650948456329284075365554945587269756749060164508414902234424941991173657016758760723281796698264241902953740574270679722492738412616939356367606351430051193400911248317437313607070599883276936273454099231094874826123057719305738606727040405489040391752377599515311894973370281872749382547163965233276255287635596383128547054021339439078683536014712645557342264030389569342092795564812219346733519167216381384715852640107130195906307212414639368460852117820700223804381304833183886671748084796558625725779149179289875920192186632649312810035638755668148603272658695739083116132529027479210780831484632364993042024881593968891877658138034782562809285128164923342175137886290109272435726042337187555669101725991247439040127252133313825371443756435619270057567385041097255367955645629217779473873458747645621672010763895913099420299717064071543484707054805778300291506308710018114362392374311259500597044792473756884984334303887040772000075831220714562692529941573462467997025249939605069493459193154453366740045713385909934578095677374424352571757928633614144571191500974033678230998817094187661822658755448197651111069093979003286686526258679142446250200393197018460036510382543286726732853651295692350492630874838535831239518295879026193570654747086646841625548866377562686716984334269575337542863791655074962300888985639832788530254512804524857043100098758484744517304252851882788509344127658306297083670686325717621986483211493505227524283478315916054478458828193326354866434635144575606546260261088335453719663473703129031056125804056027366147166430639522506003645232149473946681403616929269735223637834927778932482947144700285339433663616135119882868159820477323630867412942313134224681932911384240587416183501492973359991073986987239379582268422586671795294215699159666150655711325263357163811744784112529083919585077342086180298417370723964868577295124622137130027145479429545986271248250114481338034858188065970766295982267823594214524689408501947917791442578188082125000676549273565159988561936304907339846749551458137930574006926024520392610187394144304514702396809703888498118520128221009862596799451561718497406009421905086253941525628486952886312630186473053950581706019888101421884217154186299054798616292807521688599268230416645567418625425958747270836289629531306358061462252495896998469567710095527260925479585105604046073715655070170138683533203995473065829733453484478652616962376977499754717882895628880496803876098599359096671755545165407158960095381795067902191945016691383420268665225472049700063065716791557983305613660333091261756088350230110629854857350645519555170445180216279443462973828367143711547174786432071182237911425028953217430325577753391524429061418568084163943751885691166932923342527061311398522330278950074085093155320792069019901571357929948651709426042717021936399241809061788893104678128785699918850652131333624679338925633094956064346118897420360299739563151609298430933393361325453278705713247382428346229264987872714227341724154894914460439636627037874378940786059771455145530544608628852263178118949731909394360673092578007409165722897441295932499567537712361703214478864762081732575821269976063151824178866688681657909098916177872557971495904482488422330193919886414241508037957982160408985493140056062109811799377401323004244491876163768387736071985654053808944181550279372416666742156126681981851466031828617644740171489125093570387087815558684458423656184958014463624861089469367721571498882386445198971898817255186230519796376687875131633285348071705786076597325855539095816570765249965722881839660755986943838088884892309348222278075601591263825821555605139155332335204029503475704723841160664256144087316154154427122765924349940264009515817295636608498203285949528278893707500638627110187676868994862233803678265228765180200347447631424898485010122199572180879389994869116488576478881312951757220697446009588035340315141982967670740639005419366524972845716467450598001256559922045734740938173626914727060481635819403972735009041259450609188015064802570247862904234706351088523811150118654747583498189588059072020920734994444463808421753275465270785739710653995840449245121633547498898381710070667380969261638764709840982697945308245545755076459185178841858320180211070564530403157461752848882441637955791710075030662559345003993940308553530552611703466157519223082846958436579604096554090097489417145562400271149457020113597232179815854658515815654391228494226204602756820515027388744431128592959856012111545281158872524736375406271817574642142659659734390687891179476957284500019700343483198153412301326040042917842401031881149365963671669446560181047037074143169549892817068616262604826200267810848394145126174729357500358140725938919452659769667233665757996743096106776577770557002831254701220099038856424768309618315990537486396154527970885189749261789141882558500510630279446834410597137097451037628059396435859889716242992261167331883266126490036670562357396840862816716972473272341001313932771054688889031300795000297313933889954921893409590224545131815802244077446656042765146592912364213856994393016857646241901554321194988007402673257473005146201098327410105038470817307651646242917939143757712626628273523356586285880926000496899509946949710633410759171732940556237071383571899878941126886622560291777264738091973052588506458575543871644578940999682609633842214689904115379461957092429466719059073578556471237858327652576028079699759331234943534360099951505061075260860398100492628898524113767527499432999569900952117725896581781395544765783862968702172254035146719868307610372748309376425491824658532086207733272471652328957004085279603814898734110718667646377608863891996094829242012758701783469257681463324968646504493485264839871317575438751629637259986838258707005517120292314453064870566729425298050231561127273069571850360160928996236068540995763945004490475062358072315940801452593195462111178646007760732128796425109313044024100134453084448569685947869640364589358381554889776330150350535048517976132984875409649370710667751110766166164904978552134197072992696804490972565505800692313492065338646941551865244845859647484434752845819027323296734946434212998341860693425268976409470868481751931723168360154033857747828620445171362077242441698091930584239980972097508772574389816076028539502303848580122862232596337093268903108048265644011235071819662395009383209013656012159309017308284635940741818984790175126876829987009152594528616512990615125282778397493677767647780952408028686772681725600946097989986015034556370465353013580443466230851826687049767885696947602867113790210595334433419960026270555295507276286646080320747211803908428533732976006383282103407866391085748850090199712538485548995139313340925056464258940147080032178513497635571705465275289989057013794895503942909352326163615101221184077601014249001270441877640169817247795856558278570999185851527538827642710339054754648681304517782426879848048932540577961083308077064602894165484014226162424345893441553976290561183032156129597336734893521351024708357514474026615472456394877681907177294880172074876891373801336459089589237507533897666851041785914704078330139483916326543096078306546580428170685285552694227111806511591033678426678462234597579178711439261546811085614279200722060107492207210586632758454962178497768307977641077832015571973246709966919789491357038283238139265546346767095016202746146783857113127308066712665282839856909098839441749018108914918000859655176899519949670099550566351285782670619995271013902542506508743192713544492590019243785464310644802595603415880399560876613692685414336410402097857130625102076149333617590809581237602129538655324094535489950727516760496111109543120432747121497661218689664660377348073230328120438824428982129747822981174171211835701762507175136547608899189524367351887901227319091353141137616323019876037466491294949888936567953270178689058544899350072987500612059289939038538134154065718900167743307352487312563959862404099395575486284206997717664240588603282815176459682989114716845275436078896454799106407157774817407849833221865348754553175414488751458792806826605088314626677034566742651032416942144695550346846151192728041064101210974876743497972951762871677852699226519525033543901698510916330563132479774068336478135198415900731186356064050779919910654983164497770561438958736606880210969064389851710124759074331634882503357061113692875745002334469255953406114637053429067544322331558157869629667361108996538583501892499811817394508521696335717660125008322512046481136412962489967552884493767191903580211360549330535308395364379062433631203576450452490175699207807917186317549778856542848291318183187080374070003271734547710889580921585090719999739369365652887010927108528009811978508500911770013760489416984684145517589858968977673233647441916936903029168971663030592891089187239965778395108725712939147656365352722791157057884720341211523384699725466943189294968048553814482637517353917342969692478670977355354621002382858471627398419881822698293601899097338483952194648133871512044082955266142032651693256964844537858496667864359908488501504456885677062910149860691920351179772804704512173629450017440512514016426855162311930396328354332290056224345618696927922461215439360605296427344168437142195990595862530996227467494549684630316693092007050582105480684374169074903556972213371771819533100953150400358683504750238088243378455733028801319233803510493310793038840923966440754726303542370359704836749533144704710232075723411394364839988115301284856591400542570933523075989891156960735919484695964241094608617862438672469027475223453046255538918209944493965679812388283168085677076033431411660754901686320399960507218337913464529624719357450363193574433086820903358521525685030854938819251100048217057730435411650879750771355100067115977886501003951280192871155860712628538462810755276108767947725367774282361158164977216311207737380759786182457949829156996333317560776852138717423143330936866447425182809002510124865712752137887464673782368749984423514492241964870541564242915471503405484738496185710295045561677278710761798461903288553605846540381621508828495531676392553009502720369541241933836347946861539790825925737091805188601347318170788424714001115818416089635927977600913156371468629477798608349804392422667731317670621086934155944951666391091722453353165692108037562037551088988247506305889287035099449016175219716863549817752770001668951280438782794710933042136656749255303228034303225642120653357637841429569490957892184926625565537609724764947285945336224390023906907776688767224608572404278709310850922489448218667291781579256050541929550836300742418967732506492927096819153518848821710340021464577024894952833055945856555401244432851807141627686814960607826563303638075668326600488153058178193434533443186198927694151422635300101039592394096138455743399083352819829872080896583941112332056716102904668917645840291453598446296262104759769405351602911177537612572027559114666481852257224952107608816731583540694935998124490463668843236383147017369322846374616622401025517717607584358307059198451658672955726882947922557939910359487173611030184445367848465800631358624506556629325968092957598422290707376550525629458975295765254462866330862988401455525338145685737452191899737274062148180781889267574144908870050398902438826166002621195152598158955004884655163557724489534951374652720556757383422069000120714320218895935461295019702994530534508757955011691784029628138191321658612218134185164499970751280905416001727705584890335641198109881546303024180970252155443047086640717796043591309828174290650087073758880909488688157138184146042612483845520884034631516357028612276278584829935813961304002889882580744792088008057779473050387674416129902460974413096104815482097648465063654220967749428236041186884797526493195584732603484263493156381177872144945998441368665642220520211375216344867758288324257687909156205578221295164470035743927264261236944732828792489658894795637047719804815105141149871670997055333876660491635949701544048110915608691100715892531384343219470364942783330947837957985623672251364586419219659445478246070065973983392025999339606083433785769582912628360248761275805162224702928035330493029539782600371626571159714213880336444684316537321528390990425486206747002766374429166411919350997208757922879379343516069819518141639856929847636698003070585795238034025049632981418633990559399217337466108683103832196765950069912133611608543443545656263659195094015586787897657338100370284550179646604875265345430988109319044216136638419122204339276096683302485550787592205394375085684304712320964107260168088671491640788178268602149649254853354142444006810724560778479755270304095338897569512482074658606385000931704373126251492772907932914356114228081397681266633125145000175792465138224126103404861154855040011283946953175845234666682957675083646887750660303075812574212296077807201379672430537901740146315959441032940850472217860602203113061754536211959489398242594315116401726665341511484168974590567726609057338159571306759142463188509669486681171137857228617959003268886219922402307730673769697864256185267972393758975584223763608816052656415765010700719137230014761588840416193881863597385528942667435321880686016699300768738156943024482597870948386207666553004504875388097290452899434897954494284791959400283059459428884549534913637923751110011814001792907055723059345045888415862969436656457953291838646574369515573880891280055645881459835088260014907230117090832985362711365197717111787052752770231596281703629231843394133898550006269623541222426439177910301842677584713547517838885113635763210133480910234695961978575820771782904313126242716753186410734317702460440328186638645707094867533205600861322053354364508986160907822104573841716333136013487393002408586600604034064209132498998935580836412644226683106888361033233818413824235085823839544584680982772579855087500795568330429668259155553978398837516600650000475001532188433892280011866198046783463536864703326241883241437826985981061251527346015783699550291247621400962293189908216632013617927461529434025355816127640618278918675964792007519673972755499000612254930911465838418258226040031003211755337422102331212329184636884260028260602852674002013698488215276072571863069827123709289637491494324825289813093866747376971747105627895734233684084790894767620189647187711853858134902162196135693319146548634050233609924420798569776698204504718403388256008548755689967213907722955489897214615159585677463207391615897451587731734982486061434235766758907878795380999436035748910700088506361507621701204324269008769839126469878798617702056554125635063061215524223176635681432034544241778931410941985374343620628749590507310870680114498841488968833679922500959403602220901130782818645596683226159020528684339252414732073863154991010312563804753026325027376490091071291344413915370547716683820182149519456871132556291349877483760007672027920259731505698806218192242339273211776071418149209032027672463315802350844075128603681748500020137333807676946139524858501106669188333891002139376475460422372226079267125813121065597679825801090917904164837478493146726535979209830300156751511065309225556554501553273968032683638894084061393128582327709254985434338293940769284798709720968715707155886411344469228980089538315073841569741694735372765577499568736105012993882632146637593913076262264316722124581121472854023098729456225497696734993635203694489990783365780482446735462703453848884852922177791113351936480554022078939115086026735582418245053618953791558447510685150691735638388709900018496392820488322271171860465989334810749113755204332135691220152295454341725466159729427409038484292537838528145152859387929040175326645600062167939906790213322444433802707826406963658853479460744562471623508729023510921680834310942317617435700771244534631652535498386850929016636282413543500955954221039165127454144317187502538708664262314463309252122323038303640309256324175653503611046084384342060521100747393410601783385227062297798211661168443087635819477855612959192433962611616594130064372262396735517911366776929411259956206754611716493777596548361117219674157159391027575584783026752409357128139016906919137741845524611640991668794566411699383283645468920942924342237874551723455678965129886273670476058047031993629064614711540636298327208924818539508352783765417706918237009296206730164915014772381422415939668801856256072453273012018028081628169477169653759434175007700498251699948984088739477621558422170486080001203086040724974080930161082351251545429095353896879051595106685401956270773724616942043246424988779123521924928234292826221095555168828907185573177441780806494114158738365338792126241397709857227261869202340253905350444682198105360359548057227383433379732003183277820615846755509331084372841869516675338498849475018704731751456442060396558398891586916168264708467855581086100705530551310562071237436378556379912311402570188244650422246681914404732512288710988359661887795589064650549477205134561196067782036380127238722332338118222522405512126958464469739630637840296053004450564463738863448479556406527054869462788163098382428917211379735317644577360635941880298475914063958031630100786390472758607545561260661109901064553898490510736732117362229325526094187621014263133362286387390093641573966275319870533980543727145245668873582196169138438956406218055211542977581360542646184276791737303375222112711416869513648446377302079645683275492045174699871387237178220826639984825708653089951218997411821069218772513155746806251531380651024289422679127262743743345659537779276849116106064509132765982828858524678613555181237467365148752589135975889425521287133938528316555914610545445487515963711671747223600072899341605863985834782741203585540140530518732388640991743453296714541545231526935247984095860917830842671697457992212564313772931381271584194225320539399332600145684055675587639307219515670879485877390303083084643994005235768950757461977299439093317248274014044975877201014469952570362390776754665654004978827151164444336250743892702636066900924815851646567373437617099285488835413945437090422223370197727628171073397724852193524112442323801855853517143194867696367268520449533312045627379904520751544946135261401457912546734306896564812103453132896399579235266004040992170197648771110989875045364036498056995312380966864021337012994064887112798859880886182844821046091923185866259813906961154703794213481476865960251285053531271234333848766985943005757180591231274444206232344968035586398250795059612442932277482722575030198223573900355221226040484598223307301860852214218071077662230460041795350187634109294964130143269805427815421844962152866525500728771656714640779366799268083825533527967910653600637556787632268521178360783108376792545199195182243780397357408103013739791189264575363799952670962738883141093605859369461989430051869862103772962566876528004479791375072279859829174002376351604070255164950112046333303022555203752396243504116518282092302354870715095466780518577470355757028629163325402918935341527575530818588423344319129206366321678600269890275580023202672274018577818820432474718860536626017629700312585378235540453906296505059584536187499490665112494862167684667691254947053594160566625464389083889408584985607469797340299448631900089442493828815618952512422193139650128296466938007048199013292656915379836175550455622789996310608404126943995241569364064651751489730127011332719999460879585542971811492637376252630541630875805065097909129211151422907869449348324470436859144383947262919100272579075402904530448468376151253252964349512491685301565708879949899831289821477890722986539166720289294230661410823054155928234146706642329298042880674413109229041774658678884040224202684493418504812284232143742118532136130398142357723438080289036431338884808059493233392834194117482069001446376426989440894152208635854201947960316488091150312157448772552526317667688071838136265156413101237979815369712972193130683297066004395537043545477684089664561649711147550189195554584874371546536065835545350820721442657203560161079678259260207902298240075961646455293207470531158754715249217094402120219124339587373765635123196792178787557622221460987745349049734831796327821768349363048157628284993980970187393079684205417916562562109083538897519622006731259250472648073238223626102390777276071253315065472766940566584089309424162307061200693982194061138165462928995694264989722056435275686330695862449233224862036555066663332551956603183437163488253854751761370536679021518262744768941843646202056667792511593285707195461774913940406168869352425402217471931974572462444551183859742563282402951404904817499878436450093478485998050457308924762908216311487795775192118320137096691621540509124444379114080197136622054918783658512986150732773139105284169306707223159903707751278412989308896051569624914519143769320474416911696358848919532321726573666514886499401338728932488557146707958077168276885070554038748256632164170709612332250158962474473201287854065471528523980693087533945477487322014633608645339528164584242500146142074386494189431654189406603611843762779191998900026945569777826992939921015275924842303053796341979503330429273776266627547935051230855808575847229974903662095788996059207351228051641734803886449335180201680421120141512281646485155718856914214508212420343221592490732549248294948020671558443072399079505084172161361923797923189368127982266052525825222413966512383446879561658695548984678056597775974425502991728487295437032054521203836823645022039435711413492780559868879842507783588023741921732805854290082105493425847678654614809623646128539909121203905979339932614095934982860786425308392669368426201238409550170878725770699716665054483725530492166706184469979664994730402644636551017852422678481398368807206838812565609049623899965568457636069866536274666816106348460201477151718262979121169592585533907238475645460656891666928279412433352246742904626605196736484265115072697512630832890940645111745959646432061272563854693959954206112448420530015506574418173176658912309829361540869557973893014306573903254949046077968113190952667685252006681981843104484145833073749835561496087262076138854765753488524479286865531712353528931121080237420391888415984497124861192986104893698557255555953208033252995030263719431785303108902167012785283268831352491631432911444909923889455326903527860088122081585247098122842259047393483282482487381232057032931982538888240730998362151822395112232011296267686631239692183196608984043323605623523865230063385415721802421487749274787258889034942479304616372156609425067321655224062107516040299002829093589457792042264974906611926402741743703156245673759933428998157526700134168525832447711000189114928978706657117519450088447038622860831315703101335691837424930311660771309746495512138674311885309242911356755944367714024673651446274229220597515015780708822422435642976166916873438036094118728107549715866358915510219983229741537975796267103415977554593700614540055462007005665758181214749044355004689752154609339747331269930099028561403247214439070306757768236735916437161130769009096752788879348273009714529723412038160556843246069592420576357569054518728649529800223940542247782834264368983648683609539014587235686937380058325755346098922722593661535542080811105393454523578893832138585900679820481172810016035964515838414669092232633380324917127011092424233711569697254825872124067735422566258284993117250299948722942852790988940509636870371653421855879313106938685580540337741490053861129188587058116677374422793815309841371078225946398822982786894140221778791474939287374066807774629088043591052974580537380299820136153465490752417470424145485091816767037008410532756867206883356228902552220871899032816932516583898082804269984965695899129189973296863252411511168044883991662244826519958033262555147442928559567958872197857004502600772094753431883996937784402108075106943919640658816424960402415996218321575060593393898752229921181255552539320717488768621990996279619593045383354357460143788023380916067172350679299592686155995551762599518081495322344159410903908884076066400974166733076254552871510991710394398568470975609343684078848531838608271305638232699533724740023532582432130365716989480081387707896241066388085711513173730745384877486162052271619204772938843023480941127844959532764447158342097319675687311005163993907528735036695195974472709180190695734205337514447777403937391407302747800805891748495726294981339251131280806401279337512603885794908160026674982544618878800585123880725727861918355101516547139111040797175312499262687778292372791386728455609153648456307005599966801876490044907132630112614836719386939819071617550781210545724526207296873520413264603602949026158585306263498188931674266803230928110114288786896244593377887240119511898482248407794016566299656550704145708546927901263960061196239280931084576359541174539197733944797356151243710862735378282344786991104445394933595263670864032799139464213684256012164969295245338554055371583496811163825041710377246117380352081753951741449588386792327245851536897807078657877801584564712076076073831819225648949165494382710799839023580458328293576195499303563706476727371643734286243014898476609865026759374195642074641897800850430620605453822440439061088876849202577149274549034297788212557814605827996801522399209505779021491658789627621013969763516432644741119163077475714376602036875777150200665742236501453321616733353959230555058405833069030985839572351936677804526707333965391041787164282938849505782326332158635953223922655452681655590525811963643875205815589531869043195092285255034705484365927750423056637505433685668644853839605953760641599640815543021612856467954166592418784655731096172774632477125308546632890925130058169868239122528118590034530145033191293360174106500510661500916398984527971384282102086608383116628219899279077088803234483054802591730681419593321397866337014809373292593960246147068151507754261534851625792818344396639209547569386039040751896309198462140030912368489595209269960852419526333134703624427242221831332859766600103162013535953232450736397568365804864467445756292481125972931763145038575889376102425750597856185129653074822116905071043496685126851089788006613416468083788528528962366621645676381591986194679195261699812122218625246572825325330721742313769043201206815429028704582290886489129624201544952747174798251900977912382425232717760045486611882520822362298399230953291500466599243125355680656080741556163996171958432286171952569691439376057752292148967128846690591621377811129174451620125282262397841524868855600389947260433518498790303974815767597169459334999532997261577739545681016731696526058169837787029427022084891806572182170200175906314276558881269111967919256970526738920125377877127795720149570167778130306235146579174660291774105957202801636523864062214667602013572235873340264166414985677056483041536705661196287539679717834357977185500364271352985975330697935086765582731966341394741973673209667657164171403668256793978674379746618237110455640077917676977520682163120061449715647316767809722903149953845527845007546663838170290231412886201338234383051579131261192980345681254187288205823655793106096499033131713134721803360494569080767378898879902467067098055160714565743646587672209347148472886139606885680020969445301328544126481844414663524608118490898674233552014795101234258941011084791587209850255898278710308673827270801063256860337189225661158780599843549780239904321833115082648485738258725743290221673204240703912124722075928347634930843540593811183407259595352005651518742432782426358361369196913359946508507189237945199969160940965408618891914323316964659789086033672212862021008794522053414386809273263910365235244119375621267565647917251085212434015192372672618427700735373323043930694823856167925219389628162552556728671380962431378522958551826629545970470244073222864922943261876841907913366283701401365632300528056985117506832782796228013958638809998263537263861050172633667698070535796123720613465846763434226302253058129964137979969831461823204423773701050432558463819406503411155623080530333875271431091496079429876175932833840249611761311189971272585636529434892814147387250511796111585587732543916587822951097910083174391864778067727590925851304499338801219524066674103240447375004625292473571820306871230814377765104403795105706324157376847391599417697260622205433287301432746698226813684742469027734192317651917562667090954393247225513460659093515857053513641927792703226887868954577031947021343909267153882937473390729966100108863601801428344261575830741437556407624255503086228604773970315434962665919500593797121953976978351208376462427161639835176933161372030323725593977191641828331490654378009837442334481282972420283064333108416065438062964742557623291644358137518762469206170939125466971514482503605941010234929820321313787885149009792744467910606925870449685911911726902589539915636594230598339046451628655296287587367235524565941621258065284122351238687818507306068920364792360181768347031031001103393777568923309077275082968447797536516367832701999164632471734061093120752299749063129205062183602618406668618245507992875015298197288183040229517352508879104073344536352857469899420932435351001681690602752338528697948086656266719442786698160001803164314190136363758063703393812110439188662197819289546523587009672950630729640018802828690862561087847940888780094270966598178559919795962960477074700452025584390512851430741833426391060236194858690815429958453109395774590102143883828438217392416565905309391073850362365931864514941137516277307180803584807511420074831507295938764965829305480316510177825904775992319658882150754083633728847104398897238222812103322371390406624568896808715087325678819227119690277801017040630694297083151980222161626764104089126358907045359022872185820966531015334471690211289392920266678258947296573189073317953915923317625282872506135152660244019067897079936684957701974332974579093929785939956081229113046427709909819004178519963379037453428468863840536427485623768398729033206654081228509664412923004831585703993610099741976209280407106714914248194687789645463210481372588973779985181907132582050844350431313671796791802661513499951813874684262820286946515543545859138825022341350295943911660581303060150948776336158051953010613360342408280783562646894650467815366809079070906217774840052063488912682472547484584407668039972639166657442950655727524535846667869457728338485004313199639255070057924547954043672708264613173113242004302347631019786082519604124894566885065656857069428080500908588172288778567890140692797780365693211971225222537554651372118645767214326299958944343188259433496299556587808767682022194157984781323072021370778028914503544480648073527516377386144519837373966100205379857440434764646859756220794970077398135926716003390565321286230206020476005725692899933433833578242311158673201981286120594971636071047479585468309363503257884772736953580116183667814428519618146477900371413044305173977438934297677082248122349934061029948056252359282498569865152905183860546065190756719085056841993106909618305706316563864789707008643383069741068803052323647189325653540814769220204370925002427538975050262600708101729931921382619935092359142990586350008347652421356297209284513511157414295457428067720130055667695233662990049727881736870165673344871646705663535355040047476268617388330427259222302225062220797467176715028538044967027982887185404828803366903598685566729483874028450247685031030557554575541410403582609674647922138701732495211151269939752917136226941132936364213046206725093678571667183995700325779983906703914015317943012193111526260366882224296354890003446314580436264503563717368720010997476695933849033075887925693749990585603151913360247809964672173557445913205560503301796043764316756953224624561722006797319034713484801904388484824215596084693137165678051981173317165327776579940234480129744153593682615723789357826290595745208620061257558260536015736992028825660576260825272961356361984926565562526512792501855887151914225077618979620534276835257102851792820807612990557559961362663281542174655874715247592695642822269983837986931868051635182218301873364299156118731808623295611972421749338876717779534857489983330413297781097143654664154755593694285943942406882535430200850252993796559011614538160242684456965521542281910863396380354095209307949991636188387566848515921890049347660675469416263259031394433656195376770898652097621660728137362484899303407125136250033625448028628269641602097398950197178558007355760285984255455814850974057035018536074261584704889938087105352612838498654197118817011507047512358267537215966455417842100990111021247026888131527345931666336240022014623335386666066707991179290082428382983376534913081682857803956360283863045504213101846565183406271870002758315571823314943315552796672722158561260031664535718954288075678889364910816353512889481830604283754116727067774625230846980116068375856435568860366145601834671559031870279647765210500248165516758355768796031246553214972986806310300377488721306014677449902123783569183864349180592637088976823266131299158796463162811385435688724539560061522313261086245543239376559095083469988025357381741811106050598791546829999776323359821246027799343525524981713702419487163886814291479185654453289310526783299206168292017281278064371866524041641439952592464871483632747030437157700539697176820383659789216820525439098758717682423407230365365113936218633617679027163137822552663667049941265626083967004083805285384668105820401537484004860273124782005861594477882641440544367120787572395555961346745741476017199896075501234675340680875322354445858985415318307909315999169119950166243154085849621255562275739096369397705069629302430927004118387275720604991303787885804433358224030538225664740410368099366730444623189782324319964865626159736059291682470594178491401420886444036970842174547792672905872268966257262286757854333891017178679544063459366933257189365473197731427169416953733662309541190704237398755985995898122067501811693526225655782528574907042979701607093717579445601967317183919314124540255258141060656387491855962407982997684405071864763271288724438397660604403955504815637191123410875805599402722842565946326262788810592940460337568017328407119627121929001959939041983448014698495677341909667793722450769338466778841191890262157631390822474508597725441562898554434294349815266018349697993361017726510181333784240251086514376379701224305676674617103758960037885477162050391017689650260993358797292614215876975644023548527852639154172164350166775946471123091361033123395512891126772920486539736901548586453278840004366389041906170708027511418371935186702192551399750516062741337365580719359180232141333099654603787950863443560546447753655167412577051213686136235069839031389425042765162708439077755304204894615246934163469812038474878534738238763467786426861817902785524007922561759110962580042721095201437343245676684389067809412054984384921314016701166814741457131384308021781044680320523127332098456171726645196326441725183595301041540979405257258091390038818704269784227137957182553298255412692882686345926844969938135067980593829738603174194026264212066657465451573658066695498333232937668915459159380183060167321492612994997682740633160631069543647948661511583091335202654304367677642057745162332539179406069445143309538756489733355504862760514490008449102040137127150188827727048082506743880236726373304412538703453246235936575020458134777856071634462026799983092686864789803822916436935579018286681679591293178735095456065197977710782410500847095256588263989520662549619064553279602597780650237558065138892884879108855597298685909035377650648373810944648803792514378917086374212327763171010573673557024500579363123457919884226138135424203410708274286938511152539043229758574210827937456754342533254717043803405373076815803779661030123833689594522111961977613430793183569782668521066452978226386311056842471769838485993290840218312453385312961987420587796029551334218875610982364083186679378525530990338984776071892932348512296413252060593136627877951583476575920430626327421230440292272899251940097516916065004658818463710764483861167667978937221032630320803355496650195668180037005802372684610979301392707609234569423910631289030656010064832618408575364266239294298868943421589256589569880677214057228538331609219919401465814993836391990321063878940104948727350821445537726585198283674979508695484745143278649751505472348201793766898385609158418772552133155821319792263775637107973081255132472442807073960047183787985243732299899378424782318492325861027154928092276330585900923585844768377020482593309183621604922676052049136279634012220980614000416939197036857287767206389684484945616465885706922674542068148916579915742605789070097973960317858915805291903441776450787987301711411102680692311828881259215049767158180510596725723706561033664794345012641293999310288839659075928106403743369999205475090017111853435815393291586363064928228044675757386085490632100659382724323435459362666144533139757054984449639170604307491089797066535880651142110338384935330089531879093616235674459007409247408224075931061000181772037282746654390463733445171609899803168947350610461135501180164063111251662736976154317311282487313240368328698254739055541039185226764901828468841425936629975541493889689806184483649397336429080444978909063290537048532553938821153610028577435263240741870725488134459913402755892348652013092771723537803410788587258729778176023465310870903458301721916883852682498380216260445585253297798437271579202333638837921381627935757444614004302954964717157900193578653804597118958932433548667805624845931042896136585873205127716827382730890039490539612366309350341854194141657664808955888987537193186447138033012133209698703495652233911633763538249886073924811791972921607994653437678779868199482068996085581089522610259687380206934233618062313380291602551161756272128259702300741928987835411569310803615490543266556673805058203769481136515790354409338161395075580818630081682174007004578748617781762995319590073750779135967773971516165554046237415474059806333905914343642285911129091054460367057695331507488178905703517996668968307323597387821765001588985051882577705672806545762847871174958872130160116957766671427734196644443570164696620461129702632509683985202229991059821078819890131263310892742275210905478674581409074479845719529890814858067937704085868843027292741528464649702152275154300763366212183404056871475057224123488669135201956944898439261726363575167899853617074600124756436095343961200250367960665920732681916488673291902044339221183030761209591294097104551825618550990213584674881992910498293786131552094886402096989847029985901645216315429772996696982924288320950718411886049755282383609190190889335012126299684358749456503639396753808788293905963944672673213324729816175399466048875021324933874106007503831909054563093974627737179517274934187947405727015063592519100256191458265339317927886286130163018388297137849680062653960562044755691103365496215496990472942683927922675437908083207030269681845103457146500261880330142141146212864796233155812281928118108342898097396956484375291600778077395284517679859263399613363820616715483011722450007886101142242827804005332595312378403539398157881781182851437526823367409561668220307550412713951614988394976714845136814481327445850613486684759689336600699397856567325721646359623471084406503061892010858125447105040917882831227145949106553569362329103241705628718910019114358039813550108824206499551639838574444462770519511970414344780967832239054699784772929209771602593679676307420706491791937429382344928757449280079481150323692197571095333661659660490915260940110190605636027107661045554120355886960698608860697384596935318838814931180701502394183712232422616107785464879745241037942037987220862464060546611412041747070907755186409361833454807111639685323025305896468221829050408457999589170098416804313412657040125781955047883704687263357684699921668853402429196231652881824302783948817090681094834680925159899566908470237751793238832373170595097578565625765569916512618076640878580145835036464042045463479426573887778759749529748163573767565016452892185591554737189867452428608276445206923656454921138967638709507983011539732880181450625739286493925960591816839070431039063849672825881833334520016557242386682128607812566041031064817229705218561027367500328124801380998128851587940598730643918294571592728599626210386922335674213452205844519074804633981591180946682259923351452579312886057503143032070844074863745042531220447553258094613828203415428645609503007005121894617278049426623962576762623254426620211944987712201685354483049145418459943368197875493699117869618180053738206193521892948945911065381466684192840678992572985822136278640741797984010234760720424338411934750990983754820480062656319280233719914429250631061550492194011352123099345715913218581487155910678282950111974597878753367646346478871863496616142801783123006087999660373702526831839882000943925664911137937299491764185857942543441967267532135646570836134097823877120437507081774901456597120907162605774283808286971140803831729274066325088316193612801685947859015994593747074847618302802477684300482987328333169151779740024669748664041550950528496480573638968246225210978877377794158914136476704751543894262638944511073067674671024291013604621319389491757297216053241093453800783950989274058889081554526434600164489159124838068157600130563040122767592515224539327132017403346117359696992326727145001777417355538687320464103801955937708566008151211710854597314972131796476278251036886117594552719178953499434656603242877828948051876810333809262641080391696461568420695763361223769133734058934304859576322262236706842668385795469565064216178251244295910641622783533430298212888891569526138145012504500542229807997489615633153633465450433980379201592378325387364404569234576386285175961471177488777896372645075121296781723340517041050576473926111336410712697110654237561245862928759848223150179971786636501409339067630503447178037444354609742443565453376341795939040173216391036160076914707391810294253460979675070116030664047578178683842524412334383126762438028171338155878603437220738935949958204838655491317069278695344356365921589320282963069177164801688325286283901430049195757751644016500617590200601986937038288264994061001846542382822746666668683592252687523140833533188700490623594721703479656897468054124990946035397371358332133209082059341270110944443334914663769121478894367873402843423166146529000542848718607846340031708758973568034192101895891876522660461797083075723485760101566066487224503886800668706231220540713028708669568050373459286844904465448354861717181291731533176491315686632439261096806574861952985878757814920976808968208381871339962012889165630150014237355443110183006351744022359685919032930604544095159737610620295519588675120254233975958893523157299650178735142565574707041083034105124641062493555621455800162777940694181312878247969708128115098200088082967736553332373415753923671191060605792698465788146819490605433255490110049404983753541637568224809934527936500045104970341490684262789306850558360621698910584210713380265274036272918256730999962674602774102729855477602402216914845505568611372299393428920620176202478073962447656882825514836834502213326678209404713047054879093540558888010053602748394580670224520418415209281571547507453598289209541485787416658363661399997331625312247495310522302498370347114421819047934867707041457367665179805886426903795145913417748152243383355453224473452148327474765209801951516426142826596792312562687888513341059204213513259912761198448495517648102998635287928377632237548666999834184052545514866291068275668829935840421356482244559622462009259794710576986480044484592636752165354037856308790552895885323427575066022244877498579202222024823792610150044057529555043627483930055772080232208027228215208696729560069162064921475501844947419752430388993327406562183300923476970342349436782172647253381959717641374898880288558350747015952311437996184073405387596553841826248790762257337109222738368895525634823678136432340629916144711855626619075353993830635344876149929425652334600809597085762325071777440048118087514310689577040902095734935121655897063957742726173253090841445848471169376097230965323061414685833532504133964517127526772874410974982664942364828390692941017285415522695342862305746360554550682216996804450070735533870053571391745468491598856203082658265738313764070305244438871621439273442685002582593588224330791490404420739311859216333150009968525834944986487035321919487389503871581808151654582943883074506317871709062446573819152877932326715756698677465808219474084935853242908204550146680243249999651054933705070827016285072233106088979464063573582724614752416148130077784093897888443653954200789524432781805960108668481139060342059252948219936837119585294272517943503701006354605744491625902392160692887126419120458361018052010184382502521346127312907180583164757153980852769172483555825623858890085687056627735892271411532722886200987120215858438880116204805879259402866109242370771377795561923063844525358657097495596235072637519219466909982768539391041927005103006182929451239849390767187038378182902547312257551805447502170182784238876551477823732574610637849779911707185823570889041138821823218508187248396885095463017369991294814142096137515385357867400395751678299914195833192035163075908260251243017942016534525312607164068956580886707664924986935695137395245810499786603842378869353542659747606148459860270177664618653031947447810719220780422938286766287272125528404418641412576378405302989676491267143888968073272067521732505039159204306809760637514752964082158182381600681239347574130529896562840773433643263776005406313328366401592162634838796519988920087597636737511400036500185561684606969121871333031370273350786678597774472919456786317075603032199210730128353518746028899495649779823308251142211506524045359619851255281967398839204470782818114277727429565761748581991764351268830532593912413563504442225372114778002835566797106496058985551411193323905300373901592441640353142589953678152951973056899302574176088320361076466120677206082027898346222243377935859580256861408921564587999015477650093379581560351002038987368959775286196336792743838268472576280372465808406230857465645588534727903010231701597491714271114969097953945223751704696025116613787514630085319371498585847295778001387665640205098249454345256629008033313245657330415113100156213252810140021103748754581891926066230365900986859735991426268772023776000997999488103201437029029258052766436671414397410799142708871520864703464571726774775831939187937062038143176540461518750672451625860379158581202783219654012320827477924801263576826577391045001339705262564157973306938442042462217778884535717242608824995728841166525753628263146653293376341243133957985320740439112573794866700987459856747237177342308791355415735103186234043533499529095667102848571027059585482232255806201932182465451400155246757584493257489034032081326050394202781471426324071502187355038768535756602280576441014543538022630778318980801094540284989850240799776485952720303396720522522032693302192602402610301219202947418550920550475003906186069926719455085983272463136676312457747375651030743047220516506712898688948760872080747739805323083357058267259394631980854777020059061814712012992002135209539325050941791619587747730337139476696155286575822559145899725530026357328204130848524856296027581334440713043446991120013319120390203249534361645423120626899409237743163829077844764710590047578993077651051530576343337476446737641679051254611314983381322502837347232547115580414894423306609377601230981094291835892935145866626507820745516501812064965326360453084523708546980389498463638161197915175649736899365722064109918608352635816048220338724581147978870353625408947720931050508426532917872277988143906593375094793351202236450081150167259849516494027216721231119519290005039169354225125656738866976957279485327616733139978854278507975663428723907555091589891829209172161660659181607200171706360532609600335889790909690959146738254154899105602724169690717771877745093602924591981834213391352538818421090123591346983776298915783570749397076562326949637513257042420180979225836053444512713831762440556152262864870449091239827246354419573643119013428246665916234573502841779820466854921550815160566046228645066855725469776452695169719789204484124423937027970987852699324189477165387767128320858109648348957784840303749128222366592663137838060480688296691499446990028726807566837079636532045753898086474618686583354515867660380557671522923104424081661501783312747947136791741534711155411181364638414966650572729605671806411972449900752695611273097355617827659920983961478936207261954722352435181938193543787168111111784017646487839295486887305300593596507824356241244190636856042518983449480765064375085090679695056155911572484447296903539798501694102975498630014589396418130112875534230482066113278057275498457412992754124980495434809695389498094804673255557662127349216378377558313615424991763109417299195805417664057091185742468702542334127276851490586198733827904243470787311480670114012416389661571222927122076939133040223301388677877700174225074594385977527839517009684757270706552818959845471815539472584661130637506152475921977568030814924540214084148145237142093436912743958980929872087637067193947318041360757829117101727885943660692359528389304635907376102794598375498916874622136868012616865882503041215142627642245824948570491128032030206872134081041145486627464744982768614620892361776863755037358704142046616719917260288540229060963167441369986756637322994273036566040311804990565517676136614114129415724676717816495336713602131696539580476491210065198861080908633214701930324845210180002266095416123841610358741496426446861956568261102176661394217112307777930977597995093427639490390163218628374981570350401389876882510193684764612320089479114273391054675186132965534253922930635295152196737892583030998556826744839884200709697165316935628836917395813740783132837343679991498836721536068205373078902286511651178529371116914222471456371609851434653123100403823322078829157023441177964013057216003392545797673497104536596162287639164036409975073635026980306490239593139655494432831194448199501697075886178567167172029375773128880934518685812761691042671758157723936878108282075584192659005199298298194749002663029821297035833515726129143187950952140532682101207563429977533949414280976632207137995082845775163040416989612098629341867801615400500165119239580736326097789992012311380770877039603100927344941263434514335990741934659289320808363103103617135038784438137901809192528723254547477507505156058169238967167060297650944816441045432645730980728358829123895292079139495027126992471233846815835050214923683128739188421365814925775139000097565423672131766242046299599009835589761613759066838705684356473216829106175002343606222579963581685332887644265960812846499160114394353188046660071259992979198646493239197730448712022756287674168454515373751547207270426174158386093475287299885203360038138613821469184762529133232204597217380941058122792163587705361083265696914233380174906747169540900914405841129108443254432873576262565547023214145130809307885491493657051777774850762608447620652094638258532698136408021074187198515223530924218743214478043767315817123671531270794336585962403345061974545023023627223862566446056526247678818285549617655674975972248456086285775801233468126793853939735324389412917186228053195201788302267039567024304259439115447513831022919480271460625686810222226700754593293983439945426581333718830924558256243002458971216639318834641585731480011556518723718642615089939944842762628331596219604362592725263899924708773433274551320974702031408838176079386349266745252132119778330855672049034723993636769846649675514673237427266751455152948856143748199434131779130068280808269073533584677034860361136144734505279799798071141525444923018934411454644393170707784776563880048376459660354728124837353147496526835472296214346894597200992773430030134485045283153749385690815175088719909536725733635550947001835406659375527889756962497310634474641423674997392936171402724020123285041998235017596687754245313530180596260983380121355249415732296922850333243936600789697363617935645469562990873176579932595453488473933634132616985825845176575096403866030032272224374300802409485455836135064132521677452332072565779446289257271224941533852761681383413362280104672476937705676544268455441914759165489702652700992538914698032184832866414840319439029006086516655621830391928691778259171064060520969653118826293409557648263070909914938612044111025456955916756637061785336246888778600120744384206788959226570450408057568283592795372517697176040055270451699792803475408703374255943350678857196583473344333917351428125810012462351659993992139818470846280976894029264968137717786412084894976070245110139421974214861724225580770979939489118808471353236446903415809426868077388634754776571531183390924912473246045212142284106116541769284417540236637269126728263395575183037128105186594094307371015469507233535229983403337209305304554450129445745302208290999303642100215253683676447437208565305038899041378276296123003448007033807531030976585040154170526576543501349625214342657312395800143833265184865568848312948304522690098206738590892116414137710331690333899104076785657991763379109113015019770254855155672025947848339418542897231732617029244597764433546859209615494602667606160573663958577564003888298119663024966732040924781628924521830631197503981911271374076737400722089302332130720077134590333060090347739103934275892590567359545814995969943602014987572016822583084333643247439160952398409275553998682063020965440062644903416175575866505786191733361647418225527345052117090069839573655082977847076096781928051978545214781072507616428933355434712879988474463874560469331663697471472271781472935043837249962138022118558074395638697796519466784041362035903104733427821892477103301150958422943128264456248419018631771093427894002531227295767059248045588337221402766598579751464904805727238294220632665300151252985516265895079753079072067582677107708302698393130141333349416305873696007439621876404616237606217036922842307817270418904949601478038639057883800495883576365545895411381014456649665217010720522715500149652082579213037635317192708750035208796987224646637892494385670672185382922761517605170925355796401957431030137176471283397363265700585236063964120567748318867154926455632648767326981490712628801350943744137013499446848187310559614936265942151343832056024357115792728327652575712430667008763561755829214380948460048647894823873800689078901273377872851588083445391391898550482974389241788369282819077210430338021656908041432049155389805429441116245779407686191329515769349705381221196952072669823897590755110445280844736894469251032570209177740927756854512828010308187706714148874062061825556746810474242769433281153953238129990189509782396643902086746809373325290900134511986004302867448344891315798485460500924955238932720478664388185780475715939615597138326382195573895253548258620482958548632638765351621411566596129564230342025933935117483797270979730660012789445169587516652364159075687146616106779618217516478594851439704064677525417406433639860359055329392286745985986163366982639484525661230208872968307161523805188803077516208107572171165446025842416029094205952307851954686211720350707586736602389351245340510831678837026691854940517327582079005314486572754438272881130915406054768744779447137758086016945532520223238087738723254269371609236522510581533103378112650053782771015638390571412316665632621547179192593963700996736442044708149623457251685901792878058862106547078728738522223079426507864760835592777965671406766012470564764000735294946606414311134314614993306830461174235527878458292236574058191085376644781504702689852460179109222074356361852366022039646161349946164343079600751834315377736105377447825172330584017178614317244979335212321058825858182440442834569385578497465211916977922880786631428107680935613459002837688129861093312786964383684420693893999359670044999387371085155540732822332719514031423543754862603417791748569463551211154469534934236314471746788739575593779039633066816286907980300849178623679419282341760739155553596455497497189502457700811588732786911074252354221206064064329393356833297813505057600918555712714512956312389594317432727530650964397631193512391971485848985713124260508739087638910130950601570486591211267129266864889448543282521957644933565759143150396168720530327475596391550087146252327308000417507517388027670627849568945234060924559367550011802337267899723763453911832526799693731961823974090371173067098621043171131260381350872926793078987661708544445668757530386435704531729552658106058382149167442545501036170041329729606269428172993190584108947390897173336769352560327488311451785677480470398678416683315145461430922404365634605328006048696428717611039168271018938669158108263897447794812081852399981872812692504677100669755802782443650233806759258781950672684570624750059480612754882062872994120347760645170726726852998116327633337184038893172472467293501579498066809771788401263655714713651481943486733426377435354595132798567754049371544303157976664469870313635249821315307405845263858030845903262508947056950495486385679418162684666042737202681815932904410849006956339092285459575676895900501084415415100794191098645467694046581860039521267860311334108746365598459107022097105079804126481575453914004455411107341938760981390041866462373671117437243053922721167823818761105921647800548131813943997230555909493016525849512008544880747508634550120074260187134598218613828080211420350138659554009306661500040194530491822561062187186807384725505183685500967354960857885671040739446996795516919969381888006489637007309308615682413431702193174368174191232238762786050432003821762672282935327255148756154229035390574363337577128260708344261406418817832122933081574804858319819413838485051982098138004067529833935455569447078270606715970427933933666858276540157250522584245051706584478803203854222606077499856832705418669641954698871690822631356170560208215838228580311666277748647980700253125994197983756082520598098480985981257783202196657433880602148329073374630357193708976351889955199222267186651996713132182314401221737671072675658776113490490830027738371947550403555888025244714600812627174757600117311606449116887424750549425266769550941165726832346971183621119764441713766131905199785066305104363061953673732201785922783512770285499839637055926308140117598364356198715986931512988490533593422258257264286424179507288663996182999245607330202454203604398107382831069134702943064793773385386650202921237461099286123791001174050808119897645351887293997185234222925929910570802251419834572467418371100818367740166781640638852442749837164598207141618404412682028446724285604882221969302915389852495753473914904102320551702836570915265572142718031609645765165730463943966893368879385225222936863044085539741298752770831305692583717122465394830540242156990479558985742554660306985922710910032071397736831542401853023194040034388606147229568541498863925556206831499786636508352846990447410349297508559068513109418755625700116927986002945582627044775743031575181540317561534638844865740854596542127997070658115364237554888421738953342361293838837796728571065635552047050689528628827411182416927317590376143060536870080083231833669506001496369769177927177265929924996261726006212292887514072543903672671309470280890774336184441727330714520944658282906688201471485770032426094292768920239229975669631239218082553073638595001536192315842294551592932080922162544822173612547678187831700969811545271079041092172596818947749693056841379902770079529220056411235063409994595986105199888996328051189680226818474531801049146785981068559376780584805958591571255134404189211441545738775467404658408281276086101664920181418178573284716208303135050876113281628690251966688949957486882071992237166688998311339670375741472510206222594975905497492742497720715052776395260822654654169563950284479666540309928522548395664630083743363570586829690697974083760892236920215831896841907495441770611997744788075382007841279778793736419040512882444033312012659751559577235759201867400804164191828789464572637226355669299905467495991768883257896974933806394798589700761422448394368135444611167107907702908626206885086210906397573177189394320873647740555144886467395393577443785083573752431254779568060738382850209302315221794676637597687263710659096610766073154390028473056270136870214854198882758997023376582917977556988951253620665612883183444760774407121119545291354826320524798357280598294188870799697623473857660824043394295972535414613629858779605429358935851440890677919045505109815055216470025974176060595518615242951628496408845454399224219405220257029618563570955324536228519083466021973287466728144166831710758954859260287880399220017899612256507033038282943321133146847515615367542230784658178184395023397030138871776271718200094218663066191140638747503024026883217693667666009756322103691595555182754745368836327445411745785003732390788733517227987569366735747854336662857422261258858516412835399347473590007393939508866224615651813688621717432312505922545943560024440511345654656444426372396720263056851234772146412944741812326105887649854545067447304940789687998270864921031965754550625409443001717697909279948445938905752395727023661047803250809585871916042389975062979328734489003721780105997384670123480905613918398111933160717381620902720329461312647021830770696729374777988220081806267875524071087094433090920792347440489305590012720016112051799510491922614859725337887843843685079663047608862344298823366244498305458967383912929698862943094817115492695557110535928745769605006248442152021975723697061388342244812379278166803068848481089977381255808844710875975594372469577076729909990137064878176301197241719999837020464949008735865388296083610411993157344191045548059617633415207148961237595779626817787558733019711881467997291227857013480391246151986781329512646193125987555387157738102162940231863801079085263349953654838933520336136434781680730291181457999132953093429432704958734434038707584696887842455176250797042771283683598701292467126531350321029212916132532759079918620039180034454732399898352717041020568459876738423166928407217331636610057948301805756006056123320312112244769259755635074548053809250901792013742647405468701160236109124570420407402877031187024975581521168588278105924885502860065727540076574582207439993895316574033352133825497938946276678700987897894834365527607481918037594084725760315026334243856689860552555830557905528236787616849198613535315636527184562934635051081673705964121296465626089131115273793204062784958318084759295644530001358591585446530145856356414885058680362254363520814554435571763693213112825143812351872480257033759145139781991683852009413998126703761549357317192112954661035022364157329393953262208833994991076742539830834507265355899020792417341291698400501569087113557106302204039429218014794789481786328747523927465495263675092312122190456505998393975542424364997146200445082839810358603739161646964370049209688426683387163095344408438720037289018721896593259540983191389091800898517092887615600722015072962525440457866043943482674483112450255640729055872872626495692907876628879267281179458857680067769385682653533413966463648098879649207884696526814965972532597039633293781733664437090331056994794901145150755404522021034015047346362189799176936522395179960691999386634766890648935825084980870227275305357893522697537125508249885321561018415750676201197373576891079881742420188300585771779965432095820845489841033468576886233511277486366440848269590459001356894044045384383155157839349840490153387634999862801080367638279463637114233932223124490333248760561767857218046069843773601586965162877690467835059392611493259295361367587044680964920489224919596908269098727567801558325310604313778977313762258388281541862554606743196020853433115698805502309911571281335399425364961587892354645586793690612502123801895344914203214297674986039073975447273327480341686579976173986933728388772557091886010613581051882085615138691718222980351360016314582171058058771859851195808354975491655954048320770073034452679481138139495588528861883146892025267645319023529139641337577347926873332406781861570564492297541513342715426041386215810866006774940780084666207709020502597792530176541383878385011514898089160420288190007712677977247748406038595035179057707143831234155511078158575561075260930967893570061349929958208398516258763239614015457954992188249030431603128282324302967236358750402952982005452249690737923612268691855664343474200644912623666011152902518655239190127267816158281678698800368729101663231545584599960113692514137084184964134635974343592250836057943171851097157693976123391206972672664642900889737184930864332152878581629402614197123317308900090606117213159559850647441047940193380745868857147984111978882965032263346820503669747920830297711187985743387237529542636063515507009705772675034709030717951405851537631366193878986220002537242237799037438501655483744160797453209453952853423473117327990240488028771436808153581179885423272052547646022131942510345934324590226507254280305236553393120759449890738152732216469782906057806581448313360584557750865342044757934636727217540087676964696986614466772487728298805028500308005992431848673039618509046659637573670845167449056297551885169895831788367894425374443562709603909377159471630397255725956860514911352501234042686317446225777525337515321720804586090481516262171464735697070860998946960214804470313497289085303366545689492940865047727645829323277320413356011746931228959402041694982047785488399599552953496631019140926323531008694042040981287285394354684013819756253715809829650877218406538239499831357124847964996205086738059432877574917175337118488273412665002387137941538031454369830959291827854206797509782359330876401033648297243312710938820539907186105481859323915323775294447606800005824703068111742651885711918772224161363714707700671782829336485023142674546988950585685433057010222399465685372515287892222940517862010286085487485649622775269215428347103043239876983473077672197206116911660982667417418272816791314260564842752811846788823590492569442795112884131140055659261042883626840221640881391539564029042994816118059023415742807202106896685572351944687318160985506023015421404297465469305268743764682393931334516584518568056600013955549173625816607122671512883155025399502422497302835262270157303901231629739693467504281635110982879113941827390315671235209893633527267368782105832307503142188014379540241256489037470549108802403088644547606037220472030758108026827425930746810566096094942880095589364905865546905825986485949358355016120899047038214729338437207952823763491629232657903224800872781287392634400227051078850935573771517434803209596481573581710813151996065450368605535381181171181951987781384614262603314867176287583245214483137992928565500962672518650353435191269928977405360879934722038111122772338535829134961360670684115458116104306262872792747523805933836902977892658082073942720195765635793886029101321779350416424518235426904462676060076887980798336073390310509570824084038246760956049860240710807935039249494024880819599075503939445404764959524618134466652754345182968776414890527129075651340915009991316372078833732096937469000747976853832828845001597160863478840057332910142688485744316027723772856050399653807419365057719927700741854602849938939429261669238849798523616767893608256541324004725782125467016040223366327220039664691063683152042728290101123910274702351857898567448935057675262361816180135689879730597554921618574776870138416578951848156487989655604422034405786641838557904076841282732019573907562425424398645230980398062057417760044704016697697383428918902035382971800519323844668526867249120957555490678036806985727607302598412518091148195509329633408986995206418354264042559923553400222266396382755974807218299698388909000972122907719750888490054772756799160376235495328487125108036156860274598368442337505163284411891624969499842307380424706663706748320044595979618632728376001862645536602927500422852916216732776910144793843735613995803913939545117060049790848422220871801141726782550447342747203834294504774323988007116317265122378345245604764445569593450946151534106035202861431720537885512753754437839328916057922975366895394761843151828852871151326406497750429100774773106411272817622263989164848139693190949099963745341805253812890306971993124996597324656577687621357094760321230533984413662800391313705379775526070606946000531248377997246412529239975360651323095435825822396660906205704893625351334167451330197947074828193226163804834472462285974884966754688270071881759591465773346404838869902861410368036277764196466012467129025672114172743140009015350536932846421920551691889607561488216372633781355580597951222307507893375071986190250164924799486881839326345920160460887823597855323791769470121457905892942321294496300588879290051465502051388880463104616344537977175783046273058811690566302311108140701532150656882427435175278923427134747766040921960853018574508996293122854730366430188760231760368570051359620174882040630891545584067903102786784813809087077130608406784148017583678790501198691205115138047099963398933764453450435568730940192589751725943958819463858795781043984219316672620476977545203883494766866901889260452982952560104864408406705211145693781480551942891708449247246496961902830384118762821157452276275764419156953047484081779790244509985639838845890870876562696536709673129302644500768545686899924288542266653918150209511854120066754842835589723779780616755078260615117078313838165423527545315695940953449929006460866627475763379408943819115266696237451039024010183714827150833154336549575664522595686154258227957769482079551829690210852957512085907760691761596626247649561561727121962769522043372463700337623094432589614077806389314207729629863468045461977077710455150777820386770622598612457285913583811438608868177912492379365995289903269037827898623969938939139522007133278557744009389447454532900940230340921504803606062901135633445594796993510718160572347117150193410691376017661895241192504153687765816258128892062646054276438031339970863192984513145806236231766879594856688498677971738967249742798416276938102878333393133417227300775205613665095694643335116021952694640820630311909523299519751558385976257656519856223583247063470865797186907507805662465967128451776633431837984529889467340993029562725764400639442028729894284612346124683840089586324918916924055005211998535073562822652832619746331139961444698039904883736857882134085781015342410310202620960195577647155535525338337869081340330590144491460496203100615093225723653684191367083269892165372921500771828409193298828251175122898472838998927688071119852687067293583934209384410375169648212765808133123538123811547735192356717625752224952321721362061875464809702954500469060122183901448582772189338969920448499828202650375910952441500526083386203125370817254361679159766669813661609565309350166828751807582672984275378955474824786377649936641289070059020765389388167923153447964391258075143382861669075849161741773383474698039679267699434273673176274344061219715894237732098763255044519552258593736904688930193055375121351984625565060229059458560911473525428768630985924555725163000822038598251869004819731968675541742553257857706895670039540714942301436025806258325040435671254009746300169959140682563081661918453211198508046086488860934810124212124169606641211484111327892586444739047477680218762438686160407762453273492337943597822954981031664404235097758524651974650176898175977410531551775744065748865534569702636990908807423892602124539047990525837842194610983392572873659027634089855586559728200522269761049266534363634166622950931397138514275472508478566850173158388683133846685850619883569123870844238339853715247979423944013820851743751801929507441686859887668253410035051422607197565562155202691699180758707480088830808476821309612908685738924450677318251402740673203340982211326301564289956088727104033714807341256197715772984686722201307589698593632073500334439653969758582472411742068693926247010872109878434863297254263863112186928852640656464002680649377900898313580236174687288370146057813786111888281945581589886236544074810024630883748360673304285718450731539288471609288320399558923391101517972358142960659066689314941688337448821220533337144071333781199176569835827060018416023025571459309988149455676569020935464533321351417406655442046776262221174696526474577309772950185486127422100052630848607346211097539770657277206994007986553099658618627805767336614001917173395135686070170434262546563277047863101812455936752323722971718165081915448715225142192542299638346833131544082233087881290140677693608626051507600906582199613666631229830675669940788891736843653980013442537323760355740038826266050209773220370156141598562824815220862139142658923690175912357591467038955761973891604182383382106147879142240409658513157367476148424089261592380388306548154970807732564420297088453931726836111779328444741301268712646360782407106264805391081602549826631522524370452466522147936321333125250157818756809315845313307236178271832880148718712142612811128918597289669390047860236766957828064711802883296281328686268322838757964030466278287130528642467182682090777153984475926910629104194311072540217248378329451757388928724141444856879835168959698564429495072300079439969669437756884723869336590252331481258298056068367383058128030972248301943867959261732713698863446713891133620382522192045028395594148504135482111000538748285331546901969656937787805434057982295675099055527218432046347426301720619641040146615866451161061774092455185309196770060724373459753087491829784463655796492445915160696179852884403356723719431399763461221833132966018205655054904135764476075309145789264082153558270577657342617978376386780850534220989635522461812260613263726047700360658631418946846954281255401569405019040544427021790377416788272696032862078567527781932902104560511320572464852387169718016415736971072562867480120655670267338935962774135212566716070639857167664902688233227456513743758627386074161208333479798029822907475134190907946509712386615455647936579558058905982132261023901922563651589879355868919147016889886955059139626155447396404858904291933776713413853732716565575863423317059532491831477049079532000792451312728732558873880739315603084480327434556703262672251884736679677851148720551919379326019901774361900045004522682919892413429340146280709296405774373866500758225643210905214608240982674757832456968842400360968130742238534235800873650746433768867279187878418483506340552518078105823913671337655830531566793088193397123732188578231004861225338723842034322270292865411689898352985637267417821082391816858668553387582060792054018831492871722135725569318422757668600194492905539874978839629526808220227629569312463600339512789711958005857647106500717910455456654143840953371183621259165502253147583118243290291577269539289021698126103023330764583979979045002698792601086955936332005413121550322711453529208173413724027010899872970192786251786100213347959418958242877648195118027203413386101167309710929941062256156567563128940099661748431356123322194614876016542462556820693796487273769862393176170469632219429360974165493705947543019715502841262765142206276583260881409842970423237650285301245457504474040954087386162771776400547950653186409160631095212157156752689375303576929021699133691213791912654835293685939011243217748153370907482020785504606247795480291398979650607520448719124582366867313007417161659875297781935095135773094864722455920955330824100096381394204498335749943857108138487881518522982939799807419888927488476161738277305349388474133452192289988266705809952065332286500833300011498610137400991254893117426693378819664551677984813503078980425402185806026805992992714495646886753166200334815473786554845045110031604442065364444720238440792080371360738774336480366912714204851734425396261095928093010797445186622321996423962347670556335610380235353370887018735751128808661230132026501897281490996544498036497272399716418404475526032550585477558053660592711946408302744036276952183083882822382829690628712295395385714887158802988699605606650724704665249693990200647587120416257287538176148373232299954202217148408436614630388232400985251461074480395959978430836227016388424056333930231795543843097608225514368155448249305689981279743969103562967220643201730359979619823160916787694304817960520856132147742452987459685905488288143050945749892800894983846043292704810172127730885359844926200687065585544827277378288688546367164500908679957360921024475315986416781817467245354737773653531580854927619258209616042475362242609332835027499933921153706387354373204823278650582761911802105161165200685505622378858003574913181650667752841647257244971971989555592598558554296446291575016109862314944348487595269636371888154625059210100604151228657531498960259724771379915634935781277949154828381543353761146667809940030554038736304637035144085514723171180087049705065312407886372788781881624857323946282797050875486799114302871125194020168409011185067124906663911984268159731549271619097570498517949186577706795397371987393912292715516836223606852152199680000000670852030491029175293546966099281664198753563272850873766744212261508148785537320786487287205302586295557577408108083818460507793441622923867545751382754820812360957875595686685721976601197366932918123486609957287247233789593705097280069189671937588842777392612809975796604363801230557208945927071951394830113041012049940910936494973215555708930167801993279010850361840597963996558132451758483744834228431577798173801632411814761656862816896169219747283387089777536602369450731934234961819756711428424011620018495989032646656564253881460604501345215049485488901476004997265080686583886703342810926096769489964703908225618174785776672820460035885043625655927824945483287845643139002633657132120207604596644802333590382513112461399084393841743392031809227772585799798524691247908169406906713337627586827446521292168505688174281906751491687784458652125381070074883420511871214324463257677490837083766364518861013290538037498526464868452059809579627641368317260563136923713432316555598524163697966102805833017301294048936284074163782719889129884875598525296372843022631157737039469575706274544808054162730772088746546180800064130325953462014618268350361336446340100009722547377380441024068890613409874347734110903685025930320600923312554940001940455262588737848308442057566826862841985155293728318076715876138774726683696232907517760317510072750410553730670907936830576840394620686167879275534375775600772276978984327624239690297084736649090192285993539104852587461261781314410840387754312060059012616978265924114042141172647545875418230957473853411819372641736753025470398625337022588861157016080356602744849666168139669935903021299852262772291097258476303678333981666454088321374852162000720727959471301527138246825873517274080356024799413781938983660318238145589692919462028468672340428507810672195238266608329005059480828547793751274544183786019785944573870161125541730794512643004004132231179783024805275438838048179028404492420478713200140854400890034387723095694794578461289007267368789361899075533777199442690028568074789503757307006751262519654510254228150072841580514746634679150506834682792502434022341303768843244002679288294243302267201678612150392145743801096013423691244266030848470640809908897504775304850513677314371323118920073924823567044852587778842136680003819150592529109864161366461026427555821604969969598347131624824328573684258158622986311016444880795832615582008825820089277635296463456220603968307344124630186086491737159502617968004554559124844547044116544759387880059894146746269289374656190394722287720162718023889527956403948941997412166957444058949882840306818658227475988550054922772809999634884723175813909061565192975036495776347876580762367697779730829705618111673270460694459981681094544918860711053121857364570749362512988285709100819697729102186420653761692697070779647229785995720225038836037663094272835367721943940247821898354617662862387516768192948033459631356871011181317438572069179636933575982721209620358056622632152290100817329294451562782688676738492667201241635683348261719113923339923474912068615606083023052882030038665750743268849533882915392660384553143648869302132250523334656548520996119102066932233691373339951678725217370411002488902928724298047909918089450130739114554775308198128389653021626431241565505101261408245396630688222927436297394703744737175046343747687400778382693052464938886541553791543979835271358508965752009671969598870755227268527324369360434562130893871740505949335308403595033525632399319320551867418376748045869983933904829070286663691253263327653130046171874665509451061823265709693490332391952707172545302168715210415650639990343272004771839068564267566025700145503978849902331887122097958926131183389136874613925721779177954628460292116179729963895292320568314251838355610201979605863436183104790268719163423583246279778576784627613829274539997136977718686287568118591139362370762345786090528391527425769257868368151411916242990128177129439728196187946591901897829860193323146812688025837834190575037852798944107974533703490213126296220027837960117839583972805110207416950876642105882198928886342594576405790695756621342510558097997389756349561363574095746741262703048783617855005462026845588528825602865127710446573740346773474320956891268033723484851634062053726609433441169243144769749201767140810618541453833915430014547244965366328861554395463612898035370121852703797674999961343755639213586002617252746379738390982687470672738906582153119733522646105708174214709463741114004230353744615364183547151358419591662966243239303431398590060697406902829518904180138035897770668697744615700618831983196926916762532520592212399898519952138933779861940056461836652194163793223316983493061824249900862535980584311272935773076089452243610167636533327709895837144883029611746267423644720099968878899334308347308552492821302262086565808645241878953893304593643088507850742295406647713775333822619541511063658200179499008747434805904835154932887592513773197840831078135736053078703061420942176537663291250342751635001461080829401711787622352076817995040884501495881569481610274107558356978308946108855904036456904481392668242310272108303819254311705463494843353249192794129907832718350440519779024805801345887206300238578532742804367508475143949746530752789891483388470441320163983854149756337733068006678072256418605415934001109757135076952265967318440563679916461091165435922381811364096547400578281020695672851992774526451531109444642014699251970883793175561000098655039461624693044504321706192210088886109038062726399463357196770729008179951694294936771794616419236936126006593507203804566172580701775070453307938467530278389579917040047505917104612120012984527054334322218159826705651323390649465315405502501000876318101683114102587757289069715737628441729803118187028198657739659576067212444428988712458117671389210994775501034771345163149391885018363047742435973515894115082615836126485810589131611482379791465480549290386953852187483647874818310918601125708461618518021704928723501450603298292534485800727909372665136877286757929354316635354676789532275040214359830595114983040452582945278414920345300280122952472732135214048642725044456799924519165495152610819524410984613786685709245313670522134036144188748481235303087185407703232382747800835490627175364215482292545098741904647010259594588707790343670981892125568326225358316784207328772901898237443196597499779502235955152775343245726711036619012908624864243703677174495475292513622268772048383991853270002163223032728208377906668090644498404051247918771179580964756080870790881274741775213860589486255927745034811302652909933536106889217527884226957938097031527004430719764716305325487434153242346750541421690898847207600930517326472170047422341961719387232224293148051840747018394211222571498410321585852423890006579509724579767147400313574830536179685996777393222635883866794703361127374410758697541869391316419199410868600943653503124077242007832140465247682294880653694928387497690242077782911088978068932605114329978435342394395316349538170215762966519101341969704526233755600806484553103868249718095473675280690817964146850215956684398597527832264610616567529384011396490854139833848610514044983771941072149025567088873982242176701923738788470088492528788009197379871642821830266593795567892063239196135357280224303037919272741765494766074846127415439115891448755043783769625808657950469297301343329852479702908641358667265261982924365316461126116625167981882577053865678057997083004304333532315770883647653600404305680893343432718146969899264484419586991618085031661694655937034100760563894226546246294956580357725346884643503037177703683531674829746735039986774852347534999704953757009255026741942464821171450402220960392675438307682660478346117987055300014511202220820636386822253068921539887569484400963355859369716209119719734361490387235642702077595329946865702621525846757823802458391795001417301572404388324235012411366009877058102592586527164740342082348337795235265423264303656477273547493548733658472927049443666108724821752169400027087551884760659623043054714935318273990470236945224172116077434200787951731731607847785683805539461909452035605316618906361854434479842689841512377286741232576878435067202104802650089926072422462044554988252686266895630400753171499127386282215313408388509210544849695205402924754832628039539196715608535374688488781761812711226632651292938907001628009757516777954574394069935363779168993446585218435663600750773332360601980331573861364594586412094533209938076208153505834206929059323235057430186963837623999031670539732811035937282802875865379648384377639896035407226734136898396426749818795985106231297302492644150044394819590604214645083243332700123664984014236034693154702394697461888469755782005557353081527273012004757149861194244876350824267024918390065605401381357173143265798965604177860416164768250077213181468986352468249851658169552589428679593623463468200058471344260937057772637102661385262733661414072724995882217151868411120915693174419487668628343048538177867605080990951194834826122219781433498619517784434448825473016570561379281834143380226838137821309773555441797665118265066689927511452099680097942790337451551123195140373908344307921740743203465683960106291545351493569579605751240175349972074291227688763923811506559964471605491157481636062165678130458435439226547856424633132183975522755981079072361660312070160717604130610391257042756243469728212341907996409701064987549678347695335345718844457288773343866951757743566150107126320662158027398696646135006911510258377895729439733469581842328567398163977504822078272106935195462462015124700845070550464273926304612158655834912612861151250675397422155343280755881930179270432740613499129106308900144608726640553892256298152486258978677305607291090324398345496725539913037777505978707870638486489573034466709999496248980714403633685467999006470907290683113627153991318058216629649583170864973505214656451898382231138881423759477139633408352546683733929101884546713230796116633430124044232753432431434916475884463296311528290644817814002740565497930730236165583383607511172491699541062160344982412160000551575902409189670925987168194686557851680103131006483764505384886305339128301306887351945358476943335068833074035575208369178898269629534045588016366756508956438268948160711806418878960192531192928667247699327272971688368145409792006302240661642708777340518401512348844822202324824284091139528819365757684621445552806849310269827103909859996728174488277092339568415056553338093142206937319449907944117670187357311264969864428976030282517383489342117057081697278415557150093002733449590473890406668389896509730466340732351027997620285133324133114654323194469798130393587141702093156392562574423122224989948418470409768443334154255506678957330223167551032047109420499400241646232911310687864805610935123080853490650549717046277600603900461325980953474914508520915350220786552550805612464683734375261229212191121137428615143865519711200155570297030005186304374233361918110785096660723874220367517510209563653014918959038144008805645645506426491578475493505769767196946512550948952286525383320108613016402222123706579573105436269665759385946429505988492969385530766694828187969420326797111570295303315994900688740294580839764560736727835629054988390727467685099823401656111908755199412077861585351259888056468108615913012405078763439476159677029213747281581368063814348216218826196462090137531724621595355159577034127326249799627450300508447931874707924300783203252413734449474309258680521675762136864933111548985420918891989842289680905814282897185949901179684781678796308267536735774874929745624741837497684601781622996625461930968895364042893326018407424862096082347344114496329127548234022918565312908498479062237971812315688078293128628570448759330607989500601402732176798505395258429036337332830492366633986788015461682461936562488553390280811009230205204418291607921511183099532691206105212574488512824336308463815362010851220314497954460911342417938732225374595930300629665561888435600832050844093754448178448430965624992079525568891922040941375643015669946729721737291210839281190444028255880960294498048622871320478712713074567675104298004917831321649352802563449442166707776104850882918100323263252776516274896454961623120341566803700975318677073179645281521399826603166475497147931417671670614852143090852217660672776368326908398127715450383193051188522034506366590423094739378302483860288096000571898991201227982429509836604368837218527994863060973780426303161648585391808339348222809284370411309081801805582517441867530275606364417396434041080668421137354753823870391379260523298809013234061873221848737617205732213135011354095848325218965330781448643376743795009026426597873836064813215282437125325463460770976581623456410062826076981802909045445427426049003737244639295851303996526504598753766075551744848210817576493976522138229035275480910710268603184443783581866599076555827611507172505505894529138996530912550798845609923156143958839461605575902431479578385362874355962215371490435608624476050618026273565800661605197975466736673706325694452563257239894677719006786479898803158665585156165512276439092001166627504646504844148981151710664599133667256307413210970774121125836035098323805013070167566963477865659563695518647604628451495254755566062272557802063067296355033144635114704052436908362987689269182835100351839831626281266052808889600819018722153018173864408353880673633914394007124488302414144466673526441286107935798598705786312370644087029184363404246620512575776666800621213126386112586966335471708965034017868406380845697734647303996699315657649379218455868199251589164826841338346351653997825601563978571600284642193898205212134448161255222155577976685636508673855561015645140575647460016033818918571277576433722968643898776252294443982036397131192481779111437048220992263752379748072818038229312747658335023551069004460525959379686225502249913267316010393698156754638076916110372033662461021864032875692991070052328266981614642628445617537881204114697010837515480146887274395317494746258319826337184132522219034965657159478070937985544494292923334986573772712946557227971956973198209876885130752175887050797375449806685774871164681903394656571274819937512260134519806070280322887602829046834956493424162805920126013682300143835879233625901264752066054572416892558299992750258727459240714037996697543804809663502414918802731000301627345206071633663712803641832777211761995498203669101332605238785605522111367104456077834055638135270546931296319256743195070068607758529228119798948060833108292982534636772744115975346531869548566778602830037198540997568543131684868096216177469610574588691452894731803185742396741763979991464880325915465341031630392958227969850586715734546883683061407666821506222794776990262108753904757240896290322269858630972034632937763066315439192901625832595719098999891907192622174810119460270769108895059681475581764073723221732825668792891902235788071427733472128045273630416406918324151446925739741325443382777269411245591158958721685714756641442217402861303609791768936048957663346305590756136368354169646233989929567634748539147490287732889294573982478975001214163556074371090614235626997722248293347966024350196144987934834907928043921870653466832548698018062546505276503399564855065729074593518617042486126218224435408736811885960008027488847900907558208834960256132591606542856008047074915965831414653417100015260235056932958007368759747088572293785537400477101985914372774911847131786376736397853057365570759560416845488954877078153266130044377800555443192633349509627761975583949462535842682253382991232374935915542992164922214593452603421181750837989275745129281460631744930288555806349226970549872275064436976706486509819792123694113698583917840525365198191752082377030406309904805637540151458303402420000949144179544067256385278853200446705173931342133592285291054724512204382735977316475189408079790063229937473201799779094089522402044527875055281989017485140029658994254451040407029522168841767645765821543631130749076916002177327485827082373789999159285138548077362766868632461438124301408288154449582026195880074287770999411992873747965124311342229340177278837031117830821132734874091932762832323121175931433208005563019883746347622534458865214914632065099093090137867338716912343238291450559608041467415711335750005869246583288397275118019023454503726897807603731138077712770346120454149654544241679016452169176165907563545005799833437433901949973090519358682962517564889896243113142335150989050174592283990628310473759085281174751499892707685378047693605661607467756842077889669744536457204218744342554235265583563338270678380392938375034739327703606296344980258140259066047900859527745898065593835968209418683682897917246114202243511320848905713730519085860516696352711913433890306411065569551532260231242572365860928878182478714831498139167903404922816562730984109609117923365056386690769994013664826917378381477810461068547450600752177130535308284691615891313325941886821977107633090445222044014264950700190143733580993150559393311987448961583728041811220151726718944685849998853865316674171327555204311278406059201368151241732027605917792459117320230720467188948653878677304766612614878798798475985449645897598499223581209784130490471272224567961051357628704773563623417868076642129315618466064878649413808789277672003985655849930064160203669170839927530177972980576158534065674762749284780184880005046234550397525669008609930903533677305630013601643962281086361098053420952848058424111787687005829472503960211294985788590554008801766466317786745805999962715030511119488756718947416945107006016344858214979246537345058065234194999591392221269795743999580987801063715831856431928565760024785487094015640850675277549977743073171376749993097949803153743759294484801941977849888029935585991814983495060626955026216485547472036798793707200817708402072892797081297406380059611202111420520327496734819009574219336322662545826023535497276745689576472782965703056433098158131686662970645469042749003986115526108585741510867693184647946221615485230546656326896272074148778389696156460932023590237368476214299687800056307702887662403464247234470056384232193938557842737045612909359145934131921485609953912023242829664420024065462800933408888675840786850998313009320587732982145032257480112310618536746092685371398283767928037620250132789893886655284216797281254556257545600157558343883497645817209545852307235868028437077628724332189844568640148100703693142795418847123615699038310105578895975545116288140442494718137358284246837816713706960739543813802842950051354936721731663593510954394716981186057482558714309579243976471005811972820381981561576176723857623331391987953097151404723645834980511647732087712563177742843964098621251356572285294653373481051784585685610569665920368613061685177120620625325929338003258810692918090842834298277594829618971604855053401158848126671733263263926175386079102172655318460604588965582853492818695429198419595630887757154225561228134126674443784081777501988490380764100613541052401435069247959237990543479396617800564345858884786403498892053979123202527253668224471011860447371458644996637830461768064442376366719189521773819511857833464696552441577156053673760540732505593686704118747379531652995161933424737675054720428750076894880656674261824767442343760401863235902540873131862874190103819654642888626864740848776090199354747916236934035048410697572679736520671215113891184272658691681726148295782606134799082462011992282325226156532343109714751635816188898542709414758202573958571874956161929228491146414167604772175373039312792757169277231765031575579892037098046334354524809209667640532040142474744375645582190757513189839887512016931192472368251809583399075006597749994030863184853129262946209086409381448266725582084318296121848061810312096556161912046940843084844441719539167887919697370126532020698459175002989712150077950725576488494298200898304773607633368416380618100383457922774200205687993276130973757915096385000520690382428113779058924212377930425484785227860687411717802452243366972127296968430373072624795478984724837774445351858721310659599457001822289061814242043730310187168228852106271439418299182624541120363441604329305947922564497787113387633315362992119943967146475140806362071112948867751780929582345560767745538127695908666357888471815670775900627162113507369606187654920034783209987879057626575835209128681860295345822652768160577773003538047459681165633517456973673330816803313102191457195458830655159903168082704512789205707259215914510698708560351210375670255027323360439983549581280993807903977486410062627787293909412251902899526760277056080760710260358260078125261520230552672314999058719459648580982493327107065809518776398506917850339961766651639410123915326333832159681381599777744117777175582254100335718897668866201877122665967774710630137842599107373501836254764917699875211787561407984428339182528848844618603943485889645354879489037505777877160410589466286789838573944873950526594639407203569421319057962022908875931976159789873903121582225025088089389335554356812993027297571233405179149502249484428964225983654952117731778072606121069410518940547383947841868075059977229186376988950666138998091049617690021411714193010804888754582846622106334427361153145012873785882658379440058861332683987159909766344603197560026037770079720617633527176047643809449308938178947657983530661656615496568325697935733813369344966385710178335995863195124098397366405095472844682794563538414866563606284409959026178421376396478748529778319879127395623909220304356041388158504694172569326233445138676275651167279398571476264612790689791105214369674410226446221866309158287329721679776253258694533429359644341935178952328234724022221371693991220884032060248243499086633281902071616326997581951169797276232433233619292559119393614504431728690955451118743998291269143690715952220600096876474410419766422954438925862823499755261111449616259602181759690664744945356824004465956856953427642771569107043673128640187845508464640576608418915481237277019923622928223947070335166204344775382784326965348008861364303421287437233725746758173067754078724518741253278328011993419023031904928868437450487024528192259757542581849744463344275209815089908064456615026526133278802115619242756231221158232432753967163898654630170618473123367275336892344486315183816319936278122288080680332018031461871326506188182871548600327752774605219224251484158076578500396319029632022121443494189646975981583882314561124221690301807352241672575685249086119090631282428642546933360751956793168306981544659172025505393630875777756957069800132257829188611570764781951083581057764455569302233292257279993624219830866386788693518732040291438644827679667375319140861742605920887768305250890756316975523676410521081443489697086137258751961111834652570840006206458891725847471990455641707417433966058092592955543838448519787824862961356971110438031143915445163968005814199727460744481755412961123299452083365923177089831929948097372402258916642361984296493850182650785237911566363707675096361635242430575175107404111026265300550605428575041584886454065959679834220616452684650193300538110826993601985944353008426605098703303149719720019249074558057164515754966357115245983616077125040367060179386925832086308352234993622583144797572869839113187250268876492666295090868442122746014502937413656417798625899084105563778713378676838502850226301078296314711060475798788601795475705771864602312831423563082073429386726979734680194872432615119366186778189736468459083649364690543783446613608237598182013019682267653037230588561664796279879724773197417404742374781241687440648150748924042209188542510084294006236063529620125540927033517307699690802838508611179189454321044186875997036947408469102917462931629274678450320955124072397639147459449608254610315804363560527430441944674850088552667553899956867415639483653413437187131097405614241632475449377068560781658159252506611192566154243513287614698152934504079302733426516675440777524980641013887782236500816193066701632138053279589471784354506520766517040793528569012196896381454098580677051746053231353769193077226712046911787153609269718295114225665484998544272987973390595822694713433156050057216844445175269635504762135602139121970346487556389427062946942250989538584349217286520792627668104290215470830572334314894800641222648188995785077868162287463500200103431722272950837288718922383760503342260068376278743054446817506183332076459860531881439326464181620634846709303872156117891851233908715768839621728615174371472759814576606123649030201126827472663247411510953158239324189682189786659462684979049260660213989436214967611963586602906460532536225159823327005486988100891810058165949993883928959030278555923862859582613315874357356761366946325195805789205734039649434071330920002698093198514933870562038924607835942436980539569387421033666187584863864850319792739531233706411049561459715359694491736110683303284330270892081085076800352289378443345184258804047604249985327566058170198400117187051859018285698986015596661126608209490318906212727217095989607316990173212517122465511476450669324522414016942877081458150572661425488561079655807335779824340860654310334852225718000470970432923289749818346234452622819482835646561285187384801446270292835733910338991841667966131882723885370687662667611458811454162690606561409237328716969777599406230156850352334448578956489644474020837514738752808934893129709905225054049706330164237316083048024964973063864293009072962993637141102166723488491719060265782776761503013588004303115312379954129970064185015390307143837185859856022352076779641376193733794571220024352796359966579296620381461788949527262302507010453325242901655840200277406803664697571663201840781358537475076567694163999486743712811767009143213383833861952052207530222560345855803005196732052340167663333069406217670395988550714581655726257486741797735278020443600171362689723364139029648290297447628939777137061462719228926831336323658139443466721641375788751025491511446256883250413624207989737850640675507491425245300412626531051544667046845157911298357609545365895738455581605357779419256806462665820712849254511122521345354872776833322679437278101730686331511236811374227123160660005997741866264309076636044486580433456240402471127717188236077033281020417322353001339409935590372892163164819722571918276364549155139103251575036416560367141187781971130057652292796950059528226240924646460383337794278537236459740524265098245603544904047753181786099589845816312959842475582129203303551315206572374004388023516432421025724595930987774568623647659959097567485003371870149538400202703230959462635547809876954281483641617520583496830186147781119784749468771546704116199545606434913512034631412892791216192133491360582515398394159640624301678371618286320537594943958743458493797865188687347534975064576578452636216107907709843352889097139582811313453787151460846974550289869807259439037039182904819472293881623332238199984302876930679231236457579186053075440108456074615030482764525778317433617407447917587724872668407302194900355611455305631520435076023427663828638057665215232420032769102925873982183987779378943589288192856232195683463751940102636631992856593537273693644897573787433862288083245160940816523078289495274932411393630281885370660456051585732872359345706414223329529065485787523121408251176302475481697130936452476533362945915306213728971865667149083324099642434229648701555758514743576341037528778408288085409175347127460320164184041726024861601535035056320156496573455285894471910520084033488387802122183008079863574756007094879848843929103038008035302787760163172659936699064575485329497792304626511931836737902150479260565052305165502592213881072196671124639861393189230727657186918802608034577763621271031425995688790044055581270770910455071756802939017456800486249749762178604235144771818231575428839731719012733742530380796349492561762297524479932227615032125646356597113778457025362723956611399290610523057038883387291583143203197565601656161549813591906526432987119103152643464062066940871068036829595750896166835956252513505151425740333130126016702117653856096778759984188812978540658937662920425797574557612208302347342757585794222031107438333474481402667511620980706933798419425352624929630253068077723248729755875005408827874054646486612409904021786398883139800892523261300824023606469327520546652579052402640617755635510671791458999743881949915209729086000667876448521999838037671406316715295780564556361123011763106671142666200627669710002675975241783477316147087770366221395129358953279131548529248762066558704857173361989112589649006643123909778290166669989659302181757078610495776273129124112040997080282767095391724589893763839381805158831858026058789942871661192413291557113888597295941348362041324403297165028433751474169215235772415542587236456337720861104193807021622451664011260657971555421346324356128136684934475132098655168095084451138201727620907000885930200143433646247770633192852263323391070024503150230442652335541109599210779879775351925867803090745267806479214343475912190010526102497247584896252763654058294334490125705717335072791612639216482248122288272464435466207118618135765443740560497342258203791891936813242682306976546537864202278850832485232940997496687775810810835288475298273599809325386724799963503941223532162489146517188826066521804455049465072199383591512949145331627576654083017045164661872140361222911989758725744391377696693972807891846209901979391382290822829106325830706119485787355725772450980289679962603672338260431516314152104508966462126452926909087169520738691710304400032308447317492900283421636621444641234268043646887239411560580429114535526425438257027271792752827052712584753717670824857899639910021021915696669442828555748156463291860461293629374488599814952017000804638151104821153391337563557819720996798624756577480322846487612355888529029516708652729443869150193163198859273197048888825947916906083734762834482031748513928003205284020108997042501111263003596338691457988870801026985813800872144854134363194668746412101992650058947435589809407358534789868902621966084840908543559928632833104501151383908582080246098096667586121563849198465618515818928008364327186278676041274339865272472001499742688426697598138111791436857572349065020946704020263137841839698398589043741607705567673375698054289438408596340274652089617443369124105559691576248075388577847001758196555802839552639358726228990513060929295005737342006473847088515899050235025991057297708025341858648869588524778147148153337629748344038799427074219635166245866397845581034940567864489377205652137556903601955259135872422106351291316601508080843283742540752006802044546244782712428368304542846392112291376536038557092410460013024581851159201280704605088070681681813273715336186710155732218075027565663287447255886713198304845584702695169239733102860110263504151656848483023865963167746414828936018826916284980011974517662991105184809190192890340642452147223314696885836541412656539638399326364112960335270415198829865472838786100206455366305982399160173703330140119130125247809035262359641220685573899328386732167210599911987399863406648775931967868395946347300197869551388049290599135542584746927468393573443544439409389428125261069551849557266125029539082655193887751413046691783138537981926619092017155057526510506096061834299361363826844625236170368942902712438496883811349910499477363750140903989830793116222789275746348844207007369308131729075826046810046374250330080176112853673392739275383125124931580044890416039062973621362918447090543789563536231258482615559728039925073470569785703202685902015750264359594950742075082968541672004478898548517334520608637392779157263197276011340295568512112778076248980157150861931428659273673873494745137732228181877939569265981758559777654631527544359842068274581899421755087142655791526870072764348735610938328328513719612238661275507939734402628645768241469861580430556656482792960029554794072604392374000768083220443225820464278284900111970416014681241845291518609307640496360334075088731456787346244843622371294407646108317415825868295318555171829299596624819647831521092566789850462981192131181294285025281836200594009166822848311811780018263761016172141471394237421314698553937547477562458461472915992628429290639753989403990280914040869450828423725146963349260462662458985616399907356394630648095461800700027141379742280066794157711042871477752717300608009402725461641904195979503144483784061785205538269195351682197272887797407978062226326073865173873034761705618297558013439532241884220043671333309118838334969322697857704956779443219809669139970200913644523005183932143256375961140929612937832257052470035486522528581073731658527864944468612074729328888973566447335621987178042892073595173263490756126042094271078800067304636829458669331959864919411028413195724765700774798435145014585792130549614467113696713985711295541153283134930530750667839991233199760222764592005703970947580823656222096347117776056929855209067952362744322024643238487942060266331134857771985518651588545340197701031997367115454058608722605451825248932247592786652322408373465803756729054951471563222729803191005938482763921466216664249523266721153449798332323221136995503382113194468091219699919917802740585631095642570422654172224668694705890315556892414602169372317602439929116082116010416219970344378299118644050351911343320518527796974751990768557010162149692161923128895787792216201703189514098113588545857269018679392739542326867108377660659783976943315926844254596447741214955289963442760851236005579023070576518594704844835512989222245316018538165476101202789414952727007404763657903445359206420672209379575005168620240960788598549328446353426024369449469922487511344689091357288222242849309204958838107396091689464599922360773324744974344747678991697835539180082863176668276703096007930041627386097360333825586435199770786116304569361595790722495268303541781259587862995958964259966808306447069551287216578615133851082907287987858161967290557215150541985550402682915022099954846417898803403842423144685148421295994254153358779191330423671454748621190166218689402608914042308325403867503662810729734481055316630796794272494265913342593921391405380012101271537011008405210697580304376232580471598202204741040011226277537641366646697408602966423702576423032530188015094220662853363040594044919671228732031216286834387061424214511907987441130883296701883704631286134987753285208400001384795433066744859972418056761529780957368320332392915635689454468538788817354090353013074353195149384072415791525133470857911665404238950322465937904963914582377606243773498784365515956903183595923202588880465667539236048291660789751517590879929505926173400873207242445552468863402634452733882158222551069160305121804346633296329475199228807273493260349999855474757992937351238050610478916240592136063023574684649580701468011156771318891660329381791326339622947331037984035272498745315516701640535899987038791923050418278604865262528447454549536766009410760060065696879934102636006301070287581319538410677216733864289184184980031157677057193811973578143824923877687445338852936749466415823183277415656109728757572731858943953221752952395902196944784303781692847313580028194133926854962389108753468813216358789905113823993155544895863433526920693475221249777980209480204222606380736707974717485401484928993009518919878719966191772460948937710517985986018719240941935166963763265016567152782507602222259755510895311519340708191393377699652712834947838537613610590996933168567636416025415919245732244376312741227676424011795657088543528586707314450194808933395410791602974243471670019254496267041646935966024653418915486404874359356510405337688502544262706792768844308726757837856346658794745831108605640900651795746295116437324163480682047725279010429779221678848226967794248321698177434787196488893143104693811474479352765683442865742691261301041817375271366809744816864335613728332302666737301605509851178277682444604428291533336878634153361907192723675747034027487141316926339979080153877273721093405260077464470409988024561789499188864062778077988537572678665744315668558812154993157614430003389843909356046724995061469760834120429673240019395015966912864589252903046600248945436319598167967645097747536525109464534697927656623153129655036322472043770760418122462097477657956824822535493064032419281660812157273039111662378835834764587097117267482413405719705176174848804876135906628270028528865158469479994999000204476837569210474367793202432137113519155635210164263146629332611278974915532363491169833111618083986164434436456625259474153811015686239077331918206876518583806840539958961156850809571096695424328265383140545441054799626806942728769861263899396504385751420415129389631354118488648717975464364230140302430063544843603660643513028311681675720302054155819133676634222127598457332383749249522342700388977879354723453101233099959118648242768379444836735505976724450559166767629343745959812070289188448968075787505194958094270712941811310924636680604074333449492428988817587138964227509601307596738982085606080157880476082759791143117388467015620189742804549822356233786660322381631647174040298658609001228523853490533344703731342453367917585312461144210683905211364114235886687230930747062857933711635392886133049149699159350223273996032991797208233218692732583800235836640848251674779452003072861826326421470659118492402361265843035917559226318201521838103761831289345996437876412353520595616828454206997498879851116406418521863763844056382675404093633382727495708144678922352771147113959544541530109947194947119127470701511361135661008081478935270638067232129545277619188603313808201499740859689047601523338189439778647062523633371894015098619602595850370480773237535604455970742640567827895716409776399292381514547499440122854695104860347017923110083751441915410337752836251796782844546042631639056685602506660587067234491364072633991133704175077994014911309881085828136726974880748028123316097564710935657660960841183463665211857632687208145920587055388663222262081221485259288926072827278593618538155209128808345483151390490244933329423328369576763410272422295714605985902263818702136152688378716755531447192013559949213393224028153099530743194938189345252211114096641512345213948230064555962985144616412105344393397830736165957426329333417780798785115739900346260942696943914746194174489482531311842819562515974161184576183162530782892718434474469782605165182290589520948412039263437714878749127497874295315489868086547782074696439059994239206079020073242761668392519182192406907172912981323641068516358978492889487730447380611582007585950513344197047927901408003846200039793046629178926348562058351003532316725083182908741915100933691079997389405824047474563723453489480813254376743927650046964698895790483212976488210941845522939206223997388239654913795933518622446099981523734202431394780808135491391260355830132918770997635047260349040762177511606211729686553756124615033711242923158622085675601213883872187926032526866235139994555807771231504542694348019251304022984375325601627528652804793970199357184525837663182671929618967830655101819918299083898376208843921820360080592693610296612139402757038933137144572691585122645642146403234531192293302354426530374391765750975500661758570274362806562174914171031300329869044473135101916326665081649003209535870289925383346828076188660170600267851602907378596064567398631943052518598851991309628441579338163647360455177156925306695581527488565778833914815830764319320596851990836377165843227804427251584677986274181855780560772700703545655506909492335420195091540894885342762726957262320818037663954215708877348663418676389912303111229764237624436753101490828983754758097786559856007278006794631396586737039349965593141385503924801353096968712826397617744144488827216075205224921187473550973257057851699986916686982473822970080840148750048239722042963925487096327710723898586971251922535224664190980356237161373115916382846938228629650941820091788875328314450674628886784934483022327150148455874917843824453420069045551788122831630043222213420224361448520373077999182102363259580866251950283606237918853896975680252013847519378917725461251995125164962500946155136167524940223110882113392457944136441399626542034711573799530157134086032543002828162260341893179625859084315235923311799832076998021239785232572906608180778209680420356858853099868823214458485725959931768726681891309760458748111442347082478572765405809865276114545388624063010302958485914574616293041770474157116474501436909068921831150093089863159883147965853994882430406785949177043759212287429203310817422775462058430267440872286236607194942737022323154920707053430756805068700360954510886351423107475304273947212511999831288911916670463146900928043126624995312681466075798126467175052983494949315703989169544045629040026485669305562794551970143905620789106688041981895319096615389207841044147054603456706327412321605423318741039305286640763036472928902145574372268222914221515762114835014369742871156539444371620767441637616789343712028828099730239903766625567811703695383577667866895386044395929008580021432389810532558881615743525774470244555854653447466180287566928058123566864946822151169889776216308703877965991578539564281818413316102535094899993731111125717251368414146501232533079559615664946841467399826588573786073757947377747790829023552376292636037008313975811222864891714056418819084974952823746323400215598740602560097839556612109836914194044291749291815163944019172213179438875853221767856365244097017024999592727353673288095988053960483703334128941104721254706185453692227443444335657786244360756576490570942465907911991923912899020609055122710543937279577301767244377977724014738082544661585519709024841504520673263288219465419228015407075509055700129728530937476484507230765626794928776882928831765238039235911783957987291992304617854730311905334704467282538254568830674474636071071490125658422614390228439696182818038102172602253283785513587687287168838769568847512226902376159868572690312942732259734010945191952528985068921696681734498200140838271573761066145556655023345157664165084789823928018725027921103032904510662938222135191437807490016013038571123437512519939529676358249920215136140528232277459518520335796569732806456112054053954780396169833620887218705478400721991747525595297875755795399835467006033581313158663440302734775059700182142470104113673039154848911321455814435507456528260245187035846974922051063716964399904178175608456272353489139361615671317274979654137531972559073090597457105574700209225633817561891673786313155397614773272938661641735931098559727475568909840290468703391718020780367884726266864570248037868964396241969042651007971424019932543397581190035007249684718155851172937000795618289355710301823829984221316385227134831098899654483815481058448111108327209999430286710892626296286608882882832352992808813636313000769829941725571002046505116858279860259938038805227404901427383976674026348498591640027358467265690754532403290614853957224007544712348278686636049246486553439319802574267950789096696031743474653109873684001407989909881887398850197271163577707730556243566447909762429595643818890221335159886620863421643701906263594268078239033638163642330624748130339652659696428182394326272483041438575171585606693383407271871230519320693517838648008447331343066340415469134317379447726571955775733450440113556222607227396633211409606065211851042678668269742626474204342286364906467760958836527368490581323656631257509607411733288596856812579842901282499405784379405442544549814809633788336443798455162115698823897048008151842530025673552858569543691293796504634355825713127472694279692266169589812933631257928743841510610873097665931796302237312430303391084094734341163448573272935278072760488943866304613292677881453811836321526089252330421269960816435178356780439431321992616021464767176343170684659251825364596894142772585246136525219766724661471560194216591276176900046933656659927989776882585355260626183441039531121351151870319167396572214770713543745766782831497379216032855168294000819492184397570900522232492420189009564912381026075792228987172174741986163580046913638226976949006113139997661018839501236244890910825084644236075098835758738870441450733717696952522439467363796066354672118814370806395967614679921214403048942775867830842770085261420933400302932929608832337384082751039729793214850066075098651805469774015407429225018562351679486189030312075518286853320711583331974709791451296464004298008663077231354408682691125265828055020915973909717258786574699701787558805700587202981184446324673275285553641825666593375245394018058663891054953327125911857978472963183387701502072264907885287979540587639381142193664998534231203050601614613574420077402446466883015816895658995872214046321574067883357391972206453051268093944618891872474897331196661992813822447889439199214555554149303590009122506914618597755176870229392865262804478469184216059437497552843679932162383275396468721405938350192918275716588290459381776681216336172382892466248456569103189673203658613254971115331817169550957751308846142098533878527241828392907883880862133119754803870857313747777832899059601218227570781121989834866408387766546519511673766702349813938334240169412902007662990035142289443299313466158769909586890443370131248596682360859133868031665541821213083877255207587744303131234909452500392808947353964374209304936530855154407848119667017784986415732522128211891357475051120834291800011634702442873460056283216814265350767233912300468671923440132257408103077076627775200567018130861827198262092863722134882359864571155106211092098187481067824182740876788275796931735694681439407663762994692505420704689124161638763060894091793050289992246815694448538656307267436979512784644422925020717374952529445530967020333614109620594148851507886646833967987824452044763837559418301052782092513515011262903406014789793289284854026045115036442516701624963088730848864658231382540199777105361559070415091955020833434500395360103737627646213752140161834404201789668489490521108632579892499465081005838181754407682160384448211240837416910076353324905140420109750708766141231338215526518606257828001488874659248977535002297272298620887034842699854050705687755205567945489906956122240432105277690954393047043666484224611143209179796780306194256665968597707631097275310814089444525507551413089192525049389623062927376857811347069514396668674488631595576237252190344825658336912701979337528906164663243200990114871999413608431423368441973534958371810726282601849785861837319538544420339772856573656907452362266235952131797206064029297601774300691456449065837497318850142259923818597823249967767701826959191341488466464325605909670612122629724573392409047826796660232408771796007563594352395785320862571878811103671884585337907036711432466639984510622279161252464888848015852163454404820202457475498443392969837164100176932375008723161099231094290110325135434685275698319007767669541697014041921689999165227025320698195010338338398317367618439838592951035591027727895907564507529159945800149260958676408754549957559730911901211564008674147582597925396906459648320428363505534555255713183935067390187020849927503847241544770202189468615173512085968261345070445258350075044330397475921317227255991991271351363526346893969133338284347250336147125673812274453184581254168194095619694608634459618969423157328533531777565967592978921216057832555654705628421711636454476498025221226549514685901538334558030101229627031707929538007246547314178689103832773282761579384215110254097735587452339528196227166726743895200329753014701655726995272687564566456339143861944661530094686914574861582055284358881851575335199650725732735442677178413731128531865435168731410549780629613482437797909742613607379320514580143131158324672868122616655783333960671949843735261424676359218992402975455375584204064622827075559902602615202358692754929238405089383089289053881523287639256433282189526765167121977694250454057086833708097615976797380589261816315400014409768241062194933985635764476212901891030232982062250387583033869749671059206912067103491828405315510854235826117968258592654696277823907635476292090144551173826659752797475734113841736042488618094612975228196617790403822563143001764709352127021406246227120354430917698530102628582694615480528834839373536762103816840218254318362377461154232602957664895932627035525076513966751515367040592050126742101469013344964866752917135699560089125261798794517029060620941331758005294166249839457278103929332558955414101581689462923843098811818545855142206376413280153595615446660330818511049095246932608392564043314912845652626168684113982631031079519142213344107911388353104673252408707753097332828966430232705531248573145928823083359350979989596084134261666089631106057185017935239107359446302469402613785102307308016584891751953812618050370598009602457959255873660193626694024864094753803063801866013523303147663218911215400266518766828685045889091053764334349593423679646588472677557056187854719013188636046889383893278914122835669526980949215116638684111001903242451755388287151418164531982209819736734067613413792400885730528405635452907123442776113854903912923803214913700846778763455351574397049454463909578844445551221820299761718895052954324543411785131198442424572719500229703076237713039180311553783821704859090473792069220184436594624620622465009747775608498573055602087558077513462961097329079728465044918343351986364631578807788926857242587533522417630572715264923171283710586666485412002119872451983668525805057930724070203853832744161693085475870670495581914176237646060426918433548115543462658240071348047743140741608850708298781414918871624354204450890145897976736391746724438325572546777008275122569579530339153140788096545029071385190336271770934698800959263550592961613754975671939194818201506547994034939684798373917460087976604498422218927728468968359251436285151767946901189124154847852102021394712290810275825087223654938055229700450998977039113781138764836447525248784074256461766107180728289572681272473406058880099892852742614841132853373207510665780140618256839625860293701494643193826585151902206785637338942333858597904641966020139163232031229525617315429908525340566267955589716947511492521075329842443969954339128047272678122424628734247887832356209118966241723736914129328881758665892672582541995886147231151187004018989416823787427538622511181076918475674607757464777114638446467032453062024861485072721885371228447550916831642918744660929548186487105490680797295147925730316903560872527561376714250176327005049719178809308808333286021022459206615448617967984904036253840286613462719626096492454131150529961028240534821211169129455990690975754883650895803526379448451956710298837423313846732023942221884370925817971336603339914938978002652639492514683777997073585897399697649746764758882176590826091656530624550866975183215135003553925287940355415663821703647624080646234717775033544387092032319222424222524614241272506673105045498526154284335703377421955750938375075923392051965660668618340867289791367108702966065234875571133613494336300822149892413271696360301638174578086600470643562263195531739283235075692468892918530620672713622410612511079629368751903059243507670710512039453511662492209574531747449643782326537060099137620318718131176760989266264980516217622116237578693971603426598885861596278276933548470259505303298064482894082669302091582230427702058425948521626412502695865234266004683207289802525297521511898285008219888742829395555187239251545312998647981115573289964585627347434983585051460001255204593302320312404641830568303951309074789767049317846398982710453186171232513224621142840039853797264529067118361765100059306229376151018810534423943115306140687686343648022319107185248428451427322681849934874240191077983238744300371266520808188575559896462540619403671920402403484132233897415854474241844260654276695405888671579411477914055432424953702095953676983355542417565951242360592570817330351344050814104161409553753550492266890358859373198796503698065303214950962224902691223205271935348811318794118285010048368770223117985312892636531015620973161234273002837528979022554093126189197354320728159761726328385700329759495776246053198281439810060436592091286461419472993355327889267158233963373808670598333383657882623163208085859266748498912376075960287745463608864166751823352982183873377654826164312758237952333143699534989225150320399797126025056144156126060646349313385373791725459403433471531540139068544338485694954265269718732086129760236977954304138923060570679859211061667785588142784810275823817557601104629158720837584652891849657781460194353110909857622652533319079884666519087765175762918999993366853912062986879492511865269341098324252073261870886563040383000677830382523009653266687808186167774852616304235398857025945881048879717128921254683322647217716813451987411347896946484997238446817905687784676590735959891880219027023406671132847527541293569034743784211697020069743116931388257601089787797447733995601206497171790276434896343553934776364518777682839523802474676575420820056617750512470216110302955287726538613489075004723739965077679787988945787080442132752886406755294719545422259119469319614335480537365701598715189673022800632799171826365060269081054577456663088227115828661819426935295273305264816590739459298078483001542999108660825609741807119063594123071962915338082246666297809948268264928079396694392820816729225103809565550342167507628050438323794854304174928406669344761539575994736179652812579118621250581001825876719658492516151703749804498963973871983913466363119808064190549975641497034375679053897565951661953879821579923220329754647188826512006042999866959637855951647884257461878695458979143213911491563914791013674025938339257126014136910010759833720293195003569375223418598678939938921935251367529036444748224925190433353991666893681725324947617623573773802307428607173446186887554490045436057217686730569722811091133617033196722151078421340443567757885600189495934683206903101117184548854599129212366368461090616409707766556870792013937740410452378800260383148076185785891971698784421205553912122989205486394129816053791212716428277579373465990379942763194378734134631190152561874425549509875536344176216521013789120158112819924879193356618579346748079315227684724864311241788038520458537916925560992007952818537281455391827037255990983165122796951080493991512555622433111642002444338926448993146967795788348019632593327530589400964338694536730124537427901916496014263572441588739022578330375452261700302901810010505723971602813852057826736159369477771299322884167449029842297792966843751444361304499323455857222352179394057857838025265271441941615247443399849745511955566755460728527573951919825755530577913240393958671515551964699946372367988153964043001882889455979745222234656927247560581907024871430021865804327037157031081418930861219452907760996863696750198599345918425856011480813296753018212762282905850628071275358369960336293870126142222111960256190596076056144727456830228271184501288627811385858799535760871079422484745771655045311443314564301440060565548968885928469618009911819969262546096773865706217282190547334491550108364159198004388090468838114655768158163154074540817488058045564054975878115243031455847623525607300030817084701732506983722577749896946740275252925557891951901393136854480387061785645641380355626075462039850954728163515805984108523623698264284853818074222494340592896285423823171522499416382578647671806894608532410373580431635239140292556335372481932410707809775423718043569059437627565979185243102822142285658665062477946800492114220236281137305662253682298656457328692315245154737617117239482486316920108086529145465042691809370739619368357815527991404062851473459859847763998472834721787890396296185512203166778955828936461496768790735026499829740916182483934353700753581788622455334728248267074052332823441246361104706788191351358995082518092063911253324022231561259222087796145115634974550969154078968392809703166916242617843608758644496595993224821851613347164035325887529846686718778736217159057467493383465362186333415223531996978101853472891231280992129929044775034429691955268520651768396735825267483112799030959750263158510078958805686299694530082741435265144407277383977468237776884485608004017513174193474660389771279243225188370507347262053716462306081569494858397029936922230191859720966563013123802732247414517440758620362464073678438142312922143808522717237285379889763452210242106141460524331659925616803325190974132207283325853834399583381433792848112236035349956572028244079850276369552072125403318669723512552846061101111827815218856895329638216805744591959577418331461071147394177697102609681152059163905435235326287412448219967068220291407054055787854289650588417369781203730785956734748141690504586967866620331368388398839169365733515399761531680725023585955555006662786448366254345472990728231398589543189177804072137930168043880377267247435844142363213375533427883213733365278926252439729301639359072864432727703033990174421064025253285577379194281072578463350812400515612739098864512072152825689964029160773052025158857443664069611174526049882401416683192472138520237793791264762371889919346119017608706134947625012074381434939257878897876666435064324691832853668325336501066604608184983292984882732393161229039671256733745081344203880074230923086362077959471093698701739064644826890510063484438913414214813025893946659390931019519044703608831796047564108513024852390916800884441455991356654077378402980450005047803855862167415953829766818865972375880484282842944675936436021983120721036980530377844580268187668614914882065456452757241964820052014885507534032799923093935649821460136529669442233626193469348686549849813664826977132880868519934677493350342165945369914869566085783016130691148388267551397071973644578666614983831419175572330207322860395185138368808601104180049842125192805048312801847911335477165922482321691964734075638471004304253783939725206590736891726658310149437129821616643920357317214695592246946370603268793645645166828015321731768907893839480145845317132766390719654675382631033163620411529439608310294913478430243562966735355512611562585424772193757228219063600151810600066101102211869466653894851055717279299974555236787941196964078204790604784071774753546331479302229204053135706538082506778074005864698372487169694669464159537788403376421339205147963004272279754577129554600179115777836688664221926209960603690350502634984518180701054045575796936265764874435931486156876840926641771497681246839282785390423348381693640515262097071932538201816298281267139833449187851519319421849414697334559870561942006698278139672227017518308044016805299247573886891516500275394562665220314181425203914737408780942173544430829834806515311707569196528538537451863808792574384161631865677957564243971694261151550013815961767707697866983592024768121664477994936652975211066382012022522839300519258758806024208144648638727256688550146980823932783438428865074993780386868357640786057618885698830821615593401297508162258481736767075899006834288275902971303139137384498513072005044258279074424242072592955155662127110763326975367329362069789282704235804473403756936760687531665855420193988408144663593644294653022440899143282724443276719578856450329596588978571604172161775112151331144628921171441574322550495618844232760938846429480175567895812451018072463457293159848800096396472637762230548226348877471230991798858056293970849188496263227920202999018718722698181410341967246382107676520491959739286072911956352544412127704404734971580104838223840199200674369352378358735931366595125350066263694372041988637124498319454494443364147677071623913033374893530859459907539866721906604607892912581361920430322776498915508964952861642952551834557020634267919866474875368403645056338195236908340418702329660324514449206453137654353687422309510816301120877145206156897780332253435143565825504491797597478882352003589386320912935495320275859873731645329220397391078108871345528538690517378087316468274237431514152326293705628393793724626246604919087024869092379445022150205152732352535827467583438071602782313087349023122689895578144076719162405183496366173011842743444281979001535207580044988368395972112527281111233487367601421701360237286649328374079035692126649648915421639384043539953263784527160763160627956224972162756156424781043057734851351425817209185784654857100626699471210738541017174358869937809903181778077226776572520244887275867326891074580998272081693299207268206081796111604029788036051186186732668971791779256572420071107881014410273470767136172131483224318468581360330104223250034325555745998042758883807203642724853343668388723035875121483821097664948803534706691218941033746883349941743943484662689209024146997900952259486563835687183862787076182189824870059062721216074354980921427019799704967561282961274626532826725830966775846566662383041119693573078101687102556963343729183701950867805501778274800285766424608642223176553224991834187172739958991077595178068934238770712646279975910707891077763515769212909928873130201617009586873503847636643672864536410465972190213373039040505704669405443939481275166564453448737383388915375077464955835499594086219908188772059074604523371705104771699345265350585261089667103171262864214129351225057402608335679899957329916353193178251039069382711073776591293442133245134005989632404044039876018725678678068232000140810919598142436539873805504472344256277107524191474980249483565535559522978250706921884905988717985924739254934431675968778392980167087367162157758181652577431476061262199220111704260437525191113125671037964450473364134309882178872608356673308047965262418205316300870313529228465094884993524144454049802483026256291523310553081004769160200864344194285106764855148281916601388336347615649311144454953105886452947439547541893098877952930311437622872429760780103397774928865384188321661445321978733171858047741810997324583626627771071651969394593494686061643850687576253409313429392652209444214472088306217988617685467587992837155697538848393104885350544456815273303282666933309067535845475902618183665723941964855580052564146109309418139608816825081810713548458201881442205042759711404129299738945875254974069317168675813496002016762407787997208937704917895142645350088418731840221912449515397655424681575461155743513794619614437214091177225471808789809726254787290395178322541834220294170343849459976807607718261041395109445247321814041062120646870310788977297205838825046115515569595900225173125730011671799769194745615568172277687321353867585718673695017778648716858588259882120245885113433501306635749711528024240603107748970633390708910925814588366525177774215394192320296846385907738739225197301334906335933040533708483690011299561951185990002075256360806562890275417792435747650212707234589181047683291815213706708609496526692877507151882007926906161052108543238413689590224547135664836258444662700805183661452331405957502628412973716319800165959912407733080875884043251580118463624784495262323160029804130545700490275093114432944430331397009286656262972743335894683006370175786423275840451228413008306954386173458931449057799009108316765541685186626735585561021618980663346451820713944930807424826266994691914005617076371664966461222770744731825946939164236473802892846485417299312254802884397756467925629355355098265097954986864109207087009971470907683954369065445010809464945905840001311726236720465454062732255882709080395181615757561928819426516124612051113158235658435119405973548588576462567973041682215803233654798915602424654372122155121538147916785949681934688378355349840026496265458239960337259250501839690458011276894350575974193016408902685905847158925839991760108785964581778861506937470621068208021805417107834747529230733183381836097661625732035134317767263630913665828134776612637810328522440654284908837968175344876405905029566956021759266276080150399142585494879272912537783431277314644828043557861964044051942355184985685755074552331948213362626757408366432635383694785665039812769535568990649949089470780710646969812153011513316655048493960829791382683593659794309946320805916904458358597950353265978423714029445262125231366855224327716044226790317976139758310115547472459201738850221550759117078488565500109074895208196324000523726406883201930644884288762483413326450192083628680545471181083609078631362356026005646200294971269413732470741190345558271482810178971966004332628304643242364489760425441393473452773522859216926886049057665745834382803863371591276046035119627366573736842845783708393341947284849465867731296244369118689352993636106482323127955277068518213365102946703587532013184917941460280775256335763622803439160774636015035538073235435299685580061314115830656594617057769718751972242292760614897483085840478794765790423231873223542077324438075254083481829246762838268468476011716917564234803973814811894725465866808694537867237704790923687599590957525798368044007459407953123801314113597328006703829055623767578606198194339052367040385821221897988302676694957299114171011457580568546954543077810683656548444066640074219908308194026483869691026251260803901868393189577114318343174897266905954689575020062336467902239789779406995577163816256041488344868793077761846726828390167333174322573270267232877095522637553359183715456008239688705559821652758312917058188038066776107233015648342379786678090036006203534846910611277917884562993907961017854944249102954904948846554598459347965051696207577791611578356557061615038349514773407844571273651104791000430386158575141468744067095162829640655482896885193261409479925937922494639859560251672654927862041074260913515017399867425593097939004387176007165025631970153083110664315178144945922199454067192188206465401998826060940143216089253294363609972599365358795181318123152340318749976883345643525680585423189902703835452379717254730104140638754365351222551580856476331792997884193036273985356798207428418437526692572738862129010305800156926164485635611808067781297927445866775014856535313423843686029511290110863173050134557975248376645323221223275171151032043460945895969235786777704423318647520852047315953619716275492522417297571963170041746237772242655399633207746910680298182547199351323665399448779741269044144175796908771807895683320363338887136778329879504352880709715045806174169670118579610755904143613300793047616580305280433903540595703530769442616371230280732124211321535827111475049226070917436502808232248354529969899903737173516664674383668195234095938324642207446847224265193877224028862016343462361040192895691156024825936428684105245095366035477196547927683973008077620321057127222064813625350656361268772099863488834522026170734639083544458224552663622105397190224299196411845393716597234742214623603265324799507895881542314755141580179445704739301892277587146610277239375549321919338724625336955963544695217580101156716186660589398266193837992945388667471686167729776950183809037511482258144181326768978407209826215950841467175225411789737012855025695176065134179347884061340025313818734794840147442091771921141971216879965023826668806909747221511459562104373970162148626989719820525270199813246069865588438218067409524074659744943708344770120578962449553611336055628891268050536498062561629401349215401201537015071945959359410265585180780758718938962806977071998377746573472314180965863212554765337429040672182188756822538059442005278723388816975786582255984984508973988924273223048185393372137872611862250719224209411803203078559861627645195845478289215342374122734067094362083399298392078460569858884705504655609106213048525945002159067869915347169847356025718834290501114393953972548328198965507629879301346749639971093121331967478711089764426967470321233255330334548700404085310834797471646832936553574697600437068744489139340205439246018612621738701975547381836034433776651268314034841487313380822016310251075786324485390266839395773114097653775251214934861658474473934403457992348872262082767805615652655818765705527299983006964963130117551467929604711046808089505167573988638840229348562753139559310162531052629740587870982043943531734194836199827364744053675873717268431451574536370970596246583793609234889802245915000945938439298130846437152993256282407436400903711020674789163848892033126791764381346697925881637677333037102449983164212116902130453988330419932372773407992884746203554265731047956236673555273000123617482470233960271664900929323993003088047686729376389684438239592951965238167437985214505496712040962209572591553093012429116382456703320360794213722062298240722296561277977335413611986918870463140529849357142164739793263386610867031922387135014887863526400499063596585105899753001695956259766768198351326986033066958115120162690871464895165899144409020546095656295281050817668713505230733396156303933241760256315023138159248388239280586060509074128891493480580293701710081168059856129160581903766694056028577836690826770222771115688839946784449688933937815943977384230946304198808005706792416529831986582768713142607273438140710681162522173192751696776669281175401600647761878811831849761642933958643428889566799097730392834089258847549458124716140129172027963468813992082545480175090372536057121629084183104710454175445465762531357067967622847456390884745136224801492101743964089705975227675509604076489614371141135100097933981692084286606375138620312022896355113744789263048726386957335969432798281468550478711185470975921373674831440041483407984686229388277363909998584474689660066864112669138245598602536352407241985978311862757796086220100106242258373983416277864245153216339367048455324906739631551830185709082565857045273524174457302361496090123782762155778845961553648245372305979532176388922144434482642271420474366202574801821026984086753596751785017462401647913767661552101396507525432487225273233376613614893453123782047206917457580124960224280080282486061693564695301868378029328299986464537708727782569969401365434252467213272645388457496145431635993327140021513985770514802021803251958634023351767413779165708543370025104414370061704093983371182567803430125875063218208922414605001112613439263186609015800708270997026199041900886413449582894175955009164665590750738304926748240533268019294170538687851533972348257389464833637393200002237443832232523707131509118656527908782600015424452298704965269386771020593422124842245414564619878212240378910620803444670891273099858068237481615543066271066612683548774006813803003548919460098653387501431665023628918212946911326049414456773095153689794729405528559142948818075453011995450884555229705089799133825079258909127442220208887508630333435129607877037607422638976182101095178156186189723999262606486482576126466487248418354637892387919570407457146639924033259940922296157587567798506948081745839408870587618200312843575481823697260119294148220021385420118947162116769590983587950008149027304992743817871092004648351385842562421124257012421431715461463680072985490727074510095275384319212962459554322737202101062056508241472673727165057170250682022338762343159846054416148631593399673609746656503229448278293650205570099641845112704756604391252695422341620517521284364998244137592721907741893217637341096906956718419596112317549459607100098367952455613485708441801330861304921972398841879154496341982093708148456953568993926563789538239473554777790951420507898024105201919943246895925415434561581060853176456583315400068275017239813385802539550556313323069656751766408158922374311149861333895042579061576475861487804561782618076391951476888598266636740781401523157287699600077352548133344021066252045622221917571198261842397800660060043195784959827026539219925060646398046911891013100394538576360887510448944816535337807275934890333550184001433853705461917828805876114003759493170490815843626651173845160780507854995805465703306651324092296678984342282646611320739141308964752349567064195449020875944912890572231450862143199229239895914737549854580114118586983861644144088555554315522427050157636005220811856964689140897453579820329745748871000700640233992595285033865596732031797518271582962108586860828252961042037497766438535081540932434801738062818219309736796330238806998288872667336981618315811260347882466967872620162667693721706147846073617642088395934197895224655636632137551714746554057917184280228720496754507408975156340373597350567588089552417908005776273874253592547760187557019001453760467469717909092161291521942711525775039364869118262418113988532722182776816623064855898480884276150970790061320485249189735364535948807829700698530863012954357612015878487131759502878578089936806881184893353015086797497814837374116315076876998485699694359120449994519512812703192962138789794441585204593236163603911473406126291338801801437870123767523145322300850398605003927478594962285886096958871666093048783369412156337895732518934514233845324204786042604080119448908455658184800534500435590781325282098044575680182827051872613718842518099099559845208883746867286534824428291124698459775548421467786428525550048983184476252427409890006401609070481617876393130430142524758186769358940729790160476165103184360920007354875696044497931621466675207275454727482718349894694413477181624946503991113130061669258730662350993723745793235601050182673283841023983459531990353938968261582616761020435630089805319417693343156465913296600597549303006853797755171701693965650559780052446967474723282951241123116038477714835675119741704471913936933263645490539914178929575189910563228567239964723435220010306963519614210782805769730372945542814774551674929144598055804007239967271828895507118309277273619558904176369003525311248934820054246211402523740699104343724559860588166215409703699978579253268064682336125596763097064271511571059367379527343630666706879746559640318882161496688512471022049882938633309937496125124474292551739743789787622893025545192895139627452954855697346022141271391509930122206031011457469021552054358609573882634925392686101497692992956665422893694955702757575672936624830964192697915432329078630928958324251988176703065550536206754664451820218008330004596478115151160166440473264431971769925187628098626407616002497684561401587190397278488900491523693304836275024751733225774222470902035501025510490634272284424645696637636091384901380109363160062653807517058518258523210415804547074289322653927189973138635685539450157079190500240499804018175240930716901298517087595734563064203893334495827087574731807399919343647963178170369853382658738080417433517229242192609343517871868327707284278996964037256934414787353753570917016293927584104840585829424665503091969268765123627898322263767508829189907136059495576051270915092393309664714071273177372515786467964269758123352229150714962375003213063981505481410007389829477604857629487126113718430781540362648360465698598321473614827728560277021019114549266513486279630178917493375707345082859628102121228608306073104760094430677572461763821257085529819339508768227328187750713891219118460302427865632314953351409593502984254033933258595471391686227209383730112735373328299879192986700729648626174802931174215510413459601528889073466064671267890808109616021439885984823397025530303974192175363219210459648454981823381807124846127245335653588536628875287032195481861049907189059182762716448799373621123757538804822138126091508476692803368077799385489444337786978982527475808101932861334422466991462343419297579243548685563164700703356650104901179122624316862548008270094590228681480894220730484374757446353633100964660803712602159303080537185371003976204639378554431438319541826366257976845220658015780169264053639962675137666328883768724385349742024571341317716487954783320871617187162809103108920952894938276607295013973379354510078108220632936179931247145300065742759224186972033378620039619933768268262761920530779306846525735761986404656688486721862470366132137625685996358008512238886557710307792210251488715382498436398300320833597725923591673429553920461841914154651187177129776266111319976749619150931251927994710566367015511428076695496735807013830943918387064951883008129507497787047926251092314163516305810761378963707534699519619875317569087672878065492712647024955463108421202730737721649089814803552286459222545079375110319347214022819619710364723686351946605563385912900370286385908493303291995421794149652044006749736795587548663664065294388366944790482718965670197427358564017410946925883270872236358610873946351498077790947396836517488189848088636666648862146945175310891231494614750754201793199389121503120432272467592276649009000338146758984725334864730531952032106577478147198936958363106060592674547649961180783445223822003270532542147468456138486232436866271625232016895007589244299555576940455484614906827452458371408646139433817166364666372085648653229913668455085701471074685467222284919655984037304070965888695587657686008498980262417726456375360213043042472401594969131111394793085433670916554809229477585645440677076646508926243568418536976682015266097733371710586405971593806039480478684714844716114218148399482622005327794246537450524943326076923824708642919200344735534931355447140690853647744308183089731539994053064220762405209154927563524335815241461324781356480567160507553606359467676459019939594721701838958922295352231025425746435453899894846358472465183185303994572940526523771913809867816597276778108211857279214624531638717043056947494889084687477817172646665904551408305146958806842899826841389442254285903693136273551267801678296416665298248121278479637904897899592861753048376086274873275547364281587987851136422623171279834364460740561270840773572652640055723891234282202537669217363721805170129064239317405431842277128670333111171003930847355962785196142960063794323216862473494312980348033929707023303878151037106322058870787908511661068840800957108133364470535039307456717789567721701475702326382010210263636525111855866853780784957312771576961358935261170660986611964232898318695846293547123714336807461844306599287566983748388838566222242690221222895628276807531250530810373857836192125265831463610250832750464441383684753212883534741015480909961449281857901181758130385071817455482517268445225329098388259510445878590522602769264095698586654571397369919012991494647774444114201704064608472909636866799589579976680198234064789128752552825309491283927761799665556282007669395538659645704237411183794466904976150769677988504221897607787142662611266215906321261121526189973707594377965657381042224562736153127699802479808720948242704319959547273375669514662555953189096597760153712195543760325051896579808021450396511667396579648904955788660844992643620063482203060163476473926638471051327738259745469549763828868414896193676581452011706372384463931871138664366746100559783651371307603445496690152502786399297336286376321082470524543369029435921619146626498730183261251875356448237119036526899465166009684113008089829504890665410806161126093168090767103114534699669456740707861630482464032261966021500088596247410406366263082762247604014663945963754012839220315334616342669046166014651071651402296338560165570642290715283713403641041795485512856836169542506813592997488478165827857437957489875755118561896045205880001712552908194531688245842423111167756483841759067405463582818580368729384805997509687652660145709266055928566176450046358299121132737800917187587307042110760930120751789473473090603637569773941356959152301707638960082114782494445185264018677758076784943119738650132206441913449090632612894892381908636806139347643721665238408904636935326100584573368494001652636675026763529909941292343320756590588021721073419916186117710494166786919245269202959525550080031823791856945294297412022500739285961307376574582452361711151748616167369843813544665919242960284045256591690287525169467719752655015336210630749311646702472919145339621615939950721122781133666197494247608112052952483352074101249506232012436109132190894611974726630537152505939114170364747435068539453645501180420289200317313169162437049085586095843323969825104191179381070030507585856973624504642696951386953486152768847417140434517599190489162759731474679162955874805139828235409933584026280544151912140254356127150095674589058986703639078777063991655582114201967775305298637453497794945963984208137553855973140227581592556384812614364199314053386297074897778468492716693666490764925410852636700093022811028691445099120707683609075709880473261214393510243021089120616952119574552740376832667846016316650926013234036367372803182904659631348294146686002688515941129973509731634677280093171415645379906284040707492808350073091865319876469141809524550949762126478785645631107031674050951582234122290587630136988714515552443953335122062960142244021931390970672086393512672892002963609424038615098942186244586575957593722717499656387157204010595075771702366945262095242605628366895908597677108769405241744620204641717274448657115137880558061828025666220393180430084822878200510648465187442807020909096038170398091743156354514985218549711583875540018951715595618764026918885543393159560423289723543549768422879379161372463647249078478277474465319985058145413675336069217046040325511362221654171049297135215548407194981818707953644123176736886764234689190933979780899004640383519780851057647868024181335069025091456253229354832683178313751847900512408490973846573797359903582312558086289749171182558323855354730399703020762529061877343426660027499465589650707076956344273031826371866964417218081561509832968351476650772274154064775770461006240919404038699607170880554065149029288726667119553537315233071994017926069493791279308943321250531377907510144907836351405425822936515961535688369469648673647298637032433781707871263654934914082587687682350523172220320243813957860436277935564801840243526311326260133784988821587451526211856045780473951167446098044244966198176572909987272814869901813428980044589741709301754318670995103595642131498260830297322387834059662775645312662315047904371268111267006282451156659825468817604024892647555092516190920295645090785934183268914368163119857921680387280393994205544611702829347170508088351509754112091336152723854443977473019938974209082077733126241999833550120925410154365759772848048322447672877911831453168393181592865077610255468858102268021485380665224896655521417594895940402146879356505817684758735520996074150277120458160211066677990399353392842180153125238577616314486517466994174684973211986535679822807227886169466981186299925205971390913452917271553994097782650136467793669520641562935794943083446266842214079232772865956195040663247796472148636108185565313735277002307970188558308565537101404074384989550152939128838256548034058287407138966821139085534828115598818799678649398094838705909763957690980499373511765276268884084675177148106900038984144913264046285875732769161984642263766543689813467708735315884202742706092067221789587014897004211574606646514505539709890175271072692278224415894957382790048541375339751064496703174625271963891020630532463020320195160216989295643081654907941963297852918162674617782404354865239554158107182464704117614024913956126951810016406401627066595566858518699559620790972411657033514262844909319281116686674327347455225312163050277314128853705565987217247362618713455025551490357415137634153530045601842248876613626712643129288221106079538577615974122638617330960363189691858869534396338594107276326384650564942676163192945665887757293093687564286931747591553761387137913600324858222192212178797619968853949350729170131821281436810870725302257795247113163316147947217147831986576991977630013578156408217974254149429437724334909520864008137764349244359802631222036025986351589151479512050644296437112366419000563780382727482167109366110087507583785623934563249324992241797863772246763213457369356143841789433899457537564724401870724489768984750478983337049164504787592358004451108571025320281932479296661195197680678171614338908730787766837002128174513411945951775158840799689007085905252667601910176440254902957179330774925223153930912075011608493963260078312329495165323493251968618964432247171188703805423256051782910247757322252397602559240135674203620054035064497251595288499786501809681654000999148255206627454065889052320948888845330853717717708110435250230805229390329979265258306879875239893834564748216544585413113391218104284051649863248541629830247275708888183625701186657627926711269751950565018031365727101275489088593563918164263804970399069704046816176521727507828721277652996044989235069915872952820182708103539238893128126785115710919040573710845194288084682544099939527541789197227596282458843419243712077878204391119201155398203379249923884688196016712221937616258579705781171182858950773677311845177041204127862088722547305919196146212407468742671490757510342722183482545316116991650253229256732316062535311428287619937255885825614754781822480620702563591483956623509818585048841709181004021574831669731609398997794817472787665053808107981349269731855038272664983799516117716191807773082826394327063968452786281405047049034682301586894795282036690811960423530341033248274644729784954490941302976714113221751631911454456796224248294083323080199879348546602869961018509180428039588929738608920348692240415334796764118697682500876115760271667441635980065560328264679137050806960203490752178952071967824528252199993566588878425182386125706635686500683077603606149306582599475649360584023416731456786910502859536981470581072964701237175387057078478226201708408126921058401065766908845404509445343499278146667815014190562010810919667473435060054301521957482123071373347251235019831545741426698242181362619625255870926948303382876528890170451367562452984963516112011442299301588281141006629346098708123100803066960038691336117987317169061041238784260206845599503182642309843931951525369616185964104800951234344028657315523133227700381864142354885468374799505354345075810736945290724974963839048429117480699939502737710392093244703906830382918595273662793031558021273863775722999526832516369348200305484248266303677659122854929178131082944118448529177152525371252071292707181972129648250402536409008087954073935189362156511290990147651331947525889085990911600008250945188201284067282395791874550325789678650615835335988734346125970956624939743853838663773165396313302419936881030878925549342583459036744478458965471906242623793393377409953092722627950842718282794868553456483953688274950346165158478609460883826903489353804486381226208669912418141471919754357258424061622906140738175847923481683599594631209890418950366778329918306880320724950669872713957840554854417267626561062772691965945998317647806273203098541118101367562582896530159495273936846704380014338731890023455613673507319286691044599644670852731106572082111604405806945326005784193939342009496747824074956089338341053139435756020759068117513851601078814247329660714887580112243568401690424355005437679083260230978025829154276913696132854821916151905049411863961676647980099279924412219983304169706294693948506434921934699122105987182824411511433613303226813987414861649730780073775696643225797723262375133889800814432079049667026034206624174400054569293304202559899949257666452518935249020716621774493549173408006721483058308301092610216898142463220376853270008422713233104101992012121815395331994287395144044696061282916204964882753638488361729949983107495828353653518101921475364845350708610050390688148683579505174012861722311897472733980598388481426090833376153041011949070075711447782598311492915598515234959031011756124802475151956939300448678365359860652970079613327966651431384401085615627495287044600961563795777231025077779807753892565730914178001161733278883816951556885186206576053093956049437942476151410565553897348359709370060420578278137451925752630781709133046310573673583219093961460799812779545634228349424972934683064833155225460820693560607997831996079671873363697761414736831927660434984289733727148910759104484284541138716270310162392913606730417721527086439513226655574595643971110118348801356460232827353443088560810351451326186109163715646976534249880351107063076594739917927586437176022449891578703125604012497735770622151593705092875421684669416323264131877476144669936082776040817274946935585567342364655855221082080832723775667150055142016501678576908486456548484274041513776095326053585228982266939777072380176426641524520546188630608255642161269887055048214754284993523355457780214684179959662779461438506133627935469374612127530003070879700568966608422322851748219514915213003356375472667816404174134038236170964019841077720894986491311024865804830692383776866001650949689581190522331409750285244524262013916542002807699241403725964029143403484241923446690403508006377206471171501903994859486356399794772636366948627784799700393351052833967547510198173548864929356826431273600079355831981165619261974161179539152961109620480231451513626231459171836027347049493311556808914663409296085219274270168910056638599363439592290708150546921610548571775361997524339325224038964834080165888154328322432975448515493678078644986407576550874819100655718319678515763727675627200483580881776378871156095807049195306489561599464601640344083029203807012841864851515915049332306540355320668420844234579014275735041904180397688468732358730210221512141125745051401222259281232074524565631268052482314565834148248322625398399905202281209909132140038118409974425029667566496550815482579609510415971119804395676968153417267192205416376986876045486448617446313196910192367659540509980180184904675483185521019559365733667123394257539343658843172251425967619715988312953972664487559040703929185588886370724774720329010352635655383530921854443664541761884360315198161558520351702657120888329037105013713964470138752217614022138160702498588970601044736822241699855043673168082147277380141695991803036883893997275218407611686470039690236929485719713189664632963226189418606636188480797387198194363351948906485369539635536017565005561596097052427176279173281637042799135142167641626743860322830520126504259955384979322757964179801020739682730498001873147469634746046826986881338678447739879921741822902910912497652982152094839788391279583646508900477632311764962056528206627978148930311319931885551995143071395453890213811122194735665692741405354904860213283163267151152304014169399427674170483727385855532729025759971230068302057767223474807285593367452667888943708789431109695193697054908555113920589200136189307143624635414488833286094480011873269964605380348043261789258277252775226887832049337800295028458573243047608856767825428140757585067674988298791137281992909769757268629025563764357695474778443411624775108143685691281526658996547232081205745331589623702405169320957609843618626780439399353224565725794127762213031842538820962706773099519471990923426885477987555443647121778464881568485601128721057439226523106581257481751981653947175630908182347515420390496451579325803360279002598925030080745162328738386332284034332337861050618174770519537675279547835623467456104713117814163391100115386211627909475022809428946459513828581586872587302430106310393174328522551430832547034377957672261601728208387127817412314987365624764334027225935481578041333858103186380412675283034547777560957241099607903112103145748004497420938696718723865989709143199224479636785682749707350562467753701071999365165469807174882204854297190120325435220199664171958776053036476630335765234148628163951205373590592197525408935169908525501286470025551033627290284818071605288489062905809132856957283900237119570579576594493586599755115443674755696623300797871283866565081509524539627966582709493307793050490583556545230752479142596963796484329143810168918575302323755612129014385897537695424006891308953505582783394660583186730676153221057707090779201007332360157095876971789171136547764858722576510973301250459061974212935535703461643256273604501348597913569048219775853561310994176614682289380431370308096170776699197748758927323089730008639097316175728642553572174956227505364704309528946477045423924344963884633079166069816326146836731202480798736135993009693418049059603070196699151369921980403266679920108877423215396801849198429164868941178364962882106034117802777363480663372462829191518651148804180749542995157849490649145457967315240582370195361787661907572451042446784469253920183794092394473734292184246921473761765930292639224377460541638915788046319894984573757598865421034958743368672285319088630322544813405578608133655938441910085048334478515535767437648036426276306867427996240581396039201645356736487830110118950386702709549301328422029313715945205515921262935081052758619545758747585533326696554187116430229475513395820613604900857243217329592944129001367082145974923402748783974299559131941095559095683089324192612757788613431723933269926634046962041118384188504997151035662547079110747909284950854018976446240595776018679739659507628598089397282558343922109613010967331575676054502474548612813500090154529561170040716288901207525956902725392558059377431185968364725462584741345545552942383745746499485086792492624771998192371574162277218176320264435245896728627279920985025235034220759761585613966371345506960118385837437091525687064711875994131061501070278095465742313747125699052476334996946394109390333615100027393200332080839888874984545797011938409725804794873102489583250278103419715408899562227214840450973511890574319387814394217049717825482420759247795766606079052188121992805839604988535101757305396322489440274790461109584896429098048258832086848425649560268804985739175389284513689949345528733686868473515273962624973459353818031614097864695818587752647552267046399706191284737008899982699397924661068603366653378386584035887661393277954303447305906411347142526681449501713019680192519219066309786145442200638567054031001842474321884413202887336608025617074957640301227904002749414804424582700057991645760636296682752659304603927784847837982561595367597288155674520053212030106813656899773505034810938087108031670464474504779591006615303717001990603638531383549607086328540576004739653167617336431372351638707976331070908464231654147631153741665017335513772510275334122770038649953738879910141149027134496842919570401111842353900929356490841133632829498094233841045049767896596559521090274007493894369288479373650687237936425065035157578049246754744158036811145522428967734616781905820911714483043773617480158235651112696643979384423345863328325081311765739112489896422401752879002428311077849688866658788331423473534734333115758420947522073424866406872177828694842748356666054265852326449018686612155071520782884505448044845366902900305480444780064612265455097615186684144834308364967544368394035104490243391623715305101186434390676663042636892668306530326837269697003047750657872206585515883776101157961098356758280149770717582429163736038691592272008401041867277612441590542462921873598779139567792098596163369004362223887423813671225362041260533409757074876249516294367173840139965543809590200505164078027266811787938544823582532264717929985633308727215223904815768738628439360777964245135606884483665563395693197791446479399915577687746010999519426357214426612946967760787922893687955824385163417232614233868113764368121364817990797372657567170929440908174582522615465653764504177187936094640056968510808643241765958741016458716322028071607815685641204333806477997347460265552286679773340980498642222762867861718090337513249478819933568670579502465945954894581484222339219432180674010305724617848605028690032021155662046547862799230441497262936774631058605071880340335118263171204662468055108544891581045536907913003602053066337392129392788988421005059619334024723162070091461456210982961814163669410670294450914442839935546689177939275969459630337093574944407360601898511209224404693971295562151831688854290245104768400364651590821096352364516699289314006026301146826183773536033539173746454519347418062795963637811483221647316589679958518308787197623036576859472088414053422722429373879496278790170398015685144513158054603177125371871565014617031165138957045383447279577856855575409334652276147015291879501373558058522296272765313374923106612618646236441966357392811955459544759942993181598795576170625030840878468465492534838165603206308240123647400999616247542299795394746275836849926668110518565189744874958578653165145937567617679069614040856954894224790333507842203514453162785833184988853226295360646545377984491498753660006085778203414289393326749793248045147853757726820650997863946668499794980302694647625170882017493991832767357335171939823658040893802984246633865338048017232367731896532233897457250871175268521596283408685403482148003529074595711193357152930368116851406476683870099385224637238261927000121981873206773164927644002450422661477993897907813730253982312861832909113571053457916030602081945341633139085651859773971258330080629544921358391296201619631734799710636253949599159347924711506734604751492352543700804557991252329910634369652296520290256838858503245777888195420022024384832228607492113100185883259128327454318062875040176133868197801271792805626475155513718412269199524302207909199856564084557563490784727366027372358846405089298854584044067682796492509061466462399560192512426371331659674842394697046495140472405415030906587046396496954108344592992608519258593497840976005468575693729240147090947949894936029360363403656183995227459025689408881422043263843683782956288696867752861699082005743812380903880226387815793293684115966654383938032926750936451439701333891068097681308953786050633463716268147346653170644183324156575799865466157090129345293428479258432463335294373973015051665736165269950793270268292548588826695919918870621981724910438059796632513138787463337980547859740695281164200284621907391029482163664700789775496199147943575441667194854277646312006636447182651243679015064377811161259775963869966694130618914470404414852386240746022481943185915871706011248331159292512072422255735075452290764076292706948728879541428662925000218549203312782576029010822260894290980448520717266816567495720073662408423866451293495906195734669930759238641259279709435844261841029080252723160009047881644648950664913799253296347161925487255839195017101519199218196449540226722915897330530416636963442396741645372104161855214023801736422590318884750035102421100748496116648443235342711996737024200966679828490812398568420476412747147639248734901577252472347340562849873424970980438083685857312587386613955155662972677397122213114669578845341501759489219855103074974046575742691587775173352152784488027190859880027229287161210256509787307020768830848062324532295202284461041085683077557573292445166765868777770300765675237208532402413025132919393205741170901779418008372268761247921281556583705617361311291737957390497795237369173440326038805446135520526337149463851893664180967871627117651067614759154115544243125234094812408506761067468243327490861706171074210770522001964155204336672527755473460118945075590116701684236579010314413391346915638578230428901346034902160465577237253598150524772700296339890958237296507289035086330354805915354677112281118269109526486073066014014746976364711308055946406574360999661949742370611551868728477140922638790957374343787431813199733520594390671900177250515047043799985735833809214810924310491183988429360715780095908680650497883435317105661244405969091205843097497577722252134611303331301784694400611897436294499473018005345893767988887455322811685246756288266614092564859604057100081819284955088143376326386363734325810959391848294449393474176365434269060782498757760150278379295235222156479683203555957476134059691537326257248133488985704504979024101241454306742718974671136275402124015649153403332003245465000858609475033168063568977983516519934445219155038728155352605649539019517767865095433850678592075150490762980231416931838278070580707152981325414921968224338940079734860698705751003824435022989102016942626690139780619109639943113129391719596049365893592235146798952378500819372818577654763943926993600225936205094722148392358840423098067298098018213953343721716276914609043083000190470209879998477155184213174949379814444930886787086583355184638171881876607067647853257980202981071038577949075603040075970503162275537176090143645936995547053792848247462141482925489277055726657269085612390142055606315974381772044864427679275105404516092864978957357633414994616200414753723487418361027315134079152716436657749157381102247946175923410990101665002896553577934610448817350162474018965593436373842387372380370404845361339069906479578569884615602928418890886172994036820693437498274956810763624186173631974782577630616575992002819097954147483685907850594357878638044898757931713536309522024669797278426877124212342751327799484732590489573800115390265668187795372655039991678176588182592419700872647022450759524920131622839645539187011180222345704180395678905905726002498445560892889676143573777456966908914731062068743374697698406624377096373763280024576789945323522062593339826745058486448283227322385589038873099173865173806878071517755342123229923459625907739947498089670861528709097587599613856115396855170457936544368273767715146744582615623900340739406564083380179839428735260701270291688904698939549405902250175501043942245187434354470127810863259581199620005088323790539835621441003874046168191729057626186311512918710740480301562450431997084139612746667990911478128329221083021273521136610159446981258574044001526651352416044588723627390943893488217696684126315850475427472064622219611099651333748247238707163608622385622543405778942839602395204293720190510695942763092561188744168899749786821812496352826790853983860390203201785935209112945838961966742460645390963812515861171370495750496845296048798311682759387345786371041805019602549395399263539533361896870925453536569436435993528747014168471197564981583798890342229226338741940924940725325755634355195678056409970247760068846342281442062176435281026348042970359062925339507614586575332573255433253206931818849690862450243901249232800071220291648394065126860733411582680184859685958529309166977830211457227813426122625670363065921835881328570543425353253439957506174582051350997235096602588213713507195933874281085035940637846807256119934192219266664161441341223290745946025271368597705520659708360010575446556278579436303771942441275658978479152216967429696832527626510867745712453584327188740016811131852651560416952018824608294820836305782821642922299910466742354020853360460494459840494927826025057526692331240840907026061356971787344962257227126064781625354376281700010761910288733087649231334748714603839237555716078800245759757728602795942271301038341055718092098556140282920667952153970315030723626625524509753668740804136573902058963507056333582021292218200746641478547047468877797822184294953623740189590992961714427390883660592156026686904021978099875205537679245846820251191674571236522498934838313109607455153535590278094844603454404204730575790808280815050851671375327699210611073852273403848588200286623255529341542581679246310216615930151024555361619714175431325108911132239540154326071937232984463767143267654088906431240718705229238573434340431290128662611933723252870151574975768494774075243681812331442775601244518993968103083334452246563622155000655685739171134114165302068491431295381583286999203561254342320473519173759203792250672866134177189042457672538536880548659141421931873254995702773462689651323600450694798024802949366995688627157673203078839370671889346326748707560280765352958929116448934696323899400409673231734084511904100611894284087395818999070944959489794607069209002155682993734131507303690871722040132228074868473348849730934164560933403749087522822660856444302270911999885551067949876223323914601467206227306612164510078536830989340545397194814024025732388150381913557804936221759620683572877600562516988948141563285183058425903775145152850197634009313674529337116052191383745703544012880206205011285295733487139144621582210436460571359267474168061472829769298251918774454465083011928593984324178498908185662493894742268897693141929371884720509510010437886695844815464820768753414349653827642903726273606953489901708075258124564630932205941786375004703280494465996509260474282094235674752868067129752749609904872481990228076726214078002740402393425763015502191912988649842556590376300509493496547598116653626765084591803805907144887232643764653118952695185445939363767200597503493270329148086152291719311794042909654844075401519221578220628893761207501631030977974332763587445548391788757212969491627395023933799418321345924444479469858255814350044215708433079230078082986358313311975704294827594337435256854462533547439172501448421218049016876386013402629429812207234845608981608602179632295438824952777423131647814319367369748284124242838227008770236537061665521524109115556326380111831107208348908319881805582966254355518638898583411157881720508474973767676714284246900999398843977999830679422697465665168155169791279689784107978411675782125395619863325136898818428930313075985726463123896847107370023036803354016922304475869032555619621214112773264230462253688200931074905095118584534750790029118303509308304667764125856917799266109129384287918563717832993193819775215392199090899095008183523437158847891796816066820618214045633256578521942458262943008219722358890295320019159661323314679238032059844608015426580962549429622622675112652671677957974999862579473911080873818028785028698693006194398878829863570257645150811325906291158709997194862065858995273642354673475672580124205775873107920327232798135634098409597521224326036686395066673864418904654305397276592193091476851079933688736090711335793466194945625465467228246617846159096733258276085253589769033909359805586408166985116885136784442555088727443964940071974304363986515734087510931832824424365163534751715600589801343749465580821754070483853694170511638109323335811230308396490101096710539362799114968082870197481933454494970653021425470582020405630456426501574727767010204530102638166269804353258478853857268880593467955490282258564311827328936758000573969510763722172862705294100173374677811207574675399703602526653685696024524788958463714843831064954584468045950953137490229553651003821901916802812410719102544556508506974519184470314595306419693250763401535094469410437240589547174293362566816642687659623481574524744920487235694860726621486263318412908920344436001047081648693304321908028114323789005965373431147668276624791722251958369282044094759976097549420620935858366879796279235586104022270217554481494291173257142748320803652769073396137780006319090436872806211670799615094490168659226140839793106231264295310107038162688913840381875706119988893100112052139920241240960488438164004027180878194386001043364166399456809955953070383052970703782429764556207324671415102235331507385419077821175785433315297493214236274337464184823518455690795325166665046571206873630423251785528275164566120881878707776106409722872530109826142714507241727007635557305633193559263473667846956715225725137720002965919278368220129767796681939702232948629731754223224455308522250148052684736191031499994445343945643945618781680431029236343094791474186234545714695220134729561001420724812834611439597479779398574924128104631010322550246049998568677287633293144308163260241559777362104923386888692860251118929620495306041273038019853570165135050062823432263799342680554045498696889340611176066066452363524649973123550675266914331765405929219551464479261416865072856977871066437501675547254156350554466574891777117059528833465594316062917898227626434634761775648827810981569442284441417038305520636125603601291877299205783131846132795703086039486786614319176967387143523163071740899074388294499673051956480932314286859883780416855474355646640108274916411903407143972990637834343105673136347849821651609362292667533264297377852337260836759731429508088185666413597022743067736962569446301087918448282352787940358115780553300017948526257666612798188973651833104866787998611538670382845325029218708736253594724888938275285856692724829601930989097831286058637781764212909343107034475089635913732455441395522650648677445949543924476782070393187989747365301116164512979656517660751918473040551974464131412837119175551886117705448567171360506886733332836348564673928101544746121790363230799284061374812635726523927529420357512251785253508225982173096152729903847535133750829920569364060694353616337295645642865665919503656391421070554264232112023828775138008190652185887740223279222654344516169138341324601485982350700810640487959744372006583718578815696835609142584390474850993035179775057822991069856199388640907453157537968742553390077936302116829972722961171634633879843964732624383455119819184962281500521296103343337810729709353929935178225653009739476664377033048053273711994969517045395331560385312025289475502435162668112489715585231233289594267720129549077658559387617673035485618008816786322931924894848648260110545572104147637218050692352966044077308685409973711789326483214932042057679792156195088900344355768778308981591865041930081209591456377659156436121293143508054250118022643238495663006483177821319827200909706807456281948930054918242128203164062455605975159324335626205598199616611935101839343003352683172715178425712909133192297550470137658022581123090158385741232250537358566095471667640946579205853784490198426686770127055673035382690487599925171477691289699963198184229422314870421023632165000209365941480235322270821871092028925079583233657803768273103500180315794291683047844036262501157973005147114599821363256329504961217612253182906049305503295116138319091166385541101599766261186920907947832199342001580591424926281763666522941190232294418675244604576232408134988624133325756967815210218372902770427900001761085450134030130436582825375023686421768467064872410450526824356720344098634313951101249336364484388421884062707517978325460937674229113740228219852446718717516359886048153997584730710782065113804035119234731835295706334301616827222420946691104658805785660353898510187594233998551267706807722196942917481031860070199889447681205394627798338228907265487663348582199308760440935689747820100120662195951216357472196155940356671183276035705014256219975903614480497144574263989857747092915605548390027607307437170717049172068133226812920830552355274885102978794099726578698568071091950175071474585828685264392233776506280680804078393223544056153351086309384289616948684809886817898614763660822654162848171168014960645630816136138318149867596809995823957954654028039505265223589087913110736715886765287304684515641214285413967230148887387253119153717740912564383578103337209263464786987692654200379430417610620543106551722363911576390890042388479630572603755357758800377013813576167494424080770236942515369400756842929749458817453369218246769090506354150564006079180166427009176394529515389968141876875526007798850068489537533984967075210383993632243386560597791226460672860315174685506946989259888187852009846757693913149064490082887323824427681999642822888875034071291066351587393019278651820315198371530090931492025073016759274896693199546674881242690441215124121809177336996844390780220088870322037812549249137605697674493650775647867685732904999269831167578333029130615847490527305080970995232136589334418468533690097504872056524866612514989330215020278701819831769080070224209697739194397076148001634708718965660865570935258695264215232442630348068720032182287317881416370357946377998411326898557651615344087386854332645171712490030815635585495188466358321364286149420450010929458918644877077850701575947798987319290671196871459752235492467696096767101327294893843018411560354856878541649516401024618606817143670306921046286655780471204318937761713490957573426023535836784973257228112097658575144407003965273229446828253681775874656442808841984755800827949932693492111722114739922874883255357373122378245083406442727584006439093265390500936066466929763325143405581616854386286372846235971495134932269673915698269098517893621201730545668773472425428261194118769392646465898299356906768466397665563760567780295183213841380481417097013417403125130098129541017735642685631543563014598772963376649989422210333579625752758383861789826019258616392596345847254453912738685030786052620234177134451539447465014749403602974229869183932803782885001033498276967330038499779464220834582254557127120003697294685045780056901191120445221161822215841847082249870766427231261297819469703504801228098928055106735615406689660281723791159113107716917304265962885765801955641729036626373551422049966249027009445886055988336100875722606735005652007868315675288353011620926925831840166348675823146563669054690011870275679689869626743236779446062066960733583001720250640129146271855573069601183563631441161541126834087399886504112369949993604554572766159884660517562472368442319201729937589813023709833256998599982075413929702923006074601203963907476807108962923732364667840676326565626388352319353117568546610568312578771017030753886346296412682929651749161450177862741278515040059522516633737471130097958485790508663227035414518409908332392998959420453532422788770770422333622502176664394963659004635140861987055917049809475162220633726786949229134729277781145093504658930201160228007741702064837015905574475188860831742580529428412048499222903535264088148514542862823796815027231436345562852874826816066115833866614267365607675093157137071972943692938355174607419038483341827767409038882264792603100143497653236931659299752258349915623206660885194349599211792940490077646699903635953437620457122346695925570486134662204361019786333998493088633929056754516682364046576747137978554471132636501715852677196037630121161060683590760028130407252553921503472418674527595906887970601701168102793643805823818815194779962958584102493592599261627759285754308090947113726906360691940536190084628708211463538981063632582506269025641979309275026068211015726360818989156954111228294798890564669812360019200662395651500755557848532011586536473991517735703658289306194053235722128181495042669730108142421781479792092357024544015767666852368827776229712901578374369217426612677395448106628118730056772682708909608960469060941805972693385605480171996800097793052388764336386649067983389850227211823439400028217491953191315594201289176550013715311577141547028611968186386510009105736508866468999259519735922309271493737875018519940867154725877568088793165525950399130550484849173086155997091368913238888645543770767133700458429946965495608564452372950498990390584175616331971109353088645798155886382678978386804938858246658402660920140291946558447342415182956142566037480506159223224849396735415049837540778340019738707404392442329997124295319271214616806850963133645493967898850191231730782230856686169946346698093458181314200980743088029217555430809815577612526159360270096119572831182814074897891451853799402482298126979399178998826003150069913127401201550061118984191757955475359056413993014353045954605633477117507016922904802647704902933704233208268995453737731758098274307062639312944261397785261122832419071782787332149515939847351093804126628382611225078447895009428574746831320978160826719191222079706594232101258557693333691172396584716878800777171808899185294239134062578049304568598543121477153363848331221395576819532106389007299857358901304278848371688610548310185723461791481661031400267395772157650543088588637095856346450875396527538709982003926250507945022795833146513292451170003668156461806608551816836714989095787189285148837058125773020673711764824094375295359551229367582473053298403215100425889403491733119964178409916301475671251688476497372534128280876241329488568430891317818581443244092462128099795933692480726108725696602025345437449438244338037968041799031949434918488385894727231653186704368012339245363116842276630450968645495129749949443055909343361592214891249778615135198477453047401806380683210888669715180336835931998933793221380475082989596753279033463777398819216096588814840960723913359513159034773669708023799324167196650222358059420144470127428833006211591259109194727846806227703316221505477930651073300823547045152203286529383152006793045949426117285169617824125914248283805977859959481100761001464026865159762084585961433727919394945640485161674622755288504451496037328191782710430729265011434497279857644461296021345516377867697130209407694563224856173947876423368440119647034011872264364478801190897306483454603830447269806331717376590581459684193791728083657705433397937456059414023892290133286961807810709793255272027589631470856906904045546733015125933589072273704840970998948098242918407193194141994979403423321992102499569626021049589068099622278851131982209383169998329176207094944336033620171571105757622960630990216818346514740782634836389155067526805666991076655703059987841514155149136189273597091976808570348286274353988252845389758899909727970316111406370195691746066149737116998081692108745025273051721854757776969255720243004641348230527481445678674182326126299201725840145122582366624722647745853451675583396278543863417197267953130061118526792139710730598142397422754889461264781069671388810682770734722794381470304985400341123979656939080497783947924184227775813298589834270912803316881180334385134679267452105001861271930469668044748983946249950599339518680047030784350065129573396658270065434298169992325093290486531773006505987899354185392574347888476210458792298975059135503725252361654342165681165414758915299905704064971790731553542017219399499521358654108902983781859131153499391079933958101672234588280806480768374559590809375658778630925691587321478171149813916974495524351956412299666834456564008887707482035543122979588819141364217766402022311674290465241573425513357693435733201999891803853112750536556499873102986314678048397295297535066320216717283170092516738248809519571767363534077110713250915715931536211106068512886933068191249241983904034351991650667631959057066508612479485410484328743324401751230028745841553515841429778222262044258044272231584277710994844107211382564149057989504439176256575824841830146276806889236530641165969422830231640499986054068208745502319694524576242609186157769985610220755459172478457610438458531087468095250089524014099135469536953380000468696997255614425943528737962813227482404311866662264007032683670429972277346627261150340850960765393265166762961850232975871581788193510360270637553333746070286362661912213342158556803742044564838524145051930552719239043273469525690873956559248254234965205353594833322873122469770268743334807663966324763383740154833525111939580121377844487019404773299316414474910568696543415870974535427167477791235155421717618243229907638322551572918947945464811584127149678739458049516286445010215878221010025570752933294119712224720369421178022735440672344725375136556570021966149283007379602857337727466142643748639214410590297998448612378530227796805321254396007792073287120565412654774965558396306670653586439331640751292219156139608200681436622804528598483170834486183494375752645740303932692778896684053537253467070280296879639317720550276571102743617388972651194931461844712177358080876374915686988931157874499877735797066988587645044449509588382406952570530440009115324464406437143545536168541923736409704813623254787209238201496118293436646009869802468893443143479234147209061087667129617407918696833882617146637561578249817545340095592507390233247619355559110597049368676494477794552802281279893999523997132000915838152493498145293823099688700253304935144781388353250271243179387127142029144304508559553470543515028928161032202332378188424358502180987904537270895567044882476873422874317039359552926155752658619000630262799042864751609745720483009977589342225990763867607053728795073936963781608728232919465759957019121143804015228910667119529100292269058845131364651441346528281954436778901933237353437530126890804198612685889769570584449621015447920729519754325771852419777306999181199775041408435161065635321497644829678317428020282681473104535159354835046260825759108492468981986766536149018752314299969023081919037518009075083259807740114625292661716216309109068107524496648572021534287546143361953040104044847961742659192015908211983776724728002246183078480154392278509413018449887452700595800253706150991278020006788616784398840768783244007174062577634220768455288568751183659886436588187469237847950728645709803426031526826280935431073666933756601864479401425273769599597588175521875291160916595511281092821774246964538077248801106776498279744104118410671049357479304035986606089113399776038852051654125569933136235046485318118292071010442103043250443846686120295379423935368329715499067908104983112941672807491265241618436584559515371194948215633353835992336754533645808277114693770966023205123941432011287130656483292291337718558425527779700452929607524946882689035002481187326931880553395272260665004862143247162273212107164383148648160262675608281464691958478539372967225020962545217216103545044976223531728034774102466287562223254047681467590305992644014615192029489015447113221039815617637400904912365727411259512954278077064744064333443003163994403585263728215125239187374133181449504874487369326618257059032128113494237384929201475164373840336960228714918563253519856986440474200905115298363414202546901192024202201684190900335658287598692480713848102687082654863925018909819259128747267200210460090969943070016770498019853603299203361775249613836995302123371485719814013512556276501594215240666811108396971696390090056978194003923996725487013812004055295851412674520719109262193319167415021585525007687770560325146403533633978191720796457463953236026452552744349713089234053541297401735907022846336092496640843453769227282614652098509700144856393587507843425864675334775960350263652509204354522240397232511478698077352783995760404203856982722094018334804152075170704530695089683744214444965711438389024527382476723435466317178990312795265892095480618525671582201547124583955382845622979717805876024675692630781249996401565882228965994139237425180165344820354568307075432268031266546762910297119702657019537456723790279543813442206806041129936593506409395140483729455128971333483364066538268474090975930995442520919585821147861881307946590121529848239373222552003859741696552571410643856815914458241537603203101477867372425360100831143890420001267295644318759146875399281221113390096445071073708335127180296236006481384209264176620380665954622681092544498895533388553335964314673139780451774496920692655755691025065541720905450849290285157809741588238664511905982867776349867539485294951037162307003767019910370990264350291285633885010716516616521102089352685789646267629979331629385929777706847787496864056454104185922679095038597260280376957158955772815427667285899660139246169435023257610342210233407345364391345270317289718803402880827764524565344405173555841525720195545549366951044412992608462775816490562427126740039548327700058226075083592536617752798005161632051478914282226023335995716480992091289811390890980489814685534725163665107554303757712906223082198438593863334025891462243165907032256780571421181426093246835972395906139160481298896217714128644108151055634190566411142257486696369624966819578015454623236683107552663786331828372554412421437099755320061421552636242603725547303169445276803419042076420160770515874270426901175091258119201238374301798869052944116790189525297106581794553679289030896232073895873446317553334702626859008238632068761671291262684866579200375756533332274345635704147983573703718198405751720413522625796536838623965082919340714517780237231451246777021253199399816218439213695740081957812976860537215984674852353181971409021828324067375315733489733746541047395392635713203526829850389170467542881121787441893204474006283205085509476155412331470459566746147576190193115522723083525800380367649514954287058638460223579483386408049263809580885756071112036312608130690945059072405622428515628775871876936294502896855516745655421868625752501075671625078991035728875675450212943294593449950944099912424364082911533958357283745640032447830928769258552959853170309110249865483561571480949128996113389678327056395954247197137435653528997955225265216691663176922750067450890202771583137894330883125490036300569635056753634400801414909280292847786080418474351384309449129377726922897423331213561055268071898943446901795869049532527165188182329988544659838863257532815359459567898946773879430459252911903192054839871051086289764253407203503076656809741774958670196243280581119888118053162402196226660316190830093776376715285330278265970203247762575195112075109491426662357619206444132684849373221626445711820990680981186197262292945554572298704573752423963583085632126803755367604483569660367584115974639138249363990149999543417808815994325474144262662081476338761944243155668149741206681467386741267635937572644571760040490781105749357462679801484201163367431383604047475293777023497934963662627524343125348163195618262195964626908359373560782614989897152315143954435745628462529274718078930493991264686869070212682891920985098532713499666273720024057689680156919752479728073139630351720289833973929009184726088392027932265779664839933310612507518274346080047667435051662351219389405495985547987295386604795292712483276090963399225306929505674185945954928854732459678589268731729365779569111045538418428531407051717488270844265922771519558077730651769487984407562360703188747333106629507245857144895165122119797676763788474322632443760731509930096198672496766277936163268488003441710880881461089833781947334519548183281902359925627283053493379500083201479425450126163726402085583121818369957287846066229536425402621208897905170200662405659680864985510982377935103215242133873848869220730121068071654156990687347136275429494833666388114089859488701544543357587733160282718465984246805500471937448810442222708453695165014158709417621234206073333008791180960860141410459487199596176817727080478067231587471638612948323066157342936593654051542209804293127628735999745848915240586195581939919574617570901344101882382044566782899561045091641598217016509432698898401852171549260215008248819821424255139675265052994364472892614484626825157200240447685228036683566507320398468447050222669378020613687182481001154744899579892719156755776539936709562849349534860374160150528279628735921817506673562246199848645689915818716331944056115164945545835350850335555477160443126207574483944495030508730195184272585215282509632472068322977533555156845139536867012648076601157556611651918938703448643503733757351503234928515399347850261650672857405209160592957077992615652312293693406318282283105735374731628664272804608830042514817240989993542452412938206316717137961848177878970361737631032076231548126275271811812815623931807840378861903017475767933989990755239595178423900038231456030659757186885674775914659325716233419055314815141517124647341750827356206540659282650459838126653088885335896681782732627347744221784661082506450407380713027069420010866593045890117473692542393772974076694327336820045214686260840489509818359285897842696402452589723993065817096047129788646781306264649130965643400672099968762637155208872228090010512431256138874916274540644364611224733362056660808484765584758731557169940737634457814786493119080678246022454249979159499972466036448425747648972772392331208537245692443280566213914016255689192686184938082878237644793847758921682907597941160197376832249282565341295626177499412265611761038586226534777721201554213489434317658316883214551412965643321796136544647103934810692312911662790276575140947667911404239646127657326613383090703950261156204573542966485910163259758854093149198563994917377044773336323422160168815432129709936405651680741044668856494569248536778598773525563242780840162040165272463695241537834870846994680115296746868088007704412906917764647662861960371220107649209269630642344164732003888116826857745225355823970422531541731646868995207973612504111890984540072712876449256471386484218482882891962810681934304431499034497029593674192408486992019947689660027626629761844388238937127589147436032061026825402918951827874831481373554964518347423855655051239894040671256644105246384354997422088002936091097487089855597242793933256807473005137828820425193932931626160345096882628047905355225388558221840999318809663063002473211038422968173249326448216688506540015576200485350255080616928463538222743154888208966910493431240003734092138990078241398599368830279941467704290027853460740904114467710885818682712808932234013222992592480560214879843365243523835654148866719891211535536491693063894793778023772994378999948813152176600952333299751971464818313576855432159167862306415540981579008096437756519377087904732254570681847414687098181089547970814606361335684513465793876215931261310441605499674618361605685567812790961121241064548556673848630268252494463316805331962774916285204416120742039230857266943715530285959849031916692825658956164110667491707991108278166177655685255892800154490082583336325138505316229257595849507851097839439066000718109630917379114884140888011441530121225437468730230128664116231184784176699346958127519736772834075000792431047952076749125428555632326879775798363882155886909668890194849511350638818873263958375418835203821412799491332774787053510372372936270165793059861196075093599764633400735816613945804244039936509771000496156532031636551825800765918911468373005883520909757070871085932541459705318091720358299213515730115605744899105892270433907823724190099278002990582849436396397059276491465922872808233814676408962136829545175613896830685477165909278953164680566024215877178566237845860176482725786589127814768669114217383941551536374552057562370164062413260278576803722483852391004052725093017126210070050130363225191961177738879901861630032030708025468070667755024494575312300814611240708413770319779005972651128929466743370077109808393690791202342286802687609799713936743685987526771887262883819378552850584068073591102952965801883026475064118331414677039854846929946680697730205389888739886359149132294356047795048172276049841460976384043137752263206688728291298638311159307967435796950628469412869092833366815135937696773406036548085687145021626599534419045096021034039446166031764851949572703902783853841926187018547229177232748899366257456629315652287373165989500390092209787539380230233645559538025245291881080138067463868640273083054142493204526252820295300033780436923434431172550247124974690831433194115579454550078165267244913026700107049344684915197619936000730874948231027452141630666633244411073177038707005630303736626536596363345352664278361692189785294291898198161014391320812852038504010264875170778476212882825021598604092834787709347479050977876569650376748147295924812867405365753587370512450125239657033746451627355460453666711195679341880558218569673950051924057853674542017213027899963867300928715249652933790270475525844567596340288160547236944062805713631845719863087517829444262516486797845710148612849092904527023286573705004611863791425813588491429932354479954928174753234721724158025655042444841629663058573385344015719170628180889836157585094888486712919743813827565553286395880077258342830988041339794428621421460530457266230931961925973955616456039037984155305458570716153316063428082836850455129495665772394643927564302132950278061142185676659532871591933210750593420578520304765795095099354923911288644974872858153688787362895915587975711049015729912778342260195787132275013720782400470806418454161458435066019096641835160469694930923338990544152254182662549841934977600555402487658639034185949984971017941784818101298003719041136720310499154548408424065966186205607852619196320930491563406968308852481070076361379223066638422436541807656096576422894084075219104903646253261318803681891315008875091850530680610018061309205457254299949408288431855192836073003316951027970027901915964202462641857804492280855804606703500564355427780154149414565249897156779752682121228210760851767732656734782516734288398751106275190652897347603439639708495922166838127776863595773039463774476373678420061038152276588752919146608637702247888741286637566499536649836572851320460138069435127302131242671504012246696692863396709717454147268234492661230189598950636663177209799458960970320479339401404863795792367261249150250595840492370642143355393426473073097406933618155921950850243481798593646916395015520682861344745801443935112526194450131407110362958787757122159195099121461604650762643392746848844183609780447315537929981355952347464252399197709605797462102785910979299841728320010914642062883465608845587827436916836873258315277559366726140080041987655450241172887894916047455391400559864365963049462909299330852496366749246487608458241008955423874229820856723829691865516560641637366756140604286438107827810347454650181716460036427592480693210068723371395180933398622581677746340096334712726767416670865030195980587193703258604382349373979621241112864289385896338528224643271600601836998465730392439028325750878649640431820997445543684932692316931762242916713071480494660863960019831192191608667493276476108028881996539885932976121228691596704374487253317692239987260748514718003553344485439157214503201104224346287242212538689921595272398286493462342134032541453567649090508658923145743496458968245776070593555693257373147856145632886812007564608230072175861147970563481365234408886935697370154127073431327720849275484108987794957317976675629945269065899619597498631674622487113214030407422739202154665087641445824222392223231606378643454920647083429735595358045383834173928216914399706455520222719412492611730749433925785854647650655663335312737126895317009892646254187819327902132815966852252232944518172317272926935251532227557024103540247983155060920186073058182592624593993623000447019800998979262421326661859134280870858695661395171214142427276413677803071732599162273556550784025489279372924869985665104367413866182807320452175361541586478465036573175486868174700182102078994324175932210024648199642556376874564772944693612309224101403470903492334927135934644585019292068224373773117225390734765897864883452015132688213344373965612597818724090473249308537553850841790835243218839363066982179064459090320140783997798588529670226989315498927534213421739895755904426499149525946081729351920721312625740446019531895228025133875272889271241568246778493034255901600123670007726059982449564182816864959226448969611450159044405377308666985076277821862640839781922514360409857204876183347583930266038649083908978056771666697599248373528409274993022297869515669434393951237860359772194808259900789753000393418876768194650032079535162175532508979241469677522509234466052111899754996653741097125701421402087362350258592350052452098011153307834524352538159879269183353237722061697171100660920521980958970841880732001990564540603464739817936030653447060877204809096523634570659748389245987200869182546538751644985332685523080747640972353134713440334305083241391825452268598509816220727926037133096856373932591933284042676219800950254108567260695483434578135733377241651850023108470932190874115506129662026449017129324569049215407995082743470787104973819352703105380452936052030844609891335902642944732236341198950286826038237399996689014516876183243316607909829773045139575816944695264270444833844105958364244172072500682100259747648602186195846753687133353990206524546767760568250506735356393581940377945096098724176657449985243528059928971426986196047391705584851522219099763454819612768917083887669943467690776609002303547477424517895221831654051376943016293148442795969229179109395696647555336439284989936008635526397037627340993592663734606843286993809299864259314059238807642368991888200863664241276688016033400523750030530562567148768423507512288603611452075712691831805812097305538692934767415754871397984154229995343046537058473568324866364663138461124309736200758230866156196519992663785694125361953998598728672439563595523087566940578300354030767057745927288183558536332205242045268434206482576020424526822854662959928966891145959503244753757341852028530005818619608983007789934447630833235569780344191636678632471497891378252468088298331891030094110157259547433392680492270573855454761258930698786194069087441444801008719904018034642895690447082810391000811875518462780004835231066638849708004174252271727850613135679632651700250250826060946426164564561446119349309172162499629222530585770028172170273389933557800924542267824292189853640009945860851935729526186602244631148255396484306213410357861479091424913394564316155058901507035996508297777206160972036284652863790910273764910717718908299983500539438645740050410256626534233048965542476436281538187531252742902090627492731313194584598160953535413451849148488805339286011289395413542431524396389938411802916376168693715875382739275055635471763341012187316077471868087274907953873197273734606279028341993028749810531147539928614105584979173427891619026781785991323234013879682729237113882754187330553351192845864919778538707521413364259477360057159239460995713556975681237200585507615392300187181034395549684904868463339833694602674651881028860362875366901758130596942075846667441208084135485046809476008321097455276466241820715970470765720872357060040288335166058316176753401821700901966577954748128534947951831507604117943001595730578737131355857555604152972404237558463037532014483586926287367268719463612163995338567611189017494850619852423100038158659117846596652417031306797841927943599031466022685477537259214617154814068082027912097853291474440080025835331481027395819349856616864082157685162842952923027830215803118703009094224275175656026944905049723617184113747950725253925641441548448345319284104728304416473202374652021520483781490372116211898211050437655371448539079937391208368628578712060645945748640317191589268332858175096702974800252206635337531302792258474837017499551084303979523879404806555600666540732764825335075085934454764129007701217372259418648878237717597905444735586647157093896354560192265135627909853904603014853218409070530999100286200300431953837020432441777044113490324222922671126187332296104847841950821661139292119189719395373924959139277294234885237989030802157771084057779715161833235036633331012894068786140822034848530039235383328846185898738543821900959597810373566011231206662924015213821738637746357770556411346428325854038324556216455606822584736808014136402889565792608648807138938297491187638082268520923681516724853334056470723157505306480808603681396668112727786610683670379991896118713012201801204136436595967889489509994653794177284002034218821987068154801521218220939371203189828567336445690522820978339935737530004204355010360901840008634614282517932455464864186941389539255537749838771509140844351931960233935414889097416752947166717476019588001886291489193121638882441033227801794669301913357015368626494896547243047976166850474923209839796226611500386025685538510335019848181198861709863891040918423319815824003034496824484409984464620435069114787950650969134934269070633576142437644785074509874116971959355761038034366278566001431143538864509877232164128751019757990972615019280877416465493850225366683452407685148369787904075550579939747808920200380041107228603112924342689274503722648511807354929791597727973618061576213685826506774763240296711413030458610498843634712420214433636690664980018950212917835882046023291634611132307555386617022220767130400336989871351644574592701327298407992454724906921605381530445028912897060783330267735686638261225180872100411813637901709865545169637235733315917690222148941930984817421124335719995252813167071526658130378099452142579861262387351811746172177256254767572567843212433748741952924645283935608755207576269532499829836453758561835408213519199668415487131370756814807252907918838353667522996514880211811329193068659087486102259168731398355026653734385421132577223973417992908378891925251842234257236086207245078437748748463702523830794728785682920080234118215009186055727005523650852743108548625096330292734474066800006521283598908839981442982020479425894452021108288010689074620629472608631483719079035992691297325905718038928850518959237322466994457696296372343041763225489935156834890370449340238452660496185163110398061047718956963713612023055161621819425424003595401873278609744451812708221190515034477313801889503027370534308522095394808494761024173405064869732813563649617157834186175712135775197389543298533622391298590376814233225573381397344438391336067769012355137934239232514703053024365670777528509635915462895103660035648930165721395861676431249513213601310826476787749954936470200052494671934342991440201406119146663603436059947271205779503454693080972618334499333638627206122936939100685601268311544900407576077843872930449797399337965804262294091373109657113154214345150067279989080790912599573813606965938952284113819225763252643380775733824596614272204278877840207029812432099214746665574344174537392888006687962950504372601832282979479162681058411132461614057704486543048713191458772493881404307208136181520801197709619219916811490023194012604381013689149148253638588252818480904185267845690499731294663567834592810838831661667331047259124688212425018934312372801357669255461539335500455656809099999314544079258122914041459132528090157806351320511627671978641178786007682761415100592150144026734809375512945381638246032194445532368522571792124976065790164144263748380896567662651092863454398206383875900327461667509645130810374441865322496073278196872559638218381614966499606167955799330467780880133186657814124243825217933014675512310954355336393021558408832123346131924368668843658421115738380664885232794440532566614610497677727607046750739136097899445164993577099141172262807541170595800231047216272600630278098764439049277025947472678172074187001505339118899457331493881548753880544087329035403264273508021538732711190498332198156084562589687680001735273812690118145948933985321519925730662929767926563616408495204729346679889405183089788607254423818910792606321127337681238595785443207709806086971304400596395702636906664534389082688897671094560189286713454461126217802046348085484144042395726737666717149137700963620742464418531873135348733896667000126368649258136850556035575645412648524453137603452656353161182760974033542638425844418448804239109973583925743496209203844743454074891600523741559052580839453915067632160360744856882460954081421554060586543524370725857471745755030331917449489614854635378216317786954029974533606874131883540825846267697401025986252654219218609214070171426219219829366906334158182097327456219813645700561453352413614137305835510512730313919812283156067062138205161360027657603775574706331275194386141563010219188967993508178394326676221126071207616436095238473743271963641159531320001627214902915759069662107172593497667167807576503909615683545278136769623346420759980937102794248439696201034501630160786168879500154227655441557981019146508841728476954730567020759046187380850156795198864509388841327339618213324227507743746157119551111708759570347383178835620580971347481138984049303279667992596583281812989008190424848963630804696084422751734816496390027770094140947179958809358040256813143488651985681356583722487847431647454401874399098696640110910265305976875353366440950045437549348129507880141855091974953839273668916588768299639919985621056901526037764693578206918440701508405492274202114330873373337729401985825384154193031391055027397229688657430690073234695172560118713664659819205674526580362140243983080229195000079123728303828537967799597471047966583530517688526483620937396424705080254925274666606634238754167113628281851355205508564115887154798254709515367166373659909102305401835746212979665063396937358907000676633241360634779537797918653462433398506984642402931614833152406694542475068476507989569714161982961131663807448159668302452562551167734290704579187226485436044752910285453936287113864954705917950804007480731922826957509378374035427019790580369904822710580120838247256750156677476295999166102076362816533724166978169601912594523603846258586833248517160700023964969281268456751223188063439030500557954663117341010165830954880784562784534961983178578273194552728083412662620771593011245916017238089924676820738060401834880723771458076416313358881292311571779193995471494794748043876903779033890848973605947652757488576800829089216503470847805362183404515825441359298537104322789389133377709020995658006470454901942135726002864623976397502443027503201632340633839905621552008905073227041598399258326957195936799068536280778011137467610056113204521390817509814675844451642358230985667546376509888266573926131762871329459826637763022657682666676397743519315359777628940834148524101791818556376730597339228830424140438118207237841196780429972284108145614364011945280426750019419325585945557454716516761057899981496708677255821163625316790918395338091840437384238468479620319175061427917460528698847371417392798224254609861958809991132164161090484705502894714996312993902833190220991323251687833414373002044936347254093313959886576625772964281032360222360272419949136238783788130204555551261398818056647460356054214767931919585364219718609616563988229003616736777774727865228032181706274747983458318489637574073573819140636077141117498440592070055425495071971951885632182776012535915394100958395499004680247663466961181785174387393888535288842904957656538133187311993601209880921862223826039236154691109680135898710049180629697778968461192478604480330071717557940698949037321318983190765412365844579266340866061308462422499161554856159550641335116910763696331968199198093650121235154282244639982210427345237025798890616406430016086230657675742048254730927796840911305541124848692215488727166273779801994150593071466859838162492402877498945804887884085732451342968307642261917229482570424162639311794611601366360382335833651974730149940652873820792424339185242031536424361665124723600544139583462692934234819354404488984696073171813296151620887457832286382404150684438592362507002557458015674161953847016556301086357871393390779618763284170908196435475666813741019373504380980092880026017924984331189982830631701285107860284809161448099809613900740099230554375414140431105281590689915120152454381223813776820893168900939651036022564587584107777808000953082173460211108102497551491310748411974035901876862672031649988766529736091539460649491073121316391579971613153238926253040225696284901866999307866810128019283316773235148676849181946197809573661800968902889590179870068950009698281262809555057355586368830641720876232111889255574801340843488948024144140553268472733630990085201302216267915794401063426845004313880626691965313886014202974770494860715603132732996630473843870598484286228110509214724273887031717887068650586658596807036095617161478485294990623115953880697524759798990539208252666839801954559916603876457592932703160305527517024645481420733287830443731829055354015633988092955087537470924789651236329973376697955686341136191544963331004121613720756979023683870065873561760242236854115564381060855354763143672683230185753255454838900085834957253685678436890289629003297752529044247275642986609725126336489360113016779011577043095799020686954828503473398209389433185385161373737595408520170441513695355433925961368764168003850099468552822354279085562427112257989152325119744725555089562992769339749315688757246432007044623596005397431641373362701991590341794846817213428102654109897772342020935468852538580857093885521515277509493546483140077542404227157688583489562684536757937577756169913133633385190159246099470268465446914457608766909949703443423313685317185832357183085679858443167175646417718213050587300621326261013468235319353337162792540568959742316106524095939283370249026261759295158595847728133158553443383438551624793835646975926307028255420758430120366324696097254684207024068040081176886326311695768934835843275326150523806091185548606491972002494491812047226344474291024159997918046169031448053609206687946539731789222191702744366070227986766112695062888544860200743980262214056799451711565772395844596621531627373439242864103827274231488092705612675440576796445208685470658044966918280029737507578957413995094316733545347318096681715262365172553638331744447407545174037656090094867413255338263565357080380666961242368657871756865753336181295486752743973952374993199481804347799414668646957748648334591143101856926923238845463131350280854989262734289456709072799162160477473040259640180971765018417740512766746490680221969961000272740939401816148616381408141855122562090776360417868318530939122841073720639276072571177931484866590308637997472215224349890257620189890505695022231059164042422871413275365161334750255880534972694134423395306363686508037168860258269736517746906304788551445746877128038292266919237844994605836268219622933467599504362961113037822333389493949216078920783252353797377578263494985756520365540894036471135478388962235761625428496311220611897977895885414685381907784624006433731861450288458514552120940540137901436848513343402220373416302273618008289543900743307518285198722663576523792174869318675205794161384328836888448987609008157851003334273845924871555611046606465381585884146978399639518537519243683419451883948390143255094819101937692050553366393444564101463690931606774355930972206823213797469345468106965487365224525452409023402484647730526297680880189549100267210729929312460483515362061668550767737243208884028613871964675203344719199440884755378671777801168948464760723029221799938552188407508675670422114170270262841345587564262816568353957310846794706854572526549746341727331069184432419139173411375160935652414947012701221096907561160741142576424196134190078415867755531053368057482229492277135578408232125751229518120120550264806767628880433316529214874247432630262259915040505756504634500679285885089214542144037513151426882791186176309582804354997538683186032613850351281351370759387889881069618625546377867821588452165665116427117626053741691194513595732663641674881010783036584687912787477226486615807058620107066102977175812381969800664038579203522677352713623782897338143203040107126139011370303765656399837211820550729471661964459107575398778102323717185820762959989134727752368898605770228923431832770404745164860512237018164036846335152135435648614463966956335398539475519550156390675757273802732872230749143295583991355100262395549883990863131754243147092224866986961747260027601493418012153824963706876201818140673611532763043019638864765351056666220824198974649090035680653959832972302214047884978232965129813301193353902955651504098485948836388658459636878883542915789527943189571597961952187428668833617888250349175120437243769291981587342033412530036195237314032552301379801742809889609472467330395342034520065615516262141847369840207366205160890651607553614099654013305344388900641561757897803354835273665317907483543415326606430697241797466426021820025826630249996652122454482062552507565000676985525082985003199401669715188446827847794459316720027351591034466562480995810210594795863406082067705083858435948023345258921482625944585744718908989155877992943072900585687798479338721139073520046986674690069480452967475582973268579317263907628790788907657451137307960209735370154455851083395756976692945931046901697323829976962830060747192114863089727317210716261530544517352579365583029780159322779662342716582217404409699166060208137588620695869566885891211074046681223442746721588407802000481809186852393262237974529083183303875690175441530160073167672730502419597751282689598688044344865114078288378179187684751749200289017443745328913895611934710673730952742745385969874134274960299574560459700238982316161023284730136801145703756591239572271067685533612413907954636148526071143100686384674630956111376050700297621511296428389881082164841221166068330752174575024296930761366371082874263963482005773117464165555440290069120580602654555918148678891175959213384695354998706305655256715017091340073994990539756846648099611994483775314104012772596626919810294912581208606883017024967798305583928613273218500967787981577389038138078454342188118690683533038404507219336903814937385544726558012714236321580351997331952883009995374183428900061248824257003920550426182536921228614490134856091160546656084060617768846021250203082952962182558863361061479588586308632133498731510187774600323917965862117466502075376531123676548644907519796056953815951613748755660328333759984093592855543078726795411193505617711950113604707671078775715996343112101986651796124962682504927252866135143176877463270175499916847237371161434353421407701771453823638299601953913614481943942093966734245600689831437545633746653430084883989000697629606539992112354468956171628565982169386592881564894311931546344215256570253318668919232554747125085397716798240482713862089080963162794427625319956732357062603447883657936332135479802051285855193827704021391307742693288892184923550684994823039607697247792663965580407552041590034378556947614915920910565372888974782263413080435793970138728287435622805441522083901205510491232787538806497876084293694977358390404266707173075827059376580618512227385614245232325580395790044187392297847689454691816758053379291670950805989427023297310331434061620771690284327524823793731332013219869822925038109420158754511006574475046905503277082074029566817065764904230191009075548159786592633192786052043951704814657203985897326364787128801992591476008718160342000607131460067830333602020849572164449961372603924416356196423454688092493700106936666155267536966515462965921262839372303879431641695555544401671497460503408582467175430627683420293445414110713972525397226188957610041493951789540068322919674032512354103975981163664939437563490745927793064820683642367802636572851080329261027258724096856641643496292915873263944482463824454518404286365968860337541244536325634156087102112700511748793741057301132036034053949521788890109508505480881616453991728428584422643430010881761622964969814285531347808984857156495765931828653926213822927572998585767384812100727677567484696990958507197740633195149529981153466120143393025617883726771673427371903481019900687948547818316229648710542323443516243395867249774230769008104867198486411825355839608464297437289572817307808078860129626085241875384938887939731292587738871357081639859879378043122622988184169627341919124503303187048551503315777627300248113955679973401296829408489954742398414640477377813524187534252929993890412333582882663021331589573920135076213678915083315394118028628047396341345848703356713100568575120502810604723065175395219818455830227194611743819150152679587758147077069667507371145246926047564181189204044445281863741597907013738494727211758175411527875836692424397939846769267313584901309966953911610486688826095686449724120211230003161703724055667149280810475938319185282066419566552497763167487436368101551701067701886135123066838000694134887457807969358546532266021346106913894356366977070780087353787763874958501674683287310287837571015444282586848338127519237732510528843114695521302479912846775225134784201142443152298834083763445491522432809327241165062395735580276219315077468154544120716350821164054473974760856093236262485324844977612005334786367035808911992069747900148124488244725714956394628360587197299551888116920187051854011072056313290404081552673655131107655840146186973212151601474099130323887600789376142933829010170260824640854152710195005770481069395823208293840285363610459854344290265078209498081538053253327507068611539489251855266557458953178668256911055878649943095164718727968864766067579830935961642747226986589248925307375269719249581229426143042160486682130062886801838425744036650869968649241578491354632135120537116699684927469757639807121773497456350522485429803892191705302800150838019492542522535701767335525501540203501942421682146143235397536764515723177658415548087158126110524504930267064494391456704259971146117678381793760310572653113118401007287298286633637123318087024796970148568487420944907000320323554474051921178346717410531975360906500687122425771261516032076530989587197646491829967874570907778704858804794302162200415983848532417435022198546374239216249527188607363437708726495047509631523726526647622199114208612472410086579980675297062285038785432060957603765526593251084220922218422267466182584840188542763490779503382426098549775347304515768951483989566761969827760772225937677273484111415490222986935064681321824218079753799432196588759717491777170502687853806760846412170334325000731123440244839897740857760743084669638495669456332799573933317551895809394406895436732769086846246293628727296746730914839739136754819113877469684935991905654315663597278460903674665077239596554706833491983126721233189997611972574790543337899179878683419181606954452264364651129414301172970442419174379931336544140570417915095218416915028366916888996101303005019406713438148260409057955208694567158568038739144905391238061282653141424611948746721039374269485072420520575693419746680692872239723604713148378359512337422538058346154938084285160280899078775075048974775813149065065318624866535993941476258063747566187005680987239797685971550767453334663386895237659719361106567873157857113171330085082008737376190131787325158268318496674516424345639569209737507250821842055763377401179395708659938019288507296464856854187850860868229737192390548124927381622320828586783215528398668320288457426186386840310885609458605528559292184724362928394038383289141754213110872530880902675854659037754508948580643334745450954718645713326250418631802318212700465372241736559727922918360213430183541256324348073983744474993932684261074817909667242835777065279635465925100397230223838746380099313176446246464177092862799530602508672591703084957634467574497919564743472644770846904700721560307030544066369963464782015170797510251224366970979600095592726252961656548748584115467175364354434915959594716791077023312268115668502350922158445927405258741846021496204951396354916953731625633942750379725906608734015189356180183787626285179225792555275781286038551361598193060837895757901755136847856813250024532036838120797936778478640230111720889330180144983638865809366598494623955389522290399111391460541460218124529312512882324054891799872051014862864464309226297383685335349330838728231314115907484332653243765729260878262742518864734814823725030159651773290504063811469531790458729051898530500500848614077434356328378048880360995823090349278216127683666734703057342162715978891149198966902606563804301778876377328577789395616149826112943613137849519769344088059032202530785274123303805071438094222041694805458396341995470133240685376255315840654455156158725730691773038082899790085079872201695329051588948818219622667530039784053133462126187594698088248274420820068571979574587842505803920547838732742860931225365894472022790011039651099078670789004755194024384194875392274517276013529383185230622944466590306258473347143274416992274065161181898520917215061045038502680068307935240593217864477012495820015157094770003273149124916341838477911944001893858332994375754304603817741054435698097624856291399299704116913487290014299442701315404610678076502393202320148132645581438802788722346291248312201198614095972423790066155636837259819188883653950519915971782502424883663212050593538137004851317025728883948723440969942390007760322094806535818228653764330334378663981022026955728878396075637008475348493780113225036917112035257806243977312596817550098596999900533258070715787877333255772743769152825866849179565012142133358554251242469187467055245735635829388452718708449885147804310592706655651742973564926723918241922860911393125265377744412902418211265876449596874047110992929033743473301533552875815312594434486762276392379099469338712810686948785068274156838744209652662783138712994432141640273096089819802295828707167740706017602096557201782211024765929057289883983777887395467219393852741701301583714314754305996072799772687726497725882503795239798181012628489609328612818356101940193188210317699037275522919410782886171094922611695214292066118850953111142583095752351947384491831421305314981185119581014702976105004995230910049924103330851092182420750157875397516552774885606782978446267609850118503737902301904966835541064120675029534721665645197331399015291412540585768912723973066184854643422810125068013175043002946170779724005379217831235177465598125609795879669800988066925724630140264536567468570488374673773951171015266154653942384673160377926168845067359632313548016492248932790340207996043955101478975436649302383418992367820052534788890641757113933784838102351044848019727745109435525178562659289133157260164122842009468383991909352695754111837923219459310280399442578016512641638891584515224184591210532348558909370986897354236188566599917204824241443165698033709906059604196352306633266909506123705594422683813380932100240430210136045934847181909130730102769435406141522382228998081325943077440682654113969250364253085018424654528463553293870911972675553343716095854116193751970906370654448541548291405543370809670212657683407242899187130432504479327088261316217903267604214556033189426815388419111940679262053468882182130946013881118453014024436708673638301640829760903492886972688976208299035414239833497526648205818707230442666723034963415269075718898908205824195061512066876878133345129805832043994263512211986225624985396949988573141479446911878551236729494595936578124630768648902683267447135780772149705453433266807734772353729400821660551261405687426054801764403641487359515536034175311926090841389879657093256161585012614092102558549705264217331477857664494290241732840227399040709183553374704074126157347411751499015293973720580494932125704766700599774491278708277299887869236573056325209546183176062620436596106373900489425867580994418682069230909824786378451303795424597024775188730492678219607158826360048089039736287450768563992909771468866068553790724136046671103699364502717416053133276180241438526125627946270854353000033990411384641690551262915919623369086589441727851291858528972140817401682157244754376157225434139727054982139831807370361040347568590015732639632125265399748238378191428813407111942262522935649592568350619419075132300916510897483063268816654452878336986746591050046670981116221370015360873557962477263279237574844908895184477488940466534366922152905823122914202561544327986167889825892049974744716587991952634271875008889038186768427276359800222987810965369789892941382449022175048957128400045591262883954265392266585126966172111413895966895831136869183118255759772639713702020435897133762014538003778993586948791659533581504342832642428290168839977468112689048559158022145451239510907129457951543266633031137674681105230381703251795408125190518989328361287462945656296322679470819845265962102048676962363421064015299742009630100772772397127127533285554292521742979198735479147735768371753166014380736328008179147876643366345601346149638149682373917432032856389950477668687210396283890177733271001254301335741722942287630087610603399222151045777542356595455635953727379877402067420834975708136011491434782730358824405105436798174087921627068232437623472317765129772411030402416826227979529745258398894589115016327131184357269145354378263100365138421730657914595111198488336461448214580315128309798428990075278890885586025351468467902312417352163320884399130604954214017196687809474393826597308677758206347478679069009646227988046557691364960600880996431425358632070862556426802902603926233848409611920728936314679354384918690642281169970026134434476682291336389322135897979480465199554535565346102464802079944014533512909880333759853783406730085730338018913038396664992438999790868238186250282231761456841407849804591860096514927781797949169141452562972958807546221429524193862496836051481501715309600877845813822149119787418254033519022129224076280990918376419537609418515655202845784811200853951058528993213098240247348549755382920202444628935462418021193866469774949793946455037868402598225622091150604632533558152584965687440637609131764958961348390652896373994866107045766219878045026410592023761618648735955744412459828102830158628236466901565502114432682536524639497501107757124963785493397383100725185708887063587911768668527782000765190301586530745282710280502736152297619941726144220811715979491967188029737714413597335305499315999488562268599517178878391975820162584309420643085214986755225285895500606035273039637255318415492939087595274994092551127285139703983189167818888955333595750336636365214244667385703897681689359278099773602871861989202325549674400909449247290260831619612047241802495865998105296143881692205625342078533993167055983527882813246299486602169149242525048663439413633586423548477226512813173816315734299846308769188223128421322994615952769920686204084995428750498727447060759848526933511552434931437222791245811211354995628659425664044878734488008135443156570392792607273861847120793290858825258760372836672072263951638277737147531768419717274534360048504772600685749159834459189873350278094103956808855860067486190726237591784632959586925451424569112247235532308805295349109249297243186594872616099389214904132585185887066254557554710904906369275544314483927330311210098518181710674870289498451944210759002639785825690085844407650447677358815524658987601474190427371385815262953571207130727264224040603173103244026517236049028991879327738921623240094904618218830725483029779940302349351961434707322164095756779603939037715287610548814203063568770035785262913576671118016463031980238277224820761427912125401995956979743879909288312408809938184573536400209018632989987210953028600979959615395360947124408219642453806896972606081695207905868800517550261400796020045605361009413645535832340431383898500926378040368400298842683219878116505263490267050454549113413976421768652920979752122675578915003381393951126389774049322619686323543991168918644263815304959704898913802935655990551348338292040078375310826281697271779396329918449242090988757513951981342307935126820887298935552362074965822754969110375158907560493476352954102470107311588482448311705864350045767748220784029901261932586277645134928636137212500302076454697494590462140324069814834931502900542668494565291162214653822882242914643678593482450072854734137001496820349423547582834375292916420293661017487866826235229877862684878891502539104760437095254404383954162106104252894801311093631515569141799246044345056064279088230314309745139207960028650288417681792116853883767834609090972989000898459158934023493737609183910760435399229202070894911251836362553179517953726236015103559664489268312417268957870633961591367553694729825756399691935412232505920708380295353355554001511495789394572322545788695903121035792851729272216737343338987691978210959378029134242134883596788411430710163425708409616536577305297499626252374660343504010014994856262851560393560558338115159457208338878051572422626801670271730255876632364641743416797250290343838378549894409928470374491623324310828921962002743767066177676472028413619443239399669455360286879263535785272207959246297115187440879754889887122268677783860455281093859266601152185226963986543419641863307536977391249403534910511128472881138065417670410398417646982543261097994490799695109530156128868263828314308034325341892845044008375833401795505150093878684681932552945899486637177785601660903404712792879839654503036212589914741863424175532064283569520075674286221229934295001703335962611828597407914490112433682406219201235007371144652140066427971171221596462186961265840019897918753697133016719831691007696616368636426808314060140171989910056023455171926324367654606239755980222578905352740679774482225566105662897115138710827991105257942778306793766963720203859064016489440674303094743754798825816644062918511895363133794077898948668325504049688225343421563253900743565007671377215862455744944795835370247931285553593171594905254646485179776317345832908153494148703695920553858068246496852733038921988769056049372388341832362715029348815577841904442929698610442264278012537089288360122310277708793405028026530613008454577906152331116964283758753437241783218064680796589263815455120749199499366626035747769747383542574124781480480304318717587414480563632416447677737952835300763906808398525668668952054297326873623363209950550737363154271945443133960754229875844218312148218968313320366531264511676350417850552705737591743056824657656854633875295327834718684156468903282111933350078203164896477418504378302061383257526848289734318422441625877080548456201760994785239289446364003238051003778864033292381519483539857524422544454303126112520348440097085190403600748037451849336089969699655469231351506070897572832931455995223626259207605604981389877520097138770251096006186348697054239308463689477867698743617483787299961661055971147130693878337539016308748762608138513133314324804250702464350864112505423141697234627354817086864015315694756411033840946422676589079711769234786375840587062143500428200513440286309565118667853955176488432966993864773675340646466848370973671908306754463894787752492954689269370952436604601846220795584803920905314397678634587347636575507854290109768297188231304761676488105679636720648981605669047531568078313575328330938204407687410861508735092930418750152139064675352632182573353700940497612726777433846268140682629055366992628562485730679811026518554098913120800158872536786243607269188134594128635151787940340485112019280840302894599895219065887058908748427529518647523412145614198903254345514831683441204127164338252302058764983958337142350344864864337228775872093968735669720882044014989809843931353433935738634863216167720766611938722460488654430417990360880452447098886924051881702037467949648001445535612849645024860550501401607854330434297451737371487838900411549205414589779750872091843980224171042218596364050134418298273458296004220238845106899677995662274104910862178667397778728318758900975289335726240196943129044825204080673268017135017497565209710062803163548670776213317333307495885057669858395031037887927737308942876880883258280331861724314251482342066113970876921011017019890588190276174841882978204754495923158353104795665220590841819443466842127450634735612201548428546265144920639162133814421274615991673794389934919380344575040971615687228996167599067550706560548565934532586719347575133087375006736834321116649035659009890088176790219350288801408798247214468267510039471995608614450141726962226324531180011218678854934797833340764359632626694288014315483451688401943882223182628374405829930773171888575421426928725500108212961505858735726369991082806822772495565576245237449379563100900911033825180809156118555722629779826894251984308466484531402157563895491366188666030538590503928526461844956806461249835974610691165711139942042720574102622452693123290914413411818378680654660159251816559481792404088734127591933751531356534053947635158705011647909317175906950621413553116212181294202292362137588077502925133439163909008049994344935432612573773627004640052831077802715289810245951779822556572463850206391952047640831633036007987543322010076586973598299454420808939882955969001042639394747174169749916211786684950523497646648890405941249973568293454123824847477642415489125954688892444590765465884559282511648615444194150543536147912679901786660379565459101574264684815033203680067949022608530828485372597757680341233764853398362398218381652822203175992674757009145216984546452786940081553513733928619113041805137417933369421578415999623429531097005279020906594234248045992576803673967702629237969376042723653184956666077372969026236567910355307402502387953988294999353187622709559769751109009666782334681749574698591424883231302919135033658256591592715582587374776314987376338244847499620348897357292807951590360336092207056682026298464402065940812920684095266427102814577405957818616809280773136088500386734366587032519265783595972446030549310855806820438838426536179026362427807198403976900093951686674968589406313120749085137919462159867409012920270520769324727368122348144476896911420392360062116980451415492840286227504194671388640275702749957445921518121947406931154776300572092869996489089571378390814923635469890595808338007902614607149778948505586292608658494601029378929179328058427119254794250606110891493272515715960842197946295506368718990882441691462318721645027944985184957190566026951502528919454707738312253013877823163815966333692753064954221673276519530613174534471253264734351009574635355899463904025156263797034243141980593227087839710338665294301254775205091787566103447474496426092707475497942115332518660464065421360381102342128881830071471888328299026740777436162479128578311347045941489094821777630900396661575120195224909108512457164768083163603835342087737736526408565769635031014141300785676659330204943370261486592504669560279664716444955174108890548274843723397755237752579050516132070089061017257458828436519145765453333141691434952697021410283634987906371628990569826681908300169976856316707724847229532474652474742753090349600198579221054545784673406700005964031949154943000670670922090750715926239670502267224912228082722749313999737512838831927742769550516939955467028874004053196968027590651538273169653111933556931659386122964437769355049053886739898868624987481108972086424541484410380613443985840927151703320382790085893920198149266894802946182079031969230776204212968326152510889868807135150985369376519418140911683557355621964667565624793382777559010335142728882009459686230121822465270774741185032328458148298403291048125928931555624113729442910025167782000829726512956904435296092492219600258434940023534684486884151489632538466684861162592297993556283578298948037642572771888365062789510288355912328529037643773743135056770055126738712743908052483920621056427766226357693140630981067564568141408401949568742626574015633733879004650026771864856431599210290765840551404458752203883753873931200451390360877889845108539508767830322952788806174904669449068046157830494801710934564265695912126349034125639464852195463351190939227006931611375111243785368006198007397588192742678148038632999808296704335672134378709133476512327343564637338513178930801778385254837768902524780400367907677010519844493064190838232980139598128791472617577235537841395008985554958471199037753262159720907446636256470160460431652057533786883293058525243828134368733466759469922211034669046892405236652557875883881937811928193256121242118432188851846935715753849887291252155653432594350488053761702226038711616261298131704394640140596296321102914276070807844212247415866454002732260320648457831782196836857869802880465226329458505489632814681460685543489889256612819404365548209992139431513859453250613148303865702403031685006799353038140511009730374303802136633037403809324107945687445326563236892227233193137349706597316659578495817065928799576457807162001860576291276351604712984303913225524799090570222317654153512883647900442877742400997373473658070419631189984856587954938661852594096335147994549186597312477853732884900383904394000367851080617660594306012623630670992533058698114690614778442183601648908004931311844769362323455021124622102404051757507508751467979303696554297614285449321640037538840463505956577058529471709536277823604308700128670875859897787673398277300705455121463336258950550950593418114816678292816574707160161561885633828922284897443152906520782358445028843448920895075782895933853485098712893950619891178191402245796063145134879636289961647250139922091581662710803369674222865918808616180279818184680565213370615252680363222011391133355058336298406188382355182193405048320035031830507021489426996642361341081722986234429333550267091669574099219081730774420059040429562691934600578768597779025707544555441947885706947588141417485697976093199363757249833674420162608430535118776193524704868926478249854018638112044435521997920010207305675611938144144999554017325050143710311824955324605416902686075022767335219094624525339542355889925483342030381067966604375225179789695182235017508295500452934669557325887827513987668980467200583352003045193104601664455071615482651773977824460249227813915353681724618901124671585442118666800863310933703495806152549773470925475255487970979599690187270087865829970238932654829860297165298209381477694850154356154935268700498657667208598736476708735841025289734629230174470924092557731500006073813340304358668492742042136004646884642914502546993518318525596020408574249895138180150458872825174233987469501126889885679251258123673056470948609322085418039625564686105166975628713236149557278864026155729450885053000149389693762540377718915511505618459947493079476689150176743839288851567551119737224699070248571631974578264223601242619053993350008642618352299348617496920514448350866262173010428156284890510095144290570732422125897999510213043352778516040766278253075216549291652418795453766046637908453415685734187911590842768864752671839788189145749872546509338083451622245214603584551548732967017451664978642939652805841415039182591892928614917406362624285917272396305558486159475624370194522080521702194770332645869782506832032406246550445512676050148623476916768518883186739495741142411742100525239008879032647678706142533300711081354768476080890692944611239431492014765453423322526641346616601895846636780322270932813625906442567700554235794457987577719661605807268191421627610960345388284331715050319509868708835053410256141401432777174995662292467697332022137499933958653035270694182774392948887060512353952517543599113186852269434501405106178587507334560579622606747857440308539890170305951295282887369190396172575454229226923898003167259101485900966183304798085039318282616916291160326122717503233914007190124382174203366825122862385175853255212820355420483009107522273756972804959561585329817872876267794444622421788417192811663825173245651282451672666219032867994700941799781732237311312155592011400079659401966022798481875661492440124728599147734716233599953142827884949743088579203627635886793065786730924011462394462086785647536699854964341348547927553342308572254698987642840545225855118837501689575840220168591573793961455369627253256581833640930549904444033018152628233161230331034831525523091668861221690103033458194634499697826999226445227543294019335008056265547834881161473124982748865417685141308939107893867593440425416736191298576763241163897050948772879400486140104827288331086954821089887695963190232336310374246690557199449501855038683208364359711612205698016155838511603358474396800816126782126845175338198576603249666629834055436390498252325097123629989121320452311065323572021959792666424512395418725921272325841513362986397280906158716325315059893930730085850844418735924871318855699189086162640779453508289813953511575372908549685302249774870302540719760506439086536788331100568782748161553986012200585935946010223703157367739210288643357962856393849626739909456311472110163115675429096726816940808925900971290004417263722095665390471813553245896115233334981324178257139977988063159621457140006248479143667496071078814960700403215748710263796232865107118036619419233158102008048334684040781545359982718731584219471617489776785943005885076688244554618940512443554537368464124043154882634280450823746207600536295148107688214034384646058295756458438052162341956969817288249639360874873145067210525921720152610002956548733839924786107194740515246449515450860093434255219392384767945197171111417888188263447102128939856353545587764613994466148389871115133836303412757132067384077983152692986488273402807675467809216033713075318082498303139096171743472015986305112683256545056279386778443308286927146387917315354834410293346122388934016358514826281729419393640482627592116117986841117011663516965684897808449283772199428704102200554379463362622788576680379414015696344209552184135797883576820978625364374021299565877886420722736796787351958987100204316143388764797244547160883698653597412303597521872890602652769583401543906539705628458705985933557811998674680296649992844309869215594960024263901822261550565794565068258732696553409899120330695002479020367935102833191394131676071455324933622626684754101110289967372651675181763790808301369242097188578056156762923313181551038837909541887332062274244988010216729107049104152640412799066074580974377833442907227499530112588844123703816339673455664967658846552466957318164714832200087460508575608304748791065068692198487404130623482656162840246685924325238034111494078100747548418239716959570526457030712632607000009589142031864351727854780331704444588886649626792519282028059671329777044998584544980244495229823758424708768834596745429471173445055431547714781542155619395227679009645135169272639424280599782783149788871627850365698416239808420508238666892846045494179719460987708744358292447832205849801982598984936910591625496671918026664400382070334817365304717997194886908249836201425424862445239963821177186533777523237302575133521216468580633842306770856768630698867233954941135576477738544115251888395255668673492696490480690255988228275740196128890990919408574549985480637602500751119121191824679789792959151479676781553865166768577602464468610116950822413574394680226139353141233840566862767135519277673190774038211228872313746914064544655167852625563297167994832952366336277584398534880286219655298208151294628685756664996923929930880309519479440850170805540479323762046207530461853879339834735053980146664694862572655296131874624037691705441629057384459794052170717689260665661152455197048364111007080469366919074904245249623310867179137568050818105192768700998766077500818859682499895884976426542163864061643596051220234280390802079478794990099572137811366796243754432420750487513249167740732523460963606582819288463342673150389376342745806649251603515600099961107741933752729212046972342230541564984997863319538953280999287937909874110566940784697952604214222297157386927932617708704771925992321104512461116295718341927162323335084665989892474616636732260894535231559072855483795936606309232351179669806191488367262665536042038541638724393078388838185452960799450110263485505863884347102874198878067093699177638478077076855443968536664706066264455144009272849976359324318031548736267010817883986831885263867849428259010908909646098061898479631701292299574460887089063806753321877561740198557399447637199924097710006528977266621534468145241311331589805282198014495477719146201879591660272460141116975317455706794908428819774979487497286222420466037376275889284349939835570612320768022060802670167415568501843994346613518296127889006815191952345248471863890734640002899712129422413557774524387970418737685192197768001478261230881852684589118882563914626579665100614853890797129347471634712276535170220443152857277831979163546588592836920536520389961789248112416894437643833170452392398176312932305002418456657020958956481586340327938563085562221229934009075080826839198128225070852149402929195085309728831481602207756189780057120043289934969077619456758360496146557261465022845811284739861883134452459940187679429314374311610173243272192171660884871948975223528299518043032450185519945630473108203408111424212658972721613197953558902592586763922267775348675235984176162800740961791167964207456140408674132910366018395605671644577132121502852242675349551470613056912881420387701705929476504138389302833031652045481336188134434378805256800710253727956641134281259205531701660963377731725694529973393654467656681328482423181766175356448516914958732897378884037682387353711066279667512605813748146166198874647659511357633971800636037380014029714609091759370905704773718452485517720678878657572528457203994868150370233674977135435525999838486570343290635845421835549346790803220239879906660271842121289127925793275174323290316219442784125355285042718375536704291924212484340520102212923463566083186470835705693211728643441367577821779346393349174048381841322079617742925110196124169070650187480245404924036816127608963684398028158356633052988763264332607386094274848796889755510996712248351064527244409397722639106789108037643837757946859327346560306598014795156502671246380682001876941934501762962893609080001888521100763472647873584025509834033594282367955234466095260345830099478995233111059501709916428272453928169035132201962035456865494098378254125956927061208033542161457717801863911294506192120403596247854195482996574097052010811978833996644751516272951160169807811040460024019449358735721895483668513510921680435336953415251748638605420872291329968229447337004651066711630671897310992136129457883676960290978867012388234452661035149846776131554101602675983227318193122327279103809379235325430967740696423422327581813065933267612269519627578107114988551761985895159621793058727931246178665150892407732241465468737498489815817453390565029509821557114399506541658074114514147705620810674629638761336732346488326604183418810129683692713383901524848055986687411742607653559146466723988077006011618596786901681012903283539889849937256539259249198134837605490686845703653549328387142776530853910970764145265304658941397708453767816577154158162086599723899998801405995677610817995642839517984247263971945397898173617233903672553827217408416854271524418424947314687215289896192510256666517989882773920344718626262123033057900216604538355376938489707038635090556438407389713225418302163234108722917443599014777109073899153906366139113440427255089353645697262920769787486897391521724056497865944217693778204280163373887778597632560165025893642139232582259408912676439529351254764020661132949612683443993527821296586749943638630469123527092521437857318602160414547969148406871024123750028783504786867656939966402943804959548188198123896981362296939151829626329370376220730812141506791726215029366202451431526779792947405195698463649460191410634005155452595141160809274973756119014812555981501819142758033404982035996881862804686431431369913458686427410346302153361173317015466263786401162604586505813737866755678763410754592906841120615176048659265586731591345505088313775187812090344896271492237604001701978601823342010658111968839566114847085177590933665361434512903354458301156626460438544522676044923126937387820274162724430178008147698830023524016622316057383802938802920701131676917689439021693699236262814201203768903992037288709560662862070081879278072508742920779159428876530997305546546569666884137945930836856941524999136561708079451014708315655191074984149404315003215198036262759424771634394030721616228905061732907220903532372182792927683059012860025685694773994941604450057406698852225208610994825472943238592199374352036989342691895673420389858261296543347566210047937792975603927805879405998670802402850763069352840742925851259255480788807102356156839572601801790965214050055239839439956489166552027698797220710843064621873691347680519446423763690406278657781443629898491445692347855994879978460962337518987067334675022073786767562839986683164284912131934208676659164083649482820296933062337466527999783695091021089189734928256310841448394084658698417099736646389291009331810761369192717671417987665140273166644538229609926287038180979300496040358389855415451911187076276728074288019302336373907055281235653178290568185825134513570861189572311204706349640204695750233877307095584533264190818879025785907079098759733465312494607244527069458103795611559307308493190372196115832498035641532876092536833030171358147889527902483510912725388592478928603823283667911013172246634897959214612403993245467280065231302510984530917536620457534858479722990507793185898805632869611987176967834985706368627375844225577752694808831706973411353534918952128579736954413126510863405836089571007730506068144331264222644001808534166339101593262415830959622948184069052548248716280644356275502725276373199223421325799684476466335897954276268886269287497219579651863231110563428340548932868892341959590830960833965976075369045129808300331617951431763216051338274431434083724419685362479460716007665038979346882151579112374385583540035959032130389942799269485598262148572947580281830011972014377776402448859984745675346922486485252406483933742430497879162224118296263704189430578630130013585123891081545764322398706119337659722281726848571992383802796451087867666482388363880737057272305183483584320916963589498630313097099041852528907499920694483992742386324901982997772773328948892214543046949728565841692767282803233660364066204550598174658481207366292001397391204256286524645490713109637220500652791935794163839347284085308158647103290816565808608531362764051896159587347350867625071963478639442031677900160496722564667205975242904774846322369679823388587481727987791939941609232321511761263263707992520641673420784359055704468520221938747289593996864861096129565152096409542011595105978374927636397182626266636080941565901400542021929501502458170378688141027208208307669915661086260321866669887793686728786659061050505448348439715624383657899814407700061231974225592732442818118591642938536027134127421218387656968537413816727898996498490556684117877711190336449971055641809122656915873204088603247812022707656893592359778186057435967360404949098101779907252263395536507968116158447599052348351452790693729041164822744299766927987257147784702517101841652685269481629847692680498942899385202413894218612136417054428491637929577616230389034162370557754008088851645520204663075864472526431350328341670466375174326662710522335850531438395965345992955458177103567200423333344935043975848066374764173717015759804373126054035996232674075978268000660697031098414753216653283968951324423224241279106202076500709671244755287309597838066757828136505026596637146589691512150992220003029762377663519061268580194457858558033295587057203044112175165797352545305217953012571518927953286181953269399375651168015892203530630454553404918910041839908756501286712724033673655514821945034671054535868995238676241089288353924504697218048088542465221849680984600612354098461984933972358034661771781300950660817991331377050875454621699406796290257985911577454690343839627598082470106037256587825785443357087734069558589523567999628110618483675194903662479977273473078313497896610673302093806983763610702479479159077218787706473546828742934142032668244727693807918817640691402799074226610370008210326298210540108665868405605314794447647451454638821398382077847646433745189765002522087540244675323669233540831390121437938564823006214767203389965782397945413337265792361765069401672471927051643238250854361588281033242044798930510216233086830806045344714908105522910097943367122191878176234335137186487526983463132174704627058779846855146803261914382912248214484316573102491815038428834891682717345642482955342725295221764400464145729775543824249813062897083525376647251857429149805704328318124443508733155392624444761015861380113251117945036574815840126420880389658698790323538912452863256683668378699085404591687219655628805178449677544267803427790250462504741937333645961242206632831976657190132142126968222877458053573911848845564296461531626416384420887962363679252731240082969997504625613012260434765177250973214053142859297090823456206999955991311434120942874915484623968081069644920707873034961985986569982216810833363649362898146939141073110689820258076703742004004211896120732262250707384669382210513952362769494766672996741384131079622512600672601922700566317029945487437963393497659107141568496531777418327616035011632934069141576836384147662442502388000483171329722148307903712021205462743158242944766806259704287403420589440632617687210511168288792256528719178983819215070550908820081278636569007460678703234360856661286145259591034605963531532476958221215724571602971475416558706665052197809293859554343643897823699547091803149305072953414487393437664244655227821920287021174814054928690891555499224823712462485362057292903766678317257604218267380610302861689766917546254501099407263593862086815235290819979830069562145253974023863570461282156899243748959746488657884171644372899417771061222876012434571733388035194306269479006766910130638061517883084470677057161076710263463183390681693633846937596738096100279006305064900817479267673519857009610415351279325724392945005680440701430778571152429176797035534372628774486920161183712792190599750187762023517095075771612310054976282602347378203416837297036701695084008178401053305082568250635455503942257651807166735625063326069868847743816381344306209986499562915080553777801840261389823608082379229321151791878859442390946556918972681260034522612051193914029768434372143487898070819927973055589952586829551749804250115236035208628281519179409889146326655938826866425564458279340714646948510595009312971544098797212211993837307442679662858505562116034416828986629842900577937237772630799645368956840752996871039579226438469329183208067063966839347390194183862259728765092175464985033436028515230152316242570971030003542706172547499791676554587033671387145368556030507737881783546682225983894147194899047848694603614154298071280994000395637499587701360720931147033419996285985079341801823473928644283684181882137016686735245102034770131553648848863945209890128676551959755282227524414367804800221078703782157349855803044079013933988026381941569574222695943220209957039282603436398246313250018494616637698158070097702233778636618425523140743384489564301873676929981015710484392371429900909180658335901405103197955624745715494996494070010275525273359375524424731207824205348004727359447167982358393262912261009622839372730022532497735166666897698383439252412690220876575168563269170035967775799851003144262544223133882549635756545172881056058663170600859140801832701236653206067657374330054086239683188344413303808654346273367354244636313696748981287712038770682879797947582595134300863537150256152448738975649929631326204834923785904351208312753951270600961040705685223857421384947189313473558669278123755924710775610886313193444984591711384475649748693609720176929722546624942985795939115584273863458826228923301313127785446598269697040191872060204735078950518865679097892311274388116983837468964042855080983391694108164680497177648448182426355720577865498486418279288866494511670509288004897940619648648280934179765234480024857563794585693904538573992869154857222663038248842749650623025029523309909745301322980336640811955735383797037263469907893461791900857622731023851776402801042290152424338641770322433596095017488693270794408517657889657904272821605726301714079088971661256731452475078709168889544691516932922307144387286340900708359757907148460459748585733652567010159571311626309271724801013300885817341648909941702010552603139298336470429575255875337055834067530802104528198706834243730194585989959835509860628093615213477991250154696684790397024256200515705752146052003984787183371624321696904950117137371358625442763632035577019775607787341401147859486813527356344196728480665347820597380266625678975393546111810803585344294692719126229539860868235402782251657047702377042602833927118898459684269161194630272358748819822391106237877302200573525125418755187027050509079833867155111596511439289834554102324820799901726507109872488836131795043722420476449024342191253124157495974162678965471287755235503385405447313434688270691760257413978414391408053582236229502178002436282190784824836528683539188292844921372858158934329456634585887685010324545646376341173035275385465447357176885456788620036292843873439678040602291768731010652639049243239515609247131601546035121502426978547149057674501175189894465886276423553632870175918455391940087142212365587709978188281732090776405626634603095343998447464918816638586527228561913259064878812913310255195364517521878700037366190904054002169293406261015284257201826488091808787510909014233934028834238904863125214699593648919047730195514963276116487608853454426567249706759748313702151861372514426958250572756851706485188805504904015218702788183645686730420366566126571547751520783124479200795538258133648601304218039653109037069657085043412657693413240879559471004727570212591694710577295720538104383042338699043309889523916340260044297229921564429769322205835539400815025693498469347023865505098641299184072803786997372411902424549490905306827111000166687528982488271048982086336252837427616710167865750249105113016808201952842605119650231859053465576528819369786701197174859304986819982509232067574041479791314701303468346434371066471121944646139845270404259990288371668218813523237176740070599155999389389697605739989733915946149299546041540049184838999564284668233292569158587613587967516173561201268782530086725077934098191096786822795398973531574512276389419835783731144793523302654688793925536532425810380356519838461807072903119414628934319614030065297609089747577529532037616261659982947005723454337006759664951043798003114066386602295909904609515380737751638231225392956689278235766667735892254791100960712569654981462884570022223813395364416154408915037663377179370111794808958887791717370571436648428590748808150641095717964752947242001811952883373260705837671896915558979500656794249360482073290440942491156997848909433953742503211899756513818792209693718292479044582651782916057436216734268008922151557246943027099405574262974199730847124321440974658027439898226097136494966186992224534875746856807515539014421089007104529538415701050617364653479117415667029859158781563084260948967019712728004676886592947177961361254281118947703160679426319927127621934803860474343770418737542379562482228307151521090174023620603955796770145027709907065027655940070515730022266731093356601640929407502199093891858304778347950116987586672211747229339098514187565251878427978996912776050921930950440418985037126443559903511297763032641913111524388617677199993361379337259328259199432676987299703498381555704869091082287426803370224389287665479370270415194767160383300717207653719092857291238415859085098746210505840828079819352387921531439971393667723210052297051033480459405761023187249778860856515269632456015112504889599134385224977952266479614334491238808359688891128460051279245831390417329811640479193494221502655222295193825903531985328164610796305450483933914701181990085998331812288684583431834818492395214617931966179842145301981275813705123819094459352018973541306744256182905112823703378397290167046310297838011548753286487252320059193260219166673489599941618911425119417863511194650368707548589516490459180411635883243960530151001540900794470730179351097670262754785778783276960492775656056764637424648460213685694671271290358193136614389908998369321071706310577590155402400316086388423609388799093068365236345199293019065801789954855918517304142274876071287039460420961654425276513874270234875773421500638631729988990714535697702425263381479513011702223970782868661184589710172914514446490108013277518581022681956475366038858809687149157826968278321816534249493586588514019740521070360937181733021797787616290902843108672814991002441077294385983535855074024261160396247442648354431858464772542679199934366966491688691181609778185565756332694316340512269417987084513624955871327976391220319121138139117308433493389227228720402760864184164492612697600935887426225731685041168043941792992883162750990637572566196999059940445869703116581682713633615449956922232463376963067113461656846761072039292589674271925506966275945123900266908225285541159439353107383592713461315109061164632775366599732329099889453176688209835924795246746767811900156788574427582930081099602038523106879549386093874345295156739164004013821912718481378441409366303987650806402612409663394035241903463852883417366402166917342640063536164495743930957868699793176814682440823271949168660314283585887740287831401371491147826590315487119298619399338496269891257241405064087425712681228670535720406392420243628118903788649295164319142827772670365385426994065490210497868328775784036631296387092234904066254819247376664457564388420958991414779303788829450077157041442892784200129377236711140778450540252594096547593335279269014027513552579480311414343934414695750718772585112725115069207823045912073538118550529775119207327303992814698256575875457930910750282220580680778314481863918028401141916999650997649194912689977621422286240592862594169261530784721719313851687275667547747890357142234786220603135205908854360220942913520551090039149966798058024422978270025643091585291094231726652399716968164438924809268090950366723632838271675949911397022744046821012844679895575757453548165285258567322975437750629338920556319922915529852614285707896546159828669749869130418151115787251879282313017139150707731685782459022163643018659722998050372626880398910547959601442451154629413752566463066667369403131903661176365329786083043610776157247911003479972585368808923076763904300697612143940933324703480763277411252798153761834642669373167547178538909008516502499146389939058722339611390809461843417931216765003766155852760168788878561619835539384657187840247601182693680828983001417201598515449687097247028745971203898991777443487032637958497110792645725917653735738711317463101151340156790883711112647528338826872802272625256371125627357736501808905108031645682210959956932214899795124734923525651923705587026451594457276518129917492885300471542438963393027201288830023637075026844420533687142970501524730320221429189754298044337604581672596719775787025130147296554157974194613814837589405558945673293236847679555738687666281231703874904601985449505969047440616518168587604689468803070792869907919054912479290883038332499102011832491917092547289265705141189472400387239199653454484892500878797219738007789524965129895893554708267132188568524906764844896436492567623934917218355170310305438243958347732524022398709597546777355136137695572801037140963694653745845855191282449500502637306383449510989557698461212343080030884119371528855537987979011073537542733161161358908753257748588414590023714512722808361118527765254317365135617418522267046118827799487013638058901598190091692862739284092421768775787159886821627390336616470978044832813013278873598190471869810332746406639530732259744402536219810934458276115062726419937068735216975424857683469210507318495439837729627105080343379603093951403317026232666384451586098934882013788927303289336126591377746786069071636312811836067647321085161624589772417822350679009598150882533376523045140752703483915664040784075571923109087970730484318662200286634720096651625442699543561041629585504903809267587715804962969352897115531650280445253388151820327971393631329597311644220031209381920053257825148450494624145020548138467158343912665655923545821048989941991695501278192357862812243021423431960873234665388517461962300768944003549572366344454863872179890975435005110361471975228517595702437316535356699415053847399845458236827299338341785458652450506351016194854794318180514674387697998510034613328873177561513659201902740338311069554045245593777638660793754120975343878651483850652936369958691577914590359028625223501624727498772320830411323692511369452134430528828580090794556091091831958704988859999551680399729836371014473742962513322042867830698031579042222345315300473231375070420880754228587004170065504733844406700179877291568816271412781556655184535358137585462412084834320983806813960917322493284358921650635328218761930845900799207758040863158687723758418454777155023661152075158599762530936438347723934319916918053062970109385653226551989002592296154451378474348876839846745011448073886642172999939833011297045987485519062678939051151982459452933670219338267027382822506361188206774687684474546594136146852692700720925393122809632727075501903430417113001058340984314263834380834578213073814798821718686868915073317722904670437894418047576841591385638872552333209204119335559075110186306760457628802061693875622096360611652022616558822828786141912484086767179980521914351656197456392483934103119650492516693665539133538386135247953153736349230272358078318103120314184180878641680203874692823056978007037193875772619404450621335169326473946332484345728458335243855057809513031668239194265696790143951523680505085745866438158363484843854835847371844558094905044339769545609353108022492933618606564769708108387908629909639681363431053949510382336444629587164524926428287088734080248218973011397756763849816021276635853386885225831537974342552472153044967629723368088297165560361699929618744862369825143206910695490033797350637561726763140659523217789911237323835987561383036207032882667127542229899835612007103189727491267903599295220400036448839236480979955775307901582399541695853605973752145627641480709917004089474050163136174743957258020097226133124718191778309514745556756051948980139480109923412930838308551409879998318302939517638522758054147678583818158485086372089119668912913856624859650406787866734631034692337226339282667241038071567858249628740531327846097337088740225085261002823944512478522344616590695794156344326407492274971886178717386008019246866398251318347554299536726743308382285555386264059355166325751637517773279019454721432898825955410071114610066070692182766363478746545486343352151702476186064353901373028340604465646863357396989746196723175523315348212663339556558139327662453847092737506449484716541489263898769567088670347566250130475258443122218292870375888096941860681670798036826267632551790988249128178300427027662977082772278648417956916690293254438325313148083104693840527546886307694284523397225531533227571707873485006836184690388156358919998787625626534659529334223303047870574382803241318102458161423828473723307002187455377041787075699652746660448479775382375616905028544299887790783640932755159181774967302751225545015478556734871828684311178997443657419278320070289177905154599097178783114490649072751224579145789805899626120287981234495063192385725215495782190207521672389813542257270591446632889438484996642766728933893908987248611653135171094209239805091412395319462432827707814145250513380483528102425708533486863919931089898991780077901373768885101135779450366128006389945234039831800950702256114595525457488653568986771477680891018262581083899230317190965082040888589783397356241740728057888102419854300628135199534970289327750159545645076139687497773714813181882664223461891726019759486781693606696674064974152319592890035274086162454860621745106188007568163788585836082439655696574649623711774383103947106136581482813071582672827150751909994229943815498007267170547586768713465785048932568562116534837172898102218755430964805455736565448304491302433803454599426254520442116326011627438396746795244336985638397410706518280044158880449321556453793586393836531758033956884568713320061814465459171105706667900379506101808517090574416992981904769322361396551632728621825971356842955595440322569633438461894819340801675437991778181728536722473902207858820568950677829844456012251120936846164013112370480420243889664473415092494161599438743460924919469850491243133309011107377585539002374786010782123862203312836719483039996507182951597168939191525004855038877094359583054916260144587502176310357780186239318573753785864407482495648085708295929573186794788791735653884888117886246130461351716324686597644318329929205002428606362435135761048695250983759434795509373954618377953400519885720964637381755417786533878452030349475438753441540303048601117979745617943836529591130464598414065907757313376989613080466461087836031999908791772782297300008394397159594440762532712763682997292972739122093538293727060389421717538220709887142340759833284205565520864794646080150944939324420412565805449638307365276266879202910300407932134276379801329698632909753761834104009258891280722708533356262749819319532099223936080923740738275433326753440128061620959089833440231332377095388731323477496829565265276786659160355421509266607441771277497859817152464493096986469518534124228663358524085683190723296446923433495995400751348068839653501530038737660127209269232920159837593910001701688715367869390634298755234059462785957080240939506374870817819052472865670738519004262303531566613312200176669257392429838789293431044206814883744976189042578188988647323812756406802086991276952825926798049036017038530535009151634548172527223095887421446981196554250664803663406735701317590746856619779085426874004964424170453026593613475526090036482643765937495385791937621348848541576981322214759565179955256484969830536371104723616917022042724672656552660139155847713590472354531152120598651711662351245931826923810550035668067696744211491724818721275518229607109490148209684939735182113180725716411842228262219449754161798236520759053842519793150292023411120176813614918687331598988260056910249252491317206121322269181691187586017584132206890529123102604558834960042673427875506642443712004956614937379962097235517856281905552397939024949658864402146718007428504779187894331265584179959865376110648422472453954365778636599380331717282736641537689705713484919948457817152890166805206326627605146235904699366128302733751870280187754619530766108967694220665527269011398727698975136462844668023720434507611771029436684355002110154132695984804926786787920063248575362094394016601039980896403401031665688237836197333700049521898994660006239815444657245657941243326922340554671804944257831304369087111569525219368905067345539986836786929508755130204498793001068973899985853760359095505018150345343031095754764296451989177391253708853614894592831628491547971999912106475370088407267770875107387471528344749252437502118307387649116254289588980440214399659575066998099249241926066295051960918068678049411150317434222920588496151920062198026417303363243639386699883147001356106822430916619225876927052874654562978351591157058873685269967359130636354853769742467239586184259238078751062721036972633508607581871073089663048085129149332819317347975277733000232633427388694421388971246833602601241770961854343856277898965670068930684084751677315141106323609734284179501262368453148270334853803796358321094018249690424881546520619394554820000852912807869594197186334605103035148542956981161692867613419134536728650370547579273544042092480375600007555542012521565167379102644712606633541296523316311521552023770230178101908609836011042125555532641800670949854178160522252091608604206727328420910253019207364477929894306811466927986360866923300047349994638857135310099927109279877638705449181777002538208277916005399847849521283164373564019328687606724084843249912511990548942016092000892464781416387347832157249069674018199824333431890011378149603977221611598731442780515401927056958603759648183166160346684158389864347820681981646544674678135018841990743737943152983649426532673237622801032995526647167883637135582523954485686886701859306337429012675031631055350188080403456950634795182339621472902973230677424500478535049357065041633003752796470114484170740699210159084239987606150053417271819560315726022275218526718992841983021291515729607511321225427660387187302634777000041442194618869119240783427979347935853870174583019966357974196034656341830182787401104707466481144848596473922305849111179669270773976367480430470051683203593267483816298094045512361583518873234078021537308117594420579617539779730356848248705693109183717623365284946897626229750987818131557575928861164886482335887951503709268742411723359236895935078052694449113060484564313347469447431770301434899039067852192802221195166009621843929260685062241437664656704718256974958297549048280719841648318645204128903412497568581390348781218342727305525009458290960871540447806812041450957942610718549417852098869628017235965519212928411120811662543202552387136827437583254955684990834841287737049797380441215144792608755249504196095168153345764605955770404450527039957531657781703717609880377173847142193102019730449261810717588103001890306558963705985382328678113616890208601224071073826114215845139589224227520213149244570112546937788689696766957327468462404289433774670250411481266438315983025610813275478290456173747567765859237700087938670278711984785792496330295824978120594108275708761008174846597289008588862570345079940653235314191728006912255417137589542014590647171712533139014278086684949725262389955507473650180785947852630450138218869251512022873020229045592866782850657350558208584243896285158300224975397975231096102907047829325015031556482363942797274471387910024944747541039969651419842369422826591934267257684635785657409911347091568662720453509068713251099445620527445093065138396636082107394518122330156575518114665296981930560015011853391080563602904104823561300280896533815596143324289807135895659388316251597584134241983118836637431909831652301200847133133317718292504041320327687292489098256539615069361841580122487993166435661779596025911107389827736512588101536550396791751108391608846832415583771171495053481893837433059861177674373273506395658924378411986165117297852874365933022927305743870842373591102573349752167689888187107893253996454807404680740877292023425726603130063992723000221511339790806985758093096465939972352970186411345984307175827815271167319246323207614171809540397705730016970306629101823765682430066642037256980105831867943810538716312431894199308294029346229369934329517796483096945052729075373929101999136649619781941131276874243884334361720469556017488344914109985829365886465316357600374306515536590975601823041113763940650524588605062023595886297040702785349663957935064318249375523853939161377625111511263343221310378033468749335940892197160266609955477958214017615083325848298757676367836139844515953911083183693958866751778843692327790860073641597328059044114804201023881923968043583276694206099352177846171176363624166879436579261548539837049283342630323556194875503012388960268210990520854148428861706098944540206398466668621824562897245482222813259862560626239126612818671178361293323808070434163058394468249516950455890247622465897992049500981580759502374568275061214915405170718450994441921886673667848890995034739680195010206630584235323714841102940532554327095078167384892975931055117171180055318590725587891809559610770326557057410081168477818647298720861377194867351934205352732844905149902365833960099468412128277221863583924144932036917012895086275000395492803033211099744104026479816797011425755417400185268533924078771399404616246457809086356117112063663983204042548908799598806696987517256448673196438475779427495321501490783002866944727311193612938972561290193783866396815562336274418341238552485386817135203415721885501336367405952454161978590679351820628679154799932490593122870227423138424998463858193075342720758959178096695358532742024631988660356926705236628437318850156033000716011241775479305954170900247993134275644876072952156476023211431728830283482636714926667317409239056727179630117075623017784306632220499236112798884269626326688998012511143041709457862859692735489960920484249355841634405206467652076574445272416873195910366699626431239333833650364574408282939685809940111573815120764004871981555145754956545940392777620828287711545750631035661500588788383925862234732266482169620654375576189980327109503496357822496562580109041834579823565766321969306161789790227057123956361702170967325737107522860648174911537222271576396960423470922285619939663663589788669240810548656423152649094629526197127761575296410021542515122996471532001771222482836875403228850803818737314017890947860280290034865215419162126526221341685521645217763087015018241704102017308604102117403077267957275116674517493331269471607304904950051413032925306816759155535271454199940926977137037502474890000521587862545782999057033062298424261687168627286518220405002536283139528716690964078767646124021097628406373251660961609500825119735602068991741209244382146719752758978845271507588798513473444147940070798032921829769424145207183766691333857539076350152693139101717991639872111806773818963764724885846098605610526334670344076279474804335872493977983089505637463323105659910174553615637662714331421104596691076387218225936390263296922395590545340951782103709506561108463240973736159339354830630450580716269353473563718667582584409214794739299979128331573713792587997043999024140469465528317159101510648013692052398339925501071404430776828495981696918944119066402539290191188896096529546499141263351222052729728507760582738247641979951289153369912344510608648362944112150335263584658381428450765627851485607662927814551160742803235527279391010116230467457433208817392971290133184157456434125485674494075814950942698902307996253622276561553103383903507378060375774898043914876200211390460729868872776593481798492044548970169952003024019175161740257486451415722866259560978424015411231032614229202453754063788378789070015984964317301390567999442480269949779136812081050588123752117197639092714392904495968819661336676315790995792123250597920832734037511509136829873401279679633817611903222942666325913144636426671488709852583267522500952901334760329034864722257241919037247835890433633653835964147491647601705301931958026060505461031719100269016244738262833506602365325186339794320497960347501407602858514494667825815629478934673800705634831518929190962358861556360217589099141080273081495418127913276130059811908872484992806076612170121821982138582610534631709767956694145840839645537873595868031239295306401106370739118978625373910572139459786907796075511372655462073860981107230492350384480955049527601787303836013769632990201982291076426547648866957025850913799510285413640659554858753883135919204488391909135670091589627794170343684616716065417565052846840227099652176604605336017446725712068155173038314377547225687793729532555099824671683861651266929124552430557414088463755530566663949723319303907744652927973232520070942520143995526248556811613987468460691457027230881203919842265421425791204325745353390005016487327903068946185086116097279650083457437084153721729704522638358383847811697020697363877432014362998842120496934662484566579008373131286086375158115362826773084624550979687148836066604290155138738618980525334816619590046148645527918835498851692277325524416026151278999403866669713016181811080617896112897140952446868702037766867624598627124798944322696015933916219074963725710134047794163774631231325288612269566439942698450633933574756217263139121389472625802943492856853661414315343093551777464615848784150655592050801876607877000010362955529427117404827187946069970098330118276640785836478425032611266812713485935460380963764672417675231620726352453069779655289711518117992417678139477537528996330644358562673820560805265937165899204889798190582596844542635248950240746738650833810573506913833604503271189783303214691340379136786896295782112113065909998915685550161769588752162767687825655164497754402764575184763332206483910362936383735263901506931700963322032891716881311061836425358273344446045386630946832911930941804888257744881861821156394427917023440233538741671298003590958648524434542980666599969764382249739253812936306028991666487239748855738493598020119181663095670499817205636747619044717832350262714537396080595644997256022177544151925481507930286708860244090872332719631806728710432168398064261092673744434597705308595631243375811408014250706999459425542710475103398063328212120778951734647104840722541650092782414399651953031506437347292224645209429371208186217838566262534654753999700360473677178548563540929859081832155967111488139779568080184656262702600449339741279497583071195695945172000194603747724724744657834334982430565086853554674036963086933101182060905868812627302594866909510282665353989429581951036116817569864323643161570954538499122749588093618743013445556420839954089787170298597621426133251948367682596175987843435405360238096935755582503033507538211780866638555026302774234135882597852213306327359240319230256259542216709592817692728492652873443187784380218499592427644218661523858343708436089875530714131215335560121599569983262179037875342304597319386488492970341490526357228885195119171228785882958699756179121333035265996350965914794028925896900692723521386223535217283023205283304726894869118876221256697310773724957995442391451930144682467603510076547659902858238370290709965160930202535701946950162069294237259013236713767327204261375228147053286028795045554200116488147927588707035664293448388847077987768863774182679681780843932580647201908620687766431683298916002809832656911278767625606320024105762544330832281722070594456438396310874134664188579018729128030468878386620450669196500643465378879460344364975600112651879422375005961177005585112126601113395681884798710059685665133396476511505719393494344887166144022386419004245472420043254003809506598162515669047210793399693338881276173155946536681046118452036363443627017349443156192581036550322305565782578065218697929758977041291367760049098701772348523929257240861807974469154247775379101861240762375013515568153313786820953577052898846007907133738483448602502583174770609790556662189684073497841818806130314297212111520691353480888812547621853854908644494917794888092571116563101995615784942915305505413515805698871119044093638927971668322774253569221174359445780708247039978981008169365760222935679555035267928144671964078333934029002021701323064707776486563918791138996298942943186526530991979958470600238684437743428913025714573534435964310309513393073141080034810802403256472034320234916399378730256282541231472784071036286880513712291804182973690828417424111085725522269013270158359697902504580052087655205160642573689881517963087436014476603837382113215415890839143552240391623610577274446983980554289216644099490980486370062586892139578085199014625185782050918383070665948381525539063615987470907425037929071443669989807441088721677509307381412600756144589608337317126028383207102136906040004702123702648630009895330460329873839218464483406128124103829318792392050042022860586909433666560443887226427755217046905175137098059036394369170848429964394510923564296077966419413769773225323897063549921875161586593483829471762382612525570098496643386461633354898512006769088063617738035151529324731553224139359627293091272174566183888780383241176345203646120462035992309275334900679608809568293800126161133339808738402656121811140332812149457105340703213865368211703028744628009808843401557755865700836174725895124180099039752949286693531935970242815794671586804822892330552679707006039921238708585618685598500057018517248481898688054886549387232182220159368409268815605987422928968291017996011016288999929466481071151437560272889160206657522630333752146736169942666834850916941904293295081938983040644223244389432886476627471935414334444368734670646695092141461407283968580267436316051211681139873644651253209820818733840481448539788595154996981070330933729928549777996985419764696076146078034777163200959766043799588174908562404010861514339900496566776089619103552314246940141058622026595564889550922669277062893696003359791815399427861256174465860670762143403808475192724527899067636522582747771876046736017157076274881255089745488378662931975299634612011281667052333457648379910534459992505673862512900915865731279488916734108729632880564565381736888092957619985788622709727366982330492024976572101970775791191088022812499776752085912569126267349676938580067848316991492020435767155629357883382021985163273658467154049757792285483284252738456391265722188858257605739219297445726914355342918093045983878579948715332145898820650157838249527796791467755651311677036480326692951255414760445375758600503538404196710937860294339274263237052233899514036427940842923742366872141365965480771138409655223998287806877703356432803070934423460246828992569216940440436281336220701579402875469494976863084609683951987255181908743381643182556746047732867800161237821538328684549997342137691104198228516371364222370848185759055215781432658930544104921550891806163994647686419582888663942524919589821278066187243283213138096429202987283500247934868335082269062939662504448803778706951093078729597629717872383566298557119530297626756945768291941566311805543721806935203550476937049417224275050096270062808862423201998996987234285003570328322125554393177857873704590496122683776876877242700849162586457811277677211691470145100185375136019620967326678873690738890561490243664226615261887780713414975406150653951030966622857146754201465262485472231040162525512326958608304524112893962232517630564545853500258338774522142455676866248967572641154543347584231776059736151380518433356246429067482856081230531703902088903595061090324385084266905102026386925797143394152233235511995575926418738687538633808813844347797763324989388277330233388355564967123484099930171453534632234386554498673727907892537348524271406427404248483902013053122278396143217110552797686065707001215319139344087382766687920909384379550667384981382742919289387736868224460842585926691968067616570437444882870446256442448541607468719292860452051196414713122881604466767619912954616298377455183076613341871212490775070440478823909090151633363356990479047230766837283683444706317097176152137128471462161492039046786518429036173757334149072398723055373383535321213786811611129058401356126139588369670145515489352991417695544792412109455770279270872428003672788109572975014178319436144138738267112302859404949615233713244967580886680218871634059687359389922678804765323660299630075184077520408712000513299116209332382971582710197073299467210223519025995958558125643441408318772775284593162917553874393197528985912082153460005311081361904249823598815050393668959423727437852462505931142206503143598403170548606077612770850046935497986048519941763493816265409148036761885937066359766621332292436442250259174963863281794294624179214916863133724793132056571750160499143650626649705650740800581011328589641469259921955228584274780884747372753292046214771218953850705071021366639429275923354442138825971831069410591946566825302180497301421075814345670424911769144307610439894371166767647727042189262302515843762688084565270866305761482667968178113693677398148753676823041809927084548745929727040563455660612560781425484491139771825783587799063353781367019086431907509555786952276982610108015612573864351475822206434460854614400098720438237925553870273422959751115923404683153548501511168818934160611893927658218830310803229424209341468557983009435317962861456146739964874569223123549142232404349677223760585584811511137351118780856744000397544667151942415963341017298977806397782330342552194732108429972417162730748370741172644744027026523034986996637674121622875157080305519768782083961206827961314420011674285359379835465572885002503583105106509452062609686334391658327340600046842872348855587721694354197535756264079826850951780913783955000860211291808676162358586418516389332963273484089934416314469472387357401908050624083910193464792691090042500800507831615783633667827754398299754297737991154202105906082366507150260418811048076585145901585979969919009033608427146203152377648191807911285518310671016924950996789522601178779528441439421749923235355293238771858886665102842105768852387306275294432285809230344523321031517453798746911938115133763380488258432957744346044142789775957357376681663856027083112845019539267336824950992612814155697741507142838760088358578952989516481044055410216507519289620554060930611219770623188665370415136471360390019503699716572557283243879398603831215611545108153853519940026230076607096901372222133121175560610667882910026689062006589893840680242000028572778568734767881398996610890396109802275197257570690814888379436228499236762370451196093650405647572593876253940003398011353484008580479026852033450241354288907756730173560880993151803407888394432929683299488179797249496594593417206669745762705874699772111312797816105236387566117804823109813995874112281316620892085366575704779416987161032436014518561091798644387884343723851147012425725704833357112885008928948676351630825798578773979222296974509281861483773688729500490293235319494754725394335688447990099334662341545075544829020117830950368810083549039939097127589125083587353895880046811787974459539503107842326519435965819028340047343603810395149503653809906995826954490641483949912055116668841154304040676830192110374386423374209406631810909731223704176210542337513202945223004361090282976371521131904070463894803511922178048199757041983894115227363592149730853965673638998803662841523247830558128873700552091616863591946765018693311570370985261177861763622403446676632941167807142182966279026408255694449492269935868282041070259494876301392635666113531000998715189444632288900613978082892656613718569910834078309754940281351713855212996963976080947620204402275462798566985101911216607965957744440914872836120645410140138373461608179023751246413790791426417983034809841659440485759662571175000785036115062848849927691681419062709412844079160527658977086260089662490474251810447079848293495684030913434918955891962367261008695469518238694631798782442436135860389176254607482287351474074830158507010681478106391339922292775442258336340535114765804874821777518123100763454835500745166000893712347728314433832208797786456511286228068593565737431393238815189036978817955992697442833054465060553579860024092262294108920729162715667795314857220517741634878785839236247681713849840775440124058879616201076999609183766094218382297986033356726548329627810050174481831732028312567241809366276056814507561802043790950236767810647834801971409583083186098459715416749610934184537552000440609015819692973732334063736230547597586813244652927301226562176078699006297214884648870053767825043834977122795314903874629265347599031152939866562389541051844309729583853699883894225510644948306158573878656095652146037038363972170837068472193599985407750103574738325895145614120530153921455389834673273274599234651070132944145368560595221354271802878278301926495732340218424360428007686969997580009282642962725953747791176203880626467968190957075507236943304558170628180913501386520848536986681321342295250264432883182111863998452455560295002443105731246399868665436336961547402617670134687448899963758830903000570886268176655970810374209295669987909615534269544276853773826755630166709389522238166107234821781580468869580491372228928285137491562830998594468326047723836806566216458970848625114890733486609127751467994588030318380035526265669219451021970414643193190605408755370250329919360316509907410883654877259983047183759841928786924160174279261512172564045456979295113567522179446136944043636304341984934964319816973017172570136163182449911149100851766403631359146374855983670101986741034866107546966096280761735385002164553409395159678978228692383895486193212568163114492473408493688083628281187003675129342349012850666807757903788729387410162148053636801157221640883325190718870657784698772150850966859155291240721950598295169833657222792807925696487464684760282018641097179784962824193794728368505475662635991996943850695606835485377878241457271485791864828725383646661791939131188439649332151379964163272432545443258711575434108227947401723710381660045380486021158679900658431269093205375706490986918767562417917755747361903045096633444432904722810261749122678861880893268423712631961241220949492949677394262989340482541351367978884577313553971476261073696167510675457403100277039500123119675032102346836132562844654441208708481752571697075571729953559211280382130880928765836469796793950226045802957870321362185674115059052358349840553849270502998182497928054970877456144495530096263086915838946727496102452951982360683019811154475558212514124704224389768969531094975890093712063648933455243852483122513133106414424942464491621787055355618401944126707479443609371513088448237880708573766440160104146947688644373631169056061235277645821453012255819352710224759295386631212229379096446911528163997554216220382617412967605106496673147260222509398663171176858492103892278789727580998610176810348105270420428539297813734764660897469727377589415798649545485338592224202827960862062325821317479768131235542980744624670183392366937671244749418623703276984678860468637625532916795284248638512165112991715577817825466457693408222602904185518584357895802150056400366035922743553752568883253742196550571948633359162250479638783702510151916056927754262938591548385225508597191785961090997431782295476021330669726277767551675758590384718021520117716399790463126286376649855571035283586131508385378939638913999642348192860201599317900561434807547763594010983440063246525249852271358401163227087521712157987239604089003842643387582155772105050645061931392372534349394098866968784851268348625608796251410377367529167419098859254121079481299980994397935264843799096699689286462012160917100684257656904089448589116482423550521142483803385965795286683779001312234296446390669044681967999561127482668268250285935420212068533474842642703658850987835934295641062931415547323584981910466245905325746272849696463597474077087223212738932830557425204110838786958049102870378393272238536834504499641840381089791787907250432432170393542333587461846629585000514540852335511822950402790617857694799484911800760236995488648412889998726893076910258026416926372388073596457955344016271652219442138150858782424439025064587538547444483992399780575613456757834646247405626494970019999305772384402687104088707794528141599101390467655485001229157031420537327156183711593523795236950845345986762171436275489248620245565077566399777607522537574842206354796363264823030957700004919035055648039675088361872959624919509933751507577037879473525908593174354211242786837865680616206300680967666569200705629874515360221509265672606740494705138781667380104125091028705650300031685101085001142961617215329738623072655643441584688613107867389630211645595055005466714362323307324081167562537884185390987112566279896993434378776977694460507074822764032040131663261771220132433812849008212228442357203262041488282420260678386092577174884680736499735312003726000150147473360674342769830289137947851065009783780711363013287608011340617315286545680667912211929924456805473573793819198283638516664769833934339929611331643272024635532054624514032433552965371608511874729900807921424419768463613925256846314248999267542933930399094907760576867238339016324041209739871199406368774850679859453126111052732959018820652056989459336297081654575219428943171325235851716892255892425437033138009316191241180067879000570578918298612426550850687433897055096259237356514895426755942660166925782500353558555882197153319344390149245725051422767857595084154232342184520530892523802568112622126801464462873955111854102614961403096490830474451530990775827979321866521000934388702448905343358820908379009995305144510919996219512251734612215146872200168482069128581111605642243913378045000738350912346248021386347535778100213210661557462660566999111292729733512884729373337921724039461960730083195117435130337009372284221394026235261729682839820646167814681493243085181939798950715582075067204203429612212613286761569498014475939794680837576135598195831290572219953566909294379437718237876114613979968053545346088242555384815141268810627756272623081974592247836427712010664415585136575341039700077357670591657779317791597084037252590621970393166251197580796785006974151644758202713033481241670618487720837317078897178798578729813684778759189040680948389718149758881837060954974755852553503204611707640508048588545717489774186067930247261786853815896120187615399808569633319393306051984676359891307668783376608635655498105355434216335533541384091949395623927584582801761787049343814648711135202548767116605991203651987695428014423142321785325204788289922439892046223393827797365723606572515484023149597025248408094969254602940705521639083566639117244160177743701549927512979469687010142983831754690109763483791810288261288569519214109001985426882970745209745927817072412112938448322140010250487576390579461700262619842635197679508119015760195749970999896861163095221890352655730898126276383550457682186882201516846539777962507660997053817929204080657649973662763380073240019937297477145370496467383563265946089503708927013754934806842075186264684852101253945569371677810191414111926599350145266502478479077816558431240016148861052643547264955514483171033598024787518584773502764270856573444501059984338021055227446996959348019092455905346402460884329261042480930585386303917211701198227221702808624983057491541954178828234145604505132896030882069068661723047768791536375055093855497224062593152991097293773070047950786634643165926417634451027353759467990549450310615130529011105590818081494828041526344860978869677596832567270958653501654089409409291881030671673321629350072874996452342046317386835346092845220022003669043746173858094001612537751548089671629234635761445180955435576046396105782818374648893439272345719848371412874780075860712318397581703182498750265140837661026596462438080241141862702642677924215137125123962749388008528537934793908764460650960610451060196528462886875707062807340537803994423826764030095050933944895322087076951491126615708380380926300256654146276710224882221894472868930501669793883898387698640170708241110780650354357643155379933413984067951738746397930689937899712118817389198868352354596897135260612112346795466046776545034675160985485293336981475729681628582789026871154244004789638665245078285520328437750836220928264136624679642709819741531559148564738213166569728421988698986838819855139717151878697563772952712399176693905287769008217204775445888341313691404055483060073225812965209984382262997588277622950892197067567304105206695200083369913756402685243578079448917566917455308737500602741644078188729135892863055024905345919636288665500580193151169057159773854958107174023551603493882504537197189081369680897425479497163458546977865778419218509078131581089516001326441577580230268546054331539262003742540986213417579088567980134501365655861908730557347417354376801182980852286945328091503242407545517952018607511868434665391449454153347891111178877008708668665166109337458126658142223513091118917041093464093137780034262584155555826506513370390196434698863805238067411080789506726272428317951911032367334774690198125293427683122274781407894436629985294745968264799228370290722589873938629146881673667664933221114275073642722503190037938358367441544227378483809185464512793700042603753504242075619455393763040912026400823520469539070565253429569376199037334577935987841261458882080471313386952604246987981839149264346994381436464192638510910369303251026678082805455678855339661156975803101401225570339001875768475729013061633795310937981513574731867399871880033849491188343465658453226598523691457801091402228278929933115789487097579005399833668135903922985190703333682088907963478298013978745123388878362851123936822859936305810681936816194582786377474740177832114845702883543061990982578032769654720343981556788030868979218430975367160619944724615669433228838945451778309829144380618320452574873052511836258397002870176400119505340703907114550767877616361079218255463194592851506240797281198178759223748597586487388326453720121828330784210723380314864339206356771729838156577189251415421207318092575007476335042274522687645144323938836452775376705857659621625952086589285839060068533331553053569268262074585905908882871718215342711276668469530855583425259243479380682779772651400646568307622056300289717320382759938028728902380646260488808010856105903449856608750707416385372489482240950228906279243251663451274721361230142264907673706296973861032254633949363983594279799716813669479621520315167960690271593765366280757571287663805779137842583428908921084555026506152683515227428187798189958129599925237365848549545944445965773745026581815696867307374463777477410338885501096182346567057672093447423816385816505052089429429779919000400451744132728381714471976336099420934403402434319857692209301307452434811565799235015930102868122474248557176492421789237094935706189570233508299799786333246042256229763619961628927637074791927744615272873740040389606288542387028129251329211155515782997648931621079913841623215271770019517419706645566167830111007034270083279476548267367691397292324445944790013097962756708724725651641662275663504026234560088490594973816276030064096492848735900214175751942447226681659508451610186209321373480720688492019934184279580448810568661941514140187282778028435831063534354657286025484518607444140357818579724323278966362112752216982986677204923794355043443103215075023385905033506750467109252893098346595083207551229298060756305579753019955586222384997943479951099830112139384441628471442872089470260419109766293508419890190297294213920721473990081398679687451557812743398230889585779451566001041791418889443562216918114193174534749968807798261094537772770721760433038276074539007588490647584132198241237791088248805645967206424462799500213570217636642245727934755052592224170043890046620708395997430914041252171918237043793044932640194545557792289134734670324799576479207379060123453018304031890243598638381588739422697178754049848971846358610693845523081893531535082517633592319863625193990353527319069041359558429318943762758471778280195320586845659710325451142791130857016768772823235329302478593360992503209947121052192977546959795511843579942570618577096634818585190252580876842875767402937981833810064015184467772538540492847539402363670377520090244124786776945504779594084276067104929132708739575127438068009525043996608449831998935913134178510804620500540867350644953988252116931552875123769456017620369032388452419504321547809150886976687225919318472473006210814339257406308329761482596264903096693638037482817137922254705825225442707056633675308113893894994411636362737205856094741372397518391866411865771816629778676753618176901616722223071819509598588731205232706158820138101740499478329191180119243563753199980699960074807777745793349516475253891030178276598998704872275562218509694133752400004133935872769185189390500144813627533669436755956243401724711966314109983313364213104163528315479239748832706475805252869945952806404494324998891392176069084097841250995854164235856603209737985137558407474124895406884494544713291208022261807987714647688203611166010526340762548772413887051519473396091876179030947523998104301585971792135139741056489254622680431939574826769821538011599365581365829430549484110296212640254984198948271209312933179648794908751613748665713563797882185465483538242480409535009735223795100141508722187013917778828574459421807044639037460203125167786919927391173621214442942296092886114551217934372096450792288059546547640071950629128101790701041298027698209460587450443748534039780030012282950415197478036345198542671714599413817207140054566079961583533151767387178224451546500755010878843389082447809968025321363411569426863278355115248549452822713506865101429729074587887017044364899370197851480159885483942958526703501240248386608354634792175437358626425879941219244112268633532937402911930195706492065155014917651700527947854849842998890360021061516441619210339001586653836082550423563042019986228052195683983377598819563239736518005954300730806290130538249244129904024912521721933817356840932565966834576219614509881759625723100082110948751219061622434023480558866538155894004050358628834703751894108487920980552445567142159972300424164359983921076989272447349289004945192471288265771763201737669786336600910436034385100572122588108241455062362240558099007414732200075131348771866798264528978491794025745445463442822295864060346886265744014483618215681036860930494529559793560049893889431093711015481420655646561680939682603841494301408714524783766155870900517281525065863722930164265647459188594724435962017407246121296316116183594108948352113768251418798661579628696901989834403521384101245626177909257440284341734232615377527714149125631516590447623405578480581967517264179808155111734911133851225397945679128108385963603236229741287590710673579380348158158788785155138349082282058436556004785049144453488776748512347758049283872167874456240071898484245959590782108107948374350298702626219945085243615597158606260371170773997630873339974573296761460940589103193985104289702785751470886791658725750469008030459993380035307517282861171225587704812560808690992973093103775336742531232977636260500067060221736173862836085865192252310761153722096308441452898303245251787375269724903024251533741563708224229965686427678330225870757794316176513914561889155096124335083833046031943669189944659635497163405673997786457901824863982377851436936516326415699623575165154536218406189010567273838359960194382729091779628451123563471378619595970093525308121245979812907424314435556245258415107903390960178624330692576607890944555886944080255320951877972448190006825586392105808865048242726777518176255097181579567685394755824526937064038298262921386227126960826705132972036312456890691552269313204284065816793650411753507696012797192610653457579757722464316116973933887846696914726157045948284408355181002182197364832183241109544573516820196329651010011351566204687150995518024194678235795439424372695288581247000739880493689137891488172811532475671332102797811255762233741857012697700440734300911098205246512331373389745193408431926218852467018288598793338944997321865883332821984895875167039104130862211883459446197968353206598730637278319652427338767899522061368835268253522360692121776960392677068598577983715675580312042082508627304389623479036526930105524848369256474287396678737329972404835591740480530230495333404610113293874649497644283776632190887658858387300188520867294167342643247755382236493954736292556495436824135845256651474130189260301625237918231617499556316691484609752013709400314965995194809123955872676579036525928978035326544952954431357315247788697308092521791210239976521774744670956731410942414835128187955683044403694502536116397777951601128006082468117337442120883162124823879276824005622918151466209567549593158033989187157812892272411551946875898921576618748343045893105744862541034558430306999036757537777507800815263742855437188767662465973093465525057902622584838525102969295917863454296030391688445671088272466968454830445908968406252194610110841199286010457669730423078260628081536091482312838551400414734056933050308751518347868742202288292525708885916677064992668267797239608384254970963468493804637249147587635243355941241652745146221054452563502920030742244871441869251108866832278880975049300628547942004751861492176519000139528154776820922721130575702347953691538446153140262063270087133624426109743486386300138232601669906876567551175832002765266478280789606357782603445611115640724725445059114757530675188026526297477165943625739197019270032121127263446031236583272012137629876297404190306979182399023828578413155462985681172711957730849477952037363868575415158558018936618304388696462305250323590558611101161886599814774975988312878487380920859837871000031555324743067415198983003876277975801340665106748157698869950434636496587711396267740683423385825937306005366719455720807234044144730868535295218214873795030894388146851015348587998204302307024540698557748233798720151181677794131523932433587683142863294686407431469624787184399043624711363665920018781150880064755017618639254158511870427016376138971552669796424808297912488350791351946859261931539326211919002680875512741573904501755355555652607216099580257235561332044569564546407775752150521149995636526909078768872764867393877739799095133234165731338389707456443451624284533256033094565574440688864989146346531801377247172807297107215783226404147619300633608995791575738592342765802470469599526987718753237342252130529198962793016048328473934139662038871183965962026739530046116020927007150813993062383720283919413781599285514728942893224495819520155163289910363149400256190133752740923545594315392484636244646047505256609815457544624913357395470433102561602677174673582645184184566290572711171760064382296587743117111557232958010120542999383253218034675967503718540547341516030550658223814482961780892003130154088703660570831751977745813228496061232771877129645682621723930457761874431459067427850559346333103474339692537023195328282805440955171236304558231463683396914685067496540431054760433769697620238758763118992852942539270658453639401511920318421135532694248970393971352857819014822650770742659726207706879122692052750345131541442094530534544935816111883095242843149411062232850900816417665257787072489188884342853505390295083437447078343088750405552943121863896765126493225226081648632284715414334236348807340231206193721899060553959797692239674461047407646591921414446357335760447998373118240693325385302754175410782353141202442353292195457322897272683695380923972256690020943464866440342020299661455526435822961415874258017872544589885847584169809920456178789196023153481578016470853161938031618392573357687982018952058909921661591471199361885317193411975974910147109261500898462203421186652931701811140792989338189815053551108617965711375460163383421109936736903072567357467162075743284515553786647994792607410006057758852964546692978538859718640126533852582083346176272564468075939070833538810141188306243066438680852853549932598356487588762857373345525202588035801783877409203741434480558355561933491162764280425361522415401941701491445916070252702801590552767287994150499233648592536857949110811722326588771677091006196722933242936676842008242110291320251869129283006351092150689552431132032704952451679876836592380550949666738549822501201449145158510994734767034052559218172782529285664244292025332814413326446914268201428121177309450865585616117619580420059730254536865445146573644233443390580666006988476244327951834073125807693892218911638635175693613034136892025334838764513714481484276315948423874139874757258288026847966831861725718268132630110201808764430802003755240613103688445000737733242302242542206403077465552265015458551188198807936853893200688973187980253313531997139197047321768976230361744902847124525677974361235924682136101513043195192256638949800013720319896372716565505197267416667030785786421762044998155414743967675026601355515978822994828714972543984006150991043795318645377474931905255895847192791483053816857183715037324781520759128765503963001832873388303840552424921477753493731617959507496683988255711538726561575873298618412412667853463241136938388023360302093978593413884388831255843431271023582900150943923116674258702703048287532562874928149504270794005772531929446198964248583810166782408874100373949869847018052025257383564321762032236095019835334943329712733700729193896063964564245735509944526826267496045396389518378331656513473323012870772487043889492065572640835228480165107716161046840519164874914663677211833983815313976465655162077536754447841114782482183635238933665765204358322571623338494582676527627987892629241951015621299134996591168745050472772420172989401333692784928669785135426113908562902934176186553634207793353715720419495407908408993746760354838190241807338958558313972853833898174545032110226672916866008031071354167953783601341327799293140512374527279993410568853300277024218925321612201920647010826721200806670479363343757980710488945686518961107262911011242077476071677686487619723476312105573314309584713435518726743300582474475134200602748682265765911173512010633184182210383923294582650064121047958446043120278975233676899727326868605089147115918163927157781616301326047681522921415633594358586829945309833550837856430419473038950922146029403026956808261552251357495702626097984344108883936849926000921743164851088067807921003595598671675581935080835344243497400016430495582750446674509345715516784041430693627654284945971350835183619431371431060725385598519108778830729027827664991999257846526368838309623791158391912257493542145426747644296159955901839693069367111548323570126032527269008700810986661139109363251841980446192713199584848387760517220343599101366770166326994608414787829228105745239169845625962619586832152734447496704373594214828809345472939769962316540504897264430357917600254142641626535983029757170346817092829426374714685975612948356372315062553787519965861907792497311304835913476856828605325458657630760540413436283090794058697170713468204173186244698453915647083804212272656564539692877942899112629520707395278492126528539985326509733044235906042506180090138548926611338407351627157752658774747157273268785886945972778504577363325696235462328133360741631448234556379481451609068745083393114432161175445164707727961803000643946820081055520623481345943078309147750379605618198783971250381284231377166227448225774654687213787815319582285248951362833153546504536069528824315336733576056688045977416433019451040402830140821680260457065253032049249337240323510637505795536624061866450315861653260163606885377372948363917446930669384398787339837946956367650168091597942261939724607222410742690035935544058092807312984189159564684364639209646804155768395703078558675208259080015531168099070387799289468649997731712376614806633550508624130609128014866829428468277470378551740231702733655748557092068314603423016845061119989266157066275925110786924488503132080192177592784664510380420369883667223812898165896767122972071368766698686149576108390388514089233860829205501454870992294321145039586292643479994980848850115385582825122670792408308134170564143119670602160220589657117111541347157154909161395395815399909622141531802042809311649857985404033584328976851359220273222011639045034149258143162888419083195070737965709903686614261937894529116362891940122701551382505055216845746211348830716823903494609963601755588839489959502334353825522288616599318177445647783533376940728577826787190972810014681718923994127957277996513597570034029403868806007020608397045453624957446706884236099257707619786590448789040912846492620839024558323040730356578496761426401096664613979384732250677975871403334506139113337648426918123756467587672758507102334643952104089841894108805582629705062297300457794101410495262309006864336240330908860787332305470425105680021708580380585923047665381514813757485922788972894420171775882808831910217254490998021286731631564980516373700625795446267855584738254753555931994344662431789333497500829726955294477655132624165596963980848769707289892498965626968688405640156427782586266795581322646757182143891966985645138404798380257200408026347751471997487024193934827304908512967593005299525255196329124040020670301108139052005817247394757540344801615653627926577150817163750926194482236231130203512098729594378273187205141487372332568763502396057346256035301265547639642358455049211787826315455130121013719399494174032049980160381497249841976419071640336037511224384278673663951878685883156926594370385671442722643526191981739937323303856157542610192597992045397981495670508343451949668354739129456530723119800255341935947546244910677636306146142794686425312329979099102889535816233508137136516724289986588890199863782040796658913983965239304976221862241437722196370853554084428584713480377757200918676430294469818026611377710939953532734285122542048146551406583684896512671020981640877519012789273072224818032944928639133977153807063190925484617816871656469421762241561373684714737915522378114929503147352404417206098214884612506036174686227598305542600417265589818848220845409389954086211015593544107071855293447938925653830900412045537816974731726815421218962462404346183839605314088649863641219173629528002412066052355255964232003231149379467811513394630143005607234848370306674980490132941124061258843626084158746416762258665818652392810252403151970451208696987540764695903930380067600595213595308100672758183317427596827466646511480330191673764145618353689574729113841365807593822292134970251960520969491968228288112501186727563881947071744451822875466204984969625202234239968402003477589948974532552871698670863417127268262110840630699957003561037794863848664217317888962711255251778082499930973076023846017007205268416915041275810218399026805978270583978929890624906000963794426478544114652711896462958431944618241262297629232857728780620459109168057186287252360099060145040784564919503487908755189827589815877610089175645004438203234516622443310738653226359672090031235527612944601472079985501286656644199981832266708744358608076944686262236541374996211721963078851982649563779260540700928528456572873727459226138503259294937079263526003157193859005085946169950315238130132332200941306518794621467891421100465552535845916984798876680155281545109619373164309271302558734232888920418548195912247228987796958356421951605414131964331936365105038401593032988909590376368948808854206613590216533539246649328543207165356040969069143015294069620991000996431874661071012489668922013790616209160403524515203287912854059959958464686122125562491007770936730405198578327830577046832781635342150798596720570524155438425894027062046179905824515335730288000839825909838801059062815188986189234661203175316225023241131927747078541591544333334548601835028388164458540512385258600722384075214270102386508334405748009439150064377865724704396722846067414366055055376149057676198492432177107117352361036670227375687095742441941613046099478969485756976794971815701310171306366724343238650345707952982537837793044837516026297243217159859273660860668439178358765018277518709052882689448399526713195506306045455326187558267667323006360164151979242324618025706565617685909163531056606387121564009390120735450057887315413921228444402253703696386458359607211569725619147024021389494365197064748520239916666971972406573983902929643903529271753708369915424812289761532008050059721812169706375747188530116266511524886353493258645750773500015064634400841316625416426414448263044147464682550069970489959257458226017769084128726139067679177242515822737617408600949253605133281145103010061770374823320713940740891598929399988952051378775696359218764036740510184118202776533350555040517296067051431860585567500453374019511965415671447786452010589341027128179027008065362364178230140759667444460156447840952167884976051646689404504861141970694039584140102360939324562320992257404718350174812984988650839809544725657748999979359540589380738531505869607664377498254108218957899590482999225010503368684795583465905119959778428273840374968323411837793595222757394007817079273868396737340933905101540376158164390662883408679578632792011314999194076700280771758441219116722532558408454641782585013402384039404988144722794997405229687142835416142496248812884857889843174130477138722699483315594652633527786744594170525327508154935186161675716351948142550405882699072749486368044193830247660962768679785996409303644076865577535415946598250726603452169950213509111816545746148477852245100871204274659248832665762479098742208203678720560955067126131993767086647989949278386995088826085625308267370125924159995774994197227919721201569880841804568265309639741224451728294060493619338343463115255859920281387533988736812705551788929380132047125420131719549403950736472728576093811079014409847739010288751644597679488296352917570179604554194588225891787567435789956417034864811011823167185376274094630677565086909316502835736856176853829942003662760702973156066434726942875648340663007632409302178993510419540169741790487802654715920061333122583918474702344827035403152161854599364349953711461078209208806679373091998947412042136613640182233298081397259504568513404457974062255986278380103615700299139696138789015971663904294287404389497481848279118745601911041734060681117603911305168058333770353009640459133290774670244044461241618054010913791712550830845593669394846190323842601990527180321886596826860369260887078786235577847032371880600834969313582477243558181058828812628163291933887759624752854632954972295297506308572772613430531344408037978441004275425121163742013827128628646944292007946269753843323110648289726747180415841955925925714335507102637431136424949212297160706996695584745065731009825655111114552886355703816779116064513060909514597095234517277333812647502485904872429589246070465330739285079839911508950951257377904468223955410912111849424944727732730668812534803079532898007110688635712848163002510711048819641734990304588996044926963519768604711245506599986326853131075391117476653256601422655668297651481185389473486872692927733800335141617545954581636963857082047122250887471164516525551898487330703670471011947456711422025863953667242037302647726566950992514220982657146922227323930147610897714164132039868744163589049076423418798935758177530625980656112070975216486443839239279900990118719623026447676913388780404129973678497783964390633629759641400140798513802739980752443360467354039389540825459028369797325929033007161160812819419996975803038691492760251131519118255203297214711319636283214433483905704486247696934119310670211796829071616737718281282243838281163303560115933237306567872328884967793156958331044678709394627441343975656266601454236283410304940815788379552894759674936366095800521375693056905418068068678527263435010954820202541982068070742064231638532529133093757215078277532114374526466296392572269410780233749095468927810561350030489861037320842989461035805770809426011539043900215186254914289360197980136873851125529822254005012747574408899774173637545320471333342725479293549255078921612461414753834742574913898232365215064369806744056879533378979391028227321213760047444795467599275811324864298335057652072890967177609784250865819399662056939566931347292439268984294341790232615406725428206038161485910320563785138592081046969135739302090050739472260386572707510536277925834999883142835118692298333250373992923518537118124153303342882135293664375324123532385896728254871938015815589016321913402273410048257258727846995838479960344160609124832832290797868279755441643206666538409491329734391706987859423949957233200845643151361066589811333965335797930649130962262717591733537008505849040427680768580939840308841713228444687480428969197046949631404145242189191589498843472397802479821612269285232655047732126391306917306935944159701873831333389510512884187168929183623014195639569240650527988979659749887786870381516329710013862093719221539151930108294791383259041750851209966028722885527923060683592830911721128905593387640854856586100409202658400525510137561187914610847061482248960945881641935957394489041320577307244979193892474379291916897408304906337349677852755442075935301988722473241202407771812900770754002773330417088638290412793200965580472566269872145381964497451209042522152358752430366447241770181742748008732961995852656460731232083351852950936623702375343397186748365613825398909663911202330976907517778318880224852309009724306076799660289676565940702365106235652583497692540813750661250728435036881985495690909639970731399098191723129430883608455082141491692445809287252525198502237717020987644379173134886496968541267738423064845995352107794251815229197301236693652584765082996990554273733634434512400716083265162975144061324452177412476803484378436295779955977490215710893101381260546563659918904519129203731905198038004628113015367995698693507657718682380960446833226739660877909296078642669547796212714204481358822532657116780319511435785223394630759120085826796802956047165207501754057528293157864603048016979913459974712662214767105745812048907736245082108437244582773639425256952111746939594677122482764390744467672690129590509701804581541496915978759701690565254817167319698846562181129695917351761323642596524379830026688847429788176414833786583240398547622102621005261444463674236122485648007359695690205641609061418719771712196532783589597953604676205676259983357912115934478178322605949618906448722417524703631297025690662967078437790660794449433692991784264312329281625429196170727418714113969155766572817080179584186055976539344360667618401717249253086902226521386643040017890241171960488397041726106505974906750161902801782222035787268907971000445232296438607883744128010787097254658831102056301187287612599463832759928027658280772590246014856142283487100369192090201585445607102053680668266379895041667008081795793289736640340009729740941923339307938721097240833623246729190066254376825945609568430915446642850829004747939496787022605263715126961731277944612317315269652975988065180293742247278807951374064985561993471476712338842349108861883186662960901877451519850873777709819451296197251021897066996773636312713853156518530893991013332721966381413486314106223562495741867624670996719659496537605665990839144069268871811448393607666683769467635562695313134063308061283674416929211078477571978581536660202921779736149307583037391574309550172845903888803586251321555518665601284789035343825717640857870206020993691619389451530285710294746485298800860018614881599685365190956218895272034617175776229597341317116277481472223887496217201758910459224991434506278383323523242002978880446918309927531697944803003474074779765035991710381813241118797595754682959925197936233592650053007312055263636990217617507216081818723023991809679708093965072941920915204475405633390783287694414506633418295947101343097996741073665872351917422331844237962297015159845729132934693869586140539598127689110770992943480949712693776515183445460216360322984401711734198900955032614210844455372030731717303767344075048903951968769712913485475183906523525765704833622576504211667416965160918045002956240442404773006548153095140210502565751929954332437415895462641704043890294156520012775967519015715313519122591630400581782883509314017835581476904602199450591822210037580566899087492898625637682552674759408631299122155040037098182849488136494148288150963867674743991501487632889070902535319456982167681045239558804964312801485825115661441486700853609641986466444757283581062822154039270592680238606363122025730886586385276097074047042482397693373839650085622512490701829014291756416020662190066336969488496950416504737929010942205257499509644550908928094743271129253013490256146086184273341247351388980861116861998394691182444374375557365553792119101108941667867605905465030810225080073164854171690409822564258070697011100243422142112780704297093345289286746470061894038056986448046411372007209387011171816613351117391998227846378061515541244032410419503057452838235990649191148256898608122621584668465239156415014002148985619642139639193503078810065187572301715861092087686733379332905944133277939988751679801463635056028603043344648570684219024862673506996267172880537706373591255835728829311831570264033290041293044639937001974440973873151233692509630614491928819254920623066886055998344417157023106763038063817533531764802056187166660855583418115645664772914395172451986158747460813849299522133625372486274677886698124481686973013556530201789802464919982840816669553747040477997310535381138789854834373182637734009239789403447244067023803937376338075734497257596387994024129641920172555995173098906110497896050889191288753835752079557041582525022952589674425482268701668344504654619724450082645125624529253438760114198916989226155967157940905333998267327746364144441367294883702141507127664064220723210895654782471363560056578181401159550079879645699528493764390859012383625757326965013720686353840199753162399480308497594843432321916479014435705408660965600647696201691641612580789541180537531073132555534616431244966523202880661704127086885619939753022661566390581205081767290601268634270093722951388517253087689408519920264848102176589222069993066647004394289766553153926257938729299351174666425009460705227209661344297519772109381812056529703804005032054050672290698522515397505659817395902250083630299220581615068103756971562422321849580820759299622576774973422079575667797846041446529808359363819770008933776269670759659407136409465049309342384642044703209626478366533053155892276703663885778791703897983228967805368032640228740909963419744218487268526064130786614820849850324598384420034622023321967565693404045142937666957607060019708014454123820397666465696424843827238198739742537994017293156820171330400363629703738472700027588537376609142723242867247666800217116580836742928417418885885643973005527916607850698637043106298494782758237253519298384695266659464558759303862830710595295309374152246173912334140453966916033382769715244585076639454237181021188279624341915460644142816870545686790547679031204082418995345836578116118314206851870302381806325196561997243427083652182508494884967395023095090605156770740034649982998871772615473722743416351957036595732695862082824444336681575646899047708594639661452396841134894827039504848296991238468575865993001907814301718052114476115367365130026041042247457658041886017916654051481381604419956131936589156853789034544512428312329779682769961438550089167269529392289851410834901095974151812757935476076025445124491519688169970043552727382653265439014786773618414509097256107831106913507835824114520013532654091556277938937705206818884781766193267923381161281168212816397262856155353345441712364263070362900252027619869833448850281481875294086850482226889433395330975644131317366926946254767090180300483349485684598183593115275857785308072378976346277905499493992689002126408732087398202909674422091373757573484782837803327653764122762863597921803709694563650471659584859996950251600910556196145525567352733430593923235509089539701461429096104316423130576375031120506260279186869339192838363744653768687683976329640064080945507264694567575747003330214730177766735892636619638840816879935023827436567052876255886554422053096715923017636402161473788458886616864734556737243797790856823912134958434066036486032435490178753123492363704170213022186684079872207827514852817115935654155027403457899263618943706741720389404995138495917651952572531795180616981112971556982447938557440635000649761893925259131677121068884943474952209146733024000030237902833520224920757310029311320571939248568939547702676417406442569054170232838292878990915123292126583164130333268125818279840863945834254902144470885292773204931280963569661632349737525755246142079060445637114053973831574375871682922522519380189580040801370306780822700182658141699835629772168454145774436059254363645163325444105638890677910455886588805315942097554110860550920238495724499343202615672937208336475985419919470874137026664477601906962197668336292328983109293768750193350703814821514283126806693911630424927326912845185432231967215006678212818115121732572306209418958021725779249682278996484544947656995345604815532353790926085390167279117981886012184056919368907665885599234669781583325529584638679145882956730280933418318763254720322568052795220252119750814685595838338350747859772101844394557282688471116440346957656141695312356974372895358121624246827100348622309973061911430952992427183913280741909905482654116875196110598435375845354170563329035049112086212736986277618861462214303614308084440975920260360827298518011739765521196305072678793576540060883638580801646685620713832743511429749277156193939950341974993420415379781363557259710430548760459513083276739330787234733248625590692650703810786167587761958961474472399637345025573796672980747212404168860634376404140986139261142862190234038044563949963759724186319192499470293462546710638462776158357414096809392363200270177536344197147836912363727453108870328284461621076470593359499792899799726912748829831041777946640672410895984177196152081746122565510477893685697416391553917906339215573834829951007212650673627797811456482823022528799328497753206441579582079323586473355721520616288696731264791761760798628543219858970395580406559579747917835460462754739785092739799098390899273983311479833178164764893748504986208544476785535914719855538413901681439550884921810927985848531435015381531810540354086311493369770862402485905030785988449628108657689004218636951104855933915209464834794316998624810046658493923189737530965975925529649839625788953191819637562488875291545447931377111015489862309294274697909511196132362966053665893859273121215610922015214942114130469037814905520729780480119004720288415765900734790408637470821893073285355597902187702657468485136232590635056933878674295824033651103413663216753746581986173175602939686220764703985299744905309264299078848360998866131633695243299852833277123890209537057851070116862209034879040749584946680086976226106207844783129700466597335841001204219457091155943461498152019628013970604430335698488560422677435405960360247441359171186987810719617331537453182868299927985198496165673835380096134431023195746883111067896828592096450060279433287892771525620201271313797439588645526700513147906709574582102631537752205191448763524286415185761861283443831655297739432332991946627607061240235011011217257619843956242104599667174444362809832155240620414896824712858618155078354483278972377086517259836446583328768654325150766367141118833154545249504591475202768611969655577304434377263167345096538463049953578322683011984878418923376239666230265325972147861481161328755483861151505338896444493038926693056551140037220893475349863895343221805963230253788895060554757282807638758908466908009348955376774100703759887385530960103862438256107930038973916532930617754913783361397993676870884533343413739713727599370616271133141095731445993685565044999856295469077869312371548592775400884526173469210000589542240005123257899359860906649032086096983278004318183649944493183427408809329351413289581621316183980268348592761900543281543924466648744687314726431882133953120678567227559054603048826052036466914231312516845614047506064512648712473674874145266024362478011430098556149356768408336404124404284785675036889786240745985322321897188701126431322957631332130483871164670479805583848117466331344039452393427837932971514258498154837010718924406157520122799022618048856598775918523509932550996319120426264960911042682062208273103060930428977011725321186949234847723023576242810966346906047966000383478791696825454580225276998038219702169457737501614238501224429026437880862899077158648549602296964658268005723025649180418264035951113191547147897656739658128720171511246569362142468620009370186067145053354440036960290881870307708174717553787927617612545997845908326382724262199910332170369660242979059041180669273825344953133132079648662428586776480991418831347268780117664742437585540918357682788895387602972747661211389171928217812202094787066449457753808274594726506811291708939522433372169557686488790467340826759292305473649307146348348711470249578492972231128923259193999694941945637610568305749652567038843542018566064638928819599574812703575192436105999509168002640453604963114110824905224873576377625956934803052403622832430590916599519152515976832404811557183353231961058399895996342444394089674983739956950018673880146480110902656666893032709360425510715475827108747500768999267777182460886102360240939512427253454162698216353406402147130308829676032661228907566951318522284488015317034170049833447315060226506927974616012610799049437900467645429630213679965181776949309809876469150431566379814744595158973264728552754902106617052277169422589403858588681393229283561357032592584377370590551384489495435472606516228526461088797024170625237527879390821963649694734989738813390128528089369255135426899953203356700137334642029131286643504795892658033244665541668806261861080120775765256855404100635038830199745382010304340383656364409666042839693609085057562904083543777651815749134767860288710381626627640397532740329528094742410190272530232971326592472140988110938202463139825195505897546326163642626973176391780502618588686491905836615078057981289068501204935087458639517443171391514020199934174905540611997432796578942096694379914254330097216858017018672439096512269985937662728972165027912102929237708437742455962288862610137415745628232128345367712832916503053585256639542846159349440267306150520311864199621932434105448535714009977510462639332811277128156470172161933329894263437351418504161433470544940220480346186075447371125264918340182658813741766856269567383829875798537001317148708224800697113547212336953656711266778366225446415289792016268585422471416670302362122009409601693927164541647061110180162564340770274051771217169559125482987974509371634255703299852926951186595142841595613530544788587357620652318996575024782394694668157525908799267476368294978641319668608673393239330480859276803937797491576505997972143994810173286139028871887491034361960472868788057785908644532093829640553507452134514313735222148488513449723561497888942179313664116555485721190548849858513568538352324763957274696176695068171900561329159670288837376311464063501585725433335600789483099699521308576824026405362577547767840577707255286708356925837991413165092624587619420592394527563769232084913812437845203462450220567182142465284770183658611473264444033888802671778025799098863370123363499996992375779294277308780967816220021121541372301418603723861170730822437046934824973169264045201210229761820498508043703728044355819978769985366860767085953695928615455084200127053014958561910512115249487592019030080468029315801455779159873477538257678980004038652127283142414117526430596913336920289216063251186833001772944132598323405934556371410941253911577197126343176350682380411219629078216757495167125534929518182940862802738177427580443326456816444915027953824421528975950272807886563511701394890907233695228044489128480159434401155145769432978645913913227924934673027921566317454633074054065244973211408336572088499452954707992639759311792182974077555365013639723264389809933176478306550416336215002988751237398215667262098367695401235445274387147510741031376149844505611117734622349561243322960012949242047032939089218667953673956540451583943397780101862780670653366477833344006437523383242403817610046514670459940499955566090060184389760102837917937877229801498939939797503981136340535292925525498207160484119335269759673472201929051319656577544052949068109161869654390542702557577708273618124871048887594014019069227435513407747030668648929611769334816304085843758570255037543238750684558002389297502768737385241410822576297792842879442338297968722497666327661597364088895346116918222046476000686155410945894837395542181930280241350783291631003259317991349171704308333747971764433411685926800131713637061013094023413790873722365595505383226264309112989998420750844711908600559150070415166355953570663130070879589532790161758412344370553238946504983354993333078794426391473968484946985239647641260994179094882137826384629929247216086182225236086228248410376954515026692018137700918149946969230952047970343698210223596996904678479673370238199299958630562558447489725746288895022119939368139855841248342907997646521099371938384996100711089084285573275013284350955415392194183470709485685828522703019325489623556034677724200559354780002994927152242420400468665059389059703538655224509313903864228917972243399951344578485008135221064601470093211258927030854023361913389388565851368685540325161491285442427127193427731017148824139030410742267990734271821558902367312033370997493396029271692357410972879316249323484279655498258628754975566347979540824051221003409757787567494215987676093302289000972077970551661302528094244555338861479161611673417311952361570791344077734404170379238262842039083855333697078660639858558772190874732715574166269228794406865442567281197077548264575764590497260918770574854962034000541699119468324580674805571549254231840566203042485554105504441824414902410573070107431671455215106641542954528988957573639431189743215187226313983554898809797519402181907820435054557650069181344900284205283780882032936674996532490293575879726844759945371636083703405952007834218755124325350487186271191986664089360742554757044804867132114574433767974293482317400913236545622230628761520984031908144783312356436979687010029897835370275712929571490748502957959233903347574077254562932355580201195801457500100232271922900787865997605749469025099167533575267865748306088737691506168663910311174064588118928436828985069775095639269381616693399907910831232449735604559649094653290218760477645106434504152989642314516131685700537801448436193636224723646155836283833737749271124209949775737095343090689907598670273458823354469855842028328432201873535031635010050916686448866877877605497830938229345054976826963094440076968625981494963348735228222246358848345268121609624949216537068074650653375522676897906515107641143119733454334645660495570613964097456787029524372615213476001436896808450353278866994586813079451266209522323430402446188149763506400015098986442640912711016478916938943085741081922307057954881835104804748727417465245013334573998260042097164100944327665275631891064730099652870703452583042293180152957168216740614988445894221889245530783093016507953074294549596560243260816064821181678371933667405561080466718299074428281338918699726026323983194241991114244731326034775228764797688007402843434872205763062174410981725159872441733974414128017703435772141811152627720343869367503805899504828034394979461130289495083924958099953136749633755236080337630301685746821994161900576864594225017220805578799582878475931566662408858322373279026507061870827611387487149844604234405044460321940533670698967848768458340722731896757692257895488947540761062805006928959982225603298009329979056977427499438140633137076583213617255904169008074347002715657346324770283991975854285869049885704875526774238910302719665640896556816065127124746078271250844947194100449374431156076244049502292648262725616317399880881901517629306205219087577489235112736989681480113851123411389253647186211279212744998656762766551478119497231797194878865792985053745982454844659386569473748700183248749589054129067540029809104493860377715033000084625539289304543511228787979039763500147625442539397595285640451413522920763238029748697846496487900199576910405737981889337259853749137883698752219362805964959331507913740971273419656883863130201735445913246783533321059019853362824974534316341890015902863935562849938448571692463117322588794327680762966894995778241081517200305913009837972346472913944663390101299745538845808759277839570732288131132480551010862633952361430593407346411861167629773658654145246634410506163007574677728366375007629083206058000476100770452238800392584148727025418762070400806205754397000239231775373277690487205306047448230510920855034273503469008072843699528141701753544775644176841410144361197834999787114784048712742062354891136677562963619954727639255787397467487463099260865348137425491747238500847496476755930623097621534001073779375943571124846138706830628792529871572639344657797858511397695246305312259047263758071099968993634854876307827221161607648484268561716205335791803775988409884167271926044955006856605117287517056297368421182519913333685797039832885734651062304089102437336535860725707149312226854541996646350676451478424107120157023976609760193858747105620026976556084531590720806832809574915906249488571838298356782460112846086975166426399292066729870007970035270890560475410012808465102499305399492544343634536465315350376028357583600422996224298690230910487301489290189455737799069045955434671981027057229985712417897052787521157987784017362173780620974918466369094346100501717958831930693215871776100033604584529899973796146778390412666679755894550339648646322983799503993245810829803766874510883332111774469592986143387931763523448325161500661364353683542819444980727232947024721226674149874163805131261670290732992435737963202635685758398112110154677521709167838204203053179793022043120428537429618563326696958901823643091154888734936057810212454813628645805447610461737318677289875772312559877340588083762191163966321915500147071633830877937180329090950277148319831597665152269017222613377721115810948667472026521024738743095149892099060535827348264698197992047786084071723289396676253070637464277193868197071643056351856966725591874132365099453646559262745123914425451751106131642425281213326229502559815249212926352229551939686836913222629555158197154331377405183111643070165622519261871631917353347256755680704003496539774516907339919044256460793591409145526802245491470131011113923370828127375380571591542379912804301455825365631149843457903162109109603496229224987133190228734530168052891887090826404410868701162529609909736118483359250837058863637633908180687541529823055075619493506398072566144414521863690779964735661198227010620274130663254450169914823435737938164716760556830081927590877148774179640604971937324104898431321781863148509922533682868588910445651008437156544730455909648856413647195505171765963910216263207675211851596520234408659775422968186419145266505939883972567800013672882948328877283653814307214854838724101076017988817773778663394410316791617210401845874351436073557056944516023351348698407841527127895769448834167427774573425069646934934279724028985470044928761595908075622256866189436197449186593340828244283874319165018302521648840725961610022032033512442557889458965597230008190414633061489437227587378915098100343540259423228967413518638965289294757562284528367520851773103437699571588608502579584259524529290993573260045130736216833488669665924141956238364831883257016061966980118521117211423502599076036853661369538997578781314926994879005724041942675999176386233817396080258021486688983879352929303424982840127085262247950111862137134299551527754595910493435142354699585697653146976331519832540290106506553977638131016547493853624169288121013767556424988281356545428146936743043396834352942563115885904955307816234791993922404317996114274285916423006485504828652093036340977561237127045959306056819128648661378784867257629857248635916533166064746098421660181827579819690815168341539582538700814493591864863024153395569092109936939142694726694983043748823596437270044703150760538605843361368257732152998757184383440334251138709663399797988744992225091982616576432327854621453969820871237353605288474639940875312136558579657430112838201005561824857756758943812712080482413259805738630542246519537155000941478608138592764291633400898348009947331755620141735139004237746500695682144082235753517612720415853352240434559104833876479319814193145540227251312252823608181678707193218362755674131253880591309734284491341032755725565119661760735327495853854808237499050202366121083889298204634661656914720562483925868718261333350464109543185369064179274195166518854540134371393080672753710279477855816998027168757887725688296898599296866924838224304443898212057139149511633719391678531267126061873003189282201719844105853591740378212903157062842534870479756616049939298533039504829830338732130014371623228012312248275752557977334601245712345728372934731164797241334601131613671043956944318246010363670842993489911838297069148462901492268174557297958390748897981428135391379367339143938129853960452216177078450023119558813888441858171767682031598644484693284435175476938660714408997789434023993153528656945076457522102997065628055373385987757571239401707038599262085432946104620525559371162581011018189405052200640838983447111927639236353298044466783554415035927080872001020427106899907304352872136873138699219507952975667745139561229019397302290531234963935274399937338461679315307668095381418698233087299094457444435517351717843547042365330454679621798891268966857697019870541264042637358480539260711860729665132522375700848458102484989329030383012656192284244223675085246539461743194895561120637190392016696457013107139398709145578899567991691496899762521925454777316742933362352236683297930584008198846473967848662180974275353558528505429271636787520842204863548982822025237996281315474097863555798355638392066802895897673831625295382653021306808528581858525831041982392801712138996385803967092530111716210327421898508702373610875766232218898681144801736522821136766291101945838378327590480356271214162856268066266096992868624563440941050513635152961403466978156246591979454127217397462001292887209794426462597069933312107778311234429632754738104526584299115013798569542375175301166646966294392947232097196903708430049273724802026068642705093539336050027228370085623494045992746243355107175550506104100116931768328694872444514676403844525521433521358763066350872368744351709411809936495543013547558625278865349430893605780321189055083796348051791377160385359862784910447921331017771173863082596352797885062844289621005237227333902784368939195924542102850358096488096843477931791262117311437153039410699597492792502548638051728546302374332821751216609803182399036094560563729732232831020599333678329143500233500073328607298006244864646989189519558853629973080222404180195407974950633593047044268066796253560963491771795404668119864089983274647185319635707777442532729155046351219912485574792682273979728714051831488441354240895550407637309319701844479647483101399818166261266348450166137056695936773113462695479133231822538625021587038144815595580843486268854599185176198647909752900515491770877334090202648534784791873610412231779960146371537906768463824750318283858148940521183637810151799989540112629022223811921783389198249502015919599801361719156609393852557100124376684095990148215043882290296337141356314554295908521886286106006913939948151990890900381258535260110858578888413795586363193981746114667183678683880898668098067508887854160068979428952457721676116911381875232808517547936334584618159082806871082395253435823475367106212859502369317703474893260279282311538523120738994166628373937314240253067231524652482683494177977050889561300834121759728356849837145392772577620804844564588050976134931410963457419541133004871403959973064681502449549634511296222385812919074165242786686327371488087248970777654615934467877010430309250204054729292676752527282276276161285467196080367459683959813000880372692679177404824008461838147076199716508935973173864886429204537264043107899915288660882281723295118258541145858526652759949625783166312183373062292917581766241153496399649725683564434607136996623364417554533856026927465647300770617540015783772775260490561849860315520097089232166615546282079801647859198950202391607953821348378734577343075448388349819608215415584446817562506374543534865633678176329909589574087642076342498850212046734398531055163521397418169720707625170545257442134964280162728688767574241154240317740288361594289268187090634920725573090198081124049179600299990230507301795020720191921449725186389931055841631016525263872499434433140177809112094784053455706436424202336569862049465081596768755170994250633929576785681361167731327414279894560688700649132816450581249200244766623977996342935214945155262470960357732028633444642368938501964045817235212130980212628237529574097231371788787326579043046773070317420411667591282248358949128908095625367923538852980545866652475230478167913250924180623488812733512768842245596915400241808503718196185645156392058429934635049447057205095726769539214066452410732691933730284980221975468321309150311753648587235289972644036004338297389616695788945539800481365922487786492049783597191377613425687051261489209502040240696464886919084524295686499806440783762418180867505948106087644412170473671101662845380528490038882859862527716092643420040982160387572004488795160709198577708249483911037339950358287699683805493903416629141550020811193131926105686550345077948505439084225263898181726343806621600347407530698855219385309545170416052711204507082684237399559604419545479516501407202212866142099414252439622094104601845080698266190157399886657644108332366015916701810275243922446803610695206500617125698502175069497988053487288247057019129312835564688017206683106263041935119545672840399987761079745153922053198062809252652381005896860809469592755926398224380183161367224745644874424639693721664293233480627830340856027487256567514660871516320681700706576664593120087097857528558870157503949971582599128897091640447511295353420341142214356520026023050877772594580305360518907400363740150862316176701606089535318507349791769911807371712235813538622958488213316410183607281979422951250957882113590792356916727474701250747493313047973187951577192429125172274262037098293079318719215665491338617040574612160126441771543861052189373290522841461454833704163971060464112802308838223181795774039149824981222214965584963841229643800298769121525012173305052987021490619633611790816996011212254100460539298122118459127179264861674706364660611464469403087666556833253476427037620660373042733068744859790412650519445050364451268143440262722717767152599557707070638300812233367577895601503248123038897464633613786779024061634047466937832763757985269009500097981907947341066940692544228586547417302450942415227710421060849513511120223028082244513694685174254117398934333346377245157132405901985486306947186329742322710894771557461034039083432359191651709676759598801084600728372598984839096147394991269621971365021126773498597909914626631172021444222821613069637957416883433447157635203033361257686214865783102654967055077831970782405091093321623796904499138761269018350782914263964649089937288842003452301750441821161259568797133350200426162873717563156965259138772201468503359532398467467938092788457337679948324127580633201593217657418905697085127057385128937805633484580526440342254692045285742906332670242590556850118564167946718267783555143875618405786278682395988342475950842240993822272597443116002162577679414083460020933781069055919994509565420882790333301501698867349262575097540689734606356257054054365773227030892915350159948412635995463603401226688633960908255276353259387488471622852336459186354694230864562298011124515769506907753446545331760110644773459956712037359477957704891311849147134068335050499474153341129017869260774453536578916039751977397188125519241735129432472535878753176160746146563827266592449073718173741169236444545562344189564742878528048178264189824506641035612434645715382177447885505298502037039337867511842934177115482353149932049207971839444144514633516233353478049279271701782600530516029249808389950209554225561522531798105006713416665207158455078563570450304647253695229660361003105395208626104383923860929439202289614626527987833443311192620272679084920913056626694376909734257778454684369419627623904530886597790298224695246756621545626777874903736348049953535207393445580186695862729126211323984495129558030670596669655340160174839339109058282882222796074807759611567209063955806805255004600735914885632843048577951491531676803232657532389377224349276965649483941852118095479785778927209044556625916693199567145576890316281132584802278249809089287548726701143914807160868122301542717668322173934486120898153380218973627796935032779458593380712778734236355133797504357666523895639673327651594807861222945082313550443277960823844656834257738191989275798204646929459766007524660184840233530300439094596348628934812487464028051887004001908365486543895653828407355985714647168006657818581593564892107465173907906696195911723186961574544438006686325295766372342530161047652432333879046668127601700065685210884923976843505613754376657380285579105736694058086879347822941341461773107071526588075598358018618260363944311991174849752741880793534627907258756441969458368537522568214513567055395385347756174099218622069334520379045450977231971291441736033454515352735620735038509036455907536347781629418361369749714856443895122535730733534867758570724912303775601533614128193116089306222472694781739370014083745201930589884019191714800820731985111017867939130958280835989956905575223911285522970056243561744570443164520511350666325135929282323849471695258335877043575814728483122763578483519242080578609774418310250685049682000334724454767200203585389857979965820116756394411421204870233154302399304938864075845234767683632438258414054820332023288020062049545264105112186817307316605934624447277639545313505050016738116564693948667918656923333413805666086326871216752848437016457206044065001459160412298944592909674514295590608230783668471193551980566768098137368360652132547021240422170415416323813891698706464329180783441400451293263647453094202640043672108654605977782207102796232254665207800116919129639019696116444665556963121543746472823261329440197795500975774883153840099342383838079714389623169962428329619585913293581850702183724812759751393119179123839597017986820268819591649415829610561903820981529190587964836482709658061980204275854827317985197910061141092006126375569554456250483834775022375394897133988785125158334303025345496451664419754257316183014704742618260889287894602854146161585388721192468113897453864878572784642375470186720869178092932687822408318732946011476950107654397710246256004069577471467049449399441453884619480572706285761318375598177071314519972633054954446230149608044300658393625957830438031735306281978930498747835660738576220341784204931396420446756716936561846795452520478909791895633774945003563840797093680326509554961351809519047736614417806637151863960303434859045135753002300265346358076949314940882216287771440574435226927256064781525401253753597748174178563216132170442316754138298496420053470652768210883264666678065852927290659858911740534974728275917999956724985883097320287262424984367422384032542566015519876931577844949668842134915952140771175885324873782494043105557823051593452689897691159233851569715745688151857101786047431162296532728357076637697269802641390234276219627652144095826768586037523928544005783713376240520090875026256695939201640375083083256398203456090184275608374685200545335430664355358036710097383984195231086142712168118954526424552382927808070622231859209835897198503328650019106511484979374070368856256674124656000374957452256533881557332919970668401862826501025791792226860391228550137769650733263025671554134803114638268599210472413561106805304824178777448404015258979247136704048389907977064518587153645520814252563593708098163386051676426762009797998973298196140482117170083236745205447888850689222850611159811054567333341973945253338424054383819245144904088529593865483393434597033816765451013470148825574197491518763049541894128605978500412668046933136976758380730174610932668218204665173962095022537098749173826626109139584296653717006906192508392435176683667008512336017438328608071743971822828998198825277318914856424805496774122744502654034147342060280474638541193637898872923565949101256879528824070725113741511792439346533100983539337551985903992151196242510020409153814841816163428703672942204410081612261008662632901478054039750319720855962622871292757347912481319185321684298422126056888191034192546349714033694738650802213144507102705036070960436625630030654795217382172389433563561085354645082097164277758824007753274385177019774329592417138677733620265695196373949060323007867017868487520994132854900491839135992709686604312074143466972040538240913746373428997872639041907940108713651360203281893702049080184130770278049737622729068773136005871735914705468164808576832530761518279007581287307026417203669109750011767690668860363386023849559385066636479508973104000054269055305740400474644539867950593414018253132619777042090199098102472297157137208310383740596517839840324088701096687073427373391850150782127910213568872818609001652463584631326192492131150921398661018689918182579020067960802189411355447458144985952183186944366917302988189483883050435488692365049304350540145550805733884142685429619882546435128716676829686557049897212086537763133533461593731365619534999961212671296860265900072277576939520836121426798967971963847032247658485236857935833117031565525479404215643271308489444464443792097376869410013903595105877017718229912676796282270376132574857042943218990257942373944621749348756790592460866873019459734420426773673489839232127377710349584179911257976983879424339774852096169023501323727717515166924744763715186704078974978649128484167187142167130552734948791576508247311497210203792013649521749368280549177560764983952545067984104822684460123084346775859930304618696519836183385073280119238370714186168426657144004267221347654370636311826892261083018628508636580737003598330297301316350085195325471711652781749573655598293176879539354890241963391551781181071759472803600416897387045639130568111710061947606889718325587958937621072255520620502748149818124957243694744823462555415288280160478910098898244494527207291306662432798993344087422749053203677647303206258564166172763169160107425862037478043284007870868551099050935861993051128322346600913707164550978960120723040722105790614030708002722257121937415877850582502878242124494909932406505328932708636043544237730348992296948600925237310346913125119535785472131451590895689533655856557836360849362804627275981204530893821714438011717264408800068921302036723144923082489995600678707176920346930505728652452803757303714592345530402203871354392813152936938102741357239698996234556458510986354529964927001938524427860643071910403484756258486489225560051565568782125201284974920328754393370843281027512255567378708677171591506789276067425163551419328017068803666843885181389572866248950486468252313541033799869240212448319913081836370047594655050785442448026217775713254844758780137269502524454290135050150381615673437810590895976018929504624473667125578842800313356088129212150702478513186458057431701463704666589552211653253550225844123997959894142439302380728516594933950079885848602481993343831689490868402480715275283605695531976566600530592754815186604701308514311877941263580331983851379534578130555890707522776389791915260938308334125651931045404519274289327223845823951685246023575233375672973790978320226432635101801978391264270977659397001569028102249801567684899670034422252855275895306565679948292978334390774684471330226349041035550658716442115941408336133461887161411945426511986879690506222424426684865408618487643003393939810507074017666571575925488814284657848116775767017405889484944323790998554087041160406177197729219188444333550652194548348640581294577119213128251659560986211315904500885343510591402113691126189639263623657785368173232764373497176336519352980577714433040990822520318373421570704354782809597014345493255462819941195795981001277984192926950272132355698245340041815624830524705382737665853718629918276683212372064133485035136539421944483970803608432477037468765554650771086632298275144818020340842530273466060428089624530551445240142608884281992215541840809738147715541514637806617371934522039443502210138433886792279029947483120991253575191593200336892310813878289639723004661942246711706497039721496164587781390095686252754727071426815755201024560115242329704425784897665509690973364087177118246249719665407331540048855628829916805216884351654617073256291205332232682724491771392140710104994551553126063032954767836486748414483488264771632699666754619217576685779484520025198077267536526210551982481856791313010880149060088846038530950147629828194273439738400535043474557115022286727846341474984126152353487033286532769339398461818819532275927585528144204031688146227429376884161126313760263839428862779306055235434013984718487819423201960003681338374482277717132930239890494277540858529395181421864315742074101751739937251456909989994086334931258909615558186594807871467927180035164083146535864564517791784773896382581389579245358800386988471086102059251020775867685397485114752772130844161004531928410493506073083944428570316279272750742792843787684591318963981533702800955226715794242220684685248382516191207130662983435560890787296348440509798667982796544206720581476233420686308586839717517913585437202454165925683469220826258885273537562079745813485063214486274740270754451199950585979549186376916939577708422412171984913863690990433063604270526770382081277610228347022865512065986402721983243087468224680698463124426786889742584399242390967424491837952941869544976805252602341689050045212135183765395551897031854684870114603379422548271638157994229128486636482452537736280938028919583116954274140609536912409777921638712546268785871394386509642371532427269743699044404898232479393195114807515622287759071556696863589450633864042339954015800734261615812548643145118227848692672019100212652719464305656100555231979550795871730965095542325501208614251127546513664008706081856325344469060183394093619281302542115302744456626821931202684466033984506668678054739651876464528425739150950977131500696214978599718789228656655578481940379908873114510915822655595707000225727331828280695852670211889513942788755368303377550043587774720201798018675462924118536611924205136548422092409002393245669847214351302346867190122552389395028375173796774927881676425137244676620117791769252345210431416046973181737974205779315393195026905485973696262139499215832737705283759701937211000880736224955966488599488104279861570259344821039016580759943831382624029969593970841900191782069055583288821370228937806836097469334822319824273014311815151217130534523666881054948692562853043386883706285069483457155975849444323641852967080207451102171657209479139738832658621480335350546746344986566323110774204231427266360321554127919001443080293737301999061845589772321693461365052959425761801711980912488288653786707263284182126977359439147043189295519396570954540586244146993142035401092087389175506697583472836055310985219448528941454051045908065690509650512943227696183673690463093726569618691358430226560437397004150594850483745560124502273215199609170858664578393725505972982254858135502721907801960547126357430158669343815501008190747205350497869892158324520661467217829734835385298011689355304994923405885422800689707038573623124552740449558078753492739878548583638882136788602016842403910747615560206625850902886189671651425110923352473161903958306481941609378741953787757424775522261065170275662650927489219202564080270591972598371319021435655322531807313129208335213733703646410159090707771407459859944423587334293892129962035330448405562359448242246279720011189025550915485314545311055066895269769643532405586234848990221427059861540820019725021371797489040298800697756803809160481001144069814613733983067091589381175359130356122663060941353975886256959351024829816356355259095592950874848801879275417055907693015838851219709380645118014707109087664966415853670796613380974932628422935121953842683943542320308901909069137306169838450432451828018772334431225143795762283526521706396098849309711599339117086059542553249372720877282827568508985392393733469566227035242826990239052641546702310702539518433946890822210612876278794748488773682587966294370575275577506818856927949773002774246917804126821080741965730849531922367963004325197651698020345290530353806552139269018764318697764685490902101522588932419582989422675171253811894310788533563630983257310126430928479514507432111983423627302989500520289448457410818744830475459462167069456236245367875599243537486877038849348756496143088865797525584663881006760254651976240114575716629467926975072547009375363326059884480590480365050953542673954859421198816611990994800268000444881923992915858487957218818886648473825332479413779566748654557812336110826501422478391689139008901152620022808063677878426247362438324856361079064225632356689223379675807084097293380116702632279582121911982454510017295382550883186649478952163841808173173639208688703912630900605639356667369911535146225418680060193316202590191573415013055003360196964266977252119655083666122268208503855020703740866845345710260781596128643543366277518113098766259932560827924509831292838637080219395344528838917004624715224393772984164159519592824945659203902509838394127792951677734918004144173093724576938816362531148167123999654498811516759609659501757641361003378747172614019557667395354260226543282210548644184836352704075869944754670528421243041587645155840619914592670218796953841496955790109460294855750610230750101262672430804837793328870024594810271593645009777952638688399169243826584554609580764302889696153741099331484196752806278452092952550393646581180731489104117366682182153291543111051205754407021283508299856213948353942533362430258034727728969160062989357257276633224493944781156205209616849573990776988163555452115959322193792504879115481177424619666901220389881940170576784170552715037893445952274799931199720336287326399115973741209886572286920331212946942693787002248421252058294583726062926023935888488178607042957183141222505455559714037341142099907930681351268280003916159660984246369751385701603060237286998930694664344683939771584527653315915235396895115434520834275379194590277203175260189349087006726257091126318826343542069476397818588006273977221288562008862071955270962312289570537023565171258934911359918082911866007961568107350325834251571119929680585839844186365612411168410355597457060886551610617547751731165542147965783341204673801901570475595864678227317551999463443515018132283071729057056853399084434866548019037426150281603711664126983763860880595555466191581837348230305341008532052984404574737612576544331172080349740393369122076135900974644063369947124748036491861558373194604373323557315877814692985286946234765699553233966077854433750186911804993344587526156466517381436592858247953759217700075671700492718102606265226649811512789340517391192647772222585193833046697776408407195883056226490761336288318119338001790797115827262676507468039922809354087860828801057134496903825055091109075418421037354178635539238938276063971415692103474886682783967247356181288611323575028658393108092367998549927927029101236460497581159004734912356362242301890179956761540280776169204633088595317050318395857764119708837638506173125243501001207477260628634246213656911492664349743578782719390062856403646896294896090014237319743538004837566604901704294663436933907722131191597610804591628693515817798073907684262249917510566367198344440621588924726689051686836638705268364785961299306097692260020619675790131098042804209460172622289118636495463802805257663359089383186222740175161448357867990380350435402450438576639819598273263816257929749489889659304310004779907135382661614006718635086996008158977545476296243840565988743354685623173306803100447785280185701529717453734488809671148059013440644374036022952832547650918824952091650200251428140330619208682850652256997450670116964295599382602809582708426331004239884110139755850450235064482738260820415713867030064990864621679128323774554016000099006729301187410746096140851309840558808790040653301482141050213643517305798229131245766695955841546852725381863874262583255135832446523566539114644911315741222850268133791098936210928424187163352165561041845910211894613043409854876909670075902897898262135754881188719653811914342643649964918975421271433993671976482133341808579981640481702230622807527460902587541545880066454657711402500099108780375979551779744560508087691516238205340266825495414554512588644046427714774587884819924691745808189845217696848591648776836176515734301603899846266829422956867887988416072005527574513349647444406097046291258765206159267563167828379597200106643295453758370372722023421480117178140765046095107685433023206146860391534592034467880057986957828627442795231436570370200117220935971082842530088121199763945792631953154904058965608433154150318895852017431792141585787019325453824194480547546423662427517798767419112890663898515439600257600771062931268294514170300276545452909542340195741843648153124002415413758788546982327611813567846782223006890264991853408226510799054054492846042817152389785161209183084249372591084302252165855332071122182737530523014707081845313061479656036501078095710801355015262850621447476558281112323433379002661920088408256668416174349463520442382021534856339319225202612144870427422415026869588103296487108564801046204995852260309451942044081386242202930382168829655406473994460149334261156250208378494505561895351864084661810713227914619319822171436283144811109405960802407576973767943819023045750647382385863739516823555713380067609649345058554596792353632969344711379730880541061164569877767234442809926765957088120706142189930663974633494514529495564941176428646723737582360329304777090891004473347396163597544664601004764965492250888836115124007964315645339061841443059968917548561406509271126815128208778710607123342770861468008648832458717105350836254821108218401129414784235494366947268067875526768593137510164299933563709960547063751290753759836187092546472573209679480280634024309664081906820919942916156946680791556396363840935258634009982641200541894932586200959196651748965456510351605963191227158468296350016887408336495474313737517984344567489345514959343274489892498467890012848303647161418952731394581870352531811149105016936950942166329267791898418496642197749280297787359482492728865581451661278134122134614915510742149174555030662155108674515292845940095445448155477412061665144270075011730643379559288943141104525636629659873916658470138156324624983949831908398512170242476609723108051462370890569260720006570209633305788101571651882659748167033658717629678802039793994184734669704567741093048913844237574856683135395093920011933893525903433323445764222396111951055866762646177706804505114382127241994415084668766776453125804074399217311640428730435204027820692815621188047891411411284590451053238600021631094526662078809110889592134353078430874103329439702519027224450682660609710899738369585206419229434258300565258680216934656255889729958707913229842332478596803829947324040685349259031585707759595810821004871344987608020396081414464251825364096671293925940795048805992526609054567196046461674192142187193037751569353085389764007528677697078006259887012006360174368419212520981254232957630606120558910098561411893109343411601846522696288433328146100765065339263635691564856981656434385595864179516787789184922957456041745529421189917992717780374323802019251757628791595609660845571074066709677207468834034661872501650966624785667111434689183795829434945404331740177821683471821942596637523951764028017653479705990530725510861248247036905522759346910576712396689503119680821918924370352664320195967264399429643430702789152047263056840297351621319567133042355029762095904985506083112425579573110887994055913250508765476752746181733290551776031369981308798262554739664264717659429349723550484923020076564558231576409897209537108826074561680081772591560463269935252039036884444073236128222828607156657613202922308830978813895822449407086440835739857221399580068271944152787945895567207283136257200109418310229560287687521227578025156973890042076882495426240148256358796937465128457096669108657696880100031488173965585300988480073277944690756873623726191301715574320422865350710390189646741828023027500146624109636480893355271916444972027749162115246774320757691474059469485859690051847603019025416730825343503290925084392686232899853497265688156245992392127035567924748277370670636354840811706319315695664587538536117762407141560633440359241483065807820046743283917366131955224571863052186940032029097604916806414790117138601249401198993237499131434543898842030592715455577415306309123271888141943360088348195412172555155493916257819107059020552101005357835445967350251192661791098031456049419419722365884900152531983241692950078015566189767378634077072236166256590051888736658453687866142881873267050378174130636514119151353989538062440814556294641438662607936951361839148001624012720164389817518332869200625244591668490379143009839761390150508738594811307880816828175938721325483973476742865651458532203132071687391271704676259113777238866059348676895638566912465820672533750501074012783307995865211272354713538091163216374695986789923801585865545966305898634478391319789092813507664399154799228876139553709445842710596910876777214604599104035370165976478654384571372978386736612453506118900081412661866122793540806170368007806312942104132388012095317975249542454557069161113557230443366331416382705830617939908791418777401982778692909340059910165521459318216802054986486413256446827404622219265981854847360981106240003527256164070140426963387989008869196270063548521804803965279992115052267954358759928374157226059718118794455154074659705236750934430895109344999268893082552522128757004169333184366688364122965393734177496729723256688083128530682753293843887310746128085909432559713297240177532769983551673084451519165731565974165354256811790945021244678746322799697104068364053488895754038987326656909599138370313928735993193764392951307575854651431884891357121834317849709721068337843489992451793054294721799728586341819161844891866040164434416947243974360049076996849639804086897045188498539315572979704362694075284018428037075984087403797042258056906797838521184700214491797416628885662146232272610935897628598151661589158335663843989364073046691857119748266682404480974257904678170015281789971520900206983666052865258999892927572466887587183026277545861441838039982505993225863327850557396376624994391911381398191572273732545356407594921440951290367900010515059059344524488909139440715693323137954884939319572774328446759672956534423197006173256369617446213758088112227198639669929189344100608953940924683462578801307541011848188279954201050363784098609083322831363716617526952394680348337015310431478154304254817352363846519490711799981029966238532735356395845093559609635465813917502322710223183974928356781290316373360082685394354677803958210911155491522411602948817793118149073955897225127449898677527329931811574065174974277926761633923107823551562735468022904500834586447630359006943688539154614271875431446264870796987549983533565101776700133035400429195252736082560467159956383699616918136687986820851027087261264216360574977457088327918719417667403058340086181487923587802734091248077783307363466966867587551713029589670704312626544898639325117839263707974720579783833924065447722812977092474143483856814095948223482034316632847479340499159192210627017611899526546384595183568830608908573397110436050450298740934571756334283851113603052792560835081855025559130862325948452521938993205744648187694871349666986662270892402840353835618783503531064558890619009390997725552029589170410477521962581050786481464040381016831345901479109100650471658748802428779710898883526939597644102453487432351648786986254815561405099279714629166297196460326927512962621902681445815589224375722146786378965202827793139961891538588453106607294382252434679566780962373277388311037564971359744490495685430918914244884546575628887523277082548639329938991272916258302366800141653251176453257505020891330760472484810203266523315584915846721412239293863421685524179656161707876552819565657901543757323984435675557931024336508780638765080556636183883403810197540262423171716999934802671107269978075516956022367342124677814107617581821027136024113311960716649284616948391677393707297142258435131234445321382530425897420854391405628795403227442664820725727225511326064464207026921431117266400083428623700738024826172765664716168015144984238780379903549219265061680283719510302176263961574195483421453091693103847830053004158651014468093600071575678966410831916144573753635457776249800345973882485629828276242464304673584830956193019569541465274549145279068462643347252799003578455539208506992913462497238586676612045195180430171332344865195541345967883396994499517997365213477711097110395956013322193864055437047798921527362214532946607520332855958519559275251753825509237019811866703430347027222656472177310395658175562114104694129578922772802055184840982295860968213236464946327164507787104633282405547664526392745011753111433588052916646266746873717289883603510085321769253830817439435518283262414809825525111197421392467492003439833173232793163758304670054856035280084050129640545484057754772866759939270656101724706817302239742224067761276787368670987262652892328227633145942165342710794577907161867249802701809692923469477156554220248156377105583711193247408715652547583626083942431299434517996623741974245163957941320665194671248596659361020209522715140292280363969636625838112190042988454358355891870366262653752821821104892579297685320153339908176911777576098868524228610934813118923157871732809159715507306714624779064175634670245400330274891447011422381312990160516332564688203890474762736404166650393745942896134722931179837908096059444000370348387511904159326942969065294525972351846629594275311869729991728649293916676125946385538664739450394490006040917013466131863089047352284324556500488863366528443921537466333569904501794849521289038787968688133982472159032361712286201841611334691318615137785487796290973308717870133481372805464051865874232006024173633972849356083617478460730453691332622507110479946288663684784334422784786687966308232517704795584666475237485629116812669609072518631249817109354044798912315193010124430957437201331857575844639418542591796267064804604657010388283198433691274149152465476536590243047974213994031470813035252747503037817494779086509403609097928488413502941333578521325014561893604451385876060433076098263838202888345207101078118659802770936458666936565985032789091938887392415874360161606471497071258112854646184169772413985977030999059568154148897856766113235622090566486279183010011749700512014206601385724870433853262441997929910598233087272617763635132531062522658115644846691495191559728488341963121378642314178775811512980912745023186773974381941038949678847087021057114790847459518827394364875590263335375761972978584329160903101774241847287194364770708377282018470718674802824846635303593467823228923167305092426060317363658189206780733354477772889379620024394771483734474527098536826227768407114347015017397603054027141797645871886946902793486172553756493542931962734291390825040026577421292199194794037416441538648692507909167574943239367201571784640602844297881724103050922863857099211882603198817784907172277167195645247526035285555155055759485593958770445189729433866845351583418088057409493324277893292665282857302763273219228178103716127117393482385036522740907942569693596804115480629009933834166749551414124867444448767828458441361392473269115446753220975793998244116709940143965290666617103382353656957333498637236699604103879887646314132491462442866244640717219426479021766160411773451555033477660999654974046904484210387985354545384001683449785392261079693396834320828221233875388956166051700347262302935539241209788245174994921086959193507263365432216029898615588154602627475194074015378618094035678892150703415545652176979577147826141382239161441826552426144426120821695766765964789433794299073573346450388128014969140229224065652385139714455693191082976053284274836621394477869423050273800457402219190198422664797146995527653943263877169171373160304090753866031776407238100829544652276823473661365435133350639606800438706703621698955062063485386668635187539445357081388119650832658261034475823895231789937830292773766665462091498819583084398309542244201153167499730729909602812283896618851998921371156505817894732052983148529180132805036833319249143336682047611238459655797661537133269001786801648748139823690952969848182538880002370406492553861053472040153865583260888797911750734427451139558425038819138135154175120358770542289602229428149692983400186528851953108202716043470259717752812438595811968226142826510823870435132321225740813072729889504589726086031330717427062873428319402435890824312509956934245169673805988272033547928616885251083806988627867999465588330203762441367078574551732485614448521611479272812502302303776985593371509016969772341703411751052911602617297943937166395181001367389060101667317929928777240197232983761990446302290131157821610129753739044068909306357665875927842299437939232039688918764277465977671579250343774156037335226412705820115897015604856154547508717884143436440357507296999906165745588640454961664431137681308157288423234566406270042775154295162696436721700275193941605742427658359640432069898379139002446228850311531404943125400406234866885258627305723003446827508723872475828008887828255462945009327769364686799722829684867462123019262486016262000264982779405902127708136481353385448012533966370836178990630672248896297047685535488451992826163757991998689880562675631528247545661060260591686153820601486208668104105986837046114135274642918384747830035405741035861261788842354175537785045213404678226948073839344036888006654931366272080064040937275380296909571194873392690201765465505488257319756486051499595731412506021267704749530476107632402227546613206092681978485261725406844078757980208310832548189043887097958912588921263778322474202608637716790875194880073925526084244941436131910236747423565432590711289739438077412116535042422106819849769441147939823879524686829127734978054972812438429511460847435748846988351439252157377800406000683897274518733783050919435675339226044487399985135320159875871771392664490339627423687563749783733689064788395081444028281199002143262769489260177248776544281706675658093611801746845802973282344595493821119910331011135077867364984454502901941353077580521407817879663988144957481176613194603135690167016671837659211932127732591230242946344900111167334336830108839128099825400150375404114348259348204098078783194634097398010585059610900762872657870075541184118002449437760625845812051504733114852091214768092121827174088964753213528965434116601427337821845547972625923520362072150930211082558392139023973228363886642890800014894556230460747493727655441782740585697381919447786725094430145263288065631876481215552932244132349699736218230507293880145428463534435259348795311019758615476778278555087223656824297658161323904710367051545103742899057346942555131015676736770663982145627070275024904791708825904240949932036653654439195103679335703818530025900487954062732630378719722473088914365344282728456893785744482934103170832714512954934602213350311169835681118451134863672979716811349567723759756644097776797225840127902662239270892758989802797552854409551036610184204783506109342109777126688999679413906403327598053426737323240109744511211304508160931933257947552564051526301524809260758217008664761217708686385728591304405022518745908815808640667292476488244514451652637521621917342590596833839827410617805906735961009289264243594385660535173941640754061632533965404213603046165770003980003930491353736941117955887552310290608006011159634345075793010841398320096232001867876656936256878616469087115965734926051776221443229150746342298783622894598323251221504914676294486427351987902429091874212429253630642445195622510747621256736851142074784671704472235045284969391165387524345991736324070448395515867551864145700789808945323829825575882551646086625120449687827792091595056456883595849557485264658812114882486504970270973371229988313555011537751238999195352347152506592292873441312654815482667675070871479811852988831723380395419765663792630986446137928420984670191244170919618987327638899039415781902941115765311172444576944082262700251769441727990912144199925428776763803793974017762457926137389950856368286119184527993927407584739363087584503162931214919754769020424101949051873794110367614231245201988957274709709709246449708212348276927326055555024742902131435507715105789471083912373942975907657293879086214892109704426693787781035290112742322361185718434716387400233982221102813863361769531763143231403058240634553142684705491153235402267753013811933237923550526976556947282259840860639917410535973864327061803551132610608866539534108446464468596331645020105300530467047351699859098173234481881891674696589689903911277341374765558047235970064577590494889641501513511767737243850369796552088925268280882034011585345466360964939689402870755378679982377656873330405804092268944960060044163041490005227652500267636851079182933267774046390019813854733489228434564236219618604589113574338867175205062794607500334152473898876969957625611320701825905854568383493000305299910528491924727570857239600349020677140168134407931832606273686682753545415419026135931239496665646884020514192879357062578890290813714515780691390468072717156441119787356676620512912537410438136847515561398796617429922275293614598065064500162619602929396793979123480554867276746281916542152873148706047927762302712102734455483121411014003483993955721422910886144585075180005636376910520463586658694728106562118857344947697109303852549723130604567765993182369078102512500302596403820931122413144444760289686962836219645767257723401151698394294366575605350880121171081092591875220818088083339378038976041392429215549482663603226221561170417406279614643634455678717812459556928661349684241299867861090736198910838320016676805874796011282677560223455889724323797182431570406464813824607455426136302414038408023229641198486350408173054454841720304650818686866664563562965423739027562113485806126427886743259823313073740785152047690975269458981456652784189608924783813543049719063639907826079490869200742841482472038132006976180519912246850964095536176914224044981598149030706358358895443436523381051272422624530280250825583688835676896559710164925995641452993706776202503893422402345839877091337487582410997357595780404505777516840043870727466500108672671941153956021572254490770153275672326201045559434431444429881018714145036250685139546476685229107766063876941083493681787726241332992784553797835693406730293974052639370326107734828922222021304151885431450965689008747904016180964392214748540383478111858488528957355141011640930827904484068053739413601711897121807503602645989049509866090481116007184057719091855761990848231723883596131275835097570342981114949264540741640085358165651818694346243827441488245398119638733963250543895986709320687697800690154407947441770898413827867416666560809666876170111086090900431602448729085780431175879457217583908622463748682959209485398919374416109068930720157625728792330590419920724561134952332786365195184942588718280930630957006711455866213032441895008962292692818982765848422636773398503810393866381410243744049251127488708696219867153941425378611140870170086123408257083182190179482423007964400829106785426848831958759953530994918255085763915953669943569194374335820640070923970261604758575102219356560833731793716540701584461842417925805642284136422588441442619200151456172580040467470416894821716118839630944838689595684734355361680257825911060060743394284350510891830206441702782254543704797441273615310549583092612849882916403590501907144761194459765397821537545316050522770099414039046795893540922115382813939131198184330832236622354670588265800332770470148434825376744391515421395453973399758849825574818654681984585654475425863748926777804044934827127032064462003472773860066685565084154552991887461652217549412306646734474313126827750783918985167842205829368074297704311683564480932420655963681989125889889643560624260855296390565248734157555098778661390273536970566795302222558427670541329556356216198725847906119226146749615928078255934124209936864409075411064608513518340535131275724298864813853590680712166458674003408279126341627643166400109691112763411577253613552974349672939328826082611012540289411821921742818110056801102474801331087193456040537885489874056842253605292887502424272045586252000581450526963055152023906155786975951342755452088385895858779789661125548624144688443298723083068174911686141658116160498078735786598992361578791168125235295793040448351755883400414262264053551804530234082924821714799764841445924405248927404703220940488787076684167739479198508930207111156145966818618785331814503161312450823034480646083837512659147105883930952698943770169288568391897489154354411548170852916904626959057151076623068306328647055886691564637180051532520183981269575769138431367126325753394808504125066178727315661025922260792974516927134857539847986831532121317605510057309261771368778433464748346424768782057249131007464968026269656806423787475922594390221489525028453577477830583191510815116468253597614455726863614485121201322769346926470710344074373453225958660102341927186330962978121491868484468790143769146087307362303698230107905864276751370028996746455131197824966505017488398303775908902923978858758596167030585665980538332531025243614074515421172188025726403240528966757975576723602597432625493881177739782407738812808950418508463482613022986324093479321121397923402697528322977252423460153344338142958433583574089981396023000166099143637639115030969124949305687790884321027757093749811782301809755696834047038158071898161091414325883913657657907389408316698678272309153797448037192957630261474380455046042832284614485394835972945974362215259159616419544206029876041040723034932576592632495743337231257814152087580928674853478606868944127757607822201497148726342115643492413566623124458047648147475128678687166226287834786808517213759143968757019053313243873467196426636584053569213560315849756216243334450406464383264137440051058231848354473661469972001189466797314177636520277521904211583832639485807856138452324059778168728913722063527576098671078949598893544139371832242100687866138545723119865689149786226041386238585571847995538429395979415889182492187745370503316883597452817383318716476630916655841294858237855439581068391957541226122745728355846784571636407497165107065893374395417344025368233617926019209644349685071086763608396234537737318379458353701993224408667212537891248690762296499720833565376252059472485373579983753168763813329857680914730863624536666173874211374301277052561526233732850001846783197136510373566036318472966832659585817925595349201140826128894027260684751635890588134731221015165970401399779931368116973352207543333947355928753150968872923608199840577468575469715668789551323115158730913143720960011369947738359719316243548008129192325969607366361641215970922413486652378735144443806982749097499590187586497845417185463617731714792050291059742557508459267466277465862767776535441182900551259449850375004447533421656083990348886082568388860406572715259480199317027602899906895174496886474423456303373990260810492200744129161377260160515440307977295609397411234183213666570292319428791027956556345414455409344305717065540824181226838181091233698756897710505378173110517797812437064827463631062485093483464907477478302588834310510406172600603486656461040653189866231767181770971863658183630966082141632658052810141911351444416014029565245866535407319461932174917329732319909139391390418765575675454241164397896328418935991477487638639018435506578402044524828660636107785553828392562810754097818421957648803978549328411448273913128882752312747998668515421703271464089459942710438361719354955871575295136702055486755682728823313796500486054898294303198428772363012242996235234041482585369770385943456468442648142879114315357362893427281730096435068924626493818474715289136980721359120751273455515014510273702169707494924815835300398890525723061265265184122195045105314065480669251431915756871993904066509441205402876421444703067298242462383297138066168839805652426138345574448047491035507784492281416314597441070318011526422320524819275198214797723101951066974659691754056368364780896881131897493026625048452031734504241024604513115367710347537368572983064707853816566833837748324269241542007673499791774502112678134966120340013427049515968670021561412247263236923565295467919375943192857643652076752473443849049906387432649505206856105705539920860899304850207791999156590726888002821496536030357983208406802195434093058319169917315065287624357506996548379453109001054133711451399567705070535240870463703549596231002787648496392683839163768397977788185320919787995714757322092140520250255961811822589974044890410512649989924308077089713729851330282232867582329162649983070410169315391248797653833040217957017758563872646023239664646823644399748908477794385739876965667248050947680280602306680952774990164906283561919022688915954988468347665178458213098555718446548730740593195814354692399414037093410056409480531883225580309171921355576417480649294876524645258224221046925791087393326517790566946181415852324541239595787994356631138300655892594030831877626707136054966906634073822920212962855074201294937354853537086881293745142099851404391706400672875257153866961490655007329634356929811874652238608054447489429479394163235112037849552654187289161334548088742428089460107869315704744886012003389459886689231971724233292103630356280040599053256130150467831079248785870778249944361868633585773019319334373923113049412851494255967969095724992354930717873463787626614754279608081283855844067042410048708754869850980682416682735567801882259733255378822616872259227880824512725479861556436519939066392927583889396128868256580420656606899717721765248168878487423258021041526577789661175598090208618222469638611044791965839757817925120978916216998555279872546156469662629691001081326668434247875084108323374205117189447066098012335987669553285086609063070123087098157551035341749498664861630207340681582746787285830829424006768968063592575378427124774251985714537989873418535665743138580285755417557581353297896075996021640432928045893709451736058279459815276886601953312761963925482220216635051623992445581329238221076333837283010534807100338141874361841370670148940397795502010091845825376211935654852947783473174157629706559501686886031508001412995633180465039030764568382296486328529445631242391011965443831597130506957053226299127467796337599636891074183964501370179508265612177258347409964273890227419257950729830140757276796942016228975751256107761347978394736184452487646767103225945078784795414893668628891571055651048409782426764410435230981485305153582639901467071858164833842866731098411079189106884838545681226139112238912485032233318749436748246775887533269278305591388817724737795269756793905696642360720967175839906734333512872001907043550807538032953739129852047099082702086414832580083977704125561207909198984184958846944816738289411520869172435976388759681078481220468961846756736480062998741308298421649139156434637762016895925605221921024050760993623079032568056921546856869656880940577052157078753107180018029170898573063810148912453618399491169287530317941619755647004334248933642788317816281258252472534899171514330403094102871536727199736170847965252434399570216425096236073722372713027454755252880475532616832160609401621711562528814125145733864171114853318123802294481207826159368023031265276071430050079511029112846033063664482065655356514571960356442329079585493882781100836485208324299127572247334208219662190183225414634319084744066045786043621529723205576173444873564579894223729323811331436224384035986125542578721863766662750046239159250159045927968420361304635135274740887495702869078452048876672138013625149139210160207512081592040191526431420822035690733401524120629667117531226283313258347213777847592616766086243567650174421188378237740281672412781138910154160424927459379608361735218669440538051630954824929428199298868215260094568768372729575467817791922252144368305204454931329062158950819571760519998370390798830522508963302885526163914732137915613302496425863290544864712963196355120549406264848555272737753751763484216160225550417002114478350909721427646100940420233195559327220564149908769171929888107151097461608039261093027240545891674877520607488456271565610839917463797856650785263899105393488361623428147167513074071278938973221949730478627746097532149001429287757731789651293707844177866679710066138020040897355312792173817690609382183421084516630717571282778265890860848967310768711385055651263981916197032454335717984769462384365128909368054502201062617689486819872969697850838146134320239240138977709209672288260551391821532527413505431003427742907962902292048090800286574855486155827803890420956434656754262566294739289734203908935181246831022444864708171564766031212202982551386378092710611526024441892317156070885328699912708963995217441802691613679588002968695272033347285635977029230097302080714074158534485591049000838384653690983400060366454404341624829274153402090260805186163610657582404540071467691044120128471054806533512533348814142589620350788584051452884172495361119187146050987242284420349389306873111631566185172475974838447743999822657182296778562865957408677492207953328301236542447707939543161482958524274873428411614591875280758592112943937883511486186657741745077874958281949663431894395995115448560924459286602598810793288692753904329555763084301664915189561208888583412261132549238777928222476532679576883071578137683249518536625290884033039836130776587581896271830427774823760928132775739215432418813668952724741426777459876827453368917908044949777066141198396286889172505325333665338465594537096779429968001230389713938088517805159269625268172708577911037950475858343221534664244361365395927263901318861552286868576316660106410458483266050977929766503407711034649498993869884725216232882959737277124385096411799813259650218901932078256724804558075728756779844929109967972027674610360707763311623824558978817245186803808461000801748594738986281967195729925111635255482967490156297565836677073755012533440994633605634108711940751911239398692946834234329063982714087838984054731686782876340819558923922256727501543283508025430180744522848856613654860746157561108731754910841993521377697772343781690964641783954863462075274429150203376741318539859904397970217764621765814493640522177970469947076084585206587964385119134382263008452293702224480730265132895402561515520135177170309717981852480119517689472956899267340074346290405480509504683428333376258361605158277103621140206250938548748625002657551092284564566621530497510339135757905952537243632715157523746201437046779316460555175469889985385629669141731416546667199981240246101859279575581602870580009492480549766857632031639804170706271082371377500111823025355579176314382547599016292381430344775382689331588638674907805884239063716390014213437270837448083723624667073409487376858843368096520115797083238727805128862484836595731221701067965698940798946326164468607009706919314450523298203116052874504234022745399878897082054373794020579474525934364145920645895882911784075186113179558625519766406321641195695255914386265621917974083347153565037607324093602765566472892614433288888614776526215103940018467131911595874101968920588452365084608422386476680766754535703664172752094141163587509342805056949544554283820353278785469728520888093864679616252777558427046969938463645343495916580177450104792286315620340974090116693035653901427286425567383791512532528786906757643342706222122603038096414422346637814187524458470464213316290461720380518030410803197951430244070376114622021716032930253950983848314545605432695384096716108977537272484754899038612552473035829180241038474936998420493565547110939561373187373559845102703373606048831373549848597574952094379951674744301980927871897698186252698823821694546385417989352878117613470861285533191980566929654407020705450472045367179774432350609774390886743406615126599185855323032469294480622138799513639951588492751164197085016691287591369097653888357196402791186560190143242978024459281204367823990247970167624760440495840525486885233853105294284590513276868467157822082800484345865594824692447698138563582110673327051099487132791803673989594689097759474280273687579805967269519393007695107447992663048483922181027934409407225295197193041711049327803856622994052541482427353048988029726811550984810862422772912409516333362376152067591891032270206016085557153157846670667018299972949467340752568937331082188150284901279772310505393097475971650799306068350924335374420433522946739137049840156160173995379634812285008299908196710505327054442996472241322608116471957089198843732084254256827719069344624940028161895607728348478294579703258597060348153014415581238735285208653660295785287923149328906213425504737855182524483745771582768322144519860008493641209959803425123565927381414562458136808462410086459769323679771827625497925652081569802531304434542573197717104519368148226090385273731733024955926317832212442787984556691645895358465348707502649909146271556452328612795321942232353935801593520928837242923172311502918529182649802950446633882084361558163693706707430497916252809480938125079246226338677893469035990919793119647917246689385609051056196653096970115068371633912291821237276963093189073036445101134538858716065217776773369008205678420749436504333297699522512533415954613503782752546375554433664312247844639738185050073716596825542756727114963606520724529386790163227786944381793436325727801106387102878798145510429519767048533888186932919948500890783931765204379890924710394937052940558528763977391501810598108298731998841168316965140890912631111528257815852221163650419952092645661897315925914201208477742330105019647670565408773234931785445632845589839431461666650869424499834107011572150080368811510300093350670091988095612412570093221474569702972079674515719053448077483260397874348187362187327732500468970771264129722226246488759920144447923577519453438550263354455746478831498684181223302726131272356220200307777263191723524525400616066294907687375562806092815743943639289008269377564028453733199932767004245325758957058325922157186601085131030103657841714742893219443438859121510933037540776712215797534795103866966274642954315704376303823031337138731613133600316201935033516285132683332615741834639532093044941532487051776367908153362534246377952973982178226213395863123375823243671247188708043252366853331930062232040168548138547247466936907104573501343331405550728316922764682007971652595660678898936609922189557626097420998934758893599136894912136919263678050539412380940795428646309368378390740344936530900442125293639527375200268805827736495626795000273989948451682808490764559152361025712045174589618561643059324430209654316743186018216912039039979703716106854491818250303446844862034266522932232691023196544755460859353151103923774427130413496973835542764894682749725256451703650034539426573933067874720909039089180064548415909254137256818119222658275679316327755642263433984535960916039390362475612432749429218679569938267700298751597845040915157170166611916294330903365842806375495236402360765410223817848269503065392096997936038428373992540259464087531974420047521042303832980205570041199912602105803250418821800998571965967862651621420851609766963238428025203869002583810103458332525651953436651055733695300585656170738769057141920518868369203963750420902236957433723078206740801185723223196507108196903417020565137027505360879823821551851958723752051584795567948438572721514285128402446738120305199268074874992015786510654128431976737777950580507617061319840967254532960316038029370554070304360732662597868904127264539815310541153472199471869477804558584932949707627114932160385683063401184117217546420047875820209257096016909822507795325777771045987423091989781652772692723951222003380030220482224703173654862130880021676374050615701010030497124311955545428727348133591360555191623132353556060457975100978281292354860399173861740016472900876108951167009633294266057246459491971274666919955409791033660745619905872042581891452599595129128325492015054749638998560378693484120864433635765060558472805147301128159187738488224128661082424678402933954283984488288716951652084568187966662025632876641589097812064560752308199495226605754225557219633608628567679388726867606686902912655936594512915411964741802063195838592303657273344252619452345115740117658469820058420864794213458645230839255381935117641196103387822709424889077609189391503107927859576875100618706832638499277612959994613904014738414587575049975346038460868075997618439549984519696405633951195772018183129324257917080257985639564104641959938130302679406788650481070473709771080174287870894139353834518879302008230506525077266492955291240816535019202960942868865207101436647781440642892177061384503911998745024777573759581207244076481121253263725956050190322389520949388472690265894745989903022144683942947366673150292050694492473501789215881288549937127232428797382582053252624271754812569193048785175028835553294795925812628165204645408900193496066178799317381508407442581616102396963246010210822565918304925535098264344670531984653437227060855248443138617911369175011213444723906166269383654724095340013166547698625049786020577421194036105037470210426918680584449907730161221941302755403855378116652372336164299292941177486981307702409000020614579760941039492566306664212840607301026679206075195301765756225066233476977979006114021054015152175901142726152973440173836715878316290040580463739509569428782228091096286591632416042031889774276438739812323864437707018947381890441509480706624470653027892934382694144146687503263080202589985420983476126764553820266203965948533227319921641429707776959481963260371049667686356519673024066860378860885396731286867144998806377658490609971343423618090536083367483420349807078110762939143363849415343203988907022151359856178164525620998441735608489351463598447176811787226933166624344984017108784214997532701405021055029951477246958717842506403115421601549119302864501603342415282153460197980928849435256720187737533905747169783269617214604376883128750693183149736244365751525468605411608225647986271028959587209802714113655917284662315753174395835167740669743844461472035356802119928684920698261415838922851691778955304141205016438222019972256202992761798042896153061208453220051394845037479659725855592254171480634162212640567531026437909364406680757151416938378763647286869193830414863368426476588307115625244658212974853839983647797705462907894266838681303229781630664124905890142811583428851762634238733662950278991772258223397954649273479165897567654130347374301941284962277076966933222294356676620357765868766382633793452781695356719613716416258051787596599259105007665718720604393534330872385974974230327841465629674034153661950802878449262379858438353559872522988536349122972054504981216468651703341531153733455903894053095379905250459936153219668835625560787080984826036097479212373341761256609490294381636507990104917016253435345053420404603449366686437081247812573913575162197967007771172181438714143615646996042480394090951397186475623238623274553500002515439765326615922183673925370084173677081177944968219259710340652206706469216931302077844383702557056267151901568244607500530188428032943000320078733143128467239230772167704863309278045706367783010945953126377495938901084288808359332501670352120901515300162069143484673263905635612262520016083015327585268009832168651950197289589669454004382856718421487114451381602136971387754307269940691111090283569167696588689595382592725907410139894532948510795172712665938058561645801848761220978707050866608296151845742892051272255327219837077434789076490860820815827807059461069480961005379517246448882089224652648092248276595837857450291147561154067237969639501641736579542792015925759333400016280319357277562685944807093926945741910824732230869354717022973490140123530471306671774833024444635078098756574712961625124164408055587833378794534143794426498193774514060714848773519361600848941564213743209859747139309602430264222606084589031395967687054691085542350669199335351096356769884739175549724703994153719862636301946713652962149080738782836221195984739332114166431214447024284245988036480544403141344993635581834018189796476979504103300568635612115880162544561901092853852500339667188128456225326352078393271740804916511205787206472329228843306894692231348494057277649793033319444576703826347492617623479437710946849858684355903413724162056906671303103402963377878480158278132476622087097986047879588522482172810735482649971269314903206152570916820865299979210897472235030725893915673789421254121919195140499638877747492702463985447311896669438100194738851531443474550617492694197273488651027627040897321638414147855626337109447750048318491884465751347041087328099400244270147624653060933867319593986658050114877945195672016636019893059619080554015177233461627999735834415523186247368783661585596769358141184954481384468038660818454222646049120979309654786296611393797262839472334815626605400682649412442825554094172353186040149259790852930592049024701162712580042850277632597291493118332932197468603667051820949626224075388925770460747297819907407583506166953282841857908525080438306639896663467695095608514145512949935727235410938804733509681186609786750873533449602265331273823794725499701508765892158517900151367597743172963933058957573833287777260315212396773229229476491085477398691308990221949520282052800897746829833277993420253039237180106296029977159992273868061149349178186910013006570603446521409835182223082418185377686945816410919179587449411655719023080898834808926638642260219934106725022338713626237426988773578930361385927268454812547717565555288753862299548519666675716067290557110662385899199223996795827399642952033600629284148854089235456929516619412457936321977845860101843545323835389214061734189217435225783018506655376381593340541370246485457380246498844971407067079830757157181535177038795685868764502413635101871250916526973678234571178789441908908415814684622970706614762296636529360809897490986510114587760639613067755969436007547069806629169339178021402695769163161413562874342929431145789260449470939317392048529873300722559009777597550845683676574906651452055153159314849840041641123261331812186648692132796268085308546392559424362313124070534746920236469217005535203632982177864613570374969421538491897757302529251298213319579958932129281708658760252505439617410239888633287596732902971958834716094747413574111701657464196002924295528662825434759692699120044099123946268394359429275496787120172477998056483396332962928453887722236245152905147865842037309363250153858994595899837060396576531548606784487212944699527288653441032421257091810531669409645692726394623204272960536887315229098552443129011067768376365923444304097626850267184335987957527504911692653844802056870578037080058914433023007905818738287808473209259884042085643676312818197079976082634124355092253832122127166311094974405549704954651822102481313678968606747083987333204954864006911887591259196170012892064917355090307788607754405047452966307622902380250162845458142453007879031575885725450915003834898781263824156577361086784318581608867299174225904064770874143677840901165430272807985613866887456173183687861396267468621014881586332285525638052160926843234836835601297522871676274857955960846468895293538278873353021896026843843041341127309412974234534876782458508134330193399663991070419066493790102754928781528365039658574665638933929802929165759419753921808642690595884541078786130526789183646021365067235362201393311942210672335278403207142740815720506544680464097285082865230293517526067436695028632836012229711763778966118358431265055264665401648530383292463235098045027087413856241589344353388744082708901895208612648162912158889536075674274807190030882596577882031279095075984554456012491468660435512806370372446993322151678017423023098970109063750733968481686807875687370159136819413464103599168370859167707839323391028637033214488170238805964481605305680827448797207585446382808752291559154428023010462539197820239894530346778422903290778656223698997641938998191564862288450724809736624284226633211002379924402449424030133251507179942642502593257091605638043002156928560893188880780072783711370445737001845321403563500662716366808659057544941838780001153871464753986095512076586671432558945888616239217049840109468459071507936806261279602356611768715762474946594202833978045728821761305890898698568328798369232660171126911046647695644730145324223606065656463569324321450350187949339520548452933599458042150092886258018680172695148985705473781964743666043021249231813544493684214019826248507281357332010822822432202967816656373661829239318886953326219081824125690533499899789377013701795671190039676328243016530327279334943852914106962125645554327380726230217517163769161735747632863725431334055005179493993902066979433132387747856655953296557985233434235826334874571812564519055794635371018624775013357938822533085747729936027852374266709739984693557023810959040222328379601834789960335959522361070820752192496235777297909401425776638294798161228210771238380040513388152729284160679393631190893037328425628231326050950984751857829616002419645400453073352386672076312280733889008453491620686815502089360590844782895481612956757125465233683651389663014109449628468265212569466030923698315590081339388171581856859296719837146424247720574428232617817816605329459338428100342412407689782209037406654006676841167450844385878242713967167961405057126267184882440090759280122382974510161171595742164977800618372797410933228674490018942727853515496639085155152622248197269221747039104320423611928427552239786237891974259040825776800334659176291095003317081328712193468461705668950721216993069499280373198269799777868763681207882570081654003617533661072475469285889939978990024418567314595203286590388447289965091047215427060563523290894301584959276298528858384582720680004896456164305270652807300864238840709871020173857820723911588516781230971978166231255628537705491652811621600068704138679810142119683009255720493927375084268020857510858794185399314176192248194800605906754203393189402271804412319232367497180048602026019892073867406522244220653149303697514641763865223498833403724698207002482523114202203591640269323784759008945433391626373609291113148077915480408295959106554923917789138802921947502621746870184306315489518508802820749679519404268715563569331691764208795820125384609992887020311705702777867463982747143697144010671194501998229431456040043343605632728311499813343702367558065833786390884763912091088532915187018828526833509915582384016955672295809110389684618844521889046176980875821066735887475725780988699349605146128924247266438658949204823371978020793111911824926312823774089045954396944010796890114852816774265387065320483981224479429052907296399600887687668742441016207578789714865003903256609826001038018445230146514947451624897759593489430137436800997703408134654059220632439417116669126955495603057209970480538040145787619442650179912909993968308493923920557421101880530779000018111001163740856472275927500949636752434280589170852739659419992083225349938574819760549235225827981414127069226157058834735331367678971447141730542327570528384407905530034102506797197579183178475055285260423393117383287487137166799564312875082040323938912811513821668903416663555178126264471542154175476680154925466506908778586476443793276969809445476626452021819805215113394648681988107143280380071628317402922624996507504098829637254842855051402015254863115652637257903227937739743575010434836731384946788422324542859052669404893727910318346833900336314021043492354314891348413427163042849826843398629381440905795828916299139264702601611072761912980875580973494164789324475048782287653545948171878718306939746407244031910600049132107189651920197963785528315810969066831648574761781683237511393440994798915633815990067671651965709690315313121670376951007371593646205087052904119046207027273966155842285636719251613940857396293383153615221882648485337453921134511300316475817303938157403376344688575019988038941905924812476587127597884607501610807754011944809734006565262220880857837840924996873623403812329564655186090857964587031151988520775407468381039684163047123368385879604410148583847339622674113224307900242834610068554082412147124033420357067856065425434824132302113418837273705144327546154803720765572813992118250777095269600283437205798778276881697820123973351353072773449314196862677599274190277269277127344491344170285650446930422442310916380108117816269431586760685676361559655236078041309557262577192482250133208650668290063219278810639390948322764860640666056136259383366093206778305520314053000000238043068444129990242535269441712754028882432619956037272059886283685161994095936105017116775641644653541260172566475349719904802655752915640962706067169855534132794469901322704425667892283334218502001248208971836292770509996095319418907925958846369604562379510388013695556625683499227679477615378176029833354604844456955047982775154374139895494706696074678395455243873664868846970809248192799036333558523924006819089166174061075960304552726520224266030704384865876899210018379495643018254783724978516739160791122631090085239222055513465464902740121531821495413521973377228874742884102347397913729984929254299507120753752806295613802858302929288606867681170128943039621007416746631829797308561470108084873547183856716807635089708615072215873085605590843796546700593603502202343898985658068678207463642427673001779987252069531844351994165669002016575656818715536560333870003325263024573379806048170183238542510850118509980539531439614541622610519832693243738098594351698152495677490837808423889249924130688193581816171329018734846096768546677296830213954336489553302804685720697296052716931612505487548311902246315568345748325783979065623280444370256210212231536398253127973565237237065571053817317396925901135190358200346690112530621761507741717324739505842166432905740979573518741732826821839106807369777501266174394106237068900758037079229609364316087221422807719462030250594028594989431155561731730005391522288093966820432076534280060187424582830755219252397574425939265283562066247338993509485430854472857125575641169477823347226066834081546708079176153796953032117025286007740700015689773645761740304159191151724084974284038331388726219452104614156869178821138731065653570460609850000104810246784285814963167567744999113940885483504831132214613592045397056092057925819220691737518804115879560992279893430681138271892415045764016812702312201630266186774544595099237106750643570327452339765827541544525935202979908377067824010415832348864239534957389456017461223953075806418156335609687302096553323491164274036359381812974574356792337204621958172875715381902620525505464174803144000851568277255640530244019235553183885978535475014593745486876934350241912655297301389607254349146152018598662890443384287586014578086764288478246115808261983098574590385218866116846354926520725049127920575148251771116426313841561379214275482302983096873879654832126695832226365970791453934743740302007446342696579922150788567709392999305290962466442790191172759646215580327343539701860910614340985709997519708555802470249617764679839459074963979326182735857740499806015686119125655792065285181186640099230549186747915704301941694702725299693468762889072229704183016042122535469767201517887088403741078395577590471656236651784553923802071838375323430393405689527616526196723595909710398237371229788525301402249943812610093250631771248045299816638361539482830199963516041240983015241588365933447155154447833466489751252714992198587083184300193289769254647337951837945427512998645912639920169785414942023276909312032948742120473111258961587678729893240403203636605398536859062618824081924397494148019929876134610443874395455017747289238513573949497250596174867608468096790564755298825215860809675774877555118171126682822065509298888054993500395604437905065506455174708642385674643936799240701590160242064801091608494905176209356054308693241375387757942754200537016037473394327028311829699314224976271911393717300281131762199421541606078648790057217853637381868607143387618023802961935324117545075985295444814450245189552740513359210784427459612818614335875176604899659079437742198516810209359303378232714278598003832496707018530465395122065245089670540555324747961061331859598512565631364911786625858553771163073897727708479176654148618847753295750233947043368826200983080806990135927733181451086378021542925252334272503387522812144179469036667940565914625689693909524101538090776945579495496165900883740170166502586893930581996822576553704259874732081898587001512695449034770582428284753122834259229913834333403144241544686405628265435063961296105404264558417575620756662864716466212001089114780994802556717936979881152510408166542965967529840491259453054585687205877999085978011470824276395650413944614958005442229149407869984593727861561119425819670792950309005521198289045066628208411706862759332595307658321668314644379584780638616549730277937154386313644812226839505020944596836113040329032218399667972870604319201239317004896091238621181995722763651409200518926513883695638584893525812251865309488974297040214020349004268104316432490222061516790537237668537759520347799108776853012287679443594482022216740792071658353718574768472573623402711972347667091055248646213882966844580507003558921864981079027720153602188121168279372096235041272982935741719183319125054723901346471930857635533888930964516522344318954448636291573145554387885594980794752810157466110096431248043889477443881924637962349201865847468137699694912526831772112286435214514388720962168017436483196482310986619469060820535337034266067990187112816949372465270365559064785283892019705874890971476583237078041080036068086505458509026688531220821241907024627473826613517213221590296704384167153651846635497275723862532629636063321481460637367481473235189316516566401884748749755321792367374590135301476822627585466352957534193640598652555686663827964643725121315755547000244268067271733550478849129381634583670078011638402930860642958069994636769319132998607476531123938017365080613918155566259997930821911400121186057298485889867569602004711141550341319855182176625336115454182049353335642699575536149115089795613142059572422670302120294941590172277063095321700964378230243573720699488481035214728292131381321321349522448291451946027872298532112449752514432935069255295045030269435955636938012771370769704146893748654314645305036399709679090124004583979172367729491506669662095082728739618041296709306612845292825011369433385771040463793487822039630745392778246590885710290660221323450160583939001985284686453155828988203964007814756080387645346163121124601516050656402736224089821185143113308885375303401293525925438662421384059851759280530876609682517385703298904991003899461608818263290828958368915082510372340969466518149168907910210498383412550638179662522998059038152024752512494044333412264772401848838262582547338312915254516896067886299103031388656185509463848799658058175542837682472342792995100654092270286095053938623204065741802134823745942248658281203672898191788700089678411688570903055438030928796982171926333345803121156985307982448336441344784494586917927289798638059985537494687488495788421013537959073605775946172831475354689277632120995768134368200306755275147901050516318491563702131716980536544929939710655482555089585735289220735677639965282349523214698637846498146145477689647825706825255227037285461124312069566696447919735238874045879490170195564655865987969520022767280998432194234675515473345900232240512772080936782537899087288545367238590077130539003115212275397148633749401499135675702624273415859620183646795223666243278184394542425394327853516392968393699109778074668762738334566385946631977084528241781755432794278847113491631402878244180171275101286487660172010133628247709326377664061107802098252937259837975395120194483946249395839353006031224925786391122737796402372233277015626761155988944826671768136461531866979855109999230504607621518115197633979221751824022961850569836285206692200575936318213872658893116482375959651250667052341575717233157752912793241005152493347599477695460081020076416612398722255106996051815204223543579345274204525428656460317727844330544843377653182807573721651798282880679550106232225659553888775851913537988992012374319952967908054618139556912955071465178764101424531904872568157645698002109484441567850605936719908176123387934814629471817852674820343135218298035748313986163693387590001589678915176775923735353183108172766333541262885909979073875662430658210911064442108039185677909597153785532116342962905871853185023897549193469873495746456373358828107831910660355956653241279437142822463130698640524451183267794890263953014240978725836863726275034395625397513337339379249045947899459727104874671382792758794819931729950455735355386396288489876610747392183186551687884441388865856756917092134731924241152052845066386805581580364731868603003885962540037145251946044089334664696345473739290625393424288235183640992900658247246952784267741094051580071759378751614952520435994136717242025398226816699078474396037547291189902300430286558164025407409704517484366356384355107884859774840078545510165563428123575732375693666679183154952526706127028407082819489706277352678560810129506378256497543117257700933714688293439883090949640013162605311709137524343741221515434020111539690939238763561444379221226656116729785123243470257244690306211704280335716818992795148348047434921910108753570598310226339927355081887010317676416177104809904023981953661950494831578615510737705480219427200482793530524905986430342209301185027169974578718577025766274132629954544843795393446491779082627074199672581147775057554810200754111009128926276899450886591480831970209006452354731685324506601814781379283317072088567832637537482868971551074625312570822539072751115217315337956940789380810888721746292227395035370430190555603078877547725401856478680779837574423757423615531986649960142201616695370478254030751156916893655337217609752910311279436623157506286564736753958548243057049728631892188693688396505973877452054997982972205963218614391042526079785472729980423042766841346073465226610385369788697066704943122596848922790785358024506489376866876925836635541237707612020176626595802516188452411492078243064216472946393080647037120477590891897413384430497150651460483934411274773823551019036496005383585357220058078347746503943354746387548078666420381344495632178730077060252859656681602329447333985283132283039684087459468807543369936260716250769288025108807098070690296987371642507529622778775416641703784734545823181994819231968845917512789511201086273044170116211004209440129757271749111304345547449883786131136361806271821921645909631568555732162420456662346837179364651801916572677215114320173300049141549480651414175947706451624663872773684990623337963412160875581729553851925377736503070157186954568702930582242357848566875765480792242899806039560100226689375102864930703821192616166297356313332455772938466263024856670842705891723844491736570983150864680314378967284790987543108331490774330044487776124232094699018593486134225784514518822433682392118842687764404640706816725130452807124331133524050222928469624044970232082809661105107079023927678498983435617894953600095049505615431643160126236020862653487737795286239135320716722379099904320820909882575676435770069534506344385827301938366534730992382678962311544914604823100821172947992065674917414970858379188108158214237945522169041616617515881069256346470302279451851480193946741347719098193228729137853012423337728861387369671497953447033512894221344893617933067310965260676742659031571654166383172754974080289619166581383969873723820962082917226907707415621988028496441834521474834047507251325422975410242094275609115106507277272809025736042823195905915573202123808555427541951671773406149746937257319568444684769090081424863583418912396257660878309663774099751332606987536865026148530519774934247052746510086205803025252728263174314036672699857690384557003644824904220007660720190131530770189090307039770654388879569509862830874443348964437325696218023243103965887095407689707448667027953701913586580323144355745091962914887489777932920064293736633418351218174333822763284736914826055540729749445313655149651877845668339886259108779195148612757217770403512010871509439016703702078898777300467480624097423736107953054521281991077035008066403026191174615859686380877171613799994252418329765034503842610138941307991196777661844489029199796003478318726141464927293630546967190501683909070935734496913603802618351743850681988745274878362660817800818184677415283889133233433643317702119184188665972170977837471481070487142375436839167966620716320191073750979643953171720031880167388016217562345965700024170511197317695601184778324197866560445272879660555404099068687817842121995141877183182854903278562193272343449176224854921395951215550419600674315140088370184602759375921402735674404199679154388240421196381122967686099664626770942897021227678055958054687674930776665723328357313537447912847526844255563358706905512598603452917191379730910791434427525357095497018319260285019918969854382995506133862683624650257217767754765870777054933294797847137233527691657933784966548398281644613521347330144090312010956595180180912159630153730536527933739579917962219135612335109458880854628426790760488068974779871767776906996298858492908198634880784155128648590858470420491982820529202207301976418084843890397402276906816325528329926067578409018337969043514217165921318780887442603415994705029065800577167140329545907706988789846124353900123571983792333858062337696141676509384302583918757945522766250961624819877559278791716641208512864899319773311855604544365406888019901728856237900015900631867168096608485002337621029084277939321265677101640898260759637752992609589269651294059852774529256909249699914107439661626821016063946548906072653973589706814978783754006916593843283648119025130192537616175171749450140541869854588011705939219767880265807185457535587302596905842903490422477669916659713091309078064382258614572643890406998402985707642271984169768724790236719273411943680562106481523488334952659006640537308263901284051964622010530561213616580681422270019872233874710428058039250170254146420379904404349551237685191299733547781571671530360225654856762151001989358881916506548735383707509726637940254135441276877371007018733487944023080382974744708160049598209613250677808633223441218016616634398550831842433887060187355130390115959750651689976401213390739809897806332147704077634288918790736117236553994870067421285923966354467467219519789461083967602160018131918903381760309718592150296809946057035298492067148501993735947478022060287400588289404593967453468976037182664186650024022992732849864858141195401221323624346653652872147735228473101976334921226108411438566766317195781859118572045713811748498625656229256593028963411051648467276143778446566090107075462449569065433664686435636827226444729492304231392033987078314336384898629062039578749813904736211722030855432674509775101051472541485033972638974260648734172916270769024143912439239171015600471219744629336008691023076971830901583261374511431978782497898235073379957234589836121545183860757896129217416385043646015094516279190527270414259254513558333124641207222692222787610963301901796939215000245896582470836487169708721337468546139063019672970419460022606652932847517101984404243571384944054636254518209228585107188745560732101248873048409050007580374564486113499071143872702192698650336297633368203523099061194670175723194576874661474722342347319821755377485283073193493815002552366233107251927174437525463551137644375581696959789415467827577567863825295116093607557175189849082556702984691616312815472359086590685941796952516304053381446961050221329697996742144115494019298856936320271318525626737592793708559838443213947672954514314821308091071222689548303488350460738341552195936689238995932849408636229655646137522866010062793571242238939672217685513734004917083855402069671737032320626826384543099718380197872663924727446977243061684411316799406688720866318349603869636599297834178680588343379547132674031034533195168180271730474266117426306356340395271415863639127839372607091618322036145787978209707224177538390002840558870488168926794659195862674681850094722027673390106379446264151726621685307915875982561149503793266076027469216733018513394898411884036221619335513809780633479750032859062081897933639721915800672102051923421673078222147018367831467373220696682501112028801799768590464804294509029687201403788463761883478707266093763728269139424518266479697067501897019307753846881648050312691371511063914688154754854824328628403543943350458480824958915801904082059726742308206260057002019681115422024222429008635057054375138566739234242337811085352523632450475398521547975960372162889956276985417616179709682294785207891345593003002748823124968524151331870995474220396224425536599912942834021339780384340767629987333843440683290864849856048731773789625788358405871418565743470025730928291717489617662525622252775944704423770121944715504634765536502867127152420931799500422939460672375124162977471673339089580857047752439686557116140264719458702381915743954556654411210119160766952140705801675762585236879901190554776377688761540779965354728876640131220422120438887853124282263781948581114828222942046541825736161130247891606425688365142813683793400303724932101646491863387685891158030156918936671936177919062986710208242126059700647258309006135197634876555745157701596712753390573646686143412626097119064821973151739427609202427549734348980578758456946414031939815173228169814051424195695965613988190918078702535087140837403108138052064274532135193702405480192126735256092865470097527231126389613058782556672218196743438900508137318784804612571860977997966159202342154309069088088421935166219782753244546882857771988953257734920055890846566399738910024833922592343888182221280527299823554747430989956036330350910179607274108584321715711319673934904703123370018067889243296655948974803128064745078610964893326158685086239903342397995463565601191688238106691341449472658306247354677681004885673293052978890982172276894469869418686622717954276300627811518730891421820859652317413079613973461165179069877446149234330569288683767581371192602939243220514301336857747555201117986739564042954938489003600771336466465994180896715297621165091544531777608076226387698035612953502751482090173955988520674639692788183679248767509584100507634210775367496349471107439022528965036401600235195292882732492813456270833278896719797721627849682606707563128837036043076443311226307119413186964548645703194144563984138631922740915811160552422894060062435134087824145296403282360209203668426002484384284468714561382885340167088725150997077891215742231722932305766743993726143650654804922884413512674927256997920260990447985954437342235712064469515849679703127308872507654619789486386446061033634719877181418828105461392336348356021976911439310633416442940757933108603634459519319433549814329112036225300997123861003376972634522179898261151422535276246512026122501097581189167260170193297921622206575258626828320808932300158007522663918768312398078696906909733051139189417696796102810937087120055459157703873321076091237852960628539525507092461284578357857269864474574449446683733096914353366004629236376856811957765065530042756639566224014501550435565336590944574711895673910069004593015517320366645812520931590258353130197601310745249619329464769866885079403522258325936127341953530964743242281427404461277411688965037473221578694635044714216011986263406738843304369211897864788822304494560347425558548811634534167144648252876071777897926664313620333693268708463963167228041128303404352182877652142149800160128418835141254672001726108118455987355315227656999397898076605844199515393574662885170396845810273562837850591816650230186110554774842896219772622768651633605177178116101881667696664945290036541490013715268274705715689101620231944179564675050934398984578067970564505706297186163555056917400247806908932935687423488129428071046161453499333790230146259847577576416001834103253102780120931427259018195030966572810385530832862875718222832748740186174524724852088737695835295428006525173135694723889131211423428464146977778019029994587898693614158328959514312119607863472498854828012712877190774967114583354499343226486542623335742856511202857662261294376021147712487553656747348959824969473506878410031822917852690391910511993726890121755185787594990847970720898358849204371704810476350177475425709226474447233660252311589335268200365478217953292530959206887496027201831007923000436622948183495763940744910183172708241455577401071058388153815180523254286239222132255629888662257496854199048595636113280047587685358584242717570346085573170998929447650217749335088806396879441011688448843326740104001375031804435322895465808029158414056655760243736048785052161485801412247441590957786284887772500912851422133391693510955553983285118885658059141952812955636748374941899804263094141921647879428638881672458117329188208073618414454023336327832063957700475341295755241265472340925343614447231098315734960246582344670746304928837905203851451422081227537988569068299899423038434336910316899877063027218601723216578992003644080251807522618200747919244852925990816048765662383057772435893568966791578685002089110472902177428237544693104928396371833738910356254515526229976802356665139237134450594048954744225876325392239124847167334372714431054411453751275885047294371899437513763776518232833808263329719598547411481717664299543419949564350979485079152092501874264395606838944993019339093902842145533645291654294634348367393906681565189774051519670111455116390068060207177099270803326063547876680701237667018225855958290355933841513957471665059585929327769603511311579574521517823476346523051047668033830512989955198251664849927921015030803627052541129462221911399347622980456707503830696151825794118768845056770171059268836268498278344336392808804958197628118577538408246734761076585841097922648584329460956273052491005421752464645571008993711256281936663494393716791015762474514557812223095274409448689063003985784970396749768841395836025380917217808910180278168125370469459352659275696007012926701097798701540470394489406378499853714155136458949046038866372331804446004341670981140358610847660491818570390718886846259323578156206608309339961960140105797800627904820647284672746724663959454574576259560741618818017510739748657052794210001070946893966864095050429016359198694931489462946867973219017162785394850461310246444138175698491273722584655522772137291841970886897044979005977446697446270833985083339344093958571727907504424708032033695721008395208886997767882011188239382947742176213354963396279682754805131078456047232679674030152698070898658297443671163581952238367867692346421217685486418327148571993318265486485963087094792381701762968056493088255070732464140087936922483212165730240658678835757228386467765687860642706654407140859221910999277897732296678948745600121584012935251097135063078978011855989255112139620174236546526064216468500697012434969357513816954487239118304406502707960015457017043575062674355088872900138863455163640551701474685943584801648290006222832050925203901195381839595891507806166115823197282673317918823793745698905189918725185825309632583506199799436363920278212334406573541145988137680380717097622340696674558244864613200292038720065097176091544231919264834766604046676838167942606834420899359955358465504210147008180384301536181580081609774528022871030565740048146471112102595111284858544798788208323012958787307203082764140001598537922839534678214741277139062991489641793665179815719014325090175483279889416610787719043779643784510696423237252483073647908467717659597125736138869995416240427702843433732778934921935254762104699978126009351027652482876182321995445720981713672751547975436503914455539155753205051207707274681217727319013379395068946721265732455651962208413233948525704954370947141985498157175947772846797942650830225970284518161890592981300474621882797880371051927236553178489280035129102729664521415836169176461399106241204815245596503911383452228464494455453347291250311227658862324302768964631416827752719787467341200184795341105897163783662264972893141487994632113475939984190349782916984264210856756676251992414946124025188727184226879001413642468411320943646767761503353956734178874020114585678354124461851594778325615891080955826635415984720082887251565462051129007576181118792674197002501311038058091515332627234488825873065319703081571006435439061200009979781148855696033954189298874703656052632309061411298395974398461213753186859654620493829457661605575752293508151089632138178839685863862528427306219723035725451669967592273857032779405234572205825583239526143463683093021176631701514325353991878768268393583232321774896788837249987698111165760281828399944233107439471567350497066179728758568429868816120307862996809901455387189696294586102897883885728922829675013818817079280144787408439079322375246223448596567890129406037740487512232481096145792378096757017097973556290015925287547099549413080938540682434293696944193000213659925881523408216002235508005805928417506939625241814843169650603797859847310304051047232455242749701249457940948251600672360351358977883214451862320559627317564989747841326115266729783431462378689178936726097593411862178981297819946311021187868190361040962119762911060332163508199763825643737478947829244577404757185872389556165314889634025672403407347045446928784732986579860964015903091977965860154609814279269250191130765003724866944562964579237105297205963454419779543016482039532539798979787287071676783866145161538413147052201586795872161413286388310887902477359867219578752886393496661599304875573584217578650491086530337691600017616959465383782022014814769401568427974240636893795041008122194109643358683213693379541668320493061334974959675229039323376214750711806398158649147422839835709185112261902233193523043159399119127196656316866375014427644322788166135624592420785195684120605973022164082674891604393525138210724183897971764143270324668737594688644954412088530464412689269720709567651690952263903763463905628765809688859729366646663119212032654117462427713001893123889867583951213445934296581742613750839866581887477502833864696942794915046523327017388716194026509635506867627595767426921165655370999433729722421937948328317945546170948236905122472621308387089228120133984264688649436292220277878259884964938270557018061298102484554279171410352069638171664723546079912216396895726431870581833264422745357190255984564983156090597215254911633781146369571887433691831910199555774180856716977489683932786796531446227590433310975349046365003784171222914481351518468183913705240781412546642102940608869694227393508705679221748382404122539875398645256587106562865120864547658357961660316871766074411472769949414300295648996344647813824805976775496064993752805803998808088212676205334204910592340362815828626650248543119303246772994566423025119977278798768623162714878305936562738818453878217347558920365323910951706049587721606915619719820798487038183236756817775707310456542362681670005950496348276260147358281425384459570390402641242033455544572975485832332857600847585103088178575594323627357856209396298303557237700813178860708370350712107825714853813080757121309766206553204749675205831315434346711450014279928820294868335087891876002282887853148587583269437919135836641569374440687905657881544658595517960256923215282559840353439346145635200513282566897229297404954327337515638677633146021605477231734789342965289889064921813477875724505041785187078380362329533401124061787808991870498485896857224040962843447927209145450438542698675612553847103594410563096429144033842033053134675439283840695646359579897461186662579516914179188489255983346023244219268824134453130145857609637989492798116030879232517209647617790401883616139506980555465822382673415009568911214002748711267543582278651062426019150517190172237553979149473510123931917541665954651965001636682761512400995586902554101887958292914585234413505685328955653447843845732694125314527058658700616080407668294964876785442841340424068306269880812001178572086620718779536421687421316618993756833903475442145436585315178592619710576512109220781754239026494768260678931427282447920493996935735969219191874937968524306437095887099454954921537979244998930126699089978908505730138923060849898538405310275851209080503387874574978690153241157676624035636459447607853439821416186541562026454878679430762981093070854326070742510950313303776721539487087117526163472069749432404917344784526382315484252197519870173101642852092312898042328137590691880505302871710180544678042043130539411239229572652268958506015772124850779704896194983467741607169923117353543682681412642522226209871785607621120390515644751633049990957252971330264991930281496757622137547237131451488701661564024617912798667235207133896037242238264209534619755184792658785948967694883890713163306109142915004886500721772768070856759621985254061617907916313579505432994724211391910034976610343723021375587762507070305995346440774571307782371602784186771209088013195884161044587138798439228021606698318854207045196266692823049189911413688655262384920490602303072735814386880262952197373582605370843326463107729598622094484138676929410738620663349057352640883383723721605861493348026472814131632707128662222053685622238736962766975077320748880464536465690262272931761964474450422911259371207545548558577075857680519515811769880786421198260055929476581284756534645891376444345961309545954623582644823442066305369083925668155890085223881449249431099043905825150577665902140903603914982007434274862989940191403102377537977295961036422431394992317338576760865981083731833873320681878608268030343197981799335687497977824475855512282677508537929696432091688514428241280982834781776011009256621590520789080836252163073893052070771726005284525790094752614081945975961102013167489921813903861104679925712141585426284016646914861254458400520509754764226604392078315284412602601324020900482936619795651867412894363231636226711839006437653679137637820491053880388458709916149212271239717294797701813116110697660968915374486979777291999825329969688787070580660988778217206898836594404591096174359686083260942875626587054256355988078974619498625148402999295902056603253104767284367862722344338124363786777179352154261657008702518520657997486349933477541264295951821968151517392787882079071432972086197525129383334462878778101265636911478044413144786286892502134488503180539959616080848733141742576104608803941293867940936189817932776125571827487149191533079851651432692246182711028599647394980221227743132322423972871771501434716286721614070819101530765159775461514166056919362258245972036302575563451154116008663847368202442725800949671692436140589944184211274326974833762463392339525904651932710766343462532397725016111946571241924097012286939732899936555020340955601612495132566652492073831060505985142429690936432067465577593485589992043585692402048195273585587813040989975624105942196921703182999867530348984251962645245369133537591352985001197056143390751781668691083616046418593680413726837597977093162554460157042615735575012411618839483012222671573822410310496906750041449473530000714494050649613290679053320654288540287843168821431636828117282665187945876401696105404936394805341481120915659878358513551638486869229306032578233652192142479480722599903754439783658348135056963243826360917548975324054085198779754532382128427642566237934745960805861362077178789066201513138273168688889496419322634850408364577678321565918235632741666230041043057668763718847533674994143979273690830995313548261725835642241225686960109513714808250331109222934352064292879102272317521306904038433358349468692383091359345217656895798794298050811533221163947202261993411750115981401994694498044309087699988064846115710882183822746307812734103200167207807602080785994895702616603502705719179232694956991082401909818002024589542478112873832942299031353062053490973206664117889409405682801137945366067635040204091611701249011735269251585559559872791673185470446603552744489910793776416242793682488188036306642071134539899518352912145586528981391250452842183195570583095166348608795371202687138756152251929439380320965861542277502826063452437965492170094570151838932830927720194156515054823150234694570428438478941871883238110857363887718165302807085809847315272746170764410955798307362344391808930001425006312539271500915911963315985045166553590949532277905584160246690376286558509400328772376226458963033562260600931684125907675709246968859801864836524355193451589430469526079440266755809709329378554494058027358273448532885169745802640819739985876080133444186598184891245209577824889772550377641734875114004659325076136470860230282401146035182244070801545243754897626855797886046691765951329119495587410918621209452010589222405800009364287262108085955097988564020397433534488975665364627940366857576825872645004155781866735425395978739757808913378725125298369966248601707857198949197875368659724065113660411260560711789369133988097951364124258367482664699004284230466431162819302206158073304004652383411721348119527853148417542038950017248197490084062778995377367179456547426581442341618034788757582917992748163015984796640864463261724632477786675701995585613706911439671782076756172697297577326664082383897026137330868787683796543570671983442143334703993753558615817859022607946836652188040207017594947270609395319824030025520234961078530646172676649584013716523949799783978643147059561677578470124943884816933873931741140064327298974849616963195278960915834360297215879212617263598364620540147082110178613550735147835089250312253676800086331625161050844657154640848698214406092236168916207725433050124340601979814171095911556289940165284863447254827405914994006333059439947317450100979453383821689203599287193968122169042492073836719218472085221923793965334066356388515289021742735480857570919224946915201057804008452130554369105804730930139307145036345186618778205303580490452832104611019245086781246322206980121761528797551234043167209243495583854615171809964751557619179229037551943980810653673101485461855437713688193987393846602739728284828362653299492492550095640586142659040534756374274065985033202569741100723345326260447758075545912952317522821150962630395617558001114899014130226069982321478426075928371004972421866269553702110550705913679212768891146444096174837898175042787106343157883768419600392887420697703631493347660216757306877976472248833794613714966322514986315232357144171452733963817869553175556097618599418058807405533852277860865420699297321917757851353483112225036600605309392588577183171835241388705715806548225843662167482285286188869719526509674750658574974653855312038419061874960121606057028429260503389781240225127635022368205677874156696505745057793387298954937963487341445623920282127402755300736499419225235875301466867383936647934165847473254586506308915858827578108581281542631605192413903350084308298972519798116853473978529905526952614249744164165746006109109721647139635119042698297575735690799634577167510849051263950580687110925949898238023808778555616678737255955745201519710148388402233937703284389609512687289415890669274562083159817744248672040752136971779653054646854725805566676534310705733808837413220018183426431876795337079240028097161998099992171291573344065962592815558208031733377073701160175575973993839357997671497697921541622560175228964350352441314197569854288413786461005261180909428268695013119792832238389213326904062700624365302745552272675108504523474401584769910550728542176890690233570115402470098048670267579346689853024149057301289980648913945918984341760653291761173306610535191922370955323184990780196278746898861056128535933819165342967163301839030359424734481383251024966142312098435623368063061415234518788016798844449653941199690294890918286393306722910465048813032980509013455353983513541096850767236866504172780674955992515642146878089472537418566916881611997225975190920744674073300371133864797990455864246236113015070524255740239900413730535079471907612775143024387034842091766112090634099621436528480537310409717531119405680451593435310406671309993179265336547722046704413153009480286404494119060950694271298480006724758949447173799957780517121032813819903708211422795086297257368840119314430884391071510473264214510033451103947223272128961582452256005578162055691652950948184492167010198499552405490367672477410647927732240822703884033487270489628582646921466186521171808160140068150974665001792676067315429174766075765899578655085685149421557964343434702079537129992508098538936709134502610266034324601679990203731574665021919005942466505126955578190781053824566618390080640344919242734673952269077280182835081839248993391273420330528119185742682528935113361466709112653678506676962658326052606170417535089479428408899466778354690324588062010255885373413306461096216815410363626064803670481320339765038279477956499360656807415447233458317459620194610114192111443891094052540313753915952695230820960450248419922376446412139653753579627477467483016953935406638061346568006108739475190630210808307364055895788375887931494199931915041420534027592619945636455837913190195283730626995770844140857904218064391625160962016871954906253157754855055928400706214119177485399814788263900532517300937404686217286093375067950675153224979679372640475962798247828981183415045516125945146353561755278452488892425267986493015417080269158874427372083224071172279348183778196263347083768906025405670223429570904111763473988004247584128291562218051763521516721531163311464365020741151144670510698338406850704279414158224322129891162511222851157812278858294210482658391097626275764939074793100229160710067559978043024081113369298982127788052013812372053127498502486468556962879833782634191502012114919277544948662814637632730306098858822428263420211354422637638269840572270791832133710850288939400033304635518880986235628027982893093919909658900894063111129817121285118821807837942560761532262864302024492823012054982738456954286489693035356196559237279047559503536259738870250164209518102467506191210630526088668258361737096995587839770106175244477151645195736390180966979106604460082720044759778094538967971962369782646225051936730445663887829056375284918548503177000571870474746108061191393983377550403707930815085357213516112990357645325552810751411001287736684950614496411583372267809045620093426897477962914083304283805837042799970714527164572117714773546797932537739335928110137692873811077270853890579423647622500712872544083338385347611550026251294774869361490609427461583646208709092995389292093086719223688967516724650780596797051382017442610679166478296271237492219399640888993985602525147943564053701936449494577467424615626363998516594063564912003979373711970365218288974863119641236044609783746793247378902915135338529984490432282798323056161798928800042870716281059047236814168985492750244825395962197449470759555866129833250066862459976841704113184731457392713828436663255235178251949632331766426073234079398209730349600487990171666050540346870037334760048816745894561125986033554033667924314355367277986977761825679776129959942106625642101421452880639338705450556005296755380579952041751624322773863153173560603649680991983110585541479194751313499966147647734766680289875132809884109064866413316722334539173483817048383904549661293255838982559274339854355485313966203736297709680366799216470739773211040563877123759894328371078197361128324167276410330073183766648276271547542253692529309324898738709335607551828756414833524465152954014915071378982689109193576531539457735632948021545958658725654621154782034519981377447506090729262912102545617032264615274509249473872242361783439528754385377825127944514964490526475434688274194023416261784327244539930072407283127132245606372122914098059516292778864320680434763371707319053252269706962904898866078861627062183010621045832178207544916065820986720293955296233407902380189421443599785233418434043791468416708435349046100530277431794408269068613483372936967035926516919058171122409820999584316127449576656686774176692597121071222391630626445736125481255298865108034041957901495210203984081480314409223025904009843719337740406425998795156184691857140292714857090064596918562628425639184238957415023561881720501009479601400734450996533920451294733658440293202007990658510156110400100015339512352847961515079434760840368609290487489607282012384379724336426037775309303891924699170253576759836672025585745094091930676837715219813772066956584361763541514001581092441484777133774088868326375238248054373594231571168527267703357650344568801092370832828118469658947068030806655131812456220941241401274040824360657024436266901521912782159937717336819491619151347366064924205151016995054314353373245187211954915594768356011708882947324704218005705637815441229120367329278462738812500637094417855837187416195336823205444487357254665970913701202439513594387425087668017656450021515946057994854433870655152375781245475241241089715560774606767113642074362538548903431367197783284400558090696545638196419561018248796238823782207114693000197949829251150759286799852590310096180274035674165113116855403660224759550512572895152810856304859090533548342547781024456996773002719603068673010426266124462495598255904571819131129500147000405819905513898747419057266197345260343862635219697355391525881659348561044329740080519420996397877320687339549785996290908116665992948453766319710782015725927608346616509366582660568064086163622956029399571827711550733821146608128026731021968829062505225579129258684910612607230339470210977129584268242974949645537163005801720579702417035977277388388224327637242826729572352337300190804018746313605249530952470744584389620533300605627996597939856746012282372532750260403376538299203310142671086728930940120029096060052249656488666835696562109629434267986026409851549044536572767866467094060574709167803803909357193933289438969876674133275087207952226319991221316897672423725775915176621924757654192915671917955853128505454599740109532308143611339844925244803983493897769022993346565383981821943450217156306808077148877233275896536390704077677729094504095395268229928454803148973397427794580076636139109516913512082081187245227530919475544128596050570721834105626297276137998645731472610286453684248081942458798913178144092681175404963816113559465468771047090053746345530313970391768021033631750364754446646864678279025020204699733247177875907318113588966910152669052632725901905809693030810772358610310395517254404678425741271422234366836511792331856773677252353472886703382159449068675649668253485815262946571513697545055654782468129121578171687429840691183360298199524071001423518039245375641603192640912805169312551738743918746500061797055911041421254109947865748399484328543180028416939147132649338675431514942964045069764448893325243106643480375739373305647499051072919210971561858871386133874889778959916455277550686229097463985649401943284596595577620267015166795455241461157677121355382006807555350977438996399491414225229083779821316135550316060212652239489528124140275838532962314727952845926256732678614464534020391976600669892862611402031757682673835299958178912817283517093227537017768927692912947754278630463646992722218729825420546961099737211932557375514536854710071788357919353736633914079185513782011905061542438445985190763555658359607542196672884370688318549175393212488549222150703770576789011737865151494872450649251082239505278751057347952249156001564971464529395150868964148414606484676846053543036988159042168602981364709280313792255265853831079275466107150411529760131105917475864833722393666049957677974619031775655098572148586641098771475005388161738293418339642837234647234701326124269009305889724178911265060984293262727005901492998649446222567768862972438087086709504025825532146955053461080823114078252174528047878809884794530523160151620372711322737330534866612530830526490228335509751607990164035676129300185233183021794934041278686391758306065152660021427344851097487445621929878175591374306255734427368743291506745553828680301022602496340425023839798006961618678220805347888950080390606287947226320200033111526754962238681856642449649747937989953204564427587213261912142183986268354788433423447630355539189558779993128518937004235184502817890448520357069375570415070758620723125001213390325858190565380973691173599844399576344698732447984690997115796305971320629447588140620167506409488530338513011022489899731765026371448071230269152878115089276294273112859653582985875572271008987267818997193218249025307685536192003606959450154870632773026316885410296368436876314863891020465599870656615573601860047869405999588980330483359668692361600271519836192611014368365528063599392541909332602929188514155929808866804341215822468037553100918105805829377948245011416571580023749845418657870975238123320930515825724171763495031103233333520853628054358741671647714706792817694029342246897385439704153406257891423953286687487697363389769996794096058155708718172673632701989223796568029527143819600187011661108561517028909176733614722379678867548198348724275960893609748877644700860450582783660926187755294473428347159069748013106399624562463333457442848387796245960047201010208282358124098750842658965580265217068100997829417554504141499842480016600310644345118534643835080537256143580516530378742726036313185454966259341579126311588475739414555179246486028647566479571763000215753006297905171405885254817486158408132437705692396568789014197921128322576621317418847542265983209238234835757199601945948946474820790032520258882366239819299811516537764259862640064907010725523780323455033481636059766961216065530282813570814818481654912532879811652981500272987389149060016114174707165743070692626876991356006477924730827034849878186971297824257626740417645370305803025710283599740677223857089593930180043366745442004837535523399494596707468206090368724272948022871943095011302455059169319028557105465260855979067859133492721144713896776077549628534462335181383775651410377488460514796050022158326462114194673006506138324029770063491990363660672552556220565185308573449411621683819654801509200171436978301238940237338580145996893406552650423364779865816059397597649485882020215956401331875351929537896044603765312116526545570263991489738361200467691803253800169826948078938613465031425102881891106450708967095488705577013078331528415212320976725626992124754962076686192342624396006521712145273804094500130637490540121203304677865767133063997953676832085813068429457930615331117761405507471956170201819844849729932774341077783327697266288037961183983389181517460014523381067012368042517348598048309099730874984186077464102171178174904997193332128091495820841077963931616699921186419636495754338627395791222448436460642681696801243579759382415240364689644540104519391557029530610247900958547375100588889779266943580589041943551876066141105674334276961210543765516397828777669351259098659922203383567201004942783195230812651119975790932271618043311421545198383082772563599558465307627585609476805723651060359195727797965263891756114262265253759470152239917239083385986953741473696342975699502010758466674969043123591654412281739327157748283397690069423964748766393911857962630583824494123271325153320779597660627200316129556773225928503606134121740538315637052454748579758091572594460135791977524371804630927877407650692043567215013832425767069175119590796439988380980683209840684035622255090641437327279613053915528711050500466129563438405276114951634621833806931228894870751288544717385716048850259163169666014125683551193645806238722065480012673250450474441991634130124852831973199011229833516082544554256953866032108744332097064053312934492391242584822830124552997719345046122504465607293693454589486288115470074044471653688469154310921213561093906418311404696672466789593606511805325462997559856893414809252787699797578261711992518511362784340046996390803664706847063994374067303657728344671685514655578961798858944006846526503509882919950918474356936052972877400263376150845967330730767022202614338052757076114185537021797098617201753358368499590352658200223357246532992827955270929709162837841963385683503142499176041749122897195453846814300460345617578377196413192009248870717713044781480001627392423120201112662486126912551830475466394003453717308706916749920265179570348081478528379821389641535798612541690859039705944222836340925993791273889084967812967396678209253923385301940779238230685980915418863197670394055339097307143718966285147013037501799272842967714989535404835791638012022823024586390400105494174946865721352772823885785392959122308809286935458749019094437288917607517244442730825296714909902076991724886482940403682546166358427638184351765533191767104120049417066328828639451001835605489458300060786752748034464675762965857041252739198685785634359351611448914332600388445818036828195526970517302773110597362161316722101310552172007581914129588663062146461456570636956409585825905692042261330165196834931808553258143024662312286279971657865422399346532935365714075193080063028777179244450570650912818254759998204568093524830743665510780071417895519587920404516039667143299960106582766558553170583624136576253548191550762019369161660957699962640859514484340905930443615531298814091962906255368974976770599893003052603490362999490604882395289488379232220481884304592443576903586875992427331063276537337267895682538308446270700587434493041088195773338094597414251136877991787451830460358898172919489954792281124975328270770072619402870031689414106111430350526253289964826920798958999650680778276203637762257017640614466013182233161211336179012390180678201167065258730446273021913504651295796834513605437114582371970317509380412181558726919997538826027398868246252811090089335695006851509477438905004502812904558381402457474192239600532347533128072351674991748520059086201268600911474288534977619444452368758625747998525954236828614259667229800039006065672460648278039910605133209597928878995083419615803939381729206462814628165323292636032288474149417473288753956079811888103771044340772619269210633896782648321394807258011183478597481881406316239972950878730871945976851047886057135061759245576552481781699888134728914017947578720383702490089668566998303037106117898889590531569241773166392063596846259385137235462650147717304763072999270247799653577100629116046945004522432108360229381755627522809591026261070472040457405979917729099641467410344804755214217542433450469327858463477852578053588552744964286198377525275629921555026687710876522299420848654439891613478160714642907044373859726996874142433149000986535022695623033250883183890541758221946368371477203467347817874036825420474579346420376934014947548462416689328427678864145671880777264840178086286974451918461263462877526235298112771598503824248023938310456330446977742112345948413266065098935860573107138681122186777027589022600260859530924548511863380092366743077803363913989318363587145019732625991666719858565759405337546355679818527553906246092230871366535796292259520202035671277416764636177696982189995182076683407023821267530064790241340312703337263735149023984346774454389562620969934721622015941566001436737410237624304553223815205711625924928653928812123773841402586176388353634892914945467669000864551634594744599038300264884822069714120188426748275695607484843453135908676526792396338486938263252329927315887282134453295759832696964122009520485322348867339446377593746166001973485683244438433050129074612443774283846251636042740372543585898067164281579918233329781856765586222558639722960369199206145377611123153558626462435131063566476869620977184721390414652697992296695148884233989841460420476018806874259166259980136924397372622498865599357145945339767861428989440963372361604350423080420828003222604779190603104653375654034878699996427538437256179794107396685899295982858757321586884324940628070555463791547091603386087251356791587048852349062358946195156432082058707525679132707443256152787304180757150517558958375697213934207048242400205170897873014320533300931461125435599606207735282631111539002199758514805356025024596981034539211961030412125240333359862865368794006242267927130073036714761627771941391004343797001616749144780949828374857536343432508395625748834941237208033023135779600518309538387389311337994153643275624790864375901590430614928327654181665076867865824829594543282474707082562837307617139951929913217531183526153411950828059930873072526912438927373378843456036167164084999184122221013017021042389889126329002917102878510995911822016076918976833100460092677701350229570617571119274920731775434946263366189184567460830042784831886200616557207087852196197433731597518606606385432943925259875137814287797395578108351032008804394912777792649044263252377297785912284889401278863489236133926598463024218997900672502390893912757149298805185985192705683283859819819217373000222427962358283736519247660070501262529809281535904579682603296286749963579579906761923082648925354627538463350286504159711112536662095032709455647692058839526780593463629165302289043140761678172386866477330953314524706418809536053284852943694352356567796741189656675677264821881632144330639719877771907438265463878620752050556087827369502760841994749204133629764264342222202136185576100416945041622933020419757023310158512858577906874915759184148076219823501306152025544087415662536958982838684794803588255769359848484673949774207761460724651241173384680637944433299911870554751019542553259708442242766858910864656452700849077631245192436441896935787343779019533122822119062598357544491589564451560212646750169078896380257309333057082069259010529013287853983123215461075081477932201333560605789310599082499719140134776148292103579814496190096121799118014006237308146263585519485014972836960043196942552402714967818608732199759431843072285401972983454078481579963114283564842103025402377617838622402792816734653643576008621600953439183206794550026668418132131298208484021399781580343212663553332751543264683422651647634466507045709480961080752433759588473748141263058782319947142458111934236677171876609729638976947450384156433381740438097122775337289613996942759561169663198038112618942397857855246880953649847749842178367474959866443902444473872603063699240001019576538350078952275050029783425368183919278454941565194660022103961619573397437626877106732251451896052672565392766156397380789131361734145670172717004705702179145837829904659054290668455524074210965107640088258243547680842657640728695939145985936685633937429593610812746314822653126476428753052076027885988647232972337332125985085094932036073901086320787841314981355665260284861321985607045807686398816570521151672178427970963820296313374089754236000488602630376170969115082776587890666276691633305567074565785181582488588907855725302804749567833746182569709782017303867335603001290848165482974963329122248266766288348464628488596913795382400811648714282064492372142785203684393218317925814209002053860025527231706097542079200844075408926831635346926923869433444211333227736656827947531485301052724611317725262248615800398288604848725172012208461855772334654775947709288555722970075895594288184314749681961489354661970639801104797601613543563940918405618770584031345781907521353801319352843527414387690265836645223532789126093767600190485343075901547523762136347810694556011525406706018808506708634036482446739884417590314202683372200902966949814846408076528572471240554600481936384741104870702784670061634583742980191207732580002872455010183356594847479025019799190548960871572693408690000424654724975784316350746367503065844429322252128332486000125061563459316386133304565884754188868453699847317037448312889016899520417393112791089791084425207682521148245882245526320220212360408856670374813141298639397719731725477568489668099627084638701737911854456731508338479359924279273811998484434959270611969110114541480349139573702728861412288640557578698042164700410528813403867023228745420252476825054813485609480419106829303780506608055335898071746837697806857597299611218078670397879296699842654444423333987673403632378066809616359635753638829405494868199012141573366222729309588183320746992359596736037432753733892515056311232873887781705762010568124890580885792792658211124558697544527062846916320929443020260245996708405843042408593437331912439810927236207031723600533785028343181970576433797578047616698572255119307539813578041158333054969705476882244458525502567708226283886784165490775880198410398575293938089966645571431210916877781234909937941019094385334653932368345840763638769809712084524082657185802813580177053402278628142728765461807640181075492884308376624613242909786700594412580473861287506864313816869592322309198830272231653930685398712901788799717974301020531578675144549912852139214651674379616624822129832686762153898120662612489865723880125084146037196472417911080860102595777500541605819218674720870004030991686869367970602481498792137065502563517847400890498854959309131608434543819613649952765552034041380838951389129429067899446960960084701470175620454398132785309538612253614362568791069740745572456587652179788714431785193833017567436481951664361700468258940798256635643011063547362449365781321579394641793823245333609173917223545012481985228612968191138228028074385540750265897611740464202077731410323671893421711736134081677585128300667385075663852544076460902879286710605635735507408448106482537693150439487283486077998158913881710049454235229513394936795969367460328955574116067737330611456316311859476809270006630741482297406019316633572971293489425074515926856135041931629560747241551089888463042493759161881351861347538838344167207662016641261800161578131620730155246443601301878754910387012481772385485990538243326258960558873231738570733035769411450435649348861312166440430680069565582840516796069764929228160735966337940342497080495998557930661581596199237190267999234395018037573461230701420808703649692637689461427003560806064853002351059237319270851361501516036898864698566863242753607207022423343871252760462409832577527994237475056687594388987738563712754111620265388928262876529906237523150811616038799203583646582102766682677691991087781716658457898625597418561635363606745889380475664329654341014483169333729427627918887985219974262546412525776374847658606750007225187376766094693972210663805487567055830871219986936711318621482269029046104695449106426857850323658395574040641168589126005405430677215655540736056664908705735895201316591267630827060855996229819755679265095918465863095286130451402738507861660823442991705052948662535992002398716438003869542554769284726606409923628898035833848510327996170888751887042091662482660170177819254973645491326153570489618495026733383059717602375391413915000186928202166828562201494772180203396706509881318070968504565502256990945210876491294265792645296845697381978729948300046439151242583926195044144403951916483590602058342189284442711053245138802444663232207111144565248935828704226225498865402593042613352418999388301868442803230371334940593720729102438044800563096274079640959867449233216108979116548343226296539998733063678486378322737215903307911701374468259546349320692590490576767779332836831290648202721796460373170396191583117660853351497135030135532877523811358472009778666099124449649113352005143297052921424869887235689129713933202201797941598929859600809500297027027111933550987349953899457510581941461206233233522950470283004968317792394197021027028713353548263009253261153646860429023824674875499940327045337172286440038902027761513300377473150613858733783024280377056247760241620855407493797680317702258328450070410799088700706661950374430647798844040405657634396649616475047173824820997701978578546130433364636622368109156720162860633961336689747682876566442403403791462037037767738643520970471992717766254792812076576731634111650648116721402934336184096511057048385445985737258876861617901107367470020366081264234869335390122421596356755335148889565739676794427171324570942739962264105778402252240958480110398881609399169688182899844755612346891575293432660844415565221619313035170977095477486746565601226537053428207494791235194751660628206132599402692279768798451212489361727294807440333983369996641852169633449551798406255510156844572857610381019991060744413679448173406306169193443146392592490784305358508897290603588431786949104635990163779901852019498343839296892286369943439309112979216852173727601920108923050000315908776610219802859633954831208666244318902308863526541730444779304340674584148777561736401067540756936204315983547053443171464010540982658667359590251706830986970932720162426690483422617282736308452260038230952456110328110629551322274804456599715591821910454684574497701812116812542745433970961727901346836894192978296651324375575337212778666965567187061005730157780925509113561465572595598643580042010081973120709953043274084112210786252290724194085561463762606371282665605437084788227577215369598464245510914350629350535165458691970946686270022761401966644447044303360670277626556238004629913391987331428393928492471239414746767317341651522466367037466920765434884422575310120532870231718059481805442202595647213240465043260971939711509932438479462008119972212761676122707373506238834037852989742062799233755615127777286740690363981820098188794551941237911059709375943988608309071328097813719419018991867485428981293572447517045589913386165784335937163720584244974247984771711753233110619235478059048073612679590181279131436650267644725111937748072198336671077131701532767253360182175071744111722675594702258516169348037688886952734104950646499540363144075468240677529768699038476385165155308358443561282846936970657029273512050297873323614433742828038683587204103998122293272862774603818694642355578434090508382467272498957647904478513620734484272612434015233024641454577706630497996300326719301681729599854060539170730818849995518229287822856392004525047372444276564311934669860586688196081837147986761769349311848769024574782460197560343760934171499717047182007487642559973590193664194763561726596553657427664567135122210017861125711586150029013145766962999603754446017910457145957081845153320450880310494418035244738206780694214240303304364304471002580321594546831989704239473178568372828597493216821264842751052066782765909361405133372308211993365853276730146708180270679053321420653491444839834866631682671457585149288791954558671292776433738094869652913602244688980983129530329798218977926383259119449556194062570080416476275708448193775223301967857931930596581301905553026022598351762853842543202784745376963765716291334889708190651223502995578505952589277119617481644791506262767573665461098740951031412073845502511130702954854530712295595278191815832934432098721754435534150496989094136065850009813295606621505810328381663088245349824936952049269525865939489386185347089000467668269947344791764269862879573211079625314298164992439032555024537436420959395580796106464465341359770288077991722545050667556075598219100432422106071810988332565109294244498312241907753378553885581146966570349464681610682599631518409121056350268590443718603755782905804480175560766362923215143715789484945657343950610842297614497394349927453823415215545361529820840895596094418872971148007189954644155777830711423864496057611167319937381636684297431974861354634967696344912052278162873598043349614512344343687835604890352446826390572724954906243593351369906295784966762994709357777504103590471937727137193440048364418694576884822570633477290781158762913612247338365503098785186554954335130220690813289849610065112312380184948084287911806979691027791525721369352237202284930027154014412221201408650930564639241336996686442660525679026420634783909785326553917725697035659414517518663433470198454921927192454551966302562080948515167709667981878035636370423763613077117411796150302032455876917344950260385711108762675376425032035992165577777485374310551551014067804022452159137989931661769109408477183292651176833283059471924266535564443039129648905552272479397835914380252066960055909075560731778005778484415151956112343004595319849919178686317622471065541209324057444940414522322225827171759621294442056679340291668276068494062119735815297529547186925385565701705345126244144555685719024131017231592077492051117128048285732202734483027818690637960840521330554174138689517510956092554096996779590589408796395277071790691062167540616827910983089273872855358108781201157141164023809525333552990430648651584651616404825876484813803638120926385201977604006750318177304791551216749284022318889224384728695115664051712511666727486705222320920040415994729671740793850805320123563046691520305823786705156824282498906803169364064489803212099283795538226652320110996130187212107502116316245905377159344537814013585592960737978724977242450138880036915325133173506276737001751133763519828266488450273250517598313561961207660037784410912513767199082280444878191552901979705124427772490574490160319022155995289902050099720487486127270226497632532268622523559287576200031804742364792976195669743599553684164680670622920515056173503879980422815826045424396389716214465591061031688383388667552396101731998357605696923647058431236136842519276903264444763023972856416315251006673790884317076267834926131090231660616513399184049220309492980660498502675947612275694570748157453326944361368250542340796100477504191323722537800614018656943876104740099029158437890938706876493006604757370413615677488140400659136559848223012015121152013642287679831373251310135895768619556860310496396419178092627920275812232755592474842806082421324773178329746800998778230777727194319244731240732793849564626485431441386443539995308571341722106178216999042559453393274653455138850821666696112758865783249049197056984959622924674273440141229133782788368972399335615412463348684636743898354604048295409919849279739923000995910234939769153678201759627698496003514753096348958907198704608913470860232842127415439585885821986395586045583019476790134213190776662295436727673967541290396225143335969533037521187397782461042564339700755653165231365689464831333545163237809394202660141703216363230869096558713995202820037243760410753651806970183585060073823366840947768689592333790174792473495283807447357285037704685310616555195120643196236719034641004681010653912444818461016540469880918999501863668686734761292820250448069892540253109926409941023600501144057471771579271104082101902884565623385253948818692977658878811861147207672149171839827076286175891909396639797964325830463444016683744173306377371024638669791424614779914279827707625530825665322049266075375702072436322491072909251880861752879621326242659407995213389656676413164128321454761673010241456156393440507997901527751387877349877085523444325442900329239477586831917574450795937274269695835360683617090751983183289716379987668397036576286888185334397184157211910331924303002777425949825318460731462085550125027989952168040935641632829083803987881042711909135625686533053932598129052873173679385128846763150677140922694478057825446666010670294673839434412477233188580099540976026152573774488022994048813926993296699670105246060990765623215242460921547656097224595460723749128185721922929943327462031586468339877430246808039821518502039958947825705174526873036882677645220519193346089486672830356833859430734155985341186626181751882024230594582177330596010527861513258442741446562724685981579256793298428806169346894789577092825951066755141867870769221271122690623305212538014462975016581722344643565261056490316816242275664463415016418408277965050556011073056716625557706390133937424736008188391839192614222283340502964255494776245294740135019496118369282606679914046903700875334838493724481911402735212942704297502756301483981659117742006872285790586215523833318310101648165107765625126720577645419824015539369224635875759051530132972473412949841032400347787953228309578848988138648362647944475621120711406319131670167710099554023853288181585705859405966518632909978161626966400933584018417386860634099086374289615065220399991664460322399723517402619383797384711959227533691355594049844655252876384296172407766547119287766510476199216322037701970610022606005382373368318859257236190041201922243328777183651429659980371724037782494925548771824701518470105587524601092800534106411128590564733278139325959995663342515541943670536685590405904458814605903526904597672127891784052202022566376367750479600732895478034206996311850932279263657161478394327509959362288236640726658029049663048681881267027077783844104921835966401596878861842210315940279531889954272967771084163207042955033914506422172788464632048485863704376151339691237286971899667020811930708642724659321860755838118342241831697890398073400022615607136393940800578658963108011283550476181184809644002486825056676645386448966919629829802610827235902686568934868253954916614305922304680414048410360354475368511686870442409540911686069929169630659786254700750531248274409527451044291896936275012179772243023121604081855099751243797621165722487243076365089343225275352971192810741250779670016376091722810750098505634013268293305484644038946162976076588715504840272940872315237701792902101242492485076249764036470975035700512624829148268700257593813135359818055791702533121702853785839402573052637677874731277545520308380961405070230942063374908440837697831617194998985465897425504114684807059420500729276014614690794750732490216706074912175827385478667690722490259502238461146901330285482196793968752096657345920114231828256955618904599327760414383046151849831198102636394052628815609923660839616774352173443331616762248074330896643816635483543086372468130194339981567295565250418293246667718998079480182017785383847748333486745318588569970894996855611662568071718229559329638714883391866204870425395211407034668008806772195160038668428589043927271031606541223048823752912719599159430327567246578741369213918507851261847474186221103239892166838337360704537410128560767186992593852614576477041343598468535098056679602241036874679499535198654972040099902018214980625223593826541566330922018231326384410560522203897293237843335305021263037556575878561692410934082116424822101991238100802983707958907214370690469168504281119356317306621904217624947044865775677029495430807158017611319742845092970383520466231049636934334900005656274426654788552906199907045604980155891106353513431676372515747559993813346620950719287774783754816922698355002777114529799553362917858302492800973367780394683003934809406067163212446270412507821190746361842362251362698348102480620302503902866107698280553583894682376485261051882909448986252910771508039281066154935702299956547018821047636824682423431020542472246548845983924386609624781490846235520961248411428269827556273945090470126047261045204215879203708485760252247339982410593168009574918949241542773692512071979220759974167733464643875685275936290107603371290228386896979283640436190802682916026364546853067544633008999733593871283882843502388835908562088790216260926430236603687255871683242272767149813829224457277257608755246853719304073096244051313627417010394121077069579096503403184383563225927352568898681279905235575895178193662118285577711515848722251191404138718889090561892411813055032005752824376834627499852064959747786183715709909151985146099711772126108264113325805050893832673647742309108198066595361924189475995211362506334055081615560473909102731535593988574184787460542700402373214035417983234290155371971844337860101273740513346154680284371431041604955293404385587808424190695448233114135312429682086715183144279955486171764990784318275216339948425285858393392662996595363114381499365235559134689401002893007246063652736413438895967981909476132394781931107487856966190684140288819097012293917901836064641535389037224526286946589157064803978497185970622989795470033018339912181576771435790345443520436419384201570391670475894358114463973869291807386367160266270032501917287020148162100381695618418442705773445425026486059638569092916449122257716295144066525880772943326744679662803359694332116092016553749588693973888516511895174101331017501454405813790535565451751929923756209652894778657559522167003403037027644296444242530164730496763569877377161781326944161975668942201795638981882324071071729143453996476226519945737877723529670906121053097501917741369719606073292794693266102782454900612736907818022172228208210059051837619060105141102871405159021767255738074163433992585722932439958375944801874355338423087150053342325723604408233096373426239838326706813754023081576596235458004703566015358147018088701289179441414295979432064076823546826459485770028847972304956688381065139582486970263346230891772129973340378942420153828627639460525033165946274597708036629392078825987112187610539808804304685987887505365836461061229430531170223032941553851793477134311981934964738690069429389013079676603600673609531278711350956626612845746785835917206579054861869386863601803654174541947651955228824842474761545135349136312315284714341143500021033704760139208205128470500036456878629894435795479690041662525806819406914036756121886243794558224528891366179543409524612852642291235341121774761496716702165627763348116244950908532075302016798886085792657680292598128739332714177455022032613127653338150312488040421970781287311993072723553321099844398587399872698300479280709984920634305295289559177049634230698363263515369371172328178144746676291796933085381326275053839323108856201809215688954319933508867905046974693550496394560343689641777189752214841770947614081408823401091913356719320830471960200245283313935359201420586527143175603321873898616863300458486091483810368707181053033492755676471300953435946723117834605685209211610073501879676247068140322973324083828207584539825947584779030677103710463247025827506165549481703059187412717208585476711534395255060856349157453775257754422576656653995465985313784911609614678229340456759365204775804991202255571369843845494798537135429073992070741221764221953384885409194353908088919760861125161215540397839057506721825307182759692235338746325566309278525947773718885845133417522557333513618274691312482513972446959781827642654692784795538687408087517087825503941232901073162467072253001370100324101795647342076831917009995317975293871053171267104661035051971701545656545428526889651229485212498481856281639270263291849249552723286704905815012231738651278169679974075144581873848781056597670097342318525782189777958473133687311756451736228707504902046339504093443421357796740173920392175490760892184902969546467402532733970831685213951310902363488527982254098278062573324553830838610545769709449148643904956838749468895375392525260002787258286605558268387292867627600450651336590973759777042006567342866046463514808421329872748759339268641317538584742513081774125572309289500280499163927611153159456108329244774662057669767451313505589209068616021239353851639961687529428221751499344421904329139219586551101418249210262104221111705032290999639662650355688100041674522360523568210168303388149579175114409606579944380160397582577905156766514236105770826347185642049023042269736855284247106250314499254073327706288303648107844807536085709696437092031611086343900868077114904512113178495767076743930267716674244995674716982457956844228224160086548119367096009433981394759072593251738262077893327777760338841789743088064491331657901959639463378902353538646679032344762312300618813801429052346350482025673937659973853468041491918393770563251803457102475418176914807329872466471694192954340254673889270123459128183991518694488723242540504199968070282274085419167210763618152430001577464438323920319042832517109536232316616478365938393868823231331911622841255391432039242084303060585334063264565716461601697542833224336608112160621436753501991913276897208525340688741442820225870142154080424370693218875884851337675906107753152243411129476557589914089518277343632477397432602565662863170848033094075356218563107192765109026543505342499495164828614828755940526262054008519872447583799897749148981252179529977264968844880409624248945711144739935264429016805249635653940015915347341503518290075836023423132441491139541313907307085791273798687886404201072357760850820231925199502578649536283009753199680922575416502528226578230980601283344558716463050176784696431638672797539145892290612836791229612803168854678921183299305314985453916952344406645357168661520424219757403411386470737938453834584698404874326580432334730768309003067081849606867899322092214277466497846350888116514275247605921199390869099641318588038857977109809964271123252424569141411708530468824294414948291624774768990959040746836103241406833382909086600191582218443900767885667674920354975866897243613170169464991230504076941719831853765062974322423034894719904822802195986448678597258575089049607302539090223542359613072380590531458839452381987623781785237963949092916018660676227682777196355410035326864225428166923829904660487110818125582655850761853960571470562526707716629172696979327185041664168541590009157904386087431753979472836755042936071291580799388628390771566255883414610116118223506098316106163392402181333698293923329079798292254560790356424111801286043450941189075641023218828337070934102144603290990219102611886967749674650920861487602310349691910108398747264614900279215196792521135577250031143625276883900505912805003184313621488109811750705823471266098730254742192057690472323439776240289781979404036948781525900327565314345250308244997926788117710798727777480486445499326155162750617047801257208365350725851251541868420775291024472557902461901048329777017757160167891730557243542637772828017058166606739473763554110412822931733487907737649824304660113168790966905232030523461325726338548888427293481780947592162070627695940440702978952545508794598808365619981981449285559833945090396225579765966037787966006263127667776327207091466389218509217088572050611391568757083619794186315190415735472679849657355934780597263940070200719251542967934637137102851357166136459963868618060022246515170627005229993526132618258391996896572710503088663932706625013516087152523797795538569742714755909319268102293359839823840679515027002768684237766981065893859629916327047341868149041896336624708872788974037147028295283847789830082797636163558828191909502029251286056576957808921526298028043123586477807286166234192626435943722676575154929439568097970265727118434214913805912896701865696445452275203753654971330817367707152035262736620781888284346783951478272994345402780414080644162944427946015976121007681296441273651674558703034536745626961726993430890145472040845220115465151926644896570939589429165714120494456324962526822073888446339395262033789153162316395385774296050637644610193054468423810427143370459775846375650231156717787710812826659884670887537463415289306761029789031311442508293223449697384820544943590146032621382042967128846846998802349911446616756024174206281533085253011185993265410479809118925175325095991460427548806277648932400519645419587213627182427033046363234768713604678132839304611920154388061744781591952522995122739788623408762593910720470137783565262957472349348451900866597771801078205093524160206743083125409235089036984157822652787105227582018897211292141515396661883836239026475837430697250256468738497608832222442523306824593443583987880066403795754208270761507392716906128623284104882199472457161150451329565150930879358931990722863518024670571812756906549221541991260461339082917797765363230727744200953679516170758433154742685376637614670066477581794484497437007004710985607116745836262590541354077342845718001684901976060922090259591785506622401324605679103998772642952761433256831389254822220638127615042077282046504156397689011817783985283920381199020299647410266703972263215999912956216131615447245295667397682700575301134633174536491809125034900861730754263461492498951710275171948467983321082240694472780773289091271436460203303450182522857488029019033612263560688484228784360384741466985315754288601444117359274885389260311639514099069862255395518844815347838988300462956512365590280274585803455262616335353230479469363050670829843263243747010058307935260491105556149748446923821568558099194548287156124746487816478966466899927326094343033459162726431545569203819424064779537124203371999037104098972808435302695051163211286865584464705344184529836146209640648768432372482042431265613675731015391111871884239635679594753146940285473073203356285664255625614460184920591791844730247948020952173120902647514213908528591442846565212447434589481449999915005466114036525988422214039931808704853079335867094508911932221919290740477322500225884684320385338799019790718040186635099301742225943527646618126488785865710374547095920591427523189085500513426468870837443954151941036883440407821710356167334433269008143861498122123367104169224160469184836039268529392580448706580318991920697181545338125182677444554628157925665468496622458215663937935853056199765672509179855071050921383179499210852465936588121876616169564169478256895066131322754600668025613093584391207323704966133406954103269237006068138295105009100989144563854217177290458372381373230449368634945206688584422824407518213460161977999202867895075500106611925364576474454760005715351028702672061241510502396012263178941846714875701575537555194405971470983123808870000473277214748476583605364500915345304866022536323737731130003714275715120443957027495301653843687217339960069298816862144247395644742959415832872526025669441821311699349370074701578521991717660049160324871376256688505096357474292895525566477903051279628159787971300879476128739059315488337042554910139845020710993382391756740164075648020423962174719963587167428765648491600505973743580452456935133360661782781520804539976367003096674601870573356416914598644663943129119082918350612041204377766970364481595238222755368135103205031866118644340505121329207499700503644063709073142872939954832425605633682937277201096475215119109392846487160311456774642462090772848155926252107753006354489984404027360682320368537203351727652907799665556338823259805699129391258049078334292028894925068389249160288147018496327915116889573802498465713454727302934681018141221818473131031948397639082727030886648282892416792199020375083239160200182010156570898607827955600608459865500952584734250421773723260629676880745809273301168930170767740480311111780182764689287671063940418961834455450780368083600392670187150040804192741115467712837935223522628485052394190659701507275765358481018759672739261532149372789309654014797557120906127362872613140635724043556308377595428497772637636277469820632231227353711180281381955776544666438563096187974051582806148581503052633667668366163769277472391108004135780196983203369342507082470720249492990576401560360651112062453144819696945827387281538405000586083678920010537049290019487432704870429178730916653842338872072468576723024555070757948007125982396663474475362976698954432293054926886666197159736561908583205770257102752146571559071208829043059504710965626298018651393073459904391469758834163901269403900725314370469623884288407334596439841425212585496884052164407318292888098481975340828884342380085414009303057741248571868266888514245533235897232099825808156687521347303235999947772930797878165188804053583836224388738955665382026114129640245380844785703357531625157039690986993565796668590450509335746800383722609063747267366820565749568573042761009533553286671606441320349553135274514902732449690645019359037930684070600949140005966450681076212771061256434491273316646681415447678658410593914469541794273305988993264191005662993315621547302531741474648433779316400373998423171105461640388610730504424420920596066425068979622222262807929598927124682345852501851304382986158403114843468051134375818340304526509769554500197186283802296289995709078889708126941929411610725701864309962485210457869006800481048054230387353626362262022916810530478069290965743749254071721078745530754652672457545398278025705985436255139745343377594245877244149376440945382176985540296343904694995369929395675528644984682582778732952425089238424028858830769034814241072223243139225473740763461891304311054617413916920583357055717101164661408973526486089433044513671635148098801699958485374512594680961644869599178779992100368026349708823307303912528124353197289274069902444471212457853804488006631402130459754028498950874449920457797277955531695644055039615625583703853059310471311472641725912033411426959544902525908051755527629887626728924101783602583325828920894595851212393071074673906053036043710942592537635280078471303931825590697587770332863505777413576486861695899585393485825744278446115423873130966340526139754989795433179451262507108120046305185204461061165829784341962933023479622212293169271876331469318757105758513433456763917676277336106981097161989536295462961215594240406290656925977014129244178321248908731037856126812299473608299864428991279917519743266631493995186711795116257491890239840651452935163189797695914777654790586578672369800650889550257088535838587638223735499133426834528856191711279997203148255793182573479251504842976001687233045395478640694177022255545484767236707173528609833818343150011675455931033957106693532648129153611283134560054782488746579139058979047881820308256651135584321122460718003126572300973052151905116886169521816571574607240947618378415714106139422341702568057818304980856159856793395350290879391659487383537040122470140883600722361961664861640611501981295790963943178896306146352763528975572279085298588277289971828017856615452975788203670084894103763853718698322788199408038069966691780374202548030157036938025412554474835451833761477640930175880679301850705269960785624444479236405757715804388188779380712092707815521087635363079218753145730758967521428957748659531531788683441175848778736356316929482628534356707093910542319479635892841105184113322250830426115527387796555271359341535266538038895517931487335829317941019479309828760568942558586591924470121707281185253688929124260449973802697552670564273914187922133794575476213497856089138459635938831232114228984623767110191619255577109630904601728673414875743822692100041288287335014421171672123805263903548450626366094419590576180295821468060023191276717414246612439398795794176613508550056728516903659350916976186945147711313695136706021993697322342461269717896777372520700115443312443916343939592061142060354167220091861609643253003698007846232489731734523410802354541941588359410071184612741961283146220861836857753798795140062234743705752563708189577715924436677435343732010261652559793467365545350390141169192847037456792008161276073205159848398055819676696038480620269470374253290261264810863979110318928029697529635922320138100195411959158104896022797678619660614185814554666078183925723070023534432837845113290729028314152804366816565556414405499568463047304886474959864079812787568499257131714650989375394002360520029835688600807409657033891564796219206804698940347547255988075810257366841324102546665681568251664943575680778205174166084680695994101884324601094958851787254659535261493212159294343049570170979258338897083742814022144547512243808168772281853565736223922875679114958729066976270700393367251620835826533255707337137038418978326761660095798458525947365710746993768999797594324123508040432634659368688108499703221221266565937341501543855516712679759357845785230627791449296288852225826500097632947010257194095118097635919790533266079695524780501730577601380261353272789448668662877881036731380554325263620433930608622759698298827128924700900450091185032480720550606542743717492760829536679550289379488389779163963513699703030082855067992531976543844049667900645415429059040897843826262873027819154091846548372858511371481261805806453641745131526190534415399617713608218858102959174123065299963762923521990112499637085115283540809588264805247499581999350285360956728216406199858524496770838550813034985171895434047771116924657127363532524047352159902177475625294234937664120730770453731422348061198154679614808306300196300373476466631041577704659353103604458014112201211706702898347494864484815004033780094905408394988030077249315193204137028805783033549405146846433241416850399450853116830408665405475371664968897556524876150369385295467254085805364772488553825692372225014040690935260834948590137140997486159880187656840663270288593557016107702218219587892018442962075879394844003859327913176764877728581605851575576228124243488703069906740790478215830808311213775999986919894103680625788702856936476795237367300332046470903880608426703154839136251545996542599739891830138207980231078133983067989115987022848895964783127212894071639207013153166061584606285407594584872573906768607704444305795454399261384265216219762865990177148668429655540288264718070983093102045290039588860926496701810995889759633510397605923971720407613831273262292277141280396555285511023092164193859555517600076152290844269086061469539463476946644226046667920472883862673731011484275429974976238008146685062063826623321258963849874896544321678360965622111891385967604607458832160998730331116421281981130040734367871300395630994908927222514892320691975232132697634375232452789947752813923878880410139927594016678446325461164071775885652360830752927832393937746143600136141850924739950779605241543203544448299215066795052983025356570652011086533618776945323862414624350902465570034197616374865577855106386935615691376733423497593234554598391918673594156413919664623357632832881971416194853099765711469335543119184508218287138894426995040133806883969265866012513299701415250088123707961638431517043027107739980814766731428353188621814320498286766379759442353101334620983940131208945366397956943643207801401883148525646954519982634118325983117650766120583908762061284944463730967375055284365261848052279408949361609028984964369002491535505338496320692120697202005247858850937744246556575383818220353288934753635239680936040260278692793903972973528821284391592101565146606319952886743449867122126695615785555852382487248071815334056585347373970177906014804185442045274359281457388778759951799863500982158652087734896354896461399209453592054552948009866599681467543417349858659090388599145465674087310965964826144535302140624618143791858101884068766027381696122919049648032939104102959040510800640781428855262062429779273971618404268097464551066364158267890409800020238644984229765046459825923413809679130347948527187934979921644566585872175308641721539626589645224217722268644011174023941629850271975998705310005566546572091830054101475831286242869279845147824356766434512544195429930817382884772871656239796378404061875636427255656815929483495878270530389130874742976958736488646255166917935685984852485724121509861499546177552073655611707298757940964062854990138375722284236320956766534566854256477803623363007596559265175644816299963824393373612793006487816429739901913242368721834811429669995054583413538160140659190742436864502911248577755682913322395783512512529909584519553925679001536031688518874233392882307070175269392266802186978122683573765146730115418863401436284901684932573760638971944516949178885917669163406099434609719086381788315807289928213987534047855024870670312029185797744999335148413467675003379966727111042101344022439785564899065016958225723656201149288389574838147057193602818179089334599358448648807925097018794657050249339993738307763390961200077190106434142543547450646170890494776484875963228343378232419486360376145468210301145041349454992341166561248010056054180963951288676938794976554479179004960996262580146861877156132941439693095597556961913720908860173267584799425056000528175470083969943189672632266387430889079587032810317660071282999735941711087230807323191036042111338105701052389949196416095687449855412613567273457565730309380647641921962869119288675648297224008401490735166134048168046159803154137909721260592661979583027899739427762474927810100286075897774115855809947995705460403269487816709883640977851958743768136724410277574533146207328859525051817342056097551631378153847809091041607373531860048347809661295275733641221782114710874864141156371406753668994017323685584687535762482663211017952335139487150945822476804873851830075939966398894785036946111057384581548072435691254119976766519408829879147752679303978076054070669825260088030053372875797932389009146348238574152479488461289242457227070777649102877261673435822649208288737666071343561071117340199374707104904483564407580052002898973070382108469443620099415193306284011675253287723053445213523677401027941353669101112563602857561178545030240927052886767224155220319197392880680712185133154192263784775213331746098306999859161460716724214259789369875988273017469373035991782898215590244928200280969793211333847315862311109404193898671685966801549253843023875929892662120235008984531421660768196864340087679007873824369602636140814661633625562648581782930195283299987692222013686565961661179377515290761361851728907917791964530638489823482401459887819002336882346096413839766693895731692424265879957019081652006872292482601263641539134247150818984258493771465119952279018470184804251276313945857175176318040457618255218464629851637757390608075200940854326685229788699302978834937795961203871542620271470936151559449233726457883929005825516334555248110872669966706386487744821745384449892911241545731096086236002785840315282105812197897784375158419658466315041408675834485889211436477293083898519307136873275644628550462747992126223928995965525274511452759066326727980054365801741110253241230465997253318957844731013836773793222013139737877629860314855283536312084956509163834157707831067379027745297075848742861283001466893116340006593577536892481621059556466733128459844421483183926239226198048618247953317250921636926485976028775049169830917964938036954431464834341373632408317702470282683997550080572975672317726015126834681156221243297409924505490530792567365753612127828511843759183193458887690098116701824481326168207000624639577960366531692794189869101783718696213529751604446965230877742096889640077292568776807933464897014941929929392130558896865313539179469220491068934926826057739596301429639206360779298844701091977611377701244696426994734580373797971984448739471495835793619814606181276663566001766804204138121509385438749259653247036452136735352275213143663968774223819584059535075768181571408692812518786224927001734844079766971339127355696805798343930277938574164114493302087981461217921332344338310306663264092485741429740552646599228748305251939700507220948815882436518527176983658355262385193895645458190448732477036466136366899911372113438399597556813564047320049876546955086613041881583951459629211864858003157074211732609106894102461839465161876703828095308944734798203189701769971991338616048013863623790946173297369864252436531661562095405466750712004693080766595176264326746854043114379213579171228733194223362285557857014008041262475725508749030020462730784383039629669322919689110286567835445861157520939397691067247260004379277983104699435286647343357679094627747086226707427233629121780870345606232873814265227806785603463749895734049626129622286198317043579502263698751749850132665863411104910726727044977265220182713548580708553170914493916815128568326947483514681403949416083745505804076339975820742072062460996712070363221018064777069653141547760320099309618631650878979851574163140204433272909982959787039885135620851237197613409262339277600446505998966833886078728126427598510799705092270611485128005248033945520716402044035883815767380288651917461137784471744958770415338708452826060057869358768132715935517901351199514866405960765984988462952202196356305820463676219202887323040256954632662776508549835488459744841449575568572769193260570034147294582675690421798669365548062651453306917737972810910381486902256079134126953285175945366534788666317173307912939870827868322245936631992152932669294246840960779804224233701556558887829011570709258356766978332498799300113828169202517600409062436334441552132007176262769648844097588773602059435591634129566502839668618986236287412304485446505056834300599898895920406420984280163228740110723749343213645631781183208721664902361239627897180372163685547059437719001014151215056465764022817814755335287935919256907972225370400278902443988573459087838847614482425142688954981478302071068670364802016734424543166063017752639039153265501870473880306762238192320480188250496062500942221158704746293113582995496342508519713633337944366601641837406409715130000619127120749809824678207247020797253877519920457969535177100440061192978102210501219731923537550519996348484711382257371966152143028713749334905762958874599073252483327043631301150299403596304798934414285776118301982325495562337232181682137904093306208477839716867241342901131937648529046391762061397807305867934356569699371367549204623939287094539426137810103726264303809666093117145087770813152565126785548538535368544192601170498229265298344619382888218233062776461993544241229445005728780458799178356869899576003512690165508918697635347606943233924172184475017300337951960918922044878963313770197705439207319122296838359875499449635617409886484546847269786912703453543396640555551009285563012848755783314346576860144642139763295929698316922828357207866055918953092070516075115797137319039752357877263412962504844914396942323611188814332889641607888867918019898381608569088038244967546731970671692586095172298269665616328655653358831570120045129419664542948124750193340527730824334740096933694858705191628311495083766108184981717440978898601594681605839329034243701472476394384820039294075602313555644781398182538765304676831034345334721650037282167367138251719932874912391881650940333896035442115920152413338057004840875005042038950755388709807140989246919543774880206927198734096717412181316156221040175674138632546541271663971497047978301114932871493689740436468613837049749092953228558357863479317624871890312057964412991218265837233575066656780265888707809808858780337866182502928915349505493098308505647161509999423676102309499574080423041122951502407958878435000422458287644999440730708692707920592727534356962976524811483922801063637047115855824065970404392590850639325894848539652389632221397536492166589529315944257117878817989252915501093154396537468442926454161038836815808325999418875821161049190498567147587655113213527953388296323829594079261441274295799293979227114278181157707148776411728520166470754937186776942254826443541508803354309702269484879430319101429982951420059023997845117680474096416693999410634553851918361697079055139562477581024536926795129116762678691925854109918318356031884019792927032241632237271069631863493848455667490782200681467101078186749520680686872617842218286706680035237446011362064587823704985932290517510786247353968391522947027959083946079982022669287303722943951323345458593742131328714255681105992437188300769935295774217164407858761594510747400779824743537916889302512288383196896333258433366117317438497658065027292133920187202255573578479202001452001532361508362438047811078937696517806079370126081980334717965603709604530586630375149834284848956628104077901554445614607085447157882263809574380011208391061452549176728235220719923912968987280936016379867352959525739015072832433085553291442283272445287900227568356593152694286515909827066968088898149680851517113932708894733891048296949755818894711043408170195407522553268685309071479799028468263798780476656656891012206688758575670256804658565921376082219544682307183878627392942442086319472170688988639519585100689929649273765497692546855223631695991167114352929993193641273061459119113885586743689938546899495634136424693731456051898341545832909498954789503445592911721369008993133185469067334415276376276799456102888071308927546217676614850711969998459136969742658802958834366172977143592040814586927287150569288428913638259829589906452075185035309974203631508662824695571821559592986667658916547453520190856007858681245434320285675350719754072721143156530137352528320635218497815284906863583079742723197194184085827856640108032121719444122718285633384187650187971032221997708151428154710031960652975646241695280316599416557651799837052549931871849967003319831938158069164110510120047044599940561528574143339859368532789382169615404859652050986964598360639247370540399765632012533762968021501010715387250365099829292102228477193555489541119751038867532795581595420168984841172220839105550828760271532538554564434904465937838553507371035753613372759099736620687944420917175953943097306435104577780451028507280665709004535782162300009031110628820125472754568688233553116693063157497772984510037915532742219968432295045299894106179050925026452863806698692795773925052828805964430732852821680660139011457861291254835618858529648404015612323522510645826667856545667611233201510940487822472329303417278330834896690095526869551440566632339090662919076604645509190128305831561546807141135198309027768529578211550591787346569462010488545674729562916533083995785453855467419167517611135837562414687472969694896866961596810828501532941774961371039936792842747159085202973198274723878932903088514384410618863417856185130142022136409132442804527110676713556221994706352824409742325394280641729854288245975346667947314626834349022093623729297122117688531540661422427346400871338165484852121162555335630605264844501346132406819550899854313187692623910432111776119587848408231484186531843345385802320394538755040716317115427113974204660202067359787084223955104648905060548049543114693395834942729892739349433098889697670760796347102533511081722985510007846769736890214922451143882913201924666645208512508890549321430316555882310673827741992577234436824636529656848495727966464346980699833239343014770529745349635537513693096267706381935837485831335741510465811917107416424486691202363518351892029855954481825393048052283176773550726355031972456537712485430265584870024111514394312336379320713853230723401409467808659057865289808506849858492968100126602682538215143604602510730737296586011110471890298111730191129220905836584538702833252944016622763030990843603205344671445068397022882619445851527431987755916961172707872776850895223741352934840165909007664573213433269432776014503204130262920287872113657376396125766979624219152349226323240500456191328300893604291629142530968251748422420616546287739092373227972398605371579511223426158395288817022266828829324648564237242036359556091104658578701352483844474995287804344015407980126667248536576231742707266982299236466911966772606133598920884926833264169244623250488217987332820114279243585672864570862141093729493590091309258662392591462280138785014906044667317215739175658763439431434247913346905464069927067671685055110093639688791639076450803346620548770603486085923152434573582352272046209948158618860677021225882125631643507982457580467670049349040110468972956692660906293044863032399020306143748135698278660336762916017105238704947011109388438967768290822873520041022958607674584048786119785237720556312196564973037002823723602832347226834914026664258066412838250250500555040685082605023968857981566387956238193835185279738203422108324652192528019798852523628976434232594459173193428228319409694629238167853637807758425389940419364686968495095987810959040893750819030156635948356564788542726680442233736889495519891004700485760654697038634290076794999348261841867488178196728849525142719881419749517084754313106762137859219983318926825505979188806439891438801770007675655844828404356093667449713708503316825553248619353446749014043638486712614045186308624852385799265978145091582501792403200160151620460118583439942331507408842092284435792674291478596058977947286738865624351186078361794198169601460636115184223524375609032519561485601554053373282373175060613258611679678049035295813224895816011945369993733543314761644206284868994745944070733686607143205740664925922769157078399653083990060648497427033926693374489632650873925099203854983920693071075069094100574308088524115966997051575749948797696722719359015261162944906231015503423922319391627843512919268774044768041859213609858600158422044902415658885374730565706908841814376172437976287047448365438205037718200007917157648325982421278090586768220322880426488199309896552112901383483157993668447968125858939428603843716053124948267438559546158072053733900507406207137884501647845820717677942104405853434246745296797851030085930127456621550550281595347264746857172342839204917675156723266543924784729870613259629881452767183346674296912612460573211840760113530347510425696548815702793736923073205633922974026419440671364367770248314231186507934169750730816473576070278717870782375726879244332045474923174493696315399537205624395039855387894529236865801630080290853202192408337106560565071408920275463548467445636616376849820135154476344613128680283241753155115839193458712535561272192106702142393100286147075533463230971478504879161992212256638474879744795501954615966320242148472397545535171561543511039563225553880265120958597932011277571071564963200100942968571513354282576602242684043976695945463335752917041496595836082097921736451135624597266910889136376282855201998918829050230638330313675325676655732017325722193444636460284793756856241567059712871080372416493432892098276012633886209370681356210149816323380708337393951934304733818828304646566674359428899136934951632687835957076645187940536410650827380665186222959260733990535486612177707639076121828902130110188202406948695323063585000052068265288708280998783859014339966519975242716517398120224744862937408544376961237970284877320969901418077336247542799840713537667587381372605724847319420077021287867017344175728729564269336966193291402441956743016301207990521064777221686202732535988492917661323184531217712266880011550401182438744227716787349022046034359786488440224782483585364992489014301405730323447261566237976521195764448701388526760136100902298206497571342777535294697054658803357424616017153824969898102743472016469918338849296975474108595714876819171644384539135077262715395265085700424257428226419009798047493153165242335084422315966938649460006126942700701499786820397023030279962619557431649621437812526220305094964152325019675731574143167777935337731757203712417267420947620941985020111553007411760452334527455271792576297643686485328857829168779988293945832486465845505034690658253376861163955123902367434913388359233310323515935700987595098282985243071714136371135479819355688689264809991455880267902196187867691353143929205349514132074885740918138620707107515378333463290339728900067070840874201627164380152188574326903190614762242592691073602238009958528786303218789958121907715354542078647014111096283213004114080353048975609804386960269286224123163516546276527076492645275963851040952357759320932819832435614009803546551945426601336155971676395761676108879687168572557292401206430272887855566047142510542909237175073601361485998704127951982368732231520596725081011220033416434682620605502062084474041914551520114457573747055985753642888669622761871317248454184784175618500847990120692990271103388227781534563065797382344944344957042324699550644877876850252004619394846703920139614787441123049110715865656875174399851126253970985549756080325492442561532528973266808966310119442597517237222979197313915093527680895639477150071333733396338715301963497704846908706278525580388434914906219734615585860213339331735829737185386010463951501522917191127939544025637064305349405369606616227758978560054076229304427646038499664466784410606886784239435665678085681828166849435305523041714432470093632284846087525401339303910243024005290178187631441100461617723283773154786940130358463666105291039241841661681835081190514512600008216185137302498017408718713895858689396528084310925408099187664820017077545166094535088820077439569248590654837276153277593786313275833237177942586273071506330555059848966260686203421268403541775449956635009237764571270020077911205889107543848010074539914045808433650308497513837747969716548963509341234378128102435265205641902894943737262996174720610588488930275936755792239091986555593127536966866353549312825375547809758753700584711485403699330906552287423182784157472592539001164570841282101480069904343348490888133868906706509394712682694327094417016991014492578661982631457099334837574036117517254362055744910903340031432035093009740703893242855081167712819909284559877370175754516503893515491247622305468522354958095465912249401847761641221298185862780560830726881415967401827757904732345476929703160070211803416666677557746415133805648974364052499855952817772197904256815971743836023742493769212695932188839563477392532141891484908268599662470317917437141255653425657835751084990116389234285478931135565053134322972092752220691854174689509974156863629817392886699117004358697445851454071420346126233897829334865998119349180574303147601347591879428116024280557374797128355197614330720492751972453728595466477904358610893439177590542324043803454075561898939738676203092239914803994973052116027252590695406265693429936078499144551166395156123668786282922928538314793838539142295579563085250726083571678849246269701774764175226092387215710153951358309097433643016955664353938564492415867206258451442691628011725576060651886199747369028580253946699094142669806171494656931393461146468631669786058136405394945193145752734883940595807053138556728995102679704253601231434683306025081624170190212653710963545270310883810769177174367152308735530889959644558514786079945297902713240609892236466850837033234941693964551415779446257653115627904944451429372361922703600769755778083921779319618043212981340858469368233751124761833045086153840599009602167457300021492390222026868381645470249047507304097344402830701731352607838677168244424635025637909694640467069437153698249608459035477689896758326181496031478597243603520444806693484803396099703323083328124912329814960703822709952329343081258322983364811686863288372051150622100841238037030158326164561780083879683247318894717606784376844266732548621174826714767439860543259196022285962506010804538125371337370487226085517925629258906593410134152140446215169057113301820697664680200358581419644080313988985266868732412958108701177188847285773177995455163870833939097848575348514262010702888620017481574971332110341372349200414031124318335443765711544683878531468981215338781670783606416763082501679322257917986297422901347772399818265497444463783816715409066392147495821699486512151633214399978899950746426160070038585315060877656477901093052791789436408744971369995142482366043305740950500495611806210262616484797178130482901112066652750451007813169575105790272527559375609410022419938599404623882988087786770620781463805317567112053230738595450035533257515457901658241059670741740614943248650588470516401709172891424072240901996500823840797237554467158443356424035740719460145395613615722513688442719824893720246147344249536148153246434656346255940253518982447989548677823190353140384077197657368252475258620403048200577054186417488474962798850696036927716469966260326045159378864892033252029770996840457982718338258483065012357386719945333387040321798030800085635064796435694654491581900597939698341610310005264075739162176789956867707612608986842772554099192157097674621742049886946380042704875060620044135094095047864939859833184226085142150704979821504933066695778410851244577366768700481878261103637322495937979074888630696999730959259086350656556383949297992342324781790335822282962805977104052263658002400894090667070813585307518216175731406683482396556508358392896386462328130526839576561236640304220450778301175073927483078344119394647228843878346768427282043511060555034938860546695860187922632691347584041369374759086847064753842074798200207831050452509446628588253748733893987854664321913661410460898894987421158650595940561978179120635723177026102442385174851266220797838603595217518024918064174307435520287042293486669912262075785854067145594536866496479628110973903490497058281926320442661408287603692672609811345875720614332831105109978457939581535776449801702947344218158229143510675293858938402644418072448486857136321858013083038084215979910570860456686484494420713347320752577944021936808806013171665917775975757382830025047769752047558946141093721298474161867417377068833486837284208704410962863580263767799388150162130602124416099289994079122429821933753192261572835968852752168829441315593219988406465886557973149156027117316339567862677442448307793217174584417044289501995992614263954364255949605484791272520008094212197617211684490149808994065946198496752513381132879133680075709706338907495986481640636752157168611640657754190930469624638294643036506606479004066834731197305090061314884010675278092621762901178187098884877611495691023357711511451882570155780701271834490037515611670253139383863282735424773954227558278216102898755056046609552739956320202769303091709053238557342670383180715761913758686775536389894218797868958163891628529803417098728378584980259356681832998043091769839536303020339155281152653918351361637508833113323159435762240168639468647578685763223440476044285794976728272118113649678036786311678178312727795950864330234288154339298553120701553356814338632835550728435760798180408244692350980359409518347722391876595638436765272075665957179062121358404187115680803401845466416011580067276362404164633133289425293423708767663162286566657283032062467332158819116982874169050102318228340696490797153503574380671184880987334374177892721521606220171162850304764545214313127532105525638681304768750597698930803679719017907637663486397978419451209926097258666687835860831714982492340327646219990513059456365911037818149084046798123872901771770331027293990848448262870220766636386286133103700052293603830457655406926519399845201405204518955301523547915397925814622806692931909687623671868831436351166761955330614259444072306085127529420912806746474600669919885303850634832339315394865907397412944212626428656527121196297561304082194400900946032306578051979388993802060134688617938661494956008423518128283118545788972383324929491128850105628165663031115136669224105674005219296623784957370462090839533384769951709217234620324466141640035266138745208352587814734154479389741938781806992721555359170537382907882784146937467744899207034852354821936062675086812844853430807443953748397855692616345492873370769807225165818197741498603830069610106680960209540873311714072831655059302755016036286813584083947216899126190643806118875174321919094332809872550135423225642628224158129242765261488973434969659820145661796755160825392880432115814516045694196767488898268890585684245806219471654951051723331959616755414498828831385128479255912127217748215824473676496969123689457902428238287024358475575519206075537095372504292905226284451484878310618543912375175548727025630503797475040673861149410978730402270827238941762946757862125472164486587036236439131025253259944791976056911588334593565852120930820704724923194640781398643769930403771871450578107495591687602676601753662799471408201139971057157919908751974788782083333198198692494937141751858239840296034158823635232975822826383101907766401985087066780651717512104710473522467673760650809259747940363113459079831584050550590884220301325902060291247891272891478731141181757071262687954565523478110999462543267350992023369222681771269050365085775538251735514664983859845676152702541718955081828802145071194319335360981975062343968411552018071540636579764051337605003504590311964272956759750803018172429687217211396006461158010614101718386832982524055753200887967341481056628683820629994288559035310231115707317383864644026657323183058086160770334938219200086915089930962882591525794475409091455329627545405964559398474475571247663874553282840721439464094540322564622274521092793559658422591543258916628100641023699089019699084942955503070423873285721499878439664308301742437878975549616807957036427286774724654961643533779234167439590125856522831692891003037931527108447608298855265752099401152668923934610654796581273866036438544025401891998299559910403380218154262590048320335197137566446276393946917597656911386185965558889138722021881042849982017999366923910935675788905128161782656106869205478093771966697812925800139060213473294793968108963698864623149539204404361647362338683808933201012644682285605171579251093980657471799086295049495174326248163880681622857599043349383654154274112010512670135625817799267621330688634076657744895935030954974264396978717407721811055130428456215792460969967918913404168391808666501744812460794926263984231228676366722073432328287106550376149022122903283828928081672727845268044447615546809357616391436221836886372907728062027272350193928893502942658010087244300828657902602236321949751539425760150343878364084160652687788527425396651348298668703372735952059626488351919541969587647146045832284167298487189275589962008317917329535845279705746643680149805264382675613590239790407632292205058052851974764725922188124349607502402355992692970090603004683601887668522838136567021172989010645755231854172094475929284534543342878370858080690889475474478621272678963826398671415869997785556378908984636430153050574577847061471830155395483585989745745295064475033546397467164742046181707055457035116922010574325385729056130677413123028944714286672843929598633443300039365884783660408261033259507042125311803320196631778884759129169139814393772933803529292693495118955079260359512237054649591357442432875631175739747565472361851560205853646974220574756378207640739195662788266212189796221252799461891720731673861840725416522529712768345312396842875833615995851565757106949874488719034732293292430509639485824449180579559917203475820488423319989751764695668349436307835430359272679189132252762208780381066283470178364449857617207625606261821515409204952552242095267473506666449299611784639343347545267447973976594920363799687243823626918150684410110499012450425290815920092566963900571416003972309651384618591509726469930178576755257879384545506978433268138007851397701229903362304614123250046248716561636905798561698564323982664051295559000854398226656435041084118880790070364163874238779589226597638058686059607853638924032658431157300324723461904019960640581057230113625878881461212510551517607915245453426441517317619827848658715648826812536881675050878067610376035413723562223251553055256719241578492030234409381040900868305265648608634766661320849503610601566195367114104443799765475186878889673259171053429750846098574361921566271763442386442336284626182021090012251784369619944768418833628001850034785559365103854267140968511299480717883015605819693027733937958560731649822100120139177002601643892729039062682277598084165177690506429078923097140042756225720136228053918986840054172886401083342065566076648975866831777982790311514015434985628302262698832741935210408594729486478374608058888580699963304655237931266899977671656529098056603932321489667029450006139755728915423186399754285665585493034831676825675856089304604106037180904391858604486633479735809092785662180581171776344916182409358525015606194065560340827029253550004640613602162949099485828835942956903494557191314669414313888509997880757616976040686364404055574204569096058113435443638083831329165615853553122210623658108150776386571638876251482643581698692591971456169115435038725533558414815986029598659173408137407581229403920482468871973278054497016693257101696751041565407225057138198261948603075865140943361738428287254249598976866772332725273416231547743127048575448304476410676293043090996101069393936117670037538452803452884120183185421232031764509055347731515608975807409154111170969449366783627767554280444090575737064446509540934545458517074195506477462339184315048680666763155748248089706401647562965888871650369124484462487602382169072965763691806665755976880576542831697492155146190176649905000143398963800152886068175082816134862781497061797364595567341056971516808877445213302985402823800254058388307853613951949853339698962100515497933295734533074914205651684669205609508435956736721077001891049480349940517962898242812631521973752566799436103453381405891405944141903374750996456409685528395621668074639166256007333461342726121495801247372904638126837011235028747753512612492810848341844728391043795075898004057053828047014810467750801507976037607249662485521119575129891840037899431198218576170824649354483503705225097997042229321857546913717001684613323239888479504497425605732062409264058117147520747733735902755093051923710212842333227889100288204559171381494706910665585497166023770110516935763068880437810092064724070781019526024214038978290470015085881139266088673408965077538869316074535007946588650996126000079426599690168045248611144690647169424133137505859744102584074311739360477718107519543616486023986238497675350670093974772605639839420209483729532542494659389775330044236058763390769966474649896188325902258924934037085737833985054959400701590816506590147785982099391842339425453053128219919353701819613170358292978071083652324034283042274962121754564290799246493020086483029889236324534388801008222296125425968545144738030251972905955286419229294276998800977962736024523659578338884105266373201122174078691712663975300162507517761513366770800987899201596555319567297008121249453130511803730538979005664707218546731291173801745036832751531767897345118716994480188067577237363930485388640865101480121101328967772579558872387986151171342511334124293858551204164386282907792224454916961384735225893007006160382386735015619915603931963363477334440680273632123806305709997812624047510041145952489602780610282691433143633757272896192664467595074788058639591267086524074574958252029108558750980474274540345941114505281173705519719189379808919826983208039024177768976646740709286165291831904664423023359103447180190152767687034018159463412912586318092425168685995839881381748301758157474108612668803355442492981491154360675020595809589873807645875248355272519777289475472149330488669006176782852768188815244799500067506887305378123736547545525527560622434648237980761390545994311245830859688588938063757309201329754424561383709144429613002255901055153419293913657295622731017847655465656438178123521911073078109365369172066965660071610825911142679462327747877193503223316511864900303239098474635508407743254238887830571785114889493868732260575237873494428819627895592983836909771566483523718192623592428425943341102471353246509197507510713313179355615859577395435913488299429627198214432487028656234751468699250958554079586501631978430923827207310562571335615291097557316488966411970142627289946391722090069170723325807531647845461676788072420596332750731582208205546369505824509748611005977341138920202728523516163745623707554520223877646356080267210707490342787554073588608706336040094089044231132055657487700390911423735662130444377877736929013070112258148814598377208586445449092632472768408217294840651498939224018368297703738041622277567829642734582256119160740265330854152236515976933032092751660654137977496197324388957816760527647590873839780546408727088289801652939497166674562505171558974527493348217875906992356547308977038161341139111569080333350791277932087723486196240442898818054289025050954096370357242342843583368510250593157886718717333885483092004097780614211589745156493863730332370330532667574519751392534024020537107772726487254771215176117012840850775664125846365830946371029842719231007171785845430485499855848305489851159874727119726491267145687632138748935880991235289709355335634742685246433528793773726712420290907231612792806914136735075311473304476091916438904678522739126069744558926229841276717596747931933202707429870157582375060192072079043612534334903315137636442521915244077464969016133741689890910508209243282355112937767327866530079227297900453731567920167666719712055452862534488868776274057221233654022279665522427132349852159633381259397943458731573987680182986131680242030208680956276659239780574758883098955290101984402283168679110692529945887074489849683883880202750060438715431725023384400695592857920576178888672110129983933369411338341267910270404646648091118151513023702519962488072974924961738334971136703862154781531201989064592096077944214057700044767875460433551772289329824685375604163283992171428419465259758331929986524227881185840641949742895407161230685426648821182707272942412546975852060889275268094550645147253531722313267051754573449291688691779005803526577895648517417133960959167346132684548197843882291849377804201920357472254124117669781906557619354080148911732149978140202695566373553621483105674129301759115170608437404540327219860694918705195085881332884569830745015119090716819174384874370718715619086147071976675277672240936496646702779344318003690227443280457202359583117072050727278897767629935007667172708467726455589205687606486046004333031249814783445353662744253596696604181467891213924884656909810620284935892458803604568485328409934402530000933654441469098615380854529893028044207823970407196790864868090288917622192497936808274842738556997047017775452109281503617472978518372758962429630217721178734031034568343176822716706621162235294654609739505818832851814539235098659551092934024102827522381816894026328913405367775830181049518277928218668763939577121573286744041478473939006153144286877326868763643249392419995511022956636329029814839576466400850713328317207397603319456343860839114792301958921148182984486532962561488169794905538913850399900152645923582858824676216780297612951325791759072890549010967299978105252715034309180892716828560356815443715781355025114874423304466481186872853513112632987481880270870706574884992936905458209825573608275308094375075561581183120068172946447666458492879480320555260634754657524376572569115692895164197935564161394311756140062060418130337209039977544420920841119935667705336778020584482554387934779967819563192773976198549937101484223325354404511234332010346419048278402792906431747918833058735733390101748926940502516450651576486747304743864089026771265991900469384110980628294350938315569077712980684224561235222095006041434139110008283554537311130487536730455244195876324579110821104696497746851383219339010522931019389109158081113903177614170032623215104213665777468635642812737477639644511021645598555827977418103861459526041512343686139383786768018020813013139159674530348802110739921155264063572599194352430923884037352366298402741477540886211814935209616919825066162256968435718782346935138942975257904346021590690532479131743815869208514385002121367876704098185543105354862510485867886142908725730853663143914088254377262660332954000644166540407161767164518863271126506166780689964902701179644942138483643600647049436363765636188661515965243718064764756978210618036174809793895262246757367907830915919828162326239363865693758999948408225897106169708348243287774428928714467951010900105354937328693096477223572070441515770667550410313199070893252374853487298345898985461198966223780609745491401815454664215296384501719133850989177887557188356946292953724523987416374906699157436158307837027968152830015426339177546377216153433920720146924247345548998304041786564713148400061352135686221746524268243307096546204602108853926125456475937962650600858332510024390974339740153743307559088332440535849178157975591346092306748500226078915377720891837628276024948414904883411744237471861183146083202586477587378109639627867349098901224182487220303417755278638682493518772996724347291974997726891161254559556404109363709302528423705650000441400626084901586763964307757245220570151433499480806719414718807176502694906100597379709988663339830062644648025599844404279695539441013565720090471550455109770771200970773230537088198215983151625325662423707135496911029433378354802824286610367313176876321746322933935196277395384499972481054070747585507875787638607532470613172423688339522963447091315021585389522554678361339077654299522470260437176758956658068369881430773285551122151155928805671409863456696301766165568287863391720601964668215630728343337570309351210064580315597168299846884115314237294745537963770594051230923187522286941620721072798667691853709554801169271862960951408618803879768829647354837356585868743576241741620971464582441401918844808881623836962044387618554186096600783228915062921512982759629237609348603264965517024972305706412090961831993973521882088480018994508010656645233886280313120815363542790088247916788329435218748535942002125721628663409371317710469461660026808171999835964680167698065441307330969540808793406253900010982396996468622672475412101475065883818397282892823707852091955530816486403607058809553140458553263060278064576618372196371827994568791367241504505192898289074706363807525273846786309842157469170793941011654944253736743216722340168355434799061592262788790610590200827311377864610191565327505524822245739719006255482835231953906935261154343311871875562035187285576693899494886841137191163031614244393506900900782361175000575383888756592098206643560571937144089325735933394768121974242451781677262063273911834133391448159947045667572553557642818491359671917873034085252794548863349312860473758812355322128659136793022427489243303922183037493489307900700637698982166406191544860268014847226767683521891264383277710153729433502561541997839280755895969922200714107866757626834231165351084437683600659386830492447169877609075743653093035704206414123100081686626034591985457515542819583091376727574447290220034074865373739925558359270961064110189811820988939386441400089828844023242288095969074429032455969880152733972953994308132322078418505874094706287842825996009203190954840812202615176184437756273225332807084722977497176721773827580015501031812593394329658785867184782588636032300922733062558077845652114456822864915049875072045953796709103103796978107403298202746282166108902785546242280168076677320184580186160046312896967097731561280846949321931779501726257930349885918892619268735615750563724707625704791444025509222182069047527340403813990121222811642635702896175520418776969452765316995871163884418053891544793035264174167706963522176055415173012378677376130525167458679560353310225750721413123448417435372769011126045405333203268994559329639733061552404329612570159448824787841959513279289690350001271070695720675378693098893295524430651379113329523329437498626677981363297261927696963164393470607650593309659802831473321232751818846875950846378095710966437507647696311327578136626165762588549976335803338102988242910997302093930055875781122262755695121935015941818610190517550058390785103689171143326428665849632290940045616200994984645823482961159152930968515379849041590102265497534556779172367538895322978266514017343475019974007077505397927169998767790668233584348026304090787186439232462919825545052914793685343549858143255088495416969820449953017949345159117172183344969500048068525018092858244723118963758778632738263583401806366991637825383956377532463494263628175044074168819652177686910749040327465946952846189328595358524912703451195155009106499953740896714945372362970876642110718852102615115247947452101618381879119672783367836833066177999389822923704611105766834317360541678375123485404743475727666187756709078513140490665596987520014284654929415970016362955687503249737434905670978414384581694121493933584547105663542453878212075723825157542068730674340970141362587047294195131162882337324245361024374393106348972068857565778835407596100272189013020540686986776205791302498275028378994985645590146224713846973120305887521202745551842687523747427634160803371356405000204092415116520927275779501081489057365982414848309422810514187680221014509984067070944579701739017475548543599456956460012238163229838591558299340431947901256490657607833125441298907260396639643080403533119873810563542143829880268035316195102428864540789791078795354506104193440239597138692397201179898712102861613359280954946345593541554017644672213538489839506831802475725887678291282914290752069145029756467847255078408045050521540382697142848402815019792171707540630475603170807105470476129522138118713367227693143979312730985189581133112805916665605938667948853509076739702669855354181424949848957777187552390943047840982642689182874626952954002734452618324016945931795109687692791915946551533451357091089630298329688403000261264989538634442172878366214886664971479921536561580031061303928422595946215981046030015994611491076258437268206390199846564464474752463274798945114019768657571931606396354205209313613711688065840071762376762340734433986237657167774712391159233620870510775658564949683192094183853132092321751208832360268031979197582188561840184523155933459723095435728290675286128282998876642125976149454564460727669991203302631473658437549118753332087254782967348559119609167645454406667756589510669337133667393083574120483753542416346048751178415273364936300168728842648590372974092302209341463637792227537312127379409494282621777632179590101285833844149684982980094721919156385704787446853667220963883706069473290437589882871569564021259011105289890857974544029587721410281357768837481597057710659602202811577126533433503240860695676782759757542857871408733928702669647246683215992017380766280752710563610473993810002989867444528632296162818696197013502692603249667697184534019079780151528922767372321977725273413800031441260680978075572457070667073157729553972121770256160105737842628423510141803669627085306671850679289256909119252661531965299278157710407225285173818890158296275782958252447616652422280228066652323447440140772248322147266284224629294122238201914800764656064220338809441921383931909292812598862814497372889556930799406294999029811064847033628946164127889935376944829852326522706853185221518377724600110173815825835155033635261397231025576342114088023370811755151891138298452716426512041309854651188769197589713948024280739783540824719645966188887440658818492442476470566850711605361218265660301808561967772452988518864879377657653623569524601201566506043318176110959310965924235477240616032052143954655868291379402290816756564232792239457647771387294948789515469078037746723794097755759021704753462899818716646445041094674118513224775914605277607427764439194176961121117532030492076340374704613225812933047809594141960921898452804233676981585990128655217453938382393730005430618537784374661167597660300524968288286567898811711081188927402641970864065559724022110573450467773717042139323383775842352593681830433691581658390719924497555667800910992451953861197442723727455271223320380901083003725897039724198673928764371408966592531166677220368844695632277501496431076088836822201875396237356153986734699475265313619128420548063644099776633789965288875558014517816469241044114658579711361113916388910527091106121122738006504713650640555172584931267852891545264398589739790168807607462533303352768247911765469919418749764570304575022097263577785368303161729083691793863868190158442102523589860728570281338311930705273042171869586688952201594154100118269601572457810133462739799328254645112947219182578386871765707377805564437929205322508687162191652916809449979926400337506653123267546504050258343607696844190797088670085396588356561155477737790824044691281849462004327171812604517321754707419374889298050026220213238273687914593702805512278975649348589142060920126784238386418630671253776014968013284735227484676181403877861522678957541029065447095245615745830601689493252435283858109342153098196796246630635871261761581907803072902871010573773822429965297276414625389506256002422413188370685217090252319347963414341368989068167032153935629598444796398443045216280711481602087131233348821470046278808200978540110564615376117305739795092731241726437906775645909130339160463013765600389950173936912683261204686832079892206108659174097341562527233856843557913664724682469081858132778764015545618590550739734092460224700531718449494159829673043805065500253523001769404185211182138912703195426830446012715833634052285068048066283410415943276326517880906672994847015418985935977027915653511628916348821116442721732507640215293511607478427041461333630351740984561687387244679974451211860115865112186634219823431046722596004929922938989295155228527393089789770093905957096280876572013741039125734125698043930978736632423876147243253360118451787649660742052451804529047734119538915155119414302014608666903202109527141244913273957375027533688570597145598054438368233909668265777656838335334568177295299146292556228109896186612715119667668324816196895137170362555344261413080008456250129601781341812196536724279305402995768034068378559670143779464900053180652344597305056575295783917893268465881572118009751792442869541971037263004043553616025330846667987060429804281024176567274696005351895465652654558014151922549761521642562771668176224998426123593471556485420319598601251134823771136112851496980313720808493544848033601234873204526862442455166421081476709934752785994938033958832549073144329433423285983353035269579213493142853557235969809948072355809214547922846430574606742097165370188395273938985818798324200636443719594702298977586291400258914489831343638430584472796760647494086735460726066020364039715493851619654469923542525241484788391884794345525586233090473031706273338882471837833853749201868516286602360799871980140648992004791058785522911143966700165742047838075832856906162138477407523411157468977589265805242747508769991809407866584216631519415712158915336451310283886225384800675254801245524628463174298489462562685340159579626241235106986770896429702341234773172613886219155906331942678948691046613156373332750614454301293264606537770762541965182890975086160004754195015511576153522821426647617272848456509599052882464674670572884303813797313902358910509626878211617495052742780177428950916829475528430684267960865258837940875969170709099212712216687670496286621170718083526541868445035342548961022182761868746221940831964911390091763587200075600844802156761958992195018789020318375640475023028637790578951407847442655006302109921633728757611679898485184249102022571526866750845757681625689704475347928925781116994043169474128497318979565920091828360268283940624238196887580384823347507469739453057607660479901698242581651189298105183407020385059437142126546352887097684950242959853272311156068605735095372271231090384740007764905048386966929433370228429932649427788843739015142282843963034383979338763193715456702073079654054401350877056314850985891884916663138272023178374482855152887557020364878566324312074626579632684921297561171819136551495794787969784407730171972913717692148736038951972116576547057475123196115186601924175160717113128499989908405959453587709768036619579315022535859366445576321269579951744579604195992847359332126845152442879738329881413972268831886406311663362748352443950700084125988298514496619098606027157444196381343647688468856271329160571523015528547570515027714072865432858497839648218812021311999294995756267605691844653467715101809475849860434674898635254844708110129068894260794443407187190725953571110968422084253795088502410808092775388069106405266613431695127979660215609246113126426992281770232462546266422539476369943403448861615912736985207147007825017666361443369183239058912024031974570397051851702469795975364194134932680625432990539361958153466057490883528906301184833183637586795152471680527915341723065926422611081616763647260533290049276047869506166648826945020571988553941585961634494600822468501284836100943771811164586387821067569376749014518196245749220028347580117880028815966634391949474175244457150864904066457465451990757726414846827169963534717188690241482336496879198314960062566114791015682649737761045863234735584767371282249761865902782354498075890670926542956997489400615632427246540069554938043238971860808212152082396257650684486313735895671706441218416141530474616076688440146508368366419331034905763153726926874659078824360754831504159138869373449246133392937165758339693166794793405903954180432613773549793546229703271444009183660170893526719821976831175389698715044297468876405124069772093513614852828116494216045809002192451923380281700405331296781503129267542439527699979701320467701041526053375517975645964031127447978894312116334020473573580030276357808731315090774989952171578917894015218940855961187719165734085605114036387983592643392626199521955762176059599296411398933337536755418342220144240246156590896588510379524857411845796492548806265897514223219813362721674750455884178220786912122555935443877780241791126328053462579278256097722921345729864971151063319857840919503940847502231091811982187815557428586448638424185760527574014163167771221339069479713185503006576155198901008908410925817290659193936059306472745925386914278452333991700456077410812998269363844889394829709806708768520259601073871289744301200822889214755204741501855913427286019724139093096087368211052263059206485621865474938544492758800732259826122910405376258545797541436610200330842261326384327590412103428158428964752109511966602585047445085448947037310750883151393890380454545778557361309496533048891109491401241777390602753678338931884408173737837572134166140503759523353212819256068187918156501375235336590620328697991352166939180814269827350500934431543682182901018330173907225198295162668081020714985370138468721761255414941518145707284008796745849894388126682439366069427580739226118087910800768142013097769208737790950305400857573014434128682554016379020581200094572373082069032830668840058002692281806552831320544159123032113038258795900876828498166997502488473273259633985800052791364395032031085774069288890003041275800719663961790781926100263479101015088283997991151979048992042537884279598360044289521769177180018633411887843357492199671717117919241920024034700610148597306603249406536131068090267466968512999755148541890879444959000829923279401596683825935605430041978949937129284635900541933536409910611757942209548841223523815086376896512093066317428084493956016047089122865050756274627100290438351437581875444720699290942474391314327215445574705630460644657684296843882523469729913486269293422448244607025450429759586533382703264003137315493162535765119601772633806169465882929068576368973290149697413044459031046142213517679589635175365200486275286638396479707610738031704195699566923742234995766164164342695424835318547899682863829962080486507284720515458496157359647972265167199446557157681060575416600209723797353926853940823870415026177840559101081463458799514774505796756979940099278527714083571528446019685059848521699889559821433641873241155004414622647454094271110617002029426902481502938263236357680870523104314451880413363599774201354786757142217828262771629015490936069427856383166283299123112580884536716987939178710760865115809167726077571313588710928051328080601554500920822475052128524106287034079262232759537337097780232060720613519631920173385302849281890952475699921748431371837534626447815637111425883309545909920088624466598501646163061384412254692168642971226910400108415132178933371820117630921054956848046799748952306968888506095224765008761901197676017653738897849969605591771520799877301545419956021203195265737223484097179749882558608012791650399780611518961859207712665863559959535878773476431377926088643132418894001867997486685507401147624126211374663137026666178611766546195974498597071500151831869706680737498131226432117418665974099618702966129780470987892718743275927993999487462007063609332811970226747380684793045370525619459297115397164636792844859611529566742791956692936341002882957936053694123326357665491370425523658854986381168896581330564449617615993481901691181356142823329329771034459303642277314546096847541460214324058207052429848802356806591581730569353479694940485797537558157163286780837749024636213904002680890630936001132494963555464496924848166413436176327085772641782540846085877064191282248297471230979013366754445794592067656889819991353584117094411212114783202980884164578524699809823634591178152285477149152579964411779593650750972535646285478161574801016272581392794961072279436581424616934875649451472304206128129930180748752161140096205085928092320895299634474709723814574493827591956270864343432344091633714191877900233518604856698189370602114656902191866149717406119935661032956724322121268105097646652974588912402950150282873506762354942284776309093433405875500208131791777389001517161276636918872204113150875713801736825121437375646620309065169780321270953223531497231348063812918102405371245889643933519752868444279033907778158753345760916233361750697175287394853913771871850221307052797898454021614057927679188925668337360026252907605394780629288879359075819831580037227575944250647776102803167124080865147365882106519151949831624518197591817951775998308960556256176644392647960212968447045257115900638295647071253197595834257658147832440579068363170791597603643769975207944215776398700602595312184778817141055735956809735595261718043973965181239431779123498002247300072028772771505888795062741731370733538490609894258466085749948338815485921454648205312551524328735291423801132856167720916304016009743149973343966607901342520705767418044589452850051975350992274323022938711891277360544368048105324485104112065403506906368937549207856673505045370640660629186108147391962686096593901158965917177770519847710432744407873294052498860290387228583061878411595114830949928446306558464769306572442659201577316417294178972303819400011202528812510356137731613899843338631912150777294673043448420163377633226475867057749033864378075695143156098805929221701863889054138866928545366044589034092683609474245492271291842080818978355375954840967321877579842743062644774622559720226379877929237317641122831699257066648548467302526550337517722420982997994423020008278587458833659273751380299450244992468222407693215290787678146906843021885745669004752916917976449261622924530051491125172800045309893653380931656867467249780853278985829674469939680389264005321585096341491473179490287409685851270783315970197070108405216832174329986566066940018667175211489903533820482103497963703807689783447257300678773471758212370305672099416904508268345057870289337566468008664841613607002533613744565840593331112303615557442207582014229667987508639783118361056469585972427004453486324474357953394547038657636404977794665036587218601524657696931350754620516274429357689871692996058004616520455637865037212885273158449865274538336458444277796274349788363069531737121377096422849738402832851212930225197375884547771369465764475190695425755405028670290654735023527893603870084897227102277051935673346644876773655371750896768208703004447188293240451200808668908674310075446273519627836017212388674627655847936650354357078259934507663836309499402122425735672628176215709486545584711926916182909436445639475791389216206509869163797288283832167096241435374456932131004525732425712932985625979896709079256780293863202965334791022052833151591984189556040771100549147092225042208539458836132672064076975927047535377493936596424936155082278079411610171288032754928013824545217540111920401328251702739864623866493632024298770570181472530440981243103647362369337297183555550632004926438567678240260341138578051311284632788487309860347477090634731125228882141886028696897608340284903744239100185696937505379896981550299295432147480304792277754492861688955863914597103506154523187344323006665547895799020659446473712456443492956761270141651311321889937791534482087087011189609928157495347443805484333603616677945041207965366081286521573550420248164085284466941778643437240221362416274425934428820386407877279215535245929512335535410779445118341844051751739060113349433220516009396580703394373208575628541628284045998424473861874449899452755397933441248369037613244700977966073318057237890935135356971264985172783225071243384740405490104215030906577379516686229656882923745816085134854940854046421097037602553865439066296414373578058775251037051730724232816130472894166762167293919418164732135126545157654934230435048712063565968418176883147485289275010979598890446051942378766262682128025961703893845520116525737551040032777490442408696845544820612152720567645154574346005241191678063201502363558166571158287516868680744150302153541800533600295798994130431936777059901913639634122616785602772330526493934716468810169341259073373075249095365053490827808546324242786879418323042534798655874801180462618113626125717201468887167513260138172773412314307436441803117078114060041563359676415868663295338477711290940844747875406461732606874466719565600108473398084175154227345393457061211067996619515009077422421603750203211250327553635815259233467217053420123733866129972867499871350953097171757323655791217293809376281522032054599210971270457589232008221824420338185076431047053885775897452751492566517369379997408573910727820745744885168034893619026151729047195397505443843627657975716235930786553918626312902851819243356537963052035978844077412243884963481721004231530829264298013739421870692048246081214187374974564774695208429339102071834006085069714765347861875443559262477935905303166121095711346015807041102041698907923137465961754478409442027899536839024168871483582248548814516473929065222168523228714865550612235999495794454591240312412896338206569524347988032954309373998572064834730722806631844656032992923343108354524788599809992729562440292975936395271136661557897735322210696230063899484727738096616223874414000188236885819470840065034826129294946643419741083495206754669440545601881449703867858509339751692466841266644807602089507247437330382301044414241463271151682274051387652700424861411212766910908987298021215889547091684057316476450260310446136521265640536453397206645471184811666103202443368161481497393432797342454137494193252251769901080582798982179571369653875563630998769545608191370712975667452189868411482357889286864582496467696717609283804181370294356013470555405138185249947853437142675151779912908806235320215813016161476149893645241025224581990158727710036605014602330815320097501716731195898009861122188313948796382750548754255504157330538767663220240959167158597460963391707806097344836172273970152759467510150593180238849915537038100452504737989033806191062612861894125096587590951363120595407080340711876664038789214107279171124529893817821651836325060971336832539718600056157194254564244467802255916523221089106350137798628623950254114729232365361766854850448387218974056061189077711437106990654278777111250439850170392130977344611251277880895748328025615755832423213998799748216427172500118652081366871762813522740042171087870432836638901349703478525370819826764636761270419331059972631727073408100361497945831928681945253436263773400046350827490560408609508238231858089656147485657898932006001770256241835028362371723872029445115126615437781813539586608673466071123814986670835563030518912896206217714124065848381910580195669465385295017337357088571928173526038616130132266685504309874824890479476675390092155105804613507053678175285045374059684032205921752845282628564420303939919593718339169861851448693381664138423318124184897349918752835018137394103948166455441466945050886797175630929015207588800476103299157292476530572616420381681334450490771057867780551563852647510925908874339530814164333261391207036706754248404143744850547564420890446583922366092389578333182938531281222941400596051513354309982058688627307531182634682342276337352849075703515621296187533545092307216313560770474514965801342709520063516493055277807006856578683647301245465545676176218505461143514198074784993859173460575078246154365359039902081645734999169605239657293582272456551153834583377288243959775280715335736428753614294069963814186156912498876019563574797183748989433961599640023841714057529802869091626914656065632997508582999800758194679589587622294350132248122782054641055092946267868420608568404869570048945368076141867440849544812975686963439962128975464687350498522804220359559403551785630104992967331064907964184977969272518318927136190892031662293417240503655941540736132658433956484163652545071133229203658860831882627750182764073624713330450833004294760474436151436826419645539891810729424074835810540648584417701822013146677567284418510580280306875225077430170735317759886523915906203910273941087327644603967410957159200740537517954200816024338073536356487862765530883711536957357616984215771962009484564403546594298827438667456028755209575704294215786959452826041092052932494643281061201629510216067608798370389129138060725677863718460932010409963811488598331685222306344114703896535225932843703215403897475704743489198358966598998167941735594154695701332007072878102646572197639247258072735616525776170327122999740210596732788965463999238871795197100733978881534317442801560995256275095115161299071027026580439840351177877403777058432863343811970247936378601500090888463865826516645062737386984630270163573752746466371227095074094533206850738423988711671341232100443344482112310225972486175640871158677949113947894816214982156818614283400305137590024992388426827715040235472624125730973518053474957329152044883878521512135257464209369378382461499936131536846102688546236585014898261878951545635540817003338087813215039080909994917399812601441199596029983741160865282355043196700616044635270758018233528900682415016651561920280105424327105430739054533350187711932063292501826609448402228765223654200789673232469677024702082326612752521927341345088336559154852509963144375324873134811281701344593368193965843017338100452956801439476553611895572356475319946793931748971608524216011243773150850133473041809937552242105966784142232500532142020557191759546430448957006758611110796292203504659035473024728906298577860690989637523420429766505028480490876152925012811546597304689763590638340784040140748483347742621484502984146489480390435834878235188711659495708356344024409744671253129195303213981704686757675020550574605355968187999522393548931873001008259923781508810223989647022587957101191682764023601531400630651025439556745165048744560163394549036299130242021774612514169813407381807059796944304416578003379522150018174986145381054350347514565529989155459389193617136926849212727759317071521330702291403319007146170517836780363749665583743569533447690467802195850760775156063879655666678487255280274829133338394243666482692995851067053291276665727295180117445393081300755047353826776938554958383041177522404370144171002638952016125921666832290875538589876902060744271274946776555326530707129930150871103117086533599513440942715455962751880637650007697239755357115190280205691735756690902195681126575589131164090895725476467924743382717733937399313710053453950690275498121408737435840254246477628462935377659383003532882125879590505258277481838054730974731340368724568418320192554697079727293268816498676923944941562315194270204841156259923667750120030501350976044554547876647914470250220307510740878633365257453628510257831786289370662550220625380303116985808152695996066502890866934359989801449009343011055719731263774662775029084172404073708957405913480798194121863762926513578900771439024626779060612999990122437673114218184040443434148428094018731926909602372338891347022959460390898274247672295126113555875195660611453505840873972310673222711411394860621849350640724681750251459010274571729815113149671641228392800145274474988154354362075901215262047952645357585787857872948844663287694653269846034781525805750715950786122815093361610797469638366395930597004287538512953813759801499671647736724065220930379835167818806251675423831215835476817136086021331452894429672377622413251046379280957848747315072567589117970474816216759766656739452854356425948825150470622962473429408314096183195435166221332488598630502674472606504734814841699727307075718512008175130231244783165301909752671289313530507662280892190546243992033516218238246895610488821060490758542074224059988210466733514720826331660265795977908279366326290457724853818874602397744118158334542734679610179105873852269049582155774360006685775142440040806689948182863639072679435779101482775853375403570603649242900785091116493361463782843684763748577093687944578843093972090269118126439638424874161576409327041430366166500509638765285532577727037227650177663975962469415785239959950268525311518873228454288391237434488112270890252028699410191501914097211347921300746802463719274223410680836131538568888026998576472098134212857322814871883571800173761224894515438990087858193045595964625804591528825369275575165909155063819770381159091503070315957198650387181849328842381469141580187178305146251833279904431808750171806482469721559242192397933253404223171919302236403989452216365089344762222545049553269531498888276183778469660276021419197886242213457724112033085995793387833720935267102823319843982449170550500880811453156729334367202135147736901076639750576709246220747951034872054716541336852360988464497176536219594029125178974059997464233148229901168844658468958230919247958397025241934165280407055404653863115912682560677933951384583458847098490489354566632510633980397383698572737414452812713434661511424906480252470843344892156377715069478411181788181732019705650009044763273639246650690838460747010339943657414659080945562010150764193011875111271849563909328029631871305954140794758343381072330693168270652823870080230738937535033631380893358822033089470453280192167912187853871756693703113395499722929746157814769310818732651206679225424978357505608478083790203295051463078636457480919079297779486534906087680730733018632729332262648868447641246855612602261345116859336549998672865612135182981340404195034741859260251521783644192630436228726279624306937928203692127726296691080997721932573624695846678066832118497751246537493344348261344705521514464202069936377120108942879652066702020941888003912502795612557915345259589292977013197177808410078546412827376626161959979915933609969477862086527553176256485156936023038056462063427301275660854137083496196444815984473839225608657239406763327433552406325892732541862116541352544781308376766099782764129401186290729275648126935314581817274188657572627168191490885709310440350543645743538765988326072391298769144719423920548444708623614346380264800512515979822257532380821457434535323105881092854074838350693185360116649297009299828051467151753694086951955776027790079575366197522852826221407627937162032413645905881637584287209354728836330043300403308298403609343963843745873396950087777250534522880413293243408487565853547648273495542025595206208944849100125615975914994141208889233983169542401674599468540656467768830144474678011403587970402965524220747099804994652942299673780153703930776758757979779890637597003890019365835446786066413882592370663354249389069473182363783487568454731123435639485682441082836759172406086589882391926751193837556498626893227223262555171097496399970134342916508371888332088153282505515851121152453637374789825907115955996079258637662869494999942175564321310753850720628418983633040436842263929227255652123879324898264217154545145486565633416168156317770478604698137522685822701219411785570898230279049582465174315879553068456903228277449684868320733712816472171577902456520816080557173221932371869679603458970169481791188696395424681636208008790995111033490218079297206021545204705481484593697059897178370408570832747937654322003442015014979378348226530220379443537379817751476558179304436367048221689558381484642068296245954487865375544131462495724608037747650920765751240354686882307496776123949549481672538298859639416045625113106677959332998884779303051745463330299487616700601249684357605023109072261775103124923832988177378037844067442976903310463464572111422149629753332030954262982420507172856205616063661639633258868725086143341381393421469921187890458827081003101363013047371985157943339805140222114081867645252631894407954196800786848071168758798296847336092147232781635266846936876477978134431661673411440303578455992625491262534560466829828504450591929672445935670044898508855432306593661526494339276464079713129204355118357364378237592420919724726636840025399382655749436887195035002676018635211982658868787997255574632349064769049477336161140682016008512968796190226917799643379506907772177147871961875082356039389415489341278299328450459787279040376792683830571833098322283611318938030464642221079723164623409244411590153888887222604591886684130365963174087201327420475723831178957268510272142210501688671166482670206545916726236178367882182121962665673750447744095337081503955988918383839267906306878616739323477398306960133944455871501849569932071581503699680210980454216717186329691514032595898168554261186835013187531991211707572353287842876528105087928711522541208810411200713951621357048624931041628724326600685811940035188239576855939086551215570618356772860607366025485410751271716208923224497809205868042338682719454536407352031052485997800871988724453539660981508046879499196202810839301840669527098928675051672130059370166275172976049532218741830146583625608532123167200522366509484458386371945820255510102626921744327229473296158532933172182843393048743759762976024146892336162464333519068824544462705907431635458371990258563572871600292458152684766381266596010728604415632468003775324025227839145620968523364772815709047113747226014309659105092339634075426734206800565543439337824829313082267630456564993070144381459668601800575936998238226649496022116573399434986390540859009286540342592283734620794774860969828297616123750940475836496611855476062383349815051269646086830535648036995060951613828170462634007311509721810292545216914583501484151727038668562185567646244361125704364343025778631553213817641759922738565692717848161356987500175336032787646700088762924829195148597366268284736952476338153300118073072822796671260679077321232931347253243987289146128357582808496630799490333531947991445839210995771025684838874930986321803416892706891649820462516050255600808860306349031223108195528894136079417872455652691137696936212873116323274225836139014734490745486673002938660232850679015489946773988266933580130187514825359832097290936102268171982457321011274039538297827685442735791541115764351569658129566921022774867368217961164288351697284619508323167701626852118836830318884435534772711078285886211471696041896875831438436692007912900846170314788232996744040251662696995340960690788214942663084977147210195848855132723790872638895615305850275519241521654686331743927154366720655971887568173141684048354401265585714769253091628034107981736737305080397020808005705215857875033831850862687095137233261621150913619902524612567042672854647727210348751965475230150956882201860679543835160725599914230818886004326792224096182037023205923685150628517535463646538616926405414624467361956765791805238653665510713979739375137258186994300921320527485653025473404475383066549860275540106325833282127861441980812275508354904824667556741742669236369950751533596666207985803722570709330442625823849644227491237582388518029026200384230220583143876800458272203200955048636818205885974093190170886951374298985957889635014369873924127782009730566003783115615935945997490514380855388911721355675008894113524680023575901599625557604314552202189547348690700888390543430602210970755887977598408798453500408192201211040088486728845462676191175367245612583434852278298617462142815729349099029713331220886807264766229065694788177694902331094425367217585722070210341884998856357865333583363204207473059672214736974105644312322187493743981024764651083259306006376218051143025665951241422827571482106662542373399258989279351290129090114661988821205603915535827272530610267428643108273744304970356025636402286722146597652391777279659438114868564476487889148035769327132723712674880724411971817856541694956803936690898832474244703648266600865125845841949162908554525425385947929971256858873800808059021043969911709200398867786138981853693945574056626036500996831856136360165988409629615088309695650263110349310244110092570322730411158060795011495646703090816530502217166686936518969728234284454520853227816690682846723206480738521143517968573338364442822420746610135559198823006539022657964710174670346327048380912004614660059427672622358653113956039743073271284891521490917725290798090823354566826482244051301217798677197634019041803171825772399316659952665833933444011692647553550049464285439361316150585200377832821023036182469103493836030849672233763244676530402169663713894959711173635205218735954949600494804666026994271262773117626487940118211965250078217184155815215044139351049686179479480780142311751776329607199702363849856848436372631109935670336559652227232087614815095591883342548930284517711516525774458703538289497836869891583597588483011415401080380220695570959841568112015819015258966056507398632163030759573703458426711262937342575519457924958474577053355756602408037109905761308529654661531456194491606102704416564202111299866887148125503122197037831811308568996327145931544692292987236951529721792751296262155293185024641932462047131639721453059303102791025867168175550072601751376302873193683654924978909233161836992492848786290649532374669463757395095361565648263474931338600475172673546736942258548980952782440048785786621421744741877009594005674831699296447886352664753574355230727800557715769236135660625448022750287711458478927143138147790518818015850345840914493920669605586559333028092237890539715456671164187775273892534352623183235559914956931229714219428413349076114885115796654681617703738048563002969479207834575924626139313250827469858990735053990599372036346601157419770601301889065376638013669769270803322399441351445744178168672201183543679708623566524392143671341839623106225597224172771381074217147308988743067898772996922859583817122927733286677540393644085778503300959769907230381348928604534683583782246860055059328311616746044555354667204878765945482404229784364799335909410692290786725963340463349574403739443165383854309490732819650613167558847707579915658434640260684007407359169286285576684873113108130509784386395551954622700160821498129911183116133021147490092100950870770259439309126310566551716281078607746631441193740672608510330705939781900192982388100939790686092097516158131857787634344555818258344634426686026965375251070024201441865884872098689957159333360591716010591022821625327049432465835401716672755044519047662458030340122216812955989475773548431702450491777044656944591116696861383333154065591384571063312603472638650649381993358797675278358808277159313839096943403661046842131726317347409721508290113583762349991564190135669460370971048889406849568366355451734695503215374972943468240993419398173361231324673835623343810581090578288514734262634471828289439841236191216425351204135890177609235593795438165107995215623886565692693590056245023548223745123449864356059588500847891613858374561104334331631189128338108322537696009174353217171087651746110852043764404285515318868587890152426547857521585533988978549847737618433466696206332684924550114060699851203726461576308296811650416780734634506650553386707283696577891017388860889118260315150538522244839371840893179999196136672884021483317748058677245375781609604915236812428138204640455767716373744042875300987029157553596463964484370854821767728537015228290672271132993502521116732309684572569968866804333601525743887596602142768518988889160989246833309828520478563191593606052914990968027426195376963825425101972161916841570938624659098730335724972880459502401910520391230529331392124998973630595318200852295364879586396021550589384042159332065060896862745042187192150468449864912566621942142934450995820568469086112604193530924346863844783371791674783520390270716715619359684334678295355403127481238837890255929298477905410259613087234204887143221236998465923795051200232102905524021738486109389247254414088162201351106877511054391399121435826009016580139793997958087151250711033160866125604271153202158899424192726804624087741650449387377336849735731101324702614545182654686410531124079153767343365793729861861520962272360851187087932345824852680676743340755940498964997896386283565943355204805045379281787950458602196125102808608913722125529309579950294555137427905394280322101705739767249437854567611218887402959802412966202180989670471141620308165680794849811194980383000998595022279945377531790249008269687423856261232767487099567543553509074512763391346394678580298294334337070161160383288416097851215327834498884964985140622221423779867042290815362524608693618911421833273667108016109666238373172411704146728274361829978103646456760587146069751855474318186586674114410449763556291545198141537943568496251728504413708488409106418323428701727130045055348649773105065824405629918423537840735740871122162840169689303091810336077910836148613149414599551704935010015005756333363524008229248969515245144249641963080475486631237578251129025056277812977079826189639371923959632824802784689979278700495524863078373481371118782568522056098967883119520994673306046049652723875127309659876484523236477097424622621468236406319285656082945042664233564009798666476696374896055940397971531740833716753185054278098747876191868978134281781100025595027322749354179402806496790392448035096023693199783945644267168150782842073419807926483122742783352056381668410275272243599952443984686580237157707460944828536829205090406016038553180806666723695073722726046849429002444334969173625308866963628656701086535649246092360463816060630776319257121949527232594691533051832556122772427312222502493255860688929014411093898411892482473617221436702929457049403355590132165258316183929120845001551401730796086344089314577650576251467929170812505514273727084157255083316498668988111759430703670218591270459958604803983433497335647122409407166922827716468241453794654825713394973560776307606105649562821989741102929786902359305794758111714456956300783073236024694511521178408036595194126453038387890218282772699887321258525570043161377432462363425482766736252270706531201953742271995487217229474819375443411651104661823994263645224794733548118758746488548526038944225520711204671571791966876896111734682670214281490463818072100425710849854194553351077821071842451988373990545300270063510378534747082674827011840374571276272047568655513697151698394955004573156645295076007690088175442398814432157115859444045246162960290263997165123303187841725856424445309778580034155252419492720727456325675480351256056682933110173428940675411815084654836557269270594018116397716332406606087250755022587578359299614021260638010748476697977114086716373167491381068158024290082865783058407431718158534570989102811224336524141151810776527857303502431440171327294861857121595449602073200255429989409430933788995734275141248160879668938366465455042826544995409814029675171671767925392292375627137033692567905096835479092214034643467787265914398798099861355118278649029757547105241373101949934061329205172373137137676361129847054233502205862590505931796712112758506345444417437608462947293506167971467491085309203577255998304114812884769889183940515622828476523965583142283458388715222443098948896092304293495661628909966253639848288419110287398530399931557890204964504744031852166119632975098907858406895524876124320379137005334820345600567450942968096164444240386814916587282047500089525031578299425208087251146392583473479301100213301546247778530156623905216021892541858428508185289364307093067741686180277789726296743377418014788419402682896028160093081296496983422875735111575952642329723295697768297135537584429435765351938917381519395580010683151750108002420810547402890372588856851617413683527121375244720378831284108835503498643631084650071637931541956692332950277505449355043648163084557710970175626797428256973801242945955168780230420189342696528661656819326614820646759087564030878546587757722715313952362912382716191520722128231799108066266305957354841287882694772678976011821187286273719618847613582763441778550309113841691444739066942682407640653766962222419978785531326079909314509348557393805636498976105774985973656270790971847712456375716995916625965197620106094434032980215406230553693037247576418329433949927173420695525985430709975181036679315237115178089531785544056302201330324426206791846875387094878023412359493335406267629719440814354992013780431711808250222511584087107297738863846730872342197729074500652771173559090164852862784753172382058610036259689430468781268897638949177616843474880810689122592751579895076484599040107549215125237884596684298588339405157884157302784185377649473774244435887515361145354631960904847043653257446625391457356970963224125360598717152974253889053123721641983316836771258268319891514344770258939668790875897201364773325748105165134106957043399707962846767063846475476955853659457223131615978782560761766339474369839103077134718129138101139917016327354836394420820516465921515661316514023631826363536331525402497913126834171264471608172929761478111502055654788943880348494127066356991531692782387280241055592101121047235533582332988859278584038302906176897008040020439504529638931344000524077870120328836308629872973883232496330596353681765050279768228307910837829129704552097849570748642549272195172945316002445088305186469451090750438186765892766986003346319186953408769505476748433258412041714730395730254830819581176779839875834967603837813783686856558298851654857223221299275671854928997850204352848112398235280011470671941438818695959926405423436567003341230010343589074421057433430010983892898364006881204023266903196463170554189670105641022884125088003291554699017003939047994863309397733869943817038320837747432472479506932331434284374506230549464825849882478330158749539359504866448171893858989343680903080511275001192712777866477795948309961336861238711467745867966506518154180446306651852815311531619492186052909333264197013648296064126666489120112718445482674719536197090759541812107441098015560737343828642792701998717699553938325620417744519678109739945671821457426364317460575664867509955631210920587310409917803041117913292902964415159828557423951937599059014866195499120096012563499488554455334309799547282619791177622120866956482334832806817912349295252578684188545232808902035823779673397032639395745529856600554869752185427061181204551861613854797232376980426149677033273819309050405543277423192223244328296045478389826607353470430874968986049876706760060007010520486297506448925006985640153697047856837189032271173738899288512654634403520402809614258759330690601478573109234726230329903273434833454032570685902934048335161468443735477883085314420630457441578603101719838692910526434107809939455924399176491721533574824988171930384968081472343404346291951629311216588221232221086879675717564937624452307358799424192711141023433209482039396333751395324934873080493420326258058095379077226200013331552699482703478419132854982239255227382595375489059952684877184535064614069365815269262989749326787335684005912055927797325008401429583595567545271155200185339463433106944708459454959780695384785300801507150069698221840704858488828093028841638439037431864280711044390899368873797271944036749981346758169083828387083209913881932767665563532850857273050960866355715363900653427063665885594682947741887830725528744123061657639672128633326025373674154873396163914290392181426244258411403952543577384077112544050546510930739550771590485555046815828109475223768192071126465780291405159473669889310355475526864517614432421257301937851881863366219216853339051523500686870415974012249067975906381736632126941161597352183275021791234397466523787247180640999391676979488640986279023933137309797279387542481502264041506620853808672785118394315841377523332051723531047365451746295378439521584484268867468070920464302818573269622726779345910495470113089018990654837096779467971388936832503630508561174358933737163417449957883415814950560326614129761930784777677369505650372976814997627276071546178924732066118616099372375368298176124766871866645536716996495890568327986741073411194974892390274065015961201015110089716567905933670440753365084127812329522526836958930893429765754013924984840870758377073267288272172465898581592568563034919639207358327517526389055191779515642030243598712434747302772591296491586129316343962980609333124816881974810073541767671480129673262993147932335749864647470104541549150629538562097478828448852765912118224125254264361927765809690330581757583030178441660872368442673738521285099528751447953382471614658625111250982946014285240847569851999072366707455044773902627219547418870488473632113164872768197188418088202560344629744435399146461011687884562470169100031246797980575257002101456571423203573911268236218342614846631177899890483760193211229699010058530470140480471627717162179990175471375326362928841618936349916718950815330513607905592372752059010858875256004128391385998168158340909208794097134790538258422338873210322747299296312985967979869765758870145352067388461553544358446185682344202348494561110760353784697331096168115758560764780343737360910194151883493166225622627980321229070216820877002368306756514605300849569341047332191173367810732487063329859051997215175519807111415967442783506994494164042994936112466510381645535635901038982749574825787485972102626942441244977736792098508751277404673984965563087363889309673814750250259863181838142429443101896413561358295723938093331629809477491202994599443876976245698478474486374368609110239860162220984721480492873774652540968739531393263224835629876628838775619685104959392676685296707995866530513160042018512690039733826074317874314842182626515160708681131336531358339036251258901931478168692945108763728644708645973550513969894446329238254650776790477056585929408342922740249977763932400143677095537858163502364436911255183631178680565984915228953644734265710660671153456737155730885288824737708447362140219057676032285067436984728503073662329923259896268599153479625498284850050319927047581685691586536516870309438718536793924203260414612939833112577329190851672247892174120727188384084429845054063347752887423327687577323590123197794797990145172809507132073315282696365108172326652494776590417281999897293296668967600813407037266973076496093746060019407894308581594656333673642889732228726034349728219796717244070486796824333256211760703200327865084111272636295999716708072014630539018677651682655800574982709012359569700832152205451017789331571629423349086228603684077046303320657676488826504918736778953606707359206793777708668173104035129371335127203200403764414852962462710874715983447588176557136257729350351280520471928107638703401964689250116986177530151052234960116324794529271573264887149248176555003743981206674222829037813831984367755198666448092722363843286946000557019116346146091412263071727890072214102279597780305417471025471315584997432657375394738796030588070278499860049286703955802935947306951562182053302535361235297205371875065611375136215738718689835902658278347773917437793955812808341214027080132520016506204870417192098622733852946938705763083082508267539572297919260077509643700601111952431689404296694171197241969996603984224640401590399870527769075052102680917260205781781292921011686155627938916226018801904308040940486783696292515559846569330401580426499938063636319293385480989855647184754753618222737726149557869642021802337966798771103239435720802628725999813577930101407197566278546635714953840999579301878645549399965243669467240359668526013825020137647459224238471742182760368638539968440848724523450637362634447391391660285330237972564026293003878028329372769313820217603244668064040710346830061968813775270554089685611209964770594454109456664493553564720299574348775122192116342385423964382775532383168896435785463994331367242314874610930919009289995978783925275223309078840685825754668417739792274185274750609723250509159095729808696221081650167567301223455823619149381164878552597304930430440808705891487953119217625159650676755889510678989984121411174474074080048820483448809629760222948705551562153986505333199752130737117352480020305158497552971157550934372077362127025807970587120031942916989484076673473244821868885065618699721801913215711649764474848016501778616069886956969364955148817967544485857686298075889986775923952702770105637524627900979438770645110364221970164120202743527090798420630626818967858703514312948646434805901791650149909159101441106676520072489193125328829581409841371479819260431058646451195673871040204108643842672885892792986159150561459356820616096174776369039543219385910091399266817059972793014090229097700614293481265708113899382843986479984987310359858009109649886674198120187667951307428556176496364397848078780667537853403932938783464975991262528259687573753243897340034419548065394703088281314555933698188362283519848186334928468282781676881856117911689601120719467029548781877618695065999326417471379548477694028740767714833279825237232948099758690880561177542895113942468137177574524140268242562350892935867382218161165319303358108174552276696635459299153277585778465839770024851510521533219855912229863322836206651615315144706794857850772570917442217513500242553209486203160715617706650917255181555719191465897958916088283989756411190417330254928420499807069831487351950308511642374803313021732175284081527670215647700774433953720704293873542953216110359502344290127101867784198180589497481042339173403289898028593446892671823543121862426045110656565746725837020763638140312505580437720025474881733487927312234242499138636690738674494129230128551368637490165313730989732574044636730612029344198767725938364075058222255465490286508128610067373821378668528254895519858339351877938247309127043581166509096520588692388491433744520195359549207225356023448007503657159541120315731327980767204437756214941168170184699250375499074482908068229481282886143075363839870303902529388952672067766001796319021411008680358842031784364950399036737167970267522912981450606405918939424447310104155112075560009611506406627992038918533991204175497013457948471279929558403011702161073091079029073107511243997846965311069512510986991541492667314355905986005035284791882472031279570811364708886844952311008338596390538830554207423344387702887576110903689006275408728273269248548441340331493279784651261250095581491347500246242055073850213789166815489316079751337112915185813819110341926775074389889912871792386639334005398102988595813167985762890124658387886171648694391771255491991206243081152689262332286481036030918240770884871572470559969377500859362448508774281438439294775943151941748255565995509139661825824702432616637802057563680246142522828441839203961358479756875898257492148916513721640172467998610415864920293491036969442304413346961795468661329679300631113043201058047299731752005607052241160300052152021077292629019320411573868428513434154828266770009378157289397011785375555377995505559817505646272228400476882467885650748754906993002477813615236951383513901054708742671414391294709150491752476867637741297784049609778972775355352567269036630817177157956241900990804843087881332836222741534281196180054744918142843345010311754810994373449017209586020605623839763244472698505005231396763842248297756412705601034718043250293441618329034299712615693808750591203092354963640426288522504871922224521466768733644947504280228027643836087082949970014764791025414330467021147836937234908415448593402141837862523816790795587082547385931001328230768735010223778883430414606721564977507854856077635620474581984268798367628400314174870693092654985611933779665549580433056211588189244826600779062603518305835582783833823151812582398844813237575361226910331817806456403480317112202552349647687016389893692428696096448188027026697163448015671100055272492249344748800225248378922734361046995653900160976859046884330976443952369961810530636934751958351919410153616887470497185352929510462295812433201365347204538539204317218195452950551328813484079636235645806550953285994077317068186324499111529807411926232507178592360544003685837508496453556596271743900838653682503143557514075960136216871499819964546801802024564637770618975596618627451325346406063079048019749301666257435921696573678201158816665706784669568382395703389481239614161187402377679133502965044028532114826191687835717686008986717203246236937208833370274920809782456123772161542081877126701069000443743857242004231966625820005138980140983077312891871055207687201873837001707946411720242840943234675262292774201878950237506693477691410143241445179352122480891403214079280576899788965457571367601830146407400849601268756007429648563945579564043714419710412415853241405095955704256463521387239304649338288665717865222979436868119631055839226364490324546057238455558227944561410945953313807489175952113630644258800633678304819324453419127850352393808446062552675036810648049567411144969287219387116477336351344246176107240826588865669301754447544891353738057354592212225647447691089021841650182339188484192303431540607263631844061072518799332112139285494680893506063372894744397583904010815779438282180573288160130934290583171058786872744788705633994664966643587594602013906280180838510276462319465365556967835214404316880735485221427481309531441497208631222475090001928447348479173028000370698335945122309927476984258840850696241253300164970951109433562850799661538343591425913609251744761095651170208754966669938834912223465274203961109807232340054779666325543705671725280242343384405002285022735365248365766071237395011251729889714065176490457068437209482358579240966120359663560117253838504995770869345800469703957208405592958723879921902873591130695737692342858832583080416277938386126157769971279846565574587478046862953416600593621252336951343691808481204316286276192429229954087164594514251166298786208360923889630022287397686707751922318704388025795397674158583726986093657954456826584467073882833548763808550592855242546579765355586780008663083995087314724067207106673986582646387708539070744791811025499791383022140276882568163569039225300037908425004572287153921319824257203991957770216652986965641272226578112745695757460592115278328651245949529923734460367431925484163698945335654555720979066625167802697044404276789309501438840437166053193595318981001996444878360949982042462913416104399313193853695209332277397540281399553676192378526421742671333889580069912232956143825362986198897381198965041700604983613825327642983789116118964296088820312323538970169961117832646160946830947671839969440198862150454806653466652590707063935455657743025609408866250175238079657261234455479858299470534087297870761186189188636063459365963694425902807821138990562074374785299927867040229636346881424818574452842201804833008762609505274850258287741861541854137292753880328667117590632151431424904349494907477722684890864251430285884253799165673069442184279499274473318415418622492810511893294883597177736180395510929234932927495074943549060288776579358187323581527558550024314894353915940486236364315438250161108441917061432734821998211224610473625977941816920408689637741585984229240574649096689589427645191840449321161264315226492567907050043695048562324783458874511550436384808637027881570177064122550461951278528702765223661580482026488772543046444271085750363905478125806687285307784819679390352637485274333910086916185688578708257002296028652427894494338840099027917721545418910124338271159653811670432010773053360055277104428076430629561808564792569103878648491165053509048076061018174171359715562568532484935777785516026464726008417576910906644078257097534998326149375260161499712115883290124965326760842401481729294359939584561066943877748982315776792262819798668643445320537458179243922947080088878133798970664331098663180386744216208835693522261325205732003048549395762058935114789437855994444837913101596186141083566557149402873495255965544329939067633167772211109153294045602889870585555761398541492123834893024035467525124309191009534107472736071061591040687450434817301041677480687484556564028054755309554404740173961432268068441425211199322855040070970372517298533602483214758379110705857130095080320407989649532510719122332980123200913182642243054074022654870787914841584613619837895570772136004086108125293597461191971119705666599789017064041219482263525747655452898533838974066018235132415357764504636162662531007210587846658327414582987793162459726013719040547663977002309097966975899158541003482140228735490321401213413116768464724103388136590422611484387131735212162688432986850233329026838393989548681529477796759170355286901934004396554467757170871386617008985502384699508536323261889526043951272907619954730808432000254926043463141820924374087333212930832319500859129395143449777703682443926136151605227992534992719426257707789886820386119602751798357609728361195806963875694908436293424777267473075795342941167357697344505650088250041377079303350091701288814203269112823460399989957374667337077806052891428887919824373052856537415407902057938733968996532421714068146716485542562658591341349548694761541947402946090509980394696834549495806241900700440627396609200765437673818280315305201634574422655802990913952608647160650122337733230018015893447836473479639868902730313237583887303926000661585576104142921411782203262277061267568440254331566660228579013549661140225943249077999742060949856095349051942030228385618637476168839186395587548500594916125734728273804499923625090891261023208129571061707181856540041335243692279719087044333510140710893181644265251243466803367720238957852815859700552152974688895043858249012315731792091198817450923674681058833642788018000330048172249894983269874815877438590667079521901400156983939400532737247937939535390692075443008892356053042919945378494329016491125983807072629325292264193342047908469116078933633742504254088340151672264703241345227884912012888523738781891397329801428967681236028117570023756737899694002140412835287076618346440840110498292215609570475286244645073371787257655109253031452704742376290094947722560636722870442598858542024693719722107233239358816715581409917278725091027649573025384896357145575773643997724701032540107326214474485858870656372407723191420642954986648119865108283706216493493381922403855888962159338196770385238454295422393751510152782676252986974265938470457130564694458644725635985686635411969607873000203166513335087743897339990858876729553325504975748662635602827272365948204043547089715125856537249087185564835139115861610601529370359612655122571061015403940439983520290271554703843002541347517204578008661497389792844301730397218340358795887270893493516553220070964130073380670438169295958155505235070005374251574947761896924932601728662452519763571878456953234096791853211403342366899430937727148883140816307287430751401031736390500333888229973124023312057579128197263451078799513432014185517594487419083205637998082551729787615128821313258604988000278487225320541088605507247378747873379837375605569959277926049268285567621434771027865377485138859025927397023818445781052853821650245740299364763749286481982978974917283677353728289116632386069719414575847837776629233951387592645492536924600141586245343159679064160141074914508167033183294462569089010538970440257749445090175241576427414509416620363676319588278094905048024880022731593147903933318073512097574305314636250766777600907848230251865592846161117356821318039473058739417422253331254281095287873997186029262941479940756766159546846242858584264432144279688573958583609239868811378615295813329899535131285866275958184850063279784766405220386825440953204972256238980601004194763748116053999616334820437555258939919325495900351281025179112244776494187101569880746880534088979088149830271837791283073925847211671436747831206889444994616060194550344457328947672701544758659034717501405785159050861072201604265363931362408588179549089079326190714425894474048324881766726785175096840624152178761032860838985309366155973471066998062578187539784085959029098505115727443682163459161791227370145551650303674561365826461032463387469610842576354202245253203317650974380826770912104494762425379276058355701809484209172808924800946604535174575330482537838014464910873940534444123662007171209387822219703904042226929213488054281537408905914992942243122484963123346621441283992469273159001645633310444313990279339708563546930396796950911960569134839646858393726152125702618748782171512194149499329690530676546367518567021061277041720418349974484824979499272908252752784494344268322912873849917849364136799266438237487515884609074605596756624828143299889386030322715174538728299167107493558194233481679544490335301019194730389195863840484253249893393326246542784847822771941183343909479295539295600668409181603894608734485163815818896045268330821527902969150596664643683040604576892699659230818682762643693925945517800681303439603547310329900589181409532213762338211417889766691777375087848855482569646072531080629506225475238615908412374311557405703516551348582199773974301319388589318976600573325191794334306276498204222462476038791705333691329743694580414051836324400772892857824713416633128462842255501089037054772442593393355441036386610953462647082947858448614037962453248958294670984373147262199061738455437605766691890925920024733032514034371843630524179185783748644713819367759437689510113160265635729566537217347951801357655673477965476607919200831078531182613220236110638243487070963963201329684738692318568858430739147496807926702479878236393569799137040314572261252184349113163343119211520992033421365566165021439887766191719301346562497892971053199649213345688499466064468208903493878591172871667433180384935547409570857630832744472858447761120785115190870981775862452931675217965371225054679950730225492520699445171201347431613552257065143977419144652101724429975458387880304174470002873402104119360018146140514150365185027731042875004039500591980082049005951616420540794759641049357519324749752396759720872842602638888644522802383204335277040956863585000327446002476747514081136104387462988977468956579983336366763844990132080261507582181218570688499769780732031726259394727316800548156766322959223241704735529278756039202333057318168430280139748023168432223309156631609310910033701689614828360332193596884447584642077671548277601661132321381596459934351008934400808428320093975570583226160373143563837393215761152367950351137831953405146004009264644402788825798310883794549423346290853063295386003990404850007465985945893009501999293805093370896518242231347503135791675689557129557659789498853507551915481958612734607505801245789580740555554631753684159595830264299179289904569930010591599219527731803066197659584599616649092042933603824252779118640779947899581472246567036655890252871032726436779667072470080458651874897591447314702965065158768307511515239451506133994583798501049907838402123219394248677374350470870327679072290349108083221135028462161994160751321285602234981988549245621712154763108293220331524877699657512466560576423632809619916152532975037134378437718300840748138965035247625659940736776849215965839643640901491254412513211272789457052148449603734375338920423029436625331153726458868696183707025631849313678760848940876215427075909824183177818935223174945239913989925544116065917982690217325005860339304287714803823536942807875327254007481405468937175786488427584346984240973512288813099661068168914361532872040049179736044554891509862173379205743564190814820669048568188966686783413428935380638333167813188655604403889077554869832534499673692801307403325281298014456317569335270616147627594495771942578385860243923615262967187173141655364087547695855429800067643653292568884566742773800626130751080732036314452819550537330464651791804292884376760809061328856477037397804788389868167286895015911640805502092381056991524380509985776994066956740349020067622161479895227604153194816641958971745213400098321479272688245280794188471057148993243130128575882746478253339213703645096202391057031565943511523635771386122743929439696539137190831524543635544868711638253126747089903162205336168218086086982861708256378386314809627322050502160894865454957843329016181446238932192627958417946857651408679102691977809247079401396798253624786385775211086882457768383791029445323179191715237240226351701999565102701315244649099237387449939006201486027241886764702565287543972745535462870103428951355794487230998391330422499304479456295754956240812591912852414921436144758276102737404597859122396002298503428143945951339977284932795670165032686499853582772157801192926768169035861989643710037512665379337886659154931826540927734032155635243964970599432370693292153835120650977744911767677546529000787448872835031059025728818489626527842453301678780530285361524210435395181270470297944361852238848257041145895513123662699219372943268088326250863243556789731356162591246504546756765510399760041279680209057758204549235136585646118869252922856195026231561600531547290671418935508520838813475981911968311608411995853197030346901406657704886823268446286544720880307504125647288391980997116299607429793743243148842913387088362233614455595238099012977458098323767311713458012985459404336187907733536472953181695986966642464202309675272473008081466045618791739456319321868247519473505630179126460456659941174255996889906155477834374913203870433817302739651447662883920717410540076333866958085701250292253178944422190756387230576066802359955912874935636274091276997491581287435037794707903223942986244540959785059047883904667117082799200609713745138359331890436001610948435430147935080125861946492486791029412308322364913739079819805810224179617009585366337804654894303061535253496778361863604520757646348964476541971501585370349797611417835446817841369488469444831644881719017517038534181237054770192945609020121164065685414980554523115147543486935480802625675924826516027828726484324298191297292485823778634007637949531304609088799216457020002154809365592379301585359649432713505725885924548362799172949831518684040305492363258753391746483393610876831666313809732721066751072490714998484285973034682234000515131339040740073138389003224520130959064255881903193779181525954542253257448561251069315335395036812838631209916178126047100099331420740418865879951732713074779095159569575409314931304134235971781701299197706466768770366770460502530680953763056981015427932466603837480878505560015915277372094333804024882838690923158225357318951819324308539613393002443682420232413771888621662491140953336463257042301797831023046200611220587949387625121058066164579348465633808963299808183911584366162516846011831254146519603867965738378855632363013433527447654899361190160705075647179592312083771391017337910010131903653725711846705213154209060673496583643109923784251923059989931620776601688697802291766359402731088407898233702147352317543663778519805575370823868219007014145035731226660505719454920268118459483478371881346472481711547484678221552974461458447058495139141574166337301204591958426547736885535741352448895196322112547801598617483922016306579000745050916865632736859821445457378696311785312019643977607349882151483185617987307574930034986663879004859047821864195774088982821481035516122320056302008042197522358513200662483937654985392128910649400690751391997881802166565916913001317084784913665104142431890812594603687784314614492006546067208469942495924653060877645717804003025217450970210483543161172791900796922604150464360476809038955051154849912377421057045461827765370724145818871620075459181345856783823045505576682255434511500362904736353667293262710864828119494248807065944230529677615019268056395682827938805796089077867264196337951142554681446066346525470377498331076826613504538477207728824200957559862251570185024671089609837166435261459861049389603585926678344430891411408646133783619388979310187272284775836468917070258754438584663273351148305200998522059208600527197209168609053237963699904451268812479481296618896629915675050850303081793971981093742128292524785538109320418664565127628801517547783742710560838028828335659593782574597379395809751072782831978605522429929305529003704747011706866198707058783978131299470215718926888974643130260948295588942209891990155869935535495472612247001510818890542197143642043462491693148799912568483469703479589866969314304532560280678824532134337753363630705970143625625397514896540234439750723542031694903761853466076831438376323737184577934230648133279457295585440195908218252057556017102309098724618576914500993344283598783470670921998650080851348336511241462955773602070090388191980889978582887670139417031747773265106218383492279333398318082672898146783700195530980188658184356768466255469654202275655037767419298455719345886293914851914282537089383902510577393657235210532053137975012325900001196879684788149257625607613257290284709528315349450494344689339975095461020181444767644314067742791309640236847698548253563994552268958968861852944666202219498736795566789735556217426862926921208854806991557404149388231951867926089178307876529771993067405940820352643955721057722605247438636685357498412168999817191059038400385852553401557366684027500391225033466053987361878276981855203804489367673201720775548497299582875045939288084489545870589217732391192462633840095145274054513955812914572340372513609414791195750894045010126209450645380131960197862355481119212546827507131286392771615385758853414979544596763762696507520528626373126715500222156058041925462907244697634711793915040408350854052918689627173554031055316797941647122128055867235144761569399093298040293214541543516072870625948593915253923341717201722480466293603075470224929337112371901235324336762369652897651349709162486471085104761688605798321501412962497034014307622376752185498038999805447804713682662283583277153102467743352870785630362507794892040738852009471726381979606138562140209261696477307647370967659006820363138406583919552236492655366311455295140223740656711590098295306454425640454770843755001698293387777028079997413716566757068517919077552527187417048053546889869796768653506912901907875555077595070159271507436730604930277203684325358978705140656630932881089251819543358731056941364043123415845139435770154886476248211260471123393387894114578899596194291265750227559996124358190351409763040752127554764095306813523558232245319907733450784023620955798512219546594838608334144876307991349921057939024352424439702906074023896610211174301178294826630330836692533998652246346911499535540263488204741952651798557554923890921519323256867414888766318575905798791029617524895841244353269092637772711355619646409953147033168555799390564781328164179176365148672954848441889432648511105523901662834554299021257887589273413998062153415599678137003440132450242617910978732447097878135319247935113425135370075565146855186950679429457667456216995181104310531995613596105501291776951422463870140608930955526252102457691000790132219219754246482547671093677200726907086786068092833549723971749348347936936756617106010166678953906527715752962473387376052144840420394766684117326042517023011687174181676991325077102526616272623725634596712161887568626997047528469459778842771946333914010746438721359763322800676686477929170633033770479274101347744911545024673858291143542364264098794986858490433695050321932928725825325845704466903180850376129255981059666789144687756911261035784131286507419437011431110866367201206204145555390609264702382233509593546164090270764713777357935301105533949485015448625431250542022896261725746485415489117668398171441452915400961321953523824087931327632485542065087861188380260337170249897786332735884531852794649668283992185133195764972249534392524518993215781070598290414491271625085931504647875864372345204914066114831453160219092849288624971185904054413600688698779386561377332334876829313827188830460738091298871467398052121697212095885160016921553219113486600758514626407962576261959927064558821792357135924184273072101090232217205930868934698845781230578635861438206472578433707440121820205906847755790838790752339114235149055138387260577861970810407576234736418837073195245356671173838122699906100859699137513379434204871343777571842177720355883682653874326579243687635539379910731568912204533359375365375402855823064474954950354231622758336348630934771724404780339547216704807440268206947437921522586428982137180916781076298874496578055617687066579118976248614830467800593369090806462488465300767578345505700921867821161617680447449964486849311698767987033827962430256615330862266514374092481366293368626009985110280692673110047369985122771773765635661249150604535313748453822416087903145629739107638934406106439512747016028856844619075460689596950402501802796586324192199499277333748562131668197300277779016940025894723843048951174717713377123845391041510981533040052660383749628187089356796597279500331744436516965769989892516138024523723870718638795265557831493985239901818398892341849746589791774311924095393398647236804790031026360759614498249109404160732923700367569826698147547084376215989842890653419023193449671253895123718407221070226306411723359754703772555020727818206390293873797768858497010872406648698508685039402315955200159125460996844921026553523621778930098568624415992909100944155898448291667703820746123095432775426260806810591722008099069824446985438486548020296969836132417336207894070269268203548782812135666240896054315865099050819858443084623201720959206377379533487220339978080352976793758846635066862609440851652037665452419730568175939043500350443763877716796437922346135982437440900096371012686991751044147838784596651794792544918063972206652116482614913276887961485679372481821041143056522907334605599263482545228875296314994875909312778966299748009071272616365451313438750319856963799413574745953594002434906392747787932017836722490182029046165014882280240664925035050915986012792126443419671321531358884259260762220332480551484071538345837851058953656339511520882174480340021896280658450123093980122293611597361916727958908368223778081311186711350694036744067471753721558972878128417425929450310845243475530956816119541138887712440146502274179763745926095299194291020933569859402548712656415738782059157962678535842811772429987392196492367578016705481768053219675448564520093219801461150246575538878140509277104267764459295435507011560198593459120202299432620356619953490643183372692306170595035238522976465918033283223350504251482469614006091727208773423126055840313072152062397753066869555351405703132675046025883105321491627505661674260227211788067238839802566600455271719429006818510886531950841796483270304379080740536697122427901586825058040412276387300089561049363763573294540706275193794548359099217223373581106363113858511895765563700095263983799530429102876319120459886892107149013807364816880626381380403501688041447336602141706336924998438544104315193950235700709059156868063532317212216046667279411113262669487697955091537895748211570780870979144775802312790403719144037006133226409863900691316153382914534585644045424871607758925589712657269294237375109394502049893309076478257674727449540309223990143286761370779374563952945279147991873989431228832021109558302553843030472399571110925167207340352323554318366763644013676746754549752207704523721207643182723061872965343611716480238362022113609531402843898721537715685736378397623043087762551978983515964147991509563004344758410853799478846476390553145407707951231660504667954985588652015260643932942748235537454072707129466045266028986770348869617738090776465367280287289157090885580337257386436933348996018271541283008914276683964753586558483487901272864345008175695297786886037776134828934877087654278956552592146403424130339509172010432447163910498960826486959724725040213823828262411015112061415189178846918280907167922062274220667030360152568656449969880908970556156965600407920020943272299524951843515802499047423000451639652948595859473823804042232947872341721555805601227580003602506789504370988422214472213789329246080713772471742390265728338401344003883810490453353974444159338240959188985327248489981562288229753656474846976412901318078194047290232508779898881202362693383038116124755522751859510515282570175991191268920504822841691938940020654974677227537964294640189544283770947747820252805496775170159756427926263998496901306557546727532501389264841518469181716088950537457495801467044157627014964578692618940334100568696061885322903128770798270261242570092118921203191342982446655527189303959172662985657513378966110641010240893611157549108304087883505852019242590126129306594422031130598667315380345350189023593400709629406578422136573524161068771608052455315958030923574511763856561815025191898355408347215504817538563346884579111959109498033118787206588451340796913333767179714598935479154629985491119585392977898483749366673095767755800243519267706859612571243274894405122963591643845160776550193126902215997568503145379587413662806641916816244844130406564788843877972530654126801279760946261031238272366281805796985532268125887504014245293875613757965399647489471896048307057768155539939361476180168585781843953178900524227688386725709788612489746074827060749308923368592785484862158779507790426745665940673374614951543916700904284565866134589293565263072862924433423581393538034305163585852138645282535638218994842120328014293152367972508109023727804427251222856770422913326863089362157292845398484654614335596955170723922413955168702633161256087226554889442265421728636840612478490102963900774098361205114232123308212587014355873927302856243156778964767112558359516135253811631893507213864528847629595219281783365905960586422817166842221069402219575115889055464893284477547615247193399571142333826615424229325147542088597935583885956554460973013391889410446401910269683152930907819500847088498362360006226152419879142181306805086114932411537107452953123593747860727076494287559353991073415235607101041804680113498704149820499085029892058850860745194747352873573973309714240325664423036634391734342324117170142196527353425194061545426562164830389701852015271377684475345016915337222892501762579664578741087653813645569488757909697320250262563069330241531288462436859514351195126156589723333533448559815022092461740952184388612651387102336401215062269120010441733839461439774931500249927988297058530013972120120298684353141514441062633267880861014641472058632340532916412364613706712064087569451859839538189596707099363630154245158789275457250232274098575738252740311815084945097763954485349243928285855154344860218295223714104762936536030839633988608849198078780409906409355441200079687385682808064264996516992025127090084023695000271367396452533612252267724075385617123709391325187427462051047195788954905482819160438221746402206865010523268859389860556074150675916449646388904589740976149494552456257256235917150762177558738895544881441058381685734310060073665926335673512883180367228682331986038388355802887549673624351905202041072399077033756220426567039417180968942389356068983973466339640765909706218597951560593782591928045296673975256282586799736498989372807461263070072403965164816136280025319857205270453710451594564580994841238968043093642023438033590205473657598897007409422810418677767168996326813104836181005756230465060976039189916485896596673498923316131354059909986457769002580687907197641013618469743933310345141395535466955419143060591253037503024289745002904581249674190596537219538188843783421725598751612808835395110492748913726469169980659926876941825151957705051175529989345418275528777016897268767990947410785703305162025975586235278595700233720906041591489457676658581142822917993621340822983345816717196354161819270379846029282648860043330550212595085698186779176162059280370970922467764051015068033260931768593577870526345229663176610077754660183482835518618927856100508259296895566649857396946559371353100655194430328284119922227186815279118551976338505426304932664483347496182275628223640863525458160245595009624811768664536127488107908136715920475218569069984542297208174274914064146353982206393941620772281125191405278656956237409115385976337018413223155324115732960364202166785094587901712776037156178490013294896727170126456653219123790375319488476267767300013903384110806611317478470713832416377094374155653237233527841079561360836186207703703408244287235851586718459578971376807867983632519865570825006015295717004151891154342299964799113685473648540883856655494107023817268236698660290162989245372372527699893130188936883763574400434101921044802481151764948390186556076908787876197115958566211768940630742291724385793036309318016263932854936775449516058091970624492118584004174190716905812482665563710388936902230605035658391411154690193626015475392223015673047577988956535644610926388833003679308910218866653569019395565941292205168062426960435216790282659344484806323423110134187272882309625779995718092074780170775432994259495319801288509709086656831045187931549159969484037070954557013835156779586039656285018786712715406439982873673193112237523491870739383059968855877084503111407061574439561889867242039118179355371565469137615612256782902352192051659923518712402974573505143788846431170863578588563103569840749723427888704977321475173807036070613091364082573312707855411262445512512710685966468789910586723480202143940323645069267457180542686727508122414553442710380733461141887294972112725083049418271061049784050376347438254168137336445037948536631067268844878377934597443772854429451871460338950567210292630213756144953505901704975136275990774975823893376456080152556051536742587658284073117228838270677998801799253895585613552879108718929586889962247897405726956247532078320461663622766614021020258915699216069012576702762966219282100883405547765190276026703706695994876599553472246954126443626131397105488006649839961960039006203808385407924869037419566984216181651921013211381529502599497728005980615030706453363064897625033171472683962654437280909808136192607233669306049751011131391199444578437430765425373034056844676925477025743299726013291912293225994674026946447268461578760854061516091347517337412872388050266572637500087545343610282506866401096708768208166853195900105917396892337236329000595690762811453912768228276194171545136611607104499425344075734873644376777605534814418606870648548496203990051107119981941395809926425341518902629036428152731423064947007013888355638359475334216492072577065512266185896948219007793469055346108660115961881694375732402905536523072901382262033191827597274652953400415430726561346536895286293605145913902601401414369467672994996511508757203472259307691070367421913688148082464138818036986529843489678280585606914078255901681361788242080664236840923405022817083747382872720595026024685756620603234589909649817794206068837715316113160766745411381851001094577842532025237590672263761376871183213445087416807169749090215333548189765183647200577621714687096816313215692282290123711507890438096564614750884236284682915872610038512550595333541650338675939743183525347737597803009846495855690947843955165824815711409185612177123783237364545418062821812238251684545456584256061008253793310492506249571181772475734681861825586839204709795415580561947276697317973684516187886172377788504717506530288198705102895411156647765063766569042520328054310952607169814898223791607176714142982464051492639523832820649090139467090986701745450433820115693803501373692280649298026256476422475052413817358851506777788847379123310606123921069641639413634161361884750069301614903813585207503021557177724847033906523222396849919611395959523763197863906418469229944344084523725636443602279509791201850468377075476215700258855786302309319208582271088877442482910148574660196076979771916252368363762688318406768484654290221481089384721231221002196768482002948211746432425138069202909830769735161862858802092343942992672315816050836267097307319292115690824615348271344182439032687596325866332658419953135152236947902097742654984939698190333154145351145886282540812180070805611252670818444097609983525508057522524245638102746220558317749776402077380382464558071291126404759866247058553937780676706885865521294810139519325313367703823733736229091479205658922294409682934599776571651286281822640604570367414566166979460095377840562292812463600386931882853181797619094176874734345121324589392464218116439727895418461431813905374461836150294350180729026429117966728892794079055152553973075374355708223282373274340498233893952345505122751421165130115322235071171524835184921092348904233419370652192642590498675258379435261155294292056119348993986221207843693207739264810555670950054637243570739332836406671478142952217867489157871296761389020133848917926765864605524267167672932716716230049314385320403942512847126625460851885520625144067356893168819806576523058180388246719270033775452494687699083380948792497367892996963623077728422190871582115688918734529643797603404324468110972585962750091377564848310062187325146195931973089967399114147565761961775093537346974145773757353934525704906015417776774442085796301229024185232689543127524292221818695786412827343313569740280330004704912503840452940186639101169705565175999663676931382706450126789539327465363262002945825070708901987005769417412788349359643607994515732264238430542822147610800493587744934052396022838628677256526327000074630782704515328163333895981067047903095277898562514127374861435395742163987555916901281648423413939656485186822366917223335048448245345649374662047102920887104370284664200200932778985811539108442894061458228832305447401266282645376348847836154258351177810026695452997380906809169522438145874812839330743441265936655668252115983489284933527148524599749921378094048963762326208787105409914624615572283602688992047114342864007623136806101925218292947490707012479420769706284505135034614137475764749148559897208716639051921856246956136566471608661631552001971773848050396221293718202875430469747625864267241253484625822386561543111015100806168984519363639193336302634976905081639672198553404370297236101543661331974239330135091817931149246873101598375665535659999949282256250551558417975411735743244697501456309933406570629715300588237021781884677408191146698720660955062766344329827706720314262553258880007800899961223479564765705276261581714721906513258884692101366328509916679018682253352389602118292803037260721890863955431049783234665213505884457409218835381403908942461295882794727684260557116496885737560452699988460092956865212066704840362663010539777479233178014524983837432155216166110591933102644362495422565080113045371800910363130037254389287521825086250432849788731385966106962408834986178991102964606028771682815952596598068308055561398971220251358338855304325743682938101668178151682593585909048619137108966879820016862822200485192194698110761972107713432417246632582733119520628360404573064769375662701078552164610972033125313388360151266681459051950607522073334735876436042345064694010165458842831974603766892711083046202181004237047845493714968300476849506096459071694596427712786169989198357622530242779346371678117794388192039496477046587755192434285883448817069444871082788755699775106417966747701373361351431264588139380858543206020640885419898439747523269842006190704060802352239388904040446849568861729453384766159514248691295122346187568229357949851803709182925230573566826235167335886544379018472391699346649902722607799880399664432639880452111971821877335276548006929502387766554554691393445744248262017752428499450403300410761357320998742788248419362715421837006047035486211217820121798050457223048205419776042684937800467603049459364597575960560938580058484000444223725245366260357024248812282226389731592720420785297431192625174199217759008569875748771148054930555154900403472044911615474140687220714887418111771705698938935029295803753054455775454173042492350535936213157725803707951240745892854280785368670185333248965553403425277266715850933311808912089174177177518678776009662514004858405121172439652545414372132540098247394703781549957717081426259513994201491325415910356779554892086270040304191801807709027059750392455700371695618934618087212553252166967732406791756773102680810730487264453768839441390032036642141661924044102521263017747481716025276637130160017720616825412597826311951149024444515955101726610407030241141045451725818197160285533883633430514269563175983620876907702672319870225557351380829413736438596012020486812796060725113667279468049361901268230194690887826806328112153563168374458219269595222315400244702885216166557973473958989568630742450610618017436818175654790187053830323406845547551746811170516379599874567994397891887868391595266658152223987410604512651886624874360111489057233586422566111612448809410738378961755222745740174305149372110124153100250293789017851469350085667181074893096794064746849701360472019474296301609136276617680340583610553599796909551871694876187596223542201053117234392527180458155834032741829900697254461300231913588144385970064049254623430079965371767501177405079107080399433878165180399681018454964771247190504674947514582218023167279625101745772536851738320202945995750753622837206276453357207218353035614792963828450860075397140235846500734029596716493252728903184374269216174076936756877052187489152323908517144801383705326853649401312094037434958441429326632538256017903055572776178405215165721633830943580086084869113545381251016232159450885661282984014475241244726825240955726567284263614478542539769463297202669624198243935922362602165849399324232134859467833566348752840944041394253684422749733668531586490551869812723009144444079003470803161634809126528116525883343220104541535080448594696780847759666070470857909309746106005396122259001154584592944275146653689965351974716136659709855409363737895946748361284978487184897568690786969506023797331933769925727484223772308138366033745669424770165980765042742181218660686015018986441498123212979756885669627429845737716661390693863250893802099173285547380961916230877099217193031870261900927422641866364140138172185478012085620320295325324437597442946746473367402687443518282679752343882175743174202614237039016869904662589184016859042325708067047036589148058613675891564709195234102420106369422678560798377925224143610027236449880796368590480007318655277086021416185261503433900022066570348704327230437128404443383739244526014881630212093708397131657900389070554337458124517308214956867288405056036114026759879025865272590274323716719853762761339441708105393841484769271988658606616655309178707017036943101035620613278822888833175634519781239746570791009757791335025512836760673306317154004422567919037771639211258622854151769920399816421885609365088743789288560211504486681018397553146304080903810306696957827889421321543453723211045901270680764915905725350286019970129581091501873012335636805310647581947288713024098008922957270065251778675001650360876051697805428280138809508812311275201881893312883433614844481260170961734725213698307143827213021134053875907427963853785267510651790572970401960902753618662537606121446178058590282600624704987043813366374435983318580351996071457008020702959561048235597577122732961593924209330468479821126695762823543484920029346012197521135208349643494121895373211719488748456900412361135516977303601440643934143277267148798455723610424620801714689847944450238971802814685145760075947135372863265213479785887646493576044776101315104047303141133723016011898888324619457318309613516384129392306627144631982671065136008922580392772799498740156018676108996798803627006574848831508780250917544564997144373450209164002011698563078896349167965716993389265476129074953197592112377961160915332200436310728352815764909937864704368082572286205268004148233391173959083652791113924626126717605270870559072078857379219150103816429652510234254276242913042674116670692041479486448769264415548156169066343257999318279198439276535753741612114788739278993837839234692994654360239780139658679613626344660486308846656109792782281600436080080168297988788159286497036472984799097759450732068264140487081007531448862018901945492543008360332566266438186398932392817449530940861329971741599803087649938758737520850358445373760472781099102603303114068588586541501189565890982080876269692377396692092535523497481119837140525654387436986010622575290543730427945171075858418413658772577256974608930277980574546147833486122870299949481002322572562176098957941664113054742180326871398084193786094989245342246054124944338490931166693385419074081351455739759595341732607262796289948380418248723829535660326729046167860640805124041511876524852098175040828832079112544723240252602622729070418095550651179988358374747138936586174847637351316464657508957358470782250115052952079146029426951393767596514948410849838566101108425557047765931953590869393714394105834552745729266127803282195156411812591932532091297109023269283444587671325276289442865200747626479415999195634060281253537251295627318529992723555566167760212577739006470821898363604648713871015254622523387061255690308000561692931783249259851515428401946547302055321647793764070432829670983122218408194770890863058854540075956541315291388341736174837225248207700972865819501462825450673615707832560210103009436026184905264074956488273043748080361032966100239865969801610906077421994872951226525185582340964338427011372948173026665333778412286921282004583907579112323308375680163584850155675390054953005363637618213536828342991523685764011305214097048444594265894406328943746606794374134792328050391126051734899742985290320559119873674301173048249860404267303558543363803661526848892124452853974856268119576776581113377081855267921471719300982295061013927478088150459487941273821700118155342286537014722832703009689926675454190074355158304268034651873813106300825326516991816437324577224573563571572640959936900528818669991285125717459140508074608143631518608928481775924949140665949337438471232243900912547999607085385715818833454236490433969580158384654486348726427261169355414184497436957672157935240410879484307621997303198422965567672934842170610418812660857847630712569498375528715016843398367309413890236632914390049371696085017371585095505670247276624943024905376136456002237186594532832294320536029773825136149602798258064618294867297660515146635936310066786458176116665015392354324596805079597999288513239352052743843481757517667161831578733375528467343501545445302858064160687097783132303974118710682612244425628631729242778573384299212735075845670881486381636339181458547873322441760621770119371037014429460111147933502929236495197426235455203022333870575651100428600371564292924004515264901249439664974484655055731001780494879756626269358714910652214498964042353151570156080699322612060825033856502967251550416484603483209025160023015923771177429127377301771594099570399371986142347522721063097558339779868656296938575255795865580333278501969360721352041409683988554359046717695634789554722068674501374516801455591629020683421189184672930077627649222547195709245863423635447800911723386434765487081610602425831105897912557758425843307308778462231053211597327851765696334315987593384527763531815625244076537417298558045369329558577963768819563211043379809852655972249268879543237985574870908636630313539543622067195265020120867499883120042836475815568832387204686721112130683651697991671608563513377173761295953558061590231083067490603130048506770050522654626143967025310705767775632490531867026384797184388488881203094813633568543042336603139006215270892546305402316587801420841761828698390922570484879199874696887358730192117426819170938799811438235129328729589828124315578561970678225614644244987960622576498063891020942716129294044386628181663008092853217644878899448323295708368074480418079181485505388887290376491391844326925476128054600937569989208457391060753419575779130799061135383021274270084164927490407358186708648995171044659929299533929508833813396134796697388304361588168400830655052698146809294234598728160062146895531010701602755637973751370090607943360288975909655711843413416274646800124207349372249373126052122397050875522024303692270217800817434125344899886046681752717728768068477971237299310389486226585513642020979548518045711208171120045297670975258162349295883466342673285762798678622558186949805346547878633097773645173781103555089228037522270795776311061015385016952841811217072245232173065590353647625294929274816071911869372536800153484039011910247999516650006848083680449215649122841749746750753593172393795982216869070904962574941013769012778027791727259618144877529684303694499832996051907332282426307490678062822924027183851540293543569218202990744043372479491415352920925445487104173419721295700874076484988312244015129448254921201137072405958315639375651976613919387923991539163845231342014995168830891484864461460397732824991430548004276094038708917887727275889644412929634460893951821983056708218332756731410460547973919860747352085776002034755450606568825976664462001181496348987297425350048327124764536424550230339373709220372136983541536830115626665000604551072699125712833099467042886338654517773675418958159918480629874635797904053084691075576647645938682850371911984524304823177091333274165758417403938383316704647786739504508394788394540070023537533028365662713792725931416002351704741895191370706975888253718763773851439855152398760471503780596892122190548766388084448385436191582771435945312916206835833883391522421737704674713430902894184656496287771633962091951488975943625880771929603587085984477987529638224714928484198283045334589911803433144539056354135568488855462018540839896822870620432282454773629042764256786524318570112019630991290000534665753426578153599532314096425618366622560847037223683733669259254379386941600565277010107758961189393809571637153928508312251337898101514379883851358126840516880071338232872429740447199629474305255269991454008584595901569637395161312956853661617593447190469384137620910437134528158730534877750140340636773454834131797541293716289301603116348187948394765797970648333011498936532799669678185199556553538243987422810342393058175663418421948933980416223384255796347392734311933152577028365864446923746065952185198452796766255144109856914927822841766229976188969561194446642254150711130698457663272958825158309938041593811071651378998313291448184929871419242828838204328323640776063814209579414446219101448507632561072619322411279906025859822035816416285821029657898139476653811420068699419010652133974883039097818830745280343279998698595301566000343506343309473115404533907002530614562382707031073331469955204065903586003550234607335061781677152551136827325105203411276876673003230796321868434114644296405421336526143409203401796899018998545938780207132584632607029450205102943872203366696296010310066431635034102646301177642703135888661303476082266767664291389972652237435162422676259189982924600593909780494809242540738934524161199492335761782284970881152844275375384616814212904863501024406112712623231312968925880192273285383735470437194243247736801256984990194028857170549352500487802653398710732412321162747804407462478445960666737416401770572772565425615361309960362499336304961565276979522704069359860534027388505938498122712483846015040664287300861773374472780192777239591216042547883917726090978757751393133361296144796102920271298187317379310884706201271583958190269768273137553751594487025243623450907077838806048162715291406421513053618551527393027590443400486702711629222534208390431935607323851486889581400437879042066035498325625572871219426232298109949726095735978353831755392212398739039833588150602874631383869207044233328359053979630184111697780484291426324483733560373413077331120334745415641148566289130433483240372726145130502278162166877253627534355473180095569934636291177679640844003470888663315712167224295248941019544755042421017996274951731018590512456017270043967245569280983311391132079410845267253470441332974514513694402263850290309215219013818520074971888387053913184103711370037460212707602028063181096575096886931184094022095950661334836356242660746843305282399216505422129460209977602629933492604657516557718283396867040718490685332796997469693679046604352375496797629291209790682537440000530504047179908820475109517821834352740927860539446023154835406081282186887350271836569472081172640608145652962617500524781894131672932053831871045488721492140744762400389302462273379965430181941954086819335462089101044311823378530677827885158649090354200706855516033158820801463806197369226588671120055820292253530008903112098483498223830681043352813404260530233730337087588911871889504881867172163695022533133194999594354715824941170670319126085478434573225129399539172970845955396563755568042259533771172042739896862593991258476148779038021378608326702580292654462655789720008079983648117803755428164421686275291476603511254305262353671216183009879548308719594215902395845754663370476041839071588657561028800961827029685213173407796154919129465337956517280574779342058256282034742987152117040737092944180441090274484489799822178608242109879251843589347115125169744988430119845530639605508620897414999287217968474145711189343797941072854499653137872483043699836352976776387420912720604306824379386569443332028620739588471711105695003388320937547388317447656964100643859447595565872885002910211795587352794424886764998514611535581191131342849744966543278755425445818833225468302904656946721970615979753121950221560485060229469172072196402113573141952876693755444766188014673505271396453959761282093299047869225182763461707816124933286608556739231529275595391951564660290187212101035211450599057705582959898263124159653387635772025675809167937660957074854424628360304921245319887906367358875463366210122590142166852115646884914647084838538777389567913869123840806660996228123440236167562901144993577808127500677782730885511241152106717562937063856461592429912349182326231356022034533429413314186190631191901943173619329603739512345869145622234454524607167753507385157844017097567915769805544888424904064430037053267413651941207675985379680487897714845887070822748382268571639087320359229514717716005523834772020698912839280754867317396419838114446039174462427980873361998040491504156496989187611085734724975145299979553408922421022676516321276828311493945934685851854900298422347575422565847014970978929806323972081715587304417061626985590659629981324953364619367631990705091142511365783991198763870333891589209429607948228784723086218743289054170134631388490901839013062701697630793465295518636421225101301872960540111171341274512242250443878097367811547619813292819111422087297287292810991649805360986591916123082636835070435228202444707518798432233531342949179316359465987427047125016325803122875062629133152754646668044526474778334415324518792910362313740309173264416265860089012514607624317215574916577709573175142019703018702508843013787188875429813187717457166659852765344274424939161355779139043657714824611874240290700390181437919835942027286552167412621408551763551466938568784815364198777711749364532220782714641996515836974108381075368177927348291348579285212988676578868662423059847034187514069536547873249452285013635873292798352105738685258326697942759816578826339697127638331201402701864342974794241305953417665387271730433524000303821187356637176890954374238121104052130375377260790564006413754820809147848196476463360846779519263303967840179914512421983021537865477311554670799953925917050199391111250455308035508778680777062371306695298885712832910963921330731612037375175148033553290002241167939205191854684642681939768423047751376273154623164416411689514742323442044261097159511921349153695239762822772521600907426865046486278358821262818427884792967158679673332534527321993666781715757057316752384173010742426368916722503451262080312577048353177137817693224320424377754291459182947221808454717828841820241936455465104912349813266921743586032382708500600804855741806020628319767164261828596859224408778691098733946403676982981893624941553947955086043358795346239254082600070828234054881536711688005808643848736379479228731092859615472561862350827869897345102921296192860913888123715762030716214152738453625440839847588615188817580779052397348019681494832291545458285706305559907316881691843427129476322042266718619752109524185721509877325870156756710567908416838422822409578379683726949909247021625386618760815508998724784003152602070626279624088262968852170814748977209900852184046989245596090975869025152377111169517421467234163400769531293208807613695250899290178624493672856360467434790249001557700328719883826603085263418761143850319556478932667825265850235882127131255339091311895625464924665171938191671996246153808540145125630502991225923128807772941058910180692403948549688549143601054485280256855130620187837193118063830897270462055897828707126136431962183846589163779840297000365174222636524861089224613997470715810061965621856504843349942533833828687372183859199994641753944695510949947048171145513167318475958564557654751592624234780269635128116019234722536993310436445596715289170266855014311189846771924296649333491731282489565773215959987206283657505112614037808546395829866018250183668477973596452755163518949618033754698430866735300566591177914394216421976854960468470492713352170477309985288619166943754447800717457860392177266499409745562296367114686437809354982425480336056917519219092086612450813046539476529900645733052066341709320702846483001436949168422835067028142444344252124575456366489851922230403554849911135881071928669257511837119468746506722864731586782341539038767174517948963873947823855255486527113792290478330419110676547902895927222342526843025458444976903367159568132151126288617136929842301448750613878978686536804855426088739256670815957237358551665584192911414462175769618206930607530685599120081122381448937018835340205253884771898695211391047153930523575979205755352571380322867072616758577004084331379264668770171997800084625831628042345038454298177023914121420979975878249772411514618664842056482561130938919330695171716704872247643906767118755874056815270643281891015384890541618325539298945360190757232050560547233022366994844727533316173238409346960347836693309417431539141113040216786959344922795874317894341564081971268738113809228036247330996411983422230727886157028690278947277145456822275869917468152538113438499453681358751857410416071916836186513831165081466103450030744108622510313748435128639776876692341912546137878200714317992468457168906945143195224928881376768317152711270724377044946752449286780205064527832018459685143752836433022954430935296804355301547374999605065256328611544143214221928318296917388702426324980253330711018203354142476150372659343344814873816783530802517533216406188446008824215718908358489513855180876504427251014734572382901809794601017711979432182537303620806970143410440519945111420920399234217550228820644313814417492117366878653326298902179189205207548308586707726801350355032990328373182432047765110653663716477933994541962618819777326418413751719376676795567835341512251124868034653910164545438645811081308635073496154992289053041384728661668896007423153740137013679860848293939838635772755618176282890014434347383084444964954811089836102974093433536550963287295056842856903661222993333919771793717701237452603369351216770027610254249047331372829747578617889193716900027026441289587276519483970924923972097043865070788784401878653717220851618433792692284268336609511653730558485522362245781854269141762479334646206672862013044352599959889084767769498457754056413502781633645237339102827288772160372473279518790559310258967846185608250019869477702731019994868817997183601421447469275255994043625309527971459118057157300583283377429987661076698455923698972310661858772982727842770938464718502434097972883017447474795155478261889051484390582084610143869824710881695830760324136032408468159953496644003633953889295097868526770489118720913825424438198367045927312162804987913931017880343907209891017840166889939980329518883654540369268505348066808116902522571179104332530771750193288777484010163459199444577448037675776973001485225527500182794342700648375073664350864293823851111967919937861382453010654903250554510226335363887287000798732590963601822599905431961111657232756071220511276517240882479592588099835853872524572098300781876350903214086643965995471645571614267605898946382092676381336478488671573727117384977219129072502169256505203560534231762662613807584603709427566296289634917203050592633529775361005543672537415925052359443573351403259640255098475327128267799559203549955327208345221834027497509042985732435594781918088857243643260342326993296425890113763859099715362030932714448782975101728787173091238022778630413517759865773783817659371107702032642609116790329385602132274228195809124725282819585199114295059107328002375657338302316442391171787036070020050694340665774515508978450481436456064619889802791069506732691346729907157160262557918213691857580610830483442045873432267852584364540681316530043623742833996159403184172752078841713513184794820188529269453292424599302943838568587356666980410502476484368208002395563815243278445487778069067123747842270060719404856606754601050822346623818385854994391924836097806364031125164333552203646194075562486562294483832320152787100934636021640088766916606661962948880300439286190559478094372848788289297594328828667759803045961536959776997161694118299537659822456791268127619435696551259715599391548586910778893833136537506229340378601705227203643894574454600237779555935132259068017021595956545680214012282816450430991714035206614592427885124059134142066043375892594449607201948307537083049112531041113493077623443695826374196112396893249669873030238415270955615705532257381918681910316908295392962660469343084945595919521078939991720024558647149693370744556585275436814976067366782380048563597946896759707377410463007848978128340292971648333964429925887944521966185740753228396362171962622346930322487982380358406430028009573784518759413991941614589880621084339972310752469603701990513128929206118817974292318006174445642224472848977792233980690894483327197537567382115428632280227564695019277830271020590850128553934725744822591931111365600752529061249313316611389888643776394456343027700598975402984420089322974714695975273260566785738051799037651303405310811181495265617238702910477859383180487127829866480427688226681778326504157474620570662859715408123423292661782466884822968018076021287512545728726862551172393349932699835085004620080080216199110363797438777332476622027030952039741002913262290500090391880355010081443630766788713977548891303048119612283793669747811090405630761162986721995897065633137817349001366185070189394850592969232293515919271626912768685803442429629329194439110117963430046068088704442387527554347613051635563873031887239753535815506695590811156497642632176011038856128064070843431529484722640647611211964575052347863566866287697323553356841489351132431797225264382975336447183872508701400037794227576479922255490658497375728624085648944949630679178814651790413334701182499550099951284477544003459650865475895862245094678428246804614114249675510612672043783546205797206768649172621174062656350042141079501308639477254543997148483726595207670990487341845845857126795774745037339915927149529974850150197803536717536075146222344885903903254492234712652849867766431673567488111068233909037594435438791307014390874747438979933478752015323715418110256057713123826750912389056304173365420270225004781779641704238022945039462608298763366015187266794337230860430156952779137644564450000675555548020034088948948474175042226306014253373761120343049967098456117308731499441353128423720500988922785135461994056487428941370544534556890759672957724626527453728180289301113578701259967459605646371070561244046062081153238147639790143033579598763979643365353180900771319279949748514700770939067636533090730168254424560331764632173369913135432556238422420810955586564370944942982011691108658195031780469619811721951296000628049359734618995280699606817600727183054989165205410631664859301666599876951554211585586435200346997988053473485777082698457070735170935652601275699347835762314365033712668519168864940495612631578729446645276890785867268014073140378662149249977421679413234449752789136104196338850938229091451055120515649304104707631855659557847906557446834097800270061389070347619373976225381775094991867510322830500259214883443922976512620299858572142479305336813292511589672386041189341600095109708646896612624314552430253198715417909833725975941260504479438978754308319653317123647520603626810834819380869659628267748397460506222695181712129652407087651904666497835077788185140035841641165428775036055506457047218400012618047765357155474334896551170357807617220340586414283823142579499595145612770271985869024835294799850443909359273847130944314930203930585069693183188270252099670120658305350843880122036769989118896425412571491265771828095802166805214718785344156944158173352935431965058661308283764790621083157091014927981166743838509116837009104021026457272742628520037947308295085844894146380273568791599957851011363268796477244520013929894164724298291565095758435238681933356788395049480731631033532609705728313956062158358817742655624758608153501477943770496860098559282725810571386175639711983531034889041891501236522320778222901610304922696275828121902732007407971207463981179012347989385147757835858274991083152577883510647996348483803118905610595914622497865659329863547628456168792755608840035707714947989730880783292997523783165667476045543694239397800064301601552651920303609584574273981059229317508255955924377494483656879697485168546113634160480540732847165714635145283541822499747388873391866845918437479307514690176931240327360960947411411397046972941016216224141673203314116119398027802103723233956915479197963595444375723957769873253218841283721973106311864907231250678436936562733353711368256178712489047837633347441073583934272951357768513100668093343009866208031584931682802908770750118283967489287607353992239124539111563558202345892791038101729186606783853395450469807931298176139069258629048857077774368063693169422564116944683581669245014313729470688535948055683602101840458577712143953551170299791816356652610584699078752292717007047633917728842151033536862733693009427495482419417543623947240148544150873070082183504608074829838685227964499423763779069317010321479006068229404576049087093714309065729565888038088177982598006019827839545863073554913821449466154523425818729314273496421989606471810222077914111836551567846946170232509442266662072720886071790285225343332249100368979320400761523503353503151602122532726751038721713015495316812894523087214755976845952739476082491004696921026871605928459174730193696822423245782997098464733413112045469596649694585536740601307732640747414957862583660095585740903300997364754084944433810346656386446098614237988452560159158444126162898204383944512864439423672944986559377537196692215227580935509316529455157981269962148375328118352210371480202296545277227582368607210451019649081404416000016731329585265504707532805015991718893965877477500635938912682479363137101211836133847231077583451898059866215838397466585067886356203198964039229050394771821891544644213156697082604553633930919671330285671920682480023556806057292155105855769453890064911543547629113861782229040446988282468545470838810659608114530983709401306718716223562668377701922958416731976535549700193593456978688340895224940650580757115050603173318998214442573458067709807314951308963331419566199922544404831907837645098610260134892599160056561805850187602278421550810610228618886633693788935170588941187902840002838965651636407680491259896392465811733178574371342569599384362626676520327941245787948401647962083262943653464098591461318787375750456894929366164842442521568919917502686305288668913512777204100347103556731986152507824225437075843064178851643640980203988176627496226393538647479654425070425700351501812574969190083262338218890406751525899630519024670540172401874018321083422848083013764625685272205732807141986265248075594441815190922100079990293081174679833586144714593312959474281624514271879161553204802580574641818691672521512937611532476057536421242168264398335573295465317729093610124361680139272791766955388821556719806338594314466419892075244333356979053457513232266804381446358022235755762372472146751167713642787543485017975112856106047437497411866142224343861446512464103367552395494712385715463598450604691638820300831710520996275105605897851709401539055784883535930718839319428329462473396015037594261077328606866004747026632801565917834336661553849616272131763038707723310932576660666474901972100398544617092868841485367670199718622012098179822993648338616625948008431755943608874822659717541178887047113777649429162469093062296162754254244952574628897865618199065172783641379323974617085468359611402239897276871116387266396838597652174996498415012108831273557321895641422715445752140505636318318498828728399760574317319778744342279251182248096025560699061023453226701092037425202016676288138279192597657126888018116196306230599719753280990308634769603825690415112867324407938775314257637242041651541504977678763643239473371386767968574545016760725253319866846554950171873474609569103780215974940341600083770053484222199044975619725073276404032758092299641563258500700125526206369661648108272606126675112763770365350080358348480410595351186076818015946510986427414146558282991417775322278558600241271456750037625792814534901940264284932172565468640444585011521932073648386900945690025247113795135250695370050197312585861991520237985488000762726205984810217946962300749413362300707278996709534364469842691282121277939056899173716050436510621722985201719127249605681937114747422211305350635095794925827868043800362550948765654877801711946049689809357484681660318851233453758043675163858315628890626010779764987607634645187439782407898477094376392111101391586417315998480413807766348150478536829292940365962774667999756705101158084326327005387252647976538829869940881046712662051771914563881765412484718659040489308089468288683708775450668305334880241260828267838539004630089130353784856484222854368551278913116893416903219641610709418531246344678083575044931681384734610750117534058903807034209551620506041773981384892360388993231251087579754858737143400646012773822754980426707528840960316914432963951111390063415080607639541814536036031383395628579380859673212229318270957679309107864276563937480135838958461472875185644034691869023160035268523169490812197280912620489333694588841412200386679209735321658271665457290697705521236122134226437706151831612955259037956610018450318802232381988990731864504770851163463990180262242639440350734117860011295488124925028263856027567998269639264901678018159366348267452876631636412654419100953601182642148804829362315915070133293649805085138412825617318561504492864981667049901301486465917294661013169107915149444965499579837131047008640942602597227200986554379932431548923239928317328749310319940705278895771895144502152137147605133908959098369687689435125262111914157812988632193674447968363906362397449705842072207953113733746409440247820908114952533389829586946776017520908657941214237236473963419653352534205461973968202672370137474548645926801426444195688765363348638742965548938666784053126508429758973973248070708790068586693695869253130142156327952084964972906111000882716740900671900067311727335955126850252957259973426622286209765285096202002212195734187383120430228694224450907503622350461143517024368534645478754005162750457007906632151567161848438974452763475200136250060670517735991301074498801081066262703482502471987367362846776927848676390254517216744257490652253625649997507494530268052164829848620800618274647592749443059824509156374830900487141155156336420133055554396314189717357794174885488033953686092229799319432428341185872504970082813415509560333168267130927591322424995433885804256986128321801356805055914743245266586976551022877366057061291029207344179962698226216271004334162493948019628941186164234049406255104365392559179824004850371027750064991167525505859817498583696952960589298159281092470843584814911150868276539040160416094558783732670573914600379024129200368410737896507471137897543641429880895207776492532170654517031354431337404251604506465600552829541451765971782078449528944410547389616664070528659260006768720709938942286978251812046868866839265018760589346092939492863258196388503640657796170954229219628857918176949705907049424312275896285505482819562904583900315499207758792320084683188450033297493336800713827713697828452984158426113042937374450727978293035683710838832818952879027676576558288474135757200141200753724844772450112983458457471631095485365896110789472263022826234503960188368781715264960294983936556492551352060008224515794058023281108898976283529461026189753017870663915549377263250813058894650896506245827578274893765109533361750802102583070112185529383242551737087061199747620498825959061965874977677637928878340075631574108554316044123414792111305291821070024515706421245500991146631933003167840659202450646877580134296561849045977106496386962088660610114445329506120874502073254212751492590370806487926516034871831232279078222987259125611887032587464090720808572681535007294052590856319634084899287099227387058630445492015228949231926026744904732475052277208199406615445689017173638621235580176196590374560008285231309698699694588716433257633604384469048416099432789901850475250745352411555268573134125925687991377143274225054171694026750903489799242151072089603121844832855277205669589490646439078364586885769003916939315480713541533801304103498354779301084190616766103953603260910043236359455223108643469547199322179205546701168484132675172036215494852592895039530909258513308681230022874535812806397982821624966795513257886700987795747785532508795189087428261285127192779823289310488836462094697711966364613461508372635288769457382100723852163861006477470587341450933544948072745857356735008861614304859997788463185421317298223785502589178647004563333929533498541309476440753793419252782769297307146110183161694448699658361019315644817643582369180428900538474861968189812899403247530423063470046192161840175522240070935572658438175458447164179533968815240523299379364243724398870966627688535687562037238280953066150358742818757347061353304920295199386532329480807850338013847286696588971254956457751936386938629871863032856444929815147016552332812173233218646019560874588933950778048170080460124899304465527988056027945144957744359787636549668213062213216703436834367813022347631873728052150459081237633124548692257264241061624452836566892717613005345946487270172022881111038576300746475503702041126787479415768858762851684590634965265493180271350556702470955433180237556180586143888221068532960511993780202574838369366986836058780011138884385627493487638943681279572865611823449400446965317381317647615164388400680969571731588695127125286270539156003427687504491987339329415135980051668475342358974276820452399359653382447020552010951737547153060693341591127093893585459053251992905124650717863539633078317779275724605825962468792380494418751447366900565920485598694697306363636072761157369065014605058273008403932937360255994641201451366226852827636047855950558319184498918184409828583906804089869654605479700374541842213008387562647726678712570655177859390924896408516366486444485742477187807914911177427826136115752453123781802539349236520810488585088855521454733932243012063177900137591601299899396001804271257606371640132493660642652131461707941378821281568729668180953194873765324092938737717300159737151966108395337609986191903466902390039179388985093001903575672081360519092736358393855141332694731966596259688093225190685423252124999680067995646572145645295494341339125261102442655520024405463201453541311921379129957182558537039766611169561069576770834432951844583290047181909651039465380840517934349275890198738178555173359034782216638119123471028812038832113601375661765127192758957965718219091861928785093218394044333081082855234162168657305704964432824177875923520837325226800634829858410723858029959828526807315064785828524921377387168335262925178500837482575698636643954015732373617016820701303743759934154069438718313036294065768036994209381809110536789778945540606590622359734080115530304670487812912131673899541457747736085249242719845252210170551416875516857492579110555004483658165099824520515945349689242655164436153230230114874066227274677725177988084728814749053269642844774596966031567523406977440683681717329315666691460300442361016846869042748989060046662262188032578823059605135572233331125493821000304979921832341662007645195464416257845692438915051604359058008821213144078453482244718449792036980567514136984270907094845825210744200908826439452161734098399927926189802641258946644912061388920283160108443130977384236381463202418309859282905127892256754677074444850284468027286591321130057910656996298069552079832446254441587814269360783141549125474271568838670393432844317650895216955944373685396032154584590872169988281947258680019346976880103775000535422735628666351626895402546814992990264931546348294051423349698309323021844468790608857164089235049648209039349407245247688289629530876335135647594944167571424947696492704661299243884479530672549807311042027723232897973175467358112276604868537297412110785085884023958703088764984156071290076855877651727800210487026954795410084057844124842764090717157178360194277521643933711909128805885028629853398454347814117677660110856627785587734796212245804457314068293252200346408501200597536182087781064685423022822981107688695237840275284829958543366229995602301860018113524003825756457380289351529049279591278078458175336929653509622344728362265553944833253108583785598393052695640590411117470953427523430706444673532693478474081427716515951748290119533430986931063223948715678782594493845016018777263793378408524125999222159565940357694918938740467294463618102876810575537393156275373575870466640843659435382408400556063504852717875918301826739581494857320175805174405622780159012556907374687556609838801447604432623965692828044453459775982787417572371871185673673069662841514270041567909936933007887377023960281544625790362497626164288748029827998049812757228359030174878254432210344613593700513761389001211185630669419156060552418030949568336235760510641182617807491817253848531553525165621848587870439471556622216127088330255203368239211776058391531391379768953122888261791233027372984777624505058557309385247906790418461582039657547026612425765667934713809097387230039092626222700482026030779555660368301690749406900317430173483779955649416880199416197493716981578641945127711967302629038636492292963946648046124969601614649133274800527859325687204606830457293145849369809429831612269169053771909707185500357286241039903092621552654632054446235451376763193210970336239542177144048227180658225390002638719212687446456777503333097602937144222352330497503822664591984190804361209167684501095513239237475983934556775933800775319965101252619147163292894184150869868158814643371458139674766982415218488912744068941535784209988764177466786443096072725257758995725235445283104856409551155270083170090369523307064879810628281189259316599179707935642364222204186895557563954983992578379760421404704882880063522048613984177061681759676434301226480750041098202939456709828976355435311137563125846470000948866313801720754037658987674161950614515303786034243843386549496135816749732985882526582734718765981237631312476687743894880366419902970784664079088607745681118805237989945228970603652874211267352413163741272134106948588189008846582415996794509439427092549801805838915239108278508926096774195426589956769512359366861852123840631856687287023200149037087521874972404407098690273008909576283525402101748004068461153746406849402268569535014414742347311328372432857241379704120496550487745019732390742907793595204113915536039932410107853570734854651828715843158928515985045429302147678858111477640756607407053153073947273705252315866196904389729863297726817664110691976389795679345317031709536764395912049973993844852896684016979913426144548365728940687133789439631300025932646187169717909634452382310541235587890116147664915784900060672108960875594715125163386790611286941332667516873335579536857620454716654632421968322165638572484812407556990546461233009037315145948633182498406466645720713995291714568980234353871193971413914178543329653845946625443795377788237996775223489667169001521397884732454187830133955884801409952272880923020200512786637847826359738999260484578711570592164744957801174068738869917973973595646307593962432373437544765222307886269839955498591785767653917453399369320054171581897086163512655775095696476507717348010921911457562539391946689992888151779593453278896248630851933269206112915749671247233120013359062837414350646315222912228349873381189955244592529499149686040440109347513342695643132645573503338202691964201611239759454014709133950687104516366569684416993317776282784735659308151141647944508401820072527319259257353359692795355702031843380938501113901350952296109801322431190507908573823078224570594221887060371751083425752215110207333976002560112432199310180991955445335084139013888531164429030790240501596466373002248582728537735999247933196924278796386801557417970837371648015771649921570413744960028907926570778492627664952172906972038018129759119891417896644754555687993241377100324964403395512240514258868976455073584591146501148789604835010971049771256606190493315122465067563748100516246436507097495686497386678177214149847252829114857911658053303622178154402436694531977221532234920062272911459437555910030743748836019873109932209475778364230536912231574753061381291833367082528663453997918910525212172413356584485762451755732533743317602317331043553641959864337849464896464454659623209459495374747092518440273152400974086830394044809109928699581600708760323785481172127805939879402115524788474996977276332871340715639533249749717332633432888627232372443351386232436340208354193629271363941702628956959178657027242541718211733332003974188901941996290302577910318681475921716610127273429593092362457046618275420802483615830738981690775213511475962577807271565766612855614959357085357959426948834212630603634111902102938361637743566696956554323627348638623911951156092197599415068482355097231800924999411931135429568976962623435969994792206094354575216895433125877564376251015285735532815675924899708141923364531867804103744928301727143759381449332694311681500871196791127716926180222143836363116427821332594851293122077522766092934188598206791378706670071169388727686193161894028856239441768747375965833882432391829936565799450790167332873078512991212147857584131883388363472015410810725125392651571056690899678922441960404529381840655158639819746161739049171854578507705476371474584495111952225966470114706960246184398550751137904548890894521409963780651493642808673129996646486735078085647017165165300176914491947792366298733956180933608720708008030567789434868899147140717184411411300641035627323937348340938943992445971263711568163956115096481051448148793519404441670592605218047319221092919518213000060902542382109547247940651761349990303642766648087754152541955822501616165514887161247640410667472733590334194307552153014143167298118835814214740992275279149095806643945078890336523179463276477639475922630641654780290823557744726874986914281944750090944560201441982590557699676996278611567200322275992320212735504210757463504419379062604280690681156696811861533595032252935539943783244853983015352860946438076393753761357742401062745235697162516722047112864611259305504021721708403575013279024367332543974704640086427560766618209931422900878007924913044851983849477897812719757640812303363822385773198492024250912838619372702889078733138667809543520582670702278258758353278642066610408652590764741115388535249935465528951437394196210195150520239031194266769240174142760141263891620103810452922860316486575619545027429870070575673813983573250637996585143167358393652441630436137263733174052784996190328857184896782937807504280066232545459247119349713171883271784140536734359693017255661430083115739604022207963819937499434586279659198136120233855945875109617808096204568199142749998599730792235179409721144339377457092662539735923955986175517112781096580146060385407143336292552769087249830702357200357328365171041225086971416168172578293008103383408190771821750573411719458219927755108020913907877599212129327894465834726239632922259955902453972311678940853172350246227894012840830306429320619727700893758240479449706823985458693734974132963396247561719524228726504313001830425929428517730044791863202945979085424090234221124643776815451477807950907797991813251095461421815836681104755052591518748974265051908437682387039826887296574791343718242527864960661546473791364919749067509091394160850222291619090437360419577801190265607386204446053436961337362127697485029067862134760596109201464892929401548589261631250213426158326316240988021617210229051241092322970649778519664453305098671330486447571231975472026004063050085289138588131027873386103581478847275232021843114243079942637223020002176142715559813686584608816778898381967519335448044875305838209764818173075582791776318393302757054706939898595145570725109362487266033728780129441343253537758115873968141107648387718117508630781173170600809850575129883703863241010448918053530705795119291989711106081239848156874463111961755335356887348594104097610846814728511778458459904617323642579075736207082209586621065773601237796779451205885197140670880412675510762803224646833031316332451869162086185718964720905859568622313510688362907107115390359846507126425025100862406770937237744224995431720550684320099623683971342024422311321569511941178974689121165001311712265783387883317799606629926341715600657726865072944409104028631393908389014420643648143630472480704253006785016727139279349538452786868638746098408803804537555522157206740106215690086693888648341453162814960629551380039507002367767834464739424207071126187243121070860062139050376003702083571112384470320161107781748846536874494985216277325353821024102733664730078144667956093500542480882419401236156069529675075581118165282278016143041082663977022265622871270581437074821962888643206759220805788339632563631801663979681147492597518179304884190909122310776787041366288058017070469876292363784369821438828799337390390024490130111924454011369158600965309821426979376047568524538148013194786079025332355995398902246803843402928263677087302128058321824704939235148161723405587003122565502844619363574664294472295645892535535602066835353574764715331412499576348335130757630647423235555556325045496345860070802294146365806268659024724675118697631741053537021047490622909552205158207060782007453707982412967991014902215241117428810481140804153963153764678015285696553172766338768265478722394845353916241354936177548719249373291891332728843198921614240714550928174490786328267020539889573924159449508782790394696071095871614254584624292192484042672477209023008949852769534985000073057213223006538067617750016539488103675035419727059190784256237202991501876770504895809463210370122757671314940136390015975576404302023170409383071606955713485772453015272038139427684317275359570163899721829366589803291361244930084060232939171634811191410729904798649298828919803360550032858255843580644083745032739879842393083967268905254796361164729322069610294963398921029768360064492661872406762554368450091614359789739880525944510683547147625999728142357562825748104320393440109456910941818949418122342985396518142726176904958897828677606072760668978152534763545919310851185563092282802749580308406127014369621136048909748213942801719721870949543123946813680439728493388908557840948013161298813031999390352278835468294936471093635470947540639260898733792091328471408378712924187913690500314252421495192043758264203352990729556614492442823379860186034772087168996031941236308267277689985352356108536041151371055261561948883512918183772404382164222355250811950095978580351917056266254547801893820040305056705748586088575685302998652132080532125090475722774010262781748716045888744713712614439980227810073871512457800111535969728870584087748464603375082465171693159738130834941527443552918030232576621794652897281365068527713096294738957013735574450458666020233685773816251035478358447624981648067747198192310568938080738247734588385032447602483052058792749747070752497664944880034984824320474523618120107964704749302154690276778342061670890101828832254402183595926106161574593122453747515812276453695942973647969241307854471915402966667603167825321096654369538301670582465846015612296187976813103129715009225265163284358019222675784337820198160318729580319455314934708654391145669978050467575212691863138552149991030061436881622126087286599698718320952926787003600510036826964525034285860964273570359605160462848521688137807742009367758429267808231896452939696328744264266308811055628852189228821563882713672323441719125737307951965689757538652433146583471117792338882986970424899525542421047509700872272859069426083854925413759594474131620262192416091819142264349290464869301455790309344035995922509749373247830757490832568218108559353999521831059668741632358052756070168652490707472361785903855828518612549567701724140196714788681673628823945650333188507850925460646349951369646530461561849532742226876420979650223687502042436654066893974261762435964662245611902777635886655364829587838811419233697834804418467299891274230527345132269080387559750402189934674849508430050263582026869246555123834602181733135142140253652895845577592420889945029573245787411308860494054149203765650723172499767286063823780784255639148268369421423191079336683707072511203794707871308745659371968639376617429166716618253426635629287441645141439984002753471008389264012584802925565733129862353980024901358607639966204032936759480985204559143409148790723431363245187407524048004123716002244980850538794912297016096465827814379073804605347171993976712099012319018753911143502127433416538452153269830818001494001155720826087917208056394110933718709746216233097288378680244547986526411552398869052797731733119108837916938730330920976796171745771022903440713552150632642448286489281380208142187528976470763020811578972022417830180649394677265002440387250159375081211403088385296465322353502034211342236266582268321557564493079175428519460312903794916663093882500099989833406817165871996503473876303306716100134262359847395543238230160967006225517100901918456445274215901020561982356730625642237034161193478509889524598681102615331893024249769613677550086748371558218513274107274316989732599698774856525666390062836466646050048236182460971360800247458051058447261598685357931062170734709610715195589648059396650970672065814138035821522393149422477099515471827108134260687460138808124876197464096158264374205282154566161806053055834222253703244130483639802761699297958288212874023230851016303851048816426160296012065201394994630433657574990606417379809203890622026905365828573654487973465840705001719223594047696650765719559368394661379960997978201394049368008283067548972438768692607381856011628231945681936284733534248210537160379360629751019758804616567519955123006926085507496392995413743396704154685461303660211449944282368059926253223918309568048653936218196631088120725470999732837282390356185272707360248526596788816314257576409414221064278135309978731825539063739752618333144568043579422246065381626639616424190493091779815432901596063321594544878793951080405518784582786183193453162061270383021838214668532075892492621037738086873487142782681861295713645345727050227746479749249499084909791610894189153900284054447977506427854395794095079583406261495607984768752914970844956780240842350803366687859301999859987391488706193108292442075711388073508438974440440021596352382704031064371475195710283910213210894548704712224051679534885958919246848837522005878216532146244730135411456127601478176815572089369642701745682235235451418220878582963882651581351408954157173205059934792654695412464380449566286516519145726008916032270275433475621632759490808595848799360555000589378209624031192950186797314235355379697206735653738222959998932607843378977499192440743392398844502798224493141200415341277508686222948912243890897146145617745531453202518109564828274922925383142253948818312671991507844920228602725597508164360960569682747858006131567674823493051941742839600116931988904169343573154722971355909495133757553364645584750490124317731587239568392696095624467387114489532168816068096830629385025363039384850583909943154462667596425695541360447545082526390808739043039762703363297586724555771201769320849517728914238547855644850065470114142222420964233509673819666688493745515110858774488152683327786714673110302057264658432150238537701607455162130033878209175998792213189345756523132859748514493194464341888226799953289076252370095421182488593255075399418583941022019847708268720120829688782160989860836023192666248135139356692883297488919044896740417830137759561750546474772327231591232857771451616483166178977379034840819523463366095957543761632616936957703020184377144806401676562153969899833472291418689893698130190464870968756575842806819713994523806818876022867470814067047705264846249080858460592437411463973984110803585351374228946696762652620083496555653832178611604730729079165974028394383046906061045949251047181757640798295317031876148700424488617580741487854473374617758992598808317888520320305442183251252077410037704152872171789998221961356250190255046013302841605446539755725899560179464816984014200643972069827784525302427073367909448970032860753100321570247866212012515862406240532835236030643044397469113599924462836039402986285378585350553264239867378495286557624000409915875296572673607713563405971823567929462383946746692000080119227328500596328028619676918432554054063511854985903021227170387436499348191793580106942698803238843214462974803988245598376088864498068162347867447068096390133312029841841802884099520784817322618744988680134118298031188197257856962675121517496170491723121280753329630892091800136466810502588303449358651408797776147474518854291530581900843931046759450894637755473042611709090759356999738606663303139317518021145821983911162863596199560650439415183820532056984834278824215797671160554172084365808358737154875197019170595901182506326155612578273647645183531675782892488341379062534607618985848991873492927425394618531697968738886222516497272746797199875625743785025062541721103268308424113776778175769863953013413956744565186497951535082620509215660817581545745252718194265152826947052222824984788286894360146147161898261788814222617370211261570148612489802806308749465990002941253588735658722538105126942570130577758014709441614428401744605004930550203439137750853555454171777370238391000553568543690450244357926841326536479676034392510610189552811436618048146471927939471562509150532083491644260028662480606437025692755085013556917283477515397373558981968285522485615655644873005485481858527455715000529956809982370462841749294052846390475362067611402944345729978803878636102236909820664456149954123417610035643554100943691017494068483690780060964702448237908868880082644435079578548081103082262170605103250035408394002926201205141053699039676548251199013550942150244902041176304266491041045667489284688934207881190309547641554405960455799037197570687342162318348662739600889080453984628897176286745416685325861128062154726233932923876531202312746151235253543979981744874602184089975581813775494426032519612179616817309364867261307602000883178383288086398139989281597057248817225675892505922666214870573358045800061620301322139481444921148536631814243959154666455711832837721839374583392187187064128539654635214916635039910051356849973682239441328135317865728342405659224215660509040931875480622211397137816652346379029530521538775970357581045231164101765937918556056200043698077243494772041624444173628582551771655724843685667237584378239225653708491018492962581712071765398577123285799628384798143957433070382167065712293601996564933868208268738210947875672227034193240197198133212204825652380627071588440277869062799249527400023459417513233376123033818543429425115179667289591443655158032321711793155825339879755398244576938680010831924480927694188787646162280961235972327132508226387780632653425208247839669103504039319008211386443933714764943523171760366557844862806231395883119182249759170047416871445363616064295476008785863913362237426620088780722933767701640630411734603026230650469121819006538369263075499640730752669652420567758559260667866886196137255322967568982168536551796323880472174211149779752502281340194897840943830412338840127372692690263055360335392365406564779760510851826465241691389424231367985337854377953382830913047328379966226815572743465199444914635343205510527025015330545458855223936225188298868508117576159454679359915579654454286121155039364556695370617976066330614350351790983972002293030625704642077541812491466512627514345672285571954236106308499846314857632795751762889052227977342679712373111147086258104534189708516802961513020176107657408550262431008818071465876264101672028881608537119570801906028564442856072112580355673164441647503613136762200521368488328430165549129827918312712248681311485494472481311195620268821113295819379188728702576760438130863315492481485454265112535133784862341446043870283412867940313264847768759079990869034608409607746516979740626996265523693768869650275158955603410596595930597631609757643173465423716393799090709370077139908768185201424483007540813575082912848803946005355922133233840721373388584089131046878659850672187134718987872807830892885347892679872094359980182421738901515520454302505328549756679407698403489573603959859066180398129077730092937040064086401158903830887376500557420472417961364593116675832003678193591827145421157751471570856666564719305832969417891614977203351426125389215656347562318912254606440701204704855392143642001079853210296187990264034402906143095221660266088807523757689049393160761374009159079236676018162083964415820707113738231101440665841699737284024083143028937509256179511385667650128591934326850797737025251433509233196532841708139657713365136583544855630656084739642208377649314645705864493485207887903824275540221725831493010755494907889142864173150767429597880378493545907404363353960171396735686835833252722112772981726504751789040531182442270388415948685900840520914127910881713939643854151887996983354188400611858869621557854983507053325960278813048958412603603955302583349496571697966676446369859266536791204031043160888720940778888337280941986867374124580352213977705282018027601234768364270189574041085337739747701336532745662895073799082236860732334925343107995077657122626213739959308911004757160180080023132709343195702596090661578418641462383141977169333678386634636819297457536667331423593290785640583786490685418291577327085055754806840068620677808348467249350785897579752003369142201053739123463943462899387893531138794504416965733963076789869530466200917197137727694765407211247183341141880205390022686330512411342543823235008322011658784901843932001877544683493654123038967030237097914880625972298006406767739559342326170764741061576952361639741077879001066749647663514926502187354786632540838155567532365354403134842422824413381030204481261428964068380416265823576904511137172468546617629671848114984370498758208534725797110156369673633114843188128612981651947840287612090472937565505708176186055515194754062279867262346785262389768703415408006328998609380431314939970298709866366762350781014069529993938852765830334108484198520244612268847262577269191343245564413526699749520590249588016329483679328015017743348447291880490815010400485708111874892803703295299987968337341788136169839408093497538407453184690198320857427637289454420062822481841823272153983720365023829265510248360981773494558728446342620922897906467289259257852662662596388973967237923134721296577960825625867722002993107943362997653834420174328693136805476494704479389648327838601836912416670729603163622572833926272716451679972413606975249827006191554774589638969544767167723870319083377693438503058730226719297160691934944840354457187800727932215365202193739837165697887056223368073740897065264343163484687449291722214791256076060742467781161248020615712134217485434717556180927961749421432143805853193065036274586534299913648031064930146244557558758324223005147029945972299462728578749566407853976085290966076345306448041043670172575134192633728376772248788865185425067176869619921179410188071239130618559331914633823848223471819417046255505836227845266270865014456045291488288187068106579687700098953222149151832660326680925453404892229130944684373175160257177214703534673037126266905427174752691788669649288722213433107014672055687171920866644618791998504058570052948342954672935336824088073460216813287971662788561665105717975258059216902977741383237735583824863523600550058217147196671045713434857912636267979647320908050125160304387594499938870429046800989642913024823419520996410664203689257573131249934578648960746178182726388738278834944999998903683346139917794010869100574446600621473272837500355301480797650119988325156523468953411793748879681137756153840187642177418296930936772179354867080726394402705740460193355965877403351758416355330643218844853332615978089760719450841405388063854718908963708300621446614961197295551150832579796418108648421444344572885858896482464719195240182303985149576559217063099122859681252195766221663140527011701450288854143475780459790017295365452895418442610979247848106129601994846040855750071219315600779000939015219089699789757772062766039547507626971187131458560293497520077467671626282651246178455573561759764949999515326306807008923043156144888155800697400250968912570671726798516155036820427861654826084126360924681649354864088557257715692344444149056188315987956212835918121099089744698330118991443086011865871608113966079404975546199209443981884657742223675228089092262629967927320861431626149701632479108429794923006731802868796087385975158717807942805540559665783212926914875070822418822749423948524713224633698848436826799172976068673371368677447782820446707165667875931919544077423051112265090163433692593121207249575192500023826419703869550833869239059650199563712501515107061387035491856926873549383483355771761736062343985819672765399546471163888795292045982304930079159040146951985253084060884857485278932522829488508038078506098200327782143778209084068669057818031233020997061921295280216135781408444764861545250078793450175370416654627689345197560500320722292930180233372575131913892098019672847923471734389443850948387851556407697914974810781510825916846503827302812583359662185225790939174744903646752401901738172197774406947775320992311506051344932207344577256076762440053851869122147446901078937029973328473982181679543127274923943931064272252955759543429607525298332484641941768485542620550073156695072639866705363409147730525944891615931122004640547918125428751092853656571074251485020301628138089035369974519591912813102019735723495071264016361937946573535934410543952928464327467286590713586611187455767911203500556441536553985982132161184359967598575523768524009762555400920817070802885072496647429940812274305870362756974106120508747994740229892747668951911895753556007018228429310556736642471885353632268852320650233759333689204700274435439305984997577505363268545392351743600105102294832077282947678086966093832721071250318870592497833078282369497374824360995731885177083696633564288013700653897734965932236966296211404559389766659338748041531862538454226372406872549577251526063925198755432535941787293172751172858401137992444232738766611562970241079387406543195802359029850414082887335820230738281382513937482476762653805817665638550646094823471227490091210933287010653569279104042822521356067735934105798021661233808019959516601614341600154688074839160689717311540048421278142470783934220385125262133642027159785192420021158349653760059485884561480806757638150935611526061661197656468293292917504829787522302991928951276318329686454014495365523690859029756592126874183317266267568968417951792943355281964956947657503127424164112131114974525475518594725772426399735023614749037310119122219502790504505994834357164557312280661286472823224219552812077680118251048671864499764413985769078195023597394128288090966420814993967424328922496869268370196561589964742832369725471580470854211736369506611743653080051169197692139496922779263399055053852609682072979458138969903205390807050328718519650661988349201949823064209119744540429729989507304900737635430956551946781393162968005231340357396217102741999570541012550201954739366853350684716390279175846924171617650940134678498232598797281577944827278020667455868658073818322591386157665965284315323229637444470041765877634244113606043284739066986067845775168632144002858115318069421156043109680055669506827102888327771650464339501497532075827087981790763831843466231674302701783216434378322843276689804151819706163542668072177124776897561285280820720081073047852950093566470429697045247135326363412156615309525358888353059198063537750167502412660931845195790071290540086233332807859984645300537900988142846570225819107801084597887447026116706787519662081483791891802569034782555944657641220246606795820935356588569667662581882269234130621712468211849028784708014465415957021643982185668163998040222339420658212905793806000889942942129230030174250583098525472639590834958175939237177575043788872103955526159122335135241710480042753621374748540098140399650829246420483550230463103018658766034826768051916336251539110630108431199560253705137445510819890984069165815383256683776114382185463659101166355705846526247759394190392965765924018450351433126418917374102982129995099448890900329761191348849507117184815343901411463525794054628865962674918968333966299572388843001917482397535906028139402133617939471359229260667638249161324222443702400113692736110492976533169352000083644639968837855995425093375531066471944878287364384808227227554286898928310069817080353721065343669248630551453333737485522000953089710683372955702348040440075055851685187809933676675620680766467913161655722508522316780492813219223489225206117277214972619308425112820652840657361920112386370533848946128387389616902216495572959147502090991388598361365082684137798801783824359926120106557763120982866051621603443387073237759226136799432936077588453932145504194140000393521233675419354875660917279941900761601735560047567504746964220952796326060498809568472266181887590911684573115759521874307042750435479706897536469565480262225442446819211740920651691247363404479670557686406446705536557352430476005188956166529097162461455826896200065141385536510110742950491247870335752723065929104133627936853977631286776623688198056342626293316088782969252502023595395468689602889145694847559780934169153564203604203716688551914827819947514237774583905755422995875778199937355838592479047593196247416917596076036118355195501246455827567619670477190160721424496617852188825034668190230752350684346358071534331157080264682306713418580591149916859622720932280513220215772377311801112634509066457003798287021698362289809336459186567930854507141413015150368714756826003942141138326759025160455339346861651670907407346998788531362271648446638012384075360159954904560255491444954674323446261620975769024503682859439125566724856507969489088499301277281571619167755192881773432437254494621339769919475347072942319401971884070726330946766620362858008301134086596622398327091987435127194626106068436293692960958565774031738577428438095706846388779134511299351509927683181814722951330210343175208776265370033008888663836530361521470748877585557417804077939637504157521918809811926185105132077515090299566426047738653971146769665504708121294223550637484362525786355168917864693680068285310656589061932458553028681744024315182305665222546134110859184343089626086653378489268070957698546885418790256868577810319987776681985772221160780169211778486164278651777347112108615525145667880378961935030406511675738620288949059462728424434067097948997260709802752193754222314654880304878394062629553013884306224852600449549790126381853010003598388634429245061973953007733818522484782097104965710105988371445867581254959640760527647201633795781919754571214449870886510422688723213163397695030427534185173567030090361372391326590733162982864859100358696352431995194476954403627678436240737696021310061992055864368645099872142090347879719200304167391079208292994848756121205635636065205894367277579709053678373153912352012367558530093922795330898047849807223713412454925090596378595380852741400644540245519898608288952288056032656173615380541152479575158560932470517201165727941434667953325546037043479867094634920292128640916631623188407052604092385857882485259480147073134284023756580056738065683247026363232881684342969981131568791930609546450164148636567034251672766403265123847193852231624766992803100394153228292947103245317708921171739855069893414964988538896870294507503642743870528403155728473223212374703962366102556711620753352861426580482406719249919187509733506408981399025757905966475464045595113706194530307918014229811395916859530296789442278946274351239470521360171127215862232820241391316902599861224038836873468885095543231847504488939010058984779844889194715658666323677808349993957158323072932864960972611379688838017198237786395404428178506219775201148233265831275355900420109263166579176397914976751959495182945029808790730660437214386279453464680015241221775355087822679120901281947087333992255744619142657805856800577543481875501138755887179851569518883920419305008603121143835132358132089774105391286014710280258650591734400595284485164490783821588009114057776987600245073451985970313506100870408397421941894387325695249123775270218331357052949081930269240544917978733299569374604875615339200309419019469921526984697083431878732251688739760991570113577485252103736785510688348224326582055665298120277812400618995415348549775437042101097531782267741357239245798483232882328230243512206533383988159091298367930285791860950877365123378189401073680758952277849677641054992671264312109904254554042321115063830527845629837234647271364296227064303874881165248065819089829842963168227244821058393714306173391411935208472558370013977034781886626301813473385234195316772888558229884695220307061345643034379684879043054023778351489384697553752017941135879700510431561188343496914822264175534679020444613974769789746780801817048328874004844817791049492170421727796434436337152902992701951768613587468008112221402187055180569237545185318081426967564903457392794426870417464241594522039024216654654009516087113170063933160390744795981312308126924245052171653812021294565552070516257702799363233939296421515223864048617760196547935902223143254621299935287060434109504982901665509698936912231318833758870277574818705736656097757961934712356744803850226962720239122722310597622720645384556384814193454431353528640542575487603356072090011278151397846018870555252609499154910725317910533301952434798491615508130484545234146542902768587559939377830159335633298304721767568665083828918267203368490900881761461911614682446707693060149552053698227490464859608741349661768144049137424749960401220118172944268753145437530949932758179330853907363162067815204326762547389758132649595257257328261067116156385384837444571431948743217864579213836718122335616934529942990276945345695249962324672403671333504077795876058141009367886452781131544168003684183944151848920430290136645144028221959705274045450727335043660517446617401168383018296350754763707590298088781816489445189140132077578751665582452690312847454669724951507366816468767914518755610445340759964185755764584540665498368463141721006640800318808891985813215904173517816502322305763610499674736705759880986519151232305797517151572391359747974052515269704598712142659587106838430012565520748193519956859739649413284644256656045807599173868303150950128215342138850065579718586514029662751768310411717951296928170131181893966469081333611964402304177584033036272080015253471449634729782357107289246005309472989817857837873951302410035233018587056692823057003854241896296304068354588411839094538744953247162683522706032762582992356957542476385886756145807535105224388076068840466510265118531723531041512627918231689609723978707450545006731930522951091690956932198561867876141666133038259449066661374415392623242568365727063766479218427485969148663346020508779212411307699126693837025380715592029663591774663024035815349453487457692981380985012442933650539111044479067220946511903289174482497057554482366222177860963699551373592944669978368359654127984354486399538963250794942882914174059121257343513234532017577595209707496038961006859187507559898122455767910852488231701424487497194096846719315555782724018215023191628337231180508236553320129677457930427245273859370798200482830527238495103276106195931601194531130829050059571352211636256325213859647833175435896282715729824133723099218026737241269682141888097523230092230870974445337615705677902419108369743662899961189987541538317612861077737888236035216210309505172441068133385870006729432722663683946069054195279073403253799074696874146465170148750137994531672451685936949102527061347138973238410133117730847685131817503186010339589505732385639486726515301593352423633602985905490761388207717649203980212589931234577514529623043280359765507610211350938392369936241124744573455972716186915670202471232463942989789929638427844294901225150979615271783876019846499069225409436668855814819084122103411003146919947677659475482308563198567066729251664678579903278988108572396574540099199980563334106069946798022660868243797135770364640875503114793628024320810826578976677943999896139113804159104466298564307390920630069845414334539690012825587622592377696831604563700558869221484104035835708596487134558703345304208183475483207831701592030826053451317176558077020207252336089121341823513091337484987339052280060520222670922757856396804706589780968062180239300716613934859356074859953968169131129423919820156078832346372660241916822751399425075828904928355876955707953389623919845630456679564949578859567565107583709772922645711494564737689533640265006599966786887966711790622255182478132342358166916177157507425727855535732743076961027473793599868028785571012755720265084786668394748804685063672403535401038946519710221786029710250768151745122634827417242352086006646686572920057470564464062863833883318462213342342074393679834410226594456026867395592204608782016445048835375042348270896727256746041234599845033092247935176958477399937908076952865770269218577272836397720576257324401314075906352474531167282323405701072585279263576052508580537716730787904368906368884758430522439646169490062604998813740931382102365442573773395720169831293959918308838847144021514407535276324536158236114485222379554515635718790963782902524165834204337711972311591514327891578336832596071989830836552816111047382614305424280946703638043219710761834241941685990675607775161187744735851051477184993416836480745729195200416065027360536358650661425493674956290132476331430590166051701676576232017690325037602638264350982175175714175190348494505511596097002480964173488804932932183735205046069656646217971481174118499091782540144917377766964990826747017624809607268482356411292365032029891843438360192463884564872732355753733360688301225690117452261044276441453175799949383508549254711096082154111258854582940784541962833124907744323604327166232315964156857992492876892484791798523995090711812178376594766987781096595092840032133218370475093190204853345144066507897382517178230537681039327170283788569125256195846349284029092749588007761747737689866361444837932350324232261528604674036744469622348087956666797623094852324733148611028329975921229212689215202936779436661717910116832564022345664583871562485473395393440783115525067576557430745297331664288818452996316690120459786137168844926838743600261650645915584444891430436731489794771060489668990163337314021360565021804991069465194085059334533976424682321450738828887004528619545357091736334426784512111562519318938203053695967884698509951795628016605238094129749102293037067444712648896540878360915247497446492165733166694703367453133215371323978510665594279929148697033733735725112758775976381155329571982002513286567079925050219642221793874517124182232026116230452663205886114872711728307557155744936703343222876666233798945839117526146749762911859557176540640803547416135268109940826440048312900220103767480721140848608258038735422776000119629153449877341670695029645108160551764752774925031656824660519757922286204833510251378280488901056436113422202591148412441263811191659322394299091078181205687417300313548940740283305417619918994933922598482117433398059665747372931968890923865448781835972516842758570382213988190385343021221044839645100650991133709091227489695466892459242891317791837876400494790674986606428014471099358489380376921064593470742073452817057195708978335107185127615634777936035915593999257429639509307588644081695513754238314968796191454389441357035318633522652484233593604167406863307394955343117600497492505854271442979519185821281100745666217692829013332596895032080684235713587159386636148595003651007120705953655145148363766588286059182584788825178362021361860485856118414816590058247265205063203719014573162646168719009162574327024197215990662922598349065625577278674577215900309812411439892929271674391306867494541555533295272149060391452964034123145148041382207003923498675195448841356543264054134058345629156471598785225239230250470351632808938040150248080311760367003448753679100138237014390480306803099553446716690235087355058104079777134311676069727466194494557377323290159183585779804185713375920143405614314200428952290971618078523022295145908652577106351484577390052101647563600833031455790465762468242171357071928159495293917078871897390578891541621342135975721214388922938883871204601838086358680745685649466622632865653840539349702205188530766388722142371359029008921090606527847852869485524434695065637538503632388187481426960969547886165659239050048668438119496109928068497544988161716030583090126687300984957242424853775004804791366623834505251486073112971802291693130641638658005260315911758283810874714566938005673638038148012484383673681607470461052628324782188285945487753476461908016706889255763640873862972268629590595643349003538256391023584843984805807806487672672802134049956528319511997251029956679357019680093210287902851601401184618412892232102515325945270634550641226554797279136458990356014627669211324457620358450437632421815673303647775740275249642319072314746421799480684890068016539267496659194343331884398289880345814903441472486646550829546547219826063026586333772274275612403638629287605674559121871484712243502934765310106112559798519933118652807267359513199769838032393265065787263774949554218752095992054747159503730158008552294222038252347189959728893384632760689051078549567339574163520462771651530699557479182654932548056707716193156886917505428537744129673890594506927235464567255853892582762324390358045302121584027579826150566496185557365457343498884529982989716203510491732725322324683852584624760950359203059415833849093588759975962273979826964370852556258133392996865812521290978764677603842307831524920070853037025534723132775785192414573931811088854233540595206241592948202679000244532874685439299832010854920978027285336796061573571266938087135214243928813941219266978056012990280897401187168714457292056846310214255317316726699251477971185711326755394644595426393724314031655599691198005524646833301162227049095309784585411821419264142182581929492457603650510407863165286541404062035370906928477677445028717183254655292908970488896861222885818575438829494381342700587368582480827720256140214909619095192835550811356657549408813611552843781371256210562258345088585574503431467267769876255647754466939520692129334846897911826476107133108707018072734037099635759878107355977901288471778421258171081868710881348842359185915306396345339974139035140652192823480107265278065886397480984411225931985433281098875819666257827738641921996447399728337623907305948570034288657110359536198140018200901920040536354893049243401789829825877738962992207143780107914942147217813570093655675074515749896501293848231496863377662937635344756805920710827258868592832738751558323032219817314963417316615875390659478479876071163475489135425956294721894829052687022451987620886347730482788907187258699431951304189648824130435775913720962550158466335305634290847103567837458379914602273717832334663951350691213822304326435334216485708329893964167906404778986586316520284074425640466944191603520774572912295682799194308534917066517660010360834858397480679420631922916061692955645251855296026781289583818615158225585655726523897757718102987645450200160292778916438101457113305546667780675854064507832913653078747313916112294744378617065964590228771372737980294532376690813174637418770528323546050236160085664857562887470037588585141846636520877135671832452609145289399086524536650261059434529524195451348095671823764564370025463094880309970549931900607276165562127941826145246687161642660456216139138159892147218530890178113705894686222018704093593974623727067518666847527933615417481837168893398273682002090193491201185249828287749404999060698543130944195273840255392786321540742768637976475160415041096501498763502446136576166483713988576515906675048846218740181117403888031273546093459309459933357551433872361596030354976642270228473104956459380941082982261068609697395586609359415998319446744757230235128797599589383853638654055291969265313063780826819049770568160752774258442386529816377602647439231955944285899053500214773663732112667890761850652776051387896159998253623674769032722682445564886040552494442922415194313675841262223266050379938871235619241085290703191693848913788160109355400440754322625402899024334910372282885608282634668540717172979395347284492264000728335727155883212935678975819171432180677963986995737149333404294540132113090700858752482368771346082031835560095983047582722913768092526170460682192348278819016270419395265799154495947873431705660424041814834119838133633591168756227682833420826618098849258051165122288999783977466307484991597604086341405607655985543532618577751388879553157813910737718175198779792020706322689885254484147611306501323198978005532676938172168023239965821528662756940718351015752396333947934471918980612103000716518817743723435219887763155577013743647873063031543068489492420597188532555489832707858985213650703862100659159145444977060250735417231843071422322568288149968440248017117392755191645777108887167874259788886930811035775130710921152207897997223741320340944043270485480972959847096566254687279916988591615374314895066909924867174919630983347332872660749391407459049372660656260951572177060609207037125366292385088427449108248180076095371547275767870881049900364232882256628869315585368975263243382867126651092639897695986928459661933507448777033321836365293240910518764837466377581782951256856852605858586183177705785785576759287761438929476104135602808636912869734983841345366752244415591284086438598156133180833942470262273486918341228363182360659091247057129939693609286963983598455480307114690543242990008815914403290924209547860757723928753970808140120294017145842719210086879945869469228373076322099346127468653404070155440730448681403512299410370964260963471222537836355882968423976956562817498611769338969964280718404959387267438261811159643991546548692375151320657225231903199039948116398325743331804794357633038646014295911991517886661971034928078295914721883354388637257191640931984349575243499140588307675590096325525433635907375954619159818758637122144274958531427399137369728014395349589526172502783424488422998245756342045445710946564242867442222821742800192581935462619684262031309366750145809047062857095464771428247087119740843448359872040228797601447814709337404602294420219428995270410073665063866481047505022954594760938018001610629206333323487583221599781226746651697644555259317340267067288663944967761102967951207311820498410075446853978951501326531189319734663822625732504523331434138834095492503661209923443963493221882938930478504778421163022562436180212495688318414216203676224949247572614041530072808388422639542498265463801774096242118328851305072853529938019992891088746671297850060344703296849717465439750858891260553746764064057125797895730681866500886145373205720858604637216959230034148563070755207758107454481662925753508704844616206351324150003399776671344889957661439652407218124714142339789533936124259571249535174151346027861816030533718777023649038725488505675918562933908847843845703785251781960270955341353417556842928928356311674744380533479555390655251923528907521280788314862602801764714700458817159826417357473170036092888586168181203644568854932788074530627474899220421680829956746178057248813837324070889200734143808437176880272575710383301578162317201783021079782955706473647095181966554631093835150945518548959305877588048920862363631055842823943561848700962456975922275158143407613009460217376472926951536283918269599573331498254672652512019026108539027267625376942450963661138545835818610796009255613287536403189850457762952158982503432564285726303333115649044039128866425601180608421108590275728090286945896891316542482545108336594956815808488104182203218271604512685761975101445442703264074455726517667089084440693128345575079187420878308615651871360369955805253269341193425423370342559310456898410802106145437016378507266781559115872419465904464811557835831280703135462114450179521731505160110522929393126667184798591188727748533353882783027957905205529358654196201895872102867003534656291802407222778233543162611332635097663366085851064972954100632470863475701381679010979741862295833260040165985219624336761751740963207500023112220278587828007361819348846678837240134424557160349947893976800373630419192097980482814848645895320367962558550260241636820575522727741131522060431907365733250898496960167436012458723774872382547822837255084427883682147773723519209042603886515122261663989146738347306952122273343204568263371390777949507992532569396656589774795950001294036157998939483668513579299892492362307439617998214967049435952624389808084435309630173557867126950575859139545993077574079645921471703577862251985907856252066788979804320597065244216625299380535361612275902027076466178523159319413388587942575555277363467636271004444960128884697278307230158902337894167389771547894581375253816552578210905760590338835888925041593447745894997469538517214209376689014186394330869778556846270349282457556935234297398563840120631582918209668723447458103629443435379099421412382958031475724747157050944081665846324440846768225690949269076991115146686131695557604637643756554636063150131675294071118914374338212655346259622399892615067264558725615196673952283265260957833742924275238116720219159701512906541460448924191475885902041560242685548523991442149895724497684764648183555366195885536103856970418153108618272578536477487844933995211743253912208578551242948955124471761741458317032129128446338017166230810550339386495132336883231748905981997763365304132771075932068235131231631658877648618235454728505104290442047794711217911695970078974573835301770489876210466193049254798305578255642407973332684539147143481990969785713125253852619172040730263460429309261803049925710551681923733221838634476710951782901541031505623457057862479586499758605512450119387023773424381287362957460246581486529914007349899483808235747693754071374703923106318150145998210596502691456961579079764286110856686209484424579108429800882821416700051153547891626613195297062908831580355054440191982319479452026602286669533585235178845048140629252494269468868113299665602121737586065069570377033830933209397422047345381283835303043658370982586379174773990538396112241711379478517868518094361839953404118386555098225943150334440899371130677903471038050542504416853040029467049856887598180078462888492345587583122948179981676737434935832716843955903324163129277158627358737766098652444805375110700389439527578371898663308782033530193397492904072613300080138345183001523140546469182718044039005421044017384120805516260732793701911416042688510160561923823319472784243264421528264020467309258911286099873441463822429453777570882810917708228322616953589437897779142132911968746176444118864161872811120310910571944916338125297677264207662234886533968004655273520449864374251352540429205758660542922388702117566188351682861163742596243808714259957889638375859862274117564518721883662798793439878564210894101609849215548991513239907938026047870544973073721389258089504501933864815922809286757060787946758754106098414253089486773400557351497561955975007163150702827539269028463616206594676908088873559554224930879177474936957367974220454696326535805182136249809396287944658931319151960747336163710914024760413493542907748623970290203434357151788100037605860850732915036084295934766526076802062080712799428522805737244050925365606503641899722686459763105889654674100225514490501661679990322289195700072223907585951284716315348264593775444914013576204116014265735932992392285065235551640744917003867554434198855767827577793911851937715665391505008073644770511190458332137928181353065311324630980854021096723422829535425285545089344217660808687198019243573838284825025450788244728235563956644953024931238261824603308278304277783230609298270394567877211084418391496367562024354574775200951745753217675795346973134045382094934656094009139634051817218554947977210461712546602735224999976724849264576040419997864942874066111697692790007006602617674089227468792409984941328891682612155777058248405846316448829745219865314949253953556891522712611405010896506482348516137378807223961103820421215617283768181373704125542091328074135496842692510556854822214490571054350497854879933565709363101296659982107403093826621151833668009448535389779602337132869650256822439504351292963399632698468723616228271452466965602574674784663331614540259751278121297697872890099399463087679868718688585877272325668304990747374703908027006970596063520502372763157641744996389946697284690122754471909425121284683654264361743393934414900120115864975247344595973685396126307350720944730697594179691824384296303270477508244238696613874220412256715431687823272768973349006152829619335173743688558478382758531952207407784432588378138827839913542283827311205527420688657199699705727750376882579849868243531395746323565300978990799765106044503060178422000188089466483929571432582184932481838173928136528410271287312728395059074835553915843778267982148580480202625168665208499158418936518596517880904455278912477672740866567464449890712863365541579671277025085902968150086721573897473349606159647897939675946236628605297083451809781482403809978936220548112672809706509782823326302382648137370072132087856627025613377470787703871510143143690657041764597688372217073980001168443377483595719414374715653614885218606285001851844204385765979096757264334673587757725410651694349101138427112723710348341521953216081566339722437299600914009397547756063545679811659832623732158340137345474285564344718090977094438873971193559166894102906020205929426367279077159917805569645476482604217909923979062484560584891644753138958963565646169647778567176042121529357719557419821972342818634951567299283596458298631584703368150178843038898204262360452669533158054558453962288814014350333363266432049070935915668728083900362844604676565008247376288750976659307599656296934226287159345875205645245641494618154954764691856148759620105129877374789284324165922998555604550075499496655901850266552741863109196959260004693064104959506865111097616584526703759272311686330964705983314726251172886657778568188610145624240032027296247124533902075467360909369118445932210915095189211123365708033264939268278662488331280921065944746291352802176230005362655728885352470221183731154443296358812087534040422627097761120956177792320818187965127757831695143655973156162375921576338713785453956547519564615932973651546793613303094494075259093425734384825900285488241975079161921344122067690481573440963648481656295086274788656311945519316966494305363112762120548672527344869359031399186676055173373114778308633569240395884227364385877056920106948692434135045816114065379600625450095176975969249926923011622654416611196940270019080951959098914202854366301460478013060150695901545167971565154799021267431613906962242805639907879642233765425078456804997250852653759410865964751959319884240430678137572687310072040397611372666150860250031183041223687344191797047835390690192149448533038821954037244291146864954705531660643696045150268612855389300930197078511824123687258835097026419896123888733195418729736794302657356313315265706239271868324314332488313917161861375086522768871661890528418904390908934191533265214173055894011802430064336321490429595910050063251991392785339675234384112076262152621425927604073563844579828934943928827495845207531106855794603397244027422075411780730935711968144443959777996050053856046544272686525998784509932708392277931519399893088912380314517299767414497053875048184368981747638204805156174584003098853818192256565551255404127827331671750200126987080863146342567486936772311890025747762971024615288510154777590410898447120804505131540574346272322110200818106306217048434869022032802618066243613488293690925621407759141113869196161557815261734536772351542915777091115547039380042086088138434471662998254156816661285506412732711416188714459779840335682361429339709490546395266243073743826763737907214092849318678223567534944337918312232279250125415148864712940752426688547048164800489935729361306868468650481080379338062338777730262800738574728733553971280360044954412625626845321039072655872656053671281745557326538725518799138636046876661140263569713355896082507844083271512826489656199385737974327242905869690224838106495682706471872600057872622506573025794712451565721158318310592781337736817037396257017827348478232584023927780092442389553433378487093597800985476531265740771480888355882780719552650751389550010961768679179525769106378630737133226147184978564403008007331172225308392638932176711128980299294595848023659802994694289737409795345577562530149548346363439811255484019731392261197747770850432748680894039055310742912059963835594991361712021345315295271987066327853527747114958472219688577345952310408389508159560282067958611434379400267101767622467165905490360032404017673206911214954715273769091189688559051400194914342755945813920452664116963687066308057118001208991229696495343189480322524915478119977679937959674330903373395844454173592384062188734021625480216420398026431973634610789564493484798797883667481321203447519021588698722023039044606725497735684776347825365291316856503425965309186713204349467177427872709009665482262308659976693679286563580473347288578299393931106700208703766805799933224180802788618358274412181904268912739640245261755939342191088376932594774530006184753085304499597064604525598536002328911349873364209834955401999212992788196141303486906745917489588879291396462589270467103615968097022123788512143866629920831075825850346479135827944201168908913986069617951775717932714934906864716572212367496230835123478433696325195483637570869432901317549864006834311028652983598332919422704803118277004560523952174237197897494885661484236866181115607508796035527624173471608071886011676491852800827255463684533276595080613205748492071659635349073417397479617404655195190710513699578492209883249894708415942525317817511553018778689929310031670442670658216551659090642949576909480194356291743475717779640440130744512576457756060650531281853009664957178322979439995910986369600553371564083154250822898893495033217898823058196623094524478283224916157623983520188164104341783427684424618339064356336125434776311939593732074237784405760120129873530008276309224892837636415486312167777103025714149224538299520664359446379723200001610775070695914163862489149938421169460624851481118211381813046677234985548833048867690433939702268449875837880574195169563500174601204091207178985154375477913894754949109398181068280969869585552504455878054093683151759181632728769074558848667037672532974264663605221475342183775962943715461495307475730463014342144539012177196528081800646287702952253195793048270774482025643874248547516239131460148753978837148614867199027202177063266314663512317274095501215779966798351683541297365812723738706879928115195764883404469759048926108984469189494643081071951351471278707559112182252602376949877613475368035660201577013026407367590631909034566818278972746744346586200198378725527760585658446327078236961510784763897928442954353231866801688977093623676713658214540354134690431534095741420203488504148101773463772917748948333612623185509397580223149937198128819445195509715883482554015096040660348689160464900546671707994510764850084400561148185252326308015773723910774217729666852597100499398503546527693024217445042416305802166550865284295373944354667039131724503271428506915967355580019093529018872832224393989271585469954655088815355581350330842372917809948239737075412998199572561538409991282443586701213090677150972422949992823586677160975283108757993496883582979869152342693951718049335813531786651816288957000931265273413944672503753243135378398157506199477271983247069475685498943504832690103994054546102104137028737693827272419772068523019518855244514368487214825239426810919410870370465692094489539431958402965809345332908050051586442153924254555212346305224813712541390232221013170090623321711976318341607794940248242400258586564251610790242948181578609940083294509678286509457283787022987659576189539591107205816593133224067327860714326186294109611679420638112022962134502054444856439979453130481349322314840427175299471412036424720781653241114225357937163107008714131514723397229877153512079110138293322617587489949775981165915996206865596036960326393195533402169487956942364521306831490436638804565350128707254106056950784947267877432414719992605606651267707806520322686225789811634176064813571462422304494039750096110309791342352006212768168970656740916487816120232078570685758684880530525297253108041853144487990197638504698426975468424632636315326327698095650278519271123946275745751215835780855646537295809716363275370459741049908118494308086325530137902857006406829231673754985114856993332804259452904609739026693400197725629356129558367444858746199119364575773549699381101652629086947536700496686289122495549199756260225506907955699525223756294869649892931847650360069512469941848587376316911794274224093286622489382836961297524564430826391927435038370757577475037449889774230972499797746403583016182735140063046432614769435734069424411144079750500992145369259633098462538203935635286519780056159307916762550643811446436994521556523928376824732772715422575893967347763023528812662492140329797936592787145464889100705627406015837885383347029056052029346031976422885605630992996519568383529736702522093009618985063491599575993405832120492054865590022081969984495390071521414061684528186402461864915544604003271955650894354151610049727845151824882392668175279789761411933695547606045001673335896473869929693052079430047124460691911547408747014562750278162432033209720117294041422034426152081015343881080521060714432000347787813196870141412298004936873680456138260904948307373790847029628233069152760440436643545404422574910388204451940752000331462056377446836059723367235016055682382947634018572055986524151912780050099746072665104167156668436275179155626439205782620291785510710096902765889140942801779116667783599831287413415171026285627681215106726881531947573482963701242261396206731850349393677643374107397352621183090353890007268071110941787170025800701745526824880156730005592173268793674856881192113041115588288723057363578681149562289465684885769736264242177874429531045955883638088752931968715361920577131227879748659278904187367790711492211456289941019454548541513447744332834597173571694220442062393854643057844688381782370095715169676163501467586984931352643574755239466061061927464102921724489648873416032117053847319247041930451702995786077252575050230119901660996070038706227524287100643035490006011711751470482585637461201109543424232496810984125080997667439389542588195254804945217331716722951080417535918042782326788113574470736725261821405861897865087128030758343116669927648922406727384692832927795884613533064365749058491365795496336695881444523389465724495629132168829104715360322203614853000747623014554971844250233798427224256480785603585965933495895407182502968254135187783413534667770009849105414737407403199420076579572216022306357094879604015446010692644985224513793767439653186834099774161165106882476808048062761867636214282657024777850481427016896141544103602867987128677101181173513937036829994559402525752806010673720942676746561960215379235845867142266128478616615653851859408753577733410799568173614142838398936291471315875119063578626992910430186295711509803186599009599992616645205362688504678647519117842710828935758368390727638437446955911185718134639224474494162686952737339987233271378568429252014108359870648386856229862162400967574114440672056953360293984912713728186579610094419710894161627377071687369420520118668949170276242307735238942718570348879406500155085255979646974944333518855851844712343858627389743955066843294680822631355465690414859369055664113372023792132815295658660821070657009942644378945751974282624921738616915446533107764592872484835653276389988677712264061830926313054968223145677266898504780829012232502140621956189834142072965567897315811374914117202765993101048265489928836391974616026772723608389438882206694689840646502155113794939376025103938280715678842636047048019279346684398744752179907978104555650718433601328339112616997134356353495904240833014191209458439186731853757468686037952982165715553576342037380490510421568911575500018106256465748785139438169938381780058379557893840967520773717245469622378763125590263887612618168107458954854103499918606524034186841781006565138932233940667401651349626437463105695270209142270826949850938358504295703075117953414972316706203615705773429111944254293193543897611305359313897169007902534989706492677121818934251559890824985854407137086148176251981082844811657458244131904021802837055627645203944094007651083950667923954522375340878383358763168295700378330671204941264973288032817375206811900023335874414274003953486270419961302363603394025702535042835311865878963544606615625681639653987173493956311269793281620800813107331986764707828288169828257795989513351638836789482342331448717727831368864168715543846162208628369224449121842718181261278384498809465274175955607512481693207176792781612465941506803331947508440082693088084192016674515476417721813450820422629754079180183949122174229510044122160614788113282310584748169855724971219041717946702205073239359871279337134262317393644921591741469511718338101605611785871929622943785806167133040133346599215409076305343150533203136368389694882201909172872371323724627368949524244194271233025491556785332374821885225777379793454163347447247336919323298717680239169184534622459801234388142467981100307533790263089528877335423568475259149199405140437226880740696222913884947128709683437781354837128722782326100317119979705910803511419556700463301763191093093223896151891571093900885098662953641292093128048452755811477192508677594817891657695659122314644227930046287197130781518326771401177054099805601082568943209380413767366392836018515852507498750256671983678653859045360154736513431888490240528842662793450434086786256686705623543222546844627403055469559366782246119563573199629900352120984963080663100733573097654413426185500729779419345961191698655609561274925769165238895900650942194495276469269245649779202774682131935268133279648078282524133424879327743420453547677496613784341981070244148303246995506275646976553157386036593342331719477647453045700347919078053922720221865969724341778870632661961453638755390017451516508583398375719008461841952232947001042828422788042607031885026033995240853465938047893134498327878446355463191711620013457521245501112197462423273615432211729907869623437066285383707176580337751018737728205918039440978674560511772735709676731835852944558834759802599117514756200899655099072010844028899688646986784821367573795228414365243701180136157877966126370900593077821975113152781719110326726005850513560717129116966547079954386679824210297117377797585346941465116331364930470552950793824272964178476770335186478661712200698875982213529242613695842138820778405657737041486273765087227070121658138985578529036270569766242500474969132083733744201780034909528162084092159325163739006736656271591024468895949070309110154586340748303909056226402307939899107632236313291705938689195001378065727948006498437702809806756775365858298536709028490333194607158879709871120573224823207787114855457995569023492093450572273588571104105854236474851143723221446236417958373051762890306976646995470399686214576292063143717975795059069273010069865801236536615939589086871661457750308012868884338412982297890187556882882364326793050039639808207316054377883264517694711640747034616500288800380213540143028562431470180783478704157722127423905930124198245773788446204510205711469123333362121520503335469851195871825473862523078722954756133999968127691339144449200523838210240798194269280740594730105113755876961511372582542821346590723337205371691864055772398245102450807775540126466376674945629809943373526436611118704832694134927883992078448393636668163592762470378251202696934553557941800354289548759968757496771164491046989964876961842645824634836923727327218790360928403784526084192306463903538636787024629509200085044502914630579723635655998263413210190814144526562822607844538622628949416738464590339655377376981648935256748665276688918732298331981074854062025190909465880175315312314544465350104514741170796777904376516619757851721428876459722594285698340406232248483585707915191967046942553134638226043050225343962955046376666704087457586330598982441606761351915551513002220682703048415912405728842852865700498191498602176891773240190311382476242209578880052621536402284284787070503459757115697946615357274540638261672438732968524374282740995459949729858342672652559844943951453351128877824233798703516546699279508736948660219382108287232021885294753369104714606965407043740151743522326033763773800627885350614265699816714981721505420274629824456295241738522724012637759065749800833659191368308860841108794227170143941197755758669840039246765053330419469917228969410835429423415834182457440985590060660055849370438269508280115015196399765605661728401914989041660630329739327306007244979143563141897909310921369485106837218863780216964494106479238131405258352201390265315207973365587291736803056215549693428900388449413884154783507311631143180796299457617399792423828821147759216101451319457665439638876888634839073364859591562045505076879278250647654827445519497795667867235699261979320952882418230966204052735338225272220159162010521607551353731100229055263839428720982322549808061879405329520956749428366047556673547096591103252142384617896602913594618547130241532402990342896406989553215208153696549839734747293692365240666356186813539935997858488266777925198446282316468300916094565654766101530454796992920859551075843557977548265609717828668476177615585606405212066505690076972824754808491309836151309443768042229258956106530123287501459828897317122701683794590300056875984471587358969399465989901702154008309564120276756999230084372149439189778102117092249380540417640487376380748792138119182240175438193839786998728089371608236153145067773441232430521523441173827499984411565772752352200200393737203142431774072990259446747847530476424011437639405332498878363025166380373002575998477696558546707839442594347967611519020303292320474138356694616020380296056780947174036095645292721870356530056647710074130102652834740366648473384744628439153249693906448359009034404412051644848076952251951855041266420212737284809205444963050965616712906082462891395794740671514709488485922079857542000352265940684245415722183119185386503073467904150172147747334471435750914931173705630808740941866757354615231736190344399818948451747146321895452621881800219008494997128360847547835822003032695879629057146252796256017902596927962032183742181913862775929943863880033378187607432536868592565357236268713873382324734949148564167485828417648765633748492519771751826043882880460084735842342966725620991766326545114136704974755839349227648040086395504078747585255089688736431692611114820774330927591260403246448723465967027231693722381008077426398622307001873728640703946870291995347241847642966121284827680696491277269021790705730407269665406492236179109519314306057860542087265445749796204502396156432879215539687164529143486410822623851911610417464493584348956502094467141923455871651837440135011377290938946093559712557162912829954705240086825001189026135393445975234815343490240377562452586105586515784729990660833514985914947007168413748968671297900392933150187093289505112761834725707324122214388404140137650383569824081832158881737887874606725612845020519184554564462830777201141921458564807173581048532274958780922957335922862062966501259057212845758319828737547181401254088420157967567565777324553546568207258285238010744785406314832462908672639127432647914933517941605266112288466776320113103756594849692619438594483215646545519897194679321835546646086739778148382954609847683293673461429196612101466494029485468105180430841228098197945378393572582739773293646359476205307075375120051772089960676060006122562724514270707324661298301773575248302676591729817736649640939142794793666307670967322385484296793217519244719683113512101544618175733254150011209894595963429810494230472018193305016084792526368442721690138950339705284112228740597065873758098044270520641930290445879031820121752786469580342943014960517380149933967871279194289589119957962583425490210061206172364575898999363528690955025941672187849199432678349097795981443057656122428904693538420907743995176822229241329684233049076732556726802831106580689978721349799877586775403859897537053542404836942044625368232618061608310431134642187663370937100684819209797979765472027006886872548493761503456939232868825045425886306965454965695812668021431821001136400643573134428556076417056843978417180814139281981265730604387784136625194020649253367585013132490030797878421636107725895052044258982683613779706462234227266679814248162808408513225837897416436859465757590032886609007614315118077736466088215847335892761132172010046896580217334341879758730255246409908206579345195710150188846286300127068574425695582325884887855767619646297738921437103740650034806615081471462191675981780484629866121234835192767812611252272466948182665913154281966699097594524292483569057601134756255330905988042417540141107647155889737914892173614669666973519532893835224474883432263413902844526962058575552562317721560068821880764830680938553460334901741303305910021334962262797718850619252261025117751597754001210554984110431900749868374798469821617054832962347259226590021343857308260222366174382437914985700764333929069988697304142781937375614173398771216111898156026462680360120544665777361355920379899242148221292040593967165743978484517695466064013013446920241132215537186954636643844879631846394785787572596015201088888076609067099374329712643052549758277739349588514265121554436082538273321354500173377284027326094558582725837346328815073715456105207154110943337462947226812415062484999903313691679486158952892389544130217691680798379364101269336996541721500433148105881363215808474035687139795907559918465136495581085216831927535040818436930129410036656829570046649683597798329673889980308740323670420763392116614385339035699938602618641331987118544157674733741229513728923015291595550073596620751788386719482830347839428836023914147672278783297570647554568986493594561192709414462658344487172828862985071616174569110310825865681660200173980675520517723335941269651902154201291081863475726556989093915614040116436250229837390684191706111126934345921243068007515564641735028123531874744805940397124095998479097062214719556328201381933801595125141087983174529972582230695472388361695268038679672695627279113033296362740880753451595333263862934026763914114348544144427791035802525632172085502329496093401682908475051737580694968273783966480901108882799817200413586099503918639086248427569188769811480116078029903711401113319886401097743872311882331736514349868707607143525045444068452788616751091658022418405256064934973039543692863511334075854138376805542644576710482826931183303924111627796701457630028601125150770293813563608095592956972902605797169173016409231404865994002001299120049724120333540008474686630902289303594273463944170913122735557994415739427503981966721149598246897457819827348186157062044134114993631288319603301441223788581019959653234249886949119678401109557558618426459178246915902803561694196343034497563969604117223857711445880685121998193602784525175898887197920144891588496498476237035862688048758773063641968808787856732500362737385606778782477806309034404143393944046070836522458073004926004098668745649446297292218608826604789516217773917140990491334173493590671724544650736453817731748844339212983479358298549627679285942133386441729565022947368052025818699584185350864730175408736933655364462853909630120787770197787308824290809491030925525935501482068253044750835755687877743805707142343799178494865116150932102040803584385196793405070755488299386148258420195342624988510637676113641090543867860712794457961674384913122411952228882154815342935494852945015833632186557552399822203625435335564370487030242574602102358444831974297294997963118860476586477131097381773741085003038344052615572493730006670278171145342248204529899213928221493908038523267662217595163560526399597871297974465664996438934828410556843483088370823109973772857248735451448431896469454553100804063277387104842628349093105335896700056804565094501778836455885839794781520623145479011969226019108468200840107246427704780658942318029558459635298260879594959613515853583783817128862516843788080000788224134428425213945508399294641475469110043795056073986586975324295254673493983251227502208739133530656240845430982953702958212323868075442562174780869495259282962127151080122368492319017117450007834866756052532497363397908796177572428802956073026681028077178647087829011187193299836528621469920984585218998087391580141271530863072029885871393015445323181286511477922935419356292905420649716044917095133083389513655676544498912043421220474619269708404832362281644931718273659012686371630184562107387992652598533136328449393183805333036598538075165551403309031264700981400614308414545348393728020920796313739533448128650682164177007179384251718299956503838932176698482495561069213450189500508171464004197734870843324697534935771582855319415756382391243842926090636439963588789814921366413392911438460263028600383931509826285077019918715326719387136833750988015252667724464536623339424068055872001973812777752782325080487912186387984230288284850997790852989006254211815987325929404875266242025617146799923916559551217540370115185241415243006836096449270191272480359093224295108963134759944009116819054065919644029120161212418810496085728603590534018027691226746330986629632185986013690279491524751727415641486301019474936678713887709874547388035413617996021650191701492333160991881134264061788136435134709617463583607850832120301177251389216796219426551111355384168405399870741334295283078302243314711784405384305372934581050743307879299276061746885613860950777606473077851490971449434833693865657716131056737005200468153854995231617463925590691544459027048054195983186660987071175772985699481374930948433119620167562806379668072233311547335799255859823593859331975629674945491117336320927916874463809283295787891059265153428504434695223483090189970047442536264602013603493385746581669090722514605625475000443208763745191036539778118354164069049469739536834043170091565395610929864017794839081072240253731373592175106669339395079905534268783556608628389304956058146025401591762239135918416185644959244922779761338517172058252062594496252268512327645551918770021757794056106686309572196547251793933178704623051508346530550742382496992266895632824960645625888830083239876504364695955465178519469875068405864054776755480694089506757643678128835751667176151978277421553457534509448762132569033949100645201740882617979699533077926029594383253512631682197831055354029033994598960118889055327478175978851512791180127275454842234215201854347936928833121131336460251747635433992781937434062151057157958890161617599196289241226061073516420382160574496977237619686462858996912724526522408474856461061072126585713500995223477238700156059399473588861090346751585638871624275312582679547796626663933171985038763908586693353909038576236427328777998319417332170530116675712559425423119456089825387256526824189221158275157106231339141395166456981639357690319916569803543834410052909188141008375816419873996374563396730693270048580238273198191346403374446487496840412178877403448513139971928767118481018095756656888084292270496981043980770677075813393052842073604310604781407179234366837278815126800894880798170058503685675519078913815987911724774499629145484292686842329393271727216250095455093225474466021533633994884365464960361276586822615436698058164720200038461630554284940153958759044931521998954621632846115573601147130207285273943550595665972939401522486585518303908006309940126994571476860384361938531318571313322844958654124164067057919867609874201373040575495066050008724599175584033836071216587866348571788078069287268986938169050698675750804368712402698862846414840548145438982025744747056763376056775639672989102802869261693606392310540553074762401821346398978604132664051769996517673175961783562969507082861158075819869707822134182150566405788469279370816199605769440291579207721752760174827401379177507552203980307663594089437611095810559935879225417806615359629229898197427601210111847999463099821727846459643859830496009820890948041005777400980116667359150499053282911532373406698088130965167649480761360313799121853634054006614711465355061034773629939055149883525290741934879035928022326763755873295859203314415718929817127559927433287709336516109353878786762810139496398963709352267873086216377166469146788398764199943708592897866008942130104868767175928183582367545258752971968994915756113538570504238520807745142549934302710650103084112304137233213685342770106566123581548798710117505327432109650171551552902351141211125866953458297311998606207623747008752947572523351657220688761697772731183472371387805477622740288150544457968672288452346277564486652264386510524736985623562795064849459605092082145435363316392075933704994582214619440959678925495415763841577364979461865577212194319179351135711663589673685244803749197385249881933715335386340842228207696849275069841998562727186251454323892611730986069336809551996379893404743887510007366888276293279935857532233859177805130370581747527272132674675001611999087307871775835246188230010463200806608404208527378069389018709148329605565525287161653361104220264108506600009637073135331262718155464520216285976791638465674483955109761613766613567275651480042079340956074009859072312984671203469531288739947949246348470613660945033149568940363222603271766076001012881647830607364973654636009834520999770906538010284780745424515701395219906142425720136820095003462068268909147997639209460077846471155418011114398071042802353637150146824982188441466746723171886800730394626072798353500951496499561261836374531322604795760146659002858999497539859157317847435921400217049746234521664691505418944805221295875691218035299613649094674510859618270404661271540098862977525436297213836847398413985050933786751683928413367101795396676512138713929915487333129979138581320582525432701371717900145342054808897008453728987502205449490544485205697970946843819469042028841763524473471016976016331396026474609944470484088483693814299214861214768447930517375566939102533077076320539340783680265987795796093857005823791732966567329303990034503787248027838314813275817583438377876868153182813308504549976894019979000912452999014192479834995471424422782354795361774967181046748385815184736362579765302615622317935427144998166177938985189762561831051086332145323198083041540159364281595893950653419135568325229394513715248987534277837986245089139609610459974784530830013353631431627945118249584410099875884220391517487697925266483008975127270167985048521048564759128263393513664653360037272549559117343814685688656263472407760327237568417263956636580665203913579815661624161669648551851020324778768736343882523222999631828307921582011645070647874137334969918865312467570546438784468996825981766792092020524961300659069388070895127959934768738351544985257518549225462822772781254939468884411493329396157014399476379826894176446344451575931555618876263249628177668417593064380378003881276452461180442301733333433340032324917636631407369801207429595058271188617801600843979323804785370498246238953737279122845677271232024131787240213622657720374535224094851265385550171631223662289072291729580672051257214879484458508732855965586158674275624995095584465098095837662118111294700908741208320179876676411861186887732442647155743060779572540129702121055972028336926818816194734594865149307546655586051002528019637846926291848813490489455505347426621212360684082403955339365536701667122784428036328671942443593668069323309705890307127299236080522615424272871787844962318966444820654588079240156129418794643023333592244734612047350010356190870417764337580985027050423124976662139692182620057044662619792723064559579913141332838694162764131957296557412211569658313500133771307202505843227237341801773855730598253521742847604870951097951719605369245935396682016178740244100657995401893612203981784112788869381824516097637630220273298267460879585662193143876650273408758250044938970047688950439300597901100439580878447327046413010041081971036189770124381472311134294610039250851505533268354915185956361308049040692672275655675668086094116224076986126375286794609169404665743480844482246322554714968932663726150590062957671484160990904871897270419030249532804611892405048163608988993532275709674612598255526625374419205326342919181962492781415400430690273072376129994333222614612504298076018022444397451001369105178462761049824461558970014459522780530937555362263981311893735528718603534892846460077390546630659475979781051794989160883986367260068506237694746045670326462419925474049622748101472192464909180106202360591896966013121322708535049656168094595347106857185075936837064656306835711437118910878172159893891302311635798556781904936954744158128534837996811697388243455498982649659642064566910093893836378071947318644388127329378076584844027007195155358224106565099468157506720193907779139847410316059217614324597022214603419869560853587513774770957845040239526372137502950224197772345450380282862784217073137349355641162598135321767255292671493130088012347486562651208748974708394572997090364271156419456368579561077704929216212451277320997942485008250515416748575605467017938012580728593503887826143922884721299992437640073081244981314182729510937991759413517783718422077607639724525993464807271190613309385990961939466519464120326875104880615878048869681768054711986493000304694102175797739899584540606562043698903112368999759249339389306927738268536414926851261199417268412767425948840882054094533615688658933202838808831999574331583366191097884946726260191939555544328680658741231209182209210949608294952435097039901963258125964230208651868096488368059992994686006953510213649498607688925962500304630781801040716489379410167170551969641094302956703275542840932528136444179222517817765373357312244445831162807372617803192579495399536674576462268653511164876994679300143108647442199419501270171685931635162860281695373410426866900003742940039138016558301680418633806964671598700515544173814383875998073643434894883595391599091875336289002810001500260643313810103387468278765013054744836346070793197750250138303944269266759822637476885877103926749200074611689637360329360698213538259477292206396287474978782972841202993809275982512510821315236109403759175254227046742587417848584314728329306787213046281775078107949714225930488899035000654934037379058862189059454706321540697690727902103076877501003408132133922304494621547390489373575418465296706726821238423644128796144767969839900179610242991840403622089609250056152682569001224031482975669634750583795265532830296670169254442851479247209554319838497189825909651795812012998544402647391984707861444828466508814081255033566847159369281121182725832952309820087429353311057414381462387725553260314082778726810041200531011290483798906323191629715786717352778971898319150840730088930395375377728958637902076165470737379939025121207710432024905491131447604406218030849442898326574442448499438830993689598402800658526395484599786323827661852690904048360790487750936729474839264373925264722037991032698714022648265061205055670713916079424722169097348707903067429512597478025701341935963973622602143413682087151478430676475455079341519913127968480651790606510286275849453853160138510219097525622775198797591298548101934486307601240490390392009741787019431120155481526100401741387029768575795102697543752882552034559252725533332196053454686189425827645431757104569788588718196592904221617269181759585456975377718880403360517946254822046558265563805828610755473597760217443286956772629179751880793677084323695226832640969720952981654662276990837462441786261935402325091459112023313311854828042716135933271748504238912749467562690419091395184158905377132331795331923150277745859036958482905787808742316099302176507978778796694969296666290076017786196839812971575729745743053658742238529521829042184760255970444638438000349244862792516404461971576050603163812152934119071912187613836526114124353556317485643965721000350617186327993832869134427380917135582776839441758507779008430845009185084819450647766856906744068944437315826362689758399839384942268561125482190598115524287800267214903132487285562277009365104055867022389896310211979290493523724912370871416861410519808954700077426534331015121339742337724484369848779784370960024727924435119323144510076632358681832722270289038552037071202489989640648273245381219176075230483745545376614330724245647303354227148466671105495505665324201220876319087047818946422814704638595229427504401620175248541412987101707641058476781574014626497375829534629695543344517013280412532959502777354410553965845666749565705407043918405545902471017998518598821249070445807755867296414103467614920476238099836296097046886151577259743691796215028853908016944286506781654767592310794402153393591629716759830283062231461812427774200921563464433907858020371066123029572141017007827903693138944271666422114442097273872380271461400596413450712638364987369613634121575497584377799965535996058429591950184962497632361104170341100102684436760041442758343294807071947272036088978905961292062023062647522691612982717029655222940826846315747325175905425165438543344634200680718410577038193208891571543950508843969458577534138508355019434398429025028643278971747570833156939576108938844354206024615585756787086993267004235142302771271274353720954721992212997416789488529697345497894953406461553392296981705357242113845211358900187961665189000661965732591620158885795115188627681962240521311175726180633128904364613956209379330520857834673744844385074077227529921068527900122032689747515788583557348088607095320048350470385204424956390260413024063098394801814984947504239542020251723916704041952209970631420634685153674603132072012965732907143864323645773145754382037823006697254356805889327277181410030514865729817143394975674838718126386820667820332811679254522973612456716005185024016941073145792844269946917431625920482548995465582542529627156773909172402759844348610184045512234874395194738037633388048376062490623027841552647336357003098557697100994891589999154076424318600313345335592170245208656127549990190782142624082702380787514166000709156621383707899757484418204933001538971055442564710433617174965127854588542011892165434063679896194600278345186137717905318033550465663315814525791106073129802335172690677262956945724944938981196259299410672385836343483216602256726600688128091037954473235396024339147745094277611788857206497984322219538838191564063141961443749396176271303715932060696453464440319270761573573629354576481107713902159320533911979934115696871760608184972469514511407905268114849442676512476625390596760847301300263670532595079945638762576463942679964417991972029437175470426922758398901631033251064665721394648988595047348221544975021243127384981022360064262199705841910895904881025728301398822549284928588245189383149677244374570502448816171754552523772506072058183131085419721321009620516759158003263840840782593372408945472473759240790958186009446138267890278741556328974079466615962627846453740797123991495494565168603910410971274719449608818480728860624055607919076334345908485944797937904152262707635712775141881246769420297551290004835966658928639502721319715012936054429266941141554590330831897028011680592402216416593815512055104301085646053358341052429500963800582148654990231417496342467895537702732749663801981932117869380554091486014350384889623739595192202675654604615646672758731161152839104093744925343578813586134556303279473648744433856648201861417956166847346923085344906103758223628530719029970709264391287138489028396718282919915556677746630924003138594110424198403419111830702030253262390949845037251147208473019161633522727669256488622453675171568633082181481029195166429102641151880499049073632434384091580316338050891063493953161383644116260821921542128043395172561035929514350768522758477542000748483116619633582115134019136566612665262327696292288194777252878485951620359947729921348521084897926287031410007686871274534966130385945495280863767090217095423734526436891479000437409080993119938246250539979006828297688888126066440551265864064387697242587035183282798338847670911657954593109492449324596728285931969292217990148561587520955546373287390565818412486337462130669787020755742326523658762616970007573417967415305845670014221507175304752507767118125052862449616731420631610578803530970525087347986941399655773508297339940712301652922779971982595841690849570139155336165018576871753076466207758385621900412893433496053016355528442246226399221878555707225984781112665523130977644058005264691841736266710269527538908518423438865331697896383315772146246499103410855530710952513454845966539316076508245997367136283400756220305890076364599817387710218057702315832241332865473561507665926418508414987888944220933441928750104260280226324348116073485074494099059035692283543802425601241591292643344617273646982946938079517656648317406457413673474791504250622667972224042665028625766865500435877984184698373546801514912415665093685138665550612468870310699271477984166682261742486852204874885013499665393926633431838123185611846412955554474114791416521116038996439290734689270595811929207703516709364209593103931340931475636044499291870080667322092793877278520462550963998273450671981842235325403124616934824605930533692949526031839466978628367134326638900459903547160223913673706012392377533553897189543578954815401290435132416514477001384300498770054861014357059363719920408380821237393588273452145316527126955413188348038652201811581743837162310975228602385530146580162769387060817092860114227081093609716632460302994361687723473383154170745948887149420378439495986129314020236080414776960012688883733962115125198942708470576185980861729259056908058935263752067480757938418434491374539315217232327640981602206316750723827780486609524255351882251578746301315469223064358698264549224723694730898669723495476831398342508768415314345415808158872856479061503074494771807757869748403360880627657899933723506688410259457110016997524401739934391795681486701229937013802910376464649738234406825466050018276715409444551374282408082647088019789596214676072662475165448339158917857539479774073584001304359568952329552024455883586455042467740200791385950268543843403369240459803298027163110361869184754816001153873097541391362777266607843455235249788457868311148526620275489073153586176881310600759890784316268998621388391854034434527978258622316044359802954214465093634320826579243012542381246510311937400764159303901321203428143245205463865088256889919932602670708366444033652468172434666184148232405172647996277979065349517498147748629094181257560935230874154386751109284119063436945814710604154044108195275739991023489488081168415148495687259685473609453168150572244673744830441536270401064724005602708900133971896081782151411158526732526555810547075546530044696465714375809094099248100410324397102769159715968336331618633962261113680969504497862159001136276704494388111469602484441834567003703810077303805506866853074537565183215101588687920243531936647568223413889702711508477600234540467764728756039231976098850905232234935075038459580192023922863070664322210725120406526819131906728649516888341004093529877807145283781561693315264902409350761099059501394980130814058312810423511058377734126377812088197254010334452498779011467866363372985639033362378387033384657151664024363197111703676050024150679262945400883722174255532716749659535509982432298806644729278074757912132679087716270248213317413790514101788466349246334022215948488351803509799348668379894579479383793564832036993812028884195445091055283275490812205489308426235933660794544332875263144145619608424286436047423374208618335564028342334681609623474350397626583623430527641345522257148946255325944770222836572997430734064476449660222452050143551188134033405117583781408915940696553502201521309676609776904500552656991689660390476778974640276083065753268763275088956788127275188981132174772510175219011089751072865363385118636881457456296839438789379614499205985912353813950153407631610122646524312011833151325898464809439513596575835554543170142710796042393166145091548071777858135782995380502078107673486677726374353348352066497219220962085271713724424564435305839211557945813218793753351849915643836397479286279313489787601341861021161027430213024226618909181806128263810193685691746492088968651186318382226323648307308776772202908648482324497956800007810238731835428847268880777952325738771688909702542497758074608615089391613395900217881121095843803008072473417962555243446632366077684724435191130514175471780955507842865336012930938603565459716053755728149201748525478283842408750469492155341753893344910079040171358321254446938297407539312132145317980124733461754305575351424522469706683022112825321029078477618128287029343581377197430429637672371039150813858062785323130619017223285328332698466630843002853448167941127934223792357494189760192892632684137648353498649550978747289987133516828752975577505462235854552914547617189349744283133024609871536420616950986469121655524077645052053967182477011813984137205858782093900037191078754563753497179337341475950727621556394179630510714721457600943082209040532561875564729354255883902653264200169364993593761088810492359996241587263087204980433970489052482385600063641174906514123771697380408352512476540763465734412135515248267402233045339833959117110760840762843918302181622581203335266965216773822305858215937439778142984796370064504230015669458634756421848794654873618376795193932136976391407284439620335838760320482370631567372529830926935822091249633551251258144757590784794969402371203704822428049481400130434554393034405333431548854961407648457665906445225157745974512250021483931623613272774419030881954799693387036222792768042691796187126978441168757041129138645095440663254750716236228446493235959687853794170822446043694338117830844624768478158077930814884556621496379987106707162626300145148743226457179749318578166759414912334940736038921212689012179331034504957655793783493283399335632521863175406841074715701699306583829341142881829915676617099375913859323129292963881249240322452321610996746989696351871859113394688566857104492900303217701262016340119496557865367245032845841560684541398015775415211464854650549014982259715972827044827209060389176479230865630597472463674466205568268655155242522488816488960982877211354385176588858745523409647374635325589745311218277821076605587398816205824127115865075945958440933503716745921360556943955704134085426994136444802110678292603737743521871320802568341917203576869863396831718194084808629234049967537927172210099123843498325756561409671151767723539126064199776510082122692758428408312924701155276294706287772432000304109049489081225445271828829501706960699444791166425125826855443681789944765813055847700777865491996762748355817735904654148563110554230711646711209997455447707675827358872858014817072165849330218940302847282782090114899592665239948198501656566674409388201844371178568933274305071534295780589687682931772041022536380106475345633223227466899575578781640172676871899204950626415231438370667906958992511894230961232413302510109241019597300274644053121855144404944478953939807071987265683390214922163449815293178674716555701139035129628481341092337876970261798945319557059998138638207547278598814413579987100051199684507897354636671281219023016659285182958680563225007327715326708467634946208009030204884454036110417619955162173890007232475887490932849349554773966749447963393141117092730000002047965162725203860074238168785608361137068550646421019033327459925693942222256507358624347597557727010278866583578181719132385664900923264172681174083067073286089436405225739572687006045221385048659678981251919583557680588155023701857961006183639526500803571419771230332431780447384379102769691599516834659776772248790815958594882366086434978451264873277272585813816649505639618438153093290687300531293000552134650822151809788368852543319739293411803546617587055281244652217512675482534633572747402974596071461366953409171740709254743976847398727223477840828403149425439184430933044643703085581960058103891024972668018335384050336201037398853711768026030732940131962118727778989137377791017792881791069968399259051694195991480515991794426854543407285903885099680881547361618641039011198707860932649759166394021096386520357403370288279443002901572719948572055610726128103972889801846821271924441969466043677225584841021787469660762037485050889683365446220294732384718489638722571515933277759735081693748034038610787076487809250441718907123726265688060507457363405038612317485147479515210113322438610526300610878311935983851018121313818879722205338028823722527586878149417132948293349758932162274953178515632818903345514039216380117490950791174106135472080322270254791008256161916557536088805344696896952365605034765061808925582989100781706074171433861522986038198265850786461072377058720276043542944068610461811811328255987990928214940381670938873787364027731930291394669073835530931661628750547611873837967739515923904224637126176207372920808447921103793658101160334299390993017219719605529469633731870473973455057844038844671155940087891727156483771427736669521095871127994909634756529706772035039054095054139691750761634034385589155024662195902670235130952373320385790155589707567809339890380654084288617323274953652996477275911148826256097766309316690280310775763092498240124741581149506468143375134103006614922771652547695198856288780407361883640879571443304272226019289483660066641232197009635700039108117872624169085608606353661645880427397960176686650402692123474535124895064173415865158400432240253033383946142207444060157791345827505384475662249078724190230303580227174931577762442445537930603724318408223415212896662437530292059185068271860850654443462375115393260192566175775147078133869942250406757452613573761386508549126027400290470725909029820639100479261476760918731536432985109190271110193281319784916110861159867130167402521254503167887286165394955799265504233938769030249374278673862916387140507613447876400896271567818201461548688634806401964528239675835841686620796370139631019849565706753656352707259970759731434135951981104519532434367711280409687119217388517689900936421145582880059933148050132361922226059747433526819314299764321629477963057484098697509893422713207225602670498034920600305858255128455820248592029561575141590783605400332415015175467824544802565631201067539171982503497563358143045799404929186674510511835151330751360356160828298143978282028596684807218425228585199331335069322290249794692086974871740077062686794975282338958282527886956428052371359407970327895124406703862962815718888580519529779679050001126320706383630125508392781917728152607904468419422302037226961275595033066751414988084498213766349841690651480546223271351381284617775288714600318228047805261358081617134235876364144819653573275606831338943866364017500450260355129700421299136052653971685376436965041078715565958164766919940619628244999853867604309679427538836995512542033924044417834063306200916801472364957835381538732065690112271328635408647162936004624163674052352824411030952465681114501575853291317940961068143908302875343512519166054560007367464323077186691995479752101429019245224692879766060748021167990592698166200589848077267341106947771093785980944589724297483451410624409386209500619532947695757431890723294831477849308504118154729060218794254762711166670690647300901135382170362789257476561540401926171351899975735733319834248932872797147372745312643137776516952392986873747757271045330105476896547668573576158594404177953701243209379344022442770018146269398036269431584893824561338732653383169573601471982098846163151052089578338032416395727431878057564957634121814470767605221440431005096176131147064242427618040113622160080708474390262705061749918473164152619530283224409485726520581846747264571041285189713172548141209777824869886568270365983664787995344549330557993475186604596818172459470285380374823021153917984676123064356074614256007273017951809147754802538576696314394813194409803319118483715844031094940846361253286473103159243700319347699279608980261152779003069125586390312181910421441424231325536795629108563849120266674770818916800046389401170522794890095946160346282155696328737593294082357501068095276061228504088788356615929972102179387857845178122885274803274153988080835485634921002189716238132028828573264066577420927311326911569921246823090280708503586839587078164516013163402149568803110606282675248854860589594563930641416730142908668159897762974611154877613883885561208725035639933527677158462650293315425663254297666563628080887635056554795104191900605630555745194458700652471513866600506914319692171892824603157832866863947656383605597752583917033186435420886778587143313417717421000339226402190771505622530150230968424948399026264109410468028667854243274308440874305514975655084779808654464196931399022096195109040895285745318741748664072108056215690559923068343314937754123766012343466438196728456867539482231919015071464075941623496196945603724508685491689522018875669100492868277932398053988751232549993865557290136660745646821916550561719165485339725326860697079555007841394872221127281808547791122991499722299368842091270514851983865119731556191465972815357210097430173856172804286689337636233409468254983187980945332283346295224919967285164920135893841725462035676701993281334287064962727722457699060115850936020166269290781939392321243227267733556589508275371830620972187663603991441351430945158002899569574227423263316115766777131579055080126743697483308068725616216301603471831646738154893689506425146764111113482690141477568678186191187897411885877639563778692048035027691741134620895319138683034107357035184643772978053115868142999951828883584668066636463159110335334017105106893129732326901478174250472544531987974241097166963594826281357683759869336103129727134573876310052913523441955134817907452328408804891610783315110269670764062689905639037053716091481041617748399456561835240597786719700591763316227473490234383316866311499336634769061602677600410969934929695946183086898415038665827264012342465201634947129921982894176885000942306990818157261143507770783041858413864275507777171210307011662737339821279557299975655416685330895630276970743331403674519054950830732214440396645781548621880378204009819162755936437240146172033851608919506962096747729307677672083207894637393177646896502986033438069455441025210364882313007649152383149198570470032412967499540794888305234130765779278053806733925503014672899954843733118489196574442119399884151973120675724269803658583203176744327340770512700367625482803702619873170714564731483028118701352672665559543775216074484623617870809050592291116568427786894846234686139216782033089251459200006460327049982089696175208335735042811338088452254364887097564470179795352467131737002664640787541598217311992410364262979606123041418613622228941621287002868128500021809211743437970198636532375796397405404353396069026045322261247178309389198164540015341571853852392984045439794647910815461658305427739860589468212944208770842322882369283492276185286946686176120953646156056004417064099421749276812803891708294974985212844349608159136839959200592240156415713365449331665655586511051200242413071254618062468145009508938012491416726601398653699854219659089473218861534340435247941131832318888733092607167320709881781763994654605293276675346640125924755253723105460304330125841083788012180021478600131532272740099080675147962908058463299840122821033355843708761356715802933407844384806835070645426093183909552538552767288327742745850485723102107083450816318081311402704888278691362566956057087038200073213954562918268676419882674373629367253457845207959107757960652950306412669829094791135835900243793069174731575651329721527006544128609252470854344457720281442461379285777062303396648318541832958545935261451348683417400186664067647028613095040988533376521974916406695223792747520683726858195375926434074114859195333718300913826426604525134461361823728656847091779176238876872866529400710652284055963334423147839562181809777816739431941337225131378141731863354089263145148980444957504047733063047331242419830013008036739948092344261582087514785632865438449032200249237519694491937884124683040336456647624837899492719694946304922728948550469114198905316930889232532256997073986748293086011944380643627227816039561261454830435473297498205849831587360198280530594482070834967786974876273214553587453301498951031150330708726738089915654590958147823529907871943413461946237331888490119709727335295177357322126432733520403803672205352992891096810305653432262893093995837800644926292910708617548778279490422643736408772938399892753253455550354716764877239084930196096919123273583738989605920513430365496856423720185030604695504084564349891560891275122177244761879079851515633156515488861159381388704235576844292214478773970278404204708466740955036536036874941174854029486969762064807183014851085543808823339202796370355608257769450966771552963561019082023387875067833064708600892137403697293712180095906480568843909663499183186712996017353794744624759427718938332680994579900401562479945705428855465189805437491188200976846624273045796768425399825479980617626150832148899694968703366723189984693395398368289926880445326838293933916490982142850644145331972531135027441812118740257472586868964040593632800723152831200869397687489843401011263613785451272498543985394780493419581441590543712935151629450823165559462172395768272427671533868723791758648948978372605924404438241303105855216776959902752828951738623776568543036612298039354707688899568034954301211419408462526280686883203328592556620464960347574887286423666751573269211749018269744300258358929960619655435683193937891576268357217451518618238804883132702829203987348389378167235776276753914798210342811494861882230793948594746264747035138428831740882923112485397707241904127570885338915338563514172316582111396536331099270468871249464961778135831012744841458184887044407285538903158640325907315394314989820045121287884974874852712119844060967829351639960185268467588365984605777578828183880131484525476758157722561824393554802109869483311786019459398533265811786085668824791727558288724762983510991732706842707094529235119144190652258794306530954215468994539652942100551962263678754597249256033719399410116604043192113028934400692674716308656861524909435323208533422508799957647230348175070382569495335741921681498089629611726313122208814122756477390965690406555706953377276243686523421303406967336479472135368023763870173179849111846254382339033754142902203381156065785368676992853402807779924504587860843534193085187234356971362432186371490804707053821564867477834326774014764834512998848177209764725043672104128586467387630263061907289545797825634217991359329923315870219672877728330752580839722164457490661873198318475537762742293495808669419891582719768494788529038854196286607186882676236895887622455201364371244950159637143302656878812966073061480377678577923921595243189281938527443335775286073433057384253425980242164677536291527728430052312003403835227812737334898284019210320446970883511555362064650755055637077314700177615990133835867571597833556378944262783506392740300417351138655094082919432174985476250708655690446676503136158762812335362766080543551397682915041983850071246237774018343853019253811498999953127672108530399155447311766504167204044791086167598526814615860366139908516505183532744330532464736205326394322364530778251883597569858170347477846399865714335156704569144823924138410272973769635312161858558612837822758957874497580471959404937515032725043065378043545782234132820398827646032837411056332843498517363613253913044088980472824210552644136180900094725129458697265382411604794885895640868202668297027758578847062922240180053841659852503960123141765211301974475084023204370139734384304858572688873237239982792371961344256097958046136382706498851707082926805518045505502586307134516495741252837988097715008629322794826155697450147795433087105183005379884621829213160010252398357840162739424158730693758466907723255016926738006525402207398785378440412835876269792764787544885959257517373197039470466561141914828945720138984874696890411235177973153424368429416019011546002018578619192850935162083130297578957572182954486255963223061622972310331531303012711098310069163103321215511017543104725547167110582286613437134422957653496416455440494653747524702555106598982448145057527140338537226030391557305656037283237097382180615532504594098410782403656669186871412317298758569483421083651644765901282229721247797099501667242381998779802276432771798415065009635517681628386171107618475341740737877206417160956457454568787640174487167226145327817615729429881785022602067675872620861338845474274736316374573497553058091544114006192762499117830200456581414781977749545339573934311984180542187483896773457765208494811638874855890469785218152662740490734792933577247716523496028179913468049613417305167520704814875416824647932394726761084253858574933008531298467940283115770706824901702452141896604326065204232198775260554080071835605512045777247592128419044600492790712548024182232238649140850460713385940066925228623069299504062115570250272684264579901518654248335796204927881469462196238533336623616932329638689292213443733697236986021783122946469368544816883966703571093276644083361702748051476852616286861495132028904371418676227064154469543283119995798530671493744037217082813990539283680198241382817370235977866498962295852916381701208893784809222412549836280798976940329433965598560607287287603166233974830315210245225199256678739756843047236533995299451109388427084331122241036796097741330902781405848459949211539394015273385846707073885998485269661285865545813660204949596390819816231402474072166117015818321829826545863707744873877230163560773764883752741372708118168391947670360953196465054479522372084345343492128883604773616903187318288504232323200944767700105962073063424383209599300375553314159840667140977279883202018547778740611783911390206751954095819965473096999975130145537023641933908238404087880140541920564164862521113612453557825423995205558554448331062100206858324524652072720500141432514678271008367473893135589803538084858071780781322618536915669516122100974156545945036015795573483671058056242491073798656232360131046371583497100557320801993071150949859628225527577241564545533198168386196271792337809867911092071497436263051318556678878108527882624034662617840447205687164302275039989876844172783104641729350586316158278110710876776066238860726527728204317446616891007781232255737775219472038109541141503827516477638881402437152497000948794531842541326062258201851861218717049298485285434341484971546699543008809453486397721186966281259928217643612051887339211039285921283694313870502277119620355077184881272445592418057479971376042384747901622206749952566255582041140802532918665518436586234908484382083820517015926283705764762505849109050125628449555189855905711936312057899826711825816957934486006645503177340323932452001130245585463638373489438698328794570242865601466397876432147808625367440474708691188415695792778739067028826296321685208843050267137213365036556236084377096335475123243337755735006753625450531308885721449095193953617738771006627984052914197735615416219243020566388704046898660062642460324138690320870306066437477386107180056001644622189648049265623361180648675076584347170135864452349414287883697694699869077178414579803327554745705672010456095309818362924919082766945993727663573144760249486987137955321958756929357127535415072397066345823202367230329040138518429415096315741629049494155762034181523030222704198195768957565801188374028830095138067507779135194762159538204881780647762351199272053830783106777660316682707052739111744852633274446501286230424838359441136350058343773523665789976399520492440302637830354153038928781687570589643582945115939051595573738443676037348944754071024174726986277080028257654318889949764614368038576239828022828442424703889838272199778045758112906851134096327720816071387456414633669999308881916535448884919990482363055922688982562102721692864351505694572376409613819830180940707883178974782613540436858664092760395240703770586500321868779001403245851050869270545562267126724812940144541357694751199386112101804023608564565320745798466087925380642602070986949101037243303193680373459293142664324775820561179201963728224182901988922406483763627961981944781732303011718768179746716663629690525265618885710441525284274143844890320431210198440394265407695363343766308058149859177977038819087216390424172162362861360443111839505407320573577441351847964274327084495816009099720539367586453339608169700658873142196232052166837746429661176313800569867033655445546247422594822556261211848812273731579452765379386187967982803931050350675083728982178432872456493185746352416383553245760569843138324798951808761321260978691390584211302341842223256537563727932177895371077788018209613338699671196660832886788084293067624878776256652583753679876363845301696961189241265726151909116412643734375038788342248542821041201436204518704675329957629846731501548967227124589611004658997408799725139822589137486454939397797036235486014868334787982462808902273490042169466053707909021934511791342912420499939168800955432458341027466682765881563923458606010994130580583705090657882264139261131298704904538579236290703197175703357272718652359462690791624262795266648631512233453872312568592702442145793966605556560070229545085083661323733234229311896739283122548180849348439380905647835020086936586675146645601998191622816840338049504788521521408006418562203909954559839524748945305295171065370973693670781549655329800756606201379016604958836687876893132887387447464946388766099596331122085313271037838099046627882520936198483911116253994916803218562499421516300006295100473753829535337880441432456300721164580879393380829342548953681090319480225131053238685203532896446620500317770205258844003260621838343730195040023788776268978921781124200303856664745772490763845715886444752287213360895741432133769945013325222979999188605414660707804563466178958641421072290372471781657495283908163776112349743228224077368794252854435589584222846767536416137577836993592709126026726038054890737249190137743482698340809029515557843430499067935852954170374359467977332381867885142340256318210807930475045156089690054907817819676056703619883370629860944688405870595347615019040663627523029497690963041099269621988067545527608725259306017765442441182580018725019793371941670664913475194882619586323586443536295402889547931872733753629876204998677246062468717460205140654668508548358633350132948968229520555125805719659763974296553539074888742369982364722929764086456885464721837586972610538355240363290423252116370770563128917401459398679844538200670742630348562972276887638473568776516630780528850479554818785791458533397442925102271065206650498250277475907774561542483301958783537152466052051901761108023930205572982828795139228823233311765821198663001022742233910510383808318848762010529672020955163811448823678482426513549554800432090390457841053582467041008934047308793098158789474266345540536502426572314722049300838932217459677241778470866067234108398032716231277184681114232710293204130965570709228225682656418147749886408406240396681266226301870160247910375246839252858733370948383719764819144228713425861045054924782927669927737387495634543414740747598121225751928289089997080102184781265566932729306200773072853810547611417441986254043471949878767380085055207139747036219359504410559084780443277966025209446240471558442425730222820490284268902471898196885407531450119763278035423912213817020030450433651268210506012443206413521792021519320960292876829635039274166937263376679212840830945683232848325659728844576548962615205769478488379244419391456966899273233732862815535197833212609427186998141275995246090268803538826254996675365751651292463672912042011988008982922700669393769683719646358163025185655363278927776092479580385196311495861440927074326365498263292821593462359697190169679382395285612909812666170843662701099540606538074987338503289735008761459750469442656686741131059684870258380799807287776827974822824398304990030201737860304701058746409761678754373781501857202437466477211454997912500807374697225212341517035784825970197198441042174690972552331481828023122253959628006461573654879624193085978594157084434863450993735450708751943079118527296684268359283806220106988684761082525933084420661580072758987509977313916037369746914386066650177666927256169075975566400959872380100038267370710393128865462133694611245700810025987225663634962404460566981980165775440989481920301459877438908128388388319486740803729882673927717935893647115856379569258106740688717272520877321959694349974376634734569682326032751579565143523139594243584333659084033341579161965762333408161846678600440362248225756999374699656809359232507645219168069543841361910311931150980067857154707701278027702449587827686526901971622869314170423880506894790869589053052880791781712627797169065256789322683383910232741798006797555265614241145956959486712418873377632334881418633008383466770212166172722181036865817369020927523718198364358870246355970507668294460083589647972745600502700823718317945849485987234477570061107185653642592065801818872900172444372182190456713465890699769239159038761918900233417447640669714009253492410112903849744210927010433604913496179465974324484041375412649806840152352990797924146724895090981107285644489218320502872596737714363047841099298107178233247502510424220779811130518449963479634373232080350890419519165537791593104076755607033050909605297831672778183940757875703491901410623224281420247338522220939251019534433803508074604437061351479152436937474153504080690284778384152044653249272236132383484776447324543830320677575795631322742221890003122304561214686130037549688103067116560649987324555931728426410891300448883367350826514767676284505830692997144483867518289938517636816488432735000268842479739024009183043856496728888616288305587087665018420774757304695700746394337053520759494204419389508873304182277004156818449574051687489821141393470955105292037230551370745838176011791688580182555434394107797002996938397119759807686888381706682720805230966360548258802578984007730922615678355448931097275600683303614235830014964130739519292700946777363142149566673224529525297140881553198648413618730007778383370923745490250886951362779714856790593079963549759460037159983172946337305892475752855318108635124059146480644497404974162019081715473214679974389297870808801229866358777698256232172076708023244593605436295163280876615102972539600973124837384522751254067192878253189379557183262107346573725385711311823793891150890984901659811754933300429787007369417276950300086369789939999089268358713208600832235850515424966210942822935316429392783347660752589831440671430982610623570222425452945030619660783842795153039573369520404365997677694414561984626161012162513179070937515263437033619121481931845115987050623617664601659198881631126940856838995156477112653803116178055487638005550823729123392179350546276597022327948017354276101110527037508962338270251378849767238594658815377088592823387972040628470168130738027350831102370550530405739386567490079705611834025196714684003716365314251714166576371754051784420513043538348953861361810445620706589725578570985034850990598482341882877312156660814029217393550340033244651293222441436481653278403657023283884160624350992087470345305820252411932669100612469695971999009382754399919755526374989002034768713588134119076522704744185800960253611276577432410803026855057992919995576697053853295828641770562308124908709770934931378370425964492817574456614078299714191137594190377144232395284638912400932577648686127250148191116690984587885649360667040574841577422392807921455081276662363402603313436503717435961994766367850083028682788945186135373663301068521263099342827362750873075811385375970122167399063625355919583822387389146381381366030242750105115191759449645177187353306784053792011906178434686241613810209082865776890005007250161915738963760953922515043065075026714161227778784395461092178363029005066052767489832659662546524933650965006971231721190462314427876892549538258258128918742871626746360261033511706103356588164495830153726521998386073905071211257034060604709492318682797496101301515959714274299564150688006651298339456424731773855484348804749797104731229651687554660616976558668355636129904690424259907206400993049465607306632586741986154316946025542593465418500973055168817011714429245803560158859453796343875155233530480910702225001625037179174901851554400619154080342779564296957308441501472337096923940774712488006112202393012689557819208641181577374703299791524334293946909072542952539091080192605778325091820367502140268055584942844446199248807459688409845726315998841359534128953909592392415371793250075970360147130391104549600281719001303289734280031331100083165450374153924443959684487240631733154114634644495820737409527306793705741543660279257464325263671199018456404663816872830177126192204411733168455637752338172916115748942675498674948622059075526349431943937160199056703256279469112201655072985086703680021950651139757223756005436912940912421712565314409212640804422779787938203193561955531675520589096073056824214503100017113834978161048017589131499083495049212561541520489214140287632313840732451515115783776539768811014477795851172112646449191686821564787301937932596244753446965229580065781412852437044125841560815976794566364069445955693790740159985499609503355293391185230687376607065611873460832209819527772620720275298148299086512942604338305539770324089339604401601434852277833931645513443865375878297622895326850111746487468248293807387956909727937457921453896438023931958271826749700699341106893357014304174023234843826034439847548690997603407731533757112280479095885530786663329238232977664510591308228755604033556851650200147183655338114660528914022470088614785440255277460681580354547592176064554773366088122403598821613262530767884934387761899286216626114900363301769375699186832546420308847774845367481951324576758368992434532468641673459718190441624261508889781583970595525141632562341645277773125063293237730088714662304180314183919540878596445408232026439515547015378415006339534666939596480649949255712126819656487407632682388164785537803110478514740920736780505179162282624876408271213638339662696722144313881854225777884492788692149359594626414835432463430646498936127626616006239877851466466574924528820088771336326079723368774540727198767446257654663913478080703655959951165560510214599465359473098742519209559164213225590423621414511833283813039557496666981783487581025898940137686833370641416717377605558483490029488938407281013165136994240489723084822713339176349719239929732490533820679636158126546913422631850789630086171499564139086549985658537412404597450662775260860704563322798807391324881998454760765688322003806263703512718897405689863114441982764420743926207838848796880078628929252940252678251028761935387858528194337080655595116613312435686340819271970886954962024745361851646545060044426803788506814013527780937750628537221207207321100757370016628260693765176505287343070095846746326665639427460483713676099798503949091896562255509418352698839505239452057382073922745176062319384682863910681016048748092432900144572875430951142755970648947822472220224163212266738671218362064137043265379131322147108130469778310154241480025202504810943916955201901201328286308770823073253932802712783916889339772126994277831435101168104699775717654225888069795033795654237338621989292619894905222963357617457592420741352753290532184588475089261733063442576821095836732649015589332034442367064383687262846573533346140974413380993045048499317974997428603056931914379172994774873539551925582282674401517900585354594234914415945208882891971327972887836993963713381443267382943117025576334209225674533170169857337920621483522997616174504310359998464357779959503804127473435642148680660995132991630093641185624004424727055564986214912700915143250897837214657464564282558013110787913998413876947209372711495910345188671190362685933901390595402829865819049623654371694039098875857449046158473460789983093261163772491824988712236740403868586260494548443159386334263011739460992163191622405949298992234049525179159169792867849907648628562690989378084377298324429039868857208732848716863130752890416857899657611473072233986430142025922625792182575977999396921400497629850369889238342395199992129705896814660688178856650190740140027872797869112066560056565347218438764253641468529745529123019880450933973176408500150899228916023070222452516308328545469151671160182300115596664719744635530743126939325154065335971888196214692503807970794653983925211503936294289478300876731159431891443334050737623096301580201691448331217693493915969102107859948053968534775640581761860944692584620529336857004715237060913489918892310051261258022336725216929847048808133386645534033776081730336550359394133914766422578555848120740924632432287129415352138739084240817522329042903631549673334921319002291715361040519150223539811904771810921294031761258483732913377028579311120230676273471964437749805439132666382397015512104729662570598426494973942637373657509302918242539653312925118570294431066082442342984621442003305318261752189987774610560502703133102748914986952488364110716600255606478143307600793426940613049766819936422211286617306047448614970127721984205515426509764419990420232407812888945316085285072268428419914540079966881318442557850603759935651162359427948269331761815422336593191102531372037643233536867062867205065453275011328033929694734053750740423063625182184772325551066299804152677684091583972805343705855832228791154333013702582952191644123452067098896690956454194681013683758000845676423742370992200333614519057837738671943184755902018036755816751641058360259842250592279709366259029509478074614429773898779634226809789680574185069332341491312211841739136203584028053209129607114996683744979918566751188293451070076389921686387126947602773249364515826598393177189575114725981434984898808470196704692753194859103049721492110909309432277047201863239883980438025831189195951955234080430875411196039572324405974446052730182194041142862361153521699451552779615900506191309998970945734158194646312936757290610907176428897211943355878932551942901109808757690511725333978964447262465119638319839838569102087726559633740502384550783669735003232110186058083832575649216514138863147867924798211531977517052593431967189356230646628431630689758892948336904672683129844933141359509457677296703656553509622104825061436166014209570318491302485931104102577045560164958872358819143644843578333139136688324533951010051872922970399786108398951015159175553999439347052233414832511877245864620342211709972714977581342309309067108245128173160814929798538868178914485496761358799695297312344534491554868755986598526315495484184498838123036568623299362102669344771188765308827186226974921322108420158538605763267783128996784377403587943602131617229199843193133309537148212647961115270795420085250832775918799219266953574730908782126874496803998803338496486679033011647740682286777959964623654455201584253070371823420272903262167224949357558986781967886124242905931696478914946714339657543868936760067249057114405818398469627169266410605888934037303365390192260758407782230252858763035148779327650943689463941594213529221780234197530304634845119533135569930452159687236919236262206013431649991876533298499355766117657330917467527411781589598668987447171004638616178914764271921050100110924590749040300411616129512291668894889700667218744651360669117140698374712523457539439295141968706651231309976783768958630944479020274350599666278139954853080440506281686930448493753544362762502192446538495966130935978909245370628136842891065557152834621656575632462246018288937648207229808547498688522123370073329423136814716905615254241498175479841634707761292199907756709706268373464054078255204110000949866541823183896714337695983254210803870566740250158502946670686293283937759621850010119917354741872410913206309670809512923475793232793650769108650995844015711928677794936603718035764832082432123982264299936700798670808439267336575089926400327696321626990605178166533952312945861727898549567820118162023578698161610738738910443214061711010534618662823375195153103534443784383758129507274282029366481178348997059249748981705878237490198013228351636927274441442224973129213272594197629303137745732309198967744500074374052373728220145213343553213507769376111178196833431037857892852937891262703115832231687352999316761188506238243257478909545155811584958243473281589837074632214305520667130960900553314438865324641114274837383050386556802914230468419557361406519832013488735657316355336412515748533781847543068015872972569165226682031355456119469235005552431675130891776865310650593905685538627573607914056782832188252289317583160282245757357194345240036379314881718904958466518797013717914730573860315313255510492891153051767194993044428442491080189643025893295687202308915224641810378885495107392325515057058746703024886613053619872828404151105430233769577740250370662538085309708063169518713127386400712016375117458862552493762675108328516949682083708773042843270864559962430830649978021829892538431993220210077221591998251889241476371250113480775659225193255183230653472502969361826482548047965804560907968485143118545304338543408989721990290655791288589887834982601303904931204179563960781167085610646796767500165145195667500719161499071000611963083280304561540727804373846607289096644814986225744971097790782399296056967267314928438491085188379536605739475449182318871471679536595065104966874513370112879903457004941270295530902966128847573717117607136909476888631991185981437830268197429738485062475851000237452010390313909081807480877906106814599386998493866106490083937662844694630745442751633365492033808233730445336026642954887340342778408986456371248656059834398405213823281663606890099828314658645187108900197394664489222405352854850501429489721247047081967374298746920600427343175138411268263052197562656340463333500902555395736429224649298776599417194658653890025212536718075392902900941630027804789318607144105831944524295441285249538208399002450637687902902559920320148273721104220608464886351085390661314845485511565909154884149479731829756483828673007669999445487858268724817006227118213949448153166247617470177422138684429261527275366561623119230618204034023631738640413575185191580074731195518037255662816840020029450566428899028026727530259399985773280860168171174339521277946042507865357987087923380128985345206247151204098402266357902317342030024107988644871247242071384312198851894835304424202740741638366167084037736989453197254380953556523407321786377060328170358202589199902737256281116513982921428543407162751821837608617371201874823131490583730806363224641026669428762252828052188882590318279439014497834516011104701327704987248121030943371104059695895759778159118643376283273872260543012468098142013742057373122292742061635173706514338483304126634020834225139941808783839475142764106284988151726152257914484957767630914419437220553964746782304559959665110525774149039619900765161450089473462705348703168069014934725865472982194269263469094463473751246895794008522742955756199265458481948912404298954583203280422389025420220903636394071923861354370200014995157856046776242408313747312623997531916046579866209473616802630714341311552916835753053578130129089914672967959910753597715215812982459505412025538737100999219723648999227244566986139278500287268564236399750442874852663533160857196816338174533237563891905583633137871315861160348580746240443670871694642386937956578121908671414519284556050475954545370058756544511145783881680383666770421988135967559582513151433748195929595779339590050576383932514181140339655479694253017932742287483026201341402283936520571344822115136743931800774024531651693736932296823722145667646047210868340489928668762801151356690031440706455733098836578431059344866026040261962172704305217830740232278767401651376915227963249150502332714746282533727331044707486544259519797525456438382301997966316851360131320974871217490859632755690354967497776341109850323898063268262458845256196971357085671874422548339512655974543383086422289965738300839801253485930819956332828955403013759985078011841519363439448824650624332459506905483835682668422746840201230695138972730081137813891022280437550324853014367456984116204273864837351126870062761245725217805818363113160116537787198870480290705546031418836174472890293009485145065666518059551718927204060323525139359612814271843346489123829313818175421212617426761613902221407013985700084563374977081168822243626344778915222804793929445619583552306921802366036430834443806729264531226950216404040681342640931231395708451960246030044875761926141187541794385899410381986818848947002260121057316313241547365720892072684523664911785424320126324122035261316134628787631921305393978403322670429496048891135179487959190024164350581632865122171071892782683663106902576154075153551109555850385979224823948241612943813986498158856657596552278547797782956287362764023125525310129788784776242256774577606851361147802788348009903936421084444378050970496642544387547941291175049035013160246182256982772839956752365890001351174505750965690750469714084283202625603370430366407911376489081912735352441409934086378987915787735943908088557762572645496053292050760009412191308341601331040971719738786849394526813741728884926279951622926931279745974843501675985725764143945419718661722103020057833592581457623739156764220421080939168846203934077100468733273736944014050024468356252984958460779201636433540027549686427923879950629522252256457036566303157356983541367828335450587225855092408569997304689838435573667589379032898157663239033329149235521375959613677898663927595346778762079732270389769376609161563696790198728730728419018573229909881348064426319593725369670955860722718369664425221889308175594517370865191445230342339056326238580176885584892682295238664100259575764402122491600564106810744633393479262454243712950849921291623318501137527637936873402438526408295473509422613126577886638698276382183270698566341586372352887917553224441219722410430526009893027245834958035613191700819234895740529964730931849884304470197319292294788132533378368380436107325083345981865995431777416857900856057072894643082343827427821906681318770715901828814358889890238504074946425733827402241114551997405350117456344957090242728336932718441923765300885792453685593775261124256071761724335566115758305562302993773381285844055262811375359349900503007180807849061908528908365761826086825228109103646015834696570747357004105743115726731605479465699838785379128285656095989016659421614621160504080904200162465261109177737444407836996237749852482690899684632784346281194176629823514275954351510784925495471243654631278096108083409101368407448060503438828416140259169847980223392367470681028351360360518434098433479845207485415078697866846290778322195848844535214181975806551950910111376730803667743204747754609573540551584564039223140680289870234717546265881540816172455031429913989171785100258281575632640279017504766249011735620299964833295371290486672436189809860613122837384032008711478990459163547982926926431622531104637353185343995028324725048201748637228130819737103040643925841221959731451722509411356811188764394695330491294739752288826854816279393467831425021766650601889430783787547185149270600663748613922539678254765231314305995163462672424744204333917827941085253896572885297621829935116400162557912177677734337884989666599284885224599335335770936700688317946360992060707253765792221183429199925394820673848503240611133442065004771717211699121190109996427966090749371441031822737328851456342551589934761077383811695807335375086032128929270435860293180409004755702618075552632118443326199343162086059643108453534287589193145111469577089421567471405067302492146872573885535471745616064632629316999904109066872361468555957664345908002265313965008158778419579997493238957622106223211522185079014842943420400582556995255768782279275370026697315301009721939893143326533533248304117112022199903472580444616650179532146600711380774105391031393163140212069382295603988340957620549541310956372481209560789923706832748883201221492021100608944185043993146856420666441039133670071612244426719027599462826888419204658863823505283402365080712937218335692581969151676818845777202192826006728920727721506080192063723457560376413755447376786022392961760712884856178324687544808525275118068142073201185626924900017479519035593810643197832865278651068363632716679464439065299714420270127912256468699691284069644301186775093541035173549965555058946506524276813563128571984793193132340218568993468515949902354647439472146959360687263319947303226919019508178654336626982254169428965452530509592115598124725335325706383637326167955746651634290371548834510983226867751139601541994828629110440675152249118548393404774120178848559485118122762043603777952180048915612142727568876155856836359514723429114281598569998274713884288922507072309109891367550604804188197984267798409581156371082291758645582989628054577676567829605982810745883652166892952138416753028312064790517799771160468118964662310800964288430805461702661703300383492904592606261961913519573759967955859939141978901120612540131145300841827314427658580476617654510281533169211024311616357311012060865011242925884491830910682910686470655522022706607902538848607449068428996322519781617853383883358211713523576570696133130307492909361576757211502871581505299343230119550173963117097651324146185611592211166025777453133907174634376052208687283134113456662295532677217966612299353424040966573905878916138702639239404766974940879614893307291001216352007706292733769773587779929870251786723692978611864761435407812636747950944000828683093334028457946514074825538955052164801183492307428474392029597991750262184525435807834495048818000094292566592654120284790906883859030398963115354891222793852203560730244901797479050106686948712486577279419293314317955149798237607296354776719053072718262614001416193057064089470180680723820640177724220434242156482349519495729735699632927127903091459662653105997188373563671872408093511973742604732584783793979718136687937036862260422072366503195081844818818264298601034088438629691910970966856064480796709990831599887202850194641864968604801616250435319249501216437319925865864175771586685904298458417082474230135140526286266688191006634376579219005984443317901968283616913375250390244406128794074212289608327700968428346205904577556263064755996835986591700985533306219850156109924061095720647059435169816840820659512820137635783247272311201044088554873103933809307182494791509402842808568727617545830472503687062289037711473569272024702335339244591360762919615187714740077729344857657982863923435103389564761729446032709089046214984651738629262108879982971100094231450866326587871626064840080836729797371727294102370258868701176084911637715771409454763880614152095720904789151396943508655425691363032867619262797603271882645991513116853110740537789534640915166412809110350614936363901165193201275418808103921162648758197802409532937672199639364668014598382941248323655882294949819484440566816417930702711022754199374814527463060386704845291662552960009655138838052732202841767904110224460202683998389836650661840518445270918092453779548524455381187735182837186995603016303796965769461693125645005144587886435797253655336923950992067247283443518240288240430559470543060916017566660748059153156431639897122447476168235627588604088373670288535050386520752308135270661570339309011666800945055376226274506771189462350942221690387788723092539494947616071180482802617142708076733504627523805084773619964627542337076467848898749393860214727189913566670983999633782175484423725031195024357383467511240410434516079508599868249445965621855478723700294584073578326268093870015867920507309590175947139969729962222418447759023184026783166810941703965545453274809317489914485647296928995348583447607049215335867635767979230203038395124237094277536382098722690808248284925015942278874662442839977098325117152024258075205473583015307840388049360251386847945956723848971944895310252374906127211985506031578841541468724713519733684539982130667725030631837684772087332345221368109943537103553854081522834871015293280685105010004129236840488962441594064502158103706450165206820873268144622383041633141442593092769278537072533401477630179080440632541117769107267914379462573562024369345312812022365497725669128375427173829139474812318374260508978492654803726728070904366486727082594789704270599634642036680697168354433665077334741351804500208075394826166119789786039755321817343538227464451684241488197059249284585887812138711272378816797696873597778665531412284648742731265244236671984447332518600043681346234538336491064235049267802147441541489380294197717810292640757025484876634132104065645287961323609363455408388183638540163821700530859300721156039209429583335516347709513318686442749707571645457361981727869365482170877785256215844791936452977648354777967352581547499467202814625102647110177344745781457404074751021725212547824713321134301037136265062912699834464433385296757417430680326976221277084378564690028147854834703541861223677474676609601392095886529769270666010581413316791774701222167603595648584901547049144170880119541921749531806103042653209565667293722967539592374968557629842984531407108123013130248905087576581103666978895928883858298512587532579174854009915249185687394685658709524778127369070206849536096308338863868544514134333500715351153755992311702944351788405970374002219951572213084623968070165089355052570841818255125093806181552678413547850678376100240387181049505245468216150556833929520623028043565295510579740870491993674283597873363382899256066153169848326302524383968949259229704970527533901979407504998680396194180900342270174446630697533144539165688317138611824655175140436421979403057113979853143426986917761486111279794193409216315450434638320386253352028537338224414795197863515854127802720072538298155407793516695649877132597250500237563669959796306922710012418323100935924170005486508290946556677893771071213147376148977100642282352661710848150318585004049038658718558484743080596048054937344173029716100606938155387305547349087585383548051636244706300129822473854805534019178725223463705910213710845526402735029483585258690434431531220776736196849046210139442216180325487386326354073543988781645926809896159517313281450210206603916393404558445957169553620086281648322887348408901386240444085317631769561669029877656224401842274437295544835288493701707676926575720767332637129274143593012813207258637100761832871532632741466619881405954885881798610201725471914967747608412943254236015723342450366144247842944400986357607700179210470789946790740039732203967406165188057729039742474058174546014401341521154344132075120648020296135172955492367266649078899876887099615712019788750866468903845861604280803782259155993493916196993345064840817621658662814456230278797205685994779296846132423255779521929484426512724322417214237494361606016700915650295252288394723157165797962121866746683787901096095561014403045513687549827949106881577491949206493256316004353829519340890425934538555607661539533109331423106516042980782746219798710932666301682281646909275040027447025811525182559280847720229558083275371224013114382587975914549293510907745092738947159093853865089890397968541535251094345401981057987913462297790810590308363543698808487201031303900053810748163826538344370634529266994490442663245725984149710854817853089878454383811311609328132144222735512117341616114394343354624440283149636641687553016500710713272601920637327011372210280804531013335977602341346691532731668894610178981064516666027780757068595093037605550880678930399608583837687166702145757968858280528680207014534496407012343547022442494809312578704988822579616070500384078315557590158934598063930401047062468995532405802735963415557993423184451239163451918477764429707845655180659655003624586848578002635480138762050500785145441645346392986333249569808819591538231241053050360424091829894267981811424245792028546735999708135780217308545473423969792596193007998448683416359197285294013438229632065488137231768358620948226846141019845610638474939077580545648610135121345558121151736339570705770598896413638109661447445687803106443658975902205880782114774021483565576551969284551368550143363760868093989968300697236050841474625990304534427609634162430632885657953898504933383635309732461070719081699563122153584311769296101109170923451446825189133826293528423395452155714006127878418244154329886739811919529973825334975619979906904665091076189992706359933879895107153843533715433061116940002824507128113582290575586298206921608565287794489681247226157455278538822698812186352250815360354501480192363780204366908535180500961881435411222845277969601739519838468115332980398630093993109628167682321038032353381315364482787822592152008461297846983253482758133938612719179466967048362778688391668689931827780163022170119950945263019746829457189623062652812870931681158244354537125767853365926751258096491363701183035986481566275518819114352175772252428007914265343482066328620950199577664098546949189540607330554197551151832612279142193312942051751536768522339014913573719451425666079512924156975075789003362174816971141566067688182976442448988515530324758002185190440364528331043582242029186803625836390652913555600729160851327496026912920983190694961887343956933766662983408017275009617295310640845029498615763766931847576191422692233329617043494594982425512121333864071079386080427370403343974021681897151715802882078547749784577693832193300851930404266699172982720005328262831837448279405250472460353097857298769589433282149386721057750947733804008851011957300108829219319445518340778888447501037630965838056133006926009809323242018030365966870624810278175751969688742857896817903628472509199013872896053972895424377930919557893879971182835440405491654642298601547063879875869196006104648561127825957744180291502694378781139599691426090381287903883974376028477390766662711369420997294368911053214407960760418377237826273891800098236889557999788459496435043404402460311116065913369633439891603326765594638582564504624026881982691972022274365041039740081833412233800791805535614594455352735535707806682046011995332113796958939374498899469694020144540142179489542370913177397198706800048289467481700906422986341983055965281744139510403400046757139164596952323564720355553055894562536892451100655090777398853154963309986752549483377714683116534868504066812767320956416300981119240652347838640783801189820611787581718256099897063346992141490990963863673909200341325750811850768615282165255376604089849862671373676558641990580389964933952553004291916756398118102064777309203774018283707312097661275514479657848003660412227200927537348130890371888762395824548736557403444683947559400345145421218424080160953774982251353309167310868917633897907335034919462323698152113411419863949586154771302579671997382758629385742410331802991211332179981958157504538252893616500569857969225511696635807659215609771041591342258006523899816606846561719277766933829733678365082597622647977929381573671895003722785934393191556168850965944551520934992818689450376546438611489953510424985013951904147886717288790932380658874567163818757443340841372965467712746861660499819573631330569394008645773511697513487968192936464081703156936594246732878723673752008609507148525344180530786990467076926459707959655791601627465884110827108922629255594484530369176461201185636837241775290087831934429375981947077850582510420946010525094605648989690446525597692882415060551782966802733537057056523210599184288763177465757712814053827573530710830352654815497961774915367858418225183224156013514017283671904871433829193555459197552787365292155015972225749783031624129030290642950090549649755477123251354195129586132766892657851849643093008697345130786471839861470469748244520028148619692175095720731823513965328465107640855649540134703351365495169653277943350488130799969938723726805094421621480476191338347643387079613752425981338399744936904238485410646675165731975393432671457144199847642919590834995600218709053846314153483483613960611115085022381905685063165870326316102285953831458397971110676818360725062616895349697525245888548981978257519400547784097983145117020978798092921584854457241550070304674861828258373739656552930362107079300461994454583601613754354147775192289532708011128503770751758554344219791091423836159213614441104268504316486366492895489740413905694298794027098399206392274128855382656070594616819556421554081326057706780118083250939956819494762022817783718216379398142951766429610461832398158523191989037865162024639708079668746865505562341019493761038107918738017772764459015881298964305793036366301160840961063482678782789320034206666329929936381798186993673886839276294849391958049940761116854931979231329067624140451736618862889139479314005836227392773908420247973072518821601520261659523427514816455025009434506281682218267873849013739648804138432597601264005360330607547691263478245834709574909635756348901264221851310839327010309331109691213166690926906004132747968123472761057329823117210843394469335935815889571713013233372429123408872399043350097063681850851035439583386996319853909951930971166857085503959766317354722523561168364826909403915435767059832363583468450435026182950740664256331039639893263355091988149576524192967534904297443542130952915016592027661574740861391698863576397086123827447503559206915436511521226674208588548349412501488993697451680238912065261218179457103220828819537358267196134348958094140289588374485237921324217279533572106691483188486362069401883036911533264330278522625105317394889234843535972764248497004564316251744285617005636581241952546617096110436421136681730617917480800437147017015721689203557035181751171795702963926551742764971436224632798725928592352189176224838690759877739313020795574233057232245078596266695696793655773661775354160958114052203638937656223967457128462545192194911840052698769755940884555807365648444596861281544285428153561727071251180932114480408057501839224498639803098560834309268540527146486602147158740007185846359135417871624872243308173727380657176220270184831105894203232152197516483038760024828705132169640736237213966811365750552450530293949333264097280101150757445536965145800255483043225528032097755898253205470007527483298800262022129161372725030091249530133849067067996873620413644117631918972208472368726351738341834497560048288082029060727446222907123490761933736560762506604921446466650378893169850408362390675413113221051666167258668702585722274652845326214364730969708374083465522418263231457462468569172445210380262757870826760081845188956242050356950344348266017620056806720476769143622524392159188115704890762712381059348096838116923745819368050315472864889385885012873672211330001778774296036156501094927409407021393815620609438501215067327989647090092237877527790584900563415704568869808122844908046902975118590411404998073843092204076892478405215973801129467051001150053648919149862775091913857517704636628219491298823683089901908266300447334054429713984383897030080459111896188090403677442036297273646333315164105817835631869832528887902164819439744099941153057200513315313840350258099223071325762644779095074801552619468866347297992307349849145348053308203177638080545278657441233193491496683587604315301864249106629251394705560316466861502478544977063629509758527813759810571288992837329493594551543721419608275638356725249169919319397580297176156482099508577370471888979337739066318941064987711754621208247238069995690974041044129308256664268129699421391450260677125855558730540618410071149148331463587185077713901420741915119310016911400315646856425477346232600290942034016174581196830263113534817742833851441240408408194880194394029499731405815308324692374538497498504430152451898147888724158835725446400129991498603529746539150982370057101725573568043277727302393994859575045295124268363725307200107973447488724468103528776075564163802074973518708225083219723466341662037550076568086090844936442285303923839716847631685745764034499344261549213589988711904469281781668384541750796105461293680385350568048609231816036562653948325046616805476928764312309678726010915380744335718899523592131300422152864904060252461004418636537362708205665992546665029786428200887927204186603094112422784143719127765440581468928833352409453419829490494401996101685295200286579386332880939811312488305629281121251168209657341320131038052251758210418197791864434016503410376272944560614792670914701418417205645785297995937853023474272356436599035488388474069611217023223531748560565176985926736362317324808931843429746384718419360264326103808675804390345828339224351927783123549221778304377189479211408876417715076138661508843110173289990997358894928330119349023736032863653456093231523593809400379825159373658571704446926146355232901829293206140378690911704321037071080362150153319516376155147250116647762216287323120900161548866818338004675403523340048041849653892446230816899612455654223855276585773097432859407424393817503840874790797119314036768092594967409013352149521060480670306654659546565916679270514839191824702901740689886100325572857513195409802906824705991674505885650921470240423877333213831915741330799064392795944482788899055445262677710570747218767625884501396825921369224621431493349878221130567551958057543234322284004784623190868119454764574937641072486418390319820258001287647725301816573424229069946394432831950280314678411315993170640819811955994041592875428395949582594795112965028049855888387950328656540051503036930381250813534435038589591686839350829142399992765630123144784356538046722287547379389888919611166237273199388564471713789282025166259524893002762795002744692498224154718643050166612697401825117847223440355016079158594938044488524107803340409077764773949862635370582325612032500149348363524178724737220189421614295438267593247900278192984812126822086595120910348527513546351058364899303974283236234155656084391706270196649121518663313019383346577363737483494092650193649823846022650017365528863053724619704733131783758682896488591593985647291634970199243314686945066900487945900270807188532916208347378880292623671303145467076546391421716383775295317689767459037510384325642390013635119626803537365635244417298494218911600749461892392754058217153759233078487466724000235422634180358374690526701481369151448593997881540701326185226664380525145986360859696246806034192616594377589639757235042175740966750022721041193472623418907085986803079083927103191592049138858538261962696597544879096592244605235273190633998457387310236655501908572897996625548812250208685496890577081913480513126510278152325174746116525916822654742847783487429488392646617088921457613365904261840940868475418118361669624610147723202995029808353804349785103899683395529839293768286108766030460300301338385574890250576840418708212261232476277415971233335554971731110483451526772482537413660519369371009226167958973049901079219197507760239532019964524831895086328426969099267869609516577218580365852513173792068752153832060359779583590400558187233967373932055981517707544543290549433084754506143010615814953481056675884564969263360730713942455440433148305251085754354499662878099534820679912384152744961350262973592586460604851480201305953293901922335084930586301795521563668999464802910774762350738650630934928032569537720311418654984106905308883503349237481270106033703590490802739744126140073042046424639781403872208914502689718171419249367480132110337867159788978637041492454634782977291689771153467358010240037999778899312295868189664117551946141925860029162599728077771000790366234027881534000247438522663725892661138804599224201375315470350564859667164492189474524508136545121431935554391771016264672788863218802216014331480321512970425014635897028361289337641299527033792013740219512098211983060143389189637148786981547315030657515366511515537311271753595143207784841652926825014363192638240777119056621922921290912963303753628519457668025681501054612081808782145026069367556771416003386586203315880923753595560835561709427962532713670056801109016753883138267469411466170921704853287685284574134923322823837467136620689635377318960454387526246602210337642692828241394010822609142897031121173349375547053978440193218918668241133353749897955611345525666852683962966366165808474725997669036140021540372508096381266711378275439198080976562779691749519835293016492069331673050005371361958989594467778674093253189350921994676386599202739496439419473335214314621443585745302548733271830157185130198176915901722138963073435162780321482667162441879045212408478954494237817990923461298663550227491646566548536873702469411938869246322231385480172486698360771273723994882366585310095351024409505490488387364404550209877313714753798261835461628395171644701808142509093031098638932661441147830350251304992045141330454658420251746383593634028562507135009873323954303057243836364725495291533163982226774816751588253506923020068539564351202757625850811419689815350628649158069557248924405014980800029780990739972647726846846512989788361015336338100631584355497123056456283760226317606205811871436889366438930567133719439268816068795712687922790430111857764038751830368149799702793402406921093276512977016023660573617844594603621044193062269792961325680765232550814560954788500658622095637126912926892577293051588933023492346426028010287622469534079438454148749529989648751900581794204237835592823186079127862477008943033693829852837850140999250435790921143278040563217810324304105879498858022393974850530464161581404943118350327405111507399412779935878007710279173108994243967544429033628502617323797894393825911240537034487971971742825942652329059492146177328987662127685153960987015710376369968700982968193209210418145802071277414770371327876502283290995164434313446116281765333779865984331912506167021813880522063634408757886520304554051314922308430140907647752007539814491629569824805187194330134984374483562736917875956512337016593781293589527566043794986390198193260388847089000419636777539478566277712933862994895848104867915466983842187637165434592490038222603046461366789982535187950725386496431500240866866671844703714708069111019780800200906196645805489688136202452994818112129027491089150420612839268956029390594422749691606201746855549191140749153744679688488891119369052152262204096572201287407249758602813715251956611158208631037929152132266535759889877148313364333679416064030719014596992564646372203902734660084680562181113878208046016672533034509643800687535784130292198145856975034805474155046789057886660232835984967626985026676368018359033347138335777155460062655851981386560794497614903037501117425157924782992169315421157225863096226324364165324498818205692556535758200477145343948651030008520778258509737699284114221932432261917669160537104690770858586513020924097574922622498123437449004773358665109151054851459358658323244151823674894297063566241887039252753549095539196536559954846604448419608062034198561247340446280305913211772189823684620697529564158499090798950402691589248143200598135794276259575209945772188080501460644583797939424259743853335286989914613158385985659801056692094408617222272244018384146312941216403268995196902467437951757339992373066163902307527817187093805762337185693312420124571122764864347801250618403843890626842333838254323718241633513649161198024262850041914312014901972774051774197671640929399957941453707639029966937531711238908746245880249870504507285688274902550719428944022109718527575740322607557240002354089511228834478965705968389354090584352964977563011311847221918239245215673711700084716485910260517994620532756308230166381185519866012171506815404408462456442023566724292370201044763123478047613278953994295962427537328907653094930756208211883397184542004823595497819179971208177839644531771585875528946896921409951325356484674979830211758062495016211695736605378893105104529334885913558682635984750970801277846562405676171027669061270219723599836532019641068347924393499839608770931833268208020385080738592353243107805645426524731086740020154337555071000584694811574938401494687486962079538469598383952164618302425306194308397644016652094030320755047764703550308964716185966191948950638759638707863170301510765493947406764263389018919714741020689499546559976636031735098416131159104961195539768230241718118268938450117442048288432192011263004331773535669674836610052018094933773207791737741342126905369473562188162196969445880627219660195919196712327344240739773277758548158101110221207894310375577426418583612757087427648568047745948067712480684294592410008210827673403863016089488077128898975289803829807933444373443917816732660701811015968173485581009488958794512470755099160676613132783665870972416028350521129099983781281255903943880385427121365605827778508018000165485827778193441612182481215343366479133835846211240057084194545100895064130996645272520934897497270169740093285579907228883826798357038592404338610384315236474069503277879571236939404737926900700142020145819923530197802258032469488453513227926028532977288543476700920015592506314633278178723320122119203554589191295843014474785808164569961630029892465887961389168710214967482784524076641552463504610242655158691919927205993954394346353961056081058246914598971426676874053441460678976392947436863126727064139744238261898705731686693447771598742081505661848959740092404539546407637127179597851652138007319140631631555764828839276519208317059590885094239388659358671802853448661407214814105444471535626860336207441761451348668426541541843211103399081471125055704907532598462204875302258139450374693217320173958599289750656220974703204709085721531226939469419184279432153144411671064978968259131900916476194548182747284233231666357895787356167046496853325807330698200379680256683375917508298661104143763983864376064252259806801119261896930797212622516842075931216321204870552044590366703612148525045217960241798217383650742944246914602387132821833109206649131288854859249815581976678528630073921045084092431337262860163674360456163913960301349704385891767237245387733967881913708268303627354331958122789280004295877036154915077138146364969257738815329609337301485820842149295247101259795429724545866625648037121372926044524403852151447189273392104987203095903960421226615439726193146080657942215654383029649974524646407749201625758194036112990003957398766931235040653165304769576260289969083681364757947777551375977070869249617742101639632522816817922226389825632851035232975041907701351883645734687774487133509598646442163571553341152717016008509191103800824937968031845825024232171853192443993545923161954779145362500372701851189509684887948637448769571159804141957913202078737293079756641307399858000523089805452469440563825104612351907538794533885510276164386755537591921486746539489526807277294039277984235590906648210125001622509156820328151375284380063779827696309137609102197756864931327802699038319334800398109353387362372176690281059494429673885256103186390250148148641802922893854214389382031070380152593520688053319036662499878505482300751255556520322845516416060943264431561797326271792635408539578368137853076909054799211428790068760578694138105729614649039583868127102532669496045294291892858616522974305251259822592121024267696312272395634904641451780005188610929104956300048828371935152617699192055483351797098911629390834418803609386225463755972964762222305901738371091224997725852172776046394143144222837638524544607950340501974846554076899281559158519369328203174110013955137802715438224286725600753412716346097083494568601340999508253590750682978005294435959051413658905698445485871356511811631763192991189751295260862920140498457384004795681106267672633149763521375310660410467940969144877602764947198459296184217913708444247134694518263930218857372375579531705733530784773252508889937640254257736282208263132336348719060887870368526463591472074816035312580618435169209370960299133328635756306385527376144372557176752409360646476502277031856892608667842690850473074043250065593791981644200475835752813486052368138313317773825735343096041230111127646806562666712031771950483417080325833379834518786226157464695286601549386939758369460769226501560822145950561758246986803476250636432470976949949485113883515703633292798714146866712770559718614234095312521010523848671166904994769599903605488706126986347852723368480499668645618613178297999215997446680231625029766456139268504753943939122665968573776354436164686509215860924905154114462168296972032367328578912189309533332997089846247832886852993005815167437268471099937707020637768588043532152298029533173820626264759524581283921562154769448838698398864525836983947482119948002092154426094875088606313749303577332713015679533056425751223443056707921158491145214460499692027708650970878816715988576232328897895693595016808429865611993266920493008758778905149969563263605291813484946860352841679575710552222147255334129801375869766677430073328819099938644325411432608231033012523052380530414001955654354965237344648727490603772923736719493100809008456760120982587211633058987900653124397071905051963897743769102013852048347571036564096451324805290706451838791573183231058468422643866734123190380044080415498855710258517223719310924250966771509938564302817767642522820978162668208807097174730654366644661578309884499073426523631246512415990008441917979092127614193493028271312765088726327882791864755618417047063105927937877342267084867520893165356624944152209998758716447728002830173848051796240064453722580782578972508902119734051273809708701511246066320982254943011480138405035130163868353513203181603653682351673519528042644416068030566257180784521042139468605723284351271920703269629290753486583068608314037712864275155985013633415556114846745588274627034904678382648803626251058325775182113921427369175972847874179379583366830198420030547884924482439750873490405945928466202220363881584418096157909438114693882743988719575181439472957022586261453021089906388267673761884854690652544368594888947558734185145691576384177404538711397261692416798626391889083433957696922839885218967400331812642577577308747843236251571873610698787317259644910974343857208457486414738652603281727270852334777434919919297724537926328025582280080589954241984467374035929891694618220301323985905372791374145644234875697808899909551688609624383817217290983874951771124874873734965595511404641836421759406205949855918472557150874774059900245089248093027982915148078312120148093008114440691160337380014319395459154121803371017307963433894919179643953192328245918119478106498819349638415993687125452029311195186717987718357601386213637710211574946951484926172912040879456769982419625363956111121307139263178642249439215426594204027603084620891726047440081027451770977743799255563879878749445088091870064275286899776327943479890457435552875360501885582712554935171262241089524607662000251019607672570947240299270034765392123111298245990429272690669714243794956783249618166594231293207390845691502592535540792347035252109889572068279667477686564715409234837409763785191322613385597648174717849282886209809832702377336263115095617499082556386782606066693735275653529035903236898355174208229739600535323751806996542147761029611914410095205009076685288125022985711468954074630100778612130798798595641934301544346657879059438319883849941846310295387439580519301163237400833180367174875727423310792916795562127750088134207512031900002402009107667642540585934239372817510124496718714794750072845327146623018328758580043970246067370478211327207329744694336332246401401258980894158031237050454991573754394293241951368874126515595125372539568304996370308891897450688093265295860033427968155230369246382657582496402651207620577455964125738833913851140321148318716479704605607258138050255702041358847534729535180975682645883519461643594651110340001065774618928975066423297519106825478270854205733249342385865915229034565346170530425880151587828692939616948767426983797786525703709985513394570933345799620367300365397572744433563074191140262767564995315218827350709891461500424460190574252008375272394434615829697520947459285698780173792464122787220310802844618373035171006544177719109379135819170055943175050506767381589949900368557824181093670132132037615868828826160459747415209016810149459067878232531312615147289046239839354616655225373589671902309452934151538556463097452183911335856794865575263281836145196953172794687754701041515063141136074829395867026180472792155337938887215737030608855487927510338372616443311870204534763913612309388973274021099433534660373724435731015499987089408715225472208566880515975584320543841234870748315132115615258307123245262546662723713708613070761157708106011453348924929873850445438015827000110244033558190246965051803087982893231505336419293663569376678954810322500922556068458436760313401710524824037016455393978329547441543362447506094117568249988779969228653613163360141986853128168165086862229581950482848031336702965748695136164834442712335438394437088442219580119230975484456196300369239199280284960647100834063399240016866771854647580202775893943403584992317147456595615428888958750279802084041884811282209651467869298109679373108277352300503731116152144402626056455058262076076050073592581234126876334617159540320820810722120300387260541674337886129226638191158828289555945608329227857302196870543336647617587223890369145550089758636775030732172080459005520808153788516570459353344212992992743358577662672480421528448438753443273528015648181898852420528188567427799487844415097336838563922989369715754127050030899351120762272136169249111873753548010164873082574796960324958968470787383700878712660703055859592262330253246801224772182331037585813917826874560018936000299631544054486364782823837784570470023914192016803717729825456744793120054124806921409671950037668027256624294330244117651131879348280855991631424583011629306111810427513867340051966207412369003904902172651850810315175425326654665614903190667222728397144741699053026786143061163452941258807707026315720431966913347870864767722959189524865911628875725964895131384046325688685207051556864694504478381435327537639409076910013171303130813509603070296444105818818004067956428509710634763404162110421341604072366537050734855940990470204617269000073649970643002172152595467345767411430365596418590114942087149015177343643518685405464567839658302889052301096413407869171660360257657045099931325361651526999124412001074159021518806682579432646508345534097661506969227648988993223531588605480499490088963221338762399139317114611053202422691937247686520422261499170777326367431453431762173673221897607743479929105464966924137751762917940934382350630668126753422902711761751272723307009216931364544996539485273522686581875528104956289466891351024080187732751342257420748506896931704553487713179534446119135570015136089071990496373028622721495336363032751384883892463547497410042553511341818175436729332944734708769270144960938499684743420806616954828528219182567411162312749861759198109272984239389194028090293472375364210241803512660646774529926142010320331569847172281646101981787130323764990540556979780572013112625449276509715931033757897360905791154843774502137418476626414374121277969421146615382133899828058283106340481383442145679443645997992539481785402120229770213373190725705705714132838372204103662298726678148673167628033460997186130400894703114595170776231960799191005763672364494773724381966353418729988103962312222593463483082558831171605084362864334229686981946484916310203386580430684192365617095756682280894919618597791439203673089111929637725425872599079462014056907151245846270058223229296272185067818098049307415562801366534633360736421836052376388847484387324500548695037715392198552923907395587219928145432561930894483513411991673360594683258841123433691954960603395347465659441727563941839104413433821929845098930415650192867929883562706345329242706507513483177704592023870053812485726056975271558501861236158742002757055973225383111958896428035449796372195274454699620614401599267383292440987090933858678632076297182860924749037359430823384923905522005988288929715166542812974816905349497256874985021159182977108376091935558975046118212145834897794452133820846689102158665272261790012805076588304373585012326558834346719366498168579821522948189978769430617851285758865282003813098789833100020859966338647690380070014767791926581083315847914810100110191305070549128681705344342611997512420857291651951236584723320733799079632009317661575653828687408073640751892887618957131221192117268300595908923490658043253612025954633082296208210105758048067771135941018065916612484186438181540201254182823062036421351643871588278103763407398264113233565487832612307066470767230440750595304569515879308833014094334475986885438371209425714740118035060869398941080350809976448318669900477215851995274080584164137416274357662056104523209992234127505884004680202478868592763081533265943546690747109622241461884801559247422689138041052603432999263483889258164825043143126287826611991891251353786423193534026521003447233100699306462176012593884387038135709266742412041017738518929742244215908606139733351478656197595026630511843128092875126673250937398669000943511535924520635217729806746010801153668715363161878079105210922190025919488407738478631837555170894859070645494707719676026760143168449084226131116068537017499832204164255656243325701768632333485087712056932222314375064238477773831364657109425772390960417238514116824836147704914060771877753839274669662352109933802606461558566170764167273863204892888776228458626226232054856274730976803288520575605704247124573663693441764696652868735356358214123091555281406243561043263866045928777646774788785482660169788093904352049814297613541832327541526860358708480336752471897468272630511604442383187580885453333443401687176876964785796979528293929416141587605949931149046365578922024648427954725068434207083016255407083165584825847647709691008717262923623010818627480308073399783803590105261377916482298191714981900571592188434666493476067870361196399971225386439612701194571839263396407108578417784861420765781400446779589279495826396928168032398361186043303952316556228118176721554292045839446379101262094654633798742891701100842161873692333123009286859653579322436265180522063562077729030948407757449072454854554397476170023784954167584724387294438904002079260658850900288040079268512992019360468447185613398440653675430519471812058238760543815713930363263191208680165597177733143774412285219399429827939993936115557006400323283948037551614123074576682023240291601659985997813602870377657090046753360997743909946139581667504529895810862823104900778305451797737343909412978415789487035448608876865555774699310293169943598916647980725962565477844184058511097413730040139785095435296285984161291699283882432368156792997667367752686510121488676355811999816385178772830650899674807050659575307185283217123061032395038287600989951363289280583494456935072123069325412051003274158407583129535770797021515837668871106235962763508085561318125465308004047344518788441225098732967326086286836115982631543848468409756857177040833029478323854523401860822321678251545062285243489903921044820470520498923794282047072708052830443711140186426879815155957111441360375608411752935411246942437512301074709166627134120028615574701401187234295403864397438637667193626251790437396984733802220824222503777924678825925827065610186790299477654457219888906791409872680802716608136894913674523409303935063381637029406186277340961301914168776536326243075227385509478428509241761068857577392806041490933980148319657684988316057231285126971578677954686339935908730864877355230853780559747936436237911720200094559840139561534616588340437500620140515947702007220496175968535181107168209841680428256586590224312539241697675830172884124559480662910882758728041777092504769247044321414233442635648732021295349594676821920760705935222358289642152340113773694941588260787778087909475774962303861418713495882774235922376587366238101328904992118422325999737050275855336404782717285562921598018751798833161313159784243686241271739791667713131015414676765885510826892854557947438385193801999894335525966078930931077956069603890948554538468123203955082289363220618233114575362431173998085349598576047478501340218601460765745334478230425278433770357986228658322869149853922583309418745684201514629123018416384520446993374497660471647192797688566010326272128887567281412368442685475301825962741451060808578389116571677801085168605306247341515443852323255348663280592898340969555667892246481715702424182604372594181449017058781381972506079388801295917382397643496736619461466765349051568271755620534630005218100054655691782669697078108276822286461636536133216328500164133337998262231132748696693158768530571679997622105745115697564176999683583483208307039840923751462959152599304251370002907841385344864998913753352579409956143664750246254947285303902720102025364649420996963131329464543456678487557495149510096007655345463492564046865614843374352218240317397319208019590002429763828747786327405677768704250547647147293576217013923146459558751606596667211894623691016431894931939041335500964307739711406311337673813947834371428243880011539912235611097564969730502375851772198644787144164846224678089231946161309441143782040412353401597322197987263451088474078067247850986084585728089275018086961631987570599013723253965178282950727283246438895671323828740136274272987882682445729240596483649182858719271513117625245683630031593091263323618567889633489637522670940001716029502844433851477522139642328699534949696915929457284849867926744607564140023561375330188825171904104155813086630270284315462508240158252296293639169866987888987164989100452082772283151438675533043390090370439902900554531357187013505722710405304707901091167443633511388804566042993879434746701409018405383039934366283857319497248835697941763252244524729995200348796733047491967407464879692620858753561258368364929784831462728097755148794752269532674999081021315135434888215292837953608919618652435850522519083459593590326241164210593154311703642165198737508896921613726310391536143836760314500638160212492136175165216242674903559256918502887829485174068393173203091267129167000566832372629145964132890520715063987537525153718992032021085205549466740287205884124125846533071785955948682792254416332869227114213379667907463988294013469843870853132027462141036912181034721282144803464826455669774933816490078241515994604684199306979180643571464548003646133406387475541696953638814455943927172998049996324965750824141044241026386948441099367468407176031741148222876763794974557251200419404308225482277849647836772889169843688542754629269298931786136361924135073318486220631268768776752237297553595271159348021807989115857253865425123397476221603394418954764002093493829790650989936268408317720139590985859069407455733202634047296888832953553174986837373314165455372706603395474627257985823894460994536898672158945485509628829007965575783021279509886412115179878481011680402389464638510160827229404910296422048164557681560337881627390061431980299261338403785144884241288021564452738071362680076514425380189951889709172702164717492042892852439866464053128691838452011594105052119594628352920537703661610926718402432084944001698866607242268611000540544912730889222627118497793307878121184872806744618691091955409016702821217433393821967329908827638197394575938786192302587124339777059452546494730259830129986223225451872275948319470116482150559107381027702117401682235286506646618693214222855068903022272453765343589099403450542997991432222771721069314844861423906121714794582964272475110675067362686523098702219359900139147815442727577631689926340157194689541602078496876010035018871988859761354268826446669642380574443588732494670890522966825539128651741014311101822275052505082785969486371012470727876063592285523637705050210901323873198677600662519975948763387547780278487242866519866300156181310632668380604073150321075216966340166967992643441455664259651843159141960778656215657496460174639159487039236696922154489439837770171153091750665536672321949102913949966239198971446921137903000627863986419536967208896155555569277169377221084834693777501521980389475008128303460031317797786288997755944701356627267138430274805991369514784910132961131783105363134620489284598131589761848770245087173218571161160697380011910478960110737004398839138284229582137723197812157745938141557159127829878449870951074529327387412002832025359012374503668661839803484121426511879255578595922031517231016860879176966327946364182082120916285795881462390905442134210292643282646931248078435884030552714258926786876094003484282347046442380153260633641127234139124047480378221787402226653082042471349184051123597294712701751812936096856216718553717179765167411117360284074105783878733416921558407057477847708960262683299545657448784731912284166829403207618246452780126673990777648945112991050085944189667055091713608356188175852094449474447780770925506323981673878700347693075683106592903866310122093099463137123907200009657277805030416549466070406690527908924100363073061473069033144589767115287712370336519126864580685726708796996314084618763278156842043780996171963081538969314960857273523285197553389707089300962222059699486042164709244860162014015490278113070702943502305101018905729582699692536108430180801235296891128741961312060440417934508745719854142666782140133670709714533304344466566127958392051647899289905847748329668011291786377579439917448956696421850332660407439978700128913527864953758312400213911981459494728134409674458804569059426868581372394685530218252138309817185312855820598112516471720958925191344331329846795647965787660481611821623278403948262397384181777458604364977567397513937409141113753796510568589721887855586067686095942582127916056134439719258789725082665887840532548343227927107149852245056285086366657632367341432729278808148347251796123777273182003062327439691664060010235595075669352282304602632782839755963961558675163660609698022578237396786812618779958258771451591877670044425627352463532323132807675410260109955730924890224552695954643488133246482667221861857381402042757975013346238993665500528968174856766242638203658995968556445187998728234497572099123904747952981452951327910422472737366301108772825675396525182321550696909881342357098005552916421622738369282179306480331879109147850699165828179620128314804595954010169330937294635455263033424062282298759231531994747720608137009510542372856754342288465772824890949212708640702464910073291891429061174053508895145108983011832538303147552961461435318476472862578609014342413596540768543191668686042837650677236417036204805103602916943922638705858141318172677173487640774453646928564336720952234767450939586083850411058690839646455396940496690959665469129886862015465360105275117193147745121684226215458277507213033082148582906300444748941387518770346765228497411399099356269338418674203064050359848859273247368131107612592043709340372897771054142275702050406623596371475338379226111174534565947888351662506194343469125821817063613867210772168915743187988096748188884400682846944481730150124511944770164577071429171148159931315011516556633060665500625588810699265959593950348223745354714796397342918242775784610914259984817987085472517272524671554276678466394431407714043250417824100409244747688237569366589419375082133436103978749055565785293146126205387753689348946425547190349834789956622955927587597205272210639927944243348473126182498614038415496367620742353491163674359757738596285060351918173300470258931680690799982902145344698540217012481062214283181897175285915780312916414475758199364033944160671868546209629113906961701131886061612946346174682317392854379907203207902464495418477476918050609679389192036243133579847676936224946737971470133559417231423219995951598895439174021055478793644320301671492727327117160615273670876759437726718808918018071558183753868217827976121448914903324646315640104403829269894075772956147891111137133496131555803787271787481606700369617743853311207095946644675588248147681163416238633808714681424976095095796313776620314847918305379733945999963155348371403433159727724121215514012833338902872257005926208237153849249001297669064990295848717288155407076681749983353141065177688503225498003164358264836133828352838514968808043253731232752754177724967342437348127105991707147201082959026163482556418862436599122161918582406199153718090998961267753757903358732848078230496480141263078803500062246026216273013205691214455415173721772307971190209275716193611469429841113621709170741864599681372503729472879498892538010394217510003594395178122264519465680459141653622630584849836755973285480303415898395479641259473285686022470374224997719314196900801461734875425269769173631300650249554257808274466368593681007472814791571482861660247800164793888252689026333596936283657102316923568475623422400486584225934139726952318967153733364339185056065593087302321200000723070778939097712678047314501203554093576078987494264916716691774843080791823252005170526337941691590589814679293343860021826355073431418323637500451499980804337129066667472000454872205199769331351219886754652922649511351458293586870804162031499149227703036166231271747028087727919678168738483645930627391991344022941333523328884709546087496538715405012055145151110586067372298943474955711471457906954760094504203611796584327895123634005539741093575380105859145549271228584273227058051405572030556702856547641154728042894106209684472455058500595513973874105545041459793658084118708628788687430519875512059911358300849991022906720582986079009815200816733406274003883105609546157309210260388525593379061966805039129805359779345465499887921589434958110634165857052382663587621725996298885661054044951440605343397253181576826712059625713260254260989721379385647755671017765240578474327739222159232309807954576619855900640947682075624978813605332481208106439497185767195377369927508362087332694664702582587274308999973537036919441629400010294600660996866231672293191265106495812833728481784588691440630743649593058000416872535156392238386936588026873415321875550951211695654294247459421849021042188823918067142317646386535055251966223063841138904944725825504629074000748349151747673868873373669547591753718110810022775780746107551748679242055565717968116346259165860181904047789206620242902972738610890271055019238710835734672345243061580454368151197381267064896766771710880883754872453973680430893107091259860450434513560614269530154591821975445641478221491795003869966434142660622347318712024774193891092126788628964514816679465996564960036401640349281723318991252499506580421887736542018872442682979114611458498518668559820407118294215872571422277035443000573776052612541375710786096874872508848384688089051441855814631846232124829145255429175750799224563710590327491959301516424776439219076528813040723878821077650798966571768084860798299959403089300357855408134459937587269296026851545434608017956096344482192180101902047087623708305306863157681772409469576574910683096243520737258906670464759444831058242010502462992148508824273774570373485382302327234400576288144439632135932445966843076526812276646520823701054939730782517019803343955023598294443922294481550585646230504546934641832100425106475486015199034967045130452866055667121849569137779199358788554354157694644462908541416236219544408099953942731496568579221683054624208013652338749914460610532217477409735518223582646416118738867747476140897794172313215125718654932243410450411593781392270009006278298242346152430761604198732856977844368989023959354586746793781326582476677229178450521142156148979247741349256215272046451033709827440994114409990535753298740100214070356314098242110947084669247414993835123928996252536928184483754319061854528681490535503604564664874907645470877966382785338364106889374383724521580387938943219784399089281030903052157653958171295398935102069447399360683186763427220796906306228110440118907983822623275163123494841496288803729299408575026615435096666870825233457288456423452851008640458747854841249382207191882824295685610620565926563740820446800615720853177056909550967223648121086371233681209844401650406743757377925038664446885278121622132402201333081071986649706629619477042368762799724495140259866278506801145436524606708238255526037036347488555937030498773697040927628138750225957778903844939713946914919624223657090291890549008820239839753080349659510889018441726522434492620318935406333678889572124047450249298416343782935347290073717901234655126681384773490649237442310949264547453340026272564227622820751799737989787810592184526747026223888009391042550787459432609970877413388243888493249149025132831504564709727829601822149595010829735718997284607710120202446251102574292865279911603781388604163468733610431114890041333525679167946483712476751409078070226430561496342886790314291667538399496238391622455849755226379034207830956445632993355259924165708959801343551694940446164622666515734906020313823718289811337435245336530918034995476813875307081651185625303890507738107511121082971398351352013551853770227108305668850732575975032713165496557615214656328902198912867704236958005235719154176078941414562112300231044151239131748102057370394714638309331503208684496247237064793634631403058124810178096208643193991010542161069112404072792926600981087628019288120326071822039956438843512407649888873404794613707485115861416629716172196784273748180570476826223675508217623805462833077192703311506866275774229230410161342668312999981394216964303249183687465310816989925887310822015013433173554812363267798887225805314741300465630120697529654226290824372597279012358362170838005420227210999771612907048933869009442351970199072063955910722821257734722051268786651314289073038047749510752677496703997173117463901280338707864703780662568653720166759672175196385076262286341069127119378609661108820449295681182431761767750721718823293435105677075103165179586877056605828412277153642982912323317093062625232459072023771942045643786509735092784869151260103774289966308180087304688681247767863863412027112212069920841880083389528006799965878697328843668692566915533754211875858250278167996215835928617712115763690446503053352192222948617518112709838836836310036999581889585558494873611125648432320960254912251969071386535052160489374737530995708188199389438157937111268244971218085951729959114082966591694619840469409387208393597743242571982961557219862594708789717935486220348643416411240053776418861052424031698860679386749017014115468748999172350139192768851748631381088066913258130716310160606806606147447224437859786181858835822619397826824876766226898228011084434244670062466125619736774406073650413818011532012605341832096269044089526781514880888121868419991826699601683326233824415249539067789883495627461654291442601538636830478378371749784214595119956061524521769744440436911545617215956871088944368658459209982909910338981798828732147193938138253687683575496496758899970085554105599028047539506932895046960406871323139107440158582008624562432553662696280194242942435688569902249117960118169201797186193177487553581246745141193934857369279345195359456984898674172521712450296613134037330187260091970488991837382627414359339257099611023787710028946765407781614178140564264399599149272980818863232468694849658029840052115196695173711274585981410963264009047230621621925896534023657414426501319864698363380861191422514152855975186513698451487745133095728271385528569372373177113674349755373731485108325390072264828447508881899228032726452907820439207905119144363637880134449689323260427315659481361120941612792201414483723732303555134605422889375158775764087743379100881641762547458385042871211025032490000615083357243632839316518011980990276379964343740263555139726813406817385419020596565519858584526511025221783544163937498856121311063088909884140184554158288537874719046629194134494389497342559002732712792733635158053669110728278851527302430514502182421002259991085000589210563163684351690437677363866824578675737151216267991737719465968520497116843747871575230057227577721695656672778891701945136402053558351036431471955470872372127920104177759911322130304208778231512424421842672157469727925482321206148818245822201772680184326196232444389143235118481072052346188124826269794988619128375846026001403871462715743976548488646256277960362720031511109440444759529944007131843904105466222025036074455922636038543708636829797247649229904587977814782181564228465626217909301708306233203796871741287299154288582333871855010263732410682567460403526144780335930932625439024855351738623332758108522270008346436436685455051774458291533243066611619391162886897625395169307732388564902563548733756928130764070783093070688495440788690091388886374658284340640644091556118961917439659237376944757105320532383237079630982789618926037225372187570384124680910721951015561790272660175459007822302677751928571489757821669884189303315497376172460084570400883850290953446776944711567259126639396803757043478950443038953003323099073421304470879167551584522897488128563260352037820182512105628399124696197367817424300422394944039416944784413058108554859299551342255005793529547315709808381075609890743737524117406174088710479596391103794303831161236240292705479637571548269205887002319765947025696071759335117667332655051929836752925160174870547054989888558135462901312455903221405937664977669794188418805003879968579588279229970320894716128866692990522048838021997863840949833949808993582284298720500910771958956104722072018226026212954783309450719113297387108158728304168420894624204001736813256934197304524837045799793953509443367216954732705443100525369740377897246658769963413118045364763215473112536512684286925782049081125499995662782768116216793845841748953250543622299625282791694159106568222588968004611939165775772803045472732654482605932189359920240332429696437936823528003064497323974494522123622540454888739278906652937952841094862936863685177954362586599338886875671748623274253136834525647366708197059042874457807504454855128326129126967949486773291483983408020474135908586054916587601943506741936564552082170376409134209795338395929103900634921826402248808411887236210864569275196650958593768350704266604884633773372791007309621850436834049958551483550006259117878579754628305922734361038975472119189203739349977413856493971862204498712445603945769420648169287760003592335505527621934606706154122494241021846014000026170070470265582056008802383367533455256669624318068349515664371232081392737873861466026382768728277202331798809453092389848342847201462090599413164196225431824338972216442659641780045164920858628748298810109875091585181164642215822690955670927552053453909643650660080965401412411672358868016033321860540837530972663986421011948160665227560142368432050255411990669041584954289889906761289539092211789650047186937966285556364029628003541378390438358595032380382507022332857305890823695162662143682790311198928925665087300236470096077947050850626283962071216115662832184117741065846214067881797810846102768453532144181749649284310381543170784292761395897986150332181801676170162666429102736215631875769653713848584751487167200810081328094576525006368433014328915918091875218553377155136755285799564770018136171460840544929150670364079629689663402445852175037334961062759650465811594522435511271514487143885472840300876543889089919645081292506518266248798960172641632458420755098328389620561111754497257364993440821167720362016258192165673476845759048921983956893477500937592561457409458305340110325389372063059001447983187235295933705643819366352414710996887896918937894163911661697900832036683562004117044188822609511859993011370090240489232953264172231514830691159565239959234116622895783314786811861917391963071445431195304858766973562071361463881913377954061354721733405644154755189803772727288260389907491578650021697557010317833416765263263589978186546082027512743336244485705594376136355427542054931749135685408883094044353470357948004447064174245413082137214570327391433681495357101220341584969666025276266426133600782199549029555331362871469309511414348741615157829434944148018814362780483767515070685335947936398083444851628257062382395984987722883355549533392448909457338650799965895770937685801254515058526349555657839338448630394446312821853323905039368252002078252554597820260701617060296425959381111578890066911632960487970345427078998594053135881020167578440410241759504762241062160615090676867058199115455401336870598749197892065932026644223566450738230508879044384222176797899922146090092504926054646661364374938015046491303890192374276948330890804235832804082758343173961965757439413135591254660701635612300314520793022984641718975547062750627950312579561749031862461054482575157488096792506849475931545819010373123492842352000727144678389654830862236678091746275039064834058752587456787610228913648284147781994455629311554625549150665177728471866963145561390285065510204947628348176434788777514059527933609471549522935341320973499718414470462779869775267299325518747831113238373623461186529812199129190825931850399432296073705585911370388543070239494316950816529059533287114952014716909198078580315189248817807536035418656449625614547769203085257922459107240645841267732187695049324501959225081180485024924350993126153594152135495167400715838839550392180605944968567949683334725648031744692866748242989036769521911339017108223654339104960394779402921702664973097987318202010287937957094089094244090443973495436602178332930988514028993966352867997930637745774870844234763776350826892451410432878340748809239579719958597997388165494240480056206029836454732149342482154706471469449041356449268794382654566582103249350416123016826368351710230123681665555349979878516267022942906024075200893989603709424700475577476329715378019896110937857155120906394265788215680766538179544416171008532650103990547974603003589754623588292840452865878041360199999407344796368597784404373905414805873310048306550329513573186716163081216654863292431037842734556917975372974725138087842766722590337916788885619977391753464982230107551502832490811729812293414737341385434409993290818753824863603842028413992194067758233021109112465438528149885876997190594721899552639230382472228583357057930390461636610930151231376610699302270350394398510641507892679901231084073860760745653435493112842712621460044875769857348890956320215894122076814738933460725488991766539798500108759263542368032443292370699371341805022983679342117968877777468481318594896986972449968006542999611373069950837178297230730241268453040341658984861364744152094849065819764367516839281384435094398334027020773405182072107412639506667067046900024069719278104868063692148655532232649413009115367131690845126195197937161130698508455116028884890804887534906710745003425768771343547025004712438746163992632392054568741123986742484344942635988371587788588598048018868523488894721325851473966492640605605273032687557779213473183439746795827190397589586307644132777671424792250053970205652836246023222526689629898326439153856767134974877014579820899424509820828112274385028742182207619750404034125735498866089896902214504131483900405284361535341735933201601339687116771647572095760648199707039013302578596734374614700412219133433945210323295472582185238214149557982393679884303902439565347796491486523979494060112056049487746652491564066204320945789553417055431125171921695893789847428314485942694101576795982004934430441161924312475557323878558688055596232087047494815904428799967412107173483732806442284349268665693976445875469893425598269972396652392338166892496265169792543798149916573601601073223941326170422213862348795683828768846804875762975584611457082632893349273256578299918719739006105385326760687612140343948689281306156785031068326963899245105133995502772181904950787286804285906194924200741172168185877388043262847101256755274145691908198405081546735799045934152405077186023657263167293831602751641153108427875049555098750720496226878377974129005257962248393495221605986588628091892376637997748136970961755072175236526208319303101002544061388482783871425761398706149122401122147038684826293017555984764814434551371673927348214138505445884127008221308162557007989597732363921726375395076335251145367734515582409907916774634252935972591752472403103880832139482310586364060185022819829012234012663245699981423797963189402813332413573944190599422838592107461314790337619530333427862370932440440268687680547355788663146857379411957482483234163121495853901684381118051693750530012177512246921517912150324508747118646169186180177500752012652856997094569343978160892810064257280422049784331140463729929065587688468571656185559318864442528564642898509314739591312868996596496635546808253073761814862300434697415365348064367528362596629916272310853490379068455779454697495814816800385820466048731959071397179372346082584263681447381411874536008571944082257847957963729627198192622678811352102543917435480264622868449435710771386333611957191500480288700260768780276136285345636353296653391767654022927185374382495373028530155253099048031364599223900330669627347867987156434038876274471465995370201410823386746327325102943056679845830603587058776531376231181615741130905813285747702055272508706004633716321539968870943116595239824847544591120956189810344531238141086344255367317465987494516090580464448793667515498149838913830284914840545834902522525617704585130551113885135691767820285284823783085174340908963958101730431505816395711520938535862610881550296586129242679706823781137291659561252604940368306626198202914135843494463483568856891174675722046736749492206426520530960275704316972460923823870776725167800215788037019433975615972132770517228055799743593538517701844688936385923930189355710021366944786206988116655310419527760865568165456443894068185307085996463109149221017158373559885442552524361869970608803075598347239065514377028284261220617649249208483317834356631165958690360646623588028017072817484540169887110773410638814010958835524284659177007665058438100912050466035836498409169819332764282560254460017439015378601751549047453991219176213359031019492797793334058470781344327379691426154657253701051929749702048998171907942853003861359296166858302245619581024951619932326072795254734286340386063273478211173857976819961764043651387734263455487716254441594048683168742494307173262850309848456892254102027630358400050976067070958735928531580822992127541550971068689132434500033386393108000219324322720097135473790334422233341130401330320190867151567537831352995259870187189716714201916428370320610824739982145010166254069672452534190591207061923359983774277396338390744035673971410953302315707198003845800572980742854721681206449903286080989137270115582681189160055192126239801179492633690087064744421818841113175064897190297625127211755155921334768521411299816101666751542905899900469629085455662793757127238059945955848893404961538593775923559794443413852536243579053131758875455506689798233017702713615077262657869732041188040705533106738608117411248127646363767594226063692495488982954973138942819299966510792472553464195923849737993266714130206992047097250934009380003177151606699673442454848392234901628185555735296600643819347854350390590583056546511793792195985984790897930392730645497668804880583974879496336730959122911507546714453021386424231512440121809143500394897899400189632015126831309135092908317129747387041010888906132474603359197100471656595067331290662835899025098812051282164310429197910642477023842932120970501286148387380825523853580570578422003355212767523210268461487886800660403946164226757309807966875030287887969860584887657339896151399939030839584541424540341045566014379137306145758665210115139872913777995132178820718611354214891755258600545850504640232915421418119933318215442001269610666367903631659746550188350138991711447075748718859790941924608557191028408282500665179615288228602645414443300212444479722358551727855841364029552415975391862460684527315355779148231089101330327760672702560986943635757067421927577074358508834287604302235158519954497465917336198348063006880531296059613049892802449833789869361315215430626192541132179863970111443286113811927348536939477256065651938970738635752749169686627431199480132294089040433244963795049401323912171656445295894780979689406814817811490089160840740019564316720335037783426972319878059548397498526888504538931001166082810757990051618318181603881818830801492196152380911592944057332748260237993053222749214309375602007462173855843725357486090018149540570786655128315271232028809457208503914598056174710324768408392225245989833973866155639981081079603830807962500911208191699777980666442851421532112645547785407919780740310166152902550604274121148274476213757236960959835643817218070670684739330667544210172512989326657544205518253109255318039063357661433283038328893220391902284315634841232590443451763604881133722596111416173198761146481684692825415767838124937949410851548375093298028413343406871222966283317928180317707702157288136572008445200444762110782392009297031624878222173143357920156260765842628543680566189457151615925774765535643321251946545707582728283364510149293358017984305510158377095424814397747156549747946522839999783232050021826665360385005514809718780442001723539074616023272722227004829331922435110268619350246048855807950125099607638039291424690279916892664519451097878286581977032030425626437896855517963999328664668235468988359513144929148843666373563065741780806521173942794292182486838882690071840810175912017528246887856791239503734908842863145145901333489571698050493645448741811747733270302903549594521402955370147248806916640878759320559564250283584375058455458740262951783923402401869516736826864274104317136067719985613168552338346451506645153370305315783888688308228551092873955557751647808318295674186978239150431968857937142696798115686301946531735950239540031112256345948307390088706100900240720992624052439546253565628080409970296577788168360940148929447810552901655637243350723107223186894998709723349839219904683837061417466177023480558474983473417506278821329981841529766418838469104696379923750332268752496789867500681845278957042376919970847673314603321824015023477776738449210954305994477538943706848478708087191466903153474175445289897205875082520784910809304078594908007691762281509844882731171390600092177710155075892077815270980337234165206796484275876233350545478894539645331300092284511946601474847864760287778364082673066610319877270471735523140926715784519742919728599726577161595993883192778687113449465917608424454053822101849149711550861469560819336529215128100505885760150225957364694936906013948111511997400292577723273372298611907350511663788840880970437730367028800804342011678816474551872578309666865726604498375427864437189617183698147798427098190260310443678934271995773373600234079204842938263831577934748303196142555674496042593754105864430850399148861176300954673778966951770326476040006477522479562323148823806344058024652013826063146660968699997932761356870518184600184819959215111061048453505498200893464607780586726655298645574478927746682939741818650992755743630572222137008163509318620374614677121788009858894767541296617592726740743956226142617456471993532746375902549179465523891928859718443948434761437849486077293815240868253055481013301624651439784534254079180706033320164182567861020431319830336938900433327113866628415387688472073174503704748249221300046849953262890508379788356619066907470997908953516916063424632880474574049317574931354305498538739458881143916125995955221060035557897464852229410412000329830375932291915630404960037862681677795581109132433726162366466091027862595266291957532050265758416876231292226216012076761618173368523704231577230856451229286673237281564748151613440756890706040853199237779872373637901731592257699655251185701280303833965459565651921788133750370991626310990645230493708165881783577807462204615433029424188780882069198288257621644365506620020220169921909782692126783639265098268211268984617709497779407290013552703392514929631881940964870104777161631531261987600635216605314530536725197031200475946645036785022513157151836092894897330986830887425402173025835079616782560300522676078206456173124289729487020527092369038455449852408275957549428061057497452109430111610390103200988251896862536517665017904041056487999979342185360540979217596333794970189081691489705720912838310274341782648434732200876235540704371343858778154358325017106944207035923898549092197836183690343271548310746303629054476385774184836421881095062601861421073164991419214807793132999201664202792755810826910170793685073220626980974709638904344302245871967444720421453689435056797743218279529594008128313698290690248341006380052269595122154722892435359866057365668880375539584044869945008604325961724874640279223464523816667808254066836049494016995920505637284637418106166710319768478490802126156355065663726027835319647742021885613885084831961411717573094744222481986416902097641323847641223333245080694257273902075923062639842010161033445242705051920580065042683312341869469758703219654327650483614101493768372646820045631797790596027159286389140342323909495240192253653425843043834522790262514003455849778379651090556621970084460370700681279433460433789778860952664640732703404466648575426944109373387913670305028393054781423423917623838154805602484858509911559337759731469594795220870599625668855030558007976153810401399144849364277065193666062965001281336294088040841215681793578974185294073875514598480599708871103390325296706161154001859265547916489584542830026054208871454383782649889086246977434139224582257744654887896834295349465097299694795561495742611582708173287796081938800515732618068162145742186763473725092424138459172861254791156339362389392752605751012309608672762489605185106413596893853666762485622184092307271737068828765675784711787602965939097486705040824008465699703452966414089741045372106011002309115329123311130476901409939972820199904189657630632879863966773300446168273665462922471009339250325459671856685100851995306860645103467345821215707755170690098848426133249955435824310730667770949543114175236188804720658792048915201370579158891024331996215749045950393148244272135789705741830721649033139584794566308942444347625343151604060023426906923683229054962265622183684614591928435288644034716495144340128022619696243581066321800242857559046395983401843625530390141345217287051959687922353166527972408042815438284255621431263113850125247806331006336231173713457699759642252731617469902724646268723886847895131814989848243066250756161816526291601591593384320940923243404316391013289361527036903601714037625510309875527818221234271572176937768337288334289661852192556114543853720245331856526929714617637412278327072609300437084967727717989435700117849587482789649673315421091256100016588930097796033562336588923522757554606942039822387541924266138142246040532825578961136116359386449974304203305293128146607350359921166257408245480812306770575943400421324688732612169034137119864958286995557881766268491702704936935069198207610427536316786853698577480058232251352008027795741547241072876001332607364223073618676179966619917901314337160727423904545325413983732119664445152578091489257599342366361675065235131569778439704409602411807527230746924988626100389225944792553214065800555784467236559660758947329849037369395227803271358486499909374454131605107004697130624097154160058099123184977364465604227357492187201111585898040038858147860382625051253358448561846696058662493340361205835638632380111504016484017785665779872544007148302996019795688736303277506119431925830906032823480407784426326837744094332317208400203311025565559325669637298252797651483230797930320341365313401030656812521036031529394507912651156387012618619614066004870412163097941388530644344635577728054768795425199881102502200150235860850466017316577508755060047377918304417039701805747203033721844936390153324450152298397885188910674873756740257676005509224334950047839085555838136562793902112523347326859799955708441188395373205215257711432239549997291451500459673139569583905012299545293201599519265676543674441492048573888429664815083508911234702598092367538442599319940907656754475984940098221923803922208000573292807625144695932085467380061746949605606296793647719708286747585884024057477956894721995272406573678107460240244480586377915602039437817093544865198413064259608246673822453049973982409589289638249660994141430806703833192971771625198171904137461657057857207554959255698490746804224871386364592471562872378290765156869062922775919718065068282210999817813058888294819958391304675467685520264970329383733543898713432762547700820674381101640838829015210267627809854240988259670756484723245195611231279711134941712618499622656167923071812577515659666598637282962476917012781231247657454410498273012944320504547390421627816550756185741335409595730421513313163515111224871052087808789010082158574553351606135030838993117502571072790095252105903977801656108813293705648774501247677166088748179867507993849823315510608264780786980281976052503896832792866752671704366753676133130493972661919445124374648118959171015123695525654843899723273757408245395298412290059967069766588376105718340456750401492490313042464092402569574932612996166521805506458435206433889246425745712698953874094183828222206515486593034026068242357346414746820525856357244391934316145830698355182278195813568749790228551850898415745831177474103034695810642014840506062349883031509024378393210465113936884186812216177908686841760008063378484766836007054990090525589232677564712637022004127222702463264018454488362921845969369047486027804685638589082911368798161067190749073211754239944858865401754057126444680386841222373230568986114070937261897104756717909630381928740230337710136340749141112470546412298546809641178413618549703017733210501582723909122947368783446753257441878999398629704432995597505096421349504952554383475046384156446872104084146479361618470159431911938244878671768824359182209866036059918310403062135666346605920262936016143126730216545188559559647335514184562153373857643414137919386786036436114565757467888771011812360276263663354989195084365703279934566222869113269137230440086658354075600401862162710590530811326703063825575642120857635822844338139410937165111117039429350921753119226909285693838740080301751223474598017040608904575320706010124840327711595494215740398550222876417458581868383374286630818646977729752961374712489443263118974842972935147937305544137346577198525057608709222795170651190904137844380397844049532750848120226373721745394671127604838823963774435868779536478219672510630243530482303210031749103536593133433333447379274632579506083710645569143504662295438631335201058651104233257424018196733574528002843744805708225433889337279206692488183077954979663510646807334446260057785677004938508954621893107305039150435869171922126367664786707114366460123427001027175594905915682872636471587395884268133606825640743786267615901768018364613068004881122558863530760616951533280641925999599416533220748341080441100886796870357119219931716318239971551845968788839423206116134229750320931666826286008024231893836427402983907372823410832666959961510527086921659172510276057412736120469752175263594111364316496755180548944355063660845536015671638861895956176535896109665040610172340859028925264985211103989403339469546119894246112528012230475437676037816942672753136000409942562784933729336479534800932528641437503117598322019394139939270672465142256224286914873895912923910092512822588409220578842637943203936277164936549281828975165317226235187686499420820596708142493897569862192874102077537596467003777419594427947171419433956262553429139932689500425089689464770513781492627415458415566861980596327608228175985548074606177826167259525761927617447867369644445081934067246565668366210292562196983054772791637631994798748680495270366019278658316112949471777041678754079539134187423478553692087828723899371640322864565391607332175663385128774395654363176473323345746198547259808479046837504752236069096690456606223911899796182803806082761596471438796528627709229695967766893731022771459628517410375512326861908571573879582045773105865961648712239980615944706641365558352987289365088002939868035405967751905932035462092666948588069893579882776791523961224686811437023085915420859289514673501773540539054021900551687597834306557818420343328664958063611507881568628651291697050710409229365287702762423723512537652594960725999418651733274577748820941561194156847461381102041330348415968507128468542650884488372564261305345041495678562821763969277659858967717616844349730524649162891766263506474770063134409849554140664238542530221305473870577692456145320477158468103357430425035591012569653572194665686078289455109133579603152165053792655548058812395133999417985911081416938786412309814442807066767403385867265503235375058441210471827028869375468973945627951468884025962170720200400281847179784691211462611197904588576311349282030372413891742603008557232707312221537493833481374718136236789496218157884704743388885476171574755264077384923218324198647213964041245335981900156481964616893296855244727978282965831884743476101768484947582974793166918722727280584500954785044363445161830928830721382644174649363738514141525827100396038942524530395367067283377083517875198106280798609919246337490955072598804628866077189002573352853803931798065939268806947783012358318497508109707975574260481997427782924957904375107644274349964007787940901146552989235072615551117467409979999337113725282821916924799471968045006681874047352591298044363579692398786369625515708938711461695208484695349844124564943791118930508401654404306132327272299616941282435741481403114395254898300123908170321501215831081009377355471425883370876117079417659046990841679134852730457583736549072917241881181446122223395942912456069538481133307751154327630231972217988428175264133819362726751510769734877040279838614553891147358955892505722664261659029670704937304566512974120368074821279559745500655477825665770261192848614019447076359188754924853681356225020738809740951525802854259003329643269767758158365840881616421578651815525041814195087125517979505391821477637356576283191706554309426989899256758735019085931031796570592565048213189610269191281685911315346282430320864916207307538043667571607876990972814758409460678675887597917534619684536482827734063329146034865671854981188438860007519722337953827398541799585502653315472398299385014994215147087787403378439353337177739186497576791915006106942991585382422390650572881310994416366160378227425560324835236347642245040145651345689464515958626898701553508530120784527359511305885511635982567309404574071558761445510131951723722137964868326903106679914328274688794972824264811810429486359256984780506939909171741960204520462552861743972994610357686061942658810661802327301892205389585914807376271713892728244996420129586312644144092476276128075226725997993827321826286743449709883529195170802563439311696985170040906354122175730410420654170414160462794621887930409630575253105753327926078740099063118452088363297941737706657733063949709188118803034204497972020435644212761236772868291860990524067006771940239248986722013175873769176146811433890223009313882177579600970458120326432552070659838379582643372581542109014110387124283196947278579880416620010122736783007367650460100997440700512392661340095296095380686727395471642745730798921778614068050593509257684086854647290207311481762241305067095711110843852614092768636557044427263558060464285063845438744715273382419082919333963613607919910679276050397686875813231448937175671824331345759324234154149171618385498391599700745078178568519109992521197447280106637532835854404847767186645972116329244032301523905305861130592156158883144449006133909284651803302216094561635533563298982411697643527365064864655803374782924092292930319223585521976951289003992858618256956374159625549088034697168590899188170736414717446343589152517990158112575600114452682384042112229334005629292970197354488296502531049472990878013257458173546464096276335165479255924513852106741284229028225054629957474968412245330853938841183508736942225991796707630964941677600739097145106804122883817038952826288042544465245506899524861604834335313160487838981794733145797811858417729954375704640156337865810807356601589742649154214362040292507247285767942685207542566168210964170655797161082680250342099775626634281758076407626531402041886198935177058522982062558213053112557581243867861395933209003343000399074639854242373245028843778666937455413611154661791391875224754358397299460435092331795785019916683693145614761419520631223932706627721166774951476621801744722203998836587243362437100912434875845447873034310153511746816612070849917927562747801481780509046967270700668271183381686200225717996627584737790657038684153728994626820279784177721994146326244809958568202010354756567779292929843836166695549614948341597349073639343504999745007829422194988152104461451467272308011081984578701812636017496716711579422212736965193391994705369815436478573993739017111058903109183955304519675053919708282291986536544268769906552648336049757441688134241300642526156246704131615692606151000860606949817282232223021609333421139078723634880614995061540850556528261643599942724010650415745701261757506072908127124222325165957409588929343373821289715136860785320353402398562316135560100843917029591791404664582917682152642059869826182834422329461300982584773800956474945785520136084222014336207801820891278748704041800609186584637463324939747913995664220037795042880885617197157383778532955860251398078629382201120413190666234466454500527111304758268455813305614656794818807292234967932078322049710118087064103138059461528570402484988298489715546695329836111265861544334870750857134147667608547625965776799483844338460860091862738984437936621518302108423981461115945631761944334790371221442070926235479494485752648015935157216646749637535905186915243545766104048372449621669646597588100106607574371192621253313887028643061775670511494510603334916647395224152796747951534403397754766083767944547489119975475969243797608522228081750315276467228955882833642414756124059302464650541005796068055042317348136276023799778148365478762798188762941696055727113488760540300759416073817102880305026869566580609591276217877555727832265076449857965249366234435899223729425350939819824406350569651328467758344283388932350639726375582373388850774330849790253580578189815784010184064877409151974723220331403072207320726128880517328726721256880128826981186844205929593549109079849304062212128861675975327287027798239810736060927298826356077403958387453093242128431927233153822760366315450776898018354140211291578298938885269507390282621052174449276740076541111580969353838353609573119844188503805785711641520159702582814962152933296666689536970957964349108689340236962063377058375479782145184122505803449612118665806146777049940296683670804713783113660205288180250431518700176274963832351543795425026714856208212411326504109687987558120946599573847134243973691780201993159364002638722768552730203848336665057586268110394124536803044813808414135182714903531088055580377219188022014860518016071651941993919034266626621804490058916854405723374195989749240585669684760703450261342702702213317878291283511386245779049886677096228873310140021810694913197834852129761900140991169587388574220001406502409076713910419771100758630020068263061968629470165827849060217635742302321516392528884271455090972627632111515727986301289428713156626364744167906427687784163351631091369988824571017342334024008944699831113986494801472642006417418527550094058156186250300313981458195741659634856353818861782924021554003276938276594199234453348217454565968449597553618817488435950463767492210561796631516384920173030851904878299896399309990665177796737882168227423443129491330772001713651699692620578754368856816139324481821882206462099054853440782152664320262423024191904072106501174170076224523457783065133662564156785278118986131742515753297071855281222466437335475781847347115848234598787762898750585780672490031452594073408986310956348220866098496546238543465254435527142086323588041876200044173983043075084423503802255684898033464605251908123682597374889565336351692053140503068737323633599287276938924296725300275871854725990166712384792138256628638025086174872198146439986552899822246548466963522929779262624623698319263169063026330903287801997415909497972094245884251902530982318609463816812751075997006302853505268540770219212443225182232945546767656003118038700190901554866805591024322524784318179734452520799669622790701482794469071894275844066514525795212830028327657472853368831775843425087401875661787163758604927086566537153153929683957498320606540369837060119613351957811479948138938572050328557066972308995552065210806742871357207370416711807483032311157138232037673483389485562182356303987228572030108337500094535687068610248149013548680879406014310173251138869328584312269106420027563732124586912729850835117768755462829076971346082158684593713574197570204411515792864494385663257839097593223348268683333240745756966896524484329908160091784026829731181288264781891484690639712759478839267856995015363384482092633935573552109663526972058203437421050314568073971242089105853660805260395197927178126036739114131528898319277124091879419395519443273157522586570063353661794040807317179180717165078345262682946751431172073936303741940769690898407636856362786183262141522585313566205427850967304998590569454176525745779991936886365312886845236283273155346480134446848915206937543560661414893196287634063032811577979706436257666471539970108257066708777866818204601123438294863087881771743111794062246050515700931564165406966369189130524840967683904387872949041914881728666389799137028517050497101565550865425363865575210409912366289668100714850194880905712842376645138120303890556767053982379941748197049162817902835709460709287858905738354032142107509736771537455835363270943016243939122675798266744225769111460392190022071552087092423043737463702045973485877386230973033240500432057079638572076508692398663292967140638885564099900281639424610207615649930154495361319765021050836985784696548236400861287281642885046767233910281090855416446221661765950777785236755999975421815873084624781758801545403732729752257339131516668425725454430650315047790348162038449073300534327368158678121020271841618289094911796851253039637565360856091921127409484162913659505623590790116677023587737650422904573401814126335481149493911024668197082019403727675023714794304190498189154044919281982140996990037869479715247524192467834404201190841854373000896527809874765538296473722277209191631132501470873804466566123864530986569854070874375776496806718199422424445985921035482076907291930199960285031362984265948246112914777144152009278775321022014113357658572343487026700461838715859869602307196633923455117962676914468141812879503912437684074117375414404515204060977790115021294846479715251942633797248839640709079315426029616421681781496387565640548792384167037018034790604557424493628571120281121362664869533021229817206137429564680474115443237583738374106794434392186658559036635576504502215788015887000475093744100742838582673519320082086415228015980705674090605818341547833095227392398423468784897334970727640298348892493580258514320210852509190372057965742610142401952429536876261745439657650133735890359047225448134416419566878931773754459746715065279547346730540180785290104597709949373055868180038934345019532979461297024560510828855785707665130177666259643641959645223098570088478152573953427721126195709149119617869582419034415905591546544464312449799113760730592401021502764614281337148683487956606369552869611795638775424307718367555317164306823190985842783711336993772956934092123653520156593969490218999488155089074799772077597406144373815429522780893203247685207046776455840672486495335613944268049878515653419824941688787476773486218780792918802565727359271554249938385175630205839729044031613689653602951336977538923051630923611030451637544434498658616438859851647736189723879914180009692735308810264229522933172414360225860857658541241678382163301707985698900328553675266967764329808989962686293200384440553155163700344926372256536756555699408317191405171890784550999967646179219307302482135444855001500781240061565539534589033102002270631212576852962182571777959992585041927276666828177883633516034535317215727792145355379278152322250083745521423912898693664173326861508507890073936976123570862459398418632401919340469100931961760622461900707425896271816357464159878727613194750555780830466076183334432522897918718739672434628378780153174861130630450822435954692835151193015249491848867810718583812503475783270470517777683756058179288633041604185638489794695192893731476614239725257427252853092621258490836946753418141319844198270407004946847839755305167587650547251485532706182802337539584720927116621624600964996911066327957492367252412961439706309362713940190375128872538561902948313068189725144110335537737615838591212957074659754409937043633543805650485517812628097560064743063900092594513486971463688500597204788777961750534768736676796080956981780812244341648584080150744663616007676037341888041828023415398525479745547726122226658765640663202457464940599303115673666167148058115109318481998453789348710425016179723647354197700998885547123913750410809197166670370584020156113210466178739153607068276696025041356342394183212200962424027358777931232277385095372656420630952533327364247493820049899358269270752503522042199229472315587387427950916237598128020088045134737504231373497893147220737703263102513921663730442267381637907051648280098753282024796031602044315959448019160407806832193912486470470375602162925573160011664778399244092304006715203868501341799676327472126154070065369177668694755018425438611313604875949786661398563984544915760484307431314403184813180783945497015754005512141120907977862903796235657786477226173466364292969323083973348555088829897450890561387446295103474365496164930354509838326624078102473284034549720492051831848669872474929283756653623086698960574216331438253376746320181032651537389049206758246484018959167063516033301184254146356073777555569041710984894965853567010612362554907695483071992363505962411295227919856468057448480297542388024697000744229286786973750714352229578396734941977935988369533250546637623988759039582334894034406989357369625917425076850430115123326508505944424896603271365296369684841568809004873465445006276102490628528094476579692734084304767511325369057365973068318542483473485916777611892265245479460020405534026693201880748560444741023543770787326396183180021495824519543084830205131039630396140491988513059665552835200309214744390036974312730346558115922192784471304099892502059140056424971334043710847897674002211289742981465593785735702269068996556683122381169058272698135252528979285557872797648513488512728972444816919359202801365246672977059688776952596001784407667821936034717324098753890890907439752071374904322250028103634390758882481287852219319357542258318375078486531557079596299136891301885260596684476168203085840170106334089153344556561796986998281503914313294712646425954479511367476676749387858655103907638365872647974936123009257530285498041058813661493186633444601522239107028051622685039222077241158590490726016227324883583627243440059680061963150180770784082618945820531498609120213629037907216155821916680875879803942305265436611944875930652000652066978525690738960611319252918605093285635961187388013913507175696861194968416462327253286123690154643129975606893357315952538998662613480559926621028985310589196793288678685627570548070896200528649704477618133354062967193443025776729906479740642543333124192151539718709471890293552311970942261079554565184386292243015014569926662499416264593490653594586889269540469453575136377244075940890716006736910451001517609328455816576542659357243902443413378538610017330266218568732506317628897290232066586209357545050184278467803079960436148656132432785861190954504935692228186413012231379056502029883386506283553028521665178742878455653747880960815823326899882952602327773084280796464333568958236713772207332262658309346678964580554317628055811008310588545956273121355331589163008900919588813998136007164534941742894446153889458034205242164270257266406034252977882560048394900551321169719947811195887277208462726654656292881683209850240370764219658032076684291138492257843643170151022178476000623287735224775266310417425781832868476024472581542481353215600598031580992007383651882758128487743980058516265438402257514039070839314722855541200907283307218527362476842648892177674883278132767690110360743087535090165224202997174436152978824540119104389961739150543306392345556653682155755600193780683608851905612845375498819129231084108651696795492619498261827069656566450086141442195427514717877874636899611964941507699107476691751602516589781183424761539332245047100201218071622829641241735593375469784515453304042339582207641339958133450895911287313215774299347191467436630409408543380569582340438803540045508997120600041356536675147393097436250139413466026553911292251537575730329204033341242780564346466547072680765958417259555444247904273176204370578828186689304572801712229921219046402111135547200788456028232375264456823233253731623915733370445943847784438136076602881597771099676876862809076843111041618711549060689245640647853771338646750257283207484124520092447141675093952050877017575686825601778499031838995097231035943084834702751319321936338454418348069437441366121704572941868732157239452560181232366501434130681916970183432635139804048239011451017929074668842122138102972363182773646260697022708983965467267392781645484836497873240623086471947751836194701571456086356511966079358512546128950317176279095147509089089663599103480323733026373342655958537454819550172748530713103395314786071538246754862033390358109920063030418902072555846902953299699021490349192003711599514453897240439537747297565227150812544995657295748538843099375133730681031003020412453003448204221349687772902878141898265558846103264058645106467697967076615793627653185400487736531094713279109695207378087560909045508561295046983600316669722371887963611349601315482069023805402108875773680084981123884413436417279243638416895975364048163572801220742301144912227279818618670583641974538701548592621081410235248813749673422603082032245029252944888337908628783713369819569603982772493793898887039788256974101511194780266689130981438563453785505880090981297785299093419404398758303423524141492384143184909619710155463740918787637158204682986224405726751223344646445710152565022159580064205939510128550179061577928859787053376364925835334791993468434350127452941852988510457316831561730607030003666879090307186299059446682346559968227368424895098625339537794260670242629103208222131093455232474902808458698779681917969617037575819287165826175731267245587414774083907010615228952095582771145437117279198374978140561536141652802883851438536131898673652493381198909050547594338809676678021659486021399125905482517464431222857674624337458087947210871972441433100016405890698450911193535747384326203057038976085180702919067190124952953653036777142533020876611453828061080315333114742141607143177246108616821682897993643116909654323800186059330765635241321271397069730658200127761499522905365960779497700910735373181389924477512877816081480648319020967160998122764913584770356386400058170111823499685222236817865747798723173051913174539374103020943822788229413362663768196035162363694331671901503053033182401347140033475272235661833659523615572316059233214235018575429416750875197941820553535917724033669690984542986352295920872249515439412718621252949722666947209135430035526393247182541504278646142779645092814688703066962245552517092744450898773996625829966722148410038922656328070590446443011955112748600378061831955879007994401185694898500980355736968340023006949645183708686666107092402024856377707461265880108339869179261581078475056077518517948281544573427336826233361915001232294329097319350719467403137430712825915785456820054680996518799609116660381170340143894343613040640993303985801699674326165293798273254247833903240906478756008161121592412638216796770957759568612352072674277436763316707510888096720300966917514577377339191889658162891671767395402698011939509256166671293727716685005682573242266916256772167754297754409418932609950611137456916122609987492103332016730749505166373426671795361440182181036624200870467475054591490060314793283254788853436627404267121433478906003187297105746324070989748340162914852929040280666854776992066075479267431524104085523879512607136201139247754721704223819887758591593894947048362758395498783293422347086017001157568764878313701550218952613189655867399996654783473474347245191562815707753010264675814269525937437991754072130653632974716436164143294151032512039226952035741735368881013642163576243547077375690077843402396636074559648893132412981268391575496151618119688635891247144633574256894751571081458764995335856148332400912846804589794290223028235788844411563309560863068163690896961615081096276631368891425956322134223778245726774253597708668621767727802342698169201525452089647294664193775781219058643581027844679279820696239265934800736347617162462757243502522351522026686042963812061414174913710629759480162615518098851171588742793656222765144014074405857495077425672036850123137457774917878128793449026154745750695776286078276278532671589648207110315266081523822046698593063410405618537332028493721540765979231457754254758833497998804205708992811709277709135046364499159705209138461391955624949335301319060326090055763923923015424599849242491953517713822019653363060557792046316596790500969622625932862802412198350814190295038778086390063209475876759659243735521451416696039125865455961487809880633324862223914871481513425444000904619075779449374881430153500133808218014859644918773409146812873534707374089312741662450865262323317780737673078208947107185284054218269753892895204593466047815059628559180978098251182188776064566319119042619063860177145149752620225004349667125340082576467837120273302343677832998642986351303084198855311568775582573801533226355582536099137961349330760203329199379402395367001937589418383744970359050889495879183268060760026687608565778347348656303535686210913606110474240516065513742256128461823318947970062941892861224229582645344521750156181595504316387334010459983695947863785636164916311186702704029344782331623671930666681519068976854303685045910315141213992718519026293559860786056151756310640177232616014291538752550950246862758036024031073241692908854860184276073429641977579676439927745238787233096226265936686254967099462768635119227102935556290272427730568223823615041511557120879728348754247985561376641868526652901496156271256769056238760306653854850296780521414496195423171670499328401170789371966855484316302623136735814331994683411038472297803088344333201546718926302042594301839139231766767530822407237538071760298967064907716635240857785037744000776486518099441020462240122887694953894388894976798350601558017215758129956715560978894821727963253824694026650704932163421535422126599417664804154167682749802142407851012454611804523217693813206698734489894231505568790667529248526243908976095460011200242842979480476887600210353096159752256544157479918683088935807327116067469359234307247989879696259589003994228989886218241610666942334481965297959879830557549549943038741536008206775482761986946438475151871430108446627352547951042131386156305446273352439922262063448521686813161516041628592272577422853173510600824421106612500985244908955084417044182264425799935459098015181365115604242393575292000068638741864790829024647547833972765337132715494879902070948588824623356408532768707277821452310841037301311072633513864508809968938658932718452569295213033251726210443514337784573307289677518104993300994797285861181392130788650458291644460061386225470776289406680049649172804290400850460251894416674695653858967952361213930260689444448075891149791623396008816038876953109438898155413517644494949274840287540939896156665513894563570705654234573876551840947051362953570415356266525079674103850577472083121375548666291215882826469231491586604888423491746431308679238854906289886585594729114292264294781028783933090989540879302744183345263310500425062121078141576422544387448384706097476050074283499260257239911920715687467647393037456505550776930388873020514798893946866828596610585006524371281466731526262479865024721628458695592940640638366952084175327825145784556787104220873428604778758213655607308324832829611881347404144757923832647660002263137296787877291124954442958115950376549310888457323556274538655773650081787553533120166680080423064659385063986273015417980758941967347111825145145326237381003607362126364126900740983821855578443310824481520831240516375574603724166482620549334465132064479844955494949436003669378839971203712161924830326707501447615823775396141530916280424592499809976501533358936507483490220063073044282297469106854287651196256705333425782411052859750130834233048808771868804190239161744775920245855254609184656928245000565272246320776312701407438358676638320084415293948431414341721537375639836919491038937752422252479274837747552900571256000246383148475768026935330453970116294271385261495043956350619117853309311684172784095861013824482478341022461215005332196599452258179407701569854655915071644517574527444133640739461362379554147514319439279719528538759438344810679779358071657627742279043841546981737689466340867201359222189669408896496075008327906938541822435980301158128356948592752111585396083682059237940108227507732622427132111302278637352644418442819033337570607864970650504052262169187197787044700172402042646886754615748547786152719420454546215631195898628750018800107699022781620890654566933991318697299503788281571315015525176531845709866037698038550649918256095526114276061020329869549657334661822877537314219098996655443673164096008296269255386209301071316818507690763115139141709103601198836283419418472711619563181297841149767418306285972351743575473805785522569221749343458699742559746832724831484742905743977457484424602716682059567301696242270631628841239275066624097357980729036579020698431878529262060894850426099601518021860062393208730046764214809073313310707083478749702436301630604558199142208475130735639730192103371027001940868638544745641211815733380792767175859713676557607711657782113583728753939435414530381391024457615530086121490408974185250442126845887662785128402773964342815280474603192717513683115305769441901040522638032664817410035726809404038631635886717229729361300096068762665061901926945570517703082076196872777492812442575681421543361425182980291594833645007546218427919929153422810946499632622735957130543846094114240849991209120463795010267137181948396740495054383704309615371789072846849773057150837301696414236483155585888316489508676786107931271871214635608627380289295294824312694985702174601722396359789107628149160956063123615902732583368194830246970271119546728185692864163222614921365951406023970452896397761997702805608180381831545506716336561569904335143144079540560658921518064030630659974948009095798809015829270072646858707597423138080513815557845930810587211177404755916838646486060247327751334367151074234085885743694850484931603562298747058209838731141379384974507558364331741196313766215161419253124591498476045617774125829811574298734564877835686860546091189447128776856467489941713130836749301933063942363241579659807844710242660394834397785843666672448316276504838609696993605794481310759043174336520936429028742837877017871020838310712341086532500563020205158734963801701720269373619102693153036127060771979623391506446712460757345723679414174734720744358624324454887782899432400392565631503466569822010637501875586502451900723244365621207346479181147307985746351718554808921203011807693174794408563335626123505660931649807000291073649260037041857690089129180303084915336842056871543368676898384645908295720511632196653815593330341589039939900649731000346675589824594132321144568556618130127076991058776809207259244393429740797332265206389896881336728780353281742464598464851682414164455424318929891741399411440334280231661810514601417365595284146383890378813211461470863234056817321455307629262824512379481360520798156360238110944526794158680640394768733984397951078504566689368062192708234648883954518542740249818519234708416176952574477468652762833327220023912573856558167034963325172228210276421124108937693779832998882121450856397909120186412529035351403892926466943300486070808554259196630613715983690187140755764954615288738086241764203654156155731041150707598967079418206105004247055575164421549750854195492956929314768907839881972798126619424907397298455192219516611550103060813477191012743220672924907898602522529628507189385815812152642792684297732969406742666213487471256388834122133803664559438606717104186452750509940151093811301088587291700012155701530250892040279929795808512130130528191432745720373195901384376226128846414867906139429873618203715071739085291718022433967073877446824640512908242075134312120245890703464927271752161107571834523390190367738185275358122068257753898317890596048226488662245581651216221355870168890792623139430408126958870945396880781278119765416193025285056822435016375993644070798686514432008952477819823413305775549960103087843584183973324931118079622666804323961192884757997320426108242258109919412859488548642472136104752612600100493516077264644582408529625786996169051875638935312267160851460414086124343026022481986284504032113844195091110683489352649429203551274559161622589348448883956230504308707644271421766172868341108443754160754021757185404424732456754906658782955844110103931732572365445578754147126468376262891041970712090076385315933438685674237271568148335487101526904698758224064725305609367022282921223367422195135397432423635949905757178599512951297883229387233481331450316807396971358742681602756883029623108291038504907575285573887570087800843248572415097758588718175580275857092184047357730213425469263901625160765527485678675847137689242891818561049124264210646923114745479779378181803073525850211767359077746361771417158193243838304325601917432390362779876048829083159436621954779343277081064017211479938172815254230534526675315853811685720216800701463221986084136504837252821012002232277656722441680829027827543217102944840606275854406552736190585687714018182933778917187104157841028120484639953207929375565845508493052671729897457180110572015880839704305607222939186463266663866283514499779146052837031674179120052933930450712974221827382656765980581898125759524280405721448541108198674094954990716037486202513128061497699366612756056787981714482843295128161734234319258053616564323846377251068833608569440533266564985599593861058673729384913138167575585651068631853114870345725813977015068621364614228905479505008294006027841994528380067675241611447515723633237248284730020260222642632030895263362069717958662384181937957134479056216792414308879663405514609050807575739102728763386455086761403945154118156683572094720745872551523348244067501548137737920448287986715103358506180450314949517363802533367830154526143915855857843757533751145915561917754664198313042298197574084503838477789320345504720274404214576379099561799765625633451016058582123554293422462899865589846715638075775767245934713132324548131975642982165153026221126302642506053314654990245135607654062088379394433831074719501453611677489911229571430016133005633888188903917984257412919950392056986689028208658387747699902929049815277986955479088876620685201242944417828393160549489381703574584011109580715358043215298711303356917180856270980905882689107959341375884750773669322194371244170113654932583866984341284527186471907392922430585988433888712521259547377615958929692195035954304321256662913354489259934586246381264830158675468662415952899762572931425078696571063495409724871109159519532868122993118304679728152416563634513252740215458609414260179191870294237281934442966164021114987511357270550655375948525409701002207280286530372748169274852224421662109977371141301266881443916275910406291113159191234918705180592602768367815440824940837450740344953857403912639000287748999441313814868688117083422409924393563431576374665605568339445961478304451941504697984598026584708661248792264974185605380721674568492386702034697199228050311238898708815001848058546321196584135528326738816408340307377461888894029311556594109741793200052382786377006550617688026829406256816795783044340428687887296872809164550484654566529718906817607596203004921443804109505698827330102806399555883296409639440683263266176281488049347370664578953422695394226605170808240979876580309831822896941702362599721115486898427720798455505518057890249356193574026189452855760860906329756421897489372826287666375263895488026142892989621532515075688966352004288204533566500506565003068145869587178274994379820187159600141128955978319769007690881233313102303452372021336041634380227071867677512062058726619153725600204928114788211351779828358939104060242111910858378777319058729810846949085252432864886059947618741992120440396196969105346089982939303907059017181428445238944269859222261057835084442994160819273417785405715021407202173058015128766201688192244262982189614000781232335104507066555445762855115867088022549204188873728528354510780400398158163366916624107914280859347336568308020190830476104106336016310174933129233540361256183588531812644630620437923616267795727983751191877404945707882917295318937065246249655396958459969919387048133925569538730784491999189567302862116072280061283264265322013988972905324868832923279771502954748312981793487923027652978690499380109971123273366690984969915985301845174850840773230957992336021812681829988134563193204634035104080712382516988722793975370327983485681962600387580759457186712910527186324140262671884693991445667994306491968878493320758519789368703830144035386388401705654343749806707861139102087982105746318349221446606767683004145879112160981611243075034437065894446874760416137819181534191061272045283151148807865988301441567045058502153485056030494585964843614170941646749424093083899954069208745149481888783904015821628534446745045712165632171099600684858660820507575193386495640373067195601863076328999950486867508646757305853873478717495884472554993299977592841456298942009156059854685339729801687278124812664174597812504283349023790548228995120461897154445446967736596262216785646677041464451616532636876844828212328539509185393874452364287632216623878348092858297079966297221852391987477635143104682245694642516746638194177706941076593640052256975166861264375010305858433488877588157769698802850658488414537284405655600562061537226114296202798779911258272662787003333763263451197365243711628868303350802273374192498996950373255174611634759994125877152235513540846053407732476796159149904441876357724633187106564956381345612903044253562184985951413524813216299336245473525704144522840790745581002647930070877872388300108368516978958828322339252080562741835257953553798796520169663410253324418531321416592843089797690214609520583926318152039360168898282362157796770588748960018895031724857708048443958143639662534738389816030425911471107043030737717249869334107396630838740607551290523742030979139664295171341501211248967297668057731440867936956765660414786638009229399392611119637263714438013387916540480314176142096963553031254351069589908119725489995451852356526484200943957880981284319322581115327091156172166901462622086470393084997507770710249080450069408514370109712661303058079102175780245666415121943905600600500767203217858307111744385837140770856944617762299474871157006082175818751154448347452969011262001138494171067375034566339448112292357709660177876127705057188101883190525473177517845203667762731313697267331663554721948324737453848365772971635961795657332867630904750369837631831113184110362559628426202591598558479930506854301250300262483894932663514987858692001283568836523460741571519058859667740068414799191742771307812763723534456755117106361636453916631697600330589927234385641044798030797811397744175866112800619739611983732503600295501716427437300644993208525358776205387750401365418774202665880071588121131000171406789925509973130743321190224283062798456282398357608209769723305840295216202600181632661558402028627574442359349342096408258641863878316704927402495162750766072118473232782906057295893991336922491481397634928747387882715829797711045979917341974713663880439849268396545150123798045061598607189531036215550937589558462849223978506125402863697295804537761549889938225317030498846117397865728869125449136861806380480245543076472041522351505395998542924795518993030896364031833839874008945628664208457440465313019117700831561402747592533466895291525698772805992866187654806585534725671941474057420683914965087406001820550011091347498089551881021914491469459247640882812201757148318018363918918608438039746550488405927915904369580482708052838971229448099756323771284158748463691006852462589861553918586288889327122893742339708917031424931707397414835097602776201610301658352547920867020940542921891783142123101140179052652739388120640738500988651641244576060870892918217274714597900844495847932171035544869190021478375198400246494300992309292607769107760718349735946429132590530630973545926185534253673782883669921791609892100822414493087348232021226802935912175572303055200305559531677525312845143368361674993256267597313821592367608724202572534330532832467211764743765509339956560650023615290407667974627254302723139015103199620381942328622068919553918777630994666455339801749260038314937765134508803396505904562596430953233773610018904726509284742673307632176237722909590106655105234059904600943921052312065860157035732230444274494452298373617706755114740486570767439212668253465865292392458578188006659338749850891545003287522357064010755505206476923827004927516475708634510369045900891799348818840946448025642601207570266493391893546279342895414660506192522212250549465686885122170149407493842160882103439773866353757852446077209803044192439023502181894184204156492158481698285581354786628379666655080749868220047521425271755664477397943760840828675135419361560154413979460301777267589588866972790952008723635069809225556764552116264216168990553368897990219211686217037541482240420785215111441957473106163033399542691499035006913077369602258910711789850110432800749969622120769556402909479135311084044603146882202654422064322371511600133885523216078502701785898917416339026539784491758388720548159224760730111633260843870566214990962208272266445947434726421611924554483534494740377609342338205705114482543087418837777181319371314774126844013282137087030785711053470176393768690552043151181958617519518835887644133980668948702930326580492628379741795784796453930311411785380247061369901749312802438676409989877213021299595808379554094326102587922696163214964097850905615348162813072730762583175034885796525457962765211350509991974535217492356184932591031232160139732132290786022696393310345217619423167854029755315075456958614298330617199672131848794737896660814122407008664520659011947400330822415552429897427821941674188198868159569053131886924682569814397937176413977685345498923202383913803613742689793075336637255419508375212715575736243232754379168116863249066937322060172886795385448701453418235702994245314431629775137269583966738534683266876936543572837321024794751259287442415693682803082779036329259907263123672442341187110908673094747514580516219981969345712311998428804128924891310419630392068457449229562058032166506794701481858809268205772039131191434644843279590504692494387295259513057311911893715421317301495595592498902412547471822304882297126996339643293179842422507065578525664188501441752632230259017898506355380394976577210792325096805955494657312881824177488532962132679099038261485270094125082167563570342841014344798298145882638526291681274605788774250201084624835522506754195274817466413299497579536106987542197774421460782177264153867304972799687600570032049235856653070332312111206634412138657360540200372158430919712719151795638282786352263886405737560396540194381467950356629460045509657443871347590671266114764800040230432062487554679218427901305345367898050505394048326333156088291011162611815306148181751990674099327570285868769372700012321720891652358889567070606268305479769853307685179114115935066208442756293203127698645530721646992345519837525154920319359991120862253706767874411593357117127706597602352070799354726577540916547455143849675095411085420027884006666906129318420335130472592618156040892694179956000648711294068247498701374917039416924985727650225596854884201237043034104423288421574361639135570353112229964187557154464223187563526949881775206293121144887758146554871479978976274199032938595341752933987098952276078294133875574910476293397717556176049513739244680565830907787227823163006807336070197900694564586192492060519094815732607719671433938302384448263549302777337731392723018778390096919140346618720306391416513634942160505674402964691152586171247961055473537961745391478530619902123156976545548525797247844775470237414752127168821560216762923137946222724507935585657345172992674328497995152435616652812492296144477183098996920346965243258937316923817918430201691828068213611080933938195578592434012510292337217729456899357463583069049664361776452056238638075349031981570099394051417418327836719248216488523040781046976140214511144777482366887554706779726587599505750522017391457856194189587108046851032580745547853299773180978132902753882544273389588863192745048141650743497697013720672498222592267401746861434898121587089705398229133871842319765259897407541191490414606800271680558444548599024462530936534874415931501995032002277638334930036802096360807810402562897756082358350701628897357887681295466925704276995297685072166227678029069145140239243709621120049970744204913542597678682662226339979815992601454842969957031999597168340108009812104930253596797765141556738073573739883317466479017529490274967278583968170332693432704863605050870653052116692847771748013501481516498081003735142874160295344321131135525222242394197219621503776903493979028286244044146456478341349736481916393007442418592348264231767752282080193788486863166214293378535347590418023617038048856746742753610827249347694207230415653101986611866407714595019244580854580015644581787742293687607112356991400005194261607628229550096580494540589646852554497499835771657362022090142747739897764854863593101128735377022459142045312936014438907900629320390105815903848751305442917043381432864040637119291075001093379705122077754082008418092593105974954111192584685389950185872070986173897010349621323979411414503684649606774857900251192287214831441216426236949429768995022116166575909346053223351822153464408461246048651249714489826037695104980638034769585278349765968911662650683192670660060083601701487918121510878097740039173702031242685203124061121529652119867118069781580715343586438602602543784481342294844518705051574881914365066378456157574111553592527179433880735710372101333943062026075565680393156821825746328509397984512465600259019071737100084919903968993645052741481055009738758081077467045141046340531529118329496352587303130797653056133251230003885853611076971313194185509463611133418803802119369757059658887640527198802626572224307779679783772911145650116203175671221150418815879496677495850872401843735604371839382200714208100139987306653429058311806567917418957320136492461853334009526373949879502725315477344119272941294012880143162425474306199044121466072509522780656309321140720629210827614005437679117660029242442210604474980217991879631830216857564105887283816998902437475809333389233394667969143127805660482652324841768483770176275954086271739567520883298909748560543705945197571787239999102200238849835666693026253997743223666020976176395791050333027491782420014480767445590181280998062850923966473359039298795092561791539217878161598244831355290731327137501188961680385154254364870737725717804305194408830649190014834249924058037009727566158697483231339169377280126219526876100696079593651220967547948614506979837876022150355672873336835630218192547984749593924734139966663081759754929113739665939479202265266885984438445323697319064690101637561362360864244402843035040654993233652422485549952135996631252159726399815773484243329843395419247045428956997747714616763788345680491778117890153186974531088759676081581193539472063815945608514428617226381977877454225665101444997631326705868147031037660589652672528180313052899579525259203436851363867820065193485794526614745467406332410234442421506837325289791502577814958783393435698658013847095144938911360111675803134207082681320021511540899329360115082931449813580256328012110878060854986587768682273419002042185097657207352586081247651153390457546581822348480840022993885809494578724333002634130306058836927089027254638700429161991510022542368402558038711451445375840181775257554077473616755167689645477264681237327345356686933194044002946407410437696927933976273172073612424922078758831108736671797967615510721460494669866921279426101878517147188681956994391076965793282252523014277871844807320036416128644763961429116361020613185437557505552311537155655464718754546060893936746002253607217666105932785966889137399785208459759572368372060663401416306971398101781305740765654251693253123745132910039816281501374171394971017781087278558103569053613055535908572264110577968981964480508806754611639277575038255923847986136154644033217898604913592735165736762791579431047837892508721936746108117708946946783686067566389578640131556051935362874737493180673446598473094004512287420496817316843482298029328327635659933939561620448457106442089544344419111842209629490269165017183316800808757501285563250622394150959270678293530652611761495531966855912330144454147342463482951796446844896249297985882153827396517411262784953352777065512039936846823771464188193895766111008515206641685240969691087843982707183777183196243600535971102127913506166376972211372653858131939638357688629224190935773430042078268979571406028089540571129505067712704902783191284430647544163770859511352284129463426826235897614130935869943255185487759793202426617043418148067200557376085840742105285427128282576584368592303160287172654455043193933697918713418637042603292329416704801324970539638876681947596704208217159990662190058814544770239917358795570561169094319939222325964570160705717234919737253439979501081942857964260512116019320034804742893991301053429091296699555896976403414952756818162169906181504846040470153977558357501016690506176344079222191059382027086848685247898072275091964751377503710974656390961832730114089425386824342249766706620615495898540958820612493805123336673543372582521872494476770040341603899183886419224272342078006769866863376976561580020870280690135562186963290026146603881649694747663681644529810871713513392782125096097572647354877666284834429400160796491261993215828543287753055884847664796065358322315653573304134872221123914722469467064569592946913433650141517069084143841036264645026237361823903471027810871606551698689027597533078674131839175809730552315847353126530898680354761369497418719303157084723405202514561472280039782393259043775888348406275309932128989902370131701302595032639777260874153920657632194423358568749312462126404816193170310739897048975539404841624942471450134521893226699246169242355206965153152841895553596895593437892621654030833700044101923074122762646133993437502515153964929511172163341616341901504693732028704109559141635908829487582076417177171401504916594410170917635460946184112127190464975005343092638152786008364479434232681982735558280903653296879131269862469896212505724617193594206925100786031672054111363152092977231794824675859634204267582877341048820826076773804743700938955077776334835750721053695478355980054678732221414096796446112739191260031572745530500363298310256195727537550669727526012990352995103916512798114547482333059262078567781407574885383155763453089436729782262277327879638002064717246547618930367655379912758974047914569020085144180062451139053967950043873349353081579358932901490107707815688201968123479873419884654760235544127306774073750517657381655714244636514374075315481279717840526456549086132974749649901556413575098853935465448813925500894186357425966988621472638161457724043490847428459817368976067769591787108158184074088474818498214999318719693769040073576750363382621938407952053600501928740448469997447800131677307454980238138429805349820090390921607656067354360460741836196457359941771602472005897992328723861389491761702265412694141123028459839126395210165258618090075132142438873442442207637710336092383182340958848335372504937818833328114666838003486772169190772826137090148824213726570123899769326311432009285830310272070298913312691872126332226389831558323383174026518396940740882802322755653279077573651570916040223429653021480384958558705994528884872869135918083535094031613787011572544549453633113611071176122936157834175365754882228376705795193004214640179783911485947021126934109989668022720372652438982308779504277040640976207927503045160300911742646806649148506703804229292228260633034340244840320494915385526651123926991321611778842266878744978232020574338026454733455445844571683351815626848527305553463365188120902015316572546841902189903000752428324227928980824848720826227507300170969735953760459456104716562013041263099105456543919417998935700130403060560031930466670582520482592097866298348877466233827323251925542528215410634291045623821003963059370384945329164980263453879617896523886408837122909955129382274896519553362599641885228410128777253303895685503275580452646105645467852111844961129679878798536725190538416361280559453965662916629101413043740426816240104050819691946721797506092393596249931368056588474163372568708130802493368074053383529865578124673019983697808237664495108512016789860677868464277733044516883556613978572187495542778056917831552320864553351602805502829024695678359294818060085979046094553563667650883077281847258257811262231980725502517456157380562051982932597658450427006909378820205436064450951093176227684022207220758303041298134996071192476391804642450861603759593317754521214658815633867028846187839587763711267652946472082757167418570752196052183392689121240208009997081247943042498133585873858828858681903896278967680379792823876864098783757664489264195567153829245755571718751671598390809247531433135029245005820240341679760918349279266282667727097655214310524496160086386821114760819611891960431451688456937511258531364953430882463055804448131578759539293982511000994213533055225148519494781201617573753609178571490458259898176636218138529828275716743699918460596559555875118750059352633931529257449427118868545074513854900791839964608140341796782535475513415129193692747169961022210806654017183370530150816503441721533084900747054272491994492771519811873552215873258157179861207035779265867727148742514369304339606621331050021521830430049521312891355941458332221866603942404367057049565652210759098191963946503023522950853157551350452248510775929340482511972198039325975836888368794280842348682707315451866728772807318860252646293863266282662735175930749674699948430640042901905221434496927053453207564216684055660220720361458115528392882552586399645438482436435326824152938630006376550373707529674324569014872901874341548943102155269191260984862137021751065817959325008506836166391892597050254805986005530292154686119683633589863124825907147784053485015020982829546973717205896347000998483120665461243363847440180180187439166528177723229376815778423801482992837940627614993573291569869640753523572044062665637037870739686183277303228950447374310891925978938321029452766986643025048740367882781588455891035308077803119181409296714884934597913273582352957700222374193596356811936256261089374151234834667535818009261874755445819864052473694089964200340462671290944769997537130307482182172919097342190449248682832637381026790127202558725505754036988443333861107986551459377138861003755707776214833021827892995030038131395082153033043204081898363711423623013272085643048385613357575213268453120940644479625576162828170071385378801038515342534793623794767538360108905012702242493375923962618011627658736999955027613059785095250963679542177253920149392290894029719427305407438745613816659903724412942792083315824752093529899860799920535794646873042162124059418616092608733576090881907270240702486151809215092309765040450108339554201249895110422831183557819513166078958250269255785603553459932976574238451582453564879333774061979615049364738684834726317599140769333028845836285714955479068375880792541057257919276833470630733339095687067737892160548770896230559419150125018379451360459028738644582170851165598540797464169375029161270909672850625411983310325166914037477797075923457411664760068108859038900168007880797452472275489577678009491973932778858648323261439977713588500836774211631086258169638769154978141433797917882191158755291800786517561076132863103367283781466833875429479065693949530371612997014404344963031941976676638562556262511811952016605729140980969434369621523519812172675845010697840770597482259505764135601670245822684727354588561354651638428938020936049673753334324889346587239748896823436974578929054349268896995989854051616094274199351413225247155318441948531060033375415556816211302305489875974131394402116554434880470247562539103732635578501664812626435180671752200978718682824455137133515941808181077157658901766307380498380402095905860201884413390949904990227974420295966086357767060333073260902898599501431413029126306651269821961603204696971204433905779624724303892159401494287648003613555197314171876571170123003548718891275400995398748116770144730877840287502644510044524456336473282838506736127057634556402715932638154707580444964734899419722806133820821443869980724834286971632106694287948062528921940337761881457103114824242979979065153458680213899399819099510030699625337457729501903183654601291653898302227190193752065384362678903720474840978118999750186302378519486015207543427221133477002684530550290606834265171529643200179306639630769444015102218929724896982305570131023301402045293212619113125328751544852893248816067159248789574978085447561699235756470975867205638136662693843741122271139945605839957216042922851141635728862903968661977909266286893277114636999223662359963312045462365897654065784380570153170607537480950956396278582361037902961908270266811523926978930177038960115174740639076685954215262308986734882143036445048319591492516476101522537314579631696675549852526445840399017343547372245247490283069279453139750452196450031869098514697785678782377011982509012566183909545625614221705601460384553659707378643353904327155710676096305494970416897790010583747833685880710197775650097698241117467396561679023213276335106541226347956460025445839914191710646730013432263978862567735509408858702714620628568775804563707530485794524595267670139504757892683349496850044132223468496531217676206114424573308684374362452056998589270777489261716022334319164786789095195439948824106878242450285624338732682424247483416619805594560180120285278378061971584201872673945377516140182457083631245643205564367686603729356883642785103366101194084361173043568797822117190687141587518432885135896651076691487983365275748755415967095352461856290750645242369209637850627016127031510208075568607886511309792764842231203417468585953509718219693078749860176818955118788720307029087218623181813058746728387414710825209356767190843397075785266295279098071915186632163724099507769283232142528650938410586982779449435227879470683261547834692537516389541169497699721619659868809177188429145897383841021964467214215859773833566954028800419310250367560623337104661761993671489919176035138783135956649077813443552543895668344662160276705835855445032282195285824427509583890171983818431626206325047624645338683841489395452646446939336434501567985440159670894590989280484931239658591142980909406471063147631132474622209688594629439421063003257305630124223935657865104034928683512716626886410130676402957031577317427377193944794774063371982149464839775123240643603639922259148074036624632908350250204017944122341195180521259009631019735900641478428847019420259816296313003325836488522347404764295997845419075747698533085885154041455145018379245141984298988315332919541372430262395563664350648500917104448237841021789546761485478322202766357095638712724923886960097734176414130445156942999932358557837571583982202652443526844308401987770982859203462177321421974796872775521578567316871173502037357634713589280189876309238775843744229063747466443423126664807499670994285531146385960520656370080020985553290451778665570448784763901908084133947547252952395423003874951267357901939693878185780714016325989791323457015354082978734448784587847014723510013393034287421652331019171887963236306362182906976262987022404849853156104979885260356357083326076389604397096780175977641943123447728143802578279732505189713254723679664561374018777762116725666800720408289351062367956403539518425054473467500668390437546978169951824882523915587686233671610365349524856663428263065679195588750502677489083410827827887174433596595183358177797718161904267031006462560047582838476520209694001471661546592189635317504714004708376144706685991191595232546107175800150880770350241951911520896731229478881938004186458627213309441495390176209261138854300147086537448936636111776540420433826108386772134303702226535319699629443058061727817576993539233079229025384333641668338346128200993710803029713834455192313901893565496211395399183085400126969340539303414184147675016394137514810249939283188931633468808229269883945934317323721531840494147473395274645872628684142024497077082646092187481723197454625157904663559125418968041548185517305487420199824655841488041764328125906723305194335816000283788934346460613648132134838023372617590690373700804152423973729704342230246995994567048870425236985491965600415886774424284681590861011606447078279375281306232593603050300038014046049074743994275586663633209214380143585803545709470604686882841234447328303845078100850531203547088627734792334718733015874531599580377872373597457566353263639801273081491139483398600511888148346996217637519298824482935016209003387177439614046513859594202215107119587589151125900993681298588437732791607233171871242292833873316923344096891114833626942728645067529099922993567312598808370731650667150425754120779482387141647827852561892904423223383893549704985191703427496180879412495645138293330859223591783912532236761872185841338029366391271862534188294812026321422212412878171180307898267940762363280406970448188727032259835483639786468377374660450851922341832330094725481599115732709146156443395440677080914773832867908188255102931342091377816084195592715035935549595072007917244520305295852348631836199403833225002818042861960069941555794814561503899653584067566465178936210444043058233569241757597940752155587508440501797159153978582282570315839038791310194490369833902781490910655108409997633235987509219540045083658684860036576649806961102999812769148444104994740915053820692496462646749410746898217519353039524546672210699089266277663647077574097823644512126101958444215493781916940059720140307852185260805127830705856058783366932650529421853051940192366606323298014429718024093706845742992749194402175892848921490924033133420129551616085381410243325093068202342480326323226845100367841457263814346188924992898534703636913720027356888129250289457590822932667214037850503870451899608347209598115884334044078131967672996734490858955626234027463683925335908616242273344722096847779310990364031746473602386854734392386026890152844387132253021394096620938351384384644299312030651335821148906841191120933214399675723607502981256739781703236284301528957017653728363042783698947240011765290240782105143380578255720316892475731422773752363979977074840930604722379990415117726841578611989697665131683988311133096655124339032961479950536136884314959403446203797032230729219729812885142167576916491159710203509065677664802453714127108317790810738645137625814715964171239743772007719264021121322156441549399323413127900644497164342843889017816086154042240878187141005813497288074363075091447269483879444262319232791575624765979599728326073006003944355349189617173348787725436690449084688031255268443859209386869713507580467540693132815013068783471849409026336025927601904005291543006141134128117540475711394502437551185852433497423660498619747089985898645280788927345608797101395598501125082633980684234312808184409844253185342476422116337124699667603349881704573365104674861529365688138679924009186637612682691681787904567382849010701987772738470369348943105777659071621648965844868453093238831581694200580515116996595040546482614642731832143512135605954174032952812341118774484048875162404940086966586136008206492603696026139260990997475657103909941140174956930436558115992141155788218996388360216615734894096789586584867370474190233953211155963001983674443109666138788533881011603078002833844809989182149666644809869276561762823564622151302934569476295631099615426889230483790145213919897896359647931918802813963578221591977570214694648768029662002390012631761272097572363296471608177333101689264127623269373010261614422386947986313228272035541262631448905449766541907557983612153390667805846324170430461644683233393675719086812323871939359219423124857946861249141166847751610314014415752089132481572017415473391571649776838197063390616963409818679286889151693291799077868504516872460672902361665028293005366452888740344364766757983702905123965040478367846453720284654081785181366459850051774060827815586189133508677551893487211179504231764362748111928377322042312834055615655756104266771428404380358593764723291659248099593507019835180196998143000678709312121106830541476282904678155106790445229232211140669719217075839381227086496592827739825062523774819955480558727066823937106455905513109618120603042713297280093902637595967891519701383381472468801242855263208757539418423238219519807607318245300558965024999334234824043205655764894248152571817685630436883592818033474785274029812283100843367995462421662075704047165669393874408769473526655317069888189799925232101916742114031068545832003666186676487487876305553578171539973573632585142945898749995479588026617958306456219521719587419356487897771670341396309368855968918148469676432090276907234283967875760224322403872584958076220689730172468632780478063501989061398392926723404374621968182669503343589495947782835356927559842357491292183025172412322267665485436279431853959227244649728147405838219139711056594354722856637444460617881660432976004417094390516571676356540648707492845600077791605386110036816555758639410228652540075088263888983777216210918923216451243165130883230808751935552366121065663950727487957823986863580302240669892191755365955946127992503158857312405056690754874710779449460117180431889357091883807415349846974613288177364180939615851710319252512074792423798501766015490137053356538445603639552176649703066637466963693367865376256616941170236228928406301433601432618567431862109300014950252791944688267601554905241300410199263806824042359114055665711610763381704746066083559682838997970073358554888078630376182797373386691253192736979821853225851390497785435342467230335725345525656257859571626139123877672036187280197733343078557938391186590700826919452984403598784832231573061967767497075566222637031427510848394449698717618884927240293371162767767920488309290905838456186934944353642327824485267535862156312369200295649910639322540340289016302570791302123047070031133681793385130236482959106838015032483028540765025258508268200618227813370782643302481383924952042301880530220816911967498410836484603359584641197241790225638227543381790891122534300037533421621881239687160214310722995880257202345011366814921582183466523331176361934490986857889366367215046277210622471676510399024030145160266557227116946516170361737987896070607013814525697009180289158706177512420196076325702894909876067266053852208940952635923586084208115559411782536196163013468627753023514480682978033278040921141200442038300528150712424018628204683538619697332119855190766173608341538353308720285125833299875909777813472761411622426896681068916396859696659022103600068069692766176762049922507648749504641641796785435765220825719303243822507662637300225315575078658496948415674440491117174747996651379829153874416092712326180397505522402029310428953796483749815054988071551119394778152998859535369644332775705623092799479599536159653636987583747015102797637435901437840685709020395556035090141849458815016612231856914179659739816931087172302286172766014869004665782168270092504544296718608576116675987373526125161352548422947227784548897103698670729166147721199346995667143523331580360971139316464994087083167118000577602336653609212260829515917797353368105576006689067188611134863648248280312336659759699204899871567201097794331940038784972303427949921429303449648760375942392961137586720920001796926575381552577760249450101848775402877606212314810459166792977058469662398639010318426082477292177527892382851731694482817999745842704370852650344522787396791863347242005557014769205655533540438848885053140899916401262740754268497639217417165994466174703202344735519984989312398183196966854780280867355685130888705987056557936682007650042796706210522591067358797289585622155232619409929971602827212661883166821736980080206176835282093197463586622147100720195215264054233449231662793938452123434315946638566186631015992834957270637216338290098273266426833868820694863870118777853625148981676789609515500661699210572162259652625370178783259373957370683595063482451620351919005977681405689122712456154672196389039482653128776843602127835791168904045996884943423568450351070529287049305703125285821361934054102240627580834086150808532853852803429568410398845788782912542110160051815343165926470752871117233816867394438266667872967508638256808321534695630093462404821306225663856123774385305506812244037151587669714337134116413304450938195848760631974236429238650394192212882492595957127832791395811542580077419418845164188777629211668503728499366111521629692420735228438367237040546950288935671870424645451964194763111990549676907137633527517363563538609328244662341214330766353677779683357515514626084378386443907885256424665918538669935367857371964312475215513749684255669953965819018893971660574123056252604775604288782198961517021869593928629203102337259709023968433171031475700856829279488365225531704731150381512873930707026809448275333259223943242665011816957377505897719546721435159206138982585944619194822407764656305755668317135664376703034297433208844863194325714965625422226350019734583050939481402986274822645070728668544300598653268167222571378948072922933120403133448814411163959546245712406181687218787628492856489802400494156863167517493732719057247951707082820470144635868185083811643490583160721913727763096881947298645021616418278111995194937422631874317521977404123771605551485186128610426470845825378095200417224419488204784933798417236676998808244005808940531401878963017778136695439561980473494483976178081345969340565869625322552834986089860911845850979286091878050356340321038126915991848507504482011585726785377829027032202495102909950093604142881632237574318688444745929459748210208224460083193624188011930804084010322353552120784886604306260114933431681835257864666366745572417619189731892657620155920635473707923325486895185730621523559154639566347650827468713876111341422091931693841513797289331856343190259727921621339009904951278907790904235612761785045838138984383865565207596798743647635812218402167098020157549146671593001585474093007943216179548825274186460518878710787053488378612992153344846289065925101921073354008205360228986732212888205675494517463073427731381402475599580303619054479702742725850010664043825861328687167901022587159620812713887063151981543716104218373300188084032440198018496695377491512643772730873120852896683658625729147072091636818973581369958155599290441843380453453946017261084598163897784741893908894103609872814742463836219793315406755482570201740674905894480698260855049031567094223506503927047092598217068254530994036336976222517059951177727406059611163526269582846608155024607336234143600043019282216098128052189183093875289153872539710087258975234824735854037464483259321338526663966689580090898951379994051118731261291263420383837320277544848966762133756497401780123363659354648630248669140991767433766954947974552931729255650370417317145248725519256908432345594115567050397362782648421727732418861446194919931587836303227417898385092100203833871749568065100960470101945894307785036730856388237721385678141254130262872832613247158489770329168741050104229262294819509639597339759123880173800228511206836800203896235618147033604247951153060447837419710410265968491686396953465366176366321311973306178460177605381470190745913604474632099189060882568430284048360929583773346020960396876082484050654761726832576200945048798891563866486977178295677125159517349743077969607170930608800207982405883020511912951607775100246673370685994021975072822564079634293803142678360356149571444400095775369067751255173044208016286214252543151259041403787478925470615364751422873705080021427902720650094982157482861970507441200378617517734699226867926325489296634334605855084117837015671237465228121932990165565636838350431629092949858045127585805255455424586392035176328539875053138849805363018048054444631409048645414470113985390410270069697227379062087895069541586567579269635757701479676474983139833806869088067238443221733975871944289853837179654518665517784826679875234416425183997422788709438070947876108382565876509895724938084021157133913114341491616272150106132231118959488094653284968117841907056726995579658526354185813080549806714267077503586778448392450186358215571090928499450952961547553078708277221788722270125424347575459437492575148715752633171855048652726610327256890679336242139150568429716737538666739696779640135766730117449320487707766583747255540430832237850111427146948855891947372693113228023312627749884937173548885244313162881416960531899180843583680345796808697643799120957347449756312235850897931777106989995671861100870101744202913251516836584780121512203802523446021488109926140906170674177814983036610441171543277970661369318057690161366560504743037035672754762244330441778400886947741107629712581405068130779254701122141577919453903963313727354203499276383081578246581674540290962931159965799368320109881700898331607138326394281625548325309046118017775283518707816223777515520294920672080477799020080162887891768089364606645835738884402673304301094855692678204255054268135508475791961455557841803592052985620683167669324922053527703454069152217079060940876510199683829377021092993507960466181096486024131731742447105820666538387923356312795827691043249922478889308786179977635261359635878645974409082263583104079401860523649172490810439195731292540858182348025581959833235753041698976599409329072651067099923362970021575164512617385655158710704278360114808485325197569882363078909994612255345353613310744756694558413811137117572451999659174494950840664631601150292041962707947259163886922401471549267725371595879037059093929432186128905352184104547498651346930063114990182746661656316920334731353639615183425470977345841020260362198522596080546840507537180120715039748350282111954192061006777027247316272877327713521532247917218944317824830667461777538999937811362383443906083851921562140270108898441464472026087106997515272565005273705604191892521145062387333274390598896358112561665261315007834213555841645809239227621428912447782751711157784361449049649376268692291476913308364802187376676575555237886937920939713360966458126382567353822662846949585835413886834656516641244198156100374949695733954568538031742453861566772198561003706225249142886455598948229729023488703532099701373111586236650311004331345103820159287290391009280544963003678971599257927103174574377895133430989868164392085269135871952396724177910817268578316821025866077840423181611912273199523033308170839936087278308375762713445969024463306325635918496016794969681323536140474151703267765872943087300499649493597698283544315343829900396144500725033869099735794775266593923678772676343538590797333856930556748607695387499900577706431876283134012295814551013592637777516203158535497113087254431894118532139876906686463955377183869728208339964499968323441600336311840225398692199673761750146754216846574550546553330557922711605973121805578460938037238776410509155049413285847227183584598380461899047988025283925326836132115896967716527698993907726164234053521203393884637720945008152303512167121413829184995226099787781930573691521213207159181918487368894006846256964540028579847484836174646429286150116634249293503002854146139795003199793744383893663999165592278954057494172221777888922867029431031380426649184156896045987538141971844144296988995966278073234567873377816055098000554355118002154936007238520567940354328373444863243586176240945848838197924232019651281501676550765169045107932903137473470904684351532169899915993409060850558287268685381378211805667636742610946161266806587232818530336260953434396762845172852430609376760217857669929116263375695601520410547317525409080089278099737287678094698860610844894967824394559494972540731306331072183391045374823676585535356781327067169094394919734893546539509687943066043678977818704534236988976658787396160459953387716568581981863180380631755525689513225277474422105280314721805290160039758882672966586258671744467372256506753214979190462067413495686027034208723277431796622987822550493508258576749944172101403389360486578194392251443958296123511260520671300077727649570720164985437139603813190728866591951261283134478223624234495838880987529133031154657499329313906923541940368139703456024656286624269080055162079913630949158587372148422301980113117413057163584569373596217943519886851755723375981753346510422978768509355447522652018193697259793981255203120737519989783461656722347888987769205931501199100583970320890717012238707850339715208150686940365251425955015156254412984020438300105394494810780704461352124060511379666561674714010259320957149081505393155778779398570934233696591542877785284344539744027773444986120211120899186726099229570470111812325330342614302092972825906395901768667314285791326092749063356246734221106346464544652325692973822295867909572158655467171971855427569615348586551375964625632543942456883170444626348688381580395019026834425394716401161438788452973379980946453165482009306419529586300994100836665016445616186129785825769569261637172737612777750966914125513797744454269590596702228532489763762885841747050233634244123614187717118455738675192654311510460101713820001386373288017957165815200591893671861460907083463591960082096583583775020536253385649523507264543084416781629778764228475834984933626477954460274437687177458262879433533404435664193096754242705414885197838193181819732872948464790319867000656791055709954378357639387581662983856282642648470877412757575917496646745696014455133070248051570490227603371385122173122287378720091156774084803403073237312361451219405620791744195313484057325136146916999264480958566177610225281719421519345592845274487285589325887354171225310062480337451104934447434739615303785434253157423173928833419122500616258838537739517541165144189828431220179177712333534345764175560282017544230767574662578426124602721242498751626855671513923531678906389260404127330251883591235827247615706878680303719405859899388828907882815172816216381107147411032501496023559504376209307502656424380287928073700620602809470358673857295670348350178813607342288290450193826974954004854294841327848592992191973307562686988492054806596978530389283859262653891277256705682331761294268950525578147867096342460298296817118103524830841031737120646907988359987579906701429303888432186208812494114613245177123507463393974806472816744997961785504204051825760163788782408329375980763745811963602995651410650573174234532160156384756974424413364754439438982050454323216672950561900623386504708846298094703173794881235153059242241405314017421099250342778511256473858297263124500694837149748160163679964661720903846104851016545480038129696232495267003905568103309683144139348174956915606935051559359052342243532775905300713860463361316856887781549288013489601400454572900280392577055983432607410356530042123907222361468729528754304547432680026724734488994937812872584220829244189682395860382082801016941601119242853425564193331524902810833485307835148498456616960231934756448298415453623471886908998322249463287828423835310440468154384235201148405051510202997436949478059921011500298070760721947441307240603958365082828469836633399157703203810692677864319639205810406434102349175950402082644429109862486425921461225416699050387422429837487835574691391852496798904573650343049792430874464757971773414756301084612931094767739877518587572325977674145794433191078635040634083933874855668973380412244203121295827573951277619837125894021270226477532335470105768669661665305640736909842353985475533221012886257298024359596314098024399627262845696270132126300899216840198489342007063872244810472654599357628137011546880761607634693408038507319824172613524149643562724747521260998065880256697627193922974647699973956103863005517626031667313917190811164242290497485728323645232898822340742455304084958596546425192183433759943237722263336964369847231205063683669921579561995387831891208866246760332964026801868946216506653543918592283426690775956397983311706524875833811332938889138154703454550459664325059597530320666374614724739760987570961249158839009947279826780438828606270995243265992646938664034968298595215195079397464594524355334009562876571056468552763417076320954657649924577267905131134034916299010510499739771200198143032168647831642781718954226949561923054762984150269541344289493420701687451633868264809255698124469529324793935104831474489365292430427944502191581561881932530993135752460332139259508283734779290235645947390774798398003238090888143436968564488559325090962339008976937288798245458734313599581480278555214946063745875277271593093240842662555237986995225207856087839217410594804775450569096026081183465974699483160961931660812520309479757837713880283909556982908446928772351465783671524552579371651173775758254555623612420427020550817594635569308895303994833048380138523517837148818987443866865778788157622327195773020950250368186100298748137796638836205111122142733146725447350704859217193793122367807092146779976188734686926150934268888565653309292900094790290326360318900626458166288791507586877356435395996387269456307994060176721600953336052939078159369738484443853884307737271171943667096147670389321022066435001948042861122717133938472678952058484276968667124016680845394167476264684208329735151946376883248854499357056567654903758231986095930411398573240632673633065178311011266978050825045062742532944407115921087008171701029895058957283989709234473797457994071451212840982737430875150825519967035761158525975611271258387896076216715905713897261350804174906965988450509049076725471973396184217610416228021291756456219633309402465066002506362726109072760266891464098969796013613520808228366511156969534231014241623622494562929495465554817374409202472120955525968666038598449227786318391777131981586305963841499670389679475156804340456219397219688600521955606121278914604998999242830876879869890460600432872639755067039656616685996110005129546515813266325629523752889700824074350376870624443319609036309280344412832116429006161748432875983583025088717513662885935528244567394915446261481223723129627068537840618915275003495811050125598244935640575548811722504273117449696807102211593602941070419797548537527721792589314675850252983666392218576731246397623921534659575712054241960412290087879745287687548198875423934813850938299233283650948509108910642951403309965283663595950825040171546297354259712375220442472254257101751490272635440980933569851031622496970209483094488994910265576504169639649400798069056018925282149690160683254576876372972512731212579065478479162712244721158773976175368088510067135887352581899946171296632275257528941786820159139013634183731414473014550641103587450675275805408796651874560896638311423851011845839629957502334941599601999445105975204368281165876592915614845680061471901537590779533056330084585482803365627855577983177258986892613239345826127736517875152114787179779929036820495186336087888362558555644122249610250194614483660511368210780738400563986103896635819724034068514012899186559065763566963744261106701334791991523160411551732938840624560515152485286694923600320380701665460279414957967087322454598504961816228409704542575748638004620626306999855204025843915148979424802722191013305952300278555200934303146085318015757803621272335864741985577544851335105481825758166482863164365075764821356905190377523860514270542752450914835629591058856562592969710825787938727425131327185284569929105443637580419733472854762954908144060976342994839093386945365393739878452054150748993216237188173915490232532907434236357563255031006204153053034549091048367841518234089196243726816691635475847358166085749639552940963383739912999861977369752289105317052532707399065516256977879490163164034792226701017607607414958781705252447353697175439565390522786526315800447538661435543852475650381246673946807081678565474842161995618587981939960617607776368816121576279997848583048277415612765885520562480358369770667621677605942608026824486372784167816763049308510748213314663778537249787491483227768565804532118566147860004979407002331312176919158896881266752249518754410967227154573328576901599827475906149445795086633737146094701748817058018072990259848625221022314823369062028762543451240605045766742132859371142976891887466570345477765438621374222096676848093746900458923693882702216499057642640929776350587389371216772890105617123874532264409567976274973776161713964430217445363040254939727096308000056233808168749396516799599714399627038993498897441867105102459783388977861534946832166797967469334401122932863156076778404923975337985862126361008847708180641583429328163019774873194616537893109937938740429524903724267316384154501408317495101647860849720796180005492952375976689959382651251491764269820768032564088369125065755262933511534722392631547766922713938427334632712447160718843087379025436451649326098551587349382506887157055115091145421876830076101735602605788274968909195392158937190469825377438553402164488585187213748934608338995450367309102307163332886489582103101372266154753138261712734972619790928008401423568102172963464394842258980533920110349007787931934745122764206605962661680607931204913847067044787911588519576959405870260501100240730727475161558618166655819016194173297637435651883601647506830281258552958634160293633015080464970565085384975407341291725933328285699222390951509319869568368992444720427777536449768848125217938402135135656775842082218826928486922399672739035083646921679707848251511377825701079263495328639153104665802727480042522846904963546729173919426683336014260895100905255045034396191981878002993934432764001400765119207988221806849046983888659213135110003759099106401488363325231926233477857806383658065211516578045433899867418647456494502952279130140196095065564230029703701681903116669671184418623689798578313441276405597101939076601734306648160425080125380015334118357618702589576354702659376012087257396398619992828407200850340803519301767681980018981909306508314978558672186806827905346601995910108091702987016364865839066330952892744903397337161653649750302122892390877273729402101372630384823675095154613758887565652883276834007096203550566255663403820187567327409940908497189269103387754408569592457073207496856766891220583921539880804838020266429686526166831001425265259096241089614828683135955216338690207988293354915215799722219881912453802194984025340154238649223431038143087963335053880773264811651380006293874549161369003094354667339942301421896102184914955694262523078465959950732705198805517311620537723999083697891915214247054377610977422609938232779791845147090076149021501943104433345706627424205161296839194879541094599872601237423690391719085459443948585982947898089734518123182323202879997787052559986285575327027504159445636715579143500678005641332269711109392805985910289882833392063275768357061538480571167850595689797773121861178771408819162941103044826759072975150310633031647209043698556039585987792788870095891304754380752454281039586211370633498939116161465686216582939310463293842038570959342128953265798833257439658037610594605937789895193717510767372564733518422451902098891273560500956295761593675676802637161913668285341484091529440941780189605152044043797496734891099227740690279324286768712743258897184643934559166371724816041289645492762680314714655940559351920801495156052558081479051912501871752251169495541268928156770286797270342081112071122955540062133601621654426504686938629948068480670629636770701196419666284405765184320949709455339531322663539424272656570947590140012211377863812708270635316900161096471182409170449979928917820306509169691332961081100100173407906188514923181337901894958817706724946411892767643448622483712306424288603204795458122558930676892063897811897666242544738719792591815450863921071223651690506235142293921402966289010723179981720307015878687026703067105327642115453211509794570762869314732496679075615238094056731792931646913350190805611986828012986121529510437258933412433799681780881841151594591680119315311520525259604223385850151515975875885506090742321509446292863877873880736992750536936286749631840669104491440437851023109681473009075087187256829690699933990510417836537922169814186865328732486564440348739178796397604928164013745392972322964866362483718519275881567279937027979009314780938483594605196727532269489989710383045063508261240035523587807672273810983937260162451560919434379004429701034497916546724365416010254471957800821561135746305988337126307934565676294528535722826844795839063782997106498150807837829932410676663330258466315891344876629772137316419857364491712688451631568419377739773410428885450064813404197674878477288639305988698220037151254499863692265460840281797682307110090925752348285628428464624470594713384275711929619811860613031169702548466758486798468389882345177740188672538242292703033012231703801802269853627721103434340010170342504882345957208041555946054439356895872132338850098565306925050055772795503492909701765791087109496577788704086832196449529714720086886877491571134357813451224827992652817607426772750277874093505177307358607934044022035374674412844050172744858724122294742417988594808552871886787193944709117755371299874728561920051078394867790661879061657933629398464909604504878041149608359041438585746025407593687787948241308144668746981290271344297900947374427720330586434852513048865686556618293713400000537114789493420142903866654707679214363277907778015302543062118371242939116805849628635983732091625373731798165676436223188692575295188795933596927087555672406827691727453278894757397654545060955941509080113912270271645302932922235954683119545180063975665493449644726248115763471559066751318775085717866296074394751606891636595490580248769908523051703424278288995871438789064434345325765058836663732259225238110319541115941707367613785029793725712947851884660131759538678214325343302369258298533317642939128418083166998833325436367982974732651252782553973096120341623361515262667285215361596425666054435321730626063725656117588125756604980674496307603218311039551608795101908899919898011471422930133258135609367869982394771645585988142898008524464392448295781826676651980590320063195283961618053368368102008649944242429529091099593743421508031334811789835061160472603438735636603683907223749801876468101251502203823027093078650414672143173128281389740261388891820525576099940999888406658515371068815379888024932723840042265163049769073148763616740924848660022186228364264031342743184771921525201104792047017106637011265185003283735618755416255858738684019069291899775965991823515137963018772263765490660683699687499563766924503245137286633911099587856359595066902163302286218821636705120552719355961781725467180635764683646239417729372233770612672476460168411174985376064593673280844370195634503123233847431402799875223512918226724041420075591164682978125257906538772795578750479708739355020305901323390719621951488972679620335334439355770676781008219696467604047312264477783743053528064946826755664977352128661846599408380261870803453107487989120470759986344492700287034758587758523130418029273140634037026521364352938734030583883240221454002923006470075606804592282254963708703564997886024629693487233807803730243023658194781230896769640330470446485835180608938905512843616383358070196607968557372313009386521093043952161204944971139266227994096413850348977425616163766878255982928838826524571249683632667686970864914090191956432073885213792881435858496809322424711984561675884077769891956017174618285396392695077505360127114045653583472814749326453476915838269922150523725157074883443746046986221564446514993819457879574388009019758376790386844148535176787900445160243372600997515348699678510458855983329283148132510293587969206796655401914192662016105145582080994654925624472457011527342824494593485585718897757417359481768899608355651560127321014499486450651702278515987219082170748136938208265527348357567918587458006341389640696742991785316858717730995082405691431969275339195738217264978045321674721476772330221415185865545304023240828054289726341393907154593958817255882527856538074852531992403725592400397031531267052964088064417847668863736163740256194562290802920348238344213407967820600305740491623739430718098469693594912085563003217787115508956523137338042989362456385904545871493397918829575949354571776198376616637456381689608705089439888845145380567869744724742982427269521663449097919431456432174480821741949942912632931251413840160315337837534900627050347938075943933901800986613325223504686624374724869110552860642420427106863453801736303524067534417174912975231978940573400596313155806131946451120172574484023935796079800187150738105520799275559474799515922857073207107951435993172862843820379451056261083862826573088981590968683844982546370615234645460198669596453267044500572887175970368076378248655962221558325763929378642611058033356234251198149407591547334810240318671481371871464633369851767503137279065342744663121550856949237121759163297356414401953869922735616450249383235047281052218370858035235099752133792734148507211622925009523864529554428219788042743322229098638000470247402789487222676173162720354572156034960562135395635311022267102951916992976475378263212146633719632898047869414565315298613816421832440723818934274593730716167030365879693960114083582396587344702451333383418159081767322118144179515657019400185334684473331136832072049496241663688974826005711767515477333180960763599074492230731693201860922750963302346778782336370787479876078612760887493248755157440956850524757605870977116074810029902281791193496687837160311815404823780641701746729786452869597385547823104359962087511387079979171563130233982422777536550264165630448164328935967204967578758742494166582605231804625509055967466302595216400977595540365707213842049847524020977713514098569911590616119772642638775830435533812212072429481827779292448453095788015641009929780851102819833578364155350999094067350015440504146577062398882932582700039740654278016158699717166013328684750517368485108439234317951816582625254213392544639948133054807159493465075533400940035183524995976805193666247762655226340892233635595583521664245119256298749655996553720594544283351095349954443227568818119692781006336603635574953195596670609885015389858805487409427945514329263092356181407368362214101090651559893507545342453206319511267183943367010870867460743208383176180882738624076687427381484302324270595724451933594181068074348325036875461557628836367667258224109305026657117040107716482428439233922513561562131335650028594784667160155240734396655334203339153553985811061601451805615044092328300796772929637355709491601694148054996109603185020289197532661957672458704571239197074759331971409181760514559128408252954029931497671741901957349747220164227341120746001005396521116877261229229371991285878014330138166548150527251064946952587469373603716915450540649208440116333458844556213133098761664063500172187540030646365250023199646732540654799969698963373444232013063705957438103183453927459266573547127554608383691497456172654470375306742555836534261855218556621375143036185601947159247170295840717277720525885854335063433494050207074824506203272716063182291664003141284927149638044671763567147799342569240544024809965108492185161372760822583897325916344198069381554227821779973092575914721779081970347378398017064121945772213812732993444807924015967636476163116298553441300249422017179444204473042113107081893386766231596230303643895253216232957288238123368502115633813905733413014457810889714358239943643222210854206443439338814950690634162257799647925120899132161801182829593003042111325092603804044677735334613945372236749080645776336343187177269768189120293400331160600703881300693202582552338607856962721250983633451005098231179398075764920971365274520912660930187155882435391478183920031798384268656504457577350631379065738099356801763790946921467544292658581992901543441073911615966195979925729295020527475548602584406463565624351949253119651485200393492675889150270884622741433928901056298622490054325060508537424879864756423689924202507935941289418306253881685566721673436654111072539470987051900810440202523753104889133774571503292070099730490485351092318123338807466677046356244094393091772390540259418802519146252117001760218191637545708572800865690470243726075915635040408980956924888468859643179113544807123098187432375407419142432912691193399033159653402077629102687781196025924430303198560659031924971412744860066267180250521022590398858090591885081229276044375706310343788371480024050321355488973574319185400480323462311687274329865079160518639618211061419465241180582611057791328587757120894617972000037324956249164499312798509158806118710560652482216979965774401035822421875624239474012999722792012546648477535114286670163279436826490386551790077198306783164381791068552655603638488713552254758289537215862998900167519874542702125649746012875354081854415120265770748388986612494231512446718410670521933087730499553804901530120557875077194115279883768922014036317633781822283102491889840275380826406021523479627055918332290591323023928517064872338093831075022592809794693549635532934080923518843267414926226992525946709715491994071793454231512986933229662392737208493128775114395632455549402416825025186585532174698952579913399441924342374091677141200873455194355412037889738848933629194901477934931516428565387070731874520115635106012387442226986190135385955391063130766379785260088867758185894081766725951626406434820629045630136362854770106357897081771181766729778566867607186315335562741133021495611797393354263402783161497654987635511391830292851657141817494697659570930304964906248398687494967740726215825297343079047358338048972479109847575176602970535444593240830931403202758449284667388127212559305975349656756443977602231853233135670355798598838328974718316236714165482983969602092624827918018954452496976082643611603174620214511585859452377574135538994860226110343466489395337726487175183731828910732144816005284252459909926526857589480964100435534120245407931488130607437841326911856439607236815553018133814130372865219378362558215974142478944418335965129121556994107156943485249922241683387356757841457170078775901398512485829372373383819973638077197459356469162443296191473116858371231924831090232053343787453084311555564290525284334761222006959871322474153024569209575478233059359973181732418740749566876686088979715836662378394015461229466520705134608820815736008490376069087678974696418236626150166657492341581802800317864883260788257442348395548211991047524397374651753792235540561230457521263950720802551462070645563748413105931797747527572051312712532978216537953925913249402021300878243026653243240608348489158791083712734162342561285420377045208103107290246268639013413450869689589479513798462856990221174266518986997077295596694774604616303905135349723633484553445779046376082447420250350207524168653709626504901628341847208846553177146035176782241778363082127179352222589108552622798078055612425459173688642444646737631975134564674989625149314827664806897002649351450081847136162405908416348501595196419747023975959467190637294749557351331189064562478426437275319377320686390797456428407607637058953568047799686028036157311388308794728120377632189274526958872962831417874959108425217719473969999783924739806574858613469566411509022613038918382399232975631186154867654778724599114598853587788817522383536077246247427855453847742070613594994217090792578874329586152688869293148005616350635801281771197066328639567684267551576890959200696184233190286492842410830674742326312949563974151356108248883663465239865349046188332496311902070664187448461396982887636861085139002559918856586918264927604731193499845548408384881098125194760359761647810656242332594770103196073192742165380250253956330929230566500911142825894396471442904753463842751899641609831418195898617240401027747936063993177083382686840684667793845900936853341875821231033529997640787929851370403838514864563964726889158955426333345970190611532362823165132024238049637061570443969170032521009564809329605226959236595105328862080449052087483655245530294215316628546000176350858152645042993203830390700675470312118658889769951345787170340424773753557297832977628398535719568547575470059079840611600075737918747195401750766302117923617583945893737068067140034930475924831989199274174070489334845720777687527747435741752789304742553791503216011000434536239307366180730253439864721429754762336428741258125994812556214082554321114895784022024046970788872306560289420790405428880039655850301861938780126401129397300914795906701197913587868049087121438413732155049663749095917260678299377032484481438533548357775704616719709511634366971255212006770087308543578363819579202310117185741360151294411106033020761177354313127225920456710999090659300476695214429908978584782641494578408962544373619307617272988407023274374301715269286864982033766391987172790424906846565014133390110586018772882655643078713279565223421637949966720707343552841705617378128726896900806862930308273878478845818906067507605570077898979110424833108446553920404490682860297986234189118919293874193126176667564677877978461584890241295241620376999869258630683868864200595018779447603409094843755999519272603063319023349296788129717571449310665260886596672611760543577105506767775998313876353541785330162012730132636548788402491403702245147980042663505294585460397430170472569550278926369241811564614111548465479831712007751037333225693237033455528839886799895426802371881808473164800743439992874615470062855033240874766775650892301485359488589427518141173964789233412354378215719597805895052144311928936864197951888026795975144967967521010732971145619347694038780078716938228253386077610407511579330538393463357344738488081437787030214589816093044712735386029215619019471893799412431257345649204873598162979380041313699655674101294197537815483736947973629660276366690593386822733492499967125131310036059684388733151839665600435980265739036520905435380691344876993875633401593697425847809309801213466503913995593013284727337229495179667576421836598294621750417939634214463325742242480853270601285285677725422762816221387050048223227139600315609400998329725478361925412491744094265170342673977709234291850651170631909431357293796388278105912472015466583776549928133445791891302645089676735827057402158276360337516515031979314358713348928631486336587492147858416968246812270324679256755516971270126651772727068035702006184081405666134393315936379457399930425764568848733310176555550987557842388479045706297281039821879594618652815267099793772209101213064923179594325668591533523990288039819849031761888478413449213110800563290090039246721312504293421997145474922387749889928969223743669841695730053847882562990564186734188610916851837115306579155971480038490855863712606189518302678892862399006325819789335483580817033469336037412421876444609475238003496016695246304527558540569599452719808623485363960591016818603619883432054916632747106568497937588237242413353514621612907520803097159188907899567556773168346135136406400431739252005351255568246486351376538321175764929318895239584370904180431913863942048053892275027362072905691957610198243330164222128489129763603728082141041213737858452901405602244920024376615381739585059493092668670384672079498090566126783868879640058203296452660816587529091258779705013498787004557847974713450876524348333078336024971794871528263666113351511459767430412019593485222124121639655928352529296722054466051148977327814572825911786155930014182653338803538262109653415211459488930472033366433537437059209814344397561329025957138298109002991078502801338784871528483540026681518450740943522676849859789946599321223619030287034009157128030879557717694278180235407131559263040427531346695083703358230419735797885024715913699881006036615888777420668894416839940077197582606543227339978842945865622136778048563869508017213330732025048930765625809602209806319257546266668014676602705415185127594433357933387481751884311033225467151337667962503821621414506937437886133305906370289473627907443622073237724377106472437117117793471501232717284267593940975164684016902232870701627580121665912077747883239869692734942182437711252058976931715587895116924322852058521613801521155814888876289924514920240598813562949173484564417056269408964540298761088047898158008110137554848786702377894418456243452407189514137809613225599313369640450197260803246664854269426450472385415889672206425201191712414952212669670324548447914009705059919606825950829615405526720336768142466884254517057185642979200970683927641206950665564469191746060964362412152402337323756802676822581369778699975602923587677135765261377170515409405044640868643729084343576253122429084945089454080366949711698691947754579399968658805354800665185706667671349240730996022322288816793268962500368856914911387907164752751022810048174663346060260280581734250329356887936674802390310833511417348988698065074476423883669944724049643153391428082612634325525128211966090825444973817508612617277137316878193341561597604890241008925269684469261292359588529239266948550534242707013155794854446804680181597264991360013065417103325284365541452021703282926810332900460699536831473650853143415282705494785734582786552516103872945177246971777573249593214194646428802778642338703982564614317957255061219391619859658125421657658996043530727369429649683416334508329369732493624685164126333744404137413783744601157948102530292618023836800927184055601669428291498159758206556043074560449976285419761053488137284458284266116337091840779029501048878439468910347047463277625798656881869651598191297119850063493703106604898711855644704513158385515365470236816857596992970838131292983981114176074564530408823024826152111540460281599856791571841773530801054833512157653715878785222004355206761386501970276846671960202818502808835139909858545144967443672456990495429896581109157299496300242346798339098382525841708020446271301909712847769669712152924635137210629183034409733346751212687621963985027142654884435816104070259721829605924026598759261391283567483723182293439872252714533612931218929854836305563172049047582264460641948565829191599617057933039674606677220537208116756914072010923688935742474426219721298566463542394872479921468938957604118537266098676623326349797395841891984509541232937152879370170082512078282655442037477168915454298623868961577667508418436139724616047604355155216410769529379764770646782632303863108452971468595787922694464903076713542349295198916772655831365583867386622379559712438083877718297332618421406520476893173694115523440167320855856324959836092811857724610120802803564543998485573621029818817126037639065371589904516840010884091251336111011716979531464855161536909535711778255175713517603633649083678376845404448219950061267236521800915821260310262466747748562019460416516457387651526782019140783439682689591455515254375481493514659095887820351936900313238954647921182771300832239633687946847546667859452817705828752729972952480382245798637629813781690135593917302097441404820798046954357601033167162502494741378214823885955144722497059663411883270174760170774967119107627264263591291726736894640577193058142416984999909380092552349535359826792000512576740336854700319380237868161460805301906617016625604987774245070757144841787342091437586786525479888424695711135680491687097988523834478663737044707723248344297109528656213266835856471776616109714630975960895237937663062483123104210313374033796747948152696028923091646698216707081220589081459336246449303855282231708718081034981851897546666468873605291184723282222831581494289712173096854546610056606913725699328122782153116240137799060470999046700117113049024227529465617214141363314986070370489418767083968326397117408710220419209387634460487868940279226601191362304454790397672226538681523895696646872897123146941525054684089848942305529908658263729317200566811872558853605725484511292652590574797154264721573985221838527017818032180157855849588435231715730273184456162747372296939352791478517600474663059487430456403401190225359094362078008887860309192766436736240126559436421744494898968328275941067440179799521909992426978292862596079062010256867253840001630157902432407351552467831563448297741415310007034492451300183880622629465737672334844226837073915805486492579903607442962432761523505356216807480066198178689177963751630180036741163984786617639453665324759632242653453045429819329414534678392483810098352396117180749397004740539306003243492724377054537073688976452148765618564909569858538789536892186391526049500305805864337824570502165159276683116094710094783019684175061533886128126527710510248489627836687573896432512732025556036733352928572499926110506126778115544131816739318995004401342382156630183451052176884430225070085175737456777395037460401631958905204300176402958609148644495317568525135499965321741598168569065754726727541576849484336993071454411279134591645123127370665316168325505068903768928022671263739434906612584652088015703800696367902865175730017525175539148291282812401683552310463112418644183504676814146689291694837280146972690314104015823301651014103409560437835204414089567591139169450770523436725696330718515527322998673431505211443128019455015854338289110519202971491236148815289261217801208948392814762043515296613189205051084069721112644094003076614104979053242966676826054035285501274300800939398232174738193609651607576008795413886438083411950216712141325922784924536439912778011424968572551748369974456336010844808464814053091242991858218339029325704580551622160484274879707190109383059582034342238396181053538247092005503930538824767397471286096847034542836466764199950699789697506745727390250945040292099009523490107927303854086263696831392724939764303417602560677272135154826877864881025102918858286389420921079478942236269414063740214024090498440093864149574466480801139774337822641371110588572294680127924988189205609737431851839721837552741079301035839653107919041614473764035159912903280337985759770075909158981408277769713753250785373383893134958085770447292760561373355680606071803960825448093626569118190286648104725902368740378008259667027038426796757860753992091340008430354931741278336288313898322826096180711348267904368403737962719949049934933727638526907409998580256206468677975419812454215803898245569695242864898428974029888080012881202303155150247191826766267244805380115865537253747973597427279929429511370528939951976744134787783422647554383550775996205734349378163843970941488564183035054201954577046946115363883778808567757763523866741910875185122539786929440902879387782157499401464159909454798484589385257010329262083568637337717929300365318251434909274710780117689216938785009346862857186593685559878708661255581762908709029126549708685486780504539880542795759905905529688290888614426761849314778485644223258748456298084438322306805597490067971639231940266707501966526640000843814615532291071916633119384405006880490903385439848826690523712814181379444383470985351228132844785490720762737567672964571535832546889579437721620723576491058426078453794013155570973062061758651823067982631639962293401164076538963230708805248718767473879268994582949543717253554740474132907690718561278187886039796389280468061311463868262701527851532653320720978573455693564638661319376606632801328706347948976758016788830717366274256598393289230941229666048243981606659007015413266269292217903560609624931843332462069498453374368729934186405908056978268004791742301055701923519217478693573431611970080499208365307895296118500253193138636881895443411444717007303158865131268676242915308659024583943186836377209229411002477067230906438133587899195591045304094304641121902584593857786044306868701391254004540884754421485380945677999689659143227658177037552321121713864244975853561834124519773278128736234326692049926234163036182078862439775212758884331576472519170628901720808043213904900429527851173895332685432290650383670219766764968314187561280763491262232553258299256905956916769159932778497125709257307839713135247805465929261009415236364637724114259421004117199397536820951751198861901884435632176687312731327305151328297276387069475343099082513814463213604890766756201794939536624779496850887203336215096108678144116378749939569487132089651382566664448688362331226562055218191116465686341553649436909047964826146379160455693044602568542102404910228637281354205728447523282688572032160053413078245869394161089176145412867271076970776166633288770587074200858579071098052392423224485460972899134536735005715306764500716225231717763497885949910603414797494088963192458256527274190544696642419235106300306932929636713609398812591064091506541460750609021437674095644339038174220484517579105237976666772706150479042752794529823431187774524015006509564707704824059412349793959803796595416240336699157947441592042470266234466780454472847407427292119098883228408895822294091044856525185416809791605714065969919595159691384179350791191058535898516085273515308578863707239115309672262772803822642459004131724097712350896982804378909082638221279122228326263871513890648416293129925441814113851786181735632041045398322070540199793156623011862733353102059100709497267734506443513021840469698683896877223013188550319546051146564808847220550224414278463806395081046208565398208513129598582869178887344219171532088623365437041086337331102586817526077317444562182319233098473477238086524231108600326570525489315865830031625440593477107107558991107969401432356266513461591609959240492522290656381209731729837622097107322739847405007231795551246382190033556072083580044872664548675303033525634422135029054146847573155261764856562858155785980261858211330991065605252171664223776894841731771205051244089472189276379520646988090830354436240413146421160779341433793654084026313031161135426790804283433539958766154728693080925364593538088643110173078043254080190833727429940557683744464962985450266775570916072163853166863347677769600967016602512515691141964456824201352963731091422488592032757080177711793487502837273706144936935841260964238071020183707299637779420300873048227015502969558033020915041828093352481403431033028967790852790693304747978501250115298707855647113448234202595258703444684082780765755166935555102289371336700114851893816092188117093089475234197872021974463168251345251616862534578978842069854230446028276685521165766517096084906304024735482191497984595060391556158025923235688199732163376522154603652444814900751104131684449322874886754281021189974180453982849787357175582402938328923956251175810157360605040546107534079246951540358589843370203661733808972745259821982133960942667709876605711520047989642673525715492824688012082315795790590603223296627582533980027418757440166197661989106547731794188396257434850770823114529612406147055761149347615710061894034906793822771062100632881543284657014048437931477559487510742658214118194479001858358142985660694279103410601649084560962327929335246739587046182023350099438046212239028159053327064023945296241685746160298720741939702869069842187175324246298611858350143845516316793291115028004938328931006501029397895698977212002058911671187869663080970633964890059761414279252171759464827655683946581613246371391431828599973811160610107346757305301859233684837768111903580156624353741070391326845395401291900087242347098796023404681211478023106516651054412627859940941420562561671233415313497008157103368379640063446404395118712945134036523766013925194793993485928591311738757970312948376956087975179936235661857778826688841590506256551689565084159832503617419561893328974469678140688679262623514061450797749639177440894311567982091420600333335096824271703347745278575399500692152931653718884245872237623193202398013911573777534006081574462820660010327302012737959449310301262756142446418716718414998479649950024900479154290620244047715189786217353956122291349384433124421327398221587486824460026122603400350482832246524814894784992313302601443085084097641984694316634004164013968457456642126911076559196503672849715898721416467679168770696598739762637777482914426155698402892258349455050138922452097582085611590346415851734466979494710495571858113396678053859654113970810330015523290009732264480541874366427930861411146416444215518945595839570244544260167156862776951374064907707519981775139578849849829380279841798026384645579995855249498742282971206474979490876589595980473600054592068307872059027085959067079027442268295149629234759898746266026324952992874215382307075942246513725244714632853616281800106280531478105372571521476405893204979552876009302027847904287792332031683012083465994036894999877756776588160942618260816642414139858645195929733840758164881168179402878906837027546715494014119450940103664176959890741131058150686452010393408666490876205365689517899067847413250422550312551986140946875718347819470520035788778026961000361638897167028373004056420115125557227801097328145484981360374722240149190529860467422181278483716147698135531822843224532030227654062629642357228276628816754700291589263199912931130069638503422524589337811862305312041831214981380126766573166256939673760766506025567145022097167595746862504606570966696290651632967954446995001031448430868326278325379329641957330251021678177789718707697493869693574410162288670344874331432188079446970150197594498309273778792824059912263052350053731139335503885945659204177497727645234239053024798892086835237906261010551624894513385277015248221180444037930674463185736360939314627125161213676730946613203035160156128605904022460298761600823830422983060586421543503656620884624883859704836251676438380963330947306331526046161140080190805281201438350320807700645097378367516734305262759542230191785615019363504317483012970832044616002860018859461419767245108625042080512759733762267030719622682345567465196763825775187922397745846809022916755035275673810412471503423348054906537957731399160537395949265266189143438648687779256517750749217558987509121821169487945526694641763897416839196372216197754144534127117000265137879785404063455283836235895270876653644969519168330242307479356559542503741221299295815187179346346345454821876736639685031218810917891042334969654793562972055904989418299721835396754697416117374042836757751257813819081173065371607229236372081249231007238372720202254125896679772736996493148460001895638852905393124257841349071708775802762222151456169781014473103591378141640649521855092072961612525525815908070275066999508215254222580439392646634741731653056501205995978254026069539446984987184672764862017470765299491818197564342072034867056510882051993194852801327696533160486770675640698831172157676286156751885827143811574313697871646729222407395931310033539080846222098764678146820499380765668317407234178979479445670745884636478094900059965457578741357596623189723619552497609752626207318098754505089653922091199788556110819144663469972866288829677048638049085913103754899187260213068258184111547017314893540315580534632972956713291939022288434242333873597696324934921335288485190349079066877819477355890869486708503196749629342493977254989427833223293437389353658056963791939283419902555105976602362397734086624666932182988279419375199002309038274532124495181992378141214390032661486761814198767095222115782611621752801164803820618881272156895427357157856202532541363765097715546908367113008739053261555852612580600957415604049746740597531528740378946579784315662906638604898243657987217204469537024074127062793973770779855055310427905681026048703780064583596446521328233726541612626812221108297818972990119514933139419218905141760072658704012644104556690133003785744252277858729721183968795509194517171569216347400494327525976519802278156773829241523031447938055374058155267569867934915877616310061798613773209275224266833974480096486138204314251948527808053897911847268564852118373654087413832589412389920118402843006389181758289395011036846171482187543509478168999624875341507716233594893756176709655120956258377862826598577634915952095372838290011421762576362287114468575938875845515375541914640628647692760188053244633957393741478292941397192531881511446028187176019157613131314584013653867640753268425551654050065035901132251549428514612664053293049981029061225252539203134431425868035261301202223659338258942924773866744221318809767374897438278859515112197280819095246027506770689141163465493155099116089291106794832423811954772529080388294982629675519426589055588713617629472650987125342824353242944246578754458228330796117792639474065785715705343321834856733542141409147502996175608297534670822509336916797218195247679916381488638298249119997131611876639040362077929878387484865550770796955365921070455625064708174726318950525169738917936128500853194122917362357911874606443432925116655333825616762928270611125113894983459755452762006271725997007809729913740881992602259801041489745259075462502441382289695717966154662547781982973829079918707402628842598079723526751137245635668491178255020646816775423903703786716555474497305556469250822303361349086376893070531572365751902022713274672251462407044365779568309297324703036748903094135635986965715025734939295815258928385118488360088473837765071363747359635315194114522456868980013465465126711813434606027759637461722821737739202147794804642372215619640559019658424373746014352651132447832640266125037958258436030558808519190300743943331317761733505923942212718007225105703998585690521516926572786481121110547270776974823012101734286811976563242398559129384018704041344244214393545708181161927368361920959211564690435135554095987436114438195408360831393234419939223835020554792056766198785883058696307270544561943271846844778995090390986809681326458713818196879010333304061112663797672572680788085654920527454841589883077028218720677634367446389975578937403316771941310979740362051214837865209739740451909013880355157259526072387261293695147390430936693291897043535620134390182387393086549662152817509431571407876308198152171179036858705484920833660545805733103294995720033495442995508461183814544215908211923454222392650937349436884853978992559053809357051926398572300271459981789587555965232314461969400885060495596397503256474960963943463793647767471140252915543038098170296922607228087115196521116410220746541834515053870831796563243548456359730820239345373953689756361082285481048984255383347040788462053973093164999188134106719709232670265027553236520467829671724572030486016704845009078095777993745631239248360636369395988109484325220298009985411846620424305351879578248779116127015908084591321250802486731114362605601835559476638513922610303380345920632201466101962908579914382910014625197693509717634934512956424449184673817680228212993166497472160292845750041709972379859543442653621844692136214945968302947477444772364372688937321558203552880381269561032481969726274506764735560227663729124218688018628490403950932135152724046443347013325852931018772609629013058221144446240005965452491718496568507993450073845746528898472319156884773378060649696778976047431805577078757133198900872760246100879659160729560357660079062621428969741244997776850738125477023717731299466466985835058615971979013263407829960176312604042034311141525389959136297288567782466888644034210699468577063880525932964889395542219981872055166680260431496672791964189974351704881088768096587922591790752309857611728745220783424806122961846808353609338759214732407013481768927873375671547777097474043495558479509301122764510623703692466318197504417939034354227853926410153058687945615023621967089750832309695750111446981079991185561821734513338914132367554759491551659263625255563758601303593766335538869188250716031174252859970427450917669509564049068726508017940264498675277192046773818425172644277997349493772202878462968740502669200535102195098802568234427074187357082024308543510961044500944710261165871844325516157473752823833646521692140792021761809696864321125330787734724236657551018262540044084831104542739857057124198411380123674907060909122761912275688439255525966450111351977219201977165299633755062982708917046214921856368232629833660098967507261886758802396972647969129679208353590987492004626878239891401276823971459096004768037445530807524242290234948587482408752430626763298191292592626526672772795874698012496340742291382933401948467199144531611842354536948658294946428290822765578423861317320524083920623387809498254313684917303286326042281030369943181957564314368395589411161237040773623433303492649634926876266787257955894330507174668161838162081378281078455625868895957606708031258537723287990326191780115051548223804520913429328033511311513025644338310676893539930502340395709646520444293922401704927395521974633618382226336977194981355340641256412131575152091150979073919726250411905027058194949027416527631381793044288108129562112957798707770804386428113360449234153972157726631309143295596875560576022032057253708559255238755717040702718306247370720628272778375738683668427184789768764333451547819233721538379606065709394133800134821712611983948140404032961349427567843426055318005705778296107655292931779963482085946018485775574421278116095466625111690516716828418368697093953801939444239521146888753420348352368456459483433860870761219298823448578926573029406407784099955120656358055093124404305859519871486838977378469857996337015695310721622940418924150159442372927145175114024353741242373872646897328911542981447218081690740996249814943373194349247045744568245041790123436408375272164344566566577863356459256889434778765472353682218343161085211583118369095137933180903466396137644995849184144215184325202487432258981464246791791467321525070585677921489687326612121530093737818195571317504804652227809068887411192458135185246854007344802042496676477230877328417612603831865416379951198334364299205425506219121765305782671765071697079140153784739523440471724132290146312746648899539457101649288592621612406886146705126762626486597247040046019407775024206866086429735367430819049485020033440217316534894516103704369528952134977542729557251283689428152064900979331814722621196671454115091174642652619396666413029670380515281497220386041711361596310495151818535472393157237624138762227228004124243027191349436507558075740193329216714935629223571396591941145546602245707412524285569534025629104515188175205256844736225605732436860039921853473881058680648982557327334137029743473241852498304458000232274931393722828972663000726189127302115242209378682786232353755863267795278648763726169674812346732064943748184223123551825070046128818095267077539995730683447167748067170401962239180802646855822019684870822316989686607497626616657041956121788187823736166443401734431231701506765060584527739833790131314701179866240561062353095131705628975203383316732026467589475690603820519528907473493081994918432674926382527124219571328099930790849911518004936615620935192771429132800757099473372795557057674056310521956261575872728957191271346634008696230432468494747333830133080123996761713748214265520698781038714072605928973694730663523208387960584369276703928845136732391865806675538791254558049158371093178030158945704849810695109984891435836204193503262180863416588469902671962605741964799139541992456702050178652702123610048830839899968107714596000510199781342496637173566664218572061721596055130816431104332722099600840077869519823880499018925437891252065563666015301386070989185466260187553794192654614106719384779035089331576163055477328009888143076027399276167364312154167249675352323183168838289695243547575033604095098321365756008886180826197200965183897559444164649727838623432153007456816492064996083965581917097594694486899061009995398895002176519228048889082667240230474131227198295227560171925887123707592096545935406301593379226373800758514495138631984300342055175012724081551410011038561679432946724484155510931877632612865078562139022167011525610167123829639734853891207041473654702072321557472327830267354970925625761260336819986785088461080162321424072679108191284444558156914814634023013123851959358290569170066298748671017295945753696845209628753769509015450280111689777215333011074792502540105679040231405101445675514513504837532957697063780129237854885908094373402549261510653275804968737675482981758512034172162362109429612364312657313877164499362146386248061563028063359065388914204641155736397796767359964072091011115235624058179147384866866673960789960532383347268892442245831011742749439037966144730344395148240653982339498380823370128799859654046862431057388966963338157889200805641184833317053736409691750950804295494397917866524741116235003849046355250134226034018503917849363378555650655672530021792648259446636812994890214025998903768471039163433599638580067670885368676914149601044638998099480243434156412774035254455500985984246806514112721265532038214685206386415883788342016408425245966281594634906914751171119457737555030473671180102315502762392684799636619435634728762933685838572837395580690142127859449588408523289932294450283259464078967071360170938499672391536913881394461803034498610101140825028336581172822158286843538746253662928640879355569721287924504879506820010873414348029323056263410415358992871259854637701713524648922464494785163122651401455961725702616277825829227264121934122496720392175089096485219602707632206158702413590679489713297236229408867163115889141629646683846411347212098735150353736705460718658502832462062212400019220921061243552829351061687165793462733121311752494168889529885915293431424385262798850410031467211989330878491247833674611734663908754506448044377701332889690649736595270608269887104230334590439652877563448557130381619598603397940106181293341035143927386603011892000119939337244276177344713108067860187318335732912461961589165840275755670645374649847906879644251643622598738942272853263034084113029110076020515602052137915058806022915511645224478389944991164891970158447050445223747165137543681263243353427420030558408587693385240548789487774514562105225789342583566208246139851477641042258916977545822729484897604378047668228189872087126657184406102894136484875776487895499188152281382573631443050786970495911436430186795602978830073253725169062960959360052085277494329371497157290844728587575578633829147437449106716522784881248708991130642157681377987197657752992428607269874719613033039212430283223774575070953383631012888980470066931834655086765083793133013641831857558354177932429050131626992134104739701200253387454624686831777506417713114652476969030922743635458517764111909907253557520148364069494622316490661256531703788298426335185228569013444688344212651263136676706354023461388168425298380618392561342466486246208739415588954680982077966564014260172887240736732199810323583330383829193665087280169654686175674645028153396125622849897884591991171561303427165790953407515173433699494984799087831757579525862997629884599657976303155859046970757542557422850550611028123817933312318132010355700035096458138536764396878164126125090949438706148181017922037400041178587872624400831333030638096603411748246975843880836767944031318320924583753262654093224015051931556039096726785695968614303435311897324588453719047193349578845452546482513310316859126715765327710101286404361425773520457946408164069059717433106327487536633366993397688114008249948226961580738757552404214873192889168065127027962045100238240988442977157424274577604292464679703681037502635373880338307275777526651650467161725242963484024377467356325486431635072034425751640217875473287809144445145425640584990426657072711978921337680707050747854553694820938062928704770987729790178170055178022339430284974440333844035432548074235203421450295893250152224083097686460603574898321142623694739128147607955731652698471885764061222608717062134291786829572737920760547576702613948714965714103711312328813985562587780133931305641928330285857491636132359810438784657247252248035249126804491006993255847301137177867311407404464860571550444230430312174151377253062197398030529890468895184484258470497745882131877790823531433860441375061825097424215384603709247151153423953062036875098993864256232004711803957500497990611597662873528292154160525462531151143222439950185939871110691773092453039334953261740516644961624104311019893202280757137444550069704382546667512683942152515221809825539396081970296749197200666880681129627777508026933470639251193602255587202958262707300211646978271819045193093430069305424060202968235347458705709659878098863679430549317029925733676090555466050773119245350883630955279714849765375337160041963464955805781140041393761135843644953198098540419709306765085754076410280242732358733141097906524116094645519105460188690806400262677822854727759542172852714020868853402015296623162383528487305401344043062185668668182932798464645240953492519146793450252006226313711679481211600618819771446315221364690899628297174904490693418924810136718477117453460467088176210431818879235720003883927170637351971420139322880085200955576010103251378284182174254531311090526421947990644764034503079880006436715747592368933372496383365892908965702287905307637498992098069210604480209033102619894587831541884494497604962419339895519517004496466763807352832032420498515940868284543189582095983372988460550658790833827724172894860732899906892593435178916516805397858919327151093542844469887062107616811791869289302143882811183739378187734607059043624139082206464594198951460772996971993305512269422118929733226066589080866711187810665504022560449574197367017564160554551475670636493876258402820738081574270688622249598262656576707143639825158826300753181904389045243949886107038089045918419240715199655507832110296156385636027279736829366409866076253945725621376450011564786398828843629846755524932203783785753594229062149860136459662848421893113888231293000233503027129973967323640937439449510491455811631066057082383874094858592692154102782904138271195565724415045778626051206083094089751599276051419710746099139643382832277479339809743325460280099565538896610534543780491711206674270215516495847251225941646453605151413512340450339832303869348966812398332289834670946919528196065436889422519350658267623119746522703715635339569594968052827297322907964234802264980494994425785756800112120542710108030405823802306318035343746491305856323153169544953244174130722833705274445437909286688233425990268237364698067235424385623356115467211951527618872764096858449493390807330283091585866487657312860451545024303930599274682422971206511062055420493634357713758379326671223178641012394224764948753956807670118207969266045341638540816800067961417251325706848437390550043233259714613607656439081740783655274082240654595622511167891754074557472650373146745334450050904632823402681886178267147315965364839221381609902468770815185467840381517476689107293009451482980992775545565312434903401450899613440858737435308732999939653693172678452272537884709802062613968093201484002987933393521288218007201896027139335617599258171246044103135422268957707970664522036694023773460873954970245817775428228790101004889357276439089214820689418949736639700227945738900299655963549626527988719627648601287733691871372666357554628850177082861299387981977153507604544290689642203697078069794750887266590898977413382721503676841534318441293547283156056293884950333162092062207773489125469254578122159052359004567724163150979078353885035528721739676457689244189755500902434318497067064245813449260311560234027201795353592009336148193786994053038204731204893017955654230725096106406219906847488136323555807204502390685632227527704682456451673805414704136985272276242400773227276120306663950534473726174608325611970885915342719677490519108534309686854045616512879207724675583868683703867123356681338435957906130681954195291655553228880651962710989820604731030673627292045109138126193696523884251637186451982322249419445807468740753553392717674029686488458051114558603425718778016030685906501419612525007359922942474984830220676606783295606251963505844547410839882572454242500477754544247398234775792457042706323205454087939717700867455715998943888435928519231815705051406780874840511839193959668881526997168485940582292975056916571700467065481844098309084723740474039719446880572452901639976090288670462546694298651198286138623854037034781699430018299862280005773193113712786973591711473283894791049582330727562068399788778983990973450916872743323893890214136728309463735802385743197995628835651388280510010453333540818113424190532702989705973130322878316906691857036230530137092401479428051069140099850811904983653920655406083049675726934489040764998053741820969174336967544192340277301988666875087166238689907888374493308844774115903640860520736556081894125919975128764672328416731233315783984786885988014405970192390308030898576350355872585390547602949940622473634272795955893005498751345212625140205079879639361290472925471151607472442392047323099266391924362523522379311944697911403707131353874629927527658516058702662127901116702332138378980918188209743183138540762244309238347587751615763501830000517464523672805587503701326442292466304480375866473422118194791874556042040098248545641708353771031986887227298533319201718788705412189480395627018359881488905624101365585836279315271674286733444192042039925603412222201780743037728495868627044406942350728064468342697208972042530663424166232609437966774221086554847355036196328379963877149939227591707556980618782018339776617755047613182352820607654797091536826369321289322155817174145289845335229089351742977168529059582862787413113935737280006648045210378676633696025373750096983447121220603069471133451368832710260435767518899225092648857285212419387374139768568654881586486563774701801496690070376493947120958346145106634939319323091595642484085072105673473141609002489169601480376703237587965203239547207015864977239056081678895032181203147994733249701930122643161590922782088173824288182859902859758864328022036019616780266702850215800503302946933333056403351347965496952781829582556392054470447578572621026391938461156930017780072280317218934742526463327961004927300359771680559835639797121463905371069739007564576399602817367296707687016147925268575371638574172429527528175662012946098233740535817518921623645726348746419243554180089105464857278412371708628931232599471157305591459838241730908170188388510190415769959384775745425619434363413973231489574879040916845496069348208940936652793623364602459337979301356735968973512200379573377662993823465852153752662896289253457649043451975861365877587097267349486771515180687074564443803845054538607507360871171652838676157945772901193987825113928061161548020847923966133986819915375233425329614849577905625969410402972237598393017039854801005905243329479109840061756747363851571312715642525552643768780400754259745210770042719523000151083243331263263034270251456006705628296472389300616148437869725271714747403850282679298981221175820588122526217060331308818664464065676110961550519565660678109959332545330300787215222641541757136393989210717753759476628790383658409244278573210544255707379969818856907462665474660979606262683544316902787293675689519627916776458409996172374431907127092169567641671273631917632205103933626185809287165064086373214381847371192236077274461581241929008490057592000098665690993942656804024304703786263150273723618059183312397577065421018748471766518872770464449145630155027660359872350610390195865405982722961104848438987145685783251416498330096184075478943624912814152829543568990083519495085565586242323561221302015695330284380279555785872542113851812801806092413747181335358394681748847371838689243177652721011223545799547492750824261782553834318676282683179075270475562579848109498767673760414669932413450844839068011744353784894935419696768944480028075764549996924804058184720740683738965281315721170071712649504433528552971111450799251009739340370466615687536879432824227167356500828232401704662919075775470120281175709295652448847773507237484261217949706409066003518219901399320615992503651208099650216675995689322704496120261084792800194287627121124081446407477318020979181809870046743396633915606146435858296552422392403861660697186885684024108062951170243834352473021776906430787609127026987402911282584733613926868030728843654671841930922976091621650281448802434760223067853301218826095053284952165891247403661137568715234301586670199383629807911885986425560463923352007697493981179111319639580701429760339156462192205547147495035560052048285600621367598607403490903129983690387376011289255819439349638270135237058943857524502764984123011577665716484432036504337605477623466792194665337565907512939878364978769925394314268470219799063063417239637599929625815036412924036107302590188988908352217412005706045102811186404934733078958466153711320070122649747329210999334203465593588230967142516834333922053519677410406232836830580476971389245566549228554272883870561139063290220102941059307294273328282149449377922313829859865892591811058237581046812006656037364867555136437403709339727960622011470392300334234198778685977383091416604887117044078258618168370683657418329113538749583034072160792097877657850719766227840690540909828747613990905422213567622829658070164106594229883838840896387331478367026184915220657796130190948916993525559758592847448806593906774471799984240087641050108458512399272988749927742550539249701064317809113494690736542229090925352702613637561887384336984114324624113244846828507655994612440766578467136080154052876678034285360074534203648057426582375260165851755302183333072989880740047875001328176480423268532814121653869545786436089632982641893071003436960285068298308926223752630870410803411083526836122216163031100481583615631490382212167043229361257487431681771506261429908422797179237889682154949980313890403930406612387841710741003155905052777587096746520230745839006645292628052564993718451266107457165991208704575769735874987159383175064546452620123266943819270416987368364852833255096249027291715821083538990147177434437157283763902562748015297337257020753453030870681510992161302638046017828909180706776110887869974506158081400097593174392408624890630490251301587509909557345510997095644314101265803072839153817956521025613467591482715521973946970489044063772584623724992378801971989219307902773314540283881479300560955269643272754401475154757050747463910314834669925252026843302931407361305907126358167314293741578296978550387437972208049605026482104426201472178218252140398522703711962688877397915485637733178088209307938151950112895166008579419128264136269788091984761719547935986231748269715523184344988000460591106603267263515218732740141715233279845793119665233898074719544820795308417902706806131256492250599715083271594592103227144224992588595028559667983632983940519094224257876052520505639219796271180890050883354929295311508813689437608336814943427156910932753200454450000515652711496534126405373377880362777299759136687133615352315783511431103581291107841720660624218032377837524368588770612047136267025798832283334829137449077698360566153797660794975396761366753334184896798388865651586059073281251342411963061049151579484838188640818245616085678913172629980806295418408264153218929392724657851496712499947237624039938035875665105307269272954491457427749016827326366226749563253943471046567799321759247873450581645570879577642762699919268648282563854869397900420489490498474810952788732681751554219822874493829030964899423470756566582688008427566059309784705562535756135259273371354397493758551439222904601389824949005950685289562151788646978196046085612999435908463583117460897697930460073310704827894425140456257939760871937446998295798056479316491194433593054231107429683091103692565780862580496866130948510213698622416496436628472466148888657622119755193417000476892300204213403254029938589384070998569568116094600821967815561230982845961423601283858275782035593338887549787976470743800803876669582717271393685366553415867890163955922584165007819882514764118010471317854959948843376643634510472467827349877155384545093209564527213455990614286322966757921425373415586973777406298696436598426133251647473368384809511032035729032984218046682530743236735302240602661637392911548759180213773940591469273543406487587199896123215960710659792507208904385356702540895058891865025225843143208224187085072160987734273264656115140497983817641181730920432701330536170543911742712021487092144202925817677740564776199518460125224137168049875748507983475920368256573280122234742689317310324239639736215656966623245627720107814425941169155621085032624674466532369264831944550018130198376631205895797721965953433209617812069242808397199024689483653359557287940959414109394466997181696061280296844465810437024181191753592539093299382133545515924557407229467594100956747003046797428291937414646915045590823097894141879165212329113512703953531858753660209542392903009198544128207276587611253659984790364125060647607922138862595964120360022700350854429581763953082133029170912874844954371881049209607192167830689564495683842249340877782277193937012673669720063648829906261226256883609653787954321390885250258800863841178099835735853132808309700212845583278425604961217528923381426941347825572331390907152691064827469428130130596980029630485408368716692515767194559351832455526634987912527197542212368072164355323943616277193069151937075887263705033905295298603302793512944395634170728527996711447213333928562231535283174554716556664486431712129484665379080838182967633488772291976201440807542894887232025445361180561410722328380083456924132383650691218803838829539569326075165890419985591224470390085356386335392505125017151767912612785417393852437994468109067006311974966419335618215071258799200278044467541914951808480344860709323200589984821461902831079809080287411115720786037326773166536861009644366994047429530781149559357728569879797829114020049593017452259838267779116193067753452055580791451752845383248242065375969531339199047397363193551263512128839563421288005642244866372123358711169954338877067507104281671642414434549139867614789265797362601591601443801617712224132357283333252766847906948621709323103899480132701333868660354287932149122857712719654616475692540416358677070987503273567239114656269664710463066417194997799652897043999673854073934161503169426294525967758545455379397207144942285768693230291846203566716762623664197725094878956610764535628768915587597185602786396549493993806228236229281476834084325753394109560173139039696844871836634814835023576955907608347713350169694259214076132356244657553599717223286705725218903366537160329531285646010991547361814872786980683991572304712070746937926025994933920885323215578863637746003998785462309960636501147707806751247446178025890001493994292697078436279670631223341778254881268826964624598697413268987960039248170653299480462049890534749053319224744315723704642082387127132559117704177495531304896630765620211245707947299671017361481404857667697892566840964718682950419414757652391844857067172705480368449324024209813787999649006939284640402225011888350072647903618655855559049595005701880481381092936212110951233121990718739582408333023264662559777289098800531700325484854567847575299897954137354914438670711573066501663785957500385670557492370620054626570573103123756692902666471246793980382952772700886965471941987693102056199288896064489066253262533592955320289533049822314695382671822753082664013786796793226318770598704012751737494282471684212054747755660633470316543744941204791703090614759582437429266667986815591297231662619127897655020050686330143314004014030412310419712678888082761679946165463861579532608275223418165915511606312343179044847218414668735629728488824470111603224501847388718456901200829234740531064634496822919306729589241356599735234751019447108399784925647272073145836445759289835121513035115805011643319156106244431728186666032625752700466259449166097957900447058479122379095029726834199932017379431065976562823760410550498544204658232537606404027631911976202656742705433650043068076699630057091552184194473823789700345786517448982954624413274817176521091947913559939006437578887546637203593382776250936864295386711432217368857922461975093117387437956976246582805139906672587826836911860896596512949870613825800594237356146979131010983759029682199311228127919361670310017349644082891046331306325940662229217341146367756292128190127932479637438990502599049497518351678996978475236137777503046556427667646073677656535491405470326948738421386438794065395843117977225027614914578086061868308078862385356481330475726903017519280797970696491749981479686166398991661960248297689922624227196167786129317528357212107752474273601045125989644887049779465602707463692397328511121726409979767987295618511315721493431602685558937863894868997105884909516489585448771187501878380510898615165797238692805739820374482243093453532558280615601136348416143688521580863310637617470594145844733912685626177519753172446341740716796068973094115596740507908496668263453868207568237375968103016312448431309092050589321229906727484198017514827226068905262830351246204076372498657929657588643928568368288122519088543294523134975081575995695932098946610581893480164991780476592146281937451955148918096533568711606841342975802060106022816796492296393089160434659755799091849176956658105664018386026673157910335753333198129232307240276679190088058064744106145258612026765195984082525433602714494656744165037410234074843704252589135997975975122118442044147078004037526440404182511295875563279870521042859366582334396304274432865922218199082902167436389218258520411713939341880448637620172495215833859876771992784099167711380573834040820711851885419566077225279963471348014329331793281049718992812186685271654421430394353215249737654590734254761595727313847375064161106937713378596924459627998127175231777914261215137441029729423834303135720331129344957646323062759946514699616258860908549264069476297658148561998863161617117448138142031447969355729687742395865355799884439816480484234522107171355712850178045695357600253512162520406836047187906944671811267499971495570594197738853725202424904695202559956723144822468646263738601535216836337023157018358641819093766256609192860221302106329641011732291676272158141207893852372991379146604915715570536059492539206625428263649541453326285039627484399154737887814318990233710913411349402701730359093737941856095154142534089323735621497007548940451481497379289133502138836534432510553071332267118582388402457624524463566572579710164011702976095908516247936261016517969594013637215945720395194205737326392959580674061341365514373585080796824483510669638907053181779010808043159694602365539324626127318583393016839554840012668914276408261328173682942519863703978849583690130620244792441513917228729592588762125723271851241233867901194437501771106562630997921147573088610398358182137731823608886242623186191694224112592762726482004142674741338894131669148163703362803788338121543805665579431258938638537284212492709185072954529766872832459457393432643391434098344417397131497536510614059821957460052211910244524549960061869687248491037182182672395732724386191121000597913166693775368711313424220700816768011844049544737885588915346437704530570298572078234647911396239327130777403775977507454619994349537456478285593196365198465380176094722292059858526951824052015630733044224465203547708500107605608265413759144402502477613073598526622633808944708570085923050183581796474527492620063372219867921538901313805983124919734761442571877754053572857813795475933704692276231479667668964401379557841550620412509567902123622394202687980559572903260665632952220461946865015166052171814030861702931548544296503229013587596383779203142284212032824687246858571722405836782129942475588084537248690325676506045557557349789492542287567362263474812906628088002487586549540847386551035017751937348736735550590642308141488651202698814177490625691406414378367417864925204028477192120962620877405454938507967775113913125695403505138393392498936017625295189000065932166842154324655517536177866429111214946290476698295924397720037649760921109616849302893552309710365407811178804138985051179052612760535409204500073048509104154116443287290909566665204461248043849162986678674309521583162783089236108430405806006920835737940822714927702842447599718774076363054901680012829069955788184537862045253953078918453404837938738560276746762444201635139895479508622323550587573675808019717856453845179035181715930882154940482043368779346811033710186268848179723635574417019207515395658342863389303941834569991210584151740595282555230579308432453104744621626405099081858130032835065042953953167988490754447738874211925225888639448999099416662843899357906416184120709587143675983340270144887122114383190485592810933393320135705266891602304761553406251677492742111752752177662296223067452973362415179297503077673868016163210176107159882161559750058349285403404501491551080223531235745774966558173522602145901282284144932908168227548665369927796043380874513040366143353678135087204016808677275505896726216237514053319579017644651060436195659664297582235022380263761829037763430197150056266573425201816827254223962237163678302224549001884443702095168358987610444729389939759021244463780881940145126762913444006033009140640809733016270753489190628279724619893196866292429834282776560203735974967390280323811411726215230984970420252575029012746539959769846501709759144381495512963507505753298536153619351046224327364220880025127626550468727846003989013244819802335506177304106025381249562639456617928780204929869543389332641873895366146289647365154003981261531296797601589368273489196903482931445681811155888149233670707654646554219648181279581192253662878428452256575548794900450237495995840751996737452830714466612531977467861824528536949143113655383166170301825872940723574818585343186231613900586987171261855896851294702455336666307583327345295817121028596550182279466807264566505531493667122286903652387919491602451756500328862522445926561829561870855135381111870676402697411565665745681658215441742217659628927141570030512585997581801827873457647651493102620370202888147638944600029555478237083856099734371760401845018545193157882962927542774847395576254954880148178172262145732936476059707204371482538669562535479011749543334938898263369104503162742395594311054369689325391735415899872708514907364591348939705652896614119805456177776682906147977015908602722047162016831245658607051031237964936651847236723831710365450155135007795272743180004385247315725724153386330380329947006367224934067756697714534276012672714955693962749453536656125311924834117982941042154012345096589701722812101616097114931428720164139560300155633813650464183235880043128348925358265921849949344018747209348108108737079225806328519105443141664189348096793227124032836065139599642695653395784780917294413875244669957211980949275033541188831971032324650557326602246907844436710592506532350516682878759435574274553414625468055649596747249355019323168611050435637095843860183801634371866582562022417298342073508107525006770998616510605547996385810710870975602903736807375572262206158408640358876638816422756344054024765329060524560250286950234937665581229663618090143292051038729311390157848073665736010736682831316624330364817015386726033722943380095162900639481154219252732002873991818975348040845798512646087373611088506106986215429598228125780681576414296327545251011542888327114950818749503978742837359720959384157181982516279236792890887628571207883878668480673823659900814687855683537536834759816578763685689677024862784927005323414013562812562792738041799463144765778727930706084940730065387472626879813083169532164049529225324707911027996380888410618865327591120160453795594310098676453403236806608666295762627456213912731630352266922000683220039931312125988535243854225351515020306530728250112606698300577732393528887692526434105726066628221118927449670489019172837627830353371094235554126149345994899021777246533889704915623056687028493564354764142428110970485451834073050874776614644300163400927846006299753576864072054607569482364429611408069332857629119934547766943797120611377953329687887907724205579308728143890718517366711653224810628083565117888897438855520105407121810111681394301997923531539123576641632279790712106692145953752763147440752045518512584529782959500727046077446851091178098958470753403696999450182643665189800022555187913575212005026589051794400706430477638055144539134181767958172486485172271297315189437881883012368727622305284602442830212656273541058036602797675605768783473425468651023339129809994846228593694629114658779872527296159547889556300082791402832446297748327774180055929986591196488866585020709964166615622846266358041324340146114878125131706597557701163518299681259711729526470408561667124328963204931416710374565824085441876783943212760491201905162420217669511953043327783156229559695359836153935203722628000020699031788440791873769334831890199323861318888020495737192793479261872309922613848770936904610759150629598459975722771887026048478307795982966097877000779182916039392334636495048731328002222085092366853099791156128780252288972523305623591894506816138812400635162711111093247099474365246632600953943628691861999158152110157519855842857536227696259370121043437941673137743568876802183278309083476713390218142638441784794283415605106506812546854794431217684587507555351170689202756731438017191812775168619371935683670034441680384312858640668556097244123325181252329166024859916629713874751723053853797484492767739025719031412745216871398700999058713045580137868593270685779664414510442532303258983315646017659218613566321289264232590020698081198553451898383375089719769747988578589525967095383663475278508147375970411877758522129856514654580492767397601836820273662139479253289261030653395657519835510034043220393237855539836786167749305649939041027292506182829750802324396532959827159811146468525600635076795950188462872257737184559594107375743050951337242788743085180309299710576439855881242338944851556896103009944431718602081935514656532996015806414935366089906713207755375935017951833004480141542319448897452942091322596617762699045619862647082411151292220189084965905559028436977650556952115409288609852390953671040503129429235748502429434950155928497696802449784996134613153192198259482590866693666560522241657823151664731218183218451565436574570458950753383964859291012385979539383940784853052793435327082844393194391091304785804090657980391955571818761484384331185756688964142825913781357648907132594470257983192747290116838332968266212937275881475233309199605223299332730445065816554145874783232502617232097497177527106829992272747928944016936394164727635045231515310393003295340338652736516364447782968331741548210912952467345183225320793375674659369649284991145327884199112870238915224233161005422234670407154367397009141895214566112729406087573666190563717628492198359881738342453824486114956910483456424769220181256656611338761310776547855717552117084163909589840480139047127264960188591453056491119462994534267056614851246524089324161343673515220242914767521605821962204649271593460357857746930660138270953333894946575173331828088399868630989592312563073939861866871595088426581419800372541845223251475089965464776853619276362244341309514909031863983304064760933941749204380709142885232292147857068379067976331225697439072408489711595844131403314561157301398432037484065488888060702475412464629437388717936959342762101114138542483503327313537611093755620530455494358240202740863352001171947005078948885605670924927024835747066717716332671613016173636292952792885053014638804108029927003781330922772882654656852040897168164638552255607024800028577814515243057493725296288462939226727781337337726952654023707839293086559605655063143680614940197082300211778648176884780124721246464948332336872865340060108432708938724642421332995149397593013888102183184135313048339239551123127799145192188109635981770111264781130468487132274274812786148488828014810169535557053881049830077959115562683647025858032604190588660422598312156134316840973763417658026365126869917597312980584121953180001123149621173170027736528345055631325659167690060925204045715718501060722700988329202495276379781790958816486878810052000246853486636202523652637849949484277095703367502775506643022343692113876306301807675909407654159908158711240276922082587925260301019262058004901434523010407134361708206372837937749402880287532322419504534394941537512072867217827832774322319385362328865260475761373379262703791897753808743805867565732231511517410777866228451691221972706313839133845207443834059086391806885194220977837671167457784124047844507476256152365111909855080558601938841854106841998286104527595489252059982481071857157578435321721790541614755258083408209750917168637373408369652234995600257451272910540257718556058063986773920043565980727903850650638677396348303008295416086146483026529433645410966016686347471637763953106913982091957617243611237993899977512287778140609714268258976016925823925781739500432533566989578880091968993234447694468643970200554052999073107670840555050538637709023821872648820356812298743835686952590673523184679966011067180117644954610680940553071692204297334638394931035938571983822981780943621580961723648580625240343030642370481676580284097307202257680743345788088296281629580444083328013797395430985692002270782738966299063049645029979834183018464975103086602003705558704423903714809378466236051551385125623092279788308373180847441882614107852472612473069232878239797490887574168393581776781975632165449918732456171159207028906059119148460883735440757359413097771174891839319713271302294107315816472716889466616696253586116319760250080931992294090486408381912907617119016498103406236525903257796769380707541677346621088401527922041152168730775554154207020431753707910417904751501284996739592264374581475456712010443785784458794216875462755729502934654772256603485378431826149894430260706968534766663329685319448842195973741438082554197438955490262145312784490817863471948857423349495179954591012868729988094163142167393026340603037972803743627797196998555084878092457987574995403991280611277343052756305160237305742126718709771081267043130254517676191975617759431284412378877681012157851115924983936480497732093470410205188719406272523877026109361177781163822918044499077603091528452095348180221412981497975351568484249838459223267113495579324388879584392535633595348277000337752328059958672001753076384782845255398994378703455458482466835598276823730801021853248420375101953799222721788944936174097921523275461856334376873707111127896872941174102587676131313089943832412141320342718715052050563342597093062169661730025878894366406567049846885360141560856083963219659285095076482397473079796358569594099909808090680308862661008707142171311442920406373066224631206858481733182907347014988169828214092356832590594848481885850266485098421394789825981850250464327250098700473987891447491697273465079126138504016014526211205559296095592147524340675567079596996535647143959575988802089909557594958949633905835891790539534123618943757701219431909023864853556791767513154231881985464303459951635743248357704472701823846481700617498935607988963700084703010363693398461216236500743416448699053896082937729225433209035708040011072354573892665462861278612983058995244293471954679972910710304291751949030423647870984921160895682914583250613491625873154601854130065565258863876946661284068957950969460816094220035362746697228353595663283309556519853735913180660257443378452008164117302461017243270423177123664372411712889432764410109220147652796455956011244853305417593777497903286701243814353637989693181340861837351007154497450112939934728493242215161902322875680370958963839480666544101236082009636522452167773469896465216756541552627856315446763469771583930005796555891812183738576657141017791896858274832898839991777852752804628776768449921856601220413784297847585211994039468379121037305322287025171810575271726446901163935622016315404401311261729397564323307810150729818375843481358040814170297469862653892437568952271424914388894406412604822767221904121820778702705408799450789053931807475235800145688834000637152648983279541300134218592809048880125883649534004898837466037215899101737950308327815161775492272677884528667172136032188481513930841308752346978543804069396880448722834765803902983103358225984777357037124193290463720775974550355429575053614060473409360458651872500454209693968990033841197936179385678916389837965464759647882030471700629209850639404322246640872933700841081894756810632195128147547975380819177990320191202523987839706756915048523258076395317066433825826117522776570000211292321554381607014381303223474083864538023127926189040826064597958646420249026471275278466537202900490870668686633596941065136310246355690321679359583880251608579995224372315847969185884585118245884696055132718502191829603179511743433333583625813794849758217337759467226832882452428958425849774176855783227119304182135952404238582394580220442272929198249706938342052093129695085774458492419569349610606010863723131370636925309921895029343088682971428678523913019585264848806081987624110372446638599426276908764394404184460956431956004070584864226414573096202502823316135442127650738757644509738382964578182465932414128134764928836611183084702696161117163183913357642621483493126367592349618280365009630909542813802512934766833917246479131880029218311497910246951514871384212806581046123068898252383667760657905084669123431292290708350269425711482840754621273118111254864085254570131527291210211330819494258179928866707022644967260080229765156742072059023662639949733656650916916631355361338747072840997045731848994120267107618983973321246764524149807706286450800679012853689995943821861117094441234078710577615047308516467069655326713302963634275236848382172284117847494378479259618112015247582937153562011290284055788306860311538691462663580852572069300825028669796649413728056315798106615402143406783955313977335087929399822896595368132800095944545639615648041279988113920874167463920436003141870978739987425780897708471861595303877093248516033377460389348010944556980990855783119394862209025493787339274152764147031291930812241721324779425493694406721385167539728189096413989114368453624875035542015970277229142981958770517656430664012650504611413514855456237797658095615250414077420827934928344338481164325958809632285798331739568685810353468599633102685078586379854818436041213495209975594917044759155466533672347482185569351267328056433917879279851449391418827241190779784631735687657888578487438083369602030441418280765659532362606726920988077968353532120913359007179645551866196834337545967388097741114406710523908439877516803342522456432173088794846749930562924242049550703447413136396115869774977656254653092713703758030847897198070618449505510050281686561768665798652558642732213569211867981601288424844399312602439490946500934260574367487521920939673344098345548572724911747492987219835529486760665027769851822723376804707760779361755255592035482167584407345335948755833755427835181111485341876431759286257361856673811257548740109851379020181503875752999677095659996610187470156043870090285672403103999221450317905741190332750720119107157470065451834431345314120886302114432480874087102123167387442489566431993191244242516651434197635569884897532984261000794630242476606621825882418948695104740142743713815334721613414575906096031784724687789504158958498224230616408065143942341558199366880142939401213576386624237004185892251662579755423668767975729140147066032798199218367969624243778150799861376601549347158071757251714276215239822406673553263930661515804141376669007223718801851988546430089393071177443563630932024849910911132494284907497827711176122157208438434278109050996285951944116730228680443180235211977513053265112117129179033578149229897704135466928299733297384369713470435510672890208043527611689072438054984253112137592146734823097957419059629576011409269741675996101264789086461693334513525403284408082379826286232833674070155953292395992755512612734986245432807260867903124737833425420491593943363987670957586414786264819648065095709169580902231193805828580053216449972578319347099101439120764288573864625475302036250782044853335930620170708194077547027016733023637534322854173003116529558387346145795316399688742168920076755313263720147883374928036192846428924087919863535327779704248423108143124971464613729690355425399256886187994453140288588928406578864924535333977300911811594997438426092763486703547026206994447438972782202911390924866584683897880815288469835277643404553883129349317349907297922058225124347630606920490543434867577637996810173287827298761843935442999645232475589285175512591332792622045743033389375743287256138222578342391550709929446281817920863733329504144997288149887168339768649273082331914997101852766132481222404747948435960862042656061494637333489218628539279589176655672283463409870096377340001576370701235037814597303517900151136588933653130383452558105375789100735415392726584079000098111648873747311154812554723783954416996916291669574886944526341328225516060334653255392433854659080237112189997854380001814997336697898154622205134050650870629394014577727338850611685103111156113393209675263478111382795530914911924347609149799176456110704570251452488153938526517585813709042776135366922884525927001231444680761117804542394169725548991521355973583368483719735195866182903911725191153998547209126116058875337533161066008736023449028727169340910057938233787200566086974027945470685667702082209458108624790088149839171418974793866883077925077518516927046641052961580098904831276164680188304583973457569680055649222554590208881486470606380345123578421027449109838863911787626442449299132907857310630375117162179023293352579639160490393457112856176355004844711011822975216231238703735989168915603272932754518877912186434853072885239394102997843666241904432273369072300146817162934984386116159981168639589932216186142690220923876377075445946968754907933071612961050101850441078203839933901035757367037615518222903496210475452692857624343569528111485481521182152948178445383557797398640159462542299514858602632207961273495853358729151559676014081092998271089476507646576313545431184654371905397203384999304498038915030082876880035722568101660838161735660868056721214044546008586539268289450159806771225384333633478560450837642680659030396047097474007212203346117505179782534430249745950785457649494098756870920207432924625778559651081366662863183863491276373428226112708088260895037257300297749117686066736542993881069806107715230000915987348536366979389485927492058965601229706914844095363844301630087538220201213815785925576322377345708074097714736256430834368215638510595977849588993186933655209006988467535323354814840328066515032638254922835086654085542920462408145827139481294460765284172701586298020114818092880762909739869176286827073003189302143239975274115704262421439996268338560788402772916872256089953768797699409937456609773674251236980917746661030659347679441636580272887870202339886093861024316346366803333071689127673977376035484480701837420095089545024707556079417022188041942241609960816825333269927867861789915424944774410332368271872756912259431591394832263064117529574961478149946996604142436351687966392174838428242506692340359045515187891646189760909868367086967732311532164997970398476035924117277242671086551315685614359058988554884212699116346062928034580516158926458321178877848646938197908563303863712898871337242310345676059407167134472320333066293033021104507065823768097385080466182268856862119123375889669410167080315574159291024432477945206040191433423846191056960142458234667830403365921783397997497290931299462771012243239664566714309580657876489392865444097897491191981855645580680101462909900124942848343527748503604759041522478974389112034102647923361810035367646562477067343464809360351877383488854248751613324154976965271198303092515323952645322395265206142980858303527644532656268678209371114842951569418566033109352725931032396117893178565327931667910160007209783967153824244375254019045199632073065380840222467094941802169335575800184574089963141222637255885752759818668470496930107842397000943818730514509329077937722680268427393565549959273776784121737356644637528574447106756578487546003228282762801474428664477555507124009786579311242091156629721795791386886768808416512215245804910300396300297821767122882173637190672920225681006360347497831538685535763409825463582022829082559482604352399740320838561386128390270312782181020118255460420612920708054275809926540270616571318005244855362514305923540234783005267496062709337731922817653356029078001107669951746439116652162212029634556250503670944115012084626154569999564472182593343477247269287384598226220870793826547596394495332879368300447625041760417525641837187549790978091556566460501100467314876994704301094569355156125630258892482518426932158862917612142433180473366293525426100671906731529043158958315193387712208195017027437340559158971102067493313343098847091284992731408403317260262493198368033847770676775032467543615524474626152356200439832654562981339254055257429292501159896021736378694858829651995317620073121094030351292087917791815076835672217003796980112105911861962926744099802998432639027822454787711902625868843725495811920914280402481649606922272810286549934701051530514282628039741314996848247018989790793958201889021979870171522175628169158083502869396660311097906434145072559235793194913592096282733462064345318573798398026482316212754932124918855007891719521979814843178242573809253499220482378609904228689990363714376368970777560748728719266611176465639475931246430507450817989017829980121269606327089393391044735415905843426717009337614420219200343579915418571951956602490123463104131110512104166974266403838819942014182203744079663001384133972306475615669104692862383279123236059766343198304704793440144423961787528150124445429779512049126035502843080591473366211051296064109876057690580563735450159606034152917850857167150723006130585241744644150078916636253480999838886221235217830046455198717334139330427966830980215065452183564929537337908760379022825897339136744644157420589343500329541620444214334355580491939945429750398635526192869593340925570530644986189076669246398634378922599421944676627652213803362795639528574735144130057587746345838818752166911095507707287537277723854195540610576155443148402807111438905880836435006024788139823086908812801862355161133018814388137230208264452614116946406365534007915725937391404742041590460848252594190376655802541629947436563366154516991413459786925797505466622650920243616543864072318080387420530583670020178788437729416860124435625513534431787476228742294128362459714269520954712392241609297928416676297604730771704511826000812405708846165539977633653010724746686304533422330632571849899308664393859014905254174730726255402434288924261365099815793312795930420089076935225703959526257416548652532117653066339611515592953140052595590636864819162960167461942978323845534621179695142120428156198740129397766490831952762911383894984183770483406964264603436781497296508572223869455597585515888331033819216006774173284225413522162883299520243076495044491608908330303155307732224185784470354886954163153129216650513507082228993122622013938534861805152025855027194290650366323095215333095577058225607363838748352127717976869837627279779971270434447846241445632173794227316488714212150601858011786517603880121374614368036288339551473416155316623377611495757177225765046262971396460535391808935484781020801510640437635856598888116060356499562651956700549413627068999759334229060681136120291152575848727013762102266123712851619620239030225151476563068296861886343767452734187508309111674176200371716380594173512475605534035103420644735517387157779229537986907225846894416604551476948948541702362993956108599657527587971463364728722604454711234770510864086316274174980436060851091907238191459294989841825908647228504944930083627012633979288040190327818950067933593717923054547933103370963778787128100224381797790673013529295785144870243300358494091453173317237775869264107992765079321755090228156782086605843887886628567647675601981077807812321151920699480255131962345895368731597314025547798348189995429310599781193395328796463398137159185372041523725561076087374466617559084129094405738835373111621509722040811705623105159604133713301975538310379525716296842912236754235926038980257421307275804951921829538264957498664293704196245355779973446315736711912355470576688767101384543532583019734557904330683450299815778113484766159575697948898718960828733118356299663208083142176492357716338505158653216467000938580124836129715733800850550324445443394558775637092453570844072383764925966104147034589970686313538925330764097035043746267320042279163504312804887770549606377518270187246945342171402272270398567851290582643378734156627469380830767721817617151848490114904076639863653502490936244023486288616557529607674048832557917440102758539378557592418606999448740793200167021157802503607248639285144744777967383133397062286467060183450438329698511017916592595195607419127969301139533983780954380727500424769474215582175660369066732823349988658760798122483279869466315166711766973676112267124635753686499387402577917855671258502328580426037503494164102887119552613611736628922449377641786309245283430685288851667520403218199234212644774155545892144218436441204517942471304968749097259320125070901525437301812471819976072199657309058075012193557799643644210391818813706149685921504423232835834017737202448569013181503299988725966677214506616665184190938105426936514378412172946518110341222646301590268871463052235651059537715513600469533289775622679022625541811673889725346224759648438301244547174405419592818435236999954400310131749078170462228166397875254772822676258855844964418941320291163793192053476210726266030662102337283569348646099393566562558786581045830611560137432111138401544037758566496619652646701039695431100537410647758677343937684416189660296669881859548086536092697831127116124797760742502104902647093469758202018592190345861216398210337947853388247444289066350368191868875923198884417722562161882188116079031491859470815122073603303507525742967015667422277780913608560473395677498442871054240347670914848258992795026477218481690329375520532067484489457929683579229816884446227563730702721829622369457870700470795811729486087608750068414424228243594187205026424771911668812825081757265589351340247956132273476364518314524053409811300338686428564653285475697016349752469379486869142572504846091036224338122488898987241323479939584685310547883987651158658072706945016783942785228414106257296575890658511333109339390702948856334271281860364090921594502126091765913403451403904088294195226423080391749213176079634374075359878299223555900464432523087920617181303010254840982132073518518573284749356585843516665383228030027017610195408226404377546511765557960763375616261936411772256440635316834673973310520984066802297724111319037464894866031493496851006743062884500689407260008574141127823282489438249357215175729704639008359507187844992912137853820265102593811583970147039812267841686913679249773280117866814692385754615503916425270776320468336244919444447791191080299185363040548806887917646112880692826455498506872944963991407594322300348128506390795305245865079888106410712843288824767511175445203229585888418625868829753746145926959503211513337197500190218009780243152607795083413202083222459683901097675051879729429216752860559908500712888030670617927217362023194334988774201213686931282125228980942442622350626346688204778159909875017749526175088604182356401088583185799706434750345899899256925948482441539127881554857759023735281596056991846357318597032644834047007416104294719674770784266717154008371992695408295749557945407215647098573101051220075656115746386579497862249024407565808733265720383551769533724803185585315593690435880146872529674283091684413042766537410407416995096454301650469159441214726814662137040316203088649577980600484581257029097833862529915503485729089466659239517071471071363630934744895489368929182888276894466564208625713152381756227134322804276255157268200365390680350631102419527636853143625426045512294017059046723079498209030197503655229753082464094478720548022882814744491827597887012405783016020630854974675528985749720888498608467966498193119958447111259292462639643693493595846757547078901702225936848844800156380939637976045656946382802466623809296708240499721876580618237489392776371144743831116427597220887801200659935531779280686731016461801428885780243117889646665976014425156644886402143449161199710642708439645910812248460979746984010791102327503067717246107767821373972155666656887440952522493690593519533563006059216659041819135872850102452828431480304848743219340502210222088543072717760934343064788398382960580214930583984361654060882087763188396336385598027858339553130848486145603391521857149722394786438422201753303702114840642817097705211180647728207394269410294504771849067497438865322592448911818582102927609905383953917796467996216729713283893838432763337434305774279713978877913995480190306762989811171293443373351022216256005675851730301541767220049825727568931981550097544825300068215998272226677977997150936098757220187681753475929571146189819726124229076161950415664865737245205283449029236124805730217602974874240701126327890424530135245585562996340638103551698351079676464075710141367609143070613662639351691747114545064610041054354209564892720712803072805184620554947919445043246876338376014024627010141968450930200563239306811554322382685649329146894580305831518618989664303088667614416931977501829161644131095365319652404562906562656816871448784636693372130988169803995643986430037796657470394266924995792288920834748545945999950260825404898801842010994055163288893427391119030819333470908641293526894371774034367136145535577130698430707555613495274362727512890134209903544765073526989272414664549512710740713162074700025060583696783172610504271109281439624996916778871652819960558947826814673375660720582225612189891241633944909402855666383240828596879335531325246022417676148371038799631919049621535668977154926039399163972904389766742565049922707605609629357822934201757067372448830716783447057087883007100862479490811847075796387463402490980012267391919030440241608905734253828213516041028103495812102402684423679057043719514525748668461060674582563300335216094006225546752267285868914744651340714229809303302517355572852242649376090496956814570748102486690871178528940697688181317253848550407281031872387437898482788618260887873770679102624778801353798479368497352001760604660854727411410806572150456527397451279427039628919584738153906064494414812326295557740145376367178180109833783051616235097218230908290288842100785189754441798785627901016043727805427532408881981186817341520365918753331545000618512193080122084821614491673681386518345646772818465565598052568233400161319753356151766571126778198946602712490567360542503263423533037025303176827769769330372136626647206458291762844821379735557216719132464317000171975893944442027621698320406979452016531054017045855016042827490849006675426394850181711538481835649856035238074896568996575211287569586033713823490350515306634531623225574864126587430931570608901813593103241264826330730298600436847361117436624333673672584570773109872419620809922987155583090662375472311339926464110453580161086584234851560160825223859755227699639046933053384664931784569479231960243000617381271983188616392514410704569656569389792071069227926131427109301165562506163780214239983792583839117370338803983310381308982810893693388325698787912668295040148367840129082442120508593786599631085739413118850193562864932726294941711740499803697571331122482888761716927705594109467400377757979755572860128934413838841524407253290841955463209057171042358090227108190167572523052542218482646524593084362354382808446314478810173012728113622239778476851805341206590505207625424526774279339809626460472927605914484885248707507731758467016936549411927963996007149439244893618422612504086002339596607617637010001304713146875160467334879374263830631628325473641695467419408007035079737903160370906626538554825598396094234524914572758856410900573971862259836832337158978422465027921371847976969366886253646268864252745108565763866995020382445264238307701369583587843625256687358272472228611450091540118367606996087015459628279614776035585991482426173320794225896797497067140826107909964173825135413833517047205495185580705387347550352174567915843902293714261998814513716920842433462634881223674244780192413814062099925782904114744521367182826092639265019583809356889202896858341686782832254383851008233822802353333938522883047715135023341124461278778930300169673196246375267402504761205795402169115315046905429988558032659466728387453113725536846665104656221467903442620799947532748910819361152581721490597366743806884195636940631128733482950377252526423101745379887703596153754918899775027778260354769282875818859142171836895832885433204516021500086491456524652629477118946090234143264455977505479969903400523701560561271499923130133854690984759223489000467225791770210388831115190639449557191787249160394556748407670876454288916410842277281018988473027893869575916293941962019595266156444897042494925898674332833309639778181090107440792821198487451203271219313447089590726202978656329167315341063178282247256970313259623923759870854682041958245882506549716434655904863228952435582216543738481057937516538236504304916126659113865615793407705829676717548387261138020992880935722235558675485896783388592311320290676970690254212599897428647161538437220674535545030969880044082374948008318219736077709346067246471958333776769311274342634616959437503757286074229353593388363801924817467420821963059677418491897482399242683086559474550851151610256900601620188678180381839379798891324644915974008548304820431662767134422683819196873126029405293399225057917603677152217728683719117896563391231816226678859777562805003290786605126878618265821904297110177748768448527907059153040857348987213210857705703257993737552132949195969382378738000615511142991202076449811598315968273735004481333575362187061998876246868290741760138931896150342619321626341160901280588069014367836643409648064242613168375469255472678334153284198454968251807230489100322864563913106522730341537205083770557708244997592512748050861397951958489487626335441539165968845756571372175944272490186119675167521447859229575448654363794370362111060491953192631410398492344949853886321452976920035870309539327959771961992178183035869042973975665189995395643735698070246537536645484551024513793796810026794186983433250603899857085465440570847930258957636614360524946209131494486122801755336391669666267985717734814033214847164170338080653115686757076935985270625602622226609003857699736725679057077148815132625894968844976022174037048281131665132639738781654184638486604252130694400727043731087032856592485348683245271715356610074298132218692197214284059555261801080256840734433116220258940523292100660859943946125558839916800628435134564365765999481772028715336653300823899828717211055861334440931909854479919375968576081030551575256498029586624004046378187376663333247081452479436028608816516334556751421402619302237118554950292960405026972322502584513488838780549123642405991296349949082247698925444560313708924860420827640254500244316229091227579194367728879739222637851701778487989078099201758682290581607605338958105211431264782943011567284359062291619007181654634858632331005194296362025203367312695079007924406603317346212023716054259967223444387980783053894727415544095903958239701445436785143577147917025279659854950079661171528412654588206035821007879079475267562528688131154193884414232364040206814432771679115416560974467139837421725145909864616041828511330668003512490127863811466888418197557063141683670063251125185735146712370370482349061932199552104775313825979849735949802463855860443487524323839919474711290338238070903790251161014301801575223637291341422802712860393135766379798443325482655436326484083875034344361666839833216314480920938169109442408405826224991467030330790856371544720975632220001044342549681866710841709274901206350885965880063670964939967241017823945400708323245323246657928500575870402437552651785602752585929738770221174427766727534748950502210979226062297841490037479939051756208605748745429666444952813310057569683501597533139128338680126645813111261227782041689917541000003834420971293610471760413337957149375546141697596090854585976424315932487590436403141876202827765215630312934187664402796092979296069428566310094278065629300973185517288746964456901215540525783384098265679434466754154527731669490274051266532472589751178795263877338184270013324406596546826421414481214762934677175630844268298441486913332081072794423745850341446278910507820145791639754991508074170736843279743860194178967192413379192882538422432425613143577964132523836712784211095245086287843624083619097556946106902183401148433764297253458251750220992677120150712435911699499951615586584990723844680339753015288508555961836624716764462752489876830828346987729285823108665363092427890203220294361250330330286094369059381714047628893841327408248869404136310036383844374331005219532832158437482398485580521243397084850284868496530166250956315107336017706961466914113549952865450004066704211787037195429337838870856180166765436597542319397018830548865340738473799305695418425540685896892017237117996397146045568739191311811877689632411016705215070287969087419563765539422081387373316864881775382328017909317862628777069290175427868913007512068898862252810293836546895676990270975926435558126959112139922278572332841466451448536162152982628145379754147121908331164116150073158584731647206389843415962541814678846831254491334482731981909365257720221258163880106123312218517862138902168323895631690367809050381521010740017927139826040344703648458576430468916297218407324965038359172325385537497039113622810977197194207912335989433142519413599030907961632331412650006244704872966721631990912093843531132527156740859596919837354638234808538451950692345568022846137605720730406121861604894582304736999411315201876361384096439585856390286646944868470996345547728727951658105619443371357577853210782161014214198679084684142577174901440372406127011373857855450988917967346853210795340411680811236493259262531193187340963330373242723398279915866170092182607774994277457535108011951043596851833125255836531100533536282289183601997556542164113059675332567542590623804216050194141308767768917539135441461213324636622588509799986741262084586124804349049307534291770076569332995616767679207504548791893269699674785273311648557286796056047373221847860106042348107386067220407976502956288601303036541096053394775070597977683459933762434662999799930524956681939043556260028905295589393544199974074709552342701644550450673831189631379170271276643941033504997051604605008082450314834754685464269366654453651669502279298309728938763697354780319306379274298931503038875549445209772371708547210959921834098697573585480154506980459881018944590667622006753670092030546623965674508077989633687876820129159748057462475872206945602788457042286770208856752958920263952500275852982958193563928304347036623916734854058383370213823143189450670456695439546752354900099621589948936911568584482894674991556996833393057404911139904281647020966436961602655260429250926354080220511879797954200469032175560943797506220141738069402754659676548146308319532604033369010751505767420558211752855041970066257869990021597052968440600793230065673460879524430497386424372012820216342856509710786539963514689059860529946792868722547472233578240867363497515476936628245324918276145244740765101106274854370524605130751647358541765331399005965039520366683085802420324728447118180886464605596262683788784438382693626364355301467889241988762674188056243908885821180898180980596808943899245370221044046252964468301579581854498057610301942623443027433431175609328957218562317645457114717308273820984547976239300085821516180142498872386689188040223261734833590617510283901296483783117319121387134514836353320959152924161218300146893913370166385716015665596380725937272780907806577986398198675584072741802902037204759792786411364282243101587435814357638717922844860190632144804393049753302230589492588131230864513227855610173170068659724273165088896548393874826335903663060180940540962106972069434091346920205143710338811618916434872168935200358834886899005047369265332072786678717828714092383217549313171719312234008341298255457961168414521490836395471165724290163227959795353139708099813920107367309478283862783829815380068280663838442557769309536035127963056027123736347076588717751600810084985408079484436952560987989178686985696972834235597650146676198826893307835765399798862679376697202458010210293899565859500677541509462454282659618576446576800861866568626479831916891319400184574735708066292065990510176011430896811206859033879578255606319467549670647941994075294900921050611516652927154731877610858099282551940694354745935308244236975490719689734281539100479754460036645674824938392320994384521488228137772602384492773780822127598715590225533317853350805057117121479569417284258458015408967981570858945404084327552216699852966662296939972675977146145617378401623641760205604252690502759470411087033618187437922467716803675664687474014704762232046108375911434492352814484177624460117393411235660537560826938693307358604974985593046031040697597391179425462383179663259026369118707252130722523875483781032755064360192861654035012657735429203982899533518345077222897783857022245130118776288059040379754701555834431710049794567316771290482868518012616843023901089917076859265231558141822397931760041276504471589605739319101864171552039140562881362929518132857403031123404034711357667943641954738750358715714586483382811901778706036829425697865942165031425386741031664580264972372826809943398575066099037640006059088954388212250036055163973882686322352752817013369882298334206687990385954988595086492182683418722964595435660716936674926085548157150900245651806176589154007905903240346500457595737347364632789849247539634871340035642442733401767928221026662490419957134520089027897942113431045962481278527440223111183667201035168106566872777254913205176812183608980823263147850931262212784024451071740051803578110690784487259382002288529698507160948965947423420393139072087558950056868292686886753360801913897358944201014446494642017858475233901454271725140931112674657841053887313967454880116130191548185021081818160978848047512181432150110929014514329812951241960615205170267435034239734035688883844170725185580629280047749602827620525877133234513433334211297953089222280983909200429457246683262662258589325146888880793668516041931708043571330364953544142138925307339237573863022812900138344320053275479699923857747587576690110757597395875794693782880889620912351539719457954420022362177600116144955211158094403069963608894116926991731251350242140891761071680045927626328583446242552056478938762594408900660258565148338546933190752348851114019547820800051373474151569070824922829266006990748203911387603753541865509605654899382537032606696229014723367910786349110339417849128750924351500396217388905876256418174864165259988051393938533240219762908881824233787940684109545349714825868661566345019513962233798265797901249513799764487578226733278373503497034538620926508993668589952887072082902727759104371558782362380008007448804560149024607182457122351435803492976037264027967457704704412478290316748677701679307069477370822089348612125760698772817822966780507579018842370085931847695702346585355446130412972652393176008197123668367079488751229805984178745855792964588361348077188519460195880338376126754494078532127260848952894983733303944792155247600839154326851024403793268592391907758776555099985342998462982442850186807939213076020356017901434833379491697843673172031189113685486497089954499285275183340040456757626761421722063450799005944234156690860168731974059316177252493939708588731999886475251514809926635580383272511897630727211113336970753324662438604232868170082815617200323086547763835308633275769179079312513287216352802166772919551235518944356060731710225811683481552295359241696040220104649515073819365985863898944579820276303811126824445550397737026115514178952276303037204795234436880555885311341343976308457782988944786383442380750135269791052153214621312858020620473478926645322846316700628869659802447179486183699334239130752263246340968985327231065730324235303921118472603086089321222886109379457456957219257485612488084643371823148125085473606510928786387494475943224457638637501792451976726652679730548612367731134614512292726120362643622806976704667047651019945604836745689653406682084598104160766039173815862259139200282241176983489492552854727165062004956825792750884449070401544889564183157676982628620597345091795271494226986216963400366780090500533022388484117255224602174680556943320422692753354450043517595705690674474904257964611711369974101846526997779372145597916611029101437117552094338500097943314069963007969705716487149519702844634748668349859856657484957693137640430803203807896712595081663628360142216191368442160175488403120802951813389266474331614421171443028640258295624556089832452505612530356888875138739823973837013376333925703707653389006105077532566996157538395683851658621475666999986257207663048702233982136728726194418825572597299689435330900097791930271619683306691039328986139136933809235781806298206818386075383326614276977055166284646129468269558592579557435325690072113445536296663692611793053710022972264406870601240759742678947029277220797060935564782871473385354095276027420751452173098003216517481229195841510463883974403474479228248167459637544593571742352033557645774331873793061181238396316618678020454594158951489328053292545051250860762942607648781188218946507667360695349621658878455089189264890415874236715195363825210486160737618505540257896457266767757220705190523634110515243166201208740714270871241103496514403133168552216216407348751783941186865228371626348893718422972342214030178044692732855813929864860504795320835953485811534732136798165355848080234730513951566756233760999774212402630851759297798056715439780791202700264302315222167846543009051320241212076974739972129703470629405707725202493522898195834218063848792255341022820045850711004291202481304703481810811402147930076015345270056653316138947498271897360602576959135671864497187715701204758903003973010895039143321926993456361050434697070490976809066901152949711754838306541566697670124994669223670481688250354608767879037595107065289482460904934314295850724904031095412603588847668127480586937536285967710736704160965461019790244565025728416433343447205430311606097902880367222562991608370653428867131938824044830655194503011245454203762626818747441393671870846623373859253514559311727143692045638207722101684431942500001297562981334606648622157225451259984475153944335695569026050196865134026544565433715791345371353936685941583559873362474488367497129586506809641052326975939432338124613339854633084481779892237803543021515372171851912999738378425501729827138570539057779870387522301900874491751813763947746160571903733400474737549619367430222330425203927522630168342746534009737082884383997493387590211901785581033255792564210413803499094306940944647668160871284268943052362557690041437539284783523999307725677641424587691356303960347505367557677784926390140330841630424491829932745941975565991009419740492468806258976339179445767953783628444950472527354252107864849292113926445381737892167898703201981219485631212862348166191688861246787514591854692911515464921973425386703956990154157824455469995183459045008250414897457401921284172147876154459563939747609801168904489902383379242907236409649473269252642236384138383819268297698192742556299352304104186241156358343128803371184365290272886672773865690359197776026941241518862667184813012480262637318742201284380259959380373311680860568077589985020993374088264022418750605874546398176634725253557946677796797165273646931162085696918296026344698558595431949975261881758306465067100943978732279790820216833601583884755634477412739795514567937377022126147539119146159469357853188401850476875544020754372348739151055520914843772229087169392660409965277115060229343502540065403215530779669597911751564033760535694687336241477349137584644439525240432285815167582603843319171897594469030177798508479309031795724018000661671476769541188481378365356690721918691419997124392652189016813421988691535215862665604720219965130651447296053695289138951775513177101429135267374692025424802411197550587381227656238102100159152455393279748083591776369778223526246955676416806797176192340779587289886958449066358423039141195436127561966214734886131411528273293425349163774168792745410743176272228285913868579236747422788595694659237553704844540320252613832073140368797030918909586715402754882374313456983216302715555927465839558812737562845070738391043011807037333694009749884629950080228418565475457442443678782100700400623343945895454925336970073582399053892052469396633736088946824804693080472011231960486576221234781107962265358382464564869244247470159468130479867346023752502294187909478653491603823138419305430303475526648801236620717731685367002404972523440187780610150351133246193696197163316908157947198270608330440187546458196458346490336230192830280180021493158492382401087806912054770697673218022672249373270083713820233832452478878531171705426642400310607525426491595958470894418367370994730765605838024343218968545721773256879840340406122681303144334095091156007794944436262022078783912037477609328699033024910603335566485253447042978465360475649099689036254544650557994691383332874282776058467212671028784978919789924177313154108714068531772859996162619554189588458004204528411149658402381891230761837472771449059679808517809091100398283632960209385548726118262730832673633666373339362325234646863776271653666123541530796830788938930504096790419633165077736324833270245548629483659106406823997918715190795391354510417374814407911463431914686507897019957321010633914342161535571401771434717457666118734161447046549180733276174045267939967585699306886406279535218706765471186210132575086718245449405679863841796421761582251537900180572006127865752448933882732309188433775091738619433440370288594763760280309827922101753530379936206733247676548411712867875272974588685708169961732917236829621719519713529173052037336163553088722238594846830394666380922939113198475193880915816457166459179610281020710780134127473167210155256450271927486854225202588115270916332954812198286081926547095202530064714131176171880323944446362531525751939322008176964402308088943303641239743273837750688706006550869475192975953845397423266275880813519494615311777020548143427646034318516875341483529352308493267924608678204059446415796079535688586524914675660025051341914048219405605950125741064121742279639079979065450239524757612957965371343824095703162647608585221393414393733907465404242191467984387612176266407058664874450886261592865870269705436822247364964574449267001670576036759148624777398693171262190746753846663163378606435636339618155405306728239334523197130109692544511119702097695947818440595678485263704774720896448535806875545903354740750841061303640280103937658364820288262673524628344776041009798424154178255136913345036545160829633031225369301965822764908199081780475811533535477464898821268337260822252193163011100885993457050991358199591115708469887366269943802059715666545614122794108149694412567664990736965971989828652737436698953215192150173080574852064738297905982391946482553533947753388182554701042385585082876883001275632780874694875412248796471161070624121070663043064684630120843403241410903215777494004828683907861447494269939386019171988969406104397131725669246664566341752589517055006348245621117852372701381611917819854992032791428993588219523750191684484271031679675341934347070623585092181300763959747089593392005078055035235479415044741872091682477374643374990074911875243800604766925931411115047782356610965650830461237336839214757724139503020572786424860652207463641655928808897479980527876155652895828565923523335148670875907634446700449745708927246581086524583345978133858223521268891018046938989039805333333087082406952128286744596201678192519887373129592380009864031690075891815823878989260917369457625084649791505184535510415213133579434935772057957617223804751984598728847787476504471874499545191017725059290825242402809714577019792791511580410295924983407269493225381974408353099003259595109611661030718081676295668438793027483796585779392960115935881710521961009167991810006375557988577100800403264933262036227196652634025794704569601456473517157929415728736405272164482809854471690540053199590349800434256335700453529710322426681886148419894562546176478329766142109238045480010659315450625270697305634998565896646087066632364431514345374619759442698695834788742563458349508895481774251366939205759752429509949292660836856362665055604406432841361053425773858037239422383779098172060810725683937350735415834821741948164120813472823956664692306372378908172259177872536990960752297655564604295707228767366611386360037755952121377282635515524217681734338485137929091977398358408000534410900461434124529711312004054500580925929649134640743252204114985274769743328465621241724444897396039606473377209598575495939588660468357233627852371354571502109746225720268758098946807605291211955932112270356063134246462444437685292248247938145359190214568824947125576103645696457837691329874119070672858656796406375920053677826916285972228571778154039185501055239545116167049502070476188008912732414862359415553179545068166946400811923263206742035600443373641120523182239257532188256733192721950997078136925973537783599932407405679456289166602185038294069505608434107012559758891429396112024596324895219997506018208445826115049158060258212957425755225229827883512068478038813975662394218951370748897817159648888298365376807727464124662859801516239407544236732074213328833419868948347891787239663680884916752004245315732075792212711032964051334749643599190722475359062391495733074073422643949117682711925028441229186440634247071561568055848542098344581199121226648313265874469934485728861923702515748110460593435650778037898156340386108270447055520961898120778095753588984364060567484643126184827392487221741021118644216490260574874822408712107796244852523178672313764940254577680187399112364443858757560474178732162250180655376607905295280180810542410735222876457672335825868537969221369031351740326208173566814144067476292908169054889766409659566602737937787556765053150113549409988145410627257733649298706608750266655836349872886609249985847223686817297336552971257065493952601966566544609427458390686191258238188065900968909149620462268195639510360615092208380465915478887862615532603945128375910091466902692618695701941194021010137021098159485468852474872799880198526858721153966457924134396145173516112990456408554721043446024616642946090491790837539535487295257343350019096327765529843403816789499761822808486146553557361777795441989329638102345301132599591285862474546977252397187778491641769670764640181095063906935294625798570204622587674654896727970584396661629878058659781890206844800283019501382690325117344216371788545644516566911785250397834337025301246583382488029421745642587173825172520854869969932945256743242396104387746038480402977220980909326768934940382034431532071766323222930156234770532221395721765824106662189487894180360351779169612334815235956532246168101087979812102333068360989137967238243995936908464166001826956062543151442021185817332517169448238970152492758750727660809016206127630869882981957718869257413567266757351131964591928068383516041066236656179171088180680557513697951518844562942864614063554913885962378393122011063832599851587958961837626274849884036619021983720517462429156603380053592579613213185121896371507115936328429486966162199778935435518536111299490762589536902179573604053118289108030987828879289674200346218830579378893997183178530587650997035572610552070930254379649534505369217920035387678043577932983920608489312398942248153732115044372522951812871440467765377635414806739531654758279327864385898742426042469361007467190923585969305238969260876643884813225148428542855826824604957247733222238050141034404921705747727345995161799839168143504528437516919531287294351552633977125042977203420014128013652286547709171273383007045153333290064587380377434801451210712180635588637623711271293221663975743616497824281766169726457453687979736577929751064769655715629713298822607958249469374692377632854104856040683663494718287389699573146732822896253052995430843818636545190134518522512088753797632006117045078390207790290225192700171522398682257929698427319708968526416278908786040185557161466252853194664700324165698128512586193567259518579475815485460534375586291592796726226755915643464054011955869469492931253594097078932473562507021851687073716202606215556289443581282598342962188880890973419259242525208010934057131804304357408847899320844313678723908698789206605650085831307148579963468794376620450289522182421214637024585123125498737394734338275227770398546573898278246922387423783623235443154572839549661001031724169020867411986338208657689035335671491841174010999657366788322824912254339715117092898735307411160825258570522559582268299826880561033779545520717515843609298139308829390202289116977192763318849710902377206099877074951433314116698649894271143494864572323632238148901724050347707373337836386439935345949628728240632776805164175995995712039329065015687577445857190423001854429025485898993896781842247856607818363440901458657199118826620713386868449392329179933136962437344846990845849750496221879979517338801714731325672268862599316608414516408122291452368927367497487225594659524977250019000275188462207196141767129411717631586336836234413936536491499790834403674089327598164713209103146312326359902908281310044079319971519274968900936655353059737150890012590732129195053371737374410244366753875173408036472216859049717665909302812879596157057717762105595115663070338603725606131782416341795094069327702809776352769790498297268453779060352961719196355327356414741158334296723907253665218108838335147387492748210029287188832737143040245583377739672724002167418304190451654097513991685037206520121324017003652505308125778227772657490657961725558363069770892766856173959000947115010329597966596475655623637718935521102097055143009504904532189747774533902069778315093374712557024234696745689397309030420749585788409928801353710848219623981810871751941746254917987463595839860822021022719437103220823365975049354016586604264197665520538830289887566115656608683597450203388455932199227956085738930331074277508320787257391454899802203041429292287149374849517131247013633664616688105535759049310767496771948262219057014834790131930588957396182166166673306330303134398128133473386876745418418353895978000655899665100234568392483450084844669888107934353539114830088208072773164678801064281835493247035135586331366388612666101860449635598106111831731379786892266949185071143801715856339220712266975690070992744489633543634632996148805095746580831485225493991337326799008063737625656260121733628098232419540029980083880001285250330858504931153941322033317073891347631161084080133013493794673450788489975389955070914108874715914526789385147185171618148086267802815937089626674988836929048558507183099772009131789306680502544666438121451894249645054020446818487884592757883890750397421406379760126719917399400032863780515784368947308796129067927300304673111783544616552796190917840300301742273349590684034998513881001331034662565795681018444541911912521539653602204900296111112882784085595050568975172094374434265993692047580716045494912441384546503743338893839663205544714228785473854230327804922308488678207408744887208277764556344133553357847616476332261760144663590985287552601451030286764572302078897365511098368947695628740466413117292122896384239750922750676241438835411079165047910442681027426135937199524913535601488995576297012954618093237902932256784949268317222046836956561699233495375248495033112447075202286169487500821096967189568037929664319969303439766290259974555147381570993215999875604468692577744853174807780827896864056324405726661236029502541788366262482208466242461559043109060683953158801531027400564608572278253517104066379461576595414301758102271529973894315427805816400534122639671102912236419944430888532907637644343591396555639329816486825992967345675788354067983981638600360356801830357373895656430859207145919575462235616160940777587321233068543550671121376816242401069648213327132465467366736091752451814327734483813900382496406769434864736158653606046884433475606618429624999650057183257113496076408918749919566586191604205351756099413964828139226038123843512282196266094688907030570812188553039680049101839187641716721577676102701092290283213946190576489504177563746521087538269471101435067549951132780317800580457205398732399122286614048554871059857192765235254155041072553995179322109770972694018291812537561966057753510442761490485450857126244873287577799092293780973722763439177951828891899547907235327813279945949269985141034730303491946436328784238773987770695516165414489857755229844385233501975747859854752710283434253894890756903195562955678777896175784545872271646787741856355795507570519570363182390960777454654482844387726061038621005746183175385165498951330656532567414827666451384009031389088261916053690693811253886605924644853154240147378351700700058446698622679336724931740266781950558582367632924384361816847260619176952698378794434334203690113996519797715003105407659154983980155285664141939624571886164288458269225264007247308654779162682712630600116056322803885345473361542229883269644242630069129908753527818768955043890519507499102823340936773859224725659341246908073870494232238809157188247763356343111096509108889473700068599340070520862769521692732466384600639332614232665939262160378506128296492863487846072263761226943343123186088885900293726789707892448289335641237215370324684190441514543090773169280254987527578686652208562346968754669441712588103510315711084932894564305666639428844270468841292232085104877639709765316708343503748530734796406223117137006769149454594169487691524926789695910634400008298606380473755572761553856723620779447154556164546698832901592678933218493340802398452745654572683760484981846536339036195224029064929582170500538047805004493964532078406618126738610056073398853845619486864749081307389849830079749349693712618704499970921771624494135459741857219492292558203270470451709599326812291669986501174411647189204348679946592452979955189464831459559716695948234434337415454600500359771583103338754939762789701620829016815011931131877896810886788491201373799606906130629154105413643372964442469232823780345105092569291816563411037678365236784529894681631995699706689204291443788497931133118326590023713368671207909264978435073967450851899378584950744457289011840618536083387280641999658653402376882493220376055757756538574494557540202412193856127926710341411321839821802829033163034433259767544718432843497607628535683673918935141987475178859593849178627474964455191320511433648037956720246878961706578745715661796474645843703077348567511192151662618889421608555271261850792684209399365302919050457021517673561583236906155951560960743988907496572078921434056148211133843782054384329627139553312689506443201932034433196289799584649521512069749667516446837902004986606594849094353304425631136579191239221714521490399900584096894397541197927247055391305396748616378833497337738709734419834291155077136260397847181226352057682380105841268615997316366142777709804693575545296775344441410375054087858688347552442267849455807649650974734364295023576071641622266081575444934319198268606003845947673561592647311597434784411850422482037502401735377910383458099250677677685694666597685508745296577021822307430655456376049416107139933258413560362628448932064361964483275131218210198945036415983569177193477070668837001439199789429160776290804017939159565193824343359882128942454695506021197201534822154189795362098403221167481500857057174889788302716006760714374712902688109791677416733521519034193041283647504220991151148161992783670436467970619026595658557460296081336596566906794645979821211416418382724460557351686491590655414555986920613918803822369783505193789310570673501466543574968969623072377314450990345234473353701455370456039628160494651474434720599378613521711061765987969835667727474860613551137987680433024363129082806992503487450483756624286134353358454000028894598853355087705296918652080493420631664479128305595391022923682514940668030662049950095816311391870530655373142672780036987392469446462455554299950064527545647151057190864716821864472167469722633107132760865784365162109435092445308517805759019178713889083619890020384925720880244186123102335187276682359586474700545542529908065397144650170377466451734041133739117210328810344140733380858785785870699002488695892812263967317940280079618602333570296685985604146841947501413243456023625762432917322721075706705081314882991670136634758648640405005159255804689948230701306618868573255748296982024306382625083289375776272444243944688097053684478791573594999017347527355162264818191171535824836435666715548481038843986040922494797576466912368325462585639341422585132862959571466388967290124934942193207136293676671868302870503333935585639593279459824192935424139385504811579927840031919860871381556566697870091672092482135392914660721411212696275811590102589624181892115362669656351295322788629416522446115301460851234608071504750836363025361045680919316077071430894517077104736651613493353181904829400701638180729034255382006575953586433573838612333241758946107754489785793989364017619426256693193276381782657183817847033547956697097549274845509100333332226957747494466730689810028093965052127728146999902606381912082136603274253718905835459285891278876232717437903388697282998557349582415554639989795593468826852109776199092352221940572296390117154224820571355693037942622421694981451699488051770339833971668513595967404658512083027031447854048717764001700751902165112328235353829505708639540809844196981348840907573902196558584497687963817998536241617983971808554173895102177162475417921893241468805622645264186321830488055455714423440703760752918468453002306562650180380567714668933215179445661529078454825758689058962003583368376017151690279469959292503374192647958580723674076004963825346426414229351947530365222067783526073590762320776165310230429039456274978153784226771569997703998078658754123610096279061555840604664817294348918404317304693767658872421022702301174379637338289201561838092819694829157641483182446264015744640510637830799302858557591078920648369319716252551271793308153891334816693306776614435017714898621315639986180209816570693113870039818443858632005206388656282328693930031590175623148498080136065333686947402773190071041157766884858229116582617065121347894487527583693177877791700113277031215164571354416380455904005893402148426419229252279274918153961430852928169035407947968761101100440446116769458635289313471298265104212121816519538689512658824014906998950711356841834571431730139177490832495343105772980282843390350722398461104930656755882660479513400812669158168494332994351267364840761045494606916912625585735371046945564171238804313376768227954815345360155141660172816172982604195898496579258863035505870154650194186135888554278498699925728398723989714761295413130135080157270954629465036725154364806199204052994092960147194048482393630859195298296405880146496808176847898995058337681911046664679181724025203804803013329502627702909827371063364029415997808695395339551127116910180655897738045195676802516260274324424748351799328397793935849031528704506896329123024796028014176435220227132431284420215737380634878686769195937094836248769728951383903478041579620067714858825209090652221574858235303358893228410707835512959867839217993852626373472161994136351667035782068751483073417172294030516032680959745695954232067700236502471193154618639030338398126448697783406463324169672399426557938130646364975924810573936943043748369236562640540546272214567207161816905609398696579960332578772906073664368315466200329441359595366947996794764014035544325917000633070079606549024779360974796800639222999709129409195221165464515209078291800132903967264979445045567848303057315853730359659652217401604639237170347483941648355485690463647945271848432431694341905715352917547041421802022914943382332134416394130679906929664166745884208142067894054368772863719824427467724852101329140997877743921865581465355726388036009989181222761593128121447565562570683109488078319377511636523815017907956551726318550531788133803343625629304742940534259833472715830812452822732525705724419254970284106478939712252164923090608447431225784118355593342355097246807909943084666674892109993479102629848057637722438331920033134095826332178649896851031384244763082263729922981892522195097390636812618327561359335131186180996056095102886995253316441900981904621570717554793327299868345538777434710036580024377700700460016832382337598331612468251495509836018566509496012438499220827880421496910170576809360552164741650199678204432820003745855318595482220052699830914994018545890578983132462675827082336339025694325839271580172959398719540656671926169841529700269805066142658377966046811534515341586176514026191328491324998182920191048361102008602917747405710671400827696951431235330605844356645006726147320846409668570735923558098759567490818201858619106857409838029896589841485547207284508253431432060704029280570347022523496217278695002592429002267506187862941230225895517775813081692478832296521193341183656077438878367130455123289891793731554451513694116086811385901052041420204049382947057922828605066381436760646738895025003622496882133296568511773673061348781147308467706385957800263536395602801143771389853045609928227883381540089304634885308992093364508297361757716725907439175575067264091581078003694616734640925366159255029986622110395734876455448174129224841858641365749772456462798226158754581558484879516219981015849399707178339529639182428497453376914292313203537255404107677289124116534251556438026125951022373512996263285287019034841070841058850974513344210433766689139963621652222123942946918018894905165500683174706819867929780936989394929792872190894579771601270232249636327776575276443931452994184318801359588542957115738964142531951644150385569366622366701244218936456386137424404816597182221463936924743787860298859723681112792450422289801573866880505415189897870329355043132145452966736807649432376492536844587482958440529101053048819559910672299062451790727041929543833495912327566583497914149984937163441695653469888682330999833911805517024563995830023955700277315985100656698538735035803203228891946684680374318344453783239802870170509610546739859634816785197195087321996358573778243149004467327537972591647759165465324339243184403037836628903646957701595813637645227789707922469357775485113842111210998918276417645917700916565925206836036568207119799300619704522845884988534402657379339926482400908027373238143723130527608859156529659517621173959356812162364309124566243588464255514843736961700477225682086675646593415216295288129188182529676617470096456187722702563626547082384829962301562708789233965236784350536128159844840042367076046164870946350835655943968523802217192119757163852946981558680481579306482528727272996820997554000650451857887439360603479508696692654094007121980017605089626441057106061007044127861250303036368677568170344591159202407689521430981935769388162468717923907834952502977391715294724989513092552385447430326356213192954102959636188880158503243525505057181671287407395142842251220062985585521519678500927319724820372526244492772088663278756388310363908435862276118895752502574623501590087252165425238286940073041121845980089664942263339461709423841351473345166813636172731868272796461201045636840367924446552421566155809349968783387190054958785183792548772270877349387649042415097574946017270745023726434747174365115672033662362165487214226244433984358654609071482439943357034091371138924602653164734200536821293502040445848504046555930824976635769676034402249696257970050714246455761464462046808807722612003188835737950564789083932508378061131663261869902480540534957299391334791575372052861915530009710592448805799855981648364735798122234118707817252479119339816847041604032535043790396631158329656591771199957999992234877727583442106741729833309884562260842264364327052885476427083276228877175327945429524699603461673208387510475389655901601991791245072926900019041837423246409128947470321386459313116973246182192204048016519685246242245406156793875136146067146583531987214367794455586734947519736449566496856912960403881008813678577169274690098380187645268651838773518046887323546616912169873959101083791841230783191563518225507618264626479726614337144133202064636551806528387101239495017406901831030054146898139467846628279130602501254475693353792258864434576362807044386037019757537825886515402082784363285562765149418720834710828236259191887492283398130412696982378293606181676360139235873149427505716692485942864077195165541226889377750634710251867441901105572215513896096648723948611672979783260025298778079685090301413536058902595888974730412981243509291348888734103411611046343514927204852359571391295735795430350821013403574662083428960757122860638241140714310223305000779201543174185577197862858300542042892509432828208175445734659907901888494626199480855373421433611195796643330790805170206932952734221165694809205671101372678368084806979713442883725846338743205950140105562881990735745992308171730496862464574696735952402346609691101547053255582250002898764741673244056088191678039292053059048048002091475508103785723767102546266332556407124047248812754994161303333296578729802126867016309515791966431213524009989404186618023911779458119870981766494658413791169335880655140069758505067822481188094262796392763556547860397411161402551250726502092507437475144126465141348397150322102399980355257500658066162766613618311182338426457338435073619589844620090049023152206443455629103832600972519838928975761314030539799014959979177896480245944182913020456336079063155872368558018455362064044726752073653875922480358758877125752498938746002811981566682642960568257437245291756426653876619439878262785266319214268681878298110937990402255340736844971138595191905501240171323462878721183151057614032008194109269233886215604632160926940461829574556398775997030530561653669806142071377030167921561888697684263903157027571679089657729000010726445229099836787830117695313314097709305381674233757159575368331770908367425018323157228915598443121562094661652604078086888521710805838460606688143573841568845880245342338078091876296460133515318301964385593088533102202664611824315457876266509957391279233415969795295032292643591814361622960357087924747134263999816899949212107770947961332333396597277129016130733306307852841199235774397090977603137041497602715712229649854959701928118661049455416015922608633310990273278019504943896840686514517673903842199340709391071794682626623963531527180737274531069665088491100737138502568612370202775744460665577802319048963846096522194433473150104245314054317549178249336569884888819236064749724941396816533829279097786062464281621457689028349301633683446463249248643324059768182293896256288904375300945289023029388359702729461111119398028359272740304148640397466173849364857316061702203577991114602856358396803896910348087115002108094795381308628132202052157777444760489999693090497194469167719215724482581896115147827872079362256946215502095489047164512074660433481373192742557623793143418309309709964096125517484469953081355514024755860556662905118641320553834826072089906606844772900096420951774287586019642630480911044292533459128318770188013632257123681774540584934150137455160843524505447467877559784002431454952799649105092803803229433750637360614041922755466997091449119202385313549649111868823120662223796558554184358196627249257489601217652296534934193726065141429949123024334252710106277819911135549688340860494201581797916033886242741424143884068426672177058185059566699332750280013677495857165613480857554243833139709288093978725951134806773671228674233176903761452877804874792377767509169673325255450650835665202281147490963592934692984444438540041054860217084798059771010507916739817214043039036712201275795019705444869297174304890906181570397355992910819409806722010782356613777646358079411871330932293761912435622686300503626962792702565460053759898044316592666387989387811498292693986462929070887118834109997670831679551935356427084130495350311868131894191670480358916420522136064271049353008579333831217369023571707371314407453866056962590458819949762071364459594654147375761965037744224455209213116496161044354338366973078069691171929079974455613538645623458392307363202884890114005717583758012902838146165116045072850513524786046162313542009893792964845906483801815329018980063561579841208045877500318784262976410202515394855724051063173018361307479031477408679300559534274333666423264525126291321272640014901057865105063091796155339613915963728941845062272244364426114517476023362547678252850255268275115976287843207343243337795241201734410969034375995958379117657451794469693334232528317371406761131703504116166166076349829882610150953849371749215637916109945081098231767177435827914364162064814959025606367879713243066499880388520075050045001567547246508428989680555538250455277153474078978113666675680826661516285433945331319094999718682598934074641242009008372097258654129951216127357415232390693168502189417898821084210648386375190496407192024106530859639084174841898911152068947367200518072037390250868221558083856067926353638549365952283454175873674299972572043534793869730102599998197300332530404522480745361082638811958787206179808484316048637729413046493697761848965809455297294480965142677418035350985599479389837413182433207404860356767985604268907645571551340581280321506949916192460771973552534171896144466915543629601883021951785836138053448816137498648620660960570419989619835550085648403998691038353833076615247927402932544373079517154084153330575202813154282108532676835075777666857284536138218777754173189815683480065746240451432267185334180610415520191668405425028135887189277043905498944495033592343479099000596341914705748450680748319189921651596111506486198456154780266473648708508470127578050136026481131574205082021059871610226975957193924732702503658083898538942433032031538834599116728550216496033719960404418126331049261933782800897881663819317177747568634532876122115337827149028561831218627559925546149469026982103359949683048514656104786738341751075274799990604796713620128999365961886169348069851828008727490217571551182332290254325952832276539337643253383565937163982927591159978217726586804293717504725485838380741786366709580970206669198610994481207982635809563163148057765707246280216289105216396659372678200841036716288429055054307422591321010475307451476782532302460954664070715652038392639012584396234609403110714548087044523042249984866758222105147496785006434856306819558498158052117512467428712412285733164479504526563525079870204077902743349787990983668889023096222398192274393806097906674413716123639398306489156958310648570669869747827719796119870752063706163202613395401690641556322705435304063152337637001010662265720420033141174674322568127498953758126914837053682837872482304112450394735313679049689980681917151449807249018895908605448764175988666179056888357136984960085692411077681236405177385783130082433819411376366682575961138369729060932786873673927811475524131940803659120434917396502693726106748984344924179821675488083946715983535743400425378459224078333022056240588414497655391233289940572110151836816193810295779856325830155093649647649982727596752060430268160266407343873516872267376637578747881153500886852197503647573525376889894573715411652599332403206779084120787065169978742752266181720572205080625594997287218702082039195777696429493213438096692418293443511392659522592360362933776208781016180864505633780567417896024587298836134056892425124026626041558046185238688868597075900821207932718570621703275140284970042790953969337128437421113843071846299470944472576625343759866215718454686224920809717455996827133434795395005551824766784613887555243763447164165708652560456509906170969551972412816111858201679947980966938667323769076703625739326356530574388078306071517894393826750245047796085906280781777532256297040645358217884552602129885608232382925438517148190296397756308696479002624469404907375454436338942770699375856186154441377326877024483467023525066601820523034640531758724986481670228312019542234479504819499707974635295202657704092630908402861530186224339426459384745089925904965248694254749996934435041648745654949594148679074974847366477496743067018871148150825119650121082365084267538011027298870947518527057263062240200138184922812945332482051869646071098011824992009189875291933107016680194502907942828363591344375128778648133395175438484623440739949210741302909144484081404231865226994732318886001766687189054850259482953176148016718576611403270563183028697784366426741307112809137639481314056265918083085123270667087657761249738952723449353575657310824352659859617262752918077385419527534757746000207486255162799713139465813467474676767013655781539926751057752961465617476564258462586493487296263994446363542260139239701968688920771766025581624082614343120017565692379923152000768017238080507548351235309065151121213603344924541259049015538570720132317479026374114863705296217914450768759860125450601487284353788916854455263120115897816733074509174463797220525452502122332552907176428759561421551367156540902654971746635200681397752670224692300812201186290989310578507206587999169795167955078204491272680759703437824510499614057073774912568171012475625113859946662914301744233833144908287975241514426852222577351633289585650990205325483801704901200138783768825153190856067368341873176227434654132691931875947202685455319286223267074978951995317844381339817057179380380650391235551151230445522479463316107257293708482396980368454465329223127253895469710134801163543345533377963640405423842155304426367795877535916638106672621011729887902169772128419240455673114845821000773732165598732208571594576413468083243578839013601038878551614551566454296338510124128092623220479171342937227998759524652111858764970014317694700884020392166244155755225503353259839919511602828509395577674571698520118328630966858556813451049350752803601785456837640813987452315191461207555022878017325064844114023396981463573676254012323206973506428456752535363892658883326905537365366841999049048211630420541889908852334144297697727035261954588387057979687407889523768932676557922721394472007965996820471944896078896917904676803495640070392797740574003392104288866398169599363706659116123261573505756665770373143341566253778268592368516039073885714182266055194971136980008286305249212058211719469426928428601113693323790760188996483174149651572246361281970930107234161362817960350221991702406927003345966669586564139446796785214960970387092140253052718051750138844991420845124130229270322423952150781453407145856858200421226733264135803603381899799945977069888459003302384882005917571027515279427315963060234992619911356601119338065779471706068665594522447082993728892916142504770649121238933292083082292315155062287021512974105178622447535342538289087681001292156766072765418548370419810271653144863782063305809631151973077076953227792759359263840065907564345415969723076019849104512170508477795489894426431173207851527061514031386735941373517699325787522149024762277615798266775043376769756643106255610871719123745532190892755869828513126077923814793919961019664600947246358021116437259217610184524538861144026684060586454631158930877151420948355369929588732464549982416202330062851010877642274970764166888845927412736805322419246903685409187454171255804556570056023282166782620334620557385045833915112485065654406405699136368830944666436268149863959515925644913537015958598423330480501788211462834675907245927331455719631399173785327750530613589070519735708768844844581259828038260465910476091309036984343508863967632773319460534821534864110299888428782221018618606396114725654132887794019091546742347525168976797534760364374209442992717189854038880030220690540775969632233495063565282909077014322300021107128392581370273919144816710977498162552470061994989974895250550906222221222161116304855673147921776960926726163715752849279612492104992764936163555865641035271070507561715325905163035313379243161054003079394822249053358171394406744020661803057245605284344740614642740157104275378363491804118500166355302321060501501939365958009709990793392220158332104492434836391595992603758193358513464191158793681378128610082225050414273003863057236655012155592811262533278789287927797136943679243884699087234261140761032025219887194060470922959539106963242915430262860195824273075058529106304333713366205660441968307243467111502739065131504358518396364207502743204126252328154379280575825293207996024730686880796600738477332854277945404326949080251097607671752382917620140015572992973634881838043375402378594471186254336427099784144784113232776688591882840751118200273760327996612992730610463480688949103274625078634682380385277574476103139705005910753488817811795567569761792617142269959667027058640020390515116110958929347464030432345985578611157604373981224985772629488478261939856654084287791074450698397502637403229603285235289596826972718219600253708175920501886534487465734637473562630948878958136247925976789817344690430074135051026297181996414078657663428086984357767714197249706866057963536967492492935360585405484389357002461299590497915886853407299171452855118431658948575749340222089398699015516569703800442943748249474201407640999153183804168901277475135805740115702180691968850796990144932593603521216246994891924580946549670571783098323695681257999799799074842854908512958797567711792500438243192411208957839584953950712221749520281751539194717009216441879662685131651248055850094597438988738770257732035435164079078520955230456847591575195302103381943240329465177502823393986244662685984475395879785005499953779270465385012691441349644783265503931818651886536098952135337075090194716089128834107465094575237284442051081161979662673375765996511324763131770403535199421296758971886910459167066025040808967298001634075012211317861341561883506847445801847589433867023107321239551067269055654630774583677336012590140009841712266497413173059153587706394414008915869758338418499188751639839838390289027225302284554952661753052313536950293761415741884031863697919876029745145773238356091150424035886805341177523233811487612379861151474177720826095464620184716897452877078014556870970004708661198522308920287106848759706662578835854221139164618811348383887235831206234608013541119493482555328449080742745643845052523149193731000147049783230076747399750034537849698161465704826921888048486461499212153429383763499264997703090991655964119073001246650909827745494664982079188254335168084217046951777381131270825217756170715911874370513963710376702658953260633785949548830921826058171965359987570732838476981428304760378384248270537221673239775029252298618096520316203177219054249519517239664326416664564489324426889146059756420559115270900013801237686551056737383139825854467225607732341061110064783032540237873894320839242634667271789118640737143602882248549222407692553067342482619231409437364187375864235054779989439892917693423212271396578558305047260567273296682384034801471814738725063642006512447658893954942948763679018566921358312700537216468286690313879066388779735879845414378118446581439769835930484947018960322506978282179572987574775404992106940188784337461631285272695318949932759335060543030662839562951433211562012107964601540689792099135100501941830425415188320867492858963471748337326359127455751763812469743590593847121277056843653995579311460938363346418133609560325035378379868218681128389929265435194925632866212960663760704926412987343195948716920298405171666463533098431381059544885348882469047763453718526286848574608472246282701847449880867635909525072081614491082658140447511640830426615816787041657556346462407100170919636699944997885461667989330498881330435552230556558442363228378639605534582944237401382833381325285524185637194792516730227775199278787027068269875052851994924429320613414591462344239177676259114524834294969481670108489761579382185643738796114088472432683433041286805911720378889808264989597610103875622387970291743746757080401840329755254443470278673723625571501183569563811142137525460917013980980533496652916332446048904485015216839355036537024782027709844806186993681474361802481532700498158818366955134463710953804150079670353603851493647356508515533814361979331715807948068435027993301754806259222047085005287467583062969612719959036324433277632136754995911262635774159005096468621205559470519337494069117733483925506310451211329590636707153078398350011309503274654627928949936942438477621440200725589146512620378620950717314115852536262166817483678128368284535675919616426263566425546167116254834663757713347745857897799878627697149739890648383449144102509202702495897284885433427249985478201175310960627715884631862863676387341408957722798827538806585472514394981555541789264887444199006517564453811134431766015592938032829362743552901800861268631024738291751099747073721357717101130952812625597178692036693823501501326220525634650751245035504002739315421425029032243326315184667422968037522201995452217827128212219305652547387807143303994457128222204087645298128547134256771724608312982775916926681194094688168498845685934590992166448454006846866669274011684440121495496457083398297612257814097270852755673222679407653689612343557137414326006023981789697275270586718312963823918374740475201500552422897329495364702297547735418899751238277811356123544036142489446155387229823737151761507071442572360315902905078112143737181529036927348970505890637518928412963238715410658860567507323709578288816055138196648840544318722840495463064775289360606429400503848219850816262509950704458914782677688577320593355267759073964708481574336063178591004061344269186812144045549801748872382740022635079249767605519098469054816100949030526386221952145662541506773630465876095731734558859145160215405925257660697295167956561962902717513050405832170170937989736212900593945899253049408534305902660329049728399587938223819266944661200707189764844083255878190734146357995371747297437275849304467541579035576368428844043947141900402772486879682920391108780297599901604963524648249754809100447127592940108464993887990047181309675342956686066985801461840587242577707526154335292666561111075318643831053384297587551928470404230403551104360933054592131270640410398156575684794774286627385086725131266675672622874407572164909597202878855003755740081069999801508308520066320051260683017100502609751826883940052816382964736895717380749002340568481954148538880010346900882840219747062719956177858160650472860082297789604741978785031492766999883438256323391107212054223765236276971868244550153582838454178796087895353651131115494937094299215158407026791138527612431427193074508149818648263590802967085131726706866033696479059308710822085787075330680919733504365052133199527844942475729007765342382450060905830302290074710635837255030162634302221548151472594633073416011702140010427274549527966563667054338632321210305378935886710322418802335652556506098946218569005319413270030470975928762180780155879554866072816968521532176846698324493338513280687451601662501193118349000938742642038658754799838200847759301361893746246646411547634963120244596663332816941612255281046015401258834703059018906604236842682678399201449990294468300069838597652912652489291831522321113075236255547860371497141078094830348438525413878949144466185028206911125042579095635976332851428941223153679119301744716728878319301018286759653563292667657287308659698403630561463040722012311856924840446133725910267862040523767513685648496825848155449817727375323978508601697995903591714035615683663899650881604658345191715866382441079098382059810968255070190448714998934890890209760021500420425669479815996308590561705856555045885197962039058077701482049203127693627489370643355844424429892672194063253782460650720601263154662543944623969110147274942605775813431437861985275975040141825603366224203647750566138808505017107267872500534566154540917426387014520932700328749829304669806414268262646789291124993364856562663616155521422435396838508078711086782060882048533757005261360695902561603297841650049423883739307741345957099520224983057148334588913746192120215870076190834460177935409607313217047964018938169129901294595384721524021140980038696609095487385519597573146057729903299762859641330297372647196306319056895943208822259722912070865206837623603820841203860632146595279059838616610768638008419056923075489002093938280352566535448160394934485380381484554792877294354073337538522619344358822104829359280524547244508055146616999445632368208056249253154120400557523622967744311201138703742317703117342260030716519222065273184522478523977773363060988456788476852790262945954043896141663998159361568267925888002068213009544427664518336657759641808642221425051979478023043984854502694468460694621877674621045842066032455929713107032255727255172962134761834072165626421926074712096218425260250991328039055749243646006667127537452218005636105143900117687755521349173117628019682547551834023525603740275708935816815441322593872781091639116522325145174809141663741038737330978396453764371898923053568241177439693080659773565931471707314290576061956983032997620145993121790759650369344223639277919732515014641327349380575361609944021621138775058670349453213480561431376279973333048831021892166859001106221430717725286598022545751660614646310420079646182687153653442606729706796117246793816678846789594924845369402442537208032763705401163712982736672550884058191949772937797421524844113443951122462182029564729604381149678894843010455184223919513513676110153876744897901203902706643061281933062917846738596672742078066197877155002681580402881920623959332915254787672578139365404066358606485639142801322453178619383614101579569130014703534652834981248949551647089547315617549925952148540874462196936873706611360687264852665760537630554873933867474840184815078342280887919915649553388824553117989395248128634481996789315160166576422829070649376639214013541984763201272299481127611562346496173298079282025121650711412449290153207346862382582859009929881204409886091648130531334735134189420999456238523367850937964541784307895300818563178409087992530585721739173297764512047936330227689143453470840174872273412858354351964980643287950338194334683735907410057935431143270305400654546868538354358220760734159536959000679741918629506120651224408363898123339676545294090549461904826099671100403470956654309509655935609724305815277591467176298402930183566746778161977413434337952372967528244592248315873922105294755796395629841157824841771637203865426679133128834888400080114941993724362039530730592681857856160624688948686348687888656430101905530744027108254048304784134450562318529809845162613371463327368544810088922278199185569556237128053778286328586272402846593187286620066833784881589164391997563850409047650535562072747845706238026842087559604285455984569428218696386816156256331963887302851201758886594368243609485832261253326546315756497332053641973074102621643534822521819051475137431709567032775798238883401708322617155366559162097840120699220555648362103148100022171930108473475514497771308829260856978081217431089612869077385242108267517711319039837533071873852412712032501748637646437843753534037616459332865876466832366270788625296105422953933398656775329646297115781487580588904062202562127818729713302394540900811563886863382097203957581666359286611130731553203627102738827644887819318803623104459810177890792392670724403771164740830097499724255115213908482728524138618043534132789240727903106714289207035931728003999099225003946118309953976077618363823406691920750969773485329342521293319866045315138698440753377783852951459782770315888453979776879952986077109637928324660239694473696521197182083228681373352496355886581437942889075622539193484661193262579926906059642006470900992631755280483202114297598366452682467459507427903949218091325297917764949051208680239957130301429032546715580145042434033920373298557483530535801986612823445678022905412607061330393304260721043415761708826299362927299794772279265282228970492161546615278667061220195165894635987455423973116510690833905017031416009508283021053767315352106545440244226301475457367270478369488389021822042243773631736667947787691014595304753808379884401762865003709819515399028718444803537514615152502894095999491604431667483821441416692570373774036910221353402733044185046282741620087402420763504725590976837043070512296354085127097567860502474261982951916334227562476406511934227171433800946667249431378616125540104852832544672461192901407213196157155701704661555527322413680270566108700443254865130178339838447429569637100195103135480175709201888238650583495846978941579909376392995342606173761736264256242978505887526350658528323514638153714846416646058572618130961816548284397926951542864976899409738480118449537607854773239547242721436035763773340704200993500500696636448159300279195260370526613032753940971392069248790999857280301728122778503351041141478761785701394206963538536523791629398621174111078755605540789825363291418350006709879054747502362887705844586483860284163104207062082978946092207347565008096743544469660888008792881686391686287566544022311840075927486372116821815792903437654864149648972808728671169917330290040131278560538443212840980868113900417839401423024397485334083193003191899185693748386531801399167583755372846809892546097528642741014875214933673723429509252638159892185055107460521370647284907579518417330296153281736325758398534848658501008331826548535626782210872821762153346715756457976282123446700519407588551253692013660464593750050844985088610555608124638474886816265810898458515106135416517181366764924498656532352298793325067683394856532683439386277871616863544049091118879399121717459508045386628942065008160286472892300930663452368579095103585464837766345032751549685921879122773459620317133287216531094143467689155165781637114890186178374149703409768963670555107478989128708439561368147996854526703089843733305809740547424283936572497808552845453580868837456492057657195365237894410903758483958749942579439163910274635419762779162503039371553504875565536117887704897204995093026775249586472588137907169945488131423912597559508968334089215532754826296541289639865014471697788600116597925255084051749458132372050938650864445209472331012111540419430875099221872352978160368132066909807321072129029897635735433000551192723030935844485300534989164565631334174865578089040805878376285388529507503187595130305843017539270407796504104960526082014347917278056235304206285335501643131313468931685592321946933068298872148801098027556395685584655523319891882566818258686819117803361189972614753200305516238993165974119803770750654268668969034318574430331399348285843260366331113520115288829176885181826468278586218875484711455620494562367915127966574833333335153309681208950439534796471755451299033864841142216247600646596787226145459134831942295012642547563940598149869725920594395688038662200428739051138714261419019728738426540041454016025861785417983917036181290809564547402237197466948219579287117617483193691836265155776172062150207376936031876631431509149288275083026025243825773480459330325656463727629541906879701512489518983458054137767406904204125903662248885732836702955553204398474559733076759358673289898758147186212645030151153518713534922570953054829258894464281942799392725309134808963552281910597560811129450664365468742455423261387400055165077197655987478421750287887374500454899969355323106464728242421503129193019238274508324819643695980446365960215625102950642012037883084306566832199377032244684572682990587123592803565679737997673226779984846074346463540744166019096745959569332695794949757038345932786822385635798231480368561955977857357454699352851978497538240187940703300366322894758793472223933561273769546758155913019963501236211760974833466335535819141685251074650499323145659635112295387513269147310381252377594568101148074557430945596535013945629386465160198546367269759113409102046942897186189478624570930393770911908635351510113625976855082709188436313914853362774600542790190150695164863528382302784016713170075005649643393928737996022382056505731229317331066838188190369012069257274721767486998640316582189603888873294313193870299302386555419768983269260018173759943808868309452185431969918382338912796648813940192898279873186734464814738010812582940603666973252738325380279984085140191222187538421603663002262010560766682180605232142978694726275401680229421524744884667505413914866719275154871847184479860991078216443120337097750575520507284099983165538513051589452419339167615248161028331813412669639158165275696900174504018228093874130348391731655961245696160297085689673921693933751458471205678095502029077974845833204580165805342333287885774912821098331755903146435017637152098910134174780862346332094236398382952902955611413239163306256576904979164681998916888766011503505184868329636084649545538255199787163143246564910389545850061879025195471439467537853778591943631483877462224166508713300899107954091733409741796590651452217764941892628030870838492989767222968147624348623781877138306889723891917438548540768191354720708112600292471284448409057439774068313518532656116147596065251676681035566650581721854422582313830629860999353960910500420622618067341760959878356536209987403368294583196463362672447365527633460253215685517689518670060126896750645491634697996425836673155560589859864314056784205117440790924594723150998766566654784261300620293101540910050259075976808632755206245520559198268561776416230282186414864406378337461386201088628082104607865589733197385716598070652181038209251343982533103615497380614873797438085405663874929484040642677801142229208057030940695070005860923777061435171481911714511086488198167826046176111344760771452586274327261596474450545186844351352489525582467040768522992607335543961224755769152263060209890096193728696352112770291670694927559410023942946361560741743131287556331955463020945954874023277887053732667725905136289634340330655842157831107487197111562621349322593269985620604407135510700568380594241349723156668228422791469875519328314358057957051952390007938772730242925915184762256425097328287468366473486114374118080289177519249296634172109241791341444231338509183584322254968271009898376994311287029040079162831089086345819738404013593083222776958388013930516437770497118639929866462727496124156622629426373978233162536192851489588395254218747612851068897934485320370523913962693621658611000621262841884550248945816951327226636779868141061814548310194989299240127449223081727225881091900616960542113737995288913061552337006169487405429832178632703210420545600595189276107008589851918732324740665624861563898878986461640417512981166803015790713161550141643010099296932679280519368021044639529267020388406972580869529818228099448327641865028451100165111424345903830731389748515014423181739161013420200155390988171682901911334045838259916207575529933309726837977830818176686343731532968239742481563059353494343341040423406096441755562005542337707242390226457514797698255064199945642550948786036499730558368806144072330208654783986781997565643534728789131301113886245326957496272650767183558533513926839374783853725941316443021287492893225180285811586703300880970504930710599466740416279989129282075040333184654046337220020787727581572866539554232883338215043929710008399759656689757585723153052268259933927958519139961313879414967942026564761496074113159339132203421008377714087820648169948754448154578492899771695641118157239084898558760403260317563737310376155786261553759582292864410826430212514769620848628849251855106062840179877657662261541794867942802878129036036724531172638768014747273559666765523699276693675210389698229241344242300612939972461066380092739259161161723577927896678435051109047608411138241270734883132037201235573384811592885646795406145415595589278125979932171688139507166720053625671669181194816557016880729262976482930184831959537279886191025321009686587724442537889138891041316193362320070797247660741557421731898096862662047601595239677423674482443141048342386802317600938885142808236722922353133225554532556721047352792882374961630932249152849309397556012315250302325527676143185397023560937187141807804352013646102378350983994694927831381431339875557804866867006262683330472923422902671738281479007052768174169946561695124664748298454336778123557501248791647879097348953195919807861443133125758632247754047115034790561988037505703740956722711590595130261510419101746872239627127014241600086997142484806236205432696248723201076632165689232019850898366643125944278197192846562774336635189829909959256505646778602385517157246486085095996119258696674935246789691437652441542361089511692375111965654195284980920478900097963849031101084118722102862264418429608830586769617538401866409879951810022526555571918497485112573663403353822650728270980424986569136669142055337108721375932347376294448322233720446139943791928647561299980756584310928301966177138036866612622281688046610825393654885799438549931198453636870877107051501436398550042535007457475649976461970034014080677079715027810186701977746780344171938136475220144005139244436438924104788648973607416871284255572133213481869078390567468620529619170890164680985672577232198781171756407636908824229024472982198869670174918907299020848069372260806752683577591123070498401874093391101774703969305906639610912993380074573074038675101957160274208584449546663861760304006483219182658050697010699173023910428414625476635560507948452356968468324432720740683353688599916185047745932634416709574356334643202109869439984493437384350277066300104082022715387872213575575810414118825699270235362958791275782764229583102267167562400454249337540833311981458296301456607933579382790682878168609306284577315148192577070622221864299150026455324147837771193073570647852597565830716780006585582570542990146776405392720302977413391678525627634073695160262844310514783762520031181294487732982215792126576243170393935445746395232948356502312644410756542988965529051624751166513487142295932627249379117282642582570891620565324662268974167627818538460096181594957455262134355175823219976761280278604008404624561622149045962930429086059909379433828153754292655134730906124503614512410783969881854606557515358101711495489813220168706410441450067349222037833576577841517262095882328655620518973407728413003159486417903647234200449444329511494257076923077813875298059777923465936918517395403987164273846433361047190808755156684213172528012958698357419768456347652005153797309314979446060770169952408397991167092293520671505926648753277963058803202478119570487810142874478670382936775611192619325891105779331962358313939869028316737913412312274765957254531009719473128428456890046489061987851323940197017029494055637323004186899451625459060707451954943640862707958253992169552034345067988538108422408898226827948270608610093017765213951808520464660372193207247462027773849021940948545755924765482068234748070924165652913013839474637412538851807983655120231984182739360763157415321352116625580307129474657166846868922985608594331389538797502427420668481800064201992264613457184160228076595505230424587128278244893361301409282603752946342757898445070761710673167872212686795454192623659875001339132813057400227002197395389798443897537418354132682774591248442940183026048543760980206283753366020811082223752849806409425222897069730005713406469954467838375873136310436273657268557431137433615560613913953652677824787169827709952095808489105329524593879967924238683434651856389397578273784348034582959441782820822766225853921560845402619676961332495369461327201107785237973774747095646849502923981595126105526865078473481786755374697064062442247485700176162143784883107727079539576111210597376854604043607912463744573129123296488736338877649416175175323571413503187774963394917785433580988667236097071975255474023000672985808878642730719988856493889572133770464014759570371300335841596635820327467867420277300576231157398764505638034044007140519785727833191458673258978739906011317261750337149798058393556960923896432755739533163851063148554475085199925968414723167813417679287878873693557411885289099836009291056264256028377637772817979327060683767401169112233931331909853224730189785014725524685370235328162215125402816208478363839758199977426064996214001730517594289397658177919490292638432174470302152874697615592227046589746305154546849739920505036258139580241382722794342260075944002336562784697158592782550410286825316680666053055990385388049474108033657992783272311893207839388335216258470646302573019293528649273501817718982894476578037996629202982977789418439822491799410481718136500435584817755445056080093359077326970690805655784087363812422205954084086701639094304051769776716641851349073514172672570987966963723257808347733245835964261500516745975453983937417319242324683912290721728887037038423118845875422007626891625176354288346394715442746014203029339896306593211244160566101460193018037632822396167546381020008415276606059255251808578660898583719077045622216625052609275615423451559683209392213340794594089800960652589518941399562732194434255304345291563463577842353826329963360869657768570762148699225257347083904330640107876671245166821249757345907897903528412663913982325568998706092770231524688942659731363845752741546185352016895922674948317813019591999707456143136543410018901762229431400864858057017107287333511344592271815145655058153101113499517308690269598143698663727197726286450383151501702658235574392773294810814969391980149863606633153156580548116652012012330524488134033104564293874215708977569871554605571666546028888930446476239835970942645702946673270668629354620290771485837567614740864761906408035214047893553031692435194146063163351056425846473868334544950537150398542503029243241491723802208295300874287455372051606443885685746684555886179292376727074406992100652864775795261176356670552773558274278773559252849187956643413910744778038423938342225427948234495282878463432309514307214468410404215462152331177360720313665493120486018087680500353621859328359682166046094924041363756881602705020130221586273742521697913334205233400494048981499342312543892052668748285863036233983825414063214682438507484054010145218968668758587377114858536148132212869902936060630504428297686954506327672959484165811027602812418272055463019439403869260936980745489766262490730390146462424244153314510797452160335543131461486026535616562910091041482923570799835722674312685685063127000563235091196906695876198129244917156704957712446293361017549752561432405725072863475626114829285781153874090899595152826383319869574792831285015596392045905534926753450969201626692245588420843315372150160931169243812604126665635460580895926438779923810908704253114471409898435613895361680001418719962936259306996232750523676241376908319535121391334529298011776599296049998747512068992156868924273150735825880664058662261446080316812602149941036986589516788430296732570811827614217905084526220888334973608643008684505691594297715706226865487357102618904821450068756445237517669789528591542920555875128660147185262379810210322225483948664967692308351113400185233560292683680082369176300098172638460681662862715150671769509212073692203042318558802888437093544933690374687270957590155886531949865832664839628120225364332435948404292176875035712141349676890187030296940036660201609280263676728365747700592156258540998518789976161775397374634471673033107121195354085446720242934534439085195958120608956888353972039561850810419371422760456539650270178902431158464600882676504065143275532265469898010512337502422001020369570578476225204112252448272233297685472818876253444622093301566800653619498521723850562207830667848023865575091380634647018567943623180949124705332752805414996376650397921089545985711640759871461484311386635196455297926252285646224273062493962960976824669998237235944309141105877827836004596734170533850981980078993153589808346341274450831984601192493048442306850728378856427133961979409410495232490626077807204772256949262014032061956928332983146337130538890802035112951190532740170428106139593390636588347247450871023259513193405765359944529186289487786741616064021498101626460432925012751659780633354383920114835757583074971715283707059322661555428745639455039158115641901158738324535516705457897419534080045465085262862779330382564360118662560146128411786640510574112711884532346421946206600041712373669482638409988225813497321982441902159731753092674973543702587567829648381611695532719678771298824321306098348858164842945298331528347532347043814571674565331341338974258828605489558089292926932818869298977570585068104391039357263486914518169953914968762266675602800277083761703656986396066286022755717482851490115813081155928144590292689861556494640937392084412037759418554887098616348867449140338450832881359635821537974501141583970644575836797599189139344294847362205344363167583120983326825685009137722666883451000005066679725434762210804505302113765476398310554834642781627931855235273474421006562188265929928313298230621767245164281348922752345292818900100785109631086099143952807951677288406156875317307479904115140978801877011124047536806599701616401649189324490637879114611618853016153604062428026111534195746695994166846084702683767320841172833119924182004970832372271966669332448606127691540378171925384460124088657551396021345721649685896706151301012528141956359663156945593582572975867400177814768232294811858989549233116857959444061703111458033568677241890664127307787700569404388948503826049706942965337611087920156583593820498685180994245909050013709473618039310962473195383364076190135116503231714520857094303865416240922776110792552427561068212933367296135781999230211969435323428068625107413993157777139258263213287453636883854463421509829013120232313344798166275803305340563341869370458875102513472499930401246275111692588809011111840740880762857583939943021111031984125762757700678166187935352102961571843050014174158626922545778054815265985978390617057646929041491544848255964648805420542452915376067559181760253518554405301002333516952887512536132007622394778076278878735725116091470361689446263524550804197172569893966032954019131752824276918517810312981163813313364924995853376063821991513370695465352175267966074586495863696342592241261171838647166470635886453682523054154351707983042547630462667967219045410112355862270704144854973352007090609898197043860869445476552785458399324839952965095744901860220916611431665660180143158680548714388980791647128711806126304279666030901435171873221959927214973877200263543690206753042975400152519336965618605742282255926881533157454041596972185878271499696784027510132224224081387518118899364710794096218295317363107363026869378353235066867063347814499389347690465707633723685287702223173095009786538263811760307210696617044126923651339255208373256374710506958745590940734442832091067672616147278943171352755410551757421955386104036737800253416111608728075789968334825806267538819841030098344562320284519783213889219632011344557256215590043034020439704138837400815226741148132832635702472364357259746129081399758672891477327066313025031921858147753103203768578541808156371641013158405239590249495420484035878183187558989101659659246403948087767003131647188055649181103647512747101050607798744666264839026389338716094596569062437320023531788103007055559130045308860336737238877424539541055601381677131428540078967749150204791715832743592937528581278169261358057822136805468409809317716412126285633563707429663615303681912643195962910243380930102705803326991959503546648575780951315657921020151524123287582614341711154810634763800463112567369018452236900176271944252514881581518141469971930886222742331250863598241346259117729783085500386421720403435682416912211763000602942687737294206968508970260959734738798628822131696750288586959654218095925554793086632346120283461095360273935971643667193570607007864735410768764255974564454557173652356082573810840625106487109901908188491454189582668205617971837520682901310661598353417349752681661792149694574619372408735896095942505247607454371908268583206704234621067604365191497207182929603949752303096895843294769620155592673247664530376755485670189750542182676953204249198449805523558961322073857405480261312809419067272059428468180993555646261752621690446002817055665601290110311514808223118517219625731443400556802795230042260870627904884425695222425040626678832904211674293748180726610132863373666848519022199459661427497412110963880061367394182314029772159274831626984300366116159933285578963997244856090226418324114449181901549727774001340569566462541326190077612553034088130524828955732488197979208078892149787987791855111060927576682465011037497047263403395032991283849455602928860108311023417228573167069323281868579484643446563690966605277099132323541304379690332471582616909272128588553829877582981220516129350543896239409387819855574526167303763791440915065334706961480351625127908667133734944079971449697457859579933072497089326833432090516437551751236297587703797291869085519392985334699403057741611100852022748112233986561967105415088061352240074281477857530063233067524609534665424055684902031757300464962245590773876694495007981123846184474804056979248249766071311097958822109284568185599633817299539459081037821587561736191261496165255193947217749070013157337305253124332761293642713434564047256243032828716990422282265928721688188268502316265836465272372680481577838422077053425720186576870452975119740118568519315275513700102226304793068091665041186294594819070838016902586209936132270544221039070107918150738074473939487650425047913960513734124868296257151085857262505735580603930983328687284034623466425294517326431475000662392656267714371078717364841652149129548946111355296957618242500585220350715723334193278679213038526184793683627488994728987855414234555544525705933149859654214820061380461943662177784774501394710407579249157161490337544227239724241111338720089891864330632375424113885982914966392327522519639337483240356445606696402046205271146326631834763648135230676862281269264175186411175281270770485370394220860835480716972473538272866890632865962454185162836377363568838420457451405050077036371128842403456265811709657662679557525555519324487938762501499512996613780064263747349457168354440352237573590630607009335089744869549042533627349295230892222501629896850141673059316746716231990612441999467527319504603311900325483391307476649347411670954852138459473749877388295827722768040909769350531320402790951205405904899029743196479723680323604771258156659805494717408903608505091365390251962345935397652299746446412868237618596972902503753317201490249056939189003702439569479840644601995901389821342330809200885816729429089580910731418120016491663862142608379924116905322307861863341934627475449650696007070128031012928039703636152510704887852573392488138593445745654688553793202011928344294949375046336535846347722019652375954776949453649619147290513381531755460539836830308651020592565687478954678529950400753280000465381936922485959463022309327162743516448665803481264969088167624584183424864270780447496548221821866512361113178361465933922388748418997714630098048623172735093370764131922797145910744242046759272564957167930038276861200651822856496005669098272718525202905255134306816421718729696951215528028746693563143249263555703837848472279959741122495480782161892647756328016190558176173386882417896291818472642676906054191970493111119428575284430362732345180925856550561099900431836145888413100779635007592772459485920356541367933670406051291992960619415409138082985233532043330516807713893588430378857111921256822515419615181513265081212433180041643205531952290815022117740056101716180389971642753843309070673793289180376765585007848610487882866962565688107895520953671925335119755837116582317068431042371331280776412926549633446133841385330610680508904585536219552241873605398345562453007419489251330181326086225101024452818148835928508370537363428718873517668787910660668627473141825083083103355703851348657358571459396138892321583964969719625762934467521272304057996015453132887136167765421985641514155166811342994691239476099796460530616034270694782364218020468457783611437628813612743717596123989719034783890854394074908843226836150428257124913687710818979062873811548239833610784318804778097128051814343150137443835448054619204781547120907321758978091729623082686146984659944498695142797466244487049191737037216084742778784091740293300699034144219499819031193380609570218279098431464588587009486501681529877998223669809509989575659537112003887877709160028628489491304407027462311248730877787877688720961928902572327309001700789411803534699823556558842100847086344573779272000744046435501777392462240821223269629841767718814253434164437274385623030641891947629667707759526932559207814479058784374751417852710771127842434113095681605798432873558073365955541828848996691807072238769804526427056579475050673045700057099540983023657200131786404340462552656670297878785128641703787168891705161284519997082150922643470776011499645799065276681202057496132158425908878425068733188027930881678092747244415380172394707406660824655363423862913433936465096470318814697662052169618683773159714592365522862138433859463106935479152107384429926270379329086275749592549969971828795133504318968058411334421906771021951851862124606726931392615116294652394425859370709931621719739218353436232256978939301805861579460462211545596378876042791897680817580075934022634979564104255923489043047874537366806856180228689719869750849034898157482773176108757453214982527645608029065051766008883870544153312396329209139121200802959961446283089391974849357236370904407111852073581745961664105277702333451776378233867533777383727730588261386975808254610310724595083768605241604310737654499436628465943352972882652485950099275957142469314472976210376827744696645241719985819184413898273557413611728545835818893676456431356686259394556119581710896163327183821392403604255266497226903140810596626416458298637582925077178409358706446135101587918793479154362135260693348163813413464886314530665591928625827719966496446463370512780344013761529438946486023884831729538020340359072508798994787902925175487085440342095107476438482865266030896206452482189043397502316051609047114028985477666999144983455453612530196906928105737902204707171155951056806292990863425320000898134837271353627358784991831988562708840650730024151108309218922557316592392318394498415293986984518600646783148842733060807084098422728624779239535838929900250149413756503605760455901717744931307612478679611573206711336134424741916057896212312755256542196374952229765494011163035432303230558936310798430456386948981631118964610550733884360683967334880918724972909116545607433834798051703135721480193258465653824891967576144923208063838867569639257494408488715629642466381651747113530577207124378525818685817671370046932001635493430007500023661151731622094730992177714127078303632492630980723290466216430754841087968196189211233773220223422618769769642307567850571195980321370555996217862675476714021283160563360511937712188413653184398187655531071801236259575385156932018744137264160337390004613121792080944280710418000802150414474105230531098609350946303421920703445947811088916830482997428669895463624451566531290742699799763043227428416976063632138102452935100387986364742399953620748653181826600382989602086154517828417465589374794997055764700781557643665958372428873575218614593106011924148405603980261215265963751537857472777966994893771742243818525680674468863016171858225060262878258919827678623570973110545016910531226544209437496000959039819511431817869558430840101021161717152838980420523051954075033125437939842393942683282675806686593532440828766608539483549649981956770004265542842533570535490242701830227740803435916836885179471704872418049975102515427466659169485856903642793146736659547048543686115134685565384801243932977560764464003446241755273446391967448600359270460128013917552333105572010404737260171934071269535051666394475929464191681980940821759807938141430565394513906199756692527566551749208362652630280984246862757505562807718845946677714864302810078910910160517876203359992336151988137920490987527720664129303771624724817599283694196063772772662104307419044953015134104855900726409723141932136831235299452547946419775454113701287594554856747131090583430515302127347258426054896459329385342764687284716846285046023795076962945425071011766392539792972513878371129024725295938903366052703681119086000723922212199880042215571693020456523534602441409603814773697253970728564906789713898879431040666458450166505650928457598072669085735399067817294576521085883357938036086973270623713334696048889838681654322810866570272349168890978514355708889472010902007571656754757897115732315049473127711003388207836778694643906117588070286098092576784967310284419912770865443513547719408203273624918181476968211118468798229029256788350104854450932197330527889818708035461800697559380257950381609094544758684757636961325915579404058528704727500199742625458674547187258226577156066187564453275395825446918357025721168524720371141468401202700242783119681796261200779457695165990503241060650046029514261448948170912870213866783611845542370816313121560057863325538820926662898778968166127096711569872103414736259777645981454392663252740156661314303406489998332108791989417460167529740877822742622644928918415028030164476044657677437514090014913297603101331118328925590426768015515206667082229066398123310729420506340570814571425016129291563060834248550330545675301420791081612022302702371306220822625332707863067572723044198938288027552732712602431076727666378194300512731012397831078896694202239221929983153540156866932186430496019750707753088158825946808759946263568199795716925169514439177132761993739236033080975337852078849395069537196222482852988399772031226781999848248092422594790127351163902189608397549478823160463969185838893678515309599262450446542022063108481001873032667951689803923175552417905145713359677559426256277385065040288317933200951308696976109792103697031764833764433988153985379850938795077008269233686674120453855526103256269590136918879597306486522615074569075485019248530162387936999523319941536692633748412755517209081833485032525110980223775360465568330885741826282101238776157306140342532284893682247152348673536557005384701227954125186659179499081029507910886259590420007952998888389695124336000918441104918317008625518409371361355478751692476460132536992039990083216074030337532909793763901511535745263753293997841423599139725013796845627913380525479042994444837141206609319026672282820330415020892908246140334382211843834051925646512948765929363379799735505192684320500102786660349359033781381253905776414624362200459827673742260746928567673910211206543617209415649356800258659518556273290863762266247971990185644171905211139365124165920663835494490346981319030252694898290273624209419422474538072715317902428405834689588061818692899195434313917137069438444326876316946981872736122273803199774419015577249550160440977387800116516950574498484035342283361026360845677608360866505678716163337691110743680860791955775676354659977148945742921603300576677571139235862519311633967683160250805643729099263831671949939163835684052750397232496324462226439209061705861337573544050934307404866604864109452882562598446236976492316322786100842374022345806126624099024142482736880862512956520323753698350770979995515863596244873147421355487722706086943283158132731860212760888540970283308982082261563184039565676798395608772232690941589258716347214725481422159669179003989822875549080083702752309038223043377332715378260648646310536430098928244509616976541602974409752368872271681006109942639921060471102548453100661980493348200141647664692389611464489537279543488505326166306974787553961075559837727207291534690695407913735082397802076664414709779730990241165478689240261463330345533792911552540990746684809044852924797799814465746524227150868401454750694129248470326147448427578668670760719832403477868019822100461184265967872629733867624290411571211132914276267711359162836308032054726398421630611849049971647619774696042085897820869936818297566071413738870778985330821260228626934185856095218352381612579494826184486744497473480911779722349163759985115471084751669652100115187013781749554476224257360611243183515231996284741946364639779721634992463598059995690694848298240070051205015171909923533830805314989455013834929406035691394442921476398399258580260512508205816779149189192697654212175818336773674085858157930618637015372604336579010391237598735988641455239812617885710683517102088617036277977974277945428328729062661926532854877779406965692674978036085171419963114305026644883598256984823355907918939698883654034308565507597956398720058912399596376410040886066212877585862148181847690552682060635854874253959480581722488241064671802087651460404596330292073592355696438093861098442196563822653425003320210090878191377639332161104586068162363393442207597489917226285707954898787474087075328921090275955293563428026280893347808964767429780990748035661674553519139230775866007381059710597299996457250057745340553352896399155901314170102560471849436393794237333860869066378584946280076169493596555743754803300557953036068593454745650269671653870797277154322665107718706995588324675827263824407964699715825034926903177828918837349393725025509769468059516715156505211181250050536331247104109072122737556459247628270028284324028478955545937211616269004694218006686588379876496751231491017123430887703746180243849485027750405988391995257598098149642280404222634495221520887472621421141142214619165670230049640915120627372342523996730431999304362561849798868381435008266890443591390977905594812503619245688146644188334352602720454265280051510542139236557951766007628847692988883680619128439261801450789346539295132172793477114881266936425026693781477899828069123912613812547493891057929264734763959069259523169976845003791647161348497569756756186583538034685869739849551732852207679889708121664301094175777053224712462555290792894544791669902243154071926415919701945019891858253048162588013401077292948214420287670222050068296492449640371887729184870206764673108081485478935133407578563731136029405904722301137604776511154366679304731740478801550462319613130016635993144866227550003777616067690486300915218185710650248469779318502026963548967686162596872794395765340692888347350471835258688785926556157539224683254503626475889710582347470218345038658747110459666040860247774076851476072563303702004769306739131328389041159496192923446875751300928824287604445268643159677616943268072958767702972354123266854815289455876773132138357992412781090303381851644681957551188258391041663034841040884055491329537162993708457513424384348493656446649826626836822289598546289399964812048751950104365837616449770069502634172798224572028730866197365037929514225327804656731067811991501577781189034520119722796262130002801749072015817061227695505014485735515238962970905800998455226208783225432311520051049918997271974166879226668916271436002008616996798767594304793820047590902633712084113332920575308959021859819835336483052323523435899878021438225737854396405052852376968293006763808716593573971402949852517182263559672660618874579597268338126665134364634429365111129461883029846274510251301086827326853671950612436949858728557118338692033161778821502149174015423886239298682091668635588735073801021997309122258884644614664521892033735102111678424493423341563782819090262662280305965204430747293068107148842775281839584714351686903801524606090823564767217675298086860552117572167089308028629757131825930895285044527710586369559478621459776967758401973825335822443206726396670414190303101949498821257028092571547652494506603920271236247750205943265287047447099425876110742472491202785418031513145583302973829310372951674786258367550310150539984563735335254576407864442423606069626830560924521068408481065750928850730898052540737912137319343903059267956704894008187202990348095085540336014330437546810632883003842979665171887264092755260053222196903265988737431078736815437504533112174735254614318281703268319533985977912514501919618647230302731682299503575334378345074222776860322845378507206110985499352185144855336133002549066510941173001015952763805353746999548754821042589144499797315018364811090201868292219614415044245719493298058875116520204832809489413268239840872280473341587737823202296865216541618393673670986043253778602634823401428500885447317634032601782322411077721829436998299961701441558217429306677598534626100529927189079287796015338932202730492407959051178681619006216239566624423361531623026088237269231131401690569643817977587325857102017694912769381349168511307379121148970745161673899528556048803805425870870802497977232326973996593565048999772531164186889395224966268040761533335245359082380630307424877627407720652512261885814404547980132275318966635868224820009694415811775937627945121471679235144188794327045588792057289281622955484392697640990074954841242056298635547361990685983104889880594427620969410361259545729416307452181807838867627574888778792908725168132145714557616203543497562304712959436009143340737688381441535671904061549516359649213416195057131790822172184396262983288973704911119899926911713181117957723475708361927904313913384949632821166618247246679110938974676614918595445091090936033816435478965507555188034393630397326981324306246481633580019303422994756524253355268162102890752582945541861096309760898266977521136149224353584139474673822434631208266900888001994463540481854471867271693779283183573203879816059684794615595328904616475021942687970732156263661430266327942842191077226267419277948351393038230593523810683401595672517803813747379033746909959497855900662874690571964175707704162225172988780130409691644889586329346249818598802820246477678185231749884082009678895825805463244208503642393201833998955061436461950868530711527813458417939945975651712997168903508647650415169033517945542676757384987451525739266421802630708746554408697860934310614836275214816874393905891994488778723829061732317496773356297695465203133047175249679518507211536274312658553565789221985902015057514419623123179376487825038065808988504839357278544882083003530079189553198396146739858212443899620420574858624954430826229654931777486411667068242681481540526009795758221360767876733766828728455397509551591593785206495474615200591000483210401193195656320741470314949111607620455969268145725565248151500113484923110825875975525829175795024241331118795530156579610560198826806181237754178279492619681266741307763190171077076802506359755332976185978269629625978315630941768193109196239468659262998683751004219358238458737691352677505146448840153181993005641411282931670469290650331452893017912002036413731905311594141581363045802858370708056171042757164955934798490314204332201568456847944118793488596664876725448211775795018640608721107054237985561078309784646529888164155574376694341084444685542959855563868151656225762382803243937920471070575769938840647004313324886594897673902910733370446782244714456101927279867677941608708535312153789986681646681312343413477969815162237058803990712602321520673800334235597909980837922805090719008309404998749245807974740042991629622482483860852053922459030310730302602987754885043639035825766784928349182369159357974518128852738366146030692766477782983085430769902983686573431259594970899475225352739923637929157596572666307653967552569608361724345303119176194437844530054164966393373397706785079156339348486582400805319875679847939438641363336461433780799004331966566923083843940237760092151886795080989558353782563698164123026323381320854807919608682186925236562862141557271012872891072213772739218272639328158889010490006682235402371086828772508560498438107675975232620283462353429844107069757017970890532091865614399542474874972221736148597309596886897983421586270598501532934388961003348765586545793517670705718649852568371275772472398419523501374706028939432754891914930884669130949400279047907837918087225653155048296607579292270242173187439939347432797261436886679369801965618776904055104804751779316039117389425020521680074053620548144086596517139559907320307997504023749998001833035062258459327342530528273117497024570200577299459905737299945537050731897091488533675630761083952558246717700101069616373193290487483693913482146002402274488092817337926436103431087950083886878989365829926419197941257983049146253865827997073666926265564709472748665358572148196104314840021843884972416062618285076214119559739366121007323798567732687838198071424909930936553573521921124486684567045002006529438304834476081330736734299928277926899185140185418631318530297055929790254313878028938867188880897960650051525576451135842538224581468548556422264890516871804309298713970367336570807510368715581550157184320014156034251329898090025407120040234677871131243550827693925376226957349433488216138305915244037039960410929914834888459046627028798033216910843672359076142946931809087373482001113943084918374159778155307183306115881147416508806987797223862162940749432507499892325507781460785726911386495862212610618656978281066893588348138515113955425132386466644066121707293216916003799766454191919638331390436766777145590850456492599755459450789166573125895482499487857133833817233556415762684255879458253444373649197970151039342213414216169466741124376080205798958224253616832800593583607696562519784721777479233274925537566578155182653700220939476678909050641284199295728891352282280750684742444053420544253085081571747098440751782585118928282488304282500300274554865887456426989845742502252087055670118609963804569776445172541479927268652432697979707315705401390564906001885043338244594306155932169132127321144374754981469133911432715913527562898460097354343442920933184706960071762619864843095064543329061579913401619553498920012843842436583540058922345745968702693829886899994399171536889188440426462834113406789894084022710173134728884976832650891549822945879965854534532132573650774073145950486539598378008639738869412653690582254697403338846269423898255234537564667041774211529215890668315819837256309439631333953854685856859366421674411333874939797439828504051485897758098511250734382073190383553213140497571913664672292606276974151119557481656730077704766657633087136750907176177871955314445396771075315692079119701288787588828163935287268509661024849687164909291127468333073053530987880293036427448302706510119315943277832587868603885115181738423191533009938046513969952536729541882119228804273808414832718496054382605808512887315955828679799699363233656235629373692174783483038694663688824485589112293739779577545256539369318761051432014552319277673731419390555116708259731985567747857985704809829965909222668997836906682937563466249603708271765865174974948631079575573694427171780691277450116339949417349054945881587146440779623958962437406205563566550248465429311176924898375047741807749394159824184692068784508088607670303162160846682803455387151505354522854504387806515456348655312202837012376341265377260202458397130372705221470109614602624738484045628610746018442022429385672746751730379895983077937556582271086779613919477799117115152382503764259804739435060271392356727470635385066922419917389067391045726511990473555680620916824421981687639783746358392888023485088848514161213941114988044206609455467659093384006655284989043315878472548480237746700917447190479801966254737542109291265752450651394282239549744126900245939531016685522765024559353152996264166411295629919913803718805523041643823944408137171546727321124305113139723973279893080819441399995106579428643671605510918179147019864250813372885650017567424102107258323250412866901390467079636696707339361733691549744192360390389844330965212866987650782896169803543244796525139616133301253123618973521029777523876494360626076631826802639739111781053316224826400386095054572557337157745936056939837621942253183464777808277891144412559649522767916177211071658307142161610866969377029558798964510671108467881044195106166300067709765799457422079116805074287755563789997521980451092771989589159254338926386817578901283181172595219664096816571885072066108736986178911807854933570072086974083055013829106929962420219267688015051260083491521034966963932246819994847959033435496668386219094768094115568087737510180356758986397262678620593793300295202687437665635159107520829244378651973679236368397540823341029537303316416060650567448759687695302146075181364165861358991900043181190928732439852365232798566341046530135165483508441526393596962581159307829299959101940646297377699498027321166784060706963891007575503239586375279225788501071392079835994150720036524291201018253623026442416183125223637971823056535377448648098507378012107139343021614705514901094372962531117495768063407424608246685023667068136908851257182990121475210544428518313904877082427744438015904121538265208914045960123115288051651508756353611367749383375751550492904705124385118346149120584983029071598481918522639695038524076997903442028622035276898944202874384858674211950464320058418668295093363896928789691545411610294470847842643049276687137717348703336631728561895743493221642796450200310264519460241903621865804839594506882224324223573272366049263476037857523194708777285199432287207463471273543253231887330615191299248731487731276567412069869607755676294272817547784295364161221998641276909090711219803815096751163009589429774677723675209218173051573573288469494046282963885699956699691937937962385280023103390692203991661643412389551874909674474475395301652493185657224104163633547811805213243286029214377710071339824358952170046128032054368508975985519894102973731412710059245107175229484858262689117984984774871928490673994291246009374992519898246259144458814841409272338926512741985693405064595162151887653972265165359776156674700598501862584002540964017395392397750329420950938504507207534851123288291708232449731289030756109729237936233608744133847914658911474230935556826804543415337367854041263627148483574591576980940576587844983934671352454289880824177481411208183488947558449930029008101992779803324326648147271939517707373398711073862535723256654547983576424264112077556155525578557409521381455889800688684723063445987763983919570101521501314439535650591772889781665287406570789758289060167518821644656265206127964752945259983535530838470982763896580984467522601008993987379886675925409295961800565316713018178142869064785594134677725448927174067385601615137986556847258655826116183682790561734359854423223531311432971574235276461081277159133610440736567562301491425741057999946479204485605207873333973701368517941746968699082275967314535804803582617628021407221234918004807743554546366365271184303180821190232501094494982388593999369210545648912129846431121879468571423357388236978366884957138700444652251805523733181328108452182665107360435320008085680152858433573462742230273493156185812885966625560683218808397630901953406356327818822145074668000438562205187710271038408761952273703880499007084614242624266673519387653763901913775311733571983627099574357439876908357971953555530743454251394509536106743192261968153573154227778274711401256595070732495250690087523456562567087788004419603157415269911242752976880148085555525080208404904372187242267967599785284999355248936592772559629382077715552939449152631840538946001741076892734157060574492477836387709131091182145194209282056033401707269932007885353737375730437524918560690663332999619804949502586055955308648247156894957633682530804629375179617910144136699450992292310206318185138874741585680242146176724731241289437566154975688345344038712183087390437071047063689899814681942678441950721458652106241595036233758767719858668804287446800958045491978737466655149954198188349809680841178606011222141836527800738558385827667236839116842934239803000498364203442322364534447908190688540942473389318778145546881179017675894555283081546808710788753052252131506500408731814275226538856876928247848637711741118406744094251375098704503951212922213409256295089787466015540444436284933739648707126120808349849924103053415425979662015453899056033831190742077075389772607788122391409984557606001481235744532718703477331104559525130893851494371046398998855565884752229142456461487673851023925503669904628459596395971791922481401342018835332711044619662303582478478931848303893862874164020049513588096308945903579525050630175815850132464349359850313019221893958877391324635207580771875811124587402609893298941399920350968326150661440325185427679847279488854183884090364076734216414969997755876288175073749843081728834637254371461727577472289121721493163374412212953968965413960421653770215138356447275715667794566072310796545365782932197436610767413615541712727688796709533097676158432863620493685163089509651015163843869277403560718441983233330583460503314433811966335584523785496099950723872562771629715760239466927087903589617805366313899154028510134052479402184467112862267675579380321894143407924966224505325743580662450860709163259244114120671389426504847667234060666568727632922399119022990861927970569612518638989456083450974142763309161344776349053670133515309890011511375606294701610254789235165951161576441587648712048256265157019239442982550629968817791712097499901898454739999415484186133459272347997764427450451920538344664415917338863517187913727220842505320654897838852350560652778919612978320012924262280249760374984472604493652653403210504827188340330909956732460026749549435515999489007093423488388568008415469032198135391399442556435467408685855884320776079622932556075823569397391864324171395085580426605915178171821040761316508565199406541694261280371541659702045501178159178683054838724497236071650102352612060082551842652030617090609448477871833897597504154399335263806492662596163791679264582572221068410668244930690197132806604059269804618821745302121450621391728512585356029255561897643649321568198309188198883148548323592367387010012771729137632565186314936848346829869381035835015481820240665408357538317498453646780957189360381105408922860229741344958382047182946089060966015013147889136553965357479446229671931229705409782314957134703417626429575935866166040390873426094128500872689981037412926552996020457177721248121504205487784288787325682344030116111147551229023642244228988960226907436951817243526274069365415065456687975883332423726679814478515739123106727260637563930037082097503753995940739622514672049763804186260238422712491419664511468576087174784745484852874230905332077988453332843461117461365212651208890894065731609737948778350080880263226728115319114435666361815491482458289385464003670651006794771480255594680284872087497709892798696729721113312787000783013267655309162987569517725634640567946318285500636303151233752998150325318625711188554442903736319792565608423546534356998825188633836619847047196296564582193345520051358605026948910016841275662319164044392507682389695718607724131050016820004842540273059999766060584972398779034775632326895306759714787949787361135605266917891030209036473918597828708737627681160413822862440705497808318132908475590408838211087029554337495632598028813117128475699040235956476381650254863726920240488528991171756348404645984471469219491013779145947324299554297016414716371966340263415462171372127783830137888524678529391632506683380269915106574118973204941398619628165705598773702857726103654411938092791821173128405329331989872506963833461361399982211478435696410637385770869970521928875811576375368504390362463879371017855015431671082588926943105392757774608605944742757976390998826426593500718975469469678954452290228346884709229320204524259276837348528575424186704243780814526047753085350503624303732972538721883638060277729349598611908637856739706067654808077002856453349026395466090287281324134698598761149822848172177042402039853957831918691745137738714922478970625426234693706984222713489905914961041907879795143028851390471693345145263605810869486123285217381141624744493640737077292769469242642006615488543303417176427340079368338880924604170511299741741394988090873552124426534629078108169564686148222313186486678211235478053915175483003948781984899964666026966756419679947773256357706552507338041222049339569465800610551811831755093901743775135440222523347990508926351118746233313654551934216979968933772205498537116066702285454979151304658421872810636446982361137255662709319674876976371108990752256443237496116849678033983965322294004254734362613187133628653063759210471739539009462547423349562002418053432220286333280038024102305495629820590823101127783498024169194044960880480051514145993779768314668941961274703233599884920802900278013552981210664964096744776499822491231921123515730891497010207295652296083280123106806478947719311488698447108559243422502094702104583779097468659970525206845289202672746196501702990454830658071727848560208571844203306727032669285954393442326434893905361790934002343510044398860779194471684062206947010578939316885436797605245607613886441622630244012408106222902362770427257471382467113652607049706145701700680119088708721158304573292577632009597415637356136257747087237872790824755985112544018574589836575095194701846237586779989572861364574830674245703084818291503920016243293505872355181207192460265443628030219659826406634061941681343600856340936839986226683173803431740122261485889132367811789650955620541416284831261276522456239528077981436489802955345920980305333607716512821614842814295747424032959871547593429352256338051513929847332073759204795241751602627384213061463121993559634199860413956669673981752487024620319585054964911425789782494078915194629907019731708631661885610039920288086562849328811974202253881504452384951693409097089950337052266256967191519399860030818116527485579195420067859559809308331699520845610969915340757904603927141249158777335444879548492035356137120185318957514210530755029835579318248548265716736636179369092500585075124526228072103043511857833233298893790965598958943782944184360939195268648603111913091324795244957089329219543548812774499268379414919142211064502809830183481800594062001524838356349153233960100731874804807565958092393386145494111170257286002456284509466817637085305429071404511949762062865892355117709647037080583190444478957811162020777116424107009072301494519858337397023722764353406692572449825447660968768990915028435778120610733920675231892028054461088393784374671395980848616119480953150555313308883285505926855801893347563644404091500154053996070437723574406886998775581909824465524869642509511299768008327323193747720624627385387178304950927010996236970461854415776625622890396235059337225181027399751083451240132387644038364439376207189946122953959389012235530628528546321657580808052677343297837356229263481092276612221107318680122332817128227746866956113790019274411960051466879839415786971572616745392132425014420561668658773884544024002116553005066792681500624799097178502450143056876640255091415275719330036160797092962581825706111587728644724897765186031636093513712462288172860050148954877005659714256284482175908579156203478082431293156422517482582016869405753134045777753946795980698013497957402933697375907541424550200590837315247779867810929073919435278947710328631281914520093738347656712222095737016941065817122767938051901192929480006320666786741107546234939570078251657909467563271895882806784112753946037250302636167200329342670069788950530990580918676593056251586587580530607972540827558854796258433444615323571494936253813969392521039365582284708017748064027054707539672579930820424124864094429786909558945680994477931692914412547486247823731767012915062842258009188145330064765332733341773468362380869603962056740773487584786432617301492359627947740849996191007822377575573347625824440104449751564100117114102808992214926654376405152109154741351598202413423060147568753942199815679938269880861993106335739594487721942691225386972260134752016467127171138925399160674352772532210412244726687575689294189027184056327623677655970093848864125819761005729352258158468267764091454809554215970785332046485065614029498194325333102990512666654051860290685176483505137586337804391695927776667535506826535962845902813699778032554072135736627551212048911031510053674858926662285710601116739170074433530717611164522835327254919806454908252831038956742321208603501161415322105430280598665502786989346016458890364979642630035698188258490705787688609056671598669589385497219757701492048607615464965231391050625577469009198868829590980862455695962311795531991383766872215564886724832500016224714328352612220677437823059623225904500616083818377369661815954417921744839947640133391504385248456782169699106412837743466745516396889882555479932307679051870238198870552134719678554081727020398179015392788461341490920876323218839296150113614951014078092705371363814078374867440599294099583044183256252530149650198618454661906239580588074030208142461987465067588953102029339166518808844508519687705952726004001073282393087949060637909279179365195774546275692098248048959493482413561960867060098543295523144339410880574220860540090591351853951368172239165395541303388418502768540136209275618217660597131485026097413885255883483607460565560941639818877768591400710848119748538635011600717471972168763976288900083153754434775738711414724823900709441018326998869653445195058135654390138494982675678476333259277996252249990972199903362829059033855447142183665807918921456373397575726051010834557443731896861794391965969307079248001001799758387571740724822257195798779762164767287051352778615026459577803653816245262893016770547182717036299401338751887981028971075894158146129292275095076187373103687194463403411647481498649112491773759308564744065078301320419830016556136529433556668496407210018141403860112173874298194853470640466350828728196641369226222535471808355859968725558406198175986696984835628239864547399313822767956286289745560182989313321584768491861657659036591844618016652244025081638643358725934928793559006779107805403121927731408181870897703517864113145744774932063818453714744461306412060586632256269618238673129938397231314187803932057246083148325217909101460593170842600732604543525070457696301436450008627963561457382578523472851702552559194817237946363141716391681628885702732855183028814869821364419112885072452013115886298472288691731730859220421607481774935951267998620071592295137892640406270941717982603582827362372687673306282207362310165494291509847737736512828993871485983406792761419975740953356668132628940851021638951734388042584428189005942247360392990504999343024294137672213082828824798708807027336938638180965239847082417332425779873798602391999464394658155970066905528830882446937431558487983977572836235943449330825344006710469183036638865017594780892802220542294923889772710673894875616844848594979383943939855090616924266529101493071532041163784831317044690712294907468579639745284210324029934350199559802050798436309341412695113794833009870061836829218325516047126463791463232003887463796407534870620142452525573596895456752105909012153781206735811965178594177020307832469985174702081040805798292906239905230218314933210631910484104243755420175125558841663777271028564654057119074428621134276058834464927875724569913921050130616905055528772857559064634156086971277024206822138918526102824123706505115434820876225789846359774100273073856893620603645678683018634057379871297637588593161886947477532385687538448923797830439033222581548390598085367368995257831490835154557385869921222578328738006986268472254456361619342995079470489371274117725853904266650062415303399020583723208760929584792325853841647431387990722094710600315686650987376224679909570885415426804187153468497008334448196387508921923174663573600465409811726865248128581410692185211395109433336158348269391444928954406641451310526679496132690631152231802609143948289993032226366003911843899610774134526557565017813939358599188525600109630531358844174251521880007361172768304777465439004927878207136631867748344370926339488174486296169565778730042407166818184294300789210238744303433048051222991200040089481418426645606855139906555602451004071031600956964118997644421072589507142377325781850298188359953935175970022337517546151266193437575838904724898873463573033452623594775022655297207951278779436716534552773057407845308888923458237256973449427606712103880034554629554103454702152437940216560945507967600249198627371830340065426107490310028007129116770985471832110832651779920192244685514745690519679572600751320760345763114555370060950341697980959212917904761180716254592673373028412428545051318865388239673311567012863304953604870295040302599029061394700732016971698789793488510150350948134263909670665071826116078874938720714703148075343061384676721693665107511000990945115506453310904926038693736400842660610751754150267563878813639424025636265848471218906405964909370297309162892730136431201074779384437371563997697721546986608081994273693039566847224540953291758381334178391127269244037924301517179233206604686915337628773040617165513893234982775389205053269121311057265913862544565257188624949748360632767791631862782252335317383474440269470372691493329451583510931660996033356528333341757643574254522417744140079150852061009457269678244360474148517552104910300405530711955218929167885568908553720967587856421035149571507197810097374434744000474175246064459491203762663624755326578851187365730530387281312144264913859956636409467636248894789136851754410905164727278401156173419205413736428109117086853600145307553444056400084109663990891206171340227359923399938121683464580876500355145397021464384814014311871110577043770504459001096614139646779408069336065131259490771766771491190278755263812774733006991239093237254230090969605545716505054732025508750953649504446240195050501640385699544649184058430061344786115356138437353367806168175956927653744253920108675203036768920673914857043704467979288951117344196289371012876050142287559494416325342057169716602998449895577440191586503172749910783799141149084201689511289634868264546164753205413399062850885100723343891331452575411489508188969943220892865992384748629325223864126859517849881555694069864755863096181532876965416593362916229210093948119254421643599484706121035166949779561833709228853845169324094839578301438648586406190610040514383454574184242067145139257029805121431516755028061648006730300897832216776310132714688737921801315404117726619842516346878927592611187388296617525035664105572315266478575247676357528243905334899818165699006424721685267341967870134478085894792883871009164097928875716323591553531070667115490781650742171718017355273930713018432444191020252565827973957618846291799070493269012878077659296133609721264635987633903363616838659257338570087552005126797204874420383735210552457922251941863631926796137346472486409225928999755118059696322999576740281878418965959754385546682982608640483054780244659119765316233365589065893833547684656210965957295585707059686732884006399072052549011340295988905152723405052993302546538954639585095073727331805522293478030315614027334997580724372057894349956341200859266783397239120524249431949286888262012739406937596110965357866039010171960902373308488278419444279984164728901531770065107905471966147794060951037458548449075457829611083258246563774390602296710778330932632911751391296845123797515048591219584410463109076874235807435341372345565104475485323994418014911107085416241892990446810896517624681052310756737325279786159171871941702207288843196527093390350176183353912003015916513057375248634298092778100894307155163292048263747386890573580958467989457272406871246187396859980861248322865594490879658469066427662075847150933117790949279431726770674278291975020335912984424011886477871338193206902871559856562207455828381145379121000296129873342274394270586352511048219180398769481727018524668839477342645015947542875334383300091332167644859525913023425449730672614669385558442589428327722365682291193188581923996138922939331854977883490741527717564710457224837562519649438928281745509473086896204570582825282130440083085828126033323232751698870548642920952869452058578091025114890565695663609838046010509043900449690645867997956157646310216941923914440441724335996972040699076543037287118779003022094199931847989623567335942678309830883664113772473613088796553791125937514438033446726346668519585936565662722889175276224013169522424435598889793980396852038727735588857844621893884761847485706214299825546015991887875123102250824808861675337523404012139938140336476413556861229784491762983478541055933350235495441957730196316456857860537225929893703814114576450488124442165010156820967076880650227576407095711381963839390571492653381674841385804777337691384690561185655753213738187550971375009627751756752605840896565990862028901513650824150741655875958567181956773281733637635007223385791272411189827735016529054009636573679865818931704146919130535101382314239840170567304359157536388718254416113891881789356494372766559614181922704795403229956930933302593883089233677384297357615773890354023726649540889297384696722403823135714822927333545434140909627488221801392471263719787709744966649910886949675706202214020769272070707411257423505921041308797016945693506652142527493387811026339138487067287503793710849846573971461249083889261288310896747008259784498457675424441230542529071779302627505601164987478391793230481468871902514700396131172763499755852926544551940918766554420893961349172887510165182451516856728376510937256009850504844045737104888003922890701773764356206096062346960478203662385304699515874974746940848942077436387023768460367508315030344637515657127766908791867061035943293628188767958760689538068183900860478971896680592605626699818575990711241055107128241571845578036977075481767334818490600449707774237758051527441600741996248233719205621144419225508768284049737017651109429213910106051361717190108332203678247641959850789197039806557258451362842783421313443292275784297005036203181323261890277090461668200847905816811317870806157056783616666166004769321681290414339468088092640261928731312903430357761916429701147847679019662698357533480316878601524150677013639959651842209122471528327663228673870473068943497532901954167901726759383610456947138485546134172427264390728881277001985135927610172745495522711270189233250569704287906521724602962324569712162454588465091366096373561414511153803910675245323276061666983204055291183722340483254101924829316042742310264225510369735313984907587134203420345390433908113736215757044219561661810152236410528271999123537390602910969792967351117333928422662443288783042192863094627514941322590287699301130754032182535474350553379091479759203412654016153733611158481962085784635778996531055356356412919141926808203753424585920402015129966195666982233482531170326664754036755628948549038952381561922976269044952559407537375772809005258080264969023038213201464241856688838308630493814017655623490364729242580465013970742058669511756134152095452996926757659201495200782856439848677588318975656126749777172140267166824438571382456556548305959733619136518919800064789556409824074424282522286596369624032335299491780428764773379221666157445134798414898790351419326568588703847447387439458521625066188052047618030340785681071411681257161496821252232781874453933372037606346346800760903187065966737839832145231299034150138579378245786580325790416346202373995595427862079811650989264704814933181682230911726668752777050209492441275878098401413602445343273654270655804962824648862761402637327681952640631659313874518104858167154447949904879497548759169953943176510514097184321377262233392440985994380778195208776085987607169237099037756201532305930124992514687441082699985385099110764500856369657502810986904204215237742403830583907229334984333044614688461068865751185725632754601766581506622487683635495424660147502113981991582936980111317266881852089778732557161943796187151378279618109488519210925293823508583256658644213992580229165769344023245213587408189504684683018761728266674464195840398052819696328743801280390743227815685554315661942226492791136898445655069056335522112162957190841694446560079633227311584462432724685133545665816216227211729582104966945788798890975391806520018814701272333104210050393932400650626847425975780710538118369165375487241635498087555884560223637162327810119468799973329352175280820672659410864035606039846466728073208201484599436746939368880031631784087796073716975405575103539126063266986708878362915251379303260676714779884812612362482414717621271890070363332990695321396619895841989743317902393845599443157003569552175268145958232346225264978299911539530136222380170892439749904202416872525141537719781302512550986039002820894590798941945521911068018264111855207394751676949855000096881558102151196600435276792143351791261519576046918486516284056674881763097934165670670162846470047160699590926145935049705452666255806984140538092917379111738213000312140162711860276869168142263057112235383750662124031617787836630968964900804552856339314005569141224023651141359503606600469572212496833048536745066126871620849424778302082379655580894206534777541015944516837458902618934400845533259125609423049998173058372802062606477265257318068535299710955045802145284392592891746961950318846206658154559023509322033566271927822850176923962043534475728119295428099848809745627648202559980157325714659968281043967911376329694457081247828628523194337630611056410417535534230155373289971044169484894962669024558074384727920370225677136381977884656227297360377207035492628469224866555353966795307055902046066164908823827203068043638723619352561510441096920386429293363712076278669475531301387906907550332094128257053113361828639187460358813411326879580400615969902662769367879482956701310660003742438589349782589243992576096652068587887950064079420619759392901917823509383547276032379766557233769911230359437837985533344296790990148066823800272348418744364149646382193434743360944836334197870316856657801033568263541510613550331557057808748430043471321999444285895050976924971332933440555888933755721204270669352987934217558924895385090157781718363216643239272981234504682660052700834361410195265355599964093551221222128690319524012833226260348270845078191183408794313233624275966729615024192080445105955260891338324521092415341875046969601728246094104034537045339868297014648085843198781512905861896740315619524706490506424938833666456673430076423724422413167695698168182423401648575352239032913922274874141678298212252539620295655103355942452818789907560296805080903661333173069201922824589559464202027779588592757765072774235196005236819636378896032661001783486588481130523676417390485458817951913469992535732323750726526161544561749407068679274540835607345255990382774514432456544976080902314579480608639725172571115515170863523128137071828621050868272744188452701133959873649973178616543351025595929078998056597251979736962596149087209337067063611058553471473560546062440254692253515564933745500757719932438241651941356199828484966872743215458556361667922531642148112116422137646373494471546300420787514498367608099496444560848494211765222183976919586871684507469420736302063533529389740738942060899780862211207411897192685530619812139282320823879698335361929127506210255682872483287418604387900853699768999388316838325949672464237239116292692730455927876905865569012442404417577368353923303558617254077725375122397776072346812242956360277681824713506001746076302266129200307236198876969224266810148176105286779794823318444506940373263404792644680426651381874575368613332854952745248429379378748499094992596390079584945066874703717087256649066758484562922361659109495916995130823517291790832379863052477948177006729728865089079356924229520230624963210251312856236351604460519567013316460189443099281556132054903097681724231111161689903810947022418857963923155199708941278672374419178643406176270540406469428516982422676823745999542719255231297835844072244260705147216293556701153009646860748178986014993640370697958712403553509608098252103869618525714983684486316330633901528276723801935343793257761010125758223950219069252827800769815327396237767780603169667805922662884744396348382747382377630542147816672414933448746593338383740464500955445652052324925708261032552856411626533501414184603746878513904850514588331370912856035520089123624768684703835117654182616536572565490710249350181406832170143445323507251964478667891616535321618255515853111292097338268630803899084878099047496071663903230575671053990076783102446865368166072118596100725588216149421617658073050048413181421533271092711589702001207101654175122646087583475403362438825482722675917435488208322352160603460735210797395944233979213574669047872777431208586932488598537453332601891701379996110487045816474023397163803377774963891134195447784461409817186547179051689211488797671613318482161040036865723608528965484787084299179226902441925972619837099981603578488996719425641881006583935725689035078251261325928618644593254883285111159099865078646190866577394491273216731312837447224203288724945855728844530633580809099776420946225791154154187023130596598528844423543878909660667771175821186721760446164764506265544627796941171856288432333951647753460937057296608533923143957787500143460847212361636477349495538087927552216373236926725125866423695065253181393582812189520798755990173075767140108725341731685354219506864339221491323460484892923720138020167471629972546095291996532116962566789862142560209483371272942085178934704940257776756464379065563136119672395079672795444685483914865932806478700558120522480262347833741839383657125912262778473869409789331872058929810081686926396572088477678374606800114809010417065595763058143216223130201412023478621486104327663980236278143986550125940883205497530628052345360103479792326038281560703885528055381341404243350478711554095020842485321557568843988418495874373117479175205417674445495245304483940872761867627535732089125963198994112038110509637160384412078697198782996586498519483931374758778317043304178013608206366732690608157997569107469567610784199136211431478850770902359411654582105113783948838773092532121215725038887334728471707207548992163647898782828468638369438373609999175005356877517088621119818445349390768260634417591880812214464923663872462838709580074654453258598501021407778695094119388256775061360211105340126121081095434059208755123394893915631698599545654180680633462345297685911964976531612369398448541058157535809621709606545635387661927617080377918709386189520652765574096518659676029734941035598307805424065329022412454024948026825308169482072438539217984210395181848371175234821259030583849551101752316419800361571899118216599988955780217500438827638310363819715323223697002853704277130510392622400783666728291876076776472291473625508685070660185736779012920634607304288170013256873884519176032648628177246841094353700640611574501786294599611002780044920622607570707963798917568572833106565175505011942580559177230677667037368339101049288659861001280699330004894421046078019994972294580228065530300083048127500713866247642526236126365783169857415467793022229231044952064087925174298990536944242291839387882560771761999000624687532865526274559243730999742674862864494925674148796728629627301033421745815949198263546714003549286269681259970953763192201170292271529840330640105090905117938289595449755575069667605353854054774117779773836023186023071871065626909533821140539606499435601606741340764754667714912257581047844429376654648661002557450354811025843170914935193056205685254846306988995333140066775598142920641959667816866430802375116430539526131794428400475648838519766481076677912087969070557188395440747837642065003696811029478868472043462714188958309338704093661459144226468685969476470109696658878136524572557967524602420384757642721681061042622439849752297113860060186564879743890798668161171130137388003009246394060283141614024734829245663770132281392623810121852169222390737666839203464165795838615068235780050242480324137080643378451413446664302835237486978437589220863917446299433875788928526129233151218924798740896259035874117756840676143267430485998141712556246095167519588890185970089387820596708211160580726925740960175011086193099011780278460445659044856206981399560183195979261749845073902364301781115694331423017089354036479199674162725605169257906764226818819469058374948597513463723267242546009479217410148435655454866126275457113531221895422522598096275445980794815152323803471555923135356336505655798828022695356502638149644835012788188108454955918041835381744108315942719718459573265054963638855061547474855681624044751643380952376398333091581798990370973278150317537533502843003595140386513877126275384681147460755352993015636615848750746375218262429494537573379430932856872330944377194999702275833084710201583298309471235110947385019292969040293505163227393906210022569563254835825517221456336744005631592997822237727471332514262130376884168468568771179156064482917760004713237478495261600954742858179003813389529333246539167193761203186680601440827049298428866615479866383733946241790605705680309812096930110115215016076551779393607690182039203541504992366673665659818395261972099545807005712950285037179089467385337645474731998594401977164133069223822713973118933467361329231859376187776192453162617031116225611652119114681575821148196806442806341777705326519690959958960790987826040367423654638265534317552352882650309513809401335822709613892059839658338864942526264824762392875167812018581958697493375105417911509653699130787231755582561036807149275350180545180184271504268745643758346765773460923121089425591054332911355983580338918332447817198711113199296573334755014673365974250163019331586037853163800987662591249642458878466286161615450552937021028508859750602541927041487737895999612622661106555403696202869889235992204069070621187018313517675378646831789749317167167734434259241489491669145077550407223366054956733905381745069176092096204813835217912864209699165631021544934572733444618058772100243440591059128810918437301924500195780522786277094760451501176881658961879702252605962428954013051171329803488681626492061902095663540469432925495980353446416964130266785723690277289605748649499922587778253335452981559608231619058485275542876345405283385578631541023736959213922903176996383442315414135213029087096507650968643252861859043991692856348936836290950871232268575393293692137106064508586394307096441928848916722691375768714461746580386644246529385948885821604902478208259625585215541790265798425796008335861166099515482389878416384675062810345025658912615759220238905959383049172871651027283294997902634122757536937631907867954502627061003108084897004627614542676060006841791020068007492859662773108899240955079192126467726477986252820845427978676558879894767302728653628476354833770559909386549811144189262008246105524876258271105822356702817872797704681915138327922327818619359041003099557216677336708399574220941679339499533716965864387868761844481922581428707656346198291345366181880080332560672725853193713481787092804922216711068478656241248069342996856164412087817632940920559593980506257084867402665562662445642208757001344021107490022565571229825178083671079975497649488915674508862023882911996437325420784763124661709968706092408982492339008629843683125953136820440354845366889868310456347037230897897005889838327030749310290821865590397340144955323239121317995716818847276115722049349109997291637963686347159825044963101234588739868107119954023674103464155741231752723601871815082532288827560919356989556854926626100356917868013221253678289661316403897150227386595040560855333220804936885847363694530736021167122739077280444736128125156620743046350768546281505159948089261727852892091719222494501306505729249939606616036323047756883766817319765511495609712847051168662269018189322779548176865908981639665386412207511979486784086197684077566222927726910846778605259436460083674758711289106322190015341198507378391812368679778017951119576681219403991219667762243631622414181232762280415360565698620749234478965018727518559924410996691472297227919045939518229235797480842958861090546770723106607593265862921003673815841670087558505600101392238018326691278926468895432879611367267860152047602360336355280751245796228246645012432402122598985707265326007577255092431815981071822987449344193162163158845637041274115766580681535189220345364395058567526185556792423140440917570198156730651238999338066430594180671388322877187951234062832478349195052073750268158357461050385659251174190734951994097307357396584440698893351535886302843185586041596125271287553544842437944701918170029611815405806619200842828115118290430453660484516775892138907316904382387176793328492024440214108354500693758428478754688944058306919441138871782091374205464766573960916567654570321715090232485336961222005686966487681921644348465622572353426854358097850040222615886132933042546624670460134685783779658249527889108042761145690787651069271292738673716303544288834280682323162701779755921076071792942402445653123155348694673638214281869222026927724709493297120337838134610519630103587979102436978020099472904031060997369677560139110111738243483595620729533238602553847511822066984039602287880044970976990322495632235537778406671045171510109583211680851794690575844018303037618036549916349535796022040307403152282967702123404947547944377924308059581555602823465016958884022128551949228300767966712138089910783529983393156436958033122961832687476373174134754171234659743468426481187585860368460176136270259455084121537846559260309615999366983012860885414682439103898718510975701111575305870566729412852459449047251967866868779525925234164056881699503252604945807296621496868739116759727646365678861120081238379287536595874245760129369700486168490629087086669516056359569610757853214053824520273681542654953624959376040288871685099201425187356897435405070694148816530668812598132761079839123502338647339998104308772840590021236009353237246346913018242752118376294557797913307702571942784188474876391424235669595708755227374528189417967490610507298307278041215432766266408923529358749115331218712470229542798208947169048509475849785338095520429750899425602779366478613090821557838422413383101802178944226644089296417168094643991171286942548923772294471024550973985468252776292244477530781408316992315930856079105035363130466607545730956621475558958302046238511213952202656640268587800577219912023750592590528691662816257885939250391198908316746912306693261682643233277549576158315659840488312613235506163761866752640003177990446752722149034513859417842827122104123761138592195117744241766599820147315890220901045827655666218709781660995568242923698728129915547461365015349526118586451896962215842139122261213518222140931588819057495638816478152778445726641632799069692228641910486084028643629878231735142136183277752267779164240921210648206669080303920588596451748456472099525948168804499402735633519896287061855642025163985444490970215169066351444421839738937253165013855998854166266292816272657302281849056760686500038911348460405817551136295192697718859951400917634330010658241100809998023042346793684016337641617432292190932520735022604332905263405773394953099332282772629283285065355143797330854939363947077129876005059689775023880396632779509814149513488309524079823320268080142565822054981101273682983151282158851986583562292689494498356877227673158709760181049711008080191554574477022635356156076127496769335989486604948799707310705070797820016323786425243064407848417319379210206811908243953111871502514263279204872518419322039165472274447218319289359834156007695371986250467833622327818667161627527157809341151941943235556439138094554768591633964655839252052857188363816356074114847981447275829745172438146880351890589715385259790478916598961923877369904035932301444910179252762918727748628591680466201368055694247548905435550686266899119243662925742134473631359634485030738510425567334650646295084389652740957626142398061102457540192563281211445275069361685151342822227810735790070235184358620915638553720532492204808333369621617200165198918835770557834670492947910433688487834642788678341093108129824957365779890922579350128419689570252160895452148305839371322220756492258546086684391155460766580809806029708766805322313236395092793084847476633525124250162398482687896748578727615091513878642081511457370766249103966619067506006886208155453732292436705071842240109493522392011008189725920362894967159999591395477041073545975530986927967742635844507159672150321823204933234020511040635177472538156601602475077863073561536049040898905026614621974972664441472531918652362349826942273771158964576184018591956243353856482049750592417286279799470066188700905434033145394604223128484497389845488740406133410053665704904324823730991655240089874747324287713073577948572024759563199882787162336760158277869310875460071287191063693440610057324473959975179994595565653665284856620250462804629142049130732159717611156017611584344639111751366488403838184060762842268974006386616695653049262991722703320176971664079758517802231851394092144895099957534483357291687523866328320432563283158611359182205208862833669068132694565313888042978369542391340938306076359923932279449148071816400427618166036318318855193690598275467965832695654713605386873826635441778414376143130225464701586997114625721647034886209709522103616130526814130223641927723486483777643641245878155796538154442317370121797287744597908432634383210151049881065264465563436475297206197132484598515293376763820237286778419039794117668929887209907341980036728007827897513500310154002506843359533982090449227475597932104703161863611848219113424375268122489161157980441332451247565354872919416676066241804274415319037273471421523133799388860044294808949862188891433433409949383605401960196321987398663199438014014014261477488699362644251710284297066176960122533668338087052343793087834374908756152595652294253092694577020070242264172192634633454549067458637455197630457199223623302536063044609382262583580329228830993487021417213856237435976917188730546168844711936384899740725635110874833754296552340062147333915202210540231021272766164930807495394424393290093586011254659995919889347981259357044035324406990096918018883406379291370737934910047325465966009028717683259372223923979975562088117698860454613657974111163630419767583865307078292580594736008532159812263530988357259352795147088809798822018370378195076815940163371609766167251305313206647826947640144436018022312050984623763440942663984358154579988416472090716533916414614653379499257340179599215239402665349968860823588242873756610722964711719345261564478020010056682250093737049221961587217938298554151902359028669614560847788950656484001619217073230920596787792259972408676295516667970895099642936791918349474233430010117365421966525094399518652061834488665543217961879968240517360692103981538002233592504299474827783237545902469167487071836074299377639176557479874795226367507208083462241832198571845794059402810161486006476520564695039007593738754994815620434398037358320920516418177131755994801117556417474637730680594002101408246351153664941648450927650258471817591090214081540924548920669109965462167003377961949685069654831546832911091449001779904023562014332681909920524615017016512213701162542489817591992906533969840280306261388523200419899971107904746714702975196460285908549872472076175538304503541008526395534500924996002435341307669213294504865669013372028066330100471271564051841186694306121609977813342017005536810099985873785987754011113090925935371468747357111124747733130018303309570924312319013121249896666387132614605188026649976366630112599252246752478992367297764207975686198644056641901878846892390082798341876301333435600014566217759574729244036742466360467414004208831037437839989647876359450384511304128884025061816095672591304878911635102075306271689307017702382545892003078429745758358114061452372469280786157325396422460620364842040607306755200268622781138921389351287165373543730833411330028724710365523943117784249807159399941882860829212283388599875383942082574076710486654826038505535371427446419846846691532420576478977454483912256692845911247147448411850113016468379189462473533113208380658458532477136457185908364050504641711485687274533906884450374081531376788750276882831555086311002555967699844373413886620890454567695533946784735962793221552922368170587626935857356401470168542127380046069526760258096356660400961326130703841871052332306848765000660815750962856713214489270534769272239712187720068847342810940809688865687997325441098595409798909563181074410322998235336968712129536385315859458005296015277891473807575674897541194668617659130009825509012671433162648994776782413170736268216121355866808694612833897142530380012530477554262457165677898058134896619287680119949152241641999936109044152630594954608632208433150171155877555503273975544403303444882829745205154715942651666814677745032331570505950316907565062563773458946107740670562146370043216875191626839354604037612123360737643239415975040693010360386392679704654923740245522281565476942299285612398227589374830385199336739758391016850419530954787682314838168525553594430660149650961158110268828735916094421426560574989148656534613454189086534297104142861357665841316255803500395501730968059680081667744946122851458429840630205581440195730216715083486080501116650231493818920725563971036702369650628672017480222481143277757132238066320091160985159364437539468428341258523200831236827743155454300937275189947851861103886891506140725551672236310527677548037452119611487995840130528573580631373201945986306516309035282524645841474274797674910263692867841272541726701666781631441273538929162494427282553067324938298409165036256522198556614760070605349742425749158262749211863441640160864226204431082636382886594171033557013957920357441313609091293378318330839088265008026326526305275376821852259250362407110424059676713155824413937620628307235531633739068994296999681812668646562975439202623921957851282128218642090709730785770313520326410554521166603676378697817437642295851344627340154061839508064307505410730918196803622676727041460048210115318455346965713627851620226876928161577158276386593660676110152908894322341406034493626381161248534719516252109862594720609394284729557107187751905285634694519690933282023518389728702704834112984114882351446717930006496836956032892911310753086962992590114757781317305842349336035512037698514042139920684848138394601762644484245038873247894996222279045137008909495488251200076548949860506121180033895062344222930249424645015089885315237179134155852767442937216417963144816048512777338960226036998804701686358930968981296883947880422332766116553767490247722040850114242478010649877071492674545795036455692922038083988062402668682174596829488417170238607275655302252954307438835479172894078717252515602799295441413951345037103709355510800392187605914038739556384673893775844809136596649747166112793349315815097263087934298892615436854245317892970320245144886590859598927153078284285971060364734434686766080175604451498583045309699707171375401529584655955445861259896230906822854904169480817800939964137571583839166042680869137953582012771630307194582427433592706624061715758412615891072468183185661245992220838812424744942772917649349843595774091264470661994873826383430452898823970100231389978455599111683421067625914341810738145477310785464737928797164707820262932582333832340714600832598876152334922972290207501533639309529941650017460051767467691788792190817996683810804465271133116723310873884191777797151593364056919997620620266233710120475936303135780263939119819782822980260679134723635500775336696670112898916450060925197135378656390654435167157283194950817807884489565357960638906902939652564629398795427885666348232769134602316416503403761127826391818782928605533991293761711837718953864582210783134033230805092700336974158008059203984725310555211481931957196179247330745564887441488214333106256775031727673832787017400675717991988098133895257463279619519992218542190957382860763878633495063700561435063176257999994814403351183063310427699153803622666896966943978379635422983419038133834089907044105430152633798394504425783176153714393514492257674563982685033656127476350179229360397420794542887471740439890008137361260861600548418413633417970033741626819908642444027632449632825289491531297597050008020087458373632536944675508344821803829074625812697267447229629354772057422914268531370594350424775703977315392916793427501173026363001094699299108603970063490861627574645581046327464235501461550300191499854248686490208455254804520332633388888247234417676878859236787960197014015687349886343745589435141016205661010699024032340496702884870154271430477956266834293759216872108659783999247628404784279764414538625888692360577449529880357068586329926728676794677521729687761149065991874979714654714918358684167193070351090801014343471297594232023639654130631096435401524873696017795287556788849755900358377050972169542486416274674387906440321029537268169008483192030015700570627292372870947834654745321695055728524027675536724792097409430273655251525755587747079943211217886127626339726212162608364724650089499491679484440485591311851062483547475269055317454134464112499309709679225441681399174620679908563410900464834167549143245279467346276844508248479741094180841686582171404254576694477416606168642129528443678239258589608780574979880693291925960070039114700172735518752515932377751219270228089743719387323755798594335736129543472864885358950181149675857588917919741709619725558460942455371748270600220672853415186692520213218182842902297657596863199060128783120898953273449681332265633208532805627067960541607401476968875488319150341888507437193779921761468850077813423125130867953989061402026746807300524600856595163162910983701927699109631793553433112894770380921283386702692652710175470564788581444746469229031986217781700067535870387626992605466225839652700695244588768075004317767800896880491498018144471613675220633237891297339222026528560021871995179523050331146877083508837513233373050021866243379335624027002768881241087812826680901089997313905043284381840043309731635642488106315109170918865520072121017639632696512410850660049391948526521726934424585559772294326207388897068162291341707438919281935527778584039363391762713620475292620262153607848577519739733215053690152346277185122966285002231000382466272213370899764524482744899033283311776079156888643996892397168801478374785828310904267065844266577036121419129090744454295971793889214346717630253061135988637693796230354043531789704553251130245053465297244418436605432758153780640794341185393235966936250241471504608348719151889392971626588641489844128619755523530840703202528241489375116670749314933121806576261816736002810030152548362394522772022761532832411059430154224051688087705820649374684462693312589827632745015130817564734275077929511811729912313923627070462651240672156001836306168676142996774121076274784079917299516871597897783139310157987163729057212866305224611025639025597176523219299914925205943386382545111763951328310703869738858214493989111280481150911111436091092531334890894132146510237388262971979722766929867144790443911305457192759437504196429516299915878845546867660201550472423032788813654885158551603955992688788909593534834077405258259198820829194105145872938375711288767058341616546136123918858224941701422219913822063380049064755880982957549279434868975777194683092535939131891899741194654451656412676812846566529447201525168249328571851769594396637773214009503023733365229555691570684893786964302477629666895623348761077842633679359985213263570477551898897186483219309282217694801466874738350655276683953618351945960896437263561527849110950617306010039429997010913744876368294667804519952094157435196804094310122724887432930525637362641919508632263965495665090810226230859061576861096065928602197342621999348849775224966824520088299806085958704392855717562451739725927729990490943976475838611785940963945864368017732321281749238860274722852155384410957360496593752723443428860845446323827678523449840821867455123429001048749313848016157318724270005786271977720852561691701660067114858200584859076834663944299165927150402084866385370134386793955668199685874854349832518686790737821249490262538742999489609150240243788060686550588401060454710825663307451987002760415509588708212678745076704784611582291931937919788976865509499405363005193540456900137747567237732006635640239279700871335067460293221687824319212114434824980824374270146714078373363930864437707371265645208096188932425752040383034330752882893044134687635311179599906364203008938090661585652154706748224045917637422807398441483730493342989167328833958706649772562451653626051898595383009476130329723566980480749164160348308393555846323524852008282418551561467365505941882368628247332036291628129191286400886916013587846676713579425871264296229740179624492209416258052095003208640718043678960237560301774084903986286055855765033909367419315951055786441016468361601424972424438554080284277493201681777233851182374238484130926956993140683557105184853426214648474633326379238707275080487855428819645436296091940687180960107570704619735209765516623918858557985922639776585942890800395708127881554022279020764204970669999118718629574126380405525770306682530511507185175736032334346760261527487221170410465835237703538338403652580880636491132607840896693972304077457917284309552124644955994420713352946681186889253356385628572598165906948918207294560964865241681908037916292717199637231098580454924171753835040425712833085695480777373607609906283410920439034783918983958619826466387280166647571600999363446281175043173783845119005118390694021995205106684996414415302830251571498705235670631780302504887695030790159540009916574286122577551366076122524139806687923923458247901877441452076879294999958029759913621234056754134935442198655837120648319634951277952735022284389866163643749521095159914930478207171738212082228907030541335645032362462322409970174415819292603434240153910053420339628250450489582146960948366192396056990285095745667239685792105936180182765821108663813696576891379951079239561417501856194787733897354051564150943294240599470123754566349992955688462520685347356437074601142417946295860948956846283708880112750722989302367808814407875121466193014844402857571100647674049172573495633467042371429029246114743637734981610308717172762541412535180035471062442631304217210830344749713880716472018870283969714279352768825456687202906031235705738937519319513983743551936594604065346856955719993343659815829378803384605329345156541754848421787320727183231729012874609152779260516199589734622252250144305455942988003899712237269682478676128099323450476972196400102516800495086837559855763271852458231451207423673305545270411012170796486739160612791235029861891410553753357850083435557737915061297015973714651044051207362678876314019878795344758131540715339613479923053894861465294864115322045161826769096757563133029100224722154297753344731293423219544011228758127155552726943999553728783399768282842139260149673497915873208927119968799826027050915682914261193157953991464362765247596474473326888278654733795663314234170030656216343213484583406749072814553425107809120306153222832719360066088819172731571283496132749216612445517336400191205345340787462125162211666940386472948291776026431939702337591343362531704754447996395274548237022638041382115930525230134768632221654006222707984681314254196653057953108262990449414880413279394455724207520955719950903318256339702948951561788547805277187713608234210193852991101275456185155928112969969620848413855194497254640842175609866479015479143521196920616736541346832926582933648944330350174643482958813572836656914535005700907841981405895022203057600819537074474420651933824637410702898249465289492357627427895819408382935060116904546627591374569239438698314583581007534251090969687997625165566773522972227683058011933600274318271102475876444349565118156960681597807811323609622361396355487623374613482609888277461826895655165614633797671296485490936118209427260434346612627412334385356808037477730152664800514933321639909955136553067226950020868572988896213233040274324748039318262775794028100201188226695178948566187281000804452050953864163732485028528016656962206062929470913021969881643512520240206852099456475732316649322786159281332299844801613598188878645683192694543598518025823044827461046481973928446131135487517867185189181370799722164879820280111443907394358375636406205697230013189798346651873076300604711057826499618233292631702155305998232484188286984460831892972280605008666395850104600434229602368999064131358567895638705427781739008866903213954133740079727843911804751192403544778527689913514086396933063647012826068535700217087181959707448452422856072638382263669592350137246716558990336178609768150490525148616739133491426699756070827866720161775608948451417121198888231778750849170665248246861918555539404547511017990609191794253094694148266977897069307523231941045408366650803458025097892862757798238433910505846112906170189192674968323810965464235521247425634886231112878265853183876284504623974471882982184522370765861470752537591309785027428981940924614576797707859589025602386024302595949661797232259089383167502764137809772959551742334807564974847758976482681072337987401404107005649722210983896191204713480642658779184121253201744114224225703999087101437479682149831696530564420662038857860410507202433954714436142327429663770509112569039388360391903522609854786143960645760006175308994171678841081341942381490323019718548530351032608470215086940691355563135329061710319780185862170478789518531891692323222013822770565671404749285102603519552848838083935251835493846524519834380098199171506287029608205089333010271838310282731668279135319799854011951032124024865594310077685205398845806659049155552573113982392552191791540095611360425804185908420926827523612999019370886145504239644289942783181055710210870999200395545909137703091683958401761663050866341262280238360104692080242589735773207053756357022278429986431052393271869363234744289850694493351847876218156795758568478884171747629003271780660915762378438234378058151394320895045331920294240582783123350332218099665190354883479194081480304998161476906071205966840355654250411210947773440560092628809295264816052062626733614086297767278144634019509085551123904005360623377133397551827336011190864820025363723724167930550300969363782388143782589328008083289492042443498324364229738488782854056295943505043785696949966173391219880821402916776612896596486280173764143600649494145870063900795699942624586391556640078122796948401819787082148896359645233943835913911497081682172990106288608708851819946026226454357775664801143258004918796796803959930550352770239196953056412910277916443111081985605301000658469525576529297222948013107146808409988534696152514860662207079407819122143849568889802139946803012360282198157275026414423228042858704751891399280879290153313089765413354675222092855563029868359576520001407356202062011373542719155267333604922565877804522087817703605646536815324941402724403613253266222466641652957161114453211284363727360958234275649212020657770553167151287247382828697098529279884136967662111677049274686268177708789219384616220933052159545908091619976314961963029026863797257408076179027418425488525879590151786446210385602274067929023706848737752230570773211176546303041054345996651717066373591114034889740581882787513190288124406413136319109736610285838294395431975908094869190899195826850541596046308666056259982881023616159498068209455010218802598770200571760789182630096643449435000288816482564828564093022208045486394466410122468032774241806964600163345809308850769417925751026153019938074934468188410110445782362539329615525157045163244628971790427476823976199834528012172694134103999090022518751247255487838541580350762813016941275604932402590723629082787669765702522497041138833914307837701864009822349399694713760480060856129225589082077013009865487809927147897486671225060889076739092446084034221434623040531523382375588224693837823118436892315680341477155454807537337432539661556740303328796829691155802799918125793859879980569063877150353504981405840185031945950290492793580482471359989968422687535589626336160044749382513640708423088029086327987208176177643810039395853224547397942614816458494626049210579042596036015841744249999505700770497689880843159419734866021932958443257439967132126852197762836029496621148918856676593170435535759482089559486420879228869780904781577018543812533675930069669657252249527316750956561517991772807880940733753279255715572972515506183844979367264704041261218131797609921498818401780525607142652604633805207076513004502344670521329402349831989133456276467105952855818891552431894692900560044530735103834211754159465687112666497293715662048383531852565819637377125267719222668757807693462142138176376096836756752120042068081001710979247374575614149022491836754473489961866883680732775057055957885551860091142131437718994116079879035382255912468787490634866514465557234112431216385160369806753553729137242743188502984909586328903876418096750004148430860759811659401960035517717316338111246363263920368580965580155391712429174037566536900939414713337046526067413899858088662784329335099448242331106244213455038824553049258601812988606435175821790906300697585876026437345101150917836367471040854662574649651726101090604223283394104555205643883182086717045676667558996365767526442639255899150111197769722079836373697726940587759036185403957752607462062443263330090496663222892873295170724909019885855034999915382608326893740410850520359869008143473572147246836949403664813520498518162840586273982498494407222164627423920415903082282827271757994307449008840803995948791820845460771340444108037412976962581494059598274756573407780657818187006475249252960600992186694864338353368014324200191954925039423868201552832565385733109243884394075804935718260522290824717296097494661198964176813894350030358488283455828526115729987081003959233847910198627721932716363156278995213454279424398722981074292006468036084919741268711333490775020383519014940827966109324813315856632231086989010059621619680740412155623519084111579729437779608668008449600859028829511119023532673989036453627676431089620644703132998088801627841025538620474908771199262330643674502476087602815042059808611029181383337843159982277104084458311255837268099741092566956174257554335900748578773386891750496955869742688000517224006596597300603618482040346983918906004840665270673546083536644789823594543360159604845405208574489337465505588764774251747012693514563086787121377458619503884415985900025849334716304503526208848263476261898958386984800115682963793638539862961647557493832027051020780451183956883219391153102367794267150387852699868259344972755515765684380775680705257104820206435846322974655231817426462145912834380182379787511203905148462429853858451849236866831017255126532516362100932141044995573018253651386531469371743281998287652290083634226089004668816173949983393650504478973445816072216161043520324271512231039947374302783635558965237773744735790184541302595194462724213094478693298363640402322285288530853212950128570294913358847694799580722831834667085800707358907647506841309690006039022913066265267253958085117964728035665084479917011267571303243209457125162550771953954924002292705457800697931398002312549008809001256068661541317706160995419978965788188303200161856816629388843765651312624598904578997271880888415561732859183593731462508443145512548632179347348015793110051258057547699704674638099486070154640456239566461306719403807582128858966721495223233446207259149291589418686201886765166864519642410518175789157189656615963438670697848924244989980190097417449380329279921602959349400140783876688257273744820087680268705217976424538141143798983218798318361608996624926546910188996020534191832620618368226673401621075932751587851489369593895301759208260369197767746491175829616312142114788528488514811302921570871609210502824191054553757061261946860708943023919654591262137685312427545677901802201795546499250767521708707129635149235337039303356681599620876870717232507276469624588871863558138599415424337135114289505414678497611528709552438928774124495391113753502565815839780965701999713623357823579599908717526974518253264013816881252307834131015058176475133611432063380912034235109457211170341129507478446769566906634035472261629923180211474799311136461581526885704581381368779878237356689556083336468813915440788118802593021816112141491991713472431540578303918039237023805604587766982068455600234729312431189065799375866464885558947123795664257724082433952065860286432907492226662867806885980500980719079585204274063373602644734109028417500166945613318499366505190466078204428379147356105213906709238737787646309291578151650158377714056677875371012123943886028654361344402485616428690320089261414176199478533667819157717062821452774224074287677747127627017310151476557096345021936377390310202594057327290733649713371160640624132378569018831132209901349343699753710789423284247115441039830085811699010651741641604635877025524717143286236268065733909306526619788827204558407342560974930475387275361948333312259681226377802937111059890088102385509730992864248621768871062879193240803384296587122420920277138243060258279740909182056949005461430993780950490481764046076545862140275560209747173470197606360529767039010600152639366334019646921090795435894032680969152208578035911803006658397612327690439805423627473597016660259386348324397017858145636975367953363263655053431792877260396652425489340229054195136981633643390133381844823470298317296057289845624571791846216993223446081408572517281825916605973546906988087208281853493271090463137320512663086777147684344591308664631655736264443914786314322921589320277494412990746706329768370669848476437303492279964474441532773585812198014778304646960518475052886343457287588486459611959004886884127368183063811440412638970934591212583961242889165787723508408657254624046493704274287780757696798585235258339748904345190384700168741653178715168900140958154057074418810286256309478923014561826635981316602849805801072073081164053516674539492084886714060255629107325415212893258299197405819818221253522373491743115197845373233606930358043083670480033848630052961363727303437512854914592445909013752619957372799071850237565242769200601427011776467850171853578746947553521270475251289263394282580180156570277086033544407713971424414130906470612898820390410160364633367122433488097495864187769986267883837707188038381479001343182968203586149873868547282622589438833339051130123738802946318940857873439439768549291774275976996156137392959593238103989252092394625829200401574614063959826243634379650232586100935676356067615145547280777936669246317722688455533051332171762442896123628897380071233972135276349856721925796535378493890532271603834616724898132968905481417099795005090237918387173205421359991683149799149066237045783388567283230375669987334741813016710975001849010468233405070514654407164061787596448656228684281790370724602557783419404864073848580039998704290647104069381025554529405082054018992511939600110639353564014817338880201892516941012825120449079836390319182824057744226225531550242640985292368372455344368396183453496580607684214535480308011229004294885131784086651764576996072455591185779857715455196608101913859310474369607094881144310156408816808019052088683566397223061131313969042503847754763854549760180293602036730972413904460429325023966091588062960218889005645302255736301138063703000554438328017980943542945718762832463739708037193683496966437074526276174446833298894585805851473790945306846375279253271657070857225230979340165047574795041871636483355828380670718270563217667294070875069280997591909424143750916975423062911062890624934271005169172626559803156286916303892345082948187621869098188369304163769792989807556910787641489619789096178415625120595572674015708213523667325627228027426725805533634897112168477532515765139925339747165034180890233441470242186125776679570462925157080750486676354462266383660464894457531738232361946187839826300514268881002661228442946798371512543017844719907016307687408984384454851160138527839398305165934730327990267809201363836162245584813369587316366373287997114871540160410905423214910369008864542120535992295796493578361062004470814584564948381737089572259102827843468416397290723518999555352534231969872447910613706816780104128389672251345472957189940833488480505068412625317615922926642145877418735963627686241028537153166685692226561217501964549571747516608722803555779266413468988990634775271044021776464268137839836131703564170979759862183750576368805668371162301734160715441282271671673811430007147056589544749836733813920529337931769263211921217902542931136587972135488158953457608766814226720406524661601813540974016631898248717362143481719458021490021150637666950272885101792586801807380613717529292406743248997896361456707770549649151563813759586277868756148922605581517950009487699680480088632338853937881880150564924061103813622179330657143641725802510858516267871437206149658193438197512153193457420396947527724030228096408436103135120363063750096464151905031209638323327167534051464104446114986950588292070901463627679114434124197348849614962867215121764519176604835460308321560255471336098661949099377350196190788190636534439344903477956776826650897599091342580561354545940929393451413056744283594473429831857251970717069233450035130298287739425053335201313693392217622501711626084917495748998775834841498138841135617364299542771130315668924064076486992772362599208710173584241310559113854365204291909925332057400021156604104563156187103171338600484189882943906028197539604417461554494273017358180620531195721175558542066492421981530710131151407597872651143283840725166678472454888437352164303849492140444921648336859180705108981355198134487435638449548498673360979470575372949387418258581862995434108322673343094771642178853858417847099970338684353809333846173731060797309091958015124706433997328166641082335204983024834806145457758027697043654640220360611823445794035277921700842452628649456888720386227287605538622377653143436836002291950523099026051933414169778721775206348876882137708861218862785796039408351336852959094024745929231666850617411248334870369180884584478952490233548134583932256454445204747478264680961632744497207095232258337414414763521536145954673067384251702316198009847976009568679654917655703928082070966816442465825570123397945496553623388520420530234863884327400254872732836664044862850345571420426800575911806097056310671924834133558384249003312523643399211701838012103892230095725178897713275597400461653070997292130809509168994213871119640759072741163418137061475986959367254955159926340505933295398373965708401576061301764433338838689058747457565796376718314184483318238035988368700925118392474652319220054031404727493905216791412887706749349068137372475803519544570976679869747341354496052277533133394211281456743124674103385889860815685882449386347125198679303452890688645676435669585079748160081093477054023858891839139536236311322129536428416923403332888137273709071626824665724118578677840472333332583989646616052714730073472807428686112606233607773197131610953459848444850599825942234758602224234968620013464667589432576125058655965819089546188974356661048560996747360551949395980740216023960951841875801449658570285409010949494640771015720037433542698145305692681273875959544859699561171674856668443244094683745735311293188836712409827334799896417183113630129785457378958382049058182022486633086038732809380044304504937746437732103676452308780848682062355821474639053117333183939081343948330091353243972712120258327785388053283980613591139691262397536052677730035055394934032377024250909272237801549099966986092853513338218491680334230518559214485035660983226187348137599264645464154417732433948373384261642839483984495554769478135611554474773528170930604870376196441029269852593407780832293626206919913560985154754939011882115664271909800249463336094382215485976848524796984101303974930688425338332765304388967180791847069790719416605691691139209660532578014332066645877693243475751617548686540666636197084999375335861397042210203339446924181699999179845494300454417953494861360152031485985848979833963078781725214786550140044025417054196856986832126176851627647645986091091751010730416041635093157207955449742072750371725725166331110518482958951801709698024292310865147308201021970446276480134099575358016661558698395024222561948663546301448926389552554721110460797935094173947857456567444569467604027556781320991986994582621503752918515790576923070196847778082719051150269749622374121700251327294625306154951546101428288130934036633830933592952982624777780826454507510156285232442787104430602858217984859429154583206485892686135747189186153664467060088439979472167900406053039679878617423224971819524269357455890962416923735353729957685741590642102783213477729626502838027504578357369788508769190061407311962378353336952670929436265303325192795905392752682798941132228249862564017032241329302459938796452131305029431879413623065341630345284494642253456053975469900297863430812905127329226476769756638058407398837748298288525009128848137827039450260121876307949909168938723238711908994122527093000384464448555298596374776905526368005861301823355698968649647685930667307091136827718817960202129093828123136045461521354547422331058533535306807493079810826490633387978268896989488085842707741101593980837533333311662926607433014956840886668752292886772486832079336857263416529400634079398224622477628521746495190215552800955558791779071218034777079549142342835367967570522196525058323775725595134281820078927245879947140093531831724898205960599984086183589636818807952956301902594715797008027004674176226741545207835526640684425949767934731433854633003182934717545267067178793873217636346071917286887454371885807189136823265139231135262634864858406720636041412260761529342793761014135051914978571779933766192702117834563285575564546533295365707230256294406897420110008876224535202098752510984692921216599383255941757589618637646095929448613839223786474456668290661932239898546368067675554306453354971827098615734070948742792663887151619421405790001227124190332541063956417417873006216030435196381940510306196930044007743556995978184183122776070572803345430337897727658520334035998867281697799500516712849104974700575539145620524453665801808364681998879256710820396511350639177318930421742431414418887647950370175414020373158489914368848440542402259043005252586986132239363273149541996595522819817814576917655850632046408151852843932972969208992724509031285231277546908457244282676909161908950713038849751622367369125574867311566080991047531945275819553729684554580992124577632559794471726225881984133898241610740251213595544131100895459800328154456085039003859779016543179063317704725946166175104623672244634357008458124596324383242830317782931110789093749363344646378924654596824049859400475548149896432252016994979710316611291817809301706999698419622845834114926279095047462269471993455568768170407976052991079775872076520512397279890898422344719462394393286589449814373030594233655635191747663371339681176624988876704477593977947003025893365790804978525641612326820872691066699254716665088887790029465370478383039995918889228438193182616164689200203051942687754955799108621780207408406808992264488753858230888548155827186880486163990414723404553687054244972294353987731889018670982683165783940180544588869960421105418707710399582835773647894075592425203374539759734816799356661976631006424301542729087474080103789323671428735797844466942572315844292761111933476989356678376385958152498589952240091560530322213319632277184988589530579958994795781521407900866460884377225922407553606008213783407859605781775826942791095091579804091175100951299819973298939654710079643658770063425781241088044639501825178334091513133426424389584555086491273361513304110577305615865455239708264234500636915907523694472288196183710038444018870817655698143990536803210310972504622910954810796973882634533925007890845711265204718720963741872566475207744519733517147849170178559187094248684994159675563832601280783940591962242892276232784090986441152688272273659315766525280741394588899451573417570795732241596723274239445924103359852521568591780129350049481687801009867012494687890003631362585712253497735744508318087840651306680325488563557313647715164297549076419989116321255346797206632583656134787775884095228984801466557243834295102969422172362108461892189839395326317757405069398958661345617666210938489154122143984633453555727543096858895459909231529448330798942997777824340602333390660330221619980625240883522873948947291783591477611478517796681168852168421625488471417284363723521207993224606570371141082917008385784487091626857390703483820562215388708892956323414401527696135812114887395711388698059879362492280120835972573654040825949877835249696121643884293014239276223447419899608228147325393390741750908618423557279134093837726560741173992818630169496569233072349981289408440740977858462384311332346254160031759754738316352541333328983006853231381521204581392705195621743692270326658759728066468294551248432841429936979453261789476840896234341271200970152202506055994379098637658767615841369876410059306890353079260541844452775976285103257365584253343692282342217997631977895912941492769938938993016497595408900439853722495893239659897437005233242778448517511351211785070506616640944183289185572136473742291722006980249449154183728143447781390675967532594264289893477415696240769281592785206808617322255230590070889013013421892176451646932234096784343952719137783001466926416048506132404362665708483800080449558807316799388463707821137796485255404794546885993774003478188868009139719954820362085054362993905015128074163359655457508430541050649938743755567542624567497383478475913665235441905512390315277586383923755983185116372854507640888633097966882366566397260438898192784027964774724629773644389508141007641358808983416121840188734934139366657004386155698074251063213510479817262141761885552537465245004467130723086356025285609085004405696011150033052183024244196916702463406875376597134119597147440927178933025703954842522127902238161625216896547534088922645093544717800311233240868796028854513783210354696951935744083168972089183857206029187673250257073599823407890607548531735199677525591320544282801713698173715173835227283141023177921178678948795126062418973032472250166207485003030541994166029334121789417763767550141537956862108509852071636837300483236737096168266206386462535893138692061666497226063757816457314233269577080380546351203032307745679888963098191797088609904818732826800892463524663777077927328079356406671610000498225615697998009590131207291756328849044381938602402495800786892475354737643538678440510782459909951270589264517827952247309592794919461047276209110059962197028076444422855282001761382975841884190819121582035370032057969684260084489717023200595178133997157705758087889813909993654460153297752905564130038859116239345883574415556355962724243852147490175321501399256117972412727044952605614412367440533359729804569573782145087441898922792179409915466832589641495637401993454228207587845162734346241754366624241144240600690429469617189805641250762128547823758488389588282644822672286585057659452892467934640263086250912169884127120404488516250524451417147844295984431023419367693349869324367741149004564075038785401164466604104641705329100735554090318552003784867678218446407248330972020768463234811058381352987103250537388307739443319118324799972512201886012946483534583217025862487833527530020850592737385239775323135363486990931702285034814055805237049655308962027615144388170219326490946704651691572455376901133777596792272903293739411012191285482225937798130389614273751774036930958075988494284649709561633223932782670796791164054797356500507127790596375264235420973632321001955069337121088246136721301116415453993672323452956481706851766817071711206543838149869972238989161914730442701401876311118105869314049809867947317495128841999020091871697630434990957608001163338519451570923724180483670416575312292511856921885171847854751349280951244429180711974664127098221768198185272709327636765722059412215754858315055388314949365333075118543541241863554688868705622992029421318804422324057752657821729046228505843758052506385251008974503034992470560497524723711618416359114234302282116704270203847032688507199910000231623551276472261585809536254550511668176286790427850559975056933844391413226924520128824192635687516346652686028023479707830810509038906613854645099511807917185035642012093899855533798504835604423566677073331352798250654944850299100297076906327040426115373787288237398891642569383143143849588685760813807526135892043427242058877424916316958041242916465443478861589686832016714165523546664411381907862521658943664380774279064825281741933948303376246679470384141031718097356171222660439963612705596436490967285970280648321260732878688137326311727772816280619448047486408984292639793698410261301259596242860593931652697917399894769333276322056552189979665171821254280392360270792814368551700579852879600525908413818840403980719998007333868473406774889694638309000355216592129145153879298203770643081862623883009043499682925818216982223894544618789463037835721161048709448319945999338487438602100452021051664130251792442215957814344258609267824824752617646227247792770862846371112006132760813921479649975556063050919598092550526994715438597877919424275042352604594827041091546494928282721187782301814000431910635980712380550380287246191698836326931564145398054115706523714453344147553000913316566091316314980155229278837115121122847192227074528993002447285723390202685518210603260606430588028118621700133354974018008589835347902703945656223321983099788097793808220222447115538535774115501359170326060077402238142939899119063668510614983542317382566591568985252565117807393545721751811827153898417752046117985898498564972374996372621222109541513152861038111981221068951220372640835376394436015128271063330928719688510048915726642980761813955905719480661518785713946585371457667395048506074264732369304451709517233076726815491991594764967490041122738048531230913472065767655489147920927626259918855154452009373427483051114859130758572819140772712597172682015537116590115282787254402029516752862247213390301770024136779571510950318336586598349671723057838245597297886300931119624909396041246076667469304895867585139690792041285568425781641634884238984782171398663018221270670864131161881166663522507840785071319186031653096812214958581088917170870978357356757743756530798892289751691716549657646769002228711403174632619320795392659231876102368385245860709715178402191286816591049059668791903716808719204432066640710634226927976528991421007119636568297715449467467939202605135425954989306525426073279730047340892065125996227711293747216194332204663269699392697777527332567544920966874373516338579202235534407803492085065356538275729911866705623171614171413467993863760159750291899632128916803391656880334040237952419827315667307851331949735343471320128852468611395855385693236227909066396199140312832079964537916227674937307848368580117993468385792053503429101124723662523412306806856710822503147821997843554403322540235725079559059321116780172750928135922949389465425446452553135187257206683272746654215549027354301490198337017755796252384125005671656455423767973463425810773994555022950124157477464944457170984217840908268422193061609201139685490143046450942383752345681529132635594985126948196497094551694869860466817020028074088948955625213363235997192947224101136956330534566821704209433073082098899707064041958328872566312422911701578953469619282988120555042307152842420332750668240906011906772389286282264717277114092978649638049704268698885602504976408646084881161130817315366150557542785274964675511882405437275491508476314995996300247578081683927289225144073782420561482916740400932363621407661631063884735868694593036958353143702563691945927805694026467723275210533397332176887879257765016017381635618558865451055201307634494650280019400493847419815180994938807914122465517195298671367291964386959905805597956916300498165907690942703855397996018789588893721364197244214807746827401029418836413171092595481815087248466751377368004304550018629060555019404954811223877035496005235074651264588650063171600197149621742282369091938989594016260292145489039832727821716189293249745085264235100257515816944420372532369577387462223164608879682383556249719576809111181064362030764032228401405752279950722625906839276178307248000866064905246815219561558624084548976234307429641471261176823518525676598192537962951206469566256431337245470762675833465671471311493173399521369480555703127888186563818278020899109042717845477354085506592176993040156484923624754321802070000154244898724641005956744532614691962041555251308754731347180416316381816363803745355299636524140737568980483887534180447069591805365215825904663807888653428210935014283361036633264002921065352484072744283150032788682389779945879567962999285718859105674627679806142983042785568583768497122028045290156709653357609760560610433596860055205603883960930851229636644329140425834907319773185313923983114928123073286368943888612098098447130893649688068022991429191304633361892099197096483170751650546532956490987825774278850907247383692994354407727690287524684658093988812952386156460941744065287341231750428118258018917780769530301797494654551127270166443706313792804415571076104028580564519888665487953928860501805556674025676196194946692950706364453876911854966548127860142832353808420843774961856057974155686718505836890046939687301126314930227144199449303680538100155425468711858792172968566860889875133718390885891504030936549805384644775228547839366954251253553120607881726080384710631395892291749933653180318223120779463973975010208874449512575689097293667942764313064996386665345707724811809092341941534215978099081672905981476386077551871595753323662127618001519742146527563037093706380757205373024769368386435235674959154548703859781351980348326534892146951704486772385778014458198136732024889811388269747821080522031430586847774504550645901305218708607685539794369680662830230397065927359918861648412053212007654281697435729024095516093270149736023777659530734354257369636297694972888760080059168597411318657126677025510734866212953777343742125261715896618891385881155229550280916082687378163748770767093940936005355486677153828129743844363347913989735567269099906319253910581538440077046112233279267557868837164079237408276977174091000874306692809824910777184694232565619031614692734153410818922523950825913491942631753418106964300932020741096419790750253534795669913107997990012662149214517378383137001171918361711877989118668378086750776488505406635682451618396701764752285092801365603099964811431579312441105620799186412275997194330725323264978743888546236344413757703759438635212525066279477491235426638581272484359608319960745433347355110658358303956849515631037504274230050079027368068234025575419381938241770370406632988926546811480152114136874650809306743665663152861952166317393809061975699387532476519002318226978205469901500639932322256535844270146628093038234385105114860032756513402434642167989544060502531460494806122573207605650071033478395831460591723242620654532901638998559426776713707803805206593792131161168125886272965627572049122117832812277838989741642134584063190134021428081551942065132176576529787950561715090098225858932230068185750406301018360387037250301403170060271958326412391673844243122873959131965907292314259328652123225980332383040099464613125115186900081404982237373141988216197391302004830837844569622903369351771600166231522690888494749084097140386188381436100906726487298226602101838936259873028508429870145672269476453011032862516714301382664764943195366333277606402019996326338608458136513733781788683851192186233042475927234052280390668304858370190462605160275983475499241362771785270387557382615736004778688319840621101920155985424731852835708846368030805488649298433519927395043015495394759763917569848405238600265313157725920550527503965698223143968946504978625835551085359329132834827352314152837652023388257129087972280824546696305785301706408307732010625641917195653081487067098724653802422662359549900674034920105278190049063589450912531425985779288826015555389159929935806557029997777890012181712275486465532694463748864164482580510937954775070116657097131162848881773956070251181485986015754780107923343138825420181617972902002032546630938642845358624112644648636122563047613292783884749857878511819664708707258908717937590495194883226479474460982223272740105906973397822585640652548332109992530562689338851896361803078700717191884876897834021268132380892122373024995588354985898532823795566917899249989308432645609560424367259904159244993137283068270277114261060612865122692511353443535084224457992520640147952544035241384098017940101017657017851453945320605442374034241784482090343977390202859157101170221597342986806710097372969270932700972594134540725834913547267532470024182286226453460490845711675823647787324807414230963404107981686590852104779408551930512953358235755177198643874183169411540943002791992816038301618462395399649599306794714986882065176737331172268821214796005611951881083402582971375230010563937214020394368962980883137821280119673845089534500063716138079836701569782950755237017514053125121364454022633939987944520891182743757829129862391147361040395596066222594064551883753523980854921450311650562268741937372394593269464534107409433376219476881375285879454367383168127781359631188151590254642699704668126074290321314869062972148954300305810983509084034441638643673009064545676571433709023407772360161220143391876820251612210522596656718993619834231227259469015148743506903878328776713322536652346714173143254941159782388427093440069984464046513776193612939818902535208668789340471067778394627961247091080266434985669948797692942162205321951593194181466233770746419569907086425988706308169505346640658646279579739693890387796261856895607297379109899853937353045789818689685697475387409954004360877676951923173850069186175777170662889476425831203321950927499255238773941694472119319590336936446926649210881014919708122275909694579360973990196910061075271080485380431559900087632410549884256115104950268618179097858931635049400138534415455768872987149320037969078404724195756953660436784713949645436431377732407521091592507294559379278186626603125853140035083635247437567729236092200145404474865336807367804900221670196770183316983285574071686843103688529736939136051413018884517732261589609183259704429203553676836202423340003777489938883376982304671448769704335442137535169569204382657721096623377732018476789515847024600452170414827238768474549969053409980219820171138851599880543211233627214497023083647566640174113216906622470166419024955048752929866995894977378212720088550004315403161897298018489222492136293035588774710626288564905451554151002100519438312540637495865117969792633018103346574118455386181163148628963669174674979204515825300590751797869657766681956166219788633473744453547003294842468593677704164468851256131246811999135346654259463275114038218600277586601396057698649746496876139271954514494842155507610954456829458961005166113442025054278946220198869166365633209701249853287826642999416519302112134190454119254776591851346548684570334743533872461210355311617781972590777709430917902213254821139108462814541188256354104597495647996300436420566923801062463608898996785239925517007440529415698196377329586743488848621482690080410167866524200660818537199254685651338114742056387433398563842708483659973525370428002253519888018294536864106251377930676064003161409563394877865457028397645724328260550650064788234939911688892898078583353350809278426735627892302952610263609989002047220480379233003553689584330548153755881852912636477363539188858211937086721117819309476751563900372010488622888864370831098609223275391504228656581299522756362035269094246515546358535317867428716627200900867017019963283056086966414900918726762823716481949292698636362335532896294816252324003260970233791023992633483730147913627459585039203678130106610376851526087952911800410927296293403272135359760229227153948617169603852701363305436838586343310371715709383492133906797538139263611085252968646080909789690396443892251873526341309242887681627951724686224350930595486596127937157391720541975784259220149006428338502831948258941580440813925866254467088581512492488052737441386616054577937332791775952959921263836256858904757589242312683824623829432131378969855537446097501550619940350139697866394817525554180909902311228603943945950373363204283483266762774852349167260967791609419922728401612000647036467417172728920597935833750141218433395705164023459378005444324847368987768451239328814181139867618491161741209909748591596262730026340301411582473759476447654971244911855282894663045096089129277507341589646839054591854791097561724325856829071029086128423576241978643969198152754507183113506983123891787268795318667512247052752123811733060592835666713880088911731314619502735934709825884103215495634630446313045793119633385767229628555869498261938744564988360257227745875861961736890012250918260763547853362456426182791644435562246371404510563574455582626761957112876291520177517597831149005496230507354159269199301006860273814207540329181297996975150019253785509592347865506786099454743017164292848325656881461285903919501752628320026598879727941083218203995573280418987362871104911887837669321077282949296510511655475869449996738277524835276375888122553532264174056296126592745670801075103965058414183124797072200048670429695580061446676347573463128004152857848296348085694296828464797258567225094555939046319139037690706435722883351896804720886290613443798159668269866123737963266331356230945310497283974801000962494406540031493327212157727803380175803680093983780171169439065814685486392114698796297510543299682910910832842959861001989397254108787107921579052773003028543632740214396111143646234437121365954501972815910041791591588951740846963122438756085336879020913398399270992009027958695185898145154029385403720251764680381522514601233856275783114170382448323115829907212974069562828707623538079436411624823696437628383318043866577581376698469268119182754888727175206601360800486888420614979452257424530371515723830600244324047705810343940567643977723810312269932953451824392391162680813019345680667343461445401962646542988535291428875174877488291456366138438151750495858565559914788770440247981912497092544713512256109871233311563078237211627743935901698559571052704560302245802744743564306610384053500333689546268501885765469573216845975809520576681018892565250231296895897064356385688848180190334863101610170514756744048504258516463759299009109383515391332401597439698426130072927003519008367120520287446035259212229799487664301405010385074205548145181372716584894404284323690560830876982226439419386351620330717524512210016468839911752602464750008658964844109314135292595776386727483730070752757229097520386412023374692162992078436665021570500382615466536764852672306469695937686613512974454479570127731262010468544197337564110471369964355229508292491608268609396955242359853897254353715116795514110712559581848007462799237458182520428575431765553007103412303227216304755227024859736927642519968365075392919049327002899225047949406432960715827130693457846132064515631328867808953814966295578848108265327290726068612402561133596740580834448620061475541006376576125828009992361328003465087737841593095692548073542989557042675492661981601505942626154945969522575358886097351190181236425449250014987575797207214913618550735547676068790025159675766760762860030575931512194535642319061582806881501459208070102715788207403097690862998169991683047500110646090647120884227032635539445194697767814409697079390479923246088210722149049834526627340285901349558750852945098170659078976088430207245752974050059221518049239061786313770703088464386248631380257569866651755942557379747197412200290469298977852954749771817343202677796372357603308319739836252901423798451217680342144694978915018987831346787412122001595154243977813791755949797288973821882352528804928407245384745024329539933794853933696107079269383333714595159264254691290026008909407577621738776186479052703980363178637624419170175741363214561046026601029975371214693191440712290294978341664358539212210488779356544292629202566928043050708037065862751398928066743085477097075444913283101771739113186410529653953626308833234328722335851979617329461498633845644566328654583866114385702719764888802071818166608217368171145419872598111296661873788353631159345763647534201742297471425421764516770774058721552466063961875360874814807916825545432207307637686732838077431473567288274324018970495776595597824759724933079045259153740141961351166211314554857449161987209912663789676457335443712013849802637896565405421877347297405662967867935962092975292304353178200376694469158670506533624205949623804491693298679452041107993322800453053864065396774286863524429087029679834991677758636956283380865668625394437142256893081166396112142119941045441995000934017996764051403690110393337615778985654184603391256529817168335905652240382813972759895421836986178862965077634375464551199812139874965164888635303218742798352416408515075184123400848674434512619327395875868888532651295998975160134027364364543684838864025270805177143302210626942226409707002895063208584547888338047835224007981552763123131772179403297324669206928780795842537559658216572709423531274793900292869920175819463308269225740266441705668243538152981553030476265165880454369652462298866735314216527573180132505231953007694739720867034454208424031236202993166083719767908481722518763765205537883174918946081066664210671354714084912083454849995595125565258047362259348157766678964071382883075721591077402178349730620162944437775795488698000909989387820622956484552550459496998714558867143117146760801792095114103558919481633059049829655899644794090788865297369642307184914649790540792778449678340632000828138091278471771323984566624068699981499924664438477172859630805814281671229169154003414400431625862057793999439036231213132610155599162738147187930181207227519391031849640806839336408366952856663474319851065224168986820799579557991894904691508762307266452776587233868102033407502765750971679135177559820100147067326968440686232372229194377761494446629390468698370394556990861255413081610362632196826425367663817042350653246557457618657285225477656901081910825649655118076980908638672210129008381718364356783859889523331288183952584975635798273432862656605892137284759640979991701950226041432498092150052528534446009390495145361027615774765940709443026997282669408344146213228432402720411375972645118249393830922546039838790943623183779370675099246103506677415099377599418389233216995432160521112804594393757162275251045353593906168159230572277267855605412495650291679204108366896341062357606853305685696897628783222820698696862464869961270666186605505135226982854410711538906409591637469316493062646098993181119353645072680209071724422013625668698941493906951166383301527674495019325611120574170825101169527333381326415660338791121695258648684246482191605755414196334448920525436976001695626039265190161121277714690730367014375824597434630031494633305890659674955328283112268278960001955140770335603752974012092440271471758954563933911599719097906383404806289281350574767464782641469336552589202829583098595009565520647178624894802208881351415249412946854430332375577228452638101086275401489504563990496393944114691830708724322363280652734573913759272005032548463587940178660914047057846050981030979010417190660876667504944516832713080894860750264275237620139978700580361680710558701849205831931794811729406619855801063381827354543277194103862952008510065466637683635375887033018869364223260934538110258666107858093473921995546573461847370393001440062791699957045825733219068354821202470952046081539921762917550652137940284402756970384143891206096572498686212172370167185318461387666925876340390270016983919290963140541787437552800817810514918886892176050096347223353394269571636523101940325619960280386840129188937586457429651280145452476031567375422194920001924310449173182551690683755662563627727468127905643480958523028864829942106529384523072072567723654720899280004958798033506570192902335167772471910394073957938418556302274911430871925140068680564588915697061155024896114046691165528876431461605644230638705636035340382410920462951085390343454218487743690646986066673257723329616360514595466640644470589893131644140429623562114119956667673154359309734060836126655593020952369046908425985411819071532893593907744094984269689645314470570384822864451135091578133571004397589620345524335567031935646356229017022133698563902208773775826999528200894748067742437873308558338973796956598661877872507881323954601553244813300478505518201794897998528090248745939492385982283447309971623342384581102940054837915682864856234109456061381776594991901489025319587852346136792855891974911931711488477959123069416711299359063553508950680409138499654558726019992254743384751640576411606188706040878099906159676939578228123935273452844917615795014077675727267241006043638608071241156264980729600588954183381203774613052453366339598179875090180998082899098155934442334304603397308994995716410867559101215623268761254222140448095297287762327914481814002133577153757500261378727311776413731334523875361387303924664277368153403903107404622866313288420340849001734332072692765543231479142923468298199961429678489627963883814669199482837994742041794118577854458163618766819700896052016478121173140968929021768939129944938747749783235718719820551283886343571521097707018975919814635415370077067292542649223797537526964624409503964352137203584975965938263750910583227107816061832341740163457290361598103482784196800340559081419474700038612566131656784647067473204580141370893838724929608239994064345593123742467263952915047654285656097702715677916186230067897078901273955141905988410158646168414346859683270014510747789553483256989029316678675055786947250466143663155559758446476546203864535939915259703096617891610398397240131273948704343175718480957753128132916039373328495894395788588826153058259307867885588350285931699495692214783316084724989661940825574989959074184416382120562752300076630090588024883771263843341339432753140209993755887956745521448747159989518741158026117657755998514720922294219218320107718049657671941971405786266577616308670652698962064003743206968881530167572237883878627851373653997391152519690428765634320686124368548354638683714740934375533346559388367224456630346589342879605937116282870166846118870952212292166232341933281296708277134549142594182694850671408603052727374361272173655842455350421980941247778180630958008471717280649040799199378597655182447864355383473167340762254970805307540510010118584726335187658510304491960093992393441031252415609805318631161321100646526782026549156028887258525984962129975979857283325344350940023822352506899660134133097116223122460599838717971255808421837009156468579735864417321416124165886747146379802585899907812944359795892719156913201506815375144226315256475193693324646569843529351263261697716624675810183609386865368696926919430540130088206816287802300813970264561325056163656722993304405396471828671695188049223034899234324923865239964085491914168393029850214574165189846129565416578305882157944290131200967532358847194021801384602089390912073655778276182949484575408611224142463106868355735077983186397776922223243540925437356235509150431322550022413798293050144882508175796739061813769822405711990575132436067399207937627470452068763898653893600692872799274684295677019572897319350770952420300875816607537534319054102578363056522456529062851451469699813408744924700053825405506254587375780104562361140688981890489653875040467316834677774695155971091453646013884656147386179439853341445654546968464267224583829539637512485218105576641158223102348574712908840670148527803405923769023138976742789913047982845191404295773486417786700268742324039377793141341406837857029684080774363868079636969977921419442707458899431918722936247069623655530037457395563188435881282596642062312032168606047331320607183423278399411274700108889942575917467482367895496753618455134815522090818266225388511847345039508675962148309178227319060921635056968424173645553573379943066533575250681872165186361949023793157790565237427538138311256917130304270578130662706132254817906955816659388224488202287460697706871668578630297372104018276052431018096020724768254659362066490893933154944374154384934638767146627129430365378516821290108884696387225799947495635458535624548203595331431167159859323816637303746035243891840396037070710618392916255278767078441900989551145587466245412897347179076696377980895422826977643008660539445377432427186224100109310087329236304724944593737586405593789637694753543526703118557824679501751943586542445807162839469541583741756630612060775695288830154724647539619342820488867056339454819438821429387518285337096858595343813547239499751449228648421781280110297323602345540868230707993597026778003955511046641332511202639603314649650411099656410215231286436935613676328295277697429270178279043955429375345067675172641954347839101353476181659882589212415157241500508992719158809893459148258414764484698746323322157130632478434368681303364439241059653630647062011445579206087942276894119453901388411018691380031019945027633403184470084099476914258840570561463902044207468176260757680652561539562071306160650475245192050767983368772031763639057737186434131859721158013913350904713381373494236044878855679999081858290226470242233055885975433598829646024944040338333325607719079123870363157513544890408345751035283861565659470035995993681951690546860560592797677447088101774633981464923279009139394241293749713054715193026596904493895667764033050678841441222455438852705504846260670686478403224455742315474466967872291249560895512856117816804554640008580853478280304951945784026654511647294574607260532004211270435283323430224460386458560301400977005700779059578406433723941407502632818746689667691532846309469609469821735839939176462663594266539704259478142543130556927201886244763147147051414004809472710115970564775303195770019853805579547248776636841325905411751491519100337417377017468522157279805839838733597247930141942398713567435866893406931265050519289363041799239223684402202021678369899040301397329191960397896351234367301130580662478997249404562693019819911275669033672670386771986112059031082985139168462405988400014767283944352739429230046000252435373841779936225138645667481990307285586129691379904810736073561816577869845786327343365228002581140111923613514298959627215369363306463375348509438084575120937782434156407012567645547431658347065376258547288551361398691047811402001172384244017819166999212401622300954964776010516375966552321460791947890097141783325443642566714003385394640763485063408648601693071289203816568362185571526732177912803520584199589083817187509213139768109959497671484593769507467798009017510467262941068147641171951536843401924399059341090330902144433675881998986370686424327431426164576818616124222534047610665458857223935347619671521547501773244985789118266707235642404192548399372153691420426931264186698929740261283462580900947123516739917412771965273718661823608680940041139590063395862751900495733155768182364881806877778596240120064901378241927459814685728049510507678067896552019439593307860154826364114742124374255052230950714464582755568559571401141315013164302714635985508970690516440070301930004459112158966624608245160250503812819006137037402075771207988360192326001546506237540578427360997445512172563382191583057726866882835943857317712882228161596289445925234574574930221018991031834359954750766049020228745084358217815014418240934895354727295483104420943193726079766267639623353562799034695997996226986587029376756496959252271544594388465948345542470956036249678670419295869601435260955493895468676269585001337925507069214642963524585954286928714968109151503855974165779170686715764999612712803632302332680512583473136472427922999167042243085946720802062384663156054162484447356487117188445567272134633651850589392142472911322948617512751322493456548804068972253517620325625184128431248480351980528521591775812138266375228452804457682136235733296882404729547387096720307773061960257182414451303978731642779781805643969018438092682547251602581587426794903331917489733076084865821587099158953325360583705779906885644512837288549753730656634697917139351303425261866226376629118653777446631387633115274071638747137111982823502479846340306515531273751472364258458118846216940461465857549238004463297847751786082119623460592384797147412540321400735956945157614789130646465321484197840490543207441815841850527059555910048010280736520354279160237595190792262264826704236302151426604914065252038631002279345618478213188517508215844363217812601982664517162903833200412994840593553358447331289200572992882540069467001823549488213703334681788600379323396380217398234349999702043281956662804181758830616931142795707611243353107490611497420680330172012342291239175833967581018643282886495554581690360933142111892030153415044185531422125041835640492358910412155708901025409360491808916483746830632262482035139378893359615121755002640158431532835852881120558354361171424776788589177350401331208833583098394544826743748388590070602972461767484471027707283580574102828406271201825334423376639454826878409243054042920217336006191936960221370918639875143874220074150579287584972970971994821338263775701307433876337132371820417216954391934755050101658359479179731852667051425619009553769180382381938878838497453189161447581727417573712651884189674160046420004691816879252599031508577562074614678010907726127921507322633597007782523305736430729435141973649941916073787460861519825625437757621449409537405799410263696071426537690239959698516008372712487103411232780514901723083746970231469951455960291740123586644159502221460088883742094235540283943085925244898853375737109228820453595005986833122332455756756663526393485048726110275039921522474714799663474128911665663089936932214035022882551471691659895812676469930339158136120379822645603021016715582305850677478640194211644722537520333429966840228947598573940519920604449931543577723828446446630343631202583253123065490135386111332059113614887069748532430816036019401290650734010213095159310680266699594349673467342935101354770071579557125490825231588568270958117797572148823045205176663837008688835170522121951232930878876649415103494988740680981307297399662116642025090160233061038276389466417049961596700353554538693170734456333951406680325569734318143507263420934647333959811839123167487176718924144444259672344623326664781756871168394761062774352456197337273491261505450897019128934374001956315534039374553426824972735134742951202801010876181715668693921380721174479182750719773291930488818276350172838483387222362784159573559470993840931419653579285176880361404990916699610937344008561871471412080585932091928786073094244635102865260593559471471282049068867965039452027579631141728247399105055573877382043777555914369576044124938228713857583658869818469337997845665360265688083111719278661253847245410180151064038365795588948737311604147325498073855737487545508924244277176680008254508398085283094380569511866762728978933767677164263186706395829218429152709944049082057745488465792682588252512127475510160701998482786275748236754785480524902853249542046113045655809543022613029518575515909177741982580020817515201355269841381573852661662564573436495988130272780886396241919547313522312321521718604612659030382180886280838153236557660814142474125489293491262082155751632294928275946347482552080446477555432487145041295888904083793424474901857637311581442077295821007174629223526039059263764309480998833077122109345074232458999580108481583620413781946289278315109601992574551063813713950498781230487043709026709265280810585894530708244125471412169147705596130489763536294675541508068940865132119841980112981775186511962909089803695746802755750054624890714285840303981729396314219837958047118395212138086785248845477396842593567863583364612157537086146135434963707718584668166784443126757049502373328473406934835243502567087448266024207205111520089633698714190419223345049538143978187204720444315466350914557533407477079586104646206532699868783358691919974170611551535882844826011625114577349316275644768791832895745838576339690188982942653402940203557417340574929104776504656296695232627279739425269034200275010015177942253104159328761476846402281081819923846181282263639910498793456559595808880878916859604600757565585919366316271815510419117502718881332419744709593379482654754326678232698212616670407844714733081317654291732339154368621714224399948733262809344859137053414060596186775681466832718701993924540694376781331495351933381176415328380742845673740739751864402802099953001439983395523420510908505465490608583699722211836003818170751427436293176891471942705468694833531586976336264968477078664851496167648890684966062945098498001259693537591881004332914612544656841970473545915016882125314709154851120083078870981801294757442763764279471060398384316183275918651648574275736520980692652048535075970335074514188527381485989332662049123110045454415972402183430663881623916908532475347967123186046668335410458840654687523570883492817543150752405128103655556430895877117123482616161990949286497172947128161035156654674355777309842549476637051157045004282385189381399176635350489215157699050105658451756430052318565973814721218844143128900901065291974466464016801662177074015969127573959848371971494387349042937659329764369506366479306846530021112223584208081224699384676622128584931895013525669128583750201743686394766314816136035423758767085427350830340699825580052033476764219267056317459299341106211695121946142149749744976965779214908462412224250809624629095697222243581297974642738856222596323526598397776101410460635705523885991168605427026772982447605291078017493223842341532452920541517078645458144588224745398661514559181292654418074468521403425617721708325777670754984840146598930601677482497497552934100622942141658098218929023516787484673118611149422505354353260723325363145343641729016242244737190356345294562438876024400985169094537342010005627870473190126927909523683725438030893642591079922842919093188950699273631079483996880200943747496208621179859168634559111096038726343448394664269219763272578831149992273035787955087048250339780902974849598988723633914851625768142860649781334695542710842278034764073120171669977997625795120077587124797799416837776856934395855357287299517111023305898516965725701765033799767907216230804863198798272653189127252275523032250042683908576473459808233330391418488211465126210228619867723234461375851696774805775366451210145020781670149367796558617776219043505609157619415271176373539347442975032624892380065376643878471394370945396625647463144076763765142488790180422712355260383960815322661637170361203943424899642336674626428502457329847275290641011469253582468263302778640887232773372707217730005434526341421485098491822939091811668093759878785389391478917459517737960671604796142305436560263681600721079254213889503019616690670070865062801266324163660021881891387131377275993842637739301756935464519234068099466923128935665694465351638679347571004919653700960402793475162876251353563341098046798978366489784453198446508492044613007847274138200350348207756200833592723272099217297922100952179841550432351177410578624530854346910626365710633336748470075982812551374568035584461340032968998117680655753096008389516175940265401996006351130534864084158156978814544003156071070769659493282240650664969450569769356874532802091599932329456583018387855758805714357684390407470232012219450392510188761995296269491261271724174714423455997254181955765369481015390184766150453288548975619638209670984638897103817111640412323001990120078254465611315693496198687210839858899451304524606861510840153583817355175031337860235733830663819595935976701594309459470365799298901157772526172297493929073297191366396119362349305424535292234412383618198260706209351543667690284951239371680404839190772986752093947490823117188280111889595596263085431013273359805332431177217719130213054536874776878852133493633197789895181537854221750741227632808042181336118813852420942484304952382163723066811287999195198269976628399694957740586753315966582621575266414338872813490240489266754950726422377107426162995887516243707812606062516504750590356912747145492564430153146423465830482065661288659754468489646268105041864345461793014489529561267225735358811172079252508270130564148744384205198410365079983401695839789106451016902867081452508884860808359475755161920775380061542716901947666722611750951950723458843045960509879555446832760302096990991468653749041958254364233700565954587878933363685711390437764541200390810593536430471418803023581728645311571904596774262890685780631353207581811022622548914746530777492840581782764107285898666038059564126553687713914324596160457364625121713060591328268710804293257539211097515766667962993071185783371562019598637973974993276000742785372675932659912367608740224962177814619358103457092911207734924224345585246844252438367091265373508862195867059729359563268468646920283550276074418733733313556018870089017134077258050909747789407858984093211503655297721764023178578487512646156394385246032301513099448561779811277841570305298975093581609237242573500160248533806002762050975057551554982747023262409349217654802533192717810220125319993728161858027211277539148726486196018415291641501287453506105581387239258510331970345588039442590051748358905932689418708541024833574536987711545557039021179961732747588989405766703632759244258487411736488139413383250727950009141088669213792524427765358587803598566980289549930709184129797662269025122195730069440958458379200041023206830576280569270021811916208223366084893668242978469495572871581629925368827198662084416764889000391070837853233165999921431464735929872151969380607512511013442570344092591113970233027861240366045899908545092755940539912422861562883990564416194291022730736365516710883967425325028714426888390295919946284674570243257280916938580782821368644935901818225431310253408603719175079381777080094590337895463641480420349501052821024594540807917700084956795973959828060244117764002389495547766663755951184673770291923597617358597592794721083700031458242761171645331282600927674787485368464060931451663987224214248258422249318704894216196720328552851467643321461938782708000742034043076560684134257712034452635759627580922035088297565320432821118695909449087257626295785668432964653470823158023615532029141306683053512235985513387504920382600530688973206453659786423181839855780876940477452247448493038875820153908293135085094238167177467829793364583930588378662614959650054735132096966708778154614203152062661595309441561419322664062814567333981758760872505056224381172012993007396887617114686643673099958014885601727302173728663319022435703526965091223317334828519109864526963066959318966631445376133692885711977690606429135781457990530738751572228298312088246175345419000818532121050941285678747508150745987615046615248053952221626460186635919113941285294525493770297111777750762108887036409190040569039008454136809994494404282477386405699411104740369044759139531886709171612772844912403362318580184538880813866770248233730158838070713857771149955037450635809325624108196868115067821621915404641219099042412116215577452398077831940529107895224021722798473460049375020462631397862164908902809830280523797556050611095408205906690585376284578703699997291663721357319284355358765553749625643831240777282400686840529606172928597005029051542516038308339756477292873889511099395080647348168911819108104679416308384391108626053542273933323768584755346787051649146884006563373894145463374255367856872742824548346879254026512514140308426574616301384911613623915381167601526810297179835967132434678401399711029765455178495530798641415800519175003329841312484443578274699532586995774241210960561778972243384448576687591720934106641426828098981200821438495916980626616827899939436626922686294205267591165533089192370962661673660456024898838519153306406635495911770322664525884622322569689557277966008753842746671477870369103861493358907851732655345230199788562704914968997779732024954705407804388615728062989958295976236342816840147456140710250650825784577969037657324189009483860000014888090486322979349698318804487904738557597941471861960437707223705273635956354632443146223945882775842681242398581370623604393507692005196041427558500652692155114907254401966282870608823361611863327056329460130689985801673017419436407793011790853774268574007140029265557907805096450980467712366628062404109288794644495807073017076935695005783829091437935044807395322835030048265565189297745714501430259011249766503926932711009184298927986296104870908910742591454076838601849345637014405438773933357611630095381983907266253500165977872571400805535498934518780711014509337816463147675033897228740730248910141807896182131054994513672926708615381115670304528383762906508863722648078258282942451123142938573083955060457779701072368547325241941390523348346806037163246554966464007190706335255934595619058522240565791947239756217694058691127430124196817576813811028453349503523365509221291797934803468963866259527874378196631272362617390377248177431998273799834089030519470540629387671677547050361229199398736239676789168499274373381905925181804712543513220819310310044765586302065684570901498485143314458088947475800670320846276866690488930612824766070593573277256763535171089155213000361505545313710679379543414613392810115699490490817855724885463794258034740239460799439824489301849122694565987341055050630272596658360855952700852262431902897802914699030716148792937638716479945721085708176369417329957638031655133735479820797383786803179280336827307097942795283621193618185404114244709956419717753792445771305463413386816575374141816780747066521422640915523299681669689697752884166261981586674130338686811753090554078746963893923963815827042405998119878872161226619354194461501002147073663409953296616521776335788862678198153940007637236883115707049202745319804566151976976604838247838829152069156538226968760869415427582201866311637113916132066683618359591615719444628484225490906529529744951637608269563502205159945056308181795768626694098966144299109834647665587827354105280020722416351323210213051956040401483521725264394067595124574020607074298414427940372966016329092305333888060645752636823062141891594788027030611432880751169320691894498911082553002058268076631240103356126792398199652117627253247086834932759114665165591161847545810846102554388779697112395747066928971805606770247820132018782503896601659603551407115272326655653452316895425129022951598147561331967202939659403935209762806506717026573628795849574013808103244855779761437907728728509858288707138960370478342962353895213288087516619739608118924878786813752795040728307704482163570416496650229411920543251821241697580915828317599233551855228283965339169227336354430488362018189618436660323264485152704974056046027087010435124504963787291995583043313585099766880224186529275091621526188142029795822429339443081775919774753770392769881697229276078272979917182467503064755257234728201717088178614632473088168167768921939320333387747777202376509122376175412294119587344545854853848781340331702736962417612525347527250115684991536050679079011877888444847770638321151093390755004573046809840223856138263356563009596670946386702967342895145044003634603255623495213646898153870703112522613446655049629723607682667957014336449245057881115738987849787033501285401320379715509619358188530887510789336557080849894301118882976402800056380748713841970323386760278557642305509774776574704288846091171910286792107121913069682558430719060277243744636052477972671527144659752765378539548323572578231964902478029300004038688103687574592629270462858633310264752331872750483848930668648314102437895644941665724663921684775863588705263782395249116798714053573180272221083923332793306959241040345418606441171231056176621413221788271703320001272243197618298074070829355792947942198023101090172667457953657959219175159439610969139718232601074570043878245046337913809369705450181195897210004585550696500887839016661775162981753715233013887262382223278797565116214332514037799076593231480778194722999229768660724751553136222393326422875133447958612882160589175139091583404670882837410562370451173292164636686546515171236704956438565234336809138480029678245831421001379028047864619704499489024537306181940152180064751047660045244985802051963336274587306505544921567392482641204052845593836856363309504359098678169756409234678436655919500850738161621771400391017833125178432143346377656460507998500017859595048955527376580218515040146607023272070498272356361256015497203532439266556724361847980816502357257141579294667860980920255811302100791041837070056089693314410547060644938191870443287782435658194099605999128415328909402895418400502764791648678179502608547368253505427773393047685733735098313631861580937212006932398605070934328903948481656320571417154952805934189707989307110593998067571542171634866492963343699406850027565464228854480942454155394366554529580839319841478914251654185399078597784425475695721245195811351672840054392143239638851234913612721432102655660106095870824821564700182112308474550106288046314325347630107620780380501461027732096385351856838941061949585082788920280074161706778792013922225624553093908862618629341219547453950828972826647568907309968332958372728751714244086542335630488186340751383570882223192612365049429481848365948284022154270212508962834909910754764001424713954792991225251741258438848929368485167862601080555760106711439419718791422497130272510445946986780458492177061219001754278811510980878338421254971992420436798597002738530565564168152878374765235114980021646530035423861668214475010572481485674962834341917382325157655423513539443233285440019515326519116222552990698982884711998549184730188403356395376534355187354323431552407373551581537930350219550570496081773606907975262761862073984112361342112115687840803823317755554489653916156216825014487531361710844149893418185140552124462615949092226323160826348747291295850950928229012157709055387374791259820164146838716520233491632455319620974202250855738398291133257472219107659556007340882814699886815531694347258214141038091160346138389485376616786033399111432944824448501837494709211351771684246468852902851191862410622079534486906013827067579921429228729122696692748746847059865129597023743459472159189794145776660998274881801795719323898922697146814339793573878484710424578119857013257447786368291497506782961585594374684075840625308317766619878608155311180515266443679469221635887548420593885546918728408727442612990063678359560374836119607988833737561731103033753230036501219545151343322210158387965810850108338057378411104592490877095486534040996810154029895148226611871018035758024027820485015366032024737899025803002180584700905749357264486131612129799069026086628794311492352529971310395370583576845543184478176734147253244237062404268979873763441881308056786959911506691152061182357345204860088557644181963644828216308305935770035634221977484208075828972064402566523630978692193669091820341790177416349893362217932776318789914987283741344166459155967955238607673525241227767720974605899357088277398971171452044793319873982451812141225359221823161677128504709006638001182797544978698754430093445568939238236305249257455006158511356923166525072509618283026049107360130075852971935181180460716460998102871772243713380352100977846103421772801459321296185528139316203967505155257568301186410601116823078745643258855657299510123945863809371025878154476358967863253797336157797492617148057975434865798367295928008354840164662610515815764883458852170718271004016803867721781554334596006102033059662153092657736757267939857475258009428506632297029002873878089156238375729930327794083423161712912609392934419953387765079222260817107848424005049016645142232257313411969571387746644086519283975556742152035506101404880174926875044440028964630083747342086405329794776105960055672583877703983252337008722319874348181695127865535478558849123934542059747779386586721468216206165762513129711924662284015009768018233983524728420956178083375838567659734453040398599075509704671117901068573204854125509623125063901328346605849763418151410308443174247893675968759054249161953955223342457551510073228795219432942035860229757124445753144772938237097930733534157788602206464092243230353081749385856177977564007807755772899007168500934611594315551822660480199264443257889236219094807260441360894742764396706607377049880883847071657862801770803998756945023487042431578888002084943249201385765534168472907533424570260939383418054755260121979775346506009009448752310800749986100856654482610762800212563088159714963637094481965294599569915177113815662389053000890313188790807588180233706752870977493806309876915575593415230702595088427214381174459332075837277715000836235400178727189937138879022277593663354768423254413653326092567520795710034714988342121254323117305571047122252359683852731256509413300639493046723891784470998971152574938282039579138544370414111985333664740860338062371327115047778429406987302271174396280835647164427242749005201363334456034135674298728520939991465073975883818506755685731659392090789622249088965694151465964864689684869891247088657763254307828768963117060098718189506568928819292467284219292791522087808728767890396710695456198195619884994536323273379219991860622828836784630201482207844025679162379887885516983975944861076711580785723525722047469795875454380686392320207004191022812126535866879542593544641744484158907838844728557146382640134970995926031083862531746264297319198835022775962183717234493366752096476664273149777303593118133113869981942834229702793731235086323292286619248335346178397887998863438784182898406092765109574119019733938519198105675279681209111971563443726136030829552130226950897286602956827253597212461300450558190603442420671625495062550467785950572670744677457857432705123421468263845680648053515295186396487888528243643905338528921798045165555549398192076799749750754331499430866136140116592132265521384509690040249167524674097784956961251839612894496865517662589835432168245878562905601002665216162908547944712159094659771434472690120854011225740183781240865918478705825459956227474228985203826225254883479647191315065085707249357989009650051517561475224431795714824029497386278813865395531855972489483012320959942157786769090830020412651345271129782047153759485597742354660069385872581223507854536167292868588325154234965278429984924467508962018471587455175345778427084275082114454978080489429374633496835389839757710372970612524767976976421916187685014411007569163121866813761200502157309766348165715985068725024358795011347740125477403431640575630920423438430131017563132809826245666065626798048831439801557374430392006517245211471485785086301451542605666653214149043661722932994809364745367567209659587377621621497121533421673220073679346910419706612184691663866305628585432601455316799543312925275200165196873916937328611951133719184102228284756725278051823115101503582370032907780310423053684157777960193080390604096513573517006735338305274208942275609082288724522975571154747226845197578592103188603703380004913542632690634573972677123147893523004531677048885998995231098626876008128281766499385160173666228474218604274964344060653007709622838370167662786263440791666693864512805357653196357790952010976898974200682730106818575867467774605431909079871105597949674571421392695546598172675897822556126516249078138191592494441944056305339561923835696861132688668775305605416457998877888468750471571965390643801985409651183987167921849775726998798841459937059854152687599568287960772509791089118160504475858979026948808706624202217975406905448127151009148192721629007086119657909150535471728326315517008177393453977084079883140429488246021723120434420196275737673810572079572790598718457445760175811907401388599338793688934429079355115973836957914244217699443627117724756015384953531254948246282174006648550667616619049287824978701878641326423042225665856645744271521235668939747377568338421399944588742754800648770194940603450212119119096860869019987218167945222019701485847274089203356852677932635096368640054001389189559531593562880778957708641036237265370187498906315801072999925184530604715458069783453641734837598849838749752965218336734557449664556942612010148413747217071778700066790617618734058809892959477262542125822612264056730721534518344675493061293739860366937291562485227803411869991686100222852740180536063676188612337114117223876740862254664461694522372321974946259048952378683069304266946028011990509485378019624570011826114845029733250925007653722920629904302365128931880725417144007068745478087399393055447514442841852494891007799373735756769064298429411896233338440507282709912736950361267179647255009353936863950645571714617366495350651442389229451118326436797398814344708131581826656939596120681166952729974220940266663761002081390282287353735867657479777620689104894616104572282622530549711454922446270066106751384601263947094101721185783408559278005673295069538573733568325510249011706344476360971045648249022994677524035961384144404873160039934218537894418986835480731010091301758997545786685614157615871402563256828208431339113270263664435258257472419056066214934479219734351640163501788416403786512489768213010394455094968122554491311259426518661135352023384276860253475008747427234836893132722656732364587758700753171263885809683638292856354232355317066848463715165709337056489991299959148493108366042817213289625217559894324893661647051694232182062175007947027687961035966993948344409044737457606730476290018001713536651728591042595577022364100658676876062846250194538212299004327349642688040216554365632515100466097885869971034927498621867330998329494235095561161275620870032019039523588051681361040118506780925901884756172929875507501027674793087677106380210092961290736869094901425567927750962427486388234664069547191811834038173031621513103432000002936827497590082365388952683965606937291342915758124338301805439018400735820814684348113171257200468640696252403435008992009097246765251120080748228583891278864721830513543580592423440110637136211875424494547883880108242492930828274905313217256083944879306298156793576831914274687978124432065093391743715022311461219292722336557052473978268935833824303630333061986593745378852173670783769908142931837633516414970042052674197913975141025074371025058052620526787266192304331350251156180334535254932830165032731616407473176586463131642869644907988921680467115042189850121809885993380195272380619990630172099771724268150707299502942857202098260435661408117595043933373578617662655028282034451377862569899003363853558942328447064154912047244180619645564689677246759079029034427461054793343801787676322577933206205180722990836463851507644331696954313851670624680634689326823116261809523360073299502557945579933338881566898678432144396039099601309315239860639712242486331827507761223207458855087019424724258741851408877163584359840621181234519233045982767300818571433202918371866815546132818867404681669953447237933223796274196930636406023462127150459141857899569315182516102047579397476800804428260798703263378052978774703923527084805741049978709141685879838883399259506271974932879593929615149246484472772532835885323580243740358581563163841502067761411982247787170725183684399384254768106097450648933745566820686000615722781053721273618834964505460305671058840808967736289863887645283929810448752632835877739569346253246918584121979856345376394401652585788203109645116891488233468875058458472486450084517648282380290951116610750930852810044905591513386286134002499497626780553128152034305274605626412852851465711182098837458865201249357713858950332329985722101229416405233343642252200076457974226688371881345704973540918659844623993542609736460639444573459627063018179141821171395489965294081697517369667821172140190593918342834186373923664900573165728061002393036650539229014823376525391885139152846170520289572910044343530905071624415844385139567567306878918598291595229321727600567873330710057145015288259873283763263941893110944731274573597778061245126996532949588254225486238824400654024390497273254837960054543214509360745081245043334615991058907396940560859714464451573359657339853537434774566625345934783394269404827162399596793714881795216169764746059258831471985627055925856406727144239223921653054318161355659322994532974819384576153897816131072837041915331838440131052985353205245436263894438053939196400312813724793327186446957272108266987441955842395480107620218536328728357536489034145072005768076181959927403995942791992326702504092243448562225514623281518381774686788722848867069694832790592055036086340059981023872453900684581357217930659663990014341624547238599345552627704459563263191396325492217471404123476682034739334881573293495099168165893049624946017333959663556342262234962834635395581384359197308566428671832268469158087513146577568671075381272455821658332137272546158880522234658236386668064234711556472717436057521203555607004227249717814587272811048636855570297523857232510846305664594443085704724654211236898327336653734870029122307660089005870430033933722000295532807334774307148015343416757854800478340581568990380994614404201830130541188673974989006913715449192520414747167762042124547024571697867649697065604159131021432439999478347557939225670578956290862553338274205522302392640075694796381876853739449232080368138920240498952575275639669075187906838222725540957175884049105964658815020792267390484311162590171243702827331822573500352338827713684266717196194917753071094184424867507307908928444574005742342771373449776831406524200014332288181005255818228295743571436097936221569992459250423817935613853203952231517861206967767550351801602561727052833410456366259492352539383193103236971188372443781709283334816368747538516702928577702147536671379919002660507679483432626465704015323520637099482756595280196705380311657755302643551221935838484560638810075582761443225013477231294689620375718588615372211038523457521674156150343028672455535300473229338658125767417189239260332345861780374007113853636255638159027715981200740251208292554095614088063108785129172293612224937207904231607405765434788207192349213338129083829082153887016830867001094853348733450028490999080632282860306218065793467739441484091588485618394767995556671244506498716795535587465807349332178524900707479629078268753029334882609365091360886864880280726655301484810774741163300236356359902251003585560183091243465649961134427770818693625362778173089757502720353383306278908943963621635070151342069492862829222237528309574318948044767660357172765470531304843469603285310906215339883182180331887169102579125923407659947811837632276709860300260708151581998001354241182474043885534291134793133828115514443363974812805432918537535196515697523401445103926031416794240408869155837962766949774858273796505386128516608282183593112698434193265437879700892316663295509671433255054259484193417552837770688344079421742535632950383455982424187060140639351542050555004547989621191900006566454540923037686814070862651684915845271717172779769306887179819178449907279454746371870621859312087700745226855253540114102430478680296393532353944664146955891200966019941237597711348214539183969711479615790811307893413228978059391435354980800494499372492655948306563310562096877693934677898347579872522349711651735398394709629949233540190084946774205756761910299190210706134437829449216887308273017782294206104242589927524653342239055313534100945972023385954662467522453724223532591674231635849275947606214698381455880176450790184252591168903733178940205738162956610053981754286878241031308435358444206060540587084868160074324800791323384207769171518912661645873826936409824069244093804529735403575165015219298265503314584584972767915135582770882658594098972494417514150953278674820937853219539572102005559582541890527289274787621715246388239990768868571550872865012702853565120447350691280186969912135069336336790084909434650392282718991429444011619729282272571005032123737314441727539393219677190388198707386780887339209691003450383716441800096902796754634236039283881981616471918179692323355496800037584902476639138652748027161525237194217597280203261751228851324224429344768015670232336198450461859118131039404286294811370991961984964246763965578930959138939140478929277817714781282594243819203394632580660577163276002631737472310060304974151194512087498879888370442067124578221704302639378512530223077792502713548057741318935704078391261265386549156128966965959972268385317894824830415992766235912421394141539993729524196132923909880133480258058020139350324071831911893333581734902497621307877223107822181769881239474907174495910125284370096237290518038211283079204408926104508618331188844070732392025727857351533465260323029938919823366688887452515581735161381155505597974583644904787748832246848780724527613728559600678488782280623525395165202735592876173967339651515775110360507805851010614424097989994705971734984739404992367262926299020232512705534045939053820355785352154851884035680429040935021799322364293654343556090408366427441968117941659477683631221534088567989675576303453601424257879425728760810244909311120783054929875714986875916026407042253885812128526697642388919888339094209194753201501464930282824957339018399465549814381435574879862503185043857083305156059709722801172654649618315287843736448342810450342450437422473427456112197792861602086452227878808897215906451406320394826057318326126605908146443559708294395840739812253392042075312421113950373136533858921901495293427741287342809448963104946594548288567794386498160151249277756401004213205277419411418601845200401186896971091550141467718215360109307877681534325417119754146757331027795000868947704397238176531121935347218090579241339886071554213127169446925821537151602380011299869482104080319238227426556028655524592047901753988420925704124421961112989517358687916051163322998290618353406064140861799455028085511503895878540328269034983294065917890806455137839276363118476609423283978945228444718367812928925428393546148939924661831477002087149815060137401928803560555905390157822567392503786878717373256443163998404512308033053326327375868920437584304412398330178920185097173431290164354058144446053950544623600176867732915179445150889290713756765293413298968124816165942777557341385333692641974762059697033222122727354496191233745760401952235757621422029962541783474183730647589590470941665919529305079176768305039599922429150979270978898417893204015153713709327551884217235705360464862628174307312179339353580474646843821674035545331843853474257486853406775474631503490774847894702442299068700287566570352610363858264024029637877404667618873341611127968941804562554323061357917360130015779373463394693982157005420254764846622925459641465187026662961180868432944466125433781573798197488411559279024486049272499259239651049158389046294896361171136187892296086148970603884388597745227344095054023122353720019610256364398267194670895343240322523460103699277094151376878676928484196863320793840277031378385399210462174981800372522477621415507201809877471102997165948569313547726333739977385682672876281783301768584377015743370322209749418914130658098525493736609235430369938406855604276368586565084211295760158409292834144846904675584697493076655332787952625659919619847906280060508947960678827627265496982359836000322625063683640425145986017581560442854669246598546917939325056676672654571102586184935255662405749935773988797080879961275773731449432154246984605817721310041796860129233028813001422910049128750778924216743859201328912167875449969103523668827678754110349688969824227659846078794898463883725041969460199516702726616385528639227638496029916308456802287725707668466535610136512835041030517314207409795001007039738047395207111454667307746655717769845165234329129339023517848133959482969656519804225886873852907329500947045998759182153024828383171860286492846540927334534477226184433869101323013049163736910203119607966951173986773916396678050392965742070106978871670210886006734528696365222585771056600394829966576695415174321952227916908251997309154089949324580796185681446145761179538713036008876274599624125134674874341323767570136650705238889595187780022905188500805378614805710556280931736253416946635002804960657895292100612031685138895328428751487692671359279704191997898470217401667956264495866587396389106078929177098307760485625398101369318092686008339800427735972706245295701457945341863271304380498394348902187012039664348415583626447501559869504747877637399147089516025563781745415616481143654596178895464062531051088784202856613764612715006054017790864838867442523864432425253350139328385489880633517458195254967338936967090585309358111533234909286445865902026214891365892064304949733167870965706953164530730561406007999124719802426049500790133572822550595934508510910131947347190674611498373655369809505122084106664353732864002652238228276411341671775142425405249903137821251919078875389465768199694044005993370993536989098191818110443312959784329877361860837015026946114435722954771301153584274707095314088099611596017735267016917984153999149342063346647580398164449948626141967274536923384092405720662628457794447064426593822773040520072465832030932585502924049904689969577152439505817038715388290689335523783977256618328241291874610931362003285889732938213050577764666280335120743309474730931278977949114913149999498973426578691688019449395126993419252676003561005893658718591013522189199969912837331829637677197472792843410199249780908510633941541769992618140165752699611724340990327039967235156303902673059445473814699219724649808237565343032228000152434695768324211864703672926356355403006361899446735779861268253777707235613826444645728316911970761429732133439069143695615673947324860642163282635841586802613903412866157038846648404961606415046910849314943160899347904318425310423146802191018499795398391326375576768171853935465096660756502693211796257172135669254974228618023708080971019267494769741829727305923871137675111267886312500975727331660092653730202203549120640296751455159906642204164111567500912307228057859436343933525889242520010804863056079711424250179158334145956303781996671316500708522927797207261806611906518668462532018653737544231745295439684680198331963678343972401211720178857576263155981434374699755904554598353970983154877243863798777462329165554865921296145284765964857318004164011303532040986650209673364207461288286395495452515991343774450300902702009566061662478892232645713610059818826704174701126558142832900441567441577233495739170340723745508236514522957048035095818484989640864222984767108065733961586499435308836674192129416270000699073663312541522716335541340988067312972069148987182638329943971729785277172149920686897062059007380618457962583524206675385406671456006186931736543778367799221284681533937249916699476277269014180497802727227818460521939584957558347489378534485144555304364147377991035198364649736008005046981485070187306682847619232635136169930932322045224427193702148446803129941545446097955454796252142141574461163666373652663203277543101895678288769457695877043994335652009617797355283806966062571943680206960562697137854096738001368559397142487245691685928267840077723651358986693984721872437530992779262597649662050609772427692790048758243444172129764474912805821901560647878350391780095069329071746218854826911528518070323909009298911561115151310737740628165479255557683901502660226825800893463244733880695768204388134025252252597043996880044911832191823203496495639322507646327358145666439980770643895306729001286540533357866872983177878782248482200253972123104924416634332962751770141461021205365762412357303836778694609305712576717714258717747405325562232284639200261142817202211546866510307247913595813369352358992021473023012847946216903843548180692881232682834279735467079435420964771800264983491335934243447722975802195593354159787687101867780637293282742158598518133484886839481469904366331238639175636553793139019940858316556794958630627197024421932975076783641937670978986187020361693280500333839758188922626685555308634366619173935941823303850862119139700083718859209597509081451973686350766516075589619528096359464803033956332737201353948850093222501738098815217272337097779829571964094454637782561277358947953295843789879554038127518620936865468474527828482853711373778055554596923874221500349362754373862050111997594092013228820647101972421276094921755240189044530414052002284417882336108615330423930929502389111739288629052124882517211392999006453308331939036611724178723992545262872859107185967730154087258782799806165105757785635840921640497280757780461265018552440672960385233606796517200717609584460423386058583069221922640350633763244786806817578744308615768616338514653419345397122369318301268442507019084086323876911680865130752327124283956320698291781180642880072940344757321930538803667754167360347362688808729124872870637744723181879802715409461501108115542787673597599388690609670885156983385061652010886919173658738921334761361088031142573018263754785703748310136312632449226786208056978826890651645939699667653983576125932797953323739876670217179993568195605919618065024520404462908510131542037006075698915191026766648396550183361741263509353284042566001327176583227068038158980390783465940467852676296659296123458375120052008504279395730677679534204930120179888296775975391751723183143273360440549946591946378094416103297945811429059044282879253839285645310838586069313502998215552020906325367621979232359359071781209919827162087116078849298545015345660222500526004706647031731434408468271281148073543328813912770759197810252563752860752670463997317210767817957565502933397495902245679701524383812852731750589415939881503131575992630122332829606344020950450041627402632473970919969303185116984942692202220319028850001942432119651465436165454675568369716924983434699345096164220306586574954019519863686395985341153950580574977434317968824241842038240432843157909647847247983661945181029397552548963918167760889225436918591194090490784607395279862457297915322461446584741288419085606331730869568633847172871388249386951472347915704716236950049159139443338154821640037012625688152107413555542463910038239122840117063497816894720292425634073047186485900321922912382913759517202407762770285071428771202612948609876486152739015292873768760001019878226864212021277080036184050814582597722928002403434273203095119943313605926476921002387956954022382886915624916881338181095929348036988756026332118976031983273901530992945131484875666759795927884784053220398148755476628432272599601459871027041900956683191784860913196378055511028446450919034253409297519274136046757421267286056509200156562820539100273666947491301974987171428816974535266370885745989535249949879304172821000899305382670772093579460689194046968459531956636077690917329734735949842511629693592530341595191282787952215711386883159609868529933573139294004979033462549553087672007399985260372742900573549273197190170436731198617573126430073673030026851882576736188326567099133312252691024036885547157716152285911641899616016683196961445688642975841127447711694704964658171695401184479877792772680553834133898175498977545227951916085276223985505889325417275325803655006153555010224367971258328208020457417223392535509435677325329275336736624499626144051117646085420614503026568950259424374127005816783841499617509416603568758356719520253260000105819030725209360152191999319575892941250779619681292612034568659947252029863100240864695695421985789448068411942601103164787760467183559288861641114803286591459118259941291015823643589554892359694786541107966138395924275431917994969658780824109674504265171964126293769784494646249787903925608599067045639266765909167572581368937588289569330565467015820633891285073197543333016673299482170828689487087405876591073954436299664009947776856514653371903381190660989540042475383209566866073248961905305507068509627992801609706371403836654745420700870051157337387975943938392449881241523968601841343283669310147169248191133520065114608498470079457174217875447406682217223738367485675988537824396052908191930688193674454184972170303394363156977991419169663639008686598446187891228310860651643118034438217058611461260271237092418465366705484657328520205458996016047259989915611145862994430999142065034327188910532317410057694786566409501935282991456529003069108914020687774139648850573679514922013975771328144997396031152458770792743675637113549151966975710337451974523763744299623754120170438371586983981746014663030635762032470012378596245484217142593034670845060113880785732386025152359711458363208552657696607474913119209392017261455132369699967016275258950576766640555265487658462968478560567708297675019846743054414679553699839351496394150595688656351831353434185852408737021348093385218141124573609592371954937119007296955543503527076983585857848647031166390086689052780492265633193697482030152011820339327969404447077411129315731125980373993578548317108508696425315993219600829496586730791513461603867162751450418393675487560696038175119614889723404201707439260958590630383580795536121127552551501097293422967447214282703882713871386498153366789046534560431779600964571184452911158977083388800496986066321792812405836823636306165125798593496539856660861901248686022026103025562162173012150942474678768695804642908739700672405937919287527763598688230362630205056220946235485293035640869302052347420273688747222450094801810834170046560960995859859276655844835984672058618479067010568937082940496578396684086241720155890011510535696514507640503320031861546859373441554043793624583681678727948844898321345312594657945934753407005947984810205919768783316187887020863504474433310128034014687947506882718480870591120134859743241750047214754235962156717591591435005463563839954759846760951743818710569800322548232650988649254434445700749044632715633865177106392505191482015042604053437903517198067615748184940226623819436644751454099880232267051160459866701509644858121140052719878864332665709671105094036550494735250243549065239283305383165885444642415588135888898766156365136237559074221022933869221940839844577941864204909182444994616729628934563898495947751619231654308539738532607659425744410223319913241735886051468828741404428706448224849398514449893311136228134783837771140854062648793527929952942748666910210491205423921622713042438253961240775011971174810120596377810554382924143925551391193905044047653451083369222247601165619355995142343931689799478927946994211241198640080518812877477170724291100140235456014940010923563562981508904047432759187055231474447069076756195084886116665640849295474424439039567925605714006217230416466447412831368130572956094556003180898736485222780860505133474806981599131663995928942869290387998131654835174129180887549370228402891052948669259722271867841731534453790759135474490823088318805499304086263398356542801407998281810066298970364869390532272058958761953585391937725982811310594682349010189871451981400200796379750295302916337438549417512464549868532759693045730280733364172260497488457273586010957314271553041893886057329045599476798817974577364560180767812155273325780270947686192302590149009022216499998882239898330427875069763292166872648623899046819011268923282486678386135932754149059205597186591765915556649929697954191546738268885922907052272945475621710050357028392310931309216102684060310946733880246690447517927846824691475542071927612427649308229704334948225332563318808603951562318710431242448768414719034676446570243965797973513376963836054505984737218505192327633934548721372544416339463004949722270653094282135682414946494735284333450738930340842316636908088094647224828865898595518237028724247055403781667739145077290999148105986797311498974581604837905402607052211345647899783345471550534996503572060614972972019563719334328068944499649049796985514947567484512718899049578122867655886032715094513808713293490279072285982368604379790681696508225829826597987635316691683807150609950533099990971251982048602839442345636259209501740149466322629629085073795604632768789146547911006864009765596868863809044850310632098414256722704697674633626709870258417386842682287527664939700761920961466333684515550102392420383277523163736415912811069868983814819788555635435296823449641640706939581848761426189394235947565007338822321882762937982555926852113939126705055311454000706084476834035820929231533326749289557161686013674238857587598138637387235893428766089769837910672669803220167067562602815317241165671652194136504011887151952271295098258144868845376360010159102622437104290017621662922581011560043134752712693849907415166858473760946159484230703738978807324897947420015594665910626686673664983375828108948928544618251086632396092874244957303946891336391113306822301202390027932458525243753064021442494206897300478152043404418158297113130903464855338107262341523346688213510258018464539436481293506459834410306626045783563580570837328635474102956324125135859556413152026614109282736953014988441873772707469398035782169243877829516502285706758380098910466833128184085045324370011054706419544722708279679881523878803628457864009295462592769859192681472488585983500201938048735021446107492111217771103834755464400684331647877534896164825118976758555743279883566017481410472736657119641406999199540080393253078447970030889256073850595817640455818526423076546448238167361490769889707159704928180006699929786657444287760950163501040337419787775619069324016520051874139567281610743332845145226219291273462926475431547704093683121786857670346138164435066730617307293202055952725752896199654351633143769814583305040989322418528125004441244042123072357932490261604731490848726726689926017821652599782252427470592963322458639390502984301125158693949777447979196238733857859060270441770357306576193168064327456634022274945575755650449434189149821106434636657516694044977220762868478942894553479679425856609152602041147160868142258438910223659867662579725749361719975903334557778733369619320217917661608138118338828451380397862721614929719728280797553650218511236450253531988530585077675153245816268526942659433379093809338054319434000265493546552618051513129992268788617311220796922636753417021514344721787282153157490038665609107884933961604796043699397822578345540716043220245711612753371445474223735524375150118636594812503780995483740755777944003398885765437060261137968314260133777091628221805772621396499380533076637420059456618932463806589851446470603307114317646657657667045537041858142146080359135328481971284552994330011972904949187277072694440170242983358316794844340117119447228162318330884936361923080695048233197855657173658045052884924195976074008290366525691825419767201773925495450872369327157261660773248929734997829699522259457195562067711136889235032476940317889768588028019911849390147674136992043818217933551234010071545316512034784648254931940415227485292249494313863376234531565385997787582288225467063311059817034888304707779323997899366272732969720081590971986428811765805657612969833137801197746552891310859275241040911099505419448276869573810879682128979004660308416939887714211110078033829982927689245786733145864440301259121048981810194023093128476650676441453437150650937159983358075137626779082168314744504948336415971745946783383452026782298564742853784647037880010882195809089778929969376898592881177308150893546703199669296698041059727185820296061700444868573922565223209746566165716522055896528295999143176967504321350657404378442827848355761324300071934136106644518186605972349553765830207028814895666726718129111397446362433994306200261857850671067649959131944793513848176375111747420193706387318419755958681327438532323872020030059976682663110683970536906630379973869077142795236013113247914169764906596511136140135124497772654891440154194763931187561489074975940364693652779651950665432786184532682686984126671574378450798942806038444395975609868187688789408612012398902359691011473080469191239398374953678002313924531121190772019559699416453200068683808329146376504572608126765732688201028941909515029267353456821926734088190974481948173766838153937970530843019003410081455098253556048328202129252332064026198458582304930466285198769637032597367766263788092225972492567726691048588605457113962664945227269165537215224351782676999876512489051009721472824231388396323716194747435445079685050645092234713184690340962615124901490106899365173952478208540935477057061511823034731888772481785330140946544402765919635317999578969799518822867703624550714245674439764089891080954615364194871303426532758404356991077370152989619610656398036138021370414609826065228548374986335945851878762180819436944571666695887691191399253534174636851156721327284636610717743701096901498035851257494758080058839707146749291698611700353157478113809869301659552238522481209414420509135354403786981790030376618026746382802778763459191087723622090198489274785140705074240600087036196948723157083362761904933745579250222591831387849651031808896329713113851692236014397621422534562401440331925963984777230564271779398052013362805714847592851582119064570593579460529112541282885248376352730656466664035338048472239809404161691609500925764423167800171331355882624217012801491918703489324505965109317724902473710389888536426154542345888817218236660002714167667897928738840253062392215535475820250035580960849664747744621112226172320124265700565803430344653851599383556993482216527383986693659879041768142279495207469324609333855611852264566037085809851500843046069708079026560245215692059310548497619544124683532081985122011687578910499818074824821153122290402965053609652974038803336570289202259861628938425887787380537066275756638997246310903154561122931740797718276462285290882156170184402354861121433663631677938316796000028102799299543140054243153277487362458592873309995576254671293552707167013040084154416435296307928834254816541598492981716256373166575208728821355448106192504797872547518205258708271570261718449424994082308699273487921449881063830365073146187602296021481500190652748377617381621977341248648705951501204536334335083733895980661246028317687457191367731280981799898989174105802578077941175965063414952926842629843027806856688892021756316763308237481967451820543796615985929537952762070159080084073064502137866297393621133459808667664461550156783255094875172766544528881644968155742100181196534942187852213055235475067040285028998013634254582229207776242797909267185220051336723949388237640920012094448766901368970713712933526314385700395603843133862503141877954949541339411017535119076943216201747595322236349830177500017629346617729115730549351043259490785527931195999591863161276044423753314701185013407763873958347718127498896425424413877880443269095155910009095705686588211249966389386052614381128498923488210401085284564280090256682239706564453807359544159070746430125714499156786310362551608920754820706604944683068847794576303986471097127155212299429424911021768733122624643214703783776763076471043726305148848498391576186620988005810630923262157462913689796350055759315645913424035670197250735882355736058579684928248428363393998809131432521192989053474860195091978414338076277027609137676194641776428460697133480228306984436546610358307940494462453374920065834327792876880158165083536047099059763376317143573292994281028652315584478361333046669468806352494295324317330177200918871675637588308135067606533168450154754495474123464232583930533948663791679809653677594871561133020176328307009163133999408175590929137936611524407496553227662103000628582930361610089713648755264750894565961466785739540869218582619397769265569825693595800511493730223514981468612231443799594202538402591570179298977254894596421568084148746705719751202783232281199487933420991844137834674748132589644553962802570551285331991258981304342225968313552822276067446016681200213041910297138525721152992497044632700723702804990510027808843755869628111196987468834407136570649848644490299113680461129106867211876798018625505918991171705201934564418869072238311016929817634518474794768985512957226068241296790777447702435177810896826624531995229431942037760534698571652636809999526763998763200123953788014227192528858348429976665543357637142899598502748230746624815332174377815027800921697220425730947327370966494019466185765635419107898895282668746926705979746886019569037432033880276619551735756471518505084006985926144032798592520466905041566558227079735041088210506158494684095865430460374160770490844096004849422990647435820749630178377902656035248518525644090421466690175595019177701463954195989867233044639572887796591241187848639097104301116548343479222033658468311537909041015340976779135777019696340327244294650986487461624306777701759038539614895466547091829727253036552125109468903818071443983015768270040730716759826678088778944892587286110008724224756926641632648835768109760681749981923397718566182357974682574226752556868763383040182036201456336062576027675845199920869663752034506927523879208146835963577314532026461840886705567369531473994430926312590830627883366649924506599581522846452535956293389086476396373533839475488434188014095328237038008779033107777790827519297394101523612489715557540531480162277051102820292655921338104433940142892126712817817726721341928236893773307321778953600349031160628029717107537009544293415719384849020794590642258275773806004584835502308464967765412310353301657474157947067731611372606255287028882218301137001476652532559933249985188211549520052168456348854276013497958746838912964946069694599762733703098396062605216841692213796221524901659627167998861610810539079516090979108438768782593643871374166978656319268017720507665262994165442029411617425789812006530925275575166716585080062842774215020451192429933597026924970247227875691828444169633607950780922192184225221331176573694240400859238066972485264149034789494303135743298097223485463623949906755384857393893108663673320194471240237325397356144467441654776216283736440975831484588892821171012834193380800919116847201812011542242312152749043028746759719791643853088349834231067020034062356682926415372039975631363864210580311592899109975836452928531751119491159341422580379609421988958269745172994432732928090936448889858407722755609190065205779915632911409531836107886462829419227125499415689790748147053536553694266301167553614614390016387603171721468641031925651515209933636020839089035843968554762430970516349039941385575375086355879195744630239534807010597845843689443676018415978457245773469496193014042037167080931102049062365654197281155134714789239693999945038445480676926556883962839265516972337319293751604901988455586696012310272017593246032792840171025352246824739756730588927668034747463712671969919922887370041094122304764848491553389229228008130852929055280488871145161598145668790650141664267866459357656873471496912519938798419803217296165903495057659591662416506854808759434575087387734229819370266634227790660580852144169071025816193768953600805831359187567389315208542175837398164947136951880126028957843293666066847364414630789791197206801738195559561350609071062499154475682927908580518921843125497034574812253919738493639325974951253454434032313950824342616866539368130560479373252049647291386628805431258076727059203448319054645803546718212461062693696560221614995695000050601498734952907996816923112751622173050754267479451026367279818827679772328220050429892767293486551631833300923117851153137599600977018129656313650018257214263565777333273827927023622299417469080333218058974554192975860415303821978344241325835741929305949353226114580256707610441960378190551913447486722629109899418042794979348820482821416635256269578263736385960305441205127865110706790228059959785462281696810874220326250432098209819546835695271109337499623250619858003388038239205294339508060356159822683461068320432612517642644045023938382727290788259047520921679319152590765411736891105432042957218036461157933316647982090703554767875020913303922189863502982320141008351545832126273849703064500127977463772515484065968235567527420870607485752424106629076002659043660784807248875281280586895718463335732736579604488493449080899415969575682148638213161601541848299632529907203745098045948008001559365019723340779561091771990105589961962803789920093847883748244746520599833412319410322931297290863697515975657587383973196692194056423624562003360353404844142314207034296928822588448780607354363086967389724005657963858968581593931764816795852828840052507502525744198526688029302624253744550987740259770772176995984738653377408536711471905545673322986982301435747844174654867556047140978840429185455421739876868262420085548757093860837723067683057332316949665885387664113999714980604273799027883687282435898460060752017070043057071201847604913221811556308638834866142854057870341442611875172177029141982073477346856168630484305198460082547789137999711901875355781541770428762337938294016629860610570446179199218093967407011855897103607802282475836607821584332533841446231360109844340282615794370627671663870666597786610984500999621967847873953204497437012607430555405475414266340695958165096938396781076926051540275145897158661827769415538944225126576159530266281186645867402147157122860223402239731252253572480604381237704748377987783944211350730016096200666284340203340368069369571851581122740106388526001294612892233299126397065442660120212766910173955754566963463162269651595229468906426385717742253633132463225663888771143846459161913349773887828842851777572612692512418755582469749130060814493587141911038157685249409408263374135570863764089416280661689449723190998581489241261004388944845783441966257441014178504570766094217120028865369699240839049676998303161588191683227282943705064796118599093668697033189130121141039424358403470177813918949033451345167830020959140660388307437093504694673389365187678435014907935585201174696361066754925683490103288029669532389474798271162702557726854087213583365538536668827654838423850915970765722336156439746113190596850174425623821136706046182997020792369060571418200825848677116320165324968948008361845917075500858023394681944566196086147405146255791591642930132723415661703495133293117161370624152211549962087692870381373949496791983008408925510808033473330693836122800248165516444953442896803721360144028228288736403573157556355895180069901561669017800501764897218172841605734793285166912517588188206018699562176956940850342972732682236856379247156237950717464148453161753932577460193106303976878414718939732705555859597326980790724746392904608812305712672803530589699944391569949973601485827418507780343323677362555289716506785479968181617017918423446438095027180780678785733524216622100014137105487461744266990955345967483781204026527454621383861545546020663705962288249559731612186095747027930262790256292411056930478767606269394374630458237555863520106253776829253732823935899950422575796139126296786196623151402571741525233182674504779765624585713582115788719040675870952081413777013537227899558347858243748919685775898112341041764556541737799457780744587453708041954240889836484931900434831715859262131451221541732646292997234533271830096200571178165560942837343932624070923785575822503680925543128485121709996454316219205264903859733721719722498757638612379541964648609824779817703356652415572846746347503557560585505365357123088431168536920652635209366457710036883420196259891454420527085036766216693224552222761293876124337321246318812530123752333237410824255455507882776800489707942404029405213057996323176686593564339609161822745924783095031930115654577973608973553221523442097468058884157967244632693788328911844362949861861697804730516025128099160760821735188598781257499812615262271571838415469277739729343306583193265059393824131541128421134990239534727855953497247100932793498284128244243286233317541107041896522739059244454162919182496203785872088537261443626916148568827709163840469745062427564791594676879300895841813621584336536899481808888489495057294672537700405752082268776081734316792596679041082418881662604734460515189109663112761190338017132128677791520223179384509544356532581613341796041202293962325738307996909104753832189597204257741432722339433419264679116189611554048415175173407952500704967507103262984047033754382455878376009758763395792605628103729288574090131448650919974787509183335495229302916622897012417305611479757573565702417958859950544876222482052814622711071977472818115424667989268853856245992294248748903314085135948522763946424145998274635437445825622848862939688795431868654470911047947737583641077350766576054232991811812510963640152783226611151683036520070766532503618402722382308832030188527465248463666589096950270819107038285411804255725235414324790629517954756213224238373493989843229732626290541144049644659348653463283250170288381536435812023969477166148392234167198088967168717044692610151376271386146086902464834690316369988779972399476470172115591724536436772959979326436174685490518644354438380294369855324501478311367106924119568749748937931575397152510763820432795254633186532677665591333424195562303288704470350040178533118630295171701544948174972934723527284647373937341398193812814843464761350859990847004338396210598761774345088246922317505526452382229162424245269724418780278835757043792346954822451398569343693581556672809245598828718872480788377107077131074163437522188837672689283650829672862076313261109416966468946535718310286523378082853609929749600828422803806496653343767094393587782160992762520774953842809822869780297121715221154010827934014808571096297738109502495603479840641358273570777896969257465096893209911161573217324570771577022356173523388123698323514528429671976401137441647616104250357737907242849014721507360725735751840388577886126103720011196065645191539007462758447335029882487655864134248065032958564204505124645438757383071283353911404459920464839587270441245021304873863220059152497341182225294260686167061973684042324032682467157570247500807157876268757567328428108944815610486175531885153577503134335289282709382842419993300257819224761075318798039419129979158568793367956286090710394307856416711185109843303739430922969305743401902153158797432703706024580350671087740433668842144589555090906888906379699045465787627260225468953010004165290309614910804794197756440612247617187032592027413417875093617395541492503967816095028978408351014078711857404151214032838080368919271271162920286401002554434357923379195737196619545829224405715882559306996574653819736198107286255910638322485864549692839709240899625723740757341994501869739386162189073469944839618456358864596798521996584846762171440004808018912973494674921491472092285064114381599883393931441915077991687581329834877693263850947544893307749285150679544450832813919348678302386378757295529455553403537953115451465152448319872625808466474727515689966525675190392274205927573995512534701772312667479478939377448060643543063194464884462220411672807840932286590286361362800405851899411236234126043387901862941571962932982044493778833414903754892131716134629199640436053680969984921204314679312331733473560238086827094737677075819338584419364736803199203285201313979172197320583986020841167352440781568750923895443021903438608019066590244235169397088472114843816146252245857454624658350223755105715236310849064025950865459395064911386357772159286957890109337396863327951958157100921845296872916436436789318304347120343636439826179271837287729776787825364171948328901668479692230249147128752637637359292743758236451482802122260093736426611687027440107687552721778189791796528850764339776978594941415625090204226112727243121056128355223181083912839833568055524407730028839725705223033840747924173982403528102630333724538905672812097412973408538164896824058781059428364083722680009504662781927101082380729812373126886410261032880247865774420827203613917434383075054992818775240238770479374807159057559159895478745702309611550142674678653721553359841474678789741080212643097458250463537614773677640598602806244520252785981056975516772815439272950708386889851064718338885611741841182038457598790082994749364633848770344347923575533696150264323821572966610082782536361217476040038267602079595115485872308393760953874194230037964904589298541848152849083957215302661272192315709945465902950008877138410427759346306294012571138185801982433948315949262313829016988891578806491988505480198871486598606028756118065441185597824816656462613647429664403990937959620744209793990465889152414520642694276448927438511311284660360676275169293456131317684117189782670185741637289480880843594619744739782768673270258651780016029991196476175261858674351024568680103935866628889107465383642034755014756412435593400058828143550295719451867864318219867200947505299355953904558810782707898324115258458439290764785773022026027345436252442943255883423977382756207359606559581626500578033310108883956459664178228903628034721773511051289521066954456238317863983092551114636179729115692546852846091090315350323072024248402262852445601488474884258516540257306862344398580013376242981338048558459759994047935732035620089165160965785495224915590875438528141386746115412369493329038206576053593702504185209806208112342866733578289381718288966351356798440658232790305374049170131661207489377139009363680117277365590744168362519275421445092344718185358323212296089654684155939850711400583583528562014746489169681816381583386592962678540058725159685779102373665577470816417557987100541859879775753659575645958398735990993643320759187542584330407788451121235123956612046895163687351076860166016005332195149953606231018077029434574529773125656477952815112048290108685319271691106417039659155577057592482103024218826777463323607881484189141362725557530571170788419984292823679091275855160599014354270704835417682235154685546033621305035550813666684794427876328777098041737081037869725979916257988044389552682090397734075081073578907461389905366871395295208506750271209633947346660374562644077355812357565408554094225220717311275750650927037602151805435225830407196311871527064991385221216170696538347620786203232791275482779303586503133263823633798478496717241706822267482154436096072841651132010803457818552065969513897502533863951869635199761886634817146188433511774612726570531233022793465652968679733522376536762210316060996583040627016600313122572954475398046289616265913039176222752537284468715969705949358193725220774500693097972851880809735707162573313280802444530687081518401742709513733330111568870436248592592074560983120776495914451915063499541057542264057759074800573689431490990691266964345029542533170020651223088834378860491438231562072131456179265851400310602579761370782467832515302333975747195200125931267269938100149699459482093411373525986788551032603418766087464226872424691015970697485127138415915564151012498056568653974463565467182675810779459722397180850574492742123495805611524652133716682215520436218787265232925706638853858089365753194564545059206685254087464688781649490921832005684626580578952874790365901495692559618510441063354385147363488010279918862961618099581172678382217200187772858371105151749463793553137142818407578028797761890832334485830437214441944830568825150348897520064581036441026363212438148911902872319134399732883606689539416596566272400052990897840274057968546879084904429230193748754350949091797341044369023030472238538233442753717885468475627525753735399077802513262010584383688866294587979676531025197023193082291600191414091370822956597740288069977568676125068440336399060890917636925511640591187255858912727193038647014926851311627465618388614973801872724471763710712067897762750875891220929634583553056386344503763946140412781939944599818126110181269056405120308536790170742417741505926795072736315901279982050154985860854705408718300045806423257485906482865699018863648991297624035301580282641449626104329682686518168236891580298165480609194601414694600125452018614680450267771095990806280403780413640231048954667081183840546526106022260645001837204103571555047602471812781765085390699956443280318143512263382778871448680927175421175663627892263918744622872597093786092893842244405194531721443980467752396589143301691032755344708877173502073757896562015018472946138811573764080687880605292529819614503510407537072147124529863164609223167022850260876391335369915976362523439202660370607729291269253787540365042020330874725462194017423767295374449712847333217664585262784499815685488769892884979919275466874583216588859735575812870755060169136960816534395600784225068270539524993726865922870563819533487285575293184630311366968498332136255230927035963865148392297643688107979583565695724433332695679229661445531263996724214924691723181375339466578960876078184806750559405603496807066736107099243372969352781466562282907714828652967507159035637713280619027857167857906210083633902901736280608752592216432817729103375191357064817775067669430023446300246847431840576504910402991292041773999080701589721129092555814583155788430210688124274036713971501319684836872754062466629771549630210000354758101069798276105964805640929991617449546698769285335799059193146136367633333900348467433297954145661697481505060024462941096995085062658810615839475938861276739628716665169064532274382173689257161629462088458947403776860794498281637954562049641096292507568835938855079697114151108337112781444595449825670126336832331667538591957977604349714684683656689264320513196155908546428165644831429486195265324704291106440852590842179273429580895882932665037418438576281014001581696392949282759983522016471502466988447655702355030260928876402547963309105609979970602310324436722456363991066299173969186382388656618535952994019699007623011750257607294381406617006881322136991814836705251920311142837348291593824478661943696905530005786868633643428143573495328330828123402821759390372271015214627371900803393663541664993456636386491871245635066307637949888246486678396076027510872498446331436526022684047577466634683176177044245944538282454458815737204019678185792240268424452959134151066229339748115923640072721172907683848133355810691443779785514799013860671855511114056930621514021893653229011802062885477789692030653192278962184838197790598678443360811616689821343766898017295607545557956870552004624739315906496139243504293292918950417739691649133125157265935367135125696223805271171436405604272953114297599852721046487514076587398804983952092372875100507811066753384913469191052717287689588960202829282591483453217687183282981590148149207818896784779608845313806896896289324978362608556577863774891085564962568663192716624479248299150023097176432334104913532077169815848534476973677809778851113647286784543620765505679131553181294685281161536813653295876075511962249286588570756722989606196302219044191224625692668739365587995967075669496992676591001935558152590412111521086910832282710386718668236138327560266232283905893190282885279897090048279598366621675592226705193476716967141311496634298657003605437205236577896987668909517755031185787346836683898397566051946778557921870157396779250947031848216897026903902951538298452586710060291297480255836727965177645925906119431302816291126232355807826991173660719357997151751434753719711624145783984988276263976346107111283050274920281659533947270559641501888607994322447563227096160049637611152689990125837952496550036634085725526539530250790541294971966858873122312239811852890800586709309640261934556918745534601636426331267623764892420862078549042038662517489036211398629681413722645281901666806039819999996659383375965379595285006141060696888666718586794658833426465526463173796501139278555434859025164966051060607172732790266581973781166503624816196741780028235099888517148478369897511828374900392658837649306137902079213598704596215637224350195060576162142040365753156814838448837871814733358318523072099717278958950218529678720583905588508896638191588937119728167331279132818238007290629728864725348079662307741387236237720527589271906194881198729453558082530810414440229712805667309228752356336702334858690766697009955633591617163297680892873638508800610249410809332732400926525264017349063136383904041350703413639047829386177867994810770077124857949526114212713354692191748722243238039279424793584480642108742154183812972907703262254746081817321071967442326768657890173780217024777262084684020313621423917553501864103931300659917695462497970927495369758426346281389456237407311355830185436703628176173274534507710032762171961665224582427068373582554358540121614597265184611808814963888723992063067923416504924709654463258385129173646791309766972585993793223475428053699615282626385830444596451414778039989474397703648198334242739188957331829576039709203127828145524214448832647446563092079822303950156882803244595258900580199100304709315564703956948108776823408646744034431552666542495193968933560933776305816900971487007043387708219778219966834658596887191735659611964063661139798632189696805428487987972944776857229952431000138699481396111928842531830411377540058425085783774706050631183409392546299431584717905682244710874423296604441888706721549699618496485321554690746836828348305578758046618067404270918763629103466298992646208885089234399636897365559295904792271844678707193724105013334662060512098759035018353163229945747178322512263879891904105977549504069310223221166173835323082052839718642858925810849701042321362826425862500815308555875897129665709693019763301640290254447322490462262412114196781358686278389980998031335414333703797311275948366286937319304110319044205080100271828321679680076000785014267079644305578331062296577665247443046683925628088599652421305600908611883317376595941418590847379729277745365411093357769716042032034793062870597698973361621756715646852897455780099668385976498820663039428218260261768499887286811379972980972808147988838745631918932120318623578408779157631473943529159778132480869529356056388699768105030826433803362610313049681410513106094168232929712224899099027449401362297964704696766230254982532823774429576665373313077661334229516886398340505393696708280593863055423055385826372588608228989264101349456856206339868493575654293745899368498274853348444029814449744125497888655644232751967341444568893509677157895914729032839599997278203188794188688409153693308532376624686007100709218109949294661168244713121998565806865609241959965164052513373095966536156711518216971346492558519557399658056300471282418117262699473277631865767003297753331987465653422759175317621129977220560301913082026023676084561639043245458330685088531382513433374085017655779227822859783986061142207668018451773121685023975022570369639192595884254355619066738695347482043638531742872511064527964591575665209467906926421462140825341616851975939513754031036171179480460694697502562651181753854439684509875886629324536473309566690259505286014162196996615266893016085742245277365339192134992678701376522858443645532303959297610352627357727419086167219914117503910144059569053746598139846317085971164199561187607507177674300843527096000382646220797713948700821081707685285985600462353220524667565641484028386233376937037637511651685950912254518236311854859682890559671320750842142893031844602795829964818029511475649662158982324518467064209445810534096512826665559811965939217796781895397610860776486387700606533395889230708661260153261834494976494934011040969189967568226802019187855680399369969328904355841507061830257710700178527439328954143695506512663925522115680541720492723046800926122772006084311125360369036231474297825967906578879093939398525580403014481182467432782556830312830251841445083641039663593689924859958496466384894656634040560584955395923365388973603086639550858940384877223664651906752036790625642593779462721732465993955441808772380442339168263203159208808868631135250596880855897890853771342522433589871878420729251411856846286727794405948509476024848345000636997887424477427497343163360769591295604721458822849463686799420323182664672953292405948177284275095454319975323409145627715515235067215994162464285593120051977423958513101763386521648528592086943393667104314983447426258113359367559802131158949446861287715577434511708684935813573608842557957174944502202620163882581354508107396124991519686747508228829574444823025363641344552592307589490235263895029187278377199526035651931770575457842586162043320444590383894611665661337352913947788998392030331229698350178424842106969099845687617813224795705618724682911763112632660062578107329914796982366549315258747928843944978810640169792604555714343377033599333995705377891129280140862154636377007834649928029191841074539172118924237242489313128075177249119408158594457912350857521351864671529541721371119054012379499918670251603282567415074253317060038137632483803276890556347494134012329223642514575427572021848477493627606855365697608578169933353362143042645825281313615815970219180185939921409340666863773691620509982489138199312797888303151241541746747804714908487921050672283572252954769308989706826449643478286531850321014422658142855094262131906180706383133713249202414387781390191550122556287082322508768781683690913646336401937727669345620082655482915583681761755033535009700895648220600532631326974180303184164168666978656765312602881143174573638713388871241719965082015632824405046025934392994796584508945432086242697067659279798958372032428173764418560432985306737108693419119271988920288211536971336185782576713831958297673572108425386988921209249140664103022622410509561252534791718474008099755150087542677674026789033787929156787015261148699314240672677230675003095868813286598329288450687382049068820735077889234347483867455015835648466486156513166036179933142121744566307723315015865123431802964441866786541520052102997768204693204620903870617955070314996805386304353126473095776781940260395175013115359673682719048377740956546314831989724721667260310429610138768993423879841932918617863636164377524444654572442952517018702938115216682841215048313020543307458720246582653496192961579213167189448044203831517674455672046123760433513497505731015446452751801024472726340386312928313457345004479437576793193602911333787457777644431803431477452088377307981074678866167673906207660860156895292408304808082076798072817203890098664393272459624571056918983839826286823826241053194923147480109654037973736870705014557184680510860862561733502313530431642676491025798022694885082884588192383586878288343385457460227071206624070417064407904403608270751763531373858622902154390450401508622200139368317212546562312907273410896736515633341657031266173743796312344924595834758016504106157857357699159726803649604781410054836839463764809077768282833236539651208780450117295973351925415105849455244011981944138299989471089307206390627441211803292581780920919841268658690681266102963679999050877841782552801767815800191248453898695726635773439579957213704780348673167488989782876981625816037860038676635532049195445293796431107491989031184510813215606992742436926237489144960507912833032744522838678225685409223702452878939233068616561594748899063498466605118691267705043670945219571377211466689954872678207989356973350772544578234082432059279771983810100383522916972751333309226832976812090376468315093478042220602104584790425047860764160236241216541157463324392443720463100528608611116324401969912693886439453026991913466923080581544973602073925462384695912375998069897690453696328859222557459083149991859313598745612559308500366177032121751020155222968167949538046695256935189392987767297672257269587231299932889994839125148798567909188398151707707246765169320024755787356393119941740998121127660981642190281669993446935342556711660590850137194304537424269850448441711016564562831428988206856580097050889947677940490068649374390695110691986708132172350260183256249389701245062656599911202971222158722430924400248767801485266314794542847971341144763455581519755892525423465956900372420674475560330990872316531775604967956594955334143401751938303942608158220363260422184495511797627541777608896532446871772924252016635145526935806437788457052729070854418735532310192146725474250268803594305722599310924516535496256926585723619073916568447157478372214656866577022695037260935306360558865523634956394096168484072652400320131781126068318600881598241953286420707999065424159972393533348805857961635152143565901908513478460596683249391516423833997597288921689844960733126723303441629778346433818534204877043324268890091023294188252522864315537857322463068657736853754738480772913930722270144548962909625966542913528041911407818489147919096697172016409703566188184890452325114147031783220917078524695640163099551372752704502084674008368936097635616100395210666939166873200392704676439458892935437942473151898306270021869314273762742637373181617745080239974885108566063979217752179328953767958943976818371921601761955322730941255564337539726029847804031553371849067526487733643642317592972012573030937530732067806246190249901769478429989532202951157942633906319735056454243384118015753291419719481586592213632063146800669759852065208191761302229802430829247240398467647596291195366720312234717179891015570956150891074507267223694424638344376777750451717185864363364366979159311937061600648802865748082334797866027160975695261918309972565534565638281702942275930516670107112094229198942983767973124083148352357523741723809740231392323224597530268784088171852523116310605599674198702247906443548444832263297640895233772354999582396442058710691697164400824912310495364695042170882184523509898354155348212940155145844615478260264057759082387197798571929950148699669646496185271714312683490862523665547703290498161987866883088125759719660858765980426012552236174119342459715194424166229723807907694558569932646059138698620741238789013368253951068400610985208947210673713653158638769151519487389434581663172918824234025871520292672592540678586380550894871489531361259279766057052011284284683667775906572107077504705844880531785012602516130997581997485513839118380381879784803397869103024991343556218081366909739764462081616169368508365610376902181117890272892542113507840873158404477781678116881311077154341973919683653784602791467545122583640391271363060543648014200131185287493191221305237506302374254857084877762913672248720250015587307823366007826935741946990880455126460204404004854808044203776921704714349212709309939443706282012601894392751196296984690479174699494436392367766362376750815006909788130610719848978027604743548367593061476020365341384560060296619188020824334398818016408308930632604967168448086787037835706654626823799304500340808809813234441778525361309512960887008615659786172546137328039134119941364176999467315648714625890548412436817843257170630567746232732934715648569885660924123007435904343706509889170081816453813949186807970415515925487753035633343259822972990235068502745143321613175627164545396099709376353506312072255618254509866353372791584743415786055957512258287847027372873050160461686420504192543051111754756659543544679601334975889637994682086635172295978076383561810767673077376449497413366209291967782095183001301427878106199792941312578923384210171430328524377654220687170195428947870312541927258804207465727101965492486055618461650053827038882604670692160119154214144165324013516222841579102695994889887207142053056790143734042667533906256298010466785923863365006669470961791160850813639489700048968752488041233603692646879166528140456252325584378314212463846970008123912046374703879016449828781633211144170091048208339694859490111336965294720867198927180470139430539741114225668610444051881864830159297273793614884837356697840423652173724611538672072097375347990115912260677639759259349147465807274943146214636215967960137723974210401739702884091389280299399232237047779357700111786657609015778134850867312504807452936593229458157485114377447972604215893004720296227902066386672823034238774612769868152067361268450951583434169987508874788663788201866097240038594432638697893187692091431772699810930226473518005183738058966298973921582315057370216791112304323656250275388829095172238556856697024970785169804407579358018579286172988987567785093350535667019278687221889700577703794009615155317660314103384187558616465058343711672177148938975616049344433225249427151298027938256284659581548640798443105791996180478715253575455962123807386206693517218682802465160743980931902419927591226778559298489204056210419481791595281870075587392031127209991926224259626191941819092711761835445196083911782669039955975280717112957284177810327785160491511867563299431129209137213943357760625013960784951366683298565488327372443505040758783102501503535440481004040261210296523438012044718699405519891046951931432676119585179456416535378869874858195653860761337024534129769194898541437224946958961796104754265411750833498920376932307884502083706842402053098524497813324844487881664530256084416143741623576653271142380424910788741327935304901242736158508389352541342925375315899840389691327307087325214709020207926756622343353341218733413141037619754197450186867957659024193687850446106371676624060939290056815837843017698865766431622574802564081641121067632559221905857027189418832230680337086675294680451949300015657867004475422833105838900503039778988141655435259795008102455583864849142643043546223927425299065675005681503925554432465157842731052005242481104533651236875829051715153917816994190918506760051066885305826007021819238477126702487066641064484948912583971058324518947873776745917558722739046866122841798930608371447398343505226707001797338245025721315766288247667483745027820501415965712995339406541338041757683484622731326262654428474797207621786085290940503555065710020732893878652408424540385107554063560199873731380410038094058227495062047347562787356394726731371625118491036124340774701495257492565178846316561015060367628314500341237248623730919941160263884282914813726605129471279550163928399767424041801732922526356562031030678399387245352211361681535251688832321516104035524820299824210095653613120336513857010703243938956276107947994097263119149634968162251319984333606367699920720268943375805130290391513083545808678045511422150262038357563738762327365059702431877178037792620841515918696259244745611833013427152412094540761009867666947381164173478146601906064602748630072190851003835673531938797455124381588689291558993826196958220972152184608868487713490959499891482581475483108538587659364346812773853315806613285295014658838625594638975358378097011612525156855840776601140663219457446009856775522159226089739943640781225424997499300417177770819189933884766887528848808621489751230526192747348020068329500485604564435458581927761581809863374572169645557683075163925752822614053176321446457314870357623073062864932917544602279036030480395887065501270281803326801786107824279646200457907260529259782768146205576261885295362776277191854745336943137277523331978639462164600420777707553154278258775507768936481261486564836733719579718859746689114397569374677015139578901535705985740313864383387867601286422127504805318727125701570631847093931868228880422254784666265297604470026740563010475724091773959833789955748020282906213611047519496192190967966100806372494366853556328823395280174967762947076604226336405558447769652022486873374916152100122247936395891679958600591796602910994971520266263154061311625868390508794647878944943799801183217896164256478909900676743376009086159783293639892090574142649537561662808344238434328062192941383661442316867238628496993515324680035019391740079965092821273732823049220636822156151773914166003736477600391649909700540866108533113406889522768027095727456387801695146926882284137920602187612476873975885209414438694298664335461045795976748068190033334222202416416623810772737245510761722030724317961109849538820611628753946732369941742567898517561444461786684429058584167560569570926925929711987621245772254963142852122930284261859830930691000071251323179404636578899220738696299210774549941598322120315328851306257683439753545618205546817186423730451802218621060338772614452355496863582349484367136452784569445712621361482385004741494869876519892972602306575767934337412059327208142744433578914199651387445881657484094203658424351535622643143917476137990226363555578620580247958583485963275222562052814621176358137745398794052004537225276096265515666663678950300414077220463643971118043150585627906888014187216398505151472678216966313017290709788506564055372275094334806030612752191687782044383688709589069014609586454891645152837404955821741273781877693314017192009246702513834063507274571517025097213028595916440126238457335147786185655323843892468858762688343890826476842028046549189776695343120614314125500872568702796316243166060056418269132579848651545399946196136371340611893532957637260404475119987651603192303116418033003259510388071420996852419431672534381336483546884267681678362792698843217010392584828941927809472472670975469227001696189163833476799980772761369717655186864251602265066409183355202112323138475988078486209791371527776355254061925277598180521663565691757072995397421165967896609927028794990260617965942521587435970803031458112219261246644440045588622024382170346448217125251285113049404161755326962918450526311196606273810602123904289732153465482592618885084945806368401853223819548840312153558052753480886598573776240053619072262043585796769954263022727532659632631606039506973659093847343847994716970019284383220125102523716673188701510175727663664148569712171976482872482146815631446780582040087965220539382839501461834587774509803750516390820963635970051563738484370760738591886947745858230543164190372861827659636731469570930303111291666029534274417237427057299774515521900814685142804965249732650829056844881402092560254212158543559528368397029057414136654912062319532532986235998753814187491184270407955538927647509139180283445934198933794618517181544859294168639793493031057597355579020830101718202358096421011959403484084683714147113954664068690598686145524406429368066482267294578630057234386299413784809916605450175664740662295979768825046636243379603446859001960482230198728540010174156184076789532883714068754813794138375211144993204303633807535151740399706457054485462588084946004875370359182089279470095290129638415965983175567722266285866286797045012238920886113010118743426094951096672810530074528314836071392443762258125771313567304625938578433286678295627773257529005675215278432173621527940392358599077594819567811932477409207162452210615789899026520839286680424551171817771889913928224282352295414111540827145420958566533824658436087789952615135700225434233046423704112109575958532387759452681394954017066789238759763022424227941778855250701643066996890385998133347878739798397629646704084088386784990766600076391928211523665490992266935270041058990019150228162014508785100504487652859104177529499547162141104456663689684284227528495547821258073115842770470319062531214057830419149200101117896068911788342683083268979876242031536615643821451606069755039927067727147974198138506659208089559819786418753782788539907954122698402496048854778855131770626231137392090933390022078026767068302885976321479856464705232265922266860211341251398062228992664845656655626750557269291300486385010888209789776175453063115337002742721007167100434916189700428665631418277342305152296374215607518010378732995190375948475442816554807980765913622190904101220677253943021022794178615440168194161900981405624878969938422387682268551546343285121533335098372481355330434296718251373002268953217210513942346689991407222691970480330416434852077514136005374294729422130316943698927011390063317501560805633100395030233913828207854612423836533705119516760824794986844550536987184217275558584250807417670877856778818586417706037792419960582379337685883850872949748796981921527899018805748929234786387128712367113870594581931491493488491435463228245156609573633895584159602664948049690595321272401031240083582350639407758856415071838688604395288262404019072470254556187600298606511543066801559195947931527280331808706577968006811812286971331190596684529142603371278558731661670556111551077008147955075029130533119835901580076898497666867029624439580618712692180084128472174582089618957397077258531475114368612353802330549353083632615459475968640824368673385540517346142152701579212802581483393955494106042197890709166086204918608210323567264928225003389335789855352391357404320523863148246674592698495459127259042007408673921814754976468020306942983671064487782556200582928080729830169971429531925258544819270722036744076908011507626288634327878879488079385959289765603751928230222516952508488938202242678525462231011422991390009470968247604452573834527552420202884616668470795091791415019658600296505240393454482196683622159446287592111484211752269361517168005382997456984001855891641676490592399061323164982727146666273187496721188766312410362499977682851369393933503358279166713288072152934943990664016669639213642164680392105974620658822514313954385951885503260243097444633195901411166149219713854199364692617453099480858950641747588148351047969740973325362026821724566874580291099761969927087592621509193514894176675273134340673604395361434875386619045416393335194997800440137260846514981556809351728722805017658066505744984000464055612388464216543947467869564796625751010559572784213669531739425168842343476453796740698427457363881895015945247619276296883371662108921139598323815067989289274966480319870891236099652031163688945873535471067949715271535532430322234722384382901317116120240566066323599722909013672005673993202219320857867620637468362668023912970658422169607530254370055838602215225420812628512711337552704244986402451548675779611530649503857718687385173662493115407427462360776220089273480153867394615851293952321064052813165450250454629459624046480999287575034687629317351255851337860078298689922021760835867997406450806226370895208509073319798920473091216480212060521094127373196305286709846384516309098460154980626956858224071494282050322746680140464688247408656952548480216143054711400834299967773275186379013288697698514361672015878074113519261111464099842871832103105179483553675394528169983741076471397102634602312938854268661564109979761047932814226857405977025245612643345637931820206351044925960464227449907780496535267033436264526909050118252811350234870566097278183177100420825711394410320708490602225150662300595416004676069643448523817215803022078971438225908884458284377068670792262281426381287561120408003157777567396781220112783199615338110320642476356685397678745561885906074197131631654389271652776588689786649349384857508087594154681809968828940031948637598846012749964843025495566621858897222392980071258910278419651704952176607473952007265122974864424211602702693476892271850545706543415420348194618108181684046474752765926879928047029968694923854079864006031221087999265543667277476794156110618180052526480939311013447588639496976669140667722705123933326812960058215905207211728762250798623095123292039981556828185453081339452864112037552013536100933234800808619167430871903010799299492466762036605027679857034433183977226625144287153806509777801813719251728053203897113589828325401704002947379871708890170883340880883335855441424318962315541271048401107272451852375430923961144526979324392473410041704534930869897270007054947953529397803891478943740293643063823822287437850234104392860324578294731872150816307604588009541017682283248818544982020360795524688039370508465773207649048277349189967690426150911266702528548367140618349588241622686959173425187629302026935810013757441441060544964020487950350445263479922871071002560839496159693073594887733864572919669846871969134705463609556744236148673237519146364182755317122450621222510070955070932645342625893636292485008709168059584230281163431303937936034106992058960914341391405387031678803538953501318278272920098741898240386604429663287199948620045112873014729142332426687409159209411830907943505832436034121615271469827224178920136549903838232589422626813769963770443997134666866512757739161888763740257292159082989079624177703323836552417444459800180318070506596369168146480534357851536900412270536914040007110922385709603197837209065349128229650655218211735283240192490552921346314431414815609980698540375516456078510862144630488533251593073083815221487997946924727545115229555920527267089925883518085697996420879129255456897459582322553612119780488950043432261921127298547032575773020595549420969833960903179037727234478459007007673565824729656827154813540655197739430652749331384938967106023139600176437584068744293607015176917932191066463442310294380564513456049209563194070423122859699270430315936329949488434967375176203394469630656656701339430771861506156216470199152663650304475163682370703990855277158386015304300589040821339180575824086864321298123332503744932197539355685104148663620452466374784500674027077653556006916318778984705735835746745910893792917280733772544570796808156747184911612562956947001956967457228621491803351946842184681160330508935282680405262932193945229512437162688216509388215350046651337215394159410153110057297968620768962931507867095075930812959236553376693538093260179317828099585929320998568297372389105212712931224871429438712833320114635182261618826115038854526943893183932996706628506291785267074655421344853490643545523915020955197301946689259452997495749532572338044474732748366417312503191763432398630458073290364004509013853543031926655919594445988790652838314780145237267566686337995029114505136401004640160664263776355122526558666635942761388056597959865098093021464228805823778036675211539822399414983250741934181090404800875707208385118184221908864158562564965928424608754003545650048792645995102542832027261897274450389607168652025570247213067007653237979826155082455876059590255806828711579807295045308122479344007798203462088742067242646075430385625232984784221049013030636704690967705452234368164552852088759615712966830339065846931810566755785983760642039489366811876412560017920454770519761298720233983269071880395258036955697740049608325023763205581833996346068024774919040418867413023839742931427551381415770439169041203222286555645003485973779734388625944259858164662808293750392135431677115536505312020987065215639129659693828282549055755972370641982306569813281499434065477737356324720152483920254662894927843459162189722738179636213766056601660396688743081029264200668281758039158221110593737216401772703948632646475295497185377200653592958957368579736782272402111013403993256088535537818681999514811668106529374694405091623226469852456398828419462772014777021996323681457629779942468250023649138716776438221665714632423786765773940924522520365971780022385831332083904937929185369024403240607253282770865333978086770115148211019193404518414310557221655436581034620841777383250988376646368333866685756247125744347548256639247563240825591834804445161256365266041697284931613615198564849067456534484472476651050077132394308221916506221954765326401897850654287992072457119548683920262714840969479090589512110567751076895409113437226075601489966357578140639403234868773674279781473058495361835706894104762574889261104636891898475844171804846045112966250617677526266427096171542246830630452492285698100086587516577638328904717168968653690470390393429902405491172417326546673293548899850302701241420313102714683151405781832165110085067062036304477444431715379717440030895279317440735749912186580875859848127754861338381981028563546606143480202581131084802421260872893898880389630550490786995765957060459126859256203986022686462763542080635409466425724406573338155200380051361843186224169335479420803355801315091580597809901968200914599010763911616185344917529803263643830856881141468781500668944286104647895543441753966367796624237167012644931368304522306341763023606203740813003684842710377970701649524580820080468640921662070983433894924814908400110314206820120012275658766350411220835731072749655820299759090340896948168541449723236434489509210752130325377755503247730258505173281814463653620772095936037432432671414173245065294018665064587379624160439389884736590239432872862485657473800147189445651673282661885734852728385566618775717843431014845750746539998806870884578599766185710153254662830078451449914534165371819266157962296816056485291920954886580429864769324235425543236979216601844907329937618036968123552591518218140286500535978571043395617578911964772125104531937454813187623994874009736192198531439053032970926995329124340794466605255706489352639710015145733532798439643544448439937609993849113414356789014276662520171519045160455814962829368129511053503664107799622272711847383446583081749643153997225829094787722021126221195340477539360103193327663003681866190418795369415737514855764641558230643878589494119547923435731825794335769509828222047759968440774481899831924195387188640194648301105906368132737866385299546673169936659204677471496909401920808966306449963788200770375651945334437974840294284772184759656068679899115100488482898024908994779154498795620243380472025029776258115985859561144197250647880711434712039075236569470865184923047211754365353804552961861277637268416025057578191326936884780187013905995440235637317518180289039630776994438616935272603511736028550010400967420495274764814072799211649658003624721944217666307209286563861264044672453252517714451535510893820783266720638320529835551606607871203287790639251622120050119705856581422456876403770821780565582894932177111551560957724337195033227037889359343854535261947299791236795839899611857943362605007331512615463473522451243205618982726073674299067159931842510828382882553130003973559468040876070714151454527650163355030048860122684699643997026775539072814297366227389721036130440186285109559562496100332381133073534283553728244209919994109076133868001605420504011661182349443131626285209314266112638564627779854765674052690962373767598026987487839535751778510670165729068750843190730187807292223819070368820312637797953865305517178019607771519411471590925174849990544918538039797274521893723217561078322989410576761761590154404009851343209736999627203864845095127118341478920697513304347416304671790018239662335432128567309120726801075758200027303864252890695679767118646675052132391471650633202331531045563154836192660722894107610873089896293241922399703843671689571550434947469255971359498838295699426364463434294315937924156040484734538811163224713120037596015760702701366558621097770848531872627204415034963096302390103433586953860788458851896956474090716176609075137093040479978958771172168401588198992933858818132979061287092657929885391733270379789325080485429030796123992150395383253991352294553497770520862176278937300269260911741437502332546978298735795684709332598255390994093121430835665761460992932713753436696908096049430557611796706802060031148272542157839315730087986754706771386373336130365514304805989309899758637199209541383946874188533091412685007402341784208597477775852000820622970299656446574846936235818074202985119643577108306007094784198343155709897152311717585697452051883612847058006457216349231394687031495805883422707490661836034124338398731955235679309795230318148183759257604388061030639888945135577508247162763475868711269554886751402455418866224660470908128244454847066403546589231317322796353049583143816490707724686931957077821004344760623482013277550261636871892643009143485819762510307016604789826175732357532904766962155721319439997920382159874478853112348418741646452083660766625782659337565601271962852121709202757648162751578392100006951105590471674444563697266085621710667814570730705098955102697245579040875547730311856321314911551056858888462359111204484062662690687009727129669245206890442933902670435827873866911679991813147711319793977331678760865531584558010225886036336565014807499690694910634892199335092408674388536523557620737452330334464483057499817693402407475052391810061038182876671924141644684725306417739957186407808502195929192976829554167010509339859423052383492925162795354936665805813571015774377034933503432519359933779961184124505674021645747834330828267331376925278238701756494922948494321354736193734525630544370681736365539085528738066535092623079295193627718742677597162389075379762116875845842816846148559647447965049561099650978997600852739530228676757895095065995866825549654830558421048860768763872483129785825111460617089673625296461306055934710562837885222609142612250540288425449756551126159038842417664989627747367069658324071631446708641938627197411364155129618143287603192080771615535533099406501638751599983604385147372700665599767161089501842111249964113539249336472045394639715713739936831388096436313816528207867096515116411924570169242299372204754104099815310370259978805154248477599459204421303001384798652968317977696362589991155619373653532921343907799910211083948754121234468317306806662914384156155567011356401725119797401753200685042200031541946656827861033645039944023477441236280613225517916351122967978223570456960853684201956601788645401074014515790804686138567204010136080778566063032823525534682697992256878876038850959975046782666564506772170001706468252200866479835310110985567802944949229903712884641868075674062514104499363902676194146245577194745914817863132313099378803747462235156957096962614356703563699165290377733243023767073617794584875818286678993026555999076958233141989750337884746194315010271428967875539286964902404543394024703911234338266409691965639167494830477846413068280530110609544360793661265623678167920404869287808371651133545426421880289279831611385403272154913399798281847207400057059492347166808556644891438583820812852710877405302880620059928423886795719655138261852833586255660309776884139544793990717473451334791461640130599100136944853363147271088627420963828166601275829558482064162455906960253408231775947073167166790680787440396477413358820138999742692114820332107336358536658770056385896804633546258853683018171604360501503542160393224573159736507233182050786532485592169191507971012605675822438591516695776642638958077007979700589853463035940444480893703180684461760258739365013706686636198771374900434319991928969898135584607975764276575062812026048229368870903081953885774830362327642920070511729483850463300241908846772236467089330423690087715378849463011782831856640404081570599079530573891717697094863796218687615597621718149087644378172546697285270549168435258052082234872951992608799662509140521801374310959961825662218023996408749180328043453124658778759021422461795299329643045429290032476018332632980835042279266204352328891097571405117457802890163485522666467368374220239580625540070942329034466782422952562367766121031434267235108946821547327992931835115479095830892355812549105373833158331892374238607591572682192519217415815105927661729341516055505752693027047959051320105001542702334918750020870690427089586592419185454093491196889611693776563834932443933654736715195153471176766503491062504308251347543549060891898373938208072786383771639724744497743073586902467631226367065431468744848673212969680835141292054742099377669519179910853280257278712747794183994100829073820346244965117238467254238483171885203423598053163730496356838173585622187493213349414118518072382838113086842616314541755173102155294373015233943304950146184827605571024092223447525223004527193209166658351720408644670327375005613732528720904542305846223180745539691894168700022942156558004137739670347433898702393146541295249416135670891758308591473329794139332064781826725970747428703430513542202594166237431474260113102337884556683164832697008458426306192136899915484529648635732974736119063909144403238068401820132732456446349790431515241592494199522836630842780502219034679362275327927081557936746255762513669768018444348824131900508858283737888419185019215273506598528732943869336292316479246978010253757332894119760923270837346584155087743535832890291898977589092338879559914479339142473820281701280586579851265285340704813231747261337791537968281244517526569490909625328367861798786814773712921089469499952970617494797397307886520235026417000047135371604941577412590456820198802042716515875656191157798977154063004462558619665845811664287807552181140152438069297238301601878978248599854163057734649444283285475483991966864082721014139194938869325441469875371905113685638147259958861410342160787847740984995343088995522385802806359024449627054792263128167109266781840245751758890748933981976851727860928306130268088907151297855153998885418083687533649201249057707827235156770847302017972569664067989277976275620673144782551934004146897940832946230620214020920696654871685547778843169690668819275352787974566377275915834868915535041655942316980466593633080980142410444407954404642211576436202671084584331396026309692848135042723139424958733002531826811868249706285157167385275340191083730736846456824977420366716120233501760476471385633668257374535351215728010989321285194651777353315101180786112338938541870240334359987143806804214702804134819164790270610411262209782850970677097556626796744004127248495163663074675843007638619183372024831482436942266904276292708031040846896937661850123487270219992416409786699043451771946785416730827139670014545841991855816834788514596118098138154840387999083720767754334337502458528988330633034546017366254907247730766849398993019568113091706998175803042435597602003750213548740536096240975555994588742467193419374714705739428564831651588626092643899242303893877265655575971494048927094785863346312494901699661077973170121009725024181479357768580885265155987057304580721969347199931496157003260267224445183524341875269155086455674621309027197516765634621750150373648361291093741581753590493788599442130735516952462100449216859759283172139897820847304013495612202621417345017967586237893653866660693701974659627498595930071234380087676298846257801847300411284706541838774960965859587767296196850244534237735446080003562132748521611081918327359850310541259819715050429300785255223016897653248690907093494722427075456579361550948766352669677207346144644820676035376464969576244898889305610268034910120093827924848192653462082047885332858918880714377323092954568527334781873139967999849022171364441589607267905913955434810871269367384917574022363170339652745090208684763895467550256088232171089469266177854316599277892916648281853141124391309902412557060355182955086438435389040082418070787025096147569855095531337548059803871868790593886363154278349710667894265191784864305007942476382676709163420605545402922535685112455266505854632666451084790395861147926906864537638672140686634808494502925580097873208603345275687999380048869797213936340511460806873015301754242300917846454406135154576725605037035762098145743143831304647103421121023336664122978847370814920612064428626525987892878698958376678274918139380910239048925801610152295041761602386820530515110753577760368754145191219579032996526933943028600074794106676042792489105018797775621590739664405080028636643639272828460099738934521073274031188350604092438563780925498861049246158648285185037899139696034374120732186165233467743229090833417035356828994986662604897895339414190763752858283262759389043889132631527883166001036296238735431076898843905591117910444370895359625562626687610615667360363818740217294945053742520423736260158774929856849638592095920793074196752551935819977222748630711583460616897086750502787854883399534212936866162890654658965021770606490414257180190719278947372812234024655591278756278277422235985597101517067599764163337656157890078454272474819924958532479539410179514640391194494693408749492906349303313924128210586594024457307140146254203325323650276827256872608003847563728702965852864990260128480376655265825299722852924082301935569448828613875092425281230062592479824566261456115260064281622396796659149522595223561663136454153687108293102714222443379853893274022981556582262317504772403322327044451363692754070648226250562958252096881831877423479625493578456063957801937630248152873096226598979553713213104162215920177007039530657713264793883509156668848000844426384441886953551037799699068747032615259641335463005725025050112614411475579219076894766792519793971828102137920189567826954968643601438027993389929556580388655888525426455519119308061753606085164413993306920692915126863286547446869056845564725044870890655847037443958270588404873933229505897900986344494222376988233786280296495243724968236821420321046814577203320616367373453236168558322541230227236168847769469204245124293499479133099199283795658174283831063280555320693925004586672412880533890008061376036600670698572457145564724864295385378012411796746608762023572173573331360985484317317177279617877313085753182170801437381207177599692626598063075662158783133718223168158869058009785072060755074153050331568487898149944691868294213980595539179801549080537777795418501397382879533300611225030224235719572994656818133532851830225098790245603393001986167758300918232505027556764964811983314618453154954469181556127935851720869179339096339861694443526363274108958294513977556052633613586550735970807377780120506677214107676406065633037571999178019722759695756899225506171767456223745239596560576964875007355447191423594072561839248542018675909694832520905192025690675100759329949880531269789043728034466362164561247775352056261041456561283373763307330791260504970350938302298417338899963735499288448169253338140788094347836193781493841688761436564974682736005287186062749065818352854274860380363389805045933316829268778791102041422272815579867614515724265826511417131403379348433738417703767460530020873469175190331432029868483245459883181728365613348983652853538322151054423227202751631892060930987097715569558167184908430801055146929834649611530023026427469263918362688963275881404387372153235668890271094954932896464378118817363608482885735720859011926006840812751037410169537027602416727584373714780721527439909821550373756714835626547907934667921252051053511994641712167979961876223677432383491840235841244445735042515968686187054688811260099712261462513182925830188885253728314742952150707974447327977977807869876112768162841549496229152863318713760032160251384842542575527000760480003942186732048359168600754731684304888874891128896576775442652679657752326891815119342615108195875028177060309568107390830870911573634188129001987924389673518227052969116775264019728040677726092300326367881881151166815537743483252784377836318101688775643258268713122619579933085938746836706573020638704272559351766889211585097546155567322446756471988465535995770555889783605824155521518679019050565814330327068431586378939392871324912089494672982582660550433858285750362396876725501212714831388109344339190279266158618952974305352270315877355154278413971789562529086842654935951103182296432134717759720454352840797905502214584827276516791297437178119294829317447300541742270268881738475600559697239211408689025467588131808933339754634613943307482495017852666780489372580100628283339185938296065617195828647100952379498306428106756378663520644212099657475049203617409712092450984789127229212186669637527981282851427308188037412002689866247149257003665158244141652486267118990538657981031717092193517594955123692483203146101023646285252455968696685732822908265390417624513074198411693590075753827192377391971175770248934293672093741729235685156763069595042461055929227858301224153399934105254136414064154618966602343228416575010052190715885647943865235632390650059128413996072111486659877241047703203556278854873199299073153084268561147824871795211925337941507839644553781701312059691816175438395453862651890787575578618093366271054025613503467434398413478548324174258861189080878890095229861988091289004693792708470661762303335965392875209862555086672624414063891244899529955501821827713660718211316344772043467855412454422174424884694873870048653724693453917045347481449685057665913729864063094373275222183741422497632661040106323025246817025052070530986454472971670742292927544778822772904537975259070989572600069128449504013825910322248930317038418263615121414252601120327317765624068392900506916630183242127885010817991759425177228628845672154881281533546324443882473026292310651518425164272058160225599916272289149398965673024344623112660211950283561480553916214857024884865895568200682078796111541372081980072358692745376375355320909063396201159719752236956680883645404419137111789893018147030763378911814068669977520501716174367616180658917000907294750239726153409018136686083477213147139736054055364455715970990066239909925406795587426008916143968813693699460167818139892250977768240160194928121746661949685411370736529058115624013036458434941074373927287135729417741334814098811835174966539168997167470483148532162378023484199987686777257159560142986010575242135134158966414139092945518330960819603181499823246832963255471629235322743429981095304529882410195748438709322578507841964287096045570456617820246685804724146629322931463572958281892458312438881073762011795627769839149682085553248420372919855079953868995255663023466597523482529692121944167293521150156050494804024347736735179407737435475061091558730776454917845414033353111871304717156086997958158100366749430788921439705616900831231101530952430969989738278668177172408211347886114787655905313827371026506725898696087220871817475182288101030464095062653172490859388422486133825664458197825498035338165701350782148730084211921098821471379977626835822364929832383438539100926272196053570057706894315944377793862596818786977324435464346251262522427743394902547653967168794682604094319142605964901178467888547666483349681185419441858522733605094411180329292699728913375649079376196704166515126166970948022016936899928120376371640974365504801970547729085842854474761033807324791831095728213313834378592367378244963753671345505418715092547905234426240506302249448183657996739435074370166381528363979438731299317721050143239795016949440367077912937160396250470277476083114040974893296959853303025536465575252953003719465342802341596748892101289011512608039643166135200558604107452002808698529293317100672969993460827091196340094428225069520566832811115599522039128692509634366340671894179211665800379577380515711044037315209920022538561609384244663048522511015818837385704005838581286784151208205079380901051012766974369231590604532359086527976299554423487886834485373897098280816457001577818265462652364468508136313360778914257300585649345309858227637668783580499404484675578474539186212399415016638227217639620993777435184135707107552367271267020083426635824040846829474881302668198337500600901714879476130285100252350437016468476334353225896931721872681753137311386948039522275572455876084377647228182228631030085183355950541296626863062328659828158416990020498316078287069783528088875986330117632944680018538288692184803285375036279890842966749975471925594827297659831654920938813162434782865696973176686580495651413105990159334475574605013570750423563661633871404792666565254995859537250901116705333673788704500440921794698277952073261807385346612587412723884524829851739464959367170191844580741613629043431752753240410281416627221655744583036207004646748145698964447547195134937745860199296843258793652211455471371839048030555424280954800124293267536547632707749641942354721627241218154044185630647619519857804963810804150840085675848874239959759278503196153803733674384076727929045800936571978891441109361368731083163078327666903447550515919470513516957796177087236401112465825826623141457296370300723770342834721896622214802468517487072786488876593630012352046118491906360364677955230701341226467752122104183468376726067735313019944081117484374810740485877528585485477509421572064395049340155197180903954709523884415086031609436063256313618775089495997130082084568915222832971280848647513822168097912010523050242030101297612799462206730496310693985173944469477746107654093763601208423214708514056019580113188715422043228318652682224347769532634099126920316324595109242492016979975286809749540896150398858821126072073116043719126396290495495007404249651623122850010293665365456351445134499186540644010500840397097041289433086162140785837472807434346864419658076606621803952680348520132258924972769692705924963344367868726571066621676240013837156574873751442025206365585466218174228469377357038000624908729703461417790366971690008029394640854767827376424186884389685009597502723364792462990352374224810777434497834481116738466802419685022611239569486482920708806504806448133744591283988103672739793905186660350525417297602932826858827397287665002434569892761334176758746407144749599677978945061573232766581270932869325231378073570652920326913112915234007698542303986269533799849675887613105765310066566704473215588610144668462319653673206632214412022487437107801081047034413010491907116694836366305909240047355138478476832753226108889316289402903825971747086041024693654436006808605203495680369739331757655258260123706737470018459145997286541228518685008122685143401817329024612194577317800408621056129795092455545712704568549067030178000628907228181138737666905103067393581434952732794907191491006667758616166931579254850627710710116410619122254129681661905982856559347304973734177528632487954989753092183685895847223084042722404512984970437933244050724830732615679483852005101074777059364283759037818792381207502017467805380847377391649844667832413303007117404866139933654712745714066939717524543065743356439160153267569262962302285840347417754322801151817906147327179783805291812860029107538738457878253702569826869992508939740353697336680084116803344013798734088755897059549079841620388312763209259485672897856442714444133331508911859314518434078564067928816813416202233782569546464341689625112165366922954569244308767893739892160410070163750801402481006654083545266296932031052665683613855907059929277255169389884095928012667353193931559803871457748895514056533068610784396734550237975008762566698415101346619705899848900768354722282422392356316523341453543884488389179687228072135120998324195182639590940964709824777702277898647165964107821112856949869829721445923652092117435216160369163877116971489716238832090585813033808897574792468877841129360111430917664141458268693938400492741062766753769125500539567239463451968837464528668421786594498656798083033958898306692777804428207901369465014956617813114204605153402276602597226509017611275816961204097096748659114664536317261073769624257328264080967426971074761255456993800179176080407643584380517441643214579700814244150564864515965591152049552348302393753057879709873499346219424317575607273606090295232702681357421670371718990877825503041108130903542155523276058568659031154718647079119190468089064697056155098233273961760202046778919868361566698148819993310248182691267159419367008439377164602516496313628208159980742685423870821819690764270374000345662429266803066673553245970943885026216395726616612580513720083108964515546265436948848819200490742380477474911582540563548999631137149931555643313713185268815167531518142530924970609264208276999503451714912274859149945395641471775836866605432119833589768371282687316940078199028204740931573292999011644256364619091263900149608682424274962786768915712893355348266798760924748508041542953594436094280568621198091065875576232907006315938707175937596142142815360985114910761409883086949179874384418171436663184861858216487713241459829218603842597035657074413403467587230586353181395153620136592463040696903872025732156991871273578812386990999344877518368340166867770665851364522751999698209338466892868547617893479770317713103443004839491323626432005373475861853524240650240796491020996037091435510722608794417123924596159542956110913231179130778384714432134645811730043740612444821277150635839491495062711870170956109350902301597980515097957146391410670263161277931808276750963582396814271583991717438798759157114366597461370912936491159398917803245651873011269153176317169243194929274564385473013152363782254196990270685031704551277857865612635496163206555952681256541318911824568429162080274485814563841765677389383253066758380795611360919200980286592099835284545648076294793759200251748304831423442727009395334744651028727339795264063830218693768753655060084525349284181342997197831768935177151345280979784713898543936885769117661281272288539258876319630408256390349652892341222061220939923648504630756240926800512180088910449720260172368428277518921034118871447479518202343764479964758951970777791237853141518735340199403965554332043131730813083106792605353004266987788293356664820994062857643275138465473127787419969857454546980900853539716989722796221970459489121923845377920931815073406167756829239688554724310849783653616112551363887307475493000426810685353199538511141234572484197038654402384163128711513025653580154313654733463393582163523214826307033199627746411227987588480062893221631031487088138828690240538149207852903001916529021325648451068047240857881523324327438649883620170812867275303197620925370571515447874710518267876968041627029031504363739530380667926104474324454100329500852307452916060957208873056652898726963127664070292714512974847489683866034179401868700654108817499062461680180746129417150528420553491260997761561169556473628779565844586079566821812281371969172248687263661992864637556367865286395345673346791224395211790688197278933056945274355800683586462564244783477280976581297466510820759851559076375879827895108802330303663386448110678141949017630775915297498783386233500562381072642834837901263276083218467649404711208784709647978082926087850562878304611331197548937740149645658469151707773870258686729141865506713838092149537859326676658168165979859843781166071738973533140220141367366180442557963132850366686700069314692987460533820325360584034985528967563682693678646853790237256594042908086938981152946687225399644369621998167134068683510148703972712523694725935753736342104358768346732302391131579255064834497335466589748336691678229926748774041729663360829993759732750984932339354121013131897887158104099831521590554251423109245445047743601898821351547088588060045427521411092016036872600669539873986484147958991102703651875997972068515994091801483332225078678942973051679099756273867326487930819302285369322201048548768853787449823961184811677484758570466503754131624756141532431669955988092366931428035969207378553518936419486949923689997923192335218250910560519833105713352742408316443054467473151802879139941725324402481574419419197752928801769111689219975538486295730454123695889499985782606786948064091048858330235421528981807780437824461881688376863856878346903429024300951894056662133760825925612822439823375593724636520772423435531069649890846200182715594705040799484987077670610304436309779849063994748383958543150855423341344845461722750977985512633157101503395680451123818698131794425738083561793435574136969303809479335241206619141258630174252841131132868467436224240595726868454196664577773849163596706199635940649132487847328376160383101702533253810885395152679931657531433041125221127764228375051049977055925351965109056844497701113718464266478297423975243533320446974769835556616910633618585012259659044969324952099383393817474865911549218694017725933283473503962233294722810800262474917824032631457556838852162144514856936877516649154917153912599507994057152560387268170986669612955323474310597723402558691034297924129660483571351971537699894767802750538275464234659125911721809639610274460130067187431708737901495702529152244495273792203916648463183813106240737196891420773730380649802742077021821207425421070451952704055044333426662286494594890459847645647688328491615452954802354947531845896305486648052569672601558332090631946152716121763905952932664495857896802808265507860031690227430881698583388845459307311351659669195792829087401246048734704479569948500906416347227103497327325795285440538153440578031975191334690035898746778930542806856904156201534951251687937536766206754632267482261004923925190552209764682545223005007647249232846807010481174064699316373674327163238606773980178710254552870873744116133964087281998586730987009461529764518203113944386029276388338464723517287722028320827125858063643900725083904017292589518089038776137832749421094863984804101716481844614811654968982741746097814705846447439828260449301093487098749900349654583906477945416075749244598441175838706590407366549597392120653329211116468889129335838916426263649340923300991639687795438778316902886422844550266673789335551237976816041698786323902035015657832352259348396842158702747319407180513726342103726103807078261957908330758883268159310758390819466629076858594285124916549212150187778182357683616576199439343049055859354785112042755499706992012736739322719506089785184641147893199180670951175824087351460107272099483807084243567911208732453704113333786298332013005665048121042621001020722847739989619585243243443622981813904629113675385062025593908615794682236988266849487405819485195463399218411327562527125365202888004961839132924435220974473218754247906509994362117962555903669978545877066580397016022623734840947808351663583276156416022476153463525430327376435601000736830153766901665708817818260148119139223135479892911391286010927864186878213394353450105060449885869691499489344436835632749586935011711662165435338387669787354035126785929071455921228860131610519015529430707850181689996041314290512758898188616083163923143216130971783392234709657173716986286347111719713962247893243923247741638474034545808717096980891768707693028758203389897028081130804858636679976543138622546567056544808246002970672593089263261555140901662083358995347029883429423568505901825382290210525367454020167514219142820283222419608302291166649330983535931086627792761717073147677885947674682410011229513015563882897501332948879359120695665954932347042410789755913925865436984891674094233408193097751770572103225108926828522273089030526851979040918375439252838649358718274092463251684151936363471504840951540051707870893879659603002748748385545469673295060984583297897522773145454203601744821321373066047198719916474269383835861730586143519539197601414759214559817898207709045848926194747959806159313707624892914084094072614106304628681595555706310113091193711704291022082721921567568371405769733719679642608753544445812139992434401031260812407162878536503097926050422158399066908747040061561297759719596385601558226193788567859192511346928172384357749254435505791139094223173141035795591462733930302271829336260920714178147666881828161907505648792611676510201127825548527765661713263013822796823445556912930298469508118105361598943640588663610346801749853678357470174495339767073265672954959586047351949572974362304630650226592985385341833310456109076997970062512350779136795930340982017380459532768474012470190747982653670421466195233680156095285587223103786844635040892252498589695835597029784633481518297192051698610781086781646683112831365456308261124010801355405544356260247925856241685649207907305673450729525434006774141472766910204723975970810251577523638718824128491726192889137245339407294983505149473094394621861130477084309136794304525418683539473132516811122288127708608141520481043957377286264343336541511732830328996723763760215864464838823808022718846354642001588939013181716744370797115743455290322872406011198653319369000993901793449761283000520660350300665117199643817722850698181845200761627540376081106437298292561808579538936829358366507191778651398051052816732624605024475955078646431364678435548370788751776153488551509359510982278427729981121620837577017545614348150308101467113508982117720293637439291087449153620468451303889497875261191008507211138111010329699836520631705219499677921293430296923737824489366151058738905335721179794607995344096525847660931526388973134111657894879700489767721912593517760452088651848620137495397937753404490169843116224051675836042941127255189194624514411889891491681572898665376197026160420083300794901275575609883099076146060907075642982065869694546354298976554786407511996019017748944662700083393053544359408240295693848894736182137071893887928412433521734465821916166833379950510866567361304862933973360284408578481964057773071976390705356064087664641396398178338319864826762587436305620058340660991222175337716859901390265172821078078155284270065577754967674804380384857905317661417470563039064725674783221779164648790412317301182168480442911645344506173345572328801593139587437316113684671804850173608156627391219348396310726600664728293653820221090443417813777706123697962016360858199786845742845220181339738459742998209929567299672351913454836341702102573353198901602931861558868314748206923547540693729976385059385546010700253782412038958760169942060007685761920609232137687077194101829698080267380678535556523322268469730684164108490889435820378946359350954847606879329454435928211720662912271772371851218891830783979520999554584815127181374505666213187089197911841971899977445318642980544595659804518566791444236272974914416667370688366292276995935385625800507116789295966620283860560974220190334344695276817574491156568362773729379116806349032659010481752895968406330659632025640217016104325053624164918318397830563648512141014053376141384347467735983152607511906694853133160888916029421624720334864271561724141752687628746995495051344764388271652232058711253384700229714954647131597204844257391547848366277872756662630213873997418586573515682021919043771134068151584576394324126062323459432594822106429290874498916735218729976518461596190015944440034581019354409409449020859087848936851522382737995867342544770597094755248163373891862755264711974404588319142486246905882265563093794781354448609682594023619635820847458927340163031195933676160743930381772621623466197455959572039361038273310024870039982294972404058628113932008171717348130395341595192857634947123676205880527271195071973726384757039497425024126513439679483528274514624732176174995953819393004045935173897653734780398277353042290770394237349207459126760385052040558365756118559931813321778707047075807239664555035180260678804064788029638279336094720604419884054566118552522514650205555385437039531066123440400405529132952318075621154754702057714510580096111124042097661251731763875628109032470072214020257679990524587789015557717429838986493050979905275706448476969415566584774350184615427652792894834067074231120103339093659701134455461740680835709746997291175256697805327262683748602627359720720691100553596129649966872256340173955530539490391109540276989575010584312761268370876087403218211548998537695016236603238947458589120265694081805451001345110099224214361050734549956060220260270827117467263989937637007870726207800525005665688605642183313799682427942763274031582482797026784928889950550813335972212869336625219228653853571290250098859196115904712006797893947468057263544169891532025481231203116725985623146707731356627997242591398744634484009575250721953582382077305059663483655822715136211076443085957656543437255429944720683605648595837068979016566523909702612507582820989127893486179401782863038285352124073525581149665454639308276968549687064619018951579086563210450323409540294929381183811545349917760650084084504637852751357985311505665017237457482042812272585280845370303718060191014157449842590656164267538766599272618893323105465947129338256542697813757522983443224456303103205765737906307637358924406901842439532327418180507981856548702301957851504155272123609586772301455979685032082227448642598095364575730013144304253330338907163751848465031953682840089569418997253431722102437977097078258793743629521585442678587869352618147970561548448065251382460839349195641241789398483954536406876095249594102328655224909522009507791907930292640848149192906726628506710686186889384633140840915386663572244197475803353632205066369860110853410960575093601852471505518661496682113431933886997672868625222150201003018894592707802290649661470996803404582076142609050302224986233865050795401849041909041478146839589779464213899865833643532329078475606718761942289153255076460779470011871830152714083711018997601963812484441244283212680330116181722206507232652338108256994637013164681516930777752803772424519392158811721803825430637454799465340557821242304575498114489101428330771558358478459726701929924955014474577526625025615994197560918379907785694600962553472643000777275095545642878315885828843791753369340944828271978018791520529131822518239880358098734174356020147018740264464186473427377992158102777523358258817473299896366367440990287177734444830784746843779185417209718584835315517717060217373917751863692518923484047301833228565438800025606087103403716735748345860470369928365009686571860624302298525870863342342230116733092887373313229511652652921870447370247061640448729072125075237406566819365108684110079930471942004743895550697214491821820210811413963414599768664992775622905503870364205478727150525864980422511431637814319043825652363595112826702444834191318282122173294302472193503395203363227409786718940348945332645652625733698488540986844657892198925914973946047993901579845834364495060595232993031442558604972903864331733368800459775901969239791731716746888858468604503474768564942707096207908241949317381626778316660048046742819036430554592662248304763187017732799335375143714991768989138076122617523194715186635642952847129931154298326147940148391223031647195387005786113662399310863245438117516552202157470871479026389211487381435463234183458788958082218936877600375629429449495871365972762239578647137132052017865235173427263335849826143414579455404444729392285580101383290091826466643332589134670433280934641552061414621262555389089523468827209699549441837549203916768869527534190813136051783483022325370640328326969481990929730873292545117900813512246118935339832906746088608951991277453010200877665568299456207873578377082566529233487208007908763120500483130882236676164868469804120496472947218459497763122241114847870472588908393039723542620334384936582082063001693850154251218093867027698579966872263175308812478999458221094170302403055051677157300831112558104664028085474400260426069824061077703361219567438304710536496483773236799133693755324687372861256025463685925911781345099147796612011238526881816385646800682043310207159809931774862378052541064483137053506359587384421985864758191487235753590257308973957334427814681486624845540664390317763801322585258097845403439722493309160549945301256019109170427889381392772294905156197804203149783678786240756059592451667187187396145094167719110329252458458727989553501194096193465664431046966584386240448553270148710633995252815944157606747258913450822206467795111339158545932797453964086792218509366300030927781919549471131541874379085687276864768669467053240076304665546659548540351511418692947169678365101382201213604681512923494975551147888260332717478927114283478517302995740408236362114069361961068390874927401148410999803899331079761156052357511284784416174847671818644151975231965969514183728891356404628918302352191138376650586247630761290710646431911156341782797416586924998286432725933877644347736693579282011216556264504440771436088213926142966866578464789273193271257534958320715361784555365485784341299904444736023632053074147114871602424755776217195009928196540496816792574371292487732686673902323367421302702751708848401198385850561000825600085454606674118433006924933015183295623440234267361020028823759529925963245349477012381719643358739144647920067316984543822317213387106982279849129404637118520364609121539677928799515070361416078687823464792587783942737361181308730729113631266811396189394178593670933498364517468140805443677625108462160817152133727985772877090800313965760956841016404218869777421734063714409817711135969448473388446589847214006851431230733418866318580716208983766562010263744465212489183165691691917781402159650792724681000655786901987225021692428577648788287136915955087266518645645231897030031375644981701951671506427438713436041830936658760122562092584539133462123243220892579814876457176416533156515354681378705388205622866274394209727615217217079628920019728781807481697479370475677485953149604707306649694661220712235777052670185406775213786963479871628171648734772835166124774951274590806953066546070104120206686273235996997992168376828285236927004875814351449404633456369980082390066188298435400204671389361900161800696950450811924988558360468308913263845915317587589422969291426449660481492131231996332976623515091297836851146589538126802397783863696539132402662377945404433950935721224253335266453633412384055817715411896990341497140153093895240337579492121005365232124849220912616483192518233155734175321757572463487504407921943891138245392818735331401318153251685109742656243616280454785254266200939768940191219250586265944110110447001798913830124182889848055786190852406362614508471353194544825200114644874664707590601073437543570714756405663614101566716176092577960960974058732962719747968406111922547602143647638563246690393539134167860993978996102244300274448237827039248810032779523382582363043635994117843586973449000431210334586756688169201261136853027349365725163534318624348158406283013113546705919863192184530611885494282227864023836125209543519559552533338842851799571103983127151399262336437646039425242285895285983094194805084729682050037041667452746996973197276809318303561793480345867387622388933994438992362191398461054023613750001839913508560353916725507152932029589645326459377854396002205083277956657024162339033727301099941188307543460992951740887387624899079085583467818593392417553714090290559296096924176045680985895841352019283336627074610938561097914885269623892481729567344867447200332358525095552180211703592620531045486215940166508681516977892663539555825867962689152748087551567711792573868457234873868999957957687436990606925677680614131597909222459797320140437499004714705484913141841750904340858774410027207192240975704305738909143980118205085275417116439214216081570104187484546658817916159859799501190324126448665587820367219758066889906086949926793329536417310395920255446491482889404204064787157463583123809481060217764293125950751681331627179998999850425109948477965950711630789558276639664892751395266522487333485781167513120411400720157093342910588937938493095868462818244585939228414731991063604528383150421334808822436313342669866119386905410655742911573562936674076211829372351038438970005514663854261591783823053714811614231775843349082727672496798701603808187343616451352548697251122706828495099591231151091264656996069621981361233495786068482830847594841852513052436020397172121320337902562591499567624304152970520136989434552748870235898785121179181253278331111262435441242889323549099601103371129410781422457147050938535962894521650836164684898801078909013726203278202717594276739854235554749284846491392865063029402004826893541072020037851714207009614992357238348307916861266540353394104928357836552543445225204471342928947216149593609586392458961551238093945634729510664116456248118025327146847397791605293681870131384231280679110593280284325883521922292420049348655156076249204223343831443441651085618911662250660570469874045913219049813187921672875536305507173938608556367553152077166603476652951260882870390971527124419783760330200017822740160836051532501544514954678733821453107416199588878633710170620027637342341351923220920202917675826030741486519710599758285179822985225853100335381987736271524513422077110083027563252091457727976059082876214701001622614375131457581179670813469491266076621363861154280320786876737366313358396764594451422733593567619918518430514588498656575960052054649932661123846481893491986777809353319654565250458274079239369761157940396503559670669102300886380287705778644043062479753959045703018363532751414645290160104726076170912378247438650988215563918774606349212814047721153845685453431451826001697577886059027400001808672228311736228862733159430040479979912044383897253741958817833145493790218861225369652752808677377604124235952306912160296061909126407540264162458346268577966792836281314704306256158448452974612653792691891440669344601045850349659444741873659467097025484866999378525611767241615151968973438349896896763091219918636028141889218742399233857030305358015067892777056892930500095082446767908247302376147635830399190942398714424346695519968600098661930571644781799413513039851094302515768342776379716166963746151259673459370990178774490827859092634449894363153917415233476288446489624999523246855600705680450462020461768536977140578289426802583144893524055901365465700098704082431529786636230570396175878356503890731081141472870487243994965520353342318660149296161153796257988081677777721690948677320735365255082957487760487248434316785429543271110150648092554883007576520217563492337297129200670251559825328198848118606239266451213351569133351260839152453593800242916636246192920855604623143182132508946924638835620936747487934622648363928872904218576770923219860082846730645131808234425165937172022247322318888899592828249543687210818742526217891890528479706936314520821875563177102186573601530824258588431401552955017446871399766778770971420561059008502830686686648228531952421757162049560021426659836680963882923994651892173411989381371497841899814110130706585791280308393792078443670080929701712176303999622550565517903602094714865102252453616347855846945064241083705540551690752296768133617762257547477363568065789882799365923876863715421386125840061610259736993032388552554978361436986393749660616546120467280065668671363104071550244899793264134295758881466848024144853706426188918311062334769558314290310074420656377978836529958992367474208314883395464023468588987108049734637923773456069375095155017520297313231649803446862871283207754737927845925715138575696732292946308397700480696392812079937362152223978766657805691516741094701416946076460284952890426921540438731094464213301951609547710022313736980796225792132675185010852206294709972273191148305917496626142440955974459815731706470363622889966144942057321516170863691328350503571570679171285534689536756879896117125632271382042450366185369164385697306098233255089117229228275516848561430085258170664950746235821517301526243316539103003083556730816513336178905337994255453928852301553570220004844747671280488509798905665847299568696284642061396270887373641297823040373440895734000144398372902951655155133999713025428170417205678602312188943630934319956877466063051704203303301458545495022490018272544101415529759392264290512884341766991998536257331180233006361753199009980836622509531962916268128375188083598139138585759995824604770166876820770188979796490658189856315518264541846740460244499314343022992706116117009539250588056369804572354710967767007459975655189948886339125586802012660350750826260664583029945381880707999849883735783597356559111165854390486751590628624177475313198879413904005328107527390133371695421039502341789631987560346044954193707077668194852018960595290054138442996390826946626636806210473778583914396443686506214021134659680013980550945277904505571923657429852045200013445157228543050146284049792738593924873793890265487228827303232432444429958787170024230983037513485503133673988828481176717136199420372963364972924380910148331026931013545942907329918601172193148318328139515359596134028326286394775939627536666008054550323828028602325658579131581687892445141766128304103877680818268873806789220344275740288143104021834557433970334750486978332651124645201566494407598169158356323598574426807906324393995830982452946720262555852013392496396277237484853677931953036660741597276653480743329156259415434716462741338027440145095753356862088409205233908928324298599462904003431651043697737629735959605314629117975280131536153311608809863717499594695427985505251679878625084468663289643061374348992074509439966032001978606034769399260994289026459933744509584130285905519756634075283171213858940419033119452379093236991254314989740710892006335064946302206683912675889352001013115840753750325665653448121949980854432822588601570917797435571570676796151307909354093113514441044722763254140531582823975875412376741005848898848477984795584165323355178409044561846310981067497414096080446693418188584800795056182815856309264347079960694957671713991710017325574469955733506605742523251805296206191637648513434916059054970998673488963594007352889407991039332010396155833663193842886078756824071844942463015490929631612742859460068236445807926222051287372588163106648634070404567049120896403875741699920246488610729290228828728628053460705191316403614890106736322331721743274195930564733370730959813332087094171960870787749271300840740939814456244247768971353920264683298623863330891990980241186348721269076556394650374738382228609232896540844096764781338431918772971450898172282217463853516246721081852706304800865892488051005928154448366919216427448412521197256363681340848862994455375452222196867712835650302549898613156188918968960825079007725534614816978792737009456670405625379017485800461314637793532572332801449178640006249632249064544892735659190946846951974094165234254391701888714654224651996494688009962869634333658581551978602960242186586579082355138825658188104487299693538669107830320383173676364203608477213496760435697992477117821860858976021814949145233542735781222237657745194283712602501592223775181596783022847918938240457892979912587709523594078157773589703556418842957094157562071871777000406125388074001270067140942466555894818437670281777350014061054574962307789351561504590778937425235242966793326277770207965808629355151445121602250297651977391442007675582863641833164895466706180261507354031575669576472371806591872923272887298273082886918006929169221895313798473568917063188615308397982244794292963699078265989556583783654118820619032863798209712422804813023275195070172293458141998128465951392533933534534733329349082299976102084006707653024886551683326928709197869107423800062259216314888735849088936983264505643428617272627910976233070468808879773019825769002336767995402232080047721053906067086895795369166232442649990740878349250503783705468641760994710070191989589747989630850515701765563927026318459211193420676149153996876765890432443513863462720067740776559858714925089321102282742281600141992868155539319418865204924146860884394471440534077271130408993979322061651832089264662282192803714738876818077632795194190527098226666336107273476550847771238667374144389372849493576950957176833576843549383617423278901250237321631136344984429097575191175394187516437706945464948064741113072421058919872094289971470534832772458710530560239747803689167093250977465742752016105023158966837432669527981964179100933876353710294717914969238958110921951421568243798827427714047628518386321979705352412188686457395176331173144328074886129397233639295094523191409578902646181511411601739375279934876195329929127377471498071735317237433686244983838421678647056444822755159185584386014094798682261079287014422273423938172198587869099769739608966142000599488945180530462516566582345073992993346289139429510241407739803064452469623495164704441451478843719253521086220028156679995837467621233991724695796129556910790794857428354791675100262056661141028447390597609074568348434058256106899009932886334251312191188666416064587242799677792149775613707957629822887370680989487787389423845560408890380178369254001572928332116533833709150862295352554435392829086730751686408055511707787111375837293771702018306298628364278087406573239925507739025858566186671571218641748579986929733937793360966640866018048405726417621866102544646196970203572023332992113239265033924428536724873363488115611024915262767265524404443415039818253360520886455672318811605178176305375499459758749497892466601830881626621550772927670252934211188464047220220406298403957461062491975514602694787729852466844434567530180135914860964780297700160789955120174361728746362814180797167281735183175717214135330324730758960233288170745225519749917607223024147449033281283877365047201108595360541655304544041307100910092402052441316589984235563643607126407549746483955543253318318574986696638484749784280063408396649331945883539430887137654257438385824764566143470715330310492478850397028521408915254019027851759924401089873922628832422344787747703534597010051550800181581047345240933384654627671912629088310303433202083326817395564819212233422121145055513616249415922445759153368563132085279170107606105098528996160583898490368055578199028255490121962344172583841379466520186664600276398610054174228767397214447902716565808404180830657505678566154219477433926754009923188504003361388053539818955101007056709590675242702278041149179147996177268812886577868197695616519297517537185000213502665977203605892808486435081129274624474408847164686415327677687223292440315116081143118993538488349151109663020388955530017201472252395822209216692334982595433745436549476580228534392495808020552815212571501549950066386281948833702204502824686513711877015314639728440900319435967997253640823498787695651926547157478816244691056672158725986678397068096463736164821936346311385863146724636160565174669757672173429875883373313041951911234146462442229316923985175941232772945197717164635321748055002470168807471324296499472206868794974945230679932984030708706458018480685868142626977722291874499451675616719550149138387262638793603827957782738418998798492569847533409788016759041950142344980229827799446018443456540950282540470721028439111963824459300416577773348984338080098147969781996920412155712293427680441642313422744536854148780345102862873709682489159803478836034983225038091689465051975782974067812588111430552355744184775366334417224261361890834519656584561345185135034149969092334722795937279009643627088909334039749705664751015220060786669544535085529857130677624920073053905923757849835389914004436585663612154739947098283247690419836742787586226583125337874329444902317884351579621603989544475318918473589051484330217190785645804500679076468223966041530994366868660703225037067462636456609539449500452417056870722421103316217581493382774944995246947899842677583083097580382031066629461935972829427504827260337841282738084052854264808234836273323771248471285429673236085676104531624501254622021074047017673086487972639587381245031513078169535407441198482115247238388077163771541571195215606456267347391447030232626537659736016161374384117008294321706203375401913656384370511516923000892055654605873626178762384766019379278296507555539616970521192220182954903904443191249301445193747348084654738009964534412356790336242961257051649556448411396238014350629318093076673403365094493476311526133036490427598309300313852603331877484463999832777168925038076350981312225214103831525247966950977395751372910557412234966835268180813437755662213533362234285943578760112906818436097203645093456080229395841136123721851702484722460357803257213525250008259859712511760552390030310542047602256318233026871302158592745543861513554738143289447673755472417515548444327924641804457159086268515828683380518702871653307744598565818849318277412766817651746876146371605971005565883894043402553526175244240430457516693458013859836282165064974000386180415651363711556436873043057560342027204458933957103203916939769864878614366400982440929220458309813784158082635565645527030958122439727844505456728716613075931121199067967566284761696095472770014740200048408562873295283423257058769747845392320135296913716945804127352430317974639074811947011583996705342897959204982929168880289054467365211686865766377881866916318531683997641774364162322370615524494963227668604298245574351723469548123516169589562516847791273569113957818403448299123180825942008177721012886573939074474289919428972452344476426556945197312135214952322774795431113488995160293437239389237410104785646569033315906918568471550994426575363232947811859642133323638918655365230977212441005874590698829092543150515956871013572092126686228160605288264777407990434470118824309289332893353266511547389510969566780884202567114348154201867858444406126799104775501580070595061747817673102024252255951506859496584070771358205586481219791878936042700000125543085249235854685762604685564407130023736628019377928399586161370898847954309574730018341139412799333593439020265893486144618359000125969356822373536342868860170124010727221520345423628745834023276252312651504101249720427676159993301959615759458036401104084096051192587655783468329408894329546578158331530037556582654685690152959702149268675415167265108123341416438206366573061307649612198244150475003407477586180163251310668897809195289786195414930408708443562516989715727157770238954141822418315301677333216233792361615779805087671814895910139909360854519005230275509157177088306342087771340308016727030605453814609125555380507430754933596447179263403619555741947897801986536237298333301824319544376677939327305702020773641150096109936751426892969065380790692771814039003761919090807189499098327280427070291365992159388888362515921041467804295124030813955387413209557054671549726034811243706129442286463522893824024092680721378886489815055424239576461646855472589673433610904554361305074273685094898731469440246338188015998076513739999927024191437523302243601121737274195938723391853161195049749934957418896264662731386796051864735327831582645054411587180366366752139474478425738429922670634988176055322291662077477868035580507088209192829638086735478011006656355515738606446607746534888122970564346403137281605241441575365529761121144259898465051467751567674928250355091182656948737494668083622337462539410407083216507817994245893605481035813893591026048719623323657751787641104172495437399343077996346263457704169214991664703034922900176327814755054354933455179230969366679919575598055217560232914327263676048306195137766109772865067327976577214489439767796831986562076196678550021474445181617781450533445731727348132791295533099370382099981813361159466640370835264244579928166048721371200897078673024260672103688376939893961238312341702515103647716937350522510950798817749523003926551629886018421849290127727308852425289863076758934046429355722167712282370224543520319380131499501890379495539984750002052503807831580677558869427250527884576038518274236067967945769427269923782707071944615057232233275294479908945860576303865565887613672841774354668609391808255421568973793453369938664476085505204231821549893594522773878477383085484936998337249946170603849205703035395856095369400777299436519106923802725911735189825395733047270891318370201141891291431612518805683389429227349444882317028464789487748629346613417314062803666351201430524328142727442372041958857925642541785503803449833066351979228071696364807915135135246686732843842563969534353270858652395118462452247484252616427902548068986536152853787946158636895026441486790621549036932037064997070469238533957871341035434139925682011161512947516237691846681859293839563201417211349990578525951176897451484068549678663083929041276789205615004404327321843993405061262080443250004574755031821422941738781642447290852269486952588522718548848170936622882867592474737608523765710321156334426093922478031310281551739056006999450742232268194933686636185313300525212961070280348679607011568610118606964273758155110268882986278474745714493831269820972221624870931498921632772187354297270241179977746023673634661886982178337895188620839001294971969231496823789677100670036307522187804801119319129192196624815456320183391073293336781345573747353799548397596973312911003163027922560391673196883319385292991921912447172066445042746556509593558044141426320495450435508056530383611653313813197078055860801130958354630438405616329793096328104091631752044408742663674769501552086978435171211370277686975465101976221399143888673296401630820961922749204911211115860405009743499794945047442447244636738371251170236161636986698183990573939662696941635003756632686091186563055105277261291588755403344365996951236581083364684597642392677078270278742068550914113138006019874387679411598504852833847538679964752555030828886143865855620323544201885893621855310729798385205938786983339104159397585418295653986667844915582255447855265025401422310673786139536948479022061787210127214239210173754923608315424905540535480973327059752872140354848498567363336553474616529795572126546029734584497014969599770420189247967963711619225666958723812403877430757135374177657816847702871899582495290061724758963256909854821598872327984245864347716684615852197896423089252597739159878254064245404256361176051682837495924323242907835061963868209966031213886932294688437933293242684024213722607223921685265137895983479193372169698015861036747320088833070219588395683857456867544573088871605824644521601348989165502681616883433731098614232929523097007526437755182005383962720425999860112223098456680088327926497606617082153631914692615134676790796993470183694671179320411447152193418286806575648313205939830327598860670280131053750059709221845211311285690124240554206072972462644732365746282566909437436333019060049012522953084202618497491561765209072693427111435115864126380644288774427672450014135285064211212992676463502038290663450774530581977846497757419413144437164705062797234056374674338375196123330864939908332634823747596848852519574074065732857643526475623637572587490602438869661036719765298503532623641603592645810983547855935304648888470837344001708905836212147045182979597664730487679189240381795398761722639509697444122756643890596559089573369396737198574716815800810372107889255102122993815826462736981294383245004351855729281063011141175304048626778304031240327731062689213076385053208910907595555214113655153365861460489935930701327009284719857929444633674588304311079265631076771090272045861668814580473459054348161317015412928150773834519172495717013023538106269676201043780544639692526043881969201327088853291037039042865428327445155273371082726151879658129851294351193059229028526658959819067135291905811337236856043689006771246569508068969098415512256714808327939739590782155298829156512057489851610797322235986911918134551517041050822874952325570683228767088697055876542355685713572767247763919681189173157814664005295317461121885987940348598127921254195075059146875258418920996738368633072983849416471243328290327469065454740372231242886486406842699414118440286009367283100641570256562539412181095455126121613945988356110538809306357779647653312757371438405949558899588948423895008253531382152039993888851718227704602583721518649052480343936696132335303808509716208115484675421354955107112290322977380581391279837839450499123008118027313543240771960241311920452950098475726794195515727715800128407647307168749834438085687863650272337667087553746304227807211804521785855943884212446411331446195114769597151789338057963670725462904974137351229696058590180973122548597213952053365194865154000491820849026206954726390922420212630648147013461471191364225944269513389023425882498893908582151260759180780242136594155217770334988124829232940208943840577896847234968058281870055969071114152344472635131509288009025964592692257548968632604719497273328861231400063432909399312899050866986267765054687987449928276045563851733886406199587033258660955742517282466831927498268143853495610066501830738536921474022545792335607562736537031093243207406659252577268982642669813034744556672204932078629820660564279796139396750891099330225705842244189243473918922873155271055894083919606387456099173940069243483017244060630797504401379828754152977017157947246427275087039318381227849142638783960691245368985608093886209040522689461451945117734254123670131162612014105132125940888363886114939852744902829937307689269228093220581583553849774704112731528161815626513995599809624728026776320946815777535034723101504136881365976548692455175936293834496969661639293704513280843605328985856397412373546741233698033793159687481450507289027314776719639393776043631421586796330810737062139815151164928110725652869651200863833685810912941910338391422745253483820049692063591362027383479643518383251839709150808394732387238077768696090654526284368199494470583345589753140702757535700452753016371542564147675642296122911421301687723632885221869592587147722720184641672310364816056880812566008173259466368976166208740329812943235860018548952081440051684903713708409807297936857011373679364442656547686765729750985117400439514165568966363666925052925215483639576591248658358403222380651469659655179843247226126838197617889985126447740076250983729586524926062585289339540499794143211031234240337910004121461691895645700714997358245197474792856939324447338443329772861974868209189399379688089283006168011370301376164398201143916000252954416496031575109970700004899823489870962310022560168568286017589244264439490479499626986829860941978506883070288344232019892570228130399580027222015902722024177692189163689845623846181616203448519526360466561315665665050468886661720922790554649813284467255850977326512001021735873935913687424911802640106633581412365961328705618045794754344744385244070602836758364685979557380818002445672386379966352460494193622723431637794720968026928968423237240291646845883475343599489561036269058548919993712122897396851944595676619082334861994053834783830631473396873381772202606967963040565832283605084565702086473152697507923841824333453088808871266197195801576085671853386654159712938884399217697673619798608952331641216739170519895637975482711685052510260513110905329028345493259551575154253436329688082779605160094686853631289424086919850998888701552817364532697381406871751653692245038656477771129068789174846463157284838908352529482255100450974537161761711962801310968979136846374219188901973874470751876953368311326452868800090022697474323466852897659459657883667044976324381823300870710590644273230670293274475829590305526697480509037663895233300468023143173065407860283139304480346147075454494541084316207471299531640999539987954944414215070250430159473921171225245988373437483550214270274922296986838080796863637879901418758676659251389476381793054515571463868399957645799475289328856835986742823692173066674799157894680343428085232270130047109805682900442059673449177152102516348904259935372745451765041995699827499124168127674441707523677970334867274417591911446002379528860012681293453527482666465788567182841203402554367503948096558642430506233357724090162073914161699031850216789517512700920091298001825613415366196347924220282470482624136800254463321662717067466009468910837422120014563393193987438269662325896844900566027419035091114519161660318433540569889899194785815205595766220709517810579543374566651737743446302003393826440065003970118212662733693306860545191296042441763851874064787121351431495574816285828650403294719357598943603418460725013335977839708671266263300401881256310244446836345045631955947661255544982037158929338231303030527130582683712841102876315804239076603895300514604642632601892787788042911968709054188722867282878064238384147878203658486580142223284663115403299197191824515301748812595195185161612954454760262732863456979984731874337012197105237585379292744281038570577760836047757559516803197363801108852927525903241902854237529422858816833062696485217384499019849174973879221203333595138963938146298815042340915308716335434359851265368324721236156002574489151594129901859506492556572960197665166827718852153992915743825854523112247953862210329330321570044996475237543605307377622197411048618108467914506016102333405330359867595548517763474386701587444485253020733526312899469587476624769114748824712506273371510628038203661927200054157120331047511830195475693749635234909862102617173881432188904307461457544929993031774819567045825336549249674560513343504299275215145492178693115023174696663140090366628339567912407907573324303315404551283424532083806648926036003668458667459027838446171962346077345759094939405723748314301493691648982560828780460368625332457389789125108928935978209406678846717775523232630699215076388855510610140403306798445560990659579495081356231235491879090259496994586225492646831827778275846385372302371482538051026295922359023208218210493776354206133494329188007344856096014964451678939760319325844174135035736847562584713661426602250846964782401188529681995023951379624111002051314653320435564338074626616553518493524463733776475964727657283845986705307349631705435855706257623415813508700926325766621447706281729287285665215893782242614981281591664541236134154558502899050608461512860267166293394374075593456381792698866058116092187952392118144338485165533014865646418037384109734504016008340695790569771387313628411921294917492698437279954884031534294623509957576051072174062922021517177709521274043623412054051206513114219773329848834529189115866364662293479636680679613238061103000439910725241726870097266702770863433264355476075606174010387104450063310523150799810926537330864571837153076966933983512766218927957055264194131834801129871159635734005243120032781447572128043212783675688929574070080849986944227243020631214087382022061691928439789783911161420978586437821911097026475894028441177792019992321595228270795655437650646641911576636544278729427983264871881911710673370990104790926239018951194829074070334958141785273682228551899787672486759655550750540211947190627403386671220354861081190798907502971766446641819162615150751119899749186414004510574830623307312139204352419003585545163682030220736522451738391418549960778520796697449146339321974348831571681116551455063167958687895676148480507506358370458568167831891090174848656675695028735642220218646418839123804535398079011157480525793133592363679492171242067035480347015810757026570910483515701423694000946691436410483020668103420786392379573358469758541908429457670710260036806753566146145073632318042669320217023948250152850145969547161218501526541525486415100774930269124953031081516365789766596450101550816870381990954336168978098029328085011215424064944997675460866140516615896673712526842805471188280546366902983475065453023449664881499424449945043173354215204250907421412378131291810628556296636177505091298214317114494243265367595995975658383156555131776043165385926606530743696969495955390343078630200919784633315141658148272313646201339760946656973251964342145683655640514619794785625849913411084395570390676370864259583486178890567540232984528584495349886338047126936794386335462181840703263092325217361924783756805464954990219188667204526152486088941417954034629083744634289771526504699502771715960701449686373706886030827676813761535654862946412710631546337213863281219430759789680956069089170371704260527789327702195704598245855446303221968354406770800803970555011446008025744830236641885617387553284793979441310209447499645322545229002695553502960217888033770082407259441337202575123874238043986807516817151792664525488518801891520089468429173953849162978600960938134201747726193260970905820723490111168105351688163844735735562016424593456237871632098214725360825451179131292304312263845901068568708226017029940815184484374791266676942820095969411973176370255323498850052154330381535913395949608219201965450203740718004492885443948173815508434316835720203674923517571180990679781525279026339984099160746576410746049180141691231059628100943274765712879875176813098401362195951545636289011964609761163737897535578541306236569418242557864187478170038249196905648299312512500664903346152682460129954247852779206425483390236500049747104276328607325383992336666396299049375690576108325748797543271355748270170979055188254468670486539650921215033579450046810234482661471303407636552932078821074135065131896503445613201359446755157482055182175428843398733287672199149330605380629657158215166774603811932258178531479500063102156179713365110094413779481753186146880163119743498057439974876767547296699267199774684586199728608516982325575191834760218758960611224563758970531175617083775528868137124766093001876912616015747860018672279846743378501977182456231179077043111804337162309012691639438532967617206021785820646415715736762512870983121050241557925596500084962968804814438755482075635908777712667316797664305096401706496225382445692872863866471778899821169773860833762276893956888995949568080033160265614962183128274133784616656640608915119603349616761568412556551763392447724664595725759668370765568677992422427723038474605533956536585563896092922542635370572330519874744328492542293572868015806083330225863091032309013409032961422706982208319166460211553956013914648311935561085271194594507437288292459400916475825613470451200203980317396941930400885974003217517388069856163025164343449092000902431202392695001574141450267591996234181061931863971166925914570849061991751802548722706719901598740404480625770365045620360793257703786741103302462566711858653140575625344596236146148431154806990341483382895721306055749772759673649812869352020327489184397285130331680679205177365454790080686135959346568980223798696787304393864144568952758468296237412108615426096667727611542402106292873371953348665945409058604307299838486175603830093714056522456349199657626752472565654847972620945025385177826086324639308729082297762533998536238192082289252766935907792268684319263965553032685021364257321254911033694492778949421805705371154392447150278554620011190825753053544124360652037880338581921122594287828948210893594962649554123617947366323836315778888717103211381123454238735394970833807676471318426709051842765988393732063605268979574827565146173439199239771452545685184204294609745156428245687556757407640579727047444921734916477902678734906128260389411101609051010839013506661396492243346142406480955112775003623922980668393797733839560718287142000026985531121202195841140040331848797408514866603675844150005490299196905671659417576072483990871641550864146753021273056082345295294336602834982083899839250004554842665559286007256529667384326592472236479231874914790988198423838168465132124720931130256504439216136689097104929702310335381478121827207497098412264308596238407971393511314915275360120347505105734417510891792239818184736483499433981189718465805793249718977056079002770503026574700968576334854771676976466903640334110732876793156002654183247020625205219819731017781698508132413295803761086505450533513787326837168006966333662623410994868343741960884625035403445326492755631025382579898709574394519337544669873814192757721901165520109593883218633049726082565025750339584322561641402823343711041501770373025430529806984708605898917052091121784580989660985480848233106944506801454278254427765640673517411809725541454162682526336234942455749056879977324726747069929431136140202129923762003974517015242294852597488447971960690413522093126830333085689310103246286879089602742386386273596267851136057571136383118501758263913622936791283183923212944372948030374802035172891112745633604476794555996709529453163254563703895828729213200712637290340068468540934564009326920071211105387657908439279518824096394507390945473613330157684459966990560254359085060154026502441831184273430816605780452416938609310490273996147917630291168060192646980398497200106102194423897521540281543504761682501139944291099562677891403256071703791442252904564212043069294156149794011665677976521710108645079207666546344923654828132150846379475821048270563686016341957212740391494660388896509937201326432549025829953725496860746468373766010286588647102832464614788018328839430572924101817592495985255713101407967476737792115139649329156197884954103603512902518182968527589222046760650672771091550293402932008147648968905236542143733593340417998431529448885927389590627319060235268651201935166530599538860320218276369145849371351825306386722569984131337744279030646896206792024887957234228371769723035811143671421689501867322483728840973077842291133534584453806583416733127494305265169797486964440008979505747462927969171510398019612226889681595481370096937059964204089042689752423766861557440656931321916980631126787890187335144975688273772931539152524867609787639866832528579349833524389603730744365700943292404774073367558253413226703658185018718657598740233106434632999979360045612733832823334426864114071659642391807871029771121947448755124463015606895151469874821423345642842711692589113292103070432225318331819263788916114547490356911590380653954868996885736896915714482769736736163750152767806252086083651734430855092361958536999425371543110757451976432734009562455721512432067694097581267899248130986674724946760142923331149698121199730086247998754268031777977698012482891694252296865219821542971225197454062182450826800507354047119208448887938961435833445727912953134912838400009856082654195721953806135866993064525557220821805943292203810305621490864274454670605367363648540850977089101674565440564804452653681070244508112032274968624654987770661348917733035917123722883149527087286103615079749973854231072797821343641750056771997187848961137649434865379199780715967871825527037993215792136351937618800831732744322625649225722773053966563106563391248528460908942147765217142216018996986920436534658066297252848172499127157241147376486678233007125806708771795853170021596022496977759147778745696025787389278628690445692387824584890212404423240170273354282115596401204195350039971874028200031305629496645653278560135167087138622867389430478118349858366870221596540170307344901216599611513303725608625667205974706015773019169613468543033621894751925202455861273546545803284092498334329917227289637851560287899658091022112028818605086283583446031496597126623890906843651145724148202299043492375580079504377032212361944950056182051345617720720545685488704131303405646863155115862326043448885164324862300931675514532471620460156730468015260397195909084746754034068533070758151856483526658674684109831391878643328914109662884730389457934098280058121987677518368103211570039507149932784621566848510089968922100273929791813072983998499387130768417268422567591363863279123874674838346456375755595432364813016584565091964465687184081592426282513777472000560829173625814883290134417322050479854425414624146287873782098747453538708970608208943685280380194067175934790931683476905237554650254681298533863291831663277202544787639988914516144449836581518880855961593887236381110001110332409020338079321587599731854663440940845097556185570918868693609408694388847777327741385818655460946153453971275971573597245547563670648288554613825016196015169704075739946383388194735424653938228965018528844328011601491526672564051071550052308295425808807196727474182494254595313003797310921385709573259265514162279544699858505578185327111237621067471596618283556644512657496238976305199442841878320579643705115784249504182558397780257911028797827595280821800500574380461685852565786266111647170982157118768419442391399229610233003767927195904930585029438593626305633475180064423928528199998130211739542294173311736826448418158967258895765880098347545742165651313475807490065147108556626838617382181939165881972200686700131360494509778662946148064977569987766808842167492452543470628546942043146813088643377316263607279010193803216425047174543606913542192821700264415664476744660113013243017206611015914090337893416900391501942672096233085207238754411480416853897266455560004727923088749627140473669008397972500028431260838696707585500344592268563815486353073805401822704140426329824754851226342908877982999008552173840747747910567627083781956423351860666350820115071023950758340280571284561007816397235311216932404190135953691058448465120165990011848966100899367089003319356676155727125625686835618658999668251231671238711883712821454753830545675791522386254137825489043851193825208179152835249128130071670810205804561040245352427964384636739068619754040521338644532797500811450977388616431909961431402557762798096785257297066018637416615588930916123533161603507849181425478103528123077794440044503541420212262131303676144257680780311977166986191660020680272646156926379055123251739146155517285507785268394592613331780809305724716406019991332633530737244817281702515600189314433264171747769651763112010909315946472254796423869550508236556814521621489022054835361933741770070359686242292678965761385884465825710902288089881386306651544322563640343137093024838671186735742489358363657592157218524490896287103308134301071084492096702317115433924656022953017096994865736704328799513325372852981046360569793985081031762533092806073188454779764455966030691984964453528467043536291693992154707288183074285690457435654182384587100338687288215804846782299358465527470351379434173604635614774976659596677426061443647015845822782785266806694535787824136492141376369835832470403205264531705958130958650961090316587777116137032299812821218623307406818849771009198808587037825581973969570383958930434194634259940451422273537502015750524860159026706396477061930471340417920930866912154128833557527965163547129302480910398395131679975930239553412385455007718532877640973636939043454791676578280474391977120975190323058785648735564353107968079845667658115222601362163566227789684066832159516176785690450126744440539105078014266579060516764794784270615973936505822319985403887466320233537536523491335914309506641058839480413443285215242283291174968207418549749969249528273496968744182076623345656229620160762616894289547459651553724869705596089292925220027269517101344443230324522604071830693480296856227952648231881448680295672629130556173675923320198463548109881558809971670535550470508447842602364684396765750863333583732449660461614525790458744623316447634978336651810977478993906254677812605208553650940515125775077166642690778259926718672951451638357205941601746951746871802834905660224458953426178913655849321273268480361595492216439387297683296904428320133456291935475074616306952469597734243933206165138774287962356090717402420950554932092009271931275156396735520082539055313919446389675095505356258979303732173348148314127837396843319528003943313299078687209693815886734094932472563895672592843923811454407970266889398274120952234712094843247509260641133220980474524021770012972426844419927256481270448967997213742301241029338760470050485346698662043537885279080423646533711511900832780396379258677373760837254975171006149234566889527972773854017635781544413864358873403991118181141185257198832763092532284873898621373883012960969980549198181405548363797383356343257792982747141581078408675044448594242672421594450438636538728574490284768654973003748319409011945922529634830511431944752367364195389071573098745349250823383363528404514147525534667618930835910728420794279314391389964328863837578919008594285042645484161074033472648143489468999831436438896056615052968575112429398306458862588601541820145134490860589830259364801395616750927113056747026645731122221222750375970407943349489295121615948885104244271048785143008079607837119590323111024056220717514206277311771283681744585269924000858853967289594272046955549389160814129526928058885988370399346947391383734493198146143068720958642724938808469560172820015579431935412356810895866342274703587659586884644193120491621521170697122480029020685166561490455168855825623196567391704880924806233078911987657992772953098845951705529858192422769491974644904715285972933538138305592855384334669556515435839141761262563733805501879276085855806443636364254198636941503771699538045359367583043550169279569696333302368124098061030486410765689587614265988767014318954414265047408116227034915791819342904925757419683713933494691885108735822906243059531410224558075558320515748025730881863156970498533662803195609039087545658354594905516062663439342137603115856762643870064535903721273671530769108391576976006549885293503406612107196635113051367809005405240652761987280967967386746458404873558993077760388378426586270748263380035689023721248132729478750840118417390468067878998023857164675431359558310163836747544468172512642240891849190953859293728760302730301815664759396637391563912854312456482806074420080929681724488284139798827696259422381703139508733392466112023143253632449205952790397210060450356507700641907501262060629719956417126115084820517396142887402447592578670165323282123625474999199960404406075832146965455928642161429938211252980411909850035088308434078262143266405210971366570200007219647152800299920069773826465059468485639904574894743657822719536026650468204722981773905900524373226216886551784199172430704141461220219822255272898180508546434107990052174535156296927627580823203197739350415277052847996145967344297354555993791754654138720751974049715512290605644036548598524774079407266607982692736521285086564614676063715839475832541910245230482695413813873053460922985579470089822176554575911756409479604790459939581795596598420523215030063466847462740814179364550572230601529047165561539208820714194851252595922284138847244215145572611400073225768783835316405241015242397584113685540390205882807172543029555521287800251533764195424726363395712772110951649061437235963258576263744039857791044156443380575356026703736538811863004228756525877220522417235766801475386817025664804430727984796381883319883381096236824914337269775894389416720293849166867828266688312846418493472635070723971981726941126642996555309607543252353149904241552691440477422830140192315896510782004832810652539243429936077157487976119541182694926632860608054926379593889472644891452854592794131808570631330013034979281140149927684165153845997250628440015781398393634196907808706648752112097556728532693191977805827574401860470438665086376480144414342246883242572745804945722065350651882287069541705934889562642778941925939311066360220957906975779351092043477824832643830752056971242760106043122074897192647732080917104634608325439381623082057015759271084505984225277589224100831100311733984410347852237563333622278863997405954209241901614109450995926883458615888955685651099980690024678877289607938265008085992998819418502143992105734166915397332339756590601207195102008518093340945410087580556743540813047720377789395690706437549705248600885758010623824533201545663347302642145581883498240920644516575917155075822279207833027219104939832872818656349107241887798535841894222622127383689074265389606553572170143256075297680711506077537153034530128299765226583525297292394375212887906832765362620984807694557857305646885151989795109690213272413101988340477399038709900236579064708423106160852154681855891278021645517198306004130775136568638079242187399058410056776999115287678719735369935068276367770726005144762556497939393558521452315952304897034526673951280907373443237299168174504641475752279510404919475629315224767432790252693458269452854493312647720310740126490542362453928744287662955974735195197330304638755651967461831973256134090814268645031387368944676928418310052031768927268284917946446599050282305421910313085110639772095699887512982752409430366161495905906160245651080449858583040094807086070715722725216131045500841456948922233623308831624798483852414081997482976850288845705031115635552820735277912069551002874701482497030303264319847090258633280557440505570988086827789937358556796638434744272576562782711332452849462049949784232431894082801907513504205867509157418428540104429918570206498569333037604697523212083570053114427586079529522612409546770212749486731092440673268125718428085726574564265044990424547647713944676545996428894463474164187112972951260836479041985132862440491895204310597910964186956025725588656805605003104866880772695611940314166362740102956110897837894060907184490325798938317006007359145535785633599971946468421219308581276644486112795389094122813180217217502070760130753618279584379630258657951513496490069161758729285502055091884755189499861368605643788302624084432085508056413857410721009394802369994575615783305712742381551271323175073330895501876646341790448308283548113820763240471394759202311376548746626089151174804712581666683210730987722251083959651335795901311903262562239089192835833597766744303226539576069157402261302329994236637083774988883175625310562870771327631980561465232982284371491020392125117068934008370191250275743430554003156197071934632674306874091915938113804603247563586540369182729724488269772945379630816607389133364612963449669121969267668018711053493427144869111087441416793472366417879205242304952315933149146976920655009736458922556521627203000052769785337171091566422464187356620294142348228086305513056033062299741442043988581265780670832845160261332554999658391034997800748547950406245971116853903306798136936202807617131775978393964005707058267891590540836244376872398946629813297949238306156220417241828835409979161866556840502112944525075039354860576832551858197310071245446523271640853828130338737997891791447633435626283636403197968656949857929312384437645167900758008831728976610177323474997517576749926879696939275223523831750378227673370001790790139341945406568605883097935260778485391927601020038567658449421668760742821772679952171279085301620699679473050143076093062779775803066410317025482348715423899160774412051357016449650896486545155336285771347297314312692020381226959895825000043517156807278177928108023482736111043922646758649680483599670173678172336864670601973494282480875689648751831971274417136571212413739005072791725110862885312404509522948417950820814550767319409713275518142684708516542822321782847577910520215115226509370574539696189393639770005206042112154448277368666269345093801713404041327718991802260557255653391384518538863017114977433378769850074561465850636363254699921981390645760374150182259021214117394829953240845449412920568331321272272007188320662657516866014503352795657920625142737183560999301837522849461158965732156820000163842440337353482723403522878843233024130534398866490484054465550759668942254810262608883275816587152820355863168437645904640315773016893091050464782539980735511856998797413522150752971447486829684177226815179862886518230767956406733595561828715104530268425569172756707808715213258756488634076659107270341124509561903823689257932493333700192529587180983995111600979233123506323900446816420646644656542888599663601547371512161206754546092232205975135673252201724497497513336120461612409404343825208882166263086374792357120633510247673458513957253678009251673061417306623343300109333243299545989215312265203032896265666976246852960255273673804417378768626953275786974343967589431162943696547900048534990023847366721122625540573182788637021329398408979040460634955264265933432277826367193546977076644201084333951305758727856801514713815107627744576935305466086330013626518474689380090226277838776080569900888469466038789551609065551166090498152380805683060721146151254632389061158215557449119827724073595812239252436254041350667522449228977884038761515013334391256641398617112647258801565385658089374936953010504859890793057070307684404104502294422765288975543913240118651196621042541929804741309436459604704706538386573289714035326454652475716370959175763939159472746362878193697261778386634998126423221914247550896835991036516059654229537591321127692458939610046599116736932740651897228221359353564532432267737009127485740767151020902066073936999300140000785447064254793023562779643324491299603634227898492687562607186062555970624680172732833094122633688309159418813511034965519821920166848971857599724504247186048723534706163580147156488977296722640072192440143456782409466545293142932115464224637430490789497029557438026205692617071440484987297200367959495356865383900067063929267406127818850022147569493658630928672710047615023500848794601348488670705351873688133929206896079479518284577437044224776050929371277831907158732352009956937448298276356616651990600117054268195940227035600824070804766821580225562120788086949788767324275490767751657994414596697610435482648052628025680369125338964047905521026826895682815806972999021442559110500705987850904664907586033006544410474489949173588615350212923906056114736798590846208529689598023852370317589069123955975580349131715223989983995765133230412774698836481188660025583754784898611641790780976073441258666080554530148345061607600180791706263735975901442388184866352403811001454333710094283271779100272323070329923923943713612533030861518639650185931451259716103399406904521907120576914527050169384444363976947753442079376727466646740109874829389694024164549026156389209954264354873882263851935568713519246893001206386015023269545580435002521431467223393420052462227811514692632797544543626408759588482239900893883102485362152967696995506857542414983562079310971087960165058029905637469513159074866922662087792613331042822953841577874117986554632183128432625481976468540526332376065942137598159865431423803026300576026893259783207665242351059791502689401382837544815137813411742474538821238801292553033021642746387719320407971027152364089315281768832580979445968751250936826524276506638612932971616229975204234141525502249885178604511389411720313626174957385573645512107289141434857930813921292660631694403343676776183047859231721980466332430817040085106221191886308809527526924932664039111450165894707354874669892999473153615510644226246073662034830107823217063990267401541116055598651837013911927906880813771187607112563768089596803527328888020929755256101543770490191590382341782837683830919830005676054976475720708939248599604917182637855592336109120112559521494354120094745111963843153040836221348914498053211875130521806383020369571854998368392234858892091276890732833174872208840886099243357259555985551329818541348130271569918041906912034302342490687712617895245290724778575381902978137689730128552718054826918308117197193523513501341924063142416030307820299633464628565613669278940861483434723488062599832594484063455305076193538446256381521312141070444771486272950721033438718206734391273826031971782315871123510591491844022547161434147302536404569123445509467796387022041802141508122155852259039108491286297394680743866183791531623867910611949940618991502327809828769146018663216442631082786363911544922305456867829333407822083289596180568836903089508192049220923189369143752419762485502140299457738953057651942422115254081726793125086577530668105596740757644629146132127347772522123597213336530790777907454808907188147344716596550644041618113730454025497255987249469969371013353402119933977059558044741049400087001391893778029910280141594676922541597748692835811730324504177201432172927304223476345099408971721073675489900051929679838669639366064739449024915356525081236405575042207295431586709066080982196774579028353643758599647257850856847874373190219157693529912212124006857175711660321022926647124375012836848999996125579280178618144702503515767533840351057834681439124057131113136455900126313906295051260310023894463924188019480038108945302470441828718765927746442076495363266887692346409411257525709084146265343665222646735015371387328140181765988959760057751522560481996725566743696169036906839547710385569237277339619271153358263881960620905600053920670919397025005019690905910507923653615754842981070210593742793338499963007532603589706115832365908374067879937909566917351704571139102406007523651912004415976075241192726271295811571916641065086338819224535979128291354646914749300653445467374885571686417481830133481493244791381501946223139956720212101629685624802640761779165322023166932151830001250793948300941627387873893359586289654443817863676690744406834722044719286663921673595392432758542537058986277762500576988977495850394684749571571088841787580386742715388175468655957604680050437719675819089322035430507814833961603269165299042170427474783323494647277523398742784723333747128693051571907160611305235021109407082162724080270641678957976253042760633108928252295067889823211726424125527144827692330151298119057843285914362766401320016464779415720876243981152124102100408875922715834137197828319882694223045549105494571903463081951224990916134902962282809695983300419202317065841969499952089260341753479611179436022249638925523613656765739080204248295782461887757579271063910477035016965257460323059063502015129957431222224759644823663970607999577197966234626360528480240426855591652492946557685488442200535112992226560359794611550682168535455061458964095766738573155985832384707214947415537517133477292683933258457666881631459059310168328702860884621744937060535010810005957752055429052142493793353011875580364950426955173204523334885938518406369171577420359863655027782376422261482243703897347736280369323221644433755472462280772982774588283707306336911362192214144495099840539157208582589698539044220043440449495480742569887586461861778054372977596609925785479502896911244288969240139780217746212213056088797238397430478274176252074214187451696049617132176743646950244250321862282030473058412407625350026466568461595439743471514247665380597971412001909190509403818244476740692468237158368351804175085588310818179716576313615534928522329726369616240494616840055986929655816081088619492513979015008927704236768918748373290745015472379213331192833865843118538876972848859818173900013512087843745076402150766180417541169491175401704234845971518075513750219385489067839033236164200487267042828297327149570521774919055852982508049994363889383099938397849741205384107598635223850845665897829847202255199000382138432520096570314941404522068267597067580059577784027068459248031916639402969152620204281008645041780359565378930983302714571114734528217973724784562557925689000742197074272841905477350937006729823248390385926286942187275900541535034672522565369130422277452385922947010289309917224867221273407061123639716400311725637302922964075032246518393121397826602847060909995922715025078219302394027403729324446313086593708797765207002152810168763136262986143679942984114884567699119635071731473412254995533951634824600275905397962594166746308853700905048553361887881547139976883265050032205700800755867677998983237417877237627339397573516643489757330252926500617404427995561545568439019341655126436032927602946980878672776938799452255461817394157812335500871104806267800523563900997221690338893808029311684917785711062295463441062571916306182736858307187341905313370394855150198872015246032907580620113573668391531115075474029569434811966181145641559038108059132551385159039582045884185565595317533123318947364143387879382254341442422215094290673040758211368957479900090201560808032338620322849902595223489810678744896705837876560298847979512423508789331012203147325049144761220167559239258019220184153381749169410761827589211442699989210008587990748658574323649710293289727118524488927714309165071335751467759969677039293851122231210826569592999731740082886302805844937621572344599176723834887740090534352348601358347902857825380972400301845695007697713914836110883425641048395986111348051349411462943885539681362430669137486487118082846360307223746527917822048120646911367715766348763131496588867439940748900237215147739593308628510423204124878278719009967005599847820919364634555113368459699649822566585169563052405208198266759452373410539925593043624462339983878149577467141133702574628180291868910880542821075991942909297040101416472949476368709672348237048004859185252300572592983491596639243153204456095592289461398549500033833893691473216783555389800875139443633674825289333668742192753235586290156871377996125410295066237632050339289415414281112498956576700623752009629747440838210652510964426172482942166956719628676247916579033651914639774998639871306086801657105140983889798292731570713939657392955236340333930161681387664050192600448240342408943715684301449793890652261345625596594119579005872837094577617639892568551250177524182503949177190874887528979601378386530942976175775580150603929764059829451870468204703575505072737983113123474040933038461526681205504721374562135017506988582776491734440339317555081435353452472730543008880301763720439470252959120726083660768787323780955906325713700476901086095545495314287079979692161282467275384555931926568940385749479218972114296815251657148761903255758981418042995663184940114936720831688154843870445799592851498805430774249860370271570548273985764984730754457406558308359541704902503619822231543806743219538296042642844622918238900780240806114751304245809718335639266335906967112326888156173896461170955229567292709124834670835842768083751428569895573141333408279058742204632826905989254218758693385892558590580995605991497030953105724917668655366830728833886271466319662555856131205228119838039325267741893031368725606662132846780145395490063841532621422501462872992966958185386134983541701363265032643338164284618419001903015750678648519064558249433796755461293963893906774653393577710018446783539528883701239617391386683074436028532892524521494174798280755091673967658961491540790747789372532852910055486914165987783528525456557566941905988721647040765491888638856204846445146840801071379683002822263771681437260840838742976379524390158673935089877963104314540222832959330829001290591284372303766188629576565482314041397196564791352628705597073034557890166967654715000306053590577391073854427916917802282416181579357264882289970335690334203194172555891974730172502058880138145563520410560551607929951216913712697991233985079802720495392207648901920684981988853644745038072944574200754975013920084943261217997608926366194934390030836729777402082035494865257701990111802777282105422036173557129233499082137163347366540804158500330810855701426193737309910027522725120725499717325585706329115761895721622488129983970775799680336816285159157404094781476072280945957586240979273377574949254946799293137512835580902310091522591457232564423295076118581390041296113810630780878774076625145415991954383992509900556879830156341823438248358690481685522097308089472029893467414011715489247890863873325483984872762380706951503065359448689810588433335881218494743349786654211750478381974066391690958822010098686790678147955223356939944132974650779933778326023091329437286105238569197541406475440423270213133198455523830560974300234783910933199515306974735214389249873777720945594294018254384241932465749089780194784864059055692265557388285155210903886897680358859042762181167455001427258306429594270874023195591111115706179094080207663496850212900302343791513633225086590538490954194195798457932329831251005506945296337260044637122786940479124945179896931951246254458589737636154156170842042259775155686414377779857140948947841911109738944108296709553546352609829271093271422084841100131373108382778229500918598994292079677528225223810105798293447366278156078481867630944181053142433635390496338578052819483299481947599188105145736621648846571555095670467123382396651733921594791390062399706804074927046033530959085757038954518552243484091189897114062001722579176815929371902947648348777495270198286770735936152819145052046845270113045253286736349033172152254492681156000967319269017426137840028384728905522358541297655128163462789956090770502627574458788347297547193199907923080728905039291052967347995312502742563302695399984627616628309632636906786021590168604879088776858622093704234039060112382790435434183116864799176869006469816927042111362186300227755927826486518956504765916162286484429352574907731475830251222649022624660005284218026400902838317079094006705928733670703172792908897671955096643970260579302433133330660000129610773225720407237820680905725057517614735802515337426039839869306337713147480808728563426938289620867826525006548482970504326324018686118295168512747894454022259405479960032920690759667266977967499201581303687156625726995041202793353437263070113393841852193793435572319091228174713172260332427530070202254794925697105210420474996171359331959717616503501903691952943548528365301645517032807490642502301977889034436197139681044787973546427398105344518713529299519530258418506767370922297319540568926155958431003073527746237641391205170695016932813803518195569660970112900557003323879084716646869032606017986694115896014043578985663946150987797627929515938560425599983701803981353811753001901174069326643381843017445245912463107220873436134222802116403547415338499576583529094070095502470671351047393105161996148472234937424077739212818520156434256815787790142548221838238966077587305765703918633551608132110574775441783923820554166100337994394682157839723021971477555755932978046347547753328528897302603991607463818661145506553974446741677303875702205454665600001987317533986007818449085171904900892675139076333280146150959243243113394095360926016901251928569540513882605785502827725952732005077235305567871117737114615746446470307467571354581998909226903030986887357151082740858891182862946438476934578170592618238894303746931899896485286062234976008470441691444367145207721988879203222560886214524404255792594709683726134798335146094390616743676283186243131286810993589731967368283302409773009960956461764441486563110370608948990976853393096849577535001937261998825727118228613784917316072723434226045069045354813176680771601671976016677789908193354789684377027961087100250759357911243366460858646381103773148139218274807812053630165878771429848756624936081746227133846556408099341198255894257969054567248605841870626837318836886216227718624594923239504131607825882707566008074523575734438043151579603272486996602090895257980486601066544337736833001432119873419892335423946782126729060978234776065423212996380638080836006355552051125167249565497806099348670043266049290438121465954061021769703115515399829059204852515842829403516056318111297267219854964139965364908488059350897056679804849466795394872698220238458502191079886353485970105044688382139529724914233911502415307017997773733217827141309974005147623499333517610064780495494879657977280184663139806188939662488852338788465847080146469263450882288834772328252824989707231376696047135236909297202745064604565404425751035238122723009910576704600091111195683746273801730740969078859689889183842429284883103976131336099905870901335970773018429788762832014653340955166954601784081362016218010280676616003067140917359267958879722092765120023099680406253418042739553412597169995577406722999340764029123794208431719208291165079909126200001558081561083527366713575146264088390739550140218797192028650868898280252184874305687773196449425222567010544504085230692683989629785723348078855741545791011167754731015030242871369992559601994356791262946985346286703486378324406648775339608878057662404341139343844646746535009183589151127511381832061242827215588950506199886681080051148841736998306995088923868881463140149192168292824905757754083505805262614617474948998684182178853493188226044292799835829668848455356304894406485828918620204569710644984849275319810379369036685251911009462892111703622720052933642654616177950154175227931321633728687632852776309800909076556144859184863336686890352560362798001825778606228094852730476430108034045107147730705783777819296415786747952791849545131522181474936698249371696180810988424047020514863046183227834150165641163529627107190609164741906329180170401019931348265259693275340728979357297402569829250493990350073921599777238556669102229735884382807167559531523062700254189205610336199420454367616172169807579478411308578164765848651942817023943918527933046047867193431804415709731242718643588184604759047167105172993911235521487622939370159461300983529379911055297436443306645154840725922921063398786145917839937645435653396053737990513591861815516850592213099647511396561142699007759289899264746926169605488016447368550326408525041406169197452355372419407568486321900144069387905088551476562928969113827474304739100478528173399916187113139956252053108999676557192661994260095626188224597551934184519067920927744890927225283024510938035224900387787450013401811296297507165096334992113274031595572650542109876395057929294125559633742469267442025229426384725086217390425406495528632000945475757228639416778325431240777525349456623096749667386405561730076195668604269459959838705557013573165378778797799087401436085887702175656668323859483286826118793076079034544886822951631122666123393123887402832954810455773159526464540397160441910559702584995903616664984096372493303848730253878774506169634166810195510353750817413126982331740236543460356593070055433730031640735163565316347634565549955643120577781752204698636835017731744639010815118203993371853481860151205799680402436611024167264364892459471824439493458233513638869669783436116961122286611424490770352078176425441309201463490977090964159010795264322741214373876966806054910534055116139053904391464294498591917859682641202631265777686112703107493587617091596246412672111223216640192152668773028767133472026772909455973072324517710633179727494803445442354144668118149072131928013694619847026275459011281158965668914257236244051838770239001619113909760649387135752998408700351028057794520159898518541310361516434178101730330643290432900274641899757334137344731012641008732298654824953651024257214673794933527769242554984181511338546070000182293609198765363748586314100435478828711830433823650128463375290536855419287805101678561100983041905128698633279612785645053181408059653496075278399509017086204135931297915140571224684163497962319465770880860042899688524992050607497926584466023131670271830700420448999357806514835393575264053749025030318442768683717851545121016073888848186750943557711847058256215388686096125137144968599405794563587569363492571947466200386606306638377465948762547639568754274561817330827626834158942990948390563133454131294897205526885640052762467335151268747037601784657829824894033842135549435258108614280916897363691249204720766425817475060634657073889557814170967042865265964480304242850161163556742764782612041958802260055213731292009825771138622601547183951590878808724260813318552191529653532114257476920776935020736297183616739999305048453774544868331058563978459960577770809693920062220669124302383133473086002887976151700203835442603530989353212784007775670897294073593144052456646059729382128707444848004403733437474144828577233614271589690998624380006176608832104941377395619865699839507923901287437533185166267137019708144816549819687843071851150531434740457270841749925226131891790207527310537884914075753923986958941460088102761048316977887853124717632374956755173665402169886520394338579014044515008683394032637952624245551742920649560378182517950795744365345463907121178719814080707598653072309612569070446383786893547018089128619558751492152261781102817003760915990414502308347549671843096230770169224348297824735802438098094435650559581192461910310291035733174745976243982381960074609988956355981717050365910720847223463381222254373235129021474853072676985447216699025452539915519876246441569330783513197386899999608111672862268634795544988652449897227746531875084186466070764587362569450156733999633718506218511301804437784419877366304911536119666857744187029771929737681195925270240809746153773439679864745643318993707411725477142755161441530331045982727453632720138949516412591447578261044545763033203895473954811885510880209060385248941371834057757556824129166909264630053346320464369828134699811825864946522548745937019502609323435033797519458471108273687386076041704806559285567022683244688980609479296490421041017378531693157728809195890673521688033911191430222615501684509023784590717127633839818440344952797820600295799064246213937328002289152372030660175611449407028988972484519351203560865505049642618418887468419345440641970927362969502421961166436505680124266281665457210491599945033113781089757353153666857784604079291804332110810052566689750768594094674284983925996718153704680501793617029377306437017183140261772564373328269900752042808218945143011903042349038055694626485461132178661060103687532149794817274214217256679972201463589005547235198735756333022221834836035632992527601384379221225828135204587796166420694772452142822251538327614331904468832571982855792596275195591117177782398742815392871266850255212237776752011910432735165650378248323567525041982318871505844206014176164223893614909527739993809269756025613955352665435707298479627134085773621343627940445970902255074658521085888309604757797315585739184269132326906727245919068911836839042343041748514105766658497854774267235383255992893246692592015839892971665398252663033322395230334217542370385726683609657022205909774296165489752106816896159707050257175136263576763834399045539507141187187792351479099588332675725469416038286963961294288987559384542731602607469757694122931819543034476275756038695338081878999511175054727175239299235715039129979452532799825326585633155531813314963227715930445453262370679131242319095685558307517656437590743392283879043493796742346173754818149518990130568051822725164210064733272457111868021098004217064964798191685186110126802890253142830435639114152829310203056725123122760217957733398812848492686148430984621260742293577082522824588849371673920755244793703807849230133321552729791853895375583793632175969788848496987290463113028163624649166991334845733050291809918405364940677426142106165847850002034682996090383160885229207327142105645897925717517743493241554119201705702129469062217324726696326182585758555357114892225987176957614378825110830523755698958242295690937562358262654648254106082995713805129645283595611554730096766332074667547991150196109202379606087436174115324804042761523306772636578852857800799765203954401593774440143324467210121272500214744941326595938272684480747344694564673197419632383028291788527118521083219399092647135797473175192093951689983056081016105138770992453033130385952469532539684740653157582573600146812979910800706223041531636303381156380452467040300821556246029737829319400654365111999134454722722616717370697217293473943051837001480065640717967610577041077425133832774055197368924488956194270559527713721486202691509317336921898437418603963585040774392345387900952163724677621267201388314122781415022544419953115668121807232958501089385075815691241254497985281247704588674953371352253501108795063258985038541182945985711075025476642954566941526013087204565516581418086501433489555119837168269582032604716146135595710103131718240459444490980170185338654534607684697046734563181522324743650503817685601112520052396882324935325148416124565761983624464081108074386586050454670084167439818807195477785733318334346573399091681758964186366861218099634874916693953955694059995682293069694355156191390382379220512233059463273400490730526572708806362844181015469402731229596866091656165052984354611849526784830062947586470504745142325024400004360374714941130838709654657011704718968051348412803985093720824841796531260946063266580386099491701545712927451032068836438837282884664036603395574289401651281301461713710599540817569579406123026343230581574286229288961012132191886467976233408928928408691999886751103002229121796246097342078481538936483851695061521561295767269734783092427749231006637082441523381090606895498702995113640833200083024687193404252231496881455172892574068619073527509377504103004195410382129514473714468209277195668757931549668506436776173073493082770260866784639410327277117249764783292555451876064768821363437172165087557507383043386892765638726320211514931827044986040418854365572516324566175037979751723945078949320163627794841901711642374241513971234404123604089368262615703018911584416890562075700011527757455161858434992599525676462752044520062381878164658819800007418064201337727545526517725652291627451224046114089967660893194713636767455605982498735026256129170586207345751399525327947395529450731952384587760840789846019191758860339492936960338917433378171260387349974117200172645020628665222631996786156225656189848630712693716234548517734574285283914572116356612675354738691057495218330226260441438549048175292738278748072141464343420625010251309709232811050572758101611858576352982749272590429737993891986008458291899024424276541795879711549674906688206353187325640535008944804436547128289059884340557137984085645086535031124991712605481896227530867302662342401712186662768776411279794996225387178622780439824489051231574916157919704337428625585482927137641478354388669197195314261365970957313057213553789742047500619485002078178780270085386377733583292551680222916066440542120878750067449174551240927614356514220553496247394891961817829724231813683829745991253512102202128209320469567194723021541205877512336562883847573037984916998535382798924466576788001570675350179217783378614707511539759907246210676816756107090751613248615651505850394571384663868257407917378683594097072031754467049863911792843750279856258452198890863207665192002223877342864394982135188933143052328739429067888615240434904129374598539715135798587650595537953401997358667016558632121899667521552744081153875373304036674173800058435238946537255245759029595943285949815240649314147663159983921093714769142212637045073853595670229694712478733557635557045681455687149827497267738066200143145585156170830895409525058793423679104877249380248981053982759102896158869974196249660335873321061002910666190669755144563492131444865229573584412477319658794228623463269921046666847077024820939881217081624946663349505499964849939568235571604818836866472458054536981878468320490909304659400073963972839925376002800970894781182854884315622014360670068038864275219310481482594916189577374090627061943907543168514224821297618013198579846981837846221034384204576125098219429493341874443169654696088754305201425818959537365462605145081194670727684393272129419110298673249049553462145291312848327214143193543529981623440394838625855577827015097150479205508187017304157274982390656242920435600018830577932837043260733669810571871030572261517512555587147768467537330506040047514655651273991743001806044275402476274671993579809690378544983973150440127151581976426639525013910263356889988996989779777929502816111964799420541529127657588078259226632753521920408965494379080508211846404577703157993559965036922090302124168991494723255836994912363184662872032403199200194886407699976475506745464595648015151416207809837112458308958114159544134379019385909098454781142060810960147700734033484018719326590892489259834372495797065802147542092455623151809537776889121800178455585002549023787184592320957275333761783147219926948799715843100638107194582834671081956135420275237564094881018545896909180671874085833535645446804413147493235453753034076403555801129660010569226328730236447583445132359109681407414344197147876899358543830607494226971483589546062498256447435359253332987340103350820467701754308121678160782865184937334911318481691790319710380527803532531737148158350798634796125271219642203891321486540307964624108747911219356877536752176729436866079164537690104151545806391108277149642918456668327988517629844894309957678905369929840005441095232267296401898259778099381631416377746789540048576122891022616269404891387041408940351612036614961491560000635613965291938949563489587543308828185115323016086228081115096789575768355542684289889802509048925738452554563266396725661657329660005408078161762780291321253774029811893571733624052685913274243723831423148227823438068672806999446597589492214016033371675109714271432731636134707764414609912796521295453555346757597544770274180364852553131305141244232062800501459489667468402467337756963438371104624805916856712611453618043558507614556757372451652279207022913405385608762083872468680365673622244953617560621683654801775216001570169414541383492837165108727452484221093865956206033193600557911397533276243472794437919261913420313601514850076608775841547557467262633672106212058498655821881218145163428840735902694966638735190831036464253929582069974981982179387610223852927572253498162403106125810717107776890838682442569140322013383103332236691739143193554215849249272841103946010597960570373811818464057323812600655468965585125692229387825200597959609835586942679617814089115586878403830166806678172950850238047108624487464352116937607701900445390875986641627855464335081953970735820904145949417001312906949173736820756907577510218146262200922898761373349841933451108352677984675454093117977004515051341569482033595530896739533556224339208573562099061671718479661500185261400213202935891256546009101147971299872996546083509260260090079184343253362025219754077609833864068308288266224542507892587681082529615155941803670663676724456130927485676579668659770052418918134532254976427655013198157134754323238432953007709428925390495784955045969160585288049302200020020741672993246169882860464206115474846732316447871224944489765047331510656869862063293454695525419915114356638025711575309845617835060066954716329278049221074916819812667908390710609038671165145517440715416948522095564956734218948211380523857860137452651265349792222870339706047423543347779113383761895679521721264090968993021795358540666333054961473669194285079834066486411459405241913427573186449986923115103398091582829136921569266372366432987990720512933010022014744380845180796748276776390919747810181759297348925335491809188445353575726240593895480657276371996883113506745319741759428650161848859957379707125823760698591969090659896810407571608248135528749968514665365824249264510272421705957178657100617961341458616791132395242504791796927272261152874065415887541519486772783587970901571448408814094415193942570545223396907904044698088240188433406594288657222491143536748274691756652091788996367428032192192018145894985305467082871640883915725397832776859060097000834891444559375363878263203471077291073932988233740458686443861175795304580380419970791210332728332840917068944762879012506174159416275586022416794657530967379609140567248075793658114232669363393405240559355333292581859326521200212372147415265662450404855707438873894594213004800366871558042796721750482655024167777550542703975775993125059960935304128618890194523834249321710609026137501649070782415152822643700387148572154266557071848468404092228303967515501968736835872090003363065701773941197747952105050814133496010826802849726034593000927148040099025426042460605520831417988237578709553780410500392972976750657394522682869548453385637055163195997305767058898013318680170231480411118629386900533476948249548659210711920504041433486757558158581017265829533117264964767311381791838285576572299731746143601882039711826322526995644942473750483218888927859709701232165054946859019937252053435648549597912867959378623873255726258206460104914472630810193408443204367300486051761574323107451220759025181600434767878864379260834398785475307382004152253620616066140747814707177040698960250778908635919416563755493193182137125837305953992192035298671934890848663149643485176002089894291008710328050669215339723559781174284765995872328091114766306419197529798849648530586150685247191496215492744174607223783547697327132546002025360287080137499535881189415919039124757020080283137317460774505308989313915461836364283457226215539931464154328591835964685533426126953873932333998829727136838833416417335580651539959840038134007205599208047729338629462436282233104674127740342039486101732449071459840528181802282302830241202930897188802769090978565324385314868314496367091725541157669251482211375291570681929996705864858069836688475090044037029363695803949125804106789711660240545147110795643087332527775411336743666147295365410252778403025615078951574594372972504295493708073832907631895523977585069094962095344982020700836123555099193217790466244341775191758832379561261684677649160188071887921806122789221640494131864909977396042720365254530226187156802740035102061866224920235576084165135665417446625886033751936675285874723390409991025783295952447300906944943459716133442000501990589675945060173713267884979938551279769045412243327651852358731722161818769374553621945410857233553134541807438220632881449751844018968107671221823009244705514206453259343635379731429852428048541461062890885500551655056684598911206024361344047861776723246719843808838182383196747539775346230738908079299679305878878346379174225659199641684149350662424025450489720667781597536936445992037227846875309059832569485783254496538609042901737449886217554084854235321298733636780731556874388771476470244610807831785390546168001688436296432479805524765278650676930660161751682036356305466433446208532178574634580996254948147711961087592870939676679345385720705036629779043253286122684979311666264803847395345747768753132174498138332686836533384331103624371106176730221267503916649144548804678717633678229997685910384898663140139964434973264945126648611222106694579054967711610865167334792241386592854463404939939915026026697171309841349041630898010208390560993404399255962060789629581531814577678568577180752114240633242511519723375481036738582057034314921287865896769265972680956394045775372881794220554978436306830653470010332263837480403985546186967812567339042286468519923234652954696679749457726883019420399171405003627703969148301747668060986926906405628278581988030760093419123433020052200646937242930967505250580506048178581245885472518253990785548786785273407568940261145901594278335503732181920007378593447494212223726634963546212132648109071676093088674411412112097068239810848531081741464417906087226999864757348910484900427748503712552241166619205994808508096303935478710976092944607683661329637294668176769742125821304906213804382706729055491843104813840415400909645531083699487872402836717109156513192662436068924908208401810608042559062977947500692842092986358931474197746831162010109617231339932444385749753517973678955609984963092940027868941691013824087727694906529469349249934954028567709724491911011116778449479048161252269070884853769558688632599429082332582208476995240894567282611591446292002433105150784439204937575279905860326189667697702001843966144436267916316978886401578037746286200118728410260559220379040555013622161676840113239734719760612696314769156110679009993205643617513040311400451505433247455189359027275823091149230934335059693395546888796889213016447781561923179544317845824634485355697267915565190391846945603784281220351787709268539883311568430330832543887672448476569134255810268435696001719671287186229472420388450168156808307758021589433833531647298051618541707010007452806303777199284500791917589176007986184419042067795474358209150305857359118879828379920571566951018348393708502212120976103748291973008376782373067070740407259268565330936894520853422942544170505007388304193744898871500376280996430993800879543701202394347106603588008098073533373299060374425190003201036079219710795340792609138051952737780781181340189029776405276466044438045410330808996399622147039797213530905081941220985130306636378010166599503864974184895071916615379356893733489749932974864484972055815054672176943329452273897846995150667364109575718543812206461226203722849776029976499447073107657863834089164508695299509004861885465154300846301313072808444419934633492469425186874349159950465060901141482394964626563337568922386365998282477049641751672556068129618531895595026402287200243621686032176020875034533945510450594073687747128337406891001533433187535920232036396278241132773078627658803996677383552787088510964098395756964542337394191151828256758518398890988470927796082705612610670098792577622554991598681979291990101098232201262155069137476185908146908263876317176370949954807126427986425405429066506112888324429841584740637844377251399174173700180417600310577328450234280046617853697123185877192498443227143929779128195319574834811625367852711799565271330509048870859948859272297497884172658584341641133476765201001226639821158743541644173007025064229167108717111073356949998474911682322346161456307922551086480691020366416695681575364364671138652259015177474236292416332210211034906694872160412257357314430679685042477338391030063477939922099196038898304441345566375813116154847848578126994004992965494732254417898984616649792088848289195376898847265400562500868246482304676626399621821990130464018353515932714000595584632742657479550902237403077708615846710217664409655113328630181015463449654997227483832646180534155915219434532542774222245641556638602740475991752914892407649149643577364929588598375125151943292128080899773812200439893848288639099245636475595926622788271373794081611958023004637377643423682519153437670144534123125924258023661268130228191463683523044785183423705565309362922019897154902323783358214239270289672326492506649210358436681008217971220933847011637998680277899023566403803772020398179420361524666828644316054734711347489031123311602352413265026940466640230682539759594733238235982017348412205647581940376337804627811187655934723341233778303661840853402574730184620401704631066232402435711945359507530835546064893075924659618423381653845830141295113648771365840921676787893999304799811484979356117091195317803080823420469344417371950220019566831620919959576840216623755584777565983237982456779264989291057443914088258306041855296353172513703963765972556030841602129218535987875624225634209389961748846074498271959392785662530935566378317355501675860354021753074152899709838636643683234283090784210589979606013176758497776662818669620089425623385194807931863358950122432934668504190112521606432273550438940231921537420269033623581589242488570468065388981475998780314846059795292417034989345173503582479639857905000584671102613525289994676579276288028745437111381419410881107498229172632034285651003827052900633966105070870054523215001267967429498275533597169929119669165898995328485820710350257409381359978628510190552636042723232868476576035567380238532608841661384648181780195751523118412677216642602648611893183076456539152877854987733229094743124146191778059282586843421124850115465896753240220833635701386669059028891898908371548415452157670323063547141734721246994027338001455459143276025301092002026114845929649644888338792468447227069045334124457046551028287672485439263475063399374043099833899300409377593627460413901638951022996219031884253099254146288623351544416397413723262923535168220746014265919503302760735128048391462604315613443850117995419330433233287841077301297913683673384974449685751403701422954897135834435392285444930292577475918930796696846161052464979745990323192416549753896126707654974069203421527868783912585448704532254193377666739318196597235718378864043723359202204018287737345875364605725688093035572214057999611258990668483309777527377624527443083211408354233359761768753894938269066149541747847562178837894485517730967325736921582172693135954654822460054905996004961916858229663636304116017389600914622616546046225914419455076032766474191257998661762109343927489288722456600921216175590762473284722096952818729884025087141564048479884267871491996502488407587273755425537961603346949257922838411687204852967223637738833341171126432557222716153262540486289635406983590112863862880135014671367795019986350180895287426049375050659807151036675981900300447214764967415128250494896915783544380864448847940104506338400837085707344458246437653668389332141248563889338089995382764059314654088912469640698543054139626424667111055462112385252966427991556941021676572888145735373743834478146876442003468154159813402059939999003709450584339859658574368208689514798669813917989357463220799344516161057497038559343279846143390599434350591162568362955043529052926895494635807566336312376413476334948714827092979920713613259921973237965346666012199485479422224289043703288097935960786963072734791471936947282709914150149617408212094412027591981635730424085940035817246394591324239471183318544239582057143064457655859823427826566938540988806980034005617652179633409108208639534866395486483362290065415448749662471737225312813728746134946553886064229330399192900769821221114547629414430466035071411350992873484249002660765211046164607573982180277125525190988876561168256666377392224832520699362155512840371884699383704618157296123038987768014034366932421855498997452737476549385582799866995305481134408285032452823163626770465399657853949846105551524810807177069439266288102676870718528702004513708074638913080719536574980666283588272034485668038124796725744183748991487618519495402510879052214359412586521808870519684180477315260449660525532787551290234630606239016635827054607305294023914733683316079767520872701516900334210843443187493295305951170543781108453223910429566813744284422371483798881003384584864370676363805089322459927045886878799746430598180206449536874850071163770635814184162130781633991516311749320252040748771527339599455148480956561182409190008456945824661433572443552341562339622516284751343017669162788605563224399451292838495838850585464613859200672947545890725146082854538393049160007783234398547228721984931528517952590798609840274581671797388932387595151048411595480125381689853643831829328339935803801525230334154461625520009692000891392755121201799009327067156218792026968117990389975141154212331929637818822253024364303049845161896671718269079998028825423751333840901465330006441528888952394326524439934626944499774101340504211377061065261948847126143922950780235096318598985340560583047280238530807829127279130406883903330919597021132276536272109690082070650121251128247648180464185383217387133462369846645132271809341143811265746878641380423113184855117860392860126329246866327212013889382512635404047131592471974412921091596159725537631715725882892089688461552182467995610810432322005902414958104835006640858422457590407169945080322176244315828864425563203932077669055762622127634604290537258199984447467053714628938198329302381764948923598151626522586151903219684458226303978082052851616105729837588951228822977935721468240546826358750310191013198706270835152294318140521593859133928053931822967256846438418700636084958902997602531289668768155561595256284430508030005633492257709364086744120976796842110767910772742320008763146536789300528695667868585089215696034543569679842182842934648662747618944128947782461885826217863973271223719866811848316699241871052295867599509999365590218028833651777336386235109536823751727220061365034297695162311881479183990588069943035290942931761675521943748802299149236999870257225787233647793751191103351426454596405640198212060295496345535087039576573308870394353689003506356655250493382457377122537340737617102059239805166886836044746788506520866087578349288300864591336383459410999126052850995007956178131115860478280349868851390281494057392067738884651335610793946943730107066421977255073698670357484298693767324930251222882121175524842345746533615843939503686968266044697400611902269120687881308671578675270482695474731943615926666923436491746159404325357350997109520562620822602130210661134328146608333836893725528204661154792148071436875456146011954903961869810756438441924495243922361294329645249205407474060257802646359461056886907094434051040219886547540056694881462316518104870553345735932734507948039223141425307723660645297320621839680876002805185702632024756341959222511232296916529285060991701706270474833100956519328298383106761379908113650432761959853138845215316120413312920615180074670860523079921664873321033681507991028654190158571681043643693880588637224742055598429144388449545124385708897431062480020558905814266718326516377191811700402484162530880998190545068461078328765215966233302656516840339153683678716105151677756589944469574674868448414411603387891797537655916054345719922944326731951394865759731909683431175165451866770814273595525500355175057711777237487042071413651171613411634589092979157453699763205779062571960990572232517881853555407785988245838250162265016840888577985150694019969126052100569871444698017928164535453966423829662078357400527259292803347004865730462674344649661587954153346756593476449325292832620308652377710431547469831243300924295171020773994291293034516121879265805414434894351272998293366410439566887846252872229596739095074617501465151167960521006115550069188914699336893480881600610447947439470619694722825755658206969794031909340210315436288835126146548106039353554259610088042256347015801160932173227727374332381755123102497777060511779395868776222771287982770949807830991547270618354751568559477467592125271373492984667797204705564829253319035200171174834629833163502487504344595683512912512609173548550445483333040739205229374744344457267987902165066551147027279141381105163343391564301437190326338587688891639718014697627117065308761892107368777591143875687357538049616465822971071789135170035991158947803904160511486628794473974709363379516407612711969188916367246812395825752867218695361745285156851821035378691022532668662632159823909003769125901905520018087927058943536467158490433768574913610877159346759500895674731380471526615629151244341560296223779303997316116160769008472357660691351043471498439900154215445815846651948433121450457991115023050580375181231511842563452755836163081155945967117425541513935956344691700642026279934283458972939890050105309538992579917951814031358595366808547717990358113133215810821311170645625692956490334702266683633427918195499040963830241372335569138066177964641044641208196401662037959521058494855163161522539604715409289651502978889214209720095072337354529814519136069469452313054840015027131353582171991853047615801662374164501229800380943617202153275840990000505590380650034872893776009926290097364043840679066772340839538963889501692077310813411774573811267125379466036189441263714354115583275534013383175481275464229038535799240317566903486350614776005930282978939636055091286930280068602849985369020351266311857745717449533271640539294568692988584040067011882206775379329259204308113469962045255876026653056155572058112715972332912471714484819840704171589058433781979926549084361858378141553492350945166952360370354761161987032398976768980233294333657233969306245136436677176167534355576470588370182747451347238503228971316076598650711619647585525100569635980057517621591176784572438129240567779359842001180649105868436586622617608796892369227552073453215610218020613949099475109450526632714993757397077009025195067297049216542014539677967662788177819295278688838753719788264097073968466846503022249384743259733218057214728577957876604331440473394303923347584679162834265597934779454035388726037425957793195794923261564169738100715567128490510090068619584013656634247098276707773274160903595833776649202712802512271161038586272538865058162513429092884481022568712599093770127676143869258755035243548258332460574186739673962410690359314204107224730237554227090615826161312172349036848950096660623180750689094419197443082829090643474324213952376466567145102611880896661013687181383528951901674744752346225039226221680685950332580788445924192202097766816963409988325660708437584992227563472009382595488767437288070554709170971031482552760389525105648403327691450543150566363978844359283602673757771054762133281914107885551382411713433996947753579764133738408262072257108418930510695979922856272593052161450051526396874730960668076901411661020726124162549504666856372766291317940519650106855728116428424870122432600896599083258190747144184123118120520095255710306110737966814527714864643294030750252996544088153780534759480984492694662290748771919677501649690703597753646867535240718706505696272951553448098974654926380421509024563952854602262727499611628244773776236464571836362893581476695602239965077177408338173707419345531696759270725308486623835569141525765125574275949428250173800453895360949189453252159189086710713442364380137424331727111984767404411872458620462350540100492073949609477202843102134639161027886195387112613127295728610595578221026394250198889192959503908833781670070815291465528701883180303861920868648860009668270301230889107148466002642349900690002965028332727097152430670851804952014997888538324305495427456225428943187806618415613459133170342818738586050704633908877364649885213524648244380813489727326791620692148650588029366968681230931930284671729224287912016834627301403882737437078209686616436097679690220397550949174125002874133839708354603380597467969010179387813494491625018193088809626912940591811247076043132123873868430628192328492104784676164314298310246840564755903628434354600619628036314310278600092950515227513426633282341423887067692087626319192184354701139722244797033909923845359758564357807861313390534300161840849573858568280060108787889930458840981844487453761408692509152687861796646714762632576809243739647008573037686439509048161990823186915041840140573448331038796263667275228998550238202359914826096633412102182225742014188114169945593387942822796157446530150640618512372075896778364172037514941641468605893422220962902440980884816203051173873105439215734541700728293798442010540734746749678214158189527823352094751021669490775180540576450885054480608247770675269660367021054372215295058087256207155521483672880334003615860371353591177750452556082938503835147357330562930887471671997060443708763403310169050995173997304296188179264700491286243597456015879869794223223926566327880859374057005100276501106629677988563980302991796618495810741609571296772487718041240161197695022336020257411590270862998547996904257799847996478198281271945426154944790245301667774484896471371220949241573904087330591149031950074605437108439634312530753965519248797312246720222150951827100615521212573870445550604266504741572749676349226648686354533921578773934925467492004026453347289430215301698965883985543718805337532142588832296346311069159695446289823548245928152899962553503691346598668206900053741751921494233478038690476214047725712772524307866024498680122804761191036674889628286484035295923091144260829248070227881490344783964201098452939914489919001286553707926441384920483238404544371529836722867252178076342150236534665055457025827400293925819484202262053785506542548699651308910581483973738271918991619887311733779385335852313317192109760430736350772651155678504816442968062927888535741018071412422039765148885221790132116622763919180900767993837867899509764590273074770219959445543980138372841732241563473290557535253298156411113808304282666125769680819413503282738756778689000550051236396363719740744778258584294665270459334317534731065054658529414540016422628257566155228201739567238589923385119274572143330623797488976226725684112156372326234897328734408241979162397410366054856251187324980071875672184678741217818068280589738401557297208817331552179519248320322595471154077025524004027773883679305994324205624524499137946386626684507386078986964007701585966050947938091096436193150279905737392257626157716988831148031927083049940970667279319538847697666487374505347732760213361313963918562629172770549403697216945118267027857510057346419971487035259437292124578893682945668909842351258264545222002155537296945315051318335507182993151314708896981703954653935318126003337284958269342853149727151095195714120612218183562467613143458418280847038254535553142964297667031454047001183707782612516216973600459420253797787561021211953943541850142165682810101479016511032473230547438441553990643540995567194507358022708311861285299040140458202941885033105348782895083199092841196480998498037767375946810859244338321037102878127302952220836880501286095582160216138539202425819743605596279255387788566017181992905006343195815067172801407328191064228829450499826271433546128529052927777402693495146085111623911258809059927802281271812179868128697547688629130435178437264878505303687059655880382391066665283417257651786848385295857894213823126481777878493553589033210528382334354444814350778553558700893948283084450876768204021323942388702422945543481572100238782297648593017796868411150833268033976012007680709121792597241100265421474087006193933037490372724961352111407850761494573112003189390659280009338188919947011178452724726169345813161231190643359461310345987056524909614641826550773111366607318154848422941833165255197876731456510127335172103497452388840018787914324826041266083544282259000607658310050075256018865082853207279899923202120374830179054110143595332902864632610385538078418595160798124907752049862891193075798455715898413060711927706513652301197845869712589776953470207442485154539837142838467475760363615310718032693051678154805277866178279792271214116821704349270502490727605887767682925061896002168091923591928014555292612259235562744670494342871804375306003380613893688661257648909288447742472239411079542066479138509088532942961229021883316379588944988387277224620446372860456437085231254555854317174772976797654986514755170673616380520681009974079749545631640410675840465932723131051869018982376009594971985280329078893479387944663628715012407394540400738334916636895629210850799893823366854468780426339239911760743188575014035556359901185306861024996986687377339295073365401195048669021324120692927814503383634507105937605330107317532195031170354292476928454476435867488323095988852088092639621374996139912167884697877143742240038782107535597606444442568021976358489862846659900357201386487919620531940899584727625683945030436248175883232001328644190961987173534006755865738172284000943628533200970282460487222270236198820951528114940023397214154075074746817181232132774935551237736816132223619428052708493083104723437737782852400595439176791200952124284887428414269973520058979327797894387251845594734370284953265295804568021378777279478137069232423715551421190152892135262687179007581084362732691381524845542211200335971054176466441864270478163771215522081737281062575673085157492043994550237503989327619863495739945194132062598653386966343646317180465016822166282031391009542318284306914018004449128850429567145237572024945685860559158618330917233551244933261152659875619791727421350916960093171590222236041921205896744251434699188782224343437810692170373897728935057090910679812905249304056316194496101526842133741899517627788614468873012335702438108351414205094731700004539982268011873901335883022846765360326614708770114527761681641862031803357730800483726509935423023746635939845574663587360706820056413100296433875588573140529593608215466702496366313236175481875569558686761500918659657232332504892493579768316669287007550035843911410435491908344438288507701624711118797318746194272548321889638765150412009466588672127501205981274424593071495220988342643568751726412556505153540874933986940158863654565009778765950693562475992214383046364696472662248285277608796306743577478193990274623353611365228338433745464714449178888423976661106974671171494613816547289443899688946415382733064106945585013148908435679319115449418011281016489885658732235630116557232066965519156429207176541969152972931267618283171843621860595065680705162551932721756928694841915129602743874607211237693557979726548381439602177871103526606893969765504439591099132619295077840165112898873260754822030703947612280633929284095008832270638653102513639313369263122881721243814911639951205717315958301865528559862557317979034296902662076613092284000497200115957907985797162434487040959640499807483640498370843645457870281393069083469165178111718795538578027101617275390953062964083545696983067663931408568024971237487409702096794802657697198980088242059274793011051205724572114909937898154776435804075208559126714125796451956616979384881913043644459455160315401492850056531884911765977124265900067497480425196097734725072519629085864926079129355141059243161859670242454257470700484128186058924860578322201899652466222929438726029935071833935541282709738041656999174105800896885556664636785945920783117657452936612354068940704213226692811518605849844043788738319714981452232349157167263642893326421780871346898819725206095312947460403602941914235434620385972509461193875531118510358673257063030919329726605307550826121425225991940490234655317825909218967809653146919064256746040010966605283839433780507426346695551646894450783782736881824932020198100714094984941635386674225384875286862921679099410129129763536653626726865708508623148876193625757542764552199229564306814803723212422178828299059899801704741691459626157308097109244181570098215355962569664765872273091514822261771711420557486400753625787831152342764955545300221346474355269114512872043038583168429527521188981573723449667955898293051555765753623703755338460243239967746596720320310703139257917838279878726505852325424683835852680612954900141055661892844457734401712061738883521908668502133387258230135824409311671385783600095692056525012051805847827806759229129319392455381299472837066066543200289122018118026260675740718610993702257705474563031282173656996925039602610460670139271479035241971267561059298299559384472237961497790201777634309942657113902795267341215224634445159311716293736098284058225253810353426912722295873984177703961744888983563254615339053881382393631457246150542789523010756171186116269527646779022069504087345485585583506758298718127458034098199813906262534447597488724105237054837417163353310479550269432783533904805641310354846298013115576990413367215132225703797743435935531966565807950007398429421275309208937710323652427574753287829470968893501148604019198284195741497697352852934607429428654627920537337458949436576643713056218472794334442978575247376695169428798727820905894526591012365789848476528999373816619677440173128635353488835374287590482105634479912807658769903361789256546135566584373684944765698940519254299893851366106746578394372537723854001694789299178296545061445370376059980147063097280220023404327909628415267730145300228791115258208331459586419917621023825896413017427825575927409868552837523287451521502245940923677187393291003726130632117529636847343133779135687326582881058024075787867694487245102574346586411838916664493587853993233904921429822703203968337882955263445639857855191802614922633078840238007503058549449933827602453969699122832083181316150955106890407899536755673759639395040208584260570053696934841547682071235178061031154694386289195307429259725616189605180626422937559579308732654784535151866624650901293864657515552212962966695636552256676382734099045135090410205813166477504127701394286989606339865540342540199938578910720574613408350506954211122935058370505239566400801918660417491237457493111603067355104250001128087955620362908200456372497789518018105061798258616549965612865300426561099612032303382896673835122258697133300289957962621502290992908271598706075623654199439623867978420018602219684280160392387558997676231011234361198444816718900185478634988693569880670861911542334680854458585859547183076438578504187438806289210989886961528995639932734261678400541434950665452391334289260612389471366262719901730887277355843357727374120735254672816989697464059073245983370161074922093436289164403771027780446278581635855538908130281957731191091978445116345005838002722863273580304452505035760969891105930448062062493882405821312983611829521339470636315681514486065861259756737739938663624892798344498740758515322834475592937859127153604060403697519197600949336858135299011317216826298087903989531872859631270184223662686090894009140990730917390785501242502396960926817643498163529785409385673164013140244370460037058401074193516468092098762930544629191656201231834154394918133309207620427015985369292820485992020280800671125472994994340704601895181479294556460069075196007279615300564951188480854271497032886099874528696853695015046019101708233969997686887925944264457419048561831341032041527188772185791765710695087940922412451809637921049610277955645193403332535853827770190274821223501643346524395693898635109431389302770612856383377653848271493642560210619954295821867842117771416657132386778885969719044114883527705586189520398347007966669220875783320669324857026327278207594035326289312684020823973884620799596749720069589104543796337730463838841778976396582402775944439014579097796935323650553944576641209973701370744954829828180301643587082910609319943265748235055610616729002103047767344295322911659664803006257800228347547931063754750390636366161058323008751902942364353345392990159383817173090772132818516601241030521204263338051212042500216666422941362695247902486322538058166165194595814373433231751382767772823283108647659367952758261224905680859568120556066264614286868624715789391758647555394744293921751042296793872502436021137051146097525161206931785680427742354412811533034337952011814526027427915163707933656315201013959044561333618371455066813346359031738871906701482032434029174845027744814393552092168231568804471023066917855146642760276502931243753350923298503545219829733298676102383895142444171149646516354963768929345398545427506448851571393391521427939896956804050650763453807320049846117767587555411234672067367909673381129090622325133337421466336699843756172431541569922830427978616337932367452000522087163366979131296693583863518320204430205765061993018608803211319878121483923204224592766758431296252227353715764490059681827734830120259016019396483853789026165046169454221628625503577755201076821252617027935867137263424492763566863752833702430949958974511267409974583397822988672022668709786766733816788866694241480190758183162466453398913339327071197668630833307529532756423627758880392094105082408364234100945199205866839337982007734722374589644853286108241153725470396991739932733019062690734053686159024514333269733846152335136112845540027204420216385932846461206109084276218812547983562081750754462496073955047691374049395467916141107068223892214924352643894218005346589670109828841876428385832669167638415923032918062562843509225059317892002449907551116585317683993504405885694484531449559352850931931154596569687919771245281177034945239401961725981979474499610666686681313421379002124920610205550319837182734903853303081608183419793943005897856559974064727650403850629137182323277112909862819604368771452807603489869312425298243545155261379223208915309815360972166055656563422077002764692433019915304489524644484209161403268985947963510254041769758633557203184088546720355038325532833579677828504119372273589207056644795607219985853488588122785295935792735715980223834949165518799542123322224640976143304948599424712811100870558238742519613454681268627536058173084889430248820370249037675600059149925589847263752933737129922468346617435186599777722985013326457302954627759043662378593851124158249840789813429883120726582637356377319878589321333661578559825712881596213348663006485835888411839547919526123784097366040247236346111061524760325195919872568666407936588326267414912492808791228086200293878773398460931858144715154747702674774953897264085739037959778518858985598024280201870916274192984495293672637093310685450684687262022126669052649904865894948874841771221141727070586158721082010994862035145406947466772331115554522014839175352363867437158499771355616346786143799119951800850456977261695178096263510710729382606747031558007012119124740564397268689775974632105841622957362208016423101986255519704201451919062904088837941398822052233547140933752806743503084008917927223036567164322390875752039729869519277513805416183757684092193453918692251513592044841911228112416528706169859025709190953649127882814668532537437901914349273574751463712588089171304456782091608375369962185998146030134492842423578114934186979315579694603461513768264232395609379616769053960153094322158161346216690364582328098355119908599252898480336026532477585146525472510828450617361576186043096242673147639285408371670434482090534821102219325559881862993473911622026823615499721145940001054999364200282387580018842208499818869488027532736279384907513117874042819002658707084599326274230754525869228093236849114328262813717751802917653024921162145934564805460767763408261840217901644277501003490518627338056091620277879739378906905243792566578439346346748652020891968614734825984621737850068853416534565236277590570670889135847839883503895523388448565297740189434221897643401728997633949232049411765441624007134326908659246589698536053052740108131201905229255843790142857947147378653014490994298950731690981744212511955482397151321221071946536699315560805817173323834887421120434296046117389452259637221680336803157761458008962621813851865568613963027191813173328669633684549827678031819055470143357045072983224709427653193100067860243765614649544986461658718080176225458594516016615550347152765626078244341342120760545691892084890828900158961940954177567884343049830867434200367226477906482437499488645980311912665253989843989787187911726019814664110221880299177456115850551978796154882140485754567117025633685669689320974616028891841143584459688926185065435981989071559654805735910377012707700389623257338272609241971404193194230932397967398249576887333516711165636637198980088855563646994545763037087222523283850485822873968374318372026034075087231835577645029730519285220388488858139772474337564633647910358423518112012111817997155732765991421294819968043751018896924025827266940427976026891681920009645310261911935063174052742805004186450330419996549849618704490308699363480418810827001425572788818523514958154976008544366479269703660039043461401950107198063171302764098899565972536275886711406471108132773329513253440562539513777817944737028588241627288431604117750568091272203285877569127738631927791712853083336654452727452776304352209561639133944671641209833516662571226145953794106885637715175373306148684253100220265411988310290274635222402943591466990031110484545469291942576237424787975646206802690761942201292975177796695123557234247628717795977429423034477547500262594743700770038402179483143035888245047940679809199572914666009715927519183535661378431133766997393585966769750190422906910863856030100774422546220038836714480737420331913849852309685227287962738622379710200921327387512551972641522073607112178392402484945437409922136581317123440241818162382054065565870944380542322504805480996671940230363819234475005133680609174798235133138053814639149884565915454325645965702291525878981427384729850744232231894838325769480764325818828076676653194062204196781202446125278838015863288595020222763206914139841619252032065822890847731403535682023891554316776761577339938114223461806248839618185289627433031644045186427483318222781843126749606278600850482833944569698788852770102821437293278592146707573323385063779825821781044578288856261112361554980704546473002734503052711598361091570639299704552724339632742915716195847356013136891611816184498900312335666516971807343023538837875767890378228439765805930735453964574404481421541675761306622627043615758364187903541071252603373632490255527363573293106542127171288674421300357529951911738997885501701560945069951114150920187914436396044178177240895228121935227205842852424847446035466706985608334563367715232728243551293914998585621728037361238765268934484824700416876026445450605853409679890387332862354280338934360094386128820761188973903068191433373625460729694342756777482108156762900999221693692339064120729066898842557905713625728460542835170498005967312807109948914841385187923455729009967631815907816853391115760091301182043881484736117068375447570093034371942183945725653042269364270459174023405294813825280846997781159089920964902439844294778394892258939418590008612896228496015904066460079881091519067044433626814226308299160492723447779929191881392846816084200253546247385378325209845989594590419228386955683939252167572408598404949814970106915476995090819691236089007282051922608052037559969869843904607194173391884231660772318919139306123043458836344143691762483087734163236145259583762183812705095878153076224298783683755213485429477996513294378765240213784588209097478097731540067025487834475648223335005961740934268536819824265470893258548260070266244488473666920058647080483633549471457319458417232717922497155926364370036421078393415302090242302380632650177148466676884103834818035710192706269647503638601675283408946423976466192824214963536103442670365880252785496861106214747099328273612030966994659391075153239351137671204901352215879348319610798313602428256753796285981619857293230017221506625870892772470976644678914243737070590045031520245798203588143187508706139365937687446781835241330001845890079961721831657504089717522959054464575818081311225027956694011061152762638021152074636621839766841975354486360473974558982812177690840595375295878492125805175532597308748463680660008004846027723510266609394986362239254951720703125362575295934179540968766590555066287132254135191819418677893193543734446817941460210206781690631654488142045750711921125933189846332034778522518206259721852169256450760460069778496781616872165986072381190865834118385173220503185869494191626065494975150139709168824004916798799630445591866622908732023525975978284048118331669748125716476050238511339588592876733425768258331542497512613992026197609928698638693355554778472144877970827310471561689744270982759937943978670567667356044426846828018584027178313306200189072949327343906591348208624345264189766880857039403129446862357879556161077407537730482046269340702709591456746895461455619565732960598677237084353956656800893430120347291281545981985252794394743503819304487341421947297565771922016175080917773806164430448094001409678731999951695341589250545879144101421185571695454891400875149822378286479126395694254964330518318909769248991098332779775212410865064210339719648663584324751023069519281830476522916519294156337875311507256780573930226855223852756927649102227136677600235254520108465572976801854855398235388482471041698949602137432354973125934818509098830818008911565120998085695350373865032603424630676192717950601660564844790637306361867638277743542564787470815379127824063880356544753587773633918437229843494982402313406551326711305458529112011182613259527323671065052236923457534167228577126766367310759679604926596653687655987895328739832907184182380694406729507421008587532536179031346383314832579270374349956232527619526959543498932922317044915573691173946047362716466592495406772254766908463180134127808873302341378713875962774089031548846730277193353819497817309014888440131155162097294912015660831547661035014815810246586155584679688420766875983275577272813140306432154511820730142318015727261776483123684656739173740124334668242099167973532267355992605819340510146747564811338920538102067998194311850392785248123122615732643320997395493814645983628479340752011738841585436740970064806380956151900231768023380859605354796445882916850367010912020268657502935973749018355230119354686221656460142762260263659585975701091534695944395818825888728126045811039660317518837668164319484000541867283207913859382993322667117657521847914487453936382313518013410057894937153077910225144098196308408441641619781740693385063028579089733424385776479519318045229968994126501904551231889946805805539545460026151850762157469838356777104354829102479963601677515390723285487015880003455571614821664132780903650410616325692751667238248252966082076573169415913084508607022473507021698210422438223829146279917166957932781266917402892556700052827934969628365834131084760473985439951138224669046278172760972903334069880640382162835263781536378241749284549516821155458050346357942879299669656597373439432286783533953532931928738273775895494566606619691400385827152778503290455448775139037881012589898296150668740589131675813175406585544123514567602195433900060623181731394284304964812390258870332844478814916163033453826520906289371028031166068289509981524531148359349906121080350186827002970472821904580117869921659458415325709909726468111276476339548775479665472034646341757620004061195092592718784774548098613512437096056095389282389366626845268978895361002533435956093914606341159131907832210974152149493070385996832109195608522183999721327765967078127074632503879251082419833646060814872959726180253924254463715645610885737057327592240746576479480385464303934133120832866406627237286281850844184427784710320273813428061410196228952138494511326053105200760006968701088058041192534132564978439398141383544758936317152446266204605375718886715939518452632960730456744439717287698140610371468721205394776769418008519333436184237714884882647552559009656335591679958361085048456975341395123361281517150908969029120023496870767388091647946956777940353662091803505831989631318309201383205970957933455691710696970368464871320247070940394245930258083748349606769140239924861155848805622047897291548291993496217788400890729189749434979902602425244200721347120902318572351575713399926427316339251286385808525241159386310437525088787078451177063326112849292937965935970481522664986122191353656150399637401432355882789009137778225101591574165958797862242505934632416697477652429310277136254248480370586028122538687301625323952116817051738044160540377992116321927138370950117516547469345825586323579893385393137453860736011716763617106789103568147729900254315328757179615638252124735941419050042276125551275122930155445304190129033754260495171451195293844977604790810438346216219430122094479155689779620678554091895693978562037006162453625352828376351512269081543791949347558079615180147673253765899040485617159575783955279198877254404822610959588094450985397331756279519758664367034790105984178625331677121857598936414087475053465218566358328434166285184650381253674321143281098802230885047630827635989082599275786239797618884530796867873435432527778709883276317130893108322159087681741367809712267763083676849618225398461217667525628643956789129506061314250267419960283041860224719698513792996266396184059922473227602769760415569676423702051975593025586223789197558554332289683419188254388909038807794439991798051230620523394894059707342719952492715074640326028650839643320491063945128151591107926883162258619831127726238602668043770145984114228927785704334032132442165604969827732220059213229079128654405585682039875351482422239841668543083570361877654037713532699047187854276068676127191889115969936217335708659191162658301515640765350078830509389021423259098564617158950377937673060945309632160475773593895437678008375847475168801557631964829691616859638437453964739345956097166329768982067816039260460643088116701670229769785576715908824117478942782238807196775325717802647302060803636994447933997502733486335366191569712274759424959658243637549611656985864811005308580296804796889520176583389981140420511848534762219126258699714743755741933085256167287611689338096245613223882898666608647419091343639216716874491509735854445343250316439154317684438684197179416413393169742509196521228400099138220542999363578746183492008870546434219109625760282624990650947696746393944871587309445693075370257402783677654783996720398944951280341484894103802998737032913951660030955385655605615292485293141908942896102707679191999919901516877653010412454378093388694459955097959657088048091893734659550614517156472595849247137226071487836009003688543657132741635738592422213784939346357052218806819957747396096383572771652742428613950189988366079323057063297060672430960459610933981295915614691636768280281932152616375555056100651797518767759191854739396942927502439143285867275920143070058658459044798913915164233236246285826262874178796390946077931960400029326605985660025683083789260397500796895413918463441369133831935225444874222121030757115778348054446384978406683629148300006276367925153014248444735361072761270944703328324536025052230650276606973242814547024236674158149550089058092196761622825797655258055386413628761570039432768328334031634450463403181358125494961722491098826861526975804117975560857527236926204529990710701181191282832452555216858614961829610744311163181385229552691271708351277060235684769326982019967808032520683828658085765953453290470942008354802012847501777462925799461669182824187161946699111840563099018092953889175707037272570762090915153166459049279165110674725743067518950705091562648986615780304957628546590158091310027852557701234810999853138773503549792932153309825798932304273403008597532913035827276435215667682791831938242326541028855670979602239273505741767841670469000814208768510419130297530102028475733054484412458380892693748416827013540780079467519531480944892934823470750039885227961590037177204274277121871407983094699240600082823504837762646831023094573191262813804082615944709619012840072164052795035213726864441534498132737106015285870680778360821855647830603348302133684658534020634091359998298564362457533413123794074929837858462459108804549928482474162679502456624241412425061728225838324861315238829619183879417763273983858648039358159918783894778006139525504014767781423013999156824850836912056950593887910054865640773124410304289880015353463380646201849681437630643075608955660582865261598749119651587385008470911144849733434843272487319277074917614894711134125859242483748178428067904861479417748810685763167669964955303551164054074046142722035653147482002323344627255170427781947145352754797228435042092868500947932509817187364943231177555913658937338208209376266965123551063625126072304439784836734682994823374537712240168816678910363245705417924545536752391234499278064409215667881457747004831243749391252753191585305704250627616232179564543656067948434049266579486954767069389756627492931917434855556722237383442204259906219620659754801558690253377181699237429540445848561084995557850754656675612083822559847972220242156948429522632431070229250824831628751251775525867715385158720004357070012589938757777687901352453832340236029269427458384118898915417468940409820893574218349073075364446896724526635022982056386848752625103455685068173751334543302635693580598896058682771570033854986793254117458877709753939025867566956625939632465368993918954271258844403610224083567275956642683100150097339798630703687887588667354859536157593669696353673826192915029908834427496412167754013312644290645731908677337561299165935655815924823283552313689265716307509828963948601138359909192977666089837375286541948779877790311206036328613617234974152475270158731505658201432028555495145378626662472822776212185446588881620783247138616061875949446995117232225964429233373740384608676915677822704804172306010486343110548116368421705802341258784830569032467321663042521998328635617207218227597635746371764872200560168616439921323912410530344723736727651385655063687995018523535352122851415654846154093855395274537181443005153407545515551729214925586042812645345961710860977931878028695797440014375663187309433160048149728651424761798390628903611764373803046229333130872258110259612966149298584734546114313449280613978884796983833051865171915798580516714876948603849067482497855976621501663594302245398563795895754466389785062207765354223725443611682781379950350217879803717454945681219420401234716401158571460619553499566348202336187656366711709861458342069291488980455650084772850932040465803830019937392488568800848969905060421063183627904174874379306950107255561109298086960970241611299091372475994706210149731524481602206672438735052872624948642903553343205127495043859438698058888010578970197209845471295759411635582670161081287201881747126453515170707343161451325479700572084925407817776729099150821511847490930102807516478943994591511645465327238616771705549806925168950181149609087143871118565102601946354437364100219019002673986028489938630352323526884796240095810867942313522026084089316116981209428387729478997256356901409545523519742394010214122955328247664087687661316047743257622758104312083580558716726831662459535707194705709714810433612963141113304525986907447278994416089705771989405016747351274503695035878426256864642012373761949474226152934520336812764431393843193352313480697107703841512711278915451197784327100619964620681388570238636203327291750264787355794259297444075457299333713379539015840122900037927027530070777101658583381115883706483932411406216789177215865566933625091912626732765392116911482676151238504123065042884619020024759387295303770993068919446663578343897088409491840653967191289407717974386163101744044320744465258553937306242878893998202265203121461661659913299818504903821017215397641477079190458835811891871897657762931167536847168530274815386931795161269941216937148578159327231916976071286360715510774125406217018704918883615569197335345489041518663580311594372056754528784348435892990995228880664655215029445039044845847475077054512274952456694265502085200681346254707435080098622318452144033418113000144421387665185759086678598451218324873970198902300144478106960204901232621565433548773816715443855609495043900737271120611707936302734485131890159441274034675882253508484879898398798364591711904146068140793188622124380322634001380036978130670672705908821834115054407861982407637583527497299295013720042295539997867914569187991477028584511675255751730904189287846766226685327537842279040511582739425035845021315970913209075139650630690925841729978069715516435466126139017854252594828876054606511527989758420777545409070362676681633454224349434773071042002579562136516972475722195199602131810267883371985537399232232022547327655321284597009876519358995488466874344907599866203506366880023612029788520040561839054435247094353164680806205386142841342331240244399478682984257438135478166564941165872024051304120818623794548510243218779778095330401360074839316972697445839804024604794275681134453430940119844614713147989529379519617673767555878354076716608433333785055251318915407681778833355274567132531027364760803488543710666237878091865566344654001910576672679381175464706048910036410101880600437085414376732817722287737810504056296646879873411218749064709415232191850013987365496895911066752812909712790330132283074628260132379979532063429586113641772020073178298605845305206123557838855987995972311115232749268802851838070350863512869737442348629554604877903137800917800719872224138067838279944174797719283646235212696696098392826166035005875781774504032486070564351272145591494124925806502670371180910980616789012112084688229253761282854851290979136012028264466988191786124102051361507014297099261541265633698656666087314058112476577336443645720490965490986741240264002357608971819738771081475892539422739999860873721788601890024080393841415897865033438462021186796916471709142005919139959773265247484236299592753805330689603833086711023413635737385063352995420326456722466165760146982266523133135203433721890753142149793201071055415596272616656464442255817665632842840334114078883594530666733927897109005807575303166582856667896420793374897325300888368708762871593060359243116851618696504038311274029694855452815562628822029624357299453512501840438286408977574928788878315662130353431392671973324269969159661534594430382128929961776179686657673762027313277937629597573563507498054454497783593116767360074472492106599330376032435849396344005933126381214675506185356948183382047199729043485130794336629755927112808597337812354006250117907571274089995834244107890493241196921475169308938789160573765508687262768837572505953263459936023246038560602630163369410358991881488624922472278946692254672761038479562695586545275994944661671892053799391974182754398325881471380587924904315761259225678685781653217346092583640730912621866373331025578736811201940153866757587928265491452115585114243282185075831064333324867997514562103374577876203393833116875455674162952944832898897437010920311689792167438106150081610858675278777476187483880768776985719067266256342113882699693322717172642043263216901512455860689318842795534976237687112487114776014904320835101118370295965805728964022748868229665416800218842903871483130434997499731135953699931282108286113645433830433906268222921111013883104593369408024055187057692379058370814747327463025347404347890292026746712849589286118601656166228128460470701725145944092650212228605455286777382508831524413805829335514573721525538455294200227191617902476508567649928362221005271956255648600663787901590372822217850407856010724421951292204588502057192405054143190486656679077155765538257626754634572569984956255341694956277249851907803696768945539539133592137948384979289767721263128379279199893923734654225359167978471012872509518597183776342312568656896240435434093648241951983799649740701162160977363739565082068960155840261389891061108557214092127205380299521596277191461165987529020508566880310316778302513148183365340078490272146544199840900109188436817543848826878493763219739272100989037268779769470348532070208950196856942001511424694745368524458118909612222798138572914813842800496032553209429997044760885608176173585334697866547846805209376395407718941416111545799541467763551237229243879330951232140131284038365087309330193747545657130295228969079465455104079450741673949183159510689159978471099143221447779940581602486848758322175379167301583583273283068216601887773834217865767273113620706643960365088355435951610274939925164455738034924474050302148894190572866524957019762157400630008404426569479080393625687146710701808164949792795673942671294959569213270185652147301034048749743949526331693965422532065067508590116860977676752433490722847697145073571682602570380133987138305511980680675414890586846144929361555692650101679037069731122982897995471505879582683313109499354986810662580560040732056647933697765291892660209404815402494475732544989959308030620845040554136213178625921050102836855101456057563162497523939657762371027133425829644938567620270814601247640033490015212237900893118443272791403630983851715164232348713360638112170738784459056721255882745132984500116441555504714584185233251072284644798976274301118273230181554672519239698569686158120741497067957350509305066387692293342762114186788473605463702996834754515635707154531621741566616447841041891880872820782043849967265235180496628587639028524333987007532444194376161602897989766953996852703728638193650944780432244780120906433426430834099933684074931748620104216832121977255623274118541663405506385744178138281432447996283094560285688284290669846776277929750032874666925916538049795972856117854903981360177123626272291610402894150117718542052577197724406421103725454116155794409342057757444799989473506123034332001806179812712421930772816781905314677691515266982478630421914135310627281464003296288509579878080750591002120272990335876755241692951754090792263650300795273774815858912617715971340098195452208448060217345441027556379875500419792354495732198042915133621947756016631952971477817654725798430659564337686130506233851816548581011608239559918928893431332474468490572320407879455765742549612725698771134098706594971590392567285950754788506548007292284617366110568535029770402250397103093841541323586600639825447906811069141154072064630464930354517666787452898683534741961150883126010037369081784500600542383855973364317819689493475240683378784115383062649056093650565873364271272945235812981437003856592291372140621934545906815869915840387507329118557498222353530158008965038952117627281524420037035004426699320901771871591164515383226352542911426900512230747482265611420435767848593143003065392171584877920503440786232642412889627925321687035448754743892069652277709534189676186915043016187703721286288781741326408167335648384234521757564978969199726772024052105588332327085491925267863947454863568993936431017851850638225865978352149592364213820974533033335673560540068804142884058182249467149419515276530787065444128805522660989384262662497430771793266024960052644691906903093650814604268446441287403787137526785649025493817272791446161936570601659060715767871764899267540318085630116086980323321514753088498220042845751034655858978318991550861183123876191203204201245706704744869094689530049355224140625584185972244883210648104150414377039153417480356902037686222863777860703719474918477067153054951835590876837888150314721337919930614679038075211788203061385292855174452383551951285628083576602051080034476780127117695387600627106015275136010961660732991246229265784273419887133460001121046513970183532588688202458110824173611834350324566045100613867532913936811525440499534357166382075140987436098459631405990503019757668351440143417684175276768090137396762719134343615436183023702170698902928839864323848060544197329370145722829364619961639621012222560634937280632944029177642429740657803066408664595597545906743380872649418441778960016133874819637736362947184169698141287184949314178986715641087560263650258772654814325282442928943890204748815490161106091126702435169829073695186239070756986233124662799696709702250967479371062626192332508273957710449784757813827021181819927691887493009486739111489682329469569132145883536985490967256607594744785740092956891226473970109498398562640803847647060415938048672574985384226094210916000142604162561414774122978909296381571675991157225327209948455085061286912265217136767034515586105058608732602717998368948283161741649109903893023033163238086922087543470753015846946535549770805083979380043358687111157013203506834770090420242940198302386343115263402971797704669373102845107111613955780428263403098158866507526804958764218544159847561917674418966263240871153743802976374453019462057067137961895847212711643893719841798604332765234422482604243222468159607651530412916902251273734007941878873322896386294754914187985522114138094448254798485400862359632416240154124332461228982575781969707375340331766024680090356976933482674123963200503615787861878406098029470952459696433513681972881681976958432879646683601970183818620748506660774539935843974881153676596097997680795403169441956635713170905729142095230436441390627017654720476393752841236713437384821437273114137177270075926831663218154351287954167506249262962230427611466595008225067881569758255915033826698419642958080741081575311534796386687749431705975557861981987720702774546276370049595213015448040980138373449709702955505491038844411370928331818343675194180234841856755091236673223000891088789023760347408778918194846852895562044859413451981979231953228490565699524827842043674991212967941118350317851783169527943855350637229840378868114743399953993479735235942101249881763339599475409212776743261414250173276805692248917497277767225398386445250215666401494768764421719888359147822190284839024405652513195488343831280630799203425456583151898473024446772510111514317584708207594493632854596900126397380278892016839905632430431981131471969844741016815215735477727621989917687641743254292964632781159146360678371281686671274573336040275576873685162606778229655258187921941101902474135134626665648853620596053835272928422067750969232880137340670865473535657143318292327082689568406733634178208321852230292722190845968828641289890827567189609346549993230840499927533680406110873041349346736488512329053640847021079482151957010332443633479964852530757696511746798020098837753469686185042473005526676733577895819096111069930183462166769218903565547876631164477094335731072561070809669651408194945551455925595603634493831771710455682699501276228239768758549697868181510675531156071555362364657677410794157514566930484615782971306874660471039441746337433272384702868114684262281448296741718699082407564651314478055041838872921689057577642259508766672041526139386782255439188086886796863954713797459234478747390718355399290398545653059980196599756656580533803128750213782225838985904965015142946982826188731190818544947542600752262846627103730874242561156289294659641975757841998113189612835369223940476698238529531431472254447507884243473486170480446179231951549164817705143939363045787403950119349924410397667897619873004770045498634502646571445728057840026299667527399330460214590553957269058963071603049663483416306664269870151852723709196322162016601575283540425325505265141985704367351068024493288512764792049043769619190959628724589240031688460040883765705199286964032813719575935635055942989924249356585852665887951815553168747534641776766198144804737512249310806911014283386502292856930657616159234479477622892912673974115892934306809488236795074579329469252443998203958509895234520709160791669471940368338030029268190851299847725381423182336208535206405062267944562462162522768960106688975148334208227395680088832412918538730066149130463333623444104875690868767087930771817075716655632635757266814895472188648101793656940832393206407649877416414422170409327215317421144840364986152337666378927919062214320304484370245911932713065746875115517058225236983974236137532774998571664339974622120953806897718727459471891738222926238336968325800123629652458778479049557556577075042435122443049428272916518919032438123925889486922034070601178630205828847403652076445199636009635255854114876207057150567647353030821963506968237599767330391651382360025058201621369494158374373424551978676324709853825221870446024073848435126330246721630642655042669524967820182972258995870283711026331757961529986447019538709514372859598643396563491489502763508009222698987705738784760866854253905154056423700290789111505474139482812330219638568437501039805631238880742285553502231747065259805598410899539827163355203554118668384596899724657977622886717093289070383052297592149977035401166516002586924792235748715336960719520366383456079751122391040880026865283111634724937087233973700690371839109076958202009534384716372938509731637725914533727684391579157389599104206560932628488236937466805955033517011740973834498185033414372443353603812316687042251913382358025966346112024966940591711581828442725466348222688160063888742894221369982450184802868287354223578566479139824428320045467631333615402306542238987057403781163360684753781724440648695997568067961506525592641556011161802734420426263226759711207530795097532695695169625357139217671383397844303101291233579835824213603149624011677424423009743341947779395425968853678935672847159266256970572559630046857977718784007714958916282800578152187819123451340113144529957967120445384523816128040052315830532421927048566840081265866918565275891179072098225441012280186122821560141795843096097830854493295886769821123135008016114761586175322634954388182599438099301436387816808744782204140189077736645894296200173895686360930475662087276254532788840599473210125879725742142319074246545178673393129839635185072211296800181963095473684702038566066969661088602514906051419237151447121167105175524895471270522305203837103103376613917533996001966962944510806060180287162649520450294724222380638037807220919653090419280558693791046505252877831378899067649605886595205182365806836837205949045425763290862781950029370926790557418896936351929005873193872835049868068840417302238496035614332001805991453982568080627808646028972346896561707379427309507097899018540479028564211338887283910474694065011348115930004951404617956560925906152292676388610474202804080479945951208053021170073160658980004573008439520117304220928281115540046540238839773623960400129124684077166300452622936005870379661454741583289044234711557704004887061027270353211767675106622291244292794734453705658426327980268213801345616904463589670348099767699789145500104047458393771196287666739673048206375708820194216328315519411376863504682569245089580576148071056929742762357288088822044615922178863408330672522514452174833854216494997032084847036434262590617849764238025024949473042865593762253116985827901673599083872679298628560229268070678106870527145520387276861714769510513044457615444342388625295805853437357671380069914678027024438261505197057013877274659904975219271296978943668676922272714487702293586739238310694774460439304422569550482472245672888829934104653021268514499128518529973415114707385691587097002712912031760215687586905542067026730648726696467449368103537520461920395435264004336614554567336445811141597425013064853939205404772396222570333857944131652132959659121155427306195978009946417907358091553413748298564712263145976757092572039465209148411665434409152188797624892208955928644600577053458970869017926461806910282098126842560892821948039120072988052202155952621150276679122279556901363833167515453337427716084538070729786902326109625662324083405862751868613485040499595490900271573391054369963234785461645306457606915899911542224200069056463213185220090836116422613272158519754546526117138047018725352421122907447901349527799388388847723703431837069221730517870279610400756118163258031263049338747040804839609551936239344135855259711565753190821647176940946592845751949728454058038542554682052260381686967441341762653949221432536628481952763991887304909299566810225523822901805743439920068032682463604262254312952926052115539580035751384744170634414389804558215871403994437691453690294934701802756998283468634295644091942176431280662211508262600867044761266179033362429627542739906848324000216057309696220087489913038019657597051742573087822951040085779748870574649170295967476577624519827030882535026497392352544805211859842955793152186883138150933531083448362452832635086537858836412487388470912741652803717665262796542459254225843947677797312323559931996695109039217587623417209599433835246697902677910712713799838207088567822115748913440172884533101896462616801014193103727723194079224362624474540886739031186539889919640053083084036088153202730149768234621863039181787726472430945953390194794167510456221884967758131129479888970688241536842443768096268432693823580267257002134575820940607662904494586350186343869354343120944434096487012298853399263903734950793084217232477914828790618167703892755489191377951472622228113436375680837594381698270687307659276502712800612535107759732300954452690226512676833785537257251744962301665307424851619702692759780079429585968038739101037066300604761105712065264590321557093834294075255653253885746599057652416353728731132084087290101977168066478912967127580244763176652642613605800150503248659717823387795460564020885266728559079584873420538028758271253229431619613293395877929899056068368659541750073802045849387283571067608125781676326450494688750665329579785309587639015285500164707105498435297166718940955903345243836855270779569267241349418125544046356223009511347234999226765943979136913393175009736955191725829016192004868847817215239737336106977603783454173791723352080651794258757611533705750280031158509853884755426446564359200132142438725023906801260894684082853093819036638986071802554488250405392897687399920943132625166256219133269670110199425788904079390771144651646602713762666693399253693266896851944683565015431569483442431290451531316227169038382443815578532466548873389536730797119976202017529935172373824797930977725074421871674380254058135919774558154401168166689248049304445746719358256473136657832895452111132243440677218440681287090830143812700897749702234956853375996627664234211919877039767640021297901119987315316212401991141324672866108679202166810742125067532376486360622969783719433971765119937248945554875325067427467218166052994253513901408851519114921515987628397378566737352920555013411907740432256098923314204603864858050108212441540244199995249004003952752464668255608690217237060831557416271634858612826688412473867682024171634298450299883013561837614403139589833147446527008488728035601735810816694708239595514121463379231841445255509071406922134800126061426504819117268027779559619626460275371828457185271776977410206118086636376372787758451516383125732441191147388840017409737829565358471291999247360107843039908869571453691379346616036535135659967302016189851103674823042540685861138776993846546795888844065812352992553074433085516646043898889784753852722506680175405873509976466624892602022060269940842739123000424840701792227891761613327955041578239440279975537961538557752172136619645248761559743094387128466361654323385721827478392392496806287786131715892709718820429475034034217380548295879975410185898265458354985059660113120070852382799500022641491529008609079519872470372115077010256311448670661203878242178874047955530594416008371931104500999428132392715115845727707870710391390211721801756383501290224566633253007596852128825999348804731463667195828611003330905675214657915299611703150938883404172115778339298594264731393955610108957231256164095475209438883672000801436381338255398328564755016065569832613073823301486873662832442059975074859657875107317743091299407214357098241472185466594860759366459344250958076954606860753047904882794427489539606188957670986065052676103317150073737654074718241878128629104354203244900728997012026215683329067649319126002157171130006655104137142211359855716687572011173870245656067891211168697315868124839930950627702386555724915918326381320260511366230734253752113571739131181504356339604283292879970140833012951944720820941405359165566613216267912588543894518282435155552155307260642616417942855255090506565188366741552102675666138372629586981744948895406685675058659916240569165019121394573012092911783654754662106087402997420564409453658208462680526636352381669012965135175655943418575823230284375154211311793215112136238415043421467770416714096613923891580140707270049246048625222872447327560333525482537784338142186608383622136371853142608273452843584309776186076648451739504726524705968227127214822157469377353200806081678999928647598799795939465605619497533826178729303773600363794086063280559671528564470884330764205406560249446709516451943592816444025194401372154146291932747756683706346400404482834703986522771083386464485946250981203580668406650033911505682830140469273866368234940114202533443870708005970428009996383844081588947794639923867174576981029856525343691147441060629362126893042999660589241240927768297857294050474690303633007076166595528103790611430823221472921969480115334203999511060559509298282190216998351463652130521530700804815966204757305642777385324658810571933605206022747183537981808330751349895804861951369890159628158976137654327007775521498200133132686966355302552999418963743126343045339816900927268966893487837358347144459017586395333794732531277416080684573170807978245092483024399998604139146575938892782894683788218321823119052439359446852433396876426329279024743851106764119444039802140362514038652519891075138416958048007012704265002682581563197555693625331849309395282523183492249312927793499075431018711701329870927664464819250952812475262641877371894557511295759968724090445537861116385847171051152503939166802408863672441833133046529930820392813309280345915295993418532315729811265404446135506618825871145913729970020541253158157406065464763648295353729941614790689885138511455736369559861204389076426472775547171088298408892316200585567628607733777442261552887604645735694464502855665405634794831259131142872129868133166152393423068759269066682052711010264965143685614923738070510998765504259518668268263729283401614121909242715126762465963734864428562510468236874611144797023149684531733144811383496964833391219869441853569255048645639844645802912777198759057190995089858468805645329729118964012146193854334640216216830535988334743699579135035605346189189892476733224006034082422611888369995099679200888352681929963728203176997186463743018158359411087553426216939156547232467470614358950686951038733337473697092422004122340909162309483881175651469719826527271324225609228351756683472260993230857150086110513810721202252418586161058412860186360066308965764950244884882226984636285701215072379773053293116037759046622024462784315453770309539516356514725662920606365074571135145491800482619833908954531082246863605827072905753736010380801056304724828466241607329290822441932457431231576425956328849292021012725639002458232684132964099372423130405098803431725949757225189252797890193368226317119055384630793489141037595049060975363171306993678123304941353713439431677198222101733586115817197576607365773604951896250233928293668414550837723352296240267942518653706081607646563640945439926790834575223246457823191715093308378161578252290537109908646073870418527340643878748458871901983046488524027209890533090001899285415336355017793871631881336151766988335799597416945094889469065594954299012304789115050077839021462105275646169027077128521553175071029977789469904464847409154111093611849035153088243043992111948413420234309016443747621641268095532568248457028471894525651895609380204687263141630038890181543412713547423195370549188982937112564022614555260765015750549046214948966590037626344137417685143480662563145839516618959658526055241854890607388450231674283302406990101434930226641459752351469486839230012391853890781174493346229401573201477905019885472286569621888352063089221766475993855490529264251613739032048115152454978519964048433403148567447244363401601086198095841358642573359573084475244822207146376061460376124544180006264204134987379891508191006013026438075603851445442378499456688521825246720426417237513699877652448519418409670034712570287870613003305656829924038165805824122075177004565017194277308979120570824601314311222101471623292278128028235465014804067222898966423788884875595115690789046931125016422530309963639465246681955797526555380914828203343801531563857377616876560225622170483537379120676964914951028897520918517784101779839465012835148675881010926206932517708934741947544661207498912205002327313351274112676924987282292947648076667232897464013356894302732364753278560504290754844209269234667279837147450405068050040781012418015219040931191446250279877769760636662909532829700668157606444581045370565786853978751455998186216051571068225691257601941672683536443745711100032872723585002384811074415796076438618768908543855939507462466880417583465885064151166957396458515911850490153075915947954781265588250665747726417975321624313299839851041133273258769379824602294423675011055170340265306212117100697569295635325147810436280388446267884363148390712538187109875586311046471718375828753745574043450236777946646937401470864892641211432745381762911252426939496418707682152885544139127173566732032610032738031233162089363139556367707057568805821283068179207461865031115478668707964011778466680258451171817715259684554651390766437842137180474221267263104617413726109682328808829434286905040902974583722607895337092486392637640857965272706201622800593912479716181982067604177809850440743820089092949830293079476034615769279785316335313253131647653541730413860881292924160232554010069425115165279250999247893370749703882449744307051152858946499973724814667750302050674412486315218605860515344909002816363174974671203385451584405117616957178581713320932251841249667265901007744008317321985466587590534713563220688633745089845738231450963282878561540130279387653597943184895209493102257649434226149360213173040700788198694902976865914057401054298062656704959418225042884248462064920564009618755614939557963195628055454527795811442596673314882429332517785411653141048818087828729270665460177305981646647638871053241019345096607774495024704950512236042344116497163025111795866898230048023909489537538246919433355219328996074921248168944494757072447950052622401651178166869597476938228056374269795122416291811341342333805699779095622791983688407115366015356602003689544720533850111406782826099808332868471163142597393812265284721416334066492620845305112466515702574052034316394231846160633205976223161607687951801384020463020965384890426145949061212898693884168458217281721372136448086927264609072682967735668213455306953383220215455490638847842744799018463379315301307583227267983024433325817829568227184628071419538706619956936331257547384203872419155467063029980627635447345319165752812688705329270392575762592767925880137726258957838085268622855097268126495770087212577202447246642554900583491305401646600711960044118494716867468499628032077731990524079262352292337316157109003341436678493845102522411179152413281867420607945450336047534714098260282717249664509453832618625758399391954786686854769863182597507843447277805298027153472326451001479534197079226695173127463564350946335697059300094063639698300108585618767268620748004721914673487319084094677494704678413332612357473640044334328408385949853194184506295005746856081161555626406479621594659528608578807312473811514089371775054211663893903731378313251962941776259377439915400552754458603080300162562714660822348768385557092309627792894842370306291244942016841452864443104151110183401867372847205922275336468225850944497954420258803663253539853778196532620187012346143640955212326110488322837128483029756727047284313337588101100523034858381998549823226382528445233380189520072205335481413649442752079624841631044721614884648474508231818476113786440686277144979004493931474417552323394928240150073593933510791087875115342264806178884515839455062819791154450583813521203113442632164980853907124083963344339374869929173950496525537652475380431428685950715778278310133146692527286843405805422330242950656183877487679089638472969012622460060964582448943794810969974801574414269231615433828194919860857084198712994386189793039103072765673159380756423802707232808431405159609888306373876013554713473647723578724238484720414147808477680406988377849607583611743900880818904436503636478330433857690819112337751298896128663427551422699241113177515025255004286028368971441389167978259155433561973930992622138842297050115739495138944144534294468855329647276893926886324056974366276040735769804518565508346869248468832247364054618980149080515248375639272299389033907205714190140647976158585959530443752357708710822798574083848917758599991438342544852932586485479095307860159423575731417539972851404512678079121890542431130737749607871310209736229013990535818629080957871992375037518898366723372273469476199159725097861561961196581160456740079154421086500430021353883872303745168711150960659323745118341770907627395969863564675300646043039564895819684325663946202721017473773359628285640344554370673992618221312091984873458913973815736480537629634877565755429947629831068605255647443190452657556282239268353614583816975696863189703647335131532645517029347172817575419196281032876275133578807041912655143892450622025908290861059519141458858145869373037069273385564589310203460404464475878765399831670707602632772197262232339163673618827361109544257194194473946251581117259531695233562938616973671776522445669434001915084732094631316964794962619778910233529179301667700564282348475353655414267868124190661314009865953110406691841038668109177490885587876606782343300115570156839320829244242778647906954150443144850661723100883971317456597607521228669360002350116416998776879103788192451148862627773469661119493672962220769731062257675643036929502374928813169218514520344803038888449754180529237003021101262959502390077565277078761038455277964870938847349848324516776091414857094080639929668614895555678124034205786401780720801581359392777817060795772622856234561745876904189430348101846659163373820846077157870724676258331852569560311310350495690563026417521719344268394483548751188215445241342046649122025166291884269351695088685259220054839881273875449479014326391284765869044941330494985382379202810605064753698035196353877485059321248401291686672372777502812385158177268184834789477833994045561070051362373506371194651888892783546433914473737641793750330841490468439849176633385947736279900412503387192209308380341028780895112968534480586358104116243126801305419834312028654846195320167200152352223499823552952352544031400569976000302964374931840703331087662772534249675833922218320139898774667624417256502433689004512740113450355147390243482632805326648892991282282176639932295142200848284235702912975252848622611946978860005991982865788874525900667276864425470613565926578699782294314190923930818163562130991661983689750396738064785403351351450397099034295706967572813628632303734084267306531412696776695351835611941878060201469517908807429791522216456971091819198884692040408311640412846213550196194268191426049038108970919075618094414630153101818452490902954396756489883434942512866551409557421858255444725260718449030001871620429738424447272645858787907708697342351760555910610883996526066634206131552887001115837594036017904467764978307820711840305691352283331608176373490694911463021150376573746712602188352076706441664052435704807965550296939400771701665049462225994729112125235691493855955887932733569326586039988649746385869198607888285034242727313426136743418997059564007233619712873875625654532043887560227634550982721357570057979962632867391248100106067661562167715743972652373598367519628320080296624362178746393637300205516037924711956170336837271924577633617168707414714087857240186034078512852093136160933956289476086667953071093807312511063636979575187479284887525675169466388246799706128831047434936717385521347699670527831045362346070386966317572656043276067035843461104289953076331628777399651980657311434392632799534449518893986300438430401752011152203120263960187604232948873025945641962999053240877289265982824332496743174733408391340301368324132953179867587297491966359783079601988621023028639215393227433992498369191790216615719318020359096813647425860645359117859622067071126358851887821313579074535813970793052401376453523277687474392520947974091439790570217670049610935571685376572606586196682187797079832227797984009111454294295702416555634248022554676888114836863957297040960799264461817490707754230603927375289622350619437632639371392024990461809269765352352940023983909874843590186020986472140514015800617339104584879831389582081840389256834818533230336921175831574871143743006357530324638059451852373905170644679402183674462007314125706244486673387815031135028388820734910313447310130722711880662178840219800672381548101853131768951354338260661810358487944227751668662246421718484555262952245387596336690714001562072071279023440159663228539101622045463787395897956409891570658416859800542103633059777265215684775512802866603388345091709618740715632990754945815091621650291737653019308283917565236445861210037960653784824815568466136948374380239589310662284291722012396109461769596711626825530675733635054502891258467801795685468615095756663624099773174727900021606766045439928436515900393100687813307669194816658134262976120028952453247462680411231909499987049444100590157640573769827963098350434651959379111124498817707117265024422456250671312107168369750504679633976921611837749015317631119174878267315977900242775261914462305262626587885461532567966908758855120903986532310997489329499304978691551546408853231103857520775675994401675862681735463341151383883075970796779312183849769070303071387657790512864010282507664380096358501646496351771386893465831106912603977586862196453978349788424785795447078734378269646519431914432510735652953628931538999837622898056525857572124926999675193011098913544526659080759074539914354972753154318668897028311805260916617244340042287211928415481505057572209293720667660096433089874704632590038313209110865631933490793890609002954493418370331007606495937489369386108753071974293628266275722713786180725397975947066111200399298905681193498286301022669614539914997931965189814235843216777257078905317563507525962194947487310336975549122967615863072576450307077061617614609735823253035971329688990781380547364369137474332971516836832507721396598164165638079925477167915741673577399359605441513909285042529941582536937927845905390028087191586924754237336658887926295989293506214220034647436701307596454001795949074439804344311484516025944661802611640808061858756087405896275153634467184882605567272933976552770579249363700007426147317499134824576232733413906320061390846189899977696359210821964801821858148910352844420013293322248493260082063082012174852710824683735220661455664205522203612442495895960907109021300136398721676723124600627859853007677645654652968747867842558401383454920635675499912345766481822374183922616406652159259967705556783088464027113836562564850379966660783566474257563344971108960656152384847954023572653668404361643884455631134819708541604871245349647974029004470872714849274665880438934086247290558193444805829766765568708408179891152087187657397303724097725249726027843447712106613326905417109289677784806072105613665373975955644535551553429410292526166549467160775095827918734407753397751496075178893754643889105675373695837247220559189027213737554132692488082742919636039497188636197861914886221482065440962875323181701762464465576542438437763956916127604805531208355871427791004058564086553867472115280406019688219064015431630346312097323044955482259310243755370287455029547364247004255661942292345072298058881812863419163608872666418115030921217561186837087804381025707068755447124401495397196317399356846720704529219374513183723861464073286407461345428862170838295689551388576978244408578664631742347942043369268503428398130690813659246134249613822591483186499342149391050844472510406670494212900229625410845945375762430321905692318654590209953842261517101852087355002664298989781044624704904673322633337100469411145111610303331956903945549871154622684419329612312658929324415731803295145230934195431490480677237017248699468364924214692726585469368904491670719704101829444552987039401662693164488604499899645656605702683788040519788312661935335195956606363679428310463495328777081399101727879477032894974082205734459019362456939096924958557215195967572757141908543641125946702927079236554977258545346825297963307427045712696046069370338150964966415578625531268748073988096857579862126377377893234418596382729674015140686939526524047736179053728916813801584648837438875484156654397886248542244972314664314875609510461557260848680977454845594212335483004475377861108157300033671634748688313717685950543811041521101815150965593458225482442496247664808433392414899900863670678741774083771758465847636393618632900636321890495230432856688069282466205067006909871097576648631003157314435615627563091685223335051743353566847627043002089573275270762569684611650162851911582242146589665052635811956359507366594572644698840555936004745412237830626789069975637126361980881378630708616170176825519331323184546007879581080169161886237051138641724189374811107275501944028874060820042394221282017367247110509829467623132533727807326925056917923485089273503786119451852071648604883510142007535207909729653411809280831466105995419180521146630708530899228397100771085247610467597688125392776686627738831887650071789482144861486929619997537752370373520659616049537746458011633228971751182526367244745068493630434621948371027013709654031841314658139970305333499624781422294691712469044844208576824684407766917736784651489231579247524599727389334226457595645607411929780978984186579817108402651523728730198211861190934452503474798346021297989756674399535141549927477944694318081671647102147503193189010168097470383870874650648578833298784313389442343085966850641657565225008425333100493067989805137448776930646271458564971447852728707122853087542933708237864770240538200211359316981603048329899341752252552092862720378117258478429236560854745187766305800690787127110397698546926362457720694130895879671593566532508141552609254221611831015095127640613722950921498116830497089601285861109831245964334209235771061306261887045220728116231420327781526027967987914049379030285928219071416520538212185892708950365629576467913572295309326598391291335946715102598087796938661249565610887025782774728842268754762620880794350018164554098803785470284763442111584694175497068081675955934915578363364885348045561378587957334480848636830160783870839769944806880146098018047164929476588870675982864109557943155847750509229207765907214223558467892672900893931126861329509643452796668238195900871025699568163537775381917470801075549796881989612160778528525938338157742541182819097569664445774310354472513087092338276062020656092190322938059931879434024477282978876039812542170457372135087987816341179038109695110903149824494187094334975287734187823049185267062946441827699040182707664271996140786671367273781812144486598630990308371174527210933259133270399556424545738395374089767266466232887219486078493988002835488365997738855290520612919216872183407688697395787255327211543939866963769708482107253766992022913848252793217416602234705008496820938317506581348570296288499093775303922180102043237638869738250880418173673927575323235500286329699911449323111053294423144232889868314838437015521714116155186392827519273812620387174442167145672819305146816956140996953757984815841782844379514295190367705412119315647842022809555508715642139293659881740916234120545793901694816573958116261409212587508450905518318421779362642852880944539444296630249899266101225189413418143632099434190717425473485676772738756402519391586822166479019304164388160187760772096185798898150376011751547092669663368126047597640213933713179751806685921201663086419557601393449213451972832429514049675643268643387402979909389353428486678189408368166619894374816364239893716710170113938374484328057581816726582617383118245994765785665959600238265009476182621261193939421000104753501447890480604422633427862579166928133261189624153819486923983728236383847435352721584902003001405297536547221716413822545093938609313850737723978958043404984864429912843922290939091838175932668737362268245651045796857808699270323133866193135475350488533079559014841607742312860112101739427505685838896757437852873820294246010710065139650672689415096590785085466203169085085248461041786621128093765374030324725171526691622837942695385290841985447980822060944147798456194466764829529121918871214474875047550857242436319328925018897151572252217981999630699554653586257536875124123638633189500117940608069248541319028328218616153606344531395708133637291129505920435208323406305314075100460393161290047307088365635286057258167895955092331087232943928250495784582768967764752726599722475627186953432968233384990954888350207436640190159865955113564380938054597423317058090068543908391465881903834445398908312998887144086935564479746983311204978765706031659549279856607998757413209957557354662151305192189731925969251931534722606089223281851148130664268159376131145537370549074074240762741594299398109099251710395301706436464814849861589608430776369238881980933053413238876812980803956633728927701516313117279110309152171930285565468650162895719051480159540103279736031155975128492291098521728091811753395584261883931761761601621948986121478825384578279071650772327168098979129674126759940246550016267847807769037198339206873521925642327631337693125777365745072808050652024064995693681720606685954733223392476097919406675089284651855691175664539758584512232401976207849456734774050396251522720953752785068406681623124433955498673138282224142666614560135495130495970197662857318522917727110575147317636359201638639764126488911538809137471877697152791277196065143229142142523689327985333938040328706054162031437110338270041814441769303919504489942078271850568483328561071143337510859832978883638584848912174524988308678735686349943075746763514736530262443254384798411089442906276881472462374943831842775736509655557842105326980825052844763127586248306300356384874998555610878977903221458188802203080199222439101772607240606314318721753223935862778559567809664460423621818451878699982343570933616634587002162287941028205203084147647028872507749751988496280151553536225688296085072489095306285383518010573607659801411922224806577169175522210641698826663674243339872105621341588783532001783324014923184613041925932177890949063909868351537900074321303520733847752160686366708335658859378974314080141565878413129320448179542906072592253995655198937460920286365139021272140220792833102956136411783732485411387498536351395211751478800529675041238370237933509883540001801732901205791553750969046903643040989383581241169065424888955766014956267572781295291642476336448265900169927964803659050179320419991982429755349199421549998571464510407324503734032968703581282355054423176960059165480444843765021830279868893933024419098096460241459216628459474434587725580250212012153471390008990079868224440600521786116760896308488030225340945812491285277993731444179227511431534031771459157689926522289054785991159097820118549038842553789036229491274289173506010922618899493366614139765914832273864287114906695166595292950916192107793368076161235080952207533423567716432041727303092761075572087689816409612384713190242620978358067062994770609449459130405834586864433627369458381589463101217723747877740367567736029399116767815243818316652477637010402625828853758752037847452386186513901300023458243908680902507298066028982596011965507077203496511603140984189929338350589261318293113326650259945723162965452476184432218308747047423370831348984471123312281301680694913282959328349537145672193693808915129122532596775550033052561252540270383006721691318269378794406435226347827167763198445481301642384073291326275322535829271361363786428910214123727323556723322516198723867722406645920615381044473830345657791538898058410001727084873826986174353469541798895693835850325250812277011895374980262179570404838639458999225305259266202305391267050716852937681824474390424413191359389570857267974222178818742266938535539839361302909469449199911286573062445426739411862787836631394892498104200519707134110014310797417668369617096712058694503660159782561026635582840581931127765429716695800957045168165632312462002632642275823178176541057067501101453456299288736360117210833648865379408141659838915734746426302320258066592827542331227821582910944083069605160872107646207150786086916761545081544816128354776713729395076055706680762708276751175736151474902568243761385461697881937645137386654479758934099199796085611292579938082306013291387076706105386115226342160616159570538873651509079863801985035451184878906040357265407250910897557919271750246614990325339271480352909258754232481894912101505742266476311707591005996937141511957193769050228524280536517465518605661904925823468203997538668349639667290434923833593402058734381456415709505715517318254036875557481064045170510307789599269101469188847151653528222251999979429436724150783262845086675671019468002468069401710639477325899567673368630737081413868736455242750688755523114220193643300281705071987062128188688369025257719799917599200636557016307342611435525738056833655112507623593707115619272968611491647257722822382473727839055916876080372782445570466511612863575820797160481351829607417471565200897762669906052336978736183905746340199275118438292021909102096462361608898248929196307811532950512293569723062018900335068303729240856544854193865814922860112605913134414882024471916217953255850068448816133156531633040878373070557402422814651268458040428685517747611836642337107087859667915762361468272791570730716091766483715228286872494510756765983906529819754403532881122539654746740324447079218404433431264626343415859501837200786982185175446062224411923177622313930105147711445212969003558807611111769388465873772449608463103014309257227147728437667694983619956013048307350324331888145662938117534419697111448012309777408080252849187957880774820430878933322221987329187741835735277806350542158979739381869089394950031660719922673291314661927485650686139778879413480918447998106033635524120439157323508920237857148008395589391789194847135614178948802137154552474114519798155193047324834344901124898028998919430068200639367793192827022464313657804616774145112305355167532735353062014307734170439684444431494987021514656090848235648472343633233280890092150413756557771538355918008913107663733496061451363989309056772876357690045247521037544306714999811325189927210459164058137520699353707182714691590197880088205656633762590232459793184819939680078907395939298491519442314855325066487314622842902407568363668018459612531451864585630808610855779847594410866546249063220040892417453956223738488150990522533230523119924455355544196692854495081207985766663835969310653716955704644021851381913840888315400752603735976709092169153586055763668511670785213359000034446177386257597773581778295843605070507625569491481786123373201127489477804034761805830948807277500286532499438852031325682186907311373156293900296702982179011400023083023695541703704380528238209740586621469555731202554986742387118614338128948028668345696404284950981739723455185819045961738044343797613392593903264194932718997650988978679757458801785039828113816507087911062146678206591180159804161080159505878322853793720428422567913751946593022999881418232145001454365517832713534306797502248668244256863664246582813189228834423941365111057090799539774904142262633648413288193911392126701976795743263676167299861937562205345354283300473849024083429187985096327121480566219106765084922339620014086109283789296423370753535997658409473754036679253779099480928356804399764346754983877058639046913056533614920520441897188843375316319325324337183774115595411087396313410404840858544734717764135404722083761568487754856645225142683210573819150621315950987624320764257421011312454832475525844278697147713347090681408577023959379391025406069651080245195722635729673902862510129101968130883212604350158257257549004340320228368737362402475699583954502396706822876344097747865120857349628248930233889238877452742654874452850870552826719926073808934156822858555298722690449869967869529898332292380913695391791971509412064005137974979798612225355911363201472586115068353601132671283362432405501791896216205197777909736874466777296299472216379939026969465896299171255536762455946025719834093815948403153793936816559283944538478072446321144174785414745582165982835469421740629362967311252319302388978490219555273787746269598283517729417009408218203448428258375758511391580257834627981047851129433157934521981484973478942366252907813408892030891458772219282723672089031183864059366452075265747635355935572525239953839960842563787128335846008979986918449238797384996168766789267097902724682312534244057110224606741262192435536394552052986444917306891210129549021611919517306593558868716684705792320885037317584960220864960983415716361650964613616613403147053693831007923423905238606961185248295509751327397540523138722779027129284705929649615387485283752268153930067914279910900415228830296453177654852151332877912538152648498470648327805229501927160538697141176531518569421142057511995741065641633821095005268816441967799026783832150274882240102559435587531106140402605930359777370037388016764593474319098783132122026771675664743726613047755535562934728234001182775349454859486010091545046125776512951899659931188767858133000783736625717588610517790746433915057788142203388029872671464211315279937260625387168052306197142987444188679721149411534111757973238315469177255133634251080542775240373496741942811258890682209602556326235414418755185130727582058981158782831798355637916611934311283562146897328158407156775903377787004788609072082945790978085346579121068210873782421077637395737269611208067107095948506605428521308554876428132470734289048942485288850806206776580016187746370321661471621555902151522747762045090956501101743050648516048405781677050267837807446910709219201550525783769073735086454921956824384146506837616899261491741373990769402683127273517538257044568698402707673294989138089104061467319112778419741291836991215631495802233454713115797418364077335858825904500825558704117969540087519577597297204332074362029946070544604601928635021745249214179897543886349984757149358340224414511642074021147196018993190631703059298645976661780118592670291834973379744735969936217493733611994452967996503059865037517930405584158986534294265087732081682178663370779159031209786332215112549527409886430220681426329792626191909512492340532171551610976075380408249428898077953415016569944682254853391765951563177187713568506303989064113759170909580561092488937942364326468853566392601942177847833812792454262993280573366833660095807503382483334288397611263596903953989521742029709383401460321276448713447858982576567948983552302817937271442901047624430047939042538734317684767790025599536863370315946990913092505580678529509586854191142828360512517681872761783048575388981203907075052921686874279284538556322102075816233057683794330923353130169380542429781837711595996246279987569890331140042599718155251362530626051545694363869906000373171843543376561299137856590147341279572721874289647672358580120950238958177293723342471136913646203384588990188780407224230189529169825686808692295227646808686756035541080301085032095365329627942406506363991792549362903575153703121590378676131447763170705697719101627720336125413559934242532725957285401317946110781791360468759594463754079894925274351251615313418782385688205046980042723145797467683261045269224133324497904911236582987185329062889721593576982046310464413993782485422844681007943562133945578579816305175960539318483496788244926681668726524712589559903233699934087545194793537032362476718016522402092698873461063377394393455574445566580210334970502806776096269274212041317188307783355685606636244011368261975330403043189275810199574581635356446595553753358750188293243194979769536328330063986867053581442604827184427812894292055600980984079888048506515828959798489025785872257684359398056867372919780590813039768265466253602757427660008889437095753944394224457966938152746308068916909707381085535154272721020427206662553832782718780813870599267811509844085512797139975370742071265230896479633890044983053220067094371197388899633591112428856038602270363268322535536688840662114322053844681598395123433071950949662508484866501226675423063891013522477809309486967511571340306508269281021288950094591006989242930687374549785817548091731682916019538950326607620193006971378142257528141236607448872411733410678118660998105169372658488787063775557492490566300902883453917636163094517922773738179970165592062317801766618412955373489191597320951208911281523299139913077194730885818339224268987867880184129455504122205131277015631907945927406681354727274913255084432306974992018236537366562561538944940850717518487739832909888603013981269645739452929457025516263727605386044070848291222483638145757337535186695350648812568428761152402960301836537811095976881505783984541450782148702779658269965039945496724144574462965286984424716552277326719215647511298112241087473189336353537712153759029952972814620596017467995837948146304300882487320550513962771702527817791170576678493540021879904718490669534907030076497442178848650720796244872107307447215539651462916400385646790797546335275401940056764792233616512616020036540136438637381519261025066935567033437164697319636243878779516653985346858806726726139255805233875160575363837390409737360585832822065644103656252953006881774362421248040393588731821966053215280668725011338460113696547230095940413536125924060867207176166352077239744604095244568766796708290179834049983353447617041486063579154598637418935825096570638686612374238587123920022238499831067455169209904863186501692733370273925973621566582240213629442033069183280213150768894812824553453931046942482278705071011964611348501678783657117067349108004628513113338716335164557751757500920129711616324561379865287444532787641804514698551341687690494921645604976435609414752677714876796568834355416414188699202495659787202408886222375598756024847416150401774864696872493904511104500244727024864604354885501996294478796532316168835388221338793657034289910648457736187958892636465810194630943147156000211013463687427192540250984022782999121308431981641028199163681593631987964718355070793862128342973069903214928086230836022778669628622788898398011205505797552508354092796623619047900762237158775406719488808388216515197729966072008973404011645326149632671831005579246944218165754047593872635217266559386195746961148389168635621184709041554409444182456099621022641726485036383930666530138630114434307757345900504993288212865089722391142998753965096292306472752728855796120103278832470471626481608750548573211007926996998668192810025046885757602374387590419279561775969896340643937449138307204197140524473776535854672033512143334041688064122180313898314514756910114587526728812349232731040179109167253329025296951115854652456773369225618510623890902855598408643134198945704932173084514808279767768982322232634902174261216051765892131740491644257014352918173979208831389464588891205290304450409293741326133797403772754483017823708284367089139553346368386618168798636327473765579329456393743160751264075038651359647293565131220425424397464708366651604511409828415822873486877793930147032915408408851752790435251519820570735429732790234641973497412980461649533674758451675043765596874842677174503766473399130416265305247036909025384071136594602758201856514302077150339878128764436748699725762071685063934465938414722263976643019522878949868425354153802813895689601055265457758858558204443769459629215550332017020397979308659779570565239542109820949885758030084338010467597195900784787134267179560335118864191663274406926873881527671739019324357819037851266966596773080181849433056665167929281144590809618104825380309835599709708538902876673820230375465766318300932505625888675453886973716901549438002824937203485663329357954710066631483237376952739245391958840139455442947508692659373144286805412100885726304201279725287266671272464683366262064618948111347561234147336999766514653419818229649471088566765924491543758488000320172605013384385082400772669775025152142411925527348148023577084038903457357757283185925478517391970175493314691131570974141330240361615134154556765151650314516905175471520644701838823111721068074871869426273883932720200989634417121247197915795571136059313806708759098565941341183506745595215995765807560617291951880564332970129680774671943150529612988323445589640695488351943858816202649465348581742769794150062158109070476235325334885938955671651064143775370322092965520087671062946559852802211823297607809792885908996253748330205508774779763352597292262795041805261661858581233794136493712399102192985659346874615320598430561947238625548929954084477092794946248331356550521446282637301737893299301921354041928152316330576187844120325527777687853114033194763168693409216530263837144738369824024875525421690021959685664171163374588981597444279582587960083110597480866100227935414984522072529006151099882421850620688306083977834774765467044132842916912368328587869863466830500163921864426720135147187728501447111682652733736287031757205704978538094005889895242961248513484010040712615989974623356786077424752032975477772505478201819621476067223165080411830630668283989833996412273484057123063410141044413347493391952708625772837862357722151291763029582396528291781261054627631405040028590190210434696091669126728471530423466704699987769043737793568804725126441635415648209987112765333230414225951221086532538472338171112874395542179823884494552236920418668614425784897591823837381688027303133948233052226859290833122859216636814661593129010556046912145825605439056404293578455322488590876352489177738845939186013098407246680033135734636981241844847682352160444380598243144498710739134412132507489860439096223245255586943055575720234028634120311553241605307828941269873402360238782026572176013123722205075801133768994583335347027192610167690071753250973468167806765638751798634883399237621679402896308456602992025414336748197065362410159508033786475493111383341011127298361427025937558464440614131090367256725587923729249529470988042693368611031262715014651260634213908031060622696467400823501443656096564452507670138698527706817825399164268642118644944787265879940170996198790987680171206117336328357667855735416805019328986481044465508960209454702233445030995910135159985042557903302753460502991024637476135101627286221813275212791503834244776509471282509726190895123576692112532803693788761814545623269666903056487146605110789138204606586500037998070657858954110695197333318974692228373448349543364954529357871281747762625953845261242585893676991888621263132824912939071122822244563352024238997931903243253013472632563708391224937405205297220217185530080116297355504887844707190514539435022942307525118139616229769477227129499436139379326170663504342836954373079943221852297232205438945490567910195290916587927113641198904671425200758620478880976072893994198125413391408867691861146824965667995882968691530510404191356011882540809567219944027198903424581237234243241195745387928001396037838984162466217274044269906915898349055461061147311436371949042191614457365036593154408179630253825677950056072349277826748250651912580376706856939285339228295142462285546252538534036333888094707932742757951232872145545859246099530655495748433935328861486136167755335376770909524012119874866160155207611948461572569496775006500841686804833890183932423643425099203891649090641744666996016187387696200375076001318613193876085353151115513316014342643064004720469289487903905060437545022409438990713868381582267485103558859610931199517944909343970957217331684766653919237996494822209357268498356920704118651980109255399899297434559266119318695736231168637983055888826703499963889003736241970769125993382099756533770968658874480944879123233537435398251837658303326321684015600513730527061767079388441451120729832510213488845888260127527262615487371999842555792216021420032410105734292498361509478086850366730409504208052568577457065137301054197279227506395943613419494008861159187038508092253045771689061068735231666142201528046116239898739559050521705950556922439576651428933691550998494209142400012721328118286716986211098131444966322365228021489617166152784811987801456090742868185602997624844194236575020345762796586752677532812729573314082280623131193785696845401912789597946423702697138414910379849874399428042623945717865501584011187331371454064926980071850326154131367196456917438167692109137252648908682526522636164232947373276775528296698675272156549118220730422864620346686545272901866219979332430893229406137756592010318492190712613278192329765703663166020366349946628369650164822920694141300595408276253015338734284675700637002593023512157005475061569022835562664786074709690066591909742364136936537178191791474478000347599329249745501278645085025216037092847316785855137231310724258619843929691347179930358420993737229177614599793528154746655621148021248465539323649984425323935040281237024164549248505717862154491788357246013281608154634202042074075328091116490464702206486321506603735552545324763522989713500963660571222226247455266587880148607434326310249834558209864098067133030815856389274298568961433431383776701536369961536259060483962892790450051986802316322602972895475205136756851384574159263912445508639194373760676091317912790866688147847991602440331103985700742711637742567584684170197380556687904417460269053785949080638367962771195576834771149660999802232574948071248903313984817198573785995639341546271601995604637367777864723520375929904046284340135077398477623057291316052890075241692368367766208649004914251949073247807347722094683732411086856385782258448742948460029538610699602940445913072313021232583215159466211308460048828482832767073624654580767971450534115576289749369121145141335219984318637427692954156267854903162969902514559281542723953522907505225728063265815298453448810726288052256645378528309565606766004827321688346930640945924947519500321231643498928000357004940739212730651369625953677733784201139799423231122667298453525610977060903608779405973380424661532139266357784681686853300879757390364122742782885494871705675013311277360409383536031668537511142044073934708494152721874523318696076219073145839891167560338453297456756622676060426560090063508885123215628963905080499731443966060342239365609113886946801646529758914596775053965849815157679228680923981815391247396386781986320280824877601105637421780782730360021314615897470512597392507725154456168832794699574362824692258915600587601008376858921361741925543039395051958377242991510431241453002099649293525212489767944214093316769530832081786253044662846067203677351505951340642683838642996584303230379843412573381796543132596034044251657403612892297240464400183829322815346100565565749309336489732531822797423339696609335939565273918230134791064149657660020586282176731184037439055084659646904760604120484303356025618399594866825748339015546169733005348857123153161926254443323848886673465129159412182454550085001313146980963485679983385205322739628812435223020426443812893072760591570197290263627258607266339319918820099204051952652440473504577941819483331100031356039609390897901184507741451350305353614670998817670583470334632352884099466233588827203638989748231383428148368725382470700892461601465613598546217224909859781533504316721932609539809327204456906369159984143582671324338618898163425758478748324255102702763281188098356289240950355665950751393333569549011027672047240796682583864896495481016320071029693551088884763587741208007117873988439015140038708571999002694283838328642728024754400123665263919606312956381168059023953563463255193254533354240034865604679820964435091945129397585601285857064206271617650002120751569110335677920326819844178192316877286693299553242248726167780442681869446092846546315804458521837797803178364201088545275061386763794506683746573635101935767059884905699524087534100610550831503483345168010841471533402537604747584526689003744567895246656815620010824316546582097406413183861752913435199835909455577272065189405417020301899609347922529774303120569592243399878264271976338412252395623520030459988042637231627640359060357253641640805436690577075715659093025520351953894369377265194360944627051168439575121072876840347224219528913986103086104853257576485628897140216638745959500571736241728672777018279085097419394153388620895193669883416053096964783440269156485278772716521188002752633256626813809920753074859611675035946983523514754776980188353234016675849487177617240754545170618237873525960380075819243111323757053034731396523709971798351797278268651888019648534475611326211735506722587636866663727076149051593449631518397544511743983733592996458972545984121004000034080505639797043472539576768182856619566397809945087806122029592073418005296369772795219640821289006515929376995256398373139123330444233403261657195126128929678754405041211783356171166921194632161632930829542609336182263498039832436905758235479571366609668743930504164324954762018859321990292215910208771544606415610051385251974486563090800954699833618199016045463701199085995964459530985539566450265068585190040443249760934391725292072895446604500128117517302596061770384955512629594313318144247037659971278948454171146175004325424300387017339236599290983191916486097647649449962059284570440828311545113552067252230674509935676985679861530894257837043700988123531148609811314781108617697371123648020644703719710600134923624277423835159573560140009287706700211724488518387802641364416183414005038379450754515655650309161500167828717248889876094207571927837545059814777629670671927465074265000978923569541746410859400532646027177077545468392691869291716581800157056249207385035676963906545919177216463224756204869401433012743387687647530497719177838251879690198801411757970108767639898987767443986362658594372843802811156393928046102692267534484373273144724158118869608313044290305376604134253143362947745837055108001242421485732032979136509098338742971617600302682183433663674652625309537536239581579734032794250013998654989031633664834988523288960049946439561527714237642153707910231906457278252949232851190446358752604406132205557240519546137084831939666542224850249987265752393028753536064948285108637528208758380714891303862456776661028869111318168817387676360576266679277275169681904197134842343015366797917486645291060983432801832093918312969474856207262761826711833920473293621171154269160073778507561439324450575594730958215757174044948656962929990458003707459086940247064733489155197129616879067080616473128833330509090916056586191156746045913918186516401990184462124725688983939571649812391020756458203619620773209642262661872222333058811172771053342880337090432224526861446327668622366082161096671275822063413721921672606708568998932269309080345192117471187546224784379319969107858593213957286872854654271293686173451247576773815289937508232363992111493018913576200671840642237216443919325497085568666340662106092193021130181630123562965806494769084351239663819235378623503970083810900128018336174912179944478899507571007941191922688748822250847687094081814846010491705160430545033807274234690242844671197520243233627703760205864241001449306896132025311169302242927847253147560078240359009308667901057863578000466758906551235307898261113274228331311559641026186926915438857301754991323725887262476581953965021240206292960170796841446739497285800988196909594598471679283473868586995027446669837138685225715323736536785227288678236388748845708803575688489091395530337687343218199561447142718026785219759341852783300391892463573689547778103549230544918837633544876104371366771209405582874440153660684487196767826094316899336505962676127994073632286159777704358524787257665041784980281864563271682426557451482967293087892722476739358273194993966340206852914374869743951769222867383104357060243056280325331397017537808693866076956811236587855493590399092777783922811864690857407055975599926387057078854666665778532394563287326334854884245402182651866276266634028917698348365381762656342153043743541456064727832619865194239272469951232576936964879075229278673646399883127610627968249164490328750541736833826856251441462672282803973554091993913564904007907549617247143250333153881987081190729578230954194088648185721798668084366162061684617953629623353311748067211554784993626797837630606375518046779288394339277108033532899760894273659500774480847734211814354858013904545992783474851823218770110987129340617218860371633035744410450672788242672414352493907421371196614987978486804774717199869418626408184944008206685818679096200872926671530735664403663613830246405385794188990675547020009753388147907705313370069127385320160951119334130286694037056837963755261145983898637948017433297992896988097569938034638962979613794535116056243465914099530431965238161891851091067324398790742555118315993299314835945526507771317431073399357504518574068350381424748456085362356280034628445368441466255822253912501816902157663865876456680513893526886531744840664146479369564926438070338779396753195815197197625756705256800533010054452010673368470856700780204596610910316758541883041135238872586383793099211801783201354048243347107451675115541280210781379659695688201742906767423996327147612529703590625882345521548624328252631537853950104963952829999017970803779118111260873365719275051819920886749235648546947100010361324049247524835992224962827814706648892084409512242625431705353930286186023664529054316070090921697969447700730145739979966022067617263521962178771909902173889063796575791271533914497021018540153472349386286928129985571241575814412792507433772334864134059824676085217062675426607522842030938000394717402134656633035843572015017122885676676661663371549023645417165549780134394518099046836676696784629436609269585374109714262043646096156275283412497180163050817516356091915717001582528512753079240386008759721575005041749932007914517705135778830007855528181444337389303361368988856050279843596459148604400140696154723064434228263773073896166568665640269585165914921608296920854661334599175385231941805620720903086755239027525987369054565945716946730330550748495117974145466144663298175584292013027177745900074133233195945912536515152959558481374525282729828897090227527645178013964519338875077869881793222081380840848239933719197160774601483699367943287273364030225571655804700228359222390855402592490810805320333825541524698193228181521536268358174562836016888662794493967693777118812179309750686033239728665058427533544106096523778717063185186836155361881144253554572130045283336766417039452260161954255183792475170822835564885535594471076024971917571488137430484800155654386940166561054625289860521895300972799200919526927062344674798261013176918226452378454501379967669405930348834628932797065002182811668779422328443444292197322319581088415274242714077396480940404501126227691212462266405177790475602158691994406337661165145433993975451491655741974008076281085225090747250062078549785501477435270488317702210965611265730847249051482797715406919439250842364905407522091133930390123652956344027450633624221786566386247191874447314754842622008940599640875055537714755756560757960768073328833730317724467537385835696375237272460645804595993606379044692463639847605903149183392186994980828239960306816780239304515176817335822074104347956154942627278997807283238109589577276086746758053260770809766606458489751525717791819968624294843134841231469006356872023883029998088383769158958170874476597408817386993248382452820579933653585596951444584218565903296097931707596733796794901173054690199188068409725178262000288815329426405214356021322999354503236677549976382787566572234944978384334801178870873587961060837852816763761719332409453649477212025775395158470026724437989751396900961208857809218999785276974839059337512148855515250563653811701373051734246293946229983987484656968377703234036904925624053059775543915828506758673545367494444603164828020919969492012222493597897791203550519701218865218413911697297358967445065518950446411958392589408992531334980803712836877430090292006221995724933350342823592599203838233301157715642276224310015969352917864327582436859859532893836720349086844100754349717686457260809485596046981741773403997867743955760678344323917432716663473312612380445519107201620825973936729192008092966898468988870968425657535733968321863809870209165335743264377353218158406936193284084882091024306211777881511018822387387206751060053223952531974505400491598512786071163850670060541874990164949365040272755375747178093243654586145893730226306044443450692498359237671874758204039703704357677442440659588467478693945600258571270769408553498468143235627663323151167505629238461500922209911972039088199094772051676277476789691199183626794741099223096735427690853619489240531425951592479805933255246561564536647498696243563950692634717991043141646396440710748878870587918049041261451002818614744630791981614940657000565035045093361524270846212623730442925450884065812652814580421098850065380846268839976304090328149077047790217353332100074601406906877612213348048004800360197233974619339131153335795830149080941701772847046668284198242514134437718708316659790288152172840838588784979220425446921883340747764276229438473366527426019294906095675514511878849267615682420334378411063977903852757304876398155306723205269469986608330023789017216305312627278479025314239251527113202782178898059243667368187506223321606232533870008544959754791744284941879990262266130492042977110655650845321651408332403301126029657207080538141808691812951284630841482763556253501409254756268320092585003430061102806518309619887229616223375294645963551248299326115477652218335510216893690048136456832243493075801845382278238427019871733820732498418463336165423890397657758299776285149973015070662997699674629350388285861666341181382568290815871625971816834544028474944254468874296027105405085085837462750731026254103001733129836732518923638151419790183282786668132700410606699063102404321952808131007815561882802495764932740487427560984215262188538510742382974713370505567862423406895920577527582837006751168143438102368931620323445674910016547733183573628896850720082595112146917538210710275379166895826401681144444103432140527953075980657053363093282669993615985769329357318826639533411234933460157766748133872460498861722904229110133857911929862114761461374554181271146521504915683975300975468022624297008633056106931462636104466260705274760603324819149152537381566285206398113809813953088898665023963340063251825464968368392694323254935059590273642402582297513082861248164137279337185518813077010152015495346324011698222321713880728077283273915998601761755415386222110325010061771424620745659208456795477160641254054922350339217717806504955728073398112135061149712737672804976846674318094720687073665867320623397341926771858750850470641266456931899958547328187101312234511340732326313774622416768248282340707754625466579463731944818236818265200227581530772030652364411144147851763069792212523927728816670887043383192912912458042479433031068351544108787661735200654772286032997988360678692217903818705477598152129678383244380572635505461796056643528472403824364852849391148011338498641952896699880182252530611835882237560320803735126895327195637899198346277426978696311535717941335477442544686790788198949547303601237753293439369480941939047433281108694458478983190642509899276151995256884579612116285108187557100073641464965624894410927337733163170551463638421255529085031939355572529164587495630086240707679789128432000011823637042831235066619804209818245756803660739764862345676109517029954955125977371475437256297985038696474168827949916803921481570952424225811913932096279851604638112112572963456144203414160290631063997680756545372043252241064253727802505815897631697639898710288962196052466530794575565389481469843739190279316221462956119114698820569888810677736535967093395512301557330514146598033941237153009031942065527239455862250646028890039811124232809851172630306252080507138092968819310003602491748340495246505854609765535816215529224131409506500296939791964201774466444338108006603332255789399114455599946310015878430136552371293628715682017380345694733235439000745400445255345834829782789575643335693260464988243615435649781945367397569727271449282539365785655178801388462018413136791715075820021099000222234597846551918018668591070714262919451773855730027677377163684794331950243126514567557074647804717862500059630174624646152651949539355892841234908201051848932597244477568559034022500615395259091010402251286507665525207794740810524880543419621427853275971500174388236529823962351537690190971351418957227770545060161688657976572401776355508190995486415772790982486200855116207681515534869651600850401881727678125227621159672292391709452739281688541634512280512190306260447242177847089324120551797002978991120943593201153386518588325535641957422426509386924336326768936348946118191753799075768957002339712301498016923993376161565612279863935970026130609152596164737903754519760745646010802971838184216733190564418976436771418187966468713416640208465425055239800464271456115537743828428606365057163935114450677367482618350045825659156637799673913904981375591274910454238845168421079268110592727857228576037470531103896478859166110195288993289444767750955166183010259019784388787766453736840127274865366903235132053155507155597700354957031123762485507844513260999173674817677818050948996847617171891896976659712387085846053802583877274723099805753240243878018941111410690364779130867554481669841397882664839729697762019416037189838675613819342071973018110090222341099206184659849303127312931793736225000655020436233148407973216662034994897008221114818734547558475287226508143130522929633312669839005481556169385180138678153543056834196408065956616027924057470448380455641012720062293777956398755480890300242715324259569235782973088983483058838773428862053521776932597631127729206697092013102668601550111185733879658922353180278039369360195160696071830771240034089898001258296987124945773815702871300061093768122457800664167900510725244974627908529427395660158454952102613607502015399670382335489950615402249934633017145897258066412963082268019910688402023743948399382104800322532415075972740529517121450216012691369917030251090019071417820639827620739507274726304955760763826392821622308218243717569671525644311352683467802496462179228599377237125978972804112036578578727166171755606014028246267080400019569028985541081991982379433035034983138489572570396322267485333071395797305677852491822195241703998414876135815853669439093619733980080768330159214682775059297256701502412409833485309558231693231427258024879089499259091945989165764997708900437295806959812336259319858340601017289849235372318003843499260380315804268718248379919477789404197090988695787375782871381990866644148991342386000454421222423342578168385384568078556006763287355843214034850386898201087679329773126141185615912336470556794747682764113724981490334822686514702757825413401616922356753196834179600216559978503796643182202433149810803687192740679734738645549041740353968686819479288826078559140709043492593067064022153813067278665373037419065185088137825426348605889749758564357323389593065318890820688930217423901625990965661826392448509223260007337235798523618852208443304911228554935749492639159519760271992425057159415174760111338866350176420550614340392785386829454724075168009114140893997658191330404695750440630871475378234228419730354347363957471071158326361495271846675504844520522076420553317889898016926791785148066948028733485235883346409860251181358996649763680027031675294906505415409070420783310732292276969483249101048870455989056776339379961311960877031217629002593957057664380514505314684843766375658737203474679447059824541583829712191461672215084847146459621618238375845277693453819187185303794031656451103093068410230512650805605217604428626951036207600121153510807635881268400413346623884217871335041192787074857413271745304788130418254849297500761993500632929974215708850664336881535067251235812811476728864265087342131021670538400061671131098959535777425204081361890915704866177632124405117037981022557814899760248224348142307779710777739972574423299620819651152774717297591817674605898806398160971048360231288652369582339151315267977549908560786699589797494988591402809644707876303689061655176265180369238766991522368398014150990896096496648303746176668635650324608083809487544643809446786769249294872599434052704455428678981778121780904274324473064982154655813006485496189353467732744463606100823585487514107022209977132775859020513187851108214064310181324641679079896880642833693223242456786860983927554393646760053470405053195956965989869252395641347701037899159216999416404953816870731771502218819698042072262804774929759463899710803289556070697724767698766331897274601952616913483106648409711128327063368624227795820616552071836095726420659605552887394567169285162518780626787352293575817345764956334946949364919812754908149789717654835101682634408158152360443752103501306228804989501838220223623594041213403417093170130453236680930485354574182619669331158075773663965737606389187749809089668169661142239369113496843388516950760361039263462747789487717596326548874074183707168903322282776039422578082337060102277412080366594862352828072815186986275162789858353766713134410909964280349372870789370496808721179187148330544783516052435400949163186194329125467380745831460143183884523113007974458952407298015271332222980796299167807785436226184621924815973306548392172886041832857794070222988383455217035866219277559914629850513375222352599705019435589175215718214916776800897384594963137083507431658778756969754476318656597906785135200386315772716023789798664353359986277719264859979759754596548516424939777711345083826485691235120462476353975212448950020763107014291344971485245818681860453360478194334898425013295588223231508051290038934127793429938591284327121348351034375912460723220709032456147118110610490610325728508006653435719369960307740918371122489906266880046538704392455914707660615585262194184478712483740031897227329756706116404042118627044782468567759540094523991379785652617357298638759321679339895866331628247291763450119670573620386835983973935839065475751899624609638648414835691943763182179049699404634561120166252622093342929992731863192035007355109429388770834659438292890182686924693321001860077220039161420316868866938784601601845483114787576210210876816457832993419526925457256461520228846734968787573267433453276354178511114488924818677782020467494389767414125318452446346482711639305377307058611652318277570231509102348614420028209841086052482551924842951809814946063563752343870602635222666118756248757129031905428405972920002411678998537800762025709093779189777084940896610132897513780968601586433220124343397822166149470466616288264853511000654803150060641413552282312467995007084131706376291990707741969607894360538327347811072524216973074949967921551488931636993607422408973836919194147775972752819525331468559985856448156470393107547054577939376289394309760207168922024842562979314719738438852167168980549910464633570899565081011703389866199407070843071420234341929442658765684753280762263273317131783021923147692868173782119366342646944429065832408947421953148549170000210149204848257041570950262672176775109423129624953049658350812485660446992627437781557495176443165841372723674250608702335295586867739996627836689441787969160867749557059574691882738123267259614954732886516619640123465972118401879868723132990148106288823150128476896698772272920026151771475673183735648423689949493444977871312745253175415339865166408112862530306609583258569235463588789762376416427870281938985995051262439195819252640855584006439046956327563496397378562314081758363137276494018323951988139317535396054262143775562205542064901281883692559916665232471273424857123325839573775307638243197653425450212500864644000966198533392521803067191278106291208310761861418052027966406157469074279817809727956337280357121671038869912419644476849873455079675240071342528136716401161384906937868063262486211421239317542718061717422312340729264125507659769615568320872820371518991084474796130185269630046372990750785010559961752319269009495212120284634020391416282729820579711095902176769256574129833596936276674617851827272300055251797559862947116128091489468357509840669237297761775660531173229175500888804943503998705619763659638595845469030166008006244199045578786681869845869954564128785661796624226275111368215598613908302187926875226100653192233491091091422009502897406199097050372790184331256566191803022223470743763506856974628498361156970335025594451170331775291667120730155991988148037971088792849087740043756576477067839470847345325079414821225776768692820142165644191696272173413084545203301037081302252573332743357381439748458531468122324089673122392689080840076861789512001831414583204503511440503068640526869077228279586699323043126828132893594434400438228324305021096029127412482526602814509112949858627688118576012236055171283999025739064965035740830556489339745969296282928390967790127066722285041803363630974161149053516063867351104463200983268625996898106207616624028614043311834589041468625696419286395056515963484545205628346100040360327012432297207679801665367852821125824600334928274100056076126947366172360696578260907247576942050068955101948324928647173992375260491397695892492390523810370559422867121310629312235733163961328386224823949332248350374930917329963023186408290541842037190685980224036735875192134788547664964423896223068181156730255087884482089108704819809446675841603727544560507658552701905947304141845421766169543081508893266205880238667608147256028249166231224127932778292612222428017092614503869408142355108466247870218553844338627643251012938664707389913700789743378294940254126709523642366595747738840472655207185105377191420062321532945098297449459274552430605395595638568154505702757527208997024494377981077144246907566053261154655996785472030282480106714118818847567024358743660409438365218953694043456990601423333377843960392738864914935954883070038382414435424134309779210320604668873849214439038171711338999283188228690832332965136853539798387440640337658381674950902168691783651070705006750093079536082077576067723460575910529724566402454026486950184769260603080665621490453528060035231124739251139989831194290361462216445016446508465599817129184169076025868307765007196912616057657847750109024160163533011370827395119424682307018901698113851706421990998256354729156425112659969211584044915257389018097810520500608660689772594777615762166331656305229013897052286311269886010331652757371792643343808884929389702151386527408679503147265584842575724838099227173363036368979626145711605165099112339997817999840337902860199632697207097680395671712018470446126565368180520437311657287367263025111180438993095512391147033523785849337411036351741027599119753887717673894398153295794605840683661658328736232039435849957837253763946332748969748222463603548212671725135505432849675698819225562207449048816572025750333376300343521146290504586967822944280262485406868958501518793542889160392810380808427979020657901500534544166842122971037943282755795991015427897660627341079147688595345536691464814404387407486075634531104034510657676884670002262151666235377123170125457246205081103773296862007638106510070617171253802960713120349375934617581039768653986788178799430693605052837632001911844514227772451506024182427701967184437399628316583657331538289877285948209235467352533860345537810632144073535788827639241049369711375252229396051557211316848005866306392943796605264900362008094296986474571277375859333965580035408887107161711558483283872706164013828111712134659014948464424758395073916159610141001429397186579020614089461067125133906440458789507962340216280588641159058332421548912141190014067009740664829293990644182836807220872523154203724188559951259013700624003611100259842837888210180257025519953634004977026867252779827223323436554554379035435687443048175042890035677109347881982834000390603863907456000656860707907441776469950440753350350086578500327126969397813114616655515046568488354329263166792712720489085614813377508373035613808342193419858890523362470529853735208573552423756560740211543798760560955511961050646716546790524695599622119291169745879052248797259910028166629228397163563828188550341314462615942211326679081956196094855252398228689835510558326463328810495636539659041442891844796253811966543136557447039636363605678563710155268523630373648634031903378837728168017615959721476097857331294292918785045244129068407683635550638975715814335547524144424754745275006209489171480780698797313426792556431677646094416298695415827933764062176060028169869230920860968167573263918254200662963034455247006386578033433999028068361340831903170597534987657624537689747601474639209291410824128361620933270511442661827891005887669916289318080838980822825392877937046953006749153141109907501086383444680708595705119690412981972959351890251252609770720382965985218723160820787236965284866691113168060860952095850485890674249923120694345435706777968301168963595232640052805153111972870936853362719149700980305675163400131902895644004184445929146613821742223411387021590005207224410697065928577083921969834536615350554978082039274350625305163929053272182197910774731911422037741478919318078739522526795538032469779095453794669594325487355914790988066009455023341196429032361037009487406947303184122629401687751805642751935506251178788230437762618117967287334996848014176270030742385605903761693532927979680870706318315721678352583786122666064222010325717733228091390830909524162896760311961265485529565541919960230151858710344343876317628477064438903457458883928480358821680441517830779211727782886374090018020412208867588589302895801584486847505582417056376704418212756995900258061776930018673739675274008620514861560304765278547182581351522767745798718947554228923118694998188665277808829563548135207716169075682985680838576452563286649222608626696606246585804700442747980289228304673300494340810825503621450571886047498399343729467560811139262014804204612396536272276174463270804966541576078653011265553277550760396774092038838569783955202421484378175689498973534325070137668934305393361812363012173902232567785410194196075538018060330803211676833316918825246426206965604427765278072573751314705755832762684714360644714632072873856605198244639534068145298740715085252158817227968417847158282840269684684817733295501458576977554950457124266076026070205968636427846693753154812932715282696619101609774490857725563830491804823808982226096746336428433410625615689341416552771639858582996045266117145108163425128110278130343624783323085182098706440504497919942138340251229124345813617700645470200836531919303335776501330029595557244384386655455913897915551665342209446213937947479945881033965849720108542192593546911886364075138726760301899578366063510561462495545705953165511618652589325640597763559689116273524071373380798435949489531149073849988740420158937883798298435060251982074688973137690776919583593337007533347038188539113310442382160260147151394900637602974902978918870922426585999174616851827169261530534588895717047262639943386281309832406498652746062590722562398788568217464156011243326513965922135507000571553160480458353899676722311768135863100595778672638433443825932101410654402431539667734772853648428247709380484788904191820890231329960628219362096957101606111535402055372231613417507371454707996046967419973559276586122678393423016276223039285418196840667749451974858520823462148366853300341406510680284328373363227545964901548768088441771007418831678533795836672817161356732821469189882618555736007464685455295425609396216660615074785342021031661395373791626157490866713348947643375795616186184465252018325666747032540464257407694511316816748886053403802209808462455470105972169677432355090394228080482319333155529185331193783589885296056086948297711091084144232904089022442722539771307267986515551794569538687104804881600826420279367201355869160280745054507648520884387026519400945577700545499756522546776036987768746937492399933749621285376623094649060274358509447890879468771248007973115786485246606825920240178166450350825549979649311736575870380370538531134781200490980493058718453842396492437885431213683580474102748438647652101508968218133642570645049464247183753062277153681780832471059902989373585104403222828214314929028744867906456490444069572602493388130907021309557282825710423018427304682001010399275909778825374949626463144143562715140429833996286754998167918579981467043726731374742557162214577070045298259062979413452929570768819373927144682791840087543234805466652574446708046199590259822099476652654216780755214956684062104044231782500270572251473889219937418530132207803865420388823308519741254594676308250507018068660207008793199713015825517800186243968118971332839932580708682562536873851658860723424696774868358062263346005852171725453455143577041521978584685629581067059800146304891954031560681468031457672580157318951305972358385143202631452539535913577766983676760153555742906387587402689793092476683729786797569788046291037149646809689104135041678184340927880223735258305502781433959127432453439642679416967066793954685342991184163971111255578112221477938578720603050534251732929657660458465080410134910591596804124435596527260923212704164000489744876974685762753882247480272089306776334425276023184149498093494760027304841912054895990799362294065160349172788033530068268546189840952122927764145762527670152417758273779935212035712484781014252345987964455173261109896964944967224697393903715612994798396996545227682883474323946832848807101566909843401551222435925926830798188107248074354007930998853041528042015908813248882502744237343248919013022404015888510866678044993494951852238904655195614591200435594600064859630052667794411470103558863772920663515612628405750913723688942451947551883228960783679558835685526759552289915461484122170566393962003566935385687345512359099875765922522056179027183351407656893403540126726104768057413653838731463239471421912270696013054017720366074240037234185884557761065254557336606425846192726284931042865895725681870390114217443500353270893087708651881672624326412205088567319049352261719236215354546232316334068390713607422762339406417345779118266361270011785546871961042031979656557968888867985312485948697335470120610910555693459679815109664184969463864367530959153790034406689161569096678735878546127665185058715304011775225342711172281872051345333577319796124685572925187651235405730059776657887601575360843875878699827248366814687646347401450631459611650719157553205569185056143641167894011748298992997382595094046262240418106241746946542814496247806851369750777517525480206877083360709680366749593563144435229413059233131857897555214578547240522278369378134820127755690467258804470750732468640679533220445446911451341275500902684693760235133452620261087509199619100743758301033407713655767713458523290030935878147008909448423214002078906167430860846971436244063073237608450718614931945110014268610689912880727172933722006651530494212177822703928677792923932361744920646401546845476351811485833020950565612359668349719128031563945817059987755116239348489508638577988632974315868933366066651288435683598146313265462559435289349969581892003133168532131936029157913789862873800941338541188362252218501748712801858106777910755510269764436000277824864814680296547680910954560074810595948467761535400128338655655703441608029895060082727377139348385065071798785077875817897790809995631968021532200570631455635986785989998968310848840630824147165336768942467162376690087020029422715425605927229420492656209101137278925974771511572568292114125106973806385672126824208806691428738955822092328830869660844688845234419113782014589534122267782726699701086823905496681836199377099424279509214565662956640298398585692451588372385062054953150128255551962270767809607322914750395330943182965462965478531299577192289903473231121904280141854679025004870753744157984314379492983107508007705525164864332192422832737398091309336122348031300862684376154614284249269125078428771136932075409484531931877281265486173278059173167947144782163231748246203461643982149654033262255284818175435590056188283317873347863742095510212667140143280378411519487520850986915925892185245229674776935307980519013180617929989625075927059111086482636276365273611945191661350726710166397686095721698691463798347739571544805265737786103513052731708426412661181390351456776314963499135892194555344576080981055446255939408140543690788430548703245244450455758643404041800926284041186550161870566030857637016481167533180994158427738557176368983320218985818984872128989481884924336691075470663176539858113910924578245351088806651138049000462891676713295317796343468193759766621818308487604544004958798328435400975097539359963526902884377367582874449499149713393251496403942231607540080524987099806607559317399418823668142742726734060661846409099908931877051638334498625089311375697721667830230080020752321297609552108234494462617695065983258229012114375747938159140938240155135822288751738499636803171956118600331384891030471221820746530131657732043769019793788467006306630813836705859047865293542642322988565446390048561299554686416841789559259956528375935059693870619636164429244857900247579032045114744182163490010000232957452905777239531932307697987102339654490721860295045001430107248358723874228840143302848785789944576259835491100667474553531863904987267914553362426557174431877676807402931445758382555326593536732541273938676762449314205090804477180075869890446583875693051757560430279864999469539479681584231603215468408536435757879992986420846649154354062648673306573001683413899423588152947208820402554320512457561600077141796133223218169560274688406201156015480938560779336369036129582009371785171463925871055275696764429767359215156624863604060314442123160582911444211935090882207243817303296153539273326370525264187327158835859515558054074741966354257377347086504281884901073657492825540480481897457872290597542013126274227308656291951517332938926511700535412008916499913458331978209518001560179259711999019420552610011170698124086016279510016111543077589662223196465885760517486996511920083985562482129040957534867645199434475180161659107620327380041183536063487916563047567514079077508150787549227884789378727642556130982567211924750053266386081690236665065012587004572560583659988835331125860837503456059812780134778871856811521686470078083662012926828772144666048319475461168101888997284480110875660452552351034627163210239970464891226727231386175018592572044017188485246980429943954052480696025213523278782943080107885560767224103961847608326816357328227865097107453163218465664326437185638921115370554797907995032346437027546135891802588903378593310259291893341641393355189239350349842448830819993040368633233681481692995828084875868922400207910652005209277385223238346913122052761356416863933965212144865171051316387962311421630369321953515137200558546332720256328473279043753977751542348575257776479135871657213360423367106476758827170542026812274898530043179278831786360780715908310118458930593098383053682999242018304943940271847529377795959914291180640239069263625932386121426843661076626896068253882935766838153504850538315083640192816028058565272784089284934837492917041602119177790554269166158090891237815139943388220985009455482742262343736403137635656869185401294697527601598530655030759384649359624778681722132498467308648865661187118863222359388207755256723547513533997048374960916407481551883331078277061173114060288077208566729823683714609880547131242071929531521287532726155819466789389538064665769032846017380418700018458262346584257772460426714698871528442706624202081689919481909420232349961455339380749154304999153939901415682114425418985327565570905710675414271704888460455598083684800882197164959357015549259032128636115366024423960111277427635133285668175343786119326372259616878052651782286658057287843135033633672893878033727439419861425717030020954658710267151192233068996303370136906971255289146162998210230923880140921484854924824644992753733627628944731248728159471966380093845163612003387451168466836183905230531282723539067703235018750715892297861194527192246643758144282648034672447070093129581408128766286826165666252251514478230005244298647143236533342707763569687073569617521056042457516960512750274534008152333624320563658264449819610245386619452074531875812041765730661494410779161742368927937920535892622861645927213121542338083364758002719236864019645271611485951548810713664640900447818639220485032744613522383409571351201539999746671806837907734036182899277643897881958372238577535850272795323000736993596556754646974347373344792730556735954054602394478330028661585699794488927122424384914899152031562160619540045989218169933962056198586726108293339906557071514187208170660453662617233393274801637896045103891187530869843119924370486678896870805986505621290169334844998593110276773854168376014741836495730231608071807818089941149440171032615722565903331148801208606461440057585105717804682120245912199544859682151737064890566364217166435279913394935223732469705593885738475749137448798611158377232840272296602276887351211199474232173150141625750643823620320042389726648759251347726747991280149669334711331176980518893403412952083977910859020509149424355732519156492573200302717725027839776042464460239737357201116761424413508334771220533146079805720729656842208899925632510415772084840461886024126522291771486962058991223905794199176112110389946694186851349445401284689052143823553033722839823019059111125628632775633248411227643549690541820350756805197339880268963251328472877975122382553084819189028053786075865288698433489092271935010917514747430370593709163243692877841002228647708021212134593967452737657988838053057361644968167072286406735025320323805414674199168613426827307651797622326823690289203212812226610335591226560915253547111364824211621763874996198179165145450592520408381615446169199145251057506787161657415536770674052082322765528379682050613559440374953061456018577010522054676454140503036208075339012294567590503886125245360282702304270489003797797742577657683834175093302940192400308833506800471951957394005483761589721524761878334513054667558118636558778759400034853892058811107551735758841799864838451960889478576084476777402619081193031744648499463721325371168109970088043811545753795537261965769360134394933620682075988625428155236649105679203126027726548700234086960411420754333060465590715666306834792179321065641920314048742195985381943729200350935354891181332538559336389309714357735620643350588848249790041433831299857511163285633477193276017273526019070086477738361355677112350627118263764629484681501986652695870796631077954586881367725212922970975345404750268649763297190971328355439090022103852188965583402396511286927788328694472641480123145287215063627364346129200167969773253968322375246378947176125937419357146590625968486161864837179537936481781459540625302801890996790733375414308520555210664624486519062978766550983364614269935516835770514271417921536812490129112437923015797545926493633939037884368765507966491245617639875459152387482691417910595889153241790721167477919981565743197056901117280979833568446307261034710024402044345834553909549698819289434279322167774092659040786663756077544849625714153939617800840739876885561269744627629011603608018463161732262500977042863782108998602839408515456018944219181268342150206589678040113747757595853680879915361060987685302302774112958862684904157610976537471165285779739054206704671351248480935023855247681934340244346734594112196798104508654662167261432603027547861915093483155485415402389323087626754607883354155318369164817838555499829506542547020984906536597471315583935001837572901905212780636256277720269285272958450916012194470815420404360093404270820007234552488715659567578431109352661927392327777622058491147139613894856199273321654138034747566491969604450307832766964266275954759205301817993528599424255609241502982872356577342477549229078450627881307875046585352464182514054556278914539957125241593520351407495313562412391797963919289049209991777453452342672359632093656401225315803731651665366560987954895190057741966402848067447192322738229932790847008940153307723941413640195609069410028813452541954825599122155194206080500070985473264150284399599063368110861772957353049484451985776943166333582911756687581312771234872104748380867619711683974181781600309223240015379219734417043479846055726568624246682917929343751950499827422441268576597406965779789339363048568358669600797640068932819912505305057353593306359772770992631194889986023578407429714662508540248207994642878935981161862493077898439586999666160214589107980841753676493814341085073164546004153592200012769694982238988453912081844521148419547232463135714934498332337987786804879059048243514125372410944141621936355457592840965643714795203211391319864398336225495051600053432450977986337070578358285863605296923597751773909161614710162760378732361950375345446334692837922123283091301605785628016499001120806195407790665353553519816149444519935000306994694747214700095495502076377765219042272669070913464637165032491393035336432484619767255045526754845460627468316712347646693964946159327640895523867562622379899391266572814352650312651004125091449024462229661064451110135622699560604052057113659552203295522849449166382094871970988304042591719379902106633886245098191088887929390831329049885939141360403265381995143989095401962949402431136765032205709300093620392772597156806046972570195558680272087861223626197261873420884026743220637657819072145686831639536002611405844844267216493361967934938833616657032959282381715980643464164634085298808135094179324039968789931792234121737886836318417011076304037936705805489215533936576342310757262392196672528266821107693832576230238110900794508668019725075110838006058962402118594654859637739723846753854097048757265653884754245346191095770175743500135982251742573848732379029444463681739980650965857042340979546030104472301070177525864196703711452933211397426396642151445631749462068416894613737394630101667266569885480746511126152489730486519749353284081389018536667156576855436735158765743019701572187549734273720260528982907719846347717787083632431515621786690770442433882889738672422387020406945825577040027133297627372350572836893871194116952107799296845637749920070781469792762876545034495308738441063253439890369322058376350783125864779087773490020344183729509766244624576510264410212471482847458169976736507459373748101637379789023556998916137763710458529406686440740241859827854888765664635460497929893253986198143454091472005000494613429880988064501440638417928271374759090451919363938604475007682856846743732462408379358902650543713470250809889622215633835042976707645033367701308916418173692048548958261297718549876704290200744435539506594057410737749617363249522908452638594628692592723423609065918519572128114902883424137129558796155615386119784985087285490288764680191770290464020985428142292547378106191240463579460813663359502996461866394192804052430604214104472606094252349054455503944139626500123321556024729983561913181354622731605845713750408231760799750347218606394078686963399785626950948020441992142906289711907522715236153037404282823854252495107343427815125897804284324553275009537727601842570290556802795066279619066841512489717965283692653056068890042925026791465176200277399765727276852087249298092726129798750945378426677332846689517856624672436463659099035090784551698285157593755462332490385268168732055563364454238916551433899065893535680744224689063814997372212121852155536873756838881428555913739677344203678941938360020192801561052433669198413084023409453160775990664748949216747496073092267416065977403711451749456732535572997855885365317588150595524172445289295535195739026544567191007766592382140040889064090247155246640140788295234931487141119110557426557689104749813225626432311011488993927679314120962191644977696243650737357822164268754130851243060684093860870933440779049511979663298727941565947097593262739707116991747701756479715488288619120585373260426604729813425397676355627451684356312515272130378491835344490541101369990353647545200420357593868210593588852816338178312349085281915387515040428914410819320768860639658840590464617820951426916074809534868228068590113353336184507943519515685285968909400212508177638216747980549267494801181789641704351380896702174653008572624353940817423399270305214800433555025230523942649636378595771438815870098815904327988664876290978242709605221246820453238612458204621958078556492145347608416460923755792771308226384665410788458446039385038898038635336604322329049673691343679743411299098410340411720717491294499978756547077527693291047710214324162821612017884878097686204231025540013060919767644712012185951876125410123752312425523594496988930561316709687843708305852142170597598194604350120900767189232563753212917542427109845735904851279411037259476508558432391030523834786685525696510250238708059027711284406362704348843141804087302008133258633275394511347376880646301567241795450806714561696947472670518817732266786090705642056857685048447304088678737152991831768752464056592851818836832433300783543169246201571937508162664286677780914661719924195739598452797712400775281605009063046631842851454919421306527111513540383270898987705538416204092487316539663843865749872247468649260834385940200804179675262057298437401585723618481859912602698942529621141707211033303406096652156352850635997041308184016345275598481496361108870712981811887448366351227533324915380265467404595612800531001781250957387762456952205877398917440670411561382669487744587822119985758943735567928048289130283525219259045031383189811202666863798583961072891357782759843508324804752262341565410111234618029214424780869803027339794395091502101548961811718785590687136387063493772883242105161447614636026201002511336650189295151173248530036232604368407273844318119593836595095847158383442728105121017206151662295379658506851172625998687850290978528867525819810230492817197846903405783000504106080811647419015976305834149000802598427242505450929877512848290152526272985351719338326298694496430263954350856376199530584121036326720498339957329528611279845066497697211655959112124958349966448481047678879664001276890334849690331899016443059516350194351089042056117667296478558885169660100879354802106293955246984676578932503794638049671115647062675538449513412831478363264104507579869681777969789881561688197641556169595788440429995733408758462444706640487307601220428331445832890470615003095940546351006183497337428769949687366696035970490564566323431814226544251392959244062756292901602260796519647381074561138221297520742660871727167598862538534201973499189881511162284271728941066786599023186679741126770286681792166026418918570569819484901791659700563583170150138569530912394923177205929750825855883259723010068231469841281038811460273802480327482834298312508969308820400717268317175513546713343461736150499975207999084884688754136637802369927776905728802452026440912571533079886761651501168322821952092541861352706584711545604805530683849238437898703723518939772047584997709042020700564940857683182738566487502714387248162945971030128897328845699399420932755024828352056592460423214847880898718649369503313107706740388761286665396152343781489945565641198150145725274908954452165635105297467827123032498124556071313927329758815980033552758723338701572860957196789696719666598196138686708195272836507726574601363930671595374873930128523043081295245618000900307038174130920524709248444579447831680265254979146144107897843677789143189917621871619673419350607028214429512571079820683520209941453756544592971521584164477567781551636173431872245367446709185303673271106458464799151710310666791471421605296806165628796973744080219084187198730917664712642263992711316224631790833518612896349857398761672605191047883849847789603295544079259366528321631368014702766229010210244924905047900977758717547429557987548175627761476097503354012708053983108973219218160102321573008551250071729274728158014137128129520566244804872326099399969768145550167995888668501196256147791730942157674513428852808231965085322249035019920653174906676577213963906799993960155927554833095190213000791118637877394070824784091840187402226942975602756565777230520260769112368535329555859240700759525678809445445870519371417885150228448470250201042086074585111025389101271315551947503405922410296963150866025076982456511321011796267742433892082058746855168029764217496716173429400932425112584980097011275062063425070143445834383047191919506699625995848183138847379837363726245232200058722798190423846034091571007650591034544044322606106654558138774074092011141042120759273463053390538719326956556740071270553355951464664306268396492012092379681157110721255597057397609525321355088368597301412693574571232550587230858358459675217547565758351552146943910297890457796183335925917338855477736779210868459616084899757886926021137812442922642754380029812540180627216184366989803591520820180337634551793307703243229271304424813631110084231243727769761441283889074634896314804551073017721687002301393049092501966154293248704610417707838100091623790368301966913700838721710580405487445383409861932212466740980862459168777238346701731354796729113299223648854962094060296093037683899932342088544883812015198562055652542644177681245215087970972139370722125216651026426392527574626888267543601605675546792506419917051622167049058702529133385563191202210964299446195454803074860804874350377368464233009075007011130453915713030541207352606260444651688157277865258116458711606394934103846153286573890049475830529016744276779018344603574532578590416675374423788530904633136108747002933371836158955922410072688642661835575172284512484450189005219823934144190348484493936615449415282689615759889003674163677480237655172905368243495227975365363876474377846333040258661401494597934006115855682190609776393523995707545619865809723630661444488527692076487803557108172739565473052808169171106102112596129358184353524934619247056846399474265390730704627905055176803782015064065459374279624989655373388353564483715135405172743682106977135509654017304139822481527718060921904327597209895524086513669651304036684549769958561485308318676744852234145615297432255596460813722400970064378430088385848462670730384297152505998452283222711116810954946747567942333594083707670168509623877230454341090685251150209408288427663830521214399261708309982694480402069608368127175581722705313875942054061064744716134196322746034903923446434638793926408994016317350192749362220086029429063601336431124721056702953980646714287538364168973970287047760470653468983388307964352410235915907623664576954102344650068307807998304100682806801503836645332342574935499890040510768994276848017645407122204454589403230841147522667881728784974856034823685426723285043876186354132615580868629948499724408088816126027755746380411661341173844547632391705774821269202445311337198705094111268513430629411090055906192776259775608208032899276507600801310074621337742683696633792249866523990633671491928699602986325435486398955957180774117605178390873438815753798209128351567624777519813543551065713720111189663319918833414982724491904349012661303720884293666914322610405942256141150717280197951094645373264581316325370436468708964982097024316342873189110623382625132207392097157537586282139957771418626383450355381977425193520148425246741344984921210140960088993933677553771791598251950280197509100122921626471204340437426662851550595956059834608378738837374303293676836727110546584361940709092989737106540429954687365413308452851411492426687836457830370528627491828089952570313228282289236737462398554051151461733629600629254871881474218973194317123391891650893121046691181624582808789255776914144264910614560230011068377925999156444925974194489499649626516874837270624916988692736472576270693664473247766668616455066318569461927138566416298744300751005813288391615985462009558584972995994487094528468185025740604707432619979055915491213545925246007160385938374738977336604952633885968595391278402332106037238986676732089612710881074125346903139628940395065561129676010783461200801019695921567473828559513010797867508212550349726732282169605995890046496152922807804369697711106332611403170248571141071254116473093021823936715193065116229056001489985805157034585804564487477435154030482713576121646447519344417616242104757355438505108667751868044215718254707274633998777886143006608442691076734125971636661069093677921429307881035709118561425526758634683014998334992773637765539949658297205112942250805121677764569417570447211220613949488122847398201616366514522384447955351835560768524147819431743746718771175133588568010344883798705660601169026124766126110419667421507307952474015774424132860250932409516441064194924982427553395378515946617461855320106653812954489034008026835497413883162871346865851668784984588596063473242433472578978380995382435461863793282417103407304127642482680022084544260193214328423793711408116286880199606970212902815800639342255872431033838459945097793894768283445467065007311431462771519297533531185921869633933440785360003614107394200187372893718580505172991458100523496326602047587142358472022504381394328742157870882259218730813142638266143619787829121876357533585493360712720308938013017947716165810440638389654502002271701073656576156686999270137772442546721036577833702744506213945601906137793971804653955746204157117398480533485554170296874531284679851852856891726873956234304808472915936352929482995484677147211330629148993378274348706958823552656308616673821749672182555837390023220810138764154554087525501989687136885673364237291062188872627525846226628387544242930591900765694567919493501677204406339330360332978044796424179429518529249158188453484299184311726866322738585426753508032858957868226580698597219797027308690513013705314235850470920921801733425919876786767714882209593003614605850757873782082071370306848260655474973172810888118255575035284834527358776095080823741348227605610522482193566228549833225072239437820429686679638950855043981280156475414384138080004331286873708281112148733378914609471750359032868587180872283497542152564334662025561732248378790151163962602467248692012401798382891487297418641054733945318592291103234939065715313206576773871622456166341925790190481062446757227918250161559143408523424755033885752002810746790408053948356286509351638883123351612058152780660810829674863559458239919698184000992068628445863928294224867821966236324001682079841474584280961637565254416672732796567901420645547199859284222690602115758816609320409278680021504457882847802283361653511348594116400802287339177112572430057118244559711736189633141391081464945955615308168101718935711322343928312865745087059464555354412956574981264908845805469047112682777705777616997438831343962171963866294572020242285841623613410548225658463446274449176666496498084589307128306813237820237942557224423187445158571361752003803836060832232659159471418073150579072619752525749243596987945944750970284767306030327718970141761174424015589889787013368339627358595848606433160040887937189677582791778447052907214973281504268234235328055745103614732439164955864887751107108013404828296922858055307340285899594553270836238123606010523324253322015728191883145826132886904817049329102698085384310829559943042645596981251171177517611078614501476610125367501172252222031578235810081452405820637822905409157288618104884461909281730427298218565580077779481704253727196672669084364083296244771734060216227823797592873424340488067187412671156854973839567748684185720746064684854101577851186996230074132958478962629237957684853215913263666839089590050448561505300162919789249106424378358718471539813189968741984229460922372859256808112801670015094327022978261779259818898831254552684566583757871271724512447927174372159132451804407277539584332114367258978126513395127898579731172989759447130163258813663733766436975376209376118786911145087295565214491761585616525360001839394675688278779014616109940509045278893484664910939872704029479916409665232569279743820191917807785977453139354737948483947478227240256733843563969238689118860536526258119522214488552791211269049913354544539310564035854863995982601336427822742646383083418879110666581765928081260244601591638847291690735824837711684251204410922219770174919959583098720178809755062804116708350822444300690550881370221906044608109468491249665801569858914840050428268896866481526612831046180309879614267316611447900366901539563994001350431591314670380144497419281335767931060498434536085319642335460217540592787793968874619688448814712478134437349479143083065811610634818509554989317844913413378927210296108403795104820669233360870933850967264547941939276449661417761708598920576138667332611393749131762763835782652865569109090034279813960962913610485958166834243699300009196475909134753307547711813441529984888193990245761103627350813815811515861093767368975335962449756778867580987856858135263293781517118467761349347884896315108660205739920723972870256961509245200568529650081577880814556799649755373962645934058200374608573551677865699376719043989291471424879855066914874882427723545576960074575521743513488983163604624277351885728995139883390144534356076407936524431954377506443809951549645293292192141485649963534925599939513416475172025416202610104289369627946133871868496110001999431900313056776994224422960073156734093493672301317543827051842353606934777443292342458762872002461538321387870748550340655329857687369895548436110895772818594341382383006778074193816199357873423749989938602517773759862996721710199971184702219251312387392850878406994635948495362444483305357646395165684060313145903140461933339304529038426545526603415062206135648594962071197916512823293655972809064099555236981372612855006149797301168390665425829352804891861569607312680551222708886688714292169817842836725569311362076522156214506321460076305827228788494978065259777389638817955026459902221182095813466867159889081815962234244974038118708614524778995357292040994073197760631199634478715279318454722982073722056109595362352943590704964923667996871030908793567979457177693219718312044325235274502291511180137979954564608105935425341277292852081879915103040102240556313069882257478720528996758991221398118448168877898050001187631327825461301445646936031027288586004064795519516467708347806106535005744387911082452766698005630118355916804210217199258176292271709906667663010368422565689029140708329547709243897415413293906095931981294315954095795288496625476254321248567718958832966528452240668976979747229835137584255003174565353777961930229589462804975587056395794668847912999170465474887275955335547038560194374975915977340438244181083342599117020665219340810413350353214646915458751867820569524867417610240108732220947683321755233949956005102073357627008760688145209249552664635354718743876982921575113910373724973636335790361066159416196973645286104269854622765463719408432258128596843493103193729361263267317022102427572642994316265555152376383772636327992736128408760735539856538006098931707862853652010539526475415863765346755276192839638695858892198132897981453712356920598365209157886433168780153635721717857746478255618322351751887982681793921192959916579583718107799922963201064517805493632896608323232144847598294234958161249413093125378088855672437107530007135938501917125188485673315059994403536194142498100991238630588622249402872023322703203295456858394944082182708516783667703926807258678382894534865092966623653947990048899210792441668721748728712707407697271181547613571718908990450174514784242805892746334341694848511881103718710238021020995319421972148734245289956118175529595161494746629917606457693798015619853066907372042623569741647641431184044203266517858615097348950606588305507104649294359357926905256992565254664123974203230294775995589684428530971738170090908238224547100182163713256533173492901104874350685579666967979085999040337334904284230700333061558969236556727316319636151730093473069561680247008558206536458912856990436246862602613392474003874294647481212868609579553369841228849132061067939026872151257906096071741049524762352116850758916561665525512264233281364478724980761946507637509687071525584697872273743415746132705730846621655872150784524750387075715051657662844767980632155377609181615758386447479252190160375090292463564420503758576929595125696090775693904796309480446533008301794673791323293026556438101276830955287626117737019838552343021005344580421540547783096579678782270515780098507299476092839729602870905865065609625623282009003015892028592689518882879646415599851541983701703866804319419987767857430714045023988973844701166764375880891042905566410096083396996353302494435346655542455431807748050547659617932594452187850620295013694858728346802837307057391717496483139148794800395558855918979911389717146117747483723879699148873695275536894280819669919825179252876345463218809510217031910443372503465887063085239887445222738753881191294566702511139814554135437065080114565338426086735137337708547838226100374981769576378661688192936202269611512293520468063969417274584937169324393824336394995423040229666441059886075804086044109739128424405122263273086732622930897679589465765362545780356831902913586751405284289459461848154692141799001246831550954575420244862731319211404000410090272983546639049242225177621687628299450743729560955333492763743326177207495099115734316820860682553509876052842652661761914531511955214645454355281989212112035341386714711256776338576544270066847546027860335570037311534347026001535643086408574328523034289044925887225104271395321774428118922324729220267928636273707408277113445437039269450486865777150370928994987872503840385923102881837458876080191205582812348434123652315569047062705495763871704159455098160457826858187572052339089538440433656120058591220917219158012903534487119312794936461422019534417207046790419626640201477497147335547896704749977519681917768861411968773585805974672783196884284771849207921325788337746839401129759000442814818355580794731125569655062842359594344460716520536408097673544191488384768165488999069958315940855520132130521919493529599674128416589783370237552350832615077995293331541636415242342034363209121261729619915461528292645238283468359146531730389898027537638260040376677108982502349066131533750293383693744422811493435656363705907826707595407909926329390575439898062631648734805892692972357710474581994834644865867566344662039903669557972781865337169014023485170841080542535931197518158681990162138701033196804037565561575551563545107104186269343174326166619913307952999987435254545639564967555019235037373895101804058820677685820744362842527626896727502419586193491988733688850300608047014703001859822062010190854790433827184188973311899595435843276042049390693295689027393309541241675055377192282924200152973189452197715729016347246598283801953584950993334466139398621122827217264218731855952205027512672751385024155648962639575770420796764646747191289069592000646538020312284482206285467496632838547768131828445173618538282252840513568695646457260706115036860711599340887944053335805785156173639972501797817029413231913358227170728408810352633769307132546940858999110018717637958317543354347258094250619580078566802741982010359847413512994219347266550155943016825713017534045865749243546626067675805887086071504397341200045689533770466890474176905548894800102579978866920647527475396066991206923972393344513639014917881444743163817593776099375113012270122466488544746620451070157726749002887769414846207792475099901766231749644250241923983462176481319591036962031100363675378580866314812172798954167755799433186814837107034158526264316613145780279918662983420473175992206803572288088782283989069596222381814311128912842578797891997997518587523842652775837092596730774266968562731418884276251771407462130260678201486308683915329811602325137900486352991675185991828461239169746452497050170136927457711949661632877121027495582448796010408837043695718722759268426760116208244623134938784784884258437562148271507868767750725493322736035056637926924649560419428765384180949343953889513995469265844328378425930863645766779396008157367476560655641812991866092214513850766917940755090970802477696293290877933158419636386401464500528882023619719330817274657137193700512088819490699872455200899012321772521268402497447023517959079363341432849212649275534568243641824425181920694834605757072293184038336592726171123868006491674216050805314962836082601652056702381341951593172457333634005289341437447417822799121242263606641660151858879457231554401183545653555993590404131866548408032722301261411307873265226701086071337334322360123591704506205854741257811576952256707883397397202087058355761912821682874752583163884049930387271023519719302944744045028546935510695408207146354668013406671662409314416081645894177069880360376508519590227802077921284947467843464504052602303712813507567812717993142453056713212907768407967966017442439865553288318406467500107003007482687015309015258121755124363983937514342198487111461950267392819809414865389522507615830085794188829062231345244129518734176400423984120404767900552497225295120941318190561868880123471825196773720388294215810434413339167682383036796437612353567109764115592655910013984350585613149822504156934380740754798427057024931954434924188564330456085823464657409632565390850578156593567282884236384762595745927496084605699741016337231413844116457198235182068527771274633162759776151737945989850326286709836335292663144544244190018826261699492576449115886719258206883434188362610138019771769180233110614095624564130864464776579868575435079266094522342666618917741650085901847190073195932507765109472907045342893401490741191512273327000065938113491283522363503216934908535938658697624423473184841544077015157706727726448937695118220155520194990282714234182019849247517019826562092349126109695437250622325826461082588569517131013111441436046998521885648339389692082240643244199532485588993328550047317877777531426403794072964098635724911403935437153653349361282239214092639957971621413669745523507060705463520907824429811405549605321021325578917396613818585363343104138558394837159582931880860118360211431448214303942808092319338474721957263424311673780122278136644996048196075926484742140195154085692965167908949923071325712599543490723584580104784665137352489200856251214849542789940265231887003246783120262243763756226588492540831856704917494480993881708132683941528182676127926818269554412506956338762098460004075858280385735581739498915673006311295045909831620481033662524416105874876405414363338348911696094441661318914449557983503717053784074251966149478747071062197978950901196437650820688632055842528314245642649899316543266949318146572071066279674491420454925227555008659481580842600306817294399753896833655992896741120066443026088469785464339270842197053161927967397813111948110998442816995667942786890657756977406322187881544283788650974273476137476583331453357382188395506245302762766798030472577495698518540014464011985849726010431878389028670130197230702235077395004219829063036439262980194012192151475494601538445305664771098265429831443501927030846053275952279935067981435544858796201922491858273579028356932962194207559857753337256810525517790686215584793869682340133625250656340024480559294922580677624634685820502554680823225174763541311438185412557241257852799952130223989192138355908173221343714398570738266848841668365096958863192332100781571216786050254143891387595425608544804938966586937244142360316797513318184447771173724530503254416527271413542182155791482220972918120964303530604823864893012829264738446192948241290345513472427619781927193382541394170869761683911523903798928212536734952244817144815839135711986431896387130508971738100003598218503063092270831245110313021572821441388038297720887274582009538764049024774081099630188738988545317852179492026607041248481455692839960271055075038423677419396016150019882570029194747272411746296643498196242258169322566027469873454320896283412185151502644158383288765449359743320733145318784023202034594757983328795251563832132120922164921233024232856944166589377230492563829838493992583507730135307335181711701333663464780617917950192208289598625404024435563268711783710298652555717482610198975939372681191362197137966899436373656748479271643109994629473966069335930409567935002669518877338114249223672521590489061574857475958418408850867806285743660973910192577605589729021637292698465112216283300318693906242168426612349128662459650871433336000276292397687635609750287659622667816258751767791577323217300081098406608758477147484535649870296217194492387502389304447051143641852490658267674583473461560399787438039369505620358841640098941097084731339114459170411396983305989269544424641101407383771018824543161903711582579741021592481720043268674781758262489273989265068941184352032051054119724992446781156137757035783065846831461040808522816218452412151178748853350150660911749539230515890729386778602955173951624776064980811930752404437748672898315790251437819131571277422226955781810236812852918372456782366148092628641766315663351969939053602451947551030009900448798331626394455962137792757833381304933751950586099681759735816620814084981668269864402806587579218619792285102904919907758855783039082207943555503765515986353274880669804510135419649489909041317602212366584336064966909382593669714261881105248601584350130353191199078089547019979017796464183264016881310931222493778293637405045800994007489460892924952060057031167610273783052352994627609069897786043196112102039633933075144571132231483387174088615851732108128477457251781372695547129436195471517758870853485963584342513406581557707354056384844013999678306885612484673733350220469388790694245111540560579508080058249831665483099520533787390161395663210713317517572291639510749670268013509992137443823572489834301411157869221331978626861351178868191512892799715647871986271989882067254605206857593194805824118251809006786287675577935329060935766242398119303272359235220828741812537603570534922070122287406135319746102854929541650363268742346290401835145538743715474578171222533425073072211370592970903854709116888461838812122358530168559851857029576998605435002068753360670014359911826350903593673439166550733313419083718753189125282583943093981080934729487778036656110801694665045434437799734572506591353215991740944643371091372797579664066626731519624083260928237155438406904171689090582914161429056412513197006058340932824658514309946576935476184115793981617652441137448363324559737789431942841429164568684386707592463200288328148710496842354034426245076175459537922274897566498130028156766623603424628222212388047000063964696024238063906559056003146663160828724532308691284608770922213208683401020650058710335986525343289651796583628689171135404252913913772680654746740644066218273698815374687705066385077387597580410597715008411361130970086348015511257702035537680906498226572164703013627766808532277339494147560373887925469995186942427384557549591380499437422219224225113270379860256996467113934659360940466502436019628481086328767257823290945355388185995165424967951384730046928804197845629711651530287057799433572082180616644327754605457677910343287573433969879127652062505156273305318302977113149005822944684084887014453075479581565980178483138121029382287579733874154084677995893857726492937912252366756593728618123575436855732523813876976626977122120259021635862806466123034445161122147106992458157771195076558508631590219221146058139226687683424536153607932907087568197141790090968221431359477421647536640648023309384749411585738805382583930387667692279228852632726489997207294165563977939728534678549698894297265272651892715070600195193684652870809724661417385246711833984388851152835865398932514338098655756802206384362873278291981675460845683359886174155011294726854589808687393762852826146113124204503482718665641585743842975930964390182201936234752125276128209572189405756519262700219963777070660164795884994684168542965593407377493792026883641306160379119778755533019657672961423291515454365781661021957691115361219742215123929867260373899893795167069398034443827647784984826556820469249534579662121896474776551120839551913277779057371062029551705196317000442634437587096192409307925375250572742039320196516492401119030784145727198082492864100097002950429060245252868124471529888057443365822194591509316838747029613508504013021541225482492593978207184027912338747868715971908979702723183875490658646342024743251568647218017741760824292239842908850549112755703523758035943908871498548644126900427707859097612392295574971864795678245542585603347299685847513935284850592632371829479751106302786541052350601690024000526941811213523227626754082114019027204666562567987170418478311795771005811765395662872480783267538715438349071081174860704146707971479691387364007514537885199794558071582362895854627281613099682203828133215046214859625795477256619661824099618626166727508432207229717670712238281884283441590126840032607372679873070547687929891134108113547357974864077706912797301988191531280172334157167894852733410329066110441123721609364842681545075412617119078766092893201651735186727641164786413355923900231078997872854389850382995445031676901968016428909232678248195840015319481438309855423637840670360246113101551170632601382677412532841033119788935505317617177428759824165360975908233258293609914878217241300447772309618562151496809528399541438084436812636660481904646855216358361697633672773705794506807277898948654161176156605853591573814312301358639088813744724597526786336464361313736000507952451918089847384172476270080669757890218829420271644628240635192652268011594277849585137426704416719734607256895161034303827061066426750231757855728029078499741117367896193789586343883729539137718492082991879795147034071124180188119906270711359991893583268499976873549177498781387396161304575520577828761589969755847322037962567362408301490727536781772238382021395438583649144711499299470830922292679008490535216746959607712937467865611202460240091256822138746320288532844023204476216322611058546505825469084500279656932466978741457238425252622937696868956436296687778727357860379929585789181183192967663341275916077186134325624593080820862820069435748498632957164434069726930489035291752204606069717579170495676355815819925861073737099692760928193912224703279823794720600374700626952847282012011648110383026707378255419760209998772103277849420057130401214576333600199528797209434717325958156469320441266067726396446698976199075957896429802851494101814603843627978581497954517605150895802976611012020195050968096495387370611310944458618068253637628439252638915068162962556256123720574368306214340457745727616372242245370224799405464351926426873491635460144609236227671048464320047608123540636320150291778309382523896837532118916398449184489938089237237545142372853601223034820177785495876119790925000634815376260339885029734124017820998605698716523969341218999201328917211944776090886132134296193280182865775801715827873562950317721761223602800455920839954784747432968731474272138649434019539687055190083431014575009282888464314920059677976847455620099090847677979252538129747711667752079146440604757458619525796790655686761644832738037375499265880277018437036720449653252629985090974890738193898283474755204515221785203387471006158762383192168286529529336480451698599698152138115419191443485528362832789637263851958673222663561305956748010726451337034352299767327686851614074687249782607418835731249521576796415828564810991728406546590074923412999756467831379381141648176789268911446526685338286566285939846021627314607721686610782000050893316707431914773845641540289675977770929076890978254108612058840826176842883136817222092429077130699668995545309445720501535098092317399884487165974325778189716276536276351786908572241805040034202647161889060459973847179207908912045172328588132678806579234218829116349693269443253790140408928786977343971929877717933625310985481196322578647363024242463624305628262678758579896551029726893080231699374766283158190980521400083051358962414011219573329883129370109715814133968357697991856084421037447036937130935282824601923822080081141866566905263289818350766239084086133005202935796933040290429505452455307767048847748665037027675318932942988037141546152234325413866269597622940538306763701993432320537692446046987964393227739819377507589184179093662101297088176506288518076252615195555695604470873151386664693163813571590954980775710195412680239914045850094910606485166446313355913350990902775735300653525089700728127546110734188122690804855643866034586802530224274109640306783894874731798295566998821373523818116758561383940765089221978962836748282601844475600499953956406338382087016813469493018415962518445761067101804826796031037996181313351339045354101255717690673224267495042945396292389733388309442603091080809371011103888408981261043043188954804409454074204045111531940596680866950462921799640821364959274000973347972433624831437727073695691407310046984270215131031895940066322793446031032630947322876461535411970683830004846470096838103685461691226686489746973701251118680404946916537430234214413431676264986129243345572849461349691708357299944455068688096255877131496483423024958205713308117710913010138611241159980733511761196426509967172809936082162405060295181529534777122836050526575238549637674000482962466078728406088766822720690056294755979029906245102234696962379134389825692658445744059898109807504279653674551251453605537822510382182853706143888503592498704209376613171707496412354669695421369620691774723312983625582412841906999811185074599117147248354198603682834142332804631181067385478450780721054039588626858569727459056751825936794545878014617891838322481735727349559841798330993771898023016650663975980048628965543437256854095505799440178705373897008866346405860787656997405103357932653447023326486894654613146946167679458140526238338532253210509497116858158935428728400974528257656195793032060096324222277810574979407298828284393321589874925663468033763697315314952625382943122689241441794448385713805112732073848439595272297063022560466081171782940066804703517085223638436312583700668752165964249344299010205969981229612395384958582958719079740168261923386820637963167863185357324680508678913638653737842411948337725672238242025049783580627893284380235166191563333051360159317308345048615424724149114004871237079889906161705074747456045624318078662072228647747331254047725680146618710133728924768396477769449030323577423242536558246289058596318858523657073483247382529956429202444304392726948373881018843237486355084066008727091583545786901126627355092600754457778602232895141179044715099956313072382698147540425052215546687624002947122456152554016499001640216503563940636539371668582982669708451530053141027925707008154388743164877596449727900792807396799239936398688278705124405802864647296938346199276053961458269415107917804787707114354430563421376865138862994225417698898490522613745610962061805049793388434770570607682053571112565683380022508193277207957671450584976254196333890161522913017980154316709466861706502101050021572047383641468512468722104362128980333506155930087850803366901380711774696751054772407704254560980896999732761776553368039153954153843222644628201472181989271225537337585856123241017027881976841954322642454265588458767142954683930473508948888244714668497826711711860479430463140203103366341473469288515831575788579373091031638171659132856120008706525259801132094964978387906343725568888259013908581258138152035794479204043313165334875231069613768988066792381379142968289420336283498597703324975138463542249205451581149898100435663042395540898695992761686421060845575695863094290655859843814533718633847143036505443021448511246206261088158004521519128574550777440270781421105179979348385008583365681408129664854713339577485291278226421608377887431573194537084712355982406767162580633100938865050750097677968308219622384114595507052200965869069874411074753614020582767064057143245217504633929995722112259938932411504250740792565450554977584262081195155267120752542595998647680414815263618539848596476375558952117297424516867714268009305868515093909076010112213419110131691623522775520196146203842473066817095972870427607623508261754574458970852089236269797607128653375509377978739517746340635460226368144617824045777111994884848967303376525181151695188150062165957796584388507313841861491746369907726498736530756727782482800051000277022209575138913086211373649615812992687175996240199395209884755634161180348509485133233298062138560014920205503433470393615763546449917499825349343649353532591577450787975824112221515917273630859406481871776116004508691872943670216600843048712848046577172533644189738395585931560876366112145703340105552137550786192182131170357705175451622066921069393800953574698330960687294451752780559710883923831905250295519300895362554701904244983115969977245475393429895633500958308889814911828277195822358765832718347459331917477475293436400481931639789703355692914692048864179105420976795030432792900508267771635991321232385461602596559471417940030007573427913125018000220142005022163812278804894636341506352593327286812881227057896082448482802861673468696454642931117140908921125936028700116863151388231697693827242907050120685396312759910743958844166964189529501822790892287973481865116470147345162846055954603313040026465066171102569037708411322057491673534801751243870590024128183312395481911394346208785221597184318900022149504690172789036301920005759585430807333278012938330914462902548073757116937470830985676999971919395854496480415930423089458466193176062707343841066443740818037028778326165299420568979849987617803706064449383907673865865421789296403347263477636670923058328004915353035189921065277472539149635035796142867522914111038333009730747364207058267622435127593956154086889787178531732404019400329462024138611655408686807243092964456852816660259244651171401717378181901740570807290775066097030290403750466008665546098609843024919787900915255407936113053823722972653793297534359037704264490066189184724937824794682097896636844363281953252428588759506221187921896666355624254398725124897004582323169908116633645286918087779051525466265657306185035762744767716314287086111779960200095215244370531614992127824670473521446398167582149018850896753647600667837516707809362566021247477897106154346546317589083533109029100754312206342391122674420273251874794945410096569245205986187391615243850678473112447473272072547409992631503343677281974822599912445645387884877994671891009782049009728375775240232402096386418549099040576598541823652558097950504324530970987822663673823716852240789907822740671422180547725174978696394946631076383706354455317141976735876292094022858960110921767685499661606417542764730242686725843759429505609467103904869246123215378129077053592910140604850478122607233013266724688573597285646526458343921921389004458954942414277311240332317800143996536664445005147067428988487882798366306360243907625737400059860636330898952489253275195661646341030681834440182199666417836986740226273176438935936532911385625167566416642606091252538093564456213428762807287022090578828324399102435387516103180493732566632397548085580860886177697582584196080471451297819866759954814450570877171733687965764239876651024283773278247993709668753978983039321857861751755087448149471904082747776368616549122294737729888871261923053092477396034376067131536777297709913365448902273344268493955891819027776381449193384351723633406807699745319030353985880385609914138283991077237664431238909116166708106594673717011403267296482120371910911819284850807937296595395512214979508533785106674975631628361764480942153673846165791442545056189782641415260756395850496095978135573214260090340392200153616007293490328263313941015061844824636781387412766592161745801772469457485306565832203880479707207377865229392118942371957372883030178058807548193740063799459389299096845845561238193067681490039773801630228866131766891463635383683896516733404296499757872092621103323753862777281474700426751317406734204243408150188078144449469799495004215657183933110282411949650245411446708741387359657162618863193236743569129406394749900459743184039818989693394913897280195181836258013727932665066178140579517005015600488447234497019698799828152345821054236543007136406974564311296872663445867731829877242040022453733640285487557577241309515360792069471761345222925055917062580712594773377574438882849253075101146944688958578732856168715915398937702176001234863210435603540234487385361794369341729666946334512923212130753608150930027466078513231313106192249175799564340389119855269046735706397016716115191177485946897302450502398441804097079968445718316015961769670041702351621684885191845347344516116560148915269139584725883521855303916887182244173695998025679710151205876927749683811048535495637690586335148826064498418656597285648682668572820674340920004090775158580258333868746048596190154945947688821976443945605650071679289213060709166578631706097069428051590194629388049449365545086518723574991834151348210094011788111833420646587639293297949462531996350028752802339596929120846950490161489323142699718522441181354186318463473789894623890074618612526711136209703680527489810966538514768915878454313513067287820047185818278067954961857422619022280972850161173790963954294163257273523638068494336773158388791979373039818568911039437453275138440592795701432988739673969518595770186391204642399352422488541948312341158393020027765943303788377660023141033063243512255082560991541049069050443996986582295936100981710790617369758539483196927250504439724204596719353230492762526473812095063381657533392919946430199977773363692030779747729837100574881874592633476279861040560549751336297036217031558677513222693752645839965625560313719740211187657894533472172317089422760201430197162548394446457211996266602773912166711228913047118432337018510975099797907168942087276219550137860369381273679326758304985417887024236902013706049928841508460538353789969691892844245795540594323160482891460655700797829478264604405557965642933582195851036059068623317909848502206638841788614992934257131646380614701794266522183158545471795141981483908249213308948259999418358070517026208472749429088620354216790588851651417452819108854935347835439070083842298979782414349113121413312876491426551421789671805845328974685151333928410813270502142615988598610029785502751923686663989834722283070890575747735695782990550028861239638211066289549237769632327016629885423550351252359225520995836895078398508802338379307224087134423269923127751086073813253008595384850870036241384820352076824874784986221871467320617290092268984706857244929044347948468563254575731034452322129029176417581969992252019870976398244389546661495186137187934305181575014326176919567019332517153581123143031643317712733810247243627670176505675701354009914540779847824659174276769363489567884566783433189420554008486809760899298216881188346542692597406729082125678470628704736483092135652586285156915182012594302987659621013890444106465411238193123458503079160433449750639568112783789018166566231568494385950302752024374452563097632170459111427693177170259246784677219942144683167320772118863893309647816536012140667607214656862904262740166086635112643586706706936743226216412466935543342016986268717169872323477038677077521634335029217780773591660143728098224894247091571964377704331171237947505970866719177683233548795614691058393800047894835303894171736868986347048186300109434335296963131685738961060488686669386096955711340110141849919515605718316683772708679413305782534109075761698748503302185198732278408071305185032242163266989204557901545499087194631078899956638557160931184398744764227118094988207456831371302853735619078793911534522726527388191197151053036683030779851006823149276604632797230719150438829419451197176584320990267648097534804639660568344174195876343339021818741846277918617993507217816248193460140624684055077251465675962609300056971148962799671138126374890966092483051220717439925913143414897498988787029071459851227608755174273046924658410006258602118614309982429516811675424338466002468999609991632127632205800291865959468202591204186912680709605864501068502336234568913476007134527919106592635063491087697055009132523250782217021803486043646286137714257819612083927460099578008565639021317506950720485884845407171958599299334961814094140031098300185018467690227925818776515824984943298283892997591700353120746626114507076096366542844387470733856550682051700615969891524841685322728991699622333339195840479017419356794263774101522607922862893924485936979071477118295056965012816567770094199665926530858713359417064430020140907728626082791272706175077437475031631369762400064961862029857616788477620287252817726431216678755773901504675519449081066921382299057298540949790592664134434742583139008470715646491780560285849174485520782452744015408583093772394009759861458455806455236391900602524256436544828905948716048482739364851474544078028567983260704100323904166897154642587021932623915153643361822859438118845027649526033340247913876026487056160639856488809726889263938423539630543706328351575575272062791137747301649486891048398698792991754091895794911795861797649570252682889408249733016091988583445274973577583628912204698474956006716867058467139834562659321080349224445853944034509021702824898649746202618306238283990109679619910159486255415991637020898804251220045388887480581875035714028226018906389682788154800895958559081157266971057242835496333760837114283128009730492269651914431455999782089193436356846330389450890357876374788515282185939736225425385744568918477227600528478301234543004773398371467670773623590408600513513864629982823517624304232395661870501663019062329858002351042251538678251748070775950206907747814154682552713572358858255633495657646711151052680809697860465799908079123824401895371171428540442654597243142574536500890425852136669025706555553248267104193132777203788127847042762954682075188334429791719031324027640825696523178907472215312226345936961786790621115317512346691886951255753682996358930054463248081387770857143428244991244179267762150650418980789516134035106734523687440338830004312279646879814708619548452102617579525354074300730233127206720017778520034513899950442306183160742542688809221286572910417584725328506821434115152488737532849657497741717539453557867069160461259792233462969223295428875646883924393336377882517834746734740283346553053827242474434824879502787231935446683345763573627614302653296505206193033315541986167556547293458467489538830724180736399516021785153636438118792620900732108981607583062398551047127741876857149074765572427743828653869112435208551266532985371633329108035475052684142098314248650027466911677916775930228906897280951879961383641717231405170698376064722151383872121186205655505470680511056448628180216002807498042473206951747470576730161524058086062454697882776523654743946337337784813709046898413294634393644592009299734111066547193256275723658260461748220345093592687221786655445724428996493557096883247075578784104316265488368533579139231223424833809850205832514014977785278118180800846328805234526309735823724536551461343264614349233078185909491532129056667597787645471332789724491532125135143133078512093648583096961066881892334989031145651959176533544855893040347241960141256639420844526471578875652476184518261558511848069070238541444036327209276920053537160946956117885256711298090449847743613632728440327178410442674433574335328584753103133096333265686103646079911441333433974594094252341094217390184931470720696160818203483196340304380087723518608027046484474360086833240534268138588091687579710991939283172149023605284304194413374787881887208133544884185602081454034419116647126162888406176139091244369149259131908742228418293460425085429154096898421692377434044058225297717753233095674800284438889355066744860621562294419520030464269948682564202079499989187657307759755934462835357157182772611906771125344962142712168343837462469612108335384788498468755913917468010132021947606124895263275236139564704479598025261118120252146086620577239467800810229636807582075928342003510773241584693572045267254221547359465590709585370928056865088727140153604865323463224897858293259370811604345821402227472285166319041543221584269451796957479895517735060935218764016299753637407019364997327823182482648316877431338519826148431889709570673360143454128694334313371846437029336802219127624074290536776041651680577577195731911439305868114000452442135218747633041790552702964488047540759560726577021682855935679523409765531245126555775207499532680535523318389023661952107603300589826779690007846179249683650299289672847981475426137657022820932505289500895319166428720972676982267871784181337608837352055132909112181612642325188845130302770427404629497575222580846291146702037221678461522317980187681449281010419423953246869774554814640318639360986438453720402612646982152014085373420109326980280385296002868200268830687348368541653436117612388909900360674130538382394881482919916757491196814373861693383788536584143465839138045555313077220416673188381342382993803681530984433369666673468407663030223358862618424389578477296672753409452837004753189707145134648244805396506818886595216242334922410862607851038226825852119151067806735253211431820142900823472498550728996634838469493847167104878267250740044074074052686684855177044613712172963022985198725813301358059220083555500504138014123202051448368103662970587602096889895939914719188931719594261958164899674283938527597216453891391849951798606795844592115687177550113524185900064362397904941281647151426317681835001122569793400197542956637335222739747530168833851157040768526211146319162507949917235569413880184652036958980492207478134406152929265745392958157775514444529518690653835299453177278304186105157920047074730016700098362164497057675166864163404552779211912335568415393785439961819537978376203570842047713086007666423517538728416133206649463123336865947320130880345585007454149611328743230241166083761159864398514559017393437247284329014613125468367972987749519080815295978373713756909921329916553148125523260922926539241250365067825876530121471587299569378307007907120161219076191393382174324506919534041181996815103521161649202280385431424286627742356335168702793219986723084995473377223265799750228635286082166802051711496783844144328450197238576871769406723356410910127301476146503675725407188672226224674755683911418050886826747480333346395888192155098940079480627226837569715748019173618561235108181567360631294801571289221236655984136604180942871881739828086840122198393037917884893787503884965103097121755530502405414806051038298874985676848358565434361087795197428725364501113547591738543113285393636112424935581356438207407999234857513791449933557257588719750059256534165466943511386100819232217827286527415291411655891688045900020859875122091246686262586170965736181922239552750533017833798201057303139168054484943920779945004201839433521308682879402213592276921229005940977470589275129717606877137612080559687998330183668504834074247636885926407403897679458064150112048553910729745464223197095733366071026731648932143781539585873386119011228833511743347530976370568881972911190495930820925334380399028096993519910594104706111882502669560232632252948257135760288635171576922067796211463713941696548248484642749245364226636605844130845549794795978981065860952453464870933740945072165511643896736806416994743373307357402242073343366775252736661591160877536209379848942095783039426729354135819191598307931458846927081992863339412717131038800756480450785991745322343692711317641492421680496337639244139121060965651050949715936401175995687938294862483354376741000439006228950876245803089482330601201726835753913964124975653762856141636817418490376453949557039956100643072304424720088351105672855196420664041278093513425574175824293550573137348176868121701881440184272181990620551265779828742700213594924284440877140192514987413304042941015752531607029607762641780268972449714575233251362531635662178756622085803242776995079839268520658346434014550976988623900480742747333125215823364460672159647345141086813998581310347197476051412721262092594628906186082326760612497107379631262354829747753273145049443262262795149420987261967220036387407645515407885469560165784440985463432354435731618452066547799956336011125648900097639302712944317532210620646817464240596487058356332332051646399218510427518666813318529039542528877184544879950179929560270342054862196200711591866661618580788474008690047736006571242948784844458093068704931044354410906721888584277901016697457353798427647556356374324720203689305556581172347603708377627639731328344144655671941283667768279517139899427896383199977488277350650936790443960705596848541221696222474157046958511044549229796008870146328346077419774405003421895211949775154683365677068894348515203086879385580106285872868776765757175896278082772306342758461301260841032635940931972011928766125702259652896421400873121276751189608442139193417679451251874534173296052794818848922705166259102933955456428967755204338012800327988201943906099793967096867175046231099769755495203307147998915461805579195702227737482302837384813287140742600688254859441198257060569778497572040392137404741775028555878629080506864487774700898105152120724326705308222288059927197019844827065810457455566539078993271572873152626060167417750995575853200816158317327791429889873072832633618329293832760012261046893122312760470409473033414275980979083630611328981574471464392834293660835268554234749610752555431745074064620292781262178306523746535641539511990849683176425801591037485440974137362013199113378102860766990877841517397003959388334134084459338990519592762878368908901540856973668391531556895326604884949869277505218550669190895133851432378845013972012104605180336627910867825293617071856950559783383256555644176595195703133776949024724634153948664310026868137487901430060152609123764350642563566910015277897102890946213899406735389226844968330997984161930708410204748983092459786631776732393725564617081705799726347419193516110783820067089658383306035829054707038998939602118606232088498066197287597232838849322204055133439006898662870253344023251895031491350515522402435915595635327762054462871537155309390580500852387942099790865311118629557247660359114216330161963139494626594025992833957638078990391397357025128256524311534252728467909045247045334465827828881608320294231995913353643840570285460259097842079168288113548651892568457677160905104492125454032607591934295225525228852167024062616351158897013409553033490864021622699960730407776107384672734067855037062693175835242168852496280745372811377228314185049549147070614212677078830158361058921234005217340729590154190772094433226612586165057266473993117447582862546676491031717315228487126495522116106722402408764228382971497489874139288837068497128209447070708472350522478303278498100031987082235888400290669373055487964616920564330556612044700612366782979704988259233764787397892029877150764933735708916655177876398176578590728858583867361913439735544992438901851567484805185871838698480898721573369100880219160680252543421096424629927430203763196448384325432229634855361415472390947322698671112452835512257709670522903176350557961938768911827022771222589519977319097815618123474626678416369930818842792483629778046285734849960375075867723992208148690593796876280433735618846874527502851604171593300237140107919397308592855950693110315699712466622289539592850624531972890365250438221838720899230772069089738971674394478030657988560686362410332737692394636087461449443157270077788418255388769416038609040490607327368612856554719750398478035605949947857941768826956256875097399903896399278584118212151103180775832197842732877285330839287333416207081927598326071465949522106469119990130376244322828468445899110224344797145772436895067759160610302315410854751604243827771621411502232097975336709992811333386829947629450109868911573162861637790564388610860828668487121489518259698739618117989847614095047905315333711312513111668388974083661093597531013176888572495373369441916154013483959867238016579388987123393548107026723904374728916779962335629578131815663671439623047986988424475193082795386248431445041236000967208064338782891867303325881688071525724776999001848265289532164832371464361107441940869399128051017405902294325581970991999252961809235720689878074712397724951609130454591458353368467338963953140771303811698692513694454464291652947527911551349781778360353104520914385558857184769601424087075010822271523019140674673725504718417083673440332265650856761884732770676069592240821933140097297535385121637873908143481161874316172409021241080464569240401349338164388949493928368891825973426260404995548143134587748001999202813307468101140584142991525254410356859468530325673778718053360603624450834603631961265290080035848201715691955116801593413302415492370668948668941607903173808337028964734637436282088743502565468921046877462440932945776515624030878541129545912828086737394154082553459500755162727273817595208999168889138542120870970751479788506834548313623730615089462260723118666057512175694096253686332716075590896104127991708788494376356860414529882352779043534726729621869307456608087691419477441100266348123161717517143563980860892359447739005759810628439409176013456719398374362677052730756971929361722478624461355970635508234731063350768519401741393600568020258158844848774773204849750686757608066861047632898295415867098713971220462730651739572897630799376419088601376738967041628070148695896854603545961978011010944901182401751213482867808405888237248376315792100354587274751229810106713575231611219205580208013111045655955420161808882080632977292014766434241111632055445353173005457206531403827136746655295475671295381733896961427816730724808021038144756350716200523427322430243474778998792285453367692990659752207156940851800650501802880349736238695812213542854726982208810760862345082115174626325673908718012079801573945314149013932303440865318582600152832801233112588358474889173786127218870397230972541738647547834753698882815989937004939272308833914087676733552312908473754904686648688884832728292041744292684065728997173280715590862692429733956098326074189425748788546338142212379832720973621135704787148722940051451807045098018168533385892635286839140689489231605288663786080446340478633618223123735406260095236837850708500959323886552936860958641738968755716930325610115116059578003056749978929938723274631321270157533115749478540111287143511015336301169205537169097038461331803853472118567702752051620748633195267225560856046485973558712753738919730065429635816205976673518011591317722227692061171212914909598471278128467784085859176561841458199651156175701828576759616873401422413372995904665514107612505792129454357315426712570237305933508484619520915945235967191462101557399646703918426555681790590907865034942438503099656965540674636214078285248476291773032919284473892275598421168416840130127490621141922890301816350581612765149442249845357287229858390671437655579034334015304564397850066121582816751996676445459605351724042367230166773847059915872733518786187398162702517007118686222587244457885784735696754146561210341649442899394683135644205715569780722175387761463328487237565965517246409197199602998279744742760578956358079349099418041399394544160208164348211522222026279272850139792518741873330614208381377549306673678684770686911770204078790045669021996042454036043903349578506559052494325516095854667430464052920797843226638158958364951764013522113374888381087793529204118528837802007233755964137939244622872666781211772586268231304936733966261422946939766956543936884928728323707867684496089194326617814287070226274905706586192699561301363164350337097586404381686731790304131726633452223249229131056188459329875032033639911169994039509131502452512027887818406681071541022660896205637171813093495550026289305081623676902005970382290813840030298501297955587633619922500780954354553688382913875609940354918455655723765110641613749579792761685786506954714854900771992517148753676262405599213821844462726726148090489366893527965008975709241993036522448920583020010494319505776292134514887087955449737708432436075235370043446865701349959539348247033365625840441718386693531227011822734142298620204867257167252463817483606118588256493765723354413360535015765983541485315248783579943372452575448366670119529348221959043769109675319092731659897945435098629187139193578621143014588387227353745643233385109814187671986536540705065107092201614680625495738350910217689418587355741485436913542975952455315764842209286269525441694233241759359365072826888553449957382643256277311054061163456620240749165660120967287489491153750801801739233463518007181488956225396151939683700190728311442110413659854556225697926738057724746429118369499172870528730181992060514655726928746631671248237414578718651103201174705640476995821830145333312846796953494233441280560465748551372757939263779836968114372835437030857976230711741346159515490375529273040227783293061396275863514877084791409667608596635360066302368628943798043789918851136804821944441791079925713045055472609678704327463148981074262386927349509235921335458939890684307151989741432003021497105433665575681946477631725945226226857011012722035038529461116977006754946469933607310348070127031822236804754510019011026078676768644716108155585477953686433105956463199559830960443207338651657769090652750772998755613951379957182463918789223109709894290933574375981781437544436057728141432987800012437312363612795219856119208344812658230713092756165760431592945024926720300580160545396959350086934964712349458972923121076828173062062797013552278862137708966990180181717843039492392046398134100555359356358668336360004884218382731833492290810083100736477278259130486547838479888211206885525983440066840178909460530461474803638765171827367644812145364636418271641434994797793852288712571660207217035258289009173975748195997591260870985997983073088707517353717000312177901840294148716223288667561168265994290253105416908076580038442188467625654087542741966307562089251536592562076598834601002868076165495227864316047418007316191402291173042916615704934284774062660660749264323153595183908232477726801255343856534385218087323246818856972936710957720026569087532696062577849376463815451083247816643974080495721536531187378206132806625905767030932435419274644495702982184740006501291505872828010165143285094652621376328559052788110797998758033821728654405340978039637423996017141468416760748647319639289032179265383058540357260796911756012959246122458209230020493111344156490866798775877569829829026856031108989590054521987926511190546338864598268452990122291490093636564555825402090158562828317060015953134393651366136879688591522275356725291639094279206877747656989676071389956508848769111335558253341814406902706552244905912690617339646861883705319582811219500692888810003316630513012640923064557313492872494528841334382018735431067422291138044315515342534966690761865707105838306917816300537891866773831303857979392144343997109406370913782160746114153528320596997155389748492967074675127523004456662584077228786194926430687809028732289428561958577672150618908535982521983434751734625590707500471450545095271966356317487915747159101860232832108330114921895958615512391100749101163503218063389345786930785448731703949653206346221029449874927144407865349845960284373830967480703431375953973307640588289836933255184690815254457983717684830998425209512767888786701058139954584630756810646437639874717312561079124651012864171270627338598301189292703667068600761544994660595758029844302307896552481927715187208965920352889223139618064514680510930945074751477035043404687252307711129355999541014528652016889314644035740502230990457224878556917880344641912050861168271948206618799324493850084887672399937973574698545682580641727061939373739801770067990479623833486550543560234931388986803634178176135935028676632935677619251307194967424332068514654644336139187747612896984258035471218136454239742438733414150663579697987681070942802724440607806033581320973497380337221149474045984325985643194881410118521058631851343904383927800203291527606292093666329238076382774549388093581161373593392091447885373241450807913076203971576993124670034205889543098982482171029131459068344073763743118363508770196276541077792492031249093729357359260656103296307216218272500993346333787056897420060034821640421738466789255018877953964613720655790314528329294115460028329273479428536491222961071645464676062872362701212362696449017147375020761703755208704305514458605976011071427562380562335555268859971533100248811973701697175384667199634665621363307964353481292720448459274500443731080278924514795990087666840900617102530295678588170582446252714539983510224324485864053604877785127475427361299129107757323069200326762198815707592490845700078861801220882575078024621114927157602270929282697931450078444681472858125916640604453152066484137666958624757340489894140105190985559915217188125279184637675799842583668486872774532969477323789594368040039296900539747980412249293940578148181748352743961944862658987242702806492106501869143222090388248022046605817037295006720459848636833398280773431515109589915829365897735759484687407301614921277610124964683918957037567167278888168534333646321768336573364799765368700042189143022824449150506346577823132442029689271157297714966084616091185570304788704178335233371155047836829698410683096062804911654405187945117709818243413065307036161176224150406295534256781606205994834402857468270064311020371430986137371811752214286900009417814410851193956616500367285303359261682377085993291730498014163852627078618021150412293322045127989875497782790199918963031508264653368534690995783953802740938038909575968513954270884873613889206351459457086000567579474336156108667686456387295806456913854420880804432788448645723600820486488493564432876622505598466488900380222626442166041953432434920314255439042230095143090282116015105088145547926095072333283067999907569362098078025641125326369780194093266621973318264417697277417021383635681725622703391265095157476767095757770153105839128160563684452343495616660647339109348037048595089758669856699795859940386829065639488346126381034054802381390919458084551653704074491897040468677505981649068860351582381862986821953557283386071921153988395856546826724508795727915817771875276073332141976392259264866296604125056634442317241874854048093580363421905504646025633041871071235962499091265952709384727865106141235155057869498385078332098029126995854233998333135409245711198505949561598798788219629335898682123721687803402433737854378287057632384153510426452810323208914808853640107083712360164897606973559281841596305259779278523419888690860775345901055074656913095117571881747586259953344515557150910298667249771393856020962078586128665936985951491640741569719557460786230206639554365056213950702606076257792531240913425558059140587375497952837886942542436426240805765991794115081759555258513103534858207664630694147807429975947045826308866249460240894719532048374505279880781081974014083418025884254053542263031159686670073407993281329969315180348430455902540451739921624064770324515513314908774543628161237024801862757471350082083588491571746412266298810337322441447615768372687593686154204282947865262873618259527287265576901534242374256965186835147583575269886114057582042226255242588661161201105997805721998334777576443539223497364302164600603329348699123944835735053748441396465282727553613329020927446657544507366653010853014100439896779145805980086513576653487441407529388695730282128177824293853156296705082317023947644355956327667124334090287676050692185870543049567974104569271577193733744812601838557943774397495185009557345767080653900298304429008380078391033119653118407164305426113173332633457362206061785792743727938172234705953132535962036637443898359842408434431106647801249514682477304647684053282462368932711773764064585745261204858632919668358390013652931795002099160222804499525536059327507356973597291958165424707355613292753054818860707521315618752479199772685191269587475634491382955495271484973764018476900163041316515612893243438233420408436279433541809940102508517000374086279184484291036260438019454390072316133294365353117590523647845727268789628840102061813484793191577596800451619920561353659567850963852685579852385048930072239143721553736494956381639967972413198585135214855253053413722423005850166512779864580093340967806168381739672687939837972259806704423518768639975385501832703635205782130280542081125991619628508857512898018914944012142335451432000826544729344110010409347115613452915697067376520306286922159368214794814233943802253329565193378740196965265758348531714624120705427233646589387981381583079614966187796259748004762997392391159778779634167853487846229416200471539736302852004861712449965618568968990977114454168916555066193209970315041575978012387195940069834881887857958252951117286996102565943831402327321055077276244389380302101766245150504965579403280139836831606695948807974781859304285673309002795128963119266930612087477132514026601604622621316961261082146864610245431985975692244576310724608292171803291166905842425093757431543163047459439369898215135280238404470643142385625431874134831259943113867761477494607845623068836803302275689147762493716082989933816998995081784996642022695239191182106720704597048104454513274134940375081724323101397560199430804302353914241370190938931888325173127465714834018581807881238635322259995397262226910863068528079555817197004145504837710364857062923131480403893090232555974050181054266989752179853221704163587604588585573381180854991882821498944138423148903366825516564398748474874560970315543235440228095399389987496527326391652656523795490545001060494236301928833310743642714684064807588763438203934909019656453857648132336134528113141478163828938020297567778748596531173462065768841576737772791032524384718979018761164954591776711453023659053207121849364469604849536625642853843123258200082607372853614757037206560296517448039434028531442268297415560896789371006238253953948801020843115726178646010861377828837631160234788809056809073775628031096430455312613149335887339140645735147345238553666482436453520217544783937998689662985954616135482503997241829541354872977006980660530862209808262583627174211254739123013002181472249451766497798226645233304998866609216595467726631042924655155056230948998883453664676361435360031757164664802941537515629228886790191848107243710821660508351569274755876002923622799280998696046212152211307944134047964808462563905110839975694739565514465984336683599558192703977665128781869188495091991509241572222240115997357080988775292186004477788180853023926574269298728880116496480899577489046014377015348720283698643580743408916386286314176344091317506759291677838155957790962225130334009046408862005385320678112745850090103235144591947067685991277539052761049268282661149549534002348527252153777509446972141803593275512933224884598382024104655945743936732729911045603866883982603275132911544218682668857875905605174339658032655997287246973225966764575942874366437835917575709580688744060810049179686670993661269239663875969668062386005784171297894557462699470055883637723137904215633726042233505024383783074881373310877803125272820502203251007502184656728464584130076773449897323969118368565649324317806569589587333232894321702008656543439484301746346853699846450831378965404897327295650511141711646790859512965822674568954317349390809119718316550494488333831454083355056589313044769882227381096201963519858491842917477648540944473031629221393819605500488534152814230933508049533014739116388047564234270558550560324067131853358641237313768324248787731943947548860567679417530348618549923798795801026395639394013314526756092681401437646293494491265505453269214370284984451331968589884875113326154663662872447234086649203929430628299266768002701632895908224907799656128304697390694857606857206201208036816355545049320346810214151052982584757269519166240783809601708141302855793888658426841705639173457773273799768281137487241662575965408779612504841810397738527416980992923789120067882031893054236709816580915995308405881234191380530987308855434251889699989475300451708012329935929848347112570188067306618380878314062024250215863497706511781066755415494358457065292098897723678337619544588797110342690035064652913508469755294965516190903049068953170884352911666577086028871404301551438585362972916924462647321237861765676299452628274801815118348562097386938344189004722512074175654911043038089998456910991542867043121318527756955865824347150304076906364292023193746822561118847661486320545229200305624939559928989399405954504959507403887256410238667804489001316701297700536054596036205437737937510430820757704068451171061958445891376767261187517664136997790234802075638207036647602046040619439527364893936819285457959446804190546619869659379499461569470653535261627025422529180739893423964309211744009145429502904732316116468896596341758036217401847947989385081032553830421597883424670054713170349060732276135353512055958138204224050040388201741760921162104336819061240602183913402864393003046241959980542143073547175246910453939448148034659558566984921038510075008992015668187950822775434498876129572278468371661620694322375593828171184366957081239244384138091679485861880414643886355456368177677616634491907457059923017226052413311162184482186682524916477876337472779013424831377999246041667346919489507444939246704134608499026716445919120634919036737826148613620299684884910428485361731115685021174721133055792784142097941494169485141672479989248554975960095908504580084874322636830019478804219316208463406903808264868791332205684465116588223083236454528862764118728747026096606040605424753239555840780305682268810283195484221718233002553930254324907316614170266539557505533912773035264111392507023978103896789653889035511184885558059210771444412980637866479304703512343545646634706159550198322538610199063584457987567412653913562796369244153772872969012149172020086095365531926983870188537560432607133478116595765302307885765022074788416308051497434600773645488663646580489371064121991269835657454460941091822408024299181817758755319165931605955007059452194755730279342160395986634529111374768820252596351308984169111706527199461073626240435162560158033303293992648461396906051739995105229019512547021483994754140371521177443157270228035976168506773571367236824294931409852158320714969298572160487867764679017566056282128498824783024427028765793560244222462813796862747617561499755258404876386710330184095589565180886230947950918335214875337771166768945592669776077594949039261767471440190272043427907337763160397674060020016080237703001324003082083998867060480399396460584774744749303724500022628544854835792566694171702656586945672055509466176044852883296931998261491897579460546470167611890573347932350696784063508836556088882352952028574063473574388589987613904201777263288587860075464924575202080005828259414793216129863894504724414985187052939461572374817914288798782551854836238324184747117481257132947779039885002212886916631993721527000751280343679467272595994539063564444349633732283363814122018911647703688759061162482370841725580199944039785968339411988084755105450721156922374760254947920035414984018118670230521033523708002363282770747195206555886229265705092348907959703865098243144704902591030995849182985968127685439175997474781833682526071554324067859642194076478140671715623917429330336714922113240040255911463506701027643124108216936707987550971823650824627068711062916067065971303812925487225132893102893860744681450313673214600113096244063820557215772268842805033338461465986010482359976322124042833674968523976499682592088813447887056775159321633540643222682203725254242502265519644040303014883672271860006724523277549657164097562056510219048495978570073347178749191925096114557064190625735157603090436495841439805850501560344172381762493337336494957557436113637357714049848210953706840292973514747768012537339674666833120245259469026118121114122784401894874846608880748888699024022963967446415396048747933636127380237318866657234046078974052956288545611191234240325349168266881363323778164785843065030269429384694081384750958560511564508635142341410693705468788643896411000638520554421891610620590250999977481345196758204163359495026844145563347235855328900084911756733270718639413860898444999444688938301899440715499908243480678397294591872932293668640989774436233747188697937861488934676005979540576927706495084760767703150805962655862089554407358301564306232252721332263963654648570687759048806780299191284484097082022728513052947160970474603058600105146484000364354686783365799234103184658565572918812617839955842424547552423110427162903480260554022853958168623516947644035247471733556589515885132837638065100765192478968298101529151675036570980569962211088983327525822764689599815390600175148035789764412343570569044437888316619404277130402297870122792106291074155720194613450449285426537132933297175968852212038551504906831300514881387120504017572277976165974289395230499316536763718796124695471381712787727473054453178011150335416847372979572065380779073303650517671653764350127590079490392475828366790850068476109117087844753007561003777581941803859231800758097604121571412285277998975733311492653885245731634205023097306905306583100433943012615529682768239232377113649406470260373030879085530056338732197833859856476376716290209346577108941924196276079095271178491624441320101623240607661023137165389286495056858969576180519521931464464751726536746016472729832452183344669680794900277060371217770436280278510606458082957656117863959873553425068303492431182007376691705238015601292301853432188887695315207188392262569405970337176772274853540659704668253059272408831935921110417629468265670506554290526435797803261674291593242243940470719756697904928207478772142209220481321087902248213048194599167092000978538460225962096687833532636942044904401223192071492287813485498494579586223529119160480388522050588259074759290519034674735472436642337416729139848768414581760915111213611395363815638329697144537553256735439175007083811220240099842062410048165888160133580801657887757600882745029561643647029908571426660705965057844910655652677163561125273590314750205821292149520982044358838424283145896328337756260269131358821769175168338411635224626731315288576761785023465140828121191754744594882553895706997174587741597747150977807883678634990843881438923358685592790086148917129574696977168852354686754882759228206860393288923018348461761807814827675726817921043457794890395939691281345801962663449229680949584921284573123620719845861237848998331617612306560696674635272564880426073574358135423100872265448065131885569507410711952805552735241556120846442653398848330437298176929312831762781057213166427440469557921605941620474299786585700430993982613481876220696098401647981850819110408289648239708455994190917013494342026601551352289656414341659036716006983715621482652895544615776568148948823117490080337828986104050723066162231882954311415003576151924305297519539109465298900571239860893049574543812573474492952399899932823943148681089901162457867856004655694363317857058325086192846409222774635155528074494108240292330614546907243971749589501605380809107956826584904038097819570783437082841148508505439582981054884345827199839735701698582196926003217756043543624465002585368232691506085644906328207524089260678584616075064703196853645491546808435974296340442456242658924621847467249500883300625053188744655411485991753933654211242537449040681736538226329827441988119895604534965885642337503223515467648577221966830691152679333431577027884810092762582319739515921866894054889345568729811452514863979562180813499245758167474619749928400775198105087270197949942705786781524323503642420324523007756569363615359968482140618341257862898765282528811913665996460943725839025690458529961280831517372700307950092636160160132984827577683640831663380519080924248844628677509936620163432862983684778878436878436680514683825560414897183038760689657542496245860293976508071645833632125657128933432991652369147956978870981621878025188190761134826305011300641765046278518123345589818313385282301887163473346831130744501628441759392762181742068927198368066127878512545650584311487191466790604143245524703889967768258257592179369125981273225630478795646833590828286689298726785448984997545109165487205352804005988348915119041605659087414965694404285076157133293492233600245567587989046894346435819465258517819936131518955343595622027407932472522941692685427127162568059121764784647321056140443093774672101415759467817230268438494178504531363611727517276472260999845844329118238446829980503156779444549413764410997312602858718347202460911766633803909476735970136115444440179657885997215147888495415087370242530616385179453300700002554421030371165411374622889518633182894382448500424773767363480298201823722984273519014707908541428527332152709363472471968979287253977004776755491002587747255276619366765232319993523430966831831154442547157349512102254125712684161084015709454517233144710911969446048958283253540940802870666819923096360128410601681311587426750519626647695426706523573774656458421919905416614021803675020090211528143175734322350246593566064097472784620879566560351817986542215350994412309649928698615538935432924212626595437266339871900905797582105539544388908122278613141184197881362423328949682600422087607258343315829455977350964894828144210433221184900330169848324293555317100843648310323982396269226953539977497410973152173861153697314519826331335290562769324670277574910013397568338155824845596657946610534858408217111222405975595637124023474838117183196380546483795546073199453240335262324593044717750163870710405215155467044677634702421148802168546907225648145479048987901772784484249386183354662269016317626501352900647994557656150632141296606623335127610372813622704923394708281180852195589092330926373994557840596764807899756711039233548740864641441739775789818083291729868458964783437773417562141269588886407350580384910726567433939947491194827632461806855301401299234196682924715923117499214823106896441926238860779472023356514235342721185492629995745005065350778858883761499833313256950458160083041200682577226940357254781932894064867818152842321937355491377403472221333773956010364438626557580061074807421724531488583431248785593197951032172283423299255427780256737912191154629436665714719558212619105260771442806483538397705665296087786451046590552711063821636405147858561509614701674404659303952850961290951825784764837044248654751540146082887093469007633422692602218703407692095568327661556460636325026768638330136587548917418407249602092456768832318233660586307030740932388948264864153117060778568808775416481273700485948166058055142076201996869016295248727022024221110926516617797759997853624056113842395254255607039143154538207352019639579608086761808580943212833252984590649008111779619214418407149005306038812430156923729926169087846997984095006694910930916923526094382664098573299553555632867760970303211454388035060332099372088051591289857941325914462254912034176489832156191054468363185681966282658484817847398457161661753525926009878216584841833725129404063558541183891437185549323789977129639657083200774836974400682291402334263378776820485070550506684947656555437323191001438465293236516140790695351034434826166193689004759467620772146804630282504510292405639805234463982977236281979539135913083392400937749505958087453462922559457684519557486130034137608854743657711533496286576711745250605430204993773169237393565415261645473111402338600653351923537137784050620776124134374645085768269389994521871745497812404389753309259845286480247159736961466639547614419718544253399558262037264002157044272968315675176413937894486520877459711861235644225631893031541369603009966109151377648337341213573191748318912156019423781313942244829200125383412976748631098398684203479405393654695748407870042135077054223494704803658874456756754164320394908324150910502110388974826111003414666455655066723207981482114078324484567086249253920906928593897369268958566541119727740644449865602991149516680363908664415249882024186778665639762333313383850662287531115177127578436732246460187805737168298550327222831262107722269246178589967689361889496597943851972176493397949278172839510087350703483429547432060310830678565680799118765654267910403650077942834637721617469007811818980834479692669977452814598784781045783122694784867529707531222118865553229415244552400001851221781354031804385445564892141399189824083555822593687575181234748927470737524818742381591633396966574794670021252226324371232266773166819274207140256014145114988589095764771309281114985096033691008758420333341020540770987034932999286303741153511799105353600873842449137323074402556145804236012144027522733210121452637960644309316028270168686233072191065636919319526418478680714636734044819664061504615014079040905951845304196318731823611349738080730246899678346610842546423273674689441573726220978593911169436001988313956318546772386570699033651877288897994929299153549991387195618344330798859455148800555866633671725170159341421971540878255490866351135142664719214428112513336540709695480864321793043493030047794079607102569043561574676788014300536418679968783536466044822196647835206036616602372215312446725480450983124652708558225174676520771896075914987348026598925511232166865097305209869511385613387714745644106612412457895488839807809140770282556827174352831427522601422482664290253640992227951379642700926844026957340426236072176548613418613161769390487780112242286299785847490617958174812616400855185308969156934631964218027286071926958052727919013343939280162063234984470901018036838593094320439920828010880608304507799617368954868584655181694581429552770894510572797449512885099445359603102741907388007435895116033702514781912674787036552475075806805280617112920576885692365092692956335000126984389028037631676257780984353498623921707022328574327662020829207372632476288449796817418856820911572426956443208088694297810021347204879989197372193073715624553524179628776115739350261237758874750686259268268873982035156417247048324827711379638508191005886205513477571805831406716946318997704926668148858225329467222760160039284423864833896502979330445650038847006931798669225823035967853832101896294315756289466525766297626888070455055090255331587305887088587634533898297173486728236300438596674794836207422225133523522410790551389667270810633379486994722629914097860630361961691201397589405313310615723462938323241159668768696379491908407373743584579612790026890966424653041218552978350025644325101962071219616040648696453941141776957986337422787436887913800780919898060484763065942097935143103376296839161652714329177970314178215533925376283370223440578401029569170676815255920644178423304111594901453625493416287942237640735119501336353965323548895473759619456966759068926413775079868170467734120126313387654465942561797755322074730218324794919401997634583558816840011129673588559492749687246231433485076089409462655468133945127779292702343323641116202656766172925311701339496022025415103441552792513228900950114836111567801948840723283867893087018257768931541957836591208163716395125270415644609911798775349309173840866098880639159521177681360927304085569371995373059898071173926469916443698657462128864182678808218237531225248552511680167018840213258992348669373274672601293115995345523070616762533641215351316417435406581626972556715712610892715404362415846817605198365830020151158109545314677521388753712960281154718475936012808337910506014780457541858023230647843872104116165120490174639126350013368068458265462548929689260046075110907224983667508313435459658781639680333389074189602021552495219823029732417473225564366945840994822001157189293001081231257788815235032029443824338256707719638496239901828657398262523604390902251830048394531254772856568970353550157685686328915471395789827520040367345570101220361735933941426039743559709002949435640836603820910980732072419994277683346109117236541339170896997044575756160701949549709227930615421595070005723378344687719206122493268994820814967913173739903694094302309093418240402638562757279381611422190126588356023873690117553470773003502384405134965058623291214399024512563687980834161849353159021814887257099217110699286840193956854750187356470830120640322036843782574069679525931395847574327952220375232192184765633825165242806160581992732808767427466879639921489792084793393874568677958612885727560176772357399474532914859650332584739612645382212559522435147557758045273377128271782817618811584580411762041667800329849551107088077212307333070177369554197105483671970424438679712331064890764911611213426405215252697093968240130484126770366931944253940271961266285932665005773402282425482093153913505953212296209258128731361776871274701351120719470791393912187581728653839304409806069360238388738959140561222584743565235278716693790441593393001120425745069923434377902649739672079631281838890088393813027773912853333282103670255887975025657154374636171880909674419015340997982610410613188335603870879563896072270250534555424611597920645651000614097406798887789953553230943286696829704124152628311003920769151009796637135870293331056375276644218882523514640775129363669586884598605947876932831216046538005215111021674253488857651669354575111210705924921467397909209808324595690161042121248435807884793309476290382584133659304296944751926586827620884970226981369408014278711266327214885893385824514165881444442488783374584676288303750330989741482021653131593249648051893434551444590547975089025245274313174086311752641498251158650460511785878242554487584785045580873579681041112290696483327916424734439301053748782221356137929140343780293715731231245150045438208479106324965936031710249692862859008639056184046902697127924490650159911520080994632629922308444556469494826904600886655831791858516634712215242721606000421976537272540620196028344873283783039483852353520735483462256622424140598072272775031110598588776509048328518241931679932280338224177175806865125228642295351019494699987550252468472425142327992204775412762010128583470693983753510188050156173413311513489919066050257649562600967084558555683436189274022196075013681508043468178569234973595326669332634509154929467400909825840058354595036209970526360404274513558544506200743403038321383531609508474103324734119909485190166706728598496188003691295730460650805299362717503494560104176044509670603330130306923064547952335392602411808018924582543412871509031466085301034108822714611175646572111091929411959428558801669565439270336417972594063177786093110216696384889340738380972116983056895934940987147770609423344337563584371892431495714685627513894390106080727398552698933455041109382805000006123903943549241317794261132467672574681908593872315895050426911441869616955171723438554307083102251700286710686968487021467533524831367350317627046986592712283109844634206408488771221512545604937020782303082296587530424891911216097035134767718459027493576744629746247652304540463855368839679131620283627365868895752714149591129372542164213994239154086382368155775318340672262275905056315034914504233091151612523393213689627018542356234108054473256304617767483723517705740363444331030584452695067969272281307282648332298769453228149542136885576083292781892921075865745459668235757165858386618731894683250148805994955201840612533823053964546246605299351210277290936579734202187234891213127393713356297258553085118920554680650282740927036022982037956749764069335457849305221773804818500950744807515891392799126576514827798420092015112363141892746545026803891458593990926260816466438831264461550262001965467776272870790258062034932143126275917857245006018989109994498221389430637039803066854088432928169245346711753827340255518455025868902909266514894015284283461856593477967059162540176820736408478953157301725267721738847983935070423170453385491777667495334006459294336562395022554729521874258053465043183704313207667224929751148074704524842666008146949291730831937594313097651049105036882797605840096638150445301432239232364841329436594427504151989817675038671738407402444783000681280336286763716524710911918962611723580511597500588817703372348267764819150714425273133814709968540813342765775688414587486930510131496021647882859694185735022607962399337809567563540564282895885238025328475899965624927006230553120934943717915162321988892119632803417085738367726929495801746790515074882438088465545596509706167661450947451096270146393155108666620956383756647361724910478739214606859574209022076778969327575564468296948672661194339060994545755196747345860179495606463643321200650238782270603980986052242994249672932291141191601836091854424592425393786312558527778393858283271688554868467538840258988894868515915344444422269158446063566063106266759891698192532357162408444935682567210699058762074794574774863239277707147718646284207194588312961234975802579452038980182201791148854307100314619966690363513600605622815093255516988675986228677505169571011278969493992133842126754829386783642861579481946934499329426131942819851002526952655078628567265487962267993979565826264010283079497573247942272951201903938134155237904980533483627494602088364627535418625193600680584577238194720002342262541380732900044714649746017731687919431368616989058004384627401139981259228395744674264148746594066453310253256324076273353246492632773307353171137672690802867608187325504464546755356841961642521631703134819649694624493836418670856756071298195739936713404328907984482342593117483661208791132040408986223367068546149683449379421872072154563549906207079407757850038874355751982827124251133917067900869208304513984117792215531725007739633835601528771811755065343273122443368895919922066511937612980333803728887723226123407595692680551151848351111468688196415805362764707475032698948011534488519896380077027177187412685749313644725253333500601406576070249241453880112902120675026359907269609692271995550576578245865600800900139861698622677983158425970533246396816184274922575674057977310282686343165710192918329901673773281215239400113599335421456572516534635790129509955859870253471010684559107828746362340985577583630618469340973847336740111942448733734548193990459850937903661911859936357612452590040712170993181614316037079143960594324032330732709256478598768133721413381182418787523666426033817743229200118439452014451395041540073072222030116614064960637714191480890249637699394352697803154150714412780708683716632024319073516671802988747161336235454595837648634698088048805473895499342535865259691453554550987839188455340149859905010096881156928165383109118378269072106760790965597434288053010453403231106763149364541551853955383889390452804745349269059803361030472942974750371940577966962594952804827319293783033522514512433459940124063062566845114345095458434115830063642164005580604242935682653613570553146015985201569505561407831295352047754619528840623410504794093371525440785045674916535890248406862518824444684665497835860233892886496393036724812597697196165154854776921106502062219952568204072209580597326488027361346855147291820369357105623412432615180390699950844665379715325541104745071730629460711218687713584845981745290324019886101776472003516804212076318514098995201986255557789577086235972924326225391644081569738374060600869436698317863259594760387302039396774520999711231530880477590229427384287448944460013498446372731275372254724988854683330575930285483745539196590302516518145342414038591929010026646509481778664011073860351172439710246238366316354766515949447899849357639980841445108861141498716733057007661835141603599761019366300021076515339819281176060854626637384637927878842776490826201470081190720986682660085050093686007410676655887884398077280827571216215445770167325100539958842817069647036045905864406431772368127037933335775822431197648857409720549912466427662385708322592463364569890146973180225920755840722205180597282231396909776700015377234046170002856667401507139915397451967200661149033766935430713429707691703204822265553281387798811670849927532562491874704242483195436105830668902784273382926906177206881526269136012300520568346623847883672372674203814276467843982148231360984514688277970254042708005167259774345207502946034984715994735950307097417655416999302209498836680056024409314901628162425439844906086578024428384800736328984534291204170353594318524879593864770142586355207827097949466396567397665912312927283268664080915000471050881622002300514628783918222308891648135400434354359470817670777727762960256541851123119281238830037987935564085050131380125516522862225166113558779198244243174409173024439417386862073552507177364942394060620271162120211478330532617945698403375220396921675912574600154046343014288198106511425488439703483989222266002501612792807346190395952166303995882818759841545259594911875302978739770857587034824600055889498241842328307914428267320080206528548014889062525269230070011217188465935021236204308047205313768870260620007666071740465281487447819211014939309862837155980629652985375315113927544079316902704024464766269972669800425430680809860523396361903426535668474630801473527972759613208771282283371761023177255955143146808709348687831969160805958382502472235955116818358827941784852029496728580830963173544676904858832074084935933196047686758022800667540996451932526752487314022671519933740055742306886797422918429956315604916101792953478436122469855805590499610035466202965261964318744267389895965520237995369442617888617490823719310487893120758971635303603671071827302024840991045693562722980890762734647828743143879686507197770472123274560832818578482918813949979185652904878356284039991984757615600195199421627658625890076459228801419245466027178227621954169819332771413437212823053011680016450496979003531153810272329050770462277934565664549767081767188956808902398350019189997714516441098831837471215640395681360697560429943152392915253971115483436351478045042095947490949804997342081288894966158784646901634985931729668917299767649183938971652232312953270568930154988028577743170446279132743277973130154686574760240475847571390841704468550604521415263226287067499078854127229853745162523822814412969342334756348958344479742110628006723067041983285128403966726524199915385431540097558783727863777894370796036694537976258204901796858962006479906548802973816913610962947635109257472761505872687605141574094337809253217861689330377911555435038492601750121921085373240627418187940914107696546717636782329655915211447877101931103673543408098478409314256924267306130078471742434983001914848507762336025660026530369251870953523294023700825147055473420339284880268308837952212391640293905570574037744003811975197738924359026158319150333519011054716584517452850648315994561848747172655288123940122865665140224798058515315859513466653627129821691538475106917690622524200205079874596133495993658282457955845387773473798467703436251114476224344499626686648373361862221561870020558578754667355061040595173018141531866651865868617974570081283258175212447792109017701799817843950189866738646575206985144280375212948001171802400117910958279791291654675967785215467734253423740730578630928067808935638449300428797110911792606704893236018259948087496402268724050029474892104753631783455522884614295691562138868720853261562874945426807312911225883092067929480099787409068936430890693097847116852287893676274033267405006269409850431892322305770008093436343304118796563095430607358357850082869668707219529968233523064578443859473387425151768400170727421160108611972506374356399329507844345526004366827069093302921054170539875687596208758445701878643005296645885707173331567158508464167210086447789034910557805336551039170155634242471056286218038467141003796195238866354311165693392704132014359556604404044755679838578444123944761344270731099114590888101209663404815174977876718737025132435326281528266419905494779905657083523615186097995322478469484120103775896017140247892471940363081391776851050158170625015700640797796510683531963902342083461351178385351928372241325691321286382426809183287474138695649326231552560809487773354617585081065199205390445081392140861688666241312063982700424127674682574463543725387306970608522252847096288907779153623107895730217196036190034793626262180227367255302157101929421637472191573941894663989372287486545599513379773941063005001556943268488864643091370067161754211793298749683362125406388630215745620376370093845908961372335962505209566296552226545654446033759890994881967489614638111522516254346400261407384838474676539415461741812941300903896658538779914122575195683221453439871414888431071002797023152646803537215326101631705378538695524839216933153954359944758187183548495156346255435042839467841665993477063316232670447297010250573678164402031518605906676924538586282789108744573173446109239718239704678645905268599595033488617634829544031133737252240138040831027460923370542487154894276882928823692569842245550479966690406249182935699091782427956220616993321966861243924411357283559433722375681477875543003431243830006256667952818841903632201594461127329831670138318400780969472413971979548220066170671839397676656117674517585291665395416385581811323158330943254534543402920235878305936947906695276760379718618174945761029754232971612527259116080740868942769791647943231789501454087031065406323899797729299230133443465023081268267126840392388591140397791484796244509518148294927007430849064774756830251525383651909899023408111754031503322031683308464789407074080146061822758082737616690940304824398057169492518884556853535723657132629054752251313488154624483230833974305783477282882861413449374588926476527432625829139483590067285657594601773660751076174617986763345707135215646795499357299862403528944012743960166385811763296007759881378917485174601320869777516750909780289818761911015722628750442836842624745075831678694643483400985301356612303139682959680641707307181138003009968970567118161610903734454799639696122924669098050027520125149341239556096613395568760807261100700491764643527842439549068541486308632663138575400073052960260784047290186347236421077633127097706480857471675345401909578104253954637140461368719409415110647414412671543879618052959138807827215246353837307672809494647637750369440923187830873248098114113198766274676689011480667857685464735951478276781070214113051452176032622197590750645718634259725195410837923557291117445682649124858029003720407030917427302452389385056994095719529525528230153238639344775367692182801981596734634993249147523494177819613473768442723738065958494064162578848575110504521278306993804763054784805558670516895095337061346767256177723423983770060359792940111028334048824159745914353750917461815915423027526356204175655668921901123147963050266087551013259549934389953790938071886807501742600121559590611094501623575090395242265226301097017134417993645090541055751602732278577829296659975104938672965804652398983359991695505508530882327381780326726199691067531747599712679458095820070301672451907882393847963961423039888693003866937414391765620249573432081291032501617835576587538799864857745262152879287935343960130791005551808303919758841955139775877678011454766978221017282976139399574136399325070761364917870804415556012690330058786482177132561426815717259729346341764652226408689670203880568071236912711189516722539402908013949249232512364873800999665948535793255681122665374532819523962360382446225503150971792058660950059915682557616365569180385319588049655937283733154191828297348064019458545024057880464784110932708200625407039955384305753517042296285898591101959518926393388941541307668250612352743428909075056107099485441108870324489861192236467425900977927067683548032821065039482465463319425461727227282541902253480778624626570263217119289410252258154314919614319979450271181067844138175867677801819535817204027571988262755137884431510452516459602058926212979991678042173637801690100254343266346843430922664106848689854156324310864289557868286345559505602167175779829477392891151597996867063577406437729478273163473770716054174026057403178447589026610340670963957316742832220460322869656662550787551686062592939409409306105099726060925361838840163245345977537151565325054601346100260652103954889106571925346554805586421129886470040941663921412512058674562251333651752367214846036315232897182145999661600860236168756254077963683816394488352440580869705517318983812115534819568656885220069872094249344454028287415240145268609547742146251669509065615467102096768976226465365687699497883553304693991381074390372839143643429085622152405033798756118377831675366828341402762102053973115845238193512407483471512351237827921556691260879402373226250921120550931828023073082013594510632228531794952106514324966071361812455890994480599986209759173742834993559825909301659029476971269709599448993466871570976285010366668433451853430018633068334007297078044639391420276191918414902140177527986427004011553443765335460400879225879426421413794897379073675813980423277271926184858955191505953881537547852726017306611912035780980865020454743314611663722522361843938951504281078029607765147165016943162026024031440658567555670544373483821539590687772683972789758987109872891202264205798945760794372852897579134079303801726365743739947626335102690223389956412076500709711316658470537797960421160701423714074395008256116678584085917315530912403140936319355448587393620459709327787712243002733515125571579751419864998272701652475341018274422126957876099293136833387831994514991712215316620208695411646328746017023446382437314560254099080308073843854341376238247758816108763464091944082702483971894843521984694486448380149477806277661497218327081397665214469877551343464453464613029313986273781567320725416356601106173193763235994027865615195199048385700598669252732901876462391888264790080238862135756813025691992088866362324073357911186382013670950537789110169743294653189886244520523516109403611416316070908229790162593431744498687225377634446702350067414932116304802088598647489617157403743412436383731829067065787127927518567531803632849026345064721641675597706161768427361281110856619422272774936118578438013600917990701885678498638188304949158566391365737903925397711986118068745566179166165340813241377502193903353183340718186992494147563052090279664872245017406366113368193530214791525055626750621077409451899448965198787064458780349897816357426869875767041361992480454204101822305701720640731531548970917931006476321437217922052299639704351035199832145255513909762641804082459720404750214817736704097900091694131340759822590937444575451739032207835923351945212603416220904115691932985736673515952490305759015086042494400811288763982783554203092142842725684604986877493300575673387006945330617728550961183134232570514975548469935006689360227969930298087572182245126862618655222220621836814581823020313258077378180471322756725486932312383086516000612505245534700218829304544660342756559233733571960692068992301730897188928338628422361245278861002241056231094090352936007604372737358087785233042647539136969524167980065902414004046358365289858858951654275962973954725457891359143979172411673757502841955517135261106408234261836960303097695967995732659327419593133958501403760691717539850654738105228258752695537063502501950464536570126226059597537146041798897874185971597994787194453957971099292464126972949609159740857454836439295311893191780981929811951058999012878696335994365911441185882457973429708251837822230350560816431951966070282245363252979699217919481466247068814190968058010822418398339982238519801320539906855935922649778465294538622161244941366093991648904626411478387301237042284581750860559080748770761583346115591908283640418953346209937382819148622438752629032514062369011901904820910707093533682003301260213314388239434826280249170444185136066793306846329202225969560115276778497669062104854678791447706575152489127590951209937512102278792951990410839871498297611115717554006970410633734838248361833340432478127968575550085863892333805199352328600720282991672552148596422591443379856083834211834451156381645018420716461536870758490428388951865643445026206180181386836911900936076645798779127563130644417840591194822943127217629517173511982294503200404635573022519353295290714599378711456404027098950366829636988590946468683644711203649550016483237461872509970292884564788696907924725116626393967894706907852461770836042312687361638950927699551617778563697294888079424586078866625069668916943415673066623893955470211718547298608081879105982937079186217722932543058805559155041841017081742156698881911300321647526641187340124643106044900493710387861936409128314594974343749825618006222622177708472851333181450868729111173185497120354686222001223207162661968791330783943636511791686547660002311031580723968903022802248903429699179669461089116298991092903113908230916469251676608341177379527008477939637300138396175492957827784124555935224271565325485128773547582611905930930021801389291395996886152969528678510656770885518399511769978016964026959072683011358406517068155428858349560398397249459696855874411814369213138180568006578193918453415958837747084855875370230769996914011263005815882011788790190478539105575929067391493189076830865121582149345234276340002652818996161278883461935469873103363914334542463185050972925708904671576773547358358944507051863726977352412680551261479127298363414001188063925438174832503712840861329537270941079471511192910441029732929837262806074062294384256013261022690278405697604032469538453581826352872246931466797478613093090285832828875283918909210080659477579441976107579597273870319849915192510149416085002982241534319763384307400031567584300412426063024938054554465627699978978662979230406338456180052760257265139360447221057311742443506991045494417151010850362994684600493545605483182212825627016046751139499203611669265556303274129273816272943467547469064423994667048598921000705178758340107794695730997825579553276114756433393591512339646713018463706167238425657870847620823152484727115789377821675412459030553296303319031088037632828451113489832236476096810480833154940226919911934038992085090884369166808589736566619443949449457041766378510464864836171475030069559900293653186213225751872290469839498818741484283287062519653012515471998460478171682902733403775574714415243213260052882621655966420491806839101721944805426558854467646246235562890723614358261571884473135937021870068214337556153616311095931592633910780872912593751628927399928154999606023170465869526939974573851215714182430937202008717989600434664495824685697730261018103075108056117702921479966573174644517808870621271319263812303522592394493160136441961073932330139030342123121119326019635266622116022272760269816478306539956288953841595445174666067909422625989274169263803492646217791891506295849279848786714843020351736973053630837980037846029704756510896250484753954758959092560652947337654498798898015545228160899480841089582864842597225922288179744335332760038829966153313194880070277229815252934962846068943884840666158733369060832977999858476973513299625981324423021344176226013905374155574589438888224667426292282592917874148671409935581108540849437623099000966565148440149160680453767669149567534341393059724436306392213431670140767552325716494405151972778093447268582759418599202877631311900163398455707152205241099607532619253237134763309317888217672646698953931159687435527899322896871376779588100090397055866751982033511828341757134771058887486362097857642744822804829643084483885106871273118416472633536150137686690099054351871677695377116287029924769805874448191432470422677380654108928403853567373218182818772157514417693922346999887720639580367926725975706578938477367566338318816760506306538126419407429760415868692290694224337040848378508315726393862263986338644180582226634880789596890437355834709532418480391293747681230775209849327230305210999452688895532838626694288459382880902315885055697126989403679608158511577196819399806640417325712725934213357345870244144240864283636383607984818135683462894852525617938217413890835442602277884306701229332471674903931038416436034156365867111545315914219861540108573607385232425473353639336124139656704099817861864925990715525483527828444112815895058876243044782356402489996924616229481644442371242960728346422048930434056470244511461552454634868835567242206251645148886293884610623674554361341362947078691995089416096057843178251960207287654249599709079805686636003399259765963151181531769138058118657176087804994914847791822722917541682012870002448082386428564151648922220019543442514241871559991423314101163090581100341800562804990690859571141074256309363254066536057645772722425238511723403979661735404922474902140074497452675919426965312427373600619166035800893857021546156829036362998942366215605853196339570790643435387147946921879650744905599243134576122038337684070469646144636636095401194973877905612130903596861501601314012885824180091300906013516367814642068861262313156189493145627710242732763465131768960994618903665040354084540080692724248812193742739813608530139232433884248520160675047392435828230765062184758056967982471575891393550725534082649931190171983918947173818955881669042807762109288168051050376017436247949992781207595257315525656947526811266985130654954724295815317856910679137675087568518571698470102687887398274988469175155129107442754469472933195673612884792254936224575021276908239413944547761420867311052350002751051751839716393996990356825094103597374074239142779188475287563833387085533182092850147638859096270786259912141685016213481971912683683868250265117011615459327324586594720368208388450375184486398944991648307626449749938653414444168239628369355639461327318175626421876423416622593457219529891761012415395326147965214912891852489975762338625041688801978047955785039393705462183521669665728715955665056870643684342362336650918195125867297944994904196661386676266783373736036957820545030402117246078601221831822336807080332695121334087182060995707725715004068926771499854809165522755039928043750661070902219962312590899129641933878536066710686848146366001112165760303513514828660995034323602908203867161320091439444459032492955418545811963875497592168075189481197712459879064766649724423417256615886148410173741541111824747275952656822501655763005441482261496280667048256669558641338430354659702679244961010326863739013667105953506936812007157997193231617394145589941334484171274758051585521577076232836532633944982427846878575031381991004070442481881524630864042105164609736840955607109504150157080664015738655249188819050097113703728426965791130324082001422702755722173137412388833486663997310536395034117452933036826347535189922370957701647250024081056045983080859729949135634899170989616225123071710084564945611848453920955795844291270043566589359269252463967721708705902435257473933393379423328782689916540020603648113675518753625055226845594901412698604803576878617806178912152871960724875646228260251254479014826209732850566610166676547316955138159709769140206304587193829671039518502511224646763783446291809306452110031257851720404487617883825249958225375606692974337374893634416876417552992820436318972832979945172830712566765012454241937511043083963888006812245023404325214072398940152648347835525464054878064352259804760148013967635711799273747894916179685202377451952247739914380789106015446029376079347324780594847864982354512777258019506581117823140656624076009993924887442196630764455133035883418001195646352235388940167575779538018489060088883675464671786532631254494266864642464547175759032560448257641020973682459621916890352032039216605235298102515246794937058680367397107687452260004669308425470817248155421243218974605653686646133815565100246806927341026384510720078525218721022843649038092178330880675553213363206487972085795504354249462892966673810220432359990388747073951113331836125371299723700523013581434113150873527473805173947483990491421982044334261533786788356176874467626184164392818140560277250852101256674275677272164356399176891120035871707382144564198822066505982607235986940892135293613077598057623744478448254425413064337670402068640249803041893072079505613473196520986449738475993038833584806334509337036897797701136871864677131396462321594746844906475281255400987602517452008250595229580361239709598625698072808501966541948713527278250361648751750738467033657844437558097715516978139253044604992513764081274671369528703355078515991105485203508209115976620659455966189866190645486338497536641034294147685902956960005613477823913306340683239558166791166055859803407237318013064368154026480785632043362844048687766714401351167121056773618803355265578502478114358938274018765702415344895928358286558345153183403966590333822956614144810156009485462297752928650862852200979489797643941330380282825205412219992883595148599581189395971404856359411473835062291022040170781752621850116634254630002252534792682818047056037064706370956430792657072407970784287383079860535143118347257876997355597832787553065451615844852965131840660899915956038091002246875269655746013786307279160735245749090505989522977508509402032414749960135054588991094703065600812501898844608891101182567381385051403600935975291704357923921914209395548643971292189948628755359731482663576717362422011924330824442812596629186593212000455451630566851771756434736765716649922034329567626835469048155377547859694438705712773923335405441653064114134544836262091261160096443677225028695247671080902009035890458251592680479481001359866754056567665099734352449553995168861435177005720247173567320317508174915472056077403251099310151816359899904703421692615044471440049129822389505593999683770809973122598029471340894978945918103416642782787718237161585922480984100388178199804101735769248514718486686771382511040620654765360183873954127106039851467727196221837037749342897490458474477963380131901310700027907206223961807858256173899696812475761238389730041630887049197234675662841069403996678486730372925474246502716134667223564057750682389915924367528615743121907019045288713675804674044656071018520207984868353489941288759623498565416178963096022112011015550544983402774655075323468694923495536055232051674013925368318229572709169637149488981540440987391255477258089303996347122609178658755662073060169574234919823046232208441618755327785378661593461319244511764991657855331936315318206027344198778554999194802101343546016001520555193285727898750055637935848034532843849495985742509845947948442743576518023174056958135083495998256510389720607635547444281080198759329414960449316983443568734683467372600450544574891178071963683627840662071701345669291847012892523578588354709105926045605653061206369938723845183777453460114269260097059253342707861226795476169717870108250610768555090919740750918777518417382136781117998287874976230020708095526492184562341455333856505763673751571775527768571774464234002368471999482696843319394817665611039610176899686347505522678986861674605365838865351851626954793286255036074317367047036926536730336515177192326145562323440224185631736609861538772783172068756384676662095463567457548790229123662814444377281509613493645502722890827431750814051261320108700573245456463125310170108607666277259638937546595294716848654634951308083136805859054752403260279068659366499499852820953540424346282277029941275055433643327213102092741676384918178242826871948168010486595784480769386841780382983442443133647043477271946599801976790942735956785605650337008750373093693410422838419349585366225077674212910454687351667823054612588302000397573377823658086586467503771664353010520727235965116826405781188621834980485769140879875509418217334909388420569122782103464669363689759014650794057890925471336797724776047267151436361544829970101277969655350888005244317133823098449169832224180751610813401298471562953887639224652959427006128480829613667154044971161985848453299141757764602511796358166757132372162648771062077161332891424938508215189763536516420718335441093780780131674225954616308263586100710775803282086944264359517504119341621730847079637943292875899983349674507422461912264016346723112090886712414305673739614987985706825953866158300850540326384229453025025058392898766367522315148715817339409529690609291845610532669898435552148948180749151698971659105859494968145163771417217731073617206123574492899527421104373029173995336769066507451034457984694127502167022482662211973703121462634231672841535408493375654717458253677013431282240235648525944563994886830771199170219000727966045035553660171184901533853716679036228631700751383617933334130955002312261887938381264956339358426020080215369224514626630154582997999327791602266170752732983106286767691768571352688925696007167321175226844560561327286351681277802448730472519007310807256395832159554519312616951732694232151957852017586635904318421477033777446693936852839626317807784252710887269423976288888704427799344105940546470539015278146316659037433183299992328667300511343254317310072176584957052875572884424258205012680677620423393037327427598204100617885605326279163728966226158021216380852540816760833386179154956884214421375706123324345304870618274685336954876982055340967105579482176448903690123762302469707207471047376662320009294215231901857689071724043837175977964004560181832651361560422993058596446080625318149650399828174900459837085227425522126870064922448796297188827873636779360634532869600390920582185401791165085425293738361090639770314884282155980815511917726318431056477824179298824569643692359504286812901701031397498414146520420250396469359863079212054648409770315144963481323987676139468888265867309957687766666849704874996794747914844536268849240306853259402071925985153325728073906764833079922584226481567503725287784658402123858740737966732842927841492333013907088759494009485792429051429820406020455099854915775608500359742190426853177581943932261589858203181821327156567691090787632142098571765283116892492874213145019270160034047740195582692502333632628011732149623273780996398259009224122481933048984715273255128617344217962456262588869580791581175601837107371381443907523665289572327511228824651703496601907353839302485575712338259082514557996409713257551464703180304154855937058827325855621113705282949929948982864398666491505139500381309851855668210566536105330423803353652342524271996790132885442143041100530088183665516225514032952638348216293144775003454418008859992621727673772336727085897250176748856961186603226811626510683423031960361008184096800860545994063560216889877804288135290686436462622133449973073981678455734716836228185954388064414396038929631910698437873612102324879254961120461325731720428567629802582648139786206307340260393367382697706618983801088468787345483614074855429427714311082633463383669026106436224227344884275549727129676945869403799673664677607702832505587706888517267346952480967951762552579932440007802301974346395162654702354748351994229902956007682013159553524910018904572406178234235368032499773991488036443875845343103866095742348967065378390984117792083541566522341877479730497941087029517229759026005459131733410944117142471225305437508051681771413203849997910468633183436348546526093050904587140913840598999396061807981171748407050900325087846008459193110787262245339913475358443446019654766781126529642301351485610781617737608561541061905142198374638529233629917865157722741624799708925687787247652328622304170197840609784773439292028314288521198520636520209616710591297353944799618499625253021568290798525844305253152422499045895030992438716939792229569421672626478193854981519401742117646372526408425435295455428638731551271647363748073488106886171385000894470674359106303370414223625722122615436081675953638356959552838731057709510758491000752270024267738003240029554303610177625392927778021080039412953370218538102467665246668636655920181051135503276181626713032026469657396688732072111826124713585961722410151467265868454117394073976988069398719149884807502994516907846127558183547847569975877046282215316618204905051894503776954192409977489476929701190525072731485197925829032897412474003514996051607751788141836056220334935108306617862858653324583432679107107750980564056981528567331504798284112169886455382335223611085994841293043659002575260837185605274190409382318158534160054193175515105446447794885018808939209505082665823606910286260727381946469693762904438439661059672986218460892847206275508594762613216057806490249845853576943257641078569612125541855191841038048024525952137029646163681795333121208087820234206945679622158474221338782799686092237184343461151677287087899077318301915845628135538588129459667109472328068488784938567389707734066374048141084664544814417731139158348939128745707041764354795351087772458676755639792346301966954855025416673424855255732211307862622402714190562847030765464969271369729785149497002065899955351054339768524958117209814867443015481262755200646012323973366100128158649940952216611216963288574116208708825659932532287015450565521958202406109973755001725781524422954529845327778190442961699606980747849714605808262500924297586369175251028492499707320059167612224109098503074440424220015394399052074638841431799001929834468314442507463857756196988102986723148347511180133740680845704073870085491153341966462011331134169496682998152390563862697780214400104525148237988518410875839863272914010482979623582191595075941955973425276104289301026128023523973109553924479265852684081055437836391955657061157757220578386922978015203175320064067927671930055982197779122303359296472866499328230970334071173991503500776988597033988313613223817371550491789496382091838679374092626261780286079102485236396756068749542085894284955606869154375915911378941155406666547212881014385645527885178039827443363896187898597917074571482321709896801967290901260335410346999599688578690916688358455124478823434701460341881513768950800971911559047519115030831006828047467701708284192606954588999839519125983124642059513493240361288058484566111028177841767692177795820934207050246222626882556030942534976324881173971885258795491593266921996876609185898552589143770898795986604140389272867669281273102726618179989414842560896098471794638803558043069931497954918755954076251795581940932573784902431557451497058398601398829386189935393259306686593791800864419343076407669726838835134365461300654232502986498805974863473836215349675801263895086340551400560940864774522181223849822077303089164477865325346352384061292833534339675163516016329379210891005308739410609034683243755107841490952496339539072797343225811893072596627862831253752873360444411404167664762402436563743265041724161776696389646878730021341952449452704997999360530555112975193129769253391903341119142172138433127397879321999814508057643433663522143396253789428380095190056636249631961046985548321194169242919676343767348178749835559875827912928341967188350261906941608471364699752731184161233330608546640145880812497795411274649775448058483018305024467710011078305434938577136407855125853944173230468590831660167388628693525265055928801483945272508215246675921486314659132338729198458232617651617771477324798101596548675168489361998280133396427106845656636281947669120290289665872563145501959659858978838526497197197174609997167441951947980597340254685583949855644730184286381559905460482701663781327096203028015725309639268720105143310954097853247511175420636260880610739030859360636073758617078647177656501481856491106830335244844501539645608594348600186465256691343733575432069870070452101075687828932874823299858655796086307963694400270142298830868247554133891975828322362739091598970975626229827741104613198301957067915849060828639112408935696451864786790878616485919806206098457327923786970258309716862040836240878237900260213546900602338515878174747146560743926677181314674365520687247380886271727360500216626170409664553743512425640007179865041650313360313784166823958204817162225680014882307298788886267543882013216549936647259247713082230666974356650348106333798341476174002068910854668172623241251828088228819663857179022750837004209096949035869429000975357186728949112250237749152735811796968598872037318742050936240340034691668516796215686478901800343293948957763221467915576599499314769992530954280450745633567190947253893563507444254392060924860773316235406217807530679855461359871253519109218652184412866678510765048204134636414748295371849850107261090636976829424743983270435834591624523928410730571118657965973200287895975519100863922854488502178432480299029676219612728853225848592524219099674298147196469086535980186505454186164826111188718114164672031955316124554194509927439954415616982419345700311454474447100533221293903052188886062215848036821116227394533769351019675321655569713048045096583442572042302254115463163227169514074146508637916026621921848973202047729606672827935871406926210567506956188045752273426033411874509779576020450848639170572813928631173324836431642203226774355817584951726508525442091026814389333629590266904649357798693265212685937844949396251265488965786897589498624491137018727501542348003777535769261434411359145385483796845470437254163093563226733901305848730685968942392760981601694619749542123069331626760332893314580067270779190078387994262451695295018424303305661529672312338218395018373982872630938891456329650167723887431451280430831991814867708434230673057478159510798643260106165309717741121427655964868164066481849591730000386103254376030039038930904687894570926754586340854320046858741234392147314025808968062492946622774425130144063912870355061164398133761273852139591871756639132346715717219697237954738573843602651090801899723644779782187311226501779267061037448852827240341454962722542503164061613025917124708040636376886701525558582848928875976386090600166385397660331284922838657871801851554736560270721359963342403852491730707451217412048372814715071475456425846760838224911158528657773115923619093754499280791562424452532630335018508537269449141017352564711288005405770830785862321791104259395845538280608591098434842680497493796542250230334609625640487333246852294924497174857893622922722883163522881841995949462902087907474685689175416552630176984471883879046828805777941332538853008817681371241955733097043532584220440862496092160191312906597527203823873941522858624581482952322074462823474534684172847451347651075156902314331139623781627344947396818480644338656113884515777962125140794798004245149645520447969894808887427548219482285240992678154294997143131818484534685627031245024865626182183717428930848237689138937787030769619621252714459829639111971165095396176642570922005778392302863587686893685182235953885970969341642653384435237886827767549023395385954195723636926695712190907544827758577815587054445554251493606406830015758922477906193091315982905629352647376273000055758404194779352531246819234788857367528173335658024247138093437667871433729298689056738417459612542494219962138262249474595785620230021489918646816483945262574057907228007365666559647129040641257885927273422543019832524495222613844015304440417400031109931261701041055034890124959847100567166201112939804885241310241130233856882576368184565272403514905413547259719025144094871182677284936331638522608462659495373510666616484051201183443757988082986872455967761346389691462121016310980708691211956627251711182454771256012618844492914832047087670970409465598544833404210690590664714729214847948310692418146909946442073040705943434889254853211176056100873215491152736635532731949701760703035338255671683344242928791637781519533584211649509105746042161872576380485818132367370640363164011137657202512891919672373933296331067874545625774445148534688864896515960580769654459435569124621770291692949670448355281149807431803615402172775369073454909354849644198543486414290421877431937565599672705203827946724456776341162498711972769024795829366632967323121983177427762000017199344265354424683473821559910629983761014372098357134749299009369378475380236522548619946350564196923584648853132000125450444885659453441456755148000077614018799046729665384393002686553228998955950703266669017739434787095964655610287515355108328178957709050626070462190620080328578423347532490574525240096478252736975939005366246877513329044755954405571813851622716129398530075153819413013870278807993378617745405099964857755851356068524849540752410114154390791011390262031693009226915158097051423527854024866768069380173318968659970105578782235590719616166293493588096110437933448418790027792770511719736626934641591830057778663026845140265998176340246299008990622555791609872022546610353976900908028233605446461573232367181052254179003370312156772144404539045382154815176058387300602632271638326329821610657000104707746314728835650185656491022994524145937164059597970047407162921188369229165862014884682592847629909712027201490396988909016336628027510495936711918540544888937844629959034608590739507604606632791487061523804223881416417155024198471487058714423802214807778428954577968038763107914243787950465942829213742516734236362980399841855577950159897328464746647643934881265744888204995482618566477773237150604715037228200349311473373603566616488473014611430197447705001689524530045398488309640357491021722688569584756474881401037845267759633751019597261412090744860386310658679476938733218331974857183498371392934082398151271647237487102275664024948358597944095291535956707053863797927588694790330416788462615597014762147902904587285565954120557173162111742210016061205182578339454001227794922709133957773808608114412150321421753696426123372412911705907825011916419949016406704393057663017689913644745877236894914373723650585159849070050048615559392473108703865122371676774497441849995268934425847623638467521171603748401039713406423215309040979867456972037574188011476794316447442723776419778413790876267426308401243376895581961442656349465538907763484815905454495527998063289558573457271161851033180392630189278787120474886640298011999087818779270788380959187148891988619602796844368616656217435313715973410372088150837248885851693798952433859642958927660172735651020412998729862032948308122134248683754157493167259540857620071353379727366195789471705287904146131268738452515713696500575360774628443535360891465244152596233068089894834244355289269834063504601235855281569358281518758303497620429252506259290365998128114312712382612819661380142367828905239063576632302336226056263078795223776580126330002414179682447675677773700420269431673269047580249731358218972264034911894263092904989325988855752213050395021466008113144447046300869998596731438462019919685015049196646881627379235795190472348255773877292120062875238743476842444645052367620858140089871543226920244613393478576186469054775327384508165385513391837218081957523973947054734903609585323179618752061477490248804054096688985904734817031056789114654638192954562414135830465688893951178528902597455054332616155516316880719389879457900873240779895607958363248638595061243735087933365488177643422391101435842224027357953393515338692422078093404617161822382394028377198019218347993785710542108163078214142347956863317696096471744619666322678716419924974138187864605602370736910203462468374250213859226883357476342553844435346093350450913855203610400108019415003468190707817320810792125851230993000975134704020459170869347008960541638035665684568235424013040703436427332619094968762494844064900522836225882687455937989055992065233016097664762168260772465705408114630804060739866386527050498942635756690903924064871606505591171671344909196904766362976533822982814820297075795329800584849789267863845521697301109083336595778236656776649537571789759085081487646760875633239222505334285165944998516114156676586611366302721625898930371882513677877401619400257942852753578996509411202036106293016360346611158460005769017306554808242386880894858943449995294016981357753550636535882636279014014965383676873515042539800268238054398020364486456381952254760845243608826035801146712159812438958826787749277198754949421445301501911425295434522530045174565680746201924051669335815311360933961750432823905874793491063405483451193145261767327270851436424548362469650347831892584733475203516887312715730856962280397213894650144423287903461899060738718174563809301210018846354130156331790244751749624988258098918239272521283710704119003706978040038435517148497785538235406614116141376462075297448757293724107831881663311109272676312892972673877520555652787847454931115105370587084640602265660052333983741458436409239791221443418825083989776433884882936952872504961436864374888656925289526691243816106265433637350423046665517844030281572977519744777259198302115894366990379630765081291007913814993730650163941148681825071547725951286966094416646814459609937978608753709319612102469058498617476959939108501736132525158142074758853386475817437001443816792224759393012791396322503764688472630969653696661302601357602052451745463076664164451713998193662170995063444467222856198644426629083416421477602347088037653944155384331488259478608653041399202098754130506968264430981363878066024545432713519175669034731842648153131975499741828567229076602535388828718458829679836416619887459376933424292957268661521817637100920986877687570349704311534743007489793699970180412857552601987559506607957123469718521330001789314673173583897148681969423973113297406568632406319615682488886269266732607102181844643223037166021395648379285807230592134045582108065915528670260974594331374655203469618451672958044843536657784736685830580177090917974075985993378017106657633993931495007242683564221280445935654000668336678133831397227038725561635898037213665783942200509482050301361659356937746899927419694012024797447066046865545333750071721472222805934631576908493220026154838340068248917878341771499970582398056367194914589649616201592975001319026320089402510716899197558730749895125543465279990240755795815909832175086652672376886165769512366164677755904626916786870205470378721383002033762654657819355369744718986961106439739740243951297399937806225231030529172112704745510612934626954575019525571649536557128057844021974113407889607345742598236617632949360517163997805432477000573822570614059568643776769162057006298913483368021653251695676678268856158145177954484239879705167739386031877298208613477746397566308134402695126751702340480243615866939312640251102727201445104902120109886820939939355497330825463226189065441027942172348759672310075455779733450113772830177625482511921785933488002354091321464178761928571258122715349810912043445282273400478451434221008441220460946595122877069907321800616670255343300231484360932956849848856235481921291299662734226383956864560719879927425213503568768751098509400784821593258305765403232983576665172740636274407141854917191327490517902600560993351226686021258301150213327314109779863241797453742323146321830033096529448200449154777563088000149698780450607220378267988662360242877414768766302313587983539863596233599696041853574006402799681033878901680941197543245797012206614915498161185349989646187459141090943780686315704559089194379681122055848184406236933660448066990777944473910822699204944168763170378696516878283454074707926555601333979168542906445812856924489927835778520364420513353725236293226966050541310067373989548355737816441748021639595336376890410837826103221125502038305637850009213488930946465759028930108870665130426760975544173216631321153812715175701407422287697450919832744599364698972563426572386970837746535747316935705592961682069270547814297517210659375797085839141840575157944437494886775183757197217442251455564566359133987898952574253456509061342859781282635239427081178189404334170038530699873626783574239841902660190607090094860591495161905587088586090000235045500111631438715615443746693615828454563314487336359454207225026091086868007345196450828634527071192945620174298558001859729789124767436132452550736302342047386813712860967474406330373000128186461400184834337984642246111311254030888979547714310443173820205737297917522859399082524343071766655954564972958921743548657907288469562243941803064216209796465810634754537844947225015302466550516071830688952899709499900486019036427542594111008345906638142202693455217685201494316853882020897594460789166167315040147424498906365302502099327675279595546980659599238878688199787532598382707176210682073280170242936801477024155776838483831467422743261624890746627623852338338132754930223730375038612215847090379806972087340349722660505500395307652265969958131298970007567313853874018686315999155725233382619762620700475661369762212501335344147967718008364189333792379069479579322111122892969043556651621551273348554691275486078851051522394437311569922148000353767808262620074652420978580434999109521015767954923147035730998908899556670711815153488495556963304395390938339458636313445661311637301644464713992685868303195195072336158930080547225999222315618640081192482125644906645942676175796140988929937453566865028804971626718692869559109363926984112443302886839109257135141003832403357980712012361094549487830939374922713193577651304355221420232898134461919877005006989860776394778332986213586481584779100860397552542948702287263016651935058613710344176128596609598848275483884778957891738646726018027297920432900088818832974464423378591097001278478512063493742585170382254896231276386216228742706372368707986825638487796290460647487054847276030801645115556647326065867824130339095251008631106707511678114947937874422387928916344344129082076314258755995101612425637464528846035214855072459101889144622306063851866593830567655149801388030531899125591660612034205418861458628150265954859559727146976059321083574876695191084215932184323801307866717240761429504059166561111633224859294327122331521008738330459747301336065044094095136791283742117867313430006924674779044640616235126191005816944601643772999421416684134963867753635017482067422186655183906012705109892907426558143345575109091755246172902884567700243345650474831683065862571544562609091761949715061845360419839047288277756192144398120773971526487965377496994969497633322525065577296498994013754064853857723366645519839259808540473849988247022279016534653832201349463879821453845650662068555542684141501488048750455111283587943772180492332472309252980235260364163072369076570815252692151653795639661528103707385663252171606183959789023377308561666276850923924541280048595002160986011010210302768734916776452364569759813766619451393367367286043221710058605446182397172586990882858388094982712836157704954781400544461005618919452247511510273738683563720424780473855692849270970539396347862958924861406931713992228345878843138917407485014619426518351742094929712693079785097504563532386425754295674145093826016992868865194674149249339891652646124815725614876676219848620344682461723491393123576351996363171766691466367619156056932062129420322715316273582455686000198385732087675429945704779709191916393475756606634223847323844995961829708708147020178050366687217437820530756049856651272081766550435105572858382486593963328970914601315876563435484460234924225016904686684000341504307322927757495921431149432306784167003128329839372161448691855310519214257879484709666448076836630647451619908245158399602068852799146832663122966903561763013106375946245379232598274283946092528481357383197386278359594872623536342203786715662159202142963158277538476649117123509099039884797664604590832873282497737348679083735477672620237980226989469167316673843285185398724470070780250134089289864711735600244088778166030533592074923823251099015343188915232536888071856209314904313741543717509334483666998843749905411730723879858988784052349717794130238780555759426357426481832407718532228227852759647259261164478749507374859580615474146783232409825365355908888131583761334288490715945959373145949144559018294184362351334711431393428461505688683000235112033741971825843365359866802273002029682030216872322323958026950328521391315858827419192937233990255487721486158457859461649262652150758306296609192042035680846609079088125486106859970389002315980876954607016148730165165263213857643143239071459882268475131290020613309421682513900709571153425393605711107078646333516113566113830933206007096822450488013163017681197212226833362165312554295294018305223149437498495248381593996977742721603292215405505764116315591988695803735613099599073154433900139199598039674121484697171169664070125503222695933646765810722624591828601651708689962096453676804032827368242686969933835665908971141962749331227819083653509755951784239624295920767265143506166213349542619818238646848697781080034864186232897755273957805837117048411364411049582055466532249280572435750714690480841243764026494091554477638541827481243066268510066354665564766582911270583561181528131919108785314769923399669852688217716024647572047743407952033744987161027909805509358676567192755011921345509201556355481408666231959590018213727158164431092076349288007191229126988073115293614820080852137159203404766162020993102577866351963085001152613433886455054147670957567738223069549994405253788585501236728687067430874630223425847546843325935047348529438618061688023705973164499721763867835383715195912804969011918983934444708944521129058553455880261304353436631810822371298368600235954623586093295894117854320716421055290677275544238524108876307544655020755341075344418621294261784166591549669914962344018733043014349472423490791256674131709639649992768289485417071276722967651889916842096326959168119941125226821457543366317861060020589512763363716316893141863437446759954578458110870041284650752443535516201263006530398584815225197731025648835768032214900976810413605818772406935263068995926295343686202035160059373119232756085781356593819335624437270866133703426456209769757341438319303723795001850695444921680240318086264063213304384065828956491940750748565799759947876567913911484223635567167667046730626514653143179381309141908199697820905473198536476003643776419751921372897973328734389932280963823603669877053139222564156809305101019556820970868500296632826003103306876487441876842126284066009863162919397928544891764540593081684745526204180625487780670577525025202941219656711968006924854159620672157612112759718913212053694862268714785009597657798866902499901040329051209642269136447781528500865017711768019825044712490109724350400743964553783275263005444959738819254158950564986064329222929479644359845463769321367742787869595786915653061543124236191811842265834841806740640918302936552302007943445563303341472380793633293568362700536394545177919083061711850981057465913382130298195587883296061874469134010619581089995201109556610056465409923068547152375736000710816442788195663402539096508785648520475540973057422965009601942436240756877007042468054400798387972217002723389449353183778602687245119257652440776379395269444520940969493580966614861872307617663491729297379188170769603620915813923092792030406516857883244359044494021156510553681919984697070300011707229183134334182086807434746975901435440489925271597841706495941342071913810225470970377496824217698428385054281206356647642431641733758897887853576034043338324974979291487479353607628419081926072988427772656363036642082992737816184923722022108487057003194332719174452236131286742211241069397973271116433412184691126501746278039749259640801484168852377648306118758492496034723535368467059224470301870889069363303439943792601019560695136902999832963805798349082399841099833536575134863701943709642243381337663410481673912354101419244995842558918482880383814142966922060942399715124037009694606563416238635367670368218037987476754200223897241601648017931043018583988269029267568936690456454908714353299934009562926430418044904706156026357453887643839068031910076476269721990578895773311215995113782862182049062834211754055753617692474492395931070730279148010791107382276772401261771511187978885573078386272200771976993864790493733364120951568121311977364768248574952809144380929705529435416226219130114700544585761231389714174081190135896680087038331468858433923364234002650869928494235235435111067144937723398041303924489765417043081278269231451003186131115788374125124186651787582498958607765127647731803926967418701559308547370158780234607834020599317075346111704708872902297875339839857854494811261573467717850420856014536836267410983037089180284482647670849771534844103883626800259138772287680543374186865562152524974820466635598234725260589837201637241563221999359290712734159423304383472972378319860486559465150771710119777587597075089985970777367540269525961068976223748853344606095619393828238207221106447668334204554691520656028624794599409895297937717082111452738815450441840678804787460825070203013790088525025141289708640460465548215810034536170193221686955414692218260908431910509961968609176171896999164428625143266189908423306246616710228609730603556493586736538630278835720082678414766224193785203895652105304279520385806093134561961466846985496131602161496569720742998906633360232450931643906173311062687431739156677958889756325324507387617078785940177372748004975662228507431891463535031064557407434443988428192194772295077772082209741150479318903353344876543216495522368955244078308503370359945386642207918537598531176604619300698207319141871303130827074096587984031284991025266969092772221064373147306779179577717164245601478992024177494691226743616632011632237734637234754106272027806164075096079113145664828853943710885482646577729439955429844790819612468473165094990033626149730069759802834176114951269390432996261422454978522784408838870684717491967205859066474850767775430732504740771007846202177023992129126476069673911992157773927514952985182172270458293236724183245945265819186827575589747048645379952226684673535169209609866330760579951037912981876395918579678483727026652768511925990785019764179373374057770172891340968811674324117215390343451204065792614133369352132377420881095785318286908828094478564929894840013938109029673930730983904336549839410557081797129700175381007788855284880672941679507560588591538626032582923251234286220394923968192726151924052330134727624464038130335322563061991648174364238926191679552775521207967452715328910882962001959651679653983995513579692673524428827817164065381102530666406898804835538474638953741035012945288477918590158784275981146324085844758453002121572716358274084405881652240866938491943672359679319309237693846918782041792684773693949183466516239635272133164513727492572259423603326481495689956257092687925448755708625672072395698104278255420043145181330592621542565225705051308099514761468657953040802424399758903076751097942547542177834651600022560205957843804496127404748637117689958256332774116766609824565651914632991228078577677051146188168361766117987111298084754303289967929985913467454303112309337734566009213165586049984104374136823050150014018955359841854429416530393386770633240145309119775225071212228443620566962941964948154525833430629042188243571442478871631240173748975499594911382406171104495028430229371072775184463162668021860948932847737466018850521000780100956332498456610057861148599846060542503273348715181895160131868222459525811660673600833582208607060259190063899375517098547014001993475025439385839120480458601006493349507516096014472295659607130307498070858137864569451946016186786292388050446409512276133061639491773747728367824714181137381353293397437903343293126795108502661291393887974102985261563667034816788060439307965122200790143058076773696237076284493975302316223110319337872729741417748776871622902435728755853564090839546725530491593830349207706967409154363315533785194206284155133508798693827491727571752100155058890723704845747458775002769676687160720189920654539149742258320950649720503944954091067668720675662242884554255734734752914091077149686739694389705174024312601795780804738312875412116638663980813337340618033084822171792959275524757809625464805073430001268393296015202895082000941201561009329522315818903975400016226253172841765684718452948430145741861848898637965711172698223584665370018571277168035506535853884132005611655065349649111259082242526880984404463862339690666639217578439652518964268325984144010140353749531745838653122887194581478407451008635001053001022461550357488525445649310811222106481481451931249367794153699443012862873642946584718485401560047900048851226278846626583002955456729200561708385930629506240351521705082541554491078653640981132936714928331620461667753265625144420052525721397684122854366999562248498945362126771925082834447030794562223840109929908770411666429475252120654336658915437024586818459162310867481577627577780296464117441169121877139190289028020554376165472841819607140496459234346183535861260440359259025156757313928963513451417289663953221106309712965263423909376424873418226699392797116235331406825834749089102026473724846033237865550425500217081491385463134019258407084009159530326962448128099062344876757818932135072527778508687309945624470250337545834096555479218522317362667328716982425324050840771620668323927867993494096250326642506123451907966903342302771899748477214073494680007259978756719548508609242456288200093162150624344312854483394575258927688914524286459662188393647794011739619406577162057038156883115008134510779683999719233162035859578674565019865164201007643798160544392753007169732328042617855245930575240680305730093506903394865515023335207352370768858951331638370916723842897613498423992924214444268629749258408014381262707814991580296651170396916623921901003749588848924616947090897903016241399869438994820019076976495602728028739854343877588889875141181365300470282109062120868259831900033228047158838118386681154702915920625452005590224661541618362662496478642732004100010214294374653427148527916783105325969560861038679502838168018903352759224949295747763976691316314403118236677832993663398185494566406702892265759751492346623148667805014704050049021845547683272253098739618705021260341292846729949147727278492048519745880402214733071837093588915795168944714473043551792525484042133520090437351607520405336179951965021577720760467992491225320668946374691433605176666284844730247270805323791132622464277046825266824119444842392444399597111416495773741106933006992787906887989030277832585020501488044143636704269072890589117298511370414596046242091154231645554209732554898163065238502432401286874261242884953873634877736447800527772821034034021240567241279214173252654030403360664033608612179716531810161264131008023175675318321549298637291721174680845276512621679859466402570466367606609660576371675712144810879613748651554326584371412759839131008085358315516576689236816599593566639770312157183062480430895697126572863045948507048242003989745829749695839875168306516919861675673736163143633019286629408654703067785095147248509102864079623830192841254149153666354427789224807456360144529955020734040741558259299831770296437131533270230453142564201613639992982133121386721042609106139703014110499785822526538350065927289660873317014330001035956755904472616945049427585531056065345996619138146433894495630573198190791022253849247142929202957505839358773469865280428307869180956681782665809657961300034355277212602245864464232378610842421383997301161876069751365948006549022801016029315044363141231691980495774425378140347064177086885517684526907145562286384350995080874296673137078605958447871438042971320418182158825754707526127662736825197103263778653306926046711257656557609576443830236302561514492461715500410967849702185009249728921844881007690872324859800754157789229533886634581558026847093638411887407327826946144117272309630420876449403058477482915843232940432544952430333959434719899129887947337108628541011824980751834356929030583286726764617489850720950011513113447227508937865543494283878419643213966505151073792550805199632580546230715105530565120577136646926206940061614523499391025516168143208278277948949790306466127222662671548671951960214476452451304467254318136883203690367386612341217149331862552162968193896840382366365029511427914753994018954282547118791256745050600193372030136701326368994472481908291440077385183905248991704686446617237299080652597727334858470971442201754677732445361006092201742077512488025369109884893035783102724967276030796550594669543147552605976708251954086608719671481856904614814863037605170596249871181863283256947169780432801787637459821499280160039091867809968706803599386908301636807500152442727289520318414082879752530079684489241299994831810673816864272086628187802269167970985527145418226880276617096020617311129306705423131399740984970765150360076788119352364128219512800051162387043316837689103472056394420789697405112686708854935951859598940126304559119616944978736359750043617587902981113236242890870179365211630254999151315254666627710164292937765017848144647950394399429809905371283337416749281115494425906918587313802754033661870241332464047039083101653447342204305441999890109815247510019003699837183439650015367845141284586763080626577954693347611732117335863251171889386773138790732173701885543199795219632072044490859166720490524426259118577930715145526905511832938810433913244544833779670183618915798719208139246496619570473064877389396326072634315607470896914012036909018678132412755676318541536470862139302943352957506000883311389309641797281812807836557786263758642661320999322425773526422512492180194170160864465551815526671416561055977463441845376587620487715134299742930804142184034796373104778932443457211055465360400231251310996484839589233830807876223048648840062280060951573152611130106852408814132082482828073065502520807184144653221272958545182975235786776711684306698178207984482758079486845490736721164247199303812666715996829601852359045731557940900868379949674849510404364588196014706472905650699575150383347515403898060302340720882555636812167451054921193390642906640571130007567812107517883281485315305965524885393527215166400392732530225987206342396442153246476193935578629687363330377825815227558442387749050727109492001729207503718928782259591898888160397849092926769495629634984205630575427371182866443991963523954227696209237053062017128537892832057667147790157483435081671160267115484498333971141576190538373760026964524135350057949273927762872192307743795953580299852417394803324564787842163789692111795338715429021692660660532031361867543995574655432238559724341281265922692695217512076846033381063457983396777250233598547723739772944157118866738333853141685350946744405234759674618282118447769479456502580401030372705006524709201225961342260504650627606294282938903462070532539743750056297826211869669166650351639451950818010967800897302396268268433185231501071580843773652684208335824660892890878738657272348828754672157300345594677873249939995338017847472273917764989526057019897089757719839435364008985013563051636240572402639507412512190706163569665894092990975974599827418479515046055324842847728024665797295080758071600612510717150348550600914973925565943280125587224066816619420693813441057303497318390091808827325763988263478029784093967162497002308817873846225442615657338789802722656449204501915027955354518344490571084624582733265854839408797567208074700521104296826056810123228147398006349795705960904062110952764121206918554940477838092132746858965555565128857738680080122408647007596608131570104527119259977509961236055568320322743200048500283861961202693072215930476615067206590091271196736221306922123040329062941729158835370427333218285155704766399883408096889598546556230735009350640411984395690846202721257371826334113590841675028573065848915637867253244688749040196308016949707135507118588413426875688515761283604187053355919892145789799706201934989967537152449236933508100533141063843059050639536762919106747250242348971053533247599165870231372898131723381921379028012989988933351579818004289387505711406515227021642163463903080181655412113959081159394714274032512414435656972040509632181634267652054398075857066105704182523810347094273881111406282001374719641190828545791375032437460070374886458631220045144726902516305278205360278928598684010340360124945508952167652063467046052441663461963318309840347822037559617670557418453147811928329143791517397354064670172006836704314159017807494624201610826772426500115231606949119423304762013428910704273881346721336503990020757036446302650601163488518642654963671805473981917237622472633965058754867306507546496128311484109918804266787693817673177334914569628719170208598700276465764104901465210955175016643197319608141116516609425743824324231742101266420565213581783937553820544410987262106394592030622847871582001934494117219012049681321399945923094447454587500001165206862940674309151929634564452890117580718363676855399623661790270635098247542646389644203349053745106471962953805848166733052868726725331171971167705595136457005123460846577126989330054168386494524845401578842005941748615399017788354722209634272678898996784761827501257800021389840124074627260060548290587331726319140471185343648796777796146419402436906469893212598793892497304875191172766862005112577981583881510854607888820204559638634928530145701205031047142796782326107979668002089638820282596862840450654716330902488639852008579194777514990297732512128584684186341268087501512212142106156906500676898929194619330362721560572489089965799046443652325705319065715573593752726040717527006842658835886880056789955236597861612143800146665213832519565923286788404495643801924477781139836266437131035048102549135723418403823872800716827660809655727995569860753270682003798540196310365189334574066866469733622493033215789437969440131095522666540777711661125004895323335281906697258007123457492196858757995267349380113638854315966162419713445698867982043263002084873434290577419404954743922991718923292740422926242008629397952529260923839531669984982825210861432358808527913639164145269731272626028705149049662883081261992048137673476186407837551310992986239469918625919630816103945965491056376361267610075073079966864626333519657484318113363976101993561916316810359268311063504268340033776564837775387124991519528229710671540079164435489707860242378894645973523544889816487940361092856844535358953556866539948402685772871447728370468738970465368137800705541440100581862944704196150019155835651031549968505566372374482026083305945807394165857829425266734900379662631823730185180597366803209272047348728799465714714889163143259988977209890850233480555910949049357200475704993219641990629663422854878624726052203740187880799785942893692271011857310392879709266529194197668894147955685472134386932261533113015131101499777158899194086307251158830636881105461368490428427688373796553922156809099285990851860820777911517274295941694757663685688257423050851530896528955897267775623885667779946497122203705145900905786403170203196854388298135215359837804063263117165315940514296809388342671211985243823746253989948226870207554236098269464869818508394084066840351538916732912491866729153471612620292441350910013769145138015300084717956745316601320557612777786750865960330423038279231080616036621926964731647711572184170492627908140665654811407203517853629281274784761758155116052161732552047739690869217356731152548580680767754648243249864208109533397508678474390802055283226191088287765144928456774814362265023759639585035479445452177810852691216171020492893366428469004388811992362921317134390544296459770405414944937251924999751017041917449410162108468345574140893223781936658708008694914815936557958223150039013491868566415776445761806991884326121707198956967962752855815638648647831444353459027608227762098547452433493366264783043411822752938228626925408040411280089914149728532842828447319185163640379272694524030749663196251369016070346572546991855057388834300001201020911628652278102017571794940095301479844072243787400628031427107803137053679795001951916333916415265599773014828966098433942909359464912245553504842062812773101384032282308918512738927668412057441608543657918566981678537339212597362171994950136566832186122754948473941853083533988337968784124471824598793054903569058377754733970829625607483225957983516052090615998630927001482375637953161784630535336650065427663055111524495779275436840656517308375659276188183237322498474804894128459992024010167557942761659651863392474394999930352090905838812203807985765098237537428552138176748104424380627072130412700608081260641779200906055061476663092848505471227820887342221294227970958968378700779197561326564274491271796164939083431901472442908803063094851162189405909708308621809855417835284221760480278282102549799098477806116102441599145574289069337892239985859373965714297449274241154262856350738325858166225678365901926106515542454368705569321156179769168676101898686603664751436076820344618395401781873198296335397369187094162342811375236343231837434307151204375392267287494170737586136621907846029721334451359992060388465790047218380548665590787497737231039715984740864218860025404708657483721659241190671629490996016418177192586711641595710546942648546132258737936539251598423345149989220170501707084713643398057633648990777611087779022939270714013920141477316020743331429530297385213745132835898931294054880907091576170581903660428765750763732351475258588660389536101694753484937986161744588723859953607661085924938405635689602267617910829969132105468657677878574403539922995053301784622837097420312841069707048040201412924990034264646761933549190846469259641235398413966351295072569459649529077493912678655558818385304817741826216106356763619070184530586777741954604004815149032550644223935892740208261055549992807608690370683474922785550310587419600524929698627471593503024156687506828910015279312268531582986431108046397888854606932301132127235346603808072890902223102273090899283928108633311732042345605895823709831439424908374452195171590829280597884882467006065794395774351822043367774489212441701798197797921105897325624920713941971745500508608657414721587137330404550099871824317789928497215115723898014590250344485564210491325812915828403942488218903138577291763359721626095960579835640808359847970388520994323525942824440091476599522587713919117548630673735323137640722710867014770657539588143767356433505288435095560476346827631062159322377110427948527749925138512989827146063181395725960322076569367921986639940531367721047764717624602220847975172629557465188706188201913672982918020202482441498295288132677098943307449926218086949264986559494945191208032645542399122859907654635207701661853255121934724407920925625015506869623702767506881356044330579054763628547467396389320159978979162988348702770593716243574019706961078016515431461463176312592460964830246087688581415684496581155704022624177904762530822662790563998813257532602181968797522948946783989053972733223539322261439594849626376951238163754778616808005095588513075241010144364523753360098376826942886948671391755541471572749007226292760360636245328924483309392252873928271034714459566190313928940438159025122655441449179607162043549893271755376964564716641588430143788226237440125989986320495359361063264332256146060959472686578090924647874974565339764597019140980826135761324607854916803920052052588517749684543905419380467449529922562166247327858788595727326221729162134350385765984201398347069392307363990894759391871629115422522532498479606408963056721877268631252655839348426646469503225347250149965216669693409389035466676018907111880018150371528055743464997215539162728018974626185706563720803583949436542997339688752677654655770523298009420088421681244056520589418670536013775337749269545247622364420587487569674955593430898359576632705045064619926402482029701798313254209445561544052832419508479268498880927476443598924152103398670727118307216709657853329043756336397055614374141350369785767640703726440743632624776860513258730315686379346649440036968159161233363536222578395862089036468052449125985159136852173286636879983059003199341423896863564003992650196168106527320989942644386411936422289789134032314206563123132874350928452161413125913521504070331866641836255786043056863660703549881915202132915534319434871654426589127135939920923027910039232968636196563326159371496698408111900162594906825588418918285897997205837412270767382112098402283014698283792947808855379519614331272357808774453681209598086856012890117223372216208569430462931576848229573892447205282842341369959826650947731972978132114383650196763656348548953678122505846883956897289210045183109607824469876340553375309783047777687993545206286847249480979163092758266361822322185004206432513987534098012542895134425115673406824978587327725191472790746438579732522926553051805078002698318232480361532571323328224496682248516453969062492163854786431503751788859915081270540699654457876727956727154138737650470182123042237368900662640127605634152868918039063512315602902062350919003207985246555089509280568255426681110919853092216956666856892096939082525100779225810536516131831339311328913714999000022630344007431610905866888026795348978965526486003501630643412482715473475693928340471610186213649184870639248838635697867010296056302519817752555031821289848084771324800106301110462639190491105370003550173417066301993668121632897202389943491174381580567844097173510844212907256382870790557745450929128073049776430496570406606862925759243327170162662492774803759131852869425242981899258426672429294893486000269673260293572106714122028246355361554271900753983182872817157038533522331598826504782108108793134512576208565868799095194587412560253150335582902938756437863867355346677620854585608101447653936817937733674502308582620201579006918114870687136180206499381183787341268602884680908787160032013462341941324513286797835854121846650335955815953120573783423221613975962723826448671489359144390247537299991453063472285467208171849007238156664219509015018711936330868344772274462516574476378230503721477955637786511017096996836349627900269197757858739379002299569432984006838305264882868167673914655367206750091674828612862809977832861204392549425537400228241100271133927558914974151843651961748745086249984039955597391845859308845398930570193524807210031548341351294433634032682898736515424813579007401966115092226099347371673679259127053883858587641948024805884786791649316110990934228591603426751820333641965122085000828858935030817494911481662746763902743213783453409783127835690336992377026957567190648019837880605408147173561961040106184016160268001859997229907121183870779898999651602278018413771476148833935567192733394763980243264866125288400016726383218411031330409400177647594742540865918808992393635436608019041673572711218077010450589650934966780295536501715900896233347450440441515812606650535762367308453779816564825391970182086315103877514961122787274302187574061251743382470573114703664474011055437175757237726030689215767740791499377223118155141616475367162672321458247822817708695721120788351683418295643998894550066887391621801843135454456908962721143136379981266967731748433065062596576625445508741844101854628872262146231140741732510380787322739877170718068830674960126019997098669513202911740334686648283384452651591724926145184837537115214069942406775744099750695529882906282458555892160971765828339096564223603728957596663993411099748574079750709465111728671680958386771054186000447596692083714301339715630399033721214371118595635425766541753591865203079624478566509495832355103455470109094643215739657191881281775156759208535398572546352881748399521028292322239586600475518738299860272816601869629078771544640708356326427866484777752994999623040094468213910472977168779916953436757436723419928682013275117456840440718822533697443965590197669955991695947459654325925758187228782184142157918624490446237640287841067416124997312501819773454730642578342656348926616448876202914262058642699748065398926612489070581442188231335162398603314701043021787644722966321988284016167258834212352040119707237664769411945807517649648551711789995260006022198809528112042646591961820284875845543074276793255026946743981633045127598566775754487947173321155016166024932403100842635658682670870692298511721798518062162756873371113209494529658807560602318976183388796665749375722470645997800363556223238015548390743653650806300268510732867885005491020263926140748800482765060533121027165806286927507623932199539558334966842179459691566713221733566339871723262264132281368768296377811230553599495927019848643147202249705940653753541446009223511607740130856099642476821831242329831110340034717751767477520133004716604312639093002171107033436851188753591530894666002284802883639676792634443824991833436351128210151034710867878843916093376513897687560667408433835833474038373427405561654273048478438969959678855410162568590014714173603674422575937047727046628103460641961107387877676242917747310703205850081926486798833086979898101299816482362531651965431207526403138426576181928130232034537571910041766504724863327977481479995199837305628288573352865369550834988210506063623427027091813628080433899137269720056565244861950398294751063429762144633884862416676085199845879820674980267791393291750836980986153058844958027503200612147511360605233217546994558817932837941166959021126611074291261292368583906813243581629178085418809963452004967118691468938108459427213695121234828834124394999746892544891811394005954468722490912821131416636104368507864530995029342595140826492763084584063742417715017490726629225831705299583574182114104582405874215189485326769455374185927883711897362596859749197870423321821006576767845049047621845137966937372105715187256248274240883851179308505702639937155454753682639113003794426999663977162391119247904102677340921632192951897069049263877981896875723024330536300960744616492996516762564696881602418212213199383662409227326209732345746363125775163761039728522553062298445396544384000882453504833433431477925063899107537984241955602580748543151696200066959580213681810998471877303082561121401053567164552974882560862999601463316033669423974996083469619177058455840683156624094432058012764067698456927058973136805970064689783611199081769454325504793627323374190296812518141143232792020073555271167842628028440108301184755370809950081392768490691311779334749520842201528398795703146522881009667170229264813965388238997501872854590602545018160465024656244203952235769892921887917380698063543716408823553800199836607098694266377474549843101593268833533598567776331301911259417821653077815244939598741721510760913990007193836498059002387741814786792865143438645430826346288692354951917083244148274006696757379393714671303737338816086582881639448648673084340122453138774350534773357466914625555071704464393252508584675333939333045485046211569640234972692423094881189161941131140353355186400704648146254768213807536059011623441750762882272276526410752753949499531850373281085497693808587305045266132108842470264271956919976201265140117617345279528451919514453227686505337208163323133139440828295610198524991552624823560172573207856113802396274344158781136401926653168890611437301778865112045997740786523345857547020568103558318218615112433424387315187075244952358803169547858547933795938497920502547408013026383775216968293304674559754573144502027330893714561469726228209413880274982641741881675310402598226798082724598255432944356438435871132240659949466572804348044653546286536817673046089562592795703535663134911593743167050442970496545976579246358319291494557902244041592363442093148007039892802495582241510491116910677894522383684143890986636481164080525799910435812598117825992858692210764205118894547663246833083258734228174384492160215948306827963219374276347402679338721622073035767791671829674462905432220457156512550463932465050390349967046609177588135839817676653485369951678829218163123294182424769513832416913398272156669907111877364781250349081291503681983494981140150232738509397092533303462868528483224831663929807672339005723589782892108916596831345731870298129146490010332338631434117651067752812080539426359171263335835848425685334387636487421461086871220242518385754437297501444245012215461101133821847939434943464367701646672075835239271476495833024626965226959362707753846295095008722996335923435966266442204560432358370753604392663794345295445333564154252649674173939063401463588932339753366212647750500042470676085632436059656445033666647459805682501680820575493041192077026389753549513468547336305755935666407897839017402430033536155978326093857698771629863285636309326851014089553540281611462362274131616566187141985083982043327498882986180157250532725045462601391626037226959445846381733329684444042890858436359492397404247131924303724127253768036002737682934908861136000591191559933983112222318784369569138761367273846857932815915376246203029573835134531587934620117932686643621557655360682622923693211452913221793962231346728482851511178105303148605349469473909359876180309444911240831113155805062838563014631274110232286978523154676699051784519140225462853337116341588150073214461106361714010956804591770889700830628830844878211650192978073472032977331227707483275840569379648896066136368645468789396435551787263115112747314272798478126251456094369024799503135000653049101365355262503762079056386306310808196417279772354166691129857101620555674525662292481534834125048162472282596671709066907264888983314151017042925617646461632607364903818409395566144492585732527260651492467159834024629651893166593212510589063537789338505937384911138720141683007997978235233005277446873721985427002222081555868969273336590199833184186271841178258949967574792469427453782722354376243195276220028572218761928014574225909250718222833647202840822155517230592431232453544146248469018471593592510028962375335100468267015681432368520207872419577848561139205435002213067858769220848740879553202755876367216984193665785433052483696307356735219324072211903592393207700986794787934729876587816730548650478368175125063934103923665323855514030714036344365486909183670286759443549474498210266425700330103977418058757072579685376347450135287223607458704020032444818732881530814239096534921447003629308346250939094096378477960877773037962028701319448011616511961357839812384811135289194417514799433115260489833066168041689432596655161688652896871738751113657005058962879819861497301699467103869721423795286015409936863674972401340169185285822744377017908550689652015333983506522978818256258000745319391107457912059579034415226059761819245633020516431648307552993827914581270479254719357202537214471710756085816220867207109541482162860336365968869366639422443290168222216172229554957444294590138614037041554004108819853451530474215289661329037497742856819905351026926650764281968732768244056013700947442460448579950998242802033199610977328653849219772750582975701892782213028685971177392368835251106595238732575876201312387856416688570698265320698677756942693516162665389567656172372412128548890230855632054337981574427704619737893546468513650996244414529535731697274828369932831736827591827501321145358616621610723427401554367252883793237357974249026181102315391696862473542205823013914075902213356097148673643674749776748814007870133911617911596031355609842728046092071872865749940542673714311947553787197601893743343129752648520773267641985713266627164991197278698498808229722519182890910201777707651156012638310530812782296040725906890851967089769013405202306330119151543856294321030744461825496326652395302743659360250275675364901908771617972031842162479256424294926883863184527720814627665240848111240613700214570641579898926104363733975378582373198523036784938392059835749975312981773711215674383683644788493729137506896835838912221341553662879094256233898059185788751118303842583114150755387598236235238328849022724634369632225289382430124032136737155579807274855928792823958783227395260771420644473893431830886138446702026930214312464642641501466149785736282247628414042704906812788849117514766224699362336616858987672700480603772905990777649218727458032546846627134698811676650441321434270508989598385651486356744074044091235322611177447085602486042908956797182042279263335455897732996918258953633158820180926372149361163529772508992508399309182060412171229195496056652149903977929696121001802481370850840125988139420231521231298028763607166566354763638498854003738848198765076686042209477749723878108956094638751542490422639804461419192807255460191712443002786338601031404151209709446210583753164033945678071031527119253886848950006492701030072510750184225588747647433610610811387233153819597034078897671165581462257600187163150742192602802395146295974585858357416829770570985615845957390782389505305855451571398930177349139965980781321664157337504804885423203477728562497943424973686348004548823101699283744986368846576248659214672187079924548984281431700089844955928405922332919618396744527435101258773645641548288505444929525874098992152794957614773906909223687347582300379484652885738407519643916194950695964544786444713867363262238986221645395096093198828107318764549935059153779363240166628813780527107165759224451226240781889592323291124025905929795007138880745240811069232113086667694304524367702969572881965337152446631528096694482380882965996611267596042375188735982558851119740357702976777676928281158714500647080039572676506415690618068956742327588253698130977774065827807916223234281190746730722589018801184907644212616780396569479968856462974861830574110850265522922291192335640796828786260784300659721221536740302455969084142530735912747273171665428016341194487003194673814047491361120534706439399878589433309375238676673204225964868636901328193176942324977576127045991447119537693272268402609329083938309089895495309360399192740576548863889057450758839448778391534151177662496349894142119658828490786776179497444013960220275469463686318873131809535971563521223137925194289032662013226649069728806068280350093737249768787404932571547922324237413122891179094228576188830347041136304824766595498844742331853241368727429333190828465810764136328778965211458652682354066702208252650338786941923010873938936785430459680945877320715951197516385324990722970268887133945891023710531675986164265413775174866660484004155404835617600123102453356693330280274466179503235303357883459876405625098346988440443320389273329253560026319425321497116583553619680728659635744930203908244424965284849184139122034163580357595534672646074874536697531147421859230586901078809112893613570917515618304357203364520463744825049384544381662542063422251538624342088747458668626394744040463359085260912086726423240195060973658732645934481652666363635041140258584265083560044999660134638835175251892078164704253514394171918022368276557476755776226373638281875912558685155521665708680221095704045467992102764621532390584936691868834398829786316268523553872710142094382655182891834043394812666118422658836398288854601566110448479413929314280000444541220104464869840676394118011415750317386735460685727302670228536509281934940147116285826166829636785431932888628829494615101851746132410954426490513386767855831909148449216695478277606101189682477523183593648164845975713245664793632593586913700801577103708274744714692813001187018750406151965732335445187663512078661263713612118764394576197927000029767637774334413788709855439537259309624875950385447490274459523179285036545940599730260571302620713777542574655545213293553108623204581281383071340048910032843694597894671849906024516970089612253927544690685765287855270009918589630111065314869327919749642731909093068212500526572402905390207991854829919750427514991771666240259039895826312512075265360745843028125986281264725322761416317795310446091060056169127304180264791680652158794214734025972676664170645448005562192596610492602842950666267327346635592192805281177474732912285465901037696686916669721329694566261500932571878697342701209320351005749159512482533900510971809586172510981193665157040404099787670527821189066976731287918085708648845014459371246201544781014629186648811383227352415422339560464965286408829639962477812596443017212771570047740368608362871866653004538705335663954236403962777244979906599255799396932392073520609865513442147310101136794534155434806504316584767709688552348211177788381169369365880705123350151896511140346988604809008731617236866412304125020343198031290684626787290606615191994265279333452749832013375921394905915430143501890584355965697163360112455712221581715933566262146054078320499096157359668157385907967305031550191981262120076506268966723075273285408561114705561557888071288602239422702640863256753453470142949428854399415185081559301277473459402977826687802699761602081485288180038605951737272224658487418059143492294778403885285735826945311900716191483872907339189845600192935029688499656842765996467715985165130094699055635342868107384771943070373872015812227351751691021553931726532776855956794531052187728142975015665532494116352622144079900681454339837169428655751133169582613261971503282618466975803933103965338511637396904105295698205923534963721416198297034954665936993826294499088177403659055402578705766150398123628937300321961762956693794713020735726115202532408019325063154788738003643988376443353608144487306984034886892325948051036567553462396843816292932442038662111880952378961355308225773059413794079332707257422444289795552203656728344850036250349502332542345931352765482504555490217227899069231086219867480319562454990509799288662920296756735907223590487640194008842814161845469968342062025097029430493861532052390683252679345715105656547086681014948576862305368832862424338693285187983369870235979778209346643121405694137554445738912191893242060418938077234653470442088824369957646113767349020365717345922271298116463493266865192272776147007158038163882563567389734982274724709889144252789949479763870837636437735414584483186834088111145771757241896852804838390328165318491373591516123569759577236187893092838246200366427662668462362207689118690217754497670376172732689985868947199264931160818070964990244536047643616050605559846580957029988274983448022221206573778104108600262986999372138677041027482364094404492257478237160608714277289068111004613181423622147428779909486133615479195439206892442594789722306801463698018686564257351405893437231546209919725953219852715946440837834714551962201168735512208407599035687250515854202184587730136440178938473826429868041468005830729153378099910969162049724538426884873931427430661626155743337020791480315756408393987794678440933122392320446152437495242993226580036308409721402487032553720439247987263833749058900757849969451299243362176263549135481538461224536451847671766110471467551322073900151868152583844915040398934776429040627733551270853519444726145075100372102186665051945538294474523816026916956777705289818215182411052872184217661757967436095592255129916735375216556511632737197773842652156596369554317340720506405966719334831139874716236851853917499232958601318829707036496454310195382284449914182744651445815841247205650571628817009551974310670539237041566459816424963960231463336485369993594369223433368157348877670988291734691415187239527775445132099105752063274374542722420217773089278423353491612261357816067871838784664025735048940079282514596761337394778771601908242530076369625773432733187259935135634633780338826345529849399972577374086503921233339719322101285460396456503400254200812904260075926664015349652001368462922979557114502057922572056559432932905045170192954053408062768635170848788627332303670910263586362085730623543554414601110068809055711457346598162830396253351423891771485070180282920241789494603319163466830338542998574909414659266442127340414174255266509385794880817524979687587162070634530606435147091469282846070332958752012403778671593099624899087628066112492619882770776079385397613172183973209497918971731161184420111426533146433778481918750616741893628862958167731776528804089906527354643030072486650016856337953724500414871372069609890974126991828077568369653904594547090954596060375767759865270332250222857450523683806326243405285193596661654173585392993279026176558978253268704351832310985446433371291337072319968075316744797312268396918098602226081895063828388578661055726590941177619425432566447158578481696821964735699491022031347884830871922853227911254763908601055433880328083380057353397540844868646934108222222050221061668714139508100056879975001579042963669649339300972132967508840786526644611585752811539055859702258186098818245748050979213060720566884320694535937357459411949956780669471536392726558403024781328424316509963089609345166310175869847076164229922721040974572853380647254100869485562451011952405719855718252258658799156863632914431151417709591044936644155521693797861161243365921636389454489895449394848610111883717270971246330125428003176666732778421997633125173208640869025874296561445707793558053439680016890163691785280640747979901272525728207090004933547046129417195652446766409262096782451245014650249099657498090415969838189667234887342336540800126052153283320513991219392425147640460992398204942987167132104804843501477783672907002303305841299932947915675522441117352812517983095933479168853863541170533540369724736421966248673052548427614869841553815510062283608405241922114868691037778790672213255028103996963449191234113561365392724885171089376296002105559490521223775242943941008053739469471166528888470891826284323699609011649912082852221432186889825850226785596711109591201410784549914950082733261995181136216689610431303418365681831614134417746178141303556814712159927055465166489488127394708191523848844623485490337498917295308212734550301335627628898363541623724544819003876871546299702200023380243105922783603366090823764092467854348298632434439373094567117182963171311162435524369726417690951051174486822699307341920796211092376398014603689726620704442790243805132219788786581839015328581745947450842110965425732710495980999685339235918770454037407127831709983854475939190151838833402415796759577374929199676417338129804078046078689433810898536463727514558764567904542871608863602090833530348379236982605368727950695663622820048497552268411709954281596290767229743732525857075128924475350625527968376732209212782125304559681964413172602643470584862293417661603277821005857665504040998850814847985252357313459438418604433314843145300859650755514048857614582898994567441019673126134995371285954819408865642950208969384228284790790237641547954798898056493454261207490231320224129088225506370235939500848169095122218248584505668378613805336176721713212956922704389563404611676288660494872138963611389490168407638971930064568609231157945847876646104029744014845379966188992780966374493756336379207535366222030559419356215799676990345024502077078147097487255972538147749216497111341331799875984846901231709233113156398796554290449272595644503429432115914227156479892697515167733630322954175061498514924040831209111926296563172200083935421971755651310842841586386415758828262339858988973666238611070242308743994102204958639004768891863914422053285857565767214981225736265344725725257483389220234953905743030651633090834282896972109486383161406815553071119666204327322264718377193738672073614867046651870283811128275373096650803987886008281932837005151437983033499720338696417380634460718724562987277994296585142290537977489835403660579428364355335302262752607476291163361750516373338306081720474983568375252002080923735434960558044431392070480595901967840519538300604932092368653844842835399137116568290967436283299050943536662830643516473461497467947244930424067987625008256441323381997349345131484237809787938804683008501170650035984547529365645383639052193614743280704342163617788439910344719938417778861345865346270853654453605544062150358110923267153871997257773058537810081267683415076701825875768124941995276963766289031135270900359347754977451370355107471852687799987641863624472204776703635200345890802016394580228878973175728654931283681911724702605610780495240324315950200487594948744999474545811434007659505349913597604468373231168817679085651217264269194183935553888297928999732650158722166459858405231446881275123668918062157140929565183799437047316122618949128463187306363959977200895565887540489893147280049923204088856581254930135523465997811984830097697741296307902266545082016425067574717486899110325394994681338497387874554071780546290108560844823259949189720652752415512941167730227285532869898761060025821144031218240272376062583164882545821128122314390625691536212238099630437528905273187380948786782634884452847624737648076573848706775615177624925504459735218629582974517654095198796394792019402240748417655296303501118821429577664565900677064379660817974009792469495369953328569935972285454767690736919436505585691989593134873933851983563700925093239381078948031423890111782790543877187436454904217075690519158408158144954051093703975748176813155478781021621352763971478661368862048367738525017868475815271237765507398515187308150326752703108935955216553387284264146876364958351543698521259843872583853240342216155719697193946180767187813615686902160940030626847246359482578732049152132463760769206031818301777817705971330570608677338692559248722325981447494595351272304577472086768703002729120380513945473939069004445446318959570633152037220453852049349146354680615928479734252738083431341632424864467257332225632326947859418551393905122175799440227536908324710591762599481682040863177120764644973236468454445182194093390027800566555181721254921678696132561664460775567918095046221409625584520164742757635028281768479639944565142861952869084169582813614884787372485145453764969467130971486088487693178843251280784841515189412114209283780834352929094222630349364351151665063298321327920890469854976725410361923020175389236877042555497276480442129064237343487708763120060120792123332997238534553692565476193131969973723232889783170774920422386804876408397707386827404142400947100900294003977878108043523059560320815115690215477839662485576627669199928339920794562588459765686461576911699843252668211653819903121035513762114703211988611113158006038180898293645907972486948231633223338034787112145294888576872644746992298282504200150110729246740634388646389852948918766187116216106885583324352948002212041080934189205865293166781158781063930155577599599406976235190514560720816164199381174830679240790354158033679924712148054869709868099888683483857658957103017917673594081953830072868988703792773302522226123232210488402286461597762003246190946345651425160139766478584512325436267535337646904427680882331706465175689249484305487300842490104215314202358578490366095897343138189570539415549493680735264131428656734808938554259493753119716297412686708020626998588992549444217783896377094848805702352161695366890946528688764003836964744430710548493880920876888441932482242935380144057183798955812340026502074713627172278680622973743563861462008602681875680284944997064933721967197022427585101733109613772567186766864609830361187126872139010813277237398008796025290747785085909525716163853809741190869758446863203783956410944608051651257324860471538973890482750521264551889485353958109260725877317335555549747522028210896579882863483530015779470104584399312254267283767656972440407087327018380040079354188423750480206953954095936766109548557744175076159471545734884450715374462042838960857164863385732890160520798875941486000012190345831104024630117158666577193777612085291024254224403982176584865928873930299655939292216520353127163279588281194266687402996631361548677214556297967519227610792620148364746702312836709841480906441913117741654069669790969450156251802776886549029919537789440944369416222722269247010016587106870880367601751062206093320887938310095968391256377779465214796505838327378901171633629877327243666963077027939543738088217859681642429486070441585198431680022953390339511129492399057263416450359257216393038744159585852663352786991997053468927706917206920523289563621540850051852107815267217689544803040497961839762647457860998423896586793212936867413809541742480552710687350184825720817301848166856332234108963888221735817771554146810143506108753007068428271891532217075954987397171513235266894894668116121081432718274706197905468179858237635775086123827034652048765765858351408984758926553145586184556978287052511072744694326822124602385742301502127452676811032796159417090256467487610527222971863072693758942496533526324006942658180854533906001005873931529951742312718313135594956766507843441386634936356163772804399165853760555139384328468928092498663681540024271985276707830153630956054104428951982536397010354486699197277433879132926206351902769539561250979871183832005477639967876596696737970181730988008900458928769103424046553862759491073049437725627124113065036374181117022063517807853505595717822453617438739044569332941298401777134212877559916433020524817284740096134039415818960684197920522853199626813799403620309140824001919459393303922354389780520022881305336083846490126995566425937489951260994667982522406134663866173150564773526315113573628780061667750302575648565349796070533822393138601166758759708766244763974409818206312023890836225750602950043573600661319904076699749551940836987941361761075875547665141769197323395241268915603889198327373340581008639780506237623386822896589863699972742185625665297170190106182879831714375855986604168595381606169267844028660533771945925523360837532377227224222990112599869075476585625637719359527920391732927209362625236411272415394074960264894088006361470297979077080491636796533528058390008983755071051402847963468198767099147474051581584201554525460511270685782300927962656822300628221394981906336609414158745171249945188856132261024005243164034372355424314897607231372958567911772733935037670991772471368015220716661764088921833314090310318893417282303256430722279689769792493839139935560613160541947371332045408684740204883058453358984379067401081858232585071278253951245959706428601296298575222202792837606383902268023234526832832819250222880600429068187553962398610382206695075818995671492427917387481821391295409682002183726823967642405541991792817191953925763312755586174732126280166503829764551285643691994636649296164593567229560824083423308272710221591583010364351988557050341839671265519935008367874604909633986918186017439856489812970656379325949546696682313018518430499650653037760477611694297749512198761894273851749834463920871870252353269752727436899578938082304628074337139785540575478608385893532176702292987742356814280094852461992333492103066278581844313390180180066548371467482890629706780650419333688628960228178853436334010535006518938452214386010853502684057974453135334226006225342838906490106202468009973527873281618423658839239648590953267558951130726534432446893188194607958802988388548523900727805334713887079805677230667945063292230191764415005105131024639744600566080419628075974589397219422523045611338293280547059788386833336348355293455474143054257249310709324046984038481324138992391127835349965509696058313928299011033264134287240886834832243875863187740789093655728179202266473155342141630473614969741804072380523099417736645242820563600559731172995078838822377670596872826601449333191992671605405317112144211765720168173048054798559697849902326171326581671871044946594038863139404889730091217378437758940554162462200079711615524033946246209854128422068253803739302764421712650630899880351589504704288433339836594625293995040490103378856942931109714741691904451078915479837756289923968337592674220263707841559162616748594599730004222087917071034387975368318618079364035377478339058951646585153728045261786929891101590496327617813878508233278754763985781562711440535805692324402731462800144948276679990562140009701042983129200052990614095961961605834140773054594869061865216707290586322610761937785455696849772063123605523981207118223506343625668030453208674266364941063212381994473108613986830775044677857931935994715381162812353093659883909463182080233160585546006893102452859431890756044469466596546779634284244769684784961029334310640022302007160923813510266677135762929378163854890986832002530062315205142155853037850516261048802430441999900706152934816159845764528476120781468436453418126139028527989819325008225360486503350029021119824930218609916175267040401531468480114020286060540119494491428679292489303466268679525764005556418004729663172277942581967365041341525095362496788826298765395743522989129672978667357628157651835283461862697655653171463255878377160942012801251189529998314248699559112316095730996451079345483371475492678567171635425278964075211548357594789658445506066918948449858111985356325871184462798676811962689873736068667470578145383225386532320997670196439175863039213336165032509653856015130469070500518741808531778588277978602399587547883779829974278161320755589327153449201516259017828176745281156517886221570175515093729627400244098521368803880824465567222214054264172870263747047961910000844482033533087707720021300890822346709037473600918810281871509911814271735409023377263918509712604744032754529431123327222351895243501984707258783592027307658230948123216199215992745557271271614442148489774596228787493955288235119564958497244677677242458262757087606460743962450453880375271716445235280194385854255468574266882715576074366053881680918175205949760852330146426351919084973089393629817571267662807375176333168488133893677247266302111675387575978993158247395736364599856306847049477036948048436655765015307852490086804385047368231906767523285767649535605295905517321130433985984440839573976485759496062905547447777796277562112502835467778404853989425123970283197920469379914184921812678490875253405119782758069850133460865625414324796207594756727603796574293363526072206832795232615765118822945471818537802420965319687844385393141148159202073280229663826251978266725842794881754267834212318109587984599300327928364720023044903421000685803225561486054714763576632320067721779677425277597846903293391483940752879577467939972410537598639184348239637104816744081470074801527232492793701652274441135321299025303299808501446906063915813349974745470411285006383261772874929498874929582655401349384362432742545187708004614936293088496767721707796680405743367241822552759712357119271586632593758644073454172854016908333434136930639330276954783179440097922247967426845710946477231032492685317673151434077622371518263230918635041914623995998361706726329506196581054568124435280465628417634157856184931310537350882064717520675007596744967035177145255039675615629295819060382374114265535501928743002946586984088391666719740689742309297238051490307203756570405160577249162959445757564456806942290347896534246050260556936391998854536642029968466643996341674781517673194155074376253477878257391929688902398601475142003964214914403552203924355877205371552944850878063056463925824592070317715943025371500436869235606449593253609448146319298340419066490303312553510735228478294867418905508379429765157962869312708356150891344439345484923718663120133242226210982086150910233476198230761128056670722964767115732899258444521424162657890538816360062739304419441449023712983824087594888783055346125591887125133171282524933701346532156182435156409332784945081531892577626336199370550300583363635817149587363282489007393098707094271964748579909313979422400416872177144705433657272157472962069780998692827648302021289556605540689640379258467434013500632989893836120906688303341828683072705713851606204113644068939693901913818123531168038598412522116507013414016126052703474216582420813285327423432736095603070754453110931453691985121657984671333381803480076997789044353739678176140219194454927023349564797442359635310658553994873810786320961555071213056034379871365833971055920912219428589627321124670479253796747571032435815925937597176745879586340426550110109002694117909985379605637191124482109650170890110782305884131162208040904716052252613392492241489038193879029630064226259128413981183364678427097610364474809363524119844472266611745887387498118995743141209343391541225261567935212554757491011229798634266052562003885053271712899396891856102391476424938720112545090553864492909736932560687186635750251205763405920171429889527127607557607324961953415669157236702301235369046625739227932589303238063337784858388187668357466845929622923556337289591595112170855340214053988450731773817398322143351935602897749641611172641628607772123621301205401334220422829103445977564185085132626600392281336258648645943121362170036983635139664219750292620264245789506584576823745018142091503656687186940047510823702670596085601208531542871449540721350417142470526072921467085602468951495701685467194830211372073048050671155964294993118142097702307838684921467672667077886183204307660245621735915804867490510944284484363597671140839867585391647714901971979823327924906236232795269135493932964393404063428148402494393049554157291787487957073333440485256033553974193826802978814149673187211051561665940421717008460702404264279429555565260862389763691331844102935546167817082733234460616158492680600492885391400646480776718467687272742530467888988246186800014878404033019764329222067693352400117117554984762406363586149961400632040365917363762650921806346259887850473784752379986577545818814465500048145224348425357261572421648207376517104170019671933699028119712346761683647643802760210900222684197656055775804549319847120274471439311095984996497110235243060731266546258299377278035762492031503293424174464289039358972260103076741627306216799452896474825089029214738913315455697044005880937767224048996463177410847586985331159576407143522385953110730316067276002658065451712634818630369204515802121754899365635921277150754053007014129094758821693895853205154270844074166276970420812361584422681710994622777545959002167702030800632116987111597715927647354015115573045244101483524598338710612814254979057990931968837613387274301246697970729353122389314305225604604674293742894590956384912604789699163534519268088218379841606040494899204182158021825376990496733959346724533581188043381891371882252847210292012373091108012334741880994300968774887102675358626151255225771717017092786026039185062090845487880167356990786578921661100902514044770101184182132737240614867395098301238279276348541171893314208918980956044567259741604854088280369643594601493033277483714029248459755973567166924204367680185672742205962348732836686873731855646398528532338607410948028189710506478450543204792300514175032811685089142989311268249325451509897736751153485341794573491254691247576371642193509306074574730150480599929061826350991643263748945377548786022993898365524460021498856134501520062256876979065071926794071957644156419239037486287351903265315864209030382348856015511265312001751229724761121215854827331727374268699498637028260178254085934747643077105657899610270211046712940665500306114720885992280275038785698417085964380169072115942116251327802890390316185766978325223214956571444870574694678744039973744705253833055638324257245109717242283362228768266832997236068810236374675672576480929221998641281091807420177115466555691780744990854481606012590961056240919067370777889548280038113368883854614353364128286322587408888834579311805795260353777455138188157652671498946831732541331909076705302366196054762345089156452392868492850270038180472299685449445733058613413942922579115832989340946613126992789798486996048361374796447415679335226744926247085080290031344964263055674946328944193203218281180589445025663482735062691990090032436295031027399429782759964499065700709384544463015848393239119990091999817446134829721226614829598037854207910275403441726713551796306081494591008850384127640617536075818751605867543640175697459167728007570153973355920710035851506134508513150487026914289132911697456232820864081840680674648467571426865439872043621987865683524559073222188863121041032238183521351548170245216160197028656730853165906010876567364945615710297361104243407213541562009250280913251713200520522130834988203814479379817193448426044929572201589726689735340182976471496185403325459203148740185409766441577280558668637475016242970420606410060258439639027744642339398282306508561941315758389395501147811115732756218453540216147904982492997534075270724685721754283700210184873320115499134544693264383779911141340769308891776243050054968635949415704121422491657297612819906363036786949204317772073676229141614004967757762907685931328056444367221483586647995975138927703706418618023382111175425737644393773066868021782025456767246503287640924359609019211104229837577549494299615737876854506124965412312429722796023713438939142527887073488829477385998363370298351910735160345057480387393250820007258430863288769109116701640001159036821944389241942831203787108577969693077643770156903295220492254558368481656503046099114392991956306083256779274726907664913993179681865417130944803042638123119980785307317330690139029748823042146261340790438509372118692318416312114968255883909699990312371661538326643672991133525062439880666457056401137683618473153646051760785181676044573901508077710003422174069449525512067019560429295538766147417252173068612167040774039801737773081422502752362892734745759405542005419038127813902074571060536682376593418676869381956225892227729365913447707524635340306841340452037615731571154393401335421486913736566038783201601475331168348267442707698462537589745955405146847147960851172867434789302798488339816120860107641020334546225072806839083340279435045265311950242600724699635231340779248608288822208132556277914531145246911531528508423441423342317825797772305761234006496236987347963105546818832922565562114128745021526380158963326697179987776816007480691443222280203940708822658779823199888179092094757782758280997375763830736821300758768663664807951627837283160516503005539118075435162391645010528810264049730559746322135218832670939907685873619347500552100267885214482714367735653535556037941334896461210716535190660214806145095332159799345157376961821972347346741249584023962974944254495196546543941852913490040818707041854934128169611508385177394382588027585462264973492263333170971778527252702179524756651428020154817298783855492877766074790375103208354324000383543948135393948609124932725848266049310795959905316208798677411228907707244370473798479374725695566546112935063085343627632430882927125390334248151505272775956429483370605033062046499206524966480700180773284065941485015125564396904917295540583442981207361512643059713810780476069224862919894476279457340605740000725312374351298840258277308023490895553379074763856227708289200753614649646774353395467470916891912388593891073854449344116957115578625764654086298585099791517715681464879071661608104826146955841259522856107080509012161111239668774853680093156973704234352717847652304418138046147033684195482871865302739048162696491254646441484897809657987782705072093800870288252161564801404665592625888275517861118500126896008568189006708480579939761425509832242926696843583875618307122440724871707010375168442105950360526465159208965801525697170459292553483893225925459608251424342511845834280611315899546606380076409845354376986594665760353597112612991427159448539448495636737559334447256673207100802430933859708337150152764305252714282493475686551013291510293010980419474470517786445809296416734126399517251870678600068181640881609000687283641275718426603222022940769261450880982773977062515549135823543278781961781181374031899668207694936864299075650685617647353832603473982467078572724857676188258172733091297242567957925939400474407886467265267859653891829012867752085064404336827478728081560267328083880975872200814243441362601969895543576197890107208157517077307864623777689601159411664463625910625734691085665050483840971193749686582850964042050073624826879967189591897201390997965499953120382487958989983626478866205472039391188939700805128308115837773382174870681963494435846951200850253068308878842808529082076898307979302696674995895710980340062628171287161718804980022809446256004257983349792259994132988009650106690061963763810418917770721771277034740858742757141898726604934781595363693218493886934394425269133738611859674048673365891764082161996188201226189317686514625766738040072280373938010505524494754302658189515733712655767912319853048699497936310142433688284979037306074634924204142403510643736252038001779036887502920389058171846545655733876399295682801467957994576728581122474953429805420649520488804661217387437148241369713184107175711363396916681808033424942573177839240009391988459862068149535512432639679669069564304600070596731194902303116874877674763940160803749791515924823053588138123381039136480732084164468997658308695838609930637273350103134004851344825259727378276442288550291980790023264837513222581686462235601293180667111376385600022821811211606615896455213653647937095613653910418167366837849611790840358445240557370885111279923851136787810216559292596529149121695095802039757994389396705643696458816955157572413691129442757168803442262679864880951447148779393797784724702988115043152852377541721548967850009834188336752320096107688416204790714551361686356663306513757958184850662600623516137007460984820739579073109330913199719150001483750372568910174542269350807286795636473138647615993761087986594660426795487420051820093655409453275648163491602158394108905056036341252080273899035098065544907884980134186876567572547799708555618417385027049692795889669536932968124682739273716593511724421428941386800502362693633136719849354529699739064381744562485935628914490679688168016908082451179911015962422130517297408970619109537951384636188181563375100319660564079457709682687684821011595472085910246466262990174479757522020833817705666406524480867285310475760814253713354188269188756857647270137496847766215884081533898488581564293883357463433805426408340101944373635503085478912666733985642983297256278804187030662138059024104770216161173041647881871542435357603837047409152561355474279931525783823491184839401009746727690624458431086964295677136884448739074889038074049761536985854280491010826862205219946810856704128823237542046184836661792345515247678714891237186856172441259280815708919803166080653777676379803712857726861664551874711684226183497204668553705547093091097037440332977587017345662330811705633629575160437404895523048646457797306969703152003449155950364542232763517455643955714466609822433207054671619407674424940626285709050218072969044946500108707385427558745126760975279706367405284921423966682648766197616436077963722449747086873882118146290853314474601535120056124595058066245419105351624235798295318624651341744778928756663529477330969072376591173973738267772897148066357044608049702430780903297182239948477763586802864445352681828786728365389957329334358356427450491778338005070211570237488855892566710836394793527406615717142244986113669136190089535855746249871030602559860521523366416863245928706081839952910301485179810919673983584438225883287748490389022833156195680307998538290453924186386657312966672885003999621626849518596513250420545746529803425490305835998233048838813286139517879246031170499010969215451239301852642264208121804308139532495399243474347578114520002737481243586847455477600427918790801378057533116188980037622833825988434802073354212212534839598406898059825294821797380580056352692743417413766084015145100747008164721299441986215592201100089581849923233753989420561872297441346594602088209649280201759927022269625693099735481227327256099789500845502798380138330407645502748674638864267818997499289149700845656822296655478537907106367318628688826964489098851409292510572900697147312059506274665142166839110520809027418165736949729685361916939997574831623608207523257045884567123735818202724660908877162933290649763654032365980531256075901318719673684000406223283618129815810254012988351008372747343359709446629591287980874362504965269489095904862996034820897822245540718615063908218470166527476397721182971809200870684449839656186229666025436074695331793085793705136806055560498047917234374068423487897842197315543067659678809771833216467703460854948536918208004104068783767520385852514396635622657647704643209744244935652980323643481557304360519382774654745975583089613361174491920329056736174530796781787662028952738189290288962382787863280831836782299139214334395436950191376729919085223323314614499808266400725735877966877069725761719409089605400033326389671127342876087964302005020473342221802543241025042698304657143673491616913947768204469333199770999990337806363297804025950284930203497068903619905531835519468041878063329653118126431521730610309347809264598770605005602913459787437297802644142571169768193562892191620250956369260462710388578704618950371672410641164123165225681951665341823574006668407863422612749933875864984332063458170572802934113610338639109865324964333037664225215164074877708104110151507463914241212307623754892377492136723903633350242107932365603475662760951495144267103458625882348310921927173528142704719567618350738884790586181144153419640974838752412336898341061638948664255978157111733114189618761858418527865507701562689653395760791742846711853080953407930279972048015272152423997436592675160934858241931674768524352916617772579362354651053137828557322413187984596919320205541508755273849462978256958852187536132962429810493478036414007928209550750178554285685233520837053207672947359441243767612270495466406662259068660376085059192502128439316956695725515591367751191043057129717044749746905721187515038883499973396793314038713110680728756415829833088704428305853916208243209436386837529048704126347264168669518005696988368551247612606714873399609813056776321444664380572144868328628519041361303962380983299562099513577207932001475434380421364784206955636855372907631515294089607778727378393235270760067185225422971489057726999995905862920094372925389503363044340243401825733695893796136143052768471701357334190742399494067728695747223556280341363170663320798134247606080120707928125640186215701195713641506408280259626161754319461289068749670256021987622198895532512625797529051205480049248249408104005081758237024939729275678738769949415641402993852865353483565916823384972846579036935414080559884790064095910737191899227921326987146885836272391813530072788985677011354928000052164048221114182061382882199385919943827021949272411992096367947887567899117828829387670484594133671510918105752761442545992372415389547464699699046105763832828504043269264289983817840962035184097652825651575334469392041749683448943324613412640494970576618491691174396175369661785814483536267226049989742765701569436167103574839980367231857549940942465061211706544369401741841271235554828876354537284220763585918006505533937104887679379480598473319217428064567854827979544380233704380820294604256695080417587938711934693984769824369158143540077737820145073256672668939999099498036071227696401991572320780440942089392078111476185435022953540343643619980929932807340988374114225428551815493048730833029304956166750047371441062191399083326336044567128207315320218912594406988921572074546687308452749113967558047586165289076198788950056489812395831920783531736853651561342980246468266073246949226932472463607031326376169425406550712947033020313938500416125433541854838344872989009829913503213844519355059861764740871656044688153172228783485841981970995653396503556090161271301903337505438033186611251756745940341729773121929978474296136516294087080077967072751274971138129823814096128116094000087735142590691251572273860268052744205323171017044587142347058550934486224005375892994956594410320693938624075304100669766113344390257424373322305340908502332480916707825843187707075688664156039546614881829736484958851341133369286784871257367316075427324811329892748783761684693748789272717875100963963096886860099009894642286916748574066313827910491212668914968071297167764581764744583598698637894797187149408521049727153148093370854233200630926984900371584317126884245396259730366560238709788667497271178936766235404839090682554140016930771102038145183942118094857408877397390740838734274673964631245554940244072344329122439536565473385447060706178049950655880877969577190462356883747134204238697027263925142137795238107108545829396546740342227364227814253754088442748101689433558714453000491102310047130470599797096373432390681963478741062262617171456262154507915099062110765522646019807025669200917949421818110714746688516909568346203537104357395799827741037999536716781044249169706331968917378787736230882128605803328348896630450956354208389597269676878110739596224756728030090247499136133865323967980264825121634092479329445377997882731086819143388830146189359496417508587399341668117088908307247678152916722884888061701710205310323242344683386950655580570032862899742590429917531084045255008747367733296571558192250415569500314084203577044735312493032782842601018856274604756382615179060341962805031228241090075138526381724048201170013126550285761157237687253368395772963143280100354952550192486332923012145370346022096685048859782221091519656359097643764118445212934088118915843752803668491137427050075570349474204093166052204851490859081892183334081073512281222638082114712613047863529323925998472260837103888992856745560169604781173879829870832693573709420802400257631041062252253023154443710612344079765615477648779430138339014394968500132926085470200311274563362498076270144526121218213867758302649850626059192968520036743595961570854448809729510863913357624196803044466407492311680083595138771710011988532085839367474789726991856559538714564704264749346492814432883925077258779870643042366602214824504185921710417100238999533585047013940301397885886809786538412597887769573961896950314200809262336951575520339819736561318389552106966337214050656050282094238347359763886043233084296605481381761672657007402250666758321807434114908265785355597008115820594575410373752675408849713141283829141676948860949300010192734917105567373862222771434758562668715604068784259624917239174141028194785898386368038759027101836827531777127970885600709001220823317096327291203122961225894804254348398424008376609093576359527400618632471321992918144751388431819889790567554539491602657938877421611152689679059345408389221131377525798552461782758722058502299433678811469953432748133991629363582873249719042754464940445161632503730098933578307857868257220625109891183906329226308806568174818042051894355882334958574855807695055758085983588679126732350729449774718947727420883148247450432960846452648329867467636779933450192391442895663655866476740106893729048863757423882572500260637432887091436958862613118975235493954394220657306819493570645181024597636264422100296796452040716624132191445828784052593878392115694464544970189197328060871465497568440651531025431456454873991308787920738124171039188763781170505085789051288474680121268471174590937930895301242131335712905729448377603264367188698441171261435299646124494836596095034680460418421573287161782136628564760530959650199169219413006511807611743923131149154394084002611089442215490844205977915978331775522433669258581006552159731714759100204099059088615921141648655073564651917312977738469174557372007849241905606227808407847931590977383906477109498850342905952728142913991957102224830433920854752053391306813643000365872107385482438076931702775496345050078713353804413742840700090596467342216299858388753831796518477179689672185693079078630500401598390714998318791929529475893973616272149993414168952527321000280795521390367828163727924055792876842642514824140742913542354458231800645195428272322161637404012692019715876668514981562851561796553171942790848696952459465887446913817053918611268405602830005007260494460864715871424198015187943834057233280326208893012790386214598530206267496218577200120574396906437302788871057877896548182220164687125150377445187125938383045500717325645493841424953527717806926285106113042742851392932964720327709087018493100258265057515760383480404918192657523870858985733402373804197964407493690912056063465374194212239835972991711542651646669357763185945282042649087578870117143226881812528166031322345161424167589319818047935301385544057072463685082775189246866334471855354945602029699441707531085012678248895321583237487732661664507501996954970375716759104087787017735530137327134137507544961098733839436802707590719348777795069970468284411118959833640593497097143136636193263794831585527049071113608614684508251280250793182725641805774510477080699804724292074073671894820870166658919165117366684293713903515411427601547560832888471830046279173336225753925297694450041838557912680557758792273700335461639846472561063051672485388466518856396563259790961200111516083163130394372042117804044575095802811922228358811136803036271375229565626921425389885715692458083703040264578594950207188850489417559846711037227936264989348214274497424862084127565659408657887107228088747579826507703373751860127058924092311191370559596760360207474269703722580878020890716095302057710241977792803547724795985321464874156318463902130818211737606010014278344649527473191807177235963443711241912992770072174706932639364471384719979529115233145186490367204366865427853411642252288455103502906824330718842619968260310335166227132859457057456304190254782937841319149151046101306974916794173707793238459530526287637791055281040390207515260131143381767276166850948234490330244516018085995261241658042375168683243980423761308459162039671544636585717083036448947820801341747027103970719432237518658460152718871261456958626606646522964462112507297044413640760024610048391665970178009975724042725052135148057936920538754124278410720792806647770789942258543410805156730126320811505263157729216168282656769812167398560454880406695518038179867024526540884118341954234766013503109428494596456136287024504597398436607816685614206814487392627047822399129991449565024486637181047772811128365126874999582841829436854301455690360679247962906746755193571270233218310916553247534045327573371627499511427494912831142459296102109498758434110452683221327909582283894703235401821021151134785169848880573529043081334620861080866907659773652674032937399858091566740305042620346772959468085974172875418426525951845542930157243100851590994701886263761908122049903962799776375011592585816484962826412293761902600772734823491154187414462320407042404779747050728615161764678124108959645068744995055461350800019634391608333447589179814756232766318393295674507560228088639170481665389712237008072821422229522456156170253867282536066357858757874865216429895509037255293491660489846623082572892032735647124164407788364375586297328591901526609465860255306974453221329010228417662441363381059172103378553608087806075590834355730537441085096969606470665428374014501935486089664670203657312258683744209216212167773475622840283053167256004789782789761460906308026430865904336655359463858596024336450717963744214759640368865426878192930916761137811219165918055248189480582828959149846596971849835154003862367621799939141501461883367203849950396065201247895731814630083593425966008393959588770846104479362254667856167309994381616913494162202250520491412297637030014662896862080507104801355492171431499357666275782005821627574600711858768121359217142972792625570601048906327509897444410275344135773088834523328733757920922974579219713608382276006643263475667732135515034808071416013715262022494680066833173272169846861152170515479680324119094933366707473436711208116495113330802892168929830962985342781606664682046848550736327333388982877768470291107260314291977784961550939576847901146430772068590121933511143094636535986834123330460358926552503999095528700057838754716882551667497864443792013869995522330712665614286162624438355654122895628631768341912281424410470326680981048907378042862928129314772932157265005576726771924736284931694471909877342732531143948725429528228899917853349618892351500956782999624889339157145479604801659414321262411949658729219144240595454758667689266958590825073877823249517064180514648007128514755112770527432696816747883093607105432294561946210732107668135751430549745496621795375673672005044286376394332956648925612198278158886180859187817678503429086329709393625158753174611891693133566256094701618991239166381527884678356963297023867638834699074554157822143865913707642745939722965582647809787054028219254787372529445185638122625780648176007485134783137768726691459827810906448069032984020932529639088346412042969508049766149945297777739813795979806827725442344738767223452205832665432947664455417372451017234119695990178847872501819063639056185196642962586922526913672083873733184722267088091331240764066036458080618191534462667633420963857223192231892919178541603373476335450992256711256166278094115861832978859137768784796633133057593990932377848827844647973100074889673259281329785995556776060678195801235165411072744637376796796814426534753085733787662130736549847271780023471711637745232781929082982308247876708119009345760886577847438671502495810397844035303537364191637158909493150611928516990798634508059300019565414220274760155886148798739756417535478646494101798106829970693481764796190677040582662498286519700667138569407682787825105001553678381112769516499430763049788721532799215751132027363623790587773201275986459699950167472513505345930996310743738866329131224546957661184069001724086862523612427345481562858397221886432977959016308206414212057400856413373446471522637340305914246328479078789850250442949973070007062941864319419833137045345472828065350222192408264838197462775310651944560129193923711698667515385675957532941944761020626672199869235541821056996464113473583601032127363577348845884356681187961772657613893400368433810465241132799629363818060590214150506453363907510787457279646075959092999202598431733642856512882668649583366021427339582864392168701205839708287646506051836811712128308701844073099127289374792224214873015279301321578793896334646641800908403685063855797535082361272956336218412491101407005508369812643640594294699888665075726688140217139392357728236019455697114195226942559073052445553516918112373261244468897650938643184122679382727088558174215631775140250970712856141304673002012117327565414202691662461047912091874220725508712687898453275755363045913130254480030997929587150904028537936837547525120678320058758912751979242553100454847522418488905141711438186583832264059917418917203319470120196683813340831253354674085949390520716155417067382877191256042641322555694327306507783618263411486730738136696028607911499333913876803829457107718261147287278429200617459339382398480249335473031810214684873357831302288753373095133515886451533874017508247498068922225584153629562492606390885238097162974236502057254915177014690650607622733386357710140283559330864417899540479462756490348243678603655082288861761623767297010704091277048945380209882774774949150088134417945396027838829016116031254487366321667420009229936658024552508736960027357053136577322286783089061629241589294971165571090482480242872437202460841618057862028862071685490869806047952398891700663197112703381756390748434989594846793832965096611196820410362374750797265653173672376805116286899191542904284540063336286263062926276279550887013647926366826965814733859332375069442096834701845658631413166724123923314721480529946361699944477066631551187094725671658374311584185011610271520007561052021937114457274244557239365920277598949535111092058574797633059526635761988768928570026548158175583078265255463833534825562948976323014277299988312397282907021703285770687962965570202078125276890521375636002120720086431402234360152984786837537282323170378977497125956965099607059580181621238697768802026440993000993689344573388906527330238473993423017259300784516338568953113402550326314594654206754591985694915817965980523266498311626839510366432854699039367863643357742026984256202414012078549480273785895013539607649814667423361433539193180960906173049980255255053036451135474231826969777436586449571626506483985376072852808569246808758881956463155721779711240143655767966083210645250902179104988887691939705870581335734939733432254409824754227193788199543088384769085573975486387723699870104462570118005032956622990603647618163129995846772934306585286478493294977013644649463097179393703566315775270870579012134917929170613500922452064120817192592439135757412201804424298187882365992557284180376263857307668411772169532596123175824173641612910458759378898193784526511493996238475859291910321977256912210189128062669465671222335228040831676018662847193723085492160673058872776297789036197404640913813593299456369672680411819549756527906000189728025930412708150119470907855957632162208264660342662301015074968113933876262053126413240634623130041600984574830840736866798778702337071279275996899642214359465549298978712814763127973837403339908958107954518890557445413876781548636105019556543494790952020733375911673563856906755298922994287280340385590185933410166998961777223657847980187033910729534178935980548445550555999460863373867215340462607948369980679680951983849599666088120545985137553778793179750868337541447950093960731505245054734079044084619561751079529435895644123092742811811403331911272961826082584552324958029388541183879553159762794263782317629896973260290322402168229810755481516765019436181795084588584068417441831297027490527917797815487542625442391681169149039035879726058801094418149357579251063909174602580684478477365540983853096281011536964250703863507512071114510780223659327180130621582325737317556603722454381901812554632677329219609034721076784530686495974941778215671387451968425756494885147175107306442485594989938280129331285907539176671730126380007633936495059129660563796376819283813540579251506813475316518297525301863190130787747875087627622890569158690901349768381053558805998267355868431967397082418415818715862869304759481167750368712698496882690678006255046969768227020997145863002977226877197764044681338006369804127835353996991550963923469311315531463621881680634729056428908704211512612489495490303318056689283197545179057374403218270270414034117884653780692822752972268310243447658252239179268818873258748625762563512896926281708315036374030957280163733855379500456236681821623462466362705328852869674448529259508030176488617269133559087833063597692237946076349378613019448615754792308507671062524643153680861168132352682938502156617140351116883421699523838617532750970226038499970080430457576450756951483925392084360655906257824534390975949334498832291487821033311928567752936533295845877265249655058290253392744902605013302624979296483266717596992841141998477236987774713141869744403247190082877028734870494913252264153836104913007310993139498129118723308822743946109194318818365195499421569806567070576923291029505790545960638788180583132583775719854698977242305021515920996937636114015773545883861498624457888410006083249645399960877013043962415198682693262308369354065755889979234885451340280707156527856134364512516078845330368868494158512209617035376979363475306924945904397889575253424919673424254208844117519190015169711471238435357947571724273119802748679128549339547816818503840037904767198026040884945381957718697037020638659560040087103419661516047393559503339382623125836804295196603009999173316195236291582281523884413308602768688813882497866579154175348464968021608402388980679302690317699020887510419901006585202943532095471796753067540560869464789572738948256673494549427735506331822075016562538993164278044616827680465047872088877764692812375196918274313720837938484566252628574282000919956441733834779590676719217463585692751519231468134848001855440382265420150351995117536918579188974495742539845962459701349994358253744926617237880482591935895430457262045304862910435670852206457134789030559212718983162091020922308374475643826744512423625100084641049039417532133573238522940373896692583600260246045193387486264847559841726903620391248522440435787775612189211557938804065475453738670169971703279840449375748868567368072128129696050834691660961274987306327551051395228604675785239347539583668143058485735704818241217545556402864601027541885724937338587003554978619835782871649567954276123747958052978608727095338889487298940980339557648445858959623115741616063676078290399664552793457865756514753426503922371778182451351292969770303367046185189013552883568477383837957661923706974004422807298900936766254326188690571660117346125650994646630128244453565986051731334449663378309003219321776900483331401775936198230653903425320640007430276629527115239769908155356810257896199867142648147240977501225399452052246048585323961637617159198527159422576587613971875212612853591726807641037656501079238836430799638959952554634273160945140535290993924730669026723562579754406052675146538286194634760607349542158638676138341671535591491323801935926786049505600911600923114264264763285524144482424191552838585919170349261652639072847257230512313347615144515918726441023894846283809082827319146811447091585667254968500461969045988976296895405023702987642750786720039881654885191861009728984001100854401632096133351253721412310214041343474315967756608269793575335647880106327565494384808782594376974568682033541099044669785033542080244928863985004522155110850645592050120193808631360384975046429370075283262531243702751525377250222344965515590235981831910268380333190338530536973527036480488759250098207825025459655697044453804877744330347838735942968643159808296240648853091638239268891704450875179081852450929109728189232374336275964245072503705952434633995260551520778144685329773751322561129585676557102646477129523419371309844651346204363944068621664319459653018771137606118955028678947423116850338996117311039052287557572357974809203417538782073955073499291024318231807048291020426998444198651123066819385521536748318487604262267848907772057381845990422762205812294077086484469408097000172225693116546091692942017307848407558547304803665437485023269862628104577424801517384084049938087830621767149256109486927099188014363194071336186925861305847810045466779458528913817638891879112819739627638404065196207324926995645443160653766317571166103106966754575404783957969970247547544780090952316972129429288142054339170075096630148125323133731317334185789891880716197674839682459677471257530755062261530646597333272899442055512087668137159415263900081546195145340862329038239270115723398971780492782725187075137035876136472849346677845141560366330772436981255380819427640565931738123756610343019931961683284563679337922813281366415037437841338003536440165928028808568682899859549476407889923631203266517566556787829165618845269481157877396318313270467846488151046467624680397546233268377492215350627863970969868335996715029770297680451790718555437260939693410377739208944626109467283352217680772736677570509091679452630842718286480323196242973050471897152822157733247149971996549021790700606555801743174743386415462327442500950319326743093066851186635641533115963461555678583364235324723990032275041724781027453076780596568078057559474521374970957986095742360549662766528109225305660850580366714558237543453554606698096647125768012726277565442904167527947881361230884451583344196623129014990335051750896224370082734107010361901041218138408360341164427256292578329862903621977304704633805063592014975318564071359382040434494257079463714892098195769974316116364661700348119791548803782097839401800052503282111993780907488962315965008197014699908343640351271460420142751777583674600490610960915311302288022040781937138057525468840134127299220937796795569378481347336865908009771837759786890218154609246455131050179266699411049540339445754995549397824207999970466610053030855060223262276785297671827190945765073821717173146689537157251702501168918672891789345509259767284297082428316477017983481856811276892478776190879778404030888754101439998108224888938726461006104837967127227837471871499904859069505278962315517293455812038296666290313020184078389752036153054077582819513726056111147131574187499037727220575085651195542301969707376033065064909937726901499845341575587664607793909465897691321231813601328580622557548702166614096457687949860543609297797819954124028209852636458808090172888097865442726926649687591055877829486633428783958464403225320265587317271731721646913589662727546243861824122967804848757850025374438278583776773098607798473343518844027083563688943564026787150083639339806824733444950348753822025444610493479208427173468985149370204166077564706268951482812279328860755978923925200505512788330431218441535229412490145475471659758138299396905352462321664250163877639786731286749742168394870956524639034239142996031910247659540310134721096006038832293690854611052245730501105801135846896663276356596579489306458617742518517376489324646685551040792113397948928492814973072323211092751059836427543322170288706709791578422057714938898901962554256397066586738140509816657067769839739251359800778025246637798511724076939806179940144249239650935479462866776471430272999081709910049472431162852698008509052979488493654541656901604417723867646430587285647188190509932067227578442492329521581401866608967438785868571193053723403331880000452850390690125611358557266894527133430704134395134718259926171507931228267654837923744658583304049558312296141334934613520059137014952201729440338923076101361422872628497291859922160166651648366363604967229894324410376902510219352516197623467881371503171369781031988907225256737848230158144168424303973981082378353339445663116335367166971233785543422043537403761944396774384494586767480061620345948101193068115909822489453945015922537508837038276794938306995300416444448799674798779791346055000165287026746037956521566700337508687624442567064469704496912211333328880931603337590938081395601925988339597311301736970519105084289430359382850611635361641218040250552391161121228716807141870987732354488371356081469015662120963300803045939296759465032314432902842163976108627173122194652752786346428045047446038937534095241565237674947954915035050158052890636289801422797378511513844067850337014483988311646043733312394407199333214660166208708585287543401138109710298482916102059124537971801391208855853456372049807929158224188352072617475289810645754400220034343530662598926978778328834594756016295279823691499126850790065794573694473755211418838987777226522255516317290864375823964354690107636330520005861701304425350514005695756358244279610993476288451352476959422167872748012588636914233329106239554654258027730929110519703790602930204070739547044238472992588716074499237113493259030335000989302254783272220206625728923746971651915711330081309331187985451823935405313319007864855735533216655787385628708634990611266620338409768530950489429330297950758983088085069206785309005138487718402265572481437154237669265212369838312808411821975641365368608705112319497967561163449877825989225162813135123800136089118272990566241188803744291407184271247038648258336983487470478622632672776953854008913975941088171142581044511598866933862661528464082102001948088160366431610269530038494009654381106564332823451374100178665874686277284121498708769041985390622392264002445288554390301442424174707963948157875809141803165857374933592176891985593988269475345728994305893178362298635430888581122538931087266595728858543121906689138898623834195199147597678885312543043616573938952228755564693969196242457879116656898651051784662119587300548872899116510194191158551772537903726579022463334607155470906783049159975586708624918123790019006065549224009934943126926297376091219662002291510772766000367531394597065392266238195960577269204845718831876142496118301826386861968166380359308929981514767772363750801053258818484372261939827706308160637003594017186736562610752727096317516961438962228555161207022293818374416599715130194438881173898199427203371749880816697445182874650058076323603117950202475525528800890143320759628397875531068136707784358467618455382819443781977572123612561336754838182526635489634856768127027196267335062805805984313734990990732793211701967116251593018246379326451650541262593295099826823707264695468766138580934060282671380808928734683387714268404631760934716627126470829728835527142775494274262654061992680356498108396430519251431442819940834258027207986156313710146324100714626320184192482866762343313218857316274492163585129686081049936044740999675903012991544546140009233354206175432007237788555721551546152454796555755313217129644595205967312470004438902562921342038749290309033838393933546676816397222096522281985494592237659691474985160250082401171540228826150712782629631858849083157805671424533104275933595542016835329749473857154699767479776690208435742463236870674293959599739431066184345582915928046719693063630427155588849262229206222557864298144629786271699019233105200434846385145980979579319422597820263468181129977804666464596697094871974127152155248038172190503582035872083624845236973464129831231899402156524129140616605692788508121329770630403708623347014944555066706345545793906726921233271853939340203683965313550867448882250962334387907395516135842716077116760117814408026451864806752470631177089394339143989394456001154343661503813971255493316950685404823475641170029621601223763676247078100232712315646826947498440075436517698392881299148735731581753146170873310900687346268452506305362711025370172273277594285710098091101849095345955592592304885398809629152912484367088780421768704244575955862256861102664975947615720328355865662085070297298599118456192374404571847395462803100952344644187470357769385822732474043954906960055094216534796077609838053913373579926681542040588751236761629180885209911629008986291479659945015449160650914068933079516071224721181205716937166968756787140475637941950233957226073982349150378262679785620962984575015655446604188773874365108463213727787186955647799219313249934159023918425733294549074689340695967993130758897186588200438102326997113654272893800584866068533607612544829570194894847397262510458546083809050972013403506845349849184244386113271695358492256411009004307514198518667117313332970121859157662708976045318957343032347149121684510324662998105499944972643333072572349787760173913866240539136623030801843572992359653513819884741604260942780968375030072990412372967689860147564116303534678796173078047920881482072301062550926740526311987579198074778102876268307452154089045776676389715133342860213889291376884037247752728849448993620197099056673696645087423445785650026994399499637735901300105763215615374522840655512415954475237947190311776044598756744761106781359861685540043553663186320594390404194228200625978119656647045323002251883637847515902359204493943214954304015938570024533977415047320125980256223452769647889791832925159430979058850832372283570202691781432935720301168087276204024945233378469319314503742817017079730413863155876187881633367912967868119004147643600132092521650740896597970706341432349387268481288398347003158089595086319752473083643153752419002634617146537279672050278165642379772762240721610252143365493370933685524450478623656597905057825146633092979441027520497600484254923031381957046330859608739460139782428727520787616736132001930124978467890353271246493647426673810758294786045010409335861038326437322033547722241790856806989966406478945873951212258852718246328294971750588129553643660225815721217151378384477338043090835209906132922022258198838005786960692744028704389219452280400308214364154630273340282914927702969622828010110171218046595914774511008196591324690624867964496687761455542081515264232183914113460918963505113161928565386947037425196219312572236920873012655650258058180530108062188787894375806721848984906085621806031312404459419538560386227730544182887551637802138062451930243084222074948751332112316687128978236802537788292754183721269468762984979867824599098226745268956562168156212758356958585196372097028891361747320472566238238679188472354003616395557563410188390564572434287756473062727077411836997789317063783110142424598624150270739735681960355594533409495434655607062960174591294124592657334648763237253655078983502641982649784971037713243895628405548548229841261417026412017088523230726679822092372461630296777556318657514755782505973277258061993006842014966922447196506542629983982411680791722513161174652083396715428036821751262014596569615910187109192011446942271326288939086545973110261007355381919282242526155023305694220821931830678801562418278006167374872794370046626177654022367980685904236282208737168299127529133345394696379711760667895900288170327465145653972528044633392891497429615655490718118385757437837930964036648536422235672877543748620065898824858487856213821996241174726031667149751507165353219868258468958236017432200038106404497488559891570732492103011976667193829020371420331133449031341317694161093660302302902974766075863732408392339897256094229996478001567616648940437538070737182828020878245680059220443119531865766415886589224349745271949987089166759354248973648955621254893233201992752770353477735992163603175785052230672875962695293228412061981413437766927660081275971315930972194530711872193771464846565735373074040063299400513839632584909242749837590453417203953236932682987633977257294908273236611359130905029137326783587835243087454553739580557728898375318662070031611919227295317153880901529362802976575265602915977791996826330523642490623869609647138546371727602563457122243004075795537119803876381273909893964440826507164813752083952991669076890173444034004175253654448522346261527900625985064802653062595516809878562232989338415129634720261090796859107642127714201338629500585634482641364377532237317680728814692592027759610692092208804370316161628403304320255673357252261658110991969971517817497120954427905325661089409512541417729921898961724637142471158240745530129009566656121207586533715326939313831885229166191256864398208545259471616179710125066833090896285450813114779727935750068370612549552971258099950929344842009646407940768161376720447916540960690028269877504934056245021770007167730781459984554418802785626871527047009704435447081237242995014697454850091580510057726116461316884824805348981606520985677601734234122583521037374508523314566950659094305257540680356056249706260210769948094160057564575444428810458206180273319328657203448456752580393269765852585653536806345598821888227659276481542492239855772480231441929950220503532621990682721698724534260848999857634627194847918414672506511295466736219985649895500411968622416594092184979968267788062211634524800165032222011378950536412315435940916085452206274406658891980326776368334642119840416318623271367889591455783996518268426764699498567669954693658233465645871405968432977955308385058779675100405163639715270206539448146424683467113777850761541450416409346683904875280554973342286126262763937670385395493210447944579720530530716593033197237094105561027673612936935230130065135841245652229613326917896535532868268070912871326614054693066310063703716845797327202401847517090463611268473541014088678891740458521479175659701609794148855580222000713907480833797623262601689474650504725500429642207237503639850247071559418493466383652767246662077691234686298398383491870600494722299779816456975210239640907035567155689598064653879056789482624106954402875052125855650204727552494263196709359498222981403608003612398391689606656712164976345516846381463696617240516709741748894879462921953318569615913815580998388854252898545942185820111761394425028950900508197179321414388556456063902165088437839702821033801131961231702946677149526640007749998518862579659589178469957764739379155386272523307070003308046824036669799008586960549180912439327364101122299410660622507761596040444128938248215535734628806769376723670673231659672193382494811890624207048250452137850467201479534363773586855389103868762994849396152766950119594163840626281350916512135995197254056350289331338558303485322542565839249391174879230501507820000825815910956584660514442973846594166997416852563976608070765764730911652900025401770188870112924337975665554641811582374067388706303824476361759551192159663803180005292796663204760499707134719986716308546917998036503408663183495212832380194147992986282874708850314229675647145735196712968091488592404646075603066250806776206452558436126289357273956369898851425685548739954554350152717211594320046003825114256999257803948419254260525497693502188444631477635803092037200006443259443909906780876273809621136052059789577382055586975895999199020018031289064206405699605884311583103394960900566271624754880178295579821091231994167429386121944191872442939073118373712929149984156917309857481204134832275829822424090583312142441727090923461397347884514116126309672733373577364266491155066378456757624109593222874237306507506904185116489041192671727179189988069353836534692392229957731443952350494428623531816940706672336828027056197722433044295565774884230880161304823882109372943348603139322112667209501321005668060833548039857212568644802282190233459563662611159624114287702054135474977680276738361388650551165648054830044538164342396212227714302928068919546112305551451868347032423444949962791793182328741267546921363402732526748957245453082958575502873072316088934530697983195336401020760231136446561169554965170123619079833455350102432077092457643362769388299319141772023097679669844686602108007456785333360882175422117683909504316048920575584691160207678413391361582511330206269243132138603019037107858057393001741672630070228762957587245229075747029857732426594397257642331642654653567394020602453534363160197681558782653403662964649368255060271647774479901367064506369784042107943937315906831478718897609421694417437952790655061963515573297680114636561481946003081539133842081175588582471136372015913894569039616207026674910279268891253947930152882951328156988289937462644895361835302304916016282286457099509744728475016321786290797236025040375050102651383187048902982665068912547952572977470119586833575746826624343866376359737274862473244914201607978872343838293248958219857811163172422473274003739836205561885055565638413822525954509769368805984245943151370760743448990976245693386214135416336617243241877915554787808348846134016816817923893877156637809889955194449935840215856289574804825844033733847284158342673109356964839431970073580546326991347160374889067908933255928778296752134101285710481632663524883360198992558455286706773309801823053873562036012020952425374215138867357652693822851288845048183770386696869034548011820041326940934987679932068739503316626734993679686858192924493586130585094247113297231428830152716693831926974361040703220216621875028530539460918650158239976692539343416980795606599249558017470484116934318029175754096768203321001705541939434996130062015607707309504973210738163307481459205568472978662788495330102104501199737711379738806747737031100759691652945008276017261363617249521423384383902295561957612882599033079124509942458422566601968006709302916567027407086648708974349714300426442143836795797855563720935165379397924422908682873125901940152904315984725688205789196971938147185835315140438752848676543366280316063443669942458589640499744953333735228908989648446415961793652088962306130871816707354314367996993592893061753354786890800230235660019649754572904985612767557603060018932871432769502769789976440979243672529315616235026575428357463799407664420448177852044386105970903708179765244347774266631175140555392670742125862599863563926423588220727889193379645165828206710042890284490629836784874115612593197087606015904898806897825940868092366843722859648635743017696303501837443437316025412429782155699005027056295787120986102602245713100799504196568362116986247162287838210844386860818890100846103835249768245083978494310850078773107221684838260327506052786166552316702500250881237691493611946471777881582387662419022089731288982979476826460506612876209413033486952921590249543406557594527710667184902547578007161841263920060292495012168883664968662746304286634836009293985643619856158691976603373205652008015463208080853862937926052472553131977490049866575241614672288083297681786111113787594200357202951238967030714382313560766566175103967703307421330012059640501629010154992604406280529994548403779661414045065334121761614823515187790427578541716736507827221392356156580296032789630682252425362525128225035592701285180479470202371427734914114890508877919269146302665188009227697884010330218364016539097000980517361103718369862876655300720239970249666986747763484308155248866015473742517025863513551969891323746243801779066236783254099245213591416546600391527644430856054971158245532390735472276496255369085938872271450309072962833509529000204507688069503860658978942287194659266818039368184527034880161410098052541050095765209836128431567438281663918567252259597056684130063083784164191255089105492451318277951010548743291579790121118541917755687381426013149495069212142201575708748432327067167241657396061769344828421883247478876103845552724018465261299388248823736998110886771289099398372928081926418800827258024983536480147074335485267071835325636939716656454271247443332435059142718577625786029144838648579680027354826204654139508578621140753421544575011325876186549646950314490295793909167764938336197637706757347298520141616474196916579799591076659548143820900514605272037680411941694697532198606341838882365360779328493834021914329438105673359761905175881237683983830085588958371689963477489260840345458474583930501064914885013348708758419112129101755941235677983069790167844192645577185231444874005688536813780282761356428925305683598810312586401317019997934386600348137473819525608031595766076796782901394341081328964992849937385762282217366437800654580644493557536771406391104083386309885890664759989344100346369378972708605765711875513427400637181301139486487452152995074419190036913024877238700854106798408494771027553867393145687981769321907142937209786426084702578599231604157077014246164924034185786865378180774377693715104252480738285133857464410387577560253724477289485758761581427141144397422248032549967924888649538097508821826927246752465372015054999769511314980674486261981478622212075442497459691911132629528188797071846932457137631933942830523741501941286826591789980121466861710153417128128979910422121853338086951068077074829084524472032978087092355998687295407095128315280587790690452626552123270466301145868366042030898980297556128590899405893390022253053464338748943559835900571644556317072476375675477665048481438848517216699169136636941755177680710039099688751146401176056861638417387875292215419545340892821758659256857110021632085202039202331461212529692878623287546628885048450412717293785559259292980466950245238016535773760001267495882448898356478078166753122978124069527724866207901060067528118830225351695976880921965745368186094355312946826656883340856012854536289069828284017934845585189826073790521064736468375143620428200662558088261108366211521801047166310500327590002712178881044935559216028476216655222072195761784299344158467117331379241117890730546458099814448780098298563167252796588341309202235492258489018075354193820372670981466636420012881983238611098761932498122855291390536914449138440559352303490535818655846107144995599969777738353478317037223505126371037314732931814947300253226655322222596911562044700730018448417169478340966578438600275305782236011389556189766442947947565623038259871687481026850924955515324947321748078967683244552277215613897533245387245669458470715778122663924548960143470373170663635928971307598449062868752116036532088712281016803011573185898769217935974877435323284732126626813367789235670991312625726038961879868480403718890830995922389427503743722016613016549116348133392538177209995248736852933319178122504715538793650890496055254362565665440421171615875817883852018135454825100887971580018864931134055856788025684274532302275758509671008773211316861230618504744957872951646985594414972901029443631119393649515370996634895811042539076878109625782628351687093079872721079538939776957542936140073310036549969764978174044534426162402046214067726762449917819664530886610567318005839290731075772146349019316176723265913374093752050715054288930976839265686399191358763996340040513738155967755270428214115936691297462080142484356060359416691201783853223028610643577039373661293599519369319401991094753022456992720917449457399047306329808381427009447272239301251327972720265531770314409234801152527281210225683262994243833300508768906223429727065206497134533104650604031977641770358599705827194091109735888701675475812045444772923839300297367732074509414350207012377830543469143928310156467866935784195991149959658809896886589237807580388965009733854272007873560052922507191723041487288374230404851520194906190545099991542071160244764732074938123114078466617180654607248580077216204450735173720591250186439873824484034464445940406465805774739569520131065463118820796173800761625170581656999167255642569242439873769901159385288281262198525110421495723208358892573908720536978360353970428604724442202219381667574896869212500184570775724361191959233884203057569337149768502084718526243117238332651555284757737157770324736164169952204885708475844488985864032020552762201235292497880343400616759901824678491482034393346153314939457903126629537035847485208214951873447299910622657739947729672964159301170127474452456713055866195890394996410144692067803313049061671556177487275136703126363508463646611974742884438317013062775232688145787761648217798587785528912142135598412554532303658134190817256444705780738122270429213266209150312594008591087847248513895477737179792064782047824719037880719812035264132994747739147876095550721788010253779089349457487934770580159211409429244028341332556992108874044519156287712034690654143679867561222325878039486295882019717698839001316811392950042978217918776663621976771099100272706601973974534131930959892441658898714191599450614703247020746277559975327264803934859590290250681103316520957153396953352550668929733460065271603624104260345089247670728049166235617759613843355235959979474616639390927950097756784094573598723528368935672427495871720419886259569037445987701766449760810746150254992954883715462198117177360892514465884496834413863641003426216330388675998048627510156247817118285348184430324342989356236868238649805651344441894320831076978105490806926565568704626320307800539346023805838664876251480911884659387684571511304461267405970644100881433859906904408095157582007214473271155212826346705140950558651363691075249851428380299489841799295655229213695235747483499392264093172443323308345852942233047421982371021529956466242869883069629728836438276787212086810071114091409551880928599488082847362822476702984121573372559793285659811624552075395706588930645453899553674243899901791476579255433590997859131638596829505280246854702791731552615653460699395575545211740508893437900848531360838024293887043644280266183694732021165475308988234204009753750165420426354236174232588130158712164321623661392422311806264196359579436358847858375566613291532707937379712468542807155197782959228612721923690284755939746474299467467804811721090053683884918061633189994512062157588525383530847178601937151387699125048723203436358133162683685564843350683989855773852612323869798137533501379113245686429656175085105464749616485267663408856127699429985273450387360107280212921882373046609493708161754810448322375450369959728740035063262083638199076682741101222838165295274405550356324904901412433574447597117915056514311936802004224441165381038442447769606429815990628202145533721094685691912667641541423764523658609732885468151361631462588214255730247597838312945181091674245823835412022209620018339829245190439823810395683493684163014224470260876718303555864935730101174025791996798563067749499469418264807468221534878418651706271755070053457773619051563770796218196879969320471939896929799613292135543181580138671687388745278356050252154659088607950267802786447586871123727055835170628742339511441502917430610580641674755093659631036647113577444375842507838899391201250614897085140896559420420225263327038938082282897048668310711867465401360250840843335141566744906964537104892429823702009798342937634994575881304938111939559358462553751101471163657580737594507275941940031054581847659618985248091153819700033507598715927385074391156319396799538731612938205584362590254699722843633335330871838512144837761335986238536633233370550927792977888690760097667015156537763004874539898907072087001995698207642703208276001679674895312381692064935674773844161392953991531452701092782336127894919356612363414023859609887452952581873406222599128065268962772698336242990643335539883973971590017575049756401555658348062660170051567697525118058986239826522696130380916259877819683369399277132837858754260080919397077694464438453300562026259815463972792249122539607807581444451200104569032841503289818239109457296709248414126910646393038263840747812450424214843692365112000735664436489213609269569373332259723632230858580278490750004291887337685405629035009498285185574349702541547782666209019779833312652984753216752584728902327151125862260932336910843998507126377999501026378273010505947426963181453951919974429743592172614510223267580812104136259245300079319332215269765684999855994820140087854853768697373455041782915709595767107913029898060652237505248217935988594591806428467503982203529201852100842391858955618949293815629834245858433272751875262840309874870362794962315416820980918850059409629615749531660998712611820760411361221496659022428290431154385722768404076785047160490821976057028484654297268376301416028749311639130890608136599728988146149901960510933773049212977827270012110231984920016061836279702813331033521037736648527138182291145358176639814963947852255812860537451447906738930606395917721469487763844921680669004237516114837980453698705120451569223174580657461637822839178946291957829830938421099038769489117230719340572742320043400669120747321047475182432783458111097981917900889974961073316764426105251285404179055731624235152367018258592378721013756645253441316757940714634042294740562830026250828375023221593617834000961519775673139217766566120169060861083259434326280361269894564529902899849919743632316928330287809857915847083724845614782188325561090422865624038032439971152866727451083597528041822448509990008762127218075839342828210283055372856813475545250928396831322171237245537956398888357237633781879870633356484721456283247401720265289453156915301648495314032191304422588933275682986396617934863026062086365871323137401385410529083796383914345726973827442800406306077858437518770202202805965299034095613421886571108984145672949636513407332592161062359036512833368218538070784659079157387863075987325516508841537777068775496014953729128896398931627444563729523324151102211929262858882763300094564198754579794218823902677588467985945093539141729669802220250842067979218385982532420822930572970432976234557085433959262367382297425977702633146784090589997937782864996559724366850445379671816626871073632664367972641166855683570914741362234104250778270968830176213314836588961608634558123301578026091464002686307143970027008807895496790382492509907188612209800307597713677478855763669401337084627632607956161787959377631132562526609791214588744107509859242602747309471134773872246444319902197440750838773527429122649208403561595967086605317215206635650676151412642139889234205480386249872276532556041115335181182931863317227308556622414134315958314109698482822235947430234457555505655335896273789242941318961944747017113249629512034146382898142298237431229061944337349115257049034293371257060212259331711174819957227942599421934239821012854874234493427765417247158603549822729266521144794374517469861540147178565769350886294463087449331775335790629502266624731519308086016914537573485862817344910377621300747658068945560959135646615378813076858770969094152004734617291462686366770804979401224226966921210612254073596419106991185482248104601584432420830350097723363700581142389763988678496245199106846010265795259084935758729677121404812649142990047937913530143053030802993362471618462592777494952874414030056978216800918453698403735320619953313043840672697732679505969805583307266388480827446229188400299337722512265434452694029831650439755268004521857786395229533142504507686052867731892675660476010841193161158629971741190809091319481718414107034000597672645826080994510378072873729173182662165204338812443414414457922156375768958742802893123902115456665100389671063199085334078698781248656119012198541051883955321932119923681991166577427690879222414918570312458107913493324085574994098786583699117019286365714683372823492983959669918875698874787024068292893850733605410021764303092243558098997909039993671604182597613159986883755929419239739859772280797346221175262319255051318128740845406934223447489255799780885626875281466353213231592790147204352509734305603806239068161653448146419528093390149814315759314080749415348360952713704550592781453389974528233830205988151940055933941099130862015390708227319454395713281541128432112402036359117689161795972128360590017843684139649007657664804974272594102746832024123518907491362104158322451980232151939110835040043305403085883708672624616204306915795583831606302464960066583971185724557153698032901071191055238856904916059434760488246478129435027178982784309364594096204963290525717540467658009410587056322736114363389675640627676962071084280508345672228477146659095793862521814092976049007399094736966172912353907730739159860069191202846535067846697005714766289394053180198420829949394585925263464369884991247329697812718820182838614873560356309589026957113874464883252399985033087802776364741482703923950837813436176701625568602388004572311631114771670383259418691853679286679036481243340230323485310554444892289276230974876343170097300026109870703398384955226388542018168517833797321553600997165579010081311891516598148861401513595192549334979032874376498944163323296074622508018038718054762060031822139143751955832979914935700694224864224747404699658931889284193778836092345050390114292386763102793177708495361114216222572247594042999037895433474124295193608410723244675405019109270928368584182283948366197012966501982628974583206888712503911250362036172887679246751682585120515719953390741990924261855537639912224983061048840103621197387050887718516515128025966024504437748659421449813312103306585910507797490104181373675084405970146117120540238730642896950286666627204369075461324424992759828008729116026345006116328389783197912783423284906738491696820716633400604387374762720103854283423796809236406598072175717771706017917672933453983230777654623851516246144193841957664103380992085361117351494109756686168709143740148890906926776083006396072019931095237054856029375053322674559210918464326870736032921552126003975637916826200704633088559798961662223041069023307515259349840394632335969934066503035180264893313097482638537514549044411866387648798678670072301065287438296735728148980804011082679279409023802514870740447236977631888478833989671090340397297092573444481573495435644662238923129269354479950243258004626093229761885826284269892877727030802271880395567803197054758092415168769859964304182811169170827914918147972784783411330333027071726892099602331874850455164753681196593549110605661794654500981757970213250172036411007538246374354444574586489013648136036623164586845035714866547947991769920550923551820519375672575227181262546443570960429707469512951948360171418485784815890265897698530425764439185211809844535544220072897802354172382975086804461318259257273304210287520025003134040166027317138788357419517777221568655582191980866084987583525323006236997767004903190356720370542976049771770720971359809542526520032642763553911869187151956028144826854604084011243459320036476334770444368721203248401933861743191376801294489700113045392960815113152739144775709866611567557711129863828988674513365273529401204290094087630035015022170290186518496395848211784964090288590967466723274359751300448509282715437963682173345981057728450939532878057822565896950599758817993984228400626846093673380873698464507591778244241973597550475679376301347647138168126784886833724546862849451218437872854898103510724231657074864200214998325681981411224940963228246840815831758795930567365921157085241229396986115041815810188321373446571110813098826409367788763400625580326438223570952487090648481306349818674087862825611622951674966700706561044170308597281039323565824607392470142045776660121480746326659054427644640368255551296506476454633888895343995660017718430874841876211116678921711519530940652985827270477510524437617423776803275382692925855583847444974876324724113846162750325493368084839813778764974969574257358708025916243241891118089565803469507818616080082175475260173762941282821408737269853879283975792884797203785759904801166107936928613244505003467831859552774843138650533175234291744796721012990333797664288353022406058793719309157541997700215129459776448934258198688090697002131456357724147288813276572909218099293081805198103718757620139018127925633110557297767987570370773511319589935495787022323217666761179499342197469144081824984387060527084204608688566726140990659153622079721196868582093727900178367970946771516769113484205434207937828187110341625378149960394766719136596265380429705692879073000634917399356168515204711163740244093493567649796066307608808468370617094092055497754575195108521179549806150892520596404411828530875642232729419129192206194938752442754810133322553520156123648977551306794109101670199839559933377379102239671790728493492671879136787623393096966715266141080903638070212044474363606587277062004603799231081968455833112837799331523293050268739629132749716343074084318139529481006942413155721141952706310108915224951132363502262886336911267886888896318167741696704987489756120297869436767184297104974412933010561799098446801771604270983866822689122102169108123666456465203544378903014145728008387778146492012005244089612736677880490456540627919132058245402475804409734338489500849856950025411821090596141077464173589494818136792682524123428841693070122105969059704795624687788163932279017734830377349539349494580520096315098843411514109648245678765125514959959971985928953483333192980684650094965940761267363879170974202219816822503348813794639477067313827578872463826620336537637405421302250581340327779732009616501812576760422182534221086724142368253757166111281828286877929259374104100909303942909904788392703290810993083921784807114409041933503742108436402627932642102070359005791349664983919739293455194525624825471908261072603685886032587086808984194057684284498014189839356918499888919211216115864499929363406588627692487367003759308771768112987845466162736215538897730094614780020377628855669438007935181507853846731440380035004539623552009295862926566979182551410592529735299955789747209255271381015448839051605689938045987177306174090144913286728508661835494473831688395634932838096045644923629184397173103264234735938917171695803075880833285454351293501999817146229030359799915236457111131531775024731159719470166336060066432988123319654590610212742682611235541715386344108767245082849316600428021415924167655346478253567835172712028905911015379054033215333841724976019053209424251665617338027089654463381238526374566363416413506533947827739394488377146550615830962030597748092612235729239447342738444953700669235702925316040459668886891345008726803823171736101760476548041620862430080582806719841290718124209355379784305933013860215350293553731599269513924010502024616694180153552059389087243026397319968081594752765491085703228108587053500346412532349191771003859549280824608634260464724618378327938166215766948607306500474122291699621003581640165202374816106660521502395099085811168862695927515176190145814747240627369465912864917830580866236279604919267406235850267820505064202410537429742997809660398808853611292520896454518487012189394037515570974560328347097269702698681719470601287309947310728258951788298342850111898553283053366167782944013651431641681528144594926427226438442333219796709523061775069222262637611704551267156154010588832405226603024767093983790154250538447800036090178688536060601103209413937999728966268107647837843211228245949396712832727372420585673730412965613720011656964992619006396795297755921822173970641808205360566584777646061591819395523741110973631608652954437112366254777966960292520291718378410995126757148676737281235060897335272738374309730913784752691919640936814569165756536211237759045181894965821803345376081844523155015308672105669647087157058119570671695683437722732868145194934568744558302294458381535928911849861893492979420189737228701840319134869519999400769123371925640003233483224983173471424913027622102413752329823923051451399028376983850030400820194165581535088885701472400921867425703842688756430758104994950219424416517945848342085396530473500288768943203273043626229993478757836389227150182956838257385489367658238844949504140069431290081180852540761946078712241377626572061257451716965781174405937224426251588457910333516187592986283900231265599477501712082728374284748956826252664671635205705882214757784417849902160906217285332142206107639439095052834723107103408800653280679274292277100514380315303555915516231260928461681939369324648267422045705914832446971632736480927309030926817040375810247438550463697635295261795419239001417452195698198455425911646591465231937269428921667242688747292011555950997082446749634751142039540443149614398780401997505821825594675042625031528749801390518087704159623571387566483223033201608216584764573027854951909147147905341890028449526616285059053045463113467599021318765106230219137372925611030812051433717794021191711394479014955900503232876632884107284060843584850373800435989146992405403054271721313454047265508306092889631331901165075396940302405798710467491558516431750589835003290104885144364624146338240908870842693547117402256898046224139611377283292324870136458450807691475178336382958469197506242468554212555449089032100023782364122027824614997215345837016258802865930313297982535777909661543275588793178469329975371643231260396042165997284098465436441450386483210310043457519989751968656816016487737705099569958281069467855471444626365969246143481351811401090015218957029827002843026956463445136522795149594069782844020239374109720748292504808099158231912457944376295906122991548140995179071334676374940634158554974169291168235878162935591058605194152313545382080685657908818106047033139081614686378972154650551497924046384644885482321966274398669890600262616994795689613864056727557446255112407776731451859416623868936442159317426025380286699656796331698287395352481340905545154925174300574774415907898410582400428575175169872578296405249110043639330834597284233089591761092953338963643079630894337991595114797687275157156466699355791297154270177528857279711723486100603707686753737605604210660089717081608226324476509798753065676719522887347277605630736854740296092791191905987591803370075795835352583443420637149184413489088973912285967037892378243937996051610887521858165876135311911424954315626955604571742179403857349442605506833726415592584348875854634056383065704943692994766690463229687536583902730141036769667182788930198379471105490545856946996404064172667485775755888528341369931796846826839271843595634879374816634602694875374060967201649888907456639998879606797292646288771310481153315593684006606998644061413080102145255971229453999757671560137039470525331497031959578694575286818698117754212540085087250922023488744833314430941718694420104065131484916515093421513740792159153140475879223125268018822520447525738882582698907830634237188098838423714055180932090849373075889661513887345327803324574738448676597868657153207238522688335223857363266126484167111568169323358373683164658175633617183048062638511512231140145283509801136033233934141807343498846320230245174080001351761103141200827347844089731853317639746877962951750722053016452064526603043539438366115257077296595693099446089700840376181995069251187926840386905136566276007388612092666810685535327493160654325734471468336100767556383585074368801959080283929391470088947339741513418353877024357815351209885183761212132682536982983594207784307394566877659333488529971045003050167423224544012953497739548894551735387583876095931852917973889161595442738522138519793743280695983828499895886922982625071850717543973487985500923971386996186049213875242085319819145590542429125313310715294698405505240083840222474311343584709111540432277703416701642277529538782026262159937042227321667209440882991320256681921896602929374280388990929764585175010733458649538531752621359143693301490587620317897602666476929103849834276070357161467588843195390852065371270872819806371739343711330543845932750642057976455189642879299432341594755267156988444679292618934330570801265171251036525744349368963623338848959040786419969533137523685053028604129477628068562627272410661429962987815596308064330714016815887579452232425986092822650650332421974917175132725821701191092146658022907583031766233280624187644618927735524117751367523357559665118443913821328148302749159179493884760570033136276303756341561367109265083218953620207215651178994705893476529084287312756873852689199853232784352771428095609895260846049682997844457597779472928858199795376386791475003017530475249659321977224109576342863839201196090056722548379634521810823238603536571331821559181855877647478404626062145906971936677401077680482172999872611177629621563356234781346923961677816095001424286278085249002924954077116151619145313744293682938150058504475855002239253435254848273345674780825607859170015281080431179356704870107560939768989327870640496653052635607800590743392036219636670556293442451807763605545052588302155578484156018772272684629380902007953170447104145647186100341100459173373301449981004468307447900291502730914524580963228310519828929939094388078086279804590304169108105230501544764153114680904375263999854553361753677809592075287908367962902356103203977892436202732177114467780797546160237684138391669144583795641185600149833534650157923508210159912932841396753973305141105114945474960090500977329652339041245362734764667592697681612258771077640663572428994805766330784608412831151366141624280893503523337548409778100400452415383612460382569513179165351124433695898737145240369969913205540304783201787648598553336040987899070593821305545164872219919251665776380667542458032432472175069273035205972240803648560237114454943179145964152507610067088695870140654371131199917517539440633920369312812638833192815520478765814855290785331422821825260470168093630191039501538552980174341428632224116320220118895162055905154836975332658588964405396004635460839320736095286425876425840150729941461038720728752522919291436929541704033346930390164264740086532134881594000060754640644646618566607223286407714130875389643853356893733648371325117538157283649906104192899559134076042952301869709726969607765203795643983758365061921451246870900397833124457530039154356689037261858360296318335815697929985346996096555809069331397319961434141212726962659686810422679511579242528316237667379649026959077122335714935635983767082884218634049139157876130655133492752936973775784522417712828998193925580181877325943951668657705050207172870020923054565298789928431434463906948540165636027581009060559154079737762604561403149273191650654254708914715395094161057838446769255090721976830488108853753512710781195165990984652959977487839714452060689839772891173168791114681939911249339224945512098322544112343950186862248988440327239379419667965866306831225026392978561413473086707265205958370158830600391860328537402306913010263931178654044287417246147139466273384659244263486684211588292909443207222267410863719062789373829651459005936222635681580698553396619333632935558890117159078121737533536986842549199801264350218941409452255150127970017831204628883181418813391597207598397841991759719614940294142721365262370782220825444530237558473572385068020770131217105389179610069470437680314245596774313182433177466848466014679400630752505892357304490686049671965930968205228588277653797338691114270743544644745185993807713489128162233464146235623245024715672534700461789620264700203660342061016492088027347221668690879501991416691845990976439029648233655244170090088106010175307076897050191115547728735808382078161034209008891860371986941573835418808506767943089962876131306383266695454479048583315500751559880247095353849891398262679300442081481025002115344141181309020638428109665768736097825738767006575608972642822629271748864527144796391203441746789842917781889394423569175937638552032503740806048981765515743987107289800926760726946947918467772597712150737943328910057224285108728201297797195829368544602991021021801044483812659539050086815343939248365535891694928247383367468466930897668795199993728974034062471595963187118524172752399968977039623880174746254152874592682798937760544282134875303670986399021169201051229686954786214869924005252624949126552044321117715578266870499846569090183707927838897404555546596179676877910217330326253489684817257312395783087262332347304197599739479376178750995204863575531639704025773061027989451223199268254740656275707252555898483288396057316227345924466307185386369552620876312371849157844706239380687064958908380995625192916614710145029344742809657766336072256602308072194540386837111809238750637317420058662302076106755696234241004149284367721340101988974570748455053135984505960451124288668440248645785793810407523661937838228580216868522681569918185775616482936309430070933489810981693784799030781519356222792975302785935292763608194568421193356736730375799554883165739649428886165331840613695959647482086491669775010520464292188514948817913934086438881936676328704007906387115805341611283262132111968619985370775814105801441612592361643548754073689851787380110325562150143310255460371544945736182802927472032420787271698489840859606470945239400518696208893433067732720821155252318530516656033641771921173836875034128582627783241079730181795277278067260692809752623876011511759159509333995700955985627348987928303464369200815773878580359903351535690871223516592390408376586958791601431922610854654169030931638621626859344009717620905620199229223177009314778264278917275348366001183460385587252252210857214605675599794789950767565531207219363581625269757665836781612080682420716775944997086475981038655068840621200422642916430369003992184350189685391009162743983641106904584210660719922366737102396757923244796483695572611723483461609465510001204785390230015326186789662470891279163014837139458735063067637675749462489005105549674642408767654041229311315001427370877199277999789418434718594679928578959900116669822659662464690557479909309833147394747945826957854622682979690665508147518116083087019181713001712439441889358176940409564094451758252740354577806275862766425760660660925396174170854636915751755344280689611471336735872323049076411552067974853213693307098266140351472843426367885543014666843545205010457416481460765591802393312344988165482789231120286707119437268753952759957937334328400130840629208858791262545367311285805129126653972117784430558008592224662570279511923764100233714517730582693575862698775898031464048092895877884113928021788394123370220117345297232970552246727769711657606263605424528709802944471246952942030245800392619252857747218797123137757320177161621805478896229918591942836581037688618017671381937897780335597623942311098893285373010708195191990143088229537024972561671405687217106401327866528717518216147978821269215431725861342844040392449903538745875813359902384464527579984747320081624191311348292338345803414341321450585879031998705911103825462467790587097932370444586631508790380784273236904003345172329043717618872765503920436304065661618626327560005925875210957838140251426382530551752402502636158654303431301810291704063004603367490421658563778962551977336870298918118562211475511466726926614619661101264795185210053886638975837578841523919805258403803239384857794480853762603945686672255104938565419910777250615506246721064290256236648446787389599129175131770895965439790966322007881380081148780736042074668100760014950044569421733875276488691654918769583418480804383153483384051061505902314030978112912371244024736903030733732047982534351537698576710999725784922491759105309124434812319322556873741080093246245505979923613085187718531974428740821323245980693504824004857628603934730152332955753480709719046787595307280654527571898104714031331000574382295301852995413652134475706355078042293918309365587016493783512411722793480233006434134338839451220714358242187794237443859942687406168970974827490293285772893197041689755291518160621006050255069676779058684060813122944085573238008555894597943910911521311391703707563888210233199735109424821487527484774606162921082191540670360890668134164170145632625430617946349876718312832619945364149606119881138751246028805509815020461858833893349256950085936364211525519292888538726118477589372227236819236476873954117022239523890131318078229229114827409049967936435626051159673544108683446140153877639654845608580876003611684011070865639851810167185508183494016187022610025112883510245088395579839037092974529102657189294279930628151324930254579696938320540867708447817532922374272866159180471574489747648382419121840667438762145934101925121066858119964477350882941567263811998864016859907012735133659262081695792340767250179624580114131663603434229389412718147698695887952363387061560347063455272455782202463191888244027658206743342849529322131773180472283457587604931288244930604808194422919762330466556406844636409619849688895622295201192521165601764443638242255817612524984481796013901665407361687791278666035048982916107953456118501214396208035645585446935061045843145773222999184723663734208173287385046426895987400164395510247151583370689655336995214008260449213352950915095833081515854994814471248117218447391081994420764401874795851070722231384036980805572707908262011612295983239510768482786524113076789891512081037904324882613994387441485207059803886715557740471336094093976731587364583988209662859269505201777390716273029794974143148377397456771794862460242784623953628751752946786594157221856487648367453192765200000913964653459931371429959690476934662659536881611421048219728304038456081457408733590354011585928855084920624603008079712251902309892197248173568811140657709682312973656266148546927218108644303407200599950959636791588465049770555170862191204925393850217594502590386791083674267980453856285860107376140486408576559499309344793452924958350723429618870739628447239778942470525554011288916369285759488530871450919134118776578132643355268128997313669486862044980155122932583926896294305473915235007589026667180199498177267364366466465400303420229774438776503334201171463603105109215890687001585018229089035292381090134707914225964635269710894933096676787876105568076112476873992829878964238939715307912708782633278802140557713423488943832382316475828798741807390486222706954840399834778192242035462148070100809057216802731649833872487539725558008342116067428865567421290028548512479027315774072347894538314630934673081416462925584847445951422833051476337971596774897360666386049461402334776804591388128496162276852412362820418192979074688524744835178081609988122774728138444673385892683221259446275439531683574743061558413258512023808398717609457466665327999033048505669619195387219644712298945282791052991148032061533069288785875884485930379535509740841635519818659662003362633237073659640225300873376656724582627635527544533087657659739568378709255012167006302936770032782344826471119937587280283153857832741977858169371809965971064801178396110145095520899899841842031601116815570827235330822819144777037551977765337034000815023469258575453507762568408197976280489953900920938740429899639698648563184625601705577614836099073714662611599262145466829023489663955855032462719420028053267427878720331227816016211066555796337002233667987400527999747395450988054181243568289523838730015264945169128662373277362717670321279687700035816498413708157297887002932928682388273557148072111826003835326365294536606910886231667296416146275934251405626335742352593528714891454070511071051714621755897036390442910616935660879557608770924745803933741071718466637332443393382379712028304568351167594810464175848435749960935936782305752200937982612385026373347345307390505717264295201057393028596122167393434159974143835197211580725394676444081197149458581570907493692564664461792314079827144104836439917576387137677264152133508846035259908455085362521007347496612242475854454370595640400256891536006235790417645201470544289782058115635496141954307008315065497058487368809078562889419677518505804235211725998433649380991897887941734079316394234066320419406134723931450675222812736984329449200039603904875127161442872075134637053657431973511304958726864365644862972345893468122393591059539481343698874539805495214275507273684374355073266103089074454940405227154595600890379643053500735652388981143114178873641937212840280348813535895344632033399554140797058367441183327869614332038755223711596944288624945727258113430463490045142495578377546624992582500902655600536078250431675359114837506677657037988181848646652908951506701618474874566819602981719465562024957545529252420014317131944003867177924853407905261027166692158716177038923578718864477092408587010373245768135286368538837686113053356671714586074424558568562246013099151037838193927034876921298492256360727390661171207971034930366144428148762143991516184501859736005593706502350201118608102039307118857209690389083116492879584035196773803215623296324316079707440072909558523998342723380455043765765775788426206195257296324906264049687125082560085179743949387052404618559840294066792299293488273290588259109434838027647872525559771086695449354791454152180075961290859820977609218272795879165794577699006359639705823314031081426012535666125072428815704355152395376913555736259427403369770235418422865698416504932013743171181357691961740064861473513024628472856089597085537986354997927814021452881924444724197392396805493691549090665263760736327900154901048399671135286717119354254260357315817144303385228630335242444877258417260991970883352664171935768589594130938313870790789052067242182917289626480315490860896606243505860125325433102672301460260815714666461874738537060565191833086414959266874914624882509126200621922454979340064299512599045034197651972495348796821069925055011728366304970162165558451092054942782999781867553691825747276195425846651956342159660316766086650281585156814325433593516777281658399804064991805887610640183126987341675443642422897286392416176258191777127550763624315796188699498291497189367751371481795714331472082338567589841180817935734871629157341627460766282998600961969724360935125541093709917023908340223375813545347981995427718919281628299515872616766077654609949676874656751426837277643888367480019160428612785081633668250129902210489046601102530316355139968306629413933196838867791364629240614851601233237393445762748621439833748406585182670173935602422014080726255563963579720417398629913799540372885684520746375289274062308168457729988628199973337323049572048063296252753791675469378589322250519880863584205103962891508120189502062704674347483016065118226855530395793804643612142135052502949023304340480363648860117727533320478455452504683321290007136282346619245895990279131343263162726706513130024259540512735145716185926656530322046457490067533559957305988530340257398157799900214082691594541219998402092014712244608842724858112207335844328727182153755433281605938828019758376691487967384868709205726042517493918266762195485215708547663676096955907852054801080382740932055217531445818315336564274615805250275798015002865437693401726431868137191866598339226744354534901323002511082700031931679121104018577285732074115021929646036709060932186999591611931126633686515381980244515884752625330688232316816575159117611813395817188574852219133608707919116162785375667861813724798478748740274152548752964595635347687328742050215436356002575984992642558006363588913403274921186837468091346534428962599402925028178810784458334215751058686056661426560389840278910532115520799353380946808959054813202318659681608203382249152211691022338888834863248780381544325271248930631246887201302847562259695889205603446990494676877557237317073404470381023949867288337173524331626842275410122609584069339128050049288357703418332847070955308556071465557705357340000439107715581620653322347705118567945247593315382448362345037676032982538829091960632451100129975006239956109806586621520527931906953401280176786936324735432362697848025772530513056603269143552039676523841856564793236422036270491524097245937645642871204647858034124800905485882079548719663890328863386824080117882332232772336369450234047478696813141680422740855685105003380505275979296092195603712810468383741511510578613142957523892106606116390825580011199507681188617597300931335701155711456301795098408943500479825174262349444488398562170847486705933181380923883613672211949738315103508516354476322043195049857562239909395927794304187760011626034440359378611853668624778346721716950429520068072471069122316385480109273434110973359493628730496038399067828497149540421877856523408149590630786564349404584494938177725164748727945293329702343481109284697647430590823169540060038669008567878967763131538094371532453219758988220521690651254929100250790797031026919413112973973208928192806270330722025179188306614266072083193366971668979194610547753815200830185097275559549174021912467935366353399350265917309429220566924789851968527055332514567643670791983190734412163772011383847228180429685931775040571884985659908402635181204344707397704345644695405498290023542268244346625709483003444550477514117721347458816191794492623036945294829132055114427407681151307895755787490927218612733062832175239714194173209714021244301145532480457596790208830571767120255714407474581937468040490226835059428572658325000635456324678202866890113729566901666692125207529782967254106246404870512420503644011796794934223114332760936292096935533441524258227561080258660627887190829734617251682187968852526119171194663621720703837254286873075512614270421227460830074419075102846452565770278995269276047448962066372858459902268872550315087202740557531385539688747176740096914659116697754259364894981057127928862868518360776524493636212753116734966316062498515433156602489222640139004738774096855230496270655074771078268421890768547081889090980125970051687899001906510541815566165288519495228160659565630793179624248341681546567272211279238587640228536295736136684110538058828619582496844703838617065917797269303426085128647590349084856497349055220926616219376370932967279857357764874340021672741541486380004184447753211640923127380412663881735221091790771860136448508693511172679455160661211814729306147326594536320241179003970113142995000686149791153253063900664098818274104243045940583151159888428887980476354301882165289750672201123064082577813691247600717747765133403084614125534956270742944983882687869931602888641443483458568109694722223198919639168782264064210729438292394684416312257636383614760694472189481520678969021615193340666189204669426830489465491741327073200830950783167569920022836399328178975452401816275371106038308355328557745990124442371846615155555364608183991346304565536160730636295167464117787827204763652541886967028920696426858518449303719079902171629554932421119446145672407504016590658242061757486013234249028130356754313935232234006760634754656496980986858757021629224059082082423605911326432224758475514010894345657366096916803743855165165704774575167662606894754290399138801204587561640852247557407000551824700933141912493436711348317114543265761224839155042585496168053072147028302775189093942168463548577336376936081410954910556504264231477730505968622129820065894107392812543616107718140948214470769183177897515256833101451189517381682101567747819792735919031452355942731195965871553709561938285062475472130943659329095218637023405131609284184264937492024407862635117148390819467753330401768664740712482185457537106246595622253343469269952950582587228536355170640406592007359433398905671401281018854826210573146338478801373213814038993047961881202752767214407253673885093518539396149865152123698865600213025508817764103647730504688038467965374884245881244797849944666785423871225630840667823344903671352178775796578663478709636240298456141315583295398822288049619950927919251072544885011825102144579996974453842198997830910901355451488205454407082549887921672627307138407364570772630141816802654083971272852551517606130726032477459418844064241918423905483091729338252400771071896608888803156761379180497973303717404460275861284793470720487575408942004109160015195235790056566897584903429103029862179888955055154372913965621362618706043357271625166775828007951903805706883708824086582483141707708390470407008555426598634617680246300909087153596769698666571882801711490694266589640270789546573212174833045651320007342705888560765840075978649648241143396520419947308666710411029783230789036728797304121514968609960363830857170696158546470281245222706846027669573192702468313828978150279722276406935132373492398972302605634969859753267161262230496604270741965504347679973817677360369034741873432268948887265756807621997175969162899706259509298840983516267629031086354249663650956367461562182381989057579372141967403955333673039693887302373896281863408844248235336884070191617503640756681993560240226397554190499663584371252306536503356199166623128082542329425992438454808629769328392758954990975689086946370098602923956772058826067888520974479695924024373314826360533709545587754991702905282827335342426655172258210196159623440527327515873067305153120889914211655661525719772611206414148242658112177554763566784517390470093588947927714722772507382404714416492834645809764296821447932342064411183470408722485935654534266685231917497336724379513162429753827703526925825684990241644364373574366360761511298276706935854402035668418532072524357754329435928635550101608010502173710373147729206195462774870659300538244589225776415486367873975061896577426854509256045333241384279562645292856103539407418347140019344675335130978100959551090834490937413526605987388216140687910055371259299759396768844608846541761553613506464636447985112491645715378042197941105254954214932602161549337967402964670589259957932898399093005378046166346545890280752070160851394965317280453488643750560487126272895765478537973281926363987801516758541603633438946153385652076144685773524103870875784384510915082332693286567141843411604201250310728016573666852442120964214853552898220461641965161744508498257245748562006050321462274089333275281458541985972533455578216075108566129036239853534838894680443074374639772810468789349439909170829376348198332535688401123382929277368642296318007496816374141661369291962313052329634718155367249982196926307921350529424979556669702121156076314114375699957630191257892677510270173891960341220905001518116930248725783549154415889071124785255020138888355737755545092109996882945450551263815571249405228158362391673896070812759380717621210483499577088925775423699557027339630445533885775872667187852860233621818808240314071912139589313129308872210044228054096325121313042387528979651812073045927756991187968679134880114276200938769568462402471392212308130359172019733384739839678735321807159067433064936246313713237874641602997861625657600144311853244092449466800670986403850915646360664907606559545741170436294376419868598781515696173724929088973984740865561206673181867570416447015607803196731067893963194584294042011158615460936235640915857208508575827147549050255600681567827117511304512307261498949810829234726068207451940295367495508329176513913962543382562454431661291320215473530929281673512317333861132570869939786451590114790936875850432047451446606111554826893861075624065564074732270550442892566161500017629197623757046097312549837157566192256222638587496448850214601713330334891428612297507016277941874792698748275703346244095507216413351303082892377247665968314445879368187670176808721608306433175874059327668546036168791488831477138264002982634074950049346940607073312796191272421336688785200225088443462727748698776602909811420273007101868140643894864105970018648776604737921031856096176265888449923388292425468955367785508692328591101010652702274460038995048086770439870984511835875880084509578002135644215699332052896400798811081928612549885459016917562737225369382491644510589433153835377967269747054350680047108845734046619119321000524497470392322272071322471413970176290187289825915485072884415515663201528494787186545784725236434498681139796543624009331228823161021107621755641360425726206223317856147126441449035949219031058137505497474600379388561102905081465479755543354681597155014239663998208566898949165649390222017293956712475088719156619606677868944265862005026802561594892109310925082336225040934239898123065113308150555463398272168137965870067915420518765356236517022718928190383860845213213096450613975455659267469729076340196660352780291430363223333137434378998447285582714065318035811268532242670544559740058913076503856615064704826542828574118168266356822953376808882536914316915807967103303220676594078864367409873451464122143170265619561518512046558435375229661983006380891109748155129435644567291764695588262483744177017264266479422774815875680304370723806802914446752035892866920905544601768228754794324735482539687560403103848838431035378062756440751617428708513380869573854664260570175177259348233382980648527083187569320334091006271033184204064482463461213089924008419005767787180012643109159209867957404916441092403793592854310893709351948272790817519476330737455685392350051025320564348295058094809962235266392725563647916418076713445602960237464729103565705313902015079564070919548628988752523913365531223703328031305157673014702384200324443918393654895451680909212042700956427054126142393467950375813773127174105359737925674095219351890530523017797618314299327064113806072203342175758798762666125476041242557755442940586898777937247961321549521109767923551639933140610032875811175614416267142394388547122621249024927816245816712390228678689011026496887954391140560566040686520255197381912259344945514018844071072626080089347166921460328059624087185413694508220274082509371344891459150639243733872093461303381221970437696577941479434252797270255006120279314805568451114088334558979054048535769428519697152217072931230419320398499621147611917566930434664978303446808352469160942433010275337703709339899018996302165801414541912718381703399215613699539785552794370612308748474281449921190317627654181378006490481655858858986280941067084989319019775799897492999584732939449472038095513509005402692553102269894069075948845402834486755697254291866861180336660236535505299612878979635627277595084043067372981787306292651731970977582299517539491544446997547447143720515189192634797402299526096198391377714076465505771066065042334871494278412430778284532527192121568874221028855984206718753129955127577146649155818861183115221657646851246805330872935241541424833809666889912588566364910454987171675104755249809897037454777191826823931448907569159051076591694692194111801033365038974568742844409651542520396182848042731724959734341985401625694398746870244675500130834569765069203691934153630174240244221284508123546033940465593683204278954820364133612416110739405723254034870654931057289923172789843355863447021042542805475794044101404538365555544449347573165325952839283819939578257445511548577234945564559321844718751279394378692139735467500111900176093703474077292084427481928981175333027354260626854368875093133774464949287301855091548951876369394544237034946302713788238019632273047694116785892918246352437184256903079491012820038735431293883416294903371486696154616940919476610430160897906650286907387742645872602834982800977337118867034054640075888593279143708765917124040731649355344697839954713973021906764782909920905454496827669902944043430282489388024500225183025284797429799126562708881738030675645032892910546502630660660792510739071961747711678521962395169326762722452933344011029130633638729485788638418150465417016193808969915392174962045583854996205959279880814674404761193878785649076486683874585202326848514769649338592863310572061986267693694473339676374109272923256028862805326103564421434412352094547260047408038276470363780052540873495014891476090203171847071185560965120135612849038757105999653788376768756374327095867085514577935160194130113809135643736231309395796857047393355459201572923763240807584939587391447383020812586887665526839526888686879146408627324480537956482814759713290412015581857178572814104320255958110347372820895222403620860898143069009689381744905627477335546151734569287621126432834505642949138286934127598708476126353328808099135464316334938591437492237496858228655717691921870872347832085005962239202103868457634973077631928565419097843674837558930287422125997857085458445080091506496299523027311095348831318810634181204901910927251670437028940800976927622047387946206823547009842848341616578432249265016436248970985369220801084634985987322794221736890168822804562826482119462113211786099629855239755098400442022028811370617636162150542874833515034722268780641998965150134579650299042317930531347299653114260516619008686422947124983888062493148661457569199864136154432588401729842420611806456214214506139231910455362531280721701138785620992053394138143876489926953572447004016807848954330420182795145463821162658615293916850281129985309122092325207252288242484310564467854690115303181151257118875082364724636856282205342809775069926170206535118706880440478961017709297509493187126612875979092022040869555132346537063060921732454601406772270883511438983166917376421169010070407315889371488399188262431335735172809390564570843326340709935007732891397023779458141575727963520734222018112729151171845747387549424895847131373602071522054118029302194980971573525658983103493959514694718596361268455432206690163433977755851614648653271831644114395079254266499629611619961486546741607259191395865349658620864921138754438955469936435416903610861786927833228081314324838242112546821883430921153576686109289515061639750370626272437734311326415657703418730561008275126049131684391417194627088674220837903401746296717091178078576286578863738624513617222405391802194213522253249641676497263394920149915989845278874648431157272840087170825848086004224615453523276593121312578652283744467462494659539826320564282231923451659277397235443791900207769476628937807865791597737684805385306353780190618162434319994229211934599965291301712409163171937361163938798586108767223828880816377935435869437515312529773092338896769269528116999450880005207580212516053049947595703975954496808717230236824884386928695036557943782315370173027984696593857571904841638174982162854160230307219415848201795997116245291198322257643801056266439684948632546339535907007891923962971613716368367185902586074777492744529747186003949224113251187230050743557217459541289159909042126164410705092632558411732449530540075652626714467130178040255412844424051353790950766602732263753500502030484804811252511118682855547315708950490652002463975210747479539749491929446086035514477013346933435015165429204667990212517404420480171247514315546673308975117819914625234000878381242440337246467993260130320131774217194108864465546858648783917634926096237003898594549093976980792265548103229517769050403614213558198781035332613740333937687850011696808146194548112804776495573878189168578784042141998419059081819816375760975461788549897775391895933952518956889346422623678082654632900211236415483797981297113673057732842746128189555507914399910429499766166645419147366856620983337248591795468330653063880148306504879442046769945206834290051543137620085273079377544223436393597933103417602382942335585914920801495977603549585232416092088927108476595981381525731477260769742424463562689064442143711615437887941100344643101008206567405714207101364799610396195995353449871951696334005011973234618239725379576178372912653771831590183279620019729086141426148142949059289504700557487921368994086391854059448115823649265225801929085316751955594659834636686953082947922283088450817643979280583149484743724720224464611947347497370576212514604963323461241403156847036456779447249416036391787663791331917746428078892860345696337324924949540068187172440929753416348644554850937892435718612119638619325272840683651218473489860875571932941711659782695365784624257905940130853154187117748666323191837133013091245292013498814382140704139813387598657510199457023227216316009848389487418378259098697467787993879150604390781170819747969404085168024983207055767033932783668086248633552883305261619469683732758409927628519264156690260397924365900694943587750577762603024669473212338625161047568132558606590578821158559334327927564005458674164396401113993213001528861582190727180558911349653871732184800375653986166771704857301251850947599865682601449815233466267715221257248899021924182958537082556442864119492770076957906072455013764401736411138641709222591422739966703655157457513033395595484369191213143332024370539123166989073473072389719037649595934213307990883015857887785593402616265737082210148440253123058900495847611477605263624791791818252704624771273613089715313410678131768751438934806948952694012490231216415841151988150366669946175636632189028687369582477995490476239321488559464753566237780654174563513898971427694472619447203428254941185134341050706333295581904891667755605559746758160305717563793228146951490332736323891333392804226376810782018172106713633031041951806755622104423615361838575594514528894105396396271294906457489269758916962092508433038242201054300719879083752993687957501008019328816571382710835498751004824948608182154166913360861894325812375113814806628286016365341802437604550114285761558546940965875900931417322794102347390492299988403441608166369640594970583288955692081926809342753599319562315020770853677587291062683008268911091448732140751072300368453865371192311177652783019213290776005490166178774075267758885694181246540258844008321565561451215858703313027747673593665960894627303243734190389459769434409016966207601541895037211769214860382692934805056716054649859760659941213751083488761178440796648893724445816134877919230917862551575281538725399732107028160933948747428821794253085177914857164962416676268531108300628754837387325600277854391335442344118463726581310695853919751940561782975705493980586547440642094752922422973075763780347694706113480221644243370702889999622276306020523410948613250287075719039837975988077043053661834813763405011993206471813169395273376809015037012130780053632036712332508944760844345590606973564748459942969280047929587232084911895320924778461291839280038267882705998792649456427286945318908549168995603696649891242027351957824332396868964812956475820698084231446152356479016556876884243540629196262525363395047099636731929365385282093219522614083307602503785326865333374714341912496780146346481780472432656613779156137580752140181333975108435516794205056427171381308203906940382625463256633927137017339343653987866829721779844148690551065976400860723610755616796065782915905460588591983671667016568031309404042308894317167463480828807026466770781727415556843969522161688361944806848097047112653116806587028675105159254650641523350787914532996207719165362873186726027000011170541927837611053885888465126140467114041732921700718718025867891730163573935247482443121953870311229049792491298662063214944795376057228166487405620562984299895531494399761105749004849107987726632134690922641748872108864378727528435589906799143725111382224729041931915555475668435496157832101298131990955299189503707765485689751354852915419600175135526836248101193576713860920465997817394710290997556467844318891207510759715248108924521258186470465635663723784584245076972981487713463710365930271691957735737241638339438660004882207536173734308570398912840981414259352105917638359691079491750793698116516698051069832201469507005895422198184030821059710772436468534305129460711479692674063150235464789856607355894922848670357439557102452550407697383694253816496849740619336924121596918210808828106529226357995543154942083690537349928217099686479118033219271902943479225620823396778783303268575340672721191345967201212395543657091282628572703633507222324928855120298781468373957888793644590328589756702917221631121558764915179698935365274951435606974174814809683295999881357717068448642184051992400714975652864415893108509251410095719252271731176725794625279597315658884195116403564534890066384344841515688337068839346744258032873526822417456215512377682708703216272536094175240682525332895128171055701097059883759125620776974608898787203551701133748277264778223218308667485423335133442766762669408584372603937670629485812088828799573363438801834990207673139304558720177117832501719704686055826318409394923435715526851114933199967277259654382679176983304887470013719015703802585945149537708122483623241027848805246134190360656476513363508342305162551514572452331057846357305951552404238969473607374650365971690425448810313876106839332776858030842567103474131768300857253466734747851663503516716043276932475313069151057510797686245865976948169291560415680907349012767327521769084954704138695829249707740569072703095050060234988677761752069287229404756256717665305387906304147917939981839199398423728388134353943920202390748364035426730325441584796366557869711944341371898490285185968819190480291972293168702830973159151744400835715059156032829408540240477600446910872299919434214738233258954690891825208008662290192116388741637859541865327024382196625942453556458717637462323676458317732397918629061644497423692081599474115116213181681371520552617954852558038526757459503251126795659738444515686108395660491476180544143966548988552919322383992107226383138847784444494368880507247092196094370778982244522298341580043609086284803810797081449911247055000881963321687755766320021905204973227267018012062903747871554028337191520223572005092395410290520231484349039716771796338535808370981350277689121669583077507954299186306203424957353269702202490146391247204862931312387344843829273826291828535900363612810669982189438414709373506332695189826685164914498028611593029806502953396038967745484757855743539470836301753537359531426015969878664432923366113286024254856957271997215252255029570727122004765009723114620232362638110303958003691356263762245682392144082620980413921689416250898551839368711741951873834906382478226541925839750686912233845966738406751135166781284274182434140871588559335668260577570600111639318750304096001576543917048887898847175208261792566099253793771554451929506353160441490434019903623639625893154028916492348238637005034602931729841661763081435571884806806888805045600860385126110491495673590173246479404958978344832880841848191185012709695490069223334336891098501636424681077989679225665880703983988318394623893852852300407581793699123369929814445980639346690564254262248130992363537044762461529430240520565046780048470028497880537389971646154705161380230996553001321160676014107107999130665450058839748371680579497642534848116597347096925382292985907659523252748876988874528044130689710433806659626137700964267602131979492040435272416628330165306588596776608837710021533836418358068322303189263134118687363586145597264515287023433218139996394526443731861654141296088485707308133532145231015573750095804337747478090476020046802052677864334783307360038347663482683473899807381334249167977745408114329007921492852718549270107917254787025480003348241798385999649761194706342455937810931602102936579459766356919825548112525133015365653150847988227991603791512597965944375102795896325634831598417504598526775408283704084834990192128413571216994077049007750480913719806632584618423076733194741854189901255799039023575333540742418597221347848027099591732097311859478748765894893730354023972871930821969557436333311024402915225653222823450681542658018839489303435017207917581854927679634432306783505083020927376027165918653846953605330862086945658065812846896784121101626736283728146711476593798315845352438998671202828821638335229242754133914433269382452248339073469777895076097920987442243608844086041679225464543312225214161722973474209060609067634364132269613355104829117337278116991382651407002193663345208588873335461078645784509786934260990583785431238856815184004612683038388800426164348526371987380243985923585778193999331298738796462605258905117304736002694158496088074893286594741857809593644165874834463402075536624031305059765686334055776490305499886516862768920584853437434272856662588854608077967087466386610500306168057378280119512560825179844500132949294113217859698290590449030017430427971218923311211943969597049158307725677833625680282070305103022950620669990060209817659278135635155777206050310226555205844427517679147605772581651765575649481876473669243650197046263952979213068367596744401078183120591851466726401787610617136392720595197976109200960602979411414448003349378708375462489424230467724374668440608259009053364842913311240251014025800983277918421907203584202647414437953912268003615568204542826642222239975210817086260141683530944917876722399466951196280390056897699805443091719713669097776586072093740885585510083221737807283225575263176353894771412206099785824984399209894389711326211268291123650225308579850929537638660218147828474398688342568465622167689401756591514394509113366846947477284571200242268540500046971972606473994829519730511462684313956435637887326321390528382206539012145362900819686112179805677820236565098463386100342831511964492724872411058402364818716229734681932824938971090906440035231741145479564057549999540614027035537382517846384477107475633309723014916055894836844435518813889508520847327823016549891875599453276751405314901045486100118886879443192331630815094560233140390603961847296570314067690225945648064306117776398604042903768307132543591077996068778559958756617520309294302899367798295678482297683320039444538630649314276053070179839189743498987700573057878933592815720212007125488845913051942391748659268593250362912881305601939808769516434261074786126830305029556182315436996909078417709063954897598548424834752831768676325665693052002190544558109388316613103847965255353924082737879133424749448886708775098108855824301685054871280324375770151391731014093605739981437244631661897835148104357392333398935775182912210361757824756402212281700150092149402795179841543860633239175096536124980403453093547903918107158151969812304608583230868022111197297306328918407499819373979676105998545425671177847238744543494513285903884683767124196983689285291935234147261203029429704051400080886878242264950782047430553188801835271815577405215663540868243247232350701239724867105323635784683065242241347559445225353504611191848664884159130847330316992014175008032145243175297308790817226908016313184038806750976925850625336294552122170635236225483774203652777582316089010772997693722125634923531357599239123542156242139715716802125372042625878771406434824155154723459895577462182819712149799990445717673385722787468250692876728118155223736385637475891944836698055377497092697705569322016903974924794620562698448657100092031095075523315073771117032406806308884769546508173097850518675473405082129748830954782137837998211038252106431602207350232524724934898605473882828800892309145000687603797969585392257814711788050100309424114605972369909087742791575827307298632165975337250466689400666539586049468327132623149221373774267783330202176158780001894227367882864388179148412141065349849267101898204710962905896616132204759244738484633485041573454226694811535522573993726751461149261079330559930950448240673454631861279299139887312301998723970538908959565279715030390464000021494128867858731331217042140887396776703151651026452789605366391875624662452367804334519266776479074394147812131005587185004453800974947443434667749509383364149611757169006602397427021617368432810002558003425656629064772402319245250765096796037871897526470882017703968765041938327250656852458331787224904772278061255492753681667182709838316422428202271606423747752416089432033816174015005604508162109311381063003384324504705475287970088353334308923024357299886852137776084336748882991222473691759127981388041365771538499001755933975020931996120226237795182523987666457906565451076192348718817119940867133885322377811450584238798958972812949649760588001914965821161007982442715408541190918467858151223064513838774027876434296288109124301744382220957742378588434876998791973234210154093884819160641513524307432419747085843676249713548003486705908829114500093188842388633321324848580748467172637296726382138450918665163724531859434301077030216139311976925888277821991057233791054906035765955370134110203939727951007033310035630665053444519170081587087931269410685308673333338273701882333640295669392872396836157868837314733279611451204254387241867255137116717257807507899304584778473332425704348439524434178495177947247910493723783107803532196385393584708683009230153070829658521030896272035566648142142474377986149183258103618614645290286604741036587736224905235954571831383541636462686179932512175912957803121788322711512257020083445949009984778536582490868048384656571200823626282858635189280231164392340379968618048283250867731945629950220932816500313928250187655195312896908521865687327593543733727552966782908907789923059769676289047042611240887943018473111491044092209989069520066405785187406940560545470085353934966868877374672758514961853898099164331682753897108342790199524640514168556472665921360935548011036593063136867407855656666316382540330913540866348628055937194544101667973790180405612839979732525891354431582443375575833401662897375886852830915076371659676817234211613752195009787749296682899783481896214887868814681373605704407490066307993248531150821001922616487395457990532857841410236383773106269636590546209067326017614101027635792289749562263728477415076024737692839732776549879147018188083840387133498921729178656353634522302040927913311047603026817194723246669839301983496443514159751451832856041281946436581521124798416314644020080086239375608851081553806136596426065936957646927304309745602791158427208426995635172976180133237686838895186223280215657332222310860497953423029027156511544108819851513512252930795130229168922293567959678828678120371394637667292499185607968530991927393967758239888484682135531645349041525883457115982619820542647048601619205580019378023915591313295245313237088557231219127055308552012318547057625596424584738331889454359480231551122589832915302910689566276824477121408994314979607573195234791729393068738835331024024141481343255721721798515649795757359954310192990391366188504947313016922477278701391496693594478783437360840892702993605381139023262997992528384593831959603659852247683235109912792741462272376884668077911215617941574380961812082206549608822499416827011433474535654411694393419193485585996855089581065198880064646926385393961770019485865278263835845403221689518188814662574438013977933867372382425677957602224268261222004312960990873215263440294338429362979641280629531607862297448198669700321400729816234475734942778898895002147400056822018770484539561448652591599646765786896668171630152739416496611064538819356524772359770000404618728003901029295089624286420199972617425782694878016696161271024659174212365184969552303282703693536869094856222788342112091655926894642898061398777274931841501434103391129548168001768694335146577529065693858465857963489231193784528452826544915318991112806738840056793827135451038574081684876293004529591345705794703236818726280852951708966210797755517380439206291291595425482275920594249367378763199008552099046784115999904494817391926959638340972272555758473517584301775265813112140024252682261451891593074095209993483244997915195571128362002991795894080596407604988488652734303302302758245238628359569199064007445999338677816139601982753470176354555457365252674400629762480730127180934543203566841080854226922074497006769193413011981112820345127797281955742120826375662655610649768341620584076241697107671501246281817016341465403615102609990821990895512361778227307168096525146920088048108226055507484695104156399980550391244483410434048461499652986871904889469841280330150799941233153128422814797745834945521314190861234893941950945473591419307437130160639376041293047019678423325821066932076860345704623348909391381377992401905348159841495887598367992258503555299301523541881686156929514356623017759692378289412198976309254398608357680728014695751174865723106241527135117538877813516145795692023609830676633393300626472591955206572497391792347639126485684953316079532222385523954960830549363847816084167086832701616647162268017155315624136062587203588018726991573230272233469607890372252962087261907120892216938948846843038344211456418210247954969239041491869566124849519172889135999903812271933537100845130059776118524038608128517985179090971541444996717313756375845428890617929923358106425887937836833866534033353732257063476428102061874302469699390187371880752010522776141957037432403868584186013445189752189878208430531786116779222799717132904722853634274379374599869236627279462962503968739121441984088145230540485863780447885931896714176245810716522395040204549692605229987560225768493571776146365981714201184075822335976974946242638136701914167431461177852316790726324476477997204742284158400036274195837320283224628863182636985942099802347342122654088610034887892606026847794483191446289193434645294818716261186090051181543913523904243221973652091460589915990501456213564596661774223448578585167671738848865397953205152152062416526159047601726416107604409759813422117037479566625361627732688576705085915715766077166967061076315781790989540821664317642175609067807211206606038243412072450733508211183625420128149454110560004859135333126804155336796164132514674693480173048491596247849444152618472472262763460420202875450798648961663478286288261305317940717175996236072396815925176317932496618868706800909726370433869298850181500064868962869332887098642305764863155015016851273650185356336825294707369073564527987995673619940468741073444649508076255754624475340008806650363590877126041260114525818878265581712163604698118031562499591802500011123820267893172409398432898037305841200867109047086791672624894837560195084644638933900156664157888435296716576111499712655339840652356951285238254124609161081614776015250122140288022883067338495204182819770820573574118909336397127743393787681933546470277708095076658272626569062848523985762175409098945608087063429316019204923597748647699142547247581648814377623397144183696724400887799550264880009677816252336698543028008606897949246940980326738461163706997948356669850688766908994221863121778548602565979720758136739245646740057680964104376383046932995071237590141238901553647811605151980371203464051370112362756558463119089393174365041212791176086262361721570940382720296689436803136217271273883530000383917354123022022836175522260424136091064098869864706748327586462142974346338974224859802073861160684063308653063427374460672778838446587488441069450759664709536991515018373577809936270030785794919679496886513425783654698053670258742038396467244276854136929069047039491464246661716738867905487532019968301601883119227265193139212817115617618776359024099345511823362761058484571545354574357910541789413715172465737394687130192768919272185222325765274482547202328473254954754918354235236914263440849494702925895545895087351533015030413155978277254367158534222527771754127139432282793182006594693072278748195382596291089578226793872705346201427747890466926936547669978354848097316751699475036578091714567732742798381775236505950843875522712205978192341118637017453733372421926850038909139445409906015942916454516825376349451234820103838872940902085864090052816938194190378237361468408086838351007938462179369821111548097943314192835432930418618619688126083889975455756511092733163818756832709794320794473778622596021033878292744036397950763364429545284723472182552456521222771452176512080929897129938604721056607659835880309126247935674711044955950102597877527194025900007071061875396974943099471682713696390941329821252054349122507466158961388612198913839433512743819076840850141528257896452208964710345647971283237914353720181925304301479158849019002735409167082932079176254939669934565409830192741164252645454507745246303634805064147214407097497042465798972683250997439072480050358984084648727164914710921032014420697802168693953660706883876518160501236320259906825807375870475498997696832254405413425622066818074737598536671552986077385671751957036311485846643938285165903083466312767826955302699357597504381118201557565479704960958376167397682314865931070022224018897935358036590338942107532668937142558941128585693057990765343305386193099847333819742743080723270544697540658713776399528714463779808744948671579125111318173406624097721658885376086031336045940413357296093462013104309470059961261073605317402682484568963470686723152933674181629023963144064069589560080213683806761268970000389116266255104250422073585982412691878145759623574423273664116432058874677874152244108995465866528408630070629232684234305647925813801683891555921168961736398967915048504449557467704967675142269494049664039128739678685393337040040891821663338683930057969949281196378341681884337684532724469460336989683113400474549269258594970427392457384759567351533855509724608054665425635154054291104917366119218351810576359035068611546480623702180277539762499794449326970653095216345551053820266979602327817450796252593273207934944380858376372200874434081232899976654778416097089497275037670015474698040697650795808715649568737397459540742269266503309441203302704322531401719810901143604425766937982469728749706181340010801899416835770592656191184210054598017262512521817335482790957791665711038241114202710127523358883780047344271901783844194470908559306660339757646257866643458355105640354318321946842234134280260214981407211577946757260363188569164519699511406350929509199372706750874104948087153436164710704847567954977665779694479375528034682451676649418077000098446044280560646607357851183656833318113526673676271359513046176125829928882155322678638656852760054239886297308604307835063223641492285905011793480017403195341143464909390517223868167928266216799639817079141711857124204500463173631878437702662266275423918354265628848050579264670155809230766004654768054969029337129834008371976411557325954043352676055985529692613242655308772063916046502965486386246351281976257190918145874333342000230601908525180168945919223439536652694220573157805263099044785818795936589150045783268583369945877154535440069067431854500200259594823186345938364853809032385640080971360881032191270302444289541584338591814872163840980927130990419118927191236911863099473578469538572123698295194411927341858035702411037883171473174963753608882669800387933948652157607726522142616735279663906854219009374419058728436719487314988795727577148465979941742016831419636285933881740029969092060587536802753218415751580031399872722847782383897667260085750171945815126217188635049278665307832096100628334093176621741276941999573200452842680279986299605241294560067287926764235160353319272714863937733782331874435076432439137834303668473944880107352933639262345903948107823453427267371818518226871592963500832470841404013273368867653748283494451510384690826679435430013946676661605119779965863834957196261247176994514530834790944087076618352807595082840828031416372630178859244924132231465345040630268388409833979400968441271168655807073330122103100728730218293925430425805688285430430154608293304493956311761824041729797894184039504070035854894608921702690205009956061770836402777828407354674817376208944531397932788993290519324021160381870697203394111965282295678812788841870134587382553820625534468033226148503059360676223293234177402134948953208580929876190708257040108834641399634369150256669561859211707079319789565624174389204545496980915003057907043485456119677618967489682098872518508045888253664736818408716653960847511082098007637097201577813167360876079225691118144197699627888757328585566220484993928955352919871071554564813890610212313921252941587636462115729380876833972826569125222947474325877570840397937263186179110504020516415946930937193993249609251924388233213585608099195187250981770924827683507009468134628130814431573677700481035318066254924173577708485676753798852459048643633647873921361992935613755818335264995020756583979746660399987120403094233447093812845949146634283783162541638252973461498600763891797217891884807955324131197990236182226374211408375927904380837370416789493174857529952255716248032669730813264471832504728412115816749921348188761651565824257398637209276244584002844096850602730920159434457306487843402092758649605840870425894863289522753356627225888212958775865161920303017224892850694658726189624334057362808975734709013190439823216663407911524665886389861488212437867118809655158747023961213918446862394220437071657802860583578682344717569533729983788794568243122016743912017148434793524468658864845728711760732642933401022255139974091364566171218502991539611922820399169866498780713948895995123447109412419409470713830770031183844469105064880940531490496175091254223023862070241000083168046818296888704113778398249538159771700466243799944538923034431694590127562145899124564149582216500427299611616971930255554081156397195105086944438481703607025736250749310962479215678924647411617367448401520148305817224793066380169465661329813667265772743271903049109765372766653300339526334748839462377497607537554081684522000464881021220324723143788248320427054884067066730138879389938860118636450224380532745982825355493322318322347825383278296764403384183295276907799867030196434147882086675059454169404486955874252213596952896902224058628050049740052723998614514923871157830293885389494436220114710703775203348478443799858258179839662062751892362570701630283682589267508225790138877904488313478349144906236818765992126553486307084241966507683395149207245214648804865749957168775182389858110529781704680799521457283049639193378603181457875800809340490661317683661039730484530962218695567542113296114136037070986071426894507118031990303742738775922296338419764960143891770711594740467220705731257244646067660214840219094616101939682950187018707629111592690450955026656503678812144656799636959573006322018278506811975632129126202735366314482784851212329674957394459670382257911482633449356886161502458968386732121328229442493470435839145627631709027881021298019080613948409308196409733638262263202128092950059512494418375127923176970382714927585062030941929603594058944977712118346628952277093432580917726308628905082417497710147996260408432123548669885797016859350417825747192721582376344782322283933040481943501224343680293191191425985018728779372268891231412371542106707062768388424037127611157977631487098391889827433086222811108039693028667913673138897695383337175486637067514593328472154509827564327676131991044162605776318254835515308310410751421566106148761449813891904066151016322657708214276611319803597360667938055551127200749115194147231553704238060654183507258415564209911600913189519189396846770860891538565176821359594294322410856100084836403934388199085114937590704046649841669858035664870098210458825557099858427722582762626126045126831176648419065769958939317213180101002660416769716319317995071502553627613704927085478471805567300182674759222659530316628508663029869696122457873320399317684095332163450120019130035075780675715553555047753977494080836121670460141538991700760013598521116375169499386536587217965590248456424241935425550115486104839324993152120903035017678901397263895104619384146998096557573910371728089298968035937990437551203327757156287435882004401135296135496623794214691905895497309226593885230437068619278422159548960045091620440318944505143577721708134630452106404353423363262179403047074883294392346036312155262199280946684813384702047869956322218570661544732364806551854481841658289836662610589470626838548515795713149515062295966986650194493533054446459897496658112358291697065225443741161529786882682608314859916546040205538609184589381444620995633838628438710709739116489846917634712808013298973551497747148314640376669970681761456385425367186257706583345685129574054021317416179817355986787525724030373165435104337206007169846845805689904461938850200387565647616985312770831445588677763993615395946105745741205036711980511295086047193827933806986922035880274658158960548223929717074611852282909117766835598250341108348163196832173053793567992116715859366206377866019528188881950484952952223104285274734970123652126860322018276200677098133263357348167663562966920328667360723873625561474259592202214133733543590714209711036738794892329510556320887725808302487580319753537161815167755423121329225276534906181290618256211084950416710451979311631207433204824161663925849049116271490733381518164421425870247580226845104181383745275942452885515465214276526656184621070648904077287702411548157851459865729137393081284632277112404860102064852039640215260088483425800290240413067712315866626532978535102771538063622044791303689216000465198770225178675168358265526124243966712874588036101322357016096846510529049276293183221134857530101683094886605082790288681702866299840832374915976755265931003917784392087274178558009384609094855460105891205883522542292218323057089237399953719792200614382941745769894031395203187129511536019410687915515155547025719189932628502311235492979836101014688049124283723117348560180676951750903594029834792297989225656766458860329987419771015370032865501862031700494380879453622548718499875070029665077601558740605287601619526868877590876404423636141484251603322531941300794249099230592871377034947643381476331687367663859564753469130819180148585873245707976399853556991518034118126899772293926255063197206306932518232498026024315832140130600297332793647564008645502609095839564575462097494774337116998021521478164158783771159901378548216115738480508912018811398825124494435215277629679290325684807988452000604637228837080070990581733748783025492854902901424766554097940564170743882740670442822064491393424093015240091985446116323832203780578451949322402090060614742166625200724056700574110875905266471385960983791646972185714861643034053694264723388494627177392073435272050626594159987999544361610222053920589506102332653688017375187057614226748573933367409669949158835021624269996776947632053291076507914997107235508167280292212822120260141319746682129554963466253083940442636619426776762976746008788871257476379259341496453000452787068666937321951117050551213559545461551833061307035608870357257073750123093491088142646355016788203782704686044117170455151448230953492151773770955259982713367360361332922787042812736627758504271574927026465409664673436373466692105913930813269073529137814475132199272561183130551273524587495562522604011536985040574686443430986177762242550891752967009726458308400775621725016425093517703985035485951958543699860282155956244724339352416456744167123670757163072550166378326501843252051249021500024219637430510308302554008105842712949041103615282537427399705169402829091810672253404457937426377304642413625838226722342559833707043217100678989126208533284134677673854277643265309806341015399069122681300669007046156063251127004922937133571710390186003143428809769573112056402669516218518265140659365914197388728801493756236897547298295141020682586101568267492557236562220775425078318550660662565339725133515467649849955116358945448716896483254016151748664767715877938118842843974879629603004602904695286841230219786882274453041479861708793522074292875834222774490538411829197415089679901325137144216583884525975124797147824626779397643561443284801554608147737614025829798520504832526912489454637119442463423114215603719040533382817608987399983135664773417448565545460613188921457365707086812888372550772768266537326722497104517206241761101886136638941853343239723318938313459402763526686257649709148495122920816312846234208295273182310151282915268398695323159828794146451961579881359044735589517287934434942705524139614172628312173312799528466105189885106831768184432891047927053089733248939347454911066481579170235413996811281778665635567238439600480602604414452023891270054426946200984455734306403423445923408451986444630465867188740798623351834227902032262563432953529075840311898965714237927425307470550471328694913230727114011043796337777444173979460808805390551598401210965781022550870364438786267579057215226978279203742137878759937347309407575993365571551888537175414971969958740784886960154892712866524281086028892983275179092792003716474153495933362801933065766400962040315143669840312817951416978640427651916199633589722558554564636072316683099271699038220955699113854960507422133508394896276904467112821556515235821594532252471414828235502636815926284895725881571943458605966360186520228132070717702190538851675893065597992555065110290810385509348786823232706489434413246745160215552639200849803684772340428519575095234212262845746555063918879277912145171341345251740467636795500830025455825724129199116564752656604100142561137031837574226488717763113720685082308462613534624126974429268681825596038411653412427339229598180925438765830181521394930556220258741710773872982711449784910273922116339607704261781467087151239331282467770950396477664647514438150304669625676289643649790101215436003701641169883611199810385443047768418656173739644523579935299878454702225595096743479181616971719717002053103943039600741452240489554737784310683606105142242864210495649945012454123197460651570719559216131778611227218360762137362229441096681426573088412904963425243840585673692280780182453253738346886573380385788391312948941739113776301146117743013232829522185225461219878887516371031120670786580526939609590124528836692951966147101617256238936075807516251784376943985134560330887827362885704063887042868328880823389099686831247975272413928585110808069423960435420687495131643728732063576169193162796137562182603005398112015554708336404618883415137525073665302433639201076624288265259753196213665360642447494497127385311357508255798175917065704220381089488185700761099010544427444204507892335459193913412928391857300358830900229974458074743157654907184543331659622850077828548871586585645945602656680098056223874841794135841474513079894472106328494512332061492951538205478474463021388592037829886488511174853940057305574195076404168071271575249217916079053142590458301358557909366961174545330059439693491328420483180015814693276486664049058768097469422237760610878838158014034988912582857163352096397997952139035164598122282089599251460059840801463645225597116531220390708230288489680912774135879061248060952330134454475722121333395049197398625881137238830040119649016159765869511775494857732969114731728779225048385486179684745024240690664534808953758051007931759432221900939605421826453096613154772553976216942739992225551450228064438108826165555629309375603110268090741698478112931516109777699819149153721555002273244199873438150592010040912775121549422437336719702892175091805183767440518408095779240757667143490038678035524886265135567235576282791779799438161113243687419648288969292894836449801858920264879912996210848168855810186733999990006454860867881074600502661491054848315139961964284771159014859663105354322220724467991015397915830011598822676765871940532851923187699897381117947164923273200004099520579917364939422753531282323493831089866159075112116859296198195272399346363573302012172974073949647498506183395994770490213494524931571846283071304057069674530296845334515434066826315065408709092057793203542780933392253401588811442868405810396822400463313263496805176366891859268121086149068686628269608274185239849743242092189933763264035011023187588388814842376839092888700370889478964275272493523500379497367135264659288554254339164736840838894265665874364871106707846860703417543276402815826809172241443337843453220139563414854368252909454478532256276334009769580730537926264805268443673486752965635797256121028637656361215768022464746600117342834984939149532832780308004707506402865540880826055813143940555890263394529341369607824063327501377372671238073751349273596728298457864556668056550648631334723208174557082986792538583370043161438298196306824801735141173034163793028353502873891317372038916976757137354762653301034485323375245201919900214117205734247593647199685631510196810328422767982805479663726607245083068808822740236106582364276062712515398852907178597107651042263975266119795452415270535300366008784640432032117251195621347011300940138434750666218903824557645379205930075517779415443626684635115367661952195272327759625771687853577430268860046123815766316691104424729347144426573098355955113275656033009441025405111345349146669871063739234076238683017032052663871545589670640868045479504155481812919342747942706526596650031780559201541137466374213538795358661562505254518255327770175572342012233765105200758231770284522890657511475077833067102422044552147361091972488491307079401517511233911066642362580025611888461074278155609949755428239863921088732041193670861078601824960978115921410258355069741847428205483751705011356485927401021601393211579728960763683563723750341951629231042033547843278839746166837822243139640474160809473921458480337324836297891090088327261180133943999381395109965614777721061297231857322227810040523812214505848639866191751475709639620941787399354921322565134619512981168552905983737149919223177008729208048157871948065082995345442584311418095181310086803009313148193267559963701361907655209563992585206327636603060223290499998864098185009981220470184293768081181058517703652132517612640746636777840052111450271951683254409846559074463053800372523627763856155036520899732768428010412533963960522446485131914359359314095848737637906752134536080466217426907802499983923298666461315485266386802660455742534169103181668841772515366524663770375326121558065880297169359593908458201862750168494577131549688959893279916209628149984071359059424246729179416990308218497890474202056261268947421618619395948130700055156816344823258191636454324521472570664567117928634799689548149385479483859679795733988219108115358071189118692185695881181129146443303853629275469114987092297031996756656257540931883607465465516130692262684424801707618957696567734543115098925175774499821193788504849466104154433862624535542154032130347481591281933715885719632950614417826643339847923846908992457123458661408769088192820300890289128559290208461709155432591352584927504399419355957972336357757778135588254433771335460141781921522329552016571429622302781346285027390543092366734845769471640138978046507390747908162368736557549970958707111976428784913761396674450489916452429140207382990990626116106088185206185254206416751714099896152920253453087046230703370374467981750861248486068607190075167654343466989457703491685665967709295738433521217306978349551414084261986679801236632087622953500514996931890783088326700546492256444294882059204921644566501832390433437489544536713013039844657611304326479593345293957469161575666560327054119061424265095128234443955966831441762922265817324579166442982521828735086522116575793612004596408896114450250818453306853684679022307897287355303834938116816045138551563670865172436610940404506116317536622120970427965668847948441119915765541237374504232652679254560608053343272252536505719681095303631632269683767059551811724846697479380375937064972021626562686573294154250328943511471677075379119010982593257992489727840844301210758522046480460107217012107548411128490638699045364263774203373154678586016405287940992633094116859241536313016122334281725674099041133158684527666202362978678406296942138888620029721804120534184155505585288239865453469478146468875308894648851845855018338011837092866921812308040311374894961006992179182024825803399669165895804626689653349361131417861912363749370637487770518340701790076737617330789247842306349816881223944322000643113286408362006488072206259990223201949322288212450167536994080368648214985046790507293137382827501527607044099713869865209993119343124604155200704447867106098464949897000925490821255417193489652731162930023080660301307756222063625170756832245179718614220904850567027647078949863933280253707765564424718444310693678093190005236492832769846626751297387378586905941207810955209063417052080028572049562843915639549324544093541810133776206989566043150136035813371531787084642095341444759579546302471437128839207628741036002500464167920696118899383435709949662262481620389776549342512030353904025104737219745033142516435878272817329545961321178158277409283845091287442648294014277605385735919894725705537035195999432007003574462892039322267555080705065050535305871596985729451189358233504506337775666979313587414492651672666208479040304411634415387624696918958852036629953283786829467691603293643145018751137962896520639050927329623312852230213301803125827664033039288884360226470572318905462675509441866956668406687885947228277201847995263140694088458128734419269015121843537897339823700334475952572341047344376806871744709191255490314899250775680445479736377345153494084492260196350895301647459728511504560256713254328629150372967807628505179422695557109593600358575516865971358592850702959236998569667087471383957909527712136709850554590575680645560604442530889395715647052814106415417630240809057142148609565638434396346913424552742142165035862231136279505846893903842680469935838415309710098210430443295530333666343098218342196463693048657322503846940389334274484981423022460114679782296918532507901111755011566316741773049825583994695745772237759172944575145592317685122827045153215577329387513851199510029869576596295585110585444019837452538706673271553949373524156660212501886704207937396319659683211030467601117479838590306056345183131025226041102016712212361403880796116646079790975843769455181670349625501687951753401118758676523527265793759987487482223834774813822278490056820499682752129454632197720904591089394748918871075768274691076035461096148941220098486501997014722912761036994155530825485789002840411143792348867872388105108065410070227026858587911518211891157954522267425179013895589254068691784646508090544423062217957033592440222115066779642589011896537353579646814352888124720346333682206915525112612390407749252677992175422754858892906841132204204773411542552078690816613395203301141779016077896290899021589143057606931502048668323865648719357346519061179902255745311789317014960490165770803893560560044258132012458838376410604486064343938492268566808507817284193264503395763364712435233370461184980628995716309799538435854145367229225859606906564339688391863582081280886877948510174304367895637392442106195512147392745019626733277578671884440622933809584219607231952159674905233364699129093478045908518503442109252774464268638296946246771508336645483979204335320835365092365577247868600095915323855140382886574087817530489621693495530587005073002009542356261973292509329423057337206315783887264823968343948087255740480565704737646028827202892102132376396122453343839828598390334086544340704974848138101629769818353147859417186072400281376601105610014816502522982117599333244782427620594547934771887377949063035657312463534178955193664312878901333104957600085288407005268361898513902846006851061564075195727663098048762556344009314608636224492570438525442488269911290516510159537554373215171198345490129093376022731691102991757003353501771511798769384234503656581458143631710897370616644755899478521487684530116540016759251201016064911493627749057880530649631554592276498509177215500508543131812079020908535825033181101593582963090611221825009756652156141413602256732217945143618127846851003563748186731430651063408292699235406219129844745627761092847882756046938092521766683412961422838891702595512193387734041203591550570910661240100508425374971141920077960650754211613860209922675290383395614974484616656325860034528924199228956615111453561466785809228074583043137080551384880833192655838055556303196678681105349265343973061227712547404429699999342890287101405737746844371406525713589732917639317755112412369993683034693978566398117411524361839466904074151650581497523066603203877447664750682987280032930070990269107340054614578241480153022406337525741129868292471382473730590014741374059064925257494522532346231465613287399349192657501595168630986000730867267863982387633703955749611923628339430519455605702969173391923665651957472749929408711265170034998957358153836550232611501705408363751430126075200926826643942588336667184614080228351366466970780228149481000357536510783314450421655057265618475701733859750233584501408397618637909456967900075119303916085606562123249060658107365221558096478333235709452807929677044381976142553303230815135652788829367987321111652170482085989371448962461807253907155805794976050590062222926449832722699694376920477204885581914011486589389341288891257105069194175758794843710386423282561865556990414532696099955380391949415025114890057677548743242575650724706780064702025754338872725750733125953195394372647973891636848576357379042515986460567058677468452986345151913644442355364677806280571672074501823314439042143411473813191176110812202114522844936779386689711268396482954617790855345225575028940839790795126806034895808341307315271410019543251849828118129830085591182699558777316369578587959836094917437948800823896424692057533558979918361860892531120508352102534214091380091861150640803495520075737348999158682420489752170952942995103119346963612141321190868230766455772592876535208507836318720413887041422284577034334837951833951871521265992837577343593748187072167592985682686637459694005770792823716997827089868844111845302327609592681655395825981500596740020606681878389973385722680095196721555107214752601507784575184310874733868521806862370456172788477651854014143845534103521823683927144080323762491266996371543078725438347230788487592108806885480095817587693573828081219900528162484485381784254727793209948833198570263548974978317505186311528295154208090260772850018651759913800510594737639802157002196895278408921087795629524957447663690933040884387240756282354663245330411566335138083071511509857300060331249821157342221030607346419876433860112992575584460417679748940604894003922139259439416086021385346085769775017181771634501012146761278903461429198081879232441796979957824101189367077848231105855108253321136320773912353250316535736932531440310110284496107071292497650779496550117148119942739270292660631264382898305510659091440395473318882133759503993023792244310023693627115802921970799032094537294800330517147988411778172999517622720855051210631615209410721668475485829775897676969308217253916404197315067670429455215091331603078240950872416641423546016577222645864212094991410115228769070160684223823775935384149401803278516535080495107685334607358852116990697762914194463516378864583226385576172549486528380317627688302794048408241961966556365487764486297008913965692510356215052863515626651926208665839769226962301703870230589548794120805498926761108583324564911575156860465763940325706485066916652613107923788853077151064921361605642281162226472661340720515425952539542885239666368168885376655058970143556951943232512793814628515885691764734930154979899187778737530586955155399408780556851220061141854178874130430582592266363372556776194658333687203631641100714477816632679910191170213517948118378507585770964094581256477272409495328935960406868175402346140009674993894117101459532765967847685482720262423522330321476338970826370393542062409639913254903811287846720765787275830805160409948963595168143149050895356089060676354617924929480678985853459759625551866251101732249688002509117706248132085220827354755811521814305470916607663207785193074068560605363111181447072494935013605928775023211896749265556270379257897288047918703248495062180120999318526902391300351158375783773862291795329713117120980689898313693797007788037815727656743391492934354883961304730888357944463039726498967612458009991259374707478292338800670809567805714564715176350836692777908766002682806417365230889150650517822886896059222658305921999925994778126311816209351860339303798407047052784978963970493084093443164789326856744233048734356528341188347642547356614686240610327536832285601377503105597864516748358418872659192971874225122767960551064829591207352357734210232694607499665921333635217086261198586672262848963178357049492489119787475812351269674206552912558993262320997736261472488152803133336285291722687938324772394172011320945844983065765266153827088033478865285814577054001794976705814301818664851616020850599526556518605566413905231706168053423896001928923870226783352136511347903281123428839473143160278679701129040484192033066278288917010969432039270581622519072628817849088898485331108649066822689506160135256825419466973502277861380223659342418586625244899152016727771812556813315324723297288732722497653281299037166287784683335705519526925178388981568667429820590810802151849576317954019311850883980642696695193648966045541055547865678204891019936287603314690208638730100230756393771384480808479706050160383797300402114671663436357201255845212009739044320389002744605261608830547680294357560603678520235027370033042654093772579703679766482624142901135338535921980951670232417114351795365481912135182410198265767389930833223956913005153289083731961430806643270278752317116371393518627716374073834691457275287524317520379476093665931985723415622967624091842641071077614095464105568753335338002065868710193086697644975838094816633555934506984994908117379514654354945046685677030496389012075777882235679326658779080259861795193826985233337741907339363400181650115649547486674214884594007025247947288685626852788574898403207883221217946808566241165804519398894235819611603560440528100934339893522534410935584670802841188565067956477834193290598292141692547823121538644720073844353503511183226789422619719021700975843429023158255262632479559225566566901276922413403377678870934505094909168097461475264332589562879287039688310033867948372613901896867348039884732933483681707787998262738410948147852262255014445410910227916418501189341691514475270024842912040728047199316366292598492259606470736108281373155517429603472468586195216510612730554088319674774301953813517408034370435368127606622631207890704558170218665510828160546629513714955067612223648280395219543173392157364436401458699712168947343568122181781994464253048147484159366259569624594843963336262488911163986778022886359012216920537109030490589404488469210760722063954768342183103855244146046342351342155572490515523993257853502865422977472535618719106455429007299049749126839994540063353106592925522089974003221451173396731569832621189613522770646767083772602839081140380113912614146966950595329617661641160770111472872973623421379356445124828895522906981975409110084913804922125095135905193032454954591215801443741316164752868690308091971603798270263513724868178466291238399998449092153132588970111465807760032045777174772371138569215596382359243742551869895031023334959242983651133517941462705128686412496646283916424459097405723146286061425218656714946459473416635565963377500527367994814165656192850159210441895546125583024592541803917719420085671942444121534294857997159584839905329584378398332399171959085181712490435144320584931234103199609667047126227739076104771100035311688894302048933644878369106968209382312950477987299972273524285475661803274966987971145868806570041384907610455842837100209253470542003113320690550240410024500663540954912931498815570845817075674020137588884353718988238392160655505944422528310156411027544101629321853767090202114501672990891760013289901721675582926019582663415020204735001084428568750866097446181762649413582809216412982727219520740075083207907654529987817953435482807983237678262461106261775100633645082042195484213272154159893458107104779120218092523543287348238913346052215267299284622963002511066516735753180724093022277419891913113752673464604923775549925531319466963951462519603266507615586574462368753211210811756585140702302577770661204482362491623783501928864806899717335340730543141847193457465499804212750620175185593247300276853170917033771070044038719644287863725423319040056757859003931897196792175859593851412453586767048641990500355121576949918209842441895838000452090855194470434048935527888267655583765960057272984973335128649298242612641137189523587140477077914343568455007333991287322880585496490054411419006144456360017963856891106911120583814341688686349794342914146439558314372921705958988489582140480317689468444497962256231326236951851053253748907405257072440895176302016003494248771864179598981512107137737238689057645472060153809381596729643331193986530883472844075957461828990330894806261496541436842247848658905844886665595120297016637203491924687602891384357520392568876437311338220733073115250230053839725332159755175562490163397166877706022405565219345702817145675490181290074096224211747400332964589685359711421363249389144937807120704566592296556768555165312403979342649796583302818857350883702447077671377957349179864400548944950468874018811177408767494830086813735094875125283160449579628434314656128973146664679750901041957687538388033961921870527990922615494729969604853095960994043949090109399253849759812787033121348894348950562210647765167226876153833488495763390070300070973297517570262454183915911824242515607391986466780148277980933566485086185389590866934387119733020090653652236607397245369788989642020390514035539835988771190022753998136955079594111387341022919125156013798322849337373061243188888802324677589093246178040523743583730024571932648059308380676909370639533081774107107807484360264931455996137837202285852055341900016665587026329937534547378642858276621919866736039059958115310381364182474340450331146917653600311192045825454079650977359301543436451171709804115852425227150575096038221313006201939927342892367197237635275692786124853080968152596240808336115014008942092099466561648666294408303003631401186754122710710416107329415282848119774751847031453395741913790634209600208023283810665363583544956514487173463722442623161177811267483008417210693150599776344442896040964501059018058278810420721539061096505450650143037157232059543044776075525663347587467810823526714844921214300709039344151901591312294577777382961311021244855637296339825589365937388144220929154731837292426235703038030661501754154824500736291213198082276051100345481741721574505769047875921553666926627445105846217752360174332582632004122903744910623861423687313769238904166866592100687495476072341406907956039913206919184795956892310877781504764671995471953656670291593969255293729807056166751994515373337338220086473850969407414655843510189217784519156864678470064444405355170606465103581269919491491217069852255895255676482782192983912410899737274028635274802428048847737802258847928706162515017414339878552381997687452395223852576829374142763260544109712076719648081267391412243638160319382084181444990991424754287616871731403126648564342485695944566667883945891668625421905356218578048507777531252849228167022742709676487230424468103109394399608953545382505820649777692561572791355448583839585281290930631010678597590289618233752429303687266018490992396419422904911678596784770780759959666493954837487406754753876375752397725291689901537097154513520178138490294166424352915370874769886229959699448098256429420315836829423110828533137220713008250566883963284754981157535998340240835449212041702872144289211591916932706852032158932034377063985341731446433729492210910820448763307890796193893758490084223370892699663738802825730497968106389732426486537427638692322503629923346003549359175101685533443632148831800572743846770425381479721466973656177093986123823831326083012448043854428494492083383934532340345820946345890611049818951019764561543509506508390390859547914697583040555401332094004780754371354190471274641596295008937994351866839174164260085938219109619242280105272451494005753674485561795341657950250248390922203070041471564695314245776204893378051034854073426287821629966347143193574028464414873865530455892594054021816949759285993415621095542914892101226594942198266893368004972184164297454307844194601156399811577904209523885962012734796373679027242753314673582744808603523055708413916146814680423459724742533050396241561573053782143077346109704364045280382513383221046780856619174858103585327520960568432018290084988041356009157235732435553643987200343307129362814503089996920290641794025154177374607154418936465927205742663869359950895369696218928521626318948781332734958797294697433926218715839263527918934154198012707384840489847754053128667816233569031582854781046761856126465023530311342303026746021556572950236566398478175568865187947650628487986940631767406163377758645086301404893218764084309616754176867698473937615721320996823774207680514202075121104047625864598545731821071869507369503864476525953639463427868439469418546641312788545482106235129419479911396843173538300104486350750514708041260132906809980946572195834270512653799744629149369687505162837062295610599903859158685800665915660496215825594298169338435225945737387733976579721541525708116975761238003605613107445048247273103847482029167524283894352995074339709412402763852813009082350709453213494974768100950436411571323934970414970600920938896570770382296702979029563006296218852816406849919908730600406939807346039350479976274284144657793808379385342338413996788134802609052258920067766668558548650899504771327403804823028822237265515111361940318389698902894627920186285716298758395633176044413190296773808146364791328948989651840743636768596910386430662173312158339125795008696546523783214052907870416677387110358472236649113197580857175084848601333805683218167409083999503532252981843453539952671966389898075448331442866994485354150780197759081454074236297135180316293471718071571128100381141547223532785729919142693404957998834723978078069394451969297512287478792810240974814496348823524021477783524087129576116244150086925624852052972674958397104654476144186233857075202397293565711713743585019848082295042033700653084599645194852472195947036295553344495446255916947156922690496248275049986337472716813320365896711361809665356561935817440100379837908657008185127620115308627462448876357308054061752738750677437760528984705907614588167436966403272264054538544720508521279391531654271610446462470681735393088295305685536730996619832262375896326776242109590435314345527519919344829355810493810624274150526263667131531933727787405112920943155784785827454234264218619853841950473048728661964201476841093931913046309640349503594320247436525694064756569380294472009891961660668227359751201503077122092679599035984434532337346882310135220131767369757448113260419287715716057701527564012675366558429886430476234302003767799756846612394265987138176786255916164861132383834680636227647540159257591375997352090372355159365669066990654726060390323512228453870233539932938450192212773741293389894305992366208123863961781433340643757506937378995548401913514340158189549859476558551830960453388618002625659650777392638439638855364672110946972293708665101878307731160197071231642643708669867695922944806161225086480982981204526718085723821402124593364525875995987369346912647741979494700221432241232881150639528466760365679753874152546058541715462716556122443877701429307227044471983451501693827630107741033805363812821959357038183657724500716766291030119027193272116288757616266982484460063127111913349901312504410121563638639308049071473847740273638145386392383395340795122086286012450446863715059597880215167869429331845141318474030489842375781417675679217957521869577632689408590845720575484135808280837529201075622147734626246725510432165828891739935437268671574379476383539654518826035457646790972446773403037260750984716782979551827046772120673547478846506508852054255748864225952124988194726577115213520396160878850370891262932802300569447279250291680942872164444732385801956313070917363488177586734069518470855256314247348274894582848941356488795645039578910969193045872570362184518591012804503087504560082356706252613137711207495790046455519266502939598761098597678481564398706559363702558521206720427219545640138928619111002848991370551114271638222308207106152897427121521149702860596010598114464898638629623339058340703438980481466988695153166501225134951922557990828819082310719744335370825544295878319923418582530659505898524404380265406855785120386063324845275063419512993260797987226784016612994451291023761804966277595026971609867073230317918941910326616638533932075644318921789182596196313491826978419633153680231611902230183165974468347679435022092165853127416084764767557100788380521892259757823061707115292888454283804612738353147032300849793610988405687761446534217503644242999697768653057117936384671777321645774928530291845932365223185422094806060767040432594513720473776772450931602068063741954740613979749837279033252055924317248521319956646312651243319943482541304116687439999359896880914014292237138857878963218118596946999195038852668979263215507334208393461857823047724439471878925437566233737857125339957457629209644198904783491494368312468345120844453044098772143737372059870422022139745016805648345294778271644229940565159091465382077753139644062151624150285312778606144854760561875595394593227628734177719707417539753273155998753837243804506246870036860726269679843781280533831245228850846540435945370079304959666549279684463696603067210437704284486582163130808157896791468438759090574118209237025704089103230722217188673050510628911447393075118712021528846103484348270358768670733824517400973965156419249660981862323111003469519325033586456815348589799582201581381580490470597778849510991622333422313172135297716245091635780249945974381041406736979852394939719445128419860198868929588962101974767750406244641208447353610931382975897324662905493439575042928556033796580907447626706414440915697148495348388049693453055861873985797242635573417930863577553887077203651546826593643099265566413593312335070960070283744413650533664012349088352791099350891310373320400411025604078576981824254810171375009687279947289423334919284598374661228972094953102533247961340831502501196741870464486555264313193327867562810331385582355482234331838460239968785787399392327876788902915589622245264693220268699119433903264001709290669339568984143093485369691243885691626904528136032411159660422865549091412715375608634726926406711551692431354591329238238468241799393360586841058133457701578104465906225010237289068730179421800447440381668467364291536417821250120034781132492670973778663883025564281332966535330290735725491409390544456601169434539312259709876818426321865340358760139715478100112566162636768035264630352053242008585278590771764516198523826979036221346283391702727122422050171616383655837109129668077670314579130876867307676758655966650097306314229285778910130386265791282868497733718229815505903097877224163722505950670718132763326970440720734120272407271707310038961622848329872257774221407869234971360462305217371589346969605509869973371762249413656536738780354725571856284636631577716509369330111709495970573010095630603686673543882136643474309426366439398638923011399400533216314094622495029127392553312705416077218383553783636413171313553007208622870176021675177873841835277553201697493329387187898667513459126426467699330659217239530366423823407934837196594464628472306367942554608427606472979029257616619428219342819849261515716854849527593875840003179701258745116231783346829733405032127757940104656166592051745233100239333544165067401379415404734136917905823959089380603780504359285558000761643597266389105797902917095833043380578974740955642009879572724536031976774653607017311934857316645273306141807173650425952860295284509009782629099627102880561887386435953424935861739810385625968322979446028290315159776404395020714175860211999643560875055255423247277976738656020964974968856695255341749891852150008635481391233646592647008793347405514814979022951779352290553783628740348236819438760765373612874753833438849769127522152531645104195508326428788694696875468468642201415398979024699419939471984241384601351501904011707858016789705880033396695375570865880847272232289565193596351176328069020672048525410334807759775919392324549219662074164578195490392115519369142346952621700502443138448360870645552257843231488755461306552594314680551960799954689940802418210695610964781567643297408959526697912464264569499748144381434203021385458162670963870850502855578978242233356831294318562361938762962264409815647914203133412227179790886951686052406997558644755488766343664921036981469524731622257714966207214281197153620412120484536874905676317542277412976373039350039399443775537608219678236668107295193345415894937669375496226133368848500546935200831807980669701205169863327368398458489558561717290517244980285077459772491265011286390967435923766362291238712903417719509021621460206457909101174555592124047527939753568500333722948948897505178333310409529623737669212176479500953307790235753130408341167165070207700086607163943863091847266190451639410334398188762485758238565697246507646343691231080066001586633244572228602609360659398048090122761354374090630796493931978604781973139011215611959065847826226520960971783333552339398252436279168706301598614932508781351660034880204166572843032885342375084693782481470572203568506346818915628387975709047737973852992835075930442372000209072943827882184875208606799624510282597225491608108849438584285055864797427463425549544633209760833876322925901451365959507279035913013757827787973572246062557748612485098222878844834333519158796257003918089498380838392330003463138743489718800655116669081255879866206278935490885347722734957960611868685789592860894391718458050053742715089355029814581089994525656492964288940302635737106964061550394487555010264666558126558074758754577872041011778825220321516359052819346641125530302515609497379437933654340155220754811991890721007147344559228677597073827576354962068821257888767305058870022063125043190659340171284008949894255841356938093098187657501380659796120990148321090109674125000739006630471100724619292673300084302656000690165970101746984802977030692304623330477413428962510359132040020571462484671116187744032846479581289015235813157094609677831460224493870581619263148826783890530549909106644861274195074766094997326236054655280527248024253824865838949458139846649440472773670890607247934646336768832796435143241516963147981326027328370180816337239804663782309266842113503402486574070885757759420712886141392520727874040858883746572368369028263421927190394563083469281045457203104646023048481254498961211521439693286900287290416993173291051676263602422546157123237269342824639996777742972272243821920685543848697575744771222798189394646708299213975839361361174170557797138876390189208634190337510236320688089796946484719259410295547145637517539323218472686423138878360802687796797295313296627650444777543202696739140580044198104205306248874825580098161313963406681374770537847305782386942316736898011513404282730101483888361148078102774135706195868434236787483865544612974277832217426027515415004935379485635796833414890062299027221039314512617566553688393625212953671380916433595600437288528459785749999960989655023597172005434969494873247842587762992036185787005687504077236998473358149404205446207105006653384917306421199067246229730145066890883600956602308776239979016189585748533356929252101178170217228934457241122556753524546637000279675657231687331736752349649957093499169838729688581396662548655219174662687275604155221941159115924337784994222123915314505067940125832204814841575437742472713415776618732321693641447899999408362187341299797697315263105186879017537842085899125053663207703238701315756215977100717021346016400751047794774074234707835529080254973021295335683963069638864429626014827836112178258985182105384340850716378797032026738556435377972302758738424522428793616294014882201944166742564595931988139613415936240734914887276334238000131219172941345063943241813396103534877110922411520199901362949092613184697323242189563662055786216897890614139363548238627422603830621693421154929240304957656502615387328781598323291921055363048005721221454796953320806935745717966484447189924325584303891697016711935430807160053749645535873880772454473603981332420886362844324070529672437932531358906801765504172022818047342997882068153863104583815410462591105349254850043517833026941388182346259364782203730059355179814199889483045615501084703451902471862506566494212102515664717254364718152923389733517160823554530147347916260942407141743827829335336227390459624480447184259919975594946306404807273611877245739808372569703923201342477153434662847022890082920387659205371991023746800484055579428836126381214597139352356531087006652366092649580509752002931668857343693367747297842368111162537734608762958769424303043545633021339610179916127961166706582587340035868365922616437104230370682539791614566230840068434707619664832707365645964453463141841337801614749051580981357167801518470737121003442900885615376115449182139382492902357532535551866491255389972189232171916611760347053018988223607261554998003746261294930928720782074882736723062382855140294955482186783150851536780979189501080909857928962084168755354513743352068034765269704749186695069762007922827422093260736800807163805610166006314992525898303812678124300551870713214764303858600297939502449413866848835727865295658022069583453514572405175235287458749745417997964485964539198745885118623241737449177431500508562083545376798907516911883548415725349822186780976564010522006348370021633741685708248704200214045195160466950874678045833368152024053235189478078507915339617404365270346596758688740287715482830376315814856755660211484801861133161061832966151308014076439859859929974522163162191479288564041576790301656050836125402117037106679302986087365848492208811186579155066876957167998641099682863974046162179099922232092312362064081149372880467807919217952824531656963910577938643786937049335899221822401910254514308415750188107302083585625714820100225010621871222964799244678305296189046119604580939073262453635671414094856196206183215636233817116864052812352767885092791026660256959627608880381178527081599681570378491311504632182850021042588065353197907808852188796948027398593046551539613804918130103199001903775386417716135355448799405310865752523789630922708271919142166941176189223519804584159834375452969274692310534650845603325368375856624162273177095183038403130750522663010418902725593562903763996450819252231858992400897826693858470934738444118592141265722247416578746139707708868900663642923865958829867877621136444840921237356000440207949578967622311322597296389659569629273632481065127799017050359142278677746022982342324581026816861156050210159769734203025257949474002422323475007548716418870631364476715677454215889409479326127593820171381033812295453063549947045867457367799183444486961923030954908137249880724526182260928745098496068472074446560449873369771666761734434585377114048917584248350679644670668412200182286000349871015731376506938816015956559173327371040271224006619099346642025326749330674741421029776484117294950088344554742237032822703225063895159780688339159146230794052172710323373952354677281891753441565849902822328704622216264241586938933756316191979977355836533832783440976654122051279667210104308292855300940252089388625724442392315213437048346902414552164599618630759181762578751922118187759919303113968466126189095876652222846297055469464342205472902493505723891038199768277036696658293599204491002280164087169472973459181220909300490996116249928270008171784690295046949393465010338511540159204811516318681600689064474133379996857923887102233881566158072617894145994245040755385941023295067804268191331673977323546105965642395516258931040058974470645246201565068693577237188703054912807705741540210951901290889223265211228664149424726908188163480617937830223029904131656237081472898198257968492878930182699671030085173151768161283646290853300721595875265938542420921091090107553043456476179460885580963737379917055676587628810845102546879439000443966334722065091175347890358738484000203053560911219357941066580080988444895400465381034250655319487627502647525893593424891762375680940560473520570785349409857433137031709131777860279554180467357622809446939376808820062139162181088089948673648095874236835431085476848392053211833272172379132664967518878306771196007113505893445368604105471385171371913748162187832511734637761835812753137989442807581746166259769485766848431616796354651182304893627784138154613677237393771246150272809358316456112921990552997033201326266713361320568569496668619986793112151966396281817467503175869065194303682033282329639400330294281553774455337985714225558044660029028041624636048273757349132483680791471852297106379310994442240338972060906985846373878086430828665001770371152978869242364549207234263781504180308215174438967556295209540119169749647909919099976490953353864884531090895963369806469265426540702058790349725395032342109384415192760564082401876263669881238792161234236920967781626689517746536772504776068999801394934258360804665890843056386035413086068181308731263404072016567699725783165079472098209149120755331063553904489866540454982941808405638471970376814047193249075499920653318411008754477058570567022915495911278322098415511428479177562933471479650558329801756620661613094024871859081227760889494792395992783925044953050261838335718657455448784823033829164558591812314725661458561299935470700932121391752326049713263937271920647057635331884613418328632089842396681239641667306739014506451046321398141845610814531923122700163290455027011119747931177691952145984815828784206714668245716395738357840981522115782210897909072720615637990718106562573217124093197394488728341209158728385053733264127972451586988045760057179375210474172532680751760879304782781637331618674883740817688293660727595387631413741135775324161390519075747741472591579306657379785479875524134522420152480354994543291960714233075258362562295015630862533742351370174393143396991968910513615635465799976612060262413001832164999096225412487960514701821151648423522532293946453878641384669180460194717634315618035891406841129888640769982520516752552461503498503405334370753769791020160366560955385736112669203387793217484169915829251422007068223638616472798949166123158024523538968928714041888691850246338797655347077813659887659518379064130884715354025363948527653660852674538394817528917699064732491017559725384414339247361213958765298877573375782918236647823417326780738924289475097213817795412418741251093674540541305705664227932470630703032384587263634050072261540309852368465314901181888471089986429330475490447436305258359736340219444460009138884783746794029654088967067287649902750434562131738403274772282416529580722320553686366349542126578022725258295788084148172089187690527508344155210303654543185889508951169498406158854749807352999281172736052743223080881415845798847683752247932194538141936143528801096845174707346747539772800744134807707506460084062568867886312952302022571491833602757905933484061554608419047067128113037009334304845345330580399542679919989246048897230816078663198833491197249491587390947053715072173500611043290848900390181583522835228110800258344659878973835591333051801725797076714695320820855829138568760102597156259376323497028013896251939584879615888478056428562319139519370519952854748142725114985862142748735587946449250959177733238352678603494560007236525060376292687026362131081563097593772884182012703433607069294687749604092344473368497804636712717990814705525456268794073656830095478122528251530948251949442338562440481741586747303472640872704805067595920043078422476394585404425757543057582096439118488358053701443660056844127276308279417173309088258851081879508533977854238621600222336589371730951944056547616934740273134740450613560426596711798317911511325520109349573220837598126030507449059294755395661400216493064971199153235097258582308269039289735053432487122581404690238132414442495238609745778171401275460833083601109514584654970014236774854042029489225384864101744240711392172497845827900610771352296865043751692372362076081340663334198334244230089680190187290692914291071270372458495199602256494123243597074648194858141007043804379494056947914152134469644994064030726590347643983423130114581721873641262643321924274906908689778619393225490510760640704252776156223728508750598124586409413560354146982404198376263444706299487170441070968297158497391065155984937716918640416282339029928129449095000669069270466030402023609488483948126305873546193267341058205296111846527672887725228907119012888903035160473606660012423743738222994470182465386805128999454705073157808532783900656970629782413563792062796556164584494745772753751605157639581639132863921324589765777045405155222362839298658539503716668907585964182961280225057146844120050411599780972761969416748486110482486453332930486777729709680628695882871391762530838661630315827711200953347963607835710587833182031462825210161465168389727062898941047404666786233161200038437047600204015012634671815792273256385629764303944789366994760108352797824207578097644551417656764461174016002827625897431993837060283585368773545606061250530121345478913595227483384156222913107023645406601857919991366856557595685225379487335519746287515009750035627234995152488821599426856065417986196078550927077083664853896997587891356596584523563882042306684408462554160186529979464073539506709066512939713849021866056324725719443209092653534917107512342499127916963042347193530708910799610506743346625117050736143610909794369490169635216279307799650054017203243989007760210014783882136573711861525840219967617810717147816229457057732450485837780171637739712256147082806192181553145689300606394104082628412854982667540975340591193755415968952311260955068380145433156275697962582439854496986221417994282732238474403944876509119564580257911978410940682504397779490282407883885286073936304537360716129794728191786046811366066135084485292512243143371121570727195304213686664330499590718555412853139710821589306403025076330768200605250373813750580716542587035224668119645285267757034205537174782848950868480183918250188313725669283670745788773020146027519918164217684297095035883004066687394541111762522465991043209370725718113450860424571343276817879054071651960217592594000839473879636560751384630043326227967387481962233864182024772614655637540238763918200756352786791911883263044120871518794378280574670258862005489695866432288183890704886269605381315610980649096076141095833112678616594533645050823910527883312974937242233855306122427363463522718472417893613810489620944568612410132118462215338043779876233389986804188127699905258712328749614099081449635286150338058928678453132056489615995172116099422825256093123301711784404861364574191329656118212781947347905929281807175298309890783670940296367331009146316163658553490882281432735592704685250527228040729907165317984360453738936306746335256433346168805757674506990888457040824753077389679700085678545079703040479877308744564304126541458126460700255571454189991480031378766336009428733006146959463155444422562320157739808601927524846340020216543191655912496136562296410792457445354512599264144654088714253642493093169979510298464494746822851474074540063629840211412199211334865072359515551084230530309063683541166975056447074073908987859961722690045920810725838236886083981277966928970998559422618111505542071709219091617934366246544890825254712143482702219117374168330672510566400107145423839155009384738813786504393555813418585747725894942211436816878262274755103347517087859363583604646239679247955648799706855402059207418556833270112357749999858926345587825766221453518351247169379853822849985298119381002372100418543596228517808283634032483562892454212461694966714159143472331320183078818424275328799447407838492353387828408900155202340931341391064569798407006156863444499527389525116727201120082196909435429409440844671368005424322584801526444999664540545649866496804141685545266870977549810173139701549778258781981834122249224127976138212980306353079853692705261728338396851439007021630328769675994335376706440423274146277740789024699726909780404360879089777689901368726944459282805333298640187937757305132287785976258511875187059486012905367794071169271495349097683845603690011047880967945123994121856958070539082893775025640877473371622801289317010699453908594761821899974213388044340206244509592437553574831168689101184713926616957021328511988372511228927004986612356133871595195531520354295982559905741115623943357415779700368587131414070801968434097913421328483725674168938551974893936290113121084361731482420472861462404583252131063370947806833106994428289603573832383825167040176061289519648520472865275105041147641123033665411286834892439233379240732001726736012157932368322175283476317139983345038635100308765014394846399669867089232984916656261378469123436981285580210816077440381234655380138797835114317734984744338470192856932810517656773493584060673746909047001342363742753721481142434762637300255211934938521195405259585963779201977995434836566353808354487663484128040877872403808890145159983516622800331887835957259983524765453573174077711312306057245805812361003486874814641851918450476303781913351660770230063877713345121517718892349159488251912819809105975506919611688540182589775530343313222347327634442539865084466893356562031298510945272894774432587041231271202587234200231297787210089190536252558826374783309430361828708813202518638212209352423019223593074026891355495343248108330603910754190380985907005852895682445380022526517971445235296769437623152833220963559266217334538553541193590854433414433196588819737263550404421105684425950866503712530584454549832760772452660110689439719183837164765347427965285626858185347670694751748266424337283156854710751143217705588074991282035599261762532577430605544910483759678947441517101650462510943412466443166038483818145920858079825710252122687896098753859549975327336142148250451226774259462467792621888859015630174120357006105646544786042771604268216183738845372003812140125579662483912058247729649703855903090185819927021661277022764051641433510393844607872694956831719562516884260804947861350164798263620879342058046776772178365217942463858410000925203858976703377504224556868470805991286241900832460189406437525933700037051661034983263336496614813661471066897122155765694415320532645788719768727186018367628614280333618477013292892199417479018948569856487969009517214636677131134121406111861893188516374414689325635313700451816003006217440770530191208679764292649018935677045116962035369301569790036574119706866251178194969326841016843433100268035477456583900486213368805468401444854606842021603413711319666695899314656364594744800822207786159817641765192284242243457746191268149820847033381550946971709096014451636484892615988531224978189806763015657507826830817237200366244566405565445075204782033942180446998947526985671310334559721453720246083559414618668143349927500144675754355734591012346617282108224510887938358335920311315577631801528742126398884997078083340987308975186308443595898632704222150266889350117556996725880992145565041653346502940592704014364233371210365915438962197951999308868108758938387160627941604042106639120911652234515093633316441972743564142505345573136554782232734019894420169317663664370890272778065423469608639882261351462592570169055382309478711617423884476760845403020703593433552415969398471401101547856765838382274795966561948650627320659464074189740651737109311548240525903764251617568801603473816947363635844291379517655317482441743735086323047729735731558914028820113472196145979106267767586350954245105721987926554050459183715407073065516977899900125305662701765452325932002051363030826892471007490629573507202781653467059543756265641602129186004392593368713735162019990952332218147492353107154945197986005802236108204365211937226393507339351164132425086334388679940966283622294350621769489570458385530585358081561957761945070376744108805258804005433204829630140532320493617735063989667961907118185820580238277488764232059481792487983527245461827967339710674750556178591450533793738810717945907090249095265274803861462095933646550952509431869025286344024394850311741278440505334200292892382369626212679854157657687967507259834281432479024646059718774516354335647426142002642415657798004896411904651375938624132519079037942144459854166344902196242712252939433121867026391447267236506477040683476825068098651748702394855763471403751792330965460411059848061187161122810322070910457985293368207607436156404328312445920763498663179388371263445447367163702763875659798192921868514635426727125136840834034691768507990793642461246642896598945599782753019549913487340425080166481151606047130232394554327741942104521550342149142755464901969908072938845125378137211288624677766641544365301389198184001143349294508072978428864480313254009158400619120832239146480743399780506997265491699281890969890345473886093317272198447201490375099628765610469079348621004237782598978545534227605610390300043453471280652716316205257884692774019554666398780675369306919484929232325539110144140253113337856936351012787248900483031648858743795094733033952369011966561891988231944455413673816451687661974261379453923970001848869510971059858510858234388833950798645781841172464585673318721161459102281908040667988796791569557323173573384671985689543169572650994033725493102682613106662733856243934448634102035668362323652287472846083295595150529874353999370255472380114523620603878816125077213718757147639651502889975463428598038513818444943466193995980570853863228689398524746455209773205056005943056906965165482486774941362787612335536299874278999237001797692906118439016536846891330215994914497574965149148310858286419293850365063069606691288484665669588839672830397098105144189209907251656865249218764461014008192229870324319772174967231733846021635865124527230382265114795358648556560865663008074343452161934077387262585189012329288424922330133984597112646853175887537555019395728639639738945496190068065128381436063231644545274183898427298297493267460625662405093086379338374465598015045362928068615793631911837568083032742252211920309330360840342639286537168900944795842808812211280566734745342836472932152711375451902537691016940999577055077916237076553444713171797909280471002956267911005732734269601897827300967210233285886838000883093635310997581931119141229613954747814679645945123132119957017679089572465240130511744613927560056182262414004884025375283333982254964216709571227056392034315584419438873894734634797425165723808360392449698754925126492505877466076164465842675480101017809749653148763678333327604917828238027973531124061555968108176393976005665905670387832912206705769691914847452015546082189030189224099582444213657077422162241003042339415894370165240679527337196044863083099436693971975912324914655965823900117864396875078676966879619086300259593816087493490112383889892184181191344637433838214234519048927485179571557819003727781738080806932188042033155205094251571761944956627574863151494936539398246179330765183749462597048564677582434008325964597306594577704020045692640749186930157385299703520371853167073639240122941529789244142897395317927861979782910792953043142843487990611173309586830036138256140988867840081333814610880523588095126777144174820351703793172034328970106133718404887404554140200124401440873030781139718834581960727552094136222274537018027304005140618704035076676204968084180334041591717788928199744480639058800021913717229007068056712080737140950031432988404734911151166090741806927642075608051545271331901571601988843745841642926074210712845852419346704800199991964884739625986321822879439685310019633829974408393832543527089264591235911637660517825641255557431356211310747996566341124321435730438985094761100734757300018955085457375583078275585447887801555791704036635581745200998509507638164700859871070186744188605674087437672826616765484070036690403753207106187023897231688639818925190192858817864153337530917128626771094239887139251986378869391320757661815585868966104864346914022894282032944817204406355979406117495314918632364221987637592823450164555036078733315468893532994210470835301304023315643472953398568348284146173735680694720766303212854008150384825796381083867203460148029861419145487679515761529936713232350528618979555173575277336939999179963483165433018359862951979091961293946655299253804060901922510450411626868385440931560119270337308583323453887458158833826550765386328555378207470174534742137105719363757257403556550375801965143094331841171829814637147260197347495511045981339838058277524509134999868426689395296241634498985320168963151902532709067466668894225476036358952665989938757709792706752776300101970464670805129775971469069554380450979700541070555591533044872958493925826059223223091585312120409417917686810057142015093108555614621792168252192585170934966919156334100471070905802870290766099750711161282980508310268887267905181595547047788273757923792712401793042371817531165197336825356811415923215199230432386833203653842585882854376936782212642451996186427428464220251696707930548412884650919776572031279091159451087887140244643592434105929665325721608408265972190536838969587601295917998965456549235658740458140580429542027460797863677149038686435812200691238499019305521812910335262826507020513718346368178145970684478641648317200611799344663537312475379162570556502107283320492138563084288537224312995887651735687466361725282412728393307549255539516853048414618520950703009237460155253028596568063248922845035533718251613775287763743021456206824326286938377873565334816112489139248005476220390900289780784166881279520437501154534858466070730353069443048273692541997208262039781494171257489268562688762293477002541781486951665959657116152089256458178072010408736001416442010649319409830652896224477291765083901952738278443528123432570182416594186853496563376181766360864016666839105922734637146129185571176272766146796848020600406973380532575990659449521344030545419699958764902105885927399071195736030304106718836436488692359606299455230213442448788600355502244976326346820597826888006339931998594963066475599623151710298438302363324566681269800890212102443893786040109952552459310662233504942614503727569139120894012759707667545304325558553186096815263257090522803086528062593246045208737740885012712755063827309793394395679074878114375642317912086706873687227610689922991078455759859867977424985053812771850636884870101928957002536128051670475281121496674579131582340641338351326696538542426496950223255351497629363732123310526517077272280327913290322884886088352639043703533999112604829631300901459873316096634514221859608467697689156736715900620582335723480689016802127940467748231345657909568877953914456348663828262209973223452318188452936885509895529724464849190645616402339218472313846933875897543012520809158970565823901227445664771774234191957076703274656298796449006971996795210375451987731396936904205212584886519287102401388118713527383850066684659215545273634734772689171141221544271168695162008851553283080916557224710937912967161124968242014738058964578282033859862983115832525725117989340186019004226445279926577079096956325020055184654213024244328300487521375758507256805978495235505646354759632573178504924828738008915114344024614848231213334258787911173567894508395008965814168711911275118463636356014169281497679962040705477028158981024620868613379204010151137249887441415272123611975397634833128783048342158094747371864309068989197539871120380040463820378426643415703774798654783550294202759847169573531422126022145755466697341348312199671919062956685259122738338023020399720737071278637012902399342299119423600499028841393223701720406071104375176548541637696677784347039616572200626523361973814722017534894372233346146981196537958892691983853742432869188818476027920456253700804014979084815167882781314850772283266741878703701278726717409300566310393574077682543435168278361119033878085056789854542763121703954947507886757665324214314920752555808014826949275935157384870716625826491398980643432488028518370991074762655349980657056917802762988766119219912221683856175348643810957227148934435487559217166251382596203488921562863386520382025302134191387518093339885161084019794536949625014242746368917224210829696560803680477759527279543768582597021289370012350635615556580672658240253003972663089698614034211301370314289272808716522410661808525237131109569260987030517245644772936148100078840252758641334601554164477083909048061536024846528626089910109546150595685075153106480905021576003547854778822086243284729996484540757815798416673667621548220052367301065321883848417279408193638701850158664134123256543296258748372208023876971855771769992582059904328630686587510533773670699133719880288591376152117923447577495663991907545961523037929590496599469753631493241387071844341151890810790788878003082020647918239998042954302647927109403031355825928732152594973971575276139641166130985555884647143966676796328508388449958034397752392563326952447377256383354317527220054214655977988020719640425197059569974892686074632288174725227196082907642364642166574075774876369170969403466406849291210418303448634893140443700073143392495849372405889817732035801549873881953163525818257288993847007551214678605001189581071887317994648429488798018274432231265502646497687520517696615345392277461146951122440278223199014977574456665352854568865914064075952372119622251392068074313113190760368111718321845248981798141949693593081488426981344030104578699153471142264051313371206297703409737682168732558820628431029508904410325061865109299736796063867591033133697116166806200198501664308288194129232265141708513074612430790113199939389257340679971119600163797621708954976537649896798574536824126713490131748317191624772274335326100579617458107646915422339854529428848444785109234477643676457237940381146145924577474509100607106567980900165399272771342069397155580621222088380405936466364991873275415476659308480050776063567947518016262186942706159736760975915090577848550398644108262010824211117091731828746715943594123497680659828985296837760061522346704987643816494850773928981093929008232945055599266736940841660969172077356421643368404870895977403884458991320746803657506130108959139070276605619913013135256287208338565586282965011544507484895120938539995370989476698967724865957372645986433574650971380890565171329323640299957738954392505492515528983473046280457419260126797721628880400011576770268936715447072107172479007272236389148909248474675510536194935857518941350244031127351020021153072433731706656987492991372055967681472148680562882228849127511866335070919225948009627976442085968650249347528680307110273496213263097110321931296252235658684834852834529607367968233162928652063465360523474973840738543166820041693332837216835771889671315520101463491559670886607778919596756180240185186940737335355027677670980280545147530605634569847795596639552150474092509140332677725278788712441333702227935886738051709827113678815939867324171131405348103963972473382346460811946097356924382238885979035786206170628614235123651377632528762992082770007855928507236700686472650878901305496848537392247843558669757078555247346204894788940343436156573290347086039727659041272646812042751537527561270428575709768913308956083344278809886674571819828383148642120272283425903268538431877825569944321551185800145246601453585435212707359087911009063944567370619646720280291308543306841894633129827009304497098935264342321240109906981576514145302580224949511472219247882873072100021669591488977712702639447223694317986655536446437820482664260505796448271383207551063558047036474961860465920449200584217937697496800761497642604915780601935075957035872199682662716333289753365842484965425067460359109735113618144469960822826566377251776188174688770775395762486085006764712363200342504580299064651736532510537077845616820175605149173084729281973378866256844981309123866190428415244576300829944537882643000023098254208072612583247059704372394271133964528693386097272666030618289045574317680986137490902980500149216694872815190145736915510873935938578565304615726877605425839938072509450490222218549479409406799114138537224934772688495959184555869505874805776765121826702106283430406025068558422321435235615114667529599667069734514755282073468043906186543485273341554121873320502351864155845323051617740703343478246925579448318642592179797947479982636018188975012238556449935082618272756268799007254487515223252528235643793289276539289279175845535643566615148790786184045270902992901138704437331619301923571366326585609970751854116218907981657801848204775389672559314630601790115504494122886265381014205084344549858227123205358041961177517306887706684475889151128182006078790448400500637238162983155816863823638691419272834878619626757009397457976974092962768833398253765662297087341172169796010262493164547713924562130973484157573960891248726920211414444013754425679990586337707828488992427741094670226621400141725309373445543449668713022485125946292704263706564698119253865154324596048064491803548374996294805706894859751095085387260006746914921209781532170302912082753338058676786858088966716013422177747345638599298341049685188320927527004821521065871792005010472067945032648383582998794221369790507953200177593862791674489964735345617015145858047192332954749017937961109225870491100389327710322573702915181806815332419840408280666309599035364171443457533291522317909229656895186559680876105456566475554584151160797857836816301837741783486098298903511574081896036509952870173524795978728005386267366552524714866424662521827967993821254729160804905587236668351920178489622335389989273526631752921068587983401180203558052096890004066100787476449792608325375559971777577417712516697845144159302059776280702875950550385051823036083880670603041501587166818394852123546043792026898874927978656080108489121862700794350051498040733593034863462322919374893101887885569988689865374545665080349109997667578609187961162385451102372859400856281428192998126729978463423890787886294272743708526883762498865761786352921450586077650971538380766570193938848084515258389934117532707870964758865469131828640004621801638383760221720697664986056690629064208063410560009163462710784623172531216819540983097620179180464051033419407513646079599441369817268247927977389561573045186516465481528583498672975898170175858855512394533962729004490708797033933501299116510692284126301582314912932516188094147450905997453329104585615769421271911294657245788284107575672908194504339549351125171610365037941289179101957018785068723329391411874046768826149817030590666639743056935454768680969281645749619360993563644664756951673707835861051484561837086907666943040627442629398694144493424375765843094586356200818537481076084395751875534403379702618882707587365894136479386511942757412037610650230994019976808314312734235903069987380986790399793357063256153817547815075325732009788846897614880862245182331747903110251143020521100406384306426780991458652006426446643244318001131262396385112460235083579952739977116555129789851464560387480512707373817111413255814748920791691317387606343230175887484265257484969862526503189503682355647214359981040823539633545938894847124041884237749812987871740844671531783686422709323367138093204570919403759711137172836184542325162450814550855642398149189612303839513443035876494619067926026026398838025403828883089381581010363491396535056464719325324036405411998043930466703826943666029408056019721704853781970967882976371308218425497999289465455473042044932447564818505032875312455173291094334422094228555553112365557581616741220317086842922641401264832941317664518693525433576329312860498445428303098585666070924982594671204987974958540851669898307778030102033649878072291035120543218187931432414945830340754027574606359407208103872808133579701264464608738540799022942857574752850092407899520316402650934825805600483964078206403690312687060468240548320782987098155782736333930099750254372569069454495340960688273921814142357185673526727234542261521164766863781325953718864188987222784162013001811853315505119549395152162483178475493599116658500533097246893537115167225088508261340408462066023388860912470250194502730848614927219317604137575389628546654327277475551171030494355228142512567858730288485511409986591476066209706230125498889045019448743798933006238515563299526605026465436709601080395551090199959336320910333492063624332135103475949563003477227790727861829425779742366825975963607186259309862778525309687359337900646638936197292935791542265312708519527993896619664489303760283216914009803570176170914270137437698249463929029858189141612353180273858913069828032458632945340218740516723592031494297874421449447636082361887483772394279710175825666902345551365852600241924453039921556421741646529505264253474923160903937607865447970113518080952907843726592091231360611913696917822847155575983689577698487240074626890734966390593796598406889227016883122109593521118449222099845674142490856319241088638930285687708300303872432361440152438929784384004922066116285158135480801193385906508985345992979454710996003651083280173698891512420786313259598467369433674922227356084956694285892266668128333713553070190604661023580788224154370444940062946604452843916858888008358645946257824969770197611860571049578640485071278946157430835982337059452779077057344292956290760922845766198963464361204961515294240207171974842362530213662736471376488233270537638118919847104055718095112134397011976481585710467596434362051810171051907772156651663963206407240453468663527008888868366563089036067672143151427402665185337213949934749431063665055781667552358332944062170404727001635778684999145634852136897678973382469075302959447272067910494205375943388958199082985515649193162711936494846567323128344095289737239356819709057841948328652122996455250871148544853004550840271742577222811526736380870700266609186658990522483964622047515701833646191142505156112649023970214752766674067492647444608666728725235001480382461969645624959957407952323458999667742267981569374208321130362176989399460875202823619600849272449405792121280808663861204861945587109472215111912319645941996975228737396696697739739344173259827187739247873811206084878085311613571913407193286414267624868968822238860680096300795022029754954717270095641302981126740390039451485010507144118246385432476367743520734116590910791607013534410354022194295790165667140091117143068339432782762983047139922907841552944490834226183442884826372521092151360202220153613388154254234093421368724825412251930825870185439125876373060349633030866530600381579827300023158262206775884533791850493560384414009303841020391363077418983494635463574918879734293676492671426132965709094620042850929791788881497556167792459636462176477829481593256742213419335207562901719644159570838188098733462409648782146689368099055145541767749864102222634693764633636497571671269708912797897875415764700093927282826007934147990693345462525237682690881219468661252272360144207190985302403244547270937763379597700142205030813383708675324549515762470612183752286073069845260792849122750456077089328943103490078710416721834689031913176772393494425482892481802553272859638263832684143936653246277903793533861971085502275653437258943921775801493897936712518057570071677240917404391322216636137769295609382669724759100415344851150360339239510891798247055681462452642543492664316914980763389226229467240499410139062265494830671684638760191655079251468471119014322279620933320321779095548708123945190821375408390797172276588782504209665960115098993000730709510355345325399253550319288309653794798699601497831600018700730300897114301843648564457395404184456575403804790380271489693916326620774334035964219733969125114575941920747484510234838697350787971145796986904517375846095044307623230436360841293866740406549186603083313302502941660622435180420728743399669641295830960777849080907003926914782625144553671077264491299890002273945685487264824441575200918739368730964737640661740280948434249459452064192482824978595631813938498313954368753952707428447266605320738569118362680258383429978087701567686368263060795535601110723420749500926206094455451926684086639993118076335252975768539484452309537441909811280131060587912411416828902456429589406165742371995850386761200951813233474728314338925812871519386925187146018330730968486515916964988729189275482277831100629917842539868598167421505262093217571596568431781532240917759675487699819020246701809787245136958159011073634273655504304447017418913625065333047229003256877942751915308835029285267349238661364551117992226379695553998335271400287797579949554937463586795584022455655985191835785225053416084180603965474966044544021768852667472401858124532045973231837767637562893556080396260118281809160744960422036886733859590866328660334358502322906046151761752352668329179729022292448763907017952818305322097355911647581795562991493873201621223749302578545735498417171163989125402866061486231942537978198710818379060674719715994544542789869905368416529329200660917800223756883313193802218284393816055142698479331027546556880774986342878842985894649308344883612378776756035279139418312215639528983467337281585535934329510298864090734356395132419155881011269961272899126632588425901528396874113669711013572550403576995679633049148138320284822665008447589971644854871612992198403714613816696491758085838558541689721790416211983560428919663767199919897715192713197912186114812198048313761405366454114301766967382298278098944742654069886114049129216401150363627964127144202326494456902307323563313102131347970397962682984159933200039691563358773733885819466424246411558805868728191852957241760767959277510974882896881759419876076636589155704116701726118273974396414236473410881563352189735637663977269792677867908738692970933921825774177035518416701114758736149737936783881804574536579871123724521975311709424620811541116968249792703758630266211078256574620021682806293907408331601842671184100100890511822760999111563968226665806619050964452782014299033640244322187946003973838414911618387171673581967989675690423668847268566386225134315369121459049145643883933000404149601641910518504038749101966632186777474798242340461740368382169293212883970164722066480999642795955140642354538613202594382366722449113954214751381541661028104697946972075763565325371423619258488941662695380826008860655155337433343018203259906314806437959282749471002462769524566568664806826569348583549723242796842963224999797866888129412374883112617877976955886721821198461822184256727701695435605096526522227009818978665212981585637160792105257250122460695667356829736986658052120050217171185000464462477994731643161963623647419181347247699933787927826968740075409165035305847205812159388565220956471420446287499959669759833281144693470771319525208290605986309075148531474853339601414580271010871287032245104279959609025534568659547485737650989786297521908603626661584463443465982913227817582556219233520061733085073432531511484128969685230430379765684184872547432928148952705055346359986789299182023626409792220215816759669218952422406275373282398079624673722369931303021293954557670503512510444259074424541281250392284640864145630857655631667621585610197361595453133125184130859934200769630362288026934215689430289019835131847675795177713668609077073414194552675910935703088244617849313671044573341049037510947585541075264944171249549118263908834860169069950789896945588630749808042943200528517347474169295246610642755484346696963807096435502105031190833616102707177481761564811033863082547550233124767615889821790522999232801104210436712124808980999780929486056891988818534987715436277357305255887529819380132915144600989660011994786454880362366130149714542667538837594492117468344262635107198828078175752407974315353009122475374212683800654893018837587811351390390649288914350162560974454442315628144308320684773486794878996250182988414005925144122680725594231000027538662208024858887389616788766321428145629505997346701347235342188227642515161105847614960115991307441046567501043056160801442673265960463998048046604143786240936718579929094693483960398677390131958148569220169056785882278318428822365437564833239496001501938477080028915006440891347248823786530735711580298661975313400762346128249837080325368453908331868821638010181834746929391419372350205613006330136444635916331573119076561120326387878376278657519672942843985549229548751426512492566923853299735324066961190481755351822694484248108234348056278005921741123740149113458484625739839946869939331106092955584113645823799052993782673230764966344328602631537739166263287992961988350593270438366122333098786071338004016349256171133736119016035080740790821336029600053528547988072599506419672523608946851191559236424050105987498879722922025094438111866769656113644590803572607365641101839894265999827405919509024092963079301925747684174256310228727997930134479826025579051786549103561714940092472290839808361610075707890036793416785474073270627818651243733271514198896641253104129339272785196480543050729035602787055707585389744773221509591933573585563470270951623082120125778196231735776009050120936165841975738159076160727905672785217843847519143036184791832991371903734491757473180633782321700215094452074737467545357348242669113833957053104738334715757538764296648429468082268627291897139504283384819886642518174551793612111364639666838211035450887857979669977802022974711771052440392851137779565394694055767100262634223453997076866085763287339659701201006097536917826844957496953467864108648914065910040922272152376872017832348926619528444729211612963926195117111215397128913718285247298176591845802357720909799137187145623874578567714739024162876466358332362553584555085407840363594300521247304458028086655750343912464086515100044032411085913038103559320623428781997019964844818993549345215880912597293242239443172197935307602605807327366294318874941153923748212305249234945527392530106554990081785291677521345303750297990087442523061298827299902431975416836020202847138011860316556461735637220168848471412096975866765497797116953874279818408869521448430106304826287220567431337036735262646237611845991243902405470316300746421784622409045384953992736227185298772440541490297796201780640132847452716298047446418295887072889250419728193160957460358664964622779075516882692443137589304934409796021600209883067650952419871895573592934530169854340263676373968238034517991451518960569442225721001331858435682009494505256237993455958784373371090399896292863567215512865019493456367219425962891154407897648137521811312140417910597231521726255879904637328246524519965112494225418520019638086216368487893966717217246736849046417849564066252209401066537947790329312637399248461039001313047232013495036863408831104089400635838266743561585555684985500733447933353387103504628157869418583642448034895313323622270824751320550982294638804381877230957079818230195048564097005260594150788402730407235959732940860220877775918245829989428030865036106280620013294692676776437289778129031961930343005758079082860193961738487733409985435441299181209407160854862192979462604473553838418141269886587421724112352354638349829044300487173206461466767537886363548756376524476511599617468525559041025790529532851998878085220099615591809339537818221826975242343998634309427031445096380510113833413074502224605924803572235745122201559080879878041183931785795419654062845274736726355779245301855125053240175968486059219003641710452625182829592277342520507353043223475440165747702064880375278268131287552751035053729507669427832053851501974835928906072911850970851799989026537311746009382510589768445398626954518764992012840926400496619804440277731359488722505494550155286344626116249267034394109699727311903866032117718325660014671762786858456364680892931280137828520930040760844114295456953548821468361485437618999478202276464282923957719869631770610604839971975161570805614817803606302062116975195834974621618425711243126518328546508049954975766984393946952629176867311569806371835518934487414162982740918348104492076475867869835898483288274708876517030881957954454019191695448051643857958642016785303211574313682205460143288820519528910277875499346763941828734282783869933193782523566445736291963389538434663801361462079779517576397330998059774220766064402737532495252291945651004044692569255388613158132077893616108789826164968572163683443008307628001848670640833124680175666704122478216243222658606102405908648301742692675525470477419814560719869302589557623569231844361602970276549975659193070219495246784690860728509077189028999922366982610565042215466988366697762871416493432102880306192150707088388710769692440723843190324724237798158125746267462541634188174550963709250068680614451571703975560035775898931154223544103827227377043887216001310110664339325255174900346980961426594713857636115885612589258918035152314461492521795255979722401186218580347822082740575076389914734129864159165227080397293665226126246012859501206240911920005388398493096563144931229598577432352579698922463706656887438966047299214904343336342143740575234105139313637997463679144688751959883447759495020304540229945792331659988396790537935327886518696385402352220840364953449104685642773330057895243705423191468431120382106637762913622970264025601297551092308794965558719439616436567366577487692193064526577034641829694629077381636522545946259573657886739782357637514216269169093940482743861234018316827388890210089660530149318443235023442884881592953386472043923062825339286029338124833259902855759984287791746999481136208405154671701111527225625393601460535515315330044291864867048284919172661824489042594841164078699409010989630057326942028058513236565745599207615869703822826712755292409713493690776010349329266940713963567798433012392000650745970893677601166280831931025687575886524807790037685063299977631619215418698826974950670863229642108204960799829949639982045869190544566561663960016452913644049027919232567131042538427206906973800328819621346906781282022717565345474085886807533981670912342257745841912643058963515162435571856320242808309609728142768379576683367468143064320604935665397488419076606588659524563362351037270710949865283461337851066493408733086771780206294385349378010710160123861443808428019494188487367595489429727996752440722109211620092301625143542197593869918915303729028871547413490562239673201883556271907452604414984740779746441577989967920776211359995426876341250953249660333985435484762774333667314717471699098540742199617663449246533834387552641286573461617184143089271725198603726469173256408902087122099410950797420729704750025109626889114443872164571996675644855781810982781766282676501367162192628978494315705911087157625971403952523487231147970781882208270140786255327289303873165862642485358346487434484141483481555417522781713521912331824454700091571413235733625120380223882119695786039594222188055678481200050619494104736423094143338060876979771282279267976407785688780529677955450123617046772307068456727173749026449160601691334030150228853168397318345752548951984672198205824828944818828443113072349087472505519084743098635923006038867546644702240666634167893743691208727065076727836652341932356049557693958380469785532926120592562828041275085224726930094064703357727977964932701343164916444887001717099319837980502176879919475190828461253101405318944246566709363767051805273725344061161453124629970403087391529315309364508643731154876180815009151993572752566421448339218118635477713270516580030960317461993374125300766625262028803544985549193213513892174764334718745998052452113655859924624674662734306486265977224030527727934494654445757821018317208256571122044236902937014099173452049337509639904368747069526487146134771006697234603094903190944387975343144617762659573396180183779131822878602816478786167321774466560068335502290493080502548871161082585063681778334043721626860416170532743423116163572696289418042829934775581685944882005833370327054217929496844861940154967081050511337790309029293837582184072220724043465592637814590921290977299948068991965022666772697676258311711421949069897202569255462251479236432592590368717685698914528933574005701936478813476046224127162851113806148396083795049382852078192230437793643452749262296234765296121927860236667135349468820004136954933423429042422484636047828997574347090811473865865486849348728796358152091650130909508663115475482336352481840587189958420186696202731970216916918366340120328596225915155456490916547572358864054840045733817739681862113558448236051182191802356850089083854221514658654092071282799470368072456049454692554882328683330254148973172872847346728749802966007805811738367443207736580431536974253937409718794309459196554457473009237254114606027068751916141852022477147585032186459332243583759252387951473247165156616224899235050350354582075640623173657452396823929684528993776693119974213390778227804530818289887668504884300424100617020807513240788227753381880074504531456201023736625877487587224880218370680910183865911858879464782714870827495607350572948091505211850945577246117665769278577318523976307734890279383353170805184421075583467822386039849112625397198946863479731880901058763603480353169920770770181025319981447840053438075849837076977451076536015177556466377831050926147660601399958876604179419886869434920761937571013356168169340154626012715786918349445317937196883304161524094419077746702377304246278894133998321510231016191447641733772181943192397693296260471649246184642637898638175361420358962443053636033189023256620365202431803422931894558234548864672432010738313375220908544202391036942040362136319172055357452062543645143613508971143065884522822584799060532506221364999658492858263198918644379662823007367442483681031487238351747944296746046977759909582017107800290102209297916590272603539818708778886776674366576501635688035714175033661305718517402716882301028096563949971565209273745713520615239393374953238743810008167447795233810383929052587639041081194514566483309151875860244901757595938602455816040913815742807367174518150582324909139729423486418758324221783699996391234012940568945830837017562656003464356246697666996223333056386286886604870771283716905505772305676009432422744178408235908055301615191986051663561673764378390038419865727265080917343001144491405385487141952609594596601461891191927639905854696780444277574693462006099066711764256867107622622701852497964073125490932833149938204590849897718903446804288044767449314840689610006752526515619539521981026894765459833237841919417178594620884052187330463220080192004425351532368838215218219557261440317344231870289935136455992326528632425494068732370901449635711172714837492364832213936190173554360747295527389721350532069905539360922337329363075726713003737237287756464834530717735034557388096057313642967974652479780837024564494274404666659947131808460242022588803967156998725047483117675607743220370147795042588811125367216521052859079866170995751870716054429721261247516458253230400641907937187885650958182680208095064518585630516095090918065953925939558113317656299649699398599834874829820134816039466316350676231483973550905011466384630990950667976518229177936398238029409773328362313686329839393098800798309108541104578461785988523406056611269322965077140997215145940998728013644037599803980359939870088058018529658369566936164093192540948997665306229270690210037349633933353809474785958686198571826942519350822253940830496736132598151281638890066284682438342159662181758202703481789762934412779878669508371508986973203709996204033733551622865229357417788625092103602334761431102607408539754134384281077744775228994196136788251579416957882055562618511414370928004821882982602342189002687373726533990400012629694138373942052398283718642165318030108804217079878562708933668446443495023969060311808917361645613446332117043384238767581236260130390864266826664378862088886518977036118391045761307960685587820399147384463758009413243850773247385638039918762470427660958836309442025280717426047844361512736562924189646569619187238177357445510150149027930712283132631731843589327470039885710918711791474413135207246988310357045494947290928723692624114530783751216696872499460203178267284460169408180518453999969242695435270836008931184244661631142150323203261532857961427072276113941791372858242318325333634866657802049375728625566987344916289808545316351524745290575742825982093600392087784132806853478465179903050645444352611415228261567882859365184867383700966570368162919911669561265656759747308091293991601417925553207806306006265405334056518878203826585696867658281699186413073038032128089148319480201931010968440407983616421543098246784019503696800785649105748502593282312684302948800052010497514969314257679850716060092698072624661858044201348588260299967167103549692310646284765758681117377544158134775208763699173755948997687295582467506697460521247838672000644490125483554983460359959358156146983519161900737299594421033652961296167553149976090091127530594748686534314162772100706352205483610178863567003107417743943456141284948015005163713020195311173753436152546313571973559403628853166555080087410340914666313676300435650400876066822288345908952042832286803162481075336421737392372708310949593426884635867501625252823807187720780004299691046381667786686995507293180626089885291684194151313400104286959685115570606910062496839581382144377960830299102241439133624180087576798863471447751315904112609238413336547276997530547321112335185036619566377918601626927481071153617772085534031677429606559216134053506655892197030805498518236515485105133575179645992148631556944378890979460836782209798202132268389523801917726964851779359466282121264394088409217768337217788217788507077273309267674645322911214597221173713448458277125605071550209599785318629063837764183963377544475855914035231807771373191486666544556731689808093283801694414815696007204655395718279662981192333530530411807511037652277629901921588230073344107914227289625995228587474660322919864692944392124244158873402462764389734468405000416610897253324385676225125612624185870980436961683559041543938340843349758791509655252090126031790244999751962311277730460986193183847343290857105687686531882187425553790718963308543726962572985628905955060877142570810019808178311273368086465299808885920674989403105268294926195874198137513595232999188004207867027302283154510187670217980412663435459906468594615417043162940742346982386096582798987505189458666740884573425675487127965102451926077933079295461732425631515713925332004210445417047544245861261154685127671539528950914264460864310435692174169835775288378739920569704113801267817698420621519109818434219729512782885636079559040646410300799776359401565042359581324055282327756325390378056333214764350656334557618681230175859139999525762455101829315831617473620961760649721346824056012497777739040261752149885434706499522266909233904301590809513996340044003593062507405282669955731656196214155229617080050320356540388527179319463872367546662554167207491274180029257793815596500015930263557355533083105759038654599432496884888948610843021715501312265309282290206846672816443167309728158307278053732974824593945865918238263855531031598686581551387372931738934452918336641561286230238654594457213461586335186034135134712262016159969741472911961136606663761278593241716947538086068151530568346929975263862647334694277416959656467061686631639577978757089666214292568835681381316146545642925998700017751446517748415771690107301442173115650994803412118552867954342532666261783302616298435301415817534379964838649029626088673777104363233971507797887151353351950317285745011481848661010280399009974746380170226496837501740574522134870927394996197578662865967953754396141522489950999284961515863111632274345501407387762679076316663141918815466148225055101719001767544953867699281489430634572659958742286057840432887255616046760205581582407167310708495201905671982982351089739211968985138100162687929064295215993222575597152604327280137832644375517709633248962761698278836698815108699105169890932698900410035777519463436203393943979668749249349665460722435661477313700787594979289769622128527141399320936883733982343624479143947504727349175778382905349879843287228304984593195803596597758320062375208426533803291362855753542631557858454938866586731617301854638734371766698619490565438492046404529148751473336578114702484152479239631097179875037654860610106512069327413919026109073175734344019895545295081814862657823441542048897764918145224678613150398359752343080777646913351650826956757523851565724419917372002500193908438415327669495797455805261167960713017674176349347630772220563783502620393757072362735899006363834500131338089065334070280044534541419090858634221803189115993329589639755146107095575128932754005348990775849489318501418313958835808086510003886048297552143118715552496323771058772747868538142356494048689269333484600549608650502761892482968047621296629737961122754792643564573527625508905604269467277204696217180988149569883702239524983862326035956315806436336286406464396060630491898528403327726034077685188943512199189360081808727124007163473619945436643039550886902606180412447458229656302236772586270558587900897332388869548406345167427151953447546636215511881845061830667144720648900678575645950501073973343541941850661972284517348299772892783384499757963266291295128373362096071287622456938828360509555895593686717630480395705898499386384663266823185799840519312955641578045085850657289914763980349337630016442059401454296930504606988257277158203278413697557481012544600403847424348739215032314525704226469592747702688366200033921875692815381150732059999366122232481542598977731565280803910819485990965208203813983205953572988051183206485495594982064702078347414807196535884177852641810023402736490793693957707186761620322292556666435805145975711941123800648557523275419325637610274777752867160585148291648203496609012595684229609255301017496105739219604756189743975460367712268590064360101834274593295538501317661343557356389548863787586662329299911956532460949355209425143119546369719072142127318758044726777149621218733956487825641764140714623334022322770095414119372531209222886162065841301339248199103932318426690322127156125026083204984815133033869749721329247048729230757299693462963509950508150286815648805321679167750247806458200770866370535499910122470977213783444092351910790284003991648716777523815402929171637050574560311662308895736706758022900331035666875577451095224859563203733384681012393640395526314710136521010126542621890889974506203499860911458812286910379504817077878671313671504177644254789370272632175312271453431033573862120151110674443556877882525208905028262856668934203843827454989877122633702936717601482635866507695158349883532065083528596718940240864134589528535885517346764212291507129736182098895934852862774145546129869205561134344297984405368700546179666304869491344280633742655403209958956247016270377993279581165487830122098492164027061132883362261864242440468192132018234223517125795372517896575823857673622296462648211725773839240777887240281161263876361466130485503112048389898811693019320449027729425593749322281269682155147361818376029476412005000957291903846604270435482733387286414878442236341472273952331648669808028536526182563486296184993853219435058131886341682587352439557787970352918520168943476584757388613972582064799084918205359920774306725089651981027768017957758413802007343124383488865427656308085445827399113290167773535101208545390563059733733486970382709836135990482643568180374260652632804884745075848534625219850294867336027644063899664943752966397047330420968406568220394208446157052170058961619183993351389825429930746392517750935747491471541538112943970529586553047944476928943081342917287216707762378314271366351167202824995359675118970743382378372701656383455389446560853718831516852506598567956352712694847081648279355176848351482715782293843116904962191061934679775724093178361144207270206950293928680546790851174955411212689849840271918041391063800581503918381931815023486803617474234178138722622180103903151943294205402290207936767137867403068210466260983690979067916857382401140079135859004097743397540794698461061239622641736420404593963628497227562556601704564867141369342754303211169739357723359373894922872585130135822212606559828058749250971166434330611998896698344575063216775804781963269222036758818438680753978040290996875202114423508485178156566811217717665586735813337529360368533762697167908543538491191256199197522900886122361322718356058418789712052282863888484743644975864249580242455113348375641564287037310481819535661044073933043643763010826730830586129618168079259551940429695243446429881203107671247369912057573141844154947369388347026413158617359501103783433454199700594705921805059029419876361430807658333410879515704495756491815666231849146933674871912287858552565056533271414595406335388472528538255311867529691103943751702647333318009218232664305520229351287420972991049189482950306259413916447992972754213493919539418348392432178539251113291918599746188449307289084137048080122243679240105899777059139751284502222895434260377772098308879439255074412194172478349514980152221448964865390753662161925468444168481132855452889248180778885282514154744812998819061795601750587289303529897559205456342650663655075188700710151736159860497219724382916997430424791553214983417376348127371149554802197924064559422545019768741509006610250522434461677702977602368218320975919950426980621896227633148505602278420609736652762158240824962451084113366646941184363470292180368122551366520821529189755466453151890128838854927486390865764983653782566694106211590985372809088176505100600331329804002860652731592820152617647367449267455516151551926904603490922025258841392447537343907026719427785814532976466488990045257776931423831722949717329723307621992038790871175162037782715798379184389164081647100347911003324674909559901088800180540399953731720499266873338753941015214963663487330158996552338840338761777136490345871012235109378703611290442817507219667382201561354417458762847263623449761142107933511269994734067248009705976728359719411135162423148209541980780727713170080970452889020037429495757124125050190300228338187081596537737679896438120569288770500666405373474241864181018243645582265963141541271073550698733925820540804094925712582708829600962728750217327542706092590560009667561588907385788052434656559326520036213225493606204506695580543749906050815936202916542007170808888312630336930038389703957306219062456123577272095236197132529497112266014382062312636422315398645536245856200445494128138974191793040311169455254777094282577505641772348410841516465129256186753932083741378722101705088847525786187155129354666716519080008429107201194118966404870756343014301218835023723301214730026032519527017473255950560762196083908678770971825370805872974091734224238439290750399306745035396150994301876681419658819161239044665203660745202315804140711199276097396165494316767808791015244632157022677343611583082926710911522291464653482821055631372323659730393295132196723381787125399219130688525928209448860565691043895666000242366441400891206113756189100026057434275119543821600949346910862012619082456575809709798777551627468849720370590384186039021536778448520661221727175480895095401569453834159158071774593038463836480293419089072462974361621538748932967980508793998617311800216805947852456878147786226253968692621859331478632935319792393245644199961544535264274779161613700055215488020932091402033812042559359790204102850570361311311325198573405705318349481208360191897052723243637316344592971390972138942908188900905889903051060136666812508425062681466809708099467233704446410520002206658637031611786195938117168784065507502574706747665107780851108321298016803601052945863221343756207614300741507962681301422437364942843733953897326260899443371610107086816433361955675269670787283544717564812494348369444762643665182315963873103217366048981749485569333973323833450627064696090123887489632441908060635532900455843661276571938969701292799433942389531214653877810182932263823495505057539649950741568583277544193863568311186822845602330329166812790744211899679311814862483433475253237114036890227001670588836500501233885463403443584710801951766254022120334627505807407675266655188367011726111497224834804707501878890240138195201467552685378916648154620446709161990097173807670030398707986146639572002670720298491276454942258703424194502433613903492284237244772184719850939619930281849801754565405802787732858440466600285551636104975646628432031734468544952680887179135988493949845886443072679074809451745441252326992834157549540707727646187908644599994217457177805673876814132578917748423319263421407635175962875203484800808894108142621316179076545339430345155713462557147291672320113153541107567127103210292493501977575079417383933626288177400492679245387338350444133910329185979723888135662074358068019727869480117579224305552643097276846091589047804638744190870663138396428599891566799971270371926085440439573900449033986309287291402863910530159848428715560607128547947321117424453220812846365018220150833403466606980281795674632589483201922475174347186227206771962488573309968423342887054669887292187368975751368628640237506367159681852448508929845477588672042145232018022700962630619926875208787002522921068514060416298552005187958772537199592077276987168749940677354657024123525889341615081716668972859736576375203864651406097282569582786039626171169244155834544160239222202714363628804403504409260106227412697377670505407561103950867842679689722098738756849535564972561879067373784643294739324767613714781602471840692946614453199780777687684191639183465875328965973832249923380892709987578802313940025890232451141627422608787560639676874672670159667203126151047477431532721500902788188879252089577905915951195934068094321130586062056417084004431738701600028541029457745875261434721523158370129185150379048392480117881864301440636730431400599635209054338298317455969348308880852731835814231568533795569173398152371953369208169861288890842830748292890118484791279827772555302938725344747995627874300468866844479503812050862410930362318636081442771176732796226405877785308853910075793726900142293248313781177760103902971101323282367872225954209519514986797536448558690408845067697347162537787526356264866773135726221669286956664718117411692533787624818871190757825191770223934253153807650926055007335827710017389183645340776070991043306088120700686024774746154890923237693084131254115888814697797435150578148157808028979320545045596688937563693634092467848431192246755491296771579756407852214605854445848663993715019712582570517244766738304743897173793941878270473795432971275154176245168852080115651394328861731105691557444453936936520049981577608364485994778597693629179595563670214345324320701326363473871381812707023531146439661272077892213532863223792919726655727582339819994418355602979288313798405322328178841190918691504745760200176815011134513436548705438287275665071558521884216035804948623048570349988568939498914865175527255825625094927984209806649636462041367876025052771707517581385167576669015853426409075223269556250529921380233390880390093707838103631951611611990175065135265898328299559632678419530881562104002234595227912142931431600680193614185361222075741266537985185777703015877476346292446178879404702561915828981510278763041452926735096028086870871537081873589881334770884319785492643953993065726271489122764597389613094589782321718905073626152474803130432962453568280586034136636004410854124117693038053012828420537805603696386137603966572615569618295795959660137979322984727940792875174968231574617869962662028438615492917342716873916888558967450431238005975513045594747385286174930907618149418269750996265749226362785469630245703872240296199043780689605477773273404757861594469268957328385910625055519029567695259349022543383429712937955896104192642803229305334721075111600637867992009783901818280628633054000929378473479098923247379249883465592651666985436061032224686769848835345757381498005837883203199341465696429871069573595468323645365995617970203635741085197776360807154482339623763947794856111729279676873990732101819138574027282403110365380679337811429252375228118860720741203531746394532623236499798636394896157434020981003269678590921618065824653177487011585103645751648261224183362349565238101914859378345644624792966624152508421639932979470017830524798656316746532995224882573897038908102747920697199136806240428291213783183474218948683117640086848473931158089319172556974711724251479690145067966272941193548158951781155319894774881389001825362722846490719676640580592945460692294845127354871028656064979682360669055302739028223082210577428054978392678359391806917898797806731884405200411768036761000732541912651458776065983614926504700658445277915568845228464546809057666303648664437618450760227422074873166892366368815361931657597632537804715770607572822464807997490849768068098854058784698988875461169182311732241550419210906101065176016878860519375121716315208735611181455691207999878445051218649377437437954985614018951017254977800253891446993978408515892217690408287430470459997071356054531596433154290498193815962553690180862249390944601940458927761586514363437015007878741385846962870873664544494805537305477884055733535099420007053535710515979908491108031394474860722892242492808600787098638436754075214116899872010679490856113006230036166295977709371045364806729197940412956733165190266739525465106127219995136810643367355031433734653034537696675295609886313488150128169884407951531732838555908141350507857568346552462602757704936201681477348894589078633179441402129948029030339149466195078445540116236428332227833397547188526592418929249836261990296616174466080818312799326620568481901119969128357190959694871091587160745355363571075474471174212134729418638123243137541598995227595474343632725462965026405775857442707793812946540567259345982510161576927514841521280014172590806991557108341909482702994368384916186379305891435699651430760172381244752900349668976924036280387482316710086399477236092654172780769500017234382857461941416371980417226965274223608549188110306334439169581030346247417771125034040549620566061746830834683359399963654356521923752813418593045929167496059061361999602506783728094472972938381793739089500141603980326343350731632835107491610617892093502702475816367625345865488626662859813383317658002890886219579164944622920208492502538583656572360900273552953261048713620760091047827806702396675830308339015893403382533289491726957148254674982829092179192659122820647530439237535344246121276085784915055322376580818777888360599621427040638452555833791167152289219160496019965073235172209455022872159463340845027215933200577620853142191116078804029292519395711572844817281002923950903061809240797990621610830892191024768360035548416231545121499586046441787179755941779880355601102994123357464740312529927888300102833371218701313411149091425422380745557662575756096026070397889593698795929768688583383316363691180813863236904115417380961181825138300386219896465174501306637423303322329984139273415457993205849459641905763818500617331646086236901463134002847690815829526965751886734228605501152519582714287395283975823046850063186826790312977764088853157765695680932703422356788876356947426025366208077147554388957428810862662560070322430052400700136558029321454409491475461418290513479491709418013923788515468443287103942284928214182270882972508343144549255616326601940806360016872056877194631260307931028205879230953767184017371265742393350485558120789140753166609020132524491688973613394627272901292188744933075341751081783463218852300822303909906910706713498512903255664611893497020770756922068284697018042416362006895609848512544435249160365088308920835296445024163081519731863030069449986631114814128586265530816394125695922812758312310925873093350064095658388361252062839664195903941225653335576439192225390961224414199559218397434712419735856589120243219189655773835390903273749486805032233485513585974753512303632197868972037880721674646624793168521382455257445762214078267428931156922415100589827918091355852200261566049424950912761374459094601850061936239311909104786574553499414851074748966989582673924336867224457342738949030336419195525128995451141698361101512947148767364980049203871062378941188884630820813871738594766023774522297595329508934973573610674908143667965403543646487948231970752901969815210978234741458377634404808204958997928422699587212737397374576807998978483735892817083004578189641124490293804422743724408022582439329486727406998252715426150266883628490988475390360540967363297639535331734534457678997195037884995707906434705928259424495080125633392365988268924606450429024873088382487341483064899296065697975777206677114285458176218273225482101896059415187881479253845334636234090303047199160217222139431531832689795146628403736875103205321748263224468271508432173266616628892629276901464770719532216096774174319836054142632086352786156534501462261745335352949446494592026033457734861705269276638451651385976247450244102143437291188003191951098098200641182777639434725175684716400376879224891048958814804818224094501395743803748172847330293690047454243170385620029539398006814584635782196971795875779628091439768036336038139500916441213318993398259197256702117813952458917625533023616581160634004418838495804272722331355000021996146581475516763858067383229631936628386117871940612757111800718206483887958688513876832886011694208125678366534898379999948881827861335728224373692448875616395202551795827921189567724033260535210318106230451436524926494198575559917459216782742982010670890210525888803721326196757575848741090280510753911607159727586296981869081905347975129504879408581658971906433513220141413757232962601675957214994944407800582341721729093303294286880205146289206666953695551955301713273063452275341425218941057724462631310395487097589533892933942032336144475374682203363405901002505305970286394157642664904457160862097909924478980858396531410842741376587119603198952880656942161388289407538217242888737051346596894004515896060138172717510369207352234442146442243791108586436895977379311057567325903795739326889513946100488586946698289293000889174318839118659960045842485052031107749331589266328015146402924123084280385122373904609549841004533077724988235339715142470335276611803101107949392536019134723641242702054900874625044269141654634017718734341486137026678486831239425364100034272457785947215650438264080784405113502595423727787889969839685267594521854216817126968259101938459485808257968505535530399182700690688769696889841975268392177123226269329103056980486336284667129824010487534847934601049017144307197377149047219631145977048286410255210479131912508093095628090502186036695495412003565532635243597817447792249234859516484388966032688457330868603006234317516181909958549995089003696780755422153793060290442153431074384344503649602581510948227291706805026427737540590162336901490816473681372175366288022051549328937986335470057824139823971355783718276628824693844930547467988809591988244543166528572569805335799178805353151757628818481014236252472579044773226295781793013494047572776141379779094450171263947314736464135176707159448635739436532279687572504863903249984056516938629972503176494429711419211290849019056000356575495045062503344782032560344127057433735913760265723596659599798950086949317800950064919497977456829307394536859818518245282430760776401544529129236495114074677867891017807377643093069179955152223107336884017298216503846433702548390473432614268618693953981148491164237503879950603941406150815486724928422004734612054090197436173325920862336832113035603683790161090779971758643842423248720122655270364822780648319196369730791813601718385227216460898510999013337138437275710426710793449939809668231928072196878665333622626225197341630337805382945782382994503420542958092822857925845223089391513695937529112551967711193591754338841414704702410800745714572039059358894038101685634029637142451978451877834128035955977003096810833330809472266780430867413317561796213374759215702097077397710746504165523563627978717004038102176773367724987001466900853515124580084581949720190204284107143018773118191660690157819262603802099557093987199227518874478690514254685198667848746227683276902000072920111638081115135257537080712944751992081000771376070779035065880468373790417914495755332547738883468488956786866752994644884688464377505525903350294304587300246028653035089437673731040509251426762170616363038225746615292860706073019556440493844012833962749701252204036148487907926348179056728625813960972045595132613992255708597262609100363207884834688925364524301756056928910117037698196603097951733810678617946648840120664069274778704848248773821952255533712416160762983803314048380606764723566493044863588579931584622981605048337833075949090370557028755602479473947938126486284362051200662887860132412473391526304422395707446189982028546240042929311144397162752711525056357565260117987922453368126358312267013811776092168727056951503672234630847007230193247073631161390577651708470630547555511974019176722824336893572566011917629223305025532676289999836826546893371301931201228239705640668573902942984141759661836360391060236745249418055237342764177757595563856582385506835441314097985320834773050105961909851459282302474507655052366027224342852592495711079038308392458403104942177537979660345428371456347835905168789723631405616741567030434886958593679944148307412837781600088156722003833426135456856458252560222915022869567812601894029864017674265958647168598738433192175279305124822986382564011131645924951236234795564614685424656828745276760825762083122934923541144192177468789908134832095974998437700274932624346211700187636621310872727311512286956945729422826850099022953103740412303467962542670110909590981085199634136663705098981098841509351359555550977291685205899471467536504019832454620807730010234520426863089323723455833777558079895117955610729221175592755373972329199923766870235405197587873018674264065868878838700129930684718837433527116335423265041598265970552154730615682608025692748101504885282099578628537414353444328163146835445142717504372568316437168795160067673724703638454421432268688417880119250368880419172439704696835110826826159673847099230976555766883992780063472242097633958512197122476551075033037598621266489795110892900973251196689923351088191608557772679562512630360603677060347134471677107325194940764499281259659903583740551461889555860951655675718284967346271466085603977443465700017517755263378472272545661395885960220054641500936299539982932616629901342253143016518917797896843326162666905004425617742376907882876160696971591503539125247688052419745626000173002374222491228906878901247014184604543803019466773172948517843623996635258565091277728782825571455761532779565710466708768635819567409081465379576927185934615964489176090719744957843155929591222907413983784164019340833691581322267207139811283286991924420772695483107615610795348865120615162517853147030345805362226304693376959369418220337585605425077310503509413114359822575300191047526936459007416026568274969440915798014996870395054452931361540244792563632882917705925736980095917154419842988382877181807099946764561968681745216419821622935128305264278425846906965765166073347380760081960530900554636813448216927559349657696351925717625149318863029899787784904234979570070997396177466111557068160079988459088820792362680362064831272154786169104638818238347292685873303166733675617031503837294311057562703906482698895997389737974180467672693192925383810761500895330686665056566342984451706866674450549228548888080373963049915204672943306834532487398008912323909502089217371868721524815885224348746073982974467225518569691843019647951047110329687844334288111770111661358138847190049042115879589342440818185469639886575230267972408999722610148444535951989617663896788714754224877054716992536361012851180999753162943691179149900530205079808743768904550159286012975749400960200332540832160111495518761054497859823354662552116038447337712979335600014629292426033991599443345118035892615061042498647408029010888668836003786055155096844481250494871064212923600539621575761609806041954913758809852418240246150073412295255099142668966844928309148270416108606814128517770917420709045772701882070565185961120819028931454271240229165228522063198987256016999665220772515736757451702006039090424415553808572114886144132763867649020300091576173175437632449901709550708493785771735804770076925245025795302811574523153243734432546141309881568545781530846596798735243168740072924146486745950332893154577876370164257079026789468220631105922610209854385517625116810798877061353197514503380144728460446289651973759359403629010500184568502909956771438915647829490945373237198932147979016676791176425571126069910534512566826212524808954530370838299686703946413308099844806244426844746377492477583182055333092592063172980237561753980727291803010594335697655871530391644342376885844194664308286532668678209448012839954524586168713954004546955475608704124065410448570654225806198403957247091197238991591114439377653991229758047188150715386665948078421835977918176142949597762747775772676902703143632614196585477238539551412136652845141926759717385769742710517964474567281295342258039340751866284536820313706933952630641591722544318126348986342961393844917073231430732142674418286343739116391158286677264859296354737879952517039216634692870022596177801168945561676159759186121096716726605805015496679454124687420291388123421661764021981525476240976100233846438524028289105287055575088470857672738440307935229405627673204535504284677284168172138711105381596806305191226714046747558951496244909977372924243566568778989162279773195003234938389226603329458059411902280965069063248387184192289329424238336687259546303791457906501837122672648289932027053333768821559924531119756391024183561551017970305728338454784372158979791157876572386891600969412881050531782890841968080987930245253138084880760629859440278715845594847606453983636899762292658609295796933527514239222702103433886163537970487541603471336971486193976996033021341107321014718568448009100967754950079533446298268070715335187628903761652921376190342319082793206588081555334782922198200540531997402841274520136354058816561230787576451780118330718258340361804501065581966284259526437628341272982219599523898080896081355184950112770639808475104711681198875668863585808965844664938900362747265557893972459232066673978417800969401787463259232919719981205276152056221853974032417787980083322028352163053161402447605458737930270758209570054345987732937313992287616996449554057565192163306407508387691995543358535383854161114339591026437107453105556029965160221079450125852626943315591680069208626029061157331996595231703821434926122549851019598186177284020132197020869710723792154756037610929820181302514360784267803288001144059178641207517050372375612932584128525832725482283367687731000117790840445146681217890698390712332669519344112465102843195495120459993743461231550255114186941150484511653807538570437451857234517881041502370120228145829513200711590447767404992263275886561264450467408174570313113838103561371584309450070398965124244301261399468065877574220546424880467896030711251575010229816689889002770939949065832845531741375804392209131199994406379772188036927372761964728482450514611602240601125197819509799044272949238597955883219805912705772643306747231974192034575832948607515028435272519398518432637612533850054329803572080984671561088388021081040218453503893165748302114741075007192501642890790527461838927825622114888479368604145175984484508487571889358991680037988541007712171174009014852789995959619317477678618440832188898310796544234784227794104760114639920151163947239364129943327687313813849885137086394357797844190003317277906894492526075626196221422013403017528863135722532410698583548055739838313994663038661273399732996636568475406936501886146451243357328928329882200069788081317690930510321596767867687905042288579958330711903014888925352484863899004423800412045983108313189307921547352260740476785115466117271498875221420742109649721285493188419207689298278279906345366476615168576929358890395657155373273230791726091847291552800208252759830515403813940136858408624361933719577492681343936544142740750930724051739601861657271382081452824480869174368611997761775392156789432635741498025947643744746170793594650062467931608732774944573748049441852423934163203662055870806448870966585036919936961173022190586266281718170665253827325633102309630724725925502965825782751064751655414823685058674848288046340647700458974112398440312351328347558221220208333061963422446880058850872960727193899046639714615832212918483071004179718925358728556093685254591624559673484389778648438712119540843324844464281921765051819526512635537452598761542042209614161857551961580895057877901709255512787894252601518845575447111600281057006583595860444864346555473513960538295204149385969169278613224330826867898686171440007685025017840722897660235383263618098440912172601889875539921698408975538839618423535736365692161695409577123933561701989511881975034849875463060831142610229896514211250522355614986415484973478775847128186566301610364466834850952261206653995167972319419694597554030444760058944422565230031806068130942076180418253658280835645680271338036508069226972429262878645948725545289791604166537982269827103175506966963720589766297526162728773875780909231710620965022226308226816473023227758611996734122934218348346530126132035321517109114395465053594733690099524727019934312987977885071432671106364632502918527823731448888890415584378761901853659117906691212327070880099223141067337569727867698493269991374498946815316579028808263735023126115781802077430656159835168877134463702472470146736023660469356910716114547817580690158703638119362067246289663972616539719088303973967354598584326963315992971745478298947335676991219493567851097085217952006533635924335801966462780162892051137777970940767782656058530240774396026483649632237331436353194824537144368766939630163759566099889923482363448921313116228009989606078405679564947471066537602498796143020783793722113618515409006800655776725982658861656309538165711766616183829802159125796738000043032351063565200976879768138521310482946246013163831136885366514889901224688207460321025636114866953573595986844959307804430852741095645460911242558098664281164021801451265954531832784333974679364558797621386593115406207350152029496889938214471586662447861855651598492331579599430326596037807188869376507419288624859420889102749177278614289972555461737059410208730838920000443435003760099987816430034441931480415864591881053712220504904610987189530359992498142243873378287632977565775998684131365670707407121068738971145198470880671683888768824852849974860855942756329026534220136244116455936101595609894166811309152821184639591620595992492150424547141017151498936751593533823927800867896857958542692175151903425732430499318258308581887038127075286325920485092648835038939470575330142643163354821470580339494178772727670784850841278449977515642596844071476072477369616859279721488061293459838421695320245287486840369097091574457014215997069606006604684592557547837292397746230915805066531263655981778136897651218097599154977239913288124899399794666909076166465463359596369630118731085162120961532115279037225318508622017181172880252590176141946393356891877059687983010065489627103448101929866900675184836629262638446440799069614675572438978782809883338218002408841663722281942300899266727150756497694823284783984992408810862237514996761838434807186565159343470396803013276828889207272056362561553585833667244224848483055578172570563118827311364649774249743198868537889357870767364436724947255143037048401972919024860509306491663969924489309396300384863820116554349198489524430837836677088559596266283225977028534912347382545776038877538779754282615747578317873593769141242600524576677500468793939092666953543982608456608380254016296252392586527263165301866173333406358278785919588397974964525669685900452236546363420911328223238133095791675270580907661280584264427829288774268423075967822629386659381150941829428988832970775231979336332788508044802511348817502515824713163219673691703443534093768191867604700836497292233793023207198651723382477749281050886797371553766958300264278598141863584530634447905543629053962879575400329860884146736532671850657075653327882379140390864545316592306697473008959404677265938736071946056321325778377484111729910278293024364304935109139912017922689481040051890080097314198262466849810434782023575506503789391422516580689611713635006404965722233191350632125816822274604227083016303543334834905375772762804754781200106923043927391161598460625641451662387686322445147831764720107585628613275334645860191485226438303999004402255264621283207937530205093027417096787166720399289047040252753417889653845692660454568809442167055332219290019310695188184275156038532770979234283797496687750475533751328500008546641076698119690157230469123434174082145711092929206096205209807458313965619201196389851626150835520132465686385672005141094022579769366861019365197119833326513041664184994397500819425148235974650947200908903715501200516885177148925165949852635433042129050670955420902684093569663227866282447287975748394306619696360832016068849987383808940741684171824194368845656725462999715405796290452207788618324834377700998009864418673510167271830000731268793122637927646969419768998176499544570596841436486790455335706713191043108936640803569670034714602680432880144143189294169181108621503035923112682077115773196878109263037470398041425135722408623433174427720226678671368089817380768288591856203491130873554000638287964662461985092925042290520102288804986855309537147732054846047158912235486625211055715898444506039019763871058897594412940847196779889760570358817855503795857903883045581237211359006596448027695444215159585964292388495249621013844183207736841169813191954253451445449216348000940925149827359601509198540924137912953170063950099734093460450538412265958464371598288958893180253341214588455757118527334989941797227486406368608648216567038322054672617018830988029856763683034504983565255989898471863386710014656597441191896505879612107753338291741746819694589938511192553501487644429090074980600277757148724861309232876169991229722910445925605521680340580176315917924881104203745545356139704031504577504203618281834440181705049625122624029040334027588319542949361407192082421918355107569968413063778962490732757547146612200698001275610296040786774798036609546757519187829733589149108388447770146956837637058207969215914321401157024206311448719324989352142383739966573887439009139969790360485759204451987969820192558628737185419776150335639613564034197750571461670262414341900429779027120494567417777353211922516431971226375496419397244747051613160861072530617306290800340483291493034038447158789120670847766930161966719905898873100732823996372394600969349410247725791815984393171570689259028795613450027816951792479190061300058228875978041238126506985846186247863688746640880720197377001404793608490895044309218191642380523743714535351387351530683704971426571463422152633536610458255593826448289107306674223833804946139190873164403825615610141907993470776668782904920382228798831441361958187081303468560285188543617955173703714463686517540309095977269538265654616694870366802462114436293487027059801321555451399100627929555813695145166586410957430132100358045814933013191362901520739831278805838269034858414061318758752825915054244815345311131315636100010962543190990357964457352530355930452144397926258488680815040652249193446444042231949724828036696759454140562677896731856675051367572693225179111775801149857497937348072141052466061471625256902849023354797336037500585774248876957974074756981022152509610225609326386713358257077545492675612676477880443188386756633123971383542451303006918923732906286598721196734133712773383873664548321335523488227099434280257939204189223831882965139596727360367148697040389584987228219435298043551222459820645318263748736340697428624615102406596489323002467982495944985250278664556606928600239777435818519981848030445966934179822794323940299817020711249031382927533518390832502401819414003204692016870096579069733419811259712982003423728187792233303951353669119830840343723411666191204110711827994040591905693702783980614865750649535625110614676557398232141881354658011080189059455305670294369269323790770086978158516186349475054559804266229647163517502326324868407200272676508209695046965843322484428463044804479853156251368634750138934945308481028631358222427859047916348926406465317966263018525216337347431194133863824000388182266066053339460472883072044453301114975308273540286974487748176852099649766010120666677111800239507222764416240779942241722480377076493330706711030258216499685717617858641024220125407708680838522631203804888867803748366291062437358243469207168537132903082173011433021713776543236415420869229100902643816195323352462057989241134926963654820005745904410237717757904036137552518776675217882578898726033316077811249176393342443724393671035282967133643135959049354617112871229777397511265820691559191506199341387559795128521419111359051943320960471732243540272315732858175535176905884059590823735718536774803271600121330056194819941879125221499449526067163538708026783033888549831331862643051106960681327604813833546234896190849782523449304369927814356680052680014843180901094285204775257822488033896083278857942845359618018111596342829194007779861080084206786375306193669835143033193806906465677505155938826481086446465463998950693983652299049448716269559268252850090973610407642464476416568190063386492441991232215870381465481084616753100041322431766026680731319113880102163547674457741851062155432302024008030871337496496426236239204297854061494447690586409618873258701979133505844793166636837950879346289925088124768517582858785951470010612186196789073887490905507728819772346314075969486911673774594940174718585984123000374199688534604721142376340786641511965429028969291044961031497748493484742142962536564899887150307539834024852569356580667529466108720364708050255185171596796854595990313628358754008111883891157230221300239846788139660361192042667889230230095445251272564051757930758627336059065941727793082566897503298141205309555263444614027148248790327460338991269463623248840584644318150452970595029663120354581282017537168194131670829519271958100323366649058800489431018525929210867857703557290525362286695385928329501892253786039906819835745381426980267272179052338317989393426438143494697032288588412164127719518818781919536071635562492243072051325187933393984449896059222469260431286515083855165153900768470246883300524901530750703234763332156845726927825653077923641146162173920805393288160626425544045689730436950767763406034552174386428259571703271702573512731211261917864011458564839634508313030826533094778121238050935749494490132707219523429767353042958985601898783775902902839909649501622943815317124648812308579313183440248027182057462770683118056448546350657842083882413411769022095147272647570683178261924746153249357109141870481973376522776177333113518642357141793765927280668212306682993184664381157316028964428096434609691960621949838012090752555195760291768863926982388264060483110826319447407584630111987456181527440883133152741710058945131579333701886379410418143974519440354018726341078168733090889820035912800298170630906962648354851128779818920419030949278780331536276524908212227469618044054961298433405745566290881971707066698767003249786985594290770784244250813111141974979716073039717786303423328992118891641246217509995664647071194782515350333721807025332483322636683216584193422758602278652774831824180973195423487495024864065296274423882870510371712706983224174134409069060163946134657050341672998488726612865791804589062169102111456543186602111126105002039206132656963135706247638232138415113223528080268095409709766294051180911637901011282428353560054426858845404326117790609216059430980771244830240531740585550591603773726729444177624589618028418021873276226091909883798848324055340267690094849584590064584449791635101712214726290394265970639594850122918231939865491705663326875682702568998102558515622732041566538874190889554428929616279187958275201014453380152820654739897141339272508885768684479350537417812589351086234381826585679363685402501407633368317696554098122220306951568304826817471364580944346572413194141937955139529830786987092468861462703967802787769398062213990026452542854898921558990631479760037898476494186470281675703295455915723816250672272574795281085166065215050865860039508893930531107699552342358131128876609484856164235604669572129391458016399073751529225419322245101386190712779043300929762063349144530593100620394790670694927263461985546375240039935163833166176395603283949736354234375902685915947824111612347391696390391099463871939055045873296700123857208679434401724361393292869903160282215909962073269377514138022408667692101935358667033936967016207487172345718853343794575805177797276496820947772581687644888487123429624434041850528096827431988852900683492784761428188736631889787414807944402965986086360724345297576667855768957580036070240523193938443590556248479602286961235955015955600508558856772945720023882671789924266354726030210231735131631231797096020346822857195218857667894317986650129553575244617070031757063304508986537388943952644925579194780282318622613790954435489202467662321175958327163748406382003576107778203434000149829470540486725276366835494114654119252257215587783898422994245936835657169246939157684863601615620907888750939844692450996734494756354843779587037496741434149343315713466316653914301408378691986486482523554004114010975061057303428123884266181960755371092025714180209000537147820517693990890750572104408226771466297523384478985020618126243244937418632632388350894861068148194204057356943067738003384358407585876048009358500632896357328094297788324274040169323183185499515136830706143169774423467828920467848008929556309692436346610942404690219773299114138035858590286071622592635138316163070845357769788426685877819094189913326055162735085422778707452263450500772708063941153793189902075764064840804927158679474991328196871039104437737467149190746242399677936768519495118836210372255667631916869217715375115286394241327538540155890577594589171006038180951137636307859592067140360633681249618687081699903034310771768933661364977015430782357170366483820805769326293915702011129614518789055583733298171227678217931744904599306092411094848259512918177980885485394664058880177423882696629533575150685435198313883554633265451226053614593653047800780683069549628523102321700517559942504026186218070028674201983329682224897148876457195716975116621769768828488822395004646763979499102096961106320699741238716125095946033181135727535081312879523367047927584208366475683518897844171438009549144391120237431681105670642228716159925292446884048142824185269712917119012433311534643117133272503192477708905308725125511390499071742479696319966500527535625627779271920176289844924910514576548876621157634423702945121894019383803649893408944513260069493093281425967670719176979533182230998342578967640791668869861058855910269072580001246126759297817630723197910324731674409268197837525992078842274925941544868387341762570725776794329174226347499387316370960405136322307030299753818953809511037749241908562615572184511574292331728703570620481588051721527562255985973947136039108024793245889148068929542873735094880908224838594977312282672347832760478118218384651607414521654257681223280297126760324713361370805682482854151613067162091790741650309210873970881604457843992937514868267024698035220785828960593046506283363341763073803534787235723899599998857674158053448379418002498502689237560596431735029014139938441401315037401480601834585352545553472120461941075731097068082766599014119231376094032103451518499101967857364706777132025617160798677081687133854712596235661550285430524802787223185401396669144405168220211129882054142916270847139217221922943119276763021485559821053378534899816870661380411671115722731389930465717012890858081828625462617383852845448281365595452918266341449532772758016772254700440249659893162090071558973098095561755671480516805049128704719913459275605165423748059497513851072257022447450974526090830666719214131080175855282041931547912757014362314069203834917740805123226398721207323283836765551093151086489041147459380931007420290685128115638776326303775913679603660643245545598649983810902667763224139610399448744889131530786957632653314963246415166456288989279177722773454336349468742755723825486629510510342438188260232033288188929548876172813631981696721211569396228892496377797493900238622519707368399060748542715910722991528136372011823070598289753468529494155008184494596809818425253139374501822066889016684718912063443605709529854437603854270784988898644724903614398775641508405942830711136959237355690061322959199723293427527954195742804678028906290403611043316801914818896472505673634117782467610060659419755249548922329315290396999464733518600019685966531847573097409380070907248366474827175253396918926885100503413547269043042471848518301245111713793505504118547018898329863133150711761162914193870010862739093903975557672122081591799969619391969971097688749314657618788046487270433377398140975755097526839256403311603820455282910557298988181567799849779291165837788861150927190756697824156859607323805436626293592413868894384418559022140791572253407040837739412175020877368231016382210976202602631495719030945631332288456053339754617627569925479529529768354275752133761925199287112448122745219241063684941255046713654547883232823789776238268059348327158599933635132192059961972232595890436245195051392621965521736954699391260366231617607642456443705864287781239899655985472183498466289118800596999464844292144280995442523354038090927639348976035503424608138996572754982377318715713956250976720137725049666890983998840887518210415590542596940488059311328759871962229859815975551775227980388322045805790401388310380668240092677141964064367488469102715375807976645321719514115915330932866938504404477815133735969195577303217736669543149928160515229758670610142612579758706584195765819613659878017617994024077906779457052102277276831472413498321882837870585220158337988701174891933628586662705982589964178259385356173695229392901751490130529197165593310511367926323631732949214704901970157487412939097060318032568133978393838150161172419071669397079001272008678571989286241739954455338723076354955433954255602325321548439044681398747061029040903661887665521552880242707249291393129930884313823975262302302076916524975187463954945350105676579774535305820194982411314838456522646962438748176302121882671545490073580099936659811442754723539553902352537439142556284693226575755652213552589453904179409269511676470613899882597218092782618840714817386398959421449601380503860693449884028711154174574713975812571024887209518425212754423632504987761032425177950116270528524259804127306460931982912245420777722355520868462180014418582513204615796245944727715539645480603752139518330617491444809104327674033613188382585028460856576589087986235941402641174470462044465713361080731052403866403704567919373919580031186180385653387771930733761206215536667630408507449993438737184398397753307935727021365369056365171578988402369186130162849850362820536876016183502796194021205470738458925390528927312433021177131286753625030334069016028442940836887214977561446518545903536773368318705911531977830898534978877509308115122555920504951837774334175829493367196014210906315969740602051639368080871713675444538118189342016979261988260399323333409955906121761257807837281838003414616456370091367388810518621134551152903835574802511298202114031120423947593267157560435871060648454400556908023412842238136476832564668037706304009085491594903811743439317973644457455187403689731269754264053902887375076272736099834767186489249014672996423952453810884526973073464081981454278988845659685756708292534105188940783771711747945501856237912108742544363684756925126777179481804906624704055932255432518524515790108333412872215375464486846893069157549033649066173685538884094455035426297810599431652417029863591390702805549733031782803184135840317325500859383941769688654341156045370428181056270753284125502444654719144587957470530810288504195648790486035191689528631089772751226986679128925961871629517675064387043758016189569156114847768271748659175134089234700675116302671479975687298946825952892778437279840697102878686229351077671491600702546324007919735964564932373054552777842224306747234547387247307183242344798441042380334293033712405994244613465513492291512109550369956848783017496417209850474685850294227334688715289458276607742245373913304665138623985155251820205934409160390081052347021769251038290414839473608067703914832705201335723475221402450823203479707487101068811840483375491598022872842347395472567794911616000812341181518794787293910156043026978214148112097409589346423632126530679611793407899177010510231649699997726399413692047235150153325020361068031451089741174729311645374209762073451655481709077128294809717078535033633597733330660908022740237037235139723332371618403587505509477735267047539152878535147484655794663110225519087358603145141893007015267882216119342672339449972041806688561090544940509533560299759603430408120794956053344469363581474944182227412224461282324157416885025716547845498479173884855098636474555528718231977856812576941535293234585470479388410390347856995191403024375342924894542969704674217501510159884997431495553788952574467790319598386382981607947901162585018321250719787825973169263259155268272220454281283446833378844898852378779837262002776988230538299133329034723915275518553528679118782522419429035834633314204407865431003595919588906179091895770381089007884153306581249438943955236850658637363537468818615308127021158906043743982721655688364168797842601825728386612814068023244896998686670227574613925238984995934207851665365184449212669636441521006255060994028933567390891907064909228555709371248280558813459340751946142959385305695865362578292259922975363556814471656692521610488073831155080378144526142952535411944627478524275804380081594886448785125112308934898497053731136665482460667991948448205561562267813336227278835763055545604629286462495911248309719633275522845924163781801233670472654996738753899443406278149285516978774437412874680717328303288761393100895696965036925467997000547736267227164376519170536287785594503214297181216512768691590128719480160140190646552759646016840873191663567786166801789737327313283843560541620022581938653635948673047688128255993816860192626681623507053806556564213045327188106885864335873593604998989437628845495824032595819763313042062854921399072370970106647367632274485587523178140604586059414672416181212580686371983244096913714083252410747725918636642385118983365634460664132994885830037871340859303515691142279884299705681423416944984078702589846102735843430578444861515901023118325140250344180338770577360951753045119479624112722379332794402812876838029542395909796085971066598463934587726372312584663087063358366757316961222840574639755500369618306988305393708089831421659603893037403215366085225945549717500887266800066481307179287314342053517536477438351475146313545600837574381584564311539067187159310866075672453122552172494236566854891066880565834079640963092953990158762698022155807059291518608371877055905942163830525315256547577441078518956722807230083541538579883292408703498106521577504732708034841502025053140434807378884704704386397226212495830978371176500406804714965215398894617137207271238516453850703484462320936451579137807344804861394876364934070769942177067215825934987711398281813771100996878474237100465539047855493987561931899043814351125681148691579580959610988252345403232731221701206789013525159931273253691433915469043221689865726409426359798599691340494972864436239976166821394430453672736273776206834025100617536902494078119706803142389331457786472852966029798757615944523057476365967890768927570824352660853310408763492217650883522368754499620257568000687255858069247955962000662416304042929689627017360276576954965609212204265911092400262124590394399547759120705508284798904042605129233634054314814488207320400958596447276704367890432107992026648583095976804365541191897768966760670999260934991278271712380449409041585141685294873992282331845272950199649481199628611552037480100128200639621688373533896612519551234195237893511891608943945287390323599949141956439210674976403177727984650176123115695554066295058984875829257660386132183521669178038294838398764658263794675601079027017526968700874189219775400761825080790524328728191951818251127588709676954284547328928488752282759332825453904734301379443476211535466649187004298938026054417815521157167100263087212929477092009853130893105869575280187208318885939011696724961106006645724975157203218606920303807311938293942688022923230657078138746688285649890257125020903838664136417378984355379615853858143592677931278521802028148078821339812427139401692248616737780091910686853223072709940693902906876003386530842413505734294035051481315118242401225287331580219988724043094843841395467351705442587861842553699597396438904010798270021792281948075781782558770994540839331461540112796820916285115649913113587606417174839630803212780953596471859444082129170182341603989808076540135899957179235442069726890718398734072437019910250798081292166791568897870628482226248193064848891675384705256697290455424252950189080851967700079315195643337785175432810260771882785847091382344903789584603312020663738874608129831224129056643019171830054101549711783478520148527163477283627067025497963744015714853294408382503596871907228451363336423880932138211455513697770376860325410094615752208330541422804554453324697387152004304892665588616187867043607527801541159072933690938024420405905344628366364275525339859070054168473382776191932113764798694314869411769991126261579504343583057361245175386677478986934111757797052119992251472036230022333188269118208662440498988211214244533417760005518899793966088739997176901336334378767906776806803972963834689539259354386543911544970136695343817639865035127801820377413450920946153977433652560278288576745990294024899843262524698904860266915224513191100383163968946190910300962390233007174395325542569329113479476941629835584991843710179843703790473774677356248011007338066246079182340937209837300171401578157726216227155499596570832452475080103978915103259684391968736513100814863650225985249809538048934316939442688582640825870266682861803354833395862840924691713270540086235162019892449352572548438736003127681150640083053046305458242444666023310971340863813379635834514387016941942610677716262601666709988347170893351218778874043429107375308922610175972416538610986898644059650080492563147346471779029528297866676458628329107803422715125888400024605746378298730942479781932108151739607612057597939862913160260274490744420363596196918297900979381523514707865442952123457356814481584812550293725796032570490091005018092627788158782511360125056615210976126738295510006194294115530869181887829368607506986727945198913909567241011468819958666921868564817335307842181492184697260124049796937972751545999853339185351595593055085417370621489924781847884576363713980785588108247972256211702183868673349025991141425976700715659348268110741941114086307555707558782512264089169240079011506201962510933844676094277374456310106397025051581159436486874921118633381478269472158200979867833708823967254497233767521850139486448611964311205586817185863984640441259618962180730132866965743975405943667528455271703186293639563406628106571490443803299727772717623540935223894690700521331646145050828698238488904688106413924280416717566476034279453820538978220365482742822094775219077212828042085668283762704437671418698906316002612900588182543846485221428467914867666648648760511440622528416547831641072188333892886681605289397222434062978358905154785856014580455655445907960291819498556870920380569548500435023400351362483183479175781956726979357162452392848533587842470853485665361902570310603411843216578198084056033556206042263227431764438212544641068984745681146609234725353504641292226925691681502573635731403203302068549126316797955299475783753390213863770399935867784550485421576730489819474515756803648613559805750397249742894111115570012154864237511270484964260016564545128361632455020945018015744236310550680553031555028302654179800672889581253456859797623301744064992355923868917948512395543783641200295261672520014710830292327856516172484405596784333305854041622138011628003439794083564215207018263156373508817768751571312158376729955481088428690526638016709863874179004641693163124213819508352806521588312150951122654324373980444536909012349563254475901058493456693649572445863904679668200501398543183336267250273186383646858665101261346512286119738386759087428917385063571429029405320566605738148472011043278312323692059083288335394579289524367498282440233611606038057820312265844588625330653028645080213520514181789750605950824785998569172306037863145678753646345526182638290615549760477529947605051581397438282461812530516615444605679097873491257587169586998514852712258673340502634422820804243553833511842247370546610518189896463067495583526737972261577172674516326281392453728711633482906791766131762169705858329393093885680766842663805306439879231953073324129442016525969294744118060539423193003701182540580062378117036104279044663646601319361288394999597980266378306533593682131033726862816029014475181490616023642238799602852572402265886155759253393212154383986757335856931804540998962581879737451587527603087850655214714963794357623618934137250645754575099123025692431541663956212142464066617175752911149838021625550270104830361192597627933667935979844361997771958102841224944088044169268682296564524158472588490595582834558662232828261888504597620440313392403079752157896181295223746959316941927134133221248792720448814117249194234124347126718042559425597647696876003987487382413229219939826046948451459548923993573369725159922292055150284945174011782396403038880215508918625902611287378122666051593726768241042383246553763677030922447624621769445252841268787628015177610750258339962891185622984436884511736890641450387198088588559640346191804531484795040308690758798948741404359762402277812374695873569419152675312761296976520526502280862647513100128638455790497537726463990744717918495805066500339631501799824898811747689458079492858033225254142318033648040587989897378612424034102959701720238170173631928053483569310306538811001209241595168732129111924321485649598127059602157902465697869306951696592719930182291543543420705176526501915975771579760250983797572797139358692687393384329962161725026497675935826696497314776124595823613202625694791610475305638181890924196741438430272499062417438349207352311937028868257447090743061786014452574993926081981417265158921437874752655407456585286328266604821745597827612454811099083212195107612346081314358092079081046944566653907502952767679727991620779965408640774119950072760922080216485989440160950611385041043644574675552080351606629282072282060549552225548694054574087205268301719191105649193603822911203661461954553451651040992014310661629700716369178441870710611952883433554361364383512637927158718356820901953609682406333253719584140226226273807682682948986586745158379928991917293975427528356846325086101463135504609854791430538013263093280434316510823658647842437389463276926274253623738704380863827108514140196257656974797801267335480394132090192966615556985071389613890289742755405012256051175570756898470614759056939233276589969447827001429305153966261133697806689637281058360936632661378260389431074157798129740470722752098512297322169190311093386007174695621538257104409508366534561517050950641220481141804540604460318659563294609103897311814540491246493390520927919831164317735073124052433890143217094484756010927385005867605570601891432963361609248422574067481348871392880213807775234713958604367056568663586553140359423258626192685563910935800737847865219566564177089310950909270678343990082370244729507339496740945532949862024917029478205374776315356041185570951435406818622965318984586146127954972739443401547009975425983988686522691329379572448107507097048856332606237419467645603402499980642604130637526755442519846027977265602685106787182660615078543550868747411156682194786770416511375226117220984745105126444021480756438722147758221513296315873156734832715815935518449110174500647120471392133320947160841781824367931875676270910779625002566037638911729913564351097835090466486094642603517633375867713563827480361031959530268619497736307179662011286923503824216078575600967309053171591210491633239879475997059121260649336953965130952273955625167047456708533865356313016612301144190662711298968985064361686300109385964110006083029377951745579842798460518445872258498253773804250456969604437283565125266107728123269241921541691482022987932758320830171272032705068615103119984610638787073341920972810539186994837316152463843859418475301006975875622565476289201233681113747038314700133239353566589237169153301958833552159986029393040909322215318917249659280410885422035606093704262030232062275878764914696580297297949472477008913012397340299829225252122437612310377116736654155866285500786993403283144241358998222647949581592462402957798835011398351574191101340329947006503863794215097011582973707310448340012947685620069542130201740182694947035205538676361741096616357027129247008006404816082173950224843855834306173565458784046545864360544146485980549823718470988959088556369993695338470235358216420517336887238763740000185651682459881747114667090822330851188043428431528026161053052185542838454305834530567565384164268211406368651327330687942186439027492981623202496773876210711659354832079780392074707627712947449109255229815583966963208161413166335443003376067938924274004667867536634691635708588481330598453967726106913192823874997907930490225163223555471800182044898039800034671213691004972975597996139571606419751713164273292769963428440525409218719937584850761987594021485319359796753023761720220329702153955267378572139007790655994109877779208273336182065323340415536790320557255243994963741168228338031029484181840649096112170637006983265751596983889702935060472517740653028141630208833801869074768845526123733289367190023178514492745034602183943568319664382586209412468625203794513884000986923236428243137724151872064271204930804977351647310532788523930622188479985505163071611680745542138705430711986508407579990366204252704483974377147665640609226705116742530280116628108692299458188707192355324031039165549240587737514025914837769063177378384116541868234012745979727697831372814967206940832110590137958953314298905723509126303128247960950313540901960746919733117492783637587572206912053838047469990565672585858974075355254449034676981787703313079358524481186705575851398695827174561275552983473504180401529017385060686011163537416490809925683983889748887650212996944195027446130887094857557684371487850338393413450772080012935778396767441009043645897537425835450172556725979706064727716901885823243145663069009281626247120797196890190025267432112493292199706370102725068781161714207799158187192929452113312219976591678625910093219372725390426143154883190007619202502046706771575737783871033378276248186494032388744418446936741776401317102932583413958672763162465497023542585547794061894692312017365140463867618518618830689491558170216020099356722783357698119970765048855110969459360268636156850957411281844531702773035325083198722049302368951941064162248630050014889511862832955791684250735758360607717878399889494923671622376261868220830567049826050089472376157281953201446280043606852403161480447584982713485418996078821422817128988626992756368945805239180688410058827266502031634626637399812508870485062825903348188786045471274820343114717523475356869407452101429307053336722193998336529332674761856574642504692135320400346076341259039297342369614266908844785010429400127204743982519887321621070898331914638065207871571293447110406359397336004657178959144543091556367230550884231871126417110561749838082144626547160270305680443283440953793938386017014726609679671758710325956220654163066796952134545190344279794807715582860039098070682807912232905888725851756603835650685765767686463978235985826820203072087358646953743387402235059860261394635861941641208608656837896222873421286974416942116820345790969973065256421722823653511284362897345228550998985931967423182350213727797347460015052791667730797422375718333014743505698162153351254503593347156144725448297152534801452253844653458172439296379211339777446814554484408006337202506992700468663881658914261951473707607946606448989139914097704726661871965342846000591947809259763183431840383936122657069002971420681194735697477466707731235188348011652918868163254989638129495871200747805687720565101330713502492091756246457380408808215895293832545371053436407047838413411415634454734721202539150677980739018613474898514842872051238705595632599963318089136922114715306425584942007846078421239827709983947156438035624537421910760575553566450629181885561077334929383093905952876854004304960388559590744992133660171841536588139219941839554635660284945749178460425434856164830857256047140268400146926737502906413328413238593217892690189764494089762276603691147708816559535300170177017007800147544673156392097853781253116058068230614416667649105220163086010833869816698442954970023252451218633024201773690158229382812741247322505358809759731740892826281895759092753653872253067809823811004130505920013056347412283551873055200726894981288729411368581426643005664387268008099280465719824540739849988933779537442814801108001189941260758631776741544245899917638143343856757462303581986209509897653744827690738049400646440000282240052278012620058943403258797748019365784832753051983978215890632246166231701932170790231919075102354048746347061441819215039781528557495336010554175720446409745505512310417666239895523071673545279619026269344563791121727879637765545557023706258282598447852080049837440242949604833148197093568150900963290136002053814045730494407003885299063013306202634987674209333326766361859727639328984838379933451765546225118295858358149146822909732383968578725442696427147682588788230672192968117122515357586739517904257747125980111101494063924435134485978707773243955652585514324652372313655472826772783646981315464454360420755307534137804466814578560660057851429392259200991557866934714124714210639944082399779385326713350865749620144003663547604487102653195322952890682197568484783775314112226545662952107561494800871214592883907736375833836110216800370055915600160101376077859628177578883823770858724289409630788340116847324461821522850227714957531048550040236474901828842350076988497207586933910493067549321563401002049785161846168600470714687859992206674987924328902341795388266824026533356316447756249663123596318069247554030588272010519118475813181019234985189400256733045470384649084646058389883776557103515139101004635853974606167512797762270140276899198567969199407979318391199375604551542367635203346935043485192705841313539580304319960657914808247585626604943768406923033121046500676394312641622437979666092670309379476593612768422593019037823455455438810829400887755037970716181168368477675959129355195404179990930662217891317553967937687233350598797783568736538577879025995314220589320426567771123559046526286268504163926891599840135340946553740151288714815028334660929759294278571489704669484856311565716488796204249505614980634217671184677683046257883956091605633671638119767527725867669571770900738525683159608118415776098418142729350499905998329071443331050348563472054679752561438894670208121534441603978425792685063624586495812531668499686238057534740650755962226951441834327897424743442473566083774222067666235349258462630624636531126750827629405461164473767942070588767276230257920284247395878100647045326366270849239686687300167157148551221917851529012251234062466883795641554373031656007200564700371957389863086074090655742468676675098550867542244456600115948958087956490561790015659335655421827251838294058487880084389166749185465975849893624808279607515866223265726638119518092929952254518073569203251507016464310331948262006164624248853258408966737653482405523435359689471168694511197853319577937519677326755891748061721694080464502699763156541646292920108909845332006831325753461922220898964365545481111856817798782850229711785658570938158868805528887594156097666167059589134206244128961850084042430340107657345413549849341245429046707441887157428025511550455755445383896141305197416139470530908026437073155116609244294285151675004628205284236960193056436011913203271523111600996549703894644868884589314865282636828214842474078686642521011886626056448039847398472847237460505602624869381177116281310228662615932285220690506776933106298704321047802536247312911443986912582249873878140464743748293638842077008676772104949826246858532138069688340606084570404429177990955978857422953969762784141860357827876312463322899443933468965558330464092173958798695138014920213311926652639449667319434113985993939520836017629273069505958852765970025803980888940010340666893797952539690668154660219070489533052790407172099794893043153111721681893292147870987917447167114265318001221590492793933788682755956003568285385354429744239634961352270866451684502195037991712255796689112334752614817527911894846648010055872795446112792735962076287341231661633498452925205815256910771246965863474863961466965228686808579856556348758266226670654880414154452611263877005670132169774727097681527298991347053924474364551667328946527957401478144599808207615416793926096685711034590727288266924261534222770041406192955057408828619635337662374696569747386639864711612100164316882209566991298015231584967692319212331577527908551335338253643952019771719901096937307377808088836711547972538549974628647575492556710124001042329497751486343326066598893109134649935951161560383212207409065982598914840017003602812708641211748786455607994117380242768836612201764114639016726565731821135562014357192508875632790521990875749639250476135844795481319256303401312670501224749031905307845608297664878546994107119486073363300690710194405347959498703031528564452421316976530405081704240780186349276144930216549893794941905358738556667394814802810041212900584629249039992593093693759009935787374769926775633756965389087612990841069294449293555271828573866908820664381356633019412193223714351518768541246308964240423966775072393896316773895293545761517726455773948487805568131038809266509296875808230760464131991412126646847839649461660529470072004446119824716565296890535395565754805420049467011203629964641244195684830956232044570754291586995064210413920902484502040199064967153762208260655205960784715941769577537337588675771223193989528214525151914377203501024614185097323855643158085810843330072534663926570570156944960534272500384943232691045546310515681825240733949111606234651634225994791503353546197470168605648706679289561953364307390625215956579704581279461581460464691194097836226560160384725046390439404377535639250314029051334853878934696893711165686465257118596959870466010502652305931637149868183082588199755194581874916164689385087666344546060317978569593023456556119507027356749824186030663106083566938234283745055793768146369309912086778772694729447270329579719432022858651125886713517135329548343494666566330212706453271769098396668590418178432218186986290246883954625201261877405812572316437934810059717504586541551957308276275744478062184129640107410507186807383415336080148579727611778278581294363257211468387978725023252521103712604421789339015830623081320820612908639346293706469077802265768829234272105052104107410567680688123343582199195612543654507922667547797960812456114771369376268586775935618118923637906528663213952476136103257851125206164365532932565600204320915128829262042854889909406501749428163474057793468176768863761398435135249873270070430314020059963566477201007769842585310587838365216415927738463004043568408983840486656874594124722533903028992300900720616408511343943928979237894691241381366624655961013585660039018710803700028312858867300127838580073333912062383845329100844772268904894954320401036397772463058158763925044056467104099838666892670628630879588448405449872793275422805226737815285121270399790662206838220370674847346542119124645504898106113768633614661725916627283793192570283630754862285170180452457484753390188053154990547029458133397620921276022712353424237275607684172508638631453299188021326756190731453054099451709683808580683344201711708956081438452327644214250853196061615120840465391364188333999329150210106922595803497058421429713077237326356472405107207578283829135387802525578825585929915403033595524428013257832672139954287018733989705203983998550840217423949429513403310035975964153344007995873912797247152625158277190478359151784339814705101290961092616326181492131503917898652368910886594123405015977898231435038722469146825067214902700759644819638871356085443028034565856955358127412033812224044980924840767898224845849233491454783363921376506376621365779560964479945491368313791856078396177469803297761801377984624849969348272990459131542818101272808367605659819792243305945466465392058929388987231507364440177086385732423472393532289642196346554151754756122159052123200788952813541598502100728519637456937159642253992066783466710947502657127894478500791694386383621316673519592224873791717747268091211904444132755863662440670682888870559117378698362113113601104591120645322487740827944692481451994293188086457090000091882532391770359742330479148512053826086455111537960544095874328109127038895684128750067584694319373211273601188901728884687431755175427716608964088476375333660198495286215703168160370078565254037591031345294952862031226914036762625661604949331367914193162465023342925519392148793705863957391402477288484660772868743294729086817804166007326184245341816029772295161041070133064476257028898138448384677040687666478937261006347419652654777168044728776877172458238272832048007152336508185089192930858529158427124473126090077943503820430330262765217071644611179960509440193894597051651796012723798490380871389526836386950261884812077701589715916668517286370955497101892814036981290820507100197866899392297891182920965160224719046918746292645074718192791087872759894733686548074616079737674828247177215690966924837038656268331897089800373838956978802966066962279359546735507246962050374424255060536901420942631866066400410199868255933275720130891483943304870113756711143760053588292231660828254946674029587025550888754872997051103992399951862107928487138766272236574000682247769946299093896979653059561918885113495074401324682093432563438903526520916982805901473513691538446269591614440947894839467190758018995863327318264720502076754634082623130483626555562443358706364057958394124717471415075971078972196413674018357769570511660540800929147856883712355292495268400780606351334115742859470909528314093247320746763374235905106984949653525437636554214104150067201542514011983447354996859758611922709737289159482614398822469978751170128323438309629241811700814197841930605947697104670386304070756554455383345067875046232745835032647434817956419550125573073961348050953969832203040635144034048329779771565417237569568926365318593027226571264532265538590317246417897052777795894987916458962386121162337280680669347279819684913852468673961806240503679827944982535105543346896657728460239429261821730359031788525798867343570168654429318007946820444141521488927988939920287196392332645877613388765343149337239739203220405469124072787951787121235763568503937388821593976758652088110642029239269158663346828923003038528313832321310557155681153242208738493484375154151311802286872728715305924717158230494327144603704892914647809811280449315532717178267811993279944567848988352314636533152302296013854205424748684551164321415587797914868401799338524383119412684853296797392887163324425266550811808610885503465607737204353204729794796758932100163592190742229824949851814312163042627343600176947791808553792545299114629926157340202553066687711771005102413964806036128964354610411874018643802542573460922448545714078211171519055849922511756137806440634568232442582601138248704407117216981040384254700984551585735925596052723672259655149706124331376079460235708904926011147956411898779613084036966481099639139730740501750488243942924924098259777579661192582745439174275143528842497013502853433250769711060576275699980069622736301003459776200409502677289189381270355259305733002936240742958005108484916341726134292035185602870055370944101196939956102733833163595248716770515214229049809121646266140462849442852763322295225680268063399252256428836230428945005793506467279381830617788918648518727012137320167452205169631254134411388422161851428041075861887057755796882631632457943964008848764028619524130179194366722550257697351573633714056855899725392606953681526615343555599640963077849844936062571442754783203951302124643793441498880983122046682112862392390240968078468516248870150280777553614351533105678843960663078428339236667986176936272465632255194385950502426236226772689077037617192645786088000109651119560072414137199269421162855064058819304543866858659442691513896314014852389748374768442537223881704823943817676326010254197653399576966881710856440251035085081441422146530580602286257933786854321874851537858790727702793077935573859445357275228504276960768009678922679341761017774495549706485060393057344284916244965876839504613974621303579203668914358615570180610758926071441118610429681056204530200758217722592875281872021129095821822499183152581921614786294508094924459943238009065893462377157194276645253113114866813847054373752791582311318069522909870142943001543776802307367927744816615906829797407421779298579167784938102518911207539327652816407596623083984365967289939515228448914012638308977362885508612974881716388254855809605368097747021837077144549186519227870272370576271596115596123297193015839736950615688668679594035940336022025044217104079423355725659592871519680107841539022437107241597799426357925929267056485392295382074606576633795671377132954838166166581733389093692617728282178831135993899782270200200080695223786726338488478876786558157955852923195926171596653863475195737581237182321770531321216271943867181306311053220606027500596737283805457975808939397336665118424585288582323710308284654494551421140883694110099719507370998431305264727648613762037187439280013931692150931910317087297549109681272341381408251182648575216183010690412596750090628470347724908657374818378135298603208839079798395352099553872726691867532289962421611240916131347469666514109144413574306979955806713970083580817215975452591268276415345460295082133661440870983785848204772763667992731259045888717752515984613529185565187890591927334722172085060431364096177819331692273937291592559654948645504215607339992639275021544011402030696369044275008818932199928012053841279335982128683894262699604567457749178195036813882321399526534499225104170515007107177368847232563833823294126595141002536956926624218194059775829524192127766885098316738413647883307537507228769883709421499444960258228752009482468125249806828067752220091003916483641868736565600481023886898681898120795780232640343607572322741143339632257114100578528319644701099461522579755588281112099387916623254422746002367382932137601749104700583648159406201735929892103377675078100585633704482242151480124289532389279249219260748325423255695666739148472784020210175647212425385537696363271312910050595548054697243358709627689999556658482447891403096790234499883845855420984125901705115866444260542536480511947466011962038120938184145670384423776905427469433372342889028698412344040538867828198336503941297656508373387579852415758168209590276330816560739056990111764108647035378982643678806753102619306898349266499124663247922989575201292902376520530895537752924972770256751696499166572361060932085281809171736272234091385633645713525475971454558363338489970460421004455482155399860058245139574508112506112750305932873648176928388706032767690493991383920814839220739475250827147344572765968880437043354475642882440564186378945787601121666062314975902038631675519100600581604424190050989869895327727741545049985480270506325700257909348836666428955173608455209718191307103707591750315880976670070016151794162736026880469408023908002544558257464340315965040131826121273864763311004569773601265716248997292102552706550912742875322515394768783311186993145185006792102085240025357315694112363789929862843509362681661595895075900100418312420771872784365518141918359005890505339905561424307164998805572049984729376044795319389272748464050196163753394833439843713345218206037564801169411530899552105361581907232497927826171872873984582241332376703826710146115470630462732709040932801577387266286721621821084996304354658108775755058134709888496161053684177491276875827955045248021583221808277189720423961483957411968371960295284567866874308688641841360288392872980653654557021131130087191715394404644569435180781828093225999763279427199576565725980382468190005882468723072360766405287832638553836073472037265994042100450805217955561415985563115275269570846352548884548355200190110035348205201594816428383449839545394931533908155843653295271866181536522303670029535640818974642923519164910287350590387050195162857753254896839638719390683752403836660711686756217283899067020720416334982520831997858602372284956912546714165619953158503384221186230123398788837887020442212751689371974234771756513854309613934039680559452864889816962449335275235729835472343297307152188005433339752330234734389045203665769980649713191715435507120974920512792820633512563979368691179267716011870310377359706651057459089741457802205996452077339084497812437910868433261355613330289030906628051362097741895456673023728122449439874786658209133789690503720357681967683915110128002278939441183307765959037354905886313154324275982959907213838265620900396450973709056989161285032071117113164199290257112738292796678298726280386054477383367240942428089309755139626259782575930895848870483675610180895044718212258999035459602957435427023892285745747430259485170945438152987349308985487774467108203024564194705485960945348454063978142347788047535135911583946195836027805359342449404905045570114737322030515061522216660343781208736788996334521601413908846765173444613543661447269977333564597814291960577999185978588344149705807192507392482533789791475856432295894826731145823461890433250728606455313984383807819530143214721302076447608475810164948610995274016296648458986755135529403760687385141108035014656854516755256070041331542038322958375322727683701123206758278444057739864795109102160038232728115888386181020627646441904597937440843292004689608777962777695446409588181615985431427458741672426263804174985956938067488731434955949802340894951289304390723750021436511396839247107704821871751094313391240663065661480891182132376419217272311787123999184083179255046755675421532478340731921849358340825896455792299122468024969501520656621493662975372296520724535101771502673000151995530399465997733806334609633098033651708447524879957428573636975135456041945596168947540332118253080203814279809730453218667078083087393217615706126482393785204901267784332097465611600959508522253171854902583199373439888172021266722265707067531853895302508901352046043905844593937637123444192288032717076447064685306425187270507653852278219441471099718083534365984962365137231204188515187270266584299645654372321235838134003286918117829222247776174320384924867769294850199025658420456787269690994637678276482881317621202170652161392445126498922547845513278661229246292306872537115894225109527058453742441885401833608173199120863542758755887116522579778410418843623882424803013971732525381964763912473315524049562874609114658852512644762252626865602904399015517227733839175785130697182228552054956160713198807095317199215396719197650001453540409158845985676644579177140873028413552021302104397832606651886734705464961576159158191545095606862835320546904217121597479848717134891612326625255576363744741919677669539864392209858170623112326554585889362711478403331476106232599571926763200395501207993248611048201495098560323046412210299918269658631798040309615477434645881427203483768682315361986045871118387473154553953676709478943856325012917287244146566451849138982084140458954006984639317718096684996425740406581890107471017019311682029994154889982514193802548697915598894001365167411786552940471841305792857833114406252989891868480664086380998404470491835807115555453625860947339781674761846339652211483237264425439568169098035177315350600009099913840360916723103066525269775887914845843245757579947231671062963081544756904721308225123855209541102894807926857242669105214064204793354339618913921269152344887801263139778273488904262129583750031724823249248510660053630442145819711113372764530323696085923713651006094505309176066069364612657725089276494417645320982604347582812346802844734640071136669005713046953869565313478623593525223511315032069773494040209398849628469740266783795159835686148729585905644840116908793608402460608756118435481438938653051836895391681793679544840029120464746653546396334271977621762157977559053882828185876930164422830726971991283648388729109086250248970250868114040911203216613602667607093336112288285565987825098736492226415871001734265452470840637885442945407630381627201772044606268375075141955468122847929482954197345517039918396333015979022514880637803280497783022032008720353258746754399948303228825822477000668376313422929529557936824064977995802374367697044761991967177409748066466213561524116871479884155314809561612246929457596732059705798193986945199156059306790081179510806589510340919356728628499558706369796116630016622392334852773161629897156837293449214572291282165635336786978829758458776465596569570378044817168830117116571874136483938008290793656344799647910771275268412261778239121695567902545196537732464535614231004548393229296233473924105047854225705517582529597649900685407692847300597537255040845433484787565964109042598176552920701380692263041082996502756890460463496790099907784573307685697836161578455157411559759330903781351884539305946318514020286086138563258656108401903498106778333452070256050265630767451129072940753671680918567426607525625522721817877187913136205523573736923006661333713355664811550333382518918616310890189733269896875090171950303059382039899626940437302619964595830483027459081510336171065530633991931316518253653963754876013548236115817706059512184401344964715665152740306686144933989570987062595353206865315466977505940466759342366839601254929495167377457520480727510309255662958890336055018283036320767097219548887559070015164975802841348009044804636633167137874931450594189245107344265013587441913640514576066348690455491618778976121531987612928850005881205423406689558329015685451816742301604291000469802170988100212674797404500306734482988309750172810749332756975551089771454434284338186280570132570932537176834783335723629722918702132668999237125443565199801320626677067747917411808581622469981347796118569538622480760804926561015288443013930799948332761890114930633176466737938703882873577673063959350415672562260391985046111960058510565405436880710171198907037414534061029190927428338276276962863130827346248795260273764105469129233665156336720374319308936136989478722146478749078862735304733062419282181313686482605099660403442809318604565335455642441807994141832902210833126154342145492852276940549282895957416447122979219601193855738956497376793410577399132197422257590358308508018083736665073969009289099388027203780751239915546783055565553950515849569586937721070411235712114106355277606427426182804740113953377779296702682748431449693750980857321088471517225273231677246662152318766391416362996879726307880761615320001405366113078122829514036541500759937797449304626687270665247479999640389839878553901530565354466718293053366685685857337096278706632058968303548670870680774544633174516630644454879732876157956876161876272360873147343326558170771307007444419569167120602565836450678137350955711860682871980733847411818067516901781241030344701895377984371389496337138275821549898145269438674108735798375566003913870079568046638034421132317265834855546750217699617797540021284249021143472078848326575720683026873906113728024937358785619565085066667194736194454915571747318148260809378681065318023158567578233447538107114152187277111641330279236900695131833847986015135488316411761754257980298784540393663092408659786243091200156763551983461257923203173061988374735353374029214926219262992821377796992583607881625896942008362061497079140788593079965079408246456245302683809349156850678094050781116624865106725736252690906993158509748083415621691276708989137138351785204604284447743201549386553900427653780683796706505523935371153576352163635308579207799094537033395984113420435334854857023172286456724153417866994626093444010181527082694755531942174869426111768098517536593668020052685658954133440671035592507831439485414912343082219973891460241292658195563341648044266538385249926350580406709697157214726118055611163901047935500384959363433415455622056442579287162578622618755811959692737958869867842977262216348598237679165290304845417253335147459729116038480977823071732085764784114925767089350972362421112919939036166633544747185120556762775971049279067129656938294931203138183747030595981982777447226985768944985288864673714733911573789950160283631433527986848789024151748065955279399023526972275691682563225513079056994865500907313706115595219599692904692898549124148490813273224093118755777088620793328307707342500090025945578854643157584313634158189277709702566357460474568163433842001467216861980731072277317340098105937352921457483157302301328023944211682729068090074732763728406570836038949125087056217845507076169906923964776552618864586881759772533342015541117001584023536236172217288983479674864646841658711686119375594448202408471273372677999528833704846291200135279567812412370577348580620640739531508658831575408778305304416097324109253400409713061826754026917481000998913605279659998068935221461645715788062197259830232938018260002947390670212917472448389649810849481757260077175518257057443915279202257594243279707574044125854102975067637705545866983485195198334368489635966950855463991504011963609236616899019735626253680375132695147281156492584273671980646782484081477694969224085130617155324762455887352186820499495591365175620525422251807127657824620247426565101129120902152167873148327366988770427288950597023229431721062409897883798851476148779121050425369389904861203019080899506950549510943039901282374072759596699400803677954730866893829543347707173459874898525822193693865936167703826179171713076081199346791823789812432516941907946666329355195820291838552453434351597692758673781195675207625562881050816394080262624663707300964501386046311032173198398456886009441956070759276812048295969613707603271947695853242990493210361018447668213004712333485283864471721757735078357131505208509930906325572608143032865937350860733992487853427843719675207591349553643278801432716718902230368162175133591616479729965935809609384654217254481555527751710366411757141386514865351744577449896476388738968945483947053016331466253346028150803597717640156497565978597028981069255396809526217938538380341059188553558097906771922998607328935285795483083316828069813296006546659298438548241627116945865674209765693752391144980892585002984329679420676783375560140003810958711506514296955928187209137253979234849874261465661235392671763843491518187925258553875341553673704180977956345322168913661332336760616575247365695888735442948856873790732004054856111391321267669727335375284859521424131897250515245168296951905386591528139279470142796055265660005195591417998787446059710129521006710246787115196100241556985913656425729047770307120003055427645802643155492273844188324100757731048547991992858485903937753231866346334641353177242498040197603677437760957589003309539780364871070291953725562705111193192069147881406572848197833778079670784957043511816517520884113983734605951307047950000218118902176328384577886294179097161927723059813895446872672172531201207532962884883753573157122525594128453541657222350803582647068898298468163736647907753107560464695519305742116753815417990548482603524934355875710260029711398437634983771744881120392273024936455672539468587947476255998365996544600969195328889479540652247899300441341253891988168983099883241598840118325430396949908385405666981658143267615609451161854344814142278356247536163345418499567328724290749830604340464975650696398238855519569538524660477068885007205127749251103877156475812711234101679420026948466672899696560420871761102243700543535546810911794984073207686973861198331658545114340849021700963717403265032350721792727173340307750866360402786571585508848282887267874836804259189992658312373627807370858395438093866306584123978258559014260634275025102736711291218326971850724865401316753160708725059702508518973336301253282377610768653992268502532573330861573461776437656596178466195758488193158024435976112440456404681177109778368773446436039166039727253687079026636961941769393194236372152553843248496501079711436645703332910280046231249438303812507043485425759214604173116261078103393916921842640590361412094330033445217424392784190612525647279581194940027914825019891489969000712517119850328555806448735736646973298887594974098211070442350636190926925642115591897678320091342009531871452575852331154165056687481459706542858612308585836956633921055568159355984436996120198371337488331240154774916756877417695985555551699344319796015779147511427205781193377416419732351248911725480020092578286233060785595581007673498881708833254593126801646069697625529375509532432792267651076439461432901032586538670662361993088139884493371346230339959014380335576792490214065155964162579517860614347661045261202698980580891180665313855343161072014840235883332125773600008957127058907142966504850915834411825717768367726887397985399952545495785233319940750656424745724848952464028602292045375267157907039448974396570200406094502981496512338939664499079954003381510809926289395731360848654941512251874262376925985431352414254916381899968255543219673252835754845842957603778917957866078018429196236361959007553519922674602167133460111919634692006877992670391346873397048429725172468825887735008765553990957370753995236329101563234630411247795660785535584347670407188834682965003913545417554417292047856845490206953702393976059985444414703927901674383886202528461913898061898923034679184857777650892896358171368867601154885194723615679227008960216719726480328220186514050489088608289495338358495131205589664093232126893509678575254882703188094547634943333502456392413388481250898131276449881882562399981509160729699890354400586562967126857272626720670712625358704211750610592049204049203339150223879163840699482020693996452410790597495218484673634904101147208754908122695883030185006671614629605428440218266112357354384812402823845275816867997568191154451607060973514739558734190436510407198406461772390951715771671420392351701526197625317135591198702109138760706319241960777070706712707387426778875747619948183524774270229569599404779797899646662330000173349175338284229788261419238870675773697633146873737339826812215736226834604011377752505157706836752161330050358910936389439765515296740322712182120139767456861062882781302725213933076954882661302694880651249748661968858762479508838216445605373122956283321785992819833722011157622846927567032366975543339691138294850120336686935594392573139309172536588179401639229048212918499080197764884072965104991080168436098195371394855980936592214109196736196775579077393535640956815909985307252919381138697903442076567595875076695682143387663708555088013151767765701823241482996224987419744231589862365161472021782481941157046390571933501190730080560069732064534369328710647649092078861371267119127711588345631411544129713359934746711342356571473631510484018731965402639689318506341434234495659509055042896264716791331039343526862543131831472084909619875874955095825732521707918535090232328806299379218182801145761158166489838866992606612925842333973379162798087605833598885434375290131464244321435446391096001117934478112380782006853075829409347563056074440993489140955533401158458496322704491111149363884981388855574428489234681855589212026942170239923262855667777360648702323737517726586388856412930375561210496753897850004349929879407477325484878053919530263197674015818310375286186634665667197507092396796482581337415514314669787213409655325929505761717094849628740679862076530299286237081092291171458082071091682551865833283718897274779639472817742474471349673398026291158071251646522434769137575927293284990616445145009161249928872781860884007872931207979551715161207392680375129745765601359021410960946386211661904949191432990046905552596335594204842556051815781339136519604027265681768213929963696283605320696973264716178271224357334394231446614407058134162973060962636602370033681586218235770795944255705585989317455351599282509801233855339194004422194695734955550321698115723038391139161855840162538838492620983385493839259120944948215296200130359337171348045542968102541086014716428084451766980142371605043427561518051073666272019019523081632412250406984678981925607301559741745081738068212629922554243573323781740557315433344493162970796129514872665156801686065047401101379950854255658374535724505364611255247923329995413224234747410984779248443095445159075781744783244779173483530470972405449044493254453089473658163292574268900505396412950546954633642405735989919239340348655021623141361827943154947914392274859193644824077363513429251030577441343561661000633349674553875593602671514291216616416061025483156009892020228912728043793489484954140786672183266141604957225966432301236488109318860338320944508793905587356856967976682539922956118077572066944380045855683499646747658643121578872871072736580436641146337478647637276122448692279723077821352439169108577913842728700718254405140443136413677099004712357771676944620539531709782674743965361203090918629568449983120672468973227425324090242502392639493274137173174638544377267336972794271150583060420213594695573919840438733286642901990244476412356924600285599807039608455345438778574261220136609650342247755087508991778005684328298358458358532896910677129913765550737239221632227205231715751835245473978560127054645450640903451912105941108488876780766287539823152386170473709852297985214067361638496192023326685792090719155209799368847356371911310365352622564622164374936312412581602358676615344035827812778123960692821490402614126741315086074871680447722353426896751492314672206114645600164705801783578033116297979585691033901070949040464286128284463064996114317709517871635066090325049286302271417408602773051090351503754371525598411770449680261062237478472430198123106289092607029803389853022161866454171175762255721957675790752895250728703654121301754498574231876946961973617942425610614805868598041529634287509753043301532952263873924866239606349773939274017799158887169008777867830990752028896120282603802135836674753203249040175455427496185237551497551215317593787650419049001380781765757693680601760670775813436797079783242142599464366421099997661687506767743780026332863057574509693842499872787237712774279442456497307406831884595644732891519901503569138091800721256487464892755708660380181040770937007114920643619102112785781891049068460437487605340895920953517817075915314941028567937487145934922905907767762686066392896149639030680388294751173515832215155011579697326134555907652162120313447818704356037223082489998352954978483834044626359289155774407379621507785010532129420042172884803642702381322071113092816692971953487761901881511464765521908674678345572276549072412625098922684449964226695315100939991075343324689588370159374393501903632128137282781154817822753902555142889303236082923214823623543510523906927585592544896997535191432020993245472869288903553118482268200563378969848403066001676592910221251527874992922936780443236342461444950016957497290482165113556615582426758937028183222220945699026420200313307624584459232222018089415943956849076694047346905786618604487914832592930186611759938190048029655092600911127332959309160163964301923765808991959990772764865285596037670099957902724896620418370802402747872007185033949646712426777638853299346930028600899623509539766794386642593643810123773207437222081735300298596709961264274170592371657855102946286407537115211657185234973131505453900408566641554749791162215098937274190724148227997107820439840435595922461485326303277881529281178988947184551236647218531300361945126033560927775582613691150866581651251820312622700285495456810366245082282250254328552169550532424767949377769127833616146045368383433067536867544114270018423369602091006657865695376334470993091406160129225991005650061845031654777439881930655575452364146033431838480570968149982917782921219337292923706528025929237215527158613268855332293369129865296466314129541255140409512216715744763650412528448510097302357204309760040346693044798595317625782167563101577556421418584170296450325204511855838145864267862183085415812388514988629308930004516548293068162996420260172443323500770871095872520967899929350955259979307340250549959427657708917297137609106397142162014062207043104016573940104325922594901038632128815636819079453599958267631859086910089896367380397052705026010764409693483521829206433624276285113394959249542949339935793053526143397667549841879657568916907332784578562967831326156692053751661020521767867501582695406103063371610135785098163639247921394753784660362199764230795979400878489370608646779296866723691463355422066667925606523346582784591189847042621852698831889583517594338777958270509280072654193145560377441512495996655853847633746536089651689488673908668529584850105084211866803135860228937597159673112215475984023852675411852541558636771581875214353852579515952744518067625716797313518715060674941374639107909084602534410320123191809468216965461887564136238434273255268778071309988277917699664112809815558249879374472144538197668301532738753813439054795350037161522509086431184203046013583647367631937215871934157286533008434456040798866147732185333477558979826243517448679562487358099584395175081073694698931696213279500577864938882320848461344491202224128887940723017251077309216259063692073532048297427405411155149446705514208931160106265640452329208895005852966445871102770272625093455237118681494917260439862812778603840461225616571434329929923379318186968521622947330002996276033901464318884752893449204336514895513647221693048838564024040557539566644611105978953005227214733087047873342375112137063520827218742413038165493049888412213339876651886635109843640448370875848057128963074318349076800164698594065552194357637176024442166690583117915520449943494440188561342728344544834352305459189198909501801496595705396169289166906262286495899696965769138812778402647474830955337960098593504935120046984819933904749358697791849253077935547388957348623735757000671100123737549740465837219703291834481060494737237153413147625486511932345518380448033580255432067507985354295936659272448732536086138339193389474033675065643115169304173927474802953486875743219643995652501274025281930746064150435459140354631256687384192349669764093314749151292364203092535596553549828291915955350657777351943411463428568877299508776682286307245128026131673485093752833499515517569966897596954165123505476080880993906352642379489088220789803211358450917322161632177456193367057777271227509477341959229036218558596224947719183612546411968684395364055274879158848471581258735530099368142520388963898151317513747767353523511512281813122872008036478986421347996375945786413021118471884646719499339706967941223671308373387683468742370090713431663923119011732152551115318496472542536304187396919351284936648909948251795929842299017259262548079639718444565418399495642081285463135042909941417077171426964760455246643859845845657097546961055933617932867227017047205166611789264321010001515192748054603147724654729974683137259347033623360042136508133041144164168692660026228463391814078825812945235315096489887027854644954469812943349602154652228022999045321875859249358345426743951203329684841578422316108030621623361373863182131044964996822571749090036353504177495605317823072758766524445022958528814007069472084933767746881838297888822171761913813348596188907379985533890217991194229298499303168870339540723030183224823482803433809144917449404930652261937668121961552228722585683402083692996338104649462132498435041470328956562883608933967824844145583835580539445713064024748061663110424076654644629695126573044763788595835967404396875715462836048082697374072861913618704686334787446050004422182133762953352432318788255197596496005413160134775056473336601118788846664677718651369304493108060879468917313917392822990227710652657843014681603404447845786837967303777241030274213917604258285690431355087898356591063120210416817893879296363637591518329530422945982766604699948113367666891744722547308900440481023301860021502037014108138578664481911337017644207320238944119383292762065622196610559170616598260675446999114909490071305988802644619308304742971120010388871722751500227557645864983141891107150573456647514490065532261243301726897656179940349586411801218600583705150705365391398198045280136941036422283870634953985197637608095212407582318637534717227662833560015657667485396236730470124086111266916222362111509329318600246565924474057542011012060562260785552802406386225153747813228896824059812421691972757355882773810727005137690980631003276973556002689908228251154826315219995226245181566391402063207585968852002246219400456671967614695806467940370744886865002951482733466884967902124646110675472379045210494299187072048040673591872098336377711096409624322830030473632439725684568487641674406195074642659095750663408311577401081557973378568810340204776522649345536283263149358119560521615099349748766609359632002061493111027398161589846791191182688803736660544176339640833375454898272727073622465836397221724841677261447776345518928132730570962159919454186762438878099670128359814933228534156543924282839136579859597810203805800267980827096749011791504746630586896074122645619831338874104473288237017000074108166665624715457047318330633964389197518212413251010155521893966638789644571790005572916007678858974270956283393930856691350851249619281720110950552712328548717335986837245512397968003288123074156928693528516054823306892878577298187255560067467375501265046584491183590445385414270636851290859983977123194399893068856227134198520855909855911484893142489999984514236846496875941048997383975057212045631657336214353584157610139829870783228101325697143984764283546564642240488385805350042488139016531173372640074747435405718604688904916144432819610544330963644836978901058361622643520494059458635381880481610358121278743703740539128516372525798806323471382701310705701551955331389891228665712067356203800932773416874970972148439557587878383919523666604463476857283909071496585756689133519394258460184675425318267083199891389830972417262949155971232411667495109420908518406676693466343114544382069120720712516669340077512256225671458922454919371481434212752382025701280322951585160125776119378574332425626058557525141556126665591045581222804539097129132796196387361455109717439094700546866569291556501151275265127031142040339065253860728934746645281625433229179254569081646097671381432625274608944377050708701762741044770777498279232484072398091357572626889839357176759684127087582426406912650905449135822455740319987439670477785546481727486938695555392386775451530784841567296754200320143519880772547409682156936465495036188661386580470118214082109878201012934968020073005320914714400638347769792418704282695967584973784179013907910528428262868309197582539804242106483737550493228063779143634047518829047444054519179734510396618781792322648498208733233883253965115856922000706281861697507677680274643893886690302966584222209567409124703362169391799822052899260044833077311581586179886862252169848139992025143169142509449181412235476592537165058888298018478136052134746843539004676854957658833135058661488550408178879270435726443097974038791631212905488194501527984535600280068872673523202514102505955136816474073871747015087838197226058558730643155812929680351820229704846326353677441482286684750163003857185251745177321446227831850857032963379568515356472975650588722275509847760170115115046212853947657679249671457348777272412148156716269074934251598308653855501619252506541196656300954221876627657678357910839366384232486185664867558298294531936499708972442199918716391047871179412736993037192317839019915135736235735070005535791896012784507722205839991464965940075257273361330368280739216429845295379410792145933889505434525665549814058213153350514750571173884238384912491126204119485261247845080288318627631779839884503338862344381296583082122454036653443888441725526550006615391237124951808343903223661734457220800546027923230926733418362387893481435647751405767349242340519117328746391852703725865174506095109248114397181636937681098773106203831029889148318397636604386023498249251792693782509383715893253775574643907553816187311812196762682921204396511470198227299951459115336174655985368154340491210338608638982744085022552651997646032567343125922517155097422986425314054535941426078400714500866844820605955279206009323276244750997340123266315242148472573043389033447748765004059418358436722895370695814878722690894772443710925336430600666407332838992680379643927107408141431747833043450837635632216311635124015609141511060489253658528098091498214428350207839064857638183476004477854443592496484064153922544249522740897834365026539602826154924192199256900003851330509430631500939487548081598390616907280782141567754581923858731966397387570732898346737168935876220800585902651173519429799364112277813250321933524553057102338352659725924942719528860187800474439157347890824722526676461585260813138831591188154297337466003450139953087387375084133140397900891726911183661046476485546089578868564484913344487876696035944528286153151884240741785629501685244065950251418200744296046101862748252015748576179451551743333914931599331784475445274981565815933851448169171366222198009220982783939709279013710718448023022594660176358445316743741385575411190419956515837574812186040220738625241672251031471817921342555372835646834736167503553876580033045697724015151013535693762359492662639267410288614862213621824031154921834513807336569054385513109657841078887174527545269200289698667172594222678771990182723431479936043497401984543077512065257279695697362383265380154704439478589932255054423369813359342091154866630336184427130834409574894866543552286599572543540553049623214337337280084728628453834588266431602375754374236220445763145887460996642340557709913922836643814088813373101230670270777437678382694956237744868964674214534038542682719121134093502777935522522101312394635985487430032069387563950879912424400422181114789822217346315924184057131373663484330345365460833880151608959640979033157272182166994849025664624103157238333909271098792783202720976422614669467271486406943070529480785794437288354609521840022628618467579798737425386384946272985799779503541002203203125277282149912699228355312142465748108410972047707848000808224789381075729191263986579915962227406602866022622014639244640908176635219958781829160413291701517237433182780486539366781504974709542034004290723831104670189819811328460611461822176477445287261320425462128633362653359355914204507934176230690119741101337921242585953916617480065824313884137219032870677282360477790048963714330122367220647555408800985846876005544783568905397960320360805751742702928029402800128723495805202029769257641097556489109151317842219037962389882964738936850575462203294836374901930347914650652558670185166391932776122776571145631233338262666998742488980964124296321265742325905040487130729959611276458391906655948143819151286864637531172333196206761940783162861161668852966973665152083767587356755058490424782378001828841967201023139339107306761325700383481794421392929665259587456464336610645665036378060217239307491514318937232084980613085412933867063690873982516901543619007520528862592481408619770124354675919339850313760922916070773020512303460318625407352503994098139646849211554609496336963115818513428270910633797392381487218583072979969458795447988068535610886478316528842902565836722324415546159893772707714031602696792923032371294896888971617511649960551890986656979751661454817159140663404309324279714184932163796961510566434994744592396782960768874474535007573444426612385617660157477126405198380891249158569630190861362448660718070580048125921603644176244019509251738581301565587916419164219430060155798787041671020100566250197851544985565580239592924185707862157740816199531332112152288539445745708140062639696940531582789327090857978812590838074207588743181790856191412611398873811018027874922213307494662387873448792299183130109633227406145127427610881134954745427730251227771124566417002289528514729718561714422556270138669343951351253805931144288976999027051968814659284086961322905785536493955014886043160577747608423851125698199771910986252632456788027026483167342482166962154377123143189356202514809028363664763276825021572599233037522114854883584333651128945269912067295241407331293544813657392103395028603939014568778938249290487597174731379518428072564579879769065623351253556394224043835884564311198845564680603482711766150392272378861916527826140593810543729023148854661628480843595660280353735020122961984662089942193921665976810832269412980136347698450126651069361488018318881295749925957423345855710273183793617030694733056435340668451287958627544023163259139193117772952748589903115891699327057875106791386457572834420865975029572715313105238347743662871810385929942326335320061095853713603870623784315850061166000529047149697286343531943243774931268095260842743796463562820037556538062899485592726070722875527880130977962564403310583807486768172890779323677276198388027050227099583417367125124718097789871217352050117713571759158316898716062351970459426606996920240772965195522877340555494259129868909549906522111781912801735511939936005505087787482028494467996895911705254422078365746376965787936957779874298698339635978163650156401553998794255394984060515220526627983893989930080319868207158573059227136406039997175184881203829268660911486429441307882230946406932188107353390269339613649659691716030958631416901791918344054852017342708562357268207200653727012197525638835378805162409018419638785138598308802974002537314795739054110294556847696702620278948415056488647657546411922947973282670841840281862682765434692053679105069321053677725160120776032230126859099645118780701282727115664119458716383408076877638465141725346225062887016671175377729683801230465881691350443064470863108107180790105040863860551868974914879695675155584461086182979754997525306340508417713483047966718944092284197450823392036452325647020580077238913697740908489988878790484358290942841921708181478847766665381556997858936801538290565246171038762436639730716929921831057384820645031618804644197359139323273397156478724449034434926364255655465143949500137928931146646482395486994026181643842528108600784574076124912403527403088766061508309839535557487131753309841405120414332638691112678181779692608425327403740306421519443709775889465320161347338380832663142201267594776944861625736935656389454284289334709301825409839532838139559386392851842186753542176479999692123011559314644882805465307319901244954865111459821936102831982943438666595119769786182019692735951337435364980988767554329766724674631225653575373366108289714143523664657001304348706515169669213633080052121172065158275596295087894245036219167967337555051970437807217031957545683589261970488807159231145889787637469187716548453227547813187214982971631046550574878592192961764513080400706040827570579755414163916970295973621215079106558032431942283074171420493231572967511555984631078801978970430182160250830554046994152825372190839623079686502704643789447844380139670636102394801782619465971741473238704762054794393092709855095106138410168668752598447569520561214809309740456480539527829696175213525421282571041753758024948369991455805926819755260663850351868178706562208393538605918606551825208936492909733190158382306764507938390035284295509440295916070965403882143058388968654607267995955627947282773826199772204828042437135659216283226723235061856118742648303653289762123379606817071090701861228462387176880065337520082231875256269773115370348941970344137258938503742180690579642174423815350587535375148879058924294152869455211859320056452316580219207410153836733645378137177097297873430211768100289793789705888841841345310148581012771134197646842798721671416088814502802681588385900717345143518508999791141891658440358497344906169042437997521865069435660823054726277764778144626487548241966458344785234457314051980379599785456250425918119340552737851884466008939130910282190813452380500122022988377026801872908212218030911407005544136637640137367171794613088568278833893322744708410592633839145722895385356318048732597109676103769508207903359906927168044906521533288821870994898228957850218603390518218581296581646914710741366144426868980026278305354359996669333542759691495897110268227077725617311875975875704392241608185385075782632368010082270823123035908908717917510512761117738880993705536033101742666150670478937314697743775268465895430344439439667291399626430722385568966122983191470693378169383343604436560185887242067910687888592308722243714210378362122528881510117343128106917579664043469646442269052569924371619284330558704390145415396590684319848230193544570808015058361739662277769600094838002550950776304106438697952600084504337571750949302420790736859016863215628852822665924932621108331647959385861094828018180411969830163990769284229123062496762787962572028453757693937427285106309307793362000474377720600206177184096108681559981027164129406605079851119956252410447437394667705785367517444514834312853362069401298643873189910498983316221684833009189006096877723858070042021730128789291234444902925364731869691714464372855837426432981322893946405145624683080012233796879422110818471780191161148736888812771490010883320800185261731132633101760625601117999494963835092911333437599322604159695402994142260490318183121801432574364367644112813418178872886447784189440094361458768612595696728691383011323461110336218244639882895685939451697136149273454951146735181417061736379276590761234891924933681313803080017888926629365349120936967303276633514139811457422825187922579433687825127297565274313157710324341472217461552542310920836993328143770274129310142841307393821110537361085814659976778990794084039326265048872603854950259852380104605064821474712649173822285169519507107062868608571435770797380837167819974858251184707166427316541109427988969916060450400481127776987535545190143643364420610739667009090909843086237452892336421827112865104653710059131914731578517599822185245009946341752924080051099187335565043231265177822539007937931618858715150721621198747195655086264770572934801268337192180375574734482970837717820708399944889308476011433892911993074704841665744678234044673657634603769399399720194256189643544852359676185839123282333344837180728965022745930164965605672241134068107453094662334363788089401946954242230466127621839777253886563802331836448707138904990821992770821020194422983656572323238474660209113247774586574542003329455177096663654710613922341279476517947654012116944808750352268176413962125253791459105885429634985741555453492697557874703010039888561402666254878483969413705700488108811131231170806468882044995347252489629213889331365320548939688367473351026643563845166735745302937221038084693448367639421653470977885468265149901696341992465506236146227381357577435095356912082499031305016277195602775003797061679120693158220780729236231498781883114004201199116530662631854369586181961419328746597932876252789242468534081944913167288863337486604218314203811199569911502276707800578563171620285073551869261138184790926264906631526713006549857366378975968710040700040607592194915857662215181030282965087146080467190260149228912011829870382701948001749206586344125898588731765248823578172984541732579936168433581282502176343816700940313411205701044196187302519973018309871014771981378415327590896503830250881426090009415457086628109103998156403718202920406811785935766541585581523338845627379734130928829570574068626692248366517427006597875238797655430086092694468198505887827939668061186464233312470792256657929171357654811454352535519938708272264126684274571554938203627762759225172374227605947060548394930858763595979454196062527045572961233325823575273604147959020878663290651474724126730134787071786011543847928441792275423024400539491000545060325063260085314383013580226654816525269420251519884775065465691976141475086561025217591866170000956309973411756623225713005051951124518202405365663324193445002786857756593528718302908962407580396619824742024155500866854476935472113331715756959878810961658191558250537984835987347414816776708489403080268558220295949979545119340099065207250564024690563300807340832466112478528248367947861964441149204675602522869304907079514432439419258152310282820999569393877699793800809911112094544585868772278406538440385988716297966280659947218266636781960347786626525566161044718255453980479523665783979380697231364043579610143370219468247815026907759852677010683518458065798244923418005946858454220112392259582971962879421203383313951304457922520548301903657989918358636784420891947915284414923985338713392683853372232961572175335962846858493664926679317253108526872044447624579531869526171442206426301842799779310796647943437666238697144184604209295420924200106940877134838754631344295145562260707121141154339585146713481770114887002633861614955546778784934942270776325495483004891462864119727974310741693871063602400409868356775614817923530930511569870653721072567372378700570524282061085359656503063866388890256388877526105429402033792095179929064227941180065709145020391916056621604930858773101715848824514882698078501528822675765831512710614914347606940164329820545824111463877385706061163664663197846791095314779301141358154607134477389670778248358598753086615906914281917847554489628658028247331948015451669121205720094320178578143109609448605828915967177810220843878359325935521869720281989648297452638726509050385002803117668155842586568390804043924436615412933849428161754639353120777780969242694976133720775711958806055522511996935580257940999822028567250916907511167792792921531927357340726540394139693436544110969619279069413118368103919591199474147886579093798230988393610322564962026874878042059465073994313527757792106760367159307786180704375758513077289612376005942391842324438579060574283627060309429341853849810218979933302110378738112567737829964051953162680546191277490596506514843712854605569240711821433338877096476449454358913419142818032044538504693616427562429417073028173789164579504329812514057021060229926457143712671520704290244523391476313239713470849308411150482853562053816851724318099550904860537271251855737818280324519275927490514226123782655108827700231625858263982393060740906774077384537487334404238541955493388708486854674702813382986764652748458617182396881819721980414173673366364916367340106633874147225303802493851503669880571390771876528626805157581375737138881710116242305769763312743716612885207898625662797379998174589916416083895746477681803014512190215967910782257261307114878461766394943129756061315757615218577933100643831739120718726375883382688308008667284534977534843443428394640637262482854477147670338677681703005751535729012060178744041442828181996761459493606069112636914735291541920799097259479424057203672003308928499505021626872954041917002706287652140348472104234182090975335599693416753969945415158268153060996634204675165403294406089284968073099681596875424400387371981283102980320127309719380476127690817953593289038493646751730211090461615510699829934160074676657426499944586419996348696740102832885322906358569815167112900478661150722232724994062456326997391418907608423106117836176599616091970218145475433812473838510471972087109709781934906921929806665472688067492890994045717367436955408798353965482351981541822219685312235260125945173463674938826578188771782207039647009863646201102092508088073332819417195401095399203390636793179532970664596109900023142260643127430697616468882209904704965601603268157512490416411493263057160052941221036431635365633972008022559389852561918363685448726121163024136853416343265577281695528215727032106808869605002409795562899563300203550151947325095132298727003896429951485964737783818533812209486685636246788962133142012025278103412026532485709103451372066162054278060394927508172538639876874142378208502801141186145904714256968037789723482797100048319958311153067242074877451666700312530652081977245489808598495231128767844720945219828372783891465851353858882321717052029322982968439452684404461284566979608440141778011685673831415792951244985597183691840321428119490573378610902966637902950624610878337165338378041587049435273741420306525792240323149767099323329098216278017192943099990950235771018817621495271411670903771018097615418759547553719378036378445201079087760207462047244514974599521797282276740677790011485174283461888044450181501527398772024367724956695884478820437107786508516451103837208053637774501280669052119714634349143230500316968553071266198565643934061736045765157558856602286107239262079036161104756319238421780987208083804266692523704528306912838885558869145732550232155679998887693206125158113915271746269177423017796954193168257575635063051033364724767595286430089463943958993903149576011982067780039350839342266455443569117036534674000538819506151832371811406124914973399216537568424540637507546252131651883565669221295032978807677751998400575430501548596378674044643870048657566761041414487871812552302437681981528798700302278954639216887320722005109495671509081602576278602854287395185120201048115262027384692555985166261410703030851232968703965673538754343089019090373713903997208116304723314884007377087728711547577863228252229152941230584365979417205796140242216235626456718640389329365799691340083759077802717111779151247786563332941446813705855409888682013553215842609727262634869482794634335385496991228423629729940022624732504153943580267342717506362432129931695931651576401649758603989169840759964912534604217967991520240089996829903598818954998732989021047886846495052015568294964646096095561413739630800688367192350034266224679973047708644246099527040479436912741956403082691674365474362283047701678753847034968072222000525550620285964088821384861252828612031199153177966786992126367936847873229309115378545775347544044472911138801702506821245090082330721498858269875761635058960540357144553008101108706969693492362431355359912315574842153223938715309084022234003141598253490062315394976447831557165591225842968899188052770859498517351766581516209157302328566679744504354707124786910882815558206214593355778184118343086261739874918400689091847188811830910038874340782571965466128978158750750797311425750159751904589028695421890901872960103420387231579878834636215440469370796496212604529585741325250443837330406510315358739927391935057347131458160177535670636666802141543086944606488929149295203761337509641425378880170610256327167700917534849655477050493495449157750221536264555935623010632712417620887179276173688967130149236634716836506131832006664794271685311859810716966378119762797635972256646103300331643669607160448164013328303537707199386617112927355925486018602820721843115852709610381276345607363903711223164404691002364942287774763220320131357230173899061101691434640580284897599384983500217594624712842443728241545800158481052510109884377803731372708052782814285070950225393561087390037968619379395527208066856861067182763049349547161115150795572914335229321723627577196276032220292679156575080886246360793518676811113226480918964044201130246959755044498941711078021410925692648872361776535709971707114540745646168085432363195266411302074393352321977381923798644695445966191401349609224464383658287181942974455294636134721325118222900479953989755076404700022711425108622318166324652386692014686182562248827415062302635454117155254319017280873028216945963912207594595517612924691839912799643841856656645695802677253772770675193070160473207387449116991025546992793641244604735242282839566565150635208556466989595430106367311298423486758205981244951231281889917185759097337084912826529375262595897393977848050716127648628120969031612377884898987904811451283179451811759326457954751529586997442711703710192915975346505688285560993623372383790841029750207308445074137591355963123503884958819258800004844856469144849514406587680686047180429316924430848987764847347735109556403070535457893392878273318510296635628840178972770961773881726180703843373466069763783074371683004446363112102126337726444496522329596896261978126103807608497168882510606408103538343525125953408712705746833432530019517704212247060900122311434566262910917465921326499410374317002628087616338693427346676614150934091591079090263107288246622682091181461609847457101800422518759759240719284697268164156471028428709509259939953192407838373016903295513126203271845301804569529338147772571867240387989270614056224742388208731236009829193657357219098428104963930320706846536773756591361937111375809106962992627215349241444588744310147906739738026868809061376521985534076893027885856696284703532451512953676330766448759435468572069387274791740547953481958766394934576376641501983691056684665358755129012369742569368334545458989259170536020891387330096505245733516454853923523187762870656278526986200054315405808737392813488807194363869959641611024304915235523681178117055114379589063009489667739438737386156762947806802049076080757446668372971791483239598786006921776136097408414199478418001167078343579349473238341573416267989726872290632239021946923167364131757436122109536842530278928626535291451202504724880975902322404964752522732250010435927417456841324293043128218509815283247393455369787544038268481410824958443355008287663728444815457174760550069671800301954845720960571966100311168166203724923477680517895687803249468647375235920967019911821574024610320376014801667645921059620256707610340933862134324296462454877838063767385184724153229380646000433932918160267154990156861597654088816165196430470651151343837133539113778018349919701824559577607429017374901890808491677496993039132601728493943320403316741447773274258260393555790468090767314381572797391958467031800628343757882466987860369557957710265064347674135558324375823657861268277118117739765088835951824612959861768019462315970649969414576256279214728145647448438060511076088785638651515932653132586037514203953073071636106313589952216453968233630931860365019911217380116812035128861604684241650671825584645363984598567802054449604216871101748577617037645564984027808157370499571963415761422745574352526355329001911188999384803564110705737458051155154417717144395504042103856846906267261683593379108230725304368155038540935334368177377932094301949165967304824331518149747273256609424018812713095081016619661767479987732780328000926943988811930984551484805630122088758333234174293052639819222766751147915557909520281857008328462534555754908104910457519875279315125307622747026352800087512323486912507102989533892347023759083605018378444094643079799233169189536188834175961757038459551935866874139919367194122182542344248151609603133943317268470660991793091483531603182641033144389483349842421157856946649746728415414566148933872500416254478277791554755414080473504476141987353074641260234125227626250884671717079353080757917848327677191295139280363243998076634437583990262437636339559275832117374143549047547618954992430145501212633946925044878964204165524408933152328681931983480882874197146473879965546678719814003592401369974534901103935352176563882198438389239528647793115351071413186151240542694163989419896541752416981727968450209953273851355037618537292297820796114013014400904656743549289179398942605540358654391863855750449596177140817866021844287959847375910781110568778331340026471827709734075222239620166510232919368322947279190928358658906216230159721954676972011032896483966888372111372103706098560513367536350481264554856053719104497463256511133727544892857969424571429410367033454015172680247117969947127738640999132792360730551734943724027354923935539667781918207710979865812416987599507641442311688674748107869047290033522265664908652705361882065190855174762929497930190884685257566598486840213520266829703460255497207904202121422136219924888220785723686779882003161906871890989972643290117604149438638250294906989299973723724685043565362262398617212940200996145762397985433586107232762821596414285472454902718590460389573409851343002307743174191900184318097779306213644219751136474828230139477769368391942393407893318879050081631645800713658101446250580861020311873500314109237108101256630276863815683110752850666796995203340804887323571633702738149935880541839774995412265148707380315964948314700483892831343195654109524007274008591644870842787003730324246489770147226550461437903362055617254322326211013293006090391730569080699405028191098111496364920874500427100857415284674734766977919462248787436079659455933226640987782442282761979057222146021963000423630453447802839499222991354580343530014851286395693554543529927258304759493261568720097910001605030220164886332030095486313400713367371214598402497063129660923965678710950619479804751578951802640609638221677477524006802855917386714568585040503075928302287090650805824334329954664214454862002173336404913444334554379577002260540336878297789666501946322617628823777711133435294346608499502806256110154894039946220174911136296180614257139742367668067168507248535800403184904042105421444578515708741383348266750319145178908046185665771313448797119892777040364094545204865282639398332246822778456826897451363098150224500517588898878434291657582513373750655193201021518770559027430894381763541355413223715688145988731436450407347803954324591183046969993664836828668201565672426146984680617777382204868983486100063315055932861903192366914993660672289230526000345671523078231898609868182690481613381835419467526030786077780257669626550629521914544389498736765597785823706666810690129685616533224316225946994302975542772467393268067322636034013591202259040343708690190964276170058857546984363606649694510327113617454252871968307331721671832801520087056136466516612117417262444962232272745562794421694032921985057562737384438418363107134139518032534751037125571677752706638891488302764689096008861223874137506649059822150927539181465751648190359274098159393616084983638215575681210160889595600398094246017291875828744261848973281555225240744903099169637631792991260439068172527005033455075456343149836010902005465210955371835814957402431677187922932237600484274115448057580741679991630475377311087687389359058058504955042413475396580258958102719366561773109587645469165447927436650378477517614086299127984517181825720770555667846659573921461601606612097179879125699006215945051212536388157717985117368410026969898750517479473477373894773790722786123949014736407796891596920442007189416273229978235431415969008734659011155842339544460542926654573643448045570241962865922160872568123157696379771502311307209407764230996838320143149775470048469158257875531233598224194649641617658178227191526353110213685326369567277417457144527671066119105724577951922094417033851049581149614187621892219969925140216977941396024257436515883031289934491755980732582120577283144008768498365511539630147272936280299173980317000552925177539159432534398499053122239778739207168299163999966294684684812367920149643939572993559048571873678085372157416789380197551628025834605942004992653481773253156501142647051918606986116947298486159297171655218403016394748988679564369605068442166537856500853819597172259428088774598342079117192064735922427624129747331146275996206766915295356337787898740506874635519733773643410763002145450098648188913187467608572701019901541521932883998646234655620615938761341278586937800442019056487483445843025445181341129023443326205515604857592614099727256736623694654059930476359008756049505167448612717650813665734087710264894583290955208403445580621766167065039162490143126650840579134238198116666927334563263193573580784425755655311289416454838751215847760410514568751724265478901329957261033520636907044831712173761825974989568512136381122451612506055255208464667788537985039935689621356230400185099100436043066183642906264735513854745139697766231428808260230736384037567578175702219938593610731958237871422391506156403066401317951402365379651447276059927036319427642227422124007234160511244394386231637505037170685232466371874452717151596370986540241539733283770175675460960152710839762409723254620403658583859840461320929259455506560691939951973328793893305153273641531738240248826748111978179892547804328794207741704220436227591642673496604998629002228382618348766769421798559874477015461032196803455271557435610421360672170204657570148261257029805055673825105352281848872163479954529076362354917211616958128926734760269817433254353787459252380087421001811020054398968744557139611051361272583879922317059329303813349420550829812982311151664551347909478674374547899130390977654829988211181167746319656514132186682824274190004843503693013953958221102173959898293233678489105763589349673336259615261319393208207871309362707521849157591389807532124453321604664494993048148819783691816643389864373340076293245691266387361591313461883413946610972311113962839900085589032600361669427735153639481626861522660216733630393317081525289217863629931849856055005120688525845995249690784061788992321703511039274325295453591952461192679180115398581558297259742412195285785215603659717281938079027478784560130477771175034577137491953607520450659972672750682134558828797992923662299445132207926508519145623269884254619145590805789061438195823714784225129553393756361409911202640526518015431244139031300156226405987229157999342276177764946668864532754236587711808277478747656874819021957832885319919393936398907117786977020398542369384647540754225556275877678986752905549980803754940743058950425783723427900454786459805636130211850239231036231453724010333040386857103173474160101150207791211529421444722710487997940567010943840466586916715648270585931173374564349991964568052976213473517207280306903160072739214836856273725492480128378190029851719488051401234310979521000295232842966432458347853181658416399033689592950632705359751391109011786388852517582368458057305079112666449015992286742570417027104428596556462930753303022584212195166190653840613072939324972445440667337876703496685793888285127386715344100579524058040662836543858769044840708243556108047655836603065087380301229814813914200111625751910649319596825219738508834115198261901074303553264550153553953879168683139097688964125359345032491999612494414508591085938307705503603263535332612934499740025504731157733256817560210002670557718054648987887237992883651102669346436478550184883341281782695931987147359095946649541759751135608533005835633649219726460944466162354843213919415591847620302497005581548430117376569827738705477291253205594982610422473683173983102761371644738131287343492742027263725477768096953840062008014209910041088771979967198742831934337497167568393482095225747661035389394556942709699726503442594798813497448745496867023701692873634956190342940017787391184547132995742979250056322179480485369087440963230443865541797386469534084158680230419996378153110171500757493681753607038819929098580371091414047980914653673025522220682010543576816339372132239538987375086500725103878482811945179943541799983866110177218386344795485015977114435181632123635544750624012410460129589157790252907815124560781151207492813155768169434199205956190158807766887119465750958817869658872281659211045755258470833766644363813991115054768651571784264121024436926317574632225016655755422124998892688032965099503044351591298277970703028684777110738153663975636764700903356012282360495355147970804252411977573614382338621992162976254729287493739375288911943212038302573060697238753351446854082501076213762387685886950894511540665686504727758871263450867799695367754947101011235861341620353110933256922516813304404567811785801870798260445745350702016948056905155499159769590688070291359926520354250294958608012611179557087528171594718136430617782656422895518744378628032746480039125124971606416454550482790504604448707644653277861420526619593401121423802381526917040033454978304614469317583410377209099317039534101333711256524961007573636909838252118781081059672720656358629302596555637128036817933385201024256974353751951583137430790288420686386839044912897145559065108890382255507680689440750604822046752768786620319688158850036830608904142054147458044587457400994114467857959499761309911912496235511201128126875901880176017655253175778789197850482995913809074129496540394936694699594680251786568081270554827338109541017470902830934871101265336841925646880438203727621604154530741438202101829454789137793966744582916770823771785523057285475753600153808063094472264464412447039366708276966134166241616259385078360672876700864447547928318113822102768485881608256123889719735452312988709620589060472010799196272493728429643204682057704461517071746877303963665970283323461470124169364722819758133821959481478758118040037993724222976000554586858297910179484091651335559404915630854706061013448807471458107155590755087170253247126341479883027914202612345945352367921550435336856464188258930433409472611551472765387838578427935889660108055478354955086590929426982377228644916606977804162759841281443209550069384689299073172287860277449158361103171847665647130083945283261767809316713506738266024698656778232369761204091669827470976498048329197433699434403958803679324490674153777598730038123247825887148115578564151060087924678247269234237318422607503171228068096593024708205975345009972877760606208615720282131011316781149365036477163819720570460049926761220431147602547938437297561122723461145673179433322979081882350388025131920791029839341462115811611393614699668646947878789979811855468605304583847071058850981119454017483685894101225480226918244266747095102221186674015491266487259578191009620108706001197842869145879240401400675352710498279987360707817767366228321410576528870962262148020370382093861553854128678831376547263434751616687291613061518639405348657146961403240500338730472396873720745577121004843729007913508187751821946825406301852863144057894469999165989199680322767028359518073203375169167159063621558264729206393882981701585494834544861276714929819846881662625012923615696432252930333967631402204535021862268017594285522606576640449131686954899725368827932900514494261724118932143886780756451384585378790789273003282926786270157300757629058497708143846512525447840428019670361945386109006351199488111973951636848000303796658618275500281956359426843254606216284911236569456526500908177097018193505195553462929490025011517612739997723468910966791640910352892838461786900679564992949398923547050318679026595073471959828786809992534692025200614549166917029047460743416859627147153034120475752323345712452594499945433094126813936872593524660615897131082612134460975856189194149310936908188820606599064580471035748284065132747397176460141220315093619721632766366818536934442159340000891888524629607397615798545586299355133463295135662401768747773677563975891288351741890060157823486476550063352297154832165785811553582434985011762309966321045608356182515217185453568087212753873328527529557755389746091504360887399309697588647778324572631681014070457626500824706219293205430269035521433620937474841042096327103471178876036841969793341702948128257009307595412019120251047508186296214777493845077560755487304561878995660495208828805233957416630211617464681592429918519841984737702042500247473980285187570611801500161477931924571053504559257456092176768552504417281628704884856822983594102947553368678823382812933684463341787381690343371655240490128203896479707919927678643771758030721151331786381263829619004503548366211903406265675874565050023763734764374747629726395668909368295001763469865952137165040655529083514453946293637328825326486389850738810183508452961577569439928493571148315807775690309092965107847517047508907169706442219309422430044156272479558632808288857855891490891308234377069529317924971858160072847533147399438715612376983045022125213189688356640262502654826787956688840219025697851481920368306878221841750277514570352898086928570716331668041590414150158854546752728111180559083788016080545589143416775161096825147131200455043639376224822347265411531701968220697523988769164784561945618353665315786646552169412619096239030114039388539553908859230917694341948058478504859633867778081119772370824723567608071840088795109821204111463059616436176210634899640614197331204019433911831206034887310984392164784998420709683644581639408327172179187334068236308616814182891063523686452564710054062007340582251770350766987046644125072615653275769245193687624674989982931063192390233343015454518253251449499083387208261906282254803121315305041734500785558372650818524827832761159668426799825262751264352362772612637787964066988964429193365628007551542417710813266133820845295689748158436945109668559863378693582193719523141661296620680170067352534060022788020597958484811818697239356295034934189084618370114522897854452959120317908064993079115271148891634059405194238271155320282410898346964713391679650003211339645414263203101246709157793414585857583309233634988053021909964706043829168606981640554542130977437294982244634493356784750319547240869921369171536063768904555308639636872413236860402945150173687178399757592553318252972027398603947586298314034521012650466355353244897347928596179469804237037356859651159271202640596345524424926750351613619474759180693946964178897152194323018253562379256573529874128190306437029981444693296099088781281110310649948589988155112901301919780263918437804166927459901775493312008015498444753295259872922529485956250336597291328584769307619521443382667799589919846593006314949901769182608729200616356338694437302757099240841113606264203724743860714991973287631354685920989514913096643258335987417124611153411316796389359769767840237762197180879218133100283135385048965245624095776962653203088899012303965703929701763161439986169988027369369411942439531842962590094500370285045807073390393735440715249220728190858637060218178387067657001815880342486816321298464321415272957015890350242622622905687658075669257192285284710827664832887075625032632864544689889031286337476024127627265338500894313537388695357525388422083293947277388139501431258626448471735043325728900558458812325276967840083241083305829543573338108381824117049610329983716437699375101037517666201349057221194755579544696653887522414043711850966687529804159055656460125339829060959250549121154568567169250282446276630681405531208538885375626313168389716607735830943477205861898039483987809062891966413846823604256062587791329784802370226002341784047547081364525714375052996769294914575135217863056170166545834680855949887817451559560926459767497757994258978825685154139520899241704386173661136950733188863372085191479498776010601211690925673585913938361180927415034956087034730514670792281146540723127327323190296457090309411503358176018872885182979036487750986634245109508864232026035610641134236036351651533359695763891573822560498883521086715970728195551570493308352216644396755107412234462992628958583715283833364545369741655815686238089692137561641008069565449508186518393638486912580225485592852751349823810105216049405642237361715288201895942736311476980569136147600654975147430212351958472921643974938970091742913871964578446339318080349264879729355475417439406187306609319003108013892109265709746548024104104020514682896554547771031270192183993273573459615221332552856969115368210671538395425255462751536869918276921143214774443446513244259648668656327165743746623978330325539321001501448714078149657837674334719033927919734400777618303372281378777019373043597069840439613476270789282480645773428044912560356465307363307200536830488236558129491758177675506122088201903735067785653881941975072819993555554777997946563901719911061622382073785943172607441758281535585509714042426351787300897052735082843311026042030165250229499321473289203636930714518483260768986469230662413874828844732954348245733651303177896360452368060135034796776884290369768267034606780885551380440649180611212622596563546593148626873920469355338585768743654755748038035786743306795568363005853941410858800825862010873829983599532260430761931099168957456036938100127542654048540874715332531218732836798275785993185819490318361334785708817706964828836748677844040147398055282147646433889376770174781319144775075666092120930264875095746180648276884980182743250759465781461311168171100650698497901753679149053415674636773761284349224501700763552880122152127155305823923891470329987115710932814733938206767506944408216808071940889437643610545009738107658107320393191183072778745423622005062038292262459223979859739808118355492293890211387090926360018530989681763219446253260131245154227491118130706881211030238945747524713897385250883334990657166095938098910938159523169305089049679672813610013037807333734046731470292421063275457851624017393050825441608367226071029821192091012679769157018530963736534835288522502431179695937621196151812339866664431914721386927505004783223116616506270854241200127560367541923943269840157381289744482894677926195154669634829674156038119193309848916946701394152285801390950476537007200750603278829312151563367644783268587956661997944288938119004455733249392929071282785852889307951180815968601608371371573757941966532298752664860079525979166360006075154727470352780649351576510543235157965769315741730660598861933891022665730354861543984677405137971155807943979371739872501099239598106314988381319813373899154534688262816138303748943876916413204773159316285398149606362747740187561788062409710701553723113308201278095609315740832121521171407839296830496930680553184275243920713269113653828069169279277617755971895738811062144766415893109136899066595294358021960215558155797906873150303918363682805840231779265796029536422731713636901550684726550553013467726790357884685802556259242851112685491958702623931933301403136334071426598401723100115981305951949080915946462620357671263811647491516265185133833502300762842132766961418991231703489371786298004978913834475233896208815751000042103293703011658105047008614136859323698798921377513977614354790693925168457534086446513459127817641251692831846560161587037037479882504356447905569119560828353551649483618551409122179866485851195814086760140305987612749907411040005498510680104907906753805429244706112021879385971906287347879676228267592858855176608105614760208752492413556526661749276132948027968756347625537992809420425669629780863320070473388650779838626755867730923794794578000611881331452751734848249555422292807846716728039065442913628313992136570285639007117589865221584570135766798311956673046206215138945629137100722143585656280783923445652168291632584395583872124301305119808633929760080936376038256373063774167816564860707967884923649664573830917033131503948244607948293792113868237647677927319337864085483748331330653654594513596029309874934374990995358493694248096742428064825293447407275922089159884602256389275937740267078669232138457882716092433665012908882698860580757558396825039386447496229009257138268439737682738341197571989636938015579167130503349597816770459462453387317740457203275373230042656520996313343685735908544153421185681581957517633613084395273566282939767550405977397258867602049029070708053249904741271300483999070409224054619215727625791975989592046214189057393699788046552800951167625992762681830806312821477279641746514419707194438952891635480814034146154149830012848345377100325139518083446048155740247179014186476018471970066140177417278416597210749042688862514452602305924643280389569937399794862281176600848963124179554738430202944001666820452667418096564115171379753403742686283942308312682757008221582281524297205043723629904906054029209002509319762794643527937278431733001472688607446084773079981188623619987192991050088663587301362422985795830025520976999815305001503489657746421572357339408925512252577494599370845774420803640761180760390806381925383396876536296684291778028132067385693016141037718216808966920951071123165981561913493066443275973701386115149356783922503365861444154217295066356862920372556708192105224357307626708053790546696134803375053967000743666722581489262842193115329627230999101311961609787138031237910284624730446523542692750339674992394145038765046156269923307731145387523290558270069326463551718030181989241427441773678255957995159001198683457797142127276008017420345466226878873758219977337695542227264176198139335073225736026036970415355883196363325653199445316836013319285784755570555247256009553483834786728184580973953895425145455445432845150967253142885249667991128414001183810631303354724545425125665875884236492643579569071763485281846722218225114701532966669055585950416555521194427681131988644764047183178201652443135063930855650287641169679670732031712707995627279904699556752119318333774359383532198248348646352690978115109905723751584988049954483113839788545630603297628151959185527811663900467858693293260112383170260864751135573209128792397707667079885975335466222289112395139192805432735172797359575376364615866499564385135517475798573981621415072028414883118325545937779181742346208094042396755310823292629978925585726426396282867763883726807261731305637415796134632686996026338656827069143142134421499594220902446836754362927247899820662233725661206807685237448856142133839316017637904407083998158097345177544033456178745175178244825478828010267829734503938831139218804597031448931801660607099097945286853471486453516653083195937525397587841280230773029588780013288842779160683348688033502323099337298439558001044572313084351512195527408739201481739656496024713974258142096629429754561357545585575480979377109284234889946551863319878383284170805166904469184883819117454079738197536171907961273449181242952580481977897518707348057974541573169212826702549401563075209671806794610591436590143671065633928906439538659580800486883256957941023864049474939714624944453320492154490130828600654970015797878972708308560045760247336436254091192396049652469679296398879264611047885548878089003962069904768535662946729763545595137013345059223485489263420628198489591587690837403661511175869996186820738005619840742189568989958303323617077696377944289855474006983944601510752234334763286042658145144805549565414953748990148224751969107829993479525709108225708734021607457590337352471287928429604945293825852156807953335617843585154160760581449020407229097151168165756592989735660228406106658444660412119170111837356327112580296980415536367283650652717723959251425935367350120229550858328759170327256251013271275836356310858342344774102501681103452581523782170973506474367048771367028235893962392877790264794876813233388060339164820158369380763521559697259286675155888774165153074732013498573732257499533246724419771106995519721522964367076117270208125761652286067414900107939130168979844023905958663537210724443496943340152266799710683250642407636617087493261435280791742687209108496831492746926240938471766875968859562073662540602382782005535954762006976613939890627331985694977083715926666580285199140550472471192948734900832044755405983223628644006919994900927300564964086449621298547878709296233135400629788691113768205344259655860702085521889887590739508972728072259849541305336328138446903809896266218164829341768183860952322462485494671162680337872585808947123059085314095159993753918966027560112979991912022252122098847714363413664263656247301618607608406835829422522460138210210766986134521844400303931195114203795510376337918238194868237502380179774535525158097044003969205880013968865454870295666397277834269080757560034003321012644904325973283753087044021085105345806324371855774806857261532585673567917176264970277416559859026813004242408287292905602577370042903053882432341205749402173720997483582693159405068021418844240340693144691401774997840591240050214885274391790366831878419141418990587248406194127787307797228529715105745689453756595112884617808646674846802480470117732587437641592032957686441060202491973130828102906196622428362185976943107923755298592541595055819331435969552990043422771209046552309431931371552176701409181530853942701255220738511736591152625919567896024882160714569751533103117449325909039134698596228458293235685204588920421544676112664135446295558956651608955290415297706091826722639114733935352343845602799333036729729562782492603632733024505674166287676958163893620476743520116881950356084557555941338530516837664512329072561834893280915336986898612689940316068543755590917603250629777358822653694469393070713801464723967565087250416693161755105655217316155993404592738605118071685352853756709802043447560488983421400371423928661250364298834722898804274271390383193935645755294506694283447419431744326871871988338271211212081876173819667409128753169952205851208743304581549737188798885265540913758676685165884366966723920387135235898953864696839168528992776982055055507744602039428129814202769728666631898184933336148490822714727324091179466607124887541488461172505179347237132290081254233634169294699289441314451633169996634944735128726382815535453989593696858179203338914618621930132450673099921521173227436067791677375533212819233035083580501541748601882217550610598956731105447605620335478610481819039336871990885473645910745809709071334244802300384660108259332296789777770620324135415975845437339716406337338074446456805367897979958425554956014887448434689197336655142550034994006546829514835256166583205649768569167492339955177228964501406551330048208798784227185828270670271373113710533297763972827993575126750619154829915166540205117470373626356213344263725891469745877396929961999656625056672733916284846966103083716789891984270617104587067183224363322858999395668542008902951770079344192538335509348920735374033698856566172624884109060840444365869972635218047581082865033218297611930505746111419943240648992523799177157963697108890258625304925931953799295857392955841009173566830724585933317819422874779858041334803516199910000033284061595968073582535849690172117774211088290848454608327140575685678479416082206011376091860360839970455635850525884827771063477582017193541366255857941811984140858520944944659346230578739398720266615696350148225630444261464659844086713820514318975520888387853472574313653178744917465274867325936240749513725501900633944321391134344706554505526691654404912350239703706300920733635199970336162711851361471971920865762275233264370941545012763539225854596534875971128973633140314111604960485678155087113630966485230189035212119406982725137597128399878456415054962739454752860069794482702103980688306627260800272070533676174593861026507240434911503118522834649423550757417220008068946828392741943709514961525694888302846767591439276550083011248020779081175987314064506628892371417202819598764340107710704341404362333853872526063610590051294370941685774524958326051628757525900465948385222501140436987697240410400781840450775850765476151263106948713668217174771104139368170074771506735360996703028160117551271847068804738894697632543579749765025869068772865436740886952852933831290298531974670378607893324500484359111743939434278871760163009666846379311237462856454810179604395691937659688474076246182340951246256024793038558936312705052427524327164297489713836577487615640376623269708369586599723313058641190472097873426513371992689344932507006885347038325251210627446445551894327512077378394164956539424376171563745210791500979856998982955775132456786189244527642638280549780613483941828177350306793104095448664807150729062604055201452084359557052703160456214992500420002303462033058273821811413629677189861237550899953463845273448098422348235746020228070299990651192802108695193139005773312498331607596160679834328265319889839997696419402526616347621580995885111344615270073986506344933536692911061830627115580917635159314220587347292035234409461125780480563888226575131244687856621220731880686712679531311811733965050781677785856105097300580740675999804579322714842597831756372745490387412356948762437964705548197125577187359234600830173256562595133019684943212073542254268617413228859723308861589189215943801112094084890402369767072823442609135365746498129330764912870368339066807347802181822942165389771726282116897504101219784050047484810870927273630280650966571581043898886107985144078908051913113756635166673068778911291679622810781072201875371599187724878305479631628342191161040496891092155850517837178512811506064100266537018994672296136351950382938925528011137925449978678844977923636193196991608091843318342640716100825769337665020050538543227854329656825874631589922745207490826566782558340819924586654217003103612123276186378914482239902159185478198051576419174522379908904032382839701973869131172159981854270806269176053800290569689677509791276422901543141356606203434141561435898074970442333897003023997221278090454509773659537020295463801864588962311869435009255742927800289067555347673560453283729284365356020287921978470705503904753904078055517261285403429431440730780033053979915323726068512058783050314549374698580205880430535572995802029623494245854519054070515418216591976686731062035462630562824112669875627875608085627537870146240363371998123412006148057925166483322076037122010858068475889352783855732669879326593406763800649353413069856271701714282718846106095637450486518778641821347991620817953600267836422882838895944152118852377737826851785373822906758470711712223594163136172620939808923042917735661963164287025147760222758014073830586070915969200060625780788820580857186522265013698768675554772487813899098571563772959016834062274178795354565988186917172280696706934015180503631470229628782003494892223074946495252696565706929560823880991958379772227016633911424583874871272293285130405622443595948685087192886913608133613125618906897957425885491619912432621665310122700265704014545596633970662214276802100714163641831962166275453366964708827745520088827962036384547519340896579398995272330024360082007924737913210953900927503900698005203025616594198193049776677128606877862348580126565083090853760339812212857590863290573054953002333952622017473693381298607327070388708962915861376791266190285637786170789971637421345231588168161988045170154102360719712249023981696420411272111490963311704275831735991149500639207737331194839790544909186531991125620011354206192352261234231423152428971566071709437835321593716396917523156266549667709377867139930158266459002833042119878493552449460143555212621248301999635579159395178690138164942601607471589975964546641720441290454666015557227086007045705490724193352354815051346992919342761034870195734028494706590627128262453283910366713749541750264044473407738280854601600366310866891595645293287166713668843984557876351573048493464582559175263369030829587658323083955931798968252257060349600918971988264363701944475330131707738902051268705520397014886446189131790309102532924468925450327192753124728616805137181988951626432923525992527232930877767178993151730402690344774245631104990976481088060267564478983512705851924737122282905232053307220233493760699104098305309333609524813598529345642109792054305945164017518230675826153812308079926848404419717075277426961991720425143213888147578292565713271910618817503520474987761620187924142313921974384675889225701447733402116048794379924485113298343115562350143787655040794534499382462769016355898921482907331711727244844011777587731870440617960828626324726296473231654665319122513496272326933021249101298200378412689707342106314942447292249942723597658287500492350894100317394843961994705160923640960682082022555116354368751270912459857294600342703269051958314592277161537762984976660072812959173718362978493950914988661244801643212936206376380897017718179085978878821325451728581811957888150602257442969711896912034656539118865075706859113292724894364979920574918467526576078938171738833767713784736462595035940225267835780452947656052507398664182040328713930094805976345431424008210760809807033126203318488250787080675293951854828725690038082112448102321721973596452537792761031774891971414225653986172144951628003170286989695071734050466686518791435506964639946061162835531453817213595854511359174351523899584183935577904040039004579529814305117339514454871697496647025793683783131978546724047322147919057329408151156883627760790873307875473933119682793692459235087206619083321774347260540870165819821673989903068524766261174490374761668415830202048249564006150416670407287375398633917673765762735215022958340042179005386023142443472507655103787541152794604001549833596918367306917989056140604412886487699191496027634441998264449229088951398299411017759623916820942725276699806705498972608295939283712228214569138130720981045894624199588183026594716876010421212339203436748556651192320347253919387234491225870123631178930177023712573706695580400831849649187778720919608672124740711621876879531772756817846128289017837704117040397696826856556567091807750538485971998041056244390250142636001256588200797621418185248330850061894033186036630264329382520708644778010772159162297787492191010053541824283618642747851186498928059551994583284870748954263732138014149906466178448426897922554152339546897728682823599914131055732822654179717216153569192940312563572786813845022311470106623748081671392327078537210516218688181251119327291774859330198896669403086554818454215512592431424477584734932840672997747724435790404603085150242966754176347059749477866670233425842936194480579218307556585132587355452153858921907754531516403695106351050529185794149644098500788938991760903925315397419898450696029149543656184565045936880111921763831831900517690741643109722234856232501688069836401792763310695294976759794698259006830245232497412768521969968156291717599396554797332072043093716826447009800491101772697215831826641698318029589530074557871103920113081178303815215483178588254936313454167475673996841953254002212810208928056898519573331201144969910701944334220285956155939665703818848090524502703123910282285139695213481806004286013578176629074633272029388180842992916959808948829045679457083207852952105217252838827821590863232432802266709165122518446672306294770842274560284616387165458951919853012574024113115425336442521068052467746624415227417665723693176489845493305853377941009044203354021534196645409240013703335170712014564892378060803745236402765795071503923879224729805872809109033837146050255289337423094076364015516981525293772086971117340498677254181774892328388135480652503788290682911241259439962821424323944485226884223806043721077210789726508580365614321646624230587699758778586221663446958123129946839551035199444066044213713532105708843727135725135141925186382998642836641323311315382909133865964247409818757451598774140109538206166250808865487175107386429355580718208338271812294078731648335926346132731616220685006588992698236030294519649778348666187971314925197711674575842337295292688102871959330658292090894496215533247538865583284414506861702923643196453094354707515569502638988915432239730132487311469667438455027461524610850822060994728974333160419067469051995902693213301059693066977775233600316201953665159476080610592695400230861208842930801888459249751513297761933125171500046037086169119990559245819859879555105562571725729437898551914131335344623761072339904220250446103277882045968519307103027834394054069825719027201003085714096676859722522605154933960539764819598533700213165153637246172440694697411456501059067892975553288090863447986201992881882960630180645664153148609195162199659154709967223123288463448942831766914574234288719727521632383380984712316674520390126203487592013092094816570799165948997516148737961491660106220207987642728342676606968118184679485889750384786391595386444569273636846203865392358839499940217973419790082053418329342847880460922153503018107675550777255573365879772417507549802895247330576878911501906426282582944372135945915537647943802078431493169372595779308418748053973356935394092894246182532117130281626539642098421692285465110927627837655402990868096369891765086085957954113727894165611472697528994661596379402443260770640831260504611784675291772146088879328917669939704243072945020596848681593606863367031925940025857940832307986169600675807528640855203128353193653074566961507800469221278604362653386920720221782864004042115595635332446350606234771175124241516167298412927940149911037525082109041205913022813729849204627815973623418440317029908538425135945420263780386515989913237290545847639272086404488409916166347357386731850236526695645222918152542362529252490215562642094106315985954573402186729151756847882557329104201047134316938359434416908532649687607286468625489393520867156132301413355456398609727285706691752889420586184552127733622698265605506492496380723407378575165325776608647179160928701106538241292877628424234969281428736538391841799502600784145813320820448809645432952730548309849556258082075152421994855287760104049421463639782211846393661405314503229923037744272545461658833449066110817374330837476400209960749914115471627009977330582166345275717007475491742184537320754612730308635595767725857336011717044252772845516756057789795301518870177402309276462574723258453213713833493127810652521201795042092452088995315297301064960431773163938788165502394132564925570838443934241118872104964938526684799371559683509656163978224912184646203502952571729057314117206327374214180334636737123567941942578775414821537212691415039428172058520742059146269150240255671219078981214174129921353748648869309543099673651417069242035750744575295032283743291035263480298560226163020087094265124819702722250435911652588749977648108654280994930336426066268119875159883122449138518174475673258730236240221535414002617031664377162322941370582256231098308544598850730843946789299868855792640460282304242734037532416530449346667560128672047097216381927787753512929471734658715579120106449891227215548794884013445504885166115901899222274821761754463196711602744120852886059860947237759847562470633763752327418289451191775587970607824638377792373025352350250725027449980352065912946711432901729668313152243864614296271818892814730760713513451744220523371181062555268659376653574236948344979676348763641752324327068041318172130276757297953306913587294662813202872471846593823530111436224827777952363082311423629453313758402756043237613552600566029610524557088071970509885415064480983842323171773855211167812805959378200685221218799579622075555580864941691070731708806156905153799857752510443080568604494075222834869472231000516019439513735336064809382224702853102768193699251126743146171880397939218567669325770626717447603523976049076540312472688005100162943576727689230671220007526564244665017675389020424408359259513818193070925072545229048484332037137369024415128438577291989342273778828735144328716997384462795303420172963364228815579887127994624970614208406328849264788504707067689086069513433750864980858087151038656799723196497753364421188972378016020049663589296919310920528138070792422150372302067654310826287432320486536785199808783765118127705503444618249704186959095767718398320506031193521096189133030208488702679465516788242823748089217095243757013962854240176437903363292890619637024747264209034567662650216646622070206288617178655914312298441532309354853476217732046295256858599472574676664111942465880723489526704058882098760509656108207371549854653554988010917689766482747413644045933899417457063703449048906561587995607145587100788759675525009442910017493629404057064347106220696603838870072906386035136356589708525065173191689751547682800030748746635276277845909543682766193444617798439483192990977534397348312425089932507241385412645674694004033221720001264421351415229035544343238578506899557102161859487194570125149293247223379769908864168711301983077246569621446029532905452937908134079914194736756067992824695094512720184045608456071360988146813823320919654779142076045800907600229396431192038322274073764305799398091123086410198388492474596075155289514514418590194584639756408762619614059581655618643260474876715680301826293593500020072735051460140631027191895161967938254835750736236670301337102835681273235719306747707613920707580683604711482708125939537335154826831370639178089280962142986740463544400671775729390211073683415062582790842204108871828773348449682256365331230130621655450840726057505539749613040846728736735884552331306829484152006903058732759259751344584599603943201150970869298543397626792486369058518144796227401101085465502169334313200310695770075012680297795889643181573664957311552927709070726086231300836888993549739180830627534959325790633156294031219905560503484519376874102106782104524608952612568143418964289969202385932111769478612384501888030144163872035154940022403343275393529518749522805703305696775622839605921578735924567437081714499963358369694656952646039084965586967414257846303013174443885888564744444156921400975257298575528524249859272122536563038559783659989151681173171551664531925317394632979194772492029318505347995240169754000249892936338931169428236399790987998792753307389956073674283384106946299206836783595643182355581218853527549528736081583948651671434110283740881860274804972997065336043306255735774063586606511647592772913430954451106154565741283488329936527195324122052099950210337657240709066672607607193212803672317510215655834001217524767079608451955234763384815884672821979519168321966037663108646321461846903098005573647275143313462147119944015814912084769047383335016817978818426204845164475856372693330331291092689271628866726695638765298508685753946758183664126340446311348046139748581631641171856762345995307364591008839909001357515508001662406761173268658696140457063668421669579043654069544550154734504180598646600183105376572206760795576361069050279437127187947237025708293110014302963730563444385309644007122433045701535516647865892140983814857019761404888228030032996544888618097688718105384689673241921154232813754214976685336711441030055234110433726634259278614818989702569152612482649524086618041439684571598098457838418969823634548421748601331465910098132715692016810107658947841716971365105736343860822382491653499820819909031876765206944046516247243791218851797616816482383642150756805581561741641929417157872927879532341843698926761102777415893320782404379975018299213770305678439203510094138251432328154157121084779861762920869163539861726564561043354944664829892855671700327660476920528756649829052686343621662899239241598503615121764215498110044169853064058639631205596543501931529505270309754800826120723367651722041555009628534652004900091543844480996482186135605256304048275504221714054736742388088448982928565093026426177305005136721997176837619871795548698736890508919083950721761976621022401802949732090244900428067587846588304635211646296499862660168685453709861256783833199147828396859404888282627036335036402553391897893634775473041447536263455841899086552625236466992790342427259908928631269882660602886549699766362523573584809753985426386856127264281036186695201544348103593355328650706657928486716476234031500391959309374239305300363890160560259072888102495565777286695560735900261980615704921381359726329933224360579263024298778515975791171273202802031191340739035124035903706342706161746356161368472426804393407263783467603999374772222024947254181655943427052148736953710543779330542081114924080781828380477286910487019567347239369059769783309177629941699817047110036372418806418365095050137583191303569278307581905597048734691951586784637179316974827093490131616929692002908599706640942212716542209369023623038934645535062707010197342972358347084766077508042868841141575965272067610015198572395342451823894707477394624859481394177359334171495319150871099672237409480468141985322799902619437851901183120861211975995864823044303881511034288698181503688192262098088830414716367811125629340126968584661263766249245476633677850078212398695588896676862485771753501613557459216371990538913544871457760509911641808276743086951066449462140001734574263185965978232524955550417431163745567279977648481134120916924837371738544669323508944813827252320019763235469343236020441937370228480253955336426947655344070194169033938255081927970421333956991158930083288563741719135359577099921447943339199036855023924651558671475337254705038875290036067130917202323218266536996979137254888812144353296252119827669007802613831493336390755882476145857509314710828027803648318473555950512199729830673234606480278413201752643011856317320061596140648966763279358809712391477209133537744964759992470497346134843599180224923966297984882233605296208795305446440779856982063234597840428951163252407484086193367252190492684779469449345201268257017373307144530185033632478113481289784619097500017912662866288841921893877323839477393462867879684152405124129368177963400147448919424914138731512339735210986902002524788671950535265606438655850059589631231993304501872879373081687967910082657586981862268881007097018069596060393873890552684940296146527850767316797717921707471380048051063671205558724116153393780543984765564249000829475758726178917635626328801850306202232801302727517505158014125550604542975389965655550494648632747627271510368954944339940199360993880667142335149335194907275533443819316425656346485926019563901524360538361886914513356199065177071421116939127363131754895191678072953623433512180640463003897096368965172916177372290082658717470508144016365233228538787357592970106820446779130134310588144475809160821872292835170697811190950495984811730450636754366949922534651839504618201369881466596338873223629750494945093008717435736172356486882941996526363690403518108994465146753822139360926736786195116961872715902630048003515479698335402172522134008137661552272849456666594933959428995270256440088942381327014876693858200397278851940480827912103182684152000220016940323783256673446987210913017611582587472042577671168626787596529376460966289413806259115427432763607224678309040035410631798860913892495940996323656645762397580181096912852117037467640418177731401627348056075393057226838873247411376856615798738616274798547166827793385845710008094044464395593467914359064183602024565743029631637730751155806345346418990858571324164097120151501123470580652306744389524178546461393059178242534701000819611116746759398286033581921156742390290285571250341526720421525880186275909695062432359144528030654010324293288498422479024908457540892370780086719262397954161340167212262340656979663756227889131688617248138182874269726476528422029551144097672012847680768047751051066283766934336378747640810784390393777319794395805579651718596465536766981208505171280835406203772605682971384890922732860066004746621168296370627129394335748036627413125529617932313862615465713921167731458949437358938436255421757219106564203664868843404503729035559185282054701788974782499235253968498008806017890432613218040382202331138329289564102130583723053362780895273929655760517648057702585965445150856046216885649914730922752476361154952095670085658591190877990949077897241150788922932596872664957730099979592559075475539253735647284846668885440835125089205381301996571960277322701910997149162073938278470969048569450899045316477480352036153319791645804874444543636183805504984481079611691959529844803982205404864921789306046502392266520193071861819245039057054117878255631947634166548027994966711863977925401541384482697168234403173652116485299827199626651233053470178159105196685645286687516549965048192229895384537263419935259029753173280636731167151032116483697230698020131476620938013032380144551724084688060566152357508708433826856425811267397147455410040374737395792010506947406836592024987240067054634548768978748351162991680133265093022244574071820464952949750408842775700427998184080450626226354499154900041650390041064771919033917827105067078040447925879300884472820302307018290159583291508719787762827936624840648023317940262036202965290235663541301634534620352866062726271580988020821872936565578194653506684872622300654803526909810995380902144189897480596150764809583567841695127710220380178895410662348205289721643249513191503527668428586919489943480176912568167610644205740681833690487707872494061229548629880472155895096872214423814004430789949472796279595763678136741395353344188311014846387798262370287577937503905153283708033064219486823378507645028173409810643176793084325176050229665192289826710696561271560216277473323177457440277830017195777012992862255076029672445855501369116389893863774443310794380235417617588925792941331854634104373841901571396374247789097152026365657365158618219207306114037428322423169441580767243842239835493104669433729361926541152515050945653055702079982330004272935181527808317486803563159177100376472391468399013944059858416189418785708182147361685240076031663077106992487773537151603494431255022627382165725714977236281998071790839778394214810910725853768537792659425201460365872475830301243833198903489742633063740328224702442074326353396375631892424874549874018612941347612014336417829547898958322686839917021446306428384413816902586193604672696025440716973947270311014804238763912421720779875526009745230370586977570293109711105233240996749513053756198020790245286153889328669957751816059671004343794692704237216026028486373240547700940702265417804979664470419514125398738282065425344453353848142084465426130257791574765698191280524286458088444846569810504587608711410680040346516158418205774372419025043511151355357873366537429910881302531921544250352665206867188397843480120103177872693767802141027482297233437825910364246935292499847014192183738573054754321162395765108024326764246755681622796340702162164284210069550572205869375567375368467431650493669999855697417273122396483160342848016914782966067716003700694909367527544342725492454362345161340643581537923020729230839476920763191367810613156838756148944572155576783735020732613729775030292576942665613661145044504668481429157499191125465911739849095928987496566965300450079194564613239342560140690514638564047269993866056527433736789511925211253500880859946741139264277956997064916812327083417716331839682067380543381825096063355786096858637284860484091624701256906610322835116864459952998648830402454577387702902898222581402217382776591351351700569817811611221311113136868973910523459018348727925930082422281556056753683243744733686368694624084560753155935969501880870398058489029524809160877821636955815850926096579508459977149889925764350880354390126459001996830519463643521406499263178001474105793432579082664467509114361179122147108832873453047400226144775417006479133688457700980401212543022358546230327043478289474997182339866514303113760148195688153078490078893293861887758380872056134583681609244838036128663994401383198905551959388878298252013166614367301395583582506654310888238992194763986796258174362418188116143053798707822114400615817214810532482505037398966298255006605564843828894726146602973096951656817068208956410459175855752810694386986304994464070747460375740519053262569836827483094608475379081141184594239690899286685481601115587862673524722030869088695053785090307084655265905283743412678477634689866387120952371393935497555501357431295348312604224217994895351178482334899036608502534599595369109628576669909829645332329322255222234173371071605844909983208748687538533755056893735504486586371097702268855067739006357338039109088448992852521168749098878816587892558495642331633586392542314892679357203014745885365733959254255708989517979636595369846504452919458231656951669724875496503237458623554319608677682178689525404205603625877303401590448847683719288228036592733923252907281173518996127854799209533974556820225473217716370217726905170413637237674643671239051147770747082683173462853093189424487415637363669299244168545012029569877935643375353862952795765075197373643015158589181981289690555722529507271239741960205773454447072601951646597688249307488873348251861428375823493799291303107439719129630982954022691831316428536386253825537032668002622852781201363246725359480472882041332942740255216955932358991479510088720664228001822731090665596738444284494758096214404707424191704504199361844143646102923945697017151308304350037618975716861925887838520008872294566389841941473222979497664742812128149957077753244426405546316863585563836817958664512536811643981862360418363450250855596384377805624781285494825549845003897818409902463693764841465548739453996658654095573783825745104717516995964424951418250096776366759643911470392296069753323443858037511376274915519325262007893388009642593767648711569342821456839256824755912211459704536753901738945821115227843743073907536798903484683715192617498262587862763732518002562317414806005929932918166739948372546156762779512524905178483325479157226864742196694848027125765369241916298358525778626810893224080161213378093018880599661044656744088024624090240616861457045051569453582502104459784717974430199219818784671871366090922041502134754647755721134348495027457416915535378647817849843584331110765304952180081748651432925339581752727304054079638908013935378563350943446724826658329362716475029421124018749930354286240004526981077842898348281306231754527329357337629529369912704130022157398332926282283513641855262652048138075434337702043387382092056051481436389189087728234527466319600905055327060258626712558057286250877976205929838403879798112827573953403752526537855536307789299915353593317314606575151864377017931339164180412095528276132767944577104804466147706405008096411288220207150481457781289162588703406780307187935440285439673921654626349986927242750318575696707794486588773738872252655682308580325330266501643370458595997972292940843719856898937847799800852463796825513497439875186308371317237509386658186892805824440096248155255246526495358970682275436689038294413188476354553477119890235976351025572569459080193298447224667939530943281259765702071088478063079842534951373988076021727597487037735300568552839266160085366651364126138314857659797259526862542281547561046048802002740598907205998181764586954228171335621260820201454254146358921287692556427743792824302251676861932327563398512752145448404817115713944172618472375248974477848553068319458751809986299631446263230048773094561982258566464979927397209899030155495929892754446051738778772131754766583154856596787583211795690580687105058007070069179740007836846585641676223017910946471606683261275720690331420337595648298436353974278789097955928978165977627158521799983426403348419358546369686255669334721525103362664401344451466628832574090902047153385806415099278863811081212983336764611232032744257889548456875748808934189438371021658919351270615523036690260455997817468121416943122334563107103484216779551838822172094230794848951107237590306661826825013275149576107965918416211041000156880437509584856592304481478175830548410675425592402749136632288434864002533117716476997483879001599059051163535954429373558056323470134421092843195314089691144347807972188857837265919352250731661800978196412147369420290277852660958257090815237918443659806077466477921933595049310310709800060957410710570802492097627701156705811180692560558877191310667461348938726906517189999762785199077397139556261513783233916961896587496036989717178115258031743266245616947359999133653525301447673675399955124237522887821908324512129280050618730357353241235496312901576460569385021414026318898775483692603605445243552167467139705458005471101928670063274560084309497718782122111253847350492741555328291162625707128249145636883981928730359523359143809234342151639954801361109419618609628518835889303709917736316064080673971051386609217450894657895251279205595715635827305046741126685626893356627872450858341793409464808289809460739564259604272822769911589135358965561126304761758145255661847161889258356037474427711338229549001978441035558139972623820541285989296600687604634606446863719702324867626310272027153582208539404791865863944655042977465463448473348602119271220042086608564703879597864384434333840405717359878120844755902670085757517314735295592090811859214661259584063254418137464938842833568935135609237652638413036932145407795287326291074054819509973429434298768500865682887972837259019917157899650081326948741595731625135336835611288135245857705054305088449295928020511642488847343080084941613490817599277325045707067816599610457504596751051333555613104886101685768788099353442347298167190864449972960027747462591014408164357123503330053781301582697778796577122800212145807057510262471881745464686814513463492816134293879568724589303455153548109501832041846070271303494314741885253398160734139815696106559731513379990861966728751583674317982632236811023659694296522115256778857171937278553881899622028046188060187899940857248962691740544344960918897051270328478193524201878477331895790569930591888835707830384089522726903852509611625613560442652391643624147793031293491858317626557127347678283314634921978422375262059310322614489106610694213137513013244793998161602164077871579596753066104996385954364192741990175334623988685576379191940289035862078597950683349216075266988823082134346437627149745983461220064989609765917596555224657536382225733843822004584945881893624860108431471533278709235138296041449086012942009875693091590366678779576938649693508064744877675881970954086320685036889335297805151118404053817860427576783823652836457651945553771017486012694742449543976840736679934928334493197207486280252848909157083914604383892684352848386632721081121032778896663239010468033855098973451616609394553581374714540176809491695934462772415187009446493266210146412646034841320565141517579774706234478489404586493347293215889174198045857549405474350058306358694357633183847982486420709172234746113056176774866709335443438168078535730941698428468293857148512693064170655107766576168598748413840885276072540623071158997160498171191439229503500813416891583376906389233234454089893922610373717965844127365343147699623851076208286879301567215750667961753331508980931451670847216116622871845074197239354267087571289953267722835808722115155763960350132879051617295052546282435837508739009961259986391911442226058845943983575175355293653133482378424771259338910161664913823368140959463721519313472925979240012543175423412352054060825310685956709272145794338225660746059193028087275084736113867907196348630893169766629860170335270627049018512571039702390355452032669261150946050902837627268099054913104849328166808870877759877551971111035861392867366822893163846327498673958435235808705573341822430842812097540683057248574512109772178899914120910875728389696607119851255719916088475126271723943861225915060572022965481034480083523922282276074985655351060766607142922202684427923488462248666134535056273766704672903796799042668113291555920128347413669794066971117000488042759430576771425219022153163557480260508383554933457501140372057767763860549713092554735493353528692734965499515569045591435592410391444037226478283665821477390417548609869517279286845861491436528228458377784858284528407433921462295311975690920010285499146777029009621360875651257675049549777655839804178909875370496964775099311893558370264407078578671148750841929863091222691570211088012104646145387204130983710194920115464482019868832940925088353536252592047340619901691251718069860626061352202081031168497487766047159713672796433688780687351097610727390385530637530815735271830345611908946927624171605687527769073850087723436730648873370324759812121598887159141497945561162294813241024820772297397734222135463609404503616660882549068408029403569887594167364298815110444368881324486224226552305534978040419510170704862013861211431022399867292808975420556489795445121170616357205494971781746457074690602606027889084845917339967925255179606029305242102975037423368071065183661078637247844353994323368663562455822896525786669443457320023081205729754763649149052310381326166382976246280352524670286817319558239295073587339664262272907715323869785288077922970174791171486458142809498649162584518202617479536217422612781444917234351374356040200106998639189124004883174253624082762491233861999858705465393800897588541384507752856201463210375843146284585262453467137670040712931590948949457722763703469807487272696173290449802274644062021333932395515181930379885438265250781665109866165804139015448470697336643725361427752012367850340415447749599237986103024155905994386549059172740829464835379378134973543390260865231798698975768641164335518005216492140051874795479805776437297658431951097132021430588796099686369286907997290378033440341732291117434946657836113373919322163377113787688738993835444083365356852779681524936958000175480593132516137179751012113717310494102424484592751223567197120602868854233141102767775492772404350120944522897012084149992107415310942568055438612957549090203174369076257031418704577894219357878680650022577851363060327643366288429573191996044235886339646095672284427119779348438543340162843785691427251526293087044359444378229702697209963227430628151630947222678113507006895412063776149236429835900856942963589513280473730830411756273717183110713360862895862174029157914793236208110882975800574079002286286596928341960785680445666408910283981680972968944999125591579391072693563662122740383518051132730464097554649849204469232184952012146193677876260026708564187554006233133891860065030356460682446960408730514488075447834115142611880057100656737444853713309029799836555266077064539290358049561357705184708767535006197981905022515536615126742579198486414732656759496070831416810143828839036212380763306533615418547702061444881562778255148996947786151201509198473095573833066806124646375621215309321026384994173159288275673255566930068837118794234103057059709999155480177254104802706622129569906373331058483030136632121271919868472772374586097231616129525467123936664761130610501845044359917305386776119529273010751982641640383516705420023913892031564294866051216203067517048893052687529758170735146826475444505400943699891290132343292749880268396512386583974707452439308744014304327538379604579988664718937978794223424616466871557113246963538934240501942939566573959088448329144756244750611915758383725812051666837570109505601515406679084416520523723010137082739375012329785702268234979582224132238111081264886732808584917160027448885441787969325587297110238622020706421146559410175423056196948702797647805912970660741884580347227716611526540829157139006121783430998310434227878592292208311964794082569751913229048793730796570008552039560181590442658610785987434490546072641878117790808886826257627709153216802053200491272954272648182464469962202597099182252326061018318428999700372090903064608472202805070358033732707175070052641366184257169661176455736552060686024071794209578273807268374430101601423958185267386077622335785863690957016113766105261913444134999978113217251453692342994987532088189366883714292824456414030170626674968564840228461112766695490419745092532573239525700330050438916740199860016798600473577671077393765343605878636629039989255151436583391719626732599205980918410747983329666391650302527208739331521857816157140718629567878354143338586307959261428073914708614654071799765339019796984988504429223495364121070964035131116741942431702950137313541936644096893715383695065163195220351453095257820899493448767072430498006806155191825166822748469478253561236516181615589368808243082048384670360120139428352529227947433420384516367273934773432387134362154167938467682944646265119498816658265720095200148704002034687500240472188752073592525399406407567255806868569652248290449229904159282283512079498380148154273110350172736486614656939167452673757439257427479052501281642548868828064472599043510899022580355014331125227591705998874690501276177126030927316932005817518176770378020231813304838546096925412608805635882001713333012141327376592737522161960808869182845051231018251736228115770124440479180607087006588280155103705003469033455451898533687669515487580240103541824812223884473635917259423055023345097885249873755583818890812834374821098891834686169970484128204641095996690584043658241637805274874884351990187324842207138527903131292808511485468785418212911332649645831961270335539312702468735950024110817713735314447086248021282205501571944892328618400194253047709978480768213749706604931737507018039892792010807971972602732940179066896924613655197781271203513493281830269344579931048882099765452525124895718430029935877756369482643312306577783776634100442180009263126624806196486110575261233100424203864683187997984750467122296835694965312947484930441980909503200976347904432743345675871105738923765260086735920394096594667658519528242871876486513640283445800208407827822213530542078489537219100021353731644688220932867274008805168678551227857630273187591131088307268550959566891955171532838518302851569817331648020328733704874265745448808059443520261161623405314805093582705724034557499907999153304569059711254785288314738683084678714632272016755548014728083522938540072894669494029608747553973645886949772782555045508789186821491538419780480811915649537205036032815011670878015437004917703836721913271564727021309304216374481842293206911138594637168591292311650446108921514925296011527042628126253127807730351638399537368060507305302137059162163928021072402688479277499415948494596994830010466883045115988709373459426211945310532756834163237902197594808579601105667684816146727563314024806393241174471726960674095054254743446000829156929370957316564636332760013295439714794450857576935512630265851785852114818978055147894467232168812015376218019047331885736088639383164157517193755745692452795974216099438109552590649856248176712295034042303911540936343525231304072724794068128987268927934347443716711294564344578231967601599951628171722276282491524144303541407662857409535827753667348959137921819639896143252638907897419434281011637845503859600951071246167743913760703139695758721066373406302290026830618055233369164682794587232598146549303063977756598908034774834861469167515129236193286971649275739809908237228475659488079730298136184123424253919992588431625537719918678230363776957908296268324654566944963549218989415446691329607513018453771637048802018776249173870632970218347499958725762336575943500716428849013816160851220544916891858387898606167303521564850577120232459232212804305291418065570350269226070517648048651987947063477006803477944299229261810177637143657380317885628977730799550551807323956975447235090147428236950119001678373302581910317399071507209429838830800538812708292028404877588898083415259880414891568910086826124401376988553294112866653098527512358547955272920470034150826345874763808903583323884475377879257068319469150826316572600604569748098946434415911137875035744590500482045403068819706916962243503864476031627397405744449848284434493726514723556385140773868870707481369483432684012145985786727711985172522739934654883852978093134838090469616370281609191273881043053243400693522118640425208467065704714571035729612812355540078440644472781827328055039230746305084724257866263468000430194835418224552793254122997124373856438521563629658433485277704459160979667459016704783948550073380779996788688478348137799746124845993708470926224688762083553324954019338015411784652572507054395237795184597499844204162371142730017467401267548320084413005669570326017503444801325797904632682909844904199311961313352106019289595365642853332406638639518973799710501888774547432985431961409882987078350047242465636520799603837182146987386788666567327962714325025854469769052032199397051768241252636891791519589207648188631620770291888930943586739518739445607859307788959370692068755402531386030895883834239840321630635222917498231572577336907170123864332759597919730417318029445583479661009002634804660329081636418623032025984019888003303985322293472568412681292238662929974630332178753484576688309282609640175319323525901745944215561795242273845340907991429861945412391637667926880482992224829596386913167318519469813337629350522153808329277217053014270402451043471140524879717514269787528629252663367373226169524712167873984745268010589355852801744983975869193928712763154649228079011054171304467801482792156706621756140022459639651821038126690242698303876630081680579020782203561190764393259942184053383163346912550174018584954162147004393965204696613904341022827368074639334215057174718800349049838973620403576096554348663998424193832721862753409258057572185905672960258264817279516994368467266733977369261924316424118823655275511417995120045061340487955448358014479757513203612577661227225253357750147846517849124280498926703004834610188800135813666675005817758491759232326907101209444377423592816557507315199280223101036033541461032405148921068122582555696949105538479455250379031168959949368396974087775904426498256695760799464148831931104911166105905312975042687586559431330940622943033627638514009727654403661864627002333061632102643079619826228668555872288584085432152435148187314169883582003924720766105501324872851966039297613258759798175238575378742834690301593155653308469048360422752737466363678731707633268751761481775896385698233161126652230771794030479352774938039896248196734652660126178951059936756532397757272729413176001078909116758750027445730125357372166340527818056557053894546061927136299663660546566705204127183022039025167257709906113164930184224540377162038279521821951897410708329719148867428233395265482828695082873476772668238139588610936559116056880934459626548703442843001914846372231354031000973667015618983186802023023752963269843342510621999893386185826065588969408835463899244867183166670297245985969157747987812486454465190065943931628748059523736726245762369526568441736415882553823111431346373260832881534054153685429716612791229023709831507302527800308425661607926017589561818132747609916755571215536289590218273363657740942888463008871579481177195711738467015007691076986407663494420693386350745850337929029414097990372747730401249135800912738706105320197599508243843182412676575152336322342974964581176155422642784646628526283069717872204105995415464996799716254887051817581230911634428288145073827676441362221696117770878959133747201075316577515967617675111260005069180008783288888484193190375939953128314660781370872088570484471787365128422078014601614929311318835459194464293392003997759417530705004991961809665929694760749506697776678481211202422138290955490048380627229794299305619466921459678487790772991908152332258296150747349994173405128545545587923372991128763180437382912919551477257343096008735505017317079934330700575463353136608182784033548264852218279290582989317530878783340273520677155948019350672113243833460924623216506324755145105052028585866576154428608145840414226929721836199877665505610580767835428110881571195228872537245403911490149537958929531530673141068966106389295332538077158206228963282790364606010831282776533503544491107401350848397945711934546024204960849168448760222166174013035743842838966725049129048074755957893705480119063372147190594744562656482522332797945782736935675031427467488986403922349398675564256869940981165674760540679682074227767849887109194749536398599157285487012110527140105318779122628405436336370475528703691417162167006658781953294754119063642986528882166317405712814306016506941756811531736595977053525381221202327410818177143894322027770633162961216052281367756837923293400909815765960056709365135378387062027043984603342626154306808523598364417720744573133247281707545033502323843847425747581381981823938870620025856603886998634454412412758638375824576761316609811624947018174211014210798254598596411496593721985123564451041476386950372559471391084914781757868888208351659883732866379878282990645165194815439958524495785535461584520340752511740135746430127560467371449067840940741599010395512423541456946202932557773675438935476257672211434582109922886081526185695101002498207163033214673728852560902607618637215285978938383201864162123430206410758070228590981027187361953539493055393419343436414041973146777588106335774950933812758818565205750668338123032084788729395773074905997308695289120225616186286638635014293375138115096463007015544147720904380378005963330061098702791772922233136269731124236329690871363368585490041487226029655229257773373513367433511866277531269038482419454440762161217751175561186289940283099959640145704070968349076381900033494774944344796062930841374725564141457674269889546498180006359032454769815153960793377706793869267518261515713997995390818315097333610118680185079119339611425397967770630636257545972977291467062922908676755025097899184347054470376664376658878616454037540314609740132556795782416896706308154530637356605939122709466048895327704974761879477112571426894277412222521692182956498728616194614366765935645305632983965786331332897187871522825401373504154057465201576874910053886504780848103245289079475667167119180157445198532539093436848247707371560761794097628885925851899329290291550272974961215006893268188471337203099914402083724056993375569180457560622377279860609810624426590610235059440656156703572164788114555095837794874157156169074248577253761489947184222540739922756639037007974830942176966281073218481135997617978495144922038533193966888684108225617432527860391868194924026490144835037459103127404563978097393522943919374123808065050411556953150261897812333082350109093119528587576597376579470437784362626708091615125885771445286875520725420647995535533203592683367615731446237791537299095959848852732859306595206356624312806180762228786400180562083693993202303898119124218284869238396228706507483068818806608912269969837418817437850156453502923238276503630028808616444358836113841413964603831690285819155381572157958983294166897045901408908913414232433066655564703624051663666276779283882091456326330841209096116517930460855304703341750959445424385685125935227588152694977871727337908261300702203838330922988717408798275020382207926170026814758069407736307692022643589518194263061675146960730944298624099171292183451425895874024738398108149947225657965528848075761585990620950537251797738001079843573735282832949590389857700327028315955570218615196421107806076498650430535033312238684378578089930107883514338881749341770175137835124841935078764541624413771373548261364552793774552800303649599552897870262159374097100697938042872182464911252141664054347965709218682698908776026166654205962541337331810456665684592479827525155545398840744633027984545226326073021764349034179347953418048110617446805200926020589940245693017707296673348348161628674100012215224125033567761485843532265607623925104134107903562125742094796070687612183160530316042637598588104493391029760122361728938554345456844623618987883945731205784585918126507059645531174272306437585784991391353893995311201216397058139854031127777275697122614009390433026046226610496818394028891646971389485918531956600908186416480648381225861447376320727347103622183130013288875934373761365521282944614626227525035835281506601868496140403261066385130072108116917609509416776755425740337383777702478715781682570054501530344935724334753723486724336886485685939195480935303459047530350052275490452820230772423163004802391695528950221252341790329034702192325541726231742129530911683101773334497129308217347180793415401996932267614205482668204843250020567699664686733849131858083591485722107094103462769008720333737751334175410356779704442657595275411720234742301140680985621290064919184726365893756092945673447916182718872890272444801367536864446036642630157264305933767961908987557255881564686094627079091875241130476371802156355990180883094088781971510386542692130568572492083133128205088369112555292558639773894028412718637738490934128032091478245750453066427327359145548182217048153991413141906639046699910980433829893846637071103550659729583914519878313324793234476635147503394176233407549210446279140322375937293224302949974804994464503591639155479406828606084632278650507825511108622007248383314925719161345471860632327906180358854281073784989892819841567196792299526601756918619765802332736499699428496780100922172319307066637097808732657042531138867080524871148912534199360524864598817623330529944108995280252849183147502954169554927265878361291750157948831153510372176703047153597179314695816572197899563743807500240064203095179635806410399275164691600859066213292003316859884392943560151341326768098717979901256625610509243117944020866729364713951484809980856214121268713112113830588949403943549260211771323798045306308751494835879939629847883484149313824705204874668712151477912075057940979301028729380637613111850623715806513614429610326744535756391013818600417391701466108607323916290113511769451781351769542330817580266788027267470218570847600168002941464817042924977540653298431482206972347426464487795372603163511995503641675308098355477647059254180069442788672123687962326644755299502749571167390096335826880425442965564657908840265555291984854949391056803433853208881212170849335169522250990572225636764110758060999094370739950368651575011636555819986147375462488228877486687798804231667176700143259385769287445323730628518691524942279767857135243918128299669193578979386855458852309115152593431955121613557135696972131422248543679868002209733124248417432142123232219994963333737521646758531911427057006693155323767089917297438364048239284312269301175456874323905214409991907927698225165128521815146830234914332376344084853524113621333444903643447154887658533983018011584876445908498453635154427939342708502017368782457620244255476793636379766559766371814379006894486404325851321032051242332700938018135528268647061116354079334882309087955916537901646876939682045069965766631388438901488143262987978994311943907456368971388564253821895949150305178231319801709696646182808198802452621179586807274539844573555068743087946135155372212362173787607110011200597982515508465391232400949351880772682916011548124637854485834131958223683785926458098799485255102825428873573256607303366795066497575951613003533275520914329364202853263677365373571315023942883062092310304986595710567036713843436296237900652369928988561465684998524520811874360772446031387932205380252904935788037533105635194319035805032046868424211709795545637376826530053829115688329350965942630617492660000680172788649930805902702134261361693362464861923631957380816099362391073767498644883381438939386059390289588074230078403347100200378469823433042879185574904129855133192052799127549501739360640583321280536155461399706555769261960650075148867108011342443795104799187416844696759716234519552622296341754395332597676553933779116786897275721373979270679753055798533741272690316933238611069590275010633072797474676237781981001685683110481435011573610353832731998353438908610736260597867765687113085041885935328787063655154864668198746348591592368580289301679122019264452927579838540056971694866052824135397262800690035457882262902473980289336750997391007610383341741003410661708334114737381313489677357472186743623135968915929934860312624931300156257537683142638552287464693591978231965592013673305308498815718987157937727190901011031557678025748667569421476802357952067944356225700399882129517921628677477709617257199601001706693752001042825454984278242403139166199957679992971909895186233960925565860362931659215763658408301102155620578710388084191130842811805665953168507902818402277901623274336808232062393232576671327138416016397088933966125045652769198568329673945222918352630308385038443780793937396618694902580044644709772401234923920518519615401020805979324229838921461383663915926594047538706954387670754347601574215447514987135610706685936837830928419128063803347453208155783093202022247234883078075726391994800535667194408234480348935793658884979229358848976945294739532878811743194002662392660857727149637961644755066260523876900540064369604060796430709959285133406168061836758520225773478594917901277327206031053195751897971856653670786502716953753032931241223807237371028009948840792461673487635076429245238341552834054114325325517518295173252400670806312651966453847702064356502913553766526794953626906615736559969076977625654998732583124418224812455367889408101148179457957373790793534995380508577374042078052434963322868968552864288686719625878643027665690786512775194741672513364279538386053498496136384370032834915943507073436386773243112569864307861602734881517548807340247144821786952611213384113214933575050141251177111595997842369049140682825205786310460030654294682575953605343805592767052930628465869870661824395091200652595298882384811000803169681718791849294607506444814712242452465608824686075847455026879674625789401023450039086531595180449571765756596489342466377397949693349565313762661420749321320865571859853084103768380973366079975565063605263830967210087612753097317143595702520884456937473643362911585687654803002039214676379073093004278931040416946880205604591191347315836119745345755872132290819541437875602356247684463353269074912822682347851148400834084055553334595498161740282670433426441848661014891144957288238496459498783038685412666692594838831226920219525682822700942749586013989054649249005533908005695336985296317276121424285253405021108949058838230793660986794932261440770021418664466716213957856389960521352865400835897537199398941256446493740078079291572465008935074281087252795293221790009486602369509835694373828181310137100671301616762553771903322353731934077483741370752833932540867922124431058026353913973954637308227073281167672455584185785779247131400283913035295505813273327707507664787267098227831723390362754397452493071935586648445057381086696859555109528758035102836001788621837278458318481743962117891085062919200200905629954679766630095459000740644106275760228426565957586040071464369527439382211908691301629302886844073390898389145491784100704698096143511960932777872931423063251913541682084853973093754574217262365605909786783996699404298952697975390023424288240816802223507845183959171527982065880577085062812235938078512362192224640685382187170100042429021174174221575700267909889891880930379120450586158218393027444290364329566992793972953849893691625049661160909374769882641096174551397698604518743429059084753575786794010614673863423918389426715055023345055998887759995643125399057169560138175181671457444019976292497119039652750709177377565723239219156330461163165269355038020349555315808004570752382735047991845321124717111389295423177227598272150282297330073624700551153310415861293692794241091267388908440386588709800986696939990588614726211415837808443931271628878078840513227052356933287671468806203547369683815602927360984823391022117262063214385535235644714380024991770769026359300826424577970505382757221843538125286382229627690250102155048121328565908496876237295581811348673538498851273877567260581090656036849333735097428293007286992062849947847032402933333574370126545190275262194493087896721826231882762745740377899021603341714395143544569769445403389313887994218919220533437951991622062805421394684292821484986761303159072842867664687744311894072461723516413546542707215301303707087901202878196242013245691022809863104659474388640826366213079078942391054203476663713692480699824535042623372594813643851471126247830830363442428721195939348197488932628428821192105665327067167121788562226866577663225133018541175122310420809035982601852495632814487225444479792028834716618772498677452826901609433864653981003597083503543372387157057933750157617392865355506327241615388712213958778359367349162909639823186638257024222032833350643258826661533840183018344334072446894996506183530618166159624182068571728417875218920043678642450170963535043654636920687223022255294408062832690111813626663434973148532995523115808646827572633817287064539245306564034183465612000555519410236525127396635354706874152883982137431172678933117440336531794235450447216741801257285534908473926139832047447386813323427358609260477328561953671546746640289337278121763067241002709515500976256778341791811967076432997886508326416889981636110277423676054326271042708030641850289642333810037067902102829689079922234632368075488960958389973421012196268781879058557955164345979599452912947530542768345046068656900076444764994639735240830075545346278539543497652890324406544685838548682115420435617104205213562198709006845016130064883652064812889030681707630596714198359373274550238530147930162437446928629917603705959178790688826406697689010443556098527044133774193587414862491810972933021554016543910478687872321328303454061021632359932318427709171519565544868256024899024819342911803897716580759891064077323153458631091877511264915330676335816094221211053814778440606583239656289049688962832981681287895938938251221901678755941940667538243138510283270552929667161252355685048752480996380281957326817500041359487242072595366313853687778319493837310384712495655094104034745301932037065984363582607855977059014500874437004773656035581497790765340056675363648537853057129096121907811330631108548781453453530040445724090016824200719862480220979539700036578607305684263529219914781423188193437072435408366348384889401797081545945173671367368235170270585814715697813401953330969350086648693583528610744637628086358812766799055523585814035667316876325734224085289003578368370343875649067761083726975691989092435178557663691077209359435766586718091595144270838747939244987479400780622309579211594728483513978592851341111338981519557737403599050760483082757122023864186241922120453720869413396705939188554877094363693961260833127661203503102887181035434950354805715148624686270956810425080137425310083308184201019198312463732249033006590924991985552181848038296298428139828968603525044429725970625701305992167846158546696597719051941341855419423613418586779256562314852492499924500332874964389510510913693804077652542641430869227648696736402673464532996867216923276511824706752570788249993816292161802826467031435182978095902563757566035399856405446106735486094698121460539243279209543238451769895126667984065914655512557358032065757303578754673673065902418633490783031192819188359027229471664059394254422844601217739960516974757986445296232908527742351888610372457850700154318533654842636252665407229078525067436159447997601921628661783983761122628962096322668594292571804034940520255349653935514196915115392409927115281735094932618742833207544175178291036930399635296147353350807404889581359838705092990955605383307441610968166053423888764366267029634650629877277105241721857838361911845923283239154175030080042921032266772819658005599665920436430656116324645763414748984254930678634361729987157542990635858066286132926185094914385820398859276531529355714904464169836847286893135172322447802550452816834705116254568095080912794523115257372556269003736849375732981238503838402574449382384715970889574221819032987084616338557340344901039065468936996113698786430664641000158532337404017709609138630834075713839072953212556313433536212722868560571243542942142598365655491271460513359245420045589104790144173182357658177858914755023118202875360780751445097930578568950445383685116413584012393137992795656786417037069526781714491370481837915434942659364435213581981771470017687320453286760665964908282321845835171231229290178381228882443348401028107363289964574872634275693236965732390150684304188046960259428120352183944151637958760473985209007788052952989961199180268549587574941554875912748262258687532830980010279306720250739583630654427599897614423451006631575812598959517524997677648796584833006114185204880585990342721864293023087708404836769505811416862447621799585677544101537891598153826950561783183440296280827834929859386291403001210879863105228363715191815080337481991501158467275404502905764746124174500936691335120834266090499117618460389385042743984219476641152686920678532689345043105433510292878228651844644968786723753224739963554230472691357733426708341811272900800346091414491325400605137237932953470756439865152607833396897485612789503248195689674639649940461941904870131792074619586465892061518529505192568961442000491072182761966463699511966007398808619372425659462462931507902870589106694656853071713586004534437998049231051761263562988549377992252676298576633515246237282164923805585659279445760840786716988109344711799695185186712779233567362337227457236942874867858762508290205439317302487444599998733856116518281110890193137744126574257745980270599750351381459012998376292264256865804121218892061431468108922311860565156168219920886381969902938737897867187979437020091240508472815326024900604789512948728337574040728944421867416215706585082070424557202582063750959661415629023350229006819111150254037180102782971558974965983302182256777085187683737826285213355930445439710192985126665973694795889642399671583824215800823851554780711279760588268918283904087889659637985077422005410044117978334329798053567705389635199096200423817799928019759067545811496392751429284640485678591571368530955275160328735870946138177840432139557122672028702903718402305724798862671648079846055585228110240825248278352862164703094264280815850766609356692715182593995222138336665091659320518445662216773418208818311204814571115180672716755017663652905618873207496413102751115975450967003065528548175178156426657647707813784386366437630926183997681634364471961155738200500654283155939460513269908509035107974857703482235764790519930252297913008239873752341397012611935225158452683688084052225312714921713120301224859374920429002176965804587632721762728183442056059985686233834946197288906164798401068930959856665662020649756166017002888432540985928273998898989536154098648649376670075333779326789852623801989470661771845743323078792532725319580310916771881101324284569650302639573007841904892345097474931047807117245265451801613604360754362947050437875632587074602952874798425748086464821348417962643845259414030232300015196332435800202644897932747426836807784968065945056657499919773009255978106160242372028764501903382827291498215172563513281625658054486527167672695776258190881657584656378204438902359757205707899068408864597961942568654375186257341657950848434626983203141213827802445102108909703327236338414027940382954469239334557675312597826000496305487592555584252667422407768171480683446020029620699768051437971570409125382736594849222466588147975856967916089437096310844344614941758034719157511577914873581810727087312429977110331008740773577617734996179891548238567391036467483926834991345354388552591117199082620051940586552744985679061973726384020678210420223299613314489744464769169827329318618316500744340273170867446360533767425976754570829671750013483688752754419583573743646753489023515064867040704917126168956104679353983905449683459668169001268267880321260868296474546755259919154782942565317758450723128748778384883798938969935125673521482182992302481821855598581345182036420071346835009908829919986129716496410029059895751253301514005153958126148029469190933967636769922863559849308389132003978191616312844199707357957740213211578245384282380969096254695031016699512622387247149037373354610964617345964721073118345043250770120083118436091546679585439739524094987370094726243528833235254528352713210441713364297255777105961678339680071004764685915859659349451344776687612180898388861917796415104334916876926668970141682456742688136811409767589477707619234990611043819393557106843647836397804520139667587621942249754794883286632696543863832481628260250782655759262940581752472605216938751695274874622665724252397661824249435589838584406787570812525603011103560023594707865865684704048014704668957900906026681271110322393610080501882917809040915353985633342475459003551969905435541459231948729433865868531465257289915226401460992883516045239878894327652192572381108580539663660105206219149659100441451191253050723164435884521969127064485811810020967878459891768196249771216704595238896180357800369386406562424850626785078458633889272578395709505874335046915090886897568183473045705772220730603689963978694142252543600865991806279406133527686035640897446536531854453430430640838615428680215652196674654724122911169268927041684907919785514416713814021866421500132000291113319530591162874325419328150306614213697065173636499571942017667524020445837060475979784386520290636743457339459583298924123067775015991220985345855221977332582853655457228330409415617836792711719429859426496535550541004283895656653452316987152547754252883480452832212580885709099692208922140199693114711522029803671569295184351936622066059953887044631384213370110432021095139674619587250079476861513221598208042853086252311599326114896865900252569146398038202622434993780979386392531160353768906286235978353512462502911998350138624796643536602261356294986653268378477353771749955622204534549993667290754777032515746275899773135624773346864109699490488424641622434603880764479080967927738237143972764448504401735985219834013064550191647728294961077360958186972960165287229160199936998667329569007518565820056363675984203828346932878991087315017603566439262069654274673249026329507972188060337691460980465613954894469778365579128136721116662769802757662154917100674675775981305738167862838163723227306390064978586566761522788196089684192619612345853849998276564184165963883482984631516708650779298789099405086486265042243597667460816921999349891929794249438415135087213614219724716034491948827556652919511804683040988295793386384285249942941323110028414111024042864329216587439913947331163417290990863303069624353180510692299064565295429930704327475433561177234513967043783178221827786815988036614879897269208918581917482278373507103596616757432319445674181221711443419646560497647861461628432077539471837100065719495490306736331829259124274385832442299699490894235928879488302557237733844597185356952815940726061127069046006940866547683442776057487918510366860322233293784461620612213301601336330714991163662042151656045095407552862239746826095205052595994052578755247011570857338073782897258898108790669525039927864850369882213730755779091452948285474314012703768246227396934875831911352983809498359486620143528770447574074595221868371455880658869656708990073331032936266948354298033138420361528712466288691526792732867281278257613626230526930791634352122267991248257863797804770542017900633471555169031867380553723033809884961656782599986622373965943842528085683400176510354820145056603070437608259904498108971159153583930389874947789237664445373787601878175889829271748902235737786554016457321943146616965501352852043281357878723675387777780041431757985723859748064146810933728966365833399062960237925118569733386142723949819987545237803195154752560381272031183020892806423679215296258388239225056458496154641879514432631204254057916638158024376301783836645038765454786000182142745379939340321972932851520956208297617395722734266086695929696913564258877861983028297993435531239171356584426066901550120620973515634467206372185582119871388984722287823293849526137784514370150368310002645275573910008768259482829700811866426176273487362996692898125541536580506715507015439999644777587183750997466049109807751497963754753457153240220187156493256116798319902088804569746848023634764960266224425990486151701587159096373530413955644411645575258724920865046486631329906879273609863620282959806903459452006684247399525683792141047488722303854725025124266336101151322475697257816915938325857140819973851103853306616938985896455357147226675094669669590757590138619094535028461565981099507952999843734664458593926962802804363572725802198305847768169630118892184591273761938484345479319065401819893532539695798282990675179560814687098024820803112135088037886973422236497025546161627705589686740707049761114169157027264419472042237835118820964602290740735673863550069389691892974965891739811061249548057183936659641424949147568450665620351737129710976892551545375610077168207321338962713166637486749458203998266455005638720708155209213931915556563613873281649801176971804607975025618446797074259386390718591677443612062511042823592976253891520129556543726960338733654596135372038277313967964936431130504373701141329078738334451287569707322053145997634859075665963410891090108229117892873947260524329466319367491326964143755669806375616013670946204167714678850460853213062846044297975167896543853723251256219574108123069200930822315782571763631077478176870424645421402024404704891156718623804750080441929625497588227669861098280862889352519736883362236900666013530446148264419725772138544503876744186730848299089045046815796811593788335868362291750054795995948814149720807981733965547048416701304843602330513771898542055049380690334837866961872569033364139121112151084323707926257478968642555455598948811083170086533531854508766047155655600268478218624494119230984801980146941118507678878818689527120105734373583780010785277162291381733953917914525946638213911148709100387540625832754912826265425393336576411619052044457762858294557256109508939892844030826214982145753615500347525017156935734167683552353589542904770565486716413546735827572385493994532076461623238786669103216558528898442106510712869762533306401174385840938230793402971445569755837779495368664446400327938495621772968020738756410765694401719937357176277694325329405110913658112536777624779232614205495998147065707479036431171858146763556434490278686637614388647531454975547313552102218201329624963071255651778157156445525566092791089459115554548798999778317281016212584356732748926566131093807622171869128379261060900821772157071084229891603412968787033012773978386255778921961724967842073826714899502755321804918620865511570841098552339451576991213248881831318468774615426993567735040159453630323690413393536949566028043276378770056342382398403379763232478528802348561189991897099645058839404419856037075322070642690022257161872061457226447414513465390688656238291057797165950073980475684869423592360396473222877811431190615308828164563945829402032711206190103524131910434144485193068153538477918847662531164844184362278255546671540507076973003462434507674949272886713192006777333690279204282974015627432701798443327529826258235084652677012771807505632017326038852444364583424094188506988224178167226478663670482742125257085252357204887239177349377369596086040483226132498758932550424602453047377831220701995084796638353309326521814856795737229135548453269860125366398710750339946268585735959263328614827424983665642063888509918247679122644966574232431123138712754824699405552859619139020091285810707506710998603091383776363826608012965446254428255530770749572872131146818477372404433174764697392546048834355093966707130440026670414267958017011718865521822930005161435451310943373239291438503264316108395452559564432935412257121187765752930442923230154923985949968969247130635721818584408940788809209340201133007849944168033813703484978762635969747345767767397978101552231127403050142527969224992057569287251523463137189272768674242378950503807472279845673364987834459928841843633013635738665384663584316080578728145870736284367680166019582209321004592600524446050073727103278161386508881666079528014088301010679394268157045142414769319036636268516276670172573148299142760645929132964125797980004262402407285145911303655742557329988459469568649478830522776853767220441844126246717637342645647808684585120679838651669328458585421016951912136274470343218354360601796229227486187100667585754207508149322179043439631653041920323490726052214823378083709951880819112203956634967998127500031004259859369795035428733632066663854631202690482458381948266911992258914937356911247670103381379616354794966083571597534632843675308920569204857904496351377374023992809503359124278831913296581893624220122064937808223666342324170162820525758244638679695364060810884358254910044568397613310562736886859089531541904683661618109506837871515205677269325061565490406515509803781962012558822988156953198679963712530338792930667989895526623578044191950789638681762491168340652728594605662115765842497344204403348493310578098649243472054366983406266795326232860910031026576687319402499456606650109725037673689328840169422103566558492884894122827816510087307787905799316209418055797178800282136744142365885116261781102690299477104097649341647877696360286814436309181108699909486817263294148477689835690110091244970042862752783576792855518963667862108261692614112529699792897628519070408346771439642157589164878685586516337839350389213211015075291681054560321656984607998995253631138515061020050864678731727324306164372107371714494132609605353282152872472785864660698546190687468263509900049682298067141793102626409836255892506492248119171247469978981297647677368308259175561438592375084286193005824382882353652970506338291178120200389413636578805530513363032709956304665966436343978588573030887470535403754282861443443838624064058134940715389290653790870282106256624236242864104537337597595934319773737169901553221161792666546567270496216353310288939641374345798507485583288116775093152924224042435555905681601181074047378414616689141217877566244737202288154841765824158614836035129651638526195404341839666286683089721684873984343070222263736080241826646445140841498089857774628193032911477767576499757769372214827298404995562348157115255976886048216867920117459948989078349604558652518831004857627383734653546669368885165180403216577154060750266495989078090858376898528760250413430705829544861827710608015554027038778021327064104959774984708087751587192024599435525577349925946628949253186730249815381221850179857363862121561606544804407890885124104110443752094782784935408723550845396771452554675527850612046803292038275121382394609678227281714571791577041763819744532146891945590055010305076845956019163898338303515622038258767947437747206914005098602500756453119722463608979280164864217780761941950755471464951423875112364585533152258194096946804870271431212913296979382685903071874203962597031635209573077624466741993335181512930649095425981757739158694122112111589940103131592092834703049282459076472098580574825560296310475076438085940759339978389754321789181878610302157320796339509770301689723318497883302675650814499930986006653760037087857436262442285580334164102095830176768646025617358790176574868064409631617804405132302777764130666542310119585451353477756355368754424162750491567361352678103919415724101095738867885041131465624965397883710936695894915487508035677390406024114097367268399343487332400542207902271016240467598194831329537674695581480415721671422791457248036636858773164226260395544695971806695921521080131789962218315283856118869946460528638598496242354047319874702524559809336115659342110460515705958005799406213826371160504463409341529622646490800575948256961099804538016100386308750508429970113765246344278623243763336989365364012661048243407429912891476668883409180974295084711084920110149401064548425071524019942948427684465045890267603047200043102475432513639276474668374973536537422428569573030397137384149154044240800631880468228733867453390367256875067441853014924169718128611252098449627329220154935677422994130623155120969343695747750417872600330042016995688664684372679122053559143323569322136622163105185142866182942122181494278833095768846121333474147866543844657357771106605934512634535453186844119634288641896735861169265840005090054917862928848435573640985516960385691205007713638272020704376932814528070938080807149670209597948848414094017763918443229344522947489759764016455912179589887256449319376593356722979333445278009743623216730928001845922127464220735728440242744010656474963951432912531590430303720857428444404686988452334205994376015732504037105007211303100313065848021141985320915343995842491676410486503345909548278784954411222014960169065377990125764341733636890475865949177670591505377622733626982229974440619506494255136028036315360935859781503973427291875551054113121745883903532884016330479840189186744563679085689157500302184021314575447658719026924606400204280268862397957758568696608530371242804464161425840386091377709815394191321812484055678011889781944030984728108440106151690003333040497101254932198773853679933402567596238440615947530002535527883241883066515366197432411405142615817646793349716814566572654228492583878017163313984345935870831816176828096152316437431212505652244210667522406609965738185101566844123163615939545834234564262744960747055078965051707414946183239103726286056881390876016756504770786794729355409810904165027273383601661426881035751525720054178349587473046254279295691113965002799044462215081305850675363729162465491989505900939203260860582086445838920387350869152618958385446646098810385498923910626414986061092180117871633826569581741797827587664287616281956128606756356097418775990965246497303656960281210587274233788977319666012521787951465007104054719831983026458953889459683673053306597679052126411656036751036976464290315656546987976704948333628235806696489785675403068581407123059223695495663078057331673567020894934678360766858415193327705230546417044541389415782042990008755030630882959028647160635872136706645575659307594816535450936028118187809001664326515701494457604874650372731065705032017444255698144763129155831018864541442216471895597291286605132373328748423404527799283218525069431141435615825732046668799679195802196734263463712172962318978265415469073909354494861145779889100238640017709165904272876326068777345806110912561983036038596348743706911782133163306469173174827707405413171028079811597683880707772963726254036804766770295149290936020232203158598146877782867161942163518624581656214239480038040178316128258913943596406827193637787775351875509887654434279123701392738110662099150776367812831484260454235312303210412287151647711233384252618066024892323336216603116317766767380869944945867888590199055332702758323789006649651953956492741571643665179857475819433361168005063933280785327642885219999405513557040479732109799023983885813917124053341319216512737515586615623919915092889504863160632079492147429038158130287975527578512016399607451129847571299048241598123264544223633724794442454657306742297122989668794879232219042905650973558669355115485256560321400883040103675030779448763349797953395423646275755148671996364698274331834526668247911024297478413468942147410756765337767688162752358135611897836062362028886964410301979685633959784754598248596000572183704862567121174448680991843847307077379745904537468965528297437980536245763576627476885923480149090275810306327024619737689820058528129178460605616802009567053435770063902345781501048337474199339698548501535339738072295632102309111605514599690849111032101842674757236071830811025607955949517565368911065313301069054061771409154371428633330033993370475411603016271697531155316360262158580735356059189573466724903304297707542312685684671602751598371617217848291488500816081438431598265147769557337702882359238503072550668591976097699977873648969432651936127341857237277147874531429588189745495527623228231357775173280347334972723157061285598837044429766423331342239494607521957224949558686286670606939495726524289089177868912329346057154603226914335149917595918345522554722512712661200967068796118124445292500465134574579072131028676554235297191069559492740763702989880465330220418868144123361254282399505355832011600356509060551046196469437406698672315202250932495896767877050830665482698429379311947478768199939623740363602399485910423895752244345020865033972471977745865392986554416706392928434992218665665014834346437434760883757693444521199721077548433012394388100081257961436994458301616540884441368705315776686108984190694432751490952402565652141342909625228277585806947276148889844677309353009560340793934156070834741941237670712322256613763262997971156765030968300040458122641159428820746244209651960279870155648168545255840863389130751356026294203004608230215590398246629561979889268886353342495285605695852664541795878753453896216751228593147179991083525213793257790146014808840704118516358404261111015445659372269210825391445144484222623341102331945977522751781588237953133980333619665166288260373881735451236617256136523307277951126673924323604573695960117380360733068972933169174441811559773253706335539443351796201963603753124890367961727536326420641906626598602521746934534165486891070820646902178930806540492458193351561731402223371891823439886904291644971056134037379680007275220085616745767959368471074508670326981673231114069348340396330187220383027237066296695156379343806828271042666944224733859915367618026851149853959257691538704586196682300179510938539146191372228892021698651279161156833209578090276580906098514399010203147339480200678041926646016588987922972042203889284423606072746623102381415669089398119494696259661353110488704072103676056852869765774450184116406253039109931559348794963131162023265354508497772761921219195200205337175476543442092759669570339918760667137833820778203393135640846775576523686891274285508053063269625663857570495044128384259225798225301559285632844905126661702651214284924241377237444953347616128988519326344424593829921755031094165804030051476229114736103992226352340180899194234899561712309523548597787838839892532034370484633061922839591823465155092639587668627446302853713130929074644009787607855729074071894333128311866841418202307287558650031234454307571661379789600409206199995662127916675963738505600113193192408947055619252937574057384297537372578780540101951595968774781142381972694274075229152566019114080248196656977499978455897477358225709546509251552396653501773189599624790442534973257112715572673839247118486780277823138909375149369285977444887727845960073068094568055858147349755724679662762548521804396384729802485991243286371686719025310075130054386177065274770825259610119853958158162747532833645272178992836137846446353615171369873165190756093024076171172126245271162962686769190366771704344950940694344251496392000585153435525362169622148397395941352939505217599018696656123552516610050747589144128577435452483008351222596310257861164513481061146738566398577866379673911163519144147544639969922807099144802561366778832275659235038165130445357901340226784488586420820871140061303906726615282010807075221826472590614430657891892352526963394358828295184461973900733031282932950935571072878273089950578153086351581947976779355314436264455498189952358173568089208599545484612549517533548361586393898503108037593508902130174585132984800982826910212356011219991202971784110757647143464010100326551757073000176352352735754668773221608956249924193917841436724947991015437845024426676307698743557818709524200020465817777619585155787228983916652483960806606406327631274696185225295222318828867820486637939202830205130971924911361531312329002327817255702336074881140070869639268318706554537722296731373583192130918821378254389867005927648497483561497873594806485855116075579847656510261175646916437505144788774371348188942499989718411585399936669711947923004084942826435290819443177926330458129507596918330849318765643615448428429648045149440023619343878041237258734219857081462804262995052170341230819819923325390080671153852622988123429291167102676551901903516769580133824166858318168963263896650057908664801146112469015750806121310376919314670347199479546165997611496229371576882330483703209008018688667766508024956424848473751532930768850984519870497278282525292686792917287604521577210135337257753170920058180349350721309568671365473266674681780834111905069864501004275016388889413996691339891178220505833187102590095765927250452597866456452404751042615485209834409992629738358926534277325659340970553932096746945526898541355552219065916758879824016475733627624956280289685035463454101113362556934885301975193529126241131701441168133958144555900929612127745304816793200342353078993568826482408519653833216054717335819251948500272309345164669244876448790107501413399032015184218759031172755354430547905673743882301879019892032919234181919352617825851504446777720676102198744099079691903304357099598441392072668217508818855079319621918487799835010553599806759307919292524181275695648828495536432203555895112486928098581526908634065662146102028882444187546178509443445640886730301401355021278295213638693306948245379623405628979829172282601574346784978410770473042130601452954793686767477570214197952678075046918877723050388296871593265313643140789616052614198729371890061370142523836423191577810264574468701821098283564426557382302296093030576404473070813235172501846600930539371365696763315418739318794427917896079981262553242676763885317686420292928256877811859063425950563405902534864747408361708624571568114629327153077666228971695196784628419532580777135191703427304468457913262456974491156119096020292993160879064115785878605977630577992523999744879814433636715118084060172811829479640811233597016078508387531614068569765159676378220273778992058788053004933509108203109254254544618215799976961747595929437257813351351341334527649934211633638207138106446624058327180632371017805792487453868364713652436643683870050608444797387432311398117341457911496656443063000073856790161104087025191220182641110560251866295390689011990577554684926579980775294311883275703755248998551712396842839186597299087417129979670095779861036643132360223317243432183485745281427013004665215949526660572584218201349701071515111799091642398163494039285587883982806857584797127279157968659070794699384843835670519769495927749351789637862000101351411594013072321003060289152375613280425840500987223404820290589859566394413336928781841859981733552338923792482354927768268484197626256927491086624574335128184054169267444365581044751348735783807125544532015257553002506811566825606132070305740270897717225060686001288862319095991635805866664381838442054806980161341926229547387472197598914701216250164584858299515632393097707755231973649112900521752397365172309577704650601810513831068626566837678827046342404644594128109031335834105616779724072002337648009841111134589131331255544430874398556155771937376471599671400630585603821887598151098487297153497787771801255192359881937611323760354361784149359704814518159063617759204184167547290334987119898795124296951962976245824501693226696487114977603371023025211301528346515170853319370482435447666968373035275958256693556588795421033890548785395353994663219375867426082691337319185218267795283732451083261428187871854933635851747713925616445601099399468798727408932268539937318998983494753645603016156282490130380415008014851481387285361029639816765148308424765198562277011639064493551706834404281690140050435395660175772052903006370962488431959230273745285286991461499175160957589912364357227458724249399827435248216098695667117513466178919787333343190252243356127542491178631294820189068022955997518374453648550089292113567755662604984150457869285503573344840054178757769870326416932828032813084775308956877781182580019652820757117737315675282061183047956712658303601554354137221805937920758650251687539047538679011005679593139386285651252705252401639460158562969286028984734530816235815789052039909870551165997536971412525249460255870140329205947018848457045849777330777417818181170953074791480922846938775887344302877735541581686408192405067470725004959387048804208570478596524780551163212878453131113409085149355526619740938118804345460717963162728864669265177532719823169502669197963794223843653021686299479786776981367574895741509046841335673420126382012878302096581862516158367294723132495336453026481881121933712738714584837781638190893773088216802571102974114675090616457594168695451566014593507322842270164348827025240823270688033326178097673535245280674800351845303209111033807445137118663213770495276396436362766506101286057080301071184471851895371989097499286416094004657501107254123473784566486219637030969833511731087870845360809357401991644738356231608723230636870863885872733604825009793695923049936021375084473472813474887177627123716726146761682910231780699819698003962345100770094309730072254200005874731417720254902035537680620869902615350018064919147311673873539942085896386916706902602936637551883175002267236208448870830957709390378013888939760964588964637761783330902923718320832899997753246017034572367328285386306473956593206970131513938314043203090175601452000223535660592183657718291785273560034411902368888991427507300015888640093967367021735257387331353687857659540479083551577814320565773047798197711689016657020375564723728253632476593994662013193433842048261004521238704636633520995311007269279113085669365790984839457033339501282471816184630210435120724937187788419185725297425894371483389205643904306712542461223793879991331581186499712530653904307466821798635063194016601728115008386553396187097553798672273241319261210166094725639103734169280181549461459955331422595488895941370802601675730810540079383973947871201015494347627721951412818364446716510899430251157101894250318186224307047036643236415097851187892856876840592327154600993425782824533735261648681611952741844038254540990320530822175250010376768355476943582223401508357213704108029051048257499559967933300545615219621560574281348390463140406842534155726622009498266942257554380831914521019574555789967476777368988401038399265297337138617338409951858691909080422287929019261957488228249634786971381461416419159942686193791504844025600673700813254258199544067916902395797674510213614274553856493563791394165582214961187901286355554901310673143050266620274015109569150237558900018985350066378242568080112340493023689503146464886086897113935041007528350719026451631507411482846166538978538916045729434313161456914962416472654516800977870097550587413220049832582889759562324567365011120778427760106271526961198821968836349247238818810388574492820318412431629916579244250857265430362657014516595560864512193719533204391628391776104612930616912212282631593500479941285711303931619725486576107366897862002363557973648257587489829547600470981662411606667963382034731433759103999001637440564151274819963491503755322244998342764319882933882831601427618152644324088458478602139133421168315240558904587974738193878506101886735549478004650762011460010803177405795045114848145222434866385447509024996722308977202713881440526352992721552612003703218575290594563537412466051605092252637588959653847852829443187341630199381467615923704986314744965851326945528736356178040550463801996293959877192692861492582032545935197737799942064690507455455313370482061510607569543290240301567973186728273754214658514657693563118243208721354198446807931758175233944508897891638877298831157187000748903725938661410606097092067214708791542416297482033193202348439142001873561820687517061983428174117918312309828992619926480162898546507486588497919402534252671401749829368099740192076151250446893651099667638173564718230326637612531556243294073673398004398169728653415250535690497507732165352733426431627669720209066252030531637133050982306725791204897241087703942282847178075423491784459761586375773809696963053743995168183882533226992504501237767972148170957672011022204130495178105440587055925146696751387515089387873169393359084561853149219938920464228061090558593151945564984017865558511989293054009061776026084770029853151995822907607884476239542317163655335186305344903520471585572889953780462954694426579305045062533401261105361254419663439011705373942114257490723142792833751413907000645230692446495113381788966057746023215403590735907000904303653401946023864614691310237086233504518196296455855797580310061292860938621888438911493853739726285834308161865855402958611257388059655581623465414136828443322881351956752494255867217669769744145022456456512749966203149461678689079137156177855271831376482177164917289560353204483053601981982394849125040618457416211698554644208870783988927197657309796156920523214709921488041090301722570052774500713657744622189018096144946175585797112222842532625988293212968192906037349953595319952301919645960837819377712168183574450496922851215606421399492971381868817064769371350302100437560134918308514071484869915140227280236307511726116393310897744448884377495270615487842085964234600618818982868039342525880806551880317245706726379125189975106550385439319590388452997272392737795004537933438691061641142636420009544571388204930020842264839294094162405070021019373918416803564337015565328588813206802118846813364065969751204941013701908045415139780866143757788941675637226939974592747057080101034543157564414025264336813736824391330315313690165757099417768579899938766169246517327383384981517217029153296311964138244533977255445898394531476406088232399950582106455582007540352858657998055580642225527881024925148508668753359764551658213715529792954619651754677356539091126095709427056874326589292020752959541817716032785078557903286330050523867454202073119757023919863569097997996149189959012659601713349976091860514732214488520344488803514568428802987528367149899767727004612447525324528757088163006562535929658118005891068723304133233846861839727686159944067764141343901284772786919637153858653170094514398185813920190469925885829224193147864646209399264771384066669161279135161511416308400632931398290007982581574263522009460477215293776309779908952825802697237124128977297901576851216302359132130183975564654435681067665094561318467647695242090461471502497474677078191500824597473388740642252474207173213580319629117507569851034479601212914432491995618229761281603416150080575554699412963597045323479077218404578237038388757012013016940391296634154723465442682444970085023267055248020353919734304621565430453746888010895550840046690968049984450662859384007320814397509220204416616879585485026222173362723426455432442176753155960726507923344932703126257803170546539418796466050988318810559529657866938076470380479367648223449981859822514177598436110623255277538700056323685328133895213916847591004993799891243857622628075575854889352675056564480127807286315378919667269993383629889307647822860236448820605674279496527968034971124189704782671609524773921104736583781083747119484668549619553815804157878104964835756971694752926429493887603712596871764514186027714564753328101260568026722365940318447795737688430493190795351484675941201783435490143354896846319587173571736768692508572582343882758907019237472397262963058692140157769801573696770703527838122781364182225985470388927353658989100838188068831199066358184959141446328768451562322657799092782634348464171890593984312619735090057111839276406495276510743105141634615019120105357783785225954419943238823491155178999713623298034717148878587192751212021013575043244892846568579135851904667044845297420382502680346886553354205522942848587055568025985201043389635035467732856434758649064274952403428963013121426785247201260971027832778344272936498505765596055143928597852943641653273227480569566420765200701365405442232293376067879941145229931134187639037881112498637614743445571637313414233876969864362895383708889669013295979982688989607273906417127046407405684889368045182616305451075187801306054654270521854953654048877872259424086011554220763212728115722909566439471633596674897713265066298979322704580023889183209635551408360108156927182054730277989077724621548204705483434539896538672993292008880997290004026449119782765380261399461583640195053705744126696200552255264228834060889681850714629625036534929274086400071866673711779754157829447190860792965467020463959267574646265475663851203376061423429267410825704634719585959723793832341090174488007501332458639905180279176690332200175835536603414953860281108650578375101767716082374873877655847447414433378404713326205238863335581067763614169868035442406965313837538680448214714223103097912301681217924647187999229808059519597277064068836603658927008081922060376383524786141934643370926668139253191208971264183119871392008145407442950941001929234327455610422769675057687664651036177093397813939840078071636087532791955646999248731587811911752462079807165097385124969206113834059988735341849933592826761665187654723553634114684319880934067334407961280572721446331516679115910667819871583606968890400657089274308427123971945249318894793170777539098390795131198008164060926807307764029749697654213116744100191079758424796700532354647647064679085294606392267676595288848801773785979234691279555424891215909494071311600135482429067711599183054112618605015367701638951084597234076611523764906346897464062240839269925252853003910603779754278399438880742043761304925428539628810042072224009125513691221174432516361393557899325060024279558743000072906001024136908068810235649950130028331658796230790683152981019965336389667930102521258972487741899177324578301726659262874870619906109816179959134776187026675479340231679600331103977198543498079172868872746970257494564663454851095413726216965668100745241419932800570446127581889018868970969504681549625779383641830153472262770768012155969979145538407936835176503046386291739769404525003414589095422807009127494570497919061991267154901481012281237233685736648409408277362657466080490582412105475310377721059699993757287252057657230698740929977947589653073612078568446390411766445887820133601300346872086711950807901488587295798745209262286034823345840080862858419785127111823154889103754609544753100388977881738944272210192228672893582701711957614971607093893181141087304358246910655662286344488473276425401389481370607268992355464194500409334887125432512693746770016874230783842484907543464332996202098441543150415007140128447988883622062405619141165895059781195913789338757955381107780560018512891807500516671316667080585018056822196418825208785541222269526458363370350061006295109897026279352898469726868023561162523311372931913182237117683721443802686292220575779738035597098707812183893221480925000830262689253089627434984689561008998122867277375668075445110527908290376892733646088461765139647105958516975725685201527383541033096552350607540503556873851525634246779300929386989717229671430073800444875606471124270953398402438660951629782792057484957271371039734144719778008704314005966441201305347073809916351630012854672154708724029501926490712726363397699033510322960236511348333124250463295429272660140401302827608890300940532693195893216208133613496499645068613794640200091536269690185593146462974381294733407501905227712732707550347286270222716259439547642256842406151058534038203058972556620266445019393184898856713661040323967358282425743146672462540265400721976249432785850472218368268593435197755705978028251718257606633246761841202972036850085912435542590351484051893081396546691790388223182838767180962135307333468080370317896090669490890816679178575015065544785190758908049020805568815794503462101103191681504702409819669606877174641024903362971628179108709323367806476839173065701549079484071412816626633267762127863458964601308770017761318557979072384765247657373294586376717977956127021513414639985421010816062330929906718235194796230253413867635031071598476571857002526711493816532509433940428779265789938261334963837751405636680208280836194313992826803350339714946474882527457433008964833422328256376576846504495191514504661260553526479819814427668340958710445681525674492510682720252933587719156290998531288880056309921596249135691392234806028494367053972044105604951282372309847023825797202582459268683696515288349106402544732186144262852653607231474558842068206981792920991163274748740210881306700919610982732482498650238673684851702802560430262060192852530092650729981554089149026496318834157084369675234797411882237778333021145168376392514868697952600377353187339839346797754217927283497351983178763594024555664116274632807569972965855198177429014602944319417697102272041541524613463905285247267342552199132300847525311098419031939984081390770216309050543371913768811442624207511246333298749834617054151669580762153023886236374054195871064168793473130602781339859656007380928885702624133268663020726588284094640848680638878863358261424571328415778128887578380576496071185026633390937474605775404374348094471556300807257474969547863714964539356238633118859626109085313569192397049290490357437198408095951716083507278180346956602496853273547069578399120619197222642466291331003280022689656763264714408970921821076750136033291301132822351581320173059344847901198672858046932868324887389526775536069388826159478983469918433806627518573915521770130180841048835910678072078675937211678226709828090619287805984962405053578793017288142596541712815386515423164885407864422475642828231007034346010968859227330924142780452104150337846787961581151654997807446033922746744251162769209089806678475777123636276468947722894541390271293701967626792298616416684283784265320846610316706085878500794782075139647183470324305377646524045150286129171250993356142324832434934939910240741863766382545366869865487595814189403076160781545233068781505633479800252538984801940286724306916305447398827990883803127203703818135784439675067913293705831150824515572677070264842501143833043168148089528577835975892445465603240731964459354076615178412598364930876748892935329416644277258101053064511475121397403680232956137765793619822860191587243894860499871910300276879159384284193432874712919584520041708745045087806435582181579287397068354923785724372210083086512903720922256218636101330294730893380716801349485726204017473891641505535822492473482504854623569956621665905144076272236318281329463170933444833951801504484959316204680353471582461921452339481714264165817182948346934555938196462946267725546514170143744351631500160549105807441358067238131727286883201128096514654353826752247948733895162283424157641744759239484476751065652776631395855356399202365544078227422432889062555574490858144047664295667304081683844142535872417923461219884044458911377379269614088519273370328950922147590538272999387331056427698730951982378454319017570561570091810342768931666598705284099764297767380287691630922561266423534372266475933960238315500724671938284712384690196491133610162594135639710381924193887655995245462011721132288215963742151103751068751394760326383540773604320311305527350629279042183733816750316664471022594654327341253566940082553202023152026578447382920041169760242007027257895810039832416421700206485556951749128040818277350708892764327588499654721287999012450301084859934684744606095941310501126918728352373882114950523959979377077967737832914722916341168123525683696433268985858352560226789538379324456434664727480418866677922016823873989181953673793677833021825084168347480862991133302186484579708750762347400156748182483074533822367975886731766296669905092295423687895652769637413844218027180444730871308810823523667783052944958902375504678201017719604096691267657936533852872280345688669634336962946181422169363703693702456501944819097007983065797564269563225715206523135256520842077995171654430474868227892954588699007240281444479857646642552618814215224802466927865795498480603590878672907498021709954353814181042989080279770313789436411607195944948998339322599077866359625869107031319429177944441245537532749313125335491008880520238529259007582538874707008566359025553412433416973435393973886535363146238111670816376691575461539615466089758351858411528220598206895783129237868291796225100501968947269758016988971321317697986444104248909269502573197444902592059171783611952320936951031148866690102228935465645308631344681983588432889642358915940492685995094119616631094598772416941403027947329400539563446499049929005331409634345301951354959647745168388624405088166982071607260242915549987939950550701748566977488885753833700549890379172080614362862863211345868883021121383651993513531664050414397290076808430582393249303487399245465958713220899151747131579597024230108882369630272839616935837463591626700655427378422219267546753798371842105267339254259761502812661159381197504520911414140043817360667865115038786307866269664533172433383753757001757193702596248210185479949866361173407603218179405385467690028932100083916618611115912939549072624697858833131076308311483455517048258203671499273074528106645005615775881675063205618590696807605055581981249207748776112415413981012806042854992368347223932912751062756268934831992314857597300480527038657452449095134127239181051019926443541212557194267061594902320290890393967138723661832893725411016159907767361711576161782431854184571230531697153906441869676790742648951404143560757501410675239823822103146747983240672019835627806855086427619465959193112527802276195357431938796046791374387836609993072778452381636540418333445624203821429969853930019267929222283826591059143616799659190728892862892722720247946859001268156875978321288846729038194605299974006828853402392156375533526225904821981835366283404507808570622005924476770182359740050237619877578686363700397735657018695863858547192867589903754851153877962961298768829440389084923324392771782877799515841765435081017884684039373688262941380262251821889014631876969118948132995902642599447604385279855297919331667228613972064770038448349831548196036562441651378190856574562111340804503555733559108433902008228180532332729377922267250797982465108140376225648279123349392363962820046974839977914261230678890305442698919506849696283198487760111068112866633546772195562837429942236304672860759353563041104745002044645907842904527556385373663476734374967490338949049279892154770720485348801204861271856005271212659704891901218272583408603834124868992678610347600802301746085581496098051364534924604023925001672825745522706661416036905484163459591262655798331719283732836850620296775391780449492118140529264558876707561477033818455488899776250614298931928683541417814396162733942046260181856904930548643060886101485510386003323476601762699631619058987019649338525795622421158279636085093448576750906122576869132081715710604860614216159813737599247614475710767904093889705140246472146522401595343402487288786349233606268094122302657136055650942744696285053258934925513385786229409374689521343587730258428355307627247430258004650221848148591032954775445265191326371033645938292646954660922076037906590960136203647785181220681041105470507372410049089177027755054789628731098819094736509861083716000546358359820369843782810019569951163921533136373758114395467160808287093179063950494959208261497125893043894417949490289172540099467062463546559704000452525536317469591709613676227054498983593523801846656757761186265984795853508752282859738205866105235259658249480484592983119298173378032958458044253941264398807246754470800289078939733514389391616081399694208558750731751754433926607408241174981877596193194920215469850888687352435621473253008244497532745530292716959651632100174749576395775102381143297053642384506454503968692249942905737156349194078904689641075477809830692761529398043660007333883213167822897068543880203777329137483333585976432711321162988946831447369038767473750102165953114315745969354917325198153162021851293145592467781120250066084596602444892059914191384390694157984541679015031346226502117313015951865145701827285773685083682579494861187913211249283234793823664378548455886001501785144911328101366199483771397647004103359957873691450424636807113667069685032899809737642333289225044104113266310772895378488935180849597100583986569309576613077868689052048409488108128138185192011844462992635380449625725869489204010135829966543478201289373771013170404770722066781924712710048554011721729365936780683480872081548954929747583428739263453185691374028691856172348171021540226673499832922781740691533205281779279965006565119947101995188778410220895047958569752225407574965556098263022990131933328448389364079978900376075284977764342387582950697814313527263340221469749564762622162900020748071393092870757810543043978962679330284355778128030421501589855737472367899773049565105994818714992455258114937623655028556209389781755321064847800173907088090271287768798647053778828857764950578275403700049214843604744858807791744601601961736172626697124950962369059496905853934777564487952990254823480930949627204366669767204888568134045817718135460515074458374334767024390134050837104828110797203244368446239942408665861173368960943190736763605543128627528659514554173126896983950978779033339858990430891501024886199922176760877701526529875693290071049388880542242593004527112534911411531157914961212308208110872422477901332576152641976874326422033568632549294753587448219523530652756629428438930675094105326486670978102536474747318404019357403082596964906328660556649027513611582065463426755994505507714845303165359506505581492230847509039397108901912282881352595420247464474787794490578012437133110791616884885600848916545582005322256143235713732508084376539614501737950649295740548051128755243427294386569326715549215519325247724786778365354559539188044994787282755107898517353054418856051757551719845440715319676968822090559730808000107355661627684493659263109789790026317341387916933041081343712810731950162535499814362441244549471710792520940703432128816403996868591033388585156157878008471010854816426087118387767246780527684338734481500877376829738669804380778238826798041482282986733313613336980062115398866724068022892134658238170700666536236028720320310706003226270691745941142161204590117249515387796282516371547511431819184371403672861140980282892358263067296566916063226996690538836711477191367290052372216383492510959923181615511381775274019246437618217781777014986100339172112718008816666430374290861724140118524059400338380721835298387062001369440089181227067831891891390832491519618673668069381988135767243437813513008189821678292740312474251033856775608175869515780859981185039894994714667884988884460632413606154362951583706575243924553347263241717139250066273328050524665911425137315142794156247683298107595061773618086253178244379790684603450387960937458187736772427530754495761874245942880240317168395431771579128981698820497601413578454488072823260985877622297542773056248498856323553208973777616503220396815414917464627806422126316382010792253237512454555794770631302215020935269105410143856005815021304939645728862122202126520806135925801013991167838010265078032867034420247743645704342757952316082420971655285509465821553040245000137558797298042658265976236546605378077526417762322745794580724704169663311816046113557477965774309981417794092374301624689366368627915562023604757498593012629746515721425039977486725333712398352674012640837596388232858131399550551577528749453071600682327891041808326162272970662508738659646851397438441851628929614961849050194350443328851110395459966790666300211967682637352459695493305748418527259391644118464561637332637671022356493590065656981592032122298191510349431670764630175304231651800710345876054986867749950766709142294089363059127836118645974954159863926803793865653193887433588401558427852085363052198456562445305692306080935534682440041318347958075010938707355959433456670714027054349692180265279605318393394002411991642967302625461664341742266940003565312802251569846265544384412100636928544976897097359451588734036304622426178126513392324360211482384431567536797265158873272982874122924703398801320650198872763362252798024356541035497044178192177730394176492994935402806957856256520918473524960857845084064556739167530370594402795901359754014679489380661320517932388071616059230497445481180851995215080860992608109970958466590682068533553693450239083651496341991568703922737678787842092590076721575458481275982510129960951137965557733379153856773460217440064689910501710651835819484792483084901845023055210293309986822182934091367271503489117313947379883232274793228456443977288007228252790735436865169020908007462826417806934680461110161933742445840731091913946608897179778924623724680750737478662272557546805032634875226728676156882076255689977056243863897225561359975142849436868375636018445614307817566592959701667234809362658324900415790204787062717158746950295696728631615951222874955068666602229795797868598885760884953828823163563486735845951644617215878061983061190583561554287258818895805670111771042811214986315948827163868599053441722619557428776696509414226739765892341967230988507451668857683510984256786503584637899077940689980888273902669727114870854085169467788741517624137962107058897351787916716377337455534856240369619465184545765563740521096835045137375314029593924349615621680673716715872648485914872592412017249827399422914846543250592675375736096026587545080827545610344925731608331871812678694037956682147935401849114649359482949739904514744550216439717118769892226124291810951955260746915911509364768812309569876522030559650321847407539242413155768299206967107771927596184262381494133456543109094939560223435086250346646319138500249839409273040773262127525660112629737227508243103040343618125659176673658488619633495925077180738322726365073253674951392649916799569718750503145029866531297650368031600689428305408187410440878990186838634877813538716374101111867335402046673170676467402417553834772639002238004999811774126873284531424973921429545605065342272398347865693823555468848462309420082602941379428200129608590544194072615895265719021651872424634355498853985614712142901625526353604059680505256510744663200201365649626265066133659191791205802791027453670204836195059020876190216779341197850149617742263520126886179751684002367021662141047027028815675478009939658882945918696236060018383778963426856216531401041639195761903963415703804619429353625109223667183700568372376700676768563360190961373175220325044730932210782004517121241395592518535410655428541328195082451357428411487500281672857037209383214056493976717608263416975361505036288149793231844339489400243439961116444076676300840216097546861223836238988058357198814234340321497703374877134285268748570083967287470430490985916913567785701456542742882480408561230390786714335100268199635428112735580917122565209402099862963648061663098491118400401031312500285594247795098825310538335696919693089034443020520856210875764587693208297338802217203053153867875654193767010029815338626778134552846188328650529995783584850305657684059999263380836227218296129865675433424110121693071894070299974993959329647919788516320127042607856849911551571415962548173721639804043904152384866324246587122830813876052532669463990729070826987565389526005445281139401842731002677115715870052505010075012684704645669549108852486017381282585432109665389784836462179651379401917057089325824079262960442498581366937127392669829901084655498121495424314355069066330388349999498270335354157399798790513096174139682570669484077823829113699099679368860875196402786314468668384066676724388725588723544937197708335704561373627900167824800149023084187117259873801329947262869896642798558071311021049941025135014311321961181103610697887764726091224517336757913470473733053281717909126768143374856122453737606241552221040522774309258201891651732263025343638984650576887929910473810061802685805017600454510672667382010460486132299839604168465665650881659401500252426273142580389526897492187639744786657766898810146282583996681757229949794176551536731875309343302006032747562957920090303073068165150962202684837193976757459109286917879032621481843497907980537120925362860485925661387190172787179165101703051322789980850332820826935745526087148869376346665073378393509403563694434332461037226467077835565674539712020012492119866276278766209245915927577775770505831294972481506094649842427029235483953912202383011204155109774055080205608224870347519160601297968853381702157815256820090333663281619613917004255226905060988802870896484342904503132854223318789940182375343674516270488924815380007973535689711563285094477779589404272401249245558153941497077730978099625369145192662263669124610670134910301175818514148143283037950129910036931556036898403845081681753553961213444629274804405263823535045050416819385007626766361203272719362338631238785234874823383164153661693812361614570436420615370219207561629148703129034068753241687809495860923596918077587120230410383223527730591563579517816344250056883449913746430635826956746243817639570362567631343171620116916831530586963390218595092929142323456655051438941068281176872737126106609268805828937575659738991055814090660060461088011270196526374232962340621547432136577166467212168277608516192063725176815614542895792943997601861668392507010542113752257521641882614535121342498367419736817808962694265847826026481299193718485404654136475260210524281846538474390283520911888023062940828082489644409664020575676489118768211341266776361220515903012998836972262210684723944119259735480760333167132224232227917267405541948144377955843395890394743615630246708877907936580466334760568198426429435419041433971208756652033914748521952864831903221731916796818338947022038218860063783455820723581444941268294950472595476034194981011869377214701912589928851158676754740323051770230873989324935524885399463566488881003749875591048206413703473215493197296226899062887200801630662144516038590584799635693811916271235546588345553889522955560258093179049461741452289047160088739469627937127392144369143103751916099090933308464055005293988277662082797593753492500741999633399496851183102712148087375777691999805451172968059999849495084883486567945950550662172042450364018268892586085882525397116158268611957786064123420235060387936983961246492112844121910726110248444890320091226845993187367599122734104605567603501147162414676647447219445794433509569297150181336856913324368101147970980704578968300755018405549528927951109570106662690896726727316105714883689837092424940697917331776421740009141701593884846195914902848029215542751612032573312861490730793140569185760699373762124089889519015435679945067026361955073901311817953915577963593751123145403832029643886902998821176514756280296187613784186405077071315230927365370169406153765400797959151081711324603966477664632769249505612947474889812209842139669941111091446002030396633656517663925062793652006757799353494464001311846087688995385649440317470704552433320431643084676490313812529297219126962570620833722302199712268086961884376385300905782023384751220279979877685073381865924234902896366463941590475303436337890478753790160734243097857744049218386150900220190841391387637440230035122448625568493083893346914287322694751845864094573822444940270844095458948546542156186485202080017588173441788789732414471015396857147123367663569456539225921956580548164027495610005726180293963845020386620284097139197277724018762660213246259399493073446689906075400708118253627972514990787843910678584570148287960130164051170126954077447304838278203907708373842558643181298691524057633163680241998155884431488270872065395594339520265146142026328520327116042874690746079783442094618327220909426858204048717722069138241868296253251229701605425621948726096357342940338357838860052171719153026231017089813964646564236695065292892527581072416929356830085649940411602453532146569218255394784547841625286810444488634356258586759238881541323197617779297008796679885210219435829433283778686461645344582265623979646074447960002061061159834620333426438728525454478850529240151939805236625437025889132253984476153882739540744043567561080642289647607543193821159568701170884982858310891011664637364731839827251253270340855244597822721582786038034968139749095281962634663481480320880076306602835817587142748527993339073359940349038694021400451030764717859441970040188351196920832748891721452823806119230748138108068383229782913647567369269076929771119152910653633201362339208720003959250977502725325450501933606587328778263651242962160562753888384461219303242698000649803504362103728006089134404270043055795020357173360064929397207694569482301002096079377251438723590474600146555100092773007626744127942346751540227789938455094427789982966458977007515369962295737454411475295592762901463794407757692845626476943000627963103735173561635681951588791938719290999213913022358085748483271165725309663889229576439141740171373482476720436525735177752521773818998870243649708119762853078648540866251763403289730493619968118523893007916141705073787381971664222813170271893052787977871472424640855143564451058572720174511816203874667894837674144523410746133360275360924841539285614271519889366025816148327281489511386141817103225383748645555031650234240147600181628898511232900016460955680604626072705789386980603510091650597934767422067802769866242862444508638291191417520374387720379444858257880144645609970584189911040998723382590509904160674189796192276043905791720877576587536477572841253823907882295052993906393623259954519648679214239000848623197351300855191693628947565713306948895071094384293467635369688430855645881334863476028209242455271015413542713381430996716520358939117499129687861957718295753307755560251738244336268723855602171609436195058076054905556055895022046570429606304575462386306448220488886171968488747556526900268862745008249998585592140613751969965403219790626606009966010994102874341748544075686669185349076013256557012770858125983660286937567173709101337494792151181391579681882677639635791048894803220557727874613378686275711039378102496732013686125479812549854484072724377200535671151942732557650169720867691872042704623519897705090667511155374434920691470027383581027045256733760865508591107673866181051712692866042472001472955861215934191320555708070124914461306568506439437972159697883141291885767613953919308841668419866984355285985706998483312718241823938077808638230547458600052628275637897473576947253351443161166475090323736093932720374341643885460108485584226730478883902122107072794472796608656491433164320244645690881728452095596531672096540424419232636849319190386222121998428301677735908284270956071638087013402083898877295757611436653021734763586136105550181205684237381561258057075380325474295720510628909011648137739603477629979103006045768164713965767099051038031033801996546318830263345831209233201688338721085876366041104549370253473053560645738300047924791244819981100522717566626073838279763434812373285646220669113391359384831919061906924464242282343053173571735997034760975731444708027044476785722019861868462328012865414797320617132349123003303567864549083747330233673113723469903203082892033020200823130488113771775643459314212137988895855833565359422324489362166053590678736920904631520658319512818748602521237812989083551074479510263505233990436376744012258318180825717704770464201343493446656776248332363950496761735297239892626349438079797475689588622769318591038950342675881808887605332810517407982982293318209825266265746029245011130103785879171546532745054768967939813630231119614338218822430638353034420399422871415017021988083016794646808660929651291868411131467382407662189516937141725949349711575568929990836006690649119117162507105044157539429196343721387923509408258023842651714121659901439165376618590678727549373222789008507677731839679111672417454184837630642485224996655874851306861720309378865881541872197534062403734735119573537712978459234216684988822212463719908971104600789617453737604580137647295439137422710292072116597228416630361263852047261219428065329283091851390507786731167335337816783769359255302380478229014831665202509268568698378983106452860352807129881206994987578408315544987462765256439909772988159900168018132134560032515090515387365766546409282816717375721767114394806430371744952060240900416046179474129438080018237831371694359584230687215969886122369299919603562504642605213099481466916219684563006429154751540615570547481053337935675246552419555642121882262342880230798354603567385267928164561037961447966361013276200729546197786899163435168108644721701286485883904206023612753442427874693985032158616393279981143763195330840165572032542462370366083214451289974172300419678596069275879790611445676262224237581484009003769760904740613582284386857920712516519530738640103165954876428395641430174996657359923353489149472818343951697936343143149043069248154934008777866341218296603439882486277083876463811839510517538104035705877118853513252042070225248134368032365343402563617937645257390285400382788166290195650888782974743190460755384513531038707497348299199913369002387118919985570691999444565488445262110074656391365162972200151957197087170875987080369772209721422744830949431708476559697886188999758015296877824732630587085503346190213037825283078836675450233860667968152125990522725501374207513411582839177564602337930016754894735266376901986970849346683315485046601976224063531054367114254262643104941850075376408561683444794920481041961141341929220839109794116149139129858877536128981614955829326565344680181032893564732669514757496416445657046180372176778905290327104457448846468667876489165760848319213028869720259347062436253563859035498610289908349741840938352176652830519091513725829661018748491614222570918966809577900931116240955460202515271938379266419126433286320063722879437780105524018598892788951224552049428719993609684936340953476213885499401171187793577805931998936879696327051428008780116220148739901925046158784027459840317668973909400464091410642820065661019554775911552561363738192679152990674292084431136345039974356483819978433680236118673634988808484460783066268059185119937509983943874975774595075069732526440729360698530622447842498214119671905499156712848984935974973986594395564013603769835630821552699905696270582795577559582673362618441337368443323637331426001094770986691292398194731423662391110541612846244452518704894001510351565319145508136210772361279273368255072586153390579631059092312732121879285393297737151004152467064356573703753688525240750453441090487092384754652673374215126016661146365059233196389357799614767115520751602712197340081823100283585437749373699086080767166334859986732898359555921217441774929965615728551733023784932557984568115693768592362213941314057985827725643028408729028521749043472555338307389071697109813237177956815432508721831950177752757375528533425922741839167309270721311720155034800301726333253379831671906424239644033163557877316399827806618966982874746692913696182330695098762590372755325731740387893467681477606886133481971834017932207081462673005782356735136153141844206296987068517421841749455059724962961687064498192114332650649749076224521515779121895695843214516452172747141663307148870521783169980501142761387263852952596865290092862778582922878457488905561952197016686376152114945140802757894481568787742819809138015590215707449935339712459226783577898867182135913787911693305150561692628975894790294223943129530058018780277155758325201216790289090968490326937329170680071807538431246194019009581363152592504642455837614407180454973796106848902426763464691523699678184834567930433933769279539976987173976800228709971883914216517968229530799472308908010201478609161577473841346085397858940090189035183385022548013716405974958939472668551610356202198143737460662800843033017437921325837416920497946985128155093327921488705555711723408890148148200036070358620393200164356340929655025988552370399818174004207614717498435941928351711798910450660175058394164283044397377245457097321562662794645314126642692998765109664902066189064105213832172171680264764312552880944946725879991234242140509109944314642988400928921625510315553963676455793513275765077276550549634327281565194855936192124550337723925790900393960333537728002794941964428225165475635930009827458071104628583514493876595380192796809251292625167457564612137340365124910701978125474909124999568622739527706064074695598809796374508798575265716266352988862091904001945171433905681333853544709845898046178411279376625801335717431166134795602925089921326059640149919032478559611201490647859830373207337190408322905435264316071652031387285589426634414037392295544434842511740193530280539677763175412633880487149316506007936298041758490069406837229980911679517211039946763964402538607100092834232241816214377937623876217681744001124026814325619705136217324320224657115496616533493090820791069258124381906485883217561597964722054301443805050191991212763404269575198324545086851004859174274205493831223353921051854660474509128083683760727866616466453695553947358726985907023073311271279917159079128563568826487440122571545131827229995915958558383543469253576915379945265592345651704400974305149192420154323517381926986111361191841565563607749217584471996680346841305807247865059721008673179288171530031713185788717102430166831265812082767946242703660594993014461237210011993481099673881693347670623321596856068015343063567182917177685299340025226754033231635557809106922498867678789122324855504712182880710154017758718846467931814107476004038259339983812971287832712330582562012435699121830004630377172259426708248725506894913612341974726256613999668594868888711946425250890009670065718577391393687590976571332342441326966629108192599915660945655916917877046923663325651744144950882771323058540313831817488975802230747304395195242204954740492176895868658732755996825583608274534825272940459338217548808496568409393644904869213657952059349342459141719556505794230609309704242208663134416894385288903189441649681718901662166539421844145047249564880433115315342464112237128026481808722853502471023626731893729702843248178101790560954331860157035165863045708667481219820972847758862473177134122633645116647785186378182072189702586205317286023154168636985948255748507185061794163139307735982339537002780517060953935571361026632194657730718613854956358337299112749002330212202743175626423582795436711688469387294873921362789295068503429050004557621591635013577733459166040583744111124601163641384238370334911069578327356226889588384239616576454977474681834839566286670576427936085650802354898239413591840870823205772272390468355882223653165603762615117795674411794624398008346900246004695642918291402889650936583335344018898823575995582809045601989292297225252816924604303128878688847417160453400168718231543129588589831359445900431884048379836822048455045207397677687814740379833069810898358450853190066351914183445712996073313031809103622054174343630018896921456666846211430428894547575003678189651970476915342743992997956111919921225177965127341637119067426334109425548648523997816643024620200795138321751996268440491424913924749454903312395943975511728507232474206688255866931387782488605406687452078271621535126329143809209982932942535280085241561123436789401676913499396518403037935966993717213873371610085833092205096483151907247410944384733311316977520940665211624270498824497310706455779012605248834187749089145571997620371635887609068024117127971756583260702557838588087929852286429270349765888538495838517477239161392582048059433106537020973292722137348382013860158299661767815857346147859178971024514428095762220393225548387672764079439049087649637840828960986440855097747253829212307175494239080899998340775283089860708952103376407047294322771176052869840276929643017075043893707033157128805876431706023159027657650856340659197430344394855377613923602123309202063345749920992968697941307231212071553297449319510018002083330784119582877041524598913139660830545126763377866736836080650216742064035873926020251605320385213621380441484892471121549685612214285832986605028778714790224072257253774302743063029921814691521989293197159035080169420126292085351434985594055772553975908704187358217888413613406077097394253789301844085153314229489535026341687743694889024176369958048861768567006937895145757306603223637149003994573046293150484476830150395911403783272797861225614912752480531962253110881854631224584162356420890885681677766395760698706719245203707995149027990235642975364164247269240473859522858663566223594636203083574040893030669073392463587138885635282279583969050320425242185075848617400837611048970439352731334703905747763136046061168068575511359535660439532298387803172980479806693942731385088463477339926187379375409799717439598089185362083039752377502173901452262026688353205094037341798979754051310724575832489078026176283686307803964100778325998790451798962926461455133812147731108005542680561970466304265949152054291468796256365439813536007147799858607528466486072256346963267273632496479700399930864890057936308861497572188991642230664047679297418360044650893406689303275014034590376593561573678199745442745026695481877744971684554746329546006078874814653950097763950532383371391912207024924364526178525197039320480673661162609002761767718586688671784865733788230192842970442474950274838994777152900376159042815965167802437184348125029935595856434406277786401441328017775267798974198059524352650761809376280181170205764082812068526412806134717540394342588970382725375934505569155620710218606575703629186430016857413637541898068592294653629793059204145977446307312414161672146061919169172757199776739572264085556500694310950400631851556986640419194715728705541842527180749056111900043823909171715512889788741893681475345675579488519868413993909863551882223177099471745418965741883796412694875644910664978417960163627191820689092350894102219996491479093805663166155186943593149181019088158045539884400891925485821584731098836160039962597330633538562932829662558483323250387987075086932225779360630297908992187589492409603215524634329093371467713384594497323753530875019070369133486230997244609373946428877360768699487992941321351746388215740693002662444715688690076576045737536564307050349430827593697510379537082890899852742571483841576181503499922279889629678676172071543683998538064347966727900303812194374955837647538700258113356017334349649317439904701824381281403539094765594064932527070484100778013343122497850423987755699241728417363585387078561915381694457493709495757920094316900838106537112135187987105739202211664231944122617545230140254119703895396331559035739618252896309011973747137741704603975417926050574503223429170008391468858157306746926426802625831091532525728553504601278042768006991604468684756460110025650381251383535090630883131651629122218945868270634373105873159080397238530705964780634567937596054563933622574041587273380293772380397314101831963588444323238452202866772231658139099494869820191489087352754460894552245263019209094337360655520224357457209929947833515328309048933498094638283650229362883786140222401823892045830598543038684557001805528042543923581007427168171181556520220586119062008447715549333138887081711425795948697994244462273382898752150116914726465259762228222050601717636375154991199528996571429418140369937434674028969180869968860351830108769933057800945812883414284234766139768023880287228358054214040025404293261076464114275961623335149476650036447351140133032447926380536368683879153213614734111914980791650954712771077937056520697385380032582732799780585962743917266561313269804936627116772920590166893696179356540010708904327824041831104035792395051862526942097612594813196168283940487316263366043742341117117558182751922834717026065678845323059202323674984922474577492200552808439766822080046787469788822698164605548718778852863835372751674000304207382185300431274450942372088646462332927539330775008309648445053089416558278599757068354122611425004093392288959457893942593391918804677988954543833632559085525270671876051291186021514459046327439970389320026223185044163626785533651395970504611275680795372598682446148989161831359390633905641844134074486543271982576597279110575995965268304180819266830812750577895096128570244142837360737574415901830870112312272445148227800423561157383862460889555122091797917607793356823860531860960613900959399004242646198351093334037348188834528686729315575232788902591572096183978277965906420715396008877088832568626032706290620730439561130469578655385904070039708941567102305855475884807643529519607663645946147317280855622405520752161494638573966765187619274643315364584372788175256590359909725395494369997948074270980201512361144488313408406306922867201743582362984245275907480133135482257014303420056670665315194908168855763836768778769391078366796009795615276786184789178807483635163646130769199373529525269642385920297894878055146061247789865109007252823705042043624025257094087813019741358119337938969765540977040765380410699069095597909272435999389473199315573598018036326805121568358057611623881914549932468736214252682867657596556352651631160850527871722807583758302453444638852837857745344765473960007978047482508726238323925544826342797170336858450513920115887094805136490035000867915737360337651097588034685994934535046273156946243423271214304962446695525140122559727309453670482653279843956254373423249195565503809383987626641096167568723457153230522740881085271070847151079166112385567366434134790569143946470638230148644246877342585821855835010798518212276795599236688170083933751021321739682126738440362008707368749302192977755765878601371120239124957762869830462075725514840415093856786801449613124962267910606869091617481925924431045311741633221036838745456384494493263194351252318174977986186225691223426541330079455120662523827686828601445641144488551680558396095982904342391966223408827873828111877739625167817810355254554530443390017828251023035766422484719015558456097523112779970858411188552489504202513475328229676522142169912420304761260656711707475963829414718234485467236787167937907740869953205761150565238150160168251059070409729602451294677348374815641161756063802935857255364462836718739200894169608486752015849470053667408863618030361517846419181631684804382728680922734706221985407195959936487257408289672016503575591776999867049000819855499379949752400964647970007223817875065942568037125945117265294128984987098139490051261816572759486049144714277344420879148864509426203176946253018667662787842490423662830749647861798981830141835403240442352194305030123178023152291678535866337418740248388277225244330879865166809772658407492320474973192926928228585547349402968779320808678980894640499568785382818636176136065876729969269144660334269620654008303719526280992543665023674654740435097200694346435950746101630150994656819665810572322553478355544056443714563129786353045303730497609807592787348384190090015166028558657782477037421324336793304689572260893280273093641148171355755713565525390525312862202982068344425009016743324139909511854746554280311855404670388553366817393564991801140653077162704979004099486403927563178187072746990517448802928696161381001306244696360506094448321462155599933812729666442177683168115023491237644741845203051948523163537651035050125122781252600463721655911668431253909313319116125271355131213214379827200660322597886602735137531268175954293358228109121519751138725279117218921746064943184456670401760228421990175783442566219868857061969353255889251988321933222013498980706458922826181621498256245108661213831165782500285872770792569156170808170380744734189937615246738183663244631871945178872241398216567100906575177922795723641826711431554590181552106722319344368634800758542805792865279406313633369654582133537772922940954241898224260351260420676862763667790393382283296003457430880480909813212592981797584265852944563007330950374247159865046667556179951529903336968485910180274452352428675600319008842878170005843921262487364171495329216241738953138735623709327138663894448609547468437325242825467415300005244573660403875943665134529418508237035674152565856108244875953035776628933367502787818089357254904068520680103327602193887896616993581050534449689298746504991158060508028315417971166282939668459607526842361707236722230604021759675148224102433205573900779149496736218166091024808016305605604267560541988190463473522761181416796844273951016348271862342624685188058995228166083790102689715030572325102863799016075514558247701305648580648523066033447841441977383689648565991233141770411485981397789813604454581544421556716016921868060963829304336140275281906501500363490061725987777289663248474548613679766076419492406655196915346520475164410134677954055902106899493791743307337841408522278077454035359894143900267446347368829717416650116540845175591990463102224400185482719321177265340863061606299966717626505707593658386634899643430160491042938487203420354756498449896575049036303344798085103878269259548180908205290726695252555033000568627218920679151464013981388573585249295576366399546396954692049767149638199311317879448012846976342834117935553519473424487286492219618148190585828817920529684103329588375147182412085968659715947400331402610275347802881887603976403375781065430260980349785153871931326730678440634854112023370017022957240983142816550844867568547626664315330725959218690503748923579209661324917811458647975787197569229112628768040301064248596776500243601139410211661995005669358975026553445970371660821583964363877058742046071571354360004742319306908181459009585739686367558132379761215001817004309028773254591137985930784126551974248387526043507128114669646445147568191223081164436249188593490135447330283939523104708481863876589813147696617743421963117382668504067537151991678033809830821261943548889812451363960069490085026482548885511512006123942154287658661066917274491249141113912039736991007650610509954450638640586817777093049512106422055829641368270893143000821105197264389029998138932939671363787697858092830706765371839321980464936652934457189575040434057214294635800028409725906151004801476772872617987251788861015090740316513042913456802829238154972306316755114473018401011778647988597835588323733770211159227404401816712874145251267367851915390951386302017181036985698853046640301829182926996257786378895469971624066638393885488045347498914232926319171201102386698910198411509626280210690993316601688358248980273101097420952887168619505610945979703346429687799950043019197244846281289712647675509054842022859421079251036991718786577211575943271974729155525975385320100198220385478259254309240952198239494943450925280516273009027347551731234148121127016252935417857259261894393544149178195144169623747507439105352715640281110614314457282847473087561622684050853962630016559295640305223225845515409411773790917159688552836898568273949144460680181550910119209539996908838388672889110739893276582106358968671501178482617959530068806655704512106990291083921807846084310607026876162205855752512758058446258320312201750768061788753747832204856722569859520997235757984601033949850398557711947038573965898954482638058866080372778591974611793805403369437854237930547612174755276419900254257247654930709312015451058944278091210485436526526197964148083683998481522709714601561434808866026117544049567350756736072407981349709509339163875431860448615672427574685537344662905558704014291385211628599803859669131192227749949785464028820939824603733920959413418373939241612691348555000527719443091410056017815358191080422437784370381149400001687856557051783086227040148720472588681601873817274948691993463483888939572384150638232697103519985314631944259825432207245646616541968356354382130155375515735738266054193515675824071844987787806680314466794228178958473323392925085315154425396898489709971346514201559428155177482448980214668281652129055769115109204170089042950622320415352303570060508387768152240019307793819884017734873859800984254550111746085593846980151292134337847395035073266461235423982594990027693174685419312163910060118337234969277170005394628001036816359600400887363218269907758264458658095341479626706746340033082126971009317718168806835935507141029856361483667093741968088580316065370879013313661124049770504687955108979152184400932008334350454211575365923468606795665366092037257778810284841208620027725980814743310549481301531947539667801834625831358418635454238883551284295669187063068428455617403832896524785104350915688340665751943544498537768259454070747552574735747299251988893936801957100869733161488557808452351956618725920434646432429281496900841522527409999385194836161547060538816117397689295994879092434594428696294410927024061724702201516304586566864461640308997106811645887052720381076849385369848136928104112444267857469612315017375169592700118634308556637699260737882875522725480310483746707244701834243423343778031230151958561167320257243297013624521932780110130774154298115934714154657881597659629259315808676258072840465669778777370383830280200177386162298508211157680477798267287862841240130565627751103670475777998239750538985169014410214464550137838924591577499680879346622546443813514746207178095677774424544618962979268608030868636572384722330709429423842601213954567521821561982868955862575743587021411921085772392997658440227733558697620733151647840362965323672966011556373487255856587417115514805995191238877879204394940392282684966066913664610167848732677317239560937152565384311080493652100891884576327151916693012682215390888573281232617472444462513571132157553003028125685248448204155541307433336440245193618922655500402560415787050321287681284227580409581191311269586433376988554895579346515573430980989901921604841778839726090520604562558571625459515347174249980957764552681123647635055571235065329947966817879205199580445687079204865357350391022043980069067818183343027433754163687590805769863293677310836278999809452315346026622699854239489228531764309481199671550245082291359365686439602656796860524662124655538370644335195163969378825724735986720507645373582593567680018236020538609473541081257864447937869489854228992160486207646965061396522014330708216439569949121802976253332900379716435611320246423822444461541588406695341489905492123430929281739018625057679326403151513358992460174594014298393724914377756713895905280886480113818100380958501379738179209531864631507437777595022976825616488622061293940369626117654125080837887291104015356951536327231982788159171006455477325041296711414687620846344721320062726136879918140195221865746236928841631535966631649532307515393725954212308246728297608553557727169558431025678141503320935732161349734562271070024163603753263865462766904901292691514677200501757954352792705753106583154547203901612395721882648559328380686335872110787625625203591722084972464507936643380099022461136381837169555942981114148891082566291709014592242600661559007440501782890790173542400004777041581971271774952409438863959253134562459056747505355263835391192935773843992974248199959101873408207651302821890943392998295736665050877305099074434491098437750490910229271035716299568524443776283314859958866044413083929896611787924413069292967830682420812460910780899667704297242280184536098379856490365025006710267094489395683883835439421966405519189659343171209911957284609775279125889464311517626165066973362877308439726219099587484510496965136473479098543000513497296929250298020217006453590805800184336576091182045151898666509741032037565504119680235943001492498079731056372394398325894091017837132315646566320871297361698437042808895624260938215913220673558506450089614899167451257896181380421263118779640599373847818503502587630621145906310751267911965574758278062768535341261883047955609384193888815147322672131459061026164992081671267162602860161379925855302184344050510368706745226481266523387935487560159937848639682228261552557783601965776255653451939097652098136423618662789132349325300702900075224463709015636355377532150126437179364657439832784298489024633109982041370834972719344578201113113086533566854630242637505537908048522076999445850873552102565597030867644617268418819887739559762233281724150937042368762310493643507597856165311940767553163351665112651686105361671932991023810379138620157977961549206856098416141323538008491659308396010064310921857759969236858853707767092189945390041534957021089899700331122749505389669702892187044389447054879566408025541923461163626664840220942167111776462663454550522550326268063823741523803844070265453719702466677823166269630393034446858283638952056884642701443247338886011991497549993161172606990908604415294885889693633240191923796002943636137684503182909701856828390716421262516057566013679706360457775995306213196942675574027342698114202090518705379319505849782460594300835134135772035050239946925041128593355197562612297016030139307386817497203307768576151894829763891304275048592169089039023611987935050933501872765468553623795589213494923249839907960590811853527689674606523869624393994983518115833302225792067920958401001854461121240135734744944720514671862844098921654671316666819072056958125221070362343151572736541700532386946159525246540887552564010900997736595281534016219366364529616752653768949122231678905399424039164802188568506549036538268380413124747515529295365308217457203036076638138737351414774601143478720362257588961883007344036997097033287146527324482756783050189039162725820446449387883108512988815915054772684665330329978829812964681567343048816350728006040844713366910767034465293373651244501641113989428056708734511637867760384340860465279882203974932971970247378944743601921569072687612816808993221157027063031464164647671146240343028794848604963996537145673132635503211808932296807149117443588420687475149806142690989489671406737100860008160538962223871314558759998805525635336159514542408683813563172052140268076638877872388239097481017483829829561969205933476946481178385545315667034514863833264892365541090647689707499301544451376261741184535942252507708441755298099236461835539121966192890898183633305842926832152778281217846147279248496928330132572216940113452615720242038506444168509119451630154800980099115701157099225809375978796016755349835536484075264946303041504377526543385831465300318723738780441561056266435252503935789965366807627309570895286892699972631782030951130420371030705135637296565047320064808889654208603868072170422545365090846656043964019138094427969743137876174342501495601471145707611117091286390249928791699158912219228241780623041226914625273797110341366330212668029489701814973428554214381226380103658553902624099615367436203115684669527719041653458097701702799268806219506034943502688510413199972002398706933656781615140737707591872429571863457101103979598358719433969625505932553369273559173150665234363173968943019131105499957822716500029091070496411772813807404728767083350486411483024800178505891569528716274357920148127683850059062224184551690260838488484697667930596811461086129873160006080345605292649529585287475899987473465106908774087788135210329165385293402427257351388009090434125161421245643690770889055576091955609381290159774932894186122992351966183367441116066609580452188719515271192080272196268978739214862967632896907360241030182875138696282859297301614192815913670630244757019876980952366389689720943449250614360080065071413512115246595374754555493141148838998386197682740286775877635826577515806980921197516286596043392278879626235882759619597523620005392977731319520221999537297735492420136559305464662330631341778436916025890471314004577235779716588448278870485717942848276067008700814523307498906301886918609244181654051185483107028441895474362915687396082540142675015376443163839391664830609907401874400845166429194165830694790359935869304758516803838192627336789493440933665820355554397153171912665253904215540823199568389027750675556219974325877513935829663546068450111236783824870550792789360221428485212514454327043613317884373547909325396052454492086870463592227636965968635578395247198164679712127107809565527296304192438647752836499129929342763548095939139409149633590441933808892529961752631481775232649457095184553282304506001523516996520864547176443347808155022424690353416206249015265277135398707740534136531588321753002875642967494663489685316986376508002624463472280261202655772966664571246128199241697337636596374702753431713512044692997380359368599864823427556265136572591521808850611215524573598562079273929635891017793794226093119187926273653223010729760945347859596878097427791567770599991287407451175014274395178625504267973438154568341841416921370005621668122704727426429821626244510662110562697213311008385960694817548929421135753561298181487325542240381701864383434895084463860170730579611833478685733016378422588410627533647276739353928251790183471185046418336965741493252589101843507337177424934668884261649248053843292577359910799904909104129085845765990233596293341436769973255012854692488177950816003273032664913506875679163364623062344249233571770080578128590935858111178249282654315525649934951349779574810698243145171805048719071449385124258072287793165101350181170091463336652030755736854368573117183782571399578143134038759505837738963100726608236094531822755539435890858953386754502857278008399964883595492665794845686378810223842620054168664454033065475992249841324617596998786492939066694811804506946557107894043112763580876724986796797709786587331356840495315504856522971261684334125779878899281542597400934307483903416279788046262192956094996535469847598861686423135132229902163128222730038390824041276202832276745407819517674403865233487225204365815858710205306171634664044349669639153934080013969613444168399162032256701695424723308649012561483458849934839602802807466514417897098776572861180102209699100799561916667218928838266801921661411705133564709893894271273609620156951357512107316407737009952628265423762256011629403372932064731235197580559964315051814221873165511476737165296684432437733962953162937896901780741839276153277787812620785535252655554101563050059643398485287279666459954025890167676909114078869436739287585195292058312933814836563592581469932279248190242300639722386676785262854486851937709362849452668442840472607083387480692425783950957554346727723016473835226042042018015910310144989455109619185743050743850772385873263319991721273527282167997904312575629212271611431413920841788330848063747383563456036584020975040802914187634340045746620807944246635636324084812275325411217559540238664383023331597406814062129695647509447410815996339368646931263473330063366784254335393616998378317524598570215500314912857590746039696797748577610592408537505026775295335462858052333007636649089080568170864571078553966969703228616853200469454628907123176784236074604721816886530453659819048928273230845837614244074830015823153975620287960007181961628472380873334793212492458145968614827972878024758260418758406476763479238905506788564922955685298177426099501502677189985330904475969950815322387805245086635763612629208964094755709225882400082555346428430323464595943141670020019433685302815693900662768711107366740389910506202490061070115348486182569651797538981767899044482258387413541606537117698251131826644500732551208353070429555034832848864574391301666287451663406765387292090640806535030120373763360370530279728409016888093939954029366620138529279362296022660479461124362052789313976930644256415405159136265428801787164392949101685113619344960294116356067056180760007930060063099339822777355149368183892995268193391304224448083667697777489122399588717437126049855320184524920382929017663516090837519946345180443194916394381476435882626538385146407501717762608808578410848215643872282467459246302347029045839322292810417708943344382047672896351957947037944210586307175152957498568782569024142752417379072390365548174606317531871817401338569866305073409394589044886014214082371381961916842710065994328929220784436913822949624534816036909287712007947764205061207649963501943962108363024412242105816151200645754750245976228575468071849018811099147288279099269493836084246846229856788159226270942279288624756954688872530383343893245471292250665156351760525109635383634271473816266953011365194438231464165876094399056271406674784824507010317554622945142634456700205569534436249357647166408575952058804441392872577551372234341652917992841197029091991200053766909950755205415497728400056801617998219715345680656027112760285430749608613674806966406629301072503491832903100674574185718882001863051740360544290050841385672418616872459242056704189014985778661532243810843917074003849675371411818571681518251530402348906670352391984155747172737761913396334813041125367626170843895524098462140148050214987559110829038844304570432344523748824553132523866762857321387338315964841755273252595426631514101621096372425763286169230761735947016499706259428706733950151769858405253673935688678690237115967810655481108068265053364495627022149993994993236263699391918092957376255041947503045875545039328557409623437951129059864072794963121142048837645886435734569848014952169221100805972400448799350315536210322151172859916323105900767857154480138015889210732355816721530992975479550631024274172338161102478816297101904204328737355544663988588807625320126015336794826759072343244021575265799078347353010116269795004440613054843808039470583047885670135447542443230002821014558760102232017722731841837022220528298261490736140258559159849208235632023378792441310923858190643823501525005295673340962988646509131405619436777521788511894294665312675944016300932900295844427395123552275438618473222746155205489985864770745965652444907521463548461037918889925325643815863143634371725579600027517402887984641447016837845235252850972540621855397946217148243091772555856660951791163325366054967577809438062512557800043933328239113345404711289585901683551831712232937373010246573959859474730440123551285654087977773016697023932679476459867647149316535328462457420198144565150327182528499365734622649038103153712938884803345427339003636307645842710188268538296066329150181958635080896624570781370354930221124430493154032455516161177281340785270915495915517731256350124431772359917593308545830347836780323616247473668250535384894778773776222003958117008763317495371631321746667163000212503259703458571649009758703761029656517370981587178130255680627997667506768569629750699713304938406679198535818361352692082016491191268998297502399767742970471766791475463224677327697367644373471123199152256450655626498927479413366417640796321235024737430938261103024872745159213101252585418513480790233440972060597733064386190964595383020044901997770182742012532724130358538127427085835237016892592547287478684455602095032233837003827671108322744578388415388321588343897398395316550600352866521918955011971579589885629856120117198572721111908244538945166683631299749824516296438635520453368701283469110995262101190337492273363610161232382585220808849206422580819698429579129795107830977288958761259986203062609625175512236921259652892257748052744547216754930561910831331488495339498792917145119268279295860631310147151755608338184512217359760263778691928099106394395744879171823891733292576687431484285640278496142898897259670608976623418605412011666786349553602235553931538213134042717200119839830836746120026961009061472638859300716720678949079555325538702281044944527988172227052524317168981216653578427685957278403712288609118946823643820565373584039988118138611122604248908111412192805910349066980412993879281056624708393256158787092381669789690282446248273058955018234018570097332916919326682826404844014735068891827323603133044347996117727768272408166154837379950498166703397847920917502145078112555365044303720409923297609456344447941873982251903746502116083725627917565521492660893372279853362839858182529033564445059732961931290244989044948121900332307096137682109371032868430424281761958272577870519725251630491673173274284293665061614305950550828549922017221660017672839192494117678276594889135610713062375799266738679486620747356652221865436955548101967275756026327151757167729308920487185318309233545658334254584137718249079519805506300648540878499936974524568396432224113882903539928787431603027790836367790521428241071435710244990102873537568482812952489200929984488291601993840148035454985791979179511520773408830905223281920261879610406333695411087399804068320436774095750426840016259836534735166092258289855687618656166808458923199972415563458978944842221792184164833558613485556987810114947257020084633034272654249486574419510576200007091079197407544114587198279270493891832623323933010705194481450150192805903323345765693533393574884713744793385327680000642905415534545753252105752315496567776412506348346552284415820749844902931955722707847529618772658814158885591272655346717588009322087469407833037986740625495459211470384612953645055545038424796934374641327667784635847497767263635049430256368910363834103766770548715967114513302793823786240413055243768734651043234466181432734338540422394755869560826819229958897988482531542782885811037219990559286575504846138394314253761365102474292478150942582762412093422236010534238919884701416939107532676243215114996309623034826282081300605990040368205009628153896465837686085345690412260779730567679059907117812965886015288127580392023452959428795943788856225471933707187210367633694653278358230335201466763475584374293843539135801274288578489197554489127700017672661163201430262648304218339525531305948167768581579781820147356221328374175144365274973695648144629702692552301385617559152660677789595583543576911839005616033562084061759161153707976998276799939383168775589208407258896521983451095238577879991680954194195667028549805632767557263600224320821017809205543976231825294283203866085386950088674689472582533682685330414211362239629512706112130274105629275103619643189165448289223110518688760700178437266175592746927016619393802324509778357789214363971104438312079993545095636497620495382859360522759804096771967123552285423488457099035356715085984972664296419787089964935897909308217432638346592559026263205662361190634562969810494000862908039542737763176438530418567859722797072837646361614154036798535647584207414545423478020888918280257864717700199846328152512709716180091957148062297405772269244696927233548083450384714767269218411290752472950951651288327684721162048516639259814366973847650554859954695040560102993259721700898372390520074441488620816274215816615978962186960339927304544631890705689215811552406773519949077158461452646652834595978733324636807781544262264180638255413551077919378150542983599276196673408903736659122532687295958108869811856065027247100652079006231020948863724325140998220138575901150896636173250607208917385011012785083179515718866407630994664937316895505495713458356747539039672540524126406783315909665184984214772896268790253889772770118818693710262508143778749667799717336262959828933733550506873256237823266511869033218645050529802913046766581871220063307089569950180447630379564872757733259897093177191703582560875727568829074731598270161257835029674323065860287596601429973837835961702388607719231662623326533209270599428031177761161562854989197494424342525204342075396273625301301449395298502260793473850345633972103726925996360075402136900610163559444825875722014409026080341358145098752894209419306311950097491436821285142508169107779012732601066238585563618426910154744046682754024190373489213505294005092161881108544822546682308463081585166023643092862550610083773413856792531342592698410338834871346317911807930086321424202412313722346042044972214511578954869181075218081325596289501159840298655046385548306615372934915000667634672070635293245837371794454184092181453039729325617921200307243822259630011586083650451738375632963243174912314009586758956637649986407214486245136300970792505305473093678714833962331572617298678318504699103831497429041595997608624674758615461922029092475558808648889772131735302048452550405594007614169619272079613610452270174392285189404868686777438993766069335196482845143660430529094690661252839029042661135849666764069465559986223898237374311759778535791674139936815041662924598538120934359200966103060871571326816919404906102373599180596277777310759964981243726136870828678563227468155025787577499919031473641677069680739405729187860831223622431163094625957108695375597228476277337570169454739633271786072175461695427571701062315362538588521385980286610067907250777626584382273444534523864982725926447954391171288955679862436552888109481443427309493869193181374191300401012575223436523869592196593609549263520143795995983005907564697062980893551070691975417660157892209519941922930915842639595190389803241353961417820881400447010290251891674072837247411216286542034624537312834977002046134507294335215003938902650695544678018016142922564627548487180641216991818138850047433675206918452849749914017661926222816364380601838940359793239305875491404891490882895779864890610345927692182866305008225778117349785801346596640990342223275190614316350997900291923074142822952579099357543233569369619618295625719167518376531065546022671096486999631960629995511800937939428955275317998150540349033426929698496207449527109753955932217981066134569859105925101848441299913662319805622573091195949804645132704067577654840454765501471452535562072207047556968540284956704022263719763963880301878792547338258966649142605088674758028207954592207604980991151210128698918938506383491186695281688967006447446028998073630282363866151542911175072281474838888487412877777316675210420779961333251317102828726930952008463453432868858163498082643197416387398381525655690287493047449202972461553105490280511290660628874293405406171220450376520655604212232379489927449713509910841473078021339121250518224988723508979586406764771486441422515816043705508756574559739871298808692388433837478779276717297477499584331600086562277329029769078461227147539160982741890871455306392949886310606339981510089039064287982133712744047026501760522867706481121762540123171755881445916715423787562315905266084498917418343168932973307183369148852923392444939378506269176587823628417754743777032671169290370722900801826862372219653829081209510311626727367250195182742419828635715323845762280229247055748793762249617849062334060630221240210760770725825622983676255402458379315230988033806681799934205922376483949852707538619094085032901077864497869828892178911965202159087582582171590757353637124759495993025538839369033817229647525879015487643596019694180628547858931045214712964461100980469748969217060178725722205812817807615986498084790642037391313580686817396803143921450385046189528802557190687821597728895561601094051259950639591993271789135341656152847573692456006172814181406978829213791456234180674099065249920590048463293608755422329213865816628349706616716411841406070647962149199340840318310792624163684639757190103150738989698369175281310960854506005257274297655873011987959962965744335511260034306339883374157257620296661890180920367751194368648754509598761222267136581458882296567568575514937174585083207127957371981744938025624962388650697491154975973538160270922981573365558032179606009047939684309262572287254277942131807403378043578591827303766364182561704605340551043416746761953503950993311231307136066135386454055970731530393512451988802077511199556857014610677383206166385077802743488400952143894363523480796465800836498128566618664733101955664088876334903530274652054165543402011986775209580294266806174452601825144505504272906479738821231305677656726859281321370467056754172836012500953011669383838060844018486696057334396317356865787820777917678945708512329421930741801564873737811619025256015459362354275433855070887399725506350382454514242505001067414885844905322069226811218339498584220618103874222489035021156263677162731569173728742468046021661169111287719744746912432467672634042553854238859766139195958785309687283728125713750953139711432161338928769805758679692049190875169594740561551393805582475115018848698882940470490529995179414753218192470685817292402996092283642340991618230004834076736928471429461415644489187778755853012723050471408295248495695743333169399749045958446418725226542482709444650689357737948707245765733917002807525501546643399354262064805933555273034822684435778419751400184703044973834175335171021670416602574550160946929809444781134632280025394958982524301642992901406652421809669355497187901186387665637156678598692114501505104285950448515749248594260317860629444604723742708519951559509883095725813601549356789932579798630125128522251501258249652397258084798511813780726625828281979543327873097367179297967326776537469998569108618349043650215661532906049282043510922316303989577733017994876238786303801929173313301075698101735212866709523548777891981053428789794717912122694268174932576308958833444475298758443052676426913796240766472416981980279868283241219845566725376823093327364690363108990367764621555774325428738050660342824920407601319919433859256200896736541044142449624538656575299194140556503941187361146917097026265131677958414679666825539522397047149315822352447683903461888679245743972666572557933070804617360739063645000366939072393935413875679936841695110405447116627822523209296235262017110289325005375469055060558271872770573038624553087759257678047649415832048409474265994506272903532883718550671115693637907105004357079100023977696739516054591886227654297779335695735278026041157249427838683818206118296845375813466781494002484382236512260883666199044877957405519076290329156239071858688681733098164387248097610714561316017855816893086171473428974714933099913410960159555803773027408347573301535292740564771477140474994676718403977989572195471857990030177707540573647273652582455813352112742001820897810172055291755415766110588221903632569744108400671107961931330080009764829205943505783772247209194620572200698041246641648681532331772790740105386203667472082292776422524474268953781273343404024106269892118891775288839450196602939450559430636920384769493548402163220954989854750774824388106640990146229402936974983554683678069053549021360227421364272110701108771959272344286857460687189533351040568149965420982250938694554884218776673135524113784781922289366588373572359053806596167875417688132159467165944725041982192558199250283448540602076262010810383148081549772905138221734393538189844157830827957400088674785735581917745166382216831529725221496794676596586047612250262707699510817190328031514872346791871375011590796452677582446406592248087391371918471236469400822928616185677585227916125871724882490653387589496983426979140044991199145747782838594819299164057835561403003782244742648197615839001256250164052677174946201073609267066453216664399560295232878447212306575904172736066076946056657569993532747219898411057183431352541692119419966648275391102264729408901570789202430657973906052924369534483685148533097743931069544348311906886600801617023220041726573376629382229802055147395678177312709908074142932353914696673796428938787476759200702000899056760403688667400255844959507000470912130031466456941660721469252010747899278758430852140014403531177291479806012682476962959140380324958971864814392374198529269752819835039664070377522402719188856794869493610091981789771675859127355206176976175983134269807012770185739436245631933479051908441149843109555900982727993425129071152768800056715707655843482237933810536780215928578366235468419528887420521913118708636083904219538616527509671382832687448790482430108273149922942603703084228304261295246736023933033858624877490600800041636025139755038374545482929405470161635661513362209174081790517507041666339910998780056174722456612990059175628504239644697058962792665160332001451490463049354116421577587347932543395081492866762359050778815046323760141369835717544946939465082154108062674381009921589752188215467084350811062318012110151585031680731787375722111720814323793636065769970488756099413102602431104910666368656162419738290898902430840549850438552802616382724357624463918963219716003194398816158958224889766745944761164332123791224138439145886627422894429436884507312018437670769290830776894183732527099806138055621415151465433672049432553008680503193496506346377618962976499885049864463736411033921721110586200587017261129970773888989164952369500117211780206261212216233936748027319206876656436437212633350426416533275549142967222475154785222737307172880369423630433203620371759119323645292557373855489936318186340954796985349050885145946450493755049824759915481558416966263187293037135121119168800013418503833256175586067775764234868036248965246094850687117864648855835487694862245019087721643132539480043913177761816636154179898803973771509550910671466123917748634602143058866407547519934177969357192532787442012858739045074067938657150590568976550370805196211818602025669552868314570949262940996722869152053310441440972153660398967211880348108822093356053900136450134163059316782488770422721823680296969316765331328786216920692157687057727369897335671352442696551688949494439881104181506756791811502353220022554523320265468200262346108486545361290611239305175586854845466282545590039085219101199448160686074570446766008796156197899349932033287737870255128647880696392456691810334098552944596567788980175779884838630022084179963709880184298540429802318732424071006994134377898095834579184312134848477399793224439373148501267250813539446994802372126152139366172645251788535549120287213845078558219469141311386690968853155273925016367019070846974820626734142119024368451882074378420575409334734263733765716525107673121718670522453723941874013896004476182266546147840098368346542360000683794398259454430560449752282008238217568359767018449317189809452398823039080526397311688011219557207044396143899132457498739134868177703676633462832592624758342218283551984275899508607393935381577918330377236949081561991372560716287302483239555441209897901584056695611686940108976810076923699502515681951790246136743598244579584899707188452048234880220436725873467007838470606460426348705989784203097800855777288767096464131051956003969940101505688378428729902168724281265985564982960366956096485549037490251604046496303601150030513943349362778500973012496029865124542681871378876757077656124937444879784245580719916238734934445114477940486106628007409213519880174259218384207708826001214723521329408966506208533144520986330361410395179435194432131291366139556624541595822265670816212413190060834489095930458660553396521255091957793388404923270207266683331317013242949250293171085011691696811014686422919556259685024215432243580797049627335369506364509048734425522842107716388707381683169087028550441580174963501496728944840995809197304138248520836754547235584742453948670811651402525704311367683313703104227617018222248379684972784837523702451789644305524671451242164275465461115397426598068361761526216980043292993810338839183284043420962588515022773355173585591261827726597507991694795215614359748711320667075283467949487101399460129080888775555511682519600532747142665689078754460256172850414969165182952672824204685148831434481749788611473842956094755727561959377546155033138601373331939351752195591174747687449930745370013037443817434400360229250458733359207848859200159879105209628585434342766726100913362774337859644746662532804071795193301689105713557904522382085434730453087247178320923879495286124300606041065224757715133032987842567471672533672215513065624330040665227117947964787422934231271707897191050618448453806482432094729955633236651034844525766183655708411663195680168543547807916277315483095348953598258348031073751343388117660703582456980092956307164617405652218663774405807652227958278714646165375572826740639893451132724739333948018495919039716562870060491873086915658815030827674326391765770019557592612586720860651630485069021143384639642618675294127003381049084935602555577546935319093435219272096491316585359310769766653925782037596160363511766806807737968675385836585280126813435584632510204367216039095865687016382292007023830857743754602363866113602441449462677012927482307966276684869072587871929229484730820145727208647945740555143117699415040915804073028261646752724115748144300320435251449181774607277760775561688536539145157948784763375944760566146613932698922254807083464751329253810668142678952416732878470738556817193842836286351127968219067722736638399471491167899198397571697617514814048916110637106575820138126231682806713129955670879529193291027187502336039811449754262808737704528884032558676398698811228653909027519551830652524434327218470294672228631025663618647983054697016194909053122267776886310904852370165873024371116872149450176189512898827019572267274924678095985615521694957021469052411284733295571037981951962364980132595100749463790683295574739745640664743379124853488125257705109658624025431987880942120094986525905907180292223327471130527262437564711461722881800435111179784280781508884289688437513931136450415150662206644570176057049566641244779189735249941182350874979142837176432137600103768903733773821373665883868316361627172934502042889000277108786541355434666910225000098653885353887138063744073948642414683826679347710460637484006251587195886780550280085656704473080618843385090918155355426158658708277572670992589677080554924039849543423950772565673479868163696127103095428458587810876524157980097345569006917196301200248428653230067977227367647423869362017966787792506990943695401051014443211065983921986899887519303438920432401671622561296668514338117086374788440595915509107426553167591938785414931672513452841408186798615909099081179893250434922662032855447577499855006519581961200798831239100197074218322202440205417579556559341525160461307791946071578025992253402171003668235746957252375523433155590987245593857456726346292838936285438512175704239380872324198486484955247748593975220344278997534597019753030377473604234133575317673397842909931741768533513840292737113881760909544539810842167137607341224168798332529876923297834819701396619740822056533104771203084669785991073815751136950019254729177200148526973716129866668965404368140982818791760026963841092248944850641214742354164875093798594094209023089783033507648190527267180753531689959044305962172533454695328207760259024664475905574195854748569251180477845058828662319071270230996859293812687100407233065822712160425335662071427726074266908583082606542814005134327474915900060437759983838605063289792737965877952002852792009799333235565530430540255018550544211911007856893885118191671368209526999699491247504397424600186942817843516784175122329344593443326820336157031622793756492043552853018290368235661352483545160169093183570932410510896050684551402989251131943932105021175514213339669699213942099538800005875257172034997935431785655291411398501300223375190415739311566034434517583665829571830486814934556912433652381380915011017390710309911705013634098961459169769074765950392938237014234160074951076941732703563197668418869425165518912728142087838021436383791600519648340463435853433526323124412117809508398998679253221306253486982361465131105337445951840431386705605870628400720759224443946421595471286978853371269598709777879956993148112869360763932322757250720695814957943290116737857335321593352877302632105586587283315118037803217729865503633989223248519534901741760779040236799274402665035128854534588410838341818643426192076316356751810868031006225471510706794360989519737871282972897087897314482838889731192788334025707244882642040350867639650588571612664028246814105676106819920135560011755583275986514529297228122033178611248868806215670971285693585306231204676961117495716424435228792308934118295390761965559608051391688924906229699676883515199062214818860173065431909650643060995260548811907231045594310884585732207871174533196458659755310164179882771988287040389071839593936823762833512900645399004207936941390440430518035042158393354767295876329351090481923037512472206574965007590762212256444797911792549181926127816861667985091624950402150709974934819195437498161891481556612308249924672052744148651126812534202340909154555491722722369149792682061705477820234962287901604266489299161550771722420521794193289214935112348764949692589361206337022553985977568078942692807445021633753930277598479597581916398192558193728951282314606924805243720577099635263952399807834528095742374916128105768136993391807377498537432819675140148321104944681880050239022981040148870522388601267787557266738933255060166123867580336104590018288844166171179554363524608909464950629533178152283923885863276575225854833748805443052071129078004193239090034029215222370736636950251803593481439399761479107535297872343132396956166462237999708398569235303162737718668821191804936843146441776028002165949217569968814345050070657947358723875068589469536192699674226571666708774952804220549032863470745442492087927594678953648512590660527047371818738603239759604955466870098654595121553656798624648272309715642634233397072454220788848720443922114201224157305948289175291666790146217769607432770750984313278706252816776053987326404416536270261463683034341230723919916507298604430736375419548448412892425903712737430684261772884170372129602021081669027874799517889370662457760447676300212947312763027773544877832626547898970865513601585549090350714822737992219994586751125190025616383408090855818623274139090880743553954999986225176989128298286501890752537799603510729152375212487195046145050374209888506485517584893261647584972004624999034463711678159442139496259629942278362413618711412650882122256819614671788745698673865377791583424919656580744207693595487702407790045768526482872432659106793772577692412799318433540488427879677250754057421374548583709343814579717298849532052395415449207384966162796300432182764289966572682678348947296970674793379231187494914735275971090149688041395602608758844495393249723832028319565841288570289603097925720065357714254487061826012847010260269593659232858531286162984739973163388641951456410403028879143835756185917601498021834383789596135734020406192666504050645339808791955515366200653017017622931362325535646163779377827212068676335869271431113129592548648001115867562299349862105374398259850103851013251694645637558144078782584565417512128413914434129397295206679912320701787675254573502357366773438778031941175686172905272559292379155449539633413467030195812634011636959676126830527652876710699159097574133739455601369287363468610293166491481840826970370997907018573922728429037116807282994964006522629413019047759232903499739055134237105628636303555247646556379606455144475856018195978156097348532313521204075731486951196311545661627617198917953149417394954315446233068773870790073769583544462474108857395120188232457036190443644678965071854736183374970005925053628351864581841018402593284734040466686955767817931164964303297660715283092171032497929275847240620551387616721893665552688314518543123760895645947183677703027609095602123694406597984585098507622367325420673037042819724694232864143453486412113495918067191684980015262053616293482707007396515991084472074878566314237481463725749819948510837512703058902174111123567293698323876731499895603076130252196177838728790089754883185610753085646064428626829354631609573560156497207878811556868672874610752864075287063288860046132812278488856523191915013772091290822190425435380310781753405871974227380139887361323063476852070530846252386306358705464324989782267363699044853046474940753059318159776284450473430180282003417190860145613188836414352506968820349517036718013224730798680779868347870770268429927612375699668376630745150828628381780256415117324638896547748554136956569836591495211543769964420133847201301242231720347064888372439730408522974123738359297019318512680916498171609754929117646522154913359355807984300637970009009183286874945518054172915775120774346696317878934013910350965784673107450067373978156483057719059371610809570105078583673249836369597824166905829287530913411952361087849276997750130224284911265581919556040684555008926086900839776404639118183726004982712043165180903413298334086320162871613311978152982807214526089892862264817869723945426677966794003462521934160854517176674337454682871561120799370445912763983551504089050127606947003603060847960439776619724226384471933380584378687589611317724406090124905764458601342974588931132548248526287408896219178339003766332779718357631949365767587477426764606363133197077597549198731773891070600817617334301004720589504668557895089040331994949515680146644934967799586798471595463948050975816834726621723620094993154568015667791462524455809709064558847721610866501596831711507721054499241022146872010191812420633483176226600826372726800770023075408953703769561493543205247654461810775912582379522200368320043502106849408408009223549902690438803263445061159459387975249277304305938335566463027440926421982999005106599148731211256253738132090639910275801571524300899453312723108453942785677336451971252366358606679240091069492915831319210772673676554371973183541991008655821596896586940190980255385031818560501657171759538475105066632706048080546859638357913138485470380550247340974420740426868833538099417984229259798174735014086975033605269154089464915538626483587367078113530715707573844388625499753042723219507341806063921778294331812512930490892440209498060351876832925141768794324949850339612018806422232263812023472105790154326752421452775420949917772817131467619681191052672328305875493571361426483061475754746059621577122755460367481617622447601614480847206978772171798491343254686008887141917453199079866005832950036251223847686382364115218427963604663306708706718793105975843389593254261604742268089903639745601669587047371356949496036034313222994960555123450793031849077794104870424246972759320456279147543546243667480546799793459989564510912950037267731509905351122352718027754915059697557917574378100181696067364440625513993581416903479133815409885206741856065516455218509388302577172233526906579774590689040130255035052583631533706958156502933178340964459583385239209753774971427079304602439907986526779829024915755960613126013508316048171904982109325111863699448715269852696574966254296294309540752703710520099364899059422178106751204546701468750300217907578868389372269899874929628912919557707395026489211394674600097570246624280031117961847818459667837426618486551048781318208349799328023756757195236630742459609236092706377741218835204427625233817888499718719791192387815198567031202470396746414256425776295365031749695492290577401602568005751653546828103761846281913206814714049216077708856081745802412756740817382668110274601737275910272939526563708917161989530411465843176012104107315420071338048883928184353736339473233742090490313985395017799277133907958564584438369056680159220403243281731563151654648627881895322809649409457190848272800265102878841231496156071318998061762469714299722004854018913061213111697080249878454391210557875745551878378491424082042966626640390456628949494729932953454549760501987474991488662127158819458970872552030884483330572050522186123244192762568486821004670388537240470671484815897388932625594790597569088256034717907366789098044116465027708364576137711614294653204068863989612972803471882148548489004656108599286290126812250661946957600336740080007469214242699640239487360524779819668787907319365981405208496723944907118748748287114149029315422705178458588344595963731225322561463118072317591710085619407252118155278381702782772845718802491106273750071833054883938864708068724734154580695902752836541032170081795201473904144188443057646882722497786788857268603327900527606914491670345292865121889291936016144544740570142915834869348892092988491848824783169208776041426090515900903697772873024460128581104442767010040941876195952998380986711495072167709765533510399694219012795487565344493759348813797981128250103696907632575727648067775565408781682026102250466151302579007395977268441432644562042379221531698835239276118926635584002148604428105055668677426244097008492431194532563154047238034664853877441933503092624041856648946307252150672002632942918454174912077855079977614128298335642368366464992028224839422373615067935419724894635705490581654913752944261248324731734124821736557585731069726813997774442324452753018627568887432816729012196195115249651918862830754360808920789254397433234660071078741157432035694251764568533079322274854430388820125901530881851326019639167892554582154348606587049137648083592689084004428569681610359032071013760002084841747376714001908030618183755893155387851351406840427856087122726176935423897759419924304707390171230187412872312734829004333166295421954579725019007735142304307847116804695441205222025411942566936120778587413622505372747270209935326033195846078386572808609281492079365445158920081120438940525488593669590113400769791411559353857848034457804012512123112039657811341335221016413881718927098722438812508732760978744315847235632513416552782658214010852017528379300644579088364670443553881991870533264191454347607410177239112177511746827267290955649793503639157670168523426298684148693554540175079451687701613685683222815039841441740036080254376883837078492654824457130398696721861744610220097862521727094072631283533762653726314019041103679499441961265985717477405151433294095938349056341797539798177449992932576541557720176975438897307557016693413228311180103050480863415026976140292434046816052600754733604252606848724343573691190159719589640841991207712691956377076259576355472448145986652698752630166446365416647877762818860380444299279366988890536101171368928599780512309542254525769800882252984501892503544701664370463237564308117996243517276679897489774566323734561782646465697027180625035028619047969995227190162604971140349432377572270821786928661986120309540392069301269706177316338354356638305404945816075294799867063886573867809807670114617069375302760603519463068450165523824299876946839931555143765794559471186841630504935045046265788281681271305939930759920528351373235771106710342868458779658405285990359466543455654117176566950046459972608119848093801607813248725990381892959407229324736245359916452853283312687108079552661102821846238124019392016242919580409657828782598500544688423397445320187464625998323639154418876585441169120927095749187806708208182689612723866017842790433235252604425056686536531153013094243298507130273968771060264778332892376990453871386761581616236861482694889151142535698271463760406424165428614842306353789131905737990448339925404139963903992735787139940141758794732738967720129793051251022439362244810201572978004028422049362490644894054048463438187135140211059553035126695240094206915501393476630411422800975318469312214867075391817094778784817337425937604583570288323242473043737078743600635080360323941817956442545262669897149895636460991949826133522224745940547295562705413526612174438037829519578471397985697165943203714679287883325810268340404743892807730420513950852849562013412864427087285489673683618231448858539283470079184957615911866951465675746279009043791785935645821766961631919321042079799827672323647076565681772611000620480662725875999999251438292473122440149808772132165004822101646508626992955785818553161854281458493648085242486758481070858038306400014929926040285793058081095007392255072082382915884406572226061845822269493283196838227390676335662483985974889164593786786630624017297004501923870721870178120083924605331740786311505067503707524693278126256433572575480672311868405058171467993293904177826955437965821496944389363518132443773472733985010592852367843448683610720634764993062580070376440572638273114075617285138023416210895707709398654478113430801598614851176590693663874394806300415400786011290840718216824740110252409300015705608772945731232642904331690022708739163798889169854334056224594329148435365188210838855463141278697003315544229844544342835239514700929943240674468008341857593248156392639766924034996772767017447434852919321323441274422410497385667303299785675476735175846785507039736107771036286100452528362667476997651116796048731542176974504928439575732239265935757791546993223730944609059198434198854894267040648052713879434184310617076181752297455469683117125696384736480409670820795449016629926864022250759424598521294698019288880783816914469453564740664199410513489056763821538639388234963785436954960054887678878217659844208278284122245570676563742499650313306690062173927504913431605117268409089383708184581445435048090614892341584985859203759165835707150553915567510395456464123450384982628091003049267711344614963104615132872234546451126650445858530817308462916752228107445887181559081011118808427858006061453950000201252458932508885269386876385254602639862692943524160887938625100941433048309826191211919648786230322385289401651435359262953202779441513211303063455838539798805300746375846666071349967693184791120970503726937916355451825430358060931347911151421732493585917079280153977034362323030333704331747141137152321060282757556121760911350150127600965427606519849832179730398623439478752007729131956385197709463131933704541817170407490983540183205949744130289916889311271316875065711522372722814673507060735955859604990992439707312222393564374426197874336572202593982234823517722045123523496826201695337693896388651432916369502579456909969932080673110920598652344191069764792123990547628344667049963616992174327534439918134222461819425828103978300308645973768977046302884552574943518144334281827520519417396213169583622980652891529468340299162964339322829561269525544511670744174997618805459077658422794190879643429229153001436688065521714643816187867075859049390700399669938581744088317656345692845824430064832130258165713825907856013322901839002970721874988677735964011288363044465814907510710789155881357044384570402755714707325260519869103009612839816430576451704571807885353177100272783144409978572258422718588177780211775652407348906984277159226806073456900770220911662939924389772733369029498716047952750569905974047209922667068523857344293507176619863000207446393562869912130664109136063635711601758196012081433115895616986297099733643071570695085942874819949765766883062765225586665933291971655625414568356928269875560604341817880465917448351094253401164101311203939877554551143310618110244146701608531895485946038441926563577197787873405664489781968627621726298229544991720809287052521657925715538231086676501760653347076802115838809276206475270733571530497154395475514398065315419218127595534041472047486492736012455249876354562083325487004516702971194358295521177098420352759167577857819589168218887880583975189197801921954407618358030623668545535543558753598535014670112002082634574524267894685893534536047603817647997021210860934511815653270641014647972096486063175897915807407982137596279078371967936383832629734546867833537217546565246969930983100906931151009112512163547803940835996815240188444619018809212077452925524546790462395696384309868411203312545065459816738199502431528588308532176440138172846916600499579777934041198415843394994271040397771155748952475960997460523655010023967605664219657174028542546396269571301998500282693793612022462617369390627022941838538206045614474717944448354269561396677380790845443639168089331079543794784322863114764431145281664808137876558709305815928138662398578856121762698403328869384782455207464569183657189685743827295286546140760024572044057700954027152081266938169068000046253096184445332330242238545091053466579660840313232413419244867302578130655809399082423949076638681724164474288014003738579760894665127039363042435317877482739059384595489095679611772818489507439940892909462082768745288998929778245779776397281824714862252388226208237118468927407609523340034915059119888536943994398613267425040936707599097599535515323537897808067715502739960895119345163567525212055089934086408123516079570311234786140773552136281735468656078374233486319488543524300126627681790434176689872294500448368983338425343351590272108800758563671434150732302827711327352952366865357282630707217543727084050905605301996442858716737477624132264847114145555771034185411491962089935056833482742705500852066194058896433558450287388237249146048013767830387474851266312391207264494893809010634385640626299501046628188881667363368849312721491566463443476952592175278680421489428753884569087376153486370898237730359626817130037572823563571672997251169615495713493067964783247243865619110267921999150204712476855420374701362361812950473851186014583937785755840386960824489958803265498072178825197449047107908206418365133500219796342575884430067292850494751271220171917767247399227354479711746462665740406193798617127462570759499535216848420274458002043544247375817453118153694480610758137965389173479586657294371851884668287205524122503861386870680241632835065891831897074894458821008544330085068293793260279208348223580593092290870074230657324962247042787370690445266504860194526059844147923518732517433215630007279059406705540408011595563685260321573029327409379929872112793051167390206492403979243517304403147251070348124781678076946587559346968398954947945037379930592611981779364511473471229982417400299142511461435063985645361912808351614682264584294876902136105191943323095418688528863245933230007133947384413300411992199674885451807655907587355207419097862731406106571895429787068049552488602464262021673809679645063936030694211327689731843090283315789942693659091509918811528095055953786241886557063834515499074549377248077814465878961798149378027400935305738698216478764521306136170877972379538201388187028110017093761056154795433269268958330971354555286325660567314245256051427510632764363014629984975427071134201536310596666892948057032121592265290448109299177164610574491994289632559837884516429209658397854378766764993916511316306038350585631130300831585509140433821749081518650068449219796938126371349542392621077365743710090526407465036254854291355744997767766544578891638017084591177877562916877574184196077105800966989232220266217451424005171097049826393838641088781405006562329715748156645925066622401081317342961041541835663903607099427082247226196369052322538131240196732290621376612951832525800075902176458648846332854643608878734938159057091968873051419889737943255423445823746143618537849370934968517702352486175184989981487649639608126387769711773023261685280960478821189695273317985011271459594931176123346623120472990275482987194090030871349561455878410737339653554627969356598726981792292448001119725882371356666577997317463237668718633199929529195799432579695034272704481126389410348448720427792283700437806471285446199171082830150169423823610671498299228687745860345333633742406597744110898427949878756483498496997660302082743703475720482497029556656241561504181493216628275697825477274389328817500905540298303624722186770264984742190363189773587611509386038166945485721840051600505497929505407094802609088894168205995469130702493654600896368597701499581578009574794177991683812410294664782775338311663999219394835784335540578885905302294724721444528812855997750321079072899396248999549801444635162108416945111385131966679471701648061511716211687171635218485364887696769002235125643172962695748819983095661041084286067453366990192866755205447465076921356705691534580162505255333389119079427262813619022378201546423979345725770402177462838285553824039515659217340602613212652281908961766622328762640035549514749601554409298996836693102623516295152456616144225542743458671226439428364054527972772875957418151208719436432870746279314962920542174079252033322873145849862819220971735346408278502263151043565970809601811678912032800164523725611941266975243224116728290394592409360396837679529557315142224347279919595336807240951980848094330466316982403362231645801773231326150288799430751821744119463388945529653240670737170152062134466947642933948618533308109552824584404153307730740402627279771238976759654693630522467612137970837390743570427404125067484938163484972122293169745520103506969920452646197678041248941237976752985731150544486889722111144712252641604702308032849254916215267785000804439044008171464941287855807650294167288753197999003078199938378162444930245344012600738905131752055409727864312612218090517761756094389839955225423834217779572933010792872616089554384599087054040521487963610812866105171106660993180676930495749333815005653266723841832547820117697699652437479181343665410466368805029403710429193593987637896086108699190345780226468800582160112624841929109753197344881771203309323579410930920880418922541570448055981337720787304405445188321025653358256449642938807359476171415298428693955093618702155218777594161415886004743608220017295318255316000475928544579925159323738457778412298190249987990801063052643520949561725957034805447301045228904560604210976321780389852346380187445164813334478211335888303617091067190702548868188931926432859533872812431511967792827785611853775166128764303293279509436320523291864571805384438344081524616894638715064980372868388587861431170524722264688164256751206080135128688342465546037929219819406224460094990815376928035453650377063259537911142001925024904658158101591082190474984080948863778096254935575227147324093146716524530376725086128044170418490315614036436259585298534178479832820409176319282457787297992489127797725035148616123018016491645119330236149767300130079178623523987794079564336791170819910145272365492910900885272066016312063561942230642114040804404263247192247860073375872621509373646106294810093323411753737260578337689742514579272871051372350857559009194605353785346941110268099677068288265312067414802251579231229989970997355367034026001670155679508641576195341120906072213557208793835476151262811786864877302040675678147870781350477867781119031220369518853960067810985095534250004669189438625621076882052127537797461849556234309082391037310352771202699234469821558168831515662309289528212453138707203109828256051457787416286454497958422704264226633470216018786073109808862403497685641698619905164000262079249125505042358489471800517444223759971545534962427122718464812426743797292031534951262882799608904613368155334368575888021322310627695882776556811517889883640953054710021522272176819527764246631429037750924060691000806367042304179435608782229383564463712794147520548644281745887784325677256329797642240673684884058359736589905459732731485214459003498666452804791510724769890634661457114986286943177610421612925007667141345632431118905179878245587860172189471280286610831814634998587487944235472223957684988230111923522131167877542961945140811267233425969463043099313466264278137062800650990292430704602109710639646690409626770155015965188487562723500830786706957617356876803115925630893318943297037010504250181041122849710571250816008924194095859367267670981750815033330726595663717866584096385961943367899375015521164214270584198231526725730980923454627931105247718222010251779261783213263891209992400742100484846943175505189482083991796290531745050678213263982628038707324900925165922925668927940099037818002490368498152493826521238966093787032989868550197625171416328614202743602420600226278542655276217380588409700976053489693007213100256530528480961203678977173351023918618654111785760861459159343040835120855114114788712474883510318953923515640920139124368594127914435265463103593523403666014633663413799113087095236749426673440770314170739485399042956201082705075565084025395982495009478689360141438907355860868626047171140638312664680076259955780996220526771521681242432059326008064899605565368385200375641015149505961184952699456333084875334023096895096687716594016254669384169413515335511444135684592447252098945329132531793151485513739380660261635073022994167293460504071336197598192320620867438406636061798198525734407124229986541118109935397790816609054667705522772057480770810791992163361253786656506524992052356916700231334775018384251976522374330603031446216396393646204549847787383368839267774471489130014587884672289089496547632442936102198576036085453678977125997223466096445239760802270858785524539513426084210249117530339630412943171012911286710249349723268587770684147220991192502885202688769225105253199947548425846631961161765476782293321211104618206538486515967709183237825898694769506190513626276590652540429188735378891987588171410925446893719772869926509105044864018566077036595135832188302546181016197184400327775379820950930224786671406738454873414799140464894453564186970914126250415932806018227344454137327039398242894679763817616055181244068625121006656521339207162112141167639884348736886051418431905093648100598807407548214927078302846590373575506797788384546377052182217606515269470183878269483994483546463996714818868079653867606438884425439587788430198293270067520871402850949169464208754610395022504816287376661091661792599818826057265505646850627213565796190120115092091159443223782545316318591449542248113038343690882785618459300002020412521136307772213586858357982382391592580940329166959848900374514468356493547111252446389731707069138577786691453133879821230397711011468961480241517000772512739785841897620730740520803605851606019053518964994343142284825141721199003434112812615457573682971408463520596739524571696912519083695017043436565583352969370662672117708282432954675239000667873576575056646010866055172895187802610722914518618278372335385278677980771519535047402780271820900523070441297141931402114600387590508423007161263972214894095182966011711742981433638779747833143264072617433188435138770069079884211123286818427253553385611240693996174940000860211376712195501863177092300781304465817580140601614692054152162487165968416104454815934250848532344861255690531566148320803191750678583257247108798339526711540394638316063373198324911037405060395289060323706579885179650317913346971918894074976012890597074701648529707149198347468236936864593304052217690997059653197424963894018212331915511037135674018370919572924196269678751666828669375820081357629374807886362127565094756759293263597295848233630390626470625617121923573630430366627332239179776719073244886922128647895576941845469449533108876465783314930989931751040792722689228400779589727301705888183221587323646095496163050046753661547159764497093334886985819338187206619985124172674346001014862053667715230962048640111399885015058767940302648127440406872435333922540071324383111120212453305268256227678666956889030681682808177305614944094190206613706038614957632356038738481129399061003174960285999310176393238592851548418480943781173658344363171815882177039871461188496485563402985102314501806154580186287996283710032151091160975555232724884000692965694063816799293108844331297459964195566983307692474900082819461891385807895415240298560524810287457755192218892397879582555987183329147527003696370786574044847029315181644210625378330073245279933471918244929747195651042177436702370123545502641561307080951993322999027790701431891254907380470086778528283409790592467150232556416876019761085634583595046612473152855663784649893876125662486946264953378390612380489914875674066048650465572348835366965910462500399610243839520253434092405047802369937094811048309899629235962773292755325428454669314912334277904278323031543481842977115600455519536065906430743667086622445486951787601460434306574298882948660269429358951914764093833421563479224409311960577688122932738383020265753470330287421876079588538360803374222534848424417738061163484256112197373423992605272346192866323897306855490047959431297018568423560027527493334776752082101503396638937873100152050522170676136001444656196848662809425278401675195915994434757339161938002225735870109849455616184823820479100169108704947361605675234187549387020096230552852451335099379384287864440804767870133813091656550185036103871470066350665558561249363927431651501425819387133460994268034269213541013433920482705734731452233409884319913980243770841413322470215338075775624557834609665874309887336372803745603374919488073083502784421891540981870434098722973051533159746044162486801177376723407203294215516556762882560738544266743625368734750023240018225111223091973079952296154177814106077038878269220256965285882043085542215190565842931043215726395911309329217296380782003765849147253328677618232074926298116409035831725074698502015575390798107405725494227639077123355183262884839340712464333053146294932890201479819430111181386556715396416484563815288742498385125329391120435068003683171298128654652774702739640608200902106815230032109572712093354110756771563928183356301376996380219941876998398491586552753460695590542935946506185827491143086837672283910927474185274588587602361133391755623199517805482648142843389501824900711913414572622609694797349299432140042579494840330232866322470173587562282829380867486764624195543419173521985421026468930583742558961629676891925672645685321837205504756638830092190521989796467372006596685560749244477000154189111674023540211982963669124754016067853329907262903646126423485732109455027842315365677521685449561180393268324660658013130232985741195220336604598832284131025456180853751889951127002570630998730865423959051155584638708649275769721053192565907152951300752020926296654264009925794554832253246597572135022175509288052581602206026293899159584357380367220622091399077146474819390214031979482739008192690384613318899532215179462714155210222655184348044615232034104163936868233779038111308758108972913464848350901093069925034347536391305843288454999902816584729768547972788037713122309879750749650310455261780669326233907056526374957916723536643350155699370198663002197781518960248980383478693367814489567155568663440146459694783495143879917925784899226415984895954954476064955212752465154412792123242815334705481195394784603437957459996170274924576704227786201125548683099292524531916584568722357046366681832706862852804002974257778858879757058606059986580760554406996180808543980470026445632531059537596322332940971988392229737336388282013610838077988824733961799053908412932862198931848605505968142976369186246513472442350933525511823779407711112361901576063151838742826957437652787062379061202411787060403603841936133138705807462360929935190469107181217078512461164279026702536992801119252691530939947962743788151737300893862213872640942779614806022706389917666240662619019227547161296498272440812004478686001582693684887196120827615782074165536719359298381487353685686170022268320624411970506420736366727971048073263625059146212673095461847624500770805956194680779039087041052538801594621582020151236619388131447020178248401430081938574265865441735535983688536242261370317879303058277528532362294514170333741767628556801439953105641462346966623027014886610461425669659120362845909042091684863044200338942301347923372557983032519564177948716307390473604484008413819751756334610933513721311423239305325717140876595383238924846618217430072756693456162359499277372340536975359920141118347161013403374979461560370461705862650958478398960485853025493099513797971758770296388610118632588092662976771308422721828436195161395298406393439564649398297756490895346476917788633913612156437043492907033925216180198845926026406171400081461189710544672830775412173320575085068448491771508753728802226879912115681313836802649225885553031680007684125376557970500562754809036009093773275249056571565098029043245190103926779090380570545811858443362645051743862401548974350995840015172270156085374246880199248231166058546770572099815872559599809329465013544450324808758849768981761684651731115132060043758006389552647376908811046111990714452819557089822386036930260044280856012578403267250270121955285360250328818097214248368172924270220735745112872634695382534218332873684934053828968490137119992830761793234591551423568374933909355801816134728390637932707135321115897822963468317827128974911851673705761040230251876659496832939067356302469661044485669748936669233312028306647607835507609664646460757433275263721103919912679254408826073283484926774197195681945130275745184883531442354775059197423384082390699785664364671884266557036717529324452460251453767907341769632666365509123722238122935565143103794111726865317101549595142146935898056013353070538507591354079223066327198915010050254813421359258157069182530259769377298490491017796808055978417381522624729823298886376139022767604365298016892891064363484764047689367916404934052666510724417365653110949185601354126559742435964166537010377973567192936314953147974862969341645834329694828488662250227175018311689381134137537302264502868208259295045208724517090023010810596152947039246438884717545280278605559264276268374300525247170849474768893288636138392078886872817627776624782297166692520149825387220530898242366082347956801209107769781641647648391427400140396948096000638361995188398368409390653042726073784711459616242162906341064769880581528083204554340856830190397169261155923282291108223564543144092238864324517670830591181146551637962542790692889575129324379866226375648322590115623048624577817490036169319330927760529623544036313123511316840088267161893076360083864699914801855642607822144260218050703410992852593166712973956218601924323104687713597750456615781771284848144778161914624771573104716883700498830978475945188421079242937849138204166008439594261315865353161250612343480020318729704346867871037654322052352926159329544604582126943716997928765038341955560852039974894235287863329101440679417313851610911049514282450181759146185881768200805781136736169871167133835892455226308807103079034412241342166057156051396651933800389071548372658379044621119558889309798624865095812858461864601788285400436352705272579446263015276036179114445325144556405638619848234224628160152576756444036802982689005542217474031096884927971579100336268682321201410180062178917958658465751007197391227489243951924032101553240494381856678378084275451658989050042366516913194291516329384439410885919965553644330390767082920199009736206754806238706097293004378720598819743534479517164503379825699642749841337320065520270315671459151957264312346656840840718534511101389654331777037205805641238722749823921183781304125419408666102905265134926385273918102528191150700485042305518864749053492393438608334577210062364289257048687872452772797135748077980715146492270142562284682163004026224535272876831844846116640307351345591149665673628214394205751914185496351698250153604493108205854524600009068523671696979423603463765763698929954440397311153610785757134644035896872125338118560160163370704038953608721426620213151958882998384993757568651822219916549340129297528233483753453825449649999118759456553021884111759314994530688148022020955826450953734639449245009035045025452841190272500732529305347234149971825912177784095346475580155806628625994415006733879030802249883642179356226670165698688720070823330169924671171616144033175790062761208792572664277072527304302924887910282610277625557690982192683130336418564840603093060385887680559581720293421240912681187191145721878769685208314941867581176201954080026891145455334132754858114172141793297922126627248291516729629064433639580996560677372077674797460789854473260645581792393034727109403819615709605071255916776727311741162751384223730156100472814471346373086649535292705604693840335119840377314994813960482019900248742424242262186728043576645868385952709864172031401252744743452127376673903612762137744517967901259529429737760018559168470501577415339070763762256100467091618443699596708914571404764706643412785327713616470530746824059509426701043121216804079879590958270622577287007431272484020044507831809283106644613847489929152602852699520260261907937224475054684008468855348477456281708732577767660572322167110579306916893208566096927874382848811096846328513326006728441694021718313507142048059818007099028356588354436316992303824941995806426509819947124030599473704564561913765313589277504226405293829776751654782137551772363776561662131883582499110040659085396674008229298001834315913147077070124703323677508661782863136147123249371818875287525253256463417860782751984978308715194183547263497206233795728417049357239526924555613488485180142945778988590666539198834101552497562835672637103873177039435561588007667202427457735227768129985176554451183332507868491090960667437973487937832342050105994821402498916092740075626297857993982391010261883511083306815393561051827338446532157335727902119761264775277421003859621492324987146880512230961312052028956733263615174147773498083708293633615953814457713375304189914609800670086963751299144242855307867233423376574848436470343178927434760486182001654757971080949701948048279270490961417590078237483019807794757269899095668771785754441828355429985242095932673534486026870752274475523157637683581653672345419972627489534602072994513281464687353581498884446477476561316504747780083152727318937067994815632808350450005326395852927902030251008862984012459317676274828777810149720511985596551717399058595352617358473933190272025680045880359059029790242463917543463141920033127860307799808390120780940225474165721379305545667534837476397442824316491692776488496334477990299586059088510727897178259215719966486943205864732698300420059335228132739565702711329114167285698461274015937802218926072938633289269467361406533192746809582455468426600931899343546459601697736576269727831964979447976732092518014013075191614897799714404050497491291833908706208223160364978275622965602844354366988447532532947970280237249207237074839828373686483437614176384392384698298382408069957354323996478606057133724911258317398892307345502565264068338014355184297952375722875129888451876474080410423437644183145990848798969607957254982748781310768055690834336119542978360755907139243988015264983568287737324120972583114994477837267765798368574953194113859544003535967449403989373718184074369495376527918044862025711740576557138336621104749222157819335461922770329405717574587459099220461258049505700511694199947892312276186089953051634463644503611003569107977027548144542972303792052030693402422107053418104402061303154714710271451785046601480417341981564555362747215815536825103531255703833810681354327284550475460333926789196341658595288529932473815942503921402128687940887639563459244917912011615245262583125986730988455599226836442528157706183669945606774154506740994233609049522216044287233315729183310279323288241762214503400902106345257057891612798942532703107443890655658345622531686818012832610151758867456066525770861618633892247145848758352886625771018853256424209648203485880140131931758235036328131661874061316897965695173202888687098554844318448067564162041648098759900673825466625293914374285240192305908534162284878852723407156625271768559087594040894357852378940683528705175569176510277174556937901836840654453282577177543182410946381278006793612716006817003445505794106678405394341925921158866391590921642880980800931762559915636920321340783182566110268380849556197637253138084756812860852095043657281867449037712535806740217046302239908869013865011041341357143184294734959332847985137868822796865001651369542597179561629870933934597412868052505410203114713687784485693383984504832083643846843715309838419176927984752601480562852776612257141681133406743439750759997049688693653521111918158226808316294932500450035409951027692040849990917990776869981305371250259648850961387196701433657979161889310719123322642635668143351996090005086488123829584404461914311180205467206111352414183893184275842792035532821559964285488850143735220787144441361505651711300148639567892454239022628222994237748325607014336489107080841129830333881166869994485069643696463762581045922183835154039996714302892699733423883458544640526867172119060320195467583366060673726332313498913136176415764361038704639502647559535141280120490955564790092341116182719877643200290810687493111075360531223917031368926192109868650720450802183119549016157027277737883376583251730658230510239219489938932650695106002888802344206187982190280026186698264094623902861466141215277718291138534053529549629572976975320437237886304489854548586442611355287641035308629667260738037642589618480271250892197123619697551176100807770451495566457542971295790255810751962776401677506763737619881478231590678918926985352594279090298185326467010658911897231997061458159712554353100942258371918309266231788583261008446517069036379801935233768324693371920203251491395668626688219495245576633772532486966432148392243329474404528329163566121152793702790570103680972515555303431021473026025418844344041303736886281444713423015607264983094539897712221941312979959060631565732797125393148575177157004710651487603739641180833076784246510732021358596033436990021433530292733064358133922154008899182508404985473144251757907996842066568995422014502096731453454431899104093197482149033282837226039505224603706884389993738761634350982283041371445464564334637062311326629597942614182228020697367654393098596072505239116264041923093967587752119135458153202559917206168063605762865997757672117271811410819542905872366938209038277108977991730073654409570633136689887272388083125810524865395312568684368662117500306077522213205839728216948543023834476580347365124268871338791031166212182624965813221551643776977190492236855515764061362677871667069455484235886918558241305894176954711406422896030869386198504979649660520684381790194717995871217091566153979486935584085223545865734768897888047816154808986121228878733751903879237689092710874840381621878251913889173304720873878731459801742221768639648920833404518646942632748694735920308707217973127831383902200854037751513079953360539699815243583863322558818402568129963619025939949197141565844935262517142948211117106796337557617227527794834236391838320825027463718790105257422153082742396278949437453291123797521291133033980892478041846076872857720361857240013464277859807569210476989179718988651280694635854957751646291635270737311020832155071334509578534441729684145220926039223445230931519352621298869639416366372782691738508458520744978509102753912173725990103167678130109671206055981584673232506918347633446059999608799210635910155783217193585347915645686840740099868085059164019908038477945254131056958640475143013789910064921893219588475202520163801222681370821224734496302291556763749405500381992566830884550514969593046346208299138144882281173179974140040334207275091223559247473176259395807812800421670040987532827054370036782201281320337260711113152921078779828580486119733007033922022354631470502727462162035978939999951400213430420909777570775689248322219022682964576207510421283066541541697417426952152912436459610289479382691383786731110328798518508400871525604609104054554630925854718349955593409346312544585218135117210361290016240741657485757027923850865979263886497949262027971715773283470917004515119354614529479853216986691216330351483638814270075803891241497605860439382268889769917829081124810089127225879523380324938870236537489774053749034632365416975256810353353136902496682897327745225270294329211547589627045850695504086366808185001117640686402414017972960662116625744509988603147206004054964635829975126379178600469141478073900924798946090847397319276786878975013149881304295391675865750207448767089305099930700128072846049622575463479592257348822335692988102727966016421528851063476108643387132631787378371022843165851940288516932222577433414901661318942598828085136061377320140664815788590442224691218073285191036318787487502519914072284835474450448844403245934698949918673000816464109457379093774187124421728864011038648735320963910664712013949929251525929578948857754141148874678171668709850931519733764781670818077585155433507178323493908874507512083000341699021572931514153186846960361614644222371629707634772742239978904869488197234847523388869186124888370007362222759474071623879806224282729531045657364276092320176008091056495820809787651557311982685856275494753042323983336711369109394635334806023112537871996351773472981009499280445990831599348771399219958940588840801161220906705855716701932559335793013001943574191941063248777175535154791393433172317940913546841114882941949904463743169827775223913929551095638486957140986312817375041522103671974478948197955928835799768096097688837739721549802438681393209203094398301073127636091771319730686893483108470600608998394696919210765985718391288194791182301792798089131235086985844016499436513948405083139910424272357019060689599530054615128663708945028611489046098745248731857592740169150749002402059047513427609009377886140096535966655195196781569061829858794371376578347823655739712290366633048222347159094252062097347871390492642317371388272261047619623544409040631924668920433492269171306374987337089540109821109504823281037131396303231932971162953119601062222685177657380551744385167879084458678641152120972437585792499892237123211977865633528727523576989082041089692523962002393952991615309053648103268916061932515389399907947436367181404038762172710363907675752154397333208629592416041842494678913384609717081656020204945357546049982727716677467953198601677444737367122453140738344986400114679672585418697375296935785913949676702465284009630943090884764805962739415775821122888196232893737604119201646289354263592115637156595083109956690633498064898771062967377037098379209174545674412626217768166480283908610557232718816386418007070495562350117283535821311481466067530547665184736208190180412138829573098934644458529924659523141768648881091943957099866706533085072798034137654582852362218593727600680375813727489314480874693172868144719934018549589692571384603918031101725857974832956010302230993780257484834993547126533362125746479406615314245884803794207520979257275864834314506287914549413591709764174792935897151269727997513940001712231240246220377626526094031068879608337710106462510753792786666838127772808381149034507976865098701906087756200295900608756191193377623715038393616776111286707679705019737549777263966693722823938250865357786726719440212732944117903639937577734855939298803662069620453808353078132974304724867657899472029303427029008162545778654075218209111240661584717449280695315614244223364428066794260728098084598295496535103518219427410912110771209905035589563935460075302967308233116703154104686821435799789212681814806936411652690666094866127763651236201317944962922945043621826028468113691822139087025264669590760026882624372399864296702054732586922896007482268139288407386831559490316785906685915562854347001794117908836294535338149000772316005079915905138258514014365545351510347337521899015397366065340740360786560788676785721433423972437321012466185527907442013767006629164160053023641383021490781709494793734684699317498152493983866108281059122255818154741147748894877931673533911263026229360395033257544603558286513693625419266248283825437930222289479343447902850390408316080533494900331551551367960219893251447634317147353109967559038185269862526839550634515570356940028411013343095171355469427535536352531974279665931357385934302565341578790252629249842350375615213642352879425921722494799361254810032114266282381783723363659135203041807196601770979494007554612671566479853953377487800146451858173731564439830688553972057479551016686340138308560845499256120447594097384416697793071220793927152448742987593216803778503132291432152913960915095225667394773358554486754601936532436672637325748761357689549977288150147736148352074485937526488332332454697835341989403520234804209040679451472098192472168341076424555461313505561991373438951509276049057813115752916725761475891616386900709016362797948127329648143814726510226749220335519081695017232387803238685718721038207375874746313426478987996383729092479729355466348592256658583417213912703687892736635380544829816906543012282982307297869439312144761275159916420089720457258480216644184499117816182351023341821396696013450357764623282566804389758226037162768305191518824894764552127570629670990196915556945352867519097168856648891986196959465482953410334654540875805670238584948817513918141933324371489853548372078755647470445915899942703507364948662931752760240250146035682554207995884873515973441303649152685778952286260990401537396663718884127083453319361175184283531960757136850463575817164682280114417497147662442523879159727598522229095780677599414756591002835765544543740271924760189548786177764210967820740764497153312787236794992201649556691774290669565254026037892360917965983375047805278576375773749277493170433568635069411565596642554899920812374910065556364662035597535401281587400511748394320790048016725676213956909459239937135020460615373915640238680136309812430287646757376136274818854093987774639603011262455795733842192214011359425757447829824406117817669867049540140067217039980510467226233328557696140602097206859994405507469653576828000346602144032692840846470771346333509868701436858521906900225048634626588997395530838004357477519904060308100876276701007454507902725404413506267033150818276300365345463815289089136117266181858981395430201965209552480552224704056043622479451398382936274005757046963419302433733961501784899912002503442544869813381319063923682201934627695009645738884530578121166626477892007475957275248744598566884632345406405155774218590426505253457137291597492877910375643243233671570416720696453954330267097033927191872017210101815519491695546824295946256114338864968554206103413832111368148788257729454780582033513654596645421021542609037248642401009592314793692338652466479372317947889311911936740308183984594134796472405203985220502129695481217018319706820290536620798578520779898407318708243968670839592598839294215559974791408952540038207311800474755017658413228677322193402529172387898853762227241845424663201881396376269991877543510101083012570984049078337276488092292903050804950054076889225906776022006534983608016491838778021751295735867909742248940736016051581494112421887851816088699709621686731828292491980900115312006629180708877025576804911836063976550789308422388164820992505690138425847819883538492953539879124212007632572492419227004509646218270045092499231210842117500565152443359989238028417910961432289748838257640510042992999113254429683040756541850729659958405515048903157979686768314417783444540089553305762955846187645490827807615539388393064578786059414760702208054097263522971650136816068043870283355269841971020013725059150983415931897086144927885941297333855845697047635342879699392706628926822129406174008638649447008429819063328153825757883421616045291511654386322730801852292844031064073685945998790076798067799478267389474350295799606148766367771624038624939061140068332409749865158422473432776622632554168271125232689478656672876841018970816506235228362574018394092398267662675282000062769066852591507148040231831373461762250330193889840409707511181140010478711016623479697751802310119421680162475961473096977509082639264386103752625481345528796350378028270366749752466750305923059999856269388691305182359881644914359631563658419573427073574853655680414294597166037593548329279815975279264030229380264986181498171927825124780394929998226457367517131245116078791535109567230384045660879114004461760418878711136376735959326739418490246854272719257487194930930915716242115754057934459948912638757551680573905849378661681263337557253972648255277191908819306253001862183148710999081590923466065944542938695916427845188132045429452876614125161923248061287895199442245494143182402073094843517358708156127105571169187890838484025449807785081097856060146127328550415683621908441115266629017583910495016767434161331216449602311979463941784145236195967896796947676176486380669603000293590333602522754844265965520755602331328054771682194543516244559033401888616081271787238881813515701229559693866734917651263840104390171596502701366885138756393755851527206214250435432486172761599479066699758665917701079714986352076816140184008860020334704966356050293956104743314794165237380158037704878413388873422128966241925823969242649292295668311023736890037476662070039590213958601816503683306595608732068854789355985714774764860774680210987559886434163658713266427109648094208324649988666561960097276955803222005777675951231770338838809563338729376264566141831685009988731843416149609195462043689583585261785043949618272914998906104532556643744118187803417994360246297763518973924112747971688212585384501511044066289549927497149175846952116975265256684913829787703286033832051951870145616412440085808682027121930205246375757514903673275807596495490081720138735733125415281469370619642186829634724805298182958229053364219008167836784679774483471811723462715645322628443914614290261814763323609511386098878337014849613921622206249756598137426735297056758260787279651269498350618098139019482195965156742408096308642915801696455543658215532686079284896064073902270023815763200680994715231404444125558485058057176041807451155793403948290315144686305428819249390760277499694722336965484694231020986201046413022357772543759069992913305348769401357703092333601200490692838199432180660434381083519974209524678650907261004938333175530068544967614905341802345353196290900199977416039027443862293182860852736498388807718943089650812051851320145428889306600150764867272886218173611658314049014212984951410357877325489426510017565819158391387542462006763702285213550470819981631647864188324672036712433713051327132423901746838217921586468446074027658043542605437983768109975569629843195524206188550039245182187248386291511653727854412253144748021565423321506981623861014369522573693388782778965031052030282186576882333275823582359435054539360610533286527952238650509386874597773585090802427591391214942095134251356324956294659744272455646960701220087549989207927213375526703911404327084413820340147285859759768375240621778007677749553052276118314689043664750837246057137158859567582499916783268689650456228189544051485808004911530396919766079927747377919864119475660578798674636860597494683185185907332710621429186345656184993988715396080614389902881060450155491453566502721965657590592344042920951184126687779875475065551000369465267069631395640497049123486678634184875782351292827340101171953964116060408782263732052940939881305305642696263608406561810757629915905056702696924241053328878838186758736387971255856922262121236429126216249869431744101996840042798684100434507736340085788298909281716803122397944406373777062804741453575572101658001701397277910298755074184049818627653039426708343994787865242519723391908647251399213344460737105939682638380671477822974681928891315555913272812646234190744432712065937416528781201740347146141392982781970965697248906361436204938411737546447266850264057984127494666988278522298665320041262985838391884757912463671063774982463083242544410167375111244574314906357594236089442601509489532413189944269124077290394054383683659046661482115812103803622145851793929383552301190265980356774354465455014154853309780353202457260205365973121868434635028804928585372096660746740688181131330188538231023468491810528396650452644745866977230429086869704846651263331882307227394462431897665087329115312131229692391692884475097123298588813021405754102493359889394267193771653888614935034305213111895512732528656059887569614976991666558102914540892415003944817666673389715666650649876357009190494311350201503800537390207604375541913911615239210187681378841357134668800983026324357329429492025624385620414806331200726886860566624612493563787294116530322311620097372684291715852575218000496621454751108934705757173041789114768136392223654413057031840077989153087631883555425824653477686966339054713723619079623477268603823715054961019264034829764006530568102508685411691128296021930946019476336555326764574297983831932520174475584248915938499305994339219221112121486693237583936322530160649981442931542555742738806041317645549177406432867855928784203838683768180246078220067070107749677015417852856198621862745128570342376965060017603030411045688506363391393791989661023635272652339743351672667846149624986111746295127354307493426355431726352483886464024716492463702918970819295808876384564335545207609315528465247885314237290825068084978560485945784891563868957288473884187105012212444941464422802085323636502952781508579119274440489400289304041962570554559444518233504944108151237062200854076213334827254149607164312168035289785207482928029753126288106411964107146441269576605114086882774023831755058764952616067480542469563101146558179790212458412975876591045744271341997665003306357517341484490514512427609600513163166652158832934608877622515473458626424287980721859861788848287975617252557707512088946845950055067372383651731860140700152830464738284769384384516334246458770289687996611594492569945393368766212130002250395308880442066927647784317627122571814690164345361762276811531890164308468795665996833145606373732372578269999140961651213964917297892288870044343703372913330240591036806785157866675815262744673648419443239917026992743925583488292498410435780435598587181580618129346283810873704403144559000146127238046587012575669847920556154692625832477851049950314926414767166899355146237863630621626910157270872021006632226794467422915694452101376777066662693745192082800805846673984283629711609009732507447852941662459652884237503490964137320225699650737605063964769560204884658128402053166519217135395202925491939282471903305309452521496130953062312823733859738875822787968216964875508395666776231474138309016009825013662961363964024560749234775041712818084766265188647755760780088583902622607948751629870002097883952192772663621217139160641870454370661674094984975344992309620909333982247947047078935693240793784411485281501692003270121728659444089540289808417536554112089098151315119575967444609402374857195283442644627815304392424766679520603438321925548587240396968475516799142576121878549754445711584607117568832111815909288123423199902167518461711081657456883338494420027241656843605991932346782631238853925627890466501921816642858938180461589694705833528135382433346621886994515271609278689149024591139821635257066480414628785675924150150961452494570469860810270986908020846959012500571175599307793243953964817820992835296154269196350683572225055073695193200001216719746508739550607992283422120382991050642817355391951548902930490733898228102852933557366814162468963124720833497638921886187352737855613606424567049557690862127487278346128309447099860620837855572137200359466559938304888210035988304725787166595619813941506654181577516207422020489379306760460543340889725878800290666837447847240201042271075359075487154551025676190658612715879980935499592225437610367590231919317255355010249216390369847012718441132334004015220654190028219293843602337438085215551040954669647253985168736370962980963692453581173256211526484033453726938485894874870358433594349054004676171756865996854808076061842613114001369540130083586702095792495309242158517329205633444855516807284013472644879946976240277292823695181701248550982127433168051751527117479177020577920973171433314621686287277269023291217374639009471286574088425046392998765937649412408300082183846096357804716282709665234098910552555725046546727030820378790302016983338358724167840307320709153669822466098080208796687243306557062348122659416714161733848009037336441946374371159826954405005554779398326532941192282428843343099837947243910171432590818387912409086384065271597964481262696523215397365790711245950799710594915982436922981277809145903789162969436349141261776517072598160580854265664935383937124632493766407056427754067007307355664009910017522997123934495589726354018727909639029058971347928707080402871845655654696884218669520996768572085372458379753944019752764404468813170511238020374837358688667866040245777259686796957869316060114637207434317665358792683107370931270320249131587905658171487749830434254919640707107158209803834142062367850672372856255823938890965535864880953072837854074879908559821369404874169467758684738372655923067458680404913220683493055042209986740190622238560830500360689072904293594286552708860799859433667889125335329642253057790878531025792720318845849118312901176465876733042144394584289704049534302193870041315609251217108876469732252053448010924601865633050057347597297212451872752507757809878213611971375882124974125644098920706896347406994251058597005646850146407016903626403914825825564487557329848725516203615928365041550926608342565074845523604589911632096196866109488455437298218544022673126258223784749137720807062862016826648502271007363810707222014773264559336102293554439108315171858731222041054746648297278889249622772281011645812889725619601115286936550329343307151656419270627090127967819508230125156525309897674400044998818990123970034046677964347811698552547320117611743031658768899367436657870207774668473270477791751492064662079190499336049990412899025849530237109411438505268327080502566765054723229755730654164445233788941506858929073369674354209895718369076418006335797040360357068291236512279127618857183202352561021192600740768275469337957553165421700401514332952204318685748483388089953172848962651679132907085214004011173456687019168804840351687207981435927730367100012982701364406119840134047496107140485217933676016647535886659670908691803253825014199453602139775168888813806720105559754755729703233975747340362953687628814967709572865406219473759388680010565053170360961483360340049790718285194807125395413787144019978299115762032579502582617870478045798868660833880745897948017266705299619688947942694011531362118246754660765287922367939643994976130152301988407382717747627702191463767760539025419974584012809162470048599455501611166898190847097175376312550918475477219770785105105119960864831309507362333764330193810016044847799679175709230587076253296458248817019946942868107829916590352560678816823044630194185372277026399734522719813734432498115611508307216175994081029733476347150541250537749593820697917225472119819746917696712459591721222783843608471726532150395580685952110640932136460856847272737838770192143205866683684190750664075528827681381451858789264602692183660799202350748319884117242579812469034555866665127824712955129540593117895763809725638349815638245836001056070771199621993207376236139255559455319093104595595596705585259903905715883446115311269609507181155627060331901776918735617806181754455378832729742563028150832272280447563590102181820234595341823425425399901000379508493346045801956406988764965988597248158928327060781746858378403648860519084285054931095244370588663600206057516498735245860939378425645822199637731025419525823387872953162689701315623713995862578223201302349544075063367276688489367156263948734107127519685063415211789027576057305782632430843900052556006227225873756192887849360351049647166993276218503351543455722685443854079437242938016121345871276176022095479696637393678137820439606007929974557716508025272895891374209528047996799494212994067509779373071269535194665952707471183008124884643665070722338835773332117250402714981715141677356541804611207994554824988688507449127006053701338164955325260391902493260876011120503685327285277852883626422930414070704121746693018930857655430948411077587970522348382540676599770768046459757307784533466219196591263494447688188746424895320347178091511392953400533511303998229625218104346606873953713106223414444880588856311651775665600098580816222152982786788491438669607672053668516573164330858111571016133280860283613257223001230672571993830715702957427411715387370998309932616484607220610553638140240625482830466293813412308087436953615210299177595309376876913082413438498103185602462112399084716683097288143112744873950494225224199195216448282417940156635964411110662776279182807749856328026829296089572410762281296919660116723598204722581390937863780785576755254238328401659490680116853793297509252336136223973463880038713811996556852080765172314600433222560952217485879382102561962280717128401244022141439927951077792704041207884487538174672223714654968448466920070700703362675471480486790437399636157669231730917371912407765156914382669658931943967934765529956998307932944446046922143701382168828254022687096835899864662245305903399406628483892162256082407224777440441926644508592169581183146561321438577495571706622279447059332227418616600628545051647202347485717447824668715838582773347587685418364448324169475747351887769598587583876473124634237273928605330482113453995402975023983563055056143271348363893013973862467741763802953110280268368500591406671439693500907352740026174460208585696987216126666986060741719234292569188933563347883811624306835088162439342059717864156465651899502077587643045318991608459240226528589745920719026996783330473712992340815122110321740748158025474325890547398703251332172744492489182899434019701935205851563849496332639583760750709537442357119052904938183507064488224761792773953471531559600381785553484734969289169553978261047279016584029104604579708144578374736896786912902142948910185680194816344908958272246073038567152812030998446966880540609730618210727481114635569031680516783435542170980388051078275773874506029003870009872260572275993375573325253634684224813642722721813994025465970944680664933776818723417126434371680559906496827593446541460551524342069064590776542044186260440270533262539447666745360504592697345416612020375971763173910938881929267386574652515273596157111108810226827888056587054954485689089593347872057328323831510304834624487398091252719856312069700485489931657498202289907295233084780177364606520827399098392451779839375817614433398551789748756076118564665112060114233687290073014391224577153771723970750357771021282117071283991810527139488906032050059440466312614219254272663890051747692207568228488328961918948795116617650743820663776500352437678634129454484014870551413103488675380541796729404653131137614262125646678930725709114932841499556183405774619708064693004799960283554918365522380872292149533482956375163787290896757615703345136025643814907458260291282861059965304793520089962463191327426121290452995250201002463626728957407518665633185501853034920256850987983129145213420617598889750254364796535254346381678679276746975278574784175185816809339461486224805162082797048067557076330537587896416906706115144260984026778468543543623549432858065335332098593795139905287077690247463686152571720409186177597750515892696472476797142166834484632029153014346435401452542391010590517119226702953227484922914310449836589891192002538691922336959131477252936268095551434965735807324638967113393416419912970668690752074416045971631974767125839571653675436016521830580277121697907538831169231486187131147087692812072786641766522777249129236533055551906901938609148741954038218152964906166967413268117794387528929400979089588740572657550369042635822877796404997802377063132340204951790438939363404053924487549446607370578012205121436963307972545829034503897541687532315586831223810204759151357045813337859210658783167780419490479455915323664548449253340658845090025894374296838406774706577236341771542369190172472552750060842668501285560964857607864616855008682936570742117404574491270056655855789023587286211664363680612569680031511603400837297301658957066897192007962662335166815274550515029640277645743051678569004029207971838394537445470602106900871363893772060219148298179015627204601633194048368056034825018472139906383970973386259495846664988639066977370031056727960444302663636037222337508326825687558333076991919656067953427288269655686126354210652387534440694663087930949618121099647973716013351925727033154148804493842503521270410556777881604409111194152884000403395070592090463387754338970078940239707989657264146342624508458595631930520506705781675055398721746944140432658509163024393133705061916987952884653870135225731012476785648826166163403407344304467054238337272490746999762438225373058784725461452931098696270688038936513596589361920886890515361732069186402384687344088497785015403767649370085108989688607182246633011780818543226708783781199246744400381341625530554911372247046154088560953699072224259644355549115043928441508447928590345436218229111346435474879292868260628412532837897318183211587050303033581098646713961528420131360949302548570633780181526477437820892597180218916618341902867227436340823235813411865466020697141933120334060572067264024929127592513536113788402905925273388770910410739081749783972812067515600633891394251669393846484326139723628666553450629338942154599043306579458014729031404897444344742094837441548409428682529024019714977889651302231997975009896340683189454700514916663897697022389894964609011511700607900769125443862973179092602817505592244631566357585052294805524912002827674576053026983509462319090043722110727257755371931009184777400912137606468040882923172677612998784437322804788742716500323724468401632964520255480361774670637980385491525991290818066270448248725008959037914251962621478599231915007025880774295727535924646802008639475879610276392022579302666401967143799821681638070044456098232409922192515527650768794794074932661873271683609285511101676128051023080850272863719816315209908712299494706712132052422878460905197329898064903350923419565940044065329001300619778560893285142953766773037316522585125284069127840244569751387417694353729180005087028405230210414492524638934591042022268011886389761536558960670041919608292453133339636357598752087936405447524127798835073049871104538527343886145398302750026015179489880673239418260770234449458883095947144581359293621728005802885489648202213538694343073991617563491780936503942640617929301495880545204189364834889273726983624134969598200286516424102614940467848075440597857734734299197628441558397108921257538856477593139334376214327540556825709391780933468363447012166964037293299528803974613331386424728597097562749275565634451525568729833079094796359458847965423671947426435495480471174575427932023433706640570633866656663225531293783403766866167379798076217787759609026748942479027969849832229064698140828372129696291388317030557228045762047914167683509591142390967103274730504164374894407539951104749599662411898561411987822254070724483247026288990613976076904962692087622511445230742708181650271884064954972526724261286933093140978080135105585369991252645551273671684340341096768848601339046306835444142267479160620844719307600890343803933449817951178107027589289553650621956332270756265363184412454994494227188002735532137230644475637635451319435630543807870186404777985204907171543204059840824615174986326271958808611969724486021432513902059352235442250548199602668120494521846007053398677674337390118057268444854705811546102602629101828705066248651168534899032961933831931309943595269575375821604450168176130463793499781328058068786108984098124881540559420927106686206293102339868029169980128294427407572441455883109922159892195947693250236733744500189506789228591003377073382254394386462970625342497847332529000412678783183420811390196087710953786351210112170584120284906729238870493486421819043607242469138141673294148331619108692475359913826834051788137213310794265470590181204053104853848159951633871525498940785098712157239914481297132692683300869027913131932384584242844272729480391600284516006912300425305612359526961161943703984215502850101883990152854273228598531427194633341018599732681738465362811758209521984402259970303189254885330936807289471203645882633507505268951453100717548246230064433093365225440327936803260620118701649315347497508015541667479711896660075368513892379817395883974928038395189833762754091632689330808587259633140026400176545789494807714791021236088512441396158655842952898394046787430094603083175404303984998958712740674268608212888613821476474270182684194900741287351321465934114363447117648431671604630337971135039588717644685489688853726553298826279236592474611626897573598535716973976273286020299913857230320386846139335660548721511415635782621622616063044191905421257433570852446132472876556576672872599827875502955038950210569584284337999471089249418191273178782084825958519080561070707891466287671923527962131875970727941659750868440360085768973701923049096328897223194552174157310545400481029000425715027082091601970091086393732229648949149305993229402989310884588470888762255599519447678937104481609341721934637257296248952256126699191831765391961626892728876579030699264951875287491078143419893417683814797995326441245893440425186808945732162212712531783333584851833239890892811961154030236826584201526867679813365745712324585167131581013028722109521691288893920498958550005605060681394258628870011138614128409545013504870185993131016407430502757997275689865973317771024932284441138225804589035953217801554116793503278588086951969927184220628599471677987164357603360981318477690558829706770503050144716025896523217180325282457269324775637409707969802571340030138984246678757327437743287744282492293185023375734184069976109197226004273741886274578815989352916536150566952880928065078621567118924727397083488444134623018830005716562153221897193331628563276070501933009513922242055246604804342592202254321183517051186574460599077842823513873641542739477694041181405710965010655504351987806575059288828128380414371655188206471132068865231961093986677407915993848129162674257673866281688702746550322934330180146277734023107140211792539907769401477167895064971695910159071528471524826719947494950027796179312369557747137536619197260706415817605734179401595791589466721059822582761282741208036793270214013549689111717141782200302236995567367373204995286729463865676124716784411335080933865219431142659588449577675434958977294513610390575994336177795801499765335235675866989814172604949561583935224280306921989372474392507863598552457725588576592616572466792830597118064865113241147283301955646910657487169374169195282754995097408122115159271184013767380736451553938830745930851776324206235644627143385327234276324327485510183747156870844629109252707074174701135253197382156351837996443428767329886050603116933325039329434351124380621183421496528087876719548808097960038836632108513449896727850027063463877226041909666649597672755494201605027754746237046268564339429904940542837680929275288125460758339153865662630518344406924004691018672388723008260253728237276051076283678825015365554325707598365022883208030868507102298479772589271414473223666975099775885004380852196568818570284106357289037135091602521441900735428290565136851382706755399285421333711525957147968221340783532512700398876880005690124795121291585659643649297338689867982215268381589159459594870141998134105815085008705551705285978828777270286088467735502776341671631601094105909150227442535169981855443338902308683469449447166714945427564475160050955402995768894988016804726933862003490774642587724981013339579769190833993129934813692439438787323580006137503154582161180532790710623402452539873691178394313117093293462857657738600606118772198377774379698256495344341683821535720882119894129817817521688082561137181909659433862856726914174273305041948791990979529161120862498918895915560937926931987527490627342056510838317848712913861600390186162733805492359104215845595496960494013586959995123824893725299432818381638994152383319197773356596275576989480577514123503560267354292220880979674353597150837495436714389035381001581042863287195645419240468060366441985066612578013964940243453835748953036339861919764535948719028798399949116670732976502785881283666347131692120859369280689247427921632103702099615849931532890630926595999327132610092245298900391155971856698873374191284478345533526217687928569653606160558448705826624635891832237211637258687203107436761699221528823468818930143871925321996917890711504801705450867760669901220671531465290465296595358660956209596065432113694043273326136891978690924642291791087055234600654809982693296086607821524993830929061501160718845404621859090632151102659616532005730520054998440723765690450978762255243873619846176385414652479696735792031583050752610616594378672124943764852935047047617591537995932866370967290976072312085184926991210995135048547640771266077487808211206836224199073929481494046420548459244363767304180250669570246549266688763029225383278624761614341937960785137487411543099391905061553801294140411894237669226153702370075635110827344600961069453927551671226814245059798120484615037137122382539856777328542960810460960754175565726006797421426764300294404099223861798908587223107379751223547094229594905771739595196089507637279770639163418855525224622932274950292979298279764791110641995689319066464469223367875530302176323296797999512188138490792525952055487084283184890601559059423275077728362803802805198869957186941216989482033348809489592173588763281949315383340969090323560129096467041790697822861732465594640442926093127052664738582282725084347326803346478113549504742859585863633958533723480078053914237812082524180261343840717106757180354787685627387312213916671980006688689696408107552107340365938480698278021847589659479770773107859886379361791511870399098303641622800037670958253839354971474467156301002951911636722831405268871167714543772868038555107872333375970681713455589453185368804023950151377321963204239826194227979956565953056892547511122425795909739949397826272215914596161646835281559749616438645468393950943959534850778310866088156663914059696720207915547517506789930395930865295179470507439329384745960578977957163947782478993792933702303108672238641254387116589718203563025035917387583636395186425381143864970443980122833873445488277339729223260800848304966381993935448769250958920375370740074776531237541128582948709102575353506403489405816827467015751708607615207751857015210523297762752922393600523168944733964860798078093635692021397649677245002162593743630655080579859824793920461046200748705738361459614260418433725410243046493716967192602100910217269014938836223683736608688499495187223681629876617713871346564416580575143846216208149619787427995881921227739085347168940946516587265628408858250745893573177041921721351932541993908753437014527197193976342040620600537101149575945736944178279900123800163118445672726873825318851260388393985536456780485010614461872631916390180341006257026245645439510133957561937509878067915045752613710285699148960765891651372522113563868047900751265713657020464545231508115413155077424417875328965762836992046177050470405152351675281767146398928840381102784403947534222287878974573361907936711335862368549441603728872730680509855598992649030527176862939361262833741991484285729496614240918499808718703479640594093027262535112381649368841928855321168940682622540667222441433979924751855133240737571098781211290903348022914267824060940014945260197709098237204756891631184818757344926914866826436936197269763521918025460903276885331387893214357634268716282360506136366690055625923471604991576316429235666937364611087901918233160475810310100679188969202872334162462962313690599580705186879922581388356630628279399723580222967634147556200978910234944435324173808097646075339982935185225090450759502244632167140685792508766779813709952121964901769657189888954335905549411665391911464434197377277847379935147928775834542506360883987757095372185974569695669368328642624080803500948670068770963596601959883184919672024082371385013177649941354538471198732289245378148483118114244958158493395576062242822766542035079111193846869729861496286608135580092567208834705777549604529979439440990216561182904686489612138726143386533502797591579185054354074867997018228171873653258310706020303716680729315286934963229903916546081965416239701547013326882636456560623146934071172684122818815507788070617872179435540373143319533444639663041226157414388979335646672555487089633674174182625658152462740072506705863131354343730210557130011913166844497272916365844316656508005227646767038884693007117317370419690777568091823907474207989350062543216493168035736911801100902057531034754918322795843427981771699354411095697955826346414127564068088151529621038666926087918356871864719983746953414720993266267482131690581253773791150231256028568249201254316510310011386041292694678193552685665229088305396027275732908770530577419374412510336191248983509824235518122068163384452529922259140256990776635927425230962218274588022712948044090209276370922796484340170885795132006694643759662199253637483894517094335968594138481635376285062471806411204434921273310642551120045720833863859541772433786004340812672574563271089776995056931608754237936222750931501862883304934308155407677038396332039263657729113664845955723823612605789791607071511798382704682337993136416571105263999603176654161145954831022881435310060749735843510871463819572454082777893181157850904846796620629828420438650620534332887476104957820547800756134195116236725076511578948256429805413185536445193732992955125186416826862376370976549951810472995634800281147450908928832374524600557414558886381537526907803112549777388967255969686843663762757592641221627588509146307583039082596441114502689820361135943441648739231482107210258653180155644356828126021150033192825007741962385678284906070021117383343321329285163378784108063179600056320385912094396084545702884270373608812831523456807729222614279564710100870509337471249160362633197788080462919542181426019325264187334216884830272610312137208491591106654274421543234764595912732106544500511544891724444657979030662819394697048562529285795319805988063254151180222424553614835156697261999414677868212709588523950500871691653315897533653798617718698176414662788815448828856607447000613046465071071014396607807892626098558362897194311196285123863204467631377046718516117333484685344205586481397867619346125672582523314872968216129236369997948534262745614929507856494560686453243013202739072370383288930807514229720492610370189773903117475129095014623219191569288751828588736745079849861961502231539355408214540014136843248223316267921134621858798011739284148430314439250382311990132342937775147724367879577964855886751244593438825742560418525141097706421428481201642008005130952123196261778536805847842103886477249557811122952376764115490739043585358972473155661247820573161202889000106754161275375933194794951056868265550679623813707123856334993421431806483839692367159542484063482443583263251136321167788393190618094288094836302253868762913397049447707356667035209826881921328153580657604314730537260733134645389373069826994561633934605174826833308728648404870399190604909871593385971990408965858154171910646115816098140961356415445212000347871802788059526386295444696809148855915046371192430629274145503702086187553843356249499634104080026568478684198799852382302857463268781973163932166430141762329325219112034769392390514658909475344447800356088656269767961658380140010616415018907376550722952051643543392448608980481810159441179481780774446201347307750125242599841309809989572429874174959698211422248077516447023650909618612134595000118573314969979808419591891333585908549180071555166362573825306490980613822450667014606784996699772613191724986397317901761552845568985322135107145552008571668309129627086998287106147457249545825083062113470375046138635854213425472365244580571689668065146018767145418212857739261732321368006804644381205748310539471921577656538726765362782395622695535442519915659271319159680134216739708376131979449016168230268513444976748951271560394457835971725308179364483761867579968951553009452839009048049603155557173303504728629922895275187424440072317904766700235399844518636165778154882419655559115075411519037356308675848616525381797968377598268962195659998966221965766561837003387317232977905310105280880911102846615312836833433385847562014145013120029079122781465267752281077100462794384559639524248923889991938567513017594790170570474465806581522265742437598905023081850296277898880357781717385112436263225936829357819567490923091713180669146305331738380256645715096892540857563139258626600507813314003443711119459980793681698602051853452420996039748885622377532434181367313761954158885353738780198830252642675740405004782625466858803684303250102856554209019758948927788780796609626042797230867169740435826977466631657824751363969177198220892479479377502490637916434239418891696122901625015175019817654431818324974912340437316542646734450111250791531700051136306327825951199528801227312047378431863023706475756948597592709195346782842858317369559018782041993521797311800771081759202960670237536180109361398544382548355737403336575823484816311883396443998464892071997749911561949407294036786477115553063404950938827974312577802768929146096793696527801502384143506196827129041187370312953260688335710064609128081192556543648964402690300259967767398942410659741730745902355002161439792779488018967115074156230089309871297700489091531669638982764022772249298488253028692288151453746079071870208327359272769735202455829950283739579351435645351180350974454025189195667930460400894910752305944183620275338601220226675070176322521369341356014177810465541391268819860931776741935756208293199639473754589332949539736394180776035449897561366037055930138946873008826694041719963207477001604939317564786598957581971532499307143920449400504305746280185261848812626436662946465601525043719159319038184598077651275364456840787668426763123225390439359728974686079717503509771583649223530553270671077919646754717036454877656796104190955637051640893270683958780205733926888737607617892143169974026249299436280810239733162606673918730910935415269747363439290472427616029717760000386682319162566697811045609277451609570768472908377104808567352195097100450610453843180015932826658167304942342845053823962668665848645076379274211881794141633249667275760575235628949308633617605082867901662715049891723302497007244692967464419278576644502255192405528400861606377912529799585023730612150259036697299839026864531965984453571483115293030579307151053012465279960110582170728104153066700974040604296924777197506116557389265108676945628429432717314740837130459383001580557720902912482766006049835527689197098969842393917197515431200163167439494234665394628663962902497708699676864444675614069935644565324406999184004975268158107524437982034045348624801963221089785423929022590783887662691200151098006400506603616512153298309517056700699796158691025145833584197433360324168037360215960384208218047524347663169702196919045118180998433683752813637240072326618340508301010469013836258709486806877620270163075899161542168038502583753275764367251499268587247161997342696812236833909586622835046953491539817518149366896954824388034579449731167744508284184677098145906738136350185315168167883527878364874140577173996707564788498224527243527628693380045526256951112842232127406073625300755066939760398710893907058313312046708480985642957237713946411901283384235380585019441583061279386110674780303137965861142634206378949103443464317875693541935058906608529624505110456780653559012331377940318282029440549613887167085451976810432485957037210544902748552940436587694023185669387001835260395530090916903358732599654884749647825250419898796542703615717240130967145780946921255191638295201140508212710973508555847996290780940799492325720924683141254126762627648595407723619900548073040805792069752005745933536574099458294236042145764843651485323387807632937864415391960135468025671978663212350656807974575384737191907484340098631090427852053049085846123169529206161111953203290514791041737544328640029936931792911643832879407168946700293874949534876563525422357665731317793659650929579769258095226367770870457812483852694337192304413049270843150864930522903752257695307587499046382847349038896530739802677780372994593464448977485550299078041227506100947831788855475465288816665046711404745365008932361164384399264795921209139936926297377293066090215343246413417428451156184639785394470698386428060767195168631176810562248285039993450616324854877581011682414907456897192407317414726749862589313636613605765890083392831001832696080802636877962586720831097818498670633678245374350710505460528536873359059689488863978283052312558311744221835604484590183544180557505503138624219571000789174396370783278675900844466944388968940034039864853703772409142121020897354145673717241904832413384218375725644281920750808874448294405026570587604968366192464878617746779751186154972587343951563472481775538684756817647244020582593202352434985168659599366997459516412462181528254320680004932365109677819953911773366260533372745881254145735101517497058704914657019605809471669030500000434535849909665216490905447568225001733089962569527650479436169276330694163729738042880558518966932125007861161784191522933344979326005589235978708138784562798199691994226898775783847896603633449885694167487865504013042031921889589905545962228533145466983971302224991696452731394906196880194711353809807638971285987529884531590928880252162540106592810427279497768295627929167160657139578325532062116002209957915701637582018276522896973846448772720992576039423605637959135137075239828399325981559351028293687636069417410440961841243077983896787275633973527042925548342502229888098101103929336771894862506263087266897744225468535937772437724296406660750042238126855565460813522322186263445331387260798421811425730719695435652896649263999553632148504775080950543580751513045006517716970584732567327186293314340897499977645432718741259806465055265026733825062798000334616003733106194385748898019845726520077044751056700063354055344881491635259223242586979634296503065787198159195979183063614127250435434637157460174457971731380675845518921435925904163174118122395239109405455010187706405570306392828075245237428892826522363657491555869717205245862179359999215550308027754548507619931369686789102209930317137855075049771560924035280920842269618584465266159197754956980465173949713244381440254084811896867074805399610851759114374746655558564940573887926346309671173617201826114577610209649056398194927741383642709600672764783793739091341604962124543765341975768694732398231623979147446043103571051976340134576067608297669523276728315572797389387658017477940870493204830231867326573611912983885281005017525774976089123923974941500060429884078671139932630826626619352450962174916631546718783507498297348939125715977374042956095222384198241772197241794938127972367625698229208710284576930723846522852149741938530123450543581240249193696487222376431037997533707560749145571445318875174208569685755885039449326524429138997439586848859543475341432117698969510474392308213518033658468964781597073509708315345530903476124092808318931349895833924444133340454390511134230283192791486873419169636581897643821469201332371072808472963501248261139227117454790525261525539606023081031461840047458694921490806466464759531519023798169087511040083626187087653703047309448476845464480875350505513054899383767877119802352119247428018600228329504265119102488359719356131340479625214011319462809912867824318370426223536700552100821704701558677735870330914007685780991021390417067681340054747962347671721848519213635419067113057893577826013904747748967091477781098924399998758967989776382268380113637868082607841445653883821591068529796044242240953671866416630471854227652394859874792801724067717406278159970497962694707451826866302822073925044776798289106409075362410277145135739228009247299653287275073125050340468500463583499910973926317951652919192929261068793456230202069188447184193065179088580756302587121996850636737263135934143471271711830150410274784252025350979528185586641516175723381579503972812920612204416476217954167426336607613680526238188985679836673356797766703468548807499978818458830086725762387726211166593406861669015305462563321525819945351631081956557781548458058111646325990592481259410519275480176779270263543437303777524512138709872701033878624572416089966696023664151515343155802728288455062058630375161533701093995876805206281910663480797286165497314206645400216147916223978521470944969506627402255864502215789092568384018135414133994969184413189434983741731121629372793366094594439070191703098481423622930996147074268566127572227271622742950560913807496154469451431975495454233383227734529238542495004334321643367975340799800973562203156441468259571654110486327905209078967083682349188204120205504850844951128027160420996081289654702008198198920402081310877905320146828583839314103915381447881712075984788441242731447136316644858777467720315272139564562621096157731414344243926242007927729151206078073991211692478274431559566978286242929882276428890216063811279481619158220320018247707791185484408986518933390318546010290209364360496176806648399372265066298168981326246179647221708324353656032590396661868014382791955608822771703613049510832206893429364070065107965021757777903447713309446087766437986255728699084554243444377656155204048892604924765983506217607345179025669216031073767216116559077830811660713293412797494021855955050739692719712931869833925767744326556230299708894075313108472067685804159326759696452538696647243565973808115332990714011212735233301474643338450326017367786147028798971775964648166864344892804308586929899447088041439739322247229588818212663633710147198361454984622438183931504774174623194593539507277191020641900891655721179440684779506492173743930714087704614900729335120982004314119691527534599149862428455522360004945473385976221356241452043209484335998197087555118680696435267229498766427301887912418581922388188855307637767004724472167935086615080793071843986275997018141669237868535536935669075005324732957044934029350987409995203908476242850530286060383013994041663468644040455531789539029890316421064293208765626078080736560263870004341739122105805326618440831413067329209760578903621154948655345689763944028952287251217971121032808266218490535729323807818008718745708895918430083415930274547505745145244736726287932544643383526113327258325628852900871216698336595275251095439323795830425273392655239473821039857005842913234351984880502107622534574017893070588710820896025409579736147373247757733495065232984910153292866842958861314776342148049384305267654471087471157861682776510082215141941064093199974803253786441366041376347265694179818671728499726571596454096668217632927676164016149249795766039190212768325459933248758446793118649736731549707930218200101563523440949996506468789239123281667705512261265120515563514201481832127048673698059536979089042486724288839449675814349108508432374432191650397675469918598578023881913649731144391875714662954776511597416545999920804755354454311477933632323520820367042909887632936208558562982607857807357220659093600503445245502325387469826046598657447276557877136259294748742481734857059640124446671919848357559990328910209111663804365385568769907263258583790294660627278812207454688000282785543984428631296812826742070257077284293429611324951364733993670165504150113892606506745456190106544528976200914046040773110639200006325203132354263154064583039932094983207329838076675760403277546187797436562177490372185155121178995566694557124655947251638881059597141416367063563279949640623877369859096325596528416074618983051849804757831169263536044764245029109855819084837161285900396306743446373721046587463038264623752876312080149655946811564163237781473471932881845594008862378162620906800625315823660790320321388761768132750626607928118275171340571877474903484758159633480321758610744429488355083678825504298917509270079647078093629629877371965392668766553307389741810238252241040832190928096531039161617574447251022047499285040135811345055112505448608570940368433688800726139352003853293327732496461071601116442346027036526202394401847187445062334654696451211596211180249970381056108124228453679923346578103982527117032540758034165011069406133138148337826907404586940292577538462556823435592021645387379220822092319072460787786247810687589074794362112425037793918789292381353533553237017652990424743950106569766912381314591014183315669769237943793418252708714564971402077734371567191481308475042001078981518487553960780301150293731811630200738866366696091433898127450298664033874608125641515800777897423798111576114924355587251289818507606641081296750895691606422508474610214213468764505408622340870274888768115908110614750615216290709163332683756279401674617527874510046165129765814225029755960741689674517670798103711421426271151131385367886772015328601127946677692357906565854922887042261208311150981494977109999829737918015204415672732683945361563179691836651621834172429326585354453478902250060555166830425564146451889880712991631009041244658196153999757601084687350741662370700620175201092672278631165098150757173090657562113599949913838370764916502653556109194594863111441743351230506742675140275749198861029110739551343578933989878553702113939434825044612614096346217071403677653125527707264729431744235383269267120860007385972789520291782944762304914278648125771419837576988641755578223877623979463997820579376817002530412725666977439700640833279890509795517510872322691819675827356141541460099604399260836163954375954964460221555398454420623900981721609434189272037123630132449642515881214501212197630903367108785373007341934374333867466374343980473001608893009173553367916989752521222170019642075465020782736162542876606673959609792540422650575841700457981296011406923892098915123560720892309486080436459181516748142092249419146672502005602269098980110257770069630747414123469338310185646526894211529975106799372821244659088389882447007886863656025534966195537457293163761695413323042814276161386492682948697225551295527404895052051447288759391216615353223430011982625228158514737983885350821239199340786339752010804118433524484213355443838740148053071916016202596601156088436796993554236485859826685732981756905567099845262093505848871977548629728025733799251091241029481084371571553913899603987931338513240032459962495648886404998897575351374750372468707595560049319020069342773246169521005764595826956847111171128238937484095296020691164046411844755320420389433096639728118071202209036021167090571679393999408172084510588502120213597075684248073255082821112451241699469385652612117062197666177622607160002323831834922209066810541371134821417956801203087930753159657233503566839956702950686552463429795085802018654640988369927565000479691349695588436615403295613454615796723409350419835217733905707297298340991807122814637669834085096015962059998807838709431094136683920484749782703868655707430840916976825057545655183685809652454710815595797460487008735831433759470221870542540072255509712593245251972721520751535946394749362676296391301789078294327215556706148751624127269371044777587394669819664765008939557153157798902868905816978184253693333970331152084447439783183499022568368940281545371694569019720372892830882433153314163101487691463661498507539895431622406145554509511445783882819031878732170099540241157169234213245589842952090270800269118924355977681221821095434148252860692236740160133609655811426636878737733507177099589086731047863687477384823950933741182163601019742074797371577124991184623390792995038255436641221257406667972481974069693427691743470830870873201561920065055544568233526425614070849018995521396937259786973341229480484028637281914298486968334427733918674877748618362322681404810763607435991623608199822350702758457456614226352052396377508802260158658600780907433210813162119099364092986300985919429920440633878297268839515033063616539555381264439285609090069527219438677038488751819659802485590206843360496544802792000457651191564586565436259607813740474191576846812672452269371353175627311026652872433669046498303831760654483688901659291046047007370221782485108560908982896153460926732276966240763493460779286884510151812170328128477698063748823782129145371839660226688421186701503339141680148112515535380222078500701024519426002028692809695494050133790771294200711710705771995206793083410626977074081827744999157839297937211942247432582804811052884915681757560264387834030940902556494507303252350136957862328631479376567681783555220618147848945675955572453231537043104935851471375511367746951917900251431390439391871350488135590929577327409915695559819156521355709197424753249527554214357707069283499983550719710294903802866117675690913449168074157853987976581830126856005157490916602667447596866609413254228800230252876329715580320912189861692305082339944593537748092773129293160080329953126327545567179215243914451512841518081820831120317128665226863091931803795591194817787786112139716635641112920257039331878813471997414364202762068317901667317220850460772172038662882399561764327223312168344368009539629677074827297321917596435169714455054057216715552720139579688078917610429212193966707455572972951538125642235932064164183668631790508554596495890786130737735762193224242245902550581020100503225046872478453757936093969776258382136052363204275428449695468829786529556969365473333904772863614223194854755808290843847822912589944874543235257364832832650410952666361233325052661936238891640054277489476873843161968962975325227806358139630409828781556064009389621324809860753441699844097397359946698182735782896562646267955384491666622876716312253816711773023937683927734957523578053531259693026698041858629519613040017913188487538799616001197544112939720945282093191586571972969483492175608627998606528172211723994665225888973769026137515130880992003101435976010137194772329400258027134144416065934881689459270594421742059124778659669844640090670607286862528348126999852346711078464226421418013512398040274899165441186686637791078815805945684828445856207792037580286544407031367823357414920752890081971673178875679415242986652233154875413139988156881014515017136571260194050902129388982700181154240735554092778155745577635531638132376287775264090569700792714498478909028637172562110212094550168045977465608108367189484403017947764406681080599654227366161444197141513746221953007672111494549394604480095195789922298677425176010392780598618554194524572355501886987359226526701795750540758361025498760194653076677972598528403454994760243724232671812996990590108725451216470491341779309076599622310098345284921213040022027121021762125099374197256496937040620472666057500761106628029409859812112947810830385643013378638697155204096883299507045882950157792502218186435551807415928705944940981224104904233099494581332372042954190236665726993883557372363223963922990030996576337105219224667223261482144322267394285200684936340929465247423157095033763125154472296865071353596589088249660883046666948516119812796168057494614385949325237052536900480333218339321921954413160665414100616484020006126736709666963352890653781726999188564789319865799411878543198925710222155882771730823141546852914316099211372978044510302229955262937089199681326525047527448006467741937598196616980083840851421760074630686326131311831981780159484412545627040716713857663587676401101813137426586170934324522534563731660303804275185431120000231881760820966450391874563023454633687213224086512045112526836184482673182187224423720127127958271734093004636277801269299643205942172376701973287014599258626124700085314634325847398277953908909598243450498577484948293450399035411074184421910128675530113986179101755520101916068589538164211841653482042496736433745556087536014911602758575991761047115936936631535266732501405406585427661418148909325989324882225241342958724179794653474762359011178439288555267027148416543809385747952689888292910958808981180527132499992537446412743572466294956894510585859279491365482539879173130955473838959565894565326340632274614636886234436512315068902006202953526155909540320871620438758048132190484156659513644913170895990557211763361598584014164528360250263074033663472550615608648662480643219142602297098667775521038314567172613171753075349027427606105578673848554136194767281192184515361770228666054218938507027959337889049455878295364600738460431554686596532955004689301560714951712073213742601114103843534578515680959131076517210640705117401745270690827184919423580659848130522940259223175537563871381220289027873046047844901027961631988329018066257251998241342847387830968776406365608984231175192961573008787475765550131771998545105829706916634949762088128640081437377316110102967987769626054496486365889590294023058215240965983542101608441342057714658898432697511074051297556887993147546626846343981354542740365482607477096424473720095963932693906998506680866976242239454710206759431043163203157958712151754969811804181880222545787142816746477077332864244039537617434837949722817447274832714112992856483291475931306458424343640418503989655450077188623387239987476765286165763718935203830739103339465576773709779953135714065562024451827970997737619438380699963548779337258023996655583554164956048360254191258730368091019656346614088421830751529163628768978823816394323038830924901981039928803644679156089697955561692093937408072879462714216903831684338833510109223835074099345459777493033479727423328262816448469924799031190470840926575900328064273898634930393846590421622701109557591028432279001146577010000132617620676723006549397665574425172369065294484279262447910468660521893267909991752709957254808423453901550753417468922168397734159847369020463126601011563870229954583344870002446844635772105988114970313569384381530546580088152893000074875048470369217554539848331595555114217470875467338200335553586902263428926682041850891822273839689845524926265169930771292500916478829468728087443919287577798156370320494615818685032221574593307529973788986743978979340978963502878296472068935898512674716983195658751225073099212517272092260930093974127528358629319723740210963048857392891173649387551393650343637968486960455758297511428280714454291839789843142828164431844944525324362618650667212777369569343324417222345121831310715751757518111575262069281536155575206756585587431941521328848757689151672836735284463459432393115424519155201491842614611266442495382886894169716366577975363740204715032935763436327154368553015511609982300608852586135393540580908027767807258845941439879986442584195267650375565689602391589757270018935091015977571634869322107552988015594621415405472288271214787526484701957687960942470048465098693057995364311147366211768280422077143967301990588025271252672742545827985191980031703026700338435382504920803608887344419349902853963356713416005137724708197995635101427127383189757038681397397759044834888361769290779340893611863017111975941649614565004405892457052595491839722502170074913274361388135465596759838262357173020725934383830409742184371204329953711043068251542530345656844213144107509738046710705547907504791326854126429044802031336195356061422084518184632456268634718438880486594523827974786766863670000439431467380889220774706938281509690256175485426276824870803575020703753742996935821700436454612779980922181325773802055214577264888556501448644121621369812009091410761483049070661948192237314142105633434959190903234081438492120182026073715994839056378366122969578872566307641433038538042931825814039815564500445702565611063489709926594929500173175462182957602193897080622343875694536015940630768998177252794229937431001786254859250092076275096421101769712375422516723081389450228982768218615953805710031619605061549278476450048550601636670615597041067906279122906117037327460082237596044669591246792702718100603643707542757068363487348690031400391022848365697033719126730713689348627967075825467120252859945487258090784086411729077433951308476680694440319602766876944094261814154118132299849521906461715969087478378671488166458035429218258927859650287048390447773315369697291629007843929410268284090871536118358987561034408077616995383407283072346834173427721259850242147020498519471631303498920569371012391514359628595143861894353387735346543563829405948606903760965436480040817931001456944364277696365727790626247473139696067028767331447906556868483948771394758570338950939291703934139517860632991074625104063725300481792335574866178422636472523284284820193952112865845876429354333922549031125480113667244544313286379150749110504095892012601234299648859548095495550777450485579751650954170790264318538417306678108963226456591273217678877867574283313074911847396333673668612616178564861613675161869621274683549021752784716259879300050648237503947413601078305756896989379561873067900897516070121967038301706283520034037542156565598871391539661120326942712547403044783091374601293446432219265526502994454159386448736867883088422074214851227566029508235223530287311192397383566648719709342610972155790139527690137846785798175226279223021419898135573799022032442534180217382205077458150610737095667336204991587200889300198117797330535445298806341481269217109083867394573290056479980903417224352625591990527523752680093193908116709445529046433209464168802129972359823464681974337591578502967517722287655695449613573191059209772098686110094458869360546821517955277884161571218846196053557033227901656243784195126001339497094402726073658071225993441215877104060588992372819954080936886878254120178131761360468039431843822577059146856707226608356853852249750563110731678764613783617762131998515516326340653135324469848275136964994512901590713114835642537896685853410992342280512871146518204989847894954932289751650369786938759939405175450615144837887691643124402783932013728307037514959229561897260584762955589218559590727413401205754691561171762234344596808219681415024923981404562401008663287837862843631379816019643991551835441335606568153298128937745550430521282873881702465768479404439648898461187651386144136615763487971598040189839128417039308496719531859413241912071465524284193825523296064879996859994590058351442934731460703806989769640426319733726612579630011953890331239475748663200900214364360010856517643751449875166694523891977862806349422066406377293902048831064816010749462855546110829008774679197354102201615887771172538640671707049295771242851954828041835295748611427215389283488635745933115831840138750188650442782693862075337607391175403996889062596530099171787217159566951656952172723769899598849196812388613571512633462108927344306429534337071872794211150082435056774299540510697608266903153055321894326284594698893017819999003841419519895950432960629596241506723261390949486606609938639416496428525832632019094850064464733666602007992175178201459928110908041407701141382631298013821622050348190251197050860618248749964582858490492387433238852329639501822465134405428015129090444628232658229744841118074041543255065597095234691650275038944442561897850664602490922603215915223575514131264425650622300950572299812912174390592481706841369788049269423693092586543116868584597146659993872161432730071820699500750821417379741617319919018205855290381713609362495432688036474942560327353291806793501388941840848724068455857697222975756689994631916714538091922279844874850459854818767464654276323208851900252633081147133817967383587101203455533898856603731187907321760828384338299073380849657842515551071346715749066851348577952701821451502084715329018388818599992371940683228533254178887497551871416789336852766501288718999747577548582362895939270062906268219595783234056581716495399273030589744771647238068167406330514316742811432115645922226043336063830804208249268726913261350593700691368779404515817945381650378511372000094756207703466176329392664466050597761833414760127799402899028933230615382582563069369135366634871283693923830934753880579602765103305365601667235486662401161908998049268787522590783184957773677659249080078019762462486072067855428210335474370997635931412976129741126935777040104151560416651267551837949507242197506229506817134009403326990949579907000616271353475201732634915814879938917340104824976572385905878255206119301780805223536128377263922624953711490447284966776582736519245068554520612071789503583739287578098807356104835598590006933173924330232926124586412586153038521016380178261269022774270625229970384525305194655977594495517621215680522612352633479574669167601752703570008508919769797927670001681245017785081664336481514987192757136900768220737167779612913394429010653765208376289075392571753091635093520282538981453947573848838050854821153180278054643282635124324692803185842005846563728648960556262112069461839262348092145737000873533582194859322636043655591037197588836527774847732089570142397326586214023188364024474396344591024982980104042873761359862020485815784010620838144627660987730018528258168296253292928171834651848984631056269812136711809219329334553306182308782821307837776584307341890361109427008676030049371940941900808412715304419073954274906329961734990263470528437784867820254872777825507033279119486563019295113562315023951216352640074734989795989401412943884241676435664871683095582019338511055100851249323320552580577698704016128122244384212166171764606335843910074560797858254174518660282441929432922217677297529137128898481896871576897213736675775324904805440127743642054787432467468444915572071197524926269527086159919480199434648375686390256017758588017351467653555032369422367625308057633848153398146996133258659977141526547772174520283633450132718587868076777514386301304226022783289397482648934557898155506062988257106585439320690226631282374356414153523523866546495690039262177153169757259143883579884372028763584226573487855112942234506606650342371382898007176720349780550977367028943513517736206843591192077324556448908569719618293416918636395257490846434158208616024955275556537507549649472738294194957119861547789751028133382059109755748166147818271503983749537770566144053105578891783140614066287076557664584999657316938350797934328829798928775397880998278397262079282989499055194291119918063576633950503456535392722066296156233246756225677832632563958845408167519628086054463046342440405775973797076902265497324092471837930657489225995921711264035180699498436541956063056166023998387772465033485702685533092813406894587978544963277392064858103689111223650981408800246320294361138435195925871130756047470417099270843508196372404392835156024742763734709736784001143062382822103700115714469063708006380586354417523144154193828166267616130652863317275302606275775680892600308278271541905673952054301486838275008358948834188966830638763370441577229498666710110334429380642251423334284462984071166365230328808548017029770346750072861432182438013596825774792576736955540607940890956372689401360722470074004342062249698595069958689820259144726683212472723070499421887191662054504763472698927693154867784517998376372301041740478398408020236126672284036251762713863848448852775693943301902690322508004471598455656393422552926791787099785029936461876100182169516076178426253327221584044977232661401645162700844231496713625232149916403573392256891678040248642620302035881280410477499970971994342570552615413623382180599088891968778468361430829872114853957245034542829904845188545361131513800588619147514731930831722356530059510988073743223710000895137737574361907262450469827630387803363348630228556332209868839074482414325829109790973164346253584620924010551369278048877203182358714046226024882642793627936225520042217480853964160054470378076833993117782740573578113776493214232668700167038048455794860537102987803892903589781649501533619319434583302031495161140886762361655588415907185398254844916931547501869782411617476474198437945762496016472408151805467747649293926471987804672746090926753600648410593888636711605558315153716299810364344336890004038183608919568397297219778830126807550136306780786188031784175588525510329500587111042760567135784717966149981561829861423411422748478251361032196252300821423249842409087503539381922659757182915567439316215009948569259894188768924851579846713509661218056476514659613995738460292575942138341202835891485944046352184644307212561801704958025162004817610427008087164764183718793092280565084643144195995660174227197362192831570635647469201803925929006348448636408336902046087792476308832515508841007252450202061319244316827468162529931356083742497884264696836380908755490077264950901974365209521756665550895627186387527611006725250837184569572431415934495300488968245624562230913096423443054797874209518540239321475794446505434087761252320522572023256160393690945066922034027474687984330597092700631083126355774076881838002356532631620846357599232691658441840480599136922309348312354212581152826455290235341942930819637934382868488803273185668614041465719928696673028626242968527311895955050306029328050796497897968748585390179455478189379866588837280140783415612012198569422884100771524741300076047124056749518165618243849416692429186050266149728746118367225191422860451731472093259853802158924296548404197085657180119584226839479946723709899546466428902604528948122279013426517707347209026663479486044534804438574243787145290308620201076505986232513198653543096215417157413730003730365568577509701499444549834649475452335843391263751106756212568010281935932257895885949688261484937024857631850571322533254036404607554291532137968535877813853601647965030591987914617159421933134606368553438742499177518445703231091666334618328930510730156128220213339210579872446229582427035617037169300569219360000930190327151930810174565122080952747776194822423080859435316095144229114912866152904446591242501945594802955317171745622429117539447986157769113721562757018915010492721962703091835066243900920014385065064997427093058006235371380318547485469712284039204508973987341290175828752919588889085951803369108362765707882452715151395318955191078746262153961297021396895444081179484223673895732681575912098813666042794497078801534371209484722640676123701561331428916686855819956477066005271710538329426941851781154588842292232136367925565614888303272726179795728845823289034031375286165051275053672220421168731226710116352336312320421504469647500707447076618933146685591693160309660949044021205314769813303619966247034714003035153958365804255274657182082671820213783900582011828892841134142011494430711542111892392519216992310833973758379630514614140558467545328250522506348229033100542238969075742611409568030067053981407110282843942714658021499728940569031806882985964556718129443241828388137950369238251665127239860551338301048089301215817192058239885250398290545017217411822804411173525658629452480028385162722782095227355209104941564785419368137530246113804762753541009489144040483528363850217863824486638038248817948207039857264461765905562853572020189670686707120988663360546755619060684313807784660854651040446697273083200056054544031754081362575808317462122885248674552106874602928337193802156472613293064667976481903517049260029067114720543530477681747296456576058504675349176762184092404303380106737169501712118521777623069227374159278900339635136949920052567257312510774117322738964972810630262329953514101080904588151366243821311376937359782518641105104574412075057596569315912454239560941036379872347643138588451122604555928593241136580792042102347347219110382895109789438279774715810545878506757515140511225042809308439548127986698369034494754753004002739033489046249897687389701966770493747400560978979880605063834559947661374423444893640119443114924185217266575720998896303943367334183978588609998369608654905082465259141058933226102228728390293568532213832713942707036709560906517280926439515917410981450587156604811110825184435977840710750853203708440742962495301697166606958235629249420462870308586411581101756241943751805232662227668767355114368863195896675111768453398542856748616991490269189335366059238580633860963487790625504665674818269864526349434288428051810669462553180472961864451119662234038718605202393682885375572439808792203554185785329263121062123440687148678375051364882899361035487188046571825937469567445961448568201586645929520541909735861279486286095205515324501174134528292027975643010843859093227387352638402136591502622361080035755675725672965282394759227611894949038746783632845943122636001383795428231852995143773966680934680281591880645047059688379212595759234988662789654984906262913927329083716328298405947209747940600885803184475116527566292782870787792355926862372912009760710397556799793778439237759443357768291116714934179091480401376794327928166330563000579068706092850386369824152841828212098241940196047624585667808538496088889574470378304266872846484538374499691590257873013788744903006254450543085428623547166449365035729263297455726893706854186839430021564914399114144740421286772192841046271076454595558839923167489962438831048431627718527449327414105011324405428336008823019300000979622852743721611541094750559635918033476522171479912932964007842822145615950536445674992080230910724664315953351065804862218613195722067691746932817465467763844627837149579652403718925128607298274577527853636592842365406289385643585832728097439671044521211169720232158763541934685191968671059053121540284058939811590141651514765321792274389568783771207076771155464560666147817133793140820281310487018628809382054719262603235803756776614932863002110961258060692186286436804671020392906604499307699418056738974799744697995088118173619429497115926408625868949950103584792249195912292487772979303164205741965840633547626482281250374510671965480034389573885323799076049754575445515261034296112752756079019372900931572054947530877535815900452975264264618324162235836270680762699355270969613318384622698989526750868279793212516730428224759645503893572752917295187378446151703095264047688564994772111982762743800888843491889063388876298309435247870795281362783278214365948159068988482935762669365273425478455139572434320426010653235295857512230012239883239633202219431717812604361713612487097811656853820345301621764700061179036755410768383768567968851605153399088257756465789787914644003192802623018008342204038679054288296799926963399246908544853131840572075378935757735842324984393369814210440998656177858974575360562408537075432876273393855723684560977001893735819343096457336834560070829751591815019607246506084426514912478518179492221878158757378723095978205312215815559933518412299890825820795247951438897012142019223238484353763018754484408985427147134418833296391670481002513247517604522477150345113712761882068668087504259043385757054592582221319408683625412619331639953103154519807199150693253795893140322708717665884082222263157758873164158731453465071250256060249424437895714829669157206727010017733964660067284351572970182310396921975915667245832196730915183269096805500862704594798549269090319892538193882982662167114719371451326356329189102315453204134861451399863434902507376998032044265354187244015680494568278604376281792041286546826228937875831877936769363836863641790604481439529432382492046091979654411839826407701769677657730050027330261801373025493639653635368547889831300808797716284116020704751625241565556052218946941849027121282927890954498679391114095070230699607711887015851087992347243264962140263757936652684627686503711824309810885319852033689701332243949614191825489154801367811855510276174580838531507588419401132178783487158818101057060081272706376645530714605075651156693955650423581534597336021939043211286241507206300644473911617381830795483160902824029982029350958026487075257595035457404240701647101429616428721745950962463678730844357319820914613186655087197196985505909405623047647036360823207736075028036231338079546628638199152387499987309571712477548608559889051567432101869469285164233209423839932045175723003505507555491403140593985000733217886976837057162307291474746306317681674215735736993130905087535031611767467968691602746210796825849017615406515326358218423323688432591812039837053863319744272050183702763649179409916023138247211348850492144845611173156888509446904526762997685060353451252809022951133123052269827163520548298666829931981051229409217282205784892572828366471218421491988681503345027097319343184008962711833723453129152564706238376165083962165457626705536443060559283585885043877031237953369675427905553874481236255756988168001742487668698372668876477898773131097162234409532694406578502899592632107435476327749771854757823730981306402278897247598457369619205186954338495036699162444127232490685568658767158799734803866759745345236415779955298455959587292564592243150017337601066024687643012417281264133209155882924569051852206196362078559044754901992984916520954392184863055821955610638609337607788027029925248523962445526739054482916482051662665620243550006799575202894831205093384477147034972087924060653523691697518290075010085994166139596522277152334072191874026984651494182631697746475515986241960529548878097261944026196855653890868811742191854162791706692573357436607131505090769115434904773296068471128950278730209404651095877618083876651722730148450466119591406037842921624662815955906043320273767080200380796873012477858310131171969509640569341210368678211629246159495900437526573417195413929590573248529805582256809163751588307074017046102417718821036291557357820579212277925850937042942017494101691506846574811908114871376134021840229229451428270151998621160811597241066649889124852517692122532803447092034112698630695053312672435070464903778440856093205876986879638450717722504622630271056407720298592071636641875559526984920960894421951341006946636174723835015395366635285881969541533488616302976895883932911804552521107896626205220163068296179729483868367273750830974300727102591359495229551129016808302824175323149839844500742056422661435626822132832171534629271317759174699871381991317234221847061020608801522565305321049790299892387157013243085309713549985424365339918270223643182110315330762298468488678443281417965242059837606671929897231470506976615334044967648509446214347548774657313906720635943756381112226688276317183643556501465082888977460033519116661103963625253670262965407941320515881142456541791571735362918366156403403235158224590866855188096716075170026467607502966488103715935755567997738967732776966131363987009391933245643074301905401257032349740598987752725730152423286032140636092171636090061111451823207493907286515576337770102623712674993636453345591062339104230547775307744161061689491300431634809057983461947567465158501330896793603471749914220024026716713531437100929673226159423427984596034861175899712667276760509527683262457048620426647014887786694353876052678758452640005677297558034031557362610965164454653857472923051687877515820253451779469853314766383703141775884612521755638334865631066933238426658054735257166770659040837434319382830079956312061086338137742075077115360128182322049802845373913730197912675792463270464040451573763486901269902038686835731379806564347362047521635805777497458092100464162171773886745501326124415324590990096449797369149451803089236931896280175148815399651242222647932844456271237801617387089020916359322860298936894524131662197150319515693388480313061963792806554276842902524584306820995922328518861147497265931112637480731335329365387179842035718689053105197399537986152085341359487811383581362975804397192880369773135425297599969987718290790062914343919973597552880872726524132049531072671677062550045917824105559812016546553951393673448111619525391837804463022084115193096859985915114664540378706778830630956624449656192497057627784270213045274182831221561079438017883676773825696630111021071595040472089252979203809524462464626094855378939993083371224744942257813812259116803979924482162574609377565775137148835677454506043551093261680949507920024182108679604966778108449612421597295286511791176419420128381107320472678789446456881036972225679888218436206622620461632627241180567361071278171803280081642526373021174254263175980106531634536510567379252837941899390621128337578413653793164302786812596182797709166595546218062849318205148939614194248344205217642992259413251148632012995350152357380476126154576786854293442955110851212937131156157111447889791753365828277905358130468304454241565092798186282989529406019566344720467357386810209669473266671486556416056210420231085933545560181841076030179376958807361715685137726179673552241551320106675240724511128123665781894378375511824810936524271265671600070226229534316132515207828322749965373422465030160594968531914411681152784805399409069707087908943555687729764383666125930953404328338228872799767923865358974408597089573326849915037823110391190887782011217060581978150907852050480748755969451577322820965752201423143937834447494173659653804462858399166105330554130297390801126536694409156478373000640002916193001384978384125635057452877954030499711632661012727273308623047706773856142233852128431845904836212225432811205234309180783032204776062198273794909317639340161735200575141194787956525413446880866607225346701963103280342853733516213108278002516964921365510823732680216431552390197820316688752854237663128451269894858184411194709493184027801092206200028360921972916169141769084356592131562574981459704803561150493024252690387350680860845162586210718498701514172680061714793954041581934821251437830248770037973023724710920214832434363253574656058320017253394756086036527387118606513619637724634249209106510991087689889607515341138269821163200673174254329809207286651789876661547120397787286261277448345355330855854007115090868483533510066266152374786778460486960471590985062424292869931350464644860959134368507328726710657915139261595462694074421456809280587406674772629449853522956501200405363903013234841643547021165210400587409535901331820996021911657379650627170681887110780448291884897820521171172802624084770706046015611033630730024375886730539609791058149315976669418499841783494655745157240472816923379724228951275129067099991967743100829138133476236986775583890624129777285103580605780279786083644473727191291008134395707596847808050119650807233076909914489013151545548991808269246915375342932212867016838376536793286620239385485694885333751207390650923458779540352791835061452536400831404399539560798050251269053314438117072668245253574988949770181009590984421118771109315099459292588584772168688760368229504948814205546313904441172794348621146189002839951816123725727984616326603831240157041377995854596258886732836725353529019972341752936522252558559153982225303624839937152689343052633933992865837784322971752691309785393875602892635636866252626546527852151717971269576757169313419514711365938765345537273149018362012798700638918585468608862278364994589078404231265794989172359219653139394090136757032453243231858419859541329443882781579678273773709242280031153819052778705277296183531849324640480738079486377885559596610035104512767768645733393509891721561710336144111063434172826522333356802631850369208174568437772712584428124294441567638329024984461645916666800003760558461455913317235985435502864017868186482940458267688648389557937367976765690924633821518669246442390747940268780240683814562429275846175393083275382220642461346711685706832990690495954257042994400854852983530642088855061154830545048609099828239889960708078249126202738646749504754732402608261446900232824294057070142639409979736194047851850593172543480770231683986506513355382592837265355410292551359544869569748414431711581582254485366829054304358379994944336222625208400844840920013831567226566235700531524906216749700802299145530261604813790758061811922403454870983863374193728003811212583661856478673873748001848915609350644251708869908295142969867713412388281390680665894885040192743568914426884891610481918576100443666503626205942263073667463849461385868256076439786544414083288690106161963321416986947641908039219597794663315588966395224275334507668960149256189263394827623414037430728238988155754322619886174393222943804240182280909435998107186645683346837117416872273580392907494635118082416049980147184659080317039732074004943096716149265271705366535035393493098723760933526421277570247344045850667088305059141907777096234231959321032337644055933677176971121935197481494818817076827669297482950791535618186835730822768196849282480301562895153986975255402564611119174123579606684939996060034995170824320792550076821702602218050852957498987943162095536792780937773458773314411939364705539053743522830060916814526385928449126644360582597330928075987574961685284778114844040357092970476223997451230718461957098636300150829508756021373445643957832269981035436590387277037258171944132444499445082224937110691959923802394450225087969689820217732956611360642100169890096568846729483502974969630513497649229785946112174177178440322202585741548781941890161375030754470105011871046547909488951363335384359837358759807958528222038712783182485332488236573757710064763391621158180878561241737331508109936646574502242065512050473657214289978658403971497842673923728664343395594744884046508264521500846085834496122099599630711605039392005349179357570666082989169878838448623950025965883749710828374964366403947234648252752806523524717543527577779241503957004184160524951747722420538451519824743093907516802154908814541808655261514187100324006991297428308701207663060023802019435223646010239810723352522695189058716747871645534607062324780651416852508986828261470328660166991850122182498175489646244287935315035892533163793677185193599091894287136132064339521595621565307930926517529862656614041978251941876568852374891576578085045540754207598501440323217576108037896536136736159823361729007111070516155491835207332359353167991514849777768515680195012623783239561141742531924790997517385578578697189773748702644037711254369005207579179747934030152022033586382171631047971775788474058729332863926484218085432867439662432460294142998426401571038525211837089746555083443989228773408590408962364562985023506182709140618546381935837397768253339340789946518737538237075162498120894286276706323459920732732631539051467154573611308735197122724600391172804704242848440187795290015794139030310994698074472228170554257473425543344412602304085501993330928613879918948668696789496387023171899663763751514667518639520484388591658923906044642737566911494595240636253321335878445601392667940908686245748150379355619621741977931139062947632087825248240265267672022437313949496400135626906880539771387589292656197206147403894184445810143509915984918508710322051184328320805013794737313887703871469938903820297926757477995003345182884588695818769559666952860069034739679484683127024216797048217027339838589945083418673772250970720446757298023365137818956450978564873157824800345669469228282059770527589925755229061588346533299691314594148552395391564954298432372342979319894606191176883784732530129616013481567923680781526795556632911547662818452860807395819756709441298644339705182589324318949221840940975675780532537310503258729852892818578308958612987530922671620480909308928419282909874697494965346297892358154796050471622343853532204380815650853431612392184920246311033703406542261595357754070240972286331958169541266564224091552107614071201486177968886572448407200544382118064126343653845004562277070233435143325090946935317068940965678142206886542491244851702899236520994267877284846067984895204286827327823346464758134794542846580277538221007610639659231425471864994165075669722770130342878599698896026447581822894029619690325233546910233844388974916969682102205252144666490477038393292292595794773370553180223190918580862933421296974335447892199688973043942351371254676252216283857745732061186156573421937961785644707754969708525639513081557612178299093068424632451527011022103905768280230019805564071274440409522848237500206161741862717660732120885071199551053101474430900244799667621940857972745252375629736144045919684974046360380843850405359979332816522802882431060363802871106155565763335926108026130490064067716661346222122215150211586783070085800502740706897254248761076140524341607403852992798969148475495069992461653848131438613629904338080321352920192799185092576319938233365397566875788926426454084242741208939810363426730251990922538322830380774808705541118505306085361120131273011242243484778386515573831364586857212313706804145874259068577344191238380637791336398653673150802306655263002533965559865019057620421046499314472859229353849581166469756648182412719649023789797305377853436706184473046732820888148282229881807645236941988852529268479823916558615859025763825994589088871297650180718140580292604493091142652689254190445818841404626711177569502272262048730511490403719346588957552026562199430196448999362796999758897567140722674535820407082269325871600573093348536471881623187889854327116117132314201284003949873058474271031150955127928668560829014344155028438814525517828856527706818296798172978512425694736931407238404987136820421743165181875406979973367495575901703847043390083289709295571468333372885980708464285855054801106046832121408513418198866271603705187032432359247213855091566812713075842945074023229927567053858146127707905898940860297616130082190351727151814544161268149972928648183435211951021080941235660438555705482734449378516806250725649500920940719878850642157388060849015256554965270984037170105653723597169635125582665512578353346378236651422880363895890059065626764627563495207826414854609742765630623060620172771384246922707643875401946475728254008107656011736804288283910703661577178137269340740630890714099155737104860447754306138301666750390175326816013786052594545275435520416140624098360501485140784814435021129820605087569992551108505896545952654349482431125577805223943823316135641141575322438828766286169762979364524756820435820658612268740436720225289947758435921356850658667321038380543229932730788982366928937829131348720612953706555757876378419819329350211243032683179059787953146498571662491752732109579284191219727547686692165140887773256365072151490869304040217118832948733654403089474626589930420839946049033237729855749853657069798399562340078794423174470700227603591966794924279218762225251167202805740145751563894845077196097965851886196365098273432183682285595286412605872931053699843523887714604680306711996950888161306031534942283460597705456923682675898341757689429278461383679593166351662852331498362379474994491084747803753437010571462156360278584748866859255657330784214922931234851963930407844534620272901145154216848766202100230765162264498950617829004516634077467942051340567821522311556652085342872927734272183386651279399187712474601662373178236897421213511485850198368696932011050110139256186287751358163856134205422989546492963102200903099839876724658216294000524585825125842582135765717370019836718465958670851542116226220687173208849511159277486226666755737537852809392090455477724342549889841514954493945100973797759499172158767165049539003886658863620316835125218369712839846193783811130822466339730540206466139368960762874005203916671482314511524436468406737468735054848461514133512080511067058339930340097736462684164825549530691106461433678516421937452219501972521010944163179868062203368328980014731124834012318169591033083370998849146151079692610039249115205150379603340853115493895393867982097492297379335216900468265563154782930811823691386167185085672817336169007578419061568576229640836673040459035228630232435425089726113306568932183062678930967470831901098995612995325709369877615754708458992617550008254905530735046916022226753575844479077830869637968426610787643267874233542616334021426671661888277060484212851439113665139824394653574248387784760976952096438693849119967496311735576952057702072144902461945362825978543504938557029393885503763902330101714207537196920132796522164466437695038379075763580881245311223584627290748402135888257528053286211495295397835396317733000282380892062501276406779910594515428323066848535489866789757861185601475547706244863218070049367392433532477617155825884199867597936141128760012135113409765936689802498707982528464617062571922314855609040961773805359801931381148295786423444846043979975589217690072464326073313143508909319585255193622579535145458014043798473278721349892261972859389261676408749412518202038769753069759570126848879583767400434234465963281089957732251988186345421695978681697139211847170245494676080251056414641485286246864826769712294146558805737177517914717964003210887939741363088433606571018306667143687313454216943412848176895999176890508657882741581983711181831040327150990154284439282390986471742721905916919393495452703055918987590247509550449924150977133906023400733987256708740954432150424601229375280987225399723540221257397037307466910118440578418189190299981009107290318138901646651341400792361459701699066349668603577933677989394362675509942064178529283096844534678081141640062729187226823454902320310075820882259858191966817505029525678937535772387625947941670668460640264788946807062927200507988729618859382242433967151836962951701145536072071320558129217779420249555284988309953470093871832140355854753832961774410990151641489111905696830028558101767626429060885736726149079791989130888861132853456957093564621073632702334714037303853816005888619283427548090595833358923047514983821176508724298167272964170458187969189785801590635344725937469190971326388731157517989744856288472759920125064718313665886389540704755647681712849389613332794704954638016492006191696956753344439095569187650054716522287675851647050999855379230177081111690990790767738389943354475781430852507120586709307239124390696370554465719530614042328339729278068726198840652616616608454732912854759014987702095426614450160911903881630634541152721130727970797945177209133878351004513002005885598555520087136398990197833811312467868123401474729320710334766092908179044273452211925341757651041295697103907494415045826838447129102887430552455510251700249322123807786194274021102378087091623651627348641012573314511539573271321663623043585999830366122220131016443978560328814413237905787196441273821572306558151606406199360795443852950086596371730364891398094119497552944633757461641830296316519313184146846806367595020431027034941664259372628074951235166714855088614128426323155230326509369241173936115554668084261219020488351698346694757996262379025205567446210637560256690099579671340513790888290193807565219050944653930528220150930320539113362932263682871388218769407819209862026342718455489959072200533566576085546449196859093830657979625856247997032418883489137869822066660867979649144475155968677305161367478841069876370438525481423176080378359537442813702791040468467932242049797891423143710870909872926384375981398510369839849380403233826128867550524482457919285014672929264525687201691913145593517758675277136671681737053368416218436905714966028549325977136167805399093148409542300771202585905176525928582592132923220362170934043549397745188999709894119144761854809505483391391391570114436513761919618964149734521390278940837679493646531150339052619610110633720380952052640044300402497386216704708792588125765357690048791974524000665617304533351830729206368781337578395974001589608561887126132366326252798312143519216453335502630399892289475994576423152210829285338219424334180270401696576363473644492943375037607970471282685748739573425750466434227973917489865198239488451055301473914128965822171709240844297770801972844214285543508964677834642198103596075262199766627174580824083553462937794077706964608006915815783985175364703763365601516633414963689708915284494082433059318310614081442978359970116119216304290871302503539461822690037875018599090034775672800551026483826300831193620898623511175858474557573586608236392228910208034758878028276437507742312130800483427941862671883187690312549152214748602756011879900952738347332179071373088461932201669966206448968574853799131149697174596582807587699347687138466594159933258409510311100138075466011840623601509390974618470620062011197233526229896504843193770535201352942715668423672646404119727714480999666890705962844408690146751753576229383520729454047834253548399551619436382789740256127587698919739523580519853627411238446587665838409301401204265139966094166534538353829699097320682303802130677804617629809080513677280816702254240257996017951853937047377704331024403294866631607171685493892771522789226754034853820173440149013819099080456814663547415480683256819407611767177320036836441082647841979392493628209033856484996094144672747159731842180323777974575155849512927842634597475156205713925411523326487374610671152068653179068146193964086295896326718722546248856717466662607067247242025916476140050504785028991116845011329698461045392035242709676970954395713000504981239929918186451329664594591365655656771604438685159688961503781644816082023816801891437607499244872629267243769088635694171699317200135991984113606031076019356369386129549235123821589383859256892176468427124059894827151267349414680722765532297236167279174997516346844039907522014652638444840515810082370561303880704271200297772765725050874922476840262802932565376776292751463272460455161535771177783355097318511674453697217156777217218379080758314001014029190282874745793363519611320854918233234047377871007911083139296996523693084309202546632386552678869482961583615728953463736145984334933301668257572263705563561554898095968318861647733004336160520635676463141578782252077599432939820488299640417965120209220032273828332870939134156882178315482461711256298893971118094382614115769979572166546371321446031880783052820545577991997854901653507484159872708349281642787391038869686090425775020982644701075110891122215417251372816668457582343660396516981518260708188278600519308499175050188563584283560508265621764217591198853660976542932384331624340614312336812344264644317311958428747761533533606649048272423917586557491272888793725841546144883014226961274531617732471986856634564972871420711400349111229967476901390151334159241169890552161947249852389067965598210131984965254276642516464568802567041078169344809300355249299235742609045542388428804400812774497718417010420014684982115787281426375383513588087790361049004050897606708290111232200092810585932944894658678668473703645296417019858621041625635413337195300322710987454937219014754404238704146868213199923876215710720093599322819697365605528195881335675278889292675158929321928233570088683701092817177825041299947780175016430825716127454573503759607318592621259280922215591580668228089266508048632685967545941999708208109768634791116601415544041714826061589818070644210787951346679101488189908266865801975606168444119428035735615519942686375813737291566813064465179627813737400508994963529582746955389573112046609810705623617250121321016235763809533411047074871265676927221182824442816377877880586468534515695824618521082390111863619074086003631941758794054714919584431388149661398158753898797618714872955735194163755046415679718492335315031974576544792002378964276229212231214291546268817317392170003211768975610558004126622691800253855579351192391625528967573033311296272601777439416001683750556050474354763086266970732195202778762641073127402557495234062605968642568345825500848051157991971147116404797614242913713176035120531524617387098859528093195716672902628203065569552626060169684333212442481971716603510350428757457073275578853334594340440211216764372609106789502721937251229707461785123720338510547005917073337800733216860573193578311695574594287222427586619777928306628362775138229512113529034163456108136455419716545268388261828275147855764106240219144007252285631360041569287491770454999594495253791150001441335798534037151085682950176421707966896471765957745136666014861452676578932879477343247382422345400330026253986024806462278376418876965145678666731171721575949748851316685934586281685042068190665933852857858856950838670358598434365975534047807419646626958031613359650393985084742687328305325262427101435666103261205809863968802521634821092812641247633502218156234677530610104250570285421935490364724678215770373401595969485801625496767195993261338060230079670051304914437828150938805156088346401818692102367659022838945576362943399018598802265575070637038977041384673734945245524608180240805421747955794524646790158242701675078808823645586949456309413185084180329861748308954323009313050746258351551594600600143377129819446478980043183638483699093639482583312300467788676406329966478796887638347858477663588225868529782196105017403780907988875703524144285273616793502274545628514345562921246373991087854142149592598538021903072319594277751100102278454605975148646501780827115859702823237460441098890256618018262415240095569674040207108041907135167047524703038142967730411048409857322648837899496764288779504104178392822264011367079305147752792462568818738313117724298334674665915237856378551807792920525938415044624521725315392692832207813662491081199889620648802442512927080072171598099122173879274669784878976051216272650210688460584746702840522356111355761270152550258886052305092935257984193547159356848362253432914731423427012257859613829029051706368680749242053374409688490394605491977174336806243831280142352688687286961201685428321722910466653733369716608953543172906527683701836662040249252522947362792084867359709037113742760187738088282295215112023244830086307087802201921047561572520273617703256390854808560115251078545537962894499703437010131979314059380803731633676429823684404607492479496442185178508627723443636099456152113118985441450627947397125262478991826526747238286288382957599818169216623801646990756527870091010472872828070417287270247042814872533801433993184958335252497203559315660988457567523384313438193169482543506842575519539449455735705723415976450570937709290595534304192541906695473893388447273864854170425439301835031576332288838364316842686706686413835607473120910325865863035415084853883542928545500878218012942777989853603588914656029742655963941472189591064640820697578984036407404796391642747234824482745280012704710791193971218021775126356904475735429015696762787209853296038923933515445561143318502520289584298379078644556975406999865153094827951668782827805919962851481946044118944650339939868961591415781740266823659688856713314541592254942509446996091797530357222834527330309281644704029982977436382876494248300275818670898449188561283359317512717919098100994851036298859554237202713485616316623969387241208490068645303194680904704784336134372462619966787555027148492708316257438624743846623697298353769530727796551507905309033647842123456825243056347659927622200031256591606996615541520384407796089192594485336308381004460356136847912761719383044796559343380145605452179306048877156425289192027980280882973278894147332275249585602288400549171299720220185621567460781214888129389875662385670059617372344279859167783161998877310078839829583462317925609525525857092506679610049982779637426971772527598031568539413966723455388605237964773354412063207259969362233617439177040672293091155377556268134838791684710382646868995303012311023030990513711466514907517660017826207290864845236741714430601240504941200642216126617071726143023045498815308389995866599390314978946305044540791675645725168647198505228244550830416966234207059296835842389214651362941299309181548629582571932059960906780897031863260536871829302793635458379658377790615228796167259786690097520937460531221736618677004851137740317383897619695035402172824670354787991637287733604376382053586493487858179833769684332800723022960241427244044156458263943434678090243066562007600840452974592952251799694347968076330133438483951548854886604202346483114523812561247327722206350905946227253412820686005753402888823303480769804417924928191382087485777731973701474331945722738566848448872139257117611305006762703476326937217542476047462985060733288966315594590807908069100781258582854447453778545292950044912294032926869851322272554983991230304164878388350984970548775891940233377815029522109889691624718313021880815996600121824516445481545642510491277662230233724807817039434719542189130289700041705012997153365146321656939297322429095555440083476422917828317507866266585774228804099054299372512437352424970610210633848817678803097482547532028144017573958442251263313968165189246317037678685344898950373292485670447783505120159809532936416620206642467074144117453179133395776221336250026039206485813582516264530971666100668175474335116262210502003592190289127908747112368657229353842060984376481518268592501584611092662855606625066150906680174169934275197140531176058911371842510152391842560595029164218841811474229759409781868260545872780995861132014360974865582305024423000952797004556669314428053771973720843624907283544942063476049345868245430722936989621364878538332286798539303648584581376386285531533273715943960507866051832897922529878247766327033130485059653526482661461162774451053588303086190700644005851170425433467145170297540834755395883692130762591218692280292025559784419359894992250035255582176273835751415720319247000532575806497261034475397887771944594934961090857407938672743706481637181091564994002954093444433892791809588053863811179581428846690346721370125995039430751694562643420740510354698252804691937516867059884071813986517100658903351964780324397455698932691187698003472483241043848203376895739371105145152915186961878959464272963862647396335542227017298717788609396378960322279577916375337766682588060257757374602443106896846116798483459069682587684099470002474936977063040047820410818103115654101003074740800778275736902189193617506601451439633765153097328570628198240639725642980890425259298106612383953968103413847794665108910701401935498568366617844712294290999556718584933872626926364547631497794356386514334438460853259601609471577378384437444194500234306611699889715140732430179272352344244717191222302413167606677036766509186286387719471115093403871395630067623089190979289458813693309459603837288882941756310274489703435235524389153539187277829967457061015742605410141354748845060827183759798409234503620473078879773070410442165789331019814063923889879020232548298130851556273465630969732841563873578001222707800286080798366937898936472919798556157606105233621563699206253865068513234660577964839493109444147590781555316958038100857653137809057665357591706584795174410600126577906465113073770643901971422053202236762335313794829156501910432477343702462781910968453291550590522302867912704728544261179721206575601117393527201889806168636332882610915402495284088183223071053499807784914963215552208548572324604524642257103069390154324466893164328778353006020213264219703690729081630048725660093655723900200320093099018542208330642720911075215091973684375162322444719948301428172470508593371811193601316865417542980115839445985922857047609670638720812554680110247410252506758750030508993403517704599306750025583430057596833393695244908912214918778138314781010347473019195620175616293587283338274536112517937065532106845109908719864053120421283337026681892969595790855629058412059047717521975415572064824466306267380050971122142473427769771570961217942037520161965925584741140973769302848718246482405448937917957748336562243319695678309408612101281370298338976280087152370485869170362147409397183969912994196276464658678269220379274507446075163537026393099163165739479576057940166033672745983041901138167613107860015675035497893309550820792516050187486885593451144537314546508936302394538108035161839617620186371412415952559808862450416051785084143513759430402383288995975924037377448252711846573051781184624606997660090723985669215383921445072747736296140896394657754758720460138612932986168345602645998790397945919102318346777072478487822891169710905274385736965092199458347315320324681989240574416562198067550529363568582656421121405372834670951169257027023841785624145901908444554633290557046010278823240369673174866224016532531721399436070990009851770607942219258049009324311845484702337836349903629448105769167445305579258793069121956840985216106395085228871255136690188063822483816012291666770696563519282477827400374788926076269683816190325007977219348895951403975896241280557045529277394683290331237262884280583817144433403454799205803161648329047815293721513065151327931185563840032064964145576959174834280193784087414378596920780907068237358685655178176714448374604593681939002890824544544581338018149658779847039619536936370264416325674830258736297617654552162675892647634147141471698214841877102671735544417289017504029945987744807164311448700450757589518996737207841089836502908786817618939432337095413503527332156210566236728273790021074889543548170286465495187196500047556528368196128190418097831156091548677253442205546583032662799543644043898168867535498572761217260427803091027301343863700153324714720882607260246658654599058564869584063991837903478726636642345164231977028059324113779123193140640268781203770699793794693753876684127392178350539468754721319202482699073555770014037604293572224352541972653022606974219757702673230502173945309952776106212036917175314294117899467477492680412865487997720365500531073435876046050554517660313889093963728102273196172661878999131879664374386755525221201995035475577405495722516329324889511575004542679273767848387241124643759742394713701475895530644980854632247474627502941272368371884413930901994134344895329362613265370999524763899629372657771356875111245653341539940208589876651869583754746879457112842790876477452681427079169448511895677874365882573141095949493315477306302724390611345505381253803933811021464828880891444840990031397063979163637204063623790107144187822272575058218718150505006235609462316713395804759522506810465898502904823815704443140581091296008204540143223419368351308408587910655164867865876417174479537851516626575057223255123038122241730806910668125432577862196591065325927347701493732836105852611597733112156168324198459898131652308324939781845351862680928388581526798578477501345584293670279061304136822126828255269746170927614810379966256088026133384821282914837928462066944302034717394797018979830866461443129612884660717177150857658127068450694901903710639313070450207670645213744059961948871866491027131690548519033252869170281104075927468624558908525270591265683739945561343098776478099693701855699446064769513831200907445496526373046071239270502733827617622102827932046000244325303423142172342425582851624292863265588690557409555084336792754410687778077896210621512282276412372503320980225176946793357148693498064545533595779806501851595633483295347974836280417301552683681371230750020147678292660358135657828392881573644405671835942786522848815152983719168601853361213755930793211483675288823471123269488374676599864446605917816553998069734531221612520271072187993370175522427999909892501855792094561001935221432309862429307010348168383019347977734539581831918540445841849740055773838339281759999552535088330145611940519776301255990170998276442961444210256931788059687496568484481036273788498959036382559093590079354385142400047795303472788828933721050185587497411606809942501910570412774277383086932710212280536588027414838128845673570876455515176062467503709183143636167727600685093941834005235875587763671438666125028499141776038259146771669315516103752206486608421060201973993021375838174032914478281493512243208592171326624471394546915052968760519433680820694172948849526264498768146078661778995587279591030707187089771573466803134845735461768517720169882104036156158826273213735857304017467150157997687699125850776083483910799343074152817184714596962726354010068357388234818517496517078261446073406401016676321408073948812013690894716430607504573713106588044983250092675442609942037023235526537294125293840912928112646775356635772943329683147759709048670576598889780671176874411819325095030999837152256345566572436562995913108034541264614986275200284594287776751585381502403597093655460336402115975458643460992371710343015963868124703544776808610992531170031119553999963298936375521333040850746463886730147544051178615064437753831538550015010636280551332887850994866821979693282528537776965170944443566500699474551827630292672250387060024608489802372736241194940593229376786379418186956510652786837955696020612175885417185285808638302928986218635610480116315041245602575379169077447947392613721261352072902239724202755708086673615191267374099355594694644467648194368749304637321391972793632614167221216298150250502459742710124510019450057533704956370383611598414265836180701638622037982727529608651188870949725201431655638173204800640165873233490179519365005555211131460555197756948518433220052602035651318057046293049450848981593677025688273466766296209689753681540870323181787928130414485966025517566188294735741254505399786279982381886414478727794374928719822520034157735623605533803454467380343284297772173948360879347040422975325888324028073697656858216199498570870650797426554533618851214233707940289459200921527544507946851176686510316745272178516404897951212993698809395171978567899781920525552018282155178599667439200382637896158229745227849797516368160670203371374393074769554890504434859903379405127347697370447236622607761820424195187757065914000973035471552555959732449148911026814510508396394594761323073533790033452349904552744727088702645008610371188979537249434509966266997362664392484412302135345512474536802628556329543653515800133311720538902993121173323771229565470979171714488292028488162215849268004416046325405851243220681044272996970920423263197714787418588453283976748210594100559620981343635708520670080302197183758633947030212791245260837971243188082620586668602089372004340200646773414066157870941764164480453727325628752956098825585275861931819402403892862210024530891038955135073168486017890174647188397367246292107436978836604369028679155727776233098781538705196010332654289002189452297972279895158461133447211897445248595764674138473489989668514925536766663069201926081619462278527394596904964902687182332262473696516220305129244505314424947895939731927536892455365008868767095741695153652749039787322470864510878631297420728973943628202331121873320929872294533228502979713537705065031178017562243810295364136184867872207832738053733677527542832421201713593126806022828878757231885598854296015967784047174218610787397979171521807964502150846992450556477761185038752829122846692166036841013908016134684830460835945398113124971550493505979059583979270555362208308627838634847803985184689137716156377765232519410588391451056648221773670704073997676813731329818039797506164226995866021397869480489119980558366231660169230432870563155396877636854846111819376128148363039762862027940021218333582696871274492041067481160837405747497369511300945621671181836992415811499635879413396262596118291984739021332390101753744890111964089188054796245834670216719696477405742919153039221508076533542149882846414403713241516819349440036215129420079149297828002370096340666592522527849325610487756816384864251409791447638518491629770732728136560304704546363494746283375475666712019267192156768422717560648666014822095157517843095841814531446305525599929470665838555239035931778047801855878618376818516972475583291095067717726298681259745435871439260982591164655410012493839272596544081736242591807311650242488123379278187907899196660576912507064724548513684494312642140764717432173943098072203534425684522780094803629754905491694308126411882793163015215718347065549566768958890533331332733681165660724368975159812602797019507317682876924526522668264381588975202541899879946594589457756485345796114039175914554592483860482846468839732554871685805895427869035850223575274772402499542785806640038834805424711902402860803336015652666724106122267533658970516625130069378193233673245211858938449119260734038332013958591029142633562759175538209837953380720971933751996776991265438890989610420009975828046250875897768119061723760736679369071594441698641514941022959821933456390541359391626835488468945502438980655793421978080795533817734538310477569582070503316000811915808292863336075415069438633822156973935121034810253027793713503581791156277221922603060499405388353026123789746242253234534935343722236808789612625782749960122098641141059119143042063158739829564114601661810972378603733921520715892821996049888481584866679993648855751245696908719101236224596548639837515330413952301000716594201421954184167232222182251021738652204770070674414423166342184807641727965519184124177515669022965799253404930818761942224181215102071540420796642266385905974012622732416402583298394507704338097480229015265438301837933174225016771106210191021322342683902058912804026496849871414394698618862780997236010750276262294431130346711904519701137428455599869104196750590434261383000642560981845313807767477278344905546328091144637844151833462730602425786760303156550002800159757740804250274571957824934472883799904416188875319927982166167903540185694945879644020182732103198491060942308210144672462523239143214081571906311808081988765377791131016387336616852220714110398755882394406225207261631175373339468245966707577051949555193756828123755461132782135842811050847669456208520684614251703188183118428017994666121891795264263599855106373794219576815261310849088642282572214622522675496533999188698183239337954044097099094497265375838278310843148823150738542496375746842765124594185419233295868295548823246866287721941819966627319908154064912231726229928609438899612442757930600536329255654265098800275879397397667001550799328301613975458708669836664535990904254497522430171043980052610589283587289014436974857366873787320551862842793541069815541367056405264405231874968172900834416338249431705353499861656198447674187155649623469572915624158551812355024854520089433730539828574257095249325891507232952534229015173904102225026104959247518041679306372237143805568423689783974581384654900638596948408529223176081562305683711059564271246099125354251248782172829805172039948659617872629232928404197973143246720570135706121762244858546963425874690988301371225065784617984573219717246100052457093497501764684898020243985941449525423886595113188328922644283721088439992340270172057486180468883012483781822676571566322586738601579661213857894182565435651598032837637398847317770308273777470181821262068016286857293463379743398374959041747942464496215590974252133024932814267727792928330301339045806695040483941630343877471112162693501689750560366054860977788384570554181263850845664997937293740036481831504951106503779007744525818296113226418420276038733826417347675979812668051216959452563386692708747537763902682922896303949435072684596789784183280626630182457653915314068552806323811654631077768542106279995782965353266489713503956924046915639451595307475782787479167855937956700557565109502669019967958907841202661711020553963059035951783984607678891096735887826800399045091797426611114608225057691850121282018598411073251672159250575259360370897006733340576850724211769610196319523922139999890822424565348344576736698663202577869153631207804021827762593748892623580049144733862106930101802598971908425736431961988412554774157525413617922279071112158283186397230760477911425882384585299624603308002544985254281135845122186127985480928804209332674347881496473031100306069848165126264894108535209114085443243110336218749380118659062343010736636155714996117164735641524944537083298731537688423478226265195446644136020817102816132866939244666515307893976261291758658508387620326610769726752892099128333096489243665763930142587716867364169264115112147499162612999948697662711515502827648653300017822078677857961647233705450346803943198489462326501314839267275935230409300561760742008269233902520757173301409004409338147346201031074599454312544571787330245555534538494550117979197916236517457773339368289268561311259635520554471636408983262746086971965635972668883543786161999404005597944316533685964451344377052864396480040587260206083135531765170975509498256901508258224356319335474805580608750472120731306730252753630962850828720141736292092569695439596638378614404246144374884156413007662884555212005454877410580471749395747271209291475348871512219092519331623616036440037984726845894849019300420942140944093696495922474503524165626063438635267344761460305302270543994697045973424565287976410994534414049058917603161844941698743726906588607723123975250080394029680901400288667631320803616075428568635753682585670659373343818689850343726340972154787739168064524008437492823249821714459927227056620979980473306253595864688470872771568122143514764101001958316876730833660054189216763075565119502022784723683161527247957515235209706111537592602270649134099056618926383275142810141951417977311070010640883646983172458505056076021512531191297670748868663946267710748122720813394399020750396745680620621721439853190461216151615093042386643907552152745960170799971683188255706575836842520517153757322956301571424042614355638617442157806004961328796045113618665054945568764091926374600563126337237379907757986663381852882312547909799623396124432728914493830977990864242678476668343468850510146227799285822402030987463628900795913622089892467416412502359750609819096383713032485657713096475588464758577645798117874776055894362504645610865373707415995518710015448693460647084346278691353878426772891069745288573225142353764889414795867125980655157324663980189837759070932094260134665486731199002611875585182074055797358934056283119103724742424507765982629648200617891469467110491557439361446092333480042438910582179991886117095718826542972277352301380170553404726876232679322312365160844163661138419012120563558375164825961495195134254924338328351017558252976242029549589111050736673845204797247169007881271581883132443113588444308145800232330682048975868464295356755474586263723433167131490438383873971500229688827639400993264548767327024782543954889044243233173399864836227984443617147805344806002627392049727876461148099119718225854118104245265772532723511160814927866119450349654579809094053376401046777902794143852468694568351009917001402427756063188231926947308194609673827375947123417355166395550759149576082092044964386276288087618081187335264293524544634911701095978962973961179516373582107010844831369921147464716836391091878810708458905278873608087424753657888520973043420726465902207751377092059953386688659403662926334014172279493197425484905573683311653333314032090174991501503246371470649608121333156836233955391182217217516072340837180444777419496501095678778124828313609005566517201832222852959896558672635764642491521169460120491796936032002999504872610985914970795774264277418878256135686594741982195371304273041244310673297028957937123492319213363206455024817553461589394854610902504763508237955409244903775790903572950639631156090016458963428452681301944494803440037223329767532555027016202038854293024299587312443768366651547509317949581584153652488535137422546062950869313852747064557363106802276853969653289502409001758620225462214105758786058386071457701091208724151282189559167944729116476961142721498040531674659845789297019553258189141436796925267091644226420792385924356542211766530931330003467281836400385391894960425500117524228001061781984537877703561464123729334252750132763329976549808907507518435302450533253932071429209170450958508913775409408977052387734284095832338251986149501070928882863827464236861671476710155883437986629528952615458356197519875667406963158251816221225229884674418356710916838492118584878896543788626822454404699730609180630381538147225893332305748931581142072222396037908379090116054735663728527528159750665773551268098819830496893335996622719912037725121552523493060588238524846386021705292890584189994103668398049487139232392496767757988091637231935369386299717714695760262663768840335194585862014736661174918519300330227951549637671458429842100301325888564510159818806625741809480003844300840010941447076162288469787784515319834069743345176052430717942214845681877353623600072247263946339373278415067096065431413435489860976371707193625737314315704739626754222067207184248688364265915695599978741260178595964338685413821906107991217663532770978198764665825190263629443365918724364867907498957514306612641272603271302614694999393695175722148798867769405014179684495724873757141214108080363140718771480256842475853562994489532218614414236988724728733941179153917779952826020668563766211648291076627987302749271816040764605062097695602483381224691310877767977527509702441862074289911094111309674196445443248820299782937790210817751109525319319149936788140069976726335387879608242821698303667982200758549939421506272360405318112385589415176886317317230594377398572768829285101872751462683747219103574941586362029940762161140647053928947338614338805681878031739232701429720431347721281331347945754314792951468355360984643053762454306587630606079637913049248210767164630888485865430313312086074897616254627011932944888648437464955428803263128332107340335746476999141795747272377907680368395312497446621882307253828573485416958434789634037809253743708013286602056541997447608398803316699828241652734055087529776584882579601673530732849893385975750150119586202481248492746937897209932178040297169421431946297466989066734329565533157194523493176927298038589280442913136905231394024062965645314335281951649439519334905157770001954524768918191649407288606301642161257462243920449681831686815667191614438948373489422888193118506999160408304492514835426670387726900966053982618045992222340479066613203582362918262624748772844897443504214384013215327290861449863932140280541254391098402316976157970161506732217339818284639056183213225762473366023207780796335673769090628364872827630791469924773357863315983649151506655474243261400445034103912036079926533280484407469378144489517182063568214434361402071178998558279092763183850228464820884940640140366104298398206757284631313328445810414223920962903851735103363282566274106512519415469915874918414054713925560908894907441261577676901225736196514268213063469923122156027918490575384656928491842021549051518999210837555356266343886443903362887889657709627778196800540846218249981351626814789882259614169737837771499378942828640045494072054562211325443309385944366321620283022038346322241635927931830289815664249163474680612383115041149663816759056632090750727179874033231259005849294384854404566807570480181609004640223327141070665423720186025065473498150274640308268744010790987055193382395735159741129928886198858394559997717611669835104046006111205495662512741786400957347857971351324962640954942362700206604757918222000846726194075393091652564742205506135749588673382126385654550103534135849451479069877082929400483751445231154165416948870701380931206878473061908192409220087395684971691718285440128295898809814092137762386069605357279752271896299590548428986280646965692651740309970881873569787524171519287524779971653096986739214896225771500667236812920951700612103777681824555158944405155091024080239058696879362968448851472133008212483619700187309393680118881246557327143919843379887762865446989571091927990869277345715414932943055094528098753987692252644536107340654890239088003789126131182700683962472545562305719557375291390385773521881223283924508636094719072310771532425929824122660480673585045273585919347494648507166180240332112441858670482264536194207223993151078404214124567079672170193517379493072265124969708108689127980599565120306027982272722606685502524267591752619261421991819630655571127462998896184152665872476786284908466109375901741911347978140470915833361444750355076511454140519970995701393373458016750576755455175229260919984722152253756057097888020105396916750511257620076630913312603073384886235355893901060955623729054257644536599348475240506375066085990605707492803167438530314765419830207672538610294577146985739700052082847052537063855929563236723795674264229919059757521383642425026117855544240525772758621018836289672733663973986422708998232324633583562909922460494362624816331029044319990654725589374390145931894353833486576184908511009325426052249415727475492556081283560135698823953847851874135497712529237057635169589804204339048709264803905861586464611378577508827775093026638297154246515271417707396650565128963201901031683990267590832644719461025911317930686835803278962307669127085328640188628245745914980009337818339717858718188595261445961903032580880980091938578024301714953083728616648116354961709282726585966967579039897065813056637086309713843185461699871073777851204128455335383610507367742937409642334799570804713579718328421502588474204255671562263516251583194423865853420360770777210018203004179380657401117625262705473600923042682817229221020972380779216128770594411380218889589979320335752022354736600412937531837616882094325671528372819898227197475789239666339054176570975959243094638205637637665884141194131996858962131755961986815881788517416759715705631066563707924207367238630599703897611873286813052820146353845877660510381770913479009449029239345606942213134952252310873322276252148789177527866371855761275350055835700556918938416133343456989181521592161805190964359576495621830810635519987165481701303501080830252968594715992509245460032966470385648944678021099378325135182698798892408074930840496188020044562531103014998545742192653611260670907271174215318332621275553561704252622876868330499693363423080385005853893752278794676082995624045623191868141320067366209440204167257243121426203268338040023026039397988303023584308058954539554292702815345448760480662904573641183956742157479132092895909679407147307745277292019270719940513245450324508042260140013819474338355471669008322083490043782546988520345928545253178909519341004373981659011290945742277519145763253422472070987509523726839294754018048941321755077164639650816141390666162153846091575581055620750843680421489945364754532957146481035661104737834745870881595476175512505850522861612810734209130274632363445452038316305542217420878977708746501114521246812296964041229423523271005992525061254250268338292839317673151117521417682869231819355949771702141062909144474289671047012547973482734867332614370622513009111321477677700815911935104569787209400286173520129221298240693554915623534822102151503369055985127381295617082112074501960524896381340664128336670711171714038076133332769208650533069989413069862502556682212663169152281552956019795240428504009406489614197916197842602394739491436936520213762701721479902378101026765088793698957062141495604478959007274991543452390654570545763849607619246829575880101457401239340652816389313870471398846912306211920812360040828035910821766817269487832187268599880183564289263667005056916076733666086492726766260090096528051559871504947270760220660607907489772326743595475433919909395857115105502473017943826185019856352483001443417900664556985167396319892694496233685500888354454367088257217270790808072094956644797905623858118123274108300872001423908797464746567246127411483619459719345921474791968399022723958180304526443350693254487065707152167208986124522623034997991662367640061284861732987287971967166110720053612074957985133253568493125470732106134730839978445097352757246411546907256922614972622898843584725994332774433261905987793522890339652253114449799073197127917858079846697635076264525163283313410853913100877971614510924139148857701760291695108371339056603661941015204485362644391448436060161633782468800325748792600368046026213675576377652689811794428285491892885025903852756224995504734338386722040716179745913733855142009944039527554677810850994743004892594165499662332704640607659431879018593889978331375061939048546858308656122472628367491471439557744009006563045376655034491527461256479237502032027415089771097589852484455786820321600304711609090538251943205485695520935186205171610876026375041820451414811172930278358016506534241128752904164745513554953384909994799843414637604408401764751324931768879395800937344062720745270675890508985671426877740862061535037186795647426087356263119550888761305540357195534788509622915580480281031302313212672581952652023193124314971914211278070062120545438898839195545030275615125334760980909437135774493314687872655991644141295027162854782505049440410882830914909596924478666204533185479463234210947973001366076082683561170273034087563918584322086422341905587656128002431321825836575546230844633223218438493941490162523762697194561445845266116098810619385470230224103708867950757477552780602588540153654270231257296837518032036056939885079745777506842545577971559003314494128844980506553815743308155437285131336326284406294102151723500429973871677025606131807058255256161516513457974831148319826983836884911956096380986313842127397953350350283263069986185610495225542829780683446827918339368803265235240865752805897347061354786926048986963765857992717811768982580490604556407986959227154710908185303727920880163264815011930398751939132563928149761080258713859921037742886563318837652119875794531986991404157265028597235134243124054284042177971196361876742239631257340408660613910138817379507929220814698634743509180623809059902875096203511113237363361796046514034586776379298312437562345247327430816788176485285921874834462565693019651308119108303011621875098979982245758615640417407759420830305684198825621714311693979156559103936073759837158838441746157090147777512841116043794301907380938246439428936505830465279951476605050315374050785012180628277402300723214498068181675440077809259782039693785161996615341648844015649872795638507140718552051456565424258546343666383378118910647266761877009441518791219088334054871047908580379812792519851543989625593878194060405627122440761723893934607325809413897730718585407624024297334244217002187846746711037513106487544520105778055295393123369772181402194115678419086253610034812665561132916463352536613886894024442798381835129968671545386256281375880654219690666703012558225105223547613154340650063834200973842600666600030573865992597768325317483542869248622964774922948117409027973465332677893103499510179527910545418835814301350349172964976087748680631964099894931898583554528975733507203229069613464750017487966619030735632748350824460076453833315805107271903344683101872791288804045229264466371558456053004651317817202444244708628754959136796932768993547828694643751597583236525656903744105202502892987187928980978449988232867922192561946853213377178255466784644895205211048365453347978801212452961880019828288284920090088887382707089774867860364056649032222224004200886883447960318292650494121654898273901789836159158212490214423485575977875307598150763470106686191482470564676213745429294667091824030968021482255868676244457461211907837592292691780291153850398878160853647024708813145712166324607473440400790155982116360750568110465707367099635387659491711802963318240935600294652949090409447934700503769512811306519311822713472012348980922400149884472473176706484356673315072370698192875977404562259390057283911685986826619318109563386686019442094727714680061897122104499195072840168128992762065875832562436467003962310632391181267392322169169482828990141370408256419478904341129424936363740236554205358965187536364855501683103889556258721603423999644039117234063579326384724340920362261525284786832918206038452247494765138068372295849325017767157754189877730449520627844029586199452012417487367402284691773252654293306372260807398920416353813860941300093575884932180865100548266391897439064207989316533158459993204385760673585219056507694814932626487572847063369155208561840422204958876608852274790245323134544066416215667311245412356227339868398544587359912735116798886395754484666282674533809738678347406504056303385002632734242128983803437052454190749744879984746592159161258890068670473362684688176460340264931936800221371158972710152148193538827787510755380551531072628650255621727223475998539257166854312450781663272932288560426189656697556115146027737478747404240453158897477871765667283495687149782988984232333904868825559699768239591337338032358717455853057749321825409963732645733475611224957303499958442488182340881794275822533305344009973155410798459059769621981672482751660605626668566826782459628691654677054285577257129467408758620377400665047071339941071133635231411380021817217047580929376811746325992066539586275163725485635206862587740447892842670489837741749583251386656144689961772979498216427799196096398298143105755291886078867194295565875106644614544388231839223108299189092327378022627927895471169524560207906990323944296271698253860578823068792548846789295095189518362304109838705344426465131914737074373429542925886641009713494048895843194100472138225375011924536333785709982863362221347370498013764486173166528000642690417377027126959883968468170588852741813239030313347020357773128720952025539468747205381188533907749165710248069886186918299656782773528072949140695043758738933267756331628951409180416729454776211820246142541318583044432254737687086736177303469484739673877857220239849457049405456915677243996735135748358714994821178315381483740447384950108838595465557981092138070004022591355345808584888266541165922596276593564127982362903812329387612108165290200363408520417184533047137272907677157173846921424268322726628284459100960204776965000229532058244310790194479100107650083604183628858993673625486685511405036332545652334510907355196157148205868116596080213335202573925559795900042414821989752618305193174558401932510618700596179266372111076765673527897321997716285667263186733881881611287416580898419280222901547300080880140710602298627470612451217183334774706520336129644631616297747839417692354100660224080803687968349441600164186761260672079228429936383661091609092066643357735348761565170012354508420002976342715956621140485934178946434173761942962155006958313597393719484647267371153243676902610147432880683890294997266899532295930464240543737933345376727530696835026074119711488307983839770097270688265176794529925918260005250394125776760584526641780286013173801925696983719138523331581639318872380295768998397283335593032810696009071494830633334317602758266467962267118285234958401926385681378245133151727255416475001640695158539072746123960153458376075931651040392111763279977438660947402857770967929252869898799820784993392740968846536331987903267520100834713995480887061058124140291477379713984051595086161442750855463076401091917104670341225686242761292636276469795782182020470726140497678941526049015301354797784879384643264528094852972193296243211525056926648458925038027864923094163820240009914590948932484543141538830596615192234447218137599390678144766208224168093748481539508371229458259486260222513183723468043962747717243987874277796937358249164188555690041378023661387384141713314309423805226394788916989944692330334963008406575398245183696461872223343208641560233058042973067397309052989957932012330107588471858202540894629254167142811550255146319729492597587505720984719943032667854220104225592190537950352362400419849217290334364965511572586561665485086320144039286084556642027810973461548271922931627714584787917406173162144167514751982522855833624773124187642628547723729460330963698914981865566927940064355315753106439908866640574833448293910964155924666060012147844204553465434365478122860406701462989699955504822413729344780765873458854461877636605898691190876900204989387015078627699908048737264946581709734901684304704184666893929104691535970238029433621200024421552897260834453648336431370492129366241624602775375052967220912050709486785894974569435511408723917870753402676002167083255214889691775680199198084103864299416547439279380369887470969565845312978765726446075057861008807317014580024597423819382889277889653005529538303164968228873259443080204555648192608000226022717267488315320015357395606025415458804131156923453874355653907740995109784129818924432751202939935947314302648377600040585755531072981260173501757366714728980732447199213771363400184216542990729699231896638049312702725855050973557705196030399543506824702181359524453925164220023089920071687062294699510428265190769142475097874593252625585115817436466334029822055347336899989865713809646807962113458419501120131519712945523881205498218321292781118169698286503657207813267205240156926964456551869240297605157918392842039817559501147512139280651954054666516981932753559037239045348877061496077389260363772397173115759629954932671034590949449831266029453365639741084309058860163658078012605994211680069028245237209784900766652279950444518897070146738721458120195944217444538284156644135869903013146652242787688533683333811301611580987363217081395882357047716490696784436298016755058553755261166026720071403264042658786423529931924348507996955190460327599760635066579961762813832826716255029933775957016741297758508220475298266744403529668654340925916530037472575560290388279028618487883380202863122364439093971849441348596766416673179933617964139767758360414586804308216826771875017425945075824995815191166373094170156400348728574012234512972082267492707480500541569537250771270423711896549749089333871762084385980976526055567616576617301732723659211540457865643928871853421554814991976416896844372076247667705743370723040027780352883112394664481481260781323329845746309226315550076950706700064736129062230021815569190078359298763178658162801657297178429786312363491675853375433900619367363712488010619535586942930811621678669157301667782138797464759587748130652651421886257872528252046474351898079405368952328565109716157722078380006169352866062959733491443707578089559766682296236105359693843190074540521057195058812941648355355304185448272559328480279641688354547624052105744434685258101682317606273325715449246712783805892880376676757053887401031076772527016636398656872277188148691570657067983545402506427990088304421972836485437109997681835815235895367306412823217089065934340149149715566653372909415620273338514863074268831651239735988712307796102574396870708070964403829088006455335940644573101770173590630308557001025155309619998749143121015271659018396900565145951119755213001835831266872454796936601637244699061884713825593726934965901427466300051729516033413849213724699018936541003530322520258682923674198817503828850179468644406573664271967673863130648983031464213595642801013267566370765011697448154904065712517155380233497257506992055228167329020459431879513215356524768185816784956822161616607744269334163824974507418958168262356465781134211307243557939993636293000309558972126374862397339199788082650611656124201907422403453875285154110205718598120865031884712514711487701207932010129686542564699119738751719007587067168086019637267079053429987321158732108460268567543345454193505232986566457954911738456588405454717514654339461214568065014206778200966619988821847577455265134208737025532854478612466330246751130482047723936130583777900703795357303074515587936505686191171344181843340328867476776140929217303844670432701571606875999913887233380609815378914736089379995105821630863454889904238794253438711902278547731584143477602284579507356468592128273913424935823028402192709075411095634916714405842907950333822125188917970261823369209240547546344303644787648069174861786187577867662284454833758877648002368782589209305295549059440274611007773772437688435894698076066752989482931086217759954813346999686034912066113940056927823421047407113383425944383387262494500546397228381863484205569363970147358875260308283357508468850614460856354288015311105096339590090190981308232321440463888159961870770018705695809983948177698943176326014854937117999448446475848585060218861654360526589059897250272022410266998800247288350265401552734741681623503483301951621929075824109709185366351848839398883404699003009920998478140809001617674605421765341970846412683656892100983663359509163408043402543303836529636061575358287231291201235699074010998901294965244991618661387424673695947495825517746913966975307326726635015182101999028144843969267900442017813087016037699079038845753334353038744318030068535480123532697542067322427815165238907419103962533285354840716557793139807020756678814278394168030394278754546279385403366940220432922731588601239970411494032197710470134468657273109002042669235670666496643862759779391735538381234240754015299976203244869904541790872162864279360648472877891090670264162865081123190930537868138086613624985971149343288724252186701515301653366258755231550729896736158640498564724547121010399052199289065722033450363750243201980208036946999568538378582729198428945007673668692234354250039259597755936480158324148085745407603328993184526241638250813721610434709545041202526848001825253213877453024226592021678786712971250276827610206785673772885134296336022594241805149112066875701326720173508103898891542483760458113938922704239568423845155403045166532652843675089821332665144036480453327714860562631134634367604238927409823300921332900034098862190221155283461956798335827103480433578760151884391373404140353614359207033050341324473764515168951597324307811366612238925505926564370045546613343625737301827298302072895282253720558474001209675747392288766378022323975470393667228916992413336948858578856296071766162904601358462128852936235499506055967906678480017111541399000285246054128494090588155620588270653306162815555324375846568513466712113849136901057690399658621324911235532144239363401569722346585204226207921692771123265622728610265255338623587426723976662333392238653919829468584603096838880704523118905869473313510665633165227314802453063129767195846905388621548914011888967869025042527301746488974801504597470680493115178644536820088662085793102387319542292618616625597440818279454298629790621508553608670587479599848473280416971382322577537046460452585780558743800609551763042069326631009714819327600213426572120532751919568509019856961863089571016681982492255854838333580559186072397164949692330608161827374544427113668899806729666635676104686013325342747650731585996527590855901380041060904590552864393639623623889288986984680943894259937595136128694187762658356609530295750539101372499256722667108030097147788693402840898889484164267340460353615619520729714668312398981439429965795911222070914352379860374262026466869575608565694425227572775696223583216682778540295302167288811128605000581858570340825345530388126760107519463027420293723632163014447685735434919031222263740908157571754002235126389662619078874047667684907256623420394921972865482427518608532085549024084896930600754719159318773320044334724522755330345383169827951080784073098969778490244286291799712437582437260546884705168574982229766474093131158239404935514945339327854081683345837002087959484361275064439115245580478739005256927333107631411591876779022519378160748120514815934446544279413614900621417001872541381005863611772933610557265735882836653862580722412568470903220585939870757413632455179342784371241647927316005654520508020763191691910025056785218178189340387901021052672210225866224476355692851478296522943408600039529635362710725584501645609242521118471562468345723595234960337178906829421565964530680326197103653550929429342271167076921691927636458979322242547981287379915883483644469306892972763697440494028094453603551643357053993306380910152813554118907108236632115791510544365905758848668984143735983018684953878982624503985832172924933750704453855677154291929573503839224684583578402115551721031205319185746256230687902962672672188833833573121298836619469050767779314635087938533012010103538518127596352048474308135601714779456551569118326096520728112715230766701957020976714270483346271554997541842221546183508224410874834482503582153997465212860950542154757296571683181761479130915215819575241211311977948425412125518255636789832359847226694613755693326066110456329528810615050918530158214762676836301438365593867238721952682571543130578677414972045745997308255905233535321089051068014088121720201838631567282782132346498613385369974852728767149288361057942188020636959938704445651089411638032967979734842668232253626006325031338440164647280875617725175161040157293510547751240176246046888507842418236517965182939965014387892238515973702130508088643488566798066610941758283046179001152884424294609737901528352065293566452292597901006260163056011168312998223503185741396350704375425523892222179117734998689303227743966055358984234970897911256854652856399623971860651009878898418787541811321107703703990703904259780233461970864642087382812220472650380876463797783486745695514074025533745812679212512227976207246211515100707729764020736212639093434421694880232664301086411725355482258373635059612233152000781260662178724590116495506683217639534398045210304509348509282893587004120842923899960085471678591262916125231156197503900816977607882728293645030330697328848131996899418791274863424301241031698582605756949929645056547620890622286559634729762353739271288526964864772992644967768253879652167471564625429907128059544710359833644437510029801817472049180339480278074373077026376320690216499958324258562440136914550014200895158755192916514502948288620138948821275055363485641236562110594664545684907088033939062695259901730561034399576584075561213796526021471738547412673197219338485848092030713193685160414155252214363185028371048783028511947509484628285806479871460699051498232489511141747523418194791252318416246678836619671002796224558653493200297533546808278326931606252283066336859612953988346910749013384549940058024042451748162067263732942000075684439364091436203401649186777323968102306656151467135066731625921100019231868075001064804046382151381571502214194902588858872601769188755259950314885880324149006983535042229669353784818986371453750447463180791822040689444684067371955184473058463327408434013903451469697141457459176619730740301788482096911908013198468147129993244910958409684021637393192828140875137240592952971071214637936626822833268853365450519410894944660708031295098579604173244719276302450393218258311855878374744459532140559248385400454355901356623607650697735783326548851046847927678217012436165486328330729696318860621660576600126819693370021620314180595743546720957721029406880737676087405312749759261415906083963322035152593251338567830866806575868469599431565222377055083616923614677038510192431597612397004029668689567666822818539830227002815507655205076380587237708786761335193099198539034956200363945770197687147041369086346600755923467972460409850330937609865750971359358690588665674786615172885649772343995901515492124584321287173136498572603396641547902967163007902519772028048319352960982624938575547901405756518383454066364202515925291478021286099828637111765153112767920962571349015044798938898209918839586180658929617107381872140312885884224148049640261288303587981838312080712086434042406644027511721125757004227450873424060657976089584510918664774118572027296777237496402018261201973628052918071174496677367053772626304513488451352480664556143593814797711276788354195317870578624767542522814178924251332180511266884415982230550689075332582213100030013417192517219476985077020908792975598735014205529281413396129288471372504359698400153418303791243797460775161918116494265267703965092390360976392672212788097983369505442136530476566319005246387046490079081237535787745997378099742172034698436483435681709505380937883681303616192292593042912539326400179281332898994667356868278198236874688881025232309142995001324482451994767893639201311989465239653729212684547712406968028682551074292144466685129402616623613406420878183767689068604010732587703281608281406017608571828592491958630469769814972407650668423288899980322333432243597107119113886314905148847872603515565956235278302869006176007252067743229405990499653849572000161123635542442859527909564529483946907889564680365983471917459884687263614659843982690847660296670452167334321546993923234037681796425668937847413252713734107593500122370445446729587686617225962584165390618548795081752352997489484269938366969666348075428329114896510148004388783829111148441096763484623145805427551274536220695082372981559329087600913291546989703517222024000332887607459230222241854406231146778816641164903378070869867413856752671958341826410612426748489132804570628879346170896250526211921973839304136305731460019644440247804015973742845746510977222580708056820181055375966325708195616758309492896309886029132134992051988062338683414978058316843195434032902037688652933651736675466950214109994805002969339642357662998150127398308335693989824607047989577617137682598553500353572745642287969338206274195191689441086674221490951609736430645928365908895668809900428467177134770766701083587491625816881313493026829723220359812470103021101602292332720950345103585651343169429374511583973707218495236340249824719176138721935428144937020860226899979076083182864679934384420311473552057307227005053692426709299449425038620056554391121443305699747008853687501115015244983824432614905867457835242366160024306148882511902490989274628257347493165234354039060514695671668076652617277094235296644497242180142011561216865404069410019456513955441401389698304494778390957772413936408042024570598490432845748131827946250499636994936877992527980859150431044251269683684854293756690963256802863121688339407849407338721502395278621037298903039170389168734241254524548629667029089906154227890148419923067467264008704173257054314135618085120263576135652400149048307689300249784246697383783769665934379766582448851793978358164133990174169831616179084709989551550357181907433429411277562348598644992832070157895759519900769646310846728191001277890745409699410482368385096665690440114804621399594858574894069053483624567712520485817806143281465135911213614188733521221673619766626285854655471800763329388276716624323098478671554404696272650014343761172311556813515195840536159168936289635513254330210885650734113060262614238834635362090476104277379496921076739072712201183490635328968613356060803278301841906401781404863269863677057047719563937315272565635901091299119257579991659606590382551130998204346930971317663223033512270264774866302392612678595184242979081549269549999650352241139554276210359112969953727320857199353033838547989897573170192675746206904664270779401081717444371413885580789910314351463991406260360991504000651606149819942780217356495611772226528480429743640296548531021983069840714802986759875216834765242723900147604586426816881387297164285545940702913957488338483764502885605215624540375898731463735026744073580088418220590220029557985172784464161386251822268854708275070172615396266904949162871242068540537647228664710571322391518754539834931206180366716552091231114026124829572648387566009336627500897961407213827487517568748967565396247152479898995908381170102170050387183517453503660564276509889973386733947746216323121745720186653130400043918905834616495113536894153598089587727269524518928476237358712073264573844663329032651900272659897364235547337813483573318947876481024049428384272830916790890917583059288646772907698387088629541213451505932247119472161026517796289129387803821328489594287125285308116959689238570527903296695970095566872919012392169491222416658508511153786888239088238527442876490512584470950844165263311655754652596917996230035797741018656683594329630521853735790475318091324898598722712457607781100077790452579582113972672139643336722438992345569011684873339970847433541372762938652293361871249395792719683435581207776434073202295604999798332264591697254207567724568408421694186298071619487623413616163876981012617356981879986731594445180368075975739595168570123036354766811245013206837784607750508288408543652457901208579665492157939362154254040640103318466913187631066134995788985413472727696380394333895861769998431114353611583419163142312161749638624720287448995083550196829656031631971421829668150214455096999050863885340395445312785471420057306307553094488268748900475204719357717897325647805008921418828754660779914854295266799980464385846193127848523058655100877645719396121005390427461312646494450932188178184739773504105066086673717983958264045816990483384259963607129924221117795518408384657500083288556123731888108941388084324266812199346211532039140023433710687205856030974325783757925664368993607047303586280917267632525763431172427776965614842598002715918407223516178286895754590577848445637297794314158079093724396340398072606636232577720265699760298793529140922620349879496856844697413976807560767454477364538597512281947166112550447266849260195997679805192146825023721668575626773538972494843647258948965185927625431777640378448938040201515600255732198010880961361491043016526652161815746478763931152661915846639004221090850108479261798060574333928448422111206051710585992583046456003873136568462288211745137414209434209587032503879853901657859481800512782071854151313878814087692815032526629527644033723724658480702922277704066548798610711979215715961286649643657799089878676900180208827460425409501443476041010348097292057671363255411262537696375350905626508042814815446287681044336635932469029897054012386071626087791872081584640807934058539862409013844717485307853362544370865559399120267296745400995348398658835987914588666681561424955000677786969097164414920848751828550906594792392807712431653988645679956283745987722326234234603805965969935847628932692440011014035804952676351992389670118556487691101968124995355315695689584448661190422625995735244528144422016944541472215302882310145634885603266088803681088759356710819434030532983053836656576900780021697011528619652674301987483037631907723823619419684967909817012981947163691863488374358801217949290462471282300705051604849348739719705554420394562536708067343139823242236875553805906382793903568527166293397669497955836536791785796056937930153386508889192293325493637384307706520735268947961768663200551122421790127525669169358717041362747607631244880021325813443002948063520951197666065363990808877517620292988945836901196869823039761738072151960162152193068137510743213297295321597906119121304948527013482757738939640700055116850013743437222674053536358427662682775667306274679258609751720340080949660729138926948029513889734529155357810103412263756225591449987235444474648982813131287895337587659656031539162760351968203348555054639544123250415840349671500767866611007879142750373960229506021239195549551319562008042755663346687365862023519033679423786592024231368141019308502198039345900822333446414355016863921631507898984445154211469476700443544892056155526062059886299215702340405744614740734099411749784017305278273083535765533300543539875829017281829968698283557928749516768873489379363259067663461757017853284837431666299120711304116169535198420756283725814548915930574719897760283116099589320658139297253593676745237664472963638038563886679458128502683825103071969987834613421822366342574578180311041625827381752215517348187582315682628405904325000793264288713236223828659945388833566016696457600113150940540297008717360511429591570465517320959356878300256046639793239003422688679720443136915455726781150489197796094560569757462550622413048759759328344358560063988349717543519183208650400064074915222805229860730794970931944067682934081854047210979489071380010418603616402288393790716204001170821337671411314050912093924172665977763896715177682338761799267838135804380943660949023750549876282764459457347493167393428754461361148814705291222567374647606876874995474153150920459973530491242964289361140200859801810397701893039623904410746025130242239912808005935836010375441211033120632718007436391573423661157701854224957309064314153361174088400344252543280053955417129445423291963621090343792336314048241959233194090667625971013948134640164213167554595966725981743481087841534521415394492760722709337064277695210772856554280097492770815621672646455928741889360734476219706547409759702666913382789215825411742825709950634766885721643911037883613302262819285493960970833285846897339235806636687848521905188153952764521075048165322103673801584406106979643210426769464867744153330690250401041943109626853981220086058874538982850911196534283895229911774602970373992673880564588324551752537306082379580830183329014793129188423445533303723540603736281032673485961215362624487350021841009645120774556955293791389403705962142549361608431526365623826518065011041720288229823090827730241353155635358109158833658222348499509336911031840728372502274568656042918003504263347924698375969481216263972903298153779898896881015892857959890734923971055736559433523398615134196456905968421812293099389844077055772775916910333528467929836259271497409623993003106182260887244609531484633233177019297667623750658211765871095011485373421016134025300906223562841584571681255678960597734391765183376224372211556520453504646601872402238902447482311938144240754812503448899616871274626602326697665753682365698152810232243327267794655328570011116978662317095177504777678179825443413744515743288928090792373247325178575058101838991706031665767113069382893373697185842594752275605885597010506549795666721102162932981947178814931129167429446896393773653291965501066242584049719523556962910665795311679564761578782790394033187062149661317457396126621299435211769310049607242906569662239254604317293766833484197723774046504906610634866041467201180092180181655306830125736927092934956709636977188830765690999832273606240956194733315918947152837430699261814734321595440211578985655088171614872320157134437648335117792781209271087489124091873350486956103662755948859905154990089509990181849980455115705618115927908324037313510677359223590625597643203919684526556725240177583396609873184942746874386508921700973291847032185446111487632393258392981101866524629823289616005424350763937910001694123790851194168219241937819325666046861356712079382296346197904051669782248736388011420017059105929745334633752808390084537185475866488363537089279256024523291487482056576961857934469355235403647813141516761987596942502214326733893127580571981599897642165571057136295905914042727493717873499071357739584926808989638939171990366697073039620052712165979315806398734478657528507960945702059592199462282554639875636471718438914832748956702783905581146919620647724532076079947058251356397773303399437289674211001101365042341056934339229101655469559892843496925984713025009467019142928466011878678804076306638071555451063801568888186393209845610982671708965972824624698453872397117868425760442347783813599283850614237173897987364948701216410179640555937119531784711432556558199634196207333981208573548911254761884913630434939025495683459176029167417687597675385512162093245085160643803288414492855946721196964597259343420016142831215629607580349075021152040584605835824879076438623426434353887572799922930244969037668757111253541668540153897952002097083742055863594081972190752679255827170341477825367112356834173756105651437344858972620123889723087855519151323600914780502002925627515922335351421934475918192287601093375109679764108021196952897740272517822260413692128926921230116682825597550574263013951087642673171498890880496821606576006110583638860378841310772825225734399930522612409182731528833750774857278399465863237257953660732474538405509116943281082378124985467911011371826625375312225668713850853757538726293998066542146484377878102043100641327926225108073720596605681307783326451044941572351424583801517658671592745192524960424452847375022161003780780310152088478680400527957538817868517403469577346786128787520299413757455722980748116197614482138998940936571845535242408135083073309814109823372611994864864079434422069187033520582827570294831047192627912329316253347761180155424594633143415625526770443876753558820384413371867183227600131803011943347583941452083172656703447928078622855467861278855025738980407671020014244467419129523024972259047178834156403977403402070983945778074096892473381775251559396027494107281401029844438267436590310938355883847691285339621609510878353327400293631101596086822633377821981681066230771628496452057005934992473936734324858494694793120569775219561817163925189237463099482814778357952636477385307285653956635217557852441554123991900863074551576871809822267458204275788965717155065084441594888752156641490037045059740369669553217426847626153080112764472555264384772694270971797514001771863654117600649925350554450516748479723753126341556582236725250309170467883557577413499902058918662787112651833016486946234987932738283904595625196743731911890287717671413703747805166353906281756872025142148198694273533310319373994847635182556334715393918388960378851999385670788055082306372051761154984024732052891487975174225912390038902907194998295286736377998941868347754318554993902235115827251144835244255137273337312671518965888074847492793553590411238972345098376171426399924419517018409496987610350910042435857170074335037519122093223975005544598910106255957291719879557134100967621895366608486942028375837486777841265448393480410842547730557880949102517764002461671361469092652708577780132392767890896824346708105347883947391295425945039983402078093021061083430216397654081780944115052607117407211697023849161655901182153333061386062439747865262326169922372195552061550967885285748638345244786093208024521004344364119171014200723234335486329744366615987176491766976512691662236675610488497669484720972885512370342073224245840663778614912801735579528130278724630145974066309431299068330796128059825706897092011295362189280109389064929270164805506230223012879024090770250428025819592056592417961856671735207790232867083704110679020167333397289721008910177351747522631558822028937299771888885776168461785429559214283706898245465260322660033981234021596454696946180076873546975733620270271859817099352783304424610090917746557560038025757438546243272999980206877617178723453383748146637706428953630374234723575024677739464080656044358584869168825331228047792696120094351707294311120545421112056629917387444322571571511102177928819229670780095237253957406294748870643157966250354961535212374621865430432743021068385933748674906526998642499598324296849199467607729196921441735052129228142120821724204742571485033543630362996672600440317609485044149712740572267056779020275955521915771139999776264282546658351754624192164191780033834159145806876574186226780225967548377748406224470473746662474767585399278832684606309723590297528844820891311546105826261214575300105992876358733116087399986882503146328852900397239133602223931455843803225695983765400173215743302793775955301005292645875005236893354790666770776704078429360186713118872042277280755746924349430200458608776373578187409973432846173052294708233274824699962413075378252427932526398258075712158619145524244307079072913179596273343776956207254648224036848110448017764030562558183131045543191467638108576427292868877104082914369080098950771361898178087184574155888461328415133710224759444247577566233440053412242976032570963578069896371697694667140927588149265432857696120568032113173933581570722939842179796336506530134680804859246436083247218884912981167903248742726434794995557856864656322283304301617183296885649674497808638640782741437734313501098633878404410766918555138081535373850163763518051841850813201218498491780626887911932795504758069651502536365583727336688247743710709767514279963441544284098405741909166347298116906961605625979387508438318375621985647060123182590574531435028102467873473944077755639834574063014473975002272942388670236981711308192632384819472673587631534387987660346675539363590140589928994340313650715222151152667254988449565623576797905228914055528973640970768314547359048991046486831169804504364452478809682424946689261470337782369133188535978318634143991930112662733965619865175474842494067578830924837414573273703389779544719436599156122844692451154930652602566750089684654266623530534336426142248697115513904611213487161943517171381998079884225044679900186001725687762670580201337695622785987216770063242439415319459060201601357195110417034901983317847249537178132099644589583424259321836659518162724332914791046824666756224920440687358077220395542035950060867443874096946863803410818607383807570366347697982029159858948996498911748295702358880272161522505508290828333316079834252296102927703981746866437407762742509862772599099041409168954113893161169998643724146723648951423478618865975443066016481702607395460743289746312377886568024989814624255202980106156042311045841434902588503481049288602202874941465274382290014178047171979452486416198609821049101842061459516752935088204677078586534682170695860893397875462564277661082681050422291713288100366118607463830698311597377210573997131076006380682300331784336581310406123828716510494688000141121084772057761844598252133158585638065922690268235935969440283892255888855263407648039744323247313863850616932569851631607193636624205006430872005342432336766138356509286759775631160638596574154027021114352852414129259459153401140702084525591174072078306369688977270284966908907632262396437233414137897543781248070820658908472585037718861547837264811737184170633800377650166076816673699454125157784437572359942165996274822448894655896069950273485607426070161027786802518314004562650803998128314469833951293864165871699211497870111479482980287977035672303532647047605662875691324356830785573820451680781605623951281078094527551031520055989395023621806413969426005500417699962817971518117276623274428955740389156787025106228772336294523107066954875568946814343046231171113548130451793879992282642139870000493516400327325920231975622257258696353910615665536632635295290987317964031396550213464131511644300397284430010323976278036497690720989359647347295691400201954223322885050552820136948533200267799651664718942460042891467701499908016184875062137042272284299653105903976482679473570285054273556621723223101480342811616006195212748932528975554960894261130386852874229179420931421478495440314748247274806948707179564580634286144345649395783069229256590269067307932869893995979331226854987091984024633465092308273077139772366917897858553528216314242095850847472035877104487266920373778565251635574716240130338887479945244835192086197603402231488244668051962166485409832652734070651879219213347632916124225593413062060063791292765444607215059269222505155597314142772029578551775503300846132416959429101632813118418815474960918119911198546148266355058435664913587379036395592955940937707280976008965692836168275200409215343919006649436713713581276716923675381525280902541692170124641713450029294440604545343990423375214310118877331356727804415028785503555524679999582897018056047590767831273849631242134804232286662273812092052206299155466291119043060187298857696629452078316740811622943942323147436145175225362883637863364465675277453489831337150911093526327547285033915112128997371960972222019778099868239372633155136477142477129595725287754027637446590390259185982190387050660975867777485893184824561279453021556810656807484199702783809662247847090496031839375454824261772547639696225461010663110984075756413678430409396977087325266443840970199469385317405246292904964989738753236457805212057283044659752497520854100965676694824638279792252726921667839133805955357824672976895817256149313346918661665143395855881556721322965715737910555805079641438162516968036011191176657192930790087160230718117119044327095241184518742966940721936074498294705213218587463692794260983587869556075808861842763716391207987764607536106086297857228903823696349961283696996151134222349060053981316862967837594070344908077973505758222121620231520473556529537631045436842391742413698669155189540137791017662198012978728165400317764540379861379566272563667008575939585706722690584024869358184008699399558051397759797457914795835593965341574990294284704425476118693957651482471719034125372820462944011078058582584318059766471446746062210085969005098799873357330017522058150325723660568008010194050479146888986820257666970269012271845265498336091924063473795389410553964930336401026340580464202265233382264758577735272692649175155070537669062660133942838109195453340182860273994435746252545266022957315636561639293025052323727986822436649223360351259785496802566750737999583221717190928810182533904132514922630922034826538515576855255455542407073159609213640242407049827943829678659763413284066191051868383181243081503732854654113686670239861083010521804619815608391288022789979822484104953546352820782643059836304859263645596858110839216284533900074304063862199459882834182109059128563921123048225207516971032300330365188652919202141393366633660400912507883936243142824934897272175902123148432963430296200148373229566497380454131087569132376545536224603405428040828252692846714309013936305866073908855165719291514883375591910620681546638344097826521851505411326581413777080085941460341920089880371135164273962649675875032718137063727814433254288648020621695419354830646927364381832890767516893819868320847251061385752165271077610928594136487108102406369978453509419687292473072182354137717248233481356996888681927385336226585061632988451043575295066030686305530367150556611398395617029260045359495092565475139341561911645863332895314880682894614034240682604209585283581360253105231687068354112800053292373184080003542188610272933264280884794877868231113811742077042691950216103879516895292819428245435127925462684475378264894904415167442853554377700338224878566969442747392682077081288785370639348681657640342003830206839415252897874218096338301634707558023582568031874290905697849628095328819824864013062213580431468251972729393626681154203060543077505006076632603936155586450300105245389297485262874533061647221820053192906854163572900656981437195669176771263485224375242150506223704208363644922855061922436875469488585854181406281635505422098939993728302649974734491001602073847549863082455987502676568791811825218104038377410857461654140690359948539305649572729957964994622914547578851539438916336919594962945890134244096449891336393749471449908574608931069108868360340545630300657476855366469860083418714051767645075036351453822972909774992476325612870198850708329530138247534553055692796716387376178806373526658574825041170513454548596578672695451149828450571206725066207043265424682144043071142427560221427539913799743843822569972747527087853749792663621885229708334717957597243855964033622975829034769812652661041066399374879165632738820133079373532287028424308836162267914006502202841723410409328981189840930148057820758401257145699599369848191585824310209698517246827008326987192064405578241211842773821140906123262889029847624712483330384835549007590443642998771200363014681146532981178325881254975592082761508790839018607621284689209125205945646409374316936286914869471662543173054153358803769223183574687109248174780328973127327864353240766657087585932173736870794975360368227831584413828136745714121950004503958126546246069122280344050740098773235316446779517524788559659438502364892611495449612268770911223299556625815330013375738430340800738477942134559905949730245639480779116978206958552932890035168547736717358995908442285285454094575937638039372246738926535201504882253410863162567187328336777896522615210707305335344145273388900515325247199360145611854022348195786978987119386009982856855790130000867777753720933249980586266136972604533738430979885986402659398660774400454545628493458366121720517950056663630958501861522057954489820788408695720776393534965775140917241189689673101538771690072859658117834972489174851151495901644489152699070712752492393578713477032762695321815187799634116224452794735703055676207840151138755298133272779161594264269165665401594618830521853145474054684043983776145481205197378059795420793142771266281515872902726580017274241010969495037408057587615210686711414353055759360401387802432875609619208942288230514043993896437877601977480210313901816076860231955444745416389262201413857843423459704847352276641491116946162031711831196457438630287796741202250120010528838299252842734129473507754298001460573751317719969620856185969835799524180523339451256131376150959441944126118767728752948725971765555330753970200862028934571362797568611047647538491737326191281757027290047429629104358705391349894874510421736075381882813024308042034105316020412860380030637996460255921502017541416201237303675027361994491544524076490694545192039599988399104430395502209321897276076597177037841974824815449962606959832180958405409950511144657410403044268977171402096138063622595746654177189771455953988514829713573765841910335294572529164072337569985204085643645829797380920408980135528829935828308794551019250450853441347697250047308415695547679996098482995719945961275405808468791126195757553341439960976535567854197522330651071192390897728484354729413438885729500979583960503677378380766581080120388480005455214309467372448697790795514168063190133810191231534193436036010583095315515532631785506153915534265925826938598647003126871547103701666475411976266556357249717805514048368302763539899927091455211066023806701875287822891765642338267232613397242313645853006848510419743043891877787694152751228363755447201274223974538209009023044336801083677152489220133603182759567283518130519442533001936266343341316629164727097623212748700419763050380653887055774547378383960783919700558274988162923723287636895234136987262734468249417890059185103486288310051546731202962543551324564942315731731358393938939810004336704360181023118722581291166647907989009333428106164775549581658636080438793933774898526265439194651821003515726147499757315162167062903849922240165643960286252460803828588790952464881528385092841197637117248322180593384543274006503847425889566920411971495419392066400136597809936091689347316778760650764728857386641363197757599811841684755279500183396628858136457799966852139139338681703601916325883909193728374963516950703483125667980602124213469848072400042033770651195651288570721505157332017923366849017017422472458312174111747775772598334961758238492158879262584738247566661217910033210496768166442905224340780254343188374833943212379102194750185311990359238438020352974867144871426909392386375088097255824016577913100578138897182164984506907155446009957527134697771501319712119648041683631514416429880786827487363702267525991418618585811169310168311435223159102846379700008733116641569700984523342276272093425826276186875381588560526400403607351105336639303024715798964129148792488500138980205838247423948210634651600362452813801379351043550601798976694522833554987868151957437702292385771869733924680196286568770418144823898304965952898304225981411097470327294274858388013019708750994980148233153087908422856472452721477240230760160501096589507124545600658185154256635084453516217505099906429356861535863240015920833268996989000560983299812367413021825389122757219295612799443953986915296583403468990214155294640647084582107970947965118284481025582694520133272923769614988955222085642603322028290881944332328812287871783714276417471977670577018830854787839612678220401122982989000761171160837787373075070348000234082827583156624377498092405868141253230876223678120894784315215813242947002255155601509629832708906069650001583373440549453976395116377508471875641506782893781864478723890943520771396131725459810052539933093079171324449749255942764534794244293299752252099683273697722274995342367273140667568359915699031517281492528480074485748641491377234268170162359822810861499646652450505973048108561222602761959243322060448911807293651994393027882974216232182634686117311060142035428291702979769549375118897118350566378845672474493659162607805904497067530774089416596805613920983579368660531711406797458999339822181806803887026233075765864113072309692129539922086792490995042099126668179034112718165109174816275865506506290829712198591898662636630333365422798976706686710420051427781072114460753407255987015870749552056516430767793117352448030453732962740323164437966085798305980162363928787036456764058117204068531332560215560194961615354416857289886326472312119520078893749192514248593447173971420087770567809653811210773362024406989388918582749338935262709260801751228545291330236354600180582013738729261151908743947326890335890061704624791710331433272971447688328313374753491987766067385751450661162425418366522847036498588671685258256364652741727519462322052328854897441568106734966810631841618441494328949789238028109905186255692601758368205711378486231100564310402607085193643591032157003118471263818137197463690333216917047023593250088143705697141419797065406110939371169767348067329216155372642429292362561538740309929166155504486665343359318123011273019798465095218549695758150952569654756517174549373684371751854856494721449443840016142689808327537562942893088647195968098962118928106567462760729074205550188482715269423418004089986445033435682182853620269828744956749606505141795061830573849334069265593243112477672030587710243582516880707096101121255503619974795884378587793918130365856058958831116079928550751889694824729132279630593563521194785727123467100177433332008460758711741324450174866856339911009987222247245183679533436263620690594024055640674109826951716487385305434070397782243591734080619980613167168342578561313415174000977607133025680388857116614266453487121473526279549652195310393356975322489932917288990287044071289914697085844437773447362035066366797259804400796077172759891424759250346006326350358989625919759627114938738539147753655312712929968022987254050466311691807557983726766910368888260526472882468208796261921817272369043714260473502618043109039833573627754901466327802739197023960305463200608047505468637797848459929046992236832439596959356963759521042011972481666609769161363851871240337070038912817854312369104969422863607383795751882420543133878514943626767817181687710459077707570142611099278419705597025377944023695250022148922842946819530088231060274697676261399395986563304872866250873559480110308300065991124063431779503907751539620334845953497264262506511626921525872140299158395062897898088172757349488535377308695491741593535377412038057958694758802642040196212664796123811041856488402274987569182545939361638952946849279681271538039999711239306180421834522082844086053442850744572706428549878496340235470844301960572040962002585644081095984843834024826318132869025229196422698096662895092285849184385917709760339019907834576986419519815978310280957584833721359155778505376559660910461823797552162857487064484008510719546292353598536784410777397869622637408765689255349840987183600875231397807163727324547019687486429849491173694268463798435706213328696130122261920740227886723747043182239499507694574699055133526759948423333606716922421196440243385208997107370222315908153986634074383897809063853756437357768070576090337095417949199539405550161194535435679181383342524759403264780428934541528129476865401515244432995024928560975546918237222808183563809584303308770941442176435938865811606326712369737648687817083826713087340871366965404987531919180020705792905408137547480590466890672859208005970195481309965565162951664642121719075008859672183501599675080213389459142587837226410799140646424425462925485960778106803729407017107935558703599031564625547818062699456811200942754485689652048426857574774913067770248079449928208792606955491480350547816774472913162690531464611027166791974217317869924510324025338381076769376153951899013249513597804203448050433781217818317817922064525869165448026681767136488019335275865313736883529041861534075381164371892597978679346840478927266493904424995478809634573056557371244995423615785399399895710666327483958325636297686135643067969040779311022707837670131489219926167253365106270644544034120220471510330129313754650339752052756384656425675022557093803257490767744768471408150596848085789276830525319984099522345762503513951547465807390954786402313488163517535394372286934422578919581608089524845245900952615689881527539569264144653576470316412458379621810054896805075243330285296941256481194797879693801420211875898200086036620912243204175388370055524531112236600557824453969391746087088473836556307673881862082702673178404000260619132180528061441749383184846582108577556472730188734217868397923198146389248467265911925146945739568888017978398823709388969819870826248938437496343238934985215591032129425302055917172292486442395624205675447086791638434546146394884639551705115010595229082419388105711613413684073245675247246006925944341420379024954946578795510092792441566008055482063689835864955036428835257450341951936186153935291710712359949199115768808547462434274024349853988499820828584053429839764038034881537510971651949316535180293705159574289879476109511451769776450830039332521108442367356184614599278748624608139686771908290689248758636040378545787212300957756527778773004785108927304383349549010359980877710343657074853044650215039830371266044292008356740193315926265541687936642645582894177023958751261954685901944496048322894452888145546061900179701614695266068797422599009976838227026991344358469205696715289627311199457236319113947138560422523362512562592643500937335930851095926326795033652592678873392101686649680556200658320619467966057961284067084263416476528703949192504526560750247095588065309654602224212261413047042020238277498176589032731899711596934756220627971409033230978980312019994190386770395100275100299108026658320427940186880390502672654871632016018149726032292333824043468562128111086318897357031046215829248103745386895545773927750740607661345924147772591434723481627145956369566333182773972668260079454074386960137290037902171063426407464560117310702958144711296008684392078965376875381961139158913417988866598079272324851694444673656927117491537818384855510852732433761753877447353778188233175822916096365996819120962540596618238407116877293659414627155802771519277250090187661106912750023071404164157546825171387008732165837055185314911377243175700486673939432834439894629353981122669754850271367585345339403635057019398833383752393250579937697678045290417675736916111832370159575947777562601700898437246736664174015676160469330185411348400456320410222915253639920764943960786522289554718494878696132799664796657371201089484209066257143069456958996341715084549351000322284792905336887931460275539576385124765956105732008349346339968077968233368319377434339884405893084394381956924793314329433980202157696511902114953348688348781539459029981745819147856448469963381272391592596898858882506240398491932438458271433911259443428564307537070692365895632813487292122492593886721353230371980752663432864229917117117624659946890145068914242167946061937638068728125448775624894050294521859452715909600906727491170588165461396847873311482109920876399095555575961257736278373815364245104372150981610712316568677884927516994709694101481671614344876066105223586867870757412561436514952089096950210729101730775619220040936035823714831636186405688218463526829122275838612869121871632878840141403012658636936941047302511823559328548528463318906850912153938015387638970746777206496284118429446246064217824680431263611677309311404491134173645897369299543368198747060711179297733803057112626590392572531543285304567778386013824230876979923721952918018698780981480565143230363709077173337562779292486834048044347498536195873964905553709424682264956406276297324462132887882765673461410140578867504272441310123457382581468636449264021985932025397371788923670430285142937044642320420552106644400538011014574619819622177224247465155855228303760249058129734211091049758805045721201657646561126147709411330469805564422655632006711911653228586446354127600641502857755191802502928688397852322049442974482396754913337212239783064562100725383245704338935266340545030052272885240724031202832300088037978963603187792760293933207032861755017388798797934182813540572866818352983568677680507703688359586484586662291810467065241061898390668532854467996541541749152474818535656380335166968098144247557516041997680848668013293444774383844549368259744005063276107403158596739705624521570956037780566526656049542766161131951934567669998878415166894316820492909205196536797302604915484926597082762735237611568675522629055058825259792508756765405087606358151810478161518155377956360425120035922243355658752211995151489493363429815853734890076978139188031256233441885811879795424314515143646965068924052702240082190680681107950388308601410291739289575173331209159530628649070034060562115096182709789562839657772200780832539329255385512597610755051049891080684859681797477886504222624199202324683980735025579977139047685632658529083081359191873187619324301948404329609200548256811363675880106879442294550334755503311765586825339786859931921380520844837706551695416545926991645231545316380459501137241129588598300765964427748918306195817551997351182623462404723462691344651515937283804157107030875385339949028689648397182432596500845757270782964044965278753757875941310987533439245492530056844956110165525689102170697564338833628652552388532970785781051556190517419339582107448245285824651622443591412972350430736220991890046750976132024602165752600665798544085172772823007989622665359969435166243879074068203259536031398003853232250979680105750333409707130515624957600456243846471568989184387134896646316597926837850777206658016732737732987253551714417311196235197139403998576405232863875318625271145042001883938868340585161025478079866424603902345511100543129988643545353459071975487938005045283737758617790595660905525824665970294849710361199287840722826126238013771327343796967721614456650702486394085388947617232344340327934506515044958131401302713989916562363762746684818997827284353161299907144118250811595938879950419520149369411137235174625498066381688626850881993252973907236172102611942504240855537314538645977559780234565803663312049919985096439618787032840162635294665363664338103602776473498230228707305543629214094140338364161281960649160735645559082354476526881242692523611848477411593405037595794226784561491802419268190487992342929325691537932219179515126587587311500111181761499594012048939948823888113070947792893485282974527836758323223336231477619156543560683079209344697983685301003506556309877646660857005047049998153353859871462522597653372001979696389139980588790052860052003575540646404544314140000395921419972687645880892749060716424287580027211807219341651523606703503248406551187107515348554072540029036499180139171554609161952791061845325036019900257326686320731088275976100826710502963975025415859340618991892469044343269021278833008759601577630557249891949542780599351189303057718674905738233885726393694305955992252074902672350073874898339497663758196225115534461020151890318648882753793542244342477844609334170219049782948166237122936802121351552893031581799338714926425152924915741601375418154201766203998142164711246947332579906590254962751412117940985129977343815153619046304807481484535854427604378030325676357406017491953639160175927566203372719984051963589301555185920027275729878428639184989190510942529225859058035001936383040023490438987806655239334135700182398662976719711771363403565694877928267911646412517739637425792310578991917169524627689189038237171685105169103198631406709538690573102644732846288530759628928662084152758443737863332654042605848126686175984742316895013814357770205016398062323142483925720105589453496907726832026069031595000003134177292186196199804013584425576790419621152300653003582606277219897376593826704027170276423618663937116211320978447441542520916319608644144307653829795451382917101757829694060427668335438620101279481210881062902762806030717028682698944751071153552778661125783533735758230212378616235032320114707400499028456585626664728466134410224171653891237378851107860021220838609961272294340631130666029562247086524142281988930148264464908318973239883824285771542269206621216008112836379530707257019847750154373024011319468787182897697093683294987045997691997431395475212659351120400036946631631007348534598667941400411658005984020858990456271059916078117420696215413071927781834045046670458607998653128338797507360132523098964844960930649198498420512959292145218500649294407646613924898804562898587141425143786758944602587874561212098228135457085887598398608051412439437867040210063380533079955059513721790390949939718456469734444537590552515094862288514032394130575203567748527412365800578834125531589228156755399870097403775399514092377463869139261451027504964418445292876517029724502323755000400850977261419166502170827178190907591839776828934164457140132969956225394303863277031118790303967307002693321674456775370031088654754042102979242811145080938445248513694908959160563735483840222321478925744108064250499877322439966177451230740185196261185864651794291314877532281032290608429585756387319805357813400922723488564280910183236988366848261698297785438333242526727246110582349646644532433030142510090797398745750901980704338362240513194290287410025975988204519688777217254146042149611609940611128195075062543395323646267835380719082309372911827653213441084663551978935952990334554004310151576481762710174649993810170163073312487266583070116800621953273222365273600292842565073391286362879247572025854819258966270213362167756885875803616212101119306980975514946744605636850089611966144114981665025952064854800786171975226791812877228329774763095527641515516020047848795707118843672483696674408741932059478666920943436855725728846293123818128757500444936259384023764855405474769600040287847013111827803700850925370741617069822559524176973524673699665250540690423648115782195869078342959623842753914933800033330265328167515033773259353102897526861689898113329364701050814365652304657000390521437026884289747946498636430707916471300251876714463458169845804834131818439954859000892421930511132853306151365868831300297627564762797649230714770904440762408439524512901942087611788612136831797322913004912190349744502775752011302178520968626116885409268425826143319176828901344583402716047050213162962743601885439803941344087533776869957116053241394859569602063317493745263513626138842333229582229234223128319104981541417759319364624047776712486104424384184473571395544279780711925409160102127287966855072611600887539384383661197844122933459827969541075749199073869972719491101472145906469887199112354549095489240903426292122781197653446515181627954005675547315463572519820044304162039857534760220482297654204108747466767153245181030811739231510687612527930170938005476664093151180603360798576658345804258573890489802480138942473177596372426746673655162343867303594306113863432494706402107959954197955363087295298889826356132676979986801558784062490457072769222584460051352339293241868649469568899201919848087546360175915693155386993326616836853503914181611955586523691612090871112864025250920970726952183434212434843693413031038178587302275829509769423134722911884832506240837505797943248958567244581653540875267230878770412220680282346208607324504542396772919911074628404763575923893636592446771624550293481998882299872526950996847280484097017632680314931753128956217446987061267899330066324909409902520195338334550734515637603421054849062842560858074002342753102293864431273610321176648459564153936539313339646336904088521843249686073128206157535764424009627173813139194659475372376754496863174598701957709581456155561351536141399564674409972792178021913912427885601516303728967167652644935589806046447776571347869844239282159130645421804817700258932565837088563545571224166433582260696737268340791684500762950024956904730741290542829777993608216550127396531071728134906608668442178147835197272977944843614876724132822656280171685533637680648545366774262721921641230568821983623168556785529280188593519806175825565759243089017693244413236980086840250621316667885100439872638799284446829232495341138307020180682151544158832415081646095530422974884205312683257757135532788713555642078470777002593997097780619554472506365990764555962948334486055124035546232144903873973033265074877324800833205429691305161603087401838197489607887909901673439717949782717959171528749709071681192652431379293834172101860695605283046027067076003178779945885380847346099612522996641102829478946248619144694060169511521247831508024060601574025077786196135817064908363388327909300159571314708956294421587640538514426606580913334694414303932240890665906665263477880578263721318062208302961638442972929062096707331842865603195156852369124497492567479494922708967218754153626968559645122710394238644779577941516690718774320518227068680402650215807513472996114820951801011074760420114916209029793137010784730104134354206948459628225584852871675179083640301964578031832473721056656023819145101190604710076799984779760277536441422248726033939136173976475344713243403116114484482577120844278931926676471098911199598100380497995096492081926796151533027919481217476309064164920286706012858754651233361744125283321086959048535667275094319686217650914354748835828503477265827352340666598529217720848989574458068268088837447992006318950235534786139939164388421267972092461159609386037044189651106763668958215553704901071749334217292456009567493800318141714031682780866981846912426615954141009568171752701754270069081824709783393577642580153992763560747767166274851366291264849572432699633968191174402380253205153788394532195188051569449083062340006144680682131194651428576345507638357793775317163892642327953117422993528823076829613127866571259186873379470149942937938593088226780526542961876469459047210947548498979898878292645038262356459461512076269670329724390944890010411489497694763158544048920500370517692287229381265179839708474464342604703320631319509526139825518032479546131104414297662749082926568634094465149122489461113639970314040260281491527440403483144743293223286016605588892392099299991793577154809733020398962535972607547294740689992504475385682761925914947720892379416616659860157380580099841509472397284669863035566882254785840407297591899239367665762613345954397954105401762423177175030166086083624486007027413727327603557941220955998297464330032452895020473450092493099905573293398337684475550299924470472099916815131930372899574092833135104848466561863721758605548763152367521805561120612578410504975522725011996772201514603094804182998246994966292014518220363644741775019640158365299793187690389924620507799462792307318080053816314043600616402446125302869413041017110417414849975050824059734853306290573354418664792352823056647969773610554537619503786512987227023065163190939830675624973743623667829619901363586638553832248985195936831421508003201732622678972054187508925620790140717642595944559720017316787003911347276576044607238615069453829153381535076305413068476736705799422466096988485060243225365275255974430573406868504287010195617825731601369820656846522691616507350227601123702086068748458834637790420858274957059858371534526894094734064352651992788395885354559208976921974658732847908938730004456288313199042017031833187312744019767662049921892517092137331015890170052996461672092574819408368933855594883403975181833666931687465305692089702801667748864577147262716494161242773403531748594814467518388955585916991720864249913865744887590193725158431942197037856830926802523851646803755238131449776693343584573317204535703870372219064591061549215958037112959801303489646158512164515637780208136477954797476432639169001803235295123284534201617877598143000719137888087074245683381667875494919880004137902331131041875433285195595733989540464796017674445877460931452486432537143766295575842759370254249341133034940745752448563481531961942182921672026499079770405722334527817546955446689923320048256644362474244850609448401010125929978528129047991227175006427037257133603198604863874460092974287090249123690231853670106932965765653068728911467286998079544870185296165327777915128164489842674225627204768425355969155450563535078505331411845325929809407890034219887569892826508110934063355286910588645531775521532623656559943192650411732165634890614071068526153044913531202846661038035182863375120862865036781598246693730623504001676286648593515496242596796151979645901742714814835589962857688109547839313264633256681792523953933696381747089355396857396666904901671964199985562262921964769685326712448081602072558523358063738611584320192256546638972756567533283783756566957366001326989494619510495637314729023287932519159775818564679741250080431276665437888079824473005955632770989158255304033332780831839688702172403722272973952921677026395076002075130990792722256607444187487102821743901987090376959234234422290563263472821136289792458945193069016238269246744255601166986760631254084474095999088636206125742351853145033213903326721374148918658686116373267151987830948083608728761184813298568407033605620498978271595781791721814442344154969438234843608805292545313741264486685271416269256334260799819834131153205629222704538444360707972490291724856558035512086432736177258057559417638141596900982396957305181075700693074827548649889618877958893118208813890832711339277448723967840401474979518648067486160527514173875786841967582999821607777874745749295227788720792388610013032115248116501800654676845196900578216243881777999473584734008324715079132456916676736647908349641972892059824859638280366810143720171371090004804114952292947885850516267251683878997452892771006208433575941131763364030747109415162388148791380747931141322992611660271294016087526931601940685200064066512172671823938200420496919091475772384548731409268580598502640205589067137840828623834459428196553878477674133475897030132693672174003223818693356353686034134548605477128494772696516773808379541190369705656872689373577731463199352376859575207550725249669806338993421944264625060489734349492441281134857180744898250129774250091177364712731145012284259753837619744279855935242244646260938746084130633455177373492540468108488853500210569737349748413093862454235709229350207389244021977391140608779005980620306498205352678164406784078812735948326811753859396426852734163022243516253073576252897005231969045653418102219279356680400207944056804496916664880059984122725551738815635579154532523864098005491201705630097801125665615743932365380808821281061943411685918396388784582551476003462323774729629250127313085772024530702412680886060316099975568088235339055646970774704542397769821052645084470672184646618832444029238497295434349387074028732082683077793056706319885480345777267299466187758946278331446160518330743246068689541117965028919800350955916945671234059236670855818563047542994576851015627707053077944467996629713529553484945352085341430749354653406611435110171530302457987006341533299132565441141451277062499738731435744381200156644722326704122035478074561113525470588814541021469892101888187781404688354494323780605610730039365805839330917441266384101776301208347900281823166958434442923457420099893516025494357823135865264614842958060069523971487754514406692672596989839321663955692238908503312149627627638250789462488935782285006852207407273383763751904164883876125898230064845673819695479171926813313486340246271677229472820887704563414986236196017686854625924535802483386325646332455809964345899051682372680596705221627992819089035910997229796691018590156509435260889885100566559483419412977079251418205592096552639202855326273045469031043539756941741349184926913274172463164342733863023598038643278760405246292046225432222645471825589320537899165938514482494531062008542161441769819627118254969701308114137592092409063650856363363431216478894395203582962601119197029527333512976841840399433156847063670211201895984264253937649323229039936317391396165678936620159122664913609541658433564485459041561788687254039190946926597925009482175518380373386214562946368843938260215300570350234644551127290287967468031697667420314086798355152581654027422219862579614971541529186396858095367587557169565269506745163991969563163562583031928475601827130956769913974305641065175400214994925796645566227133283804934040354596490001779899669175795132407607192101372132102090524719807619750951767344440671974430424555328020486349837209394509164910302986845404040813666487877797617054140970602643166245487725008699871225929969887854825223411001941979260074028298399657414109634352515025845810879903780338090753651377230517080798759407174213551273901457042172209950895910069552954245097480315355963572209689495034618851738511797079553893327440890162669066113623097847077051654530332102663627192461064744207957790861327193274074703722958161189330049592011103316979024970431665488223874526008160937175490308546023133362436743711035747669223155919771010444008162342086097719710792956839726822478659506874468993888155705711291959188406008205751754405682436600848864139819709449524302319092619977678500470331973058812494375287247217713332843439164226730940469520533050945948898855229034265329474264832872740845673087384699164652564075736961858130635997686023621098664297551108647180192283286789994705082682568687670826145834871278909994947129729484949092314935242630702288275965705522470881278834805099392206277024492796326588352562796701461930630249894658212518318924251983149022913268866530451733624123800904160862033503371686444241516249535674607661165441034202948817429152294831897596949237482170142608363783769320842389699803482555142653840850218358894571389146807077076783161424517131590079866766927719027441333541735108624663071362235315265030128161661951935576901324907903484193873496343265028827301695292913143655177296334389709052782256419085399250042977006104387069201915003358366464650128493748013137818275728938989533851594060456745725820280940186298073431714788783382176292000386578612858524411117463563408577253907363935819839943963760597580817252377644108342519334950945357747766613472213482671992011173639094643251157587206562719152535706221166901465700782699239994881381450838949306891404044331881020477620250854492364406910865743423460323448281311897668429500004018816435190521342446362800305430092558701383431710264550425973667590893804309470205271896680219887854686398627514428087030236171987008428081810516318720626440151068859885510389439483300911900053858789722413596270857772711421175721451461776307042655323995134665358858211851344384157874442718031384316114126851017408902066583504248513930651383971090166050448593700474294720117574718522700453742821863565141067526600392386062288472711725790666426128677366171261258726887207156923239809920610105853817646620803689468056998370038520578126718004768506745500862815576526174371571477479577820604723077037370638189808337406285893711319982154544527455880256311713157756121821412827408452748094043888185067270063773663516704368692230384319746756219794822900860869766558211327892357049276371299128198087800421646082481101070748372242886551204594040129485797007383046333997862990360279432287736500729272359467751019682789553252610334893879381969954786810430909491992340438632128702899824730854754089640756961287924798624652778122579980399541377976500676686773105972885133635975043626932193415425210688874701320560500973936408612695723197300428994781006085449756099483531285025629121674927220227646487398491510228943073306944478220237957066379450303271210371235972990900340628175093496637548840862096982693949339986411971681774323846536731423894720754061372577093094450718168459989398755507024432623637686801680119617391048830575457175390523288900244351743299504047084013819878175476833216453403028913780678923596721164555825463227230027212353152309768004741302071409623539939985739434156658450900078368708955798982045405002531687103093881444851522012307499720009388843154802526758506744424384055856029461538752099040079215668919396181129373622909635406129601176114467786289986211451820083477637150936259974146215455460954274832426433405264225285954010105411811020981975557822676987804202542316603629573920009016275459908196837887874620092545598347743694225769749212173337266988949227428704066104779134593185588909854865165872762886466286817147338621724010719159255398832970550605999786492047311793353331309967508954836933611916424314761854322848090073645231818071974302578374072928297387253391270670062333313602245384318645096299535487266694330062604551506562182220529757867618941609287321319554045355987236788915375250296985002647271823486104017718172419076958604148506561498278438180406236809870462381208415658361426782531372219719510096379028197466759093799978131023932074527072128159037357337520141514727231930045918935141099186231967691881481320265290308833027134487871144602084334152144899761406770297400035327478940479570575293806896786730937452346628289361876442257639652086894610614901576115487231254483884305573001038308938265226576177662499278544341860304296159107711852726135301665987726436997427143669100331058392576974158190832902938382691525761696485788026942699075595955783727678914691123405999839161924202025707576984494951422223305326372582718494782155095975938087611221061310001910553247104223016208866857503502028103133874992599544012175173399055557822705181655363636298345212687012703858855413005994778460820726614037651396845242492176379318528779550311007494693813313986740162088635089359207294296555162389744651118933805541587798718440803095736627733773380602988635804987968701499781820149063921288847720333329372396677207365534396958679089465875757628002777641592005300170546571810163110331950031956405309956866801817107591030003236918458322604853242839581237314106548458370246909304905411797419482826213265226783550385957702967793901161023999235727534913951757540504455461143304794038844936425667120312083967636272661200926846344862592754446790857206664557570867630580346744042010497418298262937538358870863081827048076953734336398706961657720808490251777564546184255045152107222009302585325985695797565285387308731376132304944882504014341540444095393490172134696134213651267788211908264831228661147558815275488727787502481671128625359176207249410008723133062017621306215336980386831429069699797818101619886929571251235111692832261240530882841619827987470667265550323661999414007774302183633920078185019474337585769958045877961886235408286219214587618692235635511305143131219496721930523372730455586108634986375665233774155643823808466859030673749826526674211152535962959121057853869507289217261315429409975455175416311729228337171620815970960210670261314564116233424388573931232872265038452583548505363617815059264213320432762868773798880661873977288743503563706540306255452723543420621427002451321646234247343074799827891515510203213643826490941811077450871853929465960701506510499393170433878816636560101655233173099166941672665547583349761111681184539956848497078436970867833076916781887876502098474084096355455641068542333476093760284842438130520290516184220576093598152841640637320084911320739011103587730917590328051825744503867285339999435443934755758865365071103475199324947755108818904139942589941952240646123202185138656119101053132822285698733293787353578080387886414453119162806899762229277735534163994312371627910331317529582080206842051626379470182067123326108870497270320381289215138848104816466648591390703761947801950219358449075886457877849299591353286226585672725947059999694425919925394343420122168619448104259826629419340294375199081802916223984465047461774357732644203269133928360408107105406141047221143510074414772150043500716412062546939526656504335871038145357263488157099404113392656804046768735600023355099142010371856481339199545906612975369065737001715489688694133318950041271143539410930198527500625962476878314012196045501583920986388401531437529243385014625514066068401836217756959908286504031138861122300128348624096976881910554336808401679197064589093028762756639682354127048178903801446102916203491765798220050259143402297338237092937596879606254507989924773326335477484577318194159649769912007465606463125979419312501181918171941316083552853837647584974063804255586235414446770460861302211766935296870915570258433521849774574246031664942808197690496990912346508206553693598652420868724137331985125168892103414086139204356063659171264409887480251179872154719790621015850129551413164111908967415736396821134988095558267789102624565358343748669772433709840413001258027637421484437797477957518975498398872078894609817590852808373507161924786410189307200527780566738871643455296892220296374351525561497238705809350284359389526118037570720481940714071170268148173682838253586561584750624739570085015979570462468431815125444385658720534710945524589716818876112101695402592809374879195086628455935092867084773112220735505800425095254622886753640660788866607962646175670110111759687840807552361248646219568229679609455866464649862845944672718391442067772393508454445284696787136216599514070711884345499096319248269832296176823625489069359778504140706731782423803170266894486931820965248942923786451979899589659720469755876631920089222518709648551001651807411702141948767417623023008977537545930059561243735427941775594977771893878569794709802437037814586779368254471310758200244709607253469434652131478831457117942153840362673273009784728109752280928245480098078375212349867752832784142094327928740085528052884218429362873690422130603989419252967906740525528969176614098294951711773838891445426830919090225874499044646553916757350964550849870700706858587602077951127465604606962489131722014254215907173639300249414391395306632843171854630416393001937463111727966954176292741434895181114386273608191176381151170451041032323355350300123807163058324738829672661280079866487088027150445709556777279491999752586915436586020883813032106516412977371556388256402318803484139767591755524806745588001179962332150435960447410413254602039335473084090082063979522058048375203247534534268365287100408576236492732746975726299326688170987986492977680211570160504215975205479560505447757676394467470431829874210497489808548517802082462066925968970173185362774604687407534715593939738789946662563764803697582354742278218018624682948035230536104700663782704420214895179575375606969799744409961044215970692386053495870102703100928085745964828093205276709326641765494071117375076530877184655543876707064996569885360385012455140755098465210160706959062082135481197598063031348640307029894567773689561953298109664899957594028435183158798928005288094231140317905133221852733483914837499351606729351686395854862493467629596040586827529804752927611305301353044594421174249095489844172393057857201769676839074064929525459278120201715477044029457999663960486961903849266756540997988304086760144440299920150844361063266626851830233402840479552428059325875425272399523365878269987969853115555486865016535667386707256622754885284843777646977046660966361445255910581152863458462674893795935628744542816291160518785888199824728444916679152235870824063744807115634852244779648534890411726814256128482446710465324034915436002310784220157507593580776694904927442644912454999433600863153660684967391670291213745790180181897195882892987142754997614764395958182573103778521984346223756715163818857899747267823453640778344685576621858865386501001249761942009134029145355328827136570538500371664213567634905270745701469153783889828719282629886304620481266717912967531773684658954819832140655349317151429968751284545428583208464974364052405242289452786826417475400313332780587383702681974015908819352617313565280783784416509211481419713619942453590683812043136735914383488658915460356574940148720461001959401159857308285218934060375622805406603105854756640684242175035483021806853615426011439394072518491945318595880485300812122169393980233429805132819567377633851856119623755070099202553142824197806343875138641726925235328524405490033068114136364794288830893342136241932895013190225499579892362907449493061426775736066753503380124549116773940775386424906498747740293299689154014541388904556087899739046324246586007718908662300392276987975968657118668452058019834322305276304654002428881489658483688093450179630280224928459503070882217156501120172112111000161165071592078734093861328574897316882141797381258531998809503294622563584665074219474460117692159378705269510436670478604431934725517303800732482324655319026055784836640343361531139957949746621873418669523212651517519243012652757764857917445445931730454530267572640907515190981377370477764745707748138183585064950443826392337680022491964225337641920020451083188128530416425709443687686699699902541371889364784839437066296636136796789569331638516658022382418065643283958016654779195153763281377238005983345209618747843333455879476941573297919702662885654623717328034878926593557935675733390415567122660950048428557942246611790375903405482257952363810269989505402614746525604515789650606968335843754009804058025824254631380028710979180713673597141251965807598140990540786943985248996822578842183752175736214957480008826883087794964989116724651416693483075077220007303080099977395139537622661407925310119534741902843799090600318568877054286510104137019265756913464065634103396624828593891171846096303270259717134986640509743162340646343876580309895294280034871240803514540828332451689818933768390163511690994870900072729267745429908906390143340351930276811070247517902410607573909175922634705139025565685097622710416526769492885818615685513932619748861519014408614095381158161417520413558615737418866047314852625950676745140922797712304717772285225178036092752129701526537179301774595221449473260447854586402153966953330593522951915407184394997613114511983733133038325337462816479040482229424606417174083673026482216360620486190982045276192684327724589009739158008639048106229212859939639966743818254667560812091710904628006351091851539229307803977019982127449756943167311338974864765553016180344073491879513118665832933324244574308565777240245356103349748273568950304856075591388641780300112210477370884672140080334151373472335258345306620823070811365566922787432844051555777163492322252515449454726290109636326105938527270961716489805043971634062563647230561598389195875343636092794378186442276033557998075625870559320870034795504414152787308594706693489847964031801187620952785363974434746168335679561946622364894422931326186491290939311249595982859144918877695371088716434504070107835364153779871651289037801036632702660331165084050918166801783658235977830977405252285431260982091331150533825528926998218360077763968516071361977474568770313700072326822088505476443892698278375173929169917312222677563439559976703959508591833427453518807866165012846878595644668973804792890341913225909555181286071719390847993674800583694879787146460625238452950696419499711996669415668508031911409224442283518193417326103700623599428693726708801548168778387532681575236262598870867243016642970642500447057579967418225113483931123057735126482995455244844049344757145988284470553081998501562725083723422577924459004586362483275014036022347249113869162193267852670449557897957677278176935484522067611378519597768219141895130186829155408172839707547565591668543904959239187659563187306363880916976900482754951173050386802590399140655215150883121387198730426863602964423545105359939204968752605530085530099715524334535676445739043040988352097726327498872251733760249816931778273689965399586429482163577388812388628492897159431471294446429173035141024420364325448465725743943318783709852840595910145024863807928014633687934078561712872606008046361939031386231773347772702135956903874484340825301832532190023644643934224313853964132736894437331440645083254166639857841410691486338015919920697901403052340358055080160548826279976032122863918152372011675878974673223172190922665647088703596993399474568150979798916474953001887924657447940239494814296732284904104993045260316908053204978490969617693237344539435126281965666589079551054621012757500293527153752237819171904118954416495147469109230683157380216543289403662510260447287696590927020002806652580280337995727474298824766049369291413427316616883772747127040666500086836576887427488032414103159686910668823583234804946100684225582758600291469912363180506055394553275843132417927450939715339871488447279370340593910820695611022574078439256957863743310145321653470571539635183103163562997125373094641561922126223430979792259872631317043132788820062769758899120741243949340643525982047404373841869375793455802584506918878142950917928353207952206551571146612208660031111621320540099891668339792119840856866513001586752177509582878019101468420492241084383327347462957185655578576130474491753088305180012781026062038267583201433664635725965807245941928436399769487874158269987869388011304905025728470125310380599185947685898987469713372117146475399774875212669315996297627673712391992769457099499375164011047820826298684451007713421407926357661662261944635770971684486813392523084842211406987721710526452037632081199300205586478122687084742589093318350546143536570595061935878707688500470950815463946066433578423884512146137919495729106881426843633359789257914111068397728832242711300582636991910568439474640143105386489660598805981531259050716100152776176377911099850619671780944278804810873799680401642926024876955497290329548620151988484689909080999670465457367180916101686845771291173479477682539706365712120432300117366519908971267264320399124429157615299784535076322285268524544447052726865617643222953155761012257787600446892106857408558269121076866329021843931481915509308817631100357356361718179206608737118963402585669161208350546068135070339266802402492300184467630883003945813927336118643765562590957674054047957904397194255714855449779171854185947813905575877507383449192708412554299968661854862718965255025109421584875931947057259116994339178851355493880950265887415461338709029016903935290380336857591888913824569773934168247118377446905647140069026788184126007789924045095952038359229810453431962739764973977760038540207601170621816208604230254273288023269755212299049555152615057596880998362432398836300286015761383666246708737452279135372581907362545060367563411931156618905002270916036819631350211820195615590343796191369292142619399103377410777950429117547645665392304361239422143357917035062498126112814706517566635036248402397067259738993661693304472534963103447544214505890915482232206310751782910010313054404618917804517050365396624804811190332044869864160165598681097844368928257697680115905197547584293992826961577920543462135179547880584094693486381175557733272039692591027431176065302263446650611117093499702938906499606504676242610564131358274993612797962544509594091931851945035364512714331078204848353182890760162801563812120035693703153779933949359179817394173826318848596971361178820419235606162324258921788502670220403720237490226331029147080746386664529738928508650214565569524736663703792821773721218111395395177651382993276033141946642137211516504444300246651168507865004587912155103666351977773313053301948125368788192457845468740622825808974763115968781704554471316164677596174658987145356944931870216686403482575402314548855163918218677868925670990855126654045152571352291455101888675170166399139010874958840777813150228334595401737303440367380702383443847701381713517524697940114964175300448255855282048566307930155584273836536232491068355507585252451932422544978471840547595881073223351462539577100427913512593006618101785940638364436824918925221134829407749725219823224987038769985267818766238226542204755678842603564817725480115200786298344393243056834492855503139029936237798505412519767458346579691595511406946023730393358328839777119838832011836052349730928633974366164748423983796856669608227152162975881674436023297293437186955778158211593624817231963979825155171263422095684131862325055966585275157800992905744266534794561124900400813355832992120649703248032281266506056121250982734387668897743678902156760884247699162867660468214520900907954903837875175836853568630634915689459878003993385267859971979071213550096360180302378533385071355272715394834670361297454098106444873704836373531282775001609053945680066848240127795047122077803857204060725880324317442469556756989718740989953955974202581999827804517965825415629292456513768834390737250724771168591147578885336850081019364035217871130466366685080711793897632029847581257168793104421683635346094666417946354155705282479375013518158582246004453358571640589271374221184427113365251461032238754172887429636363715203114560753992984920155371302766660269929902054962929525270773192495275371638352202650180590090309496535840615719968676327875648809763840932962554168908128443342245278177557576529433801023067136446074210879088664329622536666611906129609017142507454933707326375527201044055728233210121958440159102752642295034757641634685926304507524344984034726131803686995275358793451836394205794249808470009667183250942778725447751623805840594949403057722417606945575103492421600255146018670028955204060299827560370948230683295744218340004571801164071390760743322642814142348089522972512869893579130169356359606991885529167130276114304431196389089777632244651227255073951226495306483661421094696819267731897427379322190259840418399858549801388495813781779783138756703602132225382033657559443530539974413753088514492813222670279838015866644359660472579118289000104671903187503499684364322121864287379963584823398701414468522555994191918511452500701460014441899678809267602028364792788185745933868084222403718817087320866781770734143060609260292925348676005743732430038601490333285066645528259469975908928158826029770355142350466910464120614321511988919619192142693899302559963402844812744779654590921638985240574365041794739769796645694747674530037354298341849036824308098985084819325484069267511656152660753606586038976419185811289501628394492607936813288863300718991998893154130962872346387857591078427319519617675290102676103818986665948136043906172008156938979013654054561693818239700056218530976363762381769920487829051278763039429396760168585198519352101317256405837059081698348596280970050065554918971036705885662155828857014081874768956885540069444541180521255534149537075057281917275527952441760015744751703431019505926867480127945365890239546587693208473691717449521096310102758617499833844082349939752572750833165847041070884916508501723327668375772303230573045372335023133488791793423808235903455938825151645304500529852904673690199677662109388637944702741182156166216446572121444442360244748359447031275196628028899638082898387229667857760520489919288775378584885560613078950516901437676006611128970058270169381546837452565831558386929192799804117436247818982979478468299942321018346081639942463184145724643675210145451448088872252860758288758318964317011949758790603289238873327002768806417886561822995592940651080596801195346928331037033563962403262483665243444561001885864302169716794834233927398935622293827471707691751529182797918934960666058931795410008882045433650257357070438037825883733795381397350758982534040736344855464251902784735791718425090305657677490390735202010670065397526163946305470488066165273299826548717295635242829570738543831301164617430376431241508201933459410365818316864424772540155624152000615602328390770705833700196894648590873531381103770136652558210132375958039518052941930728391982829472397514634163155150885284239877860093042629647514525938594259545359882652505304258603344311035842269692113070274674135068849093244969620048411656615490811188958663405810740343589800214398781216990896394062025929113603836238335526920982596084745382438913480563023370714936300359632047786208220314777142295406145132631128152269646467734490329963032746599298021380063145503551836552756777111441293125140402475896444982418631163308230017660880253150473955231584577934170106431801731103365197197239818088010639278552325696616263575271866285905519983946857283686588662452148736440395077891451070769599851784126685077068018383060632822950280679253028056900921082124671219631560451827556714476131386163555829612990099851672278176081751266125731737056841771680814040648056040496430303646931690639156486629053427338053338007346906989664072128247662023948581715871570757622938704337968395903860848370138090460757185682010143267915834698793821386189628683214583437377348954296903280890707389155364566176698003070929161171688904503495625169235683525331499691886926201447442033195627457151460152062827014106445421033588651211624126559124414403822156344366732563071696440394056300696124924297014125421738279014937409047176452664675615062112661089674912834304152655184748341781781265891568475914667642275908562166665711067323922678310614029025645157525100835803418247843873554409223857953851011696150026814571892788187875565963115467288369327699526046894597534438868594954285713876179255953962649581746299576685878201960568789144945128657445801073594203657901458956771414784844088824002339648448826364752286652772339215726032008766641437525149948457227485651466183436207604128399073373388070594700911671395365067742951526425938182856394917160073017357774870321949807492977189808748074412353499384857553106397311734286740357576416581864617030049083722254626239711211217499474309491139664024389785418347666885257139268235689489443516764663598109861299205435509630274618489375901012948327983445850787937960740774997839666854089492575322217694389170678489669860993933242196320653740111174497686238583465931328430152326242240098560410463257326327645437810049146046053082364148779025486044679100523033044372807922014046395443431303449136831080272483234105367772404434881702680491418834175270099629150653795186062712729184993279817759872655773659633991435661015553536762336124975165221798272004291580272569832958210460772284788328345368086561959590211995952442307762023276553149410470677517035191219826519384972239210624820300150524972503568489532263855827154946609420781731538369750102130155455723363684368324240259563614668520133836624408991633600210240036466275141857254178578233224692322569125041288645102664804529015557499164510422252706541813320502303553084320034005959214293589846223888972258555400659202759395766469326093769737071033227891957271762134250215824897745094991879103811562911778320358158106740188128789136481370494597310747482432151692194645572336593657781996408322867547282154287151169878563246411666799994208420731852032582344677564921450323397634099810195843466979338690573991973321251040494311379910288496022657692961016125584596876916190627476691850682280734042999355102806984227425554002448681275648147732897115313235972835286094000079264657483891541557654067180379185289425382728674152225748950997438845239088877781684224581549148664152433727695247731015688785843379107147642272146649575867786362002198796183043181098867982040520381745020703635424920907047215747663520430071432150688478865496550193015622691794427302442004472288357382470434601166232068659203206511784720433981306163489578306566490607755836205897975914831768487203386403660602784413319209826295987194327481007068258821903324118221984515483282999006502223958753308188462182764412125471908348907446329782106445011995612398777365663507134056077820932175464181311875398258320167289920775950826812615323988671251592648955224604204775370490001460336727052663992517127044799181339760126738067384209512397345201011836697815472632880838306277869717922575082422333512506109523739064613768766654030128968818838404944104368824716523213219594991045180583972724621955295424288134792962607092375657626693566952932058600669500285092490494790405561256400998114972513711186748085474297006557396095803748912165030676673172100881504302497803141251749356913174566512391330260823322483227885679300906951859918924429726442726582782064313905020891588380917020432950454062687919944721655865072849112339100391857133788017988687527584895268212889969842138028562034844921909997016075234398344131340823000445657140909650486138493104244607573854301655149502892517419129902580350504825870833779648855956219394680127255738283125318378849072289289717517351156415224869197035504314063157055264772182070146701346570189621114817110746007638342897098819624172932872523111515709770380821217505338504971661075885449484124490452955037007877585429313664079183077588777673350200012634232688306755038418502378899080005394426697331178883953182189225594717285843477868525096265931507096214841170194979605274122126377817962290131427411904034760242808318174371846608678498842832340547026011396042721056988321878112893906280384621232700460546395205652104696593047971690481179720101895828564264141430904631519229450177522979220030249915082042514561563430874269648749723313546353034913055211775929677656167754843865912519895516449408375733735282752355696708946922093931879571973133569034910951636243225329841097442478637123473201755430070206406451676379906341605865995699840818310882918540498909100907219169726226154891526112179274712356912809292647474509666925486610649345420391238300383137681353879391207036598263090499913283501935549495096751328216208487904082090876407711351678019359410121534530885534663977868875244106040812427410352546066295057280177760553639586884234061006661335808110002080319691275656545383587311280727305696631564702297397668052286763601290000050766804091345299317326964295437439266116281171005731064240962328689880313410982346279677022693215684095596089555349855735513240026002220781497054313089492610212637418591228810710046122241226228695462394594463234768117060846156065011101473183838032221024682794901735210264996187936184563905337503307915328598714902272993130604386100642301211412709067484010426164690713057135549307785347241687768370503475672050981470847111816437518809669416511127446727561752861349781041727665362340704580206440740760036752832405211303551468083184505021329635018035941095010414017210699789261821028337399796012637417057454365591131725708277658898469679069662743439731768842366200717282074051103598115787395024970248996239604692104438648005056447523405919997316923523419772392441099761293031396725057433151353639061312272717364338760527293784975443719909003531144250701544792654949555408226217784263601243893991154078928168992431539707385538793610152268031753794491977307303291757008150590074596326856304830088097517937321133215896068673740312549404893086904620178099968988446949144734914264496341249912742699326506124522412155594170973471663766806594284389035168322123351101313901818029791683365057674030330776924197261407899941674090074712502471828154657393448196181323729213137880126393078442860816597586328859334947228830734890217562820791103781836180851899195449670516305184272601442043408789295676901246117332680261901089672816481252646223741793804894850210074996860679932470561028275164697805023840271779095842628167188605124924161437581210469007047610135147292996666738479237442028754348772577216175153799162713171650415252210201716670551123539416363088441347073337474850921517678741471717305507080084744189743117756029881748034064082638219219720308482942833609747084024355380400744794400039656300147540435783739767732218688151083402658378206759664037318953987849256078102006378864245427097652673660680294385350746574992504245113304664296810724627063885976638845383353732835375805628792877476964191735020051026701835439883946097900328505927915272684914310996123384957120830191301161502230681661569319119894614242811062285265485787571380762170096575874949080614575671858859027510867758026497546603293927205775353534763571918493458662072361359220093002509197140490075850178852843886613117313644872692956025199877701553265459472559279136935340606413516788635746070425864330900027553243910691746062214662173622661034016374762176256978509246269338944434488584492192437992453671297169209818154833193380368867237287558722154292334730829423849004307866303209204841678580339547154857143249316773147749835035854451676470330502449331091693738029713030502291939019159348228967787972946094405976524787993097504164738107826321589654404602645963356139183201345017980349974230628881340409841104091705682336937793031021489072252215291884598528761406597555704652853599144962090038300885207872664928587046617909922578169752143043566720533908296976817769131556076378271438499979403998314602925691709582130803534175838891996467446242997786408272630543923411549127060136069928922162834050174393000786245131880535325634373853821930954575833764476468274035718766069059202637679313519304884519824855668103267348531954669603581335550474398754636532095212635029831329331307767425216814820313203838111373143557827458572817334834987150451330164738428232543096927233073266535879841439035343748515961825523424780272817415661112826317400612320855781215308370952875274927094127318524162400119092627598672436804674228546210844736649971410665235781645795011827170288845895076930410940570739588476026739511454747645672295373730821532904137562696347126027327936536399959057335947931822001907648509472928419384439001088593196960210652131883023326532268363837975312270314026533524690767235433647182539280919351048524854832524181238010281787934041126484436449193182930658528487534154408253267704810612777912195591204878144429893680581676587963422292478387661541891274378789387328207377895461650707426644130166910203521319574393200501653561652416554499982251001979342189521277793889579916202144996656084871649279064424004197984318568158653262506876496817731246639038178967931104000349531053785144395711976275949649950470810902095063124592426415536376765502970841579060269654558179952503371359163344661655436718680639014860084940435289103682806516999534340687707429547431308028883995074015423547106134125330467610101102471655188338129224350157953954418939939120383322253941705976465847592441479204680116430815976830890618329729741273424021571189968797856760913013746842313980207536901747345632272311048934668183188181373987918083191160650743610679564487717081458125939499854095612498758904428677489715719375827610721460181114147860942447301539183713558519045871330980531276873830163289635350747561154318074038032245841958973778361294282772499218936134171856237479068407347711787635462961774820490106124165795383935357604633428193739142433668567409143445041449655718149894030291432339705134437043075936420337816832756003741833948030752372161887476147462519021423935672671354251276646541139068749492344096892513357380284513452069338578988791702418951298343394900391161587160870679945001567179643492916279231194055746391388980932995238179385826551846903270229359630061018040840766546835817146243211926650480372958898672277688411906399158526327735910801630908647582752870992257337787317571071818053106401470638854411624933267768776596678300749390007042537658609570822150887479494839533846301105539322033957396507587392178482373624146793688644745592213180262337232449311939172445033032919904477320529771361190577799436717659133872834294772289542798920367329071112212819178752804295308372355376046356341866421216970449059175018408702469058682327115993366882100031098953162017800374917032581359401385861273644339627869142150899623388427427454076002782996589864338926233704868679557755787539032404344481792610368296489500270989327320887756231518659553458564964222278113970922604620187083489447512817062534717488689581012235718335898238595088614015761854766165246527799526936332784560047826950290820020820689742114621647817591127380385684145947212326541374939068064383734641087944037309217949813974828776229627137590746384703942966797939177864223715665804104294903247728843991119008067173773959839542765728576245482089037411568734574697020571931674952079171938251449148903816678019580150274355706069701355218762534258553723949767299215912249750768619866602197094413255903153783652048593043905404424714760979344075587636602650568980657351055024876703377912750203495594065563060321809078829148544841499927226441513084065676008691268724411904324116361624066008214911984954844119024412967336833788769843343065963196156946375296618625813028231260138367749104032398323412599320497278428111434213722863886347181148272662979141664994037323192459315930965265637894109355617973213191604583400468062104011794953434199027313947577710767171600740948915941425735752530092113268400455916087365015278882735129591112287258613851491103813519929640236543448383713192484866095993157978193510960798660905301905958365003996213934677536244665643094850825413620756639868498814788081811467120519420414786688755977878893580488119335649541200366119018172874637586659127447557854055012749430276020379132559551466064329169721037544853816556147045414494521147139697581545582731901879800276997569813335002210850432238534796294860882040177582728787262606456438745638599160746074656517615650591945479919011866517619377742058747657029476806376479384522817700302196274693460717052779375411089381603040309248898475809572452784340708949463928847894506510014783487934969547192083873676519309251711372231595647141167468643610017171325518881296461984109450944844170038314610095904523712370356669316480075381364300712184532026003752604445625778946504059216798674320747734634975814234422779717067385007283553540149971393660514279908715680221580781821304757016437299363657215541329466120330629034055519731971940628364286682284774874081457316932032497264503968704501262648549200829864581017115869257216482991161751876504178035507790461284371727919442530418311452379229001122827240284015577430758734070243506794232283246601644357351399569758829352635141462912142497019492023325979123480665055007943688988252487310765621454727880028299275675150484597769763398615954730403087329279256594103601309235951946760455477862392276700062431161678400509739099634783386180083774865353231212698029031508187027244975036896502438216928799766011818848952981102447708517071147563423673803128237211983091607098055727483493302151704330856819600477012973755260152353804248981540179032093926697240225133023375890500346845654278398383905230408445719849835516261149604629656703731008300900979319259821041339282538624339688381846969579869829501061873258528101918235266650984745259141362136047535424669946533681845031837226243877502808994797910147750667725917353586340400602948952957235548240437335357893182933562953180368807712904889170171217770751742310969546758102246304030437465275022908023311345869142030922861637663770109249403838570230471008020249789918556211926939752735969695088130788631295591294415597408658384980486134734510371782319345052556737525612982906671858739336002334713579306987082474818040759998128290269376179594717990144087430898641253117285445830945112485164670815844374751538047590739241536488449622562085722577484244227122599339405905580120683439238607241280644209541547441867771859449097501622227660657176632315510695024197805325907275778369164302874947225647234363762623767454492261062867848113711070905143153721368964401173429082788643152068209559886483232849513687530119396561614660906947335761750759804339966200926398959257558381218496276667086889574111772678360080107510471814176679434099934899564285469872386483177444291286613773935044247976857601139013994487948014524607793664400338763833607617821289217999196879333068721388566512639843028105508222452108251625237057930841094341320292889155741790794684480541993652570798291135260462109209423585910036929649514696776498005863478101713315351823897144174639554636594086581775476174470641832433964525704022893478374151817475920125386252500334671397708790300377313667196483191591673979224016353998977918466498473429994157087733927762290003633733889404380770842932547874405701747290913860578435079660289549030091394661043410230973331324479616612855301778362726231840010472833965501527728083120171413153544321166635521905969922991167422776208044314291891726590505890313296255167720255900969851212638022959125218969992766306884211151682806257714643281996518799298490888006455779774647534763936408612604360250520102174697618778641204066848925709785343249301764634949079641286447405979087022882660896638108035039391550136191182538275304938539148221450186911099746002866588108658679605517797755886387770142718315536217265432122841671599373948832117517584546623700115325967289499622195326336266386507780635643990676884166372685977203966143932363911395623052943170130183793945833441517916096962011227257972923094593139898727314542200782627609262820237078104424789974915893900216982595362654757206368104031935980742330982339034222153188908662024494290579827498632113059584881511539551881132002360224962616601870682533290891357432229907808817988894744481765646403607316171582546690206482205302940916657306983735354207766057363343550778899683463993871615182305158293097691334386906700426306071514369869761083647026243454791778433518810181085779052215038691897975749152661042887891543588368950401816504925990518907666426420443279896030650934204752923338527346119845604332561289020680384351192538889624362665602732447925823023689381619422008206244203737351397541438132825950395891654610101021362219046485458480914384364264308883028317090327743588420754459616558037009315578685317441447383507272220065150500511665693167515894656590144744997063594322441757919915804491928956420051052763040635364026043118323970206503090194701806559413505277986408245170180415351815058935024295016034940717986694222677027526831520447427720969797561474363014203023718558484581428344940249763324360403053797764594008820232957915918024881793420614809064437339380497566595375507268420025816255481230449692248602873513850439088163750025828325820604447696487533939343497626294307119481621318376326950439963698224078273110089269795495824266212765537413561561446175412898983674129631132503055835346048184390540458003082944186368759076612792472790558260184543298591749165877898257880548377190578987602115036642963556649614945466857490927486972600175056175691835146960772816240253016258211547119398800409097306518020214786362331577508807962381005314067479217583003819719050413869551287632121126947899148778269877323136708792853915933888354700961674668185004138116586479413426245202022066871973884858228941404704585540772224103781885847050824554493664951578449841299584239996635869196789001595723062819699348391605027449106916374115845087671967691972715481477109648554086512848265264748727664327179055007961151332535573590748325388239639114876838423957923759645290181255391711223355187219166688821996328223415497299333713336705608125717702709727309877661141861978885653071871062339119804213604950870326556933025361781760377076286946177424016849458209109307608369167650626420121145387566657436563197509581945065064588709742108292814106432601817763907250749114600054965450397323643739636389064083181710584161247421519903320433020438150621795095350851502406633067882929799327806584167336833642614608507172732610823128262441480399831766504710372243513088379230463487024541480810160975777524445169757019535129790676706148093989612891944029518244281817294420971515677386169307663433625932518489859395951965713398956135089764039419275176276824111640023891487104183815408772286783648294279391430732633985382507070305537024547985839193759558665854969214813518364500229188869029348992441593685071172358504678820269360210847101201488769448424336543440553909642834433849616468482338105042098179892523743779532652406872664137582808053425058497852686645420307537362511593904913355305468773610177404715309466667284525998573382364713606053565035822370760479874132155412756715733974359131541587897234205539059032954386516079449885949868060215253253867857001561956201976727616704725558940360220902424315649944613821775297846381509012236847364859357449606345662961781727380849450804861632395250458368927758795631362009213544895725322651678933449235573448654947705974400635283946251955371852109634383917678994072059126892329726213805350648136925120333905759897537440987713828826613807032280542787286223328237901147847469565820138375659006833876807375264207752168595221661561712090683543296102071519024154855652167282940501753252822726934911354642737468520705022659861205909601470890530649815161995916937227358705517065009591441607941415962601800725968063068966339606866761775904029491102514199177838203212658680602905112958205873338787062349758027802026066576424098598675150371036293742934113192775762542238599298204010073486989275409422612540051404582165256855062490688541030754970892525817573846866451210606300437420919880371359424283835776355478609604266881390475665335028535084963172932790703410532478549859504251208945976235733219430492748333691777913923654155761660206282711321291504145214924726308716633822309216493484511642478601157082483979929503811860569313386435362667841732338642323819866987853215130331915995431730534866125388011292409407391635214637250840455341852471220150208094670844584883554505583201033746753532548662555715857460967834830251181733467176843479727516820083240067215300755850894849276775054069038269857322891887245187438348570588729562089850030239672729758236335076560740554991301836634495905140213315262569682554955607167068334427540667472129456916691125377873420571713838361881538121890660029704923397460364435195206424395117566517379934915900889601432268766646562917843436049080827436582349785220940240263353434355712637920308702279420996658032263144817139265957147797597097016320047244429770120033955184601068370544067057194033321366103956720098561442149787441826691294403326408369431833243242977552026038957169873481955524638652202251645503516693621768060004750631262186248782533688288451529491188726355248231263667689770169059452727497224866710509608721493341472052003025331257963128392926870043320394203089243106948231442352595663614873114578447315782311169847864956439890285287533419522803773797477256896623580503905304735243760631229909895787620679616289327296120384436004245430209348359324139605694352322549492775316252838479364698263294941314616253037335259107334746624810083280679880166191480548227156822344350531696651277030429367328950574668678198198857301142566562532931734164358496984101661011855326107733234056978369347969191099218129971638189832966077261880979275779766484061846561838342509497340283481322210858375249592050735733910662132635357616296610762567390011594959524944871618909150395667445363185699231364563115253966169422481481608506535749175582592929422659184171799144373208182110632384934559923032336081961357238578957676608729232303298917723837147520299722260538554829499737651224637437388697799624989908934848317167328861815891643452525149478321452915229038608213417708182057328176461313153218913748821298829544284066310927839082441000397975676045835060094746809468359832356607748581293693155656631532846262600084624787655152045329843931782603839345717942406044371869809041017739295201476417025673980297554969161946932125880446010174599933955155558677981894950816110724102062584446449005849189628363383546134420166414203129317765426695867114988853034552981593427630511902190259480946399126325227846568133472531175407443782454369968246187578694499750867768125886586880606052118090378048808849700010481620188640415040567476009751794053755784951716689824469032589123142250186885264144423382335098866915801251600330893551843232114267373898136203830468650343972469780886262344620697672812213235263952159093972186941541046158716186516112108331209699488476882855127041901267709008007173843962375645012988068958739111558929414403192041367414989097810171320156207753241452339513316377938934597387386904019859311932990479159063719266322455462676010845946846958512819311077673687535127366937009721882393124669972238400670229783510828885350880231404811203822771915922755500047846824251433720762116781463354815947095916818659366752255409068207953152813052060632277266843770236738615293489792241973394340637110010437967003542033037135749162455666512580218942137080354836154958357004978128238551803773466829487976387881968814567703433041650739549605526440715567091760171028380814404175867506387909908789773737928638883006401392573382565190836205323968269584903828770215504157677650779549126265814841726319371499692019075462427940565596501742540059173724883198041206991543072167784876135420736706458522714812240772559534368840141697129269090782796997485453611019765476820987351673423492055383058253121622211136035299446628246324428039237498167385016211064475956468114939269363297834594300740294071525629865016513092360207493981655346828245271979911980903009216556127107529458156115231760349125713809800485450638830689368383857346012400481351762545971875938972811778004729800363589674580082454729983659411206176030021312463896680969846017628249774573543930154196679481675710129726831925401869440298943607743720123338051672309748820197763345101445322769712261978430912037387355192040288354072544172806197846462184198984942739879491418321650623700185352723897265428173981431947069354677489961043667503441623373315617080256154921914710560739148293535330787589503856586279850342847129785005362100367078490958857877392874752446828011680065173853543455215347461179797507093577744251749202898373169269753431652094391259870260906473033080345107555944010017803590048053163742933044726758582967531088799515122823409115184642265837515013945262810338094049783670471999327515275060011055499342669444344253074996985234850956039118795414408595448389711339064320575665258148832174300034278377469918384566189644672442597240825945296314286102010764688093658548274242707389095170103446845335387685020977834396572603000021066766177141113773262487067539091088583535173698619791045450510583937320838803037489431064562956072794894337152141995930491621368853511132556421237108180516055821430823635723965717614064524729115175286356739425828053091327521116025042551890866153897498710944190616579849112397728536110365414306113318070623446496365598637827338201010322021001588890068415481605382934844254295028281333347911131914457927577951912507107872646599579587978053525815581805503742721528429095967125962066239220760694190116428430209899707384825662497326006245595391707749816851062199821714936300740473560836833280348969631144386127553294436110388544611594920435187480589492482666514315435112980712277607630411062606422325617385718726916852867542964431519996717756164656603238864768608106510554720571538580220322153154713662331549882419143490222395565607100898971751452748759488286504830556936966952121243920443546662870242621552162452540296870675995363146356168125283094249998424823603140875510968298606825456825183954072829420339217054880945371770764168988087585067106173128808299257512542026382857066075963738910165741787483875372510351637245512744375469515588977788155142075354155105719034807319885939540491239790040509195871354332511281807428476035227525093214088997636490325398133590435861474913814792917800145284205257118224281050354073573076366594662189787564914127382389423004634616156823740290302867343818370901335657284000491677191050484439570578614584783789187542238455353854594127227310386969682751740115360570519918035061534148136952408371126043368721920229834245355049017131820113289050157264486075156738592384551801561233988608964724814382441493029688013773054400427965571029969064019609736970333616927174377375233471793192715983273136171050186365275648126530593664645088064801643618647983547094582268151637033176500850878486906483602212731263566347081944075729053336757287150110736261025954841236534782175514608627022089996910703464018229913324639278560189403122395393210079210659586044003017720923668460010115101067881569930754294110641399362266051433834710844543680589784270028765710689841369733526859321720457935111443510479320477548175425719952229649948510892170884422413741185149562283214480610555684117505319998470013288990295653388076515571459022100141560600163263994674040379587754004191593334199000409803967826440032379282184553288494150961929810468816271593578982753259780121355497628535890046932442061806413197273469465884615419735694298066130258717770972343561682353285604641497529580227539456719422335673164402791823467800392808935855168513639787348001325206243128122261395712290911638990528047619132797594462831447567076109279491614662275883241735130808762066940064585621475488036639974727475245182336256242824543723822103528044048771228646540853126946006135188069208543417392747195493089150549246744718648688768806483079301888175318355835768452033767089074061070219712852060147364874296695648003632819964057440040584685766303249691415183642855375573030544321994469106359000619340568422153922823120940216507739786759463180350665652736984929677073458879892065714625152390320643777578827847714854288721955026404955402604785829539528223078761498716918024765018838873571130214763518986509085227981145277922376520980319620856355066208384520804235383282579965900336039525002405081847974654081370303438998192798241117669303489740785392641206581883921977845071028472575757728100561105226389546792868016670931905862161404276175874162050775575960948635154371474398719815559894640080634585383651937755299543687718171607432569579144977219991630328020106656526083456306274074394469463416398479906966832005146340147800313728243587858447643496341509722345099747290567046056050448450511068362009391980536253336238592588972427417600792895606995625208703033895288444676362098800063926811916061818503837390263975620466756370685772099074893349088541505137846913385955130974242875006177565875325496873502176971239103160494475864736398672423730630461078921076139738981219970205779905056803589951509696146690385632454316102166134532786478822144876184871589294092077815460681184736669615931272276223992182399642170718925695456528714505440758176780780950046721445799066451536128853915412227993509248401691610587758834772861511856243449675586614232459627086405831873203770819622863266551339699429397914388021178116058796655769148391695514484481641522429357211646718232655404953137644746301715991540364850559810150875388036024942961970261183112022235489846472091979837088743098650228358851181019153002530036185609353440696868381819828969712084180638385455991693824475427069333245711959890673532639226692845259697487132126869668014292767544138101468314061647929744928595936454494284287536940876064753020441478022635632595014235885235642322167117936173619725555128141859934743383865595850362351964315484383112323653698706256443143445841551501832185357810122069113131808005991356754102589247344867683179409035920918991078795356804680785022369602554075694645095697197276170403933256537931690631786392409920359373446605460648125249146686051941027790518019434368233775105049080556963712010080178462127478648794279586961213606536498445097733753900064337010293309825031611640303429057291775163330655372277864920722541319896537481780762669889905764624504953151142547413084388097533707807410981733207399993932384131302873355299028790763840101680809736424266552801220022428830658837824302822324199180081358137063480467589303822155784200692566763896336519954797131324531716636886444755020462238597158084698768559987510993213688112813904470592037947686443967788524528772093592382982953327292474193858504223772024120519576215858947650102903323029102777509813060513491902017113905557811516536233145524057481694881261890730614437757363926435499520263005487144117014197400745529902829998635313722960389458963137278372009569754076159847075483592687435447615695570127521301869740393431308907277490807890908554166591631247323811606440634474054688542006356548329182355874909080640933402207072336586151518277348613654324526258820310343013218242990920206727465385562788134459242289465088182304645542884036317596172321715813806062607978964651937582540684773016482037159923930350290062837043103387310771115190713220428043264811629338710353466666556884076669805760940097764989776636725719907189284218390408809581152995482870712257129576302253491984560942527520194300149049980422015002309035575835493887980156858228939854669910646418177333757598765192045916734025011900836473251594830235404804139990810157033688292007673046269234895908422656539004957000555711121402030412471634003874641438364588215134671746573572914027641713716110784396186779313933949464881479389804879781314916268579675319282108488722953395997067807290345294011893029008307574602598193565325335853400770518015402917313799235650194542861566035462017822596369591299916480960212538203722472399805154236785019510001305433785840169674471561056961164842062470753646909072533927533516578607787715913166651652455017131898965781039753263127302339529399869826262105304115602881143554338294448071197719513624879147839568019180805155589267864606468674417473964320899587062347550949971439132255054889899309254939936528801213200863564731893817953620368114837190092892094246476655958144917885319942530481489228832513886925504580115707211129860699785375305208891517839111430828245872209755288883773633210883914982305328362730762236809555970529346230376717477080435249044943117158256012557918743309493556528124184894934510175717807200782885011212815803203068143469322116454947755757181171409068384138504871073210369333204530314519716616658686157185484622767280359484439504655385978804138665189607411837262736537625538801398426682317059625550416473977820119792092258596522035093114733753929466438478733342032464360756624318604446203186981944381298104784503165109090305679869973876253718956647565717801496628235813596612857652898504566293012957786885370005102793877977805032913446277425465885471567907142394827666782968114128621067536178535521493419390189067723425173271610897036406766853761420008674622862789369498578673911962753136936024642311192499530077655732427723819424817838052953817200681921140766924663667385309039471589152550803758400959656567923996172372295365809676163043029467054935880378329073554168521757238171374964249019722373385305753921579690674823145412817722186950065028193792635771143250613919811922507656681947232729001823351534490724754128094989213014032671147276738570676078680881927334192104003476948159433784307567887117948083026757993600752863446106063683136215682566410603344835494100155744219519206748706506617756033339956508058550543280951313851758761761719906525088829821962278487779708136289393422412599396686393114860357941838737502638991898901970638592167771659350126268479373719947515791023525378954354919232261943772672959084630868833249309923843592827564224414705912782232700578862961056469148354505521829961709440350350007279163526769594936135360087829583441631619335759427384692041644882702749472786815985283129198804758765031518748281082551216051588486885173433420836268933353194372927346070736957167091896281424568786256035819140991583507796403788084525588433595482125758998073402857075197584494332119148822935590586587845090733171892518252933556491177210721476307648394245410036329930610315592824732698858984913871874591502507188694857605627473280920995937164586294723772481118410122793783474813400532786787668871132579501002791755262399646603992979029644077759411505570920920239514279461576581271669981621664123370322413148401103210720070727493674632591871245836049695132128423791707642576735684756619607761009282418724301950795876465366000870586528018796685549380461211599445337044381406448750984662038160194852893222183856026584511558122302381836699819103724820952098418841132541536210455816120794971892879085279047462727225058706599881617020268340983042353097908919089685801948525942417990294207611353564923746957688162319403355871812823395554355832465968506181823175520222453298679733097525368551798278280841687377200579422482748107723980328752341055787558801299585839696147319083804060633157077785162892029407499806646274868467560911087241598046802195543985691889969052500700553369907551441261961180403571644827599475330031485573727854399293472275890746981898048687186318891255093714564332612049447939369257752248839148656833557457837781047370290629684825196823755470556200991188823625821748672810786446712772455178811786374781048726335679036274305675738781912599741060295528459618438871438987552438787195374553991495770493978423232199939927128235024551590376377896647849792007902324995563837798829317115653528489820664967842251319568615934455734350733627833176832758157786544819406416653809395805771413537616189687808897778132737433925400945234343655796657574164985579313910521989875116206247921275721481268966753665568742025710829870784835483590589447191696263769762609024448300190592817557152241184428143435986121919408177751293178899409391553809207254025452928383785192986507366362278446847173084319443399640815724706573190043531414182885308315139205755107799915975023610661858447039300180662478422219826374983977874840241128862168722774012145896844173663556098284713606967209767754577244994698001719136403490482854526736242937989595704368351018666265516012234773767344783223542808619854754553447553251182187804470923859908114956998431967973350553880540422011253457247458303806852378402908355719432440016376352059803933992228496544534373613355489465832455207779703975540629748431371064996375933190907251907755134106515640167293313582287313471797756797749703515972584696640603331555677414220166938095389698214979257519730246135564372888968358509007553669913282483731439082154453648983676796109464715300471709300637932169784107090935756766838781383241814883155762128962528176491765873973561000394009305126131031169661858998154332395783160390998731410202661854708466746093729010270130508738011211951612676990332217412893924333813994537930325246506086980808689947123470240406166245895735695636626613135617814246575394576789725858383272422001019145137562151542468701624636896400073562747351886329711392453552145230376982775607824340120489054559129548462023382208270488532735701696818239828344003946021635485458348590705702623621353761882674486856144133950008114968089073463453799367703343382948094410260065265889829873560570754425210121125637657280429745346598296938075863465801629901284272511256881491786551281302950395257650149866923501111618330042681668836711152140967049844901743757649419680931726139881838883410928128191105976362302443851928869172839732171607598751973229346276994365926308207102182974940470637279896138075374786975389257892823476535764016234010980630522810306058461793577116199118393653168769408199519127521827934073319399267969256502729602390016023176549251647684490269645080011854767455467715344481862592047822653895901780718509916749024889882900131240192754763440871521602002170955199953028847722392324246380711630689307231540267004837417911060199571820726803268546320416938235674235429613006878086941635624003765723362253589405001659396193527317118021349646937343572706391756575888643847999774706043256404389009687423330830262349123634459315574752766988482675997362160579314219346270431825327460563578455366128396809440994310368217644202386518584857363314289641136351711580881327801368069430165886456698985178576898048485363911733426527728944683110954756071643123995630474510794724119942829852231181005651672108758355458488977766972545574444405231381139615704079133020247396025377214793666239348118196367466369889971813295053547474099063898073290371914649370418786724018961499577496560280239614024899995091103864998021801539502004840072174486450242834134829056955896571760248259122486445343915867961259548750753609886710078410557883747031883852068920887584191648751215388518686717514367175703629929550167351826021149836859727368546312051593199899249300124564591022987210063656249628226196634916802977655815113458861606682097882592679039450469885600206021084405624560846818363873084634843155000618429229972558163707145810862028965037114563981758023254612010631895065463173036770886824249219032266809926448897164270979210098426738997255142941975242218685984104929560161841930895367880117148094639890485075607350772208426677736072498905653930139048965601573634201475274763905120155382455894912513385116664020637895217021626259723299910860468715125755204103488430892053013735737460168357774825171821505448744153068211802279200426388234252952722325937740384732791086521728492124119674242179023322972447565286880238758554745188354473684613376652515994703911865771856342320218336589573580481243048264554203007062350725516347727928809704169981492748736399248600402988815136966304866481798121020855686899597186860348986259697979232600799137496429111248357053342454088278614541272003012102733650926195284387437583783838075884313991819351075914911553745049521714902266906804836002911426604353728817845856742338473489424109980516624018188059290388726521395967966589871420220577058675070234827422676582463182536565214233156736841533421000833484104675483874482257519449023273376945548961703151676459667236486822168296266697781353120282321332844673185968610774845638006707326211671078671604253520945784062631191391710374446691532320983352321839699763990003724232002901526286663452106241559032144164480634469294269794337420910072797135196810293313793141323074456832739118772486259848262809045573661957886458107932839701568130525155724678743588897508637650202887080591146393204684009058815130768102586965454324928299199246554004927870899543510134217601572192039780409859661017852340678186925131253430301643782700730029060207130280493046519163074622790341788947422447222702742487266588645022350335788150406692556192756677311372761604293281274167242634893635184262494170690984119300759111557434699345275046274368060328063205580603285256035182240107123348124493578192161564722858668445626472979962022783553627580396077017899419056279826237911158390700306484107551108677231234804056549589534253535127134534040858467526113659082496970434900314293187033057050361767122131079106140680128160394593943111687138646734546094244516405359313809044087532512485185667523551630156154597523869975950636818834440178349337930243716192871793880386692833430607857778466038715914829767103018759562094014044545976772575918703480880948458975315104390688992503862269572245888050326139251853760276339015823108652775158690805264227833206277465632236061047281603486817460104616832440578336658727155189641410285752166255828636536386421302765502903782167264697493830462276301910298585369851973122932315133528372016386828895149519220822394814866308205561075304973275107233876705465365734263508168408904004963104025378444874650140368720906692548404193264334672305151208261387551551094772196123407994041895757003136117770428158392804723590845658224055496130732086636916955530617601380048094982097235137673615417544410935626385385152508641199736872437083477357838057296391353422374783520945935025531227774317621816819923047628771960860833684865198920846182050929886759930582517992822245698000488161581762245217405813015146954117520252981280373804162264042896993009797548339664393571708103324173574004497234025354719223789204736144501043535372215508487487977637086026159390525140003671371714436214245139279041240910494565962163494322507206121693967830308746613293713715009441391096224386114984174330892456349926081064488972231133443064848536036995637894032287488746577617414615969071150456766367129175749239378738912822521571249781061455015887352730776042484670498383691259939392134569678226732483128117559551387351551251867259633274270363537706854228151779657076834278333401937541081742069863111441912105247749233132875916175231407465411269023045944729065444592499819986881247818094724638777215795084903372524819771998814954875033652797109112708388758850187490524939173892932547618023004605886082276881967329763081250626096586391790705956666272921754755183746053638648124708640309875208976412529881151448308457281246490600648183121896382899788405042462971036635373037322320331262016264231473647008193780880945911065341296686471399662348704640724985027762479988565232964898919089963794445494707666075311849538570120459881352109671297560830922925427218844244524059697968510342476989533263315024945378160153550423882024518378617472561126605434155482052957983289634953499733673711178417263200812995832371454403596527636153163917888554617367555021964276472070531716887651923707438510930832315509222375724405366757383339957128123394029301287969820047279199512943836157340022508069588894603467360249944593924834173366163325790492447902083681564396286247728426572103609082439998635593433147156298084585982195117752076542239808376421231473563210317944976752704089706359528232948630800047973383559630398104150451759335340763284359696643277029988870099629597768865543892644379972355939726238063883655043508010816217542788335596222091900665280533194956004712356128401749838979259445500230055520568601972763411173066756158112465883029942196629754476341837122233321383044657677074299675158707307643042253966596136089244768650673071195519289926913380780248670262396700671931574438479294053295392829562727465065779740758709499164255827958435558221260146960776054528739011104832691893051501420519350061921155729707074134206795981556128367759511829458858678140062147956045165583845763113078882797729769598739246981393249991458344809522949636167766273348058930343906480233837925973316787277225879408123824446793228212220844535980546457696778879851635641077822343744944387825274804002312580188250339493305615016607991680580891787463874014906376172511956566612051855631203943965908000191787637093743445871541219904005116267159733019597920677268989635589423605422117387777882969448055789050830091670914549902440999724887395385426308322397692596431858984353733595679762123504719444865611473146872157695081669530197580589463325540210196089227790140187092086033198218591908407354307439843697781101925376999032714628617490587464500859983865783061801995083998367345551079423542059571016779193682222845429250851787934190109215276442590548651125334653136251981478438683286077464023349086747105683391656177819705755342844449808886440500621194897246727285551768440502829218753669044410243891331669385038863001781477105230450284007835672393214711739227806144773518081503152314894411970167286945023922869350369920467606813955335611363533277600246118817089648735309080471609570072872231163769693996881130570408095295396481596923760669430335244753327988829491541395604485227436360631608840836444457776066811524959988192423684676358312874957986971011694276563504017341690982510557853921602303308938584448184261646522690709542193360314073223486881155234825081844284195904583289533828688133196220167208505948223907152670789039046991607825905646140669402497924143274169929201869061043753786983428974117304220714355828393613158532159927146777614945892130695855090357438436939063988423681571173590920804330801649283573295634670291493223456412426379930490651493520248544952402545168869392601062636935591172901687755309434816203915419119268681933315458088508180181012321726630497577087510762406710578440966497300324027458213298689785553147269700193782038367481171762361849779951273264027101883294582789653429812401810455584720623005934058556747568288364257087857714746438368771659233488979679547511855280118512967938394652527470280550107770822046510684316120988876996301546658160428478339261162407411406513788857865446005171271211613778525920998533228980851249538432497117358350684374879862813433331624704872295243103253621578671771387503059451360275987209890876822668376715326819680751227741777576249530057779441074592285759699333389543021934170060030355546464731810209390887896667813471382933937970773228931972748720290978917969995420841727725736672753411803605817300648325373603775185735621705810671049239497857738677677707186035464400651172498276942674748688664803856191846142052077023500477362898169468186284376883663040297498297934566290111593573798233659567316004920073824964582071989811509674452149090059578744268160255448050693860754614449063444822956118197882266693137609115939095326474919712325989926768761024735083251763075072305214001044149046046499108878684136493478890317956874677582214389956695649700303004385729219464243742587248368049814055576872187365636650985049885115514820742525536852952836595056014063045376970165531798862656728756208264477496873595518626461116541478320106385388790182628693680634501602356762628350045173972360835045532909414318977354561071116094114774521249052914115831723901300325283323081928366512624747690722056000467531917710629962313473977578822541013264165570955843035701440540944273427810255079610947169462158795564571530212681869368046328595544610938422777530606447769761735942989307600672429913453116691580299936010252162512335468026576543826176839648561755619270382912374760367088150919700426687632942593895133496766723349249747410578969372003005379580488365796483324906499742287912668182736932087249388946140157025788807291915595087938757486996818103102698354398082864477207066301050079443785228100558260601715584094392643889530821457463316704739271539602379018071505654465314923664682816215205251973283536775711477445740406537474451940089947773870584598311889060025228693133059305032556034467146607698877790972039155450034167451703008919214028493769757899911132012443277856172004294312989038731292859891096765893326822912180873558517315641264891618241634708127176901239127455129522471290444010059672504363658363305204883231977943973177203225687860802495120632501498185855206101434102402896772530116191946775984582726775639739090139497807697920604119244143686827199839617925775611823293962016108951435316720237189723752596232700063385546252886341253771839660948379182066706987099641806947582077593988069970933213231891626729764891994480287888212267799036487753347798543679865992485530220007559760239547080220728952840688411195776214515767466403383636610827645448950421062307923988269138100953653984837495153969142144735494759424030418265084660566278279064568952976933500552838461059967376624561532774764650822580895335827631262325492980201836560791738860058998367450196269530473534213345895633946029380684998510492156216989711572464415121622644985175214904428327603655633240856274941724819983488697042720766392075316482328605662906303956620111710512099929122199861055813400922684547365894892462498193686893881103509538855896152321738595327463641195972640820428750377456935032765819828662862853311264458109660002722544059349087776465186855636219010569021363860735706068609419845281280182443632123758270447986762941950418574223974889512111181706325413204257919918179338210442623872255464928628757132997749963856100009434600041290791161655212002989298465993039356959702260958507969052173492098508082428178765228297915761901039974632179532294413064874256188878813669452169143635839018870681132860368468077675976136220685700113751349622650427233705535886876052024816406269217665571522183050000921642994531949568176944958697350763733907862405605991735098907749221802787946408214750748670184319110276305168060505723530458993629401615526855197335195392427351779771252037545275779455310727271259670049389979624058401064089107653670063065003861520666294305199772907196381544026331026125172608478488748952717099084109433949172856121739564762567341670393382481129124402063367146551282819559940057535005755212845529731283893296324794710240883007272738247090189920660743687025401622632787562546147805723265959380627439284106274315756600419561378066815641602142314318530422097315291125550781921473155496827475327738430701907495834612500521299803332990911151537502874251869385638201771920102247030168331991926771528508869425344680318590392420615960002827896377790727880447853226175544101230662449237202368549837691777725351811339530844692052815728567465439114856298120116977494459289934497620241121312431571833028123509205312342307489265416487401687102763979933985420351160940722746331020017691030815474729645444596142798799675329394560858822249174427628870142305706494999828809642321350785328657712515073868347900034493631960080208928989068625129560112092813128725549199044935462898501210747055676174867787622803202182186224924868685401157786217978394700608850703674925240843177710811942964666379659454638024272361472520656380472773447902074453486510859058889503435538670812014608058144325933875735024810552479835737941484579601290176634351986037524810304997535995551951285954170484889099909241723105302293438364087964757811956650529930963547771126544158274918723839227885534251426689779349458368409719429785187047354462180974513099567822059945369141953255044040692326455673452499735506416557024227853012572577209596784845030051780708112831642908926878097985626529628834862258777857888744462058428105086582163546969840497332550852542348080562395953998542431595825514908867688001051199410388656148512037643254833481212500826244615802979159372852870411330045211445517534122250565738801966383696906755584988175281259153018481794870176925079527543627554516169505488825959015769245070420338058025140653004926186014064578713072173450466303479506472543973891287783686589968109559870702914182109475798127824878049964452457351125581896823793333551111257444393379023805823907346964490792657145119858903527217359812759346497694987905312843021984884345599083623208220480607152954609378230848918485994638618670107853640441820952227552042178697792820317678814568096325278890670625488302151291521798833818533630217862176135676331549321629825124024281855590452504044654864833407010684969776335984435394851902952477182056455874981084492537697461612662190418081039696593936359778416576160702015039871068328969620218053785443602380482667503415763619818188700993706618435330456099197790023047926080076530785860645737352249687676468285587893017180115012379249088923957323260242514074436031260181610167011252844051677387487625543410181205714822730989075928982879628095835347659923471000873200588377107407784250621843355427969233420915091024780363349615479879895589431238365172721716485981959101102006542448078290202449883749434035255110085762592616452642521039172924727262793422909352137491007320842387997567874523755800652534425162789005153897726285219769407993895242251092271117939792816973488257958611259632435837472850690863846996555780656418045885752588220779037337123532351986290769319373609119709429943288561992102477503718497628603180664296722022718335284230580279278022050042253915471878419983991460849775048058084657411399548855500108642089743567827869052234844700473959588681936365665230050756008563913699632500221858178790930802604064515712146344914474024584027224669495853211245441568180546609493217031742402974167398825388431817365167486385823589810400497827819066308513717362314147471860419108341013016520010229623291926807527479359996000160157662502301140518593009563130400304936700810371182212366717164094488186687510260925138270187238733666874712144648101686195045473876354192610789308440880404273587981173766658685999587776937173293045693959815628950378466773918711345877120541297861313215475068838188163369338108047199500367046690684783186889301392257222601260227806702387252520070867525514832897118163958922380330910736578948905940869201177130089019136354524722301084533096967776053406187124825714246392250221025899312660502750222592016988867973347535620680095568537926180643632775349282049162654187207147471372820825952087793464036385072574626401918445586614609178795303833546181267722054992259233910289330702472395146340564547096682991632219648086947474337781220262629820138302399976558484149499657589555444262340501848373071987288996929122552619213169819014622180884476750999292419534469321711106465269658748380374785581779919574342276541575353723301974664687975506663754149079030121584619740189916622124420546880984288673582017445198276984249656885402716381916640980268737259290665366142868589846582022116179412315467092197432434093110960416552907017756742927454231371334248126690182955946537050875539059878279963048030685902426901312860885273076522788779781385141565122235571880111271007598818352956841859908551249883705904431796184120201996219687269251230707484290234654447700548417519927253021945466822465189537800249053799273328665117018281972476109455970328284675252802264494796123548958412824373298324398063322923585485737379563894195417779336067168515798832039874661835773318206073434261290612508381262628665791387138090209095827326835451219740290851767450058778866204907218254620166548363839841448396066569188925312575300439211694408284852987255590339236309143398837154054172116268671483167119370499828675311519157664386386291625459565789326261342913604376267331858676597638404166599876531012427763271513545737560513870455221643559368629843249379866980196604660757640851539674407266387873096620622028140713686557901604145542980350427276159625412437888874447606302776813740396497767729581893117900226383128231354222373778794612066259938730461797529496874661627454269137960600079344368413650804453621852911700784258989694096048439420067273312207736594239707186592875167677065607499840090252302367804291626503062094953047323541217088894872707881019194529600366973635192317917088864416647862831135166484529875593978314720164862269579204729107185473638862755374274067312042612195828987305569977248582032435133973320235809636055294321130269726971835525957327510288461472407866212407435957394443699853822902519513787074616125768741496420866421602142401950405437327589718878172349256841071654761113169565794295040447912595314197048764680700337790677162773366273460280747106212602354345622524480249108623486785920125820682012293939369270910782448122062226742058240008841390248896678253406221275022903247245093173498747860316763697078166163650520304297881693923851955866441669365188283040805086824888018831181787231317472579481798413192759283843084533047104796869019106727717417242947570423557787678999158117865379292581525646594682618148829872861500258762085411865325674507323391278435224153550637063035244307305255599411084940920434565378205097072850773140660755279801490976718584626866876193481134665201322736994691794278777844780178126195189550200165752141544881915629916700880062881324953495440739990097062520133159549976960069318674262225353858543657482835806621622778707836067013447577489125187337063116607095977558360603562038722199373438543874961324569112020013122392242632903978381437929554186670997012507778743223992803469592283329988057264486465988409186900418109536681577961793830236142045832566596627569230061729938035642014852889257973856407605934923455986353845769342895248212151763642406980962297286494374507266660634028413138226807260661230912710966360633328044691483896385400915825135410447727499580424947622464371949766061325492367694466257712266214923646068008242050897482563642120534648221606641022366567685319289587237489884325177298184094932586562575317644054540499672881858547932548110216256840742838134923808542362906781164747881265435962304971177699253962165345505056986605094844810158262506783509554676693835296417880148193991174044284878208379510255441603412254055919953272622952156034810688563639191602619395735507590193781575025419905911863668552029718295357773510949417109930155775883327825611190625334590685682947625188350684220326420790362084921623540478621760713201501038073159023687771256337197792848361023570957139407534840798615524019270125811523397959621502747303064376136071489401749321873293619696664280071933297259958462391259816404929425704660584951276334371506092186519898085034454154276303408620946693140235004041582276364250761596696016148025316752599945100139432170637433258827298089589634407735885905955367699748125892226485138925259895079857010435440238528570318481521840129799413981368210400016909995922198887957064473343091655148018954318194412247821500363886471767342807391728866454695523693407339942644005059704325727503336636861239113580265982544952519429831909866707791236242476070804306588121467407587161319696675950320699494095543568699683221337136374608390981321532466172653255205739505057810454836582870575568355312325437697260104486473730200036016128310947593800206981842723904022883505600527873627695785215387032139546717993047740353496082829199998360076524576930381650218655495095425539931943685201170696813968538635752604887185309871508346522504998545680317697100827324772400240641801119442569468581648563406598635755836521171665012284326796326104348639122234447541777455482617739280674552750094922985082846761933983534668645934038065397479909204183986599615599208604373131452154488664049652189884466111420696332739319435866412743954400112281040654121442428193937608710395223455605671752225335930495486615110722533695169413217390950340460667002207319211562422910893567196276516219931947437874528706860675777205984706125465452028802706960390572311123570394955779681177868542408353160619931036777420325205463092116565388442624954145818517399690715577948547286591143966583937141841561769165223429358994653236994455220494952133383261212885673240053505417350701072670857748070331305070213994730567818227990187366056768182656461688205805849790813279159548227115718689691194724041372564510165588920183146507887760421007340584304840011562546477288454036463985933337148260657647931404413726616334407812924667644043606463536664876917893170333530008753944557489206635392586444927640483574457783830333429242081313578546760583880229199776053154929865277860607028584207263771087672063226741359789406063151040673566633270611805846355255207617784981883429096677270274592551877143056707453799655058796116862228879610525524499456718212568472105750185953299455278292519860027557814896398552272215980603806755805700189964540497470956028030524053849074566503728920489631836105228230125252990373985752252114980612235673607126090171056539795803171260789932713391637060382743187762335530972713581096216827217329544073634153653301672372563461584538454329832136161906125298266635031871018719804979601983203957906346142405159124479618922575948261954284810909791915778144193158472886380079830192769192584459542035847368455741592994339047278424994124288866266044005522670994667085250219480304114938893637383244786280607232356857387077655221270257188229588086749075118999637041731903209241290124555403061841453538642545005642147443950738877507082986324514782415833547203200943489375125327800985995499237999571645186983074819368977123236653422433146918451757486687668852724918369340442288638863493548273971921009432682861120919129860904959860346208961326934973058976052202257812251911087816166457783319331928689858970055439702507686673815813476836095336891123244347119819461929476009985660105759621573757429802960529496254610689822872447715737568657029936813452222421900507632376641885391049461554228965599793900115430153022819936597264276549229813901333542445785104511062712094621343801993616536345804226711463354395815228753235525057149366326847276055397218346476862359514293723988437295559463753505095618606742613236032359692074696670157919281027114368252498309306896739184797858406021157448894527203305957536023184271178767283826344675285266655665829079918940879973141544681198434312532624312374036962641326590518235576962585596404039801114444888772380459669931310813915580970892296450859335606894970883568308684499180807941933708749335835012222189101177550045145588454999827111600987470835231629275422892345880953326583197096494814780065726233973290747814897037640673775990617742573685634546917346734896869537514252323502054234992970370468589333931188213064762563216896538076979452441012908755354884290416613418827711939837566807794049385521637938757765952923967475644724726721889278509991702487446300539642753855844754344295237685820610800017087425552266835947634167590887940308240336105561971012205094380457163332129800191467724753340905799321535750016174658807862547213292679790147469882745678998165525630797748649292868568585882809350978322713459312006741647978768664807566996160364622534252961345185983945091883838888123946090507057466644583540173880882212655942056406001539822690856876319785840220018998077469769946090467730852258522684458680670148516428993295194354809934757267816812147712915070639335304027958473133175207730268946750938925592044534029116633025119328265032957310877811652245744927991619812847764260122052482801410269218838357903508414719507328064903001442378389320442861658781122364856217280254788320616049985766164829317075075493966768459191530785772905150151788057054288422694219704454533084742969506119050024674629567199044465440527700153230728266821837873116561562142573972993279790839325417276297504550788858376779237644689600655280158755167814969370209883223431428061997196421533291625953010496660686806160699053994211161044916884349367745785727183468088351123204554165701765856268582506986763654910847796037643313331785650505699928666036573448472508460472180511377535134506661406830921438568684828076874886371384285512871898982450126268586739616255297974090790314560329754018928777127678061135296825557625669470876178089831947637478050208940154740038394393409992295147037528947531553156639816402364270566922177660309579631788431813322539949747300217535543230846329094362027573095576953729303321724007945839801654318429916871017732810671088623904282740595362575043130785877940347777045162706121038679320639389513088690106835485999828939433460294185394594123417660744197917596748822127639196350936887845808476522739097101020885606067653204773819930197009745423301031411801852298853801205104092881231992550647487892813563317065502465706261010922485812708273879678884336171951835811306476549416902749171250260994734113506646603291275262853585440761527569259955099510721160896398200769350030715552814484362589941071422778566073234423968831651390075519190224671394109573153522041498732547446716839730843516787050935565220830319449595115392686044168836075614314491103456649177305266201219380967083489287201920794435500547846614880787512778211664830149468630995981246965489721905828966043363973865186299607474561064789606350925863612105605261975210600458117202364240101934610007776768032995327261565500196575339591181226323174124966675788639445492991110326244227454224638080907704152766991332361040991745501419769338628779527381933772313973039514705324913824538535658538924366655721942920286217821653418598403214190022876051141326834174800107374956848713650532989180894824095541057047238839793960075685179241326067957177827418251943653474672703902353865537416161992020780908832557407867285437447931236665136074141191167074415855024600727172149318015869958891365174915649990530610889409166207017338568455246118558288215270394335718905970881740417620875320624378474657353995161752313506982834260660616783466697186200543067336681998616070379712139895414326484145142909791174088042879402557505740745942985731393306602061596797757782991403761019413325775725807607404163436913603261288317514310428904744124811881825104062727880877116301907815615596451371844056030672832636452560188164883505786843585376876217516432765033070509019370989618103581078996547570883821698203362945166348622021778606091508573818916939245375987788719555035258082668491677678650796589412065628205986909791959773546142772159135338587929053524984457823918455976499613234989085834345008355065519585845125408425941324681156658614902520643494032365281648266708445801262316017389285974657355217112416934547081137872519170773190578248969304948376536227374911040390868694361973895523360979991664547367122452149900153747527375312285903485986872283548135726713230691166601213375755539055554307670458090802876145984106411923891640025255426335784759554380647734901629680965816837091492813098578463844681302537504934207380100012473862814048802105758357094305450318391968125788425183031959540549614042293698458259351614875136190011314502802790222207116966782749634779357421576956272978295556505694317573282444077310338626021633960305722000345198148546737534925204952772715144524147130848129946175357320787355945477676530745251812490749043587188308540325507962925343590149529665836847073426532772625179688461287627225897897587322101610485064817292152342905213477403656981895560790162514968548098993464194379429208841169495121558094046682242276189729411875389111407456980672187312876276179352596091571657957798009371216901595380081361322120241754200622708840370278410507029651925456057320044863198563148483431353172315149500916067375045229221431840714305737941425691208002750843647742296088663417337512890343169822406014700733224657447969664433985439497486733116554741506529309656067881531246615273407066638709661964201988505300991003914068776782646987430419502219504971198167396941335422240381863735294812214778800627177557039566899510495974737504370094675035140458110949421791396594942591622692116700973581968282629967141349835655107415254243976715698494600925069431720084766266860484605186770479647608530269610478296459404125794877133022705022659637543173800443786468479274306986168112798031690970000452778779125177628711594381285771576451074480871130109023842389093439699755493214010343650919083781245561986433233662439400687235795454486810322921056072302534667332422338108748497430348919320218744647385667146813950494058903221180174022948297332089713858274129166912315378217654372333210870086472229485274465742307350206211201946446980103386335728480899005885481044736385084657372276085237472028822519644375241916944396256433589820259331102994863196649077600190944793283948098468434358352850411606577908047469421775025925611666652442994145633844373720304894156740071419699341622554327546599128346871515855446138523072324736906319187597052546947386929859845025157947229324972360869766313957742912297335458038741115578102744739161231039770025748372817923687731531964338860275614368340670655897347975651216437043360838405370087533924879686327783845491976949058163687687875355863852016097761785203001666223056541173430360240457926738977999963756975414937357744961091578209354747387515362839589769480231006362694522687341859416453462587045021503367298510156944927403486440503244073883387617694476507941881136293472143830649191038630770523217293120568070305660079794506715034390356001768185570820616925243652335418075705209598474583842578787682630908788324890045513392440358601596469431976781587918354443105320753091495335689512777067732937796225316096041198163613814282955077959468954765382378599522603926956274215645384405856145939353491287961936733557200560958624686566883929112968835510099318305456261615849190102369235132382169600447337865605774215350906400900371818908313038626075614542007088711534703911694914176814485140000876561377219150859695344077009745220509224544814266275520926154802735882802805210076551549331267210684917725447766909510962922273423437406768386692501608466648318587749903156107325179034470507887180036924551087244299845128077927834447804979749092704865892221691878423952949203255042362111841755631655252950616177481806216365012888949438625446212282539899292117580631089893341388382943302226462099503734167917076216964309380262987245065334066598702205946014117297332555916483510911528155881903953337469043391626283650178235147820315681062757229429016795649821867178217909966837485135079788021176501171665217931586057487815447477123227150902566109240378760430784833672032458900743480975769499978270280064959839199906759505565775065194571515572667029751491403219262043298397318117701377549471179586131692723038583470798028823683573328878935944862003789339026382102693836064948300997525552650873502376279178231650634562352262243528727650700093029230807406061965459878390568489395834064020880943732207261933806157739756974064268552475170967114418747668244894363245937874554565670078603567455684449438464013548677326655409240514589866363921015797167934900695996894618725291385419222483517255469697028872697263183408721843295580032603388648033700842168003453600204227505433303457586016845275732215246682341159303407849197927191755581988021278313934477992702927458017133733453451102691826692651858388704181837606037085217396120298294477952221570185835221780762017154371618380832651225714591457297062484920397927797634373976195045176866444560288473156910771737886643800055484215063819885842158385446088108474921659808044040263007110889077798094663711741088145384807517163239541946120371568346234685113075286940845897066570253612132631634157841949358538665852021415856284561018611588642835977010033251099813110053697465802646883041758287285255209603083541225867921314456428589904482463942525335261820332968426188551847982665177989734130347787606784246413176629168789544568861011564754673544025965216329999945892055693720879970892980996530987377151071425053777816862389142772240048815699584914225733163976377851868229607492482218038003386198639800790300233486196760829106565988001580659561185439622249313008763919210424718932758059510431184219436524844891199050736375385511232050249826214004585014087213886633708576804824142792959656051707225222748292355866612065981459347922886137918540803986072704221547687442969146213126273742495190666190612054183438471800158981142771813022817775575151147120075661408619856838856157720561583433320394752591683127524311729565880283191174305360396718274950023632669060953423043431382688350683024953152361997425828819877289059674508027994335666473837289340039313263336803228204495295727633442873752288271429848870369217556471766060147818022165531165753533257550713215298619126481554922257171338305573381609904981026098558170714781556722011737676924265788192435296613511484329248426439780518867589655633049474136289689554765424079398933828130858198511567602299376891089117089096250976967858966913974244715108316575305263166645292144000099397833891330417750515924741650791109551286695996034329946538062582201507588460341547997271930931222181823344094614063155186360028335923246777090255602481421483450737832118120311749709009719449675610607306432058629347873595570053494742698254065612553771037490068037848402614556755822915738596697562691971100737304248260235519235973447380308677056776909324004524368993590114726107433601282898206582174698803844336311364868493289998077024850593527678518139541911860120058908656370122849485572651621533169466973344243487573327607654321676239282882436931912519951677040249816163141288880575289931521531408982569342341874213870681810706169390110811197873598499304153517748218614079954386773752389606123061773078030407972128353214888836879942627314356349425107169638955190647060464764709405774031076509226590622491737701947029790466265555436346324498818632333706135080714677428784398911290045272032640288331619841971249927064408618014353007887172749293757207045598298382771408989371809143082059460565476622140652861129988850379045997851717435122057783415559816105536964055825916714096944209859338574512511797655889631747189836245814253153044910357885329457444872507913776464841396679689471019635318501955154961697598160501493189533625849357337889737454331182132271999997089172277046455225373267432844453814879061867906136952685213273559467633862165628716751922748798676749017036168209628008567955254569005053592370184465522939610984341465694987428730439093109031214169882841670443136941522856738053017260401315207966796708062884000391456397773586248549778644624292503916502490923548440931910693447913691992971589205513088006435801979430488363730551226027124254415708722311627010077780625581109726199476886831477972967486073393174827707822081817155636459880438110363222864040481586487706869784715004220885990924589597874427135701512433670407283461009273364563313789815432677484240771029762616092655284312806277512167439971142464432179279738983370620571407458625122765562672181220112594261263450847398729664954709052557682747572109843817098831874020168700553473005942579228199489674644501439650545729548602333005394374378342249701125671883908851440430191790281310167698112845664163772497135796057773944366760768393157747192986343513748767323260560348924682281624983698945110258402548309514201652309856651664372237942334340884855268926900914944096843524157650991661735320206263808503127870029753567553805939816836927481930440077386008886894707000212861398707393726817363994507862493656562360612603474572992709081956771006754727710342782148863243437838066282333980001052248875328734363385518022738405923983943765611325764305538229468483630538531040555202591263938392301095897735350927859877352739932049275817782194082801651801085067663914639735995190236902869992827701313166283456954187139014631225096005660309385678790497558272083427147172751340778932369991691742850662553585358231887992182028804536060948551726563622351123889831673199852913970349367950136018926777132736043919890652274759744628753621294918824775322757488828812416910219029413020267575642616214006385309584964564859905185094454982141782641713007707669002510232037052780469857372548961023198775340275073927338408096263719759856397963996811967969357406898963814304617988400993657720594512912976312500629028752346331463257148086572878459304763626179245518470897574105564060421939437358331577190434181494693443787443273829856655499695198705984164897943080362230279501009915880336421678252214968520032675992890259310486403418858219748356363010121471934420138192477076257948149173626761804568293490911395504625362614101661369319908127882359461137770662486763640254816092049941652244689629998565043395121956404973739220599697317951835021989329128652277089080788854049610835651975955689836697060359331329677342956346157667396947203679604492167594812135289943029329810107224674403646939842715924077479441159371542389000286265812304845542708504909957087663188356508523993517022107151220034959642860870845455832310595222035758563334724242652892348191813579966655577660764769392710749124073178333166035853060798861799492577920819186623608901900798621396845273998543914703599119614148996053418908608845779254740490785410728952707902681481300919826104297756866008402138425713594101292092974661948010323941870054902702587467094727182613641470428425882051336774846368714653258481268376775829728381941729348821731924541253050128904503040262925932403533342777027185637425008166661821800696499039447928966278680977181447800422901281080563926025020608880611379810350517019168871068179551909968407249925142720226420192225068738209450330532421145512358010669657323580116802307356145284973387771602232715721494025819903325623055561400559446018165222419471478102528661198234565806865590483962764059371230766153523967006816348365139922937664168182421726703408699634697144994168798222256687589284269592100803756784152712409185203965139427905824083605585297529066361885510395339649686025072401502431845368711355807842490689382131112819583884984334279772657544644491887294081623195622657239993036433710990227062813235157315621604966525673073267195988465641723917022750802803801651705531558898464950995402502753607695666362089328575676809537513082375555625258934922459419077930195448615580238250065189567162935670929207450514813395540675947331959362828560477271146307960214776430005289909387757462309541226584909311165792330964743109140817695302328743336452818240594224943067593367963294418009889311642190674734758611993532223316382252934857235057117947053608316437403289150649344839990576548468797514646070162067097002402865311467999044861262501352481398999358804741023234993264483884182789530709956312581471665969442361391953237745427673122105378763317714988291874126377175035126157217314115582573791033590392034934271085236793052436468504422346666757788817833783016927485682865980506194437711069495590515984977448324584585257291732432376719103691761564722670821597828719734504515522441750824258929739706428192958881971834615853436162933479530684443882834127025094943950018067258599905565621747727185476932149075153724651055697767878536016342503116064506610010857936187196718881224832190175942217429661317398698429819529556462654129344423378704297263236942483831227723224710053697891089680856650514865170983153408245410638411837451158678117002890885808968231495585522468241565389130901935940019778392648423691115250292395196844949352330328297703589014013989452791081336852896640473248538833608327729093651078415655734603815078986862772953223557463369541005363003410584439197240552259808914732754011657606923881311538002578561802098295343000423910468862079553749415942362050706063851290448891805237931571211552374737413640173941384408636080560501799650211235338862509965206437070540949051137105477260862924021702682115473328698188268847755731104456030329241768278942507503192786754267256203234246645279065444965170973378421104592574626972685682914738075405427553018137778573440529241201141956111884701789612185790993063624878795811790711625627128403865451821863127015844774841480576431273850922660125871409781983250520598605436381696170073249997609675337151444348136528573378594022720652353331670602912654786017307684256285236256268487104481403313384833098868281558562022464619063542850489613470432745876687148005381298627801640934350326409917355188150401698974966595423720368543117427823613121959518851411009554625525587112473641272339587804274079887932288923475354606104513453422819142260679206320374607607288058806286855001128079631595287375101127647646554075144021899767983626981032955126892645026969226864317540280707895357874158481667985914204706381270939764382132126490807913139268862308625830285288936073366650704197008451700797290921924221758729075756818033251741215456624649801035432951231436992113998972674704726303838402945877462440127289671900212580538414514241250333278825885442242645748174616064628544817856640459660639447531454681701914858417122019707074033420603042741122700705004181854133273729253241503441068738916745810221711397847037043883895610918475871176437626803929636149396056120110177019049359434228101126687226912619117409003328456773008960888979456715611565722054298428553735990436234112849661172403371086220880954890921313575649825575973380175493774863010607444605750375781134001347229060758345713122448083315797196231121885320844988676026417813054415326134293086661687967056727566091409890305707036976367577678387732512351002844885233189572581531551956101491658665702322837846989863651350816126486559028218095884160496950201057015352175185869851108409780186498112833466725076162924519793626777363942511772243477397337515715371515778578089067514145740958883244872216135190590530504985324498339683968978019224798127446497311115759494012178242840805764616137450413479670590087281805012970126454447862750787296165515174455285161288570991509659931606872911679744008744828819069704850488106389878494819784154361872692991070459601560160220368765479170554578581068923917251392734346034980712918298881885417471977740353561882048287924286539282218930867402123275484383439536366440818646722689823164865046544051820060615365917413240932775694131521845132188681766131879949942312636602905103153327985653872425254639961147979451203614863769472252947131099710850534750977115589880093314488708028336152387718211223723216241318832933077360089028274618376002437127917647875028046391052923783156524781817857557849060028310090212152788336479864059090829180006212949912224076605838769013239609363820127307868118161072813299917541308597599082914198499752332387301756850300880965667013218670890877782761445475436306398765861583466848423163005585519503970507958075660668489212947804843314979351819368658266598091114512923693108832265803651369192187418321571766054191348011835692463364183263299461783627899280884438813647725839837817029506643949940311361927545072579740199190075514611225347258305079800213891845485530063806475254499691078023485440269001537032673225499002346004578292602836316709476334313069508679706459981418897102177265812096827821412273931445164902050859336031863573084805354738636013248473266004840085727783505825314414503132492384820185165195283604986887618547348389304394500974344693015192012492006118151947953955989453345820520255562197256118526106963102547396080044638649733562041971474749256068317613862430130698460615802099687998523546927593008027026193244663741666369267965535889574662729470331342253212913018083357379316860629008794242660866174298402431279537617496534935393174767689202032617276859057336812234387621008456947065668979509718378489447072796774949625935644845155413319104552830882711338337894923556945938167866371229176729135471328177758125943746652852006313787639507886782522797577505589518708681238971940602475324956773407385197607537448865419786766814102283668559681002178572647607533622192057865930289327616973737515846990422287189101848823185505818808669821803664068579816807381255591855643893690074838757238720609037254851938306073942574820016349428970082034936102372217234482139064325325589086123849820352974828535957330894172891031351638589413860489339932810575863943776327214926829967714529592974485754551522370429248364872943198967423756261597538703481399359894990929837421800664339708774911319136860239136402220992929011029607325926481500757387376870249043855849571540965088463281800026019370033236301793172886660437177694799827394476252548046972984317267349399407530774286110976655193556876629517204469565626093497348013621114320278746945796839209003000570586855324534207312319509569863625051734424302338213488514301246439858863397974547182811790265507247620531202834344689892428098220885157945605326173186525594394117046798110837112551631780169169971018661981130088984810629822261344555545819858398303528612152114942811900309762061936349178407537924364041123600482176748703026565153639131133048208929645729906805273450043757334007855916910998777132163441413345297419160521605172419184808515053067043375699899259799628659510032227159870765857591516126236956131997069132128491155216296190223165964591760822264546658692377314349846077103328043628096828077615145182004377254307929241601804502231309590144169673448147328254901155551210667275845418874759319012065070225190496576151811263008180017635157345672405076918649642674354132722925897438318857575387103497553390759643449213649239025100820432808864203833044958630598830510635715097937198147613906310479491670290606927315847559504998808637459134379887189708265605658253166898433781401488956505385144515267853415410508596508736562989757799676892385730037294146521750468211194176115331629799792728689248839367915724438929792641496379293007488829803416798090558906249436917860470684673413864215253162021725451534178471501930735954885798590734474021125286365467804802552978435392964217347713591205935698228845572765366278689144322521325185293714663668424265751623071306947725108339864674858742028008586494457911682742855247215823802090551312931996363291746485847204141130196354844708843988138887851983208918528621398206661807621983681809832202068573974597113923500028911599237662297318734477693955389309328473967701544073991202206490095364990073376837832945126674624265826495607187108594268352150478094723540214342876090599696698390219236427527532727007335459024680198669638882449619087152347847328027155652478631688839148850792340955648764629749633143333928776688753057963164293033667556635443928854866959318721178923266031517684350560849572858325173826726376867754932525879006529081275247412247533593457291576768442931554799746139202186260768289679115515887325063316197400967155031700950845447385092495523569187468230490093803510247848615097562169785473182756139700324661120452525342730337808141925956669831957019251913639275320329612647336183736334599236703057015843778966640314097888335752771160619322335613875993920942042898395061085832672143862154972506715002865145573977013249987006496754007304490202406420122046236158302723014327236049516717000870106189419062927489662335702433458305091491356480019406181048767870304078376137481811982498175848564548984150976108510531616775947177735816186213839979041835861581903330970334600951247782678192481167475290265978465393418769649736483757021555158049045237359803164738042661811747223075822989394439333697043454884784843017017740669830100444256356411515995897875431739868652050419770399994937173736540470470827750662408869649577340192281285848915043785679828921548388413292655129595927349561206485626038658050821300342766650090980213857035084124640403540323982158055769732869270249436879021209488139541997357663402531936664417633537327130398540296735832659947083763925196919724356772828162779934020107081170090350809175964082877593026456909600794883905688486902645912120687222084222054907291756506222131946556556232764264913335560780696415509255979135930771840472155835403567657654720630329308814485684359017612309405973861453634402416732576291929918412161567520481962414677872197962355806406841919844786593254027880234127991117353059910164558976428737940041834686196444137538556308149146472119660384695093853717649454837440718842239373740112329061322982918486763062963374602821538952250241870650473653993223261972544320900196901415685003049521604120962242094522720811019870084119695933213554730127052111819562547391655094240527954970124950785303559354058855973467986788259206888349429420434746013927645753212736250032600266622402441435273381283807281240703376729454073995803530014830503759539482895018997721329286511599506109529472569731363424994153893714871106245954793672086924627146882201204453058912923272964473590414661178535034800985406545510392222899485966475713156214884697574699174700293453108659279618545445699604751711253709367093751935982103175746608029172353045206363145557214068049653501226407491689970610392653894508634501914900192668218797796968316839403622640046940561301406820362277995340218961180802875032564422930701982282639367989859284279002585389430887728551906962382288655161355482033038199323015205259468496744358772887661583107343838000615559063468797182914878921267552036989997395178409314954817202825357579203424203639745564910790151683506457608669325056291022755829669433454317907894115040736516881590589350302907258422508527012997323605791275442238763194791483512209531513486802665222517755797454432333657501980011854769222055751314266303459613826259097630646974193226536264214510060723114467439589798483843241867029865666088480642707347572591880788393912789300788343209105010506408179356000800858562343650745451579624494508428464016018458601682818358033216045055911874935535702880024977709029248283151081291061943232970771405246788310518650318839236499208009230003268294528768292816457186626093053085099699006779705319358929529788406003006092140700795507147050275226900736161965854661954650571569278971639886856712131156807119701978488098724139801685803112289387406651721601681913467593544432706068465926664053151019034721739879033283143310021842946913213146717246011052753100635619665249113639438478793992897394759063608016819187892236691669422093650421683262623800488845773299635486023757065231936463401427504926550753228349376109589054616648245087760741025481713050492691229285685385982983795964627873348525784120765490347436430295957767913835511685278828097976244969260524044376063362356912074667699724952389184674419506736277635685235750339211237998724417561584229350874434910584444851223536105082932361639981002722871170511042467552400796934873555966541905933074588032171969280491032110960981812012485138077019522787403300659831218662994409747043597585560087201082903944623516133710241731518139734804909363929793380164005715345710438728425981760256367939801965808246356770654570822201872568971563380552404341111837605001759467669775087162380105217921910061688092538857457539943355396926727694272174796672056444588947932364083307693060557483413406437935118828061711448202707727194862653085937178607988054918120695924782630287389566534777992434694414808983688027788514736817839870691382596078064052148198171847579393973469809244252492594701933477721310989149574924545683926488059156961418370120074748911866612034841677320685439052925633600938737831753433837192584887684071491535767194212927270139806102131215178168058108148268803804340918076584976595092274539668765435878450798897448931861095050234686848425794857456636995866817598349241956503574272705720569309246041751901066553225395168187706909973876928712231040462352182697979471116626310009672297547997802152498795383030810659553843883995699529129116992322125878500349131664735289465376974867953451690493158542028067036769027459916045218159450723338728061223619276310029531814356955635517491768817581909006953219411318016004732794026075151953926731299807180597635980447617668818700250070272556335178760176002901072667865225449541238771638913225868430028706498375324929911664551020613228236830652379643178278416123641518110773681325057714291751304909225545680893728642541265000946005358926005165518425771904311038730226958981707759143112054350367973602712431536811570964126102988458856737674447471448126390116234000084528707140534284948673099884231698888850991543302061436098020183703345428388971428399873361054806033635149438550118069470102181780172544168485655565301782761946352217136323711400655388876865119709861655033788423743565979297080896442664223363588843683829223073915600963336147704127019251039882702977298674654888557138401717743245232771449857102939253123276668909396312481815829494971141979388235308860360610200185817459890258567535927565440791830060400957134258643978885384409468643644596570162882352165024573986158388404352347530149952940317158434272754543687584576597535544928047909268187793256159944787003874753503762740787676010163332906788071147052169127501836513138327281227040750406433214330919949253332791968719180787559092347743729398023712457293636734520429827712779076281892910689621109524849425581661059328631880430079367968937265848186781035442191218713544938118279335364875205239894228878483409834802043880132267361584299307103115270978844591410866354376975831437005188625152313452956349997167153296610328558868543560850325754967306680380745513200166124699391678178450137116506962815570454072956511216627542436488057203949570552396095085367708163256047619197780713181806572551971421729078839672337808013732729829125863460105169459430748303297753402133541285892273502444716093778083813302258316228891989555428418156263936837219965498110945987978806095585987863649310897646451507499903658582245608500500484534761294584929577166599283861801579509062081997039627818575791623043916160279343070640085260890507621550118495056752453102657893148531737379610147953621971525972075923650943384654494853308490623915752740921752319266396476989572532473697437125056385327696198321239628139964795819078283289446081714514226575454452057243673251059227877498344676626361438627892537003051675786728346263268511153899820675761526403231123579160782723530584330816575100001647365801840372554274673236786386058130408340604534118606790149741416752307501894788199872342097219957118841484704234808441937942444164395152129925768554895763049523645982620536489858071130433199203836620750899556947096620572957270899034535979292163593633871492923616417253841106477231267122612495160551746903032917723824222312442150950355685452030708953995554376910310597005322528934896116787974780995754822848063274869591780557046296567751514335602370623340848311225405747723059056016431223274864476640768657516278961633282937455896092015755042377331267264012876315066160815175016727964440028863637523443538882501029656247598008221242644266449534537663162863733334403796486468351886023687213719213616468670773075388947684424725369544707625182307273308054933189968568777096981121603699837345067856378316552316594501234408162485957298644261962001574787728254584214967281889027625399837657774360920091285523508060040870467075056220328047006028302387835194167161086989265723163511664910738081769410889839721806151190787619659772503641060750494234388439897144491373998890378563215606949741268195617309367464965258579307517804586095284511669147878428697882600728776372925460400298810456709291160250682663931501753082190115086710507413014036702185345253324239726633014912172064683839740206255732892444926894823719896696629059936600176457121115339386346268354939787547144574787240519793923007265510713847550099994881019713558670710230571611499395488946029480518366584382121466772826916389219047123853654799819795292224511816310327068620994462810128163713718901951748203828451546367732252004424605913843511290842419748409750974700440038162239246443911037469077402469343742089107989848232280582529233372052527978870255392482381774356505591038513992017760476772278130570332121094931424290378532372441817353685579847362466995195464398297445865886136668091802483298145892265374232221366897285384248614476867634936121169795805911219329345487410920533239518710993304065757330725829969904624508214217100768170327023292220560631229685840472264678321003013513471075154373657976920861368350653298085270271681286981109586973984274030673483082348822716242907933913847573643386913431424838869136152597622839687691283953889851974355879298239664893852656200039674319625542123960560595225754236961595947630478783668122928702028224444541309897937753353407354554420335197429295700561478085936169171692570473009628254128781792878005549967851757550076935783203050659537153075487306866741431537599507637356401198575565813462842692712200339965140034272572934104522935152282831674504785805732493263874253806540185455427240128832470145364836763555272347831985023308938310179965250369865772952466607747831506350736152056923634011036401703886655163558492206916980272578765355043711789791496225609797138838377137034251051530552747522024035213661377255055266333037010387263712320122878102062760709321906962164710780327839762680060267522747662860962807027418949826588543232239758793634320527563048560115249519545261557967443823014150185003579606768894484311675549951513204958031510462441651585625516674973057932491320769447715485609422141197967148771418822436464673041923257780648362722791879241166862167616055346080270511604290813029120129539110049588753044528606503304783013835792046454988356474241139356256742811493542618005052872163156372971384958532068119011606745019442703403501559985849042900789878704816316800071545167155336224028060595692480790415584811406295006628035327483383010477786038055314150677203510336134156892214634661742749977240807108592029423652074381561130427273458941507729468508023220013387860477062402851451672150554366621519291799249826048221883756285499551835779020773257751435243045264963786446479943778787771418603550297780252829920996564023815006387035775500447453137342192036838324805955500771227859103290572770550553195705079669342654484254793575218483432448452035192922769459589374201212647331594383775999968739140790677849151152194493245285957783363463725467804135167058477464940889565417611141761373604139339124043826156613306687884283927879889524964283308025552366867071018659328715250863690297734382648040039433744717191090795015568583609988533579148526016321391434782229609519999694469372222818661376522411017109774367336413042641839841405100696546086479956602463299468364814149523422766736829800361876595129833859171650098688532077094226033223660677599480703613885527484630010069525791668657742108736685071403000081361260758738526252166039911079838147156281379538974907748049187210534845338642999624711056785524446558811042905572062185282703819861410504206642211584515373399620830927827541098280966465774026540105710776663765097138384361888816689968117630388803772008966194265650594401795708857233837731740169762674297765867248456431708857033920121627476691949001891967488339310504337173079702921544730724216124405594537725473801804688111237771505883839907507408172459251824490986291995474916215393154864953913772459297306041496667103477052280013425170225276784417683649096819679604748935450681225054421368031149116541962847141701758553617846090390627141180735565730620008807453869498403493173317206447884310835617287717839420030147642368602570477365567656394468137135448869833953401437453449980559782737558868843197765261416204243213445142133370034787435808614509398549310769809892764783688115399643212608181786217899130334812592567482521275742954211412972289902844529368913288893839777676781931365218493580424486692683191683683574237949044484617396019141080918862033849916668161728747542203835923978718913995754898911396782208646547967685839491112518105677794738437043985397435160745392806494823780026545893589229317459093663278059998171533896400357636635924819398897088183776201767055530805235389263344004344340976674922574945575129104849464314278309149350187233275407929180352678006317412571907311893271523349447373212562146493242968583969078673606568792795697490767263799419095777558728103374316462233729215815519656277229655817420172505182259570500542868213887692236483614590192052941448464559624642383791297466464169210651324601433571024633810178959485179824654706947574212431699525514581608553977696112536268683640387029068893034430848466534962494906134452214015548626720672041450787668529902817263919938665937155839857780521988937532968571022548664574177783040965173683952057793998297368163538819029050650605958606947135866763025849665755995088931416115538202839441506307199830265967936436016318460731617456413419266109182459026825228712723361604993332346859667890846101900414188489042549164032264495725931427601392053679634808526827049468199577349375233666070783738676805299702078704424697632640782005984169059497390768419808246216124050137353832296088716318300105051885563966731452930948642948812356566769083455781179177499597308390005596734271365169969739864575852321383114954001100585416476286379380511225564041447599881545749079206110768852576935264312120206769289147024436079855750368395126701376787717393371841470183312163241067090500685273671511614570243294578652552576707076326198864989830181089842867303451012407760496421479708757190306478778821214726552810070111232331028208806004486874299855267529909897707763794933842937642298722319148969431974990377357378187444264714549517249642908626150002579506733839969620325645453961277680109232748034528147614877547383208355919914685168165934331272107543657267951387668221203812753085486112866915844996210786801285653999026904163174952621518903997597140009969473591108987457381946932055166280403522447365647490272299833559701472587799655645553249193393416046964886065999702554909860284629910958457239478329681241389317635055645352688483832119477142779806173526742678731004088167800053629521737475267700123035114835218633183543576064629627136087051720406084357881554156565599098647406062445465773277620582904205965025215336227194295106847675562108982548588930012871209211279499659626320984213390101620067139649075746105973455012871357499406023075340621625840521042718115008962728306117938563774754395237887920177462159279772124476608981663767944307173809229459813299148066414528057008842540992915093196930711138692984723932699316998150835277115156277608795152138490611027936533265510965502879424567172460264469956875731655112082891459268320977493699387237202186547765294179847010487117834833764874695559467360893779510824785702557808535754022668324097037809197739635736113853545529436251290107910519185861842214130199447553944175753913837465554663827296211807467759223078432030700774338187773646723859816498493572767028106970079331890179384919006047104597065762858712104682980315359297728090239323798550870059422956018151564590967871475856208798055705131969834812188623705005959467736666794580547895783172683422835105903326728007400660317490360836348148209775154060999049168165625089313163567394667629740538448303688967464467977016654394322142776834711820069901456770346202515627412785218674011634408760800418440039315586504997285394591868163139092984031313325559777988400699168031788356586099833173660210224371248617362692921926524249153732931946614655477032586437555472983301458888315969809285380541726107829629128122038161335859757652227086122217060902208696165562703907147603907239020100233023162432449736417138956201751335777739784637012727189107745926479325874242423348801367054448419224691921707453305179566907543218503770727789481453909119719464531415743620079301348540066136084492637046107082338423464460419086203427334573874363710113845991503678883075694865547343105744064677761768798661451000455951224835935461203959866678792463489913583392667352575120040584657511758298560737595722507619413994235913129032649948474124848594041998275324523553470854569746951134179997094139546982635449353028245090748930746155798880591592212405659746163231121105502610409040374189666762224711091229035366887413772890981495159637846649119180011482986295937639048359074571014318222720235642302449839493329841872738039873548241864246959533932962692759079060345352705076411664110285313494426850530229266917508818471525085277246922477576364025689736297717056650996277506017425115686117042469066531081482695870766995201561321680147569685092894112926926683604941980732341435656671779039180860149359799151953124285534797160031913783905797141187813425105674131745824241293588231243238740955563442710428405971792798750753087634800850718246294695054048573977694992737846570789656280928450318121187414411001686254893582041746842607848177772930704180964729754185618828364344588926968804298044483141482483277112121169039875918917526105482703309025454338206943165654234146255403244649360785911197005027114566853342162055615459269884215635125907160694435354906159634176378739924393301102835800956081603899252338271290462244272434477246663938008846048256128671998477948939559513216616844652101998629475432902324205018982061608342071657596362520725743862341592008349112100027231172400596427820863524512379149804119483804189113876523547331113537764479175292186508824431732855553158977333367947914263069456606964586573759977168468491601171458889192868726206498132339442277166021476822303276515597178464331171342615442013824128451853489979871646381983701749233717314110901644179077201998747423438539519380377765217658546376085280712112480809613516477480073930606153268775757708362050419532497707155966884513207076256458455954294329375392265857887961353233526857786101831145390878434794572428156008018003696908787836126522616210764236628098058298193733149501787880719680091008236726426564311905118344013249197392512826698051249923253929660770162540254118311639992747670962776307761399901166852279004282607779436128129295509784025723186713736824761682096949202493554502218252859776587240324722357281389705709144710759529415257117800427903050200086651966248169935912696270300189786658418848963044949798559223270697828608206437183971734458626100580703918011682262302599509049112621647872519280830981118685534450811421055461120240777762869849576276734533686902627541558185030567226373104636808174210144635129131728382452571909329492999003057292680583811563247827117459638327164093447241541565526561716855262378334833221552880769852500543362735682292224616171395301694255713705681334583363764618826503031807544792293706578880408106986562486366911457265087106714955547163967799139125719785370758638217946387591117498173666596669525314447233694047729495320031999192196429817132162488540242201075940055225142079589918604720389631014655432939548347719150077333086722035981087281880166607828848357056854458118183920816258872251700920155164666089976673862591859023834813257198608568590728805031469719968476280532753080412187390233779023527357190369709870944686780039134462231646266266214269850334446016708441335477429666397326991997958489023848753340090185920259656386569803449363841233533082134291449528767584662184291575273391310956898636851540102229427476213457671346554294166346830115620076670815074136056563249251878680421174166305822478093282931711138865077307856482903662861544983293672075891896788119152837646921104939079510908185284279861811851013236863788576364689991359713363588824579011251517619860961539061504531810418801374222807345564952770272342329214995491018221453097961566668106490859984849526745107929989508554276882338551815598121015867141896479487321520520071424136363657586797118549339780459727780413073534891720789990208586103349557119978368635105311719810527219475234575037450721677932576782181132355758300569657529674730186862049055021807979465679448888253600894257581914880782835278190858420601900552996732849091292730555628713955953543022481115579970875953991185752989833167823329041537289607010623290463508387296088125099807580385664160341392662381321786938567121490045154327993639767947735657700146761815012674003953899145569727357341401528245578012050227732574300899307269291720053703928362171526178503405352905342543500198506868972259146371996962403845865919821602090011323722383777828258646337153935806391644780051821094523054916269003592407568454845058854887998730691596609405583944848553536754708855854931353642270724694979228172083884606961687116042023610683099554852149362623813902293048046214867935180404726012537349004008196665374731897720552411956876178349889203385325114955076713473273701206075914381486754667276912678257711395575997238034188016053379694416315768720094714318584864258674355233669272174988166519722480793260991638065386862879390098509811514725580484990514263575479660558645384988926208462588465378141704296536773899296418131956554080616647599227369395230009891222038849929658174437593605245454043041407018079763358963502265562250166938362288079823041063720073746502340702250436330403192263584887838980871404310207259332827168233181818172097197960845652008974013683523835086520595760817621782717955149378404111470322925818568081668251638733072904398138688348637537536140782460384581381143488251390817417182090980441221098873352068854039524478581540985341467728958541043203453580962578566861011433189066059483456330691521650611501814135259369690269089818389005390655347921276799468656577651690201400783698416749369591831923540407120380487349188499548069615284306649849468553038754925954581287451053176012337944869513377121837911437251954209202417518817461461679237045033232023501590480867739568425613627363750509556017689314889389989811364094934721978607717639965223239877138049032985560337614070494067743905235694382868180646228361795377241482816041856499023412395463326937614465956049953168570828046633908096186926782509211017579014507666678083592354597548268912210627026467373334116254420637731814257557834104397575591384054024768149788449998073171303252802321236794831136016406467241002172854279803969392837562819850210383469976218891532187122788893581289436740281269860835464902366922969917064728036043824253441392925332747808505706687036973368637666494330174130130521927306083563029649033267746215232708925993045830157499704891369739870866658475143179350973658465378473236559174960193106700061110345105543970297303149823425005493085681459293122652210736181494073162611238704151947124469040828952408750195537907510911656231110937556299800491900818268438908905294441809203874932564215155796932721137342724752096821355052964974459271986069896431534404823724098430480849931906455822807315753266243687978630173153194347110159572138011453091231431545137524963171433818653925455869906538857621144222604331084842864378270036482737055941795817888996675595089552330679944529717328436741031564870338045341513821925242637984416685084748403349200678820453491341449115958984762441106489155827774894389142678116975258991453881402867868027307646047082540364757971860357767944157480480965320851943420510374797316632573069610904199107978742683729739380726317153922987968956449727484186796683032268727989499410232991696249479993575897861959585319348810650375289095484060738724666891423727615991425737090743244339819599919881297555715863797495365927259104192451054495509848136241224138374652440968131813939188363105769717863801094522397764610963874637601510887210103703613291905515819469019210806758906921398815478569758421872590648339373411737943965229023421990923141560628243855094451988957853062067121600999777282407834240615141362712584838609098973316904628261562364597274456268544399979397729897247091015571060615643691402311611473534232512829940121748829211004758222012589872284845776706779448875040593964049054216447498194225251066739744875340779454774765079571632002821998392546410063743838369338179717132433709494889808556510470186003501655156210243543031447318965125854203709282890517586921826223514324905536867324113853838711817771394029666436240546639720391983609631773730175205998307175035063473115918007713956916756695287501024536287028111500602048151017870316594284758749757864007509999725118481752024485864463351745117848538395131915507809656052223440192634514879368493809039784419866417828969661077271507747891031633946037825110700617457964026313001648107131781907002488454769795169702632139078733779029366302749688121767208731470354354679502528031756849006902997306779936291350601519444349135741594003580621354340049372319224147838687116809636697951451856731235264737374528309349392472950385750873027272251795296994497108530742574236755635874698600371709229227036674339841031190083749268321323376330832149314094470773973535882766339013151162479910561396008361526905861045249061353293522294438558124361414335530241919496522263064256558138473625402885231584863637842910065827751903764024115334731832776754854754826259524580656236631172894605943441270704864993132479163636631073878640720052202422652479006516022916540432793238897612830307409673460917266902747644142464010497545604076489033816245278257618638218303878926959147842942054839272272721083603720488547572249513943892419815511351104254593676706863952803158816842401727756133933313317663798056387858411489955795478626996988497635854606742381059421399266871299395969115161847446541986327298247676882072749628184953101597426632906106640501360627899564461473341213115481669743775924013076109198839875408477964611437036284968472614972958709796468501158267772669999496066184356073862609538218862359744621139890795243324176920684016808309959166580743914341050193910595280282740838699277598431676346667143436156098374068325101039922898687796176943696671210337304669245431324867128363651146261134015287210389378980151484540089012175263424119937828666509865157033204413848360353941163918718450644806967650511612920702826534755923059228231211489385152211037666416171864372993172286827074144711502402540977560420838378647638351172262503876611830980419757128601504150750364202655113897639650527194750808997718336979510153902161252162028628072098567027796272787268518734550132880427295925510133293438355153469213852278662522675947313490390677633036169363728283954391071776537112333959889176974731653153393073497170007676582633892947209072023386344941372793920700066705687828710918442363347562844369323435722465458194395713719118923517287707893298862871672074066535154890783939235760756104060279818648342623892716783028513896672448035237158043206631997810356215507170712009823077602196045791980995983684263035287845412978726562483712638665722401005865158571249231376687590150493180086351926517750563746780595794120294334763070420444760803384072406901538008467236722965504352179345641976022021439492872686267862269376257379838981855981200511675879353430058419507303055627892242809241158653251385451126426183481735026604285686036649792583839778508270053469003228344409511199653934002870714505614061796571650979907244455805590218030395374786740788439968592293045317343649776982258200327714292179048348313318397137628535036050785987543711253600091967067988302824923273989477969726831811782767715328415848866735061867885141564891971205496350427199633566086069176430846204452355416401261636681724503989848493472728967963453988274339516869032624359092678875366925432129003082145720735632813276664156377338409785990470690892532143333451581197099619104986372482671771317147796467639994464854381888440457723854005359229600689206327403553796423087603416923240157904701657309135898488200447949665072568741152671316269916007761827817893836698999112440829129011692436863185629157378903907576542431284693892472090157068136143420697516107593596571602455408751264809834637755132052209722822188667460172577120774818484241037368546618643808796883632147367417892533332532933100984964312341120817988595727600443901859463582866746025970668026993764472291490128264765353095205757192886067353593312621518299412143256084867659288011611222491642920992837609993313430113413812141853411040857506636245452985166704879470291046383423057573941414573471750644195298930779110035343162469509625942471101067754716667251697465868021989588380234903508730622505393496080312005983264929937750660920416756215459721739705471885873820769269605303934634999326614588625930561988851633700555333855412970781388532360151035408965341125226690153369716455873039500169507350276159847485034687757297189956727275257811646529262558678216559268747225136262045665513906560488457891056500612203258342334798171844401303564512975055889523002269864952591125720737575764941680621806053989543486780591122712059683985035739687748010313495013245883200546429444092808523739910716531908690671120949006891593455344528992600459541956622407213268623253282662009922950963010705792137763564552475578423893558254183546298064614870803135607141938886576607715465262969448406033651888135021682836750753674821893236848704966580938150499967274256227019064023701324079231177811076493862210234582024869759715398530327001552506005110973276644950783593635898104048236901818487581085410366750478869095658164193958931195198567244167121535271281971435099513195083823430002598521558609083519926054357529744223309301368507469011055426554525187913843564953973966179303710903825146999020837825185977228907566040224186514302853160221641457284083442974234965493047704559475169852821129864852480311300865412363356640175729441317709993127724471779242804042261778629203785924947465907500975834751327068535730963146457637753337379429469696329343469515546115935488039008228528164283654131256002513605176678268277949652869127218727922779348868537574577383484751886625355818305990634722531226853120233516110201418906409031663637026504119434301957356396143416851408810978088949220000562566449081404171817052657947102220470381950284875547853225249238908375914054854158403330556186879118590411252175463065026657247080895930404524299669657674827884001128050345060279892864930109184264461506473026964993441784881705345562520880246745197622114482773182719185415544520593466917735008131367165578371444988854832530381452857747199170465444899285245581045748196194803998430456830506193016831967133397075780822805699855355308843290956556214139148368598014661107782731758958006097428362677536333899089077128203071054976816551537744145949954342270701944016179422570461528770200924982625530987913711910858233560621459949145247893165454876538296731381899347117341896792612846385140511379127974973146401450807399504719092349060210201407687807206408695027530790036090149758547011369789403944789814338148637745830210702803370605877488781983941608847373620673678128442250881277669487030557356541719073540393573534624860535236856182028058164724202745630988217167502661589668191283531582546082922300995260748326965762266468509254544540703405031891952219767543497670935288089490142551017706847145209553902719922207368938435418847010802889934823515558446357986655372369752159949052006918663528292324058286229135157909148606174817250756731490145069373326991082298955328717545093949043624615870648029869410865597939127278838040705627174600828919974471644595010702295142285113890229261777429225202412956703573001990120245031592701310363755320870747846035539150991282933446021089747492587084628269862680675008542297572297377276965957171285170485590175055838645257622265564789606884212634194967997118463679304905930992179209415887773555827841270348373678624720554391951913290338935311807746567436747034913828137187102856910846032772948871968904586492063689460802167864856946549321528528339116693546433972503355466238595597763436858619532290882384052210456851959752935972288053616119741977350950719164262435492268832588022275754020431368662773672897414154113350310771366606440014959159580303313098770561156714643560341750291970527130923999096830927418332238032619844726385237242070196014056164764238763339155694245749553781881319361541706583507005550362725001200764538286406843462801179717614785977759607635008321392505541067122340813813151712853866106068743939580019487283368667258169340499970887366104751583250373176177219197139213875623613806204280807201096105722885766410232620723918989102111011121063864238131885610085769692774074393317922168282790332984222234006436958965584133680881284029262178865890117256193894300711637584937620736611030353149687825037982788061291276542005160421930867928460252837196511209233724696494303619008969476855138866041211865931424373597342479573882571797975464160259134195479366809812267346298899344137365434297397070476314302994122948738711130415412519007256447815516829952613462116556290749205040784032100095536772863674256528624023434646112839369211073761192664871975600457220106313409201368892763002805854983625400364118719049592842202824721069000042796036572157152800229269283640622415363113108887459953905493879568293461841487889625051208775352421878537789404118620891064284916479810934695129070887919818248502944158254426730858236837692571995780905862266411985432086535607869943652024650048351553540418829230168590880207963698007583802104048719968809598726416124931325133390915379251774779704106390059113786328582712345882432307129112804967865648069288093085175511712165805292498928874355611729385862552140635808886671600102400749145476776571247632704058116046464252026488619866961848308382126085066902105446255412934934668718895174276262707946744169069443428828817503127452426459966774838716203251980753245859070792171811787292129165127385490156011652602514636891652979600484884788548047480583878728262186856567352826818101028900545831266540214124209929814517366499772737384674789895348594884521604085743713679848567715685431760706339243980087638036738456585654003990826773947544401589802603416944222975223184867046549061775514900784328827318770715951561839126929168530732312135994539845191720332714264272242835447303843180694560447296506893397848873180522022758219356044959984731163474957244770569173455615372276610204126805470805595537115055979854848197908278856490961643299549451611786667556504596227234101560647004808760390852086435061585626951055709503105282460469106029711224152219562726792596337710725175468384300628882515382195272770969940248802806235676989314077487689198594057234348665491419448322161622014199138022181826298521381947238477664055281463251558879613604074307164473330281444686012059595243153708462687839307163794267607181154107173769323093079747470953212169053962066781319686457609914533510846755649852432905915417531377517669398791843438829471701743979944067459418856432654544267716783539357280952831352660537332581371112322711581148885941456865925409486597513814516513939749401458362481656074894737511147443757927117741744887257692931893738332529672189780153914511138510752376467467109554533498500271033508979272580758399643682114267312219480569379457315992245477792168465913621870628201030945188683940607959256555317656554968022200893262814948157627684264223942123383692950628438640567418047035134463631437418068312698229494919901559718898740424556267031618320438605862013963724016383453077302927625510939570487919329946367497355994506063774583053550492501416091696724774198902028798405758918747525499702645175588830389297890767448208855733883343042317235343358888375503982890079710006399403269182468772203419112851424753984082218367884599908985170039219437959789589249131178998291777415228906123842563162115092088104161317455693892036525306867708044891160534160374954376647434613245559516403983280037498814302367031196651185174905169794007311481793279313741169751553901923156730770868381555516983069909209012930853534497385336680362456459123649258075481102594816670025741963334703874259343000298926288389467543465333938709901875725117949712472401414143751653139080169748920936929197512317413399161404320402798774844338389215942863959314812504238226521952745416565718565451044279405762462540626167684934536203528721316695341232346742985753812989223247473319927829585409879422137628788091464434819148700188346871767117862096994874426974833935626403793523616557874096184167544256979221057947965551842717646941670555309908856410889711594706567447135172578956778461303463514244613517135553085842828778785165921411462388559588809370303112661244898839779362581785561594202226339824297555556482657826355787198501678377839161525020437722661180121218305526233044657595257721474570311016686298077478245766142609613775884696437212936350964136908239356157056563582654053093346254451654718477380412852389215521850852673498707477929349310151398322196615989331224265180321613618992980273994519420292269612174178567942056195749668773240589096218125312500138277725651247473905812543447927642131611623564311126190276753302135771470193758893839428662971063965890718319712545315684907011010286718188262226575468241176467174987892313135372092417706799234417892269504326600115214555919173798457215302541296707967471483098230922255517172104406251467245918348766986638245358752615536734846787205567103547923554121119800448346672262492416564555562142601144721888770137303137328262955255352732028196792975887190694277931174300743490340769132163552254943610977911319854389581208571066847370745868659298346885547434961152364889594571683789661314795945176643826795074823017282959272540253660862849496501378921220485433254772662159409776103388303609958194366165068103574281574863617736180462342979009678049181624206744974241458400427826199985672502290088985101981687797902780412553020335543706037480363381014019590353055940192299212119480097564439912969395426804604540899206124031849143907917702490725136919882352191401678912821277989504689010245321157495701330494428089343304448863291749370882918071696253581738127494289764132666442792904587400425509133609235942705902790934361364067805419777574418032637881346299162888514756274504451919374947278421080245547541463087768147521848626399803639215364297614636753243035545979176544040984933642521473823059210942414200466031270565079533068085400514054460778325876427991126269076182928737472823895194006810116571786104533493710844537870287455043325143416046798856398301308890315215585483622116806945612445257805765127910971397977583170863902658446843057177271174692892440817196382557608562365208986302844507527587909175281765282883725053144490521740061145440314213230486196035776109000763482143540616328104272593726996252507757959325032744613473506181982090449557803407921284103779002959538284926981407100866805546865714293262191941575066299473281233472882576581207870809636270310826795365685232801958946509545374454948008486599494660937518099007993639980610402886841772605691692781792277712943637649017163442007591664263490367034051512184137853840068610161626962138653209258751773093927057759884803412778396049458843048959936275404246679387057897354374495278612237499236386232739175419416551047437238357516136137868812426036711504666922219035236588154559509137391576003213731703262001584328144468981687782568627785742154898237074086651721792490703989565726325208836477634619383901178790711981295063222219121865753027741867873444254797486415775361928440560206473781488947445730560310233088005073863038602909908749342436963953782205498577486893524932052458015246941091000315263940691155157559042582215453544496537269624570239242110915081353460935377396503434439412950883519661949648165233287516037365348173273524603664821586372647448859218876589400021972037470092973930272484616187948192843093908749834562225363800608591548504502162510913510560021803732285261318864898093519211712785276747399722944516196207403289644188122417131470135160938897176295856736098270871400834472440225591145010359517810961649251040030647918915829606409340920768356583373669090551863730248630087390751143254424159774762411890662373312129982327436957897067782869486660562318772126835173894297347391557454435346190990343340903642610916360781209319756604656119409789713539437179744236916976800792649240354470814566895063247627040307374315656416817488253856087533059656501569781051190806972368048833161973125477285239112262354908964423692992918737358682422649188754037024330524136396921259370714305749188368378828897012671370530839548914903482721927430530532153455853803309532856076383123115236285488879432089123103706149584886573210034969009024905224650517855415792114896360988401982617440244390213996795329789851521198206871333428036462625522174355033397982653431961250549789302345653704300442301794029974274282545316830308289123966590490445696561603166597684065705830385213707090203982291209187798698850973814396700160181368870804109075108833735397562589595357059695485155191144266579321221037145694928491028645861975499794181182739889335171470378620826311702932557445496091626624873275862617385784813395189660566477051225316888043737425868062882456947287897181481631916811138284818886542992242943758838550365717716756863710859450847415689537338393965412947377609251388983564992699751622334354378378279389435578257649148778252186093327974394206033736454729502417646249501451602607751608335626825214970067832406849141550410530594855991785353808502808117247854706531155095281562223383110441753589322844417858747126834339917064812891515771208351396669389327627792734683148349594738460989209523633295545003099120557225181406744595345323136728424120548863915664814323453132641213717252035094268335770341950519696995691364083559428505823359933049430430526991364333301807103474133259909321445910295041720995835226248680761303492310798692624480427932282574823256064537534329527752215097369975914193148178965284319722367919770620398239077459973252762732292002700301604252172181524886019262165674809876792132994065819713090597354006982460046429561249653081232656663256452717531639016916295217729155940413403854857428877213185770343611517694097070986710577794023350956723411890311540008251392570873364326873143287228090915934594732328302604157388926275715552093093268508503172696728694216793541320091836123414125442778429144901697263504403239251576317574360422138575735568107915215649360222090333158278775421092178852856310431829246476186125119850480574404250086813869976676753264426240488145114771508552869827970484001817252376486616816752626467510468945379880474760707528079637344471832811662488617623000419418260026711454576930573204037764169002455502240634273916358640438129195410258026150611605772156932428270883332505974383593680831767476875961556849400011924262700658969554341784374022826242777881725864687554843668915756491880902337471844389219098723957426517257286143801939439621155440460064056132118882939201679981600484143888349471361249794420830317922953350636958825851689993013863615418760658155810042833618599909674934310979409293268095046480894592130831558798243759197562614716986837711495807743725454959804874227418069173137327572647474102089971990684263458095193429235246403819379860405871626986418816333927204322315319900132142289514198893836157653995521159635716384351213893082319700240877974971198560635518743985072906994711298678793812198064090294146790197838783740850006355974932450303615319277009596887292796747652847155586152897654180300871691299241939204470582742112699715875263831327438132414247990863471437339178231566706046118375672953419741349496558620995181655077298963351759908273292798937831298105916794236549278357307051471443310199374797321250525100266926774004110481757902751705866077881175020059887977765331120605446974557780913380549280039447171760775988607752436763879827365574271332813914679402588289616773763762131340882449043947295526134375293441155567466620772355882789547303380637011888405778669719538395841327398728484642470291998343823063925164779454205222597202215641845078465734829226598670609860525659420258025412259728583722823391793958107826587190484606295647927887360073204794626094827448784145623737191865484523968913670225987594897503850232364397817694387902348029334104993407613499158101610818726257768048389273305742447645951054571091330520724018950651680824897453691644388650649620443485050144712952946733153783551133083657945894391541604763843661329755766144592004739551528467247877274119422113824093130708692095528542378105677529438204958279843033751458054775458585295260661174453777105937312576667321659418250803366458026757774503026813340062576384438392757406162127995644102584640213040188851032567856982599257178623458276478329242677063247662340921885254721555492872100373447232968337664315588439981152747874248540485608303357952768395966986270513501188625623668705345976880332000059517127711287528026445111923473870220793429027580072246564849489094529962178914582441177232992046500371621366593849151004631943108259775352319841666935154973857039410110307127751999226020781453991082256914440806347719924899332504297851381580719617725144691174964645127040517843621645599419777901726699664531972384181779101621473486307114168837523380826673108210960898774064703123959917793586562906843081040052170846920515612700371568476999061857793869366362656708490722021916282901637296640155920131008855834009540272713378809712806135265217985106979988995678080391388323788740122368186281731676411121875339337011660034844288980804119937612212745209721718483858805042534836856551868807958649398007847227600002963972560787627519897819934576479460583773373880778639840677915604483455651746506189425222199575785036152253113986378853130317480844820269473491326844461683045218251688746509365351350469018522326975475850277926413486653535264720017696536989274256797708414242736913759537969235295877344082758283872510202351952843636672214888766663370029205674968087149295124547336121165450555436499091589771109868771924724289578543927517890200555228719392525476933229684047755618970428347720529893912368960951374072615826561827874044691770478660512585148205869235687236839865229614712564007931157474868357001416275132758690096061616724771418701708079644503394618349103772205894116900666767868858005223664209745244410933097520880264583867137274363186365848556658404217067772617229761971522861781896800522654272609516260190132751293935402072351106959727446742449898616546752388660928145933656806495539152640691368339109699464872988569051035785368728189710646001230157973591477887556734289867943020187191084417966131250321521761717556798820193807914994329506723317664722820613633451248727976438722980767326890936669930555842460238160382730616531700938989561531161860521348948942494003274102931556253420599351008752648294374726909946881586769286373960706054576747782091102921041454988974726979910695754707647650416198479838650674498688276420436429956562045993476389603982130046736617577683407832380285013980504883240882836085088274609087389006128393571415745736522901074206361200143137392333576875892914707249497356395812001574141901038050019115089253463462308688210508682365207429992084657568511602664390315079686605609690388065118550014750793095673154233312400025930419623979035989294038918682230862458586147051057539653082402745628698976047998765817444266595843140730749806344856097690675732480451098130846115636850642359979498245384913528282025561406362000904204077303143537946465614010149781980278979355249004126857740811441003672428368640657857969230232435032114153963640513293317776537354780966195491165563863933040580653493592274651886915007300299610722789443890305073132209148567644912534803937947632314346095388656835215061868278354705287063440293369725579287679534270293580398159658808282939212509920752035776838913270320242834548538008538083766285096389557028251611506602770060138316075148487112973459535690665428594617761195297040699838597076100568547161874062940429354899581443561704042338592417988371780732462016850291128467247180492811187979478753666363180201474495080302224579385666758445479198316223942282523179514459064149980618715134470334259073114237137812498399165437551168784109229418720572515064750759709085296136948124094166992508077210449358611642842645941328904501433817823094875958830454104274719977300147135310149457696095552844218540231831372510335007118375495342956925641293420391023347550259393227736663593752951286640032143949714044743769542913098887626720706007806495208424332287795540741194649519223922359351694861436589560072209584143800784065735281930233671177085773043983644361732275175805083628688718182522042404132641046364132471060227238350435997077053535235256603597443008225971285726322192698875717836362494907449741224910181794681859384001030306431915643937451772715021349860183838859703099425021109744605620089490411503943510246802032061021927646949858288888768213154398559629083746072178381963254470750244998492553606202676055680448989493684550334665488521443802732610390977032105665021831261481919376086200064027321658413051449391309988845968055934400162504710685892619497926568074342164217048895262343841959911758118131819491135686498107323560412383787241667974493397856727974680746088139265991878992780481805007427076338004059609332444971364076826449069490116944814892907396647641642494825303294496746416411427959827122800426007758239065508945563482068677246689725317894138561005874306535732172622924462658294203740868540551527934858333959174685707092120631218205118330154345561425946206638971712291157179795074447939164162673230125353357416942008000881861665534680390565461068972790518299218917195448521271253686152713921408310777829209106445834608816759144032487797300399087158765841803814252717008200262114278060691258615833261252648008967214289577827260143423945429150510438744852436946568855076246168237875175297077665010831004159315333359986913521938420614281121324901312264232477459060478266825684666292557196606630574859584247155511336323136186709997922382151549965070723056573354584711080473721581989101777790044068689295031235386828894896758300774401285525624702772074798759769351492451160913957249673578781598790414510274405594448367766149951227016561289665700715725053654823643605837835022259863662601844966914059122433171360514414132577145002059457926317562958653037673095919900845552098058039550716374537440932623103745617609269715217267122254016269790184476076135913713996115538008937673143884923179478653538396751751979053710862535423069237326340442187683903533576305760621859475443173325534806025580307971895914259142800649668727863353093650341850632712455772482325585198655369649841774946302146353556432148509801543101141245338750601744073867143747948296243262447131990641924926195144940201052341222276802334717981197923183065173831774875458014231790432536968431420249254169230804028795179241631102894983685334052841168949866648140796385952109144162950400605539458594764795451552613500398404394240792874868278325285157917687914374503809148135753036612953585039802393062930475691155299375227710961977794524705850005686585589696006721132338149343033686160264071941383160667922908126282257893036517555655109960838456507513363802748308847984021235937666055023589372205941798536743621203305065045346769358799317912167827083080597647837036828089272671381200525748453636260700364267762181380227108394560327697884534269434236432162305038109635127960074706204144688253077446978914386978016209361140987772174821949317437944901687444629099051449206903669965723832287750942522710239973741523345295773721527476875761768218006381688638017926934876950612367319620820861552805297732394110864123397846477956301775150662293985797792296077209148867785273207374713719181413051691185068539033438958218362900723931846280807525707614697000560294727102826248883589369117768255244395522284488909953953164025754455387978947700062414763449339281914017471418109828482033365613948884404179910783262427416663720988723291201755383816864228772566426586722702585883721573532969470338680916723765973059183697029135422599168708232928799055783334251677475406548119365338770660494164468365110941431896960776464939380644397432515527645400294690722774501510788768365281301239828469672619871348317877609704571410151854996458844190514524036296088762112996551946675607082021292097016176946690566851632222898254008529815036001866204960501455900617701835479427133928609528563256469832483781770784944669814513487779447125512261301611238030828070330530030428940904969843080291795522736873792632398072267672508902942465170787018829074734971122145439444866085414717392389052503426415530852690885798926456708938382429282191490689976368004158150446566764246900835823844053670585288156038093013582351126469647203417999546521962725872725848375365093311536584766950754498151362294061944929173933012984119787734364000173418471415309953343015260283970355167253420394644171257212122950798920062032790825627422797619487755024525491488044897764286345262295056010234233093365181414166900261730807021067173426308558826131544990912449140637204410091413502588360402510292128219263528784130357593050973185231112724709013925553869053298337696204494848279962633868228351671884208654821283207628218875785385605721116144415171281802347655033728243726498648638052589207774784618390934899665892274965812890638733592271124753335903967674021579237171179078428797050662709146859788185874422617556562277279386791599034421837326937078378417070005562412117498603342608145325876563190680055324008991761055537798617937619955694738640255026386552413259064899358990019595701670286880490540665903760009791007957921439952928657985083531368758011513594315934267616790629921838934557938439045625925152228009855196098830368522843830297889349822389518635217208500649152640464423618227188785297236210571120448385681924459515215017219992470399914219437624412405482288893825694081447313591781551609914032218169461702187909134146401320630153965181839990362671191529657912697046122298314092800582807476234706971436322099280941253378207567372627156058952301394954456939961421551141546036353511960022368449714663851750953970946641005847095195658368755661467806765937846301275069202599748846886320196709902561845605121249243160396365718493572907667207858105906322306857475061943596847415734274910785261299517195062331580264049943317665499357933720902700687603438463924725673088378662094899852689156083909597656934935916504611672407784534833134325182173898754379589176861074110480024742761331768736866546761694034590571708348291713168561134518064214665548790316241629169908175279219711995308958946663090557113305796067009664335465765092171113361339708859372924428949684587004935729021416478391679000358110636710598633871669463201725950683607870000117931256726651218018318854731845532867603615817889429718930896300995616982796137239720153177835853376124556604894124432392933303690865020440965804129182214961033201768057570255168220005934016596734299792769010942560472017110568275672063617235538111466567079508994713686727421338871271460861059968324589502340968137677501468444702490701880214063675315464632403238592844853417325359001191844115009984998393005342084235874716887619441122324718875591602764172253007675330671805850616157781246907149624038222119759653276509178731803387208103779324217559440512412233737672847447060165541178248427519564255199020419555935700243321880141651279762736847658217498637915331838725456867126372435969793976676522582896012355736931988130342387040416207515711557699425606926921326198155241232106229150834621827494725748548747225615443979258595976975695446005817168434479076676453790679218692036728967524936371589452608138766438851091539980118080034236153635720475038191587921679559336652629231944455940574531526680157951580037207505572369820433706165423441753205609517889238419442373947953384092453255628475662224049222563021898410085314585493257238180140604278363342856209988155749564311874267671161125039282636567217101645619878742396171051661800985356652024101166114391266430583851962985771495744763655713956389521006618117685464589106407702712988400393308645251014242034030596665737138927588635519100728108129109632302182776748746678594540551880865854348989668009904487691561444684944330566886426324837785726009508243864134719938294126857271847095181006327525636001504826523932766152454442129132465364863326126816929460292975850222583724135752773729700747095791683401660481681457060621496284048185070921060325035077173051853537930011066277589056930744151178449511722481718731554354463711467544496263068940461550156256278640831157542157639713196412585472109293575424855631483019413421981180131641320183081402312475677185029194242003904098704595990770731989573667697534788729897271848328680714766483699661055858605611090693413276305455296152915270986427538975310976008072378193924548343572547578226519666301804245235150016143404212293970337505007386816051361541401531927540577223954378840878250522164554927061245243633172629622673369056700139929643924206525257057886685496517516896742096508372933316323802174753480210929390669063517677196447039813779777244501512410860676461821709899912983559584684694402256965474323633341319753573427286342305361888638320446343402049331068019223503836817193358433551521961603031576630184156671814144771187837788216094101040338590377936504022498062858404239075614899145895374575926946057602969785410962538642990790450438104024295708717031677709838339744519090099852777370856947123879867811929853371418426177230805671016730691570135089227102828856060465588281963852332744252905790789688312619832972490462696731050708033851649523155327573754325014519616433067983723391138210897407991010748836921345855604418312481340240339296102513270629738314769725877423581212992509072270264334026893433831199820136193627370418800686496434447367991316923440752571193052178248045944437511817991090290612696883016602616349073241268607957448165447331291913349463285784513064711037191380311382550222487138841331109032675165326467088920034924918507037384439896038396134095267392011318035205249553918108745752754662121153639677375156263747701948909599193572753267832371696314685488963675329600964275946506122377180479027346405642403579546565511785321238727070129694167343459906385469541114931628636471875523970275657762576620102200939554338089980304238377231007935461148897236543683886105939285567774335635976048480179506285162305534217627961882643441552891679242551047279405928012391275010723578138569061564280007939137622309757276160160292044798061112190805800904040991940076064942489200082639100532158484899156168731897067046699346003281581900395663648760113180941483355851534957098691862965501448289760753426190775197940923586229713009435992663909874843757441013085756436918398201551620230978947531530243130578826608862252167042166927046441663201973925915130810496991041417748204459921978592008396107935017628789758390736892713193128342356827428903239461338585894716034234078636542112625697122225476714631292454455062323067679659911449929797047326312276989945200333275363394344178048299111601116681777584886849328727550106807775159554946708363872210575467205533372720122021696849890300485257497940479492799477564442152901709476582242265694340989461357206924160919476136409871483721422769782118211070627538356323218477983893865712745501028390158934790489074969615309290935805792048062467892730466964315379153996725995133131811651684238310086065000919653592245347280348576887015495737131814177410317844450924556950681877714313645590523166672024485506918396583004963626075148593223266120070496816429928241370179183225139892832380293654326837190563785156025483764506944139115149870333763457828680732215178653829084800932405768532805009589150824482546691288989934380271756694017591219709110561117859347925826119705134508077679695906264824617611193590218912423939359016799194082524039427512871238444694435277616161185358957445153892664062104392780523722069256759250779200389895152058776546142207329641187892333582313390847981047143722790718841682874338174505897137506390575534579721230356998028672728995898133011542739709269157824159915553519684766514337177398108940117413169775210609818287132293269429115952248945733991509502774927409841806985255574738899990122928226889843382501958893516171809015601743335600113535719008592295443923394453789423348192723332177341302859582077466104727959120861965501555723306675423585125736659395567374031193656382908589590985032162641550943289906872764495343701020833025012551208437132007359748014992354001818177395941206329263354709008979872883472548845473893746799687304646641142704003236205495908337286786540882656832583079240103805757182160190674982233770609629197714246754894863135532354862769060352287353618128639194397546387872714289189693167506071446914107465650982720030801242711114802574866878046467787739687418346397135288250028955536223789335590406135993492278914586086220139203900290541426222929906122029972712422633573825459555290363015531090893646606727062467945701986943850566117398310478748973263428637518384769158647802430000518050115840590626361450658107744436013565409820443722747629232727064235141361782749916303709631751258449962578190159051857181055387185522893130310419213918944576151850932343542999202671674511117520638242066016259582045878915443284293814476928693187385968357799411628714727650662678745107611174123787748453923214398056763425347416368178287266432324985061225509774738903855977602624427609520078203131240184933726345332287106850395057325720078810011989189763328963394874889649806181015883407288630677329298348384588386975524689517996969802362801627271476402436552748472068698865615149147221972014937100359808442032194179089772716440840474516199394997823602980552193301032515317275703299480373312575254115499947690600363349312873095493796926331279951847297197507829414628696035929412713698295035868094791828077264340541183932618364544972447488587376907497316475712697574410623799217365645081820937030971265194050896495336235708489944722041301035989891302974653457906186251856534044207004554268108592529056100064372045399420329387733608615878766349986617446419278417871148983791462099217839726060265644191058623760288000032082142565862737870524684406652919330123323877232711419274932570005309224760305578544972330311190295742470518800772887390924256420004206922283972431504242458636350949639494294294236722003804922826666845483314000117977953722888473309067121356207692328503002647773821473631516886079732107742307727039900490127360307763640545796060595206587351745329861991619521164527216267926319856915907005053135286200333326443902731565156041588330940371901340126471571451928345747096500042231294576053372550063058999296553416403508420218172818302782115948065234307344394546713330963757065249911060308993399099428607430360812594775235872738295597617066608572470005488622409405911924089971496898096939665713900633216229130507486159524629858380960573457986015277153995686702164510543465230643280671313646542672853368680171037687006091768612601782236978400161023714069088054436189771670380112329001758144297115303182461656308575533750266887075545952185554399146455642858147385987990410312148242736595696607268665507807162876334226839591393958745099959503054128115120393173198247058632872167725881268468134785279774460751229109227192359011758932743549795063325895915698473110550701507881674626074816667773856566990777938772941656994965346663033843572469431512941255101017533942318263750331125520107573156554633629610522255065636288561020831306492436269187426032524126349360711699003466425384888711038050732411217284123535243522773875047405526462583078881744787992521707349157411427814339813180488547640185244677788264847155515971694849550492109959324072439051972509525873197383645431799862600723842909855143187810154483584790532916143312717461909090341779495929239069363029095855622207275577268352976124855378522297732531786821265345115517586281580150959492290115843197331026525847626182091357699498996383216879264469659583247546529079664209983211687567093821864115092970918203844800860044484651820110993764535190243448238535712275197196408699975979890993660531578397625384228089115142396248197015921529911973900746364778492571794190504355441457577687431041597619728316248822960694891127416389177498856639320811316772561998753863523871306134165743641931977470707052278393292149641506148595064939747648413194342845781258053042928590946448658007703072983251005396768860927354583817030132387585640090490087007093702678474569502708047965429698701267714593948185455769971774288761978556776489007841143623189403642356636100319570474400894267058139525131945560307781167763502366495047805988272693317965095782591571763681373108453983150683392453541212727160980508256759026286096003124969597746268246620915711578335809230376488199829752699425994960593815951607743212958132210306502789143312022451124649333140454281534719620497183469383259273878400674865897166847761811001471261641820627374359552183368806241971377568599656886597127469102784495579436382632545875016924470587854026127925899759554371980690271783511829373682866407937697101223966459071863705825362268963808883795773830542595747022052471510927998267697306539505054461479212253408770015496916992122846885792408813975111535177002964379209042888977011092759230610564023086883969235491902563026645392517371323527111291418081801055983164905556336199384723644092978633242237469011420789250955844852058259484095599920733434030636867931035164192633209633258884854123234272706262786511712389675327438634203326808208228106076183062058213652812951550919489636847396742485657377832200794926325065597176018256690315113069885921836511308962968687773507621509206799422247000507647521795778858946111207404472479752301302699111200286541248780101698044072234783025976468231034057047643755274567364760929838384827579098227845703199157767266042425072236473952171977188424672209768896925610073784061994638543060491130942561298684344107410882096811643501762051806354253832675049559122059775821831308219797625644454076861247050820135539857808880644456159009395239023211622199925235513535545742255009311675770864630739231118526915770248918959934753819238244739366507566128258805255447967507858905772310060961108261542295748806942430416622355772317033090028166204307794870250057486002630799726679266720400020846452893526881999921460234108614980722667569973813298273143366448753457263656983393403327445185100205492787861814271981796954129606786492444707898782585335355880363315550992056710578856936629084545326527299097697853090401135089530151902705433111907606353123343214810753818081170145984678928408953969937880968881948257770555176043563891976500015963046065422414640611356577731766113625794465421949207477577031033338132665425443158283499993354809846801355062066741916221016996086071468059929804322832939128518223942041541193497381661163660966826931244654323178939741709631852957541475789513558001261899590551584910062986886649703937196988074885798372946564568362805948096946163123179888240494194270531423370040235896047190252054196720619300525370696479333584203781138932820573387534227846072830183774779573868495161555149805983289252353624886363939533539082210844004992338869096336308427756847169925900880151046735702409667600920467444177465791386024475953167950891572236061891188928826643184768204341633403246556843926055418552741752962207963266954404549095673010608141658064102711373039223505341331792587791720602081983338269797920414490546874674858339744061448014680808389153680596766007924404759775971777758093216937368708478287652064391511207959066522736367282191851579101922621741897372605027276825813769129599892000525439508141545501052674521692283449360063412689335498872299118153588574654846462443982044144550333218758196061036437534472596024663993463954837226757686814921316956168043026019424217420213322475064487437202109808265794383911770517246735109329927606871910930531270398600675158758389514506369719533652984305427798789132986604422764450788216880935158432309200640334603380139842506027621975772359041790026333747856744928394930542796129022643672539262006240064846656598713823017263812810517471921322547667484008819373996501535059948453891301731353235515319510699908666075109373240819898328167071900177247446506564564169131394266256695403154704837646870277423339314829503361783999932222116397346532905442264294987658445478718407362948779161059330435627845906862930992808128459358545365252762660153877483426913214162912445641194545209068312129554047791218379697337263295343266354107316155360557989998955382020853890375659895915322213783348266447360448572861448736894285994098222709034823834042570231463866788310710388882061146249422266543256726723174988278766860410018420902909619852545477964250857248670761327926403109872209022004417282834687525977816083801734629812771620021242903957903088375233134919418061060669921874496855282862387006987899761517136090254343640243763948102866502425510295243941206385274007826008956953505684655041859071642655433655786058889453806172472244284802862481604199582440453254197549400255990180524372559822105620072950183397049290203439242197934766600619599654498677028407265147226053453252659468318979323158460950808998849266484130266714706664861197650151128190033107054444051877078832759953295130824408167795790175649454898037026175119166677799963278785109173068479990715896014678868960832054070952890146085584205128173094953446473603115033681762678110488493900318104000144143862119682126502772688902917142575854311611614285910304763313088498194980000207188259113680186290933037367290272066705048375439401676678814322828265969739269839651454580231575800224947850401219169187105569497434044695484107461482889900166480854155430242841634668327063614815642147098610055724708576849947628250255191900780304088167813354840730864543266837718250500859346297389952382591183558326514743543444651109569958379672237272577039573859821243698353431979521358691863012580453010087347641253321983949908360114315826919002557368902286146977823947935751710217944493495277457936260369597623549010243934387631433422604136580846426665193216436814617316315936716375158341005675065214402503291137869231910369403253237213235085831524302304569368154349979633707485363386192081154264493890018631819144365708527836686608862781654205626928101170929245204674026781640460971779175303374767715855858833986613355145437887435013177164781156924516537091030256820768288755103502631182625005242276156437768795601723569783985523096625824199036389925835280491443283522355895724746443079116540767045402028291472109328261831494675655369720159980862008668535516316288233056729936705672712054026349143904789581111626880374172528869378977523579367212507636140064277391386658746359863263114415814490108013008455905804602932629249864890531255842590827082993658676323087739268145151528601636466694763449271585251097843231954330941148530850030414071683797143484116095234620815647286615904093357896492699922428112380212579614364533838037052867343931816177450247503290999880881198202582261854712491680698168828350538645263164807113261811952949853108249066158527133560400230613563220633305627686852821928626444105782202797602646266880157520137424947439210565591021710437686266027946299964873990534342918769932271560063060985591164437732694819047520150889977924411517974246424181953310027670719415897724802112995404899506812812949289645245641169590268125520240153521191825538631055283932633912467845648153289149579822528256601194079297316733774893150850098235279944238503464615716351709685437107447788524594778721803965858955557660528073806202721994460084136659865347556230275541691494547334923079491989825124678909837376590442888475051327458254129361295731228096041492194382258298500172978523151730887825371036012247785720327260221295639062750605504114882807493999683208836827897121770793076714962749100217333708992102578019259982606840264520879827932735650243382970799803715855397829204333545704866679168810155754060565275547660102907154152648010269967621007032963637600685495552346914926750707474779081869042238893489057574057855082650157511756642045998261689356195818689631246458982465028007101767535514751262312236038049787147823693772719870757274010566084001728030975454397959606524308882165828876392569498857189934899929678904242787379964642584343645867669439805985573250816394082613164391717426682689399161574427078010646807226377294609410372832588669467535742604658034532399582386932736851756480822407528423336193535468872921066910422830404554083041109375360752538554640976924562729534485809197651995433538249497949878137315964443389777596242695271788283772390125125966122066156403307843093638746044581815407814950442643655969893997705376178421947979729717702426748960858544630096609539949666143967483035493321362540930985429454778307903660666880545941294814833589377528040970295206442567599415864395139137335043605567992538060021590372930366171502968913546346264260124205375848270163171227754638132249672853188751182603435257497507872009650449005092386153369831234658534320716414685835748019593706086160354977342958052044770129435455482584508193317937590134317574620458221321545589904154380120949762135652162285397111727476138362332229692579407836768718890281410488385930093350021706863317990654481729238388427261629159048017013074680662835228934337611679507751311700944577040681269925199750813184886568496581003727565719932143596711957022833674181008624833560550963577694234460511182359141043863851907465445116309441213334266855111390122856196433000554578017370519753413496170945484076519111449879023374377562506870050023995354978534640188776689077121782056517661715748104140145482332116085144119735787125866743465015809693791355162499075803088812625446434033502344269353600931867833813308151750670976016540258443854578022450479386891747804868365379337269578896298221205554890062015481616634929763268815675445565300930487150159510909984857242117883310407359802445111774935752333655814956712904623914279939858300339715877633004548566607743274889026129298909138557175241059910776499429000634516196511951827658301950217870137684218942440262699712245284230527970940632326171052381251075192217412096299082783663105692579640666288884544409810473725169407712949344774287528171412445509506016379828993199530189960792648989243040890579872878433066013615628223352771037819499479120460944411381475096020708280140800058022350995355798891159342771631128930391251931068628274661968715986891515996804970458651299395920036549577505497983108843816817090186985878610629177553923941338003424241102655744952954926808285070729645819283163932686558710018611808459043079251162753579924649099029244818054218193133509963243538199179097871599333305580538886053422539203544340502197449108256741456310974100766406371409095633859616138098596809187126418055056769563027690650088205177938921792151269979667648805784316411749285202967708537390610321283107871029549845275729420384948214714302876625179341685134592782174196109158803395503610922148275065229470755639512811366444038828275706669326318561468513345096990460603647691599005958659797150964882875681097025610896513429259408419757741508819309972411199237275915771411260288309540980893127505954976675400354916548752085525726190809837803816844021772565138990084448033499766101953311789860337192007122193138715933539251010752935058813861163254549859727321499899637437517526442167817112732382272619114523048403400448174987991621338522945280262672519264919207410219664217430004315543942548850095654351399919336988222295734968287757950347859415997734524684069912286731719625694721225460732654402709041285612914377089248628737654681788549038038095790836498927495588793706953307450982962432446581946222352681369510688031757023355795785875646296200895983646971796061373250834251181003498616193851312916712996792160400758564698484411408303960924161516439017264706960492799781595875533100430096815582641523740736648216112464570843600402477701883888130106495852872848100285061370623413967530547470575325508903172511234757670221669667522537826139377521382548066494543838913583423611194480038789846229939262705223535662477547179451556155974792578485464238574308784172073696804124423886257584440393845927388945082542379763981794043466735997892517695890000122644562216814442055579010778074597537453281893002683236164715079024183543783474206643625634538503685034423484442332794508070573758303568303795709568514490258334932198396338916712164453753806340783953101497522491882310495413701398825446316961478651046049174298526176294961714914864700004611623556591127046329476119617573275891176678292895675228690109218550620794241122304540367988936152477273390733945993427800409607751079801342359764381611909857787491082011339821642993531238208291435275660402069070597819081415095957105913620959735407394594390378894256042776345964355096656597530723381090824376169668689549486923819490304497467752209538114402103069480074965585355549271531864334610660228171957030211915671551583864889656876597603359145247649147215404573048396570891667031130651478958280644452402680236226125377131903981772600211501525474118250711391011385727723422154147581702607074290869885603319020537821460190654895463467907548927725819504731033447462463124413270553830743861023064482490189503128949107784065544783904150248540043269673727864398758580196713943591799518202931204065811343060274145333686926659763935925962809260613390127876247899608369333531063174616465579843211877828972058994411729788405641733754755797381339622290092500254301966959745818252094233051100787079560202330205800168880905306779093575610367969986204534502039727472148826558445515347045714364558262263481669245555355070799416119978615245626239127931485247377721932535309399003491865834389882368166773994074285279999293258109896905469053614450618415433955120211511833947732785729934069767254844554584991096942479386722270166510289031705951846525213309587992932228369075113292242089784313969164909466001724667271742213401993664069689760115338736786787043699221755254536671991603373098979883862877229398681375810187389404559419338480018963606240123623931975363771679497813119168425082323594097520178506213296731673579438876091836522141913782167613234908572786159384098519402958787790553470811991948076003307141139852012425588454946977168346104030331251597351377914263597276117650164226932121404710374554168486467125002022274304223423865523031163712200927451334794982365661254658253404000999543803470348731765292689775627048229639863206933898553817291905906857195562114325108826271944850323070213554345675870730920773497571340795468773798006907936609776247998661592143315328466268426916633676442240645643148932471464494948611798485403680241582661220029090969101831360266544220077746256363097337666439741273394629045022482003183297984193122953124115055397309378404255898945949336275719465661893513676520384503580269305445342850426609632384959880417750943477324658147700522584272827792330682327132390403362510277099424221414789864843515160486769651097857767121118710669240635774460788895964615515938448824475491610102415208395877292588812018991299934697170711386055145400816675723955070731576186237621685076232660085690854521691538225987615667524531085868578932191241476850795102829273277560510753422019414005328042824783223690063178863885761622778073488673456159870858565842443704802486497762401910694356345436744014766761434834818063585048836931814209763104289799428081706440814907435165709603755525035344551338276009571728000874126962653823510737753622401610388265651096808505041134496884290272795274083584855642189064697351229537259450880856766831255110266217034313682122008716814227189259406188779522392236634387579608049828147279070020423141989566841419271475083393601796396505181493866953723899109935902059608253312715652136613791704207569113412604058132574528141123446402248048460390475401576003462729432150011118294512198457458763421349220020838703860159527570344254071046303699439337914692250924704772868600286860328128187839897702933706287426232319529105086704583120961614072490807958706801683158396150992298734513985417020999278793600678198373714034234671106541133566168572829373377222692270316149674834186905111719061486981848002305961218733135668354153740285074946394853808709515190682279799727578921375609420690194155544148918237269148899706603070459216619586782037979970705729312827269364097234166113492760295155932331241030333789162324712515894480428430077071994542493764463259255644864614434214402226801254665019505376727345078852926251456708339190190974028489388252412285539394603474944698943847492329072057530512151565688510373771543064028562974474220702912971365481846660377574810711059009423389546105698929390262744469749087788214232279101874104365360560270233492055877332501027631962502640089313187730676600196651434479718117721221134917031910915898897622311650544494985330148187119791405208968498159088503976246908927224598939148812916671968317700519069975173228099294278286039440022428726859367001225335650726180438802905873682434420561931816022947255465125821951109766371201992091643270039804465814172486764801771695264377630912488844075138111393611584397527667033344402143382506070346750280848823533006444810749162639794821765031268806847348532860067832443560125018574121069653028188159987156774594167169031213992501703923795219674555338770799677914598087095784993674389904599460336420289801208839315878898897311974190654127359699485386944316236106334697397761192965324314619556539654095873359521616075255339570375077077985812546000192623037931981344353534527397924430019759604767410339344360837904639169568076110701237863981721015979550510447663418367680615164174367182619379351095251996876787626616026174854737509723571224923175612329278156751933492954456409747551582454367594683699389813822336391930668341747915854527377837774144957488224074570547678656527763220621024535839924574984304628469885721857987931943596520972196761862900459102924620504804916491554269040069155457311637121266424609885825948837457185559186856289439197971498759091524445546491017415038690223980515903931583198293989956393865264357822490375702522936547842939765284518339548871262367903972910401331229088970741260743180723707673861782788041089463616336572567972953117776861709030751906988242841060360523914717944701849260784882487372816487223884548907620606099571330572638530093868207849765310677131648970594170161215195508774888188644085726715273937539122781961561385526565393516175574159332288977994137367680681793558441412138333935191314928637367653789350490466680660810550045201263026657654408740010929149222401688222047081657923912269536628990319552561445498926236552381703288329098999898516052177972294524387389747338803678567586821956856763644987609812824635260453081637205168530876078380394144204161968962538702166587467627665929329742655936621151951145638816042877331733403720303837988527936061668828687483602100968986698276541007916985105446346261793467215379834056845179804914164927949882982516957381128516359604436282180278584382528594626677479239259400539496589104541152230931095040867716097018693069524321436735687411230441600330438129165636053340640593721349158286166267423579318696569175823640300341951871961984593899659201567829635283815239281987264505040388823069035186069152284957809856514426166322699936064056537341379173955188093706104623274360260480811449605046054941643799271688475060940642842134233336663566079738519120901169919803436455668848615729469467381915687033668363073618390684586073898770121154942777995957887008306209909462528851653067112338458090935923855710206351748731038036457764836722189910070250194882122860029813027324897728525803585071783047083979713776586993448398763190920157625085350905706172104939856685538972794659842990723442702110263810671087193276441114057418762987054713033793174891940607373107372839664409520295046629359698682256773879072697460014947035352835125161052934448340697733937068134730493051802297182613225813763616896076693590689812740561116674340137181949393377332434748844323969519181204121624193622741799280748777849272298672571444059333076800261596607047937220986554455142767309210604380148687004340158178504134221995590905290302109074262239146771626097061854581013776598526913251374559146925523446256713054080038817932113540873996648187903617797135419241834692260473845252483970507609448181691376859933482890208836929176682345238338434269671748508367802277531064387875265807144843683555033461915101512217478636065135778334757397569963446911229885650188145180728972242784384047323385831502497601134451927110974104774553291530778402122906569462796799549860634658202034319571145981090742984093961476947206134194904735888930364576787030559794089486522312239148471030849193798714669786124281989249936595926534852118212126473418192755758774814441653970501196310193652562927148262749868784832931299581689225182027461837705691556666311919909028920639919937829055620750536751896838312716622237682428054912479782765284560607356698362001454703309707797525953879445231340398561019609850649433418951472580865738792492172389947089751557948795711652894059147695582319522422490745422300721083459651247357250432204756467557305262583977942647673347982042915842767662454432380089713855467053100334318565821115916263147939773459225394192360504640341729671995746917627867992511559686053708667146883910932867322960424642386796095917893838594322931296222884089728476910438258910092239990435736585223725940704528210850989274602273626701919458047152063280333638039842419860248109558713885153577976043956491621623305808602727896330226847070629809012753178756352710234445477884819461421123855449059499911153896473456952235859286286917628442575539652176741843718639170710927903070619788651524290151559633715230241153290351500560604265535719437031380571354721379925053483499624479441221959159998726924307847618676206046129020051939903209843565173384046780015627955223681734769990619377083683359574235465984964495885583988070070921002114566268353193841439945448766153028635779021062335355659564793108101868833364995383802251614796823987077945843538688149300813322945727272942473063367046966432947402205308150401018332381364698977886133175848769146949747197550793290787433457857149918207546916497431885540783131917156823342286936152175518337273034551290546818026239165008794451069711079554647336325916997643098887765706303626353199386797292971930829795805001866263496878339886266875293446110718778115488347774867504988810789774111963364219459103448744126482456145592673774440235205660418937616182032711988979632879778275667647847123389865387184368895922317627408644529173004741687449280571414596876227345301502722090656347009484876098814832873281485335671256115836104340309108342551274220520830076428559209172816128472737269104383155610520434408808119717198851132849437331036300963336193461936859888110353888266129543026494664212870405958875151426976772633939879170762820193849379217334786171825043648766543362582583377779963805565780852377944911939457203248279634012561719924777260067550620565197339223442786613272976929418777578149252230210133052987277728125854385416274698447053466332930166215740625222934127566735152361614588721321554304733717359520277272273273413464890102211800189766654166960081068367602187052088936757430297225625436680118415129421852336947095706257791563690665759201629254408706082740728749618947316609132780824500511445682729689671850460029903093844140857856602661501347819792332745459023342222226400190151005022863886970832373120633448016987571304998768632988712877877800059623198706862490067214122111989626804780817559345246757019635924094362647759533016815942253351058031659459172226101101682709099102785394701089586979918660579481668611635146023832901255230751205130119781251932030154974331961984413195229480633768274934975626371207022953780297240312550849151462503970948696108384047980599387406711875643557488097466760967475982961970861849034155958386588766310727410364828649309304140025497647412629668183878684902347211641243279795332599451371812363953439250692528454295969245221089417778363653070536614889223300035315804993965610448658611127794748402517214380686355088868720436296235414990098055707872827617644430988066310443491149405909150932404070928947189775168785790085300824718290824138716996192614570765098799122299127210682381011441618962871269301367566301481563155326256008564700442399247777721085516618935467706718662390600222168355846536814249962693928066442685489524753746444259145327634415170415813668050889784629557811938010254148658554178780992221936905494147210689419676888117709358334837493543510384548303221617908070565362829618721784401407580961051456171195890494927518114708743379156571065822661055330409916604598163508552287140943959945964735285907612910584366577815741947583675930285098006721458335956535679622044167744273386334038335409889036396963875294815117022199093617096297074129041822626678322318695341176893819272097805499036079670478181684185310830155138642318067260587909251367937219424354471653078155676547105102322629886693904935175152427908150795901472935263050052091126879173171291746511392592842553899443731387637422926271094655680538803966283056109033070565055476737212240730739475225652641936892170981025833483326643195329953360243984459986755115022113869553258138748899520960351602752320856725361173203728084715955120692177325126985514586483894456811377769820871346964913082988001874510587955641044674415317579616260201568259069275269798552188490551474538088937050840207347665395054706399760675560802483043943371167514520703327553416451111500600335844846827752353125455620227647911003422425662712823895819721166220405213570055689959768045175100785603259972574784317988112025728690394288624801892594805035327394149928901383647677291417543131811099847985785101032784984368351589938324113997104932751311575707066395380443070627666477051967155770168249404495281109149716796938308656612223594706953075937297226448131391997576346724511731890196616705532562323762513636817464193188481603167264902123291522263598981227703587500495084304137661227677601212629421321870397682066262840833323261805801050023116652609110133284737435985011621284797959675134819240042036959965517371198703228442006598001831664100015369471014901181042048104204320741347247000954314993940729387110385654780485394716102781874015860395940773082785172269148779957279217419471196282301382216970997211922198608720041962777448098085431139867904157936980218768526169502521696759313455110768619605333922862689212484533333882337791088560550477531090753810386729430587464945957342107318421493654178675462310652341344248023101168727284618253088193042606625390209568313982349632611472731340499935931925154143770107845702709510820131711481552596215298248335818208437803960449984906276640641130654694894362555764396047157840142983699267041227254037298260594000970259153783367394232039824986159834497087811837187038148200387017323844464646754093432101316724944649734762076967355319969627547305834956597640109465604333262418256931026625855969428593690179801888657979543345064131990544469328091240669136161092757263078805177438736934944442987862533021045926271444591528559724818885273860934938438794112295117686651454234694687014535467227502095510398289267135703043032819190434403508414433405200217785320101760311179872313556454519871592824189259559699849120055899840132989612273080627268682633574257501091879435723341676614062431217070005276269983398512405935227260605134650430435696843561663911602444154420184574996696737674681703609742468336783048932732195258651575508751775223179614818690130383042112422273554654590399901023021953462485223505255165336851564485320215765374991602609286421769926769305179387912629488553687605247021001504534716447025666764871575911852299278383112196463452990409146399316753034239953646624956004738052023691580258528530588072081869810968263982178363222058944184086234326657322298826963767229403992855255791889090266320942568595636227345777365715118801669793815180031781912946252267533718870449533704582459930945856326579646230340494298103488964593656187990936539613415406133283176524395297729834471017667073598715688269529923321610285286632365397173769067304029664936597481396201784803633963591327386177347473431752595730571318111276434921466132632958282657185471532941887001835871099175344113901094457727373311004957282372962626331891997728157520708406972313600754441255835772155989751866258638124913050323995609495825913864805747804204348344960219175848611146991932701913969273221396740865920934545183216643026297616790549413005216165923398309672513780952097442449613347477105588047829321178746565305178180189315483563303685023034993266782538433247261891674314035108211860611588011932239908963403921234379373306545255213409748739100130920623019387999104257487045470658290287668122916801965601191666559688505057264260669319820603812779374464542969375874016211030818540586597331722079577744793463426407884709937448607724644992337193132782895658381253851777082299412022567370983551211890391841969836271557135126244272524514448152360656284664318364700639170691444242634256798527910601877895426889130092162131821463062674262952993798114331653416461080218969630541250093650970272939857969601194761731912069467731631371844048263025294990478723553060960999768021134095283136952424965097912131132512935502453531678569152090448368816121143794332338012995998408745761194417764583758294299217603913648132292091484502822881625251707810500797040060474043560184507758227108222409637503805127331741666231356097032026592500681075022599039898363102411540907607587896923190146274396978783027166838438240674650500258847707147505747739186317597438412705015908296173982037181349545928207541829603144192977726718605969868344753922546727697410349354060634724296741860127451569756749374742283320914907868885288069964636917429121139652872901181887839626014534200719358305252328826579269555162996010498143240901629293833650291093914283172523737004858023962319972385649059642490540457594545359552653300535984461204373167507163928671287712113546061861777080614421667292665571847129710990240140108504979432754964922964599534884512670878013438168656987572767751794747279476444840853316894547099111917511211830781030075654696779964539470284413931501281533016722040739728506006491659897049604793796135299610038993885977496635278841565059079572668896693288043653280778728119655580390135003272986994441171393069336275373983802559311107696372645861014723437522526590323537972451745313488099878106909957013526311699303889155249406825360202921639195094758552064927977660622943633222088978537952539708933656290152032218905399544172807945130137140063555780091124357281820915571791166326098134751129655446097773363246366354211712857683125137013767333759690582185410320977957593119250185964495107248950992778176514115402964002976544950378973396959726369949052229710419094820239922551888860666720383528972921481989517629882246610550926593198978432520557358480397616045594532265333420782394562798457793270214267161397999214620671503054691060707778942861069114742479589138505056767735275750702417501347616765129926531484832405916413804657109523866847989768480940543908673553325496433507153438459798895001263325227714311750581746797929181281671815715966143919371728690812070865623538899434750037767092861010965061512304664052759344537211881226610049775837426765093666851267167536779654793185311354808862962477227335592964384077785710193815267060834018214948050102667005203555985754068879779093177817065987027997213661481076748839767936264915943215382007980757574581687869089334607814264168934280516864127825181411564723767849447909187097783665093405481937215555008796981078045796083720728709750691508661286539136603792416845071167006776706554994828539502592923723116977722694759181792518997976083930050324124055189550078896067116328390240031637585354353410805075114659294837679526059278212834177354970591524863162874864871857408674743409490700183286379670231677046080641022104925244246242614678747227472535714733255557090950697797072067791035341847224911057554212705389280571499858632445960528814855743584684844556929349398092454788630870826356183172505579353939741225866483953478058755002147587389644778038333843275519450496249444293014580930908342174091192084958590634841016396074096117031458573602604843339546134364288922695582075424000328581014613026764654499587112361902379742734450798848421727986647989003882922470548916536440917830624209762247869617202725332285909977559680619530176496615534333917448919768161805913718886960743324934750596552764148941104248145972470244619161442814103945601267045243882172898230517872317337712834885096538419244951617879361747238181048208261982491544586184049218058085984528737579254115743071304549059520910778124963119200977359310049168325374944515344821818060403099827719742496225471388951656792428490735398534563127209365812236172312611944970251145941968596094001043260258150154136215257842969858230200797269145856300113003967094011996297050601189019642350400446591212596347799124796669047403936263255080783323096365522178144495707372115393619030809142374707571956382695143558212815370394839896311039446264490519559808490745208693002527019227542973000665745912532968408933317303496046031494598483552617747144769359186370243280579411588977301827094976977763192039223324478777905381561488086529901423161048393840264300796293086544193487927676437690706426760066913114341666795127050760307591699442655720740283443763718171204017523090209915030510726418250959523666197253576810647311209962249148529152242839508087546453238826643011336419198335915274706878224020248135437310187593309443364107613769149100321768736584237693574878212288012215215988560599205593869733793008315436780658196559549889131276400794157665136905251475336362939037878134809626237830838123085024654967494783179541872332099394527032680871619518410464283602764728346316784767106667445750402803264649440213408820830032032506728602154604538913150174364539121390418463724275727665264440624349978974375583745841877732499171249745546322710949781205206683620436812954926430286967634089060145071451587265828486561282359414411925183553726234434493919157758948502591892461614774936468707699154706099940640020186992684119567852812487288039106030407502646308675909069290945089264549861688609819701539714537309638809247140182160293893356035404152499560729783307639644135645382276357766702888782067774390491164142080522102971523334954306683722282843330092910854397389295191694681279419698957553988955368113871427184809979710546548748601027702104547288417256072476243337685132042949187143140231221857407013293326563199856238551833464756766455080664751388250758075403594454032492845976249795475511295205439595511212034555889560478222222519987177752866955555206639803604588805128436126740685129302012629809580642996731597541683208740267934696002649440344881191345891660305333384404095440146675650215001951055439621457197072592449309781481540958592620746600565132039494880251613946341961123234547912795711800917899578274289071591942372745556676522753411457925148928841762219522348607973254138997941116317994913789505857918100660604350408270067563398254401302968915643383639093129280870968769195752947575719029373973026422559838531132016752812906691589820301984955581483456411509055948620667701386722683271138993731259611505008581691246369794048704710702295885341107110997668780387405036486919840539216737866527550368072861688026603875010994688277596553342516131631085129379518895496125911519214443549250483207579235913154157681254845698738706196280004932778430381914818191006674979461738180753579082799141695879406655896855805913091225856634605929474953308168778263352133215201554091422559563876694322595583371151402641622199423238459689286634461484040723560989266785775260692184400455071716539867332596882817018465730796659566625349149458536761305075732692860979864348981231231470544055969381767077306325232804850443514322171440104555196503509672945716216637212115585370810419279328463002873903030222658429485436575074858035377363477877894450977648799581242891142197819036709362628487629494804128477891422417717988124002027456194274315085560614185935355228571163611449129526491240826150207643991278428962196089858245432513716472886372061485186165387279298715070265100772552391143510999249722291766479499307013670952971297680079468757806517221847316562678652130823923633536143007113839641174021045905432209139398943457815171356627274441727040326124503743443766437640949568451613890351483720068315625342430194986086110796847313964131053636246683946326469311323118838747691765226425579033028394815471317350502760437599390315879958082742520119370822466308563156027610227533034135351513427492951751919748015472752562431310442991643347636854087521550232333469047888066456138755375766997179663466182788909083563515991122293441883004677950712237826974278746740434109831534336030578689452042486472471964854476026537514594353129426863243815013302311562402287366049806055820991207705000023145133136240107821286961487036659956230211550177882002723361354569686442854935353340734075300622467409047275660632245136324467996542807267972097462649886882880306404695910319427740719450149313969920906908481893419908910535497390456427491250600545374436856830014699181295452424727329301784897722956920416589250188392228383209521033738393145777477215833193359880021444917005239485561857169607927389529660308802851753901489046578052860460097301796105220742885290832847455765031053733241299087128944068262965107895102730961510898774608835420183653385929747542180446322827133572119724384517832074632472544717257258378408128702794338902941043000138701914372066743463274084150805945142431305605516711040993215139783743551050677757394620836184990262136074966535563275881232667492758130592629565598519188648672705774285424280152290338239801632438398180446121974228956872297233697717312059690341227801904682121299024312946069019580265882961504895733518816112569468210135705618323794624081717377237576808268536106051411032208511937056118884254228694715307767603805903235096981834240251582024868419368271689943566511706330670457511268285579519630073062070014116050609854774064385472332274247054353488720531963493062867198825929197873599115172494178263741422692159957378324646489149198133995605838956917519651548685069354098453428787072296631647584600648457557979048254836930803236314542166351920773033659207107438508479943138119689467125906579517601885125222324482761898570603645451400928866375559366312847484947867621692739185283751050083776927781227186089073108446486853491975946970157874991950391770987901394504348780435441405172921361633435653242917591014364174872898137079914118181858564846944459624561022955067766772498005531434555633560689306954498113866746961338757727701218500636492728206160802693740795202233976057555931279407235096598862601318868941395796792716250227772009014539519142734332100921901311634219471737914861440043717066086532400006529467220563277879054729175492995371923330456042868546911590240010239232010043301637485661617943632844442262454521848731694843667749586612951005578842550876465168842202520207709726682224101153749912848805411032153276362840305130347482235292381408755669202970966367447372690133895544241555997231612682127667737215022549532159965487193294279718314243486993697572035597290600429831513089935029129067105303534129114836083161892878648664291788907866186270087469110329626036815098488962090189899275673178958603017134220294893615789239152536600269477836865610562392640002306523880127163397823702853164692802146877665760751513679536756714541228405510715855322003524408794014924364363996074156661054973389138439295472994353100123887645674228027024531268620248240537084591429918477722926894600731901889420879352661379143076394475625903208064275901981753859231148579222644780006746914924297169102434134044336993305645799938239290538575252736360316107752497123592498442762965253812327834666210303711543148370490401325102205311056330908464392032496760418668547061832804130646671164324312908578856432774038180904821027008008461780868550895725669556615503105229360598846237926571363286174017274096736367588769727952669976225630620638671648307954987741462120772497458439116931981731115807154681359773866535419250054589423583977773315564236584773943924601459886730868342771721049673461455056597852564651892017504765202078713807382337311415562951548875346047230780446545797572764255508455450438037646454195350478721870116542893958446641215727800487393973541767703737474736854492570122528152260777584449084502955433233091142387511632993914374844606811234046100223358987610866343317291920009268237236124107309443794074992099201776070692513813122926178742792153550036910070559830980999642599360724365840061102913314800424132707674799856840513329413799710690144522840850017059492287257782416168744354297822339176149513900748278156496090789466053080026155467280366174841357115556069665093016105860846948333092169538302753535326874685876794833871222425573665703745625536508631827967858592203796445234913253080519986346560420243740087967342465416437512830756182184580010976510755911688821640132009861704925465247263770306686070338423054377435293463480991737730147101730137996892673059345227344992026902815992269962823779495912245062905871211495109769916915708119057763914629829379684254700491965055834084248967962959670161837404785971815050448470407873427715828258689496706947971911805338082112028371486935351187111459256123613750453237273897982738441091951201042536424062374366848769945962474274818807871657980857024688833247121983616782213014944442510542195228457063843032713670820076563455425814962049313056354094180603471201682009371174377615256223093683824830189553006032878406986931823325826822850993744114016506553967102172893940448971854079389700307042417289893513442872483130393111852677832500153273337386941502676568436850308373407311431878351530437259932300776508150103604121927207713592713908781657525449495914953136884574817565898117954779256621060605334626095659647655922689703366619256059723352545436806582049079737935883589888854833198231578030932060371999029974756578421069001408077063529959086611709968526719027800355267709743531119998780651036153794987675461653040866397133205018588863656267744175587085853000265648858221055772053291237170000255715139744493431103522965337199006894292825096261452023536298526960135621736702925466569496285563836980331881011976112809972209838639334201277078972188203585555283631129810879875804102058111323704811976060672797873664131802643382675009089094448009196469985710237069322452152375358506063105584612734632670041427727700496526094435657946287558295071164396584532325765528493033631319346745974597983204811567675891896707215351678646530932591902753526008981052850657090790490803752207922103323717639015834128978170179810018895369473394127080544720418952061760112841952801322783720855752995442418033030159380934524196913123268540179587666314842428101144784684321428280455593726528564727609243838507220047165813995937318017264161984770486693834553942853101441901708170225124484053272018947895981106710629255921983526415707385082416888208041306615319639094173085500463416805881390961135632684891578254987883077205984318305622451356445324645415569857143579716711258712030399648975696102104785987281525921314270841136017136162345882815765682062525906731345294026968480790655967003999876911241516257203999125111674187930860367156740908640108419511891176296390386240416716163361161863818359106204831569954677661586102661714388173477297593617846791785389331165459545007659964110014323859383032406508575826047290221787318215324090735713307871794580646819069210340345550815067761109286055504117749432148404269090977997632858769377667758372603313453558292514260816145673010548628304010100583277217200411911393834002511388016828531683188570736308672184669423086953695069802413309542141708954633651860412137700612095259327049300448627531767716266518467547920539272839356287790153289907925989782976865939260105426810538186359706161403727290538504420757394892870353388731230325020147326900885328083558438046950335844668367621967840613690887812450644540793620706116055291642852726700372252386354194160552449077780451420967020008173997744892994769095567649100536102838923304486300592730070662999234640985937790090266011681047575006022695643451379166785337737835186811445177840654138804184572480541365860164108790449940117756243148621315191499081974937947167310892299322560407528066141286975700759809499297986036478390721474325436174528497217658760523302222851757151660469691562704643336464035389837973911247519952774748535831735451045644489269708258061107095477905043801889420570529512588839610130007105432514526904789956086844705036154498546809290703130523678264036829435312234952226655689991926814807180904351769896920553868889571333839849780110797729261476114197114020647989170671233382869310331197922704196475790161873073803344901902506846682131004413695158151292775281555941719123575671046910815624601996444037201223944451868310722580709822864338261244055869220594610018600454847964192948084946853479377533892189539530048231604176395752515925155503733368475228835813778450384188485070339813776143178716375988165920402537073893868912932244254971308144227587950262052845868615862143039378615710634028378652944111628536800714211453336346802541884283546534269296048410641706736676612509569011607991826268187792673155013249625829358261925475002222712260373152803719401342933738690035499467661592470684569728704628512998486354381794353345542752481425994464236825657714325159106003178298468492277229795427359914581334697831429058025113702668664310457490366148715840176919837472643999718130553509757060597689849382711342735191588741080352295836345913612341201563990359113872964459337294499461960354646742875864420726514678825323143279375446523274550229516272981800720958224316809959866636237382185992136650900435571722302042106648753159873430095770413077232228107230760729925124087022009743275410562348193563249237228556775433898195818086791213068740383706569706088403384098129924192882389791191944854043121434550675387703206855097220865189491595482614669066588881050484843046331550117545550338818404877156288778066765664088835936179038792073793700044414587832299195123450175206248300437327374252117502168028592287547844587207596230064348230009917406670471588104384632899606061115148707897867462293808818840296035871653629263412072073199812691237465561431103152753289552929504263679525813310243719140719743557516214642039700855263031361624808821280910884459894078952618569660414079137040641162909659333593327145087125584236259798765976550628531567545557754408471803771918830615147871593805170958167889522760775734979733314393127894008644584520607572630119966008790350799546453670421591046384829684055574053222442378239581656928708062798975604854995438270124435795327079905977287821877647872497093133911170304821415036337025023153770891373034926893852368483102144666229649552208429891876502844064308506651213429678974893140691308332596853767529848134303075299212654548855475392363635473631969579339611849181032968360615335462221844472955372137833430569018759557004624347350249819317214967495212821080989749155014559582202146655190800287015349293767939120415970217378746693771538225505688972555449434453272026574428393278657138470552115391237292946794116032506892643724345203640071106330135459928068186783024846748315223468561856744859236025360412858786332225115710223775445079388893506494214626768542664239820163916720304893096455600088391965394113689502966571330593000249074689963579029619196965579082333522206185261293673791894203206348494043960879777967417137794102138434508533691277661954433512116669063786366405633772090293508097249837896801326438108953481817254241569621744708147216505771761747939388388439707490971275493002322668855327945027556635753502337900448871696475053067524052643153759671666251507073956843390335113078493444840135280687864288868486248876724140065836590879501023665767140525158179675951083209119782740981922877065590723335838217811341173738524640053419970012941907575507443217045977926967461595819020067547028015146205385188559628439796129931382338775829898552605267357370653708558156990753190439982940889564596770966922381862947970871667873030295494845253350891430890756249419171851700708750580040629445973630251767945077258490930104170503214302251240287055557045777099381991965685011470024725311507301389767183242975604394885130360084894131895528551371176510672701008370065441373589452279106874190006681499140339290458814078218615511116781921183459218344369746277206485840009343520935291756220260966668414376276569618443196088190966837285822677717455725625968780454257053237175578195719426405776490298968740289980021984919664202690326730492157293301250192746715231416629617508625144052136518453416113044055221644717264499791413728682606039930860985450634260802601874487104742064188507717542078231889470523679802480744059026056455138289779141467927745221214200761994434253755058469954352551444689145238873544356359525122338640176926786048468455317433361767656286743869289238295711390271697819636151197704315389493402213184171735537199034070887933393537953515734644673791068365830931773119945511548036712055962961106275421217712760592606683251526534995824805164706695897959273664379450463879351085049427083853597619229283125207664237433330120940854890342639340618224122703707924054172115213962219570361983109585908921888963922686281027645731602331550380661848033358763647007512005576755179144836275865603337251277161860539249142728445671990017995668134030148331026182455431744896822046731300151217411610948724385975620037712617051444588298962049183255138659344394990711430885129204531727798623458127277341547427906841976035407453756746585583368976200783975104291845096305925720302419529928518305347130721696336666190607853991453113271728768837789466809591401007017191012091840357152769875318444027412295003384793140092267204419320869583270626160596869829124573588604156064863381775286475396874171489600439643659973577032360151959629133182802714026308988911737595707349170663088787901102337771663190349688765258634651592935574913783220970417516408185047159827606537714596181569080496289965238818100444346572831047496145271713274551257405866939054735244931366316620895845100900819509627302042871778269580139211637974763479937356887915323314889234731705940971485666774020900533051072128967361313122839934358562345098596109148785339949741513879987534069019571341266388180099453625006697020344062305236561662706072007765911551314333170544530342703406593123662155344677929285102757930785139250305380778808385224815722220764275936030983966267174546694245310974578456945079087443846602983345443255044187191436566915542667472054812772770922240767163420963181364285080492591299169239124532383540536311713914595483669587043105865326591182987793633499777088885414724237381768091226738921314638904086301056717516937081330420506692633145573573615671000704987554024019617352548117209838052583052143086925495827609231882166708548540725678352425600204121699574892379007380232597216148008130409353845830806829791618947195996746097095336266357798841101419272039048545049452521499959369420885235371764379967833343599651827054592289273341234630591809937549830513722984900673079569523889998480116899841007055214822239093489651811126803570997759207117431332150506777595087770598301709770041259835453061442286286033169127867500588721703436654875958933104730678850744424247461979291464575217774490556207574882289079189164308074501222203650327361789394556521159791610832028332733288250854514190873965984531293859880707725438561765731861927154529337572860468351902592483404794162613828357953274455603796603574268530176038157158392964844697746212398564691772819838228170220412016666651752677740468522203506555720606028635013627494564274725012380527558638086693723255891125476692157319240946376267064756023574959677431083885890951433460766741011230550532325125006918021772931810144405660322759514137153544417654669243341318607954032786534178962719009394119845182393177085991186923694457883502612056200100343208253251724842420520510441025988220752616844563052004535592687673259919211092214778233008585486908819386323241301214086331077028648753243535746604291756586278383525795425415098886466027587797211421998913397297257907260862582506754596680682447390600705475045920182740245255603426918664901543015334561092022723494042017395901377920229900940200203196048559162625297403936990101340419225158774610743924762843892758079341135554241444148842201185062289792752285106059159788846303284577077171289280651059375591426756371887315627102012798110543412167597564775818786403340551824201766832327551406913553592461687829051798934007832935207036532496990096948427750384501066412255214734108005383558348368197703087281334418434310834375064738759137739771690006225055087414047068791374022795113495298518766563977275131904376558058338931476138753687128366865056903502342647694915483278887778132114478408520387757841191561668480976694317384943763653961159960230012783829959661359738556627867916047993275882909882308335657895178669119367114077222089130953714676518238137763155046438619636422307318201674375785952340327527316649526866292912502711074985330303285417142562709179820019083876666626240735007908296251814477921682323244322126982760905181147060275362260677334343795190506113000788207976653489295745474456979540688533088927189292187677093806792950655510442932744372518288720060079602425909206675418031469333599029757609118564042342530139090819983948924907077139960056399776703225407881109394282874499317585993609967582722208970156384194648165460547555460740607667575206805028847822096785186372271395383549415176865875614922128247386147959485454879907272426421017179970437389540606327833518797332801324151865852992415385208265451134058147464385663243445205231542091262557181279819466462176425185665871556028221569478941469167627390000352793062787651454181552213660770616888930063460479233868775657005240567962247167081488813278354244962891610820044385140493824375567804245744759154021610837994717900578289659814292724693257716642823228304531163282986226289323502694398622714196426610388141271051065184904172708100701110816228965811356543029270275477152716500144269360606489940834648669635174021489842576750092714053475907935472049816954819183324678459177257082522106742964440137554810349230426245403358301989832087114448001458340037498540344898510776049575603363353425677768562892346863324446846418586644741785520644779966779312903032713497571476389216549102586184163596011694294878502470145473689172755519056447411245061184450418421379667819672549401179965337857538328144972699795239687634945546180921944367568016926458436842558616857046466932988509712538236123875314532679571328267526179148637438495556334983910210204344073493565170000687476370985943088376336570235327014349917953191003720593518053770081813927696074594629136540187616157441579569980377708278240525239084071391711387903881593432384608092671801468959693092508036404841996272255447611753597695479265990223676920672206248001050054220042604289690043036847826285336366570955912684904438414714733733121202787369354259965283068946618204174461238401495356175029184127855557659635470021594299423036077212021428974906467912644817646764958813417046390113020786256688013423970174915155377351397084005285245699977222220644796464636090236828978658610850719154820011081593225630696694554226000592958338486658060943339708528177390748825579325408552732970461204926373871178181406720330105592163472030949670744548554727330453506180154915294486561892793624140098576314849711076499680817955712923094404337210034506803265820027066543686649390879055513000100082017452970153160705766547764215693223531205861197450179329153780963196796713231094489609884239834663695965003237296377688236582956458657834467881935840159226009552861684205468136184778786516696247091038026848198374169865615356869599943118133025975984036116808850152889386449154094693584798187334945128354577823161696121367827009221205292038491296651882502006928074654203153750576279087755541118495108422692336665887147226107284768615553010680643708508299295630244295586948784196937692859095274351128275048510347522345049760050599452435163480438851694901481900137323798645546997486467733760323523805254666536301081016359631307741309418825080597854632528207822892665521231762514983637077395459247864607464596559528009471995006567670013741905304048767068621666961454829302977334969703904045161915341984474879313613316317628501691365992262014294808702999927804231473536565578575721837821684216671761566551969101503675960788578766072944946767669278115753307128135927751477376676392915863370475174273116276869901774963341075122470753034696217509786358418010657658018713410002649019587467378419579544322628450707862381297218126018486214554514354052414425508095526518644607457447171395032078670809473925448683624048553877662615533921870444449765116014579846963284398860642563665897243056517559607514750715309012508339048157262719865430214593595230035092439235891536788296069921276432575393418296905024961413148848346431804545294279046685908782088803648111158977048199475910236040977540561225279368471679438442696671670292781618612214440102561528025839964699471926713745813096129343270228157952302651931052389670716924493947165267214702749203608490700686318243419605639614745282227785820136107736818196565941277963892476680089727273076857923972409981405334379609777432033437707244778017792913302231054353258672070317424117627137127166956674753828227881022307788558403684505538301032061585375014481950709674772639946451352600891009759169694518921757305157884427829465874216037497022377208456417283818868191845752814900973753212106805032760485207981790559349972376850774309996729580708014234485184966035825686275228474038353123083100726870153739869980482245741635709770120309308433303729159216246644792839982314057703630118025837740404507180749162197408011377639195531277306546830466600981041230574556541742234537528277340024166841901410561654143718801781551237522198246363290721500993067360698037576029509760685637543660802629653776186720770099016726391970732902336287946735303568552005453782828765028893828917642703009055107280526457177077389579977521283722796228468025859752717675174931482470269827727228339841348018023891355666749152724985212134247220694783088880057141927531308523129080752487921104837171179054908169998506081014970785785234162402268108287331702076442620929115618761636392579111304998805185058234145812037785911085074842781019830030338956565811216510699530298935044877865372072637383896544495722274689933728732616892082343473486196308909418703546403876166162779686428896836122077902815427527668567003749021345329143264426973671458264391825724733018572107082487655752813099567702357218991402567117961626127156519791813649956544581738596420561341270097900458581905655956973585723700869412871584650279732592630386723138984509290955886186626234424443455277905449793512450225181069352440663875792354701885674860888948301342242326476599613146693293270906494381033222604699877510957687703481900837634281122129703314250115899984568231015334805816961881809296650762900511670049675562205858502414184302413107061361700740330456294168388894335816272736963231733810084899735251003276632045699780146982121167929978182400131395314097784566284061478471672650610069383309437169525323274401798436859698611436849902076647817014721932290364547126759112323363112766534525179339345331694122457756100332725409914214521177243749339595278115787404521998095516453083144743604538054105624692263233999584694191320678757441021864340298128836235865628563720547077986330064207956958069071258221228013418102674950732067124517598350236593261816531782803555822277570103626249190066362930579948050365325129621270327839761149283413180561414722461081675240025839399023435058846903116647041309385577421696141458969741867378684338378104964695175148502736638331669986584265072241010376488253822615375864080487429881387190353401689808251705711406098076532625001083861310346743051119158189972750177804511465796616981360686255856267398740298570356750996867630975330304669493380431908589940697872933405101139927916669445891488284346338363812993207451158582854313544602048855299958630163108866400250188270092733500834821465265874711572646621237303694865685261274425891456045517057620883497077453448902103320758718510924067371988204732742195304655404357631545526553788243749927773663320132677264562265947091671881516759656618051859349026434720350131514198415438291074284845609073756665648812567205476265575571680192751610195786474878972279696460415282809937042012494785592422205837900173739743993479849995741777904509658177493062504975459240309608404310747743259810459837148246897259255230177207275045329063622525806679101197583190815904386964450737839708857623228612446642057289675035713432696874421132253743498787853214669906014943639137054398562160910811796655948190630853374475294246815562609152989862157779079701424206911893962903786669347001262485383757716778983161052309232227681259671198412778519210330132794434734435019706473423365314378156263255444436435362579153002099929588420459969838809649241600798041263335161480553417237943824703374448416368305553345676758146112066285537334478146603726345167326241704507229937733653972559377839276437469505637858561592427004580280546512863540868220845818707284624375114014700980497305116972321731098419044035403934316718504372810651950153652922704767225867535409081523619702088033690766285175617450594440755557255369963117466995210975884678147558534643421660391325959735448449754631402284214033423692055824442513424400618610055955489415483194734760457904113547340014410625616065586527583531896101757759300629904141553164805588667223857307686314096974518278977766016390320019240707558955780797750961227830562346493866897852050144248244507743557254925298145865918901884720083130424085302423673969501927719420892754597069224265088870114910204451949380184590978707608984774373789217936177456357661481359228806927356067232746280784165733763325052769455357193478770099619559237548295107757196268950692918015387232559034225136235695772975908846951813738680781505324100044088144150224237271730824637588547860277286921304629453963688568805707196088959876270779774574364587958412734503521514605650091530201499598610038691150005213754940851604920329153239453784848221196226187489641671361639887551314535461135618623084191467053554704076644555643713793706693781150568587613118544807921694895255329703052252219812717501788779307478692334986517311034091912585880748498190600688619125184967708569791942101505600373689336499339850008151849909157846480117418848228924546402988494193336526832217518945849904314714287599269274887400515727264245474233080234173805790287049096874797539859973132381878766501244529391959704569460084213684736006820500761580699831270175912752609175653010078935360512964128149083224869436482408833819525669256284776760256797396527908756260933334125814902912440245890084514851405483684722181611889476220961181935457088047261065812122959526163252692301505884986074927061108279144694256179123704704343170210369350156496517607987429637394206904628684792753634593595173172683754724305392972654511735941697762372903962966472740869523171133538173816511087417873611234917594125807930245996884639878232877652856041200159293449745825472197015627526452684404603132746198965897337246199595028214010482675328340808074941433863283023819139119871015693099638235197739654553286790375837725880185494177666424466160464389412607996868675704474826174236771181543141374094946355457995197075110579824386662090796830791634068085873358315695438865919058935686541613029588272639480509548236530992016335688024741241078433034549862008093512408419529803157533422640353548057363376021476590795141107491913867979144199001242615864899829303544415432205688202502212841212557070026045852224394787282560043263960974869916969929510514302959779130736179571250145765277516258091476911779126449413609049405384357456238733056286677991808027213060328418959400543382054992678607697591871191551897177608438083912551861689364886614590018784495365744333111784590957678166202673441776000221504062800184259800914826939696737064839043973467500840143389837454160043787034188981459932974850344832234289786622060875930391702158510626926848178190164208507703489285223653027303387949340130190813857904854243660395067584617096699416559167589983429540792671260433512627264086237446315092216847893190684341685493357767652177063810429951415214666118278066826125513580921882520020712460105370615392950662898783123278362868219944459531047631054457918649791110249011362052652081527849920601492806050369411294298683957213362483407929500955195119970352722021577578797311507208055079853124536655410000557023419926732529201043482965284800349401788973582401882977604165833499966979791090047166425685826988177579646882680039606432416681549031624416611924482153916228080269437861536911308085881959499310458441900671560270516167284692716389899179229339732736118066192891608911248445872269180342282631945431979807253224136760584385269968607042222142381332763636059948130966513902668816500177928980128988003454574295416038076007557048067394166436344078638501360794830426740476361961243609659522621648818260542003495980933683155134401500425924341892077845001166017042483485802508379550562675715637723221895991355292796540825153199364261296472280575362186677485505381414546843387389536059433091883369841712105891168518772476812962782477044847963323326369048381253910259210904264158906269811967179860178215656024784683923306351003674654953853194792103360005193398337576134414597540547341577269138525057382792246568000950727272468646159857907201610364906966254664439727875786949505415715795447318411551334762262323509966480935124223273339246418977029969447092556650824506672725220791997929805982172012336101278812523025058395099713167386094597444256080833618590022475085303038048909629433772928951273162292372442775592672806430206728919183193118741029406956279472631065781128470222253392033808329530130193458071195757447383447828415724154109796639482988840772793034701025474722604636230862158791206358489104839882887673325610144783759671203271836582527545329752242043544051701002033858280011531265907600482199957540700484808891700139569313323867032601657434540418682614913710010245572836787583497448408546434765694794134521242007244355859415870465097014180800929086372830763309428067993836736446310909944877674455147322177879876328802738701743037487649739281218292808073369923431337715551513201077755304554977326898281598971894723895827960857995580255702598682867625328276294118699045904554295955928263766351931040058211500134793431576453244408183537102227230536300376613592601377129772510750052436331125034301495005024951715595286732699933720616288812961666811685426006949252026110800642884168274229089095754951352682340636732187969400488550730957323098615266515330334171505607668033557450481059975288515543808148355082465449701044043360042738465476692999222641548872713457241337599409609152287990524354155564728110434061002784380627727625071144866234652933238259371220583322570591406001592545052218604748018609720259814915999800713014537786483891459525052401766207795306146499547214458651766546646352154295558972255536538976705035126200218295812506426585298115272436734635234808486909580315084050184386819664070908463031060705250962164842152412297145153640950343716143435207720481663621213029826396599392901767472834410859730465930591958211903812216507350824526002859232877169796304486736398770285462724060983230779997894151906800985069263679289325094686327422634134408893794192058781066157026178200635181920838287945724737002481821893841750934114844122930765234995683997571732202195796792757795801054792582304348446659345882387054316879370392429254508801453162507251641954227474923097358328532297748419693117845131519202666520355124246536466659406036041316714914844453018255667399811886715926123831775465257409528290455084690037317286944459554646089829562589879879247702612325883741379406447049586669282607088353536378838527179816907545052697655433589526233685115721072533234962503600829549377251195695655640153921163666610587056057592032048038384684484486391584052075450445298437739008133328816519364759595993430405297326001022768883541243261749164728363570777916982012114897521501648782876992480972586276280209054449190230283244805272828983880479246948613870595768716200872820484958890654909276581608425503482131503479274351814969005838045825422889854057942185356736863224602109331837229677825147803499906567833498119536907050584916319516503212410516656535255667733387144206100544958792715507984975066563917351653718836713042983343213314677144765459753960109031698207401621561563063258237453888691793059030671818841451737592209524667154724887061719605290032376299392629733096688245681235996291113945023985197769968129541324259922808057337447453380985480196039799442392563574855319704214032906436246249596540224968722562706227064713894340723032472719660637898886012714063291415806966118126104861070377602012293305023799405626625904837437066296888556029215812605398702303607594546111956368346996800859066681600906060626388418798233108031594090104966654735205753381238592360582358455988206598879454141918582053948173343674222627086016634973740545923183439081471900823992545983540381744100015940940435233361587398885044968831631712679176999463126641234312331478802860473467288139458937410276384346409598921196157740796735731105650577485068878924506327142458151112859737242111587872149739426403150923852446660372205498177446720519099205514904856636918124325305825591518415026634428744462510897182189076947536806690186207307195809927389167419446351324850835414867569784547465797124860027496298241841082542846174263149466655201914135596572388659509099298994251611536922356059070617913164769152178233756515250673873734576382843041760276701742278266362996307108793223992069463044463491222906030782368141244967735962387142904554171820494945423841198866403896767502031591660080733080084314399995199401207435830672159089682417263079255171174627408161797135963513112097805885395606374892411223575994473811813551659770327545510015648614470581600008847946041864907725981709500021770362916974623024480400082020414063774058318127046989887373961098293014484613293809593781575543991492819670360404900491627562066490226264165347800521779172289089937309918238853986596552876887989679539819955265367710412967156712743715940001064564593692016325036782311796005635889771651987929998011254229883184533994816125014238172993054632619592036869915519086071487355027181667304154720386623782868497188493198484544604081709721713674734867699014246209401822397949580409661628206262609957984725603562814509966989336762374431774839902835192545442478556306926446328947946412138364987410792847815811892985511193770834041539128655912444413114137135760952529661940154255994742746268282562808589280556938105750283655039718137482487566118970689007444216409717666895727871300431495023406627567496722567210594992631085642477111889987435154404249413204950518818673386844579273307001406280632520576413045655993162834880204791285884303330052096831663432111782578715047095339858779195816042970293562384992564138917936982229776273477714049883703893868344379437662568893582723256349033555340769028067700184310542585432137358869458679482725921967563449847105584765833800273250439140361367805757705597941316281237289808717037667424981287474969937969471195538589204788225525321668543190643764810821503766939019322896959808646529135456417121017481292210054369689831440796061862572626539693531104129436782719953955312331562052219326437309745555613176604903699063848623640092053670219512314425936787613257182869970454487480448984091111733142477069011422442753479343671783464342703298059783716120483197523224930962923697305754845756010436563889925663135113879428180433410367904645913770352531659833422091462751347072937566567054400223872816683018202836926201717666714445338371661644288217808149967571961289160513977235583150672244076764696240697616474841959542239728205511011582853244216524020240776290484499994306121680648122864427204782051244984654922121863442022385983139744355772976115711823680572608769302079597412688143947866948511503448095065675719088514398756448746262533567997288379950763149882649576237184641462269046708052929427927494168554446610851136365720293514787173000379256808129088705962203361131560721493523484042750274761721451857794595475186998162448079690823231231428183100842336934605305528065079896166585691825861727154002988786936312245257511463337337798374083735653555787456529839567480823860675025927386894567355595732978633461030189980720933449335639419633423618976057797830655615481398757221797561878003604211080501601192896384451082453953248179896496860931749129118604538122174845522348201254483122346420447333341944279086807745627434714602464946598863648921379632082212513648717926082416273368909532469248687475854733014408376324602275483170808100664871198867208882242778043793828793247707083306407223814175305011773676739997093143528428579971822980550809353999623600340506470318647717764924214358259370893199046900688923417042835344669859030595993440845113232039423272282704133614420137492557057437104088677302863821866156525115966153863911697365031537742572324420088438348399652973469650173748127652740556578492534395881906016698566248700909733208141410308515099061476217224180868319150793217729541298536993673264235263873109156141357500563698830187106455610128406944364568585818081849916458185712521041466109966808513204530970185447151705025377139301670207736126775482971492346978010308021449290389569339148764440121735668034617490233237015615123628956872183108384033398071141098532841874655845499045941205729097793614440710166719505577310037092437723723893234959505300653631225747125847733487453728095818107452240023938180042743213694034385819963520688173104168891119615281248548299499999117165947505011370486810441487918443576045659380894436344854655875163661114564386055343402303300073005708737845475793122284742604812808744562545724738382090792555339583551765675822553625738696054860888968387154204545032662973263486849619825673869522227758151522356453089785637738577150286259348685550788841694286635710181574874952597618615979057072603870180412514619345091587630347713833736294505991484117641061859768950100736281199780675902047756774669330397005704617095554077125620314681084724817685376484016611493539461443428474356275247711748807740498124022705640999921533122277004620599354302589302050434919719193846927960996198193247069065481241514377082142598511545394057752844448943768350376114220898342162921096038631154194733012080061654295155672159426146187740453172502496408818738664326385065266092402254126847761316982736171624690055086165224291034367793073024200436163939412328000056507877554655698800169285627894103865750630151689147591170529874798889906314679180268325517204321408631093869719492385484147420265192495341144674701535981424861027836487893261672671246812548093972004257382408145986908978908060765415468682061133542136548696982761907862277674208690092975593709128044340625620373795549168458244750797155100963584714122090820035049813857237234155787614174956392765917455292325138569888855113712826865654917773136379041089411704278471768455710553272941514084210359420662271416600711562762066954246163970552816655034295815761653855658536543913327229628968519061011539464094635121455269291224909383604438737775272759021970568893184339412768301942189013133086241439619684832932965262295746837578335435802965823564588548341310944916225178149277962842733892043721934524419546805652008687354969881589383189588550803688266107180489173597950632332842877178273782112711662754170760935527083173337086736943499455332090499316889081891766562780699031902724016660951802370439653965623078644530063734777635473863631131916734455051290027858823112812047548298350484217861801994811946361588656294970909878161764733277156829477577563399988981290019757791617217288927003151655220128086654596407537252672066460813591056303026155332348986363641733677364426217321701711437422242765802476059740912024137060309914013831217984881194075600450184214490605233513484558057801422187435994833931218377531854783917813049280003576322900666078750740912119161023875052718192962570947578639813341932563219646285215424494190548405313937595115962071992752863465778045416112160481007700778960254698599840591881588174588438082829824299512178639627438945009568431740601781659804744612841542014024620215722889427889957858846958565878363947508182379354072774158523397066126912486198805284204364237750416539524719116072276004244996078104288198416466058235288379983133244995860988380028505766952100570099621772702489401312530825267724809242698168030202532641505146957786052134207531202703677486353041430438127176326675694290754707139281268959307013987291187087302621731928086093583793737130948701086817562012776534027737970999196096823571036836916376008202749059507091165828590098127690844194422455251434791662595287319663732411412857398896438510344074326940360083341864901227478043239627360821925489634474146857349720968432386636419606473926514811267980577644864125813373748092002400484749166684009376510467103258801348957778298204647402119624476707087773267537260254149774961374695085331744703464321884547180975243530811803534881298873936708648173495002142054024888173492192138464775329337140483330453925130205946044862719905822774221599212943663080325937385163776918314852002784384131946384927794651145636771864108198411610839725483154247433467728599182488119729079870937590920927966969930374789563078092636767531127412448810884923169643754027919054525653753818529130443309169944831000200234381832978755649807612476382922622728992863512098535838846191904811500105392683969251139062039181876510919281250171644720675266719065759031492036071946858232088248443007827087951909755825299409347707986903928673875194729768810903500720561463133200742638447579615902044635619696779663695183222565437336615014142720400973726359528088302406538690486395412414139061898756750868886498360416522469987663080363559131612828530731653580583390453643138341864201325424400345792152281835391053747800586323961262417722325885261743282549013821939627476919914137233339543098746607827413287446779320930650207666220776434620667520347638710836234270328413865768620404819885206038016018261196322654203749042615332898379381646152839117164950289299383338326775984073230662554662541864873508719521569818636578881468266635783778985815590200989710408909106501042704108060506820681056598206889055617293566375898382923925882844704042932364138109614114399628954486794799136787117370606736892813311321708965365008099879783027134801932938950355842383880537603651989884479587200745808037083251696032727633785897563399555430667040978180937204753159321407151461313939332439915751298452268240934141737873754192841187238905582329252202034363691141395890131257038756128307531926748036044458733532411915907577403799605028146445734495184466204793253127402373085915308513313112793374030825654107136995977043526420017868384636294761860564180931756082224641865889097869428935929991014709080157493621030177131269950748477217696483865082566235285113757129913069488319644150418191295537538863168076078893558114768415341959030796448878073554130896704485487815234523276002092319987443890480222708946765796110682633158389316502849601630418773551393073519873101469276251711256766757424737281409148117043634289433610135863090175740836489238282621728846632223320933236032861642312287392416858230396344242627890787638755911396680715971211982162792357511212666645533265990409117166663914204400615160354972039466754922795792709470947954961508010886678349954870854492521681094182983719117043555769519594624229642230418856966863738441736858002373843517614754660337266271293289050848806967531967692206850482126647691419196699870322032129747109157026646439925639083971252314173678388078682661545548879700519816885905198311343040288843470783865961537946648821821580359156041602737347517453386252086632311470075364162804428661632446707749734247885500358614500076507889314028833539008584210476627549706068717349736193191988158073276534789012520590783481796552658227423369813594053844454393440466033933837177951253511219647453102642814777820340593177004657052241140934337001845938474989443625809973567076234692608491674679093050189420759241358057708356811512258683129139279717909682771322506811145964455794296080213261419474394437182786091494509063132420063650257197211606855420054656270465535130203538180160567415777065579524800272176282708119015699583248292355699350032926313955000408594286586761818368912527067248615859669483907161625474172767626794972924304336297263338169599055238481699712189561833940395374567996806455966102440358004491169421743283159977719492627158436306129485276767624360919820925559258287430864817447485043737030968432763407510036186206709819708175932361458355762064534660762044681535061260775438021245591086889509414551781891975075791934039223396780682579685661307449089011038989975526685379227555759140288706396178441597762382844337406849126025400964912930415122886156683624820253232337413068940705809221627059133418498294963373878358842769238854951101318679411109646545644589872784997759634588575814957710805839346452405204801058798808397398025960204733488542220810741660009593618976478646693531619868228912475429706975317248479863353486714167021100919157670850695297532660740388442920217724040093911745548051902418891504189445447406810807203542125153392053346630650916016474398129252262988143003270691741285723098667433603608205310462777909657297710601437464999005967002010098314175132290582294006768660250664104273886639116602729537143740192989953979452335389359904061449427466992009279714090292166671959271081327948202202685345082331897039787093111249824532557337744267052681698985993160675761719161476600883373192937138580599639183940242290846690189770343147438448722634519013691662822220537212533225365947087539442865950311085539196334853085035899996048989731769050725303871921074527510382484481590774389503152711044708937754420531179108967197726962198152637701181536968204083776899719566795811814742863880367682264584545609771491965905900463719597879692162331441057092739229557104367017565528375813290992037045742332503531201494299770163699607240048274418017866211124733693282530714991669141619621593761768624289190304443529773007900420647567566268780410598666303413010621207667270350417749557446373581350085611923567315617658624105733880319610200130199723368566822965252699003960882014693090857511485245525458393911552202546611437399407535496277360349363911602269049984677500566549710325194541051218315569263425243704681008870584011449428249922262877476848370800095438378969570906865093881153768497090280247451376063373115234318807248368677435177362940372179674170354414194852290705296158889706430031362214636649749598186490876288486283776646716829136685710734587057963803129550776333300629863036402232557246634287119561314734714190135269283940411137988656229497552610168678568961578946462230957818350940942750383115311670448641936245565680071915342960760170838390221738449388943527077889901112181237516534535766521848620355550866801477120157114053984114035093617453628650889446091814494239888430577161938635683898157978613553873204630397108281894955027639179428232983337558999597684204455875795665061490625602751054086093532894567587948192696581415347334244282056505147420117170324965697773864686786261145311006897984929185580103007836958668380284037743004775965863421869443942313132464106368250750830445569541382519766802661671568849561128566680037871385520562065346967861572153787325698939725920069112827110456299810580176517369152432994946618189303358121523536610444037314903477252506354235435049041723714694314530217829144997659154955749974585791777535541378703707203147480331384929513920283428352263082164025790793935994488408538558018164563557938585095350750067662222796688738179534181883288281923159069350936613611356136968711342547141443402307770315024802624832791202694355208144587486372803610194385993397730683917698288314092892636402191393344607365075817003756197469188575362270362411145417307808860148700087703009527711942258474424474400799319023147218186303011462873585092462400498650008349264686359011125946091697526789683214530274213149901272424746351898893964998804010388019963620066701529452183210406109739194831350867626505346273222894914986896093024368371743861428835014910144488263428066595822162679528852522445034649048114673220919625311750323769916816882014447226079890675986241310209247693503772588680545241670442209516676503571343387679849693573227935625666064717413753606036237900742410615769104359066435448904973075152848269044647219335210854121220676522162118257946335090943948383393567778818197530437442272281254532667811153730562442023618076716791222592868119385047987920973020916949042620589340904566846902349873091514523768768656009934650084044346785441969902961043665362113498148184500678138387105711284543441732080294454457383591307965367145131189733346128124538910729029104187582109284089419471941060886930042796467280613675058537060633391860822036651352777568681699314904385663549088952197776461165007340598891716020803684461442582472157917989298785697191272364688269881476287930042025126002139805175195885281129015295498046002447010465271387169747275632740627722123061615587663367681960874210806429124007076761258568005217203849145122010604034397861770726306429467333143424509842988807284626616578000028452843336920804737044090203197462748336066356613078881352478457269095426483498396379533168608530711707310172077401937564309856976242738688519224451745939302880282338038823216658017109146399980419852548187484757043404785595644115632418269390895293328900686884625207598785390461151279342156041774487201630118063054585275858306920868711061681447947012130365282603328736765679228474429125381284724740502261894468483556829796807760259173043305634893054094837587024585810353592716730808871283299028610772078415663743833785537081411591450620024864544398085182495286300293909172014254476693199058354462512940040497793345872899639865140437882102000338831164931533327946870157420895632009137127863768420210117595037219254606865128516653265028010632757849276037440821194891195285314079454282110361474271272164372910067688297760541566808934169000785720981135826046100287965702782481289693579909512187917819955807970211140853776588255170485939595595695641484397804444005663383936444282766176879616008885714018330897881045656922646942885068577562337001438008590965242647451324279379578044627273600453795045954663558430814067992886811440645884639237345240082831378856638996021228415927176137136704218683784402622040918317699936329181771957475640757980885335659137704055849351711436296409019085991752989074945776274609761864801263523684192753519024076252550312261177266322742863402254144327932994771572777607791114294946630364652468006475169697781589061955412437123816361670843452673780903549591613845303862862324552873311892618608917473739093380200345106416378695191352673791020381297588194363612628501393593039426092671825289473182576878652233590562003245665676380820551661123400254216373328202204155626281550164389407176390974673282400363723061191709596525501924846404669566090616179193314171334485993831565015653033240152896559905306094283970518720593867421017475679314547637781340861447978973666259298551098055235963312326363561185818959557544327284866624074751641712299865696461851738913617167142794073786692764599786424493233468468041228529828897438570356159089137082836234298323639794805654861391849334019203503003622421761335260012994381212730615713755926817523683098147741859091356632801519715163225709174014763825073210130056622285688801588510357195912274146023505411846986350915680110070687327747328532474090225226268450456844680479817221267120698962944346963161776155369133166199316474669136477676239377625955667843109184899437655138298175527516710386896465681216257667007290580718460251423259300702233630648374658902882911522265751433331854988991233013413444730662163620790218245798528681377430792154910911131124407961100478992208067042638726610814034110416610138229329931890446421028792429336916042447181986850058652864682512401989707189706595314724868641213389689499860802260215296455591814824391418743715442256029978890811377681583569451511674793367827607772272929324390821310416813534015717373744474628032253800995399086992186387919220671075393195524741258374985870469756562866070435194293046108064036836518093453996952037875738636570016516859338420972573238294296419553109545811855178628602600243301012731630698795722540739772106255181382655879364705011517335292483178249929524844110799910628909065013456126720998624797888775940593021182066017942323843906785440759484985480928322382436882214805035557741098515547503547644597750815736188042365094072769993033890312246293485180074811488877102627502066574050623044738288912552009312408360652737956591827334541242585598439204974633841031052122309433299450945394566218465726858337816243205163426434464062887110561873981406588838640099918067026704339071658521675478950738482217026552613741491337244123160151052632650934675964969591516141716592119281559197557398405533166718558282748086098928503766901228493377113765380093351196951588806422844987043049542456299293700442864977188390861897978397277525831643714359736319096348998271532460348716670451589002466838360265116109807914772896703813988448068648512794036753483727118327896255560788267696853794559865867887349732170549551485136086380415238123437947689926345932026073543587218011495921370549402306169118003128550403679124831884211834880621747040465808279495489280673822275920481617285885920144747520587245349002481880351165163463784720387495647854148635053906803180153005363292280071008902266487414417788840746669401964031118984424537522182097100327882706835271027413730718476731029784921225475184102345195099976039187764013202469862712981054816036939969220819033206235378016852963778587576500719637616752781404253704417049040668434326856230314799333327343439982694612604475088686131436174068478809173170086724260788595781812014086968256879549157499325226749687478674615128581694768784827898401144773922334615060406793757350144930548359395616877870960420576301401702905904569119857358041443886940378673389387641955818469592193755320185919297239801507920504948349002191867805646066603619711817187013102993449431519673060300611443244079210101971891720906656057505570473245951422263968422606323821362272401026795673673755794594288979532554179917436528856370776024108399448969880484278347867634527710920922315942734579234322586610446256404311564606117170906562049518002512921807041539704901263393220759231651001789031447107352777524319149028790087109527288888296348274066638079650575707495831910439109084946711320702665186069024383117312197333725158865615959087250662011474168190510196200923699558210219730862238392587451576217153630488110168674733011721199013110087205827393636053049876795682125511670809050859859404033061108565569841496165478565187393341450383262386962885059707405894414239636726278709632305904323764377390149279411197535917831253941059551819834750630728360838249458226008851067840136526273053464685388790919278669235575236710092428165491530537908962455985914182789282838454496305175752923027922719493475106824389359238479153541395823802160676868604300540315628149549457300123076388248108219475226027175505932390659946668410492143504205664521071845877452139200126675058050150513356528741799997305227807307057492931182845946784966879836102124676106508180083000478781020897699167803444953464091289307725077596255538970565863853042076316661348244080751207946535131896551654130404569001320666297754200837512627392908154858548202814307290776190019981861125584013803127667147559405391248058461188873093297975746755488375164274524320481254885463720387294908066634843627881902813645448629086792717070095941440078670486403870279160249258621975743309995401446627001531677321435453810884718365299747383163281942014829561314733150888629284753302641043660396659936521681897911805962211724921508897678335750990753447195874841867764530497566267818552245203189105517408758891017045023349645954057523063483427824066102042111786689988082126612740216535307641462258293943307721812330161736897140136515442980142726717161129781870460850754184210008969455711209497925534449094368593491611720669328957076918406318867411658770404854006983830007527610004618083450727839394332894472733910480192070384087659751380058051081575422893716705996061174659752326187879360155852091181591095507216059486892453885143310721229995113011817284908984411936245243658917008431461166081241460866314909664618904440378767108052769353162450206202392665002229718285624931120268012243200390915467724858570694984092608909038973827512720534595037895913557629545605394728738923432270499246362119155119542722570621550679852434792905858991063815314792202544157313523624902503317925950855452593930774251108559352707218172316746412870267520815302043385728402818060457357363205495912684020448795339918156182866163592605784635441549790901416087729980269555948834933366230104617420026703547460804337122640902972776655267371195035503729904981285399741727505110214919102374919702145317120100902834417506609130264704871128220265339367927906781663845460184431445988187563448731838970858301349302849719444922272223405563018819433090069376950162087680265250094274989257633048960919108541720760937914656585057584465216043116862518938969565120537370710024449409612673198254622017621424042865975943885247849171154754985279594333869871179580472391241435998722745926300874894407473304520810331659201546138227093869804316222155000007340877045526793267301506216921515028979165839591148555582480165065755720368887145558269324609327325698313443844400573472796540468735626427141157827995380246169516417171903567346749245027890954031770215608123130765336442405381725615156910038375325093253568170657257834648088742223580265088233616780635655650011844001055170397914538860013404415640288945142004037526426635018499954161038615135370439006388819065325587634897963920227631812548070980142045934334794836972513857911762411737804481590537689848397722298184041561810753021595816286462234953235069955474207403337301931740317245993862195106997723688586431571419713376110778038503099107628946156564219413014568054267819909882037669797833466213352002856813763807732986348073747100646291102614568273009371041949129210471746412985093531153634972033511089125931836631602528578673784767486398898584604345579657482506184735676788528401632845390543111842838809077088742614237696707625497962484495745332283583563970317165095627030022963247257910225954334327466343359734593822999238317724491441429349328092045775863761832463710825069820956351165418797311952773936592605543298466314029295943147964843573484232050520550737260697881352030627502476545834146265953731481609238751072218101507005803235635195728889445178365582481722868084954496088222282836336403241166288507524565826065679515461449474035587528793701588958862881276405503965906722589385671415620442358841641218850556648629511882080758755050003162880944910184107959564057110205675500008585196970986469744323823508226248699279876444424756979939158978001159558706098389524993866637051924646419211808460775074979731514166863996493505111334275983411200717797701120592178073674413697277198508833420510591381850308537385714467510597378119420365184830631224746996374875236180543653122894461579536478735767493892442245949619719232237103488667188112551707193632652758723798507263938497694886699263372293307533157664188012317321004529226546069025346190505308744045937939888943342609007690550743815165974076687483027858303980967670681985961638457587381638296533660939116421373116650007225592468263014939319168894307438487612233217660917266339181101016627053721515132139273360962437743919212707989186588223184025232979440847371547623624944547951227751766706822398235516798175879897145842695914642858842983722334005273214918603138248269577782133479978514319531895123973695450056533491878685884550051300080728630108644994787722078695658764388176483396801309020938153952856776283784448823072989323286036545431327071708254996029528093648419788255030210726395018650276000472129216810462288774748784570938177967529378530607845353788142458598272169696580398583343175187921039333771924677461100774072805063448146974061465716396837619764345619539903160506892079064389227274422029893092823274553928069726954991239023095738817023138885200702540545236763566439550140453084884923519719016804575188008138452486187176939657538687429605001288796718592459580513749817385828489214459625731950953859656277116623664778700001155810903734252011876930838441578228602069141935422040799216862963043738779573076912042471145985557010801069929849126427930042789434790221010665737906165447044308891247749621157755222263649054036797219644006300523763394707374042321231242969529263721806211180539857291696325599345959802081320781100403475984420916352556483211198385390774342023927641677604795307314676553607358988270932288005282709667168741896845062728027666052155643618228318566326593071980117967977428347640461965349545033813408180968311410430181759424557011931575252107127047872466092196105949174330080348408834374403159222552935923417955596047610441182565906835098948799857937029497145294567528623687008452836799167462589571997328545757873210464639261148005520566093003529492107606049833930338413519625209607319846472769463425912529682440013735715998450744942686183348274313687094784432685281971495717589188238583471801877254122685243194234014504840333447399157567136338070793629044496453019358204176660267363087426322261170357549282969011363594802079827819749864354601970031906096994178611560409392552431138581040377869051359963559364125089889773125545793773809224549669113559321314593161471666568458980156806340604047320794473354297835732434281855032996656104851696815315527243877570484341770205544110248453365042048467360921174833566582064228939741187942693081388190941618072263964346274654329581492389537892057016995305269181366956383618112781921237598445785302971795992012478176973373216138908245354988060326407852762783909184465203297347815857805945240540109000200450414727677419907991557682305778647157454435122312435471651761168731015779873916528829836800599446491101107039544118808134109775419667246825177521364316645708461828114222416079881238007420695823686790403924559462174273877168490770719417232277908287099806978386352465467061103254100375190421615224403603644998075764950281198234047946653232349491672644221214290178095041321249961708546645250125650074546224806041777894791779087841080295146426647947396335107434343768836927194377909430086316572661690075663409933720627414745424830115807590336184109616480389310892515724123565755650001063407243738686968442519172989281947721244679913767132476649147283754988502025226586804160151116694896880973618710325912154198979092346133857097739590240675104191778695718812647852739590602290596949987753795373815522255905612369448612957838912544050406900546013620119543101495404509461599183721430561429943241925473112025815164022574915344922761133943243763307625430778544892454208290974980766578255584347568264068962370355166465705899759105131587877180180088210657885216995029572557884320618436495786090767432860701432996964353454377247056822168601628182260556775969077343481722835528431091400523341544909768745926046068090895419084519290512068306015323361822238031808981501570688335318251734829423644462367303261274189152995609094294641037797038170546122641578096949486511888718457554619092343108719118089472521984506997890120572162972776887679871086787860326756789612140469224698742279622691512793366614947524249311154149834616350250704194166075994613552733762074100286671918001747117328765265689111289315463245689663449082603792359830741841894830037668549302104802123150994778889434013461958661821633040029713283750592458426057577493529381335075600840179929306543690263824551718645666230158333342516936929135335666048708994634019771926338381100404748686834908092216002825375236261637887004994823774892914472508374289683888156928278625032488420187194824276010574860822004961151479305703286381116423327366028440597919970049318981006597937228917420557479332315508127285699267349173928353543281414776383261739826540700068730235693041832413795335338325050130873152634906497848903387276685306810913473763729009738323695593790184922405976891035123756341253661240423716697207884380151757213919846762086549589955415436416183957582027018904105758221960258460327979876314423692252430451500139994504026846989347626989532031804645899581708586151653909888064972550393998787430288151891868925936599802128439233532705816524593325990727115861287086631264195010290912826057408571228387205639520905793969678677271805989339734745746500701119896516954172685143352257001059964026677213273413131831411855023486402593695733957682408880038252087143063684916537748776091733834940693378388837943044853687292910623719413694638757996877569067284301753892512703902787771513162279756470879736220495490955251097937585401793330313582654861759908602030966760903999807902184585072366825965374871610449773968742288595742433650141319800460248243902693610583586661395427425925107898231934963148914556946762412547142607648809731182481406095666750505107524964469278599594034742017030263243428646967157243047916739158069850819952410694273938244594926258062020591187796378332354632690581669685806888631029541139665940604026630550693945084639265120517627757629197979631171940960247278015485842421056621279213738315658766613708857887174964268802742059912995660812858794322084132785599904634299145193335254857664429231242185609428708524771571106511835861995362036967375643583198130813454721289018791514788143612565019584784299455295933974521347948240644613927535160426366461565640152100266120215613065606135295281654373336776418927455000021090109028022418770095604872252445796722617517682501621102178564822028386721318189466904861619289207439079662239463641840534922548040404137096779634210827326474549235608485349702301458605844329400748391674106124896547584048782650204653364888561716923192422215756052229360264876745868701284511204024245068238493773230889476154468863781553096413702082178962290440954071291145246542761650903484254945264985393178379044808713579134075272202374683705778630403710131012290203525822821396621088173897941653340839673829055432378371167501002745794125689758271098843733935259309467675280714698080912329267972838310283523717331013221155868966438004084445612186569791889105698690748122801819853813242734005114004340281902110089386295557651946390873282614102722281745446056905858351539617288723267960596915874218266564499530936469869279689594599416433952625837390816858993520626569192259415174070862658533957950370249009334733190918036811409785356429514567797296250661145772861309915238855726916808840194754003718661677016996572293770777222967582134891366330128712378684284014243887556454446018956947784980344265057668636691095432382069969505477184661928633010708662038879916525173331204612396467446489035372686766532818198464489513963034022644795269729767869855538501679964585020366507677648199185494538974037834494555499145911860161475707282513833748897418605475981318784039146871962103425994707432447562810717437259369641926012148343696937630500273981682879990167000672850143663568650307838600268757457810914461862158615817305156773973207944927602492156872913919024872668327075890752218579705994289418055107971895916344528263831274812414876369136490225648410546698468978122959202209489576160269085588751466461245230389335657178925367346112032134002931059772355938243782642977650702782322694166034249081765160858782155138511400551102979562030302277527613657475145152021428338017810244979336266614344897894038144896362025940514249506972924584404852050267319451399835789276833161981706116991797518471402030319571774709157939884178392401011778076090818103666948895246267488970853379980607562184659323603849051044773405623450011342506493545573133335250799433724130853888537611195348541035664359676961170803455703471290635195936163597171686516761839135180822798460420970043991653495341511639072783511717078559056589944814130982888963522001723789539629545938734035451196940260076735030421892953002697048719266735873823832602600150633876786615281647404208383241017460327209826840892031391404904918496403547251945231351857422480033013749046105037710286568023212416671184251763547975264177890050028457759272280071359273110613411888810937408116990942942081032437244455590987875446125304391686960298817076610907365036424546111528874384704627074443594348224024916923012259147826983750194818061783992009584245500480387590040374546218832242211546320160331128626200898557416090729375775765260153086169753656114285177357265308914299364756357761358346830670580693756655806858665542372729124435799097644372832884366325652253738224772424221535749526146919428084926031739878391837890318902706530353726205019591008613845926764033615283425876431754917963063480879597481712941251725630264054626806777578647269114608455478851493298265315146411794586151505780891638870125580521008051706308846363222169316233277294709406529808817267807284081895829922613076705287411576240259218313364169475146900947094892039273073314569151018680237780777743883661334387407609459461736248907189333020017265174498462721012615167263396304482839712490068925500498710129988494092545924390999901557801042638714238771150477530461538378373733656883943830659932386185268483907391945908182966521641197459509860703275608309890612748147266964731524021591704966689979777867122189288475047577847740118652866812435938541267703115287371235479485017392295812104121034998916678226591177884834291165449295721169922652137142484305532433001892507423970545645778284751990589489876990341964925637912598545331918732708933530187316184495165176012743033313126010829023875794057910905188792630087215006790605876854714460562954545776169878195290312159985935748479880173068226798099238356274504987802421408416340804430298183330761938141817396814279358659792882376283288194465585198954471414117917095690249586235861335925317565023711303572079271926722805894341128864154215968443412925065486209409339630263447848503239832032872275247680310984539485562131253494076401890022039981147198030312330298072091714041851110188919757670393565102021924121673591664560665399112421956349548712881856585750575916264552903311081561211318957003876914623686390715047437006699211741237606167746291875970269573598876648397910650541618415906097873158987520142741934891857305185981047040562474129641183440252615557419596466155656482135457274317421862708770740975230056588530953651235296884792987021918132486231749534100745630276704013484351165955085373202449208092399493275970816810846898660076120442662448351775729381040629014615503092248778534263095402371483648093942451112570174105683989654981297858143598534895315488626831670517986063015895869131378956879577684810440864876703583360588640268104715348297772141663224929178632904840505074464873307769550176484412205291986052785531765978614496441564479583264576765405274643592870142661089594678596334127789660943082864950332527079414868970336226452529457644796553286902367999934702667658034463872767855342756891200412257343107907184542694585963196770029224955127416894171613615102478306433329466625796465408211980769676492431276950084456428409557977711757338838542773262852055303209674311042158103294850182209060894300244704247229894822618957479590029698249873036836808107590689259954394867662537722010439499057485316042716832157358361446046659971446964615796154823730011298166017164208343610604570441686032752063216436795557980777685413365006245023079128021703362293426275069556959798618593791824276414596290246066536979372133189469427736522452775128517589214173233500104547008955230903997181841696437218169391112222923129209296445608519586395739397070110677777001491332279472874489691919766090581349235875786613517023938415341359120271506903280442150259710337638075225665639552952365681028580487635237260036750435337582305098348678680826865783023140774884655387514144126118870252360482016893021065730492717727552851555958735006994846996497733854846407663089706479933725622473798395718687716436186857174957038570594893191560170865075059928062578290875717842401510400407937368018359481583103511631963528821002454293798880034233024324546392619706547259659830534447385204199593313503166987464219906010132505001833476655747369962794908118154267047694409455164179084146126304054951765663624989392313788157412842872495261517334133196260377030882801787483464105901856209049929069335607177930954382115408805859518824134111373394835802445072860401383326905093182867022021528703104763518643700540187913290908211770740982285095354214069617407506420383534153727940956209899852246818628548075043414792027466310942327793067886331635174893419433329442642406320805516855455294655073119187015712756693604131746109785247806978695929419426928622805605658722117247832630373441001272391690779364675980474699651571395431298988960802829179533414815078153856694314749067189291488183601272463157101209241422362176651357161959624574601990498990010601937248145419351242565278430578240606279306573509150887255939566221771497607994299285159096835991016917801644486400387721344085372272254473694559610303331183823703281730105118759219135422913835065391505167859542814109237619429351792422709856296514419678479116017903579821960443654130852750396844479254790113672479617386375455453728699681879292226040382157660964904737786429275200315242840546007010901440780670070610508264548116659307103296639098395916488829390037876307702717186488789784508880235677875321207546898085880017975407062734985517313646064049225608547369555968277501813787969101262384870073091453127810611194872574772469093863665659500471785111865644462051327755972910597568653919446462140705322434621551299279072755929601610834996833953780637433610806263637630737555581579411050694549850387594734474456041090191186238657909149255636781657016750035483221784414879471749944763212794026016331977078802791558610589563384587306682606827759426748402564127192304838435700771285326257820413531347529543023951553985724323713042184388477034200786418483472109262842525213526177692531643751674948054317836499199058898730483844251625475997376737923714951905164498170678535971425272044041945842582615505239123274531602930620738346243423106542107707824938417849326946739004782419834742545365691149941881202182854760873607358143054844030480272718597309179949722650944535605765920486580768260354401884439356063794817961936724257717209526965018969775121698897230266830927381247429753005670284421376681356898904166877706055331005178197613648452068669475614948165652761376365788163224862660714388913721576063781102861441165036349813919217668332886618616478740973985806786545953401513217301971787408783228926075805875009211800761011185673843715981165115871900937656347083685899100138759992453419056735685272503909150173970716409346117777429957729493672037293348531139559517506547677516576618361518710874405486756088445807347874359060949848211440089404065517558731614388928813710333155592547189195030461245540272264470698245819401880471467517397245463539904811159566439333937770122743187184681025150427509227747513771418836037781358674393560042659207011668643049837196440832619046968939759261173853151969711989931643130797406540438638504554766644556206274379588421282832684940474512598938032023384230543020906941766907378846929720012326879989072139073309157207725878283796712928954373095553189431585097625697851959696969277341056295660883271561644766537050033736025072803265808118946990854886051971836657865670926964922117502187414516042864587661943215391659011645801701538399232234824989196902190374257291791232236298964058183191062501078204273290127049789127129612804955876608668175567246942964094531046587024492567713961932646076953594924851487954869001876386756961082379471352062200541647468169583679797401559888521571867714958334659827970316345937146439217476559495706048652142717682507156857577687292789016939524723293217787351464337549801845225076916050477974542183371413712028290090483434800855901640040929862488708936923142130489183510066812729174220080967305535894905711555772084094222872163288448901878544093571432042764072865626392648909474124031132547732034771401551907579552035195264284332037851101211579460631860620234596909747071409116674749682635207165800001190449091021346167015093617647063269017618181678331442084408945767483287441260279456807603634756204588570848586862324747998766760156691542318308106420517999397096455838737560187303479908025665453426842157179010260038072788174979591822857686321672181848939949494887801071964566936394613472025198085970775178813090594386288908476722621782571734555731516756395554203620220069890015852024494706166969327399003406381956441682807790017020851114316360036260631535152232995030547553040295879939805366983429450215136454285273476284922924576989663465654321756845375599994314279089789549062430287993001034779520410067219524105646820617613777168906385502002876229099841367941317780344929045017277847949110390967220078252881124776405114893687901194798245911076142120512519613179279695700914953461131856330375073950050739233258779762273694250579122457025150462965533980398349329495749404765602444034605258673248855182510717054089399753681428067071566007971297354288372925217820379648590511604945335261101285173971005761300226724444942939378552190441600965156415937320675749392132134445496376945035371074778062960585869525824638755599569249922806267453932391380891009366460816557370372293137671237550541144132274760761973214333440153518686874375843243263733205552005143067319400802590257846481119098632903837781371262799952822694918309335823878655474752005062277378336684544945935344485501410109227230804499432511279691686821010130049303532802138036579955614210329897598403725360988551466551727312784879704542338483653184057905911716649121458211105202574331377658412209301474648266116457896624384446373228464650664940336612153012420382623213072860765372315547992377479767349863373911690524265737385927203703890652174815710648076089379213492238364567438315083265622783246234889121225928208510688223612463445707655357622282363885805656158081755026027671619763190998669987716805473639014824693989075622988713560414353384795961393098039111805375586321821724428214609479448569774547665442220383182145130311105005186859928573514897015267526873210125660598316880440042592107527442751117992175554971746500303419172489211292608757265420041989645461698478771784525874620887368115335662136557062148662734215817860307960684177552932903263305277690142270031156790720678679565864881891225260759857437420719246431849078402192149929927375722866558867746075523858651631788958931416212445385041444763000399122995065660446181637965926721695672067275864472529690852076995488519654889651869806070538253267267478570085108665040744026871950956111565010571237885656678330321830843293446476238966154198175293344494521683760954994653171202391071611303172479297265449874813388249854338998266943621340787026680278756721831413396295540505736855944570655031885081043190557902366399340134590206392794786467026026510680213919217383087731733350166068667964713028849995959246774768842956544660695336323090026488469161106709368777356608742592392876491485356666951493190933461669813203136541339314052377738968235954086864753478207894690011036289664914313177961791332565230139000526572111885788907319589482972778412267866414632504418770343479131690065434673056765208152654404685589469658351395321543583979244714273460615396425091653537646025873544265530401107500332943606637354727615032527730155868066921045425169777007641501239345904321547065622836404690071031767899775402454369526531047908359540352811441634648214946235897207371328867869835855578874270019680725175507317346363061361624014712861965799342659974728117343115576408237805148422136160831665976610048748049892704924295743501939470309971036917385773735399745749480793237274207809047718215241451392604016595617681839795649973801679814294082070457299467256138819772937166252145155812367388192693988357767246416093647890277781100757226163018609845157047717032394187608700232649234288483209505901857537702932580176456322758657410641869707988777967580982877170633468392865736494196536516451819160021121511324815169080208435398986754611212737517269943589039902167878832236948000271973785497158298726309605377159834868386177589659078674588400140017493364441674407874366966342190492924041952148959504927144524497772478728572224957403934410510681501291983759272546621212608744887138021961964258716086190735725233091297695542418179129653942110379505558351609693302122833181866548123282974929940243336808036977141035388818764240949751251625980880174024993673808226364763940999332440088600735403038134863549714483239635456298704694793880259852774900998000953042060729836497511047737489671130573737848569928492239833074406889045811315125792563251952027874848474564940667933297347612071377530777991207698114232524129183680779488693753336048242383684661461218641400525815870664286748222119647214393912313137175333334048973938042853994370929484179254833054898164702386284665773233569015651101531002757091105096126566029685236375875585135366488223993233522956199854180731477282433327420019000500041286171487556084416381188731088889756614616519404563122548697352690694381931306019235216701157415033853107964304468760600867729919291537053625438452663065335501898741907581410143848049498045382818529743319828625233748658591874901364277069501028398816373907342032196331957802241275083217509631164773789616463611013218439445999393007705340044226842723292404930372182808779649333638311531842977643317949973043315120750188994193552660824806258084212404462572347062099349886709523707427086238320387895258657890386278466013364504310869799491418414304391523257327217765311627636492477405099911431296758627277202105921080781388309098457615671769198440939003776377191527239488204035349865779783135837001938065043068466791099736535482978938948620206313611083631308426397600505968347493149154609068583085369740186591830555999006508353527625742746400623840167023119158130755113027352548925911927393694539945804028535997789773524327645644070984104144534921021845370502465780656948729228807827457301150071754593697775398927411461479534597791038406264901305913938949280025905637942961495846288225594496747823216164870020112948096948933059043850344608668418567789020965102176521547864257710682241337458628703039609056989040700210707952389414226861185250465427515672752571148632149543963619037125301277990582569728973043353571423666744348615679474601612508547983322505482880508480986727318137749730574302035557466768129255841472335094399159718289053425491453267612105648335008880515763467266825387351324936822138590307374502228152688563759938835080762947937203640189725142923770941634365450717264347378678402314217216700083279134302449924761460784185468939772443913559975978526839927439680541790067067551833274708252216423798064754061095962626352269103225352862516923455612534715108688712903518113667696346009331038888384532358465655887815118512569251948205340821142972290690963865309092480512812287924267047306259355522531549759653268109294047124319245166001540632424500011984787164035857049507919139220099902381847552806990733697696670213057983628190072716814514304414358861758136859077666316564743450204478615800597697245878790197185588907816921555980721861760061717733741888576727517377082811116271144370511389000138806535798411652687037421759858314757850365018380602304767110408744230252997576214592149194013421066335534280598047245375706923660073503109503305257008068464277464808170234250728070835808542218893637339305838352662724220714182444641777836607045006455605288097537837085800394043618350049552037409495470167349289752074366550616512601576887373430121715432498424394409642068925081076100629354070049575025080485499421410001972947249379536145968140335173954711463538318125712689692966988777536405641259776399676762262784926229561948787902204362536229147296188872585120596648247476441674125528923199886633961628106210143571484709344906011742806156919038589030024568271048828745719462206017308546826061720299333086436555485729960425874914470261468642174457113565052686707651253489117229621493750505505924558798057607839273117952255080647914800414696174629810447797034600327269714533818526498600724254349954241137059642411014088142236809674571943044455688256019409581870016420714693933947338133304805455190408238535974468269021371294246445248191648789703102878621453696028028080482694223612470329359070280296854647129944442651555031061247769711814904777139926477176289305755074656445967075896652377961243482270418745430375574098027600735585700409463792259674331489933594969086923251175389662137644392323258046347418899260859309598438142460408915483516842614632379428227548557917964227347669931185409638512975172258260806842150359396316087023651601681361873072783781918158302009751018438755470268297488790735288771371410611078086983103465589467585583765392695971122346116934071693588968811661768648462568227154924274379895638838698300043028362752419218901441698443361452129118244890767356575744388663318124439972338950486290452009817137639538225548577151801292557404948105648838801080158469075261592239626763915941621524227215844417096289320992909523578579541255699795264891754990502400048617719052292631510416325720961649052175894172135411318254071590010665525889002969908867873599191637768381578706829239422549870625252269253272248834181206139077641549280964717026271325831008184793517354531954377763311893146031499514448910202993435858747478560776762268828404754896644851480982389324331524657867354708274885570497699217846923992074673589307500237838115313131087661193175372583103004576612489657934831083010633563798574753348855253644002642645715967695218229824932759569730799709107606107554424405071566989291674687580231891429796773357972276093435492709440659140375330009273901150839488845321468450212622290175458079440573446231438193457198523604753435580597026860428463877005865969303201445406437232388594773970320668009987831448066514375311514684960551683253385547623173747235728252829486424937094049141016573818007308640734915874744975913350439286215438844899103354239329239575138592721783380481585127859871602342411465275140218259376089864122947095823796948474126427630963566051851610790063201940092792632658341233279997550814078436877424334767871138499664432166301810491789729693789778740472430430310502954106670084991812132336670972967745215550500315926007830204949375893314697121407621968860097151829785696017063276859903474652239680301291280688987797421791595958327510681176328806671581364945015353196720056480494160474728779473392354027346464122295383139019660601758849866234339885998043540675591109416109368737628666498551022151356384298704040006482233170609964901045319168324699502074596405967673257702671430477794848805654008082295374236032544475816371557146339978658748742094063778928471466867416936729754653133952854526634864573874530175520207942316752896485805000694751449774324915787057453533374616368867804687455491529822950360268490596746482032436568999583165714430188067961252960345891283036226658054427093448002154056012707710020829879254404943691384962575663878316109370086127526960997159666324242846977249361057135073784948082366915485495155935067781527197689442876434193980276036515920879909701409635744598331398889038777696356652521723011734507146065949772535802864430033694263073311377780341266806838358422093864292397342139540624878413043390578168724562795867017785059340370048151333224162122156173686982674088833902051152363123471792177732565059443727014863806521086608265098831402104868045555113774441671538296726624404478640034216750196848473837135250357735619227434908776256816917466123094034451487133856930503752491180296743702918472275431044527553619446861167321782452462991603384573177190623404044121733210837568208298745012160354695855768156559971163161892003489012188997903451009154776482133583538104371685848379413576881575476150488442421295468539277759592138119968380628196166901853891987281748266333936133104018006917482382308741061699986825482401067008224781751263204368296088310249952928645635755915004304114170340559691277800443532630732968925095546719093046706133403155039501408906450828294370194100413521576513682471288010425346509404974382878610803662585260071819081067910401974815575434745812935649333833297812895975511897131348917958915253402441774339306099902684843320093458910517424697338021303544204028191799104268670241294662294806979410605040079638612408322117591192526268531624004180340591936996708680750116332134800970477305585899632449114806847951336334075241840242772285051242745762545651595118700175288877739805160171193851760914049454436414421301450767873455154133025870621850018977847975642525413762272389278146998056754258219344854929563412222318671892084692041214115121127477697232947650061358348684229958292975929524571414023693463574209073387295942601582245678345641525943890472481881113360240084573499713718860990155267985147373754009664268861572466626305523028449523583728642914675892212460651670781928610863493145929511551184896846794511781887944562799189268435615547487907713140782576758900035280908552857096064054200603624569087488599890390983519146413098890095929126316624367020196663380686176821300473942244710319441449571966402168525395832016046568772441593255108415697798415355421786818215584939623881997146117600504287025799163709608281356220900684132518182708293762627559707359220858066084540842007554593141752222444265521437947575122219632411131754003977665837870915523484038778464287426482645638184615870497703790986011892688618604119582209039044111888350488742043238337449092283683259300901934679512905700967269204427199541179976968817055833359970238707781229121327218381291590048303505820989766126832913463071328742381757587473170538191926434722939770266287764306420731443888941245862230030496974475235240168789099793156585519732482067443809894128056239545615138744475552528977117945823001624238636854664988520866538634809293096150023558912488320735969288750541691774986702780995961385689993865095362053034379840133983508946638288084055524546029610313896187289485885515578636521264001157650105220577977079269381292006803931178761446873815439526240280266874629822722539128112479513038585558542069847398403970298969900869740295800408136612786808958459200249668362466755348815307887757972562007235084384742439512636468603846789716577136126159054640044192739997403051172711369600962628403187272244320612157252356037988217706861668342160624111394786455474064922465170485142855058071584067555833478972178971997851179749200489314272344742287189078214060521577196847665429798813610473398288250147451560347392266756998947051775829467166078870248646305308434830788463340034179064015851441297284460905250537032546987017732150174138868506370093141433292386578909572780663550743330160093226256321697377639105226732876756983837377003265108274865459762913085975547691126546345735850687362505420476592948302267945197310220760049063106132285518112267681615312153600930620304437035393831397342210393088768227762161940905957706239226670229542537642053456164976040077412989217143072419983976986934596878423360247534212292610639133239384170257773714487445991321719920360402569266815866267031988645019146102335742253431412108788264359070056691111007604733438865632740273360339034662580420268797255533374679011070601937635109246759313782666355185206210207687235063463475386203715398909401066953796621462988989949435516934937166874154230984578064630031483419155555287249986191369030843684159943393624762715061153614233812739145671345952994703358911470576848082633160823567406796661456859336336002489846289030711334486194192439673472148963013007083612005864096643235522089494226562846172528837597759415383211401316434136174103867181390656154283962950479278101200408843863577684389339385901549337143979894683888368140497036324840199411979893709852597621961736203302895509913365096498981874480068581156703188718129866583995434482295421544932839335820599714399408361414495872518044879233823522028277211252263596938045881031501883737748333687729484547395360069998354256167260597157505173423598564995291257739971640790722219016895836720142586192954914844088199271793681378278263615000228404708634114293869543211052526951033648079416777031277820559074440479733761294914995434100576868447774067168770716893283049760106011601391805287480332511158773895845828468087020785317054021315737206345092795059662459891223449395801574107791587232999807795509392953254311905169948271278775516113307757526546648863825780301467021391190906195985172600992884126421190591007509451112684410613903021368123796146857959953726718602427995038120183938502191023725128112889929324883835938980541547095003659530149575770114348580570615381897528631432197969512419098693748663141103817864030456369640201324252944138549846439592776734659379044008701240739667413266180418398570033929006105325649504828499062026946163001254334681564412163004230770288594112231489301390209933899667934301726597484879343923562527681676554846363613018670297682831555694304768552712651830084518168276486914986143429225534234565292206664331429662324823765871803139456497774577359533142831871361781772011135208701451998268675114658811195590126179454278276600355999494546846346916608204426062732666948724522928003930433199511037673887840836214958037369771283124844730828796418841116024184831554895751346760163737814656508838382097691963387665817833308448592932704696545301904089301767089759527521888148413771814533771435123564634244718509220156776994934032434761437605233754741425602957917184753409671097036796323122956792348171536638050738502401533124515341835854361618729539180121109582818733546933815663533948789529022145982286001851056293454763195102849874030338283505809159891713596089801401858705853669520044689129062981866903658283305840205447038811930401186852868061703142869654275968228603209742878790950325789193448082164412994234650624529819180728365971217464762453735668872411286437634943935104805711905800296210384017511776630369725927839722577127975405835493682501265560606192463976013319696331107985828436833342334208792118014239767956320768749222061526192226578702285874092119804963408685653099630634370079377321118618029523796119021469893495107856798331518226055347184411633453825381416184684767063279895037835899814700820572481123270871262534810428283195530411795727805465743045504148143825532200232830544232069099765881660572482998358141475836278481871772662301585980316719190255445926198577933927035398980031288435052607403709477579940314980817813988073109975842711936487851877401886192530147396230092808681147097093882821425372032652465546038114848553247099923668815726063342018683782211667555142790334770483245805705298556940865233906180983632447031453870569520480176996308300482648529807101149326948193959752439494263181080894258844134394637736843676835293505777453901386999349842748158060707672918344477640201495275377205712526162487252669926431515269744685827793573964835207818308601156824546330907314512812711975385111284663110337728439628266964726170058875030058400610664044911301714306143709747442995424922437855061562505139831643404822534321324018481276889890658772064214856269612369018542251210050656726738223497810004598611933067841344954570378217829153461723855339127446849555923784759628018287319608306841314850927931211146241218694113660108381772289131650998413085933602057739460145096120891576714393658275965995774960680120400294104424279601405603358865222418056014111297767597556047836073165499918680617344468484588912199280824023301514716324176813778396283605821051937994575863005878138767714481179355912704370755215780540255518725115284034581145085468220786627338174399041959777440771689600527132476115565018785454010623668586977709419277832979934068000700095882317606385690145523238231152343310082820964435010493427643985689593552429204067149918803467057732004964638197224175070848933144722800687406046128224999813227774945337707044381315764425875197194737410860516224239113088254924148826728140686369990293881389152028899449166727935185008859520920616517413560726351505075207092334219770336718594544878625790202287735140775817858220177351870156929063293847773342066484466930002883657470151186837681282588211451040278400537563551683355224112601102344926607804216937189731950005924068244736574421799379524625626541891889886241179129516071565814258167386661371339524880504902948414352677979663102550042291695414534442697358933841166475531774653258486605365601768080849028011142729267186763737883974942866944327197926907679127070341203999920444689454434343174396328966694880719285983760489562341795270073768194651995527371417329404526665476250948046379874584968943384884741925951544436528240805812223757720495655959827332050671157785428335317462293376916575568275812501403673843485708104811303532438590408511049942535369511229349705482446542775724939682605333473093413894296178832278843962798034520982691915905056889973199589292890565369761145812065784694066309762593976712694677399973812160494152238288210289492735147065343528467762478514688003379503623606567944031521610507833017095689400572523267631735350228287154652243760966716344899560901550456148240217469080206547683538220742910106832374308085417197135838734252867449852310242979215464893124642103635910557045348347482999949101716065572028087005409240753647852325337507825689146850734894467448546382778428600369439729055760072302131861190829686534963070715715195856445200558608068875981022457910123394333303763148391655007102810090507488698622476493128982795992067190396058106007037691531742151255458206680242349580597336341883933962655290586476209288306836717690429471344321398318687977786473350239872320762853702630027517415631483521833665863814939669862995769888777043958263213944382793179382498382021177398405014845493273444770711984862868862203691146300065717034058475465086571736102905579602915897081501364966814898408012486223149053870104017483776607315562790655833513658794738409262429845800887078096689566798581112863978398255660361967682509371910694272664251480070657318181905890868564827378228872885978386040610467084640227450256253877626693416866061721367418788350949661797413736621390403162592806005122044789836008249656411759524641326708365514103281358290755309281827166416799842132839019140067807733881300129408233891361044801281385637357535404413602193424702373083743694410906521563463506826101564720067670974385367588145756731124429925170046408527724956936196661602291944877059990128081514893231387327478415913039750256212228128819811954270081343535965915821751567128638695979076239675341173083283599195773085389709555309857997481315997325148375903368931605394654772987212373154670777296315609091002662236458820140611871475407759746583737699106810311319901135244498173062102144871047453525193373871780607196850413233475150443838477017038016423991158048393342695846286068222178320557402323818806506159033463295309792560227352354888891043476186259018909479744782639406635777394685478037291152841016440200765666607271668956228755101421618829076277415619933284789395034090490620669851444998733536058667017097951183251921316330534405473407616371572206711188734749126429399927177097096088867510474745062258280426533674089714312736825238232548349628957574035383571681880663448957062936804035974367738403307872429377944687205602647605423891456206676983900473211140001794132182260400548887117077199193795165973120737101922835187531773346441800905367799393264802754782143358482810880607353104957117695081091865213784804310826523909961943980329990234396724453857364371517989641352303791860584275855927257842768990216983252312296092267730339144971457769519884161570665718060108290255597945342664124968123326451514835603796107186757663670445995226448344270064425587099248716268685616092742511120326703970266227655724103730333290759133355164334662358067101721259134266542951539429425775456938447335517240461390370159064610832339996923572868249399254925072578084544525792374953731557640228622876529660935517116951364389824718583090588306620769020098966514454857922697824638670020981468852357025674269062598436053781776749241204691274044852570837835460119209810109460904174987909830705732177739450403662946691737138509911931164544976894802695628423710955658999997947139310897058138272339161384075541232944631902952643181698642381372219986986504102301028044186415660668622480973101191941671376837487778408548429489250985280788970073511411109282263110462775448336703929903228406786317550707236644971185909533895184511092523832138017581526120567294609847775491225061180610076447977093771619814789769187055520227850541092947286969214052217262909607984412049598983488532845141842465030146212975027565246790191065591097036034641768440873907665367281521499238066629603307513818842435509988117989535643473188571238835442169837750365172806248419504789430624702282901425871132292339697695189399236850394335785528162874914885099632865405547423750145582197612153231397479087291513565953396605357997880155891836938098469514865459802523534047737967136386482362444844115399578512470081408305543284587792810639573697266921213157457673250375699068620124266343801170451933969282295698842319059856797706811626055660200345383830712845463280586872037421879587134500495024594801714172185135817528928627824041673373967230967092360709710509764310857690783597711078181653682694340832257496466131983702877648137076156757670064656395327158796394391364115800848795878102349426235343003270561437053122382525506035182679355572231821092935741060564643536482245715662104630549718691621411539032553517681271588629220094570579585954371995626806290981399886000486205776522730976717773745390046086728599218207864779635440345104787469249267965898076684787712892580788442586821301379622039469982510880796060475318498655640415355807916871177346077536782282494360595535036346961307027478140779090007535393119418294174069229670465686340316403345391235115502327311001373032080658199422194345328078942019924683859802562847927125421461234895401602576301685825420710629831234111138385960360760584422628596844728943265338279902827061519325967836648034674461263133455272538710169627843752888250655443374707094034027094144864091560171973204229030849398289303016157204017787664498849982551839109806791086522912212909355044148874424154450957427198553742832288743301598228227030387670411848298461010235015935601309230744738057251545705267857507298349755720001341463593276402391982880245977752243991241198349533303900123379403289712767250062860194024115783202151975854893572332409319144253032953722024958766241685656556920939645397412409296290043870941425907013402433487819517310966270408650678852740209618580334320948545501245693669348758746049405828476680296928149103519780616924774230984257242424029353020496933001257293405723196929377949439196609293257830827309274642949180017377371200590242981380724988728266985120143281622024214141131528783625223692511804835224269670627506326882976858197214428182445994870740868010443616173438637187481862059931753267169153090463477719266256759494193697166460197408945964923364238755072428930244655901624214692430738600460855549087687571819675453107468358255550413294091496968874138602706126333518997190733366391912342176021416807313798820401310744465326753741828072616570300660849387311286085901376248431804523132642517395794998094936433877419113510094674116255764840799944333835529575301379117938690077438838469959650229143869002787081043907681850073342653101688754241077455045259511165242347627069247521414112621226091172229707558712292847918826898916911053112436046342528443448802217237816678107599329881105649551614393770856956867119786484499432221258649754301932029867485474586730169358227732587844463112138006324356168670639867090869079308481978820778717110802324454164390465942143345206600827106605136739852504759484930562039493836284862925942352196685997823609076644386382369273257542610084840992723922782080590008450346388824304974780583932171326943292663511430633042786400179130121745792516248927526124590331464317093242021867520505244084861064568939664025802690635631864358151850984830183440320086465293676066053193385626792680055007373802725447159710706925161297360755651908735537846199877061736914526112961230861595661222234502253210278849334421962577708934641720499820458482390444304560772771809618231020973609545594234983081541994626382829530225908491102046004168653094224701665904605872564758400204664004566145170791841426942879345161205374527626314336237469365312239301810308322547960413826249514211013495613325570490845273333327390138096385149633514604887829979204677879834082683608314672407684317109541994800373923000262881807352306279190723567130973022933322877103551211596860752375130143861099293733003060001477922972205173896599325766391959181203826938376864172183032911648756370339005882756945571742078054254852984218272376335008731594586056054487133320745884361850914663785995556077380012140654964189888840885187731794426581998716349502182182614263901388334322122385653049545034973047090584629709746245867351139024483456939549233869146242958960599483606678781793048893013400305185738810409334969240339023545662663732587757976476648413470895074054919279050625713292982824912696490949727977040672224619948222175278845847995488263050353783002812724245468101969851640755694740641368409991414227368647494459232178218798288746687679241549085334372717501682608444231452360539520962648055784389895368130030212854547698393436556101283577523888849596423038946267538576620519110021831504439013605711390258222440403207661970397236518484132998063657238318052575635999278362115796820376123199610969841128090611942214084933726795314906039950796643480653972289818619321382960238286650815463740736833133019231141617929002057178047281171434381035588064663912280745155801686226377255578426370074614682441922492339178065788269266025257901419096734524230052290020998866392323531236305691301106335487843412227520182077449040175070004698888698774399488454070612925620371037229695431124580026677378658371646084519589249757774677131765465248819052824604019980856113742885230254875837440850198438307467501685960533227427251908790675177072469348435987848405760425712521943091103981985956808518870579015750810562717213421672890460210747422630843558506021771777976952942185818720906484158482531706891638685636350176846280114248968863585200082529631380302236857674196363752837120570597439790067428922537841078252989799927955945471986858385430000983523515852944329565974671170621668826362425547774617960329604085669876603432239699997952455834022287710530100638071775598853019916970072468007746363741409884830469935238763423040038876356419516719780715117926913629823460124745597715990937247535816234028517416554096967009438639899566592193521006664483652168183679074889395616362180965396233675486027011216713850335529746399703938333707800338128662877438400626648059243786090469065477115422248200122274295169437308772459599416948968567344077558047064012609848010479614988222763245920018327522497768736391011369886248034388789248845052412067911433293765087731292323014531319352836165598120003067630932717447395650997841945077993344906547621537872785127544078217523852420496433101391511657272920281738600273910980387757922439256757757406266341457703668758760053147728526445483139291985388231141854932639926874375961536037486212671956945893478748687839674403483618477448181656093870835253939309408345191590362566229886368938078669718476153757590459211874829417231578541525667373571888953949436754317299242802482142276713404555075930513091778108341627409449084124563721534663074726122214837369334011421580276270255727570558245798986291798612195221267432097424963347592793844947423792587754220259495616137191297905432150292549231390410972240030701549147968822574822332276223516846157480290302988418314299385240031090526214350590170594194497778671887570369182121130654150759129743813586145508347006005843062982793006396634679004822067688577608512482758900925390613535456346929602191962156009828768931860677567098412683760188319663806651629511417710546880423124292002726014324197078494107453867362623625620819923076706072300015039091197933069176171309192056239669002473278043648774954641220719315178408900545242852591496180952259395919744547432729545121346246715835187037598105379652649909382562185559607623509217872814049832318260481040082114883181757351825040716966952829661272439562590006713034242450378439058319927232889614635646340585213634154395794989118732049654279280969426377174428078036706858091808665655560081694551815996220872320262629706983129731929098250446146656641377729603321006209309029373596285998553362419861949882331637573854029322674556502132842214770084271198847946538008500734821660278241161440153025849211259057720200265816161050517298599892054309859032350068770764972208962317248427136531521837936367298970252144561420660063035226659094201693938115097878188100530777915627748975860119616277138217212692632880641455823962680925304238145720711368315996321429571015052376021998647795005381290411790686823215863063778343066211051699989451320163800536172279494400376333788263122364402934108259609651012104466533437690286112320970008080501068207019860611953715618132684858082906181689790567121636553837365925015560122628465828735110258056153876192583812388440224126368320208795697530976838517212088153878236114961452704441288788905539009751431030812673880496960785347417985402137311381215062590617911871926043342035067784516611207616469123624945498741692937231110274013263643436495883103949441528572157667916233965919320848418341162387542122864549697325818739689256165760222410887970685013482707120400883858662406734125306862303244934183930010617243389547861199675530804989475179046214547491394395494376917941924775526570399636322739220063513472984551061485394333451430228873980441543058796641350214639201677945978084341571409795215107005198836416995872390282121639978215386766642364605976298941465339432523134248232616630133759693030500365702431033156207273758942795741227183563542693148530047587148335621077869169982483898253337232432460655206989826213676762368743807802213345592959573088725374990024610731509870694104639736667542519400876829705256330775889394917164765697283145899187729809029015766021831414442832851895866467854724960137789972086284264831041393075087556846826741719608539679710103975371220125482400282775053641783548658453484818568064061124576915014009171212748357994116474117956060288004259607487030355705565539248789096221841761774825714244989888928825295257198945598936606030837204559234835600883364497029810815335760861729861743035450011760528814626634334787059302551158419480442493918465115418110114100203939707791955921561585884612914032778857094474061966884163974459003565665491399276197929720002997016906628601607016326162957717361151722096387112565430493034910297032613651044537198859002721147540444980272872180396676080136019544109227877639883372594662190771856597877036799802852750455605203904073449973743765904933594575537527452317471722582087979123503866967191061665021710652438746520590779040732514928693303234373617424719974895430213406023657296358845488026769797491480038944925314897033087322540513363466220440784992673900470570726134437648798086123178883606744559000247441130322764374183756122180373371157693915972786677625278717195425723828607173684909723550877458214132722941776227674087554916232760770000563874058271099311491472419466360137900420342020834564741937448602268099945074080048491411699053655976107726994858790657024763958959059821649450497521147572631244063755260322977529055916634434782819788050306077238138908042847561124519283865746728252062479982158627421131208357576846591864539694810818804117088974073169721235673717208215464211731519309766545580250149204804573387654491760844360383120006445307611125571044824004418951328169569167427461570607791212763434553968573832125511165317126689175565046498123533613557085328773856407443970737476568239300635034100546014896013826637628603386164413966942274335157492687041675960110873311860931352641251496012434652113955121020527781371341846741458033920894083820187235523449370923135945040862653227480972341632747974096125436094218653223444062562414214316098266236764800584406811644177405712770140130313142613766942310491756919728874149260437222452155923325528715765824367249397807410283422039324575591884299458347801982255304758651588021365807602491264175286044424992109018529503307832619711771026584111399899492238827298447499764123926911551499017069120606132940002300148597687006667074529705674926267715513751060698613039468640445825106304927415815510841528376797172989352829165068053269724861234997554652660739220874748661857148511952993755955857317219524632054992194716403790806670115591805213753590989708356343166350397567049909808194002958804051507433774620377709807524086950544659667672739130473870988930749170394009576235440726700954920387458318953551633086297530323549221778112867924221367960162107008839868445055969364403989812416470823170068288272906948259607938834478201250549716159962253426904714874625632821485213821525977934972892863117461069391591604795552699136736989293137744095985006253983697911438262398100598277530030556025978606197028199681966884799083636453608156912581318018528936272342565510871144777311815022579471972391984449310557758886783785707381990873767508195237681081604274232935786493517753364511094607192555195211938418488461543675052590041598271795518993820837885816853215345898118504366393048146364057941788262707589152163067091191869985610492646552966950049147715497798616555534995794795660756128979381409784955346221287440830168642212967613024684950472223052069374846160977952108610057912167509794944261060391645869300317535436227436276124651094328985872927939929548703729056574430855331251440148706805677585177042049913600061658236924335234431088383123692499160511666345869827652963756492901005290579461177883900841354792924462151584626182183782271121455002889463058472281917188147105214309437857429091688734360808759858933770027115227183363562063884185943265448000060049320523485550428953242091501272517524030722724765906187921464412742005333877344495171595750589102860088391210732576448362819971719696514860436650849694845113197944425876904635101451774123798388737568830946049662612460559658135843396561664931100964952866827580308399512613344809462631858386341036528018008902804902509724783695865790515272547650644796893959854991540423347245865115169448541197832918080047635816948339756888637409901390966063728958135956827261335989202020592210483128587269886960550424010640608508113754850933376258688136251932074880174008216709461506427649000968608825277524150924587351889922121633888749483937109536076788230052919995814453701826316242945510910990430697868234711891342623219658209405590365403643086778739056790986352726033176896443765677234211209209094083235302947794511655429055928854680361099759702835094519342989452173858822660161270019922044287680179094700630127561516630742854013259823138639008232458296344176785098808134623538272864082536893325453759612855855231484035828342697579076059120746293406426877778100328701521413785698381807488635308913060597550590815546797029455133960965122996599904236927405864130991253250123243134005420162004599902891212770708645013050508798469222548520519818743125894056834679207370038729070288981532061988545513414148126011984864626862003898824817587636602390120872227810927329201171856963455170255089506060622404880496965023597604142151208805484521869659308641157146150296339314915113097294730471184480266458586245208781080353523347816131066643773719586436486108224011797073293129374056285195556640812376952587584160873119952596770512288780704613699426041059964074919358927299849032191307237882219451368128212627154529030437378290251589270188112059287835313400857386974537880052125285843697872831462442350659681306218910522386768121275759743975452341328249470927248873058809486110585547701594864850669091843000430527189488925758721730114909341487334151789886917532933575277558523916404038225142449669676127539039482357081422388969311432531417952664366499593030766483946467980351040661978839669460187947784605332020048265226953820897882371894361882850440439873971056574588084364006628904855032097124956221777174708110922787808026696151541037229063404961975628425539158959937036341142512082701978041834097759787948628846146720951163298346706116678781252968702299676637967597128407064327644286050463808725821359588521717817007123667363332568139932680869358794770405710827465621872684885299854718396194696236921374535155640659811605995796093103148151624830563766397943185039039996043964240124458476812756765929954401071227766874679777576825435331965383829667377723324343967983689743646765664769874569889073216222626738055804317955872691668294912957729324376017272177838772681565193957837067489913212671166797733849211510227404980604434517557861098459870786651856867163134601500136269539912356588564485189611613908182599649050763686598404156563572982439539044595926137863053110094911107087328861335345682309541967652703824449034232339746672359396514916077843051373773913256314285911592368246434280981824184930057200016723097225604681603847133855335217145045044651848468964699776353149853189117841486852321375091518131685608957241164939808724836492327102464287302543492073168724725432892640430049145245742774043666999922330245074600621261854708645256712003203610542858525942884336537434215397998916840517190076277111330384473633349753823077301662655916502587578862784049584255381496961602560623615559190627412340594258979329862332766914992578542407823045465638953864586499442643677412728961592169932496851575694008774389201549437243893127549379605014726774230717998687515391216941034913283170025552647619304295920457929877921158036956079531202588476587315305452393598478469976199427744788501651038630404756384416163849452585621827858547099859850769021053738192669324272441439087572969104637841669623247052047859995009186704429021761062019331764635594277600543496783476150061626449795505113304371126909385786337807878876786441474541964857780076353056630691779097915115285258009223924788096667925061018149705681908160900514109872346165896096607295415025957955338999530200037196081400122476045594342895874371232328086147796635348741915131997294111376237179363322744501766344896622566149870250811615663735065682765539193724257258029448230516171830744329724596455030713255775365369742765002588430725339782748684057725887165640027994737202511177488445920637626848898771665498321883985914294704734857817099187610028740099820496813473388092015077947546722051375408780192348807557896497252213036580856761817902226229857185636013902230900992002763266078940857049159978702037881416934420096549334570153180985911577146041920724048104130203090892023381252135984618775815207574810547592873241584248133732221917524347362358072520129452364162729796254931482303903295488642616612069756338902087161736264583528731629989003188787021167802041382921435692549415398778322540757252765449612595841832848823035145885463935099980058231412105513477033253119569347556553647416443625354731944659720267702638522009652956758631178574505981944691682969894259311077736682024357128510322835189807573211274441949190433083349186631613959041752122209161847360319103892259667802848071373568776209263724246803012024057897663011188769332211850355406577220477033765293697786787779559419039305441728137332839513989697510781058585572751575153861948804243478650543906336444274920308757034489853033703919830943286855866443758457825116077032410019134594028302708604486207906176863244568218167959459268938520717319025779657367125705840487942187837355421449056592655831313808068770424082139649333094702631155365968120714091411729300565481363384102490825284534303843913428184970504218557715667553395722557348480789001492273948967294407332594369731299495817557388061383814094364268468134404067949293309481858774378175126402675748384299589057535694503411111700569179145347157886638908047279536044938735631050394966233851872725776881930667449980955659729517215260715994924419983573031610427223488184921175253862950670401233286297896741604971416257120355615034361443862904916757815219455549129762473064339720210692884250017982815247299733420179882794736694089492085111341466981136589691624662829784893578596987821603908698533295855834295942853499803444972525483188912123369820287603351132828662041824921751221904544475723851159477931634086327184817964721192961187110706606695277996891444619754176619347265107712212004440162382348775482797207087855371819642257346511256463386117627543480328608785390618818854989679582771843741474828735025796539660726956388173856936948445510563147696290572058811211247429538179194290410379190559471346844061803621004492190744737509961397576290418987566906656370904442708651535132798349334353666679324542447315903742161496603322067295034285116854105694809431363223605123399190772491792012143936900969899782701989820015659013723269152528661439311272260881256993577665659741375759818543350681948226817983173256254481910545867935061398741420641225960306009734071205635996132441838255650725961284144262745500084057981245179035481694476079829676420932454966854368945097687422380874407082971890148260149139933358785499647197097999512267183231985481765984613210341900846892007725006117187472703306693055504134842702339062093563657975622106329303078844621474220572910457621366920535211717130497467217891417457626655169256437679975242859957459213919112298998915553018507316396554333178938314345270657973919188019532116775608134793311762824840346293568305052484765495488894689629001291510484627031708780918802670539978457183742421683730936844482013048758741998321811799378473202727925054437961092277780092217573277558503232657026787320473553908992188006063893073229331689214205055526278703335377978545520152792342607028311094044647604834545824176436024718631945361335143620314472157945095109726987837219149921822854916638096454114510478523787864534878500261753894017051631395850254722521732793865606303803334720573624133176156831759670878547463831923855413970888227775897416908501589312673118021275474496842004322816498424876929248745863194495462171349701382129163780107712910459603365231546860207464427233260649435942014555287604252926295096398465055258447995693433546773524185391901554828229843731408182458674472129576648784450039305726745939839074217418868067792233849031249940491403278254196209439904284408468857717014209678056706319137770804504218372189284411869402905685413993587604620912802894804476498932077274399558864876080198650122596390461156156226616235389788193959910189789542879419156224898711582743422911513174787640453285356390217791596381777918871537068874377613157718426432572400504001187797647417061508905277725942149996010724401192574781436035822927027485887632402264152079498907791359385842812549872336525417548204840805161182131285394861610826078629649853715955593533077900850020505398194066473270644853799115589828523298739102826935109805126014149287607462128825080750719221428768046491504458466116306507071570225457611674634408696569675467796317352013989877271617247774578033466093987597143968225252889807118556424628573486213754432748368892014789524146392064797015129144141496270742978857397022292527892203887672781326020036985183873340119120552659739441275489663336968991687940941210631485398777874755499525288579372511438999883570201744025144292472608809320596814624292979936544397994848214064931115598864226093690515751896672014497996653592804969027256760210750452356521893972038219024302216374713789100213345212882615211182748006519851948953688510415998104101460673708447996203866446602684046259750451437797946476230625455433808411591574227666015747068630746334262424629905760355412787497396879971777575511519346433106303610704453509166068413531590623528546261315235994182273205324978769635278019493224574616401081285789171010472227799283756225332326435870102730561294939667999920213866056960954045425627052920111293047783095954183365574395603530357655532907266713606987065023611400694077430638904996123891413822764712106538841583178462303953588480606848327734364050275976043270812564450814987413940365746719708369932559348083040195880359269336292139039432804302767518094962644026981035986043418164691556609923420683244960388183874234312489503173118398350082504011230335224541360175736956348501969626251049763170465435050468680589185456573186486426963622835947375123598872834739265176726927286928140200504434065816137176613185848005217575284702617939118352240810666950645056960328378580866615766928103770477354226349723613037491741608100843842319991109892823401882704295780479650251254261737109298014487585230440970667724275541183672224729885003795908359064414296173274654227375264944689949786366124286849364725898606356167630374291632641065382768450481313088664716264728455264706864733050664196277748283503152093753908384536645758756060628866892440552368051376436145251077085372856488502990565170325044937866969469402310444507397848715171355095074748590983080984282630993633807684477382215193261234946663419492616938185822535439552319413509523684076316415758168577700819738045848471453044997139350687842750056801469794105441296063225796873961178693700120616330535227260673195767037308222132872945644016222562584781362547576621480368744170866974139099540948769930585012543075700443815507659520100350780728773582616650094201874333272388859299779131022863576575212909266100443714751056184393810366626320558519988601965772618071326881494520841434009580405608459507533418749796277415880898387554730719044702364319156618119380380716834657015825698581850919036670121673056794254104239744408299208369108620651678287362303619030365686456747762380331291895976258234121937875828099077361017134277325153325958975053284100099061020444542724199168893198243315067181150173699689790580198633270054339998041602150670793980990852478894209524351612428846698450613217285809571844335078449715772755500924944558935606085925439320443120341405163831288522709409147034549712043041941878710573394147280395536375206478402735194571162354503449019513388578203840369786762266883231358225968204165153303653699209538685889248099077686867748678381869519286729548805854684634817856164010443332172407903189857829146325533303469393039294977713214021082528435360524085316813281117225306022639161351325888612109121720583307747307800299641625447237195856042334511458425543737215107724478701360696460691558212057469629985203421939834663059927586830996789115631162141855813078240015561162235011241254081868559560861507817677801200304140202527703381140622188485978938054151789531414912118644927680976144000748017752106448244843646209698808251099603643301625154406864118053584917903969560059318314912226721830128491025851772866094205393758686791604688837094365637905178900183049346872318658784840578313917930937732695635600161811922053321280479443944111216132808366715159197571040461249569986296674605525575460174169160528579020095151750582285278741810107403256651806014781028219054761916848257870519938477847112565920282683224379178712463534719837722305636931202196583842863887192970997986824416029003238117185453586751884093134183000838951418588724539578921045734909504878382944634195469445192450370055031869035403254136966605261090650503081262513319049489285791676830883955606372022401234478959448151503201715299815067864041732527342329503180198583466594054305837509653019359598537424235361371344844328338004726471328642157690546702523664270095078082719884333507161635848167655807778972172189401588847453345874334694255476204509539342573268522663779077004317106088053048612225229457482666807987733053391483892836132399080715303270560656146433530540722771745252698762162053569416640886353608289286020155146067068267502025518487155226096247849184589073140795213035720787865794417601420156925819300768706633797947173206609913689979028649827486980955748793926437550158823074831906736176213439068403627113508534231189320587272990332447195569100925706773413978689679345808295722524217541787528961217608962260336219137635086621894675678765608885132903517530774827971188744163982987750721827058759412192677741043311967916321317105714422800460004203982732979930280644344156624028924100527619352978742603948187399631197560714803705766376392533582054496791429725465879303816388315343355969507166522696923728418487485475207333362252305392572608407719511978743007389550669018431522288369728052518815574259952636407727293394549030483469600640100218315778819420780017573268371204860538956606462306243556990091510900215692384366021761282988901031379895628551141671861201014077655747741847463623291110176057277232970338425356812354148120814192302771593460077026097490963510059806016725767445420006564636854718947561821573315320318795559886833084562287022325291180435675903710610589215530783729030064500731037807464261207282099244617216393699843702178319945242976089512867773211208972973932241591644631211112024472888230119756546194785685110055224858754178306128326806457104260373177089543182619179591673268405882402208451632439224346175639996055531428087287487394311809617307167830012436401580833474037333175465936451768752816188704334629249136325779804941654693693143208006259608338751746389330945759191681901921474769589968988979745821942830427148165055797591546599927715049247840767574803277927649008647512826784893079937892163475457381724429197470065623370161080358194257797836905347452461877480832491343313303691713185363572755845968849706653500974056641847801493341203269993518944709841283379797618148855834757668039045035650475230147478121546011465305658251847710291614876826666462098403964534285428779285666495138743328940927533901406696934179764932546930635223533216034153635097261901249363166851830857074149641914644820255765496238878544508187350197634836659553095612463156629519084875275481077599252310317866528523066842489542887495597083993242907565119168941073784551344149654424458628553939329898181137511544861426724268747093927195458589098461333685601421552725252086211913288533330169371463343084776126875749146978397583085877233235973900838868687363340395259187356731460290925771810260808863363877712979175655357706538550430469978236441125207049168299501425639605420074664637188385056932245442830264697241666015740271247478284844682328543232319731755525291155959088333041609556984862180162611852806194114068677374819224680195461607038198626601793257178518684473669857220873429738475294644401203536840222288238400535722789615661191906297608546927438718087737329922202517087095714316657406910723480769892587480286118479918364124229844221517568890278669482902814583957288012960448049193893181476495345069735400975562905520832165077455979905421942367174468164338670264763446963733169126441598873672321579137505869742911849908443449982996111344498856438076878940644852721666583254195517503390583018238237726566396302609511041706465899497793981664340440431125560654651486061914317491257246938808811095119209284812564912575991810448917033281129137261376446549159772700443467057063188030867068451782879706969188416898597038619013049464189058136087399973122915301437953154138548665287983791520735044535094150018555643410888588173616118645923846035433370751510212055670746133969513237068073069934624976835025882335919474931192313731107974190993816166712888255108814658377447946846919103434384196149309148245785007988954348073985829678223808609272917139125929058043196713581522957165644808420003238018046377197554481681945784589089377037611207992512420051123683905898035624374821925169071318356182473345348135796379611851272739378938485944043725432637565737489584148076268499007023740876061427637490195277339524167852912561609460798603506986061621524828848221987195608332702414565308475725918054800163789625553538540938069807554978302133191878717339264570592298085703495707082795036878649615697727428228742849339479802700431122519177870427882614808248441151172926291172691005650539706431731387040435160872411564939113993405697217915169735444061495187399720960253464891193436603880615985874501875952032351637613182039359485740541036075349811772952500752955769266942911986861240404693632983532495002736735209082041008276397744897965415054810714689674206284786049762397007255743604738242144548192241689683570177441999671903008612887757834594461798512918896701873982045222840303000811026791036718331259731913490327271850248732551841473702618709803995356311476996077652107334515994822159688715023372518140448554098761519598527397738170023493000063769981010346374249037490456056589300179397235168178080312389076918933664946025741598367899906959114173531589931343552812676793427522798627969639900872688720537578894157414700873112321696733621284663401926864350377776549143482788103986280753315030494942093763439571563681254275007766949336847240828885985529481308009566804688961050862581751202013246630838337473230856336873402686328097624758264527309574440249134994694834841655927044722474039589407985737447616377924744857619843605314658744352519808066316354150876558242420063465652330015798365140803813036667028199482248973954614425017047948493767949964842310471840463509848165470569500085354826991070304696923916326675523073365857932850456344749330500066921598044757378461973458308013285355693993056055787089340987126167762236342067446566023028856472504937381116398869363284929286560135336068091382083507972563742872201186232240732692152875111542455797116224675661770563243906809950499258236445203686600604197811306006863429553275703039950952427785522352838704445268595043480753626242378639407299767047663988622534535621611493306978714998906320303905928111829464980331190488540641012008822700729570242385761536807935603058038922462690354943689586494068994465266014345071769847578552908159266432499674659868815114720202193628883017893007657580787061018057563193979146414380534045275968847120119900234753809038669564598368334546293849649480855357103790031028657898415646472962124570576988430196830679939994034606942526114613330914273591838516710488578564707008179701571675767630687664672461297250169855232379666709558772979473715398918977886131986926908906205423970919761807244557291610487459535650081000532520609560588445018016552770833306739689685400614748282192134096610309714339807437553242129178168114350078585871245127682360350173576511730887168496296489344909778340061230004925575264696547558404107776411677008758754482524936076934630285319292220141577041850974645301881157622310661885108804123674978248196752653218800926987254414043816042713612333072263357423105926481269125040241526979497626732567035473330081352945470020168044069797908447388355720055882677634045641553064396252667420602231264922025808414135278756682771103504815225791473195893201627972636238140027718264651336919368331929351749981971851527972528739805297894329964151940773977718075541046366664595214805071951854220458864789534046934272259895141383102574526377271477813123645187681324970021188920535024886815590845003621200069210673740777437611702577346724979622735954841737100173988097059762305347145960971721764665808411792718352745128295394563070293810446480530158998406588619762091159928087378142639005528492922521871313642197795640452261224432937837775605571127589370484451941955032552741470381309785032172837941419937352933231100520393699266148353986168461024477236690487444959810594888455674211228865674773514575035643693455929201048459369047833793903083094919808032203960237434979259576187214062741523406112258931071011989361084834074555229892629894427961936193009394947110593117873278568754826792624281385025022356814881558560382158260174119162747800461993897072513432743570758068211750429440109503614528075784449346286022366342924126747294302502724166535456439648634383869532614491550294692553616463843719290154714088727174439387277585173590429029059147975041391803919319761846239758767113755271287232757619619249882075978231210378890580544255555074841008819826111723588787295492294779734014107307894097991075665581710184269327967586542436803857185745853632444437777756818717893867475478494204838990154094297038601112966479530711781908369824560881942949220488042908789378667509874199908812557345942641857725404170030729997835916706594711042615778346103258833627501883555083101378422762737764080359776697343646203082806177450782196188372983517809276555399693376257055116970137783078468165763829983463821727357182784225712387961865377104839691077590529011307188399687117891326995152650728075087214972207403810286795310141169284016610250966158223320020863371782523485585104186455112080446069148939421370920083673949372737040582191361320057635739486125557225036413750641957687185170974395886117160105024078975907490836476095258579143628306448614025852233449732035791654309862501288974317092963288516403530487733967359107132570034064350438199533040861574455313923794768913874989150739723941168165016112367274113439147584673481748302514460890766940935982596033612768112145452973874386515440971852393955597228873365805406937025270394009232820717966079744720699870202220138220552836241925640066461258664580812541016976658876313764195410915453074656957207494357506180988370000934416461079719962056783159633923438596314839657222352461415157798763724516767126618112649267499659783846255948195546532045471866405318370686470124023922948643535446592406978052989231124364706080900306645803306926442033695327165741028150923950361079708980062630454661761908760860853866910330264482831539940148877409568823242930153757523524639659013210788748011538887103229798496589942319956275886436426223440733936117131901402154648803525691280537469423760341226358430451749830721235126280816133316604291991445770136882644667214238149108918699484175453338744680908252783127641557112903077806364293256202398505484877284054599375966781212293533980289888348053312178406975640679876853671065054436325650177057743069199715586716442068205663116653039468836631798797664267852382867050309663040241269309658772140327787981469482838488149271151192021953157252101895351429131780782299118993980911976758542963247250333067094213339254654562491299714194167972624315760490643653272128746219327462610921957933795084771462696459147937740507588843426413371314010838286559920197290172213482017665779778800056883546309491926095693821516860118512921377951761613423436546024340328561353476654863255502162348274360693747297034491220648108493937576581092059175103473219456687192297404472725836268478679732842689022534235816902441137973449674280156202333169990666038235273944851083031309054979896811425888353690575401751535317289321106218477449834071349873104016449891524949880265439749638601971411478987341128020418255865888286768208655789429617819399383378889737627821682216391322553414796443129668795700778520458757062756193734074869744634448856150610123613554380830105918803876860409686282591970505213949028610747667612697750105926347741297338544127573704950099422434825530407619340616933666137034691837859807653261594052771535524179438236726081408390077340473386311948623451097529529361455017115767748610390336619182565556961928119328819390309055758284609306505292205110633581611563527866671027535685081419676185038832055802266662026604651681589149622494706322096620065942347401649854305960166915665062939854685231620141942255339061011477495149860047793690254361909964184756021092532708541783135045087683173870403077773385281275386918649297058698800012348317912909809489861894749137367104562726643301439041537269197651495934042080002495846584257581695472388264250449882447958161810146344219485545285101513422829047448661709262767834285598408742665983163993782870358094320208490926712362417202948403967443496156885319249464839333725522888614589999763257404195764655283932183554880785918524539692964650066290245826522697994513303516807601229034468398119311565697290421664307511881299817642775379593545704164424805323572620064140615427486368396398420013569224810929115333361123316618629841572933420361082904967555028289605804977810490811117416654886379642064877959907541400373431519735117029944785133315412718126393276456753939876977721736216050299652352806838555546946246330102274486046471793761907122828546312163846806324410717312035156388708901125219930088898498003305507149538407938111365935988817102159284575614523213531215198946291177492212932123433155715326314560807317982787724193656214097237646358657705932272528021253816513212428747585729800910801310628287626615240646161213348182821301029400627979887292846661551496431609183557026686371839160094774159337727462084731601818722354180077221733126515176162956458622987967929514552724405382206527842823299587103912475346022608273586483088276453673854583198877669979625288200743874480057121044934322483766292614645236293946446182903554092192838311540324130916675827381048069129640093309091311832869688431944410399527609797318433523689138163390760651534738720869625871129371429766946096283884795040275956268935285032047446917392377692469530260503653465215963137758429587766678126732664997396050018358250027254879917956261016854546341734217827081098865529102762068147713955129311458896511914353965106453523472640548530076310509259608743950497401123899567842088788672407801605016039974279865925681613061552400082211032291928704596722396694275744655121871183287185940699666453952809125293694014546289850305864970034214063452424387068471144314714373016370488578639738564908878395380059728184576283393581853686309203298254726399701463580046767322079517769263229481123968715917084911353653256350357309050864621396102477157056031003920199141805185194997607633056912023570084813829932640738772296108280316321795956219678069227349073125989347950316656611785709093839667872254831341594936552319635256682901573317720765074874762453173632010279747796850249221820406443463964702828740127076853483734702277732373170753451522826398179723425808382591916571201673218717581974023825132783002533883322499506754004285539310304333098456278256331449962978087995637620719048138856349355395868917814931180463369339545315860888580962088009251411446802676483075247839770509611535625118841348705676657625041115347349624803542526320781900948641546638098934362254748775860316007125714760487242210777739296225042677924842123315193194911941979939321504417223837125605283561516899807415614854868197550379623609290613575454038736893469420999880768352831064497812372223105899201129300169391406225755528298846955312200570045645174605896839296396842250148491152674873981630335685259767402463308736376782457577448065708536766397201975347470787353377058246844367226810374560933716647545557397893682527480441413635147468501354679440164451189550721119925234756285108767597185887361500604264464410609219497029736018265991464079847024187016664957039074718247419902460859750112113692981748814912628096564461186047279152497984119616323447264255797822578149587936752843064115182153212110203732163079506483362080017436992413536353873710665439274569927762400291593010431032917885345448629177946024256751937432665367960203954690553275048723038539932104610277690669421972615376851371370930142576759193591918395701451878055047674613695753424771090367721534596650599881088867173839561853366857328185182615687556158048313391910442459126802006732099456400541663531576333092552407958494977886749363945571015651387800801460810267380290300766906580966260644978499995213066051530673476369381221665873866537958349723017320885095716948728714668169392702312648531300559398118153027367459829501546414176854554791570627983029675465029952003928459373448148932296992479566857459015373056585009833874248346939571073928965050166944388855254832865020673081913852505452635426190970261112854104020929660050093619662601619212165674085229025412681093542765015486287876506387761697481599478445637616668311612778199685768278093729546427584349288681434085028154607463951841667452996760696314124840976325098921173436014199863384053240044229592010583985402999133802146795566982877530293082227424854284327639685610359087648630771651094290787867945138457194478455851978045870341147669528560228447721195073701109136166709634626981946577170209655558579808429714883962394299838163937760880978726976126614350824629242419031596077810600630391954554146937122485641465649968029303531123143703125262174946055446054583802015153200781174769995805669086759412915902606516826571679027068309214926051245972308856516653135862173974195078734749497607478962084307415011501937675487452210821824851566554771694842216841089025798182229977064155352994054581387158914969698807886447973744463255575540169780122352003691163065686349856574785780643209827290815331008252023492680932336328442683184567176192212009547131680850553052586647891245937191037767844815155716335003753180633246060585825643786190946165310057278743888997326897265791160235846056730995517909258052090513364435724042125848948021012816356275913682826575967755079871148180447978744962041524006082125355970530027758440243125899976277091168621369788269044803791637481330486920290652616302363375130948119871798344859319198506369111975487020147677878210690161005734431498578383109317284585552707686710367299407235502882246240692880736612748161947406858164028704835285499575011003808182895149599667491663418687056841326308228196526011371434252500003845134412619639790609057611644643117345796141581233442365151579330170917422188320180118262915007080699149303366188287353258179393886052644495221357128088033388383156574402137177514910533252104670363361754370757748607249692891204859558544197708708311187406032876100032068214612614540726531454767458248895767886897596641628190374786973604897685964269813499691589401042500396992155712171072467405173972754540406398515646877277305050076616135481195323432260925361147076909220149659411496108963769394038828857555692574412677120121177663700133028603862132833636207499595307970821550900729977680418506454066464593932967493750884622597833591217137720123872636993569434943119274265770347184929333185808423325437880291026662630333876797691641171753987107399556154807085887322090016256919168837161048470109434849190122807995020145736500342248932510787078549681876029182390569498619256613115033764597361013069107046221358767618540345321405970690937129677353276009440871375412490766521794710777957757152442171547014505956861554083258042393214330652184892712639286339382325864330115852147851050586017611955331466876148491619999076984867211938004902748125876921370935610502287794973793403282545013465985621352283901671597389474115385448199078543144385488610567729610510075017764292723931307466071135138616557695580602886310905053116484395681411023743520700506720523201821227350865384342378846781576925564214432580739020009418025044167547847884255221695534524224136990355592051584244914923518251444405936921013119275411758011993663512768202636119959060814241282600044594900842263672345551523980391829650154672046408735924388282857158410148052292204744000851468334231528339691193163856636856190906363803795403078308581461526524018927648005730282924668580627319909339584947596840520263509243840920437275486669116259815596265102526302133251429845193715904466858775868575331711302640061458881281358980913420587582989397191372464673534299774578356745150335380517087724256954462944217365727953043333296334257381112837131057736223383876737593482384437373453799436059352940038796047586613393082181601546720311336228498137532091741032802763527705789355224850817056015977728922547532436198737222392773187165659592435699844667040353733008016617270235333912598015056146196898734335073223585197664533828039158660664813362445404990475746629287654424332781361671684463497967658717672106962988174199391964487371830189594658023038354386325834784134362336325708225720153065261817851673807207674589612861369352813666929880732317802718072658513706688807863395349450262673435310190901474453467643663772994067920386228799593186973277169083920169644830418315097535358179672705119441254186897483456265924486593446490962941929721169656152843950322014676728189149351295815203036036693835723947024325265992235419652692815655384970751558898810746889320292828125935231785049391707694617682535601477563664983076114366404782680154194861350383923667302159366580559133032187455019765189723102851965918148403693291201804526652209518172299653476540245819212722989802158123582561193358466724099078514221372515719954969607131732416485098926772119609061102075436114769250392280754918340150807674838865299666726433825644904769249275959649649567205642023756914471224266586371599215562923992574299185518824543544184303398191606274415977863888775487440873401087478132435749270329881241784268870580899620313207640238664857841941665091023147527201303129540326520985031695876946076548977124269382482214526880888934982011569505523455024333254777107009370539845069686063006812090081571430446975041570739025828293118578171138984194315752459907980389883324474851868319654717605197483955851091298216275432947135108509574042964416388493129519430792579614311245333983791040755999860444056855537311674331003862838908943906706694967849221754641368615503153748713010844622139484659025497570537803603896109791868351185350816905919683922566103069308366887377897184966187575440061947903838301979719638215643989827620574846145502210539776530898012056894341625720860378557024386356338504419533431872081588805883808655388685554347305944510958767030329037876244541520393847720728556382520948591487854429383210752832698687140722045829355860117095962684556918956975565919699119152061960124182491149004094473215368964017167837474968358582009417397558982258941537042492308633439365807442313812252030097016147598621606910272234646071440166446191261711776404447711110140828364684908441205853449092277440480953265969345396544467226565447951913134841230682952341692761023940606049650128685945105411525774315880242330721296315745256931852805089152880905121461981190238509466438828342423958863667651218647850049620558445183847947451234732564304547741849303402785783950735254669322671638306090074559479055898696296174559416756250009088081806890784948047991022009455175113806145984342320903742526402168190787018008908479500416560759326089651728958620473822484961478607748616879860678674824247787026743906759645887717957921218847186099453718464984849531107449695102554610785580770553378904067305099310045195103680633966231984693754322861383214074098208703361491958114809655132005539176444287605309493191788358093086362109574705662514934394477256863640209739193468221436720306456761449960631353359606049142005843881986743357269465133533071969165126468806457696895828196170078615671330635955562948860100858006060688105264793548874515970390759344346589546153709464349860048218732163837920433753983419871253582119373199808054090816846929810897595097751065819041274337444659548838689977321558136615782950571925135937606182697191063562960604435044955036054718485669470930691002213211601662148060438049719867215710177341770949415438601418778751024394556645662231601718078513924714039392241454734713754212681287596717544919418986481157042800051690071078829290652795720958766931184619206172891297977293518549483621299364610740323084700252674768965382616983433314973448359079479935132721315378511776556242973529452431171808481152863362283406258621084005002853927162040006001805219485535065928790501478510756491769287117765598014789444903280016915719038862831615162146408250891543963728860497762210124201749711527975783447293140859618581711723645425358172129960682807827180559039860090238063865931250435185805211917759661448409401262344055134686617263012794423517406321705886536473008145371054075409448076740032563412319050601399174012517523373792772246662595818132472612970118481375422480966531975202219472186594536745195836455797210097687387847814104514083984948629291743594696808478759952866691922281337157140247243631444493554762619079629239130592651206877099502288045695288771299049429668772842027341325496319211727030099908935810495077033976056466865802988711011082747687593272334193161829788225001611112582394426441441829518314394019693882259619020912430542924671781964547119478833510468800865677199022326136994474358908136381872387221248875841293282992493591628415304853674561308866686574687600486135353524488956458876636321827220091860028580043945013062637415450712791110728507025874725847237574309607536180359907122852030957204766314194542678513930963197244718432159611513520415218968445697039753928487245819788222119804213751551371308686510915214937735539762705470310358550961597158211286139197976272025571640160706429142631396842299162379702703475321117560690411035709367635516053790292705183087783116124496115218601493298358570708012396129172519099674696313969087597572392976348992289375380038399793771835641272298506204422844093314019827312085098932047062761571326988721189525418633532901523751242702283151914741680153433887352130911552007931738580929799000630164581914571141184365195926257165614036755309572495925651372137611241957125197688857560328127807110398117678136347777321848564545364711418108309410955499148924749666547499334362629648280038821953392364237202425432844848760745494006277443542475219548148403495765645482231779713117444000872327529939472717995261589267515985090791463370822667313869509008011473672029492212179531938248492250440055956500397321073575211451014506852227554167343407808062502016954674100157428224045369063757016284900102419210998946014881085918106127956196822981337992032002628062197213675553194657639932351003003481106909020189017099438506010367309323241177112719105878950308844365881130170910805936554267566299427120759565828481036816372915489623339812739858516471132308166594109185868834895044630625047337354873102227039987910806507136179811206416923122857088077870913980326883161496603089008866728256101357031527451986739864098273389271299495571495825443539404519739302206394852098746949432668000989809601288634906451297131664166913632707529502383957119131031594317921229325414881511294651648981285976663899679688408780460426086880505715975679467672685394182685165235721716648519036313701246777988448170128199733179564935396950432181062208739711457321659598580662927449620966805655036063725568776969335557172324057955247188635488718238166413410652881353631683542285652691290397148307356971187624652720015152016834120281162455701861056266779933863971469691573296461484011149796869735475206614828129671249759653678454490212002622136503060676210773364767645177616058591778942491532361412948840168159640720296627655042568323367086733011885973489734665196229508685444431853039004753586514194001422085186943417390507162549285431453151346017651010929956991806821219334274248828284820185763404775214712532342463143076125354939452501369451623548876707241154057348789254225666980134101225068101756788937159645980558969870325275585974292047243158087467645949634946569811870626386230791480032839819327873968028097680486684899707346159446313412596058457778439415213261715902597250108124935014649767167875961924784559949691436172190162431056939328282419752493193670681336071802126651336610852827097011955278213420741964671802902597648042662711506333706100296093883004038303833012715683894695069931596150092889758802116003280710946981420845679167975398445718645093667023366211636182271486280238162723654299917275254307859183168984549346434248667686650120663096500928776410379642188024728874952696827070468395240130162128055458570316762922364734627821173170017411073629919422165906307354482233350408745311152633930135660706288274070070568608948998113437625469762977194422768454379598062975137503136167502908459202670898597354913765512926537211487949103576642489009966975398729971493149853670027599752309709686173901626262312795681380538082379180961564895091266390721803702223213199728061889911150082527162687360320873466320758889496719272317520979626272031073837795784404589046086019557342014650317660921352285222020544645098239779511568468689617531279496631616760275003770588546154364119889439059675261934461367079843069862423512324494363245479384329804202835607190553162241710031233391079701166510495264969604606657613472207638722893206977243608116665908403272429577322263284055597726570383297524218502627773543364927527838398442287374291101454708733207573656250276193016764457871889887412885272845585892222342510382864265895074149682783651341898933416542225189644960144007004237924956487701310071159210115191692265332820937845945015527828620282640860221665637669906743968977953576252877897837588761946510452852410037577748007480486837806135183117810129138117665294385615125664889344519397325854084234219893485488717737993678590460441779022765174720635079979775565753359929786099830849336625916351891010181146811480853467564547370468910762808721824546350197839300874046799736138572715707871753153320459943990661904790741907709920338863138699831973568820509331210622374654131208559482407983675228269248750481545705932943020671220777042194506519701585476427672761033104655111696708567845205097840808808127635602293782130410566757308143542262958282757471576418671309929773795279271533096627357252986582724057741615848955997470476451328904454804678639774205335981924175343672110402738738905596372706529115769452015732003102536023711728868448404160057836515314166645278841199468135317391231724348266455798363308273638930310374721292260070360340921529833287433423305353223685582668386252281249577452258036781084605815104057631242809459813837494862978792246380057083565264370840398718172766921114285814451582298992338055427473639518755112539944846310004875893378046788176351552119664647379970038202976930158498608290251624275566863224057107885898629387636186851636115906861162563951833144328920247294026726619081194443982403044013572312205653054520819234927906463685574919443092875343843431896766882298437472062826212639790728618489499934774885622688230868545531877738523936302121540009114529546301943521339724936003837947375120845137240926482904126525946056803333200496517830153397036760699079775332899569871186833174499134163117269244561917012114697092707168244187241914334239459344962367917169200410555345707886507069443356652261898042301114659929263265310335551515998579348984751036169718692020501329717679252872309138073094171266228281455424911974455391519236636749857960837412969172097012471033691163122096746064466510062481225493524137760933792853443918370512481147935988354214769251252565510705487581852880221776232634043321825967217003686855029267684819238765467185923619740680113215069626726238505884382949576019190800979861565721926332628033500914548925941559820651735792108852701583614274912723238145173262479474085917462853555596446294592007842428389568464559546162610641382429901076649964860269376075011653402664842280444449825394735046326249338130820972285400465237776819637926429665262415740617814170864817207910192925976570928475420955949110601133782834847452794632162724715435469498721065604087622720859180337137017164784346565176272128555731474664284981419497498973903456747911676275204354644518588390228958384149547967208706765894728288344963914129305516263558970752960860288842337528565088385034819700468065054591586575520898026610237425324985102772167722352722214491183277024455979891767762835904788503583621964919221929430760517382944094822713904890013925856582226609618765869742859657501653395214852211130013941668273877831755988478575014447849173581868543049987264250998351750516188360947518170376413887104671285625828264486762585356880077977612651738066590183179326463925497645710198325501441920688692315944671282464151733093806498501436155473689516059508598155269964841931942658032431867687184049268260438520569676383145197924732342663586273311110063807497463673756459029014420427096387102606785510135051321706999791193336908192905835573025623642111117460373504461788304997967351357556736865477113207448949487111957748362245745002193962337944876975143098488897824133048264886593268153043165003981170686969449754144977940994564951875696118222053412955204552423564594312844971746063355204002597648234069119160693675237395514405638418557289306906235951160268337646703679919067299393581458702832961210741607264818282084905858323184287664612908381667109938602991711507072860199289087741245439220301883290471062424650779167174742066523721504791243739765269122199250523441661399541457274722792010884331449975569788385945375872280426120600747341459317375036461809344375373072234553674298859255081655614098169418888721380254335506629250710992817489919770865148393233548528923985518374536901992242015035441932954005647235308554764145232925926596342872070053452820134533950519325518785442509431757740845585071618996835350384151614681723528404621733103267216328144811263499006226754724762072621839343255818180495983548590073489562784104366662490943882266732071090715066245693957625362459026776498126024909506179667068898585223829020179749494626480755370162138613633793489690518089738973920097681498325184536773905589821705685182035983880439453285303539061793179434860957723620010035736831721436337147266892150029884597786002451128351243642120895256060072673912568473541628906575897019197975865837156774601691905887903091440843189045216385139312963804866548250599617597556951500553286833815381041725595393077960030218167496435620772381110421419888855130533489215710743742045001953890217314497069597385909987715051477421429329088464697207002285522765822816810168310336331107223491950880128421633818183728874418176420537540159443792291946260934041722732447540175367812015563874881998170773995620392870962123689168123670501103607980070782004141789246238155810931175538104691919134970615274215602506363410611901345516017292636588613333157639728524473051384963282308165413793814188091679810828160136327551445755888536409835420717448636376167020902330821374017808050885414869545622150256172180830697216282169591582069263964236518847928696999334913640922306125025525856436182167860227205872100821164668446045155981400828378661267215811449936997230540329192687969273526396902303779692147838864316071124811962209695336224231492017570095485420692189892731739761502830582606652491482458902384009018901275341038576468004623768466468559542271252320219667175025305552779806681239655586636536656509036402053949864034282183792540071844543579173966125665698030167539023567053203943065279464210582564239490740070278243568419752507711626823440844565575559712349413588122709529349174373591831773048120497037324503070279178202228500907440606667708683870303195716612331886347678821531344202481472066835507951417629425004912787796980505084374171283595142628080350905452344774056580831742710624901840543353203646367216351992205298591860292862097733596041199697127096218661160567919988421239561343671723610212006363202384082607761352022705864760122823435430064420564860993377876254992015904067296573312522128153390418535042027278115301723478758419669887644562030619992446195028474608717557673424422317637585447770119982377746214184966876538438416186637610954718805754416878735044455542377646747084994199240831385194120893894335489411153906163626667997573372455270736091952185625815812391416179753580358176305189746774877574520471364816808839784473677319398520563013401092767430046725970791806065691866668854047502802066572229129439308886402113273717832716637620565431094353021187811632335501657851083491561129544375433452907177747174952891932862712513716480239012281726160158925607122509215865674322777608936310810960446381014515502568187440784499037728771091858536063103001542967496679660459237581739131674641078084798618385347694783259755126092400423010481572790910058807242689410661610425338785125867870437126176873462386507264542393259830020984842182823106883354788177484442613268173780205778795448302789949179371765981069386888901167648504322036574305306502510582520879258135141987111214581608275407976964672170663493920857051573213242175695457251750312977061214221041450667767803782543543715105367193980154023391578035846094586021814809459743158748705200598101526608441076820563807464564470976856210596559004619121103147270566538445978396717131708998626205945846765090482908807881721325626458954828920864078640885758902418721425208129224505331018781719106424095334442993297206290321378322381078974024784606456511351547492896290792016089247076505093457255747559713411571590001588197365136893334630118174658570335854507686465819616566737441396929049697762116432646628049457179417204334126816662553280246547638546913776243393794120535041488610216722964981202854395899181262384631646672938019404250352858042122980192157311527854430801147057149491095665240484080547812529601412064348323263239597355850476856560474445324700313563721147812613727674729708043091015488685516886830115116346399401811118594239694623638154425915163705137011221730358642175565470280490383999377173607447893211745050569129998444489260910098102130346066739790898802925845851525754263357732792570642970744620855766359627345780505484040175705370742211393411471505929928630604219511368106126684541193063288666057895741535576500051434272508978674259422852464799429139552318448739042623010248642790414771652076178399325299766571912487225679246514266934274118070345524419064461030468736823912247270015524223338293652478631155332041394429178472209079577809208206558079386026522252321673395548796640843183027717378590637678541467732432157595777543851531983001067683889326018545288919444750535995342587810321714018408038553519386659759979499631223823324600349377974106336544843357528699033827579344267140909654032403280647096544851150405345503686956378437946328263638992860182416545249312801405556654307433421297535249527851199263889230688421804382098322294708356101869341094230874652468965041669694514521226317182820531146533893772506423459757914920025570679731506676047167211558788862753534541140262483330429305411946554811151475299822967186183831888959783418367400346123731456195611527072608949981284784205339969026743089879062581462415464931374101311564523188282466014590990100933483589325787682513607524951859876787059013402939319041491097674872365075995689673627459013048006780968911205264762220181129880090019479515402764098333548890687350416190765978401698969041211673720340862003241007600317062886570830186837197931095190862196218007753588012136849264905377707897217105626681000961155596086003649460962764841939278219356783295732156377621230987020096328044734511273436175723759701980212887987856662946426497547073510124625056068838736897214765767145224256634801958070007044492595656830802318228110092734385267857888552545331704332708527781465923348548879560189952437149541743072730797360717252898984268846000755700851333558185389276976738543263932670290783745159478018985962288595158395172188897295069533344042241037955807508888211465323569259980987498945109907998098182192809258115475671811223556434650521593099079792181224041205135932969757732845084104254086863626491785223051617117215237894008461615700715146869436623008082772377740268563355188382385697486308449813858399954822772516248073019111832545507168475924220032187218720508742805960047584591873444439892037568853014444565903096959986271675776607072921251564439045963411297106824749977687374479461073949259579631377978202485307274397072880702657352171671606182457288079806657363515727829850444067233241614685959763003890092700158670204940968543198139588818777111506585775295808648779094843265734841981580067750113882463187777513160345649751318132779716443683814842018154735210513826481782674576422874832061364850938300891948590440486217832471363979995662849020191452691340765302895252217046112906815529309152293420397071310680413814831894805832945699970475050744500715810433285734904777847478168449823866440400316407467317895121026224479519560637995623261567342990638290445016349943288358912038794892765708030099628671467055603255197277286451925703184573071464599881688019329435402772066194656699504488937174401041017381777139291203309376346450055577271589152104198353669222212149984843961862231865449283301349493201368582957807202553826063446817020386169903279922156359155694151034469117834457416124090383517330836102575150968291837161339678683567859247882969232341967862448114080469654197552862178258193470184065945178919429956539097232529572458154725670437550676110136333646954052556447509228488908367342850123098893248049973187500054865043544084320249272018175655855715196786739389890567239851367991583133289759759356750999842226480975080883116413797517095233155656175671913821422449117408742629411951976914994162722601877300429529851364051982908624478121512104003970631425769750082725778742260113925922443393803506006421605227819718581750568063526271281864788465908016689927241906210874737568949374280801670487813440591143001710873473371443359564321313760300298270076234489478502240562149331837293859733057308688915736901082339412343829207040299148786229989605462324701846567822436522593127806281341045971717715494576706569268996492944588329275546478965545538532053248961912123866479425863807371775953855471179625231614904707464003118741136126850337664084993651088388436904793943307494019637995231965550204150111476471458712463622971156355975725263198286765587595799889124343502342951481637091034371334015256804083228850127707950136353823701876598377048177877203313036511564251596623421893192524127474959958696411735440446478416378624318752468768353686694780313696385333512600297808273762535773404339178340205819444237520857370290356644380283140846161324606184158876893127548221128507521171519556050649382931636844954675557202989354626080357737779974988021624868110342274838335993716539843297249347245745824807997464401138623024732755044474271325111155027517268759114559578572921201618371301246110804137736022805036369707196343003090790587066952532123654356537924655341720149176869330571252006088492752473314178236768589732273306036525956090851454878365424405925608893486925895857669913034361860796328461501362982402803600526210634699842692496763680171092318733748378249531219308252129473202773162870473347949163457954673746357037159440830890005140187899307119987345176997402791466357841700862729674546559943539955683737814399662098019973302892947811872398613240121745504355729501616375069488053950928340064593029501452673366047195434341595837024883226971570778063571187805044731426162440985072601694748251618302095798828239061387309780440856489651590628591697211577130301143417695347578361449257368491818116198902449163835277132061728929534104296821328040517952666414666638395039245695538406021587640878572582401507028158190817639581034024054646607672136662917694247134079571314956227047612501124986174285995518768787888122839425577413614214574047185599933484659777587679064755123436856039639238275860423553575039925733458827898460597012478680357331556063432047076044210857434935896239088720122134916947909774626847423723913543589023534368900405600441799273256573711282313278243091567128945827640046992439323215448891730648331053492323150394614671891220968728845030231630891036502526403737211620698914185342569548460100861919409311928668366384244514854341954647588536104663018302464084082768777383166184256602268590831741551767584500759613022178680409436480980280448521736573787347231453521222575737815087049174030363483898412851614389091135568459490503354638816326657453558069081844035414453250206617491018853545490816024914822144968430003728331818059435799606596280446233811665482711355072566094573825548914727720512910942778492277654432184615258351999515865436287557721711594288452759603692560372749087941125817092862504126114503033667165175635606839558789015042043894471814214510432547426058806334869254002509264884247417079925379840616242560017367360971902916849956865768870208627900499923980246731085052234703144717341753805821237606801059018057525485113677209810881733435333319843303849178624275919031898629935088383936148654253254573246521992867452512198116082003169446579899050902814992683458806754382108719230180884498545953153372088307191032218149541785621793298081681538703372832294538299648119442676412300037182793922789519707861079179400588953151630200746958458170305699071978218549835821326809512743155224962810003814921156157805172815642730188280200061913466472910559026148691113511379451761407689971222212238485318524182247872330695563639232142747762612306583362341188851938604884423678746372367896854955750074763841133602343879262606776935272677086641422613249489623765627443459336688587576250305259981055367690585484140032866674324074717035897052734240042654004907421972648480944584941894518621713261303486511756631244852784902357647720646776843801812866893716843043653283757642568120413567462317328180300494479537005775310508227193524915195176442910396896588786492405019221981264886897164028688282072988005687381498889947853359344193629161150234093331594402473978818646767474540320095485158734488873757430262146133771280977431199021508177599022626976678962731099701880820195546823845477934450526908604645675150844074342934081818149086997642962366363971747224141050255711374608551602137039822715428820650818160801626368671864262553234370399189222272662712787194991118151391776116470246267241590937231379594268938637499241084202779708488174298771114597479075106797468524226584417736119812648446698708540906025718325072827309918290181718627120040232428978904183806532788916766743303208638772845874372452137196727348796657021159764687125755189929407815257889937992903056976336190542398601207441617051755433603478810968362283961522032812885505405535686848684865501014774579242000825931544527146434484507030524509222383131661501302496080944594975540699734330025329642526123328111712388270095012727247191366713998357669148532001048526331389818909673706492314105191258497902807694272985651063028187355871071123009836009060663277792838578673280423278222700897273501031217371422895501872041147448566221840184938531053767778651735220723737994554734629491034912086234666584590806292971980213658324521536702440766308262998136789717579219075868420431610152680020730738312338551746169034995871109952199959123370071836401145738623349777484711111051136499623859544489676928063275659439255072303481122186559758743254015415901234612055685517265841422935430246158252927411100444604597927856710164704926223395143774372123333229501843488234082185086730544336424817726252509958352534141044189100970391206264855553706173256742505011372873232400617531980204004064118925699666237799664458986044109492619032938772286132911106229770329025127688982172227417858776127357476315780476664792153010833322591581732100393483507926520182846426935250515068626903543577954444434836550987299982163331650249416314336911430352685756530921130497543291765556126722118455431027337405155386859020640785873294670295265433372463167127581694363151161866195213311608284150279965895757543271640057374427151577372697051996665741539703497923290668794707079876437339240974378752238819564138870866772319499334070506690811626860778621666039900885673076199538547957951523991388686535689111182371411511594697909525452638526238893357446517222389749088648460504483543393436554021366403974639158127096624714532365645277649172103406230546662494549205676401862150469288811790628843425709960357372132886575539928842504630464650001002466298999903204322096024213802110227709193035564095488212153258177115194306279605566780493480457147860486153984830448748985674666462887280768052040528989227905215578605453747137985662552258586429389154649782308432878241069976580596966005756640982723015655688473077763141291515184391686609127024966963256852903203257405204770499214635941994998785061150106064359803412819288316899716083834647455222813569156787149709307448887453153523565294314386364502844861166312422326921073442246900957304660693307718572364900931419396186697311021923597108393638471253921263131549575789925620356702799489352501506721495494095390779954012691092822404501771009452701782835001513853119437842716487340122741124900659902699397271883451125589835768224657851183801618669643858184682419163242477526097242969262628473911596638558828116075293012639768675890889429814746411894243346478182602848705104456566657116134534525873029781295948198197504375103243488427566491694086931444964416230317319998878817060628888735573688137850897152327068570927810887022066322281704989879237920551173343030531741777935920719202485452187090814353558157463688966237824510581565419679621924355726677888852275071574020414527957300964585828133055630469275670788794769174212504182137876968306396119210966029957972087215533012267605329502514602408308962298003139495716161810051190068121201710330536733527158252962665006916081843258050249743299254799091751592395814556006836681513586763675256514126706831644762275180866219701111913656558724018167877132733840173077837037171007892237752733402764304247387333907895372901586244172874311649117357004652750425644528916522823929264567709343079799468368417458980815744874136254808174013071705650956187842827611595532408085684576840669446327214427810242826342180284705068898545220755866074322043172638168940134874587170943385176565918602685878965392213313894448204960683607428733864646884818186606543334451957291054939747226415060051794375852094236749857105834928622646666659485573138105791295676324832609654802984126340724881277246408471874674977041974976816017017118911745857669219670221681363783941918175881619434656442248842306836081818929005067830160935017995790123195376691528049710675137551634151908286498980646555705458654814245106236703584145518504954360693504154872417151707450255394884508851823082124171601840017710279394914565582081941360691871601857269573839206027866382204733097944026289254734194293672086529727838419445523683593418073865453632615489221885288921074046978066272515458379947845264322482507753846085623994613210367589620997586866445800022231014614159804829566460153255417224751454414927509213282022762159456115577340816302641292423823075684768684153086777091778920078607641967845631958357705089204063667420317632754491516661389923751584716806745704096640634147555764411594563349319164547815595080555432471854858214702412171917141812736229119107396135811003793751631702108435926697978495975658357358614046816477738523744905280398479109112773576431303051894248253430425074425005475454916665043898253920662598874503571868897902983069320750607931711427393939154336420451080622858736324816257297993087982780641754306522992577888275475002193166701478172810795838925663412701257697096971074377321456901116151780158544828882228545470515583414963774490183279279567365949323515556874934891707694163172567507185918828240883921438324916016610632712957240128940243574363802770668879404320917626859657894393337265121911509394116254330621511184678093664701467790200902395911184752027827181874463365473159993851991954883402884934638095206032298660883510411533583519694088511299430357818083931559188258297715233086610352388458061347554435892709085083074673393687204496511511149401336587199670770079754524881235300734229686124698219509144613322489883703238297284281612975209835436076841358806426818488095216318766382919455814037226970939081493075396110493120855433626259931532309983374377380297591748654977584397128266429757941158554628761557012731304396302319532036166879458621884767562190021249739693338574802082495265641202769715706825550853541143043650277472885759745846248568379342939826295656096642771923708968550594013819664835652993056811765392787475966776740622015526274401533016176026978758926996186675156182359309394569900494894913620317304894913195553429106647158543511406241298824723654488170026980755855387042391624305458136979631657826346212088157521404642039765734283119156702427739592235979973250190934689342711380546894042416247165932534827585607470167786599747930985644295701491595675402397086020761788946577406419531442496798592279664672297499646655183263585889070024463744817052212181679503588406338589645007205054874079586706789785409480760273493424932551678595839467283379305009844486820005485274288302811752657446777721305161186501958596604717803404575365003865601570469973245806170613768033365794490441537409551293173560896688958961416947940717123411981791503500155920888016538512612483962429920239032137493938655290219788867947967395004009667898166455858034282308512212835939509169990691670971064922298193668929685347463300788590058680705490645076165954000953265607150769030988053437669699341242590448696836028762598912914597642332800764931375537650503421817261343299460039307206570162401742352795433412698964291680409754073264403670401591328403692621671234570080442970933190658719708871304399760359460547538982898744624496882865744189699682033538865665776297767241938264698392741758954250140071123809743117704082628138948823455080415124159596578268643650978369306419847653124858873763665558302541434402231742825765080579786534559478087660343254303033630954553060622687690422363140449812440291825554629005880607200191744907909495340345233482472306288870114669547343824863143297866929764977665087810699198030700207512676772555090656767442391723006515499099408118976833903555342577475094819540953021060149192519380105513563478374015362337908565071341078323499898683626093392262770212855826548182068081649947586726115288309496785575761137903759374681529469363388185022363388116639695125230362257997726488472547902953289230248490659675545919067282906559120284141585460885982329169210179192205920872541997063529157919738431758707082333064489764421028137760444839250076596635058633960210586745657756026497166907607711695014729198050121891838105065412336336687620409808635778536911614623683186164792057501539991053520094809726233004516143682090397930410511784724788823900058732286579382778153540179179230754562396225018798926027402531318810827118883981380146831740270481980853978228698956726685190583229936782787051623838251755512760953029545847534129487960243135969490339956095096925701353056256945543491299719893796645231890186402382212369603393513639709247391027643243480135837685118519238748581542798157403506640249907607531674173745722892635616198387544469410857130891114506988672776385010900136734723189741431234064045467248470402497046894014216156214283068160675984453726516105253669004198669792810370483240466244205312989296992064405457240769322961792899469104806185941860186625550151432921176827764197573618632000067947454425813595290957667797821864058839348131247241034814890055085253809257449554704413690358650580816510380407745035023108297163740664451111360655445864898271722261216414479285705356771673644139635382755876573837195421135299809844981889083219319603918595604595356592576873117797398929321969672306550078261639965587114288762523556615725551173887752198073520913177178792360507192479710229552958198301564049214710594856095501429813967893530606095957384841891471347730875147183098950332283637031518388148875615354766217280843804810833361541839418023554003406075717720098568905558804377344638916456109975642088540990877253889218375945465252910640585173107681124351589005842952220534990890485129034434314120947229787043525310261414296014686946056395676496336461143174558261033718602612260892762009275652251496211613340957045101502630599936055446865460964100091494442597849246991103927256715147095721870097568886081978557042706189235631385319184811340899350016137000902882526633330828384311466171921303849424211764869289768715821408229134862134459228091192263197530089859977274010416435368421666723991282561906266079215678597677030594209262353111751175985170641964670496770928505440071791366502360835017925799534217498317101192659201322178453453206337919577945947821788288520115691460873670434704037789801434483825212961466904784567825401114685484299887879134090106751784550745635416577618745430214355880497894170220984436105865744837787430503005798754366497545129307784522680660656758609525732641091095922044192219131734154928675495234015648518610088969253500090473703471656503018197278257275289134431545666663151546605006721182972296468161891551834532072412361391672639728295308918611698023823344397613761439110901716260942367312019786903064378433701849882602798286831162728912993857062740599721813322822932686424259734577552090349213685838579666778509047682747879627001733694431916133843408268863153514980938108658380864773269956737143694568650575491498143369478798607756997861427905618288647865408833696419535365829974238638320671098227577205383003432634955924029456904433806457065926942920819100930174857375334382353783339538615155528532041264995325600780976582966701175906522501010591674175281690729265499442377873617183788211960317034102997437684207933252583133071982498012167979222471797906630139535397633620844257114232171804601360280234650410794739874344917633546042365568745994066765276527691814009675238109419725090306949771104288338807568766557752657109506828036188095294555894568126284529626800036180677949731784815270087144141216913227982984007699628662649245347278422352412740515898330394866125168412763460803308756483343681382757154965420609389602546290633881223711840049041809021394262909403959047678705409263522855319302025901936492609519192018952176781867836436562879930360917790820507316683144515135019399174618305332790049990407256247382021495195367100138095473299670439792172092871370751726583973310497391656689186352250270882292994628683309398637878289655512897931524435923277545304211147300144868440750902533075772033278730815268769936736914175287397258079528482532631055360558436711395297716602961459160487339175969166251886264482043330577393115633404466842406169759876799101245088148193924292179859331005601542424883587797430241174772234583394260506340734447339844994239895197198783761488677284954301494197999493515648001652497348775690765021405634885323508691322644321453793843443395498237904665478772562325088292200202072682592501337737162189074705814278261467398721319420967368127966550594517047298677448969336289945735618280829636005610330558166239262029806235116175098789526181858731731573332344877706750915413403697192676069317116661457537723575608167985132813296236387319123864276362211579150306915434208048594343978511040662011226183821853067215945806107695822868227660568935598009063432475611877003082634170621049866058497144996829459017574160245149391722579436787534081668160379539556260147863396337574972180067002391266097819130483517198503056804386872569844045039921431876282677044220508077040875432713649723304921544652671190881437863570100131554590256255511692867647141679878974499097141693822269088360812160707793031155426327989351526894283705514895833416468326483057886155266448788427648844557499546876414655474438505900476407903644803212912636580578603498362582628830951692051559176715926019153590399359487692367523116976917064520758043714115192358864516847702441557369464374083962383303640501172739577178935395098466239031649512378745116310679527565186099113204510677015651584529469950335366266002383579951155194091490922970640237356080975285010868692136484254379556593029349408675408270357395129523082800542464005988462646918751161174779204701822782031169505808253781571443179769363166507481595292677660122184011831523270986963846199611897446938475730772097912547109396058778943062896613250088294219569979385961939779765355325445832792570860178027190576814020792819492015122314942976811360103294478749446794901983521627105374300539029920820862981173107797557484985521728966119691050176346817883709139754608741938979603258635444268692507469138528908964797556478185340956180948446416167694941987904812024753858488174485479273566966219479872995611422255236625011441505717337579741228117925060314192812576910256852554849767632955116710795641860946091195397496169272540597440837715924457831604835084149444743259331771399459271419778206092446335036266010641832984788600374100022008631983393961518554640464057798889918798876247262774854927527286677779845574093597231646088278907172489381418980820607809603523540010756735988378588398130899548988887058701141170547610604928490028699335232809134182786174817949633299899174813975363599473054639033774740233890930837801638163921900525281719804207284345739230220398289206416521481544463667727787105296268499301600915455093801512123269140563723243023026311017463672610395432357508700229361933398092071208048151320872081718682004730207872889144288915925905126914909375586523983928183304539771093992220836021828956735052372584860495163051584044204202788542600479564044206813433654449118323028281768282769318997178693079828218891973507795419835492737246279706213379627995613341429374059703697873072480526475076147306534086246017198943380270421963982695895338738823539602339922814243871208958238066445181845236787793691615286365802064342341462497963360134023184293909495231792329559177685768005176021080242093664490256464938133539650371210043631259382830347210825926582793687922839188062643283202683281272122920139111295566965182957398675712311042419442065441466187907480533458104310835107567637177907378875078624443548065281023815369013694756096658135131892502516205479206506795634430993809877090968000925263939995314079471031134954028886701389577377274985505425823064207026436496908006567643137174910228719031638754630955963557802141012966208913725119504856735596846026064651711276318416338735077056780380520831488309458420986545062728875952604406839995516644533502883031809697227088784711942550715991097652859392301238397655079574918459733038267187424533674939085864018797079731675405155831794570061881397043836915356789139826703505196507912786205866277260245045548798605431839532846977867560074552429131430963137879434838071227139572149690817941065779090805963386454958657584822518928942694720504003615164724847233427337516625957233281647382078821450932594652902316345517727079216131936582308415460866407476312990311958820013333752550232310600428475189137245309751738958690996494547341730414015218097614940973313868747629561517847268634103122183945192437536575159150919296958678793418303731219958990970630360622411102427086677157500051744045254665770397433031444736467120590996732973005900219194143387814921695023132525746699304496842802542587244978662671464580024043515362122221579507070777158952353762824465373908656813175460288224961299018837930972270051935988976128104315233106007652347722679906851369475239987902110390069638988417708700760363912104659135862756756549376691913147176482404328351297061210124183769043724358388266299267679994122881995282188635139682702691458172531297491057314507987469360051089739654782147809293003871795593661717548831761350571654893517596132833671457402219037295431622006090142515765824955728603031537157880580324915715569443061113233011353414739262344788651165179721953602759327134512533969931230267549200079875160141819796916455827820869543677459366773245771385176316290826336634798239578323416469553983346604724018122747349347464128326258710275340204914167523748359982372027046199915775877693244506913051666200295119524253637088165138033581156725188386443390927783761518148961282682881117426811683812283398002388623370165380601321842054726590973883144112964828580409836613396279666933467532639273017607577265138470378481448626540607526173037480840389102412328958324418889165300238715511785352078169373186930012634478072048077996376987581832595814298617290151448102942166291073108495530499606646385149892696899041792723196652757310153965759952287463379161338931955356719403565991140090547664879730517837085619594415236294422235185061367246755173468532084913932894120936354489986102187170135384933489382203475618919807913544585768526512197769548646082700346061028176474387452317009785180652685137962377698565739847877477448434190732319967274709750307890899433693013355487870003723561946026973597031869142204718249792476862127193301712614108721770742317900490705009090236301351685801811169550048279773888484578971255266699285319954856345476951082495064947711139729021330406155202645607390926517216137744622039291208598954017311039790005521429595596681740681700001778072570826323871212313046157287172858187326455291207273117588749210235258170730904804225470701827304337985656954544655651326938789510549597709561939191664918654799531770162584257882014501954573088247705459628971299194050769049201916871856193153385578201449300404693467650464128196345931714455286768389137689223711096733328529055551075963890146704218487654775441913295051930635585406023516193340074606093353480664241124532136240007251991627955518670480813478377316199443152418332439473456566155333485302868462894267893446628378331894063189915093743990473365662694502887886757403962826184632974146790266333230108249173312987429220341334823623190964280655445470354976297672154919837167697308396575019984404640911755541239476833545947154229002793483479540018080510809055667592376495655680492375495608260513738622733840268200461070910232389769900818716983825552710500878213152713588617040593473025918345515957734180709267799131866795546402862492990877011466319698410624365130982058967896720918031158961439664356150020666967742634054991998224435064615323031333833749068895692401667964438638757155220798327824973465786184196737982751981131622878783431507751642349535194575970129426509655691456557366912218594038647327620874400178355799787599094036879426730678021219541718520522865690376474427720108828843591451120754636819000251210476343233107493980719183757524135709494898245626925105884618427259401248116763282271740606039679325740077409881578729832704191114049728133730707063983245753355835807356847790968702337112644237880968490760403844873017260670081151788022070850089487235244185497671559263010713233446891117470848554327469145966111238909714875152140095042698733893236314970902945298966037253354768911835657425766347014958467240573509904130252674999194108613239361500305448373160818658420427192666962075960707710812299354820670159294781813874201434429073038244808730507465198115331267904025064289694760570322672731216443549714654922750530518773702116701641692140942693135174095573093751222729393523640508732585625606208121654892064177345520889906611824666816884571582505890328709972199368211812465381282795732240045104552832799013767169545905580036438746836949607934608213225673547453428320380005525585209915370830169093773807022582321797869792132844674339363106915967121861261454387800496640321398765580411027173567866168837149441595394364979098008214095253173043414095199467754902654105045207922296541841045208876381449593733586887285613421249359826987762774704162897664048755549569761528295537201700272867845285487325530967119966293868201034564655801989273820295140342938037372612794305557027349373358025654531462991748600934033622903066036339506509581857852646927043115037496382639055177434356934339012699591401739906740902992569712592680015639019527123785583799552364771158877324073309692566025650048879290491497517868519471801141817909207416445672515253697384182794300459344407986037822058982309344863854943874413682494275189486634015524361192163983811851786978122120032886633499091525845040087141391533421186636877926871873284545477351513296924573421190134691590431957571637128840724235463661069921691391755053299118534131581846723804155644137974799368749662892572340964484925568338874161595034570924452464806880781473018783980398589470414980021141655576214659639234694555522570045932109515172271180528057549483659766687647639742735492693327706818481935748093938396898346850251572854973723257315235055522573986028870820165526860104925406241826267760757109079529341112275814357058037049385563928497580833662308699930018263512434736618262008799969550928026319324319549413911470081827643984017341756187700783264331889842624450299492396631621771322804794102852266988907938061633718738696987497308275910198970430816653278689460674266636920470627818163258417881028096000934085174079774262420940434760419748746527760871374401028563814117025030626985608959973426205129003343499459711421062630881378846084313678748570954809287020057408963119949617792232516421122003493911442842869542400104179958256953846634047881607642632035552390599251859150438462094341100441919290423863413654215007412412858138210289792480779103058335691526412121387222027135816975980072093052539376954557460125404921386236945928433123339074091679110954917618225929284645386263372442899795559084430064901746091679695150104001142727170799627019313285372017487904846377612479461705038430890126911793072065149365222019322428522682639839875670578875431417642905800726526279609965139777141895053591277811417065452533908434359803559747411099050014379691850029841252288412597750040304735997607870555476706934284132561107958825365006556572400861941770052516051526810592901934597455308599859010941918951334860672274505564358025164084717163994627836847007251374027574148423734581310562282173559146095153225563208643484003042069881972003859578741889885953304125675434643190302538771421526412847203681367418440947898242262552131700251438312803837223583063538071779643021869679603124413278903561874175187514131824411462873338061174825979614795281208050373872816475865209819426814403078017735536708423891086821488847477580200977732802255038355670767007676746893221536293101817457233357220180899858519508320187484364887192853889388153356403057485800529086264211873818585508351022636889102100636836304632644469783517004758447430785063252056709589349893178337938729294198644431938418476611750960806527319185041692470842375251631499893990732337908824805419062570653105778791288784969199386579496103500941773383575008297405811829163576393954544249932421103164569044007565137482053674440082599246239650693566618824929715155587947368766835780569467783467194133441766269580212021059718367507842541974089770648678644125756598507449856399218835511056935323993288650519730797717422708387515568674171506750450963199300226168947392487953451241279466622408113081005726242725632534879060151676269737415887518457774899987676757648885562347771070901832400622271238836311659119111568515790317306717599068179852894745239618206915175733756510048126813972707479157821668390156015881884565406052548996454393806487307172208056697094750292109455860096665516672163864683275372777801402876975938439831353570790769962811732021291062748147188393713583113532733775629425686935712882700978985623798447680802887088864216660164013679779075136770987149738134932292045222712873855668635214349235616368710367427362081901788436794523904813185507192753997763231170066840795091366047882898498526725566667258639757214955898711020407873233319516645325106166491528295842541641108863999542932028007576012241808213159614991002510389210416247469041616196221999663691008861856772012555507755342524181778111411727693880486609480917708773433034748956464349086954298936686145301698938629385012878227699747702061068947808748826545711743031124411061683469582429228517636271418394780244132106440422626607981682000432874936709391113554862258241474580059342028578133660405526321037770591680084355789007579162264789061576159073545113102906880600112040493483641004367279761318763192848498027713303807381847425785442743949186151431427656403717688098422461095299860461772612641706421691416799684679012750023888773350811941483325128475866632307835077744011643882924863829156021719454976124475949550290863926895297708285781647504718216833981665203175498683558015474206491262858869908167787517866052511828060945886520627061791736385724842112320621237981764587506195798945267350768018055992528020532313976527079028674290054047966755340413556181491116239751063378287331131558351275648414869331763515988497853746887277781647737516484709101736853686550862720723726383854313521943609561159658561756833427840748440475573813377941292852036136724885310894028532574254588206371517227040823784746123032546601041437612438121334878989729542324950821343256517795023004441222555620573806297879074472698609295979836284983516888417944171426987818940790648243097663428041379875443205626971308691693174592806683275585876408051628990087479690687568643248078805743540711076091343791075937434455710954950904464838815361821183790118217436937658453978166819216333621469741267745430377155793246985921596631343749373929734816922212265596820256712853678311860549959449050534393790803157673522470077264737973395387681920130291107770584547593797623103226558259176964961588442305484575055940092485267181655701651265394656882876609055309699129263060453490339475284509668341469705001474837315535293449103571793545528184174600350557287392800118039100923254126810655567882194100010856763180226538380250727317247706269328186865574310003172088980888612680876366853181493097366226495875729145189938647899520326759264647069572150031101340286280144204681503864963723872719431134612530768691211139137758083548052432053666995558632386343424021963192133183415418183890273687543990847162745372173570490431619099201455025494762723475034704846306915007191134866884560609520095333862400070428592304288103290683082905787197524426063821960169149060895163792502664210712161907929398893038396186047898421892505690003700086919036790499260674445080258524963032150281096053274642196392752175427345153409852966601848176470578816720091196858837614676511253686340104922810454786291454087572854191808668334198057247497958763015035242625425277169741674862496894104718087584310435862705775403792693710573828533598926160619278626518874215663760634388551054268698120334598928352189161057305477984989620135878966320185330243355651533214424052858312664512858979073283978944688437675539727570590093522983050252082588455093195764054297258547152041557191364815223022846772452158301789938528774736187294296441398034573631096399432237452217063921015736986886175215314823584765992900656526841878141488982289583524037599423145206930686383858921553927700088195471169410722820906338233175504486313464029126950757158680743038811818541928025206184966957889063687132269773190452511371516622191472475984135696925201121915796110257409077695163618616491397020356877472001534683582361087493423357201734215920828368597490045688391256249057963014135910515040349407249906164422808420752312785510385452050889322876434956937960827302656814758036567656876761235068590617855749446628898621215872741147442222437769435718022221817689296174222728603355892435404820433577573558924349264818289323588231282797931605263903630879571050147446424296443114802850579800259650638192180461992751107253582580090618763691539442635091834494985461599546221807111503318341222073339675821573510554943885140784582304031898858305054234521419303828246376877816726058067281885144049342948926621036469721260379762780503020341933689226607240624317745167160405180758710273130780251913436211935941651789606355445998734271940481131737139063194758134237409293653589730244559405470843085410350434278190831477064055050404633985526339381602704535746738606094409535000872092847450512557270955863693224472922287274741899467449532178320693969049739041659843758106268249528765658956825165779753762187135065139940862100801313402849533301223989146972057178440404638476709133228555415224508704797774900205004312730842831308141903176513905360482886271608555267210708885771815087110497202375409257105347657131466064745981331711601512435382045280380401502918303719074787803033148508052796385759728951681863917765735086923136572213069968290106496915496233916401724799650757244659132649654749910310773366799447940091042286056079326693705401630354355367151398771600581809682081963315477553778265468595408762112879470309690111616888499835899691578272552119848879721012593474300492629330614975536955016499886150675630076594644354696580105519034460077212376192595309709813418301029913713701348236323776014643489387415623548314368838340517098347393126343066355307219950217340406657829301082273191374269850673599405086746595119040767481331010712588022738593727636247736848642196460198348137519212610823813143313542519848845844608315900470736681980875351418461714754265098299846271296359650065157633246144366885208821317229372278898206291884211528719432211729007186630047333026092876710218221167065905690319193050632310637029235132848213013077239272360271208805830803051415952426706494967808941208790524552502580630494980564686412562052566283294328900941890377889804223821032258424064383269477934641017361061258725069910374979180402779265079347958852318145249207978211495387108528511707720847838030598750614938726862793835251535360615733336642646458831474470930178602680907866957721908599259237843841763264962402055520859858437762024564371023397639445523098844051440305905142242028458559711466526144934156353141752984654195923684486601599040574212502227817479662840652382927153411991684383703917351752448039927873114113480180910343636769309347603513851229556433000645161832239519426129591236561823523616473185897385491111911096023224104007657793249660469356927637832680109891459259859464292887863569677589982198992240740249988066382063308970606421447896568536693208678435423500830633782300995406242240588882725910346116173388142398895528542919557546669741601470958597989193181185013022281752745697873848436248284673181867371918950928657036848168478186596635411933829451577461320194471335944607245096429949818154749359145674088263831961739997817189828852583333587782370087836896190082714571556267435480326858880174863019678586548922058117655079095113587274904896842324783632598620686965833532727251181294281604370742812942444825943767040995223956214716252343353067417294115251093271693596049454653825452830678318823878681792664402204135750475939141132480943842471117911482969832859206411994008651469475174598658648849731831726130130753195235276130823887545459777531508056611225734834238887487063516356608164393416918827597182072944964317751621058159095595491825259497277063752579069423855720514436458365912909518300597663795473202718036363050577703136635917051772168215722334914503712710269488609508466103728227434763355459829590935356235687740108419208850009436895238144609132491005701454642758707906988442819352484628005074556519593989211933311426642220209825273520261758473790938087995044808252983389360416987649816490194822157762479758314908130279802104363939187472431756369850692027936903840364014184797328196834380187195166960641504895887897151726551986967840111164622382160313266805891286624442270544956409363637933853430611711225401096722522374004952348467919697420320806995584177939936478568164562595333766651522570409940154221875288062849323452081591991957954749188766970412929118915794497868109721359739111311930494649827670001614944118863738913825059646392481539520796432961373506374911518696259968651019747305429980008421099297579701490590701442052394684436571928920199675906674607035621132565749441988204696677491009355071792381036738673022794526972070291578519807109669190628527174793173766612178459760996772875884382847703067879695511745721972799718360576447054061709587744897772574578256376815888687023280267978900152355030637809350186558771779174613389297716097217765755886092558245738665629500649353455790345863832260718113801149097480133190555527691930203758391139457397331502284063223642660083364445433889999441763527661953462985870518391437410673752731568520575839095884088978600844862206099157364155110819547778247712535206477987061220463398955926060455700107407271162654879937252185103530236605289660036926194798153369736208513049594168882873090677033570766663076576498437257450399699088560290865751024717762234483994272195254158192134151197813206364816223609849351514489804753879019509323042420492407042362158235484563602385426507590711301781117428947865092516651782136880933207640750859772890492512931948131625813381892467436229032543305167621174871105837792610109863083539436859260298653982473678344845405937494216769358635672930132922410340835773275601088179914773608581215446814074360077910487003976182613899771462317540889193522221465533229389314540113947825220353763394702776373417269009207511471692334788640373663583965655333148310936907293281960430893792689067335562457539049179704096561083918036056860033525755873913886096905543732217644632528540058827948804034423090716986866879354975543309403406087508983966128878263938804701827242691235047475317433046454462830556167693350965204283536434234998713401984157919775241409270592194282689915965907163204747660569067495133513203968606216451383035438630720594873440516665621336676811262637919763084618183815260568411668129910486138860242479627087748061414736883701650903109842418707295733110418950286280520987777325394299985168458065936722631925379410727780865319556547479036404111876153621695280480999392337915604664900212819953206404301704840653655129460830863393410739569661855818834341429058703286519695152565246515104521057809453860730130210178838009490988704341462777306152575076237085765322199172417927378822802915426437858643408589116000080448732062843794778720681859643990409152308949562940572522556590651061919296820081487277291028192919592790342777469263326669993996042917634929735130423001012298003587577104176724504910647737566929298816239166326911497632511663578500242628544341894711477473790893680334566050202186871483441802379681852491961570374052655586360442456169694955318849803015661879534844433780578270019639230933109002532122035854174215696267363526790452394826794267581133951369437329457290818641395731672093148995772992339119766965279332418269291054545197986444914025267248620290906226278311014860562231690648614883456502097757217624616884703983496701916713276046340097914576435358379905291768175122284474769173605320893371793789956147116333909212078480963978687999979022637599126181940103136157707006129470149801376295560463316617325829111834278214519194991083923707980070050047015748410062272984485190286344046884466232026833371527265263155523833217965942718238753719735128602893662215797868782699660238333914722786188693250882998694640348252446983170606188314238298973700570757682809900343486204658192686566649005958010664912280058106884948739196135711857914931878506603882584255624585621460633002352731765573871418119416020635763875015103300232550797139500961642670807672150202482449582588457337792951718306430528178286963813129834076513270387274076825554204110858059755670320078114876062075397817287934846536891263878971593948880955098440143183340695247722499609653114489117878367356062736041384960821400430460158108671520905900479834395097985544185262598016919067350566894067960315485175654264073757784984355588341079027263069000039771619170491545858541749643439491160362680020926767492290019818918816683949046021379157618384077256897763635117316513215515472640760484248834891174315081286037551671573314221648144003931920189166738474529133322241301360075006266180016793730648892926054567302839861669218012391214690752913613901751658026260199311031681385613505212090670045089365458855282439784547080540806741764268245318679855619870181063741681837430119648323601435824237322235146574413484091191646884066130961962574624436022073743289827458738463282935583330649537489522141797022966343884180884777028961544991451866283146740825851839361157713964935851636276845623214530397075423746263655388377883981743859489006034566782669352875399679130006816292671552196978147270255337760681049698909969161253647187606000501663273839262189036113018086369096205289616671642002196585698982036820406552615053368838659366604146632678194961636040412107414419422826736755513565854078222178531009535536417855492865491884204994710650527493082853178643335899680953210222009276993593506264480657989802258938507076429393063739255080407751569796309612441865581053067620730449559654246996061671333050195765803162141295325736541519141133364983554385615285566316528380517060364320117853058919254320849255960182181382441466110911604206027374189607835174767018944246619322119229585913792331345434460197872473043491034686317365631715449739060630039198412595628679558250214476979424808792040478979315356247802542690310584998874964650095819488767149966517265272414100707938448435538382630962041589581109548629948900343000489519100726769425119879610224944067736401413612229270283178463958250184811589386277614033243490767993569877996218361578339939381911316327842966429286534442898278902458802502075164334740673223475770790980138046262865347719314937127847076685592420622104193178251767590676537947661962774282966769546601546339221118636601382277079800464214506219855247269474444469274372581612836298130261360597450997722523244742411470799189538044778918457851777078869043419616173950225852327222576781448821307183978738022797075128778354000685442881126396970575758485802754169846035993219099554415854455391559143391266770712077053427606460627140011752948035620883988621772871639864810521233641167950375515508669552356090446334867991723253918819592395112033894385683590174419550723409499889675365968133951932200367354028872555197654818966351090210706180672805332873998913773224216919864676105940102497803117455013439194502556603088845328297520044836183721126005293717058355732933000715806634741795031862141590885706600248117017903448996816185396643398507391230008424544281995111098040788318040366438268231164205592520417862657600444779354034257677818699234940576437362652312200802940152753739707258428723177503614242512100259920174321079337115618950669875483203450450128891546858072672092348493122236627875945796079977911786847066128263483312227900703775434779342716257057540590278235603886529980633996547370422707913785256826010762522065727253132931772043099712722712524732434430897713234434837604470807898731787296509202056012645137259559442863692138192730147650502328207218977758558667181082824242860309815929932229232485650982111560715742321767380015069381646595314261094340806894257090157442273019489433424275434866123691815657656156071547506319032403973471917717459803153303204018066000056806609400488920952546031887391982400797723994427998935471205267357009172577075991938549385586725943852783453140151800009448360171253048421281746817171723012596083961837578291390557687516562823405237931407828781055577314044524759186269823520278182794686235707236410161332535528252333729081814307702987580370390450456038698982006091083013465983895644693217068131158464069513985331885151756429208540502282262537935549634872298468989106101617561874414864904827184805312080541008026846911293430732590806412928813487592952086269025694049639983012346045349318695055821023226642180801693183752554995835916954629179307238776171784496323006317637056665323293302913794095468729295780442617817653294915106381000153566673106486865718247800190946582943258660498915877004921511173867520925266114682302089627173129580767587750578060277407918926866553272723342020492038682006572637723663607973150061582299596839985230575235709466689117329298175966355284563204705780955218153192134531321519330152620118806960342801383918843378492069069789237655832360866283581710489251964880473319804379717286268357170893666275968153604382852010569314147459163612082154782234763712311470831793200879129646005418461721563261293029085368971652868224337609036363630529322395037243478704688049905551147937080808424749517810446583481768476410797990980646673583985299452450743942947508636417012433538286157866731737754565834549599491807732145200623181096439520749284108582052099641936168605851581833734983816955879415467228490670348321117548341503699423028128370158872059326697253827335485051734506745172661052438294991757497380385738174074655106201941191961109204060031275424134595512420286543292725094929891296940413806223163085911159709827617200893096476656855186075364537901992249659454717581458252071157469170057176423208312638146886784432261622356917246815003277495678977404237649270968711354982403009321966057290923829602127153224143621052832746004336731033022453277513073507862158907430765419937432055396957348909669739356342626455057017142964377709525555240710584222438642480274817319994518752123995501052520492053538810606538260332674795467116671120635716371538050918948406089788737201586777406941497862539541042213264845731693984413060192859429600267764965040098031337580774010774838815483624424305275577521694600603420978570474166891973235451040364938613561161766905651251593400289307670769505740063024903159903560692837292444203850056722836927567880073455945226501610425510041450945872189285465119097763193205484291090067600025171499778680701778459038720146902248809296087763731493805685832218146373373078831548448592559121660040928849169623653701596340420583742903015168475607442344715462774737795941675879519217486292101604465205811327207978550905334711828924368573921495557264937611885233826041030676247307126305320953971903907495321881297506176888831105268640427393103181473035912798048534986771175119719789145070435261476992982392216727718064603825881878993664593674842555152806949988433857895779664658020158294684934534281401271557869210055164306572971333098315396960287272615513881187786538053121854797646078278640209685275521434154565005107039968635007132464624878906844221582522383066954836917857478962771328353395700812920437473913455063227151855031320899229460444495161480883241693439188940153505874325675851157914720196875672763427954558679490680045061733733224452843576925030189269494417311283144493991605775865279848228849380960890860895749064036861988418411724932824920286272023232278060312385748083582870037568858378111278609092124929680787468773961609445378400309459199102897424335105568518224259340618281331118284282063181457068436864659590642522101455176990607119449696089698439118987984127818525429143979774561704384664830351198917163402415635434560922181745183792484462573220757773813754887844628110162079383606117018281755079814814876861114823039712930144943105091320040833773546556096398514140577879793552989996614014626598072207863198173199102610432176785397891551127662935202052267756411411428717344751320993988267457021540901885667060882444242733698746256967592134950614260416953499824534943991340278430234104065340029932920564984337431696655991456317785220209932105471014328510196574837512384710612255016437842238070686547007954892396273504689046788083608922853027165098348124767054807525742567266582969738212821098169993679664489234230060809793538570301275093203741789272463297770308514147190387164959830150691161175154481769253420181356722694424816524107944637924801815815602510796742644442273527510569435648663981700546217817857121938095853733792299830568634518712388934772360880445623997196002184042875629801872364691731064692636890717983312844491296226495733767223802748086022926921724381035947822361715616206216918443803942153861165124860534608567103749715551951722897279547259056534504958723585263569795691186031233034833894926533993467311347234646976766957366225781776089075002547229612537082853191529346037320502124570190609517059143700511298305196479080989907458990254198363731934535162792802084646638503423523532046139473096495874832342015629465972708040376348345308636193891891099332493247060007520773105167037962235472155072748182908109141962455457539231044056140526143903950230216641582783277103791104609089446131596570866341389827840457213823894102984225412447667769872109702576584645695928590616278619466833602009946758945923819895048582851358776378242646067592739188192028029779139437767086137472941303681342417028108314151743516538298936232288092893586066572904433003831938199586259856954013404346824421886469994897764258020256690009640418870549331771448114788918506487693998956254164703289575510327077202541306192586328710181934025652069309089220961663835223583695272820750483877529376093816923922448326698728255979776058171124194970073154885763535357728300570872313553366753727868557997014624900745535543576818622547012304561040369487637821419089460580319048771384629052933798097729898269894442286194233368532591952964922878877769923585085585946412736512754507351539077847879476068772822041467196307622599568680225892159111600953721055295924435148673259981071053144285649578148078232952216019134316411659632246210698835204431852635932108611389732001091150299506727528137097857621027295688812077532910584464285433735282294627621914968930115879279820349248723827140659106420002212646198661234760855337826072771304571812905261261933772580302079632376008489382462260315682413553344992842678114112010216822194106479829651418101932020175009567048929901394698280768200366977455903162199902424055794527863996581512708800876461752458018513396631919367405708662692506014221950390604723225882613802750348200253081933687768621485149948452938909931908866070145806513691162807557224090733571452123532408788165512661309694527251717393513910287714573706841381072094650338593935271668267128317510303794390984476428517488195506145057842307665351147786444947208067891219881754540101666171068591854744513815108469858221838284785959040810460381755722517205608475213373947005360183645648247315651683708139831415482536436886295159351843480054575778319059201138092872963624613438350367118651909251061560470671823062951776567746948414886040133473974504883377305409912417581869689784426965546612352589686151698755215596824992215843601816574497976436666954890382092146340622053472081203282709383372417837975450946509743753069595822991441914037414205260568029101408397343002395762153467551018937970752223053007948313579568360177803400240438984707220745071016510526433532776098295614690511118244378754884333001422872258313128686354176654417305829780250125630017204777672646035480138801927654831688007056283613971038829320552210887318758878952039497431299168417724450201953784108276567100063034027375896266604651480987327010932426349490760378118656306526525561635793638602260935680045634159626478077065187832752135801667282058875593717667213086114731346618000227124127243617210751643853328709179677417879831371669442353338252835907364046839124050554616812151140882016311503298612877469018215433805086766187065315865315061985414467696410277171154209069121206264974178434691925435502606442650499056584723135245133821723995517297161181968511386005137499982614761680386673788577570879896087035589799763294767346030299258535395053727600468614965274888236270673311907258588157801212913787486197032338059744671032490688941607494320335311502841908148852588127744569442310704747949032668549000054074374798547849626637753543896169375300661031323788777027187609502022306684211874275009480368110447262294950337546455940736974713999664095403087258231090496660706140349193195773049775954733163500843355181541247488537215564052154335653798067312008590152893176023801785983030235864060581991895190801504419513827327432160422887381151250686677604037405751186675416583640387536707711581490373308673940724894441261764816588787313425198774883159269340901989622119322160318130065370659552186721320235831360222939466084698498984883451597308752887036141590273308198466600947575092069510891558777320655357320522404645638664394348489180632632738167477488736333340922184143012752303767110185650426789962002232306754901133103253255601557298672705876441962912918995227938176537632333509922216488646293339387252614879638102493444912655004922871006877540959648205800093727094485773683943087391007138845096471896681681343663628516769516353882637604935357774315788823641477941272565269365646407459060222699690087367770558571324653220176488981920824697857293175624354370178824592151931828149275109819095967381060908110188400256499944690017171820304339181226179506511416620068145810560853478014926450732032607734312961597530350680792075338809996841267288509787456376351740683078518242630935944223847631349297576076324972571167365282910112524856188064776670443379310325830926135253703657850483563864280254165225979276822445627705948606479028060848110854290770614623950222525727947530630943875099384638955144699873674951086428581757160173479926031485739054370860496543345799110468157585000459558232721426362031253726163206667175771202058396248962475352171107731691328337151045253179831636162651803904167659604850651609745310509532605221588518841624379241325657339556901486701743860978006983267673836052660423969239295863225316847853189787431515957332068259999067805755324056215586498242301576834512908620177619166421245209231700301867625339212162669255236122895204251531536204516716986670410639637047200417359644938704667752278307709477077266856211150170917897528555945342915338785121726140012064999441769070098988385128333133872606924738533060966808403825934377295097299223939123944033167586079447488034414344497979062701272037928922998464686509566430662148447945461458037918088238190694471574097908550927761297105117663566772749770768075930785679093144561571494616237376438579616278727589651625520069556595388219249005617985511955378055979899676646727298970412827327445912630838010837633376265263977829861768599498667341528900419390543041696180573726694746792419114549820026505701177151680258650296028412182048397154276406927398148176107680901071718039145561988167418420986621827066267298263085770628231593810382854687773098627008503243542968491547462621064566282532453395632962310468904020702146845195009977349557061337765168026036139575244614227280923046164798243349818882554322534624400119158082363690971124885402710638596868818693654430698310331431697040898753882240409061466062699809235964262789658851705305882595861801991189787753120033773546908453721247445791514547024548247706419667989010663145570533968337628269109749262687068228763455036640310393413291056088646601830393932061818829212461701680804958530272501087529052588634564804060025170601117245339780288686304090839233321574078250343442435905679851393240755094823200603861035295828341476275644060561799746556504968587039780414892437257884360969548164571860508197659863324206991517259798834939057358357454879267849065524983580213221187895558147009310632700354192284891126103990091873319180116077943819396940127890552749259494564676448930508092355017372213453527555702330844176959317059646552584418659270795790853170920948190596313209663959411506564920108153014298828226939944827545252458827989859355597840722410511739302622128039823103130107670942907162711827649907460129111053854123073295073654459504066563569075952507554581765872270539461273745208961829354521116980990328898843255680418365608429308668102376167268018587135683556599802374030558355158320014264284077491778954264297007799914957636607184889154195633005368836590084662741940558031136770171286193916672865787997953607681106257485119846336343668052945733183676477836754189995848771495706258376051631947476767786670793480527944651711912599164059729149687843096037705497370189141193333610694944928505805735964007085681366727411138762135842100362354682714809022213453175405074397923353892594684109878075756003135733755712964115208200092021921010293130469813483977253051722664176342921739733568775687435210090203806687274160851926686190920973988652362947268279088450874000209320128885972757706380953871613870052518232751104824934107672252673326973405656694531674373102638530524547669981281910790231868681251144946289673230242233272435334926638289352004614420830800660286631886495338716061287354675695938390490334927282730346945430760747897332999358502354524272573208752759850033485456923334953031312403438704062613809603190042836621848737935793018440106444447689502416750152200926945003243277691205061779438539410497098695927894180942019157273305981664678489406106044944703606641563615085934738969308741483864684148065903681631585969142053316079382904231411187049840245102983123135781698125710528114338651416976384752949756049955692809649494388687050992233228973934058202184886855682502286843381631759378589194459590532514886937736202018486783992366462322654840810033732875356585640001387924773951664909228688031032545174196649317170190306601899840535069808732757381965684703745305819418978037681483735459503847996586344829095998288566241079840614684453736970865094972486360970110089045722492046487966046973380764089923026264836097171971728102456594690454483838974068664440446189242779129485103645408348144327503362890049010299996642025234211932182003491740853441160773175293617884000205290978559206331738027076462692706040999422322539817651332399512203928545206022014665313111138105013247257558432297766205038559418984571150285969499756763776841226923189227587971280029780265000209721690287982293611304556098896551780953443266660395580363968065238146683793576173539999625245795196173152275482317165921586858758093482082151027926306029308323930427583157762568065371640387578290452618062372136618889964261757891038399461838771996041721304563723732495334628909438044818666413165556751498877835360701621437825603931363868630230140521322101641028776812250461450754944102193526578220736552190581036133768140011615859820615081030269041989872102154831956463259048269666699827650769934219030290613088484388660726732186373197349527251137451714106008835698197153567964436760528909201994631173060623855056080097453976630142094476675084282315002763914617033785824923715833500348714937971816787358474504373565434761805705259962994488430999341838847751306252113235709328757976556184163478761377678813962714528721016483403933715666110822419769065028533336245713746672934176042021763599282537768846953597991819068835658202469770482485491904937140440874427850308078050226142620039746771340517395140183340298830867584743020650734934519805212735578090569705833877561746286471926979950551385117084162887694156747029452819107748610707543891618840743493491342086427938315871723144450557165578739457307289539607933417895146947592331445517350711916869464462704339188800804579691612139838291609702459181355843023631556606563972707110018496137400603834863625081688309425779010634350639046744307750114544199013607191349619121902695508376905087702024424603008700370545510300129685103432170072829508730829030616212369733586343051873461483047408596724037079591923528384035943664505836209748580890689207245914130116220418152614851864761689220032297528690976230974421470262288076254671086825793917328526368002914731894053061626541263345394007990876707547905623280143894152003077179092698653152076583549162190650546404272998866539887369633020084451661468946546874110097133474114760501890019368067527235642968715840037122513592428172271775200908221165917933631236652001161797513062266996153598770528221886992913839365382569518798878970407880935610167157114993816109003087319366284172870259238276344410581757951015491704596480187337576414045148972307484337582666920407423362036208663717807167580268298252156934563258224057874473674274623521305224729210243099730707591237626205632258085762154105984696220738824179316341357801830261189786535815138040380426436823622789259062560611465165953954203605662747680909653033534198841509091564610102851714730749565417733476423651476383891950126780692563396398265035478667618350601370553354110359420403829334408728779402696724889046955036035227969305102706639598907095166778960542738324480000138235373578067410161659234403380418188175713235630659449333406879728126312312915158293056843810198271954948226432497424179337822330439285752003815668504498791185448485894492489732298635435736887303773470167833289464630648365919581252086856818636672455818356110879690639618888693992710467282272849106838282305271369641532822280089950243595714064015364593310947298304355370036990978859909277200338140489831840652130113378616711213776762129164023763333863052010356827652438817738216627369234934536162989874698164911742971900951615593286978683570000873108792684969688008624507902556035590551957065723061260902418499481903018182170785221529115559445111105058073684041379196867223743093491610341003956121271760220415829159981364339799514863760931958491090807928653730524158202781535870104244593399329599193683088429137006054262085373288029329413134736764576675384403448110047958856993658884486730828497344056153778176875068921340067472787177959177557981294175834579364242781988679543708112581082777217519034382359362146152721971734340576483377321204641396592842537549260097346214477897383048031147960692890983416962193223890239448387752876755101693980606451495107719589972741946296712258317725618022026977679537046334839037616096355156546092955625279282690584881165121037059093130204216008599782291538299517858644255718527142384819424898657611626244925755652936987899486766439840454771011238837876926587331644444318715167119799790492119568320021107391380929120438931311140905657214992461886292771093009346540943353422939095941912030765858038236623568307255882089178788587768802264807910444077873313841134861946163813403663323053075943879192661172630361181213405419166637599537904223344617773782266588903954684484182796062090324728056730042095067213639086041144698002183813793263633234776187921003762011023461769114797956458948621236802304795312773017048670249715458430207740525206655440635780356022151996761869442523659570472382680239899911931994335572245577363941884341133289419717311551508013204544413567489326074929863781722292135074390818707967630110485455109205651880494036816235398801131968296606227342383312121688672602387312247445691997098441328718193406460485460245747581335550365359146376831174597768186088183438496259313716959582168788147650229811333243572984102777055332812645954306625459554959317911669516159199137076833969614693547084271104085976701784119500044579082938881812896017607760036179302961520310475157922941520463921537459636746343803858751375103975439208204548987613141305479471497850454426862715376381328729164521220489824274783839602820103091328131936081653511397770060835738209132741455136189628165144805606491853081976322659887192825612937797459002574392797593716630163180888375344156103234567969722745693183811958106427521905115465508779571151883101143567996015292953500863288099701511813873007566285063137254755169616216281232419588927111672266907315812453327384083777412757542010780914187181572767693810522110591855886873388860472433021994767888335082167849151516780636443886206917679552908093097932910744808666291986848905615301701695914314397016192989809381017177312165134995813952565456597884726558152473322858454245598064855749376821745195918092451009849590191407828184392131990147492710841668038053601274977611634343449920422013920503142902015456200696909210651827788730154611713609984503046005107915723960187496384197016395604964117119832982792575511899877320081170151391372562993369771109282145338149782571079684250878117425271933188767437233864657118101814551931042202882927605791239381377823049668323264444184954487828174650994769755760802980333349292826268425159051344215964900275602605001635497382659716390885548679706124345825473588107253692463167467113256523279332720943602989682801795512759572975710198941462318645689971336734585472192981089949300565008718362824246037511676654333227081302522431996463617542153785383456768518938986534402098631788823968534592596847062173946277996299382047160169011637475718614735811940085117580015694688780881257863469070148793178611198993748285069049354630163372430304235240792044790541622649209807486608340790413328594052972699761528820658169313055707741225123843603162193477249787762330134868161694023977106889423615741630747664398617527874319053779853017709399413329518104372861006998098435138622641668073525294756749419687999996350249558200416097610490371549477573667055460060002743633361659256979470648474888871073191955392549402314132896695167646438523850879870229912513642440437208698387175309976155924830531852764868688424922686624015301119709120262287665693427580958179695678460353165898353615746917395834779657952172488702175965330209458866404637086311953578893812453713017509092312036064036015504422007752240325982882985453881102600497462438989901639466511467971508928547503559638096407596343838228975766334857875867586904208553140541242377717028430798439748615405096467918809006360517337468803669889226280198738584286798481151355299994956849832291258142791884421940636223835774377583777240430436975463232847975612670029787941303498038440049909719914158697418711670446446544849725389705853462191199442100860455687313353891767894993979212632015919389756627324345149424348254713012567582295971522061806886091034436858733626504639198574429006710304816031595410382599818758121169707621481773846739681780088211581715541750168563255535607237843724109063493467229318800219429994324229547123601292703502389028395604599236861272811457855100915396395335286775651568292975803335588082298844752941581820118363981112161944510470880462896966423558899097571053880073302856281813382191814836757689148644959623657329670929165400713597013321158288849645446672368591114355953470965104824055466585671049232714317799217496773261311373970560878425276978046043004101754782169222643368960671715436358152241428611399631323331865201502926806203571499247983606039926998595047711792293248860699305402362663416231421887293333334215347296884971533958389778593716188166737996332836612079069753222943177007239440789322227955874821838547253841675819249814596431530629003583889404311855791939367847485887296133040440053106599136537450443408773058006136691717113255721532235130734589520738461548260232730476856123713882748929550699237541277572811751119919939148413778153582044464172558758339356998414270977161652118464262910497804776287444695604536069405135081800328674840506537412182251900476447584885336745258376501061682782559221979732418476947028421764872300391681034013215901761191015337242950747871027979182876738427458363836269040215832568312499922483782694488739166328873693664692437409674324311384168824962588811869534122258225680277382731194905259987176804238831677050137898370374974887548581868753145162002343365185662723318182363906783287026603940430790308214275707332616176017222240335913371103542711231169965689848981420685432466370450926917960947739043169958236677462737806947329800531096031715205239351313425380150189738822395076731122458277724866553221536553695471264822139972335932871444084349140919733842404713788269939982602886746220958603201059293299200222350427583338537600864539745996793396852809676093195006329319773474575343620880899481229845859201587101837650105576411294802621510168611786731956340719851845952314274988040034132706576886344675714004411138707171002616324034986893054476528564278192184845617010352713678782141432519067913768240865802117128938630795455094398558930083297440533592164878142697144070383999437134634682068049427727678914952965039620690396708060196631966046692976890929117576915900830058280901111313775890819219792490466859262483315618298124509493614208264906120272260515349176153638148138582774888762327178800443649780944812863749226421853714009775025788413117945505681843196416682741172453373615746452790494594869794526516224685682941616186036988631322637049055026512998123559538614458370634028254070834637194474525730349338308634138609913773095457627431958267610194763284742870144677557342989103470470055225269870183814309754527735298567487517971267044947121301363393588595833342846260597522319958394997644361919596447257276711630206470501021916877618016564605741044864340538562882989869051210937948355574323439594319010064074131129668607070126851192406442311746651766049141573587463954949472326582253962479181002034877222162481150593995167626640407338221720387542283827343977153222814160361595086974635860610068401528305617931962143461165664569984139115930817897550329836763140168487708528268802525060398896570377866005034394296240008626253546142034380156023589895281225873100064791243761914924258782297715053245045023776508601931663585146611726620985657989881351900597784547284718541243393859792870626509031210368963471157587592164602677596144748786959429937526425746041964727495458248672105889702494493551430430606640341564979219036518344928100972543325569976135113180466807733835375361564776634816062351271368811856444591384812937268513117028668321862956468042853235344121554399618235230736900578587578802775136358681346346538874124713623463912543681194272669677559333883045770042661676133310536326691868140483360094501671643745521500541972016592528546945609798674723184819768529573191788519568623997773326393489518659886228707956042049581764343913146698975828363238952688565332799271186050331627899536210659115990491706941022096727096019334633107581444053751913371443146764144549758171603427471618236850046686628223582874863371503025444591814895138829132286406698078335826621472009434890751742758428280512272444999635784460437903978331742781830437120707151890697520910364709632891254620282404361598838664738254544677723730684373745368575673381266143914138816902440786092580703908548535924037311548710657338243000279811591679482127714324437411894915362253718523988589998835987943016241228117338621217585624395420328442938961817590402088641236898660069180221508656556507715693507193759634975942192527761613339463415572287894520675940267038778819173889793675468891358048943247504147896955475054117628517985018988188066178672194445398849476500853894228822471651706609218933489498743050318646347331639778027968518685799512649037943622853372176023367494141150932168942674051853097071660482968583987578977278833758674089654677802286625661816975580710739539680746238677846083463843372631021438238567586743945927482785401231375701845394343573138576650733148647012665079892467229533395439434014742162841622411775623692435917999306765318460454933412062560738678356091774387428529290001090925643277277473626461812505438963630704500200092996174341621890479695583112359430101305989024682514140835655617684201868847767295243024413725067487890637267627998778438725052098720296478286852742643777779636006932369450319121763889772753898074460002615888884736722899588182893130873694916900354442031328834441175272558991596320670985374662413847842331269704951608545813817948977851954550155669099815287731265198227641803183329100699372689955394637123502132661974741316898728499965296536503280275595536767882948688695396547652968350018056717533390545690950988551656314702117029461773376318290550587615904755723229143087931575337186142882481500268611383265550839185781400717104052386588951097217214927370493723859694713596268632675956016933499152848435039708792734233694960194395871004920138411258500695658705227370681700496388486729744408657077933096890615410628184808289348110461228248451059634392291275317387161799741790941357992944701274505508377357628487497342052336023748805984223254995987703887479406331993876906775593787303425248584594919441894178854902423964072219114539722275607240371170723004679715702901355693857050900165180503682226195749145977939345984215748359721098615962207378062987292744202297497947701396532171632148890975399359686427922244636965163259559219306672420909988174559618922430002204612767163083909522216199147717370428458578971430900007129535047433152323719194841316765711812937897570508788998547745332853244808631422853839838423911474781704577807191968068441521737939381056165352627201226076700026953137154824865775944936790991111856964687487165027162045043663551335014270905712852103108407887166527986067215149828492916355804074205505336936085636185953710834587576228141870862294730687863831865393957867585224744773644338836522247002649677371700318663037484143155433243760380095697455920042401412027120697349546942034228436553638351029078065549812376534801100744362510548863510416723951853879679031456431252449994575609638465489455579205654938816379259553552419108723315172137005400641359239077844121733059973941927745714157176238579408117598899975841499865942376875558096942896124583473942734664067357351819349854815891970354432687052801682866689606698688517021301293150574137840931089608533993231997869122149860462072368607076188040081146172096870957282786946354593405108697932884514073422414430722410736882109703131358308404017875354909555265571594282895015801454220426642693357374001923424895238218756561359550560905752100414031891037342177805548185943989986828100354834632273550600897591139891744422323445522020598149895112811207455352359887450998818413951434026519699128968666158303387124051434362068280303434896856542791426581826343175300115295950971131401878741691554572304826493728832890263741201721061863619799415367882678647093930175816660859134940882583344502436955755885272659361127914937484015399152556180090353984676349213867140305165931666662018093457969528790702243660380031209121397508437908726245554831772364373095601141727152892794953466748998213801916553520579856836389865010307919644024021772588722420570511750373345136280427238318199174768240349835225285631935891064315066181656483947827792296997581072876604942423674652770984011225133868511812263633286324617929910090999083317111851866579379980258424792076798418007670074722527101687751773408502269564355611402018189601763677562079588696256643178269041625190771776906536120672723867595085078110336478269304647437299134755832810197657120406972640452388602741155025034040790020552621019791426466222049965838829034358177140136774725704141218109718855357571123470782607238959587601760424669705367263544920322093095089189078916067667460885851478359314924678964340633641938770934633833043474110141994854135156877862524258104838000507003217726293402157547511957535376173579333201180973648975302970898895627278675312001170532730617343087367391626806433364369435520479987398663748900472032570573892727116375610490873942114463744042396955329960912155843518282088051011042049320795128026672051891295165532516627035985029090728318813601145183805968729503252375398485181538371369465339479965762522709536203833412730735212935947603100642477904083809494338616798268718474414766900889345662062510188305090376291891172871600294575011904089652704671854603374668395479867479697996864726996506192849530130721127866612110465934765373303455115512347251165776554936845196813886983031801963616159822173877608281300333781727320528462820477363768007060100954494790975504792447319526552024166055439384899096978586278903094011217170004370296330481362011811649167712805026496177419022313190195264214076281656493134354915330649615499456562909577659935193834650034164713942860165755845454318182533263701797645593736815855035880075610219381197024626239806121683859172740278031150356955665773344919384688924695109875084042122391280071661942731439676530514724880109439522481066401444869144972601478698857970663758423329124548090872291440247023074131275337093695363785493061414440279118966658954164766095106119743462543822878958410571216319915947190050050914042937154738542987481975883613919925978207568100839465742445150282147846801230632093927587147872041319754927203343700623797081539503053042600606835691456819370311407438966539248135299679309253899070159890862730742112024687204856512983434442049727919102173259015126341507868458534459452100326170691764596647085564549403249861341191917882553991647085604604629449185988622423945182527413362568467002682450918181514032160336799919941613982393612466850227830116790418623619699588860141250330441349643076757559040205088650003262474221825390669400417829317710978269076659820845387770530906258372333964307673397578948330970190600619205595980724632457888107610723168713101185606457653208816114412908745734337120887335806136568675201817645840159153469887188522871853142458654004778159273856710193704661375769035015932711046748551109718727210292992130107399540507505158296775949199723796317522611356575298764498946346109653859092322359113440835134030032477279503530414962960297008263530642746756298124861763065251219199798256535070459986778009836559500611418991923737012854337479258161433640347997234217295470148971005239005597484967449444478471090424985804061188832684653390290496895252013694934015148739134158771895397357936026686816579520989250905247644022306234478741410216593481952045919715872194470776356944927609917513002184013320546608933569502327511596808773058020981668283135513804055764096621847659765183527484229235875416757604892659974984044193457309797723084797597737454011559093470531804659744244846589192009288282372549175673431499167969775041684669745441662966772420180298183848178633742346361351357352772984373825750190873659597459324616912384152909595426461692107431327792476032125972239298960059668661556584616737522334665593325599788496444843750499011668849295447732150756580669805288361486654869900972773697829542395051556699725475512052564805711439887569868057672606140274486910252998905538894485300422901718535070899355240446120545284857894364576056725410085728307032440320051249924329356295618880309272673662735838999735880186577971464772850189927699573043051562466734666505913546916277402903624181756204295091692455616232632054046495283224049527049084662402685010564911135135476242907001160931415796660680992271926422884234089199278896817330846140833336627547590286105187211667762053643723354659912173878294572324511760740120210677665295915941877335189442260345731984334322913729758624319688821641334587717054652897227454201303890141461514905954964712531490427171766896353321271127028632532230906445667709385704757586125904273397322456353960755665130070397753254267444799439306334528960403015916308429069564871083253808400691943180426670749889942611147537189723633183480333025306614743442064615502475097981699253421250310083698172263721488684511010668965299925736260458904550209247389644035398913827641990942494459910501081090151946858065868805110040127540633065642858066945871191844551270584108940295723848692141117857262728554533000874702589076296921959054212601496066818296606942571717175838102608388542148555114662347599378812989272566347514689625946568422820300561662729137925358080267082845949385229154569421637989213117288539128829251397988116886436703629581338661023177225240959745639063576893744748640500586986458773417072916679298341295324033505126522209708584755027011820088830266230057216023959485444456527726641437564111903668338664094727182758900307017606258265351979603186004340773524347245226719947288423002746642029855276894511157805772140829916127878727080634547576962447479416929051081764129004715812985103401940259312193586425326616529653692082528245325259093731364536237098680431348497632110306537357736749574782187055957194821107813147144620387426684037217992974977993688633065955839385301495211874723054996340542602500297184667986574006746004194744983181263784659381644937656614840579072130484108354225573527035263257300180347203880963511951848112135622740120231972564684770891775099311292693945115191048703643639432451967674505337942473536739275167703409349865042168492779202013801265152242464027845093515371616847785931586265010579413161310829788386257207330472321347519064995145348334755067321443807275707619659263416668750576504442425874053405826714797029271003216945070525308816988711762771403498190550614587206477374064498319705808363499533480326329003555389572163171958816331130004606870928704820791623926060504838426958549626575597504868632236387778967086696290466022367233053729110268762304097566012270047111339578903289362294721047082276594987300382035574431727149795508098464455590305286026888115305079635951764722206085360315004972589888189110200662564032671950390376451661819830906114010526228530271636984160679237802980252126954766038665505721973138433572326506217915830984041070277215663962037636912006844067873958828860272338041809188045387420448046592726835797325575746698170399924923284820125602935780715974375787451266688934135687480177601592169919709364019228704653140547639287079172279918904713511803136413316318132863632296981176386207407239965062616925757401478452521647362979134830080905310360562397461065562335154969170628641046216782308771125946927108670614803518814594986185089450977227354250385889147404007024535317556688406674460469350526294840535319995760032168564594391969405508250994576386334297387812532362385348090292377481085073608218469878790101595262791606423904150760914316776734072415224760268849121514298565664151240014341431919790920801458727184314098588653319722409259084655203515078673843669002063318750606285721898172536915169666869444931661474589368657771551866759764432244967299247492371257628633014700296444002980902871061539021148056208166567177160107976727593878715548546154338576958301507946906386618092243990184615634594839634552032821380183384835357152139439019610140527413964195951319172989765284637788693043793152434401144132514725942845539586828602317248427947480075265421247425048983291542827249496774045609183523823804110635547652140233178626204308317533455504815422488085355290651039304417906073740203976352380962807189273667787155241818150675528328574863985173206437289925599920309461997082903452798170736997309338869761744128044126263158413800065562478416399735179369418198178841570813472292778024809233865465578808977502072454524231045639434060767495920758368336089098793731642955750097471411961344006942223996479161518736516430065110882409727798335657053055278998084787823319724599786879871419124131976523064447906966553140719881310595312932179098216964457316831248189387200072169838078562082499403059523074574450561091441921967250215586519071522077012011420198662182924619268648416743066618466336748750363976817438692212763720073654161563737759940743571042729312656259707551057788361819391553492846990309443268325196893290972355109098392626932757453116860032167475799602229459380438297084056643036713327320726722446311509842961410526618887777122586413235081751759797816927899851805069380264163877367875681011214517243765918094626383040353554272350994485357357676037832589657485312177908540909464845608346353640200735441962695106099364620576664913180260822040199500304404890961620049668158239092417151729337546105836823353686851996922680245882069627139656857061103626475421478814159200057134104688529643436818429239780900169619288921734680471824680856990003615508054415420909157052651366949418748015786499589737126812263812503736687331935026531147623759267380623494858275764371811213273172098013195274267597291793991333182820103010935577139922132168710127090706079763367483018683125051126276422990264176462846360321032833678620989898370185002368703843091165914521822126495607999237527856045498162839733775828200074741702647491764121626797171461757918788838666427218089258668676151510436370113500567758575590444933243149910889397775137937757558280396909744632856873704560591097085529120062885761720661193864141483130786710911594448452143144632847430311905522356685016640358814231641743618979758174090267955913881251393545301598130355481344865868016535340784576881071350166789575858380047122624238903482812322142383905953372557882133034410227183719502153200338079592577321803617885949170067031571096249870736381730666408907902402566428132195875423801528077444483032019189382846984293276058752311988072737187128683760390908777593643778899143218820525560683849222350084147454700240495388270869828514378282023352407716905530842016641845384891278092711229587213514281376033931698421406803604404986220061164727563739094772029719894749484158199773782316383825406914350546338104220786998694321486033516773093902233026557970193338168039302697006262485387115128387953425572780445483274273265321275251252143803232850761612797821984434745180910753444010637297143204949488917307543846326813643021640126877642257432401129167523008327507502707908097555089217403821370944060306182972890208202032004757715244371044717843440816942887694980828048264042417845369779796803585347025190107744067807897485413401705067330585432761378874207023453307428255630622808552809065526121622210961140706935787113806424337790803471414760221522608381542820219625606192980514903810793298094243920559854980272317795410242660789774171967174868347685719299245614824178670821167534346612369641011001464279853897505169578407133224987585071395573783853079875667406819198553616373181863159959288207284916524882386044757489779615470333276646309521386063515707890322970358879151157329074190043592508078608992910289918440587049814845941113916428553718916109788438876972537182931255835356868334388989546328502927671974885114137875030251563773678852227990127221105516557742560702380658638681947506223144872856808577871915194915356613837403875511740987514239847060434540111632041431321676554380004381961330840387555006343701580291322449935959979464819664298760418373863594015840809890027269989078816458054896155683374525796969783939433766634884590346045547844346840899602569202544168758862296991860971081199477773361295485711979734888906509737839165847791876821477211315718127334833174183225093239692623809507554371995458178055621910967582308203873590114246267682002569123959972572532984902194661884020270096683389551347100451747444787418064941483024842222122955409320462058597170577784968844308791929967283185765485594081412870342534644346301565251075637112859655894181260156798510760030144983290890086689041504749227426631366142588097408179465320815304698743503564877643643917438585161779719212506221041902346559302793785707116936427128304347742645966392315809972942236404546902185219272545339726825438103801982627145203217223591535432733942456377926736427304501306117905050381710465293789579848887562372819704235245600449131616148968414272094744063413821303869598374328412901006456183175588539536862006496188290286841871358463144632884609923491889149993381497191541980916733591560366231616848258544831919327775554849219240332347358218131651463934265405134072152220280903104017391110093385471759855818074868484068478467754581331644882601431050635324040410739315058130535388175272427678869755208672138911559092095463496898232794927254111900374667461342169039814503371131575894224309839237334137132760531086462661200945121055966956483911729796401304707708888335158061075368265134060019025705734962401518144388778993797857540236648534069646114064559939215030049299528031086235625472753202945253764209529778756758116272923269833962124287437658318973639814383286738331570836230745781099156564188602636127871688974302657222482715807810420520044090010799566104159779145022190065807659485309288568132003370007895206464354522212126665314021042742655523462535641901924894523642345469342636332629802314916061853760601498833876618144132318404056071968972395382954555537523166913631849245862080604033332964461434038540370663236349064799514124128411151580526486923297690902914575691973365643191260875289705664152126297229478280862119893696540288491327886984139224349648327317428008654636911264774332069322504995044362792528716315934215546857443302234377701090057250635481678720934427895012104994133738701627022078629416406788182378896001083440181949170835008182539377747186224672802409595243385857748883180656402670719873863880936465608577779490815965020744008670613865835390864259908425911989077543001480418949411952325084944352401803309502727098381152797810905113285881207917279304871791380944106624640025300611719068434927575641210927762916571056622288606690974366905895380578976364049712629603081659922278852996088875838310443624605410686066026585541550250198972809613956979293301872513095375749597854806299670985733199713311568354385843545452102548840529395999407511778158713770914143597943451697833145112261245355719170316364087969405156110224361299705492763946703055679680203016386177380459051901010738894554210527696911565572033977024016117886930274277116647443180618143485603503058130047125522047228400211245727556631594100089764719070969483887819715686088318348289938769676763036752530543301598728922918138591954050799907581549527153918232941323871033059972919298920118046653087694447210014668400140537056431776776228724851110181748776771571315531604317176928263919381806764953058844156701334106212527041413965398308775884406809098928650223978752102375079053953956936270434449024501602309123080454161127609975339528056794358471993295091929819166816995775001320934883990533734698925915415561381217683880886478533737977792172804092993463594733301432021808815768345099366345822930916034080316620998932712878279842545563204254852103793441519502546566497957878806721195930577947960449161639100678407956877755355498706855098276275395300764689010488256885207329924114408748755138313145342894939451635104124651763534511300810519286262985588355366440449084820219659065892988300183912609745519081486646429598300410828201973014589214583301503781618192694356535965738711983484861638446311583552336449304411588861008176739542441873437742355415314432138331979688915474681001351905104931900382533974917217746423924896126943059200217149784312088013115135567114454177141475818125042377349187303411364565450815159970732730654937824009099695085954534174935483899330284116251467806680121635452992620081293637191217338329217265615816456177319383440307385841889908983615512171459864578543725353523040527950972711478595668368390529100450028575935243747143237869354940753484931796071554267197921110413526633814154515562517870191097505091520737110282997002064011972733065495360628055482629682876434810549763284872381513382317042911255107220676057542310343532079583612868909639039777832262569251836147308702576183066020839926226973167010475493265503763184295635915157405969972887842046010038461737260633343711477183699606963613751792466193319161491230726604592853559483838911555086230452192102703204415161110646761281678081235686530194001034888271924572109689654166604757691976158702523989416727439410537766903532681443457965988441376772931591978785313467875115440838107026171723256770469734477442603997531132858364384612237334279979510214120491715437849254271338415584000761588185699279291545955005602258665584704071493057712033625502122619900697255870505934734864040949767822471795355885827444350218940196348173453812746236108160576296511804235706410415477372942489386047256421495146669080960511463118937840465130231928551899726862648064573530170349871821760992266856426985431046361792251166209127728908564544387126275436471643215446054247337123919918169420859922169461687459773917012985421361630955899032713934829572718210380709053780681105088516040948220512418418044860757404184110363165306801355223074149102989545933266982987231009431218452239142909579823411424513462096502848966158453953870924053797837528523077079108682581739761303724389378375750311799863117768242980669296150789937248207560408411151110556085002177319443074610938807381928385351222736689938737649667012530052249009990592872770658853411751735016769644627038463090600991141811101990893471656947560172211491547248385940763483114932567138244690935703256019230709446838282732213661783659059591356438281131047519342181489266124921795726771270478980523704365199073823785033917707007258402546123008378360729469359686205116233524333291634407206973358013103238358334893369608562921843707194724768789092190530579772159794053093166854180533771784800341076881937936576012827155195461445750751529748829212802925330280574506125721027811260652718226502764346334524679087019495235235856013147747192952114176357336194265957675577285236586045117404953933246763863442859306911698572327971480167380021732609635455085366041468071038521433464838860614564709470144644335430495592274589253734646281466524371198735941119861528094720500039663777550365385598650782680062204494301030930020841441793857067672121345369127025640974882295979463786580465695198078276188246274830522368030411713120348693696662179395435225248718526175714323724585492214192695360219502302443470771020692737271972211169385650250282769777410084784738763778516762851729341606705134764095821983079611332739856568516339382624665594391332635855847801013657019167149821104818030459001682867611962349498219202137578371773520225069062311162214165197802265746684357529513688223434598167742704863203350711183033105369118081284499203885808714057694799999429404241354887262228748336079176821615215710678352557298880879032658493992534608987493794101373755086331404685479611622898417053231204913190774037985539892297947685633444706302021851545270686111069501558398263727169272078357523843145596199358000401891858338921991446518092089580528734116389758036804423355224405576101583235650439908612560668044766616144752660445755799012461302053624322134757368244070941551207501170293687867776129734639201546422186367009480599567207796465670904225209735856593433401095957523953812842497516868934396311740197259565448571880156453621845578541665225305788280441083921019095999027099142656722673794530455290164470918349570740196607851865445936850285513411882636154377302641108963244938612944653061617812739487483243286575009856867239242924817001450738728310226101981807271534592359651044962767682672987497733883202814384954799154916835007398836004820990858469510400662808035181565991665129999518545784290230424038142744355086309509875160516267203568465302864584013384585154655012361417763303946883917756098144564067112551055330556795033376964295593573777559617722431653100461484238363235716681762092496730844406575420687471636808364153904760236899082942690890519095593093856197966888333738483400507208683609965298774700631444799530963789880477622119229493469041797845090860497753349881600016205976547861825633486059617085053589085697448188430594500235307612016169438380566638225707895461720540002518859444824413169915331723805415636766970400116038557997474125602864309399168484823593229179264521485231921965962922280767791910843279586208961897715379534367621039455944768284971181905781693893588333925528714478336848657431041497345794517820768138415827343454108164149134273106675527314028027360476655529922339159292924471863515211736650655766529448812684999106949567127938888368359433256763013954353990992366824399710301713892865506594218521709724572225297101668024795088559003753208645596520965846417414722598093945186141767961583146699272076469232339244582754085418000584505739968068108803363274027564535188643934357670738484474575848633283086284706783045092162247653065404113481559613114883891727495291452014470479334846719617255589428565225296839592836544051424591448615220192753621229373636971788160057408496185648844519539457443809329315634464897741424891789031805438341749275499145352573777388136475033122100214863433665314587029811102601674397931787617993827919346508824376120234040525838996874168027699276273712296729206851912650930123621583901998987791807616149512769437942360301732482460847446096224056872553479191793509529606084590553748558481033027519320382174176692511116998964125927943890143926025030789760642325291715464924727608318467403262466761790202707984669500810673155735556307113921363715079686048604858734909307751891320763266124249222951541723629000118991065443889390140637070266755801176002247744998818177143119576510432270366835008379652453263654052369667326284959983939636439376520005444630839068069398013120986382954645459667773088799865021169192289450362157054603475030661119903011400859837474240025482831238670591896994645221215914249920806253018802486001580364162895275120546241663945383874123587422448839911850734862526206943549336983957638408519409393835779559151787038664056619153748997319017396583515245621425607004900428053093788494426550267479383087032004661528836853363313004846572105764105383380841072789259811985433955778202094110777307547658681329312992276141090844635943401876896176374475701028242349335746782831976560795753632339663511086608892002525423421449349816509000482975969475193754035879382391891432572875322875642174767433119755797302044912192607260712626892459523907108272830873335027270911684687990628836697889813695373441929465918865795700170693423027276252738747601599062482094722248245783854176606982876589383445141632310585110254650453931061791908244005833388631705599393497379385581583678173066923311186694839467128717129709278910787130106957014651298391269116027820001188565757511333077164143920504704722522381524682094569758800142166893099226711424666182613429646315998949026209865402888900862302694595366738572237519936898328463200358630495012221182975029998190679917626578815542302856620870459071465861453026971097571488761255002437603708210402234649587862473486480255223295213979783241180518958266175480432796016054676429978526268101523980006721292183769727998055766286430565501674610149782394195661624605417136081063900466227395249292482763114388056490173586345039462733894275559003392927705809399846958732990781577852732865765502149517260747154255966811932154389632429723131089015341639423521029830767099479161376799930317705654417059656565894504421512475720904946179984201540702948335453169404715056922091726000965910994281287640113404910233278388219739015608763036795816858547827775924652327085662908317144371532846381310607235630200053786818305886484560003672822314764937373156256874708192558222136419441679339269588433055023167487485147444708326348519425981408371331531700161097172070650754809036275985096871667430302457095733936308426764964302628822050953117145189168431021255048571474788541848283977268834156867468450604060656284990284577913533967954825408615628618999239935973189941710889372849219068886569848892713509690211728634088552815610442888263927791269010704634171608716051092366236288713919404296699826018782080752518848983165734747448098287028355898084340662233829642770816187406244231019267267917750100645566536048419875747621335142835467998499099440134328220307274253035269191092137486495392673457748847779541273782271956855539433222521736321522216151861643557871310761939973027317026607280032987077928568874364420863198954685910297462315772432041183078417416340998221986765479185236598877955107167938159844199393164587523856342656810564903762808917233502574303695798528289032088287162273213490584780709824963403764872742318248678760012242784033651505157218499393891028188999502169740553759015394287582701532452074824445323243546725982967457613332081264490320431641840889826418193438703730855485946943445772497222412307422859738468366617637159808693361007387028457911985874527026840299704045754315469443384233411441927958923757993552391255794941169224030111818695518288274469068640855479308844489523372688265119612537423012848290731126744065302966967672785022950895585185400778285484765422403559706141393469102043330123258955852495541250303090442230824415375259715518394383901407265227777900649492885071917643625146940360717841127916370004821677811498624349210275686275493286497929066970801593304237685071089252069917756995499197168202440339737079960905250111168304217906433612433986195382627119429764803884777022940506523462537811867154500881419921537520291412046921117622856491864135281114119922844032691110831638208845496749294126164479807998326462023359802913215290782308601834462183487447438100306646868843614421962577597340693134641710647087988894384747894057139257183476034085239769335038174158744285081477572737050025326126819006862587166647223520817893978709708860327797243215199808696336874287924858931102130611445276114436723019456594856662466711240075981280404235210051650723480011414801828485392746971879986695996600119512768115300473090137502908357966735475124852300029565572122137510163663313323404163742663211342154109123223448832470882825526348446785448228032841161435663149342799108236446683287644313258800305783212807155186924463267369455360895240866315146039939441460511322024613285402514600546243561052651193442860894626544332999368124235772945273140166472024087410714665242471886857544529169779264768326034327978954459051034327042641894888425569166429892761540184385575459007136120692370733027180684893804773022980334849266455183348500702858189164686841135211047012816250863872577520682588216463331624441007299887530955732177035711944410562756630524263813290854963392131907063247251469434532858017127288315774843443699213365476638879787705522417509817234207889620588026071361436951836462116488491458518329527957298717045711956687020889464548705230427794570298914708665791890970981534605381328164691827890577347179757109316442397569596254707296069260624191759775804543367323078650705803014991700040341446479398345275071466965610523121546195981447919666686522039998097357453582503931830884152044995125072512761023433991228733305727922281154996644750060275357985203726083797177695084570526598168429154800562491293779482189378823750134899049452972104609430079225480004714397290068683154333803770518948357394869895160456440919899902040310465838755963497187888969023905934548952487739576033519556781069850885208064217148850344350764624625784015007229940450035448136145054386591560496800716844076832898827466426447856390093140689431072810249047126859960733191857984455142598200543408635848031827814230398003936129612345359575976044869417027391375957641427056594414126328190772139989437283581770844496949426415264602018231596040196288725440886991363133770539459873470499322531597887221035130443167136470424205059808374315566004529127174636924105492750262464548740933687257736002790962800257640148456285398111401262284456775042317512681457598314817489870790371510065041409561013017052725104365182327202365766686886538921273161684941815808768811414109814299251759973094239416501795563185296931890379921963653660814453974133192732938290272346391635543793192999821644867645479229480779888782395379992358951213655000080381642891736875862776525011429383443875179691310325046286603976960832173064473630731445876602624786052543631088377516306340626507427423544778909506728549068262705859669738684361827592673405482499934033934169113932874139812330862961301004999996558759794297210842308050519083676138699590991046917983464463198364842011656653481559016658031475515619486479800214283305422915883546971060311898928050259442792294312559125791203991588055602037624215418033818657145146793343803176020845692813041607631933122629929508806077227244582993836031452929660949192174170701487519806149821829439246778264632415774429397883403968868376918278664234138270423722775686241617116223454064915235371027614383182242906316900389307453184989146574573866222361916621104899578449815495275945816734998694366508888577421820832625005787210621827318012092857347770087591557883270925315755094483800228203781983797024573272937711309884162579904455798350287280069412596121473358813739212596026182316512640959353452107922710707015374609628133540890919761730763925274617075383680132850587584253276968587950535538737402535891892132971346916243352023040979843000741680501866234883343841283347997465293940813595504260198424895610486174902700350340958485036554382251747390292575047474356681747764056010692861204036284523510033788834667339546637844635811752841913447719757778237327324779504594892504505851420449282646894936443699376839860323740086800538898926354341433909535650134140229859113282091945380210143183996437731839921791203104270264393080800163506912110361049279864855357443403367623828808915724773111539094168764906952504876804827676663143488647514223977333230263455019519423852615136536253060666564716519167608648158551675483641988174443535123220495240618124468738225117431700393561460412700319865552523670319043821932614215205244459429344670224556743229195793337520172016553613607585465321028225958503230530607995906386594134963480506286604285628790172444937491068343916036921907427395658482879272320606725000009506723860622713011965698851485975669153148692362910398701024081373605555262914586624213540846930379471424690532645989969273674664255504485570934269873187172167269492071686741611161383896690619205927510817900949480713166362587442168651489846897654717288624124103616477604911539593668605146455248783368266479927576713551225907717679103630086977898885943001775079596281038844079730279691579737672839295559050313980985082740556989998943782987692410544009916021939232384447038429467825274363117612855193209751494442972338471780653176823400881897092886129832574107135709359660724491130376684076849756299677764152637356335290456032995666045019504458923878401050458121580099080991783876850236434453205461840410321189370015464650810848017417768453688968625990511186631687927992514019605245808728092576750811396710693304283500277166008202725074610892081990528449206370953118813752670563066922202029112516566426002601565408461399766682075903876881655167738014887297880313280359595955104950160884418270183553672142720543126871647556461732248049430946025497303314110212902530221452510286243412895166033037545586230087453366078708040994395616250547425716353273660129081116852751765145435095530430782526439217738471811043789587295765128188204630091019435924468036035200281996329123117228370269393825733186160681593346938918971022456001607274538690634744502899335674071900159184795735115499127763518878032445835513185031101933075246740670908863853265523192789980964194025529400955602284757966803129870806513058049097229937144933315950294699539180625807021590670207257682307550291102137023471468837373566010351678935813480426285572770072210491812475116328588574983620246596422389715170854971752559308853788302801847116448653884674380253511959755980299757059008838135274645805994596339403107609586069429852609691068073948133978240781734352152755262348551109955733189472049198592277907671222667228805530923652003997099414341526167641222863440564323151860252359623391570018604669594173467827323252841796099745490887299207330701323249874126827118661234250694312837553207821563634204023253013244907048666639612434955212499551781442702465856025394969018453019911497731715696438474620898088386320011183083452289844882667704096234330793135249131461159551154588806523735033150396393220039088072797612947433749215368072276852060619262691969032642442667609285658347584096198705302970290964199491565615916478234423725799794005797222098177445327227499912713991530154942900367096812089578169741372794260762011631497531889563543708545660586257252223265346723363568719000831927164996365624640753137999976961130497036427347269118668217653260729966719351329106471506709581775814070314822615901816525012897836201256750090641774306058000232393921836149755224728791210859692276667152846344023085357010834565079337330040746398976796682191216024965303814034377563579545519016668016905321833408761533169638272593143147758270894057234266207881489246585432290877372471272003761539643086068214667138221345841308963077690073436526958350146627773843823293233283916102386454329886041586104246585813759036727519899153064779907838299974247072506990232593915966267169861501687669398667102651685226135341533438746524093405989731572910725969194819862793465308207517826022995391373906192403143002869174989985998887851640944634785941815761688884776508168097434899715084701263815642336129493627228529019554453746377804136301077787362996325071468427889200234120230152565636763160920209849314367572843411088735174887376468403054050347747042577583377936122416486784045781976601042221532515388685725987591327787389353863055722930513442655001344137992518862452185631475781210833741178571972427016485102577047012349632658035991353961534337715931722373957279378662892435751449342618974274669689867307654556599323669395435411566575394874916441514625561967035191780431530847248377162120110119863221416593091336511250961065723306874351970624697527601455249342170808467249165763635380150544702430677932666368363042053260141078792149209408393886787163642399201367637780554168520354491906757737422797455454538806497906932273352927680623196126041257807037343205172346828541600065545189867528081519779364071038163417997901591905614369921647545171100491022817422614621595992765426381312533651764175399044053726603510001885141714977820670070199204299971570445327164347466304535884518904691425550473387801720203820673224789908117408290412998447676597340975805872687337357371975175148789688066374689155131736557331945811152733601131378831706419033898342738758546993959909690517254428329547603221101184961184192661501305863328847071368448738392985378892208282973078587022319151387798812390895267193059693705580363919221678705756218207477450578319607960043667987914370468329002392134144219439292218717842957474685728652288372559943961879940935133440404536297469421745829952756540566217759658355195723214837146748638752770839652544935944065693655442909453156174333579939596414187038125226214873746581625668345684961156019721330564526516105808417595547087860351461278184912088120850799892918671470666922473871399889321087771756169644416711825723248290171646308274423675301792839006059714009079826096881620571788104940234790680934401242048111182818937525587860065692610527102682667732931831424601679998141407639409577733507257205941300571469012158796342623102587277345819393536872072028887305651162621460047904055012136626093149844857675430627294131336038943141627494697071858558766082122354668788650939738014566008004976534308596698392008185968349303065372041305780914110661311138776646212209341511697169847566953524990124831148761056917985601734896812233653145746789596746359083789524301380457071396608468556602998308345428850133472909449277401192585166137005343614816422496084106447978932184672255136337815548011082787788038828487985673716200378641089759183017849741850321386741415300589812468654249064026337103278248102201652379819740563679605945223483145033223925654250392946637850722339006378616196057324146275560976435203028743978429077359280961394527937276762824611121701485195524670038207111032363771507669432029333204708655813618627590545892877387245552349389195200880608031790421634099311426521904351187471940335057873088148455396912282616771083372401627488462917190107894880973997060867406741826119714165510637188668868699721790034131673253725628909414438627873712998196382593669086295028560432421731131356884445116236673136012746510900458698356277984530899623841048935684906956406165075154550442818597115852666588130105911385946912504948573233272970290172919906132795305453377850446862126365745583121026674427412972205522174408657566769487918501015597361100983410157454447046251206327155378636382149830242964838131898274066426488945941173155842419232953238527306652250038918755742583670427011045898550393789057684534023260113772513855572999193113449273503360734298238415976025938482521624083151688195009360367503116312291990054756444849752279882467660019901148861951420760242558997315190753371394660499182677618061359716277633091807386728919078026395556382993607104616949813639052677781751554076725144835938584546341899863256313232906023339385097603564884199751502336220532777869020443175055164251795478846536269830497276971244767430639246991841985338898568156520903170805094084442422736792175844278987770523917368196151055787283305758883835235957623191122455012499894598551016397500458542746234962848810666485642240887149001207514237412405282682086788880767174756433378149288470608874718839794742503060531820331885999612243014637432963076345842642564414856895579908692734593244041491547038784146095462084035006833049379814733247335049284779696010948040392977532295328102529444236001947083519909796415150052150022804390752399744732853691113788706276027117438401589576037509170035529411384399887287292091971198774116746539403085236685258852413804884066353965581877394452449218125598503283274497154800939754423336101234827238070736472593450679687014869365657999890753457367721380082322153971033435816929653151894909133211043445188981923471478053215848324032619984184389854123984888889647589240263094953241917702910187696698374977727589124930921220872617136259004337379877477582010191435499229015322736767662469504864435812842819730725323647667100718149727329856390180497225126542031693031768821778220833691712269606694273145095645207086152027827113593344836378826644994037225823544696316022826397934364722413348824127503234332610452296850209611574725987765336555529049620228597252289781013701327915580332385822726922981548037433204054104888242491292595173793466900167748314953540669108823060812093985758625773576287848165430056043737822057995300965186150987492363107409311793279158938187923308375774896907555098564610463441233469733303533022258941682107910253469238364924332875084455147380758238316663276998371142857346201893432747393196203067509625816094736679155948460726749188741515586508516582847695576610142712802943103180558032251551874258911407532536967659356358651226902601341682325772133177481989705499462492592906247780085581361430563705305392352362793416860936601789709592684370466471680304526207270547313745236975778693375411956538453748136580812288106067690882933021199356215080086662783473264614627349774127215050854881310856783786736634408400383062180682819555271132518114840456483866483354367506400246590568119093210172297488544978874784143746805604888767016894824542295994583150300400471595984296844235326142314156294802980845492288077708163200702683945893756307413283156561163467254720244892636450878319229717377944690672665130225942398435776906166762924368328591887985976850203995546019578429389638105207811290873720520999122103606314034916641500563155201204175260928106392261595755867052570829174091610339380043325460572487985085262736130694115187741148448974242091935993757175750614754782353901771986090062915948709203053980205813144520754731207458804138073547374884640375638333720932680109314672159992181737355811306586214233136705243711493094261679930220992887414258566249058122367439095302321916422797811501646169654834950466946361279308905468209159472825876325307755363326499606195810829986459852471049166207172566270812895957191500848462364429114307714799136488194217873903821116468221497534053291038036903322973694443985150776655046680020393192189870965334263576525677254257794694661126490335002782300432701104423030514467510044334348851556188476328283833217887107947335634597775470189218831541299076886550916273534260162702352910391437052824698155683158740315112494791367373118826546610478648344514227350120371871470939690486163446903351455640782695268672845149467898489578666781508356845808494055369221996726478127867362417352379794827999833588598195107560336807765040641638343815594124425364730795751168300975980616718241353979496661463569366093692403067777949802401006529509667092293820033525845540918865580362826647159765135791132456060421596312115929567578863439323516989115975672761973006111930591721487274473890775120114965365366571246938565046178108754844586773605474247436715281589533219763820447838682237874701679720534610068027507912520285146772437158287419371606129899668067953759823357727300868055572778436876789073910384915152115093471372922052222317061726612147207883231833810042780390662678102963390809089540125724960419726589424906833386378988092222313416339221285587842722595095594005397772520780685527328125376383584262875374748155914507659378289830173502125110548160948074057984687330718477635577611617839638490410734056531827199844355452295354986574950819049781490284138366239231943070401821680050707410068647923872136192649886093973623179590033387348957262443235690601909318969961715198070787365964693559582328600935532116269426958161959707347363891923359463612050521217908282597877930963583505555018820134455705042148285000555232157554461219457315340074948117194361489100503607426355612150715945421684612463065227148501495585488303569892765165313227023448854286137564450094566191400121167971714575203779592891043044595026560859248425916839304356817606670714139324272786804494567251596635657102742548915361511803704998487424770010025703400682907276539419847539173067094269457772510274217918253369348093610142413402443484206334871856052296057715016753466100835238343958174576611945793880661159374309007831453846498274927918139461579058458767364677117051679212647091014822109798237129948734289545599980549035733737085657307202564894709381015488496436667219076718010723770429399784418541133964149891289825619049846139004633830389901973698737570976718863599339566185526853391890603352868539870932027321679386521861541511073927055324417860131004188922424625432336785755912697136718030526819054807038553598705701199007835225397239925314235786726104958513634562072985211584918346731304361313447077186894261030392592060192897607534625452850320591156491878394524499888022235652324244964848038197431462863850984611286674374840793949377041498468131935833849522063034808188966606370406466455488663347714751042285707223174623286673387970697392380920591081855965326590847411765925211475547407956026898512943861734156451586038279880688959388924676482230504324468850188811524833177888093429385499954095633633854018201160896540791928413548106241173916414602426916977789561397484037566766050016231228332542453936659555491534031085545894148122426838648877846745502885918919077462139364953351575351820119469005911110688138820452073017799382144530390130874668481278261179891033787793199965907414811024867591583051860879565158598865091356512062246973681790139517190734054632312651368235933898491355212408091863474434154064359877768714873403306796570950381639837152092193310940229026986191388861780070426336253122851052775652173633992748532666465932207031257686120752892629430455072493290314148075780621339486388520103530855058102443495357286920891202859355146035558257155642690506155353249721968666550597099564619265234219923016436804459939533471622181821299719794125368861983531976762494959060327220124168211913480572109556115566857135723150326122990731378045179273570472505613658233258519579063499739532720219233413806391919654031181901044410724445353483380813787954021893939306115003312325758858939265230309419957984174068946283177643557086631797811251933557898145856764990528592724418752125286856794682976061260166657697837770470722348549149336041953231660135032943206596119496489221640308264181182324306983940326031903511378774440375020956909963998812789692912951708502865754468235155186470443388397116071975382911145874116061429347864016236116358060322679655822960712066491978245985658138680074526449473491137025772249628922692101196698533733715525763671475686438030471354741590250343442389385924536476605003876110554309707383467840530213598098406854826713915723138792570610974468627318155192512077981218716844491875662957047848773344808394412689317653070527707006325145125382680051491939074502549474348071779208116663958502487233866841418484105606712522104306963466560956640696996980930868813021845409412842793479267686159771845294894915038372321358660414889034440022915826826390217138922632034740555839960434360006588356252418639903650421171260742389585194753735679764446862732369262028873482015637244450311455026115501733368535030741855666376336328345588626938263651704950911167886019527547452344880452859230001336693325715379165414517347967203001402977082697752604697227143232449114800484152889834481942427229028959883899153054347232923262937180345915133646683720523703643407568261881680390131165779631328599303863302030787864655023578945847966604052441528062576423420439241167684604223933292359069035662467750029201317961892163045803193353000510818394042258357543843925946393458172989229517555963968104900163341999493181888442275760778112616308703981584084902390090908540878352557735690256521344653252917340440649203318148069594856196792255172368103886862115692205234566912850352135604944331557100423966177440406170236212687829824318712590300347282061739929422494525585991672187484244972952369803513681875146755137934025473204366182080000840130970023657557660462792108403918149554010889832473878682063702108926117811892965611117683640916499469575803247662441763054787625891015360981194086816453985462787005893896393360030736272645228372933506118331936480411202713946418400834615130013822019706979536450227895611201182354901141903912234097317512889964256839799062539976549978790757620776363916691008144955561846454333735568850978925885097215517337207277449546043166615176647954338167516700527700726113393439106632972603636682377788757349675309293819874499568584513377467569587623304955722524686889196457156058284374718685901407462252005303886221498242843133262891466861734625624788850891637515712907357711953287326055339956634831329337559823806955764486579964853552070200412866521028364514581209770401034276532957642155127943049160653252891802792386631785662683758041140342103631066645434381735376417146650810138090612210394928611084938452111603010390122753989628425347529154785321081050543769381437438632692745718872180011010879631761664911319147150421074851499486540601901313536429808188738560245190578614725847057689231774664510819602839786065925631014681788534998919331736723328307772669293314590440272387078770465866423105583290442652132108619015961551816474106251194031245845827108396431282902367843846086147220266599761525650820164574726822413980131176824455434503060782482491217943294848306624959514472949203464198577453982045609554673868854309091082375205224363200210771450373085105450839807350073843481047179413178562013746546898461059031866380457146985861353991762342743069087508448552033865606009832384917415925652591573339016640394970138371419606580909162894520216488149090556990357426437793582643149651410152795181274792520328439465874519483767948785910509054973692251446026048481571312808783158262731878804802306372667648237113203744023752170918764326988054403687049230873915505982153107961205114270084978478569039533432973581610577896051762922744018898536277170843074931865841513641428908108652943663323607044676951570819333324325735166988090303062267864253075142974567782227115248036886682384392677606763213303982879553628479066027540943586306418125421408467684174706546367976727652704354897591158051884322184270348297501159711553443581784822220056513135026998023439484991891272675672179044579283672338110387713446879824669134641857971238942456536939430622255371154898862849207758190316781211357579021985837512675139971000159093079261177915851385868181050207786401135500140303313649639248059555674252150045417127311155492580642838008955324573537066805428287826460347852514813111348987330127261952368996113232973215623814095715344019794862752688510959087501254394733360059054790237646031843053405802621799520697253809375127311343318314579609937316379663762106448119971442787736193503511519680908803390399363951138132890565149119667043660093150884101172195706900212443624694394391083728099953634229597650951222590811623385805808837726142547881205632500136624334694649945307810019988775320740038762159510820594122431578311554141219938966427001684269245231474731437090165868031045079090398577968537108502320043072492004213101917615157854331659361322221424581264745169177177928143451199035655874924214368299256435205007192367645539029019717973487421221109889368262200754010929342158081043533928865313516638998285253644470110819376852053709370764617871913145944188208950952937605845974646073892808269915262143108366413595215487806597902113419137990174593126914862513637672204460189753327802956019527933080867462152486515795420354610991992697552973272408818313080854036135459316927142928308456454488645183832187632140994958261073667363990071978288636799490856333771312544450871047917896041059679274633777541200205062945635614137066550907937896280153219861268688545758926833413709741889050827474843959647599414836323900081884131467937797861654790617746604901999632522326701462140956674725948637645197761900127968842101331759310004584137396280218684323054778985477125541678712523943915416319516673665889169593210278682827785195796733189749852895785453325339261150912829134833783490549415101821796843138893876715975110119660015954961417035281152083982851299331629032555962132337073993787947250418921301050023195253284095352856002445522235594754395978621660343275847492710270230878485799097249545402210655358486212491002097221576210445213408837419257172952714703087685973428194174084559515699269674541192765131438079998986970839995981886781487477586864833193027176850269294168309930086502606192257705526213694625812324480054533743894769193043260900927005303559869601425908357543820624388111280144341410488394820666387808682814185194781234695553640941001424099758332106399573451329255869682304891614860775029629890702032275880028162172420383129409075447554343090636994865743842354950954361925204972258387437475781061979216190394606171967339439582311017913887640376508329255019637063524744016379833277492699387922514446505304089134741830123167709063814211655730651384623563465057161989823223052864388715335253980397685749283158661937330138065804783065200669524688195600488414394489211254790474921497725415973839727132248999054728103121310476982964805241326341537928123005018182908933161822555652151562128954068425146901190841085688440527833472000974781000458889818396725784164984933505123109864457550011710452471099003337218366542492265730332732135057817645979980762144999049910330039590424622094534516025835460381287735602344683847013077890637904486086674297433368748552665900041897117505905138936135474347229573115560570223692312968820021918829428986240518480833023800194839281745543041075508746213968117806457105416773273765930849885727763319845505602663426642770322985381152232984381607609277976220489157254140580464090990114442090291985568978460447815517390090396077434283202785133802971962255938673965860801384138006882643716670037861502212659788552012452855176992214129966178338490472117087475912863105380529496331367401085547415435555180520416756750584741289385003641209712843716686690020325260797162848950863587730810078610293709531834457818414594669835926602443692630560721959546363680751735349788979943054113007448765131052525837788968637164578970826854144799130016047837271149184429032169850110788070506369136688691265302445637833683634814817977973569276867579610319613009822838690701032846896452844744883278029198022881956976503776120210851296348065171029140908452759114558043397336759193639873345397638991848757656828743279058216240384664623260850287039648502248311672657405711610762963980206266341407983431757348732087899390671274286545835085146897514617197181781353563751417893087136605409018226227264739039139882823659963703648886131466188077774589413697239614529994135385065354551978729536190932067488504483518183014146760957621801538850727744711581723264131135789155372773376381222320288595536691395464002056265679318366513567662000164271696292743307871126234346172089516325091779264813297475531206815762318252935223792548561600294518846272895076278767219987103166667083780882900627035190743062822789100902486407102503242450431857559630873105652881612601650621991727703022480161069057243898328194533935057246158197315492041217590270846817170681529046807285401491082599575776882586100298241523009529912397599034342287679674485631809685246866884981105127609537060565943052155370306473628591699060314227564910743982326783715490481462795905198023842632839571233812879406426635226051152927121566400886305070534935492144176469490408527849842942344969714369292243847395588768522260537057205746660820927142340319783680670438860444762658883037614017001458064212969438120161344379092557604016113086711465646529553383438767837418141629731425362060117766664171697839080889379881290233025014001599158855206834736710556213288552193127683406813182257474545130035869623658904737899675729876449997301941414196372021293207249076330629952498111922328344805041564173143516270870237173058015919164913648182278711969606433793442086592384301267481014170971244511161483173457077634387334954166843853807512985148496178096311680528940100209726425464123655742391491224512414900164166155652720109326802985184794674745243602474522718876061512604198864840210726024856875131949005985410701968651023648895283685073335120121548470518562334905215059753725166423626920694224938438967769806000666231195752638786558343364876384569978989184825012635874872344733761488687311163578541296428917533379861226101996790171288521253668498216191768433631950738616630086496459693611498657090490866074209672058587775037380428594111254063730863898034916464819966907093336345163463952151588201978697310716052528820889384352649717664608242449150551977429127447238541488557187501126195036285753132484260179237557957598195215455190162236777174800129681826265274427222462968042503011049279921087167027733634690984521614878519391519404787682049570338010887703484170343863981313797749713410899908969164127892301727823554681809572642397392904997180976602041133150589963243528805976049373667472422654344259436077681830646965209629332668686302617022101060732488058497992208399916596409627356753119431678122589720089163481051725288095930243898833806990736581272827245213518198334789229187730244494887182217933844373119128657721532486978255384778765561182030463719679374564211087620477513793974788425736020185667174676112725444517160621995384520160136373107173913977888108605099501142309010225841584879651863426529343963771743374449106349741182207516082204748388387240407920808042317784639799089402139469213322212978529686594323684837690088391737658140369843034232695338738950994256252218447746947889003913803595029603336782965460991717787742867483198424032308793509619350939855339200356944022635752178052031063736903560025767895908437191494378410914136714247592040133065308670781646752992606639713942661853855012887477747165768894877119198831383694168620941602275859846004524123678541315355569330205698600715729890244663434189877761653598904194670310237460767091609298123217225830284871504296697655137903534688766679816189576772939856653408170476887787744216326678042736998462233940125948510349072694364104946977083546213157750751870058683509378755931129522058821875693161953247021309234209813715103702893732726820053933461225511381585488871179658950413697550640454482440579199717465834919512358350874141607364903482442060462025082186172846756856113139864417094903370361289195474036552639312225287774384133233270648989671175404778850559712980119665962523545855274421669116421826364332735426750089527979296241766706233948131825044222736082867152264336397132748232988170474102793126667574840638357035553038427827264876377773525827341312293125788814832455857745839591629538144208224669264486096756568936337375803212840032971681211519396376101399102653717590511573941184766529717913934298745614725027949258408342277758031405892557072675678972235374390894248823544513758116617618294215398033218512788306024088544980921732061593338495382700672375961377694758798075175568561376676502895994252518746010874352865699293800003080016553864735702764196127331499027138063845973079533480071782084126074911538234209751846987507956452374533620573390749681341166042120990178797229918040425545216205529192218842847598543432337153420283211802320281048183269591042246032857581191225875129126905776437284964304273247533774797277189074438436574034591630582273709765475171402895885280402794136463669208322481473234675679807174518494798345757183010494229697581658183835845225845491434779550595268046253316384297294848540662822462990121559158312986802448905533382446666213232837722396378136790319970739862173155511444872471917756434931347430251532503430872494326159021535649350505859189869479496637226194749927284109155909117722486132241431763281524555132968782253824204295129088592484396582407072278294350524742043801854436837233650676600757043163811596432630709989898579962628986794327017772399001277939932327566936704904025484974957736495158708092901585347183758633338662183713605585360893594915597982115861473831797860761416161023569511374391539178297962262709020230196695265372284899799515151178899366831909307304724408347807391619706788900756048073144975537258863378380382966867529810317742894758379788698488109969263566437584953566735452711965617734318698193985614102511532199988197640667695066015410418311040911190250023868122601607095717673176800107628292850959955699864822913668047050748573037673704035391682921554618151608116333492871962812292742733561349460820970369128597643615566518904018933710365777351569678196206117863109056963465437076082296653528151532329223158575868005489002549578598745440068505677188554866063879933279206294961327585791040520459348338465487616495553772442968314826411613337486678404823590356999132768275535710664976094938012616041165439504680918540651768845904720096645503053764660624504017492688281012563764198441860777612908757167675172458116418355285787047335072094548213330701248340839259657647855488201920693595265505153140750463926556068835644386839176820668478458695196911911708654385845977336570236819457595471673676664682896916668101439527832371740419683949059368711849301223464774135070162504554738030390601165651100582923356506074953305587798516905288688038542513257949557280390679986976240177297073231096890599455521278010278659486836511324722562691559067403085092883971168660604218726771423708221473069374160661869415237402119338609228149636313244032143870847958659701673658769395867036476570112622943355823686972308849745760664992825526328636849859038146415471244918151823761455180745937561052818074808521579823333368616069890637155780033522967721885916428048488212268319952493997856746099595354316374822329064466591682030976218881145399497145950333636289764411226974816316341326233254797847353914617208223649247253620643116120856646990529806327423820963658038786488928811676827700052525111273595576550392561193371350160903858138558408125630716566186227813710945181285938998914925702632930867322136487812938239788628132099622168564516656859101611307354247546469555397888470457714394251105883762433794569845766594120885271779646888956748190137434901312864635437061363581422127698657876697220590959094953291106046949960610081600411021991969055773174470590093697301543748264882205503252654070292426477759478916650830199948488951543697903481250556428450407291781576387334461896064792215175242527987887234448468432504718816073565720898101824095174180270122179961338709458591256556120838532348584051668300087165659283232468974513221263331394827916146493278636720269051502570269613636212039529642478646798815844863276596835647268887674448246844452651873790048730702233317279568602424953003634090162434131657588010166259309291235857341380260624698357777555872765697097625536055785246720480138307200899642304968391812770688125131916387727175935760014548569136858421118656517317419088916338667120765421499268907660717524695743324124682631862673038805649057652326637893515847709508198853574703712926230166354742661032609116256745341250657977009668989476829956414874405863991554332910483611272920868791365120979940873617485308443251671696338979988199198404153325731488793391253743332055513387044721406056913382189002161900593958526134685448103209283199246302156248115519356668601176304885486797599528911060089430201605506679875930483686481810494949615704994739246455470944179600579726412887684235891049055908225815349182111972199498931829786347474154311125548832272665273883028039501580844716820824923133828700208578675925436457919074005024737584836728497319830684636105558600312881677111643470982257060607443579548581742580631742712822313482445806593238305496164243200965368312805267151404514516609082454167761096872595006077107342579577108742075752065731004961330408963546702122952947405745533236997396262290097268032353002871710182206563363545070762973456112773859458463791969209181661837279173173771531692982891362283116376178832211821488765039433883100809689628003633310162381306524925031154747455570331956882946132509722890451473507497182776255541399488203957612257563644034354658165689342015898428191774225527008819556679926405694958988551283259640273459272134448467019068114358647627459359835379181539317121536901127036113142680869125540239897587931674916188481438346446500778783710813030964765932489330126790059394185965137621812303943832935418337384227968588710350326945897454125460174116371404999095541900734526728762862308810084111436341868426147465560338459937224094822790317512319085474563214119322869293849810708024549088246837745874500652350512078198156248583032058902820598536402965755013697682454316745395668045571399340026825916578587954278786067405922872191901339920809968132247959353142160747462142330788832651012201630419993822132937241055434061319235400066049899773900251244399329504131288405481050713861489313028657596418109901399158158138487653839021344931309350405596516415084837264361235685262261976682595092849094216343070913908329719648332264206092556000703564255097786381685566621478479861775244657694599547117460742138846947516333589978155589239616551803986561704526329551620734642973424337389803659650214219666641071307684736349292218427553964779529002738879668936242771508630052704748619179891073914768900485169053304203087262394583789145982483443354312364554526943814871063002618171749278523198426945513272754355945307848595329715849910226016478936741783281721134562616861108724402612394916339961627930216042730885029640615024330338930434128863002112468548944072164840947010815684383008979425296452618321114724289039322377420751716612403114270565796740379149647147676114863540189868021627171587125559217304790620287046432655005550931499009152288894776269983962674703540477270428003623042144870225596182096876962304948748158754044356186523068879725102513147314078100377837463533179411470419174571096168290623312143434627865593466238861746747083040721061447594320725588893434561184552581952996147607967405366654434742037820263922530685068947062417630992907164777537270190360808004746274992698957179797943733131526255409914479841696312563819616220601159734917286218278306645370167974913651214829242231392329804576509835345166726632401878580104037412639253760088181758505764134762266851353957040452562029703249050950725682330791416541163793702275161853933247911801263532442577303949181379376688983402207777927600070735188434551453636518071540564652306330971605956994783561785658610459271708259699995293710078360734599413370090305812036612674294454966818464563673645671377841084797352752359405206162372756866295619194461852051513678616466415012861637019291767267573311758279335889371875690951822418868610330683482423327733034900056027595191360226331048359955601117742862900835783054218504774887922432928241658937025509626423752213478804091029061737986868300397242026044394508766002303908603933383016535855355799456917550638258520399187029076929651486700573651327911663464458322526584387241462913131624080508654132087214580955799782053815553174248420779433075387891396910384404565514571510980857186172488492652779710575865276573592741562086634485796303416207469858104463988656092452284078188923037915199578002736328443819584702601307338714341150340950088380699891987259076238428252434491324909022013837123234072161040188813202169674874862031284770688984839719644085083650720076047166325568468187448944336100278486530277806366870274442637675321704382458547712038355224759316808852349223252519753879958228154407063261559965770789972138527494845177795675094376725954104445900797226472607642063757663215396094477051558697818438149540087654500191575775281888956565926444890145369193914081735164265481350024009109555787235517752128826658248697586377432627169826274632066909038517581024731257181390423288313659906850369329772490587213369821571558252359650715910248634979306301486381723957779705201513218468825137546961883239449790145832766558186446536342020193297988686164236603292885947975149085642048374875985153951700944281110653670116492588710962758243898025393121684776068319500861227555162363144546803397911414416521396041069541774987778981009253248002938668204437612307803442713148181113483067166555891367948980367622333647408297367554836634767576283774845990660278981500494104150737078197535171906395604468817893382946265561247088204642248464294174037411214385205294873468922033311302026658709824016770983810098408187361628838540868858124186082848966537749329604289884626719674292711598091289567115868000720541626540578116932428523728747213778992639631642875680973716168430140963801160744368853397736806929975365829691498738620316713179987586609499076306195738215505741739243915276166462991469716207240734905444023874436043262110728122315183843836655575581216801914815113260475096341786085537033679676055414614220360727362906226780459173342624120237291566840537350946147547588822976634246944265799634774836702855367488859871697957303464279199089119251807908130670585135567536066393847337271709678011023603470779764972000471573613582134525938738596969492954186129970129629705410983400200480958612730183571162979629284581337302328946740809593830105330716690186489450979219549763069541138267111733322208582053073277181882727661209297906861382878438067640875514343275256856927782929043654404656786076529716057241076015344260321018571211633152246793650679214174382710694524096212473845440878204376752045036530202180028123017928668975452480520322685020630418985161688832298104436702434037581353550784754404963925760360313087659641102941211216349889208839508265957963425633221074793779525749055129618491730739230027086229972191580615084140260445033732413917420112043459638605057030212355689652441599500379047164660597032898909564106314257690774030892429848108820517778901450917719127430259844953792506213803157804287796173165208063715400332091616473998442916178548635474825870652842885854228634429561222166285132099640032879810124209281309935704154949969200140597405437166604853084829368531591347640816229526582224999486764321105746628635739753796365993525685839745301512058370060656154569225071700643685886960774422235122984619593527554744959627162881850179414133079936715385135672567404059282606940660355323393528635982973537519337952730353714154949068865150623865945250021061492068320619140847113700906311931801901452391342622228447986603026645510739431132236598519047269067364266886828400384980230118942518107071637557371829965537222092496909761755243253751488710514968845266902082878041548189607798289960291419453610896255031472811814047904324673259765322807790689888848294137419573662468654595377124559257814477152015438896279971007474571067063755736661472709620281997358649012244209988554949800822082766254336265141153475315544855591039625062040770481111044946271624712219520562342280196067074849539208886370276338419595208953113927175824212551408496802821578245752903423796636001583518401486555706421152149520990436349947905973322479783043439090491404493533911061697966059034317764451528346768528056437805060758002720485864863485931397375071024740105546398685205401868530153557858000286177759299408060248006424565411991904778264355421893232846537584527178179543816586081923138211794504835952781123125834530278665117183016551339618860503467136547904207045054735556940362368396369441458046596767496283245840255184109709978511218336171514334755218992290049770949588912879499514408383145231763836977818944073391773397942236482101990198439622992131106120291645863241258130469343472658402957807967667737979335258773288031149590568656142139550700495874761130387909639143812387728697811482164666676275410388796182207801301458234949043899545096021753857925227010501161123618628657451831788435085590441909079653568304450505783313016876665780414341018937568292473101046546361576629627154804756671686941853990878864628782290228073305029849319037401886098335681232545951495123551288585057514935460505246039215380759411665947383399133456047929795513125664512946449205033036027822327784320995644394424567910886821524437286864701519981526995840732673686945208162675357574693560130245589550249155616139374106596762759772922319672864168713465648267930782718481025727664320717888740691365794830052626954628554002810666970993793752953836129408163578332916439741953030163061799945134091171697030470248425953211853708926776902810587857900893217241104075853520794257042669317903758735257936161346309581276186824932010300822375613676331901775299586163955731839831976354943583708142525840400606664775542895330030994869044660023268554639754448250735167626824847713597071055164415488014162630811328401942534989570113219985062924833137489049025918165601965399432466367207192570643716590506235139551737386808579003218804440061249736239495374397084373810752577605805369203533343966474637661271403535246761332216210216119675797556389108512892145507468000412304541103247487526616721485498814056148027663376182924983167010056305531044423799651286602216942963589525009981244816158492064361711081900701171690219988899290421962593266911271531135687754901029203747031349012863770363570336585169881149770336208365816808458193201074102182771264903582616300934766377235101877579376522838905999283746049173333847105991912965782945648085235875963155801582072667391087172406939422128718885710392689089635632384734687514614291005801934539921200715455677097863185247819706942226890411538715876910795975575867706034658626158585964308263724716225369616940679855321070487261917769711124214531607525082382391336677256277229107560923265267489822744215206354552936586501409582438142245432505391981984085247073195245613726953915504092398063646170040840337457817356033783820819350102494878501184477907184285607294028804288856306551926103754790735048090965277916979487343721549091636404092993201580151297084100627724822780383723011013723551336077700741110084983974228563926499498089933070286148910688143620762710673430831213754901987949585229722729382377380071379945162885463402011211150711868677122945786101493368693430459649284167274061818922154632517336136196061696211020216769465789969604437631855524734101986075046329147872020328127984132363700765452762818245327700411275830346723616180595922745191660126702033280285193403517960783849475495762121691077756971227116041168857582939659220675797169580174484884813645064349567770049228351116021064764054211767301571796571353456595464798076939871844933770139358294487078197214875144457108550133022408906711496514972106879085543548367579160460918881500136443166818182658958458394525484642090919969589099139163715425937782743598577731569979150303684457064428512374309608561066094848501977070368636745447151054715360979763196388475793598685789716165661875003718821061260075328616592361973140293772658491809253869235979726897296791759105565644130923112042409685264769481664237798241310796354672909279333461802903915339895880582945222831168802439626470260455637942118591047408551747496074450002407374712181080420320352448358550717440081470719468266310144947509648122059705604795353271290761654391510737329176908123766682793212085033715352023859175036653295342754807218479973515486000408203414910704600021791993497167890536811982873542179076810318693078238025881145996540859664496766287323737322225752522448710198849344087389965978029749445415066789412814532458649850604089857525525654751047128342966138144115693215747904574619535383788962704266514288003158810985539225627238597414239090539982208452943121709463796619468536793969224783160809952080565152535215216093917365608394832176363060116045750498915903149459815621854292817151690960470965248517138523893287134553331887995494049312225331663088824558750135854573790521247481329783218233444506966096771375948391545885393685884848793992369748102739084803094343785688017639872682768087116253428484740562769912193091925486702911759773263962146508177552683667348702968992290415693526375963372309647596792099844370664129763386145848764071834679364212511060311855704710155732051884163934047855807241197257456684606518931053827907855628240144376933010692824296215330323873940584431065303186166297352053306284594912878478102124869221501165006340777249745179552829519248767370380987059482235933716087070500439500432154908098606888811072018292376440973418238013264194697772934229027163882688009040156561271842201679425808336473118179884079548429603151820411138648061334770363095545235621541704155726421683035378749946651591467830230777257547113736785795353223783163897351782524168686145239621334530803730350033687942069626289698896675016374865387662952035368185325127824723812997258717830747106969964152407482461663041552988716412053469713020311456605066432603615537437187439229691376325857309942066044597655828034406549078714258260790737760817248112357420187799895280898872864781409306234951953489876617017833040328264043130419406451385289952441975207526650104154222906354470012986959087281278376661175278542977366792404046087087563160712610420650034716602373704080420353304138063833330324039548224782007160210353266468831083971248841199323462627013042844689449272492680730480399399371632460145972625890391448630301106104309211818891167960001759680631339515998105757782017708412766158925423787953332758477002777541697716483156161216557102480319662354848260100964194253119421681125696780192345723199062868136822290008603901188470948300928969592390152102792856266767747701701592510277648304143926965449087243033201614698779497968188074102780474720102588620120850424916243628187944126404305116346130790095699179040412156563359010295322009602665958164396037749719577321245282621256673142144290285024879133742580409570503839508801091484435060844540076017571580667643444091478914786819883500130854443495637910628734625282619056648857901270135218763841994491036311552188856052190756700425330171452839860336282666693226400479997075150940914334099240168946322628792462401054566457871606353805767132759192400247299058576575433649060490033066728850570938630368075430036446631415425358348992033763770328944451369786559576093558293697139257806272400253898408940091344911015614443230813503399056249780030220053490689677413365303216130388901497026944772695898831493680876035620563198564001193543355473229824000402358969133317907309067027685484400669027976325247928767463776175045192680297559001019983307190105321286590040032011243675060106129874563328188788149940109168751777025719221967168017613480048842744235088499639378753164072546137391364724645290438670155236786663778953144514277747295169770992233330061135088887464373610885479854975492661156641945645771906679831440160509804462174920757906257328991019709441669370593102104691655900289194610814697495197699620165250685604956012957131675522362253681323772054647211574000731878501124732234027804700574120682537524780970972125061416567942125453140467777308885511122171967545815974222838327347978703519765431338996973671234820657730468451598423988620530831968354281999645899284322342209106642134732629685888729805813333968166132805986048496271395447253402570058514257564038538263708734675793805323106570181207893613646344652518706047902978686732305048437844971286814588727396422797832235534121839873340316681164316679248374234118201415385811755381479770950621348179647453758101852636487392909448252706949126150914104719869800250690859643574925712877762673195568143426541059287040876337984623910274195384629005480515114193179075130283095814848222257650252370714474061231603194145461570008594801878817211321138658085693894745431872216313326258819162822393292683026976963141324334291733031123456256623591214602127405689219913630452751567264043900605746730286293504438136410291387540649424493597764253742184045954490820009786447041217899516606554688288847608983252063000077868105073991674033223891420064617835794916428999449800246034497760058920212452488420016893820330552033615105230961912036414433736309940075794200874009716429123988364132007380017391059203458496859631957371974866020581120758276373093993601364255669387076903117493115558079009824874262068588763403773491764544009451145167085072170733539320054173205556420328088323879247680284871281684141950547337087818439095980462095922410680904885046409582647528090528510413907661100478947544683643041564353016493970416567144915504929751473992072238034283525020649970914162164663112172674314828798949317539691742029232012229328588774444971494156075938332987428021497493990530414998934341445402035441441762057181435274761642928182309385718506837182612679638737753991110798224659935217676004715577065644166823564137983480853748997019947253357893849237256998942691733165795072340309605626801700892712999104497228840772433806433631434976931554109422949636037115577712651949194084809328183986040466502942198888019706843110964253181307060261474457796128670675476151835863356396485714382712029575277620632352136812652757576424821751283192078185293312259594345520467241596241489169101936258344896263516470540051952914080010814958108403982420898371587519641386082405291746038522552607506915894283199151989835444968252418563734639814332028810818833843885539472282044091431272242614779338029939257595008618853356396913151439681879664463019424117464887243086174538004031984959407677020016161570593603997943794711854548113312545604212271889257861168100259439859167793795824681172931996725281370222964404881367323880797077241790021175329678640562739928010731951865805223189281410392823011022688029426776469222846027889436722875879491227741531231406078800895828746160110375546291237367313427632222894771582328662593061675928268515737271441282432976992634927131427841897637051928172238974635755276001285060422062592603149705075152419999639796615764778748459164550643005527990627429624858087360257998160304148716382738327055488974342433369719087691668787679452421106733391711173206837813735296592822137032367101374544117211617330411710999690327708509837185619089051702607913127552212165683835538309380319642053714663324074990151830920544294082917897104412304904035111395883824546838369656996889152505281321869527229351155090506036393656264230251748067219628035533663004425544701676564317481320384791420725611137334960712115909146359541136379276525997605082941889647419918284287071477825537341841903487522299508399300028294628787748084038708006679082938114766539240876452032004642869459715253473486031101384301175141643793298448197548534948982997911584846928282898767039988518956985329362727829410232850519346073936799036492803713997171708127099757585368854762450446665281213866323188983032401705448295641475384519187044950077240869368293457645117218374539832350160828347357399223658910757079597162462999532785584069189662820706029696178151242885043981429472339924337950214285764569845845400650751957633803989107794297749780531822579049123268260898517761452561728524538514010844114621378640352111877936073649628845014118832561402921986790014181564738214010672425562088041119535576575264949326217811431498281046311956658478144120777245698570580985025618455769474528703160810175575295313975778319952104783294745416677589798239785233962416151690336592874141525108676521848927676649860851647952309739215870961546543009585617140090116152895790683484111181789815525670241755342175123810207120227874139063814418292325221374986624960212101379987729206038495382542246142946192549350085779001331317770398337915422599545466833921388938698382611905020580830073277505088770380632996709407453475659446054744699008997918031182749972730090830620139638111152631551463535290882665791536057810130198005454343159286884843260180204407929543927835483470481294171299298471608161740684245747332955388290815279443129155902131843825849405769998219084054566454620500812533748493132340862926029245338422465477055359193575676156538653062295924874300770459074543997647184899964530250604628950713239428490044006483744244776903211189150616025002719832522484959678999762744294426912114889910389252582832545865178170755354089310079057522485213722011681886869225523480663730874052570350621767797750297955057059205634465810363621340660091651300638870600341858875315367733509297970145927495911127573665014761237727472282661646443347596983116135394312966795086282229880354430226600369895473808578458056858997728399848017025946120283465760099808459120925143913379710459630654196320137441539609426967733810465006897658078159596211377590707046693813053583367096074141866509846025256982704409432167807837617900724047545667425972976812688167120739052275808462479347034160310065715947728548061657387788936769383231845751435146126880530316065909711827653724773935019603881191560487369284277983106483277969798417871745370091645075612995388693612892562587711055137610130035156171981891605411463283721577707090322256577701533662918587787852338080207861436436931003839037473430418740939602124165395135354609751664150226443966654181600592752280283104941169294062249809005030393945521928551455270815001365135945357830802463853454269806266289886246372363655476091665078492376603272677569693598485978294517619945058650379581730767114094553380239468446292995442895853051980057326211258503714628277801539618237463519887824644026431679639199763195328514575075999298226623959643864014852671809440905640982982475715097345052646184665856074555985004954336519049656963183282445699820222132601023962789694941358289559062688686822303756099230194151532662485329277983282863710738053857082531244500924398461274029180514362794136205324664153679087656249029012561418369618032314262657779229708388500255433071262116828271890212026337436290445773153927722936615397955921277899216775067343174113028379374806388817179530843026989272028665067828200175548354820251181308321850175144598835055564343257586834030984661912388800495084309751687123126730562408941827100805034147975471130708868172702111621647161933642416741321849320315356645757431850070108002887320673962187467252870400740726648795956858819515474550921279652725977604933156568838295262611683254888481950378342584061861859877793062629840820778860443530931628904174458371590487072635664856399629979939843286773725963895787453104060241126894741969234791021590908913833606049263337663643352083985359604328428143219578722731609717943793564874661700066809803531437454843108354919514707255159283794935289911165877350285698132798354128734204815087657083574181687434920161959538246157012828685917170773585707635065280387455208666877916748867926491315352318130439610294139774454874152879093138324455684412292252716350630191141697085618061189749578729441615191737929319519676251558371851365717540031421662346525050733054469549526628436178828295536398548810267820566643066691225733997555386430691875371513757665603096275859865453681690669769603247483328233492274110043626352543540028215794921165815115283997474842641516758772021570771876297516351722845353839858448079479556375765390052354164002486922936763760283836212075375902885266166810708619519483207708695529772330764177420527375078261857512769444066368644885083026461496972224864868701954281897793494680600602217864426847613263082804956757338578772661632584270004233584078371940592529706554869072593763459193283051318820023999763623384855314671698557809961981218087142739812777712245119895594551242692284220893425791220176903568833383728588897226185619233889693954945462976458706820406815483440499686391662699864157494020441700424905513133366330952404078794285548608345942452993315097464280134641161910216091859896010690762591507257660829172931315941930807036731285135257193372447061653706026677691302748507564157315541386189198963125223215873513695502792428858826986148730588699406472679097096986194889299255300813070814910860094440461704756849743138628939915315005619909029532289784609162157166054010984850539930516161281945463295528534436487497170681822911356850379071380743763250072518065200883044382075330149382370371412625935599703576451195977544380146814540279309811819140960332627312389678768799919651868403255555074400606212563396575088729595020685562436361900315289912953999653067448702779167076470021008172075183548575115649229887121857345876569540435975630889304610938832366447763217394017490060456032857290395792164469144194685817175980372859018676663323000429171244961908704621484341371305602905535656196222520198446706617669418965639505372855500643219365025627550899197731557050157960299760921194569545158942581247682892765851944426995140764751853150855645751649817349148857648330675543489901554624975533340177741021374776245384050796123523184593326064069422227308941881752628066019240540422502879310242890313148380076045963483585302339723360302784925835807586904130544970466541698585652948414434586823628920210962460735804666159625900420198979324990001516799249558538078500967927435803259195935405241050293287566990181147088559355779500816837590390974816958552826328704132147615918174948786358139515119057035727115292953452097054662000558222568462051894558235511261922354522343725564503663893718295790117860220717913342214204583553887283164775671701955154574909959987765663743680957010390756634778698338268447810519234145743879018386179044327855228407876918829271501015480963355115918579675781287669074163523015233820655256096489371396252094426293520679553837863761229860695920416951159227633997175574034650367536230113123459040287164692704474908174799111930911999295093709088863611850095703168945207579740884159125253831888998017358909075027124329101035585545166200269663356028973207695091821598256252044491326626744848170662734671558370033080682793859744415746436531093389839111136356355262122607954933569832624414252159418571051373759735964287223225660101977280812033654276926279451192429769562808920037924420858237527903741515855057134323829187385068989682519716794033464841642275187144825147159971283866954178333117937490534564205307175794513390695741286059800963444403342185774705409114555930626242411557814048143538784369438395329791186275865951995058030899728284521432877105798608250878360201384906444002423121493983517149003857324380386382676531846432986831006070493528228878187081708146652438443851256822325120793171777262269207410935565265494085062865353461695324164036850014151560476588334373052914423919212643391557336628307232733704271834749620290203174201574082120300889663640408289085385642030597332367244089974719267120684857597102780249246508529309467976666850875856393005052144245366043017997840739320015814652898349910863288708324229815708323918149860092921520556971495534275692519436885194686410988730981849157009735707100362045948903536633214164951681258900537256169712382019981827401422736880847439871289715395791624014773240963623296900371298695324048106723746890500463029561372203421789775361996240416562601730402263594513398501957779588484307583979785324562820281382629737468806759940297436764604523147759702982662306028567397065625196702289003524780191618007313985499353773888220411219432628980074189706466213776960429525239421224556011688681957768701089648162661554074652415968303547700031221811765505121356566422679647760844701671382751135106377228493881018273119061399242352391204185703810910488958009151420652706792184255830869687892569009833574195952914803911902605656694411653785493701715815671555404422259832926931847176999660590227856208133391233858140782395418159271714728957892219798729122009378305213569787280646041937795292140719798749543808228165921079328365851049620727156342288059220284162956226973801969695681159308863986518409497987886107164652764985392419252443368770928513975745507160112743706710745981028725643927305966970297113441259885284060714610278198354120706823830062167502782268076775494526702486580679509924287501211309626478942034188117911027055072313828290156909623594732769360796378895799809076049991022800308405004989112977590960476803383419640381779971781042973812567568360456666265350698264049727330718688749962168257040931316676003726871624940608606853421362432182025142161892472243657559449157951241643463107933634489711279602763123021181799730589091083309901997413075704783353270591005065481405721990504257384675171808739200739205279781753603000674128282872679549185785541891034386023406795022172147414879110095714474333560552230210451615604998515722224487586228723264757581133696536537149283677194390423364774340759782139371536464600196406873084050909975031247792993811755606382502621090326340421719134823120361661125800489326828908612519283570193999520208233885761494257998514652704452432255636557247321111015369147950505836129450230196391489308219000799696746370932666026121406156001509770135951248002898144583049232742548070157512364686919679609758034098087265143804633250753954869105697781603664284282171235666721716180877364104561618450577008191813384437242949375220977689132923694072947493656223465883747193145183051713696871678538260197648827647592254673763503170082988460883183792655787726957013715314629197761052761652928301571761866227546709803568855149641596899895940625110149361321190644663111051606422278434724272993962490850876864883974271972933611588321948213806868598030352956458289209177808491910177308770659741926439802746784206220097290299021810594087244799558458340818605273851934722371213037656737554334928150749351459157664855250872049730158332319604820248858321797166924821757372275583265768402433651799447716020805801413465139108232616048653597416533482397799514895431830428902102813998283275302294642938367202604017076276126400281081821649378594461246002682083587726988072793548583070824822900747537548945585285844968080461718894644995850985106051853167409977385353176352556650169716559770807659247377903710125260450385955623624877360428489864845867391995729936514168464727091253951238554802975431499540461239923110199579913132423564873516406864873698470822451484336220104853599339150296776662724501113959902338885506093047506578409015825247610334184801692021705360419416633501268556813347939893157359965820428038106837529361327961383991648384143958469460122367177034633252684333176584555067595532441859457103803152977963013798344395309921905724264566720628996628818538883935820099158576127483958460621896103888468404090814332380590604794254250316978160701419369581761850404836843111116676347087981112418425088403384087866944887354461437817651392741595325903511115261422856081009511892555282810741823153309196234411144203559796738906885382195375247570770871315007485505531385560218241187715046422621702229809586636361810600381819900749079381620254113557034232338167075449682850340740456666193334346197742843761836663496337877882120523244968931889217912868997031199501419411312992300953194817983167427006543923612934242902742046417326239941381519508477174934355782390537124040218264385899182461975663015007904879042406344539840993842024497020672027526850232348221069043794084404316396124065647311417541643192675040475512248959143488227238956760587526045015324835451634274915536046447882638530063785697356102021944747571416000143871594108091916311669953055716812035400592507135048464183572754314913046276304509255079708989767266729403922606060469951771521141038491963804992364463972829458944532277019534725648325649955619343649372508673813001318652288821944685650280922121428279407658844189416639392817752579098504713111403409874653442203629383475094449662583000169901217657182866632059241662683869101559193727722457891349095043152397615185944485144512419676434918499689717657411974466569030606282490034586660279865973956357191981845187543144218612096958887509951954891444338604349899737591950263874961950786569963396609965807424621361285566710240345195360207837808795492900701781166085594304243687990353852088822564676298469486456498944344009929157878783099279028062144952274772365780376205599482159935070456050797520923983798548267153429418899447157033101306535589090275296521929459907194629682597743472207332625292626021215732063706219380008023600635677495195288192173676599474623388255936803480683837689976935948232154647426828509888963269349351359169672249589678154764065420886452464585723194455722296327609833337379881549152919357265846496310613377794331299885258266793037408382513468593826957495530358245448679510761422836473256943159917251047533894830672281006072938739397977775560068090204596275914875860875019709277621199480882722134833252528985903544907705928347146244739760878715777916777343393820236707328760925994870995218564112396295519063760874088732158124876473732703220641429867525947453225166517656650517699128227729921647485375892884345125106129023634706046326512506926553573727392512868356218564009392800138889222916410996027216429590813018119976356933065546938121445560756038959713515453372342575994163942568519496553473407842586611665382330456940213255454847120629563591043569547099415214624507765483779168119012189938864464280909338454353418853482106125856158274190727524794166997416318839727716859668848002419016885516449040500258233366189030074548617616137206664530803230759263402973624784096465682174821563659559761622146350256797301339513263476726248034841348281115497991524723294336243059655312351609580870560535723961361386949283936341024652492347576936103980603808049807749275738989622451637269838157251268309354098989101476603906903268189022347479974475108245422796259706765998585233993025114762797335317372842220755382350896198510940785069974321092469159870870882085831987578867618554358825824034558731994947048534002785586284742245988653098889856593905978676969182488292992840898097311915029741218144289693297617443204197801275440518372416127938552850480792675549507137504119010321012877529672587963302367563191990905217549091876753069153388500949219818339325439856839511478784261269455208296182118608387617740310365643182579964782526090295131546667540879587878915453198607145248736350363364159613973491808498570307590033698658678000957388384768581739379964440451636331313287205397604251859194437880885157106947776269517498794110664075580152652838530655607153644147499188324926713854860188481699370812603001321327109369767912924557527262029730518431996700577989666413840750825047228241220992269963834738477768251456831253666200941527119555581038041725010375894741806434760326296071182162767789026393282577545057510316343189831852732716885051875347998380953232555404716170541473364352393241085374510878486273801434074085479484722336059808801233758672230693559696310939505153756058111816531810698980233126457310470686874772302636265585859896540450644316012142110915661021641794220694011441924199516616052949410063489225289385547412623601912954917687101629424957062787589069408381937056444039278596213880136935323819924863717272944523657263995847168371901221909724008157994858780664162741609424341142751682863101377619146080184232945789944164205445390168336377648070223884769808189182921751131798049646479451392386962925449351560895148270293237727319186683759483877312278422543894114488204905079936390785763487937018888812830234206289878022708083916151616716261423922044236561067997054842424026366503122585352304434132495527944632886721947316448635622817623561877862125665408070590300799227527830739889339885793260809046196542829302054283229793898965794085327411263729321863506565629008313239342875903292340186068392677987965231939652595943346814638282900395885349994897453993885224136006409512163539928214662716637489322618457020662265000875026996778206896374146663739089747340883101115166365148111948714450640683611628283146250736007862979408157136516352679998796625684829865410753028301902247291888810520643832833481999215186675262249095214470147241322544833448336106306845908879560673549394972297714458387194206383539516632313816311493579796114533289946263877280991063624509056141251655856134559448732595126384670628624534174300485635598668804915001991743493973252513585247163205686143103779254957496038197864781065011339065461259276217986405332661088998106141480483027893984134824723519440162230708190419119588033507645985125030107602391704095365138319251591137902216488443946018975975039450754000525898711706855662778210798300943523045359173811654544622810502744626774786838343885301483948828210325021754418315718354756477153882551078847576261102388390676691868055305172248612339904575127810665722260753867540067698064851659858815471886062846136072475678686694407255449734911870204505885121404328056180280581966747379087618275321241911839510669661376605504683531570505257832607167889511295989214855200968273343083335115686784012057256360333287942102525256306223418173586427233608231609702341355091403652135991744510338177833930936072193816519459119513902982098056283865066988165208334000034709416895680159472952049719664745013237096404769430168746322968070582010448038428081784099546235641756604805033924628104797772766688889801579541672019926343332709692855147010788660116711132315454120472421502303177985831864858985432385833922623915468608643668447090934795731757513877880843814530211086544631012137021612942799597790650278310228246282736310407886920036738500287310928352451271021469775500843520969932716088219574966608309569729225647000952988702269120129123330094096319851977725245904894506698118092384001313998532546745571904451697355118954031224053277921203158877573475789623276415894569835783292962334858333338202516881754014022965017832474879258657087178041724435889599232475487410516366549849410576393043434591134695325764090841024685469034881982295071783735823417750126351697243007287435533860900225828006309243836410558849438852038696483696368760940236699397492930729654956177173430459192180882532087345213270453357682472700700965942763436820799884197876643438885839188203967584752630606515382448299020315086933133531522459071084030609962390071904062307142442491359445823720015947482130884803050586291937062867288567444098694368384616823595614973305111200091800338714177346951462007621668086482205260812399220218650610429920213230427062188253807195447411618079392611430781017693999947687358344982829865137370187800128227896548506606136452171548360151926793537047651509782381268466264000317230883120953980885370891368933379694360243600500117354827514869178091813202450238364880030032893802441020395733006832547379570401109388891962692525269718345273592561479814524853500369170509975714274221125036116527799921822377894616724675858587612225296558525134553630925555970894011087875665294358680705618636269547366491824920284840771877679943829870919380324154943262016558555050001361439475486076268615201238518737586022991527883798610624742156716092715242265961052026683796388469588708847015477939279994010670813251499692129274272809807272182423629267163210200908024108484249610283899658420884035858990036478676501805652879480192763400540281760050693009468607614251879940126696333358360448865654641828288904091076808073235258887367276483886079762854712243340272078409119594023081299470811853812578900029673859065817731391210342513121224918122890250836449617373133081637458999176612084895202000798944809194245362665186561529133897942317546615802958158179089636682031893466784129043002428378147481152885101725920678038241740520444860904516165089390831100166631464274531659020858797789550959238747650277470968951178219110722851398287509969787846501547796530934379466458459972405182696003553664233234383932652607275736950183698663485677738865952536654822323608465440583642016530099408917307551556547731961420169343693886341591493742081365324529207907371630378006017180254663516857489660328116767619479478978885783733395360415798813181803744245440557287639037121517400295233665750102930256793197893883635954960338099330724067307567269400068114516075559919718666945868035127720482828125727273417631179928298956197261194081138264525090305424532179995804942603422736781967558567192231071038972321083561710364337126628220756160154864400091172170858828383472227633159956819576896228808541025095873626871425169070125984049522464843103076390194478146968567647920057619991464774731744247333863697877419098582424046975564982250466498561254632044554535676472537323169854038805215463046396717938321755880938060777449105907929626409762258547517311098067468395723678936225841148351654941767515741242932907459817953222370889501909832119813828184170591907905757515764609052909434564415779682933152363261194714654862406338975258734335031178863370198168786351628690036122680155936366494146784144716260013520062738975614752911134676340988149385852413125825083398380710606984720645898714042746851921050580500827849696314795202405630990683730124969320740303583555149950791326266972645873953351514729820041248154260130011026152022805250505917181553609291265118837357176340322435328804857768132934731852094229059935439162469642784493095327898396405279951325137286075948441615988196310108167597041505766870337750880299994427226556686652555124091651227591874656647985252686224611606900131040324700254715890013876621963652913701870113753832382018957235751704075368423684445343805393621485001447444309742058051963069457269734497901530840767441613527127643701776561175143480410872478752776086272664800834259594929780177057334992768757507043770908827575521980630881336149605694636226930083738043281856519348136211089098932616891171737369223482289559167611063771087226237587792333503247408679068564012471601034364356906371499623979654330742097692772674798668631949943511885167455599240229342299520358638823266239442589906990907319459518365621587255380509858944583140482949749052161797110676096094336362871420836407373218053280766847918116876058663233209257437661437062654161761708259105103472305471471454229534201697474050691647387031118609249065252788838887466935545386443821109527201562648668729290119854086442197854832577503710794395435173682779100335242515118168589451729233161611241614689044720622340143210863304576298302327270875150288488142646922477713658785738203004076158564065081677960723559028585012798250892306832136388649236529927512563962850441621792205879233031657061821630940883256223753526208090188940366377797405624959277883440989957013193613729966983977670867349889423758744298138250506514334008410258757386022276615431280793532785567320451293506082508629230196912843374206239993207626151659015331794592653561492775889342634260452155746177719658196366159924847013508303635297335735808481586230472505812452023903727547278272249435077581325543846176511696938128804694155262121116193626360958384637595967106298883579246887958257938918967984757787217261922392985253893607772853789465856003747053419996524145227667241623919976827380377263529870303536778303085625026270240925555134032816858645334255060299323222477385190149274316282495493002474710871028366760007435538376126530363137060134531186557446547532301748409300493535363146469862037180247259570125325942964328693649656102559976525086495876495227775959981500430952874510420596782916343127071017812397883719762456539917074622112478750939250876519395383384781706757595139092388124689006488258144678613473232173274264664664403351790350364447915407400198810061783605965246850318584816943671886897355148120625217103130099518851262409626501390539291877697194569639952407899218187009332796148012526674310188562873326994161125105877369677415186341069098079255557766071596271240517019574808600848615221041195452272284215949206247633673507107797933643161484045116405580884663279276483924176911026272194367365071209091526076101413425299107429685106223900638393978198238783998569209715435115723319767605242125199218851204865077178710767663625240922095155332094226177446949082384272495494730644097173470269182939136105305610179370686572621350036049129726289760006298323024472688327504554493102394983588937906686285192124992780602689821492142023819703467302802239054288866394814552900671054987859703339907133362236325557863677785738643208110324146838861957253582486953171814707994829672611326976340010544459826521379681538578799155930121497275133725092106557527124402278768905002969346324293227432775770861034323141024101430674202715952989455841771252427255539666758335415053708783663228246920285534562276586511350760985818762361996959363790122481826207295594144139300194909522737746952433893085480779959897567457663923722573179466093629457420793140641143268192887273364713739162318648798065723607995787604078728509014882114704714213612749562956471534325060821196887500825370783323225567248088187672045835381632288046276075782269951083791447547309466825489481443059561671254103415690698837473980100596086757327128909302254975127074571756595244822255953244880723178178867173320822565520829162282071496104565618338048017573345871398636570787890675902356775276099014441053443253269583991019377600789083065483476953303334074513421364690171186355195261838913261317647041301070617195725527157869976628295642599011434570446523824712843306297274221601544050202636462281491846937361998505278453071718564147425258314684634419833813756473391326123534761499812743136681819846200962901920610315869527895748701368183518607660359304460735430530118145227370693163595064354001006506337714314024181116512426129272320690225639833199705242959793814979210418473750833820415939725502004471072427322049567725604305619963961161550797114936611354755035229706632981197843519944603864672311985603124882750840967579838932382750656178159001382903664073923233180403229493317671132439227923312922837069176798073475186771731931677126457056418513076724568233166861229937564424765045388371784687627309792615006176538754957465660050727596605443917547635508790161187117725806508926364776830207210080022961353443831226401991440492616398443187525857359743183016368064163798716411230512385013531454345814760545775203146341362239764717758696292054326510931733543578676182658391285357729555958077038396691908260684121367750457482472960982047350111214303866891546597209171311097321940504855998754316449914223910985808354975768321272703998050606861939352945409077749941862026371860327537909039074721884982059409423911405916801603919822719921633637037437776080531390649248391721906244071924668693664354873296509770334935260991617427364056896222527380103287470604443837556347026950587662953931910599642294331783595161445441666518745832702279217784826102523147107765272205303848129856961991591788145941172574045744293617496779887819424760443098894205469640572136816212787095352963988405425669755104419225200208293111541579510775328149232721981281127020789938791894371349288371313546325218896970303131851157270404338932450011926976231588527952319026131196631755355359585314765621554040315205991544945500078183412427399482503351198403402603073025003477592553164020900952730306602333994364762460918758131045977675682387986580128365749595420755207889607587708408077454825028577022555738191265442803516912249768971277713892018687968636079518207650104497196914177791522839279833403091964178465116870180358585874098281272323020312511330026708642173845868887458014923469208823908839577023115404008405121699477928498244733431056625315247842306422249032326903848454109897785419276140928050074157134439233511704509120119471159051657932192237948332991527172955623296059961000751447827079909215825721017884167085029151368496513997143799501808244864744505169117004613745379220762972213215313960718933873198188055241512401087244666164697343935465216519236842875006587315966828706946145299994300644214475572733428940668533762998409706504636413402910946193682537439510251996165390813555161971104750275427355778635269248927576527446157296982169933290797376375551296049800448201551177017160227817184397173683910699288287648741885817420801557692043432378746450509974222918454809895355750046167431610531362015150842745348191033428516495242283013459572076060080479425876142649174131652798621310659005268411145670609321989652111628196850383058740505960112383143828833837313240162441459410828945238782869316671434430098338974657399074593825853097041930384172921974538138976162642157477693997189017851473224157418030044684347787388067033663014024782893487040908941898859042982502688398578230200377307559272076897448849842325809884749928576885392231072107214005224307445298246517019155666373502686989489396155260896250055916964740416960464983218828201260115756105478082483108845262596590570016352101190580228168843667577685386678328393031916718139787643068034496700123964185653362335360903648969842339954040400084314679320183065981901797998934585559617586052640335171231227665689709811724328365757442176270878542063053490762489879030472796483322628541837848462422437915280935359712890069420269997839623216523117962736306727269168910355108128882771902982907768782744304592236797929886192985771536782880795029940070738325402036295027073495575090957377098428266990270544121047908442892063243183678197348202383563895847955612986156223711300653518579965009687291430115257724206221622821960407744788886218023524980501703518062401287207841668353193969052514576118027748401829554608546858612997587846146267216442506183975601785806605805702663011312378805729082159895603208034357235553871104414378337391845100457368969815188104298091618824830995040223818604594057045462203350234254021068653984744750713308783752447661787306026772637832050084442382274270822404023227000368705401756660303027558615829714364368178895256943274279823915513147153785194531379988175218328736844423173767764227126946716504516120991612526140296880588303780305684087719256746972015216335509682749625418740352440721146404729635979607248754839564980119125933975263500966875137831466364284200561994279129414293522262646367807656761112051420663447009182520996590109715907505382596123248937669963494887216158953870212647787102142569423039468763086291378335529991844390910256172486589428845256592046466636796970512540703578534716100124343992998245859223350255812740643126072122001835070455689597575603575423387452205530606378118897483958336886678437168250539878202931314235759265256644648858973004687980434323621396418737419383440713666526640991632416149304638004993131136520654866993197620104383911964750120949884999983311273556359128076491464743983103865321668611237857124427077601491813466390249810684130528271222757144057366897506727348662077275284616887130250865311163104618472103589859844852051849644173952196125349797834850391162643345022316829067775312355100568312968657247704993614594617645116865854537255356900689331197782061386060962827305269443467149028215509314933970039393309077296780128803506494458399813701074992822114568983845703300602762259015759045338981701755064442898770029725818581036679886053935395159594872881423868438369361941320547372069675760477318214139568095963248775599593649536763320450085960080070741922005467315548115106484429070558524006786573677728882684686923059561169211310798258450160387491823706119883482694105179808074663099295903005845842999903856704883072757794158683236904797686378622395853444325995091060461351653247252729584635177994366865762569896132137088495667507736054074374200459246981041405342862795861288792745809286786158407010850215766025423054602783863616654612106241780432580893656457495099707958447698923757724516994076916594001726518082384320390636037928932506435004819906433266562936394472820453380069338335607698575130267278101235221382904943886172818822266895320440336396008324218632403340063530750320758845147253479346483515773352533692286348117889225821788155658386026831246777331626400093171184240829425707128834370868248233196325406260425496459794624372804810327629007885119362271383763392976743594818865692447512443498409259805808349448641648186507088766291617944416654052521924368719745514324301986429020679788619061428528523559389576269104400160781421026338206029682147484451552224186277266230753681103705770601166282871207123999233416806314998480530757413008508843930471844170359278345196803176423050026146297163824323544717323602428363666328913884415992969295451250957810501087254896613755382610988585412256755861199767241140523999373672339663950152797056587112893990238076293255152856837824830554435799897544011522006525293411858323471109869833137154745293996602078865328946547530290174000194781543406258078856523438934718841327404191644827690204787972348790253996587309263263462189421129809837613745439681992363425144363009852985865475372047660256030330874143616962501282711366385386209588727514807875855537599384187267582800468122573886412968955461174125456187147354680232686187129649520312537814740549101229247661832225357740128420553253923819341722324360541634776045018949344933080891763204916810627439356532958693411459344056552666857661106793962825323271108605908709859809305096487127902705987305170765026303330508812159950345148866520989583604183987632331475809336439910841914528513352170655668305846879349322515083491962203237608579019504737960432434635525445749427627123920696348649996556801222999548686889960016186454096203337765584178454422188546738731441119568109018030234909571488936198162448699328421181261208994147880341906415183097394144225418368840427395330800635402150731407416611944984223832084553052585434361634191445682287262152356877774391762737446334768556281060069083016927466542355135712473478229600299117537112796583233448207781098304307652420337363995406988771661967947408738342728562037799370509150082491699654566974265748309849119870225616024355314647356570264991899913147791419280023702589090292672650035258358740529212454526204019509853428573182899633181584014785763229288101965970957185001173282899028873541934362265781678610505922706460221980238364635642499184980732863993233424043846148558598199608852997181643026112659412804083185462912453485471079371899688814099769259025494016713754474402202413268895606037965114284340424540231482505029926922134326226594497532505013776405261597520227110592069920170702273540924625867863742237145989171003557449315216020336908523376248856918614986187771384353650960516861038798395959878188642682371523110811218217673331377258445830397613568426575134314209452273427423430957672743342029167043345414463025067701309502882492218768832198966320125588862152390960276678266259842456646175593365783289535879880244623643401535784956506108930357823954115765199566952421852513380650325120405752814615087270266440980431089171485459461370045107832015931511463917722084401175623892013123151495422326636155053449444135720570823878081156227276299396570203730527024706428370287879036461220465367903809031537237326867238308108015511615566331463786734063715115126325935634887948564884876118584795921814407416341827251891869106037506030979483482021542249474273433311367941194513581517661307805010378250685168976060334121824678180045373258662492325720856897771514087710580093277467679818149940510142135437344452990617446048379782041970323231987387021719465642080196996682803435094265446370024557653668333935406529209340072559565392573201819536346168717203081107750046499819125097860554311565771087850717022362449296519201441773742534019943313171468662237899036849061168824679978942993486216449646614609019669241102246141455903284245166732291282665237317632837649412012709427579232137123111727313221541575417701968512873871395433903675708275911546609840039448726097006097783969316891761099095601123415755626409715150742081053245911780002110675205526453102929148308155459063222010603532837862718694289995936221389554431440259372216087875009904059340771171726260635751193430340501986939407938903519436404247002158988759703567197634755795514999691116447473648543688309774141202491836991590841538897892036804323913993578518793109844155339275358285519469427660592866604899792927553433508713460080505328590358436824881651672463713863184717983929649650575484668775050610682977913145376060125880703792069249824332154058831369646120830542551439550352087233373749491181898428909387230336905703325563188307181407130458081916665508900123701595316435460173124701365714172102653140287675897353854201947698137524028152959124154263674888602114249385812458124816292574758859702602487625910673587378081371835625899197492358711932417458103366263707028193439302391608942697318658553288673015446338211121775451566731503410587461637980102911470402140025401668601763700766244379307080385229291060677741391436336141428449579897323782284705439944486345615227403170040957368410696214758615202424845664732503891029205940020332302689324994087105823622987474911014832296560800250528102349549965523862886029033965957836508582861594662483331631733911193548175441203704787519474471546847318060217790425416082408369709093423659711579931135746695091532426389010686847905354704181792249894861040093532806560056844633394495620482810155057070537123157115891405589008141912253794485000885558053783711734412325600249611931112815602607649259048054286350582464380179745394542876791457823844318001775246290514885243628711480493477578332859251158519774434496897156689363059566727510731861187690795832227573169188275352667884077288946877578049474993734299907869074112001222788384344593417919204034561568652973864944707780924388666198992615644283115355878597382476823076626623061530209663394268005066853673640850813033738634300355710115595907618734784432981847036426136268753560694825840872850502769787732343856954977734045398133273655411224931632939156834548593379136199882970273397645503769601614612339860156195434631530361964527725733519402848449000958519924086899258014491357221855098095667185280231612445227427302080582663658689616572580125213348746217665546748126337439121324582755566786142996991952190044238329195156393097069720045254935640737071380348822077866647287478493882118612217922283674399908083631634459601111165260363152191702784107970896677079311293606994550371230438789636105538952933408940326273172604745969457071615719105962592748425309200504967916729432511644656986162649980128136590176289644633144412399238696315354436624406116752225229132366246945033168238335302324996743761012687024781046465792665290060682386141804789132776146986886746703613703095679125116347800785455117700587936662512576736702931040989845970821545304409495825493761126432455383988975289290914301121291449156014600503767943150293566685917831292139939773882619503786724434330051435601937778411070872890320786082766767073171150113093600176036422302177217320803126117752347755509654078049516545900777482190237967735353213632480743542626862845865238792794609874421297383974175928620273312285842191643972994402178858188671556437309881104081133408794588742328225927346392809246234193585822163839609669323573736492298819697514037763220951738699911135402910779104449440482381506084807084245464180059797515966055798901739737584700612165081655475131988830080237273701906535952437185440112207026731452540731688597808171825855443411373578849016636824413359683771830270083061651349511031403058045143712354810468218548416318095713128097280315718613886499343497526310958039671940420353545099165160000578268331250507682998536144964949465083017575830046081651605030430637746200499727390241188184336538986744429630222589682633538058555380965911071749909133202673308716973954407034504253283283277888981674559198655515062709945075985783782110442600772764933336653155767873630069503674894606278832413734367457206791859222557454884377981621805549445554313100491566411682537082101235650399406638340458674633663336387155623012864699609739220837670975912074828826346216231423928481526985062657691182423700018308267421869312685796192389209265403980949846286820766608422090106831011386438617041583798086854897338710237808995533211347023053553015010072349149302935833634576881867597541620349344862594457777784250650003110958531472044978739705023738859658644052991712982038629358699125847168040140085105381443244919058865174503916344596274446641373070598240421441826101792618699550004767161895059989087609420087107169928141147152665303879458696777999940450324662582517789471206811220499525519849934357023536291373930655248118515494797404774989160400734422008295259233484733842481858128657071401918429454446132944508735190102231392427705165135952151732454990898247868878101891682397724387066878813554755346089679648048442369029596774316369148647155254208123257601061534109603458853695561461651310601333671983080682206452167624669097338120442956159763601989429616292773843216331234924835156457827830819185158292807231384695266030476622317387919951306297610561295344513551622124108789933259628196411047569003414132101782522273036606766510792746304757328612141234265266974874390086759623135776571070677288489545074310196783255988577009805490919200070726983468935311365194337776903133237513412366321737674946097335346266533934987373226746724269352744360966149891735209623694266337243960790974474293937811065891552793429269579164647866892002742508389538656085406670047716735409631353644634081439000147151277563256787952014611569709610533497737145198509545835745816395239786977147570099187536722083727703732720272764573792426702579467704439733758524218467160774688299166972569508914597989230987469780207778156588714014894125542273545937666625157439867848680466721000596486925286491321189010379973767083573189785167357771288919698759108728173053078724410360662631588739129168071816325895237871830219100787296675630717301783243607837993782191163645349441933567653549593427671654864382551317755917138335421519503366292823728719371895299196524017533278530741017879311588518913830144691016843691180805704104166236685181617580242549172322926196324071486430978545843192271225895323416154673966407393413766073198676592131393452985565639052408466351063013295148747954919090972202522752189383748641754153163892844872929894678468879312814954284435966613573544612523263409671480879749801668100874785197259118277501584190126527173492447752444770275432953028389139656942950261318056664690550666504634613018823301640715860312073743020489643974859120253188539515395078048068229250360376587971649174679425731474284186252027690251086297486536157803690790340813529115613928526525516045720781771571638469213406440041588815415391623123070461147129328467004193933843579083255898928168788186550880529064240417282396994750174785084338160410057400537703509372129519879269657300756073916319587576640329939871884411511702230242272920551829404799000634471557835514193888384921442369532498041926889854956956089199801454245829299581243368021530125555838420702534907937350383697824921122058585517725429750634222991981352312315927526639721325878173557857736038198378522404944959335064204558733483812987868312653211628206532909191042517341446432743824503965640672488143052755790776271542040703626187146469959866848097020336087766568907704998118044079656154692834651229300036423187725409465788229254312023496409577944786606051930232502681362998752751435310150161583816879192851928839872789359847832457142818315354446179830502435095256384052900358289032466993439865651401297052476370549663811878361241915790978130792244421485932754498606831250417734360281531459576263037025491259751636271930740155778210277307876603345386911718590193497637110960901937846077767327917427515137560084964021964626309752885074344560618309773123818521655807191855766515411569125793788197065738534338773047262417588842176849503479281249519144809599675447527037749434243140481915249207043347626132221244771829574345090238388221515335868299231026516030651626810433304582236012229861390986109977155062968360547077192293146834663428377842031099611848893426439195422214987377521622998819684633886988924338788280605361872862307674862780181712247796890376383695678863633316098995339632786485852178315428020872103338355815152938157481243884750387791891437422928831825467717880455670393767083095430469320919482901459543866543367186330605038990647437881858036158028990302865013855378416212671494775661338023243366450537236095331805339616349394625271964879038888163917958437475229809045139610029424970090184353920288481996190454248802118078530786948742825197598921748236403030716793781775154590493199438744696092666241701388536085387579018169480997314596459724003838092824586709025603667513584111865348032440567780843747562092904939273771514978173733904468088309006274641567327561678112480369093469011663182394616802138795633786502541958707310762134227952861122425908807088543094441952342970715846192592701220817988204184439904544976485791103964870705337358093119450575734307942326668430503009678023651371623035430456317821829134310861449171439278322446175544597011517534450162818544758277889677409979176046373342902750203532086138352714353487093479785778910356376259768763400967931990063520928244593387733541941446830736617953331741527211694347299815959046094301455981479083729264300728919062912692775595569837239339110075624664192564357302180644924280084262282091012766144912084953674266945217069925462795245436221331809826081662907075107084368983906565742770491376202808715635224409734700545357067857851379592372016276262630476504019473886644482270686155318488880285113693720380677665495316207917761130240237798225955126980933061880840221365288010150397022337894954628259437811636892476807853087192924443678967606433583446724875754147586725889155426773920350883471272968301301591324234932917314212529474822324230265915054019355057492443867294019919602145531291658975597877261314953359053017523571131169856015449757016590438370558817740978447889829238539243507037279476144490791382104723655016816716667824411695676582929949567376731948409445269972875472092606452551955621264119081098798570962245553585655958252111863977238235335407040805795088537143989232833766893901891605458557730686195525204910718601385241841422377547405478371615980953333950465532853251630618075718571474641509635073121288458873168169292029461277339707220183451011285666079525278202772226701611487369992959312606722428701289574244911718468511414594669805546659318047255116387170646315391757648079515969499218000322140772222882830812200284205384780986622003625063176118151916858472572859031710284642447239503320239055555960833529996254442398459577500640084061941765191121184966677667402006450198530312939719103996045078437981348757524555748659925316327882383825524761755993205642768300620376937716615394956996658262380976632616123167228436214091150613355820440472630476391534450377763289528284200579077656335515206444280303293069886536295731457924645000925336726624907435092277626375021599772589104580032299120050279218618920379063787744845266655521204821359900257704659610603377524283974918947557793079835689318312227993501051802431259561560358325945028997496651137773465257933812347622004092482513024434784609421934509734005464103789016868631153563987034566602122969110238800841015807327999001866239487129076096832773038337826578570519475953422007666354358987923832254985175497570547258155234851764843966809368390289450471346392072570807863935420301069087721354580026106298142843721872635908118474870639606204250789719240862515200148952562767090837451787183420258931427471519881779108468988862718182923480188744242789587148623054187232227853283221644907102560699671068758167081320816692227766152402899074562602967556877463603511342328836702426629644843113334720249726032180684292479989865293224392570856721260610100617557731441088319178625205585742797090789435390002922111643344761668181542262675622715598981515738339150829273823915573677840938464060103178188261592715861497114805387858029791724957997479586852998584291911220057102242923026175593389160854948171203362224869529680066796800834842594089805001477373967542065510190467975188111377332142197646108927259979712324470019208450432375379758113750463702963797953338733448587464139266743255241976459588924637979035058466736169267105075768125476787028616857159780869646889314230705028682867891379872562133047280038258839325169851207742922970017694218073418226453697415573689219036456957884617493265099440651910610337484711680604457661078254523915360775866560876568433699925458036045780815298682526693206748565558843921062686093397484636623981278347033685875041617417626921837993193212142346308060272862356381144844858075697596332072306296848880673776574137007190479980278441238632863026124476956107007187525454061687228659789509921142662049968420654964739483717309626683047054836307377596030373096841247808438961834293689131810865783984824925972019058101372619132980499265564156870673182877899323049079523863626078136215737432872598910047804005604114475044549154263965235795251283781275203711416722095613451648899389809014590086827995388551880859615438937465744092739455557133540305551557239305904135316774964170323661013044024308215811487169578063366928438736805062841977552116812501459911802280455882013159861737782061630871249951594287916994275285864343711326056854396159302647248486140349493894754861217716248957142339437591977201285499532623247886756155173126932105406115382106589591304971202712515238892595634146346220352027519160548146148789477686689341905581014552098665715811588277435710962759571059321149109607326327226736588621194150605076704651709612369119098539163999862436553329777769163861869154071666648799475022351961209036335483484725510523917485159828386568574676321644245514252738718800014863555940627065770320470348369809309952928766635175226411896330124757585363082966305304225081797073502377300025510466498070574331761609147880238658259968894947787671894993510390179073199320580398619419830448652050826603836704736458954810069974240510664100079703670405759031784166009512209567553839628820536541346846356753198609801939429307892585260012555254878741014587171067349816001338716153917416861357459977774905962587200740087408475495404016513048002395170438176082328328164513768487959079369511358546175560494870591601158948221609272179303738591354335345402362487616669249893656793798439359202073263351471852269954342501235686125093326882811416033430353340893871638964307934140504425169293247293990263430753883163925255187881292636392223237263527675247834851206277183738186011668162116340048857613507442392470119392716606477951799849171007501511653870018937672484349577726853348811854957373822010854847989650433189412408142026880728203088947785803647807351027441134943676956801263048215088828948692571476155058720140726883293163212664585001677970834436647484416661826134381581139158976347666909368790711641813858378359862494138658586586089541501182861143485607819153542494571850012311487384655838801112509614836911940959353761285500441669604563271462775451321350235515644064546912629198710946456659590279229052549985933843980145788531341595871730924015312701151888002417670316127837622016438305417495561751763579474908950638010311189737717519682995940612354332727097132271377133349246963857452786161316569158658485885156551880645279651884090896979756918356793765573899946706194575394096470446415707069891740368562587884209379763422799208887595745161741726356931513685025785780811224881899136824430297702249262672647830152608765578621791000140861956487510775353718109098962393857537793449011485548622197397696203381496070325362441384690968058998513804974202448550817694685824838113515212081538981817706399861810997732179128337332441543845586362535801665946963632330215613980236693381643204910300784883026596111322624838082079401797126657002610249576116702146861479686884879133174941592566246686057439938058160266758940408715261109009515122409747225210747976389457525620379341441983554743248419391491138876513017667327343269377535318063801644102505100475215582302815429498757610882366748535640391094175017296501723755822038673850608810995787204977858866703378636736926658981370812822018319210924686364911077801078762013945895546142204294854197864125435952571846950340406802414123217821430290729879646712177478413657246785503321832858228849274055650358290358739700024442040894552951498248703802099212675989254841915663953738431277212854434593321213811219416455226077058708206971521506278360837068861104010943454064895680899142772049593548422279514091994897511606311413739804356653531894519870992270349209632404234589254713684803881943260813157265132492495234464994894395794982328918942350832639275044180104347927642689335308795411795095899417701351091534358864713713309902830750702888793991842068089395785228467840949260605897679800096739379492293778155380889319852864257171486697988850122080509954537913994866174608579846585655492751761017314214877345081878968809646593809504545647479180121618263875933065842060761806286244772039333381645840712992716125212785914398399716753573009126119605018680952072037132997940893873445065361577030844553667730278316724539799309793020372695342080079064225061415920645984304923308331086932668076025830345780048713158846644555327793241166011434450737208562528989864911215956207088140500854002789599277487421707709171758585399933270636969207678499120909118298729159868979401424074000991344102702866882193999374842890434935099644854847952405420261485752189254356572644706249205778263680409960204624827424713495719331385237821506772742445243549797101627560855407773802804426896818029355222184310210750310465135265455850538876758183195411120250777562138791363018759618771930100784483942213113738023091310633498354742609285141719116635531978459827290550519168594101867236489383040631690860870367655337651632480105235034246513158960762286978017560323015808468846926371078045998918433205798341568595175776753026882587080793416138641813455837747014697193059839736395636051354951518707893659252899442074109531068398144326437123294494333200299661773184054088557085681952869276021291870997595713647147774193055371533576474770455843326036835673984875986228498766131812990305334959666687305942462319793490360535499108533855283162978647560992307581427664544031356790608912407685233330253889083755283258596062811956751964362512379638364656813151910693185886716622386231701000786006010834458195719620960093845982146144193186230797053479605278245962178494194459649360327435914352093155122674919711041230405666158289520376702651699743307035882474572672174713503775970300478323180987618995910136060951781151145131027046048378160937840477654226352859220379304099742942206079346867961682145306568453504798193652432346435157028006773198834456237649843237547269885144391882828126489440444910705319964397171717358058419421549867882485082157008643665265788767317691271308366104348119136831022286361871214608660341686694660133761135155153005182703698328542631829929571378332410902441575791520020480900828834066257632719937479941285155390607939020325079606107251723550234621688022564478027530754680752075166533372450868747406064344329042974065836505891447764710535769528301385601649746289288561035943288773755044667165264603865117912934504516818503916247540013003857976579184031871210593389043293423990432242058524386731543835378704018889884870336243223253047949604936693777091611341718735201802303945887296064796071993369788339815118794996473043923685220621601834563012904764334865191952222802450263299103324030917140143962222656840352743678781417427596398845775805424586731943695322221470842048871722803140220435877140825467192897783726268837894580730447569483283403790488542906915271016868487501267507559995338269081808014439500806493484515168443552161059598162229306370388367227342959384510887164069438202854313457127416221346391866397520552923669042079203307709871732533386004050583786861944124371049081854588062671268126132037449237348781886782811475667489820044186452619518548442892169783199087638463097764860138949374478145579188328281764008215197577272624855245712851552309308969916867978272586336772914809116061773185539297174889577113055876936171620377353628549167679549682641410947671791461712677574933251125888721273576397940339076424104738508668491600094233199235298434830624485440161121836437206163611342476606109632308312887554848446098919366159197201031296261121911090113473617481064078142966624158707578068052864487125446717885602844863224953872393857860379574141386214448512636401468778850350796098092310653458083024595258224013043333421636140693060986120088356460785302843208287046721762803192824531552673727161690883656905088300042537075293099061224871904225020874106390640808490479111636116617838930471874821228829287659720032881657558373089995297834930114140244392897802354033749000604579136421114270888779875376102319216018748529882815094556323844272937441965229497552178933392374365602517117955478809049489204754888296514652823038130371227366428179391809006194657878060500528617487672678503955166605374950409409299620608683085774533477765226186466304550173138629947903945737553861331634844605065196546748035844183527253178965272609972337278590301876858150141032623161521769268571836971639977980654358180777509011934190063649735475728022849964160872795751295965011902956960556212597788790122542954109005637937214866884708941590981292560971982170094565510589101159381371924620666315006247284490863442530667944317216222052978469831131540608788073657064609048352538268598426753836885218457028501511616201213773579011720450312467175169960446007060152107182049693125914550579118858296504553401187314473056183825985238556312232682920322485844500013733773156657436633579734968288190706080341261992773697802667822968426048335211079377659450088485602670373148002629048316590361191303484782459333272981618561457973343915581215173422118489270528521138477752013751725552739294794875891459204215023870536342506044839247518028840912480923654300206181143074714093726939260583673810376490961375931947203527912846651940196933422482431453536791860364246441619692934216479345293210951646323011870789678463211849478365077005833994919887609208171093141325404887879322949046938727796623680587515345143339461028726595785578066223559266516740210506958464882107572128126453562940670375394121808624249448208804265130028879273182178585208930690273394406603052418860039898652911454224786735717044660268367212132309866380084335925786718476743318867192311751927601871270623979515276469704969013321294082305933715651673368235937543905946929172777412494789704356102545046680516722839464663728719928661396289427172588182348612895900978614646191555003460738297147386125770747490845397019443648360663891808636624401493851238188536504714649057535885052354764124855387316436815947392279043551892260411685628797958324528021820936273983145501829019171639859147604528233068001984986198612843053623213169719833988737209506023198076151666020825493609803908803254528769641245826732809667868904928297674220574922021664205548047862525371978823935850821964756811959422449880905696788620452714632133979311880546458168781668576843147023458577425546175336498019964926725234617937424773537654482691014518478649469537383011443457024439331951967661346204152157715786958729237182145465840450702163731312265887480636912612507959164338369938762275675264101924221721437195643025240008299949356705322573643698621165373280934707529065270445558598830441777106631825553505832837568629657125374709841908913139983783926669378630758875267883741030725716208717600268530125370904402353080803650119959889029619888185660292252978711007161023054094267729879363795160438010304874532123290016527251293503490715586122362320226675775690116528099137097673924245828568411292349153822825491480830337708195479089640076689312561694949071853704097095956430655338375356090588335860852356726389402748518462295736543200046873383722210067955195185958844262887019193925814772945804949822084842246549006446292846707961384404769510989708956453830933765790089747425483029401673285736472281860027852763765674889084327653038195699185617677764530763546388952064160973329530535366014509447715988777736247119946543770146652911292008376404133266474308413627226081069841697219407179133709576449167209081601529054851295747085710528579155291428664110974652409958892715580601673660564673186054230489502795825017449538498732722422289696681515137572142002454584073657713585043967319257624443774114662625572749197703659138915124160917432376085570703843606468759311495580693125173743705955992900583184143995538193100244119710151827521149595525079102313512428038203801414741842317694387156281713901141759724310704671319285047100719187208897157449716814822062397579200763861722341698167203376385829509704404283071479698109617523135796901484071749913003500308463777800471388514813742743709864637100062574045501758238372120105817385616794469508932489465869245962069804552382851679044676211454345423811004275392526538063053189433608948908665351494264129205719519526926809376157396507516621536670218051018572951225964720854358444847189018772088090518508639686377636248116958041773621937517568821261195429208877137104344443253285389187527733859626018981810124448591501765236617429752335705036370944761002449459156201445814435627749583622796100653682633436106988931289059949152085144619403796578954323255576395424489091456884574313772496564639921110510700899611421735022096599779852823070772331624215111775621350285819313325173068675098550638305533999902836602939578915489584417187801364324144706794318777861716471378590233139437232189194527527520897256415147105899545819423889046699026980107455677747003594881280754832808313540103407004009801705262101913183922666128451057874044263987893043211707446537063342827157811711758204229777809475190464896902984992743222996718174358137339866215203681503451971583789371551109626645868114012892515602373789003223405687280857571771794935364856838237903568657154404180606169832104902127046102014271058418118228271612926166133234041658480416836177598890028260297677340865512377209704879231778819197886467679365685515766259845853300637825512108031627960098994189271908077853216207795837286905926604507459479575781165148092484344053916112517273565096806874803824800742905240318762241779454269949069485486415228397079576441853301352874830497420488241587297109610318807923838945952113145934159560450023139570987791861384986081349081229577106135125240100537606899805057701323531866120723568846773284238338927875289656604839189369166445108021213213517161855322696297593363964681320545236885629362364505379843298822347510941067504924548841256768326175634269388207998576359986678805136937880697078297940602538177173097140435966348549954436962355791600501292536393470264133395684782694376939219497536127445686746421059296719587870762290094573566635503435477767987532443494295708398316848568428531831227510142263266388259313541766025405348676699696847369003190395230959986524817472134046757275589152692716584800379612585629077723432231365767178886042992420672349275506744934232303246334925994811933116063367368902685722381785508373928390912234905895550483307905140320221684995494380538146018722532049737232352989131910248259666742253145873535439559772514164759439259391851639817162713828500736565577001480686365244298257602826043947580290814235892677496368615093191406689528350583348031221788116458352421414570385978347523668973438301396216260629674913252206024486344091192554088838330887477890081031517655479830025023529244278914494475636506701229797798221518374916353904172093178559284127348025884781360317658644946304366614554349178437862441592493394246135500656696682603704422806766661291863093290484822805890576216937673057994107197709218615437325150368406865931620058259945150658709107904255694236823867528153487073113706751702766640998804960709471093846868003469846298493241372641024572007727042124596059119977164341583755101348382018161265568096522680427065208674709773263346734341963335734113236786830750014441832418448746183780803518908022169603887588103163661476845313453182277147169282915583351868899374793911096069224946276753626596393828327195306273451476089709097317694845997717713139338186702095144679840261123403877214187599371453237945471259805199876863645586732463545394873053127791670896253612161229053314691866805760985813732741035442525038661862862621173385655914281540481573166129259142525769511730160406543740154915205552340303880835774566128846511727077255788921927443607947864744390970574813814106757719671212498943134939717943606590706873759434716463379247212128407752808930196948717196255476438942520456501683317041724606662520493318964419205887938514495894522184355928372422459916154900630050027980996086026362862791609524494152096343204839530984649702569820803430755874473844937951741965702511822423460233526759143791892137198890086764158624261288731738474156213502509942721328189970300045172850233454400216363265499206823377327196659202027641533632281020486542241498483234559637198692447352845257156429353976117350925443481279212757483786992584835447189613940568632853888878770304112443733635537353830769002015706953337750718277864197285446791136043180465902869580401049162043686911394506566950795457152328742627864306021921375438337844505376977622427841496881954686379805312218002149723939060323205337873577413339273626173220192105753635550255031215622345299708934541569083936684316511866194090564464003865364660945474669024712531137015986299683125914376185393526233574274060064477371779392245138261278755590728194846543046651286018295425000801206486620015585995351265447782296449272572993607943696780803706309353798367310516288501779743880166159735406881424765785529976984632263534454389570585395574341519594016254539244932845305443123183927843000002451466973717999164347581204449746516946871574738103635489449283983603433216597806859903152530536442106474605417655722067643081467066556544616930467669722647281303597923823381833434456181910121496840197921690029551048021163884151087060211350389960527865966490930222073603613834026228455339237819427731028753506060269234619502371639291673902167143830634159465373297705299216888687912728044175968348251430491741575160810966145363576483555543940938677578723261679163686082753287182156931197230740592397637080377414307313085189343621025982070433802271585283009146822415020800792012960435979019512304211872474532088773875313688594534264307669096196215465421422504642609355517007974804429315751928730644710272092964873733922802413161617218184999858069862561403927380900566452720777961208010262181231409321938962017184929871428300704592141255358491128846076731465199009426858367372197141127401250334214601447106562420658740978714209310926482661517035652973829627684214979208723300865105206953861227893585152531880664184477274391365464606681090692692703857234917217093138185047697100391361576190125225919660776622346770839975198456516885533547275798321361566202285779938077167002097462516498870472967990568702299521041511423512629575043378267129140398733363506633918301153977975341899750340581542460281403759859419187099069081171888836210697393473192506400406607549638166637119631553351693185023446140661758631344089700647090762801972516820361005825528786626163763582927985433772522526899624671029634693327081429737196313321905091443431421518803664968154659064044043379673057949730123722661693840221805546205772501370249220843568695330567363735489161562152646695374181332865294312045063725146005198574930035524480929907814503194663422109195697415703655976899780571392370437826022426307126670266452386207085715472580595596844116799771417911159459954383833101076774720115215659692884473383358293366035068236666400639427438811312251484976424065850138901414604102254033681090353150719280051519675630372695593868394115587392230083549646437325451487266255448057814623867586469913865837286448012134276096315854004755039958600797201411074518769168301152946516268633767038032967511292803998694897614223870890176743880222375673509294933348997829250741861219934629088252224902665657243847792014259111664399153653207169874502804522138336235997454360066732995507525559034603458663586219056778054165612278646115883502123840541902241550310049203646434397383046089743876212317432078055106849803320516273040875151684764276358185469584524681136170045510745998436247510676441344645595006663452259550347806925504802702652363890119607706224354725107088450221037032177223576441073767865516883534211372620186421659485320475805452813323067569104917066659203355463089957109002921984493936715164346317607765011675624974421551897902953671429751501730710234568055257999014366205364304532379761918189431002110918607131910061774337526839473337168484349592183341929993312780142830978662171558082786435398795767755625781462959462586498599184664606130717616742882543142979926140357148266726915785066517344620881099290334164041187179713721168302668566469533006585971458667939603358562022502831585773949631850159424726396675146200343110266426226087289896452436291817259061113732950010260055076070611201789412354607099868905704872408271767606479360511048659723184958512771805622604798052729597111270545227684173887848354816169185538809271046144526056516203969413913638670514680189351551294909972026135121109059001463969948387050032641536665061174336502761884628921132907003516161384270401574563520284891989478179696454319714161011085770521104676340776619220675308174087704063569357698056935100365410952541064043100890592007822820526073991531154132798542058999150327509120357380524829330698914554820551761170582276601123415513420860146835850303959655963841406728274492080906724010600807543926742622118802783640279712328473496831992007620907733514374569077552284273060537943849394711241597651358230779779287810255752881843439349105713593771488843213988647661957942156139398957571032445000815828374339849374268556942655123310583699652074874894624069342057660101407982705535733246228293115797970857790484196344326343236244593153822509810166379624303366319460874231100474400969585124422732027694306516270613822699168790925091497026294949465839170436859003650163650925511252975812507463095873215221822339680846122482229718805907202700819741931622199275965982950630602392191596289753645849162301914431647852908355455981104373737302536480757832100264494209651946081362455634890657083676574823043628349464358692403548125378342046632953638733825483898496762170785176691768148864945405274781103370657660297550498944333457094092506094149212061968150070020833010357692875346875708005788372551632573833954337350832132751022151390939628312354956868126617178615055070405026298746178060128647776993672147431248442857503100888801188396610566415719277895525978953908416177439770674055292634311263739848821265559572548785422267766172277589023785507311196187579009293777447365661830523278775666170855118041031435618281213067069089842294257519606319662243450954339606053383982357823849248232743762575266703120318899827666289944576553809402105143877099453899856342295591107711644909266786948514122581456919025212178040605586969823609436165253809330065554872111414533767479584418278448746578783033316835469899093015936224446092710957130325104079632019773003138559775025421026227806037656662499871286503808865823996318664800262422422948445843999465744386806498033589155922484446194848821463933935436282543135041215914207371872188563540187026059207650772211018869491956145263073177811627913112170765430461448784047377536794085832801413838440536899453088846174786423522546565887542956128888326855977428485931916503067622106491407207384238472880829473940087678210370734464668180490460275721096586090980392801765325611113481491891286134064504887417756429870699830265314606331532712216528165893663078277139438572306327100832579792975860128598112515673698746045960064723327567253325863153259157185719254846580115244487687900515241034830409677080174202985196324842556937934592835515174518935337936371820635937881248162759522741557389458272382158771752783154544290337494730393186201967257522938564666875437389945949547183778833365684122735056366887375534561663511795259993281860083669111812399607436078411023232176310629665133546941978154279855459371258612332418420478244103722154028822935013634413263127542824748820900122979421647164487715156667348815551773725666318017361243879931218643928859283044435666985949761063151022858058043253418036303737094916374569293423777264810555637806386611990156607857853408018093173414497419294760727764936158392148836661987781092623120960425230111859851050406760441182760574949712677354871367833338909152155095603061287181580026480477155656511969098049299021046228526557880848254950964288499931882845364286202370391889334664900791403676216624750260453551164887210001372141732074385876463021798697094947714010078545120536809606656268750223380341856632089231933886847059962260959618548579843057657895085897536015131935852584311951698110378485275127937537648506097845963366056381631270721915002311861164723015691359961536606632533745549789249232720251934057986208093150109263065775532448323503610719335308783386952609399025998375796280925934081772661816015298527911034700347907310516987673873738497667579172180855871008029990396617215174924896315452997583268619238723445908350971647704392139978816414709035659832635373335002471054373443511030997317980890281044309920954206911460440959605930141998341040831789171398179314476590788121922324921991795023149370189421072302748158993875192531651926153029019028995908951958654765689777334151844306942517235010364822691039853153869620731529546360954790608832984319914431333165265492850383063889673878801637185425222499249698190806093265329393224763408656656921973833933187736220749072872277393800243048287263294575614583466995067753680576414971484463455114600936906820371157313543159578573070359760440174593916657921547072925240917228432344414290716760913893569492169385777338985203216869278889724855067371065533303350906005479819154861933102353318599769150019809345963472285863275557155020133103427819353694159395239525883641832700279840683376578378296378889043997248824560214564054200982730918848300518831496217004523541815833757140816224728248588869787038200413981317747905954450788388766360464130432293384285543363787471819194912666409668497498889296875944194130419738975493220964808705998721370191061025751330218673446932036100633310891713485126365304905809851984939493690823967632250883375583192487932821067438580112568978723931451481906490808414832234726694929034273716672680591612051348040161175680495522872800736357658855757601334451337945396370841441790886826252530711932999715505604976661061590447435791097347516213704458767592833529353318335105510280968118800925687526003322953185582304319405004918163940093853276160885061972635286067885677996545848957608986281003637846005328749899553531909035379122379659532876120998488002732028074430160752862891342618623805484288975712823627374221998915457407286007650692747686146972194225892116226784387911018263664127385621115139706902842445383883018250959928853750367445795787519936905986063918876165081015572733346146109421348273416344460623198953887708168994382389371783419068262122301350112812232662431723355629438933113100388217575116491193104636739547520413543791974309538183121385155163658418204488973292702168234141069461331598566366120047860932948106924895187812668286338681280952863800662217101115129036174731108284289373823800489247294707406047071351326945941125847041538175939203554368079861808662141456481371675011768556309472734765004516042334319525314957446240008028116243262361725148463705276187488804039790714737204318888968406132725245913775223847760601032695324171213492294337560225590561804738741998902151996636967549735200963320005237089704020342758665712224423162782492253803148581550486438861989938920070731599593100801125049300913005648833129043444933494283129225993476382963358314811103664868148371275745861207224859652097482885863247658385190517142579359978074133704224515743510161598930313689421817592763351889098729033029375245433742234799168420630622471004469020605816080947143270226340844625728333197305746764449434685504926079921016586987796522733088135417348286962439465680013439784711092428692277666743969675795182522708737893029059217841309242806874249812232637232562493506782505623897328389050466239123479028365262232362781579164905696214181361119677839790629124457243821155484355116894764271236205767023362653404081111518857609858321204981534065451021356332988381514887383534986165646225982109291666371428168808791446498976021104364402580150494636809098389901236233646782430839392875397666130081408618399209831701362400024136629068800993104210433941013080178237770951873604653727424663680789270790961769291043411747277727925048907357734338429500401204835915109869630073179980767971636897036883637593127816665526666980958707508228979015297277486581624549261660697205016559147395781256232158583865666092828537589195417567263680994228155471628304896802322979853251690496599169242201950210741475253990144281155390312743631185066450165283964674752652366825419912067450958215132973786428081073756204993870111840969924673635405991284884906560357631845488204517058300914727008784552207616551772107831172029775923529008818423823191169600707553882395058962040914292374353827963612679238007522746086336109001511121504589152494585929472151571572411748065424556259646130697118199794203063211072625375565930353619997298240955923916366497958284525185100432063827772437621257301590722229273211716230817769338042688168014611449350086916418194943096360420396230703077936651713171299068704104919447580037931630463087693218976826665194898805385938716590635388534548038283749421215575528877595291786037920137762149949077790931514153292875634870163854341726463039860899501473547921302686499833713912500078471562366348145559420677088025398581875918345404866232814451336924201939985308352236187744083659288088569127275776396455036627014473612197779991478546514501461289529739949336911437470449475385274611784239694077003964241482490823816310159126453946129614475672305335551435723901399625772306689823231189905334688304461805149192105750845470146708695745712515234445733657245744462092879153008249363244389804553004065647597217179496341136755071709423680296535313052160605331828935371824732417663597097725619951380767679865201407196161050742430308661628304144515125872616883301422527655943286646475234889592919310322861160289207248177475692997424670220851227590800763879240190617678640337355391882809611290342343635366599945782039651563275269247364239934787748816238799630927099297027012683027910300911412144057950211897269454043230419732173337524622652425117375144393525012149741156475604161771561073718496772902181455737440706241263817918023242963979931150239259467279488811698402007704255719297324907202948159386856673022057277271757329963191031501123331239596701383711086775149921903600463880000256423784560270791480119228970637095923273739606917135966082234265119320903498941434203648166873018087796877722026405193655335490577059195188902047668513600898997207918480017667487846191232249710362034436891356812793364692058298656882852155611866481016233316411352279502326950136235550195308852758168779618768796226763938936146687485183695224960815732696118356568400832033958531998902431487777784118239418515627236476596043510070464291333581462421698437553651397425578853780961895533497643355452782303307316010319334314144264597893516846723419591935985083129140869132523802221420432199059092698016532899121945988874484859638655496837035187300895120925126692975081618301969800721694231904438523868254326370458125450360449047577619061445507024867775441870739772904999935696324491943238737966679078850384296104438796913466336551526895491945866579570531202752432837797817043318776163365776119847914341720505880076006194113804469399427678929457168055117335014844248644447613749001150908465374449925777496909943662815027897190228247762632387410839153760429805714300341166493595125972878367736696167893241762762623035416801651749213925561430412391986897847454623627528570198294499987459434841957583121081876340703519234972050198236377440768383648780207422184577085244968703956518599358240988537128841350553870505717743418403754112896812344036266575925257635783969168865367315401699830021763287460119077560166601474737524471093596781038882514037264418066269509928498875608663522469673384043024482443496195249297620854848818297485718819453015550788876722175194582946492560919044178955394625095803487712606046740195456539669639292208069801191456449105923775267934480984816198995879337886552649894567369906908735245883691294054980063807059091874870088617012813651027843172646272113826907179021007233460332322558684103710672623861377548804009630555742023269990199382501376396043654626897758475337154587931320213650967612864237528623308556255034233904527433662888808280364957669172283763155978211256852638585861169368056165676931674460094764549343599057465135442544807275666459346288462247897551425036760963376986534625217081687929678847517688929048891049336699861091547367353225626786249132355733288960017757887172501851777925338034488335248032311595136750048631971161210577376185821840642374990443372384448575006299552908307611810859561624672081193804128503962830610452817793829789857710112948079795023910740225760166764487383902768449099314530219895552529202623063290393180206589730988865857184810323318822762279780626306241058387447867200438184871769030734310358015799313587630006173830945628896322541413590611544851777726863700990036254927231347780579327207398148632292820533335186949588950603868511494709981105318303743385406434026997021553143542157522400814925825949288247108789305667967109161208759798900439139606704056888518258182147459707657874974109352893683211313903768563994048765719399160941294332090083581972977584088898988943399439038520892042811383751846763500260890584641153085328529042131639206525312672624786125255291289357777409316470769118410018070455100045812103081904096009811773007191491937963206969214515366123510219456817309724445824753877259100287531027021808324791905387565308145860132166665302553709073150443381826424465223849710700395675331491701622267091905291776571392144074055307710848956227325097075132219413709233343869739251603165663570630957955214450041717619513464741277205814561736758558898883211581232426784385230599899642242052685956756395436003576317760815244517727690162854218104568921077375907670744569707872319152892580041016459855996164987928875976794156958454902616206783111108898682981539670838989163482011749776908279876724352036699129415715201139650266359942330199316839473673611769248220911117182884970929342451860024051129695695794054156708215429813504405459722095196571435120339576261700097204026568743885661784976290447384074566480314711479785115627693890002585448427235335734690781803161534753583271818430077385815446836337635443860453421965482582480703787307398620673809682200143777710165317980112010250675290509767377096842713799954972302655316163314870341939744443459349395263064893416185318431851903191649752170945699983115608140798796271953639840031623257668333540904670124973778660447203380643449823958717778355114624556608771966231925331240169862907135416233899539715422714773228660804033969767986984136204182329828157714525809304831423813570625230667730734157097900187155263778666753509869377512523099428025661809358565582774537684912718682131710156679619270757214175732092747066535291344722897459404030391034873217032288677495145447733121185636473776506442457502515379185917686601040421735098766237325608782460482121781637006691071602395296728735001504009378589313855236939173960387977364057632153076907948075252683362460319409248331321540333434215714029028684429402533299084801486032736800591631401784166864377650296490075331015632122745115976208901047064766914760082572023144088543085282940622892002232373989155436703407706321067766751550433836069960253326888233149434018574105469664806661852643789734777889119741856821841651935549949060588581366383379630471839673401689051520714024188074727068461276188032250220306267292573714537005910021095511581991922548205456965354237456800515949967133752447311906917386481931023443905990912143575349027119429016027907054317148869546608925944798882725429802770731502926418218717102939297682292357269329822907520969162702080150731514624149278540560015506923586115213706361358527083349862469580665792196947596704745803265811201009127141881755830314996410746741813493816024528523268941282148039151557609390043999306365355473360779800728258291974323805470545730377212420182928099966396276195580942364551169481647673656479949880951697015157467022230231806093039366909560569920809142961571075601895439561057594514682677611517482117640500088820873937382912293573287877562769274961691416964994428926670734750710350989185457214493499266526021455551687284885502674236107624924376798075501679874827358246769618735500891393178817480209231273730508011770250250952392558294503526282287379269785159091107948114400872670274519693735482666753715755607977807068743966051468868747420763123902271909867395954082494817406991424011402760072868572423981560960773555953890890555553746981759708495095852481726275953584906701766736232811147517420533903525385666197594943088050361668194728392044217016614041306677340000008205028914553560704828675506231934434587009202233934298392795681073642769906443859216325455404266799465776641839607825246095967132368661848342637365420133938178032833442974406240425635857443124496036247730357965960836201973177348599867459414270780985764985258374830500976133433973937531510736193655231942194199308229104954610060876687952484477606068759296294367129038370203724520607092132305540530087085669780674187584638918968387168243257615873732888492281102447898598165553014887381550950014214490536915779436858215811870985129435961204166010665473140783491348011561831965395811990663575995872307230785499054181664757223612788633008028214871802039446748110491016264353582738964677813373722378662778688242556071101326416129792741889817514494408320590851614896361975710841855085766416724887810133276695803468579730205967309766823178330943795867443068333705516656771771316978425721564487755985582387600405276036524953670502196755361965119655755107056878749323328849975390479264671525093350846969474415837937300069845797691601896619026156218794954194606407031078355248172757634881100699318194277882238597791129871560915236081383440795691599125688458444946478033755620884946663974465862305805036642415951800431122866676696859295795964949049965236331972396271966358920971567746519176509475865470120793712477390874902059168147565063055528275106478696438724056830174404308963220167633296182679832335594290245859815862334432434476473167333531186612489599935577176737598931336855126638993898716477140916774018792096609609363349731187313295491919716364811058432124641716384096325296353906778030205819485318867692002318907119988422943346952093819288288360180455820518655909055266031147732619591047154088658419036593729968373061263627481552997549146322920828352148997201186221431675328718597184111389466957908248948048874034982078335618255254775677181152402829944385559598104341184886767718156897795017827247913423985916082831276849760701674630661875015554909487457231948720313491371051567544126395838159954293684702449407721679978889944074102859009044473741211490477060431336347377352742413425236639628083849647154868523449737837323815544116948973988643746618466815321291542690858746263926232146234060732907850189910331859749364745235477334956862224447110499053421949747352217282525761934425360063286348332579595702572411459897325078264183550235734506810882300609123632211861369360264158165656043443857862145019990757536326604028207211338855694074580662814549333648284169361059585364427881773432219886751811266254650838308189062855361356953764832978400787616400860969614894625881611872039533923804218912819966119278228360856075158087919253006813631704227214015887757135235303427387140051772150867173658426211947591711868650402417997960640477039806318968375581632575522209136976223160932030707958827539591547151719971979136913318214392143953154931951494577046586031205866679330345799393099769563982305703760087212654898290482780676892648871799665135341892806815195283262725886690681878602081556093343504167838957242274565275403315103713124887196202070171480445718402265243113918235381946946819932060653562843293236269926649280532657779916040726753627329064407804833345542910507592542233584359513941408378989520760043064215323884136579587134194254775690656126611681329896643298077462552368921478328987585163972696159321478498433920087243567891448562030993141208650981835196042697392561176809250455742749602020651087502724924097007913613146382689220483761096759276132987315953296395673752025375180242594808524995374245337090194327431153408754378215967215662410668770790926586215596565441831347564046937360680415930355330434832876519241403802310587864110967916973861849310903496282480135240731315285969142977714270495588200548931648726135077101231859400389760588924660254483332774108056613445040093837976658385767335208117506180575492145850057515995109039803169305197440624436881203095207725699978727640673021712618733300640248633187485828928223408525222756556132926041880130879155439373396289371797168023542748628463463945166848163495624736592226327541295855901946074617726736629623423016512580683329400531943044636961484149084195134390841057131063416290595376636916594270323299184054855987698789481142851256994163160326305963201226631711437968032193897641716866459304240488680191820612298837595705105881857635272616417303064687742329422441177864903517185501928891398498311810210441353504114771721812612627319834181527092759445531905298058042955448671376094739922922763166419092509143996472720819216185465440160137532315055752371697901154863324636703924994203187420984505018125370905770292077162367078094343199997931495645897284089680517949197013701550902591784195229531411582388740116657538132904825646008979191467022583647694831773497354980804159296029384304314818468353706098419160151656895793076148604624097587973720870613287340770730663116747049810028212002470523278871615582048280241494822510141486999867423178650865469254030394511659787174465689124559995684265892837082651556876148882845637699250307284283376964783613526735480014133432278952990798966241779268431226905881869493997987078868186088597731865750899499417544796095076263885445085940865528335932842444202182286082396192907128944066904390782183005950440531811239418238455581668988163396563829524359543977198628402293703205184350183686338397631091340305829821315015856687019264139553419394080353461198885183949930496479290792815416646339451019632150700456542973911442565436782481968878820220461677799332044113952363003288913539382920173562287598395716284400243147112668873776246697489045693075971106943832994421711354432631368545624624909319146688577790373614525432298724330406592705873848480792296838479729229698081792773987217037368325585673991938467769175525084679462678839638083957012907309101398229230152080103607584759904050483101792837541826801506159784463662768327221579069309492930752162574609694887862303201617402377331092195411751456565514591795754672098579960432604244252694480739454416531072601001200943656101780860562793760373236424876468160510556161826331284337779869178581041270803616782385252684361080010286006235575283987430780339330616292722273055828711691563454085781913513818029664193682160965522584630780550924355016411492056651402569949295312594249924761357659164793177356699487089414915892197983687396244473970651340816055903580805317742500778552716274347764522372744159951671654475051959745647026798216122648781655347706386047462411094923164494560997555527387758198759860907116254549635525769114596607784906378047484482886398878569349428050230125616095857125358833620517929566954805528085066348877122365916252413807452910152910768069288012960771138779944798762251100152470162296696078911039169964521447655381238857194318048697419949962877229250289399439086325850678074308115399867730234687992417572878590137387900634514443136311023865779276220429290737842358919084827794556128672468211505711023755873351928198918641368909027691591513491229681557583781108182983175897482313566883439049041443698237742976304154016453837448331495101961772028547600605426246882618759942091290333374176299551544660715791359081234970471545128835742022215668315489959542243807750835223758240940790069817294940641576161488326439141452272370383824057323179932437618196881101701729383239399506363608445646462151635312160204427461598230665052847189673697826072873391805337875578029968141340890796526145866169625035589236980349307886682586395708430858873737167656421536635830812433617413499951810633790885923013008881759734828851394066524501541910516074242083866946955470085379380659163460195676287726939035324981491729653324599799940845257080288461053901086648857548753646131374505037095413282414753497679505358800458776295455179967366776555920731528761780182280670588916259046187176456695237564771855195124785136435151950592622832068558398520212685228243576530236319337743854615317411718480071936028016120363514793701024619849556942548738488435496909121605742032073972573812970233915861430186145440114623853843005082245162699368327017430776684267474508105596599425578542616991353772740710644559222381510195853741339777150311374930151422660357654608948239381059151677145336814044252508789658644380629483185268079984098202666228710635131395212215834507712530552447869169673499074230898089656459878195663069123030782840333969345038285458758326569343704609737423185961149531275255079017614050889639146582697659785608719502378474066900867609838352961602685714996396784960181424617855948862044460749549731173464261329350275496093042675316455121322160865280167884178366572187495286199525506524863592251139565640625555779226091165797628930736281102432382814860395432087435905758306427600047987585075691577868171761340539562078253982083186974374974862927650760608582307592768177783705272156159294783177640564212187655622381346579691188948070260990197075897206866543263481669087608275267285468064752734402802710326548775637268797111925294697010413538734073884767394092333473769607717630898032159719874486697864888159488557945800511181274762178042474573548303616612305190394157407222925648391090210061037339087268044875897828686009334913960520659036786367273850065944075706651329201830204770149515600706277731743183801949650493111459094319410324346514213705184629385020664916796166390877722854851090317048444532932107486934985060886864779749808988781576290869039754080846309842797906437032199671570060049813275340890031956460527036445085097869481704837571406130600743213900814155626057065205010271179394726029975678599081131263386420921763097433359425520641738745395367987077279860392928513424173519540050595389812041364695292673350786604695024036611445750761234757778001524835254026273523182023204978537205314372049651727232840892830164019448871987224589520482473486198642343840057541931433311319167073585077087856177900936298201863611030622584430874346651767931334614367473310419458192688904875239805187329565806111555763651571642036507963360695728347974355209318103321745155133251261100964349246103190857729528043569811459855645303650794766270658353492014834977395251314946484402347036547239298181702642619589935029587327464399557525102372184764954075364119084903694483539909983271072447269530150719147805257555041620060259152619393698995529062069427720667803625349629182030955711711335423076358933193140605519997096174430875087628091204770433423556746256020605244876688208269944173430128119738360031054621642033484489788486978956346819552472548275167900272591126528438097888594832679292047133590099115058459720630479189950844933903076517490860792262615842200762320799917808043808321759636758127042497601975864572768434864065440722985116237854660981297215676751419995919586387651476383548426549750028752365725008487482192276429357684936127780482278311778898470320985730819027295570190645122045965889713325893164900463784273845614259700915743261811167490035166049953499684127869727920669558656135614540844199556227495618811137543285016141211504476400192312194619973328971557464296219345463736149141783770596582186615218447507990897469053456977003255951776311662826632584524645227054806865683613748166074065926869024458860182971740885847339528747337368991431266499360340135821132767559586029786557577625438582623030852348817342766090756591341946009540806510874496402710741543778850519398770914821869235545083083447618794117230195734807301509471577330130548924839791322783136169554670578116748107972306818509932634813628837055315062237776112050824150455337358707219442244796663025883156895212919615216673786620993981726208527802490424190069056707665544229226940430323152765513223619205628519547477932276871834696932270769619863732131426616915314074526332365854957673455898282775142634525194910252650264876868402085412329818106670907696159880805476741155661270066206291903475757256814599980239246223072917191498651790345382217584360757159335877064033713407704797436144917975349539292263754968504768543854883739940143686036654300142241312683784214217028773528498867076823795379031166675377473033095057787394966032353317306058798448918539172246172228356617417563794084194186104507584397805357670756792645854365846450959544461442200307724892925220363133114616583475110974024417536010232867284371399299328520102003203764036930513595889404864895114365145964592046211048049005309344997543999422028976011773268579524492059856756137644048659526724499501887553288365476962850907788847250145187560782340672625239008676534377990021226239021289921318792527175105588494903838478257143795494430795217906604353670212362498246514757698996708630885995350036276637136894788054435306698718713242402094667268171018394342686218021645236774534552392485010220920984269496178679716343895255087026055630980710137163678860598483421640141438120910007666566428676977572332661577678339975938553018962399419331987027657937307902968713104225680474913589272707519119448080575157405424774652743144305862516680553113775468078518720709954894918835953031473154526354762016921638334504568235094203409725090724825301770988054814360503690393565939413698694896213948069816795698136786027717940447753691486303459705250888671355859408765994788092755128863562531664751824789550344329365844015115739833779460900657534934682859276471648651035428785832954410981330334071156101819995332062535473784420057236382163641848716642467160264296165682458820342750312274358131598523328444798512143989300901892138123106695756757774437991346337148226863813201003381859140545401343742678593071702782507020469018274161686713725238184473780862982429994551481700462116736174019754194048644536271908157186378866024813278841317620141042238172749988547552328068194849221265206549028600732711869120095517912023992094819572140706110631724649220807431810177209898449136219551593115134846854197274903832984903714807846606387646828180824072473782984777298587313248832151547077427741302171682798448436541704518202951329974487071465123382268524038800743104916554225606140426535040184059994544893574118191964415668748836270186825431696313964149623462837344476344246279763030071273249555497146365277503476328900881555399769622919596777026292824681035253858318660439904197991098797436031755068050544802802505474536113747730520612851385768974824350739508596368297062685495790886248633543078005875207890967686283686204948624585095318742845272837144731870520996937286899936447769663820701352203555952810509415794820163218737003324590632281962446850096986094609490385869727746074185647946078608347602429922621335897163619802713899949153211202747932710329611641023005559579451875567981103419664673156800273412316867518149351877423127969424512944224667598210410465284876669550388913729809084210584935901737373167312172480432420217679491729546733808137443617230078169328383229629159756719443300500126865857969466666920017140995313214700887347641993520620053784958658296424857439091975460443335220820654976011253026985369049405382011111694811381639871233282425217692042337627137643099611533616810458123135970085288694982944453761519057870376630184309157076118684020060755342969732627498259945837204722733294217917442232039264148817325332649308784385435270996912699538110733933431828291326880895956064583710049813222395335124937198967266247748857628811994238275804180751357215196566517886388269660871309451414239427784580479806407023529380526939335114499581605557610619602145247606984288951104669749265383802024154529355281907790203023373766739184383445733728565067172283491099932237530832039873613648809343573072967341423591419600026784154643266106316258638441918322407150289620884979461960688184338056083037843959142296603153644914454594125698933496070956548967225883629326134584829280485035204938083570379102687013356053739565156975864004378195914754550964904895811344205342319199440918302937151446373679548353064522083052689190307659267788591017851356444894360991748239924701911650221707532467401381952488054949323288141366373907384192962926130896331515588345118412501176877401011370977661823939818394212895428487322238676876071783149504481202631089521833888055145043272778812251803486417782381038650760319855024586286627770745894418017210133751395443571068751425098683366900544322348768440520917865694714479155246087648077414624987236861917972125605905110831507745426625698426258639783225790111303487303246367138400575745079246772532382760448476249638775960792144742510164550629603701541715139153048378813303215561247112053069162920511941565205410384766312043884289314592651665320520543406118298402450517922008333209267955376935839044008296270913672882405723950891732697072452964767263280590799666622452944170442333889104134683713460994186975666452828688022015179098976223632168648943238522254567767542376238253793873767123311107795889921528969754173818613764957225548392150375655523826805070202566858895948007710802845251628713923052317753864956760814200734635546083744979297257126318316140979564727524962220135876712088223450289840952792050794636987923602069153920068039731219589872420042252559007995125556635442654077895445803785132937360780315789785571390732841638447653695872181894416354921165758602288216785121621981543400608981936388594155368508348921498975900496777204686628805093014060614362144664646536077873277498434792222365872521037156518888144051880725182280363658298352047225098940686677949335271214915493846903800320763983920210790728063356836986831312241723730446002546933815361823461171086984663535525936485522414600853193553664116165859824469496700227447298257768764847675582545835630166367244455363601990405281930182992820769007806657718666064477103836037995653979948886068891565839730098464926492715801306441884061048828195389062590938948812490074096551375113580274213646798098288313932623995306312465899607123941097978826249604389171387249770923702967308543503856224760264901297134230457518550070079965347128792511845048188085173163567863268728429792399040183786509969144139386496248741242884558376108250668113380722276033847390639503659256549101745020113043726681120827074510481421432579583601115535139687047743905726391183218388628089111967368096163225623546776143088667544667658764535894823643017823500365110295925577690894661897325366477257068903625261247409685345335661354385489117442199117044263751755217980458057117151857528587354453881836014351990347730366249572412112439655143496018475997124433759909603964143314680532508889190188502049185902634407743595320857701208084577905774032476070978467884929888188297097211144455557958286937010904472160467281943902600026687419957432167336488380613040061708985629808835809403651466567773796385075699834769305914651703645864240154484321079683739008509675902556509563453459323628257489310705871940921900651552338639566153453192465649951875234287085437874286008240382632815985490531599514431057946185589851230463162339549795290343486347876936918574218170254224591020045948395265542564072859626422243132555776943291259717069904310535054542978053679538994713416850340106638594009092537533005380552254865342659579425125245563801055904111260738701667067999562650985705354762345796292399521407811810189008289150406298345702138821445276516777170357173349884928527695774085673636414500678932684418462956081569523550323119336878886638169393333626428770146819656595162160142759607700517733185025879779012286115365353894268340676204771515971694696827197360052126152373614509335299535507065691714810206558331700656540326687079675594116165517807459904946178246466674496875722271064122433427726241337058457364878637282738123748085867382523028200873578230365285166559366633134898371507954987746228609482108524897165483625746216039943214935083944439122087457141178650181501391809633588470751420667363160935158750556003880671416994927631727027564088133989482168399782653630890760557773277558710491818453443614485496917571109005643952374968404149902586080960581921893899786892002803728545219057643454022794978788745564593568034331545532301922097556808615320869463492026040727937746015936649283348583665949193192778701720252110828939720228102351446462054378938022787908608043079041978399703170963191465011147959445530950294031815298691371501590388495539777545901708527100473876352219435537936031909283887970180486054634922133682287521897129927942167619832748210309475371263479284451848842931935687649384529071889756396946308230146599348477446039848824995146503552055197402562585938362036404151530927666967135015146039248212016576486864634708329929024576597045940551464201771347652247844092724295701168314327352776264637969092733193656939373363250719410931923404798950878782196270649895998602045211365692052137584001056269092200113931288480696866835424983526364987842015543451280679460910863733948488029138652599550358355205314351066658963676611576368257155900513962686673072498930144297323769498750676166658700374840938596776847888240417413184115942494766482671273741872176115533785035532834326357003076795710332258085701058352295105508891260821808388713772112346313755939421137644702639453225632092939963248860913278185824216003021436063324001295514162574397616691586208824251501485464069088357309528618791728985972881645366379978814747909907998890050125060158350199370842045487358811545563062277172731889851938179962861937112395910549555781517148070736720232867653431565387933482458027584512307672865804527147114206875869356117869590477265227033996846025259605659028767564568743449280066979876800011349804013993758993387101092152260847809007583370104392371606777455773372771692480140453470720572391710163151137907640006693610573839522932997503496336364173328352322056338175166638933095959914901998765448880753706806292987797419113345882457662846333661687223471190404132879982815958965432365110441991379870324451607513326634292540059024170682751164511648553129819012872888992005202077538730314322920046801612507756716508757464187163767693040970445451863000466502998680654831511251148400951995862815345697313743462127072953646790729276978611424123548545481781439489852543870439970461061137534896511590470281994441028221373255121715116740683271313731835344417306492131046700008969530128556158561712907300811185014740210674047187627308424701433968172853832413683147954269761020286566304890537438290836828640684822624129213614977871628598577874629517585792828871574866870624252584962863248382400946248301222080176491106955489285045000720804342881470801149676714412627231880339694801514888824128485881630564224561186058018226016084787101766389645981387038294340353790173478548057451169642090341342927070677047593251525010034680828436034373410494102935305632094724192417458823452648659756807890995756290420696337405361368894206086882331791654993414802714297858802647175658446775021578247641135439563252050159413248955422219838025265373548703304615905081695900136768411964406012203003512901466090720151679229919729249201177922372812649297025084018943706646360925811550794538558530919795115016121008674496837328625087545206314826214121714076286430774712154675554794883089943699159738403077831399333895037729729148096685193027862010558573656175914463344224620315869278293736198178728021655294090890146644675110643579765981314083123584371587098958395101928218718120141024989003985123408095530752113099377504872501727698311778862014664039824897882750094534866562311823561190046065379317532014201928071741085733044232834830791286230393047800670544087530155031700235446103063581846712321798347413874318347093819660419032641964560636157663712864143045848148823021430649573519185737855286608528182972531241341972905666637339188289419999737394163205405211972140647153525020143857280507519656397562464558578367630495976259141226999422449672644442219461879823286202870299479835603231529245635627655218508358575129723757976964784642231056348198164550603672617707161457217062148589686034347945417148342989213989083240856260024920110692797003448087803881591133363542279560242931810834919161301875968245318164483312728406249229593898928320229359349217460953001244899020868247139942355525539468794846870531936642927804940391021543525702046193952584430481157620220964665837647787740278227745362975136235824295050260102832922121180822706184488699668393721298245294438983688357934460985349568558154736829670071533300456607384405607680721403242899238330425990618450770625938959438027137056706536783597765238812289471926989587525430529964041592825097899584739157443702377821900586494519827703077311262598554146047946068761847110777755504359235152829688706179977235361928714194833373759282137999934959449004126492628211582933118386052649144597653596874520730817241542533613600442901540575284576440791058757481822468915081625837302508808960086319266529625892951909247529611122243858196791770345640584300720445527423283383399514897855324985268258198234158154295387265662740431478068619021401585099361046914875550802469125610134093216494195621551781083046443594795284077013908437487414912357018013027118513886343148521336334914877935643126885052502976313565955128475008843279621870164915161759131354893895861356382193145375704425075711846639643565858846850331957570544096537971032216177486211360465384010065176320420043633739906118817095499213350481955153897382837945231283172485584573473262632424080004767299016734537589682318464141474994364411912694939970494671509578328319699045233588022371237180821945761600888459850004379170613927658897783848110168743343596943682474947391193130081432051517565515128146650703361876122215681300717225450448237275028341498405163042070980806343664384586133218095471184111680431221874960605894125153174929540020043332557213120496724031200027028722280852939960508040386658676130177118994618800830514351070702293183082520263490235082639259447680391089964113429203253607950893978670555769026815524163071223342190030323776223375607121630168480993639176700823671471881691297895530625951927372683784166652111164791043059669881793020012669256657606121911140880180277126862986733799266402381901991782549321652912511005349916367359098352825205557091787721472658495336942055890609645786049214119337612022289988227677840709861026279745293875070502413521394759961235815675823193971731618797849598200178326295253869296996914104033250190714591764997470655674937694705973875586567823460523037326131687932366459251097490035020801890453955485376927437871272509500742201343984315192096002372736513322518058870242437659542569671320471067355640959841896856801156223892182729171527298664217026449241155215165150696533462344626675351059844100747894845105195908530298444605458615225831849459243839243114030417557560163343092984666595868233714709556029397186783400397027630739369625507730790709537026300085103407330469268597869218558080434456032557931970873487518416431225942346971649095706241094278711305349231996762047678146267366928223929586661985970696307318947319658678043539441056807238565768540612302873510324870241111134287569154186334938990674221638846702847328166099635686361437801633951443625950114413392192508820088770542143586492305198497288879676696067014119297207039845880662810153249310235849520540458945142558397992231693644008787287515327789323906476401075407685850445762427684622483574262285113163423173003920261301168433065257129161330118519243956879238460820648520871201394636345572726812047057580346940475792264446494561114371389234939647126413969989083345170017583538518868800587356690631403375367258967188355653742879215876856224207894219711938483439369157824423056533211235612062127765291771508635980544243576661721635686951894316735839916220438147460574837355926071267827380552093168319512156549514155749713227732888367998613811019445986252036599838123950868300972794259812137018823367415670503390725542921969033903923937861869700275409500210745026806612864174524534487465864140124890442441360762987958043477196011962283564418857747286469722453620143136405213495204113196528294501891673659893822277320457882103322799393145703204288914139925858912330633723891968482034042522980156127745963508312188789564889997375347666800131706801487915346378020642009128430336791394013112062156094413464314011225704034965948388869796106873886769773245022638134306749692031491016493455249207746768268406122790904224673253907528693085481537770318940682441428484326754422848775795176820299418098875955704878629528961169911994056735214401743864661201333884495784234756296573270212071248617674794933573683701894054297416321330894859252702719571305349804846471680234669259050325564601390647299146081026534747206056182446667843508071722974780199797281768057562037193719785109266295983035393446193425984457656665302631521091876769624332849679153995952961491049422756271569756686066229034761230589423681509994027896952546562523179954046427546927337018992908627744218080698870172209482925342419464463743394937824653307929158576105241872302426225261057350800477767850094402220334439573523285159898847742482614902778754642361658163391031753993540054909876582349436224075707575494886791946695367639901733192338698738513798472010387301367683222192627346911611728748388054246747730039619632643513244060918084741212891306435156182980572297869242444597732008566279269908211827383348717314860755575203130121595492834723324512864148437050170887864971895502039120192745705961653742437792955945593289093543431135764656687895150405062379195742209528170536644499871301829577169826766551732350983360608390273792817179592832804615582033735189167758174138776246834186832838805540828667502050124004371223674012519990682044765357199962423105091699368262273365933096589528390276757637285285127560249022917732202720372292377707912561743140875844224850973622758611906633438994864350442925878189262368336053543793916666725006152611055224574602595112686853649385937646441458895823593789751898646492341551436557479231399916978315376684028885796854559325615608748945194963129894489430332166149384821375010859352049967516788928785304056352315302695296434135995855413930618609130896850067347245895265694752987240743863752973920339530188324848342463358553774174799082574530134166909745301964588457135083864410277090411301578009653787480776663109085510167599457731745606758059055452840829078391831119600895191337905315199930554719101344345558057304610507449984113893177474043986880371464717042484107727474500554460325490631674602180523718702760727081202096498730319230441752371730337331281998134037313726809599492361114918189347413026935147526751320103715183260918653769378766572089876186095750163735285059573570719607729152119662682401679414733531509750993041474284201515580423710002833406518125029977979206544193606605983556250333724172321617534652468806785005031725356018342868169884842900382467928706427350085401718106920664100445269423865045370218610798708922748576026606551465506230546521607845647750759686977837166588004350347796801310124401297058227167861932502850076360552853227941338529466560902297051382619172615070566132330942783288841501030421745807397518871401243006333392546748453144944320272331498804001505319613607799374913320055808291790994861208873002275371170361822408158321500384765566318220985793103394070977539778094449463142705468031901863598812297182313098442157062702214910434273964991678816509831073282238591218306936278628422134903841258511007362784762415187020169376924127445482730218153641984437909289339747570263017835210190020522156536601252501101343243448639009870228024274913992637165480319523449224131781776320440336899933358911922974005242852674029427966960365038210295129284713696591270438858132856940750524873534174367629309001247716916686205537372010251537617659753687455939756368831355095961040577820186373903730552377106158286478440852533101067678102894597809284865420452021399145995636577330137175713848888452242109460515865500977467827682366724053517977747914663073775239776114224495156632950118684898894272560531916520012382524429585371517347024696022748984250775676320024981332002469663579227755574239759906318065158442868064199213959841913805842201949221218612563506922789404029165074521872956906401462931238987895904812199728696870858444259060572124212405246443916848399121459425048779897353490502638100359967464279938963134144475771851033501462834576554741664968421875035139850381768357585871849962892602019716706576347238661799219860263682905848579946143401527976397631779484324589004521874460016582026436862093214022452764656221944085399910845887644878893988883838909654073861681295890376779239237078918442810198063821846620684536950627230934046806594409080582756072330252448388947390679654429792079720582830893033751919663530661827027026304631771444429948290465900509477288934489559799418386343003972355562986379222389234376805864078270820495943624467736113934626647231576505755285694971225293880481106722741420760461480047232064883707912318009893004147140610227553110969421850371222167137940366380783139924175060918177476570126439195806803216688415748579454887394368291857358713920729474226956133874930847899959313964831244112026799126370619836909321822733763934577500974101672619194781782723295616213810531161117040518944846707752762803650563248811449601981479140807904505179083546187048511729976350176977601783960795411115747954861328175483827990563971531277358153708999621069057389161762088655481784732180546541271007665214806919241217832264812349508527672014014492962909586721068176396020482483758797394852119108703334324408915018988404104123738922561451650226082980783566993903917958968073418046566951991367334282524900605100547761428095330755866479392551235180732176303111949854891488763702617611430577056354908381000674286947101243740391230959547062284454627327882093484036997881468299174555161606591608351038185078068428537884041654140715811069604544267468746980159296190752796429809992465209764569070922924760184645333258769407007483430133189607834672832618962785942799861070575561938118186404306838501895993994568081897724380372082602997861682374795190022367257356818018273074450807014122887038792111025975850694047463857070854044510842519900050535332886895795933164489927431143229089863078900044163593484901946348368110832555346296909954132897628693388885586074092015329654985545077819167357675699715610897352863086505579619702356554886833744809983231272316995980638034045328834153523316540206324545006376647241105500047284689679280067998100519628304436743437466539614008983998927973505197778151982145222511212407607652481879340751602857658231504230901643152212031487490833452140308674154152767119997911556807326300077277845395884770382154881788678547410449455099444948221486620460149431035514961098080534773851147323128116257469858737934207737058955359894839829221866212182095102554003543480021003726361522056550124781500426368804583714202805900410839738158741213702240193210745783480247643714862762257865826162499057930656871424591608773839672275074466332037038394549475530072164959103768504274871805758374206103539974103942331052327081698477807164417608174414526977725333879198833725395962100347212024773656065712826541693472585541438773560084160525432218897844816506427163140672723516388467130623847703827466948243019436554241892378060960413469941994633380407918696276073343835317065522675172514825093285367689721004328903543972910462153019371060953246247291973895642049315268907727390509994454524062403764044143594348082377450894330801787259223075724053177073562725851402269725227017727223942416054692596402419472534121225851809434575493566726920370525821767908829941670584211531980584724633336000009262343052432825917491632981740798472778771083079321544245732473903176929542348904724935911454444016839433176411179786083336214841070208496149192166521554869051743741981372066526023333279199676873061297774587000582507189585044516920245863718540668517477448408861456256440737904509808155080960472280635529896307971528304597135974803086074095085654482364847925798484713072743202582397173436813860464771184950890886126915455876058336228877800629870721665776156689676379823785632326963456619587464894317496168390975897225636640251412719570177165605884792108205249500732308486612133660193342292551811262893957990816137200939656432231871645539294033369993246996260499955504554209548652073588848803968973638972690554829058882819334480875286615963411672376752257123128709043412544257480191174114469262245345937130698950804292547834762288371443370733179533890963471006639710293923764954089327376121816331800789905296954649719780009894506943652228619674890450530021133782789162469892329884769966029644835853355113188390888181214596188566072329790392662231520151918533992231704272127619943340121815973907941526566771971638368733333912716833780527333966991911096540460242740632834161188233259614347262713320674086657053491486851905395765256396635889001267441284019981126473616765713209801837005158498846440768533711836444843560536400129847558706940443608276843903700412693820984166498486082826323084361615172787581799907212887673954940767620629897392290888711065358746299794340145372499513274444790525459853712707829517638403413044631060286283213031913753520769178842746164357665940181391971681388736330227895040772201726188983658397533388533009734744722466231988885719751776301841160729594193798491844045407706178517401753327076297347451673886189049021625891234864140502355857706961458034681401232754114864839757035596827686814005196385333270082384312307282170630080813739216435223574282049450625873940729365706104682266174753190239136761887186963835471011628923824174818441900530452964268035090195046332960025130940915503396487938286480968522278991059956724232004535550985930021610351692167007481053706583058261017909658086743271205581285136055434941720089114581403771030564550874907576077590066377241953319355063686536801459964040048122223348636533567981735776477808781026499818016689356553512205666656023511955658235900676717764287074376048376766920662367386699118753013637015125491781319385073918930478561469838712828263517543454650720802682508664714123916058804695620960264737594263816816951030888822115110628804378534698309465785138094330596159523610058381977653379886142555134342600830196796554378937096011591408948150282098886825466972400802139449606192163977592497113652979333645460167748592805648565747357048762788101059462090758857139602707416405714428052687349387585739756356832339549011976596982232836538320876020748914134955109439782929235834824216885529245328729978654413638259004998596230695891335288774451767454370820652287691021082964185123635103727458455086778657618970564954461448344565023740593740300641189577607136320774986951787845252638983836187007155774003751505773718777731090717927188238492433239590195580967551544949919462918087563286759029939024600367005786014122803845868537014493859280817849385538473006513023157557018020642905093194646518925293212931651527316513799016822929424757878587627929379759159715136796795178218433416601492653769430924779724928637523815812477557546273202890359348309937503778247873851356045931819048415346450179654867150562619732070947164781591789201098375886698068756290944834002793432737639548650250198307876020586637173751903951182493010341260138842442311320533397973057031219169631560704197928554031579765117518017512536911806524951410014185869601969084942204302289958002944119939284954669464603669428317059386593742617028223591012505964975381923480148319117947598990864453157877163211273379860710445968764704155817114507696855973986804511553560180302032789898523882373277562721402707407379464480107414612807262746684368688444914258234480670922808543409999571221071458746662700900237009439544567965189500715280245497939885788486667281435122539022354058394132562988185293057076376977945133400805572981496543428107352785476390435715948370274786724889578113416819140593163082230477998740850070330825493766901650247911837764250472387444003601923626191735637980393659107943878634620951372015100610964742575764664789398619915535806626562936295242944220948893844678655983307201391942786294118157481950771192884059560718863881365098248255916930620142124634011771276462245739072854421981807790586730575829894916128900284132857815269670672747801832967068633986323769613626042169876898109887686068887757607896005759734990866250514727304383202842424247765835625230524592635930914810429313600597206570506100167330674968154224861513841589644170192677029366368327466732542986661025447003006426217798663418865121110787170689225027044096159652671499965104818640207264954059382653753342250417129718365273214493641605406392594596539146968202196493753647069334156388474348684488225138035772011423758095318121446615165665658573201566686485717434721099303837850051635070266372950683050313023761614548087579593871918829602847351438984601858766217153380237058060466370780382282252848841207831205079661967011583044908111596988773209982815678225665525121557352686945330668262612040236828832557884468246895276010427752648008027353222304225261410871024139276867477620357353958177665425484632876595507219228991579618363089700987876623198887536485760903366559101601054578044828424528761007211466170378509125507257098606833446487949777451241426689340214182350130294839194967129333239695077598694798065018011421275929996436438821094506745223934466960811284939570563544280738819528467135001985517990949371026140218216527285143799671538854907804191004438294170901724226275574272583045891633279658514411874207585377637409176833988754153289355859720638563456919093895528471310235586208613180057963211336901775426299639909430185590339126192339550219520356457137040847443370403264389518291186909333598576260463577439827326483351778700304716188967136289006349080291843597761107382414358872910784187164984773550058294946433847394779455177287731805595249446839567478765043061436896888855252826119116860049467772508249336173252536448018287594363719420697504462224744479973822631980702991393912195697588627196120555287435910524670088565056139667259249571787454556255246290771490927420085537612526433686158973678893692471887043055030843482647936107390198247225332858613433989383636909871702253866281557074288190565516735157681639789033541944855081219383575419720639784955699022230131833333116885644080446883896902055256444017849369260801164052143827783299593810310934149033375472181145201638793853352566154277520174790457345698896319934063430644507472204554801055425408328438254341493769153243353410837168579146162718760930796295444808707860280572916404715749154978727453330589056576945027761260680539727818344145899316818928206734773709613940071544438595926706059351790845180164256828252163695919986565032835697377652607482702509277623289727918166283711965984816679140105156368699936870158192928781611788160096336109982203753808365982082101478026008513632464693568219485750952157203642106709494590382633959218547554564003779739101524663041625800993691949347909659227120231189270289422610936044206583498649109812280022014277338800474608669096018190120919297527311675588158938968819467444062455704397916872258525059634484810636512741546615664978812462830821100051230948609049314379665483874304674127026602307165474339138026132847443601937185375627496507230261731898124148378521744041324852827459611560367287081404678370220947495871005443404243581284538893997861802302884250723054189872704673573908342854878422166740394254281577931591019680027771250315701677248032892977423185748789881020256020883124917162353207616885114219723528297990939750789798133737867969595999423352596014901630882081758476211962698927069691269847217601820122281681201533886651372483679369583611271161797412324623634211209376592048262323402367989677044612193044072039013135616559346541153103583691214370810163435352545520573084899125964053740250466713779760238033142933589242765243302857204831414724725687267999103981676759737352599551049368077060489482278312539841484011643344051505463099786258866897380894914018608121769173777635298120688597865141714764309455754816147001281675063620805135159644269181169411832192674290378508672416582236696956287426725686565217553344976991441562025621086121894926191733323483628309334606995735894287539660739771791245754104073870615100933755086938623306015131498542671208787118103565613266093988996627579281925181503268237071885289510845282363188075334886337090841485807728939929582953944737078355371003749591897709994059581267761772829494711779330001077296106971940795884805010004086632600940247102031461502996614951589364730677131934570878828350296758074001378768095719117533734912734466619796491903753338708281532514375320762958361264547321448788007307300973236247203729990820368768058905163357178351536093302267852784894120945847229958954872176509433038794838138512578208331247894198861905806085373467438137270140803570956609110550089747835404438220749914916639734256290938469079303712529811473895150547070114502185755207747255617814633211893712897902522353061993822131178142970904090460905384107562223112041022311811965587478397368475957666360258305937101819304270674992163553063021036310870492115287062985962765945937580478428535819552366679581403868009261584490680235126407915294149897788845314397936847052010406523852078921706105923226124686186521431093117761798769191860264716072237091533759012283416763054621833521006787969394152729747475869691990600892297810368002021863031684326219346522640581951766021118719454414652644995217051813166330241198890484008038388422700289134893717645214238450069390381919414682072280594038728891395769949152822676503830138365784459937344176100440360502853470823171255966745099017481006579172886850588292998751034307365294236040761638814001367872529115422499676542780359630855619581062379720162871056649150772215999275181647727255150438894636359296670025814311039143211316970004879094044929475927008351583994066678727086395555050983805756537851099976805178436905450725615063037430075238372734547909468018020918248269592417570385053958659391398672276315377984168154955829556921509885626987534400459034535194213705347553119189918825317523374926857217173547127036031431088770959553751093366950010127397294589128892910426881778464708349542181162457496653604101904644820775447250910414561604871989365985557708943225713794191662307037878167037571217591457589964270681513580627649776030048298482909943087067902823808434081116586434408820568216644676745726459254400454572133310438535236459675489672572137053673995985609684717564305190723412666359151272282332996745142999145223295309995774925650981439228004161871440145800164274554760305144399598406498213466504738801607321594483687837358125081934564388964657771362928752022187873741692415869563719110479894650076644952130636170419234771702155365436218023793506826437436619073679662590094508641863540395910421621200074399045627079568006182545936886830665181469470560776756827268573674105647230573939890738113176760815740985429456388151241293047075123285599432917085349417886987434271551127264688407396949899886655468372113964534398635652936353176065525416532577798830150966388789911091702125533111323931993021545349361395217157082664054760962123261340842699136929741003256649989979375896370809555773816362505479320166583854106165749946598264961109617099317993339954621456325598721483113886276649111988832513575284991958113532877844456514456235561127936814474489971516136125193198252968789312778416742842996673757204617652139847204057606491283388886746484888907638178127989120408650629601444573831816726656943239369445236138868457282915332692197064909490074574374499924530703190871697532155585493935092000276121918596115556507388559225936950506634918364286317912402838386291744780450531467998151812714846578813768778815324639497321582521898972989054816070714691478363211601262184048810276372863981663989863631134325854692062003114653248622220865271533629733702359213191219080818740987613161913464812440103134395495426887499353599962716055163793404529279156720986352066651846324224607685390479942707799597537609477283541516523341641347424065166699439321408065046192307607637181415823769371332637268237915775057743688099129898373022740455662360408696074109699625279364857366526733526137226874824374047657249707240691111843843762772308227810709399002742267979895158515986204675799892695286699295815386378754776697270557955041033349653771760149760121870995409474363434958189278807980425966800496372101476927913402045563535217123790604921232198554781320578134358485662386305380667658962447373169531228968457595700638052816878698215968855609313718527072971625604023187887710321994175844319388815300087103800202329965673195241926179293611322306887038695155065331834780330332770134662799597909849346938761556102125150425977695417166319811732874802653683889262451066705796436833501569931044170939762994812266607357994855991144719209238953390356043141870020551930361742857339470237700197399506342207136822205113867665552497637229830744999524570000414857120253990633221755831975062565416110799451400401605155794284854429876368538055717663887013144278281647742675562631055491327404404037701694528041636907783577684108076153387998541086892806915264250206102619491335265526317859131536559268518199824337709125485353017426813685462016948482878651610912655502347645045124186054764944416872891667400329561349326259699866463097575119293161824132113561695556203249027659115941243632421872631868637697772902702266044396167225840516741731106990796998910252621511022298955783080870714988778515713079524881619838280323925968314225084152830986010188724732373408105845053971454443345421073351561466896970545189616469833697054214342038551350015685539034170805864679034764620346413311361028371685808448324055766103865281072794271442460881103262987526292696225222074121731656280292658061049436342801353282387505084094399207800854351233653891795978870009743603194726038005150974978919938994381929707310162055398279747930939647237090483867898019018859596315247518618597880715545283417577099049079972612699262764660314251249201408179169816615449639789763716932792793251572187768480672070938430078604055251467453677854702819350147290220512625051243475645190014103284035345299243945466295523547444928166809451458341800808820216525629283294365225785599940545597356162082649821760380538260101433326652321881508249011762884830778054685686198303945474841487140856796251921862682978594543025872469937436263545629192001570495960928139194170656624123585312122964769254731344919564130394741999916127707000635900948186391689850019750163802805757948798132451789892933292286566211407836909329603802815891449004342147911974792253097920993684705053913157598687030502208282059421410561612028362950380810394842074242943590103211347155403166388415075880227495011239340195320407691407821385956144074056957875107245257783728780112791204369256943641639596480755208636488172292820492455208467517746363093788498003879301862986167094652895850415721507384268299404597789993724526557365107539456048426044127116148561874078960845047471387324398094961018458260148366535527146030705184544265478848978361602010820503519298535940980163759993484578139757530469016778253020121875323857659113337538993211050657462243189552574484528453060319197286154434420483333974381468279545019431164344941088067436530938720071662684755960095959022105799740735462023029583152927090647093416232117795997495485489449126933088238583176893371905112437033620766996456710820165037079891747507744702832091881816082930213175832304115476552102493036796212996278055445916296923619832468698046261457626681704799837188574204056832973176576327857466503972623129895246482421739153562599935621687724018160527928966082196628060350674418805488450964528643423339870009415022012067178809190148566444998169445736984366674802154397289091172641933272117009653727567549504343771646564330072656168084302050856822257393481378411511233179527221485572373318712994907711048030068194267633858067300445076715015347586637400536779749173464142976283620815263445721549673401586478056918973689684652066547039305091728215862531531948555952281786379115725426028598592982400278849283683700452353507327317682598269160776045573796328664683311664509242161895892417829439982031333977544173713577350849458269252114803353995094945486767632282635292760782213885187959317730802353669205970361352912542265098139419107459004055417996572612352842726620606128977866690372031504859688816290358704574561537785573543245069858687892556851688780463344096794984981592004129332017471729226897674203501976599861379472921824820579942143794936554374533514344810047478295354690736684504848300141420619062217983493573909402699221570023293906846817842562540815508948703733773799951081796018373949960980773954349492551729132386446854509696337427009160434523991560479035856537075670981321690661409234011059154155213940621753930242367533851152177496571213723595015804611025998603016363051847574364723970925536045672608815533382864425272410327901225347021677581152108888046351870688703943310751420542865582845160974888921821669541624474066054993721219196840331449105239049630749186580189044865685181308628898105559206806827814535531347106585044710309229516037371401493634428492082681802551175032070756749641566379021256935814965023869210600797057111999173312046554548851295668425069929367455702298388748437286209533666949010447534052619327052048344249840369490047507363327903883681424321651488874684061986513645222330009037651994294460465991316787317478227401174909828023457480123175916874884673407165975869644092595833324930044744791565472560190946302252464705994516104768053357494144151565008880524199754748435287848777478102288662198977258091349952666227675043882842203943565536599091001557798799453053893938699020774645926189585217055570225986667065489532411865672163239426963876118577446477028695619051006112802977352581833173631153741257860684621525956346133038592845274661211191204318400857064828651589670147714028844709228918230148962758108808267999341558284201823025081564374714917380402033254484200892567185549738796412507993955260700660252495468552964153147885327995663875728107629734808098185948320566415034548031135533711306803100757499514513979286527272298356019730308940250227183715611484247155665601668819399879825276294298646402660174074205314953331344363586743236211148417106341392239082402488735669675792187965508005292066084086603282322454041630596541736228908547086603370349376601823795738848381205101652041739228556995270222926064544154848862181694155029575290712791834065826404121194034462752637391989167554759611957386945483117606674407870400486726252612625830340478271911520158977291309435126124066955840164499454725181934215183914286260796157956589274256018902920479359513496405266187882434620360035794952671475105897380261535830445746158843006725857471564816874703139916566006821718568831189928449557868350238144617268478346461895986760418427289941302797558585255481165314857872651734476818247052452836182202272854681761051432061610285668649487593182639698996953424340847045161549737587821609762726810710270436867989388940076310995882265759267228806351558950045248087158531087048142958999382627640444522428582425025306979362850435394073930299387855723305676408100085094430681252707711918033644807668793326877174009964129444964595203871734274437690530880883852318321671155493276371811726065687155329333868159069989845722425209743972623013605214098419325779187203682864084217479109290513419514847644210649099049665556298734878826176509091399868149302800424293247831693801493821177817137018078007213957174559232477008009977788173022489471012356972662666855095221827506255458284121851279777980153676716781515757663051694475242701358396580145493597316200876005186700833133603469545873127650813596543160072456058270364134030262270151558861325945255693875368665120741071362591063188812647372396479220227751083141588890489916824545301147769492158750861680179301840886171680383418999448869837750471171549543115359853543768782000607513552459831407327932044247593743302833244201156554550126342184855783338153926827619258374035846022148201416946959528146371620531521232950905969779819793265172599872423739746069211867842773625072440840951796508433314419761458476942770157304752653122005462499646228618434897117619867461503527225982432190076300565268403488727531356575076313722535838622894189857491775518359130598292357187838540441537942720118469263929419430440503084051989269521355400143210105568491266731636182057361611481428473163713449875267011984310305905858280234531907348100340465092775266881569131325758521090825868088606017279123281426868869962149716858992452297536417377274178937949840062047441158853974127232033944487791383516791193597320757053180360507455382386465318990710556679104033983915926621092430116536995578064620269815628856323790107658871378315526598223262320298820000553411691068418361811521555921920070452207725109569737822779192018864675225092030649336617561400517201963628067933106404164181755684017255131938883408253679035580064160640536928969413296991111362179084334256679670729148438373490515101522624762981036081427822915089690041214042363396954450087125782865336409135010182350173855337021213711741223246002051962113061457151254196894788695861561218206412943409470816005855700874151806859567986728961275139537545124305008557607104315427384320765592764698957641335850030882324585312334261577885147276780467672872120808763477642516422087122553609762672217619516029499343486389630611239138020680089181431284471948933930799338099592877267050258372068679034399567809637561423205790820289403887184355043693800152025013169078160865253721384070940162427541089058417312781380457270431392127690333861284344714828991269109363115248410298341153458306578717150723404061728578165779980961118759288029482606100748112001509342684628607389842418982196414930404735015184153833045492290783848425775555128920117541590905259868703350894462657239587275712760471076292277646017045782367683576371718411975687032537811201217414214043852887332249715384754188033890024454807097753017971587256789646169563760324726480544629636487492685564905493455919904999526608068103448483770853837849628398255590585484521709596317757398627083538437742973684046548821305036027419582984774508274912484534563562660327988759077514835531588630912600473967780537800385595903356478294241528945993542528848540087594178516240315233510951525439609167120898505689758187035711075524899280167502950290908410192826913983175044404649692200991428077387033053377470431665610713446652959302726108684352235378601965704644884242975064730408726541948950430096957921865795934886082147968483717838729971929685882977666503918818773614935639906489132886949755159045337245328277276141088571823407147020439549659540922025717001877936436816749539811080585345743456189151343049321088674767961600139672287721795573434642197817790142278859389790203800982737930322571652552542630504085251598310433591208804947481729596468785496731650506982870942143451016410799973334597669294587933965566392482469350766809531600822264104744489556297605484059316541633060058400914940127798822428332043167978065572926395126815008818655837119528526225645325681854741685131015798566219442917750306464142537179960025758149399749809901400590739770111998577308996218220493918941584723304337627339138005403179342763577290004048215001128725574401211584403921313450573817297627460584697664093552373437092440159158739925264168131078048629200207977671068432841972727139617166276292260491169691347507740932193384979967652532778136795680749007920571334357676747088727904824026752791528907654949269170486529922609860185236849886634129066754421867098008245560513287092319432100623839998102013690187607913159792382788377063552568959732643901055489910615679854663232243813336645898940791082463623687772499132449784183945767042412046362499333325216539665794785696073780139913006348568270886038049310729816931706247340825343813388552028061972480844266194880636532450737602230597177277106191427602383954543292705440480377724265316716124195322525662950678163664840710239985419018521870624360071944684905406735498901697993569511049671573625328947832183163588236979194154629883835158765118792322201391679294532064448588717329746906765604798621847672091813769835007236551758158114806755591302931288867862029373269563830448133343210816569194844090057104513163718240626273011315366454233994178728479095801391937483218572787826138342212767591816547819694217392968591948963300204172735134963665557968705571085191782140848823930989645967430865724447487296610058559958222650864314672238496470572881744295291688126157770372792058943040822631519459607030226855411046429598644640397219981390222813004404788987060214081045311850539320417648984591330016291418092088001937701265943164221456396281262602018785985954961595493090706486901294606491313882342519489320316645491713873452538949810611894299409114586621289299527765880506856252191380190617452830651587863032628355417970153739967427451051281253524804735974226109155682740865684049285425485124570156156109082274619356556185779490907403476220102454950850990406165828605566526986640237914236582897169587303489808275369060209626486064543096133465359363047131325137761830836915765718577031399889434198581873911336789303475381293060931668897381823739355146669070224981764987171512874995046371059781112564089229148290377204540974024772318152609728395371010665144010855916138069666226647086518317980683909386865380102021925477714149018879470322825417672805465530865391465219415505109063119235451298231408214040244766391632393741873190820526534649975718822858924324898831020218650489616823388945967710873317792068432559617012778717757744698693038927959868830933899388665771260818773554375675902424774076343251500437751302059949868638608900775437351485621159500311572949205686102275114806206169186402891003688088075474810158628580588814951316725313666599296392484056340955822950483763588196054225175393766846924207330273669230527884840512316058160541947944051964311436447942791858957788458157882590326811514880642410752921331018015955463120851067125865582768158492623087128890559775268401565492746402793248046615816670612482941541198152609492996342009388755503383719874919896286889252074404351607733308374172553336462118437466351869009387402786433672351307142144646573168668696622407769801248470085620463423623733609075325301096671631180098360251530921653958998954773134188122045901920281896118409280543583044268453680369171086189309532772186305584035592992017474592180790288225638045289597072418699795934936842920183904344859877075212286350238910055093982844976714702894308610770714018163950412236320457315278817187200665177485235629792995141991749621272978487458044780820381427940840061349917747423485927754006706569724240215467553944692173526208361721656955992764558608724727964001840326396515624725866970713814973917136172217851077624585110175541519853925186986949133624779277834633332832444824940128413439465276259031059811378419040140764080205054790382623418431616739571276159341813024445340378390868682501801532978759290531955673656153759366416448812479372438203046228403708068519221619203692374991217672694871742862507406078989267120436081285611933421170752390469098326969836515139784929473551280259803378734279710250151889275276417683369675405622752915035656311424237477974787085697207799009593421062014192865385277199145888416279433994880418437530948099650426461032853654066195221180755590833487246550961405708784194193227138119411855821264613520985496301041731885319760357085526755080246264112660890931845455068336336920640514407716490228707512640814520031133808566298000847269498460685782559494641436048959772651156995450021386822516187270903941275550628774315804300565653574979769640043304449583910503488252770695041412196915842548021928998130672823755009329852512834275288124539697204620549207830747113403514352517356129504985203005181464893715339753659798348389653939312431709336936764710962428939929964983418212438935068750379963192039815830486140931477895508204093792969735788228690405945310739107767988400987490401411826287776547422847668541109284747279496343953447799578723252776329531478273745450772925805210118767248709343982228228065428324513974977624534713113308755712361069073306324136302198338898998804954456667230541483900823183079231429626311794198097156943664239068762986198067618033446886260468880034739770573037596364323797643854695969629564090940603508294173274060428607008670052228516784510117876659272797574387947494899068332186646403744886772098721693970530136140656610303964600352574261618033551509697452394717570551724944675173085548380148364383706956506882545049862124164999226494342226344548075690349553062590572149699449802258808303557375461279934119682558969393618367755979542675495737737780777868366750583268530470228609039055501780122763854048590529006975522103297231439395587908830824572496237288206927858555817944563252744101550195188469778462100273625330159920916457644676426152715180759233456397549258472535121831502203640738773243641112915310698193794225616660256885353295771110905841218137754832595009950368265035309293382424227265445467643735939880103113926389950601849521196199144923625166472010602390788033092237059933482580019168681939165149210302361818718956337819647180319344767379951468247255995152234522928446407780183844778021612599888985330444769650351054784630818893341094635283518704321277469748970448696197905305556448809606533402910280086117973847062507401895520335292015578623599454889055124676415291397202563732073786920067765343447586524651009746281658848017245673294111210245964142050440842894458640289600758854568058904611308787992574977608944604434935605045892298932963174972516168375824183276291555536533575729521775830727592118539233847797869813161094469294259212767313114424761319455019917505424585114318168730850019225296492635779935057553517779089556889688428706473080653834970018378732382862624808768147833803180388415269998398639445199195293553458317053168508227632690557964757020900594962418989519138094435440645882211221045550628884725181172187368444620181722769938532744285632589235267728336853628948309355495799795845531645273059526399979037507913521376045684043865459803128663383158430265391512457200597978351396943771861469389977923096551881619461489046132207317207384822900639343595004089223836173246082923959722708433670591714461550748876919233212944578122384948087806959346938868896092995885447363863747064614064128469426076980234910244446914483904516221057140362511920451046801033045817877766417055332568314433528141068316427122516550612078898795542579596327521144480668426284484564494375698182126086598816229979586541389767298677140925451393640826816124625265042172182588284273748609964392020384988044237544784226316546712798514081442561100998153043074185978157208313083021562549134094797696607211220930685809506616195673077822128614960856190196781195561785023917903340012327771127911540794443166351644292578080644108485221402259789606494646328166012578920333424146568479988258837733635298463809166148586967508354505083209943546171544593858336532737558414937855453144041256734126665752276834472160680533471668451412626113043983297807869498997071702377986892239396527946524779033562113697940149195553635892595845678149592804801094845763697956615386005275703918430313527843219639075220703838065616698823194771502529165848424042401269079321719089003526728374421528810918081711810993536070043258501434599702263249494171082973288235758533100219769048253927065714368964360708879713735642622502990372204169331429899627735508597728535021423267705162740355784894864661688477343112301647371002834205893261802707992958417283633951292321680203722124929381155766011732036111239082629521157182230981645333901620017651092567199468005256806527418555609429838468695764282763758385725462617403011081980168941208852403775715273565212077712878926632635888868417124737417286094632976550391678898950361627391212851001499197343485414300050000199042603677622084653329071643854932127232673873383482478914239303483572173717380891648705232462280672435752741952938309653055282731193303950834362709158687713085877085549963523819574252121698791084665545278860315043424999576109704425937814496496373671860769079509244290915555696497839485611748224795703418995348362741625604883431386735927548595368244608838820316927677169638939052622944510355586685073188795817609557548811212412217071735012242642666218014419320810076385352101740149959174166233630593718345377585876124582548036315837050545356804443183559758058847474397833626620340229296455541467825204285037049224616497510917864103563110163819534985000512320947093885954526054118544073400257730441744437352776855998733862396488553221810379365602403686948274596436407385900702313455247626525066043528202083471052635324882645517170624918325018357481580159734382553782805471484675774848936193977848882321037024497156663935266251204928474653202617377657617774976964934175499809812946213716681282548555157284799978912667739450210749478022447016218003789155472857380233853041978023930351008775114896416457119004477393455220920686331347480143309385174562424076128748035803926201944947459774520497093230430348256648518526975671275072280337302781114918266946492567135079271964824649143818153147727885843494306940208516873945001452306962733723786238631315771068996769080544478677064732256610875852795596366758877954675299473655335730999394388617966769531812844792621841745704735924467645312228264728419739794778335914415162790347732022296541269539189622022991714301624627449821751140339441576141755554524961914434380101739181016363055626882215714337593246555267411021574702750868775666401027865548938549353720919042898487084277948881996323429555519815986196818783719546706290595004697444980995628039422792644648503402877637889692890364950378977355775095898143923979303444661764467043976664157711405548286098980067372361937830076982821895778207867504212787387855427695524590364691629663870387709377082091938649745846075852435669092592328433749537621699926623710454517714355671136920174344912339090024860280683068071329774548895251785991446380754509139022943312691573548692153438806718036758673942392810271128773656321379032258610648297629556209825189079654430614701613602102145128284606890756874814602385172924706047698069424195311127980552196036123972713683882736167120101345354327824290666461641843218516053768030418844898087601720889377893373798401703854351578949119752783176840149060733897573222963775641802788414731527070040850793276892993569828523786874364146949722159516444683132162793968986954936423948148788459699730095500673771127705867124654096200016763251178466292261383724062262549471150509115452529889427166734429517063283405910209511699802727655148928158135679580382739617551272311226597247351516263653681799353679417851130391529706795138930364826425944289247334708415147063279087061428404399342718674289851379544055133640646796851428652164935653345851079843473828559896158704852745824516232685271557420470890705750036985177879808359229889280189963289822867309431276347327708494320679512637347651377406228770268524825669621186691040241002419723799418218039048948032158462661927134918664152850012452166708815543604946784134666370876683361510046332415886417887405914358506575076565458247232930919099141803681052771400788903401225762685922569354346449771179134552402461731382125859369484181902322218357371534841065359738166131999280817015977452803080448724033881355912359116373763133467371256982298161382497983137602894941469555673882292437487615594862783627344855782448398895522034944285586383821299185429864649305848354816318683816052672310952468002274224004383194635294440575191399719865550834357425550622572108710773214935518312117662046845223532753262483224400536304812168792499325051983448815474932286180992582441752768441115472395148094519775092351009523987365462131115599545158409151693776782927136293845811995976711061175456040262165489559777979371577128548062238644141584288358907139376964425091510115901288532986221637770917910422832763413481177678280529855623893743439167358589267754764474933867591613353494548872993704320645859928420489427337137743755185548262959811544482623031392138771116170373617157428605128446465067457988127703233121468083255883994613502481776251631735006922926123601625791656507024971538991890551495188276449109400453144216903903015801253771398486597502072556588757893967715106729617619589385951128848544075400124300899605671983332977747763963068510958006164768548509879206706380241910215082542709089518043274649469325859550817523508162366231329236683799830563799461337591937362996587241782253680017567684721352496151217604676797235292096314439675722353402591324773797833888657962438439464013844772611420650509931377933017710172751707130889719937643995521615120796956517790796276509310863669730119999062244692062217780849707950377835376773957990482272335428706644460402574065180407564600079871936881909955168111105813260499791469014124787153444080627677660826174947867503023782510089350807894723185773994232768898360744052733754980235655970649399576860856350204850679749087700262927117187474991049843947533840574318612199601605403894053435022416608397515388937318128236447530314826721485554860172270865392007758732249600216336217047718328145468811085987307365777616138497456350822768733076008629334435659744301756907789585227489575551323492085729765448792904724822589127539546647728932379212629375830910209616414057425651738117141727684621116193596037160699015813921347486249172474057651928943470765958807438435657299225547325730192842940133429121887075456788928826349243377620464666572542712624028137749785941365993917769473990289147301251732417493823253423937672084446329599727729196236949229606303079615127515616082191668639873301686653054327556880191390845274045811222681136327052843026909700108315974849356680064211865803084430885586683440259889703962840002249063794155010795447236788581105643836770743224654441199738070603677423284600500656143856577190788513250729954833716851384181703266347551256688703481184828556288198429425080818724174072587355990681719082978407663524027998521441714812563470022506623772547119356929279240590476398501267908650727743047204126214737181731959308911803226517269322418211524516473817921172495759577023554427915984933032659055070649679026635286796762368429959474930661056537027090455364181142107835197079181685944368506043474133442299071314965749221789247356223863815550380655978997025466188637350380091643773593610307971728014027897665207336838322651423583630854932061412582423949706668635340073637332003757826470138982821869108796909987454546665273462894872363365207995435709449811225157224657564068367226545987646868875419918304234284046643024306407028328673054885218046555103283880853580491746507549169405129040680551942611939532871598220466329038216505210843786648993895157028605687524124499470029586036553798173890781516696882075077436982905549816955065443557732447290739043652583227469411230210541421721547678624486939736045683934025891791418137588713713738682399104259255008176955998254094566858115650986522420830997950552489173105457036246613619795732064231424477154346805859185162028738723385667132790357595464009960929446184275334229766682025580383492956512090352281545066798804943642202580458957970040552164929328942535548648895970001641256157908015111458451557909029711450383209268756943371339527740942549094428120907949276889240757380874329464646988570442508839095680482040965772660511855055136177140674454372757851092280321112583973126576892269453657900427059599526524859204472063430286887771231310348519562250685327140165932318825178276395263657745779215248115802381815942989039295055370604653701173070323664217096278545932503313906033975293464089144295999976793833289782112395685530745177082544058955286267166171455028378091800200419792374103660985887959562340112350193372290409173310235317817281206704625359884861594362898450523907422064123284359376749957905414543219010588187434579462653015436418696501794470090286523543380655091544098030777846535275042640412789337661838864267513936914872499872419182091794147336168075653896759361345892408255312811081300504642585868028853001105745602183553159418883450940789896041282653175479804804276807791843731059580358236061319707315745626360923586368991480939753755553782382867441739082651214103037507731714048718307875019945241135754998461511037880445800050219137788018171638854238306026916131133559840129714848016766544378050459236987019275878386723710934557965441467003981996301207313240792909448323170464223698918697702360194645841512683785325765168744875830530139838417006019292864527899015010079484690422866158156193278764817240869397640855166212300620655318538513646150437570931540785895870935065807104930407670047229182706735762888991453853524868811438355694496934235303917563990634166897073325087802114128135572601036301266553573906384695275406505314306980590657447287654015942896137417620065058168507280516919822327080539227420408609046032310538212198365143488655572221246348307241025375768961462949300333708036852739572964393229836294650074449278544880512824015032055832249395982464558338160116770009093053791238318371811430191725334229439765999591714088132787208670509761039065943416525542161054113994956710107871124358300290955489098236993740227445378858833034565636888062462311468628063427623555284728009899906211567547844967343544397589072354515579937604741693404809242782004708508563436030066168733336765564415435501778723794673580434713641871787198697000040193488860740909341513009886027862713805869125529121038217917293582146264195641358273704667870388701406125264848625926094816827330644242794945572980280603177338501441720341226375364434323719889438579163390327737640312326967793919153536704356049737509022806976573445130795319911574931039295145429721781309749065503398136768932165329336796708814509501955572764470239261055824537651052030596241169959040229906247458083847666595656450652743517552309170671788509696989015457920513279004979107122787116908779984116133549617570733161414700946892327828968436496412327653973736534871953085181169560363530544816562164271105534201754134617844253052648163406010966961985989982826038242411027033356694367510415711990295569417153104701818164093891502821872711356740471397031112049948983616699504055414452804964238492708096654373616157326879062963804417981316997467619653840821140780321474438509089113196045711528421269724542978090773677102311326898076308290555544281381838768862439658791330329597466429002318667580189182100047080445088459771591158176691714864206097991749991959163639639269105224264040224004918257526536862189689181513368969401945860478321106765266120235045245128889406954480645117975859947677475862278611863813099238927581970832541814609353928825115080176989247060403585030215017998413132881313734080703523517611266443393907002721408252676305673084807503164633319071686377741173879412558192083932291091074149282397779367277200924256733499871125739506021980677833943340588553663145427320610770592287407195045594274138735654699431836600395900355335185539166745534776269824858290761500647334237245235347329097881853637948163286383513759891482804493403061674111217883903004321234011210182364809665099482877621641897670792276336925568036859365365159809922511660760502543671572843135010293823712591949689948151246584058483254733101982861147508678296512277526842749908250669299105206564458786987934352767772647926053406006124949590731894300215857678544052651373154017402027114370402308557263819540791102628390696731128884417325373325576974026036028940927655284186010526057015309757567570638126923098828109126364515270114476725245562968043719713116585113780777237612642778936790303324338033525028018188997222788780248764585586260361849838476062050467744056599932288579876639784369313758074046660852025807211924209077200818314059503698423274496316698808355720230449952701360596063325311217482861697401694359448007744749733413916149047000903714706002617533160109371530530221427822568236917512570086513430411196444169034990896714020631517898281055595101791454789768405573116605208301822357789720054103422982489667848635703123019009676042856540664347555020757049633096482230341741124680290387120432268434043398104715552026664870985021561011973234017661047641387843950788878103564954614696199960081023496546677661958066655204951923929755541273860228101288411976206496042615235375201326315061418150794961964434575690370327270497049779271879106267002088852437102944114730057373057830325286156473159582045155155925794418546858943061794683527813040139681201417335647716032506495946131419688419336667962842815778372340879158735518993786407109183000217315554341582506969695630935816286771112652099095704825141856285442637143226327504412889038838535341558447697230958434306928515581594047307663020501596986354148777881810913659982027582861625669243795999200545580401647704518533310642415968887361512142916913258751337407203240221256459220892218657625292199655978814765050596400801583888917635807671569826329707169118320468602982115557722989946548192336418772564178364916693001807643286902959769930562466589222838144020960727763408378533051558178229109269588265996583562436252444485098640813005173080817458154779699351775453166057977706266311703932604733170644121812208483759280733230032141040637342102884248953053270264132130867967087759117276303247971207324774322202345955865062464237952318101129133174371233954070355913336263516636848143353474508987078941957589330771650290499962569605848927912088955795769680544576272846387826610920947315708991072391786558312413599123859136830860202338886311146681071978311987114248903644177799344915723376436094847291260794988712721533487598473003360609897812817426076636855886584234136311467054754962492104189100250906748161280929761891306099988080962119439284804857152042965194575211704319794922302492830559871730134147665691245597665718891309588817461302445686374736510622882755688273143435533253520838690387104678748688944368229665007589053616007444893947247490190904459966136237280621898456972765816087380723096494550783397932806096603268991999599699871836227504763166025676568072980673339726784614768436615914156675543000589362202149820167257564494130701708350233426141626408778684316447688146438503328622330901051871972341461054327486785497705727633739142092879667316997678313360643281209897548374043980644032537525276459120318917787160571071510415033113962476901073287181318221682465031803574082908339035536249787310281355064299335277714454414175387087278464488950864041674031402823664231770363551041185348677969459764994394858702530667147483414347132995228941540073175289295182275375330234343034470980965510734207125469473893218247871807162505781037053974400849659609417565597329220555010421965190941016632475301418701705397049881836860591188808252070077984098750629283978449465578483950017649742297697415826182132511338420235705898521512946564773435812090437195013676762915520528557561606777068110373823159578429665685703540321739114439111091130634103063616072116929555707120763504261465160403143213713712526481485209643137488552557901851630516476880206807673294557318815088522031255201428208302421913792047993678593842164955507020199164699918813832499218559994979403773983697235582032730861807744220421395370229531802347592617173321632044830607440596921021376689800833188200618635115120473424588551060138808305671107738706143196260634026552796329304311290601610980923330756148199261250729425873470589779072408372134716543104773663158109322331676548741742170858889463004338810376824841518947633348752621823037021041055550414816975691183848206010814352635973842276156238805360067187851829373127985869064223225212812964758018402315541966165375846627331588514388336425650804091517680535293758644567279261756950520577628515190217622609389617766044335082544092943988211167832524415238293771584661705041796212896072005871652646083361220912777604172993315586444863116713792024480481292700292881565303860444898633199056381471807940703328866518719786555672661657688684984695180164151784959409222319348901240407050053870918571277969241985587501997883703267619420671046190773225194274205814365493797812122687746035240267966591679591320505488778933109913005325215739584057762175550672683607063276153720813707450912795730400535494637217359782058810273894537666580976828882726149843359186046304706851706404244051789741550901342133889106682665811058282942901787914537996650374533517321185132968761687091755765008368156720714091433480011225490221356162796703379090408262761210645176036060451867137795711333048237579944560959666742133334990941173492712275450541506121321703889349385479497231266440742851347275005163800552443533210490055148260248469318638099412806927996872071750484163835037331500783279517094749581352482450472455801199537500142570275538810802503212202970159237053828458180398739926402630469521463144358018378067717865615916633572191729436519085872911667721241180613364294384015118578379738036211164420381208716388354575625886355542891800425298531113193819169065568648576858206245109193685370603113600107335510696610806346664822329717753541053114479373027813298931044439962221859872663068167272226450803175133688288997448081024624117580345919730202627361084667941487417568626531326644789480114594035365536655652506971635590988375285444275454576163820421342118434501090625607172321158941228420922622990119739768156902658466287374852747424007579967629820607200823646313594702193580496872772711619084236635576784560961391512195320552572686879303947445202670010406207086962192540693865095944394349627217472041692571567114724008506080361250514266863422803696953496997779762091027695669521294392062844277977512439669377120646729314159755281553126848615960206472670278138944586263651526778708696305965834968178936470348637433963463527693387881254213092688758538127198412402040024113809576474224674114745509527588070219387955694552271419197804579274453033351734944164146386762937178132753474197166620978107065133681514482731954063381799662988520011316000887805963100614339957840923003362071278639635053939110973420531718460493794712311790833922154432423882576887324434914422158181448528820627954342183751797565431459040966959303447520736166901095723049096439154011706060339164327693451603837075816048886427110755637967293062597687431096950375671193837300728405784626775027982647124194307696578835454756177134788733926132241642847930491936323914298923504662157865879135874754207871560411949569967027967095252340023347802775684205397373353044840824932017986763559018360122310811538312057596738038473608267348994451009391137246509676340836899773573087155835740574799765408772722779214723883301441916531147206209736004517222978168933485448012101915017259786530724436828438092827198544420536863510657156974010226532685978060107335765941622797414062710759258313338218888033708209778881409257663555102000645585010122180835427392685638501030276693165342122550833155421207690604592669595054196741704160362021014303297810776916776666864946620072885990662898580397623958021304679333934966229013501160076108633414495622847416600178241617571012207641106659730903206135440562420295798665788437662650341533210667862585490434405625853625821241017881959027649888022119241548468980795333247094492661748252404837625137437009684426957215006824430104852029746151203816870490418558850145028079159080174429092498733354642541209451921803739258727415014875275901379452729659922307567403464722659415515965389304272293646700069082597431506422457987429489692640041984276897045097397568171054227284116040864364886389184488635902085785689418332495705822734029801224372423875693379793772135924532271153972341780376375345033582713518812958413680003988732595415555243942255008846525609260889408129011180761143993040828354438933218290442415894207495368382180935148229969052810224243511578844148042557807762184970771840799583347704514596069606915108554527078269631232655843288730173857434653623241426282596410947401657208824914200031072250053662644038881708175472139727477939870707025306407064287356601047579792481748914613117048281847572519257250015662031142105138365419352300391884655026428434716678900285408029427772299379262302170768045367860137770873721164470877033686686228192571689511698781121601721481190227257530361044690956343723054507087213894828207678082255918248994064300122115129489794677204053146414296756113175930347995058541710881792785785558569779059719488971348002562604305482550371915457353658420510512511683810883251715431914855847892587646876079888848411466273535966135657772679168839879896458163748973853145077027194506972646042989852886513259171671844493688300520693043692349572535657077046979623082603165793898223726899488911919444076466411123293014212766056369693951044585143727315723099585714319343808776095538636391416595317978322963863506662928733017222414798171116809768351860547987993618336150854785918528210034285865504248019103820551267848201736257000586812725260887215133112975001360533918696590045418549369720612375063412643528267611378856676970276854889012467259564233128095486972673391332674008942230580833163165852278436043433079989862605807690130849111792121348568015807125941683528608576342698481284479718823320104511733836368892549613082988517433528702374328693600946161186800543267707353743354802661170197904358715386160795763232160574601828440672769840452659288124451173903321660102305317123490436929420468363562642375889729395998561655052794885352841950777510231993146348146003712423311483635470379026760614215978908123095060049437187382592180509880222525117881879446036105431245742256206215192847729501371011681572805747343280073928713177920247174214094479709351171277961343427699100046594657224659432319354287085024882942928585250174968402855156893503595463848159651459782452159339299042027737381927973130871144424145182454683282851053017435473019597672431889858644844171138682142237368739014889356883307173054950258484378256286610616215943999325409909974493608674481881956172228418911611274815632195689073423066417261170017307878869387605617635391753636955529278503437631445635488008515187203272283067560745080671096688384943754347195689662668905035962418002115153264163998590550489121649776632146196577415003865029521788728827320494487700629078828101124636712355627771124174612253175587750079236165795558295735526887057973021932453332785497498404981792020881343490004605952604524063877734982049208502491887379104659839021772812144107715828819176242591599488913276161216375055532355708160169016048026682079817325417114111152037365045959668527496458119417972021782236373808302019778283787700088247940685270914266762652270459314097694291115864464804937954536073256701267356385307784252296980248879761155076152142483314011369401698494677178449600239717333846684870703195844223021047178238058381868650670086586770643467766231542601765371242754178277800685811275038793599963209340116513250265716225660375442601650520799828386626613814275921500772740488038101653389881474672017707518211963474261861687926405596330301196807651898833110430150317429996221880011664699470303471564436111621294706228248026481937928140878534676244189559744609281214200484471089315338632850887830321266160000344136700297311670329114929591246430226083655728549328420597542512284584388031411568680638601441801581702613095252812503881252890612784796395097921544300822429717715662699405735238451636302102949897136959969110208416417731069341711351729160151266220582232322403217583696413484669146418076502077412639773293220893137661078541550328717198832169878908361043442707265159855361110974340638400228623951289414643580595189701673388183976225212635961146025235252801398682850148173265407942566392045466282148396424948555664717316287479361580741569405874279715368495584642172787386842019633320184461885849742653493926413785547361291501177885825379138474388057860325115420930043591998536937603081621204333398399359390939554100487708900313136566775039237663845506954376513112037752733233590086918390661604695842532073283314682249720868111173862766945367714611888872285908989212199295391909684405089791660555772425630007910409749910293772937391566591983617020734670787466113981021184275267880061980039301390538785900853111573934184183033575231255489920889903325080052849420042831640962518729923703638076861536270229992715974423925026740372018362380162617242735227837292313519786636967141746765835845715552262173458439710296021337034377042139477929931521404527610462147102107800298319737420827324609192885990018094999701202577305017340650809647593606851099830725108989045779612637079910693120717628567924444655799952979497922974299875312730383555499595390595876533560420946227885498022763653707231125019689388950794265542198071959908756665413374396267632680570680519164795011853877785147722996785998938077871170267253444580358701600712725829546557781209077636990952147903437078249515778551540890391244436805755495565207803507254253883189519329828456283276730310802494198350165818995013349902352686415091743205918837659753086554410433614466019455360626469062470037642979239161272719881340317151084072331948942255641734997961156202821149582213774921308976801208705792243738872281688975062741184842047239907326261986561012271680174900636410112506098902081161288843478372634478057788680295454668150780646909070370653288364496058326138308852230873018399947458876321364747553655174592793550391347039915753462836348350478081772718478012300127142888868283588134148957577326636000025268727541752629270469980411795158584444313798534218694663127799969836511160354183423415371023552502095143576500508195216569343131590907947311614520828657023321014662285223207659680601997001683847231439653205365376082406814572223952306839322679180038497564083420964744704341753277220944261024151729428321318073445736023255689604886903306468487340245278769601717740506514896843379895772865029100884459115205456641659364047904782281713477687209874687316817010243848699555892927043844617237274009436502644346134196116809801443172820377879164931615339790008337688177668141634760723751374486743031937166392657058799982550569306535890244447306026359856397793731604086380632294556821663576413294988652908672488312301842111722273037964840329230788101572692841436258370125615586934119972865919305166199826618410596473823560651119615153318935677100993060343159268389774147525167022611960647169339185962859925564234573951229428155828364084621574206932152955864675900560520404606049996048449324633875451391547900955707192673602240841169293758494469966017806795489839026460426786382526049637646845984534515334355051817425840255180075099088345361145184143150813954456867871810970825401875815195581547237951984145904077509611390581494688278005612241224427369531709872378937044015840900632081739010802471771593901816924140466575658712972164698395477383147651127160491127472990531934566918713045569755652606757193150060870132850530886667336647476924602322268702647923859865641491492328392954944988976961274333452354418330775815442163733981698869757213673374191649851657115646278178418330695890030479589306108200833578064084924114870678348054177697925782443493021177406161068015808053407340396814696233429497593053083899796181578622997006316331096746756412306556044399846122773491011191011910980881050891549866626229225378544778655261671798361786996155146204537365025183116147121524261287981798611929793032273378778714408814330585839147541940622304322999585725125835796441624661553869200629756752571614141055202129804912175510157669499702681999362602561895145091399042723193000718317384198156725235451165707535537234137320114663392877875076979888662440578347758403335221463765287102904580482267881929574177201190037654404055967946490292601415655190287298933541777501894953630679642519483868134928360391829087400481289339982719604597855595409377394170725593999419043237341256343984980845881296124193099353101145519370623519792412950270636953474633993425542907701515600197603056673238251315615155765944976999536324757290262975033350819069200988121094540212394908304039162153181761970742524772789399093351157148189806710483148227561613384610919140526236206780670568859201578147399133653913641786885504691422059357067749018940207036833916274086239540488722680932348669302078930903443034821009876668022318017915201550466008436444657932971999674974317183341672385791497920398685032312006076657749311680134179000715815935920688418299458539080569591307497893174257973717436019811458474844635084667779625835197713464038748054297780136076140513841271230803335821048403728670650433499560455293883146559377241961214462637475064086840824804730034397315062566742036275558983215568125884109011438980582288619546395890423918624710785905954631479393919538445613299552556211872727912617010363584559332610035170215351411229501982568968930891487789970950220028852755567843000835856475768318717699895700497032114833123735221665406537393912267134524300738205279082344628823880569390418180174776454143681417698613118157190733506540372564770571697412330152231033894158464891606639056814924233198789819983595693250928346931519973453022809927118087476120638756474555772656135907367437035550263527196438435153245475563205935727047208928674618549886154764329875221792141199234597028228687168089548207602455992418130658575890339815755615172458684058211144816233846015803290183708248797739167896166580109283991134790454665108836606769249652958176103602945115743254792916978222020840564991487209158581446652649359355261741162585339477639005685036472619579304569354194410600102945705754914884746698573351529631277909618979522653042044780934930701776633785575563259274932909558269998647495110384718334120056025395682793935250889947579733275431170201565638443780290868787789117665465592137424966289696734863042834124901592105113691499163223775622337117383545688398709570473742554632396084777834216371399249098760800808874756402301373241576488381803622300360247077311114435395151890553120568884019566329711791883511709047021907418478289561413614839429049650828427661805232023245553916355626563057988001811118830194971544482915438538644402472960458401989923107917802172497414133775182773985171012255164322490286739966066762255094691294686874560889116339845259261502820288122647903986187123465030739961112979953500837790123742577981912268117598360958592435323354129893425760947393887597570449227316826303424460685468678456409063177979069956838413796510870750668226501174562242659622835759908082796000225408155436465133338406553398705140551513417784774469606550823857738023974133712006214014826362224881010880927844650318534389963961326096940611118655088989953278278671093342242369268601574797025878898166618427464962268487855464007296466127033699046475096359577115895722936698264412039102904755860758387674914456391534903893678752298965867460245167123183899986696282284698063147676347536442809208803953899966020320691948492678530426636834069891326793458353425530496633599776757262124371807744451497340724180652977138013928010780844392121945348615856694935929285932275330969567927226392190020952033901121357554245361426506153821586586231689632183638198490601783058171724696675798051267448811801171553682760847301219582022390739224947175042225200798940755612243790096665103793709265415867701430198727234110309273390743007201930756988550829542386504439514191179860392619251717769522006658744348685457886121549513570781028669828763314820210797554549454495254688598071359401618169656246443904426371300818239297732490190734642934496789065667670629618888558261225051197191989589853104941723465941847554158004999880818722203989441721988738022988121937080171289081296285416752089127057303909718304420399724398575631408372243292375463510500274749809758932157289034364899015706666661667007619614225077459131853685213822614708509441503893054768976289453850106856606315547912549388735370597542761275367634825054019948330056510215502108132770530374617755650395708817413754219021542644874859527847480565810404934557050703229035315089706973861389218625933918460523164550375438411776693239090167078565164709512714330942299934012412523770137680277250248513444553312726362228594444382338922911906944129687094115670732129379646620901442766423353408169391043176174754723741215782522309695156517135238539537086988669314777020505109457764179266670350961979363861357545544428188421012378166131814108988849064623994114458417944309571713126408173811498651672632231234489411521999144930205835698943442937202373426846574319309391769081329741502540495594438532207349028090017919790084678366595145852680546702697610054918582682593079950314709717379654227207797799873485103392753387936220969875624841524226840157834579975697798125143362715382335621600064007831701566892630029608905085752020154785115138675008798519667739965319232954565694613819140566028319112000942681638610725658939372289197602856878158911932848714131999326456490481574761525193505970650344671049338836821524486119762517817886847838549677734026957981080184317548812267094677911299871503838990921183683667696027426160707913349592873056817098834593427331953708144652832588017357512495388959346389521116803296116915159156436837234676243305010258616206753662228600307643756368238280610059275723766078638415760282823807024738643195465172975909669091529242646364944378967200322394207699961507410881900210843935884827477463322468194802414031047913282144588382192003772260630664797048866120041470658577893348347735902284744153502415959670358639448527233522707761530392050044213753896297482398644378691472934430915241974643632772611340558981689774534020443373941684697094500070616860926250124548814517842448808737665119799749176160686882172979050287810663464194595443336654027626741454689434297346990363243156194779349514197519297981017747351064996447841474797228562752574133854716305506828256888004793531924095464426827931099224863787451542584929806206007467079455391941397408633774724643285446060807538409986219790416654640248701357730329751369001951103700081783438797986711233312527662122376451720636769800156098068105354979350617721172513288535077810048805263722792817609609091206353226587990854994708631485539348016903034712730792465903570460674143292939139896886610869503452407758761464465551685042857161006832357335897971525541340953426730649112858389118081128791128767063378198521553253443087513272230898386966604286334281050065228702116997745164178738026171397971435552861208278277288493905316619112382766955766996882755621202669226392423609199073596813045935420151802236136085113609674726241640563591362988858153464133478953365247965755747850257987365163028576424451680815934008419957043639539217726402368841017191014329355108003675264453999329707087164978299301755217463819026631556366936390723205978820456610869549134046870947002443076319109552545085131449673870791078615934116232666358152101033099237911040671819639948285886862880643855456831183425015157481635390111643434487406570068933995014454292822585298031020504763058806193778502787950107752930565636454454893767317679762855412194806079378237883762404277021132017636255237288511475969987360136651905897194388728985996626848005867263737451045923392495187051193705290854154098375121914157330776059120930377790977749330140795377716623888847481065401224842525532315352784890883782281523678652504032215915506143044525967933176326167108331738901351881556900524740241023095262170780284334514023741195876026468682544132055422441377159853996650749469202230140710456329379624572383569086262276142517990843775533430370980204987784151253911195730073933261711791408370827644114421787704380556361254960266996646545244177369871327592776539229337365320063760118391330464074001926778938896859693191972987143832834168150650682630771755762120414795435740523515249209973888163147449433029682406901180506441417644420098105183014504941636255722927982525027644851939764776766945387464823967618188750824886216469970441986485771499069596730611804344013279611182950105024665171870224270130209214534550101838990306719402594130691756702600498927264678518787682555978870815622850971866148372151641205055744452654277161072826043538312021394237893664008963418104289434386295400851099621797944861833993169182286889171938971170743710866062456144704649862628328165332232068074033562956799795746367562292781166122888072297801517467424932186826792330729904948301536415352752318193207715107535889919814554129559127317495586630156472088018792420427661415217172357541185210415568691326267592490805748024090467360948824418484307569200365195192245811635417142514354755447261610028392572989166427714870886401744473013494108138115995369780207227407239103071554367427405540930416861170834950365229566261902029050030686587489962059384349000315238771627096564625648693892874432741429670613776938916004822151357755034888917014332289518792699149858307113981017596113257879303780031288977889363242751296942895784574983260269120939637733182232952778727704537141722581485467048473446749188574754857543714131857586213837024817052270574745023180616120049983915833152501907840591430597839942566424969281022727364821488242111959840394840098974260211161244199362774530434836481439276198492680870630605541549404548780746057200943899962721815875179403342918964349708470089300619753103113232981110492148229455327018717883253456531088269273730515483615166434004772971712131353061952863198311263217231193283757563712085056081375314661612483216476383012410985440584746656253969756308499280426903731879575877182344158523809603431912629607029729582736967509496663375038262664739293667050924485597675899530282060094665441117852143256493618229869117471166925297912686834931253397944780737816096459077392627629888483246891620652512587104548438780107054787770147669631243532245143059589961789963288454497260535584097143874725548078748673311691873611863873109459886677929798722230547783109038406921193326609808938254764645971104039251835700708402759959241050398632256250159737682336390421822566804666699483617050130204588806589980899288559251910953891933606993940594549218351577003725500215882674377166687038814215702410513418895043131902725883443047991413406497198643080453645933912235865110826207251468949505320536418245943848022323693862349620094340649360321110940768745601526060366301222307789055439742182837202435713980768375812881470049548765750366248988837369059618719822138666984903865071814878706624248319249526542473933334492850767594168253459547041983418805578401271848666362572489009462751943148284641261401284830742002954698497216023135455565338340373264366158484394868711888698619791658682366897232451187177715271624340518853322848808301114387498371392876208446159820601051232002352253387782473865781337421319275672564027787798000738972550607762032193584299600199396633545678066846892237064169383298462400753636709419425098305216326607338614983505912356285625696331429050738876459158869773651050179685680857591652191416362067406120499218255495116141270304177354245550386749868198713358665826838895917980642064252425731157514438935765973950587167763248043877827348017397288484048197813708568185210528429719168696485067018772624149765209550566301616255315371356692225160114677090207640411489698924491148376795928662374313389684015470745562439912300877628191885811947265174298226284547816901727521917300152158027658340533458445257675103909848706844991951729601977682632229466600784376030478940950371646392500211296118724979997867702403933003052620735631439034899463273954552038280597222110943406505371777394041116438789253596835496693015748286374146246649038355944015671717990458649964533584275510268603908612560807658366318511485632633351934803729380965555157854065057848255882944408782370911953526439079166865157765194164360802996369269884206920702065151857903216952054075543161740109602198845070608842819949780294859068681983323598001293986120672201662205019048796355603634261440103458512030490143299302606032549876161931404798229713543243006219139228539195363564846297116015731310798031422161812114933848543660786831853554232371318756599962676601411412282448349379990714346720173401623874120224804337490018075188162387153013660232758601244906375676081643719230610889926013963991256192396305752790756667940600674530828886832975844997272469276798999865872371662156368854986368182077497935638722025848125124025024057869779114352076931073548686212379316328928945285254627532389995010710705773009294095316296719102611099782532562407393116051052297554486652055333699314050047651527041610481140437875446053469528645788461311909920016692499531707357548896385666452093926768353109536820301350662681232838418435918157941067352054291061075325051360230837305867350598713475191724722674346316722055996224132492510848029734870798797326209351931903909146634619189015229680678431615996911141236110767980039514157479060982981700533002088026734232044788874757371255083773056189448661691566514408982848469532447663372999398111826307573567814567877902254786798754788337429255651075073349665934386216623295467991605265894167199815905560988421423373225447817221210219442475754321893646701690506668595498835416628967026632569111117356813051383958871478858769558762085995104279327495710523272726326383677438452182193239259295405645545106112244581705948204079650401791284602272460350824738246785077509290676685732186138701380073475613792579678770990119839305525751916770545230092872939168503514938775143708456528688717264911348112167464418976068644480457968594388419056526338498946511440440593407804371733575826873262497103399346516208751963388120386922778405966651847127411845614922543364712578355250411618792247895347777513784931441287745705582137371393104864091602338074745849014642592248889046432387630407618282126597580133548269072764217254091855848469219050510645918559235390245333591422608615104376111246873348961873685969850211266291373379980819442149999515116240104627296826129441944822010538207073006346323445990431011077120717310849867717833460028372263437843708975386575490748664902273549654838429137668715200033247446677166701985288025524874282674058978493989400945267962068167625599726455731658466901026467377492422209446083625094605016578227779106103197318665657108616980250097712339802924490052884758167364618931262787652807946482905745350809458059659044954335601180780702600636047187798812293170939196776768497305560251235757763381740282772668501468946970348631228419551864537694774055828693302979659311397497435877025654053674506701106552873705120324199231552467984529605664090263115917181624082510401358129655069058959385383833440075226466061021340883023527586105338881139957824207695768967534173316676629650673798725725037373796009991958647776729466560976378783317271773785424503096674136268778794886262231638755908279153095456216389511454737090882331873163264328255332012259179605518575481254926244685302873119412168404107476500708724584289094925627698256730320447178279917238734573575641231654540928248588997639080884610133011742311472312747969512278081389588967498025469936848272704110724904409790018601906274794567028545005398569002810329073569177243581023044492149424268552796603169091147990378641450559926394943460528780308222927133727650537915294288079727352434426129804426867799378973767903411149100737589741614955762674957894936530479262839645556168634726560005992013900507472646274877941432695076279147233526870709616883210368960338231114934022303675403319274156078827456425999002842958501185778333764802302169258997707749733936579736744930465827505446331737286935174737822598486080642936162164590639439556161444192449481800504281578077017620936577789320555636470621241725518387689657420139558093645927998404270870068509533506896093001641307284884850035995019189347581856868128357894776623371747533551680834241195234394075152335181810559785148125538108027440130290443864695347011082393475735020862788232600618503585069576847784875251847044974411827342560368492930693920531043599571167371660655706005719211622689337602441894105077753720620664305359823504002457268839702531580499958341110532169381527193945577883433363190840839072715504767082950953284122657228143932903431781836945497749113751660727785064220661960551173658880377232074272189348462528160709990366367435686075138535149184938119106425477052357203358961305558661598213323652461868492343976225786699643069769097775318215805820593312013273848694008426872218854408819656778657088658423022783745901437452863926807151726612630831953292149788401042636364271797080567245603637924211940983401394809069427796033561262781612727570250492956989120880256802307973308811124280298122659181507611308248616127902281656270590470756162179154180655225599962456742803693020793620818576237324289586824995105034346581436945088885682097858324640845980323609899338821088183437773529234765025818463856325178596035728513252171688436254364871965224689811673512441854730767176676711477160875430177533901093082484762406009264219821321249978462074707201811551840471376897439624602180655928481948292994989994991256173617782403212639926360073189579878471585229959848662636619559418326804011222109533024408737539573480210190571339120754544782185670408979434888286819702023256024870252430676411711911443341754809223267689573778013383901579637687082799489307908271448115695084612970871636702656761406234386133910169327243707092574110285523431751473042323571081047333325043374158223074002647198809725821040023824926692267189017001724179027683603988558043153356665819882859379593272795929270916056111148487446770053624989695216736594100355136146105454905258436517462475181426188059267233320207730533916264399417872391823908651655529631440807809006267597159400060233202553026124032570876266769726378844360549155352684901185271045689680034831481017964951975629473827376890801323798140037443799916106109203990937472740832055565682226374128120887008854669228820008715426379398452623231044112366584416226045618528780744593444590243152410595792167651748295167120444613470948445775727224603273349888260050012022501042402186410310370192323690602585343184306810669281921096855396114303292913894402368992853292819166080108186813525577581642014169211340827565980905556830603319054038122432420041625373555661290733507656416537875158004880777555663279626230807802060028021408350921137397385171690652426455727845285376499677838267744863245398868934138508362825058773761573395400606930357529671622724384955689564152990326604713507410076584976895756676641357035616910610889921052762721733845467640358300664262899455023067008599369746329708495986004423806945603939185064068693684618236954917374751670569570537712581139707631739554581248653140688626835126449989052641671609577563105021232952342054566455940781870131848236940855114918054474940899513680004074634975043640704567527673197056290410484525225274350120876924850263517718370938981563469472521699248462502004312029449856397441335020636971166081447974239498764260120990888496332794110489418988394508574151209518713066466528443712543909522325890854437253917556109298394248654855565381034293147308977057696348727864387781708739801672197140454911039059428759493584592057401722332334134106495629802988299539553692109194601840236206637288477783254298219224231682611313917806230127319690190155153262752240645460422593247927086094021466911600825250103572084889612134566036519068397305889348554956095971577708685660357481556899026312130761762517005490000049212940462864050927720734587588007897401968259891427813500682540743924005893947072916332439247822960883706600132551199413639799157047342421272173665658078114431384121204082912843888386758566886439162318327480663566548051052728947492936783726925400551164962626338405023447605811018026595746562118202138256311518410719660911163111004060210768593646748206203833902804169800247479793385674632968142063067177334591332107827711417418869412939539056371460601650051624658642987879793884396287616312086507976881055556847519744011254934749423193323897319011075269883832178335484622923441325409982621019059558373624008005577577462070211705745256416973450427542782470486561935718766939670199819322028149857423291758290456366793929587940376426126990048291500426976800421458059231543205027486840353545496553329464379861124491182884921845294747251611418635006535309885932478713313526632620161873836069523743039252301564805841875786394365002368284909935295795593580605220236404419987518631176067373419333375057015639438184802924177584330643244583691418054734339494600680788891344008643275684215191977231007896306510839870858554337510533913514068034502043378263467941464149339921804803037498370240297461527742801806971515557752225917474541435765341885528745876491981689763761167436187202736061408350229125670032906670216374134493747205001913466386196655547278175423865034390550781076706705465623510813871194740928566680658703539703608895775132210957029102028808698339267581714131635905711786144912214242695506680661145800029177900466634213609211515797109137137356659733447903562250593532849921848911702197260454143001423513910924448651463515894246238129962959234740220833230315972916365604411450240671104090479240539089863788708340243846679626873003580493881713278202750220007414728007205928682015355871488824340365790854758091478296699388150614535535628134460904657948034541147234263233312793616644595714560086990702630554774784815333133991101129016102933838900240828296463010162374937188017894778176375249219807214722918494947520394358330740922281448864920990762262068330715197174561723105786758121589914491410177667675439648197370736901809695997227943737713527509068668924221515008200871497144327118951119876787533955350998675058732769860045718652552708628985303987227831605777334269288782395642466320529246971618250029817935170789381692706704960416783761431437497502256011108747562150648239759011059900113582669865159870505352161791126791678122226520405585360228649049116970848230218146663001556343607815002268942044976177900967147459865607358646790226948527419355824343345287423933559841546180165624921261398745912298410511308367117849518343150655208204753498042590672489540649057071238106587869886185158072279959412004108653274062140565548189918049563059764393467918224812312225854989286379814844382977650928138070938966567843872830662494247746949564858638319476833678726331803967359596868670365621635355585602992466162660917375166571278270001998260837059991990213538332732922411716480589963941315813632704255431191467498146283429622916238527049246180311955847595361863953415435401849224286433419617458013419333881011228171303949665323716572380937832755391277942418164491253640078787922757615194213184681222365563627547341233442275202760533298080302164196792300219500863645034716160673339714958488514613073478851675939222171277459002523387245750501414787428678248847957167582151838052059671823305876224041001697272847405819347640375285523099998791364623692723659395070168514431625080192098923993999164642107442209647622018341498985766333760397448041499676831518095313044189253206961501603598481807513704602790487756517457016733630758197678133445526834992923560571504853314837378065923676248661102305250722583481266054790643534330391709965646776870408521511637954885298272372565527475991424142961335040565175177010576569849986060146036224365661734298403966911281132479953823552708400541729747415867764828480584656577014369796034720161000364935118243783672433784707762699792505177006795317264289462832542151322322937057035478042448806862942164748304939713237571164181418436009056804006668896682967943370789750984661380323035155397384378507408001881431938892127066220304299134021548375451052549232473230544226457205045726065244112486613516923213227732722799029510754528524434175740289596917099745082736641749380966213714947357560264859857872923249238055106473534365481068103578573633488149651127100301186771430827672592795498065595994275433938635164291972853703015233581757572632191840791764240542291940359848150724889267881203028642034978086846683413248678902207096138520701375814848517051879486430332646195375393644216004093562233583247052650736985781680831029688303901540085385882904966858739017028885860525796620493162295570703383419934454420254684804959889282004331176161527129740292428345098919283633047652427388952054195603073767719099136717517841424480433053366935857708871374442985181145073468987340291564437333139404110879348431948137418017348297827612090748766252613403662780351004753263391856307325875448070223652403835151678815491675218004995074985678402718840758187374487728707571224639304651800120627342514343516084463314114276988660923483574797456931636318802491024640533484093868081037328469713939565281864457648676715832067763176028320479892698992905220563344495256897931788601275915576674220546313154698289736467545526566028948581923360401418984249732401136122928692283528040170948471264974508977534923326223555813651795894099028791019238117761461599961393537255901955141808275198406181524464462218468392900926615163365207680908050034744463110912722085947484916905033637268010497513840584217640793203963442951542078530577069134430468755836601921226194565943354447066031732502890908961963527028999763848149497795435580400118322998371842333355539261866434417509416002332421971033837963024964608123389690720532187706812252610775725074305035053961205020063706677101169820905550433213892282938635488943358200356366628894380620062304486830296890059641000861064017061542029492025273576921511239674517753616588608330426562555518548331023647263442770229516965926178786748812420504828828031569873124838074463468841995117521854346290553024260146302443169993544237901796772703296577834292869516764748585960282304843752224746192523924710426461409423885861958473786909253989407083114543521347635149019440123200277388115468711193854464490707321438620755634847926971727329481327191340311725684722399636936691252787170708237793794006709377422449307746729928529557364930599339309116491200548969251994112755991701908504873440409263978928199336275153381544278491240402630975115620008282457285503593473708360285494640184022612678080946381310698833830471318783272458698915227550119725652015454045724054589808525804805910172082076953075145327304065137373870825409287188178516413196285903112501886486954492227485254779503160422491109330387110451215523797828268639911236650772047019661331363743356671004071685677624198951504252558718637653197941610349892886649920219705534527494940145718987896989283756620554615979292760356171061262155215652731577201251922379524551718122777186665019398569032498821700890755234516141352009298420509198713099743122033021287055626333655254222621063908388592445720490265359905709577832450333073952228105054990182758243096466630250360356405780813540856264893068725965615669367903440123321239421878158723848814781833621640027437293681349712884445807247197800814733596768442650247535872455059558287051929955553719343285074974041345176059529704329693970059591668433936280644732277331371524358263342476943710729638073681952523145561275534534669644684178113631994805456896374030367278069154606034274704867540671970866012247791792874614811467560477154654908778479273373961492959092283510576932142618778334427148062176237292987885877432131736182315727738033104254790661542631339089052978302077262158972093189987058884351883791719341421736471355561197465799713804990241238021916579737930469823166697763505444481060329252732595015493019895784031535968557153158605178794070914855798532050931751168895248585073348436854531815992377635180007790440535139103042718754600196276246334792339038214620730777521240374036932775797045923571791674197083755633935582899564039088948800205672509319794494132885536450444399292644948216944067196238470403789094604623507275097815384103768259148896091829051450142452719907774395635864894264838571742048875829159126004074773668025529675588686567451774234115329404350932451442924114104479003107287398963454380693866546177067127057608563260599679225528925885687166266959476633701565865122287092309743790963730045239488397089954865963952629272786386712700766054337678475602066265618915141416148499666197627993301532960934885705855430799174148089998999994041679039213389202243714618667784501607620380437715163507885746525110270836099877423868598254420745371854936108739329515423581610595495684179144600707753309448488876756881180298131229385624272095244401597664692785205083371877561897298707702235396384258016700971455324783922982661917802081130754351009774390593792266338309932886537046354184356749795235029194610196674763543176950013851915760393918921123016800944701785216507167505016314803971942068912606253653874669364789147257315229648558577346296155873386742675290458819925572348918105664431886105052335715938504319224004496082324755518017224939775940177333568879801798990180984754698610452222537946807786369794868738311867170387308326962236327760335499689944265518071842129157883128889516559881099904146526361538451719047954854494516411371142514349279304729489894389925539684339648051489314414896976772705692567288753159361888437684721290617052523281030129801010766057858325601183067135115967638702675251468452077861674586293425277502342439578718166426552337121566413847856594249561771679500144282633892975817746813312715672475679683564785747649512454151822108400369683450609382171999693542244122287398078952370238713927431164030509767995480907144938201206538777423475529489014844359905099843929813101345833145241658204170745588957526475036286555893690810757571252276011927141332647798746213405283841622467501521018993886896486267024897896714714507523367767488272535149895864243129556971376155116277632538848891779293255134468820045251910387010496086083540980335141789910279150361640059735539635642691583772852121735275333906754471393083722689748412696489293914959033268530469829841003498153362345183720570455980420343773383161738489729191497483195390386436256190260871200996138643915204405581764307450394966708629387788245702853783153846102828696336311050313080531999399183871807257805397559756767028624595299845289117369219239665730290333985933891557577505583798701374478851762252278766954543380925485306515119889316297185887570055199365736802603293019060402163418862668287127735175947223826709119324510042408723297420252982124641133344833718000521421347352655896665812731887054853574808402792890007776122394727478199006031288880038808625133839423628834346663433863225408532073385220648642896983632369917768450059710191144309901754793663971263337710253642266213094932860227618692820174989082510967108258920969985671653766227786248749988253310276484837312837339525665385578617963620171860665720536643984759851186632737060610218825616847584374413549222952956759204541591416081639819769990742082581912304742283222083328774695660085003061233081578216718492381824524718363516120555636199138684240784130955843528160693363900308419385992244212579644029010803673406185367663566514719725342540077908255353756002553598161109022067839015396076042799891656580858622668397342962913651625222095785136206515810379235844477283230071635806896326348752602586587873803904772108816306509173923937380822930624351739942976042106195549821817299829500301246305898018501245456231361498199766151330850640391292438235484612175255040507597093364530846687408164049115843951896814172684518834149534317303954886037902583667687818728647917782575022598919603710582921369069349047126861588529395711287485743083784071487323091435762284805245074910934106339598303703448113397926045817722178550747571687287825669840209206340780076929553831649767307459832788146431042861608095437353327765980538882895794312231662155003210473324477714822905064113333601241699554839022244751255289132412758591221507790046292208723554026851408485942992930283893839596805213823046678421958335193614808053591186062337574383719188082641884424006295437262561529399012909632537182834632895465884873460989671541069190167393741035856571169155619172397397186812146252829484356974286870755697619674083825475645446436703921667669668465883420905334594915511529339094003604103278298141178416765648955692908636132491601643171469406203260899454797069555487444004099969247610683347394175491490660752380281468879745657422095880042206081526851361814685546012672549478362809148553895878791831761382643693546782439613419224571187374424122303456602296057011204517025774250776798279110460103270646058031201819276185398940092642781728155157720650583416848278104652609785765437403055165402839145184076598789354599399217649427349072691340213813051924315638223766745645135377478355524714606985113652925994044357498181203795369397175789664912501320359508412069539888406135937979687378909964913046492598312243831700485071607295275656334650812059546166877281226533489157265223532251781749190011606056183048668954808168395565348635375328775404604320866697685008816468916708424344166656491278153664948349767886944451527690358762277414888049081001973991819309687150012131802643276520692553224965993912983071169489599311733273517849119445475857955103070855587955592209249175679983756924496208154342781261333259201489797717894886066214805564461524613557612541757336322202548666866764265332787962664613707835389748851395082305278914688857328172928589667414340887244620671007361064781604613316351670069684734840912378785704568440182115300430366161783920333504250905784245920618388563571427023003905772354111331103186277811426821893363822168368311848046129351180249006480910018528346010970353833537886238104062870464754379232542435529931926135676209734270749056872116493128666438727514403219506581857117659586670110190063407626498453005294493253495610811830713077543457851552773012345838765256067189824725391912946146750512805959252807984783110050994761499413072441248258357410408475403722224395455900591499205625877307237706952349031038827197873711882678634495716568934135166996587911806272738670200902787380878941172580795282204047529875049370255538179010129412089203610474391206490629818608393106299403602635579506902483665268078826091361126609257819487023553254822668137266260029741677773961728167544919247311080821829316352677329854224858680368812854958649544884866052094434366573907537108088676408557744898111170402487331791693301981638104719554718238274912441455676046901028800616942310186964204765812424983705716061623683290367355923235682644174111764895132175756323199155637005063075639038344762240829508168434112049285822603586116038393280385818572388829539901408930223047965315009174831472264260361163630741867548182453368874579220969686965245683526027899499634411388856434135635126981671899599421989256420287161218006115637677656908337558536563094128305553159087066744783044704013855798022632783774679922591814454983729891928944310969398439130720255018923804517473112303004307543811503164704651845013122885843674506397722164439849452945326424985378522605584793165284530443245961624678765823132369283780603724644551688154511465333388084284313296277211541339114947683913873618574859372978299559360035677479852084238641232373318295430187584959457778274316314558170460487039883041597679396123781966473516287011007751802758022747061428416326602700277284218387181057573917245875394988569717187067384866151247463202617266525297775655130543405065988937943516672708554029980556544852547211995942838596761939754767103220435117072924756504915629245915783725689389038646740638398587900540084435393390342005831217322408689204711409329257766928733699593550309864666426596703303024263616582901426711785569296797334021665363497191191929543768572948959734704646572935861633997807455963920130688553891344405951925988914837271551238237115961885832234002841106568129287339605759794933494746263196491441704443025893597610639716776501821054051539205493291515846184005317129794764582324136017160616615522605300099215033758338691617817164738304306813358187618027631138638034834351887426083833834107542418619224521541834146606201485717895810657024309835861562326444549108041844266701532170463629100992920302587470403981743214197803754465732284276632618117358758529911101594073977271714135384465326917505373825545473196578654435756143171811583321661358210426356878184417576733053213808131980337225349973510707915479166092539997403439886766837517073282171282128656473624229268248504512950226873648172545241437222597747744770847500634550377791721639000607450487316107028837471186078138109497292896435377180423639331671694452090169361278174708382499600435703348431702006602582829146160973029940945726634203291115577888122272505225698453022043064649107825327092965148297712346348939157875918970217427212401855121787705181338681061028014450412503849219128324716830068757596245306071307413640658934857844354045467102716608770246192934883532332795230361453233977973207887455523479026458689497889349763509055932822608901846874955432725618153763502933207377434798897898871039954510168017968512639244412566315215382109658638392833123731783085836735300154461708058324234778396822976707313556533466238702582901615901519831456126621417943539334484011182412792485238632845334166928682934652112376804099061625794652349479757291927603169261995227027195622770081432773199331712096707862159334269522228725692191723724320266960160784261351499795158182111434690333346098541897700519961388472075129536070668735240158396434634568018453800098082560110782432215064259013092563337363790383700731041201593059014658837324921117571915329462622644358370561817872619771872693540394833099739358786254583053426430705427490893347117072884126911337922570012628338735703407786033757067564521944578218801797075650706253736646585160555563385828384089735680231092188847410251519835432306749503957187194405297248495493912269206886756575954373890399409921290664744352969174582784495782950782855600955349372723453033840527392824994403566472403213730737651870238043045168551588192314732434444378286971224977685010985364900578594174236088182553240345658204037247905198255422162022561702234726652330211146750642351620184637512454745303363827753994637657588193879175858463465672406530953130038683965358835638957439175539597220476900509462329875119173904025564371522024753740522508193673084759561463801838970550861240069195278924829493275123827626125932970934679290277627719780664311497555889597000576321511948866164086338779934208115444760347532074664774408241768225662258336545135174306201149012261123702453421399943727364900714183221334664540450510551459757117111834551826665159505545244895917747756341211491545232517723636406932831119932039385401859565786768186037942992274245885821159989545199527974945373202163386901173468353055648290008656578720934472088273651109703975738506257468668836522270353115759344044220781863954576496781605908505462282090568486828871408656188990947710254796165320843284878891990534750807014597874210466219332532382019799385904734653788116209881976182946792444429252230037399411392486703906802279798840353172996066809047871335445023758589755044694970858400917802737662876517685156386202747890510098494612953381079612200214133608965603427711139564545968273470735072380965565195197590299781991452580327068376533759405386932877094368762551164835718909319980570299420898176211572663508537272181864284017289130458682775713622654977962852729191723472269444034659546195907425628671510315704023265375045046721788922600436181339357263338462061616434046571464834522457911118549351166310518740166419161623046514307620571636763088771305026967144670336469457135032580594538605258897571345392833471769773629502924972068783405142843542363520414558165031791998312600970127802708380279071781815029379279403123052179303496998104208827049563194991202732646012761422316039550994741125848160197427166138264794193049813880132209961060513304152740872960474937388569273530071705435542986972378253169895138117043712855655510190204141374364371442278513110286516895276918797839169931606095345054175016295281171175631134923109295180569255135227434195042700006922137019625715588647146834089035512473408845546155105718191250112738383776904593384319215154724705633238855152925447341768415309299210737970383872336166796176510488861855176876081238345148815491292445056555313338862356759685577539204220046922156402444108915896073637917934488367399323917512585457925346440974068607071197540222383394305470303437976046436032541915271029773028178390847647661133419788845318594686995187789612421701555319536784852974350251205812641206612709606943635444933914161984503423351950187917311378346287841990071425897357697438644003874892361189991771466393553088106211357580126307996370372594850715159733260958103252345116055331882794881489786183476608830899511082896847790405147955290595559340399413288962924536290270093207066157803159578375528661054680933705842769243225753452650082956390405310178936117676540300776013467817200429272294093463244394779031875094341367073349126108512166158181814257042590542207787369983383610581291021072801176741985922068720537213464016707362184995420747705352219704395916200708235456735439455418455601100726370075141512831614055249020214875276115146009247984860784767703094205594930632274732365361824145632087440616402531328642476295773670903988312811511994625069412982843887922705104287458607844002136748943199701997856030699360825724721969254534510934563618521443441827613535316873895802217538371678264266186971859506382935231035864749492808646056835811678420597482218218312762712341439171766690304500013377664325151061364403360824028602199651374473827839569355954727997485666194783218387026489677464187880961941639943720360800509229857520736389248982413140649905484014893810686587113576336416172580543639015005357960987641000715955439534036370963575845274773451886093365851692521796090501034329965022815913847091370305865700357344805226078627554178212883529454378654232382728869095261249286242186127064290188322971183896240438520629432164248700705781547352829472146639058339999931422086134635110638933481609719790161642271386205129474893767921792907326954338775121333738724282112850250851988998572030668468107396731168994337138590954832161599337498618174137686314330542523611003370978717498547305378794701325006151489992691961287908234093914194585859783891777569597690680185881438741070620679340540405376835664683366294641533495090913652008250608511190408137712980137209929156085509660087445751033650895136198829729273571139309818555184444701901642383889839736632600776352972550143410406356714320611857345482225836803208391686294643079801216870643849635506401417512791261075485320285737470264763470582435643960012809504646602823681369679045735875363479183013140266878608456919308263229304304363902438763192070902173439947408166449618077110831285255858382246503126582275034929514387552628286922875543032711134935734065443675732057696803759316295485653219367186115058020835261158888339003468254833093095600895757787290845130271979481134843717536508768365867296896688034881145409527778111083153181894389936544441482983347877338134117810210167794062824406200187786265696456675609317482953633552467115396170188423424383974228967726469384101549341201495486850361011453516922866760119346303144493785383802778018808225917045275060899490894940858766257722206881109485564839332990495038479759074666188687125201752382085880751327164825832577615928655900394312835764028958831383210480954124814082983792378477666550288943309475176173110880298627176241261594172796299238838930283267237767453176879647006986971903778689498883306924309863024570701406358350145485506098031948160946741931611450231218891393501844239548713039763877984856228253891557256083331379571725794234209183859423716234849727990605539178889477609992952178018021107774002527574619074080489488931482989971276950660667635493078658494409478168319691639185097297782240082112497205213708488100027646662485873270683806142510895152440765191996688840978893611531434359465336315217592997363396782565037133557900677081361492120385173766096287334613958808289766862827263032428884078342434040334393518338837322995325965589323987606868308593147576666855552237056726918868983801624785518750549734117747451194076226024274434232761865005088483494626094771040660763613431564948215721159438174170165760856600407402818397775636988072315173298072087848223729574624406016736726018782280059076616661261493926155097344859538574975870819755426085019970743079656820787852861234009243859979439254012926890169174768258689499758847589017083051138150716465597092142728362370267729740199442325208174216672166741190373739450781312725541060787912950051719693028554085117324946440677628594776534310446249326024197542481043702553584974891575835803908202660238990463966790834126326246424850469896073587857985558567180541342935958449183648839285514602755059237612200659230562034999494884658560790937908996203832143421577047506510562453202566831308309522293041627720609396139248491148679826995140849525651021389389360007859083119257126297384572732069183801645969695837871965781587200304530464143314880489160126639667025410231113817162727384577742917772530850886872119262974686005248441284516018016417931220540509505000128574530317376569029840323935697223251791905069514660054949286483790317324943324897528666131675485974684044859294442202199894087997663584394597052777136680415658489161839291635390343665779372822919389467664763618725948815469014531758915136559944266749060041906065363170168491003238518197706601993393571028180047651370721160584169180963693123526039533471334499640926152383482281344513326171006495251143395718515628396610974615874036838384706234301376780328082645760979776434858869046012154869462657234036283664096181316194545742836723396986122713047541376353407258604227831748396543082305176720317300453755745507809877133259645632883101739107788589472806127129781854871821270280790759759709157514520887118589991654644647325580431312003229069409300274994148102580426596913604585981819559501158239525988931796048791331830503480580350985613628052921447300929871975254130252509256959037226843555628478002036295272098648710445684474638103877424589129467386454052976066395345920626855794374648429361852115013064465188689967411984243424239340212820119604696214201319570213698793462709399331962783766600044242737638316448554724243768352651369783704430013112949569008291782123382292133895034405934613560675475586741679064734898379070404267864026665047851108544561631444232516350925138791306857234035413037305557491139683491882534122081261232851323783310746366334266968231152676649515927484003752024606571221135476408007237416541050451241539771495453098852424268913461277671160053415206265352105303834257798432109421207306359589424004951926352630848089193479840563129346860466806868322173270742698738547219493561267799212113417965569204252384103510086391505351319739095724854149137715040841890905462601069530827969279967763925040934249267966433589671110415467426289663129009379910676856538926582001046994584598158810331747895488207870079120935597988351555465169625472716510685633285812537343598189102475062264362668401297423686220101578772154593246110068437126410204332877645119236993265511651031942844799097612478685184279358108575982089062567853780676978959078516783929208430819024110319663044748473104425304571502841019348423632224360866224002278482424357356263450078764678582322534058667717778903655522532022147963290004794139465004056977974666903046730607769866248218151586149219427935032745391267599145344149603502355146723539421277418327425575204816115291276685513960314351325687891685172729144365130783280992752071461707483780543245874728181197449495111496615990112887639852925949186489083262386840958888342896255453158093911578551972184922073216196305862474506833170920339255353043335971227291217335919776370846428413269694480922452680385556572260097160170218981382075021403703522439653098947530019273537014467953345119378521659072773316815301408546248428317814944882729997687686254270191381416425491584389841988646360305432610233996525422165876963737325868989990890321753113418646319517004722562826721524077467757695814129412917985021000896692779281117408605129631551750939290850789487930577589006457129678910555985625540104886565747539776401590934759289228422902650904770401144083956263779125356069736556551961733889504437455350906260737649866410392789956039984876267402196701602938919341783669227337731022061614502157930447496550399095389032844688380757644059199736671929812749218750726620349650824973122384586592390839704699309936122519053735425300320971740043248435354146044984924235273805326273994957717946603149282812686338943442592290126308035963830396560643534513216443711570554086304119329147708412742607944753120298176585590219757013856490725261246091404539208747359360702011968008049139335360027312942980715839445484864622165979720366323136468190547296590834010170041328885475854474192577862130210563440767559043170426199855585682017064566866929757731066355738284817767985247405453000506473585766103776482810377422216668741928787711505057477322925759596767371680420230433145043993562966603168336565635635864815814606252765003644485383938358207868010755444966144413129536171894366494545212506241019435436519165446766650598116037509080616425430863574552441077969224654343105389070172058596069277082079994181967320961512351434492254184717652452139306562391988317003767927559419644634707322222389497800960991897838405725194495242797562814883128896832868451428255761501433300371371840417171580197681604908864347549049391676453921976104048733942920417717615595186295974689058183867566340912200168869137359171138617097743559610458012359670948113137587456383014208556817303581768096196232166446307626544579107666662431703891904753883921584275570452102916295038906072412836757967000296147835096921053434825767470911254919349941056335478490712792328154094837670059397567813284431871132574384525516834627952495900877053034021238428072500883200564414389909302664345707764065090925193289181332303844136156967838055398983644024420567409039637163407231009552294939692673722256726921320991465632733959873226694309361908303729677636909501682593020666152597901966804956326472712228752136965066204766908610187022325287907141439409812541740409377709286252123588164047871344441195186471444662562946980331711859125548948134801879796234150497061758999898828947262600877315768750916536965085286291617995631523953738648316167560432629348352861086641963446388107374941059357781961083706121557889041762732979849187341232822214562686060620491224070165959539713602892338409082813734808029976495851171719265723060270313472814812692062596862278568422984920427030341235840191968303830962631328814008933440035931337381284474861382728859861660331424798060180711807394005101499448733915080219675000458375737071823129969099407160384430195822753531937923091589557895680653679899435416521730053865506094961994480236319265680320273559799255154410869368236171762211500823042613153641957808739484298276566665817422187786131652162902564078334258560009432328813978799860202806300893903538040721062814511195526482957100022394803632180095320270735799327410058137300302402702217673130661809868911034606583946816841108332980162865956518322943285069241967332300297523372536392281989134910993421584606370864294732466249560538066163506238278665242160833263132259447801654985153263784747843530290480011856009528251819990284785383164827332617130547820721507694346184234788251858125923542658900230661618757308923150796660879450446534969455171289645065796061789398052130527797079625550393912411395894834336599586288900237413368575746558036296432996312031793552429356262846170550027136308309001051176998290157062157271429946490979299266650058988284268453239848111343364315744767437893020683404446677248928085914440697511770241707612857554837707839682841123308523250957442612775470271623554884945452790325786020363054664667268760381338463543897326562292286999841415534128525333147583852000770539449065944298480668557093540391700570028279346894409495477277886778823475177286387933453417770436012904575562914422264080020173582187228786328462049055016559892800602771554193772560573879438967633360088848708150622233865882857402462041410921870554997912133149591597562361137741744149776594338320963437626079848076717983150659303674205453126752032854319244174815140498254168722526070782497854927618700714129700783380930483614495517816865208000618140602614516135414360598266093617426278258892990707680565781600374239716248806912679272873209518194153485086051896881538846840798166525614488695579713349866863062007885794436438325386217174915890210747084619306591973923640450212835566077798371941835952348590191639227972521409269558560439650486184883031610330937037379622454540485488494576077858414057388053357991431825975278789284733484700788649756850095519538388007525699871085585694917076667140271900484203544129355320493208944650186406101021566929951255391018070929878224442703569878713270913318692810766290792878664657599048065229074031940388227920870313963152253093214161057957081828397637084633143632266451182496608140236670654841847172491827563937125121796306171351406483681265743494775809713757831859771939053575064118042482788644479633160344835662501944600259742729401367295860548100840730297683750770436574595862826892510137749321820414894239511280798463458223758946141519242692106975190153737266659767535542084493077831054383934350595390538197913284498826644104487521966916753353916148147582563953302015629731311120997620158044823796748823074005417083252373404582664695991114677817416208500315819615226884203212431205149187304992453101730672156727367813375029490282796113586401398283838855044059502691387183481103667270652758185102423371983375665342351894380300581452285789678827085151278190605770523039106416249774764501275484443696314729829072878713941897512111673773680300783833071413535235800184694012980792049233075693432316335619138395710639697243264714975259513468650765953980798214367465692625550078739999293414919236327053251243522695276695553739571456233677867784079475395552793433809906319637608276207425196657748334396243558347335860582183270280531168669387357023621287767333813032375994754986047935581579270593536020109353715419830793343864471285400199532237104891408747259444117407164946286145285861734761659361118277457905606467191960006699000075110337233618769232783122248737422310309873337046969085914697868757632217931385635579645609146629891421030886508404764558689513655537947436118673480214635744773446302634776374455355391210622131817890017681220060875883869702750081249186298875849695658612920487240776937226779675961090217990350191033615029495101710582827006152707044378280506708777835139349704210095580817342152932843862654096392879377047214389052172902821440472228513965940339761669963813030267012081485812010932100201273778997876601832683929003123578104456988295511799146119342132531375079613705844111539016765821869650694799206038620291550750225673640303084002365498008089409953137662746681124125158747342069813262847970919922409253631949433185999233846997138521500699292776395504834424600627192339546666236122936847172355529724060336573859489281180532691593457290098945551182468013401771867817058582027151337789048828678655424145662555677421804915766138511624876722567019266767551021982256815945470975038217364835388285379611287019777706169540616194065662748056231430979095151972097995024489512658413770554610698101922492009353816618122743788906768880727146138488376869484834325337144465473634685699136346780822532759683849512801215993882480289836066155423424268453536225145412741267124849452634307412274152869037150234995571329060273997856569456128856563338804818013676529074678727434839484976088569517104950886233640076286154318163722931323452154763086528666508421036569873320155421273113122355506071413521252001175435751951630566938072862760955700564156014607575321985428696015395680136187231102505604941006745998499299543397895025589930335005477606231151757698454830898571831718123124981838943564266148705284876739221397742491973344295413237226410658714792860915220459664293051183442541057660229867760283921754019332058544472023131158136716701554283291402480238017164155564478900421900601508192669000941996478839824695926888128124012521754276717102131408380913568315736955640271869716438176572131174991616976661978055329654019998532334411537192784274839846985504162052020708438438001171084497404999983061785555961555515507081960072896560873954850244308001975388726446545119320078409384993059591045615422662058780183026317957934928094820155236538944882711449794714773526236691504122993477212044846078795159153949525898210873777381818639666142778684474975390376000208844170864349243584784495693895246622263032271026109472225936520468361136155880738482351985879858772372778302302382192789376623683777247968205801121419387178033630938797476812045766886175752937043547428519104384275843540545582651210568514868531895721201508887153375550903321146860042626285980543589613915974251685422062084267986088318496847477836580182572406427284957673889444702819542978862550589923166832620002773261045774720951778229150398786465941792704485588653150290590312069628714622778956994393730376233951137553875011127169821232527695146494686451622670082001028696978016713660836587072563683664339408302475400995607396852348234973869350033063580587522576140362453264963888661354648007401094182812197341488287917466020359697757050613999905468911412429639582108535622242202002308058869335774879508749101829947304273979765570238945479004767056686088976346314046002554449263942820088081622856762700870220988472047092505028589322559950628746154425377068005707992380086369166468328318850460183383357646114414088606384181325922520198158874558983837019546903252841303611191541780135018897796042141256920388747781379778237478045416669413774642830106819019950286566246886183024341305125077852829696403443474748848598413514377562055916545632367305176444676609601163470494591001360115503156343008064423318479211404547410449220133448845836979683818929212331761631119164208107252917788228025545837357564275445512520273757758741055195181345899420654465172862233462589767816554484185868426858550725608166792179552223647088034279991305968067829007077005393198700416384229479840833188848909831029294020110848651245017768050319281545126473438617063156713522771401016044227555713482041933750160892167019113419117668494902277153465085299772023554598046641628424673643625883559828797877480912445813734934578347261079146792194987197740659703573773880613250920227502214614224108389523527406673613073846474853188205461710931088538786389955673205012006018699416144101910891019085984527121782735204925514809244913522918383992530150940247394605379475046416222808710870665947841397928714779115869313761084611045231392976347674299292726397356444834595577239588928424765044199092775753443370227151905616839770075461635425847139234133132351646656917383818609790625054361391914801507553303622426419872710241436675283712212579132806162801527955223243774339259826941813287143116499620556460139824993816509596018558346491727220307653747149972256882103655589812136309732561959295584676131868470617535398328228415047743879677589994820963606892692883634141346942639154178689491559499809881106440861341900473468809744338721302514854565699842405109735371514210643643742924223740591765157691738569412884035817296673665844730041894186729067203865051070113480485349570374463433658322322223991433901669136713452282150301475650705375935105229077585692932864340792173769600327317828983261820404073862071247586736773633029146893890699221449268547340621642904698022127395759345144383791567876708322124607097073278337959017683777932520453944722274828533713496331228430838348889928625760210829481699786757803374139049801941829102024292883452708191052035698542895154443785501573655420933293055479290832877853375116406639638770422441433413927402958387407871287269227168272142773583468463572275132644103342151470152278456585467759471676693043650177708923025761831298328815631262207341344121348749412375696431183755294884257909227521072329242028767640263856269189617173082629322890079756652961778143399378745637302515287347795484476374951477812465491591941053862177265274949969307213179927285604270697544967649158057006505753060351544267737439915244046796376307242841177187104292907058357262984555311566748873122858753898012735931985319692048061205678854281084474259110799512304989308632812794663860306604257751689110037090399322418674018451721611244689719295182704683108442703946552307160848071737102965664396178971416899133690626087363955160749577379084225832167991416056920248452520503403049393265986067941419055086154305524926104469503316320072937610951791855724161758137763435293823394963859398994793442533551377737227187809217851044426476715287048994224468623540527979113957385090780266900217311267592986897770538494396053665340078438022746843017710720238511309770518819700164576555979204979224892125862383465938401284926227538493741990206357754465745334760415233399428449218518993694616208608407673521142601800543736215260099351424197502950869049183714520644537092510071648264462852064912947932282047131707694596360718688761392548027361078985407633107026596036283187946263187005371591192275394026471579400955241939379066228857339990422600422577253417180960771795748322988377547687206135646043910449955891745209636195166049663234703013177998105758444820913241940779241203160794382248283817624235593802547532403755306695707827898515021155543156106568141651982853659039610083317438632594929588971730663985338227009233158331871101831716889119920877290317784167011314928593963650935136325459296585628275768095905956818431904107187040143137028841206023185641626977693095200827256637827477510041409316068120634702721378686450511197180511702485664858792664821126501550336907461842688283354375251686821447275298853228903869338612151816626661445518995948142368035305395003581054674607114577337171391838137184843238036756197463127978664125067799282549729596839554570876726152150523497637121142241956618466734512011046940924462302460190778913135567726353916772465637739365697082270010143937054353893651981122103324419728556559705979236649503360854577032780124137799871809548729707079526838552178328612061680793076702517220691236580374524626180633457834001970478723636999815286849622471793551777628866437217551901019032229071860618775757047723728379232094943747027366036978675026045773463281413935845530109004554610674205680914176660276880630158452447075196840545434055254265186695171566898256320931283818929547922553221555251828771129712894634066293983338753527003978914986936632140109069633805996131471184709167420214699399739866764255289222069663430157630396507034601906732007751882278713255770371336680255610592607883782590047443114801685387267989590837428185880010587841582942981414249650339288045436541027277001137430898567967379953022301586460137789584067112757773786110406219167140791426769610671037179614061936697654326032761886148193331515989781234699278420434374526904005001485885289692908076431894563898798957981587066326909455634678402780598998098471752626391227035079805115918042881737294431955432244135580965312690174187399220261068808345598609610856144460401102731089699995862377172820676689581732348527982933635713215231396592388058342842687782605835731145032304378406819893196143956182067622597618781086864456089343699167141479439198475223342721860614365229788590739597679386477078867275073654754940229973973673823805018762079241956505574287253579658327958174082197380969503015517485410659701394283587010627129888790891236014938741586979327414815378977808287053224291726012629574677631601299343034342780551066344240374191259141780496454935807817028579883396386412728572831284034627952895519986275825886854571314600945483015810948267044153743626303491262690617406354496637253407552141320467832428173772637936723483489571438834529531386479446581336772772273520529407197081146403042443255608936620852614570791032469154384026268713693739902726078700215210490341253780117186103453863443185528104060151827699718567621582928479047290862915433728510160288904525371135774698544720940043159414026059777579909280635498392507262807109234520432556401631011472202983449653428683406840456594347921048746521818672390831566077852098973180447479488614683758261601660196025235039801441975742563262564112737864407471658343158363527055788949767040825989927101319538627767203463754185649592238262687161390044572741796001787090385590311438501745622507112502670739569081450716869517504273697829600803372676583689635774591770595074497319434147670710645040861275525657084494558375971117673505494788034135865557639972962230363192841873481950687437316289396911367954188102772025724518185013692881918336538562471545988012604949118867344825169451059755848127179353078411059539551564958264827435190780131860566947140387133628125748456303413248684498747211581423462275830326883637247459341617020661016686722204488758121162563556925530063137297673260673224689683520329169086795783425533365045425062555490383784474021355541814399294834345364102787618965989174742018845132915349189130368079873756311464434633512336648444037144154068519603525540705134883977376565947296465327423291636694892810599866667901990340575211934316587450827125932824438865680658264065202589983045407875283098891160445929637580444318264931467193865878295649208851077414832729526623861313145736047480603652269930009940775184435064626556980921443356807897770911020771757783342251794637096721574673568792622286044145922704851211174465027617349509119646065215887324113139396921659191035931847835175008637248242466367164653955004657007600975849232420409228804518827809667849082533350160804191991521888494824224217297319058884902730311286979836929482853113628808115731736329542494497203144974624976681262572527540884031783977766389219057478885846827251307367087985602292942078269349888198899193291085944043554669834607085040049302241292883587335475614016678766342065669304143331607706799948257702328477195877276666188945419523527392222080561721099851905114820648580770189106946551362891972068978638840491428085693517305833867780381230760332966758937238171456424352441547256656719854285067725864144500037753379538236230131368496001416118820818252896160049936321586151147457136342880814212258524103958199965713028550273195647605619125202825173893755429565233855503346671163253311364860575128455462014486760933260499179244921523475825176141783125944608097568031519272389933279544939155625615088260792983423764785748177374583978476386815825238251054225672759026994599129240728152968817811907487476871328810389987408830142282040369570347831111035330982107573113004237706328526612056028900621596809473415669094923972596985707044267591179448348551160608029690900663090584430519237115318223486002961564958786446246715612485167065897674982597480139450686649248553680092323002785662416225166809174292626765137593053614213005917164962248485422622081171225339409569953906726328738045522239514063677868120290715491552982069272228665687518951892224695249202795867946760980681232223364539838783181649435351726959518572518457845942397888123800671918959139430100378962840590791283042769821866444866617548805505301654216903405176467394133620808960065072114846516995748540588199576642961053740756214970493382348930565827027293651735927000343258548715792884364614921851451643962282887224484209901254001550277116422498439205648447756355016376338510694512841186974294403408185445712904143483832655124317473306377468699395693968870973045320444961484011799439196856926276637371685618503130643753949935980252386029869731391387205193580638994104948055544939716745058275917493391600653832764865304479775789584849009360492666411807539944782222959031165240266781226299210705218562557696277513953011744190035952698550044732103834735128501853432581832504657096922970916308781314836943325803640576729280166494530831808562755561247683180266925818828991025515427457094011840151713137823137795380744555460072084381692380902336887316300518930447146465280171358308399873326906002205136534925260690498853010409873924763279851828771986403814013775541440624029318610273608773732147895431477045967190173531682331862296883647503892145926907137011119010815475973147783766494704547051589768560927278838250315785971254322130532932928954400995039626972056960356858776638605895175087225854244801229160047630701409830977518414666389258173057011847328408827583838154398628405706834855785401593975320580307131630916827086516456091628995314350927122965653387460149121504811478930371633548695039272159957831262832416529640998230996987870466585490061632868815630857088572353233818948645053330312998151262551266149960694688564027514630919294475499462502185774101795498245210256740535718726481935229875314981062793505268518135227479020938009143752827757271242172706072730361145395807118129608451068864611576229622721020838526697335008247099089950886757511896365894260148599241523426747652821659159603923781348097508650668956694880874401377406618235995505871529594652772712691229134929092534757941724283692661464565463598627902219529272281286815807443552346989976894802153830460422317606426380360630489165580268858484635242333471197041734232360059523071294242396732441849365412226500115218180876712281684412208782308975691584927881844442866618610617286888266388673011493226096063939884233114905830999452720703259619945310011110030196552426851687766053160615995717419283070594864254602926297382155113529111212023183722708091615437077710637302906825866161961720209297296487900671912177810979695377926407383891488937219690602724521575574551283204593758311920558593454771211163284251560882972112428031732376671128795804372047348305018935052894793720040694973293299738603439312226823992241974886340984992845382695016277153681688268259686016438749588882016580686131807385861352812860532096994224437062198970038500215433878287547277652793121711273743124354804795392788076473709322516434940072553921365326052674615219345747612533456049016144481392629014202341418695931064025197389282468016595617810137962954341442917565273327440968855289128138375205986492143167869798336022634951447048339014794665863954970688610233196171918457875534467394811932821283078074826643745745662909506160687180605960279672919635310792171543342784246048618423754695024581335971693891762114941251655311677906543895634990857693946536442903249216631221137800606277035912416084497041778913987742793989766368422537056453420769454681101415609552953641151770556792369800787993463937736248007839364132967241974135937950216728313476810864413296242610652323822758233297942049107325491097922955381340003904045713855501928873010502338048883425929522475395802362038538001111255239104745008938075342516611249427719956607114308677520836382255190875646899534591926753912623608443691334381500307592081592404198039991090886019283625005423457194502560254085893306347699471515086769173972140904198693009836280168857810517416209546604155702568586051488949520667122034280790396279765255989292805188829684732022711735887526769928613325407970079631666848583524807628276648956169499951853339263595681557076671591581225582147710602650443235583437372797228388216965076348581653280212091485029355737223522054642315874346909516085817201336461609218042694927258149439328273776104848864971904987689998695408392903545107170752084260980311745023839643249609500768290289588587092872887615204903766498211699252030225368341646888187989875134322258704061758894636128279862859020564870326532914624424933920181608733440342932135711832751569423581679611623660684208987928539588679463895756001380553908062047223312097163270210841564487411808058159406702894510982920934529662562820565255487429110998097747721351810715761802758417326355162906124086488626768719576266560561729755338395744047762607595609628207062344180421052948727610100009945590914127769753792663501850924184292057592344126321328626157244142427383900499348205865453495491889464460614671546228102039774013103402513690463197978113744202062660970054469170188440100275739033205083931339595482146306766857681190330072584956200396390053558820988704989302712790045282453718357797511707183386014214327111126737856798910080105556183590094453726766377805558220795464366551351781574127897733121786374388584419812601249445671966324942618892169550299847122508954251963204309933274722644433015718176247016811659379853874990996905187504631178479974130077395365844196801302283487405960013036917799627208430334736885832652120118627425469665570355320016710956082102662229184836002077908497082937109549711823733641613772606915964535219193337026902175110731131817620627159900915948425195863732673675272761388040805947827366274540559336330720405051232793637385360104696682299496284927498686008922155900406294862526876578435397113644684663861184025452925427562701629112828844114414454170015899724232402881609700777879357422764647959295887957663604421902108797960703167957980483598899782243012872659364110857820128173857799117944097840162241306324107968575395352022163765256220306676372054271991274075050389912514416473410937439475299566089697806239109886923377417629085981075932945632830399707206460027535636143952651707739414283699658132609992833729266628174123369389764771360311395354300179587850423302484466076418986660523462381024158796333639805324164400708682342855362413437703051121525412147999784212784449313928512349902827816750306950509434056225987403577459851796524897462478206874256886906826892448321225071838398650702891232292036090838734904558303002949948477195840552856945299749211210063621548123773564360434771511592319897820947097721665018146971023177161159529882197087335278356423425286643874200896091348996150965008973881846952169369189043301958147970323484620020905410792539314830139197087486084626580141335206813625642173318865018864602834559180878898844630563734467092619493698178045597568694871834679377911361908541649244427044988663704430437594425973516213135770843186992752751810404861900951702527372919396099213661470784248176429437255355683858377711465635423267029988686640063156048310423734594651038713315363477649936291469972331812971767088456553135578841066147547586595268196832821196259208289899059850495719161316264547181010771449740571782252171493333822413498712586955007775762765318123028895862557162663271687633464538390975168968514651506268395081656749059615903036149043795088826381321757992421118282745212280343553204514532875845802042683496759075207825631873589373559545662867245912515540970757559004539612946825905635801524348935528255933202541492945528181567200865103304387545840024812201602323026424631477093676400545675357832994618471215814035230550431347573681244515828536550878871252332082329782777739328281475010360837244742098458041977287305133238471528581294571826261859833207304139801568655546280892297265939109291268990955029194647164855728823697011269732567577542788815340835091101153492683971317628928707363188010344139606312501390081544196895793444836088334376202229402489361363054565728345305778205911573826573583789347573667349785815634969029478291429415865081490526684973890930615072526225711990056898747263800330032805533776160444232919611867365247760146098152211090742776272177971456931203417935032234491279006238291957005752845536058650764586833010731090074995456455677397772854897319420507976210647696057053059879420429452469830419909197626115275927497744854196547298346598270994213720334718988329883139669021056325136624581388780362019987438153083462960562071807668308481896513281527543360093532205761612514304046680460377622629331884717850930738485560967450790252113823463340208622109724688875090594854245057159391043764335078854780480902032337813379320009926050530015691154735467911380139567105295209153112174162072394419147081907674688317863630570949663586309394984956718176596570681232051543205909920970554017944647010811399701325735368830281129633880290336200451798395457249221934083173388759808854838242232027785669856797430526250716161080698529320971753055960140241825300376143137146752973861708376062738990923220120366495139136014125533289945752764031641500062669440736486033272659169599284524515345631580839696156804748762648419792483539241357486286604802545003851024615155418586956904739316153221749967462892347122043259153430311981491903734161097835884448981699382633680835562002049749421984759836402267067301934433240314419549434877873857729523457424836914672913077284078694686258711689866932266592503269997962631785955048263702062258142652457743396175847335081214475146098355593629744513473262612753211282978652429256480995537190845744822922070117030775514067600268980005103893710692866231475317962839276894051973417858100307713388136256822158791362089692882943324348613121676305046914874707573298753807884336583345321035910908088145831459751420485601784509382778746595965675599807071835782862538206174618352965382481084777267769376405627680729414653364055156658687168340071601313757735493075110941274596975627646101077257950521813092883633808826329869392043064878649102185532331191630337947746051414068691884787693044316736391206068079715597648132567321615005583310831605257932242252375219202020439935897001096539961041039195796290643946934942566081262354352564473269234235581671255695781675224563256084691042084729306257182288795532837651105159457157854738975258904613491786469336819655094865635493490201131671636885663557524886138462606361567529113474603746878454921600596309883603102003494972891252665724474762260928520141384400470114994108673792759650032698988131205008796796070084963496201714373209006209836634295585819736174520152821252325255419061385712554390530877860878060259531544078410831378020567863962771850934353485473087920370632190487143989858116919409688801390446419462628819820504088719421732472038661320797550631534885955976631296358685619487759132965396944355010242456938546836881081161384465027432715193378560892749347800360710583143284985796415058221773654252369329407150169247146253051906214253641762914065089065629505861491772279331124817545623576102165884604132919519502051891469047611174495375297558644914165513509959316224056997781953207448011386221638595398070216929635089518815456084146002487468534555611701428525314651523516244650462261247222100351001272780977181786004407009775700896949782982742814326286148966314878386302079619284855746684802448666923752290501722158608724950629705175148942716713191939794186174810252878966720203652255581852675453990144928695769649844937510817224254457805142441203039852033786113965274788322660506666431652582502712191117107284660755984375028185543613720048292595833715366382694719334732303278466312930685830916291027886578011532263222173315470148228114591168282133266292142127914554603714970023239003920816969087096255740206388033597020179164359383243584771609944901428645722977033700308516603585315048343099187804344232999918983795014746708319707878308270373966796507062610130443170834999272350401453911236426161132844796622961033278151841919074718410841899950099922517277205290262399125101930346501229364074469603337418920889257489668137723216202312064263300349139300020398142874120877351987000043281975184977005935720250925002637155812884863852333592832002537760034053987224569398183886897791002200822768217319695169221472355015322060371969729133209434945115994432567218425222809672230241545984927766966319360812578328662459401264099836540638884097830005992341696918431412183398632079387710891785846726065062348646892142072866928527548396002521648471880249871739531108692303253412542285582477012216983245525651122637216051542004137496189528746908361695176478602281577951502611631208656854859447140694978753545306059733824865412416978054450617178294473905386478461013430922533210765141309487045456047414778023292535690467282498199805034111932910044744844108731314974587899615664109291029559439816525702339647005285806572892739692707300722346824947216356389685309977401496196213126955863500006771383474262238937134259241798001677795233160807657479548782906419879115628140696681681756973751774242371407205066149727209764884685536676565850290193193612859274778120588776576371266038431330677368732177720414631176911399245926956153791225745959451974166825386472031919979741922552799103104295928961142093822896960434696459570854685888845244281148039540077176132680583034511456541733582997889760112198955648356687105989853775844215624829950633504800003401206888337752193186505734097290350996808622120331499785148874889324199247290429017106083460550933054131413828191816837797949769859292974347830373731440209315008873119260420523400356439080801083485103413498296677066008322171232334642961135683296746810132214749789937424163488344223716732202315580722203551449505605126173601266518137076237039332084917981954578694717981239102475652870465753794409081983703574969040584810934806202355669723034817350676754110053218833362138810327019024848295420914874712936432036970654138340852647738409773358836317537208278412581813877252510294425075892598854325765102982261653476279885459507508950755510624696587498406578355564742871823646719029620421374573766905515383589005379320594971325974931132416369642457116939917030379375096937545023285564604804872351393035369549419693788446225528811185166226684703426569423138562094398705346336141689554654385325513834142384335418360116394673974347035777051585423153609574182432244086801023381171299481070697269056195299256463057409832914042296493754644564162794463169248022203840411415176136374809486754063811027715791371781448669809424976439723926695156016326004951628158201426264513342291998595721635772700635504557785784641974019016180612173342874098854788809985570561113379395819001763460862880907096306720922544263772441857027350719670475566145414134930390315752136820680721419467639156938725584476807507949356863504478724329865017200154470260505333844968790191171797577642529296784525145734480895616360243911877694923104878460996266006716657358293887089323402453285966181218334245241761511755931066105715610519572439072894348886525247452850803853413303677633450264340378157993094814935639125984306777362529830713613151377099053700789941487304358018324024200686205898081387700362186846431554797904133703951105899301642491775802312632050338725498271533782263645885678180863857639915706247422778104031323242537467149113394167461730944069742983325622366131305464019987677460827127440281329885560053136661940527544406856573763151986029447196974549136915925827847549314737430329296255546960101476347900251884928488513873411691098156026461937301523404868742175481781838450265163091425061295059107641381643734575979764306228760826343422893426863874029586988664582533259281167175760122029586968951760326926788693269788561565673859118345536943625447415728942758103449474740591714029552822950762977249974018893196811453970285682914855365820649793714917796697709268697139801302929007717893383000575529220123961087059698952125296730182878419824675008794037743260863946233541902380020254491905995920294935273898324128772025546448549503644598214498238966287311388542385463574968233665746910657700012406408371649162019351832747364712132054756450426831970127084495329308959491294827351566511786871180266538654691311577203615134818179096870311859841433324774794449109777853921325176025067557005634286087769393545443954655821423731711690138727736247268327505848780424885227204820603145367544824041460262472851572230963898789386130971419750583400119563524925302938270541439500174977946806158611211015095153611598514533424986753731671267577043430173496482949334080805246501679601576974361351912059125259149663071137539792628923224566266441511007710370048455154909171059146089575336818898359706535333234561467634480178434361755330892633713960544306171888768158236280692057250550000202847157516630506935476482893432183238397863696270108307744018473589585128300352173967319194781354692854293430812536314881917560604421237437492731553705748737620788708256534808388536181663881148928128560140069653380777726622468951168783573082044470602562211618461795670497691535663013334140582416797828907531619893492151108716513822275786310025813710049304973118452309081099149608996152849772235986368198261682207906367401121302276183461185506151760622996775200851316949176603869338244230616425742311410391100821135149886151705298056590360103914675566576706508891584398164822073362014512714148494079178312937273802084406594026963268902894809200510594461103964715079465822113884888247848118854194851775622950754430311938986032343633696374130229940336807676691765509102491177682815650288001027831806103358641412747464832143407237254542883177356021883012241740000737682785356991371690913284744213751568401057551790990266261725859777613255283792326694273297286419917229271128261228820979807100797393322349591833716377492009976858680721259065581663154113401839164738807502542110273837140271487583364773989081139088948079338458470769337300807409737000058749235674842224090965331399841318397910884894632149107007148738471614332445438908020445209150796182968789837578092397668731978226503527765781927718058655111414150158319275487184048174126720162813433795771907854830221573657206922791854560825485309998436104016331040188682916259699457398138677000800123420274627945348609665189110980505841000058475155755943288537964460985181650081831098685309733179613352083902345492729720489630219881258422915251090348959488992248137992265519845363353684878802295413405827996621862568458758919705955778495701684824543449206910856068691953614539725115740550123149718027657702970724109014600848623078861113052522066532798924808967306602263052428892426170046896973331600818898391112988972257855046089652398939859452036049615790030281742594624697577901936515604091655221449512187481927463800007713270457340261869896067829158535268018546176688955368686400441361593994733804193060038306112665839213230534160309418385377358619263635538192500852667719763746670760570029726136638348242849739509934460996677499182071569112630524325022445479013769089874311866889256907717358083612469288534599560623901789267225348364723118517914141890699196842876044721374965149635984096419855328893193483052157188830572534149158597689369752232048212761499280244028283336664914679104540462166002355811903961616755410791485154269858323491738156869403594432887269612650209944426592267091697046559103235990769463751965659365763110467736902948946304926684566720069996938783148536663058355751673847241672797098628073161021438851375176415474339855504837696225723995206599045875454332368816059415551619143194708048461864748609248302697817104036940496286671003602200772240810313017965352282684264393910241697297757277745422002192898373979164041138566635543743468764869085034596780738399882525845074384323055477793901376609210250186599640984199722776788626172994410661117687540615414628219852135135952834673550823542938836674381100714385984018806999758109108615562252814989968600953727781461127632349179537403118009497817747064082493901488823014867462366529317711882282185882559902168659995242949546493846742306428662047846232445873430255541090637098702565910249198881210883730373349686325421551686113013914028060475102552541514739351870256046774633134969742664196881648920548398848762234105640456559421952458645422596242846707996810541485254540699016220515943688795928397771886711023907097379661586661868754947525145313312557473365200467519848742528766562870386972181509972462654279657994725223788550048508909124453859366946064128797503195047114042093705148978087196664639564174252755246985817329396707827599427132289244326003819545083852967760192970907766847660889304580686370223224070042502832437714000670049651678247793585641811105772851053889422133518416243554258649800860599041770236942224724625536032269422226665741601080649463331878336460667034617664129775436556452786571952019706630673054311275621043342983810556232255664371488934010451164379101338233431723268544328154351105669720655654098995764771426140083776119813029019925133133918996301787511856778349674666857463644107870544332696179703617183325977294948072340353259033686109926572630348970751488910766375954283752474126033685518553697388976388464747812753159284243866030965804978126044414160148881715606587944924411125304982158515035375545052959538799236766262576744503225811836910099113996652877702833952015408890330791177608127210481116904693492798855101938899262726214516088847936402024848269037584274367870928187514852623881317842253671008697812097335440668499334895434723519273892428450645939532005247746255225063815514472763940696800329987226318633668878422846709294361468819029348783566804772826170429322960870528282711762820231765787509060947077664694588438135482034087896161971764023587841529293585868972587296422743273909382816977297312030204217466688641725235880727086667687358689578066817263176703520314169890537813459200520147994380320706902964677517804793456203813194927990073027589420683123127828776455831065626551721203513378170841750712739476358306148158307402475446959129538864660344796363271519080138214042808309426937998074092079338911341947845005726539403382901339529231772811090299294428691655858635361167912236772962533283352649714121994517408279682237304921584018621773273844213944144409786902968186975580174094450090979122322886191619054470665849619511536570176480159210848494417744647082152653949431818438724709571434438845872235284310869346062275643963187395813174058807061340747082027771937040936346305127103202307292877165654453879875380311993447421641026088960683885301044294130189803823030230597749574513045971792446660337500464277722454961244422322150908352369784442541532734224313265935628286922608924399575883885002406408834488136897232135098931769574816022783219472156447274341815793769362553866958543538782163041763018364388485222513067248835156185838720080575549110173534322741446319410444866028497947559711339535966656233466228009837556544078085810447658927482551272307898944355226798154151816956312640571073646111684997886614008000232190618510380730388933100630164563003392306408109425995338703792655541955283166328646410800580102923928764432534131522894855008556780741995379867564522735328802402707267638593163102089044400968225999696555322623985949055177272621139277989011763383131461228527110269194084539327882910313965054203436545175812177643300032479785566270817511462885580635757105869569270027943042595363851647693065654596913744137813241352545789514209590994789985768407884287017213428709629469843073855052575632628584123152036533369101570597450766772082270939204344349966136742150459771811310639813697039457235997510689386486318623786989233762045518630082875755948291146041701251141296028077459415333959181404159005015298842065312401930650380925354702574528876901120068125583690564970836176720876501096753462361472493370224824730407143930595349955736048324509289271693481590189200133985881954762012295939431316357372034056561288106615889277567013225380281996411197401585834930094862207297065540945417942741686513125953744923135751401355429710495377796945089855549990403276095860877815603327233975812209976322658002598538277868410627275695937542716568483618009066439043289808953917448067719729446224031141334948865522695710908799080762915002526461054573681286163336552225112324293755993771683927158963779843723938130740846850353901151984807706196315821237644412828859250677474478954190615601921452174682818564955790559736317000687381990650759220353670144438445148877782084530059911709278146303768395043005158213668436028037856616444056710209282437261359307699787243540332201411413968982257971373357894444686450521373210270929005707264442730008457034413589342463034134636865444756930413534839670189146406397668240408975889466065840865116632630998391473252556326909993044973262002560664208786077027942887801180239477882064519637283482887626360386063720761061846446929944431035232065100976188473366852643299701138115140773952428161372223839276643828808661932456857023151653664449032575961294166054829363555368909951682069129292129071706388467388570270657855423984359167657984576205950283384399360032342656806455753558359512674640210789523005764921509470626045072461277303564023894578976591513954064988696048222899440380248454677462138072804405756516729283755686253273409289963645408146084738860944171761848414726495386035915823428733981573689292396795666718994291803538944522127723406006304215935982334056304920738626265628882979346609944567497867095466375138161265247781639785058185868288508569942973937336034101097976586969732384724828243957380438144423742500495644327025523809093797025713761567549395361048470838922059511304330752521766201920809013947611921793902027333314432363422006525252151533825468362100431282703776532574735266871046860122359658860079011553886103833658080870363228328431002014787988225179193294701960339340225121846485897098103087000650487130869380205772221154470847208475926180978597275794618630213751622562349234970214963457818850900967895345643910139820371120779331574996768861707982019869155829036429646519091614637777055765388995624282693211867413338894009484967438443724361166701010559692211794064176417290768633432831993225078574059689198222664098079781771912267805498937804250164231299121823521820000114458097185777476640426402645983485716165087205914546154403157997889274406969003156910006302940319471716309942312607398715457481526137861937706820544421173263272770998913337194364082644419277122859900599648290018801781178504079375688629781382870186537183409037724063775511536278651917652166520012538320323452729727826523837573390958537644092108436363593225219233613275404758551736797925352252422863496889092319167131944735809820838094106821367759770024052763486231702589688206533400216280264136196515229871014137251414894765731240916265203401100676567539348305503431690511706653615229050580386858234100944485827410095425709798092040773759920947086040644899035185485341673168912530654720180156633999689277502602478655600930822879840187512641315963520377602143346811299743563812249568694042223271528565545674731841889435844669406849053019135586950052778449257984977608481186178420394329299730247075223047793279850782720880296121294340035652961288808710068157008221870759805083613967987790135798042613171154195559056204898210488642510100851613274172636279836177149845478359095346019065743821267518044470048407949906298383496395486156374952031395158067773457323520889979365704007252538084994620591300215888698882377233198866131022841633775524531507061927391231864352977481713295005461096475234761057814028805871489128299263694051602139919822855478618990514463929495899925315681827444510398166830407213225576163809693059036433016722309802296027553135165278132408352512186930201296047736788183255961223925828753323492969367810116984981472819619437493677845419299953124510630408168145199137362096365027577843082573518063865172491245127895815725110596450854800083469186205610519052606032237134037518373213834318895227142596824032730225389071692943235750773916707376046165506100114060902312315119278384281812989693715178170547625789465506155814811381542257018189459025077866210868624708050467252269600279237938439269952442195787173921407421864911075715617451883589892058670423765986197046959296487280057254129456461395400503378473576251543086339343792884580871715466127947303344487963558550685104260791136173956558537526604490807402561326305121873872672476037682279744451784872922153115184300664862684281868088774236174793405627117972047199417623218415364054791358202255449411269496562290105255701381528579834827005008294170207200322700234158282896083184003664546369762602046415292291132123438127134694151978144297749048515639407649768878303775219947397572045942924579849008253633155532452211987706563116308244965910994740255651224385924623022122992307303802867214392222247038146703656884327402672902906872796125029480529027640059909862052605253851192483840003864341716640794874485925408350951775514128403953563983062485955862600130950368929772126164964495319378788541012749444322908131706434495152891381158370180595042464425222823900227425972954970813868654854125011982114068939178744143800319576454162370605473357477380077855075391316295515768601357805524444876470705784973711360669706200647252338146811660849612266229257708069528028425600732502748768626229385953460682295384387186085515370706685762365239125602632105050998054422026422895613492765449950440954726054363429043057811387758307538056901163311767809240500064961222231825459376403263468977459752912899244700210476330544719413000024276005482812403184365815542042362260168232227671067097961133229817927143489411897793309806953372825815082372997276756677889543020604953477107125838403667677264744875188993551842133243016017793757678394835292458239287483946263570903983336563284874147513648747736845833797792265141220749787595954182772672435654000602415762364180378955881998572930333755891019121839317297878245106607239891736304194865192458591743657623829703970972492139797779648763464836570235641773364059332526688861286056845899880114661765996810926350164849974611180534043271164617271651162034945780502361790406950654194298566711103763496563012788691011064734631431395042260318201441751983737902794938153051106748981046772647837671383832508449402572372993252189583236660912102417198435824154349479461837405182508783324379809299769271839589725085999546123440993295887406001386907361852173785882342185501520864207509907858585412620898302284365546240016134529268178964246151736087436233986253316001898901367469007764692028964306462043377897429150202902810863918405230204216741500265597708927716991998178906735290916406346843185543009105132470152879290701175098102437101416364507853152925860697515904233428472859315715662478184386910711548678888750561009338304721595130449878689533448430014977597900779014084938932544676387276592752353988129536856068491155555885433347780361026760081083396033714458355476534338452824841551023356317746097585255752889235886435472997786501115740290249097786943706843455592697166464319155165517021942867131058921071557674162680522187379409731552585124293546188196500210660794062082259302606367678918321253288056745646115120308465445154320820842022051777548564869539449125217683084051499511036506967296872540473196614260005999429077402306944650587080963184641076960323928953205166289958671192369558618798177289855158950992867991802469165197566466295442500109629315892037761776431180078435298520847249179302310017672395398987908156365940880225427844111617301607700187640448236377559782108207622087949991109638223747591094633664040218338664535093343917372815184602480536032112774431393361432783662211737377925482717020522639577059803106709840554089537859805251797142778442195681852265652012514307946015209642448012233421814441436364024803668219606694070144549833000556309155495525408010761223706802958233399524567890308097967189844231296567107655277937820412888215385527946908506630405616956248936365028826846114250234471151021227271909682874258581032007065315032905007241663058512583807698730802046090218954678678481635666937075021071553185722790100372403244930970453456786871928664039952007984849066234840822772936742304493144430946767046364079707672518619971926017617599407040432130502460119953964883743414143834119541836351127313302114457134781872900793776674260036373993816847435148484065059643673938760236697485343997610215531689213529434744907477071047091382585442626225140681682267999215011661943893387476257372734280607846233544382959087104988847149965821606966623967687308715625183188574857128280405428288780066432905525540821754310525480946205328104259555565381554365830316768918999090810447687782048946131894902784136704282654436977994023605293509936374280950982649952098583193812923135601639969975338070868901626331214760703242294235668418658447906945730103200578065788607502754452743394922076015237403087215367662178619301580924295721893474605346077659593437717132257987132134380596266335317905375391567048455362905029584031950074120420132738888026701087296540386094151827791635412260961598106604134598916529024434140997243203092879149443609000033772874701413531649374780020436281343634724097438729452544176063777879736660257784683222991447768024174446015763445388232717628802418660685727290950604085807430287520565995321898405134462025479504649286197652159226367738344033691265713022563145166095454741985355576508977803232586868741969809564366397429587007728495795609170990433139309343256846559137015014202599363753035838194255560954188830096786578946226222911436621866796943473606198025998514191096717596685226487286113352480102239872321720293441887886674366033459434137421782039612982769983176107970617875547423503293624845384477415942091399220685393352965160664874200009538189549396816589953978837295884097425016927586422209292481399009536587641431546285586544356098665788784474976448225526479598661131626023337070740652426852597095696085736594403935582299789289187718424549561516712639693582138010452074883111427762303351775923877706006480334945220129087407726567266068837487760643489636622206786332373196387500386099240487800391439178378072574413294498196260363313053630747296148147260757618711348820642927006897803728346621700877221167779612369316038015705453491384297042141784871707516540911047957022511866060291108712453926782450268360211141314420102132569743991458154935150089390565261072783522001681110298298572195315383058931252934669222064926150919262404236092760738775246780644460350835260210809610524732646983124376912471527177626640613471985144255831800462773895729690926758264697167021559923067402512329000664857558870500150694617855500247999350614199973149218810373291761729432101857701488379475688293175983790736925378932928166743189465419824680772540255716210967373133536387439351787890204353646336090600175785242903324545988333938527658148753818163905930191870866715799058899711350001253857672813059823270593992250364973950615242821229103940378126248241879899821226672231478339283155895766614055330144571458918492748548391124329909827843417439883834279751566488405623926076978800448392632855460985091563862942498268287927317839530984595529855865561780461688578981179306452205393094853272434067510438741048515847877523704169099986051741344503479827068846371794865247208290235324807303890028139968539017538601953184731681597086983008696420840682162880326414740687106572141107653584918377417231220026991895717801791649720544065702569770924459271896084286518650779622263231409799768635727348498267158293320386302678869501439667049648545058402815487964257982871167617636210060295495500363393834092277726947572987557225550524979396677907247105212379875164246507953499932180345189159979246164919092778005306592848880607775250228987380951414944442995263478882362255777825415676847561121102651204488452828233984481090472351110415751522860455983870813645826023842497656049958036730325114053442429688762260123022961471838431905553627501678021205294904531875149517713975533171150977235800242113492851459457224552392285858275420808795504258331320004110472996592775050063983544289630637481970689400259684507395158166943103752702621269434616285387300205834556347564596874636984694407458594115084551149334982437781806798354117351715095099641443210524308774038874610079334601829591350256507897705931077645445262880928575006409163323365769464957883118385820207132834835472815174140015337371520620311319300060232848543537403992773578533758853770263305544725041083457364770808755524948518067922076556402042869964003783299555533213296111673351281325524337317981088378246534422446683322282893095672491116992131636760969707540461062319323296018202827961726508485714267142063476649154547817138766505916934389396647831406817337684477894327671091632880825410705056028499912133736277482621406176721213687012306794928449986695391837080890391228433070109707475354445186472841212253096477371902157765058687089371380342307784963407510906914273737000370360789603566377815835274551621997145677436385688166186954756421735144857656841361697556804130646125000882432024449196546751946232078786371051361668513736142307874339473278765216199651246681618220527628675494309915743672579332654495269274971834044672164792008838634938327029886168437279058156681192823192098192661415106611521412407740459535915528793207738251757850814098421768487889682490665172942428995189849696985400197332316002041393830763981974687011450338076984431574102338685871202098218461420520215783951879834899740859250279141942104422737512057474625254184076850033693653842830167675512860708123317347574598479987086606722003908537375888986935009537456001789414785086474642891736437383612254457914538832721326077343873071831361897762653719061619732323184717263127753562058156493750068136758891905291533840328735975369531075329377947515146783843578605789116588257710041863264366128246464673281332612555876297006247338976422986886387065669222839741498869629454241502328120995195147229150765919163355460602119079281519015009311787393458227846439619028192978128993161325314798208885927861361678968209606759104129426301746710987681612135670084216115134984353101992803030175305118291418261749786481264933124331516606640656598777852313129878049944509415529333332184136717853167463387189242031233163279578412252406610220996530436222624384208142325897627072640139416608811688938455975776160254321774973754603836431758556316441288956100161551515254433270073606672184514907443415137918999538625293321940478476604431240601580907218060757709891161657491857090959777594224849524258732858388797279480502832422317341934150015282434709851336215489338566946987724912166716563883485673961512743877569423213890875393910302010708172571186308307667205488648409046722867501369357287121220725377538564479546949454007396118194228286782445754344797437019072613795958042996040962256096169233894607240258012697289550059486274178051440052540626105965546295672729258387127147972793809317327900323082381869301900199867376661560440767897446981605864805969200971665081318859260351411374124002344706827305115661408697711522567554251424894677845217460925671364151421106684740064149719149509552261355177411123582135942020132677635717240113170850764018000717225994344118009461619374143656498581989190537485803016336323954311685716201260019129242681700558275307766921892635979498513456996792009893841034353110700040399608827113828731040286276062803340625551754497013060727887029327218411084224249694657983795117222428127697699163884217764976597882040839806309134048980206826035206943715976063695178910042700709858812165402588924743247622158396475376829695660683309318275822798867449816117133663391652158698430740346149221001367385981658320403673506442293982925718347516170779164133541724989757493462943933821649063270853471402240793090416605844440388014354649444021042667460490363201043414991620144710768386607946130545487244330433889293626210500812718826435180764743221768577076276178537208644672232858754371220788761406728850303816065515145107630355625541621545584935738113588195133434841041058051340283965377870687351255638354590338170279795768778823816332320651073930370280183150817617054511638279014635002777523165558607170529320752446277579893369260316367206449307805102906450135819012069612004984651116227976668662326821285575457225138157139655689675633064894471443747657443007825643915292613098719199452840247223028351497052661392293708879664584947128519052198643174523445663337984438691484956470018707948333952135868388571221554835613502572640644136431213921330368073428055971020255936904692997853645165138177217870930641308380011774753355095756502763519792372780740991995098380406842923311853655828573463145003284927878308127712076782916537506442638201670479380891188433298875418101531029034740841998349569484628365620283585682636347763447748776955350215302821307873546896159000490707489576180377612897930969840801818063163531787035905020501877962030699332101157806992435188352440411383011557643313380328597117977283557278073479154247645925639991030132282000801213491076451917797861411028798967454809115275762588286311426050930363891537399721119905940155102184118948738257438484180390364151196568012128457228253971229099755773330959479137737410185319838373949574788080151798700087655829998966189176905555116006592190850670668289298449921552695714303786582133754357888098287919439139542019984726753492523516081536931453843185828458671412638708545604766690270661533368018641779395138113725688517663522294252835601548664579007776951709099531842865521577316079672876659330582827772642296197372288859446606527053662892527936784481200865760153036953280631694865616385914599805473272063790621083190178899460971629367245616486750751450482804435212144556195288364118314145671115782129323039391602825550279580524993702558719299218698405192502671912597630185664331493080944618927498520468675255999563504832005946205266856649008807861409138078561188256285129530040741262782913603635924583580176949246644843640499100348659522265217972884523825699959080286323249062132380076507276394244549387363518533796437351407193310359589656504602518345400410374455628501937465932753902020967532133649896796292071527898972507053855192550335207353002785532141493295470357594936709946476908892181705757241281688673228927141341041003134126157947275290471588005911921970227127953067614242348074378367903796475922316730377279893325240426044386230482036233028299373173949226683295327672660311256395528176301453008555142494486788422080023233993604417330156428756752812106929905851119880975642505792572149061360515073134858476205604174514776940293384103807281844447761000936913480023907048519089179201182789204852589749247811190260887729870648207161329713685233999552843686549451981920141554392874873662420085249452994789508567478021071581581072945002032815982819514781629681682105587565824283574193821640297683802906369538187068661229759011279248406852835317800027120961693571282516116364292815947664602932145413047817375287289344765372951033787366193677747084949434981207043455430161661103592288294438018608135845331720843374428243753807994670765436748403352562240504011250234852894404137425920784232333383000189060967871004483867122702377047622945104406851864379348356896761369319306707927347337460281892318730745035649306745764907730061115690515476875138246357707887944429913769262537381842622650419767077139922842330256153321977863319588469347372609145883615749488442441551151905969087784718186801639845561377036242078523787187080611590449244000851306253819586913292435376807818630440362868498881371571612627206366471742527531352645016359963814956683665955218587944830961810330632526974094873123161782168779235106252662653255281459888129692905611657282412041445453832083442835013100803947454229333571335300632645993660103822158916689084709200912039265688652439546621668621374457703278907247635678486760034637454371287990197588592498358324142316751925637642422248299892772366503510802913740752719869053935828002090713917071811248529724849766473499615271195452027849063446367753722170337275552636904659940292571224636766372052221632026395788138253228763940018477588361529809488676821870632439587669142883817086883460336869547987178305276544402648750111351934492943553098077829383303417373406443183561807136709233246892560769062301799360171919569869805364974484412404672234442757865460341334505138112145520833965934233118699369508743259025052827579161407509795679186374220764036577065173296273619005664294921719710432429324410261206626402207225057434858999331190073979690199018068992120748859939254485874916092370788947686060676620081391710006585583133756907759914060009536746221415775348756973325279501833998590751601492122466071375403497106838264585165705401214610643091159910861676582194785123843149195814279900675010322250394137361064643919810347947795943313229833937162036318811541728291410813585237772812463988082079913536594284213464474894317563353893665724533001403909361302090148355794724255917907353207017131341980557142494047166320766346886580962588255733325727895210543796050463692590803407866652902673745656299830890055833191904151410980963963508287835244492195420392242471877684901989176917794738539892038294453563486470313435281286320598417007417455125721818398115796844162239129571327930179429450670637729087671817964288821928473063362553208379416869980730343362290720947962432608778379852009637447921699307919331074625119553346647600340431040363026193114225878924700945061773722028179652073838801467063463572651984942730858964007826153960095062737954699062209404068636385789001272622686236852180590401729893060581634432407001588379724386561343153124505989614528701040145674488231497292140292468991452253854919502799787586599704217660853861994981783520041912691866523730807466956614748118661440561204936780506768463038039316355608351280907734425473563082528100409891166553801092037115340554661688103756705877900897684953376074656743751611271900875040459299255422897959305989531592376134798829746327026194011302638110842489485512661856082035272249161231459267129750689916956138485916630897828641183481250249144601018108395660505016173437725145421712809844343331843706824919430982170075089668618074554404974642257272227951919638104839095283639643675328758670119053168941523795326160670703457353213808103586050070256184671687824395808571445508578611621317829211105949487923482497894148697412109795196578568929974326397818958062418435852280169078948001846329580550250102313008091945216607352265057750048720887922713005681104976834719367357693583227805044370887529558634929005157657536116148977264658343579806982210068468862620719512789258731747748050442016484638825916733898063339571390530809828701258633523870746191089070087463562956966232541537123971495556522087398531316992443578742057067465059575778511808375494372089573248958253764869993469805346468415078510780194580379340936153928410440913922335845158154457954741746928200388021168051013143273919734801166011539966325492785175722265591598687677242728291211210138469662317760068194094673515745477972304742358593697560371859496850845176585438125813216972628360442071934874400166884064271149300150076742864497074336577096954929830908227690333097265723872912250604512816976541837843028619226354939743593325814877446974752470664060847100666596807343378001671627647285553762906889885195942116928696622325055810995077039915176890681983158608989144957278992307597302671464543401697348417387527815399066496011604462399647372767229473523961239891802386536915604819735671984846172708873702570531276392509495546599948001385922217435985734519932435181297266597645562995603830159468870763151693436082864917933331702783700709752442520091864127038231444126089465594980989545722242879835849905189783458911190949548619199506425876661322204211421761911079468854948200710190905746283108559485130677726746767082925979889299721503457276908538487607081173244709504565867399381763773899066053741027315211785767127099602769897537113976721133260154595928132216474463206094860810494555290899916258812767312928772938303032094803722341268390758380130676043683314160201191217494876861165489407651201973952597799873652422451935294290128956057684977653684207182371678059629353775007611512536380686192342868138088678703832156773695475340356840228833299723254929629582180440554266435331406892262362327400014824394785482753250199402295129316814664500429603709967713499548780796685558843795335039959645765553145852943995284027873111598790629237969350380575323204547968109143657539862292028382676565736497400141921413267325864270053906315944978576491545218843365181930215483640265746325106536758578705306854692082193793092177222934656955937001345622813725992520722120024271234848912468509268970825721973716663302129129978438790440477099845884080762602083459377662052859498663084530477446340870118930309865547301347489277287032432157403554700627892326690627355277955610791701531164139833750289525480211955825344214213495672376744448755753232064667846966223489130856579869010597306094906572317932165765857349079385005311412287297313080578097115293258559372351990213139488297492710881737114955356038193072723575371308496425464927410653536449112155058669042378191096213680702499145274200271632133710127622351245434123151836843552601184293364058801143409386046092331709185787329284356209867697768066555411595190996462478738831457908264541891488884526061067432658040423944528977229340709562918538422163240773191553413721890299746729913488507453981634136242640508031182090929345816905802751261990384080553559270138145271289910252035451240370029783582305196366845996198032955723186634498081504637283385925091344601579640986182879776534309127269972757424169697760818036592293767864364940330530322967119997919691072760142746870043289151621115336414412334090711945552950767280779234269397660812414110519696606101154676378837797196822330627835824487028091981348174843068293940507672214072770707987019174640721600428345811970421165420025976632854390422899873385509404863582000503411296959372704352759685043185265765609872963435213225374573124753865154691797424450315822264356954165020458727851259082987501859019407855394854170022339642175017300746965162386585449985580316059869566865360794784431308721564668222125666506280073372785914311168842812893659502891355371671790626512407210687511271163637743807762157175404650733897998730262436272379331900819227725937647519167710603532812091811535345698711558929029931447194329849464457160880452473168948772965794644881654741180988251222655224487863280962928809092785567043410244121391039060316553958864847609042935561800031406297145634944372298836463615561090482953259538100266923510544673429957033262129932623735832222429712257680330291269627082621210544517958438318067969728392202308668073868799313193449987518682229614770119212420332907741360786426345112807811865153077834200788433606452152397585011572784703976754101955041965686569719804993337062102825715650517386184368881246368840364806546398748914107282909984389060304287648847692570536789299113705330866606125396573919626090127425085980843199114484403398248434169702472606266579159753862642069143150019583265268128015913556149805240758914712335314892451512021197627237104767406669034083496081465117028174298412766272700353908087245276656511071851881810237928249558399478900995301702973149615562740066986112101178218668527339416764111045014847216897025560058203387204637637855897533762958320494455280416232797719012217524002556624934818359966984895902373351951550840637170052732617689873426868649338350812905905024297320494533944798658468703377211755864443464633577574403356817571566896638449875747837465100640352296917202668111057831395930073912329129693858984601966166658490405599224947460993099502317896819364150956567458925905109831094812387626155464327006438182120530314260578553614256900655588893253201155382738247409897069264387715173417300237103818318820816904539306211926303037628730804588641236118200329663452648735957913942365859049270928949489445920414840337818424147986738585746078343986080520476349427273515123364766843719388540165534969319850879006164555835241234138091778658167263567752204678341208176689135978428291845484708059678925970244659113575643256155232911047596453902877292611873926909400404452534183490300015276991190546201805106516437631781441071331573851585799135441199489344712662815559746950171810899834190388989701124292698950367955417008159896449192901580954227869553712352890267884406851761332020935884066116321389394507665630275468237663385640228821039170055956920883996533188856946500866305288862571308970820496789542211659672171266752259281646798582248450655711942940808167902425864061646518128962370807879537208871503436677104792909954792814061011850357483589997327913319223476526824872239242692597368502037321376600406082716518330244167047244854080609654773428435270385160046021766773906754595875105953499099123431525858663841741671369491639936553956988208300420945043836539678720397908330593577995510275349094276155854968716276122084922964325655876428775856335468591009262973490907661329138594625704668294740347965608013284135029736595550629420888526441345144566375408582745291640711208061109536433988509995292701719451501816415792665320224286352142418232226453629929753706712689134794361270481844507819088006611681925710095183213662484292606668640652225683723697304499787488259886114241104915895122780069865621385907039230174390630193947331832743455244487159025061559417263162473282376235659385451511685795711566637027595321704984121315031485440919032802420578639293843319112333955236753252925281182696379819180683108719524255962189098988820728151988754984449807963629462172427270856675313537859224069655947228110360519181182798215363833851629459234960131400511961296464524407356271693560277777375905396733164288881150313255113119431417550860890844425110824193551690756572869712467298813305668396114797943052320149077438538845786309703467683360060809066362363067434984649617842348909533869508853069057204706141316887534516004193395942676695529458369101196565451015981202537699000858999318284764328365509392183772037086954133829855522574056058170830140860844151477217845065418553494991031425410452768922525903601272922306160788406732196056584508574003001473640868686282001740582430459164217278143657917541559101547645300863457838479838934162414700802500935122894546600003564749649407439241347696251620285379290772673266080939985411314154566431566608111980001698187240421319428828342152903061669061114152892061651348414647273238142273227420779080103524959147089569693947438185069530699243760751940063602895650311536166629199134411104175710677849945972374041413333137720838025707544188686776701402988269683992124730279784280177188885709887566997513033251156426335607717166940021445852807017165057707571438505018928719426224051072127720058354595017035039872615167591500537350126692599640441628711775897734180044199704585392902973654934169326447809234019619959531131042375738353935791159804964064489529366251155717685970529749661314365772724733946976607516178947437126486492962202951874556053991412340229970182696127056637062406135067958845864018303834415734647452554499721683760632169654843184523816945542384995722424496804108082063874097754286031618088387260049880869274267968136070502002343976358257169788444992209895217652572843934228751046845696525196698700173016974745990686526068728705106415879675457074715982819795465445099251762797060560364870950900415095691432265361616726182056134238664363297498539203949223210624974776389174806721585200588145377758019413642276121005483641351419858550878314411125944685616423051816152312422398773965697798381146948711079227900517108479047798788047003869849702337193475304805192648304230402897003934462365059308473055829357263829617562427730754843397134501256166842922968496428863545714689733830620927400378422550821971928354534895485428391153866212421587750662201282740170946894101868013362881148969805511428535776840350824594931149862309517532237407992420932132539027718968839967905566975241600676059764221113667206891470938616751070605442657492525693197700224324627965352694666605976034687165797103567599650148760251252287413231720929115777549560157666646266250908421315747017177220110052176949000281055682574316736692382359327521687750818299000228069999341839075064154566077894372865267166776616641373678317636652025511256966722180156380666498366803986614167988371658845363039472156559379736007521233416174001058603602442315409754258403203530481244225766267141497221410608169161895466492965712811144247377615532136122838018087070729146689677670487364075426163245734582830633274026546667004904056944148573461709473143737887719482849904553709576154052917281948665706949697294572509715305711860279382173159757525276242021094640739938694953549404058512857679682044659481995164669827975908609348456666628573207134510063567794971357740792832110393174632364394923172975321110449044898271403292440140525464845629646470205773387417221797718669054419850593437077378873650496043797638604630974959536487799523387219092186399935563250592544932376169557615476333445095753817651300766223558303171911295580603107742455790707000839817116576055403432212082380024299331350851350602688045981636938184353872260868228879305678788243504405809700897000888360694406914937833114384678799651278956549456845314203230500325857646918427081420364417663685413383959444934189090517029173212318795907129051021889761952952049950399128185829516387538419701701605893739256177553815579404791747868377992225058269391893391660417996623295978755390952257711927510985059353394620971271953451500849184222636217248111737746500879393920124593115697790199679733388916313808036637469930069655759523388978016210472499152162281698422987407915378213451890761371610893059564640479210836252711189474902532433017572534989721757155729603689754542245087805373239773278867731431906433464716771676544973944620441539621613258284111201087396171008608910696501825604609448200701022157569009545322325668879669112235969161923985196701491234111751413650571776550002194342488532748375950169780825016765375469159400012575212399133839881193644474780111774039145505693833863669353523427574655546961590733225995638392800426888063054591747973283721456124693523639187081833678217597412640802687769164053066961218562950834911616667067235673507121464947720685598178168147249623497744356404658584489117344065053334833892236034536023186828948714059923137092319605493805429914911553463028911886385849914667816461699368496694459082103797408844039230431696000152216018342238931553514504303636033061060807514787456506627543728997269677612838505375795785253126557289817147080651520600520217874677226364659805816422344216288720393121428680627463941481047779523102595819966256172540789154544453613271315609499329550138900653391751731340484973837118637588683499198697195651180490130038848071325797881283927235974672314567684142827963354920782767370374654649326255339763588340018786791442441089290918546763486935604780404106411516005400777496389466840352889928491587679610417395061798707042703467558212350462683616527867796658098483192836317194625574568305797815022861239363667538769750513040417500083825689161127658623439290227785229482981574594736490944287691514812600868424338146799702457587648006298119908253136421054322006686640261248835792779407855946904853583606054580463634638866093092868188904208436979662820200544086814253373238465460483190844009339913862935935275602419676461737733028406525921173097871499590338836346476931984829178015489142138417521733288498830395739088746279205466390907547156681422266373829498505963433941844490909335666868052704415668902500837796014719091584538862891770864344870460572132779168395999404458714255302660762520110564354985990883383039132134123906866351095440806376371749458286703445850435788136860102430013585591449101433699926732634424836024117436229629001578344018088887770011765769121448029727292531691649641772958504839391149638294119977028986021776247134463910040051004472788307532634479833015441755157358303908112760982655172073505443299118920306446965931381398100219367272918805598049641944289780841119823415834201058458121476849487938361612345476527567246523232931571718349990390991954760493063914906943640938447506696087510663645500474345654818635151681201589679752557740296008173164384877769142449847231250942483039478506822542178634468671117282445704290047818988490645354348477772919967626781564361039574811756691237387930669044518668349542947426554050708908688225243142252929148227383135838322183970440135918221958914989001479067462396348197517710892372014526959056808943685284330129545736428855925764133368576757771372399557937282297349119686952147398599177446380967989906848651641344040195476171316466957325426841591990876891638040193502389412271088539272459808722345993760993692256408120271564198806918052966051764140968325792231618342665598727268795276582747401716870780769443238267988260100142484208549426331800807057662011169149405559326360429427600068674633443549396253631543269749018232835075002076799372527884423463476400764484470288353219305553521258081369364857247074188250444452725782854805287553208321609254655675587876073031974107351783744573193198519451816779734876417050263585690579034357829647487687298191613586880950017278878016379054201795064585343499524035967392733045786334751264221868316638245274229120235707029659262274672965383155347078046519459393953174926195918084301912385517455087595001018245941269274826088447318932410276167181934262252583810754754323815259692994584019037702256617918980978070447042584982185286951618561207192158518180147766928327869602487920470910649144775441326486460176826983064935024407759837327564040965000904821083789204033390497099143254101985091871557452959337567068092692521744244856138503528524509887312463791532535359896852423164876299863604611869414291210292682337015563270745060061886025215399589136707263361062661067462495755570009209970648618911471898486109887013136856540188028522494664578138194448173878805978556023042055483392562137092319120140762157815357164969556131691697028200545927304567277559949514832395496938781054977132934596720347339943446299597338233808589078991481363176837072292663812389158498523292231486949869094537986152753547056620743670167039263044301685990323438981796972202729970813023086929005606016423740285655087079697146592119681278717785596545230311407591040520233066473847148069248569356108110075154988060587315341241401736287208760350985897075840040971165958011946040509233102198156763645333251873436977798659999388191319282445747416919880407994168722701570156738802572064269543553750072362225057166287879212291653537663550752924837563506369255019690931570937004124137638298475445751235462626562029109744266948193594718993309201021868405774535026776622092123100642513114499029564587827895302457326858850196354933358565953141109126638686029154728516976079545404798113189308904832586829958373339304023198272748066451697268353671144898007173234260405184243535285255532244577275558839152601771440645796113334114358147814976134389093561469749599754317249706176524228092810229490580038009225066133880586015092224350673334382754076085870004738982615804053087537445800531875328394722886087600590109140305840731673343534907953928748673701140712638313375392498185678248380783919882157081560212243013676785485912113230424003684658916509696780616910967322466816254908995097498990371039689134173185844332639701840790438676330565428077330556737366690399413290358940854126794847500159881682244675406231837032550883265138620242956835268488396734694638436996075929689775225713960529059378158249041658236862202262528765166624682457529413295637108775532438193809952016673508069425478491374618336360146256531198441641967860204309116135347255978968532345113685168830965564051927547618386574247064983041851028336065165247164125339397110321726987753354069071166893852843625478258512645595949450772513552568844003398538721867191591357247712153925468981716258238259082849485708716526785339111864197944292008590639864207989818781089524657492865216205767980712281148961116861308655005857213347140757776730196240605487932473957552558226196388112999650994533191427543444951805884525072226800063136465781530835254145073061238969032057060201102579352608018390067794229559376172212581735627937927782876923681589143206530217461555244435229390274476970648207573916446461825475012066951039739085944327223614134296071022581740012230505173579714053830195110186261346620595054857369552188433816369550622816040720062193348612896555748423937833938605839536682984701202070494734945488872276917757818183574722045034930778329204098230602380906258815874781780052783256430685443388470669806956358845425018837700464016814972601156744088706004952876276421272680973995956992525131471775389798067646211508825180886671214599170734513684079003068353373070907036580500405057901353401774707755487450215571937605940981507025552730126017969089799598922667056059517413714511926126634658885497629198590580519810973987320484743813095467784568643964773923866053327501437598736877827833010192306813859579229214012793856156041584671640248849949609520426630464416328979297809957399654622160306271269709551973654702670005388026728090660200416540614348605953289582898821675507721743843247575978661513188782673498553895250877584992256151445470237302434597520227919055676494150205250279861373506918405549702371598046771908272152232736290713663558903524315382104449171660828029457534860902466739275660701007617247905339351157180247433747368138093192793465194982081609200018669681010551881701867726985963355352299459691380099994332989408353160243474988638610773746328751871606218345708327810076391291153531917213165027325631624463379863815296199326646724016574983400851741397770326195932143979233320328779376329588487902935908023890629087839349102196002608384325131851386117354293391404255325231327343377455311342761586215074213083320404346926699390842118482287685115361992287971234233552305305085919805097066158062594271121972189527110694660922405917686125868376536372006762566468379953621475292294717251448599163412539195272664843296590791188132239459830350799764104723956149055448232115688406185782578244040281573018186164110181862097420737029711954393576419039844767921567125993858765075668672285908818108737845791815613165272453839426554970883915517499236336849320967108951450333611407689788367112020188546221195379574011440305370196859343681640375334066642499630917034886105916081470025798567860999009067366582949605486519035134475988254162424628782015333123519596436925229330235909269546909790706942776813819856981321734039440177927708909378498875060603991279363471744161491337829779978143877863786589247356010653495352902231089281817514754803530517794512132489934583182971787488826466893629048017547721652002401918358263183957803350667278763116329499927953288850724395560705608440137816892367379698419371189060050554215181480381434299209079055442658290527143085218463092123357372658697131694877257355616190991152805458180483031286120521512637907111218868893191340588304859102335047141868184502114206444938277695631511992022977088872704350805607551841065154129760354515681190373739503667385593554818790859851570078964673805474323760964696881113724022126058453771116497028169043087871331491819926681406737041884137892571364974876205326517046397146249032750906176387703663836710912292128932822419655567458895920845942303124497976356446899891165498048020266422880141127302776875269383180086316732212361746069575607684512635547789587027694871741577815972417166310080257440472195097271455830461645242249586253023817238471902653233401406956480720693145220113079372262274500002733678479920089051670940487998980453306727308882400067800517013618045566078355862434321463887231134475055180104358097006340448583899835943180114769137859663293742637857643195166086088137056070343300330539282434058259123337434590916142244182015611420563651542158666362650624649183437189632103251020008691024500339173451730600021066475890752881260082863169739823777174349262315057481646406743342203763485968558373415248087116504223807039264937071329822777385452060707956641022449490599733566110233372791063038587504900778554000147051699211911235019091534073188739089247574469283719659326138134923123337123361977619757462275632327606225643077900829538857582867841530174126898330238904367598935863890934455671926178782062613733095296726953115051380176321941111302223980640081733451122646939521501574876744774053693137421977413731971307377871338944857345475027712442206361134370003274602158135065061519516801496593154363964140974242466439063332138171221034409134773851023533943741746128144467567818124970093433243703345823032234984384094534044351968321486831835009282923989823637792498085160127659817592859170143539489972364577877116931096309985022327840375912788124143404732618881690853374090427232511215019937019632749543349717003854658873122761207237289111464030033774063234156351162081580727477167636166293254342248227308160905347125174609450531691819048321010973549447139004440085804009591380753848705132129408256695634021193264839208101409084437021632999237331294416660940083013949667750903956226468097613226800489708202465596524258295315959669583286220173454389441515579710969188130376080723819343562428044288649465898170029611761729925819113370702022895911925004634200036955368929381558711830204663006444202554333768105375199705405523895934506518836939477602833368133057083557969323254856960106000723755573292378379358734605682073861643924089428038341073235369500557072481402152964232699946375832782039274335682460018726388773970687396333940503112524531142953001416030515682832026197582516583063623497387267548802235450654716612578253854411113341334947834204698028077467361411427187900084883682197517679320293385584777111410598111791898799088000146700191573837705736236098760497731444752323532171344683722564377454658643666822387456746788623800865024096268666221806855820681247890427102343621499630553094704891370199108545374015119966091439813466861968354910732547613827200627423395173386320219162380289380219828374268670323918559590316660125018473830324266626059130662802032919080005111593946892203760108859024050823896958364424079809921967265060459520867062819087800126961513989383929343298860306276214235165941090678019306341812159426043030638433878601593467313122068169978112733727469246483960066433067665404043046219443795222017505544597655495368380526454070391335796810746416684167203846151662862094524244615480880633272969111306716922117784575697578933348252933068679018633193933638033129055904757015496763503153805500157390929760039945110347445347660748156900608405165274094376563115153076688721806664153112514734320986870703117764632114548225963112783588456225328824238353475590483254113300179957669938780610815051415631955845062838002981174098613308901145355506232352983851313622759427849641006157004745289326036745428268478834463907793550096349584394834565226554785543969642620445309067203692823080597762178109684125965050193108582406920655673739434548078228177928451772208772461656043292894543936829659353985002440801395750060017723163548950185484982239597103028735580931143406848388238876889574786742580678591888809164536159273399470064390096285815077543837088818401554895314730958050957437450973933231074372913379611570373974593268547280936707985298084369757929237998105211703137805886736849234648393961237348163375146230923250717690779545525347517997812527044978129065683570632400906491582166604666988582958983994179063709866350374472600443071428179000081282506395101521399149921361288295321551270885067086441493901442534062592392810412577299302704782301514295611844711278158160958980988291786849181645758791044162784500227402793496194571228130183270580678325388268525038596483838192488000171245388605881586962563662896929993092289713764794472337024017050243032395015173513408246951086119118968286635480613658831673729567271263924367975654775802537901909069878489551855100703527323531043368915123027225751577699800239670649205247103696770275250642374454567680482363513702976003425244035724348816043178644258939210755238500997759187665071660478393377840393304294175344784866019410814799040643621987810800343140416077245270448859280678592731500622480810988120473877497844662512334006442311122872340098814178545459174317475528337282843078411813360776594250499621159818266699314678801704246574817989586397690918390535428068709436695851595421801567606721090174977564542490550599552309773193325139747386502910870690086710864981998819836648526765816709295455720922024540439712342642078893124061515388318547208006432624493631983473989144909631134888594123828045384659221085826004669693250886542431749833077602888334367918825076582217361656626243137695458453152027952803094505879921207670390033473858882221330863194590836685669182310537592293344056851347511638379089651148662970037038273806527452632767018584998490084173208581249351605598263007064805066502600264277736073779762813993057837875326032522450310936705286148422834610599633998143935704446152440553563621941388193044856454614267088733492276244463237514672701706145177481895558512811230366167713831915582331215654997482459082573449344668353627291476076731575926140328273501640519969443573860098540121563544278739582158689988860138166832503403777329985974956998254830766651173949194220642877997318986326785821349317803824768311673700020199112320765592497580820716129069098339098445918484499871392127851263175530949513452520495872969177265223501301762712022794203434473071754844293680210744936125708974560672088985495021049012774587875166841151432032793796962359406823848828462039794802669940590570173404232532098327759090306485679580956058586487606793262592041618950603785926896720625885684753768368159034877221751818804968714149412416285495978452722803806488413178126707857754264861532447663659008978077972554419115158131145311875261528100468372946605089525168720460371878177951521493315709081521814388838229694803851081596016548904458934313281925153742931996314878465962927425148829204426259587261133359339070753194163175314343305515805174519057527396345556631526273226270826793577275503794796912466373947954350836589555925255068505637801261674298201125939439170928586742385501278113250272141057792686844405753511652154246609359490784965207512958701269100019858312788362298986985020073082275801906489580471390978599751102358659267695698485585870289156406767311361805665112442262497648163087973938964416391988572503977914770542098123605280704191246418199058581508145780975173053726699804850755261128456200917262076381583880178025508208529675893324681180231265257151173587930658481015810028216652070466153090341154569455104680469978554640557548687039011196903822325790875972237263789186813049690171807191008772273626181194581575465288251146874767493889211633262414598313865462180135111088071813878906485333440629489824734510271228205581181398531709577444147353809267616892792944359850999823447628856623831463267673983683919761498801208369848492756614340802848857911015465848791101694849309793390309756755060431301283181971351916689925919207626471951942446084602655693297909922369445702125106455525261670638313141173191832417928938885029193404497574778711814934851551145338610466088753698591963767302106382195073685238349881747915970857727899352504270001653985688165852506274171177896454108671247245455575810888757455744424678694681890684085685244053876698545739310401287174824580946598069120200518126339824853164249876443237431238723772944410341405104749845451215182223063146216948717939512248077869652835189732624527611116835216068822921157380401422974770282475296021265504585941269404174999705008795335292609664761234416845003743752000792622450670940238071335398596998318061253766067392129328152279656507181258147014867853583865969523589924028939551174287575047762190746760023988882680612527391340864313348417963837612797218382936989502898920686551176111157863679237352272236551016566759959124357698030400227492347954088619078873041482416560343716701380169173000566485625836914668137140012471077153639626640720069759948253821213082661066912331342965928336627871287999131981891302898150904675652738220292043538031592190466380804153057271913855071078064156889005108337827287465945209045805705977544465452571731063449566677800311272555457376961412913377443709684076356955348588319753271082470017049022993583025597138697128977917463631174811447070217351014932967201213391711362317353158195955472787223830611973156054886443235203066775567216310577882194408423942719717180718150492639679775981549493348231087808272255771849910588209676359100556176776751686717637624115572798649937328209610751938488393849331527325058482827231857584765953941664973865329122218472383578404117647805232769615641654995923342005624885004795057414592464515614975172215822744479497545846326005546223371353332449626958571530292848665348712012764998031195064928322513479026422005822098676857079517120812869226671860221776308386781516217706366062085778731939415056631881490167198816155017352448692398012658192501032865671415102117427971995258426562384903234987888237105569074392726372236858434931450158187377134583133523440719710626902690250751601091444591533350802727908039324424664594446440921766207654467273704600387738954399474419450039185382605217341958654963077458247624002072303926791245728865879039823013032898531597376360998366098034099827078542586439804405714538329923499361491901966857936753058610641957040549580143005095188975332050903772577329605431561521870976528783929626804136540660109349456377093548091876564597005938254010920815675695242068365928724694091586315644627206844093047862399314011137960139331789030147590106266205629976822632069108381342059635614640844383120592315261509134072786973173937400797982665159914451791625466244224804971325584533116677533926074976751691654118647683228569640095642994900301011194941775374037801711136193189612512306256805744675108799250255734737648611905877994495647914513502419760005165116733087005742154083145081399818521044143969539505176730723476590699539321118965027637925982980011851140872462115466986620084041298305537869701087642889606654084308927919781366376026561599759782780761040659832734989767543004068581216539754196342212905711847593673112706638532029195799662121363273979567739357185991042906030209658996369505160659365608849588678014024260801792474821353388499720444771084598583456612156389716887347851236813008544727164763586942838264195398794925536712701884843650350139252649239678220993507827742240471867588170987062495655596490325718775844619668312094086768756854377887110648003055510925060926020556451550838496886427950231580119825258611443907842901644481694388929510341823916004700256449276588955978468793238007704753608849286563146408858013731055057466289810033501172456235987882419956033035485866159099139843224319115499547210374485314003566033257014785636986306879067058723546150559074931349344844245959789014278795932109955632535037372361790429953328429085589164884245576862696504759746909031321462308584491665750007415077088358896862227273977380232851952571052237198557804120099931085950383530467057662001144960011897750780377651810721729506448132691941506296984338263477404214103672418725137676278884132629142359868545497558976704347183262647690907824330197541427280977958219536229695328876010901122725055358790572899445770881041007390742015610710508909844616489108602880055387415299523129571631424457703536531441252453842068978460117884375400252170453659982533331663967043742107646798464015756775158683929482519022232950610578814610053880828373134377753446394812364585575000929550295240678627598343263193086128310684474330668275702641454293964388230427881969930922311074831562896732718616868138641947614758198587717369089393591607364856460707327612989161755115657988888644974104548457619881422915555988800332528619108070729110954100465701429259715948676623054771433494930028361974446459450696578229860585279991108875954356294694643661519003101113241609192727147791317860274951299794628234714118798671889426690710104426712066213076367778361092562668159298517133053378251396856622523195529154711474322488085965503852238071496591238770171341484006579011085448581481289486816636040958487887547686721598783008313453792852981587399317609188873177502289203312710955398200695271365706670329466756230175937381856133544772423239721019753713869805712852976162020979024431013558840220459256162504055698495941921122811771753958371922399483213917995139088050471764004491712711874468290259851224355300632046985363288732977241468376729210869399885811181780763102941182347812676307303392742165561427109846061098939208477156718147496427348962117366355853014457708516686152079839110383746719076868095103842065212211956495237974720819761553981460575280568749603236627088153455829306438692081268461766725754930918565997064133332959483499191936576929413616724351660198685026639545873725928576348767857398907769342679720280828681283054219903536076596778184327940692966230573645380967780649262495400058347581046413981526574731553003771865270896631056925853548773767067248356041026603560339198514055599412390195735516416736838651976868326608110797074331332738132469992959807283996995635116031761484992199463639854461218028831281432617381879446476155619754636887322470556741937494627107723595061898749193282411291291642580339154201022352893521888544850032492461213345835677587516946949712989088911456361070102080227332444765234869070103080192396571758205248233853756965187339923812814914514930415245229775579231434547775872535852578388040644305288910583107733636836338366337057332237810042763870029276034812585327868489577725768972948769581694659953943845906459249130369353857985890188044368370849943876907482683408484102914534883172479257281978346015861414088211052764969746137471527145200914243540635551018843671732702383416806171480595404168579651532095687636276138078429362952643400900523603188344707345823188664463535571698328872296039431264292514438225598704655363435982808415197447656278886299876926456285874783849905935899382819319215052572685380006457979709084486364131410723457432553137847381985327502490745582551934258716955942331922521650356527518679360117409112126596126593040114376238749038338367493835072139882536563429873101932787437972999061190983336840467608138844214474899672998167983943494780429554770796645218142359010905073862391132795503029679708515133712331392746486887572571919185789347436673921593285860711172665186506175038641123793432443870950185481542707385076772243885119013043362022315046764353616478644558393834747979521686461007241383854235973306491967045786663464690461812656982496983262608946764561545121350464268109543500458376601514149599535256784192568099635707596316876524551915336697805241522212066270971832521149266043016272727632886714244861112326508437853765593021109871034079078721350203251003502142973354682477531697378423814536275224400431002218507445940447847330194329930199386272516158140716896342057760062969344965736221653894552066674141809461149807720963672401770864320350358266401078268505963143127757987442115049023182897984844542225381775295897397813929240129163517759828456794033826327347783965301882579009620229150136805422298833175290291269118839675912741103169879950845752781157248090723384376998631009472645843053685866089034064704462337490993533643850923381871670456756790407454293684736964608376290809941463536108769948812066499346035391479404528262376973569406555184465166248071122398872017157000026632297762918374161444654627585448876917052665201510287166529932053671304217331385527252462901491947341170150149828712326510297862034187595005831264038198912958886544226559828718318711459206643171543495176357977657751032057410733500009621410388081501646695425234428569355875168115495302708850065013172325890872745209857631337059866634250957848372316147454537587902971663163252408056601152016633561816698403216843614525608798663798664316767149120713979879304708219885145205893217636624661262993767595657331673394111121547641715423421173786571739744143868260219373313445658863363706899317198519516194684390931053410547526850838713667646935940400488974640484826897814133398479491032698780897210604549496625786057863595865458446609032822780295745375997893597165715381842410422031007333056583911430092525797155008332652548882375165632047373128826982478698534499519989999363259271146730483405185497544411946717570973747112551902308576648022719755318514923309929697783864858338911348158774611751320235097681474538584329764176460044128659633094512912964019625679887353114472028344512204154633576991858878696306796923795147754782041141324150403722891520206444476865614997367767899772230568454603539183072641903559695654732978265669188897572758016897637402900937260754044817864173586624019626430078627881321706323211565436772435511313903249563168219574315097680100004382973339107450801946587698893355012476632865160617898116316916719011350343683167783122101651460502770117244548703462154436549581596028017427999996897116339251871214853130201371517462371051057681504847763646013393494056308444032587074326641197935817958575679602004010026463706180099556084196285201380383536796654608513384135336721528835449649873783244902390598345061628951587831268104423017360472949753846669680891673625346229308438614249109337179791217237759034613065961400099490576542462791822761934870390540826664170238359762313048144518861664807062786880561128943996735150976008903825023911078420868063730079334695325657246535804987469382567578346228015642881012301020987512705759971601549474005825482688243199025689522202848488814378416446211383268524321057358783748710558627272478800296269561076764034682416060433252253164744095886502759040238916627371774480570361066000572723149960519789909732941853265704503613876325776171039006665329915303516801302404235004679905287416631498666304308878816088640137774732304942273058091914365391174597896990585386101287742451845108970970401473846401107780570971440424894155613987959634261321456543850741451472029974890540758617150261315987011135012710489755956428414719888081276437776750760710874843921822289354017173808467967725328442930460435978482891285923353930915129714124888921953797222267152810678858647534115072063804436205216647257527632507700641836342753635719301072664859879325532516929051002990934253185436552508249221023360117074574156075600876992340960871117614338258026087902757301538416938315959435447781719816439176755273705021804824708558416970820887049969419471625020598814607953309130315440863322157321839794441192711470860417005599044478180394325294129714953071161273154907108625385496226426284996069986732122395198980712924451640034683766395749785535076761953874529685756202716929810183057736677500735410585496366886646144448507481761888459140744388306699724397802639916558814388209701561220645718456496255091950836948267699727450126053197150501485783616807074986529093036160250733949896528007220483923984970162966059286888329255616787024328802391942912845132225053166048986541309130432794363498368667687184215025060455590155344461867967646771190576974808515768511846746730725116193748965436474802135426153403428792032343780171494534875775901963576028475419810041198123788850369971098096541540698304809476483801942966136828486958674531798230008200429766396351221640541154416936564199104113787303843401108345425229758305145896805448518167846934542423510581909851124829546085969372894478667151793132082382003515101367983943140952549555974325871107116706395848582413993594728667358044760577728624477425147568466736460599126723257533332463748111341518574560364217111856826915458279244720381267026481521901876319308181677062718337600745885385338068579583136219589737329274226521489673925406970780832512938624803653283867151534925862515573263706295310250634646121418835263874523026170080636292462575897406735280500742578560254319958167183610387059810215068037247478235597768279607951118033735214010087769025864549539310260043997400089383563825391279558753583708001328686542676284486484473714226933217435159899257766770325574983362988339843630000157360562985896556047107546910605429010030835589651512508345523506000025586296807361988472834834101122703698753164517823941611281645557812204348701112495803104133069976947209768423915520311522887281192458124196431064040813123594454337080339621583335337667361763881677863133912714389256015122969160463900277462259467681613441959619352295601855963539725834920268921079983709494535257563907827407885598766491703571167326179883200480277609525493918656626436220395056072533528045752566043690183393923694795000561370158920194142611110133042678987990463233372255055370919486036209483882328630770021626906392602684966962361234171569047270868740276244629207756263932150220116968999594985953035154770780141233082461076712153944888770448416108457963036670761063814785370377614870334095110936104208794452680451435508476180851382145140628310955844582203929513518248667741698807540463414878969551874448795578513241287888052321615712721496427892038689946021244631505160701018025670124934756410884172594693559116283955444870456794461491590045241655683568053063729455240186458358567750795014911025009022047020391317093827883101631993838803834431517915196851752326605291693501500845970818732018963996781798474543570427209729822386263759819231324147751018250361818159668431491867575543133982196038544946703165309842439986144515798191116657276620880229832031487039881586058203784971758750644705321049652702687882641785034546880437231747538305054346539918842004040340413861259777572129889454665776412482668944202180281037257651064871888342583247141228371338055563202547291569246550543119849348368677545168015071390320544907086470884300988746020805660637192429396338460671692152275178374809658892426619667378152578625448950582147570041044429380018453995368292390706662870030441063933778033026615578951690888717239424388680147288854229253904018988759919228798332368277685960814319607152525998415219448667993700488068740333140451311545486566297520017828141714756555586823754418928408185262260452032985001482763333189263195694591040975355698099562194867284174199067658738758387244800185671282127614768474845307592870047997891023122283964371946177078646889827847696165505130825014675960211386123174043677823277967634815829828555224908874111985135683612328656762058922463956857797239933942349737060114184976337494922653018475406271231292137204656131132179577089713025596160492803400877198722829346771619982119255153747609172896573286771400692322488291807686873173815732768421385632044543366247210095593724916527606607755801252094708521859804565914381242456976682898107912717168540323826249125634580212786243341866786937536754699912960620537718391520148597732841404428568335918544528576631347853568089503910635377910018756978761048393540011259171386780569388326081381269719017096111660657401135880257779913730265786309240618913411267061832755449996325051747003267779121240015153116275228602240079810593867336985817083443995997795190331517769448324005813146349594960048977051831901452759109258359267143732545907333017013195888021812532402269653720584123706292583029301983780537185131322371937568026671237396210359492395111575553945150441830482079580768773485184769542868849991152856575829257679145872900142716903963769147611795950501391296488583530756384945836923884450799301202918413214328042558387645836884116126259859798072684488878001488510030924716380091783446962700348726175909928225169855910692967021258865420560235836552616470846843798478321618004469498126249119912972137085649185585660959830764743566571671402893781744179364227162379065460898643844315620341990169165170179043599702668831834660984930254692134570993782800880474461754785573828451268775604879883184325105509010884946310148009845879853847169985074853797914972907718161670385602852297670593779225552088399512827122083856997624543463666584817045059729032134963081018538872711597609824059814921608593282183652405709077219920129216030399676820947952731004082717737255725071894945088811175130459544053424338714348234734257802675623212596927106625392662857480188814159380251032430957176035226439214440665299452792930590325914961607396799539517774861917737379672536001703687224306694794216956742128326013644517042134729066426960681795268144527487740276360629704366232221102978175879223642412332240593338219336104522714729528952430175709625193263377973949822389914525248135639505833821101870291362097472200286179132136754887144072928343148342815395305138987310134895865735208189588932455238273459279798181729233629701348380904445408442820529933851580116817480514157495415719826037884823261319160907407231688336634850755909278048589600726435288610158022849438847653931274199539878524332969371974470242591750746328192030865204723914421650360608064634780099484021498539414473511293915938597687480440980693701722539775105518188437396221718340354336553599151650856957993285726198920364751629461346394759290304792095069606189758890557166407156264699698540298453955611535353120140584143961005905802555357444014064707105642018760942190408202897997652604791461427727929482799035876099826851846380183785624821129944323432159484230025133102669999540617224460129628224567027044273789295280861385645843067153322114864763140917216931686635151905935485228279702552196167379782987510389281986989216208012277115337162672594499245989052599461930475522213331596892863413786135782506466275916198939611765856409476018132907412696757027419917205993414620071788901933924992692521279517108805189486369277671304141366218996200857167947669787025928551593389997736435528793160950849618284742372209917068684576068954997491089272484434316183808506257733169589672675868508289791372708458005683331631504864631980559862561131337750746059016134191075122585255029709145383668210943152288076897087094068678981296922865856657827672964138742370901832108676525998579758275481327473437699826392234812075572328775004934711870339812277898320664325777786581624297568517401135074956328267830853992362023080489007966489121680156531085096909457140171052075975609626398339031393573547161577047057587662226011760262128045421229003334364567672534100375739986170909323413803705073422861847184937921879001765398751142826938853397691684272388377579636260024999333315252233028664381772673399812740573391451992801818266540978062666215747669710875910765862067537530664634501121211707172898326885726620972715840666902986461068775261016242218228362188067080318516397510071952079184509261375292318738194399470916586084479553993863819934236090113630973061197102480214353980805700009827293817349372221867779204436210444161853557650777841255201549741833349156037584908234642043591071442792716826728626288924575152568377358371325874987625659696306627254836824393392246790882668690205469359094701108229858033223835726802470776544164641326014243517563309330186904949801029274194909617225067347634875847624769791214097784939690062806329448415252981268570333346370942779229489024722087086715164003738238772269462575697946330098186048266845738090261933524990941006553129972924150529599442688095395749822716187055158317029277771683949463463490294549042734493014018070369902171628331253718430448243293353435760726881295259762196439292160583548212144806001701021367433151433951919183217574624975968273466299231829316571075222089208928165049503059468237279516146906342334340798853324233409010287622668319281132263743590651027936321952780626805466522188750542645860157480851552891515898829277678456649013619209044393731864018910179119261027901937368039092172182801688543009708713679201209885475226044173938579638155567497699896622889830719059594725619659778064479524579518840074714095509158962729842568426899007110999881964943401229918438658359038424184747729732070147050618569068842554626110019608713443511679798873506081237484337398365742532424599256899160008139833122581455370727295495230451478059534138269796501915563340927591764476367949803099248936782117904604058749434358601921425850733865671641275228245325813317757143289080005287075303762426484102099024288174165554302824658811002891821168654651611485299485626901694221797110888299051379985757847633452647632465700833370412876871265876226714824099171877015223761250456296764665658311489517872686495838211631666515944683491199526004167070518655942556029882345418849969857184266533043814258943264253136441193447636031352276279536469704147065436630766381096695421079111363574994679609923581821562566870673234069836365347715091202713398363690399938135023726056083410229902055745393063192386971669110513138278095549252900703835744253320555068496722952477393378579310687692689444250938706033938001422250831053798894367837347620120115788321759378288114349717114309665311761596742279116082453308777045341671001266485219827791887821899260982696687309542253903191810821104378989685986037760759686669847658787703994020744730920134930942348957781665699061047909248204766373931819729969237703319628151546612054477616173052942853787503654530215026632544826017708400926422145766933328802473976726249597405702426315148583762683302205084321156861397806588961058883222750125648816052099177399119581423785935636563041139133892090525537634726963642676828927590891695011317308041359093345074943401548415749876253958382048547101656700915218042299561306275212959149079385862561479545001759253741027921821204295997393192808706025860376939185911272639749915377628207256608086503467721582636682796037311988793468285902045184232381253304974332771447521820412065950455707879350794252736591866116421952066312441414820617522794064063394942235460386995502316119318680797477475814435038784393296350423932383466391728387130511698190312523357701914099197829150893236837556802402571566833289047237243043660674795400577634711791152927247295497044180377924654916156558381721649989202187719786549615052252374760162025820645934464180496655148888903088567546986488985838785787254009018257931412776939063515155763470141448051986199914385560369471398311468432156127706694516842428480743651750546891390147937850560684713348246443416660446090361874311948041340943471855349995080346668108167943075933015862397257286084983870565926388250676166155605124937215977724061576183780910653520633029607610906943711808964538301275606814543696171801352889206937618853594988655832588892813136085859492934232767483231343239767107280353610600613077234121838199110786822199264982273404078298280123661634589725715285674718856135703776073775746065666707086826398133510512555983857670243956794511310387922400313242465426103729989984239377416940039843431893677489056084232424047788611207571058800248906012798729720129092777998828569403194407323481023260669870312933046140912034435358508682261520257659216313855857591727133794842831496512942158019151632228733089760201584378498065794470606773022244268990762795422752137949706527943044828900556006232999894619035043505096857030418050240280375701034834255340844111055899953282800321979723842000766969678216147303763990457093467754301927581022374940528652775216361681279216236391132991366436757724181109321720886498718145079612910587445767020672932223469316631604933554207393514046829482557209094886828501277895795793047209118307686770711391336732896878496814105442009240141340999549061447171823359388118118532360650737826354081368380854290988001306541727659649098304197000226813621195285254827221261435268911524745211642243817781153809996656333399278128077979402221331498716384567023239090853294949804350054533941792397406145055024856072483175158579075691959443664064549989900409639185272981662345978265231473529226284991371475048903471868171522938259025919040479333414577661671066273674861596175146006730781699183805739554709868316901115925676258128715594730918355297843782476724334926669476923199863616592712984955450664925119733116814638035059055399975019017576516663471976024407375420542559007483453795008406168305284430975191565116452132303358936088635551219719245384205814797394163200386580710964223513359241812578275381487884486542960258544429928736712090998376328792329053474970257397380012020352716042431370597852921995241858856725749953340296231465395355138894098584536371213283907738215092311567284969671792734419985656358977160122025411487106766227337190818699455739526456275367700179709246409557861474765907163101134924733362852996951811753873915572815273090593321076270252088084027690100975219010911482440297578540486081944083822043188495334140758822673333975918714857475384017515098467523600270119011512206451666325590150975618770910216817751086382346201352783443017542771637455707275152209454808679620233141466341015182271194363532450837703481700792387108934632627490676995414442888919392869598448395743653496171917427600704043299103707683469625070601708934994426069955289232570067814506755237589581066135689718834165137112634019181254162706400181204294061214168110393040156573994128715611671051593047337914801005998064683644901258712996580281641984488322020446551071952202253976084474719897101978862607659074985983179154593082538117219470111355327074240200458092481907697253439297018122300028492842910611597799832892127822844066626983452831872139026033724786299107218436354130212108504734391388455307767819299356355295200990983833289953250257081371820521623755630709047937462652437205138215597444194104750295457424751307709479095416362361319529782333209708973048524166430544957586263672355105192325766765315402123190141329361861848835453268759783651649337423931379956950135035388577919528349448886517844843127934625554203445755517487396990968210831383773437234252136689734149337465163893745877508183773953153011860235992453020211350050035985825732675537649746073216230901862017694428622313609443218912971177503521434020397055630612281217613963083078687956394519478350907183261226762596158287270479821782399180113382906956787293734660253566749159588165533263188666198243552407301150940981000948887166194066628447550611930131136135880378336042211186381908025944182203117064217818776931559442911342522492010438007009432670528282052872640739866000286002421370316800221856682185940467848610482380146572509550361171286582922490040855021945131561684412596269685945866643338309911595770457721381346889563188802759777964504781107173100472053564877049563124524925959974664185436939866546486755662775098842323371298272909686516143801561741626109426442631041281944921652665116649805651429889820836045204268782225715510303135867860671402274620063844231462669506874142244029209737205475949826896567452987098935154103220994732358722557306361989873301116194506447465054418220513208408645412037399663347413849506610179863334968570998579267952832640492876763981754218566823885623496522523426124634783848199180130775479180321181574465459749712938855467134879627523709174066143958817484876770214923417962172080865907907907753945565288577838440085604999449894077565050887836449562639835481209826250958624037243126937335948183378322491685617981786320899479188370121299350771964282921420980783471300800963425553807846342745474731895948573555518839965675252743895885931967833763077011810635579213141799643613100247586719218869882667194689301575290536405549754829250844926474636292259014371894080895165934262844865173369507023912842953974926665209627943954622301568539194681101659696598743705481938301870102185464685938246593632079776166937222998546230092505612833829978878783501234815892484819651165386224361759098856000366037477482568196145463598123414853544497660296069257800940286915576659685375239177623330226281276120956756405112842561054127484457454725006138099941671293753174364017645055828255082078099450868463746539873504042867950869797138420156325944760287542584641989558694110239173275432508204293181533065466617501102257967088055928358325172806221324195502357677904652835646027732569953588127737053643184919805111554082861109531887826501029410246048141911728852316539085961737817558146695679562044961454751975766642336154917641515521446815296585821479144495496450519865372356433759488310940561700306221727592106772880388323236747015780684498452923601085030467871968102353404836073943951893577707436027473592190496233272278322520381804349089431977540923781705336513452319473876460376513269663802363697745952364605885203306218832451616090734912016446568109660956655816023800870506276631054265410002851794885285023881605480792359563574087922592344763744716740153505774634600209876041827523420014185731994397116116059348828292997768633059308249217640598855132486709716985871343503249590950224626665655094135483964338805898735125078564179744840873445430245600246132541153671796967828474000692412746548618213508213716101124032309400658264363492289250686672350444994459215354626196589065863038334218467410308099189215531459774777403806086791532857777276979411039818477225439043779686874876329111346860882017190434232427866315698548187132591472288282024157478895346251523230779256450866479036269237585218467249720177997641613534015726105802590055452345907093432638253248508395793652639264876355883720305945300594323646473424900260676880573381452775669938702351083318871809386992062967243911604958082686768681741874340436608415521027341325908901445303509861159001011983231417281044620260985324030915308762108038930446859224875633619596018841991201938211764405458113340031201151830218492545610737263690370863869828799077532059841333365333813097452978626161342010572809994630297298037546693392934894167520408113072707837105197033823668865203484777949009205969613295196136630402256517123585750092670291210370597127678586597480010020057698781378528915229636622947742119141429528460904639611331777021519774366212455302044040532365557881460391205458608505430333687865133675072394690908066421738757561330825340144763443264723306487562144904298641806855033166084012673395441929480332709302308218055263875887077954273643983071222214902787749753009881033547965408544314560537361282830662689417792432584252563693676215741884792257690691997649234098788231269875246878534474773510594293356798386293616338460032871636882465476963315892619127621379028823525525245222566299085679794952313966982960466412292498919344865831826573090809717629206265820355360013870635736650125419321689385936333371217496391816328815215592303021666547559154984645446700729119307511346919026105713645438193768630396659597048735810721871376442713365743928135991949951391263509934821160690985591534651324822470787941575510532405501623296377832617506154342215820919672073612005175566298699614322211305779698668074415758651566392903298059906302609823836438478000260511962910088219646452410977323525759666043297930765897255414622904479343858157949420834813021435995137020490672436379545681752348222172500479233119204285432094481754046155508425245749067737566319538875449568579070411100962939738802954736642920669596613609015617539229589627491917390198807516965272516212732647990418233091081578239608898816035257630866082611800495619640205763831533728582954847083923532908831507451357377880792036807539738077309323375173139827715648043362385855940179614192177405477645829538739040402317867550398292107714067034214344833150289330470787845710486748655201897570244204116977088825596616435154112094355488144609062498684448328022761629073809581936320502404211461990398236613606248130151130317396638304440379529251945716415640917548051715301968391580911444525713395195531701691257985526816900980849595783141111482229854361949955094184587399830609000393963399143208319253658436255057506184328240538700685900141204062965233130798161625412479740536275691157169707395779737875940013642494624136089880391074090140909291262070271266974459947378229266974206909602484170967041957126838546882276894501789070247581879899336186674403675587827764404455379919077218522957947073754071057201800290237395848325883162963585200532654409418175647452242305763310678184358586545996758790016403109572700998932154224577017772623821957725922771726343416960315214941249007069972996352581818159580096844701489870839234283148847790625838388208591685825642236883043375152863947267515865942527368048434183052474375124282087601674028699648518472434190260748902238936553684930829051959733180269127642307499767691105914043472303025156271842329736641265540285638471165036935313900325723760168642239249498925746676846112124941697103257086155112941019513212370536644588001601531544467445204990730288408131908540377389345934774619551585744001049960848052011129100947918829575842840675613464749125599346584201970740712782842598555255141298439998455250728126102678452371399855723704480394481836804241323937878505415365608180715923198575325214494566721497491785105303601078745349420597523437872831104105832169420667377685093935830007140825162753268875209652720218035969761691096330118986592679964983658094666173157147821645870497216570382975017693764707217708363958896399270705453708514092091702320744717255687539716787535651097414747631910181578166432435329129927936584436770238028327472200451484803580280122735532196941412344439324911125440438500991475343741400935601448854629248351257894712307855959611258604401139774369720550973096990573441289498882432854462275991646618020234342576106720350897983012119484549602447672042105791861898109892594663828922559237150891358693275889040350467898105408899073661992551790606528665185526335304558002380995931906810056622968367725147229458175865639745625542316996296093536960341323506312196369577872257392503618411842306531100330909675144322524132042717235921053820839034340635166634050347445297816463964106178314875228260029557155544989707628786104516753522471183350210876663766711916344566385640263253891098489213672582210093901594988121088146960557953419265139076414731327825669151196195780954257114461142634846987231030032911401151392596423432244397964358523657796921384176426064967178013363468783175987376376126081449778820658811147556697225091371169328727539381903766444729280538564018777641304437536433848434078230386693739817514899121053528968867287452665678780841935853431571423988471997550536993582631455501256658566190752129562806373587918398595356399506097784273516184960650322257401689006522144944156910191709750055125657147175680314906516342790335579582511218470020411661198696491466703190947029807009673088579248211540254679254195364829277383842468889727716776593659359400771681372989018723216743800137002497893837024431705827752939219214477028911102119785442351143584639592446002373262119851546361863462120490108191887646303247087531091005350379289590598865168772994408540745075153050359138381547328740711775927650083763120415175846397202416792767885367337004255962914791873932562258174226070937881525531642630869402309801289173677954496526679836608328285317835107143374231551415217626554367765943714403275479216489233138300038979923768216580407834699521575277738734068038089994056487268902042632952531724830874885342133291806037452700838644200811464351308290766357714860360842529391266934430707721402704049626527835132981408057310987667035221010157810466690939971983944669649225543008580643587935856586896307814310990123833676334613795061819532413133836674573107823527191488915956949732599739056598964989902013779948600223835855246536488008602838727074738449573464875679094639948003322575261910580167304922188281965624976873407078783455943540483100534197407067109628175139525024463003351291691803359909041783127488842325118448820714472536802711133667020223400417098630668934233822885933975987192336325757053545170211657372164538046171464884110300609510965223148672745976132712738522547787803092552928522697125854358499413987233811183057507499932878235991903779140294894949469379089492361090959322392842284936226101211486633658836271560572549286848536285066748734611405288617415929445119378161326434055958375529065670338039487201598205473972002286225267914820831543558676761967400567667403855590574694990469807497479995083519351053513076912429642523667796949661683203586483252258922263184282162494542068691218162693662860130742125171181164963031769173626764065321348271614730604487060094909266143464754685954865498499194153658212264714974520794850179492444163921795841633234398126873917571624291353852952036349065700743825013429720296544686262673380987039799293926194723956046152782920803963134507406726352783870613094815100196307783689608351893872986420302718189685341802011162226395899950751452580497919651945259111892315388285167204228777486605453311742575464059720200924535088431925875639101648600015322625970921575434859965898009706697552783314885400509513283370143605561780307834279853955828800317758511925693409876156606152606855065775264050015643575533630539606381176119055765413381848013561518060341942914090065669551910180603105061208150836826918235257380580384686488841242105496219239156074193408554343895600759006489229058126878490917939306390511370037202250606810875346964967476485963897092820841306568843419189918687754829463286494990115932443840460358067032135520026182505473379982608644027527080162122729597465552795641059199871279627770512143178287612528517085533239375313564022110540174038587896459311127434633303591319519728349561189717865669485567892519107088682958703660555639291477565503314466625888484318743132291331939507418870933553531815615840222833195301834710378750052713841451057850276181186028717613620454304842682327527268616296210176582152725381730561528847349003272488300219562944765839953121075042240540218112052134853186191760486072126577452041500440663573141130033356777907569862150014326987754432393704331349601162459015317363340324258444401093002289581828863311190923015597811638849572544626575932932485472913685254370378550318942099459903747656371720156191196521052349658821955031470821962026904178614460850124905314996377191300544994623920112050599172514723574026349789208583523540270758508752137228327258788499054080992924387567324863348465932636137248033155096006900286355974301343066771814235959570604787624098800464064801928745239570975579967529755434701428012208915874853845948919742034491695171604234788560005310091524806853196445425404465431955810216355332758946995921948272390030140201818817865828497362407342004607348731901792864856829735236783717152886527679997580012090579363008669734787616130526252106680183462615617656201509752524527941397940681696581534440942192717932300528810543608106067502780911379026860651156706609610835252141327989400020733264454787143002416287841501151917575256180563857763453073690791292538579092750612734525771638256034178132191675679222076650614538111682440971851623962028435106922505363440678155028118838519636745199775894410820704990408131234743051252574091952470867723690589632663166659634235373640257798980323930127138233107887905574935186448334527765572887339924543296606452940287044661110270780674984065459434376743735853937529105623901987780959629227268774478137774788396999487956883730608977877646311914292159638282990449256168846475460041545893051847663649807583398842387870225829317139543515108511907451362594821461376330369249125656052554566228428932774776223002343175950306070442413906962679065966705145091094176739802345078597572465768053409849838091721799152667737957543969201084528169932800751268022667171843749593391909577961443159431922786709431452383249349630028786511237445977523346272354359573492336137503247614031265923901253882458731202659694096852409560189458532263544790759455601898253346466762455809683766340643155893823105119732248193892611636771698524739439409829748664939031876312572367737914148350167296052675231767321149280763944635902690362301987575093971106442126032171981360521673237557443255613871061992837962510079132650741682785491194301952943112931891507531806389106123862299346762611742235232857438450524596135391455210774098872436855060096708587014359172642633093842828836760300642522965378100566442139320387458188448053520388509538891117135367272714785881156567412417673279071858373785930242819682771804796470354776658848649458981852164117622463837201834167239203361539436805391252228821629798596423444686597139715803560882907738706056873994674146864765966327223115565552131197329520956807348150436332589014980518490444934266187232902810919339248019210785357022402050610686324297780573983354095068761135260987641327230531688172904391391793171919915780077519101703990670969711680989371836423323697643810744659781146550126268333962458957650847300762005219102781359337291389092891696140902749054386397438942064158881576625861439316556359268965198537958696794900545502394565089047971288208576536422152721114745700825233986466872804321932084614637629777974106082065675142598777819160945032496623970478044031338678446886568258910311950710595930324949743232476511854402057875346792891101496814548335094392221325563997724722948849068238986048108984149074279848132397809226760457353413599968225916381655848869474213922057819115379996074541358977881272796113884170216022559033666106134350827169833686064771005587895519478995326898381769333736625294813474790227602429843163318276785180483139517692064123749232682724774296618481026583259096716452653822237103483346638406849785671966040532719311039315509764199871575256729324885748745770404690901826990824070617394455802578350430396148281620008415153410297895534750520827309487576993290465848260425329008357196539980614188989411203058461713630569884866201358616705384012165985986222602547406843594986644850041678417419564067700258890539048942322549418379356236634645061701874114223111185870652966979479442106770502951511210179297963714270400481153497783180392753705014855219075419172089659037805849638053699960257646366366235458781081799555182281286624221572776771186271032332989695401523156537401307200413702040660650372396389331662687178631903412179990306314254077120883310206824969117414522790080533894506292307227668681067553035651708095407623930910190908901572421050946731931796595173711114542688482357335862502134478341785556799206150814212129314728082322321316023828285059502850149637160834259386408121085691071331349978639245293839660397731722335929138153169481015392098192521936937389509974404510977392109709857603127154428621265187875317958866898229546729003147141514076032539625205639710212375512063810637499620557473135627232691252991169751795624285997397833131662416820053232592786620636065281180101940879341405732421913020188835799974053128260682136452554675273676599835803336135225379719291879644998018129945814923500103792679194352129600867879251463613916811002012276671277286837359962627093907059478590487238871538453638053313724919316684133361804399487131877008258536303619642486142439917303058827863017953966518228242943651275226841949488829941561179135151465102569846914433297917077976353365370948171226286030867633607585097307146358355802414677198752997800463472617968476570931247503240633523008799203745834588226764167884299755453814601439896966811913910162234692751761751716055077925043525017057520402586442418025937880663075019582006871035817593624236101859837733206433793739024857345243480090101766601670250480135978375807520576756733583230346618041381070850729489460622678371294723475530987916130739823390325324000027293997575290221705554843141311700424749672141042835245036097325776101765862104535136030024759447520155307073509568239646633584553509850925629861304134072354484746237717629469368547760942983545633386334573779846431649136635146860753663394399591071496886061440736364544525586541670795304724201362048409000757313433894662746382226262271064589893457173410555914563522035397398424298837546983465091707402001032972942398576490846358656294905886383680175700623170417495134811401295341977865035513659029136885237687789602332941355037336493394896954564724235407676393279977823772117388601668782799358121612525718995218364972655070334450641970274796996938075158507055593434683259992749147959270035300987385378839976506338257927793299645906900179502707513153217861017600791208278166569736671384339915903979280086303056150225152839144291574357816992174587496960498453669195354666553258232608595561452356956421208773693495911259346132041218556525961365754257327309579891868807338092649590694546085928727683268828585019806281100489077450820528788230330905565788541644489758543362964096054230980591218981880141803163423933926019111307655101044308195665506550126387965827114410360082180860575187288495069592909956152373421788779964612573216719297987840049772619037533766873737105017084402203779200427031915887176055902960361960464103046036525200141913876146643921708378358460708746284646213126448572022342605407115908464046732855209823310622144300349407633344474534173727322352016192304334925865523172318513866567752380283974324562888994625105687344476654376236975929976575474230622380968530465637738149174634795276928563622111904910726967794535486554013847779333262190534844686162125908557122678324615485940776001867972402479553741249716442836828202943631755851367012799530540818009402139602713555025664331918237008199258523481773071672310739260559398116981670313797348094904509319172145007657746664365388840600292607799610882138753209908943557246112561204625335561347273692024050159533611770678383596684876271801396999841359760582853347823284645421837917874635771282097858898839692943356233513978181440889409872896336961768555991690686621715488886755966834274719553636953328385613279315222170427916006184706673292437972500800822010512117153165696939122304323991263117814872957052619607642735641869268387437532157266960861309990274156835201756779860364763565907485818930256771302848056123774462745554194995625521772107975066828687017566649384119433309404540496745724718784679741248894852475518891889492948316362215098762292858703719488558454303932297448213165841773379278147923298375351353384693051501142035780435280354127082382264328792126487282047933889645941729438451539936395302223148566006559091544275839301223682503579501733159722045489614609415520762123464315952966679961493429095548970952980927733057900339572791229976650555532797545207402770112280472868460462657540999668584995551736063277541369393606218071412648616983274985502579230973879672458702322251858851305676454288654197362525161224796021333389547311957648667170753558556502403092699945605083768792254847060871494077380739218438340467842409832542355008187336969292638739890029858921979088008402785166067903002398385600495945786237684823860154979340100992517444086558168029266188550987839697295614334915860189865458746684429868828951182131892083068947231238737843726449056954238369523298335593548966761560068088570274372747949435932297597397001882609892203289633139787936222721997733252457844436299171494439699246085218788402580406777704277079841566468277358899786516205547687500400607461231546264101450425405784003015043014975807570014583286913504813751866288599812525651724922814728236721022130285331385290170988325948310124154687989156698757695933877184270191281834120482562117092703419912343308489873868481044200892784703483623190073686369778547090502465561194273373892220412534727059817354534691932935364595632659826286728920237921202997749955372685235772374184032164055330080415565958968112085652119359446769743821205342386049062257543001551818204737625495814398346869275666551849950016263586333328886741872412572710683030706531802918526642761985928184602425746167883454387487462506828728057826660102337606986982872699053583638091608768241031783712156183592289145940989790333437606446844945212145425954321499146718819174249290656976784241474519791461848470801675218529667471219001112334745346266042024954298247103028008179836659952033790666341852393976828433052608214781698240181549864941420100544531031896272606740726498717469048858474579379014563926017754751301346594281460737361822006810064352627382763677759271730862143884358784129634629161262542170023890146958166216090444284517713695845410276133575084570811647215455526417095575098902381389648232358095325925611391249801189967494364120870532854070670602384380030778829778869940122581884641017532720676468022108693387242013298666339347592936945866211041057252404013437839730398174743158169972507206489875185668929672154650629400797440110856582976678482758671435501754165124370419037640187616958736529387283995070840691042676130987322825747755572121712794916647700526962316551338917281661986069202984478831183109848788384861378500697927326320193194740524191322256255167720433964729643331237120866708719860324516597017371435386904931841888311057061482922692720766998824877336933671793779034476926714801015542668988144571993148684246504763857110021780500647224060674077564545576712111405860388712891921001596888848158358659177359703403201806566768775466643427189478347790792444665073737580163462233473952938276869724533673872295566710341136129660968111029797007843031085527807217828822565603810282371426229096067940851181862033747729846668922103347461287816160538055551920038138133205765786611555170957937636421002245855803566744288068925753901473637219038356844366202960228826559125981885884686050408605600567168520748787382641488540966459376555028305436590481965424560255631455552876271027199379361938262825949783050412865538373918655249298427063884681767117291179704364636488243876795291372095313714672757541727046719144975340092321433744704732528268691892065585425254104790157121580255898711347324075629776842753574317666817779960978701581701065528209499723437446607194187598463963808301755910760806282116703681174239759538395785539380308719064343310620119095017856834229088642193783438749451615042650113690311941762769496625173527230240074078979556714468225526462680626788991904913863165970453156627361645699718597443085968213427412947363054375282671766285931147056568648787939405245151077483640320340932032786963249605822756590523419646932386437077570691461420573928609200549411938635350203319892584976505070854238928161196040535230485968541728278755215706865024374652999552502464363556456951652931210554352495206510382280812045958606264699381283035244452225735579828448210953150506697591654976748588715781295615147641541566786009923751309748959687973573045269388066507057349021159405215575814193019176845575586414517536953131025144044792684160840190257400176180341616198484733397740512962362179390533315873647537498441450834389798118338013370121287102083621529879664163811862928945324143188538655819411827850149388994077543065744038524251570851126616457818849336544132601221073315522927153136539656559847768398825028855373726730935545423673329617180618394655117009694541158612584533058072612879593494620038784767399919133915144497981565257038797119775513534766064518646513749840362808981238316185419731123680400374286294938915018600525400268947923250604435256962977707022571786259045953325841081929551746653212781744370166190546882005627117640135374771518219074374884596963466600916511947062037341171271216541682489377619420350549591155350972741914377955460133992879092057768462606972762255070637783825541302084752422023668771883632587667227398150153197508919629022468165114289622864773916954896526654625152700452462110594413738680323793762297882578208586985749680659384149242376397380428155405399031989721084440448241272314906793716329277193253636346053509810266992743008453722344866552249095434844903663463626729018818212122828383637014588481953530548402994135209147938978506712217195782857610353628472657580893480890989932923622642518685263227862541324839653428440897965785820790398818772049842938864252142904311634753603202953284224057626946938540057302145092116184284568765299717824452886321552664113740293718264221581431024714190056155153780136563369963434720849852137497051563052080076924683694562385763947368797287717525240193564896290650779753872025059089653261533233330382170238052420875822996889247715128887598820879876736723721377681388435924675025046139327605492087509159382924091704033300851281559880048254836205166268717274279787079467226450967405289153262709378051093265728237562645677445668400980625710643311472272284424972524173336943020861476965521648781393012653218333721742921457144106003317197512802650628085610745254516672343810481959556466724736579440118953380481988683618332934261120153364786229050704982305966006742246783339199340003161018741976856476741637524673825204256179030066393784480234750698401195262823635457749133921486207612751426019639945348500770207973257462685601171428990840275321633543369875242690442437000608470007296701693780380678963308930897809691840141590971931148599721974812977713321212898551906989890532535507020730167394681056814865657617183079060189878285231338448707916265577947663786048461116747878927132597236364746413208667577603554944121337828075798698995311770254145874520312541277014243573429139253298526612990418155604692211766117086246938351706032445694249985101956356725167122170731718461312838352311596181250304716540549513449070246287768461688648411843479475235553236115913287341264844346849121312118541611039758423844911547768640788233476178077085586168872350576009887417094273202312802081637673306920283134572005791417071449414110123373908783059017825858001267958489120548408365321346306679657868543599990056850332832893614443307072007314637569836311954153814652461939795428502095362380310492398777879827770757762528223440453206393762114754996254726682215957535444095019278234705966154597312242911304658772000333701360685893569502792125373070318520133057013078236789934786836815805673919055145371762126734171251208560361453048344634651757014848034264526602833830213540820746183325546545495590952887899319198384180354880244574196584398636734846820712983022526448532196753499019086883576718307186256206801581373693904917679677386395078606239096077367526042969953652493863097785094230110746229679816687128747952106100314539055055649800647714243022174946074084618948406370216625566408771573774846611291880431541616828951237992211121519304165061976896401417231667543919629520471976533780829434665308019335277638044477515012382948014944425521352631433640952207206551690006628591876819784026778708225350322468722526595488869043921622872028372311662250591844699848073974735028424019711409895904431639917023923185621340261665743638083955570406080903656886713009950482965244469571820706271145960921628958735241312347177525090369139019350389596613167785333703633425837609251710132493107292341992339262619623156596421541745233087868139586900051090162513382054980037971069773744488790488713815345104540846872286120528730057627028021463715185010880866858601005346846713459135940359533655115896757637412712788572875058117221187294979098988786679249259246278331364535809500930905772725710757458984784621406185757373116583623990661614958197596749610007493342754598971362158951284911720944314356471394395874205456720266365773941252843264974620017361831208502255462355322450946472876517401510171571267871211690774393463059833144246297317316592007330436845178676677765464720168200855255487735422753289207586767635610985283308365587514007445582722793084616773663807349360289359514014414601691672723453830466189632883977069428684315302115309937593502027576705881654854299612580091157946957156587551161329354373604216413301117240768457893321374951957250823963449445342406057510760816328471072115299428730845044837108835936033008360902978767354184439799494537524542671983774957736577674368805565829257619290241582672037507342834364968170992642791490014587266096165959752449467773604109435795450376844940103796222548760571156780182462260279064334095283623512581568058953640881338993216812294762964931628706070655531560242923727328049769149383333196187616466521950863496801660451707370063721885063841145619339378119060294058456966215589426691899168593580323812838601578326281337037306568795543942628457704407358464187976721855593472118686986523937120081883061895339875607982369700545610849483026736489911093181937865909721333395245629308330680752939011559540153268656871699866843282941874986757868445372508382174677937640944639237538067480313058397867477933227638825788378702993620740475698041506679632815971764879391828117345211638628961695355574523330834974289300162291392481924947803230684531311797790771306511555807797184539205781291798920688438662277574597387075879707377134564985965981042994468370240643330064796348619074325100575164336546865743918788668550367011382525840945218274577022415502271387942533816394742613749541330554415689376982552104830591382576991805566143792275762375825517617274895377800770350840778564783256889643158950536451597187455485372393613836134519248829888996069968927658388485818282932376025767705184328667208233934744470678848193059360651142765830422449216335081541316019985885130080319634354492733166559909973231046372831178933970342372811358558969885239620797993315556254303757479797561971493606441536963992741865151685905042823419031491757407856679266489488193363847457634269170849054494554143375653641997692098737818916700163114322978045700382054277860114729129747501897627712856414976812714927202018489512417011560484891299760743644352077726379554994438885095123279169799729762997893644696779120905916772648016501866426351541604058687444589595330183130631584119499303834428600194102738021640047795700842188957545329023999367356323116681066367888625954213338150048713930343917909802890840119983438654507169442289451309815424949511436020401435923570866369689595787099927765940093662713195311740306198263374242581542598695377969916253710115412005788680545278379537983847987363886424267244225890442064903363961803750885881935029660733610064324035174597996225702035463802166792047003912690324206713091355268283409390658130982782027010727824819828714659730172054596006318718946505740805607040674079751974504971021027031466331381826681743831586323356448387938107715101443383444973031446858256473470370646953997598502231639811772372996650787754293996565703127317407829603004685203041431636411896105959408287977099862953795519792121964113962388226852659454972966068819852713371607569896108476335961405669627379111783738855103185407485871560235411832498871549354312044285672861723712515948900276791352627923258930758174677930885950871428571557075013767473383241295350652714387652692997595536354464924562228408552537196659174766762906622002763805726910575195020683097217832255762946559106672473627781506904144691708783313541228923708390972471023921241064384189505880369185058278703492368349833850842006521693169431298261779359990855973176057335450676097839119829912426732886643139005105199627991172414235101039136156745960109458903559469559923071856148482620565921809981793953539351545534526717860070472850630956508646214252363342548227091241049238683524211320413153907242304340217287326397151532160976015600742121166816709781132576995568942426560698959309033785998600370612897120915544700673628858281396847611758135138057094293039037335781767841009395966905509618146269158627170170744020418958499474080716589895187760616593644516153525629334493029509956644863674499722756366593615828443488750004578105425829860344484813032812572089504083776838818065255112186789804225794097922169072513088345465495986155171940585799155104822734017101854778764844212655883809958363999088095293154847846433143823105329618730413023342379674679175027841995262624499562013582211735813948304952687468211783794816172878690969059114138008712534818813431464481600844560774078902853173093336365010213246604805069593279464886931039552488477509343445018858567499469627381879125420613660653899110237713969660054648480102651178947623676804299952388341383577947923736705588202894988058881647600665960931672834590535265458946493126980823864556604403123076072976466495084510430728042313004601512057872064790504760086295223696942796862060420101144067133451322087560819067562356397557116011264981578163782904407248827927130085871588909515984736511332039695366736600473257768177780749312974894954271935593960652942150763644672379070448477429240779001606239810210838177402082568900813525791707225016956633432944226991616669433605021338316866143938888598910370848160945442411384247383232445499566526893023110235961163288687624146433156118731009356683605783098233451592532442671076993554931134735003759754501690374965980969638735280204809103443834043710172958367169609526565917105524258434030010145266207629850716075033468303163086331325878855613047679304579105221823072321450683165627058162973757379726502308054316673579500617136540087532586405527332274331220295508275247403139880036588864683257673238519245487579529772533905034957470081678494790651269108414200620114229850493856817304139778774726202134109067144663650626960644624197256332942423578921343917381063279375940410180531976973711757767527522773588533660939769838311254261979674707949261260118263596159354890011535316534616326412903405015172494990332458300836756793538672132467502356421877060745803809958259872672918858289882430674902112003826650124845915455152454673276060278923653286384301604347782518136157874903368178628185023568701122723666891150640654647363821087451178965398914690129113795055195576250208176816337842211186115228667595286781909788390213310645862447171103758784592497124742881358244499724407524006096306370628802793182987770754014043299415052801807984439727488901172869645677286767897416307075134773885299016869674098923252226367281030376265560533369269258800398943797477349872586027312297296889525888476098815674262889946255534207764578722537860607226576825878087237564330872446797192439775602409181828149150603919812471984804011464019767314849106268444359733932326630491284249238617197842842027022976992878831979623414140570180925836127951668671490587781420606370205446601683498298011081430988005918422856811095031586739674055814151216016674682495731298429648326107953841304094291161014040042302949260853240908597415870254197919557402053967763106438060429459383193675200508250554980424449582205802609742443867815527695707856489128229617235781569266290232934075632116932095536148792688974676931517623212841311652398539849679935849732388853443884680357465508125034507614900360397198855668024274911591915211192964395879615847404211725184279845344704912713256439590854192039713252001665370232000172179492331961676824149665422361549327098788249058616022568331014856880113616339125739848402403496833088975615379883698268522876035818514592624973062963042284026780172538334906366200043973652117880399142101536446832796341131643422410468306131267845033954567670870955007335843528603456180149548503581753510078219687592691005041001249303731758249600000006542121194851383306271769772128980266961352119411327784948023844277272068397020728865245749563632542529206824041482988027885936642263663508967377631249546979742443514928219688463521372844785727593723480885065371821585590627949420759524293764959319185345072771799732575697867324305412422171793297918268016807941871619891336081767764654477369879073763753664342350367408199378725894488370718167286791584445757594144946503950317112397504313741936057308449713170837678116015667044076150894973234356323862234429145832208051328164243364694264333247188757383424611609324024392913094968491655263589680288802899165112788278318867306236324630645530642504115306361106507270948063659205635877531923305304457977032881566772056105511986670988565991430221501794581067843454332896617251194006106488397139511215132418202361112144276876554991390878449843475569579573578342819000321258677650114795543853827391988083946212341961240355936506799182178482918817838625681664984032994709792467226736515339987039368274586408601290917167077069419007863961087220070658109224424853073605402463854801690740831606550360184164552813390710484282599975268309784470965623885862996777540501733653675920863861585861382543542830193500199345734746452776480781743079806978545835682717296055842386426133173877718586595743277596366143832778320155456222335079406510429896540771928936616162186183763584682350779120731791532236752676891772786237427342516363447831672453064616168853740268707512920108353957677522096023787107094565907825372207174200348413723574669910532491872365249553494045104634223842723470323988553666167108882201687196319986303256065599007252961269354265100012064278716928179792680514237183894741101243056215218935611766254934524127139271480297890997657628928513236319871906745141319677884494012797543712660160213425663662465356525645555758598744438556682771988434466469146544496543085025784621601185668980733756382290931629241042533904325133859290671598496966926644110107634714470923087169914351282427758536222216590339500280664703804238309052064068659082563291799894587988925000831731487243037439175334080278704715185107511927383638831970051148266887688586800206562636555590488040092031110133314246575953394970666195909928909810910638371735454526340822552999864460063858051922318399510162486099893298842076704267562753662841090662659877803287651060693676223059019345682540429665093366437757833758943703457840196612904830489864809475424492919241462580113395274328504957695502477713831714372776879454089585177439729379699824304967164149723367979493889508329429364969028384187900810310417537050323059449393066672591750517521312827498834811038139707194909333497306445839748770565510164992778781338943828503235116364644904051614404205898116761131598030930967145792019512770266433035390604551310268325434745161237371071888073980981215364644626643498183767771291763282061948369874666450058004006179245120519233430109562923866346016734293555465685756924406687737627487989342531929545590004205549669094531738545103192052949869544025568390432573431952741335846313485339380418964821667527603349865073788077197699350246980034815013961543407644356324538975961590205518729116177472880458486328930649828530599081240233509006097492321331895749440275031050182321961823756705908874687738211036095343124249435151767736040031153737163996418912174396950610910088397824952695351383471697023256854329073094192206537097098264858447455646876691223822803377370851692986354500234387140955157412810087282798191282984979381292529620849619631917658843767163207763467706306303598175282582270073118686541590311870037179171490184508014837852693097860085811831281146255604975471008927788159758862125461933145993508699450216349260971303353093571030998299192627333229947731833165988669154840416695803541492867801104056894931085141884253131165168374101731643174928699882262221059722968546069102330998784080770927586121182486802138675945996615081402223401915279408131835887318862400542629051605444231366090007946095898003238837928455316986193028896371307293071743022103998598850517090901186841402778477062760196227051965592588797261254235397129770642683471970944326553812280109177493242947815126187701770740601506641866677269679040503123189540956145890942995616485212006166450360833260079227863484531190330145514265132594311375775856787805197059747702171439691590964721072915792871971528337314377560798196482680831059669008560385870664727398093791143884277234397654704583899021427794140431565008001311628720176276818024112429038746965982807632243294537820327531960221653205645924162036258465679352359924549245459278011824371733979518461498671064244891342483199602635475292968842139854017164516236460770143436553036843253912850892230307602739655434341463865238503382227958386317597402564720303057311466722895056935657705720010065229963877338455866694657101823743578180447311090095568738387071530471798751538714861220396010877548337779451342977023729842188454270702740712669856536207731036455437472561525721179043697434489289735619371113595824982339674039803968817483181077215098604582343550715855648655236659205890858238904012368170564337759249879605260700678174140876540615772162104661682538663379504553643762126815812810891038141084022023476811074581892392714494711794232714477380525001393903878907589619221695195673352048527958492544878541376643117403065880247106455273721471460982326418602320871739640755778821911499786701078723939765487373909710805014055710267014688207234430388837934336584496680444390871227083642475349787739188886659151704805767680547930714206507430416487889396398430361046481775687914389986636674632126154063696450208360050967054352998993547393920164551075700014481537104829419450699502589476124128161219343424939231906704170600852159834000865267175438634764842350079130141668282973252255329193121128731758305580811315698420781653633105579400246426869713287964413600375099446176833525929982318078903694566205642248173060649995166084233671814132427814525102095609937063733708622386357500083264438597362712332024325154784311340990602486027657019361110101711082844324867285444374510271492693037816233616072647250154457384924683801508003697233446574879191136001163383779116208639698032003761096650586022264582317950704320787743127193021914783286618081100543119448425643180603726506938789374723799445456234803974301523196881768906997074283909673347943890414811793732255286282958860453579794893041953743666722909377394961342846648264815013920618290851768771695557329813681753813135751869057971551972193023975009626253618165232703949854914327929486955536257796204515675692929306590641194182272078504654821813512053315436116259022347230319135095215095764468965852122466137343843575575015054160963578157252136995939578865460080512625059747871780009967066390416508943813362284825704372979708557137408847217571759229025370661152473004454660307552066282678270434676751977072355070811001853864910639810146247003759099080086873418019064513964389928682282579842284567410805573780729784949077008793892174822711288564036601521084140382284877465396719059164785122644412629145101742275231779007738740546508558474138812934147020625918282062997808726230618089228782507117201247059938140565574148051052586533418478453859626954243166013417558520218057489305669430990103405511778901314812553851330276919378308238391576068543704659360225874314225935780342021462510918808020841163640973127323143248328571166134380083094974641313117194736569234783645562830692659581826879770203250821372394144966091122366250288606124066846681457513191144090878960388330584022225449942312418404177226254250394648993570189558210743048538305082019169173198608405018911061519775830747602106131226374079534565748846556815683569281759642852309126786682390042980854934971993781214871641255523325347847626874521022447413270706742320164762693541421793199969729530188193413420342644402162344336827640885179017339699951484351050744379371841957667430485476907546939375487384394113422446236863393722210701306901956768395398478862349441275896865439453400929741093098206776529710472138263740882924749939982027192517307108476040767259662860548083311699893501723240089896928045736805360821239830506834234641315662538591190730561166933269448428713124657776720183630746441029041293961164204286718099100864370137855757648813715914391175397835632390614322592480012429024577511376475515825413551810792305104049475055849663067246566315029705494064474905589675284346777631989958079485003859366210725717365480489892002019474131239495778406356307381401748500729250252190083464608543450381842346183520362981639122128962048079109308201958087291500202232545113284847912692485499138726644921527652998744290965845626392049130370915139371440059397419420142132226095324933158861120716817817833098181483032027861531284912223678310932468883331721119655377247359642640925169257198205562438673420380770086291294074439370579650915296606551213709870665983168405711171802191920701968369446472943059019601698284126472469751071033939345998352268485442945512924667945585620914111981173128315476052729579963908050137165315170514978224817528622483323092798098673339339156279698448036136253046073582786199675560886401080200433965747982945672708726101449140232315893393243389566871738820479623803037706048410099073463445712481046748010655223927930187035147281830417493191392189431317257204029385802086358580812275600579119691782834848640097305885764765985569615934957891249679458588001647003220346552907872908804627036924660411871472690910033480398169576000698997031870196696517209687687582347011573830337359073185905081509953429326696925372259327446340126418678112216193299958806246183053032246259086154656642668499385011961800337317123922040264909627079932821050079547350689773933903908688635295390303950866890593888866443412596029562874827942837979518198869636285151249367920617132846169314176834061872218759923087498546667997341219595450496301506480466747594842131368059565169424728166061609022582120851466725766641441904923235880375437465542570933334955758344110184945641792446661527546118071346465036406973401704684046488063221737197366830743555544838478085063809243781020975632452038207414464867932518437812863797066337136372582972839804480408828506928167738219569246163686544413250956573569880251429552145878290159106475398817441284355858891439552909465872029788634258236608576700313932519037216913339013899630270125288717810717317609595854082231783767066312446979004876896718913121687653181566586187344821052993527333322233204811796297929912252644117206516876839698541946146140222065612468271306406507392825949020189618950652814113895572689547296729130152979439666625140368967774350661284037451245439488291568939728423460654075985121258493549436819737057374697186996263679377476052729023025355147558035587500774508752002141337429482903773040658571119502719065664123987979819899760138906042709121685043713589264140618397000471432999528202070916611139327142427086685187296874110694240472003028007156741287378578511358933448762802841009734453130570241136387282697410705906635540014378244221369636597571850619855620453207807582615154716976795774144631971603954975634879239431453634167762030996958091638731714585530929258713223315150591905298394926528079737629462574196408869461778103229772704711045480447840850999740090074795257180713433379680144692658354160141799211331562930402408140399191817261544104292674374308334372271187038636143483173665784179056263308791435412243043188376339761302856051975518426184824144157282169504923006814316624539818775238743677657733235830129421107986078097947703381190085002145332823285682329269845379953347231401161267390683007385942913246112694434211944839581885506285455607981690950781405338370802572844186880398268022294087983931306774263874022402384120164930850345253129772713191908508575411933856300348578080366285948379846606267120339858126370478503128145062380592427408814152501094584100418504318723885249704836589266000458712666975857572594510628952735393757560572539752603364665312346764980681540338198677741190123213036740697699500696220820869198356182996290717874660926440406822536037348760698626674020653362145381134955414465104628710721846143921797494223442319260189463131846599501241102411408066097808137268818674456197517789337178434745328899219523944174065879196622425451666799508989161041431750584597657370210846901535467224015850567799140208303161722959769282575095303833093729686814550239693889339829322340482476435698024139039735546751536817256623476738631934981139232852040079375927560356041954968771930648235630505480413269544304527087164076175190533923709059509383176843697098453670835308297328541301904082133517363218763341458475966456327956280696873726722235931591953211358592017082058786945544955572524756543396123156697868203263209446927551276804510713782059407157209504368909966872270505546409638145763687125083945387011664814298376507535970010898271390498008505639205733396527574204167595545164552250374459989928946967617031105237156132850041956337769385974234154141477299091891568679795307770952969374001198910366247977457308244002183313963448572361755390317751304611700788264412503488146148666741680829243391587869498765151194736631915782112476311040287915056127282898098826624126308732206390625591100405806722594959995246518696528639646756316212764589427571095605653180337479044545515207370704846381303075033144629255688713535092526609090463985229967430785981354789878538708986149879237439278407663298926611074082018137440187057633299911154064190279305361312300398241467474068053195602906924785007127837925355487476911873007810512447801718595492328573232783867490033856162117974529765089000283983115547522045777733604288140488540342508501661591284924573176679323311294008247056587255273224452527182557649294200368656483141069681608691650913273554139107048108735940995660678325448236327056048826926562579629826492562011562784057447563513870995570761030548481093326676914797147982950329862858811485644751539351076026453412484885385045749925531625209401072829958481752383960257666553154861790121164300793353757941858876232707058050787804606190438167072492478436727465668202517668395229100387033095891045187914389242475209255055828526468806903267206700947328522206951324946704246961821851813032948048188318758154797257447320105255264483679890382870547256240097337305795641892135669872372043001645294526809695288361721891516165699172315201669455190078027102210676384115233999725544283487397611588722578245882866028077756979583791658280642789188451911920485115917853053419974155174349414434592568406642147689901296295474967697904656233635300412563504068483701338963480575390007251861310879623474479688412519306290785904373265481430342817134842715220112759246938850576749488654581369817882077218786321516960300534004855055823036638953008664526768117238683879785772004724959068892361424684857372637542003852280745496846953717701781652947903921837627501152377894505757284299320066563289748668817634571855737942209405295323193935122072590805289369621575564308636861856987301003705844057235090333477560292954359829000244955869979004137839364174272946057447747198454700628276970780012657386832146890577778439764480896550939223331474789075390207393314072356329610277229476433911265240949779594019459715239076432573431652097066360725731656332174302186349022641970499830629631156335786002881629207250755935618269011094801937955660421977640263095661922638015804439148257235368285016150980334785091507936950491749615802873358854118021326627474136056491296692329974879174074320273120921868095335227926936427777947474824240175297690634113809930509023012664133933588606889012965044397054299698310178934881536017923673517837933900106118330147049252908010175266038923433707580456687769221403780358017534733335402675821366081121223327547714988946730462713755691595658632965236665545273862799343287286204507176330868403803282050407635315471759181954345679985039981053705322925285082776281736509878181261408261586570650588615723675690483232871591496896421754999559621988363555625452687413920313957376453498150788688881762804975870383696838819125522811237474240904822607074167566809829075044194351253861267537283748415365078140836792181279811189542597328558750872852940375281689662821394033273150054104462085152844889439629230592820503151899963983768758175943501667323072560728877391059576546312308662523342919168808709395427364423794678178307131964729596207551693212576545017978147154768899523427412367066106051727402552754159700473414192316326760433368917080167855764699808794750638294116606707164047993025057236843346406869267530034716418962722741481198718391914224048961043940965073343333094934092734866180080474293366090562622573683658922201507255277156009126354022765842889317138169861674087017530063230494426084881928413741248220561720540804599502696204398387581566921424948821022224092851826342205222148625798959323444984224681982311208832598723479431019258832553182953563356969836316840043867386246972812431328362234093898658617323420635370554600860350332038024294348558177824271561190326872304332215742071585044368702997290970100357473087622912452965497982109129037221568783369438144176954573033142164851409340783566408128347446323234898539007785042250851872144551632229913602022095837612954018471554069116960238335568235628830064888276171198418965662622008434283445256744773591965853554619748687721099427516286943018083462890630061514697320805724254292113284871958683535557701459611726113144064314616884001929352634536536996657195181767572615748358121288247712085189522062064809747575136750654282917445114453987705097599830192545777957528349284899738364010443531972897848200384115227823048275869038919984122259088552251086045156094973468030407304019189396340644243188003388190656506351655477637809156240976099210247747344522368262079539058918030434506623621411249344607357624771748165218210676497703411868549681662687181552799636593810844202159666674648196143904083762333312191178048051260577980451019885309958892181524740298814666823453376801585814528710582125237070599844735109561571258600584775751142379561571333360375456972320773689967847950386304968917025374480988680880272259274909481317037822028062184509402201638395738021215598105131213580532080441465644134547712841916433441802180432715825969367838685677667742953273366081830951939274289064084087091354276923244798397882426558781568067309451794518254607716395564598454747515901528836438311460586770262536498809844134878251998270630731783821221584512278141179931239205611136187375490643681957165290310496014751287317476053840442263518191334486972471251692706419545689218889359976281846731409942223088981944163519160503823103050287635940759731843383605812811435832425846522595078491823370593382783985074538676791834981236148682351777672971421287542388128886959873691517492036110267771530750191089130529123589441893549551128984824369247204847466889861267152469154392128042137360112024658321734024165710465161923992327108496769558544919348388713398913183925989248584651834982811941217926006421560299684323452469293890823368632288258505054724945977479028739735246188670758841434402265938158278518760250167871805934509758520339844723306577455988444850189699991507561505855033090713450638965760192671657570122818644541461743447308359850821427393137743772341736952226917170975861620579587510630768547903738175534968564505879301935993762997956542956729316997155998319955464020200398169822920361290834105200402448478057753778219359257008241317678099251968692094214387896293287308356363200565837339407387009649462914433312233507361161071997147320432236868738373495702651305968630457482650502905348829366658002027870679511555757168930568491473105088105758135399923477036105257159975210380361856644389926202241729801297530489303666064561790474557114606154261942922126067638917472969395655735768630245515147098898254254922198908724397652708074911147057798190654118753960978664737683330583014046290191801001403353894481027381899269974171919454734143496173134514047957788099393313370624151009090155798046199272842139232662622162154929601454428208453348362578245296113427270778567203623275129067645578126004826628772021580792228503942046622255081416897590443452027869816437984262552673668542361143035237060407822334201193460028640305915682721199973546570284317135614992319648265432253613676508794978202835162123743356994483199031862393143636459707008816250306119695531558019514975642326657504444595002922012608296802845932786580423972745212419497405536105754553273119985090592221268079201946225880110824243087574489312228255108189039373600326045565826707840912509656985512174044884284750565125434605140062450126741433365946703713221620651318600254472926179616020674318894723647758702763642418563668512029569387093824773331241957173555067098584089993199754423377516330616959168537650332996184779667222115332916042485545209311794278408330736196106965755674714043462549796451615679193162925954156106134736117902898625054822472678516558509299324881250603523922271829830622646977264741930442719293743714479632063545760828166137664184973877199174603888040951808232869992159030113917319732265908201965091757867827991696114555679306033770575077861911342133579568023930086529814654422417814937331877267120478305843589794979840481112720432139204606869133542739572625335778144341802162401941283530071946823363491698771969093215035572260819188090932230131284527325771010168081645936120239339752031368923284998620052919000202325574179668613877848214666850446726409432699576678165425192241121518901771158849376172480397488042126239985487725643420899699060684447593063816970783495752814767055350735201372491323859509219597838298079577371504158602809136519402278841595178233982718370536042906248106415359186750728948278004377855891145870034513436242631243915087853922666745866816747413588807452569277301394693146692634068113773087201045602829257809490259729288629969380295140974440187935770635598817548129593114531044314735383532357814095368093622542410410808071726099293709789835906560734446608298928074298367899142273144067075452082455709946075977800092090625581459259963711349963148647040761389815581240444554740079279117683289052554078050953857859592981126909137817211122655138098211891184415641501136419292923031681625265563910032426429427293541146848944456388558787130999723388035533450487047877014804811436784926341644955834175798117216469716734532009556981809369151578312469208745202456140206889310739996096233863771599935462465563136437593874121814153933121658518626966802397019069932329207713677557758542947282473925882515774795577780989608706954221368286167673753424313142812894621784777566696415583387020238569909919012084915482097983858172336948092221086746631897957644432679767134637003416895777738363262894735933868220003722991116578249042307822468604393362561242236001620725246106430029996053816928061319799025989829793034916258399944341433773507211424350383490778228638519732509090703283957622614839601164316848279629499751026226341652071412093675685533849619384594385874941227323710604590013325158862270371477839254914899904118194375995859895975668429615278525903283057248427293075222350278669580075285988791027125213215275642762649053760544053294535105355025897892095884603091918589492376779939617422011791784182002789183891479646248156492520800605189801533582853208794757687724820761642263093123856644778272933335168804590873857379303031055488801454142068317748544335271606554204453661366927568550451795407862195145502733956000882964347059292022515693295509665097711249130192234089215334029839595470553501758007270107534573299926587893027775604304973564905873415299146880132002098193725513575613014445954831433698882295975202899446618219171574959562764801711118572306593262566599531825516286464934323252475422430600090771169844922536276438087029538176132375772076957248183133172940734304439492977282252042732433128545564464864649078141416550616881203428482412026335940581599204157140330679543734255922056679363404188500229131478834768501496622684971218681039415441117133927029621261578869223909254567826744816409170199115865441019558536646147240274597125521249639324269502761599922378682487355075370652270397827466558981134480698744122285379937533330381679352065245916431964682478627328894957393585990029988410000143340581665950301333315275155099643105810789522011149404466560310531212059980686818766633811562889681391018648658099480390415212628412103283953757540254804216224963402221558092027053224266510614129565532608373376955215026249246697092586790321180938707807950972175488860017013997672225838296895233554510192674127514112166489744971426053341773655699066057848437075953971627425177146528322597910769201601705906745892644989903060025514025900486187942616442752669596915707390645367299212260138348536502579338364661358686193838002906091507542069284360878773738233950336706364803157947082744047727145256885172089893011918515358068124020933014673788039176871186752464109323892117658918542541055538236002766304148313866061001502021868678259594794581919534672862450585057824157667474073328607041741548412293954824475427605312065067476756913743313759968823457231891892739727059046516624152786471659918309142573281279589855615588429540906621881061138964750749491386846801434566756877406408036522328466840761937473282966326060236934939919891455778785425714080192904461087014790078943141354573286836738349838032859822499662743675841418428380712861089760681785754113957775559393164557935969252426176963222251028626790706314796839391645015681072318597470571615334889268033568593790571923406342709789841033564534473919842356767113045685401012706258231410240946301322568660510240483391761275176187838049658030921438013885118666719973057760266935599632780074480581200807307060207891898874645824391812096952613157774091083587252452083289016324291622730319101231581555967974862939169924581523201110265139223768597042048289239755611542219242333358525318051095991609357016383654988661349988648519492790098124406345029613479711059303919419279602147014952779855983779395995978313486151813900665228816102524398407702271210697327962273091918763438721577395707351437386749084135380294077208233843155253334135802843016389233801231335790373836387963311098783526906680534591802369158454757127397089456465578851717035176043514981664176787786847014526052995645300834064834385470787784125151336900165567684835758102024442216882573640148613766071240433562328390138653772557316691270438492648436124993677258619649804750659944107982007572980248231642425856908499262310797526030979147789109944572575769689944362319143209379364662285892566182180894405245306282631307153866760131206364911255383079529928433088525642201909373039695647063510569601701254525616057799056520923554697663242229679208874410700523924844598904454330497739967572020816650543916477248708865233753166723073469457285884249263848449870049058953786011224725515897604474842376652160844704269466622191367032981599989998786915522752173073464081726118458142119475735378631615620100830262440972365631463239199437400831302733759137605379314172576408357213169774406189629958766402202322075713113041907115586673026147867353479072750368906207335239114927809333713849745495489761167360666357212662725609226188389672758845951152583215723458524306566540067324695635167290106755631164456237881293366508717121036449882666127027238511856850661263137242098405155809965458155342668283009713956004452007592776304389308723769647322972973100600686866879400416208199115391977937917124769462562670110531030103212680136993409803818712157078762267056326011650873857411336878686036457507808099790230619353575083757858663889148547990885292934374501633288829639971807075246108348627387331366313475948450004188341669952980364226321450741966000353185153309828252481816386829073200046605824739937807787862487501185020556699151946321340104214010796240744572846736010848180480165079039862088846958751976702458955297670100053539547259993148568448774141851215676393981998271186411696466356984892610792111678726595672279913496588171469901925713815644249376946331394716436887904153227399249521754461885908254087297852331415183659299181109778114471255915805200955878410280512127308043296646800538649382522790350264444639793332224571386175374924234160885172636097253239269374800876679302888459608298593632738365359820909299104659920716737778294770352308423455026462680752795652828983432056664558938157240388219556853837857751954601938193248853686797471571815246753556491890102580396308055756756199688361884892358631845514885842998867475212552330218448406356365116087847393909667484386113336600461482417714111670673156700453038724876282450986638638514532076909583340775955305494512430930075636292690349994584822124841944401486031490039515464148463447337433317846567882583864551519364304566297103082797457119081525558961427976481893270519520260081521012561443851932050710070598304307868886119786739104840716497268221938500321366667300541667793354177323992668789484245049717836371892329858701567232621103377151142186613052743858443080736832595171627750711173898269771578870150769877867828710144104756535885968704771807664087227927972411946506358031467687282746146029370916297549677786919072479601259303090222410995465365733661934615621790632672426459685534043480036112809529488137977877545513619040852522506970551319151366697404699178187260594188924864717616659488674800072217073578965986907118710395823986533908737355618842237638325088968771331248335741367111164158856572807059561702878692834658308268363476415858037650722203856630712514587278516918851746686781250939160126020755330896303207218510511109094278908097135911327037688555411941436683308453719329947809631570129162609466496325340855441485560796760044639772224210719926147668322437799173749979137020501738691209557087261833608221209602571071143589411097058071218809702337576175039695492394506523254112549702544010423498702379449326042068713028711876933229388476395981527662356305087797290386980605298370470385377341549424120005998309428648867203439944614739568551867642223295395358681153528399439012528601233996901014234891691323848008485332447180249464206162234399440760094022535676848466942248184935343593759777463961481842047119560849679019642912514761825423171102239473529951355307463950992127593414057509188271666349963602043861219060246936983180239788409329897464265670499093887263815461672111780214082186168032718830416513271154458505544882574180639668531144169618933681794348270661205087942581125619758750432831558879827571873408068312462145377739670980043866155401917262599197599627881494311445957198088918096864221938343368971334781788149272125080678552159390416970146427620788901888643505176908987688175250956367468871412958918588304115540772590391928931665512413366343129794039618499806456953738428388770219344082480400784806852173708911704117430781388602718292304273308325029642585294702281999857222337742860129474403446790112559078687910434418406459310928537274477841349695003134148870499520084260861073598318255363337949569267028895242017866123155190666808545730278382966906329705025186555788137125143908701586780066376943997071110827328126757827403836874170119019031601810958985596082009863106001453293398057421910195480983023345000373097223822517790845674238486440034406251179738530685111188360694312270849958690210481267707618449562581470681851654730330986999979666926555644115184814495338438143345589663812451716106053090201791581662445759135019090578278465140455580363453852927218048195590741383434438911984526273538316263863396761780414805339620616072975181681131928679473201487326696824067804839037576859026282712360424102466449050062890936433839419318789544645936585006942646234742349244202968519213528319997430633136722746583330787671953307924816819442933668342633177536224644296314156395901231948874842712346379339286691335278518672271974772525179869424841071246649306698614179844506136721875523695542208816416607857844325637373693684497884858642740557176324280579671505171784737499080330463497641706349629753864850560673384192200628754883860438541238357156237885625678886533867900842470729675570181247697939185152040942326378437011466048989027667716493487733953846544996146712610569507138094897967843257710246634264146599660881305950326287193975343403431815439679009257373362102575495509407340669550644364781936473105998748187220809535500264954457943520802656907118727999994885340182664826838649482375606682055268989484607621705751793297199489305836588682781276089228712863611044923444044706460575170214856388117645294009385224287965934665024109171212024347983069155341210972491303069325442472462644233640603127942137053536303943533541588572093003641993301075032089275188186339464246921359511210748824489692716445779028377630482808518883939671703560626344911348392868293456361091776144918332890525205045072605239331673209718865678873217313147520994341876947819570430086151838852882578437866307397561564569911145817045978082295258275396407829022765168108115615975428314513155055077481631171809486200507009555254408220710885588605164449223082424114779875444074878411532994788779218329765645664066564107078513347401587030233812130893775511786138291391666138877551581048201324802520061639284791656645728465316860416818172338290092092424611060976153098204045454205088477896272229512608869943042050026582760857763883880509869534176194897257736387396903020981929527093187591225435449178597488870376248761969387027320486410692533012487608977112682248995990743194022492610158688463003322527635251244795384917797303702263926938924465996223985232852402251523400610332377776412237004213570979327870408075662448525077353061965594400337032364591502536166824130010989732343360299466540054621011606375578784895349479220222433220158613373479112649165831501673309709061311362277472295073427605537025814096564724820221018107123530789780401538023346499378738610718679532663160873557004469748561465288201314926986533251054833870951952038317371575973179207265169373531826794197873512358516371465802479631932595648592626576826839917885984002100819047105746760296544708573269994979671510361215079080593783031319536359728284671968764502549600819805339681771836759701223254376357304922930111805863033097421670602036607416255228457031275779062653913566937384796463812548068374423356554347657324110822418486973415073175547779878170016347616799355646944990320233748612170690137415851731380449921031588995200299984741887440777328528939435888327486301791812017616716637231160960124435171633036678701947679921109990719812796926629871301276953674971275115173212330115570271069928949250773801324563429244769899379940055887063841983134522747093210849068760850369297690705303261164595726039925957660206637926275747728085516286549450678435403351898134184192533888856388269368503636027997677074733116490758059524697016310974076088605638609936720542460177028883581407664228406767418504546426291328595783943988068478726799884853226113201817546866798604417194052318682012144359552985170683021817101436425642004080133072819329277891401606456823669067075743222462019503055867824856713165427954853402292306182590981653960927844469657145957627690614462698408168385239054010701252576433869226832114138885531002550900879068136436594508731883251549771628324833536989993108053770419384670512030099952427540273096707700470326696322682122404329352199660017987595036297895718627536495628346331634352018385896821542166089638005026475069027139748767055618721424592374014014196292487177086619244587658988293375673258174047504895975435106016045107699300113128925970328955872748176941672596714274817338519566248200014210658539775537115869733247438150406156331104750225384064987361737887377080427728070293100004173573071411688209460640195433991778402422635595025464824142293888074139150248989720725410301987700259798952571443512563263814063620059307636867148530973535234641836082290878085134805588702626660521683812927933673214031119481135964545010962052735911962359612170947578282249945006384820841823660360029968850537873140731607207800135197910118868586235942373391669223209590411644837155916782408806255886013749039727653418509474012240304059432364468636943719180462064015441326140219966923570714476972882976843104588747447144824012703981361944758519366366320840677367581158377489987467695310556164294122340421482683764231409029949174961709744500984639686272392867944949347768854265850235281997413368499703231639063967631308716115398596714945092320932155149235048424747330806490875788258458957966879780460223514583245117180888926135266955575845044654725344698285257909650135937534669752641048718695812498004557720039875976288433488577130619791139175729321502613119576069256225946329468700912311982545467470281542943002503994527651834594049123291834667768128093393166373006458503623796541756134382961914447131821781160801703367240337819024088685923066970817071092581739047692210868055383725162181352112908021147015385682971667737111271641160945121975229719878822700848159721803262320299984949645510233764784568451304899677576698252595935082927545140192140577829963841746493331109216283734309456449479219470290185638650865955089808357566633349331020947637035266159592776251342116522026937930868923664599098845969026903526548631543399813325276482817959057042406893215274709934704776006958959109955984015457668342181872122967362284872902675291302250740492086557012342034276512876968269551559822839137705283401344102844751744359871967708986166786913918883379689674753093828381544591445756642445016980719863169293989065071089778903262170846785578408531423918757779937770676652884049462107377007894570369784799592701395681415752696964050743557062186995458829104554255153070091144281002533828715786602764895019138171832833489383309258690541552626726539442767218648437775721734911325918648430569807815632833315784841251415824420382758976626509835049359517791111870407554409894440890792767016083250273647476780563009429693290106392337086044489531882323831876835869685987790748496625156326528050367764269606436622664465321194405549329141422161687526088786914455089988716977171349464140289198837601992772376643036465262840648677344177569425665973588789026624984953534156719374458892637690738413213473697818355615608325987952875179747015292556445221266345929533924901595765435982591859312586560884128467282660088099419071665147200776916103480782926355202573417726737999523469098771468273398841176466743017487204590301353866557473826786385046776795861529777703119052067231201283233159477946688395690889977143511856283795468080593959675629763293316455496335365339728401496025095817708999943986600544111289719105075238253326398559970784203103579771123214431098338610576861136858747900735575139263831932604776842526695132509649955761302383721023460115540969013877239862433386804423576730477079638887567386279230323390561101317361143116453551994440941546920957927772754650259223568720950609057084285607825796159991317364234910375149448492851887380142050433190460471445365999116692903106134501779292365493925044574692605900791334561522192398519109466526141142901746032124810339973938220457170760519010755609835752747646185768230538932776979899895607340935994264194959212030471835133642007667017561149542818703077405563706753207763945193089872766233642921888176263618594374358787809929450792744599234975994153072066095416131878749956297515080765165595731973235337736842813199202831619258437657040977385764856077660826594864574920216203255996190842275402335169637632490063680455918374579238847823418734637860250855320641935930292249094280410132842170881187495903231664275061023597593607132857003598993762999112529203563911007801978804657880064774369836075287023624092217620351237645745444076384619633939491980758290742948914267608639350014449550687257946582621099126839800977610348391588265751863195586198786014087498441749140135649703886561407462497832538982862342148202226284263439694257786320752425612660245560989892050892198758440454664904221404113366286926947343591583754229998906211658847969624302109144825749042167379117949386198689398814375321793879123748966897049953072982513805524212014912665877146263617279511088330190248617211857025339925204757765649580033489217294888104229352242644518920490507017104345790555693263065615628002182810372102189046684416019732803707750086382919819344549092220113717439357463977659933854267899149514064829762453983989963185578762494013668329033483147990304280274383449622059812467507320272711896820005499383642155262989537675119002636130205102143480713546438725258525023798376063828504325007749377233114450449102971280340312544567551936605870706084046690847759162975500254958870035294413305944895339673786506178198609618367478501456914633459003680035863957415263944588696989391423107051856907750514530536722456491097119965907786500242843297951905792914581133751053288239303714481799144120897724886933932444384085331170072935022208889803234579594117535477958044909289399410216777073603252119865150722457737806972206330106489688156659745308969707418608848871735814974601182430223298023027682861160231799724511588496079593590406322450291657140559449547563782051571950689688911496738605491475255542789540300108937144994970689750842644707581797264646169726004831263158355896482506208933505280965731818955016271487446293288438879339121940736636313409292833306816425211827205806902701921409244589136233713700127180652324187168307721152774687897591763949319359561812898433395068166042307487746179820393584433249492471755529832702921919987906394302136424108416607566981080439278654118533834028528296305921388409403178696774633257438358665522133305170582620949291819284413514186633484279890694987935007998664820186395604648490296029083840771878145799497718708774398569857192773043949826002847525888440671692001468003173919701086172023937863697409347166964828897789471272675118955419688005348898492529563413209069932460665393395196468667960955890093930652076439082727896475097089825036438397197964653460439394175584458264406666120308125919291162939043038330868810378259045775142523953107555234185799817051381926030149249147995138161560853419191358621624484321637026323548138862135246899493039745983332833758355272931975238995218873519201565060789964667150060475854630744724691351117053246950143928517055372338374346902930547765068939444260459611091283665548404969086950648593014406021620739038285920988843514366806808741189347652014124875027528481020351710124146534401740829758214365986403124136498180366304710127916565971916768976830725784134848148519320077829483247570799091450241301517118560798445181807440336714867548459755229314793797184150259195797935645034896682959496897282018781094368736724255675606146222211023197712466053835865859301754664165491735225544212119639277924135018180915424888781847445160742095608162245903615280443587404520998082910276176366643498998769910384990115868021542824995608430365259943975953764848998963547013112686707960628482357112668619386552427941532374903871899001555643920875017336630370663618682036763391578566921641734697187804312330372440723360402023632898713364144692619081176430420205697587824519209345133722461934313969497796590331618936035271385144340930992034102793219013344554971880565149834073220739290462503302773524560011048827471542048425479464252352780586834561480442277747403357522239617486880792939703761814075680259149875392649791754915485846366521090939131467979804220975899062067580064418590903107227517068643915054877373370469020539795442607451433384443513901664988939535098275446425458923167392716112337827836501376865009952306304327835241034810069465462592808268868035389752709918699213191573081539684716037747025781979153234340767824635936375051615973109141815020287743864895177591325396281646024103226423288912390760705577070511993255186650830967463548209835103202555456032426696923308597905027565775520680216896579142177330954601253879482352556684986257214829300123494947697711113167444365132649395131348907791639126253324340529647212068577478814606417892463391020043427720896421777071164508275331583888031241145084427578887336643763753743123309146948298846836181490716669843804143638910096630842629256516354245658740518017651736708068547410050167040971393440956770638952218574204802303528285973425144728742792407156467638273769490510178779789352123606795219864220194696948046771908845340699800073385207291849054946787327849642322903958123464442785788278043191171417074929623864915209737037502455358297285055573257968181408142518672396619751316004017745190514772203710789232169693875597927754715148622338187186962835972612051818394819465943701473525251056103113710246380280578898576200151151124840884509680095081180006185624717269245710924593194578523539787895330441473984413256172443163883102071089989150972956051754670564480501593698312855266007523754125413122918658356446470708894529656017442567896263979064921039930889279750382954915723775063849707657313767295493794480440959822672249146459764895366595039243998613549689652334005924949872734086755236782294955773594755611064286470341594975042791782680070959633379525782191806456195965483750809028609597969098832126690435661901922349905711971046638245926929356301437992858630545785081372454070512279991929897052629593640253565170676105676790737565608334105597436543338735388394672261064147268139237229467134806586119242096839874141688567509754483130051474193496317769144065149757500875855711027108000137774862202048883190238038485727345999198953117546477449041146045794161040337434738472038867013021518006040929432739383317080215780461021016586147431792284895087819481169030068459297008686469527388844577219988297378565182819108708815955397102629467930142935705478360972134638825794786376281331415397707780245124046065181363098308228166305502483273170657341021391246020682521092913512219292007810131923735007981748644011684392838404647239892441093454007170947688016144118459154558666264218071899772699024020433609691883565708163480919326876208156393860982845497475963338254376257824428952190911231024789741608830206225914180918251180391227250452176821937918139314992764500940109706270824203333868357217236399287377839217874382959389462692789853547281292760837081095778733000578958787710968783766080232197409204929405153345644153517109841689812715326950678375216491223193643367825816066013205178696666720877619542783084278014728926694156595204172184544643114118099210533255361727909763338587174243336262653727094396747297517077379397748490697992998264808732908768304876279564654897693833011448024770808832260886737697661597193492626851812147694766449371397087972624339102465817233143958728427904146774354378361999449709913333316189460913309550310501010120320782899186073748920573748424237441877786869034987498108453025509778542770316192302063614668936697139835894699527786018400365360226384350710479559049110047918413238524771687920617340307649051778913126210317508348007946212395218257850821780071084070993350292892255007960909351446066548733404235111184667975160485286670121495296012856796220190178933631498232445596682576593739233194058829543622632378404330579820503776679200343952020785582734623308085675766086957349889169675545805981919450886353032714953940660375671071934164642454093131547580258482403871367592076133771240469355958552603028080202174069556837146860127241893359121781360975224611055773657400583688574353670189143901074786945969609321013032792629783837247576140116107137875427774588293777427326900949736746594312141972116071742084584567560380056501791555256357660492179309851544870320950252733414458707478214791979206359054305902907844549216323774774928572647291691743664245608693493251292466029692347481266175388054848494543144482367570967712774407618707953289871173504552156912485526039664048219694850778393393637526072816002155887867336690884598495936507454582234210977995132391763552139777975709607905927420827346153408912507836083559871551963264855394173663256525346373724227418580003604010811053538286351365024691329364888353857236701132006504184670737111651391073488400892146695871524944403485678966306271107857563707529743051205284044821559748701734805500521779213231560222383596490747434969999536183745478269158738026028219848985758635490756953192287624367654348726931447524612798725424071939395441108108435185384811473577559607516785149516401650845400885651690408470322410960227304427467295344047825013102175367632457816485135373924714418881055353365110065167881699421328153341007570333418258720469330016111104367148717530583496363138233971126824980937403413226324259262999340269954914238598347343985299149052236106889221936097587190743065996352391242141218203338691233307347158046955157181931315291105632384515471735361011133817208101225586706661515335367945574457790419229966972423571700621690509274703525572873015195107403610227196802980510510099038896425646892818542449104593907295408869989740595159568698232351336560592397130551852928775323030001916756928445573288953792730536688020406396555530015971456345549235776725585441186075293186225111039754189316890960797521816803383256388078755015776348536211999869663737148137811038509070475823611553415594518977408054033361434417215975317861693686049747336377531319674163240636817992143117194849219295200937458751667549220857246273214926675366883995310806245490921717602001656358926180775814278852963963188087981310344321563311496777749767365558109721196797477806682257059505775792515142756687678013348390831500605892024874024597964844967014485305375173646701534413333308196240475305988628471392178205888799197823805457214818681060821042843766853043532397303168566649224835205780135713381761640391098968139277801852011438638398264752204198785014375388119888395256159657356772469251140646651877977290010929683857277043891465250146003870177422039772003361230166825676708001016999065216404722434715120705582008581385571685865021720332036349446622459321041474909310968600170301968679872829051640093465762960417774248241808865707256629312163916004507684374644523675700437466509166519994469586899357859983479872424781295480410333087089151299140804465851666562228591170331126533839307642202513393231042670558618623627506274320677478705513579616705580636396533769646761127171233129202182095803753060767659598010931427737296255709700573296114379940989738790893917185412870627060594693010165977958347086901325446078343892939485196466595856517557185813627022675159820197804137200173240562724089537192227224176578839352458321370640701389273174052549108894574629011643268025831191920835424790505984116078843677795996219304145580575730094299447320868938449420557426793441274220710421764933625736564476886286675773219894840769714031722537772789587190682600625783978831733815450581366768791100872155373548497862483238864181819144493258903754917870604195316663489136730605929729957972258685340378817966721716096561492208215931312175322416310831136582463742606526230510924084217856781541400501923161557790357289959471020046044841105886064921965383772338468244814145761588812621790457993937143850147765953667187991190759586645969517881975160262820583278828726720715841381386972215982627327050713515365752783682553065605353283008207772500433578835793482363945551019937152141033434456778625639674171571080968167814110664838270314294384355981523600837641520733543450654302112415166055132477851706125489444909048227520612244092125640002814908992905372784344454568326200579790179130923996698855669183341894972362900018146728537967062698714222564597650108589926837859079480431050246477977471687053246542972377147947479221469315632572740240594650193155732623715935527915097149206532179644560535859447953627192144771563863337424822539120436778609826926826621835008170335405451104376077761929663615463922727464505578414196713555696971364878887415482861615125689932119618455258499759472920310597797509375483596022622719754174594660392731191432142591025431472890103168239867833658532177040740648588350202096363784954776418335044368048803025249218384393366928220822099975594539120707008361140453059964233179376874779974724382430474519990755101827757634762361960319101601000825567613567610266747966704455478041500318300537013154256180859557580336168103763776972326734993397677344839761117325127698299957457610706262336855676895818228242785181737852135230344675978567420819112755175525038679577217584203510177709795345480135096448711917532448565975172197495865383116060364577831907206454191723505883343048877050234038013061101716830983626007820508087968865531791228594714594493342237804734014191324946391754474947147171612112862257338544149260664023368681495361454925285853268580116407535391767916106064148072984303102739824264922049610062260191360196014201532254262644583671056356217099276057847826579341354395613042969504078790241145313495399929378312418311222876641710477752798100403897691711692119598967960083079877649132423963099713164677842347546366295842238343032715604074877478002376879647954838103646234135682886301493969615573540804348880884392657959375640166337369655778459242875273099253094055076210914193711719815756454591860150177417291648626219901807831153450407730128571434680801038952010957494310328717631075753035272827804805092187660561785502371065656266913324374817424080750480444549718976727509824084620575325887359299056913568603482145879706421088812813946492648200505182343427603248280000329584890784929785610908469092244280718511420173729969553261944023492692934669874192358322354772464478613364767439540115913999356116256911064444355161437500762142624059799756047333726326647653843055520946156545816844146374156550616410959038508397656529692022824326552534667030402798901208380689986716240272225678686931806851911579886260367395563503388968597751097409724268216059376449628252549308625325763891629917530168577184499422667473857446960803992004316845524704685470708656974406559391568452667314684482349321429723635658033275169780844267252984769547937541475883559926446346739386607977743897089775825631503881938166399067807211868806504485733266229490896891014543088963589226415041137034492866537945319435683492518662494557651483933657678837017375190769673373034835352763790070974547302701405323213571539460461886158125034101623928070616550802853973642409793961991868821667376702050984032269849280472507323341427262654018772626931098429833074155061988413736825154263022983058831262650550940632067126537639882096516785137172352123446806381684137198108952948732340979707754225373855914872499326447324773646928248485445056600411277637016486269184508029748109919029448368851677195085752560674208553861779053244228519698009713490049961864920025096005389697842210255412149033996732883511037879613743918794027731243043069644377494712244847967028398659416429149035015768374551469189835898658466566077854159018743496138956103499216757648813476841438037479495099095817346255640307748021978850872744907062795882452645611579782344684599010614013138997645786474520168301447767424103482663821964843178729013988050232738400717691816433937442722268452799988076954071896445597096463995032928906579252422622216661529742211699124092520816068680641865856227021066760759595256622344657143819133674829976652926206388107763169678382986594736312636844091204005895618781894188322520822660195573746934504272593832723700109495452047798375280939146308957765823237046877097924695374325036967320691768586607041876711724475146239859636172378217993978151477949283854666981509768520377612526459864979265357832597087975240377971540536533708421462719977919874728205979130275348584855182711772581178283010249756020643618627570234427317397752200294684172172618072598555381715681272019730473751873354388842367069330830607130715594767447317876690545534130013408405734014901950622089044896229339024890039346153639335474336652905793329360470264968375958517162590497884198200962485124771484496286940522387215973646854357236978814159770325942628735655324755857005075937146872124952658655056562482743585931113869365279962979865487513087258530590629517502841872190775609899534872173772347504927756286733389307856778698880482312865286397491013193186838940541416548801860963483670259995480790966120856093799639999944694628603391009564951491122607919819994157613930123168417032734082887015386265706844803675102292411398016908943420162459448510123171930820147459139577954060976338662657868620134277086165646104616625258791177388762704689677770025884860052741109194259581679674987120868328322669700084401506102591128036353807417476481680308362198204201488674678658834221723882971025842150901640650949660126402132708406979153234779363765623229267329806596807414860177739379416386249462415328148732690552706845647290559191556590962178209406666791195303063028380617136908402187011034447125569837794470894011053947275078106865301204301056640772525608280927876036712511700473931637818777831858226740240543250389717112018715527961896173858242562783195087931030479908624824605744738131511260989316649217569754170683637783726134072761223059863947298719918558198811416954599284378669084113873621489911424885026745032592621426118674265343750289557659396990101796313755684763407261253226060722868676296276518372861827455422480167292577794672591098710395431218218923991831629725751646647174032862546992328465188945924977950647490556358062436608206950099705351850706386111736809993330678882850362047146599249819680899460718933204564863321570478732600129820282528913884654831213692345332471035464209240900488129913822835531770095086701613463624933328366700636985161336974857437288493278623066190916290834174650169065622406411617482726437359275601731432682996059804779356123878877928710071401344069527580490635734691486227818097979221282499931583732071123944202440786605710742972142390665485570106882911656687310029322931754946865371923832049140649979251188463487332999441645132685532422218534431313118802167183120353505493302013968905718378869995122655471255355744919865653526619112633690249833682096651758409483389919045330991731618612986558287375744484665965300600008255786750764536237576333477612110830039713549659157215982653941248688886846926328015054655025459311389394206713658834465220644920979055521705740640799833561250051093044402349887256367976344817632407508272599370292755657925075330228725183483405047960740474249772155692851587401258006638777859508589186418969092517420188520268489342535514438168315358563427525592969498490366878172184270327597011925121933719307965851581976939917735873788158005057624776561452773336332479213640901947265900894722370553388245015514682306824878473422928997459885087787571417252721975279495993182110909048661113427296112940861061665295077335945205148250342976731224722703217370477081915066318315683434578211260749172109747266443633356249642587780458298663686387079767424821282441618002401667791016827428616901035983969369653394133416136939915519906608050523711818593896974980449782904247539807374376710211533823627068535261596568698339875530704837633941546712666709476891599589532150021789192197059710044825676660836051352553646623243592248316629262069893825944270728333823597305213354503237724156348210303686619054123882670138769633683459937896972337640771866573952779742054873054565208707413349347441758407123686578707718264836374259081485365397065266313490570350834811091063277594114200194179640827147642311282082380562035805114753705990808180084119084436791432641126261619041609968523590973374641217900045486590319060952746155759972332264020705311452546022845643750046590204375783661385430901747368585502938691487606691328625267462084466303121111041953038274546820047885079737267524794066670174533718138244587420050878077367052018076968649945259420988390474164326151361937133223599164054172593511204109053769513318243683841894099294894412527253752291408193921973786812833237217838516796963893161358873782345844256093537882723500279849575993728671504238826726249060938989622211539576252679829254584632399831673714052514992794566681705026577682617149812302380915277584218912178187605632118247105410265242912424821535487970816681798957158370760646784875912732069103419615152741655680984372202905549044278528723046889868252532422426852582178254262856744055651125328257451863893851656462379505516767578729115378732143991603818949251592475390751172004179324997077269664956061110930622914494135710904477172672508772847845098211138556831794881355166102827091609846315357542624359875866687501804234024657990201702744307233427543414794561241396272529594736657359735879024316129425662834585598799850583407939742527041882793086683873909150567077453014868045163265160111394725839672773767831220679624816479295371503177103219106722770161841181749814547620260365901877700294701675515647577053595490143625295073108728343321283181564198903761330092401940002286016500338785743823920474087443208434005036241441937524456040349742284055394084812973386894516276538205790285891403765487084468612982064515364413953677727653748824683687526755536876353556924596914657721101501666677132502464108383940611603897480586960177666134612411415168255738128854704078147777460921408781750118894386343112365339788896786032803400401739145844706811814516382739905374838472654886579884573925003646146771687062336452686978116318709460982118474427606891580146950226964454839116831092584343527187696277029721138025890596258750088931869814997198309882690305102350057823542608628445571072859075324075026352832442444480913149841202050159932288164420040131463308200503195381127309059496328787164460595956191580796048596064238694783568657503681724354682037057298654222232477159151454065771952525155674289299732034074592097214891794546009697055193877702642499387352195470830325893127964219909459795321241917911765503356059220524635422386074588916461692516191877918716839539725244576593698611687716465769676385326737522773381809126401452660081727779670865237265907269655821400736445252422678430570460248658754245880999635892649911157026835343170213168908319573506580813370112956211319920101400782339990402970796950600880119088880626597795288022798298593585475497903638212195900621765415961392694260187248650818694383441628960780281209118923302936983442726791015484224398036708037749777221859922933754367963959171917097044078270748578113649907127915348787695356277958834150066594129793801275656046652537879012140924671036995096004049384340204992645830206057503187935083309602542463682518736737846799926767753497276436646085729963268583914460926245679049847609791688497156502220608972229390389047136740027619719345759678012531553920969186821433404602504954101517857820257365799379712144370416363042965743045461749277769445756903376119531291398841514957960529026738044028341089662288226218364252445908787328210071858675079489066030043172312971834322193019520318920554044993304484788401976409221156225113501978504317119121350063489531680134477636501868675994042643978763895808104283504133002922151334305108668327081991281341307333860579127598866096560967725656656523236805500914635423447545385801565414288918031057336021926866780159877447255287467098766338713694123583621660037890591798906659028006385430616155673173752079853355687631948052283556705975642459034635569966308664501846854395628859058078043128051064846997276779358730143152164834647017801547237888083241423168784105213487819988005301849406084457930737797687948435042832224717453950572447420254183257979247084384743102189895874221710339618565881336177328342333938572242104136653972607648959837491422383713306834422561701965259566491142878113080270457061107754572817404670992364311727316172819524481011465215457809830823348917678316711372140851431895980578991170970986458210988028443598366613133507750695740011933470396818785162667975211500476638846553224665448650360771424464860320824535573741501875098719875102793325327622125186254729555679072035288404569118379614666588149487301327566821276563644924816473628567086477725969341003589817995631661414338527612908448939241919752201287860564997910643709126694697146826609128465129144675001048868357188853995550765075624662780434641184354429261118225550397800471216053260597783775496893759594726750071990823678297998482200733900024271162407793729516976542331116163072543129392969426147402483148616736805302017466588259835527641337504545579614506435128065804394936733187305638788993843423525713987604823707317946842224515093896145240966250992084787845688090755792069312739541223663833564918115702263410568521402535913712421799570540320126713745597649532834669381358145728708763159536929544442886160467865472183046762326003960867060124633362223813560539404381640060304465191457361499132988099157051859068805289078424299894038881478385802155472947324883269352066689841662218661486268799907592385502098447315538329851352193183061020242249365002808051956899400304327293340977945077636241901315072648698140411164472693805006321819393787567749916299235487478285225236585490101908663841017607322350180906555511995991328957131139184835329132741932154072107846249838889804468014890241494779676965624521517833120093793357661165156114243591154555804322391784503776484967526434242702582823937857893366992993485199160978787332010561538813718434536083503417648849162499825213754862222962425843417046175381214410869388648234858180855420592207757029786146843340539608448448848825149994520572781303168216527651450898346895892468894165928003247047325360547717467018931863401872427534734638827496247673035312686678332466286707027604092077335484299842047774297081543836032522109160635032562419903634226328455745788753907282697097953777441125261123191250132334980616432066366521276993763665825786163735522329599590185216849616031504357031805143646908094767015436701858832728401631823871503477389079833708205263346165653911507967691169389988777913135505370841112575924223810630158475534957095360282832687603367218382272888768978181202405598785677870697301280433743292630009323936605739677941794965537616765889605460360346693407289948546983075273862158629177536711446667525849721814513080318341132354991080506518099193237678369025159170066327910857046109424562489434370226868183868353950271692020798311932307085364323258685597419286568664246535747911758722383667056978550366158005852642790850429171189932041681661213807905073753091554550163214501320626055555315755190435321513594028042356916996311258869258287997302359235551310858370402030694407904799616939408818617598692958988312614103398546177859835089418627944984034483434493323477559727334490718492799836205440720932628006625379777760377803300105818523583909225495150195262957028887691489720947103582500273537054752213164486780146392834418694319872660003317726869838570003339619803041104471571553373941213494130079925796555660257951468300420060979582129730534040897073050759472891425242336188566472808020757312303250189502894565533149809797183879734350543625211876746305614098103930499083236093018439638953863847469324586677196785306090647114246323160425745407916101720095003408202624029242084068394102465408716045289876505174268740279598882095983304599737556547035651671352736596371614576711816868897864539671641405500256566335706415685301977246024706382964679398725340442523871757964671152566284874814493040626864682893199820624358792150221214589654741233334905933141275325319133307726643574034677694988964274303934247260837572294856254036222343934199565869090755697837884513477003198038140700708757248858338095841580923830516947356068728398126715257743238046182266241930227613652072989159570160975717901090298495087832010755741538641625460414050945013997418688535485432347252644884553152164564854190426055931562511515515552510176532408744814457065174347474245922759633819410212928846975938030966500613272965849514661598870609273539547597666598534790270061734325988119226036699172217675285187596158956643788531596798122857625145732773061778136921561356469799796814034943063176776836661414822519666237609378384100089992096372022141413655634197865909178208166107037726132747751003498233797882958605145839276582727154716908561901676422569137810601982867985417946276460829602715560932848428338440189491580360855698888053957887268258080998283605548182234828847627045676347467025587178903589459597901426999140996768986617792848317509723518457971263059961726231765660474082311722965439021236463176367407964035691065112835958793583790565575811074032610094436671889869877659719693794381861117298679163498417166883790173542727532413582040249172289196750937693460727344243550034686436382253514497609782885449867582941409096462997639023125854369470830825081407221409883024881902307112616334024813916683429815920609949206714901127715283859121613321650546134655077264668482591612323316634869139423206858881598478215624835041147196825894613488303861951483358142139123865681355198460326280656819828368322899707768648774323449427487415040222439275755588572736001439556940029371762261588895114032788789339427559929226501639979868420193956590925536932858539192210808585604140279205733476818698182536502528337339017663180482537399205663039380557676709343541423802927219883741246039239527262099343738671660179153612102816692121874787497621988854948037050944356321510910051371839094958553131926515724400651230602506687906074051620742932737414325217931518918405753178961459187700809432229696013203892825072331124627384076529061819246162526498884735772540158551697468672724309128405622105377214942337536011878580033654929606368340662536020191981605575932572943147963849797587104887252236055839824098138072993258268625142373283665564586962532735969211464678559246046027568583020779733494330054381218729139057443802920658034948968329556713720375679813200621852715813024661148531666479107843290151432262551655774052996498884089326332835611522473044640590097083885544428244788844322521397010132150990508594671952305822761751998030729272680228621671043187134334968600119676573791989103084710702624120070407321118648711570465075114281852981889708562800755386213282061274769737347080482561032108679166174960226807424360816589471834785201913520112301363031795316004240504210081306717253629634568081916933706894323030465470252177548523653599160975369693263356052464870133958645692803548208267268782926233612614761062637598589856610343064135127740894889642036616909213547234521131506185501087495114461248967119324610844520837702448026152793460210417815440216402111575362676586820984217497084218545602064409814936888345409755756935489507159900057692512736556173433189616480009881631794756734958287971794618320952528353691155717431434757764375311820112195518169374610697235687672278947349713393197268888973752363282469685746883558001070299265606522516457723270236529983869573973474647575549338639105120245536395210301542011413898296695983857482541683691117948472426796959664788568634332136593075748905928172148910647330135730512939587857204989184413292975992195853596802403841769057264200100818212135937224613778863129362887208505397912568096531939260370245424032362279835800627813886395072930448035727096368860342306462095902652126106475954721514548214743077615529661773616654381005498733918832814826348698904106381954552495177063548135602274398723540789739853953184015602681446578399631666017288339625354727754939085039586945310692116884540703089724092059507010730369607718979977335899118881446099725127443901364812914930699769315983373624733809572244341494221872951285320756200554281659325140341161148183031815238989988066479986786598804838396994061506067115598800089995944660884247300460840132416129584452134674639520326297527705986151289031804321554721486799294362065307610493187362348767507716866556054188966894097003465636455761874700307589664852775740751939476617848457083820574185793970444242588812145436078162711875173110114611952825677406195555974976123776053004180949397897600011666864945636819011355148751825898628440171815958640941755801959568909845089644471645544817320161280416086757399831365921619010841664627554030256337512037440931820594167909034086661134745230661069521189895772679686335634238112016681914894820562277619791923420136804442702284738690585354486705692305667251827256136494823723844067626666044845107728869667068841135574404306942869385638220926909053155524249355590840568555250678877546666991176655124861556885120587421846325059953850532440775915701873937979446496163064533717430146915007987793497812230562964202270497331630794764322717158799260219326678527802409959568952269506978478074816207367183146889655954842619195944784451206468392630955766239569510173071012408132247117758386499254754537141975561069458709485495088941446339823209923489493594214137779241896102892518605377929658800935205324215920853269230884629944350693557908632116342733699233919122804023881194132627849900226068125667940238283885246013318732234896087254420962413427396787507354109439931350748831622884918727693439774267555778110846412929868523654242545225994146111649740837948492732433256798460348450564831597707401011091372778286449496407763126303931223406999481105196560374868303054958101662208108253373881088100089853429279167506454709048242829088839554031529780180364162837018731033229981366111514147971169277130775682824736687397834408971818136473223248966065480550042238094804230115720101574700371469374979820286696238588185251090133360789950828712223798350910818371985124015867791349307831713334501789447294483989956579063882212942413158789559404993323069076203007081327611128534787303361485641799765143067663008536165851795276010413600084072937338738233211855104057126595216062320377559195438534802655546583942962888587028230655906364360505903979502141963671818240567232908427114550410704980776333879906752381318501328969371572518996640173063436118201942100433811848101406933446586906940927821423559327596311466377091757791027092265615226476572912431800668631271367920859678844573573326551888652510305970439329158900538470730603436907943922552450467671748744460347946902522785769775785950477939142565882251297482289798319705696398299123405884937943187884886158314442311572851387955480890040105878342245927958716178759121780589210691961711565727435557426780638649399183410521656385263623786783287084469718165748487821731737702058525379565891626239478227217306159081134826657187483949813942126841017523159701254523527606771504325350490996951718210394367100131174438849793929346636019422953806530983102469484187384992122971697360931866138675204931405871937278465406389567120249786113075839587234765160314609188719575637446334769179781361697484439682462845288501299701000026107773692166293807722580498950483451758655273574108461595429664713419099725277127318890678891052351328358377900360592056245108499940731985913822760533808912117370468374394287490964834456037934634606347484245731645953242410773178177330132776983945824715354903332408505196009391474520756717026337730208535697722506942874406487162331552144609884929372737455149038561782355788722207526357485903494311114671327257917196952892622425352487823253653264437545772595519547605104545346075217109400372504420589011496630214422299710696534603449418159500835336564678201706705822584941815063580143414661722123856633788827934760397015493449859553419542248227745494741938214073118338912369159800629053999102743666569930352418356813358703477747606273483566652858197665680279975322164351443350405855603091834947043273667322418377787677257431323864220806291818379514396630291181556894179359910976831113011494122466543297528149972040582009697675651153483584495125370287069580320256718985060771299375473837721611340388157704798443753063737198876899194671726143546682461728945355307835358034030958358832736993503147276768891505317861945845787945753693622870027369094581599116177560242208001097598190562643454025178585418439645641342940550177787316463793444280831611437889162270658146745022992209586122553573718653260674675197971502738337039730095721615225647160959690780371277451420909318109286580097732311243427063193158178619703260003438213791064091558667742608321894567461664805667910250587308371611449985121564966233577997054768715854912110656663199642993229776228738277377984774294706768625649848041658605406696717376419530472463987273428337857911083326083624831311415723942968393830181532917412408301334797275783839649608880452684050390508668715378238949401337010363043404838200680160947370531664162399322814833998648898913082423784839810269579316084637266762417136769370920737324141717054473480715589885285816311850082331554654164384526094184602662539419570139259119590679293522288144370578167426313244875686626616788804518903403234459774287196653761838515185177502168046946295183728438802223141664388560117335698267380891903553641355138623279246198456995494413486804854007725460158711072665786177069352061817954878637864247939637240294601647083563062777289483891685957928901687238085923018296951751608659901953006833167869614458850178090770514130211376387809284478769949751367396070758233602809815826570649583219318544514358071592409838231678941091908036748354415885610010123347140408483342866222667843011525831383085289100977955263373466435086083172927732841962931976328928556268041804273832805941365319183205957255293835411909977142478627580764882541369559247399639065880166773718189858437925559316116787345678452284316622770608525348853883371917066254596662135951980851162042307677417052698804217450185880036622337683170769713306944249248924910779845412232020253713614624635914963369068990419793025793442961728899233830791174038341665475074752693678296903446363751963374532835430424286649694043655709225466070793772234799497901306180113531727313196333391078989490444728411874042083169300910398397630740667255639506559450356743632983269867009141100246758894926402118006941136536627964424383257287954619391048822864073878299545402493402565048566237582796152547037964986161978915698610268075471546684764161082376095693161680517857595964570755775231264055330860220684391335656804683795255188610487246294825123744669921851182449946737908344310212964219156779236487384752433245431450945815234348473686218520116511593115113073268818402941979058886215902543583467097475306775372712120721632495811440778049490897007832394199200340468422444960286153044840402576785447569619665008709798177292953506924925599715513456660789467533355971535998721438450863377693486085205848604752186306674660571578450497422087394224338156773561807428690906503403059405650283518700091370051923231476844022166466279502629706536193284221586938272256659040923814672579576000695551290403023893979006422873533377352625694119018186417561581970489436274248496094506940500717865086833768485162774365742371103080317918851269839814428997379169601749778540085762179648626994422056826653882501891951614091703521936391630531317071584442111000575178418771127474136029016854111669795246185398123156643068580258733557999778912331005800643100507870947394294447151722527559873897920282332607790471188512680610753990311114768015338575555082142343434093257358459926923031636965435356872719570480080534996603969257122264422358496893831276828700695528634124653165967760818728105257249683069833843089155469421742697798684328892050502955073851293095570160441928404085814652048131487629587959456938163758869981211336407013515036108953629009460660892698099900783210585600934734919152130020189702411069276820751541751472635647663584745153721147280985427495845255040959441078645661721319318601526485635544679924547567249213342422830453923083720310941847306508885217125269134736472665740524952407775583438255480480626618687188368724807822565027804671610436866165056730597057413081428009089811032365187756296531104509319828108558121709715787866348169563399545554396869155037467617100803376026187886855516448946614431908564865453008474227461230738257430309627211281059665214391117666045083102829596035290276022653280339049620813107735944431145708103708371521428211614635505451594885104739875889204570606154754946116816758354245381846836136244160535353686810250895337901554116762904284323670624890194826857619315385568215491250519865368521578474337560350235992469767005522320943143711974562045434926713134817463073968663613995872164343485189424928701749345082450253786594101128334713303000079883443536248412265083226549824717219768538115507457795488250604206427735271436978924785655294990736388439967020478093333928064465367261538667227513950594559806817944757075725523851476485444368131414520755279150127552083671523428603133351998503830495833873703636964174447053542471543025161066630549607242487472559900976356010240625228625818404644537009502722492819497687522840596649144906744405322039204091199127084593883565609181067395003761760650282415448459309716191544135245586696204780793702531207351418998993247020448774039422941102855101797194237722440710109271443996901446200420175045054357630386573226174861927080703143917774338215610105399913482174646198102789454198453196342065577074750521998386223444917634954378591968879649420599072526820205626944753930010632657782759736846398841349650463996541374055291818796786272676593163013008897473896635829676937461786329211232263869762753312106625771439573471076822751239852641472947894338866150823985906062559130097725872364513142501164980523874067743346535530265085226416052702512647426101373046480119831066578371939342355759494471625319491647880336814407020975686095242342163986073926042852518199850417219116619468566843437763417404717598947522698352487229371534739475578978972947796893800791663465644584030314213482590264145368005909075949614131293248711190932730702306891837238279526361796224116968107346353958905749486877966286560587527915953020890096633471685549264766866676082225716738302944582248376987717996169893596212702872202196117772514984482281292064648468879440246499953389465263312519147487608993073100731869658676389707268923151339810216224370981847676773435352431127985764829355649112291022454550716218048973139208297470127930535923879044940350010355060981411077224614801484269792812040693943170200150714449719593740782809538425774563929118456082310721070963961600408124291312145026262340664734525868118841263130740501257654770976163115770696028980950690643494626929246201261216984106043572199540200548416316015318468683483809767161301001104034795397336713234150498020380541494636058429236637211298986242207701315655567227500426113168346574254827538814300881863986948289755822920049842198056329447227587305587452480331136484162164310140000437584559597147291107666369256587633328563738854717226821682488487656902811482578344399817549951777663319445376005176571004991935088575976902553138633672593013163345733363915092676653738801599034994947552763009560158581822899990702955327623269103082559364012715234727990158447762107473158776430962662250531111623426814690046903504982334889012821516054389405726138576413327443061147300880795682705341574880119520629491577008189620350995474727163761311814991568343094201313060877381383747912383479197199007541826872628159909118181006555851192620473562930008439117193327782473396177075963913164130891267880543726328607712523844949776218231559463407250102271609354027053280030883780361003308750426065101583517775545734719606864264192951655135322631587664437684959499647404820542682998646880199195088565291919349817708358999861722037185263169169595666159992805948742635484832681586111973138395134978834912163392478705897474861884703091513557242815700854605989674065987218490644788195477381484437848946935093364730122136329747765157354348764738976115306750153122735611992825552123043558337261529079071445315203227117875805090041144748766341920501380873454154370328214618415012262571131432670294790022373815521777394636988344069933904964441139398670291875191855843456482344105812712624423080706802542382130605353654007757040576396765556739522939985142218018374301173434541269879172671600735658648549213800092468807525077418332343907465463562667224268599302572772117806706473631866290263566027531877986461979851675461326398989017354683675207603079405397226965350938249517370961646796800911048586699505524094008398313960285204834011597885994351040285210409653204605424294282686866485947299455856808607929132179708153807432800571846311870643798010186150578982618826376636969093527687696913578682143408765348602202282242795252528223581846754161005394554802691793669859399511221996852444466507935714624593149084036572058651045541672197395065308953049149629492485605024222412664225609308967769370564474985513365331811590983659735477199524613232012559410791088371072204717678439068849611130764928915901907759705441072653299805673207652299411151122018740645241045427137472824338043771589145282797543389300634948970111259303011676053159326263077936581380240160712618457081534685232198950256397354071810638117486975744728672366697198129370974191835685976897960632870192926923997210012646208778475965159451540839456042091812225441326817102363850050353384118140616726859398440437228916478901098196232524507850361724149833326704471694467490539702788555339633819430474457986307238596879562253053497435851496755487087583833159703903835450050064407201333336881005031142020411899043868054281654403045156284576612917215688743393038981384689845507667138068338940180591475804495638221421442076033113539446357860488320882040858675986845515097497889450579474264202943295704918809440530125626056792096217646241675740133009064670891596126812321112177829509148464306419451533960753073102378980550642870944382472968609167004151174938199825018413843596456749955140466150883916402573748242258244838918892596721395326434589599690832973916120153660241528099077579929718042799535774213135971941256682402603751418844289279250701158931934122708534230120433888673183226183021987791430060992542792656374503101124885901725960304509774479989339339509725866164559539792408314559539052174558555243802879398119823895462775705528628859602804654644161128846025537276232955857283719270596682350761240192755394108677957900878834778040085659623310731293349516785784674978127105627364866165567406773009707308848197229916986687279282453207810263350250436807996629642295676892984991422923810185441076697260417613387177410746382706663406668044040116571799471526899603549319932266562936088164981707030478489490754567876670184575082560756044009757071219605111097374622646136391686463922396237817331164741767532801721772926515527848480027809113366715239488151044468726592598056036312826037910333156550637906973367728951150737601998696353779122274554542151325513651466353616883767199701667335150135968560526123767593951190296782870640293544185396907541186293331073714702526745374228374147480364046723798237385899740309698605842786767673490349625074365799937593763204450226724290468289597858213667424974585864014545245977754720960677091324496503754407770798848887428864970155560215159281283094848294710975762274050732894140278329244448692040832441317168327272352992326418662111561782596543883530012706584370802994743851301967643299332276497259588552746908862545526727736312544902502401657451880832495859009620253069690705816118159373979367759608607962761550523031511795773780137576212763069377884077690303052428417622457715423162845370781153658926401841944850113916187561258603235924712836737938395070806432592154718391592883909721154593402302815906136721902382499626834489854429685172063239277177776534455037221865822592068733216267759059203709258145264469915322337240682346406729520632914464284436769014410815241767638926411615571454967584477044975225482104780518922662958435229753248121899031268168827056919878389320736177172317986691206881208265168448047421163238346190603466695445024687432928760076082843208806391665144191723278068375978123121209730565603760032657397165741228868391908317064967111115250602188675495202380348709620222377208548572436685380291628281491472443982452237940812428879050853797405437752659838709373832868569485973482342336416537087947345213584401940392248068752255014865432307757862072229487910096391234250985668755544090241369211264059859539712707550702016893449249984727792083384595749792272916260929600607398009114822701724655273935869794858622929494309816917294738954482235195141959499954628610481083600695220154338385149181563616013435617074335630750355638965716036240844551175007674645742655080668362162030850962224737927206415891099535493875516605869703907791872533494219686934047769874189185072399456219018436717581164122325006338215107530159664416594294529438905634173535255958090758761968885303420038238006402754901388235224798367747987311068189030661583569295924599967997484775194988967366211055401642465987520223369882397460118504373626860620473489770317466193571760340485988364302952250657503204284341290791777462931545517825263867489344129955448279416220528516895877321253875749341399827253068444854690247678908014307697914804173671122931035600050739447773238566322983056270770698649478077947332066969681402028105545867421689444461719965192859745650286703572183555768453077061184535811471269312022040474472483860877012066708274602217684334002664984708044449016216624045726671771996127492874729137881912296758894506518334156753853052684194178198928922457917872474780669182352757403642670823766304446080794693264509889161187231651513912967302343506726957892940311272619197336760563248772018965540531293106154336616165774802101114459020144011717384978268883292376701841437461212981882160206368652044277500846264743854519518859916661727412873466605605422508289642220731959684583537350868712158852313711004370624667343209168478968950521694605111381248445986820380420501130670026090000676942134378791820649746970019363577799120778545709429669955117439146289168258642144051499133220115637396965320621191060695807166688511316475986552268678553135476935824902950182591722996950734593705165947526024996390295990801625647025476548362038834509756781696539806366789781928519716641163310238951426353356582195471990279127049276652690990818983230204901747752204657680595909516009409960701345348080935948027285204860949790950571406558544442350509153666392128389328538905758723245341324524573057719481721121379557216109899521791414747618780855499792988085677184315967756786848029289209723286022526674656090406466161148617240511060050979469745856589908639133673773635807180909987494458665116660780429577408069741529115762482281551008932364025141081341485146937535400906738032768141181954128166543792431728081934973417606370930689055485577892134344943968383201031958521053649958017824487002295616043545245068315601128655720241289221897040172747725453993949214037962694597617257154339558016728774044632944104194124834548454904551926045381955577795773346418030126860491515246037575214438727143127318057252300052194138681588504199509646859505465238942153700150937348716930835473942952801467064857192596119217120746800333182220796204874492953140462235676227240716458379920979832163818252262167252964152144670059818236237841046309747760706270712881940407406689646705577597193941079756887619600372174647514531878191983403878344659047164354783574409571712159553488620594600124978839401422884724390464741868706526362465151031402271993081801970357036857598034052225229048156710311675259055147803694741759440808835088928798713167074468319676073689464705029599917290502914308042209945448178632619087756976762138772333782573480648404917617560916828950906333140847904897276520574249579741677425555186909413480193670628845629766670276493373146237921904850917948339196118306418376042563451357452383559359455270386701055161983172858180783538244822149992209933870015923047367479368067659707538088488350309337603400418953788829009955619844660677259872943132733464921184696042630556760984894754966946645907021933502417794844782620469035239237432986455840389310880415803596523173489709960133355290507543245822935391992899323913022939939682409810539814155990117761993228804439165801631818329430202312370053516061105210197251403657530027781264511282901233341738630366747899229659966852754241587988776308093586504119661054292553161310304057031790963891962101152346394795382112400616982952506100083445673457146982047412768359826604977742758362849859234912036066141296442573575626088647637822169039316102773907712611663329215696513691806682565563466471888229275457233702198894976891083092404940762007849750194507469762064871895584192932631619217635105927742604278661259978756269566517994972491943471225386144220002866191349808973636369843611415446443927484227348771559889888005539310279035327713577447265613652581733602687065526354827762492864697327821258110190164926087958736041911625867419428016659110451416697970046092757620876535198487687448267040688507949411250359679955986610267872430421917537464858186235227147381226942922359428377328334857540699257758324902906067871757802527749128353675996027693590418700889750969791229696823368766323509456055768293975098075478850067275812635051506169373556296891682117157333733326068138745701530036309228017484333479411209946337346425577050003595574190320498630376264130530788045937873407324996220360414691755271517600021303627712341992321075687387923167323652653260872049715787056061402054862268929232350991556123111092044692226194453785049637257042041911392836633488090003165171896624239149627428274837044290740616943916888189161541014685009781437262699784283876198574042761408509503375661067260741630689931575040002734143828996501779501479114572125087492507283357443843739716794986336061847422211616611149675380497986565112503105102125495158005080451731467363709831713372431152707845641118791757721789958965002882853346970148151283772991613086328277470325957777062169090162747948961567629351901966509514817427014038935766258082131507859294591680647557500734754717172575923592574083818298876683473501229535752386330064549992446485030445589294332837044133786695414458324946856819005847099622992866369533547055455566527990628377004811743883586501217455563891221085106835997866295126836794999022077582874922944151042740684350594620514932885545353572673985612019487752422930862429957648107493444969031727497786847788768359262698555821122297572572977487083332612704869262435579565712524646339900809296834973955086480021058720627555917689114525312149546344066397151899768023744049640931259340641900367074470473768150144211655248456822055065122663995920592213560510651008863831421590124047160037010503670207746920354682150907299150728958543167248217020512220267601979152310647354539674612395171472969126607437539076192761806217046405127703155869210469913584518231570545577012695429399817909333904743952677939944889559959469982842540317502101999956457262050283179541507564411243532522466811193610822840547127689395869761950682613072707939520739192379651743139800030604088553754085708172489574564911403306028013694928246223321308362264281113641093238113524372242544282352627518828257431823461975100621549548213536157794883465323849906677981098132431207275103600793920533391422265323653763394674742139477759206214893508781191398125879376796663740425345956279724438711214274818739942208589245365338702173405237062700025924195980947761701961526776840298425749644494784556382172610277904245595601602552806503900896481962431788700176328673649803941828391686792067608658310770748621946109507243914327622935258849010288033314787802604480144796488165363222791859404003107326252608159725390555985414686111282539026355938892807164435784045985150038698433863336695251584614439067987245353862105669595792561530960352699945931838561739867545913895161337920258672860327479060707826095889602088497487281803535382655509316696949531187911169695211077711156653363372482910364431590185730119330931541710007154404892604631831926964582871829324757143439914650963533847964817305961245799211570736559638717628163757762954687678011821889693844543859503965581317581138011725815211841920372638678217155431062990625719643022861947573628968697655389566857015982295374798446758199821555491481914099115798921192080082276205257138483644698194781293370865062060410553723887954647665340786166370278199071296075103332586177546459697445676633862328384820903957214548940622167935401476683984066929633125325745408935362416222460984661103093729333317105034075871711955739484496603523882799792044248528986875475812151030122892464575801600353199105427097180414092618323717635875497156029922994303748613202085717111337918818970517659782755745872708331356812969916242322712849479526116586115252033839003266952111447325247364378709750255263021928606550817781667184041624245771888028648844177379473136588626579578217415267193187840352670276943967281575088413161177809052167633494704116636872933104628475229703922040198081721388172780422543305412205303105814581432461241838873824298650204716437663679477232863126013849553599254121394080252977367721399396770533505761430387174809034836228469097732619096930041006528496409928284389182708775348057315924909832865360086497573439898226187205774440553083626644793465246713734578836064432923122276990187801306393490306928803837461244465791353637770169391413629246028727246382875531261164609842499555148467322618052349735520784333750341054045469110228039579806229920987016271733795640438719058915588773929877390661743145844486543103307722754690884484956873741847875870528688842329502838572735972026720670644874072026955188845394952397306934744832039043571640963600835209197141505558074944191716153573275734941776399162941379830537784469688881857750285333810053029597483482743209379927400288367326339263356410743598349435359725150022006528896566065689797920296641093221450343957191291755002849300245753030289538839918035912964435717894125758563074571248598581408975242496348178712956709941302887404742442802451262230445328714310306244260056483847721322822461049658735139215991413988321466821962763902161315688550530563160448300428475326966027544283276221188911765399770398683633505316527502652594276694961486908600686896598586850153177348223220974799832988198783451708271764587090368783337692280035189764888298024069300548354082092038042057731783193664868703827642917248780536677094334645311379934119380123975976815828482578404316315663813117104861708013094401409710691439306563542460496163958866333077935535123426139109731030351292371739440871985317024867716324011439135043667060291351219887787391250536787339746642455556716455926292553413635728883448568930917802699471937737467809303931564356100582144209545698112204009117111720676239956931085288079469444047536236792627388459847273876244711083006825175967485749918835598502206943224592247445151619140945297136672796006836235982796509474849170280180191966553119139993026488430174079365246163219150529520698872915016639484129884426285163192666434416240953171682725438338295961086429137825753070647651338635913751651110775714442810272995567934303099045215882468644136903090304209670285932862722979793575655934278954733408243990389629136775117424754439871910885784245490062612885770986000747484370648676246177427609867357471942647746278928467255223536165076615258533802218924013986870666619196070329669953338329375512955634987031381803777285549875404911597577550963045010793710454176766225784334136679407099834460913082043834502810450407351830775958150389821157475901727351241224112690580846590476547154979734200826684143322867751266512687624346808150384660489340067044074917182111786732770777165381242813965980118525779830748576005513059412483366488560379529753724663803939099232069684590801367610840911476407472947688577418096305927078567173567042950237220776406472064675453757826028590221706105448128781280265321526779489004613299821968680285279512015200692734808510009792537101377263027879951423086613047827806535125616697926292671898724069423457556545237809359388307069017473494210199750507893153402435252791154361736679913473341598944893548030817897439973631775122898258436179959870575185928277274941686870281556552672398176108380629012817096024978430440833262825867870769616972557006251576654967803925289862381609481641123527080824019967457910424948157789244533555834049576390535483357315782030203016126453353629045363343149578578203882293884509796649944521559446996698939840851682251163534200808893454486894492496268750029313519500828231774038567189026245170397796638878307726954935380440640992301067384512241248148956557441528643552231390991541996048129919771738961043659461969828218874062951029769248633921917081913612878062937327145623574308159099986294670511785859753938527763667130650876248224235220991432686791905509814170103169287912280610004227401494821176783875457225062154587177550804989109039611977094326472089524167603435681985827466344440525270758315529533100338512233707795750556462989832797708115317414011989430365063386396571750608299862566670019621611015466933372599134638182161190168946575586265447559041907614467733067632849404810716195319366381070815891084310205311468818877894204564822139833115508979998125638429184087009230954015939076638767941621159856215073515504880965580182239242661509320675522231217541722422786907183468777087883441127922715554668574167038436117347795892686053935405063482199509446022896583260519076048925545306951340938168634201762647896484213565594483965700690226194613230255917606617568070568847956334867788998156642635505470335423636404043240637256095852720660464283210521786586612966499617708189467408339750421852636780293977304164237658398479858675297692713444323606566000369793746216334316340271917509257097165419744860115785445428917544683012166375697708491257970288943828857143313341229023835485729875924848312506492765402356466295618446363441013210727232261889076117504134438101418846201961534931359073163560275993156925918471610275461132781820477206530213479041116294552253380422279092906457255045473874975958295104744694927905956921103374127145824056439792565473957912734239789534228080360261456565524943733903016723589826343186763575111892243137543158367616631782310299211098267928768817634508033876186081810568180271023297867712774190881589904583871105557955864334795495239961387652908061844122088908766894208793893870130032373062012306946599263558546628428412585255102550973366447988303400689171958683430406573188494874778496834372251667513073773516573630261700887758347138763776658179460118076033041432583150745612585873914819162500343386394540953260940032264368195108903576671003042421266675746408347184321410092568368483121636148046594287758075723359626213581133009744046676356069053705837059430514189922430713744050005239137341312731732674150095234809148758682870613058260619366335409348582362900040025894501630658325584905458186822240693861816415987849473395011073865621475533308184851478609787483101187606601242747321945700901739591224067585613107287195616683977489083402699939987504957083096868959511179236020482758706548907578113612575247961471519468048391246031401013710667553131514430299979666346799401996682797250617633472640692519294309447156065888002727980729110179340170199733393776436104259707132729765713402746547515515831332152178282186651832234184533552847708350058374447343018528295735350613983229242038488724222990404074731472195550493167856684731362615983234110846436194339399710256713826513182880854614300673450761162185223661317759653884807034595541764430347151935270744695357555609132040622530528706495061375315599885273793357252194598044356725227095103054035204544055459856367297979044027048727540444781967606696391004009320096142555687012151574761275374433822551409997197280046872225445446609002138725422276671990344276505254252491669030398553033067045028383752726962712141751555827535861864393385156723026101343662812351682378485343177186357091249199164405586326934359199459601323128708685279986292720604845327630708481861705183760294745678283455034881085808557045104466235018969890833761591149851264768079372052817149939795662636650031035595971962777176080113847670821439465528749265549704362754811132784911673275560061108759264296742729235384683329446172683409993578005545513074145128805325873908353881353416068325358555024447807862190833044589446964896607979719637760723392186382148067971313800047704609786814219879880635985507058166232308527739292489040832461068993673579102457043121213704685663927670404630521098085660149616918729900531202738098343539072791360384518005994161438599006899698549089042429645910676754564184844728997334225087898110961410150122919806208850203698201928578999752796861446727854122147991393324446302580222121635709055231041190128637277171411877542278929197466954546072254752041638380130562635942269758649642597930586688364302540981858777902110792058291602711523000931005129209613294812903515774001450203641484997177598334695052555441112969935854038864333408751758200436521927882983867142704731094548105188715210326776882308595255885062711147903891696161950818973541569491745207334311416125924307538570509394822966721089187089966103805977263985156948861733584710582852906009512186317989943153553098959733070934091418056824972339057509048981318813056911668462401088024440204769580636992854524032123668469363225537538110870385728976944310134770673695085657394922820147415179446022510626423453145370147133165254610510152501766487559927884480180006078007586823425163906256312661175981604712561564584519744474691071928699343075957699033191464469349531166353824765262574449582164192346319746969029555584168505033064601812739375948958852377087119703780428797707178904905276882805026107384973771620351880876353829476813142059941665267926411661079347492202401419767285241421604835294603072981811471912793933562681529161657494024777028822060488112702265797192314522136130355058377591771954293611015719891089075730223217405690004648971826486932074586367714975197339388542548191876004198301405740726314908676592540183904098685133214648156377787497083292959681774936193837589856139466580922695492972105577605066567519853799795921435912266059956500675796881918815161963409381735402805590166190699084766995763030494303440920730506076496037449957178980432657842373530097270058194288524670636709531723887722466132139886684913298550050244317586641651865267276970908202008901193497486403035173389821276210210249337935940950821930750894412534676574657647956274732106555799459567700800996477637244918849646139332029623676574852951239635757888333283759196940596407872349801835808018669997190558985631600662619019948351085480477119821948792082260025521267074978083395771570480980805761816316864945362138320997775304876405899897200924780904914459811519243559587209406957654748304661534703702899652874868817723967509451493875498188645499524093771589727065376851494449342697899902377012201523863699076209186549751028693186618688315935298109697194097328803286054545829330893988432147331739396955983153895043470103570410766206198061801185630708220440704819782034616222910694317161716373608335705542366270647912755674848919053254695079254339224933881647815548549591724584121884494008337087243681059964458166492065726973412656267231282851437501903784816200111890649494527777997680437440456002616606366688394688290858861365144733667976778541312311785346293614541209555835071469188309853234568588855649731669474490411851969426163740720944876207643527918431690950396352865158499843275983124833743682496772245362525665230595565512805081127334354369820002850333294668441459340019597707756612842669577000552226102376007036121773707447386794957511289774676698192106530187781682194126172824528426561249375352761840655503395427744176828293056759612501304672592581046934657585647125496556278047781642743479787371276965880532654839392809296034428423174154229698318930160083853956973953393092279326029946587001138295066118093952370251674361397815248423624436740451570175294230673482974995126075780202032492642864917822399688276430729454642374245207609279007235382272294362342712376731203007183797270356534495674171402246592974532015861179627946690703718221330809274633494462354406945065463374622444939809308496664520015527846325109253354643537713050768388768915186329744770273280256062178105369490996851566505695649342113098457730584587096660961766052807231749231178332878289890335829909826724875153667854916491724050886118754085022828184564479319078361471894183877098097032474061139989296697035522416516852201959766323770303277127331606496678746083729366388425815594241814068641246184432576336561564232260732142284457594344273601607818287349076949954990232416512168902482659675321548226246001966525481335146857501627733484479843990567357565941995387457472438604360788603390177550528423470987050513463098686396050032359583994673939193368561041161516427945886500822136141707381322412279206713009009070922177292574651329395681956824055560340711746280259676113253007393834677951371513072720127541638221970601375735135369381408019224872085417432714333839808500643547661803552902625006668736387403068328239290608306794693940887944612943171918886212002905296758453512152089261323742159106781589624655812208736779873920776861543288221303858254068555581904529214717720828794189704858787290992738806413331140628794759258838562977797246532546714388792671394966626800660612810887642315743711099990574138523925723473524370914127264900015039080998445119360731356149554714145898639375461757803362684017628954661387211791088933853416948167883497627098436255527660147573682753770847287179972214974249484661718780660047246705783645388766862377806485584156913172907103755194181451849287993381798406809466831145413650315526132374136373012329395972287468465099762575518477603256230705468947053842792851840950262777423536290653687029516365202805137721613953900103600357496003560574235211212185577380522238269624266247836573834899290543492744747118629620832742261864775090309597724759869512407634567363100877693359661239238534260534633770204060463901118283623329717660110268305987911951421756778654591481578017231174752439137323658580978604721764542371806068157738859383017478074769910929212136293197633760802678797478419894298411007642539185268399734913325432978016337315749303843330034815105735018002402759318009138643280014763095594300561445252817927030513326998814599084758338332922973163931824888068975489203389736862905631390153604856974680602441389350392189267685147350393545795286003811782111772958155248608671955954485115283446642094448541850862032817322228138550601021879368644900092442773271273698498316362248751255325461856785080532450411504808487127777062609475881484025275725267767238377507106026079845961293286080639411825962222242741106083841759643548944133518213629798741255559005771853480318288895883098557641605170203275983793659766369990711402314609696169939377452945522516885742058890458930649291198174403399269080297144640263195607250392241079311264747602428869283103547116893642733426515877396292254521352586054499297545984042540575167623814427853002985638539172354119445014766038278729575368416819255968753165433502504388759608960054716607654320977642306456034205133523379003820449946926426859982002952658848253649434366268162687057125463402260785784194408122363316896390978411723237986561163182841636077324446463823661688009073269468896766520285514660030380997474151413454945733212572523754485437802585304956787219061080726955144814132038207909148453474211709641642947801089691289984354669841443078500209375543105756691155414009327202340420751721239489463971867893695655627334509767860304045390144637441324383675570797532183654666202283617773494562570413813419591363717518985707435529419636943982012376085040517330200479846108684024617890913802675207253081549227440817015980174195942388835076899196944265689288226162968271268976598663504964686218428144320165329905481105399503003995202041210227051314705012511480447743170474517879435211804402360473254140242838846844094803758497369460788342330502020112002179713171308974635184757483253517561414522355119089666598215681856436398214401039474463677777992246284758954438167617740679543407627333707540747867669673539645345999082253256472720822762429433551766902902549577718983000193648015516342564929905279595038300340684882057447106322602707452026011353197407331046768442514210200623659668560907922358870551063440762044234219794153927044276787345841760802223898241879516362892057254166650320602731406461551569216252703401161613356353417171893489602397478883969441895496865325430975872273807102241458488721241122854662458686263678710803659862228688542510818015776487495837236413018153056786017192338955312932657250956981880753094487184680209243805813713277283023249401403098559577708061487836931344165979565095459287557398921654859344541007305412730414922626997176160113802264976516955451552838566958240054847988800922935918353574271076638792515645957448080084667653691918311040543468504388040440117787461421130373037024752429027516804826503443921306304200267387900662614781586812260650054185696884118512679978183306522723688962480820579903192647387472225396354866847001074732495527435650381549605094375180800396264740126663143284952482337218491589137370222216996705710759264488760507733958995909100899298693386139715551095834803055616144704596887491495118299303103724315801193985211164914111178698200004897321355181967840695612316599256522907302695120561883244510958904067182349341182455485832250331398729345726860865477357452757138966908352939243792987534504773956201336852778605687752914629391283335107007177641068982508699508157253472663796945735209609039611741069636911318995293394441893258519181938947560838659392254498960990292164245710879597187904620803267662482324662931625345026941642090186118373498913653230994077230048470112048657006420877273738776239213577452900231421947728390276623821693032262728194848281570354661534920263239369558573656991804577463708042638550549632685221978389999921089048786262293002047835426259537111905958214965385822210034952686048326727554873121740356054108099728958820917568729061110293808486643744079184220360459071408804376126593454824944847592315081593492835304952603869891495515686390006147125224650838616838842533612370445953176386312454500526762104278078932755840121493508066298828508001539893542539303026025594132920288953336437764070164253930860267623065011928458388031080063449294396455803499120775889022721154716406626781342570792976988573648046231399858035784843804168646930857277452019361630591537939715281702005130530246453984847498032266660233098898923571144203819208773120475482949801977646309142173402452263478839811366344644844016567804780084507830946222936235571374058740301832479510908659997297418673910927696191085260527603032706682145996052546868142006210984826828298949205089665239532079519008238418932867543639703738292620540737604821552035528761771189313239908701539927706464269491755460816629969583615964404037123171610766340987460438317530753491248747383358549001868914394704445517228030610600329692488264623984753721343913713821857012770910092311586124848939401868982926445383979293098963760175248921455396994998818590114010116071426825144101479170893250227319629180792301827333031618691334664955543090396911312004913616735172278445646646464651855952543957304853950516139335419770337249446020495915974361558337627477040391885672324187418345231990397381053148989301520651782998102160334257910032999054295613101123158364167216459759056358776103414225995109482642697864985929092357742469082848622381904455834438488625372375833825804435984533967140412976413939066938136852395292846909036269736036592857593059035444422489016158970592376953150134883680653639023300591185615134366988574213141036493791620321642721241185698160838685328189185290551463991432233733217780419349434258771102489431861681472440414176985921978146733197856032784600329127975051715178866025946861190589328381271730029520067126840047873502429256536098260918611160501186187964830888051387695985520194996346140892673058506076051871309038909327735901179399688088169295931044120641549803391433509218890425373712636116668572047203204952873185004822446589307255734051830157389247622466831144804807228557930234227782256654689202355691093511900951574164301901619946515136995255474100112058399186489383694678321522487223164589367812603621507633444516809951075370191550550936594399646937902922359598962241055462933741848923232656072805160738955091620255403510410819105522042142561637779941089464438851529583519234614673137280089696727390913500531213581382251916382269171488183915623305400866215750436756624802624652825779684940632893968603403722328469795612590055852989364288546451360618362444375904703405506540272337417250535932996146203718332449723051825787538324294710424370691083727929983992478193802964169756487891334066672210718556106705934285084594833675870857784310433586605585337968090457715939687956134533989917566613267120227597213730233366318833668979863480501954460435390165481102811311175788969736104095373784637482943975232792938824543812065933475314104380329308906579323000171814226832596804859511705379823425902787942172301131953068288733506593583033876018357325146586648871021702108939681063050498384550426873521103527953567799128487066854173986828191610948833381222576954879508815296879598405213103426202864662597051203639178251182451765948282524776789011634761325742124576521022489937385243771219546768238917575926760646322542849809768008727357658218962126046221283208444371040487243231458901788264938524735114465843093769257827757896058945038682811001873704941262753716578579777595726966814385632645898820327960131200034472617359706200497910460846979637698164836680145014889162943217134980836762701576276853443897412354069404873568401844598135728871265111646505745658702563664964024964472978628956090392225628326269492493699717105462246370552929134062133347853840525400332197189787472103060329862112145982668548580774601589181726400253934197246588750971033412458601502251044234063845370685868805049410694183997706369219311293627847144320855330445131890094002674652002403312654896770344490448026780643347060410170834322514028067262238017740751280854017875723759788444400652887725170516005810668776719285293766673596671468750873408401802207387736049494482121209403237447289078064369314942548347444324787181604864749232349065698308621185596848003748181881035953533296829040314381001054035442059583186420223032221372671007904216628021742847843954227998460781272059092333690752921837460377431691968350168288384504384075342053872987508857590942430210529286332560626840063928491723945968041681713687651712729256618760209919328432441313815978177656938448757916791520760519415108825101517843128216605616385185125397296698761820129368592783024340607782307240158601574606682744170474074718896162279813416709119343241766443171992897355719386254518396631301276453090028984187593744911548185515287271266200639701825704697946267289094525846189137754743529853214645135554734341791806691813873760625808708233434793720783211197025353559955683184784746306935625446096754590529838999620360084490365103508458447276881877801751577534647176476226358011640152459809535673650709420788916558581056776960896939882534021991487750506545132307710656103505576382750805140347470060630235206585942448690904692668463018212864697864126536074357041300331833764854054917565885158524900152454154616080001372127992497358059333932809525551285308402202637471375879728018394259276295307841626366090276832657044515025004127007061038462025719335045279028783493738015716564994145682502551259358085458590879306523471014257661983996356025860385581629233039082792542537560084311421677303678649134371018941429389124238209822510546892751150118200024580585015339711685986717657036140553465771463107849167035389851837551587407232504278690928856120158773055940023408395306792241055573604534906464567791965198958768911621757384263007281448662244534211596143961659258094049642221220440995944893968885862579717205015685616799055601107233369994578501660886833498647723545502906297029566956514700395873118190949549707232002957858630948282316500657554131684104428293514232457473624146381491010958420715284577645084297716430018228671459863407209774486691641381460231491115490442618778329081740483363564143769364851484234644758430218904249066433331774508709628113948204730112776743738612801915377773623111139422373014116840315360745263474195517804522474936663902749663976925116344310077003367180173437123887826312983281444951875557337832762183638797159421193136618469975035462660788767471316098759325337648753283120721530148387867612415489612105666674521369161537722904419721849831018979465773631695820531142077277079849678468247291644096969707882066933346335722693230586726082400687465114701049351224348425430837213089234866416928074155495869531339896757419688054750245300338269538611227845358164364121444912735640281703334642002347869440484288918891215377434829522422059020104086088889281392441044223581638532359459503353733540620593622357769595119788780620076701307147674245076580124805143942536204604352348612389807043818268486485288108355479920455274526587969360091536614155929458509185572083897311545688120695333035404179777884769439528054092687427824832253249641763610050224409672715602337287706299709252421805392186193155458909507396895287777820717655698047699560979716910822433489113265484606306624652894422189698761328006617354296431511912028413593245786213231384045757119691659670698879721482440512296320732223515106998261424546675229364817497825326400197002839237313502728614292556584053296015005524666257092250978733119277371867287773649721370980181469542333618234752348550497000095120298235883722854164163552971816858034980840800873731573984323071186335744611893550732288158759244615581581367267038878158325363211599273379980589310503164051113946892933421946131426801718986860775203108482373295262369146567286823684582613843653780523938456789802802233306484631511023518199781419114381123182351547735433794319098460856198504992754901763265540728813350549673157615919862720817404271240033356245563292094558268892912538074068764725887911757752694082588926789751310435232892925147064818065077525530573722771372137807391235582733107972338665339847793977819395520496458146461659464439290551206478507344339912480196541577707355696121528617234880469691145988181845364264142235964239183496193114862892145880462769205784812418759462974943074411764662078656015541358223036012207679223929417267406273954227465306876028086443533122987032894256654303890545040386838906167109230357156153542887750111128834588043307611919561932631752180575448785974450020420238734989355111489559198687575090315068187080131219188543795406566780372986287276233909502281265123763038326421944391595465396558214937646914038640628145456236882381520138978540670578461384351564614407620670363898473950882171127384277151683250294103799459722538227405385976886256950270598733412379457462431606645596210336967800789342131017960866674815039330942654630621044663270537211056742022924965321522676197803417250825920693441824781968599725073496815642432017701873033729616750683148287758409305885535758718670714473465132306164527747624807577134927662249841910619696905427563578574951985861352190866267192331637182951803996250165716026841083633153095256415136017837621565429973330480241407586349267844967293724028383909662303317388556905702435743018277856078040630327708812730300805817056695228908221476901597224399613369700153825113310774923915636938988103863053878999206610053920691848221796237611440527938420034320526233416722280775847957379016263971537282755186079979201164065067618709848435103716399020188606974294379957939191131885803804776365068335461723861749296814010191936150462630764634490729990449856695242555889080669867805159691908426629369582250843203983030464935751588513178322289469164035776731226358223100406264561724241658758244319423565601621914807541172109975023749130902268054738220883620029869554959752030050490676376864612064648957256104834780684841963214826033821679268309448523209297926170667928885260122341458791877670239843949981638691834774793891088646079230195515745880702813976001898924887796067480100271077277801569526736580558551721469544045592759347617812684423876045027879355975997263692263906482820419826254384965582318049150950780075291784273027295261129131338117957516805990489526661660601596284234288607637129522005613104733273782690865789036714306935161713891159981457860447139236357710441088100323200527638137478331027036289443286909400017464584957709646780813401275098172678645216851548004858565608493072085158503686144708283794236175332408660218201148124720462254289514777892000842189757993842136160791691801707406573661047827974402692977135592941818007571873388488632506258857654808069765277154813976384009691738363910174568181025478201038755247344876254482066957853323768244461043738729987473610169437655675091879939928571723532022193471029283955599203497669670398464048832172394299100535088535358043585724044360032540468308332792155606725554380899911570419412556739048986649237449520154179274948294567917834852528909374855323902778330235051713187724739678223011256728107600517211514277027908450398925768367127374255929873663805930499547685713485961050315865055421228386365212182590370076808574791686086670667720588083307080564371918079166206967898537032921906858502657492445453385555344205955616106552433896789378962146339487535700330649543476293689856131485063251248263819357439171427658561676878425176266381087804634155138472587859397146994640455581103576967563139846643288103397199230845346892894658809027584883623415497760379411389919362715382254553980236361496115174535841645288501095406780143878027035180413155034925244118615879191035022062895510003749475638640454688405770823064847062796340862110207279548909535751492584607142645459624813874823881793339977101296446030511918146078534778134577818119245905567662598205571185573834156581669794997744068728366339064721620217035480352602177705727978226038688474522512021184363145121973356949018947681402775042851598007836717775638980444151339749225970802579465935770106275807508547140137110517474381531862023056650513170936414334236583970374137711698186501825775819815853931691125206934854534485698239330987087906972457120236102922647114037221272282931240808831940985127622445684580735514579162831368950472082105418031764378628991857156571663697928482303300783693148467055673579008598718478524405602040425806036357531342407610381108272368022892897766595911267805773363673779300285324366703068014525092181623209150189831005398693828465838992947776625813757806385851035757974085977764414907090402489378353228543431203901843662584178198863585310891108878809374956009161368281511129906852289811540275700603792261949427539140103443297511968937615105553609042092331644921224520356324449191411199051185898331894816004515735218968074838258534708471781375775126660808110883129140231199037674491620539208914818887065642625393882426233759158309454699787666005689892066796750997126978213799960577080969256401174252470620436774607245156999017291095428662850795515924380257528626204652001552015352438659502246695144756186772405730022171933828868544111054668619748030708945153867044044974941572439411138792270282802579185320627316994687769076276730103530684099594805212707354769601907322838198644502058576946524263870432472343488280425604665625757950679728383668327821756406579232368256854072218517696322121768614849652275720664247318212790705625249267756618151201067677154364282381031850662708246073542062155328634150026995171010059529989782314548522287967752898383891664914524021360227281333721223701338857200978490188248262113892496243472114842312075867851261700894497449785961391919569959355872260748661427021402962780332375717710423695764490679780422448641235576129428044364757033477355397499378587605699748063192641372526639783905167173709882410470430623608483002721770095068136894145783028335698892462774257358758196684676324786416454996265112014913957231185205427780251105887437959439286003706187675773470159674426931345658260917220010558489842237864031256936024933667703081894740285981173730650777327436810191075671167191757316151035787279237679472941875490747372581166567356164816578423749278408306611776790772850112923763001361825459615419547152119111400164711126805144133612777594303318236995344385870072952968436927903568358539452339201650619209574103381881128374546804546892112256128175644584737854798502387090430728533829262976556459456781947439191626503850208722532355638842315550778464662308806330594032238172634269757856816491633604555384023724981273511105184099644410683911986984456244972560374573300498012408369202990182132021000517953610979045835939387216836495389224473586588654701665936124167445484229563288128709745136380071605253403657879933074221036838255888913076392211131890380029889486527311707980319441692593670849804312178943630959316443783316867895946957391033938149778146676846826622502878766378184826637911894933267988150830693740839498438990718620684078504060756392721058108413413910715417809133597630466368649519142675516668742323713929958190126882984176065515362145618962460423911800748198308099729063849097332512377392251641626243495854152961587834237019125940382802313574562471528991679348786693400018277752052665080120849151031143144072567725873401289863357408067375985185325779768253046733753681267618617136258175931094898911022390097216817804299331208719272070220723084307218747776826292041430907678103000208171591624067825339158802980536641751909775604857650483005843735228670208918762176687973212676423980310002153763810913568699217626282577115707753833174745618148830427986461821101584062064105792140344238064827417956780606325172403536826508423069178654665118522538301547760771901857779376474768705160026899522082987279722842245789134007660172765817466829073091579895191740621730773814920256167944063376189565239664710065444913761554497502779140617209874952525471133127830841304162922728250686647356253967098125477531064231194381166096127561905570496550846775351802364860291474668059002934338579832330606134412311123171569870698808092627921000853481636636193621743832676397565299406464611413359855699218353581912571342021286752435607818896101935247309133254097423715332691654307926151166853947993377111557788864323740938906965462349293114870101578404696839618863793655345563378267433477974341617153519232392770419923603447413551821979909748814365984028205417163943215372445703449618533659213278537599458533051712807241578311613910402969907129576704551298863237233204148529385909996824308178113807802318913305587368467388622604139721405860034548869118095231079714440751701543900335636648304979135526252529966818940572738650748872693773646978408558238223826767667512369802067528628936019731436364326346360067997204510259894199452163895105269032190179998228926909596776658359095618386742016049520437611744343075891919982898995427964908857593081301991353787080041611771200639171045638721213801243545232356089002197207195945587295243391518422218492108292783554062738905012033945544154390752000062825970996167519522236298464372918527383873277331670398486143744578223868553372365813651901334138439807611573453897303810976055565384394121173472583786211342290562058698505498237608961288045907065060620996517986103426031839510730655322222695403021037938096823820843706043372039074381870895004793543850884626886840081416662439123547594293967285915226606412899743415453176249773921477689174167315023552394804972614538071616032709271144820284909603247533765555058130012614430487072713735774250919685945830254198833888404885887212254722753732023991744450472678362213915018473217344584463566986464922973081432563872291398464875390548946045900986655642655210530905851773809037269724872779029006669318304916241062609253754308353164979894457893089007343324379180148943257783595024067680283421084541670975430492066654708120517876658333142109843149669450492861349975674730247800517891157752364095787381798932260672008425039744581389784793544345844600950060391959048121745546858040771140525859507193780746169984046010436487900292566178507347165580831543704890994273874497202981719135456078570719205217442131868083041365235640259355427702939842753339041679952770533428066263010798633598069449747371944192171485324969895694012609621521252765387106715792937604016369997166984449325539430508153638178591228625483086990327201436917724234933668048982312029690083970605330223916275762076946235391715325762410188215495247644483246948771810184166972418897367409004463102517468261634949088818677792111718537216378324186237714886327917113016132289996375285994609504529880694279070941151149327408891680407276921364114811995744780253359264303297177142013715296398838232852890040623205485364177606376148371916339197446703211026093701201122069376748736712914010074141948693337150221975144798447211469021770289470000847622848442415752708231406694520329942139753371190944301648305575638696696279480497028685957807491889629678354619064858955294683154370728897633521455774540046450971525792526516098965288994705427332170050852159779335768965421071076806964882278807607990027461553744402057721463917841518728915634418362416466872837013238725851395526402940078874858400511652805145417868372359985435626774383290854525966284531892457882640350387687023327485561396349680227600315870362817472079614537240773887202307864272535353403259933998339387472993685201537904992307122363288413414810338744480439157937568554910265518432650902855507893758325799358845675097696128135369858202157454226876173414956951560410220999537420506962594815700892523328174650661793462908476382719504841451838674186267501094016379575438018487715110565043527630224643065443908982917036475890234630862974890688930515900307194792712084292001666843400285016982620408864606420350283774775926242778743725146912301591374647447112411055515335537485056097151291669455689753753845606472271950173976231284691438266745956998889604000211145181152054785546694813668697834777530853709767760590851918582515763866259999583727157947149308583784907312551664408780893947511271811801817161398322633190098164371946429793609080029172516280634176925490268252700967512293413828403261857536719216925237914391434006593902821554183180352062862729225769742100527988912937592064118649444568630428793923123669801367100184235320561503809993503840049329299149287018486732740916422183212341401723829640693031108216512231097408422710896742510849746474619286556111505484975902691472381383323290717416632039258720613057547861622700017098818845182764084098286742581196142273874659674226570986299425578692441756134352750112150265543768991822087042139032451382175912737111880313625549058780431311347039565949136423923039828183024608987148686393103965263517277773784105443474841932892576052802372360664434422638681049161027354117120137864073990735732775680473828436548888553312822195319996105577422616149521836362239095967583728383977196185705902123142162714003515606598892844669281446884753363585917494917070785231548449298536904764648605466698611436286501374274718120276540650350350221065101440351165274451042431220785536927536284234398112331223102584463307781724143248137473514752685216728827794920001091320942142666254564832911195870229286122602308088922517014251958574008646476618141761602862215651916058595006438594469495624888431747960337868903214523783617767172196708146681484955484755421450801922811501850658321025190997375114000494866638410306693669264111842655403374818130929171073924981409018092031233249652887937127312993070465259907875040763994817345169258797870212373317864117895358253766984559414229898814233810453949085543438369291080957807327477882601326714751946037601908154388053572011916065624132923749314818242666758764544183841236814829450222685842170373813877736756503726759107495032141224640888158801628165785106582440564985473658942621455159717832063564260578231687663220257429941729529797547694297405219910668415980479542356409118534509934741682633263586036974289976264971158961056811092540186382266796995339214199358844877165929365802901416044005132086258746153140553240840746572767645732991679241349989333160192428589005261615881884826961895922236920234280654406934126921325805615694033820529406873776635111687865196912390088490077291292114650994374904576718423165959901504046373669170566304443703759033619067601540103414038701553847193564387438981235533937938784750387658261057029203257348312010764170475215529919345090576321925902379509491076844868875249729926593402260997586973218352887980950461701556369010564799231919959531481578536599022814730386637803641662668775691216995158829045557914719976506447865086306804499112927593552562453871145750007188001988157566507587068493667903351458577969243774342958088178466707631216003477844963527094637282344391555167860045557099544200014241229172250606797205722558442548629575989773479603537368098320985700938700859071172285881034194561414995396057479975580902521267301168969997523719886110510145686073762055895056038386258618152660419718583464349616154641073267051196942495829493393036409453704744235880034668399919134816537134597926683620241718827073850555790741874070506344837530228498369821851513408305633178311193853520922755490535223866880039444081067473206316071068597470718410573078849884935032274392331344372853115035314833585098938738502610909402612349798379413785332524771199913318159050595251180710195952669847197677940016951028330040822278518038671924913369167146422912058273148079309591331404005854947203103037232746267602060977268736024109968905203920694877010770393852812073504345218175623051009807221088482739308302247337991966379874830496472918455803771552523691528154371818020448506088088829200164066613968778153047788062368366377941973468130214522868941750461599460634167870849042392934480121696836172332144003685154830626575136486320375644911250842976597898727364382333967769965274724135035885993690684485794464074105258509409745185627885797939285133062548137509942223044996744399631469623963484501640250538057625605775951230487008166293595712643930523719118710907702682514697265570228048993074843437407314928250920481197842755714224269918987287822106216759019896805971841993276153210341184055267012499867633513075662401722700212633123036377249494461555348945516253179692916609986061976739077654136423206497604860747442681699956844077908473266157610052921527901095186143208463775064789138582405907283789637829822265966434299874447426292116921767091979709212595272616014688114957332115363357051345754610528058834723467875781993110603475834332862888055152831498329709723446397450269979039756674881390926116227372787458319927526900417153313719083584832100978860898692169804084178504605963056189118679150453468604650179598003430753743685086404211819286578046471626493262422100926829107821721643834113279331760741773676327431083243209215349230219780937008978176154142534085970867174399069087336268357111060769781553345441993248870642551448880746780099790285887530451822038175109101975226287541163236659040446682169035183238434817795884367059893073547022012550507699536572707879263268844476734530205124602493276362631815216484912016381759663781303627387868577304754961789244020984597776710221965268130188568286043231776130000067912707258476548435593187331574903868132900582624223190899250492311881130294085541634993569905344741513503513215170550500651831555740303284527489681246928732243965860127565355520609456135229303882980018477393609330434856514354911012705863850170673280062713775953192541414215376609458062861291101564236795106386156976683759522273897183163569837857707306011540994412673907515409526457721702751016777044795677687161727376611885330201563645544921583278325896427890136421978536995403230978790516073047414850858833890140764505384769538402240372273081665383994806661415266103584849257752221715085068419532153726830820723274916422264885520138134832390667352020541242980107781217734413222229404460664622749674778272270524052377583531133726548572208838889296955147130643116710145643419287657330824796269588947578009435013507122338481319768529471067691213174090017286019168258709552814709163269096858619623419213782932537679707444426181558063349385815901312545077310023082890481522631197012271141372838842822974281040884215843691475016174434423472798397102043959139597508570638607664037773192295277664021732961988930095304093501998991467002450889770711047514451786435448335176905010879363335609495900867862265160558853821669475409458196562951299536569667154579758750347379492568103929360110085263578346205898895848565679714207047295846680644475960042783237411408751282044529796211761908657544707381844910232377097940588034218227628452442367587117095531490868878490766864235997791579861863365927781550481319517525576148304919905793222332347712546503160319647423090277627629555978434679138880810589100540047216063373622436278224400492994803234239660513234590061629840768649350620813794479408872029348734761770707223538101112382875695903666473697835300259778590936405626893078143479938445048835615654195199161115267186288197502376004781368398292612192850650641733621766446407829605997567404596101561445224929271323732083036156849815983317129754032415118800549252183624067304702876609605108546564308378430275462094467716281958297735722692740818174176174615077547434742861343303654399194147086278872028345750364381477598368328750203346142691021887464892175078566864490382062281994023409253056988893070338605624879215002203432110853318029405281786823665596971849146229418373563681705742314569015614044514582764539960345295592873826024566779927926956071269944420400846648500570197441293419921259216653784536867878474627846239836642357958183860219992906169510793404680527656056634083735069515983918384306379252762173913321995366063577582633742084551739597042609545028056682204368140041443556510536130545217054982172961931744791400271372477366375185859378848366843459224011619799522442077337386426224196713693872264582678357203444919172738995011881540705035235739764334005557931352144202750153813381557749497889747697136047347825326479800867268165191678405439051893064550273659266332470745981489836393821474463188703515404940564493729233417800612464303814944195106944150666368627969458065215207820824222969957827211561252391546249020099489250475419522781877921761902118953244018401199733394683018534361582214972943496093611088088937074249418537468573396452467523655323254119975336609390943338183302487885459323367631773457293672687193119462942725392402790320867366085935970622938520165539683188790858637028465955020945287536947785012940514926671145313730783074472233066700619272447433834321861603356523593948574100917111171541667425085664011345703754848251639545968547441134204034035764436595287482051378276981023138145360184220532103767486527599802272621641597732280249532034178723700106373052926523392737518842122791144215722460430850463686452766657815770722226019116446748142783977656588218072488146132197821200983283847262536216605070905365235303940844943089980638420337320965449169421254034501310633216307167661063361804135485247266488681766467625212628918440181065683979803432246066783270395801335515932505068587137022475035674823972639283662283321487925421757323391014233961756226982694259114684634241736976066560689599286929681988018350149130363337260383762967533554250983540052718646350612094584504540613857713716253088351558392720183606947011696086290978865742598799872673269719292261960893516638103676063497007847733717401042539652440973243643616035344546463231103597547543868864803061032036688247528878946603261867398763173573644590287898955803440931238982833992613478209293369225052476267814076830934267803628297162185719726412181720635130702018017123878746030824005895466019932216844394442497772624724146717719341828525292508825754560242924038114070779211796140106107888130611848507788926336414705361498753039933274859240080639437501967111333681498606110127677443874970725932921358352869352847143855564466075575814281599460448883535809846725974047374063188836681493709114825078426596857607117197272375718310747636659069686899512750709180662723500833846959615928207306244146618690679923820888171888640115907074323031631598973896052863385292361246547264925034900044127379211058656673680082384535289540188006783026446623073255155132713482411079909400140921422574108547185607671613371004723078162030616568516290115488772966385178772743858624097401056627694243889413046039224646532124333135519783102054054920413366332628421279268133844931721168962749783573299232025272452738194289290827618220082017369097965581511580186459676534146514228698679174426401950357404110061927501313323840166899091340071094242510286020296396634412388386005639416980471930179835085683198536854999578210293800372269809922727028211648782054338430428660233881352632760209292576177069657185922104884634710874728083423137990798603379700367273648463713714949529418430140321087203334790403978708665618229496552162516290528312912951677537662596130372567895019906767536229951239569662504191422107515032106896695552886962501579014779867697984682820850069408028336625747424589456627985945223189755275389528373425290629616849876559552999588480739613059103624952338736550419465464579049551941465962197066370243873343541868670081823265788118797958991072137532354478056706756569869969574745608099838550056511086935621713033134768490432938119153213186560316311665391421341776659670288398485237927594182823224965178000674044252962058623990032960082683871554673732749612377032879614679866367597531082380302076926724188862904536148423139516698435031472233503585249985018338791120917562974890302363406584351626672068169273480242027674672080010750219252971384383304829720779539977613542530687339778731167987495486562967635205777206764672298851597193343024271386651949065752963141909492414454414541775443317808285732103483469915836832802896689200211923934343591673883080029879370107273638618075969055480192785952870358847439584337569700012512976292020111507556918770904055280167073853220056328349470775282416456944412282336925147547298959072244147772977943717547992911294381673723910711332046436629694747469714912989259140816783131348657322485011808403818106765031149284131712631808380630742829808482544255179099867222298356872780599656742110198864912340824405870929344084098028484558858103843653371366425321747476592502046890627969409252789216270413832991892611860496450982926929287750281562935165149326336104819511368332469229660629910049507507017463050376731220333239524005973961318362967583424973409509875501726543599221011026484304958370923794272213445614590060996949714789189571173600911956262931457584755834417327143852799693878091940004788151286980081787474498070034338846946508671570267486815098510953886839424806197962190313195814492102369334843673951027037934312732015034314676261525026483538306205755473577504412569855868678475094299703563296220819516102436628882994370779560188880493745900385459980751830354471820814463493688488370993766581956131106473814967848823449445597249149001202115565674300672010538485163851126458738050701298070329245425201323002932026655812841303731256404158241175221613860188992065478787002305768055745262548337618848779698622123454558640929242150625712020031744696556666673426475905512945858764147944335895732515240981445938953837770213415778772456976143145040078515058411727738993425145498610893463985704445597209862328739999425242044088127806485631777256749461653022129805767548752088012772538207165729752635776778871879428797755177632217353766565139077278162134773454066305698905124752415774489841494073977134515622666445723116517694100946821262928409823554619555269087693246235568953630051685417259737914509674573915066165889868424366029162507554820726797117492530635231944015655969448404571215677711792222760857391759904617093745291698477814175588443397478634958866587429418027086681671534840282533900333684062634527536869535557910499935310760725391166391545012741462654229229148908727554797055308868350693312989182350604896676113454003536557773671418044397207506900204581282647682490801700289631367595361253732300910616386086965102439647325654500351262424371504641796532118374753325291862503451864061863362954794755911720661789283596707377246003420193600359052665440697898106651784504020670837657734373930746409620784047111045159717055266890216147605096016363494582195314953453339586454403900858016496047752723173411411687453147488801914773615706922699925028525511406127302911891818682297592878023124114802806654316402349614778665472408859635091932150424272081838210188243252235982857662608257638879450352244056306037135074940378900869340392167664169273113678863571030372883691055399907437901288792704364184628292878980902816477285513704532787863847188363220957220196976536130939220880578267806381767730792061146557032011203235176302503270418998740145256295986466516472181281611322778717234332881120095011438604825447859396405172091096674267728921366685081530517788484899615572387102665296077284972043125547032311321793190092751546037643909714858121862744258324593075416660938508779870092886800179594635291577103103395273363959121114825510105455558583991377361690019162253259709936545945678357950460384094149107925848919270937984455762679582521215394823689693246822368752743228015805077796085887467090891541525745375634048362851817563079905992114094513206324382993452685365455884247472136154964740995365517384349609427316018684861038697388045755338675589344129796584931080345784993774278803154149381531073285655104821318989872689345430602894906690298151062540904595299138097594726578017163686497385858657845728381837131052761939812667764017034968695495585726128459124031057882087351054879688775509408887186759772211318771843168582399354545163269636628389202006299145606572543559287205570506414009438762589422180313422658905078752286893014204772278847007293961897600950402043489149011617132989541670192552804252753721735544635307640341901324320315261398941780050757166441773633966653319610808359694922085413758722501412937506049047957734100988328580412961155856315913509183884573824038319902572219505402580151612104333258996775130202672606080051655553552695778925981432509767289195618792780666498937088248653732487382122374246219009445602787705498853892025191946109307080570933476257199015438569342037250356650980944014821829554557026126011378038545504639603916098374924150507711303684842835290294885828900702006016782922436092793498213003186181692775712495754865031179215557812315206142657099261833339308394744638364914551562065213640340616914120222452878576301913479091559977747250523857310216491850627559406745284664725174094046891188732896855434561012554542562856712927591396726842907649049923516042553175213835048644214223685871174413043699832301503832350259472073870444753269938947105295905294112201765553069445382271506495633287399553100537098273092293224751251725984984426009482206069860628134041289713696222300730804727278956777499008991876481913499325855711327555331735811584707842420987138488850642018113238805047028065785918981320260902581990222097838858501987330255916976250267647482261860173247893301118403009622619368309338855866807318094366269758071120931486575831954713321495924643533563054614509766701705532103942463356811366813647107315728167017911173266777716922172570486812450568589313229992498623724441631541277389143360876323687316440499504037167179671946565873528386801866156709802308369579337523167087990545629057333484932199013720243310958021856227295765101365144053328872086758946637133239436891479152950173199195030672458699612575428907738128559884951502840779886924166742707587515238514746427075804173309571750873202311318516494228621364857216262157878555959304338688917456526140416979174878926189820760286828559687520144245905279209971516372363693760340305980662373786167416269929867363370484309063771681922241534511505222699511823322537002502679129987387115992845969508428234667496476208122715326645669988906432469580358047461098548676003215532743236536313497636323334329876515183071550625356534482149350839073625655351138144898294860102980973244425929442246045675829870667878878367346463153731317922772990673794033245520797872400017612320892822573229087951355323986668409413160912028268072687640259476875429312103375806959021803492834990766020344723029964382109961539791091806215298395531975240442790700738873560391055465633490479902442744243112252536056421415728709142627145745139047114623646538520654530188980100223028273070574277120655451028425108470726990247943786324318684846532874745729813349901177979766543157251473386045272406351081045420913947147200831659673832204009519490790473690790637542617901949619276531001152280854795002142932601438647694795864273758054560414954959179112324921824733640628113812743831239406554865224878729521077300588435932617791640888618490020258605390950176428601484643992160483271788690622406050757987526681038100968944308296394918654075292006526426231320498782732370453880159196423743854821925966787361757644676660782046118660758485904810506950290598630876077523380725207766804036746432069618154678613949560379858131407479286234033072296120481255677868993766978771733142178782140675591668506144612640413580822464612843315855463148914470972218733362545446027626882319627502444820935054102871692719356993713333586742717311264081364640468167473387554667262979425833445971452355372115042410000642418536899565511000246667021125716430928339960110706334134401992464942278375334869050696018873209421572384504166032802958182147886487124127529588738775542529697564692808353727156581964873301691480412795153891673923020078329298976441926595675996394867614792576546895635281309619864131243939745749461007411581196048994811903333236596680920539205499551862749623372715622177825440537819258350936729380270689761546659294585426395881199172659677524349118702361856583658995455908461109570206855596566742919636706453575360433153186768405671969131806855022484435453862586083682675096682377573210017346214275661369307613402314094211466781987149282297665696686580956759081110477763760139073083787962509355504822198573619852861669580631639328390196580663353824258236445321278390214658625067289568635860365832524787731375114953382630965306640552293344163076409222871128310293291337523938978047186124755582301059453349220237153983340604651094569712255057898880277829628206082108669920581229580039502038996370862364016431272986312651866998144057760343353404785263694953593647394932889820630472863718349349794156336694730175200710367146455170489721143818204296251323554915232224146591801439628734471453532339623254863064127664516664482630894348975454322945216733997766400083677545172332998107896190739423186525815926226923684307910748924587214437985381591184893552060767466320815694367586878539885284455930625806267477580780602813979126444607331608550162929020417151337606241824121495845199503149232888613619218044776269150974482583260690447236104297640007134091200529727604134493548322234010203952051232116661300738401150151160004525485404718203409040470930450365505199421188880966492821951616363104084806925190314950694307398290766672622524777341025583934742904969560367667716164808118063854578074280015683059555417443516117954955089236172963046907981242619319660693781421735116626756348098915039372700841898999748846785084965880465235995779751938577542698208430770439492409272073069646820844456988968456905937775218186438701663134414135489282149455897358117942929431798659241539984731961176873986263699705044819539391365088306163937718743223480836669343426100665138087108911125819884227319409459160173326483406008911225138423952371127522387929474381628641032435356524378077350042369096332698411421622469569366283489886783748635650595717429461525606442448606537002444317713267583580496487355177993676267146260253209428084761814285343112845670494353598572919097115995276898325008371719697850121889846608111959875154793137126163911188397248620651811996826751543797423171506771061865206972933030131474766571323003779681159819571920161816361185555785567697971009489316461058481226472033263609617994157981409973049107197526809787264048182718300749161713586535335994887642915389924349205389211184316192593897163344354953652831493933629493948553721610070786411226591338684342843652606799418406533798993733987921587045225405071438676644332456169757275938831947077975210502998833588726633584734337555665664149681421149117111969455899700288778611539238626490877614995188878115914334242259788094238036912323684910025555151785607266368698042370803450754867034196345016834953175945776182397527372511635582818113936278977719139689732038707488585495887804776742953274854045830653189905510917023017331725535378954574079692018561540501276649430903840493784384938955815881946903090728894878715473259184005341958899045427692770709323252783669459953905064719567230667387654087912737195813191535518875702147658045701371871996746820886510962116520099771089364468697026931207636357321356202038956462769206588992980640234232084191879203381200134980439681820381429355027430612567118849652580432268476308567848141558297446333944162950285784519818202470102691627870619483055433820414165524191554153717404957794099667814559033584946184824739481273393722823308241182287767643706479571662179607000674104027056349412214641831175749039897995260295586454457018492614079802283561105626357100843993708322184703597907531773173053282592708015633777653963026439857894608819028560673069247907425301063802894293255207290361692962312167612664971032270829913222906046828601316901374594409212008732804707433108466005909138860852404520446857693733227948063138285209896510770611399592071677987607786975723199249564827035257121302175833791387420512531428704063477139680150639174344811893699253598313819307271903164972867191897669203586717827597517490049674708080292900892732069090229636246113955595620372510806214572723371108045435788466632775257777556755867963392326961696167813783719388868688365613768382177625353529304706720318947405478508979922901942944082227086174137729369461953740023774580594968172031824849593460305263757683039617134846483054967540633115059868748790814303253670159135849653513721142578526490651912388642911266493012666229428647881995992187551874622708289162223808853546293545644144218984825864116677228102632753841064113684093386800019600304710632168550245946540651513905166991016645134466811115835346358780349190634383258993729767816908078593572710069981301811593577157030787434576175067715657756039914118463299901558148055051220276105609459245225671955338454476436874465872807606758993979303127247886419801145289137280464395001134694455452827764630268480544594327303656504554972278244308922617155257453518707326526404545165894843915209244813214583149769620842533407748381956772939704692732989798927236670055258008199757543885953647284310377815796216527873199220207385754830648687180688480517112435265920580186033520214575808372435286198182794097776299100284473120355835498052630506761047241005825151622793159335466133163769814116489929321041677749764004003085997351120553882272510951949569607672914163968968085503611572431118357181368521743737782827036409562169378651343512013614872131334704492968187003532876132972220333993864585505279984352643424469351360586380879965068951620268655036523851195825949590067361562778926736654677937776304551473354564323302222698670348776160946895314103780869209439287232489834152147277429242449425735813143487796800057457478331688045791502201397129909831206729744448239381761151380326767101433594255091012703835160527312204219610501581067180855910684324993329711171944859482292903119672542610020957032101254138941364118422824024295478719721068453858331011715323775164910194158443884405362169445556047663078232124386349020518461019311512646317097887069550370167423303378525147717254810066225286131731056909338098110350616177565057580790902308393411695536518492784399651294440143717349757211023054683586789889714420269207211465754202314986650756539000542890096251416046216431274662463864264943579334866519366135826153640798348199678097020226363508507288603616146313207782172910835229272962658462173357887263354382807778275108268787812687076424692036857292586196020027128961375614304332238318557234734748921376307908789847938357586774308028770303485688201615241614979313225681640692960112852209310638363397027189578623955144008095250867363165793962604932284457190406948517748838872987467123623323003068051546519769140279081758928035233941464988691856194963590812798188039515694583193571050334724591967023484229420580787779301113415447708724524887574456064715043795808960702798310903916544561506938096609339877718394593795263066261389172759635549116354574234846130171199707432366025570451694516412624449788475746063549988194935986270783591830990753413382569360606078135680463542807715588688571060494920353701612123728902017730326828946674925816874237771445785468113861819817503999958194963704454305760065840484427400723542591539147097743596170463433867616204471763339909630163190587447230862840514293511930976198350565017613500355127307441344215909389466353794518036689474832469723429510134383628953962533868526738020572954795525839014715529200835858264302152079800490494095997949274363700056005946851781180384854917178089318604150616869306163488681106267887456043380780013222926511003697766574437693713345994146658783979685863720041446077899643485383448639933641893144213602337011296365637774491963224950874811928635514148892503850699962636866347930759635644641650749732721774701782895520255376389316367114755859269080076113156056298338870898336395512297863541300113503813917647829460600439753154154239355227348031954081440606139659730769897690295120766250945789591872354271411195332216656170290487853521127389607676503806533320259609245328645282000539107086495731160942026239652710997861861744056870419372960798053898889857767471293300372867450917310751712481154307217658595170586481095137219377762108623558629382779310244899374313108014037621692852500799002918534490405095467692735829139953264081298142305329229797593227205526400884219424213872422392677541760024464909514761244384071424713312691576012690436392743647097121628247009837759480592478543764311623973083656166804373003619828643230606439617704557289438753224990537539426773216337263327895235980434431800562742312295995094644727294876414463832481308736282511095289873857508035008794298720978572771337173897358376810444518083149577212859863579483157947868867919237030060115304483338998519737183548921172147216605563956519295670062875251490620526673780590599315377569111742680364657905495013447120675163341446409151383457572733343784088513011267686250148086101297519791398894237379984712554555428564473269131734069391522542440297484922123048575244376264060507080658033280483710726129614614752211906603662408329821830855134303841542432672629690506375869342902202601962459672650374160256675238779650193777757931666699499665398695305021020737517820410267924772942659932622215490329612660584514071108680598608242628676044221761112041805707804354155647874236968097992971437380062034700324508093536655690275810906504193756831277024530398230182059635685778364475889698373248931896659844424338563557514276083334911657586571264684627713520431633213019035754698929360671175427907805542039973469476989189390617795996034147621322475076723915314585652696660033160742547431740370843144348703850508465930427261642456926799456363833545405841282379899725902010437670186984523822624669304852974228602529603548366397182377297015811446988427727276639359510193371749158402797161992099639758635480436788900505802342350843301396661677193675711885574974554938752918241577499932026612425603575316477319962623250427465377158176527785109434835236118668333321970739464946332378499028356057499496002312511187789015934562187478673431040089921189746804658854999967782658089185474294065782921390576231263361089046948223009760816355410829031735538930491030148074947505980528706392966401932215922703524553999381990460868714638576969271342838796515716386921034766128301721096779355085047248286708733658476067505391896465117063161695479344303803278239335003251973633373670393923980251428370065889713107796278497904542732631236345998079102448327123651996700298158476495388833786833480915078663420827720795184260974228181204753796980987412843360138341309928010387487235942656301119299736256444332228029760235619464617784480649211157009458383829696871704059382981343172918627157759063065741675158819423636432932823638116686027498187136952013999448313799217003768541767645245760229253469566593074644104828637981859735107737673645535782631696282001093417202130074251187488995472183268707922521472578013757821685940510793191606128759622764961177377962503836640037440625265434183367483578982771394507430816975321771756609976646674281788870407573166915443143573082500778433231068968352995760858997164149438463373310840492350672641370284925246900420010340858178216772328397460378249593696864826502126519313611733434009991153656379963831414053563452277925985317006833378458994941294535074991821073438525978987266472353407223864372233335212373396036620505405837697294631046832080364659125563000104164832112291929904510745855202712783114197756572704445983021846541838465664779320335533791995480509425608052341874005797413199756154207266865315529936761207507684318792936598586358698640868377443709943623367603953459969407203048970187214780810015477709314486797056687556361969330347253159304694087325286505349195629609461141129254487731573647294797416112443947027996400193297479798647546033561895486298332444677667252394564327175237901727998501873215610751060809139455000398798847114628038084321196768740161196943360455900129233008898519824542410787736177905204524931473958534750315151370837963435518842455671863433195848528070509174916366216080547568403778322407299526894240884570677165742111124389871774908576867781567357763004295963205773955028288843154365637995584850756980013426062214677178747930589839320046613057289875598831979860815537124123457372295450988479893445861298273758806496759385315241118542906220130153247131946230903408023207918330882417208136328602577074725914892226789376539695881514079604851762203350459616498458139927469541666796587231626782452093246602813071911551466153415021859306841985749487874231954426151830699115242678199142508506640563034109027431323903998516683364174680165878590586309570539393806895426554322343683124071901472645950625732179383118263376135489092420589400735245462983187593676753106462753256124210365067119558346807156925252079030392522659689781913615689910673343789977753844127521813447155789728411121079069953683505593380370907723321969322165938998811546563697556187470941693194439756601195187954439609428726745427380378055234773315186658376449437344752536660489233366419730336191618177156944451943365441121362898177685132938396992218196675834260305818584928303232937380427555362626796252189253315786862368060892335951516531013943332391025826247554592226151628767069940975234812627468159212558185303017376691854348597230973043192047795073378055914520191591781172528810035805634892263577449518667757047201118070837190934404807731059425060593630212679577335683814535645191814497829297879856841985859405218288100326894267470665135737142303997065203653823435191668663611495979339435811297987659791604941107774797866499369983131560922458724672658039452128403470934620199422773357534270603899141103238150120808657193221112851027405898646577047741820908528977495267211442437756586767846733489830583701985339029001852831689954292414086524656371486857497443294876751924037924891375797830665947243087983068283836037657198136791196032218715350789060524674152078452293137396524823798331060654022408573369907604436974269577592991509910071866037100149349472953051057600028690116398763756219909710677412373117182177353608612559039787531226645014870221161490749870027755868813824768676361413685649278922684999184236950108712483697197195879109330273673390866308159974042767136849906458469994038206530638245808016044671138563785966325119682674101690334241241122149768512120853579018916038288544458349102726294600032453903391183299288246605821572653312452279205942214529154657313890218928208366733158768883814145261689563114371499706597480414714638073640524847577098709987750684469757474229538151149629544036033269219983785802447349765957437292308577063247667267345716776610008775101061904281974012612978607262967287807524491469659571028633216987704365238984198950578667709521150827467958173077286924114409127365544282926029046374800002921225646836057938677084831577558189287399864656187845085989195673622521262028949635552042651007554965693187310132994109239625487957991937931629559741747837128301368237047691123135503704580964900002773593949324574576471462398348203777345555307088067594896590912678231479377780039884803820084794334334796689187137045144314320061889187972344034040058145565180796471371507006876296760835081616047671590796124431573585391440073418093125250552259303013665497280721337162861842217666872578860504560517280372261128346997362898091250770165241716047892016286180063164825681447264974243713632004878291844066818154799805442991844605054997773059719948676402882909683499288878252196469072831042696535617122922836073942669568538301973615176035154540602421101189678280190986158113822881508757206518907612920821489697829744704511273094665998191329219210386069367308714405232861027847152169764246690149582317400926269408001575722480571847517940924150453657107599342718733138712938533195124182985764631237297376905050597165715703740444347064432590025509629177054967654162843613527503244082317046997375917617896896623949122974688276067424640093413933866437191814463593214859959700375983277537215166023541793008544759236172376880838409058978664652298109883135405749310205990828793626600988603888304358763413385107194659140056511365354770835151380036212663950974716222261783965844154343950386753670074078146570055836351864077238356360715346263972644869321986213059539398056345864955027731160602253248691783415793271613570566266809348832451764578974247994739019981734322715329305521043562732903355223698464925683475445079044004815159102447678495876357245096557781249245021495687483950041299962740595539189675317384079890230026082380660245000307623317251561326076252409546896301240975370610888563653761409623398376145231734315550015330376610026666948714868912847298258663851648055517204751927680448972184845344809295350577058928118085164312595310661409058452457231777963732515508550970885096966399313804313460143407178792286551702343333797403836416706105596182206791452959092255304534540444336951494152352117575447439335126942513319458530151056998519792693280741565341561982548551696232664483951141207755168334404124885539397246777002948865190999151292569024935517651007971186321081637734630406892666365600693560383798171875339555791243901860505681129915789291508012758199255992012399741875644061482942558241324758081586257405351956924365762675294905172488718635097665866748775660905954649010941224583228945292312660980692701241553294026797347487502826412369992586098884745424920751250382547355071713521449236438383266832195093138644240643795623567542341124420878472013914599954672069719031499703136775589305238093941380894449227360209369113613304061007322703870011705420897305320818575615851162568806956788349001764599627314979490258892013249494670624436248280251299459003277167069317636728459280986800531019319089802771901516495619790919977999247717113158117412367141118849199511796506433933930484770905923015926483315914002156819439811028947707048371269380707387670577693150045419227400443685526288778739308522707780920040825161593349502129922532825366380221394446564748606519045397213176854343777386588560967360948200716724009796890604428209963437063963765063177356140776832658197359244812687808286692970380059282253624436845108456517433091728723340367859174202455705225648474475658847229204942855153377752682119351678685898388797243001805770905633514932602934753532315609366681087589313119941965664854187651239200765070148011797392940443317244618741228016050370717750968017870838829448902880455510106895916607146418435362928651658847380078118318528354327679271562694344786791700950169081441534858859925220811346203334005995434157751479353849586976204492937366225388400569303202109287409972141220024032814038593120082865099012609215224358127266069385016579281134056758259666635092729496544314462189507000839121224013323366421688925319564969060856155310591406714857437931246026721655978550381866495376106342803448388808425813896122841331065097872353863088813475971064571147040602349558730682121778142406351958968789617062032754825885912777866007017434953797541136020618936983168551113363643444482402898236472187427276960493465234283228690086085743532547674792866143304791112290714334752730165976062496312796862014227306106560174084963622941365983618288405006591430130086233852414775603275497560259415564311244970217963083957952604145535207461028305358072669278369154707898420651664219809767857082720944242030449074406249869177577749605214796143360294067065711678646082192885120553889653806509241716305043730729972229171880708940958509831902557952315810448359288253262573035791766363260789429267252588380855104072263279371137013413228471202254066935745765903552651513630664294484596885046581297885126874728622175399737004121558256624955977027105130663469241737590520011688141013480503779179270518606178781846546950908564848441497554665245357419147852780510727710496513022798731689610847882401961055778574569039693276887504317495744077368627328583226295517173397757491021961914147849715141858505259267647672532112989170560457231878502458412164962149772351616567574298536953624690879687171369114150548956309180180818364885501244693472391799174910522182651696643820036946634304262640740984845893802994387266026588501114287665589851972374782892688185716104384393496435863119293126733544095153918874043384055829437023950354082040464472877760486895014678032264454144039911341337458077576724738778464616351543302967703252498452860176873363463231663697237872358729817678478208975518220821247924802284955016286403895027281352760025408039732744390681949262986016292424844360315967053957139401552374753360490167521524266693669773500179043653209531768555952451769166894132561120259268579318045559385664093396255624074563129991356816138235042018387529065562253487204701978928477825799194405887609302014277788625894803252771073237388901244524314462516780154711580919952059010741759054378274112566825076091099755118412941516029139453763440257693984580639513407551627427800627804164470509490704281271073285281085108313755948002197254835033588556013472831763795268360308240554241687713624336419346734374988552627973767726434486979198990612453777382645442304743002132554612294275797690862835472066584133806846356157569895333979972685316800779311404843082797969522257955363640730380599760267275504293942483811075020473523095108950017313726312639855015965442405243967578172347064429898116855535309069278770880736957320723214637117689473967896395125419663547273910187741543569357744269533074890254279457315112181783700099755769610503315070183141600866783851517694809490237403463536956892559961840711985397054113274033050055023193397098502657878963909906151827742341381517041326862588364777366609247251704002749016568489907689930065688227261148537763320740726652474512279679948055800707608593274368523303529421621217496658797140557274904492795003802315442961091016184857520364527301866126855222732722786937743422368607512089380263718519855408966779142931458807686260798970201485413851840350416231356985914834341579479420683080737516083413168980655072642805233009821256565271932323771684693765750259843015749973041985932185636021461363729936832313999490509664461494841688164448757350224997832224831005566921689897101904650072820642038595204107464304359398850649136611666681783493062393964700910904624494842910375338327523074005393869367537981846795090796723526419468787151222152294315167874203317918543919341203808519608989283970444616263499030194594783701406881589949525668841515984704298134053174451663991743613517543454821512196031864659277534205759670594084356490531142601015373669964612500197075610665490266724395969983059510324171975359857771050530710698374058396115419240876523069840239567797681501800462302438330614978787087630788072708654952909518900950119246831172914875510960131825304713705304987119485701378965573955564519023535107131484218910800511054623068968918383303392680429531456205946506054370292645804512418538670294921237926840060304059162797297487461315478162233791611042084253980428841583094302935945288214949139350261574920893215073942083720718463285967977861786045784630837915737339349987152583016936192638568006455619915231507313348289511858969487731908920465369329190331500278612040757783243492384077852163532870766843157700667456433447254750961388050954364024408097676994726073726061381523081372698362498334978958216420993778538929296212350821327938745630659894476060730553617722699214334266311483141444477401944480766849325969986424287669855779251630284046776157810279207693199011991257549060677604161199330585720551832703553359969301335104045768647635214720355605791041719482157982270747921166915864470174754888672613399047927881678666305414585068224811778891101130802497447174420349779098772497366298806712797245095041133127805928587409579028420186806376814239697281640583227804474359461974939996533041256007383262605615339716721014028897494460876399236860139478705957493037520198950526808082459686373716531118730751098176101449449755797847483826172825999880340093508433207846831820031062471119960126071968826803172572367504165462613221315153411524465107518052593711474900282505439286433872750685307837944801675623321465810521048374147803860488735176562216421754365811188325089424563060245006921068151717711828771752911799807961956268101003340331720967573636846588761382396419286724462369456724213318533437687527590124379172689492451235997661552622837517748581500293231640985927083616218258470808693812966220140134060914167019716661226388340400590461393427765745028698248830791533406486088367251399930734287844664826475343137779321667885001959774925103621968216072937383923320272072661744879100236236171390316951474066504099162762636902187794663700299280711251825140763430663741929244256675174893639170164816230167745570815001236195665041769697088922379595798097126368501455058581326166162898495770275983030336520200692823411903195937452557319651009600024016842379426953793989241856426996362517036739447159966836008351716113292220589123256208824399079518460145849494302941996367926620924075135222557046911605176629384824579422911479950117818359713228813251385697164372557426919289710206067296914765311904672787258817030400068428743947761388948913418552883444295905798102409715213720436214967575800516739083622831698400471376759113360069359443846612633373543480679321131684212987333236143994179201634361209625269468186109269825035144915543816898489126618331302362155479982818258247292310666234788067538502786498594283557743100355280747796941815113737032268828664139644940833161004370798996838228737218447589581380054884600291447025447328367701145649506398030847867890069611063007646200458645236284149613790334360488445591197960236347822483043400774647554942407408779013889524300198018427477157920944992556074834973302486442346003970524464699458185963469734778855505420336596953208336842763790111573674455303898259365576912602283480583014703551780339481869453563138486560699060508264862573228972628055067502761286235847810565720444791346424244668805295551187376745595882569317380052732812183503602361105820654520985509302709603279203989830932099160905709578334994951396464832424036876321712954378671325909793058195797456923936255947134778421746873942293965712063208581013252305254928248159236490466951526730404161330344622987866633917124881383180533609002565260266646910129530419762882244594989532026453143640083160893857045401044435654351849638500276808415196177942573578531612984341202092233475814863104389987933520782275244055443405977809672522124367548086988955460743085147233643062644645256338432046900583465840309120928932263084384399204102362307328163526107294990534463875540519615248436009674125765281645481901600014588768851631424652750573515604919919682477584360016963539689224852466107786696099191171643519659472443570063278594522281052555546801842064848822541191107658914437136095109150306331159620447880706716959116888394746906320236155957643132039053665694720683797465629821200453019105527494884449620002136918385185328806471063201073620529304531126670287046258747367289366846731234773788692929097708687825356356676162194175064290625588790358298830662679744406917773381443029750151137780532747348877773684298299606551562406599791288154962762167945985937254451589927687089538869001902429834205892649110290699090849274639134671875662315727477765952786453848101050847088050443867552273063647595464902930255418411876571079494604891073572088784333700427724765455601666246752100159251699761241815086099521834777948335852993362053141899382388929475979393627269584064913889540271164312755890429805362767557649095368443080537803038871397943888892772157614663032518638988692953433305175842731091193942986232816546331143443432128014030099259143941188760623852067180367303000546380949158584693556783971540310522686798355858841900870777012727229961963785084030697086325126275458224303711509953813470921873230319207686685989432344585361655352609998761224910358992316792503373743013640240575654432695381234397278422184740469350994548329041624090654429964775794854835649690340212175384631522044607985248076239617102030859451556786939333716232788158981599669242147964867381277531840023366940023517185299713622829475206713242050471557294844441394313876331555257027213367908285259316503395387546830435940660601567583533882085985073726633985749893527805150266373164256707539519979900883665564943825540260125682406871715606696403238582020362576742635215489563909284550026617553832552605657228352749513371776470317892614187759089453894424104113251844390622193751631213238359526369472228060693021730905487358120519485181693833817167506503841912324908744810121813054768559226795798113719725475295493411926585170119300468379491750118891420196307749939397108349421127360076522358416179363424755554475408044303029544104851576490665520852016745092188521962156164225269405098843486574033631518332987862471191932819822014120462410269561498032409638830685924231106431487379568618609715838177603404881301880179091705020926162342415346777594361445971919001284237981648147893859098039652133865435069535017067541419387900518445200047464263670123563150800531963003353997261689943314385653498283762620166794561846789700150534529197032369350633197040702613632143842121132604245596020243450686055152970345084208909691060125822969355271564116932611200239741484631928626106176423946564573915604578334390794515470007330646279968932128120134103919180080332156039836643362200490729553212556282606286651906083803394008556705377945793978992926113737667948536625629033772218215786194657649238781318433183141823134737883891965809959258348183358094861646833496482561741684915777351567113213771165647938612438491623377751556394292587136057526065873381577763598586322774052568972244732031861469788932317193890574185497401240053685049336658834908023957076663396458709624840709665226373178153390142354085350314637053782294906600820754453309142247549731936946352946628864006696326648904155213576287484907420594895774521673692565356411370883810220899653695582835701683414462921780474942916334240186435611721350748350581655556057326555210972016142975069685376281472066345190822940467800846828380157374525954802568961113685209941445628428080539205615599905157114076121554304910892276246047371799949426751290338497517301172840715145630122707344257626301726769486326220815964336471420629897373184062581508225805945242811378572603341939204027055428293990110821744641749225988795097292469871306526225005421177270208062341903613622756197401211455065947930909327248254454675218911091726819431317268433715761508091992904823055985243969705282606737280008324905179484144829842669138911119577613807890847649553127997715030594740815283771775376238941277559078266207664447120261077255980243103295215664516057515534757866299835458380925873328004659575805026796897522909807420084953873494402003230067008185762045086965133168883341706054626146745983904677621220779246770756907749483347964292788160999465327584792707381340458120869001067835846242026110482549242281662698052657827317226064793342007740122611962605424334129298370799569356696847635471819788148621200135287100208882857570458086242624454722503892841873953292730459411609105926696030044439837567868149284580526715322787441954387026387478725674049375973699419785383242445680776765847862788744769671833122255728487849229368037284775214414435871621916381577210555216902816586643425377269796024955123921525236409815530795918317963186798715424001255558939019357323305826552104341454528358387985030478476644572718893888801187868146547137583842912778856876484325093199204232019349397134562806575366236582667272690336227608036065928548554293247209906030170124534883055930166220096814789906964831704908307990996613040968474772882009160126243774584128707204188488617628034595525032875400113066273736381355991638126989923631783798800342550078567508591278106989285930071665488303010414721332438378255400603283262668116787014029760160143142143961382287847821370628483916549420759466669519338483949589016986704546118298494852318264797696021554521500825547687906693364725004174710616592327601640510172239123352440432284128651156056059632858287944593476939639694012532379247433773038578212292377644325423834927768263528797292713964013900774200040184169944042489155844265830914989943315650674737766966772069387448567843308034583818739960997870945645905954716703355862714988111765125167535966176662567772582660735101149923348632054722330118053302274199953132979519663946656459867650403141043853252060689322129496398293384392522996882050196816315979550644320091589651265408488825040547132450422831408906916958388170126321270527072215135975961365490754292578031602911857190367970848536406744352222854105750657613127231203169173049651848429737704817456111787103448251131122281377263977820125599026489791619488643206380384434338393779613792655341880077357947740867157814920963736609022938430233048262683077847240003050972296878599700965572660928230396461884486250521041279098578616403724342990069475670636236033126062834430195858017136785847036262564220665966592221684102921929731555774104976857682899467669233543653095642530253239220749312431375485356895568415488405711336736402711210265077803527890553243275137532430892935953747321176010561426447481502247427453809903716197514227554904226881398827749792457626637892811663857432781957216883295636911319060062236950956625577143969426182516521127016064321496045285970213476428241584206739132154198470575536360734070478229035379770119891172478516519162363390857233018005957029377264436143892359104488939297658540059419868145158334086995426003995350326911455950287937959009066642226697991060934938427865775611300012071534131111760277720917670486049158355114837165143744448928004498732211444881326033590810968320728152195665764183757215343689863310927360593118247797407614898083867507782314718071633816910630691371541501963210738148117831838728560195411386071179020918708407615485215606475679687735758578673949838556204481896597313832491587969103652360095009250995813763740215150891374247124012492465594628072498830071629385532627639965182348619216513505703904644067428718143654638171049130233268237577274722183943547776224849586717101007139807729421926196676408790630192027571194997799590830601368436498239124262729815937798344940039343274674967299942605260455247521736534190107052454412267220245229313369877940993586808444660148977488927938025548990981318364874466370386725412215402663186601428366343249445939926362994213506285091627969434490267939911247278882967390401903006060725914961835692317991501543036375192356358683461714121589892275760839430943168153359690194233104007181609926516476246809792210989577521455801220904917633402169834418651872538935681680399019091443925653845786625841297193855789400381780879988854645842489744863946574927526284139182494033049029295327296491137562077719117802236987542127970688861020001680476452850580618634797804783520148427708579643125518896863433578126547575795222958188028014927921834434984935535741183959770853307861496622196534935683784631398664261988055615253966592433553872678340698779734055267409081209285888557665186382563006614732804510385162056499395570620648059354747505401179489813857076559528179252395474260539929012999563212950735225116539752909853551486543104468794976567366225473891425248079946806757088533769755861401044195854143956640513733953138155073228767246661759887283677574058447126647463583417703094997298972665302784788594291986096022030777510783102116505132243729532794814236418004638004911177889799950147517765494743631337169293078308551722142955639163296934749450351542403018390705830809776677967047257496628239761099685195799164062425054785430135423885685092249441085360239604147694756706534419082266264441287956712823047540817460341723500447772381475806878811196399828046807486587059895247005757252606818407031856691440826922501811223980334518968720544450602601437456065802972494720637304320123819289815901571812602983202796860805674851790630800600017828381541031433523606304554402992821601164443426099175914722571948642476269171857643708456697719520925115744569995551224641593874879542725351265881588291493176216105031833677778783539574132353750913979154788485606576759435157244101977450203697691499819540188053687453905501698883472247763468453401901296950538846723786891977638954031881389310878300321870774737995551808431711508146016101460117131703605024724111377590905704441197005525116688513214998542579652469849930180692731651268153972321706546574505230914259448069929400913199342060792092040993463179660703625357987366526913676846800135017602674620037252336417691643951697969938539812609284547439041807231774803348317418524948952773960007341654696250029299057456669029133968528533499750548599610550901494545587021847284322081430381212061869382632151357875362931662657608021817575138855028115979708519127163943768914274754394733429738148979898477384002496298342238228171662740333984341920372210416961008320510793241426278850785291406596742780188510251193578965516192818479060060685491983966810662234584909012270895096974791664642996417663185135413355756074256112024851921010407717194157308519369407919087825563646108755081608787046474013970321263587571211143892817903647598218682648791326860936219995391038446879591831519263269980059150110640711040490509761182155086146187885938410602940982430579636999545828025197062359910431303034264169328413136019556356653174574158230909525986687120504129740987799712909386705524137840429811700634100762874890969933851604395737177594242445467415361138554242188350137984067529427422491272444429864552407116203378319657605218707610798879383716242141297567331165992120787500824145354221725357950077585922911610358574364860333142859907902175072255018611408227250758108185428829039041774490204643646059925993973522047353897523563968154749572564716918686763637759609741464923171177536376376601568105049051962147251437941127641139508250977144313868016312191877137960358064307510232951951264094220429124884812061142730231642251059886546329015936542458977905970620849038416935246825976025217444067433422128489463084363822187801473154870807615218365858544854585803034867673678601982641037295074810014711580846066582507711399750316456647162110706352703150635651257921260060093105941837933839370804491754062390922896303466603757660233644553830216037289604129798894511674761197636481491929461182467459264095176942656344373604873420879822510261046586511581130346218829798915916307480005170675980234421184799147718720924437667156668746878360134699699639084328587731511387406589656431389893222534527020937789597691225132603309392134627951129008712097859075938555678048443432705636429554068775184269805373638574004180809182757413028773973201139770836928026328426763701647206203116221933755080705630801107400786955837592750008438101637355961380139649056470255147972856324779071449547670343844135971118965684670941068826255809101483949655922538085901873766226213211797124317040945223300450369138587049142637042295589524408540640181713258866809294525207543209458604766967504505144994107840289935312592177088265064443825278436512865632467628171079204198714059404815262869675758905024997504980315899142789234881304544067254757455803509950923856833151548484955251087364251522723841323031175361863634656571284261687936168465583801148955936826826182427910231163796622596540263502734244429487772618823130493282757308329474081858629364277831660033745503902678799683221347169462011529286170304109549184521401999506553663045893419713860090163600375649090140552422034129247504453362153891072817645902686699100094758629695487872835804936503997839284070563244971199221324985011416739574363967198548689066333124146361746134426657412581871728804678387672710134656363737335435869862240892473753767543034488120892162199061081161340096982708976103942595828065951140183420504474283574139521685107042769489197388313008294102594456533777520060937858329223673787936767375696339358881429813041818590832714504894679446123421569408595606512522026333523066526851832351160815591798387688103620446003826347067334410537956852187036972482713346753551914813020049567565759436331258190933693670973672357718098959014818024835394994459410957926947861298311211078406597972082761390703672009444940310436274451020451177109967327843415369712919090902907465506419778305488603653022433644841978181933425754024385906858197834784035497919675558251502619973275004248668231089903649296202861753764824720477709033973060850251118153403401467002760825884833144730518921710436556746864022223405589099831480382674948638005491437546019037139797144388548386216169471310461948466061596530308606482031016072799334456076169188901713156567840332515827639182438817853257042112650766622694574494702411447718420055523769646354313457295040727870918145999133820293781236495280087950145241141823174628655212142850986167251170536963159278982161199486454238797146574498991819106133124703209850657837007106652801851060586916650157116385002375195774440859554255746381775119843266652449056317630482395597718763617163764958110547649789861359640692447077394110893352775383095274722870845835778829964859573008295106566716579247043761429477033724221245838123878008788768313542336229725585531111788077386302194086037135455917785722509910241692942678071244009884049723707833896989062422883617078939528166235818878419651477789526482922840474008516817558229648224129397903834406221970578047392713183906243996966592739820815296512604335788412639702282909385329535864734413669266224234656150141344808819249127338390303408298240244931035963094143245457744422373304239517992022306714981910042837623691384389399679651423534417887242082934627113278438814028151083227776460330626337926648881090153387056472701152194761061701834981404671502776985650932049036529293919267768891357277135591865152581054189330342683661513282957973745726309252824010044806578241816824982945542875783703113216961130283079985446682296776470756101585094867932807510390441376215753767277363036241044194996361605280745291512258672556471506132222638228731138245839537999661499686874356415585124403336960764508440591821698645467830891223257026460077597265558489167216661413507399370346392113271352794642585359911014449396916988767998407330660278506458843033812181162808236795628540916436915102406111284126398831166759997557857614659874421075175009013812126984693999122093632563394032030227679689494569836895677024747167601458712888353682181179837269162428463858903633800987631413116200411781543842729720970033145448475237497568367112895471638189211702538041211136441974670070527189335601342289121424107534104846042238568506155656352273498081169224330767199956653242356983341581233652198766535117031661822449982279497339698995066559727258451429748375513480167011692969602794985833758997505265057020927725286651589790017048006781478425342628140903394726300383794149177942076350358561369877623438275522281713288657443626229089566970262797721396606410255385499895554536540839647449902024303149168812014809801385428224284071180708913833934798836876529036388741695446305321354507219774930784747567423996404974646103050408575723122163729127395777100811972473341452036741294695539572688871463264224078425487682018638474965267349976030246937846112553520332643559965808023435427024483319278630351510400411689157493659181632757607588393306023902902000197741060339801219725946019148915276168995705275643789810408649355181765121937526602599233298034026856871231822389813552691123122623855244076086570473801400005801561616022295924511560416127308415435723975386264665719889307424978277755714844679409991472287435574815879663597643676266962325507950184395011352300703119849813488448108328889539150428557395986672942750272512850572107528091353377285889210120996704422828482783334159661795332215119773358511323597162474183675311441648257277278207454664949637965288832557974986226030341031333134471549463100600600505879492196440693215305818294511549312987240093139680257420441553253313673000278618562223300276341992307816544945854369972180099169290645223287759852358218945608869513420757614814366139815245819444986296661699957702791680130852300233618012884317137474141685482857334734667444201973200021900226422313017151189954322281061633277757497651970890809801283935547945660205888021183586997970731159048757748901133057436240283399699706624386520929362210592136133554125841392390522380740589251713908747626419702632510084615682362239100418755096623697797879048621520127478301822312481638205215253574084743802044182163464315918640229050520462767005541372600649258646580298086437650489412517135671122575425336054939906666820707470724295413496097200560596135790995804877886149132294105437557641873891276267514280535853577636552107558096095257028459335289569944306464609822730497372334721798881378540214379731146344905590627824858441462871635904313479453227969372038411949454693303860045029563901169978494126855708645693750560532786080983676991155296225100700392514852684159299506828626372000231222822799345222181711464201448279389888066874457674134383831716735753884080197306162925081758771816615776196592775977503353412375702101858082282565381719718146834451140910089947661763773359915708801233050792528911714596113048830796675156272666977249734996946321958121746682134871240300953908682710842755759530550226120488277918060407952141587043053433056063186156978696818178103473821446449684402647293347508224394772841613494676807396806749077382737222066349741847526327699555950485219181044187767828286098405162249350351212437937218489520523374201763158721595669155910371129577702897896275522476429099777807432209747412950436674218071337262888555807292167063219615307853259031641785188407233891277552362997403412985229319630743099986921235747511938550004324368887211624269822104756688206781200449451310706604778439269424186111528875768788102656763420344242792192474794350574770339371504789949867682425168551120857869099153604218316762234258461280862597718017370835844891369489488147130941528109516081248754572384190529123807362298161765332352611802971576497366779536037901265242679002513739486161831447012119791113986445500196297202325278961598649859431275129550854270625782132341996986192682050251282358668314446907127930968024877057767651097334204883732589409190039189631870539720928917648299105409122978625862014716626397039129171761918090320514271327803418985457182584405294706355344445478772944873341541379262275145440813729098170789956915461299280345532080091347745620180161262083165880326585705410243240651635273152273254210811080110159392953458897068423107395261613544890785906999962449823934941839822060689241575811826468960898285306394223959667857129360579973738606871412388372299385693365977674022737063996642667373565171540551888602806984179233314786450205928662647140824676891544392069039334089016137106197876123455262707144061959766025336594363115451318329780831958628306886063095273724336914042237388176148196920604766526999308292753589767199683703504625901817527263977519534260311608105755043309176020918101835686220052794037615721859944247701079487394799593474920639907935474232212604475028696518507614790955391324414159658537908523163100155766365702388313714176644501530967532622187282544348447130307866699318742969909251778384286243351080156941383954768516083878768019876192080961634333095424933936513377537812706142886903432754187092839449336361791639121224776011725238944631975046287605429709380476925984770796047442242756663658431741986621399503877533127043416807439982794116544770058181041434062532195820227023431705108803670832671919183773553770204551897088355389970718720928389084297469514316012043403998814200446529352350970768920411113901890376019290788133080553650285787897499389484543992288637736014786416441774020955195839155852514414982112922822995108941124211861875829634887750024009603552708528909812262627856081809355306947560250314255667746094311090683206539586064983277282960848960187677270319704539642714871506400034024541125343846419355992599587534280128329595802127399823477807412859317763041542503460726496764004318338941204250683281364687973735045425269338915797140107007667998614604525994307387108575096733101230667759267069244880761082695751172909356724546360398465003717492766342792843346869297532880561443393948455395282791781077028422260881051491312235919267018210955547061738206233170820769538280085642056733458847153841571479160179460226935507814384256954788594258548328758381131418402242505904885850561670053819865304233377990898903844606741613558578089146681573651978378641529103084880992637746458571584785562248562420119750478581916566261951892635662863559705280053488785057263266506509844469376519757962272810483533227931791627329005050513397823437609201244339708975947790934500851854120863314821690201578877616049526126824717378374080896430179917623192868098891927598520829603503008332108936193642126071843429777733450388867907598363925836222529429904844782751831377888684965036660903738135582147431308253341172313851661738588407577564010995521232814595449453172485613522392143121074354876472138906317724607380407371539165498470560549601063221966521445318302917457786623424542638041267296886243530911811140948595513867416570471651454440131656271763448635764948387484286143770621366420685992142322636927952944025985520950666594298317419351041031043512977146393229488587225744808136495068159129035634183553371282457951157861187555224576210502865912556125023202899174827382557244583711117782572934790137124355282619484010072601396440218264486914640702713054764816076524567133137988522768886790899075383401405931954089988496729483994293089847281394656592113665314514320418049739506151281619989728701196992343545522210292109184682369957271297124138610623341072197440002935870360531843649314443125007384342320829841985710842039290049113659007037843890048464603072808174125615951071455171913958289710528532928240199523353817210965481779181111935229645450060571445247201879063347869961338113402906943808361256367095083706196264077562794794031684517458795442753276616425595034470382805377846447917707552208635844129847156690105646887630324717306815101970252367830093369684032771477329170577247005054165837170700412362437895030981658592386975273830036851282141161221327521794574898401210064762130879148899544655613592468388459220006787979879997726935557457186196407481000208543966302837505474533085998125428191523888724815211190202907287020083819430332497571866351906902260013315375203120210319444936525762173956439992814616340948180723723298464685090217869876178047403421698853216061869565505924448274803767025777367762484531461882214792972270163828901989630425521817755710890970663892625150942575320458041548709703533965708482445378746924165676947416070992419427766207828568525962296751453989464082483874009376053054308809752610975092090079484690565185978086781179851543159135548879451592258568126287045496756173682895771855031936993714790295418384343521511438835144174082502734551545124440518403420238139073727284852761642513135511879106770316272360992112094172660490549016198622697714740682300953828573183152145820914318636075544777499279551908114621914197515189188847350129343605652744533606957981912537974364383435710712814796306875790092887439292198383973273093266900964284973992072103243407638766407756341505161999452999147486957611758285766055697243503334716132166227828742972587943190332423606161253388701435878555884078189992691163481704773551899858154143232901880629479594033498038265478046347358349175427292823640237844001371919871482028179336764648456416588116062569452785923905432075347479906706537734408484882887303553994733662113203920516163600038768792305322367067239714658868131291925106025581091745077831835354263905344974507106196184576273946348169025556014071264505021415584950041047153851241894059963509108459884391184961134149793414344014069482464783241811888581441343301539968205950922972632107344258774221702991402377391846910986828077808836418340045253883527484982764815770576161359509935047812598213137718342570396086598266908244697716730774528101256489160951668869167828812584009282043966854991806612319810420389050531219433745801477736081413883471861891289723731926736529246737163519361705191917728762960422937683321918197332989853590049290665184635959968961646743557179964239198183720688694263525376546132350684807878570547234004292242182744408155078836535955003493393441927642334542668892519284558229386541633817240169319440961939204796729564591398501974344290146544087067038560139383333953927198426781442066597566541551114835876335422562866551495028139203341388023483083212014112295648407983361374272127646139372944667952568319757639725332204104452741987465601868544438973842136779628751879780671736664820968553020134930780914727636974620780270774162606298913531942459851581111047348189193894097635214062583720429401295781852425097590604245428685200503572820498002245522771794093576167662029142596376564459754067325690009286437382445072836624596156878136473862100215915176386864721570210577128749928170377324866971264868832934694345001746076112952255779240526509260268168750861131320040243502830675767532793164998308248440175374650905627399658653753340863571011182261202867117797220764864637272799700504668022018449971282622011179021978935599686691860939983031094283719960837250443887201139751937120423270190733727574631063419230054561073867834258203100684052828825484284203471703682792717014000501319509416970598273352518567544206154028387401531532190213040658000882301114258043378453074746204137926766985410258043872053361227761776046552334979219282975190307261072297775090425601521039186708923210858056414250484430788782355159984324260023156662349917786446473805919806072816993587501617826132926347268825810416353559340445159528495120272302431541298333924586480520627979432799992351192966990691138394294590288757800797768055823531130461508915124888178128934913178410767915536188912931901489237221780721735777887264128321567055424045507937157990468106045350175707088009206606704088908397236489723260868281858838163294993118429879427806035730687487172060783799254098640846911125586561619418473877127764812456723452130479661692417176081071559533463829976064159095558307124755393740040072733952901479459634208795972953628472237483983496942054247423496091153885598770087735686228920522071499498805562919950565562659540914783893005578970372187818666246639843058634738984749690696629515950275467985409086504109568628636814706266342458680358988147196780321628519311360281203558630245121188837331481417479498676017670633680585559897398730757572998593488982620299412978195302294527657292810332398053095308547579362225633706166326802836113206356924552461506110247856103296678003230387207425263665094750070270806612632248381619958709603126079011330460718714830373565393006840980185264232599429148602912858332591313173253587902146380185213389383794278156413977651326856286312774911092174619358412729542194411860974453852279238256546359332600734975289003023461251258409400438987397416595450530895689824613808498475454337873708733914800999742713327285371825845803002885047359626745404608488097535319137999155290569494504748904720055216716181162698974211200684241837933003407206617308505345747519474091760825398074514582393313422385216993740650670031238199557405000079265731642075644289986924472276823823893372166953561090267971191482926137253354701303942395085436268912501241805585738310921579388390668248117199261273930336528836999122141814491234123056897843322919989537002919857413571693490442662958792354007093758904447785790473590860694172200068115279038434216686686306780326534298921165944390936805105151367900904576561103547409026956732513937994622063625940864087288033924905703986504239149060773427928585154960581146425178880427645744653407086186623513025568113078638638397951642531453126458647499078380287864073645404894424988475035408335528375177048158939767059672949045887706566560521057356205592992428466212656071896800377040084570018215454972214676189246665214687479792494750842699561087019043407035735473564112669326254048008645601959099013352471802312297686067813081733857387458387799282158847634838688755844014094946232564078529529779067800583132543184866575025711990052571776882318235518696285790873406102766834821084709836216228062565117047244746495833883702055293705997119529028947132729487542767876169528530149998937089419067131003034846241570618584587194256081319518658714499443457659114481307024010162824657102913771057001433770958867243781988960533864382632963705941484247717925964371718872738213973427736585698185840601437658238582628179365435689226923260791606595873280808350344639764552549199415251770870497123892639192781759440719611619020888196737896357147356959213703862675650843214889962514860501519098082797927482928279760549358291941428691659102898438887623948875056862528067971477590731902993371399237688435154331103142320385910915143520632112957166482100292807430519874319888331407892288941589449594008690828186725989459165088357761399608300041627830148795015221696779347859694456678182352982714929075900955988919154436001683890914811911075319644829456209061133477766038061313505777000190916055631598574018281350809735756787499714015177946982246173730982475064205753645724808730551789142126206487341614032659842050452211077944971426508605226158228753228452437537080122881581507536439629908823196307984985024369290717589727992852217112421501812396862056685616615423193533462408241893390028079769377463274804167999036617578385737263303987457956720071217357771287107609155637483409999791139399600186851900190357968819220843023999476890261460179615550495421329468254216135595928841367165094274424050527088022233549727905393611943957091107281379452390069479786807679297557935543497524153696034804681674360184011903622811944083509762645920044337498736450784003889376149894389876492630732054047595516223693618791611660611544133288971835017031311523609627460808088632985894918541905902757585764855103169809749934814413510249652920075569758875270832472310823093865257675185532089171598165596558550910442858656533192423800486027427956853804310009993072910987722869702903470959394887253430312853289416360667111252235950594785925784864661982388164641250167940156225197999328612017274218890266921810094311648532565128437937414464787468548505405844349664093288534096851009396289220874016993873560348611608887744994691118076976746093764896975951783699952104730840389338820284689220503517887085795319592349778221194808161407015642054092002677621517485381202246914287983227951966771612677656462428023084788293888749992338951043068423350784624378804199255721454070948727748483479898454261750127380860872547150928644284832366639391326590456948114858306779289894898621386861599638929642893047927242317125212782416572593453633831156903135762323454965146332994873485252583928184459574949385296878295087195553838199132075361312696092604431159817709899523826709881015709755915445980741626353826424088084221801990031634532697471775497290842131555142656739923946116442896350718934868016832469739150621922751671520377519170980805481471526644428277443935320014567251300717359174979518849374678151516123432692599554228221227592506322962985552691249139401946999860408419834605610804949529198025552241381895815024600222570754159410943594953364078673932155306068659994910147607491605228336024119587856705485062472827438493827820683527175732116729064134395166278605357929353504587574021552545297797197980237989501877065260574028623994249817524726168053806330722250935454575139500890236148252092347197680946988173376778185881965828426505475074441736023131843423320972539733806238221545466479800954809096130279101339926615393663106153680243286356802293473630984437647210591167865500659018925913763374737686561100398055517308018013759339973847277154912834386664899939270734979992312960346329208676406618237147893551611560631336702330535465483717514690974572674385252535805788202741552164541417880638984228072053828573117803448007180870672290613534871579030248712730252491146915065870327724815530625940630070125321160260449711322872199862703292670345792216883532066023144118317193745805106201672044112627579799388159470979192113269980415779396492027740394013842412403977489375847481695069556476915698802886056326368347420607318602217061862134283187153952135502423502944761979739666156185449041412370150474460304338269998216586482630433031567592586642262548816323579170546581455029072705178205002481814302012535202730067499265632941557920852397198170948201360315106060165191878661519224097335974785265049731531538812757526268948820874759449311133293493175688829984028791254114800727885409335694102375429310425591175014323290649296222033072021239819778464897637240110252580374825854614943884272549230355313839555263175631283057467437170110586763708959702520462221691681142709860827765552183425801266658864640644272597358488380699510818231331020529369032608045593236323676902227673251900541651105195302905847328864231619284228704072324848465590263643518867071355333932792180616251359548536069309242057847754264397540409843348165772537662394150435358047598466357439694136447163370290925325443015603837877965797751118142829129458431954378176225470347201680663823064324796757663905979538319821380892340542526311647742759790599235401502409119372668159383217576321935706212593521896396346013121063758796272597263059714477562219814118596280527211255809582710232252271751961079596377683676842967221378644112405806728261359575182336966551320244358693554635496900349630150343903809010053419945655462199217242056405993839231585436338027808207913476902036856535150469564754813008349795650878948939386747049560922115819837119090123980384448199288970856927106520218018877473694788507158230755069822710566432364317123082296465824081160527326250053658524792611087785868836322503047521642294259975127954410440517682760787252075868941061387525395609413213424107234503359857798957343804567037438922631131390371584619760944490182336684004143658699834010318166116211432306956112790714134087039772023469627933519933303738167040461426122997524358735341802688854737207244136281511541624161986587646966054722982521530062074390198975462403438292698007357517293212875330190663985713472168691987424766381571885463206239581733036802656904268963949621050567675322421519961287716392630771331572109848170748558553385958638443810845248410025083282741383939060304159777869174012681244592157085340077647807104016457043727816160235632985906709785226946617458227934152630171914897731792839561294328529599141407382767494593207598547617564241091445891230648655663901276179730767591332557407282766539196510175720357266224714305620110548734440921429669012456420394878854318380956809019908700074093736035323327453790753305968985037751411407805827613601058817844083083925844318063898578359372504720300649069619526271657872786970701779347220426340643830862432285834435124946297658365917095031485982930880161076431237471417695438446058515832144315300155116646804783763482405638216152275098665716799980458698916730247737872604555179257489456847529347971121705276307005968522653181889749191907690694246620757385945302741093678299185810142216086937294090037539703486106179656131665086883166989487824569757677970434842842002208217839133503593661123743136218898197912264497925949639185478826627484023753681937757032888110618018980460148355150265950829155603650295212663973825425494085350428823030827268176416032977089413252758376192131133488090292519769704462654615416642949072164072038467050141304017134068964177911383823386344587782809471726397494903254738715031242707759566045748694719185733179940861195736829214235947445074610541785896383046071286461793305679987617285651254392502983635780265319905729585894849319498724388209154585066293602694118158656561971087077072719825559909863493227144022473476678261910419124766507947405558204883064777998266408347465777207888583815996718650894360073139577388936235490927167651616123607372669632613782539581988962223294721444097788006971108383061579231455958537895732354240136740246503139300162121598809910121810755040458823913234382293485784529247815481878297524953730359240547395276396131032645861725122616829157877677818191676344748263822541694352284302487985150270656110792905597990242632384132798413120266377815848328099349731439868062648075068844715009906078966410885618399502736231721453029389152250726016021518255272721724200729518950551123854422018896512842872724936733275235783327146799543386778846936873089772769832246361607972916373815813908470350927979750289760148410155180700007660090884219120982798898910337734366588910832059176318402721264804541582612120076538261705661051361285911722851781336795465061940412592239801658258381100597475755689568645077525800704304870384502887846992601188996406925240222755056927615126331601879372721939509407773575046421521882247659435227035784731581720751419853865005627023858695920104322841993186340554470324713836246922033289980377503158385508910084307837943001013643266957319264916526297275783032181589442362741656279764081706466637833012116366933822693765173346599787129959054531839410132319829895342120353193903862803641274307329127854495379546029688488167889300450962618529583239637628642160132812955755363462822550352143983585966845717095112831426747115268724304440241334804803933094874654721509290427422249475402631492007731043250787244028253343957546292302393244202627200124725488218942593668269905699891839106356729635413167625860211100355582493654704381153049617733245454685888430229661995038641934561857570080059838790912135290725206059134896440674110507427153578193355909861781507922583239283113917982073759234586544959775806196846976253192682987498835269449645684689677701680074897589369669412370063386263582816767378863015335906590780128697510556719523120393171516230573286706023539165896392264076814490113207386217220314818857230964994350847737993089495071249013391080119656033981570419414451137682600865943186217725691972861471890783522728364687088882793723440753900351095917662631766958165100118193071447754939286970302812217884542345321744779597373000474071769316863032998426646344850473088781594258938623005397179461528070484385482883012953986825242332030367869603768331638993902351055810323006470963032861414689029940015234951394087408356949868183765797618899553385904508709449432858602252187496995187896053975345993312389959824376128086629614159474633438537100559570152935459161692538750345659850905003813064256571559854426915528541570682575708775435967728687426285287300378906479732473615435243445431694249219927154207348712580456414237285178401664072699484191744995882490942495663813334791092398319826058168370770842857479653628238074207866477706741459513358815736698148400945798208761220580311553670752284167479190289391243526325021201960705286480444984883708943405526208906840761954888648519212051165430538301278032338166927927882241739017859038575827447541253288385066808450390701019547072115316936667997665901699960546582907096314938977902682389153277384464340410503531288368621864787411973928592329281679045190483410784477763125373986263752774959427681708806802233632298283037016604449591767036840816342136237144883442831086509797941079677340585306147207771183921356345018284025554678503778242804671601283299945207294059236288834391970802895687061344763866053466246279531116054732490714243058733566656551212428003811495954128052359779727101663754851115856664269830205358445845590056605246676702092030253556072170979376916884981587554960952193355605725902060840284595577710184402681729344294516456325973245894067802264292489235092829827380487810911870513166966532342602859556322283897238462833506897732121237817482141675534034831341603499248131630237555441886144626278820470557170726957609974360418352906581536619004376670042667536044856822726981545148461312898682136618012055682247087917599291283780357584832743334170712748400805135047593560224757288852057183533341923560523569458503931787875526339721544500025843552024445147672187950449463881827081531439403327003948039431664887002765680079784836280297219852526016514411881852687097170375939196602753811394655263249448475816119839932998355470796787088558666019955409596129826898299074748218046609375249401037002682795138170900042697189243989508217227104610412438280918728809908847646801221079495267818055208881288953004124963754003057961489160836733250866790913400871593197414519227922298691467515913489600010405137419397173254293784385180090129951785560161226895191858828769226286708536894219874951359350926833637448587588324035701904491160274158911068683769256393369952629406216541883858949011851099474148044099468762385492816046101756341612001753654936668594351075389278099941324795071358955597520967223639771950306034607713423999551519744062910581844969594059710270284765954050155072490919884823925919432146460463086346197578608488727814871092333099758288287588875505325069000463118634122054765625274595254724185998153620571145708715730751224396658583279172784954463059082838763224586015772094387200546606920846924876265380223367358136286278324866367954703248460426417032227023636549465714372673393232320779332345140880981327132237356034554129915799390247783350852538533392610831329900804024181708506986284118241470922233082248612299896570847829406205254313414184020109140491025134260805505289711319707443503547572252450997369047027571343222220469233170856439624727647950599725128907654847998240977484387803812991163097508552300270366502263672334787901970146148062044177200917527479674176211724087216009814473445853587103505318222414293471749109318101115507367456238257714264010150477546199727026167250583456543091549338665931747523296771418508119552706583127272245136957800254353293487148326217896869405133032084083376356082967454838035194856167781273591279466430266928303267286514564802394872857530512263626325198857797369233708770848880310305237890679135112236850281128434241646107368206020631568874802906163368076687484672365355505376747959729904425806486403212300472486921254381521282661813375712408065189608932562641584988763752473879966210816224023673548130372657232019168404414803856911970352868794774233194936959226351009703719403827294735455489628564784780927533715344428380671303323185274769677485960748196364433332987223239428656199067669286653837744864589603261034691793254875540928247828848485351826262034053317354260126727535028915506202289833609197784161991769954563783159495136279645705276921561868932154080720835335398234463725972541241572958799995036173168762424808250334334537455427820713257688581627402796064848101977457707172470021549004093112161771963125375935747108751842453539297962519410859465495892659981535617007919552289610982120975427083779819348042097529827712196165270405317847450894042458511700283433473939533477688470058745405493812071250291676762459624344067329322036425859889438944821658275092003638695997526683905384602947079635067460783734009741038531993859889546500243961855577517997266777347099568312573330969808038204441854939249393941300125732424871932134372987289557796484526567789498585731366520371014817617328118705994982814677622107669984303557760645164014332492466671402657303246236729675474897024052525366336762394953651148349700536940439852960422614437160810312800458101358662689701741124533309977821173346732934362181724785674399084767199987174622178161762337233801339550339519874872234299174090251539249708743857791469434788968440221148888834749135999535094239150122366959226324460407509663824449812471081795495763662259786936472827276656290259037124654973637082921310185176099431091157286273714494459415285796263739300072891719593127304914934039818140315769192250802106936149241186877757824494731255569823542367092665707677891715300216428969999987055120093278389844094431191016645516736092045573354530976626467227323252805855465428191296667038473527767293616711338497428178297559374930719355515308872671710775458349783654991863941767870620731316762624940928791279747202350836275962053692427843231089567942199995315082250332774617744520261792965818409975314276772755271272188046221399947930515200581964902672489707095308909331826450706574744010380403161790202597412510870081021738660902489567562163408039895755581475485844321929203735502642844999120290748863674625293602773241230008098527553307386438909986768211963392569711912051598794818011648223090893656761985949401383026067954203799815357880187728115191225716490976454369858819122074072840547987445313693308106214844858683374513513492510911796830102177292772830368082694942163559573396807091391680064866896015803204237560062515771042992183408197112996886479911300974650588831240170458409476173815945510245570577679877237538106211736855645298406835125403057706092969857697564594649069991043673089990900303646508834992261421781558673653478745515022056864685330489003556237862670612938163790372913781121728326465595655134842669625089835297212477624151359879790728874987889045716954542172911204924322855032001216758380790770554818667985957933200243726050811653970494002426018929776668431799943861560673779220538230485710770240731555978117572143677549973851975551396113423458935899321211721629973211109700075056060943640147160663067178623191036400200238399177553294064005272125683036042874939045131394295739688396375744919131599142745105748185029733404648843632691697026356415916585250423589995868072856149299612724919192848089765546607151400650839370755342638241587099684369646041846811440096933294982166125330520460404175232040353466180640992731631927706500482933863802522363536855526545112123349828233157096714000883330748340032522158542619926138493346409664066509353794381854749910918842761353005241785365590169005467673196263685617856343087090134753852182551692044779623922220073470255675408942151943607668043195493198876315252340766432412206714610609951102213566619518831302219102454479466449024984958896621716968913517889900837350883469899420347064107339406568725405975278079584716193116126782866771446488392260769561318932235554511287016376416911151455074847422994476188989846896496597873350971166358386729862427919233144466858855157330764658515293619108694090052376365514553357272127629011573137251536009043090087892948370694748004805579400210215407271566011272130430130428659453576041614434315127888858796813014213802113995822867853982041838218987229045200618725721756418640881975359662065435014072540766432671533705787018704966851002187123240039283378282578124228204098430196458037494138153362151416335185705751130148782808759912190104482234823127850363924097074570440523604219386653379055256053286841246549746050135492362088879813686857554438551009739263898500473449543083771750514262906185667108992465961273349735227514767076806641098470004873860803304165996383049604575718263559028839800946649482828976914434797357349534326690986598958214637980708284798903894534588254333304020602486545859097685917264716926656144828907033451103236396291727429950975366633223844172415417041425818144810903738989044746923948639928738484074918126789627882047282995742187631851856876064296388081191142597883106347267703995845848010178994495761057636661741162053331985808012706539930818859958406166732461129629086798065661612710260796897876675566384377779929105643181883150503899287403502093825751800485981550772542431809685301084988471707318386068764924933782014625879259506196364151411206922798627477514680039727842540488964317021970304342732650068135388530333902608066410764511983928170882366576085938979026714275345752586304789628378119512887866255961182260441387451759236546005426232230608846395948851758279081872504273087305143854555354911112917243403313759690722301882788880219312112425379883478315974010111468788916243992549216951620038774827971649835766337569989898704815722276034847868676748395797455277270091373132241426182097906451061609232551651510005510011714534916469598179990019400496388405899090027360371355893836264845807039998484079054297272977325605490413686037079207194788652874961027189262907758780039624132611087858219199341198481819201524064583124905577759491380689393487856029123240771404087571724133512589892463533886001007091911505288321047371818042759951423849944321514500261775721419835431952723957811461329200487017351720223194775541456095180042557825777147178055191619252178410599065123756414736648658494564102520878177124686923252430760350391761067577716134134052647732377824705189431487721977397031611058166605968947472200146040118643265159830588981191238098057217757795568391104411744026952877802114583601972980460168638454767147537970658530206580002259079115991752565430247033601106899475537120602096379677408310176143044913730536167778385623854715516809275151258406300095114123984780008804993554259076313235291918852762137552537594867372965724491824424498547745968758820784442401866179977311972706746616778133314747171577225124979478670702048352877558505834726777002217140087950456832046467670343279841591238356811776677500294057589642059416352040596484513398160517583923829540577676473005063074913035068190939735328123838218397571154529704371127114875869826293523623079243383264233842630570297294038861301726606839494708036705438963062990746608593739151709140362763652263866121168269781035824239147028092890272409787742217047092530623475598035938012109689196024425147281718223132975370297248253000802651871098003816637738674783527725415340255035053556385351690463080723984874650841083542784797516925561985693806709438170912091134176449360801234451264216074696702433584599318406625072614060204441018440806428550499561087565636678316385079078293859477318788046972281257168624096835234456008170903761508887643802316788727613037876044708667314175215342063920492488500346421180583195467655261864394473717939924244706615934566865635784996933938329081088700302118050633303049350180389837053780716546790815423428462509941141208548636468638803862520931857612737685566224977787619982512091831436489557274534901541923979804368533221534839624669092024572417025128033949276505769491247273589347174635930852682736646307467778065882974372917530959697685994412222003189129794178701725470945248577856730130793072021759317640409592319274835426502232011186596718559696754946440527403963477526508924012469435626566071871941031216166586902011663283076335811443186511241130897564059944295348781291584186101073920515933644322140989210685966804100669207517614564980439380752950197972427172115575089746521402093898186598607754369755217949538960292941214712735017890625086054129944433258709102284631552211800462968501739367208802393023260915133456337644054227925219137565952550518482316860277688238815843615441026005662026021694153482170386465949288020291919957697761218494260177002696365484958629186020243709453227656206629609576048093315910954139014074463759687872348746129077000448649094263858084115155518045721115441143082534700203784119337402031918655452231347720686077170631134060139035307981420118955518687142619694630534021050380537927529749248354030905072839175625287750350811106173713544724767757624420515704404941674009037685138793993812446111652843392195670402162281726128746917723283904965870967221378321242453472067871495822134556734221310307696397640352944281341603804346665231118503882816361988727174436124859127240199583333607135653566897792922896075699196687535041634685822963189681122931243767990676976454097376999139011455495734929504130773422352476918014104127794832289536320454193142793694486179945952964253001693586059254867354712637892245850028100325869630934402100416416134651822408772913663879677093770878313632997341135464923349749400019284456655511563799152447964435802255712258224785179778272736693162009010949327175169607365961388114189634291321661152743256149046522032112051684217248142200668684512597080664937410065873847449728005244170815116892966640290558853516406700329651349725472759451839923897205841387610736219032256925251471629125435415283399325053923439605533765102508459882967311195303287682504738788820317090672259628600028180436641412467901280876601353947375713788489954932234199219600917578890226049754973739279797118949495545835427555301067343995825659671421120482616653551317423415947775266650236862329819984074962491700574906668125616809539230456682866660073156998488262915725292661900591009529257120760982033875408394173546196798301901055627673599285919211696877041905874451521476676124881775480955421141382531410880690705796074557794419915575781562662219735823960043552200616232866107419609563034418588808577073265237210888409861792476812062099445868155721497458579645328782731841009113838597749517188448217516325672971259319080157521936525140585496868682589716145617615022043475279392667750944513296754462037642024608568460984280478418816957714399129049376733760827650842981206937594729481967318869397108703179889350660051627272552134049755167835038389785026909803618874619935506891318021001694985429741950822119861644602835606830290367611971112532710443098689194865171925035627846593934036748503338398809047579013166301560293410460232097523551991982113594248367368486696538821811165503851604129694378695054439630861428379214896903660038016872372899438049381830490509620476314041442241460129224936484889822849684703224925271864461360754839880226027553934205956658385027641429797247171379435015178025085631224887475601685868007333802720574297143361183380100488158470470633927735854286853453818418738651932297248362920792725330932797516002850162173467129477017070597783811762648231619662666754290210598081935636994101566806263908484895460479316893073067972083854541393972658702444479714999757601039788008636365515860725919798279665867727692860077775183420088414661534851289669569436438014657067719242942987261638864536274733331884740773809440837307113619148518157535093664238523469392380504162452849917062254444159349082178317682172067337954178786669319857192952640923887460689236229730568466638665084739993761804356967564791615520324182284957063973083744426731586912318195155242563949422385005313783465328646396494987938686489291703947344298328172951545206496092254099974579042036549349291045446026487094146492909767443693564149624617758297700515004575967024389374476738471152580578787440301237059299443938673778839424806314810456025317493019523021028523477139116413040163636302243714580449765145485992737949920969192536902824446195988563621856116789371971916952262208329049044137372351562828718353733915994706635166702075540062033427992554640977659319815788339561333459827011064181198545228774653939484699187665577990852191010185371497265737565510204617122452311363570581364047806103055052002600767920489806162201709785021130222805918329909206037646738206531695603979104218584220840609888998790814919985620366431771403630538447716567904271622913491252904987498014718805361909917920657162000829050471949122745736119080197260686097147525747650929007014862532455526930258221713524711427117041455562158007710081090868365251298154899926091479388380007253601730482103776392210151394511466633586970623294911490520413809755550395567989260946493304439461424498179103883211204924155667160294737471250254602919500596495718503439402932961424893323514420025094260318517350089415886134399497688923978339054910856531184703758507389532136974352056672286507769913857112770197623779366545101396120075036902127989643906664462330344949368206097258902268216511346948671239553183224429827612316720828802326392390308897120712239090640115726446867286393340771815892545190031464669724441038092953206980037773680773209079134180835700001884691327973959314848077874853130140629560599519894990769663064347114756541154703454404341521773901951368941180788941673871262613157598043718330599020071552617901004040673673325378066555204592654527535585888823360070430341797264522206322247573142730281717463889359198713744338481948363234244386073735339969636554859781641695100099864739769338370373378009325835307633891861698007672220486127233258143146371514147278434821298574111448240796652630419670026384072480714686089736536789186543815219491657822488571214857772693444692870376793604545286135200986452322994962108511643778462450279977133645633308752567771219704618530130404378642057431314185813031616254738329432888790194593760887751708568694472097407988200219137475570805844161033855039822955527267411939978114011285262117589427690300235383192886796556464513105806825364287215156833713353031393945524993415465283948216699343477881698844488563597490056260426782574412379547418271663799537101952178192498187556419171818452903798606258191555009782241144113813915902034994807577393021421633256126538202396248594511238736984362686303086575346766122644803252176379110874367994402236569368266956622901445152375132129985274800044973444630927722067985480772150383849170824964823579390651238862234931973364063823890866217777967298621420969199516646602997803701481625854469697949509596101095875970443726549461746021856818410181614070575211298998675303403030206345659006628404795149766030340028500828138529401327278498797235257042231377357447129742161311244389115464226832349013816289886710165478641478633057270421858690797068805775954446741123659243911994620297709091100143626692091655163429772725234620259413870520882416457811151040853771654271547841422913492098149653348742329429204434968425998588274991937509794365748117660283622923786035901182764846634903101903234646690694857693965294731971302327860564451732384165062840124553823400351487143136084470694338637510598306329315253374287031213403778339962054924802277063493552912874802087035532335036328972021672355339112461599255419734055364798964341715480920577880170813470020736361699311417552363956897730900963724934775031819759790199519087383905591537842753162057034884978301053980908323841688383151048510191682593505945684388705030274495933461478646751796031648017116783689072362643848104341882999853818059975738200266151106454290325908347708514145902859987473291492589778200581248328851076933055293497826988363430194158603220729288143512050082726758921118190664026715303585291403413997348712779505122025556669028570059805427444308249070924319691487055218997858500238113716128222036803855786448549258048477412737657510761037009076689955014927902367290508854811862906763120589147717974547929583719766707553691170078680625107073353865282876677619377763117270589960764126882606412159305956885944922476292572073027737055176398839002849362180431654037978763266219139139881751060718004889005422826811530976448556229512574640101051683476766455182468075071692998566236539696554794302539040310096403051631024459600415393416019973957586100425671454442855516272412867817646480546814587840270236803698331980918169042206432464100092766157087273169120719961384328607884174831528058113899880768122035394880458692151801153835299150201336970980832622376206244772700281252318502788596637728554256960772859664337742191218704126688282473659887122525098959910690294277233572294671769553970584356602504340495881053678107783913403437149209765857460499675077235326174137657814537241188330631979404050620707766796834520861404336379272317774921404075271719230913085790800811659909178020791561104409595916421691875329960638802452204694030330011843885551890934199202965940160730381360133283201165752622379538211275796739404177347780113659230392010427276897629204143861580220429556487041571449809394140303896599028652011426971781712582247953336876523786712648268590642807673179594359791525040625604649517603279249063845761484488001087557366439140193543053812474616559845122597121024900434417951853780112046553742390794654447500874837178614282037501562168826387280465109668470287624585697629810762459683861816943426343218754923151107266987856097047151975787901489271162760393634099654927806206877992590850600265694389422193975303381339350469133785011682567019931742588829496499894507401851633716935958973758289627147245753751509238524393342540864634831185794605635562907446596729784403474645358873179047632616254494058944072105519117225399102479534917956921412379740064178480329898767230221063482124087371239042168934024343103267172077530426198854616705159965092464639357662484358147845608874729897003393928854978298443389680569749483397273828676642956541961679636673763238982966060905620953579591562485152851487715008221509218542911001563935046242509422798086497931552706086860068199443433381555573236392083167375054019672637517490975068097998406907370918555596401813831031327845141663495827628561027301015322117884371037185904314858740019673130287565559103174057609619757111752048631292701827314532666167388326843910696120641856124304565159339540642457478370055888725334684936220849585905195148250210396555816266351776791296760896339841580428520297690066364415757300791459556676833898088727677205444767843732705058296903441928896563680570519198770462579086546978982088023662395178534044931566977718854723116966343502093621247502870854962196929749615827968701907890972468611281797667189515705465647633937753076894186781261004225838613738906381001460511925141002730483040838865263634484179476281487313055578067221367605968222524394940446711084319864582260739187004162426471408711997510577402116783102443592664953673611067229459521347121917248784381020977189991026467757743471763886790231966134892238198206708207471608884647507038222387909215238401057569429790446419679164652420147730084325052142275867872520297546877427745187440931839056795305853453466415983261618768824251543376758488529720881615928246625553151599122421225501215701047657905689428901435912418385450442924709927781082861087753904525154650309257734835040715680988445253031223299539307235183529014470761881842585876060956735069681687105286534717015666659937136153166347617372408953129022480410656394352435320470815489319081758984128007128579518223656403020182128566637149862208654083013771795131772137606421052632913327704237659078201320951196487319342083064251000411934998466115718456205718075622744821599612488138361276813295803101331273307098902225636383279160079759050226933709060241586277624417189976302315939907116867047572120323304874554067704792258955773464714948570816554883800982805565915247775866021603710299261496196237896519621882864057078316537351523764671018754129252008327932728273426356366708452405470445713496472166114777760470022070902286166262009320334374206983163934059868842236356611938957680120324415998146891013266745205601822636019135876715845170962149984175557054659587916617047027115761358538227285405161558403940429445283113067067549697075945082300851527302064405199232826159283075529351738957967298134192938512511254277007761088938058935761705276064534853551145516192864363560427241586103478966502729412916997892541259912885939191782980459666755432497030512423939955214457602316029019815751053965674551542844051437117397298734793824874035147954396068257174447993640589103629880089961027212486883406105665471474485203045911322246063107174000799265136318130544252352115509039860380225285649643610527529287573215320358950506701137943669758326619374709388837790760645604279962969381331390424400446846754781224838023822515778707609973202583617018354675650894261867925197164034965429650751012729795499762696782169424201062850142509185605033371184121186977294534612086230507176971969728436634725353822255486178926041719898274550644357310677904428888646593474798134606757477306134153656554799577653032771753646867895635389086098703295099565175664374815621640359257680256746469479770186953364469296784434381588055937737353621302412839858044941627670814728546840193388158167512526957096891865094001211221582574115978685084314826140603650877026825080738501880475402259056110087581419959949936744816803486182145140874622155860010883111881068263367915105592926404268420648720859237375905006252194469958424666525151759420051699425240624198911130819271597204398300523041417149717177782023751789803528478650159322409693000820331290305895110553199813217529161697609629807219903713857431288324410560678891191579982335499910499847927812456604884294353033610742643024985916997921843407785415733958587735316939459559994046170245245519037519329463575498449445155532477300174744995214244932959733293126379750742137292773335545533127460640152394038467372729076893801878143997958963202922547983299052410777057133647007932171859679792418703006006810202631633066279745873187558686961907081682930258981062531081869970729763482774093020228915342278636786534632737921992992183449422228820237227709403582268796455809597604606249061531305903475875652438114901441000605626998987536014411809880103706149786976654296528731932151528484037628049281580555465448371757878095309895460973229957217840804001372347141277607417717439792263236047177366110769050260981657634659874125252147543463747504931796092567577755623363313559866724272832826915031471902510475755713532371045941948937243150911919108588168423391176713139911058078368568778055073814334088302057324576701700461336759451641897848614150149841960087280864985325975757394162086923542923568673270691923874309198263367457024015380010665589136318784666524811761491068634366517542114923004483626748869864913606322888315538288715965889506332951445154318320671944711945625136037290111617121117699253082883431983680406750669836577825085065838890029057111939999499143336821073438419652178107196845713796740764207125341773808672805410550515748963838371283608833240607630295929628024513733729563496518125335629643425996884495079996092710594292356647921129847510214795986815105127802177426173383497202801643427973797517158814353599491502208883142773087318358310764282578078638979056918963917297907578564733515789097872979116973854921465588038528481046097171589081309091479997855284240193465055339300292018406888864056209665943512095645905229282591897852886032760114672291073061878319598181489105043694442559499632153303081960682198647499928294451426733630323521338410574697285632838676916406421097415926835190375666054939941701232643899927067554712546009244181605513559592170503574959815848505840976834088457242403421199711895646045424611009763992505168220898039681613467274316610623575680457362972334091176009046824894421150090968363349607381873152799619150184323003176189506917662530630221352036664723164206983728022066932333856920724222546765894592271714260786838039680269845045114441161220658421829303054074835782308483841396048270958228046891505222256234832731136297643711886701157146346689707058302760571262063087464440352913706438678220336399651985901655792963730872062371413113295448057293659150666816146879577796181173069390773581668722257714260442324990347322818008301456112296836447367357072018339034543375997199773804907180240121542124529183772520892078684358558237174415797958294258658728569749578659583243860072051386806999678166096620992751670514670682624678013566256238139014736158844799316697245790707473283607108053194045797877325838790505345686987901930554054443550284545819379251404046948494819612260466727084660759679848960287475591501486115229004413276984454519282433942278617478816095272587005893643520138326918571441998392775393538342425283358529727585102282566683844902333833593688697274308519872723388496948515580941190100052010318883884306589736413701268744996183315540460018326296898237948555080949755683308556725085497233180304593959025398577685216540095005841810080810390380383324156547651657960923752618191156999720907916988839517489821968097435962041011861644185550237927574687672717040418443998595810256318513438067555055205390354007577152833279276907911803100097848908493648700029153965720915404557075503536074575225609682337329470081861795965478658309116403919455701347842772724587395292082312610171146461942224095048082149731403184371769904943739050281355185063129136979828538842422129380878517554088010348951588409690774714789959622455839190698914798272864887326341543128667131703192675139338581677143758126663279152596111322514418394314812889597865101843965108040787846279866659817997541909768905042214432070584083654680379695094338081592026365530299924391004527073889969823048174276030387989926674845291884744294814407733826759636134334779608505467166252445148625698659931724920198706044482006780839655861460227030617527950093363715334667093554147572384516982053104662904238142282447691212476640129793842178597766050791542444836605771395652383144306280896540388220561160477939402517883127349936735588549599060875746542930569477559208197223863677842229580101394829264728902473503410417833690799148011389919228696408506611183232879852323383960594385904138022718902758943668665025927872413134519795824009491375415342322605388017553771747426527125136429326438109000221623575072939225041901942973603814760337774111353065909083673199510687374289787166877448663255340765762609189436401789443918764335801913057021931827416020874036973347148264925911086895990675904625303186338931931913034755567636056505563759912599395352445747189801539412662351164877285354264620283500179891696862363729048112198200678437567371925762377185821246708558298791282901500661630336755995074091562429930234641645657477454899699157122926409817866041478126098251919476930688475799375204267801224347757759484268659889679669932688230657386934420394442053229644524672238578995485890861151030127986263993669598960835041640809769900352145127159564765094288515240510652328764020125126783933882556607265513732467966740486718559430582354179504414186628685829895025669816688326831797935230904626963503695984585081806208057745703018530387233995406654407976033751759616362217060331282968997939154728673981767965922748414600531221132916495288365489133506652752654573317969691237650699809285390351623807219260310919053238980716917662462856443420221097043837926481566359731638188252826458470963426828877282131615069826772539864324953531162089345324536631701076618209439763200866243208963930677353394355591891603345429440128991819681713651946022018849852232210799269114050303043020460218519938572229955176000984607051392844200114777820487606866807112282444358876005019267330629686902810551030190978638292991261519405814191090175318443684187005549259726956846969561995411520574555787920553980518680742979281995891597110388994331011325476925805663061372848923753418760513461604060031236276033998044532151168311171140421865647502235487237763123125084693219728806668741890482564266231397723050259241608824082197635103669006995516450974977780258970428558244803672403274641511999548579730209029976328004162502713071169945725920241158794539490164594553453019552758206548812267262059563835928429538556431970202861871221602209419061654001315879847957140916166723255544536652227578523634235023674221152478331524238802735011927739804335700087911738451605917930899348277340814193904745328710769167775441891645678133609065326205065784846336052925999544262386707863504127307444963576107324277571589958066811589643037463075820134931530781582039655034191222318763704975650941393965024046234734014839798918127818566859461919071989207023826586220975668345836582917869370035570874966045687760449413891232046766194963180902985238934228521710172379161326004136765023057581314264437659839994365060581120005450321844598211683703479948998853046709156265413069335110999703517773024872597247706810659654580195666684389739328163100515941740265495274457464352560561499670715774732273347326131756203898557007492227017431193933138830436829037815735556773375578676799865952321669524178790529113111301929243084086570185639845062220236861250579511887136345401622733651653777236609155692485072042130174012588813015398379712635927743825157790069087815895024779238334648882321434894978147759390489114577644925789081118481099451177630479721871593769383738980086898109143871197922587520120204758884448937689793959557993536953364494405978148130460074591240109903647990559829869137756079481956765260222122716987020159375570201699953920803563561095753845889670445154530686860362368658931862795137523421551059524005549864848647028381123925419330013600276565522789507417147750621037624223944987572599334463083712415168295281706207042407036140201315070004227479372647655059703790864938777475426387382962535938740871355690067526296183667172920355483399518806681912384645144817577142720695742245260741023911662456276208208080625107633102135568403625373558915946511462562941876890237896683827297937687209744434787638859221641012798677683319220090328482822587072355633676368644188447451676410437205658643585134880056116017057426244740564061807613116949363833052037134200584333491662202252539111052683710106345529685730784357495766113738010950672287646273869781780490913087601863512782003669267439339504735291992634057716755536816537325589519945864406536270059897697725873326483971844892998790633259837294002105987157744222736354617478497369156728977276871262268390088848532366503674030488847766038287124755001064254926333955772712173964134879199448532720425343227929651763902573123926314931900759400086256341637992562142992412129115585605761322324775657314362669451983325872977811219170846318499542193635629283815014881525336624522619799122528762647971744970197220180911231582470599948736428397256288898236149037094380292771165460166120182267775616947635419059980699555785773319321784942326786830974649425757377363600400700913062494081310847982878983773997108826046401219483633921700305059458808477489024570996748488735210253962081985380480742991301601276607543638654843234453415097179643428281647623322581440896901706156490455641224066707405204774893736246755880293787266704984629027289305234943430668937056638104545263826832710875131660616781902994502904808816037322134122263110750605583649125379158980787304322903764274012858635086952401685533869305158341683629231963813791785335090289143390449087089852252170887071466173179676123005745968173876596329415870366341052623877032595924561326779703361088729513486808117784254321566967511748545425839477931188874426252620407054353581629307690521104318200056606632621503298293970534453401466399448392634516679547928646476621922480356954359171888417730093135004430552842273676466747402707239408322593400782049928963349238107997406344147503200117498279853590632676214914657118590855893129594696080449433276951646471476491915272227779870559033740241674707694374226112386642668618167622724403331785916189394830857208203296414921089702236657368910474787119952936184273684165565641898659686743561955923039394707038119622239452632933940140344172244633057296583922290800741116267096374504909952476781799654550911774887131971343238276567532313621284631878534128864377306041073099059832565657561489404037567523535099276907831451402052633485490826500665862398946226262563414152382549844842234489304980339118083040585834658847535355394034323307496778535369672221368234115503665270883672006702035118711332616062379265030238497734874032551387027216024037221841344210434756195124224679619814482955329018733071554509834007550029701108521137816365774651140387711671670185455179078029526754636647774667739174945052767201998543175742473671431927770647807693535175708382272439987100280498433461342836189028190336415849296975496958284133804265524634817713236387691794229834408985971646002341364241556186666635889000828939864639136203724042976434810835933689059387458257555734905144591602457312053461843070244108336771553327695003222641644616538042109169648625282051939374396200560331124509013060654806264723182465635295762072683318034804571836518204730550450629105197569296601699103313464120759449216274508144382747959843097830936640122387006976440001221321605658671217988958912715076052501575261329002373136918918720735098638362329978670626067975305666993411076054839461300649657530228057764991592921799339624117794608741218661401417367125312241977312948274295679671102969192654385651437749016278990046208972468955412124425877205124374015609845313991127149214431085399646170444012713520399806932025392582133689846371992657777494783142453037311142893892202778979624748129385521824875471867404267618915406535096933982557317162334975309723486378680000324027865282437068337205724467429327119957322827479611573248581177027714247760730602372910709995656666133908310997144621551261376447633260386088448574471365698901648579195931333262600673128236444357014964986104995913469038051450353829909695850678082521112435765144784912476412109994465938604595028698346389679537617528080649234459185270555754344630393562275727992520549060473360670613834388801787273627615785244756690585490802512420534577048666666412910246318709664654879190002861676889741135925888895887841804003034711022039540469129928540483496269381606822526997213706584066410382440596457118540520679745702842856185987500961026768275780592943572427057087772165890133597535712175324779450839756189512059412592891162163388618639265725309251805689336727725364589317639416365973533368858475491284526707913115797947020170854360260819356451896821421532141791340697641937180237254858251230274756467675492535923083099633776060500956906611071083560871554583788462946208278676207706435380807872177584220438242973022334525257745086875869760137247913128990107175515542913015471119225234498055132568373390217113302065334437756793774392648810963182134415841355266101642383165213773073893199198629885351386249423713738519439809683609966038765467071739093632161026410684938448551535562945471182834884902284504697920531196764797502595635413312790060943469943758933303276440970823214444376497120014393052014376472532736858047114230990685865855290329058456182922501200118268577920130538737303512713779598800939938177460196808339491931554967580737100440479780156400567283700189689276202486668963213924374050865292410468820959620510592285823569199041376378006152384358780004235049940844507844590093740273509676808518556777662759508057554205337175697012736793247323262076065593733647614920480269645164582323710949225965959322769503941256184815669611266778792739729783603635928580853646065545404915921956592141255763820454670842929944872033998766819867309365570777866554065018034980837730306857841653437171946377875251594667198475149313472404844997391812144566570169142259491248270114247246090537642922662447610629746438349114642903309122643884788160514592113532499304999495528225893486289550913069002069870257034900991314097834096535046084429528370793655397094247322115556544843628774753666392866412018478265255139800863775992056998826440995093752933012527904112690224841252645934872301053988805724571442713109642699832442438479537052090811204065186688559277892877484388813938225742192246390346516773716146881981732542345888266927666483975023612109972077583124235780076402805537616898286754473049929635463540721143114173024377616342582391975207617399215996305374721812282558299243488552523009780197300449769407238745819015127537576625610071498934700038274432445636405772223364409909294656036787888835274244945630784305571336427990068040208742575585400448286658988611096268288824177184907457773979380378265358093490046151369888067733926202392621020284764179947348380676673619324553712344665882282880140738944907210105612554956278829848061886929241840802338911967053435622024359603134072306393401749811630575122810801909330906488938070478661426064728898895250436452043206712689292046438094471442885896450444681337170814401163765222411821056226172219797937192006573590897726589573113079659500676454507167894371917533532808670487392022211931308014548690852801939286639109157975354140326572808650923747171519549892391459851852082723262000543646733915601088694886430253349041375463521233565941176339494007239053876105015263631489600988518317620882427056991980265848631118577567309069798663479308206702395582563889403914946544712649451294018588819394586027501583507230856269412275656264480029022209462254869998168078906586550214346292628776915720382844665761225865039624312517838996281721900222898111440779891812349053791985935807838527403657047479325510266184411668347030447203063600809369628205397323683444945401447191774471864242251581291452580962354314171201830810180129471466568724869039043307174315686300728865760525200259858844464354812558400923615543344085309253586448819101649970183860591463915423161110432696391446382658857156627109103955684160009348447536355407297841592812186207947385446778282457084952151730971703711788641918040160341961418876597538582510930434326332255531780147736234338581670271813454781708001754213825750077803478130091301874153903128074127415186687332520717850276566445799451678232859771496659584948203639255887066483097297292224690950025005710264369825175742496740995266002303785409964246693589927656144846457459138665011251788661656943535743677450474542256326511561729936639574468635808796061569047812353552903724875296548682640045700415993391167217528075452280148717894419496173273385491618104268128671001653871328778112437003305689024466987507296150486866835455866174204727632920466333360655685425682772303483612434498552305672469658684193559362123980435568902020586514377043628931385201720414539756579503795138741056169647221771844040288897888317290351631427867336833045076137707726980308071567979435250727075596884612282031020460292197852044521967348561871997810577887795669717566909617937196576180431586236043236035536498743124207315763642857706288375177286704869331291260175764563503735803612323407083131633783045453349611839655280638411262835873219133881346350974960365919995406509735719159053241883949880854178984167133909305903686510699626535363866082401646148269586107646820410039438877247010349313206054511976255445610123401236936726245883698263713506103268094580338710640420245563573721914677525748755640374918067966725746510930161779266388306395848341707830083004893239209291018591223895545462078299383135693789077590590878720460472762178510063241447021713202749514333967418307128527912524740648618977581353380944519532648675707364576501138191289592801303809186688726998574441470484687917335268453390725191831514738499785333203269667311157321406136346156630887192782774196952328086158532282876876953142894362239238358521154787963235462633209391160378820839253914014573483381815719122045618641279269309116936391536995576973889634577183951578540509097608132861939652338656590242160798246229962555790307381593038060358644867566360990650163005419629829636790341677232156799611455780352182298735355788919278557070006239226913326739219543326881180519490028440396414897262417047192275654390985381876476218624467502245897582186420948581211079692337061208730093034543189070770966565654667707028628412991234807622740401861804081742331594088412801170064792590151877840883651392905567737740432125569287023676853787574555638489665541206220548270929583092004042992954858439596211473615913129357324366439721999260734855467930586527748462981982003028840039999664246395775504771105130519146885701088911811859298485378106572453996841159376925374974449245366434388292380599262321605615955245921543571645801237239257872684605503956260464925125555816415946612214058114939394771809995851635243923774698229425465974494190813236222204052782848237122358754940102949792858986073803000140854779955168623540252003818208932686579833061964630974539248318796790809740794946590253420220628502190609882580402097150615473344197226221118077397856527993586047180963889880237184919439236218772631853084716644557427542338145570516070956556867277224935998411753763940315050467357428983177630384954127768088325349669240897895066049756596554816991097355423090790235504973864263023489297427757228549923928396746667511281129061820490367722595540231870438669304544679494678028740338800462671586557938527712732735269080644430329017011420411018148501232335525386116988474369122554117272706516422025469328863550419815707080016692218265776867998087738154169540357757793039439069814136148991980629945878901452301774235792631750710796171910610809673521794661747784989849354747352548204746366092818604989831866261955837575672305148775576501817373290704765821830385016613728700445184469701442230411048620935823308481676044927579665586132842213872612045775088931705201295698913842658140783277859386867870485942259741103287299242017018652050599127764611043661589824350186901192420290112489916965302030868474123341408906573530434763391969706319075751827014952473918112941946937719824212618040404831038793976439478906464513789778385703306504587147105907264377045246237190291154815322842881525760547005506381573368745867035888004334083333885221764394961771573096277319962052339568192371646054676378829936174854474722477856892095705603718128609693328376912556285175891063787106580174121725326614493914785555462254999535396853494531673747239108441770616334002416960814147933816748789671512909485466190082175117503770613154964454831242180641375577450712142310543968967794208769641647245718849943901350437768263384719954948936928403872130939205381469339004875116562228559300741504583574398521423540022888261512252519873213943291568511253796038788107419210761583455199980358329802320039758927743246781635925237055531293694285654606841769673933552268904633657263474237219534520137404006780336913942854455719202410602249365664045295531484247728077074364370016703277569555721388040053258180584500074736034092452124227417432537755477165892257829167799253509856856689048584256267356947832378119047137049919738059026577025260689719407994077752272082177315959995002593840851602551997805948444172821982943845034444685174764351623549585090319303876399463458413190004654661408966081556993986905582157908640289766862843344539317881181309880026245813194548048258156935456526289138807106570677367958693140282937468558770668313888369885704882865669818767051423638849454774668618355551309048656083766548933762986806017765252992181377525849134421571640952989926636022173558000107852011403339159331129896923120624218803501082061729626910455631905974526457941167750756517477286605113293358976334036463835420904999708699369597351912293560065161810408335438844468415083934696653841884349741125458657247396172807967925216133558440227040612088838125461829554006255884364925257169871701321885569133188118476280615144434386993949000100728454453767101281228985308356079199417784965421797270053693426930411874003608234642668639164996329180940576644839353835969797543255753228977835884935450660604993878596672908368438324611688108241694526336332555159006979510300461821460923781192707017872181296659905268069797105426421897674820907075101370402650132733072568192613902700354813641816857254723623779031140957350774990373904008337056838447732429410052611227029628033914398786599840273732526510899526049063467512063535475642431050256173288859392679166790491326086495273696463634735644950506260060640166819144772259016519592893346177887961481777127743831429983018405314407522175103972752464806570727871039240327563388925451643935028361199945921548411780107995860824501405383919023802962533879469292924508084190618638601119486635815163355116579124511341517054086764829523519152906949890898004123473291336632625282998827892796681637625239092824966706042407043304903130355191987895596063895446516213842903997660873087400909702071489707921413742455951963225412362106849197967326695631503624628167347197079361229023321014570370013361551836301675996019414522806582456559322551468854234299513178306204293885501169307271737232967944158344690206918437231497243486087471386650347711715773986450005308292689295110350245764455628208007107435010275183844591285712853640558604438952316645383794662378355186785916317616177309809125450630947569719086748313779790942018573838419303288985566929950027889759391016588609589113337431392365738581886404320596968735996644479731978670796268580717933013391566253679602283791234554330809541162801015541950031418652353130383153680249859163034312983102216444260836326564686695289414176861156826153916719664265293390277239914648813499573606154912826064285070015582985123583251800506012210501196396982158214504198333362652911547286429618183139656432110568566024225311001704441808501567183192655274966267058048212010332662275881783739631448253406483587441173588177829832651663708213517488372679043098890042894036989964343037016486783657178458860455205368106461445662170709007725748302015261878855058104081042630937481005641819292006353103973695007678729459692600006452217280924619416102294971162219072760469720718640931499406491625198691335252308689126581228352067134521844906518363560736516667778999112042236683051862196644668384756519647782478098138928937552303756293025193093607770882750057000949038146445505238644360388578014222600733896165954437073451520730804854596640624066363225106720442260931770154705097477131113650369085213479486536336816455373823047646032828866451739159438118963168712003589877687364537702823526724529595920424009677110708077636568687969681084154868115604898762590633433579158056336218257743620760864303815481804942995274886643715666667130656409639352978968825882503260153028500304325896261933203020354603434562714725141738322953491148852267565139685682540695089919052697271951728596764738914884121794257973445398117797056470278043341891294734737158128966023668201110463431707835513055889678867018873083259921969682054495439713646263584421323060951437506197754322665937266859592345116041890969851136665894460169993206149578929198783950622022326112875756314365850250001395942185208331262474535992680223617719477141384353878101339009049825604336908177175203644213702621973060751323092912818857693121681406584647911183287094039293797055137712103729135992012012092975843213090495399286834747755272462576158894359589359739606699206983251009989216838720015835717928285544892388820593181939145060879677916919167916376012334367457511183447205216467395335279144939049348678880243697558029847757083567581803679664628915720561426865740921132992873408482216710305962693273504677139571236141998973491275428469109736328206414344162777118624943144060367492899542108201479725886289303291614653962678263963013791920845773796850040377937128938751415701074560785485337536008571915153303952836765842309035652298678088448931396376745991080296972345576322852371787222235440466788609931385842520751516651660467157843697411706222970055364039548479870851571905725734689095473815634221203209297107281052307874006611919420110218042572693080336924329003838644360562015752348297756170649422641314567214368521451392267413668472258123185016804094044519994538117252159306917123883876667640750843805744514600353938984781766462161739614149228486628629195794263033927945965891358915842442590943105063811771400204193111112467292576207153055496385922769779210949293959765836568024816831769315414601085496425763121909173742760561009411779248279965434070772855006390289468994827488932784601833268152783365339175257847202181473463659840022316682737144398623029417522168055345765496960618830854804093025622025721466447006060228884605304760803132138179461442993470460847055391198983319095001847075810888059403547348598890265578950586267433850999529645326481562691331876134958778288362300800852964806861447298813022483892379365754114541775638159941234660763501326207665574088542309571669989518483316979339623971354802274119654808594839040609746575783982537142797918271887076898300922054797639781037071048639001884769203314108016568394773882586663911958256932255797367315198349386056559180673095984980787334367895250830676426943416555726424962947390730293488712321073980012051873720597693887714573309368262116189933734472556666757094578450668798557965501854895464474238538149527183634650524693630109669539313283903923102618593895781494361088554072645339550544797799244937218192003411373910387389132901581873996702754036486968611714541965927955349683137230775161190989595922494519129352366155178807118481568743778781325393036055086189309599152772943615437160206614147492008226850093879351910459612520210342000395733302759420894606765580915411863724555102524562286864671081607871013755744799195172505954704320411571343710620233162596905008408843663331057086601622673789874723011433494061834524128868700344422230128974730404418011319945650019234096734736839913934131934134242296472398440508865311716358956465329283499195441292739891652788564127297852816042997261406843715671822496136015945243177344433977270677779062282086485701020693630451788183931200818416240794601607518671620341636367173324018410186543722855837962438086463757543494477012109458455248987622834604873065512149799341674940880142404796335783059763048678590955696591065006008003898533430045103701288809844322293951841297859392864694284414958880050653761195281531404123389519913677489960135056740240852507754928649906403654923519073595340095154346197336373210626317410159844781963628582703001036826087122879993278840870579579457427787824081450428742943228265443659231147499364119061593782025676879455089521439714905856593909466105839365826207252072841143957291953226769736470513003906583358711513815015365105453009764772093252352947696136379323889234813706396762450639044051378775346283103738965810728869924646614425469503890068423790811340287736367367765292053531103282945343553342927053790677081335525943902137351168635916635619031818158794341925887892550562972225311628035025689230843541600285085234517566778408076844214466511222686312973220419731922256745041357249250309935682489294624372060193593986480018850070078479354040796848151077706068912745428368925903810381727033074921904431823185027704664188611886354302788021690615454612954105173999063352629553436199812385867605867366097814202835844968706768080330662822047897426894560700938809780325419786336249403302871515470496394555630478182626086246141343656388043767247391905526362867287386190711945933543874183766840252518080305924738519047526095879113196483842481285599779730122137662956775740268169075154688963455099469001767591855591685943013680533548419077676115118993135680214461992394337251885402395500903185991023161461744347593688574903874933929308029497195915285395725743390341602762652257623148680543204240371012589712123619401395528009900124404603608395460811506144455632324350083472981390035001980573844982593978626749216133113767120915031235500843954027825342706728237145934702454123023125790418046844812397434698204081895083307757348424936669099446806408850259142203879174314008580625796165154925965238723173011265484380131263961501395292150763713939072683689468890657705840588191261812026264206174881322395072705364234881480798405820769625464647731788857486159147581053280678772055424485167118463366158905740174109892777049369974855596050465738988445015989487696272052602355927714109181429771203699802954246678395558995119343967171301705051054749413952854277887916638064825790769841652354638196654331004847256502673555449195278996768135948492274391337714353086099204934736002712305196019451899771405043225735353842436322828268498942799718103631311379281114961432257141787416051366714742128366178513171684176127126770312641271773316853648857688160369839092953756766414074241034852536336737907772668720222558997513438657192077465830710736852509913178452939992159603956803678884712346492395758466034863942777638871324143920467311865056722387240172826275429672651553698760252249151505158403263368570807686195845009564685616477778750017082513597560354586521008700560043241647286883412353116408374900974652576549043369568175803778789093677016734537396376983709794444055750931757769145737460800366116287477881585045320989699946889507720413732741066796939536879144303736338632176633234501651777292245926417622046774825588999224418584173395190062325300782746746952356163000462654489648759542223116781595430159808353315318736536725610650628875693269809048498337408838035060698709807404439379542310326926753727864553378905659089095879637143099049455332885090538083308211280372997212412264900370190992066706888422110057252007029232937109204282674081552724469129522371177046629902881361516455649753226501351334133483118191384021567664322624864994435104485399968976520175856920578089237926911693290091340773156936893900177999795663538886866283574496391824375149467993017448122641285436966952461012045591839228735716064302558139039242981556273150836489738051981768256711642062695361974708448708980266109228303698008423587557786994950749241642515921520831895960750591105415048396701741819890923364746753351521437366808200908773931513035427755087504032579948490452363858752248220830186471741794984299024138890627814355489555738144599488887049126758234491041636215048358243395112669925337485545098186610828675979223063811461488230489131231908941569355406476221989811881428096280594161982005492071084953599583429639249250866938922957465133148829149459089792236122950145096010088435747367076542556621244775964860058843900956313391812081030477215754523965506424519327972395731275162047853072820276736434767664130464856680475231345471792030501848205674179096459548159154182816636494733478001749692217925670307403563454971051888017873595125921566100406517624119884566686725850677949369889836711630733361063906344447554823982695728069157190331177238146546021657595736419464545619021397656214326663638948307777235323424755244729274532519847157576683450604944383190217013133888799904774739564882923775052432421873518319731097680344231775505375944176595980041134384542015021624254653323485024800010624764640946712471279190212702693038717836840299193122533212556640712669209341310423528535297645442732733317863613511554314499756974859922272999693549024923963036221239452365038367983302280773200139250293182426792671923919309327966559568075075249133391316379559039607932176402663772872435262942634382594674075143322481558578725090977722125928072196855437170711653079827210421353745423010786470359529722857277132356392024944430019420925291183877021550618008078697388051397234696314279168940193967234210600533871612106525601454918991619541132908855096064604649945247149385549937557105980207440886910693596655134948278476031719679255592060730808505761526284637986015338687605675251560986271023179519074629227107900964180824865862482714748399083976531206545547143002977370885489386456975939444201996170267568735054003051557904154898097693541010931814446083706491912596239921026798062484002070889306559790429621113931668817809014357368268870789172988196171679033937724857595337801730812742387512274582263484024031790927562000592917404470010341790244869328542657955456380217945553537943260821085174024874720291616412937393948048460204234417007615181854471658017297945568477364244359503106150987104993417194681637298403115500898982120806353635312609845232465187170064127114623838125390383854818399815340945078943496917701556123738833035605143989032164023123588445618520151647915834968965025840730541464957063810115721326920218598400806847074383074466011498305362727307604861159443006843760747640798105214327905052752558680427647030195872040787416918411598868742918993119834367123966578905328637832603488373192623569077464255271150779344527122523920337104234045024188621161456257265977818144765928533218053505549276085353935770582687375619389116716683188941716025954793760448352799920187361059198254534469340288893100252640833039126555195613809500460743200015816385256557426839432946902039710039377169553454016389864139833868646593743630844405738195058965868705929576838106167091331366827830078773983197319647482369216504368976263998021060196775573485038018459539941840366319673505130858452054026986157386345563806329403020338070886685332327754222291565225528091692015539600060940665000021381915100944132916370580103462332957901062502350446817604188879305644858060730979806538304515565488373873337275622731714776571358780587916602465974034547328373185519644738611549073430609156832863602089298791008129435500032665708721945248783243139634756178596234079682305919813318466775767810172567376202162558244541694738927177686692033937580534770412536931103775194476451050350874319775621069699617260086020276609163092433744773881223061537485929414000316054900313796048432018136270631100928446028849044390799404875774210676378048670096366256894887484073262567753020842887447058513315531762410018265886633004915793885116245844898961519547720548690481546454014196763674615231872750982905854244008740613706639132405193582340330702653530937929616824616015996680257518001481469190103032244761280051221713775064117932495964721539141309846072215011245956647077514117153778515632242920018014485639839679396260339542014703363615343119243166973730633948320049498509867622541363809284663849305203874513890843438784098854909169632384112013464312879495796362560892933664260336855699859301525103252895842663453983968017589842798410359877202324432408899966854223910823727080684033444061474892825890297619006164205442049127263615999308681856196199419039579512411014623219483827096744846496270860505205861323269820943044821390384703173912756593221579758670355833766085281360264198019838530676993743619886717504760973537422840852423811236364879294509416847654990247633996679474163148582114292708737539828983091589299064955970007546355099660027492637421191295201612081893611114617150269402717961273697148073577511001335117313782975686966026418767366018593081909805370993743271945639867032892646820949753743686088282041997480648876546330834620633004876692381709201486361392507026790015892240692252002631110007205611071078832791140809279030793692304240048307787120973846181390670589726670330577427178107252869913721437783586331361264556605164233003722905017133674456415736608830982557903921448599443321546418553067058712682025155169975005315707137570181830004632432384774169256646537198254466157133331646241349437086035642766179431730797822913985244911672401625510065570180816070351415796726220993212016439906842987120247017449613804874931007225641371083086423807545490257929038768821143702110821694077979752188818444826772134544609825264303355843170936901870105166068679001602226751861671679815690766053679280918546622174806001000740456159256661767485861587768835756010759574764357281983058187352056916748849248168663133436498647594970817547268297615008943039009116301608384594601906648847512330324638746658869214084275334128229628904204262463136682782682374687028115064990662439342719511514490349177941078653104842858926466490931299637045453803174218632730397560770563645196967681826300521910363036579832966493344894886853014554293946614882485821091515661107716768973730918738504973143913991221254887275399996029481093297230079592654425329332216976698376341355847523464316288429688141949126210311694648169435181070419208646410111030521365604606496112131812769707495788365282967469265363975133378326174944405161305111364333758695158440722370105316862577993398340157346345896977258701982820120141037890756259700555967721572963713646402736414165299570489431940419658426270329258252247407083771315302499501975421887478849399915768797589119393728511343935966463100238449141184338496585088105445529388982522616370332044212746390602012944286597034256727470046586726809211696261002636771842483608951543457367855110892401920414377479994184197972155544484037307637035721500858012896731077364976105717204949937108018191797083423551989666697119902547802916085691557740874531362587885831754641927512009024465334496037992386931136555733149519487562497458777637706175334276452328317913220741490737973319704761625198770216402199647781239306776829464949106930733208222930493964363097875902267325875635682044940826012205807386777873016530953894052433929327087433078076049112314619621738761653798752678968492191996716364142350985023537010885678097116279223984820206733990251220614094572576151037735043723773116766156895876068228855891507727854142946501787199622650206215721705854014341209026127376297021803287735806957162532953560450067038170800202475240807967831516671058661439654845356165743276406362949025729523174214206719627311673183263418990146395812339196820329682494465854764019933768091837291661977769686202473276364940416375523374642519441788986117337200454155147315969872975298690629671953541951661475911354534100436091772893649184389348025404065805995629124368208858745667807951546141772054017934151871883023819953302757052560276851442899164150537940339863060636354164480639240602645299389236813519500569779909416381249358012745866376649112286731722164026527730728910988972417887527779695664873255973011293888567858973699822684058321092850380012967621977140278990555649565344827041143581357818083365338596002888695380379242052983595872712161493219269740397195923525874119894292499097913152174328430371643580434872628738233570536236221746545340337415870624545892636234044921662302849812649432283251931308117189867607450617204356388527796071222965125218861106378737453761032437038834318792022247726766527155317917689191658528592550580455326253194681617627105840322150213611975642892799290843475442900647051714947961876450148737369756858956597520843254117989427098723754117275838913617113959787401499439046684380226360996565552375391897257113479403745121183528986933600506160170700644856050622308422224053195415811648317180551703507128752581062923862007714021034105731223186860208521110917366238338003201019801484474496673342286910923232891552699792758237201307179379469503848661649740495199591555083760005412492418799761009678042386223884252309427976478598739714321558895331960679169806159278584264357244629709761498644775589341548096586146713989579297177313529360921457901873052762756021426903155065946073837132237812177315852950632997752157493798804389273090774819267308527294534944809109392011914602445426175008817333890426927256203041598922551475931339556844846945570958385121187412025242620668520741641805792798681647459632583531391212502671714146829275505815752092262747744454217476512418687110510939914229533891118217323748515232597897184972953767028160591358798266308072690505988043665544598171624546616440547940076432866315927181640029369387390027716177595984425345750010765973427550610782204077270250861094557183019110674905215130506418336886174689863567332288599991444751191545418658315287319559633789439600005219224596420618718095978776182020502635233830657590275260112121300233756770761554103168147920402659353965991801775588311383029147272860994646515527571985034940377526603231478533029567102139877779476828242061052974767253297868256863905308238155036902300443479660786082551338513571417184091031126510495206964175885721699110396787279545546865151132427853257414273779345663164394775411368772877450696830629948987744847554044057203682483480620424601124026559428453400747888668545210063520892249732530102934369950055178682533224763012936340523786835348066570317151343798971943760179656964445453195748403818655680032932118682011750708579398957084853960553396825641457620148953613302704547044705265678935631285742828902532069533563926807129579217936080543324050049942682326687683280812258967198622418793642592188137582243294207296669141408208770841333786491799258726030239645913366286687200841324556168879358775131117165585165962250392870018704571594568535483492327226347600233983655260108174917079135699234509227202922996971882741031418402529103374788568822849223580465781586972214035515091744206859400687450629693151954389759601565334880772110804105740009298874535851739695590812611965590763001590230771589234125822082054163638231578356480213684982876345807173151211914662260352301369875357420459924160314110171622126308740386709535488793081526957018395647277575686303756431488177796455645016778198237368370626484272917144346345500118747583366811816922467001814962960258293771118865521023845635343729471891552014229535067936152517269922342685719301062437073259184168145246905554854368167538694987842703485225372449923459133996614357140647492189909664087913457351991293399357419721866962381291869938712158170456398409936086366460942997651403148542794170652068290334113579364054920189037030959656787288559370212895432460594845085764818879070608771223337857723156393787209914008608112511642748061297637508474603171601549421690436952186681953617474865115219584762833036937498872461338152205574167089694529362430352549290758999107235620945129666808943675853239941710328634725114034103881410878467603091107157144166859213673730518252653406591366927944152773946608806199242922821051444291559465472814787569045130025081086649065494735233137187942255480374220357237371906206125536710110463897498192529045433895567494934393253416337991960391727712652801516327204508871378882948025931549256484622795225283418523601600505234941848486695286247681659013417761146682713809063061948101051373403886062529740652037131489282451105399507769251151233299788380355561030203842578658996212120414498686378329115487276651205155630960104323990065993693530188263539499152395468108420767845756083009838476501211205673207210036809087889255555103426274070569476313403440985608682233076713722620011335311369569296002100156566224178167075917901377161548492210942743853382487899743257585798016677960375401870594479040052733217180259974237273991774021650392102663232243169003101535746635430675764637679572342205061431898036226410505736265251653079351188973792995613374062525159595820456816093393104817876744663224021175451900000971162232558377547909830756738130095176687315549814024529340930984338872253608333221941901209690257510519719085801237039835165670727779953431244338165722882748815730164070383057994252080663899663173693196123043567395420996681339228830346039791323674967167584363581133742733739316120857362805686132436088459312906978356338419504688149086290217218497312752536443831432407421414301804575017217868112090029730782438711259475735891000899272355038278768222106193035293294356087426014483746056225005009134545969645091786414220019782996967160122419086122316916926461304424948571545991670555760540622979842154048501943615901438828055384737982855750385632126823846035492737545878895489884791485768122322686412260546193787386443941856063261570060029259438337444938431932383117232791357429409422102850460872739214538775300454665095169388676818611367708480537341886776367835806941568492398517080697689565170968657421617601098159965488711801532353292316232481269133445625457798237672767498382362897772678319455164370804780844515481773870924296660254998905638358524360302017158058304565744528753182314790735729649230052584072601014582462599748595800359847081684855186453682417927720263997281162066895677312275177812891921537034776051601682246342385805550656406793835327326454537093279295598342672467154931978672539122205382702810555992111925018840714363491695724051270099254638739402607847786160563887492358886520318053956059149642403149894665220504672456679036786044032839034513804995888276675511936539534167043050301595016364596905711897647123047115566722441019093707145185421811963161536619200304379522372312851863549810354617014086703772117393978063876115389726281167461252403405252606349033545399534361370366781088722757021440387138422966275053792153694396248559467982129315343013507242227324551296100438253822329179340012080617592132210693014065100597133481249064108407941283831283840034793609540410194127672779236574640087020991372639615597634492198985259936858704729790041766145768019354190418612745463084048051031487091594988711209629632273213493992008354026362003730895996660600227903188662554222250854012597295343974574586146822337470538320396776831491482913584932936421099074860647631491949538886899374124303375556464849718671642757850026969830805344306125089370276816716172461325975684764851207114719504614971888448678822504180747336874779124097616684160562542645693504938408849405652678009630453618398502692125408317116477318122108354253949824596057434272763128151995511267993867196248685436852600724638449169039643901430305241509203901037566897781499705373357156534800396130786956358366327200957838788514029800571363856840883277702997167606673934930703106606303814154890946925174265430577068197913440408043877293759657032642013331509537626011437788625667013870156663031509594189956748844525390887121228739965528221231033199365396169721340737649914077714771516208069798989398356199706183671641537058112358215889983372879587738609029632590722731067648292562028780122122790399489360777251047151242114216613529060912596131087554000686341666069093829535843225529391294106116043865809741833326266500001137464268354756963302941757194249203780887155585375139010439767284772344668495582834397971444007762765882211082534590057426300578468468826967910066813197684851033946612352134849309542387921419503337418221524391972847376150332702067204998503699202082630764998853823359888259883166869795907214328785975747329705700488545371229258532597684461616146738118035135658855755461213368134258264544689081370060940840912431728386532414702761373695454620084505229502024265471189373314537982801120301469722429232858159264330939349514440818462021024978211284370750637171472244125489786468803574244332515120752027703810175426491448680015368954432634062424646898396798518572686553670597316288843380752928446293512863479835449583633814987111208445611401708548527396448047259156922542066098411127230206490486875429171236291112322882707525116648889937170391820725471826328267700340411303853345545530631480049335805049280458271253206405585630686121949804004045239142412636619870865232874454421985032541446349140845392703188368647905662487165391114872077360853005731984340807353359134903231963119540305769098128440772758320854122002446427040232578548023678763447580481571779378512738761638471350898403269914815753768808067624895319292052626456560820853045148779716639764401206477756692629588830320568732375604546131291702490690120123406874146048687011852560616735803713833497518832798093205633050934896582755444433582409287761482013722777683336803534598173333887457044201186060901714245244173635926420883992041427707182082948442260676755418913233858897989667128231470737194623294840631175610236152957408330658992327846201115145490697740334149038085887653680682579662538826614747863403771469875800403797023981835830524340521249218257920202109825993566443127633870289337182869222812624318786989125031582237618438307891473916417833235625062859163784166421315696347474919399559824609069072264268022645233531035782689438949063436993318836855575209758891407528649062609281192037010666017968749816821243293717257518781487716958786345617175327726566568313606645649923809445563909390858652763296869179160286175089165977147004178282198820536009164590677200405285902915483536407532120516809891664644454179898215250801028777920446779387247429929174150081110575739790747557124366145247532192974677532502149076635099577278268963103098067395414337139222972045348934946093499033934768309579798653312902325157321831804326631282078172766196736428392268220777033846031109957646689002889807411528242151808733889271456750156629548351349105761207631511371512327766873192245781001612420269367418232420552321061973548420549890043295619844531711686814924653895873407317622060314794793237388259281775046462678060137118608497390180404057695613438448801156048146948843799950377025280652498292187915671788484684736733224550160023285038452032517147809612493771681055579649655663419479643494350507529508581018527165235834432066806985736495923969565630818334630194568429922359500279826035802409566339992390412920465818972913817128017837823269687127454007154339661493152946480026802323761584963565555111685814652884828126244732891767724504708693374690548493988159329644093987798448913168300490772873212986854527192547872243691799970380942557819912799892695886646780956297415063724957714636447661599283722575652862355136752621870605284321124008846797649566264935408442416895073661626143222968327554951047731478647154103283563567654431680039353920562414050375276778176475734729454210049059855383108861793928105864154482126023178184673726946168921470017245737052517102438997925418408329650742574524168811575561869236494031641486337657930657368849638822842654461178097345804865385368097562599240251358862194941202349725164796598395539543451970694613892716530297860081534547553036553763268121742617768904239616910535833275215275085454265218638765863924661783503475183582422650947740882478295892918550714811042749519098414168596574934668816440688330323325464277803160908984307289680407775141743368211624492390255199593322159596196659377702550401521928638095795300679378111520368767023596389986791008820658023068314027283923594615347882418047323531009948046280829884720538283693474367754123110892429166228783136022441766843242606011023585926411669268971781531200789139143054882442316506247894697349989582414229529462348613963275597274965239119913743680265299471772636052904239016398896046925857125787867114950085805381928371066590470036783666573287219639762076903991839679799114650080452736349791953505271980205468444255065431380898662105153653217821342594261441797192854148637516304762358183126411926714094228816687252392258602731322353138973816842478632054688161371818261992860166352052848338853919241808626004312070126660482849281353251638450632842485051909617746657434389759604758275058903045702198778778919015741636984174644476661375100715195906512349871322005936837818222834154129289261481851537602836056298462209678669888407969405758323557140156249485613791278121045502596149352481123914704259649214935772250035732290600023368573828835568582415728234009041518573793716733144908539436583002699620976894403320076623963537524877300992201835812787011685789009214813743649514669299287068969119791075251984301948910210107815188388737678491410403603639821576591964205107182603303419761084477985411957297601581047782223790154609885006148891556986041786219030238195272224553964653216681827093876881076076562799105599505515095300539046617231588578845073360448999799858302616425058136880366479370095656519920038630819871223379551346133797133912760352874151636795943644997769278288531548293436680553371425302824134431324706697684365148136976596924800343807613015553546666517701957903543556651902244426271688551387011635110343446523027665394788700514802030020455893133095725356308137658336443567309459082021934944594223360322130898417809980679661381051416563727284230934453321380367195330131341889816677843166319547428222587907202622321510633485532697167300191549542713704055635064421986058855804137060051455151468816042681465548693668444177073569734730273589273468518318581573107836432725373617370078923815080363962068561977231645166053523372470238687612767041841672607786109946496364612069642174394017641228986816061707538885823309834818572660876864737405808880004133122560249622704402177668747068133947906976422430242600733230540482818532271038442045861057823246412495771562347265973982482803340799267207700658177053964830958384582096972955392781744374081108816589978629734840687059643632024757596399001433858995927935215394616225507358683611186697563848425721386390436613747503906224172692880800747338864528538646133095656347159494770731997939235800945997911681979639917069204972401093248597262667186750460715133892577048321184707658692253675057295738287622879311651809519741916298418830749578344385071014738036785398076268587054449947535734350388855485853563745569447125499842527717613694083539487138893847262715760672793681284906220921673035413774375895726569658047885140222721094694101261750246778165793347533513078472298504538106131784862469556453689868818483104582436885457471384480634912166595532218526676707724656292503521831013473061671187498853695140059157449128496309181475689013897850569435044852009890690427073559934174662460954791500107415370337439881099721088918153038122618776585070691423729687563560371279492423460082477535785848916071060693106101385983386790146308851320155526011096765173524161791399281286894451449664908314902223535323416753253852208053214037393523487379808116329646951590087713787942571244724933539778183737778123061135487030655472598374835837662848710042533255380888857956601675020457155107320347670274508525405699633163135281437333702450213757932688720836011571601061746549827839017581216630424814335488861510403787305903386412682357484342645311292186290639634260035668679510223081617866765746626965222722728863701166281822601534313931565058797695715826293829394445563311482207812499712907727318081682709687499196095211949106119086223428152486293771265059746943026262949652433415646309769315019380294180360163312321177827144789861205381533370739663124223550289257853274139446127445657028846503573772939025159431528474500338669171772046884878003526019038496150957902060137718685017137092306619878512064232379548416989799392536890707205901816154298843282102994814459271927796631181930806715382310713707523836557796827700119213911904487976743535746622832535196417401093280022557212387313674717781762260701392332181759542463218980640621566977472205398851165647914196851435287658256641334810737047712616283872656245220494005855106703766845223172038680260490329905409799406501010835052061275902307949657519255088479075246749460632618576853103590486467687700691110470899567827878987734919459779681198806384916169922035998888917599056229061270490975183188378406131377178428088624118968074965689466608263056805838854545658459205801874210897586543582762935178832999569353597556734148705705252215109529095680673011335583705115122471218427932806499180695941793154735168992654589545342433546489393202131555202233257249261335736182060922234382597248249957453016048512437217948180894835435554467516094389034489894727398695339598020075731636811487426342322251722163299656224883652523811718040307477727757185163562840428781933395813175380029985744143040378321781106539601185295348097114506172287453517485839057346464395310082236763931384874019186023236117760815270321376914940162378117979355887459974718051938092953012928644978015320772859405431672929043520275139432222578233842714819671483465198768090459596756037642296714241221101709536913347372597363898194343158267246244114372568020524082863451417741967761173425634722199067046911355298631644060498338878493573437963755511877753138051716149423602847109261390999084736963520790897618088336044040140586815680786751094523906011069728477144574592501944815516340438052946139382755814542805557317980821607010961260764329472302364800262380513571094023445072767010472267028824502811519432333890990324564865235337819523605317517741876265572417321983065377049807917909314229432261923579596448628963056566626375541814152281204200079073968115060086930186866691658755635194715505978172263072027371087118472417778355526042882582830872421678170569718489717537268719979630091924431470427558846460701424597299775028295940114232603648841534823626663656393672389134250837791906074576764727405154366006820968391814011386177618680900579843445000525573397555302664967854602346550062812095343257127812109527364442885157904596775531842457463453114224997233481188084877450246677300109320104019774067865747970749959994228330170482615751740040195727838297268414232236864722781547150445223567045070624377896479588436677741149576752959649540940051997191521309509728922265520949370353085635034752877087221366408694955863210554252494906315657699416853360916534006447102952449302815501555498809452039656664036279640533465740465903362213844239019172807419683895489652649703863870510211595219337128467032618339495192619638284541620092384621092676389088403412876344362224353005509838843602225541746232574021124496619755675100302456159249026907918636629810507487027045484362159428141813183439036441108855014048622355492867742086600768357968952417094481192612744786715729471815996941278893646383042749359906628077651476974149486925213799096685248022224816116264411517912719919911280323266945419986059265599099956463496095531036573042281709450369869250758034825001600795611963047444897356583874421311337977036948657687459989338220082700319554215334150926701973596772751290620058217650322147265392700260523221391186486302410689708275530094976033835712869881100294466301976210821843288597439882201768866660595571766869885767730735313239288703366821592417248745647440503811808910005040056917155516078793959839015817998469559652808748845889490094824364703821761702227221413710148210855674449271717337685518433426534682958817278173984219769954871684302489520369693434993096457113365770425687256314519922883894743492819839792658438231056193348979676933401331019839415038869478266878203812287724133597223778126238798635189253857680417749736822346313344666328596423045009459416423675910525431959896932156524543639879332888214261514848322768290303579599389293841927279731364343745255749859621028759291765122960132572177211931000225165496408517291451915674789894965611355446924785476288932625118772283902388487763752707689196326586631667899269778322025034366936738121145244157558994735357371137088009942473702013887434542271162290557829904110287278011232066336233927794413946123649781465158107645807413895271991156519504819979475119566092200512108232727967773980940930800776156237267488354939422964669175223083422508687157034478692379648256224802761136121844232267999941321950653155649727558066781940831255657749143989849096194952490856984570930944535058496243807523348625699334808820472555971939404535904792417885702690968600008118008574081029919368945211246317022140863115319803289370795300338205004221356394867807171196924499887718586201718209243082987084926492065875822742779479722902333430102296204014979939688588064795921551293157744588788682974930466429340931487323849806378341150325887932156886173706452710734802956707188524404020865403931850714640899748246999039489470406035690470900246605032062126558870813631898055187242985846913370710589306805642960610039808158775419485965006936346649884743638125657404212504168895235996836134973416251703230959826392179089678759272860008956911438820054888704130603742383289899231179146835159649588607102663553435178714300546010359916361706526467724360982379790654664601441863339452734942684553683958538497257362834629498595707000235059429320520234476933836131469352959619713569644078362936552972076332784921945144940467839556393132837814630699726113400950953794128617216320822003384751170474453911496935725116628456013518017203138659070523510972339720738115436041059160593569514046537220607358055563678743059554501340265471223602421456195411018945273063946272024298744166084639601922119417506460183572811675686104716983836441507833654844501670341751755331072291778482914512577860169236304775814092268205172036495908841379196726073670373724431721330748850967038170250855232649526170140456062658626617440111292598169079569714331373194333545469870324923095219466164016044925699958049427746806866757686142591489175763907479429895887958832212665719072720147726949429909760263106390381772172933275463440578725376947887894372374917480331199914399390548484055776592111795747713863417900242063083933217465179877134887739711677982972113053902397370268669873038234275683600583625949270734936007754999704877566675439598536380319318297657061907980378985494564013391740971265343341799256147903149031086283379675310712454537438920404797673539243926295337796437623668620606117127650753871686253731962102154879482529291133717941968557119413552279988183912900548502454324758142742235493545369505957442148841292537899663948274204411821753108691786955975366644523146581104352621832837497246963151712298149756906287248491009240694062158306877340872893577012070569059128691446498439295713538627065838416726528448172141752036192084297295370444493334567033790412726048218188772263276489520139510923902361375356993894979279603291299035632812431765028028377156016261879193477132134490956939452958566669452447013467767980694554637980725999384310012264837502190993290067105368344409573704007789750784552632579638705115144193770024312917551576452114098306763620009483410518721377099454975679523008538618671023020012024942396509156963027196076633791560892677392646123528320239662045083381682579951382945563196351713102344969961440711309663185552518562908043224919143142841363582987969261517960627773113967332974118490396564824554481396645256136522772455255866754098029840285139327694712910503401165877652718575509460248462997320822782306585424984072981671580920309130601284957205843937999133774640421427181018070772008803699153106337968675677638880000196524460441477779276536567929954179279544130046516216038249613008332029005405375674473684672408058690586359878076269943377902005314311015296439670242974426674778089384426695794646089103836105809197911550217505358095673797843253579220145178425589416487677533080133759858608436623992051050487849451597201055878882884648426069205997093766355304862305335657099253656879696280503011901511985212239119665366289902221514097011382918869747651538111773320769816008685502924798611516368034087738972602632003710399038363614177211145030244107045740131837281586273095280512678581806310362442145554615448577415074074722678377592899847169272581080987377528972612038380599908104883501633422397618413331740654911895303106608854527278471290033319025519063065876964755981841025090609074015801653412965353268406608609394533546002610054779893489281576930234782970206037997913943630656901867807692499084296735086667378249893140700103602954063501181510518432093880184513051566375399039139208434757289208312114263442185152422946591513445036355925994899660012057799945818518222106873433588461632668435023942181121296106191275092965565830834042238440893782688930519577200791433201220723106695242115097067094962824615607281739803766916378770099803865723849494183061596709265025756617001174038597811673614330010769069549227727284191769131470424080869184704991612411364535316889900422114387412234161941207350073147453751477728904884589720492534208033816078585145095726192102278278158755064745053406308946670897051574158676857963065021392447621021708352497251208769062151664078874614738627685660430420795499192156263286357362410741012916325699458355921363079669601315809312342002714093378990818659943518481989213420875883766676631526100123053345248720118342894405458916784885298414060504983779444406548232798622950276458829136275492189400320919748494200139261086499308483674135713316883164987889912128762404940926488036679589526873475380252218105100407874705526808819792976394024735080321337703909865850550745133668637304052482734858533543886998038663270125600504987300811269944486629033035923958743689437937255410967721449815916629356930395603373336877057583168054394327608002291631919169600130845076196031232492325160550078139646757075147751586644692421901925266554173062070481261085139542278481635436065720888913609738559363477777822007346607625890343937893887701143636554785436254121602144607448888808461530977638569210754154542727543156081931831562264677331578255614018358634626523938225123498150707327686961421566596152803971200065409224276141567550269170278171989182370158019571563288832125519946907612746042393238648930540017419891749042802635726800701025486632259341006619283905006735385363888858923002321656117903614993406964125059678022088353363888582456163466201339269708814106119070884357712680995634406150789834522837330522426905893305886527267590260213940850510145900088617775831254564233681539116809095566691472738015850266061218653882076926396070343101466168184696782208666853599275644675779499766516703591383673600147458584661234032736377195689866046921468677610676763502871249767164020826003470127715404767117831163660750699384232545917543494947067675806769769432588366362724608805710021975869530157299738729020357278082408306546006536133008228750335727948178965328655909550700423535479807905517760828048220552469002473277188121337152398369194145853483804521102347277534998785877748684114961516001319360882001312641690624379815742450698987512747146740872782485075013676105022320492207361155075222475722221730506402072861301612453239586873308859954993434532098847604869657710341468936022985495275587144816020149147651106305756151676047265518291229128596991365187657672121093090184004794903285912483885690362522579759456198984448975052162287224597678320154908668247501179764250171605119832920500528174406521911787924547709576483153940835986004441399886479026602262825720863054847899693973442418734408345033404864959787490348883793984796981133723302392534916706270339733961506872643372089877006914725936744964049608759751594841789109826675681912601354250848958287053904571799183255318381188580595042372633067437628924630626434447794402187962577710662535173253072111584266379210238324698898834336716286565935930505580260314080805151611692936731900274794528572407968621237669108819095805917213311311396890605142440339473996861967273373492859810807136269548263450999015345524019878905970589928433190125764716312581202270053435129105946343046531193479118060563372701062852822319732213251272184495746673486684951440294108882483628501660679480149032806281265347237104599405699934874223108442509371722533113307991801224935091801506487231565631261754347828166299468305581574485245291288641343816191743749090953825692380581472754556351496292649381917580979779602559822544394612751185635799068192402667875357416941174903150395049846652632327485268865424558920182366574409396835627207569241472941845856561109120854776541017706652787137966061721199079283132585677242831596894334990003721985375170717546984586879373630261592161392557296230366061585519027648453790522858385500045834282618808042245413686462142062731884142774382140644848284041413273660264911291146634651709678954460684443027535221971138756280179377656150961983717515362383976480759865216574758007593415574029935894033992626470897780591901721035923818523882618829119890853660049376571973345382575572494697204376609109959133648260927144324232602326291516033535095689734884950251966081631489092516507109575560573557841179210631374597483315906926074895175565541978779055421561849981962894655648858563379942740264996519655659365655853667652582973774304249161301318346227406094829791444654999173247597573469750524283565040405527146956675440190920812973932021348975443898397926295524566494663239354124494111252408739098669909781173809711963210121038810375881959886434992842012685159227887479576756320623009950234062724704909631471299026373651834999970905459647785705528023483769141622555446440998048952842513220142873899877509846953997947050076246415238031086758464740508003894085148241835808168736959227088392620878125039740443433977909676727766249621904720858079897250644173100603018080273372399402415517583752532777484639109090813274986023933738899773155741189463323195128029940708182502331555239077336195106220484111069585979509286893069035626809207366156913860349473496350018172172572845419105587880545552452620942145871038090483619620213551240702755072706847460798460803071463175652826271953772380063207300162053667030927230608334286836029543698097352262187220198702499362830885751880479521832839626968102933714920941690055247952199261155136015169034627243068540178632887909724893362409641898496847036933060156370277343222657002175206622912927252592999270190194879551624391763689591974027739501731241656268417256104389038558911564773214868692300403295576434183081884516316362062298940107682690989455926340916478310097619412288083842973998886901878400946766998764989121816249983147064644065047469658986276555781449003258217035361941422551819471007858718526600797591604934939610998465566336245121272552386113207908742798892176579711078112533279342830856300942925186182506140676470558484271911501134201740025233227288227710129158746219841780446466017522101616548968995284145359638899767188547650238203690035935495319136450472510299139443317222494343529198448027098433556381051678454453522554258865968974030942211785488105405419322728438833297812962404521939448665085844466510182940316952676524845202179322718627682882563734658677737565028490142631734726005564995771745377853176254116205925566164144580792091397071822741197446172749394359409345396114467861915240504425557538645695376828653228614215256744032923508018428098394885099656617452814440105116773658123101540304199958517460603735089541360276800167826351409768495001468186229820952304504857518400475659663128927727473656323738760704470475206063520500977242106456544593407231102647298446178447899398403934899826075659954606337958440531008657820795001029486395979394281778451686796388678182955987498412913529514428714139976358736907281061425270467345446568429162727719901172440107010576445270474593216740536940534276298054379493884930467552253537377008294619330599827074891689786088556819432252502499381891587177322212529462955035909908519026465389750001068235583360767771160607031399707440871358006469959165627035381268837877509876618264345858418316781585735718351562248221014108157591804703851151184089182592798273697401063739874828889282109088035593207754696965650599075429339470780853433773475003726666900484555975420586188407772000592242312330204580868759136420136382366932950432250504910912448519264277630095983794778763056278139945946745787367660678411783297471356838837955551612393689072619554523136148533515394137227707333524553522885678678772866447971859121292070962210493831763184254602251351929570736257555325775534636183986868182209849247861418739317084727908961377950277381265567273792435875054999166913884946745868292540791988638081508015316254798841694034605812039261566778905717556170873891828038355418933129588807395896428712957705679288829539841052691845863407243221080365530830709438697486662181753463706080963099727160463324810570190363035595543376165153215538045095417163198323488779959635869549425476784905080847196483374734386587343747105735283058609372191067028875629619427584361652501637161108702121515237032731369574703443723409902878022889150704115411546674934236922839729371792601720757221137338180356897380773759295847281585893854128333706604721819771740237745665160379954451554541126834961732774409037838386311990787702753884110426523379464800122428058223844620965107764945530856476620054278744127301898790316616613156048798402684301067258588885754696527209053359114617284821936206625934341291722944088037813495927368086881066841869066049060849026611323982197396600293756463197942586644676574903577281735441528831130897702558052562295149876076514374356554483202302875018460518263867786249947282404668770581267936853033225037224859103112769082106497925063353589346323266175465620754634160105410728719808229577838175587310900083592554831836632552095139266093477752402406602579272129208523527755642119447645359987930819445032267432099569898490203668854256180529420030698612156435332841767600890014074301854954127729328449986071654418566843985769380828694137594171228170167187644039178521638665758287602622065858677197499636284630699306127862503019730938029020709284986099698226603108782331319171114033331938391279291068603073134908398492309290907591414994021390162880409943411142622903884615891800561113720825342973600873059540204776349267065984434635042484697568690451080525432012156601518338350223700938210577772817611147681355152370997735760995559506663372763660731754104736943420758571129178661015005917272050195161877127438657881115835801152287520351521774473185121559811497284782042873473872215066951881876585710166180298582665552392984310638961695007672930804120023338702461673351903958073999900578848058749235141092202489466445838908355895019335075534881222078000199885138129763482184725099107514315020352063800238907305456521513968020662397759949676134342648641882085986377344100220409819224175827856702575041055404492839729816468091707647207714518825412248490977713060795955874031088655006373831940852532190512754653575374708046087226608948576073409548464241037411600360612786130746875331092803880413880457160639810874481103203219690515951515748333948535052621869690947798970624595993357288919365837534707358602325450398169592281628385174110810626613916484977898580942646659277128637444564759787357579195699117896745408595863607089480933178693247183257685175192573325804204425162053111725664269103697457325967635673938013983080118520423185613747710124342015408690136383068158091446036639365160306153152035778645834388644321139181662234403959322029536614138083671383766702291186880909377950120273374350056808123438132579247835641315110551874766491018930226397994090801186030345561322415112123436696964616606299646483998826576758841044995627333322110983911816107528754032761167435961986692919001599613491852666547522261622658008469285505137357717379765080086662108039423439173811502446946507706110626297695527859506761335506484451031771669362173986663205985218945675274985036674386351347508035692874106670400805928058309847698670644960571792189671228295846153133006397054759542911515803818598242639787504303099388166712488625546858221894080256371579615142274442175730868476712892354173583657119934460264278000762652457028745795322938177429391476561504562642686647851132112008129428508448625865968177606737666320324426536959293285858994201397628128893880470382688773196426383899252283886648110187863837774930416047870903181531696547090357886796208322830513710412607406456201923781119641561304172067681341791430895709391521122471944928827322315947608809401845377810946928638968149068341692513676149370309117696503522826275385497098325572864327758863012715448636720567936500925720685877263256102903455500423712464725276647476724182254522897769104292381931810630015694204106943439631969398718860874706494882613874193904539756210521435788498429839795804586648334609845935424413398706803857399136984261673264991491473050869727633551792330705373349713018005548771804909179815847158159683385447543081061125913801668338378811193813312335330147941687462941265195558170716993709639660173455942640452685956169191662646388060766818155496452803028832593236810447052740903385531209277123177559356034620452744134014874949352292372663425808810853286713253238509119789594046437017282955169163215555864811383578383099043748465283841511309525510282419203057224487546801733956738110074152921262441379520324266002563509202393669920198699423935096345128714263382257610790061950990243967876973072898758969513853370817888683970095645494745031921138553162020182068960820337683730548038927833364332422474074437843309673950610239045402392926052451299715792643894950592984195204048633549284983716188240972943289433434472854617086773831321704100426099824745759910841919642954382762233552245735445843844455528841503658399925282396887876435171487676139524790896875916265785991707407030999546211020110905026765934092309089043404596539656191137122898070155702822178002613099112916233450090103812249461381132753267559075206793126974861750111782570295293861593724674290212126422455039878257299326026576300847948777994506914824413103713380955539923862777696510085427337370665112117596191972682405381995710768342051839801005895967471857677703922697798247181808822778643923347324131250677130753109465347546693624732405433828382251868558892945162757607073360942202488203288153539501983571611523791478494734301071658308491784442638031939056282080910677443982684006583043060309529320657733317982000426722364783224674385456648300437554451458755289624039428380564254547842197851799322282328997617908381889043288548542893998162499185095089505515160243577441302071097153947986818371116169827345588039394356324297054436829863913733048157953353316063197853413142526525260356869423068048489929037823181450841859196185774880645812306091876550077987313625384490937345226440227772902833818350610192143370687751210779918153570153460273281040699291535216068415926113996151622894194067776461841266863575312659203319433323724501671026229129327564402167012804641904680827496103411659522768310867512054646556807193039166436832304181587131060167282062054633096171853240253387941327965341619636116102351212483662187585889505390012043805273736106644701996136806985018998001058660700447223033403202636866090284243152424245656067149024001944614591974821625330914921096465938586152304776085843831918072605692166098768562053108255221509625101637364776926352818161864840044736897084039331199995720964242779103106207307863498150837369906163604382741479435568614645341427688423301860626560993016561491050468382999820219228097756562968826348629835581457563563596614398807168401450996643930784847902233179760820490345646894678584680643696800464821194988008345277441967446254096693421873653737402365494383006435134513196540920999918877197647413941404237375161428052666087050441418342336400906630542980795044922399427695452575197093452486866043351880229651624383918980427656569977236795954346409046272861375750558423807435864299817609702699805943472073216218705791152341635685376498911153749885923475402902439309477382077348706173102664773072136041375372632016626706707998476413327633385814767692880261987340061950017324844891479698379477522093979527234889610308828037903647678240239029464885176020903799599165996684319553002399889060258692097561568707011222375910546856059686227181568535248827076490409730526257391909944284137446483127604600191456374448260829766482345913259440794099210654028090574711493970018703161166957264417191328294699954712524352390828759524687071911899744776882841182988985749546092385468211135839914178938360029414776614544511372907496337371090286029766216758174308855596535163249574505676590778126594342702811912378896411221981821390563033099104703240743885105968515755735450765276356686612194294933877786090585337433730226991883767160887046796240244879217534393264064524515932168151437603149196555712715145271565590763805637503495456380352945292931976026124613078063189781485657153359023786403356216096526151793526631332198572192637851205844411460497844618967782780648970956336058725355199752689270479297679331760417181438461430484343102647634944900108099458348742764380581066246878163335117926072453014688702331856198207146195261576264966612215489731982309089790542624099728383860957833880242731075381048426683168120521696542318916960618652393664919640827009292431767142595461804252876205368067968093726393281739077753919155207938817046831716868991737091884348171312524651975336155935450077537456162424656216408931298965903804366413467536598567762608214407692037744258761233610932636139521194311116490564948251503019670509848332394525971813191526912676182412266475515464454815774618056105258672460177438780232782438650240467667570339127749833640122688212079376118694978831884330183175149307016997911283258458040066427981014354337030807852155908226909747156538717602418061358538205926311419405368793456034245517086363760786263344124727355836866021406957388846430094601387726638048359576408447168786674504818326738016602544299535474722781131070621566481435953870822935549664770946267050555448038331106884087453646068609852046903791967057314267001073090700806970446507368764180014251420304189658748496780556768144221593660711102292026961145587597548180954829755536308565778337485798213960191899616237387459321986090099652088879798374266635747743749603546061387584010585477076005637530990929935898454163850942946262518386487937036138589656230824559628303122871494316774048746715789844281161482675288640388098510385499708729285339014351665773860565667241791995231165266121968836687952117760879936018194702313484709828474994378478099012618193937367293937482682655215394617496686546724673866710263940912743196139595067644756360511885075238892363764486890254827221752920741454524515913583611648956709783513168056098953250982095725188319090605907345138799705033620318480612458710149338020827798325587390605417731818148866830059005151282471353944790874839350876179060669045415682775009375128138836554689388167747944460823744336120725415170572085085240876825232349228661191055824571667032994071657116869264787107735329330296550793027743796929713086152815125624420514975720050989226493903077701949727874760750644955062955022639955114169903097138431270704949744617104462242532983653677314929592243575029951843462682792071132850302572207559517199105890736951012490120304364909074336889674050766104137902158461671987371028837465112992450513960975637575996576665706478480376793045907628786157958476879721999582320845613568698112078253301499204606570031051838482535609901980585172108971337809019067436310599611730496024931009870795501998129927450903433289870252090928805732905622648946554603274272198171850983995942073199739233525346830346899398270968753748991485986790107807033397986053130526948727669747814108261454758379692464736362504856122324019158262143217326983814887927104598208858260986898249027263411842763356865937793548113056345351797563292996255297254115940389873366142157899039837843599457251838342272287910871613558847066969284902891258001420191247985310696333112583358608561096430843227652712729035993181411992600692433296398646604705961291133936253135281731891870651944632833805480660876688546108138602237814234638013783674058931553555537478649104051572397967374996070259986226510490846513022021196264945489682733092410447582904954981432452330969139232560126810925729074211219878016339484516099853901120563301222915851764789462914436142409297682753961153308715791308378768286486600864179193916191360783430818127996225598099863264184933888296823122073385297056062931012397236754626605870797491643102709308853937946201414311979022696076331931900439492262691670383802904988477580629838536590369590353823915046892962467858024327078461880770453841585897661777698577019890012003480587431307084607778372204666984339406994913323511026234486283351612029736463621562726116320893859574394809382399363916914902473601177326462463060110159372891187523362602301863520322343016329605230441743401322289990433384492697422878774361322406417908509319348024706290489782733989071842610591773915825854834829658256152770211748662547688858994746965854173697952793367466987068249460003718628075597315639737958275775244812695092052224367557223989032932614125893784986113228057159470857121046780122620176324297572532386612771877078155611052435439533129400360041063601780696101780750550230033299218531584830251012038007912963398133057939721518896823765756546072556624455386084025406720375415512846815602098180518555827836657959867139369485025958445138444478411826080807281374126897537223924227827386329606802549101964832955766384405673332618243065913046496340531191749847445576295705593185159010404744233597833397853116736605723529956396718763649111286142332619666882800141008810942334603221242698953478197207429367508893045548486527763841367132287448315724206298950432371499231962960848095175328158045114237388848238605957653588426860708751727169536798460077365617086272796747148010268139928003645448952940748089451733725958555350529082288773239774994438423299756386738687299143788750149045048101695524890724483707654701855165295604839228042440758090729452920111276555467359814779838595349612023969714074653773596194148191775534644531542134919793371853489024575855590827812439212776330304603733398211317606934981005052975343992687950971830301151195730364393817222539953075960475101370631258025818907229714471758446213103392403267007747340111258300049866822627720295826881380099393083324801808060624793021261734902842865478199874443697618480065867325451525138793183481250982443593555119975455135474954275347327170302898769544800309330257455801698503812526608398227916703365926409971313666715327843480346138763795295702173919431138058459825212316337032209641006367426688293596771704727266075797161706508806582090092438364773634763502664387969304262969694398653018809334379928614843348922186346521838145571723672664189885918999914963401203343748475870952169819652855355595621345096513956362030011101089130829508307805633199599773281457103774537578053593288616554671905414944848979619324397511297093814264247614003183835336538715326107093352031940663712164047507308907290045301504589710791621016177968623820487022753761995638941110836493437613826493477036425870966133890825654451997908254842645145528840121269697347988854857651937846269107567836087759425935214145107380673142027614998783051739784359981669600462320427809044567531086882094923527113635761932067123641546386041245642265936880977933401799455141725902667500874669627916471746058268538169780514512849173379061539378830040516080587186875439245396147319532755624838230351243533085544014866925722280234063364803182542644982597096118589894279258000346620286739166462171890536136740283303615722231872868698587292496904114919415005342214390027957945771239732433068632784893250324494439724306651984615588953411110325377483763331318575109948997239422824459595978434433215949036676627658833920763381916954754452198307038446433550953468220704084567553841529072592211165124326684792130281478707022001910964321047034867962513534863991945372167286702766720700899954039967685841358117489697167125924178966874874005133968207266026183590094376072674151298703402673125210808002622279338750119851495757251111026773152422234139069484943803992608448245653291189221110019976824890788289588784354293067553795763423905079093183841649151432747551448026025597268670992344596649624537878864638192132246227066314124847000018261446070487489344064392315982850781150762600323842779549346758768359265970555258474164366330503777122304143573132568272439775670132195520649591225326241068985110235866876724361822673278030884515599527379153176949679886107617275218055387539808596286633507470987623890926840718143950136122815087059952786167716651676437609809018560091132482789574367240080540001542225330837352802951480706784585389795800388712882520186464298041041146728808212257132392674647679981043294240822539493081514789167859159946709348106411600297485236896704316128002735784876695851633097263354969712650863751695504153309362138295394701885113325335232254793887587167194482087403361002980421533190557091351383063681985938446963214698875348318507118098544995756313963649181722589358733388374042143514757569150884834575781640025873606857519522603582005706410816805901650543725768829356749834240067322065583171537037582258689190968933630001888267464689199628324660998771000693662647538520619224547203069007521053821820471253755574172756497075430699637517816400882190701309397977112229337141385695404748106028629239573473631792000477911006271544997597760577368702874188865767395123045841829652799418127526050078901566507333441237219220536150090603654328392543027097783382599082981664506547836602571593674081309641510080349894619380644243906308935793755475522249092834542918864202351262854754534770153239613733866271689985895596031419205263072380808196073180727879828619315907310647838472608327154547645253829344852487739040479102825079049119199059022971695110441273660199534951938191776436677410919512270795321609318914979680803115549702864285213383739742386150030770279490097209888380763229005609167791240514349017293388815513558897124923065577395044360099072937315362951918479261646504994826193067808615176472244482578836721160363918614698759261451558320779043593309168228509361899266597919963632519133816556199158102717488406496764977358884171328623357540954073833270692663879342759591831620889977305985341562624823723757579578029479076381067264414398142459586281592498151709277200402236178685670021575144925964709835550779767112310485048548701960868149660513792991370343963616523178964975082968758653465117865110912039407575283220960210831808323080578479931943927500144080558754198990239138951257359193085052893028776906781999555725342054139543980304992230786656593268663457119759500893269614539078289964120109018866651816215585988276844678185920448725085875131608209870849764834029412911739536528096536787682340547948672361259434377128262736632406377713500829829357368975868261075316983544397499334523954844653470679139127394701732879753575937220846903468168588942492403161802436839580636523597053082628493490672254738155994228106293648453171251358384185407139579564005967430747863413041917457197694476421939883681152378291967251784288538190669785718273730145533977507671115173251909788038261911842556488815950927372500905211128457800983346299584119573982384178490423572449368016034274764899120995364673973118861446572927059026083105405482743492233659350761371923742161636672504165298409346595948219979708149609554577172551162075008335220598364404663439856795301748352379707427994783192932984262967213662919456388260053727393205984448289410784231111798913819453541081537102671573116989351274732755268571931390017550181627564877188831498558454035516783958369836770328018593503069567016730832040029398089978397689476435837213029088190802471151156131103812295601207561244669633652239106312140658457018289346997951048016662992750791870451733447498047688264545156765106053556656443703607422924969040658044884740164915143092305196345634078989020649974359920387414240311024842218202520859599547306043327279646692404890924257097156258269648489547332337550674032060469541350524721109159145211602877202639163034356967842768276036290602462968448479207601912711845734969413469405553569367647276487025326321116545491831767307110202955272285674594219928860478663301280827085258938069718437385424955606209018446158318246105224235651570138470333185438287171210071974916833711204770949296605905498599289996992847728022960978754613149620027425007800069165556959149310433671286381050856476705597166310116812062110730176090356584464400117903149276409592599340595531117577355745877651071825819567098497868795570839756862120895215131188250169915032655972430877571935242971450311897234332082694592673393218191130839055961754225288678964709036184182676194942577156015468818820016394066481014691511875627274648316966240754847208022068922188419854679674197883155115371136257035114066947861347562071001176101819205518802820865915849865722206472240230665492257579938047787658089707729727607428374204604473007874054483946556267909027423096138556713679221987810989875541157306493190494226592550853422413688834333517749287858006443778346283843514495810104102000620620092309381128447102433894402875655927300672134560395917849008513080824985918118812278972041938347991670410407238350617697669661084624748933738409936747671487141185010485537470167246370021685346233900109805546408291471406618144632515280558334399640719262384889088583244445606639778008437458138903264219951978396452280669616521370051055627388475680053022333800947553390676781947013587349005081406670911659525795828135558081105883218798228765310990294953069618149065146434596004483249202684509712494556618652929974090975886751387816057458143770851924100566781966327275022977766290326615304322973803398871316430454479528332437887986567114963893587252247815865066833048960089602223402669332513415511676324059309204832859168247992567315543615539086919695515825670126121151870232471053508580690651947705641650160220624473975549463817809885222053970993032798184166984910050121278825572209101458015779859655034546086540074860712802090834530283989639838500117103801637224223220416386532232888850221759691761852056916823164851522083860164597039176556213562843551750272221694426286159355565524288247070415678548687134133661359968835183221466846343347239636638288315298072930474759115381190583525453253130531753812822713915085600846843217525651220782795923511615835398700807864157827102297709620998380336900485022735534458302209818915219822472864189219805646505046197957327549478177107616892446138306668585727439244135362281953649148556776773535030806504338582029636103342825533918575268936523340465610657790492654091837383050186111696875401690533593606066580060873192047973618777424255871984253146441339232295860442313741342990804059465196446566359104628969169251258623362988200538529798995094308677526420585439336051572872796993381956855555791156278116195001012775733336181157820643132637899915954669380051845996793367467549289690740839062800642904014577825081651704904918997191189020043606304934531213241867627888191151175336145633677865975442226081787475977508400184849856026493408983657084638324704989417253452680479058779412377225725699213789996972646075618358023998103953286461086322518470649654513910249196663038036577036276777158298246588996561426150806722458953086324281479090351518292524998826414277395016375135749823284901165356291680425494622944574882005513772253325702375952004251626681346894371832878237640906972358296323702891401814504735751105559034083430338277417779525136033388405621699057234076905752748732664041937560460058388648596238539349341561821977357958955540975968864307027182233129754286480334340000543844469544282370039972983809316805170907715164603793986980963079016513949266656384184312824756275345347487036844142461503008824851097753518104529793619337806649951532734405378567881559641251925026784028707910551117868129863533348901137713487556736593212152336937746607250565189398513053693349957385265061055866069405371048722957211980386319899275541807603518374603981142477856123440647906448031154387257779963766492356974317213249321461420342230614693090457897360625428023622361538604214858730695942877027144708731928493817859687909528597591180872233818688534217027106040551118942584976060602374391212392285402750643392448678593611061300162378695525770693288295810265343589854371113941160677536996117087952482234364558470357505850404219686445240546757246713789369510537220668854739810307274264376512961659044697688584858892199194803859049460763630700634720556902468646550521555801216287931614402922613453392437465563638155231866287639895316216999299792873434891125232008003024747968756553141117835957084843157913483239146903605348716917983661951409632289395150586079482457309812581935202752646842967689894606930641489144993861118243683033405684146905863011411162882556649371657012384229011548518891799437594872838222262013938836996366885407964808400822757438416863864821493807097328934772735846819557377274674687974783344467654754732520834869256369738893591306533199896700933153823489754682174364465852176655844578974155081454967764691103298810455524199346992336459431942797174018944171764558603003304791481342944822231108329555137451043624053233238650285084656209437027007755908585766444190594296616465750288001305717665082261884840572943445675131117955926963180245284197008808368491881425217256723356990110309469725225976956447026921120153477305771566629017437638016698944066242743522881836582827459117249270953527266795519114093224524615192900263787556080493567987500877776159942443431105088868674147272440732724299022980422883424326902668723673197241562741919933401510684721222405953465004493068480206168951369560351394179599433610240355284876416474482951786158614661120670044168721892451692724676021253439119259457432320924456696757859866187974040322036367007553485481106533438773677129672125678246417580714955719735034504129127906256630537858525815790218869287443376554087863139023773607869746199345364691414717425587364616173502707154883587599489348215141147647467858088307951354053800880874772652252489621682522442243753179021394449730074513016715708050875202435574807017341533991916668866815345804936494564560958891449866903263044463423913389951005946239057743895871299412014570237597148258671165470826837066622839004134931946726178821682171375441709743113737056087746429062646146896095714809665876605966712683071059350116640286192895944011872474678669258631379492258587004884416121598084662564563081572048461080502822089171639639727119701090218225145012584615869640669350834102045331635059632837436865824840066658305858379895927266745375351220022891006018037712624881630879876104185032686415769765366659286840063358370386714862648548271760381075337444957369409535615707010158034792081220595379511262327054216713886994698642209472564154487524348045880567465300083601647768648254718447222770105835891461126693173552806986417797505461124890928255907901603523650173221031604041140026555643034338069751355277353593571549938841765042625095200794429743748276068817329989099607842332249431617424623607712591057942236312062543478699390429368377950194811025014199927530341632309916398575263190789211325876767361369581780685323182842833161740175480081677535770727854341539541305710159135612103803957998743992914810884627576399049797313524195695618488047061024248730382545110001919260322983294833598436441631097969830959648795196728981593298252630129163342358872797400123498258992728100953241608026775248311144960480478972983096697361187256892438850638544853230122173483223873783073278921923368934435353295668394753976449583681333656556422452893289849679832038993124450522293930505659114851852401315523509076528029982248167668972377037052333699790283754778486887482758255162716310113257734116612207145333876898590488043187497443626542870341621131168626790586662185776783074675874866609685643351592110671417178272534907717678916704846571147426842786087295822321982791758114444442422409386299897512067235849151275459177948447598863244691206363486148975935526986300212562254383457588297577488327467237222096218183391961291596058984848974827317761769328382506301335728110033243837886538569358218845947648646155246822064654868716659511483596615310914989431597373778876087125231442012834494894709907864005844409513519751865101703219710978645777249938125718622990262979668422290441302950589226626190463232615456083828103471798223125440431785740692495855215476739427629851633614136647900994825887248770159563029877965906658643048333410718608788501953530807491666166623597628601957722755173121044195762563944343948873693248164013215885867477719113667585834749553670204257262026843567934227674511255081496498753719369341590622235107768626262513759879784945672013958804780296525250820148289099994602604598871369346085201764502418489774254909339892506023960110933487022819872915928975264759837212196483462188075336779096860997233955293770815553892073721923309712288770471857679351853041963766406771998844736380899563521954987605413924713491612517134224328752332329575612486714919766183651303356951380503548149805926729409369143685251686848964625793601277463292300545312391045667968146575546459913989031902422932733320313695388077208934772569592166539099496636064274841834780047106814649318686081523225316160285636684132767079219927869539163343611528905231992915139084162029793457358335879335071212352527546478477678919266844011772726137532588604702960849496375187174417650359197432053353963405811116486910901799467168558780615719546251201318490227547101619228741155664614243041881748463278331297617522575011095729869389648351863685663671763490258607751889276414432738820056848664287824368720935715802102607892809774183184631789036698244025627413616419543878663071244025205185991244631878188774033966750496027764218521710195622049025344644654353034468349161159094929992223868388860889313945857065328687626304472844732298950824414710282498442842426508443431544896326258747860122941438464774226835816556235607771998434027747810155036289799679449258152175872319579729837430902006279949068307148230079333676453316861323377387415307898691025959596399712403328780085846659695614073106111919902694386097315755391447889602848931843187488331788483980802307879816963506157612589180818672754679624160205412524870243233260996206967784276973371910569143654036652075471516317260005656480622492330859029591939567154018820187364435624527329819881236037175355853894321773497939820922248359973026855971953813247971661418221910525629249296437908523978786784331720620834424880290637739124295099325260272236610715879830415924998129402370304527237628737496147809847364973256146868046122910743118586742495374180523220971345031347078107936598307803860952501419174217742824352144111207378651295801235766126328280916798708197441549916327408148781817168867491004612699892276022749597869194020875716644568694628099909383025019587433129984074138042030284462650484468511369825865983552629732177807509746791607838894073385749135542484969442196518123081582028350725852394928390225818870842116041422488762765179995409265859953844380271309333946038119529087439647305569245477397092469579655255426101446360263054292541473336260821916986378786030380507628277392022940377220903961310600393274744059595883103929207051795855255856168201845401515853883078728001493034218892007416927530133576262265673148361354570585714698137022658381180216707653973814922891332089702532105225380438659580969793716504068603919626944495530198459175708240377137771514564029605464421813661772198502618994615144643773461147950437946608794524933274195147117008283294122322245796776941874785308211924707461456684636612103151218064018990625937899827598371409208008521346428883469718809146535955452859879710115057658441554315671144817133511262903520693651134308603957406926835573266733175531897584443710709442498066975617565776457232819512561619625995599138520512967529822355778878029961352738296513731406444433260261687695181729934861364409336634460839641770720032017187389004526238781438635631076081249164201439008016451154226768313698420344211213602325864535660191459940996738660505385594734584082964886455765915550721385726704074184504209660607988994112220778988498388013044762781886076039378976847295129943504301841547455332259672109693348360456343574534950275875279737177701880791607603663603404553173853343181577768736939216470574172477293505925547959131264938814157570881245751980164253456161308858898810599395528025319661546240310216651894258574371113423571966487392262661603639051378625129889200238296763811490495891456045479887128401960101003060097886298301413615334498522363926861730259193772358865120999736898339509959084962138424404137376775761670803562008133868878163661508163234181813712724878118350511767129822194676263698841560013621623547784281604891532300011954354456813830923570540993546311678009650501746378954794442748383511479640764693423540046079548075017729223796071801999616338689692955160051949993430023014062965899375404081001435638188228902627591197974153058764029499093739306529521089416772100450195949925867082425828262605166265136122210943356880384848665888104496686394596005083455027004951617778351220949420036327173251320572043939277767978088246219395809531526308507066444981295044097862556299951879616527213828232719128543552755524636859747297602897375546902736432217357860855756681220997818187605728029214428672981649672487798883305237243917574205602890782413281741027485954096079081314578438668392477779493218955524041444589327510160949739796656670866191318042079751260177038094191509499451101311708006216529538021090075089806592790510721962743199608211623649724852062440132512941896216266460790296652421343896879169026074826382804447529270289430750820797466594080341324108842740993272513238260548860305114192724224677981375644071987949336720055507143159008524948562726947028231286971439248916422181222371951702366409896569106528593245908155587332675739683735731179748759508433346863398846002449608793812119723007338686246405989178095624629163319205602498003370627823976395971096763015693085367849083103482148556894695720433327565776783287353940050865412556611139746868268094991967040643541885760575042880897404864454552536587976146057105477488323009911223019414136131264787037210763140172236962002944316482069581228981399221851739635211752072312764133952293347317938528645866227305958395907805493225165990897494575501224617067668340389022837084301545924213965697151054312911591708450771397015481826421168208455623750738733943910775550921463644418674725178167861699350030569478363065611489997283797440967632706139536096617360118474924973606894788063751847145911402790199019469436997223616808233220515081695684362997611882523441714567362883352298646151463103306449020248670984121016379717059690960860382771177766960637440173013675228278000568639966258106957980803611031474579163417090446133454027517165593896597809971165985275346444962538289175727517603671448508224035021238241544106258404353349285680221634712539226157379301412504794932748316781124445633176919890344499845010609757949696989979876405196326963397440193626497545141031007929521744044522162609129716780906319950105850240664665849272947184010823605139058937315778035679705294491845460538375862041086282289281220019067053151814253480892106138635652967173778609936144534674760014862606294646404989979486675399687236133882451241782198050382578713955011578054004391073507665401768058269317508724953506591490622294973933856320738529356353388874644967159635366687988636571294337739179404379870687013385805274325098301767226525586819146774419043236467489032024623053010934739651274233869571378544560361233085401981340118571648548868942927851942978887670571076852773715291378574802556333427254858911697838632067713525012054859138212937136967796625161248169624498883504594862093116441973288327632060479180551903620203687259247518950075795091384246884328200098786705370721572735752943728915639134166303777807316852942504923105928087422407855313803904918818392625170417481014853296501814401923813789566478462334499475449861620201179508549546424028295834359049667360403830439365960720496013809137131187231329851240571715978050169327476046001118788707774350649971847345493848019575466413452637534253832927127590696847570107832011439377699029180642223291501243804605440913955539148555599654733420853783237712275379577247069680515464255899126817024005678208787196838397563653814239071656302986258869093614812943160612967000039735126105199242163405967277323536655892928130071689719788811939545238761062086934731587432983137374877403426546574041108007960395680647779099696455126135357975680941051773328830417384161924458519273419557525735200955339542589012209351586475565740105045359666076850991348315154186340156638697360428558054244813992460767727395511146132381911439905921243102536692147076034316412199370935027852629138193767845855376773412930249874652476872575813323079805200694838978807912088794487074867887337141511410743225496129724067063218304497918465078171624461617521673001717288556754660463847175541296992525651782641209325849952434213789743582153152892912807232197002302328265681091273373654056615820136277107620435000542678636865767619870083328050412779274831461238470316684267648472713065089472939628837153638797779511766911679480259267338924158813411451950872065804395141258038792990991222095474907482007507968322229650192967113980275711506212703383523891095146494691812888767843530592037321641618107804528265694849914105760732215311214514183936862219542988294108879637162762650260218872612932727165783595498795536744869614086506218359552109000617140684988064819669513173336737272100391640587795619269193524792173984772921425534839372152824543699254818079092280347112127940780579485014143787167608572731864638430542041821408599363358137436414103608818341894590990978901559697907327101049443430207695886783541972364378576369218805782273730758381075239203710191235689133109948181524729413877582064224101926483581005448651435709374762766563823006170829487255478340668604009606508392284613693786525158944582001126392827325937543200855108409068256403529311540396807246297348705995875886449434947848827616275031252770808958617889191039518403119091941800953227387633402856708188906495508572849327332463462141060962048982272222794977378076109601599940133554402404589446211999562272857004541762173572041284880687465343847827906871165984321389605860470034360203478174395069907575841099295277870866875880651899546373361934473173285640773380541288598081277483034447633216304598484475115979943749797646262797164609613644612595154677231623611961815249595116968252201124737948516566159722034278897530172395502110009502283298477423905570306003760875571628534376725769514997619956005532683425100484238703094747071304975833329071806809376304477804444958813356713143321168316195571574397393457560625851516121900500838002267361570051622029607159931556567836429528654302260461156753531828933140430988957200588274710121255152748480816117606800164451904813355693327098779746217929982555010344315896152736397848619337587299030720262139607635135931644661475556512447448022580485451438229782501470550357183129606607547112928855104622243415400578123410598416583641700514706996893127842699801311328073445718529985989926328539901178660677693746256454754546267106105254736414808625539792591835774117607516537657489126679278336274097335230718681016939626441116865903206331280869506301831383846768495378778685146027139712296985304993242595593274098041958240239627479964628905104340783381037981247777248598055778012981266142696762567497421030741740772917159528595344830474551316291084245787671079392714304866150002638162265136957229795749181747916885649030126872595310801019528236203151236887047373669634913366616842245292063552347829706416203229222255608009862958761365410096154724112828897134653675800916917208632201377121324805270312360665613869164072246276522465736156790544551768486265590045347019784689000638267657609783216287027565475553760079546150139389354466840613188438829742777482701036829596866067077565271278338992013526231919475945568231005384612645019868184454347013619417696841586996388345159353444937193175695767144199718335584300605132778216202140362347512562331795840434890475753104519088224778266648812055622205088715466089915110432082853340356949553766462554675283273001158670516868646963631783467765820651058839149400722518186477940600218698382445044725267859457412353420847218361349795456396340155791294530765224941555293466607441403577205756427749447660690035302393499129991210766111961649042346429241615451698086116221745620275580754413661194912477917436682080505693995196239077326793959820195848613513879869082733423683790165309992057509164299391228813900537241497851190191337358856908010998029821418137410317806675459848030426608787529001496359824533368366729970752187436843838223093200189030017594951292010914425012001814868873785090815465658282750812912984952650102304434027090309999222612922115291726473041619420811950766296582955275434579394462191157470260656432088809475764989537144823813715526698187785802861814885008435122333619396416546748470173981889447341544384351667688539385590314282552838154763649086835558511052170171369382139322246446338076035883301177830574476821854834127130596956715758786437166673125714896752163074796006911843035319598014710099629617220336618518183333876635638006165437879400741169635940915444573556757355327995539062519178162032712474677375698500052415625603772361679936360845034521953294298360614617903077758808374809903473763987937568808512413590733727421174441639479416696089261662106792217287303293821545075446765309898212419658097347139209815518099359010069907481012304605366785968535801851394625921710229332360367863227546096726936278199297535109775896520518357219397826270327257602847744957013177179904857369993671342831931498700196916097822772765071865005854561188882330076691520819877599843920490024852883329159186195221946720086014479563419522444615997953709558955739919096362460204854765243619857050691931680650920820483377026835813000181210426646855499375656784376403806704868014578479837406085353736193591419262258814301621075580231164291762596271357709567635992013342084846465943399118041466641522612389120599325965674142352848037569299744643639224574888696932751928084981766163545726180938034200690436114775671914617885409843268828572975720094871502880150313687954046426884931176206079438994455109733388781689273959543344004525611959749243577457688688223867170057236767547315366946695303045715743023123154578613325335860558575777166739108888666127082072547013705271006380385164243529184559324966529379336807159664363780929376210634290116837919647343376039271539056550157204398355555359922190601298718628860787031973734165147395506113070681193287405605462858250402650268884442083686715896881632687807237284808376398107564717412900254121974334191959085004039485691033016889264619922298416318271093837966930351728373363797576688770065375763905237242005495234076692757147079902323751599244684019854967592781215195691352947507186826272489147276898408277990832128960750069921705411540028685441754167363180348090766151223197278886539183045038648895787600926714769170642843899679405518697293537638534509052617498142684225855963390425783630915112968304327689235135355833857596605946873696167263504956105220685004721812224581298003463191370049465962293738919836338808459958153767846430815013409837346450178610336225084736397490758103883143784531633548831106842435751359343576625720468623469204409380607554563247940256915197821476332677066945479727182354829601203685913774530790597080573365315426886853991002131101711933517239441334788953495002375246910512956577791942416168438008361280589845523431240044574345956765557014822465888583422045982777988172414123988221748590783132949622068510027736223546348786913236056177956619606064202162381498364632415929705496528204259438312569861683745796654011040314151135527842114508443297638966194654512989800984381121506984431850948186688082561149605520766646486970680192238197665311265232166025098381579309047291388547966754735964662526595824274624777415435753019831515531712695947189124648070061011383346661538706454396446669120339626125815675898662751022607459709102756289814965555459723368281476012851489602717632335793838557373510430371398806081585190336843024837838533095325692181190161829285660396691326012814587122355450347846116197728328085186607753272794154629732239319932920092897282114746480531290968963045983626115229233081441875381491836985067310300750098990267863413495960148871853355097596104473415166626330044221236963438132240353247057552489445395856494746655872688150871817617710771779463173620675513057544456134294585618079919199072884215818050370088187993847418662349866889708402507686592594647474274802314202011159930271495472585325864568006461562001377721997173578613563848525773118180107422456942001387878584217919084403071315067061115071894880593420022156491621587659721858541462932806511635080607062273691045857442634236412660373902311234944576898317512358116240719121965004427700157459036961133133273015197108152135907279116530381956965767738234175682252629724717939164009079077887530426480748524215251102495829447703067110043476049072879339715680202295764452044730694293622903231452363182983290427518546810253522319414931510475395063263045218532999661861853026143788339080960586906285850597142733692550202487714986146792219335422679392111531766287276649479070347020055245580515593651787216364717614634453779126885215514897709476151870832875269134482562727884198888029918118016548624669387415736531573489873061989917481491081780796506107394315564791760568065653281923145532679379589678345645090348981421923535930990937588915655690860550350659740169519987541938516977872910226322784677643145198773543594347082187482059139289166122094665180118809594407723952126259017087786831467927167357686707490012129393523287553932532453629058128380482090158638063535391667943033136246661380348399192043609996734626445221384797326527318263671985864174867324389971831751236072221747333692992873729965034481891140272525292661668095249168004109640140561724736504907414149089225512815528137727993530889718960329907341175863109585592361883775235186706647705277308488733096912368239152137150253330524631150112974515840201836088259704205500976560178341922444885289357389887680064403606550638653600414571727542034751562818737615124426597422744390270669200342084922421175366017010632766037839456505324409935143120662420726957469802278312860503929699755103622734650868626469849690957654256158033764665026386614586355586645434716818192195435013337291161914077654536385694853932075172722701513539589372011904043922229982643129446184057110709567192714264380761718394491794065076372639521129420107528988657632845998145822228065992261645559076078893192908839325695325510993790232577905503923197298802722174996072295937834377531767917652997190245098665496086525258332910410263645315508452036942128563756450704011765835304466694292028350612569910286073975328701935403000952459746558168513164193280884543532022206796362143020156089477773318989802008234930396655446332084886075086551803653670970205265321114888320594287980129240695746504321411647866786886730930057844923808222853321814899298102979204601086672137416890171441415910965193527487726650948886850885362142115714684314672080656399748487061628062631169931560790357736281664993235822591907891324057847994228872851766633488103344600250662678042673038323246483206645694337068655553578190658567308863425080067668029753992791041082284390618550669630346140548352317371057663794773611050249905480605764136316510434590689510530263972901516492175535936388096992777847235315224294905948375763756195111439644784589120881667875115026903076659064941743079826870197652409895151908563401967681717941868866979700318970371954681873384397239025283293825928728955003136061368781434393400873143966934344679614825882315793551682472165689980879957470454292048179879107365964957898771827748508504806283972550165991905126701962069329271000919717684635476389454498167043915028946297786627550561538118468633442804052641565658934146299050756438789665622919138083468025859467591007656659378004367013213601287629387050160260710987136349639149898187954504417937376035947113599358988340605993773358270689752469009502754511588298000623852516722456882359859923369631690173373773096224239500219136787804583809997894876571427560073737518925788783858876153844084690155545483496011621768974416236914999994240837335748045281388490018658300709120022512589293878115512889510527173047222415363150258747411445625496163755145122234762407054033824938816653085502174313619370079038695976944923002407998215795172639251892912707190087498193222292160466465738569960973835236520559199298064566432785120286694388986705568194073758931312325654168588086315861267746505934492402348190575549329201098395430122590658646110774745760128996933570184354625805363065959577479237748528562363433999920358932989270475008274302862279131303026894500387037837568907844093251518998571545770568515828564784621281062595353464177129516214209104920455885706161882238112382789542068905450287674819478532700119025430091786615926936980503457381990169089601814621624781691072601723305831943161357672353672930672801694609539505214162889106362662861971397595434531094645802895861152643867497794161733732077397911643625672475809581851494306642646830250090281793543220276948559628588204279132711941580027710214598234316237209793334795386150614515029179363077761488793552154956737826426670697493856621058321069911496141569688813755853309676477835626402105241228746207142748449932627729939803410718440834116266280065823954127632639594220931922879390261302441323658219102112955971950465967532144997921357156194046680658095863549560464820532272687540978765434219162031171622795445664014059121183589971588558556553656669144639011886392363424262813224824346836719200216233845614107999838606551155788000689988801830847231149157395660960882628751766892105448376597072014631375749392257800072712970761190175680128380436309391042700165965243418665525237834916803533824908391036156549927246811589678882698398182920389588060037955655571883406759654220457118297484988696671479550636625443283123374410086857154634765391935091271084623833135106841433436414640294718087096066014651310450807723417386087172495459473041689738568538352147134111694825522393845272549830038354352168273761365150521974818511317610180196215033490280963598108091467582099122215589719463589322433833753767044993822888153162993342259419489828266468116551894408771138433316561116927872351393193928897884382466516739827320139551688976423911752120298983450996246108463403014157196239211050206777384594094411711759253043747611195294625681093265873509015796051998837653640351781970276683057109061034874205561043260835721595784016994941263433448122956753751702847126249803669847010491922498332759917003232476780304084791530152604615231955796127714058684442436999533609474476843758842030094041147003518759016050365208872528786746906685032964340195055112700855079062078907689334700412296184771906731592676376534560662100684058350430873263142531634188504503890795371946420889533289820784041671970256429006979869273324035220438067619415101586686247146133276485843378995964505333976558698489864993048731681504917465328762934947149945969426575517111338701997790233369746711285318743904617126047176813479971430890165156125819435237302930075348355049998322998076138885507163532369046076841553335023480229787059130465032182229728930085324925811791833210135905996306038486730622675990371130627466290187014754424368674829420772819945582551298984138683914877968215159235304940111934509511141553110515039878465556180333737699136666045422376720805007260494252864387214664790017399380101928112327721001794761226680855397624607185371902523065541793502664776533954743458845404055153334508971249410539424276885760725027993277731946507993859622026895336187578201466454501365103405421587504423585725530906374286780418793120801806186220588658734181979132571526398855244579687709521593559535539881631166883867871781095433948949320088832584004622663670282634372462396883339253169314820323880199280597527606513832285017278270935777891527078898324878762152298323530499996823175435553378329326623798017962560326243139143098818415241589117790284304840575632389244848431448778028428817343251740048201692909143660888938644560725257758964313459073402962252714309905641321110272019658789935121293583101181866036143176231166516052812029502642117046959925842852902275074663684588776966828449930315523770742370607153896495991465110069264684317318427478001571788737182623554302816026469967417377238971857372288801457593873097358103701216792240034128919281522998028126698511094437400405547489027361731961465732876674767257159842874302201764060001026674832639941295846797961882092976377292234032324571327306701383411051633993404597804129443579411539085523670782233489004336870953589107217893062989690949272701918668804194770890904521305955428139704837411929096484863105650448752789933434505959629956309244176481905614372363939813299754467007033398918681292642572737300582221262601480414603353497652193842877726479976988639797004063880241435517375485782793660454898059014947487710972470572691685653613349511185861714048515125950012132401539605584306876931585072320950292167874035780734231235295427445660345149173401323647071184528315026152412247964298596005354544124038389741592762292341928257465050087846117870168034811001654144220750258103342137324256643829784803828337042413933763439273572343415009333680515045133910302324202616116965713339691073313407850160245459658611354464176934020907977482581676481104231390509822045025102416717569520685603005280326572518244148633276949400184461525744507582484171097862207113730490315441257257386437476470777824795697627981776142091692505498932176671930381212448335845458874644780456419745763259747614580362566365607198517457719138315982104450272906925461651995904222077246680327977791813751790832917473073766428158007288200014883916510770834483984571403633870364385794424846064907796497778789573101417700296855996844189751155897087610136116637958984471725568239386374682609029202843661070422194780114453096324254609550296019704053086015876415935000461736083810755972442673115163221950925986034322753908485534574714611317172175622841112026966759214769919990145039582660937569599045475377139861508450281879144665093574594689072430679017395575237173011056763805688338384587855276900951109892643719788420414729058030227214485735497058997800090894365344745526038472466511549718091147567325123867130749874863878362690590085006608025521021915999852201783633250784597256934901116073072032896162856316683058284753102182110415586713275118563544308420067452215360414130311526541391418702521675162428377977435125649743500533970080231324738715089782022535887093684270599316791827883233831784161660634976186664940213967534878584342007361877640476738165630666770085456591655198492099204148855688668993486668816143790489951133861638303047661091200778187644569986986492878755720677519769585964353931257341097799344968429931448152081744124750787974086657771710089967755254914499962773352380529318171428302820410650334509278728163927555181089256669528341745741040961904936238824176559702721326627172202309575461594810676711061061940286345723011835009332082861186900667596708819780024536438845181491968314450013240353858764675743633159321626334112359205693109609459932983947002339819325396819962821133368663592932718723240470316951363821439899253024253616096770803662476997025874114106477265603662784448628651138101590049816885221577247262754134859067643716847190946074933375906543942830569424848397635694298267892891350686953535490600347213734813064323730197041839237316539545013324030532595261515198271026434051721252456147783447884519392747363919959334321537650862279579373671654931139122114010647652146502592466557909553941243536162387256051047515207466170685547883029435324067035435235774387745390006467826642030496019272566717091329815620600515221774956828257933073354120378986403484214165029049426052293781021192641142766716817188449201155260092006563334394103934095570068937932382361745373480799780653374195245799238609439851943540698026383195725797780571440663147784603325936094841486046129674893905994815114007989628260041561467163838820348039297604557626256777099964098526175362663346693670586075229168502758295338861672630460402638258467651689676134058173794515473680693659742227762596777899528477393053330506840780523462864154496258264244532157699775305418453682185681311175562834185957321312948552746968683969656368755687276914324568966469408391082386205454005596197920289446211620453725000280794416084317099351828316440936169458228707862736768595069410789972666021666384689378952675337745359962904313259614076838126581763975755070895206589952875371476919639497382969529454355922006600780714170887444900016739171557159589694847794515122692327846143932304821125820162075350178325684074217719997474021801122985782628601029874826160372296834177809610171627857128964853114633663000422728605872329248749765975910903014133881151844934096720013695630752192443973238515765539378025367790829080381203187071765376468716674411853285798724727212722272571050737992658149052964330483031394862656009222657970583726513687199422819731889343316835263399527448832902389879526967716577111787098134981676244853835785735799676317930457810133561707197533103257112652731019330997647951652543382536068904963202097301514212234686297624453251681623236193166442029274267364883452875438172749192073437437920526052369952916558341949924794157539811145873614201229354634730940690208610762299722647118583461219697292076491536387959453210865019025615603542954020324366991031887292910768914594986184026529522944980064331002883375810340013363587683941741453332102090849987726294219482609111255630142273736080219503444760919376402637825374935676838542269694005146694504476151908891427644104106990643509568676865587475810228098760923671400777930928052906639748925115981620031806248798370478704357648970215107869812620006204600721276207988924260488145330221504569589885464364788879099277887692550838449465821827629521339172404359139029275465968880904112339917508999558251629954281418642596848089485271472692897557634152142810696874098788114217532816851190519431083225989752837977882366505912810916293714182831473771151184808459407713125171597335039822355558386269600194139098135945523114125773243122774279527869684865449987913983519734935074261359766929905660642913369139040835478995711046998916078799423680134010400536919877019887972219531285749784656448277879834057407909033859959180204770585648825111691315925514629882488517189881656112067895969275180592195098683233714142237264414694945817171803982648429287140826175055100063856597534051795389946563560016373782930376936580688802226195880397130979504689370225542435017002130186603208268664500541344927232303857453973838951189581710335487172971872111026671068928696782494510232385455816705984733497120847509867259452609305165736414815475217277909049779931481006801476063510876549439248991553136147958908186664866832465418837099392777524508983726343937036975458063093613635151004679921122674278370168723366768175307023131812607041084696953472197589852332178947229462553246696137495913861822269352021817466442450760924054659700133553723028285643143026552553130791056350579842215498320576501061138949450513112494636630653747816876502432842913993253272568701219456283751535635488335694555219712299510421420054223878189160893229705936614055234159200653857350219950245511974665815368033934485599300523207322390553833642620849812942262624341477499600189867515333748993650447687818262744202066473847071045584790796263328649025438704391643518551430747128165114988672833301791927332454729203283449875748922947333096308796479932515526047842642479704314885506392460051472546706898626007158971053587992706437651275286702562836950555294205014764141952020235799968925838905512191627150179850751941794371062982372639924798887283148965966131611429596699553778567509963004334339297841256214405795488976705269758214404736491439960454889686249307629330084910408682141316370973859514512192201847634286482066337658870422932475211425594279726081796790575426069096410874868127615453707735523317722168343975423479679436827558293691927803000057062139749095007447127326672639901334340643153587276017178637011945868368483819912925701224106954423721194399973122901858317714564119366638876489000410553408705462754665682155917909741182251185306074065101488221544918325997145695788770389682919399509302578351142775672310552854088774014859989086279508918398302406207772561270550183074108655029167888296795477656810155011323844119508040218378839050631233815781114938829757746894379006575374714788980367992384673357748139354615215103603157269196389463531093841185078768848425878129986993164705108158537612314098359048772380282167056475656739928826726116578212369275297094867089248901803875916568590015700250309496183509116706159312589175062929363277419659540895490367906723885036646987112444482542283931641001300227202451781803116833206456947949958390583100906723469493785119806268929949669046015196868176960724212144909548243238559200874932715938720102868900360158370363321063230187637253146444848101533503958374717676404413803585870817342518445909604983198975344475784524080831216232927976559964780521345644391872216200473433125169849050565758675973146682121345558450933258401331360893391102790183728750353209944260060011815691978079888464579632408570247609902383977028185803934388468102939537834154836893328509803720796038097647932532775441070352317769119500689064026822659539765127915307763970266387255459172325900392918499094740833644661542001659437684352006182951493742617806126331487004748636771709603958655367568069113795606463449176566494657186692935610707035120417230139162514107584904341668932763086916954430885436757274423082128140128151969244633435289883630728946560420010484472919700888057836103977625104815135549009427410046896733728440590411876939072597974566839480680285669817715369622005223081450185105793906324382356132900815765826127377190836498466360449817251300023058088598605490438161023326915874552726432026420426519934159826091072996970812173001945020962574370920614977074138378545113228013642348656845055747087371149876527060569251175119256791484873918597553869195279780170182916567708232750065325418702446068869859077552795963920256430627014703467144975973891683624556493249100806074353191573014928994324978584308821430487735336514000385402854506750034475100007085189112622958577501354280791313315559577873624808879120845466654391692004231834693423823304504730580394993571657323611343070637219964119491726597198506123554555974025091974002290588808150526909815312935405332916931838158126852595594570995245581194739537483996026403023468784030082395991157303548742466019755960421024768122293611388592956525402812479483177157962857758202172500583433301587546792671166886063974871105367017401312510984645778933945330690012084119258066376137419109513283178538443294860413467662430946981607609395163140822535355037812651963409048932235372074875884558170756915638805108336792244332841843331587805733561206178600287661216920253412418362691727763177547327694111269916197575075442724093415548267386269832643377986302371688426928150483052805557057730479678021596051169944354749367627290046715334108508878973323966771694100103127703628781911623290141975480092125047186258251867948047237436659375312712430842578170910761561896303177858010013008098157879614285438785332674833830237385313591072982983122295617008015117291933155544416295967455042816124431201955994046209298241111024265211235084769835598381026328315848511246858602036120326959934362683261049543442032692859121723931654441212756448478738131871925220958617637578538470563313215097881799528029345057664495108923169436106834446840424741303477658943543193199349241346815391701162785030988777440344196356796298056245277739102212454323811637653521787406841493542774658301053081392829096685634406210490017118569431150334093628579861340870313684390095390822545056475167780219319627723766033272322885233525376840724739294215125075128868261022734744996557623744333416453277821210702330028776290857464575640854133245703609858945270321381670285709888936954013566026231983376136762314386967699342571493614289561214532524890285863573612342340033402255467728271172155726826968185081319281357769674448548486242787061670318832561331414816538861052980773839937569336416996693987360190028922090546657638123015829411767798666264049949874453296381658100414497945232836370851931530435784807565734861119984039713365846830610613309013067700831699126314143135532776329729567988623266298036555005954727955128118536268730862144379852267442469582199181977769665886333986474764113141514256959170145605724775036192079351950948858969659354565986229327514537187725911028220152624907331642908362620235012144796693040986791161695636922125051072104678251381964277830963463158657239494081210706399983623765369195139777470053420224037754833626575176496116365485159669360952264332950889665440343223085676427614759171806532109374837666492158879655051017453447010303075673319000060926255398430102700722599853678930420576725062105955942613406035328172240189168896995507158863186382110913614795460362554391036812231748132772005328096454809060639742984926667294339109006098992367892510541063735735710809236039614371984925525168577900291189947183347344591637313083268597396332672905872747228687244006879323406275780575082997162595210540045843421889783215524747723430944179298863339060775970456179725667908711530591999463729131244885237651896133993108949763090927157553399973717873738718567928067410364293468147657942135818699511357580884244375536333837680227125925627547090120115758311174745163187358694442853601069323626204343225804088293843676077009217121464180639028244337591726129823640275282847263788343757838556973642558365345269322099995160152591036302168494047049892849515564140153975323456453697847910093332135396836562532589603637695526275801383457161311857645617722583381917266622173474022984200544114042317848872811934237220243352780851409117243596283065954037725881895199479115484847753646658478848973348547656802372706255411369641285384965879426683573970324315942337139952669107670941419983683462389864385114141584408743679272564133566588277076781615415204984745933992404749847825393225800336080012326205595678600707046688676705323090251468283502352641806590853171823392120593412205090056890479730751208758651283336312056215461528659890450114455554373137215134683593665694773109915640992498381417831065153847195468322046904275977945569542095329008286310268077420644647161440783158890879364918068416833216055359402866520075253393491079740678345634910356006186984639276470932163276481229101657453362480747330316220588968143558470442359224963600595154696668403966730408056995630478630646076949453890394955934176845647281967706436590979870303810363348645163344961037092605878803995974357520390234898518575388844585682254796975899207740156461739850830275921013404143178056395820164024831609541551819478888850551553851817105837563890419535901081745774969828277255896158089649219510637729226076475171012665359338950374361032158213741624780550516802391303130931586427689946755987193731005530400995604540672241255527097872897432062430074316888202240533769347104554543431880338642549630727397171202210522016790419244648171632030832501935459553449711104408548900901176188883897870694586021010731750483953234943452352111156445172560054177427206230167180549788618696553169767410504659887116817312029219839680156078793797723609848316709005608723818787987690166157242029414569274570772739769492994890658589718547966504274788568820066910742708375939700959284964142652195250473400291901371879475301788330255489062690020076296957025310280150306236103784790808177588333882694632096985368953802915347929726654587278495664051852530357718265631373217824068065575402493613459155550198122961185259783144244066363831768675432777823356807042255687688939454190434701570638898670082544482457836485804851904007035113911004163030333225808522044143793997716662228347881748660206991682909976776002613391917876249176366294981856303165734375680583240057141084057822216019656011145459198478747631346600040943298872502315794173292839075304004159542612784109686576303143084738173970372807198164414263008933674618474276124935450724641548439511069375662107427857333543808118337850691158929335780914337699815814276835487787878827180641602194227716505317203182725642651886407691455488223643735372138691784018142758514105899227275853983305456641366054352989129058225594976278860001486797062805590559148352739837677995814641242828069334022663342371361871743085325925396105379221344074005118623037889320544151955527515511282580750426583686815559115390204322120411631731362253166247733866540632257363272573175278692145500117760049812400086069786319170292937058576354611581577849631692919621628048536202023783733250446783065602905744161488070084028683456066400890342899828601456046149038487047384086801173845508012499343352320584550599240927666577687287397208337099966652721549582476847114321274522412072641375160330991983622192734388250713764450335595892087869771977172457067952022668172853212782249028233324175287273437206655005499097879708469967963622207781071434241697207551397962681685658062852047475431233922458448221626809987219912559113644325712440958072654191681465406184464603895988212806333053567968920244676968356262591454923160502818155397778386010184710426184567050711181677622935679033147484848362132369836758594392366942713236151035214174520539085993141864572003211289609644961725056464649092856246971449939828419130520804919189185643451410041555381126321160213677475257208982188351983968288875478036990072517880501518635768085553657648249899378265316085961528736024352211420329657657876611357031185149702956203094722571344446706275433746115736461663858251699136418239463705914646148046491517516131968965700217521931706554286044699709555099865971969980400180569574452024358853413439164016145436443406282905095442438093666730830724789924675678950738771252941365924964175625147772591337916955552837298876217050291385218279563875339817308909481147918940966654324186152411866089576988728279873217808312501019033335409886478377321513134757024907170081632228272662811184733027730054455401444233721759711709780001230970245927592525792657876144466266414335840233403106406689812546985349250393349641058112345360093051367659432228756233596574690916724659580440019205619454142757546115012247878581972061759474851188184812513594109077469739021725161870449110070452366933465688438081987977456779539919250085717672497726464285216088762881331095672836435170903425451050248741198818128948072636121745114324890845353655737143910259640372642533210896225549337180696796775241130507727680191787623711491424020693931195616009813957581103781958433694442979549286957714350613914664575235809880778579657411286432103167355022790207900455191977973084850098365325639167644997419446216186800245715682175759003424109772525167557568708580317571465802747425677918509027687499311428788682723694730049392893299301895989326174959102698365629482939792956149274753034415379211163460564284994519421411805572337275154790841733885782734503990865022108237361042857140230285430561982154957997561422936279352762482203145626906968316699092069884777597821996995890860735126224534825986872439386711278529773405847502860517598455537856761892556503741762893504614251322925598241638846645627298606015688137688541452582308767969950881619871484451704795318047260572915113489282034032976332122002318974764601808262948761191680509795762979168191844441635802025353357313928529342679648319929743916612306574805311271804558382699265633460382861110280386181781111894202116384120131630194455464990956110594614269410426457061167944988008180465195464347246945792158635567600977068439857295717127777015940301650694314165195126039213696365113650689200107271443451914145937727051599319388321199529390153492474510118622209987223385084773074529447655417330834720447210402276843282415838630950008184502041987622549489071447771647056304147948520923389211861699805006657489017111167300755527871061085335427491234309728630150538301283405723324407783669640739451019613200324957685372433528951060711724532181251204848840674399652206037163284247555136843076314224296845371056575648317313504521042530205906076075889110861396423019189655904100542424129581329614503204334376598850611741953596197428695336071315205918723452544508426959082966064713056097797580274881348071126387680251188473368316294375861799761087276403252973591299130391487933243245675886387136513409042576346181544559277798379824242288551225395946607020210893625626380033033652681444238199135713307228345067905230496900441911421797728309256316837666769253137900262059800110134057147472302146060542461449145352552634564060604605189084844722599465567998826913492294372276329744984811754066157099283164470768873837441035455844183438360577345644051463228746377935614545785817513864861966291546155356114648875197271333637261250315048215182687253424773516676245536197014935847275221423536676988800486917943415077444538506594930792390530254063930946533843365110027588510794809396408585888018453105290133052676856684177367859332526636404506969313047324754812619517217727699924636302497850553408489624979194358913143476212720882601978393296790494170562485179661187084293614141251995185527284975567959458375366669417886237305769140589900764087568398742530712080366471632000823418606906000321506939257656636524182760409385198051022675851300050003276470297422366729630845553059187636183629476747755664500115113377134323521728951414372965277232557893656688367289784164312878383036852501758032584190748359601891965688716799418756060934655185468076161816931979253200752610538029456705187896250050706293015311961446790185727710945728113216815287850945638349956668377173780951579245650401369740661691493875184717789557396135283162419207917991701419240986265070824980939387959757558356618299882514008676772683873240480689226543418449063408087552350515816295195058333359395895058674289689304589429832757886192630471679803606217863501537658205151483752397021784763406992578323133307506107653608690471809541328262508415570324110632319160926584161847244632439354156291587129840936025662672049917337087818225000295425359279097508732837039886976141649895720838725875164038807878737760555972950020306140487300143261106753212456495274446868016126378570244233544589025140317807217920125963552193874736694924818185241960678429486785603729623487719145760348715100418782275001771370247800162011096196890835646442190808922564228336626578822455566181891195764859313024901265107909246743099230231102816417544348776421394943146868523438776544222063118681606321092528680672097729338812592113583012410334879652710484173357990249284983105767920819236163857073837553474366944877452610372828471964157127261769315503623828682212661928191354357982702568509514297233466843507793999170199741222604840578735187537353127879090930663421708250558203691638254950511362236623414074947320879671395200224597931694350299473445605517632084995447586379385071806429630461644133208246053526716387763551204863405946950171973466580989223938075481766908451030631941924514802635937381013584929487305277483173809330771162154107139432621950136707700348283266453154172965485726745696738020470777321698492404396213163339350937801926083744881967372443467577888951863537513591403479056166154710922228722317879786287054236363081100389478370257144819601323481710535328427790279286679977988188304009353488228776480734437137446400795166590671593295860184438673504083446493699017479296529902629464496705201399554228224507444537896944423031499484379482806138515638773115619369464462012440398357182624970871619226258678653647874763619910092499756277374198800011191118910188234814008332483418932424656811129992047895520126460555356633508711288583950607127459976968860091721363439716100922709314829763275838914125021214333199325319539120113692013557877588407032543100801238402070310419941423388633124280368897501406622832640388676367805977000042031082811068441102742346713547980334804906207027512650895870170943109356541181023560066372852040718438259784465991673795548244848088119292577970854205595856506904125020996221507595458830718441286664858414266884248776533582795111070609232969256377997325598482759833259248467707467581966711507835902994272620697483795921284473113555535343628137834092159815984348524685756190333317375996392599434248673704299071398870613537392262976283159432231394744892792282430206003547827610369695482141914719310273775987227584134182556590111053360352015321104229167897512225850829000781663808203978019388889365630511165257227887469240877710327860375206410880918867522644721702913075730621347828135927283273773566886881978182762169282386088702052360754611814342259743863226503095294890756687483145235332189761760193794620441281137671822456055380699119577144316499650723589778361859740344699445635248458238755250312307672410289806329599437895950595508361500306097417015597426389719800966898082552855666178217054092673174050954251383664597859970387418586581541265324727934857835767131666206317634457942426907296809958819730711213116880867108625537301730362161434446437108117616090634045147042563305880737154872333366829219904676969458222789486321730853059374277998261680215146366705143164951779657667721662379083064772774837647697569538773908924570039983386737071101658786055503935602528057521235313564376163970886725348730935974537545774492997596679445189427410966015536000465428381342542135778537129569694878473829881494260222300932227630027591694971910257364312122620681869285867032173783214565245753395923503976953932259811436197106246551479047634320702774082435736547819815826774796850912814245648339986857703736137704592012105083474074273464583099586268398241268218948934354143253395683934047799235701513252304455104794305427119416852478221135641774548348575667366743309202738672508853667684601702649649552153693783654960903445271134009808837668519017747977795602076528976609081664495947028256292383697204890525560650384406604062060090338389631441296084457318679324906090292486607421470601217216911928852718774716033237080240339579494671967918494924532683723804751068332793157978186573910253204468490546252853204463671061972201798685333415415192551061004789280262064362092777809887591673824703844160063350275377399973867163175060758989980953141907971552417645233088028068164304942992021969347304643777731633797541707483047727518013157879114729058979461917375881767737297874537229984438435952896480913459539774276010689328051033829694665444211547276591168483802115193322548928152585835847861106234108656567978377911293176747323536460616202311794742028347575804050872905336717170934940008755370743536449325168619678449556174077945924335259869910057131879595691208184643313389562717753051835579391773057845397571443517130047701715163800020943904773969946086466006537969985002617728714803349202050537198954331549923270164210710941901197563060942938310626154254341796780129028202598446632295298588092053665145621609698837480890804409808738867537158102877204666987525297987943146398945943627028414862991976432534479486881111724394802304645177640081950019324020660210925025381063136454979946500039326132581181893826990636090287209750991817747592760023478384046017660560185596134242282450414929358654588513093313160456495969908738745850368852609402147890213320501141288134424510995992869573357722723345683024455607541972475332678628146959124825955174337222293628138306375065225026862122758722145327790949910729740497206827178626288203690521418608248942501456345601608288210968825006511954079479068039257035401261305606473662103144919542167674258062578061329488973728786917889083980101650252225171266999858461776893435548342804157382656732489035956182621596156118423404969624656347573561583208262314322869083413595521393610432010951043253261755363706460816379738078216844480625949272869393476445833782982473634069125689898005446033908974178636575413693776308399949041921445760360263510742604935056790707183733404390186656967180076233687579967030532963100611126681930550439048610008097257879466894818225318770468643611683813817547355256362605616886903772320973601633768533040573694265964884364171498432632858653190644484068113349815797387757662406420902593973014461462699536578403103076282948673579860075963692903290246715437126360697855127125888948608236615810857152840366483465478650352071247458309210330032025175905240073257516130403005511590706080675468565352932162162827479618499472689884971309958919830424212874443272850982045110040100699203796338888682418940682842782657916892918041328276114627286100467222432717697533355048156156696421723518591526370152974712642965332918314525998516035100635484847063491359822423286044292301564245238812427077439656984161879469659794118279572965026361426567832008116932715385437179491546336187451198698822304458454616301386917972107998516872058409066387261649298752229500150167725505391171766612761720245022448202084599353084003678281404531767978019846595058826173388082416363277486079866258851729781532469560532296570444197266680876912734682293680782316073553247748119781880324087997245309055892914970139711329171344564810594463986469189763354657284364567593934870821985144675938576510112697036774887452356609744446626415287890486542087834249980940078914596758314859496611020282962944191134270280492320776864145910989160074804920530984609432930232435184263162699801259944336179495258442890338861131839896363889460058704786246291759174144892657529493021139997320888174089060188643884174553627026969392835586285445492270056135026352806516858761561750826575679407607422002070626257696554761147015578354417306265279476244458041319510707689123719608464300212089381259599971414351924030185789708094453635736206724822003117894389613848069577364996798337344128019988196275634214120912901692063441057682386339251024211147785809620872528330301437842937881256943117824780869185203834201908440179621717976618504949265299629634444642399697231591500786137746211361068759686398890659652725639414050365519885722142419154386532587915623649136970806988285847017266211577989286418325008774091921913463246432442906516335630890426440887958946015958568818600593082311670424270299887840250674735363392400723864999681713728199635307043115379775982675175556636347698303245738718984359485391522595547952748652855241389901238343449896080980841642368236191770823699798236541242797247687738925513951582745909711526668096623080770399818399768509903469953471876959963711704094439411927900860816671964768889109363379640182174893939020701913114301555093670313259971274137740940603068855687980482666833610180532957811210635614115365151132433832668294464922423851719825813440207458664284765890906089485765775304258908324292046571653288459414025947988227301464883513170252712598480232114861504125565918038013084657080029085658123462508907560473782567748808479162679356142914752407334880405381842458597073831031497962453933157284141202785714476648990953111333178397474411365324052095284126183118319268909417615460377702951626771619877696322692876370219106794475767191173445528307805408347294523622837667516514001947560521934420226451752903467007823446523984146140705184216613565135635321924497463995478315175956526867994922285529498172878711175936126335389595813786352620537007247014698766339634579940955954142538122318787229075255499003524013385760425679491798670134756162924272785142813710709434765710454283087658562251105128574748578436094540691756639373042333115038094389318131393681739239898651712087180227816394645180261097946709025356137271474291372555522430621931406774214369013377226353285694574649409860503284263511038221590884100466655854909723400853304807112518123091786802758864512444166765857899426698780373345177710947834725960098839191042140226607196374228253200822664220255781154815626867016836199906368437518252595077562381534644594126191818609161330365470377459207082979459717123567968485666442156502432001990930913054444704761113647980668051215799764387596713128322054007810783290650659654994032832601102238905735242803975590900283775958655180645354651976852779462969196070038571213486807883130134754878169477559378494820965353974157494797678710998888303063283577059843977509992406565034663746671357100329576526387908817072229137995883869634490095833214041099486666363599169895734932819127605941534914427665861594298106408616140688002298087108050498234895200819748360577983562440571635494860471045697893576758935275395272115733842400740810852847799716200139368860033762207289745495893359367166189420058049767066657082285575903285272305515775952988277871027678214741828721466152106551149384273696618718663517931442268513578584528848278142920522167230264664091465105072402225552341281210464892991113007175411149673889702501600284788576440956769959427846973991854571140986091001593959313986344987476409384245290846935386760542549017787663643287204765521846805983138549545083863133261151555746021722487670615053505624547583087519892832780535139196933965058294556963716883527528456367719815472925104207314699891761118881656482372997866729108139136661014612708477972131460931059134568835382994741025544362662478019870643096862497118109933922493786378852316398413857449983623561702964651694354881634899529508047231853296691137289695147573725694808943483642782152074147541275380649396873924744018543064667297286899064955241659556394550046460469559274806840342974529262941880893339989071850771745393825066968957663450727420104754046113485396667497251942851564319789015456017731245372999391381673328396851098944504813143371888837872149276777257220311206869025606134103252954583167826518136786482514679384881186682469038015289308930689368830276357105228805004202109329000100096125175981957420268621061071764816072576443432492989584405071645258622987194889428698893216293316501726088027532108628752220118133184134745925329833798599187360030266396202554120442760273255090801293077241801213140287090288199407214483164221061244408577618863846130417841774059023541141470070969936035237486769292326907264862638801467191361608654289619904974859397940483411187189403235244609410778187339712167762806656967192659707581545875741843935154802786616493398104316562604553106776158021088611981249604187301483792525515608172879622435910760573738839932562530501516863465439401889604589253980372718451168533768177857036654937536063025216065416251118897906373690718783088906757972901981799103997872482777514805472666592200230106618932866641943657039516568478662619378833920896047929195882653506406747823061668621826121706660577972828167713672731356498685406900443949093195337339865068984544268551389641013813964759427283487415938112889203087862326994868645942750438373212525469662295349400441784023233011017564063619260411118888078708050842355474020616235644752395491701439097433829216640376953352723849260913236390029700741306243744129993589474879409312599172630893698616539967653212232029435556062115683613998816209515800705627354089524934593865150460855883436400406348834534585671849858204585299282870373233920651155830166016128851356554388142928464162987031785750486196402874634534667398655057473837142814592758253973851673725950751186991068040191871474789112186376324535928273284024173640148339623275131684105920008105253910697193359608351648532352973435966089796394585775661013323222304853894442974272759870693613613805691063264563425747969430070012823026612466992065079400417202293042335496046806816188614455609388545049714803650605137792139122160130709812355836895747761697248164519547225367754438702562958429571948850685585182105688295471834567507878187185314101610125380186717624851522732236646684317466988586982007985008242092764086120324119135849642848185781530935589919030574493488788289035805717771563270043739367722915734445386145549908453662321276972797802300089343643181226631741787752306356490840866803641158284960008096550395418647890617455074141300772958114322361395708902817567986523679478899330463218835087769393562842284610733298941795650830361616646617121514032707114825424417415229571985259663963331909815153446412892430009191605089103268059323497437140804026985244498893140748280136305122229421788473370305074629625429218822192256305777435412999937300371886676536159387982944478456242546580216921577168659300781965057651887012799586789599562704767639449701082551266880421555930949223681554971306107686870988615608321257246030431337836581567207091854787248941727897911386389195720513029381319331865659978904720090981683534731922356724124432263094942901031777979190094045448375693579990756857997949343217589830104331616108493406957916569775655709185051990732169994651565758081184253638433889228899221020036209178668930401210661300167161578935216397779007249414426759458067700114183228710340667259363554552309106874250487147244852252060475277425228409814196376506817290974499460866118760127534400610438668862308086805289749606404243335705552430570934793914222441273966632810939606937997978773254838620922231806730108918275574698672859649689351739798384266366269203602269788030831576467938649442993862626886275576255872299482573453326128983401979644763764590709937743619235870866678907149297466785833199238236572146166273498955284282929815747236101621696013163081329600956061383847937312942420839869221206526122381970454263184298387961849563291398685902397700564974433477956627130438246600564030662576310282520454405402484299299867883046403404318303337707402578918358706634255545225899296991921175815753678253302736620636521327501150183610933951887421649545179324302908289870632070852169545012339569918394422017835535108914319488858123186263353270403959014984324932504920463860288061061162599874108481939046885410558657826658005234058820893203122584318657174204739032575484598578165318378816077937318812670742509129209112866831743779719047320230542886043744412336663436394922992378642158361642096714524417075068656645443197731969963115994709010779176374966068273664242379719477685002072770498523570370177684395450991200744451400501524851671289458786477673896221810711710176215981512190433564944827429098537551463264185092229337263257624666693463134059054669100722545085591103284976613745201661059513551247679001912368508367106680126770392853919299901972310379380931407843904804370396357075200534438984826021077543911296182747264940376500615964078505066936192755413793838523275305164228751269686064573905632700267443958379066096317768176718071506252936682980021556936538196826726045511460266487609640703059492372833173892333530774332613837896042551684883439889465928800058444189089955143521565740166262150636116863271247557996513150113024954677906526996285915275595359871414272572822789456093132424651200710732418938899762514793775032587910115946641604145120804335276015394662690923210736008687756711654255735180626613387632549229484462636440186398744272875677617889935640945454650663743296142833310194219549396388588476611764368294469182377624213016154860174279955642828715545241255054535556396091378768449205611143628979782936586067950558324815696954469450004508063551097678927286599233783719319189240947436751775582568588846355122462174830657929522121766106112527157349254055002965015713479746222052356424628329129176262455782342039380361887866866871656844546697650968967269316320318563394986701142132827848259639030821283284562762219821688335653154941587670078210782948939392946007696810945301941134415289089672869963096789474945791482598868280073473186625223579406372396252110678611145073064551586873337326418098348314382478841104577683883026540615066679074466009003500320906831702456521514891532636723810550265818272078056577432249668747597231032067870223237746240235966511988407679287373050072445298556405458236920666347673994507167149255600037286694857254007328374071096289643176065631828583725115683962847040654257591961184762919877149745496810141294652518830808500962958862061409526199765489339505687050325688593497170265150273623664320833107607999237635699201906070839310781705155326758362198823532610957495196207021360205130642306290262599409261495273930469309661096402163276198287144175246040021882478837251181057246775094240398861868853027702161558565103327062861709340573797591023052391839811770231432573018528732409813932436730509403525912444982957851192609337580904632900985043759245513652330916228578004424623559750246891521110602558358330654488412702449528703634060781638833379350488789732496331822221042945207565574956155012581522818902152240734977763511597852317641294585636266646979498993609024195362366464866025120841183722991138024286633435167099637885830752301561732201995798165322941801906774008340876183876695983427177541622508999329478666058926631485550461777913793240126940477037597785175400611751661797987488002965647492501493558867361404585633887150605882637557148777047864382884634586614829338515406383701300503526292868378059629543186444663318832131362177536346725184916514781954123361456680219547359786344732070078563261434745520531995507037283668272131207212034212367118232660632522863003812634718147613136769490811083005168327930412419569172541629476114984886089040168310862870321040478209423930971500117326804931632984034866613456280128238086406107889369180694140133728139283585471615102610507635688645737147270811870612586027467468451513179643432443674564544474437670576348591719334183344591759428906173641198291620392531013755323583550872405887069004232356456105606404319900450785726569662255612083935842199820666200124544311614611057110884804113340660680715354559484472668407763360990179793282466321572133454035612443314456429952902418593017317435732212134942528388674661704869827364218699542028853105665590253681206764651207146195134385737975748686774134226881767753778596084424957835833236221665382139001014160796900633008963409847904042996173763430895071415284324758757919552585025906144325707473587563784429152047957122213557167691000275965384340212420010890087466349849249501403394882109999317950467676314173433552235187050306861595288479851823657591301075858275713934297822239398918084392547118374221892114548890865586591218358515498805828236092931723305929186434368446458838535277216698023353302676033205193389461989075987047349797841777658466200331475150380772911854860406692028626755704021816804717638140054785057990078796828395475341247080699828239969772264689440265486700505136521834926593091171857849600672083163661381953710213546740241196983250682027141439030099095882589507924828215397608690628811316352901195467570945297216923605775933401526943152010455016242959657910352361891977837237482884165740794608185921047050403189797648120168473947062054645685005112496235525852853905776078221276327911473613895374285019000238778798319337508300663234180164710249277793965843577876124556454526916524623598140301514534255600346423252251018129028972615502809609686252469680202150345472030462426064480237811763548073801885620111732470788930540435452744955094018190554921584927051052921175633616202116337470320861082100278600150732819665662055010392663491219165451986386246769164777037896872757371080044696721249817595453685131868699185489320792654879720529262851193709901252546204879091822648722440268970146975070856318402661334231629880609015468397018108018012819904701737005174039502888077858292206634792666017729962487740433955293890568628075066145073794569846994387152201208518144624442715702042775355856440549229590745941126695080888632455049836235496628745618561771789274472646583028817196233322506075650322098412231611440735531747446008838034529844785516802964102075441903294064828591770712104194742689630723810397469989556596895861064766209379843398655417430626386944163769256563910263421517211832046662463222194880137150556732234382058502075046362638232437635350416468509023030067588536505167550950001079287541393289454234289674878170418953373897109905546788557305375746645463349252336616155143895426920434868463876766693326804950063367169959767112919710531162806990088371216911812301947857919508432587835655351621501334601973427137195536857660304624515540557284125089977262712204008264650943529371816481754832259771987045285284485477657333297550458208188845538652625959319957112248771868609532230792154373113996823880917064717955867619053214139734318031383272388060281130793027846855646272060756779609517222705661857149067198608218245263625391723709641370818501875477239831534314657482064963243964438239014190790807952460461072336892628855848683657470611009129407794711906874415253808970647285835220992317314065690213025125465915697974128738790360108214994170279543040986228146682336988267130465001956390250840762749113929486188640354308008265786826543334082053694005326460596460655190819370638431583822207801179509572503007679039002805923378543687316692878544216597815108480789759974499128185254539619731697254979308330020147811670654572909079051530354241874985572489921395315098320626204271429737644011805153604713192617465605892979151700931190323048098453158773320059659011297432921490369699545176346859984871696228852968580778361597680364847700331941800793185322491078238308554139252084001577795463456075548983887501411276727610565188959194818072514477230810157218079114149226935385035925224404410948414275069763842709059833915766114861706488834447315497690088535953932947278266194773834739628979145032973180184955897589201515001321804896235709807804115796475630479604003606465382413213904613238429176875605418613732895526251166645121192830137832700370617568842178781561442943646256133510315620804874356561580126211113533462217023034884180826279131300863943992563128162894733565251919472348968001018903285507119508853447142064858392961661072747744687383057728017947925252985391139992546109773267555348824731959366903039784178093285915632551582546724951659425498052908234921227884640200558968624844673253771881293618141498902715061928877409212313819039906087018198613404312064083341650737362206043285790953169465950740943459625727984015999627706694895900421483078575989569439883870938701591083362844125042579172268752584514252842827648370992402662057971873441573984382520430223845684938501171646764431239072977649050101988995921677046015006886946437084553882935833013439933998560763537587785202927665288532226594205845714171307200668790611240345094715872605466457717194381208132635067560049756130026724889316750789890288094754183084200531378105739629533037675208867401789645014736797817388310494533890129000493874926635804226192154202103751477475485316876312428424882837414088638460011402201471358208957140106792108057237030197662265554996317953586554769607669945351788804353380768184510042525231722416107025377322261070493915963554931290811050742438630645648159573931167883230257452704882409867646358155297457508961265860286761258793355757233609899190364452571718316018834923906450393641890106839145029165990842291885683659087575056604638529550647543225641712144317212581251645982096802224357364564485304936462922643974291958910624633195553315048432384174184997077817055810932340361163564514648618125472878662382950371121666952068373427031907724115203785404193238609816501782172464887321870011478119157003321000637038077637923687308533202164915819092711069461802582094533690594555321157919448328845768690422867041286021223943695263495190838341615489134132930376790833331578067446132937733979493312287917037910740466192650864478647724714555953867315993031799038768232217693296674503265958795733969292469836372224329379518409042872877097814167461128418723049975060808435476488355669334488255263366676318186482753920497455972616539227995323609397793568224168310497683201323494673528912609553620513227072270173495538117626883268682007654934724756756624084462516104901968611164294136497945364614983433679500282963642039658155503620765243871541792030337725629397012472099564807982795121931306279603737469900116398120356210104285811647618341326797868401462094331574291677799797894486121357603763562714837362326094222456628990706701892039923867331089153521026841395806677374173072407382255871450174803867396292818579614376994240006616302215811692705569038475625331234424544453579249480886706517285551265111395929173067960956097128566173928438466857794560894569819784844271466045455116565669374783146673695715925927705940778170592549181601706624531305347123558512471705227678209771115643371350792519584871451212772371341532586392607104095354897476547700012706624640285503627565983405370650166233086312255079391973302916310032547648473883226920723495839604246571128126679212386128222852832624545434321187470692483137510220864713386753255881253056466561898289200624018739343992127954155905604410489584899487966683069069430396459379517032979245149881611073945405857445829404539603838521923847399387554072409555786855540523034638873137864117942113560592216843752235108675592690512143740874038284563827288378769365559223665780775007066340723787134187915031653456618314119483896149806151520065572078292409954584822188360910131125460044393346250926362943023801382090382760009863524318524780897984010746558166167718888096285431825551335546577483180092268829490316117811911414493246108520750229601412404163702176308474431096730883514627662099592611841243077071053542535063373701893078341495118771906745195832928175561630732706200788056978784418764580485995761003438434252745371803573057125858998575497569651807898647928735290439496171654850871012476959057828310030785169887394253195101420217434798129895009555118818636491195749697332483343502805520378453821682720344728289743535473756671754800260108630801665445335313956819250021471888231503603583012562361313071279397521165592553682393489074535938984322244595436354515918424725626635783046824940645920233528928860134485001294737862566575739661989244630958644399203887075435868798671519026538474530487903165350575310610328296868238941406062082160949719956139949579031398480767902780908221572580697742201995003788684047816582930087220458366602242993084715958826055608439890380190267293220967900614200443164827907630359900458278137203504016403445572634768097542633879022946778211006866498704711069633564832810876029946956409218386680769275144575359982572903206092319851258826152004806484403813108208499202033133727951439525611010620872580801300037635338142806077870603704325008313687494966473913420389458778852899498569000583734232362561506289499522972148101492451589761940068763191319491181152266213276327989958621554218201042172781530663971036069899909791114953305989034228318367217877351436653206210319853527796590059060547088065776390461003719338757621577204817412150374980412681561437867679196193892422247034904053280811585568914544655081095746911075995678012337300248734130184757411332113206173474828754979206289798554866545476551367284918015960360069568271996652017506148364995695959280928424044378819831354413071204341315292743989130577102368726207661871127724056971522733274615814044728966772282799904262264580138567225586675257833759327408961398718457685540299175330077541026151302284528221873887036077815835490226756184683547849378912696342736966236704764037505677057036193018640677103878376085704722842658973756875760444581676004036804956058109264445709539354756050231281467640515843841445249893950228824260133145360015420193461723760773225662670649538888964057214121846902308150638043385394826911611252854435183841108116579707263774130412224923963296490411440778363980764580246191074754180262706194008546765320862325798243998605051220565396851816565001045634500569403773478201247981616895336539077340727814353943762028351309528687662287508663859913111971927845754991468784020007548095482942795417348291852656731443642361489180456250021745126091599883178642689964655214129923416319495171126899189734600732236297643450610474791823949661477906827755974126890625361929566207802814762936271157061064781161405791811576711794519316497693355131122358804089650007735753815499336598745584448351013681069460787551794833534580425113995251790591171142830734189274225087883990306501788210404375142663655626170648820625097658403259586204560971139541066179101929619286851176661613041174850060337734591763937825255776695228301977674372444538158707530568230530815246988111094056827270761872395574770778026121088213988010399283056591695165393140822418160139214644254970737111871753701018086300418880647108438372404673705791361877041286475531580059936397921469644667938798753711913883633911249945680844249560844793511630622866992736419154526188848651145333085918029281054428282118139307180344951480828721641891958538087752243729498221535382179553986211379929537567996011128212010240941820980567430877522064554391500492398635881972347831985056645741677428717024897376163416128377308902426114395524602549212338508750616510916227302672514799087758713821918980860535359942640466594265083628672323273808459251487370091585490359055600907616778833246794931232657352031339380535576570103261318455307511016074250318355705146476154524770506713087985483112979404942235649586039941931612668778514395585664937169707713399917481171476152436224432322155907728093363546880467998250697273640676754657679284637145021160949865308142959359862465427330622721766536630469274908493627240345505168520696174401127378444582701826902954924457667674576367573965479346280269520350130352425156015523476966628987436492356853995211993206726138920943764496632389674085303942946123782031090013810716008209056899517223032226399496269663880298838652965092193172200376173214312427291981323080393926258830726543672356831159922878453873975522194040447839585758994145862463856410353473851567092629357355386317845409820609830236803424331038971554826515692836605592037798021576713305076774984490532905579466857882389307131344712548934889266330852081665416008788374269776324785992845330186976318501241643855473840517814991990998236685312280480535471266644702132417479511244525246310003731877076788920074088357063644448414535773433552905584519750304038168589789921139143389305938193444705344231761532417212848969216965872726600755466677642537036020744548141015883726770548769356276288998239431794872403070416631245728711996210569447945145711846079265270964398433347055339775389522818500632033660739241425299093382394807825743047167750255801570232481936727214786958354473167393483046510244925105086604292209346616345874202466274753853705468997429889531142112132057503650056990935251439794027808895755691505112875976255985712510334340503959929550209394348361725240755688477725236489330683264037182115235620667195974170384619908700639969053321121065933613779809680520474115625985672924884616159887621933272847959963652994799395861329911732722022292674846067408574936739239743434191826801067247944930634120515482808124290405678601308989773936200801182535383245823599618317627107779971832904580580435052495347408393117438882729000182230027385681115443373464035169655328112388244824673461243052613523112062933352838409943658717002187378922532371214889247498272418046310260058147306054563883435522148692393568683850406353385872291565874573914814447283804664441121706296099273440742150942117722133581237767036433744970552342642683480597340644735849803909713877322024370959741122729524488508767428260930472983445907086727579272255713143192266265828931284249481237769048317422920658648955070054419199170219754003259724291819101685663470887111575504162827115255289824500533882549348136228087028491841328819680658714019533000746881885985535026417551781842197829761591648702966407261612447303025939429567362126504525712977470362796305234222295482239472174539515736846750331145781598453405287749678498524565024130781610590927539831614181481250490610299450795257260129797812196550833853266261429941745650840557195698181019775511241471889207076289924427540369470611303626315438710021085223192491945874920677249858854013249205223489298867439646064582633630814975438680692739425108173278377783635414829594730095098645088109367130170986628220823321136805415467978206078191840666285451447761357019207690462752877193018119109637876035068459054696147682042184742701502096795286318168266587235617613847562789700640663860552376137247067722553739857576042908487343457124169921447683733993764088814987336893119059239144892461728010650902409554884756753929745633889468032080486432115117577544576854873996925998705381088072457160954935089679999282167331742907904091995631632379047189611153375103493485573741663244344074097635599931684281495085020818840444985690054888784362539459290726141878782747460552726661207721855637507070028926515440759848255566059918617278264295063590255565621012932873331287189675764005970882106102765013647983215986828994613934170657250054280890648508134129748651418937902834720945442885790801232075697628308207514055795814735044231943989868886133746432890558177587865273787793045121110053115163701283761103167009235921622095262443752829400746529245491309524159988105032212806705035399161743160812166841043832755752873110257365224004726636754666202059031531331251330777079980999019564336895574343762269305537336853362074051100428771915664620118586270177295809503140728097171000108020784148323307713206842238219012168742234792027144270432102654316670915068540284579759545042284142387780667044946192132605770492244152764324294227824921467471957775784641093055573263855625336141742352218168776977098811937719673598361126976828460433690018902284054532910618921819334125498623717020087669472669795783837390409392238229437347135232612191293213372783845594473287454344882901493605337065445104084887373162513860816744001213325341843974913592632713486005239142736973945752421046427806971560420915045240087486161592508780781832794765870593145626974907409673562405637128019215540296851804760361210602149516477484504689302677196301010366959668944409331543908432678413054733277243249855447415810225479780259865493314550915386624603350539135773052610265751892158699974140098718764791435040606127154277743205508709106107595690926276884234770868283673306410060299803680060102934781706072423487007109646117498423829885621957421572758671857791579539471896200159936580443829281134946140217550062177589600915441857687434354136447016659336069430617846290738519081684453595932387020025404058404641681457480443943937373110692284485579276582630450230099385772548857668474083984972298587532292775179363641784318636865975092786202143786662079100166875386118441704320846592361041483799693305184595038229896349161986303241433394151432477974657710186723607860462540905390886212100909990212106002405196861852968955301398658957984693958824885180894951850830774161120030344315206151460432297098142745756907510684635865549502879230140434547637080090171453333381552277431687040936414452934648977762836667925964951823543753176582572968476362243547965098139676608940792296192087763766856675519948781030120123229095573415966213816085005580615201143671732444696859877582438053154186612355471150989959507169446614788633005171511665721621774013935150403104926135425407077734953022555519542976934713173393399479113029129171507620026369098545890951783138486600670051148467762466449541655148139238941539822897273467788363077452224386886938615175741030836564486721998619879859953711566307300183239354728986542506674190832675792755863796003506912419050676015454031181438531588890869567947146157984267755708763439125404198425979617335713660039870705225198370420477673799196320187393447270425394420200046821317003790477179834983612764626469487035988092135511025022448898792015134898852605848645923798868874414113648501779227786075914376749340339730108394148167306373932864063380424470015971010241149365753548042940178106460306106130529671545440642576330559191635989225111090452927750750294125853044544417612607573719367933246638265419299560268054859976497085076602904074670946192469919623102446322839037020093505806863897850239833877377018159730249515414586790060643181851914969480684020993224250736745548445393816081761217713962592275836417772678890268085640127080484695570292376194747609460799781370994904544442924951457896227001404883399822592093968354620855207319069882873453338783315166534088890669699477167382528030321793828885347114158925959607764584770005518304215981808213213867286531148112321675780867629819746390071242551893822732150170046600813054670256681285855854760873860064063349841759340600949589430611791675522562334087704126066678496424372523716796311568073229055191311730241045049290334409605616915475540156466404355281958413665643593842689726934123318807561947525757650342479926785148458420932590241379668100188092463552530471492032846179957268734925909028843910686181962112967894739455339368594702979639136178094235640065787436681768124174343179583978971820440389380325987734722004334288411492768637906474026564527762758235327821732055706870012301747354323494568607704335542382925605211868061160952117172885209971922623020140807395426801599680490691503368675507071825602221232945493979040991793039623023161567776894551415013587335517711846661167418380780758639536320203539421035936480531855604176722097915133485500564773861921422299336822158526924889871786225970199735088956012224173010795885875438819863025208230376989287600067463475709452026036068318528532292570558255120896353716364806007533482500044330637009406456837098665301738948694723980316796171097664013377520524302709931358948480253057853569017115967098533713660051212845098831212290686848658401510059120159900912801143387450618988910539067419354882516083517329608275465729585487300237732691990013396393050295623182605346676597159235044303664405417778923819189456748207525503902333402934878055984906009169053975051142355743739237382245447211833888419551935528161772594596106330080406211837913444867393544933489920034935372341719360910769183519417446488052855435974197357798372785725203391086578474022063649270546530965448739872926764306928481972147971742460315598334737046423220751351258661413741220328377839419770939332087952667544225827285397311781368110207347412526426167337361408375294799672109496665408857782672518688827840947826628484642501596681021571164217195380960126936161297158686203783749077000250586356489638786408212691378704443140851637564131331237768099510626699845782642503406176836102937502624614639467209999835513572551636060398339051252642009947736340059285401446532656833039955326357666071915403224415600074539542938300700853167370745986605579705183090606108992553770921323975077351170969676031666982382909772093653586021483209197654363835128103740068539681462741820160464373450683897853629523250802456751813516483618281612825702672261627750030723585395052137917431737604540570972881938651582973597807448940598014999973899388403638429893799263814742322859587198497606678762655218831534092382182354032223105706578157512438711259359344745196697534294135075959586750041290416055066993125025311410072352899703092476364747348925231891688526583756651812066047801280842078467572709800070073816269239118080131617861914967363738587321576808832939633445085718427828635253812596914242385533410983497253955698435141575552978882805959105349656980012179157417277729320149857834440160103682994455515254138458999182653870040510594681347838941803666574569028115850379008732404186597476830957541590265946782330055128859271440277854826015992446636671029189120796407754507853981834570983226931778871668641348370129258035140266459688770498302964297930566737154045266640180749891778711738520106106447245033620344747564096779930772586554805707239737333475836425792369053873300442674461169145978009831358887137459363148282696026751260295788409529636042748605724171137693309333769444827423995404860623123259096226084643902843374479506317798288457026336441728169063620531385141023984538112302634753735442275179650923582035636322870928580786613522285757647345692673800344102306421065661362440555343705722738293046552837758547008864663975774281769628740936585666916171724170969902210184901550386830501750779039222600938078897517822487524097955852370976648645547519707995654248776758347982665185261818566685881894785325564844432032576176917010051398376263024815079161664525305091387831692984053594917162941514723380626556791421235527608344590659963041635973755919221255512981492431955447580453902173972933961709333676988737956292957663181539120802000331339958736032299305513325164151200717075067755658285396038485105563423890615371329901278511135122489838945256010600121390882591792994693969280141678988863933416365097914644259181701655988753993453057055312249173905844079263085710838504834642053505500323522647249697536489675906023580592307613305410317780130784292869974993726952319517536056900562527009877643912657395929822675076230038546414594840994463305620001294337004492150213742719860746443119133487944241649628262655609388840332989335016971516586268742569601215230904385255996763274763821385097237487553455455132863975501670513481566442561535726067285290279659054532112198759382878943594204766729471590290069246003971653202394879795485138120874929693432235496914041572502081722973559466537606766351911862502795231593976591598095657124414863367231948094740250048914992889115442415206347620465384104807885885553070978732723406739672168498536483549485003092908475351024850776360326381965018166977178339054997707655563229308386671464935648970112118471637816470106126032030720492978961619025900237718074779541282979842358210612089992910520225007076852703740066205497693506262987842001232251919175529416108636535717289325575333596607408159003811694333376657884549059287137421948965173492172198253067306879102879793729451218398754447751719089711305355912978941187891446921194888687522695726059029885517599398904529137360938017401029127675618917449867703578915703015126633205893537375943464544267230268586189348557400553097438441250686734676540952540642300061104811294852640154741040305280388305774163202924298563464712514347089210564217123055763170227044049810060228317197472009689351219097899300410251917265261442721134493832938621784909578319324659531769534453477009690639779022643026770397505865430193152153241124875706850876639850369836775081586402042696856390284823055457065803796487666364530305117843926551711498411875454446455924936770712277629843121412863240355026109030729614565094566539792626725524361695867447798183152274545129953585368278507916158081774811381834416317992886545509250348962870996507915563358713762202232671286343164351125069208460811697746452416526458132355634518119205064777091943260190295359016962651788507157836547321379643383897395560251903261338826761343462311127001407862550346919992857010184557010114487536760317490535602401421670547250426089435604884417244082129289379064111749443319057142350055170403746433029170497791889414366663331198782518289497635419826319539531214732509793941710806894804171368100374386014829471652643032497150191951025104410590423057939658832649192057830261919338224961650448970649520362429724620871726555451065183882441182112948558455240516824374343231711111161207475575439491579931890809421493771992678477010782958274562650893179576665242987948319422963914239685466113429761377718589408967769301034451800839669166213828559129214474943527021223801375038088453683748838108046469523758318673107091507880179342420013222442122101456346781943311015925253217500907962433827499176149053140128620036523782536122632336446610031538228009557506034136749853646089203889090243309168976745370242809589142868017100758590390238921875140329588353296979981003250202493339145012431494935840953098500708007554021016115472974721511117957750863564001889301949478718581279872296345127614827720755384088347577300398052169042465973263116104200924620729489217940817273131856379239846285538739530321923717364069326142472529457067730565873141116384339292883926416186083480394274448629538990231711985493149502226316881164021019921400405333601053301298557370937347044401324469651858721484659533870687906287875559208367741493062801066291823812175984910312460444922919500327080790968322068502118696427071527768997999575801367132684409838594277820887982051111295189436947169303557835653399277799865155119670321593401083835721904581414777879909293652147750471911385475304820565368767457145041069981663595717265716878943192095142690789326136800598379506136813359034943555334346342743722950944047225556397444816021916977036210972295450141411588041215482648528518857887063795048232201665723456939108407644077620123029667068757485374636711897459852504309278887651533262325472899374498053766336035535021284732621375906710206260365906106265031020275972531500441799101407338523132698791324449343467484949436358931345209226633849685255202988015946250242008258411164484787355765109794442122501622048274062852104435005578015948451556583172926451868106269394369607276761911060290920616690494686420286309754109296856687884447218293800892857339393555527320007374821391069772352403758393001990852252124139517711285788518021486122445392281850405182021680384966922333382965547795799048456399926821545821112026463917716531400314124990801720772133881936321399551582430469044253547681804943077636364678765549173912756521277357710391953205728993609842274684130218575850895361258756536157217300103776647465326281454640159188370653535814976502493090775455266162723563490845231177003576820876204803418634746716667217784282773493681440648219542875519786106823617919707641076257526845611977264308471642178199348288840644944818199553273105970984613111671850954596740073886303130188096069358624594187607495323470842244394951557523866343583785108321652712280862774577341290192410743279193211678844362491183642667601348400460714095736828404580510809021659467838023848368855020271883303692545842390100440830031401613465144011548669434691743789115393943410225134654909822108301958191939191015155179939243231903597225948724995012221442280884282317820036433101705013662518712154956777070859126038737669481876829319547540323559729598443858149218378902597199134093077064609707959567636537302357116947188739953568173442845950582159522938361002391330442319016943789066742273968644782569987922901885181610791719442597325313658586894830534183300366523669120186410662898511120372104028340211985629094215473226481265662769301789148334904039898656370898987330991002367982275751186375719926078027944598624546387822527519371471034860619928325206122977213985143017391155055307812462782118431762231117933632752372411726743619610991548014954606744440346457476460279153906763140349481186747768227800699456123202735501563507743367215339120122166525579702053149600113296205704872609754859244544056775503744271967218565068090090419642078411382943069268171866317436008429642923455658959238240433258947120391613149251095873049936577896214081837466550362794165035662174276904680510325766134087171515161055831982201456432921612900391175950717024598434222968096516403535652271693670761489680314106593581653481787691057495529590049429060262025388857438884895691220159259420099521228786747228692974924289876132130353045740107821302174522867724366746722108977816676364309423261240492016295082225571064600038399417914057205615203623987278425926469327621505666536170661060161162071538631049451191789816123856453111106218088880293171010776914174101075553421058687514676307915152819688422299904533551741206631029005141290830892630618264311337775170256182506280508532450079174876143820799567535128958564670546121467724766163636847984729342707397335979077461954439665677120467180253521466213123654680363051731928531017424190463157743640905666911543489174371589733300295701341334100075347440352083588774622451227314161399512007717021346506901786992115568917833792765992719118684006304391694356004163226587287753019639728134059632922413569120515782024077130211751016918592687139810129808483028231918494641794168663075549813758296413406777794461802895240547544899403569045099429970216069588445651009952600171442145696916026543637483606170172285483138891832876875935187014950373442688869027385355265548917875281071700244537575350498429081310022093437856039814442742127048746401107002069254199583481156498901989660898186123690520499957096442783583376051482000694925656841968405456864245086306997115838805384663827665594349961303758001507330961175314989602695437322113290003423368604600789492196077524978416772845273836204116371158661700201217055622052727890178559297000872920222590529997369738534436998456097263424877804067730358230595518458175656017308173560646435376932006548484106688158044445327030563537347280140883925309515350784871851635010625885805565989331339207075705568747075472351251034570223089443820870511324146129936341823871925069111856912051619350655836524069443325499255296372018370658271526964245397647565903830131325151399256851666074824540450623203410924463690012801059161590964266795508052924060190970068572157096818152930262273383257576231767443277656655120551438304205060715172461594070912112893968439372224090850547050254319665370557145634066689088680452391180741485051721747215594730728121064778199859360255898031673144894270877630088962071877990051708464053992202119900006186447480740955144976191481450367634513235163483385732885820294743588153981882976374667577836788692965968187806858728281479367402751508047186638870389094471317623308831572934737078296160799900681006221915294284316916184913576074915800685523959455374139982623967216133352975688947374274052231918139735140210722763493340581086350206399176212276821606864225262765112990653836126779179319337217382056745342584516168189177256678825219560417376795321261100229800654521854469497967229611313371254169037469983935387039680898838973292866259129920758309077034692067776691004696948584101674139723215671911067412525648344445450824247874324171552383379269140366686768893866766720411637484883811657185817534189331126714013069454996742417180636698513820181657012190073613905985254754188014477781642132582452898219131087638695359946866963823614792593368069615794158337048056938294395012693656765977516561164470570663589570836268443157034472695851088371955625179209347961493642252553899899171594605020835408887197028326266715182271025402138457634947507030671692771153446497728389629349826321148047026292636370562706195370140785902793655337012657743072039735992571485965537906903841024067992797893420131624946885103310528962100877476852511154848146573177596978195778109723160339540477513147843298882324008522147411418604922183829764834636856657616604442509901449734701794140292562403995917023460870140318702151007963208882699305968581330643532967527620293650929731820715997999664423651146861018352856529131601951803358531286075882237880383052195701108063832607553852053364598014353243370205437345291528107930884945715316314372152734556461923196598029174604383679430399786698424476429931626020444431354697365271152881263363210064717129851814951361719890147575082479626025268260927425467107440806938452724229713108949179668870717146464861000727159314735427297602919351976448186782913949477786275422386779913680118400507082325027838088910818936105880390321140050513710622084449684181222190388744889408715538383077925750922486584650495425814764324536109740066826743321552363341407120005876424794532156644397352472828823777311155082139870545818615205827987897967994249206339572859499360750340128503402739756588351147194788321957035141863919635588513247138479873614650889536801881349852624992266693340737588648634740101957526020896802786823602424815135002806371378684059290437863952995612781960302016062054195735531024401068981081964278553968484105549103188223040135576496326287039946251717379560884072521843515574274099778583444992234239756871524923227928296355551152236597810440252500132379099868142546965431348292079877674009195602082642288089938571155644602648507253822833964939318770125205812232874507628016004171768199882187464255908711125449697293236827682958715659844269159714802439951873136157031421299996858056187702172639107531337927382454819779347160851352253752815045920686639268133920078894840615872920514240694778002368404162020506496392688322011445441998643888828672690843408893364055336217189922599271408025029363882968657470798921107629370583123731596311474137618208146411791354737249039978763313587659106755423298876397961249883288425514451785456406350687960413150671305980445384091822373068846874723516340236500574685189920184234885738717709369266679963692719584666545253038572058983449872896669196452213444833513381226845591494193405809637707840373157549156777613129319727312432669902640658397719003848527531434009010388104444752758669845872822783309429812176962552868041691073639600614758877504718092648611010441523916705212144164621266915898152967255007404138057868814071649177492086395760713325699846341896430178407093816192386122444086118348951071170771790814357327366274027013418760331430712533352910902199152741894447782711917107224008321856951802498871844032411578455968984313706860607050906640420544736877280263473581472434190207166048262665311173340413804275760046407869804069468974921577083221224914675405265338540138328999920710780022571911849526738108456300762349962445041548206211411476997442627739494937175933637613321002704743757021879025248565616503084113180394017933903452208215671840806392141263797888012814973746227305759904089893196505732655138607920108859582393921778930817855191706585445032872560497078807457865999917457432499563828931436349123211809351258348241001412061662494118340309953063031294102954047101327699600378531763769119453664038896807932171083439753199143216052126026335996845370200330045450369556285088822569227357345403606730698726216345469069383491473529851098187759485062823744397638087855427587513183917881442705156756161829657743458541518538982142441292246766403674252303476318985574097369493056872781662775655395066580962494273098519648302764817698472553759107779857733433059448246236195229937438087473247500618158167264760769247208571842425579508452774456708990100604611700152120475667150479425942500759600104880785654507662309717917796157545090204220651590987188401865957307571260136012920074846301279123854548901993289138599121698132702083819877625478983621885270170723348095993410310588633934254232254730446198985220861791064745616550976917800376848755766062773929624264205392068391707189133330022886332777015741411443334854844246622395520666899585705777540311643204036337975906163299981211900896951299355951480312546189895962675297969510833985302622095704283019411884699876475075545595708289748898063245423274265150216594464589015625972055018736509454832215700792445005449106867375734290840023883128509858600584689922475460354669954778562508377307820184291181270829397021462704997598168171450106569913817099167632073404341036572344360413517767100977659286625572603959132777605008237883893415904492129220450597526461655999630339333294031396367765556061922530971947852469304044035524192818672889678334960645436046748197390824977338456860211041258663576343634946881300777964355115520537974664454834106855374603391156038761361373597501114478263063450812038897301001751044919013466617518425274136708402108257828555709072653960370764399002285543409269416025169841578518535429839977268103957564456451424415434141161282895484759363202093365495010117282587966346401046550673581947096887186828476098955036335924582858432495960263994862679864391536189548420461858632222978588085736211236666637982144404214186415273043383146314241162921551135748899789109806669234539972159013728997913047957016164100929137159006056859579716330683320796118368682588617644238962547876753765458522413404984254212039538700710288928843897919859515567709623177837939821462718433655591914614825578827467376451730876387912539988790876329563690354449864916954178975496575295555552297706088464843916474177547907168490679353757178208648768936006979513690199050887222359176485785181654203152086982720964698587420662596989359637475933632793985299212470879041249109266736481364251015087039755252589932895945971634835557606971255747810756042255622104480445411447083639952462259370844134024901705640301718418130250268822429196128757363489117975035045018258279637765754613399722314370452185779601507131979339104096404970652952272858887979735382478464723805807742684955557720163484578944174612043981025433613409260439634483374606067066339219335501121524479711068850702677960159264893766174791447310991935419125411864431497039005472896687542263304474164179589515694338267543263184116400021359533003235031874660339493151892620402882730948505743891620797233774056019786811922729546105007550911751803165921885458353115639074519945217268439148332529502608995584075199132882204491415375459813503916536738792081053761175388740859804379607182621354654134506755027285470757270094605850934925393666521215390532426226847892899603488780496714987121729144028216539148562175689638264600191253059340125467392219867862295574304707472002971033013575218527045066164084668086202298003378362896051210214487499210200733652916913825864706578413929049494061344614916796492614588660246823402672985987262117330561970380257497833917002351920609718664792629068278694325443717503552082551958101065377025706891945095137251453968135423520338320965897311340909057403384728426249494985702380468757433986927880709373201707833979026432185769245957900683158961140500080964895208085472136712750236878102907511585668132541270231069955518289784632805387018900967496681506516369860661928976542992025110915684615644229170699099762845675391324563751377393699114673604820705748672198076370385084244983283060127879791403821539951510814650056999287291477032131534983440640989813742551690552635091772497525924427361034945863328881733965917573534368943782315842628515104956044392638683865490852512717013385139319602377931832428579053031739225493998874833974214058017918059222186361885387183719361283937764078514356021898168272607925942068330881116497008729041583386546882306093835433839088810582503036889026089454656826650682478273274642839897010514415462063147262777370142806760665814706470743231248821818528885042536251668532926404360952726583710730405864399573896825011160918762073714544827673876280973466092634693120084416126127775094618369828337075746684319258725426921396137086649087506329807133828241605746617947427902942538044686692674670370822637563949317462561844638930264710892481434087824304075345007888679371942699402079982837636317714897627192749939320771166411276687651498996766006064903049406888912940582974251252152695712860010333439363784090964377597703834894161660632739116246966397166882398802574818202472964918854772063437263477100818373764188016108011845071754630983751104480962980138792983740350465825778705705580328123456245575784303061322046969314310706699382987025262883344409137799946778332069972261098603059033954537269150533541812728899618168547252407104952873969838993831430094269565884707697700342711761024818187525207043449587206838644319046866393106982852419237009101001613051883050674424073882391870637930885916909256862086300225212133658050044234444046048437657402534543664152253368018564968958155601739086538483019325321342976835961693463728168236606633895110878732666753395426941072450880510484470883325622654790061049849692484919825796960437577746209775695806008136343022411065291534002119785879572172450614253804273267440072564568364282848015888514960004659081804315939283478316196122116279871011346256231773014343790035123280787731824329122788709710333876784121920903087057661562133632529984454258121453474677928396111403667042668260058391731857257716794308346402405754757097316161471856761529656003136923168559066560053306379120069205834257294393557393753131028125920743734981316668209273279668715136061386396076831859887551347426307612004022945165786486987078484419003152185379280468429211361710489831421457303600340913577381127753375337232866847892261762595569312974206759997269638264886905045459031531891343369774619010658516832884118971357178597333667200543515267959485590263366610708767938404475454533289480545627027135349621542917069996070860512404804408510836614569461624898524887075018607839653675528981679804018317604551027465379775603726888957808206895008457374966553523894668486089123099156379935953703436336642021882115954435616628288789168626646902509949300407900970794911833959629440006925871046363973626346892950413524288617769290893246446202312673405416966098569133208800057130080973349121211299602598502753739096773470050483098611756858849117478271332881262021846109348962659260223065704398765942888669739636629998459426203363438058592788706200064935461386567759586393297125083834314917705769389097860800262309939462982581919098582387747493511357065703685249412114193122563966831994765234510032715578016207952925571288596431361806249578506315590603234347750879505345245908545895022759669717074217028010611021477416488691599578346887265092063914575461551713965584353846163968960884495108375783398006953135062344915372195400753102854329873980421658138069019966630677350566189831099381366650952438424438341390880953460586233686004277606016337133288814917036120189516218359597493322814736596877850813499170328289238542026862744420428856438385556347476625068933201437971540024861133763196856630884939392188406816025443556321180683836357370100154946436721402551687333157931265400573531055917627289486698635520250535800002341919183368207416044586623019313953104470011123776461537353948787947891444419430439100149841177837354415134608330770806202242070167651526241228950507578211684435632249360162175181942441501293461142388807772262703420683135634182585734990971655803247608764788936818265838750901535904313814752913636678568626268506370475355502120090097780590026131012892062125260471549380882794208490395730648497714407005793062781091556332449172216914478973712924874619463104667885963650200258552755877020140819964145590317785496843828250733938122804711255052006340447214766630130614825427338962251327436843182293627091009385226423309790431480430709249318889886887706231137083959010792767427115766597686412947281067251986636599387196121402020487201373512857905862976146999975336949697460843857832135959282881326393299975918245116015046205674149880535237799671082928810068776044299658970717231872546190791911058704169514410057811161753805810280822765141517482898170103099156770028477152288408501134333018280751741511054874053205771925145717369289852604648981553285542302863692410455616118673726597626121129483356296463995292450377618348222258062085982812255804771049732856965635920480367837887919806586494898051029753748259110959023251896490459353646183151860342206515266595565794324661573989744435246399879623669187477700640310421465023095605904505577996358449671465122700259787400738594519763538395097206092327266050730346779268119347977618684451127306382124216186384446827750252998241259978397996412708991610619878203033944893506224658253771914719045590247766593951261839155811330675377920178939265821138083108509738679157624796487817566030130951839313068635870590737371192699774450917813327929294908896401614235667189494560272922886941307731160496383708619602626186785502738686817693475678615102640504756001446801535065376577091704429365018401304771638792010487773945563551564279655498716053413045434111188865471607474591667577444850098137898384384018917144923981533408000914437478064836455769038493916484906061847132285329465659371201332268394252188106133653842598182207298583853453277330126714115610681456772897024142525343354991228238667445092237673445807561184817962128677726169868995920280874940721298281344117373623993585660188612065674568770838682890590059246972353185821086371444736046237582901058480729825963087224951752632077520552209400904649013461371347819575880523678593245194223786583920349761488910746910890250717329500151934823472544498457600114740608825024240799809720381867227897656206058497517048448987615983623477519709366488313638525378004571135736654780663041485025679691458964435312091026486994650631822643244945016705170758872405592651486601529759843892426062751522253473110005180147608936160943259817186025998861409356183913257450068482544877379105082711534511423783318550099204472507668331514526033349071254865996221079342787394211933232065976818803447141328975626333617486887208094218534269924883448379279554261003054686377811654393953845277315279298180802453589703752649772019739009023805573405987635299670298095599208486418968069887044101491391140584569418975555029847864191766070364737996529969348487377106780131065300180378704595676747025339039764373879273249833707701662803510038895158856836997259249465420829959162904920196509243338899353301094465559504581000051185895328002635424572964812377551839017988187428204670510114745854825890950686408366020569112104301657226891455805875469040335087123642354063402606378778280274585487655864974245751298037034804614077843247225236054964902856762115490330961484046491848659453085590697933218007865297177142886965711444092880054946974627101498135780596955022237657891160354963300281678935802794352550477356257836318114928252144940823636091485418886469567694076413520977213061084552141277409022044661478417474650595964034101740839818437504337981653410192759199333088192208140318503370194172351783698724735880062338709457887398544742758227492972533014610175882382405221119559505682140326993036189642761371428489162525807962531322423955136146331916047540879548499537121594166636776792760697674402394866556249262207320542456620964871825880237792193269776923726346655394426457118824074417415082785556960127502466817477489823422515123156631834060470663986085306846964025513849115901489645981159536606216316465912118199060450164713464601805581467692505824008244904447321091078942056015028418464165577974548149965432638321741716168530406567215886522872057571615653795657293119449966778606031726929612797546696603803751199463338471279698391026395199764998884754777290270267413064994060977698574421293604755327930185892709097781810553786097652304660558737810420800858364232972483742465341923578420668171089079851602701836988609666735703784881673447027962765729859696773857840729090224598219042584618351413490661416685510453551336777196038480179774942835409940002026592329376134329842849081191016811065461355328928989430073273071375935636423774637833696588889834369468687641836904722592116231398386073198250085771124348281585980201649571425982893400896748969722069341242751230884031341891952604428456087745100004529029845691606211773622055521467669673110726295243204129688421976768662944767059952775386089586232027219561746867235358612049434292498311882928818677497575906465655721027319887984978148554133949461617357876941540391281536893448328483512601936064379483465418646042344082162771960180704110729248165780381077540007102376403004285030310818055875082625734142726771565198043464577462769807878488697860151496077710847705487910031359124603807809303489330236767567455110744041556839061172683578186067844246977580686960151317128618470637159141570672640195933996734859884914272112998265470896500361878250907022799386681842512997587622964084273149595255775920053000618898525328295773997133328950260518807299067216627311475125588036293473376799861084405086009470326286317933546865876201817610583610800840644062759269403329949969666172184910697066756694407348531158839180428486225579818267484497165591239729003999297227632986937622251241623801826311202274715155439738381743318663128306837046647087699645413744606805078679419015265380502057657518910461682754197002767214197278539310283303664135970541738932100830844326166848253259138492266638037089849466343752858570513408718485044277260384642955699295846319431117919837867847575723207206922634179715096425352613861183966767937609123029739227909498934915322385783030788682445848079384318276568853669889097626215275752430240638518121199154800945223148074163913211228439885231339820767711593368302278942594475452087268180554446577886702997255748943054893872536523312070014089684352273443132760107925758781381697296775163080488030123431385474719700199524712293835125882597851157668564080749724981888679219258154587043043466387987754579987202818472529077889965482848793054479147295113029066932928387928557837665845650716111536339394680493350472119129560994519941818350529661942868771688998741834540388919869300992589192220951721928190533224447137205670703324221534303298014955001619997273874109272709826028849827505826593406658234058529054675372614470670025960408797920220001420076394800844910814584890031698379887022144892841106050918293167978494650549940871155427125598339118757240171622908796859144271155715736413626110278440840212860574117147870301050179106532587225745895407400629068988041732206247123036422635056340510380379506658664642835458172761189450739379204387432894990804371299289032336136267578857507658500333718198015863118491495715193497672463925652310739177480651300534889101668672422684450814937464365869906814563995805079238773156709006374921133226205337095701247803952953061661538259430450121085574165510973640240685892636794764268905222823489533655868767791587002493315842259592057547526715945154631661086005502640969046205707444423903110181465819030843412323110875692403533467013921646940320136468120405858817374643376706711053045288820990860040597480342462387501673394057657184741154141229051688455004400198604417559293614585566611668339704208397723608200044359838825598593934971006282418429507579174620501559366587972091446111978064491989922531929494089795193500999843878092661869771969669437394874534443774857010919191427068448436190088082272941228177016723826198109881021673292219597346936284630318980465236129555930829926403664864395262429307446832137684547303825705776482327086206782069518829356268934843848241180410446214860928203029936603761726415763587801080709397420895657454293887273995810382274680642604850147371349731356344086498616670554709754145876193805539361855050670034490509773352727722958335233093216567382716356254633975311048365048751565900446356997609255194370104994750888539528932842398467826898964337759865899535010128333268189111902485551929290079024383979546034575368203733437588585041255435564725392968241223025660639472998999742310852284469567396931415791183009320610869479219252056892256329675487669253943480653467471372511022101050078289170376283586713120477929920974284624001211257993442036010227161109261722818241862510596309266449415789520562632370717025237901744912539629026367705728639051042927748585981024223229454313586645733237369980769133310745596408093458456331614763274463926586137533061611956617964154911135669637883664906985377247309686422038610864317608899434368532913219573720836976395868973299988734806430257268535755198413156513380424432009696763173237076921427390190378783885964892421691181616522023783767215716667659708612391963676593233241828102142259438340597483259743635232675112755499757392501650736040578899937953048838769363200931896532797155274714824344761265558059250346007964183228836398296590421442165868291695974974963829006055238259272597402998802005919404709728345512503223085668233495276376647112508003478999927442459553164926364154473581291910989602958154300599470933593822855888740775838874124034986999042394253375412844887824002097657603645048035952577733840837513680514547411161942154335703609035965318182743416974291984296697685610431790731658299140955808358099840602652497270632900455689279952017350680453745887856747920349298963502275674662722741152485140361903055429122214870964631620225630153221875984954734301017427375501046125416934579025902950723641059189937097264597769309879947562860259972789621051133364134870299617288892457104358767807908054758399874699671622367898925195162193686103185469543530909290182645802791412027433111117178157265351039434580757615092378072598825413631144723514851151311769192717217554298037150154042096046422306650154983806585544297090706658762427710815535712016502085816864101020912862220837576098017505999567617538825743158073243080756359472046279703522172185033324488542696598354268840183023913614647627366149910908911399482257914531301441146180089742862010814650421921984591059347616885765856778448450263714644559876332087748979938078206545475856281527442496680293058746467916544009247833560744194724575023580637759068146851481610567976920208481027965281094220896397313126834164890184652626229152628373292129348952108494766959883757718445411584067707240797560273701899589180642062802666670054370108991706294267490093966263543497719849590863971782494484650376072035032016646822154688498586938415640578279428616653915595132102479462745003486098817651635845728283471093898139536775536372541903551254491667504580728815999000615121866277986818146471633540774630337082910309687155520530743863597182872220678753488841249150150420727189301930164261995950404636700720688768498206503994943048371602802724936198827876682017218889922504622509065460223555715152396251851634266092570215973170992252096574166634559923504292921473719456210296085720947142007325608539188900777177255321821787367031710969878415990017995416031300892260310946198863428504715001962501814770719122135107976139401268924198289100150284311835396337420046307413539262839537371240110995214182151646429758694521782331460898638557873393476458413639428777645162560784762148968418605698965537795644227109778368773831139193201064823158560763344310273212650703796177614263220408860580920741984604974128618988083855016411992055537948510392706729836591098093840129236550833707482973625867363509177088896158407733655266239425844091469679757105404671066663410490755496588292441336233800175600488624442803688695941834387502042207869662110115291978736665581075568222643886905173816464720165026780843872849220440401518463851534882003068125357762949008768251218131261082841522084368511050075810653815038662124948375673244559460544045415148090845268754699960325525920080858594472171382204422519062707268256716038701131662819743571874965701932375718671815195224111221154557501232671480345135790953079507369221334243614155594784201083323300610879169920930735588271498701159892531366990116230957027428434457661013069056041174625682511816888990629990382444971563047867688515857055913968944624657712947797212986094902968614205172844492197168498143768297698914598498769035165689920127194449917589583098750029341465185183550663771287926796170160363039214182852900985847801506599940346913028871024701707912324432914990104542853332681792823280791951689488033630371815139176342957187286549505264908228538580434091062760764886669568081511761269468589728860253241816033559753336733074373495282611707450769598172379751149014117336417941636124630202037851443716121239077414199512673444656995165738309233164818710340988624590578713784524998873182930414224908436408393412633826100419103287464718080680384199928826943285006430632216666626835615691477198959281459083375909145308501423983236892709686482027528579009989125920232402143294933052782640872215308075563009531074284954695187902645203573125077637442975824556186270240417888665042397202039975532317080475981808488530834889429967952577259631058280322340796143413877813159655681972571732035066626720996160357290394147945103130780673374809270428772754762653710153439855053090959592560439496165518093608277815452727690653705531580078620731015371752183230162009944246562999462635292067721611812724614142970948599514668549381315233921776585028634395566918384825241919917290266748383572282679428287792639686010592056000776946668589724765070627648834833957552699341866791725282740917380325144827466139571233701010621958734577314882422030271653159519269375918212686661057168089590852326668381274112679999493432340357806438578314181291664826989716608673944536279258472133406719603533269429586496444979138316187599608417486203133244324451083934313295515138701378051078038660819059570969489244859356504393782595911785374857290260611154667397444261458144660271303990950576453822244857450545043849151944287790766684667578143671435483221977386955276097518532868036497655898630044217904721973656179477952287363344592448845600332007577586252512630562608723223216141767918410209427830572711517982178949685429388742754848810049774748251000111991960827012952008986328989067132707280492721272131646485616161584180666269071397922792216429288738329669743316194420594992989522369308614960589337103216028108933016141427844017865317483049198894129799848682029957685730149786498618492735412759722380037661491751090418066158736268321904590573146165379452973308038911564700590587060675519106065501977417748660904789932363045368471976106552872594041800394178397184656487054658286817609768486605484768921282464630315897355739176779781713837246131035523778321360914628548619667758923284547775391095499855634025057944504491336536691106201189718083014201439640796287227663938434360938049229934968389121002837532636639808740589234712124327475429744216074476315266609512556807114696401254373821558520908661789113476623849763052809790168532660876767209548951549916749050109296927644741814688753716714399689997970664695773926451928201706019719498914384783037355630368817219008883964786431092393615113908094199593332774570251133318629312311218155708779547393396397042230880351457558730486295967674952117624746346561027099405189836892522324244413504581518290693065220733226217976261683576371945708113815736507347177631550105713057816159145134852769755696155895239107307917884490765403421387564764313691182251098975364666867579020409579246077503626552960909818702141238422208374719730708689613109822185780347751252938998966867834633748697874451413353896504774526618925229127268343300277882939091049689068554117379828843874733283725572792585373486930959705535666857562059920218612348506406187631247511674564453816073416829063201447723550947216718392604647594761474302472196867397395635520133579612031262655465437732335598227475921859529056747979720125169192733718918609902300139678736365166093897457558900524947909832310225952724828526905679512617787867650886298813990439677124647083372339959882465234144302147296240486378178696306091393663019998748066750726272616003938321979958878508131722251690926505145412319769969587867387349068377124639549668768618832601428875234463458038991892010737214145300993747031962095391320802103981009618588905861856260100007419326350193282456887854777038414870790707652006655969299370044932907814692191631077632136987101458393967283703463487341225511174415141887697399842546421849404887217270646554670852055203543590321690690328475688190215778496263906623056467382488619967431555771765831375869695831908661203776610349778233084695180118801468358596058949463687443008497853805061895750309055820893752330165576546264519077255412346413402794320280997494187974175783695284328675665926457995462448780876322123897261587946671604179624788082889437199049973393770700472219975514990451658456761760177142771175871780193724353845647333671564560589451655339183192148875169314906721532032665532910127556347260982108862783057848071223189945620476763324401559856805052673318882492339661745055011941500472431621877301746635714456345593858939961161916773160097840664433301577202879755971682147875066833257494630527053037935851808690314122316688415818122418828326824764104545654258441978869397648253366463262067855611052196980834279534513427061474027157055205422593680673117270963531845003355709286343794479104707356803853415477537183107440083206117265768280886171299447963083902917380740842776754425866626889157631689748825499317444011412575644963709093605257557930649512175003357064173738259590925768088356430126781931904040942332503369352317954349514239476187371768936808297380443464647157348287832656437384948548718011941369437479900187449640962999238922540642028774212889454500524655045493010121601852458226122936227431451516576913716486582556612153044108488039560828406217503031432302644971504971660573416714699897676310505636574749076886492012162078473410389148201814318266788554810011540844490889453696052368194350066258659276045431146537768060922167210323871539729663291798856790352344773567668176913472340860125335522430709845973440042030422861342169241330774184528102135615184679714649389959267787810405988632902416138861643131245564718861342215520442117683420598416715140432040562210888910172381386765535901101567645490814407508452036646301930616501505498535400498516686486417892777062810895325002318347492072583044916349788344701286162841448863789716556444408294821753325889964708891327882483386027747123087308695582435624686143558145182085140331105966183474644998894830537046872858652994262936416130262314795285050197227536760186664194135490162767481649410372776233738824071959854347055735326491905225385410434150162717699552605705448372680730830766233545652200176405386270324748200323661978606297089785343828855609818214613125142170749548958838400746249770178088147380739832209237830016267262413691004167841219971762790781657217256736236206753884442511435154804569454196457793068223434730708775496064473805098280896692245231300051333781292605843154066774573038153190335896785810229169821158017112221413107497240736897386784373192866189852108066065264674703388035334511536939100376568688362097402860943474606222284982684592401127253590181896290251331743585342338896032700059249213268669666044876743684059866404541914299820864812394779661789718504427020167323308838110438825988420829752510056510302079082227636907586936364852058353285620510744403162584458985667059286201114218924613886883506270101891755829390121830756728069927005126465944699275204364291379513611948516195965368898591676668520440850158036875046267852586058020058618427558912700571293412854411477264447581955527156593043225818013020574889789753029857732065688102754838382315920689073579246656572184290446525174756814519769290845469775859821002042322806033164654741492247940787966845368502319587656377752126655256837515397531675680408542434938792169722596751197757512020240610664676606240563050455663355519778471528487107975637203397003139965488400983606436993312933427281140411014432263800527277812355396055884660721504846635196555040478597342715054860877135967095124959680278710030969220489040849598075756877899924956061468110449887146393198451470171413584718703549449716566451079575488226872852792054775803634312618267908552229564510819615914716327781129307971369523718755907040853385551699695010947912396816024296466832416922060264760926222161599132846823268085104635082114147397172597706804092675122786500261736564337318571324035364365458486014864742231181816771433712017950164483452725049853753742904259823078118802802167017823468707605201482380395304656630168711019984247735517363993755448579162890064952222037178772390334932156975011274908316003224126542372368714481662570483115347143167859431900413742965501107836861076957168169987435207438247963092970326603096963141363218920792660486759541770984902466093538057471975299063524193745445844956915977759699954880206472944735340925969182096388552320152214963580307216218448255777098059914734753124365537757890131583115354279997512442330681241553444401741840501393907550440536718062408627903850257784607577361389435232439321211078477489881813241333795409362601910057524974999401865415674450531547989110978803529964850296167043854745987652166823920602591666079021448733427157545724701049837796966606146056723870588449977990973328510600123731330554331901117296678793618229147399817034223515031906356121447094079598620963286330966999761907963743456210681058393692978298150132421338733939629731738892798432825050747263437036198967747886931387126292074435365732289920422215291249744762452663590653874768335217486736488397328188579306787343475340285986028393163878133983500492698510396765992695656034089092204635159954442679720790602870866903960225055867068963067718778398093080261700572807837412320831728403043103318161890027524626836603912433985122711793191776817819197779194342754447717399915375744374262133015611004257741698612711797837420477447192333719225415510681391104047023887786841167537517907112949519458127447009642824094772347330542895027662754673987821609547588604257927290389394793456331570574261717796297654830013838522911926886744907445019338020989387467035145857931146781073169836835217127195323446229565556270209345660212880267318766083011402982684807917427643161424014221866487125760822840548550630857452206068272546018809333674170616989350933957453166514147598254313789446716230761461278981856809364932702041056219355610870794073938824809167220349383593645255388696743214299619327273506532567238241408575665320205807500877972640456482620643752266581633354976284359179718160606367994135229512056927606743187487438038561655581437494916045109010310591007199515709476203830260427743988678798668318320655987745336915026383072554632656245285463111293627691922675915797527630793180620721991482416085039094258485433084542866181932087918096036429858564902445719439358222911797707588100955815913263251332524295429638279528126423582488682918553687540749433905491424223000250620827367186016185027064868687515260263543715208591175272415189794723281985163535033153683441643179480821379083466646952563180853037964642291467644359710993272440641091464699289419639631519690421304178159659839404236102416538662887378420932140347935651132961246964904146800611951061507851855772637844407449316567115880012578952829400533146025286906802377157886044135905791203329169549789745636187194306032620611439448659765002557008059474665435596215794450676399949577862343285166540344509443247794768476346394080531239422853047396654525346582621782020889405353467285919145710685935304425916666214135583193984274497231709690999272293427048601527407156831802007062558173424360488335594706429444807773393376577503311296371615152121801411985640580033929439765720474496047798513632387395193589000739929205200351238703675712061059354968600135591980984805818846769526054902591169595986874179771775707148245101716943132952610815920647282093095561004870063089559174758054226176408778857724679550624291377457560728175970886829325431260779115693360081725124739215345769446725127487913648153829926377427539781632497505335894458283070542666883706221810632489409890498888383368422201554980461174556293943870878920076068981101484424024796353420733631431173912983930969220560249311576011115834032066595693307230659308122843088496912158840604414643676737319044340401387987829922202914437189084000560205577699417107776318014364336309733070444548236199811155438123409319792356054060549227335127356643186915459243587428702085473442394993086409782928053996692663006960835395473171428016725243334528031555164358828958735105911414226051383024067265857286591627186518467454086157309716824696015612682644095970552304115317202601597846022864653621338589101085063025971199135126796151179610038570822982762384879025729380358372501759356140906984603983456321151840262890058749332027866221267666154069661369274595633788916196964924714341520109140042463706422807064204557986575292845225966130732188350571415480575427743314437144476007479799719755211768013193559837411380038854865132448392360510220812543125612151733895991898187143707304221464407732346394832163244607295297407590117356314523007490667900009490792145027064169858463063313202507762417062068629502786170782043568611056934106427712164566571101054782666037237827194615195189750404116065494220463350300175571336609528272264016997205995630986369974891833614295209805691511115851093464457623918099506549250322231186782946723992708902592116522730414638756996898824649901242835416224664950285827423979032599927282255810191933760505726325185399960675274487693466115018858856708860220901976790880471690413270764717104562827897195973679357045166284809717405848013047117281083954217449977045872007300697469186168028876727054354684917566076597370761350776957721886746766952892555055670910011029682602827781799735967528843954471123744629179300198756392649474762511543258636856907360558477657023103692259522608385438583055752665320136125841177435214915875897407081685902418721232207001389920038914814261904620189405689697290175163725610767944231308175775259304696875141116694828430051456652137695854034716051555531134327962140093366742426973801970403784040368134211411279182830609035950142954821860121254085380344478471682393906226630287767130334769128761611093418464664795207601007076228054664501437776532208071849205107243649101410682845377395161070397856741914162009190499252223489615125334407749957892021282000376714512513023008635432593557878791327189035266444767079380925890269946312987392988903968933463163477444829012310333184391888138323763410547124756202315043064803451374778788990437375612743582924341063885437349455882757514765686583936518340088559796863423658351408053991424593603838136740647397672019231588332324983161090312779907605021514312458311196574555072534385183778393590642511825791174566164579512033590596607866348568634286200870225590562032785168918195384258164630397726142764026420855243661621737893317437770137713312197713374282133875240743574130459677540210325644096223637442245105480567118730938331532192593110967356215828493326606774304296572073612175736871251962711000304956819720710783825449721582638813241283233708198332251200967967040058871927748362982950842338325394572366486413432295345269186814817775489830830575332158452583746600509678672815430886463635041238145869744143490398369563182422798162589458795496576963337745433669165528029517443061736383920741598171300371724532232036171652388843666115572997063745769891973718285816316999911457789740712621977419564292016859338086104949946296486400992078910459377550575255935117476800642905730102242517048371554139441143989484547943492483621561557199978140555399016605893525393651349243949223185878925781054718010633961552306431409744178205465631749255705346680789550429794754224259876088385349061303030310771054864843663106139422996335429289663907393724658244276793769003377681429667219428739660157053606520195134661470822996309284640493876571177516337282532661427602395789469125364646421649336984488184363637344841128215561718763457384655817374556495054761532122194694170131573393937946157380312148584030149652140131339149181668695458286456740137063859734213928274504008787616427928357453278763742808532785437123682170713494698133505147709333069120185748070851668647166743466292645779764015549331532676314073944838613499436117544657689563742641213486298144252773589123786974506576627451332817847333854088442465992306226887613959709761809641283396046833065668683465604766931807233951240062570502102720833163530732597422379308217283349363211246182894373932872990191128191656064457876288325508895106709924410394285021252864033552875335621470135198352083511557766553988041295907170532824283545497021424677150710168585294588013698383101062067823649863005233469657251752764251649094488123957733255307298189695644729428271896899807226243441875550269062626241814740482129559823039309119240675168005506809586880197422044685267662841741517876811952360111377069378425135516267318825521364061520895740764037704751613172980398841508472858265337736720246928558614074303338705528276666742500434414679848287622093755546931528461442022600211303758953386312053131510168504683514436491644069981814465046547182325445106029325469758210579850530776725510643717137836768003315888952420970059482293599312062910122866126301474776748331718034777983479933316985360462790358070569627480330587144292601174509696158328205120060291944223449005024131762459340224315529260871233415515638494071273706921439619391048385992295796016622913557947096835542214723282321667175749780417956061679613710789716901722696050333018887788003071358149578850972369143386552549853994250572961170589735036706307933730329837473356766359974736603445932932419053104453606002778632734873106966624739269693169452617411404556716368174885746138003078939499835016598773840812366997647947896645637845795395300668393402485097526233228457812293840644535535399833788680880859884280789703747943161365409740591115101343636514795184581600583899383394238174035736022154060240873849476128322316710202885522350562349845858965039920962885626794467271580287089005385384272764028937948847305915529718731655783310075702274318974250462923900938156301499041267618465566072071028385495730222408455607064325217133523054637213715046207272637081871978443184957572884728032261316987271370374422932657910029217321298451319450250562273821379900318605378593859237862127146993297025278140700876008457316260875523489897491336239423429816091740168484613670267109138222467844588522411620288271984560577722339462048776927573049364931961394461336112287135567001797409940861498428042779618218859057638778494094413616018063397604496685383247768269471840717848272861852429655908029142798997193035354273494419103281393630218419981736818880103909333339705965824410309765064000218308604129437282969163841023764162654383640373031981363832928742691583552269266891628577426391531453247529749525050626781437513061189617503890255275593421948942242810256667442644155798909607580424183057618108673038548940209181866403989663170101703200011597220246727600868439025696936510238417873601419044588061639205869700205271139208344569600109929546265041624703391751119060681287675816544803632061931094411748761226236915919918728236963040485481347045389269989217423083630550401640391659553648179705078786372403424524378405054786427189461807530401369035258232560527389806514105403055071029234049138445587822342063151932266823890072871642323705572036523086505056532310208295889562721911869147423206149830403506672694036105471253120690123408951508256967825982701564452241793931034463340205050577119908686008530526986550050215871138151913013390320162259181018862548486597533891862604496427632739591559359529866475120061334948092836275413158984347630695079911038920481434102940336509676957050952880723896937302078202330900789953743269945321483614212135925247618625886737153047910562412032834330205105415102964801796277306392477382556025969755295910141044028364751166272782575381829117220704407780187694666372888318501695998276393121914687235998059023525112469005887850590436676817456447259976439714655770059779470299332912163831735694122874687272745628566113995087170226316251029189939171355038915726693408444360941292672586240551513415415686786396748706559229525297524817954564408162201410539489300700807995453332343377286295752573451483749872856735111393613490867854102449224894145219745086656647085399688977773703951002228536106647996103880814793156463944611517993957280399512169553660665847623944244099213138343491609230743059048224593153508846293215348374259586582340928756503060914989033832738074918973537792381734491540704937526689178979323630470799459916247541769088171591493399897124485168744275653204654049638491034958246322055358738241269048980377666184280645519324332098297059630541097904591812341654373708825475749007954460524264687550215189114346988859330276393375957069108566300208893634122189493392347885684626422801795158291920678835706436290742575546085569899016816158789358377244545636013076964631254324402085761234404168958587657813260478709521032484739835498359753732853203955864723915581850487531577143278438047043357947941659162807029411021030999902969621530287521355522678007971209522426293614254199927683922051922949893371336697610618144796716525712357890354291013110791578502023497571123967574837643864144610886465098370453237994612197585909036155609428705693588928837853543315438479884994966035678170254185209641977137763024471650705362641703152141420038153020334326659912211324355585715405539189341487113915184225311850478395010765996715248864206878352862398029863925242593633419865400243342608480815511309384034261070922400798124200070129140579094145362403072228572878981765886693711243929204551897451435410066347817577357180371918954263501037422626775591677955326868537465205002075151460587571503554839152163770051736990174828865780906768298296407598746439247615511959656915753477655772594371209665387520640389479179616267494733490895140171877747299685643179756827668239426895877947933789203077449480102128996628658451467448632879102609524311434810637305466863362687550195838667586839983016881660141477990844620700210879098537367147950607109058282831654986216475316613174306888775820713043033258512234164830305190568901232437577328697489728792720818038044720092441610294432815046064522780422677109394159878900016633041626115516044738377561372517301939542573421088191578178918011113287180044735418801928730626383047969154783215936915028935935459792668502396620018028949764996648326992381603771446428483761526223894158796960193783280518185949788438849396502882346336262608038115087119815174383035883788117747584972302089709576869178880323021523830480982903259256199119628813361531483700613891047468228947459894630079263718054950084580797606544569064781884727292276268030661242888808731359504881440027414066390028297390439815332214257107598951282428324384484566349710421408054523023339801666658760373211975663853599346460997916958335111334182947700146193662978546770191892822531580177287841252271239943466013925829231255895987085790336989082127663923650462064664679438023883499680434439083250030440024007584995558531085699193576027553316227397732304210338263486695581076946531733848450343260493362498068025716162574636210507093365528325898619607658947555093924219454135248018548383676509880055118403763453828915095552853069233360433608160933442990095494996091826850733310589883740233556613649108206678267441248666737076846987994214568261953018942469494452863048452876871110219758611265436958534060359569434156603418897084275292021257553286140420882277494103213696262717726945087814663063505180844120861848571009368460877216861714496560609046569622151475820803266735278902449253404511957495151996843642114321463572819833253876299524895623544703377141234227250355439059011779973236799987291431942694307519441382625289784445789536856713225127028133701678005295044130371237103375043979120695935575783018659299445241933174225571839942243956271534136100725494707453909025603393080195392118839717357636745652763226370640241298694475410662184164269242406400682851177507339814482647487924480597188565766724929374594582960356323498990521426812454571794313397313954918954106536590294058930915080069173762804054146359570651759739924135504931944869063582641030465775290163090601160021899323793699168918244610746901371480418633482229956975188391924541973884276507748166294174246856007085802914236400255333634507606142419327850871785864142241230849534661199744107340300720752563756006001770800160444727025463198156923165811296445905894955310716783810076796681110644006728266832493989298632553270647180011715666826442786761915849634622069729421937403444459757854684155415278216195820071853631831486897442646709053261051580572858408880543431919920664341203039295341045416005430833368870118672159257285465196774563755064018228228110407467860528314753185428690917187345230789116840035016162908081962470724535705617717932203661668461413722597154611739783280299150748332366217303531095028755665615585797862597849703240405459857672994791788203447295224219181514019864086697903360769981700204879721357903274611550669428404071538539730886264420007423666786159088872136387772560630454802407804651166048798130791159473590382637936459159312484187489892929768363976098882874479643508247275101949288720385494125177707681843831160251578136188393608021726822725167793715945058156788188472423890871015868331978670190780054921580568832509683681217119089453130742521171043227753969996879339879604406266965383951128671110772607836561125509749632595491147720050062603674058750556813285703549470417521540645270335278396935367546923156396981613362533279375946683509152815947759196546416525237968698575334410362983461795510770261110195372559667919975086916793558180486047579772706727033114618860967953389586048038589772784486030569038683615471239370817327747371820539937866005103765032207767317884860178171197889204423570784613085311798278994324522719177740996044278806703589093631094119853290273929036942723446400935017946882079950421106914677051598364797910593011544424716516976023605513782857890392016265064954395930572969196454070495504506206215131526962913909035887648785016960029257287123670639404292458389268901679887414995683665169794671369789886490563444711198146036974991355008345277790747349234557134587884246919238980428204608941728299755195111817781174511853327219689722223030485836847990562054784452319523936196301506095769836294744491473838381571910948228966448484888877315219558604654889832448611024306738652133194545393850802837389315489545358426312760403293084111654798719164068836719563346338532791300619155422029080156441897856701099056546542415483657868533166068482719908789955995167303608076700769168919899195097097123329378431190703690812027739839069405280078896728025801231390803006231557580010251060192639586960436785276985639187343008775486021024383581059521984874270891865212387444186771903127096210123973050272138995228827059134344992147986527207882191387749894960941107765680672278950677709326817310983395434039062910165563640355778320056136530244799299509751239352142537321534442149891671707482604396698200120500136343164233534056542498982369612015730817110178278384261735387423425722520816032553406143422041019692201712911247375004298963198462851871888071537476390593973077299456093708309341699509569988868684236490327143966699304573581177277540387011673066128966575941787562618470456333814612719862600240394837786574316180500000920870145352521088185989728419774673858493496217375667888279325349939894116888259632566223011122259467615835913267022888042873335988251284278821710300044750957868031980243720780285837368670688794381228480283590578967044761212127826496730918480767577747617352875661643521391950682419797512115255412887181280910113699511044147390440596027730044555042959690530961619321644581953883729319555383323825809961320128187193915710813501175673111721858217410478610417551032549890581620643450669377258922135106461968766452374850905029718494794261222125521994200017414117718113432916143569733977879956238226443165655847897144501371369143842275071610835966468539549917064104860256726281015042718132779870972394587704366865583405054719177870406671051242260600105745160855060905329844063728524038595059016580568918685638986300244413628028430008849531181544530029406953351777874769728823353637559288871167800724351866808174763496146994202230449684941839017806221932128968735994056020588284681903486577394971905103718147788951217062123331865815074181249830752394514231827033571134559205916898009191873679609191170686390921405663646135095119572388516547049639153975536630040627919705913635553300062289592839221201255226548666013258031718774073157298226157488278531567930791638635724550107725151220743046374796484109756119311556843586867088823949878238074539711767153933287975689460593001093212485815994958568026360434616492954960372759604234807923584306292262467868467669067134085431537920234038675026926004751888899840420247495935869987914886049577662637570195931873323120099444291008806776617902031399927531486549755749517343076586310071853262725424248731481118911839710253125315497046217610238643002768605080424498138459347920741277569962335200356214432767402881233455171874956242499884593533913661146906950613338347256376026038001081520667747657236383749782265760530767457990175091161272592488856029814092259159895824518220498335169778518071006529018655110430519684695028518382176029358311855162705115512069120801581610085322734664907968838049024063147515764525845919590240939512050764905096187904210192974231280976940189786039200118333778262164947750198787291459440489873034809642922505698956906074017404116477495710795142461822457197720662520122796275156433538548999370432258903517137065684220128792862537762444680005401417554893261704190383804951246141907084292075290555372769445472923595350351030468485828202980168359595474667120462728610415532302836732290743618002531515620242918772002551959439818449434023188524206893433028592695544255236152780278607687872295624559211037633080498674097424822483331475620663837718790320987333905597606911422357234322251010845160957832386884413497506104567537124623972331182796673596037702878463320766890222649080537031078814535924454929219051287304984618839551119769047723677187205591694066396693727614864712693638226414225176945521476712849577058891606407001626272084958414026991227286906177272682155261158304340088147434976867514764474589843862147422089651769477098909336229915062639733083558049111629081185887403788972091405624174876048989985595464211617990376682326096263300287293529487860991085518734350338142442126392154972754976078926147175915335269025536453116247751293192657654220613647999596307662760573667975731493398607795860310275453662033494887294932720464985740587072482128785379577274389502514049272180367111389191755848976239108327411493728410458834674824447364219227594446847084482160879829842121313917050397427936546277952542930998910875597342761201040320282468721410131019405627874655942586440584802268920593641178141377816391959983258800747188604110487223514145786047753445689410160024181355017503188466509590470161354668796066008379269623952028586804510284109684184965230823322786167000584083970632911631905078605260785878241491913969193135629115623669326640668170022401393779400299519894423038258771787044681544815970479423905032636159240584181413634688156616310650373557347086762267294774094113817846497053220143230656917877589565642965395784921123830572905636702350788908762172660509825196802206039146091430862578460821356877478688745658866265082269819592923121455772027070131412010355590449486778585694967377378041520788290598423284931289186751498846995658908517593817456755983483996332643489545967437222632676537202130750662151158202098283058510189853107748666282153315744560495659569721939415733242402346849411946500670794852716764494256891374676501839244425377399391167524137159278592145789800657560559877104182979478530537996972066733318435862203893325083177999359703317781677799783581428618303078281494655435892320949675512243554242315309784154760621474399365206562971982389174637413259953946861615249778968900164855682804913603237346249014816469582074316724659033484910596048725214046491834567202422526149538879218845877812669785671797831925327113506773075545631512028592577703922866726279059053733486574116235991305464590297964809349210526967982508640648940193192177002479057844721711412081458178942938954776083757856183854450417794703230066010631793746804529236865691795147727995946650339230667817514548571921961207109340284683376912800380526703293686051640261496090989155169269643535727482731630146021021283730639865948439565119684152375727121906709915069417245581089856498106014950426269313114349771725633429809379226836107910550889101675087235363968853444050578781738362031116487685799243954181850260045980366300448992188348432952988585627342685346183769629789296212845024969955093774213774418480707717317129851482870756650327623986590415428307653345271293584922575068649760164142076052963241645824878555789672335350264544212360639204927886246370526757115843526505587849127770192296997133575884007690560960446219855021628488759629305531194693288177936561054219417300324751237944256757925923006315319168668112618644677561201022472979403156876309393281241117715744828289937838920690956094708349535199370824654784295502237270761625432392713790540802005422024414890400091905508068918961814431815910224325731353737798787002297665468770103035558710301721397120974172564669307119808373208910052369999158932323700329862668545354036306271053853636116638983096021427912708082556538984921672159657454445142032978067143612914518070747018396708983974511781318261719956335963218827921278457740523078952863059395096254708070926411070524894893480997975626349418206279160255490548516008587650699701711321070668257574117956315383284382406388080285243759677706138031007366832359191173651496496167863335369805999608450369118223764937859893655609752976639299909469999384935150907059591096601489453510540043525957623811744708230374399859679787549090330009611652879333813353243182337344958909491868205695691121203384639128844997626233158033500392932212393072492025508256162347169368853192265126601409257871010382693432754470066170517987531874570718511843296393822293951805028193712730387148659481618113814716811865745340926651322092160440531963293997499536386440479940173069942753365385920571967637867894360770643167217515759225348259747538786475466502622812521870897640807550531201580800095938533140764098632638169111148870236741668951999831698343145361760905357870020927171986039490274547874858162782617002614459409257940483432474066382061264707474095006342318482973407768238226287402274338508509044219011136119205689284237829085596349906675957952518782296695098315760923936093628181376537130812802288703368325007506338073551571782356318000381537849891099847596770580977385274581342905989180916319379939855678241338384952959231950734759684237522496601112534667390108341806380253181833158106418822295311368330282165521551973067885695763458638082096156317715068241248311928574489716189892978477253681155884062591199739498974569600593647966390621812513654776941002918059253887813466194993888143295868480386807408857481832835861017446221443099861050589954808546576010473007050462822780091441266493928393475856903163646167819994593723786535190188791212865855995801872207363404164759294454111389456972224775757632997451904572939624376661109313301708470606306397676051241322393661817402881683412133845772157228245752733776035240119686163513396975902120663252876180797210307014264588800030089586268695439710267457781558630098226174257579181205791358578433643256816206925538276261150942190785851800645925594039873989928280922556492407554703608302866124631083551236367901797354514150634537612503554439050057621269168248745297133577402359028108432179950264405546228203850268013610040699250748113903577042377804160272768673924000338341185880582405410537643004536740217466256363684281580748494412963049978900707077991853075915443041859645193234354662793873303114598100843230839190779897563368369221927266490916016079370551860351260917046949386457517847129859668230554206318214203295854459476500787940172447392545494441477936435820862701848746175569391007873606667181831942234251002422226907890636626535157957536057534457779560207171585794258968714811333279956664856524620072206896525047997115942038358362058015320484123940682535788250984222379375583197369726718084270180380142710336925852805457421540128824849609406367789502154050878823468158301683690218596164122377177227772707831300343206054824793798361349783732335073822522112831062792357323753724323388207132568360294389919269013880532379131650067712790601787674769194373951728428573920064418792219139947567940910609555287255194713868736973280529978757684721458407246298775307782629099585727762877412644687063353775819241578054006920328398575688250712502577426265063386560125266228653618093454487426912782386180720837655600269288003289841485202534879794750372347646792895035485753492669814475378674191487543104073177676205913284656786810948482168192477894818872907574833098291771636347953114385484741709826801159932687437870404412153976326563714660808588147286111053751179415214012775911640354024345910434033353910160179750620809487575823700019884101296214654836941430226046544584181825825053787133823369075074228155856430653499135136735410496319864359837077738212278671753543840905402739161874361097865093618116966339445892582079364589533112802398075847209866805427544591020449652299042470358938457810696135439493973398742156924601894429492722612288663328062028263263292206952335237743637322864045542819327964251973403309459970170934461427944624546744607542195859601490469153645973864391983491772633902225235519140177136323129839363511837649950522529097011326383826371006379237097862211092182596274076768520015105164845222864124176105114671523575692751815285151161114072420768270156897627295631264859687039723734578342467205704097832369489959462398109844393783418666192610103419013833795311729098836330936242907835696283292245393239838042534036248022042087743360077030310890883415031735555502274592144565363120897434118073252868846919344736801360869688533396952696959692140964545887284336762639771610089516384930980685351496140832505391867002936902922909883457731854875554141527341001024974137535044098761450701007869705506447235438346315961875156621529204177065368154210337373870390629492132967642876553193251634437476670994561846884680754260313726729584475244701899545650108621768909050357310193599129806393776938545357589508915352516648332801712881188571303377357404119408297496416618619497253301451671000757992918050142758125634668508187778331940913735976915350004001131835513559422393822657069396181126267447302337773701974252703582489298213045571720368013083955469353292700991518878742234635385443129560489090734470766651754776209540094846893723589952678566079684252319656150649542045545016151773261462444978810727085107690494711311078422625205699705393708491750577235243095845451444924092146516243531970992774508414110062984921937397140827655380117460207032419460202155257411828033428659681197067226796430573140984096583681216552868857103130210848948790892263785209718813794532221542120205691837177066026673025010616695850464802205482276919805014052980286163042641737892713560776602343184341170057794751659842491136660464878573344953115587237885191303283489581342296399037877085916207279574279692155829751250503116186363219135200061079587080267449839884045401633356816818205906809958534028425353364417912355677926650343881250395817634492835214398126186950336632561580522124333955833096741074565934499035013456784370487097837015444949476069352792015329997697067036273999972458387633767125167872467736369927591495918918572740443511470543502551820507869190705225253764274889680429333246408634780677358416366132213047477245268321804557661860432196712254873378581234077188566814937506478647779638491543500189454505849818094789692107896793112097585302951277575125815739171105961305098374776767427910639179210277589297269737838185485498462703249993263279696475820302453576718181156917082329608130070868759617053249221168562695092989714635135291139947422051053713100965865881656492819658024708420968881462765529186656502412391364115350708366709908154727142252185555917959477593217412954050052348271392574469874184144110601740053008541499641825300070294286232866388059905678691902583736266385890895974520258400279070914643524039809968788906765391732776675494912272116210385743555975592615899315787419157132685238907178586938991328969080115636612932798771920353826948471610328258485457445225477155520450801621992135621655391821141538353487585937063774244418054142774683314866739255430750486972403291930052995619771949906024283904131994468997195199859216331266212796174409901550447385287394974212277851092047488478004625924065390530840237823908290432728865644161710223492657702724267704980272405095981374449180909974810424728474225500471498283268256294453412590303030316652295113025710243311800265526063126347135315789614299244757326547090870274532499145328743481467574905563661870970013743175327591222327934452386162917947263703807307972925557378832415154973772913351108603879587038215183142869129408388350336822047913597768134174452423272834070770318433254876476869996813855169490527936545643118633046869402019760109268957032357238467391733463040063611427975189582381857872207815050535822193856664310058249035436276034796746695450715062759543977472686869042750283174044261944567792381638268929285606610397986890303250852577753786405877662959999213847176219861180124972850733852802255559364050488745249772471441518765872422136209287582564562725388391150221024170988546564004746736532536409793164080324782059915750871130174419363498844410758076761198495217739729264479536966749121245900528397084500722694088825178792007632723913940435294347893235707428088670970554761954782160073949646171648816257226005056556381160377483465509861125045860164714745651163678092108620614652242570905327810893643253197727324032232012357672042172301835800659474795522184084142677019351710070513565045591364371626308431690251697539034238992540493791466765236723101146660896237477910716719459368149744903863563416269701736333614151876318842265017367029964416918219976576272721788115699450768775561766456481519476749787921228266560017488359739008229280571124541820178412185679744653025555738328282313764396012722101634296047507519016659687084315541909969210648943529385897275603802630791805744687720328237100216577705084344483944773862278672910381060527212950443371124653078084781640715752460563896189545687241170592255465658286988014240539484395159410136004137628615978734627311070151291407332582223363190952691672451488077927028210556907361669641185752732698956458622190063864729544925745121394641313640369202443357296559643436011050933435150638908839173607844440149659096728326441768576502845587854576565907429192898446052639303771635657060475298187750982934732000145463504972622062899720681938839585604317429073005238465366600263901803117702971200345300845164518835113477467567907324415549225527997585057308046308462843136015309194666109530478493276081185688706317815964318365902443421108391298556189965605324961506575242112732299878435530799278711532701868601477198525490327451510712886968464117033065471140306978323081305745765351213912241168330002895035030238041765935176081822968047542702753577188962741644593540474271947325231023904838237337891714999184027036354624510843640743200263822127985468557065178314553394098554154014092883799184891638206398901633031337393266137309339545523526708483477281365951279337953841658377536826199579144424164958170521191484433759618222347821128887781326174485691675149198346284087386426942148786887375870689494926350922781711703381732003783777249639464150244450782928157756011303505154590123690236390304950802008240524062454048738021069330674119414835398509658939772496946730924720695817341111015493797506853292305947651866288753768678925260088500200482810513049851548320086927879967210613712467742541809972764049487762056967005240488528842155687984337972421106301768541317480338749963061295153498718635226320551544794332893921871238941073483043233209687333480612884308194607195236923349305164731407681974507368990125434960398138887956175630798641183814202256307374127571169106959915544990316180949102782917181207360526482691917408016394029503654844631650909445071560813084240405566868155943037553655941454533292389873050250561057744413192186717622123927195569374239218891950959982971059866718740397527811286333665625032990278031523275130912425488942062865163001191670454300409269065305484897834368473410303240469998967356899454121140718823036062449134259578775354262514955680905394528587549938265783856863471335244900235654383981931687806206013839733877726726950341693670940570475187085667117396901998359010186132920633760743717356161888810596001732447380524896238047521333127679087688709968884541750979773187856665668107925216110599920826993960966819759025462240525996350596117314377755574441728759814428702855864275029342600168211031734549161984003149947973924472640270365870275528788472189541966346983716503037640601392515327162609401120695918209710335504177906948849102730983817292850709375340509399916790670535886424882629578185895956869182168981157144567362826416837679115100359289070566441683591842751069610257737818786601825921367007964108596751112476989747231141012698954909583519408001529220289573790160209254269746303529034152980535514081113272370064821695709803988894588126443348990104505037801255040321738634978345880656011230063328143842764595479568732151931958747921494627438721921568624364332766638651391297876790343087968669924516043969349929853228427617315933056160124810624120047521093369065263102504595012680932884025560330167305782792020779300631155857265799840802587457540413139151542286641145319566918488490590559554243500786891894820869354941232976852554792606456257879794906976483714906787021373117839745852178800539947780968245168995261132128173005816716498846734770508811866687446386933603789382400424704743486909540205488187831987080145183905074080083785925490109766627727038746785632411494053907928390397199120611202349656656677558497792470375714106427813910764488054595020798930487306218165089425218425728970446168537612084877826693943324423526407485608179154997102267024964522611670595882942190807172772656630388173940470919924322070344500298906750436235853112942768943297212876330253243732542325642023483063674172552067490866714049098216877188418726459021907916970264238521871823913378346505000957625341699610012013275285804846006044300998421460847063273456901428902585888039012215378354676934732871901159304370343025081084387203160333210768610264480259146493943895314130612684070940509589104314126682554126443949043376952897949331727258075930005007148269208586496786553743546791411486653350427564008647199955636266778864232418497541567369125302882493839580892491020805250127146031669938170754069786012012124139310799270704619716047861895194050331537940642047057927370323286634068394360411807537556792972386004800963139894875990494056122057131799858485817418444442861794771425624123110569886416157365828827548531472042402729223889469363319664236979022618736903690149322591005616294466926216635308125023408180744739135940122915745654428089340121075373697950709648554715615631266601405714360151755295401105293511788360421159830076468145886353858483660440075067140787958364352479093034434472564344087094448750231000709464496359478470060615047536180943006149257099964212374125485478192462159213922952361743120856266029559270823540806148377510441259098326372711208849409266536597276538794721765930951191035615885615680741100232781675035812601758003229509986748386354434593361674741649719294881605666696157522614634031386474156052011325816606904870327200783269567729418824665394702355583878107370290013308966108953378888318968009237330493508996984782257774684919254373232145046222956239957560228956597336857871397790670183130715958660220155140836931976828639147435562549367851063914846286258462871024242643791140429322204680692672746696305579937467161342588068387488331720787042780408415776722414608087870340516310324987351995958976632095556372243056779520378554722751701759211973324937963163602348495655341199882177805633199678120529505997331066598246216770419981334877460668244761207252096432109497750101201852100670474673697354572206689345673439430752660798982811673607766899300594873652690266821400712825617629095982484407011174644977292059193719448679482934878629723722236487886834050646787662700888557960517743729146537289021437353375388267026509721019719784740753009280861395647596332870719081535131669120054857706407537590749772935163664836315961237158297294344266237918466664978375204846086609998215291282548649016634695490466434010855046613707762559538357051240240672206528790714653980124528221543473725989924417207443134403213911621179008828901270201263390718707353864610006527342574379139641427505120051372713957773024991488309461538852230058466423361653980365509288878734386863762488693701317761264314164116464039689270484155149554231317064200820757331981865782449488740260723978845197758272767369424609713865665553868694388717810582583852891814589962631049310495529701644763470962202464039742624287823719520308906300051934719339444247082086319055572430683127651947642957501330381298724132880502852131623159405664591809247953920318283493540229993195531886994193934514941203409585963125924994203308459198797887208398003784707967114722308646547473112393245898408269182055092560691605295231149129275808135113302266426039008376346807367787265560865935275605722079702186789302405200042671253869043447109055613756903370586572068396674131196621759672924162720518593436587630096079720367438046134973171388121867140237561267776500961920508025789661642868163747707379642774112990159783434999168034322110510973460772170952566195375885315498925437348241673317967784115592564767129586826497202913999025692646636990294522070072365643208970835703612366656259634306479747973129229448122513991323826808380232709076981951851160963480941231271061509910871134447682623090400023267067294438656959166761545936225367538730807867148614041702778013924945449656970312377555633741463448393653996971808844981798044155049068381216542971342744172357691474932180468836891303078568663469493371663990621014531019687477065731471182100940205557762567978247334630629838810810067710402792645202196195100047668098063528880923090305949246708682876236535222023439652231627824044965251426091689920168358670442777667417504943405148309944550274806762664761729787026583876322460390464892131310140595131431397737468153912217887179284971763117153433097236445755112724112354007457752149014940400484710904432267624336956048144824521384840480218959557889790606811862213758317431258214842093770805842353108236733126143737419589407336348818838613327463520365651032422413215847532966067048609073553305330867764698542861847402118136218619920509960151266805443888038454094269435643641744474699845079169015409741338561069982453292434038333721318809836468811653890473787952774650697643088323514944415468972210786625925408628520365359732885978520746005994602878392590528153806852801444250438856765065658359902112921894165660969232948218716051507522744904147241595182192799972245269300624382596867807091250971447062706078497747047590054573281655135871302129429549299983428304244197505491832528101566342808982430249175079355073286401752266657171846919840933594481257398237703086978309863225721853647904019477524047674893826017361518653713366823339134611446864173063938308612883652681365674043928493674543911247315467689513264799211521390544506899249015968006625048837289875016805291716976567434943666955651916628893165414804247540174941705797616944014673919912309008389135030110999258785533749211812237343040374435654519880604292645790092694616404641423098045722571619036118302155869140680187128837039238596616727765349805326942417819413891955208552691463531896890555877425229336574647874269417291499335420288086974236852283503261662638871334764371063325411499947880823102198158355613738617965604216947063741713439050106600401478888022948768151047490309258197294731089724563127132804147643073591085203676457651938417201479941510003749398985865717109877891892693786101481484658660948855828130334399946881583320599072241775205091461649558880495447961838485543627061704543415720242447144462313480683258501943448950612200347497267222251681616734512190132151224860984560512628036379139621344570209085430889069069209051142481995697210566699927114235345035699017714066448126986855518642672955770179383375782759757853319398474053626047195955497514369918398899760322123307294955555069254471809443333004219909338200461948321181488387287712023114160739955282188352805596916743112356214030797417723027005704296791939475690519493787127674011710713677319972467506361835791758560023068853829434859544639081365501919104044325433290833057853589940280247587116914137145717713757289559531148053649828980973459238016281366305133526694306838573163086556627644789693915359150142974082471874986298153776407575833892199370671404733490716797528841560593420562885046332850375902619493389881848796346351569669287846903503554731583720195301047246600078784513540591535111265520319002900171526583481794312901014228857923768695507166795124515730799590706156382193038057410312224436936899941790109200043251308756908047876948616820168915946408599517807827324884478063299436355499223844601105661446992762602756648567658049089889195625083155660441870820920360339779339373126209013419792825136929660047234254860412966295085495220096154967892636679002863540695452199909934432730446323849791548419949851227895622779813478024232357697540092557713045585410914523623720860121876818851489121438537526095895406302516603166091310765311235530656626855663112330788545346070590092543024849486721069574569780604437575743821939386773697441996974324050274176736895543686540992295328734320913061207414051508374686771645670513276091105958014420822992287475774674461126898220926498206734967374825242562899215588107767023545860734412284386728953508047614377689332919308976219422677598585993328815209977348463477773167674873461344957957302423177355288250210817558228535983175880757060028843221648522341670409337167925456656405797872818321336821307577149511860872258027920201758124297969852517910727741385357399148469190358339621973582551271750408344402382875264861230335629088147725556509421729255307862473325664359433381250206681342511869146920510097065359567553076470383860792208409035839933507547386902232589143422899103731069996941665897193829271431246040412594592540520672347773947876119494323357981794516775757697182745499422471125962418189873448750801713184030135557746112199765946420342228910241941496769608330714959387000805690884330335296357699903826448605712867878426454684037933646620681801413807105463404824254244168748472451944207334681553047641989750583729084581111193640767637323028933078603751504836881087406564726889023189683086516508612742650771176150328341034289667966723901168072480226390993273368357335599397790126623471149603352902210662426587506469450549410117829653955637937806554155447672698115431742100535659470845275824010554680630363164052058764898290602883012826103393554663915629901080866786323616356417680034989900184526622015974489242297800044943091970966192837309461979465085204272036738585494171607070553575225572120142925583082114142569804977436416109175676975737531403200092358076979434330213502253266687154737260396756164329420445410144749883949472788509647167907029148987224079027275348137046154898188519739775758713706540628806123138729602337485705858435233881076765582092701983956059048522042824336144013709816530696930946458504403133563799656715812660204485962278008100462530549207040821246053609325757833568984386996974396567902275797300625382530297519275744291607477800137114558023470215032601046052345132708508631639329896499235796200121778766269553177264331997369547796524610602892906615753353006550332277293098351690413180770157483239139761914318278427167551318380680886583303219165364815930927866872310906323786411350215291036245734872034995890068797706483376860951895506422307344443731777675251740346793858714849712006131731408000523876433077824049589552593434334778454896228162572616811027147809486277180655880433684049591603185392195956573952083909592159015234325755041489221553020174342146371617323461093941799292402226583337980310998570678701350751411735526722391551629393428471835327509268803494990185092415901249299261015713280864232351517495109951721070621283459740345060787395398390264212663931314306153582886921440542889041037280809687969059245018254813392716747876874889345626855545923722811015448314993544815556524482371223543754560434098563534205988873664224668628251218388858251345354112007807397723075745409813925552108701506216448641011506477372992034168569755457077954724174982489730889640642164161995901155608929652609781995683612289309578939535098798961728682373541817742744734505727128046715557474793847176854001346457197091188880305790553689181668333592776079938324766688565096358598491295916412020791280568889589550869200115023339253873847554989377342730154132794184367116229501550421504728838942237736992363527709151326363428484170031138055250143276315748478414745318137631651678985752940220207480430809013986598971282400104447836506866517457702905132287449030614977552581073468797154430459908701585150058870444228791629485129151453970373681120822343403708315361065295097483437695071452191284973564989786995930138456826568983426680445040885098517465221360277762261340653274893300034367532927207979032391736312250362561205122446225822751779253634546001560122555152438913088594755288264421291428747453430769299994554998669685722316093817155549101926960385721190109509993354891046858011620850775203439443945464955529642921708750278473974664726162541185162556905680672383176358847695521748216653603251211978959449481490229616518215654148994743937516269449696545944291689232438665248994321858725483215298823903043742697896043278938034127662131339993559789370742468436739507021295236366663062765197209688146729363893725418798454913281860340875693784766938364320403020794662545791996419394962562247893544941202866956600646699087029175443473058505015078064147712351825535911180047969708528625488101821071944761202374486592553430616276463408610028400261093476964696384642947367574705914560903277651372404590881050011165270278591653867687199037838169761151182835989061903935371463587336759758511453953068204167392049735766264141457825433054179893779098775954616002100862139487065139665602656569681957561371972372126767377167745313342464263914998493058829801424239151178641796127502000108762011972622754704345287429629001385002515423676343944213864574717943838727466649780255147766864556953101695502496368326102551530421411646772185491736085623269530778628583104028221784950375412536100691081249062372574235360402564377182292222243446032812036897168025827114490895984996515027156213488907671050744504207762410427684209799559176548552037592642082310413302516939523383814323673799836528607106161803136810003636172383296344962930392153846473758372893654814414777347331787154335062913817700979625189893656058025599690275205539509114231718632754876547850552543607998408315787732851856960939260138735737317292657943906256844473752895741845966034071366587859353369534886149296563487327020494727290574285053293075605613149662093866641385877567230648325315425498446295848023097553479278530254424412207757751364959091010530690467857637128177800772467640504911866158691524137976558989255707687731791441391980364142405369963915741460109822206846398415402834794373512013826517504949779585655558563577296990117024871599355475262175425564277122311730944628832629925779872032145743767298367447599046066086357718710693389770440891426868304017796552017959100872583926648246878425978955245586141439101632123330939259091666140757207741042647870599841265902430205428465166046952668282341710267258770013784121205345437562909417459238883350258811628927532608232779448974079514464370918629563153335532834710583272943118583721575700718948072069995456930250655747880377246219340632787068535821708691813565584426152045519502474063154411080153717575236502283591684855011006474248721770168485359367429782037707625048432947113651496019602379669617217902990058090605460665071589504802658482531019690379529477587718447600172749915403796218207457741415779632904935383389146823726281401411282052781887817938899773827695747626536241229142598375239355260776317989568738603810789502147721082899125879201697727932343704952501464432181549088006274330930998363181485343922609518090296249327806533508951257486393499909634072963554405616864970574276324544821693169047688797488112976073445612227070151234421417281440744743881389170658687639506988370472997433690075758075020067484407373218556727786939278991290718877139922261436810884044359006041025287860995885809856637800330888751844850324416429160142836341540068751930020283863276767468409626749185576175347392235049794435491031579564084188730474032344267605304383222853351790382966261582707337728999536925829251607690217712122603900646705417306412607051208473553156904603934875682005076931916522725303702905928835298066127223496682264413459686381961776241840004403570898833800413724896777811207869325892717666551280311913604107050403090496936747836889565372515688947444639117200930408841050060169007125331374271688698187213974744843783008632283649579460003352537465623068926498086769683449047157289648755918679162665923650296291874402852430589052548176376464202717505579620013671479725508237531921295796781032428135951111416578499229523427923925031222665162411257211323430600742314742262215428923891503703246471161160806708566075339017384212407454204920762152528585275400807251481107245410301085793333719394897119946399370698571848977870781642924835729444228299633050612099654786944718173098278302068044009694030934980900684805459849389993582098888427241933726866420312946598024538892039546922402410389139703541864506694709870508301587191395555625894150261152117129109453945629050988123147931601492719556875842296210644960446999821667636749014307582743514711669057999624666243587401939254724953052394188471345974061634184249122507802687574957323539173897133645082666886514718655634178031384530949932924227229249978252253996393095293938947662197569281237190052875580262985536564366651728212668752747368355904322476436204857089565714065854172479329351210948600647339549402904075864277237415419100358843333360627905181897391990513084758385086373146825054122453970793801843200056412141914056546212552916481215713449879041409209027844731420332370126522442569437694023984025118096392963326106202727755551762841889805330373379071688456200568858624643212971167062846330699358952790382090849066725934333160628674140014917640395043370354362229973629168104160091306843288234400745751463971804340921319579568334796586735371289057028828586778590512967990501882957225384059662038943957020168251703642760321791962746928746100601526355443864703172569964347218458130231933907609587783680310974634868294467283353232250711222751456013376929389370060959011439058613208288507607741396678756215257808018086967019405403304342949369152025821050276568884737634528658010474166990211830099058199612263308420234059604782482144088543341050397169459942516787847647763305819634764703127041128759276605667281046763017623908507865485264069944565876097134698593222687763107467215425910042642432830189905004447092808169104345393682977180992541881405485539707184784553712646110426595669894796918394595724075532492527578056406586603004281780954508790059337908745970818835319172007241677097710827142558085611963564595999100269153545677827915176898795824741327026187452676051886722123874366733750632310103145582172380763220219111746830178571580382199494083841581088493313247386787112732544151650985511592791859719897800145044032204643351544626669207795537948187828872644200733104134991786569333959562097360763210964384651897367016665179841736714691943215727230567486704510534370890477017163808971171358008129579461624387692852286753333587363231097991859365294127941615427336030952844986798749518049509017991763977886124061262442009561123295102345447143458793516728335191080066215864484237448409865154489105537335956528282299646809363707147881828810706028170199009058011058722806690893729002041633525404237090576830298437083479379439640351451162655248782004282215091998567949344344489170958321342572730186628510604199330868724245154884228893324948121878036768087484739587091592386256880677352195808796904979987533933941506215589204228469490727547450901520580105480856814547621304741425937622066633303796499552775569692992289229743441153285775669882654368539518703554079307528767777662722829039705653845870308536339346660237618068200433381525180365592417210016073944940473616012841736101878782747523063069802031698667009308180368604871068425328032384404350075796967392111170057547499945435248237911687152196341851851541126001105511568045590046620673851194112747245829140462059635682125051857855393055580496244144664767566149069550035756564028594027178253622384883744125103498997694175347950280525341564440820430621683462918724837108378193197597956686129218632428423142529865533367377966109481369036200549415710687055345713685487216577160043742965673376409817564579741778088690470850062135172378149701430329829794325846934205072525693489289532109977391196086016583244051927497429029758565611014240030775412430357350595868296271387766442325395763068710137216766633008732127965186567936042121209551452519240337645361649297652357298452211636419659975773893836010175554560870376858107197989884790748782426487328556054503712560701885234075903317939834612389639459097803783020801917116125792543105995630479346022331110872167105927073498513265680452696380303173726910679319315891237298594892471143349713923743057625886208081004184661799038395195045129164485248081380685687899455251311775929198432814593896279255405115780069637881360275378788440597677324792092405943234426702779908322593627027154557913431401672574896544427350863324257583435322296437574510577059210910475183800783951299588757918668288256400005003080912681523204311912016189427984578144728062457984240661862896473867301222681567292675447566415253254899088789103267655746797600819329751363824192306759168526302104134333108443077459752866276466576845039925218755249458660959314765244529128437784592755633797218813749033139515499770477228795344525377597302665211394516350316024005644713905247780265583352776931135186467091194494654035759903117386871005164053905812149050657359654739295983037222683158868144367086123855309798999856884026323645249286616556476726613861446792498716814377177809573346312199335569869677572635711210857932512254671488973016889586746699145430660886070736422390375585852979750801178457421516872727915136472874874469447009915069578374382301237686222776901317793167188467687896299183144846357030536139162950342318189606065127782007132073713759869885703183573307982266416007221605722554766526264789233123586983611079698942636062731504646727639055266495431133464775353664272266175409118891206256481859109267671118165712017818808399083063790628262566607822328135901899845805153089667100975270119558239450423602983222589087355952275094772414062367067046702912396145376001895473282412980278681473336108240909022433542904610089353002473624410585273569834999189326875190978578350427839000535254669494223911076189771707562000386219914708607283558422600740678512250756053621579888006290691623353597609491022670064664436160792413940579137448013658325700447697874243788893824446690103071538475625023654336050677718931112928287354261300600754060258450319282933686934156911884257981296498491210707779171342411713998554712767953916069133945607598464582829863136976553018956617775170975028605260566850985357785342610879216471171951675189445988109449426319735556154040162941678327950113667016095627489340621450763582964237443965314427585791727880088799650138969813702533498315999310870344656774167761466538491831078956279618117246709295306839676727825130568538622022040126228909767095564076251394100720623598305634907148806658512823871860359910142678004947933079851777877307929956286955057506301747929627804679938660555335879439910041761540403703830648628116151444746976976807250451652631042881931408898153717955294940239058030779685146970810603772471806409052752544721484450748881550808425862865190454898467653974723811283827602423395446310371478585892253804973821745900860539587676783108317788065372007004861701919054119345290724210846221190770318119195357116613811425686815007832306379896483278007614168109740312720746140369081737586318437348149670138836707332465814290472317303507040665464928529187616384859702525453566904196031140724866170274206503264158335610309993028671817223224878289152421826097304014332829934836139177093070617813602073405567901398762155982922569449658102001163715631607752881896146948178740386976998241569936100069864297721416890050643084538069927607657446151116370355747805955439187693602108811521513057667070348662234916441412195341080398147935857961411388223401643050673064331997517996132392202325501898627439003437208220321886673710767374785211449299903231958860012719186976974071108498490668189825538245042166504482901367861009660036998462152176461991702713071697955201300704223343390675295614750843491088287734593552658775200895377465919436591151591813967355365804864787479246456410464506835035750171964815955207392466210476657405810428556920076169495699175507925921806354589326483904297177328070092848077268616911044324137709225059989013523103496420455649960291658097319021559213703220636206090637919191873732785697988432177178808913711207308964880994508552768195880762733373486802928485364102583416876858441493707795791173535886194320832076469220487593383032866775042984367768908198617402181184895204893787809754337747753686314093628026895476218894934279700992633325742104362287446209787315495346338383448716907517230296515228188170234310249329411713656090288365086203670306379389208236421095861001849636362308684307923178153070009738563778108898673783620746266578908584060026844887218127384166738439074422077142902998265806137886899305776628259233580202515435656720068333461097218659681834063043156217438415702920483920091628953190076693364248620586561012146757177696689457739409570472463984646869824794389915737073130455411675020393599116446368104326159227462311093223186579554056278552125488389494310907267178852576597142304017194314898769465561468858980173342323997694549805734394616939338325405872573615574861152711703654661283407234977899366936019201161814168467316876889553387109108031017710476224161300088328972442917783188543442004620986982123405223189231937645786841745923406246531125753689710461396620259324254201979063433143388704991075887259579921323516900064779018424796224767148019149987691337007533682993399696975913938934556328619976000968240906258849821460018239525692179654919819117100369006522585922969611647886150910325912736160333180673497979777245520582000700065129937907386921062420428499604524092602134895039360003458398230474042372882242453672857506992618039248533359906226316160249868997440369248111178803787471617293560853548681317706415129936247174255412369759417216862025764773860432291621340434365593854502811849287303462348845673156558077420054671233537101606115029099508951587597607372878526431290588470355650313525252630941623346487815042990337376871977130755684765802462283436648920223193853062321717684064507881367686282943639836103130256982154372680798298961130118366821578603633631684701162651557829971519851126913652721985220688553156861960362604122183333928893755740739077029094636392333192889730383660195835190963622254237670028165280350683153581219636149046112439401711871430142616937492510086626042971752919861022832717089423088405074936300287579193764524353415241610215884085494726550245483031856395609811985767421219852580841337755937598798204743187530839885290385118740834533969313342367877744836278238076816146369512358722047252531816409319495781470008836203020335128951890836136599646557616052748968945310415839995077076236198231001751664812254274033228406153134467499730336575172373978915059419299637828272956096791575736778831893127405395726190805356397004623809560225655442351584799641501344956540003008276785761278073030948881676679984280117044324910998830774210584788712060702820945999779724327770656158228163495598511188782913405853584807827069387684913458827325032656057552765440899878536177261450798895261748909701095618025802404117510684433129488745907145120210243505682513968900071087883213728560193884396230978479634397271764704641210284193696398194634462018678471070365531543565245011482934302933101899470665818224336639680656203634757288881268154317399559770835601225267000156263344428141202266788689074964476647580873466676942727452007645607183216707432305451682759679276264725609958387508002466390877931700996612234207661068334387112525364790400987889159549059971704598925709195652430651604564402866380553337905671484977460004782777226388757465389748804516940481651807234746445190988352335368221922573322515817268765538160946278174099677222461492041336435400362987596011145546912902894781564129555885801301075696922026725478966070903738569474895323366803796225002290856437257939324638980356698060599661492693919431744805390368832811165118921647666516167850725414803553341285817443996338068356696989040579608501154780279891378978494765147105385315033022861639988647117806387991233368005103799203653611138554716243330933079522853538641887813208348690976859762837400844746304442679266684757477121202924610101110649294404179393132977377152573886831242420695613148120786024941643559622018484907793046900770897447166549721599680000730174846527403696313455746212623428269448495443473539807618483144034609607461663359574639674405985986185951916919750769844112442497259423439172656314082948657235072891428883446799361042657048647871110615303810558246126371336401333332962694607060998731348767666495176756830781128339605646966028443914063427976438824540823617324410189011489942096505880539030446511080068499228195794310460416334098982357389180048224982310574949627254718860041310301183026113239833558605189762166401903998939418404531134465263878083107898873337249715453743643460912869190322728517369700680167781101657115265507183100632126126682811317340986084385333502588297984529977423505092590488012109040441422611830530367847652544764818854942690799613074414009657453853907344117244999555215995591706204300935574923264357769819515890772158536478779613914205398709102868627746200736625351293515350895425740450433007904836845947259152449703353681594789400722993681382560664928685718507812364834254172657420314430910432465322700056732440187072295087068294899721276841480545304725686324238374989941906533393581325593189529456681476609084109210486924026982780666125194442000669244708390541477123567661366431799611790839300487605199495804680393980001589267445858178372079888862602239930487500265232650540604057016341986997314650721630122015084922432460334917862897762351126698751430327686831516639377258233650751964357343080126703645281816357173770208361196479045289267759822597180601996935044605479946657374678867519647655122592314255635448199237129757066363290323549051599695621472131070891814339630547411087561243612136175944862239759771223068014103436654603275021977753697019162788379781470691627449509602403578186727476575615962540864904831941897620162885944541008106487282819680333985989306093157465306151977573094352943448649492797226871954325482006748940902295899941103834941290839831489150054841410452000455489096493437297643581068371042985336383349982530747799973494175241985125058064893971805291660248725412215521425346376617054179004642522184558456322395371534741379851022975941971377190721616390356462849587223285468306670394539991656601787818154580666914597423492169380698731607521143476209317968179287720232484868619367275303882400831237596262938827786488570706539621096088083966005666927121472125688159549686896327538268930695310653433155950813551507164480597722469313170318345458612088556854291681845945510146651109615048024584784770400995938112155839923217635929106806741083296124652811971128845336622543088487487601893760817410091982868793549892799633786456338447653009780205132074343101536831448264605277092376887776629146997416286414885754408774961421906620981414955839848272222876729292557171292847781889145103040815331135586823684036519252808604373407882260746205862746640819593612397429356406812279112704063598998199529981454142879994433170307965936612298966908296017893506865914986209993757850043501805933736543477305245433965091536807752094197538656461446995067555009545787402337759825778922718408753519550937828829032294423675416275845557242503450467953357684797928153400593630007275905657208136096687962410329783304449385078866486204451777898636027230881604932210211105785066482418399577739387811290495610744081424890531550534968362191164922957233009809303348445963665307076176269047878169243611173669228336183948806682072339278716587328662482181538260547420847155491663884818682749151745377216214398534401066314305157199965416697233523654950138494761761985477052670663897545631985344342643227287026140446168672892326021489633273995205466740270539917562604412508673299383137032776191859187546796176592191395921119014466182451712995926772704997288906285116001074525682954129372877623408866300534668707042819330699625386868430344513189753488964359531236773776416394028893445351588892674613487893191722715735504649963581796832144726998916246793406447744661668988861278312701615627925103713631575451195936471277231258817964544443382106391030926355341489566411554630711942315634482607074667232246540190353559903903314662227348923036728173189546721396553273954637453992883738183995283521220027485646675688429138180126784373125772223873227919138089076984940710826758823420295274276721301236467043586503225705614678168529738541862016436455903118660473614531754505560251578673906393019342077218481147826731618308539083958405915347209340044913394277689249368739742613258640933787113164687847204659412977616976051123909631513353621550283643868934684182748980189064466490460313121035638143584237408201154872455377166609801779828943013384096490426286720993655170954849223615143406553636573868279359161306859755503402235879977559173203419132909172565890303368841953762943425087026737875951130092110707826828042556117610646396569666321673573913730460504169562128311936769932778485553172444732729825870604735901893973665219252491041709379053973914354307860703825863501882931657826079331859475197323237239031127276698197985759915292662383528542922437138530477404089826090190362402298167841336930279181382835552913431489910382419924547509422449632498591994174166175303959232573315846540124643850193262862935926422310833593415232873900811933174540161925611702495998907212534639233550149274203923781103838969254411145811114279617985748057493105778087283654765628145299980626469834374584016762102797112478268251478187047451112738659352202953754424579742034430350672812887552650349496985012512404571332508538200776029679016115085621338246445977444385667701909253600509364828892968420790784108127628510784366243641049153576411272769240524787799327035975921026611808997392724840323149690129817019694599972217108565234860153149221565161454225330868242354534509082933648781845041748236206826444985111619178547564631619948000677581478171112834518818325224501054359198227256875762731267972056656634320116787027999708927236217014528935367972604550093449909329653519579125251916915175508452603505379212034739624556563027593742740598136043397446769612511864444859166558371508634419263593456994272353257752429508850386221445515924326054833440812180691964207991576026892886580820093829699646086215473384113330785376169765977004750013073814165681270952692546898138366329075341927732269173202599849488492656602373529187550071667044463195947301000260098530294828012895878319646039682572450488487126664004909550039941936978731582424105686081054112092652191063058420648022749142260514604252845090387335876587641614152537275150811617313561092449760122511416739333421892500969055977038875509644863991022437370833528310219659088342864597372739271292511235713593756423858614639992616910840722409846820471889915276224566360205801227027134179168932169600444312099274739550960712083613326590896582168820151177952755435842798134961160106975726258927663007106764217133661813682354098868039302876076872280154463316912751188680258343277380592459018651988450770376020374702319806035770896015276923498945483014843695811551864698037339114606293093160966623694584869288486553589223082196422697395963625360440914313937138484384340405495826071579152736059864010843809152737245407220826843538866857846119246969319506280284932429686541661488767391260102858781768406626375534234174073988496985549828953015975787256938863845452726997897911349590543602518389421233784381146735706964890218051997311850018030294762821617092634007122164866212306267861217797316267242543130772491997889769109083780124593807956072151221462004575270640661657770496044298588378238655177408563509937510785366760385031473752793011248807016553893327833122597339477086296927236070947433253622219679169321747402314445529279133290534979857186480071382321098266248104132116998100296063409938199454665265674120037519314645223921841608773402653328292308429902689619338292188567681316588465409280883797948397534485789489448616573606876326366628892112535822633405141840512740379620122839157791651908991498431864117998265823693528380277313429169914558138505583914206090727589017895001866791833189615310712648267515344979163711710516198577292164297292034658055589148052638853959050373108639897599704217082540862989053870676819917135078464496951852785172903236258211223328134542148940093622751569422745100134459780946798760604652258850960868261900705593721835887067117999087765703404298727554846289017124763808564863283190194869216435615966711454747682265533524354998347947549535559669207330537640387886006345416096454352547347326144224255336570348419782023161145870393999013596255306323548123508060917967854420640347324790180653466295173087416605248407152149592095118924142368831859486407600130307894695949401717074887829922473054533749000800241787325786399913328484504281272171902527585539373125920309450778685198222489364305714446688440934126293653112287056004088380725406798901746577509034332170296773226301294909008369039511851021044457471032546423798862865453206010159628769937738946881918069140342005897635527489284448763813340637764069401902652804664295450969597893324739415991739737869377669953241108766690530521358930705136058514359193464449038021071057190238616009170109464262474581130630090948717595680086703730714941371055069898979653723867422055549373268889669635113600590214690205541489825338466540645172534503195109285806299308562337875546277091741818267047726433837769314509293779023089774577172729703310366804294038081296889770393034492494301761486790959897525353430580539446120326084848882115560658121739629085538327575715344380252172412725223312118185995444935807520679782213170912434275868987640666323950025778525486033758678055068138655757424416255563241314852585589695837233065970929453898151471778261401202339221169496165276577013660340414694420298284649132604423622237097522597156059927950634298751260298159192185660095264986764792008006691477742696958936923200293973035468275945597036382194914985001362611246202069217118014271981568228063575645704276553953072510603120817591617303561536100062325250441387002832496443699631617409795136172938032544213812531900390390171425838072253881830099251895274019605975956997881675349230548287568611633831518878270589844748606017360080010509637758790387632919760415201119157970196666626285063864713022391867099718079740453073821758925674998557576535887393776590078610004628513299434860227217929840678607428966581776576174367203101558469238252984538830564070930735446794751043074568589495724569145921208745943787385814957715993402503948510805787633842327267163846783676729690146828727827712201572704276344940809465897720720143961537613493038899750522040043029714296286883797620941016437780353960331676201207013352959251976365025368708258220258621488718416504401484485487887550117472456636195595532441440693803264173555344788571590717610340181499296244217129103413485109963388859928415592476257208182113688920084236861942076898135522495570907666031319517022542617310732481226704369219115133759170070730541383873238750323042425992202078218767278419038919240595359710374109893961405396493244115151767434811951717997863156862858305708551102506937044525116687571024230908772881235305799455163689858268062652853737132521692806959896598842607110864403213711406831303355799994675400020760493015020783461252258902558692805920305292433969115851248419833608109013073087611817674955889376057720805090993073638250328295214008544293453387923009377400820764081901639183214659282631279812624551790419192718886964409184482877327930912886843413510016699704903244738057696325399482099861310869523988770722227292782914434258885291015450215527793000090082736664554311326008531480108654362318094934785044117256570347108870908169710270564597325836061343322127597930367683692316907377010255488711226540359375745131022695104701569618008539017285733489591497518721889899596366193845737695719668514927775414303660986665037474749182353378050247848727816772397464405698523577190921494292475023010537365565111006682946920029656044580831129784967809940503624764553163516848283103913624331596379949150880285524901190205790008034956112062063872845085184966503779655764467913657463538251317428787912854484560339063329456919506219294847234233758003846724504209781626294320345372883413781954143649713477696915383102927322010652877890466228082096237343965535165488880695876438158482499966546220639195285833683506413803652225095242998675042057762345574408140002157772014177510908509542618876676891951232591335580475962960695980167093404471615558135815784554859190961137456014094544383642223989426754881947409504178879224207904370600172836755749205255848108067351754591169696723457478225500000238632591866530401568938494635475976062655427116054774377270080034512346339191800458962603776949507914432197895803725197031718910298523196682905306807057535661860310550353670266515800988610903869523399404525408740112034604783860972720500965346432933580683605196911436542767679313229131284044912857105974675092862697529338718676092050119979348978546906362333105541083487915825809766359095931030821536135674551643093249171377174402523029788967445278507243366976946149138829116109355261458166176778726244184608466766049698362245288868596002942552647953460025580793108738331339728515572324597229825891834413089300127167848765694089028984501910430445218052094557737476926476934082748960921752046706296629211273173097004021688217235429719870496066891948652951116969548330558144572197805961045167412359940663715997822055386998189859956240825459330963044290332742714352247048157939402122212843597049168462051358124363162605471382269622677007275704332001773342250900123059870486448757039927861823998801224201465963367850842385677545355894300209453596968268566914301669036882631708404166704842055112772046130581860023478941954947121723737018136080363545976593932745261688532108619297651450287439952668309200798616471783715974583467505460862879228444264739991408730541484559973079402627111943541345405955806376941893620887666537021129539003425642212134790742615563350276321666509262323411877240230770145569700497703815347108798176033330931333891722882035378955980115144916482589759368501481380782857138584748520315523487924461389101348113504437290870977486986620150966773685683603127420972524057600258176856487679945620521379880883590330111665828885225716779029321812396585723076311252968254911418503582340266019696161318758463845010041759121770397035982341993308493048957524205793757531284248568757426271278115218054005763581248066015648799862418880441828701327477041167839433846671923997061214709478310642664917371866834366798861306072971182924083521842487198076947709703076958674222508720334854339885428694596122693651888108555715790879466048961920075028031526698926845255186820318706772985097661380579083356812128391000775417364125143276095716263069216267220405267712569130057558920524275011161034223029943016955726503184485034850494724614355115238668201382935404339790438129851080223500843429366100586578322376121475856211762843755793722325241194453129731171316975070295963795509956363643427959023232954815428553395568363121109956360890637140487546749729786167893066759061692861900414278387276735792032930615671997171955103006695373620427431047812648541495869243760342053096587115895746818215117641233520692315143476949343518014134282732471895611600833808378114031898718186442070835903497916473086529984943058478609534499496232640600594061352346209689448549465282835585018412791880341429778415456365745988003249465626837150457204662959230170320417916085731395609439555156018047191343635776440584991326856443982827825412289485955077941314843693690136697162072664418270719695153442035543073358912295394530234279271698946560795980155376467083871020251779168925692345367191209436077920707655823564381222011258916025875543927666143131185909861244724490180521618186486346348713056395689427690374545453484124800648115397165441616719716195741232497834979084076182766249785595249253968071334006771009706248111701795945794570265835718398299401418480351090735478535417761032592420001844417315408607422919412044424242891142384587067583010500502216427182379416517045335241702825664914550979643809402799710073912402828435505338439281416409587945585657435350629505348028039094939859516689638228008414925318767237862178383387667712368591394629167605839147028218892703067569259819532135111523501624995829060324925707144762771586267977068046900760087323646802560939179744159350683817121708835032434589346675732068426739978134006700383173609498904991620484529038418788850528545275464643632238464077928188278253377753635281279407498382858805656058429596098203032770983047038697768447282069151454890144350691808149187791839400109597013248686467291209230840520205171660024357588564068205856490670170430743289423732490115165745371349302461999394484968014121817353703740573535342824017331205663552765511823523146019989608186019928983227970896469525221070876452633263259523776735324251952591159955430966888195682527260524719816392828548406724051990858495298338495571311245222887085637196770721884996521673257108959416846283981736013339431779968091318307070206938609356103124954083178537127574712196981423302141686443013662197240940492788053002917036807854132697056147150690919791282449963553294696281977101660943367278242391367904629252236992130645145197092101894722208314639740342644828572397755642466788579751399762055973691215299561930716017885507129543335177087006331166585054727761141226432822329089934413902299151272324612108458789619302477533198714228778211900780188324715299815624193892550633471031353021482861192971522595478693094549215454243064922926229852307753395914553956450729358060602582338526001518411969739996465924482281443647028606535988802285805918893172144234773732816521153678308399350446295785779930054900524301945351323536040246766826881336858648766444621265021433475026750274516835788077841403953129689026423452684248477693151837393404579275587194744657216097605024015040770782060662571477787918264844138414133691717787929445858146944097042478694986856767579946556973419735404111390787322037990917400191626067278985472117648278930778246974548131341697448778975215384767770378813402324166205802984426300749047189149985004085731208041525449908004195960481017078784703964221293252488624607261570524560354337120581384746866868044861922923557229384600599391803559661243199348083155217540063418134176076671247453801030776583750843472042625719551412302113700345655320647234082136885778962253220841537372593219342768046020610699980648733670688734673421514718843468306994570375425996443951054515628072882685450432305724054290674240653167102634195861491360297448717446742168916523446563352926958012285261932830561239191037483302666652545614765401689354013274782576546926950347928406201967648156524958968910956616549808824198019093140003527770004807102744855702935178106263851995690190910416134400714746489062240395183983348329875533099221591846142878641735057842438456103170272980420514810911983373663210285725630083697503255207003089017326820447642362063030363638297006283397267526892210843204991892592122299735920478168505494335093271028661224415572837858494059655413183823547167617534315368429560195775156251243722585026843836618660660670355268556222954867333322588466518638854715424662695375887813232590133922579540649333124680351121576755329881846891299892746058357946255184315663927994298630970863823159496764369973137873949218284604510617456492152544587647065850889004711143236595264605833477886318246070403064841757820588313578685398600784931879648134308494613653192222173717823614199998260866183423503582791429683073042013449866063564330709839245704893494317741309729529239259346304279326286070535063145837910535382645907061023651063971381348556726282997945668563480218422881567151223834541268144644105689362700639138151072378298038609708372956816581460343774215021439897033373432403487864999634856401677405238313405031645056040225335192151428924474692406650744835415400866925191595131104537048250653919488653640854002341536769302685422932499693328345841652050653706072744694642708939968484914190912627308713834440537491984734415853545861706337092947383231753211808664375650506277613697628474779310710805009550643935048526179823513537886126782204131310064070455953681469615811782657020488793383402300948362796756421075121260582046900710728083403020363011462307393608159018380290997474738231989300933266842743518824030838836723524331535312631598589146295691587202375648336709346659132900437454060648544698221971696546669163026396710374761695010920684040504786307172301337286202526008274990635705478618744733842948018462409979834447826153399025020015806528154793348475878520296403570605674217946493885842560596108145779825865967495660946974945225176760381481687054114923902346865027597466270168477794293864352591070877006204301088869547456695056912108178112140066601361670935216512068529877762201168727160390795239986460318852085264743444369918296980485312044614863505595443760270438547190435629358333590938621275685713941145459972815613706987382925025809213782885505902075986017383111136087974661128450222752217582257702684997610470986869554904133052849815910314791501926798554242769796462408313125744597866394086563835247328349099882049964698218485351912894639125507032202500844513454537185823455546216464137340162215568293549362753848002959558984658463666483984246944144063061496623167561537104239721137762578053241343538874510522138361466268129919047563312251718412079497325420051871481012105705071932346214691117188801424172820789360690839009001865795508133409326815513134754958694095300868715959852738988989432744716805565612674113012823961503164692860643255744193677836120321932168306260385993815853940031545911698806964178000181588393821514107798724735175314553126376461715338654233787410674096679311939861246530092781559481456049798875364000665825385218661565053947173697012274335195912472593431459573795171591448335457079151660586741030320080902308411990498568626007180011809676277327087686258910171073786592461950355494911776263401414984094743867918297302257882008049673496405375737332458319188851705987899586692637449494083307599748395655656401261996237926362883513625383061910794615661529253715419866959336568768487919281908898145736186725088212821862913642157592034809403903469096092947090551670598405473802055074052623450490116149545552897988813471270238463565471989137832944202153797341975194093605265300805347455404327629688224636532522165222129988631726891477173516060808771655169067453300875662769414673897297253934553340014755792055831444283277269761496140844591428751454487086107473450454190669882419989789683430211832255376213436113762450365222687037122387282957944520012201522152314153547968366834985041142626432203795742058531726226358030236078372017279195940548792002618184237839207011751857537185844404488059547492169219278362783704022517434298054340882076859049069218024356519968477137364071136779696085721277956047851026432346180501416365084421741250555067704765992508471351443964709118184720854248223572341330316079674731902161364775945769454225814694002627449414762740451096513037076962602850973872591987316112945190716409959837270161542374946648218664808729530775165847516668331789314942454190412090948824541586642213325233360661706523659239615336676435408961371168042018763648652159835364528451371291264012734758923046080383258066678048134790459300685169098766291021647194703296993556238726726938320856408737391169005511872420046921409775945444995609325342628284882860284892627796793424657495860222808121772432439837477604989121080602219383149747603636102876902417964272223601152329885304868565628464879341074621517478635606619840123291795520268674691385096333919251031412186161732243542637984895817785172839298855381108302406681204847692160597780344185533732551413108900831067023108481221772214729676082605125074052492496429920004514316141396978140927082993878633081607521504930710076822466108371079249496460911558585311069361556987287036935301296816278421819863690454322618409649660536451900950704302300740827000725498523916506649645256232414848104052217255944997717625173945608674932031731892681101650004748911272518882050378833911755169446625602966843673551430658186493431803027074593414526540744296312819490162382610705646529888750892810265604284532159784171731124979041032585468740772599938284658476548920247054097784417887166613153137561009636814273417223662241934373472073449450662859989941061283146798364001301702002565249137679246338440162927949076569662955905559120361078117432134065660988497946957407383405974813681207463607472044176966821627002630094954505810502486805826927603140799764424258051459603840699768607468056113516981261342127820925680972791772172730284868523970053065542096074990585349860311238096735058578025951786466198241530264717257944574791144481628885317975306536271804196612676985388356703070694399349284561114032615083232659843157234196008750190116102983260464970290141141403642103340475316657356906367091258094296628376251611762150458606739462951436965174878498615344438169222672778222512551387823582798585282831489634040816066440730264009891296351888701153793736678366972224628894432192071158499305351576865715275095876834234902062905671302043224646751648922597504564308375265262256416233227532611028179927029311564499139008212618210749564181720343498799916303480163217206958430767125342530045525793727209382497869662636701724646528046463328701063552512476432035737791669228328821518755161256254018155242603410885887932471201853991824054858924376813230423319394949176685974600308498170462306427564003798447620035139325744805676661356994611876787053525040590786396321024216616127347844694296780305306687880163694961490924013556263756102417565339435717453815960905740003580541327734643847878808327634009581333702942247522503248972328801496991483406175117456953866257106070239970952568522953417975783631589152586512454392820560592843748188745368065499454628390616255562093282052086470497619930615040439813599989805557350924929035322607439369762438335592661115165138943396900793966528740214743740558130772372411307160244349104818698674901522025443966157057458413973307069433445611863742892673736095428214386228172523005437925584484799926320690142532079824245921477639151355640297468964773047463604489187497290706515116468819722983092492630544245527823541251007656781673927101972489361760019208720696438894260435113743964014823381567529496460664477477620182942165753340305643024901018269038935414129727276785784171823474830924839394666940878841982684282446834856548610881948641342785380592553560870675349001813486627345333778994410628245389472924067513933463947672481443463481051171814182449017034955011761156269178946551192598140387847780358427454584733893381532370718383947897358665629071841045546473840195661533240588517290078431432259375324214650577590474935370902707143952339708855381178745379704362407949051846155837866576352850771885370870217770158819470944976696697584372969380193746105048897421207108274643722208321918296961144761464767415012454515488973120271070890817930186118765064995910659885444444119675487896152954984921573708857064022109552243154650096195648225768265611450270898022312710568170992400045580943047875932019999901972139611795619603990045205545867071209049664227218281103403574581142584297175199972246521751221753102390821235132137929717742072211405506358880095600039254059906896226322502903418969250717378232706683781165653752054201825918543559430325533363747528802685933245638167000683231676932282024274722795506409738553307792915263640067063827063308892669253434272695278861921372772900444414534224376813051040480829694901542231291504207247082681714180979004542363155508789341219734537717372994925562410956147564254646101127625021586096677263034118690627130963169684302363874452771798936392519193409756696953660749337423843837542020852917303172602032899125664823078966296737292315216986394130387633764988910637411814565938364063486178131832410224262866945088157417818145483382742530956857544623516247965670646404116642154524730728153246194089407812750068616626704608660163534810115774627549614330139281807969262701937087575393132523336733447754255375979831956905980308343818626526917683577949593365642978020783860264629943512672662594865438074715827857246047715815468156908300309955928508465548733452231748381893905197154974119340624253554293561135583005618536678653218967725750922249671702849193710293511164101975136629303803840420712968619035004149143297766673382593492368397361762326262336085987861823882468267733669880056510229013675773181559439989519171025563583260234559782417770953113887504752270822664891766391133026978812666539474842735056673194631950954146694725135395195073420180703226890378061335543721190544914363827411307639543496203296575082457297483946421655229483740195097853158240737418891255662777075360855883204980144963565639903518776647066266855310037592882307249841215004215111888163012069207101711640846163123127184127914188860597774060598264313529000213093692046352516853221795538579110887105895883379094021498247780144382412358174928339480336566578471994997465701868380460947611967119789052931277489761580298068610023889038691330181799965651100097609274635167686962864149148363736611029078903743767255268918334927124859351798251964877633996043510728962777198127273627829958487309673896889504157088470022702690339350976042938559284661240958289619326139477174683116713489472934776326316360728969804063282630126720622171139553069353190955624000557752571858302761762913412370243225378914131221819934500358231785853609106821903607920398141180036258116798820308691400805100066595646202492556623397312011631497539592329071373947604497640595191947965349760152900372341056498013541652327930124219846879023459224815018304556562666429322470735679021823307633142986154586686712634193927399805951942305740665230213682899538499489092872617486603168332943503896354977297394869795756869662313680182738517890067818354045116169626099841268260031924912865418595093370635750851225643349980456221057598042138776679838780405176988604850292058406227147860702160496083628529913802902985124386199648090607585821596693983251763631323694834948860241142803874958362118022331324543349416420145739050899443121154905947376593168024564331555879259028110171115350155709605656262048954127120866862497392978156268034833085889776292844591832186191983761063962251746873120921981510714907304484059028042044952770532915119305361715989631631317519624617687625989319302671282919388266292588836543136893118100084495697909606168056008579343793697208748471640664659643734834825044747050805607676742345463511649270313152194790887738294490967696770486382581055702873837431988893153027924820236836624483252852731092278517716424384493875133475997844611319191245459592795103874210662078992744578175886078816857225205919316241436073371584664454680600052590879458953329494781642475912103546114402242851218534569797344113733369177801565265438329352595471608041918953800418174513448783685274810465350416631867787311457863704225129658923375064045120788718094080157324227805619299260642975187875308950896429728370662349489601127788169816192005335057568740575042039873212199164045648636200078852175549798767607705243797492271090900430971893096538522785248013438246593290769159531482789857683696832454792652828625669794188024776891825266265883026881382245850395951613880737181099374523292862264378309312128427315088271771474230912402392918985236624710244969204144880770861452255423462559134192307817418033708389011460168411592832138939188594074305535350240425535562809425908826236231298904640260333900961311593219847201982979235003435160116409292884514270726009784255905280315714463724997796367452633948443380985740913293768512005787272585951446511373801044654880063011081279037989468726602974229143034001330841358888111542115541476574664213320515801265958951811613919385196796258885332495565815560467207163838429343662613541972270300799610514641473018412727738789490556613733470061906246309675899036948934369475728827669043203472532462152282484764112663651968784352364442247580712467529121681131990872072252110763075452085015311928726856270816451276616964731910464308499218129207329307712899033702739437807433865866399024064825329059384420395977863161351028243171270083095019388477670210748984478822063356036908996692063605058762547836790611742203274439380393659563726915935066356850162518480796598790872245704710553112261106429376865760219639940951617198225878953506468339565798827821158225986662439225543975548860448816204197526643855296533880379683029135091124139556175205155186684545725815324731236143115901531597495012232935370584741064719160657016554871363083999639666875792474336072420191927074114840790974685245459706562725675909276988484656169661087018222547432085666704543567803036357952518634035639109227555709904162680933005144520347014787289569420305958653474989155619246958791786767163362053874185123442086532028962745100011627331110654625733116837608099026741426864183068404486706425488113421806226021929907611593438981213730961930526322902946206156097779978547054655440883500008163550361410539822380493569485429288266055577762535034410226613750150189307260259919361318969438532569123053409413192383762670393243312961230353600944107241042683722791704100796776608786586286766817610699321024273812615103649440104496374917254682392023752540602663018321510733041061572694282911089126414648075520492527404624236869410808781486995085361830710873709261128101416109475614829749891370102811555930599256841348555690772766610570443200530278793926891761058086812652829416144533644015485292887043994944975486707682242133499052186905285803370034584142839663121674305820182420770537669283331218325305482326203317639698122978584384442592328821628327775174175198163784486832310096023007824667237546823620089307444140183119932455771423584224754869333112966575621474096546775121258485090411208388962659539260985065048565895709753092910132613879718918314961730931780465339453083247829871573826570847311473812554138957498546183507711100621779411811830880143002277324913742510938223969342965006772448224754442716476579931362148371069841283690966088813223182008812331988044048106706980656098947180527517609928979918541315765547777179415876325706731192080306629107467298023648688280789557366473891503323881398489630456488706531274587788985653458401119204629597745141248873593329772945146078109690044391173592161592662266196732970246796808631319181639386969039821150596246506257676640681365670997650160888577836228051136291344206822816836227311728766016441607230089317159178006457147640787437993084926524229950126976044990600945163347190404542944422221105102037634943493591927888382190151756793032718245281594199607663776499732145247816292972116465174648023838285710392440941623564061201245493894700446329355202860408636180407685742336662371884241879101407153175838816280792644539449345474711060506273436066104128596314472464574931698528714410755958733155523611920112122988442223708314354445719504910418406896571339489731354114972680916754357307897732009364420574983207550147789812186363274487819937060540090124202018827930807772208173332927403555228626492312811795318567651144623973563177882729260458513294360127573690672590096399484105197896462455472338003061897617229164464639361558564983562985109639110256443638254570178414479807329403593499619726598060228197014027757070358432036333892438540675752253897860527023664455685506728877502422656517613188045183956367366356835200193643790400397537885264555649177805973636806798170933275384540029826887646778064492354498479574064953087902708203236859591611700068870712003988068181819079652453179396085068328312974958434977852677469731393902899667160407939358242342172073510948024312922107106103492221854128583256850139678004069288508023410733081574674120560404783797235717241025548375906968174583329083162962266106712592941020174405204547525095089757254349271659071736280068574672958863144325320185114769567300526722932954307856205947199951499055012959759630411400332855164201337120848427825931461953806515850231694107126408591869649620525126200724106202656518749018731508123041451396551991310159117883822415447215379635811659454066928146129870785401794207573949262661576634587319722544074729945694255503953796606337895148920795714943258468130390321945192479047706604772092713993766881281096285444912259983389233185465957166324584080747128197561764594364956431320291733553455321058738235786805213862215047324322135211889093411491775502966975803496022931571357324602733912288055096045713095967035706243784574933887306341289125680412511718274942954257689963685916036369876677567352755513604062293606538634424518972936361227555778577334277870442223177334353841341708308987305489118345023181381758236848411429124972821548714350998839775120700685354247105896382078787262404128543176193478081396461615526653817029645743807304161721925525964604093941574752499339268722067315209598969818423099508640283168499333095666860560648255525940425971554160681408252962868049262045562089180446997404161613298101760689342902939246071904708097883228909993101881153491304442883626522773765781888317350394941473081865168918844061025107725767895955752753220014750715246970573602686507898737602929683252090377698455835012374862174735671627592492862645411718771647218053754317045769052510287726189569655179043740363308783841600169873687666361738565688856047257851953295790904218187625163433021142238961990722595348105767447903436936749036476882630084848710826522658996979986369056757672707691598797297497068466976604063017318250952698179382583714310624839221312303573755251463970319860947122538669521458840865245621213854869972912266490549561472849657558048493501596038695590765452243335655747489518642297433178685897666942661434794095380550112896558510127286662658815482338400480032086770963895524677228040562629781784309920226804192261977269429342544410970430204301633373565422552241553450128865543180438394317033608738333039396490557546364460664320943652456994627636321117597973957767810883828054809878731001429015361598568021047112673836089965790817427955948355908784798021997444792507867368560722495288365709534683659062435149222536680534178387384339756276619148495102972784488664336210613375051105838788672247343923407488792491684680812683685578691942137080554666018497024193697329254070868974675167775309612169496381367911726730321094290587187559988631429168608217316105121778350239509247052630903124756667827458567162560752341130064756075649632946964057093265853557560256961472689216688193831656552413880138561939365491150910728202320001246240693305954956091757365417568226020047698073107299487178710412437922045876143581203454264214164681919121620591083820204174051350475717744083159613976394313157551774586424481429817416386837321469113102053617822993047197228900853324594118408305710692331669048287458104395965579031861053658543247039094145563832990228539204147175565479901700040567710786116489207302565083871527257851097002091610166428020427690070874353561022650856786369645669913869086901021418238381741593740106903538790609301586607217951156896687647483712482938897335135830539623822516005624993831214031821506602072205974807643685428612252136147111302839466864428107815325648674795916395879910477909935760297089615704204692162545745326673664844164911030370814945345542024114148966512714352340181471509344629758608909531397261732418301309386553500909566348993516647316573444957308303356435563407526226358823566871789070819978911814621905368045315691607165710862071293653444785229971091232291152042003519782070967608308850772317337345625974988906317844727042410964481880594834489098717279866970074991368895583456286166101510872505504977899608699591502887635570197443492457061905566364909103482274752908221717197562329735885581213917330676793209314519381213059458821743332595959886065942327398136180686312404309989591971462613055329758740161296624939088000740388777531969496681706392776571350394198568817019780060388122770852221122367616236561900606220304352693734750404341280625031039744594690860519465943810182125862482072587609510746853342275029550315863429948610621025982956307803678012898743617079177733955865474468574514324226851478523845039776047280327646191055776355807546709394722309224841000015225611165839320799948387767681001606212811199052862917444078593342232336133877477315514981377393972658219355327597104243939991423032567271672742902515682407045381335714032466212201686141962145529726850302798873988250711392593920674220547081386068027072453906904311223812774776937005569808309581835348042660931376767563931507356517268408921790366650268960922884755934243979232247815054991644302828813787089419039884576974723398283343844037225626212595568532120936903638956206527801526532308441513561734756457466902818559595829575866663410340290220587096739576737586782050710905556553267862929068685075706982665645165370528616557237177492455194633450231127324383914641563188996727914481913080294899867815326731856433493012915864495199288250878896490776772013906373121372226664868862446221864199161707339293226447550763350837564350151087632200183239991397973107813918366458100016094958458534820245965004438340171300753907545307862619808807753228481385478224206094480803425225864976334217895134966277054493518368424914179186094435806446667292773073350178857690862429547904949934051563738966148295999501717227251832076429203902667458103033839083156439307876885262113256612830287372053557571987902040932784744406454503312453429247808674588764698720561593723122284122523595186264390467964072505093477724283742294415243583861394532316078431944919420823638872383866442962544862170675744952104723350544432735039175265938824073513083043958596711967581898682821471784930541855628811148598687812114214693278456277688535718515864234971138346625628947907278130441134041899584639573941262062600451351506818012182992955387591988774186654174860081148492221390366644482831585085799005380675000587862731471290027018531874972977168371785860511920892835607348021483833732039267678206904079682506365923271139106548311069964094489950690521532247771400057277213102826721370532207262929424751914991437898935989393343213471867277263483981559401744675646402099071801597700045085471317087114017515176339494924560721091514250639395484294378932498107242883327663806485769725486479483288752604429393148277917896691475064018139564930421810197217215798890579995108853257144323831443000266049862446841800943349631977363652495696439752093317253135454538182422311272549621533526479392334719163022167277218582464537762140225570541823079994812258338822914774543505096777567947901014043663806780859220195826900854789242417201412967994879539916094607377685286422172874964551296109301338629236697533476890230741901906608337796367010204304547118119337535848599952649454125485196472820236384204974298702256385666300423014947161405743652690891042332100048407748656600913483166802334017158421589543059754178992558289067124505265943366236074917388243191070354792659437151574717565299213247267222016417200970537551976554539695966781872884513009094081360416357499827650744760487060997557685699609403066899449222132960781371565239648300389275178803949653090247595455818814638406257045246241681473955784932293233329305163492610637671423659488450669526348989111039603121710905830409157464137474859079778621421016309065392049106765577992107138798751330344610039119118682444894645615106017429365889709616550972311599613688902777632134276901044432408086980394562880850793552201402884084077979147484113384418096378904842847064336377284285648548003686044820633042744891844962040282075442819467102060882504876596548405695127412226282260946280140973600553828285428380130542981307220867564195318938343657956023918087623565065636041442042734451123410121508444868668719143555239976910067883522833513246491963097666693433445220011812755457389581439482083362330116112697242045931124541566144201964422299273596518182880649359735854899835538086426047594339992056677171571112228409470626509885532073749142774289128105271232315620766962529193847939607499473590031089748193364426728910961271335097769446926795550588850899682733930401284040003218899135885465945990943663815783393274366389399671606891586559013164859941376572006386084669086195646485220201183423913171753207320089226966744571302077079942682847667731543916283707970305777104859034586583705611037395781693616841934790742309484771406362501323204425008001170636489418299444798100940555500425799376392598231365721830831163218118479423244482707266804235025210658476785100430832124787984076694842043050700710450459575285283425064511729291376134605417096109231921631805561285001892147077968321517980380808292820791119614029480118019617358695880139933405826400582613100086426580842492359185788610085598548104570788123036338379342021040014091431563035333684354296801608300712891526173465867781720051073101115843015530254231951091958583841923204483504435220083241459791949462284734344246615361186145928851471903626901797358894577287107361257264354650538784322216081958056800182511404147177704886611844707893326770472314289982979378295198969695481296263681927723158143389958036040920199490552866861536477287692558485244972351276171891074801336467438746539091011054277042345911722012013831753694751425739133409155958703835463275857246598906576651978122677247318114212306058817395144154091176776014563392728265746757122094384031986569648360915236474644016822510510808257842558458045162264912705044617826064211023526708521742288681361451147603595387117529355681452946044441784669221918020879937987295273081901457210581256891921951105925870235405648914333863304231596971506800408684986059974695712655268052828712309944050931823199739188733557894918455080086468287229467851073166156885336332138749540269517798573832792758966819858274691817922212131585830622663827867331759114856155890931143995144595772694457647766026957569660066066247464510138382157506953660920252280005302843717945814771063769695457854847750125593164919143795653151312947164043064825760254758225400205673015085212658940306715472704257090948990655434303953469612041989687638444785607423941725864579422491724556883888180389227751651777028886532161843917038077701314682703034651946352619101045335457021328667018340224813499497347993539934104439647129699829601485013033789455176804868381870690925047223058200958131785373456460108746883573965313858196734902328867246152798839956102354653683959230971968867997070217300659603068856522259488322957622175590171200296515462806828062944771594356449073030794367564724085693072260329598597221957534677957839658320526244322262611168063493666780788001907087441387478058814304247148679104476809078728596837782548991311487349884178152098377804212587059138868225676619298947147570689621672646491930516028749130169976100559074749378433744348068356405965264692380459583227938786023746733463938430773981597554572583531365959061936643047401347014637496594046507549865465191208986264948603595397019567442185628535995531248135378798177849152413173002505674447291382543117884487756988072737678575983301372193581762162006939137094500960214585108538498398987113302688983670005142737363276606847333410238169192254885417632551556225540296313410175510466137786381249939078287571712819619826177024839289765395312708362465722519802255895527689894936390577917190720292496951817102591932279326840871402350774676964566759660277263201199708792770855921888779326052643408253750564059377008584714478685254867878484209163536833579582566761300266878975867055035839888349547846794885201556901292087316550008772942019938467735568792403352721370643232636671513223277209337979692130840416571852229595605618782774314481134921722150320173351753578056944610151296070259983426521123043479964659435915791177723255710138835558329798904723125429670275136435678149106285868331022231329222305203649216838406327712796222378265183944419763624569368394814740849712470398184728139663798370068287293003358632983104708274218658248977926797030921838225721260473068005186238006285395975135617665646867162760969625106884088239132418722225226605497075646380565830133689932054661643481607495832392495034570124150294728057458106315002615826069864141660303649974555170271640505094424091410731323655182406354923460496269486208944801095978652171702171993471611003112422904589416379280443765536338874070437727006633765416210835874735248057453166280783079041787088852660688946478899021455027857672342829158229454174796840270575554865827475759810482170123420651490201077205988177541877856463265997868339016743897709372520655986930099241007223050587959803718816901763806462899320494004793235904159701714618214363574573862721667212531408203066255735489052145316454859056495688848659164296329567898982072587731760976621032901823152802949361057361871023331424963976943342575625925666965717919974424310389402065933508006023979140081671210552481661746629198947806070877501050819159208626125488203491853210858386347814175746515564138646376089693932299318981091397733964695784681684952913195753573061650168324589315410008792291127516856973241866692291237947298784109956900185635473511682759136422620192107448431112847506263363645563113114351561396989320192753798405277122157543478876536782337865507555261244531520235027802867091314350557295402804733713705572690590328906857905412262234957183178270221150952585512558254057531653541853302048069144767078711930544618728773423360842853773449919414173193460709800783514298012369076084998021124949332818005299180541343679831060260383192073226698765060141361123956603393570876708015735037551888498993474286374773613996848559588211969852425455687419857225349643943027394913102708092270263037425263731573173437139705281161648261382329657057898921289461795593968726890210832385241998568117982417735839229517393099165615119334314667710850728266685852122656256822527395917695441324617948178027844682507693649413297185816917885920842859130385548863899391824520647742987481016845526580799252672116406662279981129115701021974322072216757816602901814090464838113002058333194629568896751293751704898469823576826002180000655473366176347432377923602335846362206539417718871351795823548468271785716763408225343859529039001964900445075307565282072027771746709350468179147281585575613776658053651595400603709963727474627685951717142798465568898906449549415888428191642269219311464983840907835851740852984563110300870067273713744112557927437941364497227239751628154977083193076956678522358368053505843547588235843982292909700541334118836761116734834291007964660363636928117075936301588970478054673476759292123298622280138948834939765757050179120997234094585173029693861940743182304401472597654314926217630023817539141904468945507786465392526630205499713596907300957044113646747306353830786774256064016347421961118360482280552243165180752419168994437566306042894918711016599509813668771889936209492742832020606759745386961333159371088027170531550887692444143918368178907853011160477804182899267527828224903551205486687744499444040179422761815687815141388071930396016926831714651908441424557304314972796497936811632735711132389254750130530460744274095908622022560047250281315613372399666023839515029285194809348075270677645436043114330907408717060422680253710763998870196364933602677758688283016009797656204649237597478098359558316112979771614194980726924496572410235305193573672600701195212751708424125825022411150261223833198198268228380958180487504092901195472191446658740613823308736665459205349769217741096123360599484751604472559063315110992100840067610942733275880449538743252718997435922693930583105512733489447014675550729458602129042727038017987778363907348613145261898560896281966941066981921889839342427461990381214577329696774872846243997145526546651351721127352113656539152615211474832042970999851031689472507757056516046011147819962031902743461344103943801913349012092082856435380788525663960308589886505365563858572253821269135905021554346174499804131856077964340221021255390350965278080450794634559369331314118033426465693923563637981371231928206895902695571417190542580007009490777764554103691766735184216158623525305738414107917874002454430016914359781526842231723579896068925596516428531767736162830707261534941635556270530757821628475882853492881083305600241490299149440052242275323986564659576240079380335317588115880798951917922847860588377306980410168804110725300378822150614939181016445352363510133852512343338293514553622229365263294859386893970895192581284162223131987274476022269707142393810933376346262745993931791598132735779006575710726310031617467791389186385200238854544490749218113853109839826033327314428476809655860004587842892805456665121361570294007095519367398494996921574415013462002519814607813002980099211214226595213062327610998453885484534625222898739610342894660018517617180159532144911625849677130003253589577881958653565469182417331608917338078764291047790453871838715161407114074029388534817957569132346620418722025636511024964614915570901714718635957423255883374604348683828493595968059492262750192935974249676766184378160188897803718184102422375444917629271116503351988046851925821323063985679410307863739152614865066967227213269388464065842883455002808409425732188648169986648043942352477515990575152902364195431220860978328300899514148334910435286431990729205973659495713644538095835144346506207909540210217651174211341314473915523078304326665565294569084453526190888420957632040906190431001573273774598735744147652269544199583287385022678432025206118634157847353258200679296208439411492243497381887499584837968088852155822111481760766690466943341509171189930542581632043274432456200030320653716541221682426854612981962030579009801293324380854075853819979471976550694189915225764002664353955218955771454153099464735027473151746110201522419113628646634258151063582438768799007869236233063195560866015118472360267079966501925519383115162342200636108543857986460878009830012161775554891635182615813870720210896094935236024562749698942302146574639858392114255112428561041931693330209020980530821145339786051894863919144075535147672218437507855275877948535027727861995024710988454442123182246538854022363121143728969371600960657961691270774210382656984289912796195590063709567442747852155345910168171321131386183481268879344959091187048221665219497065763293820931674984648789816569745131773042917757219196234182290755181031981802230289809339141860019529990478141527505185415031306170035516117893857225359070022858717502119684419063043670916768203553646489162122546793484856640269403365567615558495306262109973343480852127847818538365654345164339291986539851199330975362113618032100484595311616839223528715590978904769478123047436491324375528048861588999627657450596636877953985073563471621367771628605964852907859885378093130964000618201358327424335174142191145175540551257966078866327099459428290684059895281955226008339489641238952316283049884940215490654889807186008626378792438254300152635208066116982402265081418196267673975709054210898225476573032608753067420187366457885125492379136672224787100797875740445642695362120886597769949123843326829491271217562791398897635287709148124896488382582447021939488913703397568538863745451782712761341253623136197585006676877147807866619898505485694158394031671948588649115069313265263569889659791608283555479875626458297808947063251204964241976031939523918184708252920939910596729034739609659562300779163526385286741812487797613871666904135821911523456823145144963091706419042023566475602109184030946303329405651010204353727829095375311591713346792310040165605452795785212005840744360943937002268846230374403739435902929621135936475474247631730513955780041940034048308779807462588010170519171589061151985002102586318463516156334840067263719264137086795063657570068444623940837259223377679066234933470349942879826355160699399545092938231196179627966620935159179287530152841218686862446736036913846091541777901119622079496101619146543419611335555174402229631249195401924651880176753755162247273384936494607536718703585562764882287401376580857571080625878911332896969658661656459041197033296880049536607509427507354573936398621985804563524333498943578783906546890528738713896418406397500421763447085930400501654965104818246508079504359964286821191299568567132742762628452005313104547083035981109875308498616361440930363945846935927196626762512200868481214920175176093210427075454463966047542744164477167050128624334703129828254016358724949591855845338981068656111362335862303685830330173970387278981129321848461430255103732474253289185374999411835002194512611795396071648587623905860726174396752702771331112554885342039791034744085371124684307348317140580606698171987166363374588973354861775330896321357521445043024402334773812930177811625358273219875035051631751469962305338432569330321708303802416297476945825376384055594037951430948410325636964207881598127433369993545752177710584615729814388228756967263385981178650220349365102629047366303552176168426867228124410720514493306190280630728909941346183361795157188351922347619604891525269010632818013733438590010291561584616766037999637386813352649574318631798125753771449311353806077796190091760556163291965361539931458098936474927403145239464874057037511878407967269238501603017690204739058046992285277691504624375696499923132200811570908636439203890942322269320333699694186859208548456066218636553863284738317608028085858972679989182646628581719630925051354180613235001723642073547175394431469507525872757429088022643909974062164224896319495388953157387778003869654148989540573079869640066878302958765472603512052163075962494397282080643585948127517466112113809697889168966304796989494742038612266413516670734533672023137695105990107859145131918578529514478739739588416477151601365838846569261098302282967436157698579868281658040514349266311050078572284951842611692683224345446399105004318440456775295344505241774137735953880981353379044385693861338571455155079444671176530437350025109150557724527525088758564097008869433876115910077697442280652721109857086037592795327114500176745968239742810592689823146605584788387874760010313434724961371944935475638899228073986924660797529082180640343431920859238966420801673169946011200992481740267587067603545448436688657043609735036079379280622773628220047239634295824073038818085995590623554583449642767425816695734268329389575684990508792446240297007220919396664819346530429375732955704056482470018879157654271597533765686553426733589154779452530213528723947193731777924060313459715216571107881542145289991523510442927908745114990004774047465526949268183214327638517209411896472539715187051708177765921536439736125701756490703336762092442330378578189095578686620037248469335016921441265093046046423293076540805322298579365946427800249235781718043853747940835893713586624377261144270843736462845279408491355145761831704812176016867155419302521485801516338967378283852834085971120883085686332813409512812193731403637266738448482072961355934141959393427960161187602391175883657066599339884901508330220677165835831963923023939157718433364352430738148278935854967648783158497197329503951983655820208576999600640876309825394696064961411640044129241936419978385752981796837138597528145441803203336037047050699347305736745911394102074758067878741613005981851820183774776058624519437987190627495807122512914102244482272036786735880472292196429017938710095741058556800048492439272074899866868194910670334873861411102456884098912207678370229100322575496345181815909732393528920508491429091566007753722875802821286000153316255066094603287113932759914790725086255017029526546017232795028637731720370954432780194377385406054911741466464015683087806520403724855193672380903909075146018569901965006862544065880082165387245251033048839025617663049620572457288465540784463951873416004245245409869890268416992437963179420010700581577980662503851558428845281611374818917677376721771636137402025380056773244082470349591298286050088344894758509025284869656016714316900641265962016152218332302321982907063822377145840196912166036157511148461888133343460004258710279899618167335214809981136594990247860876009731960626594516371579620392885990724174771640732704732301040858229258587847967049636205510775316505604184954063457509152075177274357474077119230290722956879444369403597477019287215518261426822775934104839055341232039810680976688437934083384606942242357123670558150949587869992698824970876590096917088341209659893493255498658534822775903081405480650168412247467699005717439135199408382846055237443465679662403093881164736789732680541507726918590803627764524911170079934461835854753245476466087599958481214934173398694265392071387579799547280090255093841363149864641667874888099002652958380801673269786184581671019722931875945887014458938343693519329663570532065890206893503048746783716011348664488513194573432691078406178502945121638640020502350841747862332153494231841005559930743537234896553733851417668522407714119913235836077478672103590384447801983705533951658769951206559400593053709829234134250975143955412976583085396152380939988540911801628690352858738050695321180165965901132285473332591423139837186154449132317975962932198029989438771241813324504274754690721278465852814969895824839649354837777362549640151052251315733874986985859708559631206490120122072904798173143368287520487704289781866141728333076333613711240797651672816545566405569548275433646348033888693045679713078353362612992880303376037863045672475058762335899609521628103525837755618876464832005301076268379101949393421751756214370436906422081477867344420672419640151245392404202280287118760253036716959363396481570695320336049649247125825161663586268110314696633810447555881409848414365894208053246355460953722918044530699756682100083941891668568368575384359919271192454681612370691677879520806165890333574290379026814496624704904263909678918165660232769061564881283234105167911877687108979646910520063514038996471146034739298008330052421610819755356067575166726251879397046130544457502888963688784536852906750665729016277395148911500594329343080436065455886007274114992524949775043481078460359209319953236460365841823459566491265618144560479276058439154428094312076021288466082706807892810911649200125687324979002096509359390928778067619691542875638517120049527250024902756912006671989847644575652759046303574032932013922085564839424128486674203752657514646176586296771340878556908270583865214923844409820174780999016478916099686959827585590005735643181889051940112324070166474462596794710706881572874290409508653408986576841925069840914047412843621770825340595518547000451509755770846413615486320791792223805672668892475587669715682683035914729130447440621969274709062747229483691526408349870175022290629123815218500210880914455042104271636488440687161503217526962103977288362033232884046201310966999513313501932175907029705707264926061887467431419851049169167767052422446682592953006773808230710534688720445662506554722627813117251660000787413313545356772886400051036628337118912040818715782326344864534070723682932644311947957281543722521734108985224726583494332958205356534239665142135698081401625139150920191048109769479183885055306666838318532619761281413980429462355033976032852912080827156676292730788072527549189399363201769096358784284397714148694296923632220522995682597843321716185496611587571351789800636408894533024783703453900903795177613332402897673177774466344013210959174001847924963856106551587170601859615829448800871794794353837113702221956266148409502766472926601305458548279280840613803633405234658748433434365286501654302940795604125293163170214713445504671386865314327991516870565309704051298197315108920760015660052510262007718116807964805451566626242811968261647564327907565734984713894738004018916777279909170642102979231053710675521677755544036478590777481670328410162422755258532170367778525566685821015555075849599341362519348100827865341757813793990811101861079816261694590099739958330687562997757684494636969805734291474124861996512028906223209737728084622022312418634846520099379718292947356257826336202878627679247777034311922900513626512084400254823013568424476723891324879271955633756040456586215170841036981646616796847577167482857961583939117876382053669353123085491230515187205025541308021685081395054138307534730603471209863419498656809902434798570417211094779893281368037827316975035279124579382965538975589090865592790302005117303498048885947196903292225859621301577782835249601214806775026764452789440948952270646873279054833469784314116453471006954199671302317488816531008188016171839904250850525465540140456056930733482838055464245283266571890933804527537997770434490079350179893487633923752484705920908684156777253526695240479103841783779270227173719775672274833933692209621407492482169519527713033745032536138037578654566808120141979963679796976007753213118728941718584380353715144952596350063489854461631837108048021825274643119487562161263683780511148775390650458530293764633920053121960024242866646903676866135451015694601860168372760458404300141135369027005556468268493743855411620518096321196891289798352652596879771429155174565403996881271152027116207833147181220090904999617665022917367526432142495989204933701087853193914288776812913015855624656003444716153074340874248850995230544199179193169000622128822916504529502706622854980273517931814022224599652296166906852048827358860266637998438032042617193732648577157204408670817084530380218568923420800736302229521539331280863337350596489238520252682768108891378061186509395615441566609369988403599369464552093264208445021327869604887125900204860559569896869677590656071432219904286841203055752383823871022573740883717911186959738429362664185602168997249610331278857791572871903097839931261854697756017047136690675896523293015607344659575562451382791845876178368698545322928483074521890850176416945201871940928926727032249560145719750896291584421200873140433725753865256137362119181560922372107908786147862336929811797378088248116831915607591933393482624989369586845267672828592015789270713301390572708753265065870484673922186002128987880845481718602179024322786235303760202383805293853910674325295000339811050622346968544611917590031575234290137035562844096306627681144802107330409968757700556507831296314978928462760149407581487024344020934056208641478647226264729946606673777081239378531870334982695703307251231221193579893121934380808034889091179976944299375215082364836553511828517643738984092207020755701330857507566197396417801455370352679658552766314821482788929377228785447839907640827122657482857936804868788747186123466420418504799001805879336066384711042742964155213472536439906621387265549466009888272717720596321488117611997618092599159235722924485507212968707809129029605084940933155203207728263932760907654062719856919973935023578247250600974923149721630111057831259589597664884258361762138773326289406499998448364858441101953355708726483721224444086954710193510672277628923533792640799793372024389975338539922820207029255041007381770077727786395211192807265106384540140098241941699712177766920204056772078185430463487226260493832431026503171547619550453862155780151571969758108905691542335152469593810202864121704853143773254093737457910222649306912561745908553783660038315890786569911751133566343085271987145623590248906886704558853864424147982542550637233007072072505879079068659626472012200672317761335968725531419885753803220960080389140219722862610276619866527575300496103628860778932531284132635980859396885669621756816651355147902755675539157179959875425552885461543587893103448183050687887385615204479916897051058967033510467184740284939082917478543166617072759481943950238537895770354321647257640960164804522610051751592287794951237041434979772024235412182939468494442531826153362363029901585100591762233151068208609721549809261368290309851485419167891429918224943320835960764867399746090377989693427710945930124803694766892553251573111083679941616627395226953918213264707275935464146145301576677264136817773642987306534317785312540793214568158543252589595501168595322496551316702828920271042922932634647875393724716791204747584778882934553888909935218179047599377721128131336175401572322352816942690470701964670747203811698052640652586235180823638141942876207105375778856311648977594386851333562783124412286594189435679096405363561459295078287474777785331990772707260313363330465844761512456062958096663215450867748015187206119640757205187290326745486497497929303124763840121797187470055121467622952139288990594141887389484081013211902365828229125617189989291620001685113640183022334699035678723033320321738116123404399947198614713910082221846459262459935331522695829821223967160631388883125507240497893902195596373555031671372510888878900243939885309726013217616259546159930060420723128040645147110871446996249691927534800682184937154807864740453618672355223549134016990930612145981991650787043347742672720071770340189211900521472104531222459086564910175066541158212986557808964740423248028998429825654691308762599960029788697607225275696868787141659651289900288300429322673068818170309188166806559087286487441394323109164300031816221564838297226250050555260658793851440885781505953509410311501769658832557012628882540385225436365063546462768940132184380178824900877958541405699835918050241550579928120666725903104005588132492877999470269476259946536005171807808668400818214780223351896369138186110149663489564929106227402778810479573043732800856042834057686120276393206143520534528040387212331090844365592842460720662732673667256284641960811243276299107993235394999758168573873973778221737657734453155934239701972604388318502740634212559054094654263624242269605045444566471736031630325680657268825445027463703213488208104666583425697679482893509749616447851640226715131137672344645551875317814287363916173420233170518062100460644665534485931718663979191169345180096405175036028615165686417982927565543105205567796231877014217428012471221928759501258609487066489294182819099906843984136256382869703399646565334715644202369713432405533306373943860435964404880715904183889004541419627784702746082724253180535681065399380770209590433201183193643564326609623289979105504348478393769379580280660025986680643886937046927376149244214551113502206462273139519702887474209662401522802112383252084277375293126721180621270262897093048722513745290706967480554537705289387123023980024559393722426851059288338359233911247471348757681024847262413146901669308203400252878440737528278297888546164241416243690611129646031952029330509229158096569965329935654013906050280962381723084873978885814642116630263919410698866360513487216149014649882619327277189473229601688841929845928977166565260237317783325557614626243663475426038575394744782435238624181280821820086936963036164198903950935313902784708171983442453448949499440089303812020783912446547674540262887019617539385019014560981460933103025199038676793219181182372934805506115051664830697349942725611303235785025585434447655971216790184373809111280195012361865117197803959527590479197774889598201160996356825323812522804326291082325491474176492900608790723969215356222855993233404280467861560613541877894957224189481445784213791255377864039842608202947042217575066858189798741712348202017355666552459340980146165788198077312794550448803896369816946650507160236119380662757226316206071419345419130015238807809056502870518982801291959585272742555120011870804165745645467466525028828031803415209575865298912159492960176063517768917046666682294092517111987261430174190677557067171900919674924511309518717040904298049248906866028037651765823974261783743322095484514228289836747591187801922229562091102803745795811116611478450519369206570624396587758744412476072837137602521181289074256565167021449897651122557399685223001124277700079101949502521463033265525563167417785266184273071852837276206344465552886450435489663184240469642886142843483223644751670780961597316046229921245753337326484900641753091507702010707231614174225193915259122776094116259622427589054598918630210597232847893288102354716773890102813336844970286266179561743794907285717443635452738457436915741275917892849954085644345789580361818962422417186730342922248209358927120830953254256128379945332280874876122150264500283868381783065984118674730245717249219337121169880374462529113360846081777587952703734075291030207744451807182106679866425024929462084364969557937540164234223384807309385149117444928767620476748881015065381099510508877612782043710021103204801676075064506118018479673799646358768191252020198735302544534862017614574561615027026392711579132536131110243041564706689077978981488661636502968503159384152008089940122286580625388962689482627959134897175685558656794266162872763895792456439672625886879864325715756920270012036303155510246295047387079345162911621501927097606679283807062817184799451170813615020045576012204579358418725385847111964244548091443533865525967988995210095010477928349176120249303623063083284376866497615967506431546987731344672738371755418433070446103453036454081522428689082199690272921787842460336114769300691164840017505548989682206232603411149023606398727112334739078064721350061516519803030793079755689129373592555612404243815691808022042980604764809109611730420839688140439442578871648010778442875259320728650236180753888823758413534234884285352090596885507676995216162219055727352707313469914045473355777845982431369329178593944417322293631912928889714196685109271221660681176505315368114643611055952922876485820758701188488005627010623261575388704901152547497529063379840228752177975313970171951207425200918730077679148423261245761045087893308748635278835900194052337612519400145342843072232775073472084792684720703154143393388542712268706929364513463882340553758528414021697040123060452650302413953889923749883126161363469944758538199109213737540738708398347158280229607788724388029463594935020634658587916336056452885499937384319752242894886427262588942977073523355978518549808234246803472993195085772725300758938621147221196919276358367737752563953116130512012692965932503937866169939100263615388982904213540684767586114492221648149975310044865817760267182579433939312011044399331048175603074357686163433281601327891791686797886445892318148100551865915617529894430204060607630094166725797136253904773311402442651419833501993065932480126580688631993845420381272381781857342835443815989056898710009569351155386007542602897213269568036590232098062150028059053250269109426628089723180841734986372180699618145962769104655306608082345163890116343891057591141056987045580967766724303601043528648815920594171045002035590046730445473223213876462699377361020748159727990479694081691778045324359548519758608708801293610960320403523957110731711538939265014135597793060482555050666336968620284974758898123219922714294025684702141124366702727912387220265112293468376806959321384067752330288752677866968510250955984014996268938739056837170404332591179218657143353770289240777159077081546990496489113761052530678749138732873625453289685589434623955490879962709171681927278039662575575161935553779159443637063641032550883596865151615618555908982548876097701482807097801069114141797301065297063131969532729606005760173100539141586471624457143214919431204217037668313451183851833369989267855459215705010548136121015958195931751680342262266556296204846286273829274748492892795187499746768647680501584708975580064364171746544380155471669311382323351475513822636486735969696927969978290873763395842267784722071894007168902387027260281638036241307694950589092262092181539029977836237253818492802528023663097071076303632370943435409915315503870760052427259589982093927605178698386628851970783844176633148248603523844727354603611976956899381574883872786144662812010261840565005101425578652360509227354670310484639058657029815971294781518920033343205160027658640607445317323890967971990514948147483761116824610686153491070868595258037537447717239708275068359937224942683563132415469597740065194860206498674296659982697702470793358690237626426897197150213980638779300971544129860485185194496773783023380257942271059840955191405257168565829152761571892429593485216698609730825408139565885548747575440435216286729953814032519366020565539096213802257471705453377970196598895398839308604055664005715475691360705917726520893668967009015694678774820335783075594762186004042548918677545628730726847184013220643194570241419946927769532318245476871146052495545304565186704819526808800296367575502761539128454815960783310592722605261526980122501156577097038857172824460660681270469365017600619096683580242740453705886444482808088838400106337081596846372825453900846874132227544896142654106373649171835449615066658436700152385969217450668609779653467271491775974233383255120158832174017553495401943346672678750760076184371308635402483046311069378338297901784970030773494521098546778666327717285710785621226192030052728682744910491638064541369771199842324218061558322451508105782132066471929552149239842852952499227695557131216195631639773112809719211915474749494303157881068541964852100956056498031073168564230907323946994759620994057116391601526644183401736550788416194002638211126314458606572665464354886775663582565320260914404357483982821196101121182925461001792132244786890133572496205669677908402302053350396381143547842480292509090626261565740533577778516470461495051170087460580005579678039055559992240836431477674759690150342792117509206905959777347121513472383411528670528260975533813964202283233413243137640543497485493367268409681032580319055148183249815627250125347697827412799016238253140141020226976075003814011726426669030942121086019107091180030287356633717914415838009265121820634310506850659024037508608767421240651157359291042651211185155137802390191217233496981761776152296508536797557212756625590111854669561946149403362637535750802190765163979177247345533223917098844627167240773291877598144264528103256577299447307556353540803502481252101371073065785371320963442036669865632925016757781392046091028210197687946173942045596613209683694095895492495842532759967793165694768508372956593416746408151865205057311562201155833342524942361919948453867966946626654371609492739656756962311348357359342464029755549148212607844825727751201549292635181073885482225923822433127387122972317967472000949887234354983632314646359420513216524518360328147446998911787560375243776930106906167007530376180308623466954125388269253539707435254482746383763910262844300274123080799516428794990014833640127255637146995390321473081908232910551385129720826473219507878487726339288676557804946973410157086127029672240347526145557664208827434035269882911595171528296280103261593136240074323907076655762604289735317167600137094477034034072212182362560833230317291918732990829716784955074287491932899703053872311999200604977180717387193062165489679848423261085500215822424702894056945901193481398638711571307073740302557608027771346484418637635302159956401727965893910918132611884434503167196938229230843057032151866716991070947596352503581479614335336261253862902472980289593546406678191729733758348995412298294317816313436930578239324760585261948404232546202212197629984442704111656208778909382521249235148650427585141022282189272043240006650618634874948023359941374053232623508404362005460193096348270533860360504268589077435254587577659752056390301941725515635280413022770342540272645179648097480444669389006577302088355245293656193530176666746524100975319653169301263327858630093896856975155409365443042249381017778492247793285580015820761310801011317840319809358483516355613678648240536899031254520516700571528998875251078473829328713413493843593333978635205777702962098391658652669123351186246285292907363029364572581088558451446752155486036532652164341135803572261769911239650697610770714506238425642970749211181707218583425754485221094105372772139104076173325328953867829418163594400635405969558455040492982818666961470966028511940142214607343214415465331128333132972265276017717305438668030660063119884666886368227870716761310080561880504352560125293482289750352256000101432230595828833745465378705274534619246357113103474237578266096774687099388602528692480464098730357926586093455121510291058909140202002921996320923204632906106614304059391836260588634782632959435614354416843236576655416204412052465676781450112514871991207247518744986978580001727853468084515642500357991222525719827313770903595024677693870479860765654996182850394140853264567482239577379702370330141976304677711572261704363489895686994212052137489951338420507865357867305331666710489295263629338842983418831128308645342974005318448658967970393607316720770034107812098054990387611030042966367861760731306000166635969441822142178393774088004351096587964415625686252545775421799735967439319307446944063756121834865866255541802368233088855332571311277526150995322738246060232042661050553456762266420076402077674437898628370029192197841964700075401348254031436745438857546036448012799323151225682811581268832916760336884678954664529210164081662889336806386948814913067817141991159268201889020439752018353467911755916434781534962993381049857976388799236830603069912413204743801337895239517215237339733931187096778337432632625880555721276841382757644109020989048592567244093652688617211497075336024831888872043052645760924453661910354415239597407324394211322955296765772631135056808968965444379757643791732617044059603798235867778139219614044123276773405188284545922531358735874302174395637822782005411869978160619892313577300772895279130711945899452889843315014777213355679272724595159344751996408399175007701515558732173682338933301809968229305717389377728195848063455232856804360195425503136006269172473925515338382388988502729434428124278506707686154684647860068832069102324791372559505522515975119649424999927530839487801503920962745113752248898979881528963366268406038482676186672579887086774450423602323012517355764544697504762529538834048519034969348608415343657758726963516413679192233682646935675574658824565355193644735014742697639348041979655522876098155135615558863107157845846063914977797857724339442001987591470712857876152897621815882816093279440306125660518073877493535955777082198283196817264281938070977253593340709646401170025964189451388730743798846529622576677778006782248309999220397753130256185785208087497903978464704677758262990504504737633870658665427469286050208261750411566271555616163737616597225997209282484275225618399264744815887798197227341439593087854402463265000977170934030977952001682754582556398885913818143884215053713022650793547495725727518978263294981021162574441528670509210685533978147136668452696008001232070747123720082126424821521540613145201733894726387704567159150184679098213329208432734379425918624412792977748540574363824327500513550726583151180352991515658471589879337063068228602932333654589501846673144074735355455649272860506883138426096724909854895955662582007644943120603482129796375690074969049852489253307616914165005795533910732019476476153029921807932355979138484711370201234779668045711431831272541194283647921081026959554745676984374445393711945201679640364014237527374850973726150603921083648085873480637589934590104502854392066216163710303901312506400100729503777060610583702607928240098486438842217558259260888081102256411626641346034710486385067564337316958113770077100012759891667912050207925393292514604541132033364850301118774432823059499222500820295810948158279249018784010618256892703342747783271844394417471503085566869700300442097197023213010495008294046516134520930579364114722890978188668585257824154190330472976097428896891357450985503417333283135316005774888309759330393322146190268902700085400534645275485844322863500853093312668542481996899044852335051492772687855197745172318269526342834429784310097342916337347926538147722047700228887169661627547013667997223364869943397542306059473888476594632255082900166602813693878188492804603209597965587974434019438562973460910377688005985747017349561233134095925208511804890260898637537078625695085878341842651605217181487550349298346646168828242276568052484931602219122421781990206736198418673477950363616375593265303836035335148473915229708487590374909748190286431911593055554627437682009289295990557285626913470093129553375504522319934104838860541317345100673964510613013997439744197958563601366588474363878957582341418664730118559164732882475337548769320177790332963499745764291087523347723301129685295654292452136429274198035839640472778968381468574660401645491272182021377746325850971720776144761323043174271750117576709718991739917036272372802110468738857589469718777675168583466152054654265501973084022082680951351447249328098263254574372269359831137408573148058104624669032380476908807150146160399614577347333246531679553069562149348602959794205217001336923331548339804284333349750474780746704800914208195647932383789833802418347372113640691962642284830337737181017755286637310656094159781810894021465878350448484452952135273514130850390505973328947133254479688540861911203500277164202235885464266424392695318290925953097625391458216568128290701086009383344667153268922530347369171610380632160440601170458926324012223908694059831628418194711140679462675324823266474629852852827997036141586115064500463608533512823485923734687288803985543018105772043754534498856387205634809869066337709822697326168669585298763465872781968276470012916355008702856475298026021707742887349354361591534386694034470061603865895858560854922635600854396403110896799763638454079346518880957041928372390667243413539387908398390168445875146198297874113133885103246553328033123551940373826231850169479103512185310573374722381834267121614964293205999137826529169634144006786978195335396883293707130908366746221485829407777435144547285122561143143125999179372744322368054652212454038668222080907581067040169704146362259803863052987113930097953174065399827540963207113722425670266602087463867809626730777757292755304970834003259146681792757056938530371924483399322539756901563103100011904390956693683242392023823704519904834588978511532511992377488450882730290218609655147849757151363252280268443861975894274195220092577133538405199818532644187945834808361945389620244479073687041867378930140471079073561399851969010780056300133520949477428535736639435108829259336712301788777588671008575616428813632673441440753554402155859999877077406773330994923340338254038830142929432201505518133595452304131178636875354483037792093349148203064571488250242267810365681688062305808782826245355014420390626671602142857251871819206349941043892020884611050965036187271341569989338365524362346374273263038861626476795108694041095782779095864851450702278738575551403461153111786545184683808874873569862104711948023701942063422851222588985359552616637209193374258281941015490706602904416097018507053838119880849290345891895369988851183256806846619033329960757141547030370593465509434909365552190007910899954920944230246147033632887211628143322005983420089119239127004314696207772368800147178573197881037307825996456016679807003393395142681569678541725580251562049600181137959537312825821327205750182999364018748878049365714705485263953054113617527788521330570957656626603559338203658487571844584856841962670814473332895295483753367653362153747525290570194115648502955752743022885687607098847501021994520481987377532289523516716420304571028916572110224122176675655222685620600612640681794123734516395478570084176612599452624980582193021926840275051332327956514771588435083657534152879689247714864791653484406029616114248139272383036102880310804478316991975916906875246070146593999832345520719276743508522320210755489460713463780817940422142291050245323090253830677912981607060670770339508616629093121489158862439216929101497744555239320600105635103813291843861002226870191285255728950481516493171753986076037836815764730312617550295327216724152445697760423239164652094436925992588356237540898941104567671865415916221737660675396803514210797368556465742508276486894017317347652237665944413338896966314282477752534976541615723671684444071101637586570756378193180043764261055267976447259973679698235905577443465783696840063947262167676979776578094595996738940943920924230195591296051097105566530142994977341542233920991667734613737831278701601821722980962999882770356871445979757896449987677187875214898586330229163873267275609496328457025539092073382752418419145336697849500600493537275179867164203256593281227933183910652283403972896591495620625625522464260570102049741731988607187111821329634135213174052972821203971007115574128954113589141994658539308058319298944668830700208488121666989805939700672537379694308794078023779987676039694281989649144524639319427363334134517172750905907216607409359775783343704464119060935649653754629283898256432019673397974607329786608267449740520900918588338905169182192317244739031686847039932344297780128242616755278411997533277838125305989496958268417152191621273827056787941983495028837596115006575865061461215161440064574003612645408483122425147178653491822180886568261071960830279018860844826018196298870905814837177548726234417809065606425423785033364749616101356869161294550957396945053749521859101210221045868161986799569259690776321220000951610077615776165580768003875268634943787495080020250117264419811124597792321061287262997759929646233122447756299068940421522392412326015947718951110242956184919956843484487993498995392770013298918317900375011860157622135978459617697452228591871140033049940428882693377952652113155108903950526462646577729513916796882552091176501065443089186142505242102143945079828531923289043180760128818332308960270178737730126426337990190641173195300129650996090329265259254801346533374716232749132123417140496871500583191031843468824086696341901443605861428068588419182580094054105043818195291689320632918760457171890211320191935913217218994079045603929979521102750230622094438189399801958094528123643027520339367286127503792841774912013960591739668460394553790490357121640573367362984479695264330825562208775005757498810872144567770450400691706067046612269679729549408805076187242581690346237881202285422838582707629831432486837356995573643563166612520590750051220768914764562776386815889376833685150690738550985213891841741938997023808774007305407834836060000027501050922882057303216632986212838751930259387995519919488031064129348435812069744910942465019039573315598710815439482956016804469406463317431840659873149323625894906018663773542069763720936744447428130271925301595259362977642407639805702239565740308300862808381397771411402374429297158310700833737314128851722106664279860506428473418151419431680946208646750750950892944024034035833064525126145622638794637768340548742809897104687086051620260930894171112809599917557214966732256520047437166858301540388155760411130551356909330871947042716600907808916074965558120485139303281911285617273923648391703677868610783304654489604971294179531126083141106820449238689515096737880423576762731892959737069064828701470875119105917516261000642280555188854065763122957079167539541392307918639353001462850583252049468194238560646145409124019347903928129271536140665800153454039139949909824415773622873418069658462994326705160743816523479291894805012380504635590673397270044679568331098574747051022116334449197877602278414805759229890006076789361586897039667124005866363652074608252997351996635232851270980262201244619904496902887358045735912932556862078512979250178329654332523064653757361910252923661846575070102949343548454519367375380545290498985239622151021534609256044675220575971070653051043229558750065000476367875275794079397369420289498410919116910638203195876831421009004159302829290360523931256264872553772914444316365834961854877449245268964321751267094137939825372045368483624901949523214774434875653701412416636200933860563639738469241929064787234791127238029028491290875210537688721177644944926091717955492498279603617275454056120675549776030007106057917796011498963788072980242542042509949487634422729188875273565154111975971087674008469415991493229215482094515914777282212627048953587483845875895642892257130071289833435992602756102744627772437910205143148847014861197235413977725975152536493640042706287935345783312907711503084271938471507497111417681499370453197745175462282651336171216435830300421142210655308693151678209402509663243409104368599699862946104624904276737673784331647418824270486818225909312120572615076625305580580588697467746027222696610161521132827033925535028536618870595100582434206228108381906639948049795955756203009183693560148338463885687995852935118744189980596324957391876844327303083503391202864655338324534246848470981959632624289037534710163022102511567724023927477325390182488565270190859406546768400026579128052040535531395872145309708879768794433854432260099710328243469521757879915052949698603241947043170501343004453030517495832364709506040171486269839105644506773318073272880376310551248541462859985795426888982905507159586221886189455764291309624047949789670412412947521193544447420584474461666127664859439591579148343056864212876145044145247229565736108916944202559733513772647405929670313645701516681040256139897746204771231201593226512273325874323369760899055822615325187170419518644634954956378250158641168696038228447820851894105123239086021752975834123930573844783499690268390881860228939293638179390035731227559398498810708801093451551643318936949989391030207474286857884691924859611452861447272040006736011167821412221117699458559721533999184927803147686448544826549783187312191179007988650836211252764814954691232383200810264180180780261411845249055273258991004099568651209858908733064962585998826382748588239764477858580928909106034972062808823952526858767526424409208407329998058131218483513523638994290330771242204941983279021265061260924761896882960465100300121331724751101887147306830443875450531947032906945708817448885758980023111664121517883163991920388878211972557095773171570479476073890552310008647008925482251852336382648024201742867912198775559653708088679329669831808594908839919084552495170909788812411733517613480475077399555017188410424026932074600890609581287608630525500280163452017981414225594344822858516705842292070283422011198963188589843591535999114418921676826492084136921456860935445189873884757469761677191438085417689978079505819944277593132247705095352027831291452284538569366749551611490230216865742723518962644154241353032019484229296242782838620179584506482404098938831556077136202643857447850464597053225185208208065403555953845269488982310832994109248850587602036695051303025456079349924000991240305294414032973707257496433866070095452716078332650078196541679452947428237785293157642949154860745645610128092073444576023258430949590342002296991499153948863212665711744237894781108704347845145193085800023374783737531341592960501538235438594585867505675809485335728809496595772788786313497276803017292910052638968517548056272217058148195545426671587198598986750807794611183361740436495513212471539477409517472617946493833828843983608790637087319513229157011277202505118708498646059331801784534984149617827921222490539950569331789784873726641676861334991837706444351045368399186202185993816640162955917248230953118287290878185966040575907399687048994335525782132633573788081159927980348602463624499987818651520625551021591225897338061311415900627789050395711868104265679494577243652294890914315637151311683472523123823347775381722346093352820625282679597133713614465384524546357733600016289516494478631088674341684223752618539513959523479720078305957401645757293136981789496081500147091722119666725596553878704221059575163362106282212783532485122292014004820944585556426116904454488319872489245059569740149346764602618956482643748144882270931029127930804228782270680634908102569748103390738526791837401181064615746112840748595573060848033204362650973341359375054757926253333950942677302970861873975481169647742935114671879286944055808782816817634301373969597785970487438394228708388133632376864531368565663392464239895908519657525544171747463653060849224697478590557693272441414488773862832099594991058169612712378573085277627360558135765231933865462377862152991074563234378116473607160625833128219613963276675132702525050477888575055076869245777948619683974624025590714574219280492566069037759648776595614173476773076907361012049945560765584313350822746131514444995728459948051391470210648626582603943121123271847806695002657908589930763249344364549436414040378275267994709094877328945975783935067456096767151288422044545195273251156288355430113421255725725106402289303773664296745131749258051069400987933655998530333656476620740646328266142439628958496623687149300722937903982869909078330528582163640424362055028512161547181718332987536758692562861925644909812846777800482425225938644305621389930261813172132738494764107827068300631835809514844994182513329362129279538703666693442841776105782797037558704676935585620850761634633065279109593792122446179752640191015590168347579123048880602729577448487909446846145872558360506788479852860015792574783453766557354192078203055681438969477905305975921352272848204792478969336993659708661940033559412450036811890697579689795777260555423772495904983775753964056634388021762464818103962093527461563805832307662898529870755934259094514145331537494872266575163351087485175476976052608329979290515492721999266466050602807551526228024407234242603378996606346789285695700281477132314907150347190224225855408202612139260945069182936757029037517742213083927448787662514705558726784922993093785201316420860027731106610034214355350318767945088564141667935232564707375208218503617928567457946056672885786514712311080014398513906258591495278244269871843960329191620889274545653501462759741997595014044113808141723232213568714542048904355838803585785072347848629539280555659585376282754479292168221018028706348178588873248321561701013780136872267457886664809354720634285837452168173685498374445062534730960157559810025750448818556447277247043555468981767138181441425098000564700605259435336071297398633158390464528458016119387685086496696016821712487371189105362788025786461632485757573444009678641113830796780746623963015450063002145016444715603350479327756871454288907947732654431677128446842695331935110069073708710459092435846035396417633737442208154412701408950960671063035778380152165924183570739236375962133191635689450841390738831822708569336200805221628538449442944383653774294369386209689270077354425587273764370547731629252904497767952736610218289102130408426058816556299479746366440620638180575135637418314652495916855107654408586534796066075528347802934789052499933923481088315530809790548746954272271722665214651430976281647161904552847051966311589894460357027902156049669531827482940712635155518946601900068422000202775932215849194413901625528029029378304841692812797943729622150397119142691269943748966398384410716717746387031501829358070299764184249386024308197191009485013963957288152772987221365036453067064978588120663855323656586917209893964726679299273417620557966317432228102445348173249087656082161062247785854553318254491275961919362065064303688949399149643185997722071203040650414704385471258544315805895081216989223822464303090468300080249048194482586647177906031165325225969985994675921277914840391869936831907088619523292748761460460927889860650580736243406098849788587953101873030009923378404236502134558543157084070148700299316623082767317858230756774487138347911149123891243701890363657020395312857265948181970967028567760763645972698398205182969263165675278874464249661998420405237602773790158700604734626173251884940428057146039497646501487564995365994537193641493623683168919605430945471565835416387550684166211613708240484327094202504321539624469971223355047820354167591436288245251774002586323644436299814588176308599640757047385927814699515977777920689346067122915171569164927566816450273960210204310211248003310554948564042480264951920944762312972627916388712404628156230409462024696935137088113809507597277417253188664095748305414723155566462020120442894756295277481634388116418974637880283117505715395278393349479943558678985446358061064182010421004587653722174719159399826747694454492412314302287217248322797354981787974992873889796353933484605606269053085003588910565647185938280795475110597885364265849426990977590459498241955290876761976675524614749341941018383678737529513875894582800234356646712468772552944065389599184804525042905967318178544153789088474747953855106170276700771296281820536166842503002768404568199944597810861212367497252231430864423980188565940501199221121166497821174239195989102323541208289950641704148967032467222618713438049879975312543786046671660664013337058121652430912344276698746592054036547503539781395920995414017863139872680472738800926215316278967396615279622088483591888380362882722416638092127076727954897613101985326128399053690903769356933491506327853058253100122425085119736874117678214759725808208388873951395825568115800727297356390420380708233257117222458635690210276810806721210442262800091206257905286566169512720682161250591415478263595986016454374064203980893570650175969961397920126325312477723177517608995116874209985457845123612356451708144140102480253165562573108854538782779066012745459804974498687249299754596068320055095860313402190985196944056351240441488738276936217509046504026818854250863781746924933581072060596372046508978546963702863912533963061569301860871124101370650490132014022774928503320925310194184546040375385662463133210350823123702861778622376633693631044847801164800641297176017218260813650540316772947743483517720250219932317229341272370345020195704645785654518344719498841034148313869728663263455734451728291888794304592499771925224226043278964611481176589109063844784335519014566382502053118212591796548076351767100686949330702327176899508791231154115134711001133893993512255373092479717852217998870999759070141736695390377139582157584630464630406027650740189885533951586433121431963551038771582901596687321382742053516032984173270248860899625378868016132018892412285292416609026603800198513603011326455128878582569521555398389055460146621160002538612573276854686120407616875868557598399696794681186038309662132617314196734867127793708981408757501809428098778797164728530929468549912746659599167288452934659813108213280071710214860082150378390225209236603750709211407378427471876147128953369329026288278561651823319366947115173325487957797627230530131609570609013876323067939711772430135408578075617801265250784453314185518713610683532623967219112217805630926922530460067029632485941091657725138826941171768730599172864753111830166901135705450057025557641479528926027882023979506998080083646851666834353541247649498651173278045755473991547415307845875663106114131151580784705815246489645212798567330261053442828936597640135471774679232857377210788106569068961581236351028597503005353299706399370235781008057302527146886289824170405524224288619871190222147551067025189560959648147108440969467817162893075540829557855633329186362128483163954395485449328119886967428210342803251751823158958103051123736682016175781871716699843950775105063335318768838482472212501394262524036529553098825845104392364189590067289591600223845936070546481219574941965163432833154787774131755481613864767355180553478120836651681074127610820363673224270520611633761738512603671946457013088521254660065200381139185539492378637624243390766522138602359113803148068659344292941594659755666823902011629894473827514009416926610864696462146964605385734632425083496728678113932037301869056529061948117429818024938056553807324858335444838928744599825356100967650856561209523077251376410311502145969688959769851976198872432509768079282644434347860202868814588288096625208365459021529045303855610179680400524914202006682833929106091916227615103732829866515602980400502353736685199689036991249635335989395196362714500354335823824250798194781023775368751802542076381912603021783264295666941224270382598833039194455555847966897807434730356385380823275306143005669606239779672006959719781382150542990045126309800541700918539749158032000585561546302559160308064979664640000035959537650069796723841693097311656445477350386773823917687924414176082274178285003573698425692268900788390381468325556719834829626434983572482633472055004455334345890509513707028715566519466325411195048711771088151775698741064421431146680543820522798411071008890444491052311007277712238462714803813946441446474201813243541350566022760898171149957213506658375028340964926869801763831677817371052232045979100756298629361174759976971974850301354524121786130652599781885696434785848033660514694176901062621642379844990999084984661817513881539963513117577545484352068534942562091214949389412792870486416172274592402777738521438751490228990096390850468897581796008365221036419314597470864457976542787863324190640861700296604211417144328331827784375496499950968830569645797553173800340665791647819657675652639212319232758138307365568079053306807005158259988435955906589004993812837949903776104188823383572461766437577130239866154919282214073381344131906057718369081132413606194549401295758760565793428181212027262047293570725909465968846188857314345640209129261807943266541317529743819814747472983597808512649452073918561662949308542239429774002620947955058944497810662452576639319946105290636634258001803835573804998613576109823050634326434707418960017119240701870183072953750588557581825530585560540406062143818814887084051939030245913499484733769414346539568300614714489212514562593043289417848761395880893698508055652099393979317887617234576803979082836582746512413128447892563805618156738460818412423586043314122786385658387118818996522097314553432104122492544097133613441589655984617752596739486279191273701329288163789977715306698827920316952899748556741750309286237957271464716388357859614272115236313970073769760258104093035735703056122925964165040999631642230093771674385915559671087711765358999067944641731256536746274786570507608924633976941226564811431412079628053298588071330787283022458901079654519566094684646124057565244818320641836669240542625231964037630650427921930432540547027837565879790950357905185198657755689944597188714821337655035801532348900857999691436082031973554097581516536611344097192831369605320126544101052207716152841755305169453770243019664725368078993878807550569340555089689426351206142897910264205814237655590408114917264732399968730280694115702377523373157355543350231875215648448267031757899319095665089140223829666361387780179093610294568485740472568570126118354448452158553526803354621558686165568941446734488581954746026241012353441884828207039717501549432345027346276027727700906494059652723823105607487248892829816512303901621021050500627215480056621004055227891735984547681955297922008020160187270349973095283715758605983215611169394047252603268563958793392876107182073485370987799760442751693564249536444576607565754599717894200078926306273721743272659526520901642541290459900856694232357979706257170728569166315655922302753664004009930468014703745292551127124209760157810080652642023057143626673811237381950203104549350059333064402760361389977324761568080805809113223412550762195353045445957909175959094912581994328146648513263582482350853623862650220742509039410562111920015475996412215628250612958683095411948178169399939127481240605796792321825652929657555780948528838626593311496193004696709407927413938355851072371841459898627918345817804195505531315704176850262411908089382526612386323269765147182131197592647329120983151144738261745154516277833615533340402401925636187009473896763777219664353486602901619529759075747592085742429465473612450419186819268293763832057829472170627261274337591909907119892978215033301276374597175072407346304707297804882378148745813366736596321002370725827129931214538712083138265832916202215780935541262096673635691048906288700482937340595637763463846810096844556347748961384553950029107622402837638159792119353686804178362890393287387231329929293015687074837740124356874472421873337246409250055150711311656832843733410009759699795467815103030017209925919947475396661882823776011926194375603274979214658285814913789684567813043800055100990248284621859339879127352904054440883193885501077941503580568016656817913458230801209396185772203046531812739243616725903049710954978202555625046736910263047214781035105763045227744532459404751171157545855640270957768855000830264535921087565697454514034804171666956494977115452932960200021177888516887723512738147727713335350449761377007424919151629785684733700398354583717048946093054222938371314828316591725966992218439019864936693231949146954715460872885538778778069020611048331101378311549835746004012867497246543579984273009611772882551170389372876731871394306674107157912071192389927880796490383519839868063236008415540427294815477020106764069886321647246025378808888355206230958962006667734546722773540217168269789682157518986291834681343504234939422263335209580332364987540441983958320027574924465455962706021950185470001071155171233591947726972980681983952450089572913822538891225888932598533437179150879376428430002919988440206866464156909050354059867891023283294661287699695248580067031352063738644014610738626703553295172959508372144192256290079312539570353155530214653735977172895416853879341973856967729234226417248426845202479888232197189652184409468952855639778665551545095091987940110072253196156417879654579232773679469417288064628909625187250644004898187783446075185018118428281705836530129214306568135174759703839915313522289475264888731704975191863751342976447711680935479632576942939584729243295758866692869049559489244620331939837454915667215539464294852186185327121927651670376745181972509168832927302365138594771602338988712336806349381654161893156522811755124515878985242462264697475522730926944614087491303523425600029308010967450400481573311196573681530500561516790585539956106702528838304874889465335175969674626810963451431876399022042480914266114848326468048725212560648761498000745728518452455291527234352901354343296051275286072176197415119725181758000417106096572519705708527931317958176058502559742636891513493699249992244208474549231357328068561995081651606902513701778820658663722987608808732228666054942794682149085699492235448858869493022151913849385377259228654249004097141648675871361913439215492752014832253691436600268338999747317804139275582538903936570826643528553350006546053869464362714403540753905462465359631363768023210541979426530089404539385545483513412909381321244482951186452770970772342120267008715175053489211488008185646529035813691608140746722121453149786555141712715791588392834719763726411797999159985279720554842430440090877603843158194327241415834331222501860362261512504178272332286341623161939468824759358593790603937582620438337760050822910078214626405560535512610894790271248106147714997697606959016635072718020102973026691941360742215501282147627444666243537274722077574178685050689370574801249504212511516048346341747657897985154825053390248060937996779646364077665012055976457369737092319953234944980289795753575843638181866395024348340208791437719717427445871451469822970174652837036202533029062420499081625305215861936957089860449087396852922947130255102566803865291840268313930065368667267652311655696775904687128638830871776160492694789375941363623383867151065888010979959938622665727181657451964283396142917609635510565466144998476702908473868625611418635900540314374513077472916463556940455745575775387118274115284510991762876411570582811603250456323404819568114919771642863927509002245561086098909464352892262667568403492600996993950430848075574279582135657550405005414042339880220663696649206949367561034284146541055643768590253033105834605339616517468111514582705210589397554365825728571906939078750015350800762456381844053309029042579007826136150529567461154174700281365979855573728389140714006030147816320910704791170014623568311231505437357696532833222871457483081942981745299986212566800801455341234187125251351398691717021385794953295766289711463971467131929551120719180188811028462811004620265937316692768721091277650262455543502735358710136934591150489006623318504815441598185923458886180196532941646551492786386335351211317847377034457561545740567102707436134667488882825522058493487136741851110058923713110552535702009620936746459148106947024551173864453742716315013466349385256939276009791096033773279354687705264081948558412343808158770579257556394773307036781547814790574203588607081618708647190039099629054867268927671795811482328076967796747654844736366612131876857071432444213665054657872777376520834919014036177776432238714138981393363259445444843418880226633052580790999111792331456572463989043652522846505609481404072888256827188336427781598814666762603394796071091430732680705511041568552294895014529962874601524997194279084366568423526680991926805310714100370304733550424697473919268275853418372992513879863305668211416408379557470167786365620568491521582500328152397401052545634597057663048982837284682412781725054165482038344296300510514726616250028562084804704133122943399364592509785790089379621963112746949227003447378920324199611010912082506468029906339396484727700369179201409050629596368540607814955661220490839972119400548976547616118050060709656104886660506351860674815203052398635300055103245923613436463688407483661534698727020080282385899949873311441811334077536823070232462773363380829347171826787291205401204748262280697820851548225320546841996816815770801026772727639603929148240609123815447845787391814501226317432505126741899655057656256701369796868015643878686404189651472254661257662651235765991032684526253590260668659436700377262940354062428106108249941402419823724169907454117489908407890075534233199212588707574442027688467728969054437663363954602783558606705889291126734908869674337703320914631916675976317450605167658595814790310138494696327641809411204551955936022964406867558615358327493895304989129542906720184506563403346845191502704141145622332460059889242057052336865509682138982794056971268020156825906970213216060547042204844737753286288541460635695734499717019176946754202920176082365658970917258497061922000703489392075523197340466534693248242330692659890411716123289640595175706259086458308563999387258983400050265295086644891796988060382689631341095656365964634962870034253446640861819590208865666246456781423170525505544494247854677499770147355706666467695052811257534525335085911093608762858682780143933044280989580484930381270546105510655234450186308485423336286985709193080020528354975856923320945553644064121903524419439715157913591295528196881015208374778120982692154950707606500455531306815131122772447334776252589841167138202401361605247176490724436914289593725903695238870191398885719095527638808879297327827809897315851521615709052419527934639866544260312892300000009719421454219920148182499188516340917165483364607415719540067955374410729581676897743137323808283855389168721932135502305331588244377278516503037770283289317668892653313427317973996582189371614264644009629500292498321429482920047462337716043966658354785100657379786049429045219409250091496955741300476787856652283751403946233381375959694318856633002594516427311935094940010633290152886029312640938940934670001928898633420938169006693414526954755966515219312297712344085346545472725404386915858398342238029482502780002284638093196418480270568903556219537526641593391472689002015202037700353890453129878086635538464450537904203492909448151225112583246355371333585619384718953822844737664745563239872706617696908831039353300742295438773742837149393605016222993563662419670332554913874319397876451583611514208661763016433317000879979376970023161298606914995229013566539436999111638931552408654331989086033387628626636011577284145768425203599211560359684937460029949407602466083418794390069043322328378544164444745107621344344654745383738649882640103095069986947370802322741642461082571297912345470956108561899540625379597456458793195199777299831471850098167672713199136459388241039433174039482212561890685751075571212416149307298890271330723412452833758706842324980382118946350927673501606227023096016635155747116370183991858819040916097292818711020283663450128383873573595325339608358248653203063377571682079928733966521834785010976430394891501398577354072562767624904334526691500897772558339760434876548484984044242658079686274241959547937959570073697842221976627199030814324970451384950163033291475623451120969120754626007629472270175709476874587686050849318818008109668035383844078497292611827347230910575586121252067007527273171128839159653804301335482809069623061687112212255462083325536190242155832315683024069288129576345368957766412613244980920246559748734884307875316630411124453898838413043305624617542081877559405843970793555972155349663414744340336208088742361824569779872373412083750163958891878382381109658836069233420974085338782719497128643073275508227876968302547821431323653174155743931900070090424378868000953850859993882904574658836283052648052322900244136402306304068776736825031682010031604595280570518456050668437614329159028227427362543314288411935845463526993808614003420739889068658238033947405429306652010207389980108288746743901498725929374985269082728042572143949481472273425961535425545595991974616967763123813914371431333478988158611552055179311062716157001978046669515635509620445111319267702196564131406217768190328644582679679124357426491372296024066297248412091966940650015210862169537559993453862813434918243734948894873902051349474324405815530628277893223364748289611621904520373020578516416425813102760380431947140019160941819850762536752133707662450182122697537786905822308759085036803812911751882911676311443112423705221617359404811383898745167062788085407302011929135043124266970422409589896530105005402889948828104508784056595170398115556912379281301067560484190139893578274383819914130091623022876728944154479258650252682818427753511011766020502997039477886399312519838436378986996593969600062493611767023086892415983111183513246713780673331758276995132109606884079954938774616653414806276654805758820910176291100451352879587055708130960955910052721564639816345014374633410976413799836727332812221437277044451897939379671561781474866896095437746337032858637356078894511953814843771837681849056373076803728885661998696128766060415400717404412470464687079734656531206794848833278202625565005790302131076082471193566182880484147461607071029693611784275301350224334420072947379713177758454113037973955823723356564029524205307804067584787301785391192589396500925422630047301951714956063868597588141586396759305212493721304721223326668953418437388244507389561015331699202061498463551403426046375349067951159011715138760793259378425254801362698351794754095682169457482165381722984877892506660285391194430151764323637090842404588008355470270823352438429776978503853937328310128626546866801322263235538645570582095385708709813143762753511539496586249191714437361304137971477317751348803970756930283582623318086248101818743166996712142387682024915229827332135852003731661519371096586588035380234844208837848090734305022085225613928542516839118855057925879252864119058927253232909824224270779705128660792580431770717254422430723856057751935140498100081636620702647719514985639643411223348058290830019642151933005482432556558684273953083493795355065558767659542840713566668178866965081040418093364441524781080743958902613961359327536091547303203648989280440510680088321031598962104742562560576697898000602917771464000374059543772851990984479914348505154570812741484591398418042808543888796119322346029798780874066451443041817866091751291864436080710141304893904046731348368464899565473546544671801387765186555629099630850274586788307403618808703686161721850548584729854382636510287554886432172715881371478974178691707684674716964191380626797456237768940681705668998417090694281030035445045854376349468489394425399752844525073325044736194380813401989433801883515773567366339932567590067142198356646648008894426967227626434943988516242179779360167248038823140079218137129610706541131999615751185733544572709183385026563036585621225007290964972448800461027736514729868492236245639440408504239256657377979663086772084035123242016854087317334159441313139249464433637759434230095294648209769199842965123945074061234272152745825748128951076688035586438597023904910298552627974035282380729927725135608031627345384691985919063154279565348893783792438658290693095972464878957605383530468656924493293203200637951781516834977848967369969621770591911079892402681174242040798918543875174641221581419062136568993166633396659632961427013879094348273340568198314478365712309318821530140245045107089993983551187365949961146704776243406992850466694330359222033932259148811755321034552885792416806305372674950669705949572230924122028970566327658977253012109925714820899732619694004339801804228035051657730851450916871190373771664491885569806216559756380156405079449851457629809619082821355753883080151588261081596856264234048478653401929984534011796867176863889417027115389682988749857276965382628011202203515956166745096826032138974210374195399327360704750287083964096147719975826600490496122463888344500125145969514862792268452468387919878458099928216455869344805478244267226577398074412366577425323927681324134106249261773054793516522082172841001382601947910391434244657238723595079452232080315808134936753296871720117335973603377683037918143780495221682339288363332179095954368723267549100167992783528229602772301957848867254725811031570767138074505752409781684766616649210433114096889280236920151721684727299807671443249182661546382743272698734220411791460007886535449263690770986500266876706371278703363946003230645041707889887046541332297670354721501168332291462689555348454878946876756808488507965929403273719462419350429701741755902936136058511247950269162672319797331433039790888917199139821463437506669772829132943398561214767443910426585686465903320710009600462817530139755502269299636891922052142017909092355795904252809656802458894326006788255464902023414092712178643383843628583423353981948873475392328770937923470279447551703703912558606426751623308268811085222981315236900168865813891020456271420629866431702588377558250297107254322333962733629194353473867352076074692265683149688016848529621183784405160859414258529521890072242442632191320481786931626316114530870147263225874337113246183529987170380547015661959001389518160079799498144592047878992019600258137838002990961607592967428095545720105515321916414920224122526852705581527781391199337437653285955170509623006353160393742757220842776862335489968225349451274107853433801912311512499418072397621402199990732954261810778807932308681718292410419370074209755541958672416133140001736855206909359446357701089305992599655192441646667329887955576690970056868698586707863169341081633075314196788739042169608758383520602779458259356383129698734877616017684542183348084891129704568912579943900526600861698291494608065927867367437247344515362395989053517215734885287643649018215905917418050726420443065583004723842136059830128463538607842450153248272184390738126072156833149493750889646675139520748526010272903864692974434853835643093663282684624257070828917375041022049212368676057112195042187203350150271032523967983402350651115389498541485609253348367315394166895150730907768770828077106352249763565041134023850633065603866232608942371384511655658583991152665893470541000831615294381708247797073712609351461801541585517414376166237505440885700782974919674522594352395413989669535700016423958532867073090401602616260850271191031925335813687483808540005104913022763753674392204220062960834090155440401610915039265501114956303945474545702341957958890330535113090102270501714043435853774752629747161681780945977119367112420678307311615793523457934554068221982109069163266928698504805011464521774096933143962014054114917470776429556233638518169960090349220671322815940598687199065010073489052511756131290823435115559814891069780087626514191584124865674920473250242235899122719803961811032984934226058937343487626597740816859943106487623930547572767428249910458094797755027285252667894784254081206490965051116762710241942006954844600741245845438588207063515431700159974214383479838484252582228140010169642360021418477426999154274326883515139252359886824254614585901659724333124610308714740959332301521729231470596494623973779479310745964327893301228249194617242256731812939520250014282674292727904237817205039079527818146132239835540371458956054068964195076080715446339432889992816637562795415790826680163305187619895057632501909107911187808911404210377082127879272467809355517192298316000377021800173263692927389976350449283567259069905191590561036986811270994287594780633109337112127990628021235527417933203852312031646062229947959550244515266791198147575661287117339459868054419822635269391726384043983539725097232662601359924018263367228390630750945281233762253189756236628927476692020219891950451581507422128358369385579057771918725407602353004451947114268344285007053475332992289883090049082496432967004161942329462011897179698882864545599815183607506355784606211224287944837129596785332466454591286302000623884439909417641389747516330712217284433325191602695100421086273623096302753236541199582637854098216595710530300330839887851969116838260773688780827329455529064113437880703924347617666777749544143895502491531462732853632614831078935877269856751890951451050533029166841316983564497274758177718499952106593589591066893831232363051050937824897959155359425537120183491902033451579427189405811715745706421839436623015156410531811008778233398248742850617060785708975169014742662566104995649289303218228115897665301244560466706492417774865240646959749732237080972632507546536946475816961976493251072388129864000251114579729220276947227207642340388685826187481633664786235629981940234808511071923903886593208273384855740816786311574978739041203948646233930396859331650137816777127886225248253412528783231339968501050812891805704215338410464246322411826727730854837419872037958173889856313087960721378175848834417356294183785555218382992214613988667409914579499359055576784960772880303170439565726157777993082028915914738206378079850448450844654057733311374731530809874594887462182719418682925000255389161357476084573650677622980425748155561495888159056568806430284065074936873391553979933421914923271851257407728903845837589914032415722263624294206392161376828472307807006131942485232652635710768470653941466593104359908952096193274268677071491824408133035962753736163339572158226995857952951235378015773319809538403570446790819315002619629877536591514647945711529323172845578038179020039434011368351320111788368059281037396653764902870705606204959350710930710575379921341883280578343934098210162526085308787692117904140657193869567641800183185652116507925830618382150386631552809849146127765406085786636656316559127965936753296460257034227476247508040668571774347989207666094694863047269419169095751470784835208426044753015531234850248007781240306962716888049497195413067857659469797913927540311047520015532907525740894402989427094133482447736013623577082380126647952308086416851003686714516650670170540756458951171721942409142914572154513266552678103989430237222650459844705765521681420921528657908587074870887898120397861805348009421236935528800506539492482344098252422521798594922959535786603016004247259340651237503083536483121195617117722879024647040743924834641512105047253417435336075460563198887260902017278254876508011500745263830582171521953219314130438263058323534732529967497683413464240015463332329496017920604243008189816698809231719145202133811184115693465374331302748656617069662108881808014718285229697176969758654360933514233505110899551502174107757773865875727009000907692035590559149576439766846747940212122810976062633361899404194249812786296723936379135888989330281844679025152003323978226019384322133070150633008680352120465548648149530803013905865272936499035582437316080104714193591516218112243543223685784434372205388347431711002801653246302307544655975015179543782082098713397676282806393938717182239064881967407358243122020339904012586427019117386734996077546037896783748668265506604252159055767278060905793884541452082765947145592995449077163660570266970109068292923737213071453621654194705564556654364010578428959969566550082899993375971072022410025311353004268674185739045332214753516297584605974529431668061164237410735063336664864655714598408079224148851738639211493274934702171137145696043809634323927059910698522527591777509508476616465280935355666051888704006750732671631464933733789650336181869141327734734833481864168673368189151676432471676905024751939198167007591077295946889044893130635535156612902211252012776086115446731667655679489250209068315395495726688444129042469392706945601619991244912417238129737879605339668204026152955411018857535210589550452317544467951701129123578735378027857983113507126985406964849049611347818026263572705974174662264998903300678598848083681204501956495334494484572061540335442460396784334466225678842744808149047419201180857639762560747503142512730943012476611164306687308607777335530046393432229948309162283110373061747097974201244608646024867978287865835112653116755258924095669180050845182062099780670475501253577436040684229321820490904316447383394749915898416896568594340022894752411760862225916433087238695976787163621602757255170486750662720980150287644911138489709765395360849170519272134196642866920028556344315859046061441455682024195225205725934440311470151380186012995373882943105462367872846969599496244851403200782124518462048590353537336527065201781299778370500626593059670365019501060265717637471954168809975750573895201786364911955614651311733925694523209406326313044636707891125469134340376665807153135908726854894778068480439758018603583834291472881624448951627114102226885831594196034660427952499776940585830133515304497104863787090737764205070354036308452212854403685195093317172859286065802407970427956813968345341659758547692346466290170703228894176558071883739106876924488099143093619190637015169758547767997321402153875239278106453329375187359677295391264795471340850755829602924576739040922036014992067902972557320656232384719471683004220036861741910959912386789814137650602866346719273581990916489188079390410021056544365068403997992143378622694366917917768101084843917678252550309738618731804401258184968103462005863420886062163286819908513905892052733819608444856629621758688467666833565333636444670834750985370067700085919223781998503655041709826251343665983753933005512190355752369432596308676220791700780564693151578097744946452409626879669686834465205969713684979929901092942440566199976986209346291126021953317658219604243701888284201327611770152769634511896679485333075404117350302988780305610282123499847582539661005158014141282148229722979901273722200044060883145560703048887026618419275821312256790067760743083523332591879243310149872248674667196133467544131027609968734204087732399118011598069730740299656669880347884023719654370380666359332278554816072955214322909108517073659649638796766269473806036337515520902204382062504841791876798248290999762182756223488818119029319556462462785297720310731400506638978801276957555320177647598870680979708704380323305753162257498646007265283233329619727333052695163168061926517836790727540567493656536684792279465796738916714724679885264218685974876544812138329871870272975860681980635479832806923020243994398220967830460822349742810031126337773424614498288774478150602774564587233243689996663631644911244939874046445637872849968019081064199188991623609548959748953960980373416558417182260273500115608072138971237049202342498146075004405190843831802217497988723974889550985003818100937080092240406872962721319349111070472885126743450856671746318678842567419190797197950129155276564844608310953215985597760394995485157242248833332039883481846317594431278962604575639955922846275523836533381290268683576163953601536907872762190657396304991360567962027740627849577711541007189668882332849650807432378153938668675664704274988549089312458272467906549990070647459407925244442731676707374880533549600609515725848830014795292378106565377256772458783601811297432422202630463584169125433626365884940753640725780928586621813477575907156920650031726293721302240465245524480633560318030872712265604075818843965628857589913352708902390278905378985504132245780218289787189390780608213917604957210920649747858338994347265796287230965676428720901743105466212549502302568005171984310170996647637428814809227340851632577104537801881430378948424429502421289594473130289759906312076751837731123216821048236713402174778510164716424467585952404214036988268966640381701313546177800093266536406529960350931597198850331050953727772164405454247508011351004375949289014420924650798584175132073603792039825774791178676690978896447900028365575003306235613867134865608500796240808812720799483465041607046900547900722100142980829980979167775572967698969731668966538195671914064209160637622447732112013331130951797970617273867134527202072782552961847780077732396709403718996081121379549443090881463451877748555423545998941173245442828135973691784826479317290695600703378684800120519661104742080327075750442791137038004415118077563179291146030968281810558995432937912765505890129831852827774496843930492246555679293693939741439080136181727760857654359938909317294837753811424797826321497095997067715451539447996463302752342096704366596970308045035346452781123264560317775580234836912318116409440795871038645551779550016526181252486708696246903046385407010273108364082307198140726466196101307130509634453033903815398770832210342240954366570610333421745049108094292095978077668047674761135216217861267277311953846870804112877330110531888262056341600529919018572922340502902218402219118222330318685415964273013109292158469387092710931817685030673066152411861641320989730263764814963658789894432155810201189016184192047722208395537938763308569911744990221984267710321256201604911781052897538783303084468687186142391230773684056127506703890260336447478496303095038539720138830987520903832256431031658931308827873526882578710208529343141247795786049160257105970922301440597321119674987329386105228039336937377477618376068112609209327791484523612543426729806754283668443225402890631540179578918922146949116390972395040509119792006185546548317123180977484923298937074975950686205466567502511041260369646312048708086459850911764638807911184567046122400830626138150682337767241957062133208502865962967711855944745545838869130167692549234480852547492129557210142213523844096699463575901791543381056368291151071049405227217701269059636734914499591381362115552930521609468435545690449726352067324892219926949893660701077702791427539674701530716590031594394129222105220858954020574179521802566219697312652905191160045083858755591001542188006568247348373223193256641753551451767204229344088911248155750808022473985572765313658278196242047113783870903364122198411546206224792790940462479730411619545278865449885054591926191922376853028026265939646871620414669777883313910829720516364796780713673053970579422777623495799509625408941034209615374641624929958308404757700890897668922702586765367186125195683831908555070869739177226639022439984714046460654843201655081658191466749335977012537603259445474029638359714210295264560984261819052990267885757576059025992367406865968562762136227875451266872667170935474903725595931693030082007832808853779147849246638412236692631208112481078647141413328629510695050101527578389246686320309789447177830819674747555755610376211784416268325304791633264598935532511165623335732021895061253368100780299969774384455367563645617237628960912570398979747182993674417857608553753994519561423411475899814017478307828202539762595614050996762903706665701264389188019657511760746136588178599583980892748070241888182091493085689403631235630413483248705815169949746388803821610310629944201374325595821312078691513513001682987531500301201689014780166759461828550803686287833193287268041531922317588657967461190358303635631911235456146888307217466065431682451562484176402703769455158957626380331655998607818666999965311860985831611095564178834787812800645028993351912881554023139190772592184066042876506965759405752923101029373267566790648760398380446643384665246449005055809414369630283573691346378355800487488026961950606144678755676937354637341059924617243698828560580241021074074777457569798591493250684923502839027444472922281507483690126497147668579022076146492547875573701604287045901196128987710953754485316868198851276164355827511323928397113837471388653499960684313936455601062494827280391080974189469979450866439893177768606594032143070279665698389275593016279033035701727847287436708290543726877392893262083857778184959062729891223542819271441963254178902208268959907885418628381997749116902834885313086958146579218481037872681763964549711508066541166390085949563549791017341411532657898796291054905562374291692696439148482070964631473511015314797935640468384169234048306705107223687891969328072767854638459705079530094181039093158926515747502081529708163339341480282143980560483140027244331533695648779860955544779368411236138401763384938375740847036814089719479166405098871836717315037977514201727480442151485027107524535733429918532552570530236310501256766478277204451657671400689695921021939598066038758149348242322922587929076042372378523711926964796315222374688581114030775539953767045379447418673018319825448856992451949746199256123619718647599801931571564137287755887431673353951815352229545013358751891920365849177388242924723364505582849488448935579218077770402127928799088172587786933862741955155494318670569759560733564295261789048896133343930286733557107701014883844427515144016909511330533997540378981109108039004768108497007894562223949217578067517390294225065739423648712087509462032325679091034847905027497138982081479790412412294693487725542893082203209307715285501983128174744890198782108631543968910902125408805762850806241795004232973337286652242760288945878460146084644848280347126304517513537904253489425662031549766424455301182307977951304077810639821595250142160088854057875917420250786065110437688088733607656017349116234160132031019827462845083378553428043385119907633463526408855594037171433588131076812654285275538324221566151451980023034559836607169698555674201480015753370435502842262662676139782604816001196333462257901631457891387489593416260518337545871783758261893322300008113243421315531677098102186422653726829906537973014877944911008596070700772542029680256984222379173880765656418339087124074976936928562529997996824253950172907069094977389822442032364097655496455108200316726740183506723960182067544550563582694585259737235935689192377225355706658380291874673845126078441749545502333589780357515070582227303336885729248537721777830917970317488320612959479884500831750638688165380512220975188148593054625409184176858637691409656462744641181210020198454788058119084726463760212445558252041720648480352833109853302992301834861991881535389837552819339210568435950793080375254159064602195728725703184413929621013354883151485836328662089934986655644328913421648441628541254000197321458484213615792699600930535626836544859140928896154203511587196358272646274200851356024850754882959118282996719736703426831091835994936725529544781739829541646003983794059631746500625298427009158387305333712904854485568172171262380214523752374314225157245650980169256445634130223656326584937777400842018472376879999274398057218880228650717847970125603099432275046221389027236589418888443256192520865378215070829669084821469959532081657783773140004982119545892266252143600840424173746911596372589767171218348665884561415506919296054703984567488744529974304218860508115459097084512858329785587816335899197374150676703169950539026528070988015980496411302210586110894658069496266266658852100804221609465705985987708850790657164193560439751406452317481497463888025396864439638230762826003466697052525799917149814949008876540111406399963661066281051237023300735715382892916330203248693249211340704374712926051277949606407986801043534625573143959814079483149520260805540209319707726340615612792081123022920161593046085816196249846949527006173065202103526930329088458024334958730758046212832273724653982523305358497294539334350445746185816242569503898986806655097616527523934053122579446125001154713405335529625505430261145289309644801445786093833094353483310209656685533728748431606098431635021641485302265544061110661259374860329754796732413263882573978160176728345662211765010663049073915917057353691745631584977260323280792191318690687165491279614771293865601048093242684295099275745607608568478116988150793821736509948541119337788213216655037631566265371808688088440684419676273977224255793095060118904220757950721562837318224967071187857347588792908705130427908339865800713462214198402588043548097322077415533270183282399994403604559010745060456735417841877235476475866934419748642500688199064478390425862377422859879195344479624655464802072247008414329404862147428324006773714514230576995603041748578715484127038548682301312795862194614868460307170790886783745455591353232024917990727146208945602702207733732886700584674168547952427432199813196781185251474524659765688580494289541536985721508857586178363922842009633375732420918722071209775780281935048299851056306317835311739515499390119590333871857484944351980641042031269118308702463713451722336658924260209203774832176782724075102630264841238234339713214984254028357927798027067865371211201384496068401085573121259942108777704082712238668198151111504001094258050553758333421509030580036808668952186944759941422557874135582334430632030441055175090840662792206622132797264111683366884159506692595686141640137233809097236993906801311278756010755737631708317987104809592733724589259100604308094290396403165910347746667805975165235419690235066956770839148369775226073084859374320297139458758412592396107443548273645656142074691989540590571164535426697229250522248995591738859515548437498381812276399691421221972038174638280837180240367709037321955750186767183190086305222594576609698394146585752128302931691134089401029687430530808883881703324261085056261841178000581680370168002781624842316165623835401338480898772574882601423624849118408243508195406068833646786960170957590035196528200301258844677934641799006662788036148170793874478790019973621462930573782573917174144207385980047933319414490531646008562991094198579671538554760219059677679119898192858134027557100131135056524485008835061333147092359481922051028181299501954067324729441860384743066391867681604415865998514029221230132099926618070397405403440329363965144537184871637886886001157009816105978701738984221240169488963858820081875081650189447280416035412889719329766483042064434724488853117579070674439880839707781733371084918091966624318971839559667865584067836265223459149602135079965834603859338675062544806571976349319619716929658878358847682462230830224655600923423885438541470871847962195448804196526145910338972184997912431107834690108522258377782468310246338278874650812250015033790607098925298520941878056853338587017758103303989606021448976525608833269410338421841538850406429338937348181311167533298429878567881793644257171470861061700469986766967302218272641680985733645532745246031710256046701897040214666441816909251243180762712796610230190898747763280534323355871800929423806753890632504780461872581410764458482391929591416227685628321819717484988679083736968146668834543716687270810607666040878454860792597953946172491691100628996649043621224169197349359331514689099159499143009836336484006090902146431503443198054036861193644944391497453445787532339055207768534929663905900713676307634364969330713485778480243177280257201589816056024813692476784860225476225546324848220179102207723029585484519864034485705723635251438967253444330445136071524881458042926811247564882441039881674142712084224915778793141321796955340265887894360472816793136225244321616012311028041804490875455896138841123003097142718380868939022325487343517181321591247018577357200100045592714021472362011999368522502734593653700286830107826221711913472248436165288353388332243465155453048549306183443009873777286633176268816235385254077376451214277827765059866343767004945714866548693377111493612799430921048967445438260828687450063158654180351076910599522151003638555127042165948106817074480074158029116045688346229764086888773959325888327419160208676727801080511436157179828459313045690900215298139883470086581109772907546233153566640320039379818148910642088651149700225260151154685736995550395739512772507607233030411237893351228885327276519214226898269138461602049468711801008670737832532002657453771139912646953260854428889875344231849790130849038307682020152028952580916898389835541214310653366943948404638997775918510015471538943041297161936082945552706716045867173954409551251855338298480157152029812629137123483758187604741522599581336575158387576299689341239540645479450163228444034723518283911643746409650566105201649925929920389857540422543823804599555464931576543486032054851641579047296965160465401488768256550787903496387759672999439145267095377308741881079264875035533330269619542230940191084636457016613317481979885254768825328475073547256300969866954646488347289230094082194242408278861353077930541560613483669143986434263249501927408443023494563642240234736445281237018821320679299988392683097118981277909834189167526585465841690421897033060201315486593870789150143100313315023683336893470082195915122880946076303772204795811474439931190712733160365461565436590759628741487502607303325483814526545078094904229553840408308027491856599537858922586865237451163860367846557192714541565943160534227165629884618596357870081248331073653514957151073481276944443126054510033353036638232738826262610427096603088104249161161088362659008507496407126830126911615446249010891168825475892757910941561328402359274458083984184523673290694633368344401167300064106566635517454895994893937282254687848466339668096360115390197471355613241014437668543391834725581213337597682216553797012654294744027148750762226776934979801558872788430029076592854249712944094000190280347797645637051244026969483349436938394008005092639126301959876917278596120020257506575507101502365677590801900354325722599348171367544074142960582876022401621103272262961967836741552098143649572164402004880269928652393579688053441128499497251571483577237603269805771653611053621651572067182933813495901087519751885746686657086201798813486841491565657814071145624299057407727838537993664261027338766147876104550777450881257799350027387358486350451643296411674587118513265873057221415423946281665649034408504210812580774701438072327945849231565416830719099322830134611344902920172046907239274893948916806069626958297656732423991188805847025336795945712740146954564302358294525654950874203498903540996073608164005873551917158527616486575582052656608303530781722429507360064892724610299321027751958022584911236782117663415627502913858472734879604151827877364200361831789877097926215974988272171116975203011504828808637086820027325687435749766409445294046245395717562693351952785704483349149866123850673466740726400174880211779772943367187701511402770182033243592034385282200336830519119783729572946785429644598371077197064272662238423008437536544778878497935480917424069955790824979087365137937594352604684687797024150949301059242574972336320237081435359243137411336445744830497765636390122386855739143049915279180733049053391267876175573221035062974433308520579210303623467952382854667069632678332866709277781296723472290671219378085138394805970815645212249512989415292505704305273913848821207254334371905686205406660015596257549897102388695472235659318664974230412995030434589432871174754259132326059528241681632453258525020498118490382435077290962248942446787160656591816371644542909873787021936318956503299181227775736410887268316652491221004128856617854876009111550959471782349193109141434947704954039420808731407858482878760073172128540982853349108207221903589127192733400840895286998177263905494065151420142787679635515532275192397801808659472642553717152216091545335226476983526721630689194205908020646623051799140331220309903197743965732025471496105869459347664524501999292513127334655483106426759306991994619671813171393441857565287682193563649270527606299311483078895890585012603542036199414046733838167178495346832377279984668640639035172794838224425047537865590369071696060317617101213688859640269776725198791417112313807127534674884435785971589808527818693213792687448317334111029121629472643747158118036586324853644023584627615661167383406442839395641870069578585056558224034007979561516588322132576426898249579265413760766618232224895544799876659467963011608788448497714539959586332947412905611778786779942791686585950609674963962321665368511435170093248629636739882183723393580565492218835549341069256938713055173877418225527144845849516080302863564022959256134730652326599225651572283758493023682419988475252962781187522989592066782945907526325517076450008693478654675076655253751152881829757676766568186293901930993719104348013016670308651108412593649773148389250564020776934540984695717591542033469673072665988141282139735352782054505941723985243916715538769361763914661730771324911505332482445835658295061127605822143118434131432830493545899321066967005117490757063474164713449159702954922760973098514405904899229121966047815072074943586687719920334191010434351783486212279797330523241336935931699733002535969065893919416742697447865681928725411278394325150761716999210228776294935384141144922480870434664955765798088076299498720609264667995550370844479876054016602471051580187164088410879017794151046011380189231600151871198216857601787764168832779318325876809356791813045683164758822134236040921864898520834628806694655833973706533479895930423547560085148219257907499746120036395471902257431146248310927589222480825218970434798767805961766714527994778514872866425042243909707186402414914554390204098812536378065772267924818970092256008634249584456728024421231694620258282844724968422451425334738768965375704789402118177425463142685218329902910700573216081712066007126259042694257118154319575802167977864971833489894053413975164659367058852883589390285781516393373457835381900089445356797898279718760116854100799061086323016519901506211816418643276834233760255065180051130522581603108484514297509221304245970337912767392043152737349029097797948893295369825080252456525346289805001099613521518845571806349785748217817418957309501816364384161370835130778390970749452586965835022132854358560552858693363187805801894948007597323586542526890805933450042694729327779975276021601914493375394956834279525214303632631603020482877302069207800381928433569668190021388875172265390231273247141085201197102633086824175858793544592337028014630407519868692752911195900359383614729534915565423087996117018820130626361210807195852756602911119369902882349917441539279635655635352161020854418041901435367001699592088843752098656229474945507064156930190442780145210929328198479102977613805810492387190750489384385280266405034835052081586509930436639542967021728121547363636982022109003132461680167983761691636485878520981932877780589856251683009601236329952364433659499977981933573165976018397431064474416921535008508218912549248300499349610495242605625054250705842023937990303205197611351562322931354653875473945087621377667110733988566456096461822364431408596352457500608787893496428498374601928562266529590578559601217012759914832082104533329279703214259829119149430588071304060213455601579434908495656601675225415180814030279611406108597299441236441261046298847845986091620529758030570989093131807788018619268722158522372933548346753832845073827230380379964343555509461779409668237722078632173373648927304709190843969830274291197090547863924142227005693185732008833734987801085177915261667233240431615140450377601666470502240652914007274255857262079138772574627979083322547543290208834827891396506764662929807191927330531747238047344105769474075631333163527709901549982607907858080957727321761555294414823540743076668078401965121224988435446090799195077345708097435307154425483773099149902069891022177736868893043573404030683671143513032430979465361487813661591296596043138381547638279971658672734587018830337291892440159090062169567990538846402983164201717027510287888672421936250632085400161904444793691443444133705068294013214093266464882119775020454169539023977729839884369288660741299320732728731819098831596905242402200686274199724901047540418466660750271357101285278712592082360085651922643701451710493960495261608458397407450689976136650858548659851674256921540078374764579881092329154042750754211106294477230665845587602830403727767023438915306074944793710393370862109679416012148507942317375725569629187043219951429394798168375697413985607619797443243226804398161984155310459183231740148627726428196280625996789257801835912261902805396040870646290417889362074196699284230295120089124417272809422650869055030535134060107762031964477065068370703896625702857259506989538894344063833532611722400031040746987575865322397975833910443400150048046299821737749148098754062425575145257033912502084177778922649892317841925058749143634575948945342926286304726360972596506617770248316865747693207831005012879696991176800581721334572293322717655885355683416627122350011893537637403692256774217862689248660061677875082030672443635033229368776528600237583826872805662672504366219326456437138343090332502267222432236710326255114503719948660451573498197547611995118636888511718677332949564604015857845304841147822798787419306559819520794434305125677510642296969232118253912216148846244941565119395565946405935487546595812219212305981191308015981947992262727474563912289805130755062890305629537854700761264631545106588705601734397284420769070390493708554180236205654267019710386458013916472847610910779219506798241817239925784165212053852407766124763835761685870238245232899945120400862478765916438661041348735864607663881051339047083633285827355998962054075580317457702717823499937995763606377536948901541487243355856462434729520472119308653018714608015634998608609429833768802772480038638167600881878254306700316195139154126093730560159349236501769203047951890553903982188672562391155227665834591043123401159654711896595593018098118091072671692704972118972051653168643261125608840086672601117940401098719936683048113791404956300768778684000575041101899173851950817193320226065583264798840820794572686998232514578528594779049311685214964474448945035344919440087293827379594340880970932836853372006932364813300467041018757497098553979711016043634084130073600590829791992864922796012603439940738357373399914562309971094730026118790062107737495368536366609856354112139212341465227959212252371806728327862071571642003099404246253705545558939411475547038803095039064706554475307647479039635518444932388271399881085533223871391687025007764364663814391535380870399310873799955967475878752373306508912529753311839006202877513268638816588635260587347385803627033329744189610613871902003999831661698937323236990029706209405052060003613770306346667423450087776980224743514650714661717124754495038230374024002092012403040341763581992200427275513441143937335629320295665546239028487315832739826814517718415669304318748331434782354510705578305614908813277721591036541552067248939860206005846819492597966445184607237371528258173104302798810726892841224643508669352685872688424247296222158633731192765789113267178996245516900570872127130474100072986009486857179456835569666739071873665447643769885716508309094408652822196333209917306933615066645353541815478640977435389108285366523261430008434863726899401345300347676957209905205399295785797256553433269621332876371247141446442194451499963177098322234434409650098278612691614973088999986957193076491356441297757374935711867144650750849472710384867571170815181191180658258907529171356765940832883172185940320682780908620680751311123000535810452888028318964236615677074801649932900085133047413646652039448583680267829641992958085623347309370487904581885597231829741381407994134679765365264730443543971690264404518871222736635311031793679208820073069176568378656009003964699168942523257680314680096882767114936420896711890421144386662111803144902748651380137127043091750865620724209291631468654271312431761616574123363566041260131002607101451853637011785283851249813656083171112883198879357106179504006352497977135126989389392030241963484288437708243061334776370739824349715279723101586839804493215160996762830414331244502124939923513298760330719321377325976210429764457297956039956354213032991965444378038539177132878476159850662034558803783279541563090127625774315237143243402078708282611950712972000534539365816036941364419988046820801518932004978480943127998123720969990025663009914790288180621496733350488859100563204094437586968807120611728797364601169773396635779925183615411531337187866304926860932261287806012191155566263808964747971425506363204401615300159368621281583028435605688132251302660725746454906841415420541029071361249194832056918531477329955303158007592007153565868462370298112024604827306575544543762443731679262027505837557422386218399837032180243166457360706908958830699208106433768643073604175775924565152948848489135483729031534021608324054033078475579451591806806608055644381812108477749345487860643236909673660576756656813882390953936922439075071434619143264914374989692958015986426687951448862206218575912826692228929555463948147274466889774334732847252865848921918155549509159089780231141190167866395930729933916430163775480179180897802876508296442994273196034876458801169794974409129141667932554685502485741537550519575030743760067681452955111851385907739909484027616779147766726673941361052772042241055653250438887274600026927180159818081194160611204493721859687341396757126373028609503967088743434640638342376193079598043273504676654927758525517318491281218758994713962911307215768620573937575522722774114400134396813286659737809204900317255355963706102777216066336645095101313522843883433832988448228885710073869294747619969079143920806038753727010362865083985330001064796338596244238489767955232386175716621816512795720575047177375359212916423880948548647148260591932016184759607987476430480050862396024295757991803920681861206117133366457745814685794336851578066787694186624837685160769891663066935000723213299569173989170099566295099815960374289938987564084469798361471542229351157914640137457692869354635600135715203471085902715538415615387575649133101103066652539086859752073866441808019452499633644458954374790812747761889298681403338031578972846748436162344411087464725500343713153023787244970348050442417877941747784535666536512078793453403704920614083577727377734079100649552039834027660392880152572387394108608936027961686570681258039884862984421612145023027021933052208595165449943216333480953902041229676521502619700516348824572820622706879044353193505696555411675642574480333933139484884735309912266214629846710802895687594965354387819160155269605053583268893162331770621713355947292052362523953026738864187849512229935269355224854865981686132303721028884708438502337006677078792900834675176612784957901084808060282591983313631002273913617196507430448368928491480875295187090132127449306237171993058531180874475736064739447234459817051827258418474516313554113549910392261223845097380775337646265856938465096879903956656379312407713767740966871845514552366464615734584285841564353283843105195998709560224167720619367471645197589962861428633389108047381474085748105284465820146588005639063565602057383073126736462477004895097074074706207107760409445354036356086832721396398266270807016450453490605762856310355174840092240082599071041807134468452853670294453757547793048935035371155846318448090033588426764592811546108426210041449168031586118408565318953773080342141032331148073831747643980692484376752429386013574708224302225735308834252538685317046175385817237468550824952696108692527878856228631021392309975546436171539150508372175705669084922822206913460900992329430828216785531764626884300103516381601912286827868175347128682068487774376768138401337291888223081565460985363166683511639778240256872819030761498321506291015709477975701176438399230445815214118875709033202277729941896708859210675021109202966114491306286483298619640828615036672755676088003329162157975464328438296614716715052837360023708111479544201617247543533920492835824790333088965157210703361115526698945900399707110010814256279175863207119417481599966645270262433969026695572044305973247047757847503438624179329843848524197945441785348747770062926166705935646092296623600209490799306491476736975885495816941914487839898131589084112419329787893534990636300894539898218463210636073785034923290335934967058203751509231160533071710621176060343758668447458061354785368417530711585117696008996396408158196913713690641158840071468461951718304386849010581947779443635060127989647597029666291257046770482387530572541415776468137182281458409014738104893553265666527814480854431969161762523899532774226676239801816938850490636952072347437443034532967145344983318078747097574802167770531010622428491484497806347238011426607539180631448840605779112885811791918834835178664338591286206839089275995663923552716930920762596712995504902698615788127739314101271446008172047036365201836626544850911740565588375154417697777184469293159365164707164181572328683414420061216991426445623781064085748061986625964870266558842213521629539847370023690820882799299765625439569775647779337910449231184132517341965171038381926621957580933038457777986115714424100614017086134025817154371789705192176953368865019514611816247528693747118940659644865351557654260587591686669854523478427462063139128669656212464588339485688285821750619063847461486421031981763158010008548667855355913317578745132456793147095256046344323867899861090999934080786681434528812802027054415407598905179772764795144739994799663251493117982264854735637326281420408753175069773995384228892540870219571356816469708625039988056607648735562777804296812662900569073965486795443544007614792471908695553415994089937591604269593913346373144366294336794506612313998030571352701027057371775577047928924552520621351939695191985344133006564585565743579367800363361892121896368821531285277259331316368955723825002002868224289069084773250777034323378974401244757794031974928311254521245869027241637551707697173244496772996584306182211240410031098219041415494932529344679397898950764919851390969115878401990499813190032450217004852558330175768225601556023346656129198903537236316907158868355974147155654122714507448142177990209347579203007835773255101289494202877817616237347789965919441113443347811320280524499471555122063676131170319268207894463971897506546181182674374217396538843176168505703782645300661034739781292225699482006619243525114599628661617164622066728661887190445618843812197529922152274869063468534629461368703898410314759955112549215619450736241801366954981690591519477351840763345957102507037461813619267222841647088424563461164191752836074077215147201971265858811105397737947697179359948694723717556255898892636829033600731982733480778036768166518439700537562619577255155612910229392142172738759703969453798326480721306113942637881830489563236265295836909416608233660266745997163203834100370313243920179178243387181880289473341328469152545549274880189859791761358107239370671051295246687362547532976343680914258151155611548488342999168390463459080343231988973324610088978334300704527862564282221514507241128806612657334469357122911191505645828236323835389839564964305890956169987605011362502291405372396915717208910548284808095551475937693570380807043229021761787557650243080427248830544036141822064319504959649244357771957598281918962694327284119284694347300126267037574076716133606675622082197865052874958162358353352939994286183861984699737208169499168641992717981918880991290586988825003931750701261360014634030241480516936074432639698888543588719695448604292003686536079922238246957307449900896699956153201557771852377857985947253868244475325980655800366001103868841124419378693281546598992928979632963889581222145354344924950154772266478433178906404363804675489128704095177935180054809960540111207780553259966882363161039399889285491637136728998521916865873612203465379502571649214872234579236049168240024976872282778701603397810448620005087578506351863149872017773463096022780518752865872090237542354599703097646604702140071681735594116966524513834392019099787939346689161216032708830403363403243454990629565642838930557507437713041535106346530461491188791221750586834618626629280738417183375995862351118407033214389338880662992356264154106328114884905147865687230225009429806140982197901627276255869481953696842865272473601511353683763210380135724807032693405700382841624618671753768517571841806954693295423827281313615845983995342921394730776591579213036022131807300323645713163497439465509093382514468087345502166258561469274238372356804515250481179286315558009463346602196588357400456627451357489007947006287506085467940910619577253677286722474755964616182391918821303330644782738199258971051409923110704857268273967844357122646771345958787639023820789153236729597074007280863320502207017809137184822178552064118147954423412846969482664062854182472413811645572245824614224575569802475502183797247226828713255492468102141155717907212022002081182274447779750881453355008873189735137111701954746313609604612648726264770594340588328550735227708093862451282636512198010275803939068993025618980581471209563341439253635876960752860364036664143446045633350448961576068794943317835969054295213527902866656272651748832912586343513613132411575976505844803801494721037568208595127022437575872746422730236651917163993469156072950120102116001486126704819459201912477804457006043684307081544637076427032363749359300903106699828374673830846477877507604369678979275508963217424246133375613551239949342398984469749426248605130614722266162176725122128058836449268450301289810447702333357073521886782190033702861287567100585299470479609699388715708238644488205607727311475503236024882006895293662263390762196123758325551271161275457672313116363780634785874355720956641703138914134021110646197925769813919385452189570142288778353848101022174728227434965812226223040276238633388660582201859375797829029125667638301100759968229498836614739766826346518233724778836073835389775251920436176575218598358108419945537955305000684467260435525450295652317616459929335501900807076879163966231707502729121336567798800160289619934421457609013673276051851721193835623237172604474053821045275638170030387829875186952820645267037685255963248779175385583178585702413789882673852548422063884036308223463522111226589363390112240109973377089414212556805898988660320957186684247251173944473415795832799199593415367806948262877199622406269748142470122210414128109297086541887634470507633472539323197126962803994703393693789682454371867971110155020513875687924761554428821288305541201780236035822814841540658838377718252814874322414464711546545741752381503546805412344570496660086787478636941187613512538908647910963296230052528584185135440858150503696026737753402904990720060303046121327014823821451343173360030631602426703081696437473324984778878327232735264696869503935574347203816178404511953811697992384840145301381060987922396099631475060985885667751301865843288753441618671162921517373607605701305401153828714085978664743284887842742783281733132283397783637828782927951134932050026285096962373493172551526531795068599831721029134636758095873253369673371931931011636804149911863266945348087468729344689870353551436947155745643202558252516156951132005720556729949712137192637422045265360971400285651607183061665828732539146864247174833186112240357653107456243459048599675729189021558859948103927850603946559913315870145724859259030059631943237189309483536189153700263006524749823078378772421411539969058375318874597578092330553754913497886100296979494055456372125279319915579134030757280886583212213606622089673309888572575140490475304913050055540543202933709395121938891420752116613232390499756130108917821612864766789780568644072737257353196197186942153874748851397082912328189025915429321153138746861581455234306696411643652251052211352029971890271414859645138065542601725899693082306161281490356894940313411646136480466402570867294761349569173248256476641862901994907950262698347512448306907549877817642266790765659384116660690112404137335283648033773489880416300530478630680962452382581057467058694578561262467293494966579866648111137213719933624648970532972068585966484811980910545739309274884189518810557238949850502711189780771975779699590586654059198772961200781139279757145002754774628586289630453138097839047473351613284363692591425138343351909151352189827923545919435733906947253504357100003894412511428322595569950637554527594198608495523544364026284290580944452450804466982699988413404762474043247837831860437347906559015738306733530094816780143568957431394697065341332913510123322133973245772856605637201434328325180897923259538823394560356876063223744551055876138694292872247868179295069684135693355536867413881789757798555531371498317150670907835443851407137945977243729807932390365544206691176684135770075766425961686750938281957418637163454139931293519915563298476238321415419223142397288943441813603927829804919487004015656301260982474136032280373633959824856622027902860628884355101748048225486111674588027087442661021696907816412797188458105922288372299513047065462474293252095652084724261812368260089533604579024251884593314691379083355662496491975028613403774888020286242148076160536828589760248841229580078326689268758796487995357661970060359538731411706344824653523365648726597172384828461250683166186986970706585575442896281857975054790275112665184307787434476390415010511227052515045898235868217862088889731526413844432639179274522041545610087767803422528607263304797615902463858025123787957841328503540090085950724211891283546553519593381006823629768050485803398633728635670913564480945585496538652480108644372064054864236365945151268620858591680845835228011872721818071462238525475769385818769763055277261508595043737406751942350363699739533889892758741839742242971982287862538425308813752578812746686151924952706013666805060386213084005390635914890879638576315702794123436799477897541508449512414081181820210184608317221970772329908513868092103829006280353876052819745539794939265310584702456801278444862254840275271708805122406105074678215657705843245717464483383394876025155466199738260658465647553426390909623825244586566349721323302964779073099007129755907109003497277285744882879930824917409180676676266608361080761125253062035872541367057908259585640114994728651455632260690734649343655959598423959063256136844356633665756017141088633619224745793065550479217111470760764340084593456375099884023912992623636667009684057283629879774109999037382699523877191350786221926281010586320255799532239602718800227303590257936938380672754470758761078795670756841698928236172530749843925465170175892505328403668654708358820765994109831481811765317637668480273300678302595564329570520834703549941370491286604701548060170351152550608173402802021713535176962064983740767173184845860700725762009656841987001049254235625769661174176952604715379376550879245360425973490909418465565306936745632746045240717104857881189590330721889993613506798365265729863002130228976718728956740474294948047852677272766475181570102894726311803177408452021484290804503101685854648742063050440470480801028215240001800192362119083890592977138928341802299456100121780304641194166158332289687256046314461020789158187320871302202384413010828859288143190216958045166645842615758024697319306610187227547104360008146435170674172809705418979170380340892147020055483743371592861988419829776571323681010544508575001238755502158944247226729590401022122535603325604196704312188005653712631768722478365397048665410798500199513005907442721364037979409729005358228570366517215824059960957376117860168095010877198663270908215437912274005532918821365599629477834852174847265263173493347891553871814446614474681439324076863829393052783699133717036625899783502094136880263277192828893851516291411119991775724338913994356335806016533207099091227864230576063296988377188180546416907230077818464768552117648293543818883130892268778798959833302314184079517665739236408283927303157189801937290285871759440286111830507168610030053431588967593873787114305717687762807757931484778767050930668043395861087688860634657728262163873641579188340456823885251160279543794080702901685823478435735919607781446248210960430228618477719196817113453795454122899913863490265787503032872122662689851564932266705568589832640923600305317470006776420281308853338497099043224917470589164056687568466198550262392081788141600114003994807578813916923969338110740209870980356258779255047320769909617195821278840347772053530085050527030441012073083172688556455958516811314219604132907442356214690866898813347521841785228151849192495661650368414094080132330978946124084903235530502160179199860812428058314483611332788160627802591574509272210831908869313778785594273693700202194225268227990608302068837358883579758021008615720612903177168653743891035493186410952915338368110876972567071615154636599451469986219466974795858033306758400415369194942009698958604227775553775074508101398676704123246388206874595858691605928326519299402546731338739645360994898035151358235361466901354632377519886986589320142185459762719472080356618852792104483635939990104265832037738661079015909808096231782540104207681779905050680230484377812174149768826524585953484635468254445824283636773198960381811226399762647151034631952139751240393171818608921856881513221662710096558575651837941211984108134554803634513045001468459886292406234250719501949838996204235298086580951333806948243824389651040341815441184056573066725550619748865856458499795291587635120451529407734332309577856916704381696540347023468437974151473971431523089347943042147809637663169243162919423629327302779186553274370836431896473651410724637216906679529572281981187569870065239098520127619523029318453760028765008809765634513922206797040509562704885931112803049034967559357254156367030210512908190899651139528589038879737590596331949425059743800750218508465180719869367618554283815654057605500415892680749442796572863568139234257469699512625860511331460641328173700285771083225645831628519614730796865628517715497984275672762776928141931258474471022752776784532281733652475488714163817521671743418510758003536786600197071166909404872062300471929707524581935464559941082034503862780123076595812280975829135108265812112561262949156002250024968304785303534014803587994796800272302378416910253611981380994914956303219629993416469069313183646834336690470475985911808997994697376359405805168004163629534587557400991242540315610905258736191863439111432831640688329539592876039947035730673001312325457754907552898662992357094024642566635677784869504919524287395157329615320718156203967968164022776468776046454046630014129462285395338622822135737182664351728639588903638766946482677848746089493480515514125925585132096068454050353378124779612761531035637702901723427689840297008886264478253319126121439047416361997234808693145449443665848841128063990938063573779017339518945903099075267140797497920801093757818199006978524703257581827632414701915225324864804200465218356401166736356949210817793913918382959320836341347076441872105098231825987853491014532514826670251465891616196137047401167613482158154751839946795551956863193178546423126808741571932658631567830205544222014166489897605800340396567985544928117940688350800092267228215090122640580333007057254644514436256166923783128933468963189213419282422785139430116197516934987114903463689909826063623540588967095675085358371810777968473303768894065836538775184609987071108853063759508968167673866008246836810237993132336319903174402733084421211978591173207111201366419984059651819526075159290223181111663831898351795114431502227077926707502865870933795080140438198780422604945639402235192350338122995462175030354457995121397629529442350860808903474450824579679011982422982844050899454599192914851494233989092675312518449696924339241767595973607027512577634346546319078383459164831658016436974861306834367457234933550377741983196829509872344231286858040971897303020189707226461146589540275607214985516300988982888125910648522649177942542322628310254205126356183980607312830618190693312358080405331908885833646383996783565944788731932012839858149390227459161659698391710898115298611150398076112813194886721822972594974351579523650555927603684401446491895596942832542476425564215674821232473864575678107881023744331623610814774544721884338450370596365959233712305656905168081582918794518584684537821123076910291482401889330052001092574047346725815689831646211676763608616384548429609014167847556208447286681278367676981618059677202924734167698954056647401329919555987584934397288098420178458262090887387761710740996873981436261683815425987074827645039850443506709346554058311183880721415561557567998728937279974556038182069102570055956387585321273841547255006198734327915346886521600682335904850330823574127505236447224940501784811022351810186820300943499895945262760400381248026104347345068245665431462844385446792945846047980642587357112700340333577449621491214468771657896282153813934289602407221278568577753015946685357593007457401717165455700067553364289742442284606603739510889617408128035620220532886455500442492849207425900171357703555378131400888547986997401995870812996463078832927789824666411910427588188183004678004058213848438021216427788283406115067242846766471779040937205673459893629266483645086147667002080958619030933616710723522077526717958226382773843092715778784337190879554215992099591368913905726283063887562313025839613132274541750211889383041522962623428906136055460452445577017309417216139486968217908890930407892225160330348226687493006563146833950872595206447909976206870377117141116334653004745863923957327661736109055871790479526657415650322354662987712655484047208066547114686882605625667276187976453595160929521999662467000778749464592738884574515854992696389780559269652893148515750502825079290415572294766064874324461717599260172763751698571739012470702201604367418237510885059821878624858721364540340594366043132484380266410777191512736643683130266598974323874959130141310914399308426040586542302070282450710139858121640461981973221472730402207447702557031962799643161014569687126246379571613380272577705895135472517384259461162798124171295729140625231792729766905905684923812727867529577008186332399931372396038665131308873645641265645780573252834932358842802928591904722766607385978621896722386352955506193830755181308107098690929777893531091372803499043626878578906540146652938413978704184144896295943658521435300117123158880020205413198310735187788153015215272543431414625961261961827767211996336202542986799854783718937100170688926972928684563851939608092477621219574997935110886553589946130982541998692985704118407117992861549747031179120862436285158435669781274206839699608375829669934268233764729235390846901927911109901617856552467512046560416136533824891644975773336231317307657466035075030886291750383622733464184217529084149544104147129204478291948049202513709430208198015014023699948429008290133320401710583616737618846448421033993375507443403104778733591567639641625916429673561491095809889057276003697635243601418929988740628207954976316506434100889367013153937580708709696958366938410358470780754814730284297842406066176268005840696625961339441403864111216572997481541905347705707432052732445186270618061002740648029490022258188591552349970156986793025937437822440861117382038675156029554148617245930116380041662455576777085212279816625608009771067074750908495814453247538565989606839729770740800047046560916746049934699378385995232702664973361079689472555614518125406167223706754620966099148191288777113898591813334891037785021899644171173827390355962254971069973946479412160856213913904757160692744963439987676556848352730424678769152768019336224834881844585536530175320854942106600219353994883984674127639024721226654475246360460871272497504244299988920188641372508284991986268713453661696065249545203733339345582480617841375508990840696096061241803152861580816760922943468968675686718052083269094769661121788195460673456861233117622464547476923580575554491952854899500506410510394800054610182415508789953135235166272171210695282173405368906178972593964851215170530562923631777715395411916220029778654376418933458561893637107458795914958559599132141919412252709215015818921242402242578488956773909048846480388862542767001505876355184167105002162329602008731798581747163140796368240453993389670875985938974104243424544077899753743991363782389916855484162458015860334968537582815943975073385875969108619729983172606882400344682932905660416641982693702548746867326678283304227327855203051722000984552602973751586165660631660374757720701564348363763652469355111150210485941662199192328488213086107512886904826004017542965083887265151438878344017116101808409880104043386853018462417888233338014301657508870441443099686251823176380760547728219979469727285922530820348074931679843409321053107161725856962994770515631607298956169015250426393549721478681486601837364654019926566220005474176966254148393227174561392609191584352966134564273869272008658350374522782979491062258355366943016209966217408545742630408570836400691886647216236915525412219978795589625214624604967102080038333195966445242280683789284500695566903746763379163502926868368442980458993084078649253976096536149100556302249567111602568022472041910217835013022582958646551217316992903154701976706454393684603780787394439630657361548248180893967242593101832974130284775307127979483143011866554789028704180778482262516446387084647430960040390737428909562806254485018645338989578612725256745235047463747385669040950131220580235769705602295319040445253883209104358749087391392671266113551113743379979430833398530505147882067798140801170659997011325257032934684701234297033164572752887816556940146068575326876379226415492688169083670266389625096188915677542253924478516071529357480457786565091796759304285798370788793853765908126144938244105362778388974691123379146878200588851157477298634580926623773274721971326418334189080867001133300681796609904750357195236116059859784415349983361497659805347578271847219343099559236115174500527751337926579674463786945147602535227343579270410467076332052067284780285499163540714595154555239135879728958814033849499509892037653295414907245755999150716987051915924502926537882471129183394384019474943729451202723562761944011864904602089870441586767367348939676081121380403686898183625178696410503153211601916555861899006782173029415198230982439779935539877634138717925091328352305261148054002544840246331540554926384128698212880080329409078075789314006768985389442001950199372092464070849799728423671529863642450508095676725096334200540295176729032253478149126028751722616920218464423431983336957300917121601001893833039347158761244093599737824048483410090650292935951179454865261448440804369439521972999159006927041380662461972957898654396173755198835348512042978921614464696240855860250277806590818843651281757179083792716999782682003571882149532186658851910540177973613388835871230339238018209809480396129982945850770218634272170681358132656102893746359297920901791134278472540346361732266682889222848007845511496117958232352123026411626974203059519542905227294296207985423650507441427353886852160786830853737247281828920363341980243724275246972650083498399354043577600174024097546591841828139253275883047480135287356683981695620650754344918047795949374192483139275375000225926855090306096300285828251460674271942845274521465243713315660534686418858671734873863967110046697193893129109171913866430851109322211180075002072943063321208742922026376028548462484621716848341022924299670672497826457372161736560248858062552776960808667386324597370116537038900318984833598257221233753945634574941965050152036623371146046444377092870424245844344455346291573520371708265876710344821841500903185706890455159178596953273184536948535610903400150543362188030005561026630784527712534220295734294410018490939067125835091560224598064799107789669013061064140869375826590636105442893327589200202409050681768135766041283846464399636008884530146550930763063897506019084041058713771016813670716160609007774552208534637586456243891152628147040707849547626598934489678623764434481177304859946453535709767597107006164680822854041766653799609883874916829149308529570806466842573633867235901905386359129098096775992755457185961008173801277304028590230420098029781041982442476483213554874053974993102597370294834120905888758981440336614629057920313556002227282933589144734719355078157141842985857922757518157652131282931034610419290407989658594777056753662503701692297295415561273485166478835987994721554144772893495420061230419018231413416473163756164701028875069047621698394287682448212550264336285658413531690264425586666742696275116628101309523266067130344144990831693008697048739100339708517310649592100929697620900288709857813961813729661234285432380762908399781248688688555040588620720677304444538985867622072001917853935529976300897626489814681063846742602554019539978669445023439683815659901821426342687153773931302172036620148352573707743950473074401189411926858639459970892627763589120087372312682228601218353419376228955599638631133681309799208513068082951356959078474972734724332388853994533657264035630822260874337498468082698799441229201636180782656590755342831560884065748371097276472572987184128361951813737294816169442960823174520533252114393054089270378621773738288075251445597661126232665302400587023936536047445622730845337183465668620438446646865643227086935536382258076195556337992488798809328380198714314993256707626376238338005201758503689169788815090493154827661027030734325565755436078655923672406207878206594125368743425806727356853927110634190331610302847353395911683660196022485933181957716168134988289191217532579655458788108090391630648167264983238432629433043190849581457800901121691212631578885116033619893666985371713382003535763400523726186794207821973701367831188926337053127889042745221212527859262732228213850691497680980750949694868348269966295641924967084398591977859938141613120590118668574979658744180046330038697832578117500788348800262129955801158915286347670645357333083794430094952758143678648058252456474180589828604030867947429907721667211776809209862097121481269395651391342357643953540204041796583476151931658523061487545204447130129330285192688612492646072106675563300174482717909214084636509596924470474402249357084163355256955185022205727797341938115820619093645211751631616174391959939784585971759719403238116361518570975878922291263121642286536023185371027322454781055580125657238576414538291737847289559385010658625244395006364197241344701223097763978438872802012586609883874071033070292687571451159521934562207414988867523561472379760673313787265094695559820940167975153651005780848443954517692177437732554959111639993959396538508958614457705930604998148757123406450566480139656265109169139194464305718970020049188097710765403322955799598016195058575257168357970142554196459929118555446608384238599016129779929430151556596925307461164166574362931119541558994438417561167698822958785613659064198079946952398037791050169233997535584742415395971036579021824807571112166505066399295884514088968695686122951216780208746125409828794596657856939527207324848862537643193967121522979888931075780027032787563971282855463008785610927921780232070381742857195091199835003012645956995102042954833634339705512013776790883247667899371566293227826806912053078855980301023812517689377951596133628719916927992634404884386989546821316558777814485081534473003644434976132725332876576374101658591151572188306900786951299835782183569405661592902994061361233393805639768106595092262982963830318418677128752714987077134266451333442169870324360193836209272107524467839683295737419546450098943395882829174604233453008752211320211249605459961216649855447157630100907978681797813342375370777279255569355201847583684510447706429295465002920829434481839910211391071957125572957079679499245092886017196045137711424743655658772503447062905075342958532923609817916139923144579527851568132005288218008710110016385152375701984550905781868472203690875734259760839131955543116311547800100340848601373629401019240884174732912904446825072326329887133819966466035786406025965716335719140766021550986098601906070652018519827347785136079160184981202016809756232911089970912304004376547785742101410230208305781910827127775292780006122525750399525212272909793533001916732259714715054602507579085228070155689669523447354579910046351763510738522584449768938758460515116622084786224708637631208394041000330631661647943104275444364981593130177842999492078586514572020683540424734668508144348792804531491211628963298112313367635463570655307355677727947183999887622129414661174087649732953520676033949732373189761752648760552308206427599744528005776923026558412254823703647018301744361199270531413759501686528606955186951890496893865928667573503484896850823469044343619813285616033534538028465754273727665544155611138280012160807697061742641520478606944443502928303722224706607902778565367426612607599282445282077745959110824310176414346495903261107645668269854473909182477264996987665005233181702027212594024230230757109068676750435263614978550525271123118046180149420890166130118674472222848635961746833329528572397736419035043221163040217295891104603335503577155183989900273645901723161604545578876122687431890976787640348313931688527252169496720245236866131248740172671078333111855478276606422068415467064913357155068817706399961167848330181551867894440902147923641432833984614997630757857932047871227676732852706582909708492965258953987151593623901433435574882612267157374310165767779503560396072854280255852127957430212025819282137132640828710732932942691093388018958238320131467041309639097927435963347553039686207761435307635391411365289650963379461995348361516416595188815626074124797498865352211278106714366120607527071329460330666947842900437072849491299608327951705266729890352361897384940845924732139096702876490008741993753837234212950156216204415615578189863590493745387283707613379003894341427841018609149555683970411786180652978439777915105265551265418763701010297794573695486390589210721120536916750029679623892271009516439924694306450985881428126053720700024811426400701744287096265965395578010349222803292634195758060581975253323574775112806357537113534878344296617159260612768003517070735627683462636333090431703542748416956535032388638623260847084733627832144432805733217765599077125225625158799010407554664384016348317119418283913499852182407134478147483362997247756131327016987192483931404215538154088040140934356598112338624579556134585291919287623626328763150339909110911415430365111757071520478223848610358281757768831943885322358256041581323544168263952978904968986852007747995004014543235215248710856763959311867995447933674158720331177672187028792343169569075543421358665063827748166805547270113186535772165217981934203705459994842284699768696659591404325516335138775833494708730764161156541554226478031489858230246628368603713062296523362575125403041932216052129981122116511566660044225893535939420922130999000704475148508522652992051122307852492879652664395108910060602406844961695891126471667200310114760799217292019155203938286063023921341491328982995817418639133777935527294867644411967527766751735845542601432357823638179871889776213938261498288048162023101107696759683434515835064967853467606683757596230113364730925426277435737719413510845309362995103659369060340867855867345037368867827722352542495274406126820656364167770805682607984605886114819542392707065134666567889842583278248666462143170689505696617869063944715901290052164416198905125450650922601145827168711691260678479008798113885166773414953837538893614548997773956898652937962541712053075263045185393294176666755329513717460749615031839780768793699799795673104487510279844636124517032397916450632729956328828498853533873009433611014411492103444273942845881402258955628490392878230916973871143533181274094052056467240553919809588373297531312881528825982996733442421427376216535160149900605691066288306001553325507381615222898262615153552191943010422138289714254009309772117781901352005535999619285583914599697539633765368686267193779559685664945472566640251513142927172025504375615779955550074043406346254100601890149398056261118466711187419295322467526806545040025186208209405729495015822813125817805118725750085438954195197632868887645001252107430141811582637118999730239546545940124311265525476057218843850094604217541352318339831647511378922957134547959527623486252985879337938522046751242587636393313978131241259296574866378261612961308693929487512100875375409898758573909924418524536081735416528791234134175515478706355545430778159468253427252234431839145757667499941610050562576327641802848866700972236158618910882677884455629745009522648935204744225685783202479515104260031208493843708690673406417317358970074517118531089478723871336987522849348622228994613878443136768355738638673493851935686602166688274112753414825060151853790728260232040424020386175395518190828552961924744415526973326402011930642289896105831597210740021262814331728410468723495973799995305027986344278976449133456594613642229200028690313328091835572978711887432155789928403154181418481642301335192545701216835465699971254600110871721532656152013620492031373648131079100807933766115956397705500577245164544739070907813982798713266651792158379920347539466348870484165813570365960649266732638536159206694615267670432416889083832647963387325961330120154651148877546047473897008797487991689319597117923479469841938819365781478047066227232653820288761793836161263380866844359788386328225573782439402996035824001271295693753686214367778736590139899626507497020482650400453810153402228796536307934305572025171614955478174403466796487320718758387244578250557247117889919637767229252790615123117465296608422488785021821124780097006537819014037241199354474890521027049509482430244575418701752003129663530062398979352638663875012478356023388642243281759922341039342991869547622952651826297733202900967086868910351439887431744572928288507972254784141832785170640127951705519049201017635886776848021411654104965804662393281315344742465356520711607501447947025894689819226060160058550924917054397854507550054964294417940900329153771420486863728298973698748364615003472186155465491314823014189133223304054420997790216765223709367271105855365028160204416259522265379252248962369436055087116389163983110510858967003488539047684638142798176119844202112443859756203525458281544680255395138681737604495467817220831770883697822857670892250889688434903297068948020127375999245935976469291857852136228086498561124312552598268205412304497512557020959127236590321518594217487357240932813355706396125208372756716940547203206340046163079242718925833357988913706536228694456426962369208432613253116507187241329450891949385405160890445147585620187189215445134617782514183341014768108328243707596696149580313465040982127255091948638157147373360843815901079177563916866376018657876294124100930740184565918333840475682199952630661855913931551484315754891432109151334551557174976401515559736598773135019815265152969501862624015906951072817376153002245684186507568415756435183991889102716018481447024729745722607682276615881602566408661663794176646054778362040149872595481222582057175676207776611085964056162818694690450287444175550343487575076646592639885274532720066753337917863057133643959246244789284412699495974217511644999400895202667314655872629942356063317939828443861042914134576981277998383664450413280826322013431280536969765912565490403662180095596170987004840020810921334185051758760258504146020712692237784499841163996885096541012536893768582885265668861817764410684314042746516395487267993604397871633899261915397492357677061630809032065127951487921061240926454487710469796320824329432426909459219752142827595783951846106278837858959480946956882030420428391426572544398188746170219769578822626632461420804177666205494534435097451545455739454905667342783691952814683420687481026817549190069689497327611173355533515588608494285195139678458135891345195346274007370084527318125797542848959497045861366537681437800074655708131231531328755755180748755983523409602258134115264301351762408786634521370236875682751510833301487721540671064375530195917247143504002299574903797170828395525541242274297919602923126149964347867518177747379722988898379195591635610178905124266015598080034976249713351898417215488822340262816974341014867318950818602011734128762015547061193547721143983275931291742700387094493814220614150835431462462965364447774966196813901994060029129276453215344277322654744993466871676280128662914016915654784527201524886659656101717866933231081650442544449350176897981534648805358289488746393176334018243301044645577413532471827037246034565371435305884776680119135771514725319801509903341723632699865534910427842159279956919389776986401447155260327741623974429246006727217360946666902513552576972584875693128814455707180204348764140720104127416205300727952155434439475965586682509607633639088871398238874182223686462162309730672987720161958072247854765434023489058895671356311887841311361290821895268203206304274880747940287469282267796490353610426778870243411485836136456681248580922678949222144865336044659125631505400584803937033406528960917919727601619944181935021397784391972511907430133698593577455899613199547822543538162671937457530073951758446146807059837812138234363812257435033807555257733209572157225514429294446182600262890466144326231113958296924414769298779354774131608989323859579388264634832584758924903576181771708612372325667901599381563608370029452833660527050019976812631910710086819824048244526173036253066821073613001898808217036950216716643961181274823591183278556838415664519097124265379400140415347587409646597158707696089248056976354191377074249586126579873937772320908561964166703517679402293626196897585687464835904712392271262199635414941394282003383539503361525891989816510085516045094981077734037426112048509234808623503355292413320797375420895804028481598145492626921206718177796051929538545522200003202619881022990750546336247949585409752460074065735569065433508280884440452255520378306719473467771268394640007313736279826264927245158415467703227979824865439255317507356968257199708782344138358597975030554632247292991197671294090139840180721769461782310660855285437081567100056655730776869217926171628671954207337688146089488721422561338261636998362066860654251055705718976395078849559805169344023016510098664736811611207560488867374266539519090469306065881854076725200376050735209017801910792689007454575111022589263826073054358045069038790902516257543919895722265739038917653971675687369703322782108450410571745127481836173418951079367615485767277705622055106040273004904358593061378093105639821512315673229550331110939683719007323307848209750804215864177812862217862025715691674678920681497816270961720699799167862987524825593751321739797002937072166710666359742267949620951241162134961561002125206558019507890745991684247810207516600117431623404353069395721146260646654836127333306435582991165558272851886982046887093658684549173776379421470939450678670359308721514205944421556901292158763129841977228207253867848057801925903076032230176910174521663590725577665564012753941202168685633023774874618204266875788734008226357985599148700164188005172835948139051399154766613051410001269869042902134256039888976780017540412591841095783359653242340698269087251217866807564385703830398399769281215735087367371289822196768057991786212750453932378411617568460933080781732759624146493923517082392928276133501141701389397311859008719736349578591192868360337893687924770956125105115031693483256071147344543220668836326757784907482714716837518010306741191673268238902528976679000760036259967178995476347420538189309762915789572126729278434349408117948869874552269834599656350661717484739390687584305851039386561711770461085340456907987894393694672951892715716595869479390760992199353071055457332483751751760777610146857961860829689593023562240530884970534081450219484278699592076190234849587814735359981864263699639092027733240957670293651219922698173967521389074377085968512779701018888473144661815967612444033629794541385316998234779493748953174467408249108437336961223608524485235999878337181700014676977625791387529478750919856315614551149724554526842475177299574362145558736697200335430169056051922406699497710708559142480872511870721347732987698020686769004650989610791735909922925048149968080519501980659426497683308949702710686627860230395196264512759411719523460314061800927828062075184706929224666203011723055177313867559166335478432549245115392122931846158911534770647565403942793070133576877294356944127371459378765886632459910976609585547747713612077857194956669311171414762073497536950680189319800473233150695006091252704938792302592030617213670757032837436301521722393153925321066321363683224566336826123328985125322911610124227972377231421810496119946962914868561809226572245728981344336995653631366274647927606985997993145882363659553464173363774499560511577933445565865810625493178669399367406862096824720960596573690425120679262067822567478190627507655592154289605888162727091307622707863961024103674436964974571117340773337520909553077834362462202126203150561852085362191616224155350058859100837580614938745176531892683809600830896332858715987065465150885485871905670873991397697341509701395648173230452498207764770885230555191162147004896698892394645599164890420438954221311171810360259271378183538183479069584227455832179124606292855343827155747067420321790217964358305282547572988934000298972019184552588991236708543471665117373333556142349916453704342840281548436669208601183826376698187470771515660914567851844439004072022512204333416346038713626254050810815870475999904288266824875889996782224498473126993421037369278471065841054747306916623610121131432262784321503455195601082599558696882272188488805163863913391511832122283541118157752567918436323316091911688206351234806448712650155385193509457749873422667294099688668119829291658880441065828207428725473975331132445462234081332226397830013018519778174365923328249251286411535354860316727489752012151529380146452789130901414138975788748026498227443456217184569689872933782752659581934745454413530946298314554558617232715948991299032312597931958091883740550465787894375951116490144749045625364201088260607523070680898515243364328038656989018785096702949538362619528564014906724434187383940770206561368170212940463514395211620120354860882681264207628887089899675925083767734685952066999613475081784389503668592574119323876797682860591011532798656472427699190425617134431562600423689516333724346169808953931353201520551024631682481192822220937544247144426642433253785662606641271135669321139772654234505131083789510856361636434090774101918984108412565500710346109337916200054854176528903790908471833597502103784824735187653191717038647849980988904635040291096264450332538899607621750202120141210131958442102217036250605195784257371211426798913994460834146302183747724618181002388361460999237797049985096942994280748402861976446989444853511602671719652501344602657430179376526373947017533100509620375134305152158122824532175571062205642845669269107400155409964842107363124351169008704499175146910587276494147690224861045053151680361704689852856745989708302958151790969572282198682114175417609950403980084833454331443765035111026827268378213264323639264085660205839492674725649883771735344422092247088140023540437128819671189764629745744501421038976197303331026613719644066167086970335933243151952945128761237275376059451998613012372806138789789255462766272733303804985256789776666270340179030554793058045247780182920125447135416284843362057252686833871319202583326812392469894599234737165326346298015114841449799633579947831038324350217661396191117335912968010787112359616117310115895744809296887294289889941714174474344836806529354452183998238578144312381363907574355295613072843932808647849717977492999156984395529597021710391356790803503779252870566367428165984140061759707485654685105366322206956175590115603510685525892583481846578304867247343569786253514482814560037541069471808401504927817748294376702864547368277843435151575748051376545568701430367203785586407017538514523511633266182328965803111920712690641515924885131941466399897965372475973647159360881639510512027011286730063595321530759027763866222507243660374522545254192870277073094669142848104729610336877794521485595438956190435052011364479694433228880122036755711398844180059428349681819719310043116197377272356317783828818877911300796565954490155929584748091825644894538894761730096554282793155959920653717249451327070301997168012806340076815687897929646872632501015883510174608077985465644492250157295891243429964629981644506143941784032900384475236689758693044993896466607216058691970801953890878636528551625480577758984453672084034662980267502524632418058392519363871089082966640102110694527434471693181726232726302256955890531695972440947694476506276294619808376882166533540613154737223398554126170536156626253410851049528861718768063126973248130880953309499998242231653785210283468026325068904749573687018875474940950912925877941558582902360243894494653784068661091819244451704027287044716595204322921018231714927098125263311307896663988236553579145932109304342054026299264394338431750525182954934382039630256052494310977360032562904967337821862799848165112574355431811942647820676574976252375550215858683292818849766317140420826418921553238528093881425702159495950857563439592827416276861535022934830966173494255913143096053670212680891556931169447080787393660951126099792531981286222333327701880368442844953285643192004954815715102740600829443351251728472426508184723860065631930820330954832241726745075071465952440301850520633245533304832389545322951779131248249059482832971369556464062043450559304787318629288031928754443805957428449954646611138573104308730263415861757376225492336700621715664657095596264063632979100186994071229884718604520270582409249815945528359693040816866526566662625082551524003493562482872752571508478060469358996488655600199537139290538865313721223031835430826668428081963931928846425504440804433101195293594725724790388391867849962584566100944202013955124181809610716477561473573092500859094527610603060096366098273074416861538962264122899018210812715169309516154398318268310993331918429180352659241125817802021844184457664474165986553586695338318343391993322571750973213635056187399075681495142562565735817650194621465848135389698663954505542788909945314982198921639693356860332842268038126329149625552398949245213730881258181515642253200099160323962294510761172173988079812586346331854688357462381271768255471608183073861926558088464467143636342491708978457814818424302827051220780518091153945532411961629281942711121914719777160574257567006066801060948903366985992338825099322399532323138879550094335935198241694303307642413299392839034122241063357880606357428536412811787001611804230012462778534214621973394127912012250638051959258316558534917831720393681692132699839992480185765757717443718856398759151419871893545811180640123324357270002094568964112874002977841267005764573862234004827692721379699930148542866577490364516748598197297886612529733507908467429832642482763773510893886792655711824095444489177808204704991029651739791083304812827292284135075098993552754101433412150434916311392696614844468953441695272002104144432763355475723003465329536223000739601032916600162615241230002440575926142454003868989790325169958297635735324927246810560879525598924512197875849965144107000602774113482797323573477078245416478525974504372068639054663400343989115255147632036186258416789980204355277540389661186585514901972320044742758557298213782887918225813305341653768550811590638466706334559396896169745832566777653914647861082819946781489673324548714852314794938917608501669893650125882222607652256744273925287289492206801175080746945096214705453148901650279081512318161323369421965225081274662360017214944148156818985876273161015220216048606819275724628725495141867394807220039446766251687538792380223118082083366848779137307396732188633353413821524888312387402892609012871147342630958325273907996211624931871540804003162067710927709082778889384918776770566826661662820325922984206809430286978721802069917264708737777346699389666633119065263447113708900411300802936906574967739573479226773309043872014197651902398269655571239814100795134990548665263575195388744644963755188914550970853313219870000660586538921009847121544898352074950100261171203973391970349339727584602937012272840319221177297328402322725191619783980704226873836398572787181468434872508159212117841210451317790832040370744813261061963320920637969084423964654261456946625911675632412335834436085744227143250035386272476276282743765563729793419421878999402337935157705457372730842139614501524302574019186958599307466245724228959520196690427183934139106963310643440580589999452097765307672756866010886519971696981574193825521509010616768305402663333163810012211010817472463482293505675301609419756340236119834234124688500319280376419740970464105446867417884910557132124466813001288902702376440455671070447046809568820741505308967594310094457497544111837600523202466847792956883821295223659414971880139366171893669376618410520527439001067693813432576301779541405517305264662464955876732708320337374829337458970356549070099684365177395881168522985342989383074168571378989349694459078727389434192807810341475209156462784401107963374879316548185926034699152712731024531856877099875157715757500297898467751772796593768285890881559741233773688164095316511795845844608518204032346399143077398686878683858210946719173577326741735296183293438188184770772037665120684085408253594781400172554504731437060386830676986301628045375623314375985306532076563043957246185816412909744540629936966843987970254632038304460856262116433039541722796546184640893649457684825272158502145505889171076366452197109027859187926376903234776061509097045431762776130620578429857766180173978681070130124537268966519114104027646359472290140876590133508318630685747603014720845910174897732303252072356292648489085015602332113919348969193535840398370708948434694176375576886443153037533865427054349838804333443076409385669449494165328658984492009256387858493335841266814838230023653674353497260913107812885918544101539324016639442182337474599666837024110942873529616589101558944726428334370878381334971452298492824587228919018117979223697887817911901294309307850177108374037364466033604380110828237454610853079964586305283643689372152919510948260497847727665455693284630042454179765960610012543491564858422946335210614673441729872895887589534012605296382846693837110993344719175967715516004773393072846353272300180354996984767785604630221583907749049652296945657983381036112068242212997473522926081847674410156095261563352267639499365678487608318186270131493641786118453433804158208678185061528066936219175565654337265635959215040132654142001674589116703395787543605854751216993607183405148735626035369922996710356319158600437666946975776545294108937803070033790732670985229815799881177202860140200731823354446979038775739922802542954803139113855234133754351531379458766827894416636341181771132938067289882432371001548821187374366146390483431229346282818568063605013861003136603770402089673860471983593113247246401555842745336706797063754593339343579974039325649990488858148053973807306804104527127150774260703021736575055845615276069455699499208099893128731526153192456596274658494929819075689139023145620101138438841766782500852943341593438915490851963634212544910125591985805995636220597074168737860355786514752301162627702174624621878177044004188530001632997150792780050175048032305484484785155293785853177953575350932008481376906006909653384866169650529440414377691482043236575333274456801816804314161880269898074992815170480932216684569517018217631839606571101854885620494043129114014500546398789535659878431510531947239230754852979440690747342334454757377098561805643712233029810118021022112325584552265703493273154632932703454847700783486065198449690599156846905657523615541723512519161572412956799197093756088019337631570046877228928682927734857965095070507916854316217893749812370799254939293092874372445077966659303141641055192562301579400496085721758167959175092785940509478150129869605869712270826887277059695086592155442356238036163059690103330108819398409766102899686588388385937640679412471380089888985498216295284434541352923067359208563798400905722829729017643726263963013790714013400036702970586946759199671535557230908184844366592858034591883694438312496127586004399390331712460463314954647326247694158720312936047709362813507008137014341872854712271720271179961209180031740404843292874432022363327244641845163007127575592603155768050816640280947785204872855847045395178441179857046383585017001650029923496638019065778280055816911423574762146854574350427547837440142925592957670149228526680463041050926254312201475968445350490871108525368412231155349341304536378600527303429482353861841923647346230447221699354745079288573055370995087011465840325280915015106950673554309379607579846973221589837617484889012575544865331197518903622865540892071531373957008855154546206214543121337102507633928310674859233065797778425078831150479179258584093518447571910159973613882304072031659101585552515862506177089405533636038473320173709511156344918033962610792723974860976055547220353022356148595864075895012197317660511651349147288371689125345317716285659421787764565365724896806866186693473166294192896599270161333906820611025656188451580746838257056753117812786906213910167421600600066424931357614366161322657054848919357235226237648309676803412710380554373404863148899458254566401988539720201900189107116428209782300970267422193018844391118207095927157177944216497132421232015660564751716360067170943433705840985644382188653274684621690530584525801108882392672296482820732439462938028556520922165425964254235770189562577538345284160344058950281354131748733564554625525248908079431376330066543398121518049575762532608795933307241644207563048223091867961089909212171494260485950855374497193918106266837912261250901777042405146057349950509270703733017548539067147165874378064969340335396650658018585274626040283607800681847638520038054290861827236900416162025073077175063067613418113923304578324204180016147068447478868925575526942233388598271794960247397501663820118029979598795986673881748200377845216752617138314904853297673175648233906876549540348453926361756533316596428883154269299930921726313719295839171690858092853724452489455279123011814309449546489451448941202732342653396938193084986488153247983425109354548224637095244368707088849967400945548990876577037813748926246923852245953809448816507148794280685005564523996152071733344036193596025053529344662059660550479821798290848376586403073857919923139356531984665119247329294217661438915664275805884296266750315557129101841637879858082801563178432982828167520796081061686913571866681883537043209530081625849126694062218666338968025019709179417954413901882186174259619539920969492683916216755840022480085375642228458152085730591422140755807135823959853188318029495090055775172826967739172705297012141712751948707995865482070329206077829874885766486806474491932386126935617320896489889011204676799818537917480468754668699259375086353846573974691509546495492835376363854455220597484837674596613332949894289686695069654095476160320612011282540532819945996901063019220805462511599730891111407894752812415745759288226714976367603913112780380537940773471881728842417887490346107561054517511614130668732377962195974029382314844061675973333101764856058970554248429086542193291053343820525982486205318032015366265307757125408684378964581091825417809350851377205821709712087231952242722714117834860165704996497193419463179091878938149294982637864042281870867969878955133796448628707938691866498494556277698421023889984690391740517457274868875921910508980067906478578091393568896774296581642176569552173640033681756267398014521073130495173112471163618284431276211514663949936430433973492539458497701222475178277454015012600431969675044417808048786956249617134940709077422825642921930988295151064763569786775994734319503349972771766966320814112052645278211931065414673602839911203502829166472623565129499475143881067681546348965030315360163502686243410707988564166015999008427140221866339692366880450715504334016876023925115078239903103693934028884478001366174293299731891074708106273193964562652679266613818415963356425755664636218782791553301507935943242386776973323782645065302936282573965812680063315990641560831582220310536097870117790841572237656636684840426429196998897640732280387437925903799160603589044743219461811805919323435124307883986993971218971756464331877909417402702827201308027248273611424088780555470921176586249763532120052429186036216126509398162872745141510624049874891290542785234600782450931817832573401552252706176173039975092061068200048508445588488767720100044000667529738287742827453803039973776528966312070521495130574183695970653373334987567544059098236288348544473907208168040426999168154125950559055262220530742601627098123421517798940681921005594373624519906702076289130772543856269295943316417203411271872013139547394978983140138607261859070621207422140990761438988807975309609037669817807713141066778150538224579123381436487306234191028939530807593912381265366554971205674015924453003871539047570858238330477621389301883984083538715048083357396161776881023763237497645770264009316532819448749340175139356587706038936843594183990082006233682833926951426121385714573922967736488912449235238359386007353780695073997913348397486812152138621825956043888836055494277756290635407229170429865288585338282035769482558261127236809667003182931879318174594978019177638702879478726832408713966481236363886917108970295926313379836217464203351703711187502719326854869839419512364188860546554802941739062874747574045199196189575000016414965305882767140185595743512511283035465101397335725386915606979482423606265331685979337692794426707708850502043766338871824108914066134900172667042668926805880529672700663018665980323260650259176052970653387962334431586557662729013640414076988001969161207622836457303306322381206810742056272090750825805298387017889029653144698222400813101601719352103283046359362094854436852590514243637664327893242696005619529262791261406962205105884460914954666970385600628332037921684696105219186836012413351015973148736893950353752227170703787331545267819298610374485049475695551859791774164491889953332975143255591852074834008982808617556891497503656581811604491463344256318588625875134463512792124824477001951028408962867018588558043881617127406491356294283757769515565417215104235944477163142837751681089440906768283313708460224337955009604266123212537795504080177246612538620510281123135449824879922563205697449008302133706473399508284012432782072937262982986455752593298589177482190906577094567391645027305878829462966508698188691400377248008653385598410620519374443202808003695918292730976316084470624838544432715489155891711830472354744326939128866993458344528980465120926959359090099494458948126767397847794898331425803053627262084132736217534413445145542831938198165972534412031014445634938088721578500879861871714597839624001263532444948737964307945531340692614847697319194155519339274057212837829470967262531777656193709933017602577030058996202118128594219953155189966355144713991056910678755666455658445277806904250145888134573232074082885500615628543250658113257886047056363667011144119911025382020364397320713538444025635693027699565686425380152677984666030355491001677875139213790763836366127887968293263629700251829336689277011431579840550043370546139675118889574685702526978487922244447453403970082438313068583222206681245272920012044443290609762770676306810139275449209988950860088166013585256846535882065790210942424824299682245639637171091043477114623589546777375455834922759807762975695787155350168107659066434547257637850223950741253553631897270808144281689178843704638477481146367460308946850963448065502961212942773341570617259551325330757031808311130780341767433990523324572873655163764075967307001849322098184770254447545187888106086749225993583810375696978632616719427233480905124149746283272903894389477393710039025674105165178587312278541744151408804401831657156919708512204354677728182048987635580855806748053417354120829819292970598575484256648799915481923369388787143106614533990708737126556542818741451671923250559667370936629082788177010926867151181296862261177140931383707910217797609808128409997971868198450650234284085401219107822726718281509336181284486478795159326765058369041721729614244369855823430721318527287254159198429147837257008212519299815227747214531410856214539359737673608057626727725699090551803167542841173025152817083036365651891752034666086933358971903058878128567692917985860605351140786143391674724709623186808928982470378143313438813681592246538363250434533793532443177210540536697001192595012647851223291629183524915312272758686556438467359921941673766290899789968563526072438430726315987408218651741878496727628286011944314516183797915940922777498287211740671630074379696705162846155061260412799709295202531455338122380220632771691473396281230202059622151277693352393028620786589409344051679248771745518690762940352478350595498630746579934104721304062800945489461451601619222356666738889650468839816730133537527925494248902937753572051247249085484730187103180865551028266103745036457396936954997934759128685289118840109154168980782597530212445411218698358496990413072290661558864015077108625471941152858780212572353206501179571431430271542514949841904643688813571243276889289758294246075062468329683065156846057692287057336460420334272357034602828011205599835257304115267339854640661620588505822084711856703347322894415219017992669020109898645500033572140297734702242153034437018450490593345345850768361403985719192653490740606609084024842152123842391185700053327856268358474014796371769434174442358618439731387137596519148222359294641711291394491835945131215235670360883537420705043248773241370666820728807174553825274567182210176082591909271847696148675674334047863957429438544111934178477122742679360779902060851280098193883116668121475008812941484103091740028499333151402151834793820188924853106423804056598652685110263333969639602939890961601067152100836283882116623047496055117872552135323665190023467937513604611863310571927619224696994155364344981469396445597972188284970398450067335394277348585086814170929068799428286677662688055208395736896261222304164578435921289150954771584843243965801991673857357146487654757922929477910334869822187250134862694566862325516812022288397019764516631809859668312694601693791830782179750613078983789903752410925855671790130667919704605773720498680401466306436117186472417337570917596611171667024250793088166469898844346939065694459498571503925302002773684481656188742597937544257835009423955400734912673209459005866282541510423112317246626717829818331416596083355742452676968859349312960217611601247224248267304494207089171379436237443225819068047761165215028521425464234543064897337282300213701855654023475937491802589389225223493158322802233118000379480058124871386343720177815358925432150188436096001790188274034298415996795642011694319375988412138230441007958277198824433853179155369162371465325805690166773160991233661269854856780584376932545207654017567328430587230172545219518458790486182556103858192064189922595186319014106245466645422384368974335680827451622308676195436769128663916745760069901649086269776253695548650131259803718970966828614567012137364945980998700315960107953791584759108062548854979881955253563681539996358154305329441436357252797930825329286331905401298981565444435651012514369880653838216533279793998556637012037543231035751408039425449371138964221730310864991214741891011856099731272932464901536635864245869503971151958629088181105363857269165782657457547181442786023209091522482442750540734632702487309934426732801373932370880033471880793777029926894766829498463507243787535976662375248663370203765720749444459943211021497411786986549288793292972599306963510813742434294040580626188305222218717521329260033898094159780085662317397073194740348129632619113396871202082273707946387832769187544886444253445229138294328692865601200870127737080636291946030554618092795838405427086194154655823612896368342541571589229126796871173346475061883315604576037354779429115220422271708085674857690802974118592581081464431473332211303986847434435651927495527004004761504197228340186298357226697239247350220942001412569095067477404902277210477160581830060554550526872660061539722142841363018181179635935773680130731047156228591377867287454007428848786380399002869539372682838525842600795967354937179260387993711670476489884640814912964496773579044481066943117649922210818820554460724083409526647341814626356524468799521969258513671554967015484878482876407310957703621713623430906547140267607093622236348759223464432151688281544867334407920954832389251305872005710308249780955868523422195667486257631330576390149575327221854171412417808685184779085803951290741100662994532445124173994872841902159092571208933757906431610702888220460107261469214193718678318641041519000046349102709847053246150289985424433675027219889145743431092452208515518642431411835601500718481361945499109027403207089913603417093626526637837931908585793974892441218796010037168172890964041682895397616322277382486377190615978681350931252610614051530791759589285086317126304880393395207914289868107388327840125879165399178408396345308624279491803791571824348017706273719999479713841352668973711265635873180573964035619096487959379967420166694500009481552187421396458865038568088072613686189579250280560302224442263845833470682025243986617264564556257918709593478903866747569121088628562760306735041814995707368412073563093726691908260510853413832057283023426312034917041438037336094445856610457820403069012717375588476295240668625571883652730365299744650548985047121847745925293058213413368720555751023132606719943917829854890835092168543238767529021421242729233581003047610607508440425545238996420403267013308847032503979780606649735281654880012480832902238970533819345610828737365573979531090812475881115477718808426335095482939948452025682845159035722257143345524725291186346322996479718718335872365734253057009271093558042059525054962407685103248101023009326771131581628564895492433693291757141507520162322037125285266164770017323187291751000491682042170457882917326339020160607511989782471024745726184948497709890687997291451017614850507385739082060271398086494621806987021217255265089950105518065874280328806479659891127897841830432498674051826876535187041075803678970133123265505149344082219614582332695624129407363691924318837902277031422889777337137955288320420666195699393352208135973180146912005966068621889118368792126280877537678938859413438680787670454297122317457413326194527692711358480128070959110435965072847342907656150067630003176830637988576280124747918877261046990759299336928123634381331304883086830883061771868900051896546224576606887002625709059300363242157367134168182900696785000050533819765181163481085122218850903857416414881464607331030888667174592910494856274897496476162701645203763744319477685313551602278372184954679370344180150072386493419262248417773300931195709758542739979450714163248947416605444326545538901247361022935831167363450190531178884483932747600705790284651094191058787459954077430402972618376630652326129367612345238920311340913603377935878786657105805902765706502136258491484596385467936438759329545984812443236641254807374289700997419317647085687208128216120191705873743193178549412969284444379336422107066122610286711957296595109667149492471313704476696966050703129852261362389817055080078901650163848608304083266625544845665460370353499836381999329348318120108242790452867625595590280287920344198681930933805241717168891338159360716630714893829658131211475203307219924950579338088769661428799535761956756793999523512344642769776860706457204111681592377734888051075668334828948051058948670560928888684766828813364712434670376399309721586498884965138637294636464669226566945062329283984988720512032394716177089908752868507713269796987035310088356367258118832018196582071633421268688807459940658432518640774221606444474118472196339677914850131604020466284531711682018822047729099938028035262990892883163450741482823655975436057670799065925045242647572154443605573150438846654907363560865871973679003679184545239520818078511375934092508474713709620007089571499815206419293214499937169177499580428357032986705673646101994541393706309494333121783285438251432919720704748875646072711368958529401579468993818435978351644150870035670683756049513401938251172363380662401736590815965093042084671478123014281773914940033070289188954723601514716963897550899809195748512156752933730896560090438007206938830540992604885019217128965843018062753245182976992911778670273175311899043726448105243415478252860800692266967837487576238440562428006483226633231220529191568554351044859095448251553385580608811591173396880284656327564031942512623387773950106379035530273881295695248983909825444448928754118795526712835377068422720127485320203984641434715279918544910690611231660856997044013155869277358717698091002518863962920065332899363273527722611578423250047024271389842627603654790926439089017960132211023007873901155585220837945464290086300944491567184517185208713353395516380813489173709476738665291835929665411158816367444281076207334320266960788142106044204889580658762158799785004285323526427530097316574780239937376562276928800713509808211508404041370571447401953172822551927726731675766475065699287445203164287455058750373800582351734926628370860546300676954694522942818841812261399774013197995318986397848290846511254273349021453746600697821940597633662343561503326732608658476853138753227393543904448159349986040192208255634556137329139021887405716983965090199678335893728333209662895622825214348535859675770816533301230602526817777862758092563823154492533124963677371100239550921990006094023221117066797317398824661069290324736425992186447176462828141938876627263881262366604165845311602010801208893466131050608286884632789267635932206936682634261104819110356083899038043562546348206542304630685418947004147190706589242250468916355821165317262504142335203402934816519347595301025764208820831144652604563836024207532436688898794080047078017912118078069632064028242266796460799836175723404028891282295654262876123858564695384104687420611515618758729651143883021628852414416782194662109303389130816028088926182737183275230880161319952789748051184783959458723578289592979156977154406569605884231336847170674546118377786425763010605572023674612895804506697732664205815516613343303421742982936501531924711595529214059422608613317532807252409622690702654096571150201464180496682501870246280122836136820867910121083727090792609331258304976240687436800493781462223424786755469317114541529758194765413458388984871534154523208359079309881189298107560405373871737594755753943763516055594895979399182294757918801354107729868017529325532131767171544023192574532428102416813923887319534738723390183326206820342130982686628699614917045051611228729787574162327476453491961510923976471315463887702763938883458523404946656269939823822133179990001097685625589616936212241371808827673153088224488621322198624667333999379795740511393619984047836526072533789377706985707876502342193775694413967175280440056420939682907434931270330233650330984554074228622117934098762878262227789206147749230859953434962523448086350049413664981243163868604797733243977553925031992032764943153326756667694008401181495939509341222950727975101188919807348036313710089274001398074667409147661661549204524042297985191313240282528134195141042098304312701369799120648867418579353581640057734058340365289353184631882242987152584842370003868303141846734070421949014829733492119235207983990476471197332316037583978733713424923809890923376581919046282820608083443864412869750839447601871718945313838493708728300733066034168561852541731451726636639535555507761705229465209215205861708951256871166138169112348529969040938625895919480371154321726951951304031490447975508686796342704123252548697002816909809158163630050761336452133417301568152419737464700549236742195655711579178636843777321518727491785276524821115574323992961531235413239153663675032140784365919434748832118669073220784920565855005565887919144642739464365018418784490382240074520576461749398984768169574322651799348023197159780709310120155734429229988894900152351264388316708908393812265386151837194089090044668604022260732150013591479952589094237442101178044711210498241974018931983123715057866464756521719118391338938452735232418366083412870467133587388148697303539236229583587519661443589730081751799210415160098280827679082423928027736405944550816956426311692014892746419442742640029550265263037432217332379430110595470957629487197903854391375554706841473980957487103312665188313162350316302208740013454551192128430026382453536194220677067035783827950468493444603083033178621158415447138208933828591643825821901628134613210786175644325598879191543863821431463971520135241580850480599317888994202554270017478620237907929013998171807747135756653673068415521181438108518107875617479281437224370405944855909057964570851697170134865469112152343587090824819524345787893723564216103836852061853270674861986289539518599075905741749744404061663059956717650448888234388816287995718495451720553551242437430986284695272481214609121436743176723797189805607390242610908268458516997998811444377453605730183643340648829461544234554832657251824674132701466002047543815307573179639825462571600364413067449659897961435630976322011304475918152621848950627315734002257426964249433937190782689240357681399594737167264574533792203329574132478325335615684273758139591080083803708046460044165863240535515234565088942274399530237341964129430002313000387645298774666627297108787352004078805280835962203887333531056753547720130727601262865761428415439019432906625303243397868723780301074119042517930125374108313964656510767046171224750073579211110406006012646828581719625255510128344737370619116265187294951335575719633638164218584544930950980692918211486405155151227338637163380879914661250715962807946164208928434387249626842054163104019942537020034313881054510902833616819909948793805633107450592671103013878030198842983984937668787364603779548613811766691317254219234590043217376462369192875192955949222559538770340602448532362115138831294696122574575445274447352219272943777610116704550727265794084699701213845180127664687477019294836760518052469543183365538350230787774859908451324967596688691142057148744141718167266830024410156982912502683235672408719937963958990513124558240396472158265442527239840180500049219784867512175013636361398813127016065804709825199983733306509062406462972347551068976136481938239630008022045370533084809835512420299432534897189269079380436419849806448148601700398388052767038064680930114130669561692691911150624723191071777994340662532794169915133960954033404784119517517035017359010711358240686376007421956245725875814327911673026321041267354801017010008750039881072132126003347116611659958749888049666049498608456461526863873495100053203769428314888370723168290099177152666844047992777546542041475867061416923073871214812533470125183941678455597574690138910577699218468616892117490817058418439964082117798744594554488081064112514024970943352877871072555424468162243699261283912753999889658584889218372677704474731370616132048997771221590508335757589532333832799610641727074052512075563575742080810007879138740326552255834079322479349364913895116561213786124500702409077737069196093287883359819072625695652330030796001075247133294440018182550168581795047127383837609896304750072508788475666927331906365105725510947846935810244321211319787581877362469565111625987837123061693949082359400978231299758961372494248011384429465744914088609655287030120888272288020036766766076904813150881529992367866377697812296572976394967115376730765910586093857921116100964706970710069325674555685157265939121224791194287599910661460227635880976575452750660671183691576651507126387379862748947222718215548910660306654974982091054219517440534538700413085687375326161487524168245872413625022205996443291844704535324730880693927625993067367491191698259093024786745470603131919392319703117982059082223513708643384883231197542752487124820690141399507006244048458896812529146890886756644733766847213815631895644213330142074960895345031404168423552079842328188913951299601576078245966977689629972958427019316056447770335673911756640724253032028287215959702492432859912970099282408850290998584222325818508550017092978198488865504150889522573414660106278512212882614181592716779019174968396838277668796233312182520002552957969809360557201041991241780582718885013798810886300180128059417641702478079596985064464626402502426544965184878795011389608861987166606966278552614325554273905396245952469641021801511657470830844053928091373153631278506748598264794052238609766064713127421073013205556249718827156296219308042218805167777966332610058453283340596333871014947513521629357890832589576659713974290089604000662833025798799464161447243016235308691687343006615416579702388152758694462866239707279184346341583197890172453836175121908495255697967488024168296271541304481717437689660314132895191230216716348084562613544058917397213212254963300208776345221584479486267892670178256217104522057010496583171793418626830202029172838621812855412790410816953553334647130924328818373920075365089811346067436248198190105566238398707550713979925620519160916564762963695865594039606232408661598335799201959824558005055280715285933394439375373581397253819164741243194556508409220906909455241034522293116759124460647988782239956038024491926514929490097641273496755563642198241240035218485955209969127958568822178841616724666892426191977159073223689295177344976172105954954698236564921183291839366772718025352488535307095569455504073853935453308638486326340450448899258058019586298883899250684497332645571810878080102138142303276825518677572431624827222945571303554111919237235385393830730188876627697270578063099767734679595241092158402882680081697546408209798420864163364018718463166327110991689812272389653079346345841382749239379732561082258092701298543875218360014847485037459480331359499106391787882179041992678733811736679810978246497578705771930889911468775755884214436654848637753973080768310353722226586939156949244611342697340518801072434982634619531707660975578980257108501665069088547133739981285718275011317857750835672177407825752610668502650840005254208582710432535691744828298333646009157602558128506628319079823300141556535314565966875794688957955481531685615296281713217566633426840235541204750640121520499558184504583514587769572154614798936183171238537257659610696098283062106693137856032673120913606110283400777656724915803519532245045587274350877844704496538261860433962330372835177504942756663556787918668866588177017483648989775466452090683757668424783444347499165862784423545112380092042499907646149070097724784812202555126134062645020546811338648557222806817947545131889515430179044051622115810729670311345383127151270019432409972872968388969869189293932402211838453669228298672320711094365009072991150854219945147340521194224706779782264216668429160112559277546287708440819947001566068390822538392530191219919868311959560371141840462305533055450240013589080231565548463654444355528453447557908202354489511750937365841842263462387663213888147879535012382634624991878996638769084737116829936291129085153628320415403675890870247461849078120409855586794469376387627150157374211778297246098621605273275972250738025429356939148749513710073521869521890863480241695666796800627329576590033798127516631297141633182503840820581385063575964834402099817173318548842122162844728339971238094203906355451838942382655612983808490285447982663075184627917580259462513621886400980465207538293520342448950149666488863608530875096855689417091595490686591315245310841823465266552588616173453066505488715122335429179244627422791723787253426654694108073722188944906578287645651687567438303063591288261573138273359431256497532554806685510100343828350694726373159468065199669671910500725000185951282112332632772567087988534999916498357058871004631428677602693351199899207701951807381988428953260167022649561994794807903674455393683115575098430031997321249042399757721743339541247053286839273746409867178022792364205045363389791400351526606134289339447362402994305828982588682789492426075333911911110693247359367217741573332424279016912248761711540943971218209032418428428777088899720094844274896833385981665972030293787748192176623498748163450914958442500764176188030541607621974171048337569184706042505802703580911932330931262436251938678961026431361841670540867247528650505712413884831502331044900495640345650790445966308915493259965548009194434590848196083692312887841223415790826474571233039950387746109441545463750750968725647337651788820316774765195715616370931300014229699588633646536539315310280976016468601876579028323472110088950185547941559546174082966713517358137512055418231756738493279920469807940813060417336581114189807644918676792176600455746974720435919622671201570368249954201990803933752087360177872439684983260962441702300735537053277698458083077042124977043054340431058528695288488611461112479701494402728462039121839336492345447042748484462750736824972956369325678440344169621246752636528396572910258515995586651652363500282815393443545014721448945841235564941502067976072346530786113004457649367204361141548129070333632036424875496538368223308535556458940556827767281090289347489393116810435134261003282138339612557309707243061411409425408423096517966276245616835763587064509048893703221152511731588033661607191719716630360899660180956003976517205117060006548613364654716013552840894920983670499252779484481994868155300671384569346460464741732824440305455450738656704453974598254386258673131816040119844283822470928220739934435057723932130549897530414158237562963792567160337910713994109156215481892424222046934725076902629378692211238251900379737943557461899030163448882739660834620851808594402715611677197792313816763440318872970385879633460122441043828946910080432967218367469717437664245918385868402215463608575344243715624239656458402530245256862517286033973132392589249777640714933039640342864465348178031425332181416986094059722569314997522887605315505447187921879164780741259869374750490754467430224598273063956859395794993306455705342679084449854929254344484616902470293058817087230743284630610292911055464638327181169128358929129382954762541623385632376772716969429095449000540390933400698236223603179082010800688567350861469598698886623898872462134172730486705662594761341817920166036577971589004748359794378991256462258984162951335269495091982237999480450829018895555719088775637970013337784125991724172121467818675984871374160021143845050987081889319045976473493550755698138437431043647425370069177969722531026307843320347370585287887577755838552114801090610225699404145818142303810961231246879728474105846718092428686813999548415916221415078277408281877085289911129896864556937889659475534279468232799180253893453395879976353741955743448150247022224363564550276553567319164137249363753556781204409425687021280876149163841309280399134393851368331447322376870684312062887104485221688214944461509847364813287399870357795650360538975749706795950763156371074983636050727878252510730932569387356482460076735213888581061751614488878288013085312754919745324757322474244731472766857520564728372112398233025410211217804192540665699020362450402497895711141397741886791948099039866548171786910543923327601682534661081290649136761150455688412365399329554103864827610284512211018047552016852080427338835019567281232279217840779649229047934469621148918889912078133812256926164428213279299037455795626565449586442450469861918990874404765781952484263526905046023813852148484471783672041438784960051952990634890688933901078905837051238620890582133547595365905590899685706295286320791250375608373828340329399477972894737427343980597781104790510373321903351249964897591292052384986563220146818571010651317537144803220628141089374668752944375546333453762330415890383735982250653945854933425972332255654223663517223374775351220851386236922861603365420570718276686325157853963809186165401148778104172426781837787890200609868127432468517996664567287274911669225324621391159278413246491736284488711978202650152528983462260875716878524954646475048932216739848345433882968034492873033458597285156732338629412485069426766861277976069747254057905081720739024314316460294627023960116748985692907749335278829539682472926301822121200680502134336065901390104122794584584901470456452328579007332476104840642247158565596136327012348540367017006787433541298012107658658930359527246113115578631219965141386891619386556560961623696456944955217185760011671077095102941017967484219070668608627532611003051383065573235698942258211118872881666220582096662660461018798369747987363515916562803844038808060398006300463478240553220681177599139607181487527037048385561457100388266825960070253000348476660973854282361959926018526301714905530991629269510851950434439509182540879668788291583173006687320235654303006104841192471205592332233256509233412018853920650233468113291418489886257829960688589142600353070821538170189546310553521504357970699389822481776694933166080729596951263506042234144227043485646622468211462053006629432099016619494053212468132082917939210258787579548176346313567646950719861816635103538080627258363175060048765532104536789156375042515208790926135684057042598871466509056874181046532532741249242267846803363916941479079658398574994069102841977346286233545575111664978505710866164955827701218624230235227063953049382434903041105501435730471196035016045524080180812615768473462974834732523309904354128210713066019575837009481502534043456297595290553792919248453742450653849745698180092932968529390047620325971865540234109131772972296606413853782927129913204830937828172196292213159375237039667063418159794359747451040102592422729972427488306965763046836696115351290274320165101218705960491568110857481726018440913833406308597303151429903161185027989432495235860587802075731231109705236843733105694804933900604664425034286875048173350157734627366358652441936164092629730780962405056249772429675144442557199250024944016552228265780889990842404746639982524636950695224692757277706309476153501061568343384123650715213575253723311148802231990157929229228469158962018511253757149305665193241836607182299507768474539913816263768330148920622843607232539802534233891355252919047628540722935979732948752782801530297526169421037439267736096778321937755629263019661596252476793812123650890076878175606408281824824440480041206681202899233831735720150004585976908504164068605428397397168424174025047059526544912026805558969488866376865263752983600473995095986660894822580189023392091705753863472278880798736472356346601864502890114626452885387966415002548704329673989956745411732784483496548607659672274978597276077605714540904758156645971416424022169891934423753323628342059697373515077299293987063575604307035648691767885485410352392631414238698074675024891231435801948065832749778758554828247616495393028464164927463986851855545071952355174548759270708269155749622969706962909771993697273589763436791784184744831020612448484477753458084705197447290971399251877381272001873217607839131811779571929581299789169978369852102414103444311004137285481252582123411485517189219715270145928538333407540278547131111909978136877058681653974557709989022590388169920394668302395282726270898507368098910249139301842893954104446361205553350564105070511442997813462405521133532221457276161167588194048906044420568665684931876993149566985920080062748236625751353583333483895495019225725903840789608851033980957367878350218428948649491099734985112516827076575477614172884241481933056036337660538608132787906209902641885983513232872873064431776167361800984895032038555153249827030603898421865991349092818063235090883580148527554252885546812970167047778292485232637671122955222730370373884381661258845427886964840485404414678353409171741703901628485229253017633082840714373612081032739212686551878886723867339793437431340096750410365182996057545774663600311049410807302396789858643529158554552261674301581443359667408459295824902339853113632643319689469611243466793705140346952816569041502101600199817036525463442169627758802001649282181989682807472241264081924416549650455387244282435657621839009946656913135299546309951432608197214552396737276118820630409883067264258108332947521903577491439481942901074296306686375396943404056752567347678721647845080092736033772609402607424521936977312343876193344902129522334386524270786750752414176889995197319218415146039812771066752225497319728746623895725497797578960453101797747552191514267877008880673990981476250821160426359195449269170686899916188991957345150639830657862098930847692795532730304619908097566750742739835287459541714022357668526515936411423984882258240987914299828244833198444661116789617280604268137168174411284396189741823156159407282778480094815270428638640358551207602003405923217330384807516138766464008207625287870304755790710257689148109644634989954169261265667855798513822323308051916293574750081181878231398595998543978715368595043507401580565374101418722134327031769090474388515953503079212900551457427083716031852290023761890686609639947584931838440462364486618361986069989396163164574677794564223662314905083471786893796407929214816767885345698062951559392868618915475359324167852487736344549143082821143102261157070963635230002063366451939253565088531157100991575211638200389984885603158053765666604197875035947363648416484053232906115992984687076942146064612237405429900778152573436238872335241002906420532307146757599822123311278309445023430211899656003480864684480535673564611119045443288854312044007571544124160970841038891687597106880896908690522930636622375355505223923027032588227082750534244227604722102529454475497944155800311007565519001554081047206729403862939214051523691521996717054353593243349265186306977337130571239257896265355018356821006904464050109062764635080985783517210531700435009644409646862547763865762189462419206099517981722872218056754627453427043214104179252529695068660303974805666826976672474528834431947984507141493775846282250544595848819115545609510381989572331913191761021192143224301706650389288180822631215606221752346231047324864629253963864454985975521420171177153822572522336799168035201392358338195089118066665214622484176509680269930013961953993001140639863178447799063889572930033614621420367128033896012600837555546642643191704827498929150563546955000929678179932557328203221739900070627476353069061017735580243257734852751844088059485367483059780573337662910098096962824652827631029208528880654248834008487804401789067310930525087923487600584054630939096602894743352282776452681691115688006472771656125966363393595667840981024187298018978184046267537481170660908053033034652493997144554781291046960649420570107998760637433991854633177808108306530153753623011860128094385793617526773720463274794613171543502322410693481192136142442728237546837981031151933624714119532697982001114607832321642267115320778224358551684100464820712886528976457047517735742410319028715971980703662761326169513918871421649787147476180306991251235945169127641189986427715438018789690963313795730634378521025089167827902375789071036211835717603283959022451636327535632891936008356202282842545656392053049265198706395755041684230147484926093797948373768999860508182592069865984210973433178735139830326153925828754662167019283697252016980421858003669245813443802096208051093721509224921118914480001138324084930177547788078551418921539213812701152225585125306231106808353712717191693727011794890743522453005257252256401033729696710700115854564993102602377378228966674642212515237032507941447870283397921683441186117080560345502376297046522510260114230190765308344001139461074967145839260660154630623820181936421793160194483540409065100880590212321516607264218175544193839681138186780076018177533588228854482319764993805514931203682342583167944043060746192477231670773367364910628463044339871224436705899095515631933666413381762670329507698536548238417240909522645272991816511722395524826627287406474006196550046001830095104434100721674211957292080049765044055149169094987849235291932079627549132618057992760790412399875626234953945869752543832642879279834613529524576205900161820994521467557086871985143870955228245435172832670841424705730597841189218149763530547908823621096558295053230664616131168036684789165368182260859942857092334031728274835583742500456435757408317705392953160889786056019006323164798284416162237175627720399603745046515760124779418837740180622686800801586933684404351088994582969692247982145588140737984501408270581348536994652784510812861998226266112244180042629991319898439461259667778329936409249135385802157924186978744404702129103166227671990107593852997693600109935655389959600501767374434264913173342596709719570254909369974208763082806085867012215332645472888204206765012680483385868771512752782855766163634698600453991288128796769806779637113662922183307238091847143317321132266545886816720070426636652371044976012970611420510492563140460102983817475522739538804305075370862059903235125505005405489732391599216086039215454424549292034080864200459760639566711515539448184959992495973533241308448245449270186190332890226726080016739022369768066613473695592289078984084335297144731606499283394074299199983006143604301646845046391884862510927929543095812915671526632967702826896623481830695817467372501953626850831267221863403793303108485853667269452403366945989188081321384482864845774414530356244253132930558734882714516439674590303351477235822829325555043680536693846298287741569735894844765557129992783739116126919192769981851083197437496194576839246742730196623198514207669934018302871393342737451078319458677450643172338026663500811094521269574953045716743234205095742322016139556283784665050520687476870443082835596503148531253931082335467094037746188823795730705217360681866101161775246111982929419877709767125871320781446754547146055581195485185497972629601491656046896727954022507671615415927181577715452517743639192520791578039783142157958069106171085383940741068232121585462321654219046824240884847614806337099263695787951811954727580012609918243886241070166760916021667818236187580966159956566633080508810785994642860342305663009641635044504037898618521458361502222750625038858642178330407480477292603952412222108194710341554837171035419531739880516388452453347837660587354242715267880581623425470661603626515390282545991199417175511807073284169553430614969664588213209921975310671697811518468363834030161007319805946587344408018081803614216659007129546602475885239387768036526563517202155094503349691356364227626462501735394870024568098319991691106974054513741355169198244762101930122629904165572801618767507767771894610507622914904082948030200252101001883658405414899297864214009816774748667473450279699825597448410369285701450573185450155675226114443907946903155282571785064991658585445824607097985673262566411213967444514580802865737665759529613284819545386755597481381438540461736891694796501634402378844676373210025151452866575467870035409367140643698215796477137584591261926551047397474857924412995693321575094053912182640545745604989065160662472021184211509425460313754088980586509679022743005167243667005018503757859902420804014721000147953533902260015239930824308155421855261842544413355079936053839487733128870519133267001029912105333221357551130456017663268903332061127646658174889965942223383864980731244002520805207522647617586041807565838787414364350847813832146727856967931526338871967786546461770092012374114914116568253371459862234342868777673228511548788493926108312223552046863586528723288588755747767777511215603667843532329733118876366227161437041828422435404158495345102882137707387038032950731564981493097156823800987364195931478527583986593615502040209325951731016909615048359940081296992855518474916029667368776080245919317270567320844720522655680473912161376613478799407627431648437180331026240052002446105501652975054292075582118905770376828221556083145146669926878169612076072998767277458748000565029015613474347301136251214653011601489899887730283186597009080103169919455768904411787961477368919248877663452940421106038222569186271877289034841687287915095146735689086819867107709418626631833869930163851660236765820686634070650878179394684142489298222173089702568613548799909746587086845268040170682019717438586820679396539546284828263062832891589045478297638917877375908068044128908499539868204677294037343151062590690731869442345692350271986912910378734230254057469683535644370782198770049573303708810785754866443881823824979118015667776660821002121198057558659504160824061982243625633307337013138763288866062475300893554289829059154055382911421581196812180910871484884651069100837761979059786699539580743672200682263491572709423653646542295232840145023072699048906885490080621471635167822505941854260913062277134782793083296987074462951663046253236975026022192695025023215665114380552274377815079472159387106557713752573178176155730488709984085249124150442947726157321183800918102756516114639814122884586819292480918067887824291365827597527468983208735750428378913373544596651349842374702561099080855380242693706648403988014693860741579153632865888469018501553470857191334609962353384376743353166193437203208757677179813165735506745395102113189419996125548761242848706393136491599657427323405772249882995756326228755599917544101025688325151858908162931558847032397435575329283431920281140350016097324731134211165662309014372896962799153921944343446305607636412331680606159605135567976705258045503895576814429312538022713280823591655614682853579567111175633558909812618279291263525057482945583661484352747450448220214339730891833770881011863871006607826130565170161293793621542449613827279401564146743499201395920257574292190248586799688621089751307077619359835421382155198125271434681376482517591873927076242517418857842192152784510990184482782236780880943076066375592231036244737180038688071555374112942661720552792686581602558375634036291097237381791447298767738719608657186534713355758169861336656006196371210214843064591894250636920545190758695311218447504790312187143026329847667871902999175846958689665944611788253614782680124739068358922303684614026191416251645491271024799181576545472344595326763293436629540084976364629570260169005209051654656808996053385643128515717890016536406304386972273445219482574006583605582603703646692926163742293824648187480714337178611842682804556934630583495660655429932700526868281574866075216838773397755723766749655970821913102182376521532397290071234674303003272196937324835377889460783279637446861196695767925990254331817353483627946418230847477191854912369262365551876342875184997288680736931530723044528371552482376028928930448243564809202473877562060267958004530257813924420432372058252739420761684774673418358947803897188168641196523621318765941745767535187517668854567752874604104240879015749629599593634864087620919189454656433995979854147156175345795077315901983348622877512409562385943140997299433080823922579723624863852874901109333783637774324716492178682260660494278366015187376837406116409357140253375556056832990381945032932850498982841232889473907399302941227689891427937704424594791379326130843591767233789624700250341072856531623785309279876195576868610121014987875148776157302436386960395982144047153707084391593236846049285774315666148124883671061553593149460303995484136487269293656987751885455841353091234523843537309802294928815915788360316094070406040353862475018797556553240500998507686608352113094817203251034746992587426448081457686720977565349856031280181514930736554048530274149922747234035310001438231144311775742404653701147439197799889092660679283302228694997986896515771298100874483835500410207087874749010589352941672022479932374404859122874569239058019251605943194393990176897963193468789918785154688024002787610962736250433704142818460064398948407576564957641295820311013171424739812830446202087458111989489219662792610492093062850929267764986370002814777902001291071863067214345437792154351593128568309775219133680201199875283962227928837616305297789481131461656886924192835613798472406034560297797999583311953408722093058912892062299978633560832965251701132486717296488006981183140675174931787611632326974514377654031316979536463627158030156819988870758310175433362914769875058608511811382479558950416957892243142379444233659156602701509217313142746650388678241753562433134598290577011064118146368618787927654437437022132500005605166953214785184719899283783976167695349575459031915113933592722278561569812243451326518890935779395913058127338543501026069663427729013078201818993201629093628655941533575907005158360340036679735407523910388506472658261657627965709737348562101660159315012282274737421402902939676824928930901896457205461220254279134910466568671825693412035303854036808426748705178499452169185076722325247360780978433767796773464513185714028236113481083125870664020029414823923837767667484402390645183050897140996072192386359441507626063744967029169499642934867792266588271242099000799593363224693020788957016735873281351727501465694821245905998903506286057546756431351607706289714244180305971999119107468139019391846123156522554438982564040523864280619207066584442856858505954251230025378273489459258601991693305441430945140235409734903970731492533883517511906003355378305677762834350001904277795028166483557155512460449076485652471691055535909878801485683059701776091748773262561184876484093713168481433640668529926794712751781794015761711241099370988234681043842229228034922525119690880032055757351436594477326794970451031613507475537248485349111840192869131002649735050911327033362315819295939969793114734115508336439332077850074083591287063651833789306540524872959633453337797784220049976633766580191346825197948552524451037327679139274163765802175540622373312204003086674798653157260378813674319242781983123284342424743283454575197984708895504538771229110247009478551357527770462617625673470408523440928806717004273751566923916556865575028349909737695290643365857721276565129156082953020984603790580070784482470378700077051285072957087441003138986380387331757358737904380438199848326433764089428538956612726029258621615327788435426165410222453380468172024466601247855792217695300503766512490775879167110294001327208173347438483542725206327702831720652905903428982385167262558015297800828801257935016194731865046704942423526667349727452424869433928591542978164938409682442234149280123579460297284880011656795793650939684977722552566190376554984032852799566579531396822527002114414016161010406250364610357395707506675285897871896635974960556048756349696399168830546622976797587037260465924619164022986467181154826178487752149788328044848666640466023060486880106074543808650293839485693191362327161739498103708249714348226992581129984480944393403046189532589698783433846198716259752587076122692486221132786635568227690904424392415277218896529663612118201012348616080063861217544694841596537735268034895044306036309030534728112831548756932501269970909182731450361959818773889118824053214532901271205687053021514461571190390612013453818481429190193561633518787520582915449605217602852565148362322345682488155143155221172339264142998643382028114901287381414427234545821526557457828576084281604216534571046496528864507638543535415576501339517842947425395445058061862810265382126814144087902074488716814961959780769561447466666073244510382060402955160534479787864550801012237996835931593915793554529134634444222202534066304269558398146346265579866353784021698360683200481026103150782679815534907341210962098647403866412025117792707245598366288333209969753495281339302866760940086903394656122413482051597079037195598220873822757012247963019844333984441623372715737340502598592094739492803111904804799864815957408446314331045962181784576134515504069931531062382866171449399283271181543370772832295145947098468212752182685661833701916753058442607862346489985905526974719828429059505325735533457422702449459274225653520477325544159342345519364342507350370580157167677285428614202535310626479976258521099455332414541250790811451924833915858311209433481726009033575569296509371977598407241901186478638975586807034923023091543553189422058095041228029503410891961492772204368878590366828570145700073137966841484086772325098946511618492514394539586106496523924233831012140909835312291799295222708245640819418622430270464112312326055604779756569423872879880151197787852781741952686110074281592376361329915422105311786206940411828104054988347856771122008340823154433031496482296901868119902988334322448603291888070384765426462925881621142091576528139085364420879723913570545610564277662983163661503291898099048166633984678406562258755278143289578158519029249965919742549613433136720996332319862015001761296491720130270064371005578342200268068300082066278283741573344179174309080350415750242685961299819295121189155367022666283118716377043926659045172731455306693562827821171496249092157832118619543181601770831214780749707103151997233058659980711049031757092767365796042594457732071665705357722882256184657466298055776723921332922071637649769019720670457919476366708595731351207990398259039514473619800521520696054064464965478562440065263575350631255379706169970662158153601780907902536199867648453125848621409294339767295736114396750868476479881633847202167299024604281914296465336033418881538412726502417074703372783525237957784511017850990470071390962696473587165993362317490531050866649099830412135408736467170890003150921462070397688931138520046993993851698857946874736037683786472663394605580120411047323561741044200773665577260343174918315350926404519624905044428280188060731467690252838463725060474415678069832421470902457378374063615139459912376015237942348176656070780784882568662968374909334374719190063016058955805668350644897848514203418650966136770442490546831548621318453104923464002258849729538033458662167320316699192983831929812248174168764737123641621986092205427491532781139470013571394124073916968595881694676411065521055801279076156742227597077845009495524615526972000304817268798191075383690928732864904985147598392579052886192777022366165044736345403530850038276044444286295655238369556573242386131680323769037328396267162914911919325144022708429725213473931506649645974675706923501264213830754145106012981801965619490521682488237501747875700130656441235742395454895176695634508258381821432534949457331805084754689365130366195159059879968798100376846054383762797842588679759795673113445286640295790969121764129780096957769666328771845582114947065281902085106164704716306192118965663223427542331138886484655766849913001392011105161779510555752845934021470132081416620452968971094178157237880656943482254036530207086088731266976740401525234575507017878324536420655402630184053586567568255227409747258024543820677231234328144707153151248045510369477058918226763438416207941367889889205535936962754683811433687717074072935108026645529298516846094502323275322238449927640351676896910462318915123829217914559991825050286534149309120342596373267970568950365415126658823188081823304555186562415585844640109757492470102124464552233156003439290433147791332924004055491054670755022095974527324965730828756597061575130542985477505891398487908814196125640852219921026600455584311885572687830834668285394406643552095689813678260755559330709759388193448407699721865681425271851559257791491373742992509975172036447351317066529680999831421557710976329640036733214228815450172469937094307072186729949734795350671321247467499175856936542733737234440527576141357088046794689088703839464350840248734780490686497577735425637065882191815796305344144142146263303874899033511720613125763851899488655966991209826578251572345158346831608491934123436015131618966754197845448598298690344006964368230680203083079413500326483321122643450827156266595001476950187657164657400251185973695423220629453993639428418257768554449130545665816522138290463163296684476753369327424436205850298049599824634782223588070056895859224357143143213261712693991522872907725266492324317532186969897596793463906702158633540987710564586110962665862668274880342205044428320578052222992642384365885755989213162482781548770145579531791769459822617454477826772735437224421211517974720048374916685408401786928465709339192246485168687371120633950410149172182611655647139794728365621493595698062827089180659033306622671155879088979873131552121683425761620114508532547503344424951147400545528342873243917880724736505602439738928347126510382967561874655274982090144779906735591229997945069311695413001855040490722738060542767634873552884488062757353320792348349877339609178167091982907739406383256434182193502253719903676773400081865130621713227445040200771571809848160690899453080119062369877668190436492772921495370751464575412476543064363064816465568247506540078162810770362151135550588081851218699129408110169131812520582182022028675089157340033454733354832598257466205548690984252548644911109655355282755458595468175830879157034215309171254097008284668056333720291280250379891423121326977978956414666715028494319028835460429427971401698203973329106870048747156654178204643563797371947200097438182271953465122986461149915346259648174243624150866827907675504250913535512084585228781702704037646661179583054772458772541638250506876961845865520540446265261735990279206592327204263481660577078068816466329743242950107925550031279907024262513548193698800900462131943532473831860740236416915928505167125431247765483339299442779137432062415813901145613492938584844033663394119979064464077014684038651874432326521776421974171711885377411037092207193328396773625036723031713218224906097931076943332660474823415706718054310157768968331776898100798482699161488023815072392563271856176739899310161677603301833508117769967085920528007477749591493663849776150810794921639094939558994265814458357340490086602362753490109715766980098019671916584051631965747439099389657123778920170725564610978641187041091761995566552022450549750772332765305440711683213374588512773942251506182298464303917687190629878894903023390035917922145512201459502948163011226126598418949871311355732152883003966686298314898891377082793114377255054932856059048451794229280899568128035780860442719430126928592736405424345630742371809951421634869342240453770378060427060610596360511593454187357533124642753086826906230640815698385212273722327636393686687724740517322057333466554824715036173850280177758074040622490542895166236999218143007420660486427810382360526473730421921996014210295303395290297267653118895423010289994700824349274733751651074063701430120419071435891504742884856274354437252725053271310500559019670069577879859112016753845918945420811820036961764728523033547992172349229331810995240316535173868988055879349879657806794103937888630678136876279233453004455752113039778097612559913352241961161982384190706988347494325002206241670529583677283027022045471275003152664164274179690464429229546351062147616580828652587857983222791270011343860707828010456559786468102964098680434265776855170792245337183997276335777434305809042066964649715846160246287029978137690879590697342401599254232617577784890577725569546962825333183277342082480533688749148150144923907916526320853634500547483600320208865839280258634115869195550565299240365153514567302573533277634144445847298691879441479575555570114043960048395656826816540273140060612850832813157281274060687955733942346224888709127035298684589826411994386922532891525648089460019031073734611563357962592520716895807196963308540425582076269382625098410783983968690445343527833102970112174282510775227440318029421165825047039611637795992369631003678558727185379110753438367817525808160939513077876134310222721554847990719381186403596958819061087177437619508710923266319159525102118004610758408412446165675578528015407493188920511236470227577063579980962252590811677640280588966262361029746938263908820511819190712532346880656926306316852059434366060045912141257720307096152036165520137338730228428919344677774767231615507824474795144354310760438621858634304655769590333040983338093219025977398762833682956518123269270435951914411694723056043106319193047454924560384776435236081747776281243269866071079556575529377620638766915568635384767136313854700895637786326764421735627710308386573292844222672021683336474593036816012609455377483843681669624653853815613332211716697961781302063574457271967984866201241073035565345880186614482834973815485868830819444612385335731113969202367883754713980799493786257948649359885880991639318781797870253991602223396844712693469635740629168382625743117132158352090912631904862226080699572645212555519276416591906223382026021435642470894834119427904307553972811603197609366488810721206326720361682591663947172639974555601890191254430310189956137839987015032577401784085003159242269515525030283555174013626470983467853589996210005089938870635891176165107414584344912525793869000686973448799248436521964574493349156589675939439405712402213211165785648968954081877843061329021350833524265900397376724969305159511755420908938820848707449532019077305490407262788364479619948873659197399677993402991656718755671124889736597793981165561139003534351470191611281308854869384922686376942444833426164420949726823552426103836664070534696461139417959705051367317359591050453242660545662708691782488213599811700707130221222009343182834758723623053219451898825574242090274107187281727843303066107002193686366074377229883598507156699013787154953921535924306296967950275079820098057140737976436535877882533850113258228396360203203381834291898480696679971650249254230039444916406800785929526817278643781289230546091768564991745791941698211036315853750172552780479944788054168867904521955990380238591082493022143548577239794302823760409516071807372370993346095964068172208566895685363905434654668129624239827880750362225197817086482519540559475246813022819276335133497775430318459575135425099463368946566515744737745193402374079160479012020468034437890263388209838030394576029434871700083124564630169262484838264788816906358646447904538718853623878869295007843065660964658348323554143676616683866919775338149782176789801653131575936395360392139011122965279406930282993656470667883746749342838767834184933643540568718513432092241192760648551748889797480120337838708631226005098123870206153442427977620926694157383525688813902867979173192834434048111929329033008405496221869559712607047407823232924809287924285797073096632939758446451174068700387407469169305055997145232029692048839777767493480943747273636658590344003780678716691541072103340678335121363106567884412614515595804482619375576610982602214404602838236560705677264699790305762718804687862608362599758223324220946403462431915818020904497241810844401590666154176500051073672721760781604554560860307524218336991706591185377931136480671445096495810685574620299792978313094890160415638213357394182861756618754755506724051727415731923417790516051542799384417736421531055766041340244379749509527264005870149062449538757112899957597674258030844193028838113058087170056219370082512907345221141240796760126731120868497992238333494746191274356860577881424506133623017962197586275087790245730481556180135619254940155604959117168285778309366358266882976529465053979497123432456052160238129351750304112262965645070273849198523642253103977944222771897783108379398799049700751401442825483733658303473507222591244699855959100350017789859460002269669460574765317637824387688758500551418158382842785307538113823566721448342521098598852880112562004648188682559778287861992771005538783060495270383906782096825778194126480470951232458900732964561567526148176738249268991661888321275896450053076867819014118875544999752754803709490639620851965526569782168790402211057652838596865529615541321755076435353057576738042781089586385482308455225549600877035734728472569826709584992333744322506350620763207042161854636543339693996048924213668284377835949824108064157203626548913031558368847651108575745255417675399845912906238845093905061317874957252517584675956200541070886716608319877474434064046099620761712523188195229032575642889614894266057756177259929153519130667595130195623559987198056564841935591884163447767959810758971970092916615073169037214435369038199850698497157273392367429389812105270056710729027924698777213721817462479950983315117626652331784914734268385952285579766283085698085279968470557695032176177732244595616807317942609309757552884640038871188616643358891847175973364461159390668607602538202500267781647016503054894389571391734974782629945955961746899942912340267471378677159136161949302139804821412319419615335111626268732060082572706765075453037877535861097529326264708758470003624007403141757375839271860499135058356088711570248312586438657574743809868558653467601421358486443893579552743310543527431724978075078243119278526044656261220188684155127197288579114934431169415867479974841783120042351068345981666282344177321361292459694616387741428745242935339890046494469550653568796982626640081862826616009943877267559288854977574610693326621560996369385055324706031453083585165394001603199649511761890682682474908996206202977361337520123968925880975907975420632873112306102603199764440097217959063738620901678358612929048928900438540150647544095923999102914659837135871583209518605812081094997323687046469275646050843044623724211130002227388953169338692517075760487148487584069150192464760730516663718225159787014807065315460229476441171777070615914538223494246573750681476353567577034138399821204408317210026903738433230063524603556085197709603258729833419171721960684602926975042287658800907962586523967099006239287746310366584165332036015138789540529965420627705239971136675472961832897509350047478313142939563913336246512396676897918689844239584465257117079393841710680741839420653708565349116417427932380225503254964933665339816810477749801534355896414810141024586184439750273042810549039952645057079840288490156905272489201238126354371355077956169735252475926027469627294061547226764656349339308368483261527428769159156546116050222634918541390237131219394923278204955531040651573162929163910489092914609851238567890250952852419481717666116783745772344862348935155637715925372906540177265232585467539797601916381445106841497946847295716103676479268025513289080711373434692864354164612610608592531511398392588105598048951388074220194301287778623096019249559090749076819192883595784795673487220253852484603058402367795589063898830876407806201245523032610713119522197081637318052086668033459095371845985455872860086762048194829171124730022316555951265969749737996863843279251128017673930085358582577823221545163148255032273120256017744510884510654499311305942248638985522941750031842176379998490124381778988842126938734456026955815373488517172810793342551665797938271057736440748004124909826608966888094725638950978346275082483403815692485683994888541775897478496511533491501304914245989118897079779761190832722376452382146517908274020865735989625427635252965497819109174718425335735918397433530920755599404471808033146241515331559365535472518050603587052899533089727372634500397945015561276002561742392542608731999054415392328673703871189028690877339061098465199085090876849883072418447635286514454818430410910503182116695406916535685082839190083383734292274495660300257815192399787335191495279751795741678045048103919330630002665912897738741735199879189377923106416609372849319625330941043735807531485135004769485793002204147517318503877055739672824676017731463668782404918915718389342496007447942055727008302957063977554851178240951572333157312044110518573830298839020419254206457003422547506100847467270483897681487043321952305545545397004854406783026290017901657134277190211600326569538669786357600608493748829568378891280295956816428207473209389920829428895646117976481889452061838756643752972366837238377873886767912622520113367015259735906864328703397583784570888071408556506347469685032613411462692869454104014578974902522478749818423152547799511065172863363569410341606871833599918745517089026059133225860348285804064508076905836443621544154254644555008441204562424229888526863406294999737178482301238857321576006890256447969861793187075309209241480509214657301751431910047477333256848823318860616706550214183355177446341339213181106387076372667740129177347557641091601965231666859055544099537372804363115511497911735407105516242335087370369188793637859186199232340161894468266153486479653598384815824057088990028352389728799401516454775730520905627155472033813998167587286550957945619058000043904510785596618320936830648280500544731173473146336174019257808620669509411157161527880009767769851828490311379718394597789531825778244861426468107069160695618638373885282847306526804332827389395237718934216694557573808080870051610160131363458488603518722955104180142114831943668630503329125640947485190181528025320661808857957292584706121692003287054370322638549372809374442602836610226019667370045853006717404429597005919912110759592367300741816938526367237572987055829341412761465664670671563516191124957450912257916783169469605050804994790567795399689254510079333530407159393241152652545602874879655266413624978903275335967056960741290349520182029232180276672892772772357606169968966158984533301429464562369470344635984789001899146419128240818283660384779058767778714215615719235380274308955098510238535387654099428733460783063435286889975174845914656843715072384158917814441295550041166224550868820159680373452075446492151311934528561212104729459989163368746326075474034908779743288345831177775212997339029475740044136588371166907409949716097779515313671185255309875472722461263634871051686133950105855178881146088731606470456260979491702197237332864494911960730660487232100829511967302400923368045524978016878606977907695165768696574330785302517917443645512123343287297519580696338713640993055227263880118252417963241115583978932234087735286612659847415542359411833682777296131991459219543859246739981701637744637058678709925765840090435930750940883235552516110285167883929309180612308003027405893141180763653605829133556248345606083171286637500906867857834335490384264555478514757869949396066571567560805039858601021572049330115960019395892944630704497529840390129280305843306776686763589452554886851583999251058879304343861549577864254067502434774775484900215708483241899411402946415647801069061126589178334545512552752730803068043282863720017425203006898314018378993046627671517841741268684826927533773130158304917159503452161373810576496849716374926610921350747917954168223569775100601037947709095163433046638852388194652920448566595186366315177906663130664563106511553695673303719215412695852172651092716431748259718910302840317497978616791333544484014489068380136372308221969916993187143332316437452104946997952384805797694089248318380026110879393502403025905385886545729021403254849615969025056241909748141600207965725879025667971360810245381680791473409039393679146786302592350563460967136944056219687562791567575392438232371992423171574907796291060003940284696630446140334441385448853150726888617003316394349755095383907177405917920089765365516267541311550512736460542150539943998966113537071497764850233105846147678322466058965080614291779942570603045733265466650932492075702218518042154495887965927665035339000711957703760781023428950169771890828986860858306252604091425375054306421510743388260342758752980880185994751562971597337590424135614552695284319736757045299063505300734491716291867754266802097960470145438647709136302980298927141649909803083742779960765414643106729766579775253857623860414142071925213643507606897133989834820253160132367330068850770270726132898995611887552827040845530021402831008799449944118154761045353409281948527578725564007341351767960814643411704649766025113110823247009654803603446736550194558597739065126839782376362960547272982742586869051430812335101126206110211316438603145272243969256880154944984713593705010620345528222974285339996385050961430120048353777648175000792848408489713138915317587977300489028925429146934918842060189319834929483202569855234267053454420978925754320133375278267504404845941794240240858331011459996914484148512415744704304135927094793598234701094076076539831597285945253070223233065746458672576115633424949816490466641123892710959372665901614194520333994392355195920732257147682691621311676044739351844887934357802333949503240711073566260569780988511800554976608166642725960906920777361223434622054285927995454979234502542759322728126742972843254061506875510883633017271703348105001398500644183067374830079856814839147204429615974377622820862410104491442209090394614281837686937146725036175574509853475734678844316695254134166666989373258216953019989566150750377185921826783820256539246517470182540078060090948999670425527979863987217637948494493645735488764665063027588363013965253943678815223804488707311661214217308243984775911637153536096343856153638437323236554733396479420498543106347877717693554534468839609063894394035692092818372266256949077332892984126222395705478575484912997376915943232314804500843843272033668049186329264439072009038473326396431872615701471748397023591184772357561495361939330803340703035902819470906731863959215262412717977725635785300353458318893753048591815410435478351922123983370898612808316998665110473830248005280855738598375488403643411088952162807290560763231401067718970055192091902314473214223095249383784669362080740979118799199666471025167327868177985352607246441087270718347853881857196380135790225310636744214404344935041751137892358314389304181506500822587034291927073698746421483206070451985798491609308792782928113353810958653073998758292755099341116802695528449496904777549686677059547457819345811219853819369036754383180379669862657706885535051819168155765265328511548555340410262147880382647568754639452068741535846694637300777782711047213293317740861062047867609322973887201126995012646294661696511336858109178708383870981490203718689786747265946798956779255417655190619245215271162239500372895208411100705364992510082878548670964329354570224901867580478800330717465290907070129625986010723873191000333389151689568761241214311958436507088662735337931290671778209712785960828130429514335734508995622620646125891002152442968028136032033852032990942835455917289480760944856378765905178567590987965518494785273709653973140461363161157050472104298174054045792260908769356529860445367643683413706910013359994719026440433252227614630193154102110086039598308629590280580888991892037750237116561688673468592347937038639418660256398067691991347252929413729431280028215025837651965024096293952420706406838601860901945791506650076731448026668949909564173697359948910460773976104452296308290677370317910874340067485515931607254498239210418087553077733406350668570858248975863524822365989097137853928284535670516464733745393221152225869895617315352319316414519473095831959130858865571670049354976778134147647057000294233399873913163714086223728589746217152611028091421449563833382478858606225694932059279916924764396619043216433610663902450443938701155340761064252323938877896168100361272618613083766265040398275189161435146905671854532079723223784665225681619424155249998470369104281404148836440509799944200273278589763064589104312253151555153086263029028736611721245543329903578361326184058657074221776620705879673967483754559941194071204532454527591607500053127071469845979637340680971657539231457660099709418513669979376869629161712838650531967968504150253856292223433863031257150167937319528995686950543776502180027070318683875326180877006533684455070640566108435049910846530876148823518112249135794625367634755260879251444334107420839255058607113845033779662685867048975524870756612149439911925744856085005532368078275698886730119801188404038244633881896148604329484388477534536717131656604964932850745325431305592081537072797681849414218238066939973215148127720319568416093580488959109866733400224078497539556118232967216111916458565168029783861543368627861019669064544111229665739310014470054694907346061834834468471706551921639112982357563063117389642827225168741513221359981543603320160577532133383507688969522249198270788559023885685559718924972875464273536716456690262955363558698166360732924316225245015679495292505896468189537053387012581594542546694905229119320350000419688283817520012768426894428446629471195422540128324109515786769984844934375184459352621978611360359908173500566181829171795069116564514160808129378134926337630780701820650555944708391598163891707573666959995487879823884087162442603999266828350736045281721709702846018196596408279077411457308703436962081967355047383723025025201797995322835223921148391076726365030502677805431594414137349765501743938048573646578952012316425203297517086161562039975616042067692409953306562804909599849354461628745572978972446055114909012282413613424899073866694461353189876969193793266074539974663804342829462185918566976794071579893524492031041237232885195476339711880570275530294943790749738077694946610225240201071596845862689294874509117192529669677360703277955406251164775143001361724281680210147883979941722476945810596979038204498383423546860604902627567174327590155293620604816992770690298783035440088859384800068404475263853203194729016863018810063346984127533107464423518153126831421798301801826949928191483117138874670561299773056712152953203514871350597293875287201037471417985615357205889785045293375072233545850510179454127275535341398909228266631887241540375632179021144838409996734801267981204179593200750438100234902670241584192230067637634431814856697515899601208937611515478791968015969891693263840151010988419099613738088751173250425307026608216552190052981272461297049536648163733859717895982689507407231371608250537973281298493836428890916872380320783430607976375048170110478828634742563217723784939155565492557427588769698144903316238535463238228598330028893145157505323997509290674722974700391870966785168045986048842709935632790471208402557793400982835230695370744392157550136314665311926073524192861675271450271587913769424478799299120213936515458341123537650430183948765619745234617320669488617171081613672786547051165265428054213247978445015572926013470913660458777545209394834935583234123059040623373576846577627608164298657775070915506475595644867771834153084798985808434624443924887108528615152544393598602333059424488814838834922023048354054435334577103577188145910219043355711770559435739906084507437257538411799787682226332471686001189136055296715852141902169670382928814201471362421844691763639366587747074904540080876286768364793663856961154694780730546973606462825535482849933184714241330411233830457078028236809677986506291048720844564348714917484137950266086935411742596511541551920076459658990722626479073462309650483212630566966756005069973560647388376190257490257189319917320583299520479487472243795733200402834253222194923402741301996968958268924128597156210229918548017190853027011541228136885344643495482797102197314137420468417681125925748543966183230307311613022710044417320442411378013473770978914530827050610216443780762671034442406067259397087855448848625050639681612284588490721747663559782461571355517013114708687597995193410627631429388562043033601281611709727487212472650953584681306569697241950234636868282923095964637352982623683024134255855878172715444390508104955771773689881729074175510231804739232409305728496743689208731460978948946691451346042632679178708849343305666620579185383898190866512948383483320872503321609515001149926177765235481065151931983778528133707826451833087545941957434036185673313867792077593193202297831963591026600409563678361137780580917057151586046649106991969962947359958592805326212464460084907013899140627535260953446090827369697250711424655622816111692613038756002279473367619621068430562986228185831026928624459589781236726927468752609276974872581794360737835541896435702996085105567517961444018948394504758283869761355448126719985654959382219117877931835131537704951589979900222129418161571241059977698824222818114455498817150218778564919013677514978746759010362724592446718422324293921633878178732051206739924890596535429243966427606138272712234433375464419667921782409254893159100828928659181476247586561609494496688897451799392653873798350273160497691336052924003889897249384604821918016268825727579790626964564921360590402574720935423545075025299870565232506849226133074111498623648497850449882082134375360719878836314166680756466611234645974709961749025444678174472575696080132261622096851732232440493142126301998262519824140518083914224927378559825270218129274510889635724014342020381653335293067853349886993328726025777124489986662163426903379080641308163122316016116648207282085917383631306906627487217066288436560286030625143820190276606208299571049475802700987549700639885581232756383821919765436533999748483222597643270524940137892442680684632014481639090982339812908847048908411678054394173205173481730103547113699273822836435401875814577410220036227572325723516048188835175705525010718856847750007487201467953479103754705888815472998572562946943552686950276902055185891468232473025590633656623347493360691354800369137888901187127328928469564632529754577309161069579869617805368340395671282236408770947716436291506068900045065584980598988438147777668252262427123258403559204851623811300056925862716290912507730958332572938072743669898277020484117234777144934016180781090849142000321701532522222183820768004617410430843392754715494935826002917120274611634913032064261293875589909768718561690564298328194117276940792944849381576457125074788596394753165623090115262371379324495217951321597884253177052020285510285486474839003141749399097553281454183360814404285897413901507687296471333892465962099366762182898123932008338990321586723823855888149518158378909801477134922309231082372865247440691648714796164662540292117921952670829262200850523773215290458199269107785077943667945727821898631746643223339120017338581298091287216496494718816833637850771608220977632269473316814559650976900776358841265916713033845248350422091799134203449933066637742745822956075232618641863152380595836570782281947499271417591055610509340776048445564864406000903357208261044519870924701088268875869151521531516643701842167333851408392977698610926009900407442640819036640213744952139222490387972950668370633556325772481725318285701682709731232418275013345120816290199384917222418712577429249385387714896444173858786864644793207230465108607168213363208739735330643609834993675713793810808806249385101878615723804840713075357265340573827319190159559111032446785959096763205912054989379109163384695240185074432052626109180101499150584926645322073134185366131292809527275610333273986597108843115567012454473115237639079931251574928107409340037980051165418806012510832461371235596176772231522928674128473488490445958073359182848768061575212996860553937695786755644325789719370619456905449438460404123115415360373694032801755901368810148667034556342717628441856278134506960943087669623510797574635548023852733046386535049819596773982835469144320913205657381528126071592672653031212019038272302923609130935356396165403367207254129781389068509307798074955637633666537335566869206336442393136077998558060918610947723496052846707283603368415723886759895797616117114937946239212659659632630020866310335015053644675286591057372051469214069592778899681647400336220176141710276270902589251012074546091605446637518809565382787971882312393964015880214521989793780197636691375570778212576432015335095233381332881375320235333190060230331001230548657822160526083308409680950437060933832654765687441533380740975757804848095649710464934078000835021327266619320201981506827298179411827876712883170342221066012240428536991611676797481795570085597216425374135699751242504852857031807649683041564940637846540346388707974689562658875332490783935026419939482747253990402349389152611988761557730230552310477006894080345944604502783562465926694007270334081623515818601181676355813365491584446847087024651190440186126396920405024714148958685463802080403413131507245940079620825448128236164375252115960568213396714455436430712968489701306027287950161656122744669007061910304930847830617971704383888584106487310672865786676905307263340329508025825281619831974144225743969706431366059963242833944260456337940983253388959249591227035325016690247169646535834271289761351166514358573914184405947237788324679778159211920774378520938733558742263165314128356963816180154104636955824483432042029692618201504452229168384661968651050334706209842479282506138623530088052511447779527806189676432978650894328148151852424093696338217903320740827014702287521553097667406713587510587005392148593114614379017145442690142740131211921045425646573840113273030627355005676976953333197820580069203859001311139288625946290352254033464737904965511581151656555596244077136782462205489828560143185935655771122580162929088241210213426552522486918000271774915716089875747906529917312447638644297659978383212224164848579153425661732352713821068970594341064253895421348973308422453083323878763313495573114355723798825463915981738736169746508617058253553593159860672761333132195297221506592602091466412770996451107817060428229116151686823041550632125486445590702505940299517215760363270194012740626818019952864476068593551852876708898456040292300416362215981244017868960788413748993041875265914349836244397502537439179373884448263002088534591098112350007633956415314942071595958983717238437554081146479211869059442394333647036208063347429909693198021491121501599122262240439062578619372048546363420845512010113272340013945793017450901033341751811736624833562837168059623535605710992754499761889520015134961925555403314158601194397314627695626027131543074341062397052449580354001962198268373220172485584085601593572421851813735007915020265330256561143435850676400757699943590576780109269339983905656282668913512742184294130348073434856302754161777605991609009064982208260901196368706695332934413059428643375713937526818048558987274972247574975873388975547175340972517059231864204982874815398208315376431700720636355533033402928007978092603110754657063261334490149758496899705812823659428344867551412171485438999368217103216005912363206948257558640143487159992931028888540953981589707470402064133868966743647453976694801231547761639618852875451279233796957383744022137476792805761915307137187514507597924033186292644564005563814347705639989369761829702278258210204584651123527493031896633518839053455185794159545235956166734375618589165060598835464136149487130197907899656223457483094511115412705805522116330934210463717032923517894280250194528424688482276286378077210316307486198162058059149633925889678092585099456593472755455330153058270313583976092205782628531111681622277238394066097963666892554417816607066233541523724702283353129990712513573072819839067690257520465907291874540391906771256368187657107556859205295269617110035949414325673944062070710962642116052774574680676139829932493585651093124812962754313319364607148099745614755308634961402672347738501587202543122480655454616594574038827884243371182208301470313901844251350987400031375589895229898050835573929093783901043062822468655821929815065085777946969341004880419095073113253766503848587315750663115655749449595117224373225569824834389575863536374777205213447780800617057543578336412947181377104721655618673942243902235257301322559333395713099104693214594127527952667836710655821643835480805486316926815337222365818954294025919683503470862193655542530799654420872404322196475948834113956371863256486855395095876430364723301240499575448867080383475675872820964922372276024957157175583499868389609850041341523569257828277898676897999132999347816077779137209821634252082051258421674182693291185155735499020001833599216091391615793532972630033931570276458483273927321509158993279590100794580681395418312840660089854115641246921939933498284247025397525541899915853918123261471110957563874169900704360529775637465973159423055584485301512763788738262145385802063323115856651360764395720302411772061954099769089769345659171074030540507410066353095818018187450141440303830113805099578876703312650785766525256101988463443152629040795133556264799194606352722632729507506656660004057143265754597800727545490192846080149085175364646314923700616374903456644421164283881887966008849464588008479922969602661136381523452095749800311147356642240518902141197187690853650021085927485176442090282269686735214956334683016356513487728608631834091728076559640397183471399640714801341369172367610349579401608267681064098679957804593456612203240643422071807971652236261492739509011410823992169335819629374550663695697469911526597376638155125805916070439726183760747941917587266121192438950706068091562590502436693174135434664990635897511241823765220007663884410319878072847418386747499355719988626142716456164297529929522502337151667111702865351870508734898058005980775446589002137036767735426290580609843458765174787791244359304076471830445270904414889095739856635538013045021519691416128503345138418349601777875086886034954201965313157318236230157273692465503503616123677819236995800779374224931399666921019861184605153161814023040287224454415998739497873588067286557968256930967123202475660410108941676352704077036942177430758146693152015880576253061322070840214239851658909075932978606207248739542982066638294999454731625075326102860949369084251096637961561627981317007606242893975290279625496643695231877878238900913236125272487147343727672730385017551815454376712939022848850273501546320184874088558104269450150007046328251038667572129656094528418221273051051599390869511508320530373726511953859656999824588522163811902820040098358324424336045647425910670905775188301133296097655606165456429798576909706790877572878068782750779164119717104741608690440092311096227228510422866657411487665522244377884166817866873199925953293986146172633427847027912325309924074473743877035653937978831324268709947822205610942397974529362781633109898551158096006501768631331476367076279604106553610380656280827643627726794279836294593620710245544800860263195389916516308617696216381005688508487023952502016042504771639505558495009883757095109453090135762672705458517417784490042174353868467539578891064982582255176095533280452557229682237176795518378242026758728220354156723674941772766817184372236445530877999704580012454931471289561436956790277756825449724696299557398196730632874074777121425346535038811864680819817894130517065811957400140110817973820421379342913700785390605371208426294879717550197180776091946288973266821756844591581985972117707118761565966135606259291514018797167216460741209853477496550900046631932299254416673566369304833292004518680306244876042585194860432087986629384232930831033061172974677773427041855624828254205194684330722044344394338537787462733209675350858023396955558290609227844679012094835043246947461399597008661198241585080754950839293665751050948777192391810241343261018362448959382599667182883119867070522042589307269421415232011142178733627880625463141242992468726615108054329443028796455237719880454869227605029160977567037086846795854087166856046723160837672279400347232111665552388823983589791569043368881611464846001526809314808436844428180336636804403013052633447054642134756734679485670561773319548208505851885682954440039146559277671544394950407998488659638152567232040351175625887583547709703042078375129684267769579552082533865397535348831405774062153480483867299876613966670169599889348651775508522500144961232694098591333891391801100697315468174601155290330371641641002572710682801187439913706056567768115473554496785335517544806656602404765311180088055940338868569967841011017108213704938490965768000482012688575592471655250523368177862058158607515919924460391838393496129798679283521021181307372069246875314537942406230246991808031574894955789337655422492137993294814667066913011991921426277295040355743203598112746847841221171600773054577893214845358183807886750161744375284191023113685128901814328957815371671466260302390819226438923212198007723274378206011621085610078220008108012126171193074401053818256794626585286128664012072114775877824976337935530047959820841798131515924838540791256342488250516791235226521817665674945161782597984580474955362184317607597072274469377978124629077452659168005005816149054550063414065225786192474492678067466663829447321336961775043589544812324468968979638029578546923666904722923705265563575052966467734030464431056542942585850754112372914867739283429296876723068570040223633235278745735720524745642612678517211942535691927602895961124541080468712115063419816330571427627040312983057274327330904934529659228412881815258862785111862296748256101738382327017595525290130620486462710756205006286700658545767533478164884869634238965216288032682734846180163740321571161714910698538357070716775451129086431612946428882703318609005169992173757302335581580953118511119474829511598930971179998073089257219863099191029536883209046142183943123105521373874166522799954549446105892459676997388198438128411071185526028529236284591276355647344607905387192959876027253674762449466527159379736557417582818959465794970306399943117625447350197229871481461782120938535466072257599929463868744294574632804123448456820660738249198736247625035052922680275217654167975257342910280729483176032231306096488416870237717147448037987034407636022104458459630149879686008145328211525645748821990262457909270130138085727011466305188687338293037633917517397446529864330526690271905900723395559510692674459085053579418505678517212622035863643914985804177354326423035800602881251149741086432447940032385421333520395017855405385082645146243288427318804717239930604433542604246756750300503635377334447797112883462688760313894545982443439816734699201005057050612873872196001687643129474282291313917422144178133738973988221886709938402019609562677898472993060998107379461096946148623014928221150279735427908775175263587946192542198797143284417371232607495922016285860664332275963246817927636656405336051582816482375302771612782284394954291953517056015564801609734064904317266231751562184533706270225378607928570624132550313456110698731582529649409073823170933687328609299632604847754429368267505574135125295494023359480830335891629593343715350877707581592682449174514158105702117773176926728307573633832800900574718303658914377369328886975124117386782313152366557678460956278111030594106772543845471100990509138393692882845077112102264787451318461670918867665221111250626546173392749318250641522093348980223642619530965754202080872664771832452379690399925156280277554201610060383391833642634185159579615468918935583484235430262875237778274058070465197733402543204007958859552747867449050181208327012690181678850307215056969241333751134306304388770652356788336611977756693678568065529710506449999545202462710596680788971735610217903843127052112786513813190437158741384217214583868851048405551344772195967931987898168899299881180495213941310724122383366590793704955877953516314501313745475155891750148815726914116286231844917707617624274662202053759449224890076774903646152870514590529544960968015291987545543310127234412656308443996467474353953080220894944547099255660052887277318903217444800163124554867751668515035913224382572609242289418494337104990474023561792628841533827620051338389835366485000620039783389044546537989902649396089426565144489692928951395672833632723693571519909436678033374465794095667547010269785307824653283518073705775361135149407223145450762420722617963996251904382293901071866439107588201756154873899068529206824687290244026990160048886835066251672199476095517811758708544745263785072137462093032400241582453438803801356872824858707921501982218027244254484687079269400872684851289675992337030975547742895938815977214863576380937517716509405404958936796513509074004747698041557499809570833508382612100894850073664080032940606336883849226577709699265376913583432680364917103798071042036791785518627171466477693879268977640517997788295768725550851460166510981498500042706290230189301207024799489099509597357313049368407536511661299791677507587878782374396469552894694483601698401497226320089026591132244887399737770301390514204556376625033871258389615206667085925732200974358279152091759454025403682060709849824786681046393631652656581237640714333132429628720570578604437873206576625837666056261567822212613791389830266772727330435146164261639641534151762349654243566972259468657545618518449094724402673027606597976722993229913360432523235855106122950666575358542705841167079178485471016704743771275694242800383721137305371830406513644391162767826531478766614604435058944073980952941500148996576721841833508061507782878051525702421013252427313971300334173275869836832019644647156661023555613399291070469137388443178862241455563663190824091647368560981661750400135394764627176138458638430186910530220467046938368330070078886038120869067354664966568253201145527169655745545022938257131076388692303172523412164348439475453918554220549171906091051263333566107136027066083234508918372371821420528982754236586960223556871887576931052218962119734505347091554840552415635037835043853081316569409659070949761595838816123153948896761237356359902993824815170697138037780658709034579107362478860925865113511214676281268365547283301486179193923123353319371452327740296981373321013964509810071645468221763616581253249515732662602952996476662865738779695322832182683948073153732734278402839467746088669876437583471905474543730503867883252473724382523345816167281071554054947955515833676982243707991265500513655556940524757556300877825794803593074229994966216569747676219070184381843963920421079788292334858702491123386077488075629630963571093928977228530668509492221607016482930371006501694859437264443192458925640126784114109306119765285771165673746217690608365238232288389618409317062297142898398397532809986268805093110714992366201376603517418781284921169145212630217139297500265753051795894450371292753315877190373958917916056237220706100950629501381660086079107322224136683387625660660391151121583803199552010170039661351400676000714125530988547565906386962333496627588009765747222920674830023715106960602673051685767591122792593544305266238474617738580767050580396530796825544921637848971375521448658285284262138947334978675779055513430327219073603129656728126796719498257154933989086188845822264829253652885932792217158037292104855184639226326994373582574978822262885115771412376611974267131192191772850568936682874677963738475118612601250447434725840088681892982166519503988381201424324682790609980494254154109284953473313114063737698698083547155045172899489450965788706947526747659010086685350799962053978139037868329874800059024641296862369436322636575848358326463728498058426317049667177334303620048977882846595515562195385112823485532011534478224428201828176244505580662446621383398758097784285894925072983113944098588169512867146517801111295774101954737292525380922750510654891494330934101419724821610631480412732205412317795835907513479102547353597838218323194093245139408079200598520388455362491277131789579861545924603943417605910359190054837601461032300107866973323120367401765696399308792224793046537110730673635091234848790757284301052110402724988693058250799235553273861859579084024587467699128252543352454648979653825432066174762246876888149038613205328555609258405635709577441226638375381928996997910610722469361885575656286074860498236089666414149181346422676181465398849561221714080928555177155128269483304090214842317849514392084319402246333602205663271459490966070481957834840943735789943069470823406499198131609837296577120165579581122209568675036948187871389358550911083989165557755600347811747368724080861788971036079350551564647751232581251579145983107393707831301155465188720875330521868937726928998686316437705105074430690960401728511735708249050911483848754492299773918742489576146252131926265894450600246571073593972387144490484795032401255371321924069212577219612735054012031127780667259220729972140950030349390319015704396969409297323074246314586617199401677845079821899940250566031700366875447733908799516775500523103086262995147710585213423536974402432528362554304962836647389067840970737791814312115593066412448231439486523269811140844466329253075081644446850621255415948381256341907630478038138344967934942694375388507011181712092062266340353987471681627037127742988786721124622190301353552988379679621794826588704595183557471121407151331408090177916443202498136181218539267982458007889647283487673210694397072068377779174205716127189228270752352686665172887996089205088578749387894012760931618896977568115537343951430170524441754417580337895112093873888026792790387262218044101925299389388924901538339346199668584186939751539491108109790585435837132944832216143713567631968714902053305121288872264646226463046295619784120473013849961892979192967709560356829449590027525507160492082842372184467092610448150367834762057368647723632081274956123884941443399845786393007709116550080108415161767255256855441489335526598151283759973597868130135912956412889953560731102019368447713823669565079563757683571510666309698901396041803564706728571281471752200985140209649561018455541902718068754621460667886525498352694213441572184240421131730110243805501550037743927014094998026912807923183417317260844371099442327636755797506455573826453551198855469523677038537307760064137415559511958845652248214815518355353806416119802050411873410015667005378393040798877500566078317394152667395173106042017629196672435487704604893144498041508971500867612332130809987007361357771914331558741420268741338601061239913754003727914854350834054456201396131228547989541031718248532581996699947253197082755306264912127412480927431041136139651135749143637247946220671193376905323970724707460237417653615871911885814002133675965046410117107331314102855900001086430445717280205799261166991095456779559312406200016160328113343034845743131132942304255260445454727984002781560073948716913717998811451774096460892146894333800219891240665460453552850377882196864374500525037794763184883850563240137070076051576312253562741205357860172577667092060023168938839703759949891788344642756940082384100208922636330545524907787191156936026724803518911680163980493229460865903537650713602055771412274927027973281052177933895097652213592920916820800901691366368211560987939401231689770334016571528601694156999623562717881633328568531378089782817210396057674109138014615271813988748625037659844221760649164543359882559612016977289492135759423905334291991374193765093831414729870598701870643554627707569619530441134798221635359832286116115635625170309839862346219832193744322302052871651970391445164976291932670012791405333154025056909861355678273027220117032439514368598620201600125173637541602314598044896603451911744984846048477522694334976053792662183390498211085579309180916515471462030897930785910308870938273893803537338698849852179213123737975090754275672382819745113291789084652990795824308171172616098938237337779557746140230106653032635489535878744040919619363977734898607860331579240293930036544163173367255355000004041665850096772596371331830836244871831137387565415569140037335682597882553773838291041883750538030730019664648827950117516629431675002777039349878750356342670363601780501407072560886565484326010910731799513525605372998526166066283841646676510453511726221779685790493056171808839095901608894643209323985429467700857975707085823460783327054387714845807950590024607124122947480208821462054389451175041460265950529810497463930449034959160617195980405482411475603626592171931560680012180566040635287372651021576952635277463207192200417615133105405650105616355778811093519238733681788009561217118720773231495263805432702405057414345681538364490853174879215007925450625587599244824535884983077851800293100365782179617710066385376245244023565073057322664006305466163207921606292844392406414489807357039222044426292715215796308206774884175065050449089167657624382500811931734969181242793119544791075639518281956820176505647666258979054321093747382539830253894291052361428934333014944359263230348169653156687312238361766783940186541679484367615085659262867376152986065745223867536515144722773315307428046195469871653330611444199668927258325206312217253477733017787042644831587727554338455349388936899742904795615323915482443849556690845653052311067577687043990591117430952687216154670225488858484458055541959127020171904387267497849384067085054089612098136587683902886653476197575224416344001774549135626288593514409807098470113628050065955113465411659568611175720819969802345119250469027830504879173413370756998751954545217201541935981190542140870882806821135204005189821952515499614378561632045803696121295755822942637552026740990871951320640376492158529528671379559954412656810632995486443175809427598088172778986109126848145504406503062377001343251567840899976838655068606089167411360169389025480039964925347604458903346615498777252562641867794795984883015065116541487708863207578511615930389173722709813238568774824636501731497241471001258578888013591233749676631714629391515106194664362408630892169130054870474751057500089621877176865960209990335252239961008704007023811326877281099309067160710848325093172442795345573058945258264088277626053360004670323095039357879353131903126953518266925355664173686544450916936220654832460278140348791263159670259212115361950900684119842919339385431150503790840870339712542759108310450143381877987922353397068367344124158840032752316141886535565643982293816408159063180490351004394567757842686584293291229532798639302784814589122922607314339398079772058188974062324491144830022539858476651187288336552405986737290255966175410373247039788638247250034845062457571047330611941898988696067961257237533536839410829097621300037687784160024247900161174015570129895423846506440447651473961806592312795459310062344424895496047139893532030338747336294515527564384100259150444901530464419465136162954149258326279530394981113627629750103613036127587962757120232129437390217615328642025817460312942213649984038255364542052510946928964205096297120329670026521387754413091898212437999740177274583783728887186161880293227699329110539334987491374118071728516715832844966402268993913697295197660534859658092682447593962803327747815839240159414681366067801975259316507217195329656203367369809907473694425960226087483166859204667184681796357740378283570569402762111277189692071241116116135750645999318143684393647984207490773875241538756883721720568612698132190664392946289860110298627846997962023657654324233279429542058607292293617209347191983830665064471585077143311390601983739060954586369989077587770127556961622177805147609738514377006849049633867942607741337961095945605539109574027880567142456082059171579263564061103383920873775523944065403540428546955960856102318202765896895484774440565608788145966474216058158889239589898161150997668205286096781956321575949091761334717982593056961838960263548562154182055239059211733047955150829086664207256427860636051392137684455836513632136424443584822246567049633736563661323818947222788240008286685870702426530382722331547016222667070642346534352183996693354326547955305163548841348511993825010974193227181906514966665217309396360351329262212621188809815845326041974427637835600152553309391345173303321207496933071244966622682082890407469485900909657319246750253398791076890322274293582700081184078099616886010923120315057633214549800402589097864633172731651901912777544904912093801648615246161807442312784175009905241481011376355618190759570639230003290398918347425008626714923337586874716940706742354874978166631502590924612681781701551787154332918124910773548168172438627984910992859504421159510351653561321687505029923085857793209887474796648691126495301158025898930113283929072604985853534528522249844678502839017279777863818135716266529076347532948888842093849792586879657449086081580593122583765255882382532194589353710786885062827850579990669837214482143253993892333190575437223992292236259150577622305741827168822456009800894980832950803449459021008480074100922801396114655073547459714614277922934733732861903855682320449168980049645694127118461723227067789611372308025666847518407068156317018549306256864322019240401656491401041614277789366933434216051171702146464341396834761851535813138935254462852649601074657858006666914459629458931238181922770908075215441853127506255675698684141587457025218539574299476047946518182670084591976512498719686986196319072423264383612809299167858187945449652575724751932637424771411963346720074759863844379286243057804759042858700066223449240789427934258108906421748397440886015567158752391814927020299638879669421534831968066645247957619586707086227157181451741318209985833698149128766430358934687162990991721045409828746903462016904782020645895920428999240926488390589763326702302029082962023917869055195374740106098015254297508206437971604622833818700621494480883505042692650144271592783333724159921468738841778611091468042203072761780510965926224625807525362426590838886285892448374742461581168143847694402290558341677345152616953867278642668427186320532653426468365058085564032065662574910038427929453445147958270584923549504710232627780000532094699257180625612204532469852026137022149501244299423679572679845085166956720962309993399523640834066329033147683965139864676809244440675640917626192377713993569918550438672644431777364557453764286724380450171374379691161972678443976357032696494933758974859037239530519057829371565131151564088119214256952995751781096489605409132536431467685467421990873293831746646542231417530368559026960836942028147899452424269363413963268181622071934489979941815834535694239431691880678171348320970670173181581749301767169034699299728208735227585110156128847557074935411719417792911098162730542279775915474164526765147899758529860202700136631413952177297980420428268926167827650958113740385120114608726752222891681970506608557782213705352210462048914877246760390762172122230714045945194846250585820016299676665661572386176468611670069690921106298490848555191901616598378501536206940590677939317112021105589769675735203273751180093680934264695151157674318528242811839180756091646321233881199114197108375411838765217504428998261753444407680324109071116911886993220259200931956628243720017475737170975992960612678457508174402270879870555275625905350111709162262733754060885425777591079819036170023753888261996121029781616089429959447448830988320168604298019728545739672026472528894760253934721974477553121839526534328054502923605404598822871032210352318199563385349380364487533242936657727413851016313569563737156704581731942779293178255089906070230380987101684636349425091340003681717702412149418880797151209246791322868519907646475691130219213016077285460790291774825795894492961981764222241509977444404533699645472706916584692660983771997999282922681771473169833418815374756361869787612802257191200234470425315951200972333246385292189566367601314792253270478553795094365459571676960053506781385951485542886187435919612606412762306981377211645299530069444771597712535709220186091820656515581111169480213231446688782392865127760393356641021352776516238301407111897808054673414156923471795193642494242836550769712534244522700296841103145674005347374724128756913385683472089586131021373031920317538053183620675492176140789172454925342949307358035441946328053270947558661585508538173099792076286600810100107959675272054515902740702146888157152576966774935132625167123095660734499634518891155573643354414455817184920292223222129791012860711933081791094723667605358115389296554496686949523185045706122517474665434755703813051420164677062594824108039869163187609548851936201840115093374328577486667197118198042936774952122451826040734098375815685473202858356068384034264132751458947265626800042439096718607512642040559139980170714587841260059335845229603892949424665888695259398938730236298238273067820770008465152440182025454195859443218900736458216566774411290497582119683556944969939780437359065730375947342127819828646534142587105146500828746053062422142450380917793288612860418445959603065379234974698307009128228632798614780137354445521941594454284393422813036246928806761015692333436702913165437372450421103699478700253838804514261279177619943466446453401364079730785434832695402333287048668037893659853410408065370884284983116522871794477773657244600870420733470567888668256004315177392463230018860624577947488576326679350222730775237617346253631316194337167285529243341375433640891190805095026047527043257621610949615286916743737800418794690116081520924697051174548732665150095385648801172602177248995510832200092369934383062558333278055589939468576096854686979365989981892920854856173230297778687344310874848453284502685009133494218058121911647876258712733886134168151042929069278767847266837017650867373692755897688535723165186035728872362576284221674138660722406088184051016745236957746306605972556390178539887172136729895841495666293638982947242073459088390605475018662974155444035533535120998634716675209712069394668594513983616620327457516158530998777856363771718613849676645764784059124131664441897758841834874513680582121456573180047115182182287333605729917437883815261611421934503366352083777465178522177562283482220654332580441495548520923032184530305593274514765414335121463956527542197016741267333041095444734243727867321090770930306150462758026243627200743630349909727657972162683890469979504064451082638487586612711094211327983747265772222745464201883671799210259119907528710000088571832060034592731146629025875487965118594573350357711693822949855765383360628674727663281066127686704214165611754713114017781814636438537601724179867694679063149566330169010437397082019367632691179268802294922421256587401884234942516557206188628942001012489980167909309077125454245714992164467404757380158681720336430078239811294449391988169970821380199062550450382232100086409721066395080178869334522116499900466323138343518060378599320198498501519986309461595472025513417951695719999942146378157984452410472575938554292980606831899480260525455327870569951242963275564721658113234695126898763979417115974935911281318219210284035037072343274580986963345418644607380115424701677161805809206077433823308608540771080927456304893267270944494417121298934886389052805583660137723160900957203779930662395957565942414039926602515888030362856399497375774427510327188771910703619596205457872274123511597985557362053875609369922601736512567501741702313753888261980425665939677873810992271063107365239701846148530709618028278736021479733756487000810065340026128627962069513323899161348996558264075363109757202499995299800550479064098929165231242399175198514846730184708602807228069922186672671817020685104715075479754793599602222968999234109592020310793825085693402653254891754827699298453907989284101951493379877483046383089207680355516412986034892151545034055807129763640532738667686402948268966208236184181706870141950037282020591327326520255446863699339919533027411639142756071882851320724734111564689090627314103411291842314788320875302802644577768722018490587828581428836961190309970322196262605406658255969705902977857849665890255731964375337353348945081709968553964469569414592230714963842912239147141899666470709078755327638778707919375866125101870329126086164540576971214977357810615881831413314733880499561179945234932485663017467972903528356509074333275873775317842859869717681038081671573479477202154658195097652279095730347892013333076924754419238180812776637851112254287441156529480244980798267185504774357679623677986009617147550427771298138683662351396372523490266204912840733627686712302486662034386674612049508696080848325314072828955277563705825407313679982721150221939724883800391706041048539301183173416368500424700847461439747810936093236615295057674663283585855528297606719808946603389048711011214291356719507444992084775747434730904945953329038944605551520041826440183696841505520537957590744924308456159216861253903994331441339451036220564582309139913426338735549726017140067660530258633413467459743567680556662184456294143292569911271739057524704903281327256797324005273674540482290334157348692653144742570976475159493843750583057715724032381828580899187848212698434981939406209286296349588614160459193835598778393276969600585215929989792173427402145881619969319900072823024406562678697419687619050905601847332336436844887065948000430932906127158833879377152309917134927335709819048761409894531346389970146121571503924995819173530171611271521090010548460788038818139275473859181159583555760472252831163729572394553177761149820544614547446693180185104017112768406823756534000303300809912143578416914218246828050964607412097485739661749080862796222863107655700798063051863304310618941534115375624094011367584536803873019235175431319087770084832362229406393829174721464155711839750643212020173042639205604207653044026948351098422322727499602268621065295038478128080636271045427297299007895875438646223473394944920253025867377046909598325647332692363951629161822334552958985273146202120928859045016263118985240610815921971229147198857151998281357696315447408392825402172797704969354205007188025273173110807513318759898205324103940748215426461679384351419168382930542032783808782178407165846904235172508139770650699846611951690308347034519402164227724285719104716327680467705891118547660899667559180831836932266095851704905379604302802890007649633388261338753076432360146466629112440202468304662911666053269840155307399484865996866795745765984268822924662761268183566979493201394699273910770789461019992750147510013493464170920484730070229562373157781532239638828518289983226102267931941597363085194674150675432342986134320016831061826043732784751246052901305834309019511775282506163803792753862098705392631842338702620129027322509850988303882399300949611793707756732077721551547308269631033993527136392613663996382448672710043938156257373689538449563247903579182604196083720780543893278909330290966587057892649639177723590393945773865796454136839239122068734525632328554808063837134946702061406894462501146982685184593317620552511379287761931947392039507064827382626507550023011893397577231727197242452714186190984401680981668076715817297456401504167291588792054799126947108351866805498795860342495512207313545528156347339445369832009470629159264390679864477882494903523783630989343101004979352727019306282504797042580009866658943475278304150240900454217375778855842396372022718061490403375053765117969411844598954156974690873340957665120683100954594883729153663048103482653472051476486430696868004810951943454063571855316961740056646271975942648660156165035435030278402499681727762826527052910208598458194105152838989014280134776505455974310161337066609037667397280596089567188595192326343820724771773878018232674318089129028344630680938171604623749885469613371960949334829008907998723949379592807237590885425338262778672514780605676463691307013182791117694401582669867667305202807426140662826172181666910561548817751188164789951197952022874452310763411315516389908361973129924462423114874940406300733107926760867974880987605454580737312604773882181437198544124711898235503268718601480634618205421342515975745557864766016651628623566572857464179123865748562687607251420522913188300099617364312035209787920037644897018813564478038103750551323559086212143730379773206203452070240059532097981467944184146943758801129477925351389777554413383697393557392103896060402426433448799755182593483812163258523312256303791185914459006438393320383941121347088072324623216252054066626403133518632258881753828709942878654628330849880175538330937605042286268500644201420324601776342533017947263347698293978244749437986237089511758947483945642143614353821072470441098411866869096746352172709012466542794591767386424225573561741526659246930910402059485705816072418488173383721579877873595840739287515045717632174256191249661596375673254296635107968242029536159359011314975245548653404188700622309771544209265035765802470391398713049092190358204764258646790551853602367856797447243561130191772477470346979553704205730871205843270226082382694462830891679440438057508037725739074604814846883113391503378976498272146516814246460180039719567768771700260831848559472583973858502597244984380310625842743334061747746954675246872647637927466223797463573213081132947177320456990583444012648533469685104433412346719800623886994872624245121407535698866599456314083810005995061406423117245486080744489996748020952928249321805591791019092808184352266643308688698510918052864179809805489555938348849684659075336342532562365370633358435144535750374457711208748084906273113027183400594013017946680932196338096863160683177780342917071310304712810083646341666677094130235097939397673197726665381761639671045700600680127920172705433116303666979337948537459699851704386062288415274390283519027169370344198328598207213063959165396371154024984050785355052079688570944544313824162885586390462450066519489655892154634637057889148384241290388887691624423825272463129662994775502497570385974285821393704660841013566949823798986645947624723150938908394293755672932544381137608500677646163556629077593229640172727912912423878606320559245760355434751337953593857295435101532634176722551067019809406844756643706855558617141928845452989003751488217005439325633320504489979086671601750695910960852772077523156509795152922691546661052398515392633113472586791814523378880840609249087041731937874732930660849644024155614808776723946665776871009207060744867875727386476171701307441964758920778837067794354522872100695769786307105911916454330528583207583336176246314461558229023517600303850113351956128876177922852670350615575154858627023435834031942389555157542386326158667098824785848472244363880070461661875150750095008816785029984301530539124329542176224131334423791457660602387082414503597755393695884021193629920042309994533373038911964223217423105183418869820289338628930254606837034395260482612956249507063111443784836071660415347474928911492867857379917348120281414882309943490130174256236852954787032545491683508349922936767763596720925608767414353193536999061008457988071499561745646548214484729057114187735595082324834511710937972017134608392930157312707394635560824054408464214988011464010186838105094887284441684112419933789956309996992868097670352691449467125412491267110166528478254647678867599661605204173462186384519102382827496452537369906521888868312731783367572992277138139572667022632512585773795264439220111735453231065346255633639858175652168397234263393389301850886960317256624506687693653646032094033414703177617805638649007782348758637097807756126268356742720564161514766733283759539282206128221705643476536838210968064124607358958034840319660730173193673029245175777272588412044351402985208374669955217408641196005435558468210493490815774751337457730961746130575527114870146725671726080668991941104510490391577721672061513953223269034736434469835089339163798165806681216482095485602373299091260339637179207480803460476389627997764973726357726971757224145113858498680692403163317369125558205269567099574811567021167166306819517291347721322681859562090995304844611646390822943124463295027604150592859377577265147048846307344174439932872285506591165624939943234987184351479640067481338801132336092773891809986949902525607396525355863162727177631859997723844589020256780831244207960924557170656360639107680890328476817138454833291056577236198156592037477338252361555898435689531713751595179709455686370982945385489410501303020198404122637373162146743691452456103396345061583621118566010107955764246781185002622240487121067624373033275946558938771490453685196738434639437195818529798662363684767223249771934779616598897580040981523665124256422055383146496025308310915514381758898162338427623783533730242259759361369696971639613968436046883557945544205302054987986976974410232862181397292268469061120031120615572530468482908240458527043479464865860883249257561247960277068705321918373956743337844007652659572883782979830279509254156412573749208890977767488259069162471677308662889886478758620400680811068892923631666782725082863702797440432723610360799564964115718824937487931932999768856696970761369812227356398542465941250424341441944243396100739825523403898627324943043524688140953975452195175501983762695260238912408092418948680980655641744991988720628209108290439582879699913919620562462006955183255298587598129316779479751467578230690546242021057031270407145321978142900219602290442584924267811394726016603587981133995112443552747050910579225200643119326964819242867664359163523282558272687074909517450269388533729488448500840311801289691523445319047944008985048809552832297156220842639272771793503040704813014533513454557853198496639550041914534396919637798317285132165031328081049378645741166510976585264774302040649385907362709935464156642077728911099975604274780415565374430196293360932396789755950525776940777035088594080617895439996562212104061371463943893710248949838448178982251989665205495400754426269544699165135740562239019226912640944270140577891867621437060665870482283952496508736535566232369747120165701565190569369751181117632762250201613233941672115361729305427245564480912636773831264081417010815012441819201980097600214374891307723768442590050477565728703745359617538950914464744214468930370385091991621646029481544562598633697267899721516467843699790078555743836016639766006640978115578288675273894010918616621255930696584372415922659483108167100186266943577922099122822284259001618175481385476207068054410395536922426139310792209407778071748583351171031146035898848626495877963390754262217799255341229808787788029896799411005384951761266878905208154269280835007736122489077043781005402923020613007749521982070242150162657527870930165580771952873644199738041692443457278081604303932954508427711019887566201086858359886682240902795602083325829550455874217435372028236537230227438802411176833797017844278356250832675515013814290604294878520449192338587102523021903298924457725016945303583906257196132389632035234257529411710144844024636339487367249294966059059172862116311579414363190174996152234371440585683744695986272345887818496956351110462992361489237891830838410552953833999811669884457954296771938946709591322306264820800726688539534160456015651904897212159009435776328859360704820593143817803666277097480747422978703543201653256846893780339299630335478368464018194107690962539348315077397013845731180458245771884551295527154493028376620374261169995453231909289851651501347831301604642614736619305911677822005737216941615763418112617785575872646960101249680209311746528032845934135931916946912282485596338017799700647322118944178288789927930187294915746613534257118671472814293848254890357732836101852999138809085264363248865665520217805176865675290093567217022587044757493567038797848514539134008089317297464007800748245104543436050440945178831468234974542146968667151777983417053765481078897334215095976690181115168199747689334298175337037949721015899417006145337515724839393937471929757966353392407731130637346898688686442828081500684158244276728214455315808076386594830386816270036811669724233642439610848484003636092889253989152829697533995057303670532455433683253464726154593506601815306333358328995944948770448059971984183420124581301407907198097638398302449658476517210995533099950526576090201169585120866910234807685110546090294442618938156990518395352559872267790842323785882573334799471286691525220488058229743572038998325888179634074107995175310376090816210367085105509170264080833891112144386737797160419481612710709302643799278658157821148179741743521956306359505439933671744383412076039208010896986674510429715712833539292415789647285503736406424931119432748929432143371363257495090208400712002653526882630249005879561686980035429058042908868834271593276276863189061455379819873614260913459755350633915195918474870577027710256648760646334036989101356081954064852159803832710367476944070096859760200566485942280636304730294423292464216776363952211430749350597544835157524329006080767107577137959547191546768293776130146003200517874623090831446179086668492524516834201278269160428592717962268568760693748176956513595856127863286434529513821955310529910517772572847566410525992955898339401498572006509801358502329105338811557611383222514164048090783411015154077528324983424740633389066569418725249656046632565920806347229326248503542664963012904738809037606718269628937374309794672580733649494732136711439277321019550527738313401689869751284219239757312805035102861671516820689289823538742960287699799819119168584980867132192448562343149284385397778500139946516472096217535551062640445817596690162083929908048507258032948368169638132862829408283987345279753547400764490104727092621772222160283684316086010464695570575521591722258661873808319216463598222955121865881490335896948721028305745983122023202662213695821193211128367714008823353936097680413968369732658505222385999005388085457605401343883260518318113395532398174656871551716532968270819537686071783614118687465280176192679041726176831734709330380592464951957606642505369887806432646099719831766078747641187888306692429738747764483775298463026032436229060635906350283047698202103886485269236231464164267024819163156848840090440824632411806569667528076585473728128510299963551926364890796175476630451937089749604488693543561978961240567741436452868993630715600572723050221491356436647712952986070742756524551745258553280475349767714866317176514925023817481567196702380166950096242496028492143942582397841672398346310301969492226636804038730382350188170581392138379266546932925525708302555670350781421307708409641898359820359045924046821506260128639723441327893292492463200179749468521702923823338899044857512041158064075126334674049222415604380973372891796602873606772028212159391390503327890710695064195399853876810619215860934565755966041293295917395025433382896414553890045144945952238969483992781321887743483897219819159320545046913941171840054246458103237886091253700345465321853833959711129220462634972270250074613624821902028353006271727269680342820582382713126236902509986164623610206000055445125947643106713864836610007892729004736486709865762873421431453116257914733716583263233305537107457090396836261807119346801786732583303876869830534697151542679590557905955877992015014804485434261478275048251897249929915458375105289036969826432338551152604006019714241836423693995235061567221785958888772116804433807187237672154107491537538733264857631216359953262785888070956790797163996082068119986218872782081219999674779610329616670064691087725832705206055750097027499111582948162102149841242700639771845391287598011506483111501609179427571004968847346473497970356891414613290976426136859256625420156404759621409567980530092288372137429458554683438700189959094135584209429944352655832610939073424853795733780633258170984729731666708147635235190714654135480866481893963902747804492700104769580095223045468866432615072948389025502844453207256612985000080542091236075031401022002401830466177290052792610125742376178733697867155026410461068834509532332241840070710885966380109808231012007109459543716448606395765332501865397151588796258542806549611344919601968443225079699056645935940125402513162050968360757625311381298698556214582196297252262244059450641716403794132732904106781103457748569148195868236946692651792911885568142403989132659943982277420239542416304730741849241018701911359273735777454874451367129893658057640715258649888705401068785105812701715055675443843449793152068570770012022415127145937485916963386564239627464033139959810032196994715321478186487707594668769205583720020922930643568391743169531599442688407019742090191929699804495760733042268914196513221772216118299332284626587553489943956394400471630404319448448824525127308156889380864456154929203057035055044933154886580235603929171758324764508313928097535981444913805332308718091286263199026327447022247830729371206345971504310874282606529297896177790069821796914774541498526117708471816289128849006236839356423873334421096898053091647143610595450075276868243632130605295413169108780806661950804446630104482067684199551541520281672943229485393123926755734216065240297153888393178169100082295582164351055532195960995996785397742302548749171768964811669656682158818095758584202091614607267088842499219821037500973002647781244127097899234505102041109736626175727749495028104728880227686694288489748970828306795674309039659823839968836281768789014435195010376147695206908018685580486143214326351819402962620354434699460549355666307429136363946354900325326943160214154811867305528783491837108449193586902926151777276328754606038705431925456674650732764423233439943950284494993596600313691452172677176910759187801988752643735585546646414370985827803800601976630056024079558395372452652312878041531118574366546429082889599515957286752430894288479762357798982245220743015025345049641907237240237829355742644420126403792254810527720236935933827027079489493975832505710547016502435055717384379245218589524319403789147557362388256818153093338545998987430678910869761666692394332712011211145990985714421663966821890874247341296004928544741004200721574243056132630747922944988866063315722935528430586732161474802086618436880167234002369626973016159981480186478192835930222975012187263676524113443338242234873601550851831236476590496982233972230151254749385923839817653181233666050340081625095526839438003061507981805385115656146262544234629795667474022918917962142675430126097693214651922473155874946206282353517772498752175931387174825815608109795575030985360993797152140242467644505180118704446013570633822115479138439326694301304228615612965692200739348625838109918193218385676488018661160375871107527509524150493455834562839723933835315723150612934766042884420804392488775501511410091018817209262530803761309611744051935275917080019599126275362575986720806514481778488768396384949434129276711160581198482329684743756047307739384691753645271495568464502115539800048156169453589781218450373077594804806338566889295461582504619002500302789092268891098265233541017101389374882334375671521250414957864114560112322381360324638643718763524272706470908011117837615619543095049505575442602481744352472185506906155149866501762216926966716899874212176906395694783874768196053325117993841504600511553175044699378655323515538960799528224980483253806707564490404730546017827530960184554265876316737969329473705654720130485823086824961093792053872332667143706240877303170293690231663331793985301125004258772825087585412265312651836320387578777496388257033034755259527404136661534522031251388803191913303845512217283209153499548732776049640350107546545172923392634205188408020844771337236648299587223180343859726653329482399686843909689132553661051509516663265786722088641034944849278424815746567368369157321052915509187308250160203078578598894616778443295379587278712146531818366325150179258457894505092645201867041483428618041806534809841719521967999675574189366554742428960443415515023963799010143641266589059404209068398824105076392597660345067014489289038764094359237317189428756103837209154827305493980200963932808490651626470154674071476560837635446460906022965734359621727614764679104128792740843590369955606551410109572663350355015923390946839602209144079113776828946777405301926990919919325588309172779602151512458125654807602109382525017491954438350358733046693529804090259864259745876506781417307057775466402163796732884103626390771954644088601465052228241057240223541480966149738678728624127548511549519214686887569297561804684277916861520519605295958716014329946809657676606181446551742608259077989924237865731396378497529111088833366972409554614708433292551561517463060988318737991228976198988701267144246930087811758744695378794522842289820220509830840804013183652661149183032191494354181898610926890198831281236283597528897731695276304128325585215425793819826814220642259523172637051324317969824486889346621227291963684503571548432791854799818519239758532074056430518715005450236494596413006499460216662408326062885910366880248246500164191315192931657016098859443709212958748268088773363049963683634752730952065418231463136118073048958500343183301892446319223248817368176890348716550881254738848692026543603024774606795663304208880807866307669096323158156731042126830895656847450524378423596114417482944655597444141830183283295099073349251702701354083791784733526783904838177915213541114565410958250293657174543669404349277383863321808128285890252499728813739959337404054144666789961218104289401866852646045743914386256673466866530703435381126376404186731829313495243272281629354280481666128016626734577011846045417795209399015435931423988161223173140375064991985686454920551112036636121453238647556624364268825606765712223589319876438282368082482252271359919277983007728441089830762684173011103495013368615780126669567621687703218861591532424995953469427713679762252583269627854255537650552388506492069594174607899584945293486229897690411389865729848188958951750548411725154434111849616597414887685143703368570327614431535559658043215728396544486421641722743550632729475444401731568654413987974449039896221240022362821916669337366795918274612391243036924736314097369895750347532947266519866520345931085352052826914415374948944379425345411232459875394824152210696312115149363628892349336340944864900915933357415259766201340653199708997028208475154153768072574883654882558442886049875152613520179669435245650115989392306322183754740989094974725160154666823231882714906586031541655481786219682645799371664132767271418325958329619221919629569622442727496651655954577828620904223061957642066308820224544654300085161848358120917145365814260919152397747446192510118149195704327183298045657618526082129061530270458606653161735813174409244574616899187948763709116278097993686009162160771983154092841763582079169811223894244446130019158070088773297778155532880523313268426319811591441926207445884251232599256093823974360589045396639248680759986380273884770151047787238326213810743900996381160641211059702967992212562004610009085003518185947754163624475376520754558274254717304127733124271488055561447738497892082878339429141383295402461825503137781615019360776992064816413842760673779249617474601655072116554331368896949541698606367362354771642081415103779042453297015074639318710920200403259608727911104466288890071637742203119974607123257308297873456943703500018393989132409744371499834019112874516821009628712296637479282558480532627248321031907702617422278167008530768547321724553054178991361935625164794501035320784812422871378179242735942271975987623209522004452709424515373328905883503574643912167482440945058897024755509619477457132520285190438429777131862970377707660164888685146864598415475159398895121006294596391973168741501968104565281579514987213387021675315771180900390636709948732581531508776064496275917616554084237185405931153134833700388267794652425643755319347771106606836571585992323822583230021180339668455767913116727199439490939356485161311556878925127968622847816171997926759079614717016409459468391137737520913187210773765438506536905857142001786713533364070765515247850216179590941594607032886069261003722948153986208870915430911530699706708245509977014074333924772808252478045792344044975501065257405145360460217359419734505946242823312550935798275474955919886113756448628904513492273018161121938261654522115625259511217823164337245478618229135408729047097779753100037946277227236852306165321196604423886417155599357426298284627174321430606317716641209780796555888969077390856939546325564327832252314902952743896239897041800957067849364194360922944207889123489192919734074885704152725925837663126074826025804027595070968789531373714572329054445712301987972630010490573223402872642487913408047082570978867410290109037668964570031569036072776468093178979656968026796377944084111563701821998413358391521629571936002234119225702281468208078791192169999115178462294700129182231324806291262318644723592525344939537897948460269312172268860113835333375465123215746899582846304420885750433792055725128467076268414169323097733702652884190095038921612475830092175170770366651174817057233636431849978964128305394049658663977034720996676728191686874582491443388797497034478950627380305862165183557012859468066276512762465645070617877841664216344526195026765393511390477705115482054184169055294673255604653038428082507376192973519079398449299258684143279214851148455652769643601673937912747103385625396231710612671196812356945054001277352183286096526896304837331188369240489437309738429077482884404964072404214176212478948097609368459283814843595808428614545695430589318341515129570619521626994296070003918622368069055825430659832543552358869085377012860252406944329157275658552629979232810047526572599142822270353758682056840897362070613792878911850585619637039036115389662537770480310247559386742878140315407653132396998259013349496465518813614494443202452551157320797477628354389804096597472996488401090996355736813059098228885312046564640373279553252075354200485693511909436043688274428621639758730346286984182907575933093191419736368213293383442059886961806675922728537569408085584226356423398869280333614884303415525310823809434782972121795607724878520457996368323574803824390364689795811036845805334180822497389216370646764133959224228267033618882766093992971018420034560753397779687584612961271871012573533784343354914933002639054613351473147591889669637860657386658869308220282288735354799787949752532573610873151977850529452415493143281827400009276503225049850364600791356048094213090814320422451096094732447676753217227158645133640887383077782782971242393273374643952848606534026216606100604189186386722581422690554604665302871348695965824801378623128725846700252984551868903731490949809146057688983557580681333220946254759493896624569786943364785930755261303437349117673563974655041142577148400702742101991429175368734550722966143726018573442130011266534288385430398947515491341472849973911494809187610787643690791847345921181538023435320630035659117672237229533979148410987021009151388750812918027715236633134290553918650983542526457486439937332956627751117141545020194469652616743652833172326949501778690965428686317038183447159329493242249962472409471925446457085265102762073620480888274593943891837671938425954400087521243287275034614732257498784686080073212293984134928491465284090804250864142803380805266842081291642922384615185237387697158229998175415482793219483583598681130795357095710374500652431304332606839684990664978992663298205453853231490797024990250408608120262877506619151435281723139304137898328788936206319065236957719004169272783146123074998575978489694911994596177100229135442441502512450773768255416703725656247581673419917765724527264090798353141345266565827463748771424441963572164553206034842282617752860118589977187261238555810860304379464270715056020900837776074459248964878389545381047285583138267098208902525944334302740632731183746232480090652959339195794416989952380926808075542125384761003724742071863173589390949004831570403450144142033347688638758403579119160360504625990283714719745823444079202172800920177133104666749141013102725941796251191381865250999104888194889627639734761324280543800029952501781026316687907866481632469636980519837493706748305412996449089843104337503283735218654530110116538342525525072230017319949386614301841723141827174786884054530022990771054816786452101000907065664784352229377136881498952800821395674325969983088106657492283023165295348615002452890944178514274724395140561164905129694616884608278401735086701239510698108869015462037180336707862057411452270645220548348188380971042453353561032512445402125803392462520560524772451755115021409506731307013513877485669601064161254666166339018568120995468768471506989875193276691463326542475422390336406752345079973977891226083525558670861985387545001647334646438838312283685799812940470006169822377677546725005236853105503678278687613941826036637603926395190843400679901394236936703390305526398607769510484852985900976547320462333289957349464900996977795368797011119820071526931926246189702570081432087037142938168807483313796521829228857799151418835620227222617866193158876218178595212820304954740065548893307749321214579852025790547463407791198673233624849321303587333151494549514260885155018573259551239445342649412582451828542019429039029533186051802486917881622714727242810688525859243519241193425702353790539614976416909250716908478820808017695210443704516343468765534736479635787022318042216321900341244614909999340560541235461399941680776023231210102475385315190745595573114195387016143347036004973663657248026729372949165371103423243561552918833837130788571936765645715597775584336138384132054195805234553988644667663223510659658983040052402083833330671346628436768815052929946519196652892611055462863807684722974581577554234423359030960355994310089459245552939246419919986370638420593142812263105171025569302829818813149936365451767638727202649075959556723727061308608186559334676379290144932840991408258408168794033653078061882319703709488179883351289078626042055348235693732071213343491075390310873459582030606430269373987984544116793296600183279192190281920193905325898019487997382890321568009160054535390687769905369193729610539082941650493651478080763214788761488969565372280835086460502967952969981244471592228582605454023668259444236250519058544306784279779969018828230198590689396240353175869665916742310868984573705628777762750702026138560369895107688708524309740210943908850393312243619311625471365450180696082323328210525501437268103627541164584231240355838750195637486849019102507642332284978719394990632458779224899295160299765377431092815879462397069966023146510765229388823956628471201823024752024287728119610934630830596813172802668018170489466500519887265615222649244613145289966543463046956968181679772649093675526335605664358295268777670938625239308138168425913306634774272469816569339912720192567406620948734304675969409796028243653414049828182924120169977591582410109289136884734086758060542114545493668630734211518793659278933287121073838370024129134811592971692544747762969569974129456534119724586195806753273693392759040080776653836157716132555696069248957480194875923645809080916952575108213038802383821949962084824486416618981740536725392800206480211376690044528729647376346032736940323267399794166115537499511798566632730186320568216551232598880364270414285212973888266837338482505731896693243806257676188606915811972996392070092596097147352626035556732437388627747827211498467461672586994663896640564549615498606718198199042459180837239367599366994754845093764064791752427625036234172315311232334387045364166187470342326469525039352996134051888786367550787746915724809243641260041573147709606121715731978585776905276551152802573910369608402248450423149828421054190621711147361401115874901768381802373283534583335940468421119204582107783139985078779471779836997224950383265346046778501418769387332659954815603284252945212999477827386294331006009400804206996118142336205372412989285902678899050980950164709704225772113913054046592414352189202270948859561523451253990225741737461263117188636545291746188836886036623777751368513909636529743301678000263713049222164639185706387819048141693796064946657119262889836711213201871150196607156124234880773361160233358542512388809711900311698199727327652779019342765745981773997929129731124305887151475931663860371055353388029405903098029504966269137388590757165170728778611740493985680829068628825999716487341327470189350210702338228497441401989321817417926379224013176403805870742972888936553867872272575055694675330419666162126379781358494651528930238191382798597859623508435252323226949363444333382180085138400866117298511018587603585830255358538401738375117830037895269787540480130517457188464575044842015869785712044391257788016224368978395576458249144672419295893733521106790175834613351469725270122839706629478933825606884735476789213573264186168082273789814830828038140646786185401427669818831438354966057187153261335079292216417248686911051769000880897743365606635390190316809480788621389064779963516922692814636445320749657589549283421054268476990753385854446861321892748194948969484719110938571189609037571189382982938986687672448150986927970447032091631506644431717848616317227019782339805869088332696951550076290104028180833495047327135532501173191286964501841859763503442615689409865824707269572443710727965335672650401644785565986639368792044150792285088150757390175458445623503522915431553045668873925071430923335784174908813932614954974356007819930478199967735576086821203585207321529777841632126664476967437563997274007873797293667231561701056583317282483345175983456798881664623429015674568657234486686156774234733527604158775661491478158197794209925967492782869723661527625013481027254439089196365423820075195006553420857656545705075103095879835729231641824479690730907433906222525756666305521624300831371280889558155152378853579184321710998422463899822473501560828168858448910710455944424687401067311883906013835515570303474596749440370660881428563297306816376157884541928357957638507775117238682712187501844375787926538564504810647258562013739834605365987021825083319661881691496956165616695984296958132198186019553353635577446063648952734280771205549841475517791281990867144057566386000350395052960301122239992350547740767819474664564081654122671765773851798659587591861371467434142966004098049692712255285188758603631530620854206559939799369595550140775535475193820257108721222596450990618916282542757916109168644402813230011889879346250975437407594966515653545744650012789286222985267834332163062596361023120974797009817240827247626962896446597944810269961038895820812951406949513988343479011406644217346133841983695272446160701715818366707906010605484992259514116914680897867965823186700409933069557943707478876070013934349382338027508517593267559450438105305010077993745612114432058325610842821736995233169501225779060122647582993648751403723791140100795243114600852745897620088906620370815439382874961566983962502040498574509828835646476111882926976760244834413791719479008233787749519645099876296195991226977727851059880642037985559439224498259602208186261603426313855052339266736999987843084668709664708274970816400367111816978532206072820354040067206301566540204715078311164073541975685035241259684399686040706372156574593752633736837789267652358823990593243471724030782322064299638049068753696817789688691342388535862067600069929975705194008471116943760868677553154677083094084211192737916387627444846987333202769077138011995317463258053755056710239729218747697463985703412629536845845766703512485803570109353075487189885564501196766710121775950148136774779372156704014127914873364601436327550346188919813441899247049559225428544999778741484463333421518735173487045537860723581531026835383906054984089323333891533258630078311095801119686867749286591906171427288300087696322977856045107452302158159988528084052139421611139420872388733336126622213463398831244722252700323246586177365844580808884827204186945988369704108067706921818429954079900826021579445352495820021994024373799800625104295939197361499070309799672270695211205061768708824245078808729049873870836797567357052086707571883813945938773603350477605301461357660652461674551357523704126102157241039997800291377120941455950802457117099988399441456747499754567161832900447353931296406319552473336064075644468104074244572110864052146950680289784135358471593527914553855896638985492231874371819143338769220637497263814510711914975099365623156691882111689262759880477888543564218945332661648791097989796886773320422505426933828447927325749458104369838949352097134118798150304860231640161136865763300525824835498157821799220177498889199994794275953878475699304529205257166144690479290260108868903864626792514505506950495164624100767801267425582151422014008592220327904260415424286676220965734486941298191407182304358854028146674324155934379139110787894865655763783204531233249252612942628889934114514571215691067807396549647512475503183029588261286636264841903660380700789246953152395690474857844321004422497379840509363479900120865822907471748072314140633463144494217095980930129136321262404995922915721080329793224660619244863324207216873470020593451038327840594087951940141800676213184344897098210001654303100825843893454393334398619889264306200739575758333164903998386063050353171926888731375051339210500921034890063101146960116356503668983247702458953307848414225086270471090300369248663603287252204980360568856594443164012320330114063947414060377497533482565704248153350556072435519652167063980824672561475597485053805557164129389051682812844237640988900962376532301660107218312861397692728593267582074842680761981744153630340598105890290489920723305654076876502065591376461680812953472254228298112919134847829502867870436617370505844562611207373635168042414326460202430112476787566527630115286024251473212600654614418607363995384726165863406647665716810261899899435119743781927850708553650980927949637260162029213478518065266214183198227922900660402093668554506788720229669254772616819149858918972460823848693091226373316199470792886949087332420280937086797252254152679007031808294170169434218080897072031109245785079637854128891903474765920532883898562301081526812317958229572085691708669327782697771578825610080224564896614483365622827888407477148125755709860512613211943237046614639833416202330357479533214346889249532260405837905285830610727902701244901152440527814708613576038354426975544486121716812194391090757808852317113514335520369322170365961801465206217885488323160149674872220396928335601840310592343625255176947978893316450258370201589055733118027353908536437880168538780976309277970528611975407798978817671877366018832095877865099356460765216686885776850205695941693873333124308104103230963332318793484586537644966420035000773035724770962185347672006486287274644187284717830677517273411977428799232336845804658142765651978492705329092521462450863918459954085967589126414648686289918199656323952034462588513770137666911719934082227930257867915590131253520849037692072699274791286941320933320308996755259362981884707385744452500882566320668722319793309738600394984084335201974033836958501273794231224643484105317147056291333654516161253095551032251458655913921549925842742406274213350676144724465696884016120525327630653024081632957435233637556502651420091682710471202455915855294077062760179232571810388076203257014779742327546354842398411097172746518243437738784723134660578847172302075151673037401317119432170203458721938916139170245544096099798012345208438249340183614286214576876033029696026480356985506540858121916155058364590995359931367639525878069963592348937245656590534585893990075998380611700497618521518871876429575259670509018669221169581567053460031691163821937408305282940568399152574598694785343260293737373517483360466869805919658555795812982142822039864642947215708219733110792848873752695833998534785895820115569252265744559328754488391527033918225123829570392864161377759413775916115230464499436084510584045255378634335069044898806435856570072864394157736003556286791861072941489799442407187170927070860501451543647913335567293538312575372866375819128045622328301918538952445086742078994181770101225611040877278414450849402606157167919727628411347449036620890411251420877393421887305910434548088438235528738121345560925412064707457799650848587953077693929542623591252686975704697477664923671708041681090372360160472591032826823199253571850608569071978184104707165669028669571917158808726905263963210742599719305291164662241841827897401403345464238583908740683166284446360146752600634392044465761026788447741134544666206818650353352124081424678754733272672855370302271500822944898467248519891121721987009787049600593887419183487540705532648152391778594530119355180717586284613770339866516844886010936893630067412307535495560531776444603147599096581416206043591324527731239804912863216787858024218844269051063920978142654040603119451784571967365537732803290028868447995046224385190820845970330298481567750453170668985927956279154470522850973350557048444038333139451495017813172976299411834170839327848229115741076496302101641769082832135257395401381891779127222995968709066646445208759448207772994210832122842420549398876886120423396045297237942476849846395715463510412551763622522995101502606908044835810518971043384759272026626813975140411159281721870790638841811106193889588055789065197035193248448996469467017814849374004036208087951040336318961901991288444843522326101216718926380269619820711409389455925911802714931693077857555884533133310602448078878281375934109209371985904706998536978137992003120301814666123016176515541562444945953243346719678749587841832200883480004558998359411295975290625890788245345960696993239544810266927061323355229748016066345633809754942475792161193483525941160790679440259238769871703334159378379360112357368303617552652817615722422218454229761583399959138597883887998120532717288271508057709849064680557667409815422472752888437810891380430429428571291267062055334845783063523640148487478135328227693658430666373247106348848458284098785168724174343280779617545969803949004338697218976306876625179077083686126681278431092276591079730931634396931315401590302345590605419419888501488393634441695536083405169997782721834142342020555461958324352754579878258854380213406641867241203950480397649516906589899912710410194660622645720603296447099676441972575820717125003958310246500743853966463650156151506056954335197423289586404240373364125498243185514362096063818856295613410483201928437433004087147528843782610272896840792028294801113924868828035461659199033667318792959092361116558693857262622524783705625215530282745972255001101238559186005001934655888188725690657190465400134291190952900901880593110894695170440039744797130255606370128888319575421648906953717212441184979473766843248224435888499860407061148398444457218277892189370408658558662180453083083346778270468592637451842632632873643333828791129637295093068387580475320120790565675138529010896465320780478898627151430947975214345700864331528557933288772119190233125612400305162385257946527351689558939164151760474121851729160168550904161997145855678822417022038112811536546646074055012418302292938363584543805218142382921779678704903422486647518354083419150672017308784578657196589591498813849463767975095384230567846348854072139959505241300665298434710380359459016532135860500504298688746925574320831830778987218712963171281239570209275524893468202210379027734974284970228321638260065693617840553545127876220593243850526660848122189851243054187735034033740737309244823190289831059569359766088795993245371333344431691532244705197804629058527331775134921138738318386300254621100468452627351353824427887773287389411754413282901865663672293174454032980029658352709967780771838910471093409596148658520681546393320173957832398334563657990396027245117150431384562845387178838189053042000073641305208465113573665809455734388151682359817357282458054867922740297971165638404749307015228997385590069928843936775547050090775379478899596489549499549027639527195053400342676616579684287427050908220426554434484495607393900313565724765351962749449229846553402457627934000925462101525394292668477067306203800177982213886175697847284604595725576727050883689838891626429365531689836541797192849576201000936316029688985953137338469796800437198878604187471208223371785883983095068532264129111170376038770606578384719415615652469352420047745773252930390823676202457092876683012563786493187356965458108639644873801099193834386916862826487416894796595143848314531635175482010009849186195305338446726016988854416536955549481895081932352215760801547828793654315084936182001949271814807812222227716919815033566472308911292943080676463705172951688742699023515360947367921294224999293935116517136665597829592201293634997895579749433948937072484032523258257248870705689059482787227639585517399902623133584973575272908121550218464031254330784450368064404861520335767788923849333090574334187229013105325743439163086191081630165799734241050764567457326395555720457317302026307624518390629389603931164717105869069123783541128598379144184550873628239366526520030183934696314690296081306716379527241460733293218176831562679183104539900222466316379807659028967182113229274527177080510457896655044694259968691128441643332134414544907204739164908087455348366220992781474274496991240528994144167550342483616618211652974122640898968630306789844217856654941831528958864477956690482477953806095708994804878785755341986974263780919824642693877796777248468746397254681343672383984092600899192897963172019938249439346871340024260025638624944116998348327242366284267893523140314492408291726237223493456258261638238008887621145216062672651406281392772445978192811412147200159312725510297062645560967653425569696115598892266442181233724872848059804729828599064265741771238331995053066614422821238473470277739701000154228689553103372484517624592875801957204960790681717646646222420845903160088436834566697194231889094438753013296324858512784728272583172725230775063671234522186914772122612830568989617336391732276579377312930219434454348514566258893092462041541933616545470074415137895684266617503219765838829946287853773258662337793856761435036060503298031911611292777429506393083774339697811780540538561641369762654719322481993233907610011634505634712637182067748859392013318061746560369408124718801557364095254075146179529143403414829907984297883967691441536933261890125672105288911605108099311894921213767351702839317817211557583471938670032639072521695911721125591330069063852945830307812097972427161534118336057600675291791963708566241766185187083314300763110349591779359368829869756592646111189364096688343340118732606143804271714833043722019608703584013963658495114053838273506399687645571325477674709197851580267620033594407355747605662282114438124255374132821349489671872675340552350676112710084428918034718043673797715338066415636698262332966228571461582838867328653222186230704405584738516900860359246740296719919671029265131440422868662030587926906034335268818613700447570892199627492819714654977521070577644642718583187745994178682195936326064591060396402065499085545862936121777980496872292780241627415321328611924426416526835125611815104239497747830935038179174535061755638910124897816593874892871945647648248752630103134705164919098570518330062823574176253355106831895095149385859996234105606298691443831531715160025988969786289250673689995653232809003558752004841690008204287430302671868035614953439673780520712224041422141748798070940758600128941763492385664424835434144337878922040343724791823243893338221240938818933491913608522274860793672469671474413689661533368815116703394176804359520875590636621659011331042256228526450787183577134707988767111118637647949528056318892225141598932921767380884917078136788376904272221768356893117613833952513413624252140520058722409468385142253607486049453048490165365520377510058246620614988075700555778477866260139413644383529588600139315666007446106333560814057414089227773301125816300601430228579710682606349415445765167257016265872134774574131799858172448363948083760396250364065024904885970218021644440396901901681389028968731645592788191780441603170876394575813950839090357177954065891790265801463151798265463242551388935213753426395409251686029959350807784349304939792043669376696071885453552341737224521757562053366914361938741479015867817924152767529228313566729610082401866991988376757752437123820781789035351632646551112480606225145986716613482087905522286546412218040830494220396654671773654994756147619620252283936968203144328300067247668471470987302180921368968206924982155761621111394341725595807494271330387862458230166881404682364239507856267031462783352774220562863308260621316687217231247661917790933442424732306138993229718131901972458538388187731120794687128797452917376689757188064887770741013430900218761895692022227895762532230789871328568598406039579258818248569081850928859542103345719441130525503273601816196322890252041332155540273923970276275470275693298078405314412276757735312293300863277756160384537058910646749396556043363837939652366683166156876204259788598264951981012222432318757101495279033448163717605127699538099720179874646694334446668459634591931771385952613542025672966340094517843337695555657700689096244865676882036661080712160428296978678009320359636855092190288421537394915786287076853068491073099089647298766184756141151274693634476565888077375378185435829961126873880603454489212509450097585534226578850243446730760498716139379740143801870738832173844549446667625197725934445260322363795007697475412860721038060568475158566018127849915083595334560705035068567198414568680151870419977108578090707488245654155382901173354012851763413921703073724131497829543798190694169062000927688061537851334351931630981355065735840457940007386974797630716384681487708283005480703842049394751149267739090612100959402243612681517127804789388766184974167389750646459691203137405483263792894444998733731645684413931997573054016243872201567413035142859051345588918833992419729341182702673830677074087341044771901472764091277408485473381804747063227756578668523855724757097464021396980264689046396614536338713581191850294582112118989478125722870447945564124179742538899508275326327642034232432034591233022827853666714278946435047250566225504177435658013912259548650760971949366919225543870772145820382381378476184553570484744552340180227125156446448142313823085527344956976229345386383131382251615809540803521344352568455926711119833565026949451148435939487331605999811270927774388952221477795742935822926503872645235699017669789456859436149850538453013086494961980219729567889085137440261163531261653543507085115753822970211668417478706380673394130547821059208776273979458808063067174886050210025360782218735642108914220774170614059275023479724361942287431059170472823216946508608548725429812749993011881917580528408579131110452262047610276508328696168620146824991067616992753304778158799514357265609459219247238233670228377252816687330403246345765204533240553228702009851338690814695635904314527053023735151013043111834468170268750246117147292837259047832531294232489285690736674481835583348214808150101625464280114089618717542330003842778930961282212493251233566991924642787051222797354195487531438899245323889011626186333378655113636955300224145731997109952865865801093234244865932306056446042765787809323832292932053799666843111624533040835199137161661057194209222134859682086665320251765309329065796486336054740922376620397145133371105577990472909150667017788356272287379593788932550414566474577977680043399210327801688644539006759988610591114375458084509538366726861705414155535353047465119551688333508880274164011065803071960596811966739659713024869539165570048716375984944462855850734890727687542388514876635668415484431292994613897767290167471050417416976263168615487446014183194466317074425860790495894618926408332649322201865046417928974245027318824026771933688807567648803637195638827771664517777691062086050298082496871008758605607684180340817333827722371415633528366198400823150866542941392411834878924323285911798496474734139592888784500029112706150016483632191345760204465673490226983321740623386373351807459754549247586694178822091821836343307507352437754825036298746772416256605677583222864363351569920153376027571121119258123386122540521298742993402013269766124476303385761252904264736873056512665929274129664881438338678854514220074493967793219243568989288704321689233126470348461422469287702139549947841322732280602508870588019801158410633570933522155368631334440400382649942793011690235374713287336800304630166481117457063933548582663569938402710684633085225494799525364361704466958632100658443506236152252754383881716438476561926367238922435504357210705517629503585887811045999398321014673847029964271732471828326046628617861127312498921799324123555895558812140151207582289648037429441735753793493740168157178506809556124252250494302622477688282066056370591877252685404218044769893461539950303487094023110801764510590740583691920518350506563729092052861145140113946845064339668615294295603400079511440446961731365718028443381800817453287696824620865245970192670908082117911597812937998807128988582519496203180522942953091723525860495076271953924835258843063217812117364722247947819565656279362076599697923877003216420052971551724042647795928567906763541457084421625797478480222553057894666317080970213389720419015534351381568707361152654072558640513262605351602327876117573010090677912506830317246830723762024787682837995911290874279057438700238030041526419832084372162558011699315540513652216118266336940667856692050851070897790463678082197720137023764828471197633160006929761254365606286160566038604359377390468932153526231371076497374512755833992810095053981705221795099886091305445110972072515769706831687546298832685220064062876640834739858785522571935660232772090898634151202933392645624921387394852692055588736047381467377438748832784499445871054398648873140486993399085571114838717268782558781247718324496558754817925468729440709376238098095280293051846747366240103153948789494571943164512964649307569438729012294461829327091721973165572823074640356569032731974522524024629148212282855542493622680164302089936193511094691158108929861370982806739830804654147385352721877441250865506517547646562330109022756991563488980842708659907897418311298489615686078279721444978570657806748116349378057360323642481982804846049385434310049626771651419886373808790620787914207390691406338462889345355939664950213213059134024386111561829769624175108383779280368020547911974895909551775142502088664029614628324376737828417800189533146379156378167589019496958967407108280908623306322808253891446420829640768743863387599613387302423577581626534337058935560292772096774601294633469388854729774033115279052251518088814339253329541362593491405703172818420049858769669374964752040201554880357873367599936646506103233951668054925424525586160708787994863386192056868581333682160965850635394020361903254362459486810741914067692253140629261602119244571714756222990182097248420287111493750014451119500470032348214719035241245029952548902100562999009722734277185166571394188989418888094796684664563027698044592625045123540426070017768031633078011843494887435340212429069513244074144856346966580863403819203002668915847704949071346063254561880347205546165182637344373743867372197422553411315898400429742237184889072334173350504059407205245213574763237710134178422951104763787285093304817188405016604849850925859756250949890072877924475456881583143759473459770996577668046145731625107243276483173975558521974004833000078634525334678496214182909286723682178689739406961515335983703146945514073383898046008028258731856878279164856598601095163509384485868698079524578478567506335283825109420010385191991071723376831315329877864155146902099687895936591848064752317319794207752996770359289962562175855731474573950242790895125664097019765525141372193087057490604172696248142114606089621503497778019827121903553541260295617346788287108055633544485772243032241652213359992558805246899661770644527712359358943346390256660962729522160412107866374919793950611835050477311729329318262031476161108955705872648514217176786847834435429200526733682097789182943978684992791166257943319349681600307874699145287463299716496615425642339636439786247956025125152808054787640586812441007589621598900155398586805068169676830703918469800909224765313409664975338813479944032710946470808916670085139592955511869106261462680783784051430120096391079652874263583598030116439981384771266526064277515129338385876935701823820060779973573724144602914184938688209447822289851489074083537250712305459424486927948708941445030111957631191188309219067358674703386197564656284535805292750007148963682996038418904972103650653445803468134901182212332054546078295571523954461552611220573151780480164295349286213099247550828153860946474866907874152035727000631668788814072279671976458705187240220460694758349188952826730865565600400092751082380273415699718428544028632693940645907633646577718862520311981567022563461242607265019572878950276133410428724890622788723148248088757764645188353392727601153189227422009487846268495415684077300897886266299340731081503248277547877020404624426652753763998224199553884172126500543418978511069070632145989190835846752435476442553399575826813505060109852156171856252568846889707490920746723744532463769438786610741323952860713802908460207416969316456055287820265853169499367480135938315828397343187675642142643712672664379619862412116574945850981641399274807647211105646194917516914737380289532895489093134182330614780890806578374594068093578809111431956400186693024175189905037674985914893610874156462765962340905735351977830417193419384374271263001031140819369119493663435186573118554117656095865828287468538378694569323161319745557629613561747980832147568655743693185160793556019802762211490569574041569325294232914973792087702715563173011712048916250010154669982248532855239519779219107159145301188738103795861567265029947229842729029658141551719529391268724775229757292124884900958773603323849446245292201568573808909532133715723993767508384537086290370760428786925558059689810910018339606261135413155011581575871774198050972795331609977954116777402295155168002917806068940763832597009570620839978408789505208766213569450664056706264372883746194064004342348511707313281915119547855875141263636623994283996937910065319699017431010884399284859407476875327477579422028087752357842183372868599999585766649034291944855624282583245484645811596531453822154094635104857695019495906993549805542324758948427234409689182109935009760064708100197664757046904973563427993442916836291223079156248964703476864368910180737639564272175348657506123806279292391387694265870140749957211202742158737227168488728224952437288130584057505222103451587531434490222521178291489000425567560889011125662262882412510948621514205889223790497259806272235895653350187732347746234053096467677858165880985617343187941551164671615461596511730278364831757691968714138510672087976761845579060259885476959673970968764291593025059486087773645880818657556656528609149520165467055032225079231439649244939782470078499121490274794670048440456634362845058382331588337107038150545435619541101198001181192727529247667097710379435933885874419848019032450659776748730366050554176490760621023837984005885473393895563440648766446632285429477568370560118267203379106757441993532822796658155768373205628299816371402120504824623679970430648450255654441823798543250895142946926040473468250919148763435443799295987458239874391552203790010922770383079558535035249335199431437561287199659643108010616472381905474835059216920402682194261879324745885621919390632304056824405906701554559859370835991163297482620147564188860669609622308927695598680660024044732093218054877968723965115468763003028296937326588423322403707635816003676165785449962687252795555453406341475218124135755867442101009563168737311858279898071447707152926760590822774123237329595939671637411549226329131171707213571167336061684902091890404776322018876701094870542700243080042284956654867305398964496740434589210858027782484577717068934910915672534192718415130750382238578749508677784985832107831416542824131189995982616367939014352136240762792665377606926533716803285423660266581574669432188689952140816330500202144394075248855298237461058320567295827053047328768140237803976683600812705664383535656926986953519938768039815094024379673595163427148248532078692738629172391082953376008377150363318133615060499266542720577406328670179401604332860535097476892587631386467529412334780495315868850080834411736357880577096885011855532641968530579731857989430718932299505194024666542904744455530289334503156878018829251374500944924150532093486375693728580527107674667836585372453352337461253477242272359092884848052298210449373034310107042834440733819992277509174260960487367038487666318563820623730072689285932557878437432698203400889900955577921168288598804071193460802209844544158475135025031642333615703171628290354059378847876357194077235919986599977724635198872430343634304114726672436138998624403047270971193818902854031191646590162729460390649882550863805686625445626625661618387474154926293554636665657867192531502154283211586570675692408424117610134281938935483295369917598662400367298633971582858164039108568033712986388007594931271576305463291930206296711620637772204276000208954953544461517465422441346051218957569200636868698536159156029095290813429307881091839525132615897977574564317434140285189071722876821175058811496739090000801376934170821444258036945421504717161666108110496105293319496859364287188467139952353890085715634726991312951609940046953940493908569363873611430410706190661955579412073555608828226345782275446824626812943027344800451720733388647439683765982266443709275681702826809991864621885074762038680368491426479688648556582741818487516136181191623933963007627712750369942396216566177755496055295377339397151058800806113889145782545169951412169138120160755735529100040721951778393462520768930780722725406689333009695287267331260694151336186667148681498205912752342053634624819390314154357891619433176402789252992339469459558952749115927483900035122424166517647449447823127216977738508341835679074073992246727897507371692322185449321156951467909737028967162983500583888414986770219917777857531758039608530075922613958350712689344484716887248274497957123718096730087014355497829814245317652950597332441300254674499228378329910940176729147324116600767870432682243734314746662629503964631440448962061369374385906705246629694545546021592888679602158554972245328710714828319007915566020529169948815964001937628295336702987285683546210434850339996760952959759049506113367170278426090181778334169951695680621652136132880760244420163967042860075870911835948076140645764100814554311335016141796073190729347377150747354049582571779671222487048023614248732539784157546916241230804371700274920202885836321081213408150654134304650480580382959845871721241094573345718903628463646791487687266286481561464637382018261682926997754217543495876295002936828419493063462281078141483541465324762403994123280562785415587054578260427319866187509308145327792167138737876609541158532432384193414052730492514743541872682599956998469709486615725964322582043962450625167419077446997877967086807967820823711418778161245609629878036434534331725059436247928216978486200363978391031342982340548475171773082113121309543614856090696084762664445201135339313127631517932097062458097259091271293694810387183213523159190994920125264374786736063617649657832402885989350404543440952101169926634098734004665243447731189006019268564967379330506433830035392269923931341201671954796817975209548919140950532698619078614130197174790356255040201760280953412679415213666940581389517585948609378452773023746681568087996362471237668046111366500398695565876222663303983260333933035680378529388409635429090284447942577536469679912252830419179614418615601373307955736303511615101044784292212708967069586681847927626218969045315993171307335724479728094281318468976186238968550961714120920826403100708244576382377546601405871931363980713834159930198802964426502320333364504217052480585110711783265213502018552779616595340727120839778468025232781649675493314233865151791417730877180750618699150142717199749141084454338836852305319389053866119859597020965163845704083345815850140558790850797701039831855838053729731954043814925354764528007638812329349310133223113201537709824282793463654152929545805983595333364796740054998419688044990668843993867318535021802721171033748400617896193512728122935548689682702904551889911127582540279195215505507207775019157261200777267145636165302325856480528312658052888571970271756224559453448744124228909476314984588937010464811994854455969789126533009324493372459519481878910318469502763144033090134949323838235362232016033843338771089859829440964244175415236153569154983852433842719355944568108646480916761141726735817740698734706350443372033715864847523993287686174711897714156138252041064407805324287653427219417137592793397115035682287352314022135841525462340831313202037065311460550700222030135500734701840126934893712349667337954244186005164612746579236292571970047821359285539484859578823323738576711587235889228054145882589467163997397126007150468908014244807867084720603732990550599140861058434161550283371878998847105767097153065919906411494417546714445217146060369819936313124871629686453400552849001329878165340425854580871729812547243954717954012044119112292749280893931874001914565357053618251565337328434328772204806407248102499696544552714374127718032291684129605638915478217515894803557875403840205221005745954100768047697745247990370441651047773193540239641535600417895353270289362084184179585731564743121316033519797238568570510441168595372806893010071833150759140493791660975509200895908643746346999604440616507469295706083271441750152706299983389260013915700491433428894873640750614258655225781273633401348713477324781197569885861935636066904861397068221596118464752976946804069822572759838729803656694241664118710528680886877420791477807423673429744343619446749612784558665811372494867835773169092912794360215036414617854897408978013270492431258240412552540343005096410814199759305889122964692922057911330190963202405256775896805112057279177613968730984206960389068506661161620057176025002692665578979936925801609479399396149376397081257555418398360683839638401868842138125694350254092483690932610294208519188880037737316958791516774512442710768761022574151918325988854800915404744276147797776530540372501807101431957491687231411275430549271799706066733463906264191392086416360783980783727620931347749190085636868940651455986433211004896500064089275486395465151593947470703698591196062500522026008045867270419431307098242952466421973886170616365639705685533300235368986712076468650393842370671890503156727220351778552347344221974489890670133763216323310546612251441194966080224368615204580195358658543173906606352390473242128317253186969538970853750981239578742803511108803933675464528047745615889716915384840166744910690457577349059517828470300257356148427618906740918337721635076350052929411576245813933925070396284531358104667399384481167965061673662457972093239689601665654147090423012658674302022443680216192903349948493131117480083133792989590471886270011492070612371943518083400838660609420916746219595615253696679444064359537012666947477372658596472431857463231682220256987749665238613391896554946459782167953713603430668290522504299541784419440273060126135372415303910962247677087334960374104556068836623492709667440653264898093702782971723917070760917164525042315227658957008104035125872760592301464151561340721932592142064428814534467498252824536817159383979542218811921712801228190786992349530784926539571395161604659973682054136598161308091681879162287990161721046057795948364355490832796711544987646005533441678009089752478401238827438183260366566173372507525157653284497051135246119509775554198272781720680664849098563086691726498478908808462276011567824462156061795668365523291447173214644362954034105163420074660347116346081151102206942255232972226440878749809330266379084289063013401382448957816773485082406752335949357755888460662709082372862347775608548588363992399270971108959572046668411445062867201544981701019612690534948169324640804684666888222391747515283769838627806549914135717370283505412378630499534741264495453196984776978280516412653411136056511207560677794497315648104750830964704541673921814694961604379449764185334534122405300498143724740149350738931777958278648467586404001729710039402105762860184025496657760480484654621156738612605443203798180045759679234459031242096452127891340089732625467085835172444286419371532699281705161369593014684567852829485234843088526828365124702270836245837873601543744949979084828014663561536652066853443128325847883412296686627889077559988772511818386265412694894058110191103304786885211842206832311875461163819851927454476131335284739564830741434098461900688493338864550921034914865065033745781481470890589565013456836538624575066959209955187487288543971778233914266357533937076125274191901692756606215812115275315666076548664001160541909651755645337371507778259050386030156111690530702904544337811575086932856421345948604516813036239181466801727473616742626985215293324038372796696629974312600448091167562946946616028455129989894686331992097896570737053150456491360610059976279797452532979513691776227360334631315642067110363794252144552973043090099803949752087073225594258606324078022815841662142461594830072812210532194554325150488509933285944859986130216791262093066984690465286452316963672496904715086792003753510926583076501625244835721124860672234180769266084161831304317244963261952085817055365580724912866955717891419939819239081355515335389317489868955403533416454101827102925634593597749526589422158081272959390417326082030283404121306109028753526958701267200811912221365721088821368594169000100217727950225366748043080367526658096082412339553165715382576930960686533177738258646667889696130654732048954463663590867147638847608626347392987492852195608891686794427918368598722045007726108236824567867136104366020404812725839038082735975056606075131924684878750688121868142391185685655716033533448321849214585452010552190062951255624034027381796836749837671034326136384539500252570181934514044380566039005587827068503246963399469011618283554747923983981731240189976475700646756273782147459163012230801234056487801354892581876169689488800474587503465355153491278366623861207742669823308080526040552508089377246147968053292748205068358987411432454796354695778393293537007644679080937166410804745499971864562226190777848186452408759438587542433722534351111121631277579443399813967988002635958714717338823018139592374188483401187748989212633126196951291771996733083086618087696728322358526888824560202787534309342149630318716018267161596958552687336045018870660415744533402025797034590858192558128777535612757564348323222855497578780049821974180639634696376175498880815205093093247850875449978626651619272985725835949973485361546463598741798665105184327814502831356626058148397505096938097615921991245027667629596988279164814869427697665015888995006987786400221002961258372245861032350078084821634933724354699179698096693478219194702249435512116043070446593830747740643915468523279395205093773114721818689500572929527983489068837054166945172357005348183164213136486051054212085868045071192475513145991825781380600048769606974892246432349918899918061943429584347338206723202399340259015255120421983303022262673345744663710218779823836361969136799853589309111644528085798009041629162093105812698128613327125877610037128015429945961189804486589970959464344887337956559908641022621006601460248371190154035689400661915023812317002807103559557806891774142821926222919916569916024582493186917071098529621294678294454287066219194404133010209413850536643393289545567130957379543051720337356949168490187650705131552852911861334646150896091066841379739974152137667212651273138972111608535483497457450237035363081016693481075017991014501228309584567669764577702133691259410082368094709483853869913744068725172179463044406070113668736867412180103300242959037875952664735276888965646359438978869012695198875182294574414634944517009413380458784148830537754235180643472550991894313251075451916108675801810526750236416513346782200615320501843851384423729332342215305269918327572422110740051847115669261147067822879873165650164171268170227920236780502023280575984352391383922797328663922956975837454355767765168980445375519020898508433135306207929715684075000258320855627755387561089498167130377787795453549845837634067614245940805938942343908370697003324322300109229113483232307661907571602466363414744599876832185220395597373983251534414407537587279763448625671818544434747903659760361769814635015319448362526796335519399810555471875822263190492821321528951286925514449188164253574312968293172566587617415173967089887511134385696525641824244433458835088095816391495014593250864347766719129127008145034404218945665227687019573624733183791125991786547486666936801153456779946547708419269294535287013682544122576021289115536065856801033691238023114902616036217340750116106139375590172218479227937108398402947736158362799993164190441904057029118970259061789336083056875631335782462584095799754484790306873952022608265929920601701838960022084310620949390801135743748697159632477981339897886896246848345516054519693325814277900868045173829120485295538397421182345312845064447078986972647044628985634601541360301586255365236364998284562804465272541313912178164929181056393703113307611492506807036416140139553206099091093693686766378582436826412301353854370682101264299431642067357282519916751392118692117507949599278958946366516952703230634269219923449343139847117286811959327654926923266292754058037307732087015338409290165952977749233227748093040166453546565419288166042497354258501355255634682755494147869304448828105822247971986683635875229140387261257731092249883442444049033535268041968892646844624869551563599002734134698492847701783882228023513211694143783975354875899803779421523752822622087104226938351409320277695018014339542078190521764638447664896292124050864531637307165757675794844987627544016258267273339535450416785692739113707954870548533416522027407395773243286942095383327468768726673125047736085167703334122010850815020525476440561223751209551181114599269205958716950232277953686884153841423917816858332261945842718780870178557619226305356107429431922642766653115648323192474642152140371667045295324110116357702594387326639595561649527916254032788292724039618030428884601616109315528561613611959422458103183118265114660471442678634883087076400656208275946064399591474290960934268589661447053725714889822060830757052137159529845626212079302648831805600521243708971456370981284618840285286862936132098584877302488104068687147988961259671138969949576441437205809367953439574310284730917509466402838148333939336174193789150447197165830172679965981483280468043238631973746493981156379464531166044121067941083301233846270198410397230739276783145690143604261812429269817606165728549660307162322115338640069912769522708758138835260967622777208861150454253258378459504447456406633421929534173464416288989754024744848655106838310372658181396776067202565287552575213427748585828918229040748652384920962641258008844323588983981463336091185028879106152314095444986915400847787229158914800895145876326249014541709267391408947304482008091557659710802624825300237040057698078085616011126250502432544619045207656332907396995664510516715310390615622277513144204623174244883909465061752327390034791083935925569077682963859012639929128090919084331702305271074963120458310956472563069844004389899745569758473339749441609497760377446917862819252587325729880912495938237855329145086959271878378512773456338263776698424709763101888840057858315301423089858577757164137808759974590536980763276017000862884422933616066972921817259421077395903894699957047677378723463154570477885540135424819043473528114063629238356846014411698833892552651236311973271579674520268194804772450707625153678174502632959250701043893246504678621071568326913623725774318075119720207826786930730624921596319964081521398826674328969474583332516852450437384504698568276785553301500907480843299039840161846538023739345346025071974167453788945313582716700542789851376880281697580045707792340796326080896942341935420365358826824668893400732398277747015476923268486949086921661498865330448042585922105517703339290693316588531490702401121464261995770452736853201247168083105987536085752058283117167964582822838033016192374946726693966003618749991249332309042990280889026862156364433989502593271822819936350006666357035495248761631372565570354667379696289467677695652731360950695121156641731334003520876969070922337204557831321942798595318235611362089218659674560504204340011522302607066127839007808864515139142062309418590636281481535467128694054237531797862018599820975076893942384693423505184100582831737883463029654179441604245171196707140280878362194486306296143031370754584276112362453651994560600126763662816313383574053272314467895183970761332311637036149783057358143430230227048998026441609256821548279594538991833447008633045843231924210519021570035332195323009572300569771415700078680600401129445128131019420636604580519125249451230996966945447295120060134328892887315026619602904226519805369636490406233041333546575452777275941731703449046603598991532886555058238851678356774993900998338568993018072994162484603415170689370458380509247792008765276920660788277889505263604706649354339344416751088261513003946496784955832804625072216092234775960233787773211051224892986281598583074047655990572746715654848654681545625222056241681216398025310699187795308992552964578166946953877871997911062814699534104558023013751775820245556552813175733824055537862532274874644029316389387512677652008405843092907299945117491804599078233884720418772608974093589813593059704454754012550575310063110737610607255286747456520963453070513365872987071701785605501715241564343245934673459125454752517800210765448158769070319220358051532265995691457306196464473647389308033537954066241947880073998633504054699631310850267066842500678185957620246744563520185425409177659271931907414359835526765240770866326613184113581259484623715881703953146953908812365405281753276201651274707978250031238734371211521252165284673922887319106230069758278191973532507487044229268620908286074860132095739576374849312642979365122668492080511567843837576952977254462467253381110278882993252279818762886985169359684847214055536393300975863789382375122649497848988176709303719503190053329923019174605960812888492329651295954937111390673280064448006857929397456283355605782705684663325206930580323025896773276694832293902267650130501781015034558960247949740304669676191297927976455949176588968828116995244546463278965292075654367222423542845189448024401295854149751167293557858147636990455195699497471234720866267050846464537193877048841178590707596879738902899478572326807269654802767897528551136698307268747559611237164081838416878299829213892320103083100328423724683715765472626353230218703644909094362820567346085296912175380901218857107367322811487800358503123731622744702918077445826463349289027661996283313103374049781251528551283686767435476733371758126162368124018422244995843002969722776248788221202571403728223732930900787673819923676301600982382165981573921762093644364448874027144307462858355253885850960180466926648642551469202979658987639691782422953358431678198565279409633603513561335906226750762392286826244790832794008419785252676497261537289019077425600741602350712107307188794209416972207766998119375830338453990357071665946886021907893841041653169936186698241491281902835711583334398538612178678573306122864061888430016811749386203440412840905779842169055625190225615073275635600115228252194768868140475944563645488580090927557689999627269574483713569584807259704856149185138681199046705584012632504925640907062156897329393488857232089530223233590877761745642027372538757551363696439298935069972412447857505894763262323995058914124202259048483445928986443804235854872927899308696022591102356046244840004078694542050805665923074524388593963626656670972719263155626876691524326114680092431463143447748881698823359924373516612405755344334437198151938474645904030010270633964281146995538895073733502221443844968204391141389567535926772888464661422511218113866880191910527635634066596846816197040075832575537452970504426441825498497376403964389757396686179208442246518644948789648590207301869974708597328783903329875095686969813084215539528366612164150178965273150355758326218700724817885884320659704329182828020314743937662524106278262091209819996378821783909333288146343580113476757865077269455947633160255507722765057836180247871576942639510540241149947692890581045729769762301399501815088625921335647097926278182415631318351682942157882362985395536561810133957591020057841383463225330234288541458250655124687967049027056147391508926836782760851955719395356839721217229852774316486970686195781524560027340000947398636960859944630632307591983102800145900204608786904795661131930786692616004970125640576796733168580243603591113263315366532995464264843627810280303992808760012684665519687827585200159576618249182635843015691459637797907500975037360536530519570704550402324553126928780004458408412456431991622113495442231141406246069342119550372931197920809517088638649920402378545760155887709355495020676288978617567179811481248093018059498508453841967948144183354102533981253352627935447979749301670143932568618917416215719707426180064064169282654480672410172021542468636319297211180257861884279387230785778329270351988325790630451236963906198813068848917463776013619759203925842379449541767837907109942254978644245493393288817296569387380850777329297392219477861973448421045688801635731887246569793173010228830484404080146269871280312001229979324274816004525703725700703923682648947924894378439945490239104296986831183293410943270903496364260809199709798506057345909995165767682659612845137315852233445490900631307535033156054568065312955315223636439671838133926938912880178410584763189336750000132376140548920823075629077641632986785343037814312472870106702110968719652451370626278939186965618816210125890309330471981446633899611046276986880860016711251595955708016509683342336833559385474479240957762471671257711555121461663074178464256856927841698244686645481433351818086340301779416639734532196961498608158597692421286329961788917113383751425037611493101490447716165523426741872098641069763852237347912292788278698480239099910401436647281908242334493203354924562216404026262468917027406474958084850799631782817765634622835635773871122857535283641194933727883682022472793267773846415403857909529542232799822917055510777604376497053271229452156931188804301705773933673422193768054726556499330411400434765020312623666709810068765989463229630793799549478708276696647696998788263602822356837835514288292712188144189624347635626053687079622917124593130967682355531345199820820513707659686070116105788588674739753606744866988232937010147074418016580373259018514914534478137334633792925706363802143207612675432935121483781440993471523001920785900537073704226827677153847158276720366034454325299531009957045646156875927187335865444503521663530817520131591172771547476794348361637007744978441681626683591403624247686150379104979438220063735763245202713775528921861293902794911542481823794971779363471284541548646478642466829220411099343866117990292577822727117419047344631186626730093681384737181934744381455027095492522732177946077623870591270875263100321532069906209178565807917244988980404145719350036801763919462300770542503371204035034548157785954982508717118209259142103191774199405920531110448561828122797950546932530238727939106662505348708700938216945773981885228167784167091664545469038440280365311036326777057064850987785401687184705732249609992325585109937830333334090891119492249225479057126793510178092987845519760703127641633153711151075619091458807762200675454816617575082457684459035678540166791374271724014500102309585761215523023089265488327764233583196350158556365067912527442552907681232874517159168195259846899578526750346870823682615813256231944913942554551986818677426027009218876378502313714801864249224244098017756880514242864807022138507416762919298044604706335925599300432884570348879267813163073815273338239384210215152998902370025559946615881339457035766927644698951237673337558712396634061032377889971879682281214003466141153623181959217834140527555030107737544658498840924289263514917875227889216777072570840436942584718075291563076254833191670549725266281733650316138534746699754847475663310741845520765477698017077529086107993026283321904702841410908472522537658223363885585558530510705031975844821175607680221882235904270926613441683921783501668917380619930330253525607392802438257521481574345549504657066728780196152971639782711009899777647576894838612125614388192961945113195363950170259745724489860437233803083166350592273132750128089318591071619517310438758586557629630383162123252324212925635426581108783516345857834519851810502400344244097717179277621298319291259477420072525878809378905354911149837957572063851806323388279201522844777966565373261182139735410515734510896115786323092570670971859523571558749814945936832064824337937087210074418989922128983854293990813916692697582397880689482675805380124910054811438286604055580941228551812440838682843313182244349265831751987014870785221823532414069508576107307093212822143197084525658417408190103624989854045433050705982070755741388014945794073093224366074532859010587476604525719497988243204699952203769178188954536774441500118770694458534524679684197445811988313339680830561967185775262093102706710617860230507055758150931692584750782987765254096689339052686538256330642652860101808581464494390119968732299127071623909430832843223231845276466152224298957374856284221410854974651839144193376858105245785871933621809790002791439526233845157249484460543369604793492440191646601708303749667326071041427639114405114711860102155126163774855328416369514223674162094709539804784038547970045657809686888009950872750768388187144116185484858751953538660660327384441609911923154796326412638558406017622667071461087048570808401285500562769855457654498615112784560271389947809913452514834749917381981270224254854759481400781612439004141847052744627935533547504615065752049403867032839031528304295723554818442590866480120866828822190026703675898140448644672344792402675775362960626464720132776642885077075204675942901696200248825895278349907691460581587564208763142196468200321720042615239241969840847037555861381194579729008905143249454790531560691118696642532281862081131704188309237014677025030690347845936830336922263365089573361611228464567005561404283618391480313670738732410440011308216167131841546614580445766468351970596915516877412951549590277067928202752849515885653146098084414589730461158407924239292603234176029386383426978062135014138465240246762692758476303773683810547189250375209311644907160347138004090070067384815388372262895186442267211269065252369292360058244138128233925213281384473223447822873298237121947079343425447870283565820148536959040121305037358801955229885644747696711812673916532108125617043982614505708178355242691233227106020032285757991570972587866951851488694387294111383316738958127682153156844539479455660612849144748016273334095190741395262121646712292762168891922362214529034050878883673804572533668376608055385257724658121929443474614179754735767596751632481890905354626924642908359170482514845979356344234033938888135502705504926920023304408666747989424780309318015335107413290343018140393358345230889747361387868990703753183083149673698639894560773016682435500817392526650448912569076625573042990175279625389011648471665108802940527793884967748993575631237585891271850526052249783243849654468144094432081430538921539006050063557542838665291258515910915083880140617520597885775801844361447809462396788610568339112754075974841622416338570626333681105276320236437336623856979262551882802800978805155944486962124974301851684865650818675647279434170456412339751463840439184192186339325671011561389444385356301011053706246297160393305261519918530981892896049432479432369655630297329639368024741222642939589066636417832926012203449961492161478682598772005795572846198900252363335562476947779482027586840775933350418574914605695328201045798676239706874411185161117356883546773315821398493502944713769613606911472459154700273539479150724166612868254821296874911638873406523352343062227018067080339972125927082862699843894672093267881719703418141390430699508212589240769452439150280878094201030165662281331147550352193220872372060250650057227225052530385124838630729989264306409857949855596692836633431178611526600481531602036108075723589180873514692448527952920062297279234884657253245098013998963242861438958800627396134417749061327061437517706570788620960657817878853035900964392705290106879572122138582520768772607224700044341788654578963833408424354937780794094479863648490612551726325013271084489975094822586826894332752376874653120706490745114985859732173537245930558749134934460833712728177184079498350543884685439643360346938126320649637121889009021996906397303579815361231214360624938759121883147501615450442178646683589530420958462585932589143516535057944535390998037791845668570595678453142338404754560012879481785714297694739797684000638750996852911511158806000927562030124410514501680954504365425596198809595219628984403087191417156299671402457985919198454505177716662337658800010489925708125108207592823882767476445139881441103471493967967429875328215214167506157224532090114844907970338133509571031815009658278040691133280407172684340540356914398184619293964649489430105420202186150229083218159965735240623129070942385288151578449441865220726662722444048375934946733616861970422849965753636453031372828272999003642635993331391771907068010834812057550200427269151443038978136577631254993242181634254649437119028377494222428670197275298127385216781676908473347679655585001605531126622436592277127851627026350046609559200586551419981704404144851235472242471350895912621635878260631004069095924741149991838887845374801823296330731297495220712433311921060950855705215643058843260913633459350449528840987255976630098024483114264648345123390029073952134685077752013552257529914518719072299535763301837254058804026872930242166435237655184788312294264668274532988157320213964088081360098542903864761273365811121294960291277013162025253011881394597132903692952002195420970137440814220729088119427769708191208464612380309291305083023419116636563534693441136867711917820667043227922219745521258512195045470755657404358402972169946054262274797431674714079558946988791524299459293920953141247967822059742044060889901442400230148447313138445735598997676413339126063329771118285759751754727269555759990603995922371784494315121040228696346186991876826384779766032127982189406955148417900093216397094381771755387864449729499043284074017419123763776262105413448767585356425467028514534827999157632371421420483576034414430322475839422711293669143613647950221019637707548017217892070713435415775589873489955467845801942753084997474486842417109334198310796066640736768657529007011479296176906264996072720815819984931486104637240314255691399577143783133488244032978765942597025416904574135614177991463303739786287986339117744048130228333416060832569606207133285216559243476653920152453675116595830092321360110197239389300686065512682121660422458526850384691736064434760727958033605674099857438364180647132944248944532939364476656946994100407959151788450234777482156476956447721748451284052282170130519743038172965330058669401627835294578265334671508930480964631066241845166645394301627094260540693077574565823981277101998092414207449716404717070569505026440452905779553778346023606418400320250491194262295927981410660290890780528157481306058831329821170853294538967715141318828693847236907201789582615390994566993918780438442649853425524193710667686099060184620447119842481900679024301511881486300308861930936091314780155739220725207473019326934846668132403997935632422397100513975470839470152649939027030532629246723344380666247127020523104747475782337219974100508116584467553016730409762809287357233395435564130702136970385951379808953173931709767487704352497765607390062230177637607814563181352298681021274584530192146185778139066336723955763941789528870643394285861409664411800922628157799476231257878845629291981413287381038447526275040808578269120384818875808682892768037611940677886791552666527970446884445510828778814633246365765672794508436666073053990440187607933330373702719054351984041372677573953732068652183030269702994228522347440678091586618184708056205137574810702406537541040869707794539278348422716222599589383262955244057603389206318082509858964029686698000603778840767857268844944769773547913630840436289750935030720892268900669268677872706697129928281234612227775593590914315496300825477827568879026883882283128258594368236172865088785669523214626942616992078526694377166852982840064750669936149693919205426351242490865491833809110692344735669565894889526388566471840192259203125319339139477072595388267241682261929649295345132721594778368954598632546092863715587138618520643582315707609557514784399729335833129834948162877476842754718779529789746002658978673570485118601696628418876764507688115740486070153164527261621927426746334274096801897354128581798211588413150038791320632663979115946960293100136396649304682219659003313614856930665677785244093937449375031389067199711607253399444357957236180319226593257687938092492610040477256621918017267213390985586090601564459434596418487865079074430479520483178089663866948221753745543456330600786668551586792625159180752498595417689297797961082499648546055763682023801811523768408491981596880541402817197177985331789602545823277681662475364481018179152188321423535255761178303636551574200504013215378321497547739959163031929416243791157535901959423817684388323945910215336489017257726883549687390848208079516734554769198673104803652271450075225107934414519410099893365452119246049459340659767306164550986082746032519724899646042685306124031724157368041524166766878599999170902755648596778152075128914796565938720420886677893601674947657264354260730028302167410435226437732737725341434685379627279141427209495459712919105619362469907104348242545033949607649452233417418222165235812551967092732632709692941792622434777453137316051255720775555431269503089212836136641375711648726969409511360532995905103588097898721063599356771565579028667706208320112216733929739740345647188013679831878710601931275598206163800752348639734081436535979728109561858848160099813068597689265518810396691860903330764485942858864490719275085484032547001853428802663980664689316041204482306977943273312418450806649077320518911062710920207361363310928266020622432721019745835089073917859012214060900682325009468778446207332030356309953227933463120000620162099394675269336386703696584316353481919690565330277642456070018636872182023458809504230101205842175365003507996782276066101856943539062377054209622512740021998867716120730535653228043458744491920431745889626560429951834960949457916306217727169920590224939182517660197525338705435423704226939906177610423850980527999844364965419732447326479950900302523911467733843336754339873610707279431087232035457342693098004241038396287498381876022189943819138524681616027989220662655267777712872971028709305244683183783372904167639962910912865071653390801815628226237318491818216577202788761790942615320367680831237485721418146482032278721809922640438279531136421901852879123180523963192537490204299792875153108570334207408018929284391362287419838216072032919387579486633602474662872806687421260994513800393151090623968636974024582050839847908434927582833348272963676653138084035254539263053420088730779939746929623733390842860704881735271682045504784652915870319536154688412293192823496368230201795300328403628807154924769643373664037665739314557757429637303177611153503078178900162918563878956248905984953042756584459252724438081536891482095595638398076153269763519790744212348265418013364888284849972009993454934796975285578145235517247898071056577821857917502194776118248297786450765422488040491633284821154135967733295459670907893591110529035168785601874575525760898760226601899596146805700647495342331009272288974609688342744304319041543550019694319303358479051747142292136410500438738629170518572958295582883811236956295018833181447861279080106710383388502238804708123210710570164825441592839314908019836423841767591624951686060283939120317030195205510967912336483512249567416101862140720490706752463983784123984735696524323756239849622226887502238135375375621121931595343447344748957434750349866703773856227638848295329776310497140673201835137708702640950021527676578682822960305970534677918405398899500718930941714157589151662342149350420862320209957749828084829484623585451921829094890004221400160777900048425881072112145160422281983790568849431530968783716645925812738285477277511625635161431559213457425428136021183795981574741741356159276345232937154132172066958027085317601934724961491647207018913670321403823929869920074738929095762072975526827524928169340960104997221769560402415747378839439521896665369061944845655676550959460521292384865644631603833568063169242183808854614014768509354337482768517879719418662216548741073946410536271480613089256254321696852102537722031770128783671714727584060253932682894126482992026511508488244862841097626396733491757625626458666970491227647143857672946577378479189134252385073219838098359378083638196156389624719482968407199013513595120660782653237908181519934466391437862538791276815865156740264834111889730783433535824224776914105887271711836624726835836944576044827153133227270932083294438491684827419047596811801043947645834597621243896268720942804893170122056314923138328090951184701442179891690908835635382453129406799568034939265809543767230177590566165418698889549728474002267776908052478783384351439492803924562182884272055361470981210004169814520339947487317424813089679003706611697073269170885408249558731451488701374207185135389435680958219710824941884274715302103464828342874617546051974853243710335316529185897566670933747480968316037138882552198842711404570347178508029550100430597812018079898815775222923160678803447098593421539333433740790036720131994974258845701917490488586210985370892670320543196617721311976436098414363852056372370617613956075055614689852522368762388651924699187140844463495716982221666190428545060113577014474694684812273440077969124890399032066283644035014695291049342381335481658756661083006041424616269827957406021708584206808784344236056185824694640074039556161914999966374967375063521414548358869454606938125322768181618903282292017169702585911382895584245480580026609017573033194261938580277377672796529206500611499520011334052915298078484803636471980892543407517630021147630922903427186552806370645704431056877792497925846557663836249767228226198088723234167450010835403822322237854492113692169767293204116485681539504305797466022893614208089856378823466205529094397608442890277848546631197962307229938515209610073315998319697365782718046737955244756707402357984671995211197197677982732849403288247560826131206078303095764437428850009568345131701862271574042976372024283427327865127439936012187507821321583174585938008771893575420515016422585711176073399859513410641347800539164070471479203792881003998823732225352222725081438241341449404958082461200330689314761929503105667233897061995272101015759872015482140901482002154560899432745953184750850427670206850983525869230970964940093794379611635497209461145590484977640036830570526832411029132383661405672386386551164972923145774362487428639601251796235335752701868347696448545972936012784568714182588930965874677856889714709611876640237048817018819886783365401081261702362701017357091752466884603399788877367387060008519229546117832481591157200442312897160098884261498621172665451336532102458484861293365457301127569186487716718937683176594106399618641444732707291922346367128829623073517723874834819680081150749161416200341810386275394890805345650370624249816820265309140740983462876608912047458753960393989061806340815730614711696305207046186758833426177483424680293007754247815142441400899957521282085193691044425574736996714362689310495496626563935732784453203528927063024152819577054602114230299932497229631854787430989557950815328605715120401299921311610835481845006328347446483519371812756036005030271247649512337034045832455998891866201164531265667412471229213235615369880922936327369022316479841194468759194286667353107925669503871435811260088456445909820248406567647729056987576763734279486739088982455720984827928366458633236763683661035892979235488540618646625310728351891527392127907708222816972993831823368727916748212642223394341330483405344340224499423536510588562673261001563432486185950486896303364552667778542557612378965816314441260055632941006781042293930974127806243882802809338007799896216294499416305411399268926177711992332201224043567717210754052321358751378398936547733664883943782532992797464153942613573203601495369031010109472916428929161140155949143700597896072371094691086787528524151442795599965518234639328078628585965282858964495340487334865810108859317149231830300672125422796032552274817685018970557791487786423606901670829140532349212277028529076742751052061161767765519268728973388135121200463152219561709396419136818899997547558791202519067108564545707730540523217483527156934116577707832665928411551563959185280891070080647362786730439700898404748627387769246072911284447465586044518310509975487156946237105950614408608885245716472794154696748906080890978624700476340050313621623532857747686250675883662317588356939451089462187227908174944705312650932971362000619480201020785473978539841015367412844817472519098593646397983128770956561795857732330836549685394784907382644115484078276840825868450120840101676995827649744582996877864738490319442238262888435838807686421967653652938384872086343000754424446799201030608055265349582236005591805483922243198175436751043492412407279085753800420103166600321690298687061342522038100839014722095840741248671513787978673773705260909007358392641182400489375929837011990844415406044247337381355682174613356187178946992987009782505551650960330670403096114687363833584326809862574017316328722022026748427724998147905503966846928512797410932370309066491236596010627520683947769627091922154812220854217949208497823348943843156978834527247149880103715409412927321873051535403147590926138890430619771115372915923216453811838311406967772336446876860434497720958267242493247721265402441720592868794102361784810820868989911504523731572364630557097373345688472421212607511734778100536624286766568213216664940270305718468357060299381397563442927557033464441834275408277739942390833784681056477577431402306026093131577057636542399908822013515051624089114134032664620244482583981473304231914105759516777110538926659282799215641517304762971797220793589146089852937730308201597429021898539991836219603527676858813562169681912799649989577548969049738572742944640344919317034872675460335327054816336657098748414051437025073764731179385715510549686168943763619337173299623306359521695954750888894553395398312696228669563182359714202436264574887625788653880569323486719802069333005125967414779435584296545730788330153440652827221483971325324806493746803372834917459786474783637133917348292676237177561031775951234169913858656589467753594292882419350668490431816644853068312703271338297276696224222663353142093292049611862416972662027749702529803693335856781279551571062542876132840041882290954301887745391107668046786159241525806259030151494369418803886774384927524888713355149780241210213273860473163381229333875057787438725368379016601239090171602497443131548149732574399447843218216553794431592260737517669935926586853892247108178996847171203318734810908799650532001244273533876886433661482685195331954805418390257694857596305633084170433065111281591176394716218105444791924684904388037790048936064208818326307852157772370943481435360009984056163441959662982839897340326967281719983138984463130158948654264159592501137469093181868502202439121425498816986276226241606294311749080106252671423305408102677821423859678936658398661692055625802196470736467552584830311984005530694610490888881357987183956467360429516580280314085245676632881473796192114412063496064065069697536459763818253205253498042810118099380512562698446034316416040288223586985336102980017552312469824579631899376224317474530803251325111166190520877613574560171354919417938979694075081655793048138385086617066449927345949989359060524303287599730197151965711311924798346353673454855163201888571169186311101145661516004350971472252429826072725741092732858979803644687264553814716387506871284110924086498868524122235943466096952287866221355931023873076391751855883991926776627018958381778694379340669303064609260062855188643564135266183321979626649810570529105715634078427705479199166083747213132495645769843344467131174445634730282862453517342513124043595838489878391642929116105577947242881964777786806103706353518174639718240668375340919922236053927108565346066892988292151791140806845721644727016364678122057128713467435104211589555498468760998380372769076679996938847978448487678863389538903498158694954598097404560364322347428703241247489597117627183454307780325659213426638011377740132045202096577087141948616474922670806891614925088396334161252989317676807427695874873625203527548288193167390116901906062661912446378523912249426857880145264877866439793446009828826754052479585219604912540648580369304157089598684506585511858373865375427836012971763220276186717432009928587671138369115674896405125007513009574242964923236874975745863593985323300373101880286462288585078927942331108806771443972320580987105007462104881223080807798920765408862898391635685028617824245445378419874558042474928810710444875274535643659397808692011143279215546148020491270701416517594188731837877203731985930376296920816431878769872641094865185707029315489525911030623459061795734895178468397771246082787244858802626468385037785150977529886235109237628024976253133679221869016973520785337055501410382150858726417994297113558953704904378646341370276441119133708676593532229331746314351963645350614584397701486420853224520068297943639544045107732222712269438089027435233005177173843281458420147940050471270128729987670984195540118054103022554522057033337131116324524205543994379329675280314181304814280263717901632029454439994413033745242996990758624270421545493534727462874040586399049121731153383634763612186052006917920681591283838729664237354185877645817063156712093817080642322939177101053238873155977091188381601433835351045356112445489588688308702611241959789508904841350897162497676137160931999113227091686036172296831565389352824982802329130792024521561009716334956444134017214156831843977550143580520815918425695512370968704874814596845196745677703016011749794394384529412785492727716555395440026448788675308446261287984343119737640230983034112948731524043816030502021484535050673111120607760628217629151503088842303443343901117850230062145111013640713561920001050791317207974159079270691300196573954009323738703511747136967667539989743134797794347768138182771986745572708454900900623123479210424809664751846931843070766508610787046882171668253243161837696774748116152139840020767020321264284648740573059686839977336227021652756079583447387236096521063877781294030264671003872143114050712051353732315776431000412535463120842980074110440534206699683043814860952041148359984771841619402554324037387803387688291138883426812406454448382302387810529142068501726673216798512467804427829261304348965510641395258872821905835580793194376237905213180873935208915520365728815414485324459607407456886048308714721084801429499476658444534840077994389466103469128380686388008071959801813464213846821712133147819232666819984281132904769985382936076482094620175075341230024963135117272589534738717441702843268896397631037485830212964944721989632894534860026442141694230442593289153694018351184751455270956891606357538800420471168132714580105627887835097512122286797953054508236197207417056383923344542227358512887047167465407142462458140555052172545223846628263335934902546554461611821038700438139689368698742463066605517832954896479936352821684344051643990982203048131148881799694595019008280402287340214049472987093484640325750562122000217882954463355222718184858345971966816031745494405732414519791059262875674087809373764920726604333694821862596101593566375324097850223437726346263583852101117574419822295306404704912400649657681010014016212211343607604634540177903317024094117327981857353127374672194568860894118223512221118561155457026681706818065562068160635472830208970244923308287906853979407878627945584103336711698561444031573293128793814821678759952376933620036318055128513843039128082730788500405069459973534489748618425941659971104528476547278262511056547141447604180531645776763722329306265083840585423308866416859957277913962435893132356397419122065207920508611907100879539015269656299255692441343631590255861528380090217948094014267838479816396514964950891195040950387754050365879431314489670853095184831422354641905118017420943199589459700930971502929031317048082894406176429834515421270096392608066274720508456391329151224862186734110355888144246303984232655292242214510840820289471700114860152125001306867205598802236032689565830410831409847566710214649106437189566443472936362006743190627019048465888169094252467736539132896609298013568847835352482074711270638618726186731627550722337230503731404691378868028707077581515012000858138132064841430324918042105753815720897424260205281758264705468819411876635394852842608439071202195277133324425893114133633775814818734939724783515269601189748943978264460525707156424581847446443834374043453834174278768349473042349074033794858443535237668355400802828739059455535957724286321704249593391626986907295746950405654924512313158603125732184822002860132320949133304808400421186557190138666639277177173391359923465559769878645977973525982112255177449206256569643956513339612010723631607175823505407044170386527277465944813743407304589646503444393198789029472402018259056210053191938657351635240480184374276114110916061469422138755499495707547044569577113449887867134857805342071992899292627251938881631665659087838040651124596205993286545719187734238136201025368413566335925577464694403069629107618464957848753463979935801463296999876531544856421727744497931435462319713254587049588555953192241473059494525357279305483264190653164297975369286066597446581702997973052119308906043052929549124653550417898716494866188408818252605938008561988583502007014140394248696326687984712455495738626844009975579613515353145391951720091502321195780615461107036604856581117015468251774464943349829333930447905354568829659329941335730588883497902792453364455569850077183871793770035215042190837637642372113809248679042286728414972255046371377220150686682681756022222167801412234150929823395248594617643367713123487349079472263865526657820018431793141813301970876975071758952043782675697569151884389896795134370062688353350071714945420848635180993976181909864502128033311016119256126929034795599224549839143343503697862700171385192070397936782372235517056196991142481783451760282786613474080029444794581648761040809901423264398771225495681471388717716735041140028382039980952660906253097770982711082089355833252855850421626376700888696536781565406385584712857410536853699176256498296495304600060121609232282047344158488388229678639622845249509332253742967203844889845754421743952232131980744468889107230951749630210197232275073923498334734634848790488891385961708343256456661550279354956654095976646701827787966220177914724746455089601209042887540864116401103770422221965002147664248586266974022595546959481392709267563729935509277831400592882612454978356595245184351404310265924733897812180184973444525092791408091466206963908145636561176354493930779242722918496851106480397041990359762418730930885948692680004963084283256204082775731799297555779506881417639712760720437414869787378513223147142675478463945560722361734206543517694478851268055874226790378970844935514427855229667582282976666037510566757282261816816947719682970133529548573732941057462333261133645988692843536387811759321117026185216475826967108178755417240786595515221421068931991313799938870674346742291221184460160796411407454304783945684477390000402633125819295808981330577914904164158641214655590343388652091544976060381182882701094620404206311720433582800427046250546965439559260756615825093575079296647179145945781390950224907266042292454786987149028682913595776045270231993533991077685229977687736779968143173389778994152273514177709886947074873604113877308257172804635473914069200645237663178326268125358694435405166865686778502727130063489424585318163428907643720328270898399043126635377241690787089306250714662264728979312135685121256948575764714021139846246864316743957602263671220215403459156347262829626446673393065043351769347091705336449096617688883399840361474256823437844863609360333543579321250989838508600879725254174614613061205326861253653501389468728610950772607716174095820285181044355820952575741401472492538535417823361991444217124485215496904463493011691456096814663848216873651547672888810107399038910167187553952053205748055712634295567494206238844526379308255578740508397770272634100988790155598380742443108258660127205073654614064834440766513528600863464967992118143622378466139331411272779114017969220778450578539434269956610838550268675268336103113103846294141491966345956400162645637511971237911612062893559349641824281350762946512701815733041220956987162847118812270873849119469491251821448238438587211002037481684139594871782683379800187003143167873114743710870585409220136237948209175162465969529813533262294547926396011907007734819037080437468884137003630568491820116863143280858626578691564462520984410251010362667399324623076166444298329614545142537626240642148574375550514707449592214640221441456299908700288961585374405365613180826192731608930768241298358940086706812682045310952507819216459118914376014428184115229986838666902788441326042919788701968099530721632104053533799034760574406895058580974211221576831542341775311549830110911069719333780294385946225105222669077292126853891042058685594363391034098603076883375764581778769532675391938593102349374921665466441958456226039391382407117510924397405939583203407314244596732271318956476997077235221082444273109121937270141035725045527237305063918629187157509279614939472813297332915629914371942340048281620663363392365668042021078680192543553872689423222967571219291450580562603999578262450305877279408357996829300151206845248156198252480025652108617802407589694781567506926524297843015274845814481104307535787082620399598720148883233064034674931176466710375652100545371284280613855010161568698423264643758367106923094695711637361202319136513623858383518013902903755337202359375362340102075182268361430809605261799631734303001007280497521778569093944341019415680604823554684095387519070920794615324239322353803109445358968187311261190695343462568391285044071481382071451193751231764427151573932468068878618214403747485680561401299725401744894286131655218489834149313095716545073835549097771971294208046882901046834444920913231203138280966194126495060293918614409556716699057631167860245613448532672572792458092180669187093627583528729181783680769156098557964019023534367079774029045650971598531503193392932577431920183679793950930720328173090651105856447010215933037715146728575658313647232013068346504420851341060935787299490223827252277662694873112617697409720867433162782898561013906724802651250571856517346256094820535226711260351056386378809603936967460125414758305896145848652749421215580121485242106686273179088803545390252796976847423191441654736488275089641386305979319850443222143525876283446887499504389875246469771404195585946948710092763947029197137398897263293779923401706405997467664622277953047491754299062738171581012825395771733070456290884036791602603138110487381558814727698003515756831023421516465965940499348816026520614749666588833981833574015208686437962650527414606232629114354174958433711023201065788839744534682228087568639319267039348794318262356711910677743655037056876372162497127817361432007936189884483267831874161320713124165758419741964975643893808968961732307134209703629965716064736752689328261543687018789315563472485571461102480972864904794460486754181505834595231289041018000348852150107906052369920307691864227643784067919420873879199940377308615280570458535928964358380130993343289784236457245101557923312062102237162351288472012751893539091578629146938242388380933769521684984054599648659708661041967719051141848199164357633667790510728918894344473111115937067778887631024262944258197252338424522734577624011033396460393262636071163597836766320839342926683562434803179611802338650107352605456395012162688886187972580839325398819631459635268171119647048042889404612089499319755209982603768340116270749723331949493909592146293379963272438470513076267577226558542136951428194237681122754790023217624751425630319929105806315580687741162294983759952878662935444338286614293991386765240386985479083476450403612471336161765298503628628286937219331022872610433719522706141522174688130811617169455329466145807374278389849028441365561600691288215155757570208539327237692912442679424598937250029705592859338737981677707172746798212455928828530520078315240349555552415835473382840868403573256225704842582660782395821524080353005771941318567166257046768031373462220783828664289065426030947568737772913061025365467891440887528503350179648507569716502690095195032656331097152607935990585883237943753452954159777641222989298359668487055462349082969154138253698604968690481892331908054361397048092732891027625216394384711538839066940817049937214301206623752462415586527390386185139170906695197996635731532389347564903783980119128857527339834491746566645628687902375076192719409903567095269071292745074478280069568271663181329234007922116846654839865810383798786897261805053438707436249562653549391850050332051711661077685193510985230390449227627284426497315887460465844361216859158157135120630456569882057762238686002663117492258106935596527317414787581127527536406722478037238695886709282768478110087661917047245083668461976726349138067978825465404530783520086186893157659007697280807848412292921222168091822194482246455110292006049470802069667343422616092607367122313650444421540627049884347462472526047608206828224990741633104884505715120190275587112357361858950069049589540589954301392582082139939099519005949593298120258071446347694413385110811262994204937070069151601967085437822865623597901644191174355957173642556132359401253326765954060582249031533687258460298607277257692893484007676729844840482189861186662605748120597896248928348334830879959398205371706263827241941150318008474187369351298995465291154937500016615372274110805555239648645716541329044823663856346731547747937739689618500303040550095450460899593463547155842297615910149065834253500157555609098684458160877696358115422185912388723476115306454327795399920848529283824687787896301912911855264583961575380599673487360099542565562556899460158695947061663155084852914881839041029375294109193099877179584062939795827526713467399946947813966014622363155399303429871132266480869374973563291569645191225019744711085273744721580394537013613727193594482503280584776030850203901415877483832826438721658243358359340734605022054888543396195156294363265693079401630906404845565522862605546718020667531172940183338223614496502464953555213051869766701679130896947790849481287489976702315248043307195083552188131725019468020258575697472454101274023300398043813267277650651832207912069325201872373732243743427987098860010234534254316272634321430857631323242902485095462294025750550410286760429671894629156190581540770337169500504620497554274347080360012143761004349600421524419064346500500580495661454366080351075732847444142284050041664729223527944310232074959425921034842150224796105073845264969554087165860946575167185644155877005249245929976936070765256998628392036661350303569400194464445332022033177739242887248867037137140549137057195087386772844461746883945232668363254767723668488267559198696859294110456318381659809592011281193561725260149021529438169614750766238708950519151632011774894278199178963734146100679381625592185198190775692925815535946235041604739470749371810021502610428384006776359824830932861347382256192104528097155700558226788067956005348236381011560687930211363514912953614114878343166382867127443846110945737211400978143215764788910384779804228925803333758726214742251672624449740086471048894897250069512724057851821064688840898825105349118882449162982374497947485702911197777500932152174819827564640424859215462350997414484727607420941241843752772914179975844214300317844867396101602462850536233796481501120913998203008259015298071512406374761789401210081889704604577170310687101263214280205592302356690840278316311468889869823051531874100166119033384644682451366456748550750372114193259136555082358951736874320751234083042169079986675674927556324256953391039544851553844901921227882468288367161335339485111153017541450867132760747294389521723181699683860801198133280719370187242454744862644958185011014006120180614432647218069757207817421448601836471841831479431444397569249899810714625985276162466788975916505368281962401595929336991463783240294751735469035420454624459906357758829000403250057485214328415929412659203572639625373656560467476608770860404962316703767509189188311968963596671597586419554676558955515064565472998449799620654875015460510666439613879787081387499802002107668454038838283742901925107514020779372671050078552832442773535569124363536867535985257128967250477130900326163453234644991380055807063223838898945807607505743601694320554149565197677700275784656518287128186554750259199709820396129660305212798873572564107581159082974831382387072962079214003875151503899145583231115802593301879405745076409921615763153384570836495752352851401030261158903000285987382649867423799542559911196111493602796571577142765709614694396922912619477327694103071669554720266166687725126967672436569658281804422644193032449459553773650546427062294660871589980979792456674427111552898963689374368847935641783277168277624649913030414030392899002634578213376661172135837099701196676696705410697798758424658805605600369666583062100805326227001968184916911045446026264758268045354215247797227199458197089037197781914972075593236334942749384113380163749878711094159597019745724494994221651535723207886337480708218685072780873361402392055672562217114507947822564720793067165207220611192660356119303326369312612800402419158504384402763505587336632769546897746180538922680521987091727601052040485401240766745615268485746054191843513604967236113496373911394720465651664231385749566807800734289873035290478631095036346417411476743651650506809098130525518493685413908627587692168290574004776040624535789608816969939826255329322605564658624522163735780086231117099584600722201403450524484102661694017825757156857881466223052085815740878743756100583818826149934971910483375285803606200240662489619783069830736342782596273755134282958838257300321846310984801411890508580949850589250305027731843417615510621749997401032733968547267068969826766803585367209480951641613174476603513142534788972595584274452139316918055232175625665663605143176143007410989776701110245738275267471236687302026308214499446581230018092476328111150597119484166206349832186613562114361099625021233554691844020451598395012156805442029209699517776631408982044135981895092823059298157890101701055858769094497799964681436705660695165069810522564320494062236612126290752346376731636824788539963557391116999919038189658375292319550564284653833236492688093081684257362292191584118491823489020962977877401387947019662085255214691568794670033383558309811427405239057502192292290659677891412924421503969640377284883826358346769946614258300488272962301694448479344395026726817383139868453921538571815617340234264461560593763633042015613783434637240540428230848771156052202149343148823519610555084363102429809683948600568223918217436715815541361659864915766360944208691278332620410025289819606966535715338973722997209496637009493863010126999414232258242793916337378901911770713763012700411849241229125734705209574846149075445675554591354837052904755432345054217821253485377090766098298160259300461205809746831809480670498454224692763245688670435396731349844431865611883953629227041962135397657169698947094998740422703063427916538011723275655385259020918587758044719191869121133374956835616799419747735630349270434187299121503089322995322450540642792956037607157073030805590305132244004865220525228779358409057373390287123573937568682685498254576056435165221275152566585033031035867618256716852127839156809400012414001332632760055195273002552739497913113149513931377201036689898430985918337534210947911087871051315813323710922351722456620801668962187720181607552197062577886141875832955122792725605631171278169705670932851013172939851737095527698733922627673687066429195884999578871559415307122439411233365926305454116553172240791762419495678137371531112140593590672825830554267161698089071994287065709179629723680017886802485278108302046672433529732091261841660996011803300632614170892007871817177412771016212627722962304009118766356018306424549570593375798336501681938652578510843297528531722655904855188205101729263099660183347838802085937194169356845160052393408451770712129662958466012499028829201949723539376345703124820143932463008441725221637558106434101789265719515029332289376096074706292170227263762854467022369055452174468012494804137065481181611735944236886667104562032984306288491079156113495645145968986665349613655792310970254464658930429589200914097332543527332165815479075516613041077702063673078110292354441216054530048276786815637802078275029535358866469598938203205064534567479797735221021588018291566647134319918916729651816100497323799352747453382559295298612128641964128482995613300320861814077250847777871452501073903431723554463708546871217045931251049892895496981163135875031511500669388234269012856296775406835663369088654063032095831800416791098806169913710289323161068582436681551826005219319311152476621410131139510691556865661681196739771383268577337220773523772714605336855323972910000313939851419854036114960394087189682060367812287610775350026058718797608813856304627735691048415540880599690950202463847954863793876746671298657899016322905873301345333732412931716831342405268583604248775294366040083836892271523744580877663271908450016600120975895972508906238504474462656728317409468892245075346059376453179931433454490664750673050546601143173578160297950087325700637863940410156484131918413245447984331933754717408740106034128835729014022541067567334242597182703609871788396836535255236945083280153960588034821360062223613914558044278954531947934652599711950492844147122147914098917739551636347866914521496964077426931979569184560288221577536973363854732494586211858620453116979647641511369908062451010274604963426075227266056792550153921126406215886085982246125615913996987980939937397069065018958474411647076597411319357115038239437743687021396930475930193565888633237386084375359169705666861325182676851459836688969016255910487602507771626640014955178684344408643673162483574286362395236996193820941160150832849509477530473790005599271838716871414926562782044680928514431817146720330358094056384782624340465737373167840905520603854702938120263042475993163808378242566224351955521730884545646708905608454691162171940645360638518745403636434570137734402392059361253900562189205521264419863058604753040924318876293038587587888254570900459554729924051058578121900053839708941043155314262974740742637505272542471310000779355681702005803164913743546175986032097105815204951126686885446340450079051680905441736808971388229381928587366836744307725715189594270660087129974172658033641406428138154428236373627198767503874172012463043019351477970084187395007001016133204881485686853978266775066122366324482473339437792914624854005638039600572818201472318864190282511972379477457077171927142466781743463057733795453410493418725143586184180249999195881850591232038469842960097807808621628721897896184998490934840494891214412883475823603667329743196922048127467616377507054306396826481728778276104907662811387967876399952068086216290339521282265866574393603937820140490829573625215747498963128698500026921339220321187549576609003088585465245566155331562003669748435744717180159227040825902962177348296671746765750329789211971989517533164165784053892037291071519808906664311156252243415647600611537248612358049687334786586716097165096230857696569799264679810433488216749343808423052014501922692008298825469774856383820064394601212207455901502868783611820625807261287219036547126629487109647144346390007240166917813348716707520490491455810873836959435679629789509003534545335562020439888330959766439889766690744166875522068104614998657900612813834218946257977407316403705415977013086061051027318990845804285945480885309424330568614841935376492991494606276816272696286395267501188790083188009600518687118915957480453223545016464559555679597423209276001377658924794362587021153482782361456710049373414652142194754944912879425321642144692962596045660559715442219024607670734427099920863321802208498999978219182985775807149130051151330625267492844795794394840652570004536902381351929988526739440984540805085785669297027540147286161605113251610468121004010267121825396662021280676783526861409026549896970877843033662336253943792127479331801802058791675749617255786361962836347931288982056252713000943239631687796177652274536015360028521130248913728002685626524800041924869382769649269239722185257888489732507931711803964728868742592262610056023863694764371216740219636776275038217683129794656484018516721714915497625814612474929650431685556382094623586515250738838088840434764427324193023440817348469642994076354933527061268922252630629447861820542337567830962595222465805193867442947611256621306904605130928045063556751542580147715741392848624482708101612614046264842830542491425068648793632718283685563174180624338779379737358767366225188239845073917157624832420692307140552233397327044821823160574766998244246064340332300414183532894292767886782250338248846584717014879309870923985754188288508665271983220353405715475204354712399428355840226201826515281118683894639518814330738542363753085107064884873127544799789713308399776759149504476276547261661659779974148916951244235190496190156720541694620467876605954093289598008736143356672437947652053601679214981917556295535891048090578459103329294974317279651596266500927058104507841450021869718816330598373408523321111612670828507427806226746671052166732570078859318570908399646662226118985131673758103325665568059950825659603775143466595232129522918473510557626944774094265681226599195619148090907378356942874945028571838308047998926775573982260179892857507811655386203198234621127938847555485524191455814376364165116520989021690946993884043845383598565681126590120999027581820489556781637142895214552780957819192876076125548613907774260713520467983454114444733592638525204285266321874271823412083539461898997156860838189828833089684115168683622020850237809993828472664189228514741166204467638110930794121711087490185442320207122804051912093143096501463346017236867362053634656821300277032452480004744120706976453908941146977985274460789827245201414961779703013346931917075705196162323107109531402536647263907160124598194180166572832066159332409564817444793787577393474668171008747115797594734638519671142948755534290916323501483958473787856813254554105837585094654137047582362436721417899211080287565319127203371864187550270206731875206733541970602159757684256644702379053967246035732411094429809489547626495518074257568796358064330134688396394171236516438944803238671482817973592438194090911623599057536073197837073277372852875658627682430421238171358613186192644834520458041648009016663783517316838998729987011725512916770561642835318375533722801945281651968511519180464355677523900789871662289600634989475937181797395455880110908001504212030564099003180989442190642456310699560686752631644532267009924773855925816329809744418176923779410190407004146383865432307338501129238628004144464727740995004238897323113278045740573316754926169944090532972649501128360253184352359137723638209168322938510342169556358902069191728458445678738500103541550776452906006089828413453483044077845161417317859504033600539809808024451270520440677936293821237470356521038077505858675880188499151286941707253655879535013537064897723585266310505605791982281647770885057394839929500769428974368655107915866893475900294712510149857131040637519691686543981076599232644967645928883113575958351262230542023724754107317410228343522973814865936791713710189235906396433908706148321076632478789316811644429289616520499712221302717122547093710043607911830250870326821608829489202851657679309950241514254251242892681670673934928162583739370271836177229886161111758791974854754719096485500586269411624873280050034115819457728174946496512770122204737716232057840188748255343951255876254952798673899196694911351798389636640530091910813334731369317215562017846027443445698114658633948742197870935498359596665015220022015829458848967274240557047373711598889296933366278319495198060872149418376106930768375946198119006146565075139517035815139542765476247565755142526951788282632955873458258076457031887905595058768779755370587092751818355375022736830196488630777253881174548714108185818240655423535140250950983059159433903403885251318950187891191560064677150783175203137663780414673069256299163300075994109962865456658599653395448983859485572304645615597676157238171297955860900264914687037007124813521100137885633938034941251727943748756217375298816114998300211410088721912071981325187935511704318144767478385335416988646009393448486182564790286859187296532267780182137833313245105232427550871592160835252755342466802266009784447499016386841691064375267972048643215202333969076987570931932479647206697677104292538695388884280338718342096726650471663275315453167777410312057540154711366629079790641108207871074885724843346451314187649487136672928045789544998531521943992873704999428592243223908443380891509369177931969820290098770624844871538751620255831863617561626465482291891637032397739929718522522833488049312934457779549272143297321250209919464800425208552239220728830318025177134777624124613874708964588618672652933582194215769442223835449349340670953932225148733546706910024017821721236763838238638196829399845108281527762856143450872528295950693320118300989201402512337662392232362214741890378176610778705885741843994629681400955588719207517440329099350595418979944249773935355092635839817439923994707307198442683782605578866389934715421247897230056031123171376453837690822981741871932320680464096500637806204818325301788479389633427440913246990310237457181037573174078590642506201418938695273608406077603226380274076714985673279655210167152333694773176354045462731129669453684931168917747833199683595867267821258101533770387410749746711337151208686031814507522575067409340850470738727276940686389606673187890197164495575813473647428823011947743582473892083820278501129984485668360774031929180643791884622107187961122126435404827217456189740842379356915983781919395365170422615318114855689944444422815952667490146174842140016363872329018905834249269606501676436109663420773204476668439863158707080631971931016801121302561980313579797315781243067568846476348811243992481651623660150339344451783199463125233520519913141441208507217112963879453608616696869838865822542662813543248625782475817333019473709440130850789039956287145469557757220645562183408280478489307792957843846210145623882210298275368274877651553471277329228409530352371497412255700308139739372860770274255061466773921998769405776121654909521339499670543170812291206205939117573061956116064424746111922745000513365735775620361349607955957149828011526066885743495023677405063711163096227376496800918951524396484321999463233032766568227956255947309756646937542929515041606774200443370193994838383307650595630163388435166769194814144763365241497778494658047282852015784469565396412207758007249322317314795892045945030278297262546413840008559685444379342635804590435453015334367495041859526950373702071649917684448170516999482440009165693367671428756788731883752893866022977725616747361052418901105426231277098514547524559622854028221854822575646865828690835710184556375177363245377873700968818272557594915792628628957436335205975455729906298175793771733027139436949246122376137778124975192802036163789391188057618887876835914763992440828275648300358645245304575292054721342701333541795705331142006603039028112187294667192508036143833677784998574666630447336671821776721881989243500259022681103013022019915280029359154154912390445627464811105521795561377630028305931578217500639345744111577392073881064845080736951518014026003545624593849372823489023036150180719901208032217526112231972042575173632106162208671024286001421166045084252624331874399107858467634924520234165167534308870135404876756203266169418682943456280138868906374617047645040419613638767912822774827333074293816850471671427996674207104403198364503161187266656465124709380421895614730271512476509390432606609150790760029611832454621035005046131490030004930547313701103710241487130593678523369370329326145846766261128789524699042684601668101029339613923111235500513186351988066068529026918867230458438684216042378141415746656778774179769095597114611448677416645733307106151614354823464517364298388708537186994591313943249403003719256320914090114071990587427306541264035220460319593482382335789737766935691632573200666633398077003332267490481999424219507698975555819147085948094409098786148060791008155466970137725567148155120436296014480258776420142873816704579123247686612101068585832870685155989254575295708838962108219420534169536971470338718247366840229472357096119922235210954451733280402331333304056410867120150835331921440613668325929862184708871999537349417147439919986166827472490399610487726535086590928601739224859768399960084402900210241703227072301046332747111706142611990799839151184851012359356647549485164321567310041265783803472545011586317996353263328999368864422659706960935247081688284823295003569098203590481663244301904084251066031370799565258865418766660132123528490598284270990483283074329705182825773440430546766778194307626953276054516942443705607066125282491357254235915329609231325265211301280182290919028137207944388566415560203936982241357149501138996518313183256851872706733816030952874494348632835399681982060135764562974903173882350324561567332046849531716632566583467857667332304502121095613092569624086275034829493016655946354022703996642547734914562308464161297492722084950687795546475474455661850502460200024629767950516286443792404205181494697423461941787232759352609441250869030206451232568439651108649792328408139351972347803455714256437963319373384911116254168615802653002940249024753965776263287382943745595614057635040096730107031222201299926633468761666943689525499851798754761799339360850993649199176999463319146545357629817478837170062906280866308870704168468538463719136054593457941603173352758921336557166032798331293991730335926162463062495625090024712466848833207410000385309951279426582405269386541053979938460549663661717422006974386580509411484323667759997996305246714533661915666499156030309215811367296594863343526437721937849849813444331484748887424903406228767830349679600668461258210067138987162072064679987303332444328225309420245788191593556063348951806570492585813097337374385705084394670906428428070296467690961466279372058334109099742304676143806072282231957342338750353848626633718472233595671068081103493889296889547117238003317033527037159217780123745964396474634434486321182494165519717067142670701542570617184997443036381231232980534141790401041640102145103257360551020019601552356897668172494741587292775310682899854620729000491822422573784807474836946325813205243401868463461774390397602332642631600590387693109912527661504892470773838468899987175679752028004889831533192955949963560477506639521985942346626326982163827498863000206281583325011590041120546897015089109189518971928843526549863788178260822492091621432740464390029716089326657837312593437603207824451512103948216197910886548457609055168176660137379822757956317151800646997565102603011780876503963175659914163011441738991089107415381232366561782922770671457728155546634846202276822558570354178335173132573461204640042171636573405309953533898124291137812291670634959297956236539668425592287350040791046008315725461689487153337388848047826845890478672165663771865910823866161454142932970734230954309476755091755778758636599568866267765117994086875056345297452071440291533070113468366179367736624923783732285980433660364750294576233137359014666979666264321167719382715702546860685988724340785728087350208051414665817457820433186184283741480800726613931122149361031702561237701160048804808046121061923866849156739923083879465002839247460297362586499312478997479481017364142357218472950988240513606604552273935711724051861855820194800748330198519237996601861041076580671206589295398584886730491688472241749001034096070509640750980203553078805366608818591818165917091213487260307733407932149218771678791081283259588410580086819077854952717958396337303960528225969401836538135425537876613611942666957261260140178973924705420829521234729725534923218626231649137143815230659787465241711662961206838912476690661443091087407529566609158205636308672207572607743943653134464346194293961030793663905596087593270608567644178256382173204700242709256304965555851215380652530412411703063512914970084062442566376422892369850172021383554142504957300351678598167901264335068012896169269179597204702774564245497689611389289746483389247006369187527964185024024936827799557034621988567947204182988558491930936183557637223419186250455460361518161459530171125532128143373937974644154274315680056795724483414897099717272984880979361916164077491415561705548234002047166171215507059177179127651903393456397626797954081830059674723987964680004938120676143623217341825796880308710439273872789168240687569607510658545213653238592229148774816683676301651966572551530051229977464936036491610635467231026300797918348611452812427069219866034711592129223107773551069108363721223476111505874809522876887074551859334361880727486722079741081874577208275237097593334317798769554410693373618036376999943223870164603197044462855618298414841563583403368981427685018357050094471979440698766159131881255421834964582871962010714111163675295415784501290742137707838559806149371687786889240287949266307416388544638483499611230713644716147484743149322799074135305837757356609695017886710660330318565115693363447429252154357082976119387476035326499239603667235076353475822479952692713563736544119319660307607690283579964717820367185471244249585949770118658246826723578552717743731925846698094700067210163338655719761856894650756000057500313938417302202423188284431498425941685801320276722778643551068552870992326492760137444847278097549177772614959624325266478341506237099752835630903334316085553818570629003102243120743072403952814466593574427778128058716774937301390504225160101011098105105762297451108039474395751219348049507136553331624877887213927965342099506484067885206600307623538394710056104949412100404550447732051251509851262681111184261459440446233962535266514678544508297066186225921989595333310156802166560958004872142607596029525238573483618638871530983880363716803088231128125001647833975294351776184743955511820411205956268497610353716997926487990034858507299125852946604613565144587550983888749237009880860453759566015279362951199208182483184416101404955058513650411554262355783614397700710889943555578886285244977572014699887902357477998977937669490993480327661008068341400168472527671948256980148228350781847763918541806214976257303138011214332897729618330191468434428424876280972707601100587739646314599849124098574860230690114737563790917930641184085872653969743240687033308580796712282760619142424097846286595838462424306407944378967627500038060549864137626298381631163222268567507728267180951091627665608624222915162553392866330939505249123017380661271635481630956025081808198905654085313113361136258090918101235558805598471745953235744187906843050256389407183806333188229721297497833089425856845174799147643458755394627126115572921255562390583064122370794511569031467074352482307571621133301609290913743396196340085730214943797640558978584787206601942689096580437442885974444918663581437401279306420065048763533056959261668174824530079834630128732438351390641919896242589606989869801321152433014990957171944527285841899868118666257849129063552200675949422636991003127200904923255518538866110057087366342240679867555629874389628243765598244144377653896916915932817836447160432710197604139640520698406412319399266349838552827098870550388120618636395341345712926878842379505614663959408069797132580912175062682442620217000282805926493609658240030256420549411334651038665970284173769582331284137044666891494314755410892523917659901564083887894664111977803955323460698104519839820836635015850352810716585254817495062856531965014582024958562699102573055298754796239050251567804690754133846200544016600259087878295047415941094456635133529828616682646613489804733358183872948738660341565928246099103282168450057501691734954724162682278480152767122346191349325043332463845064119153999805877463861171243170621157677510732163737623410595604003149612106559698465896716540861162737019156601565493763510853140472789833164089979657642140696749963399122152252669634245767776547107559940739216037275879437375937098338121350421477404856372594153427704099279490963806336675742641239200622037065420980519250851289406191023624970871555292162296549250464091656365240960455656866636256153327380380288704543195382974140525768764616779361696555554484137157628934478407946947917330803575349775503755220971547717089941870403374780335796970956214981242552403557889335826494918644563352797586237823631085468016235854591766894471662044974144835920990137022964576877796873167180514177743832376675834457111554276575612356768091973528143974300676626272480129037960068079744112641716361827458815671780708605359340375382604654590716845167644841828185011176581095787884739797158356427403676226211538646106171639941349051187767715738247307272919672808040729745941138953095051755396484041533709585942909873506896334308342210109016100213410429132893070193565398511361512567501697213177631880466434102048881363086306068678306531111494860449083016046440287993478651909955302777580680915510334450710926445288403307982121339647584272342616822340305240045249134119542629786822108961792662542607487693891274015511682549455935397117147255501496125029637900184346359133582065246205322016899465324600957518925984359624359248533306059630691367578789353952476874136103012619644552177722837301446979911771509474677746975161974511825758989055300992786478869164138764176453539620367606028545882731735202968085957163650135079471551814991159923734945431425392048331057949466501832185903035413457781122381758530251048000307683460622797643437678028652919716648392155721274941197030658070773200674321214824201431790022888330744373545761977313058259026047053015995146153691297724919268025561938797565954450505744859391442990621557384076213753325183938036121877502326834328367743231481653757328547003604282746987701435320285306701875978684388117039317958724532936490568661317386466048512895066555292635639389836031926986886755849277023922604763247880326578627106460192817219206070291604152786975363316737878015002203271094714356995477497716847771341295080502143945814670006830737396367415344621742713354578408645590511826400039687161607959564545942586874813776498079231274855857151167836833196232127676907783103084490055742704788390832697727195310860470817584906230010757180845527932705099214660159433822575220134659048051314632894325392932093396853912114945806123710199707033503186697167537987597700058724014253230721459331084370373604103177963021665354041209870156934869435085290039910637615654142126488841265733838728024711984739958535385975192688294795271158448734817791574829356673298180676253592067644806472753006213804084456446928648530731347259012961327066812323571241101341940340578747513566983588882941729245287835565047168079603298403994971067040740370724137819819030479810166885236644529716514175814951510359971751374847898184265641784446856246680937421334988545612200155599910845315830660515894321222198973450903252072109461553096320962126839421721850359194930264947256867831591493995751964585102671391743508831177498234093850754235800762914271096796644045576980682311548342615455048569820015118376829004447838761217739012450221380650196651421139340290271650339397271506732551187822312964865798176051463676651046191090988232439863083932253003695963818783944291436688893195125523476430319438961333937723909107026276334279799448634419961645853984879636734528492253700194815918208963174124257776501577341965871910340671712168924823755709353752365984327504159902469931448043882064575165822333925606074864939545709215231098093500282052530750159302813518938584234635126707609168865041554778747644198639280549861857338619520006700330639959153351746748651110909892459790501802290429961822864603166414755919141207442603501464233252374827464789459174894877330144191467727060801143409628779375964706628600364915232699203272210300373685845793360662059355274009372060924941981713561344134526891542374562068037220280040608256594737135728284922146755887681295746656809665243048611711175677128777051408516065903062813137969151585042190519684321250165122413169011412043496071658980446147649722535521774418841650237223531153253124722775314449015312568198688563300969524439399978827168831482501803382090339427960054648868455853460713417237865387360044938127375972762604491689641851648412132788371479891192496807465667977172173996923565250471700547584292584475694555882424499793212987633341956183158899888301450090897582234933466696122568764335947621785833884929808776646985647101870391561086294325948964610403094031697167204237212900424909862544234632285353764859501738221487574790253176376645834261665443550267891280015314931089889345354981397777105113471726388885841525543237221561353531038719267911530344395678106975530438300085085949384986044224803764627396613043004803007577850907546403706364819123411763032996215708495261658789827590328791622459232002497883756744884844201361450998227961261267178735995062809141779802760342041858449076535426468321862236272083400792670854100116875980284657568542191735882441820265063067394511344849439764541114369609169414797576613278818459751616255437803265059326005560052051036174089031418412679814575523941182275860446051276861630094109671000240109170121519412722223123420345114447268307189119956115348624760483531747178232719613517365570006608395536324580756112846472162972036233412196253551470802367765539071139735637069975603646342628231003727615957630602176662745511096580998015428420466935124048043214998245790058033222210609785507656052341298974246729021874119693355604046261028505229221447462194925416727821139570238122138508909059530471136182117171746805920215027637637554612524327995932073889744397439999618133479074556043304734503212724976755656664406120263760944136595634613022570945415790215059805260415369915541758320403440746134556988493305296125738440444340879032791913044648113019234231272849698006885352221272299457951002004129373464734457294253473004828817339921314216964491816134772586606887299387138550278709445930735297089886215776054950833635774031444995231792063486624724361077354476575476017572421107390590267992550046522536201277278783488843304522831575152438871885726540959334461768570215982679014521381879769379538248134753827963142204996789185228231025143883431632325995785191681162795013956623122907659976026503739081300984843151872128957438281859162664411782899595380165195842254133191297498353323909043324446552263556538169842700736623491528194707750992364489088777696435075321636242142329880305284136383960687183364460385195888841099306279101100140567979318195090648934928875303559044509914629609469316758615625245258755012607244014757625831567985333757357103093992352960451089603018994599112298617273398438583335448341615422468017361588759813098804366902275793055939174879033541139886087591701109862563859283931788629728177087133925586329447075388873928301642648917902993854292832708156289173505170065087163201311100838479591379472191939383794474562175873069626467765099708313450020016588572820205205771744831869864106424939698127195038998703814199515198437404349017965760317591554426184174052036351781991168360317902801020067030911031258721981679142003784909490899281463519205502022894127041250134241387469915570964708798627462366907650850053102320831622516370683387683955711941812720225802838479522279786955906992823125617089893462271597965891903281899325555100061373594630784744309375824248726013252816309428906430758201537573745962063468462515179799590836221460985814674689056053040471969392246843518197692203766948490108919167894563549517838362121517941167341777945755956897424889456491001391932059060852553726759154249634134055633785946662733976278341067865046874212236454365311895677516796190800390639724384694421929405611016495322373207551581675377949134696507861773073208265573850802433911842148096265510874780270505623054407925377832820654582148165535792642044431296191805813298155444230152773090974818387990428635201170694663129473713111977723616192678552278177521807408912967521640734198954471612931528532039393318682213845754734414375820791685876166108393992084197994013682272896832447724859109022955181799258046551971138647260089435495610213337352782765840633772620250266788575017203845124211704568491872299081425033709795539563898054340291234302948461810743343308125593650169750774391058096761349118145129087027102572241260616558098535364004579206214396022507022130679815754849470695627406983391871072586460280489722679890053545929603863592686169449707817642709630942255953013065363816760746268322275147824836526077750445060036780379769663941724324700114710953057776241256948163856913753742506078893299033446000687206015148833545772115961155638224280090090768727145868370490515252702786240989491994126916835312928966379313363323258930525255005774984637544195180175583292533427437797538171158204308416184439575018492996237384872048778715224093839741199871448175259189115405106690838057252118055493322626315939579214886914453531278187915994828934601909812692662524948659314771643135609186182219520440570023578653327260921412902372387758860473368962620799933772718498107745685022963043086352514465440090164039297796873336476991375436003058091361909927379551181107719105368766376338940522152731052094343117998961453761585494553854508309223468186128519514144691267031758336446858014546668583865980953754513023255681244161927913907716925645320372458623354348202520361899773615656342385491593592654221937279509329889475844537985512258705550357723186409100741583063770538464286680052142090605984618766225910216621005963990411798770062863449577403980045573991591412328678565840045804966358293508028076113016064238480979452157368575537392602208187262567800989911385211368034242238529051838594920357447729395476434872541761360833436260698316181036781128301821852972237755184572963278906829670094244088770579912262897266396571919757382692688631110979837642308212084041711034985578712656678319525404537719483333443145785125408302153700909984407220902868004599708089589024789765894716157780448651399616182684726211612705866407655311577034635430455044946209152910071786073762431120006050576089547234609481852868354609156035762244060821594607742082714249551665551209609155719718872848936311295650068762604910205120095098385209964344965182745696397786853851392761896392752774170578757516829663363594803679966398329261490717680329086083135525911195892542482348978790988837052069965323612845205478475358148652659540517337480985497293037713936501109428859701004664557599757213180117331376506164408837254181011117639652530331992748458427579490214189883255027023682831539014874772674511743404608285273823960284623095383720605822812206140615578061982253484033086923909204801080354954197492976155076929179550309685891029087266999047918797431909854582423729246716072839713577279170978872447387507294285662949754392068508943020939194864528715430470269572933982947037033030207028977420890582538636550326272778398560912414468873481414864008487580133646315431065518952013427024433116338355563028949318038353190525987513996711478621699032248889809699562105003140065632872998901131220080011959616543409644316220845801098118978732015608066672788283150100477338805504067543651509692879595146181430883688175536192750245794726572524603135279158697394172160634723394999885766931106143672073309753503164510792911934255606679543241230448166474114605640234853421311959570023781182863621823490659619093498717335194701749650824644779687388261530905347305161378539573871849938579147208072438594063506734865427620445943837264931484645811127372236777106277637637720450893175967409602950022748783217881993080526615141449818830537841528279756687494623074604840640415671249556725594042161904431797920950403663893192487821097209545018746213877138095732672311113200888339901838344777346864896343392497380779202686139600013486006333759042964652102365506056900402351640685665444505729168023988171402179563214794357914130806508900075942327838413205327746360000644363985647900319721989689142818173108391260335045839891759443406893985734717995665921853359321889837116028002905964243759985842477414090831549458798827159954645641651421127936586036937312615788570036649105101239652062208590750557391198672943336469314519693811953486724063706691491493266634570252683530806105604443039705081491703446663600579707846782854111697910408297355545645931056202679165918540221087642106206047188377211784373823889678966203560123247001081287280445710335077304003667606849234058779117123210085483269231407028936531563342771302667273073847047789406506764042405257424358198935435219782329254479880555540987396554637539656065071078743975985858459599123760999807017892601043686523423295482978214936694772257950565727391104989490626248229820283968219394350112435268381157861692187932048782714503235825838902279111943782137784274450892717296937420557839646695856280817942198443859334809255335880125160021926663238182991132954532552561505197917255286063912489646636582472086217678510921492379429560771615821471969218435220401835709953825736827304093982652064460692335038308243024786661625747966069721741342230737343736031752500331355519562409513591841626063356118198248631762557942318194978195669382890863993612634892505319715618489325576140367776968339842352681931046850927334929921106621213983740415642097329036186719261540207740221100799930932205099586820848086965895902010426994976892954030566782603889326067634066107380291962073594171184956510859966966565774100875711852820392665743834193625943703171982057935886059468669836157732394136639135511199544204831629239995512395079415361491045709863004478069569548463839901164471104785067737417210494811438815849826212349813543769855913114059531116464653620120571765948662093795544330971179110671267827744041766142593763306915650474430837821970002498276643691726148205299203730716096113258671120469086879721867139844506702326103002690841808865940454970810756360275736975896767585460702045430641206937452739709973111109584181176438851746174731945605207483985082239924686086721369739484841117439475240776432876664736335744944293559678978290371675817149686192154746713540628376807093372394361387665477225562206713767825231392580380549675944609323417164049304166660784102296583116185512150002562622263366226429870395911169490333757592419106370646052868061143770826122051964490980754237086158913431726939356072443896217322813981586309718094261695393220641120676098837425697703334236585077108106799381874226414355974235907958210978824583262421998249746704796679309469439971505359740251288753148712100242360223340138809386577864043612023766571140563715878784246467670963758939710105735726933388047166914259037527391106637446784065834025460075187014447964609613456934316152005151168665340478965778725083677795575709963461470478174135402289157714090844360646197856914964194717747635563133701840664798965224836457066273924475162449335062145983138022057468154388619781986460529784648463591432318275163892954477200562733650843203890194966833260283445694783853101416192036333254434755628013823135685206259515405946992989455409716739733502066846867359082187339192823378640117437508743149257902764768501893500298924319018071186945474457193009798354287545275596720122360502052240437385121731449337596854151833272931929975773837440054011153985946412549796189562647505097048674747576265494465584594907262464736974815735424770982388192855942799612820531243456916738248668758659556122603370300145326229003409458202586684072004222693714200218236301488785112551143445517269107241987534204708245482684247750251935452273341737199277928890416506145699865316609505950378907609700325777307273027273000408425053572348582057123560246284843987685603342065768177988442868527525478395885982971715944144764795100762038434092101411210466968710102987054437428553682120800462075962043090259568416681918813694676367551350114342792642106785525677264848959290861743846335895275883937974893319152616861244695647648531701625753122831326355695199785495584461507578397113306294930139826277630060203755677479062682364006669005127451856666218257063567527851051143641639383418760616494434062375209905428202677288616839906078029705323538872502554948999242218586375994298468706584142322643634561650670922940488077422129224041676082896690629615024177454557710170566302383457579481465013732063361111829324973452564354301261347178019682193652757246268111732645312041544723348849909388500730739658343847513376031796270810238668872148503941808075173374638187015410566589981509571492027699253648581906108608461330019004097267068047585437394640764536668225304698604038619791585371041365194021059503183195655725446275432186235384002216940515252719077079271394572098804723957522526068139249982911908027401242238600558558421966346339416068598771197319275578431652310583778957635155172596856774305912532957708198079257621096579938376017000526296437711538984393666893808745964211100173190157800147299074701650737155495146388561783804225296225240095863564533371049607365129777366109293175927589517667709627679979356005170930357693741310999753961603459539199762435522707577233764482524280890416948876239372735528548083570817258600808211310111186248745791545017030772577797693263367209860887378470118120780625355300577456525891041297177810599917666100960084806983479451449914607892570011129138238998207470785349985006826632922536895607904044142849399697056883802557839239079685068934681702565582153256755652898678932105373797676876309399965050119016072196489718832372575668976559223168839259007964647784559332550247524441176078871522877109798727283622388888130946189448256151409157850813400228171650294112150024364859077615033689807977377035102460758206158848075248676328140562801502462769751239280112303534635698970245560559706062183975154694662010655246283799369555512291998879850764086089160269404163026600730475900074184328541104593536108661989190265016221782944298818172531779385687986403381808189673361441435379708037584303821868237472326785168779098078846307282415280465600828889151983709961036657698403904894703956337248673707288219747792761887658194406879510707638592831050714122901654972738446022593326495830772368330814135229841679846056240228077315803636968793282914231014258154952638874918035420582981428495172630194665865440764992077161000074132919789336278052924165290080553112144375342251291604456453561705038547384354946467295763157641620421927055382846673439686055405978677602357322488208439990236212542601656303275730751166281057980331905835080644120987626428442586538000952337087304737242622524566272738324617269374303412867672112448984334745846522379309135756044598610626428824882963140124804627745947566658456293141238550716074370147152974335930273318014866202544630179393640953284777447715562758482135530388318917032242482596653171772921581158160807717564714998095546229219213732889660049074496039622353227129183506293382318699488344749126603681588481683912291481612826110934559757293791340436621770639043407580816490789636018978094311331983846580821176025769151014228362247529682436543294454800689024587412240343423832871755173841419044429823840046278586569799408228360876858292912305865546004195278041475421605497701234876672021794202600778976252486148251871383462725128700113517214794821042195214516078988938686498378526687364678145710842863197629064187083755881651584867984295027029425272162447465410807354561938695858189382078584640234278881570935708914943227673579340530303523496594845225879367631552946834664141305090376170323537853600215105913876846880768010601716405117648241409088041584463896616383270883882641103125777285611500357563500249936526925463310776527548981766787385813146695206694636181443974029319585334859791267478778318593369854871648850749069105926188691870447568080423312573551973542163340186407920224843073001850182356190649480486004889773159804805091545680462747195713504188294910717426356827120795291870596670729535208822496994852038937871545558756770431805524489695158958852804511054385534230741898782363376432330294934299741475745457793056833903046539425594490217330806908053708332199711401230928425457398223745251015306815630717062931897727738125795274329416765401488532752822955014536921934701741385460776055021222645254879153987589314349540358391490050703990876127775841473678827285200925696484906981427426527377877120263224290892419884961800402659444369189436154053588927444442084910901301581265903682534647079242538245557428721318774459237408211477626155718996221450166310802313275645791215912270649373256995243225694173979534898254759296752858777025403579930188056259692288186369377481777034414766120497063956085596129403993854485690754485687925069310634810464586443440018560368314766821779617100045994721236992006540422744343926365089416601993576635075735870674795114183860470790103972331173591230364938444244291104606517357599062274069868297903198042481094580914949478108143665833575136743168675074238318244617794530142649759987787616205374847307593023386534053987643981459371330969463963222383664352429041583103770686051754492368559496857645320933080031069284212096080987739574775573007128661892161232020357749480957900535918331429629825408263436231964235485165726958577080027775208128154777920675076717172559666083030614733452844440055995327901036178181487106732048268351878040253746130442273257908070604701982279742612982653961744648844220318088557833899364800911307502808055546612355447761413947960363387118894731738484154240459561079448711587743640292564903316416456649419622290382981487365348889547426782281153772116911692528428710396249470144369040101435779802320596376577219374980235664114099668850821861178920771143088735986477182135842755291521935097279478504873444589189430982603138612815710568917958741252121059255728509143707608495184649146117524879504978878329794763296211410392749208816489509350754675199087509817173236380296109240454979057839636050016791018399095910842336130105176631842085046851346834317346765603866269083972332667466498160214297044292275001028256868847875815960938030486538841061249095612642705564317512580564568547297513430994328703359021203756903794043161162989147794173819362764421311332051535649173850288045341509544891826451931494225628996299592106798466973658605803562555619938269387405175713449697600459540992232629704779089274781683648656339975093874043433377306270020750945323693907797343023543038021256793240868907310468134920366166105798583868010453186690155994790220259901272726110580880606201947230856060161259829898644531607285820654149083852892881308101940266301016709254038138571275730606292588681023456592029348853310902084575384323193180018144463729982104613202112790171319200728818692172825068099144851626272070650836114363869899960010318429163841976467437645036698011241504319574567060885769680443857420864690500176771712945112458441726306307060129420610108886853936090236562357518910027865827972387066488542214873249181953540611533242704020045139301240651041380729601813496303428092047145434932709292715758028241019918506403095476435901339843052472324213906289839880948586226131159501529288764274789539466477627819045901683993614178967362216469902397175983288784957871332557173247295530668711526817588777852735518212853499916558634655524993716274740605557125363638411267557811324878751844015682046150353214994592880959694935068706751426118909725610994858025212555517213891308617506155260777761955700568653023122032490931534475604540779148847064104600342200413864317225802073132250323451847912989705715467491848891160881964545544714173856133443168676167355690636132010179724785900824178192949898067277331618002282129254183516448492102945170594078378817073204674283456900090422621358061050545927944313541957536172434055768722734938844848996354236302717926333471423643631060328281724397454285808296490413204426468695740874765799349838715026101324592345573999178226672972378766286819991284801061312085837736244938654551419405479814965233440566262930312181989820818309716266784003035610986279722642000724284115706131046058426287629403560580796574354485071774445734446891657611705743445544787531295384433957523137813410574068793783723309097492320590071408550427780884101586813845680284544218493146512456627733688584198291579950875807358154361290689511952043142986866760719426172698230743923698664320579748143672628843488358486608668269464070709501871392466871833121296211179195377244649532742437808636227874406123085942593308221757678218583001004628798555863649665034523107233938488001754825194604207678261308970033895726074893488654731864058184361776164393973549774027245493523978493452763710617239565329889000243849666554161875148058732535886793674839363656857167495416913153452200741813002166249348768188294140434833318406009669255261710572581288952325410796930145772627442544215314348691639986912901686117163869354164107672001346746435633871895669028297853396250694903341355369470108547383920367410959443078554786491990282795557144337633465914123060093026262643603878831814574563435940357776108395929568512448090396152865423413824880382837582443559002227937783615107167630656999747230904467051532155692700623315650738195028608791319906091627079746798891706120557717811770732152452031399397782923785868793561553830042218061603112184300916066278768086535114099414421652895556633673366152222756694492275559065984690675170296607620141771567877227437105613003046792170488602752868663648887858655991883635557712055304401729455313460220659415394115961522537853156773814691871238498243671887697105042106018338914746583926905574878807641375564825913227647676249991744381874941778970066255768328714041542342954025127387220298545564085259547305610525499894805197880055534139285149161301074944489371231201094631517924088077189001320456630982257132221188665793750741889803955454625397983105013815237397844222481585680505355477377978404749138780558037745652036128572549143651862820232745643737793713915948711108007190909468721924465609758063690398509537507352611090884195188771720606713548058753663100423523976666828411451884809566942940943492261174818577957030764855886265231471264548340238191142904168457588918415310011327520786495999734230475329328717241246724675925804059344468770554871297233635097503002494985153112321169829701987310510810078175785541665567528127742414972771298701860176809682439493429280865680253344494436553349659680116002755295178856776870139040607324856052745491706479386329119987274783813317549931684936416234913648063444943619324005332326031745551623863793326032400974633510777519205258028054468252844186047823858286306499044129441663256146252911266597108800399520147324907328261599884730763706582721218990405914375305802940349311608646606728151527741272839480984418626800688265753450070435748501648309325229031933284242081189687692055274285943646704074742867908316841632364573682206352518623831808716280116176945887913321972873318987428099283006665625885643674854023817854105579060176074179555447163727301225353251427637133193167141818178126111365538955966271738969436690840834942473168561409060369122550420366542360297058353049316718048676092906210702566019573705891888310504682354394267852447611239433485574962931660900990478454391156661847766157335188102616494616815872198614331899397637216983576007008181469288397286808179550174910941093223679885809655905860040526918141816408412685657212591851352200923319308102878696982217795405773332348225355194391516762492851460469216940054700564223235289481217528704949965028429342106443171245049411847546725669104830152483583519915823231098442314493074883996700987684645018113164844941065030884680345798242896183398624982797729521058467873420486268272594439991306180143383156804054952892548885830600148949813497298914842013786821908553450625161113500773957976671514226322948531929980146683948906916794591704815064247151797904007670843815172527310097502072518638031500274788385615135020085306731699320532902206514363981942158897662561101907601963033908393433994808926800303131125655685322982504412510826717052625972985004037062081964060244084851983054940158666501865401945290693589047893815118425083914774248713618483871667378711743636112236065121085084218653417175151807785521803858298327775364568834537747662351061553467082781083906925579057002808883923821666144377993892210509276392757887392037004128378245226303803398038417247083916960820861612552641042218163986193452347534142964957923816337375681154873325996740925932951150431680670080339462478624673605283087579235525187853577670238642121365078721080201663990878304285027747392497119007871405190910204112130678951200126446791410629120392708637011962329297619251321591377488543124977646063809754705512942533441875917560161399518759373692857563262948536087211438885482953486976451553114933467301058841163234727828057961237397164339002808540654955992974778023876702642691912385446201308786481158246071285151164278875650408449461875290342848234798884600642026265213798391432114106471247962848019677313588086978911468369759249338640786062482744901851128047262292384092819647256165133709476862278435712599828688430632962017409549931402799397279273487775061418729419025204502264286013016594901140596776565545041336545003646153439071558194482138681105901188854484644437148473655324649093299066398164322036451097337598254537292676327620062781254126805174256805133667706226410033858447838131246115720649550021760848905433050937767341062846924648853063275943468610573190946567155559329390826710250884132608874942382984338221432946192054925717656388196264527687805822182656601237617181684509113361133753543953258779887282242572768580193932838593270597905840785652462644467427152222689097485816034625265445154886338090139539442385281670261997481858701032624607227965255490784176500668298298859536949582695027709057519629425134412999746618892426031566282245243805101649292919597213977071450337297343552876998584971738212679283615001858602935815035672746681675533355135160729687379250907938454919489052377289535004211723140446911190536288698556381922901570889277792037108966864212625934957135362695374841134551033400535574076291933212054115263940358075839755013782932869324432254105131433564887189570574422731448290725358871274812488667283823168942742915704968708315033884516855044104531544814275412700043250506940135132415949661721672208128997916384922650172441409784621509658110559632422712652872835540926554017208747853197926234640712588453109842997502951486636055905178983928660522457161087904711826628685391194471568269456673667257396188953837954353407385627447017199167972703751042906472951467929204765838506896128140744200622357036969825046056520654922291502855948802949133863228965448599725038666495517341984303993274358132638745449410110767470749579620590157040299945822849716569286201041441146931106277637681640321482175048752380337665336444869855005907906228053906577416608007137558607803863991816091805974231833586734326183268462097449981668080438825734632709389255683979562828636580823138370481872707012803408478422424119778884248710311275533382316138211776228407157547723540298498270094374144200530598851546707737949896420767291212863095191443010286339849831587763695612253763452982948995801397851469765047584894144043251426844894446298781542789359489738458745454432970678777706572880607273497093918314146765682740985736388355794014360226728521594710514561339142187240870836589313902348348074550464051881458917971712266184507732473816377110518647847299665425391936949994641678704567944850786256311455530512928552951972588923065165184412916186376179408004840098139593435166882782575861040915969585803387724405283572663702200661618391435312369564317476862374443284764904086950367994978379737581305381583469335978614999706200764202276620920069940504081602788079249388579018706860050425148413233969883567694069670934838877857591881913400888851303245096107025640320307155523940378113063083324711418188486555490269534088770383499954384075577795600260937838735464377971585312993520864870922434275369750905502551410127093215838659869927290337790296303936272375119809048698805263921685212060254500484796516830053936423677003289702722284349361148798572799477704645132349919373383724850075868319990825199165758431602101303908566620130673604530204503065458970081129639912362438084907373514532175070402242253062236552233463011370846788136517048094954574605492207906032964566683232119255335749666541988822663028709508794183156978154334681581429680798147646755656067411591224041318406273911581515573912395520067992179835165890480958353682595947632395767952687933905628670569738251390911620632708354204577728506162628709693804433354113078397257046421647737712252705133752873240479408544268891518120094683392498172022038348382131158767946694820510689867085161451521236205077703143035648807523877566680951798567771930095657003468366018383246230509009523339097558049005753606345799441753216122114155533548927017780992074539065017158903526452968790002573020647446782209967636269365822281180855270874392014785795816140013503825806557108557372901746690109794287431940694854106571172442243793938116387887248253241079833174885387807842245379516933308921684918444646245295328183219153088491006183695383022463590634972012908056729216175217408059881992521544865562263222078249809738154509972235282431172858045365615981109999230805674750910181715685960725765630415341217531556526487496009814484575114612825964786096986611781615236911663259245738507457541550927937484952140727996363726878986218637880229597747093394437088803682831443206410886140578390425847582082681055002051900335794464531849643689923202746875577042381741462177414939355311471478438404731307420376122732069259751013627240331301749943249348092247429330769336383530608452359689590141870117510048655450590705450030561256964622304215450400655123331604539593565755267083775069596262665481195954407420969390119783506178388176431791412787670474101477016549863908441957384987829205130989242736004709814771932981313575736683851777461161894865523404909402354960965415086316973131271341390539438897083083866112316084038355184203796603605220824150805286932586130113992547486375529644210996256699334490551749322396943933967735635571326377627179044079068787353319472134982297231730935335399905688633963220402082874311177725814028026223254134771621719048168518387527016707872769971342650963811099240349508123952223100393603886640515773530685063911129362794644981552630023871304002456498516367560565005055845442673191218965004187085049688018000888680615497048396566272391959720519729522205100895203971319735455062643798690175509191851166014839952476668996404340594141789989348931882975719952307644102404508551550807024522465515635804239919952604280114027068274578762387758865355564649138188950991984437797334349659644080134230132217692245287351438666987735444403998537742106694029271270044582865029735228156873556271239806732978264220438797781902114965954423281768178558208260548417686127951315592164620300816137440576228131121888783820237544415181348873708266933515024332428541553864356567911268694901475103865941921667508134356759393560953002041401932756381399242244736684595867344971580127159098491137648371828351038365701607410457138820124363073474359122311814487861169924739059148673387089680902228595574787508590525820648257360824668788215282102510647368003202574163849425442774890358804350084425416446015200890944176017610080131432040995474905516390851853015194759425660874736471817193221252986383441725623531391842618135964882530028579127454462020496615111485916340854633875527903263726363762501201045420020042203198140426125104994705390087056703200360151060263386072745423188802572234061306256553082843499714474304814957182247733083552322960362959807396754623969665401397322728359662415436614785628311660123329603160805547604880254976748863083312726589963134943979172050664858798070124332601448842850759986822002186866146233041158806725674972920591926524109865312524437741847051599476412475295540620730637881513796645594976366555559837987033583470663944539939984859650619508382833346519337226929584383041149672425553625483165578104122212063140926326381978146375279104678985964018285680157957191521882885819256284417696117703863113414483186017497550457183143908271014279385332279401642213397010515119053724255710680468339139973193463093548096254726522076855127915940695363195672617725214876723030213375334186798739474455093597567580370947349451665489824518813860162433434355906761480108866010271857973497570743883724955263509249443744086587045946508858968677020183123421234182450473050371470058997238181304406251164370313501601388710722884185870834726274069224562089249864307068004604437129691606443934901215678715763925901025616026740635861961330747387342513594801908242604663545337184224845775215781140828585240532889915314914118074483902123893657357041722835769866575902133668643731363773483164439545867882950389431905874503587088266443285417131631591360670530754769558400236769456833074634852602564297605085427421894486490343958273837957931359058946118865347830556880347075128188969792988043262786927530786294355630394495010396129848842874534875872978110259431608399246210037005371863284077648274898484630825210436973375993641630176032676431071681578153129988781885401788738281227644639104081743215618626380682347568508532376170227502943981231939553116886593408262365276499836521371590774004188025631357194122664091656232680570837362034840813029482852981825250598657011594666560967750535428275301779176864276470445887114186538158936991652919269110793426691666458139370263318736050937508696545789515404568604100321241985189882578373328112940664817802220251660313145232863311635803245007084966638455180654611833755653336664800092756222185296924662304189011355024015209035998024379583359514497878011969641958515731023798710458616653981271056866080646390237013592537110260429079471330039522180187800295035994148666768755317627355715240548681153867068517053858892689576353863856630847222367422746844386259589953431504938752307153270959340513700174507029101120848928141664269047463542398478602026935864855733048592379026249251097798865947686359342460470232944433555608445510207405003194798200056625226120803485386905615656184249443383990496431843282362700061371003218518497785071649021150690683463546460170947734306074401950429543553081129715172950241432655600324500506395046318482758814454231102426588932610415455581291367225227390423958575193148995754945465322812431236323963301711710076677144293987482490917965849265786000434354397142578555030105003935085779872144350817721771878467550942557613838259774009616272018228405096356937897962988426914001236367877587049296690208514588858215012815227046904238530229702978785421472601468461205694414417181976998559937007335139740789131048767171353862356969400637139417012249618473028166638170908447091121841171119293673038485295023091865544948209471171414621789109770325740290989659076334270093248565573338594733985892092027626201391728603918565329579118173014510878947664477314217249715978216309016218633228582218830435581791147964220224538247456975708240899852363829041191540533077646745461851068095524175022944327943575392246546612766880168738131251786198167707116560203303124220805328328994704395322013085996788943963344695215568238004226902955546237546313851599931992992634979009627649692075990918063761299084689353712140773365108037140867062411518656827131366672323378948940678033101171601688622053465723872582757866358444449042692324017169703473997206419212739636684446522921118035816361495103063798309729279638471990441564836550001942912993515032861006661148305208073251036285863181109391169405889389753094469205751250020892840341376129006547853949384026396791685137474680313729948938940794560472295740638063126017011678274933564792938105420304319924432256662146084585503502449001713205820481381883983709752118991567609469116913040691360372501228443977625840813384621712173487656681145821621130134753458120584293238879909612229267308783800777819933995834759442958449230223075802069668393663256552345370563650732235928991853559369354463540437993772160716864756007634831386675816500571139592495732771454904215704198904103556574725945273508120279809174981181306004410317527181301343849083567857121296354240969612983620373198907586052535646898439094227803654009094923492994468647558159708155145308505751861346999170824184852898068716940530745618309978108947883771463909783456081070837489303053685700503226747507962497191454318530155611871021157446414029143340954759154724861859187355336540572668517450227384273637166852672283982007312946366441126363858515955906970255250787542378515753935337097874869653179847658219255161539565091722473121290416335297162551614804753757578962945218523878510426751174772437021721253207863352888004273816375708134778884666063332423298676516588420789166136880816695789082667937357143489770787038717988795725397910147010573640470064731198475102304104183569991499353426999624703412340675616976223090341236589064194319881716006385535456673993540682809302977068815229646077729884896828981937986640519082909728641345735811681876307237421699387408092484477978690205076351827253168417248488606586690933861227203289448771299734836520120564797294723133081795916593353402714156794585626266519748522328766102551112602710992186323988810677416022026938133668831653889383044447730980254128950443950709995543407030022833786692249711065759851302433970105623027463898876289585903566270288718425885763471653805738897462605432514427791921692321370164115900521416798796480813665573724412975931648996026380756767053710096851162438705300993061940022435185250470256005465390714594896202842074397173268858182592379023484959647495128297343127949241819197137004009772020157053780564525643787343037401023259875601429142330827884372358650970866024571216806334154543344729272436308069147257720526508070134447183484667240657492565513817740370123604083349382791517562052947411909649756771664072393934146096800612494248283908507546087468612168874196365804994386566675050120164428248718288120921083629291343920172976668947100684908496165112150736595790507552685850301242986346723478385002072828475098144679605600467177489066636074121216419414869900445533810405931119472942960266139510867315718785042415497563022143523728898884491786142831585415004762870751608408263062770316722609626351443117935965731843018457018134840042034575376741708302380625552073917056768276368872673858717055291400662117267722198026623307550680907129612314545259869313043960855511139409605016478748719125442921892410882211216104061748281891402015403164224045313030063041267172623990899891721435923334703483952937776264157389598815506261707563826726977499150325694771709464489829906213752390189625232318065538310337216045571025456869864647072006841514015740160564935030418604502093699324496465317057179028903011214682367705522144997617581756592375712784032747460952551892891606459394068293888143352176390926896964673579601155238654241601994111298482353797576288877661813688028627232002765111226345407229736514622553921562077004090453198461327196159301570774010171125007144424255552733919849027898953901292617291715476053992044390077168739653683594061492258522648184568713464856626347995222380846078513513629626976781994598389745031224415835539334008572624647345626458234007373733373284086920553198290370910948683370851571982643998923717387585495699663380502873128578931941790564116384725586331135487519782740543384739901225141147724202583775885240269459768298062730508422762498024951556992128508387288233874573582375974840720983111534976131066542525041092674114154541281306139090402727800613360211410801957205661930839919479492791144403904161688949280886782950722770464377339094341542718699820047671773746300062564147315534944801447923664831493557225783734212778150633404454851298677723672540093498142304035465546006087983685207214864300639281200369330030155893574178988098340946740461110866825836703432843922038773423657934039937324047721168730853895492086702530326110399874853458364022110931934941938360789912896672843108099970097303292380714649233698436330305328422172704203887671651497327697733083737603938932538829698800288911685271591586590587658727038068277125799150797405450159509052958758026916507551819175161813546571640634955743288531361297423436916639234153570294340599199639710256607322314095577621705129747969075559968332905435123441733133141013658823474025297106769732450111754969731717207642870182061350763175777246406732282088096333041086008421355945159556472309984143958541958138039124266413955185039458937373911261903938620798480378339146770173822624589805045939794255617075705282334569800497265777702878078989253961985709741082224184941170219475809295783638081801458852400514605922214691223100964089406387500682576574833484173293745696907815366263402421728773804242559381870391610523058210871425560212338762083085214898698052529548265337946177085438955740855429633380633149871044043087188418483060200605143165938993266264288163101040527692802980528558792800977365624378848204573073886259318863110353692467962133214349130792529110044323932495483620149528711228558944493105667964194526291759652807253193966899936551146137912224619692556651450251321617892850370050856658944768441902377222057759396567968246424837538496889431605366911752419404560213474516563764454600767047853403827801351894080792788998428324028866941289334704568448801320201980911567412284527583070076410897241117284498687324634526286812513526770519189637463360438484716260740094649052059157078801355926483038860640412215629622918983437715454256010700376540244000315566830509314402724601150688785699187625568257851683063939659688659098870442875215729588560402438812504146382595707908048187438586001190433254690611404463379172002134256909626254493852326356985848973042983422543976245444195868674203220760547678625669544331383991966236334556629592798111408428273448274325955472397707479187327659037302467665997781960101785230877208218630829790649699031383566360074701248981743913277465747994597030816331581589254196943186467468673009961613578166486191425724529634464526795323843335533065603104953340489525380084182488531478086860106255904987219774595873945757620432526238081882875802699280056737914418892933338633258501983009635075828214659673144181665385311628957789663975040749624117036459154478071395724631680901942570083439593010965503204944666039217969877114995290702176859712799931047352300595677256098049088908404059064131812189557166172190787212530636723015880312924088234469825660814656573115631383458151215512958302851972034490685527929614862459874378770664805499831505536465906526257924284491502105609389271207366115776303567271359870195418380691458358090869047728898980169868081456901927779240589261097555286977091348385704777529496061459160232753307242698395505508966781422441754902676963998988672731960172512206924049224011123559853280412153458555865997758685027039573946733403365185646607945489849536818181160502154417860781239770472600017584786690524703273683655568019132179895320409695454650662780920418654542187369095336226165561907270900017563459421220270944381273549902371237474804124667099815398072743305668595357087959466761019139023273446011170927412821511122828833059075448824655607834869812388982733269052072645126987708519292949697368251179070454016287280341661423755834108192320331369379019420133375038201333517409726844391883775603133469208468422476546889031290860940097857014937212220781317022795458312662985782679677310087373505859190011171932369341357724473737158945399360908181638822317013828637489873081172575254643886026088894363663929082705520975003299461993736298039828662523859995430454038878735947091853712565679899109628574014613717460021531701696419765677996805236039163588038338418980695708062986246561308382323113606037140341139068236911712128917381195264313299223863464186318154117912629234128441477877908521011116680622803333134607365179706037831735566060560825217855405941132282375545453995011902093650375267139512954660270444231582874033972957085722927383462173076289340475582856031938842944076316176671509578787126379097617261922109268302672654049741899170819837453838361901486512801016246219858622756908618742782628265780480080393253668741489053262981476272434978906501938164864084222329903738312630131120353879464961109243591584251200274288982526380562973901853941498595967887237472881891255316257363373814568898789366313580754573760706862118261852377009242700705481845108199832450825124675110800617712873692327101373618408907953314114132684977744198544396845949990523735831420427431147541586406882502608143118211860800286127120393266470450028853036107212511175733902443276675763794605950050136900471535017366377981472423807616186496507868770262341369764793964127229406658589366697876633663667519795616457178313832612276158091910337853440350874239482077184741121933229833102475113068320574266036713986616580698813948355869111727783113428889574157811583150045858753140811350194345906934124111969637513335080227670414530241359149817099715789660959304163941501282099318404959883033189477994405869514134386650467108353868414293572537965394857642073997907065544596914541337750471429437163350169115840179430818228992601460555413313662586340086934359592379809290072937010320601597130377516538804584828520873486278787643444475484816760583984941562511739682043115138175631620798752219413074460053480067434822878877184247078247449409355987109740050441241374611007953751663484305943635568195789128638091304778821991416449517248213450990892432436486117112761659903324506186587452253774674123244225031432260598943167467810215216698148993062718981758424863889094047938190401719915030232097685699560801316684749514738485251031707922245608129713834829833745367121878734083868418728225521010792115366337790669705984946179308699225799735503413392556334405451602408747105786722209936097060447509472955476852358525354193004910179208035032122090292252490566853363699971149061548054830387365257062606622367964211756422670083173735531880096242442948476068796665042011350480399708424030075050365915764128943188704647138675022114968104101110308238836611689125366337358157267944386581440462072398872303752169632618687985285760352901709229355761085351119646945992950181657180974189932044069235640926903761828355508349281208248225150982755219055676539714544226638168481882952505143831759028859060561297060915882664174143054944258465487799461873231002508002504527818047437484513174376899458880332543824101884207738744547096046982433345931793042359332226663460209157958121069049548418885887706860665891925362719698842770296786252796167240370007554848440297943703671974658106656836761014320247578783109304334606460778386968424522093132638162245004204427829313439014036455224129433712925841178692321977607497393088563703502851944190156841786485859263626052086082755421115432827991256958586195594349637120405720931300093679253655983460692289158951844076386448734725943315872114346766461350463035852925093670002100433349592290477504774200091564310476554264216906808012176552804860929038222592227607675349253880832041441776124481278714058256013188653421904222351531971925645527659621391056795890411611639012650936100884409347906413335572783626484618763100786759818297262263483057677332441891585764636337675003921696232462401435159396831097150525624752569943586940622398733648240307534820264140364184284186722517474748611549455052086231761260946823639277324930583638328959236423693382591336066278166075675437881046673470345566485000640481475374635187570903186885308628092189934806134887488675386304951289724778336386995933546016732084364307677690011466842214319351306199702412570287625424735475639257577509102433428128005757905940912955009585615286890487217368946136223543724990119333166702276554133515377116145045463293451272240014355711279051544736970653518834329876258548497895467674359079986459601869705550407372370420840847031719152014748570747487470152419622985761490047831857863773046346151944139693077185574663272735347126111382983431133632855510274749750849081757570709695085211760853270541751476523494504019075411995115693662764635272322019804549802425195522879100553156365587334685400062005471670533575104990745186502228561902208302039289248014653752386648891582239351487144488526754621707930874459278390995841938777427842737431835291869007853811423877312138668349243657670357036251148502913110713308382557380918161938457131617834406097657084877469958271855547802118948497977510263548625685987958581797058233963724344443128702301796823701357953543871076095959543856249884805843445273068209080794419019996423400897076730680988737963246169409197468508757533685989048820352299195429567181239586695492086056907350770058552554619442402093595839034881322197221688514999817948458741229885183790022509269972712496536832303267725430023812177149062513660767412415026131451457187285764014505527657848127428774969365613223691882298236016719479983021246326773699708007167345332212657423318976332041265978701160205779901297324707897737972456718061374349001542943575757783292153139250963765640615082956113652389259970898231275044852657130826388994997628258677044273045394387760809812324674067692163118011757436845171689468145981784461882333468334394536923321146910875688964587394772830558959177915492265450005179099370223366853396936965538060001346650830298950348413280508904303138502137585152572460552783374237080281377915536758366989913284398916406454056488744405440756873393884769984618897636044554393964699671215207242902010891361151781834366729565819843642534842229718603626024775341237672280048423403659537171782184600380646109298880167920089609134578564385916100713669208096123792615071810134151106813468574017035405445117468959628149086795585671729380693890167283742596393799595097451987494453923492436733393525595896996947690070397052553290108880719874813890868176710060960264514650693943504900625858868823265900453444845112528993149159582888896494773515872454762280293661976428669684865085167677662496563039119329312045304753208883918676098403564247187793798831644810250785431367126857641769444990930128082043726652421031089800386831510994162606806155801341533598449032828224444194196324926921064339325431755934787055589107017583323956355573623069194660045776766111982674090377986165351759335019394576397297470584044713765605136316314076172391392337899981534838318559435423475337292747726635662235722562415639263183127645728057448906177316305916359732262799933725583500823898032441559088560525637269634820444655770979420632177971181380221500871746345289905116547856171190597272121001949537869012167646547244988323778140206644615651326835238404231903834481996839334582270942080074574992828658430007758797480492527128316634647831031371644925841999802868596145287564205529924695148988210346678620973906762240217459992363342613205834567393522448463027693381526382241559337157059209070247477364412735482576136661976329870474049745289549378615006282347431412285473977889445159161958176892584660579970026186060670331351441062634126918817791884959480646850341634302194322875527735958407541312239874080679431082545742201703575733361151640522681005153977453746270413251567200055079393412688820030188338687020226649660799312203322374500267599418014953571307632230987832856898841946237334372589276466822724845924046600707225632334947470317008183823885527277824261322664400839511568547015278945558977138282328286430050572506172009070558064467538018694843605643632846811244020867236063749362897142150790045658683197561196809381654019029034420023996489091760901428479426071073696613052751854670247188458023517029970511847450381611731689805911727189090693967874708242046014219201789635149036111088743718795353750942954429180353824245085894972038231854445300404074884800440592199942931049365674380128731108860763289007876264465091479764669677327494291922662556336484683658832391706496824927849447023483885703264861004678785658510963348741215277823111246290763763692475510162587005535367422426112025447569360437444151096065230456879212671698890995406582456876022145348391729690269771225267007438557460004838683596138994022412606524275015136864238786359508682014426030400254340175412028111113634183844762679597219755735523042303321071874244976187306493752440257426399506868335360805246746956580893117486929020601431843880699985689334022330938302779037501701766225381312909588310674103129625512396346068300231122187886904431988831661662989745625487100853622663215142082839775223944105816937360786607112393368559487016325977966939276435140304721332545193970443822488186074985584878873948690994643978518650474805371010538449845895903780848957419088168260015021661441877453115928843746873074895789928028492205574981291765479875869582257970114746947278737017834220333832904587221273159156873487825265157291824358522013349743872121189154655725430929636921636839497525710986860076185557282316080927657537330401632349521779037658314254532850981081559688150472572198119408742138273225591487060135378693840042836950667791979121595544295663474597719069537692356487377490340728725344935619309478921561095723280094891384404582427058276679917425448251656399492396427124695429608211130873774534719098776660363695777064759282905723464971056061850218966110795369898054386615595561511766843743418725521818703744100851544144246210477950941509948495738990719100813025273164958943771618073406764603700398350993868468745403970084600998036699909724126413114809737329680572583599031799228399189384729761835274205462164263772447866046586024412586413291125889363127384509623554867459858268574048850405963476073671541619385643581432966586339251040749302946826020102868516020441058035790317819534499075434188329459804418964381853269922133153998073611166620549403762902533576939844346025602781639816011057458458978855124141895987477851597845217126081941332620575955949079996714448547435462567098728548441712477257719469323837813216742187683264560875514576071066045657970100776888730915396184845267204802608516542169385829304516400665148382054113881966431279443508746843579884609939378803960092204021984400428994214120418862599367434852447475944842223655141708459111517310360774761207591949598985907061749313794389407742262205889508036941425631610613409811643214254416094091969680562762320967816450832153266771052888194363421491860203146885552921836918496657918965229342878894281253888664101016449133051605283054394338497970011189045302053069964842789287291112292368696787713571135138509821180755062449019290802176155170439625747648681277169714939466535565393575983357785253140827589657818896373489268207390641683068236575173607238056937644111919860728046340914144556737417834067201866550689243683127625656254757026517400529060442864287886456198780436355330425809601357018944611303694234554907382234950689158266084772846226305385192213616350378383403172801215971180375052006981144054154480174085865859272473179531102313541800422651435395490411214211152795287505048039190156200988052130963753718408299637972904925608745299964792213080532437624334052150841651106488043948407590317699791605106221080322644313521592859385413074336291197720720822288221261118424190072038964998403106780681313158663827555080408404645826956642743327682535713824574115903704454244417975416509288265066052397215463923191473482693264397928910088363791889791949093697663397805769591954692458532589105127209575947627589987162592465205272536985345554919879939621180536084859999142110688106229265975225606718436764339517319262953082297877024128546131266323565536746507564196621898626522693176242221694806986124560420021176569997586761389806432278333279391225617080313493450654322105655141958795873846740061199450854211969394662448996344350702357980762117268708747042317869167101860918122960860343612682256695081697696656199358716736581833819545944988937680176301448990096852740858891284321710428491127794917310916222607265914124327353670740158822068277628176334978877442141821075601101063014822240124029459770127738936894230764172818892311702098753628611733717230632619840025856739209001318289358961018393982399157569832171999929612555030615913273222453365301626115778250970826765117022369925221750624835461556320777138605195161946550577667128319240973182430410704215204293049068462672270751891079882970294028839513051944492306196841732457630329168061085877756278764139532800077694097992512620963680385312687416199205203906239945027250912505464398207161006766434543005918877730505315655845324345507507956382339195226953685746942628338002075468808742514206707413445590425502437931842976720396298146579642124165726685367337370201262575321312171795651247895702142656220923011466965050926780772855513005910035830674608415224822170353406645248899344267781395645647936436447041610218103299626268839889175423409040023234238334410002891001886531532554038143399408707458996366485097485462303401181508479632802708776998910853695235993148219709203253456413078583798097151232804458162976165385204301466622566466529131853281310451881992192815944616429292502917364173477090956902586028159996747544310635427486596220769131950680911726117693018003455225668900723067251928774910730361849278929891700265310383664471361967358646081545649807315653706135386104848750094697698257585934413797178059659858738147483217321188111727229143526358070220097528011398783009723046318373784073007792030678500261901312936511826401787011524422232532841557453774312350069974692530455881727272792018778323052411033693616480607470992124419802449229425286090736724817219827689330964040729504145936512873036599020198613145294150520761926269337234057774025400422205584062097168775563523863551011563860880527649568876989509827170186175383840160809672091855805627850213323082495570008388619158723943094671699061521412499875615985527235800046420392909458420979725012732208940604404657260059572046119296340267361612051816259286679783704141896808790304712956614818706253893292938254664022075357127799868237647624260856949221326030934561041759606178101188005000321435497136244090413282217520036562054778584937873133999137471856852221140288094082016423397756012181116429357543373987310762230156200951512713598296208642327533130263524166767909522154260303447574775713682396776077537911815803271782686547442477163224601352105592893734640019902336482676436012172269891474742497003861496320386023721139023755879814125190690659176212354878506838531353455970681978108459860931400934036402802104254798058910284714608372976975604281466741465505618142447915146944871296676922601206666136812085282899192052031665963815593824156345887443669022674866461294214812613986980637608866079916532013844252140689390958135404671502819167362314722055373624571208669477324295724744285202608532564934598543031502796548661068959791351230594100002051350552560005511296945443334847224977437914095607837499911184343095815366056285301522346535062687962850069772890423572359732710338792926187319781890061716079530611186690355755198774574228827756799112014424827244092207940745620693867961805245332874086346447124304366854360789382154304773089554462974468120967169899253921947673225961783899715691686164699810436589672717646974195154513171835293281159958645670534040206878602882058128787430992713320328027866647046986523973030642319513752268667914333170551446576266708039031996600254772408816382221263358894076546738861831588878156359477563431888931500767305825730057458015902651552048625709610730962204138828919799010316264348575432963846387040820747078036761826757293244792573157061212201827231655866649937868352846708631368808510187544901742864244631622763390386363231689490058604569994839541928880754656018147296688795233688776084397344054993164460000955966723673733625640475533853670879827199934562180765540173182211386466231722870601727302861537107022596563667194992265000124700222487559868928152853548704775801879431530309342395594432187147144603461410966456524946974783273855878119823298817004429059152269330992379263795579159083669998365840165440817538197141876854595957921200393081610361237781789530613252638277423826980879151620045726800167954928081018488480305455651542561913163222903090098530178827052868833804750200359596226370228258799936504812103318298432296271412431913113456397560210810551824922254201768292594686433402526438817574232946814794415987124439672620526081645530764437964373990969999046097245144645424814698802653197650530640394357591016653868614137870898580861267071941327915109304651321989466909028648849437124048866946621582870377590223085050464741984291034689618153157574259287243321470999600442888273502242649421872061343292776094057496591421723215096522071383746162439648613770596474024172582316642730214892956628649453166626633480408962767694549671026503451200800933458951781154224857090885075621289627308168200556058574347036871140553368050541033282873201270425585980810878039138067371046191261481699050556354793101548590055506307906128980438905309056491430579128204747138594832983605325821231429166763966025639427931739529892158309005691076422287653648504268143469130244283930550959839221606202637330832910902501749333790079979052374502550545018910110707289967974507771959412801229597063726361391622704250260042251117877782166864650106563168178225811179825842964732576850800264504075436170320793957858862029773060921809689989383258366879364147397987165675725084399228064439631275424094473857583146257654090111509586587554471783941801419293120110502263465443534349659590700154019828769166028551585806601599803014106522223352715588097293307218899956641683172902675037978833121851322888941579004616890616517164480480251105112672857325700752312444052523993647784199120415220292150930578331585593987028330797859986421397533950250545920446019986205099124217338334592611805695213929720896358576108190376531707314459149929629852525442113556534279728782054636560881033905710310648621671217124566091965270209998877455448964570794053016142732947664914965655080432463594020571425522457208989373940137790975238536601779807996322671268395948050525975815577490548736920292282873914486125383692171360304407819062562810235595008423831389455539086729164498380021589796486707157771015358658893280320036645419763350861742475626172310122475475307692430117995157228355750042942382460314159588658151653849710772320310604730685747061780705324426866822324416443163882010804152125520912165177832511794496391034829726349062288052942006361326245467763294103907868715067581050195787193425112030474132845997567171189195540507715169590977120148327434140274165646456922000630253320224567713103941451643574988249732333632757541709849205327801330847109411753886383491474822519619073479774789584294406560147006941124212501122268965228319266737549206698143913617001015646067320993084120241344888733706807408461523216612065434213524705501613141893379379908803103745024765083058334563996352487462727617305530353934882269152248571398819013332668069667145278441228838721178306484106746782194606859849089785695217857885437985341453554044029472621567995246969660406174091980017044899036395377397008641480007537346775764450285838871698484035419693542166765270580945780445163890211681332868987142941098634665960498219420714535518286804458140830687734796222777722637536926187666980051928825894726445953709028076888587660823186075584653651718152473522087015384949040410154759633962943070925438365933649961012909822099753125270824108123666025042334865397023850467563165354695256245521639055237655770378450516274130544331169819618200388715795293432337484521538244275970022391323487644283966635754923516666087577685590049044988816788881279690591568032021848590469210996964003296372928876963383675518704541686752257150794365822521382920858778527558611872608362328443688726495745336289299643862183159319284985966829537358549753835215688943303247850866949838393761678292529475401330024971575900026123809838316716771628051914012158361473676648613310872497370559279532325427594381214344830397619515268287160268583968195211059175692599868013427579336195893726345349593801677430367217227349236719322069083290418559066220144409232313098018529681862218895176382441183850087922905260328837323124625302042884057304298811038318992788556799381678931862735088174575110475082210889635543150299619459535010729758791190288729943221208472206604786788575593732477531524964437731963811974356017865734574105842396519758320886104146410365266345456328887885041466959413184051417209025351628267902167568098536619674150527208151529532258610931657305065282195099683017421717969601829522198093022059145792330911510801052374408183028523366603186438415768739695403657432274989055062732886819630002635140266651347421916383868565135694849052126833322971444658619449667774023249941846821866092775996511923822776727252871784123488129492053308817622987164350139727634779266081712089340125046322331738208543630786427081037574210158765127904765652504324440179284818689672051639746312267092559179905060576831361321832610037413866352031611536200414343585558518381757621353140549891480960173053110483658466658785496177112843466000605932956419009731105580924453955473670463981020970747199149610854028289229837184196689881636603362575948859244947004392104649005432722124168035396084498253393332797853450045336424428307380634762516169709148242282540641753820533121477178624510905625445543485779560481688372715778126347392964767552635714937499072008242672947727620614801893291931552866816109302711780931551412187844593490961266144642687204490301062047034911210741759002477709063010094542172537776417294826218875943846729343862642758292361167267689963893912383223413946542615853911692937833405641693070680939515899877610981921967625100837917483818430746869304028795358044218334078769132452566294933434891629565256380213608574864801910764334413774888514139049397274655789973968929817682790123167335338083548122397351868387398224394756220667400020216154047291272923833492192819585406103566166355089473324598543915014057494696593692298753398354198783403411381336963771387997082137960271986228343817737532011469260554515736487223821291073750956200446502620607974153125455626979289081931400710432992595232193943515419278115196195602018332342851190405192674185961353681112468318383548587073816698499671027834211736262630720201054492278577611087071301333566828814321013509552642869477729046664063049269788377563223810708957134271959415017223522753478958888250763321105902270566869842029193411795566653627398260028976211944694748302132803139385432658597832663794072118650037810055457017894148775349518095365634611028895768497765142386814233783526667601221607079056210242015606478437074731282413985202227489204130490447472219150883611684613857130693728771134231478835499655749322306666202996926758902550701638161617681610121122643311532410185648036089556168156753026324761131931485873156935855784727140575698368615307664314759305283119222099052316217492505916714716857876995970931518099570991577976240795759663711890876510503695955683525129155854130958977599298599627354961813146712139262864736075763078418519332298830791077150852521281638030165102395938436629351826853529798798356781647281439559145418028070720440465134629676426140917941373702845610725036586464797506515548899495395171089837122582335126292902165154756195686866420646621558070273762276058286022660574629276421691086936265960475590717152050355969036177071369804842037997382938164488681425451935057399138018856766111686820383887295031547416856760043246718800144642430488126256659642561977515914044542387962289077578587595480757680851896477655885762416803773644901962317354121976146129059526666051941423654303814576136859714736529201271098323123123068865901423072872858658420626702500147258695047771609390295745927572925563094555898492469440899306058573175628959007478180639129986369722071983790937442505697365797186526500225597765545880421642274939979718902862296652598088402946804256905976447411224873782813667921276847971132224914831086606544300988534912961708214991639677350658850442592483035288506687255410382285704687042967399895171731964539874818815315766086703273976130569275368794935004100230842191751677920845826380227095666859292344258507161279448388404271469474545956639727111778341882164094856970940541569540743827299133489778551493334020214531527480848956396325419260315111703105692075900752209944160214928051733149749688081102399911468973162165495847145763024475380509376991972457372155781700549966697592384306294846533088390590827255445238031093702482496676976877117020333048265716730034902452280755505724759552690606142652552150985727806637047244662785585785114197221194240111456069077757824280401150139309029167628888736410769734472861319611799625808427386246739316261872948717211671906991909974134967295891185387602951349688122149932055080689812592138696602391501101089397563433408951728389573448053995814918018828317583977567889736058717914486906571947811744284922197446576776835467677175397042496937861838336268012226636042963852413536977693112094275730528176770507732897950238430476571176328550922017542777022492813879743250127333525066537737846013344794734518224287020917101059030732736068390001497222110169602776147408330242482619548943223368356197090242198779112412512792808265083833800333706500814897173295299418308412907301603316225449864293902899407975328442196620720763621952660774495678486531849032021970507024516271219244247570822705710534247168457964025747198625572493124778860393481026465997560856633452616090448629091617686619897812045810372749634523608064189638619881743515762872180752925610730643989718800028031754559938483710184830318565865859105158966547728480320184800598478246564071619578279180635695612057030161019439650716993521601290460100004573096642258309457293295509158486013284122553808341750604427015407817084931637602487402401711704569009530677973683376934360301944193665273787831204897445396540379733861037036744908269884401196240250559710892200622513319486647223499672882623833880866551553417205396254587347718484103274243184089656667565102149544366483106646841260567791482498131238490567415263497234897895093377198921632757545734926341515632279226858969335926282356311085397479322035357350559378557755493634288347364382868614402740405767649456977255547079144625516962083487154201043870705225870403091221545773431246334126073980047450797018707261801301093357439590731326543633309275488344494325469671288417091165283384847314546673975084695759920292010803857281097780463977307080591316246216124962478562138866213356734085558224424459069824463208300838607347336289115751046659308598804070843248094842858144812983516794530797455992730289702666131920000319563602945676582951603562591701106959309491072914917797075728474268323000222075641042343634286994172733254227203951579126269058976355743339564866189318497948640748963774889739787976220091288944998181493957251507670654348003412094800960968146487747206914416152930362834798613560236077841398862417328578621957281414009124531896870755806277696371270689087138135546020783858588412979479946236543015343388915086320013950345981768640042438202926434693235760938738744206649385493381267235210832739591160908885000340321883680746866969395347389580553327273362258188491405147123889201986353450078139614552209486974728611743518786372492117185514721131905700425209444988442602626922921749133510718138112138254529322062727770200802048624106091002675141547340744353649382323198546113421024861386465917637232907060128709360062274291825792560551123301061186857635240884206859649103463734128460349788969050706123013267600761997935673530377344293042349835113396629183183624459963244331635487975611899037559201187468231362483553313615158435282544653585407173339910798688192364788352847477664577216671543817058423140141271933730554197017187647616810389719235629369167737182512685822878523465614540341317518216437322188999231926455951229029029699490311881710565822618293148607405250493915915017301601857155973144573824757451815302097435002701646353078808133485536047031629993685736352828637045917007571607801480389622480497268108063066411910437919563994402895027697359755684798727648511997840152980314610437544139193133082670766803457995316407046648011795498154331981674965925983666884751901744488195379161974182424503298617712460009690517889001962860007744697941314016287767918090429128970334819111622814226137009000606275205331220018467816896951284078595737890508202014440879040590257792948982112567523044937766131340539820336680479882909374588133083049454957315587512665738571557410227416754175285584741791838991070908375204293646194889697668744812080709086171567820899691009302490138999112113054282704003543126920112512116277820176168964002872232771295234543582896250524291207791979115699924351955209862944971572226463649325500967195230816332295572872011539956963499186241688223307613836285007976003945588764974898921744252017287611490035857451222401997776262453964116186390898678731493777538285387629562890019514266170925889573107008599665306700376493345477905332525951062659251006269833180439378472462072678576083144432813087463258152077781005937025939257620183879166544282617405652135662272570426455921440362123974130685439088886140708033920915202518202558256686878179009987620502850453949157766825914357996773493350555875819877929775688489852834634691291629713415762258246786535681253878367158706192222626602918064492135208643793127446725661923736155951942402607161698973172210924291997143035982993528055031655477421813108244163070310584269531638886217931307005518796843072155442030153124823434956197708553651702259507828906332295346354193623032596978589384984216514778629298074881661412674625324238515198834319823657965501960435081913758614542268269705144407450655857953267653636703808493032712269530778962877046434730093145178149136556037528925369523533420639496300533561727099779038858549997003428949319146565895122369428853043555089154812988201025795469180171114988824122042165166917840432496607572796189423571176001270660571717431451665569917764044265950883063553454950387101968050275804138968107237995376094804148467498762470211767962840177704487989524369034780570389664286047460619971728572888387181802266994324778913426690965968960648251677426670012743967465485824683158998193177700976478999315091454743613022245830311815375366160114673978467954002683644748331839697671823807511977981768493847143905092692102392402224489474489658527103114392264175774391297134512128375729204176111808486072461361448602545165291802266914552128662176054026692968577687564106297619453978220589733279812743670669808268383974966581133633555137609927922384349577515445620208726415490265108631136747452459090921541230276515296061966729507270594955452645882256600562242012882904721604139415808005074606512708911076239594137825473673589310431432214077108979617248650801599852078729144212743986849515878790740171987508023499483059810625505796586917963418853115964758139669396978432799996535049132665443392762287478999601397089083474984855471192804974471471226305426861868345538991119261504598999798399553370344097989176780799752385989225469158672189049621120365583994219003025004253059529688042156359344444565847224920496906131562567670887129770289041556153033977923133429453835474554517527616458232309093514841732463541375518414930806045656885722434795533517817078913484447087713428064885713667775670002672461708095987806954548618099331281253341161478078801655403695135313970780956223315695657397041277581976214804625166453003884714424708591288100160307256716474356644761494091584030293995094307954100457557029719266133971653035149272012559618344019878376375591731340964204692503573809909128150385671727097759150703191913088785642617182045844527139589526770346142943917270845970708789535930140867828807320560739814541487024789935914400304701720351560917066638796096575544873531191393578800901700060774932635266393822718064408971315935881999028389639916877366706180604975305483749684503777102443873303940595807470538005205858369200821095043450108304077885474219576069268402001858489182837866062313653563802300976085532264680245433092369939064025038126985026265972371779473549380421292161579865300988892281125875838407994718736866549543157802785980634815276463947632916313640672911503810836038076896118362881933995817499225133597576960191960631005120525064692358269274268711834820864775562745520851053044654256948338638474954764012139719031342354394673515290022875933097665639244175427799724454704159714014157413082158900472398448742044579392674723184054036455957517207515079251485852597313008104638292044139314690508059066417686086894199316476273298011758141959621904109004657628431399148403718385838580935310831129669839805225249017099527767970166403944337337298792153322498984969514350811624013009764437015232466963366158036815600796385659415502096575118828628922778500696920605339924087587539568818848388897306911071210117944911788746968323482347436201291646005730080225656925197940927521273143006747169740108479287072124377578567561462162243813683624199608678400624030137692268475393575622548471032906907827241928523947804145515881511080594660877570589756944507231159193801204232319032529122411145785634638507135500112643119789964353627176272150226423097740991261624279160385940894557196908929100205814590830869968119390841908663323539315747306787195101556749070277357153181147610904248818943494313401278041814019528202896640287203140640719897071429779279705039603844847318397741373529676119054383759540475145243213232619935518645401178293225447873090923014274971807239116579095934897501211617687275704756097880816326902764671075786078546623314522555294211858503675968158240062446391527489046320394378832346582880529751349497780072750269131164910463451152592360601087522891219950600227082887437050846321716804662605716275145149115160823970236794087195904806156984851184814285748226193078172616356625966851770247894043400608366219962294722081758715962685767621102262487294502374038965188384187291526205996722198798886050119197725799898044709202429837976519831174690893175114589848974318109987054202881871970242091889367958864206846657693571805192438383662524241399036341542492927248625003580228109825137939852375422875336713627814647607959187360427130102753282481408482089399993892712076317634725956129164280425123818305306462766596122076842382938541328618386074450463835255224173587685912263221190146225637236890705632271762774198130979151764877634620761075377973892628618333639612429364330445051292935093340321450110234264190184039087287694378706839543402401809191538847706522910871938439517283866357297026634293469098939031590020801051054380915945849116954918848505909901048681548689175739063168697385320462479209050527234874286158815365155368832356250729344207585729142741563610877208236762983952942867493990248394339372947137329973202228891945165211574424210580622461054834170358808973364346352389007519504226757870186612042148959964568812220111644904891873607665320687668592831160477729331457735105739299169803636352854348175120086424879462975556806259647498442950860713342813602019594359629301210997951921280365717218565134545792519631723689382774251949740629151571475768063168385426555889587863589138861212729461325704507520666666782001397875608466697298737232348822867305386198490249354031743293858447627562879310707631811868289055638830728818846222419941562275223896386468893173535984604586222034657057317743080289340371513852370154225085374825921228830756381427507088231808713257052993370018937069866749264298331449627548914832839626005210983243874286013067157169051376098054028376920426779071126379998105993226424821325885318114276080725198992985682945345832710930747168317752713482157214612799919509704358757558884336944079906400487711003932326864269651082693429455559816845078943808664386801992097563452478277771122243983152685865805414928740971278303706568537803258546759109332070275134267534515448465902775325106415884391198535146122903784197165653728022758014032105814456152723602978214284401196984378291376969746317217255384889544632907927981296683820544700466985439041522656432741530120261723676074608386795547704851498903393636454257970087676503428227073283665775299365165267666571263697358986230693310516222798502995356388397017870053945375632751794387618845280997670800281282795636619026015472209572484356462208742947619363313232206764012787678722961600142137622041083823790895761527195447377889474617838796545587086689955151468692552956411477744826082063255857079595111133495242628417499938850030525524139566142139503113692677977595441497417873646090013132747269849020713369369027355556337475238541539012222938017763927709894512268288111860898996182939314775363428468337911182441230408700043535679883697649889035545901434742927335956347744124758362133257879055293745961044630214591906977328570872711260556548667199616457267134657235252242563115348650985998141694289369772304802362575969379675268649432527624955723531670882220815372362478219249160434880440952420832348392043798150197839949213900081184721487888205477481356118064864708894780305096845370752794099762488170019036873135798708217123856287254671923419868631478389929813894398051549994943123425130380399116148201935803977618797694088129783158471247821955160858446847300478515404253230795183902878577000435349251884874135545381859705756572589728360727616242785370878655699034823004611515366706262201202152890298396363159284749539231316756666460866959391257737437476901181447333546022032800422011584376003186516717388544498609806440179339224783371638708144794838948713763547716455678902787672101011059274482938647430755710863349517588653166598234554967277256701619789986080672758334537853341838791887440736602940370356070895526059721628200851704251086598031192279660404008155063942616799829872970427672447006419964017038771440021004177400853001170731991653116695671773743274521102533530843462435734415944786411995985821069507896452779777014926032781751664269132287961289041274387657312605290571681922962041242020899436120478615734567876661594372723344659027880517909533465263828551956527020170596444223170583867965895726835860392403436337786842087909684606402985420497860387969077563934366720408509942930278415369399862406121046278958967141114811301911792173467956135353277460901951609694041135436008916420631677415876505146306742400701250785677263833485215109418185471249220143243036125527090369544868570243705192013990916970058293142135257469169223151128752176118034859677502481180369215675788040690238404504302414475864334638341878632100799321479741813278585514092503163890559104310990693483046053585964999730935450089078477228790424814079053700470243416986328499779313675672920341337235712559426196183304780159240810622240552091573920687993973116170097200694807013986457631219788391388301885377478766713906598309648736366289922223653482138007985040611127065536563856931315488749637262797004494713557291407779577272720352624992827946974307954133170052821740788951213527899551225421447120858876325632463211383575335508229898356634625522698241515750402614541466632465979530515616709009139327972508839284012989625952877412924331578070832250388986978605281169248576687228892766253669270701414375541534851651857553896196850330032092719106453083233612353935280843219912157604578366786146499896541108220053921906020175717968662553194160617711393338258586028110149874581320072040946637217133896376124129152872976871945742967949500782814719557565849617683520813547286178309123183430152099572618000484396267883582963379891254039600407896117642732196394417498486247848932569343418176951581278683361546706990479043421599271462355790642400185876965821793607390105093209705138371562522881032727482413673891447482793177457829311279901108585337552579017694475643427482016910663085215515503810657980354295129390104274702807658679685346924479167211137466632685505218908455771303110370806432180099422801846741916554964841317812902759381847130484574426777659778052079507911152224339699959579458752431039251663691848139491332386941000062798579950304292138940142373673457535016855721031549929179398760668134242210571092729096348600776167126549070669098798693544633154232422918788114478705412590413867981513205432026943210114623990507972616203389253389747836967168126028729521621721601388133533942670888982679898137937298061774389081573185223287530001106408460486748284104441449532910138758310924217891642141420165506353046105777688280112304006893347475821108985306686880160444480525535335996795976482249144665645438252732047431716235807997946817634209800505442761962423979538948432498095109247983898377626147031303437719856429496852007167933250625589232501591447384928710277828609772038793493855899616485731794396611942457193416178862252649291266932463872419046301747530517624568306300612830807202207151924849357692135404271516156649803345914831728537140148626648574179047597182346974823354626576216812263072480629679901221273929987221953758793263452391948686723588310979275226544729620791609455708057127019679525019928785210429622521161720244115010534825574061632124241594273634411076063011009777385513578779279623989263542091970852485033537787587303905060556642183520070997323391060500509721016511490888269175239212731782133667057004385543714113193980607820924514384632723951748272944734590173867594103144751578860696632862788022493007266439469628414364205870603145400582364445536458775669655337714621998819543339692206690392915768095822943949557690670465844532358175112532965425572189962216407391005015611796464588173392428753940106739552339445403929090291934066374372569040848524919858229190706899671019201013983809600193702936077019207035765370118683076898959459278426481902029806673243761194305959531068167509834015661427910585936030203429449378134092323573891524433426227203832282027074315468719740093483202975773665523136523903226648836010133640451307621791910812352868610845927155043633708256426326106761498347676428981432664041390911650999174667050793099306904008662730603482784032355460394099340411047611431662535037655127540725141507353682439488210504213409094210549146740795025946026742770315500270212089740505703282585491279926943948951044008373532458111410987761908663385986260133798268401058444740079060908251679239782317601784970617871873910696308650037655721525906766089488680542539085718638714126946397187614324127195422042733830037200876603404362994578039868017090132553946839572368313951698518103025774683938546403649001449067096877911200800741822972082341375533746469863956354006926966867354979945740615987584324426078782152286025388978675681729459267113943736808066208808415897920594086041279979552616923066123552967300577726003767158876485007510409645495185963596707028877954691850940251829924465435316156785291739697450249341434070845897027373558409801674218700585202022107602065728499258751869189328916193116110624486753951463634947290825826392910251695298872907210971473365592098130357758658339070015607862171180555487383526937740139229299913249083790953842459845909471509175510827981468317141166682072075192378101329358776317868751051670965532113697217574190981670356143848459839102450576447195939452378418590515395151628757654319764881538315770224011883015674209449277949796400508995525062942406274250803626041800677867827683242844671281686930341290203970367365865925804414573388161098879084893412502435198158562857809240737504443627725252874743801791726593972425684152028651813751570181865882825505528825688317542242180538977669763942476256790640963413025900899427976157795939978033900296379312446267984500158802266766910144239454621141310651898816421516591770605281616282192172966075372276555143160284972120189773236652477832735687954561150186273242897049426886855869642274941825188928111837407467646206020602270327123425057793282201174052886845229446261742885272630663899886052500563904056162560309202473499008075442068204221308934510799809852833707399892163208130904689093574643777383525636445537207501767148361603500113859724965831320056281967121556893472853613835771813978673046216801954886135713474593632696284949502511334178173860717734735241756498039305605114731729483183526765417700314249621125790823703180172372134749239065707416087640605962706824267203739456255500456318626205782811897144551905059524442049660328420478449073439265928881041822374192332452225364448598396537617284210601138260055295692319577780594456628302810313983444374833614635941994876786265371580159437010484811766612016070617765644706230585457778407209721103261528884569986956031274651352205506447276384439331340688057957138573035022739288482533961423083018806875182049440499547544563573128284088202904005601604736930168781939590485600572992172544294499989511681189115776588060189334985541408946023514177451517778723538966845955069624008178945773666556761993712853959483105298106229112022457089756072007656550516127597443918043501419699879058803472943002452575944290604223128983713305500496044123649775060838794197967850496839220417717825991508510515170858806450096972826007715024220100431930960260363311140188192415518324346238045532702152602590717717036219082789274889533770147599918674143900788871667891470215869447054960755130197263206776829053032543730467971012213759670150889842039915258435766687860888645103866887411033172093192299727630478971913791072832020160318535668342276170989089825298530541354276477621961352766652773804928167878346478530148669564939599613782095603226283649331183532567451627691942157801312031312129161379196410347489369184664446634394847681616233627450899763255463490353381546184445768913239646178684917735786777072033246296286443021333121561542188209016661873184156626989813128238062821657616373564460322490178726168633160167486100108070928882816294969674548873551831987270122422722265043212479512384139908945622850537997489640815275553957426852860390437430371948611397213392148420201955133393905318515481927523139431726155250512057468252799055416588233582896580685519613351978218522603148406772592542665702815386925406828162150152826389874739356085523847502411007398227061039961552244723196550826630802333999417657760555997725044617463231318810672524194034818645271528614426562582026610646634702652064729629690122633950947543078477279532837678175186656460831491815186279627845686482644951986841701311464337096712472589118059766196229821848211740228555844282275849566826368874560886703134123595007141359775322749957999169541832916769847966870643279092297113943090288069131073365749064562629973932169661276415117630634182344783936069871066149198998811047198983681837737216103566586288094609616095810838813189939883171848857055776458364328290475128293621365444570913906036029095595228471663750585403244399839513023712980182618061880485689631032131803735341988232069115976123754077564311020954221519849277190436762517427026772236681056709707525170298049230099330864656323164346345280954608930265961097656801179729892981114413883472145808162205410266489907964522775965466886851945399258628167557247574320887244059172684463578578685864533368707472756746900779736175192042574473504083436504773586587293096564999022978071123130153670416545412672505955475876138712937423370144051958532586041378566962675793239803939044858177881735485005137432179973245572608996740275389309382965054845616232078773521461673232373077667870371551531757827325612298352397057949772619946057851552047659401568845524448555640129463718125916973797515489149739959476951985429564291354896674140080235903285954052086249100695806910017922580836585922461589476639047194692342504991810098761509806001729253518085108053767410192794610098391991202195545818564154563059581126574039221751040637464233226730768490045577137441661637218695789193756030625876239934575412654332789330220176271765938808217059666620534409247109172770755262312507621828431994858186696590339758518466587115187765849391476258148115553495155063869628855566033315995076073867493726790193198971176672889592237440506336350347929973202620390692219432544949773534322594471518339381357643425940082960702581243562186410770864194785345094735125677209893250338890516868998468549857654841438812135478090814470194995617397069672069620457704781651620121022765230641690447227826601246145939223389236236308626112287914733160047062992824866858407356169189853676350904462629789432434454545572538645760863516368505674560179233675278424342430483176058174962232540076224495689710228182527932708562899557369577481309547237207554247089377905956470719055462793262176385910269792342117768164876182812243604116124764555270032223633441772392967485102155510122803641309814400094581731512489567105374777941220846610201617357345189703052103632861061480213669019193770552718979541494120830596645877152919020653180996094152592182176009617117226644950773030495382464280238096405612306740000367449044037196555724303455872997939548634402242989171347309972617267825416924138177501243214608434559906688860030502286281169355011226197808597270979645406217019346171490695721676257541647470374260112701048252211575298220032872082129630271698255519371803890073315272789503332891659375731090552845747446907663940639731512765830612220963945922779448443436654503658556100059973215254585755332954930781622444481243772435849690879991317028044248777945323536516511974189116600883263488924981553252674779866318132632039518997719211127791649568966516213063591285323463361215162783287499949043006929581030062192430175869629147311476083540243879599393706507361182620109254968478804508501293866360986162467315022764163229334488113714225710094415441105532962317112001438148177513168342690943459997112577177183404656210105660772142481436386128327118938422029193853958655116579918801813236946806789337906356346871458567260576109744515734196119170680758937422108317306137846878505181110708877577192746155777846665024325240284653998671397322939192536909021511857685144071266309844466804990637051830824964985838258946745918953754349601541767246707681189680433526923859432459382601460794921141058408697037604015102830966538527214537047501155038493195521631274670803235785315395565074569421599368458690795397604117304734190773394129319386870167670334954759537549833291064623402897101420006092367125193655522227123400216549667654662711628925047335172655910297914192956530869294235174132232881138596923806768729692707591465814874491697238436308658409734749274140647482482442401524704915534356771172405290378383829948674457941128448838583735923609037896996986383741391065966836157826978849778426419321543382510965231892148355615234656869221433147748442378008696787694762104492769032123992821942244040692890759349828021154572491657750723375878730116535685658424508695358843400068837711639883539435588177399916878796082061183508114441949817406404095975830740427227189950138537484813682009451757367852424209269160932985036952159260154453619348113662095898184527715542161778409571496112348719020225122376205501766914304223853130842595572833220049664618567517322492750146006235534907296571411323642235944393791242621864125265937758336873938473403506021643211124046315188789607855997631160468029428880070174395645384892512210522881711608121314969441757986802314124528739790407276040486961337624071778556284493891472621545161424351201222076238193533897433131578520678417064471287314276898172823162094201583271970737952981545064469285057883856849621285252198310203504648994949561718197535929289698843813973217611676856991217266300670229607383880249423430462090935228519598730385131961864957852549636087604202962121982856939990965255074570960620883247571691393729354701083672055242819112445356096236124126845174344641977624326509918460162580222049493637977102322774752116935246761663237646131011449746481261226652742693729048434453754838515221748995070349641059870880944214057226415015604230908228807248941820745450370516459190395990900947683988122590062059569530654488348815506683504639427784209346199219950604704585343333161072745442401769500457381985970622020114302601460461738650088881244933481070694049141758750812174831808609443263074034082011919436619535413573361950895735703924980856781746524326137058054520613488242779059322548916019545757003422403418441782972610792882645299235900432483785190196210212154227918638200065807789056088730565822360804653058714424476691036277845059531093138255428419751738895853866803293644969403334471578722122124539269080091852212646042820333921584005045608290211196551014168557905490141852372879542453347199297960392817738401122932075771246238366085277984699594822572507193057449590763448441961253526346737062125131188015936162784051492124231222639294001507628294924291996171218297775503805352648992939832204279473042321568798115620640126410117155642433713183491714297003382175410735347402114135381324771847808026276620341532780980034130238068961432930658208947474873021711823929125890008450537723253880838060058948761426648939240533711063759570910659119558600124541818988444493571831248521673650099363592469041118828222722502985933170622329454211792663915395364075482810637282493853173462334919500134427804418299380882261439438635475014954097391013347866841987126789893040882876967534082208484101963586246980912791738837299527845290905905727356542675753440995044748322295746116658996927371162858994851411963362444212993773412828207792921083600569240339402129401636688964996583639753350898239925912651250672490887981463351861700738730533315614796058554535040463811138845717782175483402057730703768096594160106728343197324389027389982225805044804390776848450882749114782284656726812013775691823714036912409261262043559102964571095728856982948692232976125002216317136706956627911271049494032294246598165813015337334769967705098442663069945505540637376917079031651732539276873642821756159497226234249613763217968863265555404502529521485104169696113817000859663802035468952225122873190638075102307905708877683122481589245117170915830585815600619044714537439457192236217788839652312739181298862129618345419997896569374288814294649009703586145341418447864055444361524915598618930560716807888961643603296298751719724807452489574348746159952661021323606625677880854410536821317752378209854067298224434469860193985357991101276873692099413428632161819985967279074558840012156103930875766699301610447097348875854740365193093585473971222890825748337872615804353676763044942541957967775495559040986457429533902761397778970449628490362778192260070638866971661250993059056181791786396702437249999370548686108621357691008683712569174328655562786630172361461157040589994284011508655803793558895114760946484050910602459043724822022419635090471843470127441060695997594365289175037691867473432988013508135860569513898109944422442527083120314377900768139638878567509107849991134617579196330106693535257040396705585679022306936762105163439729888825470826324827664249576134899438611298709491952867665421473605460094092545594914015678163128273051811464351145745064090849274759057899198461789933210385870286724168036635372248895571393192007923840774597837980169171777067160936855286300312939517769997330556355709097319684455297972665658242000789766248327311550543272045152107169208167850033176909588593893397083449591805160876705078368874522890673203967141646640011635171099454712048019065472252994931114362874612507418786327318247094319598080453136998543852932554488196763383257481053155441639426097101729005493572576934388348731556621264369685896384630066095262274962281616915729263956525024616862713037982918545395564955143679351287040200258581513125254384198362214461910493802919881643686561754564548689593543354002504556325407876284227615758122326286615178181660938702267051121020219499629191213993649990267648329511360061853271535636736338239511700053004815213772317381876231440483321295621993560507251446872236111325636621772491078478745800347313145437021541990098802041370272946287641704053136835390903564529774049591522381670357712926709557134949861496831091568507026955969233485147528724288366287248139592898169014607389776311940273586622777068527116475107576548632475135089027018492627533310201282793575582104275046834094372009313769010133396166076983479973545953373328646597392916217919417866230215497847694601843210177937053978589086231053160337371508825622604632273070042317368918970925068710053826863387951400817092390175459095745626358138384530669292143791310417467591439067844161850685673595112219296901230003443041002051863955087397014244771702023995440303401106860231278816764385354510874019448112232018974551857182813252265808626003494696844207421114973863927059426249802360444964080179439921423491169600070441048764537080395042614596123134737439314206502262001004937853003377618564780933425592482363947597520098741263113439489790497098058847407945323535277887255891853403897149113031334920218342581522282829561787188866628007126696298591769969470042252007679842080953879576129937720742209146395182878360518846441333339193051570403673140691944509877441514585736809940372652470445045304344066314180724546966248158713957648558930525486301611887163325926998334771080079875994865309272826188055854866390907921166638057057259343395083400195992892523470856768227089162141003915315003418466656041179252350310720667388862407777224351551534897710882899106082133199013827243790297507883361684421062383011541003537169358599471008298790302582366652088520383571015801832558965537093632887521758837654742972274865680490971065064789975899877773477216839505605407091224403098147762203613342293879661083460724707272629381602937400651667595541957533428056152689231568422812735182081845935083125399975906495558486221873289252158707064309946907618033445287878528857921803045427667617574876138910116433538221663978471424576810623768447208574133030976927178206949809880185465773531042675837460479081230182140820628061687540546234666813712467352611154441639473704120844924421103274893293253365973155667610972609873769508438256857132031905742411953288810172951341301243765682218220893971688729314691931270782301125165889573088326212714091622426632771055224266462618631786049351768206418844503968653415389973542369765848107419720389896171327811760243136377333617504749976588374552034543553872904890268268158101359434495328514995691524482099662286682190346530348235294043431628331831418307959258551109328764135662388390104376603820408138785230162096133022297468901817000481363410555412778742022307405574179846727549292015416359441711848306027311268699023016767949196131258747103685227547780002020231129116680540952439988023075327116581368571795222810753494855733088764340966238850100895064977831535174727307065289702326980292600712936529207737744291374655479871386245900303875302444944838049468345795340605158136084525800174019852587396356018831761054375429109378650305315219959728122762309434348686846276289109468455345129032041031627921473700257131654648599747320164356925313047160391814691307576527311720340098081539555008901970768743446685651744045479483412806189248629797938760418880063695251372442854939301748011559216123838121454560774110317315224588423025757051862351819073989395271503717540253667386574716919401591398562248643400084587061338310211149394465433087704251767562961290358365087869101176106997687076330053660091933438823095583712385013455568957729787774811414635842491004478039896917560918706187548316429744318969748728677842299077064859364253068094476086391702018459733584436946353509924887011951599514344684904649894452346696093962137277473566035060186672591922762752361532206410249051553967847542868261943358836474913550503814772324683748363541937110459372903521918021931924833168926998487056103836213630940782306665239633104851601083618061451772030381924439658608582073027178411378049614975658950396950365231021864415754648544989868338731270708967227259918393152891873629132461080369542024567645942047481397646686281782948983689556516898511468304299447064481043126453071960752541126941781800418198044063481185005303478071438379148342456657000563824663440133966826281251567870017118625470830845608375004998079918411498675610161074532697619158657559955691970063667906747376751852009868227202485388235985985992752929451250850978480334435240525857608093579572565616546350402007186092109120129896171896064651121896860371688806506168800237161276738668467896811001180951945838124599606166222036557939548399980109601961007912357028470333654165296131453174473685039557646813785836178635714637990897615025544185364394722199689453861039769007935820528072812802459435829942704188500346431161524825085855621365443274251556112388212419691680578805268211193058635664345087198003791192914756142333614324283165337710896648640437110465582190606788837767322176201249344344328251293819167724340633769336240973516105285013561120879897654479336948585377540841227425201595179296513838048407205478515480599282764741354992726491918219344492217905480678933468012908412109993122713348360696309326831504336103310500862857667621853392271116946677455911657839172576282119576701569794547455076243618307300646898292012330331491898070460695009285499989742845925491256274912675472387420246890753095824282237762627272268411521910609329047835519818700218177860545275508847765167277906280317164098978927086435343701386982922423738706904280223559966806677194446713149813757132174692279918451896124227992964298975633355802598010425144929831113458041201262373769593248039255038555734833626275222714320554025585042507884170535656691544491792748801723524422506149906589836434238592281130384516660314457816698546698331372170978849262274932672300418952909325469564681679631954065740448800660550755281571544366209501763044497400411791459685574007520969311496056145809304398853666903706186615297190202490679697737274302477495819579829322936030222538210294838877154238774581988841889282870538702223908622060927019214020163837564891676514964763542493077132327581428344486595028939490746567713522237229658138463087026608482417684418750129506454548392512921586376608854982406291961551284908177427202896026196588305734270827488773139321918973704401531927368919957138595251633131405214606179782648808808999737523272552346238155172956226541077472707218330734256671058457152513100604092291771638655247200824085089314217967816173029111871306522131519608336264725536729212113666046503607633589614359430046787355077407462226366668253730070564770909364548720758492931859487777437691235445751919135094329126250967742991372165487013563849375976594714774226886787488732601022049921741290876677609387440957087270203729490095299741774311361873133287374398761743571926191354643546682620430984733547381748427422756134307086085533213889296088029285511852951473685984059363380508519878477554359659390543856516294380171249509877782195144859638972154157748147005305328884427511279348022532843909968170577022616874337053929304167920346145723842191196899385924221604714232642815884188227995795400287108916017730020911649474229737029213779121786412684005402169562344717043582824200357052462377294474834674906029144716888388042541196984289090313873382897365965398463798801144372758617709032725238157355568912720410555914880974821334090378103775509149602172060197744694074109279014119043593259997117402997954000108473957991966630373620402945995039416495651721140861105418514524683316901859517633506848002569416811407333276308453249869296245799015319042374211230443478856217726059126445464551237304227443758270152726880653515120670780227058014784401990892719504845511665988014915972519318409263734137915957415198483266744913177438865162925402120636736291802595327841342724895023876203763534298332882235239699467006064693483397982512346037178323948351083854543891821488518306167545309316008603511041082127561886653077549390374630995342153927919047696080924942502650626326142467000111677685864639984086510783419124095846343092718778477655299901966536741184335068087884541143418488476866273998229792102631207999950193630177087093556360935714629701035967836749802465183035454073851677472995240221737249164339890144047778659721162803282991814968146377260895465370143228573275200841402441970378651532421475194697439534329397643340979123362415758098071390037991176032606030750111554771431152676534034039340292327650213164331139529451799692528751525275677808440080346995338130554523133913588632082072431392221697929129234479113442647630978792903783791781723682806741568393701397307630327718378302475154531886044475340772475968785887135179744815909097667473964006811085400309166779886257578824552151426184485134104024522923717466138614117427276208951993674101651310862391252830857643888625552919592562579653917930096409980929490975894477471426396560153157212575708615485708024664240240698318703930831682171404203900487729429866942347020297418001665671952807689448462696472600322229454932170101386006055518912371349442814301691309304447753804167285758730714430052482123411206877343568485775331732123700707916821227838400366061110757764206501636599306584528029050934322514939829803090029372698335261799465434372989583010099294747092338208892629623584129466819328109935190490520668535651788817449962682733042428477712884559727337031178076205027746981991859084260052189178247841449226416795570226104087785131078212985128784925186776732326532287959730656543192223780929807005296224441257157797928789767459039643757139627278623814162584654344950458309826380271885466284212184920489060542684001971773308423703393101502850321554479193772824376810827153166558120200502474046424360234740064231683724376652863571780410918812892918884029133753826548836804513831433075565606588296618864566649858322049760703570636997710898802267226941429985965444215590800023181866810747397206037583776744733665131108842598435527045248129227907660139150054203639363586314899524237614345072878390223428036809660196231174407868865547296534882359431930345316328199821039481709417586735680121920368990914559104503785293945790954617997472292306640859107445853172410295353352872248400845120429501846563777720510793458682799428245579122305696658869912728941841311586012742855912837166383675614199628168167217695697534643697008193622820620045323617111811681202710483713321988837930853613608582227564234209182569016837628341760359682964270718819347346464275896695146323817369834776128666457731979851055283674996412859829041339366563533539547775456439602710061681152484184446713656412365680675198308743911122911261941269252875601624954904482662834234183915428967532485218991800572488941741131188290484730323724832879573476428931111442100079323140239936264989057360456363672243675404051084095634104145993792533238364076728036649447095258099605791715964427734124239866120996492152052813829692974609513582773723750985028091915793593214863304331308656575258373163906407197307777308488071752649751119857118732448898825173059177851917797784664374570819739142208621655278971726884620568872859633759946913745260894551914463243046398409348053884586434914385076125647781275689587816749288793906496930580442898169761670948899961068710844435400825476865109330782731270278431514741189448388104824331402128074500736188039048098596406359172449899035097999850830917424228042788947149366978072017176904281483642287824619694735308585739563547574040304668796588653629975595181655446450608060696101299834879862977162063442146192322874179081324522796728847501967982317653874356292244170839641446282597633757623022920010518112200481841005742593172477050959677031967216664356097342856914994423359897396248403553305014928462956334022632157358867617870714295279611681134210624734333131962958083080178627478931463804879674518729291022012969661902766971568308047551362449851472588437995791181136820012454640415770601060912340889898118625438503886811305353105288373665466474363652073279062643108604340537171443802143989712341674418910357612356305950298194438596084815854497961852014346456326156463450127481190416927109519681670216251334424837840890825136033042445321382183264013362597850134085489536841105899044352462063739740360975333244549528793450915606283633642137652909305863413127052248366007771906898953778578150295857564850660011208627872186492008026506605149355051874262083280928346389368763436973138925126568182815798018375031148451287601619103658713297689962178438920774565799481096755656536010262188768743167790810544524539045300045405406495511342543541250172120782129339510920542230655555071272750879610452709848995812112270124779623927481786524215184836295331901679748075741278304323029644561569759492207065998181380134504167087943461387444517334982416905564984692049781077438966722218989073692764273661505872703261633367151937705835799736911693308104401937400726304584530574820510237849617068584587171930761087130320416486037580236972629580056404130795987206655656549479948149273512860709253331840530354697968159769683694349357998912256802576894762192208361143868891471483399537843354424138629203305832845786055721403834322103056564458154024616601649653248543271544013870053498899451248911965947951924229197411872921225620826347009270257277328047208998858222944376655982581336790090841541197379394533673599284402871384814388732387704699325138206031481783209960684775756639400722005629742756173520769020228219032451811240760451086892620676882187548026853778335211706717485687383884447135963215152533724890386506432614138854819767365601848916724794333205094680430533684338246184432548535566275223127190196556370197832871149332339138981495985751734317833298242560259315668506876623867131512812650873151928217524442121628953525487966944781661708551057135359509036505217624988875030170476181236448920130836459068375660394053558036285755544942150810798325203711498655217105781324597213407187191759603189419648745470950367098896675715792520348860522269494950207196382686832370997468388451079739095667523720043180086296995238524754567155895172049619926702806954944051419257299008974184486777913128214576300748418582793481605840194011667794091797297869622691051865438944731097990915207403615479724639230262926945780164851932295492856186253462978169953397791306018164314714625610913944200887835784122090432888284390543010941293483038653742949426317832863243695379520985710606123801368458469348835383510794578737765572454686918805977008051443941966664042214021076901380292277548199044678820538797046033771210703208532345148415875714691683640281406385807687035964331524529639916561157693943626464719956244309415064380594382353663583022186618560265367927574984217026662326304120332547554505346748666352868240794912019971386698493925245687076342887844568316232519426133963226901933491772237360547200172215453635823723411388455355702794951135317748270063645481888064258588886018520289665875627929322728824732998814674821091432516203386347318947443964532899777368521788047515284611327430066029501212918796272866848936592001438713020434872769066256744567440788954200144291646498028484023593258131835304139740967813031247240967028064262971114705510628694417992279698177916418476455018282611940867556041479837933979031016979074222807520205079844058267552290042919066176451845546132275624130225685439155853033478239687562390907643558032234732733514905998102621780178484265145186268361030162344703370888397525160646090480869588414273728480010767990060823325673970988030486430768647459882819868013514658665188044233128571534641622549624132090790026150591630510700878585985242384019389499553750510424576720560197437259241234233393872989547484711761078008895104972549800427301744317054936121952915222632135618075850562069712501343760341287681114474522261756500308440022901375396485123895479250351593941791977535852151441065786820691994467856382712447809828948275131049956511012621261496986456786721165535037718615270395143309881828308593811277506365808315187112280415834714207182029994728805925119891926631213542892703795623327424936871373415257037800564033343854560438704559519829914267357838499817656848834101617812894705482389914164424412953089976699162217674130571883015650132235538527438964000453794017071712829174403801132695801813689208904771022509869919621353811033576033348314214362441915993479378430623292370344438876233921423720028550018087522660776738034536497363580702021608729390310939520773825099280007348159517294734835937890042583458007214200299848419383964138474242732121686704213119685082557786234375959606486288843772987098618780082329901264457174460407221466592502337306161060688706579243168442222775329352332138652995593271961176314293327516295306335252555075008436228548417854157009950849024636348558246802955711447860617333477427784959222747416706394067671398495641661796928825485116985897432687857678470159311046946717865427453129698569222123645994812647430735947961074324430480612340881013675881467996538532603571082900954417076194484082106238264699741712136648771976584868197358150885635274026073079855182846893158412849157045664252155895844727660764681543115265384532513095927684965291313803301848219526026197464611702852004253398548495224273080629791531804035443328411149145651999281443412400230496190115439820326163768937607370133731257667063741190051759265240710099826055233661100259811442013403307281754104623579838727288754712106209405195123107437763612144408350428817649511841969536845730211857128479333510835325848675144900565528969612657431698209634363453751432769605377205855283198203837027281408423698454131142537282248897349928099233699545943695977816109339123081692983157702826128558048674816995661219566183946890071526987191516839375645789307597554415987384213903364438562103132385520034127823183106187757275138695496514574520809719961646290343486601589350654064021456064738915728038505792742742198390976501599865927463303118376580625702368025053457060711216289987364639567192062983923260132773553263445430212264556631014692826509981004654375769543985626543716983362696296022787835652857007550783554476454190141173101374516729353821867993215803800968950939776888324861381736234869321679770545822201431755506311165350835370490138189640928514626399190263250817964069413736252492557891335902955517876015700732067138132956138456367063133007096022053884780615625555317423424848012042812998311524950308297367476744278867033779562240844336490404321573635011296267574564294376214068542969025159465077832486605463132438494106993148054530150273882374678825306699054821910479653568864551455686842764220301421711384203338885490457430611956096421120965796086990958923661249185142272343327655106739850895698363756516090566496022730838223683703351849021243241978212393408477929989676675043307084355806007823206621710629279399059437469932804683453668030602125300238474849064493897767576890462080848516147445184502639971237434339119423882117673011647888646757566273252263418231327886204813329893436651837906806886079081789784929869841391833251898394725853446114666900593404890515778583682553229806519191536087792379611069803518947382311749301849853065448477097546465303989957544010771935008533512205327970723984596836723225445755942146082904685393072527191773196575476572473512325637095048339042327246825816271665093790274760023324587192954970897628420831749589084627643280574163895516346215357372611036335280466546432686350738346551453891196840244572687095977601579090616047743895082219712191189284009656793857502970213871453993692646513676739768920174594208791843436661203395811982151143163015180017166655873507733358013816932851610051402934361287903865278577503313847003557062745979025241717044618662160141282837775991453789992146714331170636251733002439080785458400233517999946758049434903656480654211705362153181044497345588283681097290815942348789441747156036267813952174687980299395113640033884457369743519636349521600108615794172484858713026529281011970670264148333301054643614179182345381459995753459393016941697734465888906840933932770859380789264348640983403715301438666361936341795884248229355785935614627252709469296260864123204374790075416230262854474581159018948401277481331942190157377466802200284977533283455519237085936333992690961257626130489987592447589462348779527090317880275274761506204861338648818734703674534497323291384911134133433702969982681945739323889024269646290873937043790775013975025036843170042467710821684045140696683388616508859701486504658245917198367944720705929097051692664801592574130682150638207627829289224495749266022258308863175420960512019837063124395622460100838138393225220965371430886481526416003606861418476142067771373322454653497527821062160042985805733247159720332165367188575001537361593218120181466269774925389442853049215261864927877052495521927003178301297125989156781952711654761283665873122099030002753052046232239603863415627224388733895572374978929467024674337826452744565815110454994815028197113691477269993500105669176378785129591844212998518991028945931133491761783416359503453304653280953728182109389979741528340025144619198006108559120290992328768872616985223799203174687843008220062306380087242756839909886644810293056144291491187767066597106306609083693137412881236578031632981858580189694333626586438029526674776425260627495392146241681154007441961094330526238897961991386440446138041895782727273452400111676897871048711779354557810745019530281871806246823426260224897656357246630574769413892512167044567594303807138180475529698435409316750732975860400843670991473345344479706906172829855374923922498622765240772754395132871959528351675149243490619137385844729586432157034264687255960341114037235182451904019203415764200868485126640812177624649876512083129991248193156281189128746248857851369936912267313821152474865433514501644806434612081254932472125674384015234550948303352072465381185244267715828057098040913433627739182203972387236371796516753575302145946639221230532721946112089914811672359995681458117862707163138204425222452298040348930028861176107381967949432320901828834699231884216532125139456599049793809284627591517069764158979423026455727789936626957452432543112134812257262411197986826610928620920073852532946509859740138304470172263932876063957684163994022231082755592615633739435600031790385180851252004360268373786382058109579360538326473153038223211074261469639455283703264959367923365623715216123296833458886791668920810059767340741752726018903354348471478121390910906970320806640436764938814416369411951800874832173618191105671371161822044938742165504538620719782090555749437626938621213232342785602379059101956146332640028594625632215017438315258040950902224020966436881634278479551115271460513780030460137587408146786876180482425829981748421487347863661105292460247104997344434167858791947703169978976308831116403944310242989175771301083865497617688653598035224098677647312550097013724114534955961479267442337811568492565718265049311322178088957738152773109596442695533059497185125144324555524322514137407343870385687991043056960549618047766542911169359047717420136903702318083141943652418360908580565160269543442424706662573677172800038843777528680953218879921670681188690590537125271210018335149708596323564755865227286529161058066459468710119096893708195008431182632947909875226629749605007410831440388003876182537190549392145915877301617575794595814010359740319262454465319253046523048764901095887805064359663486263864216367208695328962081090302117290524830183605536566625226530031418864531530471892675340628837522551502020872612094598446635667886763277030944422382078088518222817336885120932373041186602298444344755264860265322672300798711695269270656310414646017848617706046029296048385625519635987611725210994179521965599547945186009979680830359954488734039231885195969227146048657225911454988653816449531261865719382162561338504636115651105176565403327311392911206007021817548481541147398173565302679132137005954062530573266742374142006039328126403585228500839196609537110452394888164982091123569008132552928518817351048301523461613367177516141034519631467520604521381767727223447223251872988157939229330096380674218967847297928448561746779666836731270607982310963201298247245878713382598617572899771895859296179489405604360041185958532165880283133601479028157603545871263555873184470807254926412010144288195424481999118036032074714583507003537802602253101982018950564745547822845076996507105215696857761119584320113094479551422533946941783613309486071992708488345635482876158590603267501407094819968374282900849777900083763435553581708550812097853968083197848759253445572848884784781987891468635211375243783186432106947563002376969565211878906294367530045526343918777963083063111101013324198415362866283697970205672837023323477066545202090799024316517756819385599243882648576879069653834348136206849644788742975856761495714167417533688832329675672988894284388669668733133172382228794636497761884274202302453585587888385965029214227215588145101386347372509092839430191737010388759512206545804410517049757592453428163985521533300799593340809320499158004281587864824548849893549785882721059620863466325352677607571978489845832745757257714607787164303681611143622270577399779293758437999952801085495151371469627160798631666634946747030659192587845860660307321188352437702692643694565862954064081572520206151357245898126024699319348782138932840558149266089030788113470161815886850722297840976091227995191071266944144371528972142938796376859393496044464741987841926500355805074519554230881022868135007921753070264985035288937256471315230737508584231445639551295579307835098706671409073869070330578038357776950242419585116627942225948414710042704031006747729776127024469348004087147926332613902412633550360906472160577135925672844153675514530100676602267866627793301562964996522889725782147690877334325278584417516024794622763509459159694447864248504144853138063809528324660995372244443096904393228456111630756421938828495563149346952667893923129038853720281325208137842879546444930911094654436442111210338131813831244147475145085033310725025642582171238277595706945910913264481964234582747409722760423173011360349545894457773323840273409423958747281900633845624508387393026088802265878380962587071415989760860180573666980597930921689858472464144505647576073166851394072063508389032309472052724966489169678784794444795091020984111784999215912823477241369449668478992554471735351818218086926061638577862756259827655461607285417077803441617298723790920636205900264013468420813021972441316013281471167293116695925878142373143192325609218519037048386457208762077685352244877720533507999517447146238930631115181758731999609724555068712865065331472404366370911512796122239521543924936716664664318917238810330027583966673331223031394778181934481429288488917495393452643512422265870166322353084374619592323628951995400727129809807734561094988400850166554146345827169411593345763563275593282760778878777849031044621969261106720523055126602578291276407270091174023319807793965133384068976277625197742722602198893903565795301133696360853986740192163920875234536153050155621836661363787398711499436560051184396281611509377124221666666270115561919645866933485885915083587776138527959426467806425235015086639089829934856276153020314974339617405272291178068006480153421300033338992982633735748220291303237353806301510883556319679332369794898264222701296806869544119853968534865391605346970960136804553605025329777520086385981235001140551369955210073247136957003577364264849071044940923542065826361945727716631336551623138815080069908895659943517825139126220447690632342166357500510232629222564784642071791977536998533473902440065825213201566673480617589477651389405849838355604807234759164642172184413039607830420523693753029981604599029890621047813992020725865252701444141656835286360307793953971764501347250541188268085883846392748810843705472737176538261213070166752661264610651075850437729624916356691742587587289018685038379173003170605093738824969532428033986973109253816035902675644618789875027676933390754731209565902796112916144140747836562650841146090745767890597825315500793878700409957114132309541504377291161788012659935326678098502431666700862833412116140185244185150338209069894905642839458274811797601774715829392373978242611191690605498235051108852231699334780498127342856053566600031916126483056275108319158786049518593980493931295120888461452992824023277701505766946027373177862598028142864942704332535546237621351114399630672387613504671358949229645658793952265469928516839402274943906840459774937931036280006109016912833449502547516569511574872853507565210271449495256099472185274041609893190200923260202816581972537369238259026355268021048640200126986767481273417725501107964254606306878650738257269172327438679977110661460112930089912950361883162721916246861835873774072666293500646180924925811071154821180528394710519348857584002791555046342304930149134439090252275038697744956725388394889036526182044591338004263234351075936398611013994130311321215015514302437962260032560659112522296322711947284041717436474988115801001486730180517316165235220920781502130725503279686948865270553055184927991746591889871987452181792692743116384689566731054843003916457800193310767660302143699571955186057269487516184133717258110107679119312645868091599160918069906021479336165986100538115208230274159652736119219738520608509991808313037643386748863865612773922643434021849381519154757804682845246710962319904433305328988469320049206255949711608768755489220847178252753670737116321074422933217502503362426237267148416817916244843463097444452738080705052501053771379341927784533096613076441416980621430001689339616139671772986946487402707565994044137393499641454709271651055062555992486878785007936748102148732434313885221711208088201855587770547319586981444997211392389851631955810966112843485540229229337101522708298476681655209193955249465048223575413074487210456096796381489438840348479577818630910649570251279224742380919490769633460161564748791607617489642683465780659657655475846724973327308847862255232151797311478134438603043282267380635553766696577541819454782867456583263744647530876153717028185921797766836989692100375497144277775004435174312606615116009529042136324582676259607968197934620674656777538308284276283039221607545898095623216521818457809073098834736422203807113020974159416986552109297315983498294071427358714915876066887917618313514657283861119865814236245610388953873870263926410403776451970547489105722548992579350977461866074801676558439393677486471577360308113699612302366812096130484202201916765004114041540270641644227953311539111213031997312520883661561194290756401984469309109899973290103408897368542133807523799605759949830469197848023115205393354397689427196615024992780137420535952772220532833264200482091654565081167384660682983498843593186461718154798999706516721279138078152240706204967543772751761209573940846563805845097381476207149046100772454056827848569951355489794124918280841569466716122417213268864942441596188695622198269101016233187362375865762348135542029343774886947393189048830142441398383218072137750303821940377765856545875918302479192017022514299819423707559443703398215804852934404434235258484677419099729445680508530787948652793136146764192537037481544438794097208214602700476934278042653841454635049745368506292914663089553256158951763530226411790352993581247935923248200352514091377074568394012106914417968403859122113596416570290027041010140540837701944087093507072097973688997061280665210384917178325680245385879146497939393580692700996773690242690124876374146230712335217335189727320516312787737478621726818333295280340219085966140705313378637175886863079882884466564077555461912750068659979526648330396144461768651027874700176355764843311252433769837021677759300464087338973502987561265170330866100931924899832829933869035074634118661769134935767147679076616525078745521068979391417484125205624873210346682089329936786100554251766664547695415615957416123434328438551447600970547873302968680899991764156212678250417269388148514625662247463518245835874635685228864441679119492587986331581638406884702625177604782104501805696572701562349997636204412755701940867493927586559082094511600428436454151676519162297802078655543863568304482182351225150696742076141222466938997472130788141605600606563090578464853763533134859226264290316046070036441749384280180186606239915078736441508433960427880174313224674390150879778106070742996438813392203226968277694631427304989589390847473908187039225841184147770208037395291887803673185003204905755133727382358713562917479167553562499501529632959492103794735284331065718244783585047495425247955539048048842643715428980006000726170809112258909062446589097077697601207731146728785258840628568767856638037092520589002697408508470331620069959081236494315588270801561702778406833949376041274675278323166268507256677329931612809836097480582935589659119532892917205106457621772671921599685377708138669464085291556921293923489663479734516282972165883284458510974948996131113394999391883595640471310373330660712262321356275042393183537215024055634754861204515855010410874942218798836420220991991796056428628950425695428085019286454160479469699796988262968627936421297979997102866099619809071745078354168797424453396437938499175782248035313168122001844733428251075097017691060539947438871603293787022671248451469935582565863260355681724900538698622907625774199315471299111529748300014753494503538815713579204882649925389632767351653857372009784671926500243582093128835506797335715393149406506055325114358450875809271449613562505752893444816131730894313156521594325496399601316610366851780916745826091316223687821016874535234075636722520274010579627224498745555910313827651011184055672235752642068008472457129052882372709795895867516401498933495766860585929110399035796056359339989565887447908283496267345027364270005467390331096298623067990843456435262921702662345325074544870228923774263607034190383631285329630253586987458088773584052036569017368492594654815874732746816280134240642879454798164062746169931289403731332550173308125496636207136100068380323861213758327671521498133250876557869459435308595894669908845782017760051407947944059655481313795492860714604110247956065347961200403069545404853164544131278822088841095586223206017516303597105422736897456141626219553151920621428377208699741117729848282127715523301425722066899038988718856997245363410629435129142649069937220387455301548291826955336863541885680827389520888136850838122454300877843423117049140045027269350080594263396172761292952445418865662258931358492974532870463998896664605460658268846596361197869056722741046588541246592953266038534157179137465386294891107540564382380231853107061039158409195231136849510010784983047610808970691422830670026023401162430716781912012942579769736097929878367022014073614831774071032237709698128774030230083721095479330062816308405379739919463910345233237931016546844587230902895666509144205926090790847400565382648233725954766627942906581497354735181273405794780427987700922071713816642782585156989961203548328486525643202375134317792102534789214773657941591599974149659766466664828727212662995010097017864066229666356079079366390022332448797844292187028967506634492557109858609927965801225122692778995660840618959223859888101395618451034028675052128731848995260181970890869051572301250936482751139918687559663883519775719715127924595077239535240959903087002926476829795002770809534922972865379235987203277096256674127701676783094769679276470802524778412440412817229500850560315450370408720176641093113790404836927240196462157563614027881417905296822218633660523868900374770468307359293915229760533818093982179215748555320689345426564865988261402627416465718760909475214311524860844058654597101209597013397467676437226391654231839413824758889120639741301956883163171808728206155766643647150736900558506058916673359297378871153132276246797811298213562438659738335166666624949750545656106253473913677988778105682765152166324775259056233856602553553788803845987014395055770043027174467194768138064858894564596378110262034720433209195169311486580040453232776185805012387368703797085368565906066573724561791818179399170743000702373841507654838071304978465508269529489979423816973123368069274028969498592202985160025798091096355313483634508437090040559677316346973558597048393389885215581925594952857531305287265302236119104783910146145458877325778469412427292387713082500571380609479245854299957504822300053128296412420909452973701862739901132909211679210282889901497715510388390435679750040201474135977777154776837605362858424652116966771479049641772125227951708009647715767049435494002495283443914801610947044748143173720857292827368750082402194066287450084631885228753729836143101148308850480469534882995279085774863704410900652872009507833644042403642506140320295041727399534369052053306973265247902718262794125847625921586288443145827606490858803245546193163065676636620236328950816503317186637015770175218594296307169818535511741584623426987059193562319613123318804286439456694979452186472261940910639011961588060969122478474233103644318580447631584014963750326227633384911280638722716844405816565961353063936940168058012931843813753495471655674077486144401838487346157658398321999127261448223942048614622246025419726231868008920159300379483625856134013042723826517366409537872065189375580571129862342337223579588536698318024630892529717061292163784346607593132331030832610898039459373458941614732214933352816456618494941815908897742144883397331697825959851494647667384627320669853015498390329895306696233584921982201763666609779982804509907644280715937463332530196966729465823699531226698248357874603602542278428313510508091744582984069191713834201567673042092264063538458335356114427610598836534601795872434593103335898578735369790682869079159569195894521187767090189516894892548020635732240981996867581314444323655353690766855031898557010169576173484162380156905135929948416674379507263125308618836541522732691540931518092459192158756758807045188472720560080953555636409955173065864599828371009688279229271024125049522409759010694512456815646740017904041626926758340892380784808185382104959221987859627108779394156909573595416350670942638581368330007212646940561783031837595625056273590436130391385453025944703042888279325384298411649165497753699705697119501041211273028552071702115802155529563746359255338106366297425043292694309456254323417672893386581940818854666973458614486483031990855839939695996404073091762657704720366412962221845854565100381901301609929629212598370960015406760156503171582241304902596085570018119615716844341274107281745727036329436639144226367951634131236221762330410290461135690382651445581279796364148465431511274675653849264979511963107291401467110474684814044237068389789740661305514168693308775817085263695103106099820579554631148561378325245393448008694027925454116939156808300848935895888032358791040614844584965401733039513581829294204965972701122529057992910822593631319620579441395260212244706354070714270605509717745919285998821492325360618276946120370215870021848990348070511641157874092765290891153135490702731374988144912000248444717662557684571126449834104025625231116496075303146077580768884551747821917342736396273890999739990240135337971674096247122927602206085965191246216061177317889329099437126401649840869801313469356533994750436768582896710599409967231449651718494243097552632122702394668882180776054612724715111367474482906918808040216438283963653400798567103605354866996438699072067210210812049707360640988082771659751612905812379387708335977761821152221594150529045638162631413387194061148715600726673293382398041727119366738316841018177295911054528445444074527387872343668930499885443495259439007408109219167052105420387793658843479906503396836947273472886833091652068945975874784918545152811965029859875581247134687601194152167136565910296857942557774866310107829197894769988524092738789390805805624050913696436793410941176940415257248397138141296774099579317292921382241912143832867527009449014205227532423295498102318576822688610857061490598122252758125741716350138477092686224706795351977324268137478362891115145883497217740379770774765208786421567323104730985040640493496091620508260598091431582850449866220491194538257142342667404638592100660560700715634603412259266444285648788871225419310104053767147943325591946802058266337969638121704337672966839818258169686931346476360999808328573598482164963196915757850544341418708979781081858767149885506393249500581303267750116970843045470545290239877165376653622126303185217931019870423168818680782355157542313269409150109598212815536783350433682925396619654358034348818276260872611742316920157885215317335136987880336222445254814499756480384648687184149257421693980418910410741552770569443355834648744048166700452062024925583153372275102029671958697492894891586967508955395866284186182189227287234120884232405413528399017510716858203240335559310708220353978636329254051056605472027613853629593780396971500094726292565065034251875016589908142980514388458262887703283038477115267342860076747081307216663622037333491381277032662180074040922420335841908125680765145295016094806577477702102721299796791133652963903729180123683719698005306783689223268066257969206034537732293153028072573763442817208558433038522065591721739269730860183772183105046062945011992223714161136778123043930755188347808619037939784667443272016776082632993875580350609693203678537587133051027692873724634948703619734544959434081352095466513328063263036277158532065904761452750625301217447046745056782020034458903434870161480290487899576158351717962086179572478134010525912357098363948884533859199260597916071717574146864614956527755327002003759998734037896397368191666216382267985430250073553301282902813300658276993990143644353077154131521421916230014767399565521420557450827073398336080804112039419947025794122681944721701634198524125518670297775514250721194493271010443394757176796499582340454156545528541867069027447962334629123455113576560181368372880779845057094773366783651033614325792541665073615579707510310265695791467224166374224024166047200737567535489411230416274326836179546676123786562715746686107455981175533656254179097679125829368063536558458460231351343613594217995923204695828516966903329439409511085745663002184059670747684485874457373645535371332023173016827544265258772173222309805381045895838737821801472742705473369505227602412142547834176752712528677703945854135746848046851196498384759166803231304658270155268361024723674294337160668880358218479689159500157844805954699834133061005418994016365719710626749992488240837159066364273118802057400115774187977417398562075891194933471054090778203814430588785873917956541497025447430518311685556696467128748189635411110547019976101963164905151999732815875967115676294419846553516881023146605223457449394883414472957600366827610473636485070228170156644315519990774675969919480209981936983166057587087981109216709875076116736203692346493398253507279723526821130895650537046193594123261810663494881664392561267309099230816854890174004197172119179167854926362408667074060193427029501797618136289936024306145615657096410878648962099639481351460487046497639836337082553170276440044291602984990393935749383105879213934070546116735362180542852953186748546224093571917958179419898757281993784656106169066390741564948140112635342090635797856498459076239694607125133468879004782966956296077531781873945420407325774778888656912974228651419801225107794148766573750732410366366913981295639659346319021750857616510905681496775383402801895316306470674670036494301494857643489200799241370549323540055864326001152552825944903092654513577987849447800115294988131713509105441141684866085831977341687668035962388665117914512511664107336079250053445540843727492319390512441574562045506218282827969203678442268987519931142495709433129904731739448634770713687078314751536181980881868683964688359449566500944438094748951995621849157776701446081346777235163004829009162403185762478388281074030606141045032569399688780493011157775070978221388529129003868552832138781199722177060660590532847422315944486896343215996110575578596483206482058806645342388706586657550673234490464857747156225257784539464654738449435159317539046202979550602500979867991123097440979512806354256314438266653962273977941719253234529938956081342624614662663345461484985078222714864854266093785183980790952077892549981532372993554849662630069472224587806908335355687361589435066510595970033574581892376160973859853254122107847841503194209982579660243578452631635016172896427755846457352703066536563115075312927881758459850573820155460425228937783346564098412216593041135286311503185406921262042742053144475278067797959686294888870615009316146917411317974862376085534429744384826010895881263925775498552225569262683710803879265632440675421335461652446707936637991862431751121198800478733208780367170295126673876857750441255167065359418239420013822126311529987974199769265159278578075109306042259048389387608859108485152838071423471119658262304852605287113698448034196676924740695440073666345058475446002720814647615956755456779768571157119216781699518235880933393790945540554517101084375308846740888166358309419584034701069530644080743435386981964135112483756796592088071078260578357607783587297353836640974549829937537212226902357699423526866915455229979029882209481701577873837462574690601880340737090553755223414018895355551828191363844848054148217736322330687787793083256570658633676844446735662088003256915645887263752500575794411310407056422657492480572118539881229849241899595262214152479938479568184565864718505950074968895677795293052545400504678326974544400621165757112579171494866212111724001077394534791947101539938397650748482502904330513455941754411569481169544543435556968121817296747960253499355858410887266850500680535845904908814275546645423585460552079960174202376374143859963070452582625395860897042402328196979769152360695904373910607139673342620905575905894207476862640540217321922303227978834643291550647611468002048370206055829539063938090955681686990237406790878186631988220360612587203816468599192997637590910673762265785747906526968791740729453348726449215571659864032786052816774497392859991694322044110119699498855599673777183585530285073011425109247388347549980888550018393128699941761426613537753501875728363566942780672975235659345963235052791226733196758021901543758020838258837802658763072955226213263810176885858595970783610497462148278305169965849813175407633981723432326345767032799832975745977778500862528921308989560685594216641218350175036823761577228117223116045917009132524911618017976879051232332459165689574746849774527965921799162179272857816038741116719176183246646908093942366745557828640378281246203384228448666387515454580877639525316393801855304047083116555085735586044255056180082809775997466129696649454911471406356777336663017942707132937869786074853949535971095419341924769788812238294285586265707748873954767450688069229329753347429548135776854512041947931848142197393710738044575954096733335278005539767977166606114578836361893495811852969216259766628223569918144214236899293834435954400151421676100386168553989012511992921954822633854377870003921792900981452132141239359200317556819092559357706624916336265486539746773903875548569322908629757825806851326105409615788724987078277355054991041678082570700613130625978847224081979347804264944082796205635968358828028983608456795153285760036058951356810346120071393240707445658592559180480668075722199023916289611998362577651822084063269230930641298128500401039648301048538591533819529552237588675844671318189046194289330086161924724898901068345546523448345515593260792350328154298592976592405231018370065169619265874898168366272537481982742472312510377976504551062200711549155520244727209779279349901771518321540668638229657399345807546566320159813458775570461939466248465975034717881663019659129778712993712627579702425679172210978767530033519284785050971651616061817036193487137855215855263034999481627330500497882075281748042130526496481130632622054548359692851613402677951428083314631553823086781887861296825689175885340073057216164953711036568665272092765302018769251433949056629799718377722511963089744614220353958556943892928156915171908970295854662029344980086737801595107670281928672873136157046667880873416687583551501176260992762218528753361851148122629328695388847776648943832674016744309609329451121459900669655910487984794709163566473999769469560904521286253531988834563194636230192210282578313702779516641052637485952848026633971935508260417003111300317540279010985165269796468521481625461684672147024307221542800117774561273647145089845906692931531126106915524020539751713079009066045217663916649736575571224174658019474116406927199517880417873990726687285129265995243904490772308918163897823713685566463679604832566169657267007431501986295254055468370879500262805308872298455325755020642779307313680012732708326148313763556714813038400680061542799779184935664623029452254943804383050784127396531030760813320539035352147558970900685495023465232566223472353939514188891457547564160162235804308911328991190832129992890732953912890966706750376651021511737784552137677485947408177291078259151836094680415379575137771167112526328062863580135085310719836827708198571592742121411691725263306540368875578776703146133901718574804524679257491955939712580830798742249745262679780978725787491662722499701792974691801623426868180732224506011289910962157693320986611055944693385753537390759603638477637769000604548551730542566479972187500813409798901110173832250481691215098221654794202239221883204016342039012304469262848283349328323206366661645907423036275521321283520424335035228235279095719318491248249119138225752839740292501232397090821736261688513558283790593241986181734010996761829529762737054064277625382009537129929842162572101973163596693519168919307180547004001398289468374828319959912851083021857817472183145890627595174390719765952726361506331762935105501469546709066522910826156033998493866812663995851936622606795367291083246740964222466285003049749627258437145478756159836811262157452836571628197680550512746151455868545922876978098583687432563047164134627992403637016028079302761389558481334472101569834675757878428156062965021277720658003784451826918716305004068285323319187435411490182522329709422618238877445811757524622264600861179200048550724170702114623975524560383907485584657049324985227385704707527621435280099930951754105443723436616103763463789806556767618762774045964178475520706882226099434629284009860501622645891448554974336690042191872667143204642684035469857984832692376576628560184191084117081954670078442007556844252536533823709024282716928415025188413584837552010882420230359188455394073377018856044142317385203283029148560301935156831596932396651553037132048035436159196520588302052226951817155262612768301777006462262142228005187135017516138931528194783920011663048514640617848821192900705400011617645731252947949747914887785667784019911390855970237345588603679667917897791544412287795470766362511094785144394913050657457164248019683383020641185243797572753926014298026631524334792483838811543080482890731982702693874073190211521321924241732485117858392163369903845274311327517872071287757646354123539525245521242014393870873785666393771772710059826067092243452709043891226608774488706679145069889891247617371592712223833305927575205077601668933054660310574489620546243396876446463805949369417135488555527673329177942719195966690179318056172710501362017307557203024987145862005992931801958192171074964720188277500543032298406730180960775445060599108252431575923309963906659225520240404398724646390687388770385554470017472661475894686162625768537712457766911895594702148407402328415515584369866570125617303781192501848810704297470582543025911024219708494864594619058185434328534553865070784643095791839746664183763234278932876420478329575777793275373468915205535439324224043179246857522721989184796707838511742553535506412635470812806016425388578161634090874177260759942471763867569067918483395867239011475347980890361271991576490849583959183684502728728843153153785502408716161792664093235509049863818040266205450634778011067822057528101317674636639828372848801928390393931074003448542404143099199198148976197753951143713127219671901392074249164507401177422340721261243060963258935857982594790076673007401049015904263078828377887842965094997680290296941552912071074169652695071531496189278314834654565680555220492645077094434126684017997511649506932159400750307758121925158670792204990823549287670469832813054514611490519220677534126574283794311484828673476395961450731586708601599058764233447436894721252259266780469555386291682141251725349207738724773486226509810800695647948774454536900288560274969822871855207819369594616405046514201792611237850022853604304612968437734553307290705431329419496246707940552140719720804264422110396111489231923904828789246755428048162554150024838148811268137793815572608842408238901593910871163086291627046822725861051432365068132134419215398826241909283985591537475984791077942150284947593887633539616918685329950490973967532870380803889814809587941391163992304875855607092236402182927803642368333264100013291388880936556568290605199348432419769237049560580184705287837936499556109522128764906039332302845269958206071069119683139223457525794503888511554527994476381385229351686284082282713913309359186742916029676778888004254089246253138448260476456187057375820387466204326127867408687090309098020806673157161778961205959179620722150077824124468161060967117307184043376991981394843558805221160003796535360347645994100782991974869578196727503075129179282989240188576110691598719792761912722552787760951839460155826320667624147980101880498663360249038705910504762117064524398693575270932265467931200011135325996439570714221843515918747939782172608149284146691561391825971454302214637075883724095331125285176598704711048540212028376813327016164010315348565427352195112715303747003523457930951010357569188526165171750308653130344793198296297448257004092799298555531617045292322360849027709242415908062707355109496558397976632537852999909750243367046001161688155870562560107268273451458808432174114088022678269525139222978109422000877142388299122915437923046093773184894166712771182801952633520254632552619664486745861111587566614185589250394813513027684931321984785563976716611353567146430346273745704532924745406990068412046979527477746917031707460883830688834748560585916209396245767376140243390387123594850915029650070723744098452730949628148814549907764616587340600361754796818379923788894865595476910755814562148269763573950393341929940630036702953726860799294926224451518978404200728377662146150537875114966540403611567532272408983182160084057678098283488945124038624237629793435298955702029718386516567779628783785487973575612230303963191153850604151445355164568785479840225622036475659537114565694479394745724254162666113443246381984506748872072788290479003697092513570334519731682377356480359488114042457417148148531836275591135362400614141858046135401566631292457109721314883034656500542314726925794225265466353287181169142243818619663305461434048852004081629903910332925452383342053276896064691754537795771090924105653268935072678175944851670459332364913913512246396153924902070651782143844694907801764027308777629784003646135414792187781549673269815944749545921489286664329613265775498048988007417829464760055129225868646929123098199223975936496685875187661263253226758912447651049964986211215691395951882322715187616816528842001879486807710002439230854684710939073911914731940954521090367133157756513939003639909813398869051472951222210394426278561840186052325740365086298125559228242240017352616680654907716997965793963232720120338510838817501832831044147344790416637627756150172585160915467504510774174030930268959975446625501628868451686920880346582065557979961182974266165060667960472604953246892195943431153231807141639475892680987348007816654837409735008167679894873960564488253151114524964230707694257281384872670149288667882639151598933576163330176287412349678251645136789519683761986877638686468982275938735031956760077656177918831509324045699899673388257675120869091285712994137352671975179648453630646136983183551036938913369866056524396558412772484593672205243007682430694736939963347995669142533206116466710378052938422190562206630809022608977677498335548599977113186263408357754449340422448057838089776455177112882252521172496609959508945524577696858969235616742459447255771195767418176278804441853355594463835112119815522749417541265354468649811011183673697669055861185760491480439375383191437578211185751599215562700545805101927998134475845688996022495651327453099437656075355275783772645557103041141639272383757515546133392143899019478613777394094291034035135245448868318296045977382017196096922857283135762008615774773318139198446285035375631269143397686684811203515355468492811561394063480084077304479864702583846554011371443031791848385198191798170231990190105797626115587026332404050271470559876252816630290135021194732866110492450120686124109461735974210509897406232589884001918918573821486874058759385330964144801396899161418062942145045335951739263820672818173390138925832656777961837966653740684331851892468874325751820722547412949402168291661764322991542000832817387694355553304043372734215699364310891605603845256445056619539893797952501137424269289375314603994750919353801036735917766869667960536721670332507301323989236717194043203704772576971701323233349775762283146070744225840571165019027772201810241889344837116350910637129092866355410191645170397673448259796050787837101821199024142031257970476423057515033829862691700065724434088733360704083410342808362481889261664983951757325611876906279332364340723062997067856095425491454690708886345268750898974681556736067962489671252236101091865840667330109066050793175618841760013150103501749155572117798927316794429432559017401381479919467614893406354369660910591705663526578914414657272923761780526766158919341811414171626453187321339624961475038428423758666393735676007484909086606798369194239527412677392813646679952782734311106273455632069761434387299089928061859753162133550356076153524535151476181609498661412106021694045572679063770225699560081969101668169522524608449312827819538257814625085540921797396630728428782569268404915095280635371992477180790874655287298192874033282903047717215709700538314407821541601055799317723613741386544584067325826149635753206039422612331075411498560407456008076220930753760915741131383376064470249704301189761354529362533623129066641005346586933922359707671194959680871833478424905972423058627610184397556656374063207783376396295196380543915584921540291220252597554228339010302953456983583179574022056139745621410907665824133329038697768224146520106029272995995053854011225226938611841985172925299111966697135813913392755980364096331360630400506757051629848165673931904737678878926348183565986531487433600360874646649582345353708182521168048810878478799242044946240903907844221420759080597035094017935322993812695187788372580625161087033458833647333749629321152796907640717052612848215220307245210309515082959492607849923994782213032143825563670883556371423984777831450747586238301202719409007613051400166262888035153363646059800930711313628383988680840328393413484653649955090516172428131405670276762770171378207917204202963367690115032723923699401461532255023548617017764117255888296004418482732317001030045467990579252566356573959449239985066693181712304915247300007338348802954590012184623399541292812570630106381292976908423147558940363522561313146768058821823252899957290558281877630597799581155936529326944898627817585540610165302900876225115771528267820014557009759217787394712749186787325564752167814744461333741553619037740647483022076227205632636907019350634252570515550574748508416394520183425550380621607716503591687154089371513487339365325614630227823773126422757483445172437879454357388836052390061988839467611011474574008269982928708527456537418239931369854635273963317657371704562541502407913503005216185688530076580670538994447616255731360967688432624893618355601031440076539431432868641082545034815765371729691050150656044474589583769785013408561781391700604532884916831713499035386806816261317143745241471634533072150603715623185184432750362008567294620990794643679808470811204280533698772210612053530219524856069427118878299863522412550214442221961908924164287416463813250315003114570365872695618038701480990124793500599975040890493784500784658858245402965244625216988823236260986297744879047045236925293250787638001162326731435566623995202111900006316586714651677872705690834196555441046891303071845548109839782061484052447793585542890244768848855994559858581915167596963366050463890076459804480373308927079704361114282315000165021313729539596913390994244364453376898424922677867116813248765621418709610996110634801926264461152522298051753157146568811856086198533602586651998726271205411511899878026136949811680591214092593380482941266948363425032073838555144007946991126625882532706509486967511207748579668791209704596289398288730606053844765296172817195363103409899540727873739351793096064218665503632205577264185230316023206842071113516318616507790957514624834514289065403905525540148325404830699537701726452028415757027686119292898101761512523482891748070652487682229839131242152001014040140030974351916536634117515173586561152504253566556321797214519670119109000787008885702322170376129540375406421483936081206105472912079334391879824791873564104480531392541328902720655714876362393900956451671200972476784658742920779298957284830376009537033975148582204697209610156803939567058516594061709129174201534815268954003178946957208232899255308982853114307079259770114156814009532502291268496817666243996035389933528436496730358004906623653054972552578571965796769813012069324970975468509728264391244732815284063800448372686905026118794072593900110396056012935963437008292146967484381059990627586259334733279168431552287054177909514291244800204215846524349752679408043486043630388946735002258263101622487667503910638876868076406265407533170812058698948771695293341284633013926191846115603200162411608411069543152672914676339587793885516130642129432750661976712810676668871149562811128900473051952343350931417034742985118825843483840721499853689711730811461403296892633551837082071133060469057143987850195944893575123459431444856469356057990879855855768696429074495794098258058348938132471854470877888780193204048896189611216730777082606628785784023682706797460430528079180196094956054063959225260684380242685338791429208206438710889523131116798419899175084406038958053014534023636728802280767388095577172221046760953863573074484006329338376183062273448216775033373771596816972521521118510411537957513229410471327895156407952620562898639160814871495116755568235482128592354979720729147951686891739637018575476361861790971811682915169407004528922256924734363835922544659097157921913682022040650948156692934356188237122144151797929324451395135346146382069733354344077141544590118377632149594819973598088053955341012911011806291089476134692302600368226142059298341980386154393386474777137716172205009339717556546258720574607504717858476519928616509331627327885702188961877606320133607466780619189811736092365094020275924723388359446359976861593165726713946006874664134296507221353986083357525522497577307102997834735909722548434178802339497690737773763527573930281422560173868845947048296597258240785810701548386133679829965482526891163741854694836837529223692841207193305727125555271833943714671126510980186858683797631461921115107330120957450173211492139894063614608545361593027820109708364856090943929819543874277657784030385144827550942857859056116266628746127327950338992511903766096097564804278437013071904501404380502354907594284824531204046371463084637082837797869312088048510864137263301272223620518026384596733958710606696268633627506544860756859330472439761058176389635884858269574523076506413547644355525315021630366497357605479686748784764707325195844224261140146607707015899304492983133355517891334471751915968108711148260949988005984822780056551470406904037648335562337423717067350776485340562995028769738889694736015128616115270729602550500869540303033800780505198741660227545691648103992048560503028483616857617376910478752525141517538991278330492294753198640163971646142018285974324148976220925556972942909617272240467471109833711349379057932616855115871910245766362555217249590812279204489672552564835108816718270405360124689902248194567501956150239989856031985278867864649409697125761608552972153196241568716249465259520992898308352454134647061626586528689765813614224963313212705975814956111117594861686441143075208517257207050904414014468194619484997843116043550568965229806974380995288676914035206955470633813278193726519542924151555719118849854849769427106931031193040646062785021695984220653395212303521007887164908316931488314896365616305363465394124000388469530349721676522191874291620599469663195434703926345448852931905594279464858548536613220767510418729689506715640014462175379453816516794660950970127703206862888261939364969205560783805646348983100813080792007436258464591075591016209823775747387828863646821268014131715182974073915020224679597793163294255051090307804836528335417457365864573969614230811922985681421580029784444882858475310446784917811569929739727624270163927330825561613556270139275915014280935747189193549222231160844737397445417633923743121969182006825827590001566668701800547997918581431497049533100441070200456043177995448076728135332677501236144261102430719379770911822355739441237282675138140232057629574513138036624908179024465362384006637836867104908334446840036205259296037449686158354110408098298679059008391297765914351336776182404856971113803744663241073028963373390766725689950620920132486272686751056745902036305387767529955618726345878968273295545957077576700662353176849307275155283766866805674875314754831783452618942294531001629203695018904616180147860050751549356554232242866907012845324654296468928806928705974864765035063273346191354772972705359461548080077987547061624173283153736058527208894826434714243771520058955245837139039062314003530614090089040785515425247508007506399224199685136263311091353469105441713364360900254043947669828451784542012337195665095668761206343212634495608300278695204356411369653272171135205172195884684507784847260724649144228395712832756955366179847402966354228962751693704091024520845304634058983778351511732221507725048772096133260223532039440824938150678534259543676380572480760546580958359057028357352073063664058130187830195994846466697276487795085754225954557781366939426799990714310920698916372127997258171374762449171464940965485747086264191529803144185101413934848571883380575206544147062988246394868464483230767418411820154427365382897733696171767998989992894336905720117107997365720612229997614663341687450434413964930554059541641449902539881445512637285587170034756869939540189588022271723937076942474798131516111757561462864825540739114804016801790873826937128866466020117786553488230669636763532589855835383505715769461656671399903156225993344490198885567473543376270512828933865212959908124102687379236289642492210651481091033991185286812017251673280489400627043986258799446373958174641996587860622089470837271188936566603809239452372540656365867627846479951130256997107423064723365639084103417035010981042685553732696615175718358080676667483534816208314067197657129273797850486765621828897322051113692833746967189920885448055189557422632823419506883952367216161081005114096554612061429273259269509413665718997940862654970466040405734510142759633524146356195286926415010627634354052044154053845658788120764686755028425643386614763230765417295808743832561188056690260710096477127087101500950562663456752490766282855760765897655303121664010585158296096306758763209289433569083672939597535237322193759297554772370365866643357097386957177169307422141657702794760171239829719466654945283384085964469280004280062332848361095836955071513740367725935434427310154047516604411086561036735427979435879984427202975880436950731798470915461667430756453006676144787570357766807373978720740353737626666653424764650937501516979595775470970699927217553497223169199607002789037771081399578369847131255869915766373842821629688411942672351347507256808355434240608311684930764113909657886584067058549984523392236242455980219155185887437606232350737531740233774122719097052447632537519635861847775176916014253087348985516949922372018287820266552668959069996055136926722001467515306568596531257278065270370630001943628437756583896596071204308946884278161829600287351875736681063537409564257691690051205701859485864435231204979679993308489725617003003764699671082655787781937739192186513925517733629876889207467583087279862568907799200663735490963821533249639825779536149781229202113080164748588754888410030197814129058257799775610183447767933664653868809320405413774254714528517237297174551182635391016725610358582823464840749335024794716278599315637472366412789415695201247853185544161606961049348340982694044399715865837341634076483120266589013499281906129986629826621767515109285504380618784288586569951426263377021881944854044816811722044567494670151212646303880301757994044092729905304433285537512668637473669955881566660593751105248859349148022899065587155814524766311056808321218225680979395580243788485519968796395539148585846830596561347597942173723976978363317851375966646837427263310506445154387140393367543770110033898118810343389858635761046684852535104645395832517294012876658469890418817568702879321269876812004020324805546023049182315598159896100895045449161129472999093695272573530259134934912997286956533526323267599325379538526796103951989281458974988402283384281491936202615479848048439809957762057901002300722342516447615680539477310302063700315964178079932207288603034519397880365295044862408555801566436491261660173409692759741158676142308679047511239528549396524790911337674010788049739974225829905538801092690465898009592336669840473354525837384520300495887003193996892518030379510868825047422682410596011242104566633849274638292699468980934373736355034074214819164958132944611787472702094349783569259633759935695254296802158572732323108509544462720116183533245847426762882229789624449576478297647566244521367275382337182303838124053365007543596502991742475991363794282010633841216617426494091049747967758458265703138998759967321938576973983417748217032786323624066689027394375520127002255427012749364383499211514970602052394212711704996305500980158489730642268695558912999164559736631634463718603209564168343164738640859856872592597463313745301526365572436745775201452012617577888213164233913361766123220913621089284676739980057535142586017959594961154881193470320123165834505433556574316414633183258958194090968542377323121408806911321790075707092694010985352608394077884471109287243067498728396656295376396431635747263053543318917122090414603143420002630381824609688408687082685319438677591743513557362075866473363784497908475962842355630618801983443943290835905409909559071423292709711021064515864126168467205415967995248248545413235078107509611412447912150093490504476206698107834854327067312251656624068541627951776885006621817400848910426424064028705927447060417502593442540013772130712232865941843683858655669809110447168873732817147474662861134712309993715346768428419233708847559842158207773228681097546254420992857060164244387526790597804422807046079536868190433897846880417079466015117735583573520076202295782055899840636678823895712975339702340074077688672228134337271486254319067005357274441350183075652183775275923913392418973541121369720456814754735005291598992326511177462801488275552394011798033318870777226880820552628312881463787776588011823310601947274258687724800062198046404567722030310405276511923195797240714929733015498280861806643073724585321300531650472429002687673838627765961136548570589880209443136512801039885703002542136509507896086251869443568944057029522029600587035544284007862272353522137834760202370139292884758641994913172893392637164061364899563262145149801535730447891892878189313913614908231879332354584964018238926660117064246139123734299723569568934927597277980983827358646196906761409821323441086546349912395649088025816949614589257895388927195948536428832438481871608476579997300222325769539075422319320752655609544445120635439090794858554858457969325751464778932801786730087468614568374276189251120757744647666438166511431827141213718824202171047914857154404971253133908642537095770611296657816610730086645618350318408629928487527770183043053459191413515435309201267784569325054987633597875800011543863431753908996752208521931832431474914377346694149399159929492891994829431573133583142851487901518699398215851423835747969921445155302115406807796315219819095142931626458679581126166023334971916535622933706871674571077823909162720434459781036534877783703446678210487543933530573840377255326324041363460367165003240854031652673231273556058279047270619961595119822784471507412885456671193084847181587194886746543030852354398755815647041768062659518652655795367366577479552445906025438222280944695128215983790307979137055574913072120489612892642187013085018095404834839907942957829247241771346740559686244008492609937343962579349104440163873754551219136489135463675519565739722443601586643770391055582598883510038538262903938025856003315877861615755756242023090613024721715741768212254682615578536072361208881020748103958734420403207516851511570538682970143003112711352184037764726702619275080523209454515457073655473855206893527541134072466218656741133037567913058000190950535997259773599101598098053102205775784847067085342656563825288442082708507896683971551047274034006232690244607278913389851951580590576926204891926242452944233227210148719948381924538688591942789170367732481910095734756989915327465182007017703612369629425162357578443827833036125146754700410272158341814372155740967342925199883031751249664999214233013082234731502232241075897801170626117397367411045059260447131457356112367101180578746998838025610689093332976101773134842744704675551341027226361197097802767153120065848734520180463960591320326366165731564043288077185921486235909956501486374452376364857523798703785786533743750493062693598401379559410624902745308191217016011220061728167565473512478907955692620230011503761375668427289633760240937502275447820962158436256724646751029306925692651568687735638149752490058746233387961111644554649120853689112281072841605262388435110062815910066480147957332771938416379910040239517202907327234462502708561663386495576067910564356727853707554665680076045674823984921866600536307330387850540895123773012645830219774927967564252866929539949094123575803609058497425291553024814770635397622257766852483880785624953953824087892693947674802828195938439373005988485686973343766213419757081379925693585605167248434867979878535954922530376699884567282402278973573277171839959733710370483777293835391218886712173495776400524635438124420121218449186752325722992521893913495364594738373139363901499916395578181551886145198119560402614902216573298118206784509774126903481318793602593678765376244747075346162190911510228402280047275607400891354955276300995182673737513785705247266704162318067206611789536743371617929106318795155944940330535359977308313431949520168150508132753797754152497370615473415490329676385055974100519783796645002556121268310220687711853107845757276423710476522813264572200316806337210027103305359635688594126245243900341982310278783061268339258406740474014585902603594552975335825818164567969968572971264593537196849741375435865814789861099768989918831909861086752382073263391056306826519833866927220809915432315105866898191642990534865534993723623623684512838367223887488059526939881775029490832412597934747302926629286691332203242036618941461839285510993938337726430977772634699250137306250605437794534323679975730135239001144620838040080124883712793122635846074832058726782585880618807024005555064337685618291222440783942670150164067631666604062663227001237661131658703110317400952922353695198625122988590885389988714089149065320731107245154578464674874861150721833300968681331036990953443217665490004889333365508343775023164233060894009922605875273590679860109089844899052279374445594795467186653223508609688108130370835517710429528849113410762399069125093271734299791919155322679747208352651497511690577277772169847646666410148235636391304415506796995404303144533219421938540414190194230095565723058146597527460558330681673171639138813429385845957415633289979805079266116326271771741814992865543567305992567451362663592976926504233204414293725158536273358092131323959762479633339619666704020896165214806901234175919762586146875023248206822476485591697116018064591657066581368147475885845734066237269856072252527912715604522070663760662915817001882166499891560864846718614270417735704375015590011609487342281316931094462545958121853762452435000194156738240110001088460893182050559989004318392351330507034715435603800300002788695359597008389117863530274732639365106987485420121405897450022004519217205592626925366173735799985477035324681369336278591709923102790155054491774386365608068418677914305618941225825463654419993416985753527794633181718971397998122394880401813867944814532217570586683250185296066099543994830149599406851900435123871062737516337562665882814661723188188872688238324345392027019524305283325065753237145221474603734385183753543381618750531474688205791830656213622116477878419034448872736856688635258830726136782880627200471022902638246591775254178556564619555954379715085232767368702390334709891741046191722875421580675228722384363775751920672609983955406887549578306126799531691340744174959984066024347093513461572867646563289758553943499511712447504567909115110538841538219552318596727832420470874350739640713334727107724668270094931209639789884430330189781631742480180994481018857105706412747555624197744741407531955418802644515020255843359071070809441080503815890198809422460370580362936354085205998295483183200649810168742124350033060140334480947431028876487798243650538848558551866319426920575190709415462175975454589655930335603467974414282509276710820456741254424876470827434723626209974224207613027535073849589155839646249881312798669493380723472874827096219771579916619740822324865788081255067883882304778307386288190640165184868815073397022142453624100982124020558582814959282313950335386637799669031506726391395078434631004855022544644154757697577422196723411911700427437960345557031696945482011365102679646555601663488261875398782633684839428292824803108695801877749054101793451946793512409621109183923813369777102607255393008839233492105531725084141716833003807096602371908401742667292576907334490417994004261466671029360763931122904208056421387589031093927626657464687557140728698359403535369608059800927739411660428374520388321436885263193606703565617475437158395903834357734351166853405101532261761610686608333037082396811862976374012870989822765790597214113664786006946108948142163996976594012614710263318231212284857176684634602807124902666655245436206934869242367723098572606179279288952535576825868716950761553949098742556898958379641254839009570035467440970733310824608678120610841261540836519872974130619973706413908559519133957417020362505323002316266690576688636811188038889061849286738207137294279716820877199816629703320358151316053108012427399846582894781957620422224390061361904572225422742287331831754536049941348553611440954395455970016201455779977706457515137653955936663746783295531212894513690960621625397816387293534071235939285215057486230608752729804261491725206135995494797107011360240457110016348380384693730922005234629017105842428997104110649302430224848950009585048150652645332990567426870098943845973054158798694980024138760726776301513214673052672509187364264987737065069215684000627120046757422488836513272483295888651948845238919711332578752229459238589440451029097163027946790466305011388368100399658201593670612326879930800841226355676683384239413582850864714685805888911988735763606217623070885483293905764805791554136504406312187789315810464279197036977241726148910074456352347701176669396309894172816633689284269415285212515665620840256840155263226728240878278632499221828659660309119116198377938014215591301063977010688185354056424093116330868866372945854226068091443696733673901790196771935019569360783524735763837304613435660345072170370727859697530451544509353208005752665979817288544246578061944341296998508553961645975318655390726566162708381108775705461892922716586799189232556795370344257708768761817962853129556849555928396231937198721378734383099635895243009011778262533106587481751290014891318593473440363910816048622109054023937806912891399512755134716710560393149514284912566831313661478069158952927397160224434976412393222291475373844447790313906053492102567503102958029275328495837723093378318717417916883936460539243260271400750514777487472765845762289443085903450890610297671970789451121266890329656079257267014977019993622412046434372437488794594092021745069012464029793708872028085204656614400224367625593979208955474900390548435691399541313319140021463844728177342562814340034644600650185913777190204232351088741685210613094255755853199801302068156585997883749748195076071892782208833723970096549463581123063331580123906126538981418073926195487275142508032132926678292700038477825630067581138266079614389019187968978936480929582814292107797994769488104775937717812011404145511654095261212058214432815258332688650247758544926829138216146422667881213551932422314478891018020582234533577096382526414272945895726114113911000630467993855689802967947700650680544993301524348761640095788554060061704092131749936722212882752558373152200521423022457910778760171869572703414284440911136943593604382457845074283394069209565416828489349389181295966601866959961800821305757187377987139891792882310276207975880076572278481144947424782804297091422524914657649662363569620764617181778886759440008912728386235312581275549242448225281618668467896105900340428514211774383759689093348154823081489248932918006235428751740233693607510709490027714695078749907507090599975232200080574944316761756242930112888619451030146580996659203829157017284686692267062213511765464092659401303408286995208096245286388702744519492635982993937444445857746681164853082470273509574009452882630088487418822641953885612868816846489936226111898148495079855482446665598231384306376671123304647659338277159778573842205658065840726208856160130157858662611271708299125011434671506261185026215230415103139137419155356518070374482844655467678608596838009262321675977150587650710917893030486036707709854027272863028011635162423575153871465002618152222096854060601189630917718629690165033209650634450505050411967743692400907388299910660209603900810527698698346222546433633583628544062529768108238870463459524927118484923813895194398698316384162293367145019950411792819300618978977208892687990312822413687603181489233093302446925627299421256158250362808905066187838065201864962947794752233866419155728979871529906727004183196989350228494900881322388186880519466129552486293240141589599902252181852192948517396882973588109002253606739795317391479260179012888542775186803567203003766538799884133643802386663909759344022745714150024421525968034794750778767866831051229739819622281468624665911202896674396892472394640543524222167378980680032129374655873943040391558297257671948969284508993023220013508994581957169643243536804932475927397519113083670722494286673948617903103748660418164974624898549954337795689128384080888374825451291009142593710629817696006680441066265364112878954222322145443573356785654472977629025652009654107946249623633669275116760201718671717158601612783349935619425276526601035002109699192152370766809403898127110324638953015802971666901162473302194400409779906651025290459748435532981187370424981786981305859466580387573367768683361339627822954002229121890967603666494664913434565429837717430126052011804430550570421985134216595251447670276384887025435246303616941462080407973406977993544606113104797906309257441997591567425265156721056789553447610249826016290397534479274363237133568664564410387591120270566329749714283983579070001876386434628958010062185185641140559673869098828946715940391903468225859411829047342593222304760989855862326478174911680838788247941469265162137319366630031623830533185307041762798435251136893238905785096026748947734384696038651516410512455615954232561804041121636829271809757055467292602604940391225131936810986766803205928203743468750843171060308152323800127512738842414079396527897780034783570002951936491741285168249039211976021633681509604314564328939919868945000494873382223937281346741408573314909306007300811205554948726589674677669848039207538394916557227406674308359595832560756629368425215336762000339719172361469205159949921456755173111588205623829089762857284827669438788020286409218570276128228083040622272194704352289991197702758178417455515432905361482547460322455002745755227809487227847228638872744236528832822007479438325851210785800500539999698631610152805281447623631528426165429028928480875140432671452158659469588760714109053684554245424353718217343054175509271607093131650289515510891438891076773958308486050043708770549887409244098347802325506511473108355859405911941834461121233941462986256162000526834710675825864838153698465329667578042505748925085044172081651934108661474886147593094047625859557295599281940584160248624993104340630527394394241977194699283377461785116180859097135509756037616592853161663154027263786927464698233108170823852488763221710386148684468084221410203041876945902101685407233332257548955189197667126291401113346053718865760278205035568175226500192373573959575296296010898271891436155483381159299353481727960789486076443789397433866723143287539466029048643551574993683877055074768454913179387326968201757255061056306695247826064520249728880122894917119065163986265150155872379027184050889652593134270861424815664850506657752381815259101521528989721996380006400451903051058627931637864273604107317988044933589694189094329196245054713650446104483156106461434968676178878818904714325399462463633326224862866601129512788593033346456538867898389668764171402757382877043239381848184572363252380911711963396885880532936763029244686904091699566462355515628727732855347825411122616318107798580005484275034838682441638157160111067708786666645817323667751361186404084993152348500990017325482428858855277066527870154908555445974631328250571231689053016890833786984832399085987379415158499875865317850285678700686725392971026085640988192501548164449112662045022500982324487003935684585059290875789331692270260702679954496809114070665334391803826498727315786434271857640834088978665879973081169953810604073965767367727006767275611310709952227855685910908587860781236034587585242792486423404849812294746820264269817700391637959072574284536446856071716890421007629087884121872153174270110897378619199736909218112936174969970698632487469876996198882607710871140557996819940749153851478229321338612171782554511458611323397537475483250255460903015049820521989797653095067436098692013707276802873384165441957698275285753820725242012422033805377815854255054946837107104681301460918167919665086933993480606955766168816152869145822057935952211664557992851094512447366099299382957413663555928765337729428366818151649292663553388027707247844376861161395564724054387582685640012928146506243993287394209554112381618586054228187646341285092182952726985142201170441574270791305142072893444400474191852011421473714000444347899296021768849590264059135742399909904507101573489945855880307818776017264792825941217282932225999145851160705044070577133552814352256493138143216172012577547598337406940755476733712904940727441685843597236915164038782897275999935078230774970363603653391177877313358489653315230199654700214470591654472021161373190986707792899668841043156072703920194479156398637847341331352338697372535649801082019617522159315806704951468272800311945041397385423442039796223600666210739334956153558187914392256513737017054070824406898307630786413339262163260367968319114980753342789250268348876609461331614366083092664929068045871134631124222577403209546963373523589794941997475632314484237560009075781828359875571706485462297402318618977352639030604118747590026308358516375288835194526609370427553020524540851025416038920881475670848347239117732413769447473748468235793418164246527962224538861866377906032799514558253559231797139282016644402026114522952703649986034553201379528673913604343554386751932825897023665811745926387559277760735966314128157241158270405603432388136254070596788381765140519085051841088001821094556992663788043618654952279694929987170106606844221482843188918386838994229893227936526846245299235130157681001378565417703706494224349913610243267890655917472574379949400695233239370698289660938901368586248188578819494111805279406523504451686138310648090840454899770950692449498143730096869773844110724529509310571300823928079602877859930761665088233636857122924095595695092776093867373812337166901216456731086890545211457846263687034269186232004132931317527991947575377122989740209972991849441970934266380257185531375085008970039071621007371749569308230392215449711809930746764111050417418113160985043629538928869654585646574917186973349659636753169376850224349700395475725582954902481162993572035395087951130829967754302738429193898924338982366223634705838492840722149928701290698707546645158245090980034765823818576930249951157073683191171318900018618794330815881746814686411099235936774898415914223460367143568829891790092767766816601067294357650613710504785571778967385186485367007241531705395412831852891257746552155678328540555555500474683058222009720236853553104434767560090066101847923258226528770815980013076950127087335639584577641266903773439380751339015672740931506107912972803929075313138169231223334322359573369730679551734847420487367294774866710248405118594012803335669749376243889076154890457668729434596050821669479422381627108726600701806410015687198955932266766010801181940107417028045235422209182968401607516715187484812219342896290255203073578220254884835021866094161816291409471013430161025494909584692204877235825935255534297115111964320804213364112515061106400407321162802685038560140079416112388130354269518640243943294560879449898815906146045459500904424802674588923146839657217245834331430824350796717948000700022058993407701772684486058192571730916115103692310145460976375684226063651001747886514814769909375074926675753302092141635381841348561778796959457431446431746901496931025117512990793193821118315614906310388164515716189567405151565022436471419284267531273205695711046656939968647344937444175036567716037469310443494062460825980986087882896802660638114171122596260763359884439628000799575737319828714586543258972758817085617445599074031113454934423047766198087734581212834765595243798025252179184654982531021155617427636011771707774007526201772697645345998477109397464741743453870106084287509668511725199111134587606054115958484593372648247055586584156073602406619053996288330834792395669592816133151919050145073965220077938066032756825697367807276031646257863114349212797748178889105097321057374355558789439917594308529108115888277081599186365242163056727630868449595412294241604085574173780342120658201821261769245298884838529193190718463713309619750141380178528977654179506030800120961348281344489238122862924451663389194527759951921554146663926447326714164366481315900633794304747383981524167079966612598943681928008060662194323571244602807999682624867657243975296923296655938895772886733466904161204783154766963623081187737295760386968676374800652901774209414640455687579000945593411602317472488547553800187964856519180980100987660941912282583783167386821058735565210872135058919868253239242631494408329066184096549648466744036425260173780792195242725046770856234894688692420191885031715104377044623627330342088783529105627398023922378910180440339876519056841247108313632680470942711488164026537799029544791981188094743877657733455130643767736087775195573287875679126818532192280351438492885576908441365088073184903388396439212876141524652216959455954966454452055663822722972542442876260957532575008592888929466858333471163424965036890121202906425353437116072446930194624459578777622160529680437225675090751059377456334036175183207831427504276566507962473629209129743420227922963268837266415533056535977899142928217995667491146391364803595854446830726370962443863521540587949919098453333853906816736803451187130757773430411408140013818407350296374082904824453965633791698396664020159622280842314198060152832238036913995114836948094946946377330934564304076726673831131606365003286085626670699390458996093730608806087822914358169527891808794139078977085418597141195041791343282934864824752390223157975245140531232360332820674600105941298676829136243899428205197400084575813164995750418183639796031173505839702246669321348016113849863695154254242196688475639449661594489569345123730834781166439250318563808269534242945598801504508940481944505090123519368841025857395924933064617468676919553834672875633601917143796686180108645738047186130583976281057427608126775308106699915755826409893265604925308382189674780014137681166196123656817669721666006130952496125081633321978980315647679120285568008761216824948636768483879106596204474469983849974703368141723665390188329179484161172902423102155205928226931137214744542375262172152224746960859098490590355869734973439828087740116104392820826303077347793593655485579223039309284233562640075518270055370589913562667264561722006241945878482919616598658608671169237407472294533450617338388990339852006129298050132236527695024583256098638013355418553516144783935371866630583382404380580254934236571868885459621566012334273354114942008017046571657533098188674952009445810683991241813194615239153725642770234344898156320565565103585207313179330601703250204980609101674311842837085500686068254454519885036516130459620598458955461360718190119598118302428194312227510395953419470012093141260636302874593759804489788703849921953452632476363552819124368236216972495878583313186872099127789531541075582105831748383151804279652823094578057026429113608843580971607784585559731442081261141487169441314259934677806745969032527964489093143430825903906827609452065567100306514458404375641594967534816335526925891062422586082579762740504863689041913399327508389471764655465982996688356602639823309443842253556549019196224855953808199180013650826500799546513351838465277026954884251797730647061920982712706954894155772784993781790080212402331870214476690544232921959097723178433422471820221474038167703679893892026008193418013079781233447487385855932812119849338129457239029027281015891680387270027564937541726196649162522466097097115388214718305423146475485742204316273195720608567824663006979367182591715186837048667171509229458072314091600871737755032546949201864728792131101910350770859743033222892874465367377091012234970416702657610904381186431745298783488164453542189079358822335425391461370534818481567958331413829100117950744916216034632509904046687659799575897598563306538183671648606344567618277419034029058511932282776074127583218324902701527361885981321894181726519159397010236259136704017630997554917005636565628357032801790961594073384637443831029026259488329019300027914430846276939987309919056595162417396764748726991852510733228844315193798610797207034034075660323260141490830839025027227856586090365077988336651467747443770162565475754562365687919993610826844753462408789366751396611913676030435951177033176572327744646010161442360758373843359105213611112320219358163964351480150430237323392543105415230327849613729624852772450394222311715324945470322131775232887320743567676529350316831669683607008943771905640571222967223951127729710218657613902110152253094430279404378994210917951381431621608278417099960720409431960643746120893150542462709996314525726935340958053522536338962996140799006206867405496321488890739191291871847745015108161421456684820538303387613457521985832432675485313497384734951761862952299294608937729775959458946129007461956776219059491832403480302548560426495887749752309477022346059331685821351260059018053879188193003920211910455929087539737320704387345613663506381966932603205007706051923458589447719560543654070821605141980120293804993854305799772305054668153326949072502532338777921507474939632333073948077459443123632553509022707165724653087104949562123156719601865743707479721859902563249578160214048812098963013425466416630090723420110914840793511937406010911036796258064964104836174419910766119434000343815350803696535043535018053955577765554149006115786363784578985659869639824391886697575999455427655211613523164430907409140356942441359263602803977238385101636162793182674445310095581641580283751312021246296231427471961121609686976658419542807212420972588897751519902639525760567354430240791747436535372781158766625059131967309255046250036863229404478700272302500609673239162934909527124726168554054945236455507366778255310500462450753178168863925777079779210084333049108924624176965890118625358431708390792470029328856190751627890639952137060039547048907644035583910905050789551426924663765439351488823430282334133188910864868870142406138967831649614552151071995567330750238876440160087140728056713094903893535686031654135238978670136174346661038267374677112483776727083677904710822082954044116852568088809712009627426988599921233443594135163176031130287802563626532743400674714554726065813766324451734651360394123465314122675952106518466113034240097245366578109731807900003680492860352018991103824855886142733756889613358279213427378926589449816329754043000391496429282920999745950752035259886256521666321094084222645419081599529899957195377388704499410499509615820171895626358877580873931312297141303478938259968813403490783816419720328562137055487037318461915938828058925882469671832739171821373891863550173804696207682101002822815254131501293333111028874508889468832399506331660653985499571251921050153134076438993529828147191288322480734375735246987333068341796007368831086641461067274253989245424388925352172910651593763476530546465928749555820937606076707813782580113834142250100161140210073987194077235626085996063156055217896522481806209841976985107791137145217729579225138227318199018412783841721184144929000553600983313369164330725141327988390416504549788211497946535180363370483657435114094363294918952037881475063083216504143181984771247670875907292051743235941030691862206729220361970200971415728531871060325854585732812403394782427684579228939174388789708451112594079302826290420715197799605933353117729471393943500824168506238271417490019397693852063276041956721936102881330134776966925234627566762017936322153126727032606137873927145857821302037297072002094204646893297721128892125350677239189757065242233718109748758479897218028459871647076734128094911522026992090063267041477839540135618363931738350888066946001213991411665567383431247794653804886044602712705669562398807817484456462469163334376820441515930528357460435019278452305603006523411622224777437241603909406062021980787023703246320105797185990292583331255233415188060670674884173654333282778345966678781550530033710619090964908636844136706026062988571291896229382725348325977203864059002424584270622285214587172628743012263416064740971381215199838609086588943377673795633349434239101857557509173387766458926848812145379882296402619388991306952600066233589030246781951371141970680699495558386264484391277522972090369274525247151261649217443236096640334521828124781139572182187051662589579061221466039160983004047295238413827531267077656073294659229105013096471260665795210158375639790279092699971878184827733668397981829626038308022584292805902266863459723531777173278482795235591015993027359435613188596027288643520258581417164067486148373135141845155078852774453659735295727209170308076512574064848805289155706005725488680058109024167639143949945385323409857145496664253431476601127171340802615071243342403015976822513698018258365260877551671983771909053050511797191963125716298884452187058390270338771721401002531425926113999506918396003568420118054373117469484702202341586984405265699439009095838481812823536723978259259179560035554911333548526867334823319539007817627038078217431542490469716039870679622708413397584296288677385913196594530892280638682714671081108593582341140463079565862818438563416239132171603942797904477544038818802206921921721423763943608606147338396512871335495477696105295681835352116940383762334914572720903826672017815846941352680023399961179845325675964388708271411748094243351783697734840310881013486281576895029900796383353899245118121182477060709512549671221462439665962470003458036130396901441851431671524086482223844959261249844259388776935537604317371461073575762195681719990028039942007575465416387774016106310586494842236590459705359396859784649022606798619524085836550490290986859767375588622629102608580689066163981846861079323081360361360690164190025211930898044111789667034480749671449311285879908070777723121252116015774246607523048121769935048398007598918637833338655656344007057325882410155037962609127826112135951458376145134696207031191512940852289875478401254327987388084593621092423411460271569506036174606725412072502978545669789050198173219444204050381975513415960641475799945982615140188534022892178070967278880842291770045866236285664341122978182445904964283792210710821806037677687609992221265258009404961944092183339451734879932715893124176766478733298031624783596464059500920658059587587116936481676983437721210603073001625269116783214304911238057995194028988284706346139334563927234662938098807846335254074431327901949615676787678798790556385891405589286422320780878863581472267474643667695730886209268010161315310612800033478296923100186488703782353351719677671051616472783007368235800558036477973532891688717689453059878710170065671325100733693132042970401351712957463444301302816897511486068249705003028844527224639903587371588600525410405195968937656493832656839131298216545606199793081076032117376246065161465711498413779858335189726628139936550081629876073103758918381203805181062563213096606570975256278437971517599293177282802089908033265706465571917726410138754462711192499273068871183745445720001670521870900901630239763054959979685707273512737700935138729904217147149898623629615779304965559530048338416542392668493386045149723564852433915017979885110247287460363543118695709839482534501424622493173013424511697930426164362872375697537118003626304091051589134876559820538942567198070950928269814015694408474796869916223527401259647248443199429937319810105862611297767218667364682139954012679769321484954359043574564309599088134496766471990411090583406949751715884076649102353061033434641421941834172047389855179499440844229012255952861744234455042531523939406407404955272276778732024250840271318932570624851344435442673885564621050061732796292084763279837158188400009137825672632533422935504066008197953348195274628952244668510527277333001515432543248916524432456729454485428124294007795645609334305320106690548669632789721285251425268387300334270239440714375882250633280746452949093045305707325326518818761054784962019623546436490753380619471273546661967232332038398078442037842571360358823569901814133565114885865386434202602424073909270002518820303198416468372534781122818921659470191410540052532723753696516274176652598322083182926850474722619018869265181971713303829665533123112256258046320548617287274344859564107752068077195423509689661415748276398596010542302502770709376478000372041827163667120778734761814847483843153385402282536227789265371667472248154792379208439765486090282646677279430886355216017173812675112409739822594588806127241563301838860293925768140618910801475420355350879594630566008298349492650216272211507905906118126724073290409569053124828513455401413889452866606565383422920092381308639997657640444831350803132755145684772720560483805259203758806507320714080634696170735303621588146159687506771204927718284424263233820650905282550932136882878338722656851636031394110351981340375226660157402258373389424808499065674158784790075718737421687370673124491086964877830934331388697750753267669994968384906241394667854738610919829756906935781966233781686879535731961195008404476192908984491478089764285819246623013243235462305966891892123680036452391678139393545035327508916413067927924804658878956707245561506649503515789541010765205383702771570841032511110571633133258564977409576818433528608167808311566660242849959269457267051710381348692831191821943489735165291223114758761010681727778618771654652839930216163589342509989766478894089640783837258524295588269667186233473233325736985321569224597112741986618925870631213392192076127844372473073859264533490174331686037094811455434033614928048526144072223416324867153352286574473008806111985745464987811530243879214225521559576853925333008583197173327304579982453484503537716926777094567543543858868223529955151687505314733023229758352388898917675369575793503896874217704176748925556024200829478983777536505625056284024558290438684708315089364745606082247118656584849029415074738457029974667749034482964598713421838859726758611570643917384951034591835114745828558657077491193774442863154199327651831100455726376494688168774309770772149988742129030023252363141404650657203178388988631144243535049263913421677989409294618148097495426991218754472839301634325497040999366017825239570964068915908000918146558990096927391646187533988795363921553720083730641941433355559842815008015967811746315195905194755752382484089893395816886640620521145164342534173056878528066523493079334770529457785100142151995829148803955263652336115103388064513941130605070998994476654340241142659254562709361219943549512361163988342778550937395825900649526990400816939127704295548596885860644020052241466123932547583117674578025970359788888681920130999245001558153748057400034845287195120990009206156023483515067628089401664152373480539139245250155641306769938919262486254951996611619710113890581804937485696023620040423617015542199706270605892534860130077530231279857286763973590758611752571931595322281448570649381734832478411032218656549654540257161028364860956122622859227418966571891288426548451290305985061115448498201052132932722565319522405468576357127740783642958369166242921593992376487283626401243597954309921332479239199189175316911033077560219671671920471979160483847990837355394253072852223489334462101124892020345131218655426501600723967119702299826171013750978985635388091811526927015581869931402361168607302716122386542442745781362152693943649730740920187593955219333793936310134588832114131007256590128975190597829534929206089963509595262995690479419553317678591062977611376828549000235742108300159257045007706376944423141454124318932495215425081888263048252271348001965767143495701845135828578245184964794211360025718376339407283853829588753320357302648051142574238848099903222798737303416829256506440583859689179291123564501786511351418153735328921255644090789593532088372295907990935555691324581705678141585564755251218962357188709334382480961154022470608205695472463372409863138473860735814109152064647937417191159266427119134491880001922480459311537375643091548923371354118034405385654651092983931672813535177038694729332209905688706385589319866995308873595329396577464436275353017628784568459380410604098615047544938613645754295418157138087462222092910260873143897498774875857924010898565858746788929658274450867464234426814264145009936177818832023370111656571553097342279584400761720729313321646113262396055538696280634724244908412569377875356131695434748437538751910794188931318048066635776112781440901283034314473786927076392301197186603292354003406124702700785171074877442797807302483356945950323428728364780833027904413038637222521768518476741946166748577847937297791769960256567361059010744437419094121427850876917114402101958431300099876632652881980377607317447767676936838364542527628500926198986230886604446695395799230276621565957545355289505103318430285172616558621087941381754190284886605441036623958843287690725360722673836902611295858383612440305824869523884180402338240867399954898400728984446467425673176771001090972876485308658305720521874092355742045741598582185446718764694521615468276484910491966296860992300312565377024097782129879794767514282234087679334431517653615276480476499629144309903126158519340803828080697982324138856940853269769515442048347586230332144222644754891740589667031950112351094047380882620692718705107789367423664276919200177634134171970158554941581148318591092959759237711965982520325445348986659644267399049965264226917348941577912320904200097787668489499796333606167419038222548262481439413840795246819062845738602512467983491540918631865679534043692012691690780212380505961145574356281063433841847738123560763338801121635958422328671494890622501475162813834181738013137597328099403755255444410929453294269328390048782819800276461201923751126488004460804239826167781278428678574933309138417786788858658861221778133714404221790657773553171838740897940874408159154894153480772653451584214437123995611474865552294676467183444340608865398371894651002241842161012588254018805258224434026532793013801554353038517147680849671335207203020390376904079212824764186139722795015831830995041797642758136529632691981260977720494638421103969184299071662309970908210079967471322280101054907910112542864709239244490952108461779263625619584251883477171615125007398446153085666600533710486675134500465334889394930589961024696822869393900350059228618111112570366849448578334841115835121539262233776377910585760178439721313851821283335188642845806501428694631542508312698997943297994935804406664214782521272369672272648644613539875167468243758660104193947501221286835897707518043690268648947843308035327048090869782842996429704353169880794537516319444688723762748607916795073165262672294558161028432040199624643575914867342618090189130326675467911583427233195966902489241780723060582438604995584624318368989814599474219400904204732238825582903958830238585657608003474516847941475867646033993840029367725828213874794875803563222459990773147454133839255971390344159634086379553088147884054179935451649956829672278840057700213685406163307980939260231769976051660521854476701504248661320390420340567155064238167556530830749325825295566077891347668744577286634853986783056545311048202067808071701836683750826088906241784996489936734360080992114342622235716091219063486419159339293282455560724276600931778374419084783057572069249168404493535621152981176237725335635626812784402668680080307673301268303347774858593022507653408554834929425360774757028905724180360119135282006348623561359451199180514742544768345158003191100120225470574926388731306645294237038573293959506362067344449593573398519017540401383916746950402380238767470701800922015087874711785311076238536782113252655217877568189322030120303819535122619797537888489042383461366793981113694068380872572411373382274278761001626352097732830748784753285489332522869829352347675120127480826220015995347196490835671595861756809643587647121029401298166714291290905745297249566403959423397351443352619099708048459705848219010197820393579058929661639040114554327722784850510391664986923533235363633930158911526703964029464746066010342148273599823552633143341409973757775470284759501474238116618394409591216971566485565365565356284419635891852393799504868659985942984737618399017262836848452376904087982664290553951369425297500063649055214645977619467915154518106116664579510320704530433781576482812355195082423058386980715299332959534187365816679520802817958101771564491182784406180252656037263027634698620550849526929230598945038654078679649342758793024109699514730999468598865505287905968028785988822208875403682204628168268898899651698461213370546685590070240172574400045735304712258171259344478062752825823254206850822607427527787697139098336925599843120736760703865714766342994773920300080550029078874019767777513709465524711097428888758223451979872805094857841896429004409618125386987387059662516298285595324490861392280604857739055082629997843290268559974019813954899185798005232283396163141197167510424483650300364220079680041460521088488032299464829681635521792440681006466289437672438485315012503933571672777697161299576963251000683365113236764375998070551190795896841460245645678628970277667354132633520006413626175162110710717885058939062970961193714217324532448595659412040893588348147560723476652460176460710938829448637180703029733199433131738669981548271777253645279937246714069480417084152654744207761490753554573658536060323645594716857511889078748857282505747838500446800273687863443352546223691498952873709183981649740103079309292316449869252929626260717251823585283068355206459738309304874478870330011497057226417097820804214280698412640655112084938199696734331066618710695428167954609716328335578033249832360774290118695875057064266384430127655850739464148582994429596790673382144045187513653000638393057780824497284529776781253887840200564109096472419047862461645274175902532926357495363449613506762605520204416294098024089007484341185916975623087292471075526682317127051653891991227418309037556622628932851330993291902007811948745837686891504416458747289754672150868329599645275150208648675631323383211356785677275778009256636144833481823490697496733667507333344907232281010386650663538076944738923157482031181473600704848503052905956731367429954481894632796050798251951848955268314730756650825265682047360974725129071370625660258587229834341663316868203326138705493876046379973277677724018318481458741976323093596637054791969009826841844002242488511893797161823302663537136592200370181677959763548385691981672488528797045458667654212493447221114203064262193647132204510695832301962367783507741523237496277377028806908371495350506208587483245153558883914207410405248582955349484150832696489518071879018637590630094905799163705414814577618072874562543604958110540870446739273963097946392459347915697899909128604308931592818377404789245577937271514798246408124827180788697288070398539532064221370666158614262954280128289210855012174875656161232359617605508771793278890588703096223358855336560149034660786070076769798838682358963504190094813274055668674361690907155000637853797108184038263836289802695500761214422127191171863253292212526691354458980791295427737334671047987540376054063156494617968450882771294336265125682373859596805870122867739778767428984653456965943854179796636832717558543840683560961060776704057151556833974850752687371536753454022528529273720145717604613872811268608371233861373086918162832831931286115348493742384889276663856742398340788873246458020063563762696517494005433877900876468797592377061313296726806772497282381277683587618546032620693258550989521974364412809979643630884735603870535056736072921952892823201214268121662733109639113251304554961366317968486287428502200717756355731305572985418853213393195046380809721154957959403294738474028324064038333815409008601014793676790923083103318207119749447230285309905144570821391684808823090577647741854637949475018562624932384317804791964174840557622861460905042852333890203269171045714479685937506208040111852331677558909779284690035756166700634389524932189339700068056096486229624020915635655204911029850616149774716240452622490797905384993158938796380804847709533171300237259535968927274018498692584691105874987645459093524287347578043202847940315228486983623544965962454271634990745857362271760053210810767760408781993109093555043707531215607121044455646930326042106955524775279550846878806725975581952697687800240211810493253089863367884221317673933254263606431794841170226077540444982670250049852504824784494818393739895184570285760395285855384312172857089835989166765746214722126201856425570121023093643793326090669247725021403032352645243347794827228192696921735738586451238522405776040901050830674703383564920938291740648055134422752418925573876599827667371102318403852490840613233306336934784057693750326438495724439443442867503254099600982803330947498236255780452566404512530575522017343903293478332624395253982730051668849772380824557311662429181623444132386063179580353376343466431717057222138416251854394925967498891438310201452555845172493801067238286551651305922438721722305483365767822096759820620594371816061768580663325261650513376133242883671618849874891907145634527275263511749146001891802403037429120724510905151116766271156332181850282657569481891833103555163278326527303940941295919168923034411159845786668567726436459804914634272721359137330248501094504610296200513339443777351433332333949416963121771138257604315856115398106860920916900090801604106777631052277651776334841114704593475322076894248021798195767722628498982277472807950990342693377454566667126998899207743039088097302371343668906640052982506935021415980150080816775533797556198278929565330886869458353042704657855915353138519629729351846238244545586490010259721929936522138613992145537569908040202726496126104685839658878115756553368425763737752587123930845823548026052436092449153620032955274454348543631381214350183557668839618726208942879589589886960280056375424968921438284529051511472425549001155737330158659127308352774551863685476347762620705076200816407280975914065100535852726960203837017568922615971164685875247087551233501719664437502176513918090606983219530670445221795748858883815091450213182044791031250235374193948123520693821280100606294621562820080043466031046121671548859259912087968832383700033859019008985333883033248172239150349492846869865488573824469581406164227802660174524813862098923456009733201758476927354821509962679498012032116986716676591723351958738117663730646467889708002646749614158595944092862170987153668756751156259743658045375848859283298070035675998985986226240826693893638790827650907669238390651540935604038038642668076060608882623648543618583033312098033318193599765223125413913487553794373478270537828377411906191875082971509847565329324379772664427565922999265044561086038192658636411113021829691709686822539739328710758620720938206225508317226891378163346827247139555863557588856144955256244996058268894370004829713647488123599619139850662766037717595728850739241406145160226281643099420005918747022877126855502152101654038276360749409860685946622778679425929516665628296537613704284991341158334506908249846846242796485311729183554995008357166814195909840017182452211813046703180934348857598392491973035447600316299576930975625184025255867276595483142511669824901986927551648962472001538861737361031533565862372478449781733431198352651845116848279964621120965002669540967230740769240796150996606901290440502995267947046843048116561882446805071163578804557309321044447487853234239700205252685458586682132253391224750672099677549920817078703922398980932249075335133643649618079618788586102682811091109861063455243902516509057255021685140653401239961320211205836852974866494815904053712602261896764913128447849780577493083297024287992036187318125551475892860594979302339419370606777615627650638903189766694592188657340736541656009327696212113378289240400807735928288628403819942422411367477923998811340045562125500280168047007122322198626547869316183574619897157041388335204810889948274499228971972713701820274368967017937082722715981003661506819044933052908719514131177332403629883668981580190023774591490376804760042208360831460766614057328741814696692663492389872689093498255630723994785928145255636260343517834872512758208088635865458668104826925718994842104662961176537092125302906497496464649900820738283255131294007133327972394538574256587120050571669758983754392682100093390375288914768073444120501827243249101842970502315247231997423062463672642336674372696636934479344625668729607654277920447040872380868906555254527280602770128122172968727820002588738752942800126281812623640365899054372030797377509971143962419809256712849551945461865811035660713498677195596827209049992926016808878817800280111443497541721082917733269441577127968272574779130599301846808715188839102711379218460915179684321437046605128989043540689365207038598968331072188322583543898664528203971251174603596371971277557716138919629809291617476754891956932589917232473305508517799308602396185972642764252811771753787898463989586657013252942936689278177063783059083745439832731779710758696478763136065114597351618562820033337999475636612138822439731472869023867899778661640101877534640686565094100820431310226431708418171453982082789742367042874194102837105664590527725900715790514046791481067362926782330644780896002391015132467826451395977824239272766641807834325892466365916564310268523034203215452036596003492465550333498049156844168593813305653970374163277282090292619970643528736451279985527796892637752612610326760214917910419483325466084197463325705229655874005559449335683748623421333032146642130964963377895559075840432435672902878012997354965814353800587751688189102690939119980651793078700126024590655918969380245688637215240938709146723640057107013680830440742764544952440547943687688013509520684641190305103415812123462754237781805392073829266603189520173591676664005640548073698263689767053278336905642566109156112855121055872773054189189730863840325574926467590035474873396080307710954039433324244945527984252231417805848536211684177984244393232070164941525610211268718030813634482971594962178507803533154341126665939962180905670265961882692428524767065540613556615521948378148956664197885670912762490165322567417376898029671628821354043781231331103064802751233756379541311449718469971313792534855004949062637026662502473879883453025151662263581989726341027564495693802581741621006650079501539478793364211911628403759727205115605802117221618468811292402436204167239065146477159949903592944267389153890468648914014520349874829398901330973853107205900439780228638969061775555174341052656838817987411772516353631330727998726165097028611051242627946542809164560924935113745698360154261867624389485799498729033952679455427146561723256834171992772801372173610106595378438366635289412178513826344925933032572333934144328063232421843603512891970535451206188268503526063631937720077937840674372074360095562268449995579845318573728501196224258340798155946720133023365851064524781843132869132386681757851733726294396537253684474033471365394100578476176873200389656437061951823067719308373420025654559725720077988190161623822197762259848554981463615155271960278073279155796960137339374993387648947143250028181448391977383671972851287176508610969285867263073658718201731055447831605477416173253940674142720116563610740953694230334433563896585031712913796349425574495288659294538074861424130063811539687206808394926863916971810716428315616114454410794561390329819397609783900537209157188545929939402254305650623141106134863213456690399265817858559437437741281991635694457993738199644194000396879930156767354102037963353386691985815843281547605142585531471280059379851266511099742735138307424685605657487771326948671118552265489634704712904317417808893630587999091815538079902051218081329057518867527681354560991821982780240526838806287649098992689935112718268282766790651208091475590999757419575886036002328048539864317574201690355642942013339595765355364916395785368268574982977225190476241592620783295914117893154702442408327540355213502268462792646783225529911883120840748801168964242735706484521936887172115491165381548680095866226361078092246349836512856908089609142945781618778906038109485871485599478712156974631848105145652327335035432563029547767279207300940226478513751280684567645698313315661086614202243547163423658379843189481062803240291302090539099003645919363616823023264101386264842294189694363740802701218681564039704349334677451610026650054180651117647311236470689824641777676994903153567766306368317524040985037500712857531240582794836697375716056302041666300572384150418958121864889531662820291202647263879610869134787118107434126808753691594312932174084725835905738677678257644873600448781868875057075575322211053082173023657944705532062374888072732362637011560489589950534358958598471303614513738037680354649834490736413484390339830025289119592753508857153764806368344581950628122536079022800313282276598482039400778413617441125146844169990484943918776091834042327379321849156094117539483094781829325584610121886025980611037246877488542388272081136194738023113584759166167692143623662605172371476439883199548655403659046307221472804279252497249464142289087679169410146988324595465764722046929628910401487292946462653227619053221986356641053808743193972878002144431228558990849073064973288626051526181465912670663601121883700071160288879651050119600288025305074521166023183899584743842470274564632013387320868987836629693540629835550852361556275065393062546148283415617401363568695236654810744500860616167537459885515691774042754529237968881211417013512529593899751396385112682550312720270828173563207053032513175890363179858429559979032397265327071290878350881000081770598457965909389221361526013383494119819979325862319600181127087140180095368541566652651841761291089182804661781405525364294910127964892327543900690759247540000170935969285660227016634392706263160070545704580918954784020499739794215454918524004457937434768356084279275555768880087958094263698016212559623804042509139165096890478904731894364696032579771247466673125827651249131680299778987281767303425765876881728018823973604111734481971941017656940654099698164043168147702708077570199694628561175779133159844043053147386142746438054929721420633527978901380187766564754908170256977028950678084931314356912659266468468289827836033695320546402581569740847693069392044607666575671277586993976978595818903805173376057803338599468278361234567921474254550604053862980223865408892010229349579310037729221786380919291777931321803322709641912522294966771845127205431627395862013249049501020326379422804085122657637779952647127807719999488692740876408777763382507440666469259770757802046491435719080986792675335557408914654421616107223947970469895407507013159100823896845593883510778622627334301472151638765748030634491493875301009621445809895421451683471906368490764850365572073454348028483737841725717364678608983114168814993546483918284748063616873591087648977305555673407827755462221521533171481686991581471036274099815371954395346330042298470479945028887389523243192833151417934686444649517868812130673946033841077376433195800924426584444758494673282615083974133920015297229430820551693262006691848755211285734992344205242958154367982756400683569328621172097876732762188423374455041063780334490145469931818496976436455955269339526760373224318732441092021453465547699140141863033357173592331913265095526835610619930725582000063057339646076669445008618157115125500703613529154185771901967066724793654109317084134416688803724971938673338994969857687257343299797062816048393837902068168046461582614525100542184825846009466458926121112702490890504971522358488863100780269760350933987343906774909311414865547903274280706533667465858409987325126724026305867267394263989460531582970689186240343433263610420686153963085914470882109435132499700417232284635725286855366579489850560644265352997089899194970454594173808022239845417624795198817333249847236796902668024203369661142712806656272107819248219414993729255126980062073267372678687248664307038846118948194839124134092139745470283684833507829466476146289019304515732247808187636605379262810842160616407784547591631307487799560813646263435965509904891324228854204441671982073149320560327397934373152360162500895473597378605668178222207034271125609865654127619664176906832283347258549256957540871150175642181526601310462861295611284333136692011910106558077069907702074605408677494756654454298229248198943452488667627875850920548562153938729687305362645047274837591266345684328699888702736837141625600810037001189425923756880408921636115709310806587597292864180532062093250072409359781196411379344019659535102350978072688786147804246329981167655692329678129177501852832273091351257058420764502956319634474320428548949561534214842692301672142582140645050518326004025970918686890304963269609232766977679047087110503500140589908846993599522548659572010330134878065120578885717496113834467353774952732248987237156640335292922848394942463543838459094328275777506110803502517667341611784881790481747776005961266079333772199672778894736901162504112061909631644069963134591551088026085241101512842404779562535280117637810444802611411733213977808932723665214797642795946354566230514435419610947247405100014495604363707559774465384404122642758752916383366516952673952435015247352382652522767124702159108580451256232527837628854936587032453134123664752504251752847486394764521219658631493694254438208613444236851964908857122325535696527246822273355462621207991003990948045199602136382097882586399969327424836233474826703208454124210941751818175053054412812422015731634051761506719533471574877495728215117005691473284896012699692068268698510518195046194177974851784427905642572643856042653688699168593568946391698110530253311912672260464405661109815074412981951455256015269664833163984369013477067259927085884800803320967855952558480612357697605555065767234005689052672532031232535561342937689093345862609123154508182563924605446719707637094441436434001498510465674256408640991329137750609138852009243718952013066913291968760997162386166424432894118499741255659794467165418894259101046611337194277048389353142669721370857984315323842436648725794098288903286811085381911389300070171506381736811009449102030046444848108206937758823922681499101773515884928983735484818113920801842143428619365851788611872006506216120604846862810157602915309754692159094133401822713361188597416697986194992831218455643759892099931743796829848554741827189607844617743233415765481677685327723132810759451655274094210881786547314563960941071186219715278687514808046426842452992590996356268046758029902019013178511662285342118477349337284727928893122061472684512605400437237814863083106801579678532827179096425905455065691130046138911668910228126629117604824566867777028578127159809426796722566933518267391437631235250131256718775927999514913720960587069541547089447093551245825391895978584855779550610475120757213987144058114377483367579327418616327457520710952791660606311239881234319128323852166797824073894901987856686614423219354967006827789273273593532466664632996214627068845902617507688798983913874304571947356424944674972469358154768694439374643705943870918108192096163860781964575287365091763025537767318677310626217386651978607246735893106257995912927216198598617395621971247318910145495488168647967751307899253416181705614161320415435801649852517287305562421724030022115272874599036298440436354191887394961412294523780768287131845094664305240838803557671420741886536701936466007245580857097505942426994673818411207805567866120715083003440943807389687353147356636600358918164140725513014627998590334671645528434700255465859938442075240075713854760000452593101424264251052891481190884842741669575082734101291298863726426051411625087935971343785466258162328302876863948882089838330403899868326032126373208401447923185557359461514722907572997515570572363943655804485837215775294322241484808145146451242826359798658107244086620863539142556582448089067547566814585583498236085791128006491575771283850985261257352532653894305921498106613879218293103733925799852355157326607956012370363472865723738349598175846236627404780862632238546134420731347719097093778218818347053803582275460400179423961516307506263767956392124664260985753855694214626049260667709718459136959298951898167823982840555892449398288798046032481220952693740170033960459185062096262225144864703287481303409001533124384609890468314873448771965074675283637557995038174824089727320959941077923441294739692592402452311813436037699138641815850186041719521141072641884212744361971356967864274498419502152787408923016465916025949916787250517537617457622670793881132559945116356280257906914242432742502194594650710853942433870330480602591196332574657647798235726822948511490715606409570483653782546077390969219438029746519755594729057597825145592556082007430036016699080673629303067917468166901846548390174405676333078879072187894710907134924322137878993835282148275661278377872892255901789678623966945025837483818958868674209613033272680620540817266508325527371846339099768270772421184399273793440197246214146881017097501297916470856975964938171613394665843008165408400022427329405207022405449322269356637492152488883913665982916301469715369979055623668975443481545216086899713647482166591956776743540100029908573284337291562886858426353931616392554280865270413552693852540456365854352932587733875772523852568371155234035718725672816115681432699462523938473016949336478823463725796236738734338449367950202297817724418887934064304688672241407606619662140950027802121119502704617585373039217248984930772553724240206201348803726918368393320126404691360128205555670173052776045309685538637520193205973193642567376313037982412052650489075158331424246721870340100240231268029814908806687107841795622867785289354395718970964599668775125328645457623030232852568218710333297447011033492852769460645441857657473373912627537502863140792843334411609994199764757303488625118466131636453072904174836320064114956795020675138474960851030390208014909335951624758058458588056063036839390251131619466149645509069977714255122001229731305374085987421724025473431379950248086896497347482502914620885470130435942271122533782098715901413342707243615408348964517879685569130739830876674780695673362990010115537364692745439076625983506082111674255269384952729102371487227252040727183661152556343366793081260095893905995075909237361175551919130044353314076916041082880155206689327439922697016336427805431702568829465750235570492827990710454085785704560994276212582305635584093811389632709524067597603862445429354208768688434701060892491780716790884922903097433835370627171876031919722484249541873425282372199492778372073353413346278586214729239943838312131880888702515416725691928631483621305378256005111982051372424310685442191048720547790684023469972185066289802466187150849459255013848920524497940520933367191346646827278118529865202308391917186113464341958013151854306132330905957875583400295567089663833984138225414938311105639927100732197789588239473803274012069144160155148969636693297085684265840944920383834020237695069025077270202059533053882327677747475470930207987501621638348431536226853719386558635744346891547309114745450224451575641971354584307871197457568488899013917761278466578047378598178142217727396413140590612392386351700999629174289300183060233417107003092666252133242395780421480842682596952674413652499941640399206011635055982040506722590556197711572033503582798746350161725727842180627122274026807072926829983347889003370841999815752340318798407477275273385016938223949976967530858049853344223460659252569146704152627122536919754453869150937682097896309641318814232547558910818202090787806152221912610426120396387438562502081631910287611965265864698616021228576176309833083356117313592815394170238820300336218274972423183079790537180488622556102009704884887774691430432598605033224337283194138321255520568469934018076862254682285221965586186802805663174393288697897129219683505801737515384481174106565947063137869447924274079602204482846427784646575854297519548087955602087019289154942186918423473635180090506934271057671193076849425504705220787014267043609688518826168057998943443160955642673957929270181974398416830319193822068184806273127863604518457030471504624621307447541949638275939470021047653162431178545500768617973198085808944505456901319616742960785664353480456954192197298599251447402234606577651283567442479383983587278859456937577736229847833186026195113695778287449757635420423839603549800798301822634738351272995795626317007697541654064590219956423764475997526561007742078203051378600775154138691869215126806381538268409421356423890882779855280983299316768654716352359753141604031197280084133953831608216190238388119838666941309747722661129626097251537787106347730035727584512457598175621587591724964596540525235873981172416649227371762932212585270532252540896398531090765247536534049752930855964281660696195391687983388679486636209162895634194922704321783925859629864003103438517833308133471457019742883857704782405866163820113146442729341623156789509482529287159020568203598704038853697358240528527402806696629516303242417036375419640892969489688913491527778796287471966571118847257401909709411516484163697000058261315433478937891881701043291080620195563905780125218088143839272520731828122242731545238229120123172859484024394161564554706061514419570336167362548905678085352473344475267671746048394893078449574281017939068913401188595540872611361312616395676276380186268789268382297902907734814207308590313848696038214439192493517463937335105599234904580710021291615113714140502994499315926964630785198271762279822024959646689471295700257556547404344231014017299204865082169285765300353979353339221582829186276993203948024046447529999051001148669806965911121139377830349733978169148203312630917694532006293271227469082792057726902818805863646829415894484759524221993608530687544434132660746407020750236096633634740151101432938888983608982736058133781065797020348759244088874118167962422231815935715736772427869623152564292165298869937629684202151709103837831643209903578966146872837419838441670555818905838610168462862993223184599377346894994076690190908393325312970652058941716022309338690829154944104867384509811819891422929184263693095746939783222762392390387185262126875783295073907863925234433009790430544929761681496933554441742119990403382114573464670315497877566445569840860832771769872362786603899393165754049768107972672905985725883431223014841725016056506290796370648442379105013818503845122523250391867167260050994372490924623784037195006144217927913481015368504750294310894678827488875605768530937072872515369570461462864828750645187197180270882792451175899415048679693013676870653723167115362945786203580946572544313628501989868273261572967828788387568401723513405789605521290744313387067491202043922958102738659710376399162514062305019133332394481527406987077962430714114998861642917859721334317847857839349906067713799878051099733114289599594825476122214068739625807017154733135322077658980272076568961125334919312771583392243539719822132375292796967141984322185111620339598287113670860141140754076325804118894505472630437380455211150146691087852750637801495020845117336079605393960331693396321454739122472739840640304545151522620481511943561258160575271306996842615816350050270122304406765645552248671093039932798950296208005746232743133920303378045356752896817983339245707939996400114217388735177009021689666705396049296647031911847971901848614029422292855071818647873481187218609860856646361681196789995469761795113919046667055209922942242221352578472726418816503573456089473923046308190028898265885701528128897531096963184544340383277560261206096189807779331640064498871923621193819233355337689641977142512230876542409486183475843471413285748078962545365622066063639152445284422616459197554786297937889755558147369771173708167458574957783656472582659099173895121488497660007440386888555784340609776524171486285878912743227842487271028292505698233621281857431408485576649059756454642134100208166264804749969541291574792277149998986790725006586881669168292217712620211220970062228754469723938968429359136663892000634429469143039818572791349289497345292985949421693439088140654137483293171940320219149895539355777604804621030531100316318402093692010002066431551640841923998468830191509570580914000750988609362281585181996668616334380232324911759066211189559627540808997497043492121864044125333301828697500149134260399733009959033389625909855461419914804913481552475370664813827763983650408636698280674065079814316160857126574051548228500746357179161067933633517852377779630522727798747201828062040257166945496245314820928581147781386115211758763152003445170569620469660212945557907401127327066597195489126933515141200313760371616285273998696844971916889056914921081557762912441192189423782785675863134677202528072406048052367447832797933020016263804611637763997252469911430475680404549315308585881806531390313662967007264358772541549643824406960037105579012297978191075646112252032115212405971236714726546960633643181486256594053588468641624716931014192314395858530780813060378305218457701898251843857224160350150406355518579611427503574810934865384725224371981982542633049594027993913116639198237241657762697887312720937292360897020581716704379784387788889716290200373254461729544995591314547169140041619395181065343543213707882482206221339871006493755718162669942482403901101229973804446660657360027134598648669400088289383533816825736682808058546516380211232545906937793973480644709662467502527668621319642820958081239748852233693127537954515059654633309182347645182804808883335226757905636295732052349646410100741767573076154219660675524360158677996120008628582945560748150158313745030737868499304070676791665321565165533642232503083680335791843083307904674314389095932335825307305556482099313535149931252840526916991702017205394657053670356977467880583914132970275863230238394553344408237674184386242588467982114776055538978941672589162136025940791026210874476236884730791890265541570796855857606114688052009907621952765593992863708382930317831465265122067705993741786089280282033917894715394649194109125109792625049910208858133304935944925356279745461753201960753963111103395439514848240359732356791457971457344227246184705833434036338404443645797701134839886083899922306678656162896893184407182346802959776280636536687889991729968419045078578582761432053335967079807979184207760233725458542834339972885723423764378806191179433584914847989851172724902166171541927086304627606391697579516131905744614309567700999046193674081205318414781371330174938295694320522599214309302206316078457281594429429421044148337569328833188761858778137652042174934789207201955234171583438266476135881674717697814517832155784041922987257244799663387010788947518129942404877798271270817066115026157735699725461846296687418314288576379024868251731553780296997567070626347119476811336000651902725703557898615878487569990830565103700971655858785581536443120494357218202992713084666076103718535350830886264013736179922201104180603043880058724204107156097004929795838407361951510327264611938177192376998134398239183270302229358388276464518892857437686376513368009220081515301269426120798775310241029056677262972785934408789520965600679178382595772085740642007195575216352429109509702196629357841471975083616596747612014577972690891491267678901429860840803634564382252325655131725326383188405936129449240556257470204419105785494831924175176058579936632042190928699312332236483818939619568972757124010821502915913491267081335572515134945855212319870535806232110697096721758837325098715654502536918830157410876765488413335454392542466791941496964742284105358451346222228275621098849857451617025027666886130220077216575899631391387594184686798267573619141206635495596908816185340597352964384372471620623818147828112478458234973777807992889038780181476586336104125347805186173455164327874833489728776872066634433738857767424552848648686974489785678232388219389992139421040412068199357538346317566128710621478289365886051281193142582829886969908707074842590530480489265407480913594718188853229247775648465321814158016451718687474909669557421636417352186328733195908874932065013672115597750432185337358951202607406005841283000761331621106581580667612944431613871913038209210542100305084874644013140728629121629299844037061819070800614996269133576945747701935503477179581105353436141596977724054073612399919878207381557287983649511721214920304358265288956737013879594712941712264046413680160030171116406367535482735789678128991805983521513866110540647111897471669072694142196435755009505257717814583250333937010504380908318757052543344113115828705573131513440188502615824600743593914244121399658644425853527280900606649521959850613862172378819649164657735963524059539947599008079677887113922831011925764873429232352201034467617972381341960104406317164955726485543532395819542423680704597636790367980328970778916157081071984954394588391813058017871263231099700352407334929470239296780281816858640507155352416608313220045792607397448398230030573316903066425917967636879090756737343814364876602239608805415094426750591069625069232615168037004895101636309630673125616752618964672939020915415936280890085562251091625316453018439611176430712687798423825651052998965879725831509617412929676716066926638800317979244012684581677399848360786388289151406043220839316339779377813162959870659649863621259453155359663487869552713620243624364607423264046869809114128088144516282410017179653691926169147218698147313090665025716435660884843218413796629934803825754451366447653051395443784442814031224339317804491578998132070896499639534143515646780354038974025872939964694217870300644491637627791877310353250618425594906447569988584685562319496160054109917328109224615317144625031136127791500923511760383374565475664215112733448458328784922069732977521018963981727883295731909150615533086148328781229399127925214429868252105867836862754799380657301473624329251117869854907646487813233967582570419312744448099226610246628957576170431316189970916662179733839258773899709115294580290072154601497956434041224271706410543849798676075868444735202448743358925584140048286741683489414913015256073738112800664144033167267906450451305644113689667893010390687289134591185005368371001133351325517599373093948289860810671188178986938701376022864968887781078103398539703332238414503655075009736945031532022006040970267812500744340576593314033630333945229616285127534192899120095165715013106427672276086668912548354635587803259595462850492334908610501017481230355875709107856707602934595879834015818114360986118663795605467696518799460526926071448511826327639616601932534320251063416747367125918596298698517087391912570075168997245122599437415450469961949043090847369895531104492656975435494140489535392000562931733247990645896468928020054569586045587074390014565374695454622922750687578295683481823586514429392917530979989243005649077080534346361943789869646453558911099201535493207002560467736210036647068383005017812209189088298044800534433195390258852684481052913422243274667996001686986850505780573617712144104931992472924366524333934391028956901374477518609084002206834909079025741768277718221652241103128505163992417170359728327308947265681493287307881649762547783404230732679916893277075851366966694947418129104015904620780687008986756192510406259343534376209881542160732114316566662270988126178736913800312137744930041224446956103749578784915843674731023915667104465677188020344860086547837514652400773954729669060191688882515484297060139122012378448068073577964583668733294125645529269557646723112898549735672405849963239043168496249344555821620951849361270672481048678753629152208106256202034635641207545054898958711063210642501092326030601270516785564612307578002257756393179804848229581867021591708151396625774835584632736215226474303699096263280897574811628238618501194347616862467802859324970837220771208892346188457328572899994482280895484598936827842023845297081086451579922048182531885099476724115571910655166743706874784178169848683386979240670186622044769638643900231959810144240348443185330576383517794224456373814820930336171954129388691356764641023326375511038864281096708280085205825900805523778995450833428176785367904656624767742369233506509465480249064616286300054420637378932845147078735023144104837727992202890134097277835922546634229732123983976012796801607081052043260606185016610392948220129652410536133693234921085380709406228567445301675108487597650570274597536841530277334015164387659025656167981883939243119031695858543244104955531823258178505239109328894965379973036495191570613900982667679769551339098611372859981822570999353282582525477232968300185945270770275840504282462623990701613207970931564513698739335717460088702606833334351924823968062537334924719590257707603016830751122591612891153077598802681311788950111916089052860665567572958598436112638393590548378817016650946738854933201846887525688538411171005651955768662565604237097960809642036769770735734115265372855451543924693257089105678658476503181650632648781508577030530332330616664453593172908589551560941843750716210469793776645911039245711779703669312186145280700879196250907398387288336323419904303577856953008098005488876813947625452730824481078591769319464658624000070971293664458768250613104139943012343321137182901091102133925688193324040962608950827049289782489875800659117165673878922041748871098582807444317738863130304319708063599379157546138409992929757969051315550829597570147300050927520501672208988170379304298317380316267921860182471096303667928651071588038522672781131638767533708605880866550457204546441451906054507479936972602883053087294142910857027072468633993589155354777489629852396950746312044647902216899391950210175958479342301688640034666992209329009095786288209153263275081511601396953348025429744107590319026901672494472383057721523176951948337624406423151743657883045696170081726127859560542624441094609902505490802748246084187053165187908212836029309080592543026679390827779702400397107810575264476365251955705664411775917958924283177120583784650916244737937321450603973624719800880991272410054467419901524045268629082739828510567681446814310329478365849794120604250345367808274628602864923710493087304729601543513076281740220813879108309780753645198554467520195796110924522234800803270195369836389614399354485754457390332341712983903280674073444776961863777908356783874616835900625067752865959045419263560763395151199406598626323302144948349464315418163455633607045006166929084522311265379295872603071421281058212227528413987964314862892033678011360791031944367384593202362715331871612056971649827286538771909441152935106576429407577750534177557804664532485822902368277774475256327020115755127832089365191376168976196360014191215382429061923877492679418035075443899994848471461018118469438504003710326737095739410424415029060908574528400889509446983793298690066085169250811198257847073849261187815287830731195846808282282071596855878386406057077999210137964939873259029423375858862735271763475698452287536563102260524785483745788512581737930759800481415801245188593157908552286327975313800886629041339044319928147758508839650142908303144423505442207908137949455907280278258251724294158520407067487574953031469703810428001416939861504510433600231567172342595163783465241540311598856569709379632451782361599793142567795865982894472614000408634334435692504817615795710168208501261068338039360265311328559596146409034090869484597038487576010184321560899754374598518446173955891615382065548413568245900691984604869702693219836075718562184275346211873045689284307104013609858681716769649743533764550456061081298684780226363080604129282502523064538113554143929711391681996543367979805959619878343438758920697078384431822759868606076622795096473108501014193322004131231136794290167611402859336729980453109289415583050450471116342053906726907090051868755104953376596351407015287049737081734035400578635043247015002399742576726477635926043991597282219027173212872487216316179987266449735266171713515498650227990700280384002898418853322952081525596650286496214041992482945386562679888484887836932009593451477545703209836871251216958167726681816402820770050809340102799338532034311831160120511546772920706045816561336650918356397970819005164932991449778927015556173673085340737435018604392205105182634943901092275037429617418558130102182215065571269909882544762855068203227348329629864773739224499149478974757679397599625883765719463607821578359412527448655369003306606870798909448823023467720253997744709645070271276746132638190165791506285912250625250986429368812586875605980492456591154563009562763595090850207554056778180264229465397588132047321726774725866017011892309031165310109839671377940267490775384703361624884207483016645067480491021292074218182666976902355108500027300500538924964855014518151473566576784985052312530267747903800030758080182569185410433333659846877499774933441890750573072670015666679289400045883791253094614751200306172290220138356209065161095439783183840993120586614922759274500028987170726768562774706687123427828921687615943743151069878979328319862749700482561046179849708227839499828109224610223344273746300654871947750999508285647295263246733267708374323838514983898997114542205198804541073479779534064751965977488643749495114150853718338710951969135661980950027247582336392847865396757381057196000780537826413300285569106244631273963152411979046091128883614747000723327420191402299496950993160827914407907685517836080834939268439216293261509762120461089541111417139150478235933105022292965809434422727626008262534422302291431536884738026153418195750513635465566354782051268866765477013031119791964976341134729134482333868095032967683616505777441960328919281374171617941379574345504915864106189908947323329908269317780563721488263667949201085962545686559079264696353109679225714969685964485650457601883695373154457835035587859573213782849272063944960277023906339681007958190581903921556522746418334263404355328374187503146997639548134608204310360505078965248634453562035214418945333493113361227967580416505423696679149341856698295572316364543995157159420589853963196116841047712397568860517532113864552388418404833232980291379972925248705330913578709990470306756565101399984958647021457660053535491530883201242071178867316968581550002091480443255284785815550168640472966449805768802941996230185643123868506727585170516797258022936222565695992381372613436871765774400482944196600687803983199832471162702859873800710341631357132622788673282329990054503799663401104441378532442273655206291318407481237339488776788087516783638904703122783309679531764788739341817128874770117378251314703109726436773134919596020607704701912552339090783071962445054281511920408856869821278208689857837934367350869748139201881036879768740378646862097196382609179840704723902615369915641642043768703944422825085298702661646663038217947994944758414909936663215350514898667108678251991964657952441575508632056568289375479718149256498553908819400661352586148546444244419177943962159033519987863712929420544005917232168327574235311592341057006321602711759045344754498039831961566048730248272205431409744023001626846618945095186012460689342583415789304392125745574390433588864999131012000636838625705196949675918050040625995417130543328410510266244801522022065312704633837736092848156854687273412836749181235957094080846169069408711272756494547317220426732630410522435073206525378246211832725505589063566806539424872098788726045185692692551320285524909886582227499174295049688742465076119134293844341414658762274984179300166563831095567281981035094039747420711281881279920131154659910240364439806128281768343254593139766916773041053981963063645542364337789426592588723536742260383621541142791598924822650369255961298546334262100676016690815601192674526877129354880487797799660349275578425232052162428672161079842118718316450109720701220438362310755876987290122503424998541312154793444554140368302489678771764959932818435296154704902954820437537099546914000825603256842645358587442573687161180659693540858808642298932672672271120042315631331357782618209974015515740019351965459618357944629989645615091440108200363733808491294641360711414738024306848619364297123159049876354941736920618259966772294564115155780642548514128411572366790821735148865198729835692100695469960752919225778550244813863518055912990769482614109968049854238651835500489335125505102750742525239395061381495477054374207301635776748510082970105113274743839973255078776992205247559031941746662362162935202880404114388872263407109684334513809888615027692485891341393831379733739099999380229425953817139982247578198590157456506218440220142748324466651441563423670229425026430411674075459382147049761693230338587793465080670519804979225174978144903783772036448732092382988328648144683873387379976814793721260348366124619844949048172738902040342721049681938347458497457928533199664806918748939737448865297653443713085848232304472916200801756129343485561709243836203054532787159500972112576864866232463590426167177129389555815327145834584807994244709777052128660529712285163558859845145114775360818821255878681797819299381240100355329003178958018481508743954770700905408710611174978527647790585005964881147975507789904272983864819452785788174496040758983235592727953414578092767593509590913791795350900938511292259814257292642922685303320064153971287730836323244094763236892459900907383660521822005781166695977164417197011074354427271654022236573244571861808820113598528764682303275181749641459490902530117354640926360752973331138968987580927309519505401654507291678652976130121272615508220742649815348937044334206035142428245365543325456545584881350189203238091573979833394849943849983919627659494657940161581747261388921286497448505248951832975146439104002324581064448212028280830720817001287370211553228942249584280992135218765798351896118912247781604886690069365256320062286877507050470153653183443328875187729300782830115775912721986080609961677522794216723208147447519646161740055980913493091306410528283018210342132110046232099253058736895866411381364512666542521624967423974529754334904860051914172229700338230470644864051375198902289953367934204518858284230690537749735816881996734249605474903226630376198112337824044099615673369941532209170928818141697088828005434779063317586616270551786659807838973304211469644646227975571763690798103733789062406419018252838787749940086801714127912682749190633974220418882444285503952319336856712248308915792542865208724157754479530186793032713798548670953254352729490771284167953602030928737251896824227784632027978074626663271669227991298938087998240821037525922664287843262589411997859991936033280901801113036122739561008966735004909040134925343257769994600734134608027004303569838621391515391446418558181733540028486133094254588089732059785720443551803363218520439425112615562067132066445745690236909386262603881504607510825125806972451472157003668327918296275452390300646927771721285989522317773853683148237914597105630172736320610209610245406648294497280647974737923775238223100700214447812169804050950676268741831672664218518184332998503780880040689300847537958740197713637476676968222259919873827224214869615801113468752079542035771679575705506896286062108142360733627259616929027664387981544036522812239743935923163564806249145754768360897416351373956559687154083975028595659560419973466548607195417279866471508610243644139055730640751741159309587778892447372734082510066188716473498459743265638074458341434947021199185069074786193863610529267819049094825820384038166626266514800331473346896783441985831879733797402665570619397082874440047799840056555661758360203220041830836330632613536551384926013016391150478864419763267577248957455186243931466933792668344173407833696057831399969723987019921863030152633249696133857307058340845047196418524066697497790766233030810107161341382909052185031467479071958206157900855908464776697412549168715578348260661476585558852333047518794847624528965033520796763464731744227899178817447141020642844604042786187579717108308525999288767042058471989863484403195043784849271723895771965737192484964047500805349039340284098768569076506941120574455155430289422725119700608869376782051442124259762375084649804784747535880164101448789847803115411634198902843854526491262907278265666204071343051762945401789065550068500759200864103550835175241902032266749399640765334828930782207829444668500657446223553453547035526724453287638266111617692547837855011494709650806723672236004136933448650998759704767094405166732095199993820216347721346913382310912029175655429187359969789839212407702594371686027367898880024049933323722718668872270267786412051131112370690539648073161702476106018733073013146552518785121779744356697703362897413586583816365385716224112108414824798445064735067696213373867488697839344647574560970901333569041574179292243758478668038746954588845610255238498051613292480846406600103718549787838211277127974198569886924538891236590776453894202846318407220400934376375333937742657806092238365472885430718348160019690201554166416854677043422355379620386767296555461051823457926035102603570911669147392439177890340600755226222370367961551836255645716795015886973423177786066278199140818542391089637800103303096824851778261757814813788864216969810146439766516296621303007469516774340186597215206781843496703735420086268071877648665489469689940875477290986328258759788707011901260404380149417571347716924792595347905960591386847565892018060445660287094041937197083066398003217302783474305194311010895422992049460895383710530643092603042069933347314811403527061600509583433868356578284181355036606856391339760543998711180995925619348488925959835211368204509401461378021840549435125728274472166856613634536698125133792061135040697663290885838961514068403636871128999421873263337900595781203014093257225038685670626437269518201865149253479436379837644944587016805128126842815350687318490776577084616312460499717971204884969795597826280048605902831168455713005323299523158403513329415381480856175877962841573747056079853530936807161717696825878975445232564814992421435750338085860536771058752839794041495149595504738791032914982978210414391778681371640417959778621366269455846508821678179872427395432828533600440255736604026489320564172192532188347867343896221243664705710711876887220469508376044234291222224905513127760045246705508902217203082232607208036076924545180507042153981032688464647561597109560264261398516466017818835001363731214539354586831394276001572348273782850603362472168337428956972016428300538895698675064585518987782217333695517069570027553225166049359768250457949820943001338302271927811902819842435060906508049570998257226081770142208717466204210202843612112009526638484283086544749611268509754786857039653292137884343739304993123568235221731615725857307151272834615401146025143404560672174266063591628316667058248012802825021438363012446097605586163043474489776762917031787747077443783210193664932978849914243964944142747980347160097967312921873855491711686051250202497839505279839022587036572505781132131041976804473264766207628430105684308024805680147194752920883605587599176593023727307514009907100604580784517674936410282771313719761027361520306163142057344294864505729477536928616011424539296103133412510481691909553069947197830177931889262375711764181717308800097061061703578290875748107408047881633925945871685729224025587104023710938850846391771717278652687360528540737979586150746969259717443062763590483854468474040603109733476236798407323139575354584859407001987610351821555577124724371811272406344928236849134856262972529822114943932190703354118203402822956364087460794976069148639000658162498038966499782570749214096312909158442256421212981457359552580392393874976371587361298597099726877176694261409502198653746825608038495174041898550254112148691140115564515897736231106798059067405269893615700384085771910290916619711914610678362294065457145055763567867493924293715425501859690408717598522162436129537430514915330133182049641111248496340419127476017711286002732591392981830514511442916804400774724144647441381053002235528928446852630162453892792900211936856372494608824054774683240354089981060850910236450575472867864291011358528139770999103232930977513872605055720221792044751556980551612251314265395012881355884777399796543570599006907049673837726066331710457577090838029866221396910392796530104381135457606329946651911524319627188699381095802450121469613338307889495227846021007635160126094477885430291873894943441854745363497997449001708480173681549985747671854391186031050788515897418030828609281868587361324800256662695384192800537539294520652856674039057766246530261840608728750827466528432324286572144160889646116449809595275669833714290888308240186592346933517409439334599894507237980948508456976805302157067405227864161187755886584561773444004541853814800971574853548021761897590879732261689449364201890320781605079597197152644655739994676602570216579921032829136774615189420930158879640660542765351836908685438688457481183003381326986847407610271119537552962584663742534028988971772803000721741788354675661337600474394529707189829322173562531788965242927878626925342531426741962298752590497058374808206567976740951456593175015161821299334914771883668098380221086830006852928909915204883740353748956070205093619450121338180907499409539847661287355193720420440071777846236630665959831202141196872624033368848121743417871879500793472839347457845443087489122602250499491729776801935938101372432038646087404570081503043825659470226711782234910699367569244841870362694902286567142770487707898579439374764104030736342560425620969417942018505401785922060157218227257742249510092000769630612465069670506870959148322843884658736837157519695136987162534723098420039292298755543903971407160310643455798527696658363113018213137362009712033746098717382960902005078683295217107444945111496873338151853981600050453352413974628418379065478247864490489991008322033838958550986873835162813879128227608815076852483514511482223048858185995061486224583089105260769489694266277835634912575261479452287412170467754124828593784706474660699892123786035784119892778213477770920791331820502385350881494285332982227271894197765570835098630758780597045957288945497675234589916201396361818777048813718280086994691407963573442808687007444814987025615297263161687449721435338093944719969998829802761385784529088635433463608171243376126499576752332685746848919942861799521733802692236512971976478937371689739332465076695294664279208303065867435431033210960506108650325020436903936018589969521399359117910329673028384499037413381128358247279498146654424030375126343188578794822898381275242841060373316820588548973055807835043842677058324408497786217554732243042714906449729603151347282396972869159138255926557127210203306024445069576627333886296602266013048363708536743849607090083090941033694931545087142133331381771045360915261190414830440414455043705317911596259954276570276712092523875807480491137760844212890666254738879196681454755862958761318264269186935238060236558270005892012285207760103372304061205224856192030170558785572632551107818194256029409591343506259466099811375475480885711630600350748503984714345965730636121478992999179078263688717604151985835832872947954251346474566798888581336270342759286394567148722519260519975597422993710754876836062768369913418021499061303736738337382006937521503464716019420048985840466798574508524848702691662012507703639071880691419450634822389817258012835259576448501317863553780932228885064517743052902585380182251484548705926201604700496967652481003734998275200763918562514812026859449430994656268125678466073503913305931740277947099089301253034256900481111545958482263773745023145441188522717416585324035237482956076122719295589942600451120278134745277076719529183556266665741677595822767034423162877729111156277430917372647202998609920719494022170371389546192119677821463702179563499724989643676753355449508820586459775563431228394394827456462185207320635000110467232960279393106237319868940603248630123313765621644202021495746671312654723916486273975320246134919417387202288034650501942555608749293521550265647114604470264891040897695358143905882652789941215559393982188630139151368459836111166371120548810815453228646198094709655150334564573433761205511011751351700235796322056955454067008921986161363008804720028782809472879552328646205032067744960358131553026032207088617172163834252794403623413523220939542009094363440189959781828181982383739489980196442774574242351253063205420515175948837532149228661975279251011392615204439489352867494477405304048222638258128080384261551933088471269273911099252574294509370909001524725054291094545533436348522183434256579862502794209289796164549077310440480326925240613020150022853449550227098835409599233043379947752968068566327868787815832844012824335710090579342245728523687480336521171018126561080862308882512555398635601954728220647430222816561729498737413559437592965067637434086016876796409867801510834417707893150780117307897698486550788921037834248306222885240333666473494758234645481570009527311478511708269529166551785545748517420712874908947909566563972828613783598297869419066157365551514296362848064528801349890195131595523442611369729205483890338225179820036488362656084443412747168646561136592231885577581524102678309175488358206345678431238413204948203000458673301573437171263472674555967061280257252613080610241643682333313422650259426667192272797155826800778563456930790690274567655914938196386750117818808599857615787237638160917255067930416910829448571891393499140366668619703843376842332529560413316750821492992231829335942445750728743393305858317352789395348042829900572943987367718018719323871395241556787950914964246415907895038975093080639288881058170788197112195207680298645476335951139683253635883974535357163091380784180197127234397763818393636871161296378883216192923657303234675594244083771419136166503883710860213309041862361668930465135401000616570665620785012670028875384632956936984893977214873838574498387558871874728146169218137095852614579925273831737600539928697727420439349451732528217577315889699535056409038933849944943957828329807299853142723637650421609772818830240580882949526738524501982766099789686975501429863052049690911067967684765686816350976815399944559818591672467954896646272691675874927818089918686117385962583256772761036963709037642267000725666685287336450404532246635020299104167895769634931926482871679288963306714344281462760806980833309967960809729371583372771524990342907885071052002759627450081309267464016311380418975400544936168522018679991075377873507445188076562745324895463541678829391159783106519393573041946655990738401728278908428070895906096466497486905613062341964974064696419498894868449643386879464356625210013420083007117542128784591121829846311589246359918834358679161156630136313861380783958633999118715867685132197347486210289224397590861817440666818438236974343034289580180560458041555395418135619071014216984433629773604223921232764317114562983137472685373114119739555854156787198265558291937732552711482129433307884156566266779088338763316015156039310849963162996845910464249640808722287742774587960714757950215392258925738318894032687831158717451419411875996895525255551104845218139059942875104703369434162271956384373983263697764876362562587774897049746463143736578563035033198772393770781298502435761143629089012430348122963461737504003556647292476043996722215716225116360625874351738131886215178771457655088421345355463037114731932758350287275491143981696594489480243869278307954003900634331632057705039585201272359052991541981985868716171516648496614358080844655584028837390870359377972243884783526654235341157830581232626936469379386614797393979105253085977144703145719297283736010620055205262192108899483174426239555269461680153687982939569364714654466376714170523545273414883537910889248403687620128774374051652680699091262238409074044607983121788427139381700955117090116897471521871006064500871661509799690390830610795716080673456643663758497082501721756528040311803428175648204631524441180328975347223853514543334445837244753722306619992717622593029589441741777225990092149496470716218241046651003538097718358888502475372833489550440275310936773466680199661725091777909452588945375865842883157210392370182490632523469837878748258986384645854094730214556492125979060818035221842715697989602966059842409829305215134834929205427402812551617615432477542117735248117266193452856195807459714508551978715267937415146518324893951554136258511969573860481527241749053829543577749680050148052480132203603664053540913549165344853820542177048459116856169608056619776044792638838228076493699588916321225820232313030949198414329932940510098794635779125164596811390955419184031972721834196310402199137070436321783573754452946941563264685641228556590910221585306623824073928421807651097602530058152793398694473945685729954304310697259768351995112352025247101677285574236908792729026059743849490417266004779947397177326263129633758137695083843633711880310223880529684988145954415859934831096573058130133549636233134405881001283312137808919586556247131260462162624347181464100080024986786812615184628102326636127100876613964480504028648101852185163128107917432293052186096774184701107887758587971106727205471036117838236251206032934105918506980729332762710507902058232869455038854439890402302630465165454935132508681011523255309253362731329698159790171656591824723157707785048670627672672903204807069845789016413547891838100766208092145723758049900178650894664067901648465288470927955910800773667765479789911749650490636526877441981136569352307089039241503394717886798015683552856836423985945071858069995840810173307377091613177781934628098316054252088042119853598175936473066671023018293599132566910872352308442988127517795126469022737647067902328781246288632096026286026658562736335440491464625708737920422661428359636630716807118416201522115148138079812018958962217802829952807560906544995909111783031407673084754028063290091794809032405031086788577062024940501812351353076111148961672167496720482937136245224827660849356941778275951515785211658079907527670896790931975728804766985030153627523050404386829280417187230048189909914800887823153040614142164930239649217560826405247311227300221785608392309532957866732366152095388891543412400611936012238731691777730974214859049143561976434050984158059987534289796090831898911108376449362839837986422601984942908949152090593741339119675751054229547690720840190848632843213619275245038053640704070064837758378674912813501777227591332634243101743304857881165632096431717280402817010228352382753528921046442797564884432449284392232207786508592719000188910015610709137919073883593793378596910097243565979078255420749980114649461358278364329737248893940032647224388947209789867147125253061458020053326048586355736253666723732008002633278001079620564125989735891177126430326956501526868807172874737728182470551730887780528697592437529136304737743196819855423638788743556828004897457985468285710873391812937130529514012802036145977663662346320047851314834442040858182777387915651505834026827166314669073054179973596891109089658334059410736972089823481177809339309281307017882663335371440331656531644427257214809072836961404710838667206257776262788865952170787455625227506850187868170641920711877809728329384553446693494909913977293063089840469838426168964916198925256794336083375094555982529184761793193969971586901650138104957364605832199335137951434229896679339459196996604213736519402425951772196152031485263834087191344443681653560003628789147525943175796856116146206913135455922432166997187237899649609916672833367337133833948389854515683077389952686616819183565932720117106023003065959577189846886304647903569109360134728231799272763046853309888124228029238317974381447066066874820705476357745385764338032646337621386961771471384959899640535565419344660473807642052214146511966569503878776911190102439645516108576840499099934541612075218377531633117320415416006269334135199445800151330181463481080772814712544812133372698487111249467935654441379733275944382919381707732278392191968637925029905937329574912449412708351262445752340632576245274289396977677306113653884697605702134719468953391171471403405004987876783632905854632481017037953827156116627710193963179850187091320968316038283786997796441748982430128659024384294352075796379317842266247133864354112126824896130398655498773792455291641117705567418626920519640349360463595924847207573714802789710512286098000374541919142299755716018426034256459882002675025132052242965018041932923736623376235974454425164575246049044211479537535308473135516401051766446017427697566093627838784280792048351255450075803643574261503936396370766718799763122203858093378308246493437362140801550093767617084615508293828053944923459172968554567864794930415519479861637449719584763106186849611676775169020891607866682094793536111156570120509650935287745807839550957004519149732028635401883856018195751718034782823051593438086658918027689842202489906746413351045985081144638568729377845100975695680689403225029888050964566085653781538151399729010133140933063105382329554250173263290234616460222682728482955683792060154915674181589841700502242939219552318066320280643802561309089557920597817048235804861121736581687278442800352939243073129914227121155330999099971821968990067445326915152520947659211314190516872247032241993645318497242501912573517849510852991161624715198527614219114878860235580565293111025836965958909464101777357388051029002688023716038732283489766666433324285481936237866906866446014742402287737468171608206376202307664084666709252519791106248551890710665004660399423354529193499657208845925890987147797263817019685466008213460102176828568232429836315389202704169451757156568930484819659649466966042782592331231632746181981895047292842127686097549674744370960239469063511649933226139376996845090003412130618775075560201993698924427778181561632260939165328585952315478292092140322472020762373345212622602210013707488276534421228266946196915370086824657725816754803908114879524016566341872753502618926815072954988969043477732129957146313242340202417480372419163536707117471197728704676007694164170083585305310083470798246405569177196559300091478511671411837443295696717350394597521767797024794445723438690261990929244772271426088930343830348883092274345008045874812731968655949547449084204851468036403939354306612128526087244216137107825095511772376226766634756063088125028425250049390986000729050738905670672863680219680112252730563314864364668883295619145850328505189977819886018729917086331221948639965937719132616778493215076068660204095153659864983454131753134774098272141989932056752766347514889777219179951376665592082564357349780313436333396451965909475832097244686178454520494023633420929579428010943891946020555737862191552834903177386816188662883839009486968160887140256327933057258017756756643778329931274723555744453330294856395131501941370343134722033072608014754636966493867639998207278736487756300252464389283563554184581583145183507462651402781123961559323174211076499054245299423038639887351864330469025513256296328028362516472635950260521160506017916394232849503613070714712080920912004856385356346648015918088239808796082058540414822380050298144895313707340066302964201733266431223727231955527645445799632453560318456532935797574004621818477113124412813633213312905496060165417915197563870370724913046603235193595548910190813189817794688576712014855094211814593719776137054848355476130111051299416617945252634159393051501966165989428268067103565776664590759424180623528528833078359207082886114280261458259312442123891011938524969340663747950873943643225070879865941073491689970848058605452367953806210488918779552209943230959069138845398680476366621655061325639087282219724692235604221821760847381334427793300330031813364695051961271099046290631725269775872705446840293408659150720841470449692042173695061152424744412529351983869707810427206294124333643137676262077845578323778534374076587669656158865922977649891471942899652893200922702760188638387101314722787191714050330932047622444232501993425751697832530308942107799496284699216046599174042358373271925305586694875753906021621861461959724664415677304404580227398676197225284505747091809822519202070812830249400729066828706439657487328627860240103870478835760096766923206301480462814932014050116818250047814505145049934685574114875086424126728294125056775363202128773602298700828890309080850109014878425374072469991405144911901461915879563436526676913150123347918909712789428282469552561603209618634239836769198769790667923469389504951206093737256427350749478074261002747555712631714570571587728227950165863729949252762055524617998020441984671356003285143511891656570960760592793248573377980325036890354220149841139899223335698586916845571932046374134205738992862254177708604248909566630547117237418267956677184578765281559773351300092706510718888253986448896819923788214708855298323797692719216521925920937297569954095494324465357693157111087975584258585776878064620197385606959423293487674481466836667292110703126577492342419398076420553068366770577719946936094272332167407429635810629970482535525569186175129422196659598345488442391040387188779171623295708806928978309882702440353405139717312706663677154935216930093525881680510163578860166970095600835526948794261937422250151208815548484581211491531378023737796131792552875562682937375497654231954397362549933905982916818213724860079465354290715069098347388139322220144525220016688416638615073895142796362737351887216362230104283964951025748302554060523051627630888183764655392654615293018546630440416885646013943747970872898185225241625111146234219775536966414575179197086868386272901440702764309532957968661263533649276878070390583988974031005848767635416827389547529190387053798617487069557668479473034038827758285221986771975097427319834396271610538117840133434134979237769827035651543329842902895982578143032069391935308610327303832601163420839589512971650527796830796728671072655213103193775736730570060105410866819315598491447150968658237782321212747931103060379268101687995674697560064547959645604140797510627130126929432823568256336649509269457009896067445206318296168167655901398848093517783218998053419137121775329328452691370336177093915039545903300060672776211523141662258383880720886777184722013344045233530354202420861015293395477865160213257282060117504702667866635639403905901722264552303315732398689237307032620528420117029584890815673369277590860973667184377167818040545906488154446593983112103162663746439939661864122415087212183588782059732305061085657700102882325340339404599633085204910559200974919110975750304626660678154900422012040853075949091274059745506572465037215693806578355315803459794089043095582241540361099604232612543271368291916050306252955370465556745834222050999625216582425287735261236886300474619424276945971434355314703856333671138200863978921414445255668664305933355185009499421439625834272444613240466114355682949672352185158553006745067893494375982159574534256415123790084447711494601584989253419158208690540999730247825435815120701621771885281113430774768279039395959380260303564429445737789907174183469573218134318216461497466401218808933435663455013135373516073712873364850395180435415837996715932822360673240440233770702521684625149183513676096219644121698004640980902792792128836305476040623125090068900398279582776537372269702583735130698977636521348035522063855885854629752566756763743927969745931493700567226927527603282053350921912684585466176016763092186527654819169818113544443281090340631013353728447402254216367017926299192351957399641484658462439778570805649034359947485370136144194859661117260374612598638700890357520767869580313062957675628359488830848658314879370709784374117421768283116843343454143408278168843959130399973645529353535471805706580735195473118792003202004435090388364167611253705401922811844958457927608569716892370915760081607486509033937805992863876846370198018411062624675795806374397204834119668715008386824676794769688423934194265504667727458941581129186101448491942807473386292619290101910429521292050308162408277154606524850678321236529569488931697553458901338249044421804796581360411531367344057012008738943954379355999189828987219774781440700141024649802180077629507416286846408993743958741147075814112085633681523336607116513067920087084904347902817841119526829319148551000629516870740067152695160767917634594119844947159127476492396643123146083073715483958606991008733432934569319788766352988459777205274899845304312742846082682669635607134287764321571442583708768682714817910558247287382762940954135462936565270708767790286720986298177300489733104903605821699931866514947914779270125275217560080920412062925947989849185729036283848364313540047782876093903241029867396953664565092081914708629517799104892279436581163580481920968762487919842317805591823747133542303071560585737509438218331081145322282729267304741956871782981495485846060088554703787918795904392847938899642253921128145766315762433683221966413927385458526820497771540376585738944470710471087772951385329987583006554578084630094144875377767866390702443573865052994110455077205935370176946101222317473595348208328724300616194038121946846421584350358333544603602664617176390858576079708954590250655968523666012172389164285565401748965455693681499672047088314928125936156319570488950588827699098341059558649992234618420547062626400221044294686276554032589431741274359318561347706477419425566115451997792833650224236893767759902149534123154280014895187013096416294272203492120627358120569770171436040463111841744066376872935622019427541104723540695021608736102700326581760079263233393803179614591700538966852864700147044916311411069604239666468177282800364097474355343341603733448627710139471518426184348860436845804345928410898631611905033566127741201158602636590012045945927779366789506509696432141595590370720200308548607170594468381116686065407170883527416422663502686196547012228475221763195009874132009271355662000753256252528287741709251768944483559473914488494287237055276891492845265714246589759579445261479149794766148106825602494504707389515322039416081588368982924667614667841284085249471116235595736081737894598828186383428757590237972606440954520323360249014871836780649785743651094305092736240723843101881000395411985726286675317151864918437753943782646090181089748446605170292080263061793104690515526819508040673668415599880635767602499168183419870177491502876363626521399682764583557591058477398144057425506777952553023098201882111754859457346930828657376653081923979058449147762874057062318268589730581040782965109804348641425684084520325079644029720738467453564072995759960667644783660183054992478942718712848059949854905145106887664888158982277215329282868429754578811868571157182025153980724624931895972902155509498548826852120266808762487810758778654666240426505144950656358044139307018033125204796663192533128209319692145409801483751277127946207938212097081366785711366151578152691179351944529131748543859666447760773534954113330411740226091844891787805123125496249306778901357987731608960164144138482607227994950214655334683986614538290530346184072924980312506868428278877194865748097319865500835541688705723680655474783196039170654048910683461081880834485002487030043525244694076095979598518273820115781606603327800378035565277400414195810285161921948436545150830644061192208668499348913394101392515377857770791035621943751796067595506172850200994494950963295551688466027927926426114792241534704195447001676684890172944417411674866865158518613415923470288807786560746385489702866564657447328405991828646412369846567965995447423191979538061474854956954623015459681222688379445921949260462455929893668225305318058904941776452601072181710030087507322535335398055155358081005690643081591163150877846156453749748153825437944285011983996202910380949285760996185827190680659389924620455187924215268646764744575330898676736083180672925575678588449827019515255170239725542574412520434621851062730242620254707404826618353690317139523952800675354729074613141179255769566591405669220222594437536226634912534416109149258134876486729566665453218019183954244452762624952333405788391362472345023008980272277592034868742024049046293365583036406358405459572158147436850030924515237127003896850003411420082665238037080977991172413214034562891158276047329682691930795042172730063113142633278074782952452451200463209427418874881736497991873125382654015654686074861567531104031752903507792159878672377179782748715388572999145343889449647796120647057206962065628929368760831467274024176068302519327694300936602715496889908768643943578126880491520737583173604760835633713431754161286976824443565276161023813791554527803012167729279290066236617101115802615439842246594142914103287616709798820795560318658893084292460827416294169093092090312472576870020556241279392533256329937420319360783039484604773426360437637353445943196405033063437422086046027564313232518794702615904596726258246692909492014174854401550844146941334465716968170501607915566448796736885752173574699844665164595528258723607355228262461749341730987036466503109348497934765555007597330176885261717328031438321896702874965612926225806728802123177292660059547229283823858011751394098675979394565782935291758407837233863679831961443590803458973077805026897619297044277380225432829249307611247077419174652113888057381818718884973227526272767634295050988398302615043299871825303579085089181763398674901117188178985499743596178665737003094141228624230743633786437968894941839688096672611677138264934357060601484251565185440354759616120642180874432511555006043659524708644406313626769257663828065580194198216575959664471086939521436717532456227978052014675350001093656884593385325865327205734372372089400931645056708874474797218063183829069787153400637920552936284695972897312276806630542425799212080126667649218541406720039129167406256200649947488879769755463193507875447021152112132968578454959601212898408664282958181694885156165730466774343655128674142551942871820928322766387811127603110441404027763052485742923563344612426436054100587873455633145379769983356697307245292220328667609061962659025217125637742205031800927076178937485040004107667782490990220983857351786607337561619225257734264414894564830711327638577035411060227633795400410536810364042153821804438794425448661565566916889357482271313190446161789086255548508933308174746559980791812185093841319977620841069887493140225258469319678118949964362348987719241987010521475181919809822600380010667128830758354622757022696873397536033732829575861844744839842595327420728488428222124267717163057436663981116682637632620493900577420806880781973020580383487434726112282949287903484597182649221643626188335317919866911443566749742197649624487014509731143957184629792791792937197917952527254883251896838652592747889400463001815448019990625783639561093394398316564861441139661362395279000121415257889642989217370868807330930803115945975372117019133563308335661716863869365409086818588830326727773674866965372855608562231826651916827672769727708963876170701153632704185028099444778331854356777367571360922245162755699566902602506217305493922022922846785133634908489801743776898773590788706180952403181423945927848014565409747145265577393794040805470804630198172449604839112762435618039936172393301851882529565673393803465440366752691626416199802633650074124399955591127321178520203865639075837029157194863660113774596599793068986109201181323591135978993428748274955727307861041354916111089677307191377247057749069013116163893047732093867050772349084701246739769624721261114584396477452208130752859979224654960105783777391912258234194607244775210054858733737073864240037409548888692698387651215882148503882760685654867552245551606601091211307279362655340857273121584863101221806038730493806243831936108488449708578136582176948389853869690488007395962910636345007690798998136938577735934325367203546000292885699820090538426086515852707410845400411867269797914384320404977272002511939701048983585169258090481133014925561153172397349512347499675992571557677228766120465151008892922511221548528083503873582096773407974196278676256382429218819953807643979282476790141899560434139273458137975619704208755484212583859171712283322002137927064052356226443024578849677998221893855604829140584056879396592421465177445868841246008928808524753325867309193284955940482775018781880554324317468315478543366431683000703583380221607887135659607741323625852837910883758188742614480621466288709740951279000889843770521013576392285470943002574143866610798696277001476238325172241541080101355442198405481229901176908593482578440452323589797291453746124377213331161988047231079733991808774939802643124783796819227703342263000290347392664417328673423494844802549527370743668496977342085576197409529827740353831460551024940063595914001029987310747834423611285543183028062625560545781658116219855695360549135365858635719580004971994982038430531532670072062604946706976993128520254469489175892041974263215537229749177385783685349570428868337133531411804217186257180237186710207789176078898284249374705971644777784732171831974072016775325521514258638606434676868059465502225632020361272809879984865732099855192447620473177310461306468391738997472960422331792791993999751327107542006444811000270283691786422933133010642063619369721130309545140551310899218448518998835584714422275495267404543442532525753251704949461954191887335674785222610363396437069625947459197319149215100070864133755297664188613219102679303242587016827207827319685482910325866367790674496994718812563571695252369670456853832848760290034393892960573619642590078699950387175740989751684441267339968941372971389965607207644326495230550154227700771505689317235130798409269506651277134594715740146572126344361210611743927491860726121310936703810210352668335112239833932149906818989894269663416614180377454023604824075725294299805048596464123614561563446673844164333370537137827765236245992724574161241962705724544925307348322765850851446425401300588316210862846572316311171909710220672639897853442568041079127649670904882201813143499890045903572537321416030268183024545425321340331022922189585271580091960520765167730005762250724836784671395258244631875299108425066485161465215210520143539920961498872325896788225196814722139520849677481190019468119981994802598059199964797706450297370416908479731630057199062759614912667427251279882097278007847394946463549254599060005004867525794547879641367654136532328636164435247924274798903422225473899751997897484073823470119182698549204233467855929503644869295417790713823543162560320713768206299760084668300208526526800136771227994489208624388893724776742206488863165878298253877479486216350068372888404375760436189479801295051768949308400492436490177165917652776019052036261749116115143901378880772835786693954955824408344846711222837133620492606246671459601862289981382103629655394460093276637430476598291494159913616547510303916140633091812140723138161903115281210892270961782562329465416704650661970362252378917738202486600420094775737380189529667964284580401885893682788382168930602021968963445506909399408080710027791435537635089268517797699233974399447155283545142635639725505305068353780835326365233633973572736508919543865337194855502842526254220637260795161720582131081832139269262882583924920139817061168364359511899450813064349261526817882916695479095513653248721458650221942522109012385597750188288803649400244080071907056312194082144108591218076288509377229385758742897590802700159522157862803372846305022547959923882535438984063919473128115987126458572830739214171500243697493271800654631593371101231845424398375665873423139813198043153093835960478822922172984003031724306279587583927268938873298425093084215443398058932639008722087577383631311326755616140506965737938891543862373490021162003435400499874351023909265222461599573586272122591793585646080785848854164832785058518581099959890378153283576653393127178557586160119165314136688962491590428853098729884323582751742725070799174034942712271004041533587598539167033735406448834648288036679121693830558382868696652395587377230572427804272413198009503240680800804615976287108360258720614793886119263580258946439820808968312052883065219723872570915911805523797024520099925385436703176823199865107846495670056157245631276413908433242564026841107927302399534292023011577777815852562878141444183260199236225425218931889012637419221728620027505321048530988663980101446436834110936517662396165214454069406402257095133150676733510071161136643572350397984809282061264996220355380412916494150436341029793066736964099865805446450854259753825190618511664489166662676807564427983967830878063587562133126043951606629570824911977960011527493890283892607287672537334422950765244803631923581188436670063749978152402054809796103812290962289326840483641263581872759167956375066590892171738356285298562804413703627671022536081778872440928979676620021074409138743436572230047506278861110239331452212388849176328984654227776711031973694536144688395403672680138864770410001636889053744107101791791605563029519793534590633225429415958621534989065289085229455750895367447001490681848720455378214642385251906822162093507770962614965561761784200340430847179838389745722499790748513633484279883939229646246411243318218469471011160725035249314055632484062488001189747817984919581033227941254328831697364769098875303695774647579675815257129947240074281148624070286991679209731795161179897598043495174892521074663641441458943774471788267173115187146027990805052972300720905067696840649784733960092380979485859488705175774070520505843086506805213263338402093258202438630373902763643421007484411440157331826673900354155732319248786876116817296240341694007898749085787054232072669625115305748246795914410901080167337964932767837190703317554032327650296904816092560967454258127608877308489273524785620666151515393903791229876419970357677467434769924458432626724699067072684931544426368823845566250150597570219461426937918424075257136446670737777168559493645996901406670250562024999257609528247193771885316555268528076683113060061922879622776411876277128584815999202979426434732709124604469828944937070738064646351007691747445466010940150901455417394864584544399346926870768727602140313216505790359897418967159149083438644399142190054896473723273292576456146862811642431273342979419610963321412296655164633839888328908451979328139807649921154710236944444769757319093696213063374363899177469600884793172613228304565422522313087981209177532035602667744781499393111147325671930810385801290257812395801476990802127784698506476415953861502412448585702445971046521987414014431605464189322399212517127049739721266056481398335506131292973224869899736470659526813701431569784167524304141209743629244383846173277245696397886619208585315780167577692884412969758718895100388289637116532093484487316421417558828903198338449199181604858612157122643778342009024915998683750190058082081169424987306774692659147861603289026527552651618010996294572838079968513017540932746064446160114016186507399085562107284735158752328451314073862927527879817950348186477578070450736954478845511639957190453421911207785968453070622069083716738530290109221487793484602788129518299201778817681911804746017078922948439259690716348367070573058987786931324515459554276141285007343462361934809335204956724887466018810166273186950107463473885629328538511133942766080159117860498677494650109544033998843503510673055388362428075491188247008656621253994629573608997085598181021582234016523142480328168119703191191151399291150300930020908759101006314914820141078795819364618309996441167627841090787951648978806189671532843728988295624318606239447829781145627766410544504030894857414907907962175166787363043104396563272313199295949775786033603462872736604587881176538130976297033854040641889570182925339626363512833441170790511922026007878342201712099093828052009253188151973524239868419463010881546490072186741929379939650471260977862671283673163236403800970369179860859570391298489021037130204600555025688545245884200721201456311815858726715636477328392562512524224280198292486099809819711291845958076337887682395586967619672573262919256423889467351128075758693727459213437516762984495659731273866502845377727448506049689004004504851412468640518951198117136085638741365516864023523242141181339570517280141949934363896555260243480171907341098830579661179755912687419093082162567102535735126682965813567718370962671184778533186700468496536317234398389056288043733318951882186171298248761264844865710340321262070759411337605809348655302044091038388409711071042053817896803922166854064567431624571849227627800908154475875866612089738596751380957290053759593930044030491513265187267193460880509572201012625292989224446735801594348774188787532439925688919693421571248209856464974133147769506648383972161327844111892505872706083801135941347745464860839364114066372892050980336027509725493265935673882981297800801179024876672855778948463209043505917491128585440459013420021747677182931281655840801402593339020512279568581399823086130427136793434180206068215655534964616023055625197020918348939885342692968253416136687693159530484622229203142569209976009349941447252612299618792613902315888626069928403884098893133293698029542257770130915319857443127923461590787389272228901506170719929265372843575004813047761361872573089764906575546032223353713298510612851527152095096814179989615353793721224259310954544882168700188717326769488583036861734495731839903337303263081619397498098985633028631044391171293704149458889356870849127944392838769815707417189994010519031206911524325568941922189488777156568427165915665526995980871840336472652213879885616123157050034677241401453734787725979514196922452758047306789742507298704904630198445669767511282082207520764781835774297260998458481685722386384463765830437539612972028488153855665016735226499889501048767001678814277472133099448521865616149962458222793752859239065474585978685337217167185592275430898868027232876789159334547156873554545278731855862114095365083185554282341987952742886938111588878338480026861357410645390306529798734386583313557499485905996843809206520307592782967856610107338874754652719048443646352475559046649097747504241277874323322643195214539255224032710223521544934486870619974084852846975624436724207072878531057711470677334579325633804526771695943825691346682050494986524147202174842982945846557167489070732380228174006222391096360524089997796379611888759513163999167881121559397142576949155362444072674107824277495515625006130874102101609475166591363202553828550722901410870184461451873521331771132918812574887677261032420047919426094268680242068132967448077865011937469541396858271277692372926523442367042034121769696267339332939537379215945067741792423552279678123585747594188227277786477674218099882953564819122556148324143927232055717060596471736762466155816508704893014903415219860875852482551266903083193404051565742198017355266442128142048683954226128644782731740817434505606550158806079902841537828869321799103488925346367663165359876123792902108931710131486531384062229621248496933418866492458622301430209865580183873024251463237643556791079102077246219326540189836676853971988859161197298117431733552373762446309068371700332383503840700921734266446421080138543260478197510128643963161106675808066941436369620179011041039167969604432175002025794731291961278691172238876640969853313913530579013494443656282136188295189678121388928253260616284213517780572452236169149580614711079951112508248452086210291972695152874716419981454946719639705178774039739644704760814319616035978395426268570744835029227036134743841827872939941953734233384189237716889455279171186212243835387818231870041766347623604210631554162393887211664953705235872771323513806536348232921458548706502295778570586591090244317473647595237052812626221660269757096656697372040137608337657909461532090142543373477764612139200533634232303283730425756219415216762435413346338724862819226999269977315599742474052035156313044694828216076569690242173108128698329426271600345887531678670314255573701220499111863007534457399330015449565275683355784241276314722685396191580304928634245722040963800443107669171950170923027126417728416998537911792890619377042096215408261132113372826393429140997078848545545731102231119653523919449157107028913392583873249012964937967730051526114213751591172887613153306157610637766707513072123523610313891106834796629606017957820116131305962124804007187156194562569756159893608693267423748806262010126966808683889937699375365878609387169327887042839733752609485386782605523302856705316673623052005846386238879230415983956798212171115434413857743753383326682837334011878588761178442958906560987854300844453143736604984139428286131741409500491309454143045697879006155142978708046371754178026473031385117721125284919932322472607555683259045633825045548543445952282236413209977045401938372747664736239971481611345987068137333523183161228461775229827959679902762787583363161371423762963722144589680017464593859506801001776891237807270588890260325466598056158042759573052931321327785065196629993359591424643997433284759163082827813277261138215611340804042703501691657716655401570254686188967497964761798587785572389252873192791640554872879152238649215873407770120495792053440841445787791334099620940135638305833543946727352285396584224526630260527345006209831197535941702965865587716205346140589301166978160666372589371107879514548203349261770710620433613537466772281634339987749993315270155717717232504016416083939982994065150922231793024950881236056347191266106334310723114347007858263276891078545352444469708633465676069899451921943018929752140989580264565411669536897491609625235621821734086278034604181264645861562317689749504028031855389517657446076188964863087266441647663927193374250138633804385124676221521876638286685365663343378269461747685002914864930294703801548983980627459387302367367495532991023904511034977419729103070057490339176773970769207407319726496772097562350356921745212769526247811840900815324361582618618594949188492022921950544084957343619007944582791598153526384984980088670533405262443842420844650271125197559038628405460079387567693208671599329523285744874171813029137981926012878409901822946791346877218437246252342937829203507685188086493289928954257046522898635467971622048857773794793928433561135057574487020929169486305712267280158792454670913330845439571601091021068305664767846611391896624198587017159033089407198694152926280899133020052379144856026710868468259521103915629665342564508641099974882162469559157731488369386634221028331119149719631090037482408235275845687662356055958079384775847632502803552162265085541807509306569144887459529447076161118366733841734800052457397244242412278485405630745773266363711147254920947217955626783436179411645511965047387058925251148394211955886429155296684306909933196118651527880151193116054273509073601268304046900536479154145425429694785893411156613609878214896579798174949815666615364151627240416958355893922166146512397652049781204163906081662235759566805191084073120176264178649547397038408952414596161405186980308503134009682561352186180455702106499543807200539693661710921772196526760904949094332573545083165870093782546431666023462668266476901915497492245153141196451891088833404054127131266264723905552946039836293959452216376606036753331733037429300448268600679318725823984932261753985853661759157592782597119850718230615138718525171833723182200321807472975354231931298352211185608837840326625473915494208575311893662741824886609824922069461356405506578311044738941964316055090703158199513652331457698447734657403351897493006533382880827641206157910234570562406466788404354057578058599065145660617001548149306765311250154709568588893731762701706237961832302219937624324012339563798788308974932710222490124780458279031686930057013191547775126956439642909509415481423445198445047510562862764680822094681121458284659208137994493105731987720930981869897235776934685059465207751136342311858667807977679312558493003525757344012645594525668895677330558385819618145190143390594240349505448917349956362553116944581792024644620794097651783929289755227281256917685146113975836089511588044461391032675199373273424271105946670663675837037376993049418607343041175049873363103625663996119658237040763942298980040175591670033465363729514728760740625339527908327459685100201707861124698188968655632160793486172593544965431409927358539168971347975328132866428503541855544792753674153939425206062786603178828180314806450362548995329892037298871897552994448832417637449101630469415041354262878686379283907610369560780790348429674197705137002122018184329735932383150221209251404602353093383311082498939881340028343328126149840053806113555107354552455458864327475713554889286987570293752595644512268450690941918048802530161728429591743863350538451628465201449660934980420141467341438327256514603218695061618016350937150124178003597048427399415786412951044137835999506768843232951277758470700034273773123329888102896482160645915435725833078499947121953060355366008052063683684922277263093912547086793071420766051542568547826652754515154712723945866563836220572766794483429799267569843374446577215502095049403376617168100832038587162358312071018432856015236809075903061357035848096530536537553793818027937482070795761615514948635909142948814232252920191078542191430216744984900686197532155575997882500826275673834328168794413178300086627673915054828484289091689286108301203988412628791032062429333278647359890174102117794863323911216292945133441642759806401952140602539622837254351517849855023525725145523554757699227073706307907382337023192097289551702441682448768345180506458579772430237000323899195787458002450491421174049294293924840574641218953927832067080928197638412309551233474554792937535395975655487505966599532504053694213245600828589027898649695421200257661618528950612401831778959460889762098507736714337290256454902770377134604659214568255135860834752261480292254322526835893554011043869269338996712162510290690441501029584679033451706468680947788718657187504465985392534363351024025154157067453032262561165565822359124107322797845399988170843318334052455321981410294709773978098012297735442562233295281233663733236690830729543140915667587391780204851471798614697608772210093777527907669543357151974069796721832638412276356307467700919467223801797883555911085431574634527446904868712245609199095078718745699400297037942270926208422232057348028437678604298048808711187983670882739037251785510559548456508036591927002151466881417456380889888535588149610627261595322125692894339541298902104674693630862391660494835985515397375453224195457311644492244376313510826220408780466237175355397306118068215665919938676775623381997318220548773948518214363338253894293930707616865915557258685822855409931662012320953889758606780281476528360838837342337864688920933503799337547687415208717365874702801061895753764040496968494956014753806872194237470802769680223746966303140940103180158858444444132237475922736138776738971668297416120225343456558544095696720624755609126983518756406857025994445622078200578387735745409497995746922646320787862776492710572919397085695016328013933213097018244610596967440627294876521921071391746046239433220103690770595863260040760345478531525421635100959667708059269778456136177507029926443667834832443168541771295977930981072408599030834043875310495666504801212073396239522456431624558628872415868705864261305687266616515996155977901282740411480983045331123289746893760116442370228753505181252767987962798678229321276494768224850515500005636470314300156094404165408322890778946637974239212535703050841261903966125060929483071039938272772080686125987940738378212561025126308201110856749629190615732410408556060697337858956710282526286557684769129880449116315797122616894850998449093465468691417554113706376422551975857120200997631800496177720947094963552561057495860115508396808469799087828191567446357199309565998817756746986428987912857658483135089013326042254349586087548992773053381814065847855388199362794728562740676980446081267568557564870792727470869708822323338763817059931174574185090529881538287678534616022645251257146833863008132974344013274642011812540881808863228854975375184933552868273555672639173481721771970716679077810368238526660824646648400180551797228290816748859764208159134972602052711448949377237867557445275499169227614865778331702487884740745378736598039689007055909289486652525717602937193842992607225519223842833681802786256195989902983559036093949672231748032660115098645658156922844548968170191177720053030164665034066993789690349812729660514200258326714236080568043319834197032474650229976486524615401533171871141969748873704014135062371354461152652436755665816339095729525312222296049438704243744341739535254465798305037012603459892603478005561747047295986889465301695325573746972830950362310600048081258673273633956806780159494365289777121944033726070436910934084076774671398257972496663302506048250754803547630476369101992139487726592172752147292361226270429447092631668547251742449079250281167298030839854474545143740793770705881866495525951267459968101938304114723652789307710693084047271327479107966864176924802028210189611670793097103045839480916332211369381565575913339157028840222348244682598817304746184230825162756639242630935634817974865609211247526081770021179703473680771046565172279418087920067662830542215200264827395044566464354430845399505167608836774470001515836003387862097832713471102908436514264640098628412966707331213227317181566105721705940001770983989347805651883366968315109391449381323674686324667318286247593984971694293236832140537617550106043998317533597384981271724223070418441183976248048343819707460914812737450271978617192381726055287886332134215217630407449818281948726548886092991731665941094457957800895596213217416910423572372839997212644986282039329334301436361083985096584176735495450808122289063494465161254480115159623145726426175951328194590654379217776204179408661297887125179916615071291953653171882359117489204563443568416929534657616264601023803554560214985901711431728775042481448943261765622874410952342186185503148692143192828860741933316757782107169471170807718640776973810450120516331723436287586054390300483496026160912111359855494882558670495485737315608914997426671015909473488914661454096907867879898325899298854750428788963541350753131570956440792890100333676222783004336358801338531243058946164651606475209079552459639318238288744656334815139713000363016007606091764064833988214177393319940951240653183056111601681158595149132821598170300733809638857364500710080782064833261472304713300918055887497981218226149942345975305444474186303480983389658743442199264727533277944752550503435593788943596499651917564365663189884678052769525838242305944939985241616430303771467971096759940526849476764137206438314848882126840617758846876032348537665915250832112900057400565596916828500665010584902969837742559237531349919478121278258809125425167096040981834130944986769380990823214813214052206668196886012184682276327313653454988570692516943217329600461675467110914845279347679974905855441996196506206483685333078450240290125578449300859515013825697091753459191073718355765181256818824348372802961215783889987258874887041682723757111459345936625412376136575886051208193681386823176605458922013098539749156536564555179498098878429650191228256019200769609940029477958545451235847889685757808530522654538782112971104950598225895604388826830038172396568775888091439813608789725938399955179947905772498699256617621924207583555383252912424579194278724011641958701450984002632304283692832573543029734664973755906691196924759602433339829158620596102672477226972065419026591874733446177721129712794225719749414040358692443412152629216729751802957214803351331527904199643858867493200227026736720324658064885415542224146963753372662231632570137329576070853249744235689022334764072334920153122634286193981613805937319582552693243794081619415951311647302828430968373230771026455532595967555993711393655746472910000084524446850379789308219546160832154150266540578758921962311559149337676648277357636090052618357762439097057403472772302405456399906617507733427095907007785455973859431002302504897748050595994836344524704606577000903832719547171939093019094534030626269264469001341927386630421245199832926228805542449892853172119882266650517420072263809245931736283537687179944061723099436797971174703851736192564242580839046847612177869443342040290072643341405134644879475158952291582172296723360480338446794710950456198101118325601405707969744664778469900338569233058195185778014982902920295603103258680886738550396616299441760760452469559258337854748595687581859531493107370797928019494575996175109222416592312424780653574842157700483420853753482171374898113159065348455769305085954302803222208914600641424027182692569705597631530558465462312922143773934333794899253632120750684061900042977989417733254838442277022465973442323311333342236890257033994910385797470241422938073501253247048047683670651215936171866027701822048540354322349323797287729828087064304619195471191327611554702045354049338673185392137661294405830061390726578858484847691322736847681823288792191459130740472078986275761106312299880886908046279015480342595111374191868991459724012894152842858175264605996232232187920746264534636503182776046417960622596503655817184290787373680028854767067040042593543015127811034443886894899238998054353422518016429470928396996925798460015257589176523410920419006667776249223145197950207988247338970258886360182587053852323908514399145625948090934465505957618921084164922514844968101137679924109007885975959924441815328286422910060435733476105656767402634482999310920455761100616117502664027398691155157524164747996267866500651154884437594353059326716437996527071386990627619480538566504066938669043277430602674065616509386729083605889615139323787331128014310385702454111494917655484936602969841297202937927280386867370662598027397254267024460655202740424686624059892222354474836551058024839672539031710566165397921645914702610478763938086752450054262779447825926025918173620030811626576263837104186673607472436815035122859020887938623069393026107859851663434200788378213650539789016300510078633702670253273775642128115178976582326372220699694648593729527348357378204661562683057640016159862226985851885069339315579315371705323206151312676314336023442868024140839433410890659051961355650409779121431684586306217569777286453996844910613551079495962834710996676647621226391436336247404191307343735342999266668264159345095861848097777568759751895511358933553222178949950811121142051125401135494961640870096159134011608258653114626636271881193678390666172995488214483689464006508449501654489515786230449526781605866118295221938492701466620919971790939764753374832561517493049580714660575035369449932447962181984804496870218427340178925880338586176101607786041434303101933232990714002648962353573355131602973558110383879729447708909950934223804203324239666875015313762498915379561189626330485048044205768962988459468198133693873375063870653245312384045030894104179549498910350451175778410538043528805900407314283946169136818650149361044044807325408821481593569114961852682944259415570404804845062982688970118622830004416076929693810900303257609194996277476985487114311675041261391894373016402288034006684437156307710240922393259350476869148492577723009576787190069269896986131110253738547172267700412124259595074314500367073536325454872222635032702271030767598563779761839784826603519962226160898047607060923473143892067980607327216102982855932112680408081981051332621187921605963094792743996534604465287147989798143866348284428405706404901116012648224063681367439806673061356768485346795024301297489220636876408532178188277243792430204834448549304391978814935027199416923456074064059717957437574040851859320645235245549247881181402009658041900598859157384627202726537894132361973748980701321490407973093639149203961465328269204890806518322466277864452415054582166066817853905877007792240036077294523637993914006874248570595063078220911260618446630497199401237003140606239204194445549595887528986704491544882731010355547790181830729705404012268701147643493943873760716952736860412686357102273232877274162861655546994066414225110627641764373848316029586446271144913021481748774070877655263409564283535126136814783107792488015781073046079614971354302116765947503566729616969245148797203647679268734848555173648422414456042920399875737361289915918250192909609406485277928155112813205650508759603282860293029583457123179586632602480090929173153880110043833100951217509114637587399441215942382624780813465605354529401774447869079481202749449257946761727372660569019710397045529763034240241508198440128626917121992213528200780904029220133634681099834084652594813296057441757471299687683765214276664960857550614435469169302329053001656502328162148835824704059842629311175924316129302534539124883704644497483746319364159527364859098047004793301964170610691086788315600653700406018958057020890072755533291292019899156154849672090762732439966619698036617914718356736435111973578678756122548166164955781804947948717122163322305016602337338652988223957316296545240875171895364769491324765039573677751053036482609357985977384020570254187403582262284417566401856950549564013632129325615249919351182162964550067205858193109238013835225756381030174550988486107918293224562680713774381319828970402449310114314588197856462610191721089655426827099061979068103293566629447302967831021599959602041599037532072312131711235233438148184636389823317979695537257402543407046616179703964465845559542560506891557272724002636575129961418667679929626944714081772742052762327735450205420186434009596932410543641078864776728130183826697055883319977558700170968496704901206120601926759453350096103658665561524700729641975757066864715325434442551017725786234053505309639005208173196761562589546768950920057085180770132039037143931507654135222565516297439094216738846670914823260885492635209096420069898378649132504848242832115592130158872111605996241227977285955109050344003963415860095181074831847614563057276826099810094596056991075583045564148772000162220817714379579989125541819801200173172446881667361975313359581912580326281438611135295609975043834151841315171593620498894177347037927897634165022413675753331475056408301015959765042961757312704383004342170467754678308838494894637612974089027324984986276385113236949945395416369324862271701467492033010680881620792522166704953431973566384767321620954741216847772131521349514493216716007372849046620802084891547454564645118109276413855660325400133627827910764992204559424000142124179911391327369031191058727777637011098441818051089303989960856007729178938515446081535756076046267581747477208620167924267534156133702863002813103619261596699006124511425754574154979922865572558658908825000461350407044639904255710262126914819447929056164507044060584591586017693423011364071607475234507688548189137161642877010155431307858189309079130409312989652965904830143757107313739499193514795756814362611487363459342951426897123349283099238780306280133981261063445280492219161242440397594779618265154104206132123641994464954926030209121831635801298508015314466063015814181957829245738281879530211165793710711874518583631324803566392261699676407520025815991982730045980394779304768064352428663843308123787749169023734351284900453339507141068337060204259508682136398947412616383974314052935973476958750311467970340760737464785334626986045370840618253907438929533335758668710778985736747546778651856399869262869390432990630938934506857049635874972762975580269615311508468462885707014305267672667729824593909106457288324386158154498454615329779252745581158569984782984534582808411712624835164613418505411420212765733914753107159097247848428902976174740305965124542527797198375138719679588957129241346281047855151754501430229393996363151487737262221112839826998008857801015270244942069521533861154921580738739487598232354061003719678116259713556804994467562772864224956785277136034658388315398122333224102780125252887151005523339964474443992792197082988867254725380942313618743933881669210434882473296814573952207065234231969293215594675573114632578474349914275548133397863577614001896451509304993721266909491248864981653760194060259721196599422623487942650808377027401899638279350670486195107579477715540546883004033905695389710347246744737208461571451501777549125630506575842659240653433896569163837106053413145450547076146213938168942274073305085854202760454763444582041161160577160062050909934868005314631270085690993104496107480070411638336117923625312320280842872696160260647644161969099891418773051820818906850975143387129611535924918662682242658038687748183890043041412496366134753232459078354614360007427132981365246392600273587063829360413173208675571725181191069902692638583808690085287825143542192846065379491571661464514724183118758481643676415390880194813240445523651262860158568232807873368527534248194618887135075814439837548846673279040947792223986955246862621170582524969302500982061586768122656179414959190070715797173989095095154449392053646261609672752529424241654189646412319702007592394513836449390080126837312778453215419752760532689982666322605559983793045371389681679895477172311471442075111885727481156330595240731931726239042739378652961717870028324584040598038275746245972103678373467007880547183811511248223962360595602202133082709422713928183134131537488363862967751068778114412124008972063057241118741184456857888465005220043858519273321328154607406705082003477447701319383656014624462881024947340824205686320105354176248821624582912393007141801449162645990669912204153327840992128715303901851590475584275289550755782131537717500980337936241916185329332749069542706653816655192028703541051780830741517677678840995640361065708311039886010027314488107146752052438186567597874828398277684278829638227918914255693125963407653787779283658049187809265699305387361716346761311981195675463108842114048788839072422043947586530875362854580089459696729421081028858881199347567374263959253786853116976808804351881703619306439573842693317698579942744434600092054642476367257429304903006868266182172948499098311390088455770126243598420408339875796229532983316728106050172125092979627313574049835693003809992802273262791455535732696180976866037010522935047155996316109396989222544977185977626496781742551722509699653683327784516227060487725068485974449497782562468599672806965774911989348420476883738809106712176736455452097838451104049055379588652611286400715128720632565155374638283808402185005547157508159517275670340971800740870400964126742452499317148689396577542590667091434017848131245824055521563934067369124992821125650759233650385478537218161857867744078508652663131171527801963351718129387940937673662189504510075535005547429075129081229049573886271377400391924796509918695854169774272735627382018651742594770166942824738850922187143044537272417847771863536064358883822051461295848824860844272730964633572704256335006620893858459956969819129442108946909732966102876476333738604438696612428755982957535315849445573734067180329700894661410873887209030676848580766622498730965216123402223639086927061219717117351877292686920626608828370281019488609638163574019534798139478916923283156132351631487212618197049409640927290739616177075722883019607699366898001200996599369325159087598507978503170833787039419632156875391522976918170606480988915434953970509966168942691637757442516579190474822624926562241102000826144223919058973924541547206465597355476539775781423295752194508305363899368972330922187817716137063020067878846424836581274617306397646780383108488004453702780416653549582095074419268784744121138005589878381424373912623762801739884003646422039535719653829411506588493386205260583158813137942246601597046625747746506829121185347825021865877707216982720180989685026494298557411262085106969769760070693994843682502426761338254423776301508007517006149222478719496637565724074342891171212252359395097708356525814580522909070740279775853092489250701843588197693741950832781544928597404851612830015954443266749982046134950907537332734649413456868350355940074548286829252640524100754493407391477472593792561722379944073169836523765064115652639423850998468744372783149856652392590100000458921759262779092019390758895186805469468205032214269252576569065497749421508615047273651875638542528950396822868297775258161644636868525473960977097725455158047027617414812504091257495692592355503770433790562689192770702557476820674767914455658945445784342988080726346568801678231282327228069337764696409364479402805061733033298206546382821568572826649264819809528054960826944653800982830638036957621511749134140851354568433742853355706032509203056581596240877435495080176525593967851474204112369011705838702163948877319396923448498996381450422289940178638818969885910319577540231500273387689823424937400605733541300401777446985446696784760690778034977747981232816053965522559548687296863965124649108933466221821409884320001095677593221125168417750879741618343587792221084545962747643641974194243819097159289658701066993218856591511594830238559663690466877278030312523427783004158111301366711993846521410807594186027520600480631264832174288210775018982898731706255776662297635497363100742012241584241403383578667380715998093567960030255789324945982706195177820344680234602436028582087499758072296142769607681644597534134701690304790068404737203353041769404230050388167273349083919966131117920544808791669894480749006006243870538243785360066475553217770152349118232366756386726857537333384472894996092597648217658656655838497128002021725711049996261618424631331935336658200514378811075455964091398183813838765281627850638338997638205893439813002187000723572966529429142282667015735541297011402473387636249380514633243581039145024935668696705096738791399206407627911570571437289713562932734174793177132850923434860780397880438838513385211259378667272241116843151931246395130391079092529927842996345108710568686454030401569914096547566052500021351560705947896907194435397326744825904466172446949298638826795307946813870189806014868365682039524271884756504847821088660635651017398821233657780883240626931257404218014486690932599717947033856278415427648657736267530092793166569032333057786164323889717594978481753233386514896863950181717338157659459680413508162916034769738175081898482579280594688332107308803082118068148808272340094968092465639553416962702671838787094983145612967051280218793706501204480896645014690354328000950082706164677034909527341126842956245942173230519639488017466044620490161619408876329503005746279969683796605815765953719247557116032109414063743169181754075454941399911285121751132975868944628638735977188855421545318681971158540651285395121090180388452380973066635357981505932622875495971976095517996819464375140037701235964885772968932518970282094646121698631008550715805689359869131827942400097153224961614348576330934641125823469313793700219115869244639728627523589583127428307693049570989571606351340155845448004304890811000705512200581270004900654821158615216886532761431481017294858324883144804366428916752674595700730788484876514792674351699901291639518727479524385274313775639353063531993042897851693304138391382680426333895842768983933767325786110503004786824135150672070532309337032797280915645857623428895904079174278570318209018144834932964837109704146516003690005281397213642754345962614667694588671929402450983407122088715138358765501850763664334728073716951920834386548345663348802189225186609147878507895274808392553584515429300321406019571437150992697318475024896833609560237583255009124086373096326945145732337557642548013976902299926054873532040472891024149914653953346675479501358224234068030408742736787627509361837639294936876002971504395240666693481829547019054612768848016411840258447599143424531581082623557724632021973846489315513915124486926494932878682741299231934255748151054071481709742997883817421088652653216192396495569593713309266081941243570813294845421646223696314560061592684264175573419773375896472539323733030134614870965892945143918977307115616691163052684265376692342598891142834071102124424026091768565560157014979434534996333171522679520593778091203510468364344933019899907711464751521888170647060692488804445872995605240156846377279020004360206266189705798981465796903409799764209683770839887098170402862139523328165819117871612913572862347628851589275164222108586124820661756398637819693020140481456593717692108584323644260899686808848327338422021862249594559582767011214044334702824668302586792825361514165573561480503925087090896673051007482193819123933497168011924747578297617076157074408937144442965365569900991370401161902313170832577527298557807102175443598389758472591422279103985573735999043072110643975531862398998739158569756677498445042254966808587275983402079235125547328345948235747276520559727522952107956297088084089598368789341611814627812456546814692978318710724707849434593096590382908736309759108380838885806170270518537907265606840202439960789058145801362951486426120991159982160951798585777906062296440834243604913510604036626500623390125548915185423793808601370136870726098912249238007430506028120999712461331586326477820594986557497602444089088728626030594609005031043379382540467758567689525848966679062562358729552959943063383378239297313001744459287395811457388452124936679353474286972995898270666255299878810409733942236572195933812459097996445892845259985019840033332029618548765761246705003857647278634564215079859119929239094882661496985141261726277177638704533988507166638081869313313224845790926178667155044546645337082633001102327222097376379379025733651225523026662044863736131148779415889979200710616090500294861729191157168779671286774754949111018536376088438323281063920045794754512612648417309832488366212649733826170668592734495623344448567959746257930156665224265613325262498589829908156824254451391905642713478892713536310613106843460565247087202717308977744326442980762753009856485250194963578206878860172445025421121278196954110045824505977012454671404690958628069462926068993736798602543770944358623564706107563296655178250948123238811497972775036608799451587879260556445203471250660612728457722451376279680320951894289166128346775442266075210671235919387429956823265637186633910157017076282203019596050682069299699115050811964652689494552936487315963774343416631245510464675792412920523033425951287494339665424222343107446632797138736518428399826564897418198486107402219546601209676102987292268528487368068504665890216375854356289668578577478394413118926089237983298165984483191291657685468005041242484900615291724351827320514382705154434931159532446711739301233962575626262432126184546741550967340545009017654273712569859264982663147246528555416418032972770698121922909376110045555287211338395471695374430704242854660556684627311103382789056207494967160889157863862550076175992045366217672027582991393049630269122571229093877837242877366273189470539347953836479943177205010678114633755244069990770983259449795561949808252612732710677315514338281643998772554181723177662287490906488898266924225438874505071342693399155491663583515123153296806617148699294120160700767706291336206115739984142090631539251181984236554358687026235468830001620669958108860215784714517031629210491760004223289806624042256225427569945513383458461691625821585206295877001757653295001586171588626796988828461334969943414622006576836613653513879415966551255765949758361826004787095477159116773498917989321120329635505155667419633798888360039132172221983079234459774203475821544737038901158283877505018062225836915003272425303858660888620469431700067427577336976800728630880232337044249053912018371233409637878550808704740241397286998257216853578249520986833465132641661522256589779645339889741720775719959786323830061429043609966566575850142146521162800424472808892302089440899725319720223036021827643266787082763565706396439012941109267731887358387963015669088530845158954768695160382525949526684565043002511170183268986506281174352496863151137373198788514856348676981468689387272009463619933524335473747861250430506095752947532523415971783756478582583055474892602468599695460032828612380005531957317463638026802037380853946227414595968668841094117959947624443289734193770826370434327979576553335834824625268300554571015844176257632775000976679281482149884870532830336069562956144660896708563119227949171523376217911418091603356881046903514744852777377000232133953878728419125042201830406430424293305046009008384418225120591310743339362884597362712790342528343660406147089705913341194238052024639500494149452967173444787288697885266531305988827545590486750792173048682727957569743903882574210862382435599264071672549414987157751131239564771418096639234200662804447851899523654822480885951817390397489150096462084758205113964516908555445705050465717472634974438662186200330096992544977528257603968775683476384976281874589806501956906617189756572621408182430256630529447318647437605018683411697413460731989617061277315186026769342911186142138549543678886031705277337040317719422126474227779106792899308787975426670043028496973140111695060630418575844705442332450092376119625535262367380956088500903269481722714253573591772521099187308833563924757832045437601066699969156250560299467941873854415204997289712421768242926628296695037133472821102905441675505391031645576402255408970584714309789281384766445017064445430698810534252009689067981547977148562379568853701370966614831103664671039027380037246129827669446152906571178614256653605389177128545649530288955210519098073158267525359702723753794128851299163003180729940461790628346187724318119757126284594105634946464998986737202955013681767956669353206684350668317460011958405581369409705350070487789999061492132144204768433185982847730256453310676235315280821972980094932476914005997585635524352856419050591432822893502141552343751592743570406229490391140633057681714070275578819709327176714875525956792883504946187955976261617158956074399812957892228771021383299571750249465441346555231070209405239925017301138651834721380539350174782094583322512249135319290057820339280744446307246386673854634939134473298779803254598393905090672067520881983853428840505255228613696097405923565809135960125236581787218203946687124197910755532205451911169736525718071830171965401146324028321188314021924029290982133913623373301398382633024785317523695109019109488382153828220779867064642189832212274339445209100161684595243090576731000380351998221683356345497327813812789145125818341558158616393402294594486188587767034781059923048211230358077296945154020358891043391529862193238293426921162132779033080346409486683040271791522173552586341987325069759480105717013094720187863542996499143690451949434272752940446469273553815722046098831860033494086237708443671721347707032617812869077639627125441636623794955786604083549091245150147711227703102884472028477549507314815213057108684618562613455294418397201660663343568749975101438366507534067613884310277763437198536582385421062589490744245713273689674401843037774538522836342598167989354437359272103102578209855862887552636204597932538349813698026899716424491852250179889310867644852354429818128174285580707382908208752363338183410606233480593010210500158054114006175106114158117154684235500141245735463667095641580313505843231463597846862876504492180112000981539542167089878239462917576193830022168129359422749892299720296126599292392999822440752203699500520424616825534878783925117535483481844101863122760606885521673853338683562762102689762827890708783996293882192848260929843103292702414359926525017376917075884926391540495983648294859467856676903932364836257224461355589258751775711460143314012319046131496872006401349625763318045802724136913803521639100836139138681611641032195619607759169990910778350981811401434572108449751367687828514531521006351556735025787974828162640227197394870914328609015392459596357742693305969923331061379067181457228822484236566069335575398178874640601868210180127356284849880240703788401862285531140529760608049289408612613865474136435175027332334608955887453469671480822972459441737685477520083824361085549939066924307475860746899427280984718647545857467404488241114576060233166743643727839208800963423537487587196778638302040140998862055022481063355440113666522159682716459866274340630568676698990913496132668134602258948026088377111732493885280845446263811119443025618947495120616218672845092414522794808678748516311288937451552896837505307581017211542970990402422639428410633192387157952691912935699462422621270677487749885248844297110443857407078587652560064959367936727207293160004203392714291829373599282513492211785543260572236070258756124211218674417000936695963190796539915157839515279662991521845614810550462126693723930333897841896817223437027936078204109024726066932634543711934592690054554298782731892810298107730988753220648813609839549648603061565175621892208308989977809450175173938292373021390507961898761152628560491839073054667163700321639199348878763586300207196769367050127431167190493064277341213055465631832389569228323856828691893562137008369373948258631710437373271210863522321930945944337637331493778751848795141030547620452228179240805216857491931553985383827869719192444584049242757250671587009754801278538615006177082717940802755555645288818520417066820709032280469334860369393120415956503287952845579476023085982756550968096005668022474753119026152373086489342984470051460617362309663500411169653384155506071059163913734202101687945653737685297370711546858776468762453004741949994805946682758332294712969385829945561696297631944498526889170175020487597913136948076520689567256556088497531647418244893710667654920003372638742035327994153199197564906519915800732073142677012018902439577269511981342038876835469405078989179083558297202331391142851164626002156481117068389730940843120219642049818554976001595336508647047964580837121907453806637915907664416373419375591878113108649970729145788258409602091075323443975728205087185157457371992870641089209439555883519008179290556947751455580347880025795371339023654334980863368605843036063172877188856307173544978189808528025049791300177521628983949329023628753694733841320761712635312711228030988491229201838183053595572931950432552709943074117604193372891968094663422227710967108273318432231337958683587897154539620778073981085125116844680419026294733084237481761216027941617155671158516320207491294399987537400240387929026009177554529005133809951006090831584701249277384361427576030739036300330471224989180439029154064875569814600328303420690480101603277724838692830851764407259373579602773106117296807038587805711917773363946812042682113861881966027393127268199242574727248696554280610067890612598555982309380086694329947257735431309243335554345815312263241228956945358407462385406310905246367749471466688294213900430682038725124592000068982014834051147313885472486243674690572265045823315118292012350144397485991779347944767690539085910274974916164943631530449982183082533083944299789170982069368612040260506814300438138430908903173791870055224209115718434485178623089551763083914003701432140778741997935644269849683240480391215037437292198802219169016187093107386136716609409394466908213996831915970133326446587627227160325073721165471105874486691444147186839239331383248534237418356455187474592017973620790400890887381877693036086578632057250967231047276372268918256097593505168724642336924518269040430202315465785531702054243044497161393143235349289366815630698920594766265349977190461168339009464750845811430986701149260868987549397652130694435741749497279280775253500692884557215416883803796642545818807933713411665075919590416859368369830326275270549509077096818795405410501945843233465238233646622994378054878686135865913304032800331067904901306190246063058216775145930088575046252516249529386239598034487026240114922674171661703198425532537864236169647330598782893171840145492088328360191061111157089661926640142328656141317900930662771886579884957943534720527664691866194445069435646553804077840745453244345515635324408002716669238244216718907167697960676837787110709586357328017642727427111551957994680175063540342697655515902508294643290471077793093767373178425007704906352859316869231471007995555004003283562298857459717226698731299164136467368189908543026833364483987721650650919862221525692823010451237314249305776264459526425257455571897212343789903471852227240920247062710418558054338710250674749060108538215167075125124325710439378044709217073987395460031127871428561756812111949870306693155626242582203016607081590308101673828390225250123331539968979427593329419453686159808931394622392727819361540816267531040544988382075729023747985836079644309700071393541960265916016669448035112275339175481627840807225397052553169221979132835485609746035134950878861789960890873781163408478802646524672724155085741917231597923159605440731585472967112481135947134778830904256479391736148944251736705644062081259944971575486344953612950628468432612210346224571154968516070838785649846472935337201724110407442174853966676365272486755845004624300116777858722551557964342434109194250460011576770995250259602289183850857156713997549791403677369483095750001667418631709797280510613607160614340232988754686144648285791552568054121776786956561200590356314672014615529512155375884672882682313429019068577982393282424599698628481532446388901892852590168042053217271258398591857615687689531718082543564211332717341952436965925159466570097097156449062813916933434280195406279034221294549814775998191895389848856964286192540387768039687300978562680930511988419203572234625370890089507927719091030195570188767459625777382048340499316791244231361099757122239122465118523438363227002114811360901470220121070847621326295260171387573644950164817406640085165684319295647365497215057456968187651230474580970343471187468519021650703181551416409703206271750941197593439440671065706311560803467012479789554153837568238952911169906989908967408787479676991984401546093689516009668314318366810387353442271183389267582280219699376530407680626447692036922910932940312251062282948933947320111502656539230929378576913999174005273242666439284842035340390229686678254964125066838068885874864202671083330447210751263087213977548397481425903682232969423089008666618802461619406276302731602366425696113429223816735209208464612141292740635910049884814267411754772751913056726477707803907444402001861864084757178122844285276981022635634859600675530212829029550589698653779217688530579422859398276629642603046103898545339820767876949325874650101343115609391680583569270663916321666630165334158354799730634983970745089418095613203636207969191000436983823319010324836664909791603000071033424008179919626640262240200577371158725466718729226251939870579970327460180589236142703631317382095939613834098233062501587842332063220336268588304142070653783517335295286531601414186384532732377850999460030241431138946246700082462358352394615230260789624511443746920303716231095719803333883091275214139801549091872456637629205758911961213008466320349099834392545072583455442420962578556507410955182780178069497295735576409113634663986279374582456991700995078036408200313481404334571546642518443130908909323340240490931622792322354689337475550941683952934443063894867242716355022608289837428121374087614745895066404065247478146445024443008667634394626583046035917747508325242601918468266142017075701975246248117257756636114661684249989721998721751063830758463483692275048779974454113773710840039265399028126590537067795752704046264863333150023155078766310238097569142496458211704466871557167315713597776231221220723226893411451060199583993327737240300522335764120650612359817617117825643228566874098507479768524964804707688754598751903117149738334649148651613832751494401732170337344376398951843212642390859900717367433102233848815021104481376291682902797818815399582315036506473859586699623269070093050187111437084115480892262062669745531994504540889187266470972164211576241824194250019099029083882883021710542997874500115810012518336514648858618807283172004867193478534537027634222762709613590614933760534397023595050657998226271032614640919005072602817516714439057805256739264438614816422285470604085454364994065717928691857464513602877285063975532880467280822442917507712963084048201834911304480417991672049034917126298099159393657513493958154292066248185251931096789301136183092113695238641664538684756541172855740939805543280059230180051458205013355656950231109818917030187637448689471684874711920151905389374101311743524229722619432275532351118162510296420557211976546614074789969598022152516582895560470527712682400242830876912712815360120699896965538827732328513385369248635318069327460866115386966408826462153947593231492883518944258881408308664161953991676976573415096840008295834935120719967609313149481988501136551929183483322957153753885043229370386485611448927320151489404605669292872629431269309401620538463425735174464718579815365638820305793463928655870493052156269705954345692849437542480357456531729448446578121207981303610118419299527748342236504564319346320797191516657784153707842842207832567733298815319673487886019271357417293890198199507030569397707128966015436621409247124997275400073382826851179618827924170148958356732347207441356632492481021748853673661584303420714502105248324064203731298860212572958339767760030373147728169798323091320898362245022849905145521019535812235667215748023381318502643437120422695839922613810151442552642002720130940368409092840215616654180473521406232976585579367650475809094813659517619776647676456261915500942894694973578239062947576363448773111099849956827488179082814496277004688796957244614934905613055803283679360195530626519331065198945322971028814428184804904567124722892663763856406384579235516496462813200681611509755867811031672407064470250103260169155196895442460961741178102001341761455973136752201288753933481452932372398640019736268960522677094034329045475407546587724005052497028240230083622884512760274207292189199750108869151679426299363129293501322661576994045437579083519217454809775888025529698698067371673720574430107027385244209818817186781476395093889079778348872597165013366743950687333484496921466518244142564586364066865236170721308814342485152285399076965946295541557793448317625077970519827870676559241833706807969844281600192665193859957785239323499418398271364740339977285428444641879069301317992806397708351970799806948516267625911824579286547438067342833697254498352901037268443993620968100050001018073910981078251531292754503560860923970915137716886110995521918751505888404066282980925323100747773397098818224508911936569762945332719910498216358000781497942682451520408409175664980746318190825628028675904175785862724679777905624998233523487131914775428160630308057572913353780018774903809174761818833656136604364314227460029019987671345715296030852487162441423679005314483023062308717478543121447011353562104063576761386808218293343270317949007609715104075258304941526129063753177413183974199880763596653813005607545438346763627778239098694732566781701755315476481251091457838830307831357440535499132236904834929722573321867589148524453903124297298902798763210336542187031470436431181433456370229697668847396849169091758620486797326333629090366878453367073426345825742719756778942132014887545063808871669427473766170948506519583339951022244001499576676389592105946727371601900790961694779717135352317062167706291922103908691412280488303969206076356551284057761079539989187652369172621892900633648602190708314551256469285390890867164248848240128493851955359075276636586080417121378088300320604697543793998474186842188016472738796857185391614587319174324575787148721797259312777973182912084166973230015366205958681939009603930428306355517906105035944836727098831296351474369509235132698015887979357843891568780988885531214244326532053983181624134246452832287437375294691404751633219608330386918083956567156348332561336211364881848041824328871451338601797204588443513383772101076584631182887281164634142118232042114492956875794874203925437522846390998411294645340122656756153694862896420919903705732113397520711739222533593229700932661609445302860785170446062404147947026515709425133696808801135999591766546717220338593483753645072319099345157987895912066311861325311244459386099062928677150464603349971682787489232677968526713427760561723574705026216072258508995987530764521776650689593136302380667524541839859017860389954243227765422887149670210891163944204810673656161421564296078881587639168155676629225531311043508548834430789059087881089749116114860970255556168131169269749123023798411809633726305090082402013345791670421465315255197104826031866459599956627329520628546154977573012372092563329797481343386746501772822328403502796151461093981092424945448413746930505822120230169818361047704314793810965017437873412237358579764000839489154809155682252955454185985950692622574497415572856358938874583863021462484172723437048438462665238676754714808982236189690747398054893771061948879986732392888497603615785833778141428858095757876920276886451176564353095884800890402651616401414411089545512742539100784969687894068382233599272588638259733581761354295050738127746745517882549383683848555834109654704931513435533436715108573884701356213188147749572438478216573125663648686635454501976226790915768588343893844218836632918469848582408204550512953801288253338927434844705488013927417496045590363268075691409747834887547067201972382924125037100942678759568547261722128339651015895200214752386823878263260280014868919279980689652850589438803633862998788028481989704265292681237756594791760241449106155173268659443829704140540701723800081854230891172283875752130227190614742848281081968289128746838125791288270124219396053982714831694445370130540561665844923198544223479917643087542315233517978562003773644974587069148678148037115015279483446458904003983639583315305915493447667982108355375155168345626020089217312874961379756087547759691474513357381741280549767191265411015029087395273097796523444071266428836798572389481948700746563694863276072468100182725666917052026527309756738655233898336640778640363405814443074775389393564015035993056519752699055073506412580076080761018185383591235543124989687030530917744203996795224272704405649137486008191472834571004330890733923242136513991636649802392689519662664401257410168148410193875353862707584556336622790293679265498685713926620780471647084398615566100665306723218187686586925709978568776378638922986980754990481678937278314808467095390545004214641641497212373158559470902122299159564680269484657046471829329418609176034175389624910906997185658706963660285988516039817755420299600642676646479470826689284625189016125083232996061630648227865636090546790427037229977074618925519220084378403805405077163260775941717530981788388093328674978053780602500607210272378540208865580014088391397672783324162215534511711143858387218806043058616552445664178296948810424850777289400882960893238045578195995969825100388762363161987657656760156831360095383058242874581327875638579873600888910160482650138950948660253270774100836353804413568149144330096129658067629711182176640147049649645982180128448655953131805476140998895920328521030097698920896201683641944062303168701494895389607256587243862193580552478156137177209968230055791512461792996098582615251095572856175435530438343079484059882258435888809478610650657775839418080908808299725826356886373017197345999473166901842058869451230329029704706634975744638721036574165534506692812687281579613086966943816198433650224735030624288442625270892775660523326540357578865203313253000525159187719573860922033978548335339468158803326679956024803242081424532954040246265188597040579202957719817528741870743251189473186288670823331136039697697525739651709275940431734877325439420666134462114425283592765817724668472837129587569551817034476015858174132521240338520323045400155059607992994982538584938718431117010653960431410837386356134967367903705028448791598514180100876376202043826738034115238718464312634296848833134941747886031987811672236396468477007073514628267450622434236580276539200937234965624342166367827514594251083865022037363980677373470171759298985671659906344708846085317613974746390581904132617557601990815113397334590383375845397321643565800713702641317090250572392308528854675035182633113678711399079683920328623717176876056092853371741056628270545214631502973063050783900958703455060188903063098439816947997183773576029723083655701781577749712052183782225895010316832747664555509366268144099587307351487376518756701343512436369121841952951123343601356759220771877481615099664772834941411536713174479387343458497488005274137651810510174480686433054108607737099633102166987437298583504138822257591862059526638657847617617958623161351031595508653366527476668061258752789641428225833903486576875176859101470566874214838360895408881095820926790268434818242543502643482394368661885507986625984235765511202619521201493865247906625821100287695790653659980442818768918584436010524516818032347051410743002175664698382493001323447974934413524471021452268217434704286855826656656692551385364112574304941091647692662257163022895773000870957520297255081846212886610548634422692946782228621059848770649985571469922847810757039826024838893036460617305732483990487827680222483911447635706188814139414564015279035392291437933366076294262315993472847597247871733548500394436683158091587319009153504084330838921045755365454388026228480026229903700533787492226380696236410696069700433238987531930682837443634229922355736943387579385332071032033010614516780718310647610446815568740879825589013472186765994074874162603104147381494883321946638108939788108171181083946887228995050544000409089285491365634231266862460340072562081850447493993957869836995252354540101532879569022610462180752098780066804562401776580665532991009554962532517109186145302897161712655127203788389636840967183732516577273924552599471643250118657748189319006241159683638022727647345373133728273407662958583775803020473849246739077036119987736070433596951944936984493684556988833203751647922593502323752962290670365746059465833140299079582408107290451036823368624440431614380993488210429951074204187865824264991911900541598799799732402473177677807353135778992954531407749392161639399057987039690587207704353308002654985938290198124606792961211190896070958286790342803189948267067509901589618329204288682827149351570617452412665755178018743562225493270498514154166660474494416964191820985930111331525603284046456588574090714355450593633194843774014285723150594011070143369695774817911685452950853273913158031473466515448804326719690718111247554727735610736410201975886744613521891300916250141485071464347713875819019457863545233608105894821522138486954083140848168414111922032444300184488539616056777903121906071722029156865694754424474082557328850759645779581979961074793499493658524642407718674065196302299570642895805104689473971594878141788495000769173742150686079184871746692249682237947240011844459671599216191389141575335819273738123252291174300822602142564347511964269877791297732074032272222862556065379377590552278086254529190378179740977599183342147244551368657812247538065582822585541879586373221915727335825277793291011738667457891346607250536617348808543743794853220855690529937229174847821901143422484167974215779380896985739848482644149266525104904734693083233263332799494164069467784139024717789999062318568649446582700145138786696248440089693989372385530531786632004484908629903835371356229658280425845366644764990729792719490434647731608012084189319184854535728198895672614561083827949915228634475378810163562098369851630127587258903737265360388033836987824714235295588980675188682491601227768718294870136720488722107645808077315968315945824392860464652397029218186299017655467424956257351073776406708277038052789926811855211374666718504623621969587050316454863611173413803075760256763034143143327426994426036055306437856617555403767773741247958617172512263954897050030194967791714092707653166160603967566827847266966489205446241639279998728271676366308096043345741018515548844966892671105385779150667406128918574062467813446026990110286944795447295854534662171889358260702258291155174588551269017187216807874857627966925065958812521472752359367694065936048260590391074872501073175910000987061561538091291075479822248178114113761641726934033235229316742365593012623865742034896741361104654906883136384954098753435074164234007667110860460547870138316958043930186310295503819513685997476093769200792915922210534257233894135944161892659069432684342146441159911010513612344577495068876389603768163730569405337584813422503733459258301832525966452192392522912749002877116774808709091542036815490165915578118186636099297400863663732328976876844361030752361287208840362691517330216818649800071804824073010646779090913223916102163312779322561796814145457524345366565970266274090147009160175159897457158681784682334089705397460345282580680304539783359231410346373653600316810479792930615591209885604830033812981173847639840752117307841323959194228679937612196099514860855116628052698588293418959059962554727367210819623541655414416181409729644698458363238299384384368573369107781352352718083168482049235917538037996226737293264864597291108649502604255822817369433549519343624677395995196243717472564978572770291318940935849870292969505841074410564104044989950201448930978247884400925042114605123401591581129805189449273304297936863308504242656116849094057869415754536423483564010956874614346652825420264237569762197963937992496531725887011980686434835658543583212701082979677786332570075372516483028596672280379090758761872019393759478438494036802032317942539748172020480378145697170632384201682916567702007195551888372092694696168527362607033644790941087278348367741557161998077565914936769444554707387257754967916463274085012852941649930407964404978656833720386799220118052571847662316741018013969059272119208420891113259067104884052489036200557326682204164107558623303151364874340919133984119897864756269071646316310063582741481532576793331816893862579253701181622477804797197061532633637113183558552068993491762190384789048543525650793746527842727521367085391559898055971587673247706087353576664200245923715215585452453489409565405243806404184115124298820370437317990247691436665190223098031696429106514787824569073793867464117587350483660150232150788157294548902125607687698190380044187357432883149578320356290323528111112623540153221792161075569032654918006075291242678646580283673139108553322218907446900295711150814589471854978181978847350127088003998749161361401145074740442609527734208745713287450941146342165279904317945426599179328295648048314418363037113867899679342769463961080455796365072599393902071195565426938377361520019233470946267164744705714755737223895687346125465953337466795624614174757283237994785959225982248526930647470693560768472643514887826030535353447038358850208389285827047146308167064263258082256299346145587404386777926052385664187908667463522572024372687465032486140343579760315097275234140138111439991180700325247939374382216722178226321621865974573883878641943666768037496296583269536474269976252943317018386732886911209962432760407569701777087408449617350844439047007668258724554119952974983005179412310599074194168815743859495971024877882883282268218969215169651448446533984849065804911529257073099327810314764895538960067320004492430672956249838762818462290114764757886484259973698121284949515879623821699966647818245839879384373234942952457032806286649315378506425420132785124917866434190191577479357225503733292717961200866673143431538895472584967510397763237668196640766845212498436882389194634612520978606062307700231183562988812469281930167930338715643673033274471796038991866161620495228742519337916567315127267225543813102809415747960778535130612675768178013145977348800804081326348682365441460319829139190213248154715112549683311436273671110407975046419782837763786528711406636436001372013614677005774263343315382952190807922694030639516981912872992329547909326610013566949363988604415620449257396226566621358030316478527863191392984112252199793872881949065850523246990128618584409557193240945755298721507637235632946061151572757510208890371961629090895695046470873667211543660875104906835757592109090223662375620247878482995263814867884749375283978744419193252385558071420243686683048453508408884678522036907254059481817720437237114997935348240824287629377222040162634729298684590145546141455650042926032252853881528632061705667817859325154163725063232987566643910896345409919819668575123939358796502447765956039061912960479523715761240160134412958065784074353601039286453296690844634919083535988444281472109957636456879527033419539462981640016602589759854326106661500910244838290067323900400415614141703558537089268247649934618016313721048663483362069614462147287459329068319209651379016896064580343668376503007492629822164654745430568346032898692652456109686258028675198206199615845808861933153856281033323828621515084657565029806770579451813666555275561157517547446753719824393388179893026986250525821846272733761808942384925994660303988922683386580984299120718828900332837350174835079157947480576032836967836889838868636834296945187877679158888366596779101058270989541089087943161304153339772369817498301513282885142595248885992456367280921975932527080460300761611030829100307964383138116755392767162613550594765043571343393099223650549753653820487579958521783798166873997513011424455626303747531056489077865711355623766347959538368120150819141355878551369177381112344886295403632629049466245412421856105490168088892806558984740237029522402174054658604653294133538762173586538902050963204253083139823400937774606207674813567483990890005988430457036130491668416766658377431131353597429963541526533051017692742086787812252475182212217299044526991823003883287682555842479837435011789189697695395564500291334213492292654683062455503740730007621647540508919947314032874583778912962554922167148576284962947603406900155536679365605975346336937031864684548208691152627558613519475233544508198548686383312237332077614528383998516078705352932691429977747476499166821489670011987900571853544944748851533050530339359231851300843376849735176435941367384414744421492056425341819634409750256137417400377786117714709305509349789203547615095596340638438385681398570847603171471250626172781171246693817473898833980349665385875084480825447373405478306862435684975263193331926474325141257210480870781215820978826548131140532829512229078155874185447915888424945845202644541715445176708775756547140539256524036239930339524722630351417196623809457594951907954337841144992784829647306217140202707085371647217270696445259657665315677485420453790570069307775316515387351052362693577266256218723373873199902986125083919127670665040373472877175628059038760777378789095463178865742002826471985699839460735929273552160793213825201116932251490470616723642796279426086495015765922332173700479212227902200958894845790379695583248702531434989951946313972503525930065614020052706573081050929222083255382587865764494397887694189586084939174513923726756997117677233859347618393006630197189061013159338792166260724378896361517457029791294095703459734426941402000982230382111741308833792517838521597087800036966111952301063456582547983122259540825361432141651389752186077943997770800482051146878589507672434123778909644403612248910100158033814833193996110202663377393048051738558392776265354413346456722823657236857689786273354491195920570152537868558503005210109321189250022871176212311131115702737634465183333803883954417415220502077870105621483895183395759748231388952801648374686455788984754589897143981327276083165153315654512468641065624950320924847246068160754093979331365444611129064551986459479693566725557442256181891019618608710211563037743281836810615620388927836582626771716045880664780535347574789543244868236323183617032173436389478949936552236563904801923267337686337689218445307475110168905013790115759307045435983694297356292491951516100335296405230254113882937890574352737177756738479397343350684008724312951572744610151684520603028033398623731886463302974053853107930910199559175065517823261218253470982714194479801086605264129322640861259718721909234586636274983909419417187940405351127704521459533510798026625154407508336735042393903318379335430985833351054728719650426156501837762666042217226294642816256472714876125215304144938073820471065204839035046727151179204929948908526464492136386552202875055614145249077208485458048528993869606431879822980749581719250321589095860966056065294125480560372723441687742762342297437327816003369362267871011233595241196022975996372319072815731830555548285880193008701652643053307469113334469992818829652162538836144250847011190259473154177295566389332229672552267247668878576134134061673242844811658554829064954140025815474932623653693174001797442520737699831658593529060588459791985355171242857828638846073952990280923155236100230672442099476278880530361466089972036136918481655232898091530311758439579052428405320831562444405874858164635410391103013570489748773379253048114591607102689244474529794779944645835779720667542766245462169599326716867591120621665410615122152219197391788709344049572904827986498277074037423550604579222067374219904468429510892414293808631273816025689760865674511630502873238377201788679064793872796299545722796345176508698791145635679639192598377792348244395068185430812649398907894392215662500151318935115575319019286432029031500058551430148969703071952279005886555552106860007047743337812547545205616823676432354744250674168622048906101933199118540792052288348772997487396876564395968231924537262514179472837226661145753583633932642088515215325196258521773694732855073646810150472821131001112737687280080534539574502087683149031201226125272320307820185046934394437274712186090986057364414648718910971765506711989164267699171515956731371508996114923729229711788459112580997130631879081986242024041551243682485850576109313980168573755595690459800998509690214180893663688363553137478584904724393850770341288025273069052510712413005241351989059135791546506710904484835141467104008248507952173783008944552078334965309815591018516290053156105795049711993170827494705369890756982733235232165328691273441862779405498212629520290981476677373113758098624454625283764362667047107428784392950646400977870969226456988603966470422709787054300720590858678127712857217619123334315263720644232552343156993537608271337540670239508156792582295221900384547727222239141831206806807350277082562333844044130322525948461834551875484744338478526276820087425823538346059866656202958852554870396469343288247173274335656596611129218174232352213017585956208917950284337596071159351526104330274389590633518308660906329556793821839240443732670011307023478277302862679336996628331202263106995691952377707870306275742836008622592929252693266294650404441127533860795269917156753087450729596354814246608138469235678809639939059702186940974966164588909389583978729794980415266037236610007798156440558901603850364271799139646570644729606491944822593226204048641230635071198179960599416669926588405865261750523449930654378918104334544063221534799354696303813572769764647257150497273930245081242603630853728685231851418826603475325005338412427055585267186004596682143009068051643768061902065196497493021774196096031724396323143451578048480343070990491773752361437455030378307644849149545009472439578070996234393460313662250572878863692263937708316287251197444012876395031668140408298895130059596432927953992986835349916611166562983931885078824313450464203481975131151048539345111080906579071522858797125838318216372278917698887083142857571004900725898153344822031125191400434585969198530921356400072155826955666342469186412178090492064782843554422300004406560869886909455102916933990441094047657121417770901850191802881087946224083389925803663442772514725851890714469147265479305837871415694896301388626075286410785450581731977423369415991228543778948281387638545827830994190714802906337178570873782760957221757798331035204218911369361841358683616841223633435710905609117648469588711420815447147910480643268512026731581907075837704074642008564788666493052637409912472458827385835670645310799317827477640252003024094697068203410291337596615276760654839877985139543482585937474273549469600559371080803708093358403377623708429273749562319997700662309375186980588983349495490016345692429867309777566836578912089220805289925239334116659677280948453522581110855714727119814388961110482261738557357331968612763821403882070704982826849365886571558247217452327889462868790595553069056687236998939804198288551947864604245929152884221511567991285964547426722107535534686200895365394813866857620806425183863181498563064995676871573099069546053963229184794241279942447635614554868308921455675126221537496494511548567826949492933848097458747771647810343384880008833815956380668604627431376358471535120288525348118032183337045314570265710434251209259636328408333850875467441305491482842952182409473008515269064985487311230493127276232659406877722020486036169363970497305472036937673537371528760975186414430639839047799632670261872497439547728382901994210361892851948889206304075697022799134376952568345683766251458293410487218875839813143721374387070453549099610939891832244503679943632569262074069508147279862548807662374761525321472286306581961492630745357888667676534154193121454838332549750275988850772478144353410373113626765501216076733051879482859673946492883909071919483043562077865205342481515444993333484265418233045139247974699419602341429605744468262536976441771636396265503974441244103601131313015049114856249816639890959484326026648839150672052302176615254891395527334930893370771342221147369824367916920619546341074044778138362565912060045423577254105811010818967013410015401557523856709474709443091093978825424178653420168473139801468795560405866555760946489525532214996064161925269922607821830622269245430195433358020377019374504694800599600303410296952887337570473900594619563254564339145954186539099268359587535043850881684454831374594794681491415733150642536996792352722283588069000731910165708826824535811216297187863066692039391834085395688950159325849897158021965467201603090564964289842421986743286280338936075070279166703572754157878133012934415531565081630829632615245458837648938638872004741610882067905178965948430192721245553254864305489734940445902554081829000283273219890934104562420706246413616176536057438657468850344233652409412193410294971756106659865352959459301239294793961927689244663021735315320802834224122320620977509836771381650894471435372628565195195296692269602994258600871186926201506643926604061162197228033303612488284726563051568472589552381963398324668448552484290423199615540194678685451550428635826081139798858429654095506662494610392075403831798680711595385460258476204035267467017727221987054829943419515951966742792634766486548902672245554653625441890719430485389090792350456316094975158869700752074615739312945175603839406244510216587613254498669329355077397725338305379635184228877589533246876260508438347276061411192920581210648240496773432104431645327116406645365377593876597141498180467674196870901660617984271011830693159299656044901312381409819877089071297822427087353118551177649651870339288183454520090059135014349134380134132429091413048910626720756624197500196498471585550158510273201409285101747077583484288759096905156627697823049526849061158144912765992387273287479948249105232338219821602856562897442999241576587849704425702490087757708655458954966927340053500450932717335921899890906584903421613486438873921861594737414173649538801907175167884247321947619650846786410804812091428521294816663325252443407167878408106406426064026750878338953280106243610403919051835482973668672140244295988605409325091726296871629962709559753165590737457606116592920385678117330567745536693024060479530938021501964095948784720102807144342836516747403907264495954290609111730571563492735723666848694537402829270804558499439162733494610520223639026229584839236400171981068349210636331568875727695272550064442923311118496362133098187646669991715821136835362183640439728510956782596328831082670981398322905097778501246207450558853812571969775699438385544737828617460381732305429006033806690853725907651122162245189561637822269299130942751641748454647958409540833446182765214201251978327444173415200064891570785841497567763075545868431348695983459271862776342492503681596007399996964045858011254130388008543237432156766390726491213932237274786550573897055117973350696926252046996547435800251429468134355272071244398298756529355074462251882789369282724690333171774918226023130107265497092863392243772726849163454162409972380724822187190054180025455721815493493031296816672481467955910953438613437331738120358717227340079915177166484200383332870359402136627941122994031008005903062142372646022012123997772711092125059986084419973712265831270459691463066125203304439938903083303484781574209783171759073589363565121749639799396818316093994493673121464278081199398919295926223427050522220897067565190246158857551587099250730281498659156868966609978216868468288114553810820384092891990872739265853387010668237256558379959469576975227172610785518520776654489541546960880483412639490968919118515503035927350241059979756655999708178003511750663218874269484845701189987592208252310387297929755798599685499424138053683787559682320638712770779685747645657289025068434294474776684975272488170215165889495691323893773218524833829739324984554071586901874525857309777281873339266193724431290331510722106210528695019784230222547493483264077731059189305924854546135635638958368473904447082907688023323660996535294058973197822094431142141386116467761525450102824702772708687065786847510509621817572430786268484430296494462066735888278064161356690167770430464264152051216527927752008659561525690205165740823399701013738671515724118989210178615320492500227216789567334044333376033918301256326134623004133217748355679046687667379793157163863855589072782753036877229332501351516697403783283595581609801464532365127986192017855255601929821228015920477323079918378580739393129697575250941166010068598161972437558770206136109708486297192259612781256302325776455865682623970508916838822727869887482013044229174566601981158028241802626678752859161452720033262644030786507674171713184901073700304895557609067696835685427505938785845658764848259228561541045957870004928902498016496125246493258634985917174739344878963181266451781866374198617743802095628971432281834103032777276091899679543900246232350832536979327169871056010026111871518908785472879780938731620487099321477274973490754661483103836429822321170174689019105274054006909150268160884829253513825768421110556139810157129853822378751511263613556211876351148342449682395054903965804462437165713862373979685136012206748880622851633294879326275039139239649737901757829554268886660084038396806564696501785824298861842220658169187701411613508830470366896978968770913769656728305809659504713613166284557203050616555117490862799352286397937021723997690863267771668161819508970572375096957194274872871120336016010632484067886808498444532821863269086467162758402688314554967015400834513362405591438054060023549822368038375519934673358233555065911662132906201755906990271699031113610671914856473793155784898277163677439102803667084742947186672195188785924681910811112532885307815908761767550618260067706042068115123265889221055786847745237035973140665390038917573690688479805169724331826050707232963120920787031909476199985892903395426025717047815307962466063626169230332054449555468292391352361197346504660535311317950091364765396823115455704626573350691990032126236737965662425710927546185329290830459485594432213104339740229650547729054632295258303604839433520140094022288185766576769853470822014255145106640029971154035119035013919884918334297060970867247694918144268927626459605148538206494778211217585566645417088833255109943789649271564424540136199951230055503750805902226599873349402082901749046377906860452758109287855504872510710391064860350480918911686468119949722414474643228802788133368038127329843253684193046668355859981692060101240178309267000840592003522680601284830918578922828765367160448788678946869170712552404228366488013766143025395784854238269305688672064045611084176696125200787639028218098804107190455296393327632349401648656715285064910583373646313867468924502385800283773545152546263999143145989221016821877259303478265633807962917820516436810719662685510587915300543416478383653615847280419775389123484538655990257971988467824610501150848529910274851978699808536132356581467636039383927397362590618498230432078553421326268550430055558534579342374120604326073257650931616262761869844284790115181022947796050627789192182833055611486820612025646503063618834765221910410060724417884640759962315104614076910170861354362907900088703348435927733976857970920067552467907067362195001066373081643119142869704601414987754390267209976112460128274674654163484710386274596215956503406308868311591218990023519469665937497380007538763921364894303389511379674835998854537703436586071352884961876445540418738342118054545629743020028656924242922066320272933142902624818772705890624061275206886936193246659285734904892666727415856811101882244727440494045156874096246176311815022080717572176431757073929265562418500564825706548677995105131008516315338449147547525940793894935829859958895747913381621070585516987224484879787005216809619011596745204856519829074552306285052546323940688092166652657239003698185969304793640197678431641707642473122363262038263774226977757927146527014204299955842009680050409299395149645248816515157529806183105151109933696423056654892913894236818708813628150015429241996999514265485284716982270072053080040216525652148886478467540600802849733933591231104632768807472988089869228001334375810359591973483756273475587575094039513468122774522796181289133086842293883688525890034568416353358030029037646837544201137481906314230425008944777370211268406524925578733616721205193283554342646908815870059929477487079014037137889436113488505340052430134427324330057418302017755611805687486690242696567845822647898225260647700054825850814803803102806460418415507331268840015495124551385358305834254033920728088391098581382987184503921881268979963385472222604883130274346729591454394185746036176130553343813413311611438360358722508837323033071844186277197320936077484201367206219868579111098680554301739608227586803339323040196831676351671324552667493208620748850013830726371626267366596183737030006886150393666377888777265946536743112898555286306080807963046042991740859282786884092204837849411839911998958129367045495871864733392660062292373718141113945459208497882930386577398619705886135418574061706174183204086411179387405801684857293041678475277880127922446083766707147925435283332785067918855799630652971339180259306679367777384002907820170825146501909309445852509702722625490839008153014022189469537517418538282655872118439020577174490993138564848003917592947099008555613045374666217855418427704886247579477211358754102555883843253134769659403310899300181549615261894330691788050080942963016439974506902250011120803238957908502696529910572750615184584223230402767014949885188168189356858774013095898914349870139559152964159554456410054159390184183279108044641037426370982347129903657323847192038855033093251423217573463756561755183773779520620376562642144517223833288944189080832779275935086957140275691196615918393110950210500013336102496644203740884528817694725654569975872720912065994464587601150446311390190588402659199789152512303700689662072383437235902353219092679709852710735744228746103149336771177365900425066461182003817978294129405435784822121203975506700521519866170294984596675859189115146110661040168788152951746416402222672276018442171499411369794449348807982327256018587036219348228109740020069861613197009343879849622335478647162261204867345730702484479663519271281013025301109819529402248851168943659254279006783269857416028786706909001436922543699289494227640299469643963769700027970561999828762909979852347672659350981483718137127246534144526464667171639002880353530304534234216904617959366448666889464322891386611801181897239278423031759735416670975794706455606879981299273307375788391160484076417200551823479834131763705668523033884782760948151872482681292112373698009905279357988429697909304336340999919097806120029582802793761471336159921157533139547716675873550756454843885114838747302045534562864470577258785770975586846995859814025705322250425636826458614769436233316040618933149283281530346341371552543933221143953281359107620198812628896915080405974304025659982711296458896593080743731983221797238787978999062415584127911711566974701358647765342184526206584322846352101466582122372195207429200095950842859189804852266180600834748242295231687650993922731821493972852201422975714887390177389677442288689439081734201910486312291459089992335547706974564144322624422230885521326545488757489021580504292919760760167132438457577797714685690311041425016381908041554139698660184654841937789434001180927841557605611187813892540699937441119883094411835603852171529555701773663170503787729884334181615684525881405953151663857922917994290960301964896187405624299835902935685074097466284863904433391255643245101088257957472988362494752949956559878957312888515646557042571426672028211863329211654043216707076233247068381963459936223078931984328931650187347477362467474553322608823619011402592300030903951205512894350625326468678666605444760397359847953666856999736413156476786703946918174356638732987481878030009233170832606370604021330892258539182464258324727610399320306805168135119299403503056430118072560034706610035454073667176565515068577305042762632797056002299263624277461516500308046469938165173512574045600132833255167737370256849305476845121274926058880768549448453052569666532693402297175389391080658218715921518975985264016208418378673180774592332937071296100008394753000744333700109815806164113726388636163678261511802451076827997461696954868222713598216392311871061415170432581605211284527882450228769167412817358517641310037576204073706225033008585564189708860320643284010590685064611656621256927219860023920518519600865714710057167202099437272761913576177639967502864694679470558315187840544073523379503288067849053462076356380972219335244901189801488159297353078731968718393179207041306068271288770125853152280445197923385451159060556685363790068338131197399631421144725744939158706799953896092649537088496360578356259472914777680050155525018598176245303029820418634727037471732061782685120407944247906504072075987995333338090570294878946114482630566858729831590363254653594475808968076024905352529603982916517212054107949761598263813188502585896368877127876281096615279334625766643626068641171725865220108972754646890163022800504093183724215270277062049026848672024006107918972470872883893837205173755149671506982170306107013391514157479181868250940068940255684536664426370215415692476081984990295023677069302255992217460119793740496094019597272846658730145189158366276672237285185590500634708751079083292172666388347936077036822517978157864119974444573126215386009299168412976083834451173970834874647472546622686349344401475196893948205952403978758918761145324917428403047417853006429362091500834409615388785924699504053055680489395761139683736616463710996385427759478244480362180761300376625675175019681617956523245217173568571561310897328109139691586531827195305657831412804505907181041031021803568397989147712225031102896873004101386995611820131147615233623967360136597234522073156732420692618013755739591322111192967843695757712839878463951830411778922441642435318623692005252563020174996899362863855702553097305086177612726757653033637403698999086448824875841418956952886116836963891038711585268347876570601059005054439370462901129236963897198394370173311801643402581868564932086897636831457880554233026269565992656977595197088257715181156025875109928343554319724953843401506888263199142115026477956615481086299160491162934358791269415133697065931043097509460288038472733239504526439985283685496132716043253789531921964370962604685872830434961296050714753137735020909073308704053971899480027837676440046965504790407498040356710122918395208739691060139999971669147235938157153356568686126257418313051311905862325461175800538435519932595752431835580550012463559712449284936628739355244875722381278872628169413280612477434624817749862288321769557788618369982461406669566720742395919138923623145904266781994388643480707096494324803003734992140534666169797515427846977068478759589210684944589465121446189154016870324662467300700957102338611067151001966744077578237572218055205999973467959160974626715034920704593944015220743554508277353592188042412401375739489471058313384101809018846023848178350810243101141799986490755135283266265226854263609985709163315360091447965854801284244562823598301913358276018874471643288067501721406095142006728954478830653166354267610278151745947608429587851970226365963771794913778568430118542248676421714991523991088915974452316682401337226056253802248514450181802499059988492206062355412512003714427223835901398237128675756412793605861155604290789400703641275549527691367931900472917618724760515723384340551673663375905896028022162683096996067442198091929867486808050368496704246236032567859708040297934004173396854939264838601040818103341425415357802668138190792743796232348772933833872601550367750973957075731307749028408226162546694648993489459954513522408684155976900876782864896179966819588562353325777815901112471231022049661174472146449421569097479536529641848045995475923162124651175661834105737615005955657749250470022279071210556297849593471426594510935274357151435259602400939924419936906014587768502629357823378752681699839867444261905876785773399433780616148028507081281960282097778418935154098599278786341727553978338975974030700912942655084586579575959058026215691624720415112572077002089410216161153340009982175577168775183496818950540794490089838983393749368360799199645229260003903457717350992893600006782266258202932670715009378539058402666058513350276950446883457513165253096978082901651727332162189337291195000586033657809292496147958456914308191123422166152272478297263923962645869346486799337635588886677198902330297300961894207022782790375929622512741327153166041612992038822650534768291598825051448923899020567120011454782969693607625936153756015039057171515646484970998379037397565551407003438340447616488615624087262058570154345216655477767141522307242884946931261391338119061111873094453408987877300839037327319675986729428456094636819212326951625438718196692681160320304350138227958065027940448158469071211476877606578304547776784351117180578097159166341630458157643075705489551990939907971254148259215953670480668237264022498426648334839151729394678697538979845790536972921219530964044773802099464960018325795325907156079885625736251690921761321837523626278786066635922375169653313213811853279556950667442113791821691039532753087884025818619803705981376388432969426061645664985005779522332997940065562618991306945762397729549149067840532549136007883602069303646809782178590203005571280912921174249416856558568341761020546781916138707095585655839914211411459964819072871761478794669268936842613908929024533104297437787001667059645027541072542849709665671408947449549877824256435458737105318222988541100297089853841450196322473840854118128230313312383285890494885618715638300745656303333153246333496064739147850420969633428567909841557471759095678476652355609126589993715010573214138624071559366974587860969687597037229544490747119946301559958044038778817712881210332989464333452487094119141759125644799080921410635477450827130667213748692051993746083141326436584967266331837266476338913736019870780279823061847969221741028495677724993465534806150299762293460762734534779001180830032593299972078302267248677430832132031572316316137456457136465574383267326525319454123299631053197655655038228278590189325276530381883583684151462266483942785978446785004936140886464637569111365172712647060929212324211014885944961103780463261368933912476345369647854106506286135222803434299085540485339832413849233240391532422400713800346838461901304918373172241004572367455015627163138633757688257934489270331007730468501921746428591887884581837872528156592221704548647145498255674587729783977980537905196887020861323232936565883541996589106187570254022764151208922966194126018974305476661680834785558189238118079074784419136789684915602809857936541775344719894824609904185233033689665025645131022281956587969128446712867819175407161574937828615790094306527260751166340108793617845785156060147756843474567400501933641927859554890371959932242086285476676197191963120937938597667531548977993828093143826989694938390513081384860047463400771487833645541695726432325673731289863897073546933519908584164448874969966816596442992518405423547978116157618939820134640542031372853857793408546669035293797083224645679094534520771603500226815190809218571006235706924155285153403322262015892418107469404262380680165836551397076468087776407854159550768376522057782019014860504647676262536782469545472750045407643501323531360181959887552906595804126724355776025104474065554507860646288218290948136142910709087687776790284920597009932289581427946790027128696698074126291772606964450577570129444314864002723958605284105899409456741632258382052157715341191741034736595046273413953078300205072806048173977844156706783882390792352587899710054100859530849173344981941586404785121974411611436426466655025982853064601627400365578876471675355605539989601604191373113270403482120560420477110418006869101397863900168008581603231645814404319759032309607575577959474011415291842272760430601835039904270617306132830567471227430673808120250778749260464634920660116967138431549097871787871086101801137055946067622888632550451900021520048443591934763014531118897890833673668661673015211695152923226457938556752534197541362364202144113533294003223639307744067096131098399987036265603282716259077773735544592509853197364501579031843609579515387043712184083257110977847422917532159324945858060062210004729327698526149190419301993039974779565075054699403727384197843862705016484732187976782021669821362294844580913680464604421930764613759189134391462171155905777941753921961149564462680368948393470336481908052724765762906364850452918755097538975070887070776456007135409946903904140266174215325798668397538923632360979772323604925109526906512654201916650689509453480182456636934229591892710290383451632495585389129893970841230348279059105013775184064793864342596740684525020467732741432729954721457956610359518146448034205989316766302232084782795438855268948094004411423769514819422373559314674089625964473441877191706771336081427255154457732774230930363200499197046409658603591287565983557676805088129025516302127381482105329839969508862542919900538475016918985150291084115046751143651986267406749335932359154879450619880637974538314212764972388584499879282201922597252746780756321613452845815699135718680233656166113283749351938471497532217360157420957976814404805967384882297013863241928064405125749249162262428821623476957743783701316053935613109069220302087686771148690589238977415601525078985200641805049856678319231261173078293102316259325816973661153467947297229223083971426610729973415400245370481313449057935264971098253335800701508032055575628625496192068009700526943044601810119193881854997733377671385448261476719906279975332229229021548118040026836182148534998882947034419916515923226535998634206545975005570211257532340104127096132710668131936858312598347178329161978147360076036887647683113402268339764120744872493583528936561828304700420639940151840691543899686637215066768113050054009982545448099371259414801045736898441631222157591194063139764726039973261015599326964351553526262085179326722386921976323119863240501125399671916499184797730075884377113304107726925525143209328269067121619133126469155045785686176979907686500435857653852637244081432055943473058818407857354058169840707641382716294253990232082352933713669363202085671686668059690472616239046067927067566928197887049449439329967549351627600092435355609887443655128213504056137744500819394345239136598483456318755797321058834256983262024647554236059142978473123254719757521321633139406769076456431315992370557335824539730475681379162250585864117394303900180269647864270261717466429376112540742386869877697296851769473734212022581133081653997187908141529191401895597809762785529171569108232589657198896160360791712100868295892839247675127596428902210667131682868359638938958428203047528902849816572826560794359316213639949069559281975759316384153217732362129605616545172986097220842542243528617233861989691548027041651430049407636826631110410323651082678169408417257145741497380897213592448542053777184473104816752820666183773163560156118675980246225091250926870986373250960583505963532008963447841492455525937740855732027183160344732576544782675937387243766297521699166303899677226195100353976542404451776919196845551029601323929583225951938398404556361577183386461030404889254810387710602432998763977399049091747413639017214216393671804423098659092028807884395149763000089363062235022840975634002483292406346609602807087007516692536939052990380524216753656381656201695774624455751305315287342917820861591310461598017569281213037150267434298780351457491634628097473381616170682258660548739839926543334573496117562288062567893535556592562331983147540442190388701551838332574228857870795090141467584831568333378625316865165656481003459275382713795367715463743949677604928886025719623558591478396652083168239653485977627379188879881713690966122218300588869172466644443004654411602223140771869452369814482338329263325867827706001579710669868763753751348164394662788584796312849463281992311795022096576911658281303567358500523896970560015663547458741454783038908438313409982177375301697728606108039578648798824755273987310824813389054542865622125806766472257085225599612812079263395085068457411861676727290909496958482277179057200083198765650629864728694682781029168771006272270831575515151818295281387427397537127928599704279264673273065840455128633692464413009997981688104176052564822575367510405458338879662438653984525934390966243580505065377234227641680738564570927473904733371694449798641530987843718408750253710306770965512295167565577965047524920401139025277861769490876677437659733240318740868546992266680952317819126942965504208231521540714890759700121706006064476919021307789495927349195297595098687936622847639759532406755660927981115441029743222532538773684416489258642859520700569817799864375222809886402695804671541087295688394604049728923143508357368132636555236508704105143482680377238821460656263872634438476579342261873659047386820878252004848543477067377915345562860545548317660423109190419930845793329305671117089152578782691664075606200908360852552635443920161253699709998410742693240894079715365247473092086849766757734154670728080873767188522967019684104422626823189690855814945879104207268093387570920178191611909279654445742175442164279443493941380571039995809148398617775333209315839837414625788130610341052576672734915708178798571784353857873398251540498516239464575788266992108279381206418198915775925721376257899951618084283487205766171424771390962301888570611570244942783646469881544880017843612402920409626308742956206959160280843737212751455269946243224978214177442102323730941390930728460704020312444311479703950931965368395220301311449390927199551805234166797858715610215919192946817774471941445060822410137953175293539619615086168765356631382276218978141233695481220748184393928230535661277054763435189830638213907499605680961138630328189959120158827432971028310686616783324895774236347061134930770550156543689533014877558720711794616650433778147454415507638652416987537562980566018912055075745861769482407499855886321974388681517401047385957555192289431106126847928596564266767717219426606618705483135537487950971162945204540492810534994933260232891988796595939887454422187269932753619807687298840348647656868905226474813396441765420864376736662170513159996693274363962366147506358561330562704502662682308475347720821453577006856746742556063214797510620124188035060520420301542678202105357881111513522699779742608843336188233818382900810098101434417046728616822212641441045554746557779692533535919297543621012271716177341996121624348457055602458568046402874424858585256520739291889660178532485164976540862159762343997726987490353213564356666756770368494295020933301537935608947508324527446843290069707758134321672189887866570477549341886714081943173592587540403599568899808709701673085224749233510034433052571464534724771530531584280950897008091191123626053790559511725322689286629586083087771336062988677080799772414180312588006550697083961296506131629973003350800322425984185054479204116518331558952725673266677550641444336351463985877665903138025831509086871474271053453834919383400884996081148773068824967196415719693596517117469418690843655124361239673984803990228516645365585373902223570244870831536748513586449131751513431043218099703212099598040926449778259738715459636259388745880457647238434722842172430065256266819080077271839951174877528570294120952950162033367993404524149132476640779696473350736675652082821985390739444125733103768235136748139718861421495988665291405463081830863769621755735489975971063976161103477343564026153141138512118368334777235975573237012693431133924301720616607228246142518386096270925606411465909022186876452597045128593899444782120509333265687641347213900918281022278271478719253421689342799700682262908184299427760867026613752497170660729218043701431695185431602011523617655646085498339400573100217896432194971572983496136395834967312256062555435088164010144161420269734985363621331387904149453917951352571416322391623916947443156970928526102099326342703685502750181385513886295109768552498361314242223626925552729520519549589248835888345969080770938039723490175015911488566473160333403955167971714803135146984733637495772780851169226543343143890940768094550563715684042440176528730952124814077292266806692261135139942249964936625820795255103324309959542949471131482037510233097997710921649998822317230094350865321604381382310460366092868991074095430613524604073052362485545982625434963752958899727204498230707343744847893241533591895446250305957454135270586204879069808945616512912855455721634238200018454113639316717198323140197749236603796246742698873619762494017242049192131620924918252972751658593675202388521676252136119613507119318230268176557599467490541799497588069451273407816931405126690601859347639094084668762962447632545692433247328980228859953422550101838860959435078567271906128170551935662269945902700859949394921454753358445722883912216626409071014248986551605171730528668666077598542810459354545940988196446563182723462378983061639000548045299469635275683452737370874647431704079904688439422770392301213756517186412023652462938839675838748417345809648821841310841360651451799483103044010514061096532992296966576083525233247404122761888068259997982169291426122340741656915417769181360911758149545958914950607250381333403659758048724453978916746909012305916627960425684026065170375035087722705345270932954442932269380773872485579946966712939862772535126433064056762336511095791093451391718951196145181947493262566308329806360287256335463581094994460539180939679437248847868467832682644117640979682430379848365384288294259603741045204094304710950750983523545925576242351252673764371862675551703520067679140011740800461636030786688536340017547545662859817347148566518581337022801332004423232611892179019645841060533906261440295656793543489663892123260676953560611123923473005970328867629394936531204326443047323374612956448416585453708497606434805066223987423223469311081006559858656773305355862886574421770606903792186421942216663690983903558073450322646184864432623944242150271528436720091468510533187737739758255968979402382534088094612433834845153094779184194176467934691322863643395524498516694064700350285532153947814876214637712464802839414491265071119211166966722415667796516157290556090600357429159918462292204712362990756147223069258897754449728506647657146990749234016653026325902480859172650076091294733713220504130052071342313633227426946093781127223696813819973120130925832645667033836031866316078769197867688316770820224859454359312390755883651243035021923080838978552931171622761157286152058740776818942285104292725194144860503727591026910943733082944165706291392406954399366949172003583859461554180778197578591049570078441787995064375045186915566482672354062508144993813751243962598066680138420711528124036178823242767310481555247401082297546777789675703790202045219569471646714277872169497647616190419614915364696355253759191879496275969066748616542983024135149094923948068143196114730989827270525438289811947830048673090578235700285992141434767522241510006058500772677367548408784972305352756444774110711194059783428313653689709551244520926584614613324915993576806098540926613000022823102362228607075274904442290466973041745470455179338726840136580321026026549297958562046077919593505026984317843499971501166815443099023392856218410603150697908035188067782224329736031325036721526707958571094440558058896583306867822503330427784542677441256096287564343462447921687824240494492280841340820423683111073135860621604691454895938051242709838285640514388820418219936154533089512197613048231847156081664832782940526825771663296018256116108730911060316990058474732893706031919967601797373252886184982888031140461812455082820685744702787964234254533576107100682082599332449933779672705422832943611494182690140418695279953492972405344145881166228983813809452501016783669296109042192411181389551481561029694850554633533719236693423796768773689078146771777103907776895122555723580096932087742139723695065117516418396046766302603890924450590818884642023789151417406854129595432272270349491338848222852152558765875514230249383440103430333099810325196121922210682867580109099036247534193281301794768731052445516519050710864202968735760317430646736828681436326357742299319634182206033116200171343070353737144562428480517505261094507583675369515458004055152582011444382569935506961208994579367214939910487526334491370000948658208213560440537412391475298157426504267430526020454836761040463133837161302052808274185489663112401519747254255744418418444017206538105472495105149753523867295903611589962221218819627222505642449980863903258036042464789760688087855655953769289720429015389184956309731527744372352543358041089011704104525919905669073484896007927645262356054039052432577227204653498885961425888543750766024278971233594285774226821494450911668808093551357453577956249893653040614088524039498539235829075766209641669366675237161138855122371487642666858054995704159500604639948837269899945771095584920028858100861578994487570804520931841338296752283131245203902509203388404958623245755890404308698975554048212408073382695975197575581085095077781891733857705301047673254927858792493367314116063370639086371755155118474993749883714780245103310331334540298259047546507444870847161929523132878472898473052054098625566814969379106606796193438979336172477145109787202737922592314467343949859518038312004366158275279210994125901367253010363911506792240874782976442744284948459586083619751457419771712893877109282793325042360992606878163361466074938394458125866760289433191328411060610317348126125013008705310012710663786829017952846870946997713725914999114584110440335238462510342769607154582393929782992951893211659455169160721677287572438923559567098794664495904692660198417448539998875896640674025753814440987397083655151448839969748367799628398007242278450881650736325519845881966500062082561960870089419730519297131856355070112843218085853446094314157071066814726753885006469477910455459069271257496398010902120307588032948002987538810052518932936785688095671822947622991549857090783024172633708039562485906824220180678218678259158884047993523111015326509396070880945824580304353485723552822075750547610322119186922699340537130113784440504134890102581842600661940005107279693075120747669643248540760786245276022087513282685471427505379562106179427386202467869638795177943976296199704895359718311182443194222076826948015536321894907708973503323887877250157606432420970415952038106648064660875809810942853392864529017942926173880089555239787241979040045827790430597543272785266716991524170743921743698316496419070833435185770334241059630837340065312490816807347755988241834037054846377841565754892649758404270842033494924945135954600907839667409982993022414580558933999269223590848904005618327836433204479258483325603693613088668024989936199624648735057790208895279872057245767971144062713344437704685317624478135022213491049227747711050562951116786661365087445799315894070638848005445802520571187490293271148295934119526412491967973410602363719472935034631665670895122447285864871423491435919377731683306598800713884480703116577334591730239363029640904225738518112277792938884623168271686947201365023692303963192690226977867351166186880997060785962676385305136376981888422661813283178486181056781151441091599977992026625102069874929071343939110704999368077318012285194587495883245369240811959861842383266504071523322688305800704863186577236122807904074735589725199496313661918580447313910138743490506315178354641612663244182366112419214185117071645581144238125568588039436871480766578642792358148070988626066544802520917767539305905357703435899566191035364172357965822440257976763733115354862824881410963534368225927140076519592510776617152222802931993834159345844789314931953888064128769095066042484047190542965632008665682322725662189035108348632914230947316508048379260590449115436830554236113600700191361356606232893771270680601352128328958512054528414925640128076951769714253558369495911941980890436600860684089605319856361925167452499760608741148971422301935795935192672928120085903112384074242563465886922260383441669634428979021602172677012269292510069442124600943822425524526124765461970743462621684890669130351490923704113046173258013747478430409975887969316244420700420259177241239803576718488004244523541309052562159080611175230236676548312183517211262546155963771852350001479902492740525506431398120201117823486088051088804910208965188468586977154511082066684954029831921097917228239131945670312224401403150471341553341482033079852460798738601089274474751780389719752920417043178701084444235412480675585368895045932590334438606349323729083130916732645686547215537304000245024615225247989244645664593872840722568070378493570557086310406224758197450417895792853441355577157118821907956276077739883912256692971019137293201765896394993338475346515081124184017881394482024609468944922173121755757255311655350652256233781828923242429822720800535314021515654844049147420283414508983429115851631358792980285082911184863920587704427694208425183772844723380955741568397511532847140896216894796748282026148896606903084672761033478754806732745598494041326148656231853044609235732457551436571360246031753541490079963423121755683328104281631127911531691411002326170900543272895607614340104110907468808090011782737146735396978491218677770407663924462190700200779956296184393414203668820326798786806243828528458413182064615128365204900286206022866134549721771767078778232526729897432237156932355219894288697495957338723920425997332369602739932023437782729390631463145812785059715602497559785183322865801170400492989493620853401104664634624677371831766470980870400031509614193172537550758104962821228519006610841847446955681113488893713841057282011616108475625498291176170337251315848002632001733679275847432947199461329629371919583885444165812120052944950001109055575151105397562185282729321959228009980521815555669821076251172682661369823791169888315802160258800766475239723981416199648372313890952685235185437394334691482329456586325072635526362364781112219669370718067094941009237910460873475748147176523345387013132109052754280619891143831960425178317587494483229766292081889258166805155559993490727340005072092819360227884852221907051048901128159094830080759636797940614243466049129207785882983015913557185204555872374169181255998631385755538414790632073342209567696819698939168389410080449177379857484266243665276146722251615432844351060290253417816434028128260142271758492178582779513490430074141822603859334897511638191033441587556268630977209470453085459741492009788347006386802282829707233461659360723745435644091807549314369018974544294917309246602458053657596025416186252576624243055759617976612677083986199313864660127926182757811905355984968053839641536276392655353185316037602964674521463255521130797574194331091901229407535476467563455383311340917823138129589378932570049542117590992514450813393051242039669173264644378440291844348817236366882262234052991769525885211109128341548804318174950703977308170995035339835685000719389589595339264781283793978691408235643946488222469006505124331220565315253999589182126105717439870348829321186584472859145634941243759855847714399310394161757156437105473510690799451862098170991348046976408942170635075488007356828442018283395447619676379550884379962070758575351239701668252344128619709796631779031537872018858338469798404821756596444761224037698322810698267968816007682171778377224417940210815387453253084426352024831484155030714280954298049230838037724324019593933280424553922458271620593621077226875662864633025224407818930951457771025607155585692181498511534346341031947010358069549466205982321130201658460117339689685888851049412594913376451283482778492568000001659386163777245105864860910448949169055565621856575996596661264078514312128272421192213393758727213464939852878497355000583406669073507178184950804884827234108914301521583508010685666920840763849352250399544024370628541446091292062938469457521932699460793338659215118281456184429954676250161287008263839299815631593666904623683349909543411355620433131097315952753090573117884643073509960213431206772298917491817088327001968572372179350387326680886556465872577698384229954658507805348758811176267590511115251790227417803775445706851094402068173557910758162439825837292126285511658679874030873877295271724214718141387229966283929982149863489403885118707864460887586512445558794334045720130102875410775179838776925163231514717826400343028727841306509719704784313004947148784037483540227848648754152475673596123871355087472856466774424929680702350331488840719915430970817318936002021909173360736602295804354426612043039668041671571314684516242933869181790771037073921358908562836341704474129057874981240187705078678705302465622800012968985138612068833626332424705508347216589832491040492982574458872075945573608056048509205543314487409416161043272268957963582676142071920072407606308482376130433024050511341105176595759960963263455629717631162364871653353084907234379059472588301908327554327277369830419419287294905866999637595253955551666886885744655988745439446174059068866971898439583215525496283752461262094430082679799355866024314918707234550400916170483662702158749616915482827302463764257744466396369196679262018796872768471925728681098090291140813210668953600295456038882494110785624417589135128611269937454675020182696613934076369047012910314329171870239322470318562107196377400932770496754956428012703619660414628760747305542538379774496161617655985130769392170858183493303375648943728260272311189639950042821444916150273937540370342494122950503740980445713018307436893564314660111516488244631593769764181709383880221339707730232127550994230424130387486195984799222995155114387303730646152116577414410332505160755642232846358043967526886617498252470630647237638941785127027371922758955014537935022215034665313868178485584505507000507739156596390690272135027734096046113780578975904389497440643110849730891334251269892165123838789759871680633257005060838285436695219506892955719855548688889055556777626039269265779444099249209720216035012301281599738380081909207562890475163411311405851959098400227949054771485802687224862698675155243625736142627428132408924816362966520151440269788698585637197381771105589357488877381873685340684825756613031168006701393754237226967418140709360170799199743703831418421548662502351031223946316546289575325053596922241160380790900803253091727414045826333592072700184274551269252502917176356621510022360376859448313176489856343589796673224149143341236362186210688283364532511769184983525786187340378245710014626983967069750077706712472428227776763425026870740927725643637779397267978848725251722440936259507978178473465883515667110227825442996308211017261604476033186770392530793690007313332653748022868558105947414657993546763553983292780607184253005131956768849427694711282482975224527121422550187778974669490831030249247039775169000125954017231889214505788810165316907017465834709706390306870170683503806874494526669841737781849479892761574867587303154242130109918778690896462132605234685198858939614680896447455570291377953350449018846954222691273721756762722284540362073591278286178109906027698322500890442748288061435984514042522735485740734077499268386750132885072775115341370734032736387181051716597191511689528467414180922957611996464643720894769420555490619455287995560357781558600519042038244121058003770654014229215859802533973782911456127150727792332983830217246942187880342398125323065604665700992326627201943751230124353585177944279220015534176613939249804032359748745187992873611362521768781000871894261713727605919906982837432004295270415589025077410982769206096925498748031905532464218549646504879116611622711733603309531735126431514636288229209450149423178674006398931420689427091631126700556300016257814259219162955602980021529278258813807945536477805029434326877193204144424406532819352631923264908057684602508379124596058317943890116322887105683701956999985195938927972969282343158059279528414805210310738442264421855736678450971340704117879853244297321831277317707278993335928260268518244285014296943795383515805728005194498347565853670065148506957041232514203308555819951015145677968801602515437670382988896243488002392540485735471654458454331991961151161952674012700152796476539564415411102482807450294875266973228971473044803433704499990866210926903382115024759185513151204336410621759781021044507660190361840392700889987674055403217070293257538525620615055828707034640971188237581967365339216220539678247379210037583460128228136877321102769277783300527331558303508440682752869405743362293966293659072469732362039144872487450363827172146374382930954054986224280634856000960973281197097658042943619845479006369753302713187032501815276191062164447104411925669020510108086455913508934861532571950377959532994463057066614780819877711488667090838293827550904421449273303016557430595251800658159319394778495080263739214530848658805413531124985281152687516881629288279648842076677939185981442891018352326562020569149816679896946856582407741218431885417320739901129972563054323359394126564434203404431765017230946875537095393158493540301504444694869046280084983011264844263295684725681382508064684042140688945207825357565614025935461190802452960151975602450695132170244323168007605739641402288094426807348785871021051982837573235948914225258332032254463591384538182685909136534306129758374135468232052519492576681066032462500834508304775552127557489186841440518044376040297772636201216579927244617833483085888316748344831087244568604089647748890376579850545314998745526779364579603222361515025301890937684890633288434268601715874043727102167985874637829589132888244930897625421298346141127214068787642970419550374002932524679844379748954582257507777872962545382900203908848621541439596096127703056149377185013078609411897282510152027270872909992563771663301718316070855010876557675366059438130289446310397429524638427523459570707940363780887591552853866789854159920970748083204899364939885904509873768199862052761620719236380092086058556447473811601280707519735737524287255996626411551409582317764627880177502958116938265302112459730880861197648919881064290013664527893766535150686681313520073528542612176254748221234661145948268705028492418317356176612200250479146943950533889597726901234563904924899615014844012693687905398769127389471080896632866865507474500831876185136606009461964476533988137081797339178866493992012037989652720784794624029528156994853596576922436372412717521560647773580924381993341160916068513792424680267054778586277515630079774263738037862055220235968986676131455221543933403692818485405404245796351642297704151176281041491140804637483758176751431590702913905807780933224226415864573459220459435753220774851197224946281719509111070708514049484020258940044853897702891258774508826458683309585252269771479581934416968813600172727167910190963577829024053761297470851489411967126089427405177074414927300302987004126591510599031361113934656918360043336141699071460633841542247399594535684441565139545987520686755932464075088424691985593894244863987679154767887749002067733904057907614864752522264538712492790036201124833721772827411394985763710626171734885466465577177656639862621999258381373360439283323179832556623636246847178676917212307427827799730130768312857228457914574220512775746598946692278788436175762225458226748661193910927425044265293474586795294393692211092937622462266448418144577744277214998332544708123771116775993766030737105096275108445263103947906789307216609570154230913114251554291424017135004487847175328765981254591981775105764279999385295482410570085409597475585650225022455971245764124593012307870774685510982220619662954862511230536461998465944130216457289110526946264535785153411020108224440335411423892581416158714359986803919005247745602634177374921672092928083227149346576089624871626559713931445461889393568251723944589125313835813561933578770503826393159527344065631245905695933462416445273281497271684276923311920032103228599633197736108180813106380312500372468886329314242949905006025161466016135534755337860804662119818244734031944571150804707278511942195798374523322583854533388143497462116656199450670996519538063876321076820232190574033582946500058775527091306424372792506437896178952729572934683260835605940923076061933587003410471672262416827524580283580742102346400953586744425047641950017980806211830706006541031789901468487506000637427633796115015835693763946608081326568603375395495819290963031044869134623470001127249913805700638802488155079435431585611976161074300557520784364098069806357658742781250280540327211942135987053556728515479309691771613824556670159525076625293776337109787043659472677938330497757139720935443671140721604505664781989725935301584826967880096098657592567886278854327813922605524024365886530516805528395391971474280950994453988137047466482620009233811837090797974805591781683896194605957199872043044107786361554327130629253512992870427264395100351918676284312062037490468702635181291143707127852057727071624979521705024285837089570008484346282514935510210776047693858066378652438740738720928172998707958581229938530747237404235123612445838489382921860119474948717036281913268213866566896113674193362653756642108666229665657930077161037175926725529752117659005155432304380194118427561024588258385091059116817315660533690240040769921269477413271864435596623497288741420834258779692304239132970645662972737989435887333780047817077092162467955966239178903128824189529159475228757432915958239544883637546839279900741544456013054618508469763352742321594814581365366558970165321906344598592612799670150938674660900625029031521631017124024226487835481411024107907034804588843407837063927596436248557489293781506238630944728116122181122881994946418582229994800883218810370954353932603823888664547086007500054206615648100025199041884774040111491658918193544007016726527696115836041511189603937877577845117549156587925768502026229109139272481900259234796097095525538918563296449988450238088284258016101667799443240364352005608970400127932068196966320059464717365910398605836516857298661824665300284183279889093455147777474395484109077049006541411686400796479371883354387108473929015775214019825006025081687741798829522247758673761612668393170446775988986766090698823200280327703093063453044780649864117268887488055899267027108165102577333458358388191645264533531152334893353823859732846710604461147634390888494467545452663156281970774499838273375820388366928194151956615550635000457832223907259039398574752571424142923782226743353075328587088611567158604480250140334426265468322176049163361118184509293967880143951945277109050608620525440622940800248070791508111849075385584161365635485002012764913932044604024231237641568219119998122909056948055500526983300474310100362858305917930057073852474076669401607904494299084652700852566704703468844570327248193453476550160680177062342682389661919601368654412063859992283486675184978060194124682265995519090367187255021165615220913047555018852761584769785391851698861641965700711700559633984055332353045817884467648574784778029424426788037642831880103848944723567503003380520474499472897941783579099994941271811711385676125631675254132143865310965655182546394072810203871701906996008654881995554215286493969099300487964679648156558689751139924141791175622688828369563688528943024632734217368831435905165257303012158038726103879073872889038167573996260902153270608061131996030892410655577314630317466490742920185237432802595414613518596598371852617229668945890693484051229985095147771031346736528335287762930473742661600311276276583794920508022288448061892384996398954788658710777896605065957878732521513499111123430074760859434696426091112454002470787544256836086568207808576410208844159001706539825151466608479128400685708735363395844361849245543284253785411529407975362038912522367481755823173566704396130331263774422045330186210199907018348394163248182696592128780869415593608596305562183184367144820669349081508232580544197667464827555211661810891495507494432133829951775151765048661295722726526470046505549743124930569590632536308824169926002043684783945314530468796180665374735831626385816999987323294307586516197643974605247707027863893096611968853116912401233307552204328294621867061274197592063105847257647744204931952098749178357672860490434423666037165721379675726643717346093521128738222693962676959366234811958347592807569366021456283560308357104288931314118075857722358760747313220540583692262962504110957822241430654073808822482962770408010617770666056585152994214795687750848287498192742487558600006525471501752138229324036268405694745121747032206456805679555689170104180321755383267663162311372362954913317948758054979132568174358068420215652937176999941701779709367895249108006353466485879950423520988212188714111798803255353005560419292799075226519373230002285716676728337185935821176512609112384257558946229959448964043710390256458693855536847244123601229238854416663393293566576545237944475311457385844432453430321726478595803884198627415749705746971835952746986850190602665294470267823880409921386192802571955578749520119163435952570321349079103532101562945289901579109559030722419887697606120852033978813157136523087898554517829784800039507524292459179949566369300570053004796549513644102124452537090503824874517020657052176613507255172273110388049618179921516681942468068699097872941071913157577551582444339117320174492433731422764077826121158883426871833393633336019195438892861009752486891175550435424086832155503489377301169292779754906938905142360812211039380431583055502665742715973909276779843529333595997762463901193754755423803546503939599965710160153120538639608501186644901138273107529499498740859404613770137471859110831021175532660204627733175237933761581570992363679413053752921152759773513553218740026951137042284650043331833472455960551188594660558337405953466572075415302910665894422980536015576723190807022782952520678699871186747962537971762523015031960645680845087456166379651966488036472270408861279767317326472027872852313694030252711107421861608145034418974771220323548677641910672992890970374359016536473759576835126971488716046656442449492788157837433016505645001443670487999333684799594331863556351403927977671431577374650516611840561021198349499005329580588233973677486587960769977474408607616441899645533050946448526511866966016364203448761008204581349994092904718689824387556083663329660658123513498468322020167508199280665602937767162103409680257093630387845274068970841617446014022397201567265315175529565006576547849256274970979537042705422698621947678860291373401766747660653953894848671468528161386191051533403428536777716597264709511309786697197933363604045773499868838043096092778354447851187457761349553998074296624983836325532417184314199373163704443658656711476217872134154157568587004082173776468316113477147869593438692723714858096998677428567154835237061425047527378511261066230155065557672456375744789133481126989045000710776440188925181556148406070160388705635343179351805963289117152492176660725347704006990007978060777719793306083239744763458101696233250715031868962070486579075602810833330398671942071418023295115581625871437682776400223931611841583512596753763973009529681775439866018568194605022291564770801427390315318443965185619917374399135975017161065078363798017560778554557533331704091053096218999212734422593385075823836053216550693204783671156738428859282921944979792213365798269632419185460017329928501964726824752300966109571790577418446059170983547051516247465676389017017017835279242502380807397698052834697753883653210964374442466703466450330453653341856845106560908449082682455077471303931500878248858676346347053532369420180935873300383548268725603317721977215408938427561772108948683961525682669682931720031165738753674335279646251477361303755498594782648137929240929243662835385803425524080230403542457676951313027574907722626777863560520792158456797770418436255562553772245408333518333098673868791464605123342759349975866665740640850680106746623454724382884340172313895984522417569654319471602841273330459711800956394214503277990748762543052539034885566713628627418570269247291174799792372523668055009962780080091995284673678923152957753547138649374340439128884264400217574900402410629866826627542905060250299056128802697004843538685600006391959267920005412781380910331986401619213242176295779512097773814734123326193946411155610229544143257996925367945952301257064181074072016514454205948360761785355699695750371926190908110226325702263649240457762862364201429579002793679084701993076633922829171426700914882140191887753137073522808764384911976721795589250568525874642431663206014660185201967525869470786132089214244949407225708252766233038619090145128302814822568834341049749483352319197818576379431752313478200858432216312122334473052132337107942226972113826587389955279253653343340368821041452370918315226559064896333576154765555970719449026026068958899680917160856733767741057091318702088881537169218009883655454279010068642223565847057360717742355668937280334964566872528500452011020455028030954347340363852930609616089897028871278185482179314966306011242024607363993745303013688163921096293467431380270076370039422869942286423465929840842267136923716160018054331894854851538760563443252445095800966417593761910006009953346051633610466570258413535411390469784557678054535392839097142696193005643352085351593692569444397253373792430468561296985810654039931270410682054458471241480125557472193413479339307224431813597239206009705641956257337963747884372974339429939985779274445638194523047715362992226921896507523551946402875813048031498472068310417738650081397583803724599700115332958634167113596385870180055353063100127898967432021247042456196939999998873506841287192306729900973817344315723369400327295355722123662862707646482942482806325692821364504169808890974869006791571935440537688576213061512306649238397408408006591635090276060308837966071987284465758887171273981540274015548566903257816889156028414509014042786224841512297435239448698582688693033218798816532798867398363319632689552292335145526171763316920377478288486877344988109084152950687286449391947712431212742517076620295450783623640150550631088968012408815429567893346652279779147145950741158434926263034222150679894004352000358195460974380492340432268526171880150823094687084116084439939935589146893744589408024318704299312445416901448807806905834414867748883601469367418630109668944960399980658272657436454679478650443467793005693999265916995208289065813731725573617738205338749472187670420945676332004456577089673063007530371985816377686441673688480621111672470113011101741331332032624732026504861835206833431795769761553205771341055586581789851382036869463376461705657567822951062176310804601835301181923206784070214186724802595524236877346117970578766989319512211826381141939921830691394162799755680705337734502419910148957484164125368534376338144771372465078753287788456796213102852563520527161653420127272188385807530662890458383055140326223757801205895614217968483984131975148888811576778104853552555989044144792803123980505761767079356522974893802766884745961252014870635524706441782149293546611830132687842516406098909845930897510668856561150118040661187453467024478894003796967852367614875926133961567142565315312741310393351945553343596569450654441853462382001549875346878184344329513035833592800121876754275198812467875337761664948335794213876758738847246773036219541424707841474465582970922591072241117242168144296345687987973919208898499854242124840678233933916786047023578268495765206569401648975651694565363886649351343418614463355679415091326300983242998912538095820650859266951115898210432317145881371099557770563902009568231546339597504558952170550565581258273178652737374897750186618866370677293738404490969852228988369939241070329488342807467802143850922496898986187717852218298758483948589617916389342721565279526498697456821173391325612037488404898100560506534146816034889434918583693994405589118878301775206949580779949312756619151157736333555772195912203415891769578849654963376005780225430985538337977560417787050266770834345062512611822478652406945260322666149843789251168220067219677007420058320033266352867414864346344166401128518207307623660301055181790660816793637096739033673721577552351318600367510441230630878501185914434546070088099661146629121854087534420391936371795872322041768610049137465666383199563849377096807697929752474877483061859412340296749415259135208837867595770191103266520176145152733383109979908574783046696755648581629193588483465998337590475801089024609443826908860397889660194656510111294992680419442029082286643653542094116622783068832929237853884080002440298421791355182092737086088470839043253963216982599185083937638292100268297338846022820882937083761288852825973457902433238170120631234172060527203976474541402457960608122408634270395826510072589484208540529713533492775256792303903779379651951875581082033376705480182311439079969086515811151041551569784619598562341083962993368779154723759638389015268512267736982493407606597628695414196995458760255012179154481289647628826811362697098346643026899753207694333848106681942201822963165341197193581690596854549996392258746198946126406687372766605796781512206390354440231865181296327541488134445266415049425241585638965714445460072778029755133813322419653190718921308149523063405602640524146471515732163199707012614283776225273719092940824292776774119584684715042757200255245691683141841282786600234924905946403238150117408844440576167592364462404138667235599053874070928017520314189919047442464785970852414297040814061494437646502482410102872822339209884648816326436983104348895579844767887659919572354913560286266557778162616449234563926230684819951200303923690916365183252232723987348135472878890978286266372297485498625195007443838625015463696558132256120700808402820000448060433253847954205198760685664277046357868136176124764763725256585706894337707125870599818851829010701118184950475589738664704569889572867141382575668668486407930536569853825699235880305578265452280128510677889123414646673071624431083218150498102326347904243499349471834467911022084612752511784195409354112680204801616928791055094907233543762703693350309275841030640624993756652819268515861294743200054511698895799136382015846324410379365392165107651666626999463595630292671710515804136542190001337206279867604935715639876741485291920412758487677298163151820412747882241143806185785580154367536202586083006049083438437936884158507163968231199727089552471703081703715043834580642617916708821933000254381977074285226871809512349334159391837079050805572012052518122357684635090145318179958343452263178160591280128330698638112973107073639348600514405310032302955272851807637594398816275397784920999197371193815210373649471132999595033492249582593269521987282643873613909054089406760968393350752395901254751116271246891211227957984345864347303771316824621610339804985892924214536190717379735955482911940439542876518723432380528790164644084980625593145752950549384438716225293214656088785356700680209214475109601651955021048223570942548780448321974631761375477322409899916047931505237772239109684825073452615343899966137781672743807106203915153549233593571131411526295630510078891540443427078401140989951433558322164294724873599300569499364065385208847489463565275020498215672652176184596012666278198471178021708951202311446432659747118488096015760246689891918839550597762262804937851752274015244292925725900001318590109487704191676669879619190755834054497760756371166578250190290497215279069877022608662855231933486708528862933183382231206397368412590346037045812890392124004655642392297512237252794599772752470507992728514436257362208219928022495478725556848537358997345990566323616117697988168228951521474945188804472096576456073406982360524930375781173622360548760266793550634782912838289656947364089736410145068471954562416383342932002792105318511387397586186134974010485483721136117701539197640160327796667197225683275023668510946827060699992747123798795064845806744582112821009060649953950426207273602389313561077477111267478819047739733627121840572932298042263928989871033222203652276494155477074405372892315884387059143502414961265546777395549585233855123054776077189113204469574960561713566070549262258044378524950874092206994140264425106356037904980099245090089995767600550004575935697813080434023910009078018275060763890490759428652214208588275430507671848966260239711424199825875064246374488465219723548061445477649419317638253196041579141956898997674423677150944812539562815401743966628711860268767146096346572276559219218882165970039941312922427126717354203770802745274169094639524339695881634751847106167193842120445800579606657905970905818495324732241266950824353694820480377457553825149125824549003346236137103147461783989795805874764840052724796076261852390639133976429350472088903252406415509744438513341882333234717836227107780154133937226561595053585092407083262277236572997925825843810694778827303949602676899982997391205077998716508735424163588850719753787220441383665617826126652804425123560382789948896167194264311835249951432113305256600264528668886199456980779296643571262770481204494946269159730278344447265788400352480848748768875113529922390468393835142710568921931797338196890114522665358058225139137356451164952033299938761299208436033108599499289502426725005704878935513295438802162194503319918740948422228564393771726098229408224471639558053982046031266200111720714683499484409652584846737881450359082877121263916747158886978024236400892981323645800520472199652895761158645266944208530493736510332524015737242900404733263751512735589813278747168634869489960868363979776226659759818930204684344360616937442069127732143391455541172422025786750786604443604450339288442735176400353231673907700258775335988972162486147118292522793933602716068866655449485242478040068049798363073917161134881907926835179587575493657045564159844357351594155927901683785251560487019350317660616853813705321435754979278192143646409718882988474342078293792677376089956113625034266937128800121948506040611637269375057204619675146152254425291356623507108717285922127139388872880293985058002084043779893962708789955315563589889780507087250811602282613409185062021767480151604040680730735384099969031379968079633115929159909728077540043186368326574962793764045684832588387202142461345164090064797460685139563706708673233550406324152484323114159730259215797203626876794502614374371538064981523638905640001904146139947348262629980322608177069282184708032451933791324082429803118958335925269952713740685411079294206839916859972975226295173026166322169111203723827641239787682083496343438807719957349742425023675312719022011420815511934809078753722491794800328727304596171564925855413699515364097535228152371683746265568734719303101500665840660893942197357865463989054966849713516636433760224362575183998149405428676948638489862524962337263488685221600680420283077945745320480302378459700592289031091001210077443586733865555987111198412028750539787494224454585387608700295955297867710646654333908284894796066823829234695060035147963710119014910820251767772562906544373420637878014319516987886273718215826157290575189338640975737700524600833417578938378561903298282459598330705113989436452528440741439307776878368507542040668286728002761489671448679608183029631874006808291166192565897147205348403655184894269434404081472972280818906982088565042297967859483803772720765078942377187395306902123897452250900917652338807610530802901983515913813668676041040717917839292172543766556107152059173724520993012168078196825190122534385979753667740137642779450555962634680586441560314856316753263275061031251693120554891379514250553177875876131370717277216952077903127138387193766847904874620284563522445156849304533708495732079594351257622283599620203644833616570792697296237966031385857809046045229070443848192812114270158690209953537321848928343132042725351225746491753543584008319503190186909738895761687864992933474914966084337100893963511283859764415433052095712192170533689719631317361508786228000713787945549431291587055168731015140556039732717175971951506587288237566066067151626734100630986135011848648467401548607460253797169187388099091088960587455921396793173213305751521928354138765857598764928573559353987147795247060283372932508944646239352084477185950448442404278610221982085134952946752046571212899262103591443016572064283192969666665899032990315422770986674609633627663658234667344069117888457787660653102631565280548732971321958068707973074413660455373530953537950439814577237897815495553123612060060653316696263666592300694172374112324748728263137365111965527095590990574391690189977661884633524612261630893559577330253255018949063132358636445757908876195996419264908687062173767613060931256239394928468481850695394855284382847129862082603898178799981130598979508945527742300801506680650315340533577641193870624452709287405223105621716512313790934941394706943332297205798172316252356960702875565009686961611659581903525689705670887619985819713524901653738822789579633783913601918988432207474887249859196123922366837217326948066242287304184528432905810681261977417086639855156823049448354267281314151732123605766009438413972095514921648383654795042691223173568723451903430699134410842594994693146262399493551061217421863779458660468237777103305960918684137150410445434638447901803061766632212086164415991329348973800094790828430711258202795927469444480595300875727294497489339761138498772664932695826804896592983598956855567279023492720132471754874981965857235010444482153905573254090265418463236781047016187421717475420169906648672655787783629869214287896231246309016635974682489706137146533682658916192213387140508664897348629924265763856349189329804642202996489636833531486773367451513099907017702625060129136020276465988177630729635050549533343202791670021260296834114421600141064984223082545615933584695310891598163214300726640851604801066671398277285834924165146009143918000265182127215510960104820447412229867659283466394714942083811006737546540289712705185543700643164205700453077799471296771104038831208028156892503963163394418001811886067308618966457446886231456230877235066314616847943432932567680535886080572807267536716382915248435180984307136272655185949963131328165035080835006676330592311750378775026448789539124554971139068471516111603319500256697557954295666561080489392863877995534931089540316616129360196053332090041586058532521638219932354094950975325545553832002628262326367048544624511272653559720611199033344043401274823721138539693232993131696262724140646648666039178869842826284553991240722904714054712359447642574698806491819890195685051631193494476664460288723378232431281191825474024723502987653950403230481126642203019096856769877835797826643232290554308870318158934695537470922616787613948331106525954629277202879653612969715650117305259536568555108723244858490705408674991241896919452467319636644988880854321167553722098743887936846357527122622700090205605608282905037010031530903171450812974516079113864504018163445055486378957773746005990135519143270013278140135556778701223223418102773401837923775625550181785783845089234438008734287795706225909217729362281503252211222075356242604190784722846883636133631514245412158608081154841846977584343991623288812188831833033070682126183179614574913838199147040519431719183142374585804126810374566160634720064213068798979399739116373441769147600815296026714062762367804449607360734928166735189917382171239316217203351024731017296979504278359592124284919230636439261620975485175560001498857632949467350160630322680074451046074515384044546929598263478971738920226926620518786052610999002602003368371689727510975400313454898747145197430502991325942128065465139531196103646426571485435118001983604615230289922980149256584010224582494526064391086235724712357571250836612047958692071531198612703740420694938148049230626465707565789663990653022500261225559027016808119585500959869454122616919323553317475652679404974837206359988145939663530341997844218691930225878604989340022916581959724623809589241377928558058015491558511226050755601740293994468282763527560541424903413738234750999665231691455301495494585308921048401583519259079514271287515919136060985659120506611623981711052938441706683562499073564888519045051772781189539061010499437334630305719122958930722367016680502709818130799318692157330851034272106536458852915280710995432825490794492006471192353857224905906876610643361994867419579434599793980010846528297981488963164512535415353250231047681471302750636171157393472616559792478872938932882256967076779803695801420361084007477718568979782747427578043111380220158731294567927056801955681939371953931929157617523225507961051578262608563099399941964713478643145567327983901598561670160181069251326385530079956466786850502916730660422634102557715480458841041574630118760543572018391408311082492252371782757284572255996681381695069599031733238447847673596575699091958881252386397819121267862829803817938518463172859433278067862848837641513789049234204044387787125320301014684078607991362585211309669433901314133795930805319975555956427632699295629326748205694168814387617160453510133033358547398921399844158576615773021122966122035819186517436966440166983699351957524107146103407304347854074767188131660960838814897064344638793715622945402169594072090311191717208723641949168303672631129508698230082656918032987804695535691896890627123159720545867078707605261580438259276988218759793872321250017747619238015379399654794555984173377518881974800830792207133033587574291296419670418442308244056804677631559865696326390200419072220965455100659354251179095545385331163141675752733307409389731938736719922237824435106076827267160531525126946511616951945746282495901803907081946452369627193909150544233994410697672216924000202201714404950330518068848671199129110113190114244847116078085507119476415238453440306730691712044657140280377476485801594432487675967863566117455801872354352844388897415481682323652915388032011254501388078713394476243862197741477518640206535603259625548847800017116138540266552601546646235499851291124808169089316717093789387084242437529883751943972366528428164427026543409199721379903960859382710975149017223984192267331638635006117926404330124406749476673020128089024193975519807441086810872402971526059628228640468024984630272257327769797350613919326464339885590136897461394594653957546346920377108329292091568286490962656552268934748871498736576334212625489954956292368130706678531479478562958969359942401177458819704971048111274305223653185494960703515276850352258730264566643831389872326309010527953885671576497306256940884843918773529618261998130156869220652164805143409749663451547042956957239485365955734136765520154658904908455903310137671761930244654766831686502262932962520414177253276975133774420697737694209059274581671313578147466089735655079655404804789878117082035257618014567356680543388812819355007364496789808334289807919674248983105506859765457524025271184341265810341982012173832401932015428485072339302894221046186543152352458430322756839394842828498781816337643127838830020578443369584736395216617537050632395170959873683425376211729376177471017053430905465149747964096026533368948362622426196361570174626986636942593961639307336116686414183208158659238476611273689489264474665194107140397092892574719500905599919606083808645304636235698353618648145118689863416406855116429616152788355197846118430197009240799329724312733017860965059655241905256377118204136073906967999566973519496493772882018021948714997921312839596758423413666326700208618817927835282355386562094401082033681192855336860713501869016897869740068865436064123293595762417610152865960575482853209803685625549299636349726171065942733152839903643239258842831055854254277314188490184533750486041019519110243595330036662523494751391335415938725827173174891934249769448814072615397866631025501019484044301409074306984717324397561433070532185015058515343560281243156258930980004079892969831804584010968247421347962774224473137840234008250667177300208005582088564956414827738714781329289451437072517255335102136061737507461419473289794149271976908180287929214824391362179731898460938298159967307829412533962854030653602195242959921685670124566168449169783862580821738731187785757614138011506107185653856868493549665605068134700826358344299318960793236654545815033717963443058690540058007585897190935947290424136577690423485348028186246689862751086950093670801456783899961416293445982150323676972332676297460903950805489005007755650573695359883513688201655320043870251725046551111203264787259745437201605830796305744062857401915183855604896144125133195387442402677304378938981922584570779499960471786431287397198422545669627953300369102507513780490825690615833708590762091812299858857211553871898062565739308172722027405360080063814977244873335768417244361102217390203395481795440675375514242108124292724470278301726750022654952693188587806934064850547170050410537711060023976662468630869727566595426163060497512824291068196936199423984482726243566149634082061853589336046698056113498547774586353756716688689669680437629583339811374190699594897443677053662634427870304567217149673722172695072782893394269391140534628066110687169901588982966917679938249323792710963154008695206692705475076036244091305955468212608620935285702643733629875887486945586949677359477593606040686163657463249012239450967012376494468939430939417923114227596355098545551242795195528328885886406560512917636561190446212003572413002481788105563640433743761541074853588045576080958206254999346076549644969242843749153284494239982468203391140573927845639012857392596850436927548640903824040658551632085440476270717497496392329769240918354868497549747764948458043419470250398499940699174519114744262313828951037222347036834503324651277541993840376257983846046105738672134380114579173082811773655902689322017890277778884692912298469931127519210985600182043602543266146354094487744470556432060399441191302194429333976025524375960817314057133687111403715481812116031423912527093487619290873055079860353767111112003858109420141242233406865677994281126635937710521015845979930650637705860505616869087278548520720046506035861991199042203528189896444670838576121688774756205937437141740133837781178408879767168718970998013808640567371616760565277217927688501355151563822860193395861767713695452321451608241177756554388795591874898821647749467264234697079068631329909766467560856642664159486449283642219186430046315458702078430369345153718419070605886085346187690617948674901642262630019134233503018033927810523686979234727414923871815872354475180574338159071962138546340044437136455086761485214374404482986909954289340292050012463420429583762528714444919051972519415193216996619708827857142971207133282232848516165022709363178086783135097324598045032059303871524876998271215153761408043625147333754800523990707038845224351910405551394890402194073584503045229349083912203545555439647902160044924933696672414806643859349795207968426356298237430719286728798980827198921778993961681353424431925661569758320275697883805572671870824924861379398774914923795440206304091869701153191507719273198002369506808833883756359262847061908480279822798833261245730621457242555966388185508302032330652783423275056667681413070448375874117495941895210058468696735345125569787673016049273641809539819681742503907125253424943973072234035305966205038848520603457458138984063115628966683717661249179123847741742316984772066360424385461392475238744571801319490536670268460235879994066779669291674414653403485823241635256872067460046412652438770175859372016943453933675501397489359782039459520227822356013278718405087786102765719492368400029022691931829370649592483295778946301758707315260998426513330091449269497516333718411469813398807738566639041903213573236197547510770167823374276262776415139521530081553152155193051719838256616328746466610710715042723666773127394191566749622774670516306065258394668638414864842194834906847517735092400171161588514851231900715368399840078788159558225435862687400190256094748063677309453664683600308569731543420330917785080134973488741208070721458741271028918953541908083139091340886506115441979845037722286610909474618214871521244914272569785866397607321526242140945981880727604238039697873702578197154877988377616117521749018165570358402974331374708665398860137872198297268884440607505414729838563527758597943619781809743686998978784039745240634039130308105836574816751806785213683662357347330560943157128427812376637770634105994161183472527267444884595085868054412757638617593522117915380647237226526350484360262228634184081072903086067034307110411870954168513971855114489714296989567174280498060634169432809697471161737160962531236824374800457304511933526320547705242457769490947060937946566190995816986633679206419084518104318683371349719073845823147974257168179289300738203990675511699761692548982506999794407644354785900602747086942698697168125779554937595152040572223927329817620636758513152037185046553589044634019490097943612450470741774782506136547071251995831689751940914106552846812336087411225384237556720435632741254483697486256802556699541499241689221930220972371154194123673537205212502295422039798034457902559999220189770831182718792949285343474020287227894375999759665880082915847140073937664659699584964281977025259328674511741500364401232960457387800986854857075944228069933755235311639543927844699109120130116702561203870257642201372790133410612546968698583206252751177184844908817350154934503731963648081866831398490244246169728201341116766353133194805329725678896651134698427365578718274253723251282276237640764527821012845898178852840518328466051024744439321128367371196788407440357798997312456387920268846088200701658989628409789873442093661487598832401800419952571691636693226931218129476257923291875285215715007045762292797136086898038666405888308815259097392273092032926845734748023993433595042982656711618448671563984261403308851454666948192227728195049150431468210722457129704020400776229304171514136009677290480247678724851107013002006185193079163195534497042479492785405664265680821152301613592203667384418626459210219840475955223905356759198057388181998478207464432702838722901015581972519023171352278906594115404119349870806334649202586160276688041091025673405123859153629878729765646643990292567215620122438496283656116235866679486128813030520042234000215476478555755336849189681693259033807280085677806668995637618683850120698327405256809538160936154337623599875340511615798414237776559630850298804054456566442261354418697127963665006918894465606991254262475609456181484153341777001758880366576886458392399224677296617038337647926470081807664165994976440242747437063911738444507700829590305938873790159714624788100073991297353546348254563510351902455770613206395001585029201573946466589147393624810513539545822312411820705779355524766194702189253716512297156659322793958510708689776739843073623899858854702100861825619355701242742401001834212844539622088675503537659997109569539839450262933578350319231498497327252396939799948983638277018700238909935893288675394664051304588378822719788158565713278944484440201703117833839358573488595624842152157867341704778771181721188578324634474081964265283450394887266312857351231855799725186219239913082158134790302125243044297695876380960281985994136342059899287225537050697251404531020129387128333252495912301141590143109929525217614979620727136314273415444174224734461985846484424682796251003834792707450074415938005910208968133269092900799194755149120152254490205617500768315826336208038979748927379463330067006410645637356487934280805179312299337743655415171370676565859179207104844487214076096444241448746847738532140795897091816877987448107352672475415141736224311024675774898555409158225203411729498540414659324051799640579615633983890899192087587209093799356457011350382973377869947396206107088373695720500803323152873928725709142763324137556632433920886929208004770170490095908643949752042861598079667951376734300932697756667943741595293665381832189919010638531251834316699672243638774747484072077378653936305900356528753857344134569220696329820073049657809870606864593066224639185720484603943920486303911961398078660717006988535902731507177613756515052321033500748836766101237979782028638414010379115622343202703353515424869440988359719700781583746579587601590918863231536625673679787175648211227794605062872478761087696552309697614123087882041959410089198778534806225557653157584307726737537265248082520613485614498866749213191577744812868164145833457483529429409703192056997763246983987585780969323992288339294436001977869703349421937068519806687497591676889839072628262954351005396415382889445509938364362061377970874864229706293717843264611535773144814798191676058295396716468400706940889322017536015141259189963816982081951212624498733134563281842402374023711483894102226357950919191422861628032315929223421021939874817069096464288620538956749760401317008870242945352441700983661424148202998683565018867324534656098607272066151122197428834123834687800196092808867940877171761424971784407900509714036336911443597038249572512241668396334406162909786857127393042183792523567821717677348328895377566452800867580320630563896461171854776041802942050788037896174129265249986855636884109936042585380338252596600599830726306840452545665690978985705991233362629954208579915081900823625493137658855611577066808742586000038152168551814219827961314249834930645193925792310697105167262855072914795244285146425378672016828921713037939056139830199627016520116170830573375084086607482211290904110734132260450208764763428992645220164106781352789059441559236961359089742760927250305147812621487892506276159089761035954595777918277631772628148426973007142880983285043336462637255280865976914494509681933163744850820932609550332055092614884593061123635974170184066839062777504176335589070214777823127323334741961862745045264247941693278467382270524609888060322325904944911606822378790439855633092944085625113694268773749840803974918197129554953940615618791809641158807618255103073005751891028399660226510779767639424274921342369407737840321520339987125045537757186765159155386456511305913063474862253226083605223505279479000799654442600106215458541502180235887453242795700484415601827306567912542029709641019248998425829134923072740349479650104988771106981344150482220887342630435932750897134063283550559845646646353288809566931543805273120437636017224598900049402984897350496963863782747590182882759178845304680850531246575347952942937679783924484971543916350044488380782944734398099326364596688970840351691844738197913838278320369837451062175211098882734213380216542748622508746277702134780362549160662855782004099175201806837685054577706453495033289425702357444277920770681716446328792732141037929270703106479691045138785281118776040350525086394014310360535748398414125666148641140824718620440390170432204841620967506535206974321225962504597339424234434567639579022384616495780007453445182518268583618466592484881990448072090959402192652878054754590355835107515552898840231726633045915157506017409534240651435540931625028576780739049526552073892377044782333778197717181976020641656343524418924654124630659772629844054514589011289750126600699501777921604146717483516482148358622665316374422550656313235630146801825437222837038228396366024289125330874413266511332471350231247147978892455315277336160237337065526614856499322356641146846399004921914179412896205948395054394746204675866605634199878037399899450072291445218849714470408869242461628116806732163087555706751786849158826716215512666756303128810486698894953672974541068318149771695268911562479176204192952618651817945207789088657215348807663923646884671415420731350499758542022752720008980889436485232241402551193879521505798608250007468873555858514677963307466348156598584980705354702675102108500101028117787945583168744375526473722731466689787473092531906880929442648083007660965821235060703597523210501357645418052718120124815572520025868710870714384308636436066418681846018140447086816953904634458809285928071708905975515496446099638587696964264070362164035371200032850785061486014100527932703256630561577794311423021187495821621508601382949845106496889145316577425448730378604310376104710958952112216852962767010759418419963517938766703861132272307362667378316237311882340067630042692576819507090452669205359144648488628675952263279966341882621953510599056262672204076903823356776442034993725103777084552841329523333603683545675068103060223983434998971734759862276283734049987283620533822819459248868713338293863026204669172965010551472278280032780024881083153039225541847256468151609713051100821889222274923957504045138703287557629241293668785143379937389833838085443452699706767601179800822570635224847772203922036041620234844052218379606420129894612928340580317117424277573044361704229235613213487829966580234682300719522834772684264005821057573157427361212944759888323508003841640695924466305079216723807093618075681517771652259486882964807115408172274056228184924936996690964799441047176270393352084672801189643141760138400482076100191910261576963905353096210259225181636765137145041359819329093397287271299385317518028815676556607393917884887721531819183272815830145837899903021565731290370330894507741755292462368358903048385667990444224396490830356626768204402654068224528680593834916255418017426019904387679456105842253627514616783247036271782854865060505317538012658932919339326877112503383982438659319238837115111839590810480943569107958391852437843405635829397880730103850282882723563363582258341717923684875946302220348539478720956040388192000579809928385761919473394513655834088414624334002991898530419472776493692391054294033277079666424405556122508609029344680619063967145052723082795392919409568013682570265232374465311132953505039993208601386316082626399890098206514603566619634355424006345535918512185867657310772435326747993246182799838928589837537499774502933112278366302946114279266660907066112097158893032985650460743587885014640612802258625819625923234292084161068717566252200388005614315934367716907423742735428682796203418047601728190513016697036785242529371268048739366167340502471041252121888661922175733573679201647179152389629352901232510507829217060362802797531737349614414933608491401595194805431107006648683522577900316902404306437455465928691041205471400126798868303450370829895564963644855165728759047616852431815711036170147283533376401992397746518956252875811881156279865582943242825915428641939680311958529350368041712368579930256075307035660389097829992587373681542915041148060509627475593658022947847737553054810585525578774436849790938278433800765087193490152456154316863363183653646943700397217426269708656057230542059087219275297958624773395400755996674784195533523444162752012068869802030626357367021032567990686953364573624246310916540589379434312589322136931725247640557609246752909920262056387841761847334143395829113085755280803433065246081717448067566141233314252924216803535730743645786161997420812787494929044273960764025582330148109090560460912965729358608178830749141598686399588198057613955254117352053247212325170367942904000099503477186253758144237640653164780444862402753455823792492454483805010114049103422204114521234130455530765787450171288923814348211406066975798970372113755721506582725854264396599838072840382219214810113823219996860435420214138695857785780907186228134237244965790659299321636237927202098008674431921515821870619519432097029056821774789899309115308071334918236577959838498431821219638089377194338348711304160432306993383542723557207775620217685551820441487366818171317970763827192922274783866546662187993867083921473129364780660016040796886012709327702721771124033373857908525487081173841480822838172797936710478744308489632780927113055999940838058613689691755506501353051721209721668128620328861671249002544138638875858513755766015633754558246034859656857201960642220393649437468401111621806159276824688817788910537101975592906284305126143701114761245047733563719944498966615849563963019191458388723196775561944654707276666369901386041087339440584382758757013454887453020007001518390968623779776018400458742737399391818702709564002168609718212270120234288513053828566876957417246648687417289481533940504876257172798981321185790117187491279527296569624918730870477804419617155987898541479707368121825566457049707721730988427465258990060588677240093751654562282184450719708097974710768257535338348844343493106679021950108666827895514127451973208327694639335514806110888082388158998025274115146989093523705602669138522849495307062136809561882661777725709055496972269296958756364249854185686731856510342906063667597886225851518501919795240002885475310074501613763713833967250451429890044025276596552425457778840117816281136340609583627393583429779365496217856053950960720694995226160889230969381142185186018079502545846635020758869360834099324731545301596917137187805381067386416772810013146131717544872940506569445446497435152904829381528300660297773689015905220070454522666757547814395633065485764329613308521488905359610578650453908197300762431151820005072824679583489777237397782233138283708698562349909604180391734773150835332389517619793716337069265324075533532880051254577230303196313528616228205762680301314104799475740009309040295222607726406085824052060739228120944745994747088985674703881825480649371183989799746390160836077872053003402205812445265706889542514039637875954445623144251880704734695360331658792358449652753953411459518033481848728873552797839768600583241729322106319519737917349823961157652914335135358890256533258257840180241614751629034660566536353787052519299325449471088279811768950972322902590790190554875463423403840943754943624077494170083573116413252327069169339865019398068085765698079017285551505732867864645560919967548613085228392857044579152149320763438258239432450397421995795290404395128503834588519932107198698191735072934595569902335614697030068217294107987140082704157013654151676489363103985480259769628311919506320621511923734014505308922102680113064451487791684033098430705373012874790930396315105799776015688004474221195288763363458086888007409690888913573908618437391694358021311665663212562594538541652809561535670235245701265688638906009481848698652926312629543764911576492095317178754883464996580745082962629359269590401759625347705647456553109674232858370450518772786220290755444798475829080912880752558280700348590251332600228335717246053424541881144340496757242905579583581728974830627185550706386956574738400993227963204368255105816192479945212974640760258574031548068243202848046991940977361372162236927933319451573021476799400671870160226397632485760366036321479942491154317997398411790597996368693713420802622329220707487914441659805702854577401729050337102205179311012421753734179375636711189319594333864473620919031601652818260886496709282619755534614196008265395437910804457229194247837173567951412009757959599737522747696532470343868462902457801357366729116948878065401867582763335937866009968082144790124702261028247452743211630941198327217367351457830417068574004457541492978012724457939708874799283187367280186104956744749059631704823179701239199610864818649770761874356984355764364166325229323232815106211400231984796675182316218336811523422294786697164646355817196550463000191196849520187846405249525613744268764738940400202045440157366107645486304477024323211133282649586829278790023031364626573011387075908037887771361840421498487532723434589617664128513393654555729855172907768215559987765354251229481532408169079488285208451763890182954859762639888785064111294669379296712004375606151564184076890029580638030108256826301014595322178501593424843243971666720900680204374696655236522335170371180025998685737829445170656999688527481395295779870915612238116063071635460763120710962488541601444897134805980935446482540287138641807656484189853174673222125332775754225446234790274609257356900147019871480916714906207953595298027057693316177851948749697127362326372009441838993143749611386035147204150058245298296389135028778977948058437789537594305191671904743318570976119930316581380506253271214966963846004520359800742640990210345895120245357445147649191492545984430195958383382131376069969385001086884017416091908255764837135262758934777898096269475141722190786671453125472528970464456424349412008881910350668229848469191199044946573786995566984197461402378273680175037553333386010864222428781243571706481305793069902567330835805505659508144710172811871804549290034382268345367763215462522552224920236175777706065336538667514342750122572631775580317043320531391378526904462843986979988388774477260515934208944899746209609703088813571310972685509678692020570697726004248007015786524595182139184405329697855789052010462678848862759676058446407019850809322748790909679754037653748208737282776481384063931022448790729218232281687923904908814583539385705840659915586144518283796300145991766345057168334758510082807643597487762830616525359486499633677599554346113954845484391795263564101401008938505147832281986144172297669921717577676497142415879255504644900114047947437639528070867352556469275741648943589174861311805682660480477775196323488312910079312268410194842865757197747631802884425846233060841640745538825625366593216664861060132053214082837356061370523751080589716812181183699511418266364878600949703190315005371786843022816127006985895101457066552630805398335440173360756260588396160720773623323928358022309415879142395818253930878755859574391924799787860621286629014085184333214568926327345569583324411233325967942602633948714241781657193858608208769640926023743226414450242121815737880019569122609124564099781558693855418589730149181361935892195921762125310353112760342849323004675059328230066470646527812337542795316050204989833062820658605474871751705116559951927633425181186986254332708401145546110049366146515589969693835414113433398795854507324110664404038001019527731154956481552557366241302082123570458819709251942748330623159071661336298661483132304275259053115225604005133857316697418829014138694715579737580208153405488896347971029393763399716478127334216016500313016688967099154636378939485319626137404206837402546032728037949778532698915677750638489980089963629274293245139216894566555891242371356463330938031604565269395550099923094912421181504030662564676344921917389065622921914190401537220565480704627466249327710201890304132863197258226818655824233833172899094297111314712914157100417914741377618036345969646899323437929602151607353932013641571944204686131099847208228769081958902759753527931717077943329567557562823788962843391227164681463239232336917346745941146295549699309740260409800064803052553162729614237232567724171429295375645307733894032491181600044580121372620538672681552312878886864635491323788600515408560523910603203332486282089135649906262693928636050582960503545372898544593734505702999000630964586461879720719226597133086080630735624076169058880399182334010414777555536482586788292181132418422390819445377695099371839927513564498304078222522875527742970928702714573133912516976866442082795685707220809924841584153622132778706229384731476214295932344853338168361835157993180221424629106491831377451819798730063031885742009745584239229403219786406982700185396278939456290995150873943736658680207171868114298799885103133232545181140318206690641733267585213209114270075846654546342107695813644510329744087092886956740045370809779726512567911050242019718634354931445629977306959051084662462593731571261504136066141346483770077111323317710374174785255132400386546203602272607041427994026087058045629495064502563472754477798795873266196359889325074377926149762943545409928965884230436207937413116784733529065835006620578755499894150687821016760861452655788825222572594397954164013492968234977707297880847801689478259592452541953295806935783118458545233523939029137415465257396532400262762795415697294714329788113520924782386885335764329880579149480580838056838643792243635165673320720336476457685714516284473586675996092894992037280146528174234076290264973751946581314145705162987986808609676793581933861446238004010554230021725664258622072576998520097538362902322151006823703916264017987391287352477524894873066935107661153578753911477221851110874998499438404329549965538042013215198153344646641252055760849050437262333247101665331998089320807696427853116507702130996471815497393865938604367532311005408538229631845950949350755104204204206636846188619876779662476333241416378837027092357746267275923475461797353539874552152179064338150858726073810613467031971914987341415338410095735583254518447565037413700022697046395156775759208581756271583326555347724570331232248530658892645301524462598057081064440180042909104711267693506624023627747381032151161734093903534930028449341566093878039328527728356992918943938943401786178673445980787851890880716745142331879570028305286692097634258913373166089322177936637462179571928744897746506042801801490719518000617701724400772681258748105722001733186479691066155009334109646574640232025525644340314570035190193498142689960243487615767831204617449819047448351852699656055443548565027076621147088395742341105508771126725011938730425065904332157865315711551897836043232171736867581574338390616319097837944403319945145617717162685668878525890021329923311219633153213052903822841918894711425566323724811921164940592355539782184796688831391159308565001966385624771820879594457241156710315076644403789628386639292222377004689453009242835775193701824244357363877299542588637547531639929885724330312948502181767325925256214968530738792937901157633314943377034818678822473387551205055215985291519103386330689969297124908912624621228265067355335458646757210784052701490000247830337730552472756233867375553960131708406984380611655289279642641620931459635037298232531808593718502725840748815767274140883232991217084353350044217958531410029395258466509404696564050850836100764956915370204019534273811812195905205208503186715796240284371863850147032890741927012078865463951066981080913358212393264901136222010575436387883173303450208179170897566018253602485994088570213920033590761652900970796314476610432254428884585599472847818808257384730505714803407135359926285761199477711686891197124977381907023721726966938630502630078932749455398962265086110254346510010588488604452176430698497606241900955356214208174023278375356874750553047281730814041738638032566877523994838383499726836012754173147689661731483278833205930868920543896067759523980348525677754042936297314187009440130772001154445854412564172351222526123233705634911960048476443161921771207422558879069404102132965481968091435643884582471893257671156092429738429259139526724945566379783635824600292805816451927094718487104781231251406466343874265377671747116469319166326146684854080194993730589582335851487724986438196309300561014945700297777922116849697403293285814795554932353480739224832260946055142238201087153735704141122418469104722282181465168169797184450497609237751061509832509741401447997932743506472309590351866256692661537806370287682558936092790208777203821644207041526471369919456527810061972669955543521649149072963109584354044762467334370602049365538144191567033754877331861821602085921339819317887752920878248488057524219214268577110285114230416294394936964324173557375934601234502409600568299390263573681607575001912535523234481195990441582196559778843777680888837454867304026722659070176162119880034561307299439318190779356195162973476629709091094622331126414236281621203001556229360033142629878627087492640738307627675253644562213756381473266788046426462491418902012183425998999629410357523709963820763251615260977229317567924568714501610471039299492699508864939449880158719255579227902717212289691130377715511486128510655093317825588934714252849188748153851661655822596281582601852549690706983394870998494047714358549544889242370439392166297694798528485755103156701762140908391686495463508177460281553123804659668937421452188257055750268992030790460188463345100193935772911654801393538699549662438122527287380015962712303825306581249760185705023196173613214681427942780416094534450850602994704258748896920710917509565250904981352843980150599523841353957978082882605284634446640330761617226208899537099600619341716072525370516636590029548099114143634700340972034234507623378928001160206378635714239203251167297074348292590810885042719951927868447394143788543186331834670284778674218653595660157794151649715110953144315528509659625194533607649907223227320805336224662131313661967777288262721163043687578021173522741769918915300819001222550023914157574360427450126450595104904897883364294432704179796826674154237616319584654152634765989084830960930531877015104967645627448033482836946900994472175777002776332588287770548015855587949028233692968381133437179832177933515037179712040766158009530716723888557403799991470926674719116574430599649603620088740313260505603610417443745720644351220560454949850163256636843364893696796356548077693489458175266657634581988495551754301226315373215961875426549621933659898280787055975431821535721633613808599887541512159181353058888168109392355207580224458621926234239913986690455509357406359120603102247968956574331488898549433822938821405660944298047585568014694847195040662927523665886853453908202040911993285477033095920417829803423465645197187848174146320637774665803889960468677547395568400438628360446242363226174803200981188042361416573206561672561623517639043698824972757352385467630675731609407057443430986696931458461440182012597338994951882797759877122850198559579225350004095116833116821140994474323665116139564450625450151296873895563717036425040346251044061026118356743436927714246281326369792905097754177495986057326609559087882800141737732819251553787826897482790686546336905339040943263863762815959790740090813408955477724112004480582694830854295413082536352921573891214376707254092468772652582804973890258138014078961606992950773973450201568670014021989993449643594637879494888596564305174652039154296406978308897755051377427140596884219994935529422454830816514346719379729620563780682832759279574690922641546475466851393912437651202854253184321075608069205679889735336417862032670637785498652447740128623846525108290211541786728666120840080890947845218987578161180371158785890128424518087855010312849706628556699290917838866807059039045544636722268316701010743516512054553594376659032660884879936381245751892055900747514602082894545288016915039946817592829587014574799730499527599276601499547237394649359041470219772001151500029120329776084298343505495806815461092565497966022854621097176078424865678439759491904758264892715410456851156685301136800728221050419845202076346446586219781395646413077645744372992536270300244162314041151745906530177604056025181346892093888154363083317550408216475967932794652286032974535863632777554483953019247802986729705851046331825615589301912318628892189130609448202664757827297001675867530050188788184197688542552009924439028925139013013442261462845467448251504797418024655722877881743263044350270146146099971455052626071256406878879797494251007169741272243673322118955764247640618002840529394104877039064527666883040171140319649975283259337173721655152171211987314933637883402280776386629560539986887012268849993344208618694280237353464286326064220469029746012783066918314307690476439178347248430467863006235715344911216610478988050994714795855519245836446205079916185513959463433456175948008178648781123899231051629790371432676357225122443775311586186978207773946451074416607265202529379574922359756306647439539765259440554083964498159181952467015834374813168074902675365479743305459841667789590883698243232108961723502476590367643275357740472069769522939607232983606132367163459496741895274762609219659102281237964484433582825988090236483898081889774784925069911488244765004834575495407099946287595469714724452354271649860940518313571493625231352189785928323225037161221528528417854045016924520351689811470003511675414192481870375950531031114162925613688953385825905918555768851447388094038192075032783105804013403033048533714439248184689156437158565339433771862248729012310174712457955364485207359776021503988923715084557426889939218935234182450505066062751105686676560698734853956610511450299827470245474115692215196030260311936869672694086772982484711106457235385748374530467186499736803369722074273136006821122664851732600859219571695777076587431487510303280357997994536786582424138174222245198133937554813622591915443211587786609039269422825927729099053877876085746706408920390542609994554166418298159360655268479866905011630323097852536516287270454618522558425485212938851392090900371820664116984238465065352394465024241887477350431105254291943562160039373150380970323270514109945866916025925046792587479625058926398645326184427660386022159366676927983362456638558370237001885239205175885974265119507308068835727477016117929507311073886150542286506689744214585188194633299454857876635450180885887114626143459091652168920530101172630894318900134715545505011787414419584399827648496429666539943451953421995137533318111841667225386080233784841395864594039399846414988113795962878323035607120136149576708817121364598217379708088913255083941223656164160800432119975498285418863753272993606847929792970699216102859125971167962649847177938085298744747084195091103800670211429282101416587059687771278951905610664448180341578123946494091837236521865096388494793727380472259641349702506532556257812083409022158485842519085314925220609957508235245576404079003702679667744802960348299581761641996850085884026050208225098852711445623133120317529996963791994770237017563784201225293799599162722960313099427315401878969182267488010875428057039208254368114413363364680622832695878735570452595632958500073829819036530279159457663034541197429655942023709256535023175231099166458293388215161714443849170788763168879492713900392756906694969219674149639820612518083859063017842887791014462728195968842134805202287161205698735141353498532965902104511826910413540075314336522869494533868011421459554053957033332024215149113802337791897919102107325434555509257357020017404670868003103417450010947131454069139283557035829735269406944986077396138217229188127574218725928110388120556708704772210379926816721451371133240278431849127860307972977395661569249992416707051420969621663742599428604130901767038295184895832040594731639094307074835266172532895847361030735014301150832746065641217229292286169738215736860926434224919501394217848744741775587389674298161712092463747564394320482839257248044053295486413797899200812389382501811475551654861751201334550097072852327442390947558038286419837175332006437466422503887185579468833316856154767698928068704184039171833308978848560816113197805028483094449606468819617204587478656233307498953782653955463680292498057672964596675682125803622457634097724441710260414937443295953716011811307036242612085338751073772504049188104229586298288126258144885051627737469748393630046171016745676149454926746446473126652994350014667690648835497330457506657558652590102397855331745652934573371869082720022259462316403926685782515270478303499969767552810489211969505634862887958587484293830924627099604352211327647727436805357897376692141801248458296486225799002040944331834359539652755794994652508737427009395965551328940663700973196615899486402128739489059043095374777572468423054089791275620500744345399711532275232218530183290856817185536371056875711213377654341026336760391283583140672815564008068372921185218617635024716677210671848533697520217960806287413734619956043033039644163684071688369955333943157030862612232986566514486243493792743720127256878526118068942877700326619260349547790951301879286069228685513999049968880429913795449884323349773789513069945048312739287729992362963478625241499139100983276619237291623358209530844474587665359367051663599820155621959670752077979434590236811770609271300953930181606289719968828490365028527895803345404225311867389328740226605389584357601419039058332423498529008178094255717357283117810547674954435945280115150818189201258963661400738948201848845533370396984067968063444362586535431458773739570363835043979755049906774537703170179422985087653188458701032605439810240723056632207122389102125885689098569603305882045801881021553459398465204924063568686305156708614886239820962831491317204328645265141200688249732680920121892660544563346375732474808393483503233873337259277895843689789356317010549163519817476947396869614771956990092113385987719156406372046629941187701051039065151147144497691170044659022102487217789102644057706295197769938536203373787412264121859795784284303754211439256336393728324114866593294833913316154401541628244686531902237591588136160873722332192432109332453396332251470579213619277248107220270434817538548607672832860474138784744650514724153909969996759993927156310894250531473710219007678358973759042048113665548892254095997319424981751183669566746049040135273802598410865228703776273908226141583211809508588672622755957815230581379755182459261238925767420895568175496685305157173610675260695720120431624304229619783506486476835908146414014582521403459230055611143109524261371280276321439274712305364477251872635526394188360752266999268319155538925729551900321866337917611920941801032755810682616918028334138991078347685560087104008068705297056230122843333318659245018109004068649518355839104155738053673273832447190523959562688103069969824496348052981742716055121203500417184915405832974422152770736530607641106553956184731882747831045573304956318631235089965742917274959434302085766685939174267871702449080642970121006603260323240143923383278513945271613530586716037012389564005950635292267712889927978015830339333066359446098124049351143518534821823860886487696716064627150598806578745581860574509745472265855405385714281197385631288655507033881465018742470078535591605975808961269065172012266081744480740827876937993434563018458473251480296466871651413855978756991272320990805347894370938317586597595116635438606028934670671981442630762520183988069564799806330483283920910809455203239195110540286091184692314219773194460716941925414498983748644564165174004181214369215036977177558677011638795614825118077000060889428406997983668832809351457582407397287896750104947003444429079174941845713285932141219151447611021442101051329198126757729876352075961101850286017996092682296697681422200858167950437072496168151790671459559511558770785546832120590621577379218607427965583996067310671244729123938688680964689316959871649321449966403512344685614391040477349073932754358394528822363633685190054166202811137742593529056646259066542583437889550941687871178596371367039677862896605961342078612481528620395744865467749668901013463317451823974028648943493886197394397201024745598471985061830380075056767660509892459732683178176490832912027511748640660505989922057721256488575047571531273456622187120351608075856174729156399191857414888503057534263060823138858165733252245412185162519152408407915266751766246788637365582802879122803079720903781299255570349774333095149413247239425850565361937495191028545181113092673190673132370083312072583036046791493894672160056714723997456670572392823218459086607147214660135100025714147373982345477144921494602507604254639147318238554726335126023780086300556527770785259210736727710474457186242060577595628956992772500360295749340439612675006834592060556832412752666843105861773754361757439468679961959991455111948929088557131248794813662360784592511571271580766399004274632770003085712917955226978501396022539667472519761284454302432721026212682170349825180263206908617640882575058904406386701485895875979082798696871129418854224429615952793391129263978140053532653393627612188320327778498146862003142286037952877933866783301220231326751506024480121066014684358816339835252545324594291214091318462860299586072208540343375228949212050017639054721787998925656277374335318655444031054842548415569869010851326075563059042583645430301965634194951713879349653062912127265243014861387387286829177840389992853950666820560909282783185136380403832209823908923577797912083410035446782539751345426093125530286399416720632905377954485320268014476641591349143306733552176818325997208879568618059941822427081465288454979979548793648912258707912946197089795099181829226951062159746957565957400039459854518922116737254902591882454952147109102800398806824387998906795427198536210246220741465574144336637538709335866785366848748551705764106520534891333232593815451318766781830729226350253705975539577438392182596973622572577818777530358961476766753180980094241991208334796947761943729809919463147686333973927644011854362817244907687253771887435355345222788171622102107902278946917777237544749198444294525975308613664027829701302818754078366582453968393811070782665589530365670141287210494985411831291075427278910230565126913550372686948202233502187118275771370587227502147863552278043121022392601744807554742770553181227261289874719503831158390657701197378325661290181776077386444290230739235437316050701930031813375882627671531722887386188143148452743587211661178505416700233552135140561150328834505226970337216291616128044005285363645652600572702802508356066917324489639035426371810325411380042930424456392199460592481523746414243359104044189894950262686640925424583508404681256578450228781275579271838794028998443742840916199393359074532984310151834905390638237314562066805372359179255625512593876052069900093990838901904427549580280424239088882912680965708722229971675312054571314729776981260539520472561299310840609819218673284734293750782454923732153957802202922835201528238420024825893989753151582985868049039285194130117418570272354273765761507723399908858125492701169235437453161299704893552619738028886529319342116026168703929009823853850349174132850899492134476874667452924316244522162480113812283527223866189337593303662020783133540813218852650497172845804909621707338243764150643712664793624760100228224501063124463161459804919750481334796217730700719215696822512884008197223373860456400001573648706925931443586143178547042503975335191958823733166336852173623421388091252952039753973134717130877336698586538415330684052728990647555726140803018292328055494133652908037343990740306176535845635538092175927684380481568429496669834367730824768656887675660933988374435930902713677219071392367448127344515291315237812623021486010372853287641249231921642655476647459427699544605630111578328404667139176756146199294082550036545368210131908919900486222613273753692336840750953235506544879940228053619241219984624095169024108879770727949498005333038646208018323421166023226644938636801801308530138955976337245084389065022103844259410070508785523298562446190576714702418102055603660283357094665476054292153183183999699436444458676019027797294674072617945909454322602511280604780810669594888972254953823226116596592360268086392462659460270068324812890186560839292168933903979359840462978888691481410495790286346308156449501135086922828657190552434680147624755301655599396711720308588034557963423246601656450162194821746066548340718061975777704760364743243988965452361443283807262728502431281847931740805218622309666380694581981786183961915621670935677358553226320719627716417598122394164527985556426244447540892608958207855070767674947641728692778587341071448829354217685987335072370013235473296185444909839834574751045358716127433314403330639671681120833888927606280423265009340683072373071580533132926826688424191134900877198709055467159491843838246171765736066338163375561595957827525738035671715495175484696775780527034205555401184979816091762573824920539722468467792932663240775037530593677149574015157676239162701256348284852209848371887248239815881455600718874964322094363400599300656883712776451756272454387937998273341162080678141712403577201957820335069366811544130473617422028599404492124690039606780088830034835671122956338761789256335750307029402359616108796324489586569830074775259386177757714662742363613142088338676274465471341071406259996044709302442888181183051173503380941401566970812696570675290882556408136416472057115131461522083263074127314066001654318808548678152356464043513214680521091531529161695455227426078721161610806575678668489822414169241292173284131733083746178021502968866383385871163098954836856873612106664499254160783499531830398825748477758048730869672289648545568929582187732744939721662326162566067622908537366081503724267920906568564807509192618696166400404508578493141596640010586429102395299718222005166487260974560562093032741067437301350956653272621776059130083167450513760540281427564009904126298040924872530876795572127949089621015024458598966837763766079943608098789942066669727684214229204207946057677780896957289693113847361759817494057582230283184406844935217915339683118136555166616918401760348693221828068750197489060774985058244254456179104674614248151643583198960910768498891717078219201909094695959173098807038481296034318201717210900328847479595806260704416348801368147051690865491083133799236400199309478817715166261625460240016916554082717683121227378099456210435530204612514448208128072708191970680950576169008358395706832353664314321743810613865258486920757837610842506482241777186080538640704127259449392827961202676747661766129298528838685706103726894532294020148533850402955573336893361195755953106647785798711589457331831221518027476665024240880005992502253967284662203821915799244330244246552128733176767898953754635095878431225223273503317048013844858793859412254678220631723843867199280541290817273912197002369925477317059182578271452210971318996434564343347770718833924333364048140689022921286781989931523867981496928985055673062800973846325128732392701629100479199448248471951465954217094455684520515712753546627956243846568125213010110807698456274611411077698526688963566374081301567230244451056923326260783294356828265691164082969765768904609830342740998371344649323974010495772361080781480695824977743039706516469800014130243095281128856431680450095820300597232785579709538670607332116920924104532646490121626487561484390215601436471231628560411906316095820695019482859435474415210448086714942308735406361789046217054931440337194856527715540826114735910603495213998602084100382164275270223234214005633651943774518726756907753030106367434441354558417184596313563275654098708265628097931794672755598204098712179724961164735712184509831976028469023777591783049197479959312605196600146632205482903304810173150923949744830904104818836295896099930224432444876143309831770906463999678490449119718956912825570626816759318537462086036978127230861993914847146023059591117784106364777853031455736395029234094684147486344852037310096745928799786399858386450392245133900842337352128677445433774146272744439274414834352081761823595742547561089994932546949609014516885535520845321785012502985253977460780863622414108536280633135172363922185114858276399661334610810342099329348391718252377615284308025252856453203956675875008515052530295355237803749409727064721201597855305820404859247873522359126318387653097403733587175334047993325472669115519498475268443340729319446363143752060913824185871894822427030914480658389493474424106211739122329119022451309271124390064044205986567749977182948418086628717966315065935491247325769572059775324351274110462544624089368208071126949138192730894659727125830563437903062213813187821204267140195005703039910765007986664997962746848720511172546506974018191610831284819698612620443541078164084055623258253731782611078871467396827701300799496802356057533769809080458796423431473842041303451601720830108431458479187456991249775951864464698541155773327189567395491756457000721785266633652136659622441024544931327520478861270783706439568942009405408441106933050275108025298123565664059442411138821849780839059483391110456577548022023537348516196694664042404285715679101435459835380771531533610303062202735392764511689843518220144760623110464914037173663608487581808019675993352606614527104440014668270862005066141102395037228724541480501824567375312687892410706257970114421188124522836083568215015234642085774687181724483692015473377989494920995887378516704567276023930678771874382487964147715187491418083257830815862492005493007641722518394382434046974575706246223915198291451103818590771217302376095641292526708090632413009738948275160188094928437673472255280423209018850078782750764277267667683320541276081643210399987399622836672920452414551571012547150437122243943171126410579668031102063474562991348929985315930819604203599897882853984619828880058576827899296991691654930989838584491606255211854818285617786408657468910995810892276731684190241043595466078658110252018136850975538982309357670284402217191673808734480188295318566167033592688378991705458499636090524191230883493481270973363672666706002382642464136571934479621383601694351689862275084345330002165332229274671245111205591485989187070248043368365086967536473500818715884778152743844487549403904259797154069609186121662069673546408595765089506855114226784015919850259069127119745612348931389810026413724864813473792544473795943844663664679677356655980927264197789548366336757034500174285683128935557605718131054925306725944392549701173003867737227497434851981087835766663286893101456517468925901891653262632869958236552026068493110738934608352268420461098129104274025155233122481096408846209955840714595301611209304282011618113927670603774326029839760042986901771163383924809527269176648840637175997698973992185741763856340551657077029779006837160343595188287515390761581865631635069114729219504281616982181520006750251069003676973205400653044916731206657495387866842528819134144481916335590344667468866639632862908245703151596531614625651375583882312320310771554749012620781477244233765064118311039827973403354106009686109909822889317779687188447762543466599187891967429049822971742383378843970357393427374126790672007548631096653920923718028656394484254917887513511422571964954135424917968876407156852841535129225103319780404319684766393288313509700143454161608923631058611002977919874709197662859284998657995920348354032980193563615372403429003983634898648441379601418661551285097695679712935891105023724001436638492460351455192411226638817775455391215774851901799593102805241962414333182326996214390009030734542436856601457304682689497508427471192756044209091109796808938995167051962533247109189043059930958971966182669155330377991561941967253811945374523287618543226010814733567651891214002293305247801588485289362170421459417193773702870203208760977001840890850882828807790316834127521604900739887811978067175957044076946522990988733744868625262061654770097144714669628903617932832056588660270739810180634724223216159014593943895920604972752139647734160096319358019236946263653783383343275264774462118515193483061097853717016460029771870505794786167749670212705772793838482228910894896471769259541822443842291653355598364789218120075435954468010692782567138349446794697525760772117659374010611326161328005954803620305805142301279887144871516552439759303835080194782552692295556507180173445748137639960426767929387091899674711007147437721092143162401226075042422724427585131384209568069392337427099027945003266318739825478047029676695358438158749560829435403720839085070391218405129583841135140272107090708577874971415683173806059680892909948296454967356901481261128602690029767172637126973592777570590398165065948684310723797587793469506017997846859885690840796494798079999885806680953442672795381130599847313061381359330706130227697885712784533880429709823263314786480709645462144195138931429700479586633507227564256055988255068818723174147895395902608772428030657615031329108967754043834448143062419480907841404186150475141565026705145177714790006005127399081005482093114425782862599982335085836670565237223657984795647477574754601352682227389690297516185651141890445728972366710295227133253742994579894291007673147953191364597079301988904940645898365644405956340468167536993568232232209895739118977208618219426324432863785816380614738262500143248972647771776213013642668099194496120276436080917878775079719253138917610292688664834331841549326392916956636218666872333783236839499696214357842181747306161513942122636742565283806171895218035849981153138144485204721631724180762398170069651027192989404437256366772894442722650200269173868021538297771563421909940784084920364385085964491814729889386346071816639785898520909747368513994887177751992664391795472817054517825069725370707469279667462182480706863801226035586398154454370443582417358224963901974469233117553922228827995189237465249907864176102150297582957516374621330634316453866652364339595976178057595939957299750132978354187959658342329720480327797173659353039585140380219269602588102095404546933244651236445586181457661784622286342048860374316281839811499797036683034990831825522722358308516493439482815811959704195643152903889464523283714240550721904830038218600138627427273509513031668002788452621034152687949110829620497137527739166624928995855477569455331702789140715409624057053913048677001466621446103173865444085698208247432676261384721016840485037510634160018321090869554545250755461794610181086710691231083147985181068916183346947724967198323051479132133905131945219176301508996274624734040562142767058263040720819796185641382919290232081579842655914319420510543211914694992383918018557218445301089495827853518688765796290147474031330107323633717610114090913758449537996419799003473008362740312100149859823685549403694342496472228380360808977038126824880752036867811136492298163128432237548571202650801592212698213817763456306472242368829392643761067608115845285164758329105662774482078704600109335965508690212663567039991791795604561369096278589157022776616930770455842823938218144956954534588616704948204259646504761873044815348790572797737943046735369066928263817248654427227480961447354558699654648062240100109623949444716562281221118896962121241759271843947013076019201312208117041360882121992309979455840595302626090855186591966387099528012192656264621433863523076025948662975656288624716126047977488294893872516639715835967133707560334662398086489604602155537122168238048960470348037668810525747974502380694961151840788821964371429118442831238038483389870991162419365161192042695888262956488125010539467537395438041920291972046760586430575107506969631214357052942709849565775737874182543683971567607660082138603390651729701017403078289320952229342526438383650639585004602949548531841121262918943933394308453320900262615384172728669245442752552769183082007194370738944004939712067432305569820990506632402769663897650361043755694742147278849774384513060373949715580519370061590242781163196315213485921547716749592197119676309615118852623613032582098419641695541070994765236994781115746326806788322827346047061221623577916531477412777972695463060076733050901043561502764683760688042422833263623677564641506118299167573573764061701890627598411012334652049129497124263678038381017299396430738702992311572497684498863673296093558235693442312793129047327234884490703321503605051063658769069621476722882874299696930015660650258855244943256326928980201010941394809151966996948817612077976755389192391613628866245763009978611712583842792345888531946535055919886541765653164554568801299716237913466569673042393387614056314526742886091641171361375834489885425190146046347995014955937869706012563782602103029444301371585093400718114437041679800582178135819385116576691459579296445152935066630449740099135504983199050604331753526592943993323212461583317206808392462915173985907733714099193519865961745270691294618690484790249574766795165099807479229925719272835616009236077207902583555508472828676132880994612141469540874034966288311247912816067333341295707676271165234803747194923964736274479596164162517383450854784527635474350751490801024268963358423066109064087052831382594685018057333504195392850220008248778300778751056481054017119937891047585064100566855406216325850543646741819497524321463263359207584966231368293471153749943981981071321420947293542480260601866066403407826424672136676330278531861821088018412022268867308981214130667391666125963005949015370810071099187472431990532093467883564973876470652636151737835710312407382118761698460845262543239625576753718686112860433864387596490013350299922363808026573999769128458266016630491061745071937445606211160104711633672534113747812191175394500201687654722477587745727137831459515612870702944532118382830107539842896525288539524248497758346357846459794352298931691058158858001470406760746127895136922218529705343456848979825298349825522397181599059890009689699589439868967685576892967306577199243521251078241941799678810313887875348773502704148878323769866416948635989496565796816750320631949735431072278916396943331424205960421988335812947911923760518929271732566734526115482203632461184233047900496692071077834936302940001149886888141196152526192494796973911696260147301673523989086742557483280182194784685276255384606565377575661633905166713672420446140090221355295982230001084990523896973831809760020338593834376230296946775854686198900205795766927705605998500880512202587290267209455665985177318643795852596957270093905794766606450593754183110074084069222825834665872004435786971944291416373986613411223162610916660630220719327122172873196797645821361026922914194225097239464579489690504377358922763131490804628086821903054704703003224463652013739650814727529290347514871902434750352503463992058916718040117579952530000758541209236434700530622006343193717371276835067680257809337469627890748224749128953527688307476096189738120095202740135378894118051770812894812284501575227385301887142732594861569358619514665691220032641229648895724565487314625507119780252243475023348404469274144985023974672533205355033729694687403124817542023669353046194158015130073292968232297902669229302701854768671925970710647648313238164289627665499683795012171620774573186549070356150147817293630345005410279267278079578827012300342705450650805319911231579110845841235113967665732103466113998070500786081385904742997715192457596755733257753526637230538095619714410026238976528471266160920886285898399278478500193559791819276511117530523809348426461960932648954258330794876134259309034815065458304640563768138200154247580111460363401600454799904207291434335388610497396629865984789284959085355765166132790935132696647803069622255254546888313268671438791340353248829804387929177309298148201731329360043974334680808532430761229969563109012137138752845389890619612446067787948834913470086648568840382964393071259515326948259273407554372590641162428391376535658538136442918921503848251205538613913104333736236696156902156344733456278857434991565060517289537010851120178901895669378405404687182135705743805849412214423049405224961825865166173622653234298833686995535243947701694933233870803547343540551308399636676008625222259666086836374132321762830225717265789681929441343487744303621047797981478741453709568551742963784276745065482406758467121945840268342006362277325576595431306813091699579271999558530426213352956959803856820556777584963288277989716387966156710356501701359334436712237086935198302541054345084404876989058033164996602992181654048215584671202479317580992319750198959288839824763892803459495501219480547241324460255314022228531064833603205168155802437743567881045745862956156073907596520181296146028286900752621140065716444013730947731368266572619883315227592022438530384242578165367625217178507404692454281673106186837946893262527905690880623231365048847458898983275881988112735830438068545513624977624935443370334371157419433387742457516114148586714703226185297996300540311740012089726288201914210918554441999882125142293908412750342228343067658381081061979634623310690348886851426063001725808027664661624853118784008240826320055353112665862830004816607349572749414315253287148977914473133284754566341879858131656759186043868956128535151447077136170577090443747047152807053156513420636570107320115151406162155740783751412408259327464128563114649763482200040354566431611537183313428259054878518763033363644349126832226248424134384129334982027480259386549112501724950918609046821439564211321358837268669493072537170288288768554408088969408552403489934174204846618181414405810174029984159915312972877384768121146064325891667048147036197462552812830624871302220915448880555729896966363855559483849788200823836147482516384221503226831020235651978116148769632089775077166985025918319606852696679732574060784159501397101240253350029570692712203295525513493384168339703037400662009134149947437151143213296572307347691433124160496490679112632608714509519889187065372905919601497585247272907104662675846250960321454268364776766556843151980658094559900383084476845451651659016060190944951865081655422769974494873494150149970293952250231823190880809238200101008132646600952681758949594274486569536559556965883860142484826308293855458862039069986093094151601659199946926844689243242646447964966646332917128371294105647924963576852332082651507931183871785838634811752593328844428035639382702541684211284174861276448930927546996980116744208415828529190727852762920548894915394079974760891786078443933806529325314902722813423925250738690460797298117262464637763268576307614746473941227312316697635423848093499335077931438233899678076252754135940524672488736127080007951777982083633619405356990106083051224679502831555362694079762395199274522278960853642831341051236575325583144354865718368682789709999866596504968211364848064959217855610380564973523459793059119596555555813949816494801586534550170180969237180045166850223380465077644440604070466246658264242485318960006492555358573160203034591979647763040837904034769218186665812551019929202576952881024613317337417347371412107261562026503881134999919023434460663007501689063264455475402184583459217182965921563314966484333704530203571863439880951933250372545975950521469597091156078799827853451271977341791216330563441776630438920134111349986044471386377491679818997516843639789316525173530114294141106811794559107825165205724581629025162406791540880734729978878732834611473703145284085034926162567558240795726223381230167851178102976860773781513945269610311556572457120797256635631120344318862672696005085025984517816179744051848002013984357553483942048885583673247781444652061766413120941327281360978599878341254563015222727921491595457731800447685181968986962879623810988599153888438926755885045893625499675859404806543490847528149167025522566096874518697454147933966540661821478215104555413341018888628660915274151816472483597477465767599428006744133616751331287324167282835215041678708967031990239695833523922700597345307040688087362417731496818206960905710623309058024174533639630786457166833275722638597803863405089694887709765172333001906926628285395107324246092884868451232513017062895692794997324662409067247733583682592709964663711007782365697385490594171501030409196297315329506983871513193577732392883108493908227497930112033730503807862718249582685708267728377434623046576318751120265839280979880988963687166263415540454132481608322125071221757745437068881208920897216511312788413390093697303902449355085188961816415493171616849694095266132853468683730998119379802859499087938480679036547517415923574964978227510690256011792689011587245644969517118680785013751658868569426436431391068167210935547812803167323191284631598057228087794555354801676378983544193630140072486077127440908173251597925006650117280318251930814605030168195906991536174018701282279742827017024596021662521520063721330978153519401045183847290287630115856100556519725424347775068013468364669657211902165393163034982028913137274672058435914204815097377282487091483929304305837382625309638247302348784795334793366323321720677568056830195095500957117303179759820869039159804624877967524813921378364415886190184132354425187961387946510024632554538608502088387476029829661595251669009239370451570387614103692578069917375639754440342465565064104250427233682316792969001950196778824192585103021082069854181600205084021812142946583747012593840218366242963401018577361094511334399229730176017098328199594562017987351708342339840703083976128093124384417304025907889161914136385883809937269262434151425755857502369269840969511618426326025646200961482575591521277524924661245214217559248681444473373023786163008465375344920165290634740630810841199939282147148424248865384980104346390904176407167166254622513494864644378651286964345823598405337362122707156886459945078657348912065693402444548946317277775611630096543853232950308374426138201521649458884105263109087981944945725376730950303921214726535333938681073846822344346774354561557144713997561530913963479952209558414371529874647864207487847197266466413441314571572292178578909826752012130968107630478020269366161165315055108741933899551329454904875873603933171130703326727135207078316340739870406421927947367592464545521271123275619075488608033906719801735440096050451596386104130030413063633344079368530893157857849287950471031334200238347168691933733526123456368807297178943822523064947201848346988182048281868526713235179584777085090098527589399256925420618922359075649528782123549023786778087773117148977338186568888235835485754863201272426773494376774731996608049845521988121913205291559545676290129268226691859652870653045287258012069908118773808044251288781546804323852293034342826611696137505590479040189833382829433038221413411291647716110895181563491892124440568211587456815327740363309191023367170664168767128833672439684552515804827250862369280157569941923601596118200571995374251308370149332846419611863980698352600763590926290513847997992772393444626266584448931141376632956271162984387662984068559364023389888285382157533450913056756360693046685778098676010260377827355599251875812712392074048782003334739304232597787186862126069913988152016037092318773214203031090105005149866888284621341280645618167179820949702867672495824581024336265755685645593142111785912891992414147658164545926433289925695710879744134559044881461011497647357593104737712173481135260232534326867389759689269489141525704394491039434608754206569389872702275912392715634454817792212090479498590755718029198602726440929636072090045443264323592622272118633383145560382018390511064352796889331430144206466527494945995090075517881474806905505528999067408277356861250343555528401713890145551082369156132146051322477589934206488026342075772505192667297814265807325076877733803301215028428716116457453482787391883562891802219225016705802189977832488358655981917781713991109664810249592657098616335963811553666707830915616457159128112390155180928393167266061239518190086110304517270808604491534383319000970462919345992689618064303575680743369055344889744953313286952440340041479836016685753001379791163395743332763149634240211037769477420852789651168965582086986277366017221410027980407792824615452266904444184922311745007105853285748188611599793031835735238262448901446685426117186173405317021406614847660977322128234205507348147407174254645482723372539753231098295696870864483123522245452740360869976123387184742674920370720507083008975273637261689093078732168637344990881318526590505170336494988261950003618418864632109095785926463371630854350291922346113300857677368878515533828639966401322481442478525205996986087788891341446319309684196143723880346250249060236231591500598701364988630809269915060542321042303487986503915277107852690730535758090186234240654331570947657983893120523553811979711828566409827420231283386079819921014825458218573613197468065249868954623670517033428309838849558350469330928054701544744129674489032820066286984286759857603536497854680804516807836567923702968262831940684572127145872334564888885537588263420568786446366939427599477046255451487481091857357333283484983373028796139206956652402074661791988727454763075059062078585271375412032360810669098448896663395224234034704028565817487568869705948713276757457266880084554791382273150480016365652291399077776754937498182376050414607973438823849988580647677659036568515321018413455978673364162546493257358321678185854878109686887421218371374773343026571406612120919762761030754801966068071637863082745343671691633846276298212395049699343475985731283618320676655063965858978653105796697931853677390625411969609390358478535166358657820931192753319615459863102985583528210739356003234590376791989618070911605082573848055602071162484762077033336355128968454968702796831715642863037187798450873038945613506723261375408628133235541438482999518981951935735663600587909203353308066671116901761468206936432935358694864975506317980691455660252624093600752217000910879191679302908026645272205608508398634849509627065913643435588828643763336446939800271823370907659946454745324139824189313472044107126833405072965291897498023001248505544842689285609180460059936552460911436968567742724502222793363775056553985310772860682495445593368651500014408555815867196230152691796540972559814573426152570945251510547047539723867302185225474614073834404670531960276737144030128773860639474217194596819710034604696331993689888113897915816635275812718742607763115712587739012519007781531290127999828246452271451689651769324846443048727767668507989502416222659485555753103253189273910674303645921685540362327913084393972638441130460937888141740515220632851003848999712245928025013036770045555712986463835262867632020707321855883545269651650997943390634101066639252661532512676935198979186234497526447367011024555452015512223790652410173468812490366454391923192579120353944268846283370224549201588673502139309281235334993828141456044742045566617732914502206122097753141252857713062015037154768845744725562540807086256468170178263506764527096047780471922931388112610914059107970158515695867834009637754597208146083036972371409674088362296251074285462195859509146723159722411480227033925858866037951572204076260844262328779244694838204624529960450066577650612149215075035275204147591778302646749894226209646543071232898976473346482439704224166699867518430191556959714183334548274043618388586737965659384023746801271177767161603961573671073284899094630045096511065838355813590599041369102386364655661299800078381659422221686134087661622334154635522506700494582222222535196506739947978021473113488800625520344550978928807667917256048215566127518296448087275838856525693529773107956897820604489066133317483445080230598964818307588003255444997473638083454003663069438591271498512634329726146942848409918811827666122754158636670668044679339277108245020424503020534827648740523616609549172861486888814783024503526255645272513915550984108950176927185894571218881644530669890122133025384871484486950679851403221234019211607392497182066801343169255870907397609301736179107179437838545021194653648374010461471249115544435770281960296179153875180952232569960083432621864378557979987692786209547134396508519333907709794504169952929701845647143661428395015216206429173907679358834058504637865805956738096528777116048276248246409301245978684942742855078222365032495528295252777210672986032620423324288155195203587963099771421349074723478348759569843960228714437427855713939677315836975042401051080569081881975941355800689540641201416444494760266722626492384791737842059574973289647982340407400335748599466402410824757440895024411487051818891018909967780024715267940680963659398764121037617885853458063359224163773104899102949475837802113577046568693542140830379971872629275495101104804410679887487344102273782419728195283615585771689062368997821072614641333377416200306394654538943712249218276021611095309547346784171921823050169873931493743968553022650413338881092750789370677211633788523964234788013996304093237391538275400812920832292416363948923562763356619739416167690104722338725354772825728728067464624623166964107993204973941020992342883516749534081755706542743868477404291648720212946165821178860047120449495459091218397668211893233433743649447465327957414343648089991678110651168969172077772834360318817029056775477973350639477400009620246923911741580377853172803235838094145695398281922898117972461482165737263477232258874626135458847557244835721590637680857451074017816152239368472327839431323713803889411198446815174781343854051854430096427311437612000555304469481902194580635708134516593988033592182067557349951121359820939824931949774213701669309536982428582642087991445182591335101147036021885818775138379235267233434138553895655292727591665330547075020919195301637312307036545374857908120239803698732495538856079907910358071818939035470864253170098982655264473738270272019245208517557688237599267980423067277929683686380757409715723380284223870369195312841860578928622624880779836859233011574010263509422589463638347898317240662818058800270420786326597844711503221513043924638059637582906566409837326552856943739973652768089104354612390129526094510194498808307403647667528121029739816290631239133444561956915172145007222708760084165853318805288266772351287705059384009905874715288208081450120396186797076633589669387728975162663839659300340306106711908299310263577432829884626809180778397984588585084283968961503653724192993468420991568319934162395967046089093890679188112587405538711433845512619682605317577031482674956027695064549737240770715744576433779339869234113342874344097620549615738534902277591828825531902653572054045284185081573236747686521635300600449254964091538911088315832374893937318740137464935862716299508396438460590639745201721541808971361369042608116299427660657513288205101106891798441640645934207049249872040912093222029898933828434835439392390665405967174494448588204089012338722604524060642838633222026103956979099326415861633401628078653848415360410856605625393484171193141652125710459007524855723914725531648999800860400888712630773522796059931533571676165739193757448408789673531077321990443557709160330333786389951180169032814071023787313286505651997270196812809241326201850897241324189481916494241298933955645143693618291065758688168667069706443500360387911650385974222532092773166893309413351626365148254058338959965359878029848704858111802386915530877448624319694862537658246361720028699381629896653175640249587905608127650001452444201118432314153907873992478905604643882714919221538233066423539690054988863942474153613357918471132429871024497998973024328274822340191191900852526274023088078470832530397963473323214705069162442434674765575051538096183294284279863348114815749253425318780509703625485394938229376530749173591241110760615817579617935378108405992080179387996755978456838139438277266403589587354207178650184804189169889110052334628202497088738476999100435511645611958052457844535923724968089788696187258677156645122020196471411860140322873449514174424829127216585208064527809633182977312284807443773818871116934106585722063051257934446398183234673545171316068761533721509327608205702096896836964576786462890949044823418816183108014883312638144649498058613250940353124514306603993716684345346986716656616499966094294197378130819896414600405754404955414423602575058942448320277996691222188081481253006989201405717369023469328763673513454516253515377625752901641940773759313119772318489733810068608986727215116263453470085763058223156732333257128110721866732890662215844413566757350701100269049725635166431499155586016400477604747203042116803719904306944624311163377604238150553468323917544646310394348481561887908177054509212069712778450378528240349945705130258974890258645805901448961360563810732050969472002897667139956722351085324825862728316164146139105129807744985968262000841040484000402777613007695763498280737593664130020302346018160488779454039120310994597005158052917344873592650221830632621068396116699333644132481443760883479742960944101024654810866634324470388416429564500312793061444582746693959369409413057573521476289387432397306547575311350270888544263648033812243508909792288516628982973043043710419627604868194220635786534703944573720088618942228937942685226530825364386165953796318998993614217491597603038157374092779474930511868700196460425461735659791565852754229079707270310267486209160094860220262743410890051991172836650753992907644939695588263834554617042240738953901823593179271165821884110820760751532088391015104529172766321991502975326609076914228076144167165371689486082639707678383676718178146350589647944657901418313010913458078374788336697264924297625623031296584497454887072572395498353696729779339159687550898360088809724065027073147925708792658836412472418546270825029366823378683415699429704762999893444094731845020000783140278606746002395361108486344176137705818098146299409640210788424274352035859870070231102529483359546465401818780011839902218157315338915678418168102823014827377702978599951347160717123785633586039455515617287548386734045974539593251889064903782982217088707973755036241200311947613795960387617308241365708214964722348295491711542109220161652310171614768367853826859261619119730878255231730379794136245365000930642060698966682809217590200868649294548577133408811726087377130604921127008980605561578733604137892315829655536264951465724922454910752956281090349092621516416441258865714323769011666938094485380887913331878812131625835750401993151005114284452420847936111976256761024011573738898067152337272367829646605587089075064656109239958329771833746728949264909767520547669006176200042318421995652341107957630090763461138592852037734900011402321109944959767716453832001246654168667934383948281896419615888389475269928831691738508125409259435815793561711810877060711902624448355164004672023031405723118374258831772480947295960271020436069861712885373215170161730961260033946460821254697854936010729040044999457090435323237991024082391119842103943308640950127910115550660230420022414611377163771541512842275231701086467814820859774227053154388868763263213116186947488336950431374502515070183898217240024664246462029785088922360429405346203817692875973006455321918998685208372878568736403813266034632921061928047783130851972406070097857549575219305611510943245356182616505244040124664024710167864057174861501664763861029419551407144211152862099958747679059542059059993122645804095470022956564566032591951999141295113551373927755481987837969637799765498013481556001246071506803461900882426771518267873053279021928773095848885687063535208633791507962309769752849450561272068518024361721347599334057738554091794961051969878366963367463750822067948034483162384024674133505851326727931098391905342422381571332416799948379821409755723145061707545912787327149017766564486788415697375518548110423274940686587891994588157619008436241388776317630947449242881778381354360220181029373100223070669940282945799870386171795500270259538371068561988291595594577332059502794972901380422753853886657850835706068067186330366262460229710383953967614285448561135438157293086996947101932601897184048880075479213712295530178879294779973686554738241627408196339749660492047112962194496020271551167656626881790089728777827087353338154120832340297905826483173430693837972711476662926767406941958242850553461701462497842077044656597747090466293695309158091099743502296439990894024080173547517092536010718897231843826439435146916343675533304240191708999272902525781935837785013843239545266485546820022099391462017158911686493989136544548765027115928611975701548842986516463894423238030183251343577312534904072670504701954830178221190926111000786867910231600125094833377158924503228466984143049858463781103177437397242244753125287391469157007001548350722563793117701984662125105780557761766613684995055299521715144329261170585579479238851301762832528426667933193615745604660262933124578949296902528365767240553671473531582710484528346663187431447738190734660635868308189790832321827300073370975352260983127227712877875843542126840260386797036011819790748825927545616509773138869935259707284523762882305544025238735555070170958066800736872025417359801046633667346238583570125705215299768231886924025528736224922935197533779628550108162975022736434716517992140863808342965897443507967558978367931629433547991272715458278916915790316902063117337605701779686291405273037780442142530047232871537928080319177022733706328702358023621768072883311991898009916774385304558011154838136345072907882297896031510788546344081147348721938663983462605449913357470113145673060346938099854475987076364320215098133721784632578812826903682479118679116349007189602326071934719530618093112952825022764447234352014820222191583454335000505682733914374994676681752850018996718260405958787960383784975932274902517191646532919937265802600123627935514966936321543801911510378769693655280241755649942338554431461635543062849618360018592763208051953012548247977618553009584699793628914722990145054414541542710992451719473228948282741793100176608308796643047858597780342945836135258976743513142620252931007557287121338780145854952525024665046210847154466698823170469720869603364516040137276919392984271321430629579679589742327012570482234668523603601485761283298145649461837282863911830874523518917882903060533725434026497468292205067689231890430128262217441974143113742598224672045044489398291516853414634719157787597831736527541235003310927876189418969578930188694347542855458906498787631211491689319964358068115607485630374310973752319072117985950451922927219800076595838999265580974462719212594702715027901213333356794259322411169064565663446479657351297847793463493403298264389747476750326212098779574779917764829188180372290034488380473916073513872415204291279417872499405991638045866743719776148312947937236813770684562225162269797827670773000533624864254201174086566731170904204399551887811115941587711139621118322573274427377960645522593404536531161848873359876802064593827124666239069215728864573651741575171716669768857016498316991911236560415225010638764094813341448717264562410758431854858918589089189254394248946537118468953689344285442698267040493917575893607351661517020194564340164776568425337109841143744921979435338462767042031546942699494016867221179267437079319207214991664941208518313763926823585356457886998265935371386539855551446354047386726170212715984795979516413243031477010245659908021487334605658895248512379904457810309520673628980151184058100433349067284385516333128865960313163488370982093716717376605646886152754319087481469110309481354259947517873359694897459716219804714940526064802653958096595784112604226219875402938601688760662965874590578809492315472357943009768774629576955124232683887449406506000948933783868830565338351227598656832847156099286441594276352478356731380313486856057792172751557782866972954335126130019424369239367561779495707397613523994799573371343273180965909286297489579143696188168293505903521831284885891265440188114581852406063862806958180989689354972377352110851425848452779253858545356923094220723113120736360734062465367642195869267118662317672376299105772784776819229938499464400543591236739549169157404414037913321060365909903433498748322949614965170185070105696442952009999713010112353040984965588722988371787107839485003852268345322276289678569356819843176889170396222849087020923490264782847247426419119215751666339462790792283690227441447146996633464095530872186059981559964730323509465643443086850309603041366967875632433180328967483196041037398289956482011686391128773786936503312973288390721497221781910460369401328528947262104833111859743608391980591451402509569653870769035217609659561435698181733630212389733182419412926576766414734665550889039873515674683626675744818083841313851885977610430619493452303839115578769502949386468878162736171156797708377164797548857426865388804999446517052011099545382508143799899023406821148379054400150722168076127083684300876113352593859181625080079957786891838442830347089199628832187756444111654475815821955966004270931320073123989468935740454364317737805853872945388024780201889313894988953567670217019065160105884893955529055123960879434519002373431301235812824640226015717287562463925150121784751413281677493632121024961998680754775338076176142586906218092480051512879516437481261285514064768276534004520698150861464428959888958013211032272890121619641763612283137141908510232244049096024089190385186284628765279521005471919901627021919794417732633472536992703108172956312353843933114276092764202326174572408670707485290205821054090073680453731814046581344819326358352101210097245994276569387873013853639761525542643791410821090462684726641291035392351588038605692067219249968675695483628959221841982099393317074484588330192210170550383821322921379090609419498295808685650737682088186480683407705111795525544381016731136468061555203113170293883125609562988775392081743058192236230332159720521619897323022005889329405473838011137641202034253820817328849982869446816689489791156003871721926724078850525187607215920349439128149998355225805091929915861237728080030172079367121455988358470709003492595452395306779461648937155065363259600699758803915776280922997255858873149534375016837359068458449291176867099413748876090297552060343552411127986095226669951849615581750490994597443012674221387901622260445430998029883725063892488444856195090643032410755257722972269510482446679642786648986755852812287559402804296163959395779217765595666519788925259640496584711105983148489745102382496629091207778349985038253415154445730611321042106511620152270140794621236113064565239701836792052566305919621220082232959144577428652669288000384752580657585381861483054147801089119513412695042366229660793583220879212455287277340605403179114358928576052279449717907320341873911782317038015010319325752684326627800821099954191013075952961074421149957591222346328772113680208573470587935275556070041999723704988845103778323823020594099393718014458634056865767010364973577187348425645769305617019616141120443256444684790291460348444935974758408626535184461411186571831724705368242306408577876391344724673089104243657484077148811077420454457238438281624313448558757075630721029115967292363699808654731472194079901629661252580627511194397994260821310236825976104432362390143329329722356449131621282701991315822666611142902801456386144325453898882048675432966235499143571602226089262346094026176656447959853837466423694353198325539169126033919366640724312799026898583361270009157716124935442012057614939623648691257516216079644760486274387454200817915399154968300725165975684436781407049298907553859195896547906102187115348193109585471641805917177318277391054536004134770278515886913649061932543595123299657797329553928551503230982014673612008003011480013222044173373675851748005149344854686706066412256454458828110823741258265411870468823454723407437174365462673847454600907797956712023808075934518982028286697488842870201323741983413142910918139525115821599253119798919441915798727773319801832140109158638685066866397173314687169788083696457606332483399379684335807271068537873529598052270792568976945850504916863459316407951720621128495149959123440085780844992475750076599973881922485960874181470088349116605028766056820823418342440197220407480914591554303070772203289888050234146749011302748213911834713426947266179534923498703406865156455391278432398695259969304332430771176454277050550143864380358351153874226806478922215685950345780140396622823892868453403411120775299214084337445360382946762125178128112341974393155443516034558244914973613773896176397924250685084579959224191545553325626890123192717315465645587134767724812306508913201244805490966775112594706067992396312027587488148105005051358577592297126534653550866566337484050261389976091882489653363316157629920286870091998398579058035619845500380513620335731964810283119061976358776054670224509444999864126703288472307671462491494781486299920783362148578430126411418510783853565065900143368720842786895383542196381118788917577050188084939917074750424664135997580118135443119302768070531157768711672077349835346816295904054595136666064747678913895416470273474938782264110958140036201113921442592362046946668369173003857469266801341138208750765779243924700583362135390353205991633503554937032060561332555544352267150327408293305074432118405141607275318028628156916587049714255963905499496025667281261913774953892877449183985492215836437510451179381325695608236365665234334492446684153662719313463757152827998073742757359509268931905252825720080316971268422850034885096299121640047258338036692941973563444049816540051243854373262767499850515663935915854333574012904324636533901869146145594549938182688673719684193926377207856573150365142502949832212578914601764927795655037484063675571386945609381501657793559118726782461769060321319067475563793104689840808651650284697218463404322271096709988687572679642576136606789689961419509613157090283122122490611085669410007889715184647478226153666470725883264654506515423139773322760774198563507300583581827169551768008235511418801404533022629648868699416144693424669648817485755293391087449265210053127798752651702598480655384607194943559740987234707007949888158938289337862883747621245492678687871071106142593711738807089742420081608803974057602070635702084152541365777816207643190499445601377009556872182477786346624589735919067100559961344445584678669964078487376161570376102671339848928886578974360696972755645550484521211412494029495538008997579160568146202386101989013674432321217746992965671029256445958838699192571477884611449789928798355511321338980215366892985666303620007661601106795801128169944770462278325106333037259733941569221366291889679774272874986120064757649112408068507703168270159387615005412482157868713639812901049562791625734405712902484216527848178922641880235334343421554447345879466970303014306822327896760409422471565059032257576276535303335875980847957477874647757867539945274695097466475683238258883068373944847332234744247657677048867401414166147949264959566278673471563889133060378289983562219777176927255460286558729200807889088522129711668539926537188509594767850916932214157954331041432898456652327797304301185098499056867625348956144952537024166518638332553437639250827107612299077942686426192712225693931515416949179256878189060444977800586660827655704368594226460575523449945891325385118231349806895976237994017344826726660373045819991344818335907733398142294794115903498188315528983440386577112494684992778337921271631261459995403836065492210348480338410991234902037131144996430437563127414122456425934989083117942102083310282268381874354163091592000783473444902114860545301080973168565152924502276611865264740257448142943645070788209260227573763032870647761412743535314739251709335620923510880197894679677189895965857284631223696245584277818590205338370245330687579602412067947014036340145033169444807110692588037166946797373548760706470699606366155313257810885221083341567583048988127488689988249840302357623258486221920346457692342780904459059649162112395036500149470938653687935963246121825738228319476573426049092858021599108342183041210881107329875066377418273737036162724813407933238045359461414869336351981341580922164937992593171728696346961987619099124219482151691802797015123974461990002213036056903965578707069969469595266232701316411732145932354182132543385082510716146599597223908769656202615280156118609260536870400673276238767008362553165553758033540340322246168363952208925887195266386602483307814425997121767325958066500181903254062250961291846789269199424749521422459060793919475778688918718257300083060652359948776323165488841471443948056325932316962554355745147978970880959726451035877239722931200258559046938521249971621169711550017269762103632105042628554978375658944020224137452256745955295446232528289293752818704262314318829828412604252480079049710278436658721416584775123367757112331008418805008286800978707063920897490157973409737755055230307286151538314044816971485196290705616467479304428418983507759543086821732624131841685605670091577671069451831040589514708211857728683027539037410277634851614586634019778169663503312759135589078433120485940850019065360880307222782278361242266313396416883581241101454504587936492057884056641655917496205422721523210161904910416066704463351992435129313942107652419457349452436359451421835214419026682630408734301471241343577622586136368905558967361496298708697854902156104918578968165738706678759849760403480785018719937107740989768545409494089680416596667453260323472538068275582221487345574839458360426825451330684311936900366367460592307588755109591162130404069308927000561936507241186533552970921257979541343377431349099035877843926158656422281788573841234157849975651191627183227812793456423187688846819902197434725580874543683586654946006340102802315980006087077042213057684406899943999415639985896869571082049919325317720319538598852193174940362130224749179111615710665780607555243514537295951374227620402489903639317718192862682636802499544640898833612130020563119607021837644834980978384752957986242447228674673436846148659690989748388964909867942069683106122944477144548122448804642941450523062352692952788213386806230065924513886108458834135322406970101326734059811116806631421599423167107271477651957928034292443476941480018403039890678976361480135898362861254251802839445840123083195406840193698803733563185797504360923324164061575664813341059184435043851579277738340029055947266043301409232138337364468134166688491043347877626388596536191797549334896704356045147688250297145763726091268254931696854601780635354663619168945163608397403772990737302474078359137670288636363694393140717601615383961231605508005591842228151420108268214465559568248377116923114806247442843289748379469497900697521791647157050705106251805232452559261026565043212639824388552321345964887790728206215485088335756558791615977042505976180479291627405986504131201507930218557319160547766982237610259315131815249517066001063257146998726173336166371722941231458787227959011862719964664267738869456652802410638693757557301417781643921213773283141120456798375835336179345007096428577362578387835910494076113822554881803661492023204372192454607291713913294249863227182970845674466268126263849735648111791847405079579965928670061304633356757678556246334211583510890353303945272114826595743347656414311558685201181579533601567377570040558458621652119295825388708923132513946364943874067281695680637342158364304830161031984398434067476785008532150845020699364588358793874391232185969853270309721152808138337356098637651834210622889708114865460196354240963076514434599019408858986778512860972775748707463543064725985112017224931450690993785749253041176259820381711197133826247738778936360038362270450060119547050675881585561258722684583095874209346771268693622661681086819179831809318265749993413849038501055287908024049461601319579112284943668939340592705247164970646902965203007274043223970097272006582177115133259085873994738722354109053900651037629822544880056116055071942894875776448551269018912720570894096745267649327800558199528015913173784513781486027209207510562167308151957908474160211129574769511950890860786893738616227047348213773786591707879996663803215826407994116599346950355030094949976038262611911079844371794755060805343242582132765853958991634329402270058196397045576874233790984354283138557536025783374036214931728400132147884092995606356445159548665677605566406438121288408143151356962513109364436182530430878387690948990197524351022458434052878585721633881353175831263361188594489144507044159819097696526026040253692471782120115273313826412046254607243276312218377751300143628410067776011918620144666073166544067449042985372845809348960792779408556547047198466816882016144652221809890200273414906121039073327444715239818371255951874085518899998348214280530361468340404007508687169435395617552549317008292336896004224185988596733603239729889503755559680947797088057926713647412742269962131675448912086770923598642833317949666960804615298424343927075832510207843043293877455542657787674108077288351860104441911796876255812514374412720008910013795513811367525831820484425647419859482837103528945141555590854281362562155652969010781427969058754659669934050225735355796971205840257469325310885333677721338805313965513396746193747722014802468500964747850146483592806412001085971457364422641785252561004065705159718039183527334342035128418261748353065905109774851106805264260007885863159172137292241875586620380257490803016622500973052086675072310981962592115930646212906459391298535428527315585909332757907446928276162534591719927606599351031728811671095567329433847450958158156903811970674527782589255857057429212463110470168044415377999849849232313541286053560969142900809837592441461330599047293264693945326390950928410780670656505885488082511505073151784387022410284912615462904667497162013418404229894498706511306667760745695597129250941569145224861614960452085719296201541110475292560474118603980729117323926561986850379934636638595084079021953050444411324539380538208642739945197500017422759000280707481380513450560370986998858689398000478734629837648142634732968014021727579495621721656053506180933581866161503749259451510228737022719552376590537007521931778035456506376339685443966852239424582225029397494646494396697162886203412489653935436588412911095158220137897902989723984865533383285922240371190069845001930083620840131368265004963849548610879428028113928164641898320174927685897753286653268132583308581568599438192268278728322093806562973497139414351439969733802197929845097794027448333703881697652271359032886713224130669974332375997247811411780279429358603659409186624373883210365972847766264391843321990465907195474310913405592911954033303993452690027287989534277353523773991066876141495161619681022061974697277256395726562476678973760478124478026005033645358102999511395094175786796495940516210274915364624082216075294098457318441671203261968035776053862564456327384866737662645638623623037572429066101520207144102405983081259361658764739115554741039464799000197668674132483890307653100219646777790096529803028770400719465677439616648917563132789996920271583637956060390542804760601818345641442441959176903860120553569152990010806546293016289672861656520259762620933403930850401590849443458388034017788252675493555443630169295313407031338436926254608308328245465574431968079177565512014165599734873877103170673820067749329907470934483300779774957003756269939057060676243744899341282233596439806797296166290809792725828589472817632527809781995766234619371778469738014036586191070410606926613791007324275521622748907747687731358983787023022623273214946691293000351998147209534756850411461715782690066712599656020331904280440819632683712630223981881780383571107846545404280043297002474162773389503296426295544385186951408895037428022799887922117355916495309002442813488569159957385250297795503620672527581149500414970651855824472741353794784499478647858983478954022072444203206061342794116482906790001772293623537356813940483075501456548875424643539741149050169602599681173340139363443693535452710939950152342810045419138185476377151608381079576526983781584305906447084887141213607279122505723437162101222617452451122989106775054608452454336196515380409393401998940839782376498904923352227418634255725663685755400407013613243565627339716383338215241640086894913870728309616434125761767186959416691589115761725586549648510129540117025321174725003345375859967443175953972868482949774953882626870659428526255491040657017698266157164303792273599258475898127752003990857316139903604076619977663315065652743374019632520084029928805387753624185120193391816268727329158729004612324066265307612015612043695739985373849826279782625953382346117526902328713163864158065014799112197612273215431529036458837518158235421454347569493864856283648407352853453395141756382483116459383013799503997848838787000599746592483412849956024820486777380773421282193419407788010915110691279515803560883387327309559256624769821435623134027675675073018069875651648609530621507252428427575472405838167721235802375597459337215232702290311914289851705081053840909238757714410192902345591608136733718678377400526456218690152631322107382226546516886254284096115062790331991638890334626116949331661206443118728521833071717936164052013636421317223658850770673412452519456596863179688334199063300047302664591808156237211043124355909617966958783763104603737459486281393295426993360526236774911003124277299672888609288984206831571620716183987389989095665189040252047030228528573695664307270490203567201054606777558812518191828048014829686643681396847474252178596641347924369320899090927588976630130278611811210521133503363484679726548988652287570039799431306662297229260867039743817703127616917317764416984758962544498865230234209308514509990379752810768462092889217627829300703362522866373837922328445372800925734796104135846212168024717760371838842046669262368577881117548940713971679605529097821747923673868286525251128201174807372550022319325579124543542442014811804701033128768073868095358989773769727342929007365624383461044589215033995032450233486335704845284050756678822027528673623046865194847801345677651554939723787828944570896688743765927991768127710485728231005242400969638147613549947328936450191055701192407573326298716638746179756689048248081603026490149865201634243844094013180108438017267725081867576927324841766845461599055300086799113990581737753422415412065616867248416168841708327078106074141596693354958453028389781713863268876240635122137744589066060609630733280190035617933786646823708004962596253436130810891666547275584709776466298911409222781369204834379842155751039954740019348503371998453171521887701455421607534707293555846522175746340540053224107315864675635082385283710290590231236092817405166905237917220854027182053881463374585519598607224627562382557543229391071594651469371091839643105274393267634658305279591418305070143439673482449697422323270787068149661417038239997922783847301800235593970287560178938336272548424900585717732294946856190890506834891371740180666499673878338876741814528972853051001434138326688833625548179030533286240791410493360876699705232798995201445974922945015923371054949497321188898124051612861493375631767356771488345673481206563203645936336997092109168796080351744476344069565676526704068761418566722557451971000616956445736595265257183056043700127073748993184322574526894947576382038913433999107027895762393201009343326299331126714578683251331612895866472865531969287515327397331625627889467258376601228284408598886423929290951322617870847001024063676725264015422436513833992030055213958740654727441172786516662763828845101349443270679317705384822841184921486749689766019553389177538254441765267800844805653151635526788263108824522247243054361723836059533413619775888281221299612975395713639835181990726843350085373903278847761174548650025791263579635512526931257415715003492223335141152929834960980348307087810765096572812160440000000557964894153877769007254369644665535040115586869718324365244603151401894256268353768123490735374919847502888159565484769157587702519163101838089074427314728444802513325007483698825001686212012566115379167062044394388479865152248680135514683042869837517840273018171630543398114894219968410321038514351143136571961671645072516865832731730323418153821296577560172724339565237473340921343230605360440890637385407345076611907681695645830629329929315167913720457745838288853944326761665576584398228831227863243038132614642930730183948594984603412947447704827825433437514557087916780196051116281541189871890251642099953012989567634395836372692120500746462323839120949891877309760003523168440023415760298694683656058920314571793676687570964895880113413461589725813973470189526923306243870845558511128111603550109894816659528776789746282905252781937207257139003432060850190268733635767856183023666786339937839897455528042175506578974578814501239644343019384663724317545371931023820565633055217336705269462152695277378484378691516196125664465757125850793582998755429435957455041271036837506401272024028935732291909096089442204285650339857419725788946483982011373742792414296723881219768574360307790863258882806721237725870635882407358301637875741441333460096321690661972290540013015742206387237951591015433511915353591665862280209892262944862559214884107352553892062638256558168451573522607532448415237875516667909994714859842558666358872331256642703743785201001522487077019347863049688027022571494268187615249940604891469853125131606065243786561925793702151471582963434229147059775465496091157763749442463023759773066372470020821062448938641974544603152003230538928661096373003449195828944052156120126967829560630042724645926436386348529012313157216068745338083041243505213398033719347883857427745783940085275026307805932144137289533024330834897091921953525211281182114084041092906405574359227923158013087371019243238584970800933491086201570100731821314015015610130068864387124410597075570462571856232834355438386565083629583447639176230971627755647983732995351128713170787209519794188608583022880514986085810367272529490364782382628707450755008791300107523438836903238722427234978558132974238727085320329952508790635505493051651352040630845759810207687373943602868367467279312628816633575274715911648967224669566297354122543660575786344040224549739480583926252453716970756438391015626222909093141580426696476242050173367272855200792353981363362411261691109966500184779179277049613115477434789119692352450712637478361019279990515209818704005057325335279338126306361130183729133753635870884253502263210528059103035282201894102635832946038259527413030429782712049236258345058400449666143308812083243495080226210540036433803383018209023204444090028887137827200422326181066362554637864977205925963081459030034686190840083551670920539100898838800564369499799150508909956137922129613060845694527461559730877766942149134389005007659677679800438405074871489511552299410990122813261197345759534331471414655280858324103452990628496469809466354212792566667243560064945927306901926785128935846802939738788723165337475021284027088113669105287280149443465982164677355021576955430412702188564122756080177323940743445704645116503479159414513682870225301597143458067405019527210803187969566210498107590435151765938734722714738360729836737945763283990460173192884347556748800933802520254373524490010192745656072882920509934689126840398193197874706661413959047139605971179622829438890772171164740293328945461352909244700682593058172801626365585298461174273603289239233184759750421216611960945899182807113184276667206459241699219846650689669942952746537685950147743859010213248091151616758445127079539818062328534502758566586525861619871138196424507836532524108394968317489821955871741320991466630207381024324375681201138277982990115374445399656203614158065730705516543725379621715542912593801133080335029999102647984974246418513314282949000521368963903249065156481593373764147838471653830673595547297141205573783142820930520524039864409776430443136211548387493207260421120302859753112738062473494336526057694672468317164521537246796863588327796910863187579734063403995885584245716320272326531764137312942008727353492273947786090699745812367193421572031551045113966529658034509430864203480234134174025072687352325962843316683769023160002914416711773861614710275469886838367561248588353308659176089789907777805959733750269613862462489897689946340624747326327543543050098726785626953206311760310895581964177877834231952181439830194565367513874982260703913231430772731668663912453414875919924795147799800922216619610775481231687421691108690039978954330403148147831768262585988302525771099790293494894444794289957388471864478766132088715581635751523556463029922864800648283652827721830894268128512415899706135835390622406519359273890184380150520733947587457067501387174686175953472001095931345380095178460413506357140232777657156077234196170872144420703868977596451737591357972715129596245567071344076446123913369161216042315579046901028349505327639462657115414939922506392828050355623199993794946067246948394127865041605652844276026857362661905625704603118515694142168407657042817704383380516980090076337695649518973874514943043428912002813009838801151955984130666510207702294076267573110879450123889771620875654449645213418301518186289780138121419974613392476474441976911178463779733306809516121319755019509863494585609088602089854684887717410497185259774603978376811019638466795698198437134680503327133895553963000565759025210340718326786021068209361076225517019697347526006132693242065399359666725594744620042248217656281834189182708233920917496935923264631199768164998130602097486540621914475899607283436229108892445796020213380297099929464648258191128100630224079629307511357123801747563539374714877539380939583967043779753677080471858104205054260060279709331991174284690479955810311260966192606943379047228172402267565600222837614720735098129824238243962449930763931099190471789426294900009620359278274755424714033711234675489709003983636028515712421563420629533694149105515877870956471054685838334209338323164105488402427747687322414455512192027759717692525230954476651307733706649400497462434957327801161543454733469832157214132347211871777889571155330865179336686297568348542626530365651164005366423327474801987717218757137250041487057119221017732476149105496826167669541446420760976196083919629240007271372301600324275747362991622994151706865684370030474764694763413481519285529402900565813897326343455476311614596762723891111983672274229205563113916104627621194955651800325272511487472718659149373010747843703117429216351267888386828399547336581681803739454055952349677342954930806702808004108240042872597507390475863371388758103263591092401719330970881684224375968516800341260190793651471335689026661173500510069982549266137977213611696266941380317797694889696824580377521808427603360370591033658005750271378590854068882674853431049844563399727776444200637117406228960620964435075509811124558904329619255714982057353554705747761559462603491086373611373425778113061274922229897068349141162041996945778133164840282851048802367015182808529313083032454123496376660352087215589231431628259483816038914274495482537807937802072383080728583024793804256890062946411897340548242049413983616768883538674303874352385287297481584591560386531428976532897326315587634758168494535277928122752176373643953589062592621101429544975797845935307929088194626651212004167386900514235876921835418354921516728431990672518025243161086558572091352651048104026400569360296130733201026055077670945823224796608228652060374897204246361061282102557512268831771100485771299508817250475087267475687618790953161238075621095598378036150746124900200996209296479846013820395031764558719063862274476891455794409484316681150550543577047818520317677005068794331149641885076694335497443339390595530109449034694420060277138262892647165558188427473372726903590048824366125064400320870613512672120407352368031266539895718511375725689989021775957489899589884472780814041696157193653620042109439061268398372704056168919924320874591249359612094434872697216599982158410028613114116277070942639823986017836975794560884212253038125106316511065617871084037174884594937142800023990874594885303993442616228017774668505620924088105032992925292475546520870228816439453443417528295381327271445511269253988103101917704889841179024746965145663366999013762057111048429238014620981741125029475743876389950112266058079998993925985741410063694426523197377343743932598730290589161291476287567897784904403173786244369693118833154457115967903984049422794984506613159908541486092570241463762084794253497045660193959098308533671443414837561681909154977969422200703128550270261591102118511393702582476477941040622499172880988806057464327424209656278823459050185312613040582958342068234318304882356837312505198164607633657884023883509549372601011654038659426054644844992793333744516252736114429723249619917166877155012280340945418520588327066103482965708230415758188617563640717768181224134623112548693954234358746815857894262210492978472836485761855193242844233040388436669661303300357734110025697792453354581786428231323696544988498400163310049972445434895598966084986087748313917457392222250752707908169696854469443626571506711934243881852328966152164573106039370012500629307488488469167917313915106167587017302757164696239215063900914624182809002414272365355541793252822874026802084116470569122661638981479402776662316666799668456792612256451395268553182805145275225734931832724370135665711412798486647743497456607199259472411649958769658009852034754193187337365865624637309962476877713897833642485735217721210192251215954511681915217931179722393521707876870970806443362401478388996778566419807809039764828087684605153159612241875853137293636040576305489760936476731953977292251971882422480931260771460637764508483687706338553668784683329226237601228349455872744646674633568695903430972501505094101475486077537329928370312365372113030473295577821152817977518029090179134089139615372028173653428506312652951204760510215310291145392244731448140575240590759324311261088621469991866917141962230262125207508114362066003860931343138398649081337984587890831526840743672120277811998323485618898328276454722085436037414914174109449632890273954600104444701836403274943953431265132251115103632566450419535580468242439638830807080653482746214403103354447290908400083083463299734092506403102980271726644639005120271141490329949486032223749286577286866954259302462334945508523264081234984506833608190388539485614451056710253235482153174972148607781098486946907028243730876841196220983696175173746543994037578935791036176820134763861778780497861311815198413130658553695464307397207411968466823644342771677349368629248374476363311861976840658291609100747088604041773229832730589765837438638667796111023881205338312808134778586344594067072812077682625331447232379677030281994007156496010985865383707344014272433227338623663487548929568757021618258081333936037609473065673117860175523824472301389344768026377129262371732264062929365524123222853833529426325391198518124458292098931293972767165755210607454021706273398828289709457610555084998872048533151723959788594834879120900317132626990353021894885803054959928330849376583732753207214735549060396259512950057829372685225496347798449551494249203529786755032120434666323289478136161343165341115285466816280855768284071207980849849279664438071900685976596271335627801754915918116632202426140382582079654824861860714267859023994881810383696350926861801327321625471618894214319132313258377335147975510887484547577751162741536749905546705779228018043251333152186674084028979849633445232224567191847742991596596644612808596786213847240382832339546899797959417825372591669154553780527657822448176685314092626228913270736705509637188149718912648173588738211095150350445191454207011374193597157078610327255537799959506280360014203458594536064283071621922770572254689119684394900215475079768583722021740816131281840289512162946035588383177737857495282139007683619072274808595497010049898201231790721546292206801378575338372556543990211883003360204435125879978536640926254500782478275203965438066905680669357823325971380266016892263073195034644658371191279610892664661817526269169934060482235424881170552586786020474391562146650059784191750641308203037365985138568325635687328909673317326997891823964017974853290680882924222700880882586844872069646164888909931566580710640358224293115075300281910917618022197367812823646046281162773455305745137160358471901368204683312662429401246382345239970562580305325302344677229616953017252085569151657696777914801349983770350395097580189325893543366444784290172285485590672284126298710741369726445887879515545849401121537461437238246620810551482493435918024887062674811049414242437578052434767840103205838759951294243853726916465954704516586893317163883439433131889221542397430520584605988858707577502983869248068563142473288377979377364867634615802738782699606393684542298771332648398112564556657583772016784583872388603464647240291302441057075423949283251159700439139937392270555667105153558917213382614358090183104487816890404575170028999996662307455485533982910564512141643536359976287303578825346925175110788821302567438316241315741978593604741396186143902318019767221345957795981842983019143878139321105445474075456156761507367677060467657566920101753023415579849352975740566982458018728829877819406715280114070909699598749328121910485433023334824954466410037786346083198143569578588284484893850323956105212115126413133313841280954380257166544003596570619422512761565073544648842216002991852837298089632837295648395947461738827890484439385303327147930737669713018076360298127059550573668011536233373745060131184022805931351418740605031485542337788829141597997251285561344565494126920438647519332703485857348920473960790199202498156628980523315076927571311246589000449565783096139430746416090313682000933812926270734143356846870051516778649810787358053873589235130025291798774810140049523101368423582870317322340677536717588230836907919007372446880137308105954873314035999581639727368149917281148552462370857048988508434728271870059508412639092719082077176479586214008391130159418870381352800750891759574526176393314329064941031505142638413618398064956601696957181184594140260290378531540633146200851142579192416705841585208716006414848716280528317372529593112777178243693234027001857806911164402422036459549322120544680058098278734189544846194772307545422233403596297548496801433599182516338598489377678209050182246964404132460895745324647373651955221056861522934594094171884263207483785130909519661091183195561601737279818914559233757057539520619034514415739356460738116145637002602770693081932694342444215785161781761334115121363814783281998042651324493683275066884615225818763262499421063823550598387571738814562239060743805559189495541293253296147234522741222414304363800371305761462004771678606126814225841719300727262761046282516191233531148810374258251760787986145216885046641006277981462123033085912295538448979781955533235293522395457294537454643336707558403222668771929664319299513022788378143688785989187647226740447462497511991764626645139563146485880930681777519207673329761690641285495328430849091333995811939999726172598221847702313196052182759984372428449596194980799087822007905740577934453496373502370968044386907877069863026159545671536572372601647732445096761914745792712710582778147344239248766684504891912018318720677971730230902653910607613560195281636234887717272883331931298426539613091244769942326324380052001323849739542504544036839293412654065929569047716489959913413846123518248150281745184303133194172528427235918921560184750001281763521416532889926653053472229619917501816097999870174241788797877796269836106857925829474183095417766553952780341798100902408563821909101715427985081469132933788875986644233626147287075653039544035518892349734449660643718773882029221443011029357492910779573103999389014365095659476745916660020322303810018950265308182556416091667758837507110712255957518905313402239100551943816854045631518803993312456744778228640506616458581654429431999948282975746150670812300906273260196125206775963605422488771630301722569881103745574146349571173216948089894207685781553432065684824263782708634531674079117042407744649957044500776057466646005751676003929472493276319908431114164867501439873118643772474365610779208189292794313368174263615309404463552971377919862833276502053266881310835909485521817421891962983338482423771521557790680549326299909738486616502160334130627718229685754015583329021997710751078547128985635134595460799486692938179761752984955762995804924642142038670550607539323546068272075638249412235097964878368971572486252553025516626180215552005251111539337701720858732998036171407644997801247745798628184004984148981674091995361475418219493611506909301187729231634774938580447194098410368273870095506728154230243216507462323080209908420359245694257534749731254355360268737365785027581746162643202728950361774520168441902596703953214524035129852532695136078118579312512415948239779326570466352965152209776490009236854533445636521871677111741771596303884752145443313501027363555411206558124282388599190056490735558277560803013907750859509331144316896777219483214439397753898777954245912486845393455278271293852346630619842990776889138480828151027014074982167756328331666646926532638738666239639144814540231602906793336351413483410573972207912429765349626316196492899184646203668914981340035527683220598222917568518233903535659600289284662463350251626401639828596288052804446451010056452443991513193801634874168773013132128522511006117545299494093874774659871757906583113268418269740300227720078707606937526440817007151057373514245702697631637369941114040794071812846179513142979618103551461008367251603803550946159902499081994038535726316776055466295899516927619253445873651688439703529267246712160466988244943719921710142033298220884121036081970421386796837098142559135681919345251480115930338633249904630110997733138697868940739029464858927084416997762220743589519435944211133555301977828873976541317289249267900954654931256384670983902611136752556324066531939840306558156370259520216207165086332938882807617018557774035317777732918568163186520132509523009537193482172230266210510203869575157828055852730267769044288254653455686743679322371167162881554312042870342183361712214336597387873022522907134605100262337438868117563443121773504883507706556338728981975386098644409437123957852974828169896239273033545112196863975977032784219698252061042617834048097589738115799717768036566869565652362614824884850143114328123021317669772648519844662765078623068916411691485489744582219052055127764596089316727976037063466817227576063912426986695811692933611644803988637021551323392211000379689680897433233323558048875456321335307017918043703987454238981390003776235575999706885499472113383176173466171491836645638867895776253017508608455115929023218693532497057298549254149351926196280874190203456854774199884469816370454204823689246338421186660385532617498393496734948520698676353665814890123643324109923415279088526139054554162471532451810677579848731180413828346807714890290667745621076859336121949405924480286577805564307851912844853697456151191776819725430754006978540655923392584503893521552483908475617248795146140734082617968961294934406467449032459229325614903001829116023941960498622818862215120106838454207973527829552941980658790386589013796140188075756494116803939038599390097491647103118237351269643591566887061897455371248711766476551797307292250051719382767917305581497656841044386384087030001720866975072983854119490078258028405332322145436890659372294275304168630601212277563644224703637517883963449402639394623724345438046132414860049230576535435368363025127745037530133047072151293970457469960572249404988627590398959232834901371207464190977063437190654066797664516092380945385264981621300970120354316709033705640505502316509220076339695375247875369138452991139329510058625713804559493502771222553306674316492846711016987930916737471710329748888193010937332959878903363993890161884067160488317509818822135015833510639206496001102363138423365480755207860751844531561752963662568978363839935113212178583327581758018810010912050880566662802822493909439253217826059409654866216890702671046012964780561592634082743184831223409769560902704064326707610734760208234489125152645029052519944552630162172366378300482469776013095924532458324830413406395307354364923126723718959113756847096337433765554477000108935572620030255793418508372769810902416106064604553765060525543208530749803620278967097672792570768529355468803835638118572714793105502986721616900478579159264489954756293111765815290554548821767008303519885844476972067831539816722526324815337205116675729657425257198605079769361405155091528667989151900977032406676011892762516537801003213595671107774361075386005673256319743652197604718091321236966809723593241914815580738175756182795656283442835858228448289208507685449750922998493903913530748405887474089545697928448587843865418700207045010055723036346850332593407027973982257240931109649168461061131336920143489898072057903354304924176841475414961696783911178753274124597734339978183668501103665833735484277187977197763632205988250348457147205531241875472208101667798572011525778153019507189391420305158478704798238748864610205477117577796359797463326815411756809799150247445953276987131054549414909684037795560731056057515963456772592038140996246796065336301429720492461625874790946617637391893655132973684951455098402506726824443874787579478786187762743791194064481883406015159186795926630993352453757963444545551990321115835629928845345643681035209597291120408729995813379331487449360192628458448838683841366953762009042366422818536613131555968623241306534607836366977786929628668569167959912292743598956366005111640970222966526192078708619655453003247149338131443213545843420699802726907797298674632134709485148074212034552524442368204684333178729597479855069882407939015866565040588112352166994342378760454713575660810397771439504226627635321222999035760598533222333899773666799710921032116005970290934682368412854984793499584721474887008064131485166413869642214051760323230605523730135742270194682299909593370157234150734235559794152423345008247625102622147443133746417707014951484606149503377343814005477074885069782865150839097574671852642827449416034224655108074945442538963651067548285853715490087983768005202272909550036293993751896844659335223819249946257572096818268272346766291645418213804069298766935063465102564612985962340003882454547745441059624826269238593715497067680453818687669615468850927277820784857082483970014521623370245391340749506673307777517046995618893423841246101448494545367696977346828658858854583154655009064766941104839895289664854693722462466757167595002899093577886446543335290264587559303183882638908718050054426470708266112587791096173805528222348771032223663270740072461211573583660628874628968911799003104147524522433154050307944547406793793311733917866620720630947377451653743877982094806747554331497948970331623047785838722778275269081039324369847087715879149940769243752506260384687685690635437364255491036750393590178820323207749672391523428194855498109989259456028496365695957030403111932007508901214922617066184723849957514025294595396991457356845733453001131203875783745689506302011248689965297030678699450494730143832853494102574040607821347458462666171442974619843191707077984359964921094199452990358623027245357461975563738340043304469153713621281132367466238191383274882869030918924602196960633533022979468762471539872186512853815769302143100888206227070001364883161573148717373499588466028508419576248414736350649115221531599278136282343788451052884736129076854934980897872001174929179929143734934452195932474012906436187239699964435561615305475984695525088474129360783478324599471082448103270309378653977771426441704942455614729789875135942243351886603753063397307005279393597794926687691633013510402702935005084568249082981350279531734091197438362194772990017647063641169620756811142090039696455898846672015877576054097438298406857227837181297098222854869611069433497856272399096379804585988034046580832286938875262031214288944289363223207571182921240643582850317285247981979099568701249560594993562021673092091486433559883750942454255426839661120386367392850514954196425386878578425520233043559894309528163401332819026397533292853096537746306619730229257701414808717309894054107634238203380952123232681884276492336640030185998323250306399482755833073996923896577565084958059628929146587414842026434543087518081161933725598000345575501776207740192989569053655707618835923448620370344066202427319214055151725871138009561139980866096196263702227805157541667181416499415677764021516784589892592124411354119163831167086629786926105578382482426385996110724404147134477994859341422577278067184990593230036266545104226437423394805695054886409634233665009188318020388408199029524873538177677908268485265758262699392633547973074406426125300087349095562750785917450108695757373560541974818594654308256429707591316072719811279918336541667381752010521800542160904228381283081098503343624254135923173475892278505110289323788410591782243596297416062979257929091059007794176573860509321080375384459374046306110282858869868162005904109461430622750825494481989460431237209668156710217816567304049234337004664053008517945166869255083168946544591398228343227678657216623219356147145067698005688666950655243770187801141566690563409101502927624154803793510857149669501633721031255101847050449303816421237490368074222325947126970136209576404937575169259490362058619934605272827863620161242373925863263480715163064746287362457271104919903649627164191744487197491529807959409341562980707630332758093011795760754598326254849786820229960188566096249784009594301826077344648391012813095913506010979796781816486323784000832800603265541163306558830076390625629156769817086649668833171211379912799555960169489223293149243734283122401279113800922451636961352113617347192179412643301939831450325744001900356625791713816795902392724541112925955421447316413376998285326803826387626536502166726838238395348913941445633364861950316791943209696137621817939320413205159246678758190242937134133313016583042414743221853654373922492005048390793612228978270137711926259274029749416840506238651980038133683480305117062628592106516340311037647675507388605103825558413799842285959626770191489832247142754963041656483566291060376804050071663164209529983876746933485627437015988966691163518085106435104018710701677418075784153051043184908038929881365867455515887715058996632059905063310169048730242778432507293866659033383773072732916467162492822699622779074381739232336643882849682354726969418584872312195083690628869932785242438509152900810539844725411875528837390931950133004618076659100405779609788083339994761723932591087822484484505822891905108726029681858421694571565932406721875484966723885031967723493171079745187369421641841639219559867109153458511960787057889654380601267948694943694313840218417415650389828488297758732333519988266187538454592444791789256710701721342133053345218741657288376470278571124631540562007582669848153961666207752105149448650553191091483366306503184562774690623431594233136120047414553373863455669406203380323080631544262785576352549783102571387345440192424046813551848926913225122854513109840484709064496305753880839516584875945310574260210024240393141532920673604095537144250907457111379814093558900611170975787115067423130137884581150335433856498515153473426788615105445244478064152812869395559659665999167231069279808853425829457580765381294096788945872111331019329627130638908367055832301939435063855597076002905914444285468796597958393546984627109170241565158116381852723803168555399654493916703575099044074477704039989726269359721947094353855421209310308336603920953849063593857990675117121333923719984287887297789867159364654099430687002428598640151043330171528167567708441495451644984130222849682658504387484062174009076404980508359670818868780643697389907705144050777852011100413411582584953706011901231490823898190282894670846396969000504283800139363923610352207872733401289233424667975684034018996242358474113946739184082902432348248872134193687352244135140754504282573541583122398307447933400039653323275371153078213802734571148419181753101894414866173755481334573014708936508986952535978643015711065444349241639406947511784017607160119319863936721484100227103886623671881080932273318335020816831316975241078264598510972989694013191371467029258920418613686968703377851507350113460156747863311381167885487250159611296064537156202217182020077230207898611259266024801318666610448341308769701887598403758900213874505160398284284356213353164018828249344902318636454959449446258732569043845085414260654090241927583291552253718953568843387471539105435369480057292289125362886375484614427395701386807264554728559182891184469195808097165795392823965137704517700021648414377968373737820583704464178894052329949825187728134786011497742893955753602746987425596145964135227511968825927969264836810328519312889765093419648838199463380362959435139575707452015232884943365725637244645472611033340663868382041737543377647765693265226198194473801660237937882225267403866270958077380186317088528897043626052976705151450258055422768542371442498139021016152225969295406253845116964299205499934658315698584512705146984958817085083976054873374036531753517550431822092295051848227939616136378855409806577554471104295986968397973630013450177260847057069532298552385064551380198277267422579635606029451065133131871714574299422864446168659044622643103750330656225405546285652596508816866979223124884264332478575965455545845158385491202412251025127542030118382343085983722513293985615996158814417264888542386259219094966837271044219158124280512617822930541861867468122825431959918120059145087799042730684274317859339568425701241052646370936764619485846034512876923344932342408743656781140230828984095391199773808082173943031097850943773409904413835143178182233257161889449970868779280891653817182701489816021250031061118645759128489804195366804226154784043989792949380311074961180545382196358381867738374851451585429977801134731344307503957501583453228038891756997206071498665824475475717295980013714232542515290029818824277393592951369521282348225494139751359776340357444837445830181938239128123254922398073654793883287247749689586376323003601212510627186993519089079187714980648715106511070223866171245899790993572037749745641366441616050648653398411792859193239977951658530737264195441907695798314662701590457248934106930074293371261913023870405279836508726615877275756661050788234477885249044082188611844559961142983834099741461783654143599871616757699088376953586387684115141791656257575394916335920221263972520835088110854415589292379314162011349129440259714610041770706891930435779858468270116926500303673133415928776993575909017040460397592948604121077252607954312594846534850297401784892850506592640771844189585486572091028481690270690296233712325127689659064366786012264195998341975139039532553488323008832819883086898730998008072123404654798060394279521488695590097635660573855307111374372851260239116476251499563436804677781530437562429012038894298472354594476223698961801623794803129709551611850041580619463429648546089802095642574938795088822873084677561011300951411987386759691154938771901451419423007870030267252023654936776153847108014122075974520245325370022046173303800845443439817857500545538980275727362599682294657677533550854042094594728226064821067825862207458767987696788031715799780067270046562092477959823741184057341921301378494096569096407038147321783197675115266376378703943939508540531321379004144755464510041844986412725880336160354526433284009355695087078003442262284286935587069567108942180702270278166733875346734797405175246201117920893820070412114318964948014888223031553733778859389051629097869493772840644352673018373188127760403282481510618148384240990937673125442077960550847446564655366711448850749384918626844811668787220713644045547926465388525259940683249240598532880848647125105518438622866630321234647118800279461631387353145514707568126570386522147873942464368369930574407742598144467197202844341868593009669913463137638011225311007692589249192286973604465600850157830525589278091457748458380994760206737313354300053553982923985671995521756656189016785071197633064046973089546899878849727708693818296057896635256111619518188939488725488251879874691589499145127553539923345731315757284461509096502279788517683010327887146763122843263946931841058252914461570941156794432030487407423149016508092069878467620911625161939903048166166909007543331193006001402229035934281532935764514606417870590469249475078891335056224242043954220016259947665213121872866949281344166566938147495086027055916126415232892354059082549386599486411679761974771819953929492426750802027206547815628629019733299520353303929417999489381686290078410169334080349546296002613420204951847746413596154211739093697824084872538851912981268713041512249070501240703322615594986982065789722601011040422020740877645630298195076393529731180199136240270756528476219060194597616435138888141737505790567676624267899630233498184480983126397319035875748531556891529820783359545415118939590404914343093024316133276957345766237780525819131795533317783753285818022482520561163266989507003243544750511241447076570612149315592407500179225066535734532398749876264982426777630817533419992690915871360701220251460396365516198580457228079249705490971291462879504804008794471316350323309833456632361832938629321962149408730770705808068541173520025339497871906094023254166519738230909218913325622361739558698373147049513500298549759434598846378313154376868281702523979843497243782557149149395889464259643962927607538978353521850845622643933142787402874639207680864722473355793623710621794750865589223052388117467378899295113136017120594506861364640458593025776457297592678039151386218083804764872354626942029836559793790403255666144877137282582297530628058096306320711785553212779350269991956952677956921448003263100876698677970612355214413687249980993283996214165419856417789128802041876940469688111238052412261632532881629986510322147516942683297014131521985078840833003683344086496234652479074783627960269700499987963697580143511709853706789253451297035151657002419451493282133909111325361916065826963499748094091380171025845936826289653924962035448338950326418161815792243125558807568799717408420390960960159894728669599185872861152292752574165457157743625617202879271316138093407034222772357382128996372786184820299568442594727759157428279267687137104126207563214416720489634695942968790084167398423690358976126446561618779821708712684428211719940721679592801166031230330802081163797442843651407781368543789032702205754552055869197113636233559655191479196722439999155151517161784838690342174975473572994883556710698300226823644155575506196544484390470099691257147311527986948923579562948448289826977105633816123784337763423902646511619014804864047736958199504246792229860807737351870637320874093204163087349541457864793490496695352041149831771019060009799540913642281239145365455742651395024161339136918984657762111408076574281796709152342895858964906460025850639649543813443627128400735174840582010590114478939014671204500898996272495509467580096646718682969223690308571472813778381278665401767934747893901316815986034898765316348205597532380599647884969352106979778349352941357770609244489558193741563531968571037945475923224952093735391329550691748377350827074430194381345512579860778842303119143029689919459485039575482544841285172866483878901486118526373829627976414095109852230035714952786347094338220167087639335377266200138297117004505508399580934666655109600575019979982423253529436245372530162407711506278220018669509331287449790631379185802047235015534706384073422315120832581062750303386201859100469243409044223456760871809815734467943757040263972847693409820150447914675235820304654786846003519182880377836190370578691004788473252645852256529759612481009087991732206738709547218634654743209012670242183557719885136263897965707692614210043938277651151457905195123850240720674684524121748616393854443663828746591490904061594774546658941351490957264459206423349533076648660950492891449364493428742196302278244867916652702783721020245057895083070962579606271497128748974687031360637801586147197744287963520165676221702314919551315718761458552529728579778924930080560529921000300853652733613580410332493490969823089581140602893134512231078530159088135253038140529284546557558564355487193236010669642152260790606744994563974083416869054328712679640230615158577276544186114489211129616420574079332060805076482511328347716548564907238130043660642004093179136105911600313359746016435196809870612823520142465845548174271199665239990084377831713664766591293911064870836884321537253911913102260881576364484290195724466615825534803183751380267709554655305155257558624824884108701256732189437052026149159732902451425386196575440113958930805510381612678645301727795769018689288978298641123665904837003627791339583689203982575546203232471566896622329914336037966694417450345563456355520333852394855730551724767834289242167590395295320011439651583283716623367529374100284135029220262092822927583118022524004485109020702428382207290879962693264269918395466872378216688612046316062024081926792732939713365304919010648613251228551584200829525484197738748397947308800531092744003879975943010469811021872646354810859311626034798071756370735651646025028378648554861135680800965876115639832623233748921701784148988086084340114033379625978608375398708044012783316509500098756461025001050073947662009850898889554953202974666730840548627939623473383669039057072163539538836240574256853317103169617632426205985330967281777876407029739157229617206831880050019324195129930155317194155950629188217084414443441421086855841019118057935270238847993647189803682593516400419550173971508365094647412358904935078543595442621189822332862351618999106309512166522669872936748189592503509238650378907296669807293516033467634242773159919450944679849254914852060892675876018565195341905229082179449319818316500772719604232575709090008857336878021179726184060956399292694171805744945210806891151326703265779041063493326611426446627388087561818334803684471414374117189511861879483164728225507553019020911464812201044889386721419653750553696336048862715520940694784546982902522480432040099462122494635433676234951607847801593156423415163250484725004980708159264552051268350865631051333462527693231820220031610024007019771310928244686485489775713883743664911645051553616780472785300810494941933573373061191913048300979726510977217859358622986319246581956095586647543989936924211504649626390524404321227761500947360348422304288750952568165803953595222376581233405598371472626350186846173787231584578258331141602495267682836691114615567667752009731025176589756764727872087282227671042719486273254736441170982776446525222447331572418145282632400241870962597943073934908543073584291770207538439029870226135349100195995196383600776242167280875394751828905566169784923862526234530508872082572369106643976931608174039007273547836411329956822717843054502558373278972881901015409674106142738612194473137836092795916077103627306971358782835316712056493083303966196059021837162831273491942778590809945689541371225363987837815173036084374341894120169696798285417828588785104836334597905545712774938245172551446008896028306421133346296714200135391734963434067742034937355452831498570264398519192125826683260992219351827237409299996572414734112926153670572180618842652374064356783857501433271880735880012143098000914046981896016765048012534525673330974632456076380695745988954093714938596077624720252599566140206446400405253500592675497185881080867798071676173258799087739478381436656938255938144537807032348090768506723161500363271267355020196592009236431290705704532576158834848232096753758913472906542825209960801938609518645093690072915846589244095411659401864141360552779073488478535623714661660471317027321185603027982884331772310945712074852734227228372712140610530597135614210571717653397712943190460921895963132985626557430093511304387983199780538325391442832408227242987471837190200037584716318615057040471173749188261152962056854799855058329698064056223917119295260018476545926002427981948013173794372473913967578494475106837062834062815331145561509596429946028808261245385040119943164866640933612161453859944963553193134609975458669146974817111250292464118666991568921899195258732781424706243545340283331465896693220029016721088014683561076720997788942171211260087506093352933033428716167667768681441047750598453546150505496984937546177973139733312014886289189272810904306907505564408923609836668026545089596271487130233955341309060688400121221024011965314729094664228141035139247888654717213083275359581428116415987783674549223276623121020101626351253064824046427426044670021232547293728323132214564165834417598272852282232871039163856913929558628769263900630518270373930572117033614086925544008875790422462397883314079898297415185640483802985634657991227537785432665010636657908708667108094020644643337423679252864777913176574006267675217573805230665796751570991942332820936592620123720212375267338648091912451179944668697561903071482065351342701669706987613049535132304080849692812954284485588792426844757193118780921447499306702828120347084791859254575422425837684656998022493628605170264029772696274520412945879399619503915630358864220614651112612206203699321217354998239737652329254883433974736342807855772302073970282572722588234467970140686704924410271819670844297314319807649828242276380867497877568354358548207831392031285991929613285292731502307412486711975785808656597292057955308347121179615655632475715534315016150775735757384648273027338177770381253206803619669671896333434860212423745166011981571205710975655999898128269199302346722324320341570905801531826674589649523843370989671545964615540967638461300565699304160282257239071440347243325193385697610218842320468282516285464916659803851693186073796465948513721572330302196365147539896675834413784273962494015988739885015003982636593442503763886658992031959996087115266581396572573819873928208680049170494441886916750879958111877147799146452924134317382476058486560846918951515915278468217660586009486926551899179968503742911766313944204062703997147527236094273209911457030878608121076013234866097962139956166095526458518985011582656464570096288374114009116682961294530199423936855809579919799399550985269555454196204789993504268074456178519389583975899210179424192488090968303643141288748965909056707904264095602802293842064960882770012480991427873562270800575519122359193016774223611404830901586298739658183011709285846943076523292771659415665048474222714178924439258133870982775128518218990921773957699329110931999661903671540719100972591196756802606298780240920631275065742966365417693754393789955028598587255738229180817433055116006127495869999930766871201418721484950550050127520413697510269701910141446061022195731167851263070953083900497627833389444291712903353320351518999242532857219658954057446150666629314954405671013008190356702478991301144884050745127876451292561502809573999559350326492515814374715427035230005348388451223497396442042693069015065438851592421301689543775134212908274541322072632084669164107632282757384558745888672275943677604686718463409048061172159961515626064742622990653300532528436724921669850506573371870716208091865914061853822985056395312438020503071416130270679947097300186280777825326853765577388848571196118914755058120751137353111515043799702891011110371239349532338575119530983249070832982109307745299654876547134472958466909021997712385729166875771398470230752604563992629476447836503641537472916793564279786913856122792145812069945292120556377641307633884129794433584610644720870435469749808204049777991490496312033129634545227123891510364064464250924949136662750642898748530502141317559990221829645635349308990289733996172841275336565185389450407773398155222531004302925771609840581327674815620320462675535458477055014744335903539818482363800959558673789339305111884988354104604233471491034565233163490874515571792769997661177220324573276789439515501702261594103978530347486733396734045788657741015742774688228453477025155675563320982162169836895579355116330989291999527541245279077085092886177565912167840052809827774149649483500913714162703968353525246208094821105342485566667471719079407949318839017985495905574898038081824845056993443908962522818997395996125121540324496494227390183461727103446794920143032326453031118073212792930033834931019669836135682172662403579764503670596629601671210546136232844870492895839545203650145822598472589912388304093613642725517686073565298350851131554204908413887912251007761404465124700192167432444115868050654538917713071668554685329562464717638977883075315238759760767645733405091327547949503818119331908650129843915696196379201104706078687222024096702756338987200505948606079514242260416873974709260776935163302035921864858451860940819201516403933947672447388598984399903513824237155942887563023063255559419725960842142988401947367358863240481435755677174909729625593977351590377804669384557991294011712681547799728344536938589675122600039302116978672465064499827245564974334706157259574107458242647985681150528404297135249801137074764026696298238184718649962947611650422509367377109593164349018503556538351797930983361310285603232945429910000019137161362589615953158970774154368711502215774639133668193725394559108735894262957047813680119384629160213675286349245653500118312056874230143573013015689001387457383227168870744186965510983586257580043016828315985061886929098966688051551801450025173310412611216946327090520319675052926248263301086459490195608667522181255736176397970475957035204505588190479781704381781147593194772116862461661535059065669904112233828134484387374903527228382567677364875964240793439239925689098781990289298810369698231523708353090802355879977048304564339131790803069573584405744926044088862090077618566234088114988645905756474884728630146900250527206001425406442710715854250632006662132213359643286469865380980008355569811996430982836005160362966068540820158916199836044562117745653793683826395411225519073757497654073029251049095959231163475687387060326028187569399325830029429408289835087771557216623747019528642815340185106319340112305903408234151379121328119661105016578218584740651861579165049261957979645791069898119289778059230477842233055007943850348221012111549399711352181401967205548033083526260220980583869213521838817245562042725298846240940234612901391187397462141844994796480790636238588329581139419643501833451671849195417690311619047667671729368767929069342898587828271701291037843090754244946901212537984564230284732191347597176343570540157542875969203306206697748019647900880257854225846342366089186612176588852223646153253238674454927392198925879628267372692353589742801692838155344174158982162012405182790333101919791060668734181418271303822158940429392263147523804960543145879472022446351590376411717246933012040679577005344254163027364317481056021029631546633226790241140559263346818755544498988650075391712253980179460683962880273891035863805310835132053032985423595401292950209208959842921575337595490083888024004808949404271332863042662984436878289024096010326310230427968759685680409878744577332447916829137629811013449953466546370239439106186836753247248769395713440341876974324766154932885152121785349044655725048625576816132318666507541953452731127607971648504977573404216500558656055652375801010665899861214343746907455529184607607197484628114533492135418487490144925038845806598584833779711529867763472289318815369951337992103719022368277401590220802230908465375945225404441034018259867276843827913604133523066685293549148078862901005673151855959000216789507754045655191878056718928129467925245137525250089477129501410337307659687826778861006650108942331224374043467827167090800331438182966235269586110482919084806611292108893474278928409346392072081331004478195716014644786362491052428088587120361953891625986022228105664395041029873371148625230783222833559716497997319395657928256841481885319102070072629367060973487899871699550604256978375747664227327596825542865895572787677011500692960061759547644356684756073093402281937913066364152908972406151462870549371438203490739992546407051771898279343887688974707197465524289946588149420937189243079589529472316134017222080893136322116025381258172864075178618329424289442527977975275532465763288985737854987880839376933523373519346998314690451156813481365478398473536493659007255254157564856382547038050977611139432129581957329196024048354476056983219076156001447518745532093173393251906139361395608675585437298666449874424679521492593341317072612919350803243674586069787799415411332897009339481118369406117315819501212749917491062851302604296998543640837748510881453230094428539498028421307147515188654174731254275434380060897213115837523822927001494333257807438561048878243918290957768877331060856811699915805425022280673124841540158020356176785440696191064915356882339097082244235866989293873629299153072730688087368018033556880457942015936004545392242901818971321248744797143973854088977697067761292423049324499548620505907813019931837517984989499211457599270203687765042549019714152734081078572199419841843417375959667726834740523973361618173968669656963262850528864579767218208019733548675983732831277934485076572996017201613467933171923659567260349296592168120053366987501540781100033603578059050683310381833022463892233083935154073980347236759802273536822548810464097536169652150993430110413758326348066293496774708280370921144352090564266302957018650402683119177574614613970487853505170371360356381789213708655345337254787599212892663884561196456979668228286872537893597534855944611579887010908561874044532244896845119486374621926293053694812157031990522348377464314107804084831689750048064683400974435097055031677719974864667592757077604044330863187128017498801664405793261177763371887297547997838456579324518725465783197364155019947462110449724305302579069473875741610102215397137608696341061419573277627286632269627322706661598638223672942470418260356238239727855014232102476572563080899492553525371329942054707324826076256715579778183323863061073554750799766487959593357345363596053056577290785396376075953888647391424980266463719492610794958158999144639941757013272255477903534496608307304206359798674471201358453260721453698362065331162643362091849334297304551966701869902527762752160510121929940756501928429134472305821192653207525280068813391618109364215575211303428420400054490533903040344429880987484094763678521559256616643997413029043750245332600140351282100245676759341982212573600144151706717777014301120430108859118373885258243138958329978431784097998454959632830156276190285581415273568458094602777112221906323626241463518631806430786187392191271811198406307828507939948201373776972985994493161024969953482203591209695620445956309360324819006228970750544185990373713939950531331418395730430489630120697615055029785863168117093799484887038698381199685975504653469214973537794956549092101424435652831858171488210076190867805466482788377600359046142182940576633093565458387579808111119534088777471022704701915226486083949332534783377416988571887399671447659049934177287384368504665531825620515785271195610887818841873722564986316918609161477355785146650405770947178351764968855346950423448206539109243066670580333559220413428758880873673789293264129963787223672723416994776789909610709061971315381176106091504119556736319743970199300629641692196254707395116078316440287603961114077730129320909595290727860528655397600451734365029069874266349692826661214818103853997513214293987100950776774301348405605862185009077848234897851438757856417835317892447571551768689871121511855619622597201658461134399864761995887479142994574610483952252341370523922921480523866274854902505632899271248871875237968223635515172566489596404160147099641338148825967568122727128705127140277693749441488123938609604470627619267094472600119654531553180779219369422871319047180942742864380462019389504073441287739957726105570844192560785124759041140570830193571482271818424586529927754658109838746258347289609976173034418012064855772185137918984437056329147527603563952266181012515075601526402315033419099937215434641121746329231772196163292956356292310725684278372949189011208573008402163009966949189945435388040055884466591385829251751402455379373798311001012378898724314974890644435806447291466820341441547541129711695140559291620929026672593182148107577951822301746170062347816281305374071064216144509994217472501097859865977118182053935148414509084768868367238186822434957742209663744489227910185345542574182417957704033940140774653094372431538107695887810324986070293813617372064548096739181659233741371874274250387666166991513687435254399685954694249842531059610554391152001653384694006022415628695243066013799442713987181856940371742908172768163869530559279582619445868384043664509898304937022959678199146282420026555908704608881257537105648750679168936774962743591683305110639112948420706701012783667684205865062301140865163776052614905197342507450653654431355142368840397833200912674850731311711103360688446835894580161415648287623700065337896691683137755445100164510104280765313703592942567837397108686057702992551888909645286354253063148599272841612010771269801367348773454019477652333188332422217010975854118363643895342633891279404127963253592029131985237112185121723069106912026441696256995354155350662658199167046474687078702037729530896344564525525809638532122550028265276132983701194289109569275515029932394938385341022037059523525101087927567420224424301398581325006622989497132927017480407090212277873938132955459336340248424680277631136785299825296301178875891551410660878515546495344613700354808503423338740858657826865807864389096518411959225723205912928084877088093339428309319552236096982657616516628564697452171018100748536092888002333937700704422276637257244566388546227795053838235706742035814185420078086770070717378092776869858866283352769493958143766482180853544263077672863571804611694171637872341433665266356726373728120830922038633182884552157363783404072756264804373827331297505036208913652271552333708407314267237408347001245668271284501074597804096461284085840657391804934163235371567362520006950448511691281353351665810126872645151645422821868261573083844424536057648706906735493683698587227042296709876025428709350142301088725804381496610689554191604901927287772651425304696559847273930186984251130574771220181684529765694969236680534785481786613356579717908635951156546820024362047102622765090403890049887554666403479423277805536640413983746953789028160963292213212764004671954223907619224116520673778006412959064554372600101128234080491206253732372642132281133553488251718511583037692183476438977040484213687805153167329372251733745408899155368063441193109905887715942053981531486414338169264013033204203433288645240938115754346835300728275660167322069936168291476638481134099171742506190406976087008787410339026950254215413468691845244838499697294983598004265991883615462363253667500382133914317542076184496635612594311610290886590053829163480486063963141080358403876460562861034174007941816420419429761294925869944701614846897154137137582938372076690001500426694643314649010768684668774553315798891304094324825045998224480349683889552851403986059546807689548589371335707556076392299767925061961577814676763688417117508796160698771920826746570591793802039347376526782415251445519224777770542626542330699308324183749166619376344383985736197836426996857771110191656904666395790889032892905130751851665413326841458323353542321004489691771090409119261146092752363560210017128317790347971245600778762265299409140214579365779470051306413765034123425069603656787629041267823891082822835426831075108273442726158997082468683014026569001643304649478289945351986630590709678138953164326064201540802850645848565874535620491737998081322161571045530279084289722291955755234991414602275723898247777723595894697982820459067227635784812082020108537948272331652461584954261140898619509767861364530270028898543175038791229980718167302569489387454007938380765742633578269868594316851742429637965955757738297668188036910151361470303611693421749312200249287489128226980423147719972242805600657243531534185272995165756689021044478130439249131676210020549451618630539452958673877751754057282982307175344284057135435753910315321925694083250066325957821114434366461762800739754757752211342550234055343759875118542156986619639370860219407665321925663862571175767493754533753587194719772680840391431553539879809040925781419837154848421939882392612471259857557247713978965142542043388667084553053370808277861874954150394619218887962346939913122073655570879401588367305835244641566059340355694431360338936659148469367984259279259212257937943273138582757012870990270542200969824313638740913280119233681965554407922532858349565450860743636194510973355197480934305721794652030330079065505774329647922261281706781426072977198902646023194451821330665804453148458550660411750264523200466557982189526592624561445485083497893797064954613708335320687033224693787110827757683153631511999160364708553544000841793684585424095809896710504996744771646772263475282312899854227471274170878993393379663144971734785929256573516901056597926434498090086396680882121561860849743773355821520200643234626973722470303391023152820271570164105551482756713769900982706412350736953180820810356911673652458690097911500678762285516620197201623979242677321245099840385027994785227694390393081890448362065758833549026728248522632152884477211281236583717141168119463940828626170450513351424055495567205759382404774363007913227674905030970838035302410495719476145970115789369909176011237501909647407139676559033762833227629077118147525914599266674130232913289570289638122377615791194804031766664163980748636588222714423333694883576493252803088719966198274749230943828315455543592767643240933981699823167086903506339343888640892019371851326662650446789388455443719476332863583792194937459747058255840044830968072966825653949388212112859911501459315029943574837930542594477694424421267553291023162264137273615264737385146719470313419465994820480996406265885182408797703048464980548840289245304536168866636783966800052235236400575604649838418081145309225118896530871058804013119158112714501170257747581747758023645981949245911917111744486858894820448644545055316517699946069913604582124288288548181526830070617823596172838097184743030810803079453074090647473746349398441939270822105471989169334452075091776557691669688679902846881145472808534313770630197375488236446554750583469189494345123839756497246288325903188162338582440194431873710307376501160718966203952259754028559398056762887012895712337059734766520431491011576041184816880858567559182326579916925122650382964644266039039192412758724017685978171376758296681687038884416876325704722722662097983275824384246907791910645488423325736204420797479591494107473804593068862379069636484221461165406512803803871161570171475900792333718691169769556194593275818176579477166893410637140896937735093804972098810336328429165561693333468897248390093170896050171208947593309776084551682609956617079021209057021542817235795554848949585980409192989860688072019948208985310309300596769426104078023272583402693250814517994649034043669581559358164861613123104340658313572300716069328377464059605344244913053405178194339908897341676323597177280580337801468500035261502418699131159111243155600678392327119559810916040815909460660294937824995373005120643107722649872238992941269739775427578847573730918269904273756949305159724509381320711500063096019339959762992229498816671343423699302074923175358542520960681312214703116019856371604084086035779938851292895113538194287892549801312420028573821297845309913259446567528860187879551997610617729838845833918319428220911480064651816422195016438411501922739304320434688532996438361119823930839103296892731450955724913698645472534796679574360854670915424821438840387907292983072738142328676086345234444642384196703382830891808332261306452103036819907876024644094195509889752113697230646651702544984617886494638617523195727572623250160372331365825809721150033920945200664112511507118143544755292285367533121720223055212711745364094665000652247407190474464142184213101439979587276315041244137908412850712328984517982076255518754047283230397683334790491256168255344654262894209837674765075388067937714168873110811391897896695575038938601567496529186456787188553670602732159309997661162546088762995529867053212143296090655662068132210030907886859895177632027025783709300448010376518110170070671963672592547792622287779880188854555192847644643693058797235960669063636361532021175718130893363145266685671950826953736334900389610979793866390478167148177850605061988151875092105607334712030920258091209194905378083172895922333493446347293626941870893626312219583919232763518336012154435754605358114232139604163186394722280739589765980119423721804938061187768338731077053494093544617286554933105126985455951114439117242821082794115915359181489278665225352824443478924112963986025725285778563619405288729811309427916791119620068719493585047982843479339136571632015583042473032214391736646968154610918945036595028748572464202092779294510058373749565696158426244413468707148712850915823766644683391219600417349860237093482606929762801048237435753631333302898090712379589511593832210539945928869547208141841158186596313658203484667128091952885727848073404525826684266409245633538348127900480325052776768177262678902731835608109032770023704732361770151126010813411055027649449168009479828206754981736619041702205625804661557473503237607411819329776834875228276745071475089379487568804697166711123182787634364972664259035812284512037903935211992668199410123467551017326879831487920055925129822109215005817095425384503197534556726097406258763334061110060092047990937090062136184670313358601075236195493002226541612064340891683882125595563248996067575664928664188311244861760316926950975614357804117063116445773674730585082333361931352183893606585585953567848009825950135199684002539537206057051852445156624850244864316336572986494637483812930224476877337347962849178930434070074735539197754335714022923425626839986504482595162503132340938627190310347279416980077131721523132120572224864492119834905891457702997014626374676340465176148562570261290525764860942897858153059677622350086536272164649976317656045312856618101916396832974055335315295956055964397156467936707977185553538449799457881741171554602423561650074255322949244927800472591781593125062183337846281800642925662005398780246210898908712766647815530039622010264484670543387836693055269815331090787844638799878316716789360335865161171497629139504385149826080405045245396427260376382599623456983666647141212563200912243484597421814110606683888744884041253130846879871238006189702143816816699324465293035250345864455809435655918711667860305993635074895712764116862019628659582737235407225359476069254760464999115415120041850552573599035000799625753846227410096358242520701147081403129833893143448730028525087404724043410356692372488554230344925527913397725425859138761976479902062234718302452787834118792195200941826669180326524373120497982308395432233574040330018039180238243404202215039308533410036664058788674748441192965639775704087813791730807739748915816089073079003650650074036349227461239383499708725361491069038473069909964690465352022553546412920486505046085208669351490075223230311217664123266370352792258876378927344030039748801563912503741340288227006631098134360640611870035005976287251308043252079963121754202201720014837428233885238912312045725983496016670195405002593990629573426071031507762230788082984474446147078452124064347455878906619599113984683370482208022057155517762073157812008877630652922724250600983972178250893810311962823994432842537873704846081660887547458627039040874870569221073259208124459822393897745221884782035543249668850915107186220998206325589592674610517101008511119512074570242776831325295958855351351755020804909781482745891833757638374596433912886451285924713230117477986928998795911480571792412645305448433871692120318659792582780664816506766133099674490708857830133741914798780337909523159988265127137418389768323967398816317398343807855266216226298811726370684819506240364668395928074254359308952111217294505225988770345805213225519832628775698943611650801579486253552776168197212985082684286009705411784870616848253674073440037525467099466206606671421320423441365424114731325546476451834506952982307224105423086067913392626545989966318277338719973260478934897075352621057100471389236147200858166618824268001840060455772956170606369537033149521433926076217236619737286602612022348779733196327992791088295297641380723083552071725180813647723679148997171142808715647422508060201352648227826093881565545145522468631014329499065622708345336113186405397352473258348486675687086615696023661224267261013218076620935558410962846666406747759854866482589033736463146383315424849226352948038546541212511432267422908868417707439148196451063099252312776031813090760305380260011997359583242634896356045179214833583980198406779863782510882074930238827941673820542498420271879564764881196939328270107327301142868044195939689241603918515943517203478134029436538044733307778704521018776308261321274867759927007704196993981226957090090559274421164870144522942034336161396604156392165250123560804222385659693076476575862228051648634816007409005857164562730714051037921981775880715585893588807652851823751862513650470844871170381215030725555140005695970904801809740796694523688294802090836472042172075132903344198490564906434187666239588425619618553454134947392207537478621585238132414779569769260127883116181394087640367500034989482164105531200469610988025196933298400880226317070793067346355718645619957748487148074048132773471413166761922400727380528670019079054201692534061920839191230304018839530874770385092902783804487353277280951570444102884769850757281939320489421553923275973952777785666548674803504999001238651159028624027619088776658489200209290244187628267968757217951394443175522978727935796028091043965319264440593183003184186367318496853183107740864168457130954550396416087800352567341417234706530821564429673766770995805857547264326274489793122774339848879221011306845505216368381686942555532844920387643346408773182196872290085806623481612283510184344454828626697072664682020550258008668163012693912281316385505526869542777686991352387611331653580083503186353480614303552236088264728792828822040804941195310279478310561738036679333294909428187539929308052886462458812984567506245880916512917946651336631705688850211671982305952846553109755364983779584334659990532844592745270587056785056822005113208786069502330521195146706072061350648420715871393478166442079268565407497579268317724607209291884106352490208294359843130768265159973986650126757558407687306055183092912980171987544994549526231168435993180557707045049990029103735740918192597587760779753922708781333211274540803948359581345362509832822984321789184839010086424340634131618147937633275005653063709010238170732401489726677844276177745151322287429621284705696908009986935210629856393542048986563695377114559348511948714512723033685977903623589014898123282994620116270570231793539170521333129336140194234653038855108541373548454700504846420483569513231395814001123335918666437250456585491455747532788191832503791317570166285671916983628591370308813672283313211187795114022971760377231046323350572505244881150823876495174749487290370283549990215835787796610119852467856550306254583130659657092020791809852880722279907553124278156020078702154444947956424096175752397337114893520122542770353970301096771199487954893321636863460646930117151634393654767979837787170548583378367646683276389024937713795823863818982741634329099668445224724761437200092839155156727133873674042760225497899519911457249002973211190043889674087522340071174637304460087200082481082697909158083509621644145989167256273033293731752800822302104717291475425740371980547394271830111683102363035976315040265796445380101849620650322327418964633988254616749630319534694696900083274760334224173865078543173022467712234622474799185991949107211722342281136724142170949880126665481954905540047014580625125421243512614402973235864309478099985284807218115584262879634228036707526318054429491281151856677043618876300834443229458584187090550339495646848818388544421643594674851975778372601700418780040445699224339538410143471633880128263176208587980625567842481149260941964930240250378351586173131250676387615993836049832626739904527632582348862081887835101162765979210891837737859224409100394358784955418531963204624515257448830513382283100997184357875347362336136121349536696117665170286437468215942911909796262264527971438539543449893881001690351163459966932311693148929848060675750368824294779789609617081514189147403199555050959625743415357225529281451853421823649500521808318151692149847040767852366982595811256230245622672487909438509075993893768808722499570760754733528413626543236992401406812368332126395215621766488676189905330298352442794718319814261614847721574623923979748111412013607859549974324195884522153191737210302807918813354015474505669618944004900984983268935978249386537238332095330962133791674181942743921116203951312120008480712090313863224397557163372330933414438376736384840505946243058317156202920714651074097005038110838024718966100244807021643109177539378724602956473146596316494956882881378126014300948308094221684926263443392828890038292415395958723638634540318682563286271904174123807287323142680590641201666581803082656239950525657601131300459464385151621585201900146421611993554375838879700654087450764488503925795672216483054213255099582066708901137876669490778171376303100402721098418567381918492839445082143750518536380770719198340479608489882962407805019669694849523461602632149669578396058742129669708250225836222785615074060679616320084383107942789291531938407514396483793761263316919571339933035374259236399037413384914510754636639281255563550621762818848527164886567922598612804617989562955833714803157839135418360100060312642290350184675538041310141863656036568608617998793773199936906445661791999339629755174843279421394414170677611280947424503154267473842129091348569451953965537789791270503007347000822532429759853350129308234955380678552561351746503806980646768055160565541160222247308660140271752076265496457073903368615560690040688059593518076068929339991323011275129716697439157977479844253707644035523999188745803722423544155757420594306463649538767066109108618266758278422269771387999169317441421979355412973121490795876712193401232369206580769998019752112439869134625521169055829955709166024588494277870996744838078512032089457414717534327715537307555320524375057754125956884403414728291182305780722712549398090459063339113775961720714965238269719579465847464196086831777672002732557141066211811599073351692552636799777284684285813428654531913205692940224660441599180377539064728661320659563198062448041037368681894196073239506504296150404624901232326566264247862935907764647919128271339992326211566736393696369856817757221647802672822127198537594659159625957135989693922588472616547116323172065534347093116750164225004554737531601239645474230557688263148700039925667177419875527202923138388140993375892742669739727645574214243088470046179116349906503203781670970703745500302481036804393253204692060337808343001111411974547104816019271537872787585674916019397512887351974758918414251237866690231371464863486298152785118377246583379807715078586736732776590858821663187784015817271854600812938072678421721657586059698634839682744782234158177411065596603906264382409820755554654251851411304926559169869564668027471648330363513038150704128348917335484404999986357341768884416848685662134271741213111005146453959783606921593177762250845505892708237397755419564835597169494476636437638223021069189069602239316271523687917390947286175037149446907942801020682278506883925663251251878726787655698691645864133658338640405572841909726734227892034489822119120788151481215442753513945018071038107243509391907665022856349375048320199374697530112793322639971025404485795023805728021915715130111266450085432536303821417442141107283278262387557462167386306060895392127670968029595305921583220298472478430521018111276889396683647378192153950783129490899834911157149786501041109317804616721046647527839940624151025298490755244791144435810120693388761636052283204962529146810130373612063175894065195100162629750803738375820911148702527646674902239735335510003210271760366986668850678253908378831487751041730500957666836249223172346464395290718323215962145803240104847057095900344634997940577978735543294532782599633643012207315702509664896554623786050406401148007868180298495350709010715469123871505261520455203257014515431023429716959715423847922809458614976151405282738632944207113523744848029391883082989332904846021880728911011282290452648100556745286770228108618271597497615386870655576734801764069141063675459844688961034531229601219369812566995006953155279653720167747648919753081069249597716876174577320283903080653842480231664699340424669867344798785162781751226071243473878851596779611630367489443172809504095228555827196622335728931008927323511969913797712851183690524134007235163834142014955011905739514056661805709086752979482599497683166623669941207949310913421296583988112873364702527742010561196086504069571385232066648244409670167223357264522251372334369297508752670241966274548871435665915341959810194851646509450358731790645386255324068170104927673283362872860616338558929458727529380118666259636147011094434600702898672145870243265773199665687631650948777504060714470918737660346545469457799729082681955928969902657390418541249062557273507415078937613288462341709504878494863381378163882545826500890442395297229151608227881572062999592505607194159415720028968725853678563449321466973673964463966216868202398715825527690154899485709550731060667955829155862591102873947322237937416299319203142133120025566387882696988790099803190860601384240069427397042281116788039537365333951796648292243839286058502501493851785904935189236265601278421569234928110334921494891277244043410207442545808602387836230620144477066374213747385666164083370725141010098508841693419504888624893430802412619867639372228481018337939532624075221691646091725322625796350176859168483063416950614311327759462999637437583998836579256373633075183858107226121288580377919379785573831882412278425260100039910593403221615298187450164983437786709100436108870504446593763241309640889026815048720952685098307410008213085108870944903567253333803491003665717102734030059479613329797855434024747919880393021434904914644361809657737957194150264317753030096001851549286845959682413121194357702970063881432211022938380742364124658742772276462615590096004152141920542902888399816266237520982004050899268298588770725733966927564766305552015828529204177342581795557869733536083538943183366331881566052818999573038568929887787055123570378098338652319805075420614999604672272567265901946466603256055906014013310718013626008038420056421948950577114918756494885440646290279537103007851299682781704210375166223991505833246157504155233684321255162770389090386335003726943172160105100278084245598167395887182059510676365126304775853911900336058884160706494181721424964421448706707089890173583220473458651949253358497378501231344074689503080624284563547315862801425265583779477023438893851992048476714934918002999766643422553575714417463988246034495795042169453829669766647983466123581730896011548063174310433386053213927494797755895136593333713951365113179472951026049915370931599155690961395024049449603440772821450445287659256821428760743502607915896424555401841315025556551412520922872939365378479654612645821248721889305882860462267440586264596987030506128014950278594307994792233966586615783083362329478349449252008405945946591296181606469527381649096837550262363735989674014579451066963469256031488644650563276693825926566744385149235010444339420994679592888108170595787430318480465322030564039929450673655857797887595265624127884038165018914803256485747257647487427381481168594923508407135242875619489095515154418067897311351711208962541861631797423507170467799546194614014511503445086062728832944987625235486463697405254083445314606976173664103426421116202025730585997924464384111939426476157995910639537328598118568132219241318997960451079418649548347245736423876751834888480163700370854902828657537743593426421761535277687940769450248693149331257094419534285061612143514414181185682233959359890881156271033372760685754002787159566643323789332528573344127219036142330721311375286593459883518193351931277035726598780619959250346408862259488913315957305484182450451777172369885032365181939053273866952414461677261418416496267728965812068653028245690542838514575019818132591581797080749099027555326557820730022682381683483267737153067087791580648171439021258097093632913298571062142126474024689340712083256516717588174219102916413288587647053743634728074799861448477606587957716235772865157176479166389517435106225939398429960766731995923132773038037327186419060998294557459473963467977639077513207563957562885694515507233376567890915079826589564558836646891444644366327766604082537077153691602820214928353891363766973431968634013791163408287104548277464067655345194359982106508205457769740684801897890909395177050576950947347880467645913125287305772809134119039695063427896859460459678722623238577529363220558563376131062917565165765960688871818964377533914512617202271711159914482498097269736016543304116521119109763526916262584829314952994387607205469947111993515987061163500329216468603263401204475105641887728870133194902649273340064139152692520700309596923980095659096359682593589718489128566803493942152483282762614855352943830825965066704442585719826487944297495268736938112434872892165176684934845121443130860551388131376691850900713009834000084798727922138280594696936702688453647204722635369328069457416406546375005845719519182831071546970958152358718323333846125147292684138527792095003733440314358528056226118899991072748145752444982500915423618349937352610594183360994581428789184550699420047089314850315437158121009117153656787106158754823580618876885131143007365047214863199859366264200315471963761717449101551764508597031826519504789152866947802583300326339518344955553421428150500176451251164714842941220734543839744805011066549436744732247100873768305017164788710293063518168926660639825205523077331132774730811189994820241440131474273585590203325391151860520359791799758581176164709412166660132580180646732240288830215777864318628690335052850491855265436624945585028870437840244031109607743069282606545932782353931478411834445669278182498406899139310754514377210226496892945085271647415891786310085239249686009944257323691271522165303305734863857897304594498514500447741990430428416891650795091732560591114840396457419381401789809402512959541863811518187765496243578945486000814996462748252937557306304129445120862702734135937894040417076099539121818827899916231751610499395913993039845719947980526997188316517175375647391049823058058804150962613430829985035371839625464428659736856519879435100453611218099001459138676672743951474419913433718063040359498913541950842981032619636867132320667111976247140286550510129150290259668626890997371773666105347785062307120686748532185472022184769284994361140707303310317779001089670527979437489903704198161086374729894208009402754081806010259181219522387187587959314190497043062396267040464253617421567068030379291736836954595407383832452292860021840667946617571307415528595478509307062170590774756879667900496269470429612373088328251485221412723534261399982542340331552881589685628079133974357036855424236895704951946692470366519787344798099039407548921713891862808126225056192020803685994755218638875619034044037577677892442406395664801698278536282490391653491060633410240688945678627389750443694145794417810569978140947001034455749583857831585852890298748730824271473566502220447289038448871752945145451513440219563284133767746672463910433345200898773020091125257933114309399195901122723679272600293422188314311637902016432007138210703262807335220118745142298935109985009653009584194246157613515134271795058896801417522543270365725818835074597250813989110792577777828696768652351995365144168094078314722970279749096900499841669583567966502860862644514625498796201789774818849192224506274162261880926313096965881224787549691140252265968436073725906052328364862173101931923118951179522243850531376012286523625956114086614604134900946063027320727329969497294961288736693720008498121540355444429688410293438095513302343655124626873821638906631222493727240257942237118934853191172331013690593214233532998788330913517743800910646537295086994492555365960510952565517158297381447115118016195044084518074962724181798199373176703068370518455011980835640828945727865013225899076879982994768587413022276025464039731981524616710808487573043574157764657221331738378490548736001518519652090954431752221742833193027948810645503291901593249101761101509425885105630610874711015372022542552629040133493717910172963936340727013473441718242451055511871866442029934912611370157463258046408399664226919792246900334067995617564995058404412881538298446695994973912380402935173948759851555264539469513824126287769824364137644631285516171526224809248042588149327888371172413489200363323544984829303587666448492299707966270163553186135064474422036085390237324545832477165700859648219378302470581919304071073157472394266233258423055103294624618108668538172478099893476713600626711316778418612334942545887820727791975602905546718463467744176053769779528930614196613526771125767306983158020850223269263140264890769382615660401991441729858015089266256490144402893430421449418989294058778778115282741820963125905705431845180904835931413768510102449458135506612358644083210429147540935880380720434996216288775144599547668224086241781017468324827604650492224932454098980864713619736411054920164828463377014778911958992036734321668641833936796686219577322374847302281261673914928980461410147538698755828703166058438666765989840244372450061856135148838280941380989410266813464053405765291421110416982891813225710594736200947833200310333193432274410458540734000376081666631809631317784364749901244226121309188777082795827282232617901348438378435434809419001612409011187487249648274193767273161750568441413819427410600689899320233254563621449375357579099853459305767513095501762386941792691486200119397097081327757996290526622789301110786165639402723801693767364108531156389975773210326203227216758461479644503094937624984936957947959139851062163724883591360869137986608250459709902543449951357252844561384436513299365726941701715560773318824353891139806338432497981747620492582877615969353645641126578083524785604508910779854596366850530590305169850848671138019922776361294524545272386841067292480185276001971563966419963363030444656741460965789547936961727088618109989619054267909763398515372828891335775978618539917009031116325705083532651488568895758737443249756834014688551909617617438962081094680749216048139420372654797349302122789983478728983387066304531534430085307163863821083637701074667972232288298118444077861600856832490182717017945781594010739098860739988485017171114435203027646891505256977996476267524213821828651879335975635952980272816749132012927022407540177589224874022183811479616052693721599969884806672084190322517552102909140697580057629743274816730197977645011828953412188317010483555692171648489821696663211185173740436185608774254587749147114431559200867513709652071845729053825981416029320433098753082715423047437192288249469125244917107737011490250106264950029446850958274307190607532344037230650676470220173770561123508124926631574333301918078547815653412139988434701849201775197932781244735773083523978229711022738312843069308486051217959732682554745351545395236351492715600186079243787412600348137968249479677286297164837201363176394654156344121589778432927067566585469528897507846535553600109860712301905302416949868168486344930867808214350215196420819285224913368416494584214566656303090675839581820628372757578124067242053663700927100748070147912058144523793917630443179879584647540459371512606217495649612536730768522099797763839755319664332497911411888485948970622546485568986406833065120104480454313212412816801473069063869667209565468958928045691320183701530860703649437512509138304288160692454719685384279141443023524746383492756034927893298146377297697549104911030076535144161054186353259921208776054221950072025223880667767725138512799638580480958861234534620951034189123510960867679869157227937636472446284893014348903564860766842860279470502813434837688865421821916877725246299206545751211732875335509658242684399644483427569748710420592581939161713741393569181504088544495880380156849087081080168400310800584938440554567315222936261632964755281294938350406658250847967731004324827236897031232998769861920410608182636779997579410353277363932634661590884812235788533439574542609781820766769892272945679559732636902370770426430211335706662485056930112237712723825955511795812539049669835917665214641181980479186875603985586175650365082795572666560066509959790314147342346388991103115080216935672205261373814377786504916046008592832546676964434538815729371073338360397463818386581002978597870684554060863187852842542621090645864101204028482489210950724763185613235660033154487611577243592420063537234203685377090566451746932885726130738895906456259212400365093673329955619412649963942887244883166107382504108423449958601399258067155259352227642921592458690297522592281331755217124387817468464922180808476527898092610377500766646343129696090495930998597832153169367714743568757754433454142056595957233755128231161798469943799616043569995897134801714610328760828244559986023416743804701491354493736700552695424905710992483561498382491605793126397185885750980962014627542775729941077525427795899071976721722807761221401314903368637060254327848437766186431065949101158270929424748686172378586436163985645126043240398788073002503826285423372809507700592065583299965392343197339917825113329035654814392744573774857327601622788119073928913357372350654211665458194572427499097922012735821818562415096605129823407574331348970097169970374258339147261410678119953988257494127986248134191551267229329335085718701349157116036367413288549188822393558489153461074802809202301681929311854628815800922194667707439775712238493230475132661765041687883057533604423164462791433509869312829813069928738889343284248650764017275925374229053793185578516681046890130664159803028345761768834014513341853394575837784100804001564030402989765829915593790067685637322973469342987559479962470402037612338422036374761572513372934119704640622528471113503173980631043531742756948954189504831559515901342850221039742528765398466450973943827632305929801759743072060707862163931395142355429022405184973635261697772693326514825481066879665260778569050382076522405543712946270119276663556640010880004839628296977087273007376412476732613325214385175300771807790553222616132725355945170373978100065153167877629546660761772403176904538588264073985434460335808140238849156847645050749528603596617984920537644635693140317250737098486056647530083311349643035540372112492671080645322678170549099069466137542061943433528976280821030647495316456178714552499101335155852595148211055299167367008184232580903462670671561859311974040176509901839624566612871843818084388250412257697670193632853638563208286189144477116573385136617283991782716877233503475782887922322551491819900206819760313258467445453932272277386659219275441811595109478001253908484927670930510861035323982093712454903209261623779831676924303971297648239593472381117274311118469561056953397648433248724005621043994324834871151506601717533380665810191951526462591423285881683468078137974881722551420732017555365415845842720549924406899004706284517386684259673161294180427792813903621426153388205758572708270924875085212260972221598886984464996595956182440055313009769939779017085544470596017294619208011275657701409453858420034693853992919852588723496609021358053859508637405487363924353775889254739702920688857834132715628050063759510574497580346788816365866099194586522005346969643095044029612115266748941770109300603254128590003841218324640330700225267371007444553087906247847273995859953612800966861292856502048112105522830931803272860574449856307196738526705758044492012233640786324212318339636990635742964497128439416928532614168550364985792133846009218763326136137803418950758261868902900072397958576795758466677670137815655504584935827266581547781029878084024204962051731966569871128086974380998295472072167871053874773762194407647838841388649749573248562530398873039134515107260067130833271333795293323744022755265784994842641139179599033140551438616464450098064074701292758100465230708550855919416696874876953057879436972830857586548501297471764229601625757820864466477471881012981393238364024757684231212436828543804642291579496841559420436560777381311392370266683712710814393948911767627643571896003006342630818212495637467095974229107113190301192038974398049615480872107320363542673760969301856338696765833359912913782902682526722561941222873574746526733552047891047317818695926465544673858379454339529085562640827122215789374108953610940369082781095840340896338181413803108841521696707766362860634494668012284032315936388988652033303979303580505966189046339302236904893988071680482969388114764201045232443447962527730923151468617473241491145608246061610160142412045875782574060534031827697335054161042042944663360724422142541403194052556206416295957615169784718580446664243021520524525043361136751258869911307355360487831935374986174962810982158037690533821883554866623590175390837170224379295574535948429036661181845337866531370441126266788905580934766688836675700302588272931162373642598115999797886353634672192342811112132716580808182445827369436761438482182304766577502060112252585229416018292015337492790261099726806622587118692865594490384847730218631837433659147656834496477761350204375488403900799462293371892405585831026312311097294519658343016678070796258149499144104741821179400072718046478251303557713309348018408127678518962173658468068307259489300893958774300045738140009758712984063954081782796070745550295530118723050980927626411901599927798866141410238103067796342168454100818956738197221892276457516317177880161926722405400765012231760828070033257645544397522682516287482709710768903486011283024205359899433570985736077137859801516567558129781434119879557647867275890721292429310721102033269713703381372743842448578419303715006572856928840149222155151982916160097753483510972649060185791707330800364874246573127848921285156054328592100045544965733160984673978384645917637522198167434026721409908064881767604419315046501746189116161659571428709583249019741203830073943245480368988525972370407865915978065212880021237649987382814859736588618566634239630442237976943285309269772129528197870123252179029917286408280626686496693810880253896960458944227792749117011696966095266941238739459326637550532161183329722207574262225921911761441202435718645069913569839706674812336956316012956997916925893576457461181154632394928456276721776514855119095589324229235611899842258870583741654490980644073471146529094207533668456308317742230024114119361245924299291158036339570071196274464286741749624194654219640336623318040454053954682157766536438383759559483438865085075576915756288786860856539408165687430196973480117739194063115748154391769214371635750643857361767844896697345299047262877575139725314521047285779594886153945460693331350439603197953714821421805960639409280227913414254097102299556404728772637592131736009485965302761342057225319591187267837764248692003505752227729061612268678173405656284691504048386180886991249150361799692825001874381032814181525883559171061834319051575061030992242350722418039971422323814730797667994394713741048879822524307075090102969575026717127734727214030817987467805447116981916850946586102683173531647425984686745955767993586297483515674307460639861690325018116319639590598065421023241945056096757899615277188896513640179751497221956309359666050911438563232198984109671320856454859255079827232455645581166945454739687126624199823319811311596133584606121201136956915849002425191439001419662018231759310336807591170139020518447514094309878287958542161348364144795577465377226608419319537455008364740954949857503659048841353258856066762099237708648261430806892514336343936229221230813779097962298350691400405943156445418733981298909336450329357832112808015802157790406324207366416256543664158548537397695089207892021069477268061002610783998848258859168838761852978323096157820295560336979271447855010006562602494475696344049808201689501053456070017980631242029774189237845322132336069523817268756568608949027069475003951373119116651711775208595975898160765263859502326012542277294938127031768910250403764085713629295764377013448117885496923372368275730251130013766939562068139269553858793001039496225917932357263948810456680657680004104228326844835670961890001279072218467014682045905198608123384644846043979655768147808644032732633408759667354331027187609373340914996009117712200150292411390387934567811102853018597786364187266178160578324773360322969707209271488747859335812493352501650295191818197241514828462106366112525081005279441204330918611339749551671304746743397581538899853221303480507434659156800588351550632773223397881122392024917933706025443170722227054016445226740570007216676573565066110398304781345024226811483636533843921247923723692136186418053892389083882530190084589457932849564316485716635750114415847727967185244393568225414025227929098342163602968791919523342885281106095177990048690188426785163923147002254765192004407283119810009816773858084026444416572000275921752136544864470405355637009258814121124287604998072700417644509255089037230868952448375057030036028972098503698164494453765602306116276686004330397124144534860079142123122371527829142682904224086577544365057060567153976120894223820849148004225784790524997275431560244525709667065666289967762364879302261477081287314334296691806499105590725855124711380941063249553869712093967980120571291108894970247837292370978569161626528434459082540133408808289062086029865533297642027807210171407023227129499236230007601523399691519965719067927149542583255357257281547416735300110533743519327250153510146823371546402790927216264023853872708198682495855312482561361007682724813152632671781899688888436752963620385123547553792604116515470250151955328956383167216584050254555777146053441770372663723826661436651087910197783809489240402306262539674521901352415564368503053185622759342986996082201233824177273978461421306446101677269187744669095247848035718192026117209614913521287028125191138824173805331580700244166980923417801500654240127612468568470499688672081600069573657373389251436960327776094173450504009510026158677349609328874968459154829193964439349807526069507368359229175988825628874405285981917861675875053737099297801438717493250041818969683029406203760659678931619850565699675504305431680848746748159883085702764959092464677107932175619348353755115228933271392266563738269050862941693066715772973784351128617781536850539931544421653372524976752859164191727848987503813600479199047361561316152560570590992498933411028124266383530328210818717554893719090829123504140130918835338990581342308196669890658485706677011382343337532247842790631559218630715890199064868917868742779126426909470097332738495977185849930433461193981269697432754526518119415009111648961590455129004059314676840924976488038999143175361095286164208814585465371723622604719378118688008982082492450956482208182984069453832167549780392308402316482990285295950912226585038874434507475435798484744019553374273705978737495441777977842365855176206724382997884800712131475431756369303595941444812770828614471087849933704499615043384664665753177442596272176632697988135900369874571607956080510702093727710757446439929592793536472490096581113289417208000621760551609721909674840878085058367381346029492784631979022166518077150361373169573529854009392989169964369459597252740358817015412183774888335603329981327580760894768188415018808309894535503847828557690391074265904295372712416749342697901427102262779200559536122801537855885946523643078078034615930331813248968377124112639379140545264856482017814029866658360274961160642181368412608564047305530194510978340742617365039419448682105499883456405976335602153440440689267499920836309053644182739156855458843428826119927002528430523151749963138523076833117605756268198074479750074933486664206705354308212208705928736171893959699988638720482856632072656111999721550756789254384675908111201664978658695409108646649087706164129699560766860664875201068310736513636866100166408225613378476397556503247377963981123520924708435313777785056431906245102897507621704598298016801268043136577719208502104832138506994330637203503911031899946842491753837787066433540184398501179169100093073424201378457881057119125527244885763126685606142187211169622274181663365790140563101669467071333472496407246274603038271514391030664736654445812340146315136119002560990607947533712372705083695242984510735731976755254549594016934005124192601325142705292176337701335972726964417760318348157991687907982718515465451691229516165272056044917823256412096621349522900556684691297653562334902502548168256322823748375776058301665697111262488799999050867312584280813273941452705964863346814001003456630893564699343986292833645035393887030742194675540798282479997982321449148712376705860918535303727856222874263951222057158876223707438743587311078465771920801528067620321980659546444955819286159076310863119896141638963414539608123326582228898230617801830744364647480802326082234417890622505307200166103342814645557863211877496154819057558766752556187783028233899978475232234595168248364877021523103373116256313211521042895756975619288964119580459304786974824459369544838112990597649366261425843224507280679612889654494231941032287960254970772768365440507675117623256370105056763121394882921005288523715722201346284634574338732905954108654618402327611589663086995088851302598459167132561008067129123892039975228105267845396377221952473012717010871086694047558034393133194899904427686826621186773663669912235781422973188336689914284302345751385055922241073998164417716474111639237902935849500257460926800458424178431532400260002816113291608927289343935226757486700747820114139893135315413780059075575740202979150465330093399375435037334472814559202822998414377944068645038628655606712661887543637060782680238753578413732285510280950888372017864259994297042581872427261029678694535361501096771271591194897925582210940858618337598844529685616185530615398763719678453303274891263110118710502838615941247588483932548896445158800970856148143871012297695198772173968055336757321270159637906909239255507529712227289055639422238580894822593910433131988373501314556752447349500895748309575305661526650262860693265179716957130566573348339547679008621001405699199826302520176817081429927832514752411683110070129750220576142183284481951931509718700322891329515056015946912584266603570672535015204252468534787483994250636029418688429239780140883356615224748264003666717209632816924507261887970001240075806797285250651907023488676949056972837286340054097433584837544190311165939034385865729019905052111137274242020134326356497995623573220116160949115562652318310952851713299576038715236990025621222147523439604196580198053370080397343730264766166687541677592587882056119066625607643520299936122964454728852346495404518674615063664730326152473947995130852964599227961140312633394089787890761730865199541735640675804588230788337247180912068453365390075222473108038747683631594749678232378778761042681464481560656686609531874580163642350867281275728043621012532874297623947021244871998037164394061141274299261839568717121085639988358608902270834017483102894085944779608293452248013811819171411877958775555911574838798548058671411565197100183244437053350436803667346398358277765914475769826184782241547268401714044751371871376120284458866175580077270168311971377005059813467979501517867908166558282105678970092781393725979807383333033386672940754198425319923805421513048925329312229710009184680451181656927994345239164852570375642877315357406277648812555594125686783849070401933392912831951980816081402725492540748002602458815484880316673904657192260594123706908894166651412485857165862462535797827491078427911919890501213825925692302529471529014422891843398374115513802420482597504929198483940226110040662310165665286923990277998253015504838195167701152439077202367236000098598437483944491289635244918707736532957382363272889289585020508374711737995485831961570595917742266821419465167780964647165255612274177351582172845661494066207092013761451719724766813877357000462318740935755720170922546068298171013722605329586519982204521192728665700102503552136475578201030101246504434878312237314810578381617352780512967117355736875719763396754289939705751210638189833789058423054957831193043255292945376020881238393325321984004230659099120827350716027666793094262871385594416880548251042300215230983277877242592317513953806765713167474325687176202948715442121633287277634522323758383970102875019695535542232241138937952486505806670461561994191825029169155918677138160465134751783296943240201799833305513503105058039782252910370805355714105704838905616100360261872188739889245024937145806822427724244005612843750191148418743690139687969766598924672568578509101377216550252196047663321606029401846337576958887306843588006203127387837448993870058801051626655762490619420472802236861647794868481368089417196938220129068815981199844861813484104121616594163637729207802205168262555122348911195152256771582879898455332841786831484319452125596056152114575639295322262472569686103139215928238506792622878564343467079829474630751056525160235799441465923111405724502435904797403284254180081809002939784723327728224155282619201759946475450798540509264893384766933324003841763166167099949249226344706051957629470428170850744138706097098981326075827153284155508405377128420039446866455168282903391971726159477039118977818269040441017374849736281335301250528695143559613914734508306585036948586710043177704909659969018125868018231303544150432935956877798186447299986876318075470652834859131746328967882090044868988542110349222627715342891206801907499660972775292881641131671130204063928549060509728848264262630775804487250744886997292938488898218145676087184821614131698210435786244933926760155106749137389482996127218577143386743067525534980017448314050437331728404674828856603560112557607465216887508064533130829678807256154678761366574665616846389073843041998533565123628627878939264874722691207184725304517620096720713046773647650603868113070182990667115858901252006225471141457269066472641070331337788051004206211224564358388567171458717801363407469005090237088207042026509272517171621186607551547243783007154760317235266953354229568508071368223848795626548423868632196063669184110088680857459766458211083018449864724276079435611109515358275046113681888012292704691398761231403231616835036380342640381845514045018738338069560297939469145891768468550952987155760170404746993730068050632886109741299539150511827446829604090368832495239908203773491713515168691644994771515692435816734634826111976114951725691334558762596319979331917842851127916630725323023974302232673052879821582246673570419751387098632249391075537071602576577937495584322269761176346882995135581341208624049665389272002542905916169063952656274041471473275993957357911169467400748163197721997216426016480799099451628751068475840693495828212338576728050993555780315036454860731005635647756126070279725464772242640736336291247841414323965173802831927049580444027550839338033526199378224718291814026302319279300607685744085325253363327922018819255272735975786768184439887140324451716972820338447700367766942260413993641338397232686055402688973070882894215152363483580228479972493712177726903466222788329395841636438052433812534310281157899843719466497699303824021486558217724649743569429837531402377481180993464820890902350190089639154163385857952930454096142247239080688833470792126662205122230276807522568801835071135500700099159145647740406871423099131279548522959609555990596686434506962850874048148618729300251068059998033364928654267352598315875728961318888220542573448064996933432590909228088307488035744578745706775432466212518862310116326935831205684264203305936473191150323958389803804720237495439896308793339508198537892396044513887588517510962378586804282332527273179003351194960804372058737100360833232031582105374798671252275770051674900713005851588560588379494334115637818042586652590777331051343508945637841416385885769814788621047605159425375515469393774931991719369257716461821000110237856408715745076526784007993537328547757001136386191552144162746583396105963586395880500555398831082265614691490173074771703286460804048251876592458553642272052439881502510187455920807635793802468491981003717119245313982998161179205188105284365296656273889798195060088214375061885629558692963753588362505455074110001033783188670725882181325190399786948099438193585905290919681068864769155319934157776628014672343517850971774283144011564925187791547000446938688100207594563638270416762015339879811117997830748499099259376253305310259768979417729465867551582156579653307076048415129344461769151832928062989978608290029406076590631143388312638569480369316843851516890985892244748872561421158394547793091584893009503058363062584540461592121112367042288274136925802517543486361559329170548484636759078555806868362150937070604415294395371194339035884253512310925846247728455092563401107614579326595580504532557429981962573815837579018736238282343114112436262249966060014590414396600917448296191330418997253864762328865060095902539262910757253426273718232086984942560858276824807418093290016455713821537977213021987688437968884377050961505643659477455230586461948066453202259226237875908296814938777230107810218697707222238936649145344242237989019200274915924380495669669610638886828820618731526306090941109842915425813943216029501711184399211967263371715860838765196416995527512226700078846845084678306682014639674345420760587439110693292278860504687705510407663345336218841549315480469119977969421135424877869969995712878971854228143041244388744464865846107264337544968383136376328586568695633690528775219588795996198717946737530541929836939265638051136734254892162821955737811139211191785245245703449788443330969366495430818965173718258116155009415915158592813510469894649486337257569632248036417056534457743848514509358863813333676986768643922583728643654564148697568244607294150548628701252016954533451924958768277753745469893341348135707784652051382241757946033350608652017127624593310422149505505647218733968786068216008873819816973235035026779535873782755129490023724302347170537836854868425206049679870236677846221139231288721510840634485584151857910626239243425480180195600951862269360001780071109928968529206178484196152592743546892100303773642185355251479596664295776977721087090962899135854145047460675739589162260791563393173719384196563475161637400182010688831182419515098437001925760153026236902294994079609049358009136851144763302116581568744786124191235266680675069028484288959310107017020963911513339740105248621897929214482102404409692041250033994094554175527878744776678082178461194041129090531130907940975407777955972784098944334927325170441198795900045268485053670313352593252566375591216986930030742631644631541208374414189716586798268615222158506227910881790395268357341600139958482409525276325905261950505182934306729738707564345922658855577484347099624000323018566004728892377975845399456743134627641709111484530289304814536119775252381436285240512685797837200405223648581922758512751093357297679127677587780040097236293230659512793431840832098461284020738385299927349061815934673512030597307145524911754870557094270183352464903641224107298139516004016958437975818177611965739058057239375754561876666905876929518113285244050050387348809838362672962472744394978012744393258318757518224557340228427873813686337572259700665948637702909640270509190028680469597620385778119423696359476530907982419058093222312634086588482899936110091214681869806869303287565420864098469132355843502180614432309965627040523681481375555444289720270824568834436985287998608661483981497278164243712615592874512809691458980729892135672937562375608567263463427543462621145161589114855539844388854751376113507388536641858389015611527868536584774700307262626974094107601077848278923340910597651201968533377282793147045774666263629413060773356839987421570536955955894526180826990883660392408787186582240083947425114772931804569117650630257214429175446690631556931515106688122665224022101300900718234109965987348481146592261499056800025202508815746327194182332959142344291634305651586316698003577862531869325510291303844832011249453188994311125826306870569431933407420967781397978098356025191371078268979175707823895390050103365827167955651259352707512130085491334169572912876473797107208240906179278616212981176727019152430656030604006902962358017595392187873163244904745308187707415985625770494685182309589088251806751899548795582218679656505374682696907484087997472453545143295512828676821636623521822564343499968435578127941337496407378887303227247504781806434696191238355014489792033486688027008464508442960037955147979429320020367723243265632682446558980887620403797044611076588805853228032945442627104810849806752297228252269045816592378205131933664468014311837618669004698376209186341544639386150178860472800245721596068086436877079508908751437725769167047701530043457823506199488430378116529491796164663490231757832215266416067028512743074295833232800818480793470220444146619290000478694892648329471092603778494327350240025070319604835294816084489859306870716205596923557049452384593719266164686139817040409479734763732532660191776774424410335437964072965972710075417217428404759207641570365307927786062305619512809182683966224498658161136238082086259373682771006700594719321453610884367695574911145897806074717059998574362996970790563854681225352545761007755767423783568720008773974810985022786673903721882755124063377141948440210352273745808858649198124621494319256295679207296980007945383729504710411034654428109631547183388868839002742104394227495998948724359567476444940662609397412333058632460450470218364880827494008067267212498259186071241369396895843198188841493853689287722600691191562756383863508969368508374658655000116296424477226557097094474138396100223652055849359280296501360248240957068229351311522239826011634611242545627251839260640517913399032979469523028778633507493500053791541585565044064819553821859936923307273472156354449579725729220593102040663209246291352921853093956852716861317016793997972307381748961690060908264651311759855455660200569613354529098484669482998947650086799160830179697852123334601474421157553199163494428802787732368703617581589692032252618647869550634485009158918590483883757264725278816866190275548424165271131347172055862162090735692265551929704825508976732752493220077696451843338770891956779025203426279064269693237982446366479299713568574311282916317521022989781923531805250236771060845840543746437880414550790115618941581878662722321092112403312102068031104308402949183980101728919635577313704212671816042927871843575467191754742016924602856067280619636847101230719437882809380797093964011493088854983950807438085757396372704748727805227111515819654873224417913724532051019781340035547304212419316192856858008205177731156299466164619872425989263371771717968439160921822674039204001894344992776608538639598042968331059452321204921141546407040508123305515943223654537960008691842856025339445172491222890639609972366475185263566086062037731057312592863093156031972043263145861712122688076424764744122411594853059449450859146602752244807009319331099197787679696707515586231065755281199315287129602785958753593604986528305147010346828423960142977284916630401024061234287003313780909595043345238901095468003291628088219015650617915508874365534430611209748988654615097540435792102398060133142271165093795352778159947551978439971900015078567209183344060183395834955737057316643768389628172630873714206571068525719429578105985009306788551030426807176810476513754866781503100419834107534092295650048082943417271078313884988282689298617258476309013038333469099771960508602740588587156706350700116964169175709831298510257865466303786512798937077323586555906625091087972501158257266032932588116413272391966774955768333760761165254571421208437897880052358905698744021830250256083460197730238415210338501296807013175683183927853376886578634627702850841158339704620229030312384299548061425322108146310643316779913800970606232845793403921971666289342460062645508811559238411577492665392807071646104795921720555518435857086110095308579261096470451930089270687064272140336127462520225455551632040881317384292129523156288505782561761119660742839393782266427173519528305416908718431585824565469419485821857064924054536618527388539336180454199888358359756534809887163745127973486531240399280234783078582792029067255686731354416199068517807911444760302643366596488294680608583658363537791875146453123364401253236030352450411577153440702973667225257495017036694817062332133609333725134846979159207425554598124883750647326731777878833350355820741602800850019068550728913976099324041384656091954887231743762232363162755598786514171254999022862318650397529459893719062120929074235635424952175795059503041073415299959093063847729754341912414204107497423727252232556136418171687579365682008933020018466818866329007774089102629958696572503227800754788139642196060941458791538871088249465576771085675548094379750181428501315085875740641545618240918888926241897421212100190648302231027071053699138423967638656193277586505960992056298751090204213874692427921163783120573362346215392809938980984872273414353999650779771809782996233900560127621343848013699289136746239377774704038508629971798884709626966908144383564299709388667806861796609116768465110405237700574822658159586892460846850462023625850136300254194207080323638859198339169827425638594117683291783297076079280049147020766575571206814687087476964538353536042553230444839800142645212322121037565516646703779791069270380819159353049401633375889616535243766259747576304890009427059545004485433909741107773561771933505397922727299694304302831850162747878537859192897383067506010361960649068460740810151880230351155755706046663277772288927877853343729270483083285619335558768470005430270951721007432816895455494450842265059664864983040026573089724195711188901025982587128939727018189516358170370906712036074387435711001228951673967643503055220341198233789222745135313273052820827873196942588987931618539343184405325429946164850970949594666283432426916125942217776966252322149753767385901560444184438466391314122112286360433800067905192696838173374402398871544759872450941384998888493092807148755923864304673961098782570066893801861738607710068009381966946187331115821788119525106938310133407844537891447520860475954410402961189283042572569539228665303405854938942333119449145204507660882852868977357013121454743811417816476731752352104156808353921044145950530278888324822138880319954489736699258406799069918770332577748127845727364988406341417708225920527532759659256827333506045413901917100401645593670621399938932144840883861294610919835253535778957721713832167116602045804388562675834780256258164682950777938197288784504323515991328527594714531465319789429835603814582216270290057707589656889624762504452095654801575549636510530939431025596799744599350960904269297691977233129463166296007960447517713511135594133746370798938365246755490830030146283301957480185853747213704083961668016388378149405184481250135629817773289447273326341130556497058835789809103282581751560071230410961805148849677616969578258286590953178338891306430598220084344936532781725164791180364872701262933690441517575762802837238908265139791027545462185986012983775257536500567916562397649658345658938837347296202995204301981426316214453452045077689826310709896671790892543347560598452553246758111391711283586746835553354944832599588636194519909399616872726531522973184078481759727799424157072168700156584925125002628074109446977817797881149502952872884660830561812126157673406422341378745725147011342511091163544247167434890973123655902943936876452881276973073128786224189050073509565426164852485043287133734393956587083799883292823989038766099005050914264140769970619069806543320965554869438913114022983829559579147891719322815443082439723047339364488050876621021633070061606350866615211424268820391364204375968164477221645026958513073172162285396457767938953733397783145732262315610817055139600435959307800238884838954802816199471223690509668053673386744287712628769569317226091940743735353510138649660403782378473864609180538321471475308355180973784733606128853617182301556432532613484243028599285556339249877419515433322369628577974593506528535829540833812115054522969322402935782418321277515696477232275814083683946115099819853345530460658720095201124936348814211669932703968584364672489362550987717120369505874124540648112000324917991308584233570471320755208850003611642432247722288112918246450966617342433098797330151565370186969903731833307013296524023794939787545513302262239095947343271942291281376095825948403675196478444301959086285439911339045481924178794333895126527833232530949695141105504211112731459204380945853065180650220368413680857179570682286865660946174725921715799123336740893737515909231722034187078496482987031837979612078717561407252962637089700865101453593408801891190254142672275808454678171474968627272386126580924408321448994796816293571789029029523954910181844688432153516897273569525850629000391253868460928692824061772760363697554926024368218759767701627222338725579760439137442205078217285360105086623543770100341794572411881559014092310639974175126747461766836409784899813054504633793265505651752497272223160452760442601143875582117175878913935648719770931802316087955062548490301582349009675213943928206053321231336621376888259460269430057407494073245180739547200060248545563760846652634929733679357345828816116075669685922085964533131627554086984698613592070768865337370781014678701487051386131232769859404431629316916101656540247987225294277100165987668006478539658124562835675648840423100302324529755287356144063924219570009344877943015749516575189234838510542623002302983681378503713036181861317198082228998070427014767417850887633762321747905438576778711591328593779456405119155023424681199956159475742742511233976484017128069644989762159627868244491166757828863682496512558193461235044785724026673222961134442771017589231395718755794786189784970124187258996557203203248744540572920048265692673216047639813363304807390962204723226806297570426155702897906070202704263236280525339050867859078171221618736130742099528822606071666033301701628807623331314582344793672976577104131167000451334812371187883047825597807646307796006922650290366085522780054557527061358798173007723203948816866709356268217113528663347177761094685728433799344819172759390837595867035396574893335680763849138431299869645284482394814538737505652294275922833664309397550398082092895744368257819233901392361812270068528660045437871615425274515782829233455302289372573704621875618118140332537660994822757018924450521838603360178244895505223580472263882230058029053513944569574164326547294768363479726446972856937756958571268920254230775611049882775324566566590792914322407560180904077064889235691767626177285425314779575494310924385526579487185702635888864911389260899307500013066292094023469056909108915210170779565507117188321282311238065596668871378856345935397127626132470629270740439620716039113215175686599846427967509837972994871027132807307505520119437790417876846735192176729293956599125967929152230288345909964297026737467024633406883046487633252255110228717745814874829684494483816645154338527995837919068019824178434757641313416921137209157685607587169026811842540504262180328223629702859072359167457079241289646830614885037131038879076248238502348310055935998632119419601093594020085131286499818847503934056550045299753777775465614134588509419298574702743246046641399817663763000997326146035669615417026605691309020175521479005140377156377975564493261309828523493863636714865812905511004051606298350713263428784164020066415636907898907884673247629150883447393154561418589311846653053866031917143917752033561516643762447798747012728878765216689653546758894024659120365977809269156165668701963034996796418218492202201735872491308149076468682662268198322203889362296268115184698129045046347180023160231667544221687441576419820764881788897465306107642537900456147219487374950275697058660261096570246253854774729398307997610698897039114059818115695245421209187333176395193715541524036093514083987458331821080364102936535794356372154355365175035165169333261013335168290651874814050970929453276563038137035847588066077904788150709127827932433971223344387622298311135354455771150156888533857049252645310099740981966239508893200649785234451096142097667814986116018382814296855930110074430314151486660678493833262887882119909026963397296985348112706552388067622641478013488772622141054088264178960718546950317177976535905253801173465386503518412652144708596989902609437255268278711805363979690757583598035754186645814248605303401810261094268378738232522600405152065087785815286975945581485594591907321490262135808736838405515190008674913571112633616681386768533863629864521661722262210709714596855832496308164682792883937279830194243842248673246949264360991011919781239243347156394966518366411931883255897479824936290023280919462241290262374640268377722984464285017075306765178950042662047031412457355326885181063377114782884403092286322615780783455185413474329595052801732721869846450333037581043835432872827503204780614112375491107485841518435425644682830702083980252914541253684956699135939984546536841902358731929321823121005527228485485336377569121746960139531265013875751088371116168263054048677603980123632122288469421834033593488504377357582320681430321060918792833684285799584517258208344214931194096777041848955423901250449684385192089749120552673216785822727583713149954617853852763046563298690083697544985048133617867213605350747444244291937834393991088993996447215307036110058642270945105650661999201469339156078231789325344814429756210319514530364907590621338946017506193109101040138094273225869802532176605556434742968029312157326018023762294359835748785574624315486364636414745788124733037236497690505688836332569177268940573203635701544807486372672377998568843309340476647291646294648958945036354200646507135068261618119148136257442486932634266993997323600403253155875000634466205726573254594058683149045131558126168248743347478769160389332264812166404691424655538929422187773260285231710739150243106800330125357458900957939438843210731748322216671781647220683230013457122192211536407300587210774544727643615162979751799873733751125728281318911049492015642046140745047717608740862949267885223217104840434427329792802213784913808342963594619940012146406716147175563864301007852364971377367148350719641621890326359892444991093986556122344313576898099912609190578189555937821328969069838309625239937161113492811983660922720576845720046015572468199110439671779001990609608276330978577676278760073793979908253334153551130373459619136388683211731101769009573422492543043434675417120929001849663010932291648507972468621053225062604677142044053329472237234282004141114405785780361620965477346524156391838472621155513893337800198635940828566277570987264091840365179319988766515401477327280708344039709374682026529264223301503332321535830318097229066418900409462884293538800264511279845089782113282705633564790471160154427101800939509223044614461021002431548593152257668434562569285005522325230671785699228557989140753748956402494774748245104746896486058808961919885107480907185478273094693573605450023783739228928288027261297017044186999511220951767788103145805482193312276435372735049793519856567651682926397226906505816705000828691931716696986582078619257525568522957729955960986539240383827104377553521490741777979937198763357427824359809953975303139463771175092940747188603704309235197867889534850853516284682463727709048533351856465954931731683506293794786805825867142004757964422056982391254589601028030974056470745658578001001985875041832425334494646995402060990600555349488183084544830171885956607973425765846532492630888055989512302191980970024621426193789151597647049844148616517728177273401929642242087983130916500444998375920863873804106881036619487504451588106024961447634276853633837002021778576426474645683668953513931964904135054643522116175215341080533487736230890550642691658549027237231584348175442352542807149786143712899022819543043446889549154036358616156845071444735560723981792719558421513223958137188502794442931637392290977018621153446081479398690542644635048956561707714066017756608464850554472485801345317565488927269562553379931011615292567197329495391261646676105662204642463039158173494762543612016847978874107429461808360615536298317727447732390754810133172982533546715762167232913284968634307644380876631837980799905642477721745912564712977202777456581092492170760263785134725718146013612311404671950220412140776797701948223722059863154409454011519836658877305310957003179453844888791340974639811767635629406351731609178058600954547240836238419431484237404718303469779199562179422478426251409530796516952933285713029370002921499977311777483743756069942456981143289525434515347234540440796024816139112475247654397580328808080678060805286682522000106955676801213599251508435703434259755637902277699497013797934792324391899593539825160734982234978168400396715309077279098254829876572588097224722516081944086242428012152158477415809136948037900743625154934230871177633454228609471655104506915035998812053861463137591609179090437527399946276121486919012491960989672821237390112826480119062571763995660573639163351708979729076155208739137258810288862724388807902510596408528291043133286870183391077310537596247603916895723526645369541594717550195444465894079671479213392373265774465804030926999370580565536856348599317184622621334170358818472516532197792447221562615597586396487189035477110320018490364951691648332245457940902988504819334884588548732905624656032558488030740417292508048242613203293184462884609493114788853740889298827030169792497540532695866179947371840341817728007641224340127062092250415346137792879429093667067751210842329778204899875882923570699995986511410825838134238517332219729263110403734744097182294886032942454281846469461090035568716195149602967259396985800171183497188938991978733215539509861937910524081974398562483459338674746401497957426532292503973558339794535631072813239100522474202713849936012874178212573081227849842856990965599999540959527280531550003512126887069345299510298848891420575231152093819892484042695302408955847785105077489935947043086934577359070718212615154547377437696613315953556837701653314903309179395280861931347531090296396457006875546511782863702043221581509612120555157861392317807316792090084866951027356719584627305722815827703098094896587029365414784204272439873699618364211943446205286634687057456694672356562808799294082608063643662443698170572567822712270370145152096740053393806060856157483822976604240345364940418104830370322021085110637108897387988181799325006229189057809512161915728044997000477936442909632581529645978575807269596124674204445371003146776776597213084669267268642584377746961386999560793465073161734323020916511469137534226757730003064857237731789719114186197487342320582108779702105337971892603833668695658237190119386496025178847950374457116740852767641593742915707808770171464086287492852708567658535326809351818136143846413909552990719890036453421099881310778493559768288336745380798102196415192955469527679332617613383841952676038919165450953068289686851166425249007713679267887487143474763042528113735362466685078215662467023652323306994533474472568879399411770243926059621225817032173464415190386558817023546562699748178217910339286071691937777459904419472981344447970744125287956625707054765364519963098601913180634606194730947236139819421840488826973216353674763048431646331586006468885220375718310621882565932185981051569853409630558339763058423018302363384649884448233187875463793890311410228792911363228508361152149889637667645173247750650800050506564238863256651020920154137396947482050550686445763740206282685778362145969216839122530729340350334309650914969153717506101073109930780990299281336465257872717614252986828862219480913045085071525028247178257367895390636226741705238539402382508020547577605658921814537591533334624599927794460988468751755790325764013031473899550628597235937188082035731907863586026037871262831785813833544052024097003470689037592651975665758901258561289071363907945888838234809398770718874032497832127453504352002702879998304911862343051965351110050179692201260253171737479504306411420902802284956314736960105526817041307607069838128412612009727862933887171528172518393968871672020994067497611697879788585222429995153927535313775100322835610111748495705299403008879138805459386240312625062957829132433378197843588699799363946114807178828856045353791755150604326796389748432511778269222203963551836204182697507748696494898345885062718679789076829752868985018164834644489240530425273799143567119761890823951396982990048891327533998968953789102063547095629690571633223626922480769066751413040171768472963079085963065722265470835576581191167781817997561521509433085427978268087964887668795082650129207327874550930497997456066111700075107384094645326991287929605890591601157775098661854127912447283194404660746245892634604850403876442738600872105947566712687000174212552455571803354844526020750820672242923087363923627738366810425258728024743697941105825846761109951723316087367725162295231700094748280051939787779954848048054289910760566866900052802790250176000010796192648286766243356414125547822028771572068816421686591890662841913153484821671876326492987434099124744482511769136361326397322577388243407027683408541623572080520902171368765513340662777998998846663124128452952041128054294313167601502117857234444042308795563520483817305256631972953105904155647907607273578979146828209110013742474879462396071878518279558067393791841762319564343362712203287967020410954694722489322047615203093870715014315875572421769156834533863358699803593055331432889607897541084060276896392564225560723697660641051744035656954145519149416075126273571136392735762424285192169507486398786600966629326084405485758642253341700922025403366281584478240092429902743570982158430727558383505882803264497915264645634760469518470320555266080701146012929955952933881703291392747530708858417937264624913249548759778560456950393672642148576303290874152548725506563456480481742829011611157809449878462237647348039709456338555698804543341353686175043325243959897771230091223017049569318525848759371984945403824814144057893930002629253503504338670181770194807925316729422160161191083939292283304196241866082686435959064090883540084203359304127855718531316223788848488049680296883182027572124303057641746456821555481524828991201985333498473878004302877313970942676453777959148419211482995827100141155287968209890396016441850798308081626729470234821587374338149227198377445521966848682140395634092853087312833226889835807282254647362161831157504724036809477612318649825933155783047697189939731250632367175112580993976101904545984131456861636581535994924653928219794712515296189499853276565359000152427575646397428097469100809859985902500659475624515819771478186412486991130516405387350878919209417063477362755625340249745860282321047444960798002071574587010362242654655846607035483933772248965240685029371610883160766575811598485941833084503851609361593935925153451435749250955224111827551138459288743348774526488118514689348330640012516797144567046996670020154037985096215142326184875795975079299355066370977981758649824965616546899488615459487333087158356115497199233132974071414997474071608269373531942456608847095407481115691211243793051094249528301445668528196910231726893444960807484631688822888492698247602571474597133941351142468365904664458502935761038265163644337994405690839720652534435452741126872532207888054429865577815556336996083110577418857003560658512120591780422422191911543205660648788198596803179878607300644455418400957174911228360417579173611474048452134615931023683644007610139080047334101618058663662916520561530674924243372357507815229272075602322335094590334643101318149808961330658999335286476081693972759271660270522337408237466620918084894999558849269862723241663343024402951170661040344124307365422456072032018705574174132839505434453769149998127538204280813540695966309448082995531673662713162659004405927956148927794304762059968453873322245998245516312408793822951456022509667819258051643230315097530700563835916251355970973748642554213616641451720327682964981320307551464579886248503650477304166077324490690391525257007594495562187323501804761720915444016872798342554359584137561512662176794713007103392117759857292091102134927854787795287190807010864703188261460742851181582945101361629322910315906779520330618796293408374357393098139481594986853018023797091029823518711720168449033155742404623338971297675096646103925194282450106249644513502318285152935861363827946721684249741992010168426995348381992020384947394445491245305280833105817612561584526867400357918193068634527256323472861329972250886285341115943229193424874928692304029870386253901048495798785020665993143060806656348135050106615820121666785938578590355774647765013839652052205233822506469737076042276763571662810897797781628844533767666126535290769230054948563397033601261904964234805274397075960772453832441216696979715563662421411825537819935567448334650599868733529614319181571180610067777653801783429087565828860577128138008510701606892292907486031944852351383896107057410559757492334427321487245209124799902437093813765658892710208267817384614380232611178223577265485560968749041216349407208537674635166384215711756863433516010225100385945840217483161018115355384008084469054305768994872796673273682209730026062007459468094841593698736672980782772822489391813215970132093035764598832678785401156295566447008683120939041259215160892572221150036944373902119419948825277146732100590913052672704516083813187831310252128580768407976315019911700752538459810407384333767075683408215296198615086177757527498441398419935814995387761798630337756994313853804792777381571985433975630935400054752433528127681617005795204350983931058073863331657874268235378279099583971241546952596143219102805172030799031757135926138807808621822432526930699836076899870114304655150501077207375466342225990391482907653951463621106320985927177947214889938414272340652633640681716008683991777349198779835554288368232783217943569102277995355066783621322363630313754400865247690136392840546863822406418449660948650265520262598597665128782912815277941128343952838075615266752171696429431429273117566456770613448990173459928615011138451849053604732141672992765743048553732281783316275432893378841300677632604995916770653447952297157506571385000629689960559504426950435182491757370208356341020332844054278641179470253910386412123491390693506743218848048011762372605213575617923354954694522491873404714302381728789057517923036401367115182182705890707692608204471330593463060890399773983325571559988119227850513975641366644982080788077011516259771815681627631679088145422249364743271404597199123333219799271884794139781233638894094010182051454786244855260242592025450773989061041905580039601267885655721437184017156004070069852806907018458631357377108541274170200727515461550374452484658985227388393391015666509705840833480497352868958573479850754324737466920596017466153897619021053479051239029345793260353037906919332588964176694324040344519933461758320382470181103460331248422644825086932860969388505627789500179790142824674501571243585705123549642457758644838938750142370350292563971650998591002934661170817214697776804315746623780011479194224072092002584537064029527009287158497372205031653788821519902919071653262804765433342898200820547232351366681226096572939080763651607303673899882448523337667020588723262743660432277000812728298476775739069838082335267847493642380644514109690426087078106354164977696594770137741997526013566052369036420222439154081468153099251516070293631389767390803443768582071585302711599064716640029937613136587814761807585918113606949595436389465506550970769736740037079351350822735471236090540501636962503462999584793921153201013228916279020339636161130933440314214490797641350667337377495676193001233478988693941180228062462535645532391578750733320979885162007928517899418154391797974561673927495592968107704244435205193263550904123100654044152738600106004160311732421381963860154874626627788691010668975941232957459717727483543399178164205623461684014817837070304201345374435195235474180100080530672121623323018935705932016468620473344996326226741744114336324535013716217400783511060680917718691569349253929710999105411175062783436657476739895861416841278504867739207927489579439640487794231104010905950519166567160430825342123492295545491422992040557687428154512108336970715870094172532743627309779435121955011911184727139719243422306461206507681670808400941213411990905200573116781903129501577612750769242350771566719819081057156685565767573780945622717677222286711426987877913483998087395818877499364188848749793760466700038621166727257614736368653277147751644091293427967143508752286194346609752307403654063127360284718671796524726445119123660464744873021594846132553612352869388515791715967804242587844323689467411628660688807218973475345800811410248731563639087492195426739077632224997064794419429212177964016838398684708570843474337599168392453433549258646205532746647570779476870064494215226346059997158083106580844052295320916353034419782998540677641077570474342427294289867242740461768092767802249498022402441864490576006359385705139372975193662527011476122853999638802496394408018334902335189914802182434759688736680449715948609613085845085441207235308600598572668996652596399059603206421231486182394378735627454535297922281960198682374765062550188215213653883301123958255791720942152639656337512582179547978677120930448813486273664769665823320817189272463338776002432535442396143965405254909674272453554837170661837246709205635829006512756083153903534031661905851040068076691643594607102062225131561822126819088840378351009808423791294009395844588124511902531483742579907476269791820400161851402914875772950240269652323662591107681467086356628355183744260443457662143396356971957588845172165396785065993296773017878686966534312197732828391719292323336361469204748347170144286080854720450866934780717515477532917482694414961441429289001409916583545060646766835673078676830460121072482259795817099628256681230350984548838800377264751270401642374254356686493488908171443212595176584371271237268381310404500546088328134945927019367398472350454406776426159486343820354463323036447796880613067867091658940569017389240022245660353088682735009342369659745310943175917403624620011297349419855140673501888836607238367981045933396461058080845285376363550338286548316311837726407385478055061981587631403928437485206340703910649046801379611163312590948123445905446687524163445196034186606384386649547428712559609835026338544427069484207342216526296484810254710919689971859110888854638845073152917982525356537271991264222299374933929405485209248878684166210044814114332220081515987305661165784964871093126889820079860153382257202059153865582049033917213161328183782519094767582334994707337899314134818058683164139755667048656265311529534798237517917063153548621648741071807969683001284500746039817993986376057420188927362201640013973739328560730505489731733498364775123320694302715031904545979448848655038012229092891697424117847939931361563635206696916216092840575214902312353885403507638129836321710651894222212703478099183047380300468705468190641613101204589603450551942210877851477522091581892871120875265666931387284919217331097174547878974236890286256082600305163511966641573295139413519739880102699431578146023460979554514859637598074151729983297850862360008507633920657091561260464108489801995740852699951240657512638051302905406368436241011073610731350607364707205930469555526342494885330113157835343793446350794662048707839548615313985727059316325308556978040380131141023067432633633323513142539839555847418004363671325168489653747322767791893338282358359583690882100215749612448699312740912188926168574751059313621623648442422205409491367017610903159060157288758512822292362979101183879620180162351116568547649311993261184350731261183569074019413947321777075533555567819507416274622085514659498118473581379335361814491933637002202749740730833998982805990902359887462308049481865220803033212619263473620423034775223739303841878589784048015874482136165382604133073517775335580709092281650756653316133108808628769491705344286905053038291756992020594422200715894797403228675893570697828792839755531578473823109571900854758890024088573153872732006758312035483778532324738333558974488886702971387079371571527058074134066099070747069557103849694912085325562775860141896768219503996737757629730726915523162973357513896085002604631199403198817888175019218044232504915033749605327447965037200741297538998893142202283314414148677316260262280337139478718981638333044169624094770906791912195674904305921825410840609983369084231030769412100631304224663510156525636029066303162208204658103935449981022169126010469818073891391972725292935995759707022666276561328853721400889937536327165816918320575592491674924748514481273788087627328229858199905807858761842709098902228115398812829723096147693218270381953586133664607595526645493484567246782973219513064359869318609138089747140101004386045335207663097217726984744547555002162367620195874730521635258005531710704975713405614435747040023524366964991055047130004526749988062591043678496027284003538091346902953800392737026305934400078914784489053245221760942606989579411241935654813398255613904576161540063700108149599805906321988669229420869419611283139741108577994499433390130470407922466468246726158486968209147539930028255666889725652040698374064093545816232748393719398395120472700393676928582111944071670968498273995618119481920077726405723273779589912882289296749145056701196264039894664637635764593787051914006740124774366632870311423698237281949834059631103951803624697197837374441205271247490694261025932375538865505181213539983879481559640431347773130660117942338853948928935041808728918660609244689974295130282768794063578526672244288716074699883504003468333698340612715408704809122164102610668116688754078275610032230567528981556256254739836779793219640066316489590140845956166401431351617902555318618434326929164383682448072520764948477591638655730370778494205772091889118010578522644006064488798637695309593434356375288209652222477133462811288506574126237452641006841779099947448326759907449492955245384172823422388837880291215211527296870480491683789293760166507772033421169082405150390329000388870710445776186185796459399398883890945449478365499855150442745899841245442404036062691466993603100043273187526468780243248029582664941761490375970490995187979511117276598053255328789037521100006615996341903148199789514584330318864345670132209990194827745311709826102016604161913513024856361124512237678409541446328582007531122634032229620680036574960502805175883284253604661483899967659378792506404008443646484559840142660156945839522209569178970780811052327698028016341801342570622379987228733940995316803925326186888460428651406562492682374465209724114599574782231933394338514604471157918128170573707450670723119095492988896391120582388977193010509717325230602890845531696256773504103520239366594590472754313267126392543909707112966070916043983255411936973992893042751316268350319796391859319774022744417632157131107850929688050399003664216652035743669386452136514973593341570033979785517679930770128642468915641218934113965557909722941411218107705917941515754617137433605369975455664624811221794991727825051199657134222754255903551915018994855946674908222786365611597061599508039498482354216632035460245200416932464988209789650888997435822348746792456187828522346888602572954227388042894127030358335196800171519636552195811761798576016415425191663212669835677055554240526577239407177914687763675112868012200978535715529859736068093064116584712355100456688181058547914067601547811374684805657828469180521273210309965074413563482637749962479770838569843779973980055175542263836332497060228878016034336177917302072845143783399709722785893806723778873126553934180338166846794322029513836210632362582766897956263539747814063937766042999182462156922401748964055871549002667045170349061874518523289179567481768371006564852464760994302538852573230934879756180708028919264127416226244824938732451909971983544020019216088353865243319083299191689345907860226628047854696658453190715323162283247116572353013176225966327887950416606365884809758256364366874789200109287136347904841537285393344592453757411075038397896307951750332985955289429557284617063195475967541776749335176487863953411351240613280594692944831429813819598542705672188479318095748380239803264885605992512251109886196223327424797429513922723283606184364759025184296124964862736353757612581904334967280991990111676046261572781397640972438897476815329742555194507145174587409013702645538108865137037161262662157852605366615993446076408064726901900348469634227697160979102656721137976554802720683841018883032933708853950789323286287738054706096628968568915634299345745425161367449438092098623379216507053589565397886803872643184036735840793358760785353988808964376205010150894030836653763183492279783659664693886019165173482938045424995573038492360684871098270509518306122800845292074266219190734951379634787451248343160592084696906063632962496369573221206879311638385828864810881658026524007887187099523057666116714650683751249930671601465584046960473550799931847300477950294960254819464191431876662540510688677392096165498550380934442204760965159440921553573319888691531060420641155292397976398092825622016927505591134872354344318515318859938294693025989437025890389271366251099212377709385651734345782524890376099152555893634173527840972236065267032240450472738751463060792477576356421533456346886792618401891021629076420656442168539339904126570835959416609721336731853553291377358217509196555056476699007867272451154678845278692967231880668523425895176870470188817371498453279253879450648645748920067282864248731269447023919667298550358517402787821236732022880025567167925928083908588748558894263820324155941003125397249274671736889580958764492781662838457888871223052080135975181608574106590416049989069758313669018189402619121297473164766061016370770405093656165685406974329283665655305319846278453370158437961448363912152537978241971182170584937008954455200708362962231429478464337828931087319932186204326360523352563589142680181955727588461773316838435260108186540543264683131165622926934102804324264521266692117235979730437790119268704888671861899651648376643237423918399045518697700173925172961575389364371627597001532546072363382882520341248937209939651774162859271765544366582197065817547291672476622042381247362864220127878791553128336914224367891756700537591425776598271369997468254992047359215937172909979919404859476063063974604831956012666745566359261882507521550429096429667991764555477166493347170284296182145676917655542889000753046183311504579358610569285541754074341064209963647924701519438453357775437057942131316422496843233723957379109412192027608406796269100381355771124021875052319948849918832547262192569032984196068894086562821782821857639713182589817790196458070635326168552093202396822798418053816838137566061319354208836677286712627663700677901360491771653998606943867213593456972466569010071694133092703721022057389971459831641567602990321671317440443398902737820598976202633425987746133587249890569108396673885833293867066864500988803850496864647606609993385480959707836896802990351782430635137380348773528271529254597140959031164429238046930983029698299246927304341597106252735201325117302944443323597953131996357750403802699035266731208986002547243280116520708601932317689267439462260421898515273940834853281918364991927780392176282354757084927051268307581694317160913764713476578785375218785877014360323264118859957885903872053262986011483997300538163307916131714864498405752375889788764855015437916065806361281769529869598490846487513694457643961630537699660575161599915436995986815888390389902585785818367903912596213358850660832238284306577045222341931400949116783763295118887035592292259944317460353179914304337416378942748894212088011335375621627714959905152287873352941326097112518917552413946980838256353876795732195186702476986779704113358447703120758237397134840382750991482020671702909450760266317131075372446630306691087660402615817988747832165974854116071618401800709209898184267442414276311695528228417906047598010953342088547223487525005234979511320272420903785774890580472325168522029820356146122793584247480451741840298847538803150440276601762133637884350540439428166551531601499867751625106106186790749532012979284792144797336947597293985776595417902642798602357560986405768565362707155747678327175715789053157521550856294534259083526780805883223516452543796171511575431818134493604176470022226622355497415159262468188970519170630931783747643333550286218090332753974845705852745456186063457959423126771603492058987080581765104017372345843663284928942169129616047401129531458889921715622824070534782909070546859583365050564282634165275167138275037761373704839960706393119138171366938057256992977508470496679643539863196240397409913172012438892644146090093439066290378478342604629527129297219956530258079470343975742575816005739894026298209855510079776623706008894673225340856805850466442496854027918095333159207369966607283845932111663970928911290926271604039337824547608135260237186063772469885870231602175441432191219966112130649090348366545601860154640074961141206276719922558740417040335735556867200539384986533126166287370895205488718668594792340317113473921622797817414804233213127863039434572314377081673380460421606107705470198349848657011815864334046965176823626270262471008683393133869481468893058732950795276610683373511817581124842105931240418610231462041154722092054300193757564454795361071573497032286216300527090844755817539534479748648403445876827299560425127853146842124941133115551187615870679257514729023700978498114210655773454709846351705021739572645535518523811399205824143497244601280866891802665946825131907548343542704401235889973781784977557088398031520685526770112680830270145691633233093405478215616444142209429095699295653710654439411082648969634892698041588638413239803719472003935617042887030881429071052619103397036144815695924238087872861223070748952948330265308659275377830700004573151573842613536188447078194048187964505867958165546457497631335557302446772007938510808105004720608067302879270400879807227799108385418384094984923335555770048620435450662738506395676376344525220217172063753592942920180231647638443003339545810760911536920472354430126828020486821720596075727561725367599324108294931793550292965402274740135564025184893200635598516662185673145004871193274979298790552030977709294954965031250074488063061787292881178603931046037948511422373135192314967032848725487914365282037524068353020236842941001877274587191554651036757363390917676946575340790427408446870177326945118944584752103602554595406982654966651902284667944458846983501489933560532769979388346706824948723116238565425332360013332965810686315671067937552792069018271604589861244177731988360810933174152481491198737907483829986643557169519676394004784738900248987327996216392966044250822251134071810734370633528646703782734658802901564402703536526741433111705142471417040443163111168385643035438365836957130906507649528278898102508671503822473573411906131625584054580193479097990059716633614348809035948893180442292840910892752656012333940653361952078806483050806565909478361151876641203580440694366433448944439279044163997789026440578112490578145583259979361874100444868446106713724089551687611169993769243821453827931059582033954911189553187931425952126877039943371528228737407923076730586990566892567394537168700665069350490710004779739270061247649406550098517832490342306950444681000518905177361165651868718350893310295045758604603138985746244382017315908361451429541782146386871982184805641369432988194409093879184610149483073829653733881805025628347042212639853770465061293805477164802560850733386404473563171775896968624898840628602879249935184027066041533724533591408636262066728988960798987122302145211461225538041888070831125128654399786912300848204180500345954372035518729210673883616349204768447101196873258377941190628994266375199813287291477306816414246833169570386634471901964767466550696021264267334442658823793216903133451228340025739817232712173384682014627019213657773913089361371648683553776843061780048517673603285692441350975921449096374020574051387707670927872711321076599716965595355826526209013821246060038701241139541976580971213380965000427258868789570200708373103346417045382949816585456052586661769123567966424844186817001545786503666951118686369588817322619491394855655556603806859311309810023576295851444160381403032675310125761332512119900798366426282222343921947588090796850328836158901464124201505263760882206313826634452832513754222603936766751908550244057568971781817082885843370517330526590960947123206331395057082509665206314146894402698084138912985195732576034348482385604589933422620769815499361482586108365530848330490710533027614970596067148317515383471450095264535539962704035692337025886706766483379221847030081122115827464608137522607703742085842741503510390040187527546772341181121620521532265575116966252091403512409526154130123327113293698398068137503515281230312133930336848489747479237207969275640746291166613014389684497209904581262997564724356949988297609685116112213652459579410927913127384253510133090194998090442777604688357394897505551964956237781287800234244516735529723608755906949928545387663299994249517545004401734225318173317852756728705130451830933480778497720326994468067788858400061170883684557155737085538101881631092308814903323498206619703600330897876009511877932399441091537512091628935481732041853711481539257488687532567074701457221338741248783152723694209887120726476245629444834358037598101993325007074080741538664756151358005063581808532939286512245958206589720436236456764551712580746486732563447711281403199471744090475377143999187053137513739079546034982750257313429702115543456222256982223218972430169765867093508290918883329577398888185596653051935923913708039486696279414437605856427717680088565793562218376424516243369275080928567781939435266897575672824260349512944435982362995020260465073179185037125722149653578554205176287382192509702526197628661780028876772726659011114153434709763591520784861140452224466329816585375778240288753443811913793289142848774724799373522136056539154685645583269059371936939286539295848144419170256593043803767642259463181586011715995956076469712196490271097451317095184085469661397795255230593944182972470618561230513403574472753604748033430784403156095569114914242336994209780129397175416238232037104960045937682074086135890878939719184933330945459825835104828337125568107791463112944366703563605368874142028594251655923537802320030940660924064562383819334408503654920109349244143590375174424191228850581725681206455660524981310470127890284483239462445493809721700534711632487065444735512226841288538162130287839348725041318540044345931532185344400985739424116982199005037123811978704989681483093672690883828050971927969752239476854647570464045110500647803650966098113278717092050217429550644338759383270914912210608943548292125701904044592196834093909827266650588882226815424775155549720144505820755822374335344109693720769781912194840090945097874919486231817446360246843324966971221142746460280285329949007542895372197629172475596247946674196627114617922611299051828023238137999383605999067282298407672940654701332073114745004007145344868502033938902984051221230667523272272394981116682158626354245768098540104111057660882269170878500533200151780186490659400166045633668411623601062639860129158398406721358069683009638533431650728461328320711142471758740020561681818255318053389792093452184339950797924106575015685124715589581749695717137114338079055860908265826958925985847325547710263558661515454623325588583141113729759853343738903606330759965079600574091834888588323737356441090280926360173771415678784430424654002045924473387180406539919041633359465611477438713268197988281758204527631191784912994091486579984216914061980136924822400577448550179915671491514448508650566583849366861092771125354368989726204462472318809673068948777222612499595739557026821417612147872277472355968771299365197033495984073803668901817493988988836423370238558083258012623116905150698028972594687636706940796390020756171257239931806873139250631400417961588356759019678087536664170241539647468334960891298260322141977285057830464998427113169417072178678962752875276923471964248182385942279905390204533488858072270232408784543883206876935215793307440131720736752612818316491889208646463012775493824915425804561444713760688483831520967102505911063174370170057242158964404797943395175192196233448492743649603648679861018285142739420539648673836318754447671037303007098932397160700934947162017931976302316628589550094029448334716783855280940710607811027930782566421121142437595900007437358456015376588392923066539310413932732838590375246003407618605153779887961312001418419904721669491912338275678790428099009104771804910908623951808712735957342212332488951754662522691139769997912040384688829446834248225587528259197854212116480412215272044019448304647104794712427648685352709600531031132433064819368835686837977460366396597327191635615125141085216733033556686973011861531894162820657307392280929646955181077948481147768821796449795921054995895833304974614492659896860465642765821564113430620324010313737128571433220692828431355909589007737952357954359486360674721735609071716155652795768260216691322515582235334177699105958190285635041514916972354832048548853759195423670832827003332352762558789703079772883662281279856555267549323404179291132631491567757016542538925736688812494496147864922107163209016204235901640507301497747663062644287032613621032147350757160331844791539387008290394547476524841838793819354703717042493877064071214616100360945612660174073892142387728591229409670451353070286076569212602435358231339982217907632579464740090771622199302343894232696170476881069162895190908210409552340369701197867729853907885094389061416019292148743406879519134995074729785716378824170285950078247088109327947915446367987093363154774743799811952094510458652164680587630120340273987404878543848228998239576616419703278708714844052527636562737304563745133896088478800580995525613469224623757978265962516057452871927003271306577971155661561954710612609993407440210044208304722441954066663732278618197639690164824081833802428467951585922855581270344408839453609361505563234983003625979814278150337928833262833763622323146228024546294371830118788022548986752415919870246002128785383021681923314810035195995382537912886848415811852224641792861704330275283069299380228013257191710636783490869933842593740125551429554156058921585794071838546171612455561611748124140140306207152309272232832586000709771583531557223004439078376381166603633217949210004221604416728195935317010259525631401975146431427463433438892424869000582509013700179756578599970666047387022987249841687127606755895122356906261354678494938352591723999729349169311799000842219711787171080192000587992006181135564590257507151633098355179935021464025331078983640928448716049651112156888292255030840025533822043136351334327511729122383217338568296517003259492004669748978599935470083726391477784619197700773378451605117991631937663033513914373889196026736714396546877765037541300876078948614516208795427128369720976825601247483301242140639488987062422831437621822730312614928781055612168253611245062731425253009233004073966955877947080020385415548165287091004412737876461318424797544578313835718869110437192134267923294748933172773616787236193472509586173967884716135407353626723557795704786481064886445831125365903893766470831231006624923804618653620249566243141091580224389867979526034570272521462852096411268958553620339116113918893983311719383325781088848075466211801211088769602896143322690629564203760042601882855132391769879828193623669187070880238448665821367326903549097602115380502272112315421578758730366661771580752861795577867535293572286271341754273833160465403996461813599177193011346605362848236835170215587485955155327554120354717077736756814917751626790145134946435250630725405640267186652044345553177780308388506646156102750638443149222101050756958183176453159869335812630573879621190687679828302601555327806691795603804583934590839627335754970936703089519128453191771589358265222317026574736707189732555144025675769047246150726659926706290658819225616659992215699927317370645951234151976691531992791516683942292485091877467361401853912809654848880886792851559297617473878441630580199736306576441803169393337075542670439474949234376629007031991137303235967761394795080356949422386686398607353880238385266919131015251394988945831046032149871947751137503864415757578463907726377446819584911188703332506974700461140172000926998109024403263195713421339537640389311809173855510638001573814334130810835997037454976805676252697344309633250389090260494226831542519925404463593535634396504863145331008226600553224112212892347470616883734677010172652906102720555221330890110554594531259485283598584317600779588655934732882359018287680824158536341836827410860008410838193426837755329244254032361866238838740571472547630951622863751596321054979219992309795716708646056003776725138476366812738944569736545717509229946659919439424306646875847892135061840089000624760565879946230655189065176579031276589602875931935395232841829956722733073420519531750785987284225398971200063260498797673163820004866239122991376140941519943913242671696417536091214869694652248148874155898475146569126290346493017472563540579403780002537788167926462549654610433849953848208052788103362604126106268250487255285484188186871025294928398996535823234757041311257385132633281455063115348076023190649522347565498992817308252221001184832527615815301582104611514402140343139040353805364657012276999170873713246751740824796258873437948807328330407569164635847703710624813198295545514731397168856722707807366094909616558990226541442757692787278256002443012523622552812674456457823864602900116263992886671210815912792238387017361275325454936710505819565993551614809724182325591854054233560695464592486717387665070263386826289335915666623911889754422322422557222321583593036956719729993705458887854611878747725225191672421520026204420553956849075084652410066805652549997812003506550938491401907428068954407669452029275098866551852675950719985177502589381466283020864882472460343376788172974925854330652418968213939630999706905025160284835484874251459475125113169026032817514643267501993637618612520476439019458715655235951996809138844173924850541085684609715582794624462371182843178799762536743431858201055357446622652564240063481866463510587302526472925356982617649409283758900407991166189879292385206497363230101346374267700462439554799984932505143802798811436586738199109430266132359706276861604693932391434495771725612073602651441530915738416846087855515643159579665660786061299068791908706589388795616719642035837538530706072986711192417993921350989816528370443863596939296358340982210952260348795934715756622383032628608994327998046836027046677860702250838492686455871316308828784993483774466056373411312083701732550601432901456077804036498972509479147500737503748749077396590120322606243868527223648416013217811839577767854042220225911570068847125505558061427122569557225598662269399143119340139684029453030972202044959116113574925911411374822082132870862766380380515486533225276258446423584869871019618094880300080255420244148253771259074026413563456913113937374286608428029636362441484986564231304903492571876908321434182063923819045520589883260392242010666298384242262010258392813840359850572610527300330073405775091482869465569886613670687030653989062762206422681625577558571340679900987330650555603990438653394528625841586475748567073211886442007485060808739003099739651553148657720137628140220402188592498034386556076741781334391266457443113842166406913990024983006988277234000720692909631394058048247545251774395605595860996449870642917761765499620500246327010882078959099736963043589916491377572808105271651488161663122543577327509086456699488453009120668473899425411358591623336470101085065328750593375360918139973829643454443498468465211465478936583358905801395287735738644713741240236863307995673159339203899389939191343990491524519235577431813686192381599225790802203417396254098429747194092307662540944132335653318772885173933818065389484403753111417465056420878844491592722913384319498253927598644405712114213094972869865706773331522345255092301024272278238039519472904716230211235069334713879856060265368418139837204720016752021721650441065420521859823067890419394304831277039245261710183967148299248009177646102370456550069981243566551607578438265485983329203136760200353334648643699407548198032580699449651272283483493992411167474267830171928173536397424628644146044011117980912021560483668402371271715444723443104755165246431728517958936897094556956193093560760612048115246818653950337618882294828209392262734410005385533759853478893909135118118548826115832182120772480546413179294738306730729670397955186359327191123811808879332750791068282052558868708204714535107408672338458041426692032753999018901962315875172285812950906431682271407872847438564596902238754027801457607764886791734481710905560453987067969780192103103143280322711938313823555761960073468433182153841623967336573109772610998875850416349395729758687263276465941012579574537928747506859735115935252634352225548344353024344227263193810593716611493493840594746146938108019486493947380374885502558300761116464942559584735472494670137876679114189900578571085273336879064600579212554996544512549448085824910342313625504512608437568719462688119096191597755882983549497873222224946252359427825273019851444790272327135395100912184406987504543746670964460710137775108275653489925009944174648728021254686001216533207458464406112221264154555334656705578627395335761479691171292548339844492970480540817662976702938818563029749298557129191889772901636117646144475649594415848485813912440950406132229335038611283508388780410074581250027529902954852413119532981945858733320357111018109105034044758020497766048361723645693402807809431331174765013788378853362796964208837058690528607390696432646009745357839414983433110971499007294627953643180068307442424162485736263500987308822729400946276119363668775311280319093124525566052873130524845003475026875055567691585419619617137955536080097281792340886324144929493721133302025145259571380939486562558275846338229326132969822812684828410729816327404942103140193531318294223284286478556754856339695225680964099636679958423664780102487742754462696684367718451492215345674001963991710658219003866499568018803896673802276894938636366351489417153475537396931436715553735535935605562744277589123111492287994924012955400352480731996292643881936515680641153871169125576813892289498865308391455258481051446865987345910520451537322656417222044729204078053005483068329319632919290831986049913443225206618614504053063587288941199404822964120051541267053036685819685297083727404305498784686199745890877153711570534907194975912952904890934493918155870705937035828894618663247708985093152158262376357932400859305662896888210976199911150419740993133273735605335510601987831431414712563238132726714942384575720734506581965302995523728006774176047665621270157285320571812194632037292188049674695135909455642233889487017645435210511199178142048252254653906701298991309143987713309860746799201204329379917693565428949410174842590449455033078064766203775661552564904344133374201526599831466062643504740818057163659667404742338364372657333692534396616409818896713318491356164124517915786925607635331778198305621675491674607203093291576038220178145148948323458274046268701959733890596004373177878699077736227779188967312315888515497796583282468532965910051422526408213479325241474101071728436566116708099176121371796598882369169373346625655246181292420632698555549842700768042000070841859378731746598166499752195280838579825896079652571655955024737294685051508483157921422839800635455575246893718406113317655143920726344013282086992185893793278363071882504309734435099424881971877108164969019523588602106924532711465841206960867341598986505615571766426686729735949550730584673028709498997823612338829245351728007903989717883942479634706316221799863035486460091077788441500042752603212226561510340615348456023604163988922133891753483373928180116875121324743760482008476675145942389772631601866945422765416650489031993437938007596759803698517160676688979669289334354386540251175653063498003957502857900905555956020985698371103762231329788475956706025902058796893727652342275348178935235282504250627327259562590940203823811905374450191075145306183595862883879284293750847623516067469303413701947352355249566225832353564610293004344150941730380293102230881024565456972702109527038268246494732685798014791489179471735407854554376317015242968737825669930522419594632686631726913536001746448844033354162879572548145047398672363444261773391228439417705860139162249600038615156823617869511393203306675349423962362120076141366326380936901558240271831412907808053846788417960590486988385568987107141557051613040022454007360567680274228076242535142462476947106965675092594037099626542953141548170788240456476916824056252120495536225344862860376556463615120431278169395138329293379655521160626745785106605640739021558353849892051803993693153782170304144404391287272879449679512582675002184116875178963219965011062872225004754394842750419346540701442770157953337329888318442209021402437549975654424912341693684436143054714431275927062483079363427648272392361820254081996689855555807667124126512561793445980972692039010484634899397053866092315949816552472604620130089329876771931691238141500005904413012408226043317200152127948462617910111249728169759504746815529218429980771090377948705605444106333966905397382642331678092402740418853828783893089580782184468242706308063093418682032670676490608536121884930890682360355343299355526142381791983714103942045927756205090274911823406977090131635681996979335390602923479422496451238372004346014323302113764667472774660466322603378917237744360661188474928751531413544456160673092981489742101262261462925238064583535316645206936929881211586762482126029139324586127372866203857166798069775199564218965601717593235637281157808583490060407998657376784892209821056937663052254701675740193020600267049150222151531644058075659124337179913956029269653597579474185450836774414487235263377296858742408115928930019233385683126412361165016006294064574699266309575460214836340100946446561006792561372717014454120077128653609526994038660679321175831673080468710647989586359452090785731965848696898792453484339312229830208153005827953149481665550713301718143902614709003227856142167623691696449427795103074682174247598852424263987723773829330016346351874623619366506803971193319460196863016792776469366529367108521370343730302515417677313069846020701464879897804910133439725363527248956457038691715427510715770293842729771573276723512162327148099978470143054814363497497664896637603464889972787211975158593647366177471088590377005726543371740717440049849862980096210411173834998102274004109737323764250607483200346928071337336904790834884580561920470311503686987141732123210761040985061208091711496102768200216918681343212225115302125001370952155648219758323611122925801169633568804407448136649951308524787672137334886032396255864437746346847760310780158490759894250794199609625794990735766078340136531190146468627962105070049906328306127507883565483752318327672042946495029916217205251538341913774410147258238424767923554741223334986412458016635022552551243453694875173513503415421447532323514788877420314393394150155000831035217276001744538923339583314261065334861512431517390830628977750049738905050512729671210853056289003300132191336877507740602201682242564535370268550081564825290529095021950427911911187380418791029380780898119214398420396277751686941530808929754322176398359582244745277012819608644948733696633187605176228934185024532171110224946208958859623961184986371477113677935206018473438936622365775353384012479005815432005109129645431763672997203701628974252857828549691980295739218188892429158093949013852571651567319856484007144512171064758960309394893363977215165774832528720315265338083382898940274806821198942474338034274070957396089682963200979872529307398428742421670082240551879845654623801773942964028857388275710183805709004513992281922216545964866746271621135105163351569624816814347460312627140425480942172310371280930569851574743765301491865513047743881000965514293349378919876929634169752088722946506941322991833338719597121299606287863071852887524317773265584570931079892168251222200515427285459469041610516485046710766705375061344809765133832760962443682245441680297502923493963946383387235938806661453181638649487876359710186950385143257544365469643950203735718495687859402345119981191286544185295429220578503734236212790379709632016087781298750351890698196885282024662866839702397893071766787356369771452819934456688989291889577766174252493329445221184797723189774839610164175981617338604423049244601105685023633137405531574906540210554114747807966701978134204645149821235772554425061679431853054806074387928163899607969702161473667015465756437748164719063291155304446626344125845261138392387609204667880683276940367033522166116133472601395518553612076134701807326558200290480761357454475681873351327127438990651693668673949538446597371795177453065826115741788163065588184703346816753562739811139664173260325409669759939508413538553676060815889964803144524965167830203948864726742186133203654853209940877981629265469140773534625338892367135516652093462812349311274323185733147289207379451558552834875710753234169032506169107250952067936199789834325682824614701053024059160400930816805786636850067694381429466877690256435682189890557114112055713168093185226481858092114756252219494483657782265602746188479862853814873078558311608302256381494858909375045653154215020053023206721974765417259234183114378322276754340162610534088566104043138097616730300176710262122379268070725260313349741482614007995607869201406881622889389938345287381234672355997640618210484081727918867380397771956122629088863018122513799508169454218371789385499039157693822652900473297102822714048073246461058154760781122339294530448794084197938501194315691305213792530112155074819735145489575529701790597468901188938135888583009954925941514763588331668164410424284123728672672422828576221587835087605752050937525970166785272465329368485532557240031184199385335494047681883294726791746578930852359257482974899399450362376847046406419425365869402361099622953377122051332607861854601968904069543281200325504945475493396194632256308262150847507247896314964420327301866889253173512878117137651719088888090466289002147794904693967647641974843725314932591273372019490097637299519479123867495647356060234241782836718095298012109438816051167263431212474884915802763542556141442709068956529128379012487342873020680619137375290830904001792519931081784665770263197810633398404841622479856771076804647048752406511373291276293312083781141949845379502902512878645615488521594304042908528627216894041437070432174322957089491787871345994717943814373036043769689473571810557916475051888561940477055433872164130184023927017691466700861535453297532061894991255286681547174805905386444600650829205410959596543384924300610498256687241693433032483814265616384451302670068067861085794811157689405144545156025902731735020173879800395840134286482643990889741460944457996463438645837775158176510825918587007497477420914798135174298859557308103679572150634500106888450082244426192400738269883915384096958894861823315045053228661267606737384179837414228588728676337973721183128169115276501888579196272085781432306135176746141012321344140736395511573000410516670188716904441355734462804224127257577477695255506189132152921285798086276222988264826125282504818853407045919907246006535827048840415266811792383209896728968886053391630748599801505136376167296570719584206799400082999786107692936158882060612666008561627109226114490465768269255721289222124814970730327018986591010580938933442075099332073195904357067518964664756087992487799094633135365513084901884686522848626336041250318656823976686803583626039458462747551620142437339955842167614378382752588761380032311847762362660669816022147984098519565139873398564823929892141660962505401219253468990898690300530995985705705127068295361922007547394996173202464620242368253405240245413958909750533531789132230884709716257292397314985970339719051760564667519882356171409945522519169117795502648565233957722049254500799035510313188728184304083461842836599151388551086709863051330769045871499250589356453620514032752295034546473766739910295348421923699315013953926069159432503336442871486714669759373333624626833865613767513336085375872865802397607576548499485091856015278926042784159963345126148507647122073190542260885081779392956820459135088972912516702653138099863921387617761026438694453879661296870956728020161250345709075512143453173281047269938906218623743676822895207149585965225150431338983032036953740738822651442290276800188676566730109073803912129770447892155111913025756129678411696212666083147268905620753465996189597029213669600911747289786783667400492602397996509396768765618566085125189652020400168407393795282345022208325420800919083758668800614640174807848651720809070264151754794258222834631516138874599065734142883374893988615074205573331283213710041084232983148970139318724263431556326690939172293705983293759543364208595334793288656302619608717970702325629004600180962281069405247675224332601779418169207922290179641110987443388714355619417668712484228649982880494609566303549104709564416645165990586298062109483592717846174293114927998142380324147969937297885104173362768580424302573946808001732037557306033248813638478960842756086431632405038141798053289434438224187683073252801928853151221528129362583484837901470763835782194773052557182970223626650587699831314445261662816424459073058512145746502430965557172190937205904258491629011346118425337655074711325157150802493994059413711560893227146876213477948508253344710970522107021221131950577024551528243686540642144329862179841235761143757247086709453041629119109991744378741217984423868011894599592983951968726563484441316227660255894386700518532320743488234317479163190430178858730966277172271165846056462581812929671816880746629733366556302131771318481825936841209075272706509869376746408116797770308286377405442369359206833851476353031881138190212480001392269833197288393407466110834760844653591569508853537024299699793635659984140107821614361151427306775665670383317819611323735351939747246401700593598541141530396990180903946960178971806357853154785258601432808520934308652297500989724129856915351503990844144778765424200070888566706603514299830131689329061597572792986059589531529911879259425457566274740901660772404110962813504084012293819590281372765378255089763054929184791181245711683895571835645025872492910901078482451765858651025368567228876807026057126049564769564552356063440608724321022605904471051864550908034473029523787437195470741740078182940465209406674598838962524184798091942917975524156496906723312496539879743684717746348289898097680985623186569054343788970978106687031008328720802004361307678336190325158612147231453656172245477771373492259271745577757687618418993406961211411302814609553620572267166418144119696103332099255658887928599347303554810143597878197937543897992627884219817516009644770980581991491756134982857944887604056317109500618288395516638639238132143620859856121450760671644450348546782367652539179524838358271578340228979035342221240872820039691645435662138570922393946845384300763657605545184376953201013308802689789102500852626458373672815397148732096691388123844967118928932475989780500462726392081602551456429090605273939603327820055560130151004980925652425635528265549648719972194203174098854739530438725220761519953469256121259783168904363653023591369659112144477823418153039791437066464540678408586615414726161060049686952475492444036892733737281653601352682228613092522304313575723800720640966986359471565280755295336187734326840247288182504936127154019796722443389056953414590152038116401650480372052989631206509060063190050892989632060159494004199449404318170844653761745299125252469753454788263302294065288077806928209122216703768536153482869941351298722368081522219695632326491426062097527425594586208951662896850068276665555250714190326084098987123558662468359795666075290551761821573849705140905510454789599251178642262574705982871026550802443195652714722460813415732865531131560332950160600243071410582791836027982054321628678468166631050826112616352124888593769141040386577854308900748342343906518404835681029528135024701490129860367983299975871619832574058529220513820049834574825290805729171862776717882152278345463398964099920871158617372376747126483101059181793677565538289023999050387277747626750588200423538312540550866052635976872670998832711223242826935574499598459004668004970218936800443789546538435092863061720423546324890708258933099616191477309520678471596092229378654748787007105055240951007767789457453678077315988292034157122558377044273598591209529337269308117824108106116824988321345597485001261281269875801135344251198705443102180376929090436878990882134545314557899277987708329917655277805929055885857514525850574365824317323876966662678881943344311056819616390556666448243282763246322819181146023542270643359078956540440096475822021588514202049439835052101360964568655302139651829900933837388347979527483960901416846105910928408108475509989576803149462887426301767337067272787853019088992349482213819706550246472834340751028113804576862440174810308269138816679299480089275687680294981890770701527007987128610288380551589230555040188484900913443032523295368551311310007801908702317249098967950414830619483892988131238907190192148094272708250988693062433597077899654934111998781734168021932729752701096990718802585702350099736547727986994154710929743222987005294336655241847911696056158094831885042200567793837677074755028133818086487636529279351884922912743195020225256079013760656835657554634316013312904728427182360078604857104089101632743611240332459746224634507401225724689915731178707988235312234489587162292311770234161457786238269784068476258132988327002484365443970401917677492083271216629548284864124212326187551079476940173749792049804773492259050869044066023743371659689982498046626795446082605414912473104237598339202184339736538873302737708036328823507156977024741225041382188293198561171817702139761884712424505370140938761840791146685652077181251548611685198048223305832413487846701149836478584793009850205129868121302211757177440863256743773909228043660280464044102564928475676444921603620763799339706500898290418986040529662477344934256639677400746532563774365900293449833096142521570598906096059542586046927812243365631264219121929968535281049843824951252942452009727474313115431569437418610100049499132466866724283147281872380573892534600171220135145848738906256645581611753538104730711395180591175659039624695965238657427154598640074436255114758266439527444372888362654690437727310967966170554688180817257242201938587560011152931615477533094073266837261712574484449723382331682014249314303332057847416781500372743972269338451264455894284984522420024070746095111994684017435597621321842650730218746803670474144720283962505906089895875369305252043677364947059816202392383707538242998738910005890908488077014700896465016764764799968532186783184740389371444089581353686089675401184668379455255854961859072873503916939695529586354531282841285937012487221357965109308906318008831361921860899294875422166298984871377104889167369451620139658270102195092549925224855413667735696437678246344192821134235504914873325288311573676196438213365683729918990066492455866572438571404642463635345206535004083240222361091734767879712106609806350920215792121142787079561208111258199369907456653817665637261739812048808551928065830388434439146176662547643770101216474190262315676977190255920164412215271580037439214549718073804617654996240534102958588729248496139079144754838857471168205800781156241196254503840638664397372108485072872486958215963400675184522923623751909343838107849677355024726978263845841270407557515075689979929332607363688086137435281825814727308622808615210012604577864280824747657168477013779085328126881634688529452896906399372044187868106203690771942535906680403863713747123654229257803180758852989546348668123734427859036739111675003853829679152166701394844889794195636443794353874523640731664463769465834407588689813166333326706457720532418592027576174410374359069538412677365957619692967584272267829820867569308017895612493590903671603600808594652780270837304301455127535181144064835469569674903303085757354979947342215142850979455233304617694160955340017409872331956286434918467915043441246451105313525483777982983854833808470475906061776882378793690315353965742197645251616665921277394498663556629858605280118124826520681269477532861808383296997090299950445181201922406338924343066430968196510113118842856822811836254458151084442995566759705779927173002157386103741136369404661066547091527186830896035889627221140397627260282830289387720567061116288933375347743540570098566559129179264731374356521256087764689237191549423247751228302686883320883544122386095093893220548195947335457483349902208997995646444123929597184635887260591408989721969844908241965408541613419476413731917175324363829172000835277662959479298892873195154991643500685371277258624914491906823756236830550715213560919584255537836568312822626754927724204690054572573361113873313023707680926236262865358282874997638215643565072012739748288457435234736194013992561190166827848401725557971445161929638258718851786993485419121403967886942524630386159654055393996592996863951537940064325438496070114665492616141885329156629468717866333170876138847757702602229912157445737683320468066271450973474593788969361697252366656299291576876270531504770858232777476850527198699388058180310522119808441663154554690244777399321269215499078527708533156511004233039170110820529335001105101147542387489831356100623216029623984170119203772170187342078052132632751462851835695071806173912485667024412361255604256196173954056369136050827609772119401518894841462879068699830780622449822591432537676533224926879057685809459542554892571323953790797773004310596792752323474859443576490936211757292314013797918651204747978998341110265192453946013018973582895069509394164415978095139324008734685826109352149806113002181476824741317298730459727233223706906388368806844544951572655891130904280946637929450292842070300918338032422554497599710607763594610734032084741064345178300366067487132369973566818495566081800594698645216754253110160830113566916251925342379489037592539101154450985817441594853482189928859398756932632157557629818715820185984546088819927125350781477788255701775911166889768103460795225178987698787947880629144253914430538252579825524102898793624978968431456075368886639225032316066327507223236180525469008637409862322279641969345349996663703103256159266051875193205670170652749743833008488726218223728771587733328270998714200549509230104882044949383727407133963515632510763048335589732195976091072239573925998771637986638533119665027472970894337506416849777483029786551078977159319110472923004137075331212826528480814881076789277772616740856296269531763272745523120534561387282476282465712094238954310711112523014883134780823579353947751944360001962535704040246304881619904802263007166297376210429760180920814612975311801084423964946704309079730945467894133051740557433126624660823461824135456273942382462781108464809914315274754739315789901418491855426081121254831255998055635050074133325826726847629648940787833723733629637523983374061565138121444516353411323018206623874628721036507726787447833746406531540801957090534872350795548771893257216987630745156086811762159193062589477035265097309871099823246414315804220912736535758450087312224964824203990808031814116000730951172001415696577545906369665022345051428075616582153568087237714614826280190265271356557505011755974225958850531363754449313565940876331793200575727490834162571206396852636519200594066556410991536040307785214211461584300155973500985237416539469044104983299695088745560567465652463348288524315396219994342478241527953121188166239489057153911012289923396020735782482237583920028505015532441322282506466726221984375260573409206565454196307777221270316731670756396853515901655452380720139548848649133585324564408924215112510999861135227944931723019907859487381264711184828996140186567066498561174796709654241584313977208352332510244149423977477058864714662806478063583572362328898419998084850812801310485340419805012890591960792009923055080769696836894806962407722323801952875210467600107813712402718682575074577711240662409209681429611196559161892104240471917585386553933837090105780224986292452351088160169509631332137002441801209516104321764451173562511650870374393524979433760693728721803967731684024504311681783382430732415802215485287825347038530549245934504958715822754788533907025226492863699470379453071203897128255097777408974888596102871612039156902776992158492124239907979719207656346612521049867196291262063751683644053213319220235287139000062446466686825844034905215649512595197974790742489947536156973943043954269411611265848639139395931916863390075269139272937463721498776042845667071980003276545526663875033336260191626121421995759230445815030648231110495415859309698987066167720834385034413795187162975045544687372248842464885304841067267153974724924941622911195920805486907936998242512668293600837181420444016370980876684985532988302085103505680521936951079661740619691197862862839883071304373663343909457221429689672838383869672891147109514814861519431370578696626038898270400653113979359459348270549128680636912430406422700366938224784007556696925924741051295923875179574098886475116477990269751966826180429118432562035301233667083609143163422821490777811687744078875206720193414746943345883404249716500615130193780025651156171883129063661148555938757374349037207152358027053648428561992830705326094428618909789120925652547423402116595197952921586714441567022353888314484737463189109896796533185894656336353058255430087506212412466532897051556901065535095121660323375818605749144150866016234334726182715695368651909458483857438436413588165987089408677415258357959932769114006712139796347104699694372974930789600704210501789771111467715597801348938169669155505390671386762765451155110628144676676669937419697522470896534798403658744367741412815976668507778341641874167222350861479075323495471005512634000678272597019409657483777500565414864003629733712404253083289628197411231209040207372224876566298517151916301058889549315623853688944274343443256829912263123694540004234908278223884568546819489063931125983251020078668933390562223582872181105386864647763146576638283039717098099430565592148361578831066171398178001324408926056958700500430019254194459568888275022548118291273153042545956375626442978399768233993713875820028996448000207634208636556994028068537733057331002182543589778132925329890592486068859408020652688189968121841284754537749138970290185239529428434378789730110784797650217417095496265512517357635182909123573987395804827097096540468108175313676261189695026094600396504050422941478301128166749608117692734779502614931737653570915723667088474360848212288047591161924140974746595395067911373641120541627392185577492629903980484345937012266282905101973588423339767757510207540655278748690395936584019657036201407524521932930942736063595673995960334341584048027559555292528975027652961771215201053459886005990502480667947504440471287775462882203762452532118065923645377043566653199300408277888664915114207137853866053371104622269790347677053337552303477614123894420310908655330418398221589014192006015806210759865112671101325852292534574559437536863359045578725711887367604078620747515276800332700583281733810713608460533534680666612551823104324214364255394388434877178240185306229664239465014001303459956172280434502877559165370140059020346531096401617176159098634894744792884427977882221917708184562614586250913369967740841814630753537174267245949503114082224834553690034647930533158320032566291374489308439489758219282071120305228357711943376341603285841967271106710285334321843060810972023468292792644125108724300964793925481010068464893137876459455750525520071637146074753380239578276045010862796000202889641690902385679720738593698062744380600429155181064395513890582789122614004326601178971149687121163754193503914651327433220631326839839586701902118216446698147619098901126841791290770428395854207176755778397804456762742884291448989633572974455612053827522828190119757522409623410776389027007004016646921956862713246073407851115790067949272321192480285426877199680609202788234174336827451763934203383251124232739358878203167922296177849161154127086103410314758101802246082458054624499320073686092462731624497190633893524416849723739100084719927504785719935289192653839059490776887721382699221138671587728097939659144960543942205840630942577918299938077136923271353881284662869870201655705354331663723610319122889332254037781012060734582534249246232861992286543190714243651079488559954876239206600654002949661693896322311194986471039837815401829713238744343356097321512508986649415976278543584551548375879859491159905192029681777608132680387318269380889297850573238193028712313562885604415176629229442851071985199534552459749688440676133353113516295945718313101548803292725888180228196601236182081200171708946915952492524020625761238751085736352688212514159607218511401858115879571196900930086287867620331893515318091398254701984755763235633010410748796817135398786537430764722889153476109219501440035747082035301234247211618866875152423823714557589556151725820462257130239085596647795585686692657122673204677786962569031456407404205860499413816814272646175869007690481413328470413469273663102022855431847479971766323718526629546540989014773041220040896056215444741973562122102994747764298830710509366123024062327556212033707358867683092935325183952321574983636890363274516818682326159685159664061740913538213747630127154611843872320488775687606912360069661873433182403693724511283999587436542497208205957460403759578664916851377936944463492853682616124980796881070295067561006966607888815519077556834586553347264802817215923019498751380999936097628800141083211451880167746779976800987898009241698035523589772520100664729562196835015572746888311398894144093070731235685753864918173748285539915379757334717013876926597167392301560153260796298840416714349496530989609901612483724181238009017830317722426255696398563239039474144350977579409219946050057679022055510288883897456066300068644147145305859852323980077983082498505659409015842060082372655764455999844433317628135435575057432293346687906238954225045848423953395262123353818388789674403290468146910950399943212142366283880626127369829432751141774189160681006178271072625787040955159426866244626843930520041564998996696491728697078549652704114353247038525508523802724618755517905853231572915564226158399151633836696978784912296077633543340475517761086416206747373675379079118689987469236675232704307410492550122124500500799542966941733977293964782434381648509101917744199799149352600205518936080660151434061242089157881832016430666607187516344124517121473336926908422621579169497701955284622117651861820077334305461470176656646669754856364406613112250074354139639319258057172580351483603375442876067672130664739788809944022969104945011873025870728296336953362171133894164374800047608886093641588440467103718396168935686886944439683723321064199514640765312864220666019281379975538266128252335251455863620096941896118140437036293286623966577504861205537769702792956600040874836217690904277482512089907253922773312171994043720408415596159020648318056765681228005008444019075784009978972401353158638115730735613528567653194911613041074894671652786342198459395384838798271902937948424283989432002572077752943032072396498611116307348074236796697304938041294912039924891799481379339762626693231452206598363437073640444663422052362367119790614720247340640130497737108948646373576723685754425941089849673451500982176387133505651490640257336849653558211353944717299019819205992568465412189879463894716083141900512200833929512465831839610213756233058095177118817204405770757294447148832191737794123387419791109531306839079312666434354787187989263314861332348716342018778312148867001809058635568158859543577458106721230519761610697252651627334415357242891363235741493519671289298393801006910535010788931942014865429495951373618550645906440109705572666509350224283132529484386220623177762573069291264365667027469908855518369184039107941525741043246278436831307697706119712932292986292219497748755472274182307817876105026478356023049464302647226065916241682667468444858538904378623755591795860877694057222360064797809697405463500289690855421468360963223663857641120530575666713756322984760324841173574602233776059662112647156705977813787004076404069703836918125258054069587817133915513793169716287853367284168773580764956451495362864089195717144828294791125350578602303909653953585213342506157141406604859349798596609970540904003151297421611851012041796782765371376046714313612268187652895175447722477830984909406021457489511072633176087712452268415282664617366983992843956558672455844880658995354375801149954715786494193144212173406460401782790733101524101343511157374405480816083415860225099849103499319923928575744509183357307045155488216430954310224712629695107560916706089166993481785935733754028321728690140236467874236281356983044539236034909389251858313649128814173354434243695740802943541869582498114133582300516044605735847713477309100523711613533618719629601781168967058488017148765909847698160175228981569914994627673003890759548054866405874915108204996935969007296419507989115309001520682249728012614743947830234119201384887007982522587787206947643690824696665357228767110413310093265206341266307583131152766137664100268132062445918246104978602097644144697532371062089639987730018586524577595186228203978604037510977917566300326919476788493418232867299120170198196941334713710677690730066963599622631729751617889577646273735654803868471143526392079607372811604683429418007450125635540190638032652913258004897835750961673350741437133058366772236190221311624987300589626368455702301159614530782214756173446064853679839760081622152818617260927372097199767110197114589859703498637646055099102899257881032145499024009192771298045658320886600032014198972466141342489564600539706245956594398782106152485885498543602427133037739167575375572332269913767442530540537391412189503401858192153110241218732689997125690949695327697216647752037117508124750079794515881770609659428259214541340536191164544462942831644687952462785552919583540815374427789088966298680533798742430672817331249973556211257512628093380340218896022048785247510668497818115282892859345898902632565209649052527786037155458870331499437163123328467178590694057521913435464931058636787656193334927236421913353258081048589599903083353752023091771699823522525089207056373208979381468074462127619490374704762094190216929180229732622461017855912040330050090667164845308487349406687122891435058717400179718994110371971703513217052425672033854918482384698018956287923687793800002806639163256803714745280081436707797156123838004635428042391800908025033390776421666103203975166082931643116923135568510824178539174348802465377591700735649168497366911683300705256847350079345082781865557329359236609126813390654359348795504577220615519090203822028368135453967305949150439952688363223084177086423682649796041484176201887544481575231110621216107957065587928356190474786182217383547622408609808821809559176226656392633096324260005370054576820525656610904162548410209811141606484313020505787771290144220525507706378846295692573061148330701064338789528377219792979229020534490092366769154720876349650772406994010279032881311465044681532863471634986327823316055607901856311480575459185100192814088676094524828387985427492462119027322259827732185143235161477765980017716101119553042906696304479342179278086230318952227229754212463005462303228137076019046105667799501705739302554513716969862229862153734358289290327728260697344947365574280609477150063920836086277215594744696357144296331084593137578346927663503362607572219911076275658962227212729808718709874025490475252644484275638042467677421624348126841925751063790965844979644562922192609922293364277475035239767000228912062461097199091417071829151193013339705419751407844068627790166195742174420242397316956938827850039624302567940752216027817971639428118132162496223634675624561140985250280669399559599744071167053715105919987722788543365444744973601186567936603227188037358358950757511921960443504232448497514759053782483855135756514782557775026431083237747163121058912827350992504870589070824660146273025205827459716426294881047738995640388327054551386842920780597293257224110837644727258988257917115429380956095668884343623374930491483135331829850479493791193222005096018130832460681045177337748767083745933858176539015390645858310467888495785192432655288437916559814899885317488555976727594988147829143180736474880016235242199640569536062816071580963570893043210496228316732021558022024608572508307684747219097243820914227032189682131777273980931755348688517568892934452949974270360458001630926725778450484543132574092109096957830947775056028459754966639409594156755760356642577516454954880150387681075098241021245767098913038650694800303949820228012746801553374874143793713035626191715021974602075986045641630269457736696751818327614683648523809262749361683481428643207047518295317006902634142779749810889577092387051402952570466169820115519442641263780477324824082839681961138975553831365212478564506668298159505022910110784757471996569503013532907518520236722834718986265644580900002040687746748819997057557276983350204864204368083379145167033968468079581084896683561513836936799783981755201180756944882099058622383178378214196054178279610586230533815259598760528110587196088194979923918742404017095037801494722040248224360216190456744219748599827273434390122906208719373314690921781807442272231226325348277237843604488838333566576008625117306201975151196722369357534582927007527095880305427813211415332346017421963540921070262231012450669925603739425510023014494824123438735574162035965158881389202015834934753921236524736781208566602755128729207043632649668314549886068307471156746598401372819273621503083066004442319046147090256060020632571526145584265841060754528731662009751044863231079831753250511748925808529035680417520549150723047748900009512431178575131393838982251007976052331748106209969514265903849207678807569517814054378806452486253720202339969021470751444692719320027851474877083460354949371907359226959426259058178752648689309871531182480895799369539380283959319660464276156705283464859588000414807469139687590412605209963452018272217825464510021199412162767321947235800323479287256108319438662805003107787704336294024058344798460591268038559362719679909436300603484077354598938541678300191062852688125517389328061415199996363655404596142461547372874978832221788537193381949906875298388854669314192944849014535227381474718558346603543511331741005345317001394178825028817094989267275709258267632579490692332030952585386095922141433714398684577633104418872206855282010337524505547233746644310636737975189861323871266769399027121998288054250164526093129364917130328549449309298281135913521642429183309128318707352422612158293935051862729661891039708071356826576929601187740538259177065751034382625184848812920268929313046740915550163554068969548607123579294803895996959741660432521768487499539812497122771262816664964640367023159329139818969746615588821552690393196341219873203470768389228899265742070613646646334236849922696876653588871201541424761454155259725838676882495898497722386217638028282545623842959931946956815665658179353445622480249221771960985544375894864503131778490135418750327585955261452293724047563662612340989032549910026365753885039362272924436868135701945997663685415929045598519600420856110616524907376397685900603667213424067837757807571482628588622435483286106743577966534245748749486624030961920519768858017781697630435769227785894356324127235867151186754410467307877864295370287827365581199475018949828916791557993104132597517940495492466240548178597990791577038177286874277824120283647968520851533929448325205894347231172990460378665808398120012003291394416158992965404595697220614817335063407992452644089382288415099887872661643022353097629902651733162530452500066053616045163716763811395849293490800827870252972586299361989992440677892118658401979486645694824728157531714092477063156822998904941319843555459848905856845017102873205041233070658926441290117834690546163261206726481201946906404263984220035709409020686499238399529020408138044355249951139244892262383203832244348798019561764445764370473316054299021575009970151783786485444431321644688322227572658952278087457960798703459459521699253350124495984824232546389931163910586033130404064848446479368692293645506690630075521016994754077939452751468379369903254815137710354731125776801249851431027236856879885024005646779312020059898959910621213834952394784956230716575370582773265585072341119101893086311880643996048258162359915076947227797027082414816212239704888415230480063193434882097683183154580914803964418187464919092240129537276699326365081744445291066845790649539486849190947096402301692458228386402245342296882148694210518165421943540362036955509316439349290003282531997120637480596965942348397678344445735728612806927489181130513623183044792776790901280910267731470441547718020205170819395475207485485831774787804689763452195198280149380287733172807278112913337161006448790073302376758889672570725309337723410567356067271494163131114442716555173592435329896338126965303432428655519308485445272673419046996680216613914993962006690828716419786367913387070295389331429696088412763121349035334557692487212225445750699917204685424193096683537702108156602481678906136779380009912744294012972573745640087566268012780596006964239906508825931785205025889030438246586614670559070378796643350741476033341068468565146588313952194237954230386045672616857125795624733586844769813657163951912977364874157110803671223362861693218227152877192148582031645030112145400756062026014671583891857789672729499727933375844435344609523455783200221256451089445663567045461009227127756405599743509361920235807567755654595721580951870919053509865649595180639889041878168763838979802794609564285918623706968962716759821981872188627573835246460916088567642534232768864194165214400219264268348593603237527592886266643523780171433134733338836540084896051613231094838906563538302112432917945410885798862261870316755584730125857844969551269986722651007811533295565185462865090416999325601063810690017921527996993849776132866986627182242854669781579589639203834819223983006526415174210710403956208996415505391311215734746896173434311804686546592709342431479886893271225956759066396549209906255833754170275754230320253881472007935809942830242018688330755352916578072749176511422058154742248804019727578516213833574534416920581189075774279791271679393014041526087263470371377619925573009785658200948336259924216685886164039999734913828270169310226903695552731017580202656834376409142900492953889956274066502545699437993881975752427170719149925041945829998722844482022093052153463197171158433099218138165289048832884936827202373849017468325192996129419552450877262722516066863455116999048382818276630139235002658859782730196969068961670909291923453360389320654454963080208006870462702974961343187747219597486278439757883215824752280219390337445965303436024593932400023458437836538295468460282181739486860419915299245670668659894426577055637194120404503203131907214899563780837852965590579206555897304686499792733649763176491445009881824777811654073577623671540512558387918694907137366905470075759842673482931151035755265193035623911120504436308718431219406930195694693843060459104241613560588734807497097661193901268876582087594241103947356774928199285691567972164562072655758862433473658100731787880540116915349416857928126134584735222622287070239564043182908375156103635031933304931860950003748288667494559263389195061881226134610026771032642579900775798859119327305866863166605460025619411720764618355969238526563836143981438051387715554083623318420543994787841908147987961130332501836567294449774606210760713570794614710643234638085404503704957886139185716291163898530008816942750762430577776475671864115846870499248650160714274930728401211190949694905966282356682334947460394473629292432312901579653341321832108983794176839069424306471870422122485533120090602444682982526759789400454072590043463137872976480415761212698498566433273094621954897978579612609843215741083830070989409808183378316176677332634924539550356770739152220976319910214430894734374553306226652513649605113738956106316625444333892740494321911654276704563122148214733463980889635899456902346825354660096478156984767413343294990901853561018767347480259026711660496733345527659439332232129977216422649272587329288733052877403528169822500788257004757726908363040994293680058644947011037242943104929325542102351051127739637970063514690372551169281886451001724685928112887303453548802769912993640334499925653387080567020584418033965953819431528735669560511043566541661441662093617714575669283438409007079908887711461936171826165952825852295323843732696209991478640849956675198364750716820448689721868303610679285100381311746705317012229454400218168436091760933648663269923028926255515581215048033636855645104245010629226502858648399571981638703213178333095170116774822585839982115009624034851372752893463434370015199874353019382547096718914272519023542985094313876844534735922121719381636330038402476324747566695229732655825891670882095156187807084540125272148671597585774200619947247146043116308149070160481957454704194880880505447696223138327233753295082644058852397233805454845079714389823018279291667282954787434961646183871490057845457643463438714256942055219000640658420903547226322177838607321049555494828994156437771503846910576939832302970669982023560401496862516782451024702684176217638705689485359080703799835078852754518154152381548612681364671650782427438554650556675484591442668088708615909711966595784510407445946574396837882588370545265484968233166303441256959626496107202030746811733503526110123878532733139706346322029027374643076678845282870188719055882380265415074762328421623566949480422191921147096341085729204733129192986444911293719418214839160374603921103649218327561903335761134007942471988896307174953358506626918834502777451463749903636062840169258504737476056263733690015563311681453442124376113086649397018655452891766631696638229512381105708666363200081450470862249348404783021165299540215437006330817821774764687250621659596801393654138358196884123165779916231175016433856131755145089621788473794424608803367551454892818703818417905323855146630980608587248609896219163144326097005169577213400360232893170620220604280290505664061351242593072195808665577774577189193556818567369445450145488653946110534412953392527745551865140909672491724268004421458088389545399261372386036639117449577510752973404598646553274090674366906562579210180384901692303919501738764680124591805985043449543689418866202234241562685172650666407821046030181228925000221884144281828722853295821514963393032608618389375675203215313529351358462549478410232225195308930064539843511478798932231841304899157339291539639206211179478421319602579013153641199195151439587237720864655739774551902786074213109893144001702304242679037457214500950193548776075784655317849111066990613255482051672989999523364643515391358810177212385801887265021751099219098137042845983270968014082419498180629376568229662459479596814035668357996394075461609499808969738757214495886308189187055431461331171491577517660539430482425256377775408749512254724320899040140140926055329730079766042012479433190383292248302360222131197676444597339572492570023211390309826659383458550793363011711542513007006612907246916963643775296710035821262001530664496849454805578709967074144350805885841840746584691658565065151492996141255794996040873416584390726976548242615683735456094031778569176701156616221111281137848155323816749080228778686337058326516292533443318906506386237196343686068592160480794146285717889336980381069683653577576804873150290468172417695450949281661670258632025610583994425961459325720421991838582765432071059986806133843204443364517005773778264694488067821805171015549705835079292636913787329132503673043400492636606976406025214316964102717626278483732661949385132886340961776675349031673056067496531046519613732146654047809718475306314289792079504000297828028403005632252844124882312539680866394627983984875340364572127905949706173737892242757687268490939383818194250038265949599025108211718103263936142156806613487479079627597516969394937836964013057913075048647032178538724465147034568398534806100065226414513126778379447561379504054801891592336378449465972633697712996891194909814804618245058813325368077685124959453059170150071565181668743293942016053260530928325375323222441730512917128739064675072582690664241136731187736312676169911341139767709824132270110629097747208058736548471943635730090794387542802957910803850355960856369215553343275443698397688320441943461653691673877362194543521476070952060901978411178700775534521914086885472043688588087804157176968134654415841975940986251751792051975626341808690580320739886524427076633255504948847962819354827402455861307938183494771964294651530694315185258429040236036707609248895489229484228677982377460920666995906862008054963568970560899286921134711857606264557304240707953047063147993315497336440552623998497609948992966946466695005824011621921027059488326648984736462469631948193173487932607498582349489753970197822281522864855915076671952645451970474834406311980443320778891698487529577975070445143027302646756765535513166015303324375302900719858856211183995049268642409795982105929214132365369985216518148901728180616909969785881039375087237807278141917667218836859635778609003810760902437903125724317163723265659616500007840922429580867051468076286490428518380739073766782615594388513184807700098596096795455629754012349103602973913336648817898020475345625741236849946917481705011940740848088644964006469039646808414583806583346575259762752998408070335022623813277820036995298938871723826267272400414246398353345805928634659269582465879873805469888681270576852059247402211586593254163625235639313324197915476276735011950154501907317893543695187514766903919795114202097448868257127344657991869897694079210769083620048925103150310652404411499638790547086270618879425744249273611444458269717603826043343589383574544479226662786069139953838801369896250467741991517145801084506575623788598277153310312715489593447828434299606035066260769781902418341596734800705616834217029668580167308416163663371252548633519356032770493598109283852096520471854098575932235926026674213854187898770518012369170635773982361715791941036387146099106306143286556906899443420172081789924538465482702756090870484453611654276796687559586765432913379190873212761962472735455172775905653775381171100364534936822272952748706673359431050645557026952201209809174736007403349553297755317808098284567664677786977937361062229065400791536403131076106633586977703808091731297108971510611912243761364047892197396094096964937758208740341357548469264340784831605722468521925010033248430045281156841967638135651293152498118850700361310341647812291389747903447601698392494602194999316802920072751165428125778712254905088472099795903141930443649897534958366072593155508543828173408675635801275402256282567357703744250581893085680269605047579124135195154464670900251553869999318681768604124880903532235640187118286305979674850193322663248521369545321099293608587570799052444083394701381093964590232617885001906931254495514673727907872209075403724544436690111779700394583567896795167771072154864034582193574022449707169444078529893436095052086109634319945746223740824968418819706624496272455628138246272837626562143403385474169537984598097961006099267928482744584863980307027561298906786423129161840624467412764907588000490085850245650586340975277746975165439807922270331086753648557685468248447520592105504425770251617155072093035715487666107034252353542927997480700374354034053235364453694183086819307456101231580220609953355129119141482231875203593141654524324629668714199668110936332987094186742823900679026830296330309878513352046735765488438048065306884551197006713388901165251129371535657126452346930530614050470263470673677840096191885938430458756670022573269085985288553409774456398918517639027503449483200862500406727791697419022505374023662142411003944377445580108834957140366152318701364158204769044379119171137467244156317188556930990836825121661980002818350545061698192827032620263877133744029389722836420813361566030926900434657793425508912185442606525494700767795161112358769916522320419097302712494804508529433408148215862648034436484989888558250983729087224454588772985160900595061861620100251636950260164454926711542880399882399844282553750202497933586192262917887407059338638259071994239886512492675335102058877930365305729604833533320706116001291411228397022946217282493025955541146047312994828754477235127823138210192491624247106375634157214284755409871907710428783984427583033407028070967620576229665387852733259784204083793103917498000335203976577893117442812942967598118715212777924476831034580187423720442572644024801843620662007733587217176489625483599600660515616513203695827264241534296046361259817881242921860348574765567384747037151558146538603940231218460029128876208765414869526305718933016547866152158763184389674025742405378575356270828741416148280232862246327729813579868237669512550053535377969458252778529435258729563359161911323497979856871279351363848074937268028781777693036764407130781558377026679736503781161764480725013521926110832696302782190273227472758269893856064197062790788085438098003800699297812899677603736684395507908691555268737583459333335431457943093201412263364056339165274856134737467740264156091833342108710445656524878677800969151823512376779217907973114480676443247611716698621146171086542644027866215243055507289738734679267171329899670672245560988157274776139031563158078143691337572543333958825616082679127867501611541160516513543104999948517061304016758007166167382064247071813538516223637915161651133957853709656867029297821965415579201751703809848280299054637831006463586439720312350796353185771427872482410073548263926759049608162135236387346322771045462573272401764489925874533193103559888665358285706716851961797394098682333821119886909475572621430317676927227932965691719359525156659206166063809074308683727943900422504396855896217915023193345064754105823451930172537364658581715889074423907165702258107723950201960474501668046244210148690083221685985542768308487540542384876198923033030249479729866090786700275559874080590181818235416056333774077813684517652397718477205928210677877625308881243023940434801534260695737559119521778133684372434300357032690738601806848072124085271886487876571805214026867793289640753751004484955931574596986143227088588792116553497979622495838239741788954891264066163658334737990638351073036550327898232072955416375325454691700246798403769028424545267142465921882406714250459315055573257825392394815642344638021722520617576112313095313661908005295676268413758557628716742607941813430106004795811846416696347277730389945869991801274608338240653990690855015847107947952441707850056412121307636912406945593412827519824461110271153394629931208551416841196528596974285112394047950826849173156222676362670571934949767273605067191258937125393956353685806123449764289331009668344556590446613551651204333164415018562432354285216461566856404328116281616310781037407393102173193764310536007213574064064191233605525739340503905320594839677571757464654761659807775072750661326034918031867678884198679468727676358222557984354906305184747495789958812185020305674824737891746736987984220818593970537022809605855427911987443416862522755358743435471606275067693700649619033322158683548420016168179079301532767177320717301803650954760521886725416425053373272652001104087856396660350924453886358355987202229235653789663408910032966191369217329999636987980667753725693391668693495133779614637840335489854734851430484596026325636082240743517401795196025317214145150908294102662138418511270003895851904191659796621166529276402518851127705081239800249122825734133613643063936148030484740986257398193383586338378340633264244764649570204475310102389253173034609503026615679347725652383586230734256060978731005520750731113305956120071974698856442930062736217212311767593925813491532362006342829344866487159089064461336202074604439754709857325976052393876433080043535721846690596808654220862962034235104365988146458808266067074257975189613343828795850441603243366821444810335702391138803867445917209180441590602065240569000998581809256140836504004900209873139459592318894359457130020394088159142486557207719750573206975797121483395709356313273585310462071500604982012843039649393663562976568655016028061389020920283490673204630295161699875459234238279366055233663869064685877953825972168874698140771175076241915113466542978282257716249630405478129056267867163768844936318551107316788346991523856186889293388355954688489313151403392586037993694969909796021572741978081069126583919947062936064108044745710265021707123002327268158700434882846807062456979989040685616813470281738797037614232039744262461430696562247170253438904550846286919742542314971628995475290906026959441813142327735360819330216618587402443573660894150372024057560632636783136006724091885181771862158366144433809495683193970333803650988535803324145853658461763599722524533758676013375281205461259025572066525610330627343932949904304466969677310824964529628165864236260436440543205536994514724042166815129498879469357682759809223437356015464392975365102215942308377403007430341363335515999306750516236584978841443494664784321886216495838721214816856302044055498187169035044067502364737414058363558180737575901796835582236679242932879461254574968815429465891507904549104055913069571977830574685571140195298765654900911217003197495257617164250638869069410451338158132120943779570325531238431439320755588483708890712681279802531220408625560511977649576993876596458643294235434760236250851317260157040622650642233262303391801258740838038053472088774641043888491871708414149820891052702953499455597801442328991021089376018393644558834589111346563941569183247469633985098346213385438658486985243992248184691341050886062623290776956281529759964427648882863013575364650718367953723078296234791692414680744293936159498159161320207283887182929088920359505597618348781489430884292384504478075874577521366585651116444163843680031849825325251322578287340333320921826937384593361850576082818158029790023498472818696873140110361414873716589210124053607004720875056204151117864300353156178850174117025701626822770729997471104678254208375765593277922297053435426776939481080003272341291436568494738495197182286462682487683068763509005508543106705157830258601436290474158014050583616658757035873439199755702236383888189545205096606733669836939065906194780133681291695009283557903417162512317379114810682814792766509440619835687855702441917935089611643343683926002858702332182471436729219984324767123758325138309432154510532904842794517132343257569644307754034320131466497324128337976116628556116382966094408063166021957704440836852423311979515409748089038907744280142200240904937539040809198485356188609613614099598348244584140434641934663475931786652592673138212728441267331203327255657477018110228523744409172525172666392360793466987673591064887310153769143159192025455356037210063267138673706656702883695944108759083417976772459231848514801874223506682622574276226536248638916155948454986220037745836857219948531655500415932542454534477047110243750067841856382414042111930496473925023810103057561700522722065199698194716811019248683996006725893070791248894868276385873761457584391520768470304136683981041291775096938818073174230458342869983354493242851981171957680362043690983204854460452993646764482103205175895778157671485889249027713103742710984300281217006571297607279219769224385025058543136547473473811597809475184886771437173759334424711223514023262296185026639857036474606693996150251205402682663053602775298786503551252826483558840145066936228112321300195911561742564397606657807074959888917901596563815375748554537494497816262804182015722531797389659764174350295170153455682526420660049570175642067284127651287930674237917960989725451842717148500625239011820626675753585907578603808779437303314243307531450608134348065611973741097462949502200781233549961904353784804776427027464027036558137801577579350176927842144517697043044722502316108002354744233729964111356618053687657367787526875580271682641282777826181199784898262589947825995098086402743802700040809111976847160626891632185756900127238480746690812421908145629582076663604716261673142705247985460639310010484044593998676541390861699662586594838467148429119446418247342254073513504928241853767209705843034998540516208592639546479206694482960375696820455574706694681603263896121087396630345637099575054638052044684414375644445878058573172904962234913211136040587914657213690248642833636920152110351664870125349592134521361382511852475577972580986487977863704306954461622156745298635350040891779781127648494097627840883873846148060400321117823650273520442816923857546737266878219301142047807476771767196211486261716390768223959614684519451477806255606289020178217956405873994035486370243693476827302662098278879378104388378757465765643192633791296466286838384018925348182854040555424557748041885200543367445708783582412543365666329495851697778690460379196791655423312631399328391579119298238097484141299435740866795248312046613834450484740018108963149319703843362019444996303272550960579345836541639834176710275849268479491297706340107291023415654816081181300443913263682861506790185252147571989717701082743012146322343874805620496301233125522645382436088167045762748218397970828282549350096276402945104464912773068381303240581826395380078475749499732573223528618362863021808652878707937151273710294889171439211130824140025890497901913150790308620322341606210931907339806821930471583906330738131264026840900640065918779121227466916325607515666456077797118618554576700152778975713928819274548730038690681478181648262339068025961612476866953994544171502646526321362590583256707276548198159902502832559864080509131814581252162301002710714525514628074612454119055672047931499745623241142779680262554680235660943293812869051587013734248695650258906347109769286254742150375169654134082708006997641875189793559610963051148491058015502242540238944234046522411799373487583837197396889270399150639533764415317163989510489107427471220218092111335976927117377110838416042382937879771589140531379956564897963968951144651969272359051695612535029321017114914029315042922304201831288493213242581781191361105370259722580112100502504763827792046074410720788588859873008512722733135184187875540570033525704347956910586866585128324231788193100645358445966841436295031247482430322432444117638794733177008580423702017551360312955200609280236928502595608403885714680335908989850481299991519551448130858437106706067554494167920312533416939583418964015833831837680327280625820408119088184983268843401320259662171555701169964170647013933850446753619637543365771896717621192987586856909353744622020687618978964544751541801113518556737804378339117423596069198417086468052324689508804098640946818083758254858289714233225538116434985697491598125859126441914202581714025579397118777644129887084889203185055221544871721895200582487783953697090959659313387809520405163173815028089586560029208520502133981665146560685959524472277775038696140491511048313624690558661771542326344262806601269306630920945621369927772957250904571301566090404878222244975404731697923893913677508173505702077041612107222227226328051178657713300784831647545058797696206565607662388148664113180002964706440355200491348171552146967786993151511896563770403682893449719541833898449765338121817923103868828558836661514825126083442300049210919432254725725431559884344175298762752650706732560320261098652660373190343156862362555010638843799209269833110759024620173375041686631842644329751719831678510542285612257889890815955357747190155910322775817076011625000299323308903344297914671061659829814521593110823424228997214234281424586360427869678864002942682643642509787619672729947956970205750338138803480423545142185981817314591308873300668922062945455952224039124804538438601492408926263710323959274247318050459817060046674528317103869447493051224284292692916154510618093782794024970731788450551427308460704645824881834869429869043324466623567092022621316661855199122508300076613882927558595687789600765598748157279192015835359426529456270524183531058406398095254119230896897496342091313741208602387566439693292021708472243176343971682848106559533019620473758057520592914469642443248947021255787655797884118985229162335883587377277630536178687020463909534400037706892077770343223300606673024170758140913641842041526863078579227997255002424376081212397550293152242273065903581709578167466631371950350159657234325299989458805956153453195192274274570842564492082312747037105928274800330969973008513914104169357876162148289969057276080113884355821172267401407765505286679222448958737198389057783268371849982767134143561145528439080866596735626850894789066580258118797740691254035235546125715419093240225544212955499945733072566103781048114185317252328356412163412699314408992016189098247237827259840576621149060867287119661541717344378487831272479180976900493225524481496488528647167197276150833765534509079979125545453510062210314585976934462443179584566187162747596978034813638334916331910912281892259126234209332958951481270915265567122137950101935042819968785995607500005422716189878838352871003328037454086797692303879380087014557837594720475817504793970203015696256097955627872169184843367258105358243812005697867005868142871825920390661524281794220191845926739429201221227642169426551166684790342653178706210708349828107593117296069861443662682137227836554623378305386533858223627350443067700512661414143664507845655893976389105066187433298684806196677023598991732266446802788750854519081016409849701573058657331685843867295151433953376288333648637700654473205861071135457206217518748887648301475881551691939081709298169028096256038792718128492337827466226115793222172270426683073915114684834118137208739045844721533112405791203043309328873362151013575044733247740888016367557763484830737171500039148189838803539112828629244901900897041825444350707945423592653000390477842974262978535950646748627227599898736339306746053886715641001983623869055357584770380988668818719287098387463576593364063536851639424907578561517066015114937764296285077076150065604632550802257100707483071674876986337960732697961628223664445378410836630507382415198869255957549916939983103473438549039739854984034394703150214552177151739946585918460463701319768386122671473631101249063325432174989786537705829977250242432050309295369820285148229225323337316733262662390526504942687372817216752154078408657675889716907312380161142365568328697967271450573781687331000595026222538204037092775590281038430035158755014866111158687669666828665791766468620468195031660609393237274922837016769362066762071886705310746773156803683470827574016930760823848726709761535953535251664806294209916833335151490875446026854368182391672345207019377499206302353702460606409785831209525240639946622314419067274279593265721161769307278078398373632631948312741166738232884006030453829566514694308144419928954779901305138067335809277075688046457217406187357133343266429720503622468437507060018806633768554899290464291467129344008055282179324462670091461237950563708959998047394046002332027568212279912135983835136644085499924528969243764289660714139268533472519923687813814602380890752243014357750651511880402358265783351148925337169654954530084024906225765360613006743248254420058199496242792080294496031068089928821003669341823977680709999380488082523659227993164262589833691197615139136546418799690302258679894204787695431481236228705589472828612862228057584376424904579558974477345165811920576259552665165927492206721204695844933031191406574421258321848842708773512080478243657071540803725121321314396855816207990736832014153511905426232932898627965777769687473565903881184380444234561365306815562614380873811856659374204591310739845165647835381300446360448469650837333114267231216897729332438537798785148517527894530203543674370847489999860803905139656831278709250440790188842200951307105212325854086907889876168406187847368076598147416335405934666625954606105678003565399159963549408505436623061313388921221197468878659718770078527336017098676147615832821127567644204105074918670951774573084273381005327958665187748146977077670029100933638735391217889644614517198760494234319210279187123593970864257620315973187027042127084488578454165128339107412878275068871744188456788333479194803742695485455516345596413623778046028660321155924841115841241082102512591761845266595028886631292700726786740336236005207536644972299038118943719444431366355900487466989667495612328326028846294297522498019203778889659334746660767042043209398582507786272998258261303551044457614003310918536819401522394345001754334928369816680968288060594674432694603042446878354925896160049447614510682563832758774346478078463653068599336451625862155558269444403281606477746532831810176443409549032598900093097392236989639669890827498509086863319675167918257387314563670700493876302919101793657306643620539165458036150279984027349282590959819280935090442915373247270791122306646038398141064417060186286579599779662601360147087219581546499757218045668487291714175111597029205332885292341465471952546941371911968325366241502144073344609932749107581426909648999932366052623833833573618265389658782109241130846945266572573736027772743877054263067686532366897451184350138652382204082671105890310531893309107679089502509945077925456623200195684855779060421699172952811459870028599009018012998604157167149586166356803896483606593703272069881640938714524233349005560219731111199298946019384837187972987917047162331268602071478498028491605761260966223090350798757705230039472370924399193157333551977430053519272484384891967119688978747134559852911542401908163797531607517334773218297060195593467240967203707671530560605140478695554649043222098804143143879630907912986349658068525062123224760554896510392341862747832036876954432574770527713443001745851359042367825159387140374836706965902335988444764272644807923002860239410649917943093093830510080661256179665668728076365710872352147052148199208994297464839036469199307499239806175381344804464933168145226791683881772052025585415076075492364917602063050142254519766032591567982389595811759464897084574798854147556152788195170286578722363313290233031085013674071712343345165498848903017192743752954854207543247116848456254245721894553549780153563834415516392879997108090347371498549011285752775472931822868285520272336650274652836544771976562230821535115710431960036287566203123167426135751604602895332496197782395631994547140675208430222251289937397081122835364158486202184425461312194380773392024459371610024172992449083908641664690123438743043664767212488766741204572115982295684217647298064491023978763193021643633167907696877081959196183399214730877474436079486350399015964520431086514208363099049541415680273538684347000701370527631730384979973684955293518522379051235411918911962666348648593763307148255561226046059584525541090410719423779051928999632987172245144967721954798112473787283535557803011728056646885353953982789210794038656480050533472253832366669049156553656166645505498232884365236683418670909683631177707734554266049426848731137072622180185825712959302604479045221184700809636530822601352662360726324023384859073611411354664360348092156084275546798458360542055234138193721517743419679258644738632729614356702149863182823438949906812707083592019734033327725438144534988031592948287988937996819559033623934729341195075931822140844070352878620248942896171142280729530122340454887812650346823880833434540179302146601583350428755211229672707722794195227137446040245217780134786888940690776393552507229783201976659673559321101746684664105532076397200018068672882803968925930188198490394980130989690676870601719494567476927050772476619376283115177499870607520567499452081989159635229343930919028078518641659257801236561603349316007885925385627122806729761513259738083946627855268563344661084871792194822761190699842514176375482068992313906217680889004842220196124266253506349601363946727966796391578522634908561730830831186591883593738612030185975313345079737020355938124799006973149623450607757789095465175867754432693355468117328003693540880241069858614095161652080853889202034244225845463722158373754804584614869174895724212110492690113383425721914228957927001007915933087545278417056510959925426050859615972045935888782778358424465085628360659381267046974187120939957749416081892709201266838286448904556411441937901898825203988053333349784513400824010815257516288077587212549610770069833881298800518290942001194877530192929838139833250525553928890639091848250360513830357696464854897345179082766593156017893139919955961383042993408843413136653081655382152816923016374747024429389684427750269280909063060225922371228223916100435081000134978048973063851586792595914986540994290285981445020432352814791209202947741661273200683476290913523770267869850906773964698124416030035671080842562304332913975428914411529606955708004754634190456669831748556636962887629514378658235141430348114316347180681525388403626505961091883645388741910252994132738620374842278062119555235258778895924236828538892141843059576388550072703275537816183731132216085811770202167983134581682034370444528092610581576812178686532706849420592872037154146352450616189319861900077367961317351753408091846823497619168976974241969739012415296549853662677286340995381686418897561112129945854125935399076872680414757760357381097342647208743249154002057390591061339555972319384310733114842411747849851650021581803691963908793019572460581350699812201487770220592982140864881246253370697973809241403346234137271671312115700171567756040093347025944181973325714446440773538991312328062019785669430782926223312449843589106687284744817849793224615499669028386581052797417920720050854330706856545843138517564790986424298943440709059503804945408054413636539575731738250844310745261897325379164201276780271351871077696323947932564285487755906612224075376274836323742331546791907743665591106444671812827664223696286577120556081482552983472690855147430095483939932685335936386766734682618941979421497925157672058183002499517660847172547240878543773354507693023446637067287053161957694559750909519978997874316405075890266536953678164105255567250682908889421167033100061640473677599205217580663598317295174716636645462602710651043110751053930643234529277816168196913794061797313459741129277728265744291556816070139200593976759777139701134702831262161663830171330170126025397549027291933289461075880134207176605588486551657239266332218154556943537906901304463857294439404008032061701803199602858316384544704354854180426453862398966499255665042621338956939136682258886710410608379214477512482711443400082117954138352779910226874227901848395272791485963863075844427633269602941732769241004371184108353721949781417914603714177695355075675653224973304023075097513080842912349970908738314872776087454856580867474874448655935937902723443235422797896800180778625675718131063740532843498264036034962971058304441865234171667547956180586969530348339268313340378556505427833749021900666603988617383738245224897248834888866638077495303528441122084719981158540625553527930149183293314796789230586154091640478733497718744818134471658995315353136736516638182778646732640486876921419497652216103541200392828542848855387361786622582877996021224836575515425121597512557171798771563374625420368907684851201792153045052373518255791784633255115375289447438460176675838323093127414308056638512627995390923696609133530889762424876576064144213898190568553536549622744160834911979943950510071849895848303863265277105498257143677864594021819890949342031215548905639037874245196876712800303083079491486898761825771388827635730705165007464070015540447432619342031593884885075552049681465313584977275010307742782681254193126737724358987690281031463635947639214990380283562217462039487619420997321716100945952453951978130266560746388372727907396423641941145383886731034034103757663866031414801207409458781494614652126251721351344526123792878137940038330747651451782522026674787794238331175723750518156547962618668429546085980099989346881698580022718865721139323034964913181030989402070025239188170575765585546832753855028397051020236117599544635429491775567043037400493253032225524967132873757787479033174303194773418778646366797430122048158983816788872780605241259609354513258203385935938261663844265680906063213702696556295569108440319953311150825414759974323001591060013889266461025888227622690711586662777421641960862018277528034074478056751234008793106642237751317897020305419226544640492281366256702795350193653854372296260498129551925269081088908378101204805228888582358765369444591905429241599843475965783676728326137327404153076889898344559789386646659115529297687625228910201623332185808240265884319189144678223944643585145971100583973195223053598106037776218519797725117935543599979957868972129088498327456403824021778877009863810666331731616588442583710264335246923255526255225036990956519979776228333076491019118907905643519401957027770028231802425745376108084582106051268669660833929329816385438826680107313785837626331172746933681538664138909828743301046868043062825752371493100926719810829053034981683178707952105403918965392014666409451139367515920850649124804857953298788768095837416877972649565429864272237562968015879978315455744101192013208378696590412197783700969523102224437778924379742216473570505815972851257532914832962238277726486444954977086016989218243916762341033932589782545050103662031603126717210129117940150329079472528778336983679030811523730185120629006346146722942037772928615269322477113497262507910138000523294165763672231067611904515888595860024866785813804043519117439246491936665575185996205559025426157816775801790801195418961033036537764730605757011022443933953633430439389714085466257177589228199135614845541795721672279157157550028859688401767758564524619133026303033274547571940411533559232295561053937436130366866751361716216324748573689070755568476592715004600644891835787590302666066569074162554089784709245960766706400684424168565074708099704860913415133948542098337772722342151327981578447419781780783414483463731709582394417197912489534009871045677869716236491381033882007652974016014425047657303886907496522055179412022610499891868102749948782939364345360056573433073345630774918138095924427644687428818445967511686361423106064537154947526237628451728484022391621785960191485843328427064488992866893241709861259640140747698036122799100348235737141871705162016949183350831952072328321228655684232673829106247142123675589408803483100066135184457712948253126096588655770049804281530274221859451456714729890296359714685582306926974318287177916771320461303143756444851055895902859263963894510823866395131124023145491496803926728546246924815261183105353119742283289274315974850754895940081482812941258946271407441086053251144469605449789640779427879636575231224817137229865454732226671440737338990671449640942636995186379803490533529367145644729763094147835255158127064484385712440216855548762476963902306055261730929146268512898994384853288072561347603471866140008676900907847216190417068683217154047578731146226728448994149604174284161360441023579522330660959616696934856215246206151819849860385886286518396633338884591814006207356532209814285291018209174350733245191019087805091161393488990551312675668012832010604732169599627288020825582993626661653987831545131258272451042589027994631107782565072881243892833310479380975743708157800870982406078832145082437632025828335271188463752717507989912167153446555960641460046372440338483918426044087774402924567840724626046207518667256550885137137845684192568332063518844921702049208072074180697929694598041145669649499783100056639599469678540266682901433677420838025333924612169393128867604501433179195762252193912744994497027135146061612260002491167811803093097384534220304029511031971572223144320500208113652403766589059125997128852268658838576910645464338354225273423136952505468939913324509938144155418244178194167333297399182863619012889632162540378554574224115095398272650199065102125584252058965033953752046765652986494405857204516073798989739558226624372710969938732460921700421468205523089627042625720256153170952554568733171931244663684010865537468353032839677025783686819744009169240337145511693879090891230368988573118093787979959138295158805465469738626069321787682984504862782075161988760075374676187447243154476455202190269923335097530637546441992696035485475693550024780808001994391771425938383213186885469117643025491416682981412241247372340330765439276477220415419751891805444380869399001467846936168999995367192350586603005456658978601940576906286797928421315395706156650360598976704422572689049250488417823106355607612859387616784504427357007961660058235904495621294200850379005049523258243849111042261938658419975957583961819821285900135577856731878191296055441142560800123170125315096894868091680315602620130961186377707335915109702675402431409316024808881649861611454734719317836254809188648729869162738789781746923786839184164025726296083040709517649772329418604008360067583003017579293312206420184632397542889814501273222423216135734001333670828417502285010958664750538561845473044117204244252542051617258607085932848248049871654081596360379464689125456400229144695791072875297263617192512914885497868912575094124228168995121377678379947659253924574668354034676191057542914584480163101457701441766990479925484956271430259977925932536475545769661060833660301162901936256328109918498022823916621002390741126462726378293111041701047772703661739728969029130832755363223670477890678488570537398446957428272019638388922077061171744095014077561968890447490994471944266567288383708211785636911824948031265144235245447157940463779552324831846797012956039995374352626680171204656517974851809852671031978543306005126335881867754443128863466593598122448438832440783394223759947931614965461651680413355123437979353668306238998052103401866257276438128682360878520151698605761048008315418562455277529618723917174604571670335163926691048857485337433262300088844842280973590513900373446672511502171184075724762306595680724824997124401698018885434872914627253762783686166737192798566565971000926892304912821644344219049752533483037114899002976688109848736618315748062083776022796386043167563822239680486135592886795720215006319963393995056851083070217019440649245188624629242947957616181699572916899882130848222318334274596016105931797422913899767144127913976113556524294012995507803721271299435525542272056571286322200662104002157651942421447732073072224163255128532639556013332297587692756257339136065334339260886757314652558318832744358648125570344606061344088267918721962897061027808765425619359526900258743570824427701948235141229391010696724895434476093739048166228568509533847039257594779328000339173074598484979905230435978709832458370149177959054091569381662692708404229866617527658467302484128732158743283169804582124716378631231586866564682658428858862322521691928459928440547019471373688690111710367839612355799754259807708761227166556186156898133124133127022735313507633661499673498295693764381260776778496384760834403824360222205538305323739377804655596308076978344038963563853694075935551416636800592544426071707018629215970759235710460856514398751858201829091255626377573880665231720451052369618364352222585427131654078918507699365817982017973027775998637428608047301389963079527641314797867816163351031334720727736197052873034965608349129176786953050153701102264526109575517984281397047656503040938712656645410285483097047079095550360631465800477817402312777304549541126270001111967413273096855714371914550966047229555555264544958234554150822024831801067946959938771329043997537263074817966401370080070679807088229910356214427840234576332724008193731871054890161131035011359001634722719391333368554831148367920097691739113524607556885571923226086317275676819541557448003440294685781232914046833838175393231078003021194359240836159039144568234015029041876298731690454305548104235090468061367699934689029006278643942872397466795310267183032216201860843246110833855824134551104198650231715269037668897389717204156291864735655959950213869727250700838222917477927048860774964771214839178666045293816381818887594461350807176381754802754798330312816011466183920802435451632515109797636058375297301233195301403703245023634432739501725207948605657074514165237986614165076341943835456404717899082056782635981078912799234998099854233627541708807031745988949349198008101212359268185101155176309677752689430154315166165281960096284829245862093998357413947418907666989051490464659702116361524086040952053817181754743682278388764962490572445680129045127158162977492761970998573320362774909759245469666891078802194945071933431455888858631039673273941496270685747682881964142017563386812180101084902042044967524342727779962172604853648757885610135530805726079192642403235108731119491219882197941258926798792409168957554977642274140351389543893685559072406533379891760843127969861349799828248500708475894673064550461273269371200468980795578053372568900908658901385919129808309587660924939694754866413710015818980130250684200688219955432655635301808477538351036377628272398171818610140553066632583295896992781854997772875946103748135632742144292880722168935014487889608155241548252705573431408256007951234822502883956056762239560429375199586598131457382204175481199260322526033865263402740335372818453711948110968013048014511636092357143762260020428755536120768435908417736483480829901967038995586340705619507992755267191701149062448718441150174301610357850958912638387659017191546587594152973739501534675225683892908905833897058577122015579441859826347618798659779997293352897552377020645349607749331366039007662607728997690187861352348077500795745002511155628853452219135869027651729389829978498788961947228844355519972005908294379683143610149955187803314510393302601014955527797322741792657778351846621786097047894639291810770580203611306901758085081878772279722775663373023253416608597165734415577268282772357947237515343420418228545113229011933900486704850486640130351482513790667777991466675838064777251442916943387113058945061357339274188524812957134850108284778284180156464056354687987445708888722758030177743797494934971943708122156736760199862239870013490302421811090759966543879190430718862962228438039617129256285815443577671028143125217200123255832681223593927978208647511644948500480036176788497485793861967172998665037559029407642270878390073977756377407158258805088287804755395210763865101852438085914933159337075417394682772932527346878638543919122609392287731390311085013513361506937369684565843110914676590365476623330901665126955262988763754364575324843072190639523654500868560108052055554991486958410323906357418389361925267108486454447968404803958830871336203864983787689778256009146184807909708916678959756058568945694653306758052382897644510705451493378440768970180188255489704572312448435737181883740019792568056456843838941921765617195554993398698201535013805909335700896540559546788416130332061122210683195577834720050866430574936537986739342976832657371741965552906404375270749053625669384181839151436221830268019831800106838957244966585721967063955024910512143151764058839580650585615550266961353543428810419144222816198118286476198506025757160857630940864999566500181275986649814467448361562950848269581604698836447369335806375715748944745738779114145461351278431658005731186039759560368016243880146229775266237911112601791794698951958319673832788200218583067614376820093591343938769543407428212057196873530249737460273638283897930726815989057255066819765310481512727317255866390218262932307224495654581741079316134365001630847884792838865053885775213097854025025391449245158890068271260772617447647521193352776663576396524971652975564957706232770427300331605685940296724807542040892777154052592815950198808096785760426345235735274860402367259802559761972045034451713102266542026253885400398150082477180272474560138829217045258655056545134193250051302820098341479082294606466247074489384866625880842747245466908745358490969785334239271108738509680599749495304155844186636743945636730974461091028071257574073659851349295120804925793817394434111797502998777261847449488467468999947270588080752527872551018046677575370082630496052164545948782930297057540168220698522133651609142913683235041746150061445750598072903744614282093064398909908608094283971432457426757455221134312082901224070107675041344555880398469044076303284294611500281259954069994792884049335701857213278838692977380089645028344351298202564511530524779030253708701880267820586199160776719714169385799125816392552127513723983038379123094922957868367959303736206944667902947917622832385134545869773575617166995674312988554152281826985667032249317862589134735288034122748434676818699357936232585496522636145929495586441540337942511065191513452673556638326059151208908914196268428867411838390902504419633874919277921971666445376214087989269662619948016918844545052881045937811376272035298798836364627778186162071694462477225645206245068960452782747151099436457858600370051243006754171115499203844004603494060126940327509003843356202840744492279830292010842243576897101342716843438966139467282232719171578526124953920328851467542078307858060384223014552830069921054165016290911139858332111499184667329194920919489906422475626023398938688616007630528240673730908170200118323787044132553877024717957132700029495354527033640403200816473562735365102291311704355798089776688225842428617248531655324720321492245904263514416165020309044637459662016899298620768509286785982793166443746159089725329795077385227840354784636811778723133108617111211642610893657437415891227724209327168336625145380900858158995274945273751654251597481748659120370825983010087010098410278700279170317138115531757676465844492697075380353003011921095729760092390271655474524087911584610106181833064901234054126866308602862546474237908648422788164870027145055015559958780198444898804271587565154732476445025512742068235208205839356188422233353975023600996167100681006178725998312809435091545749186512215409131150225807995010575212432035465372104490036346628651846283888627789619405893202643716672472009426622529116610466758522041695675227212727053819384475292580868239453612899537413982753109190817785493839350905137275123110658247503850329818991826396507407630019727559202455284720315674185873589961780782004095643552248980444839544687378098246356065679254834360859920750732680414794811514089427874795080210674988134195547282512024102975628090590843121947105222846111859199320093324085548620915440294374192887157455258963748658628868322598087020900179268968173320587980756526664970194185363969690700558505205113228209213683009406050243629506781787990622900162056183355531711229548441405112336030212344336979660143401479741996603920231787510397857719511227257469321809405977271452864733330668562790329087912923328460313019793288977845241991365767540796667577810820723331909464003368088463005211339452632996684943962782265277159784265808282825363386038818991653484512023136562067721686772926122328187847019611829234546213003257485551743440134504797815571251990613675312582108622591457249538856361507751574197826974401981833404200216165183655643977267378891403322501738256972225792418569280146566034183759854624884629584957208016118381070036966113938356175071620761751616075124862298665428167873451654470223333064037675247458331439472177525742536412332745775666848020294471147132020298189426186145061326835098860020468059663106593834950691898551530579043201878315181368170105894757537807244285586060306942987495525085439503574306245536639326577381600349849544632987058011651855902341790128878869210350135299171612847338101943001648953145564431048079757545478287242771275239947137523719883762813586877131376673304067677018198679845852134606965698755554576898833439784190489523793633488899322831584053843618193505698371933754616114598488289109473554331662475683655888390296093114056212623164175753588758356218002569710714702820931749722068510461926067132481028113983719443506582794225717396565866915891232489524984964775445903109850456481055792141749066066758806383856923586310330627274686350297991520703217951270260621838676325092243564882323387077002661407141114330965882583732946652808663029007925816671683480983249945392015467449056757681242357146696101265041616431281013833007953732966709117468569917804231156220438295909772275351811125405651468065497195397342910353020515027027023973487566849807141355256778199832152848876804880806347460985435212510038657068394681025486787116091171737508651165472602112531154242719738713235118937326757083362621058070420568521628176526940195691066185905497463781473663257246696092352129429302956538723217314210027233040637670111061746511234420946162616633141282524920899726821272030875061435125673919393064592638806979301009649302228684764719131657479406587285032952695002794003434620923779759483180083894026941587483485645635491974804952438934956205360889231101611981288885711035319110314343529569282116239188593715424209632748416222122853737968199364792976944643279042223341117457517068232119986888121793788861463772114829508835522871227131773287905003780469260529925347915305453358307884713416658826270427265176537071717251947029820370890653644935988766000932354274328021404623675830457593906484582239924113070033222679872132737725326173019133811375587858058150419993200293183089769212079075691290260676501934264528993132927824507352078871563730634643874349239767713583106912644404580169380979742212858574844666143762362632088715382764051908781849797365903099485051790949724539781765719444259686612923436449249034165673156677865252260224894728180204270860565504484206298406260902142831902432557804231399743659852818985596075052508754288749984967097448603489965819578562636713108773643610046526619902214623677303825545412512292877533114167797998992500904961518763133798075746682330643575725296359160321833742577756597079126671063302667711828536713018766540425834297250917428598062959309472370591743821830842195425651810725366589532397379483650639917010819295837660855384107322429268935382418015952076802549340945544484209149721705500256464534240671339670049035861104571032971173235350565625400009638391567119597082808221852101915323503204725347713481076618310107443609850347202831358411058500051391284603069172822190585796518242123318776666642220190009691186296638255658288952862022576670438117701405981326099001941778599630857741320024397844503680744607851564006622597172842679581884014381329134955081011264389113046346028738426396972852795457050381934552437877889130130647650098289823174484548014122805367382625166500476764674353083199838735155741478896842809126356567779139266792982864005042615512786759725136806265447084025671374454329293950402483361641140316649872123691207873964044804257834086298502787548925144659178881529289210787127696975574792940067651728154824996130190051181524355916328604335865181156021546347825888057661257612179122290844188095138142533163836901860855437229253765969218047226732643706320270665118036821958049114416692464453987837090000364105467810067740022418301078076025162130689933157041936546143355856416891245775090746534687213015894770943081492034518196236600491566513014321015250414000793856885207484634888751476164908623350648961235100501520912453889391252678209360918852521847633969940179769001611493118251266535224406995622657979487403998250074669027041576312948756666572985703759598218834842962426486356036146156827732000309720572313037896907265252959113142085176822216664625783786393274418315238083397890452509261643992415878068607553581555268760941622899557947560463481383591279293626163669576178156517641582914266077116083938960971124795122207182079974190931906960851043630819299182068343970176171143654954829443127422115388369933044181365203629624932160116444003628578229609779143510168698653041919857199340411804778793290393794413045438873716596669549010437396115366194403863784880918272738674905965584016315573784795187398002107913038840834201572551261417244720777279595503044462046861540754682012346258941694075092610124467279018497772595122720090829938711768610637784369432252473436867064503441680115288071801466992430085614237380091541702552110662102678337930502970364209860882782940125289519540415414573492999346357919824022343943492421177127325972100029978705229152020342395055846385417796780177406236485107712440772649116885740414575176010002246363125192021377731138746961444677774976909520345281407985363105197624571360111408515110051984386671971491115177088697384137825617219148420379401288960700252331177810257180746001303725057684709998631818279764928512338686352659445779720377679779471700717566139060015670427525118574845550134061948734782594471018646849379042715802881103255989579774713701870399341465592134623549617901069080242015299643750335883391594219044907026741992365557882583436616358778890142115666973187982971460200964010440410360383940761157109629069564572302257841084816929382401584137547723407331463996351216600718863033280700044850414303901581655727976466047988764484147835653864797765606619622810096881195071334125018659617838269709545257487855730187445646154056770860479514231336262799385490762918255114086789366241791975075892267719048037290527754083549831744758354129268830793106571179287644210416984329985406664472403281972696068970641191414323359035233991371359306302162251999041923393030519681429322463372887570083604432249574846054547441206727634030370234943472417653527515081886655413581174687627647640887956955396622894439649033275556410489694960924638121142054912187741134486758441654898617254119302083265596284336796846950692426294722577435225785102431014828286354662733897509870062231938332450588349344198280713114728669172614768299075750777601727372667811541781319340668924727195870463460025873753153996367984403088552558147535850444841028822813960363395285573764158339677437870671130390548835176296156427264793913050463508025539563303292605471218733717310520334319026002116942848155637647705040924945429450602988161057699051979666218979059868626003196343154426586379366541392102664751445897512745966987105903928825567488564459026931487131651758747346203424040878647648332587387915974175030292514181031124693021530838777460112749800007235877787609623124572886617021146802455729090872840670464118666818119215562085862515447543030313616688184208086130192562410673637966583062479734006315723385536604661035207929763539480751636039340539715735317024625323369368108761768520731745186808797374864099647392535198039596256794445659400302242907917008879499051641341511829503787683346472803673806361450360779594155769008615553937829023149812233070681246463441224611088717751142591111223835618776536929714267044045034755350800017451393944040843051809108034260928131998795286049145625170449566003420574730150481890617790053766829680364307330097434880603381563899012988864247902386559087511578361337873104704480520320456062302215610937810476807231568643944024538548409880223708163571533322678007145624960157990959682693845223843342687400988962681835656176360677521875131432449337239622288758959982601635761803382783246935098072271514162070576299620947889788426405424280337618123123080233102630542618286984665488640709555157527425838916824150079421026656549841657827671775037294416612154671849173783253526058739938132894140979072114465934275018308003066756856134328775281107003936775863778658619519217344202637124698493084075380641825943720717636936492604484188348238000607617661941792065507162696658331891738884140515978678804424799672821792602911592595414830571261316955004323368001772962625729645573347519418330374569032798047912188275936626512698457533856637348157896050146788794244478388989725461879754585705915838008841774639613208644038818616733011187937442693621660662463994061806006165607855052666040735514567067744303518768395327549344733403701981897630689387846081358259568672780845682526886647450016785421659265839775521336326011580209308925441787955001450035459448305354907851414594775179092172235206928174746077121171013502011847336868082165367300692334749695232582256657583730441249014955124403071647907893336497095039983331370893680797346740864178238225158713520453168445587282027328748410841215146685210861178570865939623885413107376903484966699179067109391363263279092922414058222626384435291223287363461707122089850023180430474906882641100640062031646210572540425550985607102488537234459086388759519955981383640389256948254757597313670663172737835241634511679655815288375576539695180602141109372861451357509260955302100083684879447464211334613274877064602915071797096377150863897378720552009732400990889253011253381692151549695618737286750716355347143699486830976848854678663771123016398894144830839561718676901337793431131434607220829805547912345433224742114228062576386127915274691056819749573602432626975147608727527777617286965265900210270262169980091479319782269013840794466705997210727889081427757439219726428982026877943329951947993527485341620469518904489441442058444672448607912977971055480140753886244378203382052075031644531075111626128258792828240900492647632535653034749585459530444412303729295951797709242291617438486833922738607752895154653701468208309588604312672828696846657211478561338734073606792016928240551157591153328975867742949960330736177105100518362873704002835587850700093293760591233932122684225779397205298848120443703558870412137998723994834373937311314643316474598250646739961951726869574160381639809533382408101301679337642445365553680133680926237180783701942726126850328241597069519490023307513058928537931563048872225516246533121461654683260060713584116127260710771613191712676129037178237718061350195267948770908497560110564200109478017059915908428307484139496559936379483979332461733476543890095711494836149833941498086456745614755908171513005285696204733118829398408048292438415563994857271821836298288301418926107531912043566602854261721620165304857448965629220230517350934469669662220916542327565503355459341949174505674231423822928155046935005917533625507621594434854518862933495677510610217143310883168583878915948274458883002738790187283823025096662908509006780306754258546315732587041101941653690331250958700073433168967181695397613879531210197142585255537261019769453145630582828675013444880392031020508493365131211420446189726551998093762325165975311417246921619397242955317048458396720180238245016042265460362440057399633279202824305230503697683135228485564165789533250258638661121597560201767845678362013761579388620202559403879842660649168892956437303703805397912114604526055990993298391330272038905722816143631414885578414901278186865741581859469084983002441264175338967058136897232401753855048435389374436185976076622622930147645713481122800421891030778017536489807955799485159769829075438890003306159576084283326493494458534514217617223612249889507358502216870629815826788017636964460301198757055502897547766472428106281969025554997267808351988892607241407513150537792992520148769026066405701816089429926262726492641083073860788793595738866052714984419986992299526690625481921561856226208539045888269566994260253478113566557954658439299791814872265466772958842630036861560154405835030984649015167738640429780722179911605270666451648729841542531059760851929176052671118124056576921837998055952018509386680871997802951723990035700998065732748834558836399996955653342988622047893213551001213688937617841179849656203740971051215010916154824306391911739825251538212830367141132621693257085017279033715446241962562211661002966673695130303233618194223245279935170158669144153907181122130855164741897865122088544677777998941179436510503958183062956086202006608020906502307699762743380284976888320349718421972017839200774011803338777039570808458743683132663989455003496406340978089875155795022041877367748133907706483145957677733489697962752997477035506370931556271454385556625683766612309823405725071482261651324649867453788273125237516629493821259942596156539518987279449876729124080400471191876629731792890090916341514750712907192429165717554610133415273972207645397228843784257125652088557652063655300558221312432550245880560787227727983233189795377401253802554931426180631790997460016617986305080162379995915304836344748912952310914495618487082206400193533754108564097473597341132426308426266884597430505956141537119317995069760508173482609106575406792376837691059361015941924042630935847533174133566125834574229202300198301581746630251439675359196790324869985455557491289856187042647028922746758472973485707818616433338332540603374680236449335128766650360339642679079491548999096834095825566058039122662480241215783867630000781906772592866209619107908327629907588410310315123694624837574968959327871478832402160374320646981038974750562060110664942557132729532148408459383658552919350537775810320738475355289771197312687247557413978770131594890329119406182236926466186434441345648354618236357693346942946077013530801499250986230250910204470518290144136811219664389025377341601460195649979960283699659746407878454195725048347201315691493299573727225453205498888996619643298780503468517729732406027843566396603356009229145225501825255172355239923585014505042351897502817276073311621012361280359407677247628282118052937743135076306520431315615016136870617863180670835520001792477946397504831947367757572361734282448906617075279060524902459217040042636051667938962329997748094269799433665766479057403657683121138474922837284069477340075851205594067724668005035277300619863346171654583325209020957188957407592152348837846315490133171782045620336013161929821274326024917223739388290361607168979657673764981966633382854362921099980367939171529393048420077949069493723730270046211301344629382850714875510674349467125130410593312123171776419202454365032239440961024305581842830570126904066705476993001278894834525737886196487937548477872481860166872292844991430006799984268385633863470466726165491594970106409844039016091271778182106292850788778544297205718019822823340786715820664031978553576286439553244490420362291720877915709670990278075855521671940174010322461694852115187130361062255694490034620080740186064887117358048432988604046637450209299278085951081650742074040446760986670873116960358023292114483263405042002904999552750897322037911028583311722793568486664324231488516632601298204857020307437678348275083623093663502294369787503423847241681581151172695617868709054111573346708275739128916312224236742175047649005187423523831506784627723066084468836984890417814457565283062858670186245104133766934875072032597109384694847870068102444434875677278808388501353058263575456152892903447777752077621437073623683235746942879014605527667095106046961699432304620224216112042514783716204167728028977611262034140779549025017150059431868783098812250666310445402083871037709123856778797754012910244929401742425024825754680761591457598924741206950534601209941986953114729264534112675363290149708519086502021089164563233957780694465596290292736688480579898586630523269119558757838269410625654125178889582024340644174416831262349605938875709365870665186405876607523147516587793199261262104017156919994139393935038235476907426559869483521972596601971887929904182283288286457361349152942189968864995492887345123722639391978600443177546995447405549873180309802494864437463296660158325575984121752676803505628361799776442707270357374018623858781185515500464106637163947264176311462068007124092601848727414658117880450577737670706288939584370581672634111099332416822258162745426619381257580336763160849235974947576359463391507652065445001075806860916310978070414039375003088069491416510625060932836251672627549713882679553931672381743503830049454035316699972975964782770576630264548123696434753541318154373476982829328394979905624382742662771939903075084788816770478274232495875458126042718660011237019537311613593739925702587989225130744076511394030678779924682546076338755367530441689468661640876933741393247881962770268199572894781921883866159388802946383221615105567143664626479223180539789910622138512523750305280639013855604161821823989708874481423024540782501224556734673014164180394248435212643091308015043068045435638197742727620112773795288688373452871764913453397980385378606515383537105831650782104235048901973040448629297352204180559596961095641892974424337142424946191469002721881116991556569990068356075008795303596774540964983732935963099776476023719748561946057611221800311048846493892472365732545282637784265597912624916970933279905595340267113344958895853541547166978230932714608893504789183640024427850609520557627671616231727919229406435953866030513496000522940005016057584741713886723534444232994604083402483855162088395049226191252699310378536833979364939120367612001602654946980044106882383664997485413841977501525112162700078207534013337888925899685084666144984164600178934695696354299828037594688415263378570808727248650558344739443863976329946478501243503762593052470900461448123830800287722437254308321371745819475321305344703512669006092860275204625960860267581188961602198691771517718967566447895082865558141310844923551639602134532562274376807602906796580279147776237735867902416317764187802717273991677435547406229537688557671547995627710431093117425043441790502748971302409018057638317989289315080592549402734028792188780816932364471775225980453637660003466305529191738824377472043819466139890322598344855296929364283741566525836990550708413686355621122473046649079442083331091379035087840951433120682243125539594976292475154966197995207725914344113200704072726775272685691893679178579736390051857156026849289534027841218333386545880932968275700502182273960590472308258833552643274354494243146045781140748851692250126473654550516375845709099576020414750618361015366237873877418942718931171887087648016967933181147574063152174232396013034195060572813998158351692266984100291616712145332841519610897278226936969916121903516620479613032888649820243146215285211681460608968922170265541142216080336041536052710140339919388215866055468757344775311650403452887757584052658920211631100857733664313224642365676591359936432184846793152683435195688868388600659315622645008167937341081290877858368619578134174644220190183729509183493542456758267539254256643113038809448004074374649373117358197790354216937842438907500062819862506329306520744661236707872370986428240902661503991927842287418826233672821927549950581609766415559639726500956111128239043920207839146476067625295262916526366735012358293362404200614690753737714236591876739279441811037692034789913143207842589507526208533542291192799545943832577294688169377720507561285994918035537688414526135989524559890083369809758516638617942146503546867767238208788560710690708208942641982434012436333313774493110509999446111968675904291259664883870890494155902000693378337144687922409153584797152554815419652908127005552443552661636284425778390569538376721705065612824411632415164827718264599383194332214641549058715581186593861801342600828782194307658456814807573367144312117192338418365701432327165302713578175976591028045116940525731245224786605801500658772531587573708163274329733173304447379051934949519014689936153441698100873481241289089066945927389202328367603598624931500390455672653935960354224614579055619765137587718403013414518101615465346338890276447029331496180735168336101885761179913700511301245070878798887292378232711087245353956001799210829635358646371861052343543174618268620174571074254400756885415122599869196165478588296605101263488730225578928399249458408116721168976215151047054357530093976704566943098212375142085402446502030135731006339974807634720523623953080184946946485469001470990772048281669285456916486694042071592652513426436255253023875787743011116087739480944761591654649777599793722168282043033249397013030259092023399586276743607232314763665502457005479340886466741340112458730383794251527814307522916905299967423998340889683930616501696419149183996251554572579255988273157345830979643450525959960835444688746312849056658678700766593686429510654167670906852045970392405925823628631902130298125320513539247650221371879006363281843575611558658383949568327087192102074011171470992750315410832965000319199252841801761457865178198151617145990500099835067398319052338897678212107275304932020575297384898288095308569044914513822134487646837524476788626325287850407404580280749946845532030358123281653804631107309689130761207124380892818859502971997164401673040892142211585862255126347464144392296336281495158328232057608903936092450096796645757511986391990826810861843575775197740487008810094941365283994344533201158461599780992501240738771572663255132882375377492157390501015079340503678546597325414751628650412034299222112027581258453609413530342933986951935612248030952397411364031384328431957255264334280066211142012986852890112116028563030776486733362868552317867222183161631053293136849972971951177998098012710053273001883605621608464345904030586919596337157810321269228413451449559604476364441331340236189596079412129904835147576679062406949602474220490505281966272717657408485670115449645516118642710886211331764200953142900421105675468176922145674886119037958225201445866362860242723750807398137065257269236490582666518607460845417145794172670618004634836101529118475765404250907135836390635088935587145360806477234831055452308596352315577627994336715513757339262097376805200680926346704012660600969194071181430482111953175960528243644242800952261161322112139471356679483862152821825306666468449918314198194795429979539585738586932430052095377443904344423777960416948652102319106088278719938599429451654497372597294816793668580852906268787166994914918791474109381905418818166326695432167259668304138014822325081115961929247309487118598051648469703708352807138398457501478302125624897111876177970926367054864922665435582831080956232047966155747077724603991259864680237847165417393358592510523047383920385581043083803705173402349302666769985540301547621472104519121972138935278417094522211694849357088683131091778126975977465228261628999465659013882016285630456706529615772957327792713786244534279426834469372045717473650826580503227301703043086287872899656003353603127053799453737611926837788546628038549773286417911426500845691130657835265592676065882259770631469695909487035973598909544034105608964524180750973875521937212429556128937594399021674045432429625442697910926059387568586122834871826023800364513122797429217865479427270158199438745816808298002609105006208824305651679546588703349404987957706092000380663420830224395460698539794563457348241628501086199215888674571349888814225249427381106688097293371875278978443040196998911024658583255548768309898077031362048130730065648185564329490755267347324076400702973195015484641036313279469800200143193164625406114817620797071493292588943909898772019489873478143283359949381201093816616145207035644098857807869979615247311981284271514288458326282659513599712651408020664972484740063345712065615633030162073364666080117711367120789740459626719250039704961309393441071620460613922701976485725663631383222029218911040785462224629760749905587113294151796976845802805788536826249894181043920825582579270417452554534161402259410128653352870012203378388924221314927508348125799513591453860615444111543885687170905572941031536917556517869826430158109849359758571301392584857808685874536905845552633418541505234021529568321242341345324485458689740776449268863613648391985747132139319741897721445689575674622608529504180374064736001300918319391698208870824253375734587642610454284107914989203003228571820292552593647480242327786671032940166631378900144462894675243230002039999835824128394062522418693460621696608228798494482840818771031709695453418459542504433275742902799886843789887660365045842312014225196004542763859308486342456476589862737198639455102007139649176642955990326478864445062659950480087815103885399788516447424437981560981977746933979824177259705872828326694509726146450188976488990273073358156501141922046413958292527985388602440205067459830938038678200912560614949453025237255486552736528398930685992737572295549403054361188797217970924282769883804980853290795175438404204481769458674354079853779544097361062368530242554799253606050245631245932114241390413111103090099964216194809161661174209742790960695248613211913573524290123165803879949058250820160048931599386146834435983161402693038570262814697573568829313234996533783203360445192844076206838308064522548736016783850091503984815813544325699410455292046330822721512138087737604592392077444083584519004824971920794830491192641559970536334082222938480628218021480283667176111930775008076460048274125080708643661923508003850451955698035636184531603679307663829242018066624135908109448372185523355863920213362983270555130457380514087875645724184152175610862630077775859334295586359669330494189202226202685772263474997320225368769753712228106970512447040986675903451746113561630702090758110561612335459016762414730161651111460788766657681275601801335371261826038315986927412051751986167068808572224147491752557615268637196596399791801433253526980118265139290101560270508888019720063815739232269757664091154481813371850708288030989656872294760077433152175730461151796088071333575156979514018642141096819653290103208696957327707026683043202052322716849052745172342733459785186178613870298966915277516888664485623719905874160410332709452953581887625325884717939673542178112878215999209492153001475733752518753891603236886304780629645776286303007213970071218731997528139268241133764075260325266162993448051765454195643982910695737393396958801242467022144915711588876136809527973991613750895902391250865625995432750703618483440013960035360857953409458430304754484156063110286668244745967989230247657486465960116670760468352811958757265784721250070122494442925322121439270663668131076439524890679341014671512308412533756635929287638780106792861815167054998808253265091065317869491087171980216327679881158546925287733785920032700245897388980924627747285179603512495032318219040839733634317859510989209782790446329909181482009567696026033816072352415528051452629364070467914287033431881247884024150018985832347876583683584619115048684266223302264675237127641268048793923065990226440206004865017464077881870235199119442946344333150980440590318839211389692972716811017641942820123894519218043410761976743072061057434195040700883900320872195436707341340822215023409720557964634881330251614678778147266799221317686874909150805920395550214950193444042389508135645052783582722209186498791025317943659830691760742064282246944224036654984115823678931356415241589505534327949974043004224594416491990409049941999312850699474857800668147033210444929233396675406583377899581313827398122619369639094384611916871844468176724799117804276892464086547445299513306099124735085013197250064857082454416758160467685757449132369689510567839661682599927360817291432688974873325093542252561654703657580995824377864705918437002361632752376832802218478635857228868553007892076591735155358278851407385826978436674536261660245595674285568355878528092071841018113677771932198187979482349606532933590464982336438610522376626215629142146859354826886921820506730964882001551972274974766554478931518632370929521094575112878143407949552123100673321214479375727521239537432936752221769663034339452825743505960110123372770666028862082881217681892494245263285295511760348778133842530370691317032976330124795392605568822414920119788071606802018273728078861372567006217461653939379310183298590746967835250186727553361964251247718032475669612356819020473245858729579633630225217259963029935877186750575592068799102422952078942151041347642723782919582457459667076054769497918358597800223686380883279448145794552824418170708516130031938190521901405673355890651319784348474548749246903510855581928173355949511792969176525203787781423952757579602145639526713021969033586869871522659252589370041876006081396229087616208277274342094426195417657465594308907013128321223893171390047304851462652249488559817170515941477824455359950767064135373337449466791236560100094082372739387075776849624259683831939504853369113480720234171559832297795553215764035812498202478560149927272657328900698138432946772528229879993519359487243222805140444115695549036689949873475403049613879897516711790817786383067463019941360861414127120729996458730642590092442428941306253593636103418679615994736291374813180676926168078640267288890141701544542550303380159588842914901701053823420565261098937136135271420203914823566699120794975192075700994581750470648496094893666319619409612411502878203076604423584374006927012027851445189578859074926202781764396085129568325002970219285947437297963967165699523813910418557024984142694438679345363652753646591713277755173372434272202217147928462196388886432279335519061095867317261368921292949270480396451173601073073560419680347064946048625164268377276585083803224817565563847002990829963019308643215209468427891152291881640859581814287748476551112180609003538178083152335426859923424520383751162336434647193836020410620313556787524125078502224704475922790641882011447446221850656252100743536954442854305069096231014140807887802353200363299531421157422014497271646329061312240399889777978771818181057380281905535082635027580071331023561602615800080310001668527212308086770811140281513139738412595459065253417918130657996970556859432310255074454868612156160964868631725067826865288835575294656981326568979137651542225795340570512287885645058896653224543472832142711676901939180308230054778665064068420852922608644011010247358389089681249341012512064429354245068186232854477839094630375397760240746945632517000493460340171791917479476712678254301450592016315777913980528932910775300491799567074882288579074695864649088158689823005357330264203691056947073340266586574976659146255601163824057520859126731346431456526042425138829909186106142052817465014377111813443986534115111939886562563955597671893441937912263977998673830743855514465714692079169419265266624556728229532923635225878077691260682629453183303784018063236722185407934839953064568444232822946590299028718387647378190196898592668404255575718568952185747694662656262093660376961948272957605819162213920482783336221384711537836739422060398035412654755784843508437234127940712421773189904889803031090149138259347365079848110337618212133603906005095022867827057003982977791388344654737537593433313319036813149117774215265659310414658271885086273770449162844664287094165822226821803526680144581869023184221496424851475600424609676591337023918557446395672697683868677276150811416065098477292780724714167733507641098094552814927821516939589625668365429037199624964630876049679031382018177960434915292767092589379468594607980848588949812096064586043920513579137024247573904171329823041420542103235727406967345752873134425121256463899964058445346946708906944534824882952319173624751683497390141144857755701682448073484501234246380920835652645108575606885858329861210009749178301393413751222794022515506366620195920444982900866191761635314905369194891148770183023515236354685581877091213302189484613569117212814329860816238734302302788847772452064932803999992617514445262954987828670379183515218000436845022346206384862415913727724872954597546026048759568467422996121291639204331814599321995669968959020194865171833700975584162083784517909239436308936647442001650437603832625716055885852408373757436420775234070020569815250878454053779419971576608769816102865111558752745191799921343154322217310070090805563213912200622817347205239242997447984527753918469147468087759319867076512690429197137655820893176712832083912618931899037428572635543498237082288627622264803362864980157643445219749117300061726837787482823500299622145085180188412951324341409161599127531838922732056194191566040801499128020031413895939898088554101047091960624764067638780222081093387948273256797235370492540855326524136965565062737158425077947383426582599244920824161448744477436616251343049162774741866069917889697111122571331257219726908812313508072623603289668939387327291892092539385382271840066896996525909749552823889043712244187790803498118545173278736030609329038533778782719668584070575044533532532566460266294122188462956432401140203241783516505054331706895174485699390849035205883700927061294922142293033066574304306282479588477920161879043913315129890928260185856086183309226730737144707562201685667691348720340877235027280545446837227011225970758803854787228871113891121132777913943810436965346714168051233862648715714402365981777702951732934556677057641663162727901757848664309312119106339058094310639343622587332198472198341566300527995338114395460893432798342000734471074825807100289015518836220454847963969351002033255054488729234493674696642545767404918579549641162408267812609714746379623966553457408662955939085611473902723418984785076903583757172772043324093541815216714079008442178072882298739212166661686954181803355766902672919790958040023568597362684866129767724392214622495217831700375946307426802929341966459696067490728592057160866740626479342230194563630393506469657449060122774403916885142933158233384577051888804367045426462177262001792235161384657002895418246663000490046843121630117182319277909607566888726987418611738355283109066086271452389956002836846785548040914725043013449419418889823276570872602657432571819390519341200033307711445463857085117925681579871584555528091099074887697449688353481014923800365863611945369812491789774402596760092978948882019888570586285679150008589032373547525018398851085583102472904935917221335221018941761968404422695481114135997095665560620786233055092938241593900833080980025450123857688289795550654372207127375501585990455068046005243013260818420298363476999388774671943762944500601813445269271768833556116774548599248629119122995484331972889463493119293495515830785179116675148101253641464118348937788605424234227595088762990450937482881134235130120816700379805226007616891655393025873134390574273472083557730957519329252546353333148931419219182076966364558366828238862435073849435160482397637523463305294049525192154974802258913696952286264090618883462641316907755389935075812785221152123659386434068527384418216752126724924484101336577223998295277790722771706929398313809794365294928198560440355161358356053422020375928852507621023206586259685289355636532146171087950901136893848359664294511782265174619674066572826083997850822178438209439849671941286750493733997338269671798300769974938221647058633514898734824757880956308954815537056395676617111128065760143009674355231804200374884017737664559334980779717337727582140759607243684478836240982431023166991648779970063633691103909507971851627574837325425605433116101517577764696833897387301048072800953984397629396298977191145233239280311498927365673800880440354236264268115473983521506482206911016936992740818924538415036312573667324836723287837718983244708875569059274562569894943902091382611772502423167749054113964423354547327368292535814498057393121172142726389139724231739354928297759275109156673319244277451743696073156360308089361736125935404439208403647388573865023862154837366891276421391520468565222019691484235139281398863565645300195872302371817829789765612283829876854615471963695346923928039864609092039289866841957679117620331900767491483103743211522533227945570064870280543428553956381137021618887426936141750215598569208373488395830456017643376310100855606759378961001071049759450404819261590896617739632998517593721155093767964807434234418682109522686410748902507758860334274831899049007618000719523833532972969422081262637855553337970999603923014608293762072209569225841860597530688129716650786786031604942000728255466899754016599886678566185279525364800276402239852258774007050504805549426259571113663755998856241428864642459720433650242132064897218307779155775188830044616984205103353865654217193012185116608027930211456464579307712027216071025086635248939338649173916009228244684696094492549430704617719982268087860924151738455939448646864072839538419088228396511130521235513458157163695454426716341126250958138003615968041442540121198476231576079517228331312804554304161331980060775810148935641711688585793028738377272449600341690479998105663542232769221332511546810099330453570894519832755609608962805647075548734074852644691964318869470223433056847426993147573276010879869661847133971951415788808781774091721325827952576502036055161601160472458486815339546587726039902761084936900036908984846180047351607239517515437843198252535605020720958199272032619294881587152312319250122263139771952269054111113864487633470824618510141671933157095351080531370252147497749241956255465950671970031723173379366015411257581182902148843899169716774546758344981565508568430637121584541104340291907021756083645533816007643336313351918978428180795766280097041834019066033026717691816591081763059954358637190370819228182183513130976571687972138835859988630159414142323021634074557544891908281709397840594487406545110239153548313402151055771833225558016197006787944771718732244126989155878841873145451669847225095210846195640110196351302701848934199517229935420001673383981282823651217983241037590553942987784766251573464802386745154795695676582965606439904281881981624253040064429775926387830227180653605903477788304667408306891524521729863908880636152470261968692705331937015375104150675893525851040840835523018732762085094701155656902284901474444779413849191865353671280349185766176300777134627895118633273601615751502557296935947021960767146276644961526272205642950917664336451499715167564491200065008893132441642563507430025983093008936334224953709047433676965913617705835826071866424351965593395279621746791306403914447836071052169036855582947275519197479414941460879897738315811426058934063108964767848000603641227755647819195006085217285179647840238423670518008461534880509116966972031186330713777933555622084073430189693586600640091809223429717655046490689690785833377838741710058184024299816599648808750894240263438194260268254472938537026233417415784924493207505544124485198665223519627668751409015537397458127407384602655881509243912906022763671722910218559360520070759015511521423876449746490024364041977417243466104725574596416100786579268472628168896078024494315620285468398968445216775397129998344923173609680986388048738324420484242634487672199270363635357734427247451417360345711709485223378213809445336599954312757729979314096737226568527790856731846951009657564550626475470943588917095989468568934942662385038815549121183390133685514327517878890523791480157714012264632053374947063902969057298573863403862916678996153830167767505042684791964879751961450994057173160161326915844110407039998866200768272618266680868401630025899310227080273651026207880540691876690586036333785706633756078574631808871515278816953853775805107141638663245776542939318400644902623761790430180288897928440379844279912131511680286865573673394650967810612393758816570318129526094673993021750910920713719045363729986706142002294031089152499148398499468398624020780338114532229883159161888447109630275424423288661788891274683081308993339479912646058759440507234723752733508212209853348421457795722186143680770213726268056913426419380450634535041806893801996571209699768352415744759571080275807081115852084922951087693638962288219804320274206478932321043378279510886549575154716918302742109075461791990906653534324724004864487999844202191303772447008048291521838338452305982110290512654810625837374848792311546826445108429367062704755353956211451143566527266002346801661322651200142655616576439289795079991892432726811634627282473069923491186601036726825735652085396190371785759980750604419533776478898216987756105046396311023127705879435574627758850734915077239751360521564003053092849560812535039338066007997432886629879995579299407122393612542326541146888889552992474389575688648135606011585107360132453926366778942262473070383302093959145446512541445996833465767748449701334076029465162682103250637490798892618982510871178619744131385150977932100805730824681651288933163885334704770914870979414460324054578144074356816241389454019398371227890711265310761432979720963609436263718411856931419370988864126715845692842413178494911877752323282425804370681994764200673100863678842462722098466874098918282645933986847974402117600116453409872931522592584017978300002050504987989778193196173526216906110786792124673559536327896325218781293052878982326056469173355279976927652256617316332047322003395165185520485294939823968333319743709316260973636373678508138938628398899522357845434731533775071846855707990381120809244151447065215221328068958803337774054122793594348885731735210504046577438298732882772604960022556864583053872993291368862182833679072030914105189424626696025104423317609600998047997704967510127976962123910664183436513547455964293970990989019808968358475281928469703154902515868766849868797440743942592367714279096666180288352164469787428233586446898670192560317822137603321401364773956731037251729761239098495554984201752732640942404736054663192943028719810457408118926253491624660387069530219580347096878484787649667444629230234601835621110655614187968902431077964516061038493652027122960934973632067900848836459654414669406551751126159440962341884922134963978426727197716754676956288442538498248999951844961633853710925242729391416338743139284602705284692437203574661999233678023771582078020330708667842522239842086345298897535164531924309136818830394439190299993252060825428442343790143019325347776943947492784562113904114984671019927195890337875673461364083190957107924438844965560628291341895184908513461811617616340240710163839666177941844970198383737135380769963849556616348365218103544745581102787391305032158395062107147821658640004669293533283857246763416235053833412818424185401582530320291283954166845565417904151591044811735289389246526895360174623315337312160784128046708101502778797964088796956104388343995940408685910248237125378213354209572061979602064467025643566829148253305850024826001932958800377305308124785135728448138998657517631535491181460420891331022080179491291806655563835470695861525293670950121156177717269303139080469391652164208900472106460244044515559076615519261758926503488138227590852042158352952436774885060470999800641069426503439053044885586854635470194435407744416603649260914064432678589261312953238728460295907689469436442825767702200736614162065915950836663526788253120442992846738477624115408914335543965899267784645629615006171555007905860009941489654186526668601053970417003375637327209647749506134264557030755555083290453251471148664635259642046662609421908143257901154443220785450486740562268006330248579985597565251638427247139439100707700254195254710917601785181576691108914839633700920237422419737694072829549275337897921285306063157046059936623229672592938955978915956537999132691791889416755444338807453548059444789108110219929885622730865838563389385646933099096977361423169285888464691571697771505284281825552027635237043764460359465152351134631983076156640679887911521008169259873283076171464751222306880984996394812895940291369709008331369041256806168859128667952178890047126015543088936261323637849040947786382971871577149162610129254276403929343661531614235687717012499169549441767470945772906909427278025168691198638850715563093990585373413012594536964549551407956682543902203308464928226861050263169057535909717644826196610869426214029808006831191367091387977859702353475873824661511063216562364729000408390119175494098952218617531022239837008111109601399193692057440534005483549129802725746687896961422341463213807954132728643150310449854571929223702041123707640995743492290986640518015028938882192619063166124421058048681555326619595275629599594497792344358389324215714591224262037263748222990297245642837664424199304838952192188260753186650601755848472655460241126255435730473227420179357456707694989548438864900764084775965852185271232517645351636205218861725738105993986087591048594590494871617075170724697896223212960626086068020822157974813228669471231588783499037770784111962100468798754409354261883685177283152615342799342160591634992627467067102151006266821382635302378932399619071881584676355101088479833917140195923881988998118671539000376804850289514125947907688535994966034524227121521481106940809599288728566278935554767870403308074513948756921459149326935726484384402641184647750349501625018492578604964050073313207958148134833204063887187145615613694841470481858562594931209848258206993120879862657891766034449337606334141194595527919257245134492658034490279369293293443636416307156665306124585786146251473246316925809594784457013023344531740357728764673842073087549438498111247779747366477914891401687813321462343070772607086638140613198761425835231081819820799019844921884158709780266783439331994444903516088492118737431162626964809130664102010747317376449843283562518765932415073100683999471582531526019329609317664931551693936667523077914090642418429117690333408922092671694693748426962509326271598407776743970045502384345641735626409324998990336909539318505739669747789512306282114491349116719822741890397100783722152318151329872161218773558755440973345700031181420174690619744313137324155451734793868061556859849510345114986677710938117410400754316812586056521445227320673518162395804644760599557384724014955510654777733215697331725570295847570934148593636115589383246664999694957244967820182299878113289841600640310435496803350333393747106062534386001335017418861167471870486196620483801840227157796334553841944643058539220208137259704646679222889881812766303766945267018664654285668181454681565294653260746149092258109491006285453615062589531947100165640247188858168806453906068217643385242173467764809921424216586184347527005550736798378946918838744160475198562889527733609725074564433391016316905919320345910434975016786319128916328776364210307650200964975550041786901527573142942748656731081617627045018331926738119605082212308817245779204850508842842141887662832665234751275117874463066291290149798947124334737308951564274347881778525699805713663097228597653215291720832158222531026421935361815786948661489703885008645821539652258187739810511586771264272581613571598983159106713626254372888368913253958294757504042404784574722768317732487806866846205467901717331139482029089213852473171290361205590648930157337435439642977819254258057255573282587032308771381807553068050340500073348418930196522422308195258831034685731255339685042597613644179032067574038902564334872488461312838890492411454154779407133807155446181753344438780875041584808768015240950078717445370578833785188001993405085404927034319003185731365551858107750807635002978369925132838212965755373434743255629544633013236448627526142232570093164308758350907125128246088574273656640509500931975301541195607715547822189506874291412472862857373279193319716776463567760049160621315092137120069482105442165730995119061373900306827380549810163103488558178823626057889838171315925586080786787038026742917818899144605645949958438749368777025582156882270662039712130514755832145615442523282306527763343981906474037793651723511379495296813040095638550618450803491062020917920256503225535936613367842332000457179224652966362421280040572738339469094025826866191145130779423734589726927806904617091569953539390030565799716961395898897682284483486302414896840171484162255799007070297443078724329810196242514914767729805050339869089976766843603247484707115030764971566738832299728709777514995281832248054607285385384908894093538238086846239220019006875966825172887683700392792902428201461751013011764226429235326088109810562143603800724258323098247682905058741573529514855740035844804967199658031345266142146616253300401890576530274629874556785275630191722703374362446754937357661989209542383498938942610033506579728117899132627844928432632556510876450959678868279730226365832977440763574566367089095359241920757725840985587412715023954131482811269248351650281993937758079065823334498744042953232405679328022596286535367201115722809571224980297580404425486256638996147569956536545093900349030703345070571475166209206675984384087779110170167750733273988345768422675470808926573352485813129964095003015134356669711616775312741715274894393074649439693310986103235264858751258216146973177915634581661558312295551321300938003808928216957702632750873668619951351323962704357340595814253098204034416569488319184113481245384723486767241227321948039580801252349584246051431188018340320398519804658243332055182783805994581020929365444696801416493628836877189491631051728321198824935116227205232089689144660087980652219144780038708264246732094886482768418300201474397836611002104674291809794435864662808404427568079248259215486961996427425526298702449761382800263898531752723936868958763449559310420798852167896254321790984634268092936694605708842701070384429941019488760792700885465707970904058237258949894864769068557205323213943152681297731957235469334806166580773160062985948756757534965391648576096649642556094596925004336403952611228376188190170188204502391905182391676197874657022773572538103406358273030008454869020209632877377994973100383525892402119423711186689259557740020803860526585572566655073835616143657759798022209166456788466135068603176782438252639508606874456120189255854046941310634662139201890267865545502537142344832219095779187647143500318554698993699323384088926993025178434429337939831932605223954987877445976544784111567367626833466156442947360658650155017362339810680508357494424082998138065434188114739063818631211350406183524601415432638054683418348253663295455186867487531916099453773518874803755236570758318254565396198558362225191547272192592927853477459350371665400476022041484549044844902805810838317293228407775262274854701084013714246327934974738753849415521610727972422785060357532240241047747799034632239416329283945740995608315099662275108127501558177928778978713092333172198781094445295009949386809776223265509105652556302349826902808849901377246689748683948400075223784921559281175806323716187934395398407652400164978374205099417048175508818740825758517627521374469031943543873741677977211613884188872980477075052622387304708850532470715502444487659508683921323540657818237623811258793759998860262771063105439216979970478906012883383586551090086591733123276323475170461599349985779292983080716076338418867428976742549408906924896712381285669086552163287076525125448594441266921485497376105503662027001290935736295806089799934476164407309812811001386722621658433211088214910327686223377685549866282668117495288797404249316139410433216406900994277201408793496985374158306729019437167232154096778106775354398096798833867031395635648546332486073411698063214248588006723275231963083162571264936229176314008180026804635720758948577795241101795326343124038145438766890677084623846186722368019182392718801727905733913375288548087116248164309460359886218264811077250659503992710074320744621733323165091576345356276682146506748609373434258736440773271941154732781109631848189964101551836863415550364264936124201298977725030448873975021455195868281258104698936866506905118813379056352892159700921147362095373802133809622065575078411648445471159653237942049912126134044371153494886597435175666377845496121726890872474010224592962716686159382339033189584159940581804307390129690149140083650984265772538669842850086683486803387287615154207893203700484334974242348088145734443343625536437483333138045740078667800535696177444937675545022791048049502868171355671105786995893613171796388762209427625144850817718422313189294680745843300792678898851097989622769302378523018101597743214587394016808509786827893165875492863869203253472885363427012448806499553934210283287102590766584086183700867629937356094150759234440413979689687711749868834664362665072359102439968717831194316957998380211975513182577625379949536874930586084750540685687698798121241667691967837305940089844004963467972347561213764480266855374230912617634075940237505573222499832046163839213524699199983227145412364104975933236333547766194369793156447292998594393822652538111289118478431107706823093351192980891437828592876574453723212645064724806867126766848548897830171132741538981954556657795547099142288567861599714142089562961819104799002443235320666482179572397192223854822552995788527347351444714047390985506612953373138093191052290953035191845739646044498982907235602038896212962738402771762405677297241753504989798440322353440177239314747388427971705035394313349289979332015379415882850281577389475341157758423461797271260069256364264672474036411311974553025651224136915500221351389246057037551229220414149531962201203733859595217028219718615257419037974851696094807480429887431732029775889507903294460880575346825563388424604966394449543569944052668345185193340580889684415347473360523099012725118690334481880103394825186117108436347499542915276684692438020559837523730278737065288745588408849772621436667299150489150424233867637061212964378160989059695775767193469647751780880578933646818564761818287550298089994158086459138881146804862928247008008977427494458519118542371506318094059208486250484995116166353649264411330010807660132755349856833416190512426970607065034000942192510110230365650346209354828418888145541248702253333253274645256512286693348461800461364885187543366263268004815627375659702825549810741241576183530896552423186422550865498787792183788950315641007261811824651725866467943050237532468561808130993864351048460466217920640843458610042463458211564398103990626726089293998576633920026016077384740978236177304361811239297070055120399046909014431244895954229927136369551494936666720929015561420906853401884985888179920200853768448558116188379305351723389388826103795366389414250514523146368270460717923420311883101941548575665029623648180048503760945526465228646861470814916459701130997185415052837363952828226459281811331101507255798518699714934369961477523760646732264417233910809291302056204356961418389918413805449545519281082130538799241062003916169983270916663430915898894316161816925385514187477070013426565460168822521859838669042501585121999206177229218365584982403644151141032376333424922595664227768007281781680434717719385782882736701825000189035545010592848760369936652261422097029744996952348319584289073527215621092022818337716683848181723491844768502239973267734742772247944014651918146944904613332714910846652190272194653757471663754416071568195193528049177014871453941457826402941986227677060985750058833718465136197963373783808284623576371602952687490830538853865448740218997254033131405515070182077662033948119690701544809674942954698940237440519296446595010282548629050616495895073472085135831674186873799044557768345456612506319535629576989182995482438323575139991163668401651860070277652548355454396304771435490257208347693941055419065638871789154787531614418394727279489371457681060025910213930809798410700355501906440954180229363133761247817744271319209028768547894080056539670672723527379713417439976414823856801821683662178911752909640310541575697915622593919396919380033935128566332271326365675793748740100485333346080382096131379102202886930800505284569488241046495972186150120180703597546177869484469409661194745942745603226696093882425655649891440674518797524054664070353528645575648108394118826600165459351269127229114724875678090219149671182952312929263248689622667497824461107270114793183395690668121642550468847155518891500742508513333001104984976656435880898290857812369616043717013943211286183633318389909875327517540031103284410026715162818777102316267954862287360024100836965262836789592175032167108199069942956409525327204624950669774630214264097130352539923235317313538612183320824712660380440208824121674004657825300397328697256294364571505291899359376452918203091212510646683141915734045280175494938669517957143784675508217844993859257545904071261041939127800751509585846480313760518976812605930401390483173608900032357325778998721899429748483019443654239428306602335468675154224758518686618296927435226716218958081341051132598777243208344235013377697547450294056614146212230033722836739543020018531072439272105679818412092534839603547718749076673141138095623427377268995012662614954924319837828596957223661884402002680507607862409768727279458089185787826293022807275371346754009762546847761427760928350339812794370344255878675818218093005218364843258712202002673497069934183347332936070859339475739535267267671482065424300767600822514159073639867177883545053865137388523228423412743611691499290004835590927814662664231843531093662215148284918529412805318860478905224478393931186901653748807676003724714071120542181236028093296101743844080692210375049381208589501370387995545705267658374242510294700884439228154379881600091826408979174066018840397378367795846080908695844019958565527720905625520581920850922545011893258249841249530285724663005760912653300050378683164135159746375922577627928750361260364411580358881922926970598142947820093655815388811055979451500249321319443896656736527607474635295480789924024473111306541947288621927092833274629159691624693988529002610259144208840920589336243612203080093366112051165605384140016260140914600968428792651723854979567128703648702486398615522946731694647127794391672823260200916066064806066046631998527278619156442809563711496898341014365716432200420064757081120970257849131769486296398632584017597615785944292255827860143958615826333982839782221053622818072617427972025239547020644320728683232877934590602323814986776149324370088588129035455617150398554852629485687037419559762377369165919927407406741632102684010323309269131031112293949714558124950930545588317165084149359725639438257466934680025254801471568252416242016694246982680393062403346876658200709002542312794868725681579531246907798026204410965102794928803895563761264381333234353894066956839151793607410895105762284242090930887643820959065113527545397613931009901997209489137557627880117057872164597491758068868878527199627734125431140754355699876889958490442654887402039035170734363789249441975350827197953373118925221416442900604068050842975143110221639898600517088833406750445422547343011714846897437660776400026253019201431344406428674625288580837495791367138064972562140595928428673805744148821030111412452265710971087057795156896781217524611646950585078436440469007616604882384635185200293580716850424177361807843014200720282832617503923606625483964223571937143686211961972686189341435144192702084707075133161183362932889077381270529471566734556921742005043628192509960195196568540613083251794404573944857281481209410316412138135415798824248830384464135858716554036147181213539897765949249301253269916822287203328112677966008198938007267922245066890527296416623484248507347814137397456733364359446663618458217948760769816300258551676847143770367431656107202047158469820518762196998666473584958249046767685892605525723078461761327672653221213926755478926453063767598175099552634241009353392378644942198121166647865926140515790244926789957587638325528654978902268046652339116777582648650345124047005261328691037504167711194145809529161985034188057553917968880515463026146697364390103078410311488604504774614533966484401803127253933613042478829004984891410296943626811204123265323685387922185954602098204558388416795399277154576422595005146428699342986434244213861088211332767236983507153712790206517485061742842105699217377271726681483628857136314904483345400862941291802201389071088982280918902151679668139287934653995867855430976184953820257807313805406309378987889925890828378938825222208004537997422500306515779717539395657946882848003099419133459446026039702122792842929596187993108379918580755814901507484515206043007584234575549994273802922917714540380850652807037355278118207841175590901321151448878908981478585452220947953926895709115397526959936453345121242584965218802942258825257815217421647732285169820779422597181986787055462399237777290691699179159473976046340561675868758810611404023271939176652430059917847837084056433930695942585028086050262254872353383910406462508667921880887857074336693370331214994003068476894732669816553288498314056093300498470464655203781712459512305619062869625134664346801181054204056084386454787810562291687814613864347499483126266148870262915447995535441833955051923770313727947768305919813255494925672791579554955487967568534729570228503435557217517006881421443446872461225333319124465715430823398086805103702483209154923437154950481609122841263846730462389354099464525324886988706037486378852533323262527297254939538274716873467094995999255830062387190032961515109503782187270004763863709756993471747708136983645167678939125453819480301965214398283605216878742250942718840119153356596093916694100824986015957371944919674400218840212200374797822529319436146875761632549031562861510700081874637124388862365896463066889602115417522076089539438977347886364131788599674103811958849007860239516212498842765454358676731920187625619010954179254469640654617187511828004296232216563115267221045223325659317383356154431853234698841556046596773420712469875517075136455309307226120061283268368050475679090219051855534950325146900900529135933130498825019976363411669013480823930282569897006012410845302810558590712718701404047830292292574016209031326915559321938990567376453489532966924213481209319606392937003182911930490006316915679624887472599189659276930821915122915360286498621702923793204025540485836715627020781425973355445014039514479318873374921143740091998221950743875378984921321134453788920375404824157443084923048509711371897335694158056572279683774146909198638640850094195564819664393391233132550794188970372637347590311977843676122343987379575214909130969005370824961527756275478731497709793199391194023192342933463490233144485612419410408211212172403372256753434392355924411855162717905141163159809480297728163275106948450388772016500554095963116364731379114194645480929090749422837245280066682804933430272145175778814654665730974934218216575082950514991969213987823354818950090986896443895256654232294848252449006581056447081291129047701807794806721455413212362102674818929307930865677114048125019819472962690477110641132263039774971008437922614050218501637944950108192081793367232908731478924126680637056716313582143413537560701794072303154736588496823376120242129472530582274331065532349370695176045657694718276411842451384936717608393949215097000534100784420589008918390204973424343755263749541535032705270072135314663562994107288501350559116029805030816409535207125254219267078097179247820311180038892143982038685649775690194653727853824783871598273299758749600798958666793890608361650519635232488779053696589732330277020163854341743286902950981501013739135452208695961782079467561952624846601975966761842308665708263074331522966868125916145266560158099191083467317613551144737372039912104938735623228754818942233165417643215704357548691933189283111456363873737933665777510343373962943539018523503168322897527447486041759899631168870441999183215136227941920061151194580245665905818011410780583080942282366348761503328684300083437850014629157552146422900976577430747762364193743091088814107781459286044524372962448695285395331605386444580045884418987466864746374577857038816791619242938358896692218456132707700414084380040164405031008816923356518643993186459890851993506586738372107297484800123736461235553836202253267791556986360657726475154047942083851483147275052087389627056776055813964539272896722982657728779234206989405800532026067539052280381814106881864200042110440324111852612824996066134400277341224890655438023628314036820129166027440042242074895746102530948387143213143658618333820417211140844291523014242050536018680710553559533515144800749725707375061124419178075598107343460153872375389766518021610075163919094911168842979245595276053882283742151977734174636072309818395466121514471584904962784863633436435880263187451177472345557284371214655924148798940297990559244655177318422359410084920724015565121913695061360334496784473754871076754567177726228766700957684139979279026947902829746994107196880682509442144660242005833865892294498925690785274185871401514924860098291492145388313361472921002954946283931595435485867658876043581791204394618928521758025672351647496849537796416430651279649507715676411710210472335317652860831635271041353843008544508623538708342122364604465000508789112859182346067285189027087673232176813412769640817324665837940527517726689085533440790349647642860474918768068030666598455151710725203144593862288048295218471780622250179564336800848731441095911974024564600495879728869754107337557820687212437182464581550486046764177989876971747180628091142084755493939684588271289363455477376004859050873575930971336863542029329767392826828680193619581911145771308582350633413654623354185106818884244846871902482168868746309979866255816376881415028086708887171552808677370492611690653035998686065778553323178545754260236385996169587474899439669118425798115153650861104038882479183303882154070107668161351171764954439576951512244664028250984507369886968691207686285171689888350306582314710749480926709899754611062404302792078027729853688418093284838289133679576218126231277029941300799063939446540624821772908927036941402847952356970413724041368709504049982821794768784787303845540120906856762708750718939786451514418702583518351833988698864441563862347421615853039369838485096704952987143314931302966813358608837310747098235933988090017110558099808220107564104349935504327508113366145087006016267738053126515923753504923521987751269088917904534878431955162030218934454020166830099355733015089214505119907656656824133435275727168956609973240761815217343332254575234525785868341262816993254146685255526885853109701426746673856880517870782229465647268901710739725498545974813372506365015916745452661648020890748143812318251705308926681387843486355617591895969540755207879702793544514953956178336015761658482058111881900804879382408206669376422014933890894922761860734078923695751045723833463855707561544771696863891929967324952454404599375979364213919754624981853626133587063033258911523478084718543114614875720604858425507135562310940486803219633994703993748761796275936533681337601978686293180133508366908267152505885077602103300030262401091923595261427169339670136366629394923946068068793761661845826123877688105189868505344420903018983598933704046074850288364196815991530930209263753014795675379103162910940619262306151938127037507881583861867338491724766510171989712087893271584014939365191167303025424201049913747224649659001677922235428058329176622613916047922042322330528377160872348350892809567501235821344602488842712468850124995617212625175617876127273823486848063199012256573544025047651256124804134927314290612788943777347146294401981171484167722054488518259592115963247876639466401359920606466281102433937933593545405621498063528974032426342773750223382558496032755344580408764180054900564287756436604355621212150026923771557850392382890356914411063183565587355741609546667183105110893211881083151187994610982305495932374212349976890148087746873005401189944415233196435486587151695759095869203342305220628349965307553041509005915457025076491948689978865951009438885538345162863953379364945104116546429069334566492593452126064412717536139933398781400867080032653420123313161558458869723577531595970450789442466515345243103734842443884339904802356913106112537311516453244341642501329327466717458996362006384487736401475980535549455550297881795595173666934761684866028505221910990483173769091802365604079662335363246307834802236339599495946115281579623583518869705269726588743090322834445730144191991669037646211101866899663923002006278201308804933530847095155389535850113133497796811718092619277674210043816696084366679767761121120955698679199839777547299381925624158573147130497532207312668151134765048969930957059925163246359126312308598552143645068097555062665779768472688656515572080314936190298526358372317976947192794315036140754875788996414101882619242118810466027938879701767704134549356282593296975286542451304679350976876433431989696035522594335813800742311511282404787388053591036562105214269470244008639062141839627352152852372451474651051078889518814388076693474757978605890479235934761680937932609331821891663052208111579457915479211927417315479412681551154768573729176063610008248694435949331466500438052850674365599252428865111020266223271161976750786649291295843105820971114623658395274226016563405691844052740221589115565377320195566438122874513873271116640001171412367408484650774537565569457671290535232099505061688407847466326136785234319743252323996216207827498299749482160448742162385106388744379413611200405386080742436427355010411323676139530710095003289935140288528021661190117416894701185675348871505731918208834603930753639039394715172409064733313820335247410166143534705422914158156288221585559332799108837142104773168950096259435121603043592633276199908692634265038649110817865383790658016811189235629637968617404680373365908749870667060358626083946206793670995793962539226976333727369449759216975794549308829124225875658285654668572187593456982416970177297034977670269185524190094329508267579058531800671527808379343421444626961891612029660412509951170830489878663919038817486802378401843377675912627754552785115010775107074936531657051837825113600663752429616511112105012466941917632214612875009645276824603353081274343149252758952869777480891759692562013327801157094106620258159975769717118813405161387702407005224290642138940782741066118667843419903143075618158436147878401027027029345398114474655535994804743631536216146309470085081745305489429509557062394428158449158624721134715446962555558390856663989346383331481012549842012325019543153130253969042782693106855278001593052824440651344517754430142046838900020238519172916494332794034465235935890545514592469085931187536044054016304123784312479425104143052475691159331721116262944109996907068985559185919992099724433965231920189848798406574990883916153871774958545773055453103372188112891847089535691297455130928158180217679430652018653094494150597033328744783859673640258216561018796383203851979900370240714827157004935239137709918694921666898218691938622964519622661270944956363333637033232128950215201601188097102955715810821786302259951324659598141529588525971971768974203086246682037667328335290498822358567411379796707911680890719502837070560770537977514521272035529044475853814135815413359582069547664254825071124588200220738076351962420478745520131866944057842414808001269005213947993068333367110206038168391699001633714270685792987152658208842117989148111626472364081839654986012612328142654622557658532035042035233540907338259818917204844566144289323816856742743093318913700924299239923374079567278336171902411590499603449614943293171678813126508595467089513976507185946464935685967724247542674136926346400128944740296902673868430613467685352784773522937393968423087258845712205539909654964470983214714724393032861049342119221572785805058471463438203237921499918478142221778294932741352463592489207229069495986095527777373817352615627168937398508574810218615819127047214530344701986848406535073542850245618018040535173775898840612945826928931720180013894322208784077389911727718939962550640234804315012628392095083748429354870222753166042362666320880341183497790141984564494403791532826080691770550065259942361288541672998764373473902573226620906280781887638804567379319102050398347902285499341722551454257677369206727252075225734192956887349798835706575407486111636804877687280959898717781777182737255580828000343784043874485577193773921887406389459722131710322384043007481559856070503337042927975536863540699021710125636378922732462035561575197946011082076662790121287558383643224760715201072215142251999099291352810289907677947920221958588959536208267020060317028832260565570040709120459892117954632332085589928466627539622002458537253883931142664808134403076105853329475743729762672164807800458852890175559752899689544331725658275384189009534571356497731872671240736791876007366990616089403687983429023177660540106563196024910292627068109297094234375491393635600550941764764413934967558930415386843517315862261466197786092399560196152785081433309461199511541565250729778934064325465280634012529936989487168277886356026109667092755977659412823629591419150172616937920201735128784583253042788317490843568817652415400292107475770662731064103492177112882331089655982930001650907702353959818364443443153285207889742141163940929584581141564586784503929429570644826779832634258067987605106099593694070274572288491558666765527854288910850519531031683930282545436296274930023665251212744088934551919910488994262484714335311267661294302731564351109852176125557583935774694484758211779177624865707767224621277597932273469717742580768361357802638370566350535996149263851045974524231522155053947254158372230860405672785878931235527645684200657142820483848160174448353281194542382492805327089673602629724081395752629959539356197615592290453499519932029158099403858973786234983685225308449822656087353729167519215422320145736336188315253256817869937473686601033055960969771375185282525519362645652895447840654877279367492962571122943759227036975100798736626814843066611116112980092980276417023778169321525399591839365981757469862854891187357199309711508747845387015795442284690094010378253753530886620616253604513841760802660819561607859444245597609571871944985078927121879256205121568790853652454211495206438107651177108779926176889247597388340964466447216232241699077512428441858328466840751342301335010831216595444858602688945546329527650473728863981411539062852290174104452740014767599515155431717574934486138915863342763308273480397588262097204004039169102390355122994197812070638404475970997753765769237381344526136867982007669746924129522043729865695013452537019880379892672791830708640799048416842769279189176920293310824234883879078291196132134160549380722956877480313485324643426573638862471584480007457067327080527442298094803395747510326953548939466050444308994449576612519007887312309118799838804992478577708740755630680399046642467653986339898474270725674844077198584810246626140670897110268274778354300390117440060836573288764679901031438016093517784442376694395034867770169497230969970022255107404360551865216333686387316240933797907103868654989493724144576446543801857802067511146368860389724955185434132735771852324473012643216806634650097918897376311221829662950822289407493496809034963002435507199298741998294254742024600109714393847706102560179036161845877120656060111570228117226725161196149519249376225959169408355181237172126301391177384079100438770452023469748630495980060473258236346284663785817857018659353946233245991581046563741009386451952962270994647154423027869447688954106920392594348676231779259188528241280223077928911888459014899801526400237872423011058248740674199247528776397375536553261453750708903823028605230055373430608281931369977549218070868301112894364205876293286514941578347840060926114738274076968459852471298966304533665764410408688900018231010733116775286155969226578060543690863124137228901927813719214754803299503899007261282143754842533327975213359770663599464105917113905720611511426662397359035636180568109173827456410672495293831953950796584750754542326490727587067800901211515952196483015609157122619807656746112318554956093913272750604262648395326980569434600119387397676043110448020549657211320918542944314047822674023438536823692334396109980941731611517861258566717900895021355049544248274145136875208758156469093579085804174359433494894165844521169515901539468298491868444513609307945633922870392064693970129556196255381744383509701690267717273932221600209785605245280619048809947182234711835757187454013122753521266401668152158357419445361607968156367448483109776852573185875461490259058516144925801535783120002316257818164006500172913943435370616951670442730103769527595044492538992217688340683916227838489212343344255441021019612113981366212438665543624686889430272731708341994016959396841593155423283316402961740485286031979924695782127187430233302519561421277729940453092942951239567512725542227734268804684485207624025609809692570527459620099902259900091219036483949441022096835338017747178914505764282149980623789087552357216671232583043715799566568838961429077161027968477301072453765217943812080944739760167166326028139499384744918384685969682776617185669945106876906302668544525941943289175812643990340357273005752941267785108871042171113297587712796455472423368543628397178758533189862753964919485549177857912461911029029791020570010729071371820865645121421320463838826032037945655022008166859894466748159370849779509495155065093026340166746859106452644540351169853684681929759378460990031431459292088171173011853629151598560614252058885609456251373812714759936654572714250186664770218973026631880484661509357434365698710645566642864579301681874415368422539364032929248915486457606944756082129588790254421127225623559957960605794972945694085834396564402455004467167524761068165401356520456631045945141766967107523473183601692295279483051524587980574065451261666320527581705527567860952395197600827217353720671015485471734699220868241275848989026587454523188052108715906443943147297260986509806907035416709271686789343565834987778946484320223906071721297277733457842051313117016602118480325142076762177620712274674947600390386808062643482039343751252773909381146782037243365368551700345439091756890150673989678329725611698912947049177077967149765084775984368189309587089574300242347737836387594126995879560368502282172958335786109424357542222590012797283483643080698706449958434205226635697749156231976073266514799687207297032850024841090908933836080100138241426768627074950840478786173254496203214885454871993030449124290623094545657201556617122632618054166961267466619674497099143740431708617774179151912075916774060814373594736349302586204207231547291836096543555149853841574993833027436042718602453231125408822755893293913174270877685556043623781545326900655257046585362703534359527288013363561360697321804807173037978956133867633003329136812870036702074243531074402979648118913166329481363157801412889433125370565546794347336083641864677144580527292867275840865175803059192984570390470220034641895750926578865534561801057707836973818054270524376615744233956337675557372349151390405072675196297288424710584502990354986694514062809294616835625951681952022392134473999900804150077047314309801004591845248431082070757793634372348086933105983846415124802485059532429542234696485269124900423116012216751426616339437713668272828721218313742422487917977200339600232560937050130661112344925734232313086801380469367828259746501887874595443050061827807907516557565617360208134026584809550939851776706686795634201687089284136044204397867443062132571799370439962948157513068031537117323436001313980107783688168943716894084153058067839152691149776580388506826487835608051991226835994395868097150310684210994623404806807122623434110025071850990714117802419553789439493789712599228590994726722552650420079984692844797062086071537172017678744646059186290499732057523067700484321297321377361711543643732905528603109018241811800290863340308234717539312675140810672407037411193717916339312800767872638579270867324520761231888786675747452489397604192602211718387683536669539563679145788081509855897868551408323992101607617718080995324461074803671258571325056769930351453079130998564579210931811664958420421899273746425379018046785049046892113928112089779869835526048917707729905820236362891892323324110167987752611801524268367478477446580859207301396673312037197819828976990841160794142942070298777732102370231315860995764475577601745483240936090600140489676936874700061579528990253735846147046344325783219177330903789482712269587408403198247749248744652397270991152903716007608228087677918425040854786206662774412149093293839607422607813396764826428713874845970665445437199218573139554558223126446769759636003495149018855925061321796475081074708548867702268078805754062677762824847626364385157080228128038481422229557746602221304622059423569838715397882818152365782669215036968158756312546678014322016624980737132287541439920239761079656484530455550486921269847951428300126921898507244566457537177964600275854695052021452226536971211638841519992787186628072361981835990913474678224314285987982510820114814237859426986728369297881218268264724337073874750262432336334776516804290450071611313516344971110999869335334129868607849821229204600408680457065755280621520747575068447905425540984385370684094159560637120597544858499417411034928555514851003810006558647920655191785024613556690164750375561070139786496215992590821258858756597715934155280417928778541542117841945460506173259146818016727704071453448814784855405051969305336235764197950470486250190663032128858235551660692378132747279026038416730012616930350253507281902423657133805066682065292518150371648324355419420071286484982266005682230000220658191005910675450597912757914314232345556195090312079380299170861865519720177858882854152044856197639811018692506272109406209780109313263189223383959773861013559160940369019864512414599069976809406832456124723679592771869277744495104067756505919654598873548564667314686239626905023575857830381858901558932996875679728310858396366595452190545712920692797196610676332876062984922855849444592356215255774522205902533899769655906798473925996557648183777619080958214316206874624313608567874838776099231904588159155258081326220057981888659740067235394410089054763854613466463302428582518610881423712643911605724074494697372147119092352550334388921828557749520597134111179120562204249157830548697677132920586819618810295822033709583051186669692800149542290560957211575117469175058037294234277627486067302847436941289802980715912828457401529228989821674783133265389874347760723579198353046467485042918478824202610618461727670202024351820497527527399957860419684206672101029855864580386352907058770400334933186751314582196340771788877267897520751841294468826895928713343435344787063128139226702618463948059784689134772899609371611843916640450108868418146900344069691679036333379538653328153195822103873889924986836885246119643634945929169635880767335316785825249183717876116360206792772783034283747878426886589871302347920974669779944301184380126589660526609150491414221736927912696213805193160201887629829998067448778653795047125282381858062540296864966984093524908195012346411318855103714485071843650586726842042112137560753552447519529919026377746482960039648501731182422228423632785484805962289064558685849030423513321846152704952692478211569060846527080721457702347413168210172998670769901934725082731893890084469620837797993363316265757529825855864223747774786800030122522886155063198682195227477964435720677859093250671260409326903336260120670724853028044785845645534437407240606566742055731008661141221274622414374237258676584163558645562940368599779558774622744242045967680186119441202879866512766255207628398991290329385827633326250715126202064957968370342975799580498828753451553331378539294732956151660913660134747537836055624824287461984690208462006781099675846166313487071677953667838274877445417204037761307249910238251190974985109038231434979812882022766423982615323305779973888545615060146059450592534218232206369288396990398831282273496826493609428971775760630783689623466920630890819891154000954834192204102335139388127416707155444195361469698425195742759449354449347242518735128841860355212282522157707620838929614275707576417139761990897941455671958333834999458272849873102217656734046620185326722871858609317819863531329004035182590647747662105444917521816989326661952628880525417950231629731777037870853659040105268242723895001786366024166375412988664620677241826511367184004901283813312207620776849642210898002252422748064145792726135116839315376992235475506848104506720245846311770150949612304483871916790479015079693549039309732687631311289078227612559434598986668015717719812682339951018795022849720738599776011745554965484459946310625044660005112730479983785797826980276833853322477363599942758247708798065601539825337231675981967302645625422782864311119809489265329925774749929839327748255466027388011344825539257973540517344138849245261489647359959718590444736831310156076858135429987897231523940791936541958295768122655277414556584241057515600272911316612574359713797974451704834391032802314717223944789475479126319744699244764032158471359389713760082197090077467774936222698127969387038887555773655037844986224486138045355928694029050198189173730862282866423094623680003360361202388946011186682278564270324386214690887690807857133917527305623990184485471192361250843952676453797850888368225726905531320158881161287118430434762399045896259468808051738283354762020493973732434084986536421960705976856063275764409913823984657603525987167693624253450607402518510893342019306933882252781530466403107277311955406019414044660858242576211405708558003034887898981604297805420837783597548756511504132702334842491371774165705723800767412132320320722802932253863663368679184939103884051518267455215693675092863470492681282185436682324726601995829131564363234447071733294588394305616891475533582589075817338164354358286817182786003521399427962363315309765867963385984399883669794392877457783847102284360333566882729407882993784492367373419848226334627305040429272249656862384663740591273144735889033124402084287034203530442416437754850209908063713131506503605658515635436525378744385522791855373498438965060974408548847798307628219919138688686902001382021245266869350635244891124695714591043738748995423264623645297654415536361311906058871926806498061706385615921991227466819449370206771313637226150619331977950979546531486382489047293075413099160968197777022590495246451764499037570127340368983824097903302089634775804550476381499311465363489637170822198146145661130708435295259204685692255909394413667441217941079732959533421911777040739531995053309505601314009508943074627258230140405550461512039700258085947253765166932744038974367586067385846961895880281902451881070805923986582332190329024304830331913925409651376864465406376018017586297889976986099047166845151610764739628428271215932450738125124028786058999721443725823554313546821096370270127294729013801685756664608375805745782572755634578354562891934228137263355177356364284856286182214603455098272321861995711062554685886784298542837790598847836038050705293478735213581149911690240598084595043132816190543307548636721545415278878440921418221617465534317082418209490946199689131931602203163542386656245180183942468671806427256742949879802653623761151691712130144400125426269921402124863552956165003723659377238413117575984281588996381795319980269663584600934045641475815368620236990531590363531598680973816490355519680885949662787692241664589538719172960808323666737237730128250275418253773973666093012237402789731479595393960656567999778528401916912623566567161215658671233699212322367530734971767113582448830052429915548304846854402006727661026452877487102626334884816213075270409820363045841257033041129850500866405662618847578407809217907618835249322412509496943755914553041664000020982699871429527431303007043056584440822936249710774045952520233534790784319959451070130048740497814053108933202130280874685614253665844002627624565022086212558384543455537102735958625126586171903781768447010826564087389862677157499787944088349337654454353778085471046495326288761202134104572551342207486428529314810361293230122376103638297085694128801170586711379728007638029859778882174620135258906235376172223516582481792236870285263819687005946243784304816834012772669891797428059080457454534434649347982518901033555398147308340347303434623357981545228263678764188461228278177283905496574173344079433305670812359909235708059811315301013405185201731824984107082454402495679011592883161308068901263693899930761003049718451995727563185113772488107608080486052592028823320387024530262218902228540511239371191525021115855289116036311152617324296588712209976533709169624229572839973585190572101479280192533216260099292263855778753153403435099602184213796517609068721936800752082819035608284893211942866192879798757984535260970537871401109608869832310079155558362759215513684082179598031880213998622552523314401225857123874704720353012145198188962063422611611332001197354304112971426516891240873815366334529214944993059020657199971284596483055214259923415807717605724821269288350238149819281714940478160647475909238478108762545050924148377630022528867374468484445833597436231945804037364329455508866191631619279657598203635998455598461038230648958222919530882255104450191703482053083256228065607692730923075783154316874301386635747846291584688792320901531041484460066721008041063244458426077439123317460341266481764429330192413717024468528058019929638228421945359785565808711924451512359078952039957431275265329023436414776294064361604734230603568218462746273131530670116345353289434397893263889261134463700523195562960315868482516165704841811784679367706890115937254108587847248323582702143577870348369089446351414493796668805615150105200803627986187645077082358312312779689394049458740489453437726632340611822210890221246875806409443104815551812803682573895533203390040372599301271911397677425052046306921275268254972699944247584275954598641985092763522724130312112060206393646365214783468706142144677086240723806355288018996580332849291024432164616540910827409197794740210832237431140128399671272037899161608912576521882040578266862681070368487564516439627112107428029141103539881044022240535344514961167071446205637879463493776219269474314485152892391882221320511435537075668196011844282305855854357533253910843688168591727598088822638439222999578067500667353500963485519396610383689157541822861034456928595852491495534555870863060367089249699253044771550287213050946144084695807012955867940580454839804308154699938842166350768427481548186997991641929324848363432829087837054383428310535502817369132909006119331593680768763408703574763765516500719526398577328812589189795070198114013519923496020962578052904387747791373041029147240034981736737223902293158399251993470270788944507754565081995039276509645291150780333575307480620164818488825114790242208918872101081759959670455021783521974110959249471498930583876318448785412566900178888282660070077771720138298436392316395343562824264344339777446353547983486537442918164815002148222835239511337008685642905234715759617351222108146657274172542301094505656423940257709606811564590710664115686913215746441811767876133738483248367272081380970477304951590968768464726053661974001666018408494898618873223103322846309938794452908503551805529756442287583861598104470900668430579274001154139866737385809615683198383465620666086234951062752075046801192712054553011162077003525453452973120996617561837448160138582848406668121809685610501271924498079490153031761481768878111846418834783371796108706234494097917690232811502588608870781468701079926783506360715720241420990714121742251158487407030751883727243230019490148092586589954658511133296838295608951355939518915150629359918353124250155071583362831127237459827193775661701645079540781562738420402896786933301140690428914436171709301496171495016847337372340607570426046601860483203918060812043116227944593835945071534148740385542525252421167190093441034780773896455379669988605825793352239191102265538058140699939728709417671760897714375449668458308423831056894167738694321493395357559892057663665058072186739232247551786780320402813484739303115221442381194132974640619773110426398867990405569409483739364291156818554513433679427913838640310778291302486373159952401030236154803104226207869332372272649378851596425140806585782408714034062466156180731113093502552023364958223983041371891989172004750607287349401088026755718387274147187320754957753586397044764042033266966632080382021551724686321269029115527216024284017172116563078054303971150200270586557769017914309802016585521037229870215426954578626163163896863233907393410728223558743385201703796166779490173487589639456116856788214244955026774328460997567586590601032727873167876897547328404993165168066381001860078526429398187425119772568917517590755971122800667931258260267584668356088354332578975481188185824397789539592815498589560244258142835867684317328131930092957945571518844830414582767663668890195862425887169073116456381203600871754073129618836253835909926787698992000148583684703427827719495262497698043088119823110978580403432431976278288239246594292080528775739350028530815478129049353098980737139370385765382354584760249708690212018761242732337905616247643728082061830385982709862084814294892828246200944574548701286672778692908424218699459982468637816829058763907057825507684023473793618485913821657773847807873644474768789676702866463346362905300124382432973493600189156341828181981470025334110419690589694375214669128218771236743565069838107115798997011659075091735800471251547434452190909646335520832880527494535740457286118878722779849406857113147552611212471786733501094918679538653067176110327432158108076124207592964796546677389563848520763247200837964044272194493203432880162595517779472044960645997624705655095034201701260736103780860952337764310136137329141227408632210817538178040865421997879313508996485931929008589385628819406897853092917245367321943583518759578686745056073349860715416736478919162844079123419847055378841032071928976784169274828278727724480808057039111342626684312707013732556647551213932201314321419612104482559186501362470974431983502732596652695162532323718819283205818177125781449605551020896406935309909035144912026251763966959210616488044990701266138174274699622688967397240111178168681908383739642411449081136545521966180920126556768834662515992400107980036481928151725073341923047446711862679745541672097965131404299318018745825335368019391340870677081903454787721404025916145128098084175760258084195256665910767395598223349523679150565387369684367517989998247323470059819653043344841062501823347421623241202091169421116624718940180464734093438713437698382460645168054390773876153495379075678033172170548363545823863065549808294732239563339814892509587008710174805175376436998703634195980829502787288435503647951966495417166598054535687656749393265887091902671511310270466587753575454959659898700740630104328340452503254445596436065768850840008652597001265626457952907360354170821536568286533271963927839680718092261342422737773118282913431438878550882838656011964260109044084596946651689175568494577786503705426589950968101071705980725665317534028848432418683602149560815544683484836370634532432271697485682981918442089117734419217542138584615556926152745480595019066590924512537783207899719317543585762436091468849111559883030614397024899926105739828145884719198125227073835607037873424625640287316117882048172487417635905204381119968135485758571996678641409433868176159070598431437666445092032153274057243422239716137066316034205659980278170866752873812155328188831035338044840872570038957396922856412381456438703894846307928610352078049548835602779653175709740470284294123145419318731688586353830755794869066014200266674741290190840295893553763271898480588587416081726489795534077448764562153916818648078217482693354248385450166535428947210671466013233524647186015656626619675686227703237856620323580760691542259063245620229577966434456497663565030571606430346548386285419711658021269434301136996555967783868094546003669540566653745198623927400858311319287474420331062311051630567393965562586357084800513873822679339345945020995666486883695193816596901402912836604916776668561428231055237315294784178420791651377389424729894292259131688232238775639078341506121393015377237993841487070900646453895463571501499733949075676281028057756019996025525241000245127543605334470459739246271982264047412315343131650744579312782633797197954118804889431838744332815481639772156546134857558898680957743594853440289649557149271029933781399629849729801453866366986381390480885959497801784051157552140272842844907724638888426871254680397726130473239036745237690991710360431679581646098338549233634922677992538455622557082356047156778078778879443524721882744610598546878696476499308752715525363168471758814405289796291437905710285562488431048397302957532660618186305933610952857107863344075123564715973683288859291073718900810876655861005928869278092413929934542608219207946340900125743339365903832201365088878817508317911755732253989280780888206090382102242649161563569518743576453528271851893087319473827420793569023951722103998100677288152179192641747931722921820576888189938529686513849591710128128604776103572134138410655297545210537916188742228356660897771888789671691165939739380533822435835922400433413985398774453291846050118276578410113232716345456693846657243192381450768992490487113305087360479749296174448966903782174206958722140248731087003313746591471648929436701907080327855439823647098510879375454238842258324068213318599979865390555786599627171539710084922012975695700970077077357902727551620100162314426719016856158305304715614345574540893848406497918970826185209312132677671242403382991499249838895473679917926600084408963043407519020229740510132898148138793283820934446365360861278173781379236201034268014844055114809470281987317748473162963559462680355058299915151019180716692243018976671145974574224851926645964789264495197157596135371554241904032329115426067386847011192793031552903767189257060728334560410663515145336938680975522027925809144177863512151744736132800811704486599776089354846279125377979905591336507767019016468861418350454305831809938418386182282052005195880041168525770018878900858909581116816135186054426359759981477321729392638706706748489034436969923840988494613179147889640011291821789865385333868591654187285198463357132176649239419199492545654798999518822028846983151876481583702249878265845027339453388361694225401460404966712817998860307721576190152484585519620997162734811068992111506260191794648505381753614220723892491098256833935611724542213683177919812412623311654313547243324880613204926011602996947243880084770431358908658344704240136177329337535893752395275788822422173157506340457554619601197019043255545281208713142867510804016227561904014897270918107636050177855961938214285461827079456010403978613536870022805853528843443570471123247020020599841666115065596245450868315877504784952795708676956976219171358550241715734120204224862255183564963685227095615834170753666276082110921203140945586353276967087178834437164973026862315574355892581512667688263204812682890478813714003726463282696000603351915881787512953540869276706700366794465356333070494578173964734908303501812146121150836910951451487475755805417280066380582210047282337308878681000296438932208715915084451994830195191228252927337377192298976338959716579503708575524564719876211811803061288993402230667228159910562995125781618962960671855063862275440419320921224938382072316160454693270521494447332248587201130481545740813732207349916605690883060961696990785226552037397191213734002688766543125811355414086680550599456558136611573281758375765705867775614651775984138427149357570494131861367368456255922317765491409047647562482796673268910628825859402926998069396721639517228775669157340513767524311553040867821444837567692230925926153062883089273649195696400603769574183573509370655422586481427310605930327062233165050548355875146305838816993435102873102758927338148584644276874757648099543550126253306749566086708691681998508363161064643489772681619339031790064695049584326505570622871969865707897609568741962612779445812914606429892042041831683253203675168349898343873877407760056480137639564320247964412364523585558361800517828266439112232936407187868076426916554208613251824024044692380209113673044993258354036245804621318866421724623515122377376821188232153535970098016317925683093083996817708744694386215242527227570208502043122039242642504972997807895033322268816535215079952523318928940389197819334016307183328825594181692739216314140713839397040530611795929028688940120662119469985990173146511660725507506247618950188287333147882275149909116942369944105641812315749401770376704904851491597506811498222974419204488944813455496150471977937903019945308969907186763255657995389345966178567972525127872678542855459232707352273111890406787611233039779902522551280110746518192474668436601273409382728395483738226507335565479322311133501145168413441794832379659487975459663596907225225802593455366213238790569979207095545503730429567581471317438822491975526726406374770551020988318586830517906881510299683771583077736624967420015648444096665933417737627886814038663797965044824580979377329982502345712960677229937149474962126649408799099244362483940752701102686447434939543218707183358107784703965294373906254212505607986506705799101418581598330266591696324577122512082091783281975956464931839546466592639921440820850376503575213163851666552958430258227462212101543933687144891026812298271738133908176716490589299632205888207508508389215771988812993614090311593697109633905752716586575719384205019201688062964160746304957194453248170416511420718627533971866341900876230650393627188881064496603108670994683520550979822757506120922205619509588250149683796370268318362111823004508326106371319888707608286020544679820910611066370338103320912502572315196141333337002075868477558349029159597727019097498960995061247592608398257698210670939372749514026433585475483673255276641316874945933115124077835387123431405824589708444233293936836830003617957941746417955432367455625772279852671346997411992627020833069296338774305009261214214052458663710114878522910138419627895108860684216580482600309829430625225170389599985118705377333980577664790059045172483932521111100941814787553651278742767407910743326576920674209517874951150766250767725457928985886155537194502751491477272113859330430225370758865086300581712808171366016969061407971154027525223366688141257361327436976476220666901930525143443237720659117114790456709165989090290346529817610461715123698415149106427748337638444375631268467326356446284428658046827653915226514726827127519372744239862008316633910875714402016648509544123116046862454226406556248435659966985153261473304299115461917065438169744614506490906925474308545778681159384922213095111555954895546590989187631146234359583650824161329509921139981804540390355648448618066603436689060638446020159403795313168458663697062473884540352392978921182737669623881446434986894867700883798789138340544770749540969978297123157950740213339232905337985235331870831763412352856234561474166252912279223821780631677762661948891801102141660029470085135553726987846810417303794299821523880656940265567117013582360163328899379568257552479018811461121311949892347322644818141364333861290584229447990985208835046773325788104836917277879612987252315549313462580624049002857329552626104209032495736791491653735235606168846738484138937752418720314220627389387899188177021137530515162350934995000050743618688683858982399216797737926900095920667169243450547597093595046236557966345840853525917810937072313856918954338798829343010818998943101578851235299197876290461991480628962929302076993977862812909858602439847562212044689297954641074018779593303614774812519342979026050662125946575855570008010953743571819493695921098293214098465331537386059386597641738793084649493548101199751260456970944744357964750565179895224881563859844451176856986804241458214378494735462140139758579235866938665230763078866176475214359291554300157422144731691349074973001576241024742083956978547856759516132838825145587884345222040241892648898049993627151252550173584565836910027869818108074495562468035059498798503302436887793748716004526766320877432724747479049372712506102859634484702115791586760048271233275254724194710375709753223247006808476126924025926582702482340704555519158179606352507195312315531397341293189538714395058915712927655109594845700094787809722915075560642110027982631289510279855573128461273291281433108878758310224502606550836489788881447130251254976022668072263495531970595268638230061346241744132537301869888026176416706778974267991469003498125959840294227716545735084622123521391425203272301761912666639502501977573094748077659277168073562752460394598228872252296645239614571625801534748329390308292694129567479638415967097216374386408404313115069837915417759287395998183145916595160303863160892784222184944436173198702644841378546793924358658297419013042345148010024309575982152582549016547153094038366653574727429046486221648074720209084451941608327759478357362722113622200982053159695198956072326326884683656035636142552064881068185233586776624563323654165427540825240119765195967399402348773123650205424164235816566104795649259173259856616549724783303575878292404504424470427638737201299673870664415910222655569249497731785689113796045769645209384210454160157433494322260237540516802905326330398478506058415098076412318936794197678317264678414702558254532938763977021604419123188913315974792199399782617537566597601834925394686205660760601344802807129996663033305186496241434077097938515543143831363598896589167150285010386185098686752117026575950707844086951585109997394226636661153522708092061869230106091150701483260914922563089274996847474961919055521631465942788377702498701229096121986169345659581559304600830389702811480074147051285097764293045428568914421330713840642975375947030211050060054922031328383689287542143500685405215244186130579933625793121613623694265660082883312464788601557788706804518084740656469280218299603598148792540961906275010528440186137731712808334001480847761706154581603424351635540602282774636238430575643787464494941017873396466370213571430623683076217335109689305430919454416403070998595211121739665852763013270917886031666390047653056135689856196623510750705701952542243605455465065081332315976749393551732782000410939485324821270091891640482489819859236600246254792460726708539219699972949953571019485819136393153588124961601313766978932793220740395170042511678989564944890370985245161461256540174123655599194282946059376333644222898008127165665358465927811492781704546739637987347721788942769076528222304462580332990319026114411069886035447598987321414484713717764355087319471605931153484249966979617546515002010792481773448518199624507073865268184489334251756810024187704044042042839134471162115901506697227950890478551435329591748789203078853009066588577289319074140289539217699685678764383130909742716329475163073303718920833160110959690457235557590147540645265527615623110156258909897952476858101513900043168162764409339794451427656069848817315801488161226194049841846102485515296539203151349440576073066516580589481362174252795554051457456534919716559876082852663858671767356056054683946618561351598169862583188302374451606108703040267475888638020964506559585784772637573396171212539743394485696724998749937964523549966515049052971593178974797001111345206604060708585485219430918636241951838129605835165487344069081811808441989243070495053546420348572788037443353852354166516805080688487667955467315007464959231330170675526039968025897797536927291404484241179920592101483925093791698236300248421797259627934808150072304744950268456607554657323400319656945747927577084463427785955589996502366505199704826753783414337716514618494527059727414473172400166191368060565295584368468950635303877849615667534369373410220485233614184160887989363190836409197182235963129338235105429738022866400535016472739915010070698875811819040436282373925890199771234404366832415748182010991469553230557348856075033347087805946370743671962910465317528224950816484228972449992293538889482694878725548989664787228767937816725277674130813393288912236635199211316408179264536977408117138595351044615417874433715256443475976913803540886039467237689184348203631607621264190613282031507068156533254272354774338775773927256490626819612663695723594233344798078136932370371022446805791919616807881544323993523447090593281781684310934692939829114668283608593646232372592933233715612011595353376592156792827850343650356626026735461630727582889111238425152456284234662877684432356762077036970015660375187220949594303692231387354308774739756210050107472403312870240851368607263660028591361166955650785709620626691706401176811260938065305660769893781296130947614104880892752373100247726061957649280197006007891928168611231818625587917635335002223250492890051843809431186325555649234693009158562328374674362275774135712207485866638351562243770329233740154481321510506673105910338415555225485534120565657502701149887138554533207976392459441809692364907700699417769017464583901224839055887622272459278605104505688442212878643629004275744017473665962123095036970039130355637272571691124460230916965348287545265749767754948749756902014177387099072374194293789176903467109823840089024620903959007358569922493225159081145493643455659739186086909223732893973016561926368052090955883730502377688218933597903157676879628500940684482106669678123401835618754412496870697813096385116323669461455314852420479119285271964438464031243625648926460873826407954090685834725653713760181682401172660615563342025749036748975650956248198054855259231134195903993583678422771211255593715780045362046313079628315765766616511532740685497774106191106673072167878499301156494537187246770528435865211722509960749407429570757202946510030766795893839290481016620531680422762856792347374071376453010454841290082642719860263442398927317784492110474395719659200882081286838754524963828780932102783373092575569223496123383285563773918276778749259137242394499256144939102361251371204549176963726850108609807688235629680998336962118481314373497340093401481155501417902271708859676259321667820598680083401413510070378018649637471931709064015149612146168042748664228481593366713389412109375872476400667045504807590724670313883268484093314546145926063415460043379375129619202465769487111082017501940398392926291067974465465733171904234921029864237810011840395057112729845695256753484894730784975350383586666741854129395216086126931859570772153564227645152446368595639688914714226292374312507760948282082350124500323768314694974144413047000708384061213268248759294559413313491072805493563417170539084210277390965955888504491736832373804302574424814207683812873003848864231402780130273661877003106065191552056170483367430711477492543616851267935804623978512460354471440477474409580186204367503961989740925026189186917837990764460073340003383977663042543836823062946167738303011260237024606921008712116024857072994115946623450298696092854211041212051378556614253315399596679468447770899782098450861722487267664666394103563481528006097792532562724525008734845512054774752236746834383759440731440222736647702558145862661914361498732360028894987023179150517044783617076186905359452852372888813905372545729595835749066526768918880606897666729480644030233265665554531601445574471166893815800335131552516450008670183310177523910086321157211563314243460142337035757113543203459854059725627022537931585477661475312137941849255868009798339419278737900866827953507820581934789230254888967280116919084554150331810045819337720781662451848055958588752293527477321366010587499624484051831839195539378081335879950559901873217882063502594623532065655456293972437137838079376823019507013070141604725010138368934469970740213927723735390742089567964652788243139401233903992324614549715019101558078105754755510010249633412636274694979500128347245061712453448957574696887898169081522674877043121802932176423794053876059756896640882392402950952833798807523638772249811992015334566790335650727896971296685956749412136208468261893069765814357510560508091653715509865406969145304838301030558932088722261524441816591758241016425191278929415085844626743293418544840907820495914973544096036219467939501286139853547431315882142429202129649595432837158213226425494274398505734816618373523397314718250370450306564916482633210658596193477789986933380704461815585066134970356582200766184391405865206371581451938171592243884734360740969636116734027177279529432361843135817582456008821232586063661087278125902557054083656502764567547930007798273317352010606517297385508852514026081480570876005113067770624145722677121073629456006733105781784800881775951351380152556504567201982961488129844231713237843742683469002473871251804112643073259015441583573067709242174358629237893577764155721748898573954671430226565923727216649664091584249694651313143307565032784307279114607860775354741294259806728066897002386589089492290465841636137733484937041793266871135142092004154913694260101161090193826387136859746528352409488215254063309405058218803339352468864469949928775258290002621341539145308745173030777309030606431472205200832835319270336102037375820938983215300099703481323587875393372861769895205335512847686509478201423824869948312327786883664252037729139451111733856772205431783560583481544144211719139163157618564347310733842241205124139677974333668629749966663933198940000580057346287524863094393424659720357823233051067416946611302285707200064947630658798886015814234343318409281249250101318846854267785983186628374424709103856218782468424433120785820790435140456404145158098776252270295568850480481219140756333168298355179058161135237700327188752943567824742446635118045862692624208484550793870490724605654515327013675278122434844415170040563086374388032419713976903200512718674919614231938049031713160311341060981254348398724124740067057092473766001849787285436902673953093766852034025132651668089382195217055447253739937901221423615235596075515256874018598902264234813356727792669052736324580533643792388853291784252742732299919607308541424122842426062684906189445013830079698010021094979539165477004427880368530858454688068028328447165739698779710474628276608313060727330976433569078432412284054022918051456488547531188287260810506640634621801933977578525927094791988609516585367773900447286245670273316620575397087048436911981744816108191261619667263259103995935680128114621573711020489304587682351892333824649298749864725340971985814840670200635079840331624052724521533880720188367356112545141463954582582902390127268247389866558355494459702710597041875572547217725753463459121157300013226955960218948901647919308749526896536712928980708237048867692982834851483097634662095148951095099169776346679788483319455379781629950266966322351473036604944178449781647302210766863003120998659676485112918662900133451866549810536702896877520456761131825450524745175294141315475007053649245730191017504758428244028446556297834853662503940189124015545446623690083116828285854249098019787370192188399851138274798720521785398491791057777712186514260583818525884135063846369011844254782959522915652036195990203791099600817319905367371469547536730510306680791923298723039715580181344365417282108759730210887034390314500128381469007008063278980164331653582629354429642458486233526926535079548765159993687653717111142314987681742881616018257903085954758143120185533139534290216123112032719094660283035586323396862069832140785744136802042448548026334437109998953647090179592835708265848797063781416067350597777553034572951322308664452766750402736262863706239221023216895073407861440266938243515070831113961196836286046943163838852394963062901128975845584553158893591007418558808511661858775661113181605946029733479933025673746202098792284022362132369768350129047747954554170872856210177843721172642854042276544101090895935517068765301001968139608424456581759733166358465857066441371121286484033963603853553529066666175698434534936826140268417494748995669283002658330625793810225010509997069073687023660430402681628869395539205878706715682921250505347223133324349974450640652686923351915571112780376308268645511822578280303571447337250694359424964436102629045286948700500631304233656910418463877524961445718919444039999448865839145503773451369274773357973600276391763079014547201918000289381787015347533687627030195417695742641798220757617046881821843612068537399383868731830246728782021770861105216284977245884074892517722448683499502128075662939087993006529247919170869695091248446007904748017062445706662261912347294996913506751387914070446061979790364003199942867950294144646650645089427322500141552743821771020162276864241999052062040255077133227751645398907180034383079459919181198408770263346524987593986410735502121302330754583419190805235916247732007740049274904991786647926041177609816853483333885609382822562469675887608751199025006658688323601173153612475482468906323928024821805339683828200046350844017027755972248133956465268293970191564098330366972592981893563462476613105715732091140720709358788066816037371763116246455132168400576238452397753579989071993350090894570459080745744470958255403964840674452422198028057356182989992103421911634504554643675613848155050085514855224986668941197943481483657313445262978327860581662462145566707690576202252775076521385626966349124389289557646737897796466930489451115123812162812253760524977289176933056702222840298675423298944335390074761145195977357461038940215925207668276539695975680412501142306955251508665052786426484933829655813332151905581555097517190557349222400282638532312883971396633663536328936646319848100264796200769881641399871122611209656745868802979292333486790514481686532251787690920767675764507250919992198143113971410751262022390389193271152200140643284607406884595209796027379361634804279407607222346740623196883823171652583640303838692992514281215853700181332433265482860021204844426497156366881942644390626843337379279531638650596846462385981814752781050243702721236210814936310873349175403927956142433410403900401667536863445375393543752429705934446291833263888457617724146132214534092008394983544080841165667883807218224819363427257217537950875284055972829242849642394646403372031486188230272401051067084076240571768871942611715655249032144289351116912183966599045965951292426738502402255317929918952718125594353489949898812476087826382779211674216684951637729838088061446313222636777474443978863332780776124710425764153074684636123531111003151539682222466622026609892078800088993561378908269177875397789191489095271668144452597157423379477156543766097010441126435396755948758903829649509140386193683301610331637379742708146216082642978496936683409853336652000339618059514094623913328430552485349667175701304261377825962000573071783195893700586606882867133735298181333931249225340268827591403293864867031858132340914651793734989013596489713103387671161871266985250828295749809143882252880233744080950259975576185083318977560602797180976660591257012863426093112529983769058013231936201823212248654534528472617897403745612308173902077651429829197939077308214060833829159373553519786063480953617092977699685022849725301380049697123597006900083173027182843386300195853618425676185556561725777382048851486462557896747153515689478507457388624288995785205182248680477302617698609503815189938246234881448419416177360033338851694857254852963428790174880353254366624726847065573574640128301841614987229439989035676694199721712367310829198812176665844194998663077534172851944475215448775035637967268523887299153306768273458560530649611127194191394824487815946253735941643763868016304151356647747756983269357734877558651484016672856907017202172610254686335783538553828115891646932041943345228846234032180590343679266188819730622859573457881108265781027415789223974611604875825930673870217768562883545094882040246017805783103245332168682303899029809435372734757830002215485110841565610725472829050449458730043512003714040522639249696093865322435668511537399539850365205579445752369761956753038403669423057549771642912075900876774480728585173253454287037749187087395346201441774091961632451372506325225381954518963050428667517946601263393664773324417351583070455819407334957789930799688981817443960838947147566620579629515448260576775406734104433941834171819783555523364332661754595927107363283693999231038083353141600673522529551039942073149802240362120434115249871316626629039078665003334566829702967863700607796420493565146551511588009227930965303058936103603794220765143836759125440845196442546864902707944054179564366068058653115553789446933660554216041196712697298389377612584406611766381437683706393069248128003539337156840494477653492001157194467388409115734924112147293782917058238173756931333996082775265673782692510602232451905511581093686001631498939295860927337632753896159990438741511618010406355693698524637837586076182607371072485229540940413378427890139178052327267357727878948903478969678913956790016688949866510793698093736789448237674339286687761298960106643045659478013591876757686555499786993107781904213777262511209614617088541596506814547072184798958828469639827330671256281332826524080847042342755343856829173026308192673390604821633829496912569131175955533136687557682677141032951091409368817560783454981987423614726284706134282255562868305888822046608978148312327917656907092816890944776104514885998331312148431993521314923102407268361208646076549621796721918529101675747174737957562569387399951283080818753211938843903991938455500167370807477720981762903325441130388624129416634071257240828961766214326458207985808475658420099107717516332589862511106953737518199499058540512164058129205696527026230177225972999934366977101354766482883709493092075891408026678090168175935277359268544178625757824409662147441538056343413998475280231818280173679660413778609219011101113752299173946555861100224240496508672250555943673961077379628882151101038951277852269391552660639008530085494358705762501417419736538295396220989632546963813675881874391688125999437163405088146085105292534686989310962351312452581301440874238831106280370307049842426123653686456714406736243876330726397840346125676836982385025479607311853076335468638491439095289814439824022230318572669817599172707725390338907604341533201382152438866018530450897433405709104850337278095215416237853241800058696492655719572080404804941197774375661679064766804753566967673212318207991382923237428083530404540991679055630214281993840994660930891728467691947378737615800656917988147384093069322582976865931516112944106297841879544244402045025643441209007498056233209861035315631963118188872058353732342433405105719511527965408160041751318811753756285929559948718288808997306512599198676536010679111248626613067240559162913517708855562383583299655474390444488226392871994038242801667555739408845843320407737344085980187473696386874742038538609785185223898303586989079560208012714764280611698159627291523632479977871002908791329121494800801914950836355452697655193294686966902885657997265032164396288552308196985394227599088155685225463707954263256840406858694628811056510422508237138663578879150468555106750395717778929044615912949823606119219245879860773701909303943335071040482693174784663497328467347228728791877723269031709273693087293869131293766181922420835418158817586179955046371237748339832945735977973413093748060293318915639071082831681477121173980065530234186813564308421410405497963580761316841129199951005525079924451504075689824002976911360263897943474625789550719468454700995975523207250199207985507037529148118107232153881093757048160786603166620008055319107515392186415390331932763652898308290294466774847810568498359844983964519087951268929571888785517057855666441634214403238032447287807353086010029521405516551759362535610319754684155247704307067493385020431619617964083880145081734338613065065263036879178485282190939303922700023780541873513536094793529561191381857491584025368358955898849479942020878151025047148362341237352923122674265070584210668915780669771647730158699265199173815791297075702272043128112992514592680868197764475296051837249155309246787785571232149781113084207968444317869447895418311925590853031680830205242937907535053739578083727215748328943514898343111801918054979843206566749141546540923181198314095187427194399088120917777189848999881172718217533915639476200102847908317347456948065942343618542744704533403409738618167288868009630971353994322049362794469766405928957398069528558609826474671876890371920550433943640488876980166321237742442752411089453954041335050633753536035712309911348819107673400580469725724600776535980654849269960183343127146576539937531369312790131017723062403140144406275306989316681858664006101769924972047250677373767169903039183842632008371255260145676519046267031315032216060217132567517390445749679486528989380628941297005388016023998070837356069831735882058091189803101114775492553758909741267912596183984953188395873695440150207416443090820292192497961897570469999986077238911008558487351284479018255504203410363794423349875370486779813958731257539288840060398650402234939021445787422538376604521506095365101841617041507549285378253874839238768473439981870221389941131745584070325605088228394186078821690550669831194630573932680611915703957677596430971102390761632159600705906495044239898290239551413320980493657229629002630272710496145674296055714206958604110034920110925010356909616574148241823442758071133205732420764045151871644821620035645401531914290469854036315334821049051321485697351472519936580531853744128875739478992049333476069670527807318328187472245806149405085314386687857227131787981892080677102723225946216373411757019650621458407691840675440800316522918089167926249556125812531412531124908241742302700391550831246157600585591776881544076064032539374405294551936063650087960291531688446667743789701105893883547429051581948535702792268001081096465522182543413172408586656222064515767581300699090287747502666919188885060987987022635194880453614325339745573924586391290794259775418788648024518424067039594456814024064610803164456479323172798077513427188528058760096963849303109740672860943778800098937850976937889614281257106258249794104968503704055326166795482010902230924740110776675480339137082971259320938032279766197412284929831598103649404760870200982293392501885304402256808448956872669721242104628985538811832706318114546170197456550377988842796104410224332540810529267014860951134165911270013703230143293789493987484914765202086660226528801413987189234330847825924477337712568410042544809969532220198696210220666641059169751938567888788508021646498015289398698934380414200095163750055577290373979293339687280365638865090740245979631058838119717774194015998997275429693678898635782980014216537692321093314376283652877750354663308896780456187570259930453873403253826907386926211588607590219132148542860305012643327643187674736237573300032035754929742573383236502669617142434191694475044297775661530539839009034366123897469165342610651691704762797132884738458249919530601977624728746552516809732222991042621112615587662293486519143097985256961956922364027907320511749398314617490241530397842233956173745457214605030276074208287074550095537788153506290181294231971454023716542383473400188855395679635309956758529669636972919488179249129236287104895875766978298491272857747249427970551901281348275395868077212454052858556022188767149642798336937486854756228304918065351822002930179511833500130871147272993245828206044311679247328652903734103896871119203180256604742791588066496963123779268093582544000129291114835660926410032360866816159907628083381699876424815317837013524459761812727135418595881479004980975147772316086342241813266562467087823427146659430797966831825983503236709224019861217969713480288614870244906575151819148043917292736715122205902752525328557908314133262998587234357351800489969612362539075469217277166695704390611731390125585267617592527379990872758268236696860439391555317391192630832396630340268598688704263527953811454125970915300398502265740454261481203539681817756638640174598118107103853604180322462729195752937744949253603286867221847191832716435978867165364651904681695366944723274305783058851467318776923917232409039651804982250260993396204877815350772979878445016091624382881190202557461362283671463763859063071442191274843093793618699155140415525383032950086729084150523371296418691050155885763021444787711627603839358808163403800122168345762060130303959588271841109754585768925818038288518351413609151076077016717257520834536706803987912040941663156186673946188814233327164462017279368482313563332660229557153571961167992475165348042914901472158102964847868754544556941047334264046548157267403892615609713148955170017424984018642531604729435446550526536803287109754516729367230181835543682655952562850259454408254302326625973574789488124232214199661871130000578777305622204622931378113239478263735840495733825983274857474197019180517558924566594517275237694807257819514206400399146267814570138051202945582084585862958456586696730370543597112819347220357049998720547829723855232829118157651556653977924861639351519985833479040788174225127898423185937372245616901454407069899781607810896019695823764501434240664303791119884763234138549549086497767564820908149979512451242783326499269636597786837421777006380649743662023653473371253428227743667202075220716498271433037620574386210845497275408182213699751286749192347755373175812525485645327196598960458266207107079461726083270987795405738486126470417980727330073966099126445430408471453887355491113820521536632256218664838078247063131961068702038883887466836461557795403562890296957104516172621994641356698969910431805372853468965721459366688478062554046859066955572882092602483516011341209601146215785059574568612758545389857218947094730028055213494115310602269002827205255236972747934925608940012852668875541699997399855570324995106130661348194699085054569898306325027262257820264031288319757796044059357234266178517609300534943224167650377118107176022441769670351238762759674898027035843844043628517652145930073131032261868321903208045331640365271874082903044603779071170065194939472254432785054963031925122762757963944194882593358254180180224956234980013457185263222100624130204936959012683845270609295511493870815062272917615128989242423191626538019845289592205139032601720295251723217777549841190849465775727510139362964533246887673656341211017871102589001058488107359880884668839815685563274748151327790712876152217151910911887593587572156052545433730969696342215743038943122821245861225937249553350195400170499773881566273474845878466391138397615511391550116408108157259809339266898392610805087620933886245231915057322625056233103523035311154548432816636099019967890409611603025667717340370963750668202784106667081386337766366477269908977991098530568813575199952445034748398949939459435513617944202351534284581576066258294815627799802360985031895707705018806858110739104631357024458857794101393771822420326489676898190774250986435208298817685778464044245535068849030498370683303959681725500100106184454004068096347043404774165052138206193436145514791600419137365241688482909670641014352372616982368833630567794788875741011041007345705391515044779678790818495532812686041725854785726044309695590497481439198480848742548456231927900280054989766250591816828048496438432145461798671332264356796065533852344664794919662629236141800206051283288924887404518745991622848911502677670281731062054280034761182570158537923048479749295534807572934282325836882046716219334352125662251132781962326197064896254372882998160983734402378630378647141924333433143737244216593382065669223495603487570597884890235662748637003082234487878373859436650389116929935660576371953474342235384527521709542218603690071121340547172503151742462723004559451502605090510246736112202363226946506547685053103583836864062347011902002244527442062839815838010361037834806911139646224395588075846429930788138932423919906546057574170452643311321397325474042591457536771374051230220228906649172866827458630877261276466816011229627237960098008207913482112173531355260507354009976745937843529153769038284243876639142920820579719856027850827141905940835246731996071619708440710274009379871023900986580111518615794014860750699887809323982387852566264404703996085219704509835046931772800050068957789851019225370408550739886281672338033002472023798290666463392577139283075648135880752475328535315177455546929543051761806204855067022828277133039452485936029531511557722305088182056198990260790171646709957058718707332459924931137410322414367802755335398405604198414078421978627304715999545638346709777151681954672373863730716736652864924119182844412994810574422220823608577352038084239187559374062197260980096515909781748947106789589987321781767245890157355105517093931779236158991162790713591260815976561954796050315321156695630257376804609859412820492220325154202502112460010975997981463916547958205913809808907640385526657323955455241349683934348660473687128861493324384577386419716751289430327187688383181112664330823158022463777426534167755530063345702100425710490803611405254910892722662239432928703277659610338850008912884801134132316369032326398651802731559901931614571158557298038888077907748252363888599296355988465368529034646995130241813375086300709884924276219205265114839906186233467824489796098028056289813183526911793401422002635792821561802661219120497181322630568711361543335057533133743819421875827413067187231444169417315841776727080322501679563764678935182811092304938409324773150333590656731189889058000756562236553546687758137985301196314314892718534063774080455283831436814144876407660007250401868220450237449662212976083193633363080658588826091759800134401242710586488770462178680088737011803047230471384151173788323876278193170318134811574649885038187546358730114964876586633296057220805407271438146974859212192650044812568365977585111826135893277406464034043512100175191714719884879328957339722748446259747464922472264194371937393860457313253937459396498058283408995887297247111450043315772922371262567859253777773251081547736263606552446951360682145678530318324423841234300782523398023846586961873872696507385718097323903753039272331769068681816090177297343636892604271522578199301544534728220489775019465677938827320172440978501829264321544816189043953194015928059684172695796831278807701272915007756427320177890427152520410715108647977315563839973545296021066418068629718746881820022182217397829508661482956146001997907315113413180062031511463477868782495597452530564430127499118595475234086076166870023286686356148175421924352819334254106027189531976108669900845851511270617921979292606769152250485128084555738007596601376786702104962320282829971687353560566597777989471017362841730166096283566996661192564933657989045194955302730511704739919426998177701709847228738229916606539383523946227038934634999060261897656834243178880272449955766707269215252734711695136647668290017138315016275474006602016425077383181106844318778377516248234118610203336850664145284321899151328742951649682721621529596674340513539268026420158223423503146163692397172338035231591344289995527908418571750229181711276258877413361852604649441357450167983837711003688688756975707340920531366643623120051401045720990616245999240162054499662592652254961922910055258235991582726008645876267861741164469954379100293549114645212585579498548736872240796575492285861397648137073732451706305430691912509276772276691971131029595339700735663174832869729549078133852457661562215559190684227975868814490096975620179650021667604622244496393997226416408286998235617435213069345660383869811482024855650560890355939295531531282102472696071213126830950609797347433219084918317326411680265163697957214532558985377097885715309288094878215084099707625530627917751246793296764225950883890599774826311383725235185633327254791371088527137123873348917953453413011119820400124710504403947100643877503627344753248912360327645089236437531608728513894065073407958481765287462800044484094965298846986453650953806864172867940521464190598538799911819072593459111445329305268289868230059269848386327376840600490021816002932355646360870505158373383761284023850802291332282401459850633950243551025630387330442547450134545811686680970458468251014175306408122872270658583574145563986656195195451144241399582624680826167815010382327281907520559917980046940058751365772850753877010432042904908127666954132557629955097526305349086180878349385726317838676836828417144627248709023727451838432303671940903847080542618493162242598879335313461069213550992041610479618497382927774878101019103393384039196528266508264115671027345509499873360413629131425247468328706011392975129993683969527001658110457358569497950314773118675475845597067439088410282023454270160027758352247333015541063238186804667102302530776815579918953902795154939072977369239425349032858553917220235901597191456647969527275665620201539989913641009265158982139015567482855634772244961967498051819585950726330240881315568929865662252309373821708106469450790610427958521003491352829807969733165477304381761367843727536277351582589092281565547036877774252228727796166305878555873701179093162336422131426868206812603654600004234601704696306945835687288816489308431563378225693469673472261947694477980254832394469710956987327203372097234284484511156298623726929002903940161453106562552971231341917370873097278554385578710684686607544027065479844989166417332127567501273269700808069951909161500980280873262887622994748057230489356818894436974830978092354835786494077799080650328484532772902099585039309531946578426874821852376131137731546663157763821778499559616578359126115787316215398109019457233682402019955863543560672034883539987130457961139310429227872802529258028141985926225641936275582125045158451571783222318628311185466768232758981251897878453400080687081907172674642327371599814094121299623244785717423102531454828294406320324410391917952512736933889614298771332190284714877542033208614008833995429167420281606716279590212880804490929399912796493501718485109218856987900025894628520189782729000834199464971085908992623645753413941364484388979367605821536276494758442427049784260525747790823037196875407371847130828886510916568809253532074219298843077764889070147191813542949496721715362403552363218281274633559175236140223863327208605735945955505820360561206477816814516684709644083455384553734544790654152183735111844310094410135051101264951978238078479081220919014729155810238158702234080748447104506321805442952068868203168536926121070253742507960201818887188591881562078241317560933971279583636755641367490702113471484519761110176987259574270620692866497214886157390779640507628421690263013954497801790854859304591818755493536221203664597022863458925612697054240562409497980725742451453762166466356262018716733323989754380301612911260630374537311217737116860302690684514870780262363179013861986748940729688294732613999290930954483947318657238442707538446989915826546708813123952901683849943968290267407363172283335415940794692833122223828809068726889931349113723886265362424483782810180693190475690578049719585760720919321111710646048249567154701199777435169069899805878951595866601799571069812316152183323460957121265810432660416884751008918920811879575487251269540152237904811513386604205939135115008642881587402613644697637754360386488079849193767005805131661595800392370932506472939677740331629454511337477140223294196952994796259953368649033637728094049027592479675941370768020314469279076232078294809271254543606938196974589999884323996079405969253075057282418815358680334603081939719228994436027961711374148527927027839478687543998415049026108885699849349808264415077552780254240227230443536750065026610943256083412104134806675002882869895792380320870364817701345097599771698954510885734182720665000892392377855117582199799705019327185147097677599603315533350982940873031517112332101968273602294595255269005911210229086887689474815815238481988624920271463298383626107769093057121662180492563367482859377705297532370371962062455032325347089433546915211161863192597267893513749063966776116018114573387260076265247447045955965849153867636962539005454137306293434329839967373503052000462213228324239277054973558241301242337584974365467486375253681755505810465093308951282319998390544087609922123119891822103867913573683050552385358714787632462056364842829281488828876472520274998085039631974700342585878483884585391565600087037073426516091812762153591493813058689408755802994716876856580309618954471750711354656550145766298088620516059037038580404760172624004623905683024714381983765388811191966981156359254980897510335920887848979619418841406133720973040865069836908386809053861129938508747221731685196544282662927795360174483069277888081576128664109169938894678813590848709788910650945386893284055435096897395952385877733569347751700765082662916238251583772342402067715091903024485474373559376143613454183570192286238071800336713441255590974945466384605409201407863134482439595264827986296482236196566779847992435176126294240240573520792818151154256170400223960215761689909809433531132800499916474604789367002427339461653017276800904590402435210282997394636452795722394373447149566382534389950953455564005337372406519744626174305272532337959823242975557098878423005590771991514749919070952412418037149612084137978943125932093310322735869728841292737474138680451780782567397693179891527439488874099388781806282606261925542232565211962675695632076853254861903741334357734946400004712213497170835844664691436790381932080849298878898277193936161596778949595401620017331544248693375952638410713906998483430044741467763034006109994915225111007313302901112017704276088268206154612345296792004328196228345484086813719499113135048633638621292685794854732390289204452771378481827607337440552429204993104518354082859101599608312855220428557240997335160535054410966538223874030554886285328681678020483749708189118438835534228874510642154931777511809626448881497099608728259303478943054878514361909470156567319405262223105191379053317771130389714209150345091450952010771423132660755741347429885533605378220850005192811075838310785810434476456642533347239475373257167087736829511714983234359001459494876504679674751350479093192611386527801366278477341176968214063659265690869922719562092902236134463014267171051411681149998592186554667650232106950856405203128146803316431925287568278310322117479843295312952787699888437587822884483561754291106443561690826719727463389991815483535997066655836574505323721033861974118897428910332120886410004130252356581833031470796477974655905764889892740395203217895010023759711776192655487942152761271235845666821266331021137738324263603788742018207033669204052414267013656530777138166395333790679660366599174953643308780269014119685787358874877599587758695693242679505052174808162912004362392778497746379247993685426213407371574982353689804142476825335496513038432047140413608460915301195845680668129727327963623333361819559427228982399221765960678092984880248119983280444304296526406697587929113384999701656487743906380691172400592261128813676001758540827372986267626421922789792926902352684998471298134298852937447047977810650490060296682932621866851058032673593977481576375464687682710240469945562782591849773036288123825661319913337375945656808479220453691802677672623568051873448440136093689326606512754106990510435803253713819591357085778070465408334427623528952439707783754671296779825914086685109717347229469554172726883587525696254861975869297028132385904406509623466204000874636893534302701072258446767056487858821911567060236437302896780292478829678562380892667560252834259319929247250421694810499099799171152466674392599162893069747776439703124556022133706525088168167757490484414141283724530589060390905551746193688908406674673727923337140920157779867580573855959342292001947885913045947349328896824728756698999825849347550369408254815418889872854470734322659045554446189109146735451170893619634811348984712408192647864310025337233895982334720540156961939261820743647571751904002741596415269019935462966383137838889352032237795803589216386995518213651138931026142663247761092496719098156388452654896873124212871527549410639747974346400581838414458366208942660011629501125263369921571872204079328812315773258376663131905222957210628162591861558206662056908314815051152884956182035658216480421273632477037850326104741079107148912030064353368159325546420694693376865404944401377901729383737662453800869806645558241424605216074469981615866297727806627287120505801743111546229974955080456354284775498784003026808762862921155107271686744000782308365539256208151675948832325918110662848842763430979987355601686058417940572983847114327765308301473684817809829416330800292314579049245486818917327919034986765017615893530657644423583729065563030441527342321485162914649724515728567394329329115867061566644252320225396927944907840160733355939407115890096999918497689819957139583395689243685491678490400281806487517423626372447883929338641837314240479664395492197381461305348280363069214739142841511458547758477028913477416125224187807630367642662157262337501099957809883943654063956413070132436712928498985100120366024909409271500386245128827652984501226478766497498153740410736129820638732458934142736089976770144462852711203679511308548701614088626726138586150706448426656009651695546431490737491288908713752224936376178184621696926776423173643396922758251042493778720965320967669119050313293367700481191406606866201173578087823968702030849191213600209832354312074240544356528384675791220061174967931277223856814105794097382222328356424587550623902803664589230271966370135573727605273845695989050279284845790111582919432488287511058417308445427443229274954510645737772627831621958515873335040537298381021783644985426009724023908023280509800899625085592548827247530585998372787069373990551367631429585726937950726086540494769150933849665031289023110000140337284882296906412812793368362792901284663609894253093073934256819324786894137250536113207186494269780461578021855131879712868711929515933466511946895894428217975438096776160112047614894731114939454626149546306550245435867713466680475811271133234481560135378440295789881272435562334427504318183713928758804660711370281421593697914175503514533782682458487519065706018795385653199201122701168449775352478468467683852403996181177491291912661937203753422314153302759365152746265071778045714752488312100818501267927202249565584736052452382957131836398467040155749364621599534105205768602825689652187690752500853127875462995163193223744823377233338343045598440451164121446725514912549361934848069360916652064871885517754023697760548765756888180194497435664690917520726707588592166161942742956969330504457815678161761749688690088726200910521392051028895335428967320949701730666365035368469310434202763303431116709175136944469165798994516201417741642855582827525696973193358996435226358017967571149927888265812938271276286298927707390554156668407064716831860859838630575744757145079882438159505271500820184455035378930648268175874940328657786140530542079716830385129442324910343017394750635410058600635486013566257026476415042315050256919737630899731318496660317061455209284529856758994828907374037436267902492889573400847576283649296937782692551039504297121419184277641962191197869898610328583548172000288941427823299950124393227316188050094851162429208914445178309635294092790021048636309111179504347715919278014081400696469118833820301175747791154563236776358857573010392450812623959301997095699575263193049345583273943449237853577004015726100646359563114857462177478416025404129127682661270591995770709644375645426003120103693308866574214919924935855089829742834724142146532401058130098999815519234713143948782306189528634383611567623020526411302969945729098123386814426451476974912263296177017856962549334965539419248414838913742621151546785806073995218152379148719650413280976986145818346714200156932382930823978536116765980686751560869561392664188491994603556656449707929610392554549706682148315757108187161796826279125594410753728818637311914233043457369771027484099480995603656213892992104462361607092188612730705955579902914401297667546210046656771217290842296778421221369461676605977743439241005431307066037906946639751829430646768434072798323675221729679720133281522013736430909081242385671445661826488542176857591708678316629212155118642620802519972402831275924562845660809957999820545028495981293767258837132839293185155612012956118506415833004588129250409478057037951427287895340007264294604989399990296835887169056405124948059850287110008038889865895768430430137406652335401574721455977961761923483966423113887734683417670319712945142908230439063972246780655674531053745234740959565534744152491436590367576387554552286681259475910164287170376548524802244477925139495432784065900562702970857353478995584958044987219480938926323686660035488653682418032087829096062691339955759280305870750655594306893215600223219474370129100642470644486915691016904186288756564925183962603296306447013010640127558888824764811737819661801350840078483788880427293813835773955180065582345488952497151086049491138935773824353437970227125618318363633879042861580053033923138568688112967138300114119510541737775882331855447222009189234326718591970272178993791590053976048432964778350805759886120439343416948107828337274534085726815254151389241620034473119930631337764061801365633303862888646248788014561325286709185787950679253052689852232841096773711965915713546803256608977622295549653431906252770240360480936863245732843560929174486611755313538264214280096907481494858939328806413167529852868928469626580328505827266172970885535217264547295378681632153520714856105421896002754720187273565677144283152019642966287147616578391771970221143578726820413415980227745665337951571641796756024305429424775077949970130236296709839342437673683570230120657649946182607645795192219590725409878798590762763770937638994127219970713577631175616075419206932167275765027212970932501643038192778757512882675525951670362510006037732883063316018790685301527821558036159803538829455899991176285440469062965308425985474840187101610372762211667065616671852609806720789742002533700452987562624976801203470484278014404812573822783761554160243704715760120712175922184660614954041779956272453268832430882758650850299891976289370368874003553483929489563817383117763270075412148721001501723553426809760295189410013229058842776444847913283592891348611592215464322789226031512076664917027101600458402892497468874350255119745580931513206452427170682723180654813346570573510881278628624053102183552277378696804076039624400776263606113846808233973971349775657833198445879568817491127604848204955419171924279088858473344104700373497630340649669225568318901506871216274048714147090846771985088873929973935876011948316171318911243427333684625045705300424333318830204802442361769928117863798288676015154767031154378439930070106670431375284597034689744393171306731138912788862536484460190438321593377829400147782803275137838993179817384634905134638655525129122587252852922978867232470868100372146732343320928176571732618743175895977322155343430082858998488223781214265232262545840642953289882707258404829995240166134847139137761726876888020164198292090997746799667766624142620601323186131168188047066433533562051675853295928322442201893194144131780863861299294713720438310020775390342472442536441047739226378276932020558366590737989694968392955225629971542584653521645508226214636768064964767934270367103618920460496690930285295629065963604035065247740547906170778564235267742575751692189252646110212321211565269485997676831183435579547077460633747793483866397517357341057503944780042237583846814002324098753652208416504687745109913270865998738798046711424084842975578414753704665281104653440023401968242139380986419586752588269246126426837087440593436566175959834006780686206079867152169261467988650269076624869303295431395390625107827212764098999179250521331763830618143711367147539602378949785584537278184070642055070254678945877575637483387478766068994617927355166356641437280165460340242552198142902824121473802458946305550035701271683594327790075031827403434002390355993425079823676115039913961241693538288108046035539947410403778017034928006478569441801521490083238904810257481136647630870843488477486785417073933349862230455676756101377154371041131679945760288249038391104604007379186146168882353429324259468918252689766912207184462675873805108564059523055514440532882166407652147235415057162108149168196092501582902376461347848855576681427198746291056476200287729648903094459843293725849965430748170071120532367076331968861334367564925390232145154351661952346147882403096230134186380148534493483215976748766286660424129589705664005137750342099486695697272670251585589379365023405224894979530661930076989451715942262016924724958271008919703484362777868447430356379969020491491267865688981563546872553827541949344522178792989614420841242868020434605001613717987540152826557929485944355514013385061829762319371749944007626501085519283159138274700272496055756532636217442284748391812951227860232533167257644449280974226157123162109981736655549219866455360836638529665414366726681204171631815092444062412841721521867112599777358223217881254040823183196050319775419235476393136979041186295063942525284039347230373322839725458319588370128182294870490726766883805912726963260350619854165093455531506749177454375320759691957843491060244764388279273441297690428967168166477623442957558817571493313809496296589897981430265234305115920128988992419907677720205834412168924874057468146966132939737129513601277135871514622040106249819260891437132069672505031512974587813921627689497023494198081931037355666846096187001687423529180644450684208586754390190442095352476043761760031628297606365799418722189410526674059198944583736420373976108799493695563976926715543306303756322702888796087100700494982182641979539593976315518844374609977981367523296313775901266352474727885018150823133107652443610197673391497562149407510738895616835121978134148211244449362101974540688392265406832755997413346504820856414905853955225764079312667966382392218108102149754628567507014450974775530194816653379856523941977492316243910194306107172356181110619217088043026048114506787351282127585203223070741219126208838292595637047828109220840318666838351105988670768032534514880073649508233349730405312310767636006518798515066227276885105104565785382746059886535072730298841081802213947484211912988962800513548593059832507833474301265964561572844929538354458491318181234354664827708335533606126534048468501633010228425450640425251928523973377981021175270524158900822507930800518349754179818790662504610716121000362669102049151811347195750269450623605027718211290671079226180470044228293862273769826461723971445708403308535395701716586330638893240821563813396436657415526265034933312745429080132062091061718708817990220659968104483613271040419297357764564160571589361858993286161223238401914993290123074422390166673099610015323478311691576263003217598334349680108065678283193868045374407075796271428466287540692041893150124016201475548228526235962572593262494760282185700520692933352589437368242374922334693469160004554548893756881363297042447135812762354227475711805408637208861178143531388597405369769574170632563071748751562422448479684575920240417118095121682414484722352937666547394862358047798681406070217520046703326483859166594615658169112255366466470693749579963649900972205587175653447554581835404261131618546957293714359056150960187107803724178074292064732193380228359483663199756127158535391094917657798880780093722593352134883889880732743483891362453531061114404712501813114442253669753749960407003376270518029270375652442657968916026510804204985259976398820249994797828134006620498275741478272657415669066173359279706088490960115312941750974972981839493190319730580648912516583068946092295374113482164620018453092353094102861287376758376991321483720083482391325210740021234888539668746854081030322507622454729263254561412925972193158739682174451212108953015110549063043880793430360363429874070057215144510106931053827672885035865532820153497130595140730341112056254994668713044389551714264970272269317791849184461040554096090458282979834036746869204334043176990492883281386087489049226768237044903490061522024979446715049796903144696476419263906298175545459133696115583097255721081361438743138700700018338350588861886656774522041544288677553259957589012084899595980040562309711510080601551367244268301060471512545737319694225225703641837680940607233335087515702309606019707180004341909018879179037560208048335381023719938854085686510458299727421297769015335732266982109048459475584646451988785447138645740897480029879060536155613346454782019874025366598654475928225655325803872435965269729590091654123331450300077374014094952501782379555084774282223976128992300767833695700679869402928819046428633156091832786037706692968859487392141905974444532412679623597269162073448939455066541933550150496966077356881096467764080573067430990952861034753110452846513270551958699026484359227239155844675961105959047467095522078460472011996498174684109016669177929620699273583551217926125155420566801805362987475926389645205068676031658866729101461211167569564014886928386711229172621942150519984004025181385787927045612349676542041423554003566490160667492862695680110605501141411430029677634926818175365142718957678481773762063590749577321982938998099867252275718137170234272791675082836414093975746569099843363839739646242699029398290778153063170420331646861418566784822822470279339012919637264511021803919238630285070938385459463776511821135086024560004483095823638899982074255712932953116979982479857504228307598290164686604552731773811344216370813494817652715166106384155598196468159996803386763326198062232501734272260240961333047440168466551636762901323193618679057878224820669653357796772181429233795442576206794997777131547531643793006992394247882171226890481536871497433592066574688312088863670443919569713718786480466854228158734022357610330857628046746687720359463004713008165873273610391231701719733279886589915434887343154057275405402595510879552766606852627172285909987808357214106339229447558171089036480513140431982090176906644401970548656561172718030229496744577084695095911473404213532988353293252739215551605675000314890956034051200644552235650238038395129523744886313362747906911878161851691947594618888451662741773375427514682070319433963922712311389744787365338233278015102799723895423473326658092094971647277609435465933146282708625713865234907136884962360464096435279162598464878366432433637833236753731538386894030244766296793570935190925911792964460145187725515144665251258551703130859240999540968487184578633874221884738089538227544715540093317338888779292885348286057940812331450769118786336142385843235678789939841390353465347948189229923541257234447119804159005321193852302245475927039627241100462091725455536802397824351847067357256659721369869143177160314768961776432895710927257005379895337799981646866546012641806486547706292394588772024344608532595973477977835804906594156643423923934945733301809100125089010491309896511824569137144528365760388323722039015587652099456651659742676926235369862958751292002544752500140409037186132362022561048193407760202896897242422443819247270454586595457641641519968326028469289145652348952017470334560642947956907410552591728431570554061033580682342995917870896047263817710129236461059833315742043734444469457692011380024193340375408210279119829602621814146732649483097293845242520591507884291643336467756038521739449218841607786160842113091608321003528121623522149699738741643452055710109802820857005172841906393845495013210959160657727462664389383731185863005948547958918138120757191687396706058307311668973311339358443119093788105083179188798636073895370723724923794985891222557184868678684206359936188635985841837157958040338568641264129766562239163408170722223967076522437157335887261342205504811845981217933251132142626462740666703426866672181089056674810274624999978635828763070792751913325393545165906884916003549479532017473376461763465968073823791364821075872542065062431145987244485833555919816060965244883353616010556854097830380209808375585466075845139087342045147785080150426139216181669879074771461704807621332372481855002222363659869385458975928056890428625331101977317081988183221965128772939738892048242632634435294534299644981100357159386028835447349138806061421855023071068517983515698744670702643837472776990137779006811373863016264298526876993905320172664422363596364900349799906773498524619992885514360455231450982292924183341302509303452135102871964895953952295185849253037151246523671849263382616395196182320393913896490083921258078879901861940532235961010348355419180426305237109900654966935523396095324230970415989678780332729544085932857549035495623931665444278468536815731705608828594358905029319202021918715553648711651758601211714350401617961177050674174898963625435620659892193872669869653354682171377897773392110988609664394307768936635425279663432059612552872987957613812618286114930870719097978543921318407193677669812810645523902717767753140893526332504082896667383459235075481287422992110629450226924034860349034691147783705509194750108667826117472598562480553869986267201282744594861051420969290806613731946419445901210936586603032508445375399226525362525822097185059415316514431305027612249243269230514171429259727160669110276360759513421446148619255271331994630748765626972222512574578447692745427671059035716841020500829578491355772231125513246166828482531521520797949967600703919465518996878684977188486736106137730045793985702271483530408951590788286669315691088510061399640305124549289571071017211744105123134486004158547213764856597532345467306795700613271529522528388036885809354178094697412182451187822117415297384438410173700461501342418431732853983180142042287849607926259437079026344656439352292998128349847903921143836372104625341094253517407185276177070133246027329285131435067553850202306726554249312222381309004507201712975075281285986280560939394871144752269289429184625724589008822151326203081383378917728487786224580985379718988664726999824223334996627575296387614554162811051294342106437210370567143375076962334974062209389873096663944947463477939820840983001138943997221658515763384144731479459145335058832733049058333672569588657033828014894121678402267915919020480645524482922352614273181655617195359919770689778522769785598821916650052494644552728631131936281559518916419767066652048527508772023975014074399451196272307558186263239861417106554440272760282129630956188239852013331367508594854500112412291413025801149398633502248685785686540998095501000014282610331076474406380321844065223197666602468100974366389653977379358104226055642318187321811287394800604506232617595614961886231604540714968203632245006798209062660842119848111808565449602877316790547720287874534748702491316803665559897601757867589778850643817846244598319854200051940821589266772285065263346590595304048645015647909289958199728156331669367182410184946290247613207333295460445799363950792124301996671008538035077770677630551603896643850077393058341525368145926898273737414554362770709636891231968368930951290361206660132563572153963218151143365089707020310329669785962418379301961691580914721484352518247178972059164224988824964530887844189199599793331597500232216415439403045608356623445314349878825811669626561287727447017131939407951010365725288591048976059835196668811977469798856722488413096326800934682500793348637244355567868715206674764862003639786200084744978435449348693922316012176331383180495310687142779356660336992371375226757484041563843444191259126478389005880750536132248458743471229898733806807180488357664498876814557311332998316690228102149120480957535830561731082108414349408997384899146372220551592307532802328068415373970903966854095500489534205115787914245443989830139695952545057786790457022478166529932068185232088995656208299118287102111080998322337858021715628234388155707047265681652072875973745580228323848133708471707208537169291722306628582950779417424083559144416363714396038415955955083203909536678842387444662030239612459884645537549350667349615638085967132441643489759530414501354632037121724583103675050853601168311711142472482431762052777438196862175726080528276475579185895272759619503948980676108557107067344863542704942501483382847917715993429745969478496387406241159572516009652229230492358938222344201434359070097614901924665267828994132816949508226682271370960479132948276206889436262397436095675409740336975776392951593387573294225686894151282029744790445100997772097002185612349259769173417357799543604832103833423734051480507086311217420872818205496834422115734403757023826240000505853483219032040469052452233344961905435646152030293967378757444561690950175161283227512978093585919108394360364748673660436165662822093086341840909163842504812628412130741195043898794157188622208555445101217757272343276185739504364951680688409413411776871245360318056832031279272634390911707800556774930128929906362863557269096550186957950170669379179883965094518411165084020713889970998749496832446400546614033503989805696456381700213417685365608435344870894301741601642300969979901297873885130734560877167088348412448122479167264219023228061748290011913873295499475206439967110112571446026975383382901639551917524625495408965217176103346462754825931784186123352115326597066224257786217866704190293097634891410326247671235501973568478303001222560254597601180351927948610982250117171727585404398108072537919709446367703062536105952408276523462794653463251471273871875200115453038346561693708727341192759491744568950173758146170566691746072747148260625269311662521152127299914102577075186358695338702344719509679259741084449521761838413406212458432494881024314900272815267479196686769271247310005543600901096614387400550377353564287429508990368573762492133794192704441391407412502622968835952618692413240484714784754792774628967579520141923723113581061404352812489320231788942495192034751526168483494424968533263418811267936438758373427193928397044239197692441485978570279758530466425832709202578463267906694644638223458998704474771666711037553474519434205643219920489867435983003769827656298901982619169743353809169550438923008438140333096401634627890991689305192577335720237701219972659906581793941852806407679541897409367654112361392434197599539884845673440458613897400751121795582695023734729296909669481692751509560856493363321470037432552776846867203973965709883033467254959024976172241728097468470627959221967162898369975416579254145825430056506502487622632336422087336289582880033741313927438039607120496029615148214893577437345349843243055992350779748105792602212021244331024691725195620384387476665836594025835159256319505536500800623980575653744202057503865899231972298129185250891456934734576991266122309404155503186466822950624838648516186785252225198309532479407119182880732496076771051257677418256333018331068066907771894133681730018402465318889527411408542642632417686632216627199990799840083941372745975872846332860277117232688985224371844878682304830989677584361124755765052421609464359940573423272227913564596633134093189615643870362466463295621062041071326276420087002041275158976282830831040268650285574923836785057057172753045066462198416011520661465666801687272802181524403592125128456509625943819648134257950152710152120120264258346734791337088882094030421284845695305231556757690249273986627931913883793517538278004981137605085371952002079318546587728771964781730999051500687846063366508265477696693496836064334572012416456535398164460954371885727858683273256472262377188537113038735176820963004831329915597075631624508773020085744431672270221223578236823111514991777741027047674762455885544927605527880518174353646508451075727190411915734988660617198236197489505901790226500157637147455188422493860948213608025796859108017221439821802754965426103987749188883619987309301796931161184014916870265433268334129928500484844013868778407722347416943863730943368939552302120376162175147713004393711003880875187071068313911468896691573576472739331389507070116012936943865783044354678882612300214328598657138700652255937659550146785760755727601328862373955754969440824168584469198674316170641918827553100006428991375521941325469484653019069494176060737799211041817348468363539079234446077084797161998826453931822965713963546195834075651295015853316817969174666583531740382715357950896021217919840334630064999646331048719970983861800092053456120127707201546766546485280472378731343336410944072391581687852577140518817071849898298908213334719121080115494248284037616181820746806966351936913945761291957654724486802434865082217387928406008157306477364648128457667364026916450566327341601492392940802822048190485081998357898231799613074540236750499099806711342451258678107542531194867436324435111196361702492752618687987776200317805514780275836445611215892410413785500100654935762540245105057731448342848682845670409519158995815850901292785952020427082968121583142887837962522003109988203934605720383806939641843260963512610554809275812395416976816366651601731500123235873328331285325190379353432454887757634349996633598596612475831830164712088669428078057446582886333462778553032832484272804759968623180096350051553125231111398121593081184146642905545119410940769472545560229690672461476040990339591910796477778095857987933536457185569790494554595328601796776202410175810636741342796618348636372023351627525010156152278045632703487022870584158535726738212119634524434699022902251912529598726682990460716027619367699161610689559230637036089066877431441603362952378182647456892302235751949661363791199231881998266602509800725033011124107018039317611870689231992721125401234873987319432674047530844215779784806505703821383261111305747527702142387049113999007700291655101011133984942005473454441605889601477339367360778730777040784786665295925767789286382821266682247635630549179614089271952116268856385400499391505641725667662060297294526792760592968735070761866659811518348199376193977785882766570138895069240876207920458108029232385969338054689689978925519627102038580466654383238839341494607080341458247911326748249149403951345379680390308406045524669665439225380892472764442780805055935765616209939485522927447557692782251889024001948342160772456232320650940115237728491944160457812734031156580519378230135971012127120666867953770000205385717530238405155748639220047818231871835039910279759934517967896397758682150294849124776979788492571486259149191682844979364372597868074416935192777327347110191660243417160088731294532553319473063425252671412648615679868599163169097022847990882572443965330926102138588583036520832311833430404597088472604579004742439215399919741767366212720201584832234711146976924028525043975178123295367189101260805876699657629575676239706986254142398127032993604192614693562175708495672898896963765951583823606155660019501021065368061392246419339004690725637966628088833896108523915488475715260907245306619664016525343489338198458248618139062760448356994943410357012468160443934393136935191500491310354615355705661136530521167017708096974063717096777766105411166259779254159777856851505990851200880879850542349006601224149970854303676524849699721134581984690925750503174478532842810379886497844079126694122504094237022014019321299341385113069379841312103667247892639966932422541733336298270798819230405629019249858672379733010260175090229345252115584834846293933263854591144550369959810924036977608659708934998302526994945972789048600878161229624402461556465315059187338106327600101350430700086644060789362662146333475459324519844599537135239943361990758565329700135968127143695230548630290488057031169992244525688095097360470588390422807762742686250890047558233262035502038555407091590798982958679019791412057633350663937562492781568864969908454103609556988478603630085326680051788647380275069631544525974532222647760477586949242176232728014056404044929107838804912963903294522809136519222631186767177564832191149262087003066791760778190735430640905329275202560504035350793039080250948836259746609873390534476355956504931443292828601803877783251011909385940130647517312003502342314811734247235050418705329702965256254356682514568027570107580773613525998432521334822358495538167752262378022462117582798002698502050190247526149898773361016128178781111312266182223590508801882558741344342238427104065349777654440870784545562680137867231277501894872635186318055660354071561136458766884576351779894724057017959151970272849794239305523844460419960796228683347440738135982322388790579970713726599753085526411563839324407746896063944270409505315416342321490676813811889921425694083985914234258845050205465329619908485754429152480481576886713452314621928636267096708901420446675986213060329596578961419342926383957911173279729734494187428537796181594882427706963063389257240439326021953151383984729939398733471101388801232576050552529622698355153492702675340858111969016882045235182018140583249334567803151953881818531089399431174519985860071487652154991061729885419688053939178825485351930407135410443985577092361618415404398599720145002399212575365830620534095642343375922912063933749599783724058991443375870234992620318983216004917830821768970225784689127724753969461514111631929528053868928627175818511748707210379571354925536341907443122054698676004139588606594307940914309624164018667293233316012941594255483052608492698973399190370106205296363919681989376943050547356854476571132740043278373293349670972332545648653428393878560088578506852238548631673175197551690158972031190624420025090901233135292927873634196398118299059839269538016327859637367381435150012669250550300697652558965215978667803963691849932275191798392571991318646112404455764927335791323588099847884575570464495146640750071343804941528409964465328906920020170582494450701381164465535873975175803010162188694701710577008587191433691109782234672393950529767205748054445585942508176508980955639935157156680334777918597639552484487788096667208631547340434131945895698567508506765869721203682336455381891942105319682715403809928467329876200546964198450921102304131544837868142830120952468588714192531701225606585789204503551679158764882280981558220423369621484221992369945889096970692403882736053756580225066617060328968465040109434208474369216462480077363171486231229070668210107090585190626172481827502079061220884780283918619359708792960825642563978245015983589274960832624251138911489379404127360040936944007528072435423025431352278036652486535700477353246744673686268583077422127665480263330255515112574929626747975413406537988904375342321765094453139940555143156461519320212857440714245322700584061204352444233243961590325487770739030427852149018249916222411760817828949327048356605748004089885784040844319110500798253168085392265573608291253874574330234350673031087687591806933783566582218569991637721883806095564369797056150818879912280888678362755483552709053832608170956808915590933389534796954961501950225977217140476512440618640223165896874804583979317910550064109672415942815782736088419198255952037492496985084730986771978651469706334338446423432509243854957639796161131252512036082056722596216944210116563077839759657464391310310481390426701081947653660107242211930885243903658345485431619365762712754705975097771332045395560052545356618666231850711857557384974521069468259324530522755205503644777809553774581065788615376530643462765224702778159767723468879712841537389900902046531602276447270685519146923916058061647077372631647070969227570657883002455623291298672948604939086607163666031924352846653938513178000758368088970709590135834767814984130216312344915965901143580562509782225471979637546189343342639516530580648877300603026648728731126370392372366994654478405145460265550768061256070677179698899660845241462001635201237881876080344161225255650877460198705503547494364590586988263435455888247449774094311882637104083891565742434295044661659817102595208815173806672628815661699740673578638183619847998287905579311216596906243409956389969736777242847323278633613746743756082512032580844232716733854099420462688237154010855429560026235579643335636426882085196924742405094678271428671507721909850319681398178689192974791141099530601486415252253656323926983479914307147351241172374196727191270846151737699772346577623602994576326827757459063378686224624441520063474097474487579693521459962712250595547395270919005469893745591967298388487569967251987377118240464784897641231481071744065014133048243040787547090052487570502479326006012527694581621170356793573218572299627894748592758876287729231603740549434572557659700056216944657938959259054722453224497905598615937810581082605359185385847403059016741413311663760765902872648574266788569434248298088187406604853754840936328590345068112035376021660895805040856573503922981954973746246781326178231801153352926580964847069740735706385305950596548494430840634952346683368105031290496867497757520591648706714316362007328142895701659562575422053640353634913471616102930221127699303028304761350780322602508080212199017687043659126883333245435839702421772480969915204649566172051007516280873815842996810800372489955746734582783792504573641119133665702264365109182321341442251824129845106611618383339524359079255844691671311513794729266311199706494819280210353796771512528593561249788599889922974444987655878424614897086180401599200354227693669429914256564806004027257605725002918644204928141227422322162375488239880783363390627746903568390122500829904148425921914594298398859982477681784764986078798704221007214427941265299204220301795154688664033680911822150005646854392595136817085550071758423251436017441682486818860543807090971818878430321343817150315895930775542727119908832296038136136910119164387240288980848275907273928254962941529500409783192751032455194614904255045986284235624534914235384404076764003852850538077706258033817059655140666678601790553727809873911097739274810517505637185054504542804812369129992488162730611099831641693507470126988929991011777671532201362406216324685554239026998706452564748060527812647660726851245060182969437721262992901326017847547234233924021469157723394859674244926943372454636753803159953629582264300989929115509041500568159492670591377826076627480189524525386581912569602663964517933866296858650472004625684218024825082906894475775436845319453896156352426732788410525856037707578664235379647247299403631567461640770986040820525950195142368271358124980922043083740040077243597795193851947314263444695964156563682969128301755088468728657427507937535566017552121371489544265368189042935313321927040266317308216519146409334268867563031390632069398392539884758264779772943120751300486227143432765925185141740318613828759775054403608077948925776177808924074222374502670494115222622325707666657681803152642113013090637274748332796548338504590517136295634860389968828733061171616941516815960308320006738062668979304312263961489477168083528500475664551794968248697400547417847388999941713947280751156844524212486470397995328541187539543437615315866665035517586936726436505157004560564393905040036717025782946078601699894817736405787378614738774201885376231129448807193369845962535954820094171190144727049924920564199977991074329462789513080061096075673906115602688210100093526307353734271995259520412900950023040294036267916108516649527172901155749477210504250968952014345144120833639425203309920680603437583993406711137799289426813821769325566521102185522928801111825924491810880340936063164193261563881781920590797009409966491590426188750943540758600954813979873439410784379420446509751832687610291074973258682431744536614410657328836289778864555359774094049434230590459662305504945782125151661826170883588868752321138991914566730813571254703256135157960127107592723867748946482601249368428612637164193186305487726900413775143253111173344237148664287982560581825841085518966426877119153075342040134818868947926662020397514664100234874585469373701883057391174758897151413997739460720789304748674677757437488786445360977176200686661297349700492502901563904314707021578778998789958710244513350234111674921244061819189645161136298751448916372684794828852149075927403603112367158737215016012466866451348415941363520882650558055121215275005069507889234943577250327244366864352907627301127300882273835075364167800737596140194214686980360450100128676738195373167334574585591760442194765849194274166551612647205436749801171838363793364598981264513559597021687393467553069864961859629383402952884380731364571505502470820194253884541006528640637851079775714924592501424927072298040608499931778075228401033534298452530763392106627115920057243537268824500444261172232816857754299562212035733440227492232027899135600290653855631332054946492876019264285740763220631825892450806736080921575803339109871280721124265422963268634729704427173272522526036156016112792412333335747514028519180973449345882550749254634089079563111731571371786242049572370431789138239579294267536653456527170821164052742335266412228343916949433894204116463585445922455917478753329170952433778119077306599761186092180294389664547847685725914149668306266672663641043012061852251701666707136476244970996536810500170173134012754685042904749343681484106179722397048608021441287149558633282281657423057766909220325827690656984500379389142344985137318163462627783232744310863627073452825161091759005407337534347450557921116992917531382983219752136129769499705923416565334403150573886443342232122417462049313246394072754347289566933817639414854567104378058664076920470921785149719002367204533756359693137173350641854401656644408848596200182695570475890263101410881029809460434049154658674802751944080119395949320658613117236430230080794037744870897596765184819047902956609802751676610501100506523869570561046699169420972039039179316718699378420487566298484495171946719377470831782222163563827851604863110693321228585016009995718217210294071269669499431314370366049565171918260698309086911056329015388065216770222563985602752340567019952773562303546723065493516144159038554878361767990258625401765447543258626860443747480086005506121567001196703253319046215368911799523990961885406061209497437755643261119367813438110900048777140899185741025310471949979428456723062034195615511556680539803531213088952074850065459066457970042137467609354470530555393913075598418420695649957692097065194499327303994842499501889927165158765797458200266335609282747122062507742019547632711958600423108710848983342802063685189081601001743536459342156970196585303532184462404788685137823494030553520630245610784664482406856512177917885043100900612923426162366720873858896266539567716079149491913059987536097666529722926288255986809891977282129787653461140201946988738662154465196480589740179063151577714471286267144075642799097166181671354416169534751599650067669401512545858497991821604903680086432592038568788686216389133360820711261816496566014236206961378808252799776946110326952768850705151717156398774899177497692724173452184228568081573383490981803827688855791034128809284080631413989434294128280692619376353647690452865560033550955769288564043768085636925887660650444540023097000801994967754633726666407613748076788528386100020766937437347396480452462478767349889469831197687022911857116993341156122230482189612387169545607656372296041071599679789172175181497518247112565280144067694955386606989608430975216957094341511687321683945182704005221442466364843803643074109606079871385435296661774005061410789899468212274261826936958187988381553401111326902785060401196958649281778627813375764000435418269836946993331704985061261033365208441940543006302904400013142755407927035495411167959494486612652103256355692699243249418223729175772182750771964666457900160663568003942320530406552963169348616156708979263900541714789429944892254761152541535658950474973723989509540135771545962443546648461196005134096602948033401485396827528263136579744582168086757881607991332307348332629139692527989210904799524544920087823543214294515106283801786181574903906023507528516396723289746839632138038638146913327023356890180968715313872377515927285837082940967121875086159449312242185982540372971597894401831521342458116198458661739863454326629642826968600098242402804129102572165585029734888852404808513622613799345908926191413423255470338065548766222881920387238901296245153656714280238909480356485779811008758907165422927548124269158254267225674024667119463534111694424005384762885674449390091874470094847265240944844886758980665015174070299641118645603738929956311581571510171986110500877556030980494011622023293955554232596697946430158484529899214882122086767329209020861913073937228829407566099258988879903529299311356978566491405832256405745034463577854016394108887939901740000937135726982118420419297365750760212296944900507260253872490168512464102682744994043376891223991794736157377047623140402036292080885540768405618266861114221385134042044964307858159824949137833069162678314487672567144127235853840243270503531588743972994004372767167587199430551672950210034467888481698586198129679857875186142356975501343279195043936257084352642072975360306335590911014198965637210035346763844658818622421081994381794074586217445499003188662091548662412627357330665432314319849818875784120590421908333534589899581694900900798012987642829858546445500891672089981458464204743295955958530500979342341782158077747238121263135910460444764074719979754244720004125644533907532364252773816940710674410518679230790263079726435782514563577509576345362072653339570188537474787029625732228267922652042081184823129803982075775717002732231510924349869697260256560039461513894228421997682305987096493207588400830136812022454721538844657036699891895150891396004964361076263432654131612137323101164794011568286018206968478869803493762048644044782725181554203258832516572492311073887158924168573987715751539418728115396832741711574672781524632915872878089569891618497145810675655810136682723608418888848446001992092362588984408770127630254211860874737532310081629691532801501000755505422478303358219660213146406941179556826960459631931636423874075271318958994402358952460549875157606110295167683080238473277494533494346765264777123502509276101400805501410736426119532286459350743524354005373742275752855507115786599977757328065375140441355395946726268158498214471970763455162216132967256560064832959521732736962081543907173455339961898562963786934287670531524393937335357249270802607840957546869999167129499009027540672608087793379157515216533235857163741450740982982945948157850258849600306739859532741716949339989289458755566189082990531673286010364656360978686717325596434022559357209961875885193358198097337796126304024612718558113393495873590550849508639157253636277194968273856107882091700551223117177690126203359011912673574095080848931975028296153721647719436108313772853713182936217243769947013883062272249493982614349944849797318306300693349835353054849656925518338751386460685134658964879651355617666667199210203848877457348460625702432872995212163752420705280259684376508936309704606590167540416823066556179624960693113602265726276778186820735428822069394439968364795824417069082543036695894991181537031350931509937822411106839950779906893320707389261701282276541597673783308132855319154252165303749931132337402133557178128549587252851896068854429685246027501713751968929702233655190516655191689764824064881524030454270271127771270491840902534513560355493856350525738475396980163933748244784522884832993253156937947516602586622767075047415627736522791711268298565998166220702121839909762270720886766319552326775112604521364724897619158652815551202562810078439006507478413035522606925219857596013044050530290468529670007609079955329900667100879664116399538307184821151225486889577470242250741720970430878769572694444197786604632558544303945127390422895849135632636893671906785244777318171084921162446669709968246222983347352288666574489302830982301686091683942219130791768391822405184362926318187458021809018410056089149700131247627574966794463284936062812674294599739915859641693537190642011688256770729528732949959785495380300839890080930841169630847179697708640573703503652108053202675318350204562365914646287501743788157460805728455389209936306852223583222565360374336221107203044031847294684873648407032976888222034851673940812178619570811509229709984025675065135779537558163337235667531545415266203512428607242957078298895881440738520007964084218907059034523374224226833392712699579995608847250593580290376881935001152031152885961942172914939823359716989170328243688355020331199127645473100674393126607899032806203485484129950455270164326462968595685539405476076601687830460306165458991687712074954910658477340022160321398395867084459698686918192174132590022959320271928848982938745579225718527900352374343180166576222055980491049143552081527235223501320271766228814147442213079832004664339929224715386502544651194545571030037688464048770147450194919214694418770921935838183881287416507461837207397728463301425238885705800357632439193871287361025228929463581695563539647494997764490217914919931571600592281834921117561434489254602152015963785691219932863028319223311908579099420653447164805803074383603572695901080395024780143226786637509320505501688783282137276473431225249655746478918956056093990216087670714699484433418788547096543163117042157198191421758118957553778596969584170712014126441668266777890968650692361869420653960741302311160623469254275973680957410436822580311199737901065453605493257046611426471523595882809829434071115197304913398050639523806022618698366656770907608430344803626608356844402608920809709429074301053734306890912310868216022011653917099556468735879967591735980817924809352284211775883075374199058874048527732696782630593325121500430888562083233533404389198854724344827854858678893072782686232648230355357074774462962128918413872348312284088560379576134307341503042539202399391948153310219217374468167956313009785990878190976317315885702421512325595315515328696600248846689977381103947402600587454280018488689598109838043494716025389941960375133900989172702822866989194030396732437032869722546729940063872999150469412959048614222736787724835273081655742385952231968581059217724148252035792774833396229407594343406151124373502361881040875359078801203136540759784819960517348815584889740576125974240128984001339341017913902560684135005165770613806404724249260345634777351625397182218620460697383966528855280333639777816050426167915505651706832918404129003987053218252356419094873595928067173905608495983767782183624856291297863487863808414039211404602025932293989845699275557230429529851252904747432662455478924158970334431686208186627716280199143311792247357749615041892303664473582628485147418760331907589676459047191330108716786464188842646798890752848721067401278656265219407885399143323663281245888096148823820149690010679356882411571531619225720502933465998301504663171869710882071087720932408190954721469896365730132412595621383738733526628493590512283975022199063151080420894457596320427652435787342409799167630151475004704947791260193695121930933577133123136921087460152317182570179432053227764056700211144025142265020474348233847156944344146486777124452031892742550529835087960514054545478962776126558088156964779239135827950483493917110317686714684899085569250637558252876665672150361114713730537393427990535647227435153781883531098486109041891970372543015488553086044631011184181518624791653711089804222189204470054426331983707026010066133388976014228420593689148919466766424959216911934491569631290876353220251605385315941315526903052000888063613914681418361867182874127342945762807790491313696195672285984888849363492505627563626070804922995506665488257181624316651916270919042346722098799298783920946834560544123541336396049680586053759874096555962007992038571775112421700067106792093589904445766085122477945767402528325502920096961538892026713816500544131661434632414619213391680478046124385636813780096038805344800945239023698772136837956204860964883993435767928897680951534120129323366090839815821967818292938193759587670839915641124165136914415084991377492657809914004405991125608312346310859147361574702122948790767316410715522877199918231290662422406826790740979436560185854417751239176010423145765255967857601337520348106902888026488400605858655709804230042362739155930474662636962724695230912597747410912335339409742056888125909565394601642706661977506834246346278009335622559701377081572289675433868425698644660831301694052818265748424650224758324208541701918241158617409137329901626699285246010080646680728960168796603620955048006327099484663942533804347061098800813355847191366981400985687680966372479038594175231851178121011352942245806512968165903785401984686735821464916861226624781896518937754504378884402555019421029262090158158865778988990215401061681536776061970940614084651562142763555340265320480337198748244705261953634338601323615687553023690356406028201951606787161896148830805537916739434887443211781914418658379419576801383146107034145479172170217663975106860527328517039583630380457508888739371297881072807130494214705813832259786264494528028978409175718542793989975563573315025188365090009475315082079755874256048463898968238386784860768580339276209710241240484323504213513462079749851135794961933009759554765439039129011534251377208341351415253001015692968709600991997232286568404525336289518047630920660168421389565018741270953449429531937997578639416568065388725513699109266576990792734092399430669273685205170121292717973383487248106045712987770543129903395519526301081466039038455146506127080065647362536609781271077699280757403223791538031124260315762694815846948805936652026771474119063140589249210478223101327858403741638373485337729700222440957255218521647021268441846943702466814437848671950447884851144184124421978489878689471965825254564634881138822368782163023963765220793811267073756906744130562882915922240138335829592649441026838484296309944046624133159947874117399011296033063255545619034953835708861245373859131106592393187291858129996742190767567251039965903754481677573219644938359278092456653814379508382767714165785358534506578111609673705764805809758372694776062126225415748245872398782403971935390585837823992522425647381536138120418439875135313306200535376937395614768779672221319487480600635515858773034516942000854559779289136239615984943671397523521778658937277347771612600173107796355427632042177614343592409921616733219376686443682519660631941774450213551574994208719116738235135659748188650402221819582314210550361322436318743035511807070205280266759089687139314226606432504189786647440414946046640584401993725538270409097697901617512827765564282281193511057055729999559959516460344197441717847999705227981944509612329373896535407433443183913096110644761227102512319821160537545521858874842688886357903052354259269430252249094288416588879368195036926806308315921276207421757597208083013972334366114138308694927050698440716759122536367072070483264509793303873084686072717648988514573809193542451293372112908088985176333068636879540865572807942303798127190001364577639508898416439386320249184119766610370950605488283817908917568172392394491300751690491691537961255272346097490059696905670798094371989003634318314198498230863998179091967883738579656685879445271767006901311202807109742505131542636499714075970762961643152711227485758234785990763449275367433714192717248198066548893312436166652190396322756278203313063106627743251623815850830920719352718969890318777806894876380377670500833790763555818296459193263168678951526854167847897996650355929844889234626803687811581484734174076100693396484388376425687978330267660951944999057410299965720931296817796642434795380621422594265065326296652609867887793464433973313728795197084389262354677033456229559187653524897896967109369855450452750744401662275654624826887246987477328186082258240645398542828142537602357048790964838629677662526086389625402135582722159704459356074883553126588014870582656993803490528503445054425213100535688519999589413325023823907259861490929756298774983077662587531037216412480871204173749080707839559279700336971825902753134137922088658036968863813515146576231349202520251792986319853211708638335974253651136341091040922960182122730250705287627844503571083189044393505763970328016397769740401595082777798224984354369997410397692896701614180478340028276863938207911052941187575076742346675351151635865381361191614608901432593052182794317069794123379092870061580272107188905888067233555782241886385762798550499425212055242482716596288020450331840978633782389286753101779191111671243591925268180101279482318837264633009181009203243550204430392244959928677790914944202200781423774286954200066611488554874941867035394746621595832903232919410825279325219831871570738835174324633785356079756473798428587159537995270923165720627681057205623677240999852383433015237865817637485073922151375751317570600960211045946714888046040190379615828673406509986368081479602911834074907831203202414342987584162248040100450171939270987206877748124206036813797840945706954495262347491123871889762935431299614431711581425888399832457178941767965667107981336001301419719661571723591468032209600296679830079032935640479657794958469900720707963998155878087883748027363987068761697714644630377906954403303205664506297000617943887131317021216058793580610839872201428918775254852713834545532845300709428561233123852490788199619126822227812838060296350978965386547088740215173615554204008222975217167079850458289945241950197102719467188268284476366473106032909159834951677398487887041959853751860010162893945753665850479787920534498730951066923556921819555273266312281248586247388227480708767181411402204071422613722720618289895341411110746022278439675732886149659095070194649422979830146637210728384370634984154250029433815850555052886236591178958144851792280527929902523971240148435698684817417389357834026024024791247361319370019545568480174695113219964006391074869328683582819758526927100503863994150585987861974348163180672036955891227507845145912453820004136622452754745020093334211982666168341463365750611036460076593342404607870075903127907600598915550545002492848574569921764494819654295481647562826274385206114011401438368467107179404881731676951537703366173727049569539844190080639019524623202994923809416969001824705535658745306007621136788230350066449662171450263646828317860341024221759968876703454230877932094869657730986042924026002238537690199526187935228797194882383541900887398447323739653223362636032630284654140397975981199418142114873130105132902602939493500802706405140574596198012226986016675478317940573693471735138470959626597614322073429100288546264356386013736078744498311639827474952491526001956690598570089135138645682803734813088592149476238106823800676043125028237500176314967128981826792583213000564024349859839183407425727449058860691352072381436695373196128311226001442039558186561722642837683800493442074766294476106233934766154708698688959820322506469851436266523525855078449680629117824458328593295992386559085869015899221240297309482136316673909326796658356864016584746909898156741334625910435975761646233065159049591958199177341471787411312094063612074977541551551945474930096917704634818752345320014581312042977733919095486138953085141337061837294885054992805915429053646698790493874219797439365056624553116601789102475924115123728690476159252815713270745252174345452971666631111628909532272473022588792105380960422916089176381926284627960732470788746936732367906250887598026713209993869759828800838939880696226324483997522823858405651295302423975554940009723897030132717022539271607033305832254921988952243809963382675405236039843063540807927674456165752114693291334835118526651846250892667560993283833217626678064003254607885773341403798873243355850923619943262322850320690658997023717676981328096799168155287964493439300153185065146253089604198462491235973268827196729755307796098016240076118520331087906419672233688116647915214539880721299292182398574824297183267897057180736770053743057497786219575438004741553184112232195783739951277856607965646406653537934377980462197464124330788705085228731279307104130128330500873894710764337646411859383289321668105452301459700710811744941039319732334189832876923848948730081430756639322779771281979224123503634612284781957771297367657818546616601828301071760952329188551670306606809598571630847558727983306805123751186269461025489480440324085368179565848043402352436414795913361533003321958060554955322392582955288051223228414833188071382420819288877112914420148661390237334256864064582414293747044990464373873192732030170682896217641603797443181589612957656064440157501601189929280035238599954930261777241976652787728549354432612980871405427438654051359972485757541587113184664317485727066297742184823083764433996179353121597545224932391182553289201050919117769466190784965191752952634309532828330593913118604353199968597673955345484749261685434477284860473791978888311150254428402157838889307303635527361439632303524590376648864873341896024854079045423487423667024156898429320289474255846008318771828784509740036114888824584466913403881178242618066669925955555619211758726303849063545961315873261784645735167641973119560951801531808150138629121354573350746018781879622099124176876514443188918095080126084149604361306999130084286138172605126953943954257220018156957800810808227759144425285383829488048251485894335620288062233192679130698817723570340889741304742333273362999027310510814307188697453904563478509110865680433131570028976870128901807865594390126869475884463875695744978110876586207307557345560170677120287290433394476318167918650381095509840897244460997541233834253161659312946189266459661290758205111000965890120566547352553866941202120674149281049083675469129812761297423630476874196904007684304366318640965287238460216164575758128500274777909548765847422336367808329637273518871811873325316931743148207954349753633902301647303704948979978888913360990809979358322801356149648122016093956082057941586455396940987151896795474337150410047656626748035494140039831185501901091961400674211787364516760818263201280622602168356441232321236894047760203511458827608564482629808836408287547696370104350235540206886373496115283453341205849103649617557570375124325719729769731130159625038437318147078000373252264542606858607445839025713880993119239780066694625482986029402483520558808695021131904440305028191187081102812689410201320731209836075263631581261950936960437143265260770932320631337929406178844202653645565320882030427383590817540765315040863626131715573170658721276413725827828939071771566244288993621552990510797301612314385412354028582158803487319427209325405563156108395923763359393546268989337132641964758010563375885840806621087652722933054397077590344759905524345390864412118359895600872468663876918808424427005095440734895559361426224076578232182322073026388582306434975939650673733937191237745841199598134429400507581545065005886275807083289988862699505734946838858408348249434370040854299061112422776161821350865607462780275912924395564877404569446976030927164080913152953167308030814839033630689174458938830772046067494414398241536905128910513429683604394949351253160528319460816944929676683925454688243887358927767911903036764472606537258299827092299977808223907271332824891556950818468660775568206228718104347587470025611552525973225154938133856879635881527200191620249805101587880895690721103952277282477437768208086438509749624499883108586411697236561039766877354061538991346722930076182163628454092860038454890033812270163054332165353829095094563875540323419675934850603548571000713338278688291727510538300620635868670021044115116056849328921836968829878551429854910229478470254072776886321042536872412663148631125868565093659065762938499678718802796385193227473804037284477401747039961740543946810467279657457922173749974722742519401008143610375598873552558994047570756008509688705748690460855737779647260844972547844498172974479440917598193261688498170474813381873044928854555334578781904785438715676473481711423262078922725884122133066845652141241496214938515753190004697721390092336299002560907175983755768175957615060372789959021396771202400606228998476057146825090384044846193776008678308435417073339161768232065538799438816237774102588071242892898041888340555179224928789386621175354116679525488615873865974248109960899680131386893314488927808159989965023791336429220546766767471551852299408581432224506639061668388627227521260274831549832113204556420958299100841907558170165287794256632332909006626326659054149036467879171162016150082553726638863055781723860340488832559528016216727627508328384137047114460543896069851219994249657820888595163645446169631942295314704690369551881940841563745834659021970567496683191868526292097366161348439598898360800699696526996227228843450310214627909161398665891072198094959361557463487296602572442779207816278127320322477426879644307807983975303144118686932813421135605651250079115664288992476085417203701552456768920656017547501845676356607564761055392715232461380184050748171335575459928740528195121108715986150538879289497350625004221986722930041800981696042346562125421568062736970019098912819276146270368859862487627839977590308882552207245121522307468116520631229398357078447940016330384129374349178325444073419206095432940170465636533321744142602494787488425850902666161747034272044064139900488298951044250950437600530245793775489140475197306610909661712158860647312985541654575065629982741510701298070710466748085581396329706077531343727468954813602537474371340900422787459493513233391443003526373086916014559649312844812285622558839189044709162468990248645938325311225261772063685212695440009960046873524946442102787370718513439346441204599996541939952147695673023944544017394780613482276815234334347787508664589974169912146904441881506575034311899500839419767387387982447304344240879267086120794123786870802735685329677134499673430096841562085507197918916991472251713035796578980676042942808325120537658971064166463510343268564550487534146072095010096877402943664262496946123634038851413431438873546887028446152321609139828673127112297130109254420864533881268630942298957871880878714899255397604541295235356377321675979848020197484595792391859783076831033326112886365206641689315433757240683920223716103632901417779255778623823466512985834084281391184124475535302533933282433569021214506321084878394308406281858631350761711145278533221136799825390095980110749094069814686639414294783857875777394739091425666167811434989365012434282854469813429120342978619734772379977283415562349076560532358363689409352280000462812046060141555748670292591042582442325392445021561699783175747507013662047713758703170717162605375021504153143427753954276611712768290709194559979922587569321790884925110908154142868965561461038438863742277287966574041469054610149066396553002731169949840734989992337694407343513175444254174233607840271695493901097010410632951205540473086563788079899334322978166248820054094242669146998622581329366726755508279574478849485873138293622939993273479243164960562595372269037758937105001677070481203865516436784765450168766313763932415438351596078557022571360038046932041827648182450006811577740728253673008938898573105521013695446261717767010105311547851871953070286932735453937889952083394807464437343637710486434556182641481858126466896451033708033386210394732352306206111109822924699652591737370610751350005180453119659365993883924081055899980131650020074022110631983214615364137825198899955428147354861507000945751508046726342694280629398155339665549003454720251760806471191727361400195149032631841141288164712579102271801373515179870309611367391935135188097821533305269815979603014473968183719179746054779087435567712563655205116930664657774107835918540974513709588502868470648059499027213008400619209305767340620238368688967895178450292633392067222731490792601972118959162184556781155384683945099095001338637551912607560974702902594841183408866758103361845830032411679038809882734471776185622447591870209536863273088386958295300437170746077214721175653600129341868808188268763081172218887249420137272806905549865767009602406655350425574335478960249247398997372232174539113748605362998694885795650252843553024794848402714037160444749471656357469769107870253807329363369028733955056022753008697679207802543216311613059022603218806509988078171165060797852476619581862513800157341840141412321494442011623853287592571332846206499610819972143110708884563144055522077848191140151398567690303911858301385385647876482155286400834624110126914376755613601129069550584199863814470536164306023015558297166856922254528005684655535449604307366498397564228641713911656825743130498106641174230239365661303070541976692728159788043547672866077295682510874057211722204056399909598534775532884509353169320415382440278750087452813961352128918921356821454066228846432440198603763168440043375468492385056356291677143303331460680739461850050003260028723295082699450819539612528025852641596670438427050435662067180750263265353441900492345841807953978643746563870911763027428197719993643915969064921826107833089631569333811692696381136686638644759047557167966688150210962369716925743257682607764444333362561355082035744859898315092523347860496935419810299332245014921184745795294772431472019006499765123624028759504729408923791068897071457914150861633902590965534540797553160528616854554028904081754935556650852217651986821966186343653045474559734491925557291472365568364362060678604892004679836973461036144144071583957166666556758039582667665768033595257352681251480721063109829279205892475038164966386163758354041635318865064732816757567531383346373904748650479942786446239300255008829343717914722666870568740670429949746152260162392125041037231144292972543124220669528361621999294407989107840537699037722387789632247513094813342149158790578151277328924520382912917375018122969675638947649425779039055910735504352909622458477687525407380791892757993523476277647077499137788344381069821433068382611364214568104874221237181234590453016782902650916330169103999262265329318258210399897262983026294421557900776881672083162789100205249601679973030882266914928319853141743633375820871239964668967547767959379317817187775166508981423694161362168692331407294148606018543884437734598534237500005781533361165965554559226890487393832100013602829531771684947694263001518054967625390981636214371871276540835126109978902658998277090736718500812472713382244624350891489908437007757898075547208880465339756854315515730324509012220400025488652779897726252224369234254375635212895186909434306110181251088773640410103130814242658501419893376617517034480161379578826737761767317037350254104355651768832357444373698295143203026609350712430099385272763476708586531480829742549313797014993074485428328668631650086303707237791948118515284510032660588164716988341476475385965446853652958256558087811730847410553748689872613591320193394768500367456349450091353091688234727630963151263420515024291547346175288962152483464239400302248991311618929241919279011608947208572139600083433556884204711182728979106389475631792752024047692196542135846265375334115916490637817637844394215233335295601562863281250385013142861726285479611667720050965173343638014388693416255615492064284488163980387303163865614454698731411743309671449490509313889513094394998692028829737206276976746521066152795187859883042796965328698757517330722383587641969391934526275725351727089369277607500110966032288598670318163392622019759053484636239969638396861927383575758168609066601648267780606982238919205846482799893426868705524797480500177362151340644960210283219672179714268496269187847896487386542812066961976861371439029495509563212606495017467545943056575939281270874934515444347073004017026110461091334085096295013563191452839233652619722790520319063945753546338465545957982344395126390764822949520364155854572391209611569136152301584531044621484269603409571571099079967385830182258681537303285487469993330296059676547036315370682856468090143658007988750370094080324833582872056465298244478829059547683881002516938557720235082836883421532130820833671273874445606953935769343405874799617690642389997001788266477985871811540322801581048449468285180689210444147439620763471100344975589978558834998663179528616441133653381455373587177702712485849895292482352662938317980343880228036793899468531889745959301932982084911658723546843204567614195756548983274766455438961369184592207332600352400262747211060525321495465882058257839968555889926469120483120631604253366788378305919095885660277265526092397015613689503604531912199128252004628957373213926682060985281199718678265112006829657124771190762800021818101624291922325080221153359703943167773014275658519282856805327177996869427014607550157350911474713169320493000545486838527306166254257610369109493706356921636163480824130857581141858040788919616675069864074216148719531797445224061031605659982389964664237855661865749447739495288028041742469986105496033399925129225392023145061979589288658057367735406291183328328864945582274603726514794776883685658612087722304853159608604902533981915648594393264716695461206229309110678088550723772343526708690530549449943235779433805441029325709971942072795663387675297785288395999615695491396172050741304280255524474492268703627005219516663624072088630528822431744672823561197315924863284551005169515869991227248247119367468721274297925313488350547527916394081786416356021835335624839107344552866173621132186143506385873556301024804896640223109528591577711276259563279484031927321038263163891763239002325394738343992519885588477719330382642927497225280306208043679629332730291142038671340235243606927725295265160378059995480508441730131913199537249128190441124082545289349845937971828893139461906229859764690457266420065539223280832938111112218805717643174137306750514131478606653090413366849511257952200649835147131819500128740534615645628326370276241117027799390396538508175636225953830008083246199490135292604619767727675766808592758289096837525702541076406462599878212347186340866977378064001039421532104977837352639110101849929521602058804464166506996494652020309032099935911927858028061810202745962870560489355235443694618979156345983476492200107082680022359483993415643074149209158114189150331612934906269035144023195167296098282710797165843098870174617788491420323239728220094130304241281148643429626798743807773664096674660627233665293725625867342832465627654505868426185429646064042557859511360221514276857432691621787200126347162127769072519221372081983330787748265122093162890145812656561936769543032845553615993246195745178430649842034633912266245223271612281321236750040389647297336500763853169347275686392679054969084207143097881876857766526376013892856335638916940254534371162160525238588193292542447975948510543013542246861529110335874859432767481448266019791885637527767195464374862862696108699978153652841715427801110238377010554877540046471357022681346720872491463633297015624062635795023895254892889983944861759391914971966488207386039868475986011530295397422791594382084042484704435498931144029805404884131642706572048845855994998579543836464765679544857172354634431943854917850834196121837134534260549714189936482588330766430792763814032469956999554780581285289178939065184502128202479458039042777624281513307511562021543669436183721824743568606171455561334124354475985976917520558029480296481314830741954193058210244579769335598243362686070002454089130012077465719786229836813388389024048141429195174163107248860042817734471831213778650294823794099573488538804358718489114853239255255517782973852515714402685387164404229513182192391021540124521383163501882120944487896893750878850658518267565805233222949134409785653870592161727649747966205284670332346052392149713898216461261014556974077672533261884765772128178828033185723939451925846630349530627089324150973486254899832056541531864516162380043431612990747494003619010767023142889058484954177208730882954354144046894439939004580995284164792405204155084152296799836014629749606836034490862396365381824972027301188160335645456461204352168180090644013016984353113986265380019403928878713393705989224718217759937183368789088313966656526158295662730970258413407235192231667606136326840479512479947291294380657616540590714095495600602443610497493491585067982990591730381697407270413762852956362475023242665600682748364494319675935389768785610544271662711259540259960142631372469021744449813547402983685518721358086417708569447094529543675732867127502170075678727900401307636543570842719675809669877414073805648539113834063263330857137474721265584425430002872086569814040825649940550269869914453776594195312469818142232057706735160590442620566604895669939458041014187865745121466887543754152340209962913786270203207240467126987764629227620400488753258522238852629490758925473306098502467732271410000656632910013581087383180357557675224427922381691153236282164217617504396303166245270565796796038643865309417896118368310319380922222371160822158912430231731248859288132244931179579989636913906757594102792714350994108093411486872989128701375518731003508276977819777002572419092111004822189538122179563072623045541493416715713922370132367319305818280485968750363211748694799676600443892514990458117273798145770737696744551467236989990276354192113102302882221876176473867838589174969853924574582885607793123031062371607512022426835928855913324371421046485351702527012452741633431149315125449875589472218779489503799047123239342488425640267000447406954648647508158693646702975934829921588390857752696418290371697252635217508289364091880877683608937309295901998360427701248327035452534501890948148715065465666723387843862846811329020173300309436048270439131724307893114290570460476483480688114389843378154819773982541560010890547999095184746959758932605959487065260058908711400561561251390139448011061975880831694280849669805010188411054066163183780962133798239252853642287728350688630307639556679604172987229430535968981269928563309780435417322639239906536985146078416439689794667366173776394147248229807765219295250055696883767242383268827686051789696505120325051008230771144537239267773230496324261015188100233465789358980102989050081068761098202905057677920209904781144242374923034964163890091213959923753399759816368855583549402171578985590016221360972874530719753594198666185994988173211685612095251008121796526776219697671202843274454167968980932585052810378738368046647079933023466236608697772686571693195345407091344034546049465904994119787277420609578112859601021021006885418439321017179439279373515507226470299130010805053096263739512327065439592184847598036827502285534359031576487759058015216653088050250142743028639455110252580063987940389301896340887548882959676135839641295043293343992766862895489309328279708092745835047435130286246189162971886582532849633117504832280168188798899577046100374214165214535605205388207644733721912156219710654197213140908999857418702453358327921815813164996200759175868282421356002637196716837564707567950679396815514588923704352856324545131243080910872987381285786283538576723808944429007805830013693941975770739080950034604371844201450323080681246846675603618291082111277530657390182153383205801343978702356467417203803558953902862313700791403480641472214195185410710467573523813777266992031409963105364842316472330326134252324736060844531636269937883461272851291405244603559905176226984743044683820789773429204042888417080494340786095683418426830030340574141927199690190841556676194288692784800568364173304643581747726565741695868988186652113534378667072372220683057965380311819454574130790881018213095634295877409841981651206994933259581833806452010458552981340992447951456612076869072304303114116990917169861620394612028604626251102436385026070654550653853353275156574009710522766240811957861119328017225323430356126072851466475209453133513405800113964605595813421033099444462824302756373919733871463594268971249727756397458563777623504738326284226557685839427857152868685776669375121535948142863297785097342414939747187856935509079534859912426050260430982615192559670823168171523160738913583932812051750224383994569039927217218385449993556912416476362436894316845237093642193029276357327352755362497524518280943988216792191281697070624027806176174408147782856260076171928017121421808064164623990778225852760766518885222106304379849314360896217428850070130176759427146724101303398363457612449634001939011692435172294063428544706614693443165803106033785836275415209304783013254213324774578789789369271147302017028610125706740753257443025636840306938326672127825904216832504647346094967663379726071799419432456234103823578732708781672721417026950178968445715295288298121652442597193712981201477188607164536600178874684919241200952929861387012784524737255580283019892725841296442620728788526497881633596231530722742503314272224498373638922190661426163899086485530920868534818744962646526934844991899016831410354177613969259906694110210483133490822943215409948370530068665143524398438858421776252793320409559290728437527579459551539559226057427408490646595193554625427842341130303278920723198844260224203431306411510222773949725363145173321732440068197225564976350512588792313376521883579697659234173348924783207802921731252603380038441465873054246830789934027786256410746017494091091112181483720059712681928891914056476063336953543116030612024434760278378893077515019423219452446594977025400425147288271629767585423183780800563628380514936652096848146243622926521941547304879377553502058682537115557926227074522845349818510338796871339938177442286717462015888320129155667671986008795424503384820760973016389430532212162926264300371095421185380575796439895889040581403933748063930679896994412806239306717392303010823912494469910505196642692982248000840675053064351367597297007279598946941914333462491542811920622104005227756561151673178064224862698612456715514838672732898495717067882802348252181920935726420174674683454805926290322748585569351486637057713032879807963212726420429258962598978969956976735213786230142795039154958061444262388372407652885951644277180835944333760897339845675296385466850865490215181620552689235138622995203108729276740333177513690004944414658042106084593516957036801383976742019413510250839993996055412636502554249928360044811667547947369923294573681378267934136779332301278291175257691329276137444247281625211866287704619383590573498914636609773647673958678032497276681936968123299485900717421165193305094710824712242019137982651839446547973286332408436541405991458189321406713498513497439334634812303634700956319767401654115688951725789764295205214697813674983135636870834230355569991587534241836809522898418423161773387719161883893364087938297018109927201750446761138580987133608371727407343100402114495768915422764405287832831119564451201544328394161426855927463122077706514503995591727858900266036570785206526370050679643553032450492092241577474425826333365171685580258291739461093565343011779852540213162161363279428700958599209263732359693939634074010665738978713829715907127730142116518927111511820525431156623866287311148346551595576840586539177865266708992774389907112927250129586691511457726585818137668813475567962869488779518498601129920251084009124897040879646636045822533844019456095067135874209867793110171709492494682313581926139473361477149597241665429941759232277314221688765520758372303599441210127677253568687862165663087828804252655706911944102576773320972012319067462342640419233299030144138437427492009344151482903136320589236926303258784242647405393733636672675152991803431670622604413036433781801429596828912237975802406028722679462471742484140264300286983425388099517409870445447727816484973538555070446203841804619485374418552381817881396040055472509935623209051940380413027888088199791653192896773896444241912019788676217193996792148043791435521969698638043320680617306892552205217711863838047245977224143386500958351636792762925123128726391152369757288192671018606234257779298690567418409875338929530439013314955446946233930676083508827116980263159447525269201995482552238752009554578434300841099606722456414539197631293465999353662653661975451998027577067996165999406209353881527123689457293533346249186915724406627277215560069531536360382079066814513076193189664557296086383721383602607626209970341971963167829831996474215078131752625295976702622494298402547143437862703471884044149604701583831349172536642711051967136203631008741395463608844517532957333919761663032525752724446484495026852410409773153739315741765170007378699090956662190887987055261798177008844608910245805219622401235840368267099618923157941937248698140565479064049088132198850445977471746035286459054292798705908701943820747541290825134673849044044893122346070624306949929081178007031614949483162469346081622613898772721673600718555278797267293502280004052724503225400954426374580839655911328151311149296852384594825070074521749934229475652928844621059992234834194794202035165565394650056666352670338660968398864251876687199430117658101737755058451758227752235422162179808520271386793847479702793369671473018900506655670701043127952610988398202045231924178981556324661069821992669411710928901039550106939942788355901941272908298389138716849101809238440592480773401405045354740813953109367751158766478625218550957631596244989781526313916119433047632369117075222323622251525983687329143656754211200142398798192351635945359475934833055284685661265539041794658252307900293240668470898197196056125353479290126834648820325541189317322765640997158072918502839999542719672298689911072116302167456707563487042146877433590071625828958559312286842842401154813120765808952386817272378881011945216493049320794631425101734573528925845774816380563629918530581218651877399668891145787996994695174643425164190512050460612726650421022301370528055056970724369774104764271900380143999416409270400051816209702202888846913440294869215773324113907451646952399420558654491351848089931516100457387770015137926501941985196468134443938909715671110166838364284700179621011897900926941364224623861149668366940074372445297718635974385841027794251065844916876459595540014965190614759730256420697991835177687768952563750810362570121756366241120042502121931796587890792176408696611437742873188538255385956622573946335563772133497903881613410550992717179201961032326346952557357378495130666807353604425176225851163665340173810243554483546124969176746330371045691341902093446204723985431951473389242004976411201565591571396693014562956105231459275079352935595205543740852217742079600049399573662249035293684967135279445191329693006327710180430740340913410689072866551648716868542715444761618985622726847339735175193872645160087821185024414476762865604194021597880932252838706647710424502449704671908634575069025621167981024306917708287782257813452291387934326017506740666586583718694483039009389363788684254268083849440666698960364470550314103934591459728844854496647925422017887735738797894697845148011662057284298322174290641561074268884243007192190174984252152411921520310478728906869626727070256562068432161678213470092667727601048726118629140684337801682875352494449922323338346082091871016669104527597482410399041445681280639667795293074297661632219807515868357046232961349783233229651490941545800404690625694982923648367879043467851107738528575189564345194269358225928730953659911391710463379770563503140959134015316322335200275097360159533846624941345188725768034546276510701594924997179310715292330432514487647648731123486251823301798558716827752216092153238787312112525656314909761349855239305490482562809338170651764016107085185295155318370992190896507838294612492436504326142472841066542953546095165018804190628929559605963381339428974181158960812672612142525012870242047389516191558616414396603097462230526191932584250713706070479600086271296048319364703604209100225079744855287483298470530505615582729236865603556060781443368323892015050269908310421234011363394346318985589652817639899671422662728964289950931337108774951525507670102232929442318744760234105458090039708672301280725057561945573093126171256189472547568713948119000755844644861160609771254253701220079882564633270324538500568840762401855848430467983526687999602761370617977384945172870458899059874038063028884236072016186602802697713951303132042712318098718938255479857135235600799018751327778480945265751741467989576061619729402635702735402819092484567673231939601332564940885122832990228188822182496732688574163073977513054154649951978371225378778386599877144054826829795648128698654462476343493073285139185185209349112947080023580848908145186162377622535210053072799148582882614427000228552232542106111428353229847037754132984943889313150543100140926191011724613789766886743013290345756165386365121093217228481202934182044050147856662432476478745250012192766372732678438287174308409025168682698499904650722667733501778232087502027432744694281109997676367428187920001337468537502196064133449770701867618430907263974168591519816854565743554005069625639105296225908010057264982125861837768413689810112976211641822353265829108251740498892137151224882841733413407476816201168477413835376344165318725879008433174439823316340397805525703391259949235857800820066907056132870440692779194782564002172960972136525397715499800345038538831807709477056889412091783290225523429155283409369392031071824819157185132874394923017131560874277533377078436752787074729140909197159700675844713136530323743389059967943259055658286408648389168841766792678505469756315034276258269712310369428100355999839539409883525071365223201362535296069836767972406312695042938407092698214786829566763995174883478974983717057618525611683980215485145026749522057860904296406782080247754397399697007497001115201037246122992540157374898586319734481772439690068739998569170760984461064653734116108686373587772528398982524897033427053140040104988434536752855662173252976230574376635666587800474277299237951914238833044966097712343354511356171797817719396740196234090102906465854821149417324598156505019285534636292319684315904286229965257837016264981230763459712693796043504587124124550391197986887404015801052087062986737342824347391588055615294630874230413424429479954996436811433282579363572907928669883447559734175765517607652471540634230639006756463471740975181305874125353174513643331355170164029528985875453432327248150210497111146736358280443031788402932677936559417774795009746650630788328361908265008967039110444695832196028222683714036845522553991705661651137611115725064649617965242905275035616832002962284879149200696091224165115534681113024800682246130576046084807991698024669751644812384063765664974492730613458873780462439205358227688777449891604666047728777218294252794935935945308028113282912092914744195907669956966905166157635401381058336264682384696245063511960557842423160784510708921251178334408196034501464266485292338469028648114567183622757355710502800204981698385407815292940590001774687050261552139190032231207104016799795383975327319607821545892706630603722166789942205503922866083907810931336705485069070229983853259909127456230095752765796074674870996117039707182384494013488243685668640617690545651602899022282560127540149237986649338775399838977283610320279866937991003675642332531776191089016816007210759051493213909500472534893875323062753175705348285407626645652426597818927544836323480911878636154284697562415299026265623420802512795986108971626798480656120711091885373760525110476154899309426003157897258820905941801657686199671347486667357672385291238778229722340169936170524452293065289281964323514248444008543718251352908007503035749543738828340928708845768683875547594297276261464374618292841659756437987006385171712241336327244257037802526135393347959439320596034128716772520961045064329491967113223564413546696186858973311256208766707355581475517854517637377734246768702316146308065702686391112085307277934118038516755089676342909509962718905214607719171867518210128575908729372213461192997124494724284068365086478614753115916444561114465154356437566548726808016428855937020262604061820129287963074917991642290677279261795454417677182989043577869969712345161032312131077009128665686760781492068806499097592443202355545625296633234973004711467045320471743990050025090733300072444962141896182387745130750177968707592445509740767977706393057674954020018352055675812537053657858102412538453123576228114642830203665543600253323190227610648375636965610775814274602765263997803504112319678635920560698654470612204019878254218974313983478166651951794283760719238911700037425973375849837575110585967940669822245779276937425266613688872648130424655064829967037337448518119685593925418625816552645562575855139391050347624662081133084544143197841431993267064406445885186029971815685001796180453212794481355398294910572255152642454433946590876235497145859674910029271020941448827033547699848294508998817338541835307161710708557830956357301227258373237346490110218675883361450123381939204303406767260085018301267720562041054511720666154189791437236079406761278065567116069682085369532108275302014941172843548968784485038571739051388162653957997887584157107263055499160031438372408229361139311877054273950829773939983456134009097334956483341141645227138825543418984644222954678612171138021225283309406150713638158232337506228468795124713934494745427439032959148586393314752965691943404278461834615198042965179745238494426133570946709661162847921353710003890142383488125037204400852126207524700158266038422222869301775895081716115044816085701852934621579110485151378334423959804218147047973170674390091449929129549311174943978653221184005807997060338840601314509542658021983645745481042188037908322605072031739486945738907881565777806616335933394548129302225516511202560863030239984631451402550832836768056758201873904753359420667619914301110407533001085920592407164564809726129695537683529467452418056647159099782688930687107068181486751118324207813376485038618170104831938513829883899969837352415704187980430267323046609949933573637249996765051893021644687764605763443853399587047001543973768672068932556440080470696629169909156010338380142781040222482713576906269139273692028649100505789831087180030673711764295200357304026466560547801684416154061834262489299338451464056548259821604817906515839565186612770367904088908446812300645572456923592879917703474816084281339252986771526296748891715886804886321985577261641163181446164598239920840042216100053159459288899815249478104951820032049046278309606744211588392593910442023794813535341902444789024610318447587517846520919473396069715080286867699081534919274272494819410008858459888742639203699340532276804899553414229546898051163494962442905885452244612573290419868019718551161820554066803185826779850909181791424440545306703053108911663315423910478526313431799601730041057581345390902980132745761943388623927572954025307545126925056135501225482744374501597078204988531925783343349402070596117493535795238787083811846660776054707512059620967450787325158832261841864917364976168762945465867249362992216121251547475659743155959020409279602637892467830950398360222748958538597955082436117341828321397780726391791324785374882981947716748673803231617946161645552184303851526697193170865135721967745096750485093222446354991311729128960935387168439525809734744203480377313684363252726125893632991756769316665326626537292435415801181657657004481606701889684272551464870964458773522749957877807668169684060133541543350666765865425975389489603780840158545639561244509430764332612463342074223563853177268841958371214243523182417896247073389622502208588937735597487203456534124146810990116009571337712110036604088460428265390282568762600644157325421609807540679954602627924307401831495158869146798203599278888893336200402141626713838222270481702431158631558512145545645120878515878595306321319927009244036297195650879568409762110128220732518028648120803499541709143219235164021102127405297018453193948362108958233250943284654008558176042750299153088923202896018319952204082233527407923654553460991886233436777724988330483085772327022035394650396642479153372476311850684914947781007594317891858132418865387732320627170589614206438841506357020865224994082778465183044252284540850154418013598125868915010665303958325811225886639452279367890647069292340417106069187416146702007086969017113013709693934844000213738408433364119315842071183179402370387814155856251994104573998461543622332254449981193448397771133209167042028820627911033764011632940799887371527965904258525004456822998942855961360624748677804772028118361242192698518955236659192283824676867697217846221248509689834733372431820947454276817354290676384408476935611861382707526419882370759092778416316407463923125489351454941893801728014352708056973448681833463845127464490730877710719209196687777531669432242603498946977478495437274556280624928439932824105697853469992879671288109396279197255399760692051697623606050948203336479285030289005112212958272013040358355341596818553828392372990405515986506324838654790210301148835590695482017431021131616586880997223821828297733482269114534415714360503199159902474458223258341250291497167556672135266184654434531056141516175624323341724646117469963302180530591486894029081687759220050102701484940302822775061699617973168294448513324479582450800570615168335885948840757262924588271326356818415442819394417173554175407200908420012748425118126628014038954658304972107601493515803136096056077099464116848238545818562131839262376747602483790388083271935955032480185454595119484654241278217500048830754483362201400504522942875012446497484504786637170625968243841069977313433326180114857709971337676404794558590196280369654340083919972972606492647131453209926057118989534186674607700708408168720678698755327908354610579133459580735522141151884622784780639806810073422241166139426512793485499141761302470083208137656597118734217462581320327252183094311663760579706420709089026409889283569041703450507008420625953790749797642007755644489156960176837418849854869300645137865784727948885806033199102315735762715837771034104872678711142006135801712262877310675027638624600286531451366561834104158955011754360397794583459832311636565140895780726609102979159701704529774904439168869462494234416330514741727135333274505083269272469861121039003952167889379301301556109824617693187480184363036305306226859378665233735140790711959041124879292191534836329609155252879218527946443174024036160460307434267111601573526966098747691365668770383193726022875529873252597258508193868177776405875572715795844856219559054636777712703799863619052144223807311267753093617635842009565916961442873491383233392249529870509041932417263509774582000559886407203884967067188503154452645143039958848867305559249785488262674488662401379644305955838002002796093584493457088992658238906508017557775632976953043814675387923269926619099160261142576387785299423428330471690697375747659027203187124070730490051184238708783416888861053905557042198228105037531281275163113076289773634580158372973315073948464059398307024807163118743715273154540210024849822018777650022569965623137787002973954565868588798491255520373333554376667091774735227446654817910884675678076522430167998975943897594899154780304526288429859808988902365747774231128064858848204331098259018557102348861635414035028075585614072731073391653665955058296583175964198049528128338322745885517894913691589542719938216161287585539428596326313986152634047721533601013276676348471379924434727115731630044938120103558271074799713513818739537424273770226087324328351378749503276732617528250105348361110152788339673088233820153646425408652001075117428396817058261731787025854854550779469376280979045322802503195701499104127003748455072214562399641737782649304512801936977414620219238864955681822366855408213726313351085706932137932867846313684024627407809791458585557199969327638866656889542240535553801074886746491366984238031859908554997603737485086978643758720893190727513470472933546634002827101895106138071737113925354720908494190124273004968486980932075560466086264759326150936137427956699005356641994479520057493816183671712001198275139329028031699506459060220627618369202351685851815161474182683098840223722379990167034500541917656441555732325551892356047718233867720339502093622788070444587342445245709775031500945884194200414849690961833101243495673703036842437195178993748069585381702578452516155170041347133522611234688649946023640112600445441339430597959171127932630387410786901534987314442975094691245165735339354323044917381273771604655848126477463070414000252827750263433029904920658469147892352732474477860878791751964854635688640432888243445394648170246787171148341035467367358364439247639153992582475791849139770654482761033472126516308079800028350211567376404717427970027441131364348345772084606713192925388966389759348045945658683285004694704334375375447885037548055980995238152524364230997366501907383682889588605266570450060753443534844468427399759154989716895895738259726414534769480515793716831018794292754552994611869175549986394482675931295238970076888346433374189617175696070984553218348894804572591430262699640062867123833444773785200301885273748341245107532257208624719278355620836213964873310274633051353163192280668704342765582077395042868149458804213599528788363952250051529164899727617325507271472016384228849992122741384319366992898283478737970828900694957673884591731414250132037018167137739331438046977104574476621525491728161024043468137659897857042315209039994967372578391214792523445865567673974580851832147673853545705227910489374897648326470507784046841510361488923975863650708380484125275686846601443058208841170471564741524708101155152942921036061623233376630628557417759351941229095255950711438693034818158676039917734752616163630493843842997099873199320056301059060790535728317032430736060048414596273099952696072767905387955550439654822232647663797036465248314379242914326959394508533073069250500862285460590951383743226155445515184745003166041509283777620672222641262454618530764609120128673625479567146590480643421891575428451258767531674060712391197934658450855152436667761332550148105441819742597863694682500885796735507880368055514943078666241935628909290047544066142210789834437984177315079147683482509721736708197492402147351824181433699514598400196570520941413595868034959143853511629280468824796614576570556928275937496946613969943293446546268915434442670147881292180330495969868499616810243930078948168526566471010859885548201479845653123457574859633861532258145174754216868254439653105271125309510530448781130099578764682291027365304036943807814547501805517605648207349489874832627759077644403800417631478889834326439446975498797863984469450492430030238950651439645876844335974677686146869285976564079522061680009727019767879581551699383310597068403325774394745005853004241556838645047000074703059842781216338571747074667080272952998566762195353782921627520300333209181301841377104033840912311280742019277035519548278455011461884858448508451182595735449855431829376471850167064049143252664887954616665737215247649271827271911655201230676237948517556401752438741166285921433387918184826215330619083512226676256898265393888109613732020324664724284206345776871285613028366015421017148461152619964645061982658572133320833847049453411074816016417297256608787255674201223552210287753663821736287613645402503808108008578629354875561189256652295830339463612094569502750462763315962578735111529323599380278753188552870339298531533319132371810697222424171876314992607824386775973550699240847662619886458896323143197899073887158854236033874943685180286799858449123067933163644913496335635386527774592901066453324282698840536229049895693826688542010743657534743759351312323553395548298515680108351743008928746815948411293985093469562681351222858878821368497723016933748205257822824034017716316102267249731903957379921041612800818569079166281942551721722447274580812556513094248549227859669969384405023802545188933138804278049752641181948623447333600082157819607345428979583044978879638074644536470134331762272881106426149607474985117637282291190684362587367919538708552157273551906306379032782454749070755650590713022820539833802283054340245233788247350137648036211196515947925750301923848609190459600412718595157967115419004170602583384899286811918264926084861835623337186784210339911710303673344193264258707016705915828181639233203084890206071456116288093568526670375221330583355021137835838765114485636156840910595732326272739940340444652629046464097974839100096285255180892591753203631667970198473848979854630165970723596021900595375305292418365847048462627090035997728406894143561103881974407766486714919515310458778571741478590834015992078207980233676202325334001823093929083274329161747314559223220038908143254651823064165843135943550233147348986775327296889462428529498817118999931820932317571937152166593395957296712008238903795765593868929296870996591097730647486316995116919898272036973467250398221320286490863970580578758694444972634650189568336813438786520314146972094402663122795566166817145002950745179154626942045291071377403737531122377408480201161250966743808716739582812619421535957562193160759354840900005301354171055929503066011523105886503011980393392029552431453761346073882785378657970414839439898734777504095001002880078961989480819405321479380753587942043121985031784334648031128357018921269803535661431917059860405151307774650496058536439643872288114796146766410901607880038988319351654222782662889762029414432029010661652884618674244107140620788301645901407201028257453372142667494912833082243014618932915906596437932246154504140161530584595651303591760760574453112251693710872261375292763542478432014902589116688647225258579295799929368615764481922524114597217139344534735581074590266228513258188096721440837103712568248956195782901676281577591489635167788806018511439823961929164936693625080139797992646770174837030180335542647966997765266057073351582807465670188537563810970445199837096592116165191070285403347119513249295929011828077335133911107844817224135822909308062657785995995482395088154312551842742076880282420947125940612845992760695202962050360711418682743466071918340267498324513823066090043310871367422896373903131021795502520413267043418018761755833279514889110019646748045909934812581629149527595064258123979833105843975378564566585272911590837821926855150432300258439729726569129797460121613253368977387918223284522717893462133578445663060739937833135368350841464346907864388636079847183023737062062454186237287576911896837028999926748835435050067518495470130405519509509809614275426526644147290040914116030480124078150403396055726152966543482851891117815578271429381345369621491438796184810039159658766339582448546070493520270039307914918984080576498639669454162015764714265907650971039216019493448991271275997125844578543779010287295478757075804050349596602340828461759551572551189924461480984336738165342865999041978314194890977621590574952513331735036646613520382605473050972884874455685380665846464227220114472969541616601560377254967032725986555440496789082405975116203497112611089662369253807222541266680692813805760824880873177958511466421715011540705076191843072455991947351528841127246052793782810750171100958194004926039996299533462980012044771850466420488192517592730593318058908014464618830208253440674332822723600294030666533462688700469216910219609471739011921905883244467345991018246565892130958447999992128951048648013005925727267553124175666067452126883820300745519019751463155945275484679016596986942577253474379277950456195401889436534885783660860626409287816129668338013879200270720997567614594039428825354626055990499584116706934763660084443031668191670243414741530032887640697347338952992265195267418238424036836120699756677529449631671054849931459795696572117837433885154643926381731232280045128646516679215945271925390190229945867449230462945948279929229162493473545068975796897130343716731251689915810287752311053135000762432044717785160810849258084519944145805897850571683866717564836217441542256459575956695432740692071121272810583363312140682331574939897667548689004545750690531409824038094455903847686432881685697981574297310807600656341824903926492638027366068086293819403717593178602289819236848719951582102068234479029193934586221742511524651829640718871755690376821775530388724473089195201773704574786197541952165513937592379383604736298721817306677025662129179402854672264907886212813926180793475785128833965654813123127336929850827675727496376604678482490439968492555091910851389960678345948572788586317137341075560343081687062259128276026142713677596550902429439734858741454196817957789803433516836386352053651425575615041152699844733993909617862709680141907528704395088399685896919012354214174292109010925933734793008772760489306472128438189489287305449027050885994414502643313526876958011984044452842412021311070121503520338370821504050632665289056254684408532380413144440523599919733059999436563640733840276708744063462688901337817167659059437361628512890463799262139056508517455462662708052448205866107409748767776234912680242150809236482590196034167019756405184450742793035928923832873939156819932133462861430137641738693087356949587910964430150182407718893270912480157026612606889294735931090411470387757567695495026411856466178916268542871884445973690599584600688825568192270912266910578422429102799227357207235257428856850965772167545489779196180574124103775860249323778154059072636420151684293519090043482288292376666657716559651269083514457670137577534553196851379915120850705098251885906560068226525589644256947620025769225609362675111534304994917657262157393007905728001204697719517517019480537707287451579063268808273433525649677944920117961412333025457432532736167882349653325291033785438645557720812189127119444600346708406794261682756403688185570651251003655554128630751280471309594949096671893050546973686816443791331134012051882991107392017689621607804143268301241105873511298366782182338953435560039639009972853883892375997410077843313458581379181055082841647873241054517313129515013826255963018307901547119463883458530145482268406777253307704547403901492021823790574303620277260956992890076657793618313691468474741468589723302536712758882588344330551839594705011591634080717830149188318891014288209321141893202153645096113403549661193235432295144579069634098371793952141259166243511453274366958267977933761358009346830625099002921562644047108099983305945899857453037522813374989151711407955612515939069589096479876420691865734574518686823389784397927156200634784941331359251877795830106265991874200882722252248316455920630790190999252290960353121335372418240303459187954206977212875742847061122471625773781760520354168340903941564021872609795344553041128805253671140038849788117222550824713010009212172865840702363487267940629741815887842484851296587452691085605443349351273416771985172966736185332183863072114989276541866379828364930575300402919766730341014037920188268753055656937227763188311300621994091705856636902041433860024961967056763410272444021234102951078945757883670541289686989830573326698119437554590750870926134902538932406723316691420049456490748156762648035485774672604519630468890105792497440563499082437348553550972556134723625899891450867330125070746860127268778171667374308610629493342717666131614998196392907678100576867086688856759149809198831642906780279612440977775508594290067957197818843040627525234325140562982174908421055270349378590749993064933210859378642580315422776053710282624435680239249094613447822294939539309315239365369181778709245414936184649324908739590444108455541974613417066693056645033659080760883516200445921407246816773101224461822071005928383343520676171656514922509826641586228927871396091682824097856870129967376933894394535029035313403696557257410644509694453854452586033308685960356186290082685257751905083691069326780437876009793210092129942375716996013096927568118921075452796574734999545042252123200969610621200925993798166074663118791896705221095147828309359163988276098683836759413334678397452587555971094054989796828174311546099566737060788059753963296156955108164792458543936970106061576855008573267752138983241958489256530246516313392781303775166432384207451850412945806938130755277052350925167970190446716805114238049220040968024101690388958840770131098103142948354707708686721697982106241114743964880337651226487040499285155562814289854619052405803284436446052228863114621874591696311243924239567376670435953589656355197087817778556698278017134416304818660353606405058982238609278777113263916498452528378745584967232625899233515376974517957293241186441459820471459258204154222305743371475900595830757859052536980563327197476190591068523421528903679451403481392070442520328593933388563128077541507578351091592678956579871401840123861672504773857596547552241716564482985437076964592269213027398222612508713206625165233895470920201664227601943765527673717033649389523313140708149204252505949567871957582064392353785162680824725521120250747457314705644575989217129080730962344934561949246016706264083584535144587905875717788952499046452765599697646305149587578697687679963697766163695308954352752726616087487248194613049414133889495540996178320829434995877892396331050890336692450902612753927637346531879918510467345391607413506920304098684592772204019734128236229207484017929668126694439019685411067258531022551798139480085101140000507262295657640920581133463586875060294506792155158735411508708635293874444563235072887426103366327607811142049675232278171151230750878780515599779864301585609292667556786283427980091726692101232680986499590930177538482572507433899005757966929091331857551408995961141134354805219332331304363138710622378799297651950869087595226915958962951769902163467929100074637183427665681097495008925482375151243781488846466121532722543344294353225544709155543779855945871851728904955040173042931744053138490847371169465861811405259510612537027087181631281232219617754280453769242180640605933874387322306072580789559841227943616505180930984047188798686220925129545176510573831269877536557689093897252337143729126087150943731535310437213066146245667371268453108489937456111768022741740537317600159484665920130727157733387237987304657776020839027655886740297102802374044246904986260484856940704222171980666996863947186008128912987476570050203534228751427745973571486441085401585665348553116362339807206391455395475260476008574804934152714562715298783610252191867862794903555046976472603472424483146530133110137111607107628647289560197932567814747179035720588689772191017563183775751616993053469933030951469582259491242724970663786105287181561732777523863832705332055131430508434404441241212835830314698879651371059093473031740784486259307077342827510024689159885950811464137710018186220220430969792835484736688349491148814608006366351272165170407238906597477437989820322117013580462592883925316277277284991109054931729754172414982378089706718876031006080753421515593710787591281581155174503023250462825098097689223504964926113286579397732385365657297376469968832882829723697823500399941319164038032961959752441379430353145530410192581286632533010392556812588396223434775003206492570924904216047833658167520941570765388571248968430205701963337072165168051175806274158537658897099640854258788074050006629013159331185990300397404877130255353887795503517403865537296092520293456019739106042459689207570371619032789988774136444051057363863615217803107187384278952367420369920566467638564068415559188115680069773713687616021178525868265189305024847645714273544089653860641314462306632985079582086849218818714656349319478585100162021630689061577044521974906450429907088101924167388486328172668952355706041432585938952444346997017075565830584915403563989100963120910702321474510286947904479677753244617185149265764863834274955090850373578255221612716260402972674805311509735807569716311636941388155294275615582116955438107517370770924310925701725004620015086242574550690094498980918737065198248120178304959651290886336564954595972565739882215436857403723885474454485786919142343709988322925765648398237691767223723142492494660696230220745752857474495032299248279569239152289946009951281453494825938111749347012988828141257334058305557974837294004688811001581512091468769162808152116829047316422394668126315564854462213153089574205712944213216574822146755716911694327755904425455162901019030693016432943738018428698657515833073501375781523569543888574025484175838634492274979681559404866957196123557693079889954309471392842018358152033528364048519836641408878070436642537954958130693598941000223154285560016718107808912702234147191330769728121623197289063513714589509230344578036036290714662116848929048869765730602654106730531763057458376854490789097229003039737235899466263341690001120176275096472636733824852606115896591514846229418098220774010839210249563645111888366132342312105069212722880526145596264460785504661345306085335144362324058115772443692300183385364678388392582362597022039946741823076994525747263553297496720960760508190524379350560306738590207203595986010829029141774413271225976849820119759285453903544754227943018353874793495239391049406006865572038736762741372669343683799696470172530579343814545342280657637695119071710038039824743024573843580829635465615388373576364903556609735203735686856658074734612882769633653288996070437103121608841785044663686238951666029829065023844526116855929005152066808846341854872944111352008918231466551826051076417050390014874599240743990094938167036911137812100522559373857614641577524354186299956402054566948197328305266705118324841232852555098460539682935654796791795848066727140838377681171119977202254428350952055793986378858986369471440596182328710911185801721071605753698179533439814164483474799934213539888203833304667321627822691557586912334945963559873431703899492642004182973632231487104516973767228728412828314779857464790829485504714009890355426904153674656505773587941304815945507149817209866833023999363319093506039066337641525834944394522183787494427813590314324155961294756512504760433105172904892720988157238706015957384120582633410197923205521578084325030604009513384889599806782540682326854130169385450175766509896386590591159714135546071539301929678725298184305526626880515828919620107144990307236451555794112536281139666423813615369992379637618809568265352699066019215877212572806181730238540028851726768505887260091474525535132842022313419082443705085239488641023429455499350967873981865514660079587087516039039275310224437247122138013198328693880477143767663700293946975117264243287418096605664937560073664463225692003483577556924544631024865001560842318960202705352574051388212879973490030096715756329121763876911587602362997798088736659829008471374626363457626749550710241874878554254711923659179700457188286339263031706242065091899617016510259846554650519655844702905021033100696309632027681852035871135349502217696112172381083305922109467364230007827341031240439215758606793598652319581886416413497746666221956571123010369949222655627005815370405388424383742260145604170506349772106944255618805426364855988195125532652142645548226548835835294824620810936051016227480105806352740073952986100817904190504224767760617379008532738265954755596062816812465269371831235708183356338067949629632775458074281892925493894772254215069250137425603390144989309629205484103487417658618922131057277363062014816638709737878519738811415104096783462375874663068382174810661904235081778419990080290096509856257166019764018939852856512267593426413139498241552133187436482334968395738993080214605937755276878307519904639566269895333307703583689163579781019478328620107137599704354616711380208602835698436055701680473391742138069987179332787491280425087089861193589312640126415621849509210409794793470490958721144625001067193339150601589913415707724825185287316778098475406476600417120247539436442084819683800608213089950479866957280940045731460306158454708378957494447781533175319173243905332600887054334247389960310205222373632067464044486443583425123211092019246605242613276584252785099592915103598140907125453497160663667782387155253156326717504718653469258906097423217213442682110639199358287144538685310026385021478671882712381287351869049535241426566571660461560784186569184331058138237313769179915338266859808897926654748330893861811162860494709839416442111511172864006666409126468247450438634570251111554274384575211839327647426272835010811859547575724800355169934576131067822202937963148259652697431122995006740482290700281731051164579341159578769786734655803469033729134695750109705217654918933276621228446427952546497292683705151875018042881204981956439667949698706071053873364052793916642982734488604231020592170886278526473597972034616286437070472152120747967731664974410060912964986220385562580719839674109095006705117305995910024759227347980250891576836094496131965862291797132597884242651765593170392571421057728149163247775045751419009797896759436681842973095615867422832019798786148427282536441361913355076811935225232747529922176156833670727440723396498753262243075632667624099181298973281419045729373031448364437813789583431879130702300214325672090182986812676043765842672421322723069869928371794301706416855979521435722150027423583604702505496390340999437993011860519430331258217702425728061965080839515206896818705010760603726050389044514441470488899383789072946014137704775597022733383140427165630731712657115654138106767317129402451653096795840203365101199762413916373661348294299486966744825397380873208794816728306068864562492527207141771746721090126447151696500728605696811015357241061391341708114892827386020119132050631079265959132532860812933287729279502278982080657492634116580977753572387564867130303864039542810248646073113387491053331383440291959959329894737544099671602887302732089438176420300369664270543807554716653437632810836609699475593908773303634966289051844169073054398118100600453257430645240406256249529783717433452054882626059535986923065284497184486731608345317412993748346648443646897640605848373480374667341168123797385554617280272699479864219704111147239818970000239634218271754205177034114192492884353463938588908916434939068846877772135267566169376260721770280948353169415423045862777988124829174376523199186989702097250590026023994936596255672951714950965982076101374204033632925265969301975423314796254598968251786818635044284063724573186770752054907412919020232581366586622803131464495596856606655379315286575841577491722567513722999260303870894416660204820459458117990903874613119891640503003216307876990022418095556168071710511974330442894254329633473610822153561493233828170858988351037445371129891940208992607842963433246361768253761483594833855162526953300284247117123123482418100871422379589696227127972051832386460669337737104233755866777304958583261305637152243492720501903563818492616275056523318994614802665088169342758368893826156203736928367228312221379756491223120799660094229878141110642875239443842787594710153014144688356525036930432638212297617881515928428962086105441439961766904186204118295494164590633926757655911394981069780553711282304322737325511688483602101762810164459875315473800455652065089653949295207806373995931220791055459630025782935533891387445186379516542051437507801253127083091163864587663119244326732164125547609869759992241362965766283713494475240521461663146083602410482149596335708099967817107633074837186072236925289523475384661106963838733037351277869286456660548609384115546209591594555302537643123066277326798446259383384163569635313891793072464367843162014164691150109408659279666134165497303080452271733161436858019968227639309271946227825437699238483311407818653148199877346599464304795371086455878630180029151159654760992372054559840496915238854597606729818970132716259386488130804363929835012525306135609495293178624397454059712930456848978164047338285049725729814937391670062857061609439998356684104474607793494302484286816676776757642068641799852010561958394740351885688768927922032982528599984560911533872762684075454317396766865129150200922938961830510211056826887181976144099225433022275499058748301985230456404977375844017796984635103692735953084784991822517722557676975202721032561157477478480679714389476364529523544998557280663827316378170799178584004188097321467944167205218632140370251420896781632206669931054302322176412329838225433815663392599588090847366138225879346411846145648967796413156249837285665526474600304291730152947805307827809422102080872071898872038463130838386266820324960414045963422031248007029247323423590382485470951896860926122102730924598490854768975019923360202374906681565767567922991512509457643720595070854803522870467861304954251474851346168746426095990186670020864879361876845853372509160703931597636987882120632301583376189507041192975540878364258506162139163607946510374521103479966151764319514137407744271170033356681627931146441173634690456634437257979775865669386104233711310022823495978477330515801623972564118327255811700096657986596341205072630517444013908700463755394984457970078974470521579898668625094709923497177796749561436588132182571016330615970561453613725767561266731858977244336516514192900500738599021196094472947107659250206204451388436388987495053678340780352495500127770056979788137790156975802699007330468726467943747235856820115045501042835071546643591473626613551072873226676402065796734181303265228090044131099204069744513375414473952241865813945075183656941184788321092446430821432343713743402871461866526285062988879272118126064954223065979719456742517998855163988587898533800544482923632266224263522219068616376970736306492841978279937155708870138870201007012957014828629194628432350092178413598190649453768579487644702978344608519876988915935516556993692600127222254915974372203765634413807992320971356569591644507393333041893182962576817375563469046143097686690476761926500715727966158793695206573896824770582893705923016021042754682229175473339123140017191847763906838875225501082655031980247886255548960119280377636178221198396151883897227593610571658078559344186358899547751014845550542694761928709742069000996834395501931151836512309488968951043191349290468959109764411880817692999662392347965177555063430008872871747715052220742990959600633800148645770491534481012216321263125238520098324375102668586304537530181421595766595382267211802239655934953319800864171043045652277243212268498365338906898877929452898717350764182234005050472589847404791425206436723378270180915868389308541278769910944986487392032032749639429997792133480329076768792499769799684403696448943936689623543068232838043961772355269525389719567718447235137146393865769120982990019178459080950184440888976338790675010346047795454841974679399237888370624907350828235073282220770596769305421011271576572168393133730075952419427269361345896070493184304758424460519274355023001563817081555941268724510067685100006115941940677891277950328505690067741541179932582811286875588230352841559999504088554365269100137688308789913391342668628726825138632065120282421135723081719543708613617616822619423246430462735851438286463640245033049037426430388023996560936763483431872865747175593825985830718764867666963510376077090824521266106850318416680878466582249711183160455468764181258603059146641386930927867542046341142000802500037911997839496970857044977380263150731446885602834676680770696956447065934932762121720425246077767325708579275990405726446903504097623861183982963972840556847541866432272841855012417811988640635592580523939533123205955195987228535332594662731351545005364427828959726179822340643327580002540175182397449836506512371319579313129750899623036469307703475479791377325475506680669777120712423200380969848803522323397978099821956575298666374496169888865998594510005713275456896212640836070370014863210345402104279536732350755193339104598854130102298946087651374812663702101183989767134455788052587176105136868372961698837390689909360961859981627789088698365951797086637728447580146832563304027392174258531666564011500427267408531092668318803093762755831494204396888256281655929266454901252408613456317839974890334123792303071905388203355224246767025873874754303027443194578391652254040200649047207263312736652452956700938051946559654349955923492474720635421937351187290244085266756066529437381253985808077802094600478729683212781791386627140454080523524722655361890718712058166168014150759685800676491094477594947804842479837734970499413265120614979761606225444206658265121482229937083265489752279052645772103347101062054386643093120814783632286581479734337498559256691551065060322388911736874084899238835563724213468426575539696455949098236044113730990085223707263598555434463169036763117992417804924662115247824898080745492858840656986470376906841287383538489673353974056068322738393747433175569265060500007823645955268918035752217151086679679336762500647869876429945509411512704208904409521419985768632649533349650362647247668417099168673186032728350925641984250643821493900028924102060422934417577883820364186230066312262595646048253617367617317739985381755833307502292210585961072096139792339968317620484491697999466510368010845573677228086548105279196953499839185743804640851556776880730335732266413729104004109556829510557658815893581852019540378650401224563056213268646937380892856757826502608270935461071651881615287880754245861043194808017980475021068369407835043739462974399353606455127957386548510340868875842839049374998343549060910677717750237855137842451281418973696695869665182159125814602585610342850243709784706649646681534804277088359266676179508804811781939114542481021087898917034156263910907473730099650521082644137024980080364904333105643560778838251923893756527075567295938549165649485195724935525245268996144776545468368150871266214378357583253098868795903284132117488552921742525813930773607391219025216557954002823496367230139386698112148155429592734105418303902819780614528578251471606140008043069433906776865893706359261000784732089740106513957749736068653946251256224668165560771385059019330651511780072791695994607488576619567118193936734376849335221218138775918240478048328760188381272635230919006598678139107869501669757388864110093637296084875998619691189212094441734005144147028242892137045062402107994348272758738897379264197215687655242098407311112965464275199448752683623441006059441644135555772153436258643299544064560013912173371359719858576985349558164104918974110559387957135899955260171657319576519102706227769143453132625425209138343851729018384440761855690817022505549759900317737108532847413091684075447447189591682670330323505952936369222943001173307251473975897409385257547972227185188166427184699339246403845561491653522365708546738089041863311377706754308787057265250217084207625278233042256315165279461096765285789517135773744388638273677043677110735382150144236944527009567728160631042487667505831203307727654736955683830151705942822854980980620223495933251312279889334705697623441826153653191106756940716557875699118730329326732648739282317285850492620102708591282544143634932829278959716376648142932903556385153308770838277646141622332364911193578426647964249652321879159618552381402937116284037061518462300907656325167594457419736781073785398958527268325778161282290095567003132661129547228024608154385705961580044100076481158078717374029977782573700789728751250146040045126316601487609566459686965324558031238277301336620082480480158089230465944272295944263006256910829291995625630987232828456029665719333744451597548585915489687019477084823783953808465545918167820050424563555255544363857534327342728254031209412863969614344967080346224806127360328517811438339659924498653611761087478797439932855291622819336615150672560391498723835815613274245699327177032186685619538141718583600618609341195586563125459861833142787826467642234527326200819338198515180305056164847360777136302300651471888845244389084634982858876367559816403682134709262152939184967670307018096650874434333089579806496265727174939082427166945363694542851992114298341945174783031030463330094468565316252414938434149051917350673845067771927430984443375128325690040760246941919833715895844093758464943064680894449368908048118392121489654716839378628010001444131172846386500474989193767783069762983887187829335866460343833523204675063806368926979526334931478338681609980179956482066191270990176495010241890694458004755030926936188167539168921933082390352514699001614545802941242353879517670303053467218025494474584296286778115348757704812972632621619601718943522743649430255595000479156022805832522170269346038776278282242839558546558442394720715620856829619353574575199114459109958281466939226325197657870162471366611987169559730577217544390991026875689535574967450589457906254834152616872942848861907686517867215785673286660883337100369511564304706335512874384599211164568831362767961596352729005332325055708539294424914279502646317907536076312317716020680003714410199129364198673553557051136705643767475171068351147696195359046258346527785720393018837585620600046411205529096502677429992563208476287933627330554002835332916247387320058575963362950396350878127759256483850432084848975028954758555817814608750149997016661526534882972957036088952112665818957038285946889954284752397565175029379908777121347633157771650323301363805853833821058485798372722710779819541932161598738346723548389622339258094212931904451363085553711714409648283899237731034535362735208752197227956831393629719879245871757679143234068659965754438706337754045303993299235330154361118428005198302955863369871411104907580444494787599037096009597340100372507382796136043056931902515134308886375737325177730832746314550485478970529916651450165145441335047835758372982530988018735270763829923374174323668228485384588332711800003554766228130948531459617378423625362969926660004076093908841529858539936120658690243468461421883411910784041822424994302718209961252072786345310943603187857484438438026019628821774293830525880112346975585760103767525810243445618081799685438624933768206927854203921368359319679821352840143472029529669133225450968057050225102600391505951293879396587053649121870488540289596592814428370965270319462685154874905260093222367709965694101456689448587390151859734643282658654065321587233697629089799296523288815190310910815874685935290085691688243090859032463178404892241248724072501506343139231161698849509728785890373357593748013209917561770036027554115580752105548879848198305351236536057955431236158978546207222124546953372993242616874309212430504953099870432934615145929720792622459833184028943730644761826839140203079019556849948091430796593231733101773595479067538253804178112068282393760016691976660562783515654904803625808069252914745486251962574922505361689819358255783370918640980092581288819735043764831884624264274076372330522412101505620728978957204227712420289046546200400951221719041076998937841630740518653812142788067219869877842853443171607120802871493094229427417257282759404242660031795677362622924950475864782074533458523499798938557792634952106894362319316293462277057969932822409438190559474266866438377817139201110146796777004836085196750940480003264100948859918615525839362326543665514841171953487276376034864188583227929193709301039175444486558778939605330929378920812340507822383629315648887940530920283846804443476799186686991210187905051771341330574066368648374824696680496269563054024472711912655563068025192746387462655235210795468491877330929499081187415782526151439610931541817877741435827479157558341126207564969566314540391635401020612017717699143499281401741164443204589885691370752885233586940692634716814835690557928655947964641014762658469272182071972759858389206046347186894850550916940634814328137894589538460467685541841882471814774506518434278864888213005047103482435265529236544542795764216417703977039781473176006828306419143802043018810499697741879972930710117557171190280203544769513629036741622630903812179347550252566740317619257557978885152130581782769744187666619864976541140686802889780415526689733670152983001432267173998919243041144519008524305579655591545737505103402591780345735143153935752911975608712205574805082264332040147372196269587418611674950525779188819308181556304503474283237636953372443198491387945300321216917015792628620485441516702367470010318441658489533040972101889745419154755826092926714834842664191035660841950744549242249881436092728282562229519956608938244834269401648229788314090421526158812694473413262409411210845543938180296595995293832493143777769942350895234781803709582648820488256691958231749434784523355509216387186344660664281678265622321798119277479368389412288634171114514291009576157768776834381880807934315452350342778987558406298991249583794189844065492880683882655109058897591804501577945597833902595727749686168259891158826506141970878662945398532425560506177590657538647721621063647208973569818372816026607403176365737199542229171648024496677435130060484668639235517378189216795591125812472653454312151485764450801582121367822787224653337886314700306255982895166642441827503349604923120864455955949270316422825155135243285848920567682974141939610589652227541601411472894113635594046527074912501365311110597957476787766841129987790280715403230183397547359566580550597767061454466382612164958404813206418219992954409653388618529442303090724174807669228501285907546556861924943186596224159410665145218903708093399254204777469351373736915262455817804369471499956453169486858363772779513572024837701255603185210447791249838705858207930778738396367018307413497369476045035529333909612803087505216480632550944764572087421241022799215572825841434408050742033683353690365424021391904141214010257792759575024306113947471185595057285789465550391936777629805322679024671981663440889305201304761781208787952732604514209609932429239456087800939381884098968399514585746081996786884176566630594019294993535941242389469478590872769436801920501175965405618826131075323852490653470397158971168011756019040158688255249557355232354893977406156667400676978923350344562816296427535785945040069834327409488788975455356790497521192702854336344333349508769339716261179938317741470946910046100105221104980198932548097512994548122847848742210003913644737669847336223284891672287514664926542045518927739340268503635672748077545810819138934684264215535019809710933624204276377702765010254632209570773237302829668667207881613493013025783053796286438670196351439274317688124931501012654288089441047733033916689035977761319993931250028490977146144472760315106481957065320029387968029089223563784475303286139852489160484036236108331480651721990649934180935931568630137949007127066002875803437673174731704503712740783248602288910881844714649690487504141954860035657514197689174136464617603609892295120454109068023456909912227276859580371317958054485991064361591064858830695249680336681147695073777560308979595286651222196071669624563057274033544604345256440374035931860474122664453705983834697471134011222750815551911558334081475423988277365984336973563381069740212267920771936068780697777971009127761393032353130767352312181648995381431075036395853476603897355903329293592432622124373411904926227380032342482524933844002975006943313459967611570314545102701695616847792114943680582876549761214277157545957484763076677882506652544601681741338158032915055181928025243052497424488759990112384550797818623418268418456801044914294015677675651592679117428593844488137440774423131027674089098626570823425256640945460078659105201592502720419275680648600354147428728318531566201146673710530944355943520219263113344495486791663514710253608220574320430401552504844011250548265872019513834791743624930978902189104545592458894205364761798503514076204212780401085915708482383598069120962079354963776386326361784231020752506043056202692067370906580192945008037135629124312075598061694896303316138473795756930628559871796324170081715396199228675036432178708416587832514421602163024854637115979110057238548859182129293336544965500774734584463006918001061314250135372607375959274397203606810009933031706271695347288264886382735953409691673510229669748990206821649635389046368972984472362854639420384705281232531309874730431802502685910697585421751430079216619404385353964615606131108516647822902669061434153333948536540868365019239188870271914099600181532941559909784068409246676663716483572300518450887862131745948494406740140321248718314551623660209001002983452046536191648503283503047264106652339235900005738576570028419233473076977927552772830398992826639085070186194180828628954479810859755527284121112477723287694841441020705276250514690120766966739359712493830093723533856227416116411902439732187747817939257841523718137597755085813777663542438306083204083975649497424120334606915490702390377792196953715624093134278310348157159848475792486868597600560712408252587765215446313214539934257252810724278714865605847833736204738722055445386871181696086770414019823100487761900915070353586432809773827709895193592457753630474329368840563385807674162504615271559791095275285282712953112553579645573508263266719345976954847948258680451231659879272614322927415836940246017650823397209523267554751190018286490891831808705372763047182264696678527813752696967791994111298339010042025485329277012785526783317150808016914196276487151127202879323020304072144413135371346747456893220321565913912141171579565071072555679370243813128075395805541545272720082909111081146852839444689313273637864635571367026900413916299115865626973593229918956841737677812737530050886013581989919573410197691136107037491991601191327992350787553740811567128279097034214160854515795790730819699009636456464346023135784015637208788531176969145993700439323106417557329059004830239478253513257648963324071136543151713869999912674599709473984969863439363338524755126323385634692578962497124618905182231473996344611625438941172417499846641475422118561259640439046538510457815177987049986248838155141846078431685131053667458539262318073361093011071024003704758444306854485608789877273459192177587146542935644304702313031406470040537950375235049871674387645525631107567322193402047742363530202156736583900941236484808324029819107443612563942790607813636631799700284120172349711597361541113792315853744615670743505048915429778168064865892314641470554532142020991258140762497414823358067900126972505595604771979059943546198754982804619431835308282045042695087487262232002420618247341085309904265350772467726044212271930714290502294982736294489200581918693906013487675401383883184457363858973839738214696779173662029266488583164159751136562012168070567644292723426827659208226011049323130835992919887757351111234327310137862898046825673213299089595257187752326784335996944220414691641118171104981160050040174125967082547132735620245353291001390123877670085303390960807856375749011448466837162489065365458983188352138331246804490258090737606301866282974731746880634234939541970116989021338855273261760804836226081142603362889112282354405302246515321205659257877234714375825313772380927371058485111167585766955218698702702050810395368177111327285071171337596655501627842753842250479924086207707067577792535513487566029399178172796343371583374661186576903322327054177836898665526572228181525452458463452035984411843209153794093749927166492718577886382990881089189951878606226855414124556156643003228750367583881787401594042991120109735997199382075364793704329844278791748715496405542848190307514898912029430670926062528029537994969201001325466395249957265768949322257727299895394115654602642124760800392570406811600700120138233170869174711348991901465505617765792451552130249902694698920308500345897329522954616343137397740539711612616328186652564564678572260031402315612719411811673904625443237001353875622827157180272547652208755699456577140883626952391012859091671282686325784726671404299623043829009094890013652377129195196003785776176194732181873618815808963528266663410093505451066346417375682339412074433229552327578024599872558787245464257329183514334208051375680253092305508700442613432178013194125894274362021047659538096045685861946338410836786273737846571776183431323570349971859748808069195363054243333626555602137099473881766122930668466524735690490485439502166577796918796927993766588310301983095189200189906806787848602490633180192747203444055472403441905560830871896313881279679120520172534960517442219882234028608209777207422493127380007525060384710469346365632875070829565406414466267712683197991154893706906073323998093675772117876822179707113884013435268993851963490198469553669446074365477364243251560153917951346108208688664554478602233458094428475021982004458145805399721174640062116959796238493677138412732036538153710414116057178775468737875380109598313091689423351886122759977909508123137584919281311095043633072780022666342595359604388271285057892128670392096978575758123928587037431352447347694945427113266811334504498643005014020417421296711643699368705425559725598435215926082005733855346839617538905878789895675219575077063716353915734164556023607864664379788506844526530930490764773385824731673807079246359661771496860045287477160182495093104456452355348820475980723295357459615982285417838399858957233897454791203229506360435052010903275577720073841169558110331059946832567577649664338109527100932797617157210975853876990970274889845770369334202018925092696217185957958918973500284749214630900887455665076755545430499831454627899501335859864535156612314993756751040937963098284809784414631682990838891277242955043833172227091438467641232816421200268356788258814384576482064232804292653040723324237476287910109314357522719766829010686359269800449120802717460375258660917116190420802202393262625656620665054294232811306314318871607524794867096922567762642951447756015479378562250070996755304971834214673865656383674333727114666132595504597893451078915458188492076749149052849857092889616792597266631590267142472571297594189602910973602554759784951705955878957196103495855602017543823540018488799571643344993344287056122071158798657271139963763942592858649903369811609158209225313262083487417256295467521995919266275016498800400987744288218969871335528573809813722797934892198298821267388125143556588686759869688634613300787996642720386304981893374051989994686171945125910368377918703860917279355975078802282818221211263471073818520309004728837206456660885462757195750311024237190748967725421489117538305843234112727721374239362186384277410482225863735671043172000645891266355283360278214962364139764720313925482609365725978831204038397775024927095962533909429534934772550237516565620139754953616005247056317039534148423763683484384979104346888779254597913390243432149494683189358642779586979644067223265851668470191125776523849202528781816197384700403315352050423140419803302917896424195946835422199551874827848004062965601072476803442135589331420898723617500359954880764354420823849471171410205934205560030102406924127699388308501937069133310605165250242596880442820776889294400638984640092856642728697350218610737604560199543743124582168817247535580915158456426710877855210515647984543027573332928660052739803467790838657734255251184317499784468915066022723408826931679554305360629069285696225483825325750107878232041921945459186080542371313794109998894720251257291299237697985065324640506138038418691588098138977655351964720394986020674999662410125115691304187989779311665638482381277522431521023108620347318875296409368303898922423583663730974325475587038407076993368262182886009396682324147456710910118749507613826989104297278173231862586438867469015711797291330428370006700760116084310919704036886754003483871556684455135927520026159938314883740331923354365029952456037067966544592568475235325938496385805837641172023586901298148154346557657625076656246266317775375608952239125587342712582888808490955592748397398628833705875789940241726415068653885548358713274442537073262100467995953853280524456452109903715379152119555515146225154916051695634968734731167155699941895691516899009242569427263147968072835831930526485904318301535662648242148072419294525557509247494792542296313245459351471177444750303359454795311272812933001150699132706020194989650818657146406529560823855421130309186935210565040664937304792319613240814827427395935049102928554801995708760972811105641425986516961355509261186676632868525361006656225587891962754843641238858162024959931724398535843766783359473300800239043884675941084155563107504640845864986634636967223287027351348544889812301944077950759064873292621205013261609216958415092016047289747392010989802291648725142882829404240334463495723834701208535980121276565191958730506251955640463955234323470827470274395192120149346887965300117752733740190859450158600193088517599713267880736693679556519357068324240173408600564673005487977592526955925113988354964639805702973380856303241096215168838438371120206713631973865887533162977825015929335047505496170866250165303460501150684176815460064207291036593822197835097848381094745112880247264829155283773863313554078573159385566270820546275123378605642273450066318571882032927395300020639468875528301702675179657567598771182021318250501463704076471101328064892502371231634628578514932115027071764029334118118674587452850905380207636483636730862751138168187878701786540023882396803099470540797713297902764639344208829235664809414799597758427361755069214351592502431969319931049586794458651860794515880069036445205355889589923628890820432662890145638845578298155936365514032295142253813805619483528039426770689875734043554316827930193560391855755641857150858034314049352784080103030373919654521824328150031776455635280435169238755492604363936846153218033893305545405368949130464801346464811851265485091060407857528882838031199196419166066015563644195347226754921866429041772710449208966125464897304170832150151429083175427506611713154481335936665532595990246009648862485833828115494769961700337522862243791694803769542799069790099006244684646080033020423007683916939452492893541856909969131960794429624949828412441450321447913757955338460387069738791837582622833151549452048662091223240046153121837088120528226038680153153039788118005384732769347555673386896201747200302318485193946791097207300311321371562698559736935279828513440432539085824279674302185374547727135983129272189067342825157876021632563566397274226426716779020600470085723961989287559436971343370056682647633988718777006366697715822016047722396687881346416115632211856658249310165206419043549005253609458067308313442949134390871781734482480286637445181298789312879584442214373180437533562014315848254359580013837381194790540933015936749887825295746415722578220119848067669052823893226324987374714549985169151179304691090480275393263702443046880162269901486147322721631486427612746214224608923780192860148325330280072092205942558385038624104615846280460911729209040393597105828663581108868842158219228228336569635993183925831426538019755574397300518433281202025625722225726591665865389911525083562605097262507184895951940070521420132558102589729178127433058034142451460600726257156858296512638593938497065077925249700447526491362815302136583324188437799345527190373593533322915180971704938984496558612685040112213342682657158226304142793985692646087100723528452331008614072938541625804771910502249487983651094404978854510451275005711500499126616802578077038670774869239405908642079811652036657023746193849621496975293195940452434147198594587447607174256264250874285412356629887798661717382231440405235646177116616494205968546022176840462482156186206474121859254203099414761521050026608971773758983943801071966504749083055567623240176557617780872939119169752147902824196684744480598500427191498218493020699822050422780259238562008767225652106138516955589318724277424154467370419641101867581973064456577833675462496235381094804903592654208826023868849524370490204594184807290066276900638439514619626042299210719995600884354479280817328938247894006216586714539233989895523608540575930316596669407897547315467354423248779545430921406465541667160326610814137018495413387673635948239853921594656132215671991531300336852412132399648963565727710777418552095696071313193104335813564961878829203954553153734219624296815876757286638640948856061278123300769953751436521215787600561602500309462854586116448842836354957271939899709861038651209854137328591343029771010396851772790226215681384118032078950853245508512000978414850059405191980449798837449464971643184116054450757183025759833452579474790543878125067523299516021758988394129257848753983942081762706937472324213214436158595627659021771802548928754441476397626018938869501540511758081432330119476067692236475020674896030353761845403816224783339146131527115071707835434083988559022093157686603353067129815818095520696649603027369679256045132631069439373205586704257867028867654955774844507794984486425488085367265420930960485687282336072692429787774192343037203263262509972598900417867392008315832367399986425867792427093561417543048523958358107621331243558072059456663419732382444717317321152967454281039233496874460491221665566589808502960375274324925040267904050130699335705049048673406090373739390351648264170676597687267913260092197262600119880858759238213645083746899603920764983544030091585298388893624484075806488673725371852712845012451932733385453165549933619423107404294587235005019375256761855314135046368406652081617219254052484039433186778107482184740182646953211393122228002509075379542466028793489721606831434831349768236415959019184137736261618319082003739376199310743908607048100323902030743718889987205522903043872954694550428875450673751843288224099287455955130302461536349547593597470626830267884959420920020011141265226398348935410306732920376268221209873554713226418718876684572238646635756845572033953600921912568106165662010923302480829253593337763615639897874454585789766608671653251096900410735335491648565006229309465749217254148057531503352982433744619078467406877736261453121132030446183697863618865644359266432475254015236458633075215824509934009553555094502237158665291174727742251149779938700041835424124555017679171300399968698963570149942576403738642873638828798266892188735789593548751995521545380710094203727606276404143030015344459804333446719317930847586392536134061754262521162121836663769264307129963550557349773602346214406430719746295507216837391853204711612205987599107743080698637834210055180060900784179798314416997843668095828187580835140570081265475211903188118466879871183217214469253882627914222955760200186697039490228060184148826039543548863098292716052737243491860563101086685393113952169407636655862159243692722740144407134139779637028251009437521770765634096603947243337573817443601719260152725942832743447643582733726124867107369706061338741684636281153093939041637549711680702472849800732632639070431720600765976438746080947528833465181267199423960813020570177755611523835626721953224750450965172219229845393954841150781136085038285742045109172964946581270801338492429395922189509396018020501795873673741956555535387733459078073997977413089022242544720067316643803901642541352440140688734848073527113538713956125691757109782172281935242622625093081897393533075505989043503842084984046791305136520580503858061111417412416251719408584778062737032013479067308983170912851300318496865322883348026669451454981023116636532623497758340288553085776924507748215342206830714974449560203381552303955576339847941686264916175236078813357762274189678139148983067246792530243848339450185961265280087327357732548191329298941682785251111091518100678055731921742636049350356049204933476173561657962250019306968115639129534709439872101835542278347288802786530664900700538985601084588350109094306537692569142916940830650288887487856586419668947529379045054069511937449971004908836062160476419978045528023277467075856572875142038819044885377774550023098748521411237181894881821918496901012450738191643527693976377240660503196996278978863768001797571421308698979347818897165746585740187074983845446729932754713132458231633783398358598544076406160594427766767999217859975505951753068248070249783330453936781813283162532921496893210417245911664385788747173570626427891891865379333171289240625902723784979836321255316472927421326163210357200925430392915896960608542033191038249231153597285952930169566156019048044433530188744505140243625906436182949824894238448917198323134483408617200645403877670732056586303855221763284198860250681159938043270999880191939173362657618334327996436702396654981127217849973428104982571824527089934777711695423788155957388465074800139008600803111812527629307992764085277136256357388633015879675277440098024383188199467556126233811397975658009844861660403589596087208379024152837119171976939684407673867169908476658780544936273036977906670578040720564344954804105011310054162050953320826922293325523632608467544290003254012481773311463422270807090480085092855968651926357722591320171080005434927963450329109646254623466799138506309115380566109742391752480406379495244257811022401659775352960496204289120788355547820016973346082788759467997733626067727021572788161515620738729998981399509265672408771873654645738603152798689661669529386035105420487023824862660996353434135591386360463703054903479330415647403140357905270618590627599499361818459705154077735351364704735178483577500745831609523430270272908369240021624611462290732460313402158541432873909433257744241042097829431365974598959962600443337250166614264895970162485002150851732123911112427939536921538192223737716972722063683251080344302837321220984633705865939070602456400601458980417905683690483173684640485314171902389854630001145645530185052300469389919354590079691231540688665698931350194530746744979315712006441300607264270595384761014963498024093637458481453230124802154728318314794110796967313909890663217722814716740139238424808716212988059973442815254560652795644063821342900348917988572176695584149475608008739262711014269974389024706338083342766753781549488223691126068797950391668735259194966208060074238681727221162699621795147710012605714002541591976103805836123936232366215132173169534265343023385432312781744983907857871659409944930628895799231711022356795018989904670490612267248966135945598824427931173385284727242139233844749185651494265015809664742262736899343756582659595861012464033980416685755112573418426965076362151771552836890154046396709525002564346283360812899205124708984473585636441914619368448136013504400677883908701390919104331001703497924632606354466841401567395120259255696589389374068130481698218021181323792705845987745376143120133694060442002033357564061250070589773475051442504753565807840366392439237834784106091204664217474956241376936327142406730911792235954008452326296960941788947508680298319231432412554590074515571074447715402278339836975827967073553662823664033773224184294410401502070045117770794551302830983489240541502452063848625917308895186422792511151186318101325163891955288935150738894871745255205792235595723609662631344120793151598542899880323488587476787154050085632688957573626032535874208864653201260853917951365343136998318921495209481228488142548397988375451059172166692515979904130080465599958239408855420543412103644365649770996385255725143875888737487472752627725325435644531542000839791307092177887447860645561577337082379154093138875044161020279531843438325206644255017259465025895697444119103340516643633804506768790241011392201144933611655809001870933678478738527737937285137894113373830755097987443527977988307161076075557131075757329330305329963167444297638386137131379599773281277869429000974431280082812895517636354485299045164208544743009792828105503009039307136769376401753793734691342881700867802529445026927529349961536323805739749000785975950959847446213559000949611129828443022454317295782498917921753968238937445918827626297341704914405578874185916799553890567029112559257085638009004260618163996345224194514957738739665973703423625687720681268269381874917059455336470919884243405212613602959825716098925483779549170107982719547787441073237634918447669394040414429881608477897126779333995886586630583786389648040983029032004607407802347154233201521442261089214049068490058794643526709675195225348132334105148250342319332672531218656821299810774263950396134391193742106644209456254182029572761782472099160546688676991505615221438610596680575380997649097107291500504921497568359713937455454750245214249312512145692207950817892702473810113192548113889393387902982116851535466406871229531166911729263402043412579594665284296748262921710657245137731385986729673341406761474410063781263116049629354153901923180926363846499090210439417514482364543947876995316010510950512914591256935988818411962484493578179476828661252383738316872236473758648305831170436477913114502094251370804048484740021689595088401823144928201926655162546711674066831643485392673138928521933188163639261844651411077101634935786032711880587134192052491924877700280342735338267923916520794767129185330163387456213864333452901121376920253244078892263251815307099983644456879952794239762528626265989603572158689112596454187730131761197933824953702208012456013173256629346815447670513074814106892161567039403791441680524749714596648857990922404451077160062349863142928918434390858940111801028468306102477161680678402239599902976352994168194156844543705544731412617695228194376100465721654490032956743826115235770713534728190472133589834908057216740684653067508432094162291772653087220539930807909222792245780916714143762977566665508056152006364644712552823872971563115257740168046633787830227110100227863141161060326206044359614920832233131592659889350867959315917163734864410903846779533183090398771511075287917298534182559459689925854038605803407198793874027334712726203323026630512191643317831195396855551421450077428569116868954551547415850191462261015973400924498848319626280043167443100218601656040225705649874870504354931845296610837568994195069758289003113179634156027975177908322836184915592595275051082417014452092911785519670965537290381243221959361210480925337822917059281661788095221215779115657147501370330921833761942740572095705807850770278524798615538302293540560159912212814058597533237295083216059202324919058251031070749861838343983642034685028500094171017461255454000270492441436188599380928106054152429590020410530802042667157425652982350590881682164609290485698298423408196578565945727318485134947795200491573827113517901354150743513501996106178602735720429816154600422227779904981088522572760463924480823982639407595956003385219570986344257224166451427499595656593858162952204215765102225003833728898855831117818148706034623989089089747635813631124642950145033996004277010362068264724260323956928042993172293171053590115349165272279759020973474290917292877828466888899467612889874141193461612113351699721759131520290408150508748564868061020537281462213306114735401440694648186062740441699839287457750399970387177218226981183997180450857902789652768489852285262967711426025649045812098452679201736614232559437349459908245444166662562542223670166756311767943751047911881012852444687974049674094535785755667467879081294272285365857992447570117037679479128407353728346655577462553606749764322837941821185177624505626466528586733967549083530585698540228273529904133018092138435280579247205304832142980285188027903112340318721672987259281265138683425552745199038587311266195473675715587977514888764037483018873474156810346548530281944251791850610813428768835174428449873661883871110364876526688652355000327847993487506675591096097312535667809905972410264926073317458096548915839753486811758201577230141081651892652957606709660715512580194076398298744273752814101184274147826787310566886265238558636979188471876898817524087029030010001203235163048371237138808013755444970997268942716898313036083979669751415273787116329627562437282965424230175622660191711305129996975054652817917999168311853045728691084423285650217170498339291968403820896905280249335655243597574052987286843644042532553302519891743248494000246429224903814967920832657069309142880248788039965730836439125182786120118435853667710028932952825850009590454248601139757578266952534071236258129990400460807793886046154494379721974041131960967682137743386784496134934072690394773720189606331116323731692696697985110007173025917578721354993464126667313067197736106450676506527871388577078076981746168632487452369910434938886633722923103844995091727464521428902676312864263916483641485480622900241556269155075141935795951771723175681907752010124141843888209332658419016399609733326933455172775770851514809696856345147215873055356791143347925220471368733936916928988191202798736971877845808272307257558266502557544867808359981176176192454106493109499950166239003995425647093721981535966231704979790343998549361537104346774287770322793546304578333280579212709980988171117037903310445265960953946182662592490867268921251810698018856977806982163761125355154249763334884139972199819643305522263504033449348717113871444829643335262447144377622047115730960054906724669483694589467110171080544621018829436382217755644264856690340227710160353208484758212570485735283124994324825999899779480966596246282991037324813586053195066543572911979213397827950071855496318332597246792859243264167100177055199422994908942016860496051027993060857351948576478435373036084942989183986854658733073237025974192351128876610636083042996421270158471545421437267821658372362939375928975220848815864314137640399052014935014867141412267401795439186077689001458133953298343263894873112099353736056345751647691181658320168554762252299531668356214549895219242603486589481015418468528112852161549445972255760894005742554925429989690475342167494758501966096960203189372800918532423337230758539669206166543831379696673005625685066581079738544161184221869747682859240885346032485178054156159603127240499073756906289593615339535292229278232408156140594628212210086495256387322016635375053476026202072528178419190415996232475109749566768128310044647262728239349457761463778497137108784701811792641021400695383733774496952697947970833436537321243891051133869950246370069072228937414952678592116826398046677818148807727955907199100461971941510339407207676737521668149079545670581367480531877544177253368935244357778572979587004922667446508800411818542625132942030401617008336442719839018850871736753582009449503355295876952207845195752363757528716065255162034115389479301046897567122582799938194117922016292585074359336758253622510901132724997740229366123769968103536309850011330462221545343335974857645223178505883665477357273046376626492828150237747489166104047906332719364059753738399558191759114290730693518833403081270238469681188838047115940999484424405386678956634115086006347893799243997237904820865648029148477890469783255792267699629718166431460422629094358761193558195437346076596084786668107846038050775661970889994351103058308126019160183686019086526269522009258769382317942382146005395888008682573836587227181614145331031968227636966319128754447963126409479458691767999653437829502394209623401381237207732571966990879167549554605538467013907064355543450310973386889538889862541564860619213710008925278134534829880895230632269333157355134596157927850575800350481510239415535302845857665683843058925603003372367344676724843159133994194869597721912346261732454686318402771838705948154632838628353730246089763318403176484193638761365051084675912494721177185599115272592699456778161850339238852469828398645590463365824583784836288865465164313442902305058203428079316113786963388795467854452875024061146161956798142703157037894135197561715390051911652763261037699812115001345604825263710585968196806895286619091439283486919981415046561756061199239049261329826037120917496930783262666920860351157970121750552312895293326048238360880043980811808686410164322133787932800026130987079939304210074591139441246479233606527180618616597925760456378835832097357387413685554154447748887620950845809549315792331356542074099155254591335309930180627034069572125772466777259156109720044745410227073993512743302032602270755847427915755255243306835776113999983954327871853974895850290009228243871834218159348387261235294417959001744669278825255750674218103839803143273005148842910941480888689270261479570912551772253108452554113140055836463652920317547581533314209940845659724193781339929436405482743846458449975282633296781144186024764959984572378684856968055913552886832503403277039096818789508637617070934751578841586217237418838849112033508214077551636132994490396217325286887097586643412617033768299083003005473178648463534400665405312717414716788543763049286941280768873794961475443434323965735390349074255343172147706544213689520166937069766809570759257029378415345512913459041245409987766067972763667713131660310104305444448398764141825434552760701930397402387248898134653474007099131620016464228719318897093792475689946339651671532006694186587010908041830650548454451413111665265859551875888615423557349863736793062889459437671376613798224517117261486811729222710944741242498753876288846359609048096527587586862369359001933649823691005591537292032033189392826541435060239595684834591841832891510949257835823031146950926573245913885880117357570099906790768314322016059386616062538112912150223533944468497242688210411230917826295907148244770649188690851949305529202983182586414768134723999015709217242461774884504883425586571877008166506046460671047778586086032711534514846831679449905948005653620489627614784959773890402374147111751293589652799345215522089246372852047645590051134045689171013101341847553045363298113742908129193473954615648381495294799738207111150390234607371291480904381460728179719793567835326373276214157951907466622461395139895543342130070545267166984338408508811770673003548131678022397683372735486375655888548173268666155161754975045452369324594887821117799609817876788044336215409546400525971751754805965688619618804210302295602714769515128285106918989139988706347698167586755009723375233777781790973620541135145774792661309271485146638302937619371445744258489763272055943939093310769460778548789614470171561724018401650854276205529696176205736111548555356642567987826224682911559364561594344593673277970183555654784070459545338213742759382189162098626000484835727053753494942269857494486300473812665068947021949884749557798212179748850009149041237255704467282724362772695544222142928577074215395878659298548982123774889272162876109566292327778448259074980327884047275424868278957824723644730640722860284314433033617486494951242076108252688606243638442000838359550735189345234973408107595499338786889073325490055329463007561332161823666001378852515870716426343187212929028149501434123597534546877667907566286926242599344344150992313028780625519000827604825150718558552887493688453874397388979524761870202610163284587113425796197849831534973179999380084070712304718700589854565023412330827695372919375501385206215663557545397741781307987288310352627673225878520645378334178265707419099049444790812689982686583144723364231036798582462652290701539974361491457375655250438893858959561252402706848756944632552981015600961450028243959429743243295193461804082803415063889131078620308187805751676266272150112774882461867626306447717872436435468636809899460186736228613914724723663753606230580647095254228765091365716549147543974853706298681036251634362360380940190045876170424175785443724054715774112538479507926560226295787049237201621445352627886308773512865389593533328203429379461257515433634335549528769480523615691248494878459319601843212217550203070052866958183064695888859639515647324861313438302430560328914608487089864181559404876393856834994823191527548964606659219258648510258423472809211777096269973073927665865364874200269009897612150888729056579432784080182958118215913106753988961159983207244449773854666733151024069712475795485948104838800155821223648247499900844518149172338321680230546945241792838009708652530472069084933519657973483984328979967895814674876919283329621813375568521865898582839029006479013336577869926202509125295964747017020743274179149233282791027561220055804477113780018588642558320234276256400085130935231800252588807910431805070704391458899687682747238970472803502513356703279486753561419380151503607042802728611560294214219799679336348038811030352577902700648215453115227177357483950149198780521680648945195184128999806510262223867415801674644382852739291614495244925466676679101089968899032423789339427003005479384659885881384572950392831780119382185839454267200001658257153706949956527531427731656266595429605550730981339987394869603614523975022650594730426152281646240527612763209079423230041340481155104745661073589343714131748834781567698295292392820815079914199152890951695746012248589788169424515635355149059698658125737977455075099143619385842780580513848378953490248294770030757590180347413626267721061088212832694695688372614318347125050246885428418081328583206968218640980037672170857515963661309540606534885755527714326752053604698775144893052631330434461033421137308707683749785724194449354416537806782442512894963181960923291982637644404326994587611239692303213219284769821608381684291422121739906768378997959949210437505072765551681720248147147999235582225921597239660737045998645996701029759215868421463556389177881886929070010488821135679965141917373295954914009807593771011797081154309028374235432500589884908761577846576756880335362383293254541173077471993447846237104347744585146979298678874822688984748739444197238942357239370075383252722355143816652989458705351019732051314712307879412458624540950453352754800480312339995249208399265327424363817808558795398739647903120973556018379310796999047513693007810335311089697816218447456630600946364336731097072085486993859204857389238383412390384385884678868314191254798804603237879400908911033346643808741815300683013044149579820786842630134717734372492095378908431141221774134506003693065381262723137999694500559834961699914507188764877988073141569247609134346060179983572478015992313539462130434947732856838862646916919345189901778953541010721260164112639167457407976789093296725587569144041511012484291848122356033893173757050976285166551275979924362273235933186168679077046125231582709077757955155734864072622686116639595687703648923610322259785939044321356373218812908383069511083015704372627702174652738022669295946961636384864977078176842339651072522452441146951623611656366506064765631836466039934152544123061552134272888487188955678837272878696940943892230990506942144491442538201974784734304958894732191625712182375313927192472883908130265393770012501911411113169473488135558106505374993842664474455583907921031168062147203956395840435738912119668582830779793414429658071639692430592642721548291791161632140474363619481803353980621543153708968622050675225481978144968873472823488159532692316468479284502952375319227285866417846735721923579775070191503746460870143267831270155934519749522250645282713770771124011997974994881131194174458845513622778950932126794394501302461673267575713585531518488641582736546264581094093117252181447523166038648608925839781308477904177799596761504541755188824957429331161712396459323061988861749626046252661774245839425852179406430657180942641494435819813577412222405099070573407981866283733065879457223282050107990045668574268755013049856725498320494672721867416365559900810629523863415663298180860528112228129381908436424183725366856147013551939900401610904808052986373635473002057351671535748500575077912537042929327533158748680983062936894608509570750205947446961294902827393034905855828545361263281151937675239325033268199462468937212234632784285113958792386207050972786792798357811214528177069001786812770688239730418056055733087565798372502281724757287160524377192724909959040989822591266542442936749841158198720631771170839359847689684227133078143419721564086465847902876750287127605026409773103578285554999665159281247240221742265591831384123428778501799018189985715017019799604096357584934715982050437431801729771753350115873787514973357089156982515312771060575856665140435050241437042199833599958720394103022851230709177694163216262885162244307702277801276372515665071570538789084750928313880564892601629717395644101971096599503129626530948525894237022282995239726290677589782309034026706575988610702747083469218385641809850622673719980157493476420675325661740544784964069800785169646215564128600514729127668026860035031724994453750977311903214060763188477761896515878564342328101142472279937621678073122992558512434055832442130752847736593915535569728067442315068444827669153820580391325088227335218864698938290123908455160428907808399454866623764165477868449066654576098367593074599135223098518779543828757828562278636036794080744260023143799861788142379429365334968648630910851113987937522173669665062666024752454217060641703787371149114319338502734895368580423504852663171295918678348935752041859794043214423476026739420217876262476113691110926630582473135388417409936826335548304994472315153241433231621135491042236137243701246584812660782662358540953277464543524891569802389694553231443741004459611441026947505146702447034159120526479840890240827522837164349437663913278193534753638575029829619578705671473618199932812879813062955790283121709603357352918023292437960953285265265950212487186686667739541309769487699129506756661061075959071033279247602478943257099951800405292552128940963876386424084609045634999987176891435823486996768426208671005023142507707580948580644427456828434124603967344086320148313674348992739245436601122379014362816718730882046662634723795503197344361953747987940728331851575177234604641189329326315171326840634663577907535357227044930532331164462956022587968325958998457976507037477671864540258799762605107534392647490642436794805372722245498990626964839758014856159940921490600971644203276204612901929161718659403476528194235842031657185070923511594650030039835491987175573495704936378183756007624351438675696625376132393458268079927187044276881334155267575958980818514018686979262393220707040586354444010590337712394539077384649343389992233868743075609019002638055449113144844613900088114833645304535844286077236822224342971579728305806225061211487306071759474347953278586295724866322091597574384524994144198100699847893698112332802924322105100834907475947545699058049011733734058785616455809812540921489361643123625032302483915095881374475136520724852046356950108689194220493294426040008316633617589081638571485015159488758293438989911240297786404239237315172045601120918781334125548625950127370255870944939795448832553041383807649433105709193750890885458758775480994771522000843874362947167614923272340383886433287437261440827326607266746379622527542533354918919329668562068057183985917636760480973094677509656781545216490699357324387983563191544931879981455343525731382319716208148997481648746986618104560566391975643805461160050151074869352625980431196877123794971086629269217780203925566917193827676741860150885533025908517874565532862809997285339504386757393820341070915789145623080518383250433293357983387558195834364993469690409548671097897687890521906057030710911923291734919848924047883407550741091546140822981756093387977214325466370468284905941708319097036821384565667640714490686756976384097473491431110260497821748778288089871702484738408714086934006641088808746811767838769905794180740166934879223484772843456649997329403213279219776356737018447801937304943129843661729923395362780125688015768954303953681686007409388321539808611150367064752423143422993236825434668802076223737625992141718283900226775814233728617873959957465337635434109060688029815535205912460104476776483205672587328739794008623758281466995112821242898641284671077814279498917467818938671942654205501530928808624593604937287329683243568330650484371072637681324923112029427855355477289631107490182471379954605617625452441130568607773068737275801262709790942880030564965890058906015381754194103972451620586168425890593377859515019618362975196807916648007697728919686280634272189310616484473408810874158505863846437633799938483167609759871209698898485712962546836890554625922256826172780665382708892843780220632703091241753726852172209839432972486623823487352917372230773927207473139362134997737706509312998016125245385309033298074624229599658705532696556660987906899414273297532239571297338777649079263248778588506730943823854371619192589122077455735029272426549955563604670435368786686480765498628605466490430406342228678544739087933917244527567198581869051732355142875446398614127108831922406001545109869149123984351447195632031779533806369153851848680521119148157033016324060683697991257472705321868002117698347005479414974806344105355717955090115534633232261848535530426654274296774474176844420277114041874049035690173459000338498456205451200791805624236079404024254324127676895380625226629799658253568221189474627259033564117590899193107911905576493264933957292758134548142807226000328204269845865032137192001792975881602506534719908474224822427892099108891961421100941763839845546362634284995723603804337034927840998554772717303003054337266743389470059496840912607310594366152405074235583627475717192110654723626548310898404194593705880706709835261405642652850789237128069601122212237790781048963640677348875144379126759915526224242968080163667162134893539873590436246531050741462587434000920731791097391663111627777654397735542809077913395306634186973839629272147114179668106721403875947945067774312538123471283743002333714078815486169792000461926750076474839774629666292583441837454820744414321604768117923060708434038728073233769292141959356062913501784964765922933895691059983964163467674211008040234706078996560704735356200875805835010383110733107716753125505579707874841177615283938758603114475840209031938097207207199663534994719948994787331066109449418360625001758586223235805375038288136016649114078118348881364801955920188029976707324901080880869340722668316118641187080535597142002173544570019143475619497501663123179538790088022810519796817201919648174846085498262451147807705760805244238565590657340980254235209909107786217650327293866923466378057330392042152370557373537603884745282562521386241866556714151197919496981971655463273102110872326380634011027713981333888012243269538261910035175791326612879793806250641356159960171500495236420929584545387381132634828297502770058000216234767562075962085469991464086139574329765227274932764425567128992583266006169422187870622614537098808333813558067453980201378351040211774232696791737874118157104187066456393293784788607961555945825053595016812658460805038596072431206514116542852765842883414391637301215861338011814598124105820093468228044071586091582206460148964342710105045890227272684083253406060239958886345001247134315138149737319852434928210993806306370606373310828724209346248641723187161833252216705312039401155633990533815527167202042472412226844523345816600843507710458387558242314230059280852429388056834302704980069670418732680294769764711517214079514682439138929980737419251560634554475799385815228643986168422668652100435460376587426370955390100043079371543597804332323123189449210472711775601453503755695080870157317459655662547171015110541805841686184302442598189627938839151681157689246419144514738984222608618749904289712780304738704927901309711052988767485441099222647180884744966080766154839739392083850688800145236639684805801194984800708137646001647768647859181755526651312298934239042804317234761532809660661652198611551742650134888588037638776126562186598613241990736500961294558001441971906571445462067435454442901813327924086280319129658711323309287397429323635149333059543732974476002434725623451112406836398813905694419703961241348831578241130851556855119809842618309895219096515015922834317510318411516788915323205140775784454828079420704699610601804817928206009181613232144537340337004959763312381275279103322415024988802625773892266780553986567789041947465817080390723814846257590971532277263496846278143559195534704292701830833903928876622026467941426335822695860664831609363099811102996917434115921423355063187401336970313505426539639279932593578128187326394850773921527064488527198055279453819767773100253934437960173015824962989673174097895161736450566204459501110629325814796725008492282772849681044918184482761632811489907165992465812019924655944828291387937919225256265939826927833557601271256330167965830148744355044616071970644202348782944337307342547750407640789653850015837232626429600841031745524635611338502580226386015517804343274025015831005916230441716797441098041910408618060944453593888511200770444988048696614223924475636495966808710279532332278179117671833992099232672820449937960800427841706644906756946957586866962657506916743788398851237267481458489001717607818967593520036029068874123114091410873444713220889555049334864880180382218363004142448193370450876253898391305267315006004086298333946643157842594892637742950924272133791223410373323147153242677277288259219941939876541809128166536020792344221697177569016728174535856202369118853219315730573439259546694719941733506526377211263410447788760502401951973147591003766027756474811096319795639676008202152090065252004562443394489883575745858927536324535567364009360870804200676684760385828021071563224596146906736817034828345403841676328011676007661756194190627706772857353132231967369165489288955381953648818233411905646980857533714838719256857137161838840209612272173145207938591662779187076132315572242930168749469281016080571078886728614824435844675281709568245934517930449787279338000609857514997281227087901689927700772706134441269176516464648212793102011471938212282638726650983239255156743348667752997987404857469278591677827647240163248996706651489292743672853158714457680962694845566981630810077637299379964376921298390846127718097556106676873261187948230348681276378547479906768506687773378567161959699656023282161491891045064237462528211985053767620392310405778392314840499195294384305845304738030517133075753353438285810359228279021020263399214290822826558438224543122288860562328383218688823924486984363775140026204226303476035237442616420989734044304479637493362626642529436141729221482935478084171028784628499526390507445833878912897016236884606041098324875891253816207139240257171864608820226820074511372350145021579821224170848643179185403920455870455534838880057608947575356482967107676192568845744253853651509509822654789455443157035938432641622103751231453344875638794577721848534519092871042673934959984073698403817006995292324908693453013891086166077299970086717841751742415809192860702072858524056093530321303580570337681978236769867695583488694756283903658969592583655745194264001490961597539441875065623258849630428517635652798083995858649966462106548396801835048894241324703748916830479817801702848712209955164295216930151810689373056196813951173268896757975845196823889612823985374654351741591814330792029743725523643904823643902765807888798942830973145162567097489943842571680707300614893391934497931093147747701716838290425701048066673240542537151166876349120436005886566021553746572850222385553164743484463066033834276407832129654575445904903569237230384732059088082773963103942223973337729387011282334723945845084313689956659009825432168169928768527273541357089855094807011810722975320849528606291459046609947514895779087804878931981923470155764383924923156049778845196989374667770505694784935722200438130473190371002717187426478366347134442558943922638514284179213940246833698531971909742883328052030337628297894855016743591973037053999458591316094283408759010410504805478288609017388762017956704122678285347271826319174095963163659519344547464306605774836283553808086545695077930456130571674118083305069278942104285086237810608186989870686877218840416390450665948158518722210073662609442239915180253203711457081714999717434206808759895792760678623227060150103265892290365063215373336128201019262626382696699155526710249653161983744023445154228542164010282707675373368003756621789304943633987587083048638051394242612585657310752725065941121589249702728196269933835755695890391900001055453986602243827271191560541156825613342274265925246572007611316715907952076737004084466951361997493030690186467052057340717747814830876282674064657134555852246564412542546869654487749347036852158610467029187109114255227682148993579737064424099261329465778560706480190873575740709951043095576023475731567462010173918865324948862453437699630262274901144915910814801347615046906585862972239857285097371006481385497099034745695480068129203434518413969130736831509417160376319960531878264017893067294977730187955150552464594285723843758231346466116980523678296013672627536009017331715615399623911287613013216449155264725205608908009933270721585975924134007935070079831916581283552224964657511113624640362592246360896844988018693381534975641107002293285300612126166580700524324983187368066629351895501772547387433396588545510337306221511624707963566736943762701309810318548395520397739421254589597006633561991838919753271385401393937520015445561436210875407831184243095604097397905697976575860882920542040768912937880943090371386049681833937132989977760565660678840461823913115522924272823109709150833674834850788052802869174230752618590871808250422930899376347563215671887795818667553006830408689890829051078071501797358386237622803243977324638379111416977130341949644457011425137406324086004316873397283282520560985827652798199530376855357885944417761988317571978956981043366835038607049506734314257746874355684023950845980558388395768916646305279803214988187711371252181396111308973546491160807182781323579305583170311326937912777737103516793502174989116593899712745807922272666143885973015843622968586101810431560710096159956142146619528182766666221002293967287003719869265945380294495578998887517681633556335318485804480757931807615392318125682381152297254096817142005115011033618920898872461382344800695498993275759770642278783877257807437732422234187418391476097799752234758032317353706022548916590424475842395777839668846138028906785058969595573612302672047772255677632104003012088878695548217816261819618680757399908374621151934626102089151803841764998560098809712896901427238730936360309958309721543362251617622944548206079770552595848112009901031264431931591927339275322990752162081398687420135828571335704809999769220220301055599675472139521134358368268627931184684583198457774256579308115743288982663368738400963811131890447777442506784745388212527565608190255484101649533466106763534111971259473668946054979167512360534431763899585164973775705681280634228788807093609235505369588682470661770080007063123729381152075764470882940410172579740614137986071007886894090676307641721882171489450661581684797281730300510190191173967889366489352016903401170011742615814711179487617973409271855031392455967096303179236923825972187281060694081007885624683112697333665647410455305150287872899336335187891039154645134916293544341390942709275435615431094149154872753553526965727730984136815652123759954134823426495527756778017333772317178274076186707604240472130976707398409229876209191581364929092380598992952483243819014220604529503628606636107336457086685407468766386932570191049205253777616378775355059913715148707027995537752869483690468579116002686757388405704416727516384188386241647085690506719951965650780620153037233542573722131695577719315201012044513933186062199057310322310993195222115779308132113494183325512985223903422026569328641557128216965351143067098555200061298750083238640408883291454297001690807057116149697362141356018302599925007546762434051384808873484685557323163203743651189173032148049825699220725463967362015016622609429641812340724337030640429683034477776087009724517328786549198256175201907124466205520968353987143688974467656726646621311808651790949514279822203288407606417965259438379757093531911663266925566245901012832498181977910686048683213178992635848571830437118950138136293642961563659197052176995467099417943875542755677337217140569741443212947797256145380710663141804508870532237964271528794894222688341370962197383420702340071583455382676441472290446741767368149549089758227680449688088393313750984704856273918567553578023405249325078274878062466931963457869062758011671571534431926596487927018890116293229656923380689720472537489185171325129231540458126492864277326075372359242580503404894513770564027675604919337131659842866650989646030038394866171169597228623707003306998458685273302253311457917659083157003493377863346577018209249767915168973704819483153140364276188624700828944549617271263814887741343965285765780547141451005276200418102165120147466241191942064992756706436575560311682997666352077076418734304539175702462465124622896179550482104183219742149117595315768109250539459713516973058050248140189167019530415876350286056642051849006765361133371495646742219673614963959310235943749583865693828639294157384342780646919353540303671308156550738558474194144850217800123028430351789932297152142614723679147012733397754311648767794297966346010534768491561172683286384377573004941702263020374154086869167389507046048375972360931516398662519843545559989536402848264648097228746939552541382589616219912177149122138526382749971717188055844936078596313375306738434422962623460232625406058505925534931313766720986836428913970483377137535174506678479954613060588187043743644521623620452024936274010462907556058248993693098166489491356742602353817761524002889353397367089724441257141403897345085501275248485864299414926366494145321468095756579333491854824639457389599782442208445893050373201508246510488052078286473228564464835036501218699765816057296259541411240515923155460050229906981548767078916674503095235707401213525178207282177849107872472987088141709861245633140669274673967293569749108050929511513528559438169763303904869781345237637343201847437479988526068677508599229880142556404638440518933975749985767867408904521367470179535668555958934553646184586771714028477724704163108701235176634286416807976396791999999695250272061310150738632338273793788646176332281824111746874237565557734926878475393238040855786673768648516902664050684650304337298996843176126808220229929879954893697451363596660724033241456890005434941490363320106269909678143131173504035095357572549458951938285120134186859981109142460042120097864270680215664278799938249446812843589929597593573770650552580506731961906866656952650975480878657989210871027076165174257857418121393899112813553744750764482573399245772016498620642311657153680891769128855594451483787767648879476783223204263674789824728282571997635493596658597871582726806563208703746876642517256349803832354187570617936791239430274535714200653436191679977240258371456767611770884404359271934931943238864693678066483936030088943559379143066833386962858585807450611919856139735142272707584237945671151725859788009449737611389676453902584597484342200238791928280371252784986250363771976974379658416649803001750128324776826160170923362380251345340332050413284639917426634026306522390546802572183452648195172601299797657981639346000273603021362782944131435164484344595174662415812045330542303486913852922630756339877871490726079402250371607607321583517075252636991355275679365136726770891658847242659782692220287059101620199254688150814552666583302515501067133063973943410954488944255734980035895466319723301025613574644838224686561741102751288881799807608241253736576536494137992584696519436297987956258220461513749169045596976854701771007912628349340838713992481102865502410530356199999347376036175071273538010845758372586226292970421580069035845457710231810535472437770542072365431506466906496669235277216184811019345249263420848108652574192130589668071149940868735797000333897138092721038148397040383665894801183914119244238360634609974823836281729381354124833197284482098714808350212495148954593683839641313709279625057881022884961682581864442596178910485109044099066815893950172830574961745283685962765661405820213742057160820375611523156248397480603936866329688629432307570131810153614093258170965819904434445090611669147841910463405088053448920467156209240213103674932409422705902354855047566305588191967686629397126531417577132975880521455146126615073579371059462899626035873447935512339872164397188021695311585409135577236948490141451592214325089267089608115838811164958322713640898196455631563600579207816806043461660681297523315897234077719955269823014595641135816114248247357339460159911268632143699695506667570200230501588287424790578899328474852892583302501841677743704908187234850135420919530972017771702938038655156513482183135386430499852165052433075993095718036558271313140075458713451353130509808094503922124910588428425408177024943134129549873319332828048878594164320520557742566986162038831819476411945388891014961593788737115585580578744292331286017056557985213889420691740667562291268670928837409074516517338629117057058474534299101375454687621415620743904303913962990309341253968748129289145059892344248513923429965876947928910189038340019426929052183130041448236123601688857925808101495315289928341614247797874307454733838618428082295722687052344597900003763752431872045091960957381051058115234273118275227143946658139948602690143266674395752882993227716179666221977764058995721182627195565750200017806749759989261545022265234683188803766492550808053285693786323586653959465800244480627470373862811587903686803902101837904452540418991484883631072822012764793181056943912394753815832737289306583480969064152853069794315496328271097937668701808174568241206036849714594179637482680270218757163926252425228810400875794840062222879073140147740555988350730674829884002088411370385396257135360000577541877102642819399836952099475767134472210374537094652622493130207736789883235328594675544772167372965814393270622770290380650142767509249530298994113734171114621989263312614971333968348659438158659872967914200194159546777109077613910241943289591218665580111871082590944187946227227815994933825979308035538052374704838063603080547159346362177660651700881210779721455045131185568684825684451285808333338051131651069854863522223792132141842481587059944587979521758705236937613643298939934522060800935358872304655884216793102961366144009744032288245338871638728830649319030197966420236588469323799456763318802548732944675830660011550094631709528902373949738805073492758964189480783257137148226184407205120074241288299876637727826557134678598057720290440964892472365602110719475148096996565293247268018355445448135618949832406200240251807632449832625466796346465152151219397200711597881345396557556877786382317908149129499044039439895895316490437604456129447497266827503857847892785389794100123946216092211517782023074255632271804374410932737715492837140130221396365307839224211287504445426187089454269837919523362811175301129278950578614584284063812945360379708391385493533409469976013949620225414338915103699251497831411774891483624183341256633153804400033034320996212221486888518894402910618481139752099713905784311717348560634105276447099390737184286683538060994129847403573899469682203725008176224986016051480047430498144038366843595034668120584288881785619395629350496221237596119045862398564144858651232171202495025097436551513911617607320378138273407134929445175826830500996281948837679794765423047623548749161967877452900290018697220202609940487336115688109950854719839187724149930165349622353181985011278197061079176305173645695030505973130299455597081675284899847202500739131457964913420118656551197714311585812586586903197933305009695289897244705743846523692918029652842615991479263192965305892314264147629320306043661608085968519204680427708106006903899640413999131757146371110369944476465859686769708696421455210702325780986738650434095206941924415240557747665264242508063626859472892776460705917134708513127094209285779956546900408650738797231234874426085508361396938035151518146227921852118469756446876596555199251821204747735480217541455062472826926118686256059121465695476008601826063773131005819143361459419936827830361764357524036118641543289796952450681707745586576490954941190859067878784064303615426670288174925341967181212108376495009989518720090104857182712572513168112757992812205533430003697957850288666822869210659653979704131787549474908620993374061036657465363937052638444100401727721924966144316366960092620307210674283880019695215031277738265582140736655660852925931176760473013646841610387843429469366476484824712667457393405089977121957460493895814668023849143295713026281093821252530238926613172813208872407619779550729974842106610449546599319874669317426520177089472288347376475020523594516089077378332521857424066726877438559358304519415474450926786819601568738469364459464919183545843078552795007254163914320228421687689356615410520115991286259487205098629747052094799311243322219341972260186749456571876588508651192262575078638414807689585973965186685338095696500670606158375999195054980006932397571642443364098777524117479875035019223276952063293894355702124659344324130799264523813843396830496034513258256304948395175694564304866258049512031805889281643683591581016480124308867582352688404399154108298507569507443211518527349990534556140351863676066013071146648225913301902494189782069622297713066641837111412598503521914347261938763746653496857367016148550536572747225815153539129751371321277498313260975120725731686366583882106653443631499781565889305870793430559569235600378854534279191505905375880107325351518304850585512868611737767207427249622319112783240555052897011582228434172231860946184306220757743692175067362304226270558215271625021683678740845258365144590215021978476316249786742518966087111205612255179219730594111137059294222704200872928811780915746483703373088892652763808133066000571807338104978593700211256981658481416088455417862744209297585245417871021941245315896343483825378934040259693252438637614397560407496933786059908014323548022179635808833873506199129491961921188160357649178687046432358108652399550591596145579798185554555533621675517746102936996198383477898387846225263479218776331485318708973272198386539076405227097227986260191611830224249154663091487979298842681881154161722530090592580629435048856275915441279946831453122953792171943309419291801358403270511499438675448456950479886492253353782529418718948579590046195066260326461295106417262830166631826393788691902262448225852749475898175631060518259650182558057535824380578460170294176526516273524037674328614865049249292526175923898907296920019029321871660527289664451944187931383016724927058074557410534468743174328416281142541950313511746823087022316793403064379771430055307965193988530506565863406884613059229442528998639416806656335003817862207902145241329269015735481360467971255650282531556215643194434254756051349938084819643711478595769769217973893117634991750793156212101993863009535480639646101792364745527793119512461233637095024081415105621620899052332851535402648870456276646790855184179389033230045709555989417093097809983076668285583958915375311950509224358399211077249101292040953634944579592985401329987311991923093042010532669590437876177259152196324462143136631556741351220039755856453037263981298249052332609093303494941614743116690065555557167934887980506844755998850993861300331764661874852793300788288991601419558198095534329744617616156078399648386383625543804695283722577869388197928306478998476863110763117307819796352215845661861739902264333121335618293942857650386357777246239620125394335674836525647610289126867009190042488574009570509576453057078303708785795322364095356522106607130703420438014843723025662794319456484434937875079515397818865408428332589402728356196550518462140221362130645887572416082332025789380424562401621857526625080580746994122567032342410116731998051074703071828923880097096374102779616237941838268985741579689599698991687018145904093413265762162729980629126180209420308008344259833457576703914415750515003189646366102075338373928019283147410037330583993430563573433981248824666256831534928121510491008440877190852778853933826712811743374306398229241995581553901449074776801046618246948611362537998540961148264076980105902768044805708671451623596865046740095135597776571435057318312082850770803655397556227390740491531853292989632482618351412354908083730159103576217265607903842575007783824769894940593849567943047256502870008198058521599412917596138301161111458205930713325025392438387928200823142735203886246238646280639499266980401274587510213301138286921748789734573076440245331272761387516297475100500379793830330427669865423818224343514412820384651095288809586710831478646073893622675524264614946248701257256107368579626206615761386636682993173021760619829956503245101722752201750207288035236893506647655287430212554188937330642151188663646238489416798488019814255317446303043158181113685449161404815265705399368062199011748573506486598321593030313920386744874080472037702433295502030227440738766146049147439096692749152689935406451314400855786110755719495448798408988243522638416711183047870762002968214557775257121606443238520264492893934805405841773875481312585929129151229811838627322705782080790931426889901635800144535268332543433199555607587184895360699051005520821939707095661153077831236497522119116554507096324474406269835762082917085855483132929064659851140321340058302284317414908117628097331529211100986178858525353553791543814389329345924830076039029455318272360034322943888661829465710617618053269123074008283556047240313268392204544322220637585958731019977392142902204670618965123462432156816448159591840019648660530649358125615856421949091756121034071273631946186064502920862535698495331025881905897033290031324288500401222487179643162579367126000485523774581467930780632347985944587859203102922529213797254781493351458082249926426098432511720348167525596569012370269384211123634214280674486200016567863448373605850005565990851039197982335945164547150594641437707208662258014797549431542126095656475089376791389076490727597831828274995652468049324224249184959725527578846318996906996594939398939734239026707347519715519880175089138831096980158015392250637169045696277679349424383833249400641853049578961049835278120453344341128300085563480513319240670018825199307996746588547162703906652880083166226016538113021513049884788115912247451536359000301314148811380252757770733814961212705150101791616468836706377811748393905837279009052537182523855314500888122989124315708320900417495058617360432234600476130601547677523351198395191231006662266211372916964423913522613591429371790121679603481883151238564163369148657501374785960851823404394279974888430791613344022944445619765497802781861994282501967494623051957971824983629746363672815091632913097811412370355944220147492026766128188824916736774833968531381678698005264420397246997283249897247615265554670879508800761123112530610179944897458088250229732435888727711704467694395392600977285037606375620497197670439550876322695174102244657067148525152005378466173442844279132123185115970534359033377715940568432861225045155023309794457763423329950974074509611789828542732774300534593370315219088419575019864468100348012896409361311346897729872232606275318126932656916248220235548509306714767044324911927005287667662624963962348309103561029253173881126292789644704431651313441702925084380111067592402893120823540314647813004753981757440424500545120358007941170336977677299494301166778242741347557162338226008614628722122244630817546841581512791665093310118296119035326608215253733919858157325549554786593102071502711897541147504783162124696104584556729323261555417389802203818081587744945044186365674781260833831464375302922754060439874507117356411591532602793080186346684333024613024798044109704474189858721979192996905930694716355657420284253673377491155593287801384204646738518245512520114371200568403458978257807634520427175306163523581846206725848352423244110948837144200633498649245163639751280675952094113472682221717903410556153239857931575650149753453539829059743105737861221840979051879874776467974952438225479691547382336406170163905256519326991667845066254639738522170975885818380089621132238355134954122303771855138478537494619173797012245575540068268853516567595796935718321842584580986616589891132995159662394288634447066418028224087392862607869939033308494704801391872321566509834796504512871100593846627803902934159631093786423761245856490237488944835765407810268672741471818238804022309471782899198087502137260524624848081218379072617373383985058603205499915200382982248181025098740112188083481603294384738835936309532006574534697552889265469436163309551175025212047780262149414681022451856579440237166855127024340102124301464720083528957105284391284704413139119319637354613651678349204157089804205348994552878943832612149520595734244834493974610633525943721353657200136216785920154042300738252427885883913690726633737591898035587195175113399124336810313160450421552206995004835185388542364974605079570687699457536357251740883645581290776610804295340471995721362717670337186238538114161522973379641939594361044587552137629452920173176743719151198501437523012335823648972902633688911923583346416438362663630108578860569996686063748452242375623293608468296193399865670130193894885425913228676757653956915460819278116291545531306343635109991099292188835983266207331629814090673860193279073322479662441944978659175457576433723931783283122039363784525403571244732907984159326333852156293493121858948805943097906723680242501732945864271574304273418889050972033605947570266332136533531699973446202778756013440136034265605668470595596046178381669978969819066343213655578289736759040436504597656123394534936948641276903746741927226193722218098904099241928007957301127474476578566945846299177449086311504209214610009128943044129563577000279106210101621181021050238225300814346717622488849304950115361339986803898873166162403792515196057634994146511940088656175138204044119298428332403223162055289983104958409986978981874443822201918404098629370327580999928014221187235335268502796472037613812247886864883825914432543066307769658276318440568487224468261423124002247185661768656807790550920344126106003497079928166291217501697461053259431544290835864374764817191422243504264560132404903108542053951809682991686775127608144210905162557796424189330251532428714173737058887473584319234140421304793301624662797185531512565650803180778736669765430977175685339323579192313710346587374148582822416727616689376640934109557682093728373175615076242525779891245207812142329878329545624791696589498122257444792989252131233313300512381794923955163935856797898530593848970042857075072148552982563521051355001191045164331060199727257682710249412246780212796244418443279428530697177168316059931727552155269369208993920977723100304093376532349910727297453412128948322301687847433233501644285780194723783733958585473365911880978172639212895415593758428578342750692695617754706430162770486164585070330296020438153974830979324428945001211284960670605183300430799732884090365694061032508811484180582302360017090562854189758096892652540124066464754834052225583747088717596233644544855947244602088407500101906694246554315761757270538749584251747341017857751210688127730180417119663496068298572213779598705853209532142517293601278943200331315972645837390451034912656744286852296460617033023285620957498213620790164583845210748271391560709874819908371895701030804188583743217002536217249443380682759353765348935041081126397370620170084623153626443736948589037950674311594711021206744842187041426485571102923577654166094045405568253834496354859206813525214427123167967092658159101504705684902341080559491153850322521944809971330764204420381422607285717639040733258995705023303012959700160098073015880911981623934509613102887743071574918251670369343869981840333173549735563838730198860012719108781144629493631899653218455777234235291769864844518541320242825480369222713430013521865386168048229329139370956862042737931420884630815963648321768361070793275696392041191153397625939503116415430711377561173355292040878575031552107062842368616198615591210496277425363204776986730678552630173699866811130325687155943135987987459159691762770326360347965397443156527788636134976690899291934588512976644260964589360367006295904763113932482429895866812575222649008716300870896903092141079367002650402563482305991496351458930132568095476458707422782058691763712577547605145292422027395997840716192375684618145124413001092565032190326015190107291490088494315159194392019783700372511311592243334774296881976163575885934167754655773066348333425740311664150806890531354218638919007377701667664857042090391299879452713926630427313679328185730318934719699921021843431615624205200676757352852378356328251113211250406943290670371108435293048435278062499838721247950048115065774369747800316420101665715301317257616443004086764613316949801258463243073168700622561812951635529071299454807989543537304988062735948067083814831871365790241222258931868046371829025474784763548096614602739274766341121086186144894544980325540862972269546414920239565002757385081312187355512433921120477812502409644188452215420238130378612804649430157311544407499516302921987987603057284335255360061640173762314415253528605576250671613283099382619938789323602665517048880805140204317272756303998251164332948936547200242696981754804165675377951707052702240401757261145821622210887302187849528208101459792904150980936628059475764048993550305073715537365214752889259247406861974993540491171303419408572486707493755077813026663808496280335371839784817460377082890366813102060115237536778549898130892947696589478455808052705076291899985304203529330679989457895451923976493958711298683496432329509021440629580252096849241825576481748013424733236504924419591686344752162638664825881657014297298025840231074270817084886855455707330956512499862008123721657948685357930800870570431061967627671233928047232700275290578500376236793925152820767028288833077958098753719152409526975586978508787580678638523336703014860035485578458065894019621368770301018506074933190409527567069814248284328891405705073231310084154839816793731587808239667838698336852205250177820849697901695223271979833142922166233778268255775804687661289153426291529959243799516856724229613382524414261217786072004761708914384154871879718983521438231607911564283646902764532749238566204686874081155300960333069150625134648873436119537376750842270425486818527591261485535984930416114451522122799391296713083011432447553800313328797141124190848808884967656746497383432439594332759147330141829897939626747993319540630081095764101581517352921506757836128399051767969125695683516243642213689735146053612909141990058620155692313477125353758156759676331828125682486593831294477687428800977666473320939999078702683158886425954483130076075236896216769233590608240640272821768158471318203068942690171218187115586085860662377486200991806107921758876707634667683018605707138836112216573348769412540383307340132966446160101076431684737333212106559618743301627974012658712468972939480235784850451250535723177305231702880550055998777290170948748124475554831072556492939159123375467235037742887953752759548489402910664917289874545777015005428317594500346920207402145610734416112813014016006679742926093905716220142605129694069697411216415842121237952970310337308388846350489209292475884986726585872879318103928645684685093444631927112949291252217222636568349889071732560743704904481064848635760748060691819362351339642889186900427814764203055708649363795313317549248334345727371381447718755958465014877899551743023959327478077803163853314626154388725268172906991770746323981928661657591039444551257373054606362865096484082943107490422294537983189524220702431581799824340180895496463077580204557854573476093047984072482782302289322770912893746226026500072182951489217867635010391201141345608452957951127632503950375986577990598935918456813765229230340408777632904755759652916476109155395222232453844867409199419765556260888315361584886441948902396978696671881427682813322709979645165562799900857385386333781716770313677739032402001601503432090210076415388213464688577556132557025950849463221515274546460550831437349278125054694612220774375359993093038565118819392577721801822860002523410382293120922601202887027305236689324767043817581906154698865821536049684746437464576509732373511947311345090372458812934500637231886330849091586355561585868112353242150787162067601002286770475634411249602291333879240150843323707274969833314017954296682236998961001446771247376842483960094953368112591069093321530242954501873428058870053089234623282817628412702338385335687475451693883980409771003081108970657619476308148658768288448626294908640728961709022427649071792151806398663676083331514736881572927458981304721237751594789436345248505131079738903038384102946923438627149117049053439183119297906300437832406298798256749038247449566402701362769842886614822917862126537439750526361947704663087659054283396829533204971136660715537463011150012450714107123810963206530080632385120522072745439009623325403710635101033314122444818623246879036507313983142747510936438198883882211272464109876210965944400418976118816624555830989202474255710647916681148828199153405580479883743464698964522309940618502832347357037284233123602657723406584958716972154395234463087265065250887013613660997021289845913294971622151882346018116970657001663697753488654338792629023252346251969828343721081970067088281058491570122642786190442071049725342610341397483380351901800534855775516793326326813177565432301085755277922248202354628259147725679456539810605256353223396752504018754045125794074431546140231820143868367143994154050112957251684941367228996698382743895033750633309916898496300924880195602634357534784573194984608463363571897345175761310366220196905997484813565595306905358825114682746197730683419646488147946065753475723857441586597769772327945880678560254027241156952024134491701826820321655613756905497294518316947335407195003756083124477864401314284214469630092259811370801207788792085555281703814143771230925184340893201532463876222494880705163973832423657125879715417166740370351313638827902575688385420987350506547316908441438565608064432798349721807273378912465026603523219723252751369878383062638336804426054393038071131119671626470230514458489475197898028235817965685290432050280682439850304761854593109561627827050805284017078214561068455962373187617013281152576711730283686925218491169323367647730715082513820609567662201071642023552561573287045570709530843495505691548707429177422087122919886895322392656600570086917462927442695473599829380695118221989912908206228703024287179738044053885131093079781202685131953329829059812578114580232378708485724951491179006835242047201885086985477403096794965776459547893178000864468343839241489080061546756364928035637567680850883493813497916972515784128058775897597130478868784605412857313115362123670526884415510786537782465060993749206363175595294142979866123244651420919914029929589575271327467613508434639233609427606581185487261085080429287419017992907409350862809016302589257450910466232068793888893090647948408179489825962887846964474497857339068102222901893498787757979174114649304628983903645863079477890542705584249572136615794481815233611595113255760193738529354330505087145286598569526710421453131305236466517495505868028881929422441503095716446998061798525118735491573226781816098693118231024982534073417155603608965810275502200274713820215075006082624022386484088746296190299624726396993767567078435957969895255176653323404955542459101380160068411696448936108250504866448035801426938172965396117963631753134446313880516413933116663685813495600801774427297202773210733075050234099710266208243758308125437624213919469477520405292323116358558828039991434148702154510861226069169510272416880669667627471920564423048393806225088249537199565661799068780455151814494512744660336005736332622693809179419972880019602307982331673043826517842626113236334195048422078494938898457075671688222906446917015351030115656875176591855135724436470442881200871386395895467195426708016794086001152082449062041590602799633421681685806497017360783371988013420895849492621122318554063289952716126460161045345874657111693735599420469570693707489907254207817644936406146544182177383432871168057799166875837157473580244805578520365330257738038137505534614274728205445532259694060001976668321337685147875251729687041954520323276725165000472996972179893294893869328530808571731358150968192375481087880724930947784536664314699756577631879368612009685929682989230086786904178394743270484940594449594845464259568413052968424765497975125334012009039004417157918587515636086912914166424862870227509188522726937020545103499981163729083952216442857824427464318492376230294551115928939842347926901653814519194395972394929341261079678578423340580589373138164529212289090191703819086297969337075213728493969720259207533802648013095756523959356856992336861718890259449127657147752299835914416258200263234175173553581021745854564766392147546453041249743578118480774228228404091999597198938817416485026617663944977386392071418415522437492055344075729439630400491626302609179445887770784582764065244458073989966302348962786680046881072927879160197176882118815017289732707314389952804529988210569912650113177318365083026596153619227787688803871544876976205814600036432552846498537935941632820283534208118089849996186470548223709746525304676074539084125870161670233211540790177739121939002925657483713634033282054252922764240325244478762101172098930499949434928224907960637228242803481440682706339219728236131797650138144199111154966671276462429610449678611146008424617620399344768217552392390232446011183464000363485180350521122221970064264598368573951482661864605785922153029604147121363065475659345064826684922089006784236102738889018586206815479246853274139243572145494738872931993403269431869535557216332292475516382737362446642287424037092936906068042699189401951297323511058124689226500252560489104343942266151011986454651606843305074351706152911027228294862950317182351453463144892497964073823356744645019851825669537878028944623093661515900866527737298585476092804023657015889904955825082382175563287881592516596707802675947125588639940269819248290833506852719621675803218144148741995447834447908059119019022841413784253359065467235970895827265082358225215639923948018133566287943896035099804589568971533175030150270908722096003891708424496361870158459493544099348080203520569322106614782849525166708806059086931781526901508598818479601151839809046463955715137893217812119190811119360470569591757580563005874221868705502806062678441951668826173281357623898686109882034348910883139377117718810047289848450550224561233678659099940139383469089783234234161520340636643480796043344673852712787529838556799798784194341058255105747212270231636956761852570645433412520345988162135063711062274558844112109175017275202241986516253158782979141399698544459306490504877439542545302571640686509153941432762971045348143413895682188723267385028949689402165969413937027507127006069766393258905673841645312840295772365624516401565984249946736747210934702092680765229142641225534468829256570875086020171279590552699061608826062015082263133280567862964345295272324656071669230750384136844337483804955633544665339444146591720654509631916390065150126034781901934505133245318613885917419960086970625960278039485262693197260288517373740107088506350789816623465479622762504296826529644415116121749706929503238253524836740949853932746293058501428737460439362897690214927632707023246462477296846244262427888481278200678049383529073719308072429875602247550127089933054464529225074978956177429928732846232072285388696553736677331274513012862552937447520372036902772770748923393223302245790965829453119357380852211231976294737659847003172849379784721021439268772778830898285798458329697638317840275879450370523250697204578602620895439063646529404932359922938801515728312230481649256466324774861371449087987403344147395480296778802770271495420511078210285842215514992821777309642220136074003087766057879595870708400545002157700468535853961489429212473455908378125239217971416495431350889861291347390650186184515591815139388487171488563470185662713174168287013433319496599503521748425648313316303628324345210104964818293916375509800930553038519615571493178276628119743992853203351390138229369464324787173868136218234461255488577750392729123665708010360699545860264638193751736299824990401463817381904731371263795283580586248995242734095362187481907941698921307642434493030843323721386245397572444061677977909100936968256903192645643427205694834117368339552683083396490429317867312987625222601516584457899803136828847490021440346943872416459879746431224763355749657496930305192895399680882648978394804211714048332517822699864945843164603265530853577321776975592509661882780486450848868166472997410680139915816400601401242981432148686721292018090215354492997154719347231389147983644242062499797605591281066752686105700443989298163046142569668723710787146801903489057354295852035980732690796593902841260292678229544747160376270819050665870553445818142764419526929349597507951267521828117956384081172591108326122112311007557855025307722241140998979421521343702419299460958645934567509558585422246046156297874883413343535098603242509923147320526295310338550621284035848888263752631738959386578692683267009171328523582076365717402849156777883072529954619244842469654189020333184582693532131939202119037215297773986331649378003277710008784971336453612440866464419415653066689827709559284350463963170623149890983812061312024926043760532936761848049526258723898386479451544610124758640141358390070106701738244929322255415699367762822584225417790943775367483743764810430642396894568621101596801723822604029546661364253606292387192620179923449887630317438458961008432592810916713852979758748062093642241166529953173599017145140128193871235927117759365737881452388640361431511314369507300524401974434916007037509274738223077514230091471989020026636073185921902019858137042102944563374814724005298058670878287640292695164569280654042076981477645324079757415031369797119222377566578941749917959017697887400797972365231672882017390810255185091196078149876857060481854386577331319778219357029090631931221740527826788483149459628435402912642188697003387969680589485869063037721387892177797283207720778336509864847421238723327422330593810498754760011344007167989046712633517458104391325907503669880196787307465055214618613720703596788286004617118825363648056819835950636124886990914064068469566826309626829020661039984115424818863388580762933528092129631958213848863179559166650954595163013656721469822000444067096326836592432811134366834500456827797942947290467816202427789035337497122792320225604058970383317469574977560962201407117444177474894221547524073566066129366136386214226523429047622742371460205862039265697946252693552654339570096368143764840387094395397854352573312778528599399646372805130125125533105726288964022042886712856304889635478738386615663577298990374690329932881699248219442315373912212529098070243375985175860782790543903620837294254250310350413138612540374150480949618881973156462305789939854193514602617619131214938128970171707037150628936158200581526359595585676535702437022209332586771824490847334779346909516861502972429691587836776889387860317982771484321009666518523229090164104604127914691290825380967930042782522284004594512503491650692539143461061729188795196819810334042502079787397610396435500879219174418668630430817852330702867168129989745527531023340596603317948948472533545176457025027737497905618022405668072071077819710147994436918480824476208990233919344428599168086149047452708969773105600409943403747790004240124609343948185888317223476938531568693026997490683309230603022812624640658599696367424047731429329657450806376598004804151253775210824111486933430229104456888259647735043571801532060771512869631037269739546124388906221183283732444970450673776026020245387320704142711823133821804050882651601838231648458747983882491335103477993528645500255379533108195885981161540568287080440979745345569981314035261115414426410509961800339786262097607521481454228656926052915769994214136178903795513571388763688971513426889776354453774794074812250400648997014993003654734219061531237656585662587258736259840847926706187984829598743528285643269091029205494015887836263741597234090370848189685336689034759708770764245477129705234508806099615713382752070323784696617084851308806980425702177590889092142697078844272548493396310128628293573348168225645836752139990788568705638122600043602199523394855470795778665763924243110072105748281074792530150672780545397390152576994563372782944992876928017629641558010519631884254004617908286235306507462286137514031345301206222400761523648777406629841273497507331142813098043224569788670974990561558450617733515925728338644082634303831424264821186771315698952310727897659041523489139807565959677582554915054040241774522700530648697440806080607081142312559458921790592681646046391629303929748491784636445920890293465706045622058297072911964061227736293197285885740345625198131559506602453835243183219152831969258686622980306800983546867980577912067334678359770495222626572809115540176137180217122447787870236802149092165105820116058611752872889499611126458555381900690115309242577373185059105990201935360086173124061229946004977849307836435658137827521568988359897339249185215776933148459567697710412779907502269054151310677795540648015913488857766222011791361070311985592114415983469214483788969451783147241044314873193494971415832176553962921894694091589755382753432044959009911060963881740011877078687162034658895818060710866100434699659591905127426484498551592349156625874957769559482325302701864041767897932446835827236915285854670604278563679462497993672520750438584857342204166891554002301248213619695490088703269144526094564272274679551211246932298230602399469816696723737065447045781540103419218769772575159457021553668999349122948760989520686332772361784170147582868331517569135270438948698532899338260448592554444554297220486079079531137497582000545987222829131142139334890889717010040803937788927982159767800582047034396049186739539069503830542904048959122419530743345425551624341602032389234881756720750482098142868199882994184636237752019884137348412851589612961788423864064018173491267464741358380255671132406801095031003640932209780855504144756003203308748720217743260801270374212222052967764359608891138357111437431860431669039066826343834181600156018077382308362078174761550076517285517241391588397167987101685333669155198150832922510933106427885830702099768061161733045872185446742242456985386342544975085919075827783204201780027244665722171518476869967378137054295410983917929013001161857238007602916310693932914519888545231585115188691442178000674768178701162353853512712692870145046356883981195640407259378133354766699078199815322376415530877115525305350781557672821146792263103577648835565497289657954229325910731138766904302539916793174304542983788807913670365622666728149985368399553500748684643643073570441978958738895620223552339709954783345692446104040294380870854252354480075689858915386303089465311883336635484086958172677174434523386721558960548900642344815041523930255137751876161057863069998589368368944790460854139395292052754462777099203393927164517296342611803547300963221199202130301346505598061403519678783488966238377802861813609214546793357912130813872719173608278372404492112916922228045705482336923948564185472277909686485657597407715023731321031351353414346077393800520106296837522527618193186080601708903068083929548071010427848934180850411875508580647949379412286394819324712052360729916005899063585625718625360529865428542201765124044131710378421681136324843110159072630180339428510181527483619964640851285084228122272908461587094518899429997702232969131317529370115879588032989643529937623078385751054150306855362094756870018747243924763499100616030555214640761288835612861295862208147042046422728222083866573411045614192618746811846773190384117071993510567377567697716442445106483744245444140130730391276309843873770182253792473480146828837220307702124195289047812559696010284195259662389101353617989692380255019003929804866354898372645568266662508981279645641416514883951177577472833092915017444387202319937580782871549979774278324126713308264675418298670635825617705284639180278056587289347566006348244947359233902209296312172723304358910729263384965535708040701666735868648680816080196884159154884077401243164535692410778097816824684578289406480225838814144033763366068978243633231536315548055764394212076728187148113318445704660968620649411272886071900831325776276070698170623795158787886913287644575541409873446855981953088337156312963057789688464303223972740094720350957461610694710844470368481261876852241740153501387694344378128402780886859456842083490737375272022811604196847975569840733411336574274103008885496340658191191715210081838657996469719383087221172510822831393769861767059127197961638804334814215818621981849626645225651410519137553741019925447337105110993553247453923373140587504183152842601568268698735681273388156795008499082904287637017370396752974501653623164778949050235630109411490743698299754813005263400619565106661202491897971424836757260160586580681388110929808871665597798344588893931134930143505069647605861650211489360037927671631514106983860740750703580492157317954752623355189814626157164184079474880799759548241168028408575209514574125688128759454149834722879678921512632928171854326146351296323387325236014156127991996396836764549207094875247498095969059881594669243106410478281045527443541228578661477168393879016300923790297813814919359249923902417895766806148860708869619560082226351730909924221017655492257175061620656160028087839063744932109853151172679257978312786568614732558484021554489557193598689456997704530229982092025384465182324301306931419285296597912114838835315452477065277271698099000897649073876839707327929219424922284101137771989632945576000970958099676907565625630519274017771873636618484464113015110264237445943568096686098108848498751584991960922342732403411163173898245922973255254604803581380039206483725962989019488295440257970736561443767917450384690194107028850542126023471283200063544878050473073919359542073337709103186321816251524869279292905487392465291629276239564632604130114739865696502376346845151186315369488380474172654664388767450449560220652942788683918505486629320534544252964897323969315709266210438538444568451507187951650172506906836381283325955045386706725759264062725000555934618238512698337323498559398699948975173261095088354515516387954204262746317572242959686938288210823317316479537544698230466370199643139209969967360679289481816543725932786951298802448805127172005642779637189686675579138947576647842390618118054163560339000421030676679904929484398196973295281092989030840506255973542715722381484159303265397051959752360927236490235529399993297148148144327463503341439578906452985667973630065114775925290135229411049092718004748854476757068384037331074661883362085638692460187250938563122224351416369187854180790700186676041147421285107856661210097145381080368180744389153317070114590356666428306478795698795226616135873315735573794797346433384217943628826219201210353149817141966580728501662436789653690956077995363025523539887169444913434167524830681684088832351195157253385029972465244223569375009602253634092133468618504336901389528724187497766480014671948425912327546002680132559193565058675534709173030040435875095997413790240282040079087335298318999086473119955236500014853981495306253971083705668721920145386258233777053719097608379552373648129279339888161149279055923880565008804040347998361849098711721866378137886379570456432817419013724002631983743386331510717197287430509594032963526823996623189060845511082531326458834044773945774017355361695234402905304500218974382028398187150246500005050917856990020000344353274460148065244797354506337910766302684149121301589340930266766711001546637782980617817285084752828366532526240785726819416521036866980617781801000851068303036084960803727580164041371581218971003460230856303526283464692385354566742735237764137481555910721542729257001182491996130036555945197906877605313156890046058295025318791154201065755862551897752605967013105755651664220407659846326242292131752428136774099107012526170307057131018831032730392190261638635619021491207892153668023280815735151985014544944345371954174824170816963286843921535787459333412117936956214440830682478921685262351966550113325117812955906136559262579859072313536977100149808770410213162150019935033440904529772366998581660786510788839451949310892214443539676141447106528919442384500646384150879871624698536959294656263870561850491130124225532143246610717101934410558710916336127647567209237796360334332149322885853084649640017526071792012030195265412533843519431426474545461397261840522064595235380210854504611164239906103181844370163611584082273381539717395842165673648151635944017892080248372005704781073710669554957705852269700158576848130063937011319803627446342518075287552235262459269776327995913227999262408621870485310511112876615422978302450458627680436409739507762305395962169770134352183838215681968188232533746353871474522754155302474727941826786337993257471654977936765421536349867992388051634484939408627575449336869939731824544792622291913460635983875755306198276134796907925137857162230838370845779653015786423192566870593363422806321009895597806985356585367018097328578653618894741186511474527434590565976231530751569170020631306432616924554152548059788714685268738092000749902090224888232958547724445764140618395791129387598888471798280490028527969634686730999393874003525528913488584521359859741259714429284211740194270926503688199121222023783043983947789897208714622383865162124958009289693802786381467070415407534947867934466384173799933382863234121015566483261789271639961583957337411439237725140737375716155745725172086877144948760949920342407313260063494170100193622226688651501360377419562789975310031497377803330002607622460701899634346879610766597970905512517799861263689933257445367817080044772365762212345726970270202410778060705057096292829779158098364091042164103361757776519827243728091891825580814476200959120991844688326463705196832707580714062033595938600999434315045495504965412943182280750535197526808919140791103780629162204896158487198800432590769101414040499858153330427367919168951780581923898760306184103935204897462941453426151292314048780169608658421063895283301142496447043821908927419215015227925269898555132033067506065988449912061423325690557361064898222683155200745790189177636670599522802344633165557652877378944371862651293093661508003035601125207410004145276949120339842292468152703103494260944722225630465928400862637955665175885743969864987434241306059203610939693685379528696100881532427404694954116160468458823861054796071283321779686766541049494666255911053494185645026034310480218634876473333558024695968917856357081754897284830946846741019089944060785929008256517503720819761069832468960091310780464378687843767672585717876092166165781633155451412936300297872670669683363152008829631595577810918803061960471903350715337841565581994723194651015756332273982069554472700163128149508475208541216096722647971470286809320065811360630349172044492824852092729417042868609943462519967687709552466156086081467537522391938190566783325124580827456474836464105633522092456778488655716887264763457848826576480774979186844286909562004179220671799779549516737031059170546069084051626268984824318962403014808272275859604458783193082927277224649190513103011513655292686420744263766204457383971236343341021967316520479005395882957432216578515053753038106529349709309958367830494557248678459072190390161599398320577899332383787834837244478774243827251729733334316801742566334842072246551903922255872572651873756238945839921193851238916805228820445192734282260742853855016306577098775868785082449473278461327316659588989749732622487726648614063268255021334594809304948945652101516126671350272428115695514545935042553442931436722009026668317526685059685931672047932317351735555953487620666654178867015901615400174419508649158624228118098732221920798521866923853964659681171232262554756128939151772079607099190540100876046200328926229867054261411258087748068280816840064099201841484191635515045794670283587909303365128783616335707687613505076405350899068370832604233975655818517728585628934963648707001038272873442860402990870219569474315500066355356503963956175942677881423401858178737061932003175498196224176538758905012747785210628345818039450722871924765449080754361837249117352990668061411098436219085075542312733599266379278900197687058562414147415913104723745314854276804636269619573609911531299561480095183895109036161753404409326074958333214895570859602970707751522410306787393521508653240057497081853551831780758122317368203232332264925460062584307732053556416046636806137083884240007177874871301463946678987493048597168395788964532832410747798339583311807807724215414176128631769796135420296283531291713108296542815912634723600866240521154948949637119184930102865717765521696938432494921230351657691912413336493790099671553051008754005394328919379125607091340313542937260029713770063517569677285810965950702079153087826661440562891504825161137199816643837249822545129586455556165529061637814498936078792314280435117870275347017465683337952125071449344234074585583123877423018392436124347243305137646737224176638773931603672922870559079717056204699674307823365543740838161217300265291913201613905764784960511058651714456024469107590242700188145153965820710626731073794738998631129654467915746598088842727201536635094829335746010399935731736644833031273229620149399178973964402559556981267866115376074983736955082232327475082938981029767849023523073799199322966830941152266151724613676342354277142099886982072761720532360304799252093592376764509038239167779580472194626937275629829971797245067684732967963293209542686240706050491964273358177133358362528579775707006269499549702313643746463380524742120722535864123404765780784094478839790209134353098369657179534419770555777709445967748955258002006433697151879669904656589097794168215136216844010900071764229938882832839138274349309196118692689542013355280192308656376972248332184214200738917831849729606006359317874255141811097759633367174436878336609023198371539854493530569481472094281118855079574520182351849014105947109050951636714867282424172668753222951444096713685713937036833396991873352132554861796309579222165833484792099248984853941570379927200572124901437018917847981652464000742185601462848977118121518530096672703029316452354704741908482006526233305970344440274496741763434185489928542511176382537174335432995683161153655208500266427111800704169118564049763432580535771311111039971858206891817189586165112263197208053095896636956547983781950549277068979898199182112995182573245959161831287111779288549257072028499443207938835834432680031958385727824710430981398578807445877016353231140408066594638353710184538471293069213598052761116889643617167343358259280988896979935939786196352390400516799374669091430105360721119774979918435269898786567503716592081866542772646728734250564471098982164289211383286386816153478501816837008763308165548738308591289609623004565019201635890223416728535245227593358950729452401200407067036723289849861138822579816756491610165289023622346027604927326787030276405369138585233669538904343030788710748624864969174818789190023021525588692007860160827489285466465215522569517386493168417046584054900509202962554835108961197170493192239759131535175508833937870096932770810895733482745914987014306681767381448177281924391977404264787919234871606275901795704168077987613788233598276514201304958838913240236141259986364131683279588916929448835294907203278485089196692437301444475045549512084214086926701876657943663154029887756250261874703489826759720461226316406288617513377354082999423560608882509171565634208790220463040987972601334757244965488737303749060103984578778991651859777069351959789692470805179324361688199953595820614945299335321590945775546517903279715850231946951558469182657241408086392408557576407428987253671666393230363741942545747828304372794162622277091277569292844146330353756842959664542003737787423720833601658501759175545312417193319633023161996081937902538235984896258051703315607159828205233517481646573992298329154842668476990010632076243557349002061937154879975688097493050153896283094279025107243595502132388766392364352559000172956818595741466565281432821074878506786916668250738718486681321039431780001570267253775394855767670720642819589829737738193388149866487578727203043569137187280231395722084818063069322816091893257388561386348116211282903958750958401457109305425638557985295776200583731139572844653874034050310276066000005849264319937801992639334582362917574358679984958359914044201929863622674502148292365571859838713101698111038212874385223745504416725772396985508413186028588479360493252419271017240714222942426336138447800054719414153306795032856783853481996586663275579506244715390894713219436797221709068208802669803510395603256980874824684215631972294796014525271782445056985715247580125765493097656387175049308548781991912282133370559619790746446092955296958029851457035131045864717432732154914254747909118587155382748853565304347344091144635609713053224432610763479335954489005713508807564863905456078538865957860959911951495568687437536683837785815483877900054438320004625717302321943128838444772875228893462316093141999352559157797896186724834449171155099340685239356586053395695537111397683868849144107908416863364573274232664088073252342347292315063606956271979914333326481418457840414609602395709298353916814486073379774416228349147849217715311500002559479292113880884331163628291490538902477926197739716288954248678764240459821717033300835701885257055025035170656607334265658330840768786025868592275110610910272960066465091583589192627936917837539991119030919609337554286028694591187837403305384537755523514300579335268520010413473704553860143596362524342080824853815972694136812163576214944569551460530120483254982378927082846626884498733644119079932460809967601342447438290953626945514450645317339456998287981295214106585378785202203644633220128222501094621043214702523506055563376049107802970690808376595770366939498270687356372532334726206929047717063887074150576290691938780216441530934005810554113417584755131196876870865537814794041898965356214130187527396460093207516280182190347651026661913470993860638164184004051937688390641483464638002226827217820012296895512526254997165785511367436638065108993760992472041572343922607618404495440307766436821644497418585122718301507399729248216369267533662136268058771671909283406478706722616383734833162082215500869327973294842723925799075762483666713335733600492603557027372060991767295710589422087388030361638256350238043164195942714498625286669517686297127885616515166684251370632338865142012516635154364804646009021041718746258587693548698419873614941837240961029056436526226566411241321767030623063140805657241061044355589540688222205920563533296879866975258889460483923383228402290166801758839667336455424507789315431527396543682893272389918449275541862612841443310163837885114331679260288166603349038228850341283725064233985122368605760793623468176309587711396202000023700220508898370659272371301806895689374043575035428212881058944682550659864370503899143425375611380242204706325062308631037878661621455602398124105566369754873138039230856050011859913193492907775383780199099371372147701319721050672995101167734024149449355897063059549324905842544626869655944584475207768800062064321538744372233496752778962071312090724773478362890515971849186445821586957412637266159678246216613825831186695215173150759922990611984296096996484818723092263409541492218534251915474977837586132631970637552377905882184081994994136713569279598138843290257486386720296234659822015917402878294711375900434110748780860579781808516043360927765861631232253213201601374748251492630936133161058859972193479552564890388138725730078218674111372492738052919289669170627351593417158741244994595574123003156012419322082763165916542671466253806153676231338007190400543272977087441894326193016859968836459165903013813701002257314800245615057012189246651708383619051967665144432717178392035475915538809159766816487523819849975976329548466120891076917528397903495495261075899896178640085390197234768581398959712468825227555058005616946379890980834305425479938847981302620574675042701059195577864259183643984022258424214421660442424134308641248810473995846390612316328195062293404946073228658517154932787626148843014412341005790364773169313390340855926759915794029786791398602394553168452125239481388617070556385128790305593419321161594839455745833691605038146598431887096679531393393536956700806826264184472282350204984707401090026773080642647322690744940102995647040481770595656927300089062779968217230182608622749582272477588375586005907201076439656004488606753036279775725653536242406387835802265807794054241995109420744412233021325843682799046355975377172615391548968306228395230468596623039880046070378499316609563355307811692737976650874411604960982300274228289131154915658695331519174392205470788332642107510282610788827524678490249997740130043818981341649523822242498941378808058086034818488024271002908633254624276671016451270439940972709622134302627526442980048140970788919409309625837703066637583848305195105446374610323245708364515025178451189080982477072573147161276728641037037303627334966682604222928409474055289910373879718551659695976505295628570192358604222875387307852879485636332008880152610291822571269018353226279388556816322286194493295178850050645301736431818120529482175086662663215978249027665601486437694422213592833379900839001081398126539549288827920294121076218435415470345941038883066568724168539097682647585455692654845584629904519536651570026751104881267212594334716643462331965109426635838677006869798921502665995044198880356548140264512683885184040387574076818803861078357293137395726515467009524238094395701943908692549068480242438926892625704916864199575658247000958616116739302852041608266857755040310573770834992483413895329817234478143506180940304077674180429306670114464576928936017029580806003992940400490357225502697969364335736620581055027811137385597110418359401426179188871889391917836162987563855877249958732781399392127261309669213800219563177526472796409363445931564980456023188625753040956403151734244964899158961468254221355646375666295943767994551180097470176358571688961941974780381062178232281189209036580386411975890584559506279021151503240107642879809656222376715220868229254133013875677657172887832843972202344849447701395428898272102630166812749936286745809905466500630709554106967624357212856305144375423983349123652478906559528513197657382640397672998735145069508785272801451970867801518527018230973774944220388262286792958231933022990769415967011187192318256868327205985017735862507306779096176814362195996620944646607452156403601428719446574383240323544327434096391479150465355755205143487119605131092038714034582616769484917957278178077965816838098654485467655903941829596322872359362411805432778068913587633781139999014130095468867390337079156034129914478787164493751160127429400397354293946907356455666030401646738993773127719275454290764843558933249622591138426919564843624414476880178449359283998431247447354470304188110318349210094323411546366764170013912791609912697554267400614102088767109087109142887075317073560106536012014028973996541985106581215040548094078657443019832099725947663858516107570556246352288188739790194610817193141047307366584843176436148130259889559707042297760827736199373626621123078382988357933539131002706183920120923062045081204358007508049333196789919817868320808290936560335753342383183901532566140245482029247251234372371936101742759325870367372127255494334412052335936322902255481074507913872153963705456476291729498150562602634046837821006603150801549240584537442427480992403855285140225518082295648591128274612473023395612461115134668984249256799665090262774226579055844252104266545978254485557875747960752618582937523269301773964289210163808374440625315615151008522305884118502320198726908924180896112497189435006856577878904579320898148288961761246050077799573385991835040674698212363062186883648625854924135804082041320190407415056494419029771107661314782354656332844112396770536969182002200654240106717864490362526497855236663777328212423511590151540128052178584916985792852609445045877514161882069042646288357263218794008542707606994005929749701212948596558026902927968039964362287521057538537427054317548547710670493037861841118885909352847239644877690962803628434602230101435863796232524559045053024114812730338305023651065037220144437037524535949648347994918608356270310076944909122803207510741941282511199621074024810645052150705912982274728542172821911079821443486251035278448779281393937790415172438290962221627579524964447886502640416354638455967146788265080465743473890477193632104019301185386508426327784839619872441075297805801303666065458714219483747151190440018013009188843162194731182881063608429265764525795132239882223965844060514354756494595661644635750735556612585371641156311690660448953772073983170046597454120554734519097042893121523707301465502531512176298375760078896335385525648007833867579998998820299360230995313183287611856427050414721177684284633013619478931645368986349045645711277444756735790478770351320870090459823132894311136697554290689434422170950116328913819760925437811230361329889630940179492162442826059730592261297657133682759955882974381413360411625359666592965263305366570511286024080921719726441226098936903291868688513371405726439528018729222847650947105807991424453129777422990136155146321953696338660118018065252959407305487710485491701568563726963934943722987741907828296075538779687098297486925435401183852018695964926793342294417956833101711553126230985412927615366110229150166598446953137037615176745102040728574108908392079170514650138812637872555238454260941743763935833807484326883278124780550476770825090339409416156872910511663788055789912957889828220215817998846875298910959014599554859817949918552678791878976016527508015948155391860824285741746752500120213749324941825803991038878954438556329695517808555856213550132141583538791657864504691667295500412581142393429496901892977784987564863655227801287940056986374193924892051459616883119326146717117004536642873966611644975781634781259811714175497845531197068217104928604881292293314332658950028296456681472726891559121955100561894610233881149409536266786682928074320323700987817727098217844151163755741295366750891463094041276870854253365869381591145160507634709509557055109378461042932869157418150410635491021548964281414320289253197144187529291606433752843561995485632524822151974323073976209188310671494556993669309742492747989139094307349066139126347725227111141540813647611250662108167228321238271396253546853394509140073040108766115444369812925792653172233168302173548236475798557752888409152007541515571265331775345375223547037757287609944512403539141445935705813406291077791484860394924563139542526632399939166317334864009046902171918960064095977933190156957435982509751457281645716872066931113688347719846637048358026991823510530567776282015367429577902199810691203859024458950243121452922944158179684343756751528665277592259702868976364292250699442838010631586220497370204143179017400312876461107276902512618058594624695376135566820456850319887579819722320580611507340204934384686046226962346731706288999398451371879909330725378384201884421415551887435726478596104829735515002633145955608733708436288548401696662692833103677943096501805930347596592546916783722524539521097893613879278256398856946119212972157249549399547346010576916259010302079484481365380949810744499790259506439907279486412864516067945229223589194134139000612022648741873979223300773953236793891028431294476767763787846028216913442511679164452517169394879933524910676578431304213491307877550979727096972224533399206548434493028970300168334821127945235735483785036461878874375782469725997622053464479270977214608396566120936852559340600517560261055209611489005606483481889619289993394524434916560309140442418537914139007148836314176789284818687485984168552395302508181843125182237633067797311670408924139212720443846413735205481109779261342542796103859903381388475179090017513071778529775868390222542425777407661242249996891185718885309114871280114421690654222432420246799312974547320895413627222029928930514800514633166775328122987072706838623806592248288535763101943382672854367852338844609917735624689407075850957507473179119102768079526273670487674464669944123528317562386371736392723810316585994913340641118598253858395901794620493265423032990354503117061028196934541233669396251245387485686072414319182732125663208988902815091735092342845233397165144732834246230166581518328816841087505888731716962578765559615776005104567834585619763676634019144883285008700229963302943129474200987935630186071262956999943999679586545841176472010007163444510603924365162304952657143697582438882390804931544202666430441746699327857839375296061816459824356682770615323861053372245117689513965054240482696283345488396376898067580124396039979922116475023736175647142568585002080921032018218602130483726125832510549942564620670641434331758842115918899295577531837462851674856289135794241942043848671947691478829724446808811188289835107579966202898819404427676249577834701464389144135212106826287088995105059938714078349556084444407403990092591433663734813854914566260034640184615435043601463387508894829340471601469808844756672776415722627526350883696534154478039648664795783765581233080730747098956982536383617885431173310247553640376960925021431987699223928059212491282184450303427736299883714583532773820917539935682963454493485201416055403562690128429288323225146086027120545714353600102500748463651170085048981970273852834939265482184913804432569813554042155577247174360054266103873945201693464570771181084131319161227772720535756393701718198376629653700898154827664284319273120912039543531015727381801617675459412707576344960191759008927321332111881198372209243387899979049732609735022271748270257648026598983850894216136246239352315507997312780003405617296625609912456969005402669920641083126333092847495731713766906431167216664078897972292113565361988018968714040295552111262738374483000922390606847611387602781250296622743264221798280067726889152725801341649504086756687530654167453248657692022874174767374335840512725390787176522062836146681983139627345204738171991635006290323228180850070245657736333913339238507091949909939201921824868366725973249034661149043503086984448837241992362004078893424536636193139285070995482876177520171118224702427901489746727071416335194288762166914378940492536556961608607609325618293797474740876549633256158472902951056824598353870297882048871351160677610679544001662696861823482161024598895974224791758159636643619701213894043358270162804736089312308375891227803237462131554116145894190405959358317360977626930395473326536934693762434785962541168465914780345464551957461090858294839711884159184806909225052811406416901424841956303903496769360335215082783684314810530586062794276359939162880081699077412719624872538613525867650355759829034280029449546869551218914848256313261039391950519115323867556581222904391945845435401144232960290717600520909067704219868617413584815968306759416650542391260201214553220123869831345633977323977495405185810845378868689994083285377125289388288850210276948969593370336212088405792032063111140434599317021679788609852319689079363413051231070971953908295550629155016696814657487894076060777543233081467717425307493749127022447495768599152120404846717398984211235213817758593473717278336101721194252984378549673282998939477201974194902906188882460996540945103607015971080344579294399860988691463147476478738980827501727008021150308573812722087491593247284674981392338559847817236642117970254079647148658013768917831160115263587055744055342779688614108152064740187888412410369408813463313197219657182294764623571606114641595500704788786599801751066164121649983302533019659806110503627091731692554525156655026727466795376128068643076625322861336500480791448902018539388560246802538968756343444151656026620027003620861776819976708986756756619919496017855659264308125832786395469130951991628362042305803403767521024894542533339144389604157494351908457289064944997792571941559284719358368579387352382295866913679808935072579061254258832452829738982741706786006103034382022423692118742155187212152939400110953957071832145176611625822625631996871754122982487557629926685349347329315856260558518969297096459694765906439099154193218028856621843481661680659421161810560920946002312693389139210820077474290237262905745425727508445325306786337171790545524101191274474645278276045233343992245201050565867320171589880186077584252485030054451253852082518512055318745227363620150136719512278018275895033503914069619350300359677411080927016950233699736465240024847551749588071173220028845383412765470358830410805461506424922081601387878183600240880686904985854249893685810279084121194752606750418357015030943597187218577076700340365948985963246276699595911037013922951607362054257153226421753303656858287227626142891982795869126802100091692841165122382640987351902035103739462601597554102762161586421793369550485436251276443186683696972640744087219921760209901799398474558857983120014494125903902377659043825168338221528979837096007367498583858246561582340684251755819930490896364933116983531663197111466652724543847217214431962055118748878196843130374694317973746465334472504355295638242774738579067526002656635677460338875363592922698520799825581431529630966692253012139439450516503204878940669652982452885097525732088358346561073093562204185389737450716944291811166349228856485985929838858460052039310966360053621367557010847061389805017607809448663125454990263852681932553067480733927252929903059870590014103798698867857696282975441642722320016226850000251825293045015196291228961771618924817258856502129150607842935801910797025353600508960817012026031470469353425081150713422494946227941321228949901893953892579904713625980377775339492430195852716227889156156989182170781532664370967036792508058937080003285313536384132048121986821692288950681952632183774170604939309398405621921881975220766563667886368244249041418312020399495967269429194082721347266385175923902185433615291425038412424403037878368983389851673230718062684213941209941503227974091437004390680971561255016121194341055485209715169611299924085068218711407440212236202870793334726762242102546378044072993072332829724231811854045428775323402725701521290137485895088607458262889935296976273271092573119082973573309612254328939106189367472689528529706014798938049368918227118388969485616993398983649195379761012251280050010158128943542126788666728163777151189334087850983718167757092285913818926159029779556161489156995163879725514397295613433703503684134783735734494521530342906021443932397583607374668624119768526830135033193368041329457424482721732531141598869309976043200971628823213582314253816374068315129721279088578821605796586143834993113224143274006053806490322492767260270854000040388402126305905109593455708608393822047541008416576098990806535463257675387058893965291063566257538933570892499382560194939718780515210859721008418793347237838115692343117176028695808187823277912458721647315098738445080314893845745145581339939072512189133675673637168468332224441295265736300317405293452074454073549959628269858877433228030126792185500846710935022796236738886958963143843594550701079390482275796957120245361367429459921694071363853172450384139537994867605556962729868342120650434496525350915540728477786756079079892950305864916308091035445980105302921993194731930484240128889920126764461754415928074180701292230128838388888438418937208118596987359765175558177530666186150912654928074173754012450287954308723508810849527661129450268351124507970514215641598830235715605526855987890420779434154654649713256672131587876792344156064247216871124546156101142357947195137587493818823112213429983377687180728359196458803147530105917634142480168675400746442787836909374295288403466124979697746877719083191725532603126765527037275733424976715543106239986727007285372797954833447983581984723995902815715431324227111318406042772775442186896715900073006329915615066952829455446175272962492374280771324394022222050688841351496030266699835968771979978999504272507946706755967642277928658091024997927573558327059573747996490273670091798809926118482424339964274908485940773510805949097426785014656487726839814462036264462808427961568062742774708663610809356614541339219676845400531948663126801488051368658325545067398440062709973334857875521077609886733984338122734058627239643447138560462820422576104433120379957548998204268229648452498557505668711039944822723991405917607230186864598934466548509559175865552514688842055599072772735129920242892092943148769577161946553454241752032171987503358937063206225511885139875263120594262048730162291148678503622224679428888241635235517275366709076578192390477496676513204732618160625856734734108742684392408250982762199742125251319999729015602352006056867469424927352507339529583350004770377807773347681926451098325674343312036987842145342082398520740380129232209343609947659641600724933798377755570887636077017270615097453232972294619241978573136003314177225792283126686152525965462061071403853572635761011651771257295150938377899922361058508527758894187577772721490214872758404657004168819408782095294682479249522214439874598361567300673314278842266815540419718215329910877446052363258093582722509533163081389937383058506272747788427939496118958954496425510533156773530550657330384145074353560352483674167307679394207369822197517388526696247176135469835267520470282232858879785711962841564283361304785428938959284257192086437672501054016386721948074221250794780274093523435672080334403579620203723274528305207000037769263929936276625809371588882273546866010424230866971773150567055736187002098084259707029654458612490821512026229465091690498601027858408327518987867340350885604162473209215128183775337600587304049086278950468985966166418419779116123279606879067927473070569700273413657574770635957169851613406912926043548464036676377170677305177924358689558579526717341653379336580151926173294040482159113030265503115691159971994867401925882694603612581036121181417345140218155841097365715611349119883763323115833888863867642113235594654772132522708202904440167021156690676816064905190935153101339367592694517530540906455131701157500850925612848126137487458727467961722465367289205115458732192691827008494232401050973550708824688564491325040620202690088038787995794716542132212062906371052298159105438933484537320635763126927517958403205559046471352430863954689442113002810752683932884188417118951256765615713973261097865579621313451031603012961779720552280747925938381880682119593358046952996094524271264464289031106868153793838995473007202911485414899854537498867585991815572697383999496518848914681087373878065699677475849080508734248614229845524769107467131408905070561401807894548605769461558825850420614584660128750472470358747911942248918655135706949886299689839095317833283194233015497953361705586924676405348829185048952220586246162734958064946142039497672898334841162736454795726210648502200485016172322525380493087493566939261369564490544795206521995942111666166888858000942092918654202978647949741316675376430629605398656522092058943533200701784762528376629760121803322356378022490399919240520641151744618023713743781981492907941200478742716526998394857024459369879058982516638241475798344261091757331220387262523015476796165674804888321969355765879987660138536188283617148196087740127611774901430430381427261214527069597891313767921202340047905466194995613390466631322139508905879229149490082326179557605197613190482372180650544693044190460975775869807481447695337524061036183963257340454842046728795619881428115988672446277498298588943392257271351743646138393427897604135855285628958358067975353965132650615510375276729207904082761359262703610347156150404952708226637073893865167818371569022815058563779569664761925148122407384077635205303209841716642773954621756256939548110937816089433253325204995759108003036272662506753381295948874653131025437458542300317412690367152231400245256760194797423724808849404674112515890649678165968158969890640706644760541523622528920670576661237265706086725770482836979669656889768175307791080448373741748855257188894534957541150784024901341982722533825412727315576572212536309241500600161753418883349894728058420324750002259605748496540343272011605007318371207009171579197447070554768850555624279564071066273551329257433629586097328177508591311746449450986723199993869919159278101037671926795632181499488525317241409175749778426039515029990972596162986756118118418559866541933565206769347278030436162742944452377934397460285781606594261910847127583279881989584353797785070490478673607737750454369869906725306628972602981352971897103584822880591503662417060011138060564441846864971528686319267664545072695842607699263861218198333465486914206932497729168811360276538131789749658087297481437859807741202612849343131605035820550507686524949387718770156463283759071956084694810837690149445606137403279649672800137713565966712873468181274971565556766967780103249678114106543111312851435574487758292710634853413691087282876053194472791820916900252030333048748913855931315028030055002151139010727433128555951623986559704760223484928516016369427496505961130303395064746344173435551338091140270523213160409019647167746061382146891527519365085812105793625497017383167954653791270610179228606839570811973835197193611239744503401650913287165160303697842519368581621208170283321308139784018132441867737801542679425220477659512809483321285935248566111551667720124727679897797168932780148034754072827265944478160529360691072449635983378467352613756390402464314562818920824718102571064448245811176302733215132785900307030989502516117759589383080215368748961678256054529506478752533505261144107307374362375533410851537260533732570327459507644504282496826752082035226792598388469117010411309155856399831515396194850082470195935306435911072807848586963848005125853253502271185699943479537375414859456016240464436842977033027797524284370002725084285028187376267740681544734963786243337056025149907821514577433834346227645601179107443127660859496205069906183280353150722905569350399657890885342529234921341519950896090524657633102724928650018020302874006379274334184177110772240337816199597631997885039508689626674890658176689685428649019746196178686007783411653286573268988610019867222117416528323958800035530246219926849247099463955042056156479135768815146048618146039107047701897851508808877752922283600499989133794856911691008455353637587866960612872689374781662409510737088549763771422111147488223715733726924906349191950006967482348754210371714825369034134075296277397655298240171310913905930202220077913889387127539504253340374990430213116085012542241894417539921661402282713865588985959892497519934928443497258938366376590588005639639836824250375610528210678013399420514348735488752137051792939978285763170538222928580702042881898720165940695689130044331510764364279768633439261733392246907766909289159239015075460784906228455847352890208008610033983948392083146499821569788563237112086643163533426571526380853269885340224205553352270966452276771853293786423723926109859890349838525716807530783795495735423900787104810266778277006423065504679398442113856010522280305201024630853146410452957399168004872203230481401814412870922149171292781186667483668324690334547808271020321996086916588338885991914863252074501723993441998025517422766042478325142409542999819146956770072885337538519043437330114673373100370496921425105676151371540227590113322464426105417032746356985936847750136640458062523764951889769909337797900750982712932086759047057157102529135041180025902852379838519216090538475590116070055350926656959629681393179065168970342090934720365093140986153550199850158824250455509250219570645903425348267409277079875624895240173329960614002408068010130831482172778844515346377264476330139882310055406101582666469594413088681170393351887778127076849821462643640916661038956374885008340611641539660926152748193472891054533383638692584579265699104357574808735565720887536473985914480507978358724180983001430729313596473483693003145737502374137168452794277505509133432065244599698216382511069038446454537318926502844417344626545764548776894444913269790379720988498237116259955754670375259873684854541469765670587722574388027758198147638451934596136693070409897767131723119683638579003522279144511863749398627696618103261098726878929971301891188547905401633019791818373379572878868704351653824107099504852041372391719537438530347018744160945062698635943149740411502662826090358873444570348043043751649254550320748699156036681948194746603879427209017947776070145031250351676193944528350414856139447892082310241048007360081910890737787053914441975915263981305653463784424662914987115647579964952993834322019432416023918394557742059297230265321070339511150741879831139424558490538103183894531958796071324371527870244582680531078255750540197152957645861299902076991599085822251460280592735291939201439251252862464798884928901441387981830732392717758946538101956079243492155239211698861010017424657201040865945665940503993867487208448597309052665842907831139468409667186113490348083902731367260962850573975031967959470108151137377496298364658687422516394913596242769588665785920787139143148439936172208206763651621392160702740909884181438280058564637172386964638761664191960515996276330955358939046501918766582150447184652871185764052202957472877948019004539953930351713561386945016764821417241156327502907220586700425610719548812437743982517894227468557701347342411519083360842623176140782324824100667498171091614762703060089662580653847678585667020200871874476373672536662358743834631583699931835912218148721065273374140762680044177070652965885679195550760003004048056741933283218254228915891183860984896636416494583436192057884966171949859164093747942475979516360316412126299654001936117097943845805626668408541582898738515588663136298422717678229342678684976627003280718832753237836208357084090357689027332449800890069922594067578814330127757551140552968710341757652513959156148777237480365726938240061404647604759099274224732614312762446514927398774139075891624290257622286444966441961623707843514520478545292626189627998083483896937037224620464690448859897710074104505931055097142674859821280863594351362723991983525383245608091684537680913946367891687587964062674416618511141849790635597247346414353314348717706976286519064452868380167433117527773844076710626370514973812747026895774452645453422219877664263694662128189067917297365425204475671946136359573633776913179968548434258742478945024614217211007338756548320976047082111062226331410262071865040241549931526466696692453191873420896936120487876736237396674767068686698544319141465328627441357769771757863991389511714642548793778421515078879773933431342827808906021284952705721499143942152431139224607048064183900448469013553464115583738528347670415671962947001823971311289654053590612893177072308025137084755157353132512740051648092074628551176237973599334324444044901902319917407041834622710527815142694424566213905631501307606343865791757632129734578343766544098293591325519052763009754752562843596492718902345692614895939005316450283393682328869100555956370799876737061278490519702645335917652408030384363222101650896810177888503244918310769147525271864234728429793815915282984108682032320224097414643908557494235634870519543933554533747957184283736628413869076915258962967508844000119048255860819316803606452639961261259731745077134430861531671179343375122268495553655091228206870335793408821782583196665239285292502874523826726249637720118407957467520555782629710667913956351903735378130117165005988164092997057213157760451390858211947088343748936340890362410122213806377045842486761979224000457967386907585334515960857665177471257219412934744384559348457311817595150753158972010580082886929475902871431736322719723348459559108185599215060687004341311155453354539184776699172585734984188805955286153890799115760486683506206922381345699646059234347161697539322785668363958689564034904572916535882985402317964242101615561844724970186802068866292050429759019675029291621152851232923139900948492609869041865288518161340272745953051209602591175351421223883629739847920068034208853924825282621287761054227526679135210336857216608591836893894724176343408286322659201264094624860230411900913715574105526989151390229382861646361952789832971401368339495251635808080622601575074524128360107895526116018269708674460062923799457599395458870958930109664053034088318340823911193084641401725521681931093384517891468264166296523595397979035656722745533477860340782049407886628270585012537225956906101011707450569429222788614337758822125646591696641071031265400599974301479540912781875815421438141652756966716194194983546976152680060774846153722762482870551114266328838476797710944165602899635428848266833429563186417159744774505412027568934067611850047300178419907307056538483183997561844903665122288397385904811793435214022355315268325422625787950450712533547139612392881377434854099384123666222782629306819447145027973581432147969701388140810991214622221569187797918299518167313110333231801747161186117149060713549823256854663090921088477188252978875095392681638496682391255018528470784829966007958641973867908994874174891075060591734995148670589040649199337591344335972578146547221314094519478724734324579224746812944805368237034743763565485132900511953554689621407120153866143682820288405581860090463438978859414030865166517562871722269569718801252295643784836365785543213064884412875034703391753454629189264253117204092772453668581489015359450473649329755401467673047906115950047372923022709787270382992332419587880018023131336065798568795565668251467937867822451239609083382379836135243971427600264435291489834820303745550960712498009137625351999460825890083469853971489446932485131737649190008864886487700106694070373393439217058444203162866104540653773763736464096108782519575433879166806611314215665363135038453251988487970340287124232467460029896193432178670710786362497214089701860418226038261981867830870234232712811651833541803063426555506719560057048277343606475719465746898925332614349748260589070658434037280584798659441010938689067652215644700425920382104662886062148851332025855539245214600579292367370794838788180299794492302513586739295269259966660831349317578059324815907913373349628689516728131794015911830929833691804265183354436244245263371751577626010408073844295053228631330871320842167816863655239885450699945200313445428230628108984549330689202676279982104932444549059040579454285142201291457670891250191195826938467767186210216297440311155185748489027846552123439634124002427721721259480607091077961636670648837526674855701625343206015142949857788581511696929461581104897863238615892489437571497694241359769030007835821476787102990237945300819544749283280848518536645165502934589232270345478347726809140009901793264271718014322614659864763958089727451673117091593277429618330617318129808950982178683608738728914074708831153403723268296778250205534294840474393377768512696839513926899985669297068698279707692235560616426562152828820806494649975807910654893976331960763278259066757151948990355068685914674393195363003074808134891884175208124693328803972683670172587959430722945404332355773564376617719955875757050725481989684205499333409270448626265452492889082165333853843668050737495123544639126756689171380357107660523671301032715285415664417045054635213211088349771707922280803142226156469150268171776147896859258393112199428144092949683815538769727365175956731796926766730002256167232619512795445948674590629190923786061461413819102342926030282925279714770929362850995327079383122687798169774725246295226933335630300831617456276399159094940448807342406965639946309115916469410754616730836797321126914069899841948022652323371795328423485631135119644971424502007110380303207393893893765031853011458299632959273205133556072950444220930215151050970462690071941822367049027976538275002324925898018258854861828024640138324740889093484816952734803700192821973107966678308060789269410610143904933965125032671821258451462034145635320391066461736459746795804440518812476818357296430715003850976712944180582295014807120333295055711871797410795924070036804672445831847594602290013651508691984985163439946085330041484989752096518260673140026287811457078618350467530186589142531649755301840710583219658250456031816848063688085711748264784237936968689366854279255705623779785612639661563426730786533927074575731401575590400188769547653922502054603250087839025645732774034033975675738786115927471766064926051881743586037861664849395459984122465130666434082873664839643324889311412333284011431054224422649109897542525608419277838092476383350299569452354613816787412149424040076715852541141863890856997366458434440317116705323235935910276477773695479519967907695159007898095091257872528295670726578103744810642057031292296494600397684708815859785698586193907050396996895087353771522723624429480970538987667480123651124300237561714883086482238082273601779842625083728093314609259188078169974924372363824979813784477299027987454961885598639146035719379791259003869457357129698209844361179140595005379945760182389214930743969361553844124630372102003134348356750096980865278172723673865431334756485241997463274380250720412058562947525370741114202476037813977482644886953504789093014515409800220973286518763124865045930209308550344513149895842672195044974695137186364845271030611770228891463848517273309192770776310623338710639334615262679534587270960193932594930185805782136939730459750966080231790268323371800510840425797071557079962374882805852529844429043448121277206990390455818896015268839655037789206981164123616199875161242269167258893619510847776685574717498629316421188885274380426529876949703925007135891094513430394907937943316002920151504796105663894998297579788787739848960894452204725275984157942734653232653602501777456152306083119241625262382446993337154720716356950712406788508761900137579541901975260093959741130784468221620391247062026570193005428227877169577627353041253773194207986449636431456028581460305160685783230529671560940588602830305198970083412533835814815267368824147443770966195291680959991527541813216214053834625152103327411506801549532188773848876275845442524037865582458045774760606316407492355360708045304256943337417808957394959483914254474567770159320582286604880834444890936705603925105104158947657362875475905253674502581272971494217034250246058541528102706581227375585486535873912313616609379669703118014752527995921538327106825103948217739162495903463596129043998624292726452858030908108454283241634296172140186545185067333135367371197259913113873576157027096771817647836230112967136289868528465582506976598353579212066434560469463739414768725539382510013707920955402068354562299186643518763784288512854937757609024637226602157754867290097334042957036760727629718765579896131803153597650401236714850297117963598595631701547746853557597761010280205029749516373497325455232662949872260715380370809571254202003185638349724792420082538495115603056947387888889779174862013363854120001846676448682098746547610544158319031011953498952193085478274263334370544219380800874207904640576310583485132295626792611391482966128753737948010312025949849490579702699121236977881996272573011060304205070730154325423823051037064673034760553869641619311697788639056928831469083616891016814228373764468302004564393781798209976865625642517424110632239067981603716726788178065360126232445042698759073721889913449428185134809765732073725650874862246901340892356505467429467891794769258894613762890607920675251085674440031043601398078319564477913655061383103183989165437941024127172121081942197520660173651888389029128414288084720648789927857396803078153528996703302535561356273391772611012973891410195221343609527806160481080096923598739403068558373176512580395498502121638734204727718195109968477048264279051190174835599686445540703775230711658877564165618790520695735304805905374463345228011005692841761446025344381140820986535094048674803413237989591790994992009832000376194268068754674906399391046804724063219974115051643341684569439076255841068500683164726861355254574223979443842105236944834014924555436678304653361749022407625974071392329946178346785343356224457801597823083322409059628785493945927012966032258561431734983185187835917141862131621594467079571421559669684102743612617923607964304961439973036864675123751706672530602181518382324671336196775489519439760681276572181260258268918203596967289956033358942616816119210699133569096152551684306105100893637971293309179918029651106407956581360624799731159030452743787642262832580261842307290943999258503015912345219349401831100454375036054524278073046260195391159143884586587568573967965185476166717696494332641681109665654929147567997499566287828819460047829447852625062288317903660233896344671234534921896493896340675911537436810720166578013608703447227738875223149662471756917573015710431787069491692096193252070716648366690995321039686343983951144841158923167980678862383617576373666752069057811945510461215422627412429874995837361477428221009620493587309451784876372632183339411992209875917203890399206409731394448241524660838498343845202807969858825996666011905310534478062881053062664670643216027582698409209829106268694903204451827564258907818849871899520053619592148183905617878827551766344935985250020764678160860750071882685643131664533874136046055183877069593355174527725280581032686335413239374093087103089969911624519509123368551236277810600737430419909753425447378958381593129735399841164245795786905613270746150752743539798883528986424283047659203478723297158731089463527809460106763074215015672106233695665782515409184922578493859429163654186356663383706017711147766434617313331059939002586497355850268786299898213007044914090028461575088804587532327882868173525860567555240668662303281124602839929772235508426563009816007943459037074792414762959865849757521912638600907009730797827254380839860287081585088273553736815351046902194012741824128706195933681401342899074115528000510560311130736622823040695763440344008224393178417221507549133302766671574660297625223911048202481875783897115341914716971876226122169137884986122767833061354438127437038781202561570963753545550623575174188661925699026230679255866519212576585084267369469229113288382599833122826384024451874580639295075360137527190502085043277219837670623040312151974267033717872971597006290003835972129981624399435433793457105663313253941919800176353827115770403959768784190759926775236848083156365615587569989499293041857318154765467913355735845897188495888657985790183599527512118099876088798154447721886697572098070217931999071434507452656667400641506385232782851870083554357185325109727602347190463049667268053473440888247519215583431961197327758734980146725700974602726523308497134077730948164181454091747631685554447900606678789945197273750203319253191249425959271975337960512172653764043986295251244908057248968439983275648437169825723647518557678926613551551127914369514192247038742499842370172936465272466269210558151824432684742904566329077116456008005004364661743420981728607729905043955469647372021858381920341256037017417199629914812316674234486576856456991131513912866859359586512806157412976656458278076011617841320054001691647939621848319602932622397317087159729302555700806576015666077126407887306929355424500690821202157076142021259687534867614601828414664205862577656060273142842295990707105691289066671657532378589531306532948307969439313176572137851545871915516103668550081420970494379692776395281331199858802011570407989945503669782280350065057790019673135500531053446433940399781443948765308008337351465319908443603897641278564313501588442966623852182228500508441538969725865853914925521125188674957713876584991656472226331786639031732255295324381288117077615297643483070448408382308281635037936614893831682556962144364607004539230310004582666307853614864708749542622567817215127258132557625343540577136420998200481274050370292389602731192179017559091195616086723614137320057169268454409593287966935551157016281581270648300342911673372832343901931613146163416967344977540138007275137997774863115959947005203977922924059759202209653385807690276684139115877497915810596450389213438437474488060545190468714205463859194543285901777873340460725416441724010931581142278607720537619988048527158682923976261429133854857162655681720143328157444974934321282927072297628138679395376775939446063429531440263442593772256377607711428602296918057708955329036794101319497559260646453687513800605532866273372871826438324844690390002981009695437090630023484792441995124063380432805495202107335363721727147301032430190339526922738811651312344368398290092126423170703170425894221409468146328666492472931695045164438911488173580205719841469596805956676647416763585840660579534446172861399384979224896021000388548336389257103872688055238428516932645933053600306967889712908706562272335438371081005077024096600036334576766522902589182260932862573419700511991701712493826973610126162052883957992884122785199831346197021627248817275438294656224951532140023149273740303231648269992146192743001841764028108696718125613723745591845327320472192792708909182187336798918097001521182028604285073349125408106201985828741634399549570293082303100211512068896075623113322866122233090310168233270315755153162337791553450763565884194732326561879855300996312049542820904134877491735773191809170352781480730569317952856776134896360552417818892163045942713250389825305005104559027687636688477031752058882220530039197987194163651878976038387468356697503513983416452330198237301857784287226464595120012891205639544140446646048284992266115568080604355851025889990373963610251874747620203257444752885202677636813448887768158458478279307344637141662019707559008949457500201049284411763037043642970140446548130837358444097942384609128221470719599061500656462944565003121640640734859805724998588983379970408616004590007331654047468364150975247474155937379256000900505326620438115707837212023277083738798541071635465658979362617300281772315398096055169645591203675514422485971319881459076606462241071538780658959567072577677069388322505869499360210390062377336090355968891685420377700287816907121523586154154086486627321523114312670162346173269238411867870607814041374545226863352123119508027383086511408271760307069834554497273595489694407765544684286081527699918638373370127972529124733983832409055105071795788729562119073399710333731824649983328406877079607347422881384976366088605312588144724896959970364215920310674753404749609385939177350323476361795231575841180357965152163568029061417013048112776248678938695021967106886980737852524893845780431304645441670401409934941670171778999542035059700288538471719189061009442589732619365812017538688860570654379994353462249860455976629122750991433992767953899924396937674094520975514624482614894344675220910505327096920204880243815556891002830895029162639195989997342387695914797982263353386194216784128812476679907165510868792251411912091834431952106246656930257838564325353088524283209507207621307858726155512568374674986061085118155940012042368595650395078449894950754762888429763072627528588575677377053372659520517328592452449355552660860865614558986203107129099588975706147817181259695913451414020929963543555737176707692069756878200709789797972131867095183873719291346911875854569988829569400186722091385777886270585372437866532041656890254626899323559513890963207285962723736940209673015022133486641318346109662223944681497797105864323772523477759248200100455867676481017566424187243235369681002423408853901327223581149844673711632237556106357991246234311800920616902938445472551282547390832614728626293791514167914355590215625320632059265889913264261258353685348208830017292230873955447685584620034481579903299477546399619603469237101418899848244370025322626286122700435467224210990902948289405729693799881944722328852868112154117442753980530519163699940534325286717429207111456917767195506319507312070888242473626653696574955605531526169058107970404854795590086626289963895033436562699299655724358912827303472224967704904337887996157434796032319181579131433331510266341193932512885895547211077365788044981630126018218794381506502831237375119756545464819271481468134734033186769185947549740710262779094580858367408629570999657527283048983538389462951304198143282214371277203122446600410224534790733319836966173030854067694753669474449449958898593730588866269593843119763990067181788813510277429715100425466788414008658754756844328753718178925803008309530756043913032963797478421370884765354769557218165852446336606828949818133860583331493617306931320323799365289820003152157351608081217677943564244508037775052768940231775855468605229364703536384068429454742901503817684055376755520595550701031980648784582533639903465552260453417005583109289792254492613766294911683823779027356035878864973567123825027469442869529281856143465184879630604118067211850385481325085830944824744275079580736411381237351944904804490060703243042446248389901611351012916109815739783643965113555405354477957343349483191023757844655818028001764465747417821971030570367505789447395110664838113423311025932603055192483508162957143259088554772152629321476903875846979569956027234088200291183743115461129143303573927850989307434754461996606527151902699293786266295294124429723149832660566568836998009234435332934328626687063353912437459709728078545981145068954903063613465705458043578975778435729777082706906782456942662552881910197787968213797615848827354924785637853105987527689071962658541198915145570203893282743336387755849844540693976604167951301608424724597330374004074349056101521337058663151444677847961214390360950260911026964360556358204349346428952660157759099883119587681920628544770830711633107018444011262274079585708255571339589875310710584752085731280689480811196873924568152647506487282899995834637224029148885251508637932506493682749850645688058070370098590733069748277871217621836890544694852937594462075440956886056145895098117448910651629318149188281261979555573513871720089272853675547421648664437877909470374984454030440330830411029941234087147836024047957362092404829186282972395141037399802736073422176100945728269261550468725874687547171926338677722422820608692839357235300713964260911805612854936986006007130406564796748213829340436447317637988129534068022047442005280406144306053744134733301599800627562054553310694397487500563191512879904586918608621945778894250518730474395896328343495294622455388298586726203126914733084056898053158018615962340562894292275313420351559904953192506127996788985058916700176120914193327682933256467746396630455809212555762997278815810019998377203203849232006684089559276973379336735484497535313418231095562505101618226410733335233578653290708464070142253042972804554715223715620146619573307656526955523008126004695979068131907196540579517453889718917452720755552798784952387179762151768855670850477623585549184654535414211846846030142002410619626780772896050743126438865750303406462388112399736539586668318253394209914552659666475858085965536637482110896646842402806968673856872295597574182378853837496977307306321392283666184963138437257444855064371365595981646545978273733384613106429086288085625788128929941774764202040955946822708769059821849424830664649907607875367588215832351522980836935381719525840524417081431197606456913606342945561099655465653201408267540884503019915505247378179192154127106453313522547740081458177930120854267020764378178173944043780102155251165983784005604212870224830861565405901273557163338646249661127650930501174839648769284634120938992003232443367481969163098316025707850387109607081449604411764263934842843845667779041643366327300403016292905848657327091159767482174309956202291553649675092169846046042471561473939128233869338808102605874598718210504395795738046012808465899819641568992771832837200331034240886083855038392207236641739729920806275109936620570243295423957939632056827552432991670241782653110631286408229283580220667262645275514646150061946308438760109101815006725982492299542533520900654569444617806244292431044022994253922451413518771725912865691658516554548220335320307849555889274677973938865076198233072853662307792773270992332744651081080115915026772676707359906922397159930739961810701953694338938838256855031321136107952087561000279391746015572129239220728576046324988478242342161434574639459601902690741583017537841668591951466755099444712215474467642380269309606902099021254232167010672180209880699591516031485260562142158270308746834442838917249155630502285818994696392756788156961836227675878385287625593781961052304380635888899703761549722903774357074562894532818190652694481516199158668641335905298071053768784693594789536177341931594158701001796888103922746670094252348132292261570244316921900204330362784123652125483514207946839579368879222813916384571015233169289312852404095873581391486041937081770023661215589898824858698782927119501210558760850711315083687473757226214704063892128444475454123570722071749548611205888242816291975965549580835235502158665013983724174289404853306481045081318789044636587040412246521339807896323304288728611133929397091266864374647685846531948084257840645096536489794118054702319781442725661620679280124079631867786394419703088354591252476948162846954470006621946218790301036606973811468087374396724630364834626827336791184278097598927022658448278968919497785085805577508594128990800463230693986000098092570420593018727351927887375567036718630052028339654411129863167130871909048695557633368290375471100145696679959593472484592646722711704648143952178006975525243736959319675647690058372559096911534313158753706783740046751823720171712190926429264753589229916962193211640109527563205593984280478186589188037784655513629767398273181745770784003372841565721594695292605893770392081516557909449401528074463699560377547855974178573916762690586191920887087900347855403263610516868202458255287445395440244997676788968196707956326045434039508028136915320618223728225015335837534854700531692998486819356034363922784883935273381067389662485530719162138575667428670552612050612907011235603050684398632448099664575300446124713452289777624503078140964647302257458998984052455978000450497664335770239606615681302492369220495837017608678734883240798145733106171774875775271676725576426859033841833779274073701923958833225089430077961926952576781603513154722391462660746630381035351630998349966283643625431991986139401931988416487356648444609669322528307462255598289722547191715911030734712949262923095905369301350589416713173525133349064827044396239732139006532986382814833807049785507917729548175249423909191018958717732640350870384069070812706629313648696440937919979807822222835062859755161058824855008878293280021449125183491160028628425935213886702324059431571112467112672336272199966751788409960988157514813080938329312115683134140612927055312802331915844913238543472049449101646732605924595928407266043682251080636201379758248734881409668914827294853765721826825304723606305691331385296636425987954422170225674224872221411764673951965839998961994095401646938479713178362438740345888951723944298084314805779490379602494963892370308369224762667969043605006985311201920796732487851706596724714591302172707232788921861994022698738286009706965689595221821471589315437608919647857578545346090783778433706350940147482189920338760040523298772590820974727018644649654940865633304245000307708606103222817895027656595600112975081128321935059351389475667230773692671172047580635496871976007636622713402328269786008582934514470697585458780180394738908904726505868312113599993090561162427428131703537025076556988298003153331293182981606097386311004676188435657030454878482422419395268996994363501680125546098299953214030646133668094513486991879023188493911699536700226976618943664522492931342024046492996985015190465289314579075864501286698470966705836531889835699978461127163754159428735311956247652768756180981710463791489854315761222053951928952354084308488779384942413282752119664244330488921166925852799328147460936643010747697679082750569513096865881825922158208301717156648717824448822731743266085732303224321057067157517055252203629463288739667867159375107261921443307191168410920036453160199415613258247601164685039170622910356648962590128389905423123135176967202761212877940224067483474751055993954187857493125983155952915817573565023609235153180477996112338862414318873253824510102236936305261415855334239366957149040101185903530232057785218769830002418440722849300369187990430409812123769795935547161984713361192483359189476425956432368355698382218495050293454027208333861328497852191433816025450009435192235043942506265919185025439486512876520948022241009005194170850152573321800883505793471491911004936689131827279660434807158658254698919703812230341107484822037210279608843397718060566787322023134866597124829084603768333558722338659128286368135552381049072747244656855629866116993013434983134964613553815222869004615261890213778025712255457821756616762519729768202580126783467881047072428569358795629975930390854462312128684660110084727942999035029006924837020938250008527192997958998095340602154757211477536374511655527042977807876107597456964768937465522208582136255979482320317306274299025960968258768199519473560691230348185777658603131693219252901610783303092836173889681114254881109742409222599160679947543208415890143476600828156053519552760820479878649327171491453720080415965058638740438633273029852601438745735923336780517699872757674347331165035490987422188442135403555609987192453835424678665433047062745236482962402301059054872071501068199150319025401450788498973246167706691226085033838027600148988227975101582144465914639033506210871209129218738982515206225666029758540061591988907519149331507020646264710059789495496093889913387966873758750211764382288405172733504642964085463200374244253363742540049571799724334616584431713551428453329631754834936928699097007962431782617961242504696025856192252045099490105043954675891190343380456866851546929601026825038436493256959666430397795754700537557617833244244479640148611059774005695048408420238282519658794112282008081439042587001143436753810754802464962976992511111666084273572186034107653858121102417278896733349399016275984016706600680924790776465829425522410508926064671824178798265081761016081643688376540277467157615964096318145582003869525978632331674793994575638983322221692373703330866677762891422866782063124875260335674124344255548712147084262353468622611466311552006525419293135509799860678368272152797676859732244381027557898331891483702121117629888881798525693513635625626732298096376178121967958245014242171057800196206628944935577116579232575903042916304334747020224008379541479368276217678886602397818401530347407125195015774462198411715536644186764316828999540496817044803652135206491040094600362305263174446400021217784790759268903223051023564036495338373813248150296314596074503407062074129032672107593919917731422778040152236682926215551581271624275606692908062228901290780118453093889707152683502905750160136123954400635801071997647290506973885507856443788571549626388262889891300836118778346920913743469450923538396261811851156349926967345820060947145391031799479061635205701152372252803102728862231518682902924762959916041266787652027054212558831435504775555328436559293928684500974105763200986064678124153953995406020871149050482574100399880631157669259508713456436224202795341672451415955536982406711232290251703389109225998501863423759717952002391253765944387291850399665898390713582549571371288417109975584082004029371727425154356141278032544317165700113867789120687525801360153397285966974531834368111530944994633774035585245498161879581973245605057557548264890196177598467180048229115534063307872340623593870910319358830587047490402759595740260425223453942537230669445025578920710267294916529635206568975654640482500219521488781536702471655222864514561547202714444259618358002131311845646240056379770907768573889644807739498554716700316939070574672727717695239340906234672915539081531646253475845055360221933341794904104998653844291667373740744279202945921877035854131827188621014224137871963919782525553768571317845756930993997289464586062766038036041665028052913876478914750202639791310375627419631619346063075718066665304229507433413293190487342612820719589457567993154523343306261906273012886303345384083739059665805346812409734439654356391217438185537561447272532339945938640048713942622304386503617488538947527439891705517152497421569555904543752509888725520620397264162964492945455452024755824068673361144154236807990997297916410608585309541553743858409035153983043551201416884672375240083585222820633299407157353563308688964553294847165893164860438119151193471686808080914672525471192022158501234115655878833926297233304983325565401596198645539581139061670520680028775510043652240645288244467912299738117147024162080987829593554130322750066279036725222764441106544455339977004366152143936369099729506828292172273998324524560553607917539822971110895747190502516433723185426993841748711838175729056968564547320767823831646688190122905143090623181285396303255433320400944877769793171039353619384075713864522678661663994902328075016407207873713647011106719518413793935302840173080525653322017247026472096390489522409514420251068662187382160339206822148152786747697421804850842511921112972768629169121091523718287693728665568533070326372934983285937239430493636993015655247565487221340035910595417553088487389927376786709599980195345481737977575754764100788924361030738878920544349533520327841069929348896890803855526319695997700431070193567119920292003861226538844023430613251999672364872474551746054207155123198178737409107091571573680196723132374423678256679810276287529904246341260955552095504925467269630259722314401182543376855306716005036089735866188099191389102741389816946765769581267637513826294500449332559352947288778659247048214782954043169495998671532794845127656621724374266100566671672072797380500218386203517614769171639412561656597357257138012380188842183325573080079568336745043099165772673330433332324037747802154243881027066209416165442296221496866291151417953145297317559745049553359220905324776037211898665112292737201310591908308061645660958195555314722044783534293876897491025851790562407633450550156221745971434805429784883195966826488159155538360140499209162644987751891860817285436349399276241764466762230143562552983115024407205475528100879812490974305355103606348262314028615480640993309223079853212394517364968396913616511116632939952772237912135540743964987517679476996312241643238296652098838692373098093328255792644218918386325911173089256956672296551389041083050539729628594130463097724584518504690211921410996726510176232501219944386762575398950026871504807517901925589096987020949576639796866422007424003921603282295354522333358668575613600809039226801903856611818674282902548465368070981856952332727857078491484192574295626650748234413617556492145942872228451943530553282137831198508001056313636699525274746008543979551514252405292103843964989890657798086344123909336519811868459816868700105717205557675810514437144844043154889980223294869318381961997406995985149893272842368304297326398652670277871436525445587177773713738809757878401246023134716513462981090294375803538197020870597518204662333170912057333865704242575045885101147542584617486438072045495695724779206039012838783846095514319756364212377046531904859070696893229334795973949748219379879180302875991060568537749950885299861268504919878779508932129735039738032946581932475157404680549161557726256019543223531008766324537312517137764448650570650423272975510046702405608282067774889197470317936849794908373695759277776056331585759499118998566452638176705087386816395747778909831786088419238848358289859370486406912791311822875615642082827044281381429504288113661791345631604869779225515144754365294517830307845024054180205567495492623254525144217173499108760170713311245569378215051216840768418519255478789419729898431459613144389390780921941120743302806118418636151015748044414752785866639435797924657823988365750860151477168893326902592838819835701829613802094051740464834041078108150370272603190907239754073780101597228435773274729047705183185434999929621661959611554212992776881874650895952269340438844212201893948268608403059916627733640192674655838641662786017788681328822867202094139904131942078484155097048743004576790548906207716961863494241869945389452593779739190711662058734229091103386492111230714851453783607914286610935027387798521705891794220433523582689669763376080940252934803251510998743872183953719332840323999833041718913141614642112900035460905945392995811092103450346091811455281802569074062688956781515365328269000575764657890565489517130908993584051902601201402503110020541416287242649596859618583390120645518592085019872049659682007752926668167673693504245153386246797935921174690666679988321434712952848432885895319003102337321453908264228282521867477383002501089633059368468198993019000477725297781596659949278378843299079398829917526489696596455991784863745581590777425665488233296229329847296507254830106246814627638742438759059388613728895530129001266338566354120317803708627753544378425312756935144802802500150498444662286180578031730106612843722362195552893934850746554596515450989550121262988147507057613124452751045290037906164791249386972499564641172499178792012340002592986396992451764693288559648124903548038461323851084321654538595828731506393210416128769192139648486190372738192581376828706001385895461794230107544170398615452377156869153539862744961710060282066770035234981361033352359247777320498905157821665640952336318414455038353783292750624530731420587524075701736752167924671216352818532162830396042145248881270063208677997491751013037289380931114524000074731033120986280157881213554759663721383479754619812359613535121203160497446771716805699805580233531944032862941063795134037924543225769396850285023214231192309278130839606349305244715594794142444209540922099583387415680080197182104306897667991680312959095368919342612574134324946696181769928081184093909994075377441104778528019985873011554915459086158938002994889403406455723834827776502621989952916944640107660126586993695302671983617210822324899112606335160525460893310300879171394169784632735718274435438298415798524552221244249612129987985432765043237090978335927500063388562425772837038062375742009432952223793199459115000609625692257737758845157225623149436582147540591386004404784756662555787620236702305882532114359447074328330104293511966518598612060407246208251925574534637304776553998427558440351675774023706439046250525690345756995020485939439399816291740150377964507320512036151201924157371623392452175297614056050559711581832921488454617629130765943394787351992320824082279629305541841064856818785461191841000859890574017008105075579420939489527295763861178799448647091681813747543042371173692936047264239181007952802173410738118796940641117179773660498809524372354791438262812372757565152178992908593924890071816757985330314731099292160353476722357835103327991789098726665502946254857562743289685036246986323155623792041851396159692039825028580203449781618259113216197157544231007121892575582331054281921149586330285626820228687030751580669674252433497572518148618222783659626888393472386341980658418157027774135098637460986504091712191535992449601142687147366021457687849084161812781944058982730231710642130075404546089225033038281200971495718741884687707418514576781554091867520192212292830878521001099394258273632040573874440271714355360654894591696859500980658301907565825892187343407444545519495654238383790407618729668654182968310950201317856602891948646956168678042695183676717509649942355062917575623260009747286558279613483693093239703855467749770704128428590947891852692200417303465293427046137724533598348688465701272247251490007087520434926363485211998782730817531530671315663853378424001482339941964614337570667049395172942829651218205504322336978750607996287965589897631069985359630116255496146466474143201800979817405715123163842370715530178438219868733283862218003118828863761432068491711663357566279693007759813731426014240304045786913727771305032079548131201990690633342179861284696368081880127967761787588939662624094052324035482916547305389369944051071192905513015805128637634428088393060822686487724849680756699715322651247770811675274864098927325163190668659303983201437443208844969639721731531936266529142253448978967923360768945617491484556389208386921665328938572898584813149665023502478505342695719095031474168294384883088053414735093883577862115504356646553903134740570867244658426069338734434504338696989165259031339157146709610931263449890851906487601335234173034062949595851339650636524360652197339306949840529400196715817840226869632761259339100065904245404177783965132081471129814378273709401792111805214268070086702433631204972817293240688424345935404284003505758339450576308455547049070431409562255177594992770576454034329967207239288388857597712457648402207811732001149194784297994029405013849807200759608503281366312135767642829228541734605167360422796081449734421864877960252295510700354038601673765711122854240381731363788155730969395960808053507977319614412812151899614646055729672028004637883800407978967349601152085056129017549208856424381224149552520398505589610541719745344325555486088769157282508036418390609565762816277441782001668089768888934839439473304427977614922866061629366004915962971786756544713888899205300713740696544384054959391013182831890958564298227056374650204090056185983220304069646547836539699103632306089164174865288021110340624092593911135647333746223820310973932555034976414145893064968781066129368591440211384695427823353251852683996639259669652809173292657275791193562722351284201143702185705458746232217718263537038456926020451966866364548493852760340866188736187553887537625411101608793531376674733907955422814281557567629143015545278461327865596019680865980108672351045737200107904281621337525481606577646640743881404982829382245502252457151029705293939292730766799562358369252710322207762262348678659149219811393745553000826632654584594286745357081076429464074555041860592101162443598674401594237078563586597160583803882300343586903188262452689112015247883216781496477227680122582151645364554585727949462134880375679761720229388048767270091928470593479355350205697550057348751779575421150786129246657119923315863818017097726692806321238061482494330106208407369392424998979952329900032394076152426287837119268081647861711378692247722692347836615226939229692039090944745339097762927033479767547663483262164786890465174567118112204961725349919900268266717515190905345142377310877545590285751405434020025170214252090223428694265295707626408923205347885778525703552149029576426013342550510134558245185996488570338075604156904804208584326131133686574665808739776211054025731452194158674934066036247218606496103409824184406349492245009743597441000542657846325311547297636271136002128903086341761461417117094459806067720920051843424008799265081675860594129128687413511403783190971545093974342930823454766415617673885979417889938977547443514414588963582218915021337796615025785855575036099270495981507861187316618716135913537236888547887226398658756871990484098835210723043007946025448724582248246454356148512104947879998402372463278310706003161656618104446302314736079314868884427256714984962624126283848984181660477520704796049249053695346886106877815843945938918103924093718237189132675364640065308555271557030864850604450190332058530506152273917549189461507793891138593057521276151339894080229181542967760009718625541504915781472768405803296320446000047510125131175663617977389707794357834891278450269905430849250124795460065454272599976070692546096217678553344841184470589876188242515989240957543994456205062010372228091544586853525110983238150306728140246619700107118666742925864826223696830324907691190007235596936413236011353206455096722659877355753415164093069759886428039939802660729000009484036948429111935127234274416794207860759774157749153600076292213361447460686939390563375932981388188902953456049648050337163100595213699042966540042563044472999943280118045878220398189948429357242711355871275321605458709782641956145793702741649998314469692820273772395103835815649658617652899240731456902029486394372016700151777543046494976675047276564460714125534609142684488324669395373865087820506318782270654322682892361468620269031605935033592045407413609893442915529454497463413522846083789201272581081781084013022485118704743965672649154049155237757748200773138597434120723440742138165058613515314332940760994588983519667509950549940042786481893404107906528998810544186546803879514365317803760077523007308445570926213150833478518153745384863368697999369969970779649393194238799070716792686510594417774296522748001504791544771265483446684362596177912478937449558729696571423328520873305128273475649466501273794469163272596281372603363901841065308662033864640253580781066996267361658548315752474456159547467888101395668588323955564948128759158415664929391800871077206819384965494250462224070136828706748769821522973352377639291053418461710668745387674276492774974991338154059549061468733728271220764303938892849411354983107554842162728464871061531098376217476454655091534581751973632233459986353251464145460042427192452554685369948114047227959983235422829230158189503402499170237069798750491485368419006407544887015864708181476406413255131474577713222549550379231185578038393794047998656705437163538933403028830645565055694276240417912821742995066513754952478766708008974869480473110503476449541563038274198063794530478660976731490791654402816744575580614091322829531354606734825769705697383830971696821132000316129517745607173845637079192051478945967599126416762946241509401499960158954438686259794940604532164897796752773207143392407231853913258103360967041288017824258350383455758813031552013701936290991230115050501410682755300625297377745820581664094163019413841345170987454475481057930556294241450051856039121434284488357268748095906087862163613951724569821319352310481357388156299106739081666008787053892093241950850937384356452891299491234811225760257598684217265878990738358187947589984747278552827705610698485596806297219231100506992916457787741973873974657058876164493537469732996122087931463852021838256196471945005738191504684424026841070345196362419041938719602918914327873757462606413954044303787861364975558924642687465181948035095292170409860285070130479125259597286515747139184081406806755037149388982698621443129532215177171251841378743993956013054630798538402967360919814261141609292785857647411446372954034687052033527369638522550457675448037000469691078714916418085680609212686880194006292653725119264099117898436422437238245635450772096448824240566916810965553411289015998375234504214683941725833965111915913740965462313503010786539776870345855729876059211433927154014705860972005711368337028695221650962925929708276693490805955687385503329047623526564699183255031504505345854928218426831503304916375682958448913977789002169691062194225584719620263699506843639711804336031743584758642681973385432272107414345112181503479283369523782907403134780208529910345810657149782921632414539749539488784027740168295105561866288483702490531840131494330673571415983445429776365720666537986459619924554562284855718734437270846700451871078357907536365769910600906679409361355590455920192169289961561574261223785181128033649040380954366038417623487487565996467877582762330287324877311450918406987827328627918632012639350135301942488021967474490569227164593727837310061866361143355636554471433599792585786801807072646434307897833862432037988124686820152886214892544432527225193348160967214307030405640211676910404438655032973199752916050332283549347132073992412173485492449845019479778171498871516830790550996611955789628360866290898285499239956947337319162114471713115728179893281852998270899039638968227750477053416378281726497739840873472043263796301568327094937702230489330332043574450158617584234985908426473145103522411976036044300693907016974559292271837359530290195021292910914236804227463777982607815691535975351869054552791527826457401512556249990010091727497266303554078957020257781172081184351494689310214615841373143261464063821232158714019939584753389444332418748283219969925745985329962732194909937545964733274664110681770057184569752636047484910686639318541180685767203285096605760799934574733463945183398957697965400972303913833257206017013550500732356840226605793963753814315662652445858499782822050410959323203005285800133515846755355837381689668635137590603442232636042948306231528465318733816711473782308519375458076497801056594572393720196131591569283127305129536357402421277168109927532818854517091215862433701800566165686098048577792027076142090219671604410681966563257354332893852467348772036391552401492444488357963471690042655852547971951996981792821724719906758066278991018904169319416010778583792230306133834669813725029910939602872938357298563463398428848265276988631361924409487744999215927478049724847598826395483849040915239225029501182785353620928889792099915941291697129543562798031396187501808899765822016621400252608066683412606719965860702905709741582727261879767530784192669013780666426976567138551320040623693241408029682736129937600690787021430055094886761930751772755930300553727175354272869937018044033061734754990301493629670380566270147157121754585248055477842195673359610509282546938872312166824554799314721441519584303699863531023540754507756482936039329763881142462605174222673388401039357536880902449533687427417956016366166983801006556674519727966470333270611896872256462538451385542335307694917341970350584655501408839208920178348836087471854883655464263105297461585291476440686223170120100009624057320778821384809502003710350032811183201736679090947842296933333769600717114346013652128141133377139189098496798506532897509821002122239151043208449728757958850489469404241947459579333170162981119177732682142747385530322481608100101686602481580978595855396873754120433910373324632843068387420387355964080964113717862893228658648957274056594273993363986822468731198221537271660758187467886809546605334591139538671210700902099626520670158669680895590956249350533992981681365590831638745268902656550763840320497190012919362033543223215953257259697162410258660595410051230606109305818572842678345178063576340458283956444280214245973641464031228852330909583837279170785150601797473085858980912623060834626718632974672115487052504730945733846109631640428187624581568986834031645908416141035152117444888250762465477024131766233548524227427989487439459900875001559427270785538241300705877380866166884773594478459088817728964930461740249584421203408941622743618012860094462213530280306166722333406111140806140635073526880524593096611169000314862888889575727676906765925531165804070702755161190657043833061451515096296191213957503831119012905444977220218784928481697773682509435385137088075604384546150362205299003836839454025262392202724893187789329598062008939501201659204765572153847229382656126304691308180082102821085891989882458787211588437171539636319930451540293393090169706763655898221699476873604036803101433676343123462173856270399884012166104589980293749555400498327873420474767549739112458454267646999629485452011210813430216211752891245516741641655747002664678422535259730041230307163155619781814297955222212549617982453210046930627081842732987655615586663586376999944016544195521827411060263085432273534262743535905071125042746624637598913391911549263493635963282800179251332364813458340623399086119463028154162387898078815998586690494523241408798000761002529969460615283786136632107424664707865826674183271694655780829387508488492140982359309149205527036977720910358332282733999287215370079750456636334500390966602704390683525822710137279576641373283338757012875330690038645454681041329880441256257244843594258815942704559354987508140498119679843090458430398619163821728063638789610333440973199326581834883758477875902632368220840625629393152124491089452682054439712434447611529064901283786835376254751489426110792391855586642934510909374807417105216845559881842145251425422094263190854280256152735978780258840143411239319184248158412331668378044098711504597937308498947889847549602623655843898414626421429934592573021941650302867751580862201337994108260664468965560730332058510465991110274378629480198532308324675193967990321272126578845478840437666108768308627369675456424487450142838298421653891910024383948606957487848124239298109139528905773818495358874882825479331694352364258547010139536179817693944003654928123231508565619935896204799077252640891849501159862870011650811260606074875964038620068015319793888633252041425839250828072327211988530004645510357520568688893319615555992157245573269272918035580623589280243223658254135825240467020021722024861205234977721251423857927871760998744263307756638574263109277468198340824073528196704503911672313890440303439699978380262477066639348069294974048983053307089922132042121247870433621690801856265150994267254469001115874744956230097469324843140955126011677523437455278649446552731508656805798806883177320771568606864199713033810694504189107001032785410635985715388973051093945268906140261809539728684550624819983102832916843969203437724504272387404514576741688416772101935329302273947850949483110124454456730115924863519195136344155469046569746531866038763303567907637516169708938167517659899406250993534321984030693649212315982679921466524307281855689555128927776233451539530751234012159796266626906612191796556258990020265319188734058381023977279493296937880718153755908847002614658118357346018093812883922472426760048943538006741557451815688041868017402807767683881536393853633874156297431339228929326227724943217844509839095493761341313529338603016360214104594502736089103350062742378982473057128480121992976752459460049690861223693614581014735063915236102599358522311936804299366135618858216683289294301190136484898781451878209305925040040613562493756837120640714568656198654112546107456941112881510043005921662378566333484984459367210054105192244079203836962123137703351527717181338008140778769933195574756207681344037175127290482115051785071867733382062064341294365757112999896467135057858879365670170987840161839379171764922079152634117521431409938997342446584911996980439324868068255474367274425244160407487006773236811008411950917827700242941337988407492871586693627376994912177774496202536195755788811167011558495272636209619663081897187775889594546657753453860312223198022469429182388914891864574144610152531414505529547961200173123375600280059482834577185941169738705294145572198696846444997852613338007595239074264766772811734272507435632047662775952290687762266893874123709499280125175770468519146284378726062588160723285102372568670925704838046901459604504335572027644760880593485330212222510753256635160222515226040132824184859067317953881461832867046887132893715072987876767161332597371205621571968934506520191998678511366358509414093249696266986384330956097404675063776188272009228492220566531899317510149379801947322368030607218612847751673716770403250585089866582135768466159144942816915421480675232622231778452061865041214553305828447915225603519266294171241963088459120178629928932254497405385054775942586313726428893467796587915221389780030189092342855779674858944374851420566864446190579367555125860763321151382206887804756152347536172657823286245063185464547163013163812719074706464298257676574504282559523135621485355791152573813876539264308613834074627442530395755858315223962882443035835627325119954397413908734639864349878830646339993049505103128214317800312007928421964124939898557358658795564732366100102539457730352220034134099683096913098227678755419017198956253626647453508475730208382079417681827012890164943186083002004049585342027289848811866293605790499979413742693845865192437905090051994737315683462901125948971656966951199970152978371870271753588512546126921002497272040736185145142989235132357964508832424080917924185467976670171069032776427454836575163848481694467577587083670422329380476415081352696404252072409681187463053821312573881782094272788552880192669220924236020725082593498170346296978432105934302270620460666897244475878980952303460006724933006502896953749778602399015932421695337286847223260965290381575619586730281748126786346075205410413897767007945395307298018775519674536701776436481305242319867481675897485141114466368549319691568476240924297920716644968552385352203515236556305630775922966525721800988624666574250479982042893446452983544671716039602876677474303598796668320550997025926426997012144479427059888057656559644289406251357474185742468647731688065212897253301195621048889807311867627640378953417132219236128321919980476593968117775425963899266192023747866985767553459362019919374554101064917270816740337165015742416494796329372017824203836229494817642163222430735665554678794745480374347007178621443884945551241383741240220884344394427991337713629682344178867117382134961983925321616238668667511411700309924688658230195179501183029104274223366873956597078453981925995825735111035489870076086826434628160012364544720407383919627638197392520701161616392371962051086905322576775575416289954859175898744762433899459889388514082660058370365039904781757119866198650867521478187404444859526603874912293488842858091593153727884150620249815505639346755283543669492742356013679718152418429359842469232803772266629311553106803208033597883892573705484271788524775548014189878800030386176339935127978328275148287218261726830931113122085877648697708951319767708455590206995876841050606934305094598222507388878032795943783850275623139107020876340890806917750264550624318684355646640727150250519633279180609945797996122055729961451907125154583500320378509642803961733004815423063882221749312798578767448740340189403773150869782009884257457939948720480356077596894456075078771854528737334020523842939149071548085888670411444142807836444473231849215676125803177206815829329671404131189152142463997079546396350138291283936708176327505145404633579295344815323431163368533824356277575256317336819042890169282473854976682982129210123979378667892053444476056275424227576395712330058727063715081096759242007971279009639015826613020977011388805756115201159548326171983677263754094517438214996227735002160752090134045078397940506876811799079762924616686116921027493145568643065954510286873646534717035260150741082046875593505958641779941185049489068622507131154202705247058168228213069497775271925384014538880699878852856984458419874056020391997463320660563940399308729654759405008319618603621126285824076330965666998131138524724230669612358041429301141177603113874585890370634875790324917683277307468276649660133711449396211865355769750100581102137230858723143549652377910410220579769105025237186154809243160732407647086664219155340194875042592369262066857368582548398836512719003802018490372024640278926986904261121970162051464252584892152252973974734016456532893967092309687833118830614671376729531366216007129627364735493232691421142293156729037034978389231488394670320299574639172257495819832789631710408097598601994353268600510009958076044090918767663413429244302095328071915452579319436603544442621672200779696696109001521226171948380648998661874202922370778959051817851510770070098050972838863193153909164414400366848985068023712725893568382145195099769308771212405428238697835140418530860794709738512160008785300037053561087179662697991095125922716501523668448633186235465785603208178113410030246713275411492710992502552728489613681256988516253299277388137421780710285022061435525018575539969151055971560323251288389570184174555161610416187465595705869905972923183320218764661483061253611926071386710418090740307234153239574984306928790223540001044950620765043542698842080729847952849038993775172002942531102070644085353409383923949407608136993465195729141064349889014081107840777403716709808444891609716477948311237154076538787696651095244829565525631674488928551074166138824644159051068169616652944772093516044695894484773915372828279066780102269943915748201164458154829563118814477196094896584547580152426246588639595258425421251295297531161733348319249070961142353597254223669894816498491496881055210429038246885413191420735389704984574936177625140324215483231951480589478653969700652444139405278357116282768111283355111717365164953823923459005662471747217702882090459647840106583394376611743979896566591087688128461470125335401139013616254370945761906744393260058319934805329705779300890933503417595354504581208545778443160182174107738141672834161391255950123424533097534867704272747423828447076673297612024434379934298633624259687938112762470975850256085096704526923879520367724609973561202982175792523989123926783052890350968404455557734758430941182905592697037952304537775514934820417813925257367778791949110998947538598183134985612138073478128752288027818504885519123437635211482708358928534332757171410578550029547727846429871879909520184207033683733593020532402490853964988258944447425619989908632201440356673344356152204910908996062251571280214033219352920975644494234947299856632623532254229236430415920107991773403286619849207388906530031258467309479018547890126865191432386863251490319934674436458057562216436448965565715205735463470898357924605003750069301288548027086474707805566506936909025213564362849678308370118576987189857182427770857239567372709589987778804017013080160498855135522522849298603877472778947356290728104821978079962686999822550000377082604591171521851153901630061626904341096758714458167608861283321902498260177292958793753223871681413631907419050439844606031680289062360872973951507852446980670848927474395371647558490452189545202118610933926481881844359380001628479039615314487926256074458775516443806000872177935531472531600611991963342388957132052909896248058806266153357149746506559978218891436867785718465010974858861661516752047338055041972076600909638656724765613554297461925937808258722726161277677851111484698013652573838152484784554613605550953872059854478985447463072674863957870002992248180932429456638281780503200441081364473021609109188064737228615028925420777954263866249949418894545262888536695330054829251530949028121149037283793927621195905567952510583913346390189527533011161731488082597430213766652300182750174825799289756008095714170059977131965326239242252931753180204614608631694385922741393081310738883538714865165124723036064642937113642386501760321448804420425957119004666722342933631927015334189076490327796433872674803833503021847037861944240863238172484459012337760562797099093064135342148878888559744893183729084612134774128174445065511626899887062343482979834080250564780962250056325662153162663189407102066589474215526168903477211022003461412113007866116052526846849065317346419889980421683486365886060728200219558506786930853186280428941095535673779512934607244684201768518234771706142631305302224476677431910086206008846127089818512895878178405262553961400754943650371205035877810661788182464496878635246524367255232809707309144233257600664605064811538207525852265625493770287112107457780697276813108633921822017838282615603039231324749268241535025828207647075077531694676500580917068061749204815152964574300909442515587405834659977849815602753852818231983885463287975737188073549295596296618289346343198830598628588441222856911092571405173674031838688333573282606840835757252378247882903584639827558994824833250477516833723486042513218531151221525187299636114333079162781977202544351761665558915789880225911584766003263047041516238153102956224908020458772516176215641048495616814923762857795245444820447184178238530478720390366371684897205118014385038771103929846952706083142483219049316430764974329256184192307217447759426382626714113336236602225546739949867094630061237965459721611705284853177848822606585741008147343966832494038174799744091897781012918613603405982296878922857343847373917222551008573705598478672613822472311924736031959819224874909735216677997086311940014847176074513899807120280533795163053571788590370961292116645132911847320074235981134891496104984302152125939419553473095201461453088128823281958109622150209496396362949900190411702549015743168397118786601808205917751123177950964063453804809396779484096293111012275781847352350124634843545025358569289320376167389457898862918806815201396468211443124084475753834422974614123447221992371459917631791131776513319992086168825437834394135410939290298000696104948776366741451758121596175415536997530702419495043811375685227358013874918063978032115687717782857089261562267679664413655651322180546264523268873592168640417434552591593253283338048891976857555405101125179702852072675529185722736480647997649745759202720881862803819645114238324798807055423131668241389842701668063586673592839935763973185934567799198327864634750695489559929524575909166058432880764129551913839861126657019516923484020427975168919315265566349462887797914258907126168126229145758850905614765564814704742238331496768008574960881849183597737389944111997085183452206062489843740561752114365101195105852390549394330802618081668515624284451106486599050439360600097385201122363422181524666743053715199081650951726275581931591007623162973818523534444208281314316556713665426847787118199223019641348718067503615175761629987914021172514183287946013612728703803540951943433964756426249132237987039313220748976871470234848296132553902264953200914000980983222733591856743711674890481861795991663084063264149719369713599115174684851530625498985668032958583803316821436392844741281039266471032690404521203921069952694359679637020062461603048005635985932935045718215203829318648264077009868180317905731208729103122385052917050782227608039692064821485392597301082235781651777603356999554210982467057005940721911995592684753979911227748391329127760717131546854960756674779337624338016740214782901510801600267742024496356033779260220456279516951499675631357672121386749164222943035725409347218524493903622692669941509416331613318954175053220980415102403723252943456947768128343375214317655899686238443170899201348501674759450744327174991813412938586735542048723900111326813628831970745642749743561822643803051213822949285339817168606148655016815585195975639293614509143244245039049974712224135761556094667764010889948531270669810294504485936864763352754751317261978286981830932779974368213249284880748077933794697232409504579054619255539365963952345949421720532126025663009680331920733966739750932297850861260163590075538187615698612187330272879104859982600294935587546732348705213387415702957862445591604845708465719519335686297163228856129722145090305093014538492451623513653929024742285141922884970183427896281640776688380332032488110124337435597044261231173580486285947129760967380399464617998636500239027876628931988301542258774363875106924542646007542533045162365521846928674488492418062317557633361198423942631309322167742643023058491246319423737615843627548612597666023591431045023219665484468991117437430820940190138367865700001425204554941379293597185316263706677026799572043460702008063026376062560315182512515698317497092927943334428055673787322096366628349324270355418553536805472976377829896569020368078639153195404643249368844258431981249672384433763837290202237588479590652064380810214245379751701527651623342207721140993835057970200674961153219819124925189941449902457185931968132378629101066429765519436853308532679179586956754821822500016987484803246102744136396887193814976509195694164282307728392628065897938814971123782522813349846653087539700501824159603260732791614602115284843068162301796760641223720849663191748337831413021149486949181305663476897953958994803980486110303718468913200950493539829109476018445697086417537972219014374365214728753995447996666214343289567219765561141675675683917169520389364989546244861291401508991162984672160307029489988837975702085726201370759400205256349085181921543814415613850063277922345830075113212985696551170702693284140262266797141675841580406866492441239033637206699437698904484002438944754871677617702735164342003702669967754078463275058141486920581130012364628761564734449840846378066042220474502949540390817579953625282009666774457658014057082168063080855069969865458440096035105621343229871885481729544188343171055764689356240285434577358037890160362522440884662648633768906839569020933099092712063855508974347446273000815213884154745119327007135381503398984229246983884059073071642626292229588537958722268519620273240853481288573480959720242160259892732336281467390966463327745473872778334905587403472148297459696129580437403324657663750716700474906576441830596551560382473341950110020852894773972605219814953158508474011174855139702872900579477596358061083474935124304377491842712661891551442698413296830470198321206729543245411261176430723755433935563504766686028253464869914018383438445308275955716551699118046942088809550590790771789149970470592999370301549175154791389314468084663777776286305648774513372504777194531072968486160648052326842850581811625861652864033290174958426606682022064157854463550470755567952875745957391876989931924132584546996425080228713437797388971020750769984339202649359137458234314866090559863873047094954648952182840834884927813644023510880050331072118399778074477300516275815758889420178237168498633011058601257992454147745597259322333889978742316293007108313485068303546774684122091928304987710949913061656679820707036816972399526413474916354917030629786454942047073523441561843089647274416949338104321309932169323742688788917938468744258040279728887061655991299474640729668782232756953553615199907368570392032048086905297844675272538511209745252355193412195931248798883257130885836785459426138934864144310445903559050881036342065761563643181212077046867244851656193024537110797527324942426724231983202578321236804402121635109788838508607482247046499482407580470484241167817212180320780951080832291670025043021095588524041874616328682489674494469114784586040034222383100105315379327148472331945293034326841826222611676752249062273928801113270500104908001350560075231875347813602122038932467797211420247792796681552905979964188068991460045150318011188059270857116969554806858165534878845472810583797530445346462245911704652261402965976873920678177885589641114146576368802758142170659338320525071779871572557260159540337926285711720586533082946646701745146477723925161710532069079004821853791989218286311610608823372560864269955952152844400213093549184431484825088210068397739965327686779541740652704686265170559414757952463816603650886032695430596906900974797951071085327925290183812407934419104916962387257476827508166582085584113939612035668188771413712027136158118324754169922780219317277911697182379986012065130543406758946353255425041743459108533487569587771986405527880530585477666638681435177461771791869460690325067649444490115968100954481529882043023089191614085565338578608672271782964018240540963787210455400583050209334203384877415221690178085381753986258211132074704026018771951202917966567000790738796317631647100254403775650185840773022705488796397132600233915047909715795961401918381104927550659916948661946795120338689691535152848592404743698011862660419122731230284697236631156930786850764666402735042674963895270622722296823611515958924092873308399790944092435004030595048943583732393426277173521918167402851902346418209493078469651215342476354936967650227081828016478835721993431559450677682261104260544316441067333636164024047717461762950253757164067504864775224986839604573624558443969573485174218838898082802793588321824264146087907231919352245711565965807001168395866310238144357204195648994517515669826755908781160055125944114850208268630179020915775055130768509456421226280205261108760911138148096996270887237799979080470232497549853347223006788557643493039544903174907659153163838503298692275180478882718176423480274426502311266983217827940516072878012849256792033226430487060825862207716247281943414473651114024576659114492900883430768713285815267080822721265304184836895892777737046562033348266770405181698929192009542953579434866828010210869312768122568818842377087434561177674048934698473949033327085778905164465538603445217907050136769444232262164316315544660465083402472844482812672980132533676199374938959635661197695015339161066156274559176648525391863675676511990302620917064324311155462640431549856400163501069186068047913041644032204380244181051784137590612870488865099449940165677283679957313537660874284697182926210537773247412092147519653877208131016226369343046161957072413975161015083372336728815140117266138358760977697007536314329695314765634186332954166944206009670208248222999569597723115264480477866698202203307546527067915426767021534956997920426550300318066802021740490047710583907900564178726148452008522541262039559914664734611563726001310075315937453648054051233815396498492130826031684402063506889461476111972323173960730465427473560162347880187010269393136059909891821361688893062832783696923768788727279760943017083166458929496908191842739906328819979357415788383546373025124234080398369022538812077444718256411487412645643051981646715569336825137239065387238023865015252707220432031528784710447237580909481104705527386549997840402878208761092272392090029096828383416718437858081944826861817581622789629566575003239069419182416968805726576435544016351767871532110783701277444959450185591524987652687304289148457851752776825173054934993960172073753709744339135759653555640015224428387382796115137244439518640254102343911392748325847815160240707329646457676823990549529423091928818512110363421129102876567209967987663399780979878479230657082538746810062530938452810243680921731432109786478155670570973658034338515646811046809404003545159162391147737736220389708988678553633611078887859617889126630687535219071069359959272688723073030916437076575341615217437968543168936239133746606290754290643730059196696126947124998106987008080514817398864905424010779758591661136446050897417257899604667521197877209602345285335615151883239547007696980954370575847114532712346447957872850302477862064926932486511398188746832470276900446466458018037705398687811780545128955958829558607225484762239146539719762303702738550601664659487741112481962009215849175747912876350445976364203819508902355483562894335568526148965858681343631194930609157428043703727885823750348822069856492700136849825090338275911935585063466513115674963928518254152309245651629499006517437892170262710234747232369245775135723521932609442161112285862353809981694967860770527065514777751413966586755023456188905565078481796895487613549541518686595733187803745865541475433975302032880911489604144708326259377435617415094107529754139919900900721230300159839758562362176350056616043249965662632582497010094594735166969835628904248829192319852677202001799725338451668197263637121578850139614857963768091157238666474422390151505875267110708238031479259665465754086151941680033594486537535576923392083293230183621631095720821441740704094661740649970015103804010864353150493278225757162672246189461757405632093905795756392898285730602468227221261288459326282470298100246455263405121155562693615143280872847591668935157359704630818868006018253738207417780007330872642811841019124286790194090754411113343047332027595244862439289756076205840743535056892108839418071749726330497646313881737397533722377666164734179735778076010859737707050773388269627731251100166147285233039702066018510214676317477445284901878058224646089372258450461961713728458096605983298077133648010337099694522616150434302242453178946192813427962545273168284704802414435918240947067975325492806336804949757280374894274189126617329614973299397458636819696796648404945221589450493446240913793967032218860169491178026341335889668534885842949932776810914757396225826203096690011222411827443161213348397543785578535872686124440137072205753842946893501919986880934066243620063905764325305561511827155375686104263492478787171815194483679420169060994525449155384008131524089100515333398233868382421943991747480420909546304025495562944805329042992690026814716458657506567431321603383575917928785145582959908609333191061888111998502837154127906918810770149857638838024705563220324221104562609244435237498493252403752401454771708275755957977523650622142552547396068201185587388171438558776660174081017189266575635045866250314698955599229413021530472661894035632576956908378003308235083819197112918654020380257292434967988928773178822108520398727468961072479496789420493715078739823442498924563252964308875084779612742296588904108069398036480965623130654239676355826660706667144911120967181982966856005653485650545307148107601274630789957498687678767302506156543872048805390204732775379710900350505882164770436665027944049968257388141815738608493501626943477377950718748380491948400598091478897952636379019307856157366642657957349392710268061818854702216915347216002272302481822598521898581415132532464884719308040754307783528306943275054932892771121522357959967843063695966365270789889107923844072986673198002465784745421789543846065928979720093447029011398994448778374630902863039912870428242097606274914567120536397772003357159523199782547521846232104798353608743331624872002413311165836794462758701340211700453266279775347856273915452244350585183149362883299274826655413333483243414081654656945415447235922224224546784935966497042304367717980058263977919773587966312337838702949162965950304647328894795608612846565032466903573058384701393082133930073513630275542435967555863999867631222298366949126414437053753164521225808280954275361434883948806305629739262406862012155536272512906815617403937970342570990318380260843764550779255258882124333931515594275466451781187922264279481860412638508868602226240293459911028843836287778370562739700105336275946889754764336260624235693717969322246861035269715752065918769504620611753382230523158323124188467728430596975209350045674375424051126057825282856835370175051056703083252728751665446044730569842621268623515152466507028155630277854540205290177804259832448497697045590678544668745473072383626340732447029251236788505562037468336063808809226126615926266594026390599925530299369840583857271612241458433319312701978935914647590479430218128955891365848529958874926030101773900295765520064228394818243436112471696667737712924735541101574832723561243213899153884644773919171666416222737207670618522563289337487473386575617366240567156166620170589526316572587390640729232300239719476013893543435692335820145494662770606520263234620369325251735866178590085646331088436002795737473921119943672019156127942415151727216107586286760317001212000360102040908724196623660534021362840307962966707218490433049542519686705478743458375286918533603977870435704576549991753566610944269528638495254885074656439290504004817799391494438525980645770660842615163943034601303330797669185445925418750414387771193247770176942424651542416547624620476971824128661083300690801662245980259928886094927720725032931777313020853230140667876860601817954467633168679796628224115295444800002976704157970554411762824253870371997509689953737815095414921702827197473458611462741815458874750259434088512838761871111208144183270985444883147625719953482072731817086462040557135722499819164899729099842544198365871218248144492774594777795035488998002589362242596428717464645926692893345295919454203358280602093071551048478963685954356086210796984117966024866657868500781725813963129424780516822844053254428727761303931144364710846642185971381693057243165276441793293101400160516098913296525808637576123490728358703683313345375031800672259373765516515844908444544833340837297143056326744456097505863466458818858819710290998138599725000099060779369210388161390904222259517104070915657939473605253821603664474888625057685381825922262755692144201690202554393473839348303440473902363997772951706262308097493356913875883505875104521660683638730740912410307830743954760480896421031412229438250738029623173723867035444641907901933352714935849332685077014111460755733845026040027113502356838841591628091554788440546770944533445737044419140530577460673995944027947818497495965599661937902924597860508474652448534580035119886698939727935731701817008769142483238738633025336186267786027373312164556532625498306946471295488314024930710538324829299982103159758737700131443839740911062162426457984991974271030423042912257887040820904784517986107522094611655257658473855527726878730300618238410906422725361609375143641195136704073360921782565318410329059711885708355802713166896739520217507552602960446531787330872704040495415544931562850833557507122776137530228603752256913268414740728367734780957938617248804773186634032083184241141848462163889556462325732826588775140760406694296518299917009222900198797180765660970304305460640012304549726308107389493264871549192635182776341112014509540049753169714762552029742496240866896990259937852086880371598939171460752582098848860275574102880578163716304123652848086844911817648523016693728127515511060233511110176982346920402290915161693241176596729506881097714566696861330614549489043522601796467576322422839844936811465756845272997738322665036377730851159684208352464461213499143320656551337784119171767947040743507755457145185842745509779496295996186420370136857897937378080048554485715170307108115802145986355989754546406698068305222803629965235301066234912961436695553122812948313522408569343780305782532324921670368803568617592706769957099778612055729180704365135656767759643018676831720827271416365617256590271764481295335976664279807460931105420045041092087347457883304640684932695886153296406961074012105629624118106538231491414288148651447018574899881103426068220553940026407665690080943148079286813873419931519866307766879097525985977106015660724316954312632091712519480291048074209539416007929283452330249067577853083268482656981120498143410584235700056275273581328000831632292806199630179385977057696491654714456113732683553683120884062753452944488264567767437602406682032583016963483293488925338016134518365537711963181159133409466621207393475936601264140492542670424862727885470712025843074034776349172985668243057666621579776684228378681899204228794748214404173604439109175712211184263507917751426343534038009563254822298118556772851047992273907294812702935079082568664033390971681932188843988943466650148904700907777744445707630713152929278993315659065947201544833174556120704213559897673572291717389318049174830789804433611114565853623353673737594266389183145651964761880134922857484928676040422658518610536578130130044513229332484375118635563113407327457450441518246253544143628641514851004419055173378517494258063289852540823381107546879117193417651618069739695517018668080443891136569090376467476219259718261107039018716205409694864664031286428983118297940673036033250690793246524766442603366898836996638994746772284833380923414048455163059746718199271058677768560604008641509211216340895482487190288482857904883333347243641724780587136490497790418001238047387395405471692548842530614603981526199511587062969506049574085262679526202699632006257912007950740755238435286677996965442681442518758073228561865898347498946864741660139945688351337147857218593319591973900488553766780102330293587372483215935396733485926737448201902912969584159080220213524129705659704373502616787776909644870214452304495050508426186108357508356380216784937757620804074583438379513821852842993939797414221318069048826622685160234938535384702643605103144837020090006401142788613274072227694661771002996876464080399610708018738350355864075944988116809333443593695414978971153326177255646036607403647493811769602898898548511737908910650304939484521309345952362200192224988809983073165983477063441563196101259492922389699701549833981763472950004383105970040575095500528860420954792913588469708220160191403580974961517148424469601818728869614934227895571420838593099709562096631943791649629146374531585967433169357426971826754684574466366735435903285443244317570535527557899614150780872295758735972738994932387600635585531839566265636316973951759661007430955288430178140736874710378505262206561926262038081274773888034925218591142623790466923543671532487125739280232102381838137158529942583383261994640994678017552065027058065636267784698790108617846367824411582203477645516255038790482783101454378646203336736248458932824349216172899515825852663620908288732128592069944627855317204652662348982070590457596368450873437633825267404886333878201642499003545659770914222616337080134634459589411841914322443788899427630543093156398528772341724893342639269320937164557390873576198765686325224497789435973049621811340265788487986902253143916684744433498294064551735271996330659146045257679471773787191307839503334702731187434002576255694354978243010225940221438290076162617304366960202227276638899630671699039705881508958370169460678967942069338048213111140614514712456702727223379139646886452366303135854856284829441954971533557751083058690989442592237360710380229053902025213897690004927247793355781974521554877046646896028387162671662641608754171792055699345071683879617767984440149693037926433129247985232744367727939638705319092990503063218272628537880953504644387419657443741096071339772234810508318351743043398058236945509728051313955449037453272515261077161615621608267609542339707886224860705384256186723262648268750787534801911023238830749893564765481847322433865913170696547950818499121004597585343787913617191852142549656937163192319005907725327678300071308288719541896610671825262932328569703760683579771846418869333426430577815224452657615356297104515786219384338302473057740128971395195206800267778217805296644708120903823227809652351130630765996951026578285467248171505685832869707244684604326578814404726084320594678120022797933782410692503213156811271285347760624002038921361817360737698121020302829105421074270552966719086726364747093280641865348043161048386683829473880064777199278474341539659581567742919993450369473041020123896090009184386107658440704110340501461613241504316019255809844792357064432606013252951771863247126389549863267238924867563949683445897344351336927111924082693361860907808072007014679147418173023910231562674404312621978089336101871538007180271803146330931942456146193788509775809763182065078402327227470925605969374800969406213714357101258534491676564785146240899717823252514551579932329414770045210479915089506533919330923587997742258592831327878696155993587662538980350480088369058859197033447145039182018745615468046228611793470614251581194163206732786948984036880444592269272113682721840503561828466191990467336716114550012046064090824171381204105285825194824532104790121437354941839531700341437351171686754235682252789787074752407492671696704751532636009233545984692044259896999625026699319164670026047535530564135439362743901483704178105698560327145088420534758963836787140889648945177163110747004272125129053105410649631830992511425408730540577418621049953670015991690753077077943573785868769156669200995481494310260815949866510400978759283522600535632392218272216206901117289414607768094782125669631943810906084201469787063977637739128830788380375019894834117725248372140472275865743068455580218964404720177711315922878393522954357851163756075900891087430898961406761095324896786086311340106871344589934052004488396531837742795678479307883532853092188501763033262348145607075192150938438796033457712809674225788147696252084892448851923910210423524452177647997633323799801188948016704698146955129769445876968875866751761771079635594558917177501628423466444646311361501840851955944985772044910924160837729797116310416331433558709824783830775338366488501418276792294676109299914961286393410363569690738378766117248443593792071195314598936858820253899819245149823847772028897016580485735023352372092226691348004681273121153196610987694374269770543440324112629484905902428370511234860716791191977638941725215583446408993442739962608532510468260599392909711848417535937496624854598474773400988299588433170090270825703207724760974669730486887036766867568176961518757109762131057723600153752131222284154673923303243732816824656198334568388754731447425789807811142782534348216324968364817146268076950862721372539981847499163337184221872250804845479506918385883663231478070628003103715048165975444994073792086056993168087044047690778456889730218613118173913407977563103790622680276548594349163526015105692402500453312235679154375708047590246397380318789130106314730992571678873318946016136372855803882389779861448283771309042954412216938139978241464083523394626000021161746763809777723284095952163200092704616913365174248103722171671583580369132953811832919742437267542093919477579568467126058485443300548086510779400151290661851319916769105646387897228293094212115836681237420689267425007887882461402086822467705364380406469611414334764497182536688097447062984593926515269674791763428788347604834789455071068813227438570626595308836785569101113335916567938204713415908109006252198508568802886600326260977460432833324858033762418550175745069320064675126374136761385787427308318203254041127629653421942679395343784105872856072695342617114722518063093000427180129992546397621962264611530740452853255894808088297718426762930407763667960417855822294488703113286267285770230862463107479163521111362650263318964068319599097106583305052009596027075194541098004195160740990476445016856433427417942163807774377586900604277345595928388321897284048210915407207857073806429507301525790094533151842522064430611176916685129446869105067238902619299302020352188271397564576789250354786552258333822980139622207683999484724579373077249168813172928448759585298831727142257471504131392357197099821430503214184054038875229035947784701922871292653499853076029475641002055441888160882171884397262522060403611055990478154346091672241812950719544335334391234510031908184503135838356033423288137596607259828495458968147924045237249605946163674679199585868284911618566112603026200400691073493910579455175380630137224560308391339982399111727951908519548439920810553678024951477140737345751896219583235542146029972273297040076050753342790915321150510108974719042324789810997282337784606638681048960775279372980628927113204950618512896066254032931261257115797891894699335267200602043042842301503360274833669858954887696142387288223036130765991908106430940715355314610787794375331714745571816360360040073095629701175711148280679475202974462922626722710397058575155311273827186130238189143266345525298900683937844687954622156902300400573865433245738917002550088662752358784716770063124818086890865827076715464702325708371853183038236171502732715177840820058694220033321975578199311963405685881977997275625370480303580734409285168175555540917426664889936536240545543292034732869294913810357643820383782946983218647293596596721698744134968058262490570690584395187110143362002719564693897614758708507174900855592213398198866463139060505474496421633401582733086958210203783307846924113688701625111843789687731734417433325727099460609492305421546303650228846408701991517920857846905819176274686757832856730528776518363961941859108144151365934983422856345677784537890568213291643120721449098042613321855263915856857017613889737386832894692634841315242408096004808500145480530345259065360394676014701027273768023885065899448974486439171587010700851660584951538461394378837442264376197880911159138836929955612465284436483952817596388674694283412869972421218091860145089758124940677425150243593386453485178253439147595296246041420871138507628556152895480767285025826773635632314719418347762843892546695463804155309549595675392370941729834901189762728880604683248258748719640084481421751647783287717022865779497459003292952968219981323678693284144935276565005058053243893716596365530142778354213952347355873227625308005827567715182404954925336573560362804251830479141599319228081527693631447319943931064993380799982855233143066691316728736859155935180465855116738711449255082255308652053678640781586869001341761762262349712618244160908673695371616562917716770000167517556184583421705449213719062728527988596429199707492728752064186867849685071786366864214867345711432179733596649058900442876535779708937687739477640058202500669885657834184195099948630549720826503297687394008309260890547091289696175982530276197873399601804066725290473106058339370340473680249100352420350994617820316223672643591406152835125589954542655052782910429640421936695005265015955137669713980297459504418371040769078740067915105873312016014592963653384766506427614490072955106745196274573187380606680719310047338932228017845383237152001150774166174015641648553162340760307028459071982045845811215076758740245795068265566661976287239812232263449206141842247833436469330454447928517121507570543954806897365743841378842913004801142533472914941659125659322190674757492783832520874400601592043050011266124340515432523112029021293987944282403881634720596078168433103621164133877222278109463353655741504153079248203129851880316087928007153577758754381984006550846462702148598313669642069101981016551647224100637792540712914696786605811953173097995167890067850171099900168190053443888134258319750079837200239632691560346026361032995856136907908313642155417247084574445244274356146352818062525423707694398165918965128415533800261553362024122926399393414671427886705329170429836636481461595324859288692161892817677876950189580765778400050957635382637471713693940802371031895237378283153563139861782525196673544630129974716231043021544146817687153044901543549138431808383257279511824522757408938357060579682535083146014233050012264713527234874204761416051623372910567213320189374446655415590722202441123372627923395961748211936430277872668704363798634298955227765992420013506615234715755675120485518280568583517898422902757197574006555370086589798550238590412078268918500598627794838394553997176120036871517439726727425498305995799961886228724757475729790513657175016889643589477258577930699375632817722283088666934309917141008170793928901717118879582412016511775931419691411732551295395342633147842234861321479069150816301862172483448226766526223222440685317003684218591348627188794697799704127471412197406497488723556529975943360385759378267940666520949260598245614271832430420146006589838440036599554943829376509416876701948213332516469343449484878235248509029086159545209993813957124916427599275104401084933161943305067599640492966000261599151669256763849072596594868024026700769129227255306048083733872458630788457627385883643338341558298602439531022326873566951026466022271129828666976828412929555813607542408406916271670689944493859612266603852353709778418659498898054921775364515202654364760697431757214622540421186976392197242422340611781428095375510902258823897634387379994551759645925724389986532179125079821599144817800069263280618429648201222935821934611730294295134302956773065281965201976298355448633607505026180608800635804916960983490498076761535553473664111833967102083087939311608184190419167902624844416944644779358227512931744272196576826008949622884110913013250466861673737071755830977494211029462800440760904331295568947351160244823468477085649072216500081377097403551257514020409786781305189264566315679869560332576302167967914557676367835697367029158043059924185410509310443739505666875632701502293365181114049687683168039178229950831877224886719556797658608852540254936217214777845831799037366376774114545623989953740077051343016986909915303795515502040454746333734577371376293478221308457779664553262877222332290700441618226344651074199495582489356607946173452779115105593245380540348146769802988321676072141806244316754219408967677482582921966027661868863197359881657916086313803089754880479171343713888577673729061105416839621137616151578377720006798655157731226696645858416509421042510192948850926830119307230483499435285423471722140149960359009653561546982633031808047570798330869405536539102591372884735770203282222737305538281850364147007160875868388668648164673512104085466504640206593766476216064169862223498466287253805444228092202608663424928643271650191924480448728685376240137318726197436353563661579155653432285418532167076831141853999564454107247029631530585739820897017560769749134085154498368165738004686239628091110658025735459948773172728152038409368323214916670831656779078393081648469615175650385014438420220815736617564133360190582045946525603434497476592433377866259618534056340807891757487978870384172676777695671915084869899206947833582316514836938928044164262040885590110343623388515676767850152268124495104241723845384669422505204368810948337994520691683306678783876317604890388143477045445097004172451208242126455187889952056590570845246076123062840395234330731474707709623071411037335332591705830189381660206648556775349203947814481172980941050728674814962173725257866873262484810646540286129178797390932542048864573496753521506909627762883312029624252865379428399795898723110196880958260474018986768767945020716491083767533733287846290521963085399101023534154867104991999358021274124696892159407112354538942022233607474343531509188041891997965481934275893853208296766174692211321100931401595857236916216358236137578608424266425723736997041623066453938840473413140678234433323942210093415530526264767469300225115664861483150107862147402697334864225448922839521434361877002439794504864865525347054102821487101994045271257708734924770810595251444594162806123715747598207969623504467572398213727442497737128396075321350273278669459266839040846833465983946711718775223958068144428700246126275251172354325188237169095255292086322896721173635330969081126526673735422577376927669201877137535062770864837622417053755770731307992890571426699552987458137934563629018740764402443902148270551239390290122217265673523623369890790523175846619921174179369441354969468756127975716963535269524932957406332915044572422721209588150171654033853643236216520726953464158472791518320798473511838852080964841779912191178263603530257694410821116570544691594103363547445504992905110544513223885883318082803551458302471380633141076028715375893627044218556590347347482326896610852834649242378062249934948011610830795951757172468768088017157005779938945513528519005813405739159372872212796765119122803536667609039530874906491968765978946109562493538784240157933748513718528756229457065576349183176002420601965018177444745027231681375409693342233490018623572565732824334790253220776238830017966002286142445410205413528687417329987115969365905456997377784234720091680634115277411629377534573128896506918464810762297957647996855944821432749351993574716200302356595860616574631470712452830245298840020387145092993573650999195831718149259346363275500379427739583074192120989357732593632833696894711773175366429471821541458228264963164369908411024454346239225508555108619068974090660879810861657820643187554619848528818157222345375207223199704859546103608990866679730851157148497818837587879451380145125409233415013401141007514964601576358342683543541737596008707189341842641977981119235395361353503169813277795742727530723599256528225279119492513677787792254802283708663595105283671992383082781726429597769546352047536401831577702390451499015970222952491409917780527726279369178600977812297900385404203744646278010432363432553646649785278123078636068880257104643318145383513461201483506166486966985684976387019759961960670706056842954852537067506300186015289838480046946668669036499297730770309818302187620695477561519969926484565328251704515700861917837662928592367723534733118699258439359004617573111545374876791180987351984029476595994742821334865985824562160935996329416565645633584204139640175839311041798079383857677918584758118105905606342737471706194606543634952793608672432544972586477039677708956836871967808237737533508427983675114512772477614411761112783048206853098334116581940362060232900647803529731001434329787540568644871016759421459316573160088729842699820491383133616899884642944908163313223528532739953706610966982909333959318936346399251236145980324840370910992936756124585927592825716855263189846453147392377443977765679118084259270694235534471194123770592571436450785751098185417249513004187322218735673270680319467098466724139093100318724602690927565306182141859504890301382319427749694550473485320433419155350584510010426502818205876528577979994199972915854353121644391951823923404303066613272313520131010492769665700017443010458206107095245011477341539341464183770098346143759335928792614964791367186604280340936747703708524229447290579198436721204083462631674204027908122577351114490000985108855263029882729819665066306537694576871762432253481632260034221433796900380112351340756562959585582165091964354084663261532550198559059874630802318347896883562325154585489791420375146756071057067447518801249240643048508133524687282479514287509601930275626264165569218036370960449939924456818326706535686026189370445982097889798463845061883771990913089363029529648857212706080570510471578214600740115066706800986530100914226299608954556282332843282372770424373170309044007995846088793976006470841643033909652857305265961722220777648443610683824727437956674268247063721088468424739317992676503795938580757660588033702992602669164648077699744949035159211919447428245875715834773531285167585531493187859730453640437262476106255202704958427893969755816216684379244867029494172927658028852888318259734028948159903336700512290773652202963720918122969708171212077258524150618023522074188558701239989424904785549746576347817454986053359173018839092151145383697651527348756719248329895312767862223591481248255178996316744350950309777455480350156580666384159065742813068040237175993383463832442976955925976535865215310299804756088370581284916423092946783366676642827845585861416482779135607356787794461672195539699967345283194393328735987678367772619796760697875744020181525629053777864833060858915587719309630046658742093632237485491863073109942907180342785953954397167858232892995597521040855900523997801401025725181684110850919471969429334244253226480179536051389449773987639199121610692809923147638063261952064150163104155698352728327600164363809316673908572007111202064177834910085004274079263636700900413206008783653524489255268782412632014337479553127161325792458379418735695201541880980625967377879155896293388254159121831359526349616143643476676414294253253588956256103346837192160728830081343265394428736848791331459958588159751964430161739334997069710162060445521042437905760717048750361453573206191982814709584291427242275950648617148671504956781889458210489164701758174867079003715360628442555704026970517904759869494855074499115840692856920228240336522016685185247390427884843127146872344266554611880632416626824919797814246992228133852062925679490115137822607342697061078306497772742511285893471162687074216530743742152901603935468935672209590100328483980323624085599395377767250138122988803388442619621305565865518538472014388361581673370029644464829938710493386601403422927850037882675462039116804429231931882424641622559936964232677395787079168171559744596471071095488121475682826436166931325468648010011437606052146730386524022741472254016327086666096163009000291687438072898457717385314713396115212269613511319528758817783642535673762543408600010114515877878919323418064299294350897096525661093514641757047623961546794669872469707719557598378767216011992511223395622871069274477477009592459156988005513530622640241206459960427442967592239496465422572353161795349725739266856726887909314555900410981627327463358468036209505223113198008192715476908735497665087297099484091095643252109832576988356449020677700548073704904821157435450758794340028037062233644290219664627957711218812707180266628197130150176887720196498647146010433741432370448635797976155304638906442442990523809475312225281756914387489625981108005848332598845435923830868966443453493866440274851846536225683936714708327364965370966124506203481645286566811998689117515962812471669920431892246813647930221617229647946213665121474282779161442800196842414828469985600014794353008727987181039975175267961548568092136240508864117537217596257376761638006357973991188933068917125232105091893940446338541158382520827173400060433295159111319488973078980103022472885370334146526544521278636671469403312946254213127056061413787627602929703067423693595123017282197216300471044507262578059094794224017386503508488578484897986511168795491196639845509053473824736053002315789368909546335669731953568393643128836128000702398969151464921903869616320954670643193151337646969941926223035629523686958048207445571907083387857151609504585446341755171330131095257188599465469389112556550002511344242848002934898026444752237920193142847081032639093165087949210781055942770272303943557440570880817682404984475182594250095868532676271702363401569619182719491679465112434342436279885407051189370841677747573197812754400396759788677277245875531204749282250818426875095950111408701561889300782866469722591674416763764041077271210670473775514984906245702050225109046795772949576896820326687779385812872463459834048863177124914910684287796344049698012768497606990499002289371698245981002074656733490523199701940125403436090325803944274590356233315127047897246069365481054656512816111880848810302671542192282893167462662725856742913473086685303500845725326942227494854655672502064422705048262513289639154620767887495027596970455448086105471914531186048290125791630484100294735946471286121172487226531012934079818529291737458578951888046577770468191361948085473108333498697826979292079823619643093384817187148472028916396459879256263415297551233129060750574145781418670770626987996884576382201602087411517711425425669618702586792946662899753400120669284495438567453603661154794028686167470603385370845718520478490438322907824285587425993787662647901910664801060672735592437799937077238317291358566272677859838025843176169257720934506647124736984487418439042761228523480160355504337088778148784540838819473914790370936495350006333605721428355207408841592281682824014258749152861342818986681215969857423224465717789936420198840037249988934880878064601832712057961077734915588474367298998426567136215147682749181841145612567045101447743366088673461910742717987847312880910877302766086480603570577039973526925975896503672285051909094547921870884122473189933824754523011885530133197959472688879363938713890801739130034723973481534407179781966003098145670303358636130401932479713383570580264171445752403603568270130176623413479026985241300591953095292422269240268620952830351744607138268179591336227297595611803212757636521871216739905078952354021457701117058167786540458928710086023222959615932182122424588400610825209368551256444655226159127008755325731407898400745535857251353759831666558214932370173568902332503261599616936300067757828527295946788856904396822838024636605523765797802603038470369252069110326139549349952401545638528293485279737699547100939953417590656685982619900827939020456564773463700566081068585035295441429990097871813260587594801455353448671545984348288125340781944519273192310594432871020031042581071596152682639959601066394618125278067597851873781567474654521439396979901594541810659297717898167813919900677185881311673734012136941072366967526832928456925650885373170403803607877877755944138368412018651237640134826638279031894620036721437988527978733496420839087449880283554107006377404373303364276319757375136741111103779529558127500883071253808693728340628841993675671494975986877614147050617551363259476327643879495869286929329802741227554278363943871970616570568956996234623341063942659786159116895218154437712704527174932017481902562031805117557846404803358772733093579936684908193179589364769193747842550951665268988701601387320541449198601992220478110464111198887698201728551407098089853394615900993543289109865844167366164473195108391853041837633739693599802761398903568997646304300262650157282263945484080119440659996154620028886372361945867969771466091674276617307363652285950999586146227223706297518648674890632585063455021037795997574188981701430163758008462360393141496821223802293119266310059638068650288367664911151232942310586798780182392310731426282813027933551850431818792752528753338168286347632428986963185777412325440677514847616174337552243392534810921603024829172920524807776687051305794616806010253716390319119058968225933280252366972916997449935000069594255440255877387801082938669669023716325344297429754097237139224734932946554103187828125449371994559203930558591058353036694722110425650279467470477464629857947438777070459787579158256118693071847341170559783484521808395929807978167813503006944075920080083374870777256739369068371896405462273967879944547829098769038805002299582199222241212363890885761650995139931411431071160730514807597404510926817326957665685156900539892902499319862271080025425882705958821378865377677106161565259140273999137320864738006270314200566224697531572702034585828947132773624895248382369219308374991211397983203492871045933120584909408169160958000056308859262471118128682980208352641436177402570147211224244405171777800424638298194350163208330814731946831718557626318440433479780428148217730314886212301996410359819452303951546155987640400031818082331150207972087976085675926308472034684867729112175136179848807542283770163867014392129466054131832769049227079581931243527727775486702880033597556060277883819679920598107656606561277642702584924169844444604683682375808114954182532447882425244439635456182182966252515103187921708300016613148398848984596009996437898343116486314429074484845818093205461069416424159939007627024639155574319769891412365319251346900024702018780773370118029599571608162647506087847468841385071321257030954055102244133079194643718488793433307844004306810097293956247589475292422221367259139359675562966394941842321080024900938861648631094252138945993934814013049781470887497893697449270151587769513285683255664932889724790994965589167209509155271499177621009238823910392414957114077577936360007236660569501722428724262221742140148784197165782826468243973430502688408682951973966448604732582850502731320414648830601653076674045444503576826431220028194002061824325754560905527113034879213458772163375294600337710967537013095582071267215988334640201716603689819230401022135462140183124542444733258453357886344274491363552738535618415875184973186104417148492427006075070470717486014683180943394833164006645269691424987930242888196781176533174061190189914335658396027844491057412324745757403333967056137683253255657048746932380843892587629076631124453524300623825644917061225728789612071207450988319040523975970172400905603911559077575373431857215837064262923827169119151261472893577237674694910175147513406309251493976939492918390450092748593792996549800039452830695058254138812212394065608983250724710582732334498572104899250877704023107052178894271477473103500205378655404159604484890191951063420078567858893415861391293718595928582804579820448478707679827143196879230653110445036951270161428444556549346510761595229272112683846935931943950119299987392759072162896212272769867978026288594470693125243148377290864923277110759879785020788375341635334445068638181441072183122547842021393880231031167758799825805445048537868353595340431980320524048387665818671731314880602118353752119347375287043541287387938837768263595416585897696237121160515364441623392193759121681057681836100629843592469348333225896756251328150485607192385532266275169130400526752035361907023805443461285562803995010152942141097583373298831552707050641447893297149282561903339879312474680813076596683676154227374524248430961074223632097926568324663760000334632802873368472905670937918372917948908132242511183867261671259936873396798092965969917936153242727744272397722556511326258992029959781151309651008897012617183834294906768114825790514016935770042030953388696925354408581698415048591350731059030283734230029560888370227075904139882695385667497222922004328784177531794794956785312169604055261627846362449529902629968060453735492037407035109009267232011026774408792267121730014005139555495748872749341061554767407256134364081138879312974558157781800490921959690346958918683985080794847862522505729686145428970776234957788471266792875966700492022919803118603466980282396520590931600766789779340971858158095512979456016877114402895695790111288950713296414638870235813454276461080203651621482963919576167422246090847111044920472151051187566120409509859246100310205504641223647473954568136894863592624601700206065436237484114129457679542681586391589320730194204970688177518768931716184982396679820667544578454435983149383102383360111694943524071904808929593000785337358095736076728103021264264085934786596663259802895387337174572353086251203686061017205570186588019932933405896844243926639181187604268853593003673830028816131663009378492549176774920475818464774357555520436993468679036184324309371787466635188647862639146564358810969799911955656853918041079228835368578854768618569150535864385582393195636271885067113256314568965113973880605688371512743290183329753411341593556947701255192245193710316263796295937491055308128581539069869063729167877426236714615451169955789777381595642550155464771794109303850960547968764830192468504363766020419644745350400138740695469126753713345402281462134933390372356025080038559400998840644270118090544369842872745012162846547462074675777028258065330630648297975424866441881948326363932545200595495462231812540222429888159378129028341107509911543259100369213076940274544370344386527638462669177484674588812924510539501914004791797637167540593130017666814003163329070820996785162918795778526244840006023919035768284025955639819479651164795942813070700709154089060543616705493206597076378943017672362694039853570347938512179016346571300476369421704829860652183210207712027232662316108133004927656897888961082606688583714618529081862462255465894593571543663667570305725240844355334175195690936795410571615158162482725006136155696059929662437328548938548203376833567279561776515544395823765559723969474522882323846413136981949970321124340879718040572926826857860553517994261752526849356808468758964419312804222890418057914435957407667575571821315472923259880788101452600103806072791903539018086423589696294302475843133972255438979929355272426525221857692911409019231150196505503445919385151718461340628922451576344102378135203667771358542916692238239761697695142257750554108000489365676690687205440295223346164235902035037819050065759261511339486910627168096229506282496778468007641164003487258379461607558240432483476321055842343084215441611593581603424472606122694110900082299069049077007335614030821074622973878797209180732608659651320868850878585086719409999519902824608995053064190018403643888430782774453304948802218907311272359385816831325612438599626651326557218551117306702735393232864504082400930161937389740410915458234879078046021858565493751381421322878714768395047754074997955699765523529258386516623883292016632713579669815133799722808481851830919902955067253052712648054762567766508533329326324854659818695424841427126551796716784341657665026786416448194456789005098715770046255302440950571625085943866454327841460161971509881467143022776780503275971073785143835236746794577529858272827605765226875526717764702206459524894702323852608925621021336038647714450927872025660405446987615969107100120054599566405897740292417815723460217089938868231539970282364817659754817704406171830905812231206971346187880972829087368881006870143506173904734732780311023321156536742328264352852570020853773115593563578276200556483010503356841634444633820246970926361988887281667468003803597497159769581962975959956153909118018750356063493340177612345285628702161163649599702477526366280225399387446996824009475020756407689395945119274672138747229402509763398439195557594014103864871883263324339771199475393270506996655268020933891963587091793930819266168940918927346877880732477785942300707845120097931664238158076478473286913822415181831972652501723395444808934301329923220953306045538659554286574544044939603795813453288229903516644319032569628243336704450220067381769069202003751388750262487549707945390504909773571844104474133998310793171437178096203250115389397285301497805677717258295603209708628426387668339339212684087060173461837671507523003461136448948031450711064350112214568380477310482495230741725056483920827922421623707083322346118990596401889190359564075330105216897368509066193092320402116128469813725577324760957524794824556297259517952229017555275861838487386683983347249269660451298445006735488652005256270679580833625326834115443155465339926111616272421540065976137446882665990618595917709196100003259848827560570260477961384802981331718295473546321726562517858404152031814261719773345037297980227102027216548557680856083577664997022027950912821941454510694462297946472450510796569707995233593096281179374197419683359370918339309170559122682833265776846008322229169658749700409162878553138245625593822013772090968284640847849106513456400983412780863332972079535680271652423008283929404707526509808863695007999782026272845686302899690191545710431167498452558184497102850938189786330582419305817101304216542946904488201926949171416385345334637057608527483766405186142953200420039173321950995191956727420162669052347291812205676828850430802977796600178319266305592575440565577941012222542852665415498085997058557507161612552089018706606737737534616252954059067707911543545489278964473488512202109564887878410431235273371147556887127394863394962236917205094773510927931468876816588018413426069471372923811885527971288504926626847087103217324646026088230702938241367842987597531744756418766075027312545857181226941489933389688392860165111497720828305075977792730122489008650741037837580583727124872543984321604610961476693117294901362576781731933884517675454644740588012799889148039901277736137606383460283889042138096771069493380065906368712897501831927667154262741208426785070143249349223096921028702421124443358857129269636893022007735364383798060608020882732799356559258922909883575498528912876743573684875052104219932936519056545745091060812915280930249148241381734943506416960149885496336716606697948267025198471354329104769699001897283167018112977556529152681119046798840326548604699928064712618344796610865284163022963841905650940668827655847256058302893551668780229757035689095390106881739610133689631784703936071077562937638332245495899038630780651526185877153569505678643858374802006004067483042434166891466862400287562953468711336043018300184965384709918199047874026717830933473238861014867917769619232223583304073463420777337382022248552678687057856757538133108022474242726983922016916062982302166678213570198095813844198734227913506327430478598449372017180302523690166049912626756574080363659180313522444183813654158475337039754758708931429808618586347314288160468209884075039099367737177603409360047436728065524635403701155231774052822668499745582071417537548676621389237494524707228424077039188565531938851672121331823943067488700219334215643838965690434898197083677454672773145153019223182764127038171953082584624524076724535982856434330430948468576948927190989555760717400726883236438455089845684776715210108344209999373578403800450584795663180126483436314917305697216984016017814298564829487095246230231025971868720376822782127710375239084954265053066578408107382868101518358951403076657302164801231279067482133898336221405619613684136070522190611295038842221028015914493264809226834557250047622332115344163974010169369686288437966353437073100855262896124801450075069978237438157108737367693733206541159795136510584685599971815055076553297187677574166923265958318425845177293590767671336246788875625481198142570598870682617095743025701868652407338411997118773973711473509483255241342247389915293047682950581423949886871876354329517391818649037451064715182182868014119721464620890378422907210413067769763059021450377398376923503642425069322497227247351324512289109273054753226528223066090569276284594777526760394332473564341390087666437349036720802988833328332062893048912413924766661869378196071175030887113483739954213305690064392856900504477526417659977138139147504675851588854374168788234319415224894113743909550104933881340394097716089261748004568526798720704654403480605206948887713369236432153662244743005256249943905844654948054930245768865104574607477265679211134353044674574729187332422762767248809957390325378607882803675425362357990348315668715177421906046568760434875411370137566588172887918787587765393057816476082664464319803185224002756266376133492638751042287615088773098456983264674956529267828891017130142097500259716763072176276069773689794852553561344155539322906102644528908720216905733772069548390368378534231976712352048928464167969949784317328068145179966153956990144848146423153027875104483934485847452933466690921132815420656173260781841376642658163773175751721196224811379773812782695187971944011079087499792173704352925109182307683979880391143195579963439114153981431008329797827601482199666191539551913638384087612802882395411756626407776996560965211572566432054953688635500095672943513516191808231642748310163118373625701797896031467166254944073314734978629591105775563015119292499168262865993694131378931524493574720825152714691602012948810482002778229628906711314032902701112532067338558817333579104268674166881681465124385051389655974830829749622568225902262215629994632471432500610072791063142935978690843156491400978674442075733426305422383209236809118636308541460825431845152488815003572757844659273282673693089763373711754399175020206380990198858788388164627435140799545081142654045150534514476560498284523361952928874762703086887188448727441555860806233066238430970485723665622111034763289376857667560108060167213752561058987486916797564890015921981899926250217531461291389588079673195250914381296508733578424457223332969276673023359253311489906029855680136203066830617431751033379007819570701237590788470679407524037010828085823339469521499001685137103464903298055226925786780932022415944037579442517010558071681543064382883124470444052924954497553209466936752997604702298708130846612493307600580896111215322214101640875965980280648781405927711495124028513037569958626505714492874085200779489825993907958871623456340938319014100228359218895427039202510663303955445598062215687182173312390247633659950146214496634945179570811126514372962556249478328564136557365276056730804494636322128130366199849952970627723225120555431287741929628339069624253010241462329856143592263659595970217531168917421812070725740492077693995220350761467274977463015687567238797806911346540621155813982238252985591618484794468453608794052536239632915536946737499744109144332517615365711616383566061656038247693325169622687448651805311819474497623956122666184225032748230122204994505612108059429247537087127763239627805633337255649715416163821864377885791431296509035541775155461894205554637262561365792968093075825790587757129445392661169165485199244122242895587980930087884431502055459262512988524856633357701490781607641537924543711194509148628299811119865431743242648815349348328912332945235775101356223764687356354943049438574949039155693492407150908346963741710733193099104630318110849883979327555817746574721945999160077642360290574696821423796497138459127911958208826436016610803544261790889727091720024820891882955569129795540627264965783097575542491397851748460034236086424665784771760714060915967769447827856287968124822159855707762182399231206783033741518313575300035432230441003614998825363361536999108947113891161805299939763881992487577263847003638683628835245882284617321094529482607034043385976338521566410656231019139602709483741686119543361865907925847534765382740348235323908733974201483023278893268338801514020479692553103668664499808811102648676506468233446943000332453380980461048793604576680827109050714063927788542939340410447115447451251356998998879671816020956398261618578641003343729985582220454534707203199338754649764665360473092564544100500112702939493688005322753879261692480577027100464359121786585661411770224937976139165459170839417983986910190557373300866393189422774643463919288797532909630550000032233840707429002919864252668781795189414568396460891267624787367831356002258126865598465208859301837676394820827033057771921930738386140962108978997509876100727678202342284424317256052137983974184100061727588548139022675360483866549155880272288890191249125963078506390648320948449601487886449687521997326040966128473379581318920082259429569456175465452752031487760971268026459940879198685464937403388917190255027336644688439783902092589136117150087021927821660792724047379832192854401404833978504787182354247114877607355225523924727698982866835211968056642609401493595949689173752920676515632164364591045528771542033819797706336008465620485799856815387369813828236113204985960320848497395801977049609933220540138801199989008676375730288025359124735740072615744415837586586771788546313874385091029472022702022472822127193576425932279078846989741991133281450197700632878528452233147495906083450682512090705428502933202632513750560608066964262830453813495047291613064393810290890947585731697915504190778450963247069476382555113797186005337681512425367316346730546607449384388219716307919952249493106837608563600890908727746871515666274151686966481224794888511802219436758186862577727942077973456352069250278369600041341430820605791400621118765838523144928526267495658608375477026152588957745900150470786788191646086794180946441780938120350032524051984463647179159827229115249829373040574161674140095586116976430088801154059186077467970017425352761722271049692957739003693284393673940457529897153192288921893584419726616403989111735292232782544755456174847141027246353808731224575346607167890766332355219205985946051875307058710060189150813739097838952623134750706408722280723133280831629853562358437649549877236203682288038784876716194390505178913369691848243734423563993896860109805909673449728379244708054550612018417369338679360745192894439838701000695380030178537414515167376916810897890696990471262892145315608123518913385272829517298669877968605287186475746665084386060017413064502476031695730814386841076902148601025206603492777778949062521144084332221182891948142312026988834402234450933833658360339809301062965109190649780201613376387868887430677731986003336969335288507875323004531726808472147637988643663254554410344497935672504712494370170060922770324592944350063829651208078187473516979241666258556431451175417889580352612101444521642613427693974922950303694734184834851534731981288738611573790573088772169206448756773120459418774609319104658080138064792987421170901809715206269549960095287131222655931895238276317429456581736573070514790501302361403313264144489020430850855058885088317215533422535863692285982597810015404723446076944683234091195342171469423145488644068953780085364493007610851637018300368626731638529035355559280778509420975875962303818405792823227297542513151045798986410294423180101552862442089659753543447705017897681725641668283809853299836653952109143938754354746218501233343169080269812212586983907311702365437619955707775070586201604439066170462917896120534649277986219435310892894717054645983786482507843003475539898571950502799623498733846872257476274298818486655317039086873780644639199286144263827787543559803956740333730156248958486678147089990699246452091242043401698469543130534559532366185722018193598435526843923282242588677048207443005311463101075097703890555513910297657981433616869392333901617154869130371816157093317836215461861108445703493031609810379553208400326181474606484595070016003481905256497176807884438132833660746270917710303245338322098105686446669566312979963172897109686789769519213129324932939463918193875612826379217782788820073136586402641812477803484399481940908692682695031625655423276903053228481592193184839034775402086922117420903874607422274994669623085325572711508579916022427295621841606860732890587541236440569100398682563696125153621594695888571408917669273869265344299535256872556699730303353775709969052273359750393004565280028654376548340757626033455685345456796304373149993404456140805711208871370858577961435753905940385263901328646185612191433764956035644130396563895765642915827397337216142670904839185118261043912878790263969256988018472405010449897558938383965138815214175898534747733071830952431813156750104211015680699025685057636758727538932092683446008719981972107464071620799480348613855800271158665159807091740943232140358258909009119933178253295238617652735468518071121118471756960894999876775634494158550036971214217398367744347594067311881892962828082420900686687913815300034445701338127790253044332257543256713639637566726044091776694778265797881641512472190130983205606143063032913896685837684492116897073634238632327090538307032072651750952347333751410499022944072635567505567109847095550397617722236636033079248793717201499186818516705102879517175859898264208890105443816528371082532068851729408538000451844430875274354049345335666859817944712304664594796621623816769137548682480352334525532072210894535220548439517631466123124787368087089374828724503540704428943958089268987539396734927904010997835638439771957054937439896242492603448978581668470693264514850758333647246780074096236935666708027833140952921032887183002822588423176048894316911025007531088624869682362391021634267454278391535665714730589824752684173671251862203812721702981042201694787713651117656212934187954922739376371971258214872712273616965871122367059230162150578274647332652003969913185935216167950064493336461283280890724852981528914712007961825409515458176776805364243436507296535574274244948844182496187957964429972528474245332179993252839509505867889708631419517988054693460972852845094066330971577146484966449123948520745636092494599444511597627678724947554255808875839133626645246430181873432931697954985946843778717013319716496328312656358637464750064690812702750262798348549848322220703422386148470494104522453725530917698197763117982002827500862756994235574880098838576661569964552920081376528097594524921529064032498659770785157431700570092449690869151273042851260829207513024974981412577226435745871779767056823430119200468592242510082055789362594085002587185028647178469159107979948814608607477079611650760949001232250619883095461978974056950523632022805512788711512181168245157876238907621066603026946556845466957015480079387104949002186312616032078265432401038118979067696745619967221345591937707400453065818565556368066906572293794918148902527793894987695136214130737850190215282204244788264021376767380395898477089410332176893908669986076679442089140113022181871640935707164773995574351920281206145277916914226906666841582959140467591959751588337328330158313934666039378400022204196317028060972630284788640002281855128329174687690339257660935432724013917104354528420693115535104254739088556223162474535257509886726840033849883293937337216100431975096310248267102246156607288285241135011763101984569173282854258079240341609237428028302049354269308510259336192740789989883929089970696711200596425548198856005901428572128251215784008215176623703852872455426787507734084242790599487199575054835170383629878396345154707701353108877918849963647764540980418325504641765190664281036462233481151340578713805791736072418261419317304074456616708939990787328184442413100102250440105271672920895137069524442493223793935616731189194615983556954292637946090805573105557712629908364486152584286903599804861187550824803726460394458440924547334153778416557091214319510689494523369733585581491831409112861754294313223042342558732104460282680651460879403370326696945187070848432692000751100911116544193376124414674195746811323441166749545645193662982549501518225494139870979363572773799066714276134440172334789885001143213824173360142610867483326937949289457582142296015634213580172117189406558496417006998672509871648481547010769888576087360364988492978642199036977181676444948509405524130153007897584611434027375791892156999201161896845411931319539642926189718248072500662459899417365309123113968635894548782390170777900664060660430937413181940123035511150856591080611472244310493725497414110513547456096428514746958755208002121279476720609500304040163690152117902242121592971053773637086804988676063867774828354341485460251031994406694742089026043813173955739460858440397197881745873008259394455393401092405507051207407244471232066017574703245197135084858132203210019789988934074569055812627609874888992590365872029967801400224955468756335027344032534083528506592195696904088762322322034198135261987172610850143785347467866097156567931667556724935605292045438369334470624110030177248262137939581381798045848800075741865696212453132793279761655845617253246850900943501742951390299663127758073765431288580698036051030153668358535168019219882134280365032041249871607361191163059795369681725620332458022180227805097833929833708427166975474807452176419110486811987312487651092117771002072930022457713985879905157417572252471707690396963800112033877361503178147887554936130278801601654964586719187123954572588435957693714146024496495624997328415775095542981112176253797676470252410353929969734270079472855696838165507652389991299207588483007787889170914145200329299452561616962599762658106599198202987099092765128350705795808162708955339185968216379510289804611103171811953216640739896323399505999834000085700753655112691704483537748590820982095559577549334037685769191061062487114140571342810672617317769984367875796453594060963228732124772983988408717858263961884965519567214452840290583460717640947411896096573446424375188773278266124347530049406532605871736171305091738426722233607510694379632046753396925124389268229426197572840900195888750741700817123525869155825208531483415074891110212786292785561645229581879468928625269363226985679591988065790360605194222976446589306891808268593251628472800432330577942704618621474231345543965157459438796504029666194945066039569521125576977367637066784189578131498516155990460373364524402687081823408097496580948456955919829897160731042013427196486954782603071253043917586975874298586500397001355900291706708190319675924559801149157220038586098852742330498685978815440955878742759267047080445446584578944898895504221677263898340335825844230424089373198788130444802478147265839780017587834595350690422901475169705427740051062259304779267015796780001940179891131372939008236700128771803009440821122969729672329634408667961508804617937494129591798283180366183570371525300283487633750623770463400589850822380273125329081004150393956094665845723691288090079565802952805652750101491475143941618032810928874950618673300353408197519525555084327298897114765203270927266647309906442555912067844476823801811569978239537577436243620316274032892860699254918059215687928167341522618957650745844737255280231915230282976645634056590018667826916644163258705065009608482008051110656927968629976058811568202412174330470019997191613772907162801377545709683783261625084630470490416547443085818221573267864411806109534833412048225270128115552688244629463643760800602745190811369478655557478965395343300487379698926877723405057669851217932903196014748245777780829045919411082166821527915472998818886162913741013323499227166672456153087804153803406415022159748851371943043887251381317066566429303984483380216098272583522729464085114529772650835492001421695434390272244696832374813352667734214063602797900829273108138743275017343329903917972992894095463230725561100841573374843906777427194392252845212411332070309001175874101857363102745490429339910003112995434461288533085363444075875591623465615711955892223099949003128965676649922531095852236741119589232991195516776900292702477872859038112980232142400226615873702842348836115339562359089912783788648385234796383483012994955489847826515831666881929055600689120847550927664730633027341933111646452452232569602677459215980161500020760086824629544645447605535350932749723822777274471400455895738498275543879359175869197631533341869821501460580092322490645012213900692978790517079673945637646189549966154564010568600578721013511245373402466454426549962866380319098860715364054596839044835661278363832951847474771423401761204438804573741544762067078901107294296932928777311235539610773089709155482022064868995631204166522331061477618213471265333023893178361526927941058845066227464125390819813028143864560337856667120457985647498008329649867811481188989933098821901548057311790220378338657554757564134922035318133842805433944253406163311602890915225330041836196296087531311773695994211266552148613718866747058197519591169071737419023416470653875405149963201717029164157713671828902293288007867068338213144370239182214515115513795690941125777574046431026792011468266855483046071394858908012102951339521827620872846042100954882641718181746859907533905072901489657573960371290191381870657310615095331660900409956825003154396419698889748283033796200342983686727457742662234558274178788450380180450523895953017237775693394591004550909394506874151760046342146175294906146812887198204023628395167776768639496609069398586961457357483280724472479360365764322309146068234573659442139339913349611709460918979709030428062803711849387204300756437263992274139139408533078725933578681905826507752563503339611516158379531686021223722176411008808134458438083472448132293451514019192229001571884048106804024902031357069818938311861332097105212963110518540838792162171612674954116224464910119913704605811583129555636655730727084310611820075819520847880804260285202181543069945528879997353695558012813237535055350731088927203770918372153778952899897625424247973677750369616544864284778475384932995780579761919968245693860650798348186187915355006298320311491354775410242611906801047468891484208002106788654678933270915639047517244914811627703313449442932802800160040197292144306175929510955686828561212974513699395177510925896702229063033716689585319769084057309177663132809443832084214284431713470493996221413064109564820627898856776216743560725012282170438040211278485160792241105961493790980444325264617820665357543666039997554338458995690539266844737959673332528256112342096291805731428701137694289392944890794536413103569052627827319703149111973268522902987183905060045713027099499893608454451318693617563259983011695792259209030171134240737346098712437348258626227386474125033313267064498116555872984453827745289959666053460739113960428568837627612431359681807153734959877869693983355689219203757147975416867457442999997514855502395105970031081597113392764100455596354919525698889202592243554384417161604996485328643023478803261089311141342994612054702176808443789932391116199937657592131437980112317185010676565307746442096814204215353697175157903710662262287801518378347840311431491249219610193919733374776534330420392041480274154324897578783579282236678984540695684880140817539490035874388734668791363156626917027849141953189507097426249607059088129224827174601306503149528642913773527254654604465719368325390620219198048998083888408653325128641509220406002357592132054706142377558396142995032085767760353925202233925520526234523716042031692472708542988693809269126607760710738314640206079942795987243452353137519729305158602749815571671903724541599775113470722235523319986228572453533077408856619238469562157278566507908558746238931313604318817639206526948114216835304476391739608429682246489477091991297624195654847255001669455089757071650799743800924358167424696372412748040632306935229383789470668253912727300635034280709576897038574924446370312563369886787383113210023051406448572864760749359518480221759782875536623770715033335763368942149279690599258649574900440051893255392881286757081358082363527291711149389691947440055079016593603416341816640145147682708815700367823960625049017939772896346774392157632184833753422524614097053147501620549811463977561328732391913964298478230470641530120655551482808662332609721435837198735093587476641243932095649584989500093597865294752477398107640930023050226703779082896977262447573477252893224304636054225461980665143577400677128791882345096165239729521611331239818665174559404529894288215504238249244264270745524031582507419177955324745323117865842876983831058429634415015256899218090176144496074193939959772268073546441932836661796903848512949698012029660253357499609693609881367153095546689635253124352761884929668319512438355689945891164077942087830970852008052504773014747176344605299193515749897397990663379630138158874558116192970161095381768372933702865544760367782014456165956319896543454883674720158757345088937589453764722028756507243445687912805452289750269858603334411901093114236301598840114475252137405423509875468174892018755452559898478003951624192115211200485755843816516677514863759494495961445490254875027247556859725246967167369397309424177041016168573863908730451527315211390726917880163898080284289780659757953171938523215308541278312443649141918826093492099433360682388877048820054379465765652601692719192093820165520756313216387684995308179628584015438664525718938064950330557293291352567416274238930839004942701597614416256085464426453060947442988519013762990749547445655577990499832575444025508339328826937038114614845389377957529141192233043442179287456663884381726772573595794990170288712369124463383723120207720715339797980056158594965986081672353467311778441479818187177997067413354452087728098900835974117814875694198470850312034249359954066205674346746215608425031553789840979210536335122942457607936899892935342044023116350342438290465021472098616531705413965303980326568767953567278818931391456868871818255987776362123539632259530737363884305025803134400393760856862340496677891404376384083983357737915179268113271119060995201826901854358207248721873890718131026722639142549766384204404412047587494539276983398657370988992717379408239296960438122711213976963466961274701963203960680161228387545457322146881021954135721570551481422708202690101207648646780123318443409046025120066470623107598673110816354538943903502592199165969975284687611177256244022248869897677804571182483704929976804806498546432386212573237152410622787385365061661168456137148206940721053700519102764686721262134489197450629781092604343341291551756471755083796723960250369428048200429973206852734200054754777850055709266717658125275180070650127669029928322408861299096970641616498373996179567593214806588013428970013835702175512797201837604679475989664734480798418783324078433063887508981766926374036702907522345639529134669452219209486353948786594874169365896173100916793855509880567486875232637256588534144477910964863627198054913849683479039985683354093912730197148071159049913983585555814311975705125039590889153560513011864315123204751784137415149002920682657931292035988392877717979110457487595674679705605063828689962300001611371376568638641677234343668343154748000128979009731605159572059957181638885374744569161028854467395127197237781092558468992632093470606279950657871433897252495636561152897544870798363870225728695293560740785838369143972854127462471535963727577558446226082465513968825379784521041459257604086611924383496040867587511716395986024982231827894546376226448021776513878162290139613911232687263347281791323103555396064747802648806756416674946842244236510668686347363870993263709665662635694616620128321673896859555578547800240385132183525019272555777257297373370242324505315157150573810772515802553462058219688957295468369163343911504442653497024057902307284394078352257562085854697531720144354966487989346906413164356174551909413039456782005542435831416142636347195963044820316326162407917979084752854223036154073818197829073281947970488741525618448126125982044701608616611506722238049725139955015208650594551165089483013913665136807099208298201090578035919119918956845315203028952021743898080592740996871210168409394873817950314810415379723637695025410402439849845787198745682593031058949445956278989756139700791162562722726613050256989843836842137918030344942939419708623253675959830488838181555870914072177590554768653827317275372152780845712427479783479704885341181329908908436396397005153214495012875310287869737010064409273110171777148022989261300906316125343887776271733097834545894052588488742494302001469708327722337856091442637138018390291949111008663828984109326468385536520030407433330982469959263183836373082659089317722885103431900319421273733725496336262349660840181547311464336969946196583941062909112132299651426507512639648364860122247958414616192469502484021558443504914663439832048473027589795474370042197202042471747135862405415049360468660948341423572806653860362683701491575359684477233395955537025562643692590341851343568242823995990515004971316180805790147699185461914591287562938831404399537417107176955439704356995683792487724362461459936022492483531972730736744767820098234084063196162157068992331671198617575063519791450742538043807275773417186001900488927111100374944297923495731251664505664227439082354003961699992401924505188964228604597512453358998902705107273012268368554215455906951741123809139935533459670115997896628221019094844890406460995702981238136661037686277215480201304125323462592371705236316709475717603918260762124572226035153599782666514720608573236422561571346019100380284077316161380473787359488766185593473431117133490348757869978368968837180432321617496042580475116191897673146345486619165378313914061647404364231826052259590148957859733893041024061097392782572879883671995294407835605668506943853022904478497640425991688702698790939845138567731513968629434811361236952771664056421576541688695412773282943532278900336762835857015029805817077211646616416024165613179081741595548901512255184297733203051024445037074556353863087592781979226706276285734288556130275654409562510695015884819196638000597194228028081065327785789409533995041139544522625834497000376158176953515521443953079348321840619741578027456706270179850702250992551582143795611438277671003810526883281734111572859877435867938290497846783584572252070845763228865442996705757598817032715347799950058616013391578189901160447480604742933050493368869944516582726410907767466875803723189413048947279511261839688866398688178716355272037968490610448120743749316896928288364887092206463315569246922912336793591045327979548132115718247679300672760453218542794109276097096584451844750493979773444341328303234359490864477331301938117062016778164457773311715283426430245945381430007037394808074662949905343211490884408837484368028038648910049507402429078351944066124250228336389083597065024553302629829944759201755512886495474002293114027509640272222657956669180668859681030225122205637802455308001824639587221967281159036831322203270607434804209688597074084233370235725609750269149198225846305256155489614026928220580494784733655036661650774908709516576800194946160125009038859256499572233049989334535015688713220277738839144890807663327621346113222149987119565987523015830448824935633952037874755653352512524864872032771362083265238232816665067241626018090684148829469113006867132028244577733099824673114009028577539105098063786789997196853111653114218909550003559046982963183891194394658927990320102530364674472545580118046174415702644146820233000608013768648105043279401163326939492959948515447875911224188770660597945549662167479456247389975822010326080712292537584828431119997917370386410313652570475852622360855996160611149068929632185520672101991350455727271724812872398492180654439033665867316729021075142606418886605460195321872239730375639193715400132315444955239814920656887328706151822351920798041271143993523515439995771249869087760181750586603931670144632485666184475698200696341271267900857883984445499104620141468625752776883268865327115289352609270877694161019783297095577622913654520852590671589093170039017700457089399554187832166723312641105717050782617679692088997016747858168927968984222981682845056562194855369871659272450343974556193693791222754653247816789566999575180737763054503881452038368669438424220925248172074854170144864315586633501290581290947625720757590564549540995460279690767669440357580882818030734045031073264333699349876192023287759899875311566015358349281700426732446810435688841990121493056005352184975409044116350592734697372818463622696749636220613418207312850868416704251050296359598469007829247629877726134270122795789005982903090189323722427729471738913938764048289388977548198041775891170618516003093164568626620656587168637266220164222179953670226568258929277358801795914152526632407826806243222281770949889002520000009311094500673805783829090870301720152388267591289935643701304825487273765558609076591275245038882834177570179968165648775423056599467730640456028084261950194015783242095817354658671804176629220921976596792330607029844183046263021600309897831190693965525904778980602368403575183845221269351011434498178700996154104692405069423050536343196137874113264785579517697587307411534057257049015401091067962090706181624839000398683637980728188967620406823115992180859970650792624136554993669686120685317871255822627439086114394383215740163777098680454561250146452851199229308069775911035447021508456719821380085527677081703707895140472408694229364258284546914877428690672557320576620900939824132558931601026210805672267508728005009488451607849411397353655971398269348431904172511043506347382711637402234923553558125581542901144538781364890993904288623939549939524440115950535459021958682119339840228097822364586039526464462635610932093884206075351028916457310210325029506031806273666229054631228028312716116050511160034759201265734161489927026049294315627080611983209586436337088735416662485587761862459125182901567800526612948206698145486217886800312845105397328934006042316108897531068698912609242520401646176026462729260487127203938646085345604157215674801487158315640284444109604200266215908894375549818952278176987482640986170059102106288335137196208170427674599678756817617489591670653743992778059408630706280604276436857513481731974113526600787560991750472508005894779778920563455141871729498291407203172682032797859074890403267319109953945882835299841672168350421364786039120893584143827845117455275457434695926437960346936457379105396351513059008837172065393649487286031464787289697151367764122754168917758561794212934989353792142683331883558905620336306173507729943554084265074665472548405964598860010397250124129586995541412869042770648340459666525690350792300801040295096887988963739717328065350658764199626053304003857686014131043506026136309088503220956398252902658597632900736703488006724235324928691554702854888135747484991158209831648404713185260009915461094848260234354829481139471791793287885672399923980715017495753784967050614537377960514192421643939429749278226590510508097019070492407432732256701250069593764557491625185517777849556845744276130782311566377278955150150310590678240659874071070450220475010100035352773937069824159614582581412947746542934428922537221972447128874039104276071821181298621276961356001803817108383580023996462739274283375709646929012456757618807611833132957872666783607081602815604185126005895377888398760116545689954817388863784045672280285008006904778081152965919219611162346266070033464582465983317066977361866356780606286113833694352319627139266935458429317416247673590714911503093475759703077652057867463787990127766830490811678400640266267429373504971883247660076897725098179317236736088064108173307580735613962940819944951053681861558658191845928920231767728102105887090543751177479308087142708132579573352453962561819472068693544070495258774918445419510896019171029114359677493718694598904676708118224132826572948525343906600040226434141411904590831662546667326224127727037309757688245959596492883565838854185458454912768252238699586909407962170490413417453099297351938539406053461650285760911142404818974543758427572903320960276099760189736941442290280227563281492316622152137007985419358059130492070138958906473633740893638007014891414510626592830733324670457744470480148246150797180659132306136883753571079296521907016302380034861616529786054795797215759466848963834823542293084716767477319293035793702360039729313422212179441210635585445717709415151958380137240470647587164938697914115711480936265099732203010729619526378165967793631034757732362789520996290257378934964905561276862407858363007922089633864473377478224533887367431801420117296922653649407496802481847605253796824588332408631227116559033635018325114352875581187270727279015587885799747817272785795073205976260409009735748456154369061698906549579258298312417356828756276876505791137424008456916277319010933177306497887097298015076944920158844154164700498149713558273169447918687242904794332505194061879980300958936651077126179376112740749941167919302399745714803802334602073783096136666193737519566046651056880176306409731172030328142730688087999865454272091120200108141402546870901044793002984117681260389917967659690190596193434317696806144532190760281682046617479498068041273466428412838103987595419897498088674720948344508372050197240331976121154162695132853261191434565071104753239391949692319692784459770138517625800599596999675006445030813778561478179096242835394474872045815074610243356352198115659986106748436624230667861064033721611437137120584775613579977406562660967325240967464068222326985208989828341215486985498243399779647388751380407367202532075855516104148180310914405896293976177702150769760218737150010452948880994619763360774707598120948798363658029396241142746337675412942288928785150198833762446424919308784710349043592947653034041439643455946585802337989773772013514866627022438988083418116628955385958685016709089940911922367111100783201919901696046543762549898238715715596099451426299597770339928361417441042356618782135475577590751209815583957972358834813340878898648665526515141648161194872336407338132145479829156810175124131329274272854599241675686901606849399507039231125958232160740303844575610227872316094751753092010715075704184821973512136524942656828711918666367400570703737779353356544914005597669007768345187476684528309684918791073961746664714677246154471597222811563124425362591588666727257840852681561211380140162435483029267291473551245887911355916296144639828408849010039000752560884205914541760590522711772923051244753598801536113856861617851260179109323766587648121245782888592711684259862900336562599331210701615301382506362745004417475569440895932009411021874868238726882866087589627505248635549410545415966815908280057617004750559219192231377954706024583616711468985009985178130782368410045916282368393661361591598099027551175534899079028369594247297762760149718794416625055131792282081753228893743593876133340770761049134279530285376074014482360744620925254769375790396757311959100360302864906336437700693459948626570766453721339507926112495835651802100011183051579581524324696535219977200766531758394234659123418054118362404630901066339559451761628076309558035195092143419020461891527526110053205809485505170722701656019078122101648226957254238672560702994088053815848060887064124614298070902618017458528015101342635713801690958331715437353194363684690473463084177315132501309426153347522324028024857847984320906803209727326912046997667942378476209828735031022795410477840650765635499618230072543516119716394118893983865064195605045975325883809944476093722519360237899107389921338458972732285523697454816625109325147550942943018304788793855924839694566143116256154034960189365519256841580410060887709220779569167707089299914096784442862952882175916359852531024345728983322631989560549910261435122294275877230945179087444604992264239103438224828020000626484165049265984455310486920247006500471180473857596121557805301434820161120994555085260837639942903422974571097989249904754778173745185176263408230039510159950213541587681542113707393526794445443397511507236173449082635471051124927295308696402140948455752935960711996867796366200449955259794701762291184235717597783756748776884248865073226218616497050702088799001845986883074874808381416938573835381751420338500812949706115926473771448200047615024469957470202839703485486830095349417838696508841128288889077566396841321633584512096670731334257983918900049557614666393234880596264884944782870628838695849934446104490590760580360522662512816311338843928350995343673908694510369776502325573860635296093920036992842726702092474382109205132318253768014555344947364009516456831777381820077708909605404817477857983425623434065773866976898115292028484501649500035562726200986909012313256439353630683689401580593275137519736215764193832800869494810208208446368441427254423596579381755895835928799938269287074917135040634391135512333415320660137154613945709056105582925182920763767530504988462916479775500858163253499927689019911585677458406272766601754050099108470779984692204415758987010653473041724259831921212199323793942655853466184574084284850816649649060120835170729236263566710771665454729468970477181960042498029399150597696057012446723574497628241141819314917232617004876537961265558461921374932357430852408420128393618583941922664146704016102284558977741346379807743271801803402970976890532665730939462179370666678347372727361060545743475210364084058553121622715980838637368339054763158524631744144565393374831264946831729975262295207002951231318192838292408496234744281077829118488694265844722193420707455019032456700615539740874712434370602114803296608334360119417582021221480477318749896633231389328131400646430866107726036390908428108651063090164726707239667670248553803429841691014871941280629495505850186303033553778512632166610250224457060704215298789656013342077678923177615865735462997809299049328577147007882018398458383129564128538040545549024862256524389081037544185056311215241936470422190601211424014883345804048131027148249055130257542624500930013661490139498092980134941871705306800171211146480493708910481422880205765765767796368547106804348931234856345321979137465207140318088755439159411605115331009508682242231568201443282966353162692174746347801781638422345894655435744224656316589353520413708724982777168765131029976933379126649962664371039519157811846209686085511282871710245099116969164672324526703057953870249867079125344584940275169364505941599246167402956258242613785142746374805091810675408732685242337118143373306023416229512658247657180004783193046280353052800394457588285744798942453293223976872612416157704607714740042571306337009234331169465028680717008245581646085185894745530323848089139250770256177651829279689576952252994513499610553135778714687633038874577760847832869321099052252069838799298342349394145650559869930492986217845202064625950657113371175808513194942605455628084329336347983591555540883456332243708328201161017260786840095655756879742681031648904146390291201878285689240595500027252094720312294977595832687354575239906545800206262500020583224892801385024927194913400324431406762073879687016178336387516451528793136805595272444836712602178588885238499385918176098067292213092765821982063703201190598706236064666858631375161368301115146554250263853256340336228711619226969737666276864708423721309346176431148213425842631409673060062331548601088454729799146476535723433209181552322755812659250908235080994587843716590047943984826666928768266065431590282647624477672189620639945991963878690036821665590447811681151159548134143873767375772662867031932324458225897625423736772614133343626721852653281854534289924879870306768891198359116016192918826438343173458550282206572287399774179034824921887709977438582576880935898440561618672532579780977282647544389570518182757142220069087684800291286905386762638392865942771941378879989301358978635106023177428473150084638577173176081972534927109559230219780018669626614709702149150976940007374137708437112673459393521722820336601701127744751620816289164359213820310756853806492749124397074957708877140366596719370691594445170436487143950366661252970288893466981786347697631887838532092114580058998703877928957953360509558677798057814065687363476666987367179383278425233515245102221439936520819319789241969830774110057007441057403653740659880928075091147619581518291127909698430448137320431355716535387056371799539773940957263257145089626100145399868701621139986086929273830029846353935908029221369103955568074129932205925927352363361894567347291143252394265463294653093061528634133371180923347331296841416238002774897749876849189871053045075479540581058446961544799142929172901179873273455559342696818973768641516088829803787077897359219914800168120049117331573904609420511083611703153765186296408009023513551411865062536861332261240595095963989707299798354108320996262044423898992596605668169715050470587205925027857874801935753110893252480439903038671205530430690725098423236637171838233664762018397254060870448998737093170140039043682485107173565762783136572496807195579740524021217691051776769663397305141811516235599641654188152999012329948686360635137931709028815759194123373995153126577955614803608251536469894197817309050861273417256073839917244295759188817664471651778330690617041365787710246691420848124339643154863888431754564417134279941164517140769134562376608631820794500638044475607038181046404098220103213704836806781587711381240336545408379276284869528962310138839818382397399801133034868662167575923959911812391813681271095667036536877959329190463044152629237185781410584765495049721492240939303568909788746632862107248759564116533353678676373145401809150178205894659468960722323019164341034923163564615969178670673344932827905846611791756985051764909657380999271178644230022580012842004896886110060315741141969617927945263501626442280212293145378810567286049828151603715856973117144373606815027625420172195891152760665310400010012047094345503347901307183521102065920992749700355624596634497247841999454848281144172621960884027844727166090600140564120930712626252078641946997346625733359599400266468638124854194160248118119542616368354762908459773099298385526944464121162938838012254491730215700001050680126156198013792656656271475706490767482880741261190423420642804067152888506759985407135378963332202154119158184708093081160451507614398300091170331479370441066140162358088970477934090240666943417380724581821287826915640832210668553080857172963827316874416900038231279361323109243559161336145062061170094442318558605336682569618946911738780663739885021861158214264137752747471756893065090861437783441470039726366793714781953902862847013812703767922936774082851349704660392439051515209685569142458720278718807356806112041077602894352296122959798699847888893258924045461879242335312817185117930629773659550616685017438128147758926931017390994782949246481952556702211039453358015436154003337415456718354701332617471962718851759664468757883898546313587500865888975600130854881901905580987502370810262847233793492759801314936643419019866175363940063017410655377543756621715694885135059133325307341382218136323734295258654332884789696376124667638264862414841512961533873800218960024345470968242977663344119664890919397528309243289784027391131468514457272711847699479783695534294272517652835026307067207420926618584036355338412323730026224312078092902697645072578334823024223551166992525348257240088388920025185976956282212350083840818857290005617975723638008802798888877217800827915413934005302594904392857095584498801857529291357149542694390343562893636152051192523830929410223884622447539147369915352645520612986036773103632522758423576806877199443301964507033468901066214829563972350030628654949479209578130031430277060706106706012577074974370721420073663362885987729751971986757833919477823158284746790582472232792743565696261997935723890237985243915863980237284639343336805914984350183942086644416083592628666318235299294095912222132494954235616949184175238424045239254477015065267515862800917515444360802837333417816904886171356085374463346236674760580944964091584632286780412918528321925456973965502198027148578136993762633587574529653274629428785395109934508101614680706446067284205445965518645180162604161142703439809112405037705312231570569786335826542920587711084731180643309575232528921643586954974875467584953651905585039869433897521672464281270882872751052561911292075813633994488656090162711226136821526037047064965578511989642489829841241865431458729838078691419039008813287722262202901108299357703922415538688506736505677477795125874169983723079152440704853846044636143963294783635940918455864987890466338766115074709666722542694380042713907739307484392004217543085736942643583856720663638821972081321276688893415342309078318014496666874156179564265991715711548379123785938130732365241291579669347481244379769953558968924153051249577297671616821066580720743761798288839794128783989683393109417945079301562453453091622332122044720406362774835242076253536141705541835588516410279356928087114719413517327814208977842234959395147390757451390121350679554590264823646401773683978247834152599499373472797332848293380196408468488022306665609837626452343457662889917735556237647850365052926866653199077977819936251396211143406610709561490714744029807418941252946806302306333406168508119766493468674620196065023860875854278749469675843468343237560146516758273791573939032268383266541042042070937836070813155666835764605588590097447964705117717521413867996574497086553019331149470613035580175180605441116481362044338140692165756705359731801491643787274016271261350975658235796204680777406964538113444583526960156834116797198183929813491010977966779448746928857972357803922942764221944575896617194220002416138082986733578128117219579867813270107237769943277981505998685688160092500411491990407890542266005696862356359584431549700728707291397011375010802510746392836530221606977374112306061542012464662836360661055291437901686637199112632166752318933072016890914969571772198529641502120535582041092248873533408777907514229210026352577449996151358474072136698809945575927377613116784058741379797591940717353398881656695678235691931660247166434089063422585016598016200847300549443077518429874581639283955785351368332453987817590639486953031953113828313594306909133707135670721690900426644690747842809069677530305541168873490531819338219765425349556183115778086939793231001780592628716299708060060160013074792458155785457978105021060834552156065237566514126778656848715148314911744701420648336691560056884899608369998843516608353571842353163964278850998689423956954210189259401219580945566510792082137951988579205747236562778091922397284859930468852152562169076603852007271702256599387046306710773244246359587685499445532876178825288316297895340885866916547230573624521961016296568073511871520940521353049220584036188196469896433780105019391763462017581165474486217598351508745340674233039923473895863696887488213689100021240157498170716032553561231069507707892197741632518960789158347929786774537310545660214825852692909053710031947536476184254714283483565211188032466260690011658762218936861956336142011206001108119498309762060832705830342717847564152030468109499460472089749439468589556105250910170632136644142109480690436620182487860105398137352063416516630607244566526897645713693576898583905311364423036858717704419458866660240042129749048575539776392412295378184307652421507671480650304666963875336606027242222587282912714023566509625977146232451641203797978692216679292134440927483941141656385921284096684351129906203714508068515816730388929240505496739148126693684423446970172660518418368992738459728033812729440338755349618309283850725687565513965802251213008829990789260213959959336582068587888245603327259009642231537850753318984652669790138742781312682858583440672772846747968052583166135704918411506246997131471921180517373050311363946960138174514105297093063651257529183009402961580457781470154984103437129354867535829652876314715505581882311979996435534068701192950650251383433307451498855985690510955357844299448503308100050108693444388923870517505662553699954160065912394945430776837008526040563811966956229502857649652326440996787095694861763679146999707362954513926585277533628986738286087302670088019833540817147511303519210807962878533799479426792739832563290882416667759007789215757538930876176476197490587233020958126483928087929694024443038115443019681500095489895637409459600085175920550423963607482582424226875837057139405327963639022467853185023119035448322981640754082881436496281082623291919417193859968086498717050658049668106169678470177404761571023430328292015170376927042216860632057354878625899597464281603921476082877082753025165361185855797128936259207305445465701208099466547148437705710866169967767679112553289861194813724841620631083347525779921921282519549681524701991281169518878627938944493706515838220043675829968169279873818201153383056823882893711933098594731987243485299268913346799550087255683206099150174553282379469340300225644205904840865458309707032502098969523868125973007015784988059914400283308362940308158171793405914440228490694092775514729783671155719475095387954428592445779845120725015900410592421749972028275328584754078047104246431578947723025765431605549084626463899736077091510431458930456310463289087098908559311618710547955495064999405207663991596201101334953234512925985735532922181015829422776269589520597583050613538549654139170597361352918030495330431399317716098167323976243012147006485250863773799248523558693476870365296449580233980934978211748274485423491837279723859982327786135076149928732610424172680425730441759103888450787973212809351061782763309886323232195093500111243523552263526353221619097026146173501130998738679791742558387505606079160350089429081712015812398244677338684819344334065970130429425212070957904688027063824252696091715084576595901085177857329000843632265805945509440941598687950977352310055693655971257724380348188279058471203153535114743865951594982413989673011526226879723106974965099837044414447825614023033550175523908773855350860538939131232352648478078334843236787072964302440688479195431930096940961111165566490271975166878001390620471384363200870779955181612120167455695620816310870078247069104150825616759146592950842516636721383958134766182205658214714321403791022824823105060822378392423184374220109181214336823799179840996175026872963520789499315984054431115673774492423055186926200833049630599724527453648066489948761964345499259009912481381347377471036701387663680598663953700439250265860670194870084981908415543261372116550600148947637998149462122910292706234529445296401523330312393980261707139274858257190240489500278483781566508215821176204971074493705507468912973503590079110509178724197386217467449614416278609776016032504161902737138079330141915802180127854220930669040589278298219839428636545619436909039481576056521689634117288607118267106396662090961304941498106013899946184846902162022164409404051810496492759414080849675105025827699383546903539154742279365298813061250033056858498713434475368723913231881326346507375960257502164256875848445984162753558368724790011392865849791519758209563806143338500477173847429269499482231669489146239682307683728029334682760575291162155303381041262704862147879888468727272442469970261715437265878253413172824598862860423624760391331151642904431621448328587774439813618100551195006195973087799326075328309829968524918315665402896171161774528990657851012178662540377942400667784337499053885147618798789625822077385938546920738640558354375752516835714083177296415875338246351820224881636254309839947277468066276103453325115648750079647952072619765322906563695608612571498949340474260384762836796673267559304143762439624245432596813752971898055596366034907205421446093474855435079648525604427707816312176235324350659903745916642718041558129677232897851454796630916719763157333193121940217305675820697572186274223145260299266304998674214001955983538768444228922292876274322459131856094730309960437408109442327660508027629417494922334335722287466335574200261479243002888496027870313279446877698669941951361964345884883310388774285233899332241612114039636814428538761478737326993237338559435399756962359664479439976700477565541363313163424958153272281347640476964770098024236756104444713032006570892789939403858790166696213401131064807647436195564479318409091012447316683053816559076289505584762365071263632590890003108358694796293271346061774806316980572205202041394047890798479766349287688038880786569033613288011728698479875035523738476311250252655103917804563624905106404622035980161895677750283505734739719670730696024706262475685163212943638716025320254919942285576107607417807609805180027338968222892054086591322296589309720791150141321368307926810579905508931756232017515652336081870259221803793268460803829926414958698163469110707159206190400553311015984360272167635517178451412197384400828020521654342585582806219263261979747217768229752242318179896673439027458025364612072586028558210775496635938383392894392690075559269565539260268890997285625528332869349469004518865688486172004482150629330813192423264040324274432965471308025006463843492409499241950786589323941732604444932638253079364278050763216617667425096020956478710684493481089950383520125391819358098726189496040595191242874544030145595638528781877076539734243019071849845246078358510218824455656660986746950220004503145844510602004896094429333471388024594370367445565534557939755043109409911702954029166000213007678591483324796789661415307586319944203257401832513904506536199236830224989401736619995576485359267994245060242463798716806953607545994416573615679695132843608429559116925011404974794340015166980161554065462616105439523254204051284269440826977065833809260000289977705024720768619309191000028934349189782435755446848755675851172730586338009720409706626322782541979894144610555047463511022283973499123443678535547453201315456105528131411647690086797027540614282158817709399746110454279571819035282653473181489524670471042068702789814132083148276555347762229099236060475392713745284847852469451958566396127014679463381535392831715977123111335132328441707308895564433635404737539744942833741059582692071640227422104147608028351598042972364917556618929098973472018983810836036025510658594984633538219808451520642487200917504385096164303313648820320546830267541745860995244618213854276160569990449048458866625527992159726504574382217055906347214865462745154467852569307538387568466035536476838053280645602757360422838765246970343891416996953991940732961534052981168204227672411739295043382019418813270765204646394495194862952980002026167475802295428733442144032762623150101996267328450740425400568107342044598802258177197093694267101068719952427746698776439543334619017877705007786417114905930740101592950563708176262655245914831634529189113463822521976918305167256514066526301458122135044625002956356554820259727452868959491194123464025934124546661138702706933430623863629911043815857925439522092506782858360968127470686796987637344340222801375645490215982908428816751210309939198440603816156212246806248068610774866694081306952565653414691038780646232724629883749683475027971068927871716574329718265318622065309038480099633179021175424589386710295415602867144263451176711263759816607409613296632836718614185898100612583175765773865563150717856207887497084301554096729759298044642174786601773206677490855426139103968888134352200623491543923707980331010380140648980320788794101055776305813464131465129258287807591093754468231465959661729616175222549021730816870783978783056995847295570953272414551825318416306112033336278579763018030939110766879823503561830034144316546807518921545621779217319209648429855551457151700804334481145305761646258372464149998545433843457869928989796592484100764192950407403122044244933798087105098284156355191938235147833330611476129067016571017545317822473875159357115319494804778898790412662439932211073960332931351086178113416863259740141319545752895031424344238853710634654010784042054894821283944863384633918248525126037893318696373123269058405076169612722915175767157923102330043310259261619703772339689633226522395070437369430708331026806285612193249447862621752486840549843260520170549524707986890282167698959216599858617411176780397725005181230762631792334217309394604557378211442876892405220394079004427542286805535811589548686340170338211317891986552578515859611122300651812630098378219334903251405835521030136973220073650262891157517020569999333557250495114820786035356325214628185491851269430590031226332685670304428510046533213283211361428455043667818450526560169532708985273526492450140741001903275056296517096552139906001810072604626763444215628327276046468626554498848844535355509155739083352342780256415506463194146164073676684401658959700849594066463154534319617284224852625977459391117126610991156142828252661881218677208813829260237668135415651138744425715223916811127182139085835051910472532739247665825276845099060194616098066577265929268100225903317141787433668877779561029129035413746052852369938302595955794939902403667916165997409555776932319823950517871925623726490580899201905797190830223431535069539160990363202322805454467652613620197921130208722002604720435594587218748241320001752790870977603345898886918906901523212193166161154941780650844316482683404757987259330159664443779620544006603655762346835659370812167076093626586005595241947828329525725264072953185699105589603651907916639565596605397334114931741347790712709284995698919744403753915471324129565622877683523454407336508751739451746963990833293723388025974879968869119746161512568447625155944328012509103506890040294613298044352899325129810120236896365147847404911006777008033425399248333010330050035870870539035248132532165771797925382452666607403087337677646951134634591239194045778965006517222950475825000851734446563688147810128316269032744267822342957759431341603510593338988105079261138911668571401050291850361205368410973208805661177107218069091672500179380780066980936545750128661568823298668676745544556100383226771398357558951898586820133116543390057419961807854955254257710197075985753837493153078733504762298408546886514272186030479946396365990994611952804813337131642608569550079318147263411106378191510340553565859567080344881427972461778325225946582088047070911023428484442950329737876853421365514389370827844219972037468395835957276296286127958596840256035434119456429802320305496523717223885821532142363329791031612539427487679471950792872988471476421068356622633377845659387835571139078708864772456180382711152270033813502215612014151821988891685744784955764845016657025788868801533453883424683613663294344811521056854047972473535621494704115088098399530034718076334603293908675799625482537525633094338410125382974346562733705910509401855217065565625216913306682284128827066599312202698874586299477236100079201566951028213462244294634011121032667690583045663938551707353528564865760284682526786697987379311569892797729755378051406933024264129216280126328543488125252963532972560979756169561576204047325831328784154631723721080619266337201338155457700662584270846422562054953619821700708492460435731445280141426195109631413475560875127021332652436549188166529897485129242191527465303177916223892791234793413946331039846209474545074036626471678427705504628791162694996078795582057939571277817560064185093703421287669724099751739649079625387296437812331745266858182256596850225767206849457689033459840444125464468522617701310480869434159052776031240511342056476726119027060519053595746374576000540613943423412064267327192329653667935980200278632613882139850184704931908355156061690779746472718200786212798341306290237925904822948604669923612287324549271815503153776692416785947129024516215447172012173893864576290045194385557546851545148559834857573929764169701632293590467130797028551013929728530714895561482248617034607619091020963423434786078046535591688749930794872589240734461275907531863020272167086412520370707976797319885863718282169570441930710843516023842586401709383756202772950799667382957470485745505227284171856280149951882582816156570021203588701164878574013283181952388243094208570385978013772644185209263216314244056476649730023044448737528209114881980555335234151741017240431549391625048460211928614468244415403257873916154598022851082411699650686797631815290283847679303412709256952010890680239805761746511356539118611853250472519960194856467489191750101456810963295021381104940984271026931114664548362581186507258700298836736276575656091757642093258124855892194270087210100789153486371720383668610431384376438636938269504177055747308372051351786283685348293392620428133248433955112241397227747669296836163715709918729815718478875753733082429955861540614033252055329107558333598504343181522826810118063151335936677133377520519938637474082748485218094680744725800703023334740410966113992843262924264778521520993935128818388536742699947234228235336374304193920522571521760083246600086994063269145224071160526378884995824421996330932510378003583933387598168669972339305063571696384519235111591855249539572407329947202902987849264585961083826008579774613356569757254612588450289096397567552935223651489601005938005933689630101621556795064383855797187943570550623823116743647510720529488732624076909774864871772469189546313249404903923668549375065132488684132973274330643717733104473971940838001465369534495853718645614363720804564953658816334759080676945846772424117645782090198597147773764004268453438232994086855600585903722693245176076304597671028754375869002335352738203035741242911348069710135555309325774101560228613060048552870020408635255699981824353216831502575062888841206250842676372727624141981922259960769849075033164428947134247410948168928216860878692659547469721892076808265498088213783824355817529373600370070682683420608955861652682401544072403636535703982381720182008902854211282560205126822623532613104895997939536280170745152274761872262953588473566125601400973745241733735975460578126119580425920963394267961183444523222762648664740223965577403061700896408735772696700088145125811087337498071024112828687169803839941775791318891951192081894970682535068846012947101886134153053042026730440892150688457566354017663809707287407843275231862884679915444296267316487130520781590735146869156929916808906456686634086715758817416185131827057382660773957790968872589529848275924064948956729952773268777173732758038166708101702862192162309560965353431521619012593883077296731477259525367450034061470255347127748883970140999756215095409116999069652433453155161841916756793749099134192125698589248605312824281269615565494448793798374179366589287309376217760519856214324461678389801630350149491058746351316462296301225542775766968045683021344744520247090493428493866130057040988026575296725047069104780194970041703445571519683757528453380584576007524815186055625856808575378931216411527948335821061396664115831794239304490790050003883687979916747295102499819671589254978468459086093374268339654420478603940292989002251747312516983284864110264511183041777098321616225654044735443601321017704357795810516212914958918744601836130193662768210531462633231520413022460328360108211096478443595244267915680678858673768197220117272627320172992491735268459211888106850499205435546778023577418052863606131592147907593291563924126465930646343458181781410042293761733851293730549845481960058205639289767933990687617802748445006918604053064254937831544249606416399708368567311418786845480296489606792420820896872896136745440785396309080963292778778323450376464980449901229721292885623438184863516463236109565731865840422720905182329128404240457731564700786159071491920722604118952838180128458812372882572070316618403989323688028196456073346493052287452549985210038531561625706142960777984629737792660851091827514478244320259472119541055847425458337933501746907362505027145275534499217671962172673334911832030364953347828685220613935587134717910724060022767658786251213168989483925715520444449539461600742582923767962725534296568682126119721925508285594127510645782195470101685997064746671859723106651692263348978747559743067112485587058320306496586777635665137545594093319102690892555337315440046107795753843660021522080527015782885045666674285346151075190316438296706363159390946296597192782833918601275985455569689779039707414019775303793031366975975779147092611029690845872208024115261670847903498564434266848148626479912479309940547259210106958961630135593644619949149739762528268220615083628867259027050352931368881335078526119467061562503448562889364695409967607297460874277984947782265948836799137267709189999152059603119196570257512779216928363310520624356823645234789229278460463028684311534801125827241529585294060526950809426280094677032376066453162134557916921678343243340380257242010556007743979498980226475097715887637893057767607524050488057077479878040756958654610604905357999635337235773169654421294257677380122521275142134050934324101622158787619676447136029051865729260213462797225769250049025212151573071880188058776571547368674299991760689242060522455047163245782917967411577337996050287710479461170646831687044765203240841701809868220487363287661040472312701090973422564330477805591772528822235386200488005933367036296081893213768529541267011141390112281556572426106142129270431691525165208922796150919960423600339207267615167053678602014296355380536544992541179056772531098292961333318414883715391882372522485474378166940382823557849989738329366365161063326332830988027324424053980332628162641366386688642421694717954537194309284948601068467387926328099386001778383346132826550566322764239978155261486199740076972900118221027596778698238945371485861191361485278189465059049046414459876401761366798928596995524150512826499437247994240070589169278919862773947073927148925181975685098479413621202827121940610045574573895075357414956105173578433726552815911394804929529636905535915793298078437434118740550035256052638560705103016281323933280440902745660577335612891141366009671794586962277419875328634912097112639942856170122414240586580533438124938256163775626454715559140785804638860756051800508419500372571875281404680158581555792663240767292179740513531034330882485962407135408784433582497309447242649331315567863049636388871055060849494995981458690433611888089889103564894356766063987275908277949102818479361002176091619304415785136202927736501703702074360349550907620839481952500812905657303627666007626446381445168790649445322509888771438870659962948609449445944007465996873837471341518463736365926751564890574716406350926461099898189932110736111538317504853311166390132956251947917405139426141100069698832768574743410801124488697471118290505056684447988595883142822446982157140229316991632935720947544859638980032259447974475379807318405069810629860652953466085122013941440812207847217264409120528905271547848807578209555787593607590618153093982492175776224282988871037857965925934446241147439203360744920989699014402173145141889913036341677838152571058107218341077736873655655978679030743770607387742654969131957278779005720801920981157978422135386130654842641741087998430892159594060958317303052135856579795495445534698427831651451643662045580233915890425649443018558621026016867740778926773941995224250917743965234494858330252728470342995275051319172902243110864688415776497570891393901663531860309093302746126714132992311351700004480768164026150417802123901659627772712916452694766610137736910315421147274746247322333495356803957381424187210719239416173397915950445673765865684289716846020744695003597653426854147761003633397780172027367054031632719692612529973109176105494911659493234624451269885923003607413456488846707320212871631951294405362745735115702323157610055390009701168688675172119072117346112584553385672998795199034230558484676640468359419768804867075768768947919128937697428840995347427379201435533988490436761954263107357042228143987589999247454271105996831563818863675757762732271130674495029247388404662173384123196246584288979656233460424969326063490646082317924138788822643257254857666626156179610124152282655145457195869062529386339527481172505151346381435627826173593980795982930310787978840775340485522698196397440596792440118500173898456358135067711678790775531969409586490018961859574110713444259346434305464020182321747983796497993257282596161774997184625871869067516738491828291131194345658396660783524430667380461797950939208072885623316648758447235049152207914817383919615637082799090276576592910213314458658850637552314812379241881915462143968043763109975204295183925908373238001398836091036841487196820369475856188184890916656945816996943021383753767799593571710037620493057942979737323180513977430518010295045513049708927764511022649025021015643077292112007137530331379820428728729640504275801993990819683195698212705187800213316563902699404714737340429043018009134640283386518464899799503520161962321248930038502294523382007149320676316028289935424519263398744311470019430735218743151572082906599071995963697351567314446497366825012554597995909074226371041479650063360043975503050317085698150541325633271455779634451697556448540085271264406695851584131599454416163268944027585179638006958675420633453673989444102265943150475493906770173891155939580022433130431009590268812632331591513272315110193424122799668495187470744672306437772517640749965597150103181422093177045444169238743031320163297425145623234833975664497472868739583163938735179279293406211928586143523384906138779535938519987315761581621619346540818894228008396752655233541609150613304439342413924327765186919727783710941286936072236242195771161694902986026189316549839659214134874019807459704175086519093676392439217494161989050853855538334287868782084869841035341075775616357182555439074072141197314495420452850231453880452705848388287307636406473288413610103622675842408377082184041251912770426947211867141880042937302472042912032452195301927442555939709481893148520843785509937764954111139151234037879852131966023762745921085227028545017554658012259624169931766323868837442105227043377268142813052577047930257132744090094972662735531903597240032252375355928861497804577614632020598702833389773077309497130468731011744830299834511333113704632022046863347702737621489577489371727628391058611259878666062693135994258718407212716789057366726484908999355103864596043632486934493280990360859811636059067823621651220930119903190785460246837276622377802030629791479058796642437987319331596717100696232370633246767875648328319662877310490964889788336729571509928756880888696561754574328676921111773884276527992952347184181406331815507124393740516229214627002872272801550002873759676067348504635994010330296235220814843493790540751052170202507128102825573809928444788952517648591650861554925109964926889527724463092727039466829049193510319001287362588413664545935822998168074471067847224524957463241627395315781641459781294255940955664008176004010748679023706569489448066321598457518444300542836118263551576431248034567235744898893623597708725462833313512916635334151270155557119330929854335200260842039906187216905209999133101100078720115195533113609610750917285474492048107333463777423877577842601865220461292456675670976670677872125961153958825100340687334747018186152479785891281660668562645923835091049320694918202876736204769796764400055343737602196411221987009077828724614532460239267517622956654247101398040772185874317717192546762469463578390194665669749719229912068693411854128863098317434693475134242799030225911605765433473700116364943249810775565882312049135846372027547318462214130025631369937590581092374423782702975134429880027817743852410926280426709621032181816914568790782935445851029684919588756452914463025729149243374212975110895832282678822108844667507187957542799338721253140795128738525928637463018231729731727785186016739750686186165919762568876634467611617965505324480881062499269652663444126159568007257701125020519786661054900681528009024116488166665078775082108245203021337955685496765821774612704497237815827633600771488087491427580306935451996565679462305839923454326837040711075138827001649773136024854920204484879928666132531746117171039286155832906876905867039785049457459180877163642290311609093318614922550019429739276850214894162898495053737172880523971326837763294692639516221452830130242980111886595255118634456889499801923904758517563201761350788876899794281505281509611469849722027254831090794848892468171977221996824297904473793958581392992857542131756637792446296074144903816007525022163173233534025033033815823124026696175375157834716013079997550123331473212775388659170080363031073592600416120775778922937444837784709605788063204125846722576500651261697950621094277724207426349350021250741620417049054268743635450205303601111009326937616132904316980116343858819752707022056089059634912045591282281625750980075735890067556949613480594603246540560969143734886333355347577703672545815755959490610243654921191534796870665569765099944788539712020521566098833856118548402342750902440827199639398777538783495600824707896993145841865847852173973743873635604382453590710862904432901520397348322038670994463849764048533089761892722243948782531869984647420222348724156388790829141931234284619869700101192366617052679383534240570760607038691484351180432131413903773741161837251443188327006696706104603414323196901114314900355428529343009114491724908142826187667801426449969837578128385894228511466380481026983378214428484534591782607346782985902300007982744937177119788643825276392257755982207528610444454944068309744541498540793552357374915121081279982828681597856335857684620853303541609094920405276307035255828790279805648298148383650538624199020646410795469536656830073076849823872577498355749034825598437625957196479335622847204731665125313901708647534685318726371054811449116331839590977630175708170648821293933703127634534334560930829513201177602801242374242849059321831948535007097785063249845668643203423731645457219314409995922360932771353928909805272458895358244685803971333480537061204455837476670569125164695251096660157911610142240366178977855443109075698022567993559263577031875627603023560610047687411890959157809597892831660121357040105801044623327824118740201051206017795126787867478636173456226110064247396878525569963605337034892007754359324697608118887002171306415178325030732091566833362852460807840692304132856917056546086559971888588357163698085235362929124484364851245579451467305896748794422417265136792613389940660118149416648025405651285471985268460466456665366029029184641205612807705994910084168681353583772519646245994809101244144105003618702996718057495150357822224762159002416635930743588741185307710273963789647800755454380504770687227205687356937547418210334046965423604105062164495673944511765842793571931684511442571932535592694294139467356921250772541805691880967021164673293889196519229093886216297040779456786814296160518755774241836832336957540398471799159121339405884453174804848647431216482425276611732470649072720517730061810323443741613448213098052148753454460678976500988569722587833703652592083673452362238357840652656366921273441829921651431049833790709595426956863180576019832938351444364292418140128064106928141745329746855977559241680192300368230579708283075598729347207687904969954153753763898110965067682964124091468238973787560986037292614719045602315515414715203802635964983914708448904588301701419820558033447643329418802141276326407625726283318130248244147385011575315735555575272268795590534467047616034351937915529883702612462632611062117788205052240437251646218313054498252031924375702277879082573356834843215643396903574456594267731824035502821225418613389907915497568874674390907375617147442568779012960290255528098181213636686320674862655876598145760632864225620690850930453796211057562809074805638525212224260721929938880851303532082889473820099228074038102849724447886729498007179987093673044398309363537601356530421691760152143078038443014253956968623531919197811792267371669490337878671165753359638243971943788398696533837925191802948053855064723068917127145594699945482924739066542469923934215685806977733989006714530834639886653986420087235484399490982962666325714675831667622897833789945681040967846497915735363335002550410817672112161161446038647101994165826795990798541212856994748038291939477981669568581563273335083442262149648185167404724149820392691667223243899034499891593182902726669011192496938673848151480898053195290965410902883699120160936697049982413851927080509285127389238539336404469410719998967762865229719627192474764632834954643712745197972773039120084347173840405327140442302538124023449596186424095615801106655381970273098131303891690449110002308644634038995844549010799787110138532578162481052856379580673501539964104493021849383481116772235065619488663835786941808116782280562576693458473600070345450655618378957740273727695679119593639005000422598923822805931633816416076969797870489138873748069851520855099290096865564569282280678144737235034674763074225897322682339996262816573446047988759297067906468777772791954904346911330310037493830444044464356470814240984254762470025810830804741677014487426750475752574933615116918307635878641414562965979936239172487363908127954104548510399551891539699525649518693386886531656590470991231813181271269065046374643937015590430281123420036429822099454443977398214004840170968895251477796641960906134252634942268701132343621456530540316869828635911162865313985490572782453104307098486204012781001231568875075025529606917081810586916590210588147569470873364458267009199992085472084432885212155958761464101736357540554610628280206125894575851143134756921867096973894693980286966516779365340837793486618271372706186984153806400051073305480999275014154481301199520823353945304007401027645453849689589602843526450130891595007012681861428856719225000645363821624834803156726089637643979461133607150419032921063730140643135712227079026232596722522944907343174387049189675919267397461893776597328187914156673802882571822246709406854872841075501449470942024795709626412583597379297796974626149310198911970652797168877871158372969134776508587446725514786832297186638158210016211854018252652237204955235279812002348386598311290860647706591401171146427707362609017283656500941423108592634886334177533312275642618328773696220053283161964900423491466898108072854425424249069837907821686745813107871017294736626815421394064705017224562111714667532349931469347457523655391327950550766706168468976140254454883139036481411512564482915068421359345404704331971862004308481737466719064783052136989259613001018580966075754576758183225611175115103410819859659395693346058838878181917696497813190484730112047882587461710584044394512914233189002020786927075060947929413591344170543085519732096103686475743046233224796775670713459565355859456821557689838271589560109448038363373524675511484507256629209927082313477083836740887244068283062065773973384566300220880842873048409895318983761667994101529302528102863140598787592453532625709840511840979119087260195411790774702126539220848537286813062130284910597261647161737766429620974400287391117826702429865985400065930193584616126484013915937603567630256003197609122580902896974650897918699725670149225949301935686322892006136683612994309661136578861327511197638441535032182008619488534973970248781683183658526027821793673272910468498234742972977244482101333467105918592448889908515473384050097763004016739876517715477583166876653998177003992855805570212315705140659566430136056226960392570356345455678544137472387332823455518146505013639992338774615883290083065206331013973805954637625389437130261229120391821589946268934949001444176678124889898536646695947278085246451139012114260309496857358939328848126805894402651615488292516238669584997910121023398204412923475751398382480693567757113126506528083187500041494842867869523134123104002416576563903010782805249190160312602996598360066937423633318962981431066392635362778504640098064167126803623063005701306448988163733215477016503361467298733003353935672338596592537694942092747850587813233870704009820386717487466500818588745175481487630385361100559150992993896089900794318462163339166839451355396909450245545246819225143926861391816455172948524219454921091301172546827979203646039035802923459808406520254916658554769076569402890320509956509284475081052605842918444064334113355309411856723645573874419037281983344633709304681547335332581241115221859609868296608152194714238253541065004597297442814198149236818952956841699841248511479678501618537623047988753506026580826339472166516418614257496415833882124733548412523358573451986262283585270817320281602663007344804336398584417062633473677319249339495035558921563028065271900249802539374774905072722830274994660888308859026059008174702950694286392137319334644422312632489721252002500675189644463492914128038074466765666839894621750450350580926318891520587259107870894139625468253441358294982733826263316982728806446197229822821654060048408057369233074151573567986202354968026519596834631633838453948594386487599074282871305845606270763658576093358458657321953544567579710488549705850994826133091549632890614223023451213493753322644327272946407693584879509461087979301065232414058134550409434193628276172255998408656556592473238934669417028025898255195301695407269713793562407284122388076193928566050014001276841139319557978409788784569937012135384244221073798710696610639047163503252416184704180447644023480750764198673987587794493707122637016672218705558422806698540284485667452410359494040020706862071138120344879604123601744998090715999905456510837889811878678974632006911917245140033876698828893733785352546678786337962825199197933964215459396529400873300537420036825500875457852857392187255158852840084168643218504584794970413258714864227318972283212552541623346236443711668002029088881768940613955551514741233366574503605854310709504212920966731998010393392542303581622132647384996874326153233920628745059772960619925830069279203653201933222908991537704106213614943128343229163683355659555234772940729496404817323946156231732763320031917141960986827628067129054803633934541986453399038893545100089027060399804821110110200725542951637572271901617441339777749016592534844141012824792014823382418107744776923908991251178970257667631820670510729075869201980628459294467787852035298803867151526900599303625696541444112299167565895170550182130162996353048822134249153377194243674618723994714395583845408398416542533722069936236586479056317439998257414131091047653117721131190847260739840882658370379143778911734936200634324672664732811757798175175827097874016522426325839355415784344075034197068573373519298712249912568843978801683169869079917819418139683654656386327964421335977300470416707233616789837770696177518565551934169276986253564975530752732419239096232056478353537940002175113890611889186674106198118778828353604888695383041214613895157868081826942675073717514291853696576242818452742052920944419269675980911792286472920719256981154627106594268834335448245583787430633310964667955981591092701246911347357119412392449530009681565442469561011155363237551006726002184353820333380783967903524039597726348203697149645208295256698355509242061520607072489362114567937503909132742514952821342288383581673618373576859782951437875859351952154429654597962207383115234374675866235927350870039978695402579651102730307470315467869843107715998681999212367723447604066254365952116872822146794770595189130868211517709671065152259928707894569662110299779610652638777107314143125573032578802765562608331698956949535805368370312922585326540846345639950263290336611888935414090672805763929343513234993706440710387875096207756628456050003458864278479830310365971537220300722148199425128897713713460871662220857750383094697293646324348964667476812523842273096545586394634762834707276058175397129351347703173718339785084705956079451961022676473341404012787576366177935031582237979972250703214016065258100965875963592072774459559432284039386689385938477806451619501168321034669757313060945482216876911894040035861505009731576127000753487338997855095392931260561953459088320032112842130915838649720008427369078850536883691768108163321668591918112091258145594789137386084717519019146985519026304336725282650803595543199004204604703641595744407066640388593355859060485466610150633753144672315311441930318170474140389239143367706384331800560830223114638289025699981478186049994520245494067529584310872299217696272428154069847326905145269925483801883548128342878013316710408781148680529467591685314915473688938138246531157353915508024451951557009722797534700469749732767684570416628290620075761222054060927667801216468107372257275377578114260331289503093388324593519381288238542422350764119893491461640176575985160745787688534261854948802706454884861462108127220071475896104219717102013220484085257749830828393840324055020370235269408425239501336811131807546755735638584995985393198979557962708041982032784699514567046426350196423468660799909119367108976892768583525146418140156561101329912175951295462445188515648414078664449693744486813812211976572711704580007712373685647376771490141515734574646879095004918586740175471045355605636758454514462684851239634399990042870821526537553371081581635244766262092172294630289960545644537328761228840272549445794020028962584574553466811956897308341292343458364060969145463864445539034280678446364300603162634204098174431173447416614477696405333276909502788067289811416052198206999341492175820013143120653284111485438559736340600227496223920445292554361319156552923767139900249423859476419295778642456745786762665538561153762394021355463003228129905960363510659306141939709920367092100831795603969323206746574374025206217056840500316315658057865632674785983630395408518344052408709374441480861534270476991483429240683791728991873958428736105266350546721547485314844623328932343429024453393294548535026153234145741252807004392810474560645629539910972498576599072715678525512255176182091041835063185138980343037100445905372530353575655220621063615210612925167858271573156067545498614777640244507156025480362708954015373562812683096875367332432531410290948730205232931179729274496129733586154527788346446267594158872468627933094764051906772886100230653762761051648956260531401041261893167369964023903451803443327799395535378978343900836480900802940380957094601429439905633363068746523158022798988035775500015688068799245208254569121194926811473457813597872472761545212939849942263718528727112705804952326930201881187709040716793120059341092288334690942941060180827859146200113164526913036660731167186602505235868210970647993958749072706485569906391427311506000252319860051916944528733593042902286063113214472038664226992613302580064947234135503076347952272248525086494188388894167702782918835965666786357881057671788063451765753577789601275121180329475736467992037964787307236035123091807312747597357362534192698200621939821416483908842251106462290804856244612300928754711278719952725720240441637652031307102546978640460405252209992522990270925623835272297505613400376944719250430957031242087486135388352908407129339113860064727950639139706149468502079760077067959842594070950198410446069785186519586273260662967842838519360633514476236756188150751843652399319670187603211936278475099402223981530607754015927712376688106911319030306709882095391040282064972487525033014006813898102140005365032921934375179179539347223083712964434097478410052069807257007427745421207382100446942482028861053407667457217901361793133151061911927132878839957044336837269068153194473594677610416047918247691469400362513701321863589978784406956893325757314280617495725870013347291628218195967902106483689933759085267941410734492615253556030170908874895871911613932896264133193697313349196295300318454071549324565309869824201680671017267732679763890427965917965772853935310147374415033110802911255503848508439159922115871910934928578827997714199912217925391467310504517886232951222131954594263835658311920774791239202759421715515768555366637589527627631165518052953316665669779520754647929330511114434966378510450579339208622718379695043321164416788460353861301009677826876602397385027272055935992562412229842780502363388223081416230603549266648143575747448526948179503928752847016013244380441482252914835610864721483033186818647049573880242891590908637356546784922407671959753808946274794903982147593217711126968154108482833986435440238189123595030257593858437924966876293856088266241104576518465465613682647557016921427638949696381238633607773979871473625711283994067050051800026975173712713899421002095442609772414981035863610188511570556023032452262034496537265466821833356527417403200070892164116186199179418525513817418402726049072344394894890168400008509677997003971479044876164306109718222885184683879638189934707991586723974431700842988641567622491213147444700824124725272584256396175802501385692041232943474212403637727257620435496002485207265577295238285057828608244721077173013170244483332319146953311319700782835370706716592332552509200006706897004485461977297482348723620828830404589817916306149321342074202574171699460000783259475876589855931913935472002924324637655647115042622527377628793957158068076360894907945920351743639950360885726831789406920233428761783950095538862011913372574345144538373583695802412296931676328233510188600484967574887370515735302118307963301545011893917321243063449868063558921256941928949999511497666192323912784439759661139296001618553748226249114646220109805301608294181674957101849995388381553782422980831700119094271756977502112650958921881218633873682977791387125680033053734987433824092076051506959516070069957364322582673526125229151076484352683647961239448814006699301880834476788446142743016056008565136729153650467153117229736844351551730752717667155647707531882179208842466345475029683944091706895795079712177442240159959490613858484104061504270755017435588416179521104954955151998861625379504908822690873797496582424363343847588924091823123045982287687505585729005248088092679366094780140233868717743725567638768435160414677676651636294857952562183942724061950128960133672111160426570052916449375803781924431149502342205993471376786861406872668908907362902795100878709334920033793615443799665982959191127633460433460561712236869961899025902572335175684115113719902900247402406261939638183434004438839769535975179909156695794144349324376448790323708298263978047660104239583033978299199186355359366754607267183808998589374627039635255961945867335533438874449015971113892455827418252743384614619000671830667079863147158024304878715217219285538571960637508065451292862894953849702004525824296808599114534519282226029128142250111286900225334273130783596995697580315746190261210844649427494267421899379228532154773951604187742818585921694309243976914491243678483565620188406233788139731399314621357087737743114570492252963913927132961741433383424615828075388991725434911952379811112727055801556685218987642123817065101114540349990551536898897557914477256226656472542200893678884181129284024236674013534289523114350369368365006200011592142469818809165048426884015075075823350727364580068679605468936907708599194835233636957040825284438293321643168494138708009293686510523145785369667905095446796947390774610958269812798562448543195513541260248320347998084330294980337587114430118470110047904467150349946201697223423915844329878309429809316491482206731975832146918536558780741392711201452134467058974015006228946654645774274218826489489390848403365150666957275448390023579933813801522067629872917494901210032901269453877931096628546226063068669991072959944535011100029800529267205156916737690060198308427727137294315923242024053587217052578369794709006162304055132396187422391731827057359139488808189039804249312184010256135892553406857445939393732784500656177246888743748326606162204002074621083900549854092075149762071364749543561560893711984572914680027687191361895299542541311561258126045106062919908739237456622730910007355063057177686983380623908181979564153643910711311359108082781403461114882742965269876452644472730123240414984411244121342991058673353216070346719853535987830209114539948632855185230812599408800632381222595815187066082071564416028579753662561529024705455164468772587790218229858483772138600736705673035756266154615993390215212866248129451264732807581705797665755931323544807001741290742655755268742604856990827049323346525667499564340671483716395056413657777855704173705366398828472292438967229691543569679042124857264173475134305940282758433979114358145553950492627204111590522324566377576300895767732935944400711611364445622335164589263309536355699134771190656676466118348837379793798083588319314769987424901647300474040507806554237983173051920458142651115356306370937942198040552392124500095463772070956604239445840268941494567605762997460970816591030411297305480648246409384541946925900457978734992362039479474508859542559705494873229294359232581451821724965319662319467397937694240755901271633963829368843785573344056265079219499981797841033910947883706368912732789403568664677860612870295134414286328326905824625343013321392705862396000024580767719295880303002904515852651824025601184381608112151388804345765297796771311872577541428541967456790507179912922437495128445086771256124805758806488928234738905676509897588450037811511750695539504897850213699596941170796366998750524341131361986487728086862147842573418018316628323819510779513712978309162826297099870840312075670068942584495866838516235838131067316140674731598666408728916239657699666885201114276705044089873079620323846846827245415679383205877056844578968202778367235535533379784336978462778519183260644183227039181368400375685300971402901619845902858558712126618405279499922396527106444678737628857304684376118866146100472003567478039691941367282670154098227442348993801782709159865435178991745213998543214869084174096143319135603489062738294235338265070185226560140971905164705423578907539722668253376400375113992496797117765749986724382637313479999379156557760688141668717106379505083669559977718137937588873418869479116897218665508009854787477989956268857388141378057638986520963467000520149593238655194776705763754967319577675464277251587708317973411262436360179644279528028454350998900457716569035746498571504151020607393746486188536393405940429706972379776454770839924318887355961220702739785950813507341729960409075848407863351190903358582100785714982348008707959374733356256805147333184463617829835783821621242848904810420488760473313155289766349202111534446205338879699095807955952533738449484185400880656124456826411616495124952049785190747316683827032209417910303636054817374295897296506460873857405676166308180495911088458985322710039511644149759243379823421802153821235986162757815305123249947836083992977081888038974027598271309312134288038223038278587086933749199685993174138248248790379619697885617467798692364163988792726643254153235803593489959181540233247826342604880510196702512548434589489041218652111064961951997838866845169680431790060705604386416182021817289642331581342094392560296785067551342651723564515389238843026435913386460187686581797083308721048598206851936787413898996505996669778070250355762142027608842008032575003224571852262734786683075487509253297433482204989900126669302283370341107942821067687538653591744116289966999469930390677711486802571552298083142134732883810416902317869216040251980204540776312968585719200089974549518701295732448275495522573290280163498511097757296068704475513113393515144528071556657626197793278064709015719930173445492370729498583493765325450754169043169320524942997391844249927124681982130209947949073503351376544690948316594592969430619563956617879839989056675039164063059484559767573728354058700641782996630624862412027913924497540710426788012600877835132140278736781840384298861008800569505646271382005127348999700656544039261173626116216855810165431942150314683757360087485621682317140997944437000821294638016731077818737450704380672278805304819325032514330296163887156879843128087410788908777344447727859441483970816031080308762524023729240568873379576880268564951733759792921376681790453933510300916139018838021014121736792217796423407985714476480958823129598936512080529147296225898198776765387937684196835219363060457455710652744740552874352166227813527833933540972544174795277518667704843966016183325420730700347047687004085913111887323305399724274050982002481078657057486711190966134577894482830295523210708048013989788403406822455954917579630867589944237756196734385624135320895362994383986809076598219790823402442057058063607409055869164679030169560363022855752076357907756028190539980727036448657939149342056205071516666335363038365547227604073024208878087913576966274179048403022357427199250725921692942751424865244596417217341365373627903334144857364179685412793475820038002599835412465743426262291795018177301033706527143884551595391916504581314949146189080708928800923349962745752757941922627769633414112194982007082651192101378601845445358544948210906485986938170173659894326363105934191849292494025922039923946369306265456025472913912871366660114020315323786906505859024257503711475665616468161383903884721163773125837051925952132251041509995335815436940032497234919997325999004599742628367582136291171355309998103839424031018130038868832735829780417293832899658945730911976950694962926097721162313400527011827390018876639414262627002879500934549810668509344077565208396940791382780660833231633681040785801995568167619386660797345141003262432929588223655962228736095090242654971872677400557170217876868832298227646971020178399938168545540894888030587884134803516379434740919142624089374406933792954830614129836555248205612743948385430171847493077952017347131035742283294133890792078064927359922352805547990343434050299281715743344677199295423505398572884184226618681158529717790580017315330061009059702229075182354504700845793948112552701852766261275776722687459547120759105672037828855548209301322675309139971920012714434674542508063748862814577663370030598527658894923387593909740679693568709796880103718129044174735854701685889380427948588545860746263331151837539918201008977266171599370729680637919364786850636185048222352845180797746122017884112853475503528547756476009194843403709275754865189100631421488431715691264535778743431096860068287962860657031702613255484723066193515607660584525539628047507574013036293984330337297897294204638787218032295554435187780131069952474873505169650448358827726423257627535068905704523820238336793640634453741680075508974916032968928200724329912565849851779605748392055538557398845776683462701425297751096809535238532326760164940938393841071365886287523887344452998785198213964087131322800057963820123448269293286542052215638965837721525173503850110526042389175518781502465065964107247762334390321949013311603408779824506913914958980195135104447447763874166370428184026778559830771381998431873058417742612661435923170617603495482614884573093724307001036468855918035830574431995685266031511647031173858249370708642347507077774908703247183019872981207148076880597200697936892662937208609023279728367255693810482657116600687853325976698208825452967689296686128591728540815348123882149339923465373552194840819115591129849138607481301797129882859593850789296032574868248935752177838991824214165947831340794826872832315068444726599209839520734225711796302520855292806971089227093562003259055784358308088876321889831824756194350450112060092577123562770160050453347792424251016689459218864936727941722161649652785657683871176482784151722430718352238219970421978515277004454398575250939627995355394534478593337938888588730002744942603498609570115641980778890640899082397983052716369969168102846868668994945023930395072634453141424543435923701933139621398448997007160047081080331800184549476403758203293331713616270590710039935057476181681860025780584023835830730767518646838657861338520326918877740616270498431494661031357503793287669878953813916748959701683618662959360329015044656839870630680817812252111717453687035479869903006358724056927853100409817992456214005954500199400238531051217040547478580799151632741429063985354874235607736284494705304033987545480023052388887234900682750787882291569102656157071403403362336421642494528527179755471407828479900583870830518637909298151838731306719213729970618631577878142833171527530313213437283951963124072420907568570043286851711058143455910508251605850232814054393034125446956621157181717628004141209493897895449254819447610233948631684861996279318325130017460957844527357906209857535898980670881602939598087534405161128212621850541513974647638564387795195106791790702510882619967525821472910903729836337209300261878363622415676340511990893802589714201336219160313867957049055919594184120342298942022694000219874665605175086108531673385536498956900513478601164760281352431507729037506213361693849178428171892413955133230971122162003229632463354598326126926057516377208140417214457751136534539253453236507214742343821982796540322966273590515394618532480166354330540419471895377478255339910789460290426309400583895757626859413167756154437361904789092028868858974679544071657412203883932130679981531100355299972537462970635947879636739997541226862608865647383940853754013447812727300792165008308180353447132500279351576719042182305176522027759037846330574210715748146970316995869620064331630672304582765060149845878478335700546922911352400627501033987586471094425475138629572244810914542095905672116420923855767648546126994221358616369751714952818533417164048583452390726784739299210213015568082693361717348696327760168724966068858979033109412230236067845158552578913644302724452311393106505972776640936480423496856774523662859666363744036237787145599648156134912650147160730730016070905680850786742577418863472871282544691773660527795425695492325827684805924779920395141919515109062854401895445225587272339883117566425205610178561251221573303290971403273859536701603698531507161909410188302258770650789176449225329125657756089174667644144378642751519865812468685785932616404734028507898065098037581016264197568382553659753006744719860371695143142656876091898620784810691797976213208674386329794373805788127441988884485447574126778607487493317712310175166696844099539100578661754217599436354945109711905505718449381302725627382216098196600461779981545963219499950095322421232001952680379160916501396501338136735421162002087195466431968196102280135964003357757788702735803943884921391186721521543444609029019872953556002908111173014967520092073970554876951277133004512323845121052582360266051071487947215950541764424805444654864867471976297418576892721217114321352660789173872984272046945241930078054946132995135622371633047376831600516413271793163098499725343372065302050850541723465053496321140281106627524529216857262508150465268416560823344469679553737567876803089654459976730473869747574677806987095797046991195117306674879437774837980492973352326447850218640183675471806937384741982401715667832782125195627811127141889140390947909208631640371303650342589224184242328763840969684083789583856017187027537700678031076639718275179173679055544989594418017141571547872324414830461920583658617833949877190997635477907919226202310092321002323818623419337065616262033304289797116678846107917689231913044535281223591811489058683080052057423295701713933438139414563900546374103825492156006041000271568275475026397383903038849493941533049597865449949138169923161733163729372122963646550632098908104318153180947236919690282310274049796545231242788116979738143052864652853474458784698790817364849242346460431525029125535555476171296653987606852370153789140090085623567727445032889020751695019558981086529504280431435874953496941049784380035718262579721326319466243428490067679371114538818288996760701598073374096260844457330754144678220577489149644826038687844444705106640753948148896371328423678476385603831952827130395111604343378438724061517108590589100200809741393802329073029365561910546899426693459948919277442467674130197183251015940703809464954242640705009304318770785173993036324943117883091330506823242550982673073395781133594902465454828814617478272512489862505035730442427913314261237235744849042143243770932984784856379003943994400594719701078133572934827945550240477715556081490944837376248458078822281743300368981340893282477949192770773578632692338152389967237489196693985732597420738184615241872053310207550866563248385930871587819437864728594226246343398607353275418977628226191223756553383252272133127535063358547610853295130546431928298369970127332926514719981702718360172100674692717297574377504714569459812996960076710106314437452062231314447103168546491636833061226050786494205107981266671697512981463863243935635563183950167117359908013345954596682201533893508655717889277446551734212027170165096125971615846183825038968932576959747722737644690942697702754119069320206634413716061958924627022633707593580772097561972289651644120994973821432053064483395772401173192444563904559935343088401139420233308937828370514562414970303679939079966038790257672450960789983370389774674095502662370738209975887779124813379448611357895152100165031368292043180321373576867981078231382025980439921438752882355316356923705443754806136758915395208767615713074042508670525508353258425186487286810236263386007635551377276593712858257195856641086243789269981155831470432004401773999783726364945645110775803225743582347376825477675724647043091717716968315491844302954066480963091561098072889086271634093370216091490946278045818624090489006799192483890868304042834368787450830841591916077755860264895309775396583590845133306057353737109159307370686800931054386359326535128585902605076744655280771281863473171060874026456861055528278097992987813900682448747479007329961963065634959527433616689063174539774748964843802413730766728606438007655781343017800682403677653378615680637473489435991215442749415355155120363757371557464304413914701791827272577348290284072722430040013583309707886158561566093730702930297109933489452121879170297457360951288753626776744420289774514416256558402583352811105947047802251607302239517291374632152233795797410514654700024988052333907456664949678729273267674750545034203451347350350966447528496211162145792842814553833860290214749656101841076630216988010255455823712877632103020763691408104373111370569772176010441014671242102004935144169804753778136497645068483180453612896447028183226317658383169862674212895369287040747071754040804237783192239974325855104831477536594673631938940581272630573687394474329595778630955163129415564871567431788163222599105823021449054458245667406858082987088542557095807116514336079432632983840470960617949523784405610697270028768816845730815678523877707819976350788944303943995182718743172954935942340323836776038420485631455611954700653273685864826339844083136303253851863788013180268864936274166573504412329609102371186427865460745457292600812069484321803852053769299890687411341485568993514956174212192345244913445658905582869350933972003639797069808596036400607270413124034549958317012766729489516824988724564165693705776998669106392452301358626995476244856880137731979524129888876764839026519612034478023485582286995479677340090601471873479423722749008496732130557721846057883499047328588377587646092855336669480633880402022100056605517555331807481146677751527487725886802620596798410488246432629307182066772189732471560102291489281859651257231892420648027159489792078670267259272621858355373950394806285652179568322323777019832390161982715063733695086714383880547718622504131138849734352384223192436939415846099370344357060042890481376912204222366469238107493212375748249570631455707174566356481855429129592058423861730097167720256065032927828650682606931328070751960686366144712419570302186881254807778894376572535899694260666190123125014001897922165833392220856021698056175777106064282887755295461634349750617469700737548177141188309807749121927168780894066324134559471341730527882493190206239719120618372080939039115218581779942784682407775485500576207149802766717794545784595115944125324233888537032972809860371799812710568664050814697055747631155663214722755673875248203214297366389122053890525070633869714462227270565193567099807198804021995724908904798629884825744009184021457425499308704790784545485223247240659421165057109569570446219050788871445325228614724369469267113971640992474768386084310224640680477036822765715180168643287466762832224232829861997289911236656396826884020045747373750501555351467685540230363134820612169755187207198122750855068465233883164790480361287209678880138406575062404320541807392080011562499223734402367408411460750036919109726965881343506935619887438918558827446231673355457272524832921769778450676417660173318199259660739718483646454836629031012855375392482317153609927995785284001632435952429328048984172558659341147517625807698847073794521198040293645204328861871324314926487530992949525890687504319623538143922335590971124843284140248462058820554872647468945220432348610471024315739603541668087040856813510110972295680374637357022135265666412771030988107671259700368242497559776963568497263024468722267832808548565323362940326210860336869042019268878320777895667292828136570372992532625979806303694451343112320408560077733127351744131170581576841360498895353301785493164912991403189630982215382837659991206727421343970242227180075572059801106588125990018739674530228554853495843866090576487228604269877044749013499314578959453100381200009327519945383370646355824829233267311484462783287151097580657487891102583529325752166293444491447084211078965366330059225718009554952774637190772222703303963148514811025158005596329214092025042595936970024868126526100029871525358165609159504767265885026360651017225781839057679983803670737633923404588549562167249017123766556132661037629445090780365628738775991449365748713899504110971483940972573977809994734999055535430297690970503998550037384203783202690185268613929632017908341620328793399432885228674993401568538356234959390599390650289907155722875033210835556547326568777269004058804313554541753691454422688824353598227912126621235455174457767833798109256646072883910889758122677321509022643697126347384500742916610262280665879153115986445436954906600775943991047139239961295159131130593380166403252637634696931700625375501275330794014989728110151658813336977146670672267339358512191677545248392413068692904938347532306310812248812979610882058973419117130189574818445433837831924279405336366574912777391558173647508322385924324927297157969143317308381982665269418553095737193333028418717814399720554766417464760477464008391706306690060268080255927094960024739645697514019622499082059624932211992111256400391991009533764815399485650133385655413620890130773077453760340387470026947824070099017643115989171155003411594783358461973817805224765181537057745349281189255326939663340680768864083381802019914916024166854207869546507862060670980547831240482594125512260554350334103278157843430582517974356773610830796639757962368288150847658997639614106537630756855672050791352763102048932923522701664795968463582215973516105143900349631734009382348966668808495099629553002370990054232260049498069135787652240257577669427668662611432021129744650680045165931404634596908764802273232205312962451984351384783245673693676819777541164425920292416620488504277390172038946310448826682592610734243154974223769445287785386802782915050053851285795775488418181244107893006449881076459006434978551551036925615865390790675395050592678480618893073755599948142435642620658970705086108625226648998129169713184768842505929726820625459180086886055385514324141843937115962986471039077841069571948809492265826569964424570872768227777067196490532263762417217640810022815026005129929438351317059363956957118350471417079624924525985707525078036902580107611108576672180933731591061884135465522719947720392295297153555188371567288534857544079952649212737270599009111742050907401850043226933838605237215635518802061295358696152374131651633985634493772977211494620107230392847715835117856236684283251013819632314257928374503688206671702159259688257311718050278158180249548771686086539430448806737232834272101240273543946178935985407854607904188177554234484483866164940346614433715753721366357167504584872139206711498352355113902830350788696908193553538933362526902975638733602409154011984637052199160529673463926397209537781667818336116922098636208948331879324099375639644788787931627279334875964580547466520434419930674346993721640842309807359130111214272160968342179515160446700906173840788420452167059048325133896666096160015640944133067414644985566344883020910849340759492801371657079680354880118914143468392063987850434499034717007323098417810460213951584798560731341118149782770330840273581851002312794387528993194907730123084365035661364679764111682292946729996545370044207209978730695228997201342556498921785685932905988487910542603081748892011376379294387950880946177281808308568822587028759897606900473391743595748229809722601770365641650351453708662931059439025831105741762385484672460143374502719051946927922534780156990868963314320970358906667084274913457555272585264286495341289577048604967907712063451323937898769833252725830721578479745583142909991234761879934693087992174503068699690512481694464999355052049058363689881444298213635713470147388159494697772189054656065883839256713056689334906661330271136808091188299453758213491850122863539364771911009977023853328375964410921581332562820470438082927561774633006562877781089313025167845154971885830305359609032328911779093892073808010519946765921417488383836284100142577676234503667707952757783400405970636251799161825406199251926825533285302027952917426595932855552116068292797488021685275242380636767418577979629581826095239018992108239669003091976911045410678151851401585153414931461152272829954703926822139276485001565601259318993175599091516329972414739225494318728187073722124554345445869359804722974583757422226401624879949390005567903121792156783904737445441893403524681658182104239217884303921964333170851052704565597431153439575974610640308802504688437408072328051291850788554544759047540978760847656026515256296754235184784062161741654435623896790114225143963053816388069634462341635991195408710221347507622875541847839207699446127168267708088610123860441360161884373944759694081534030755052331914468476953730650131543273198909249182764947293844858558712341268943824409543219647908636908050625343368346088451549846071095893040078459686941223856499344816314616128477328242350280451873361597133610413450771224570363093863658915862377713754981711870895662544257397180175269292363038969732991676940533279568094060423974990125480791310920034746367545654342529807520827978306828128061326390409902924193553504258321722875455249568130538757640124776973889370290979968163944317886420202327326270170275889497464476787795978397344562710468536853311188541047991178486267739595604589298087540001145510710048847850385272933022998152772045940629012026630096338646105602290679772481589813571139045256691845330568119788409143096473133349351747002058898930268663175984232635695731550460322728399893757277091147052553503317435316070165079862037501973010961888417139185664214170319614101925254808061444004038276113956729622534256959483679905983711328962279068055934807513447584693667899170919935448464744806769868478334261136614365334101249229457044256152455005114641642312800456692951116300180517778340422259029623481563327868594987467588376504106209349525429750751875122376268484264315571686970062180605247204209088633556835420858646295625868651996214609462986515458528256125675990234656620642038564719555388082392112051637115033773792457805568435280061580823830191494172998087087447533584916276179500980807778329063290083829499313246179133915184792228934875271139169489146849119072518155877613808445982547107195923901886524232327761008905806924782862011900988024315627046224765154453996372040082831071517423140088511716948483788095123073488437345033210937014415931250610947484169666280251387396975961220757431486503539625737062017238898264645925194240575354723293446809848130235312604704696654334591613388916798121034610535530337476665191816021897259774353966748710084503973517140111480090003792227972856801649803972714302488905258221217055035424520956369545625090467978919785715817681520967901124557752447578234487506976927679667728863168568385435118945518541277717255578806118847658371622279029364081556498444426725075148707125537529061849504277747928472468424374613568032299706854218517650137290546164702371477406072488405855976482150177023444782298221481846313824161454345104283904455397271400417005659932600730988000794320674205498121551924637230308319920642039293038719757198335768379386573383987449054324447747534169214367794489141295363783871495207550085680839496222513996531992505016815789315575888628069983823076729823565403373255251754632381275395653157699963202793836337244320045369207222260840075113664885691139141706044149288322137188792571891550645858750542409008072590621806441258256121836478841510616956083500220635863645023237705401627905707305937374678417916958026018136718547604961670984137746771889797300071123954890135030951596819187328744672717023382001647597246081951201281398821663296902821394359148993343514697093542128643611158782008723161505251449406111229047815154835317180070967310878612306883511800689425916158145555157275407458443025230040150729222374008486332429141402984886421273706561206528296556262848545803151702761713017627313581279554408713946309006123954922032248308558796575780625910950892362243187171984155842780914192101641910588575370186938116130951222921313191452649056023148596247476238811468980430749881805563287506550904392615058288447620074157065747879565747033052198213273687192150101975378710660492122843881807073354033703126540663825176176127251543450950163296348783180875484591012822365156926812901773425114307225478322702281756210407795648001595254698241970693749046620852090322770041641306156048854676494805509368406228536515612202052676106540494019487045598815133135868149851293247383317620918292480959900939486119829263547258707885501860357141133873847717853815076745111754488604870789941985157491039806821495815695957639964119316316876060661282271460877406687227578930176269764573973876395764964152424592203544538990836081379971672924254657205667603661258459066041541840606762564716164843274099070768036379976603971487667067953074357746825582405241013185246468282081056332616032660133055894813636804657966718423024955165056533841370800696109124808489571310836755218760324150778779046162215471455215624515420013783643977420543754228031267894602072393884249506117155450974301587160367552425195455841259911240122940938855564300807095502464152838155902241289552655573233765983805902480939415351985143300544438496872228726194283181377877480943534190262826287273516679590390920822789436791394261330910464693793644657656135600348990985697255788007858624077978787865342596951708520112666450259017367971084209351237315019083620105973608773307184580151290431889551865650177506190268378604241072078905427677926414384316432870715999533955251532454185339119693473327648462215705768726248444477541850789519674922215834137271339237554216851409317857807660824754993105287714318623945151628888998194029495285701962837187874094213166520748576175855543350581111580420724202947747025675276173146494122423658401367597797636265023332962240524669547214295265402338509936824476034183322275969204820103816598340175911815488025103273319088649581570543708720664856867223854328844403633099541536673607842634094403150648436442173172941706176878976615889724813068925320982421628010396286697148475451910429624667893149160597958737114526954305295320693774818460359959440771065159238440086565874542324755247477531337634051421371617034524580542334058374049335099875550737010531026307514945147107843502745886984449169772917983704505202041051241182331449279623808455561245548058796248021666419637298160281959964793846600555412171487554483942768509500228965365586741832055468391168232004921853947289266297505559384029755697037104949206145803185470656534923175545776337378370035022587494727820496356206681155300119702265783341478172442811018847248335830810257198915367997272755036145137417549594371227940193834059756300769875806861858870911940669189350449258393155866138679861729074647159003224002038117732048684096492112199928598960616091360223240859371822568146012019082554530169984210506338670134832983051163981608779195800213363848162672113920752003422757850598035480080563773657755120354171487664858552577308757579452208340521197099673657879569396131201311457792338873459638166214058764074579976893154230213327737144619422815611190178731393223781412537133900238096727561821490887598085426406298441778036240887553756255353952888194744729781108896584416402116538085216029853542964806013621970209217420079326446623401542448619150275693764317849527472205000756139456630234259089342536738244707074274820522435429477353146732764519233385980863242501572905283171224013496864248706420451450164843915645066857163142318438410013625767767177678246252729731868361635242298672630419824090507698393262159528861473367601158593862320910768270491716766313383659807649012143768707124508247167023605451293434422189234919598749850156494952091473302841672397330593554703429260605156623966698676238212517275263455112216971950965107952244509587987402181008152800915240456669786133945599168160526903348164633560134552655732802428997852577706404692352576915626132303999453755452586947806844185219566959349636974315951619965048366561475926443616817397246322061771946132445301943394394646733345277683135656610156027007151573260634079398795619644265913156568710456273145670008274568693081092557364487860840829427899029264279402741602580481609279116991497508117608215720077564528671428370062904924388546006273188932425104512223321067239031976636996258236341970839335598020015276728272230467986775968688683422367006570440764860057524062637565002271611532524781142551926556722177381050343470726273637527885453497616638963882522999140339989123523909007782081590401653553963846169032063813498057306866435577933357859520911192695958604939698620605981611506732715687160871742602224751244465207486518603012467873346640528338876114307944939750993618732466274420902551354282254798589739046703176668120548659516035565319953326131380304456655271942608840087451464387658019042077341871015813831689539422882814783718615311676631338971869560669347332665458498411878142273236008468911847403715398470668029182490730008513005475369895482427855950046506578463692874568818159803131318370767321096727019514949396469650722125709600005883527463196895770577072095590710524960136350015771138942619936020229356923930801975482228542223667675015943470968451750355198107187375933207499896972625404454501851104433962437712045900381742206817849513162350999945333877811610203415365324916838830711658455566371355731737968339446377762900512601314526466976955831100772383493713252418842224005001248584986321341365086080890968890457263220811574891238970173529567292928562371903071376660205507203341050880739984041602983625977302940772760116989367431895253946401132739731520869400025108732517302453953204817201898005977308167311231095481256039461287579269636392728149876117238885112096749812211411505978658282151014576996321332687516528524844578131827202786567227774122205378455397228021894572209101981841890310131703940408751807742991193947899211699194813581240138432712086926948677062186990912497783805934924830897970655585042633831926625185757467057115449552482581946356958216185564683366843253946101587203620349256457205716129105483385354641260700546599513480235339213405640556073455101729954213573071762908437989080163807655155889293034548892294570603334666378938135446073168782279737711917046981630086825979154530850622866808442976714238965274622134311115991139611836879647226375546065068219454105077866196976618967817704822008226526482005077543139627561215312347391973561308674440020031211281819235864706313329056935783115253904426517125535477699697714592345375372084188212715270260144769612047098578241443555375440853215679276030099179395688901491628258891077863435924134122839050610300151407586825269174758291477403126332684406751298672862722105051961168771207779465602357700881409049827269868056154243282835301334095357866910466374456490162062053546461923658081465312678940633059021723584425226385226258738813475828874473253831982890236433036537345345676898854095340706461434743096541148166158766972049003679692630623678179446869189497678229299759993044204844028164795699862603503652380467990353296603920877424826748047693988784080408544971380759805761831230929147791148872324608602601392037068535360508775481206032656686467734558346350566334496222610835233734010628784284285579229232892229772919655148583792976779482489914270454413307238245782336225943958738726692971635918435507378248953756760155091931844597834380813328392410243286587503575153525693166672626584015163699418179711915690651060421020152088203830276247459485065036682402954376155114348539129980756148175457844926991953905414271712902790915365210424716263304773179689519480285078058189017660854350143182335532925440428552476325579875987545243181777365844820775067916891650876387076047643140669422363627404302809919754394584898885712039054169559345754898996397799119833885813975388235280187575391322995284275930512085042952702926027856779672023651084463573920151085083475230000853169360492952673535251688632408555584582585280262828317975673384212418254735723579490720193177022084034656951154556144582016477732460260161119924614156161099798286565011873817971102566928752355729810760522478202495011823747903275664275012537975425314161268454250487269040561337557493828038273753172597451749737156247575801997433403054278352612489341411863178245008751184666639538077354209804546874892726019988651414808815980955375901131121614235562030030981496922196019769311165852319636962717746590433720352792256878260887176773884405859200044054009183148850171452015103522855125335878768737214842857309259852273980410076383317571685241340040251238603357286714333193449570127473116210100012747045606316321753243679847577504541821425080785759510126051427294335992024955004880337960506264528668946801299895574520465126407424727800172150654100315651398848024307625256251436563186831847567840668980588881481931745379005605105713607959632463999202142783654173855746132525748592897009493109380238169341036332111679180800540262039553432777088937854810325400514417276686841419861277013709052893868155666480160312816696147043389128827210076082257054892465655758481691405785993967626046301113417603712987076226230582901492979794766515694596210713722469121388694087007343625310042695217975573041496126151100553502932192760854859471431811328042804155415053167422545093225092946210834068202214487947621953748539236159509841035181551172444753818139555130091784371321945097078917276041057740720802263233879176640356793082628503849021874780454248530300153305529835372185078788726860394696438294343211223826742984225074199097836702107908301947061939212217307699609711052491564978097491727285348512978691634595654829929936753228370943076862023966481002356907865165581573557524638380923901242629231903649487990057349568207030831311191130623157636735880746754894233349548502155567320790188581243342947236008726825727007602893855146735610778066072969310748574138077828166192181432978088169682762617625629451553064304849640263896937085811826823876289205006973006938800972367545027250901635511648153251463162800354414841407824010208033972155265652481547263113257371413417298349234830149377548426587058473439729181486538274220186155246245076999921320816146038022135639949444569759334313358258554626363821587888058206912879272625708710738046060734187210349662357150198918316700115894893164657159709414111503850972136827078687306236507098449273441416996965314508048041932942270551277633062535230283067450128130995264825668920622598262956843348188664446611727924719219342602317302189160256835780786671143197673238105086419208269181771931110997452806046020923300652989493411585957930207613467747154026555512602521298984405266576914314274669671986334624755360851047879155392581281944177523270855743699202564889975495427884185323314940348168811962757105168788388258001351147334059071552169406893083896031522682478401076789115643781179133610356317614472438082099347910034716601632352333904984265680638722111992270417749282884982845596329749864681063214474702752420637379033602218663969468739860202121135456091337104158208274726972434495792292436922301047289353613699851345621403852729824123171467534072080470423940422176423548439732135940333727923246603992226108955383758638276844533552669818215896185860102654959843293599096438395359050994045450522764260347579201257993265609638743470254456376424286739440835239954756660607651846116311521223671934359347174159602202942279916787428845128454535150473093145361706615599229571056607003172374177184062722556345930368278652098181367871566087406089951007268957657321194307343666388361869696735663957041320489211039258537389558924447315589846304872616742062124277145968302144948159839728781076697940507221170199202996446637404590239310503356763707672611627670784604800332959924307818356048049503394327497769011688620436779643233386453234932218860521442013035493500451647397591115434218931962176269618885739076886290066063897880348829107913482287902068190218909869651470291985630732150825599424354416153073961037713067316607917656681312289134826085254105435759196976510081936501851736330054711789487769792035780666833128587663101630885647036367616712857862465202500293258531602577506356409586622361705510150450995835507545716430614187089780971770304777386418036620428361399419993280242851103336801259147210627490251151436134051581696302848383396908169475326054493064997266948597123790615119449377186815903619181634395461316908753911835104598633299903308039520140428937468094953950663032044145193585396923802749646157460133675306878394294504993457354226106445843434740505952676012175659566684719283421860982644407408763405678441900581646462886464722928572662963923872577356952010260762646680653660651939295239077282375318124074129876815488504354607978919313253927381535462642490123365671765255214696842525429503049790886791053599764354686294758653420805813257582249476169138428062143291765028642610615978116637168786931164119962643365263495841386970869615305234513067495844890463818715725191072334666315096145936927322291940585575929706991531143398561801728107400927063751439342715401816574514803252659646628526617463718142145990638509748023671162546709590945861370216459614223135130656886059464304574574829219385790688105144905604596036882696796792988492296663952271097179865985655439551597234562285954489717676618473399800049269617422241614034202445648722310278508211744608187532130873377039549733905616122918435990580078967056481097857558382312516983381670494669754064795122341201637528773890191562162355377170295855282570458850725502415798043880156484904273380532726579011822570654272279985637572523177869092380835660988214232086948546161810012716165190798357191532719302604876646640954118615446875779992270824196152080420430279106290052053384938314958921673910708699818502015136503229580712133566170769808758564131036419783383846108161514062830382182913564418965015537551207838515954948910493064156567015357442956258815299127576482230560007796504156683442232086355482488868175206881733886769874421156795487754290393125789429718830274917230680879297415894857905763502756641024622069602464721050879993232786034108133446592436104638191553730904893810473579072240772898594908072204461809313388504066502114900478107820010034015568681696974920137491491823369004004474017685410313781686915585919695746433058510989637654638427857321341766020816690176791998091805654053531281921354200080303013261811289326849538186909256404001569205839593244836756028859598849379945332096638098400004163684361502514892892059237538543281637051574210765740753261707990831539366209330989863016085926355350835399799706042296144293557095640366814771528746506830784265383137530415846811134817126160006586944579469277591210199470016023095081073831119782117322904997579377720246089492829942877706532002167531681442622444996949708324322365281364114982860237463126380804854247001414670180664727193089501973401767443063613036022973090568863778115125130951820877083713277759101575190344344669301308191523757456847491850425901972197092997433907626952230786258470248064582960261497163373339822277175638772800057815045188893392080227759156298657926400466462570566612183509639392525734122656386869289247062697783870303219616944386664484883852807534987086549534863825464330321004480649294888535256486869323197316394909543957771876515034540084866938248729903177737589552467034380038257854582485660308026403896714866339213700870746160117155510113033348261261325350718589546244151646562748706692883091724296696413839197875157360538146671071418963650214302398994695458880777220303706895742093371334385951626119031652706391126603800804351357459212468388532507274367629400979452609288076200513294206388504499022304590049091175922095471030336859700210259176074390194050618967524690843947606530281156391819622013648351421211027021983225902671481908569835534132984164273570555445143016349134104117622663350638213051526253868626707315760168060424865061780583613864037407811750655475524324381934049181862361041918340970734493062970772543341583568051802453520266344753673460943067196237667865488596966527771326975235871293153615209881894239137235165517795182708445269978696678369882949893663475253597186410816626477350253418029098226727783723113355572153433587671114853469527446515614748342600280228604720663531584014290814174322904643678838976947682682261723964563992746155914061317238367295597622583344700364925936270316817632667494556562825032000287017566245083187048137949868601255266737046159983116402458706961371775294181880299802535751243342112998072805778968094487672572622463487180803589319799556056801764439351037703260118781536198846810222404817989282512813046973350552863334105272216474000203646759941122296518790461268177309015622540620086079474377066746956282104149025828416259920486919505105025644607689928548890935978857635607644024054264823232480168442714821773984758831769776152345354046321682918783299786048426622822566040740900643551274071666707729047675270699264124419660294498997867974013972768213931152572674089105487242947961569845902464948175632697490974750231696774169569283606198930208428609249244252236900288572811259358306701654841706741026187615277479219931701475332609053363154368501741281818502380710717732057698847169314562305866887821569031052044012063987375095111166372687215526465168125812734248692384240129792774971982911829834515414141972783807449480095503524628058099430637584747471234309755832191077497477582101924113937182028019859099328910488197497513886200999996318892317274132550842542726396907742197664908936829779687475311614740664922958496371145892818875044746354163246703591795162862223318852305655881264160566207188097013384417550968769006028313783211923663078977897016944364669114535356945528795797830618893957604772886289167683684719001621709408052419500053370712523884794341927439623309476403607377057601345732538395177498317334224979629613760526223963817079979742248031106440774003599938431241550782851871248338410526077285064572032150281655986717935481999656884346996560759397064436733366180990279738098368143017299546407813137631428386687055510463533312367693086901922630027642623886167739183563565273799302531088561771227021799388464596144081005457098918192109603517469950376992887741413129006990718048638568968290386829041929363945964932949163144478610244714851866516760698349660898722359138866716028458411647199037337352811018156231981252838241714625091521526793528831787282331633769014080139881416067078648603417134361595239684283907869167807993686852073182221705929296455092341964614181674287397490839207839564424558507933985758989698024273695219259585236616299232037357163952816196399007991189157889756546694573392580733406739559382131471007509400331149732664160947206165665050622179429114876398383587320685536804706860806502756197645252931817249249574112713896347182227716777503661724284824795997573017139024425668671541381304121788985139342339257669019053871983254784015316519525219448784272380850835298847556596778059074935508453879228938047576283438531153128903453887746606467974992906001118362480967870883096960162016796070997550585174398803811320588153946154664256830367543482305697517343666789883402006430033862737295303318941815972102250410850578555366960429397620399517247050273520406905645361976678305311993644699187668300090652128155661521386274019592998959106326879106089438639192078196979618502282858935966299406144094153006692441255891997413106473173144072790014399577169819103628288954322160025171704331213141790218035309361055536764174281699347706038123927387832910733911512163827640318685825434688384671953358233331174554294965663999547391922368913711515501678984869649940611573980340227484544626741641143733512563313469326252421452289113979262596667178903197956473385086964794505273518298862909133091953318835081666324942627933389604300768308127521326463635329616151594535383681117725110310473262942237281130605497675091873827165136371472715811811838891089501770912347880183631397969424837666541042647188785452501799512593412447172011830974642924255656647474814552672046323678800904992617982881194648137344730734922017007731017216437894764283272621801887686263433941107585303789025583595481529366386411832055579645240893323959641663144570340194837441563063390148338923711514823065639144951906868637125312391839729936130154436260435759060457108783842914941062314174052137221497849719082082257668763602883128031331470621703152551858230761411998443381941296890259689530937735552386509495014095567108005692171845849961933648906675290366378282281979438047417562913282157589892709258094096391640350944828997715627016835305663449553611786133809947079294197556146401089121257557330341064919050129084153592674414791645207912140847707473651987254716745330841621960413084230292396953360777153739625442718801094565818887263843811735457709976104706022368051156220491024617201588544434662197502991988175355482211567088655536446686357973197590956809879594963020063483579654881411601177796256046695278071501521647511797163503160039396536815665786383446550415567664905723208329061946330443843964582070472371238090419332492515522489075703151947116135038408156895505999431915816110291660440471612111170530081972043760684840949968008532869682051698201056166582126864613254465228847880156577803692867457606331252596519336520008988669840483375673548039516716400002295974186311764292189786454979710021677149037730360552071626591960235812282001331865457981372163036859958507511936057794766621216833118743159713795923374684828860784377872322364102653110976589269883855848253939228995227685774135480441293066489726094904090979018197089479129854688701852092156136086782205523648939339122344299122592193574468145221728447445479394934267060960085588389398447938090705133281139290488913363782086629322983087240775351174747888194197895566214820119424194778067940018887436309517410819642494567943657312994707592755192609149846172290916242266704961344859392321038425477590615794901200560497776674952087793940406368551184926217203531721463506162688010831747961053521087641442453832970947000585459001335328965643775872913550974182073563531072609846604858040045520938005914184185829694945081518569986810224186421917760247046488610914046638874369609145995399580161640452682903669430651877070635567101226941040581941210046258221274008168779671084487994242212163571672998436215582201032593706545250597413710706663456134415571608073897895150876716808017559666341822331371696186234039926757043836694043731169907539204142109566563123703807463398955476949742329454446083348794791186585771855872035200801326522905264707292418893069794593068995546422276198791358723522689897526971081307014589202220647980814527421801018580061212342466962119042905459329056984697609489462369685424776736401218678345579037567583859843919643534601764149159463613639200858633116143144489008819021184858056086332160723401225531245220034604217222146967206318132601113290086825827036264565348519680816324518470075572461478999847155240228969156805617573193585418342166424741153590555547130645463572399342092993388675527842708179721074486384619422644400438691654633795336023584207251638555145697164630423586478895294272211152105424743308927526517669670732978563352319316358151134030838462068728124469593772043723201283951396965941427943403853679290659097860605405654398017349982198548322328483507478741470543214285716609045012916586885732980048440341835958601597226988213080376368223943040334852320976405026469873602233904331538744456382962707615950389450708379534747230187134105608267832717422866637489845878299403270654549435011012556165721647088471642347004391613658450743335887760082582160648915979991288969260592865900569154772946649330748439661404231778555183718157475492716532761611234742973698775575149713749769601831390367198198137218118712298995074929873264270144340843014533725189529393911966717145226992516324554935520871891418941276184029894345187735459625220901755901141184286814876916721736393570624889691412400716633541593364711148391474989906759846501445302130636204373241178237249821750567086541265003097819095310838007829689838380099979207211140340591401786849501870994298026088363763068176828296859349743449444653186654464365168172117138900025994736814940562128816878825636155676636633478610435526551827241261903553528595155759849786348743908105931597780308747318579740904703769985081008510873266601820765662753493011079422495930449630443042362442464084209413936211244877866912403557449852133623370098923537703010098920623461551243565806063000350751017850430934560601763357750287786798969697409718250355788812134958771925068260513846352856863770049570774719001832608409933854107089323571516518949521797940871044045203394828482259289267266474543718549869073136951678302840185591323225325210293895723787809947134231580677865662138188021715526610723464107907705115517861056091068359438033367643218082391920190929807643519195911954572855863216219776369871049814077932822652981955822731727172256873901560069754386200595282735479323231192652905233628360498872013583216553263127377256498466745944618910215727195020419519456647161423680451313170015956110345735562283375692817596994213325452734781587062732895721877127626830203011301007610627191693365622718353383276435591452697254397264820579987977103578936825273592847372094297973521425515951614761370848242802919828843409879386461952506329907560236145011929379464349219165092554634326606480069233133083024988126209816059290475765518839206375119429999684988268606447517637753913761547387373538976105950675590630385704753193014664538488844395789918999217642153496314894856636411976754947224338743426790794280532710129376345116262664954857255566903274240155810860565993919047468270696518190090935885522415868718351464176581816724744831468454275665570065601413373733937555073432867209041034486130884031407716841209766419268222590586857533526764552053983659925373137892471971908446347398780111234049783805413096505693285143752163617349951074009685435053359440791638197769095415500251483719497904560866541321969789529715804958421436260476266506973562458520482036396727220645451900546095134908666649974611591242375009861757625782001158378652284368727224311495485915305449556777132506591686437448112428607512747336480777586916206878609392939080691560072707182098270355365781030577064391485379055526204327514703098369535891233819448014890070729637732078640573893467219108113110639588574952726019662538704810723934362843363819300887998515801699295386139654735736616365972461049347375938927939279197133263726973437766628471519928185464676278798797726343805159483687412601796590412294115499013127247216955026560283633173155447521261476273502398043952992306324480567001206230482985365649236225414341397872059439546804943421519513947518895288610062534644967607960966100555816891674944226729679653765921915837147895610152808685462866365234335992418946586747953093955368348990458441518958099923324195169532440868806724651773652635140781035407348993983403207767561390688699042826133231137538115542781900052317404965779444459391432308469548906403457764544199029845151222786646097761525073041638110687874971707608800025898708790207052419136800204875067088531982759464631665616654105565948402906392481135138830798032692452504219399562915856327216243538282224320028556183598198443502876674289237715031777274889582555765292306469769455348484554472109648287301220820322001897865865550481076466872188044586659931613744045672794042769217873868946461031632656414725816158572370597666039598333071052362196541609633987883982650683455303509732039679012491186557005467949488730351890789060302212542670420725830904441381470238198807273324186244185198094496758424736367470305152964981266245877748505568462274399706057591859158708383990897734016542402442184359610428031372262354611867358173887361440859690575569519358766594671219453882766890407333532140469378677997091022582923107146495373556698387248428001690663223182243264050956444222179558605869447146392128840430112158405797901426932636176507020396377756911683454758967257197809075036672951450133028207370291357870305959421512876441980534524596857832322158651888457208267389582162781749254169348542716962261236037181962868756162159767181813057566818056056780130412193036065654275185794029114425870335150156973746840750140810291968360769706300418965193145939047166572858605666512258922691320323832761666122253716461782572134474772431530170101865938081374890108114222282277915969338805429582579336139648320108830019942735426074519656308263448444711251919943994619312253432581030420497601837160860656832003251235330452969261193509781341770109381911584824276294981441473079055553605159445506878804297596843683498760055294276413809530725606597672959633623126513036752581089549355039180905819320058248559614132466583144489172592426627496412033205224150021214627137228246526757765037194708424317735198021372514951001577145069498817837033788449597506176490384240347835301066281563589512680391281367107573178503995202574079093915546300486153557173512647024196613308059209195729108150204620060237951222221741046750746005546199429173959622881355458326855999031390986764719514044264358799491472617079400403832979953364862267731145156833131186883014837888023886864910044418799464396989159038823053012119585226828347644784016743892711131103578589201019723896652613732023091899938520418808512950226922252660837102098345503127269082253136226250569081063838710632660630622467655467388109923837620292613461444717813825730825792395613419021265648398829836643462832566972465925599901768906580224485895562559088070888507590053667067237177764843062981061838923371777748028695521720841540618307729770490905403499102658492305290970812371131353311748224144775483228453753616478394764104525922963997654629702484515078961970518047005891512903442094690430859853742093804402819326504831171407732017415398703845885605424291937987686239777550637498736849372842241681133091270384579964818916621213808735013336969878595768596536773928604965894252937915050572432832258694718302072447898014058036324580102730727542611533357777292629125870468828019644719891621323611584002580993680103897058545230807418853646415569573300003072361275925718708360373182086504505899801379140565263102879724296112133273821249583968668800294824206515373529377112135907021115814046196493921783798493439295672073833244500401646075371202998708075217454859397146725595666539349322186796357493502320710514611786969162984954333772537452259816279141892104805508319400636207932950824199394836070323049047397983395921747405492999205639530995825812153594784334999383040675499589853108564562981717322533508114399579463638252598599406109047194552270451380985876924473747197064930464303457492184704818628920415390821582863126669229172662796568530831834100720737315273979196601043591327044678154795658721105193524307090796921191076387261626700224985887974797648327608879919478699436816040995533711049967501043882285518645131108164932108457733309924085700501519241938690982445836094118834414306600565904252115263503542206693125070671961298957810526487194493291183007280471987209105370346345153071824291898048138434192771057214553250319105600886400846370459877564774122539519332857789862533746437072361576796532800665186313951873968130551280821340530706668564658360127114331929902116629029181990659363638370021031550280837129588926948337786193960117451989376936904927618992379873068085028942797409027525571871730129691707701681131160120809781501115748596269763213695460940040016171058650710635260519191160205200691154789398097702055696492529752086731857830374520431206841782138266062657422844309023075588426418040607434406595243514776264981692279752413038137079129657511864570038679247601045166776570317423814555248860729664482567645482408803101696264015061543949961307291165839341493434695745360878600374112170326955222957375876597553864418587521014805920051843665226389321420672079055616254537154142120336545009250603437171059743290422142165160415685609001561494991477127167932944549162709254677226609683373927036413417342888786809237760966468917598151562978834920061919971590706989120426929547591033424883027504672772889431393466363783532398824597851357016542289670489991109851873723921690576560787288316485966181937886886707115755035291793367841546261243745452152019838872800371875118030689807449521174955936418320318060915618161123629620435417405920348521798085922325317999999359404817018046538186107037691287523191205592477189133030262440324907416972975588889559520977532381663282485329382344596080112819398025955385520533058658662551479984061342484477707100790854131436198995786043100585678982761786890100456540804290524965538523862457536682292377010065551908856661921173088910100072195473183524467832378064807490968889851855210617922358017682535813356095750656721381897013589918530353621878504701499005833186884282623784704968602331319510664490899865770688154516516859051280960687255838891177520966761797522128755413458149341123243170925294500496185261841925862912140383717947673038781369503754922589341283783860946932509488026258634091615896122761738820609682296535061509390838344734314302762380773497961187543004878943598061353324448447468230996142089008325542696682775590602023064836219944993698332944109463150213679136946799846447046355383979313762923282320073752468460881942323782011103993930052570787182649366487849569329706255347631893925698901434352122008225885802125900093377594748623833061704061035226680319909704393476472901027811277179450061707661196130295936210698594547865033392553048912996912837307579803070121633807992148295545215096426805691346530295676655226648126259316419619761265789599501554009848872082324541651929805182773461672124026944573923976607726584266690626919425095443705317733660538467333803953783835824656542099558059170122391191623559142790024655784772466957834262611833913722674313200922678435217217481795547452315559223830718930119890096005908852662246631531811699207108626773625525779810170645223772244029533603370996039509303357007960524250434885922151767955243037071408386803313489110782681931768443450066359606892352483861040557007816877923129830323084745607553409932171173582844486856573768458501406569849827165728798655669154337050870730492845844633767874757361377027867451488864041218049745628772267552899736758061877366529076739102279676554415591818416951868817820204350076548234357106780330583444963096652374951423534870934705619846666636799673019638455575295534325238375545345861044117819054582141317791710677307611119559159998380704804464085159006598048628180402017775375220206805148775043649712757584989906543597559528620389315636799036192363780731963464043308460490924375880245401969636363516188994613807453130313242357481203830369462737860523801707853523358607543861005408408520571872922693247429121847947790061644346151239784065614488903205914002646652688690373988824357499320210646319150115914885288656372912981371644423935984868070835221516141185409551985340442855959034845460144517476394416415077009071582761050549494156815772028005314356357411057685128158112614329364299991430979361076620060667228639961247576112919915735585026455008596047560015741598932196318300715906159091442217260778656527549050368265517619972965249033588405048579468991443490662905918573644138801627615831970514600933526265272432636218427397334385545707956655077176257280567386713053613595931750025133685381179607233721057317197831076014958419933218422985058611062079089908663730679366448224464114064316785257149872869168197850169759700222012140925605042789634528506552381460270258503293495611562451276645679033416058630439501559840838799817317470482930177201407637266953097945339646908878172946886305313019926714576747012994887342736580311511777916756225245117358002564080242600043381400384628353009401279772549060515894195116085768176083022401536812659068335703539469034852829891850668440783624032008457762455689139371589201262725898715541919972197790865782996487362099875109765417491057497962964733060869587645809666755599679004539621117159934019663409659784910089021196801040586907818641368380655678870626442172172595416984133667430799378394644402658331651559928549934586561483586451152019256391585553914590319848816804889949960762378882979879293939823816889967946178685955913460257817222404688911342913756799090187055093322936007707588061920054283384111019425444426440479337825571063632247253955186429053714783265095041696549752096553721773474396165397151837791107651935705847697629845282204082106560063454352455807987000955380699631244918970461402240821654725018796369501776490995117945621391272867116195698434299463970221688334510530922471477722046763366663676502018326093341337071954553440269855138091215368986577687396645173358454143202101016300812385643766948304631284344071721215824650054507135007399988774768391595127924867708125013250854413715074232517591741883649344720599236450124471533561447916611946834049632906405437406658455492455407779228539890060731167150088896069643647256790507946311829742802559495793824266891185857708042960437342466078823679812929872340595955832784668770520545910621426018513655571301107861128038774827193110279974981331138837357004637987533706950217892227276020640347741967128895328478628629615044943750519149383571832810365917072815220974352043812256793662429669155242989400868260915497451743872889820238925734578416724048122309495636659645420494085984860516695704035143604903569654319505248353901844445362690888237629705496522629824043272822287979271217996404385175910525083803389896409642331051298222983707364446121259178148964892665492890936574815071872123008440785163406325679373310568726385045926260629860819403482224312033850774369034440490654974846808785630406484944065211512397346784482726438364813659209450888542781477353353573250938434058053192663234127313717354696452299227691411906754613128012276068619693924305438828069063391638770530499746374220592229606683431968357936978247685961965891100996785289904451155980886518107696676731126980563840577255019350848847521635825088017742276010606296573804099171807406504865827968887770377389701713520081007174990430880356761677509360012024966503391052858256442938596695770248803835024151848970281517181240807183436358365570791070857908977846084763566328831973323418782820308098600948636609555400776986708820926193191688943572235680333118265143333785739759573963882105117292910208387971038686873192888175954968669164616028420128954650017774777585950412114955357683353456902157793569427313852574537823647768013237687906095774826307693551286698998163371557230142871360134321327295243065677146996272559696385471962161950668921493413590556699686141640966996192556802873394458159538020084667565913292244569294162854270861171221306231445438319307642557576958328175303954861576838438786117933587543606690585974898293203144856061823599474698245592379271777278949289398281499576266008155165989877390997057259978314119613408614572136631259440216172941466897517283901667026581365081049546900425514391123851936217429004395020726438322101593177933923077439752380195037889639375235312529868312225810505741017202739603813925179526399343173729565815885327686318832710793663323781533642422471905353517571456335510971338951390606308909162550264221300844717072182349761957975935531177083055989472995518606385343127344265509944196071062512292694141490170945052767106416499077736463253738122383450484149945482367713168341465581667137285018802305099415498258285130194911843694972793506129054968539188844127183845810117306441396365044271076429447378623266112422148371130701817892938488652804319154157772270668638031789885121313970819192185587071776150135391853687067219723482920013810717826642216029690435396496791847464949899173242631952919757101322592070765045488143571881811332641114869918603132188416071863328254470652566711173758860711653425025641530897811063278854468862836322505366980987948610233251073449882214606143090834221803529231541169999323194135932028136598612121237316577759397384793734275014875396136939086550675806171180605668964142317629220985409590609574897177627038333419976798728107041769053477805982027659514448950666542552918922894229258611085732533028546834145366981471927954524180787949081382523041333141001036037704244696929096675316641599436376578600291697577967414632331268806292672140038883807567701485509164834558677916228754796683732596659400594017219437331438433758182166767068775884239667186952769285785670080559379303686689450656265517619528189006965143627411543508636200685876675599513384901363637035331841712262295268492393869037992123372555002474418211361927010058848499450852017146971656817291053758684243520445893377640138123415411981537221934077028186769862700529743680121599302651553928188588616033627592259840403306852965585114097381995915331636889263407274668242549147178126790858590548527787582066033150816488845382333490715192398911271493123881033697895898685067650089124365253041481843928884160248944179005399855199989587000110887480895485706681386604608095760035279320740299895963577249480142098450467518763963148096862643525361845456608681634260987973679354209528520349274178896021782904706016325518833282306807132885903771828314345763743416013745458336198405321979155123028054791783475474979407644743280725787903501361452547407891718391945271008258620643191822806765937884334863748121619964480535903942600792169833117352067011723624614277750823481501778542226265294126388642051775748856328698144220831930402776901030113865845464531745664535487976742051653585258211933999535192807682685626674108286795996918398127352878548022234868183825939630132667504788642375389290791609448123471493081263920741285364897593310429752507877926636958014383204530576494279682090245470582482874427671577789708334779606317514985963133258587210004527986348291168777939440716308068864555182218697038039192752641144537030806791557435794480129627841340582929227267620512750891968441586642237299729536708711580182022444199552397978284618881507824968759476109393337158615711951925510372454024304807719192892948557435214253745111048889820949594829196770765678346720035031170259436137280599978521358902979607296824136400128647702818831446209138977236753075408684471481118726634315331012343078772887763515085798755241528515996011152990066143851274593455570563907461022105826875900212514952274007926857121574676570355017703339448833498911295236727124155939809921554856634760250763554341139657424058322905413763592608042422058273844496923721156282287292009257855988491286473078137900468310143439174884334461179562498848498775964038990165556720495969099588253761389444521025805364473120380447992795413618763966172221664257177890665399083832894530439781279028506717535127404155998690451111472076218684354897677612631304990112003573210137275370754543611838968061967330890769218471232735262678765253903761512218567262534074898559006203584606637178315873445652524940123533379389173079902155800332779820003025263589783173646256420328134487487209400195388003223617413670267332428161147732882591957909638133049539926523750659498042074791550193506788253860637806259548298140099751799265635303455611906322530662920408232041629749841276424304701946570124462198292471126018507271707315366404479911150428773613418350312578373222537691838920400985407522808514715555611094267733542199661248273656289323955135147802452297682676056455137058472882377726246663665731955298948606508020482925307882602726503530552336919557479999185067174519928768923560736502883998195700508315598020119699488630222766627199317001297623329322795791900856911797740751006722514520996377125708342734752517720083342653793416916067729510365662631744024441130261197139255384147311308281804970544136495508119084281312495733279870158529668403270861945017405750317601356723826191238471446263531952551283953159142930630516910179303472461579088361681361395514541053332988810462797937547517148234795127111180831408524371095932654999222410394059981196224362809042872856522248521329955819092165324924827765030075601696692313439788112716676689752349124673961049991533698290794754251373252795997824646481763752040329529479214705424047508159362685647516778438361392444381782340682234106931656961474380211346093043136957080863911180663160796595549739858904022999410664593840930671063518522907694230830494131473961598916160119656673949099841014033263665819319831536589706471117690643833324165226685182809303153500443415178557637313618075947207988972568986239678724849536313491090238357687068889714015019072165515236940201446342136782134636058561296917442430709107080336444751158205165987063045978557980713058239952546833235456989417359292075424741175752722436239507767944686713401698032699069871433410457921823177844090490893471013311595792689065007835666536324797786959552497923094582660699698747212783041642002823235244434983509154682933458369614220063575503630394883951748546931855070562149348574351463833205669480165273418168910499504190688725869912265403836501193565250660370324834038265555946438952294687164162751921352085129896174727963696003169013772595217473624678475809643796877760162779306590831323745111715248110172807631592040809211805225834280012265831279637481380614966788532783687141977409097035467123306764674286909160727717799174930984493582489242470548247342577447313402283967964248490623565958948487590694444747026950053277309582551434977980287279610052591996832645164044194450287676664901466453912559143023776784181911053695502599011265998991675189316673565465624749273374135904731392914118138092895356678729965624678722589181216854570842571853963323970781994597946991448769442330752407368246244387270570266128471815455944223946587702964486527696943744580388066363785579311449341524361497317539297641261053126274075893923271059595810411082261947553576778035070390029355230530432058071388734421797333930934287307909430143281326193476618755962189690472608024023920707974163278049636337427089122223363733492817221314943286089490276733827785706408203356926344640156759733873429488872755886046861073533615588530904503831338899347132117691787449515988670466644211450043816841111961454736528632014889868925272375218297198204316578031347998562242180265907188268584550515691257469883314761504953927470184327373868583142241892599754690431113928805295838183493182897542845437908339986203936738737733630774542642549868703636622476608577373368484441744973614014616218115465841436592328638599415570165582113093268820168436975357434637278371375804651662161608829019893603272394109515667501124352435351892840128890559791106545376596707127632178141347258096041388625852040336228044518796406868896302894129697483656277843431493054945937593601425623492518612004637816071963043940896115731070726057621715272038123187759061023017616864589594752349113028798314553557617656776175429419576469566175184634851159586926298869946580379260615631194454888127961267583858386049683326322797906881302896103497116449610179794531980154289222492357166271204893465534830225065684894923606085157032943639342218864610187228836758471626977699207312786798208818699318279468241555951597480809872039457654976682350229519392173229440132622171285737097216780352686674260434100921690205670446893612604759792143485714745392609268138277089414108537559340870953712745340510203566975129293012510677793221890842619794180489561885012772396911059916299094671965783106709116669765654284943271162769084603201825508629075769596182645213956741792086065528969528489167678691355770219029902104470415636311634990520655886681735135223741175624986940171482365656461091180775453428696187886857583575022544637386640111043076100110724940528711964728749631948644343396497172177301200759305936681413241692454577357741200066748706641790826005593604541988259802850732695685365198252316226123919706763689090677160651543018095619610098994765741152336098899263760736687041084024592737666908855023516380816463999793759448642153296399425767983506384349255117093212284027130405939648160447583483360361215803274863202103106635640389262282092342763710139665330016701715581798108009783340276063873090527407924638465764465503927301336314750455280874088776686307107822128324920891264602570156681576135555268203236941177708922894442554302979779554783045069097221139519873968170858018927095592811527299345555031714487641261378130877183759537691728608652112073023390948730944299915972988382679419416432394756166932673964790068968883986705993048543357866143477561878864632465679769877614790614370383411900144367068875414891073169718549621562446837922823345222041684937559719131774558256561916257414938411921452810758423206353162971133341792155124082711587243697242851004990381749965596687198270937255960415044271766196591065390331440324315197590836207138602489267717945679648627392625914808428974570784273055518905497996258517235150022462027276883735817329551340601511777144240338220585006361086624368030194943969820542053749129920193647495269932440717450695150529600879853425042479688811406068086053841996153945958577667537161908554952547638962265388805805932213556807940628201246929625581883913896020050397963254888967822049233365738157519962969369694790205699315116990188017773553160638125108990714068366971168235680351197586384544845958035995898229978152848979564712182828397600192898627057297264222535820753672484785415835686185117801503824163403441764912837200061863732305931118884446425872798871295497474199762066495992538475912054361533525336405776407538225077808634861690033113201820058226178315450973098675198286504307583159412439846396418737680587408269913118786303164772066415802967200081452750601453700393307193853987792175791404963595947440926896798386207066555576240094310373482478204454018774777577627760013879455707439702153360726136794459138983532665450803489482058162874137224433100668829056106599811975676430892572208881867288088823781932448585071211002305824940372045155395399766708911556075818697030919974787706991320174064750122182060010684328987225380769484454253138373716797981319549878174626159374957682970555044686896478561624387760453880818593836683664045979931442450536589476595283854831484588554312395023549053083181952053169019469740703628040767097110647751791108885521603474613321515015608093288039707361064690412905440094423965288662962630458226619157463383402594093882191067472124804911711638427053150677546830824070454702373926295848220023784507164901080713093449739872766588682126343213638485294801786265208955970269159920448097409991088789146109080273943535316777243191020130437738659259676803409591717476129715156092787791724057017805025294433746957262703820108144268648749789577133499753067884111738785826710080052185882831924442242520158504386161151525825025335630871007780113915508198861994499048155813050050968283600892196219458747713150485852027692682923610909439144434313099305483469441163692827108734648797549360070522046909986561972229519065945688893372665686449967654933467739990732920725846440172855322184498942777905228986410000972336454513268656957577037258687728297217816247724851143157484318985275517233448202196159542727451995401926436316300502708019185738244118703503542636738241978938743762778537439831019833461874063845671978757852493296692328803792825405442172692632925163327391741094766662477951688301249136697633597338352136732620211916118956795164227865300843806729862086689793911247712849396987861293397527193601293088832370997406627053093346738018226577385908186098041413727516569149643763891547455688380325166700857107105347807463291591585169862676353986682084332891518445034503741454325424005960765954455381635668156367733813239917890457247232530469240583672481715681307118751053771845730855103790703110573474838795697716194759558683877668688563005430058350950771329955798487002390602636931325356667979199978377013063151895645296455996661467807600986711412959449740738844496793490136638534388872598451550192395237046522751573919464196716983057053155005693022702650844749435980997764612171858761556021778317439906678146221437289126671688075205061661076785656662239858054647320835666835817488015827857825286236092266300240701138515910941660254023283633880035988735796948666701671581701482152015748427895290266259082875065983274062424168647391855124477621105652721653258093992415357932306927179299707738512045361616740536622091524795617413947797697567208606817207743146820455096552500928051628268175222931675695013039315951756911205678477557848037635141382800406029574970608393242202266094493502299790798024739929675379361379897871514113755828298319075210980533618740587958317047193396536955252526958633210267038931285713874976448802844050300288284998446272253747358746616021375323526303811022093625878436021597819352116885853635972529794042711240808106165726337748568541583345075300113861917914029242085122605342682044137312549332168422728661412109449012620972451124771828524124664462418196369399966631984376274437410496183104117454862302695242170570649637489367007597689929719455282320080055728844602182878291719824785784145091436382709712823267122168418110336756355909881468096167497289671133222194046837627949139807982917804145766417204743791075040667544474509324962521830330003545451074113352093970191566926945801942176471536266196534832140194804040559029595755164288931716054983830657551310531837320873765072157841106006534079255462703912100166591237972779004922357649272105961411936293424049908913410551739453897961496358949833025303354581097749106438413525312461656703504994827002935542757075369459634723374334777701384532432849838330771065477699815952678572250094333986499101048196334934081703503854998027337911416052465900270959452165067571933094736136797476594144132991585712543913829554689516071828455520782169967117117174442662362219919961335226537546904503030749161311231918028696850442585216656580364919335732027042478926503432520738650058402407753852558548625235840268545672373751795293783064470884976796454107621255812728079091809752861240221766125439029668550749566341675641201434845910225223480142900908216061021820767115208796134534784758498427652871857331578630885632717199505094763583633929654912544974093159723610287736598934588948589078312774234111812060100126008259134735814911993133221926791419172724344416050621798824571151756842946869867332928500613434679084495272332093133197306462228851168885426349663916418850761405766722212782953533953380066212535565926946444434740212444709649934889394449657258143724525758517517654434107101418356345618274639779936069737610810282107312922453582214799614737757250714476042597665558906329466082719608931668581921003280772715588185839539121875457300832687106974207922425539183714736846589594900548536986938702241908662288980314872100054388673329627653834313613549958064798373979569971133054339300505390174579822490784630241149620090109530789284162750541603261275214401628184042933280628791602649354152562926286647985676182267656729571540873408569020221464729565460272973319166075602686330723938526436198076413352655479807029200883165052145196877310301807472166119030466818922907008391846447916368532321168217661062807833274437778212834361005508896826118975207626340949027099622751731517015284817560530751045361521132179430279080959126292723316265129270128603995398186826520860706236094915853277616946646560856691107377068599093840890291868170179486945453461486202312147937006796359195416212417575970956108790561122099139023037232183718046929132800127216136026743656960155087707606183362548186880924508696348817003512770991419427081155346943109876571581089610210752244001095592788111902166517916386295354983675231724961692201904235798664624704963804766770551493536761124085705326161985513017563809733912109450573176837429591624390746133851301411928624243382203184693460177653794544723076572459199981938636241712440522381602640101563519471183777889981329870480209333696706173030334408699645688668871813713746933606961271098568463051268589615026682830651679838272107952928784238198987083794677617351324328170955683905046094991499297265479168727075942286592884432677930849090261118890606585846564041174329229473543397596237093666644473235333547772737030121335735095221328678528844504510060652728114766706265025508109441343982732608400469592765988106479838206217501122347064598610721830350195637986664269534452103141414796407387405229269648587886437764626762863749971835159854493230349991777352136976859706598421866451116229361381315195298242509363393013425936061787032232429127506599503736908038115893785957052219022132316302976464611907085686032620772150060516486791622556284716691866632619913594383059251994351177151055898554875278077512789500798154179852233545302972989188038043370569082202325339774653325062080468586448787551451699760092480608937431227039235479122101122630985878845217484776045789614937523723470152712905707614897437983521628229641962691763479519861227157771705376652980790378435996425612348244596195804707368718197396518549096538918779856373405228643960333183889195003687804101319886053487196579971590404853593495463602024872221595634173702139563423312650638382450190567536020658838977545424805478836449041439709983754813451173078669442619695121779037623725246263950076755741519183035133983304934589307900490981058325664681020446561631095677899686432000603503631550129131418575666968431090402871307394755967368157516017629019281275510849887757574746485028825254556676937946793013759713815395052630668730561964147686934268253008146298132333180073392101079215840531747126920632621115479863431401190094461261401801074810285525373576717018117514719529021826465148111230181542903233363868105859191955784255451622251530036599170003361124179511200696259412421279834784800897106560833283609086707282513528487821746734516764732344882848624702187071689450890624580094074608848667657793585975683716868756695831402191970118918152813342080842709815823579691332774551800902959612925813745435863575529860471789176321948658505260056377712080357461071030572570964841200843201196094298525009606573436292258785422691001602248942645257167553758573973152691263440619548610051337494472519897824426122683699855914305468237198917749072715828936960618492584197021674345581469432896960701248068659027678426236946140020311900775066331291873256377242857063284593864151228303623709057368672304266653187809252305111878180749158354237784317932645304598025383127647519897135591559760937845657774195587574621626471731653088491683398842647604448662951348061497398623284774683654108943994623498870996198948492347304218080790285609727925811023678665710047761828930333897060677217932821870542897076856232347864287178682823807691588723792956238707057722307338298556155997824794454693249204676578847766005349114703994119646836712167424618411440310083894655440078228231790309668223476834241630246463560013290146737723277991762730175115741973676615487517245417786960123235184523984422744920942872786930753030364152283861749526576241824571241499754515304709208374415755886121637839218823066706336217107871021003515239951673427156066760951032236991079335182665424032081574984482971679830458326197571083885611520045012193071020655238437513041759670135546331884848224938621352045289614627147444215527274691254745752856748525986751898380422890403152758548675225424878806777019311047093366016110697183899714579004620227833453878623677598467214230326792199172148312051908906754591074277443852682115131959110827723253714719051089955753615393515059288942354735606140783989268993790523578778733226980136135185746799661120693534300870160800674235967393857751338709641604429964667010846736035145812183557229857679111353806581525033983792283833260750253213711956747417971003140531223341704257924113050779025829795082238078462184169694388568540759228801631255233874566722880500810445740906266539119711877879301558989538564361190996922385867384809836237354067126487018506530542751332379159637666460836649100204880765353124193565717883430901982545485754066737365590451179759250231517552630512649413730953545699022699900848699578931888025742052100337380844138360131088211076288234599996562314779925889182893372712653296457814961273000933666822118831690392218883285408508911860082529878259375563397384938139951959012568940615363345907557868587723928352437217227505263703107303402523722812033550644022065988779520556631473702438601894099652718114736892561451798690832132175658453275031518295242107768674854191675268185197488132470029880990463758988075379385259155289450034166676185270637759821536990994069885770261884633114172549313375580150987833411634575845388395486178913491605072043697837636405867580327783009007608418832314802871664935398210402647256519888724653882068856351906365018072430043959710280275631694418421112660440366308150758177254783609618169696130502897523668595671491007043060333570180193208703014871461631347152236768373682628235741103419491407726279811625726509627215996742337148634660135402712105210319981814483128143676895128729358920620813257907510493468077730603223278597942057928961970311506936501402310082074153606443578236696717704025900983140254519188179052879741660854972182932876724345770208632327229498882889960249337291728129101969388734850136744610381449816483205878700299517529240238621418552731398428186303448183933342187056939747757232981874087465147199829794634005083229059122019858673445869788219815924785408393281333947011733042368864080948429377025557442127427346595609377930881668462322229166784230065709206111641320339950035331670271950193440290828131227427654224860962863896068693424227050481249662635484428169810085341780084112454778434771027907837067378254676786070978074721150275859337073236152115098040596237071154415599069715990340206498476097333360644322835610518927546322006132679474177074692772112030367578123280131434228757214423244001028403935752065604543360123864480674660382366797654319508770651867463431785688114369439000739825856973642523275656310609308054044113370438155597346280497724824560711309409121847335570946281858394192830086433801423033079421308843413854608380350689796819259583814033715427479127735093267992321809432008156833457706226915627440300322259878360454017618168344858603231674262181752221751472904290941361083308197219930688125861866905951894720129932219580806654044344355211166853796521795522925139080365898020281712254689582081114084004547874872236663527355157878494350985876555639919041551091634391576643272355940051887488362286603288649806333114784907644449682427845968713560177098544392604867011172005947570805511643176938958177706141048013024129135752970800447673944524253325214674446888213494265930587996321172080951951811575571631950329380112966562555746168970838114105822927369763843880644586925597364869227272996389533511954022308435058768578885947756097179322986145160814877719541987549540078662264266647093499757602645919790230955713106007903205085508255134220380805094396677910683569046325593559915331069598339497120488785110957942891047602594029998920150612163972749367081090728503456808894879663323939483145542861255954539782577151284806181429743219290651371249443842713358626061630166859266533636577092732180352817674202559637274345701900049118261740187374695961665560502341221456487850792037174601330466153741497798851286815418465972816202840227449487437652796507712588348094302317937260860430564000750295450977677878318129590365548594247697875196526534889282369428694455946592100335700609546863560936845834434682396600642614267142469883184201477428715481824612361648698563444642173067657316806727332341059578583871343084508220243874589952234164652099635670129505229445193211696735344564269956427991920300104476142174127300780059973507283727458335251062495876092112516200455283724672529900116617823096602426606248095251793778562232641121590786168993190990067572405571398608202767183857549521756164106000336377137334054080677598180518473699655435659346770600700380960410662455134020515444259240094733542214335541924692455076486612343313481551641368125730319761976947901559426464304813853187115895782493583503972331616616777260708806765231043085083393507322778751547914128670875783629038623239120639577706190093906744598074412005764089126019320496338208032057315234163721905996041064031376558168699662776753406905479352995601906595866693711406420088869237678333109625220208896828839429919711218608210752291093758353757788396302974291545862647042143723669375873312905092233943883695906084539947041900329104851086605898557559498961620479138606292260381776035003166993592481236735180716060751495275250754861552851955417822302774598862777056130803623885776906168557531848521773723471061713578181756987221066284421056396995119288996379972435953490064620386891485886876093369764834785186822260532436301667926994572992975290571146342779686711473931922348120616024878625416999048874929840120078715225549846650426446977837648065818972039033091967353507455637139696753182072561575205431243718196252010616843217657453446476595043133871223005751580688976028905838133312364097696277295504909171406108443411854879848091765908653965902116785143629984068756810417307221827361320623247925343217322965247156444815211730944929233012459605263533921669876838998417016281632719303809919934199279111154092626073026992083850183969320174844249068712978604211898390078160801010988025955469062867711323182808460767990976085791434686822361733771586216877363801796767341524185917550729420053099279249923529237529135481436041683873976393674020234266054330704430972919012009832316087029284351100376316046263808324084533532533928098237485380776409661166878772714813065526222004923522523097936013478371720685492297608306662737340345306785636928893905942074372653494988756936290866397912606010362003610639633600460908939876967227439670712867265810988161034998168456946516717946290861234345623261558808586088314040858420504466718443111805935261347371366049444746937446745589029916664927841433893097660124545294362430174684504079911277651505490637971163763024419116562943710255080299879503910159590805196265302827327866218856046086701909992349048976488551945691350014188430225862637094702357006963187713773175863271625321921361077610026630698748947136772178084509573056449388152294963295179970220156601599798452718478130793953742224298387120175207076507459040426627187258022380709734651401506437235433804952743114131296702768853291346339704564930560624351917949712671039267190743195271077031524964373031040981505200715385844192540876909904234560387006695150841413070982345634492404957388560621905755350421714477389042215062657413611653599861609203551433570419464534476469136473948222262634871186766924178010022006127177727762610216270111450205692096015268915740067571321452570287507139336247554090718625143350768803935074637961923643654222888924909883106543055622781779373501150975323367546036271057377457338514090034512528823967016151526674483356711776416677421968799077840590795105504620169779659473004659633128444040550585685698290832778031080250719089008056268145544157514381261393729738285848343158140910209161466403314761151257822375777646157331114381742021575804397463845654974135557796287927606106131468199154097197477842379673759953318333696966372550275790190119529216543026433522365972255791816950269004891540144001834963547839339966813145259031651157210950539679807994580719580486804388052004171993637270539162232678690276437020892357033285934772023607771322363540115949490181677334505476837596934701903679465688483650595864298442602491356261168365120559354683058951503645046973813529312056816122932112328254981044845548826084758141010030764353110440302425562315609375319571306806903391249756210148060349321220955246380514412168191460271101437846658887756296750925107907208961865682390716794290720480517548299477548220571501506901468097450259289647173278613140177958656253906270381807689905677507155499776643529478603278817483514802895473546983258969144223919337055378640506519279526114303953382646177779729427284598022564408208019511940055914677058088758150729314531477404596078047038890630226794742231347141542801687394972694932961043542842132809183795740870267606604924184625951388567733207708189914646485003703529159508138855214187035571724371886747459363157442985511957413311739285270951025204515505598323100406571125818771470021372161576678214638983828889447606982621425293405567087028241148286655348331158533114102895526207612075231252300364335242080961088239803122656881391901389935283929293064053881623998985663580790535054491107647719938983457500300823901429525270589356218254261213556147730179427184620188136085445849380085933515739445299878233791037177436785525715302344882466121424108078762990690400248075212242642254342605223637646556488097006615098351690181666794185547973255591244422016487278700831625901645398235978930678630529110625422793109740397995461035657121615987371391231737988362898459989382991893250921940035586658228567369374263969932563096325836463735009360228300943762013379201565749837927429467370601826225243057781641322440804002071796798303296850575463462422700130103925209045400472814186065848958918556105151559746611561307323873482902847234965972154516235277269684126193154928007655913661737215680718937085689543259013373068297280160939178219205476895319668815141457616006623578590903755092060859870705676490851260094981045085232565276917376269824400793731534934092152829366979025608542448296076539789795671119163718755988040889066262436158575662308987610532408050202567395800308827218660957391466289420094346471014036610186462133136156677806585835990299303436039720742873925098672967756430119516886667152030151152853930939233108937818571449030009736978494871129490132894514200505653594283706174208800861999262843758019262329186843124256799323803927384725821200178736241392419205792226639116621865725607848849707101222843316762217418119084745530522412311255098674475608647948783375799701401999389117854080864618641033036456083671157544446151668994920048390306596190120753416168529636423703364663441783220282352080175066914554699183993800652200505872582652467859722782729795475090052286675337517711662390957470903880257849686691654600162063080348508808880873327130133438298583560101769234341475157423502519753827787775384077746235759878190149299422919090056670731887306975813101686875608347020749750469403593979172174967493673393446954007572907872470847013123332136953659998003537675309521844335106498765235328915346761077069936134247393233064860123905763699257131501915811538205435755495618791339427984319876418967437527579050893124553098679299961570554616927744510201890286537201934761459766962122900335381742640300980866802921720973869608106782432850591058209576179858370246237614950311615931907081642284099959702539985529133748250051719530502510773119358576478529789304178173131809962276441523876878551388660026227762284297201788419000091467153109671635015856288819267779615111261291521636308313535222852273585171759360428171655719251823565401448027590511123049843561701806318596882748293795448126705677629035495306796449804931326572671107043034356795754817906571795959923030395237374343458984264308164077485894561036932808668498436916349108707159058694752401758422181879618244703332460447803850971134186888223619921446367587604432229979104902242847606016422838838038825798201561015449705139792842487901607811610454550011445898892266941195550153626237840099557849276753175576614118825651500263217835465498945586377179295526091113524616146340643345660727389071829879407183401669700619605993020515558610694510604868720794943554975197844914935784139799722280577412972760255574161288183070490204749693587466156715997469951984149895283093436965534712344795545137910980019165330174434730732610890356865872848679111027771249417107014838679507269155982670767779410237614823907507199597568360454226172899773020047111030834178945238041567844281282876350013524576105891848891889312587875104858583750132501817879675164976020514140617366529582563767353059517040854879378319417126487689138409669675493484884699328290131204055530034870232901845429115230959888190276705187319252855182863178491286047941606855073663893447785916910066265604557869565401139697126329563228510905860960689371883256843574607118447352677116725992240507237998085568919595873949258313643621670420280985202359753357052761585017315499181381266360299141055719254103327974808989443762500088983898370551945628793882584665493080312232526872642969385255331880619737192343319039683532191237108520737215266500388150672807233192610625276541899161385783580390325318146056892005918636392868722217902116738557585522290825199498659612931281311062135010816520107132198861605949377112540666008546131475186583382407647754624723626066265758123044291806582371857807489368888105396961263170012847494063241482568560540396659593492500788682089210778208426814520707964031308312150702635009031830026615295249830533829034672868922673583425483536130846894770520353830204715379178290525323747352565113758932139076493130011625714061640339684509365841700230209684160577954560821569036906662915385092183497188628722032661702363781121003729493536445040138197515949727517866702110438389779513878961709653538282626922337514463569169389420740552481638694821327088580502550175886929880088563183451824279685385017930807613765573623655292407178966944821860567036394850209153185184446834075879431769329120772409983622271549594543448458830518135158409471911019042959583279007010084661373664916652080693391004593212127170956566756152731034335527196011228916229323684063607686371606737942994874516350425164551163073503684881812559441749398245431846404848703610807298056830009012906698287545282016785250810333113539824226703432995962959860906641152860230982585069204181597129681794049540984042306666550711450311856819612278756726053517616837166447389651145466305407257303574958952236935160746607227913021894602593419878142284028856694156024308571746931749488920972304316283734380621564071938074188794831200571605276433302820536443735932394265435871490408367216435437074540399932849056951235806058309834004505509915406767432333210599929332222089789134658025533245088832347529526723166549391959980018046758866176432178359308120704920101046814821672629716936818445383946438601179652456485099041113707536828156743194745431602587671614266641221372963167597732566977415515069262557399890008107784716236157099521443623962587285239982072577610999384052322136321922807908679340006365834283052358144773519350893529941031863090047737991242782353846297988809843007116862652702776192766913067654568846744726508491625722044803897469073094270133116685783638961566159570933664194737296712266035117514121669820529125436856346149229145459535466589796203841121985745094303374747055868649584259684459423265906938565676543723744969544015360299783216793716174894583578193818119679031792055685066281622418270780451907348622895030524081682656724678398585592754198507180719788189935715099772626576555399459726490297288432909688205151820294220396381527620572642267495162193526879049280212889393731850059126922710704831763777218243632960994747361789423307246405213017509846087315860400595030337217960866574976512175129396998338253457340611905602612337671439668767118920992582636214031555209354139298073410066002422659769541023893215559506308228020433059315005995528502471555056025577929628886452876665022099562753777085358146175574376172394537688855001683907853558521368724376971628655754464476311240691315721321060981901451951779492206818300819073365767251828739616850851561870204496955295337045799574310727915323522531387719736180347556724542055106379115062698614025118300998669613882731821345611198205353925255654013251005184940969153115240045349100342442583605118479710952916588643238208289296921490937324396826295763485587977577506645521364759025554621415727702582193851576728123801159503971160837403556524124153761149654868565289383007589466159180765782201754895567817489645911408099246141180922117684141275034336104226082357256787346271759322779225407052432432959679613903362723677771301580703031889848361717087418168736099828155204941421249260461405390388020677069344010302365555645452348148154724660097881979533607555330134821305343277549537005836025457008947901769806422919778770731570674403899577346734337801349406766579158646137467319349923335491699436945128029728550321055481194661769823804713607321309366526864852699195721581650278702513580939300724427763414240304032430086782782802025107820065432350976526449709077221154345976698548349422675886104861536747735577128079453114841381491643082614691794625784980289593459917634079089755402651658888841077644551967973036535497058560958020656023625909848742904864320202607007306427447906600447065054595184058921946867967879444997551263493310108217987351242017666520104607080845113075089931847243278767407594551604334820080187514306682216481712275088326783383821586363256257676200937009326935779202110595761591306252188148794248618286249152464831585690765957140343705630683828814837291291498296715220698330217504636500660622456496669473836629320819951432778642607826837766566642839032776015576997843291218670286674535470316241774290903271857652629324469008092538006692370229629342673728961079080352071233462684805255719890999159822239975170316317520729921995175992537142487478995046975865566199512137076697070084916448710832058860750029894886244342121294851989782036351219588799792567153666553574469692233036134794636388955565103263836571680710689591431026986364526548075667832467267719035855822400889488091401426528878850501137875838206119733870246356826999074577023770837027187206025671415916729397189782699566072773918120533030953717263316886615618363963734035558833318944105503543596539244919711216489050577734994045742429119263514822239037854856566229119154434735801547990346768687382402922204489897251473760295288697561258295356054334165269459269773290857958658271563844016230747513252899319056063183892197585996008769908500843533071588716067880377861622722819559651687290806068289525887022388005591887187750841502625045060097351055678085206192476752826255495257622332840200108305910932733301879189582861451219531922509135598126023610318124809708426526231803344447795358591700247937003980129853970906393904889871339701192128820657520166286954831235261719591235694077060161910388495933100504570107604421389294304514466206088945711873664268273931165163625738351943210472937779673339107886773578179436218941899304607663398556832452999184045549316318640201511599373760333594602531701196426029136945033569309276643359945713013450261610718789527647210887397914617082522312270944246464772969725721046128235900890690079668417248771031877832000396327319859948476285598060304482645235213829552935917403201976681741871122446492989017723404210774511688734841665501601857219991164710821955424764670578097466983636943739376939959545115060619846339989565377522251628078701801131943808395106535034879420102924395910738902606152017942842783514838528010331254183977194711542364007348851999597840895139193633845973384647734951214176316418282794296159999145943594158031501486811965572320704966600905835267743576215292702340260231955848114402679526125047927635009989758344272061860980350175345115867423435522284590625041439470751096842438504109060316823342588305793700828894370573874890534262213437747339340887049226581078637973483262133742266392545151142474923498458022419299154797215748896659944388109183095082927192615306490999938749207571290512988598008971703873066549018688510916741275406594447968921030296705269603330036737544866994050741046991827900648024036373062061368449512323458731629277532110808009516052232405596530029849984375359214462665290037976660031500538808661566483853838467634211346552950462504686177086145782943464412283677017935930472813264481561225397976677950086154709480803362092976123231059204576849468785823371263301249388844406939381943290162116701663006021111020964791277972783389025206419399772686880501524439166532622502608237752005515606604848034945179801742010293902661838865165037778647885213311916599527175112747767410488089233760655197374582782530802151925096723474054442331286328386219751910518431072569084946987381366325468394503976005966690614375120606827968991075163018393624700553968660997264962675616299805594641097546231684618772904343974962556134559805257714125535201714346964355961140865481166078155919936202681994613680297104158714110484560550778946163067465880371295218196548310744511714079078720191579140513882646369352324205554261388375760988018778953248261466482742139203246213956022394259957344616305483308586921346429055025789391281946945905652611410764938765828645202067795004922385279523996704095712382988682490816665275927412278607824147518360134339325339913448524515191260441993837851386386838038780393424124205666890829760497940162464472534856654666619181414397380972801630511274898127948521306501466445655433010724413968393365104984542831309917526171321656971055371214111095607924179152904590419869878465438943843839448264847281341147818627357970795825238730611816704928544642741805378445377747127201567565533763787971813771569145282217123197160190399348614682866530334371392998400355559220405711843191616160941088210463373871231056648064384164172657135294167254255390806401575900520211133044744890165119912058202830359910015896339176604004925373726847922240921024643596254118042217939948440075187013221012179948783676803761372592923118792137926581708300596794729659769013438274645803694749122231998214270575689933783966200093334893939019165853436617049166957458090526993264974739980875579231834999575773523713419748218286818428071390193271410036364688788286326805116532021176195011551568611140700659162802627020225055456315355300673269310477384731347964381825107678505516331525555370791554212318924459779645234274257870068144328371021990256273304930038257037348105567960113766976056657356057092613846962525024179579936281440714928159218837184771133076207257985676102990275963393854656973362868707210863720883332047066261523531605835270485612432343807589281492022610512298200518651152023048903442943510682775123086130942320416014922063346593345374112208705428949340206211189546012887813344688750676099611914363114873087310585200640141461542791347398169218150956697733427057155845560094684573567834950807678557366421880936784272713378291907907891808086900795636494957130164794382620807209628433984116958637031440446718539605988060555529409459516992688369227798689186096177797936224005527753161082019961553499275681245437674448836774228429987364068946809942773240939898793236682040866855750901437917457668055200341645832829081385278866558303508937058766884183056484307767849187121749080492207896275373791610255841678718948830794277361756058330986564857913606537717328013919768773713652019429391204509574832275024566528799201310247837421579891950101058433135518210311500898436403621126728080451035459482731838162058491053923492578190277343459370563025986711843113101014184661530337318010188010147208360059027933635189435157227103061526195406928087237583417156826548992201946050072981707087151968466052502328508516155604742382043913545667556102356697282498524793110859348425506922119407769035429598956578636457438776962246963807976534666708476886372323007210922713995034084093913963536360573998274059155489744182537978866790667273573723615827349299610022696072022666294773168718024365893216531394319148380623341296320199695556414730577767795665838184557235221202123681851749292850999099661064217147122226807716872759649907837734170139436009990273847139488917055481292842028146600414438228306903099127504439562423108907156921497452748633275536258507290545167125466263839872774981721118113247014965238020281140438921919169935116207854003153886352450003642614019711147764501555911667536080050733217765031919606200478088444266872378600482937199301279119443820824293814903059087439378944202927697309784017006624279687408614546415994788367783267363490753036097007768722902891585338697462161414591058138190532499388751902898616053969613522129357013283017767818726401015998842723260226870984822830841028397483238930085236101401961184635049961167117372595249517922465665294155648482953461540832209383848821148188028162162442661534797582678460075950275503878708084314946353951256413705405021691853187890483250913959009508638379762897506952743758407973461456977927611178331411327943083556799994430950280457057111424582418336795122499144138564937250615101797127918609277906612906627884112504794187492558372804667034022049943552688588966700684425658535110354202136658830313712656242615943197319453376315482450480364778573760918008820515708775802734763504797324361110190100189730494140170403990184676162970867144277947395449189408827398796484480561217440505847242730967218486180857492605210099018881891447002660303653924766574983922847415781179384559088044803113074004681048225742528217686291260298656644870946853481793185074505310939178586129416587293630780426553330670822431862351868230571655378250279437986015504026571642501684070548277521864319649797069193218909746893988488110020951662404946960069767781541028461889297232073462511757428955100719048869934445024875894918547122267128966821871551575729649575234695246833157942089003036944923815015635495364098458523088634009830939663648527613458804576444886396262051437429613208924491765501824063565983478987818339674913846950128454771378956288939128786240671556921235846043521216307801651422071234343208193964912638287023900696969127098779857358598403797850100113572493302361902877215993505953152003820269120386867136750613517969612401522392768975389374589731304878396557935874369302799784637317505092723298899225054330003348366084750845583158037357919678199190165219045136963803523055317781965589772506245738583054039833031392528142614223297776847659966626265392032272203210848118950441298164423220825714150442172082678812671714386433475089675981717951620520552171491642051141412991104432377755727383277634393370021778214292686576893536615126023150969011807979847915455286205330855941073337139754218928003008641817354511676495580112377501612888132076145425460521027142929902992642578811064421440978105019862788066269941593059680766828381883159905651273984314594246915423635636981580403048068954402628758122785216344247998604824296459351908430279480623574736706806778053645415839369965567847708562200666639127066412409147059251633313876198098748695947964347437562379124654631406340034398258470496830928644067380827150428038277702262940023389352614899690367354060521784101593297987329021739034283896652416574295647323865823752603070434893895684968420854563008427546174376426091869466280534067237374353411023154153651185598527368785917101368441780672033321152154554069093960210067392076842980165126980044248032264114643837923374868941561006044384015764444983617864325604524773892247606557411125349804599433562953826854146158751723851973293358179685582281581846351803419466218610697078961269907345729237932364781538228788553510135644320944528644376456573372312526962669754890455404651564154259269388538904492529803713201185822726645837482843644564564832435279077531208187940367447395934800339372931243844855449930710604037464931852647431930278153497025992413918748506111558066315270541784874410983110238529449679868122970491228219807917459949866188179577014011078242610052979438035018808657178616524093896449502187610256531910710076276138072799362394635325481414981194714790173803573345145122042642009402710979144071520204670087285009495142741468808245661384729838455712561820664225099705578926403372859660827840442426519977821328714188409027427635418262349276862139600826188675315605921972035452616296609498718837788803963457623406270928819327755827420361172939584827086480126706654241016570930645305679135694697456206775870191048242939718417635206216604513567242046797259708620968415791668412753944797570940036567212985304897026886667583503095639085297276589345806002869765608787400513349789224993819644010633461017073637664242556799905456006043003304623790111641489399118204951554070423041404850811956115712322940078608686962543430032864825032904365031778449498539239821654253699725905258175644209357085253480939315042861658060345997590419460247361716837551445747359463820579518135368092951516522676003317909637682625043183181744736802540333339616981857054903680228659223273002076934478695379399757638000474386969581765758556619211422517800704342035316661318680553208849772354333423603431987823087714110902771701895687872838362199817526367202285373906369432041928824770952976973874404471037429058544257414272316359748203957561226550456886480592722947260681180680964513768362516740057791104266906472831437421563026708252161799222227064181476468471855072362881216262055007389188388217504739491695865202625813418365653067225336466560318403335803023238223267229304671571723938708626377383289278778419749112923805045117214683384484108759839992690194364328178197065699594463419177707162688513040181535466426958350640705976808680260229073641603093243965696466978138866245082777456613396194403698008818276412645578983142688569345463697451966512358762796458822348659162285719591238420016574067324018093884050945075503937832115427723802774518956334049396183348598819001939477903024184930079092552914574692928096315211837646259411067070791897900955342470444168136861152006846854274741875827170608230613807672552617733302215208521742620640938062896017291240128361679437181163828455798080742886437032660049156307995428868685434428705836983993780412594140975887089364985156697042664235478367829895476902039519546088388927906533500917791194420295953148403203031486077327858907458749038772401412255008627191945800620779437419600907764403026703927478409698732685231029197268313971705218384421321143250378820672966338278194765984403007329677794034641410841608380004285917165879179246074804638666274442171267848775374339904945661585509497051915873395999721092182824319352843546105712516979057740593000427867904347183504273835198218517020291165309904746453907167694177184424647060391738091669432308846704357516011599756887299124997762478802402311014776822266481329984201852197931285504455140024599930601135588496102258505233757844098411826647553293148457373424698853923710044527775854964441662872014053145252531769238542494933391619940829522002092626446104548152845160685521548130382925346420176440822654695097560113466496654444987420994029051491940332904128377140983055431899702203327130408634459837969912796323187177993433390025838218132254800372302538934342898691216254413268734337880566379368183442638901739115840852455682061427193312932934468278389253665570580538993516849910922251576610373611538463068007065106733221307117723080629585759267829680605526563421203608005391391352369312880288363376143699616162013389359426259949477734720792244474998931862786357726836668706275309184706719863918850011321976443214193767044793520818949620784713696042529667018037312490175542087809882957533718146591764824365609911020872407003297161563204724279930551329164318424366802540034383122545289637938501364953570283310469112573955705006132333079418641174388093625174889162099626857878368040425923781493144724857824249179456352411013524740848548421149352932872258392588381459631053782479792206905130703408536580359954968934192055322168218217266634895695755135132977216996812972910876762130999181979096072713765757825547134609185773404558332180317337690833773153540174801316705121746495310117975157256870760907929878177750576020659851118298093036683436170578078606700352952304696483255073038970806056572773947376809453177615079841996576501244335503031175787585693809540555283182176930197427084508686967653472051032018985205079875737012592556559364532783616813889334994021819689917396610262766517503539799707142674688582665546119321712524739390247960072804779945319067953471418986800781539380095582958036626432211043873190580936580716918869922034483658255188927109964597042382889366385978533706456869493902505793868670368045677112540945163097005262894266551008248613830098440516535233924072874116526299272221557322168655426481024653950039398828779439815757538724527788347838304287566076271551704806594409459871261808937164320240516488390126216228023369643716313725472844267575000757958739178503264838332606973376551393310915697797267174086210593500491803059920550790291866941674499107727891556586179298442769337732765701463974544726709246240957282420936503982293327131780563153206336056181113594930420077938536203033776410411225820291321659085163869425591831113791846311030721987145853722084952235766904261844316241278749343568518000010917375229610692086892074344644922620494553555797651894207173063588217203467578145223116583668508313459338407521459418605848284730781841067578470604148671596146438930329519091165486740019023817202215593308188384730819866730083316261461041584375984876877978828660864045290995653688253782179463177692612150415265247544714571012927518891212230217286750428127268828892202817971877158489080701528920071025469165561196537000834949791355603873068662451701813094107890147560657507351188718797552674851581386875536388673296423557533899458327451483001721771119988744279765920843002898201090459492321300499210399986612071863323834527973656222813549719113745649834772970772421431321133670025956756394779916347839495133677352455999352102455293109621938037626916818487497193026199516959009509283994989330180217213400154016982688329218111241586871237745968035263733955800783208538035454751895228648724074098993356050815966588558143351596593193915698898684273709624881676840556431225025631576238632591425441104991911562877134674465988098231109189840450206241099332482480031695211645566785409150718034282774284327883521139033091574309311405005747164079963565835094987881167697728068441290711029301376648936977029635367793462424878667775934835235367718784539143384565350673764636583410338739769676238646919315678029027451706687631554598405983697087890414262728837727168894339838202576930153862794338473696491329293718095255433529600779017569430868075143442805988469154897186313041937175309366891671579527927549371229368918533326069070845270470309138728449567545475843999629971604194117337838237112522569748307920402283007488950249508175037979492668939570907250716557326158769414249488040078338146005623308009248478705152069239518622444533103534414419594167691229977784460096521520661550226990063952125288576402666346938276374183374868081577040540102378318874148568804827402957665660563354179847737190940794972380491505613712872410354724186193422576537378844039513543231848382059516622143327551538380911258513372115731555481116932555596735207887225916526258481863906289705210765990919190906574806151210514316907596938136959370708427744973849974971640449292715194590865148291818930636099957927437876312280258422407090106871930153145735785348872045658174102605939861837784895583210931281723693150431232991686255047345316350037651871864178982814398923668057272801061506833502536647378204681915264749205597057993672073060993269798287879078752582014701829062784160514856790705196899341738249595640220045696876602244057224362605387429501457690014475414627750496742083488939745758697740165606511168827364172598058644191626642224231466006073304495572745991850191926965589667419496213149261191960146053580094111325525884367807814282027877029226373325630379561052516173362281411030000575683054458116813150289860731861681397539681643294563744997099807493704508290069519794480587460970101075013027139070724675679657198493541246607135134545439346846047225329818633835690210918070739470477216015648752647021785393269082337587829154410938079207827067759265513704830941071875162264496512557441992281481676405270604179309141641133897114323128215356713736036685905373138162479031723563886399344094282862468478349263323115731312210006325271927032983795060513780158728027605709433311586085683012925149215803716451739658540237816836127615450108432623710235916812020075569291265849725222548113021823167657143260120169617210859849193338229527246515655358963704691889075187419488296831716880000861553760364076516548790951673227602425827208138624708834302019071623744606305736937073527105995876782382686742792348519018136567384439271659298445766833895529321925620571791902558599104293767688198073091677469354277449724630263520020608395969376048065919406693451110983406260555680363206860396445604360976031008913905606057054275851980946168390565640534372487060422274473823680917897027323518650728052967198752388260326105967797388905406060490872096805651744060130441735873673351185417496237113566972273852791384257419079972735886772160573882607493821833359378758915367690021713583940525734200236187681856674565792429521771782943597085177187313934516952241402230220554620323776577968225913441381999584372933613360934932349757889622257332650607860710105071353769955723485316066340554730518935158271490930583009981625647811500863427832178270068217449417868726798225484519036805990048946290856791202428435234646135028691308458612449444958411572784489037770011379112936183357297989116820336646786961423221983200573246068991766771193343861477500438140858681567731243718181398747439402761303408924859015236577397750506546920440794891149475037156805989879103760816513118753618494755222700739249768674881466705108347852079660914437995439591701077107143123333718403589818906319240575481601845642529210373481727002288167891011134454981340256177265472195795489231224413169354282995849053227955340521618925847511221369887544208005519777892556123801003917252856781646601089874636263701784909988716499597067704390472950850704656399310399922402600702886693990076891416710171778434825488168942518749909991212597768437154584815994401347125357877368934630633814914734145739997447300078950131943387597605946244078489280061822238595897048101709324868353981656724445458886241638481420975423956044465068334682657613069174214027024981328146093504791504517972342359578093923651710682614231097102711849776027320962493464935557681878971318019307533102404503024061063427552848897053818927596648303838603971668244614625137656783688704927520730314939652768011495608288779637980494938847121016261396849506228866913878726722279318152952770141707556345313498224941131624203046342684648720633048499308874226924975020100669412789267429443368888957892733816131466275973654552301755253969463446026662154343998802294459041089358699944972423439270613685342654047586911995436295900843445118382428563278966733292195440680330247633233816906668108377296909169290334242147093266004704073796027441715804099362930352372695541642956921308020885812989814498355573491511917074433701410612663789365844858257453216644331961186950556244332834020038873323944471919243769321592351936726027909482706571489788344284405486475903095489865967141753808627584366956975425091418103880154801241579582627043059836150696238145859436710889340691875444935297763802777965949191666730084410323229911172633067858056741062117278930009685338752813029767034029277245353623507878841726639877208304742789311894977100501905634539604878056632417876312215774633298348523467058007812753208202407269039544696265820384576812566182612915753234171055489377052684124363231724837735958301284088758589611359724612448841257529615254843107926690272253463429916354341748286972248887247819507361636765148593051711882056770247794192701115878919094520690361623549505600484528969598441223807014193666724990792114084129712031162012214596217843183729368921907223984662241444838618007873324288443991401741461151621918296451379528801374097966678479137773137635909050235585565917976116497167705176844094985673204973439387469726240073024278454326646592763321563152359494836017188817968548138536903911788025958383259459033323263247261908564018741943904936547625660946178138829888193794335985587512765091142732400547927248863828670163164563780660140751466371695603399377138749630705446882239448205213722593672292351619616199666960150781394661371550479788658947044126211443555868901485786255501636661871336266302381333685431248500983461501556588910453474280716161580994874899155889068641550247141791779604210096821430076246592304059619949689443822767986801612783228185809345613333571025128379110285458265488280755831307796499425354192240710204549880168207240236744000872780087444969949367560886929346553464820664360685598555786317406746494450555690469289697900661750109752750020826352894514569996153143255476787512035758885831607641009171800331548070304963145130777903512735158045443410458669011429821129346874695306886687311644200099995553687520936754229375535167510690286534006302124016751554552294321872094124216128961396829139351421958938736937732284229813644615800696233295656251309952107637566068305461247773234795621805232048839744740395332149834121220123579804679728042351164571494559784788683126075872020363252011149057472845564821563976618720216046481787221562819681246453140114330170962585212777776745124416094358463199361622128496218920567140784173062284533750008611349750534730834279424881228576072400720131509495918033382446632546587169113122756152978889331322963688808140455237145828203144030253591228770363059433406914132049121111973795876756766475382148344681347679272335089449747112544303479289636425875442854071758701332173495793635766345177959254905111030427989021858842974968080453441010816983811209815818795535621767310129500442241477089328670633473866698925739702825096473442785740841712479425572596420868390200709814183976452755977154101482273392499757281979909318018693136227507265396445548993809275833156564384797524834914906850012066548127149425616681073070664430186425266782334230349315898061636182933837959904135783763589640779557610693034363344876583396570429098480815585561493802718191855349531708870683980776220170243558044110170101212797448833340394228849733875791124118325538368488697215715181015017285093319106375517998330174248084271429408384376964382224991485299647762591305149464857516886261906590139555930645675343908132019658668365143966729025847902072140529733049043139386262735077921624956089653046620492012923068317834866907051477020277594749338829679568971994129804838252680375307869737470919007347621608451547362605590296163759883389326553243515031474140528858375072379053243929668687070184857822769691728256542215695118271721108420655816029077553654773876705248252079873019225880700139449868888453047194490952026253903843183818526021842358250701235565639670255639550172682738067695624477116763961490583393508505346343264399371187093467664470302317462676270940516013606037048992663792637821364780498669611675026873791228243094559734940512866770004595285765770032952823636375357538720971865219700691968623649805308029054987421607784647705292496769431093558571986762611187447532224023788420028674170321728124833770143085748916183494758455238746790081814717705004574154759038040836489636277619686302672250371925061177307827254538666424469763788702562167750500449517626900497004172539584415588428083807448823341861557679228167591030400055888492055885383943157488509057435261411938561664944852377100126918889792854116278183389089789043824992035756112026461049245184167261612861987609121708459617112570522302453722604247531317710540594820508702818626512145569419064306216568712157726526556546241727239693800353941055848338850026349508849508212876410165096668227040562527610388452173586884297189557146951459036076101517286864117438386586552198235028991155545787803429210399604931016926561540646930694231724038590547898665124633127850597949907312821756213730680352720285857949395234430168962663873780001572149993298475573885344498700615863384948880927126026624979308843357890498860585286080537632165531097843464075255486791086950214048688109011255443787109306181101485838777163751159469126927702832100086666768043932820327320930425302977959878510348535399838267682729016971045704391431599256048638722808519983234691455364278735669882141337585593401275003721544691476201368454598021581432762823383093535824882261762248386221088862840913652988515779629144396741449250534249142763857909427808413518115419928929896325265357698883753275805350361975775532097487936945689250750013443349959442985319874901982433268331649674954608438228302535306672525627856676236427189936061254186037838775823719170808968985007776858813707041538907361295724065355256335868787478773744041850768111302135344098805634043417617799161305426268618720712500025820545353235696028974978852403277538172316476686702947006597656102120437339966000257176561923263323169492820532834102142800530843131082781454094202895162682857294121235211173881007473308262396011956469349384194449690488953137793551145048461737758347271121876862384809816734155832497067152525045258045138539700692763937772499079625369942545578078751415739460176009472345293202584068540183414537399191348651903186634377457278602997039277155505396651324930690950804905147752112227701145825573620561972466213445610028780392843304530284969984377759970861895180237405977242581354505220435469588436720221340339384752543558684715478474694743976628201572741732759507018171067953946939649200220942834940279532469508820481161024893520936199552320513089160180581381013304142514081438727195518050209628724530525430669961840566702671397442860681480903982488459693897688497302941146843221397378515044148796820609404140444155387135750266673902563616676500874635219112860992792591248948528641945759825040735253174188048963423902776927705170337290708626842217068909478241461720896434699284432432992718490417934114218826786208253233213423491971402015314690866389706552245744298849449868977673095434199743484930146080241635102676218860009776277151432510006245069811189058397667694713502431552057834327767704619358996460588899505549640459506526765553554816847699534785924644857822344854440455198873577769817259550296275048100684167455084600233017962975913644785767583200617963386685656494390487687865254041822915801481804918158790533125571481548835426857785649046545076820277097688392578283769582160639102952364151590539359714839566008979249554611424018568873689171887702195130435904332594496004940338427176790340146136629716375350222613258985142751196831092665390135985670853032336780587768210987085090334361351964750899345461907872812842347511359523708856060304760386434713017457431194673863589825360921234612510399081606382343342696366175076909541513185795395396113266169485631220057484390000373616364149883246590510321963804130710510680550495648566306518220497606582356727665255228700006964268544580659605915564643930437987136896999498301854574947468469403598855696216923698937712791721507348581914326917019307692444026431635731861301021748900914210961743388364957848576715515388931095691018041931231082966123563595737069322528640071923585341132878089714100534064422169587013436675029104819007634705110093481790647764821584387198528168748010858686147799968641498807299249610028140128058559904406103004144901974206122290079905593548881854476750920069277698882012751880465498369014601549497119361784161196486284470681493631072434542488062304873160768832554159994566244961278049867853956853236581002044539426571657319861947752283274241619193026414580322045754789439759141991371327998704904426273321648845888610123115756540378400317093969402328767187927904447741845595549750821761525196985137165572084997927101168824305398517406993788137824020620912955081013411031360460843327591818325697185453089933205571748252029813844708660275763572547100171449737650810723588677134819090814576068479490276075528040363982570883906504296125081131936290423052419264907722884581709845033625536221365155199976643116198901122104260033948671820222817275096555916488153077409336302526484934250517708897605785787630069692467362457909203120726877907841604855332679278826318494142218211218361415896876977327114302410059179843085855268092218560930276604416100129878920677575686994126319343364147906827018983570159202631702127912123430659505017455045143191625010855756864591243491011715292673635052963169866040025055680140473773108898854756426753016867899530681364550049215129761911435756373924227161083051183162143465638813988263332054355271160202224530780150396028294605955069739867815453959827145763776023420320094694781740931938384407802945604901767939094760375207572477653124863082662739789320784823411403818861279611842004583697185698087561323258644536540959886444324403672841128240501371954345452398532054923363172906283118703503307484445479063539223801345884911045644991472766439604884522757925351610733986973084835495166401758711586579118761547547995424007499678109577378874660281617351520994566029987415324044099495282140446428804099039867224856745361513795017530214100872731072862667438365873184923509433592326342413101989891879944849110936999403647208175976219236835209132047941474502243101237872138789784745368974673883336074547194701318425305161769000943650595617117791127669535022788637308267391009560854998980766117157947257982616866216094473985271910168301308609713538891700264203229374360272618729205799037455434771797503378592806050165972572595736019433772880987232030460723277067639525726544496467979602166514661433647793259685395700676851404807125612893603672752705566009873416960784332787237489345589070359649773396276232279324708354155117549636392510233099864265743752074146438941884361967104129124533548194118323865458930951401139585784689661153406586025255169772447540941199036703355950271532536466140724244591686397812771698768214616312741881867928229321643159995454621577624630601828839881708186940904125402763712522052123335372926704127277186740623013387816416851542883921772287661471406393716887380684945286204212748432883737853864229512118870128727001900329441068771782353127120903531653395449643171241595595366425542548427832154086039925406586502563110664677353241820423580230173781471782964660270844671204781385562117733476016459837434017276080792342832552460627853736579920770855760537502162072907045877214629420660390241697267920498475939534361077369004923716693351648410227960641688287476704484256524416570121530573993278429243258478046529795801460018805447768731618302391351237705599100179753827732732431013253394064455278716194376390602745460024580032579446026087363372002103616112180069262061521615436814710673894931223890924697695414479537055258170969587053985802558071225468486192915762021683310950163157583710342836307525538407443728832723261114640397762462775322089076106704814261730581944764138166732127929385881000636013475812129121564919985281205181169427411446781342079683665089438033156935497133739164438331711037166595031418695595595106791887075147420290758763016062982436433921626645138921084037089683330237092047670900857928325643145203243736519114698866300947428903284623223637199392098945908384443222832901374370493774186345736176626152045629229466866848429362112194404885403914235659367659173276070585893874624911454111201704833137897766150717670114325337631901926962441547735983344754478772485455788083563789320256187038482485569600139957246766258529704582388940250111515628067429855289014533529600126426320903004702791031796746131996167624101618427412194370538332137416131098299586548056270180507152771752771427193610090080262767626439328864799253036808436213138233558392795856112737083715609215353374992887355793040219066756020011767656763862280035198361853304272512350339739402153745177855969389327315447844530105026648924877546033271038300831791711152067956640838731290814254031803528674903897197942844895076678062406319867045832908354714540482400681101664478693963134539474288574844896697518279069767925647305196605203766262986569488466111767356140364263929321193352692558518677932296591029005259484973110912049138242612996944685473071565947944043736412077197717238594679570322189937646916886603226739781464134956251392852300139083225700293187339307762161609714329986612033886677663238898806019974402910109139199881234839214055600777498085887383284600650508414324439579167487595964880811571302138905717895745005429145246385447837389239071154011949219966900849217943679585096712018799808189744788458554981506203558685883031262044926411387980229372003656838178864584623297323056075018601777181405251627203986171687500701193050778800959917295074131877235847660135342292854304674649397173786087673596484068060954776820542799536188536241704327569606736365997496177111334804840038185517762664642253650581886163720802197693395673954309924753334188844639716701390885150233621757118337060690653570790982692059225367859569482492346679897439293770630117344446211263399265340613659133875326261787255186502958132536151797213861948421261611718344738458443443962109822829911848250640196817753472238967505963101373320556169831849289392120214839678179523374728825128941669299343746934455020384141672429076222188326331638323623940654060427855215544057216751168544468139642997594992446812637454869608010145365953507681121081032806782697780464761830973006290322404869329837610004151109658303855827937769292258449424936175536604609287293091571607039541423251014550361879247318661287122442246927232662787239284259808784402997823501851732476960899406141358601071817383116858680474203833748452207865125549235643302167518134645276127819410412405321127158546320454622248822338898896844397184227302097683445708908576915365426515372965687328101549200676350333150807151947685798494396267600641657467363499096232423535651042309465266062031166878977298366206796477345250668691577651251631388566985926083391780027177063221753446027996456176649222430593367383895559341747140943772722096343020199456872626981822701230176138345088144084233770097819247572930068971942601218152735577423657935780462297533726135859906627950782653633000511229506066476610148422612833783278114107515474994491883586929029610302460909839386870133073986133371953851607573961029507600934766146807237453737810094219532547719432582319938568302399769529251155797610090311699875250046643252911328823172285426864409922776723139269423173660747730469613710725655735823336005937358717756389302022546093873874926797783287372121353751090536184867808371659701531072032564527186919050115094763990986611961207348892278931447811822202367618252714955882284116301466144683400505501900120418458409245191947713914503390258414765532903645365914918649958057519777772283215279011530879168400027121535471003535274111241870440366507411313165533801772896074227647047945809589880045186023658091100111930036852435613563471489813445682877766463299454369843863692373312947956036809044023780083863492296752142002012227522200118974077004685459894499079713571752161721935508107586425588108931777324220631229863062535104446132756704170109484754321224344388425800502491519063578480059404462292606084928192299538920111510515679049181500153620535284776956215981451244267307717438376343438947126555835759970652884330309345881226268428944041858483179800980731293795483186436300301425250902623170928902163417953276497817522514668821869066143750449065029225721498535874048075742782503797343395132464237050144451205618424046036469685426210469839909311460525551849623294761860415373576723956851468666091210890646145009199426145298760858874505015462035148727681662024652301765977610691938845260322140032246071353349741018205547961067701588366831986114856300508573875579934282589016222863243001071784877484229000618802376356569780450023273226508496811982012914608073203387017669276244877185718978043486817845426504638328316084212896202857167640944299657307034863683015934750205259992078556405435249661581140019543507287360572273592939764760312761691243633903521709356833381115469256371844276478226840932570583577854051821132017708100008446926986867517555115173703267689867427358409065517839745034063212558449669235879310606637076172317104571046764087171151673010966227702078854658140700910399757434736407461999538764229738452365699079972954165145217934934234951928725444713760319484382111663846685439821244728733342483596475611765810463368163319252495201049317275092687176220137114850918603330555588317283938105345962260874336099756750293259072727390274875862545790207455646526069738857582356290208673664792355915873203229251537084527764421705545502921299301791954325353422048288520994386222602593799743909414912786853510318654694155462706187270761364679778489315283272265133184008469718081481561819013175259375004641900806333327069125506512123009436140454535634069862104991210962898699668541213175368101957047317217360642314818157194858333877878591197753005318307674762520761210108740460870318090151397641415505342920522848410433925991045950153384827805638174097264999351293472142032871689324605907873701798924697801765679574354020631242759911215133502300725773180526132834804195346580820806769420388861578298458589600197764476091118751069790586945501244667360380419910589604652913084969139411787821426943812217852820369139244693314446439361796161763334757096678272253906514351742715918527144189792716273701014290037910226498003309988958663552616417086571135237490478859436311935669540914666611490066654712589793192003450453236335345773364191699803371070530389459890396138682077756618841305644584328588531466732265754213370884020837221693332580602785978510394624234364919653469129911830395384097630686718429892031093421603880182578039979779779752657475628953365918365127518979786999515939253746999807147266710139879784861909056168549175453656889129648624090551362800824618215871851753164006577078550306551365670508033529172328560200409255614309105336374807298270342988641809371410428851614113398724972091586525158815916613810078497048541972798391307110998976975072232871103780921373383100564510005309754850730669723024626977911233266984232240051404291755741683821234597954135624868961540391403751600965554101521174130680725385090041589678135121538520786779070743582664049520275377750099638640395377198804297640890101677039109861814869545022587216923395006985623636496107863387446002910086564376899560126825037517070865338724965744063631502079729406145085086710608561193329738490573729132406222650587610372118371196910313679577409198454638348211212401973071452131480433044971308788687361980886269749657710306870842449133221952395643336084656260613567859878652080479840775230474916086331819012222620206542896282428729698410734270214454950193019686656310431263472961394373047282971751490688065404872423672593930634871979419416803021655946485618898466511701677136088823802345342441201806192177053197450596323846294339964875725765977577513468282089204592922425673951371141273800855679309593643025786507806301354122681575044895074779624375570510479034661497335173687326896267047880442765356248658221059890178031005987291684753660293424678538317103970964526641772028919221239032869640193616871940440076265341130213720785877845550178037751171224536696585719851451564533321167063696753250058498931736982404989286743286862987706441427450640922731904296591296817255603647277325622331579487746150232368380847201434810268097713012253499335539662712136840176898931284490552746724814682684225282327349351586350879252311014262477671723965201605701943145161064957864080497160574931733603446581734123344208385477275020714454393054034112474215411620227484286326923473471499305950752545701415962830183956981435213553633668057067782526494446321925995073306297265713069140951576796055160524266353308848774979254329823489877414846239233048676095493267073643859160830417193663162500364874447618635652882789373562389681553103156757909463502088443408869585378675184929557760681229910827580899776771354477064753645697987694230250109026384842431284269694736525060983944294568915287692635765519500001944998938227928330312907047304120657174606811208723838293156156126881269060059506016004421392748252659038683600808533547509268174344471634411862628490888457856920031557787877515123078079034166091206183939953958232918144335023046476549878543937898470242450466050685410221816996421566211726595623977306618896902046960716290123388747037685176836049492113077219830841821196585120949520144529934565243532968440230427972240707510209798439744086054897947004407620254548891219677254823020994083182388191926765727718426407043273259739555060206944097698666437920853979774262266028409188265670027445189563817786867730078773824317307612733484048666866203013552412111438169131909201931939704589242152226821322133648551531255872553924015947923725859746375495951853865167691518966176842321607961485391339460004766376663872755794617964881190350928807892616991581068881196281797624981976946838281177031146623647170655503897599908959640581069768179629150821683871367873528693186693840958423168480173601072992618194376713338087232325446415795131299780597919860951233495221602384233066729285260860814534462033295833280691009840153097544271947119607153161277262194992873152757420321292318584517222746951815657944153659008170763897977019861575253119494634679329816846178581748925731113989359937563322681289409270263746365788513665946154161937416013444880314313622515042467723025115974209070313965285365651331431144657523246135181934865516681435548936364758765375353780123866548155948989426408472082444601427932975188913731512427479610911749650090983242545987983239054533425639420462016419769779442103456438783732439587528823901566998362159577399864791517914707537741088846512226650025903203910703675183008718537829250559375319222745479291009957937513034351988587728223612771929714756086602573978265338993049207497796168044845184118430637662275793839948168689441708922917508828173812024157130427457645578313699280209245863201026672311400531995852853740290046883246698370682281345190767858931702044223786319397281974948133772105490756870168398758487889206522998653255286486751682992303918753225822440930432887453640500276648620584680745498764579801388904514398303997505134090225924167698014091594339616516295219962307227046453842299077875162678977678496541076800322303596305677529604140195227643319673728322953875475604197433424078862293492925380908494828431261622352381491297340299236858493024279053168080950769137625215996111928194926629118534842687678126087525790662756937715108172317126971617285172278355837305487270478440757100348738145803942114944005187672632311974758742200880212419581257410451591408953527038953039136466054499757218540652466888148929964803067309848088064568127587857054423855716850615002054578380598606357081288789645295473272584734079860125077463002703391356887325398425945830534457103828750629701761137034232228784189505791054155079198397572128965378403751638845962174601833801077066807404418464214384999608933716894752110424885761974516158161980501999861577704818916034141326162399058222428404629266917605845022265722388904528773374253864347646541360670875968875942246663103470614509687255782734555288414520681570746656231986049723497139088104558998030091368411952038306052661900375543482204435336949851110394037034499692128109500479041078638101629437018407384492471187924299631112548733277787922294131852088791053780622299727870157863066120954262549609890583871913002569560608653799550179209468260930386695955119956045119768115004297227934953034914439395406140482217218208447406896146897624141897635583965146867428515264090471777190207683879846226505867982277024264456919114068151748203181188633712195844903478894551177348410665567243016128852310541884569670012958776020922122191744855638406866236729741431309415246183109533958724600134773985853600627256387170750697263442170642882663560809192583099643936863910360800258168008714953450461210056812884075616557488723671629665465316821213138442202360721253827045098509538550992137874271851995624672059643411019676717223999368678048201960192399959768098538036428455309243259723725162058818193485156463502218492219414217301235786599398758571820820903112571001811765398802345317781770975664078423014216865617939738023113093513734007536052064800774398954497893018294339913372593674450116287009272615143574398688533119988225637016931929876154966457114069294255631365271121020829680004654977413431556634259389334856854758889268659024073088880072273207276955932983323657924630317538566153617318337214442041411557863196000413420149052295616103304735477198558930385981211651787557572639486323931555853955626375638658966576005491691727053482109489143988775294305733555566689801602706925592062429247589665342722660076130210581534633554466638527571863072904732709935402314929774957583507887452742485651973658483355662535053169613001838042132152057847188635621392261029231685377414722249717660403171722412029807048950536088173545270460591810701320697354216369494974524492362446141452062159124444851896904477884731290596493343722126049879332940264116126134087937028448670626126939698345382285403602628287795201521349576164150484358847020084460018176421601628544903951481524579774443267144041055831200004073184188413537846173805772539740712012798000658789659087711592495944203357791609360878370756039797524712071314310776536781592271670807614032521937773044028897993965894302908708205733141868942757864878973202246148680661692733888097201513694299391797496719474188264519735136995218796175401098931827984048972799494512999009338712052577711850687483686235029548238039247385196044875549825012684640761124215358795191139759353852776353120661363067894322771693844060504077027642911693559835988638151687485701979651586736559020587917153264931746456158536694958768467774148698160554715243217521353770458325124761016970208519441629777457095041893777998877088192147723377873162619113498948905356387419155750903442747464110633885400433670542877181094244550011360440270164838583339893810308924571753789468210685469287421065550117236922912539026408630837009574085283441122254475743378872977295885179295309626565766273418040261413715156426434581165453367097540409092071118105807337707890493361094655373418480573139949661733131297715183845128175301367761129546995356768588680877220668517217765675273805478776314594287131973616668776608745872541599648232886266117175404550139007131878619923144049131550429907066312999547837651336583483747917753564504549637339548547313618632739141768370541911089387738218282082267889365908971327347738398329669485791564609140841349840043169676049006021354629762143619354026514282693548669212781327285379581267758690776615108621494565802648536108349509072005606254730553041808651308438675372750138270997840999783410178497520172097162720081191915870363668191136887673314407605576627463157575868782492361325202394755811577210182480689351068969147978355222787943170179918141541684940967728194064005862260294687758066404890872259572238942749530097723598131364450787050768420660577844325371751728579785505374070794687683456539707799592498520147231313624239616666810442650203552908101469048840134791356808922570545237750405653513991312737352484946630837127402319784496992384222319473009878830455057033135490237469504903047799880508110522947665151569448328634974991090102267609913034148572889020812004837469947493200160779632345528959129224719541174058301342918758412247819100653144969505793164540180734525753367844087241661502257853555222989239840371141803022115976762133338643536662386530554306044228625619178709673037621787366363898992743594171958995174306233647763870243825935386163631135692118131911212569204911463560234698226249567012074677025060065869939520834577614492179892446027600589962363257942515696872470672187383716736034635566374000872895391886253005018934949418201513760748683800881869578167330703731284863174841641396288271194644707589426468799834956580350666674222026239049923247862028092232069239195533631877129150403058392271463206211705089040695219562712547433485788659476139955712020424717598446578198606600072832199114852998155811925247168607812959454225991455097687292097026271295995271486525789308507605956583594366357840120236189921188378263084128572083201628163151184381622599666071204245775761605823602625250593483744470501471782918014299638307277105789165638069650110274514023002743326134152135138562359246742992466495315404367120658561006028775343390294995378269953148361260126456929453921382875971051841798143519506136629939147696563198876622845303429932470269456046781778712302455923089300484171326594352135665817772070682036058528582690185967350778316728545845354372276638418423234895808922337580958004041732529929334980810489087492233625261163627962066075431524428209853184630442571186126735555019885979040012231019612686591631106747164372603958814186994162736591920900208203632524580702503603354400590098880746093871631368676167548099336502307100500122690589185213476674337630650725032236827608493977329625766459646298497474590676952527134518432626324058675228265275439946007150299914467836153957630689508277570593245398833422862391752121094508445612761816510202279094816795393117180418064790572758896519330862800817321523511141028530528516868019084079137735791064123685609232179968717768487546387076615821903490995313244241160982703507635808087491963070970713446069262925539052928905684383342412299063420553035336490051129410284138826848493005053596868763985880125523145448914736005702315792901923034121138501445236951556795187434609030787540683140652186848942719105011695003464151103462422834412738173857955700029531434328190422986458923726605452390549267802319608514800078713908771529158511063749464332659096978644847766570635570953796019636876884868255799477842692513487272153549073932337608263499878069387491078228485929598255957372508068791282660364200943105648222324485952708128012522167771454237688596874181023252230130126917443156799791868714401913363465194908398135491779771997689172099566509535353652613642914282248084253183975841882163148779106350385935767322485061685060094432282079481422691397133821332277909770098517056705217699292959086008654649072534237455862948894841462030214495126103760247915230913502671642471236665181803402446172347007483001908070977880967620776612041578043715416746529032995523317341119549531406257659669642119317010476273138569466390696847679782290426289947683243784400789521478297360568338112277494415932425881610245902144117693058229546611251593063878705678883838288626434636398146720138726856213185012932470389598350818538089153744470882901516016952775076418361317067135355528250139645557190591690203487298103745181133708381851914422981159469006923923152666119847470195571599079417494107802926692471921746682184168360967654538581827832658250615069479078845251801423913424963841419875050533359293797565886312058341387763757183696524659717636324438489582399828622709939403436630914729296764810891454184191246643684582725918799464508461437516797487000079871994908757401950324540719147580364853351883570950235404811037367339851616258223716565715137597507637119635886855791382638509856936634675262629053516651690626375433550953828912594381014365591237489640177647208199507578038258420231368369334377148099087233324126226803431987773712045227712937973353145632836598066730641622179221158058954671229529854600817229443062537241197674214131402108322316865048754165040705523816918278968459271612712074476576669767493959756751647546013602393900152727643771977100423572255402159910339006590052721223586748262908748043441941731422677578846539930753871971363764827749924545349016555535160017763631509679740973518045922807135268256053892493949296729500835308666322275051614546832049674898090774996403875240671873855508529301519373096008343122985454671868984862498291276815174443211506679117787806240972942529990459931487685737693607581552654100224290029912641551215628085039111169619111750898821898955512612987995885885286823214545567833597707694220534230426660577328960757069104983808303614960255911697745726240266070218996590995923939794051679175746223218192685607464825541950767926602555106829607715427781406136753501088553166791441279367458252521958050572072121770576786956139829484393299317738341019937835538081619941961878282975857907391486876994541579619455385176789541329884686895453142588459687529382874818144517210735614944145356750770401851785026092614953951431458267633005358869228806672754577055009954955804235669103226182709684963424232962312959927119109197409186229323307077332228682110529998816000745220410852145884652846616682251748038491737758208214553524226995175256127900358614011795307254633070162001778114676174786907143881422386936884469769191396668976809063507689629782414513894080882899085189902341219298990535014873563687242819877452309523721184322427700711519050993002038587252291995631704261158166427540788592199468537159962557465236358125758375779811363272365525561445332846224456096092304926325592202823235778253686422433032455539640728835840143334116211953815931458045329555791795661487341577537044201024308373977437897754880003133584562064875119961658566672891284525821594847454374681739152170906737582405297099100567941619411126016418538366139217695353599042150752628133318352953921528841316652506688448631337004831798382445353429583635273333710033675647817675117084685330913066818270375066161964316033310676620652570487662544929504203784573943688825542743518353415336599049572445916356160806996395417491482813644229699300285162233978302196235106237293721473232612921118927947519920009798493212686949568740239892728012631798705256650334815658981512571716901383993693548024401039917818595437991894830694794667559677219501888628158993282882120242765535571292912240635139504040917947656963044338459005716673701951640187005045646157472010550130786382264521913131601305786061039953111597364737328971284600205494166535926831213838155595009158841257161869671117411887057305911407257306475550162549585458231297836713537278621681028292298612425520030312319519000618540846770567660583504553594953492898806490465603942144032846660263233643898697547420482659127465236361016979733923639782633403110815793275374404098928637560255441385929910099601244425083456254725442074087201741667580315832715211391761646569933808050841441946379573972977227644826085393378562496465594339527072969779999725260596635500717910251318979140712710799923469750811694477719146867255583155588110163405061977995377961654179706651975071458259487640805273056025674010902453411504604677223618159798856417857760724973777550101934760305385424714164486031852225020632992981996081955023871752118546491734410845936276710370719989924419424195255963201234745495333918585916139407803624516845928345029845057791679582474944991072403859109719456573214750054034361758114005450106651191870539230865657880329347938920046082238410026250861498154238916565219530315495409377955886959960672878584640915111221207774658468295490669795611793488182321781745349835067864304947767675878267223921170347290492153653607726799089468489063603129486153941694596920949880421945015247456569903550707533245579518383975780110856381876476735970766517783572691750867484285162683000298453503165534461381517936294699145774961350068761330990571497968505983740052166502449098906578600901835203293411260705494506910448675130950696295522650323272927697202497747550567766851297833556581202590251530537373419164602680689156646102875729580706765358352677902525202433709228157966400618191115000622430636465273408054788623298635479472528269770156924984091703504008720993227847337992471510872642187770187737909193763422889605439683332804380333511885892791102339175733168534598102916406245302814808491294882548885316817332600463325613744586141933354675133157518762765804307458672933686444895124954829507169284079305285034259148937203145408463259108492382123011242128960982300591949437983562623548291445197832244524498611879165256274698877139473612376273385202070824199680360018380240159681309187572248263145542184053214156956793600536096389882435580491437094136679656234634500378393842546421098612126286525530526211198201406217261637788091591793942382449616747618983144387654137490032096136773890564183356488490389107593441477669506308677264941389094851569280341081204262513308921885589059739852024588868821229268299508768978562854731330130725249218523935313268057382908957749252006163155236751870234058447954023537983333869613239413509438983417209113548297335186560578594553141705354432926182027445090762423678667158323822504963547252846005019769264495462199302953521789510161474341994269919611583204777000357320674122691490523709428939381178115017471720384833104649677310647100299824809204155622808942413775807299577333461875596301160597930233123101692010723755464906427319366650345450152804235959898427832864453113144454563026929932510708648126148113808137788346287128452803428253403224052212687721064611482485168109355206034841886338816610147507698693055351372345135482253560472845923566749697865742939398068440954076251368310625628434628364365083532547426751831515367839596695941169567866082759198317913774038188973014409293884274561406304497804816114257947213840316903720595072912773421639410987271805585518278790328804320112524778207066144842947278476721895852070401412377756984876857777935722501851063045033983066440842338625552857528122561673643692483315045423849876394651303958159301077808865274026222828752504789622366874849202861550135552217670911443078213016245845252650671215547506824370125681362226705574097979343413282401900044604971639458410376246458458304884080385972550940567494642149208774891257579996429984658479046170636681437568885149828610357014010342077875325513674486529261754424622931562097624193708128833677252142372535722452164288093703866233192485567882833161419090944191122025539364652796013505448334956918447213667642978362085372073780666730467689060123601777145672629238602633519321612411935960214964306411326670111913387305951677465979784317858042043176433691250436450539697114476916731829318822614513971343607924438994207868257379289352279242352494109870432138561645168336963353926331790033266780767884310132418222670161032216132829619141954118846376080732856270980168622620548167247513041352079904464530105309220564031097255607637062986843246831029572541696793238581063714315559365997196891307947190186661690921470350370542892647958167168092227388497895022603771432065817348749544690266226191486747929192460983973077180819975779933034578136737000900047265569700026006298016125544211415410064598470989345014982565892798859582782392717712620053367315871185697184041051433609726877631415259708558610072832183971055918718995199314940480962812138700003290142309832184712892688279587105126422288711381316680228769555888251189167864800532458500660829288719662470393715114694209518056326313267285641201862754686627790444954917399157608112181172603683606028942520905066011716619895416596040422058174889666442885088248862353127274903065978530252624440690057016942965601117382307983916912965810973593846990102533210325394031099799034536104512200763705911720236566474170240815248892952806218250716194086876608064575301744771844851285290276184058520859171601561381361116568037276882855187390248672936843144193293992927628289608277721442520186763188723129843908333168617282620019634537392516989807702723771343189066311154825486724018864240264707631403110899832124771200080137855195844051111126395522157674094498358356838141681177281487959319434406538251836723617023410864149918042370425133718433235919653778117851653932590199104019334800782912435016017720350233907994686757101059546144651588316304355714111351854033957820708619244767109689939761643037936458145628567487915300420794317838503728568985347803406451671947201540901365195042854759887817436637052139268452545653606721651262637238755883697988558532389813578400565833342466922742300108458815823996515994239177337490042001339515132651057042108049772716417144000092305103900673092578277256450578068850991735894944095325511957893034238658269479201924818930277177144780606499520427165514528075388555368496104082958291401779369264406470289181673742004134338246793436687967650712006397803644198938008451864637604149826945231761339976649280938155905833882343753319752523768342816665239494792169369789965199564516444219347769015819072816691206948703604809361001136073753301221369149701924504911563036164238425106706683305399947933382755819692434265543162934842186150960712716726413980407537339393486705517104063855705811835567117158179822320371624441216130220218372288071727208994587087877971010853392354462711431819432163309791080405139216149112656015005461858379724407406408588850357864357428227392747862201962407128959398387219207999182178503201841247980408542304579457546997467610742279213174462830877385385823090164106826304516569478657304594103257083185923168815053334131433693771152594924873956504851199310390335815113205950250148294325151908478932474873771166442307310890079426298555957810320391528055766139203574264380385766176864202340651853425316332396157514841885095571666225360717386531124319234368942772618013605060840535830659476564878544185172347320870323091372853712644895525338756176441534083442336749634357554500953680393735001660215470840625762480531574753546808510269060419351882896484098768580780114971206376597849630974743317250053460922719122911829753545777411984201071191637751228077554677152775215946820533179387327190824791979757735851108821552516043909568446290586212572530820266344016677585081936553090902632909578979389328808551996331483654384082918966168125392376950453523530034229232475243541724449549989557584193377652655577391361632147324191700517053831552570914609998564390691475373091357095847861100361305603628190272556880950810121512249232039837931008174701226125478614919361284244670656961176460958683316892983239934783140823186826105292617237108742226638370665137801837135735237486748895909901462177317475208004740404610863751084078029396330456055314242426005595934796167262678743921858813735808667882912428283802842422500804684270641387340659770661689122379554667651146755200959833281726980884575027320110000273415005884369921314956033485365687991721568780140575203008387157016191466736490364135850577826297358547536864307120433225951450740117039895489766277754151511513455148499874154667220814561540434154564761508966436788067921904543691460694382941018167742681378752600324902779698072081460673039545130426199027255346985767437868809225438848234722878994780793324226721448765007994286044097114055274265916360673681762607014541151155753869802128958789647463289485235833207999882182875491612945416419539567482024061187767048229969013294082562418110502637678838643363137401020608145517489103200991202513821727018276637166328756603849673572345933097603354653490156890874781170471182494018213508857997816251343482860459004227579828777654436819333881579088739910052805330828286603104406555183474873665741387239256115831175328212721863032077866976170222821383812444916906277490379768213959154812953417686101864177051738109459455769738404250062177000014755385696445242680655931823855649499109446418607537296425796441574226878117259169781811839419561579826292659015863373098960895546283956667499405462409900798270934858439288969861540967418592214219000244619393333684273476432866771599677375947071359149899428701758152714722197456936545966351098512082341901119261933865293312463414383261173806154216394274343017702231595690402350133350287549426194386278794953965424743901857108509639690365059346759666446422469149381802794282713069624898871586600035719191489463040263633020812599538227739644106400400024969079100034451738641866849058307634849627882383277601632172587198365339717291143448620876158969587843494674207519106508164238986133052033309637454282161586549102644578983393932909002456986848610275845438979173338928446500150177766244603448181756819268870116648203567662860261265993225762191432588198518194669981248246087233236512232879764758407298841127672684152232226720568819626691713999618237817326237688843169467884714058625162899612854401764904452284196223518011647770948393483116953061768186098185343538026049083998964778728669274471432110466914858694705762262321486558740913422194726966583898166664076575983903614500591338457727211478763201538277285526286748702234779353602093865245102980951041057386740015881826006687703476920032656999423992256927280548510065075499408391603075735973807361357269278182474932736543532079429451364088728941870819032586246260142893767818474118853141821439497236097349725535060056853664309682663770472000552832930022799805452384161101102738351764518409686079937843439938605840137063798657664331564584618203895983895550953512870559189114912992144128144006882968545780687770621064634838549712442810404975794140105184213623800694363682787337504882984714761048728359887610506048123306322810325430092778874473646604754178662039376175435922511375042021860242688184459192278393136873443379006374565035384620123960757095832373844144660162584402561334710927402478614717262980827904167933805532279094209022768879221582980350413539335033029800620207828759271299064872945009994044681597748066969595461516078777051692149075946799440902684327558955701512261756406192467529028535198659629801051026020318816310692997114558746453117876491648111757921219915331773668610652646626423832733326860511372171703746718438589476603717771482654421219947789980997660761318834209967698266341503985708146543292000401476388334097077992433860113290332412991275959977015083873751646001361875531763533524597533677273796661492312349582987030810625339397849349469379519076354336845200249286813882777492262310721301038111177917423615904163759924191746246586796735719028094961289074073876073554076833253314965342212906064501766568392882639262395398209251279029931387368160966098971142301174795229839459401803158218511627086671175117236380546515952196260191195900430369301188537014396797033275006201349805757788290761122974740832914946050037424155691811212909817841001431017399435966639569876654051196287164738241907534602091919598709314601746256311559395498644371663117662428687702851079194980606459165654603585962834351284222683260277470967054962480146136569027304232850817446727204526107564572556526130644541765052807480518398852311405805779633516338163945242407006912686455224310056149857936990065254232239188669786275986135017681907949220441536138647007269511998160666157213724359531253204444386609608940617363668732928079415306735619290202016141076623124715415648891743923647140014839063631704169084388020415590409310058297080447726711532181926103524594826905643897450037272841236773416096515183232750824257153000103258087679322223424680796503748010760928960841147215561374480948067668602741455716076538913004954978164460133408871387664176526982175969375133999648507767645577367829936892634630854513968905533659756264404226462023420922090851570862307955601464702812140856931905439545647408539916143513885003253883801386834522831415418728619069196579919436250759363369907496213236738928733730883268189284187539937580333849729685478825078887521813186676726936966581375944961590041918853055385869609234582898924351566654845387631508245211787317940204933216163746634741237162359303065914299485049684903625678501646303061047495019185571501623953842273790830093744358040962174762709526194667849640385283213933051269334779081826640897591573336241775219314574981260067363169468788508456696468881630818468524615758075446890861065526052420878795343195680949682851845322471898497879928295469984886039811301308544544315931404159661291918369430882977982574709647893967599092249706169256313250241643346657342797908891245818307898048840960722838523509935269340043274273833609969048280399935625551610156778381714305453568552475132248166006236886599545267121951774310300423403628670503626174262780929185173322796520243250920285870945016900439239616402195418970262461547542551380425155811968507064600034279057579147073219319194090323180994657287569645340006764496865834346988724056331835741810303754576892693033303580769978638592358336870907350871963617903663304831810826832984866049346138211907807632878555715682896488154859074603904977212184714715089013861062354763095922040918300628686740107516060013002697519869275241020376746482916115595958854663715173358271486464908356427264722710102746737568081732872773159826693123551614983212764819798893030730809263772857732749189827006931592996687335346429058382740799198142914572320714561476891091027340908059724560438861556451877340965659870686667783621725861118013347760219878700529524460049119216863001939852311417227335029983662070335447000599825114277965459065041333856218903775620597983737152081628771742503233804964046330063754061663115702533118358541939762919770662429347476599122823662411340323014781321109478797724362847089657015353824807406766623307590819687471690743635845862491492311916031348586472031944210351002535280387664462756624248840141350493170356816720587182204175403768137900623355532308155341299211911073855898961750663615676511193511132650251577347288444437980559876645489099754320023708712373105573021182007948722043920961768061552079967272708250683145434677666906650814213245200286090507027197087729723966036815653825520089779619358523893467779770616234890583791077174202997979810150500232296312847780964226430603385291385999753483970380044558247638129402031329398433936698703385501405750453446958211571238459263954518620049703839269165185422940916634494789354188255910380346252811305027099986623517754935285898889164898537417963472674208932085089365739424239097068538819837120748770921772897098135423124940756516710959856549825642527777429236181481525116617205652979149509839009355446281213521033812002851642061445863482447428362114997838887717471476167251084069389595756334334702831301602565491508357370061280539490610776214108845706771263071307029401751615388170248071371661647198593457729602511940757729055358151785367663795423772046398436560372778487112197666420364556332631706944493832919963839051356691824275331334790130228166200117373567615300370908657437642337495390902187464103309393172160138317047940491429902452516096903425080491350898580581013089181082427550221405815492332950746788694203589881587054540609013458148171555802858212987290910870385623745456273959966522252507770302950366746824097762589637258920753207830109728750792478433925940227934570913296303623944088530288122974260354373672281325812335474625863177561043186289757934133128947085309859881860121306947201030080453534545056873951133200136468634770289782071120521034833524084302931225939342291115661840187373681421598206705145895334162586178774077626116066057299894077406157163010265910243627873026019609593381546025876629826119712146972247751755271767491623155784773875576838185127816423668648350811688874567062088536698463860443820596090040636758363181346241589043304228926929243302974163550695701982685898127907262207355955504091549948617852671222452159236556896998816344057371663080259532655827577040629323250679319680837944693499744293587837773428603136425660434587285579275126773649221377741591503795004167941007749553273935930167407436182926984162965951356980774307793274976923311875229033769186372462809351669655231069135700397139383883633956563563698848017976304230373530531020749838899654324109932362177670889989227144793257218623206065824228432381326433753610399540520377650601985844492270336352676557380709875030657598449870239249608181914417290936483344534022415777676680723094050697830519505932097450192423360023759295743790732475710253457124100946553307252697468572114869960408750322472203067636870963597371245781666818917517895700541054886622586303419240935999708085452240222322343460807641070979218557392825227371487186382900993275071006725149277414019205453867027523155339495567850437158281373791148810423627808323007588333243801174625183557398756838681668969953563909430554781720404725458282173654973959489660399713090268648333054318727700139237518093721904762346879044749705257808431719561071884626075581612664737999588552887267653833929951766600369943730007073271741196992085437375619465418689845997560404826148465390657090279263448853261592826278444708776349477658464610245128904099457294632946281421559070871403863385400340237746690414867753681658391797518699000792789757579456758688764799775841546407003415746021547109146588850433140078888174347826914150055064723783201125072248710278774247453215430289367371393710204209020581995686362701839115831479738676986888794641888686788810405106410375745884174460343369730330187361874560719070200505054415288647810717217418297386203279360135020945760974946658709040167767981071123456280256671172320471058147905341649449475231967268354535877444860786690153446598696315609698640658661601032605106580826389997605397061958930629274336267887807289084981546960339170984385522679944179194440936813942103846500743349303149913457773411291876705183559327889907628221675490359250484910166264341374577533192980870701659031934287922581687006354913293096040292205013156311628907139663302706733033940902867198352942406571567001729592536496700750504335544799623742219501733777583789993760025633968038466988892348687058884739698260692301956603892592849764816371375901461240503177342257883566416843173691173170724422435036934256012021861019146454319010982179971332912051855201294643759828740118447484322364563642268030783608389017575288177362010709981505355945561666352582382987733108846618576855055709291917328915461123882245714633544696299986590568620909687668896375647529041478859327220989230479677357801136590912283568998257104922657885148318838824858913461539085162969003065414899102944745070250530013368876264723723744204738713421579967006091626169216647150592343510841362594102051211752890117317540010137838247066073278043195601202234921818774803084636008728809426259155699031599222499606913608494769877091246034250046548511913327109657050379021085595713163833846397737418831433710521566640395162095216173441799926965810732827919933223844626283146199192054462017352016972137984825721137912579716196834427305558573879943919750646601846504379006330681068782119816809097277835401850650740069951465035850937029705439711917410606490493166518359994906324682643988100901745874654465069659333486632651748864749647745738240047340628801977629586899103808823036353758519795576638833113230421182807064915160975065972773893984476892394988295784540901069155591950621810243876243958722365555247624821095032837399616716329756260434746034558275949466118450829570260692234998798668397615342500510345260796455559179522801054422498881847527538006678452052458688365569574413089818889473628398318370215358982813335502312226270022464090307306106245329665139270508692612902364181077550610630673042372046498730635538817467482558127307112367727298854782052223023155392552149778340613128296627883303412995014474730405144686178326032148038094947571193461501161059019756074948270740742446681495603298699195195168899639951549960636977758732002607853450509019940566974176110608595272095507216322973351430031157276629117975869189458352130520923188295919582120953890614696626508496871535197340542732680137827949447754964041729094546720783961714455614327100575829898400791770652220367600517132664261249006612781414529814167731015092121012448809962062677293394807835497379373081256884605273078004048431787944111008240201615851582220239247585799174366217720616442525969615773612296025142458328020745957844762545881399351060806880100459710014054285120664215062542449254571642236865780017005174621669327063437076561332862198261657943785785594599185820384390524465056845079735092953970988074335684555103244473788541927288015157816067342227932831632324487768278094185420930941731661428757917558971604629386860997090283959126031469046273511202596554442939621033914544152800108183310239968303005910399917928282964858370353156432282394016495415871678247648376940587705656190415347957533104114377285064185124297922719549564191148828693317218345449639577089319269735929055866661024385359744562379306167518718222562026897148647977850388076575312721728762253358889029724660351211151962400320224358193237777491513395053521373629414771693903813012089696171637126356090759117994263413191014643130345870462256266402314000038852598022919423339734583297395554062619125640669844682254133553448221796332732768040280098613520955188450780729897243894940805639060847507889326050147032340732329456823314799432464393279134308514579123605373199702928286686730520843058251879659980342639577554108272514244330949228055951669372616227059258749216536822147329938995264524019063093430019343517073350930399543766944642848593621275834254660306219803484004573699583201742204710379178453281819574817147764500738243856935088371572169200891796275572495598464898982628750435885651796073711184985968256207094916265043909429891994024651728175055927159264034866526573798392336348101665794701957883785555658212005273651231170519214388402163740570170692812227511453007101793547289331401462892061194005345263870193933254600792598494410740809445648182714583042439369059837352665777915094561886843380673803322629857129148560497621961112998020510435814095685713726324881066326889380405136463494741469636970626991325040446693744159849166989776907522683556449711230371344409344346502572527502403421439015609838932848736826655542536370168409670688542524178477805845131577203171186171192593283765559823186294665459698395034147059314071161809201709966625210114486629716827391008364399346364941640158623906586312145588678857153844113734765475259285292673533760865298892189508494714458447109064983809402482834302528640306507348101537594185309206482006451933009543981893126489893114929851237073304374131523947946761820539988584136640457031904219307212428180551292349105768413768984929977776676385141849195709335501232841492014109954507302922925339574012474842351410350207229799733266694758873623828445798496029178656030665081749699350090013965762023303996922376745515299186476805917192328226057558818222427749003808361865711681977212658816814842332019402955424786278567980272225701571251336636345788000054601999824656462187434547697388177545768886224663568814550025585229696594633369894339266213833945331331504584355164078236904016569558180466222832164032597558749645241271388132469668237821020844378892254464302324051457668670647350882227707948065795694521797130016449007538737189153540788771963699068380217601797892348981934944413258908280104271934602713259527617674615942357460215346143361638514768007356872682060266472954777950505293829695389868672538432481324396079992143070321981408170301941169714532648432573327753332804508651873794145868568118198005535324400754790740208770789300248556821782357203463731023203645767183545198854779902601818199538389354974564513836574559037169356576262018184401141252177781017400512065879830905825195836188808325237247944652992980189689102432687478812001944188445791643585602146689676390844715053375579673296145618344873583359996190823094292860732479321844957263829169689215231238797359564005896641397291520635321957247471598265781423226751847224060268213151675193497306268075920336995553229626346847818643588803958740993060103793928466681875137381851807537715300960570960100635572705540009959922511833514044542186025933920647415043086986621350686806260194825781434183132484744146804596330924728381041007148135747771425750987498192830235120995910146714770434355247097973548190755117509670696615200378399582064664501566015758848286156422669129122971771606553470762309628560046158464505981051384636476713474316714634324730129120306029921428564511016793465607567230892277395270919297569070152136047822827060030625374533772555137329694373662737969395033012354316022434646701095055793956120336408956894390367931634020875640597880308959176938016311626965364332306401806175037052005849690108213568468119910151172682833799221009227110658876289364474683291336544404590325144196782953460848542508401931730695349842047582153391151970042976667558129933467587285160762659563296339472529863174746309762833819029615141345467506532611205969550535534786379204888818257759190008215096950012925127319913134752649505704959686863022755885855975004408818070580897729284342140857267851871035812013782906036790597463260127650274724595024924229502286686028029273823729420299702630871647349664567293971711020044115468043789862577575272508790515622856120042783518861263132164530929534182129852902526353654497644237258275714287786559277499603873719613172917687719180989513062583249167170822717577670244584722554497496591347907867551755581189985133599296717176806517312100422812706282943733343543770974949287295186249935992870264711928384848688643243158614453309528342584307401661360738647826183721743992403591652898660366648595168055679857536113682966662167340115593053823440156505500186724408869011800367205669344367752611564891735528372762975214594916030395523198055316948174128005189315805748313326603612124929928809706611160589668492135369789862040375160698917290670628082170023904257584384537838959010552472426369320780470917160440469368911871778629313501490712883302009658517123552233036862827766746622445090771311010401130389354397637285476322058145631801187800857270283683651122406261103723623619365282759554529506761251922646171154672792710387079531112217714959376519191093381338984598637302853255356629206865163682135897666089343233697471830646082766223506826109761680465800428854733112198580851374136011867187882073329868026157711511812251030291244919521112954389043631683103589689872172944427301257967036731755970619400224261972732666157154012973220337641962337174401574791345501943073561423331308191970065818772708546144193120850075078661545347850540325219675526186295953465633006777130861467963395617596623066787129454919531393639626568938337033377930844415540798519578639733822378623961959660258647407590464402239048506534252036055723223355513827366612559165272082044072564194652750082768234137455277585381709650934469856465444691279061304350812010073802689306040361495620631568934991391105475109202168898408640775455696667251583654751013661901654341612529152567964211517763244595466467656325812984797462572511642126095053613683334491305113868843259477858225148217252550848101253570984200213765372759485757660022975226619525132009942977275649878163581957594160219651838761794414706955055305917966254015824035260800171188555187455225321828143834510305311372429038609389777294440924708610370994505405037723694395204688364723487630165894256274518390408599824961435490543204459358329503866880192343634999247871676574319294639523970739282348141780641118938644148557312693946945272303917292547650813397093293861200101955533969097092917564309076834759985425836730514698800930796265219844307938845053724249395179506097735952373636554028375229110291778845537729518160183148204180143073933810751614485220401286188907333584961906349983533406021701985487503235672062386324649067795634105502114830357631124111227651340144285289917789247566273263187426405807260444736291234478994460801662657276104504152822970447694888852274484645127921363321701142296324392147455532927031768942150988833449256337814474053007159711168782936966144161602873436889703314639819058516822854681383049945053657962173725418364755267183166368747494194934650965794567285115956861909238628423583036953886541412626259899332365755643865772781675849743503533927920446162531309443534209619979918768390198336488166807548863304396578661371387493442783874227089799668715063396271387806217681871211316796220403269991702126011505628247620904398922497625193919728010322981970575176629690689272305292216993783155824361991098935143065931761306360166360487110774308981906295819616603751335103642107159590742406383416915941376479233091440087121799308403083114565365046277865558319473062493541857025712835937224384688658956111380172397325563956798463674237853993288079460303481917553080824037741415817971350802602704314167251191508036985048913783308367617511760767139846383487074177892110866745143862547325460696266470836198975461258480743382951574527880040450944331813079108363660593496392384487222837220956511374768985440217391610683368193839689247112103972573295699054360779831439109447172512707046959996033784069065623977258921918345181191230444654512142476881785472334355015411684982307281051326599951455651718987529301448997903188668516402939347611199542228804475764038389989688460386894258742575499467499794648101213369111390543898737665913472544688968571895683386491017272778208792891450939788626367267294371965590935276388441286293855374026561304687076363296875803394746490084013693315470361775331116683099592008255793500912543297916387820687350154002328155776713364166722684704284520676217277051358612391459412634756380072154822573752939902258975818939726501566386803104067597762277281637346388970853912866368738850424987667621078370450802640857354570930825094269876071753642982822738629955712086635180028130016830963900863777277708261828612524909875322194471250928923702446673125392747164791225563391407123363716598211645268364177215428643271556793796769188905500629476350838680144972150551334873961127211015263255418729010691599048221537559521297351311984575903939975777747505814183641701876054530326315848775706283723534598032335501163269714068356342994395439846031714347737678453623413615493152599304130752147685873966411282460206824430817540758525962838570729834445427654534986275256992354173152428813997311359491193552552371386573419812494843038459491836591010804409619980775777385855058559922432045595339161831815788462533207510916054760202625369658363363299275581275060796917898336302754195536510031070145540312232067960035514519364174512425089663977565964579964576256644396921728078852223020444794687836143712949455520986294241813289071396732889993848381376176122068488226105634072106480586567969877144977696928164908659338401858976887816090238367841588364757136625454720245239840118646981875575195609434017803797808778143521710397149480826413050652136810249463908411846112734634528956704849911966897921538917458336722991186455939291081551077471338711358844946910553007344715297175315831809129848746805368854753224659712956693355464481761248388374062402383377504980158859413177195380318970831859709267463178594408868951641980689126164353766085919073058454327514792097178270608302547852210829327262806110999536832569596419136881478933316422315171444970906722923765351956289408012656254056675004156151471157069156078678203686983130245819346651235482232857491908410580194007413027684097347910803037093306206378969588044010364752118469964765204351566166317858981671983826536079532689963578867889411404395401107880120809013355862268866417678481722752441435532372310972097748445553674756132491420282194949322718630104999164300220258752979401401991535415066336176846388724473558666756623042230451164862244919702022942973557829545436359567228828750552233404005547295435913372179155029079041399008793953570385206222173928765676528053785699354635320216093626350394123263178936393815188543428798593101886902911132991193091092949886401402374902712826266343818844148069690212771855097370781988988518241491257834500127602596044036692408894032589333078345757948616864364033853668255838524269811871448386453840786313495153769946674566561385584985467784034525161077961318199372730021204812532346184980546790831029882591584266849367278877709088396133283813181994826214182357332962208064543895674712621881839394126170830640904149319207559376996084269079073141166613658867289358455540914808855268897803688135656333049086573095429920037731607432219429977661090645052615120249303203417082700177156033779280964278325098196902466170008760389434820282391559046507732017070763704691914617270902586387067568905588094790291792102054650294536291192952937642368220932358168292227325837185786074306387781037874728724725827449409686346562532348019739211198922828255025957659269453771776861556974386061562727058624200665535988190700537689244314308846318596510575665641514079852261640545055367415049067018526484730077167206650762993977655843108726794600480249777680719928651269505062433102505293127322060531124084825813597015511571173761332345186605985500572094386511078433116220800213270170710952219350579435203983049874934213550760540265221885455298854274896140141069087568909641206769031649280975127682020442371389486049154013957331747374052413289744482808356824673075294001130026879493383902394225114520848742817898726280264494299890630281156619833443624678640776496013078397109436720473852253770493829535628761248121776573824268322462670433154509775073602964119056133782345791444149194383032356099866378895138354046336212039894060934960448589238004918437986023491190357454199656576459228047523793597999897810070839221974607526767269810145975969321701238504153241406555338823192655123598025320464517889388900457175966786292433468457854918942222547220222034441483137681710311533852197494886736397835125679417169012807400152614082549558085108788258316106175384705031022124564599572949580732765493080383209122588759886044714828324998308675508273959577202565858437311810820479235349943013466994707906425767655309657187198742852276685366395858287295718100404131652577190665448749064873221933096901760946740067152398705239229813714400821295598711164581967304722921222905984032633261062657628196015610422052811599582053985104831769974361383944515394610263713634878883852469510483782513096040072427984460549207075474960654821653125880518268815826811486134174089348108929092887628460034263729327420733987704106573181412442389762654400642443773838140030248666313634825144685752501175691465761844130949975496756445147623707025430749529688556156983755430019016103610017804014338124395398055171508727927349890362115568240436159234820098081070187964772619335328055009889386357349629867714825450851104420950928885030384572314058778554993571202147725237021806116731434076314323188875058459871531293819944234531497014637925281245352340682684414837660914961803279968535840871724557880784043668805313544492069432961265897773283976538095615565538131204527170393227300015586788553504454140353460896933853226336354875401163563983219340133677144359990273838759558863957813070754478184759235125741011259823620634645477398723302734794237603228280093684105508240686617581900015785523044968788250442490430708365585131539418956062579368297344892338583356102346646980480985500623170499639136232029443076945429078151233891118103428077667951691150519397498333390280893233113507549005338349824282195320774946861454738488638120783231678137673188018380414990610204189975541455860909140991631707009062989995707513247351772217807997951939643828710440914490228911822315917409758010204155356178325891006521976038380284438676388359082518696403337520953646601295446682729944764257791229745214939652868176261489210575325161223977628683135249442365648544915331359357753617938184980444660494646440172852612165154346393193814874041974161372053507666079417578611749941978883155133067601711801097091727096293606377854879024966175580523108712994445165902441316202373492738958525409146085685113158071938032211500587618349298234363146379927244788090529962188941680016095716362882820388646651350156081324832551524437424138771813909151569670783878714633382488261852831231149933773714384223645494242902990222035750573388028536408713989257663025646934626415582310231795955497805649822350386075265274000054427939237221989849038394149293587605035927836666362617444297774403376803967726236111972069901627610412728779721510882852229219707423513149603282179470312142921743929752542220514185789519429709589376867342043244155462442512382226513381396558844093641256202747007900008463545891599340292586762602574743739874460178188942612267462510318405064173065016472044569650095276167912667518970046931110734462447689484448267916540883610040176324619539046247096554379861401588813419877203270887767378667437944977726141284756537544658090033265106948332268610374499354785864464426110035745096664495486824427298581511226731104669341153685101218081238359658288445761678370352687655269459688227066755869943300969250884125613460647615641336561693401401654360330969153897084682130373483375316275296971164222024980785889407149035757934114214026436151478501426714646808406020296488593746036129200897689048274189584669794101153398492938177235901928664638695414565647421029055247795387748330703308261824413836230396299977456750481966331037578455105301940413417183685658945781746379665754234083252876899316964742006691907874615133762196732006423523195024826797619741439738890136924725329574256171532903559812276354687540012006778628800266565627497376864347360350499716548906561603305419505658710342153934863964343907140530113001644419545483696781553515070296035448688571142285722159363852706507662540375679545967471796288353748389922780584758200305586464410301690287279070755615101938493355055192173084388666083068988737584842497616205594938208062214052007025991308683678905209169983481077170815647910800018693972590255767433697418144754324095899464944966258372609704351825359747765466525045892841339327490028554060154451182805859915005237116813200384565568698162562056350480526614250144743937454306206434676867691062318908724774001973885272484450904087911490133365661950604951753480799050180760947667892320082864251972645277798425497362369379181278721613902675025520432421786027752022358541671195736422276652052239062304374117430542105500185738543881088203962055341932056418030176085283765784229377330338959187870896017980679917341265161476946014078060345367950364232349921075003627099381823584701994702905949352285057584568993789051633046989090683250608173714433811040817823410896440062412991955649309655001906093985325484035825294030226377621063719755795599861889709220227991336424457134756071511687809133551735316098065837394960561374628377110085661932473403154198538454614299253077067739805250592276408455446247485320920258362170032966587178768685367963650439603300437936192278301130187666292268352024122390792767712732310659881248414016522505540259365493463203327906294214344039886473831046998193159854329753296761603827447500614436762096983679669054571028488345190786236333389542660621645999771943561295785753949864033280975866024779146623408994878546168078402842500686646456453123805048943515360290439149608294803867196387854699544129242410563850540233814365437591602386242018055519955795366176349563334204769237284571588370052532010481531733385733911191438003832033236070762040356485211388805654252870467868031957169111550167563660392007004043915659128390493614980945689023006913488981183325310844617431393201712382458988216388064962240041140632275333696882662106205939308518360007834601975256622567731539184068960818280696220627956369195684975391654112610687364184732954678066021602991943464088289340864914278479610280161081490065900599514088759533999292859818138365397668087001087825952333452016183588878467421050260019782664477752452972991609381764827512158679803227250851719195626969614437101904066347172303094114787195464135400443900726158933407647141782222354304673753468406448770401485122091870030867927705439005933976192810219668323119313209928268012393786102442491518255023230992696821847571198322911728644723518311121440280349103694444636599793867837822764350115805245667301938963844387628026710455587184619984953135244406220124421962639148807175315468099409705455304536100435852036579931830656808930377371522569778169344356405565187580558762373445369355663785336132147489571607295162917550465857321196947211712989014625176117624347658956942850156492859043672551920441589025598952943875393958511480779446049517744980955159498011284470684579621265191760356427394443473468013490931557132817326731769868240184362936721812778978823618520021742180275641541128840898183730205050686295818828496816219407787100252533783066677341139730341425742608696600358462954013520341100283439168152646919687149613481123369214665642147984052069887621217192864538543729755550352724079914278931227687116386904352600903846916462089716514693156610254647390978588969904810335012044134230684582698106878640732886561725467621400456517847058768339226669434064731820062902113087718402299089632479088693158264495178564366258415519070449370888874596235540718724892445009725190519951618509276020243340972724899398882662139149997782337517317215637878330877340214531827806729469149417495953028925931508586674147553574119930234928307366684693314238797975385946621456533524936424080282441622859394780400898182436226831740088746766478717517045646417047438091182193842420260830833736169845208884529154959208579666054468481143834618965704254378576394898726837610372720091284560422338067006234738048482473287982337333728943273237880825257392899418596093411167600065985047959754459021339239410175126280399610293240711776455216478779167243527465910453087688136477718757721436779664192781071612850335619468344758061536575991303779688376366667512973971886870714324773938384914204329894193057123517288361377958070678189279663750325277911811771054972201437778666167637537403214061080059203666584425874989434332355726453962360881875981779837946005563115439218953322266617870761282321572547535994379918047753376715129104211083852781630340562542537673602154272906295067457401039241192493964664110943748601540532085416186556818184789243025936390603302985440152397239469746842437037185752018095099517149406400993405407390259527884158934085281569939430096953908959341868571463490825518864488018860630459570477091773898948304893612061187779526239228115641018408896768264139782453973794789231899209832257501055835875275735302120556625677264970971800072392158932909726519219257866725189529193632759187344651588146926451070374747107886157373107218354687631422759026764335656712092489586056492829654678700203075679307492035582701351639760956278663427705463029154305157005004103444458160497391782967875044645315932860511888414037328502571443663573831759565102007032241467230846687365026171829152705937553354416188903802985594645270043578510522479615305276055817766400769644746523279080872226711940383949023625008823960408237874918639083334730231775273839102046332387293182859500230929999155428752557820365836262564723689217821181158698426155209929146111031954043547241803001271626306749521560316877727644225889517370698898935620316980990162078464304097005617654849736181228273299351506951334824281830855494140938815264405618050627629730366089802264868643837885469400685568670826511213888343193560767616534851096470679376333801573484605995211482807117920345854144059755406384537331410245272700234939201144106381964755149148855592824916979852675618158645093697602650638608926548193603909886719771664159752526973469935996403054995297519783880090874125505977654252653526292271774215471356938315191836036738689774183750291625917694379090166746899399904866958760522357679122662832249413855121446701754975981906905025369167418796975185754877152441200636139174753920204889412378647821829229036550865188401382207332139993890252497230736063886469070011630430258906876048917774102304234183811321881230686703746001482007874895089233836645636032976667216974433714357008895414902942074517029588260305471305199190339100931331264915071075756113528488359218770236079474062561225924959685027560075979792366482825595784280881554394251700597600032190013404001314926800057640850092416768157062919859929483707473805404789193061880432238079439632978111108568404227178169340530775935978554917662837459286948214747535037959180782514503094635431042266188656394026657125071496331320377386563483968799304450004097785282103374512756515470084747290047446078086223946779328558596626063616838101486686507898571597040188517659717129776725345848394260043359378971782365400122503664401275604865888110869677591828725460575667787722744152405229311647819287732271565707195777410865919499965273434847735022696682110545095832997466784610881700900448955312473271507070444975614256002951482268059971729755079541524202450082076899945733057937833228511816660085584421926895515101501701713885562354863524030287388380730281226559295130735725486967584295257698082526579467305679033581286038048769381134617283706683320152890228555138749466703438311771770512836654798365509920831335312019909020614871875135511725855506162155724328267343383654957568285725868423898545043297285187281741541445760023988921008075432487811377857850135174972159489143045356500148610821905906476263450418598684036456684863198081796809617901329994757569699085514432117815508097007931778249289405652744382994125112992832829197623342749174725147329807897195666670948065777554822049670078060271046761334044961432993276833522861821780413196185015118143381042863879022001098447301454245556992162724133725448856782227465747240358285933087966636528658086888863153079088476693282489267803978126070632511909364606484976486260442710682182035857080838020693718652408818720124970109409178871004819388518135950410840824404259496786060745201436120493418573563950094461895650660840958178281575568323702910681748835593300971485780991170603220173138325672066589600906711143276171791962293031009906472379695320102707219135488201172389871836514318440705109610869340553388505547606243213338091968627865474682485140763769570676121827494358315515708011487591727528181565955429047211836583577423813325706036110600949753842113924907218527423479455177546399329033127605939734667493794645419502977438697234046234127053254746764537652813865717352678519376905447851875921494363381217275227340153678847149889851425105742502937267422058491541995903818647545566876575135441894731683623375724512971676640032919424530491538288489593572723085626239655860879872088495095173492370833620401953179501818110931147604680029175840010651577690153366382388249722086232371265909894889988392431618630018545643473898493253800829596478911395894719897672088038483682058534038488994942813456760111246608125340481325257963646750715310144949519901599653037936936643719957240895986105791558203298508942322693214834627460969431528900752690881256679299021204964125439245859417680900856324376504284309355436254778983909844750883748869436061896288634933764925448220362322706150301949570816717908554413523638287174407478718919730937366562594954557784280170320911265561086737646067531654233383673669839397277140492513227015045620819804418843603005552211887884334159636463552098930001291573546503616918862068826420600316818985517323908150331464219853675275252511030024243149701073561536406817534711368675201130502662610988073324060339173889388759839905538926829081767448472220364414673579245561645327073654829967231377600359693578684170693876520898766650176836799804384245359053933049406225015123683587107875589238006690075235066382828874031405249511837036088191816736684831838053065796995337825271684744484033105684923922332681041014030959446824196162578508618515273975163243395601753949515028108048418179964656154129448851450435965109596438141407072882307626634609402956080411587254368730275094069499001682385058153476270491014955295575230072213061245803065549901016096578703983686871281709125679762207357702092534225684315344521502337822597985164377303404856366726118310179110646702796725745683512440111544621212541420877852126576382092610728409721935193828380145939720649336617508024508002545616809346488902134244130702294734906294987776740771083843370057344980530414060491218210037676859431079698713509799763338550238621860199385310064434759486514940420563471707727951462355075016641163386059619536692864420932247697589825722213038245065361956100977712965200995379852427557944762757838475370696581515210176353736381107681285296975993264017850294826954145691817147345651413305064337233171458659011405970355618414218385962218571905053658964574035147322172407152517519863676685024726326424105548466889665659919001611426537377009584070668370223380675302547368087242204281167622054450483273056227110321954675073325656849648062018965001995126577454697404806581410536065441452599784329712090584969173595794745862261990264409250349695042624697847126358763961597674287075897595436115197718837841069211234918043154727211889190151138584947520987608737116996141351877106139189938503662904342796834291747157163660788213368423160044918307907807127585386781489466720148158029999492117032306941956487755142654026135677470594039567247888650314015873918480505466338530310309186433129171029969210226605177207043645693752402060331588750742647217911582629151823168478597181847740866652605693586748520466165246061278927352554034851331518303437218562389188727026919439389167942958638995462105562315285273986231145943317449379431642673101040978437574402195839064327417857329644709242919662714043101687074062623921447140397210011518629699344896426961415244970141828639477747192762529594929127610512419266857334500110448925702806479092771321601999828287138910554404005948023889611867973959452470958869635120335857385909841624014480834893695529148199804021901534645055405281300654879953191240250820446438197357169253631708794983886058189983041575038779217560500705074921798302664165745021723402587066401757879651400791466173678137390774041936092730509384507599049204024870181812618958581380258831497841293413712802869324150208161819012851798644382216442109455363329596414986912770496666497879372927115181400501079002063596647497263084987993420740877047780069331293147965172503382259391710439666336738097591630736097696560664173328351723065093254652011270821931454534744956744298288640843897208465181060499032958248116371749194454942511164852138843916074160588401050556292762554048690822203734834857247309906983129816820707831835956732746318548413204841046112495564065676071832303622203370302795099404390823807962068405396315111487005723730219788759401956199805859235350318942857532643271780400436320650217707529977129449472047168839261522309990037992661230862947957888192634218883702731366282624116521542440717132618190535377615887834671768560086227037158119504942055029301101313730664590599881464317322693523723703117506198156993250057713547986903920006412314741534724427370273386584650999532441198920337631553284535038896208552297236512880534503621310814007260389201960809076923622154010277824929168277416526592526985367178759925893063530428333663472278853559797503142444049038983106429372553798596391839273615833148433268351847937330836607142604671221438613880915157270279614312163439160598333453804389071866715750741621360460320239860580000514657361427307007469732942868616813952113448741694869043293713132553871009948268153179077389845992521181136874352506725720485415374878595358732283252757551332444403265071965956193638604977090909968670698654910959765354610512127790688500493663812668111772865850851439235571006314237783972789656648010105643542642557607627854901671749407741734042629213965832631966068991240666851959568020853046685813675056960714211355331347914692772480176210596079463839984085991557387388291528653243279691819594259668778172113576180765277169689316530445195787972761263094280504517961409365043120409818011784739114062257550151685934122014274746531339561265754919722328777763897902632272451021021069651227181605842477377937016967643425684813125284494836370749722258724675532914945012168944866352823528076775991672006525229607386568911360684307186893045478609560798335705728261497633256064208453400501513568451244425966286899438304153334240007869178037995326746251508722910174902333631768796425759005281014186873425619366523701367231209064250727941294460896685138719124857091165574859816555977844174015865181744030254414382383115761874767690642948779823622692150222806461509788807428259020594743735346620390608705048364577121283378215704432235276015312962819789457902762019053471564851630023077232579416377925364016865353174627572278880902912307700579696667371469477407934201112015646066550670910966092794701415894591412448774286679690717304807182286442086981700981962107334266959514921704397613236024000569340513102663434987921088199782290728104317403715927240464319041838364901727320812592969201974999872075974570521774592494317664608695006694788195719500169279213102965166334934235136715718720539109801615336613135121495657152123876243679442208360192049698984018767166631630042204198203158869847605890283711348932610502972647517245804499755737539145129528575638884444803967828863611764928653550393559084640792362807236865534007861554154838394574255282668008914069723633490681973642859174551836032195717989224863920983338935495860199635640354694362141901593261344090295064794315855621747654609092203626523630564394924007670492561095046231909368324047893598039981988288839291972566284206909748232033870085228654002139482197785122559784320292481708921150283684826503281845872075987227580577726459109574682536336620975631713215943202128146582419440888402830938772525525328501854041211471736381871114453637966958369896979674705502305175773022256476235305246530384105778263744391165157136934356941126936984852204247247757681093803879742011384387614888284648280367143215611223977698858555894138163884359085276059264564072926288835764006606271608312178351428047525450126860090508133315947444197038955848329622964385015687656481078758508893534541979723963906260839668301109367636032354999628792088982917514275523350026125953601522230290237382082231985313856814348299067346334093935713519521154837102969629942029957943907077121548039001599740485018531899011498213539329196140765559172225628661378413742576605803186343869141514984827642402278716725858567999787181981126952900060068356923576277521288616182716997603923767583648720136284478586574800147611538082374384388484635581667398007177759472392131923965467208231958285456010849366371886498311532061470291167889775998385084287691649309825296293326134991809590775154791668391856713160846383869603721635922707331060126818719508149332989948629404033967662413323339380546435166502423516822070002793082017086952676995869104471409477424223243293647283343559240028924245311377397522533079052456735110246298238810067580179690478371983061544615254758496018520955287540250602572504908706560343455253522594350781531920478527453759329457317565691977101659878130312769989211394976722392297790022793619191794717344800220916901446288170749628647674621261356806034231932828012872978760277201258915729093326939984076420438433117152105198061995809507177348514993866896857196443924292085642040724126251600324696707160344600940349589975110547300303411770875475003737686077348586679896482126962926285791502994160757349501007591168684959680066994851833882337095868503760420506018250360126344371926727507972120991421408462571395125684537666131533211172699846694738161877277502573137705264521621960175347189012843920848725645280472001257885169071820652386153698361560180567425579776020920995784955250829543636115271037229960822160740864641332602294878023543731278353637661282950559825287298970163821723048147663814399194513745454576888534819504405297606798612695631439896570402376204922669510504279368315531672655399393413568687797008513793186307338851871090452715329667397499657571808441394012975624314669585577031427798675103312775225133756831542763653119382152195761291275283730139521522109012909575456115606633675814718150006834140837718475188659220538775509303449037952802226847935213505290476068713987240303037269200365927309246759943188198331757020246640368656494973449806563274419512979730665915560055698939660913373216994745614641525758225798068246895734874704895762255673458262926132450968010395970685434002829608316540118759680212657935764270551618898884294988020633432532994030714464929052191315430902912180027903963930990670435736023686009258649801959609260552662158198360720037073123099306132301618067952669045190036733985818089639504108821094073088726681889439221522142566168883335570073165696332203508581482800610865825118174555012138309155540877950819901225064901697293424459606259523338432032285844015558090802849538883883863333375657174520966447364361988785887386227213639082403527950637306317152472731284978505903975987709710763646173434516487660697642634261867473587955561151871379251689471801182410508110397987761450284730489588613675695421966960725139472132825888826005186932651248787489663408104782704033647157185917452104790477538015508310256489345953344646953780495687897805190640249954919487473353323622052596119956390455715835750733458852467290481939123910056005745249292126538852730527972425761838059532218286686329876127979637650699897448817545759456904055671617948469425193496433917291900588560767384555557043130979728738029274936702241062058012808054053936079195676262920644127963651832459186696125926636483753745619492273751366878516709715884477107763137754414035346578706043829357333669190641544009648974805054921392678117956358654870552019509172199731991432997058644455960514831577740050179762149696918842437786933036188443954094113884761003612060356590219619459779125740090848535205374782260237484198238574757624746103287296273102629171011904234433015926514427543626290701061559428511260603224444350950082310922380651788620795099837287321822216076966165647813497068613664516092222117006362483230174067445629541523666276546139639120813654987064273819491512949289719412862979209319686502273423835413540512944115422748585180370920445436654295933187177851882489709176578567970718879361523757971419068432667600270446475247457277461967651027177671272346162099572215036911525177456160372716156217282059853301322234507970214098079067724850552773566612986810099912268561392459545670903193154527447521020942946722806028777334155445273648268461550286785416383430807943538468678030566523823541864536287631079659707522114499010287839672333704513110441570457529495069401295127586782612431579384423961538529096785688266184220334591363522218451451651338620279472563818360085448748476887480591351367625136650760173817596344209185375513583725180912706924628507451110576586137864656843533686184326828227801313376498740574350794785994370079026958814593226409704312996158799997670598052127342873072420618634217909780655435785869855942584998873119759847784815985234795217777957121780146796624515392325731385092198391038309924323313394888615681603935615357866063275065537246176611105435003262703159522158758479241322672022907456777890951695944399662157226335179989314366087709578690647919256455152054806532067049183066476736521255562953946716374034990512758075014363984512728352115780232365211727383246856139277913516449733586827867062946088167195643316872334706525880395556536426030573428750067500265834479382045474773119578225818921474573557722795534322399367231416852150845542389978188161513713397733459217514571837406231798013791251319979619289602284649514064107476194565289602778425704819595748164483719333577714553297428982086129303469664520465647528161396263600018035828210551726269981421398501174893712491226785419433427437624579547366743294342342341040070045458072642191804965992160483378149875082845689990422734191734785962325928719002721541893785996520193698034607464035512062675685321817066997313545220018719091840796286685664791961069569669498584254909619550543189074794149998251742781039803552170308416839136472598234679247246810832780668509842240921470842700153693007517297396879083444533061435521970301508887527134355211973410516563996251709081485928773283521304111653579701095192737878603702955851822577302514153926066053811877369574753513871343828032126023947973690925843860289984858662697023471385827076247499345811504589882422761422107546931022939054904511084354310557320484547091837630368686606482763357483722980635527224226228377077578567427891817748735497014142877929708389764423115710106986214791761362678846702896766355616658234436322091187521279679539479495006557750923364497282245547358954905061682245403016167354277986086240119700545616379627451502550468566159390221726743556690927460413111298656441554243327221703461598098767163562073417052162406650920137027797338359229480871058202455304607039334687173247746120274750989783726258820313670185623640228044748976931766847283193173577257772985919093994678765365020467866641791162993635688177597133601494589754903344478313732631330500306396707709033551048312523061508890227503650530042169362438463105292051125243129102268896917564691106087712505802028127504457400419457773247306865869742771415028752327904693608997690573344967277195299495314609142233091944256485769356394079083982822296596850451389315490908207823085713375985489548683389185578131245729623961814297070911714946744307170171168958076131992827439110459711594797437472029690131243937496673590220359975548322090930822064764036012837602777434910814139390763416080046725450013020595626854485853327523472180673291304853289311744740549268758433602109870343910217545011039686331366147452300211839270820053708734438038235463740591677483367776844420045806818418347475812353846411245958379840244548950167525843365316212835313543417431591260195068261133185014115278481321466201196344736477690547201667652206120336375706628286275859864460427194487580387088133656355755854618818295642757986337215792518629297055648808190133581004734946642538629022886001300459502395311628750706851160816617855500204754715414858467714929762536446214416026942058951190663962795462925180942277323199195392102199103587755915442363411647701668117593577409841935423792417264385211807266460758836677293122188856289295033547777318240018522336901794099627429342065537015978039647875050839455257070195139867506262049520771942061696888775385411650927425460766177396240636480324509966024557551005494192417458195057594264576689705590057823628198249489560880250964007301647157160720519215915265627377432177719452997669047650946653444850727115814885115326205532559042457460019099803435084558565698052778349951848014631625108545106742222316768752998764607391951258881276721183872055011107811358620099982184308162147457762635119216838547429986569926901640136315207307662313194589515050663846572941223791738408945865301250920825914344758622129103934546830672444234099505821538122248719267168743282104057302640299152621618161826497312528767289536687967108561077091867266966356277482437092184310904530710712054497911498820857050088147262043711805537291544268013791894545888769064324170325546244787337456937660963600572453728315081593308537744276068553473061105090427224060795128735206046828229915228802197728866028111806192994444934459069256764420507967215548449555501088153203164099432115207603102089122029306920816412739169001777209944162312518239689476841419787562898735669698149376976135257095864075373027992962227667212875706042391317522321630671786435342219015320316632676124969955597092682380999992583884033643910836742667071886338540783481737836812687574148419758006320400367901261511657191574864904672661086816847871176361015009526130368262547907769970561419950462619525946546770051894028317866414630458434797228866454897269719505936547713033250627070118503233367481382610788128230718405603417326547925761995325257695322272952712752337713932686166668763233938555469952976658222200710631609165830633667165070449001197000522618399275699333485984841164827448251881207184981238560315471303803761385710930225361530141675755553037136301067055943045462116579383345029855331157339035475072668774723138334129798702005030362154770915935773907957655588632354537547014938895093557918249076074420824094123164439908164430453694627055414587369516967123932058929947451009813580061850431642027304904416547970198195899466602918249516825878774183950927270131192321528789431444715408849502479584300887755829827767395520208466085438039193438914104581726578563750349055901020120808920806916273873344593463880190910499729150889616258897207917763040215671090181588010722532106612378512141646641702595217061719085911673100472456437373747246281629733180812244411465942685756331166587781706306636346142598459386591961863030302035039132413123625378397070774256412271326314204368010500389113105654273479431220486182176943245898234006177353389478505744227422942543822990189900799123265700761044656555563314523859005656695954870226152746678067380496478243572856836150780562344840696060550213262171614876896232501104956510886606180897799224987632767462082052274346288457417278043460964334999988836397907509669335992125871867840726180991160172321667735290934743652728993182058519876542134369837954859974014787299305643765396400683048414661379076936221067228887072162780444214221421146890233468252542074895199204089047163227929953095599477146740154947652197896268573973497318813000395329634998850385084756663614870595411968430180243435908230921125645012890631858611304020630248204842103287885850148080035914141255788633554370898228727444955522470442803999691576181952955963241915888578855342802364814057540420583438280069804267679594189344886378801993720500297130713653705625201476506248114614138542960764601772336602187362026542557024920546293784476259636052496297802746223522412858835679605117340714635222095573188872908590146098542002522720087619054265603424658084722157258032854926892288675375112515317741938567432871477938360624037492284290786516110161833473115814528201610571731197090569444346872660477455322213680814282338356614551840258463249380992932780543831159900143373790248500391434666760287272241001518160492174411149268145883419353453285748701259978148656494814470012650598886580643670542698789641637516268024113610302915006234770357175707831906066798679452957664359984548211630542873578649304710365329634212010088634664425859256648191251270350000196011601397950074834497881848887906517365644469381951370415302316188996698195847908966218892441667817834180040442940811286647400260503011258610399839527917175512001450294208644967274750131050797153343806290876503751241305074426140006120691323965543185344970327656353641860766477238567774623145410633665202548671579866931464998097757505880641646943382751381744079129094798165720299336300778083196326054832803632760618261342895374335339860230343052658733245211656547469748268903279059299067834268450433873277796587705913056590152469851344372335255349706365291372899430097527297908249004455944839324108163226351102753071591826055728265922873383071729186539152916087072998197657457328386550775496907485211044570578255978364829788023526117058372918994814117631894164866140593755914327322323214443155223979654512803678259555184883518405971575267945259609776459175614037510088362810264527383571104049578386102792499783781208715027537782629896799941543174145121222450315956118656515591720582180143560631631463964881305488238403496818517643878109579768098189572914058459980241219970723172142399663528088646115133316801141761294955162604433754743205430888533636901234879390203792536883975063470743999628612047467592808860967063613225613461081197113477163330363365103344928241504192317474254034031832570135345693116107887817089533791579774620346709450135418458711090524959033853989382470204131781053042855063288426053676224227097547237303518000714962825276605347702705222019455386251219435616973580516306957245511470436102754437802400680163972320075003656558808379343187959241039283695109875190112324223734091674209033706596372104490615869164393376971826679970988207694544858341927432368524141058146789511940081022424232489546928348345317458924114227865972214477433889673799852752545995126461349928091269777749036665426111422992846558564381662863599685473289397075285172692811404730166012309582802438652095067512231526315784873973457436859494670158270640001401350266507661529152156679205072984507576764635565424735040183016307893599229110634805826010340754247274745280803145509773760353288452607871158362807259202930301562846249168268539455235318960817180606518593261590538402939909258008367952526716727974441836089389492095010767228178002550395671303427116413839434338070102680836317732610425424746802178649656173408157925083404801184254448034831399755304716631288694288342531861844500868145812851933023012293391597855619566027169950848901815841488559179981629576789721777379531803900272612545479333982221458258736285031935362032962856602893129290929744661217618576409723158127062298375653598572041191740871220045697138432770617222311696168250228380631713330337204944707070402915844307124518419177757198127795733912242392917091211171428504290452790710057991065555053672711545081136305423756263651479331336383151113874688646400156082960043838590502287289718211035265743430855279360113101579881097558872615319150320963855100037120013319838639230531063188709875851309267895508182040258672224967238609318609728109205979410487831772465863659810314678062187267465462789054722921218443673695314658369614320959942868329068270066710124665623994200477183181195320710203559817273619693929769566897227570655312725792176857353301072209010092880663186121532332108664402152509078453350678319303897705318278582466994993838467341282725353359175689209676452310074847268631909635518189028026289009987546359151703792945691761733009658456440335775484246191736358566300476509234326459529654223363390876790648287634591578785684260148049248832559914444764882439759536668577460618724470453604318693797437460200676876537140060454475590640478292662386631315989654034344796914521818902804247823146759342088636376599556345067599314035135871010408341534050779329069162623676655214040494274480852409967950544725023298483719436164191637903591612358748156137096066231788628361006440619808028777285767181259869558045589853803452337131520299297248481517100953663362093816306046844182924583018955418921798885924190715015250642004620073452825857845678099988051429325057209213927895532621149731120982230827671123419281982859736119756618089371936444846890319116218213363679642206093880868885026896887415854969603147959177609776889885348979597086384178361566905673860288359275645620781152793727499527545868034955535560467045367207901584825292138785367868881681895360411136789768285480552744087372058504551813301717136321027473719831409658013199321412896365393315159333504399906592204078894725928054323901669102064859366790484842460825026012093868156204876223516031499972859205861587098461686843362892932756534664582039552529040001459338375856102318027745949957579041623623159854182833975014592071062402267797704685419537914890232739708897580956615837353765953156755235858370364374087998579635425919268741742785613322019685477130135112104102981060672706330918551345556478594629850951445571575658395515730003307684887557620373165709598723176985498636476120443280648208994751837407679585699498656677867679507961145535278299790516443117584306382170534622330816426794298901629999074481360915067662023969511433881021116255644419361225576916533965826950253277346997201235154401544684775013905827730996098779188295668891318195185287046600492657534296002802035701627797940649304803799507238545959318207820528114869588469877490365186117820403487136926108479067837253427574522500558117538048093764174721459063605898442294594595215102439740654948318393018699926722954248869278989963319455735405912679398770399716189055879085547853524669271862483495332587032006928567894289269125741083592101777747421503048552048292517622615630217824492991292348929334640003940651005606983229626779333403197957231666391325655353783742949021885763294950045524733856283527446980695534860223904461134178994739392647380739588123493205483082160038896333885810888053842649967828119560421170624705096988565252437723827547172707918740161561307956666837380464309268637577928651968499876394778265258227828833446742764159498584463068028675017316373156201541497706433896120580192588975783249122088799268529951982367954095513541261798434591224677294527157654965792754931231191415395129440071472464949337495953521173649654841368655434379965826946093945267845974476799207903108977182331951918097645497525663422111329586337422202061704093452576740917565335342906884836879778539354767136397726997839894720967850348397026632088483484728576444648576243862828553698862627569574513224101846655893822537597562573306635954970879772090250060614769970096618587478290967821786380347521327247085842125077135645014984626823671811151147036243831726412329365585151640472673678332176205102363464290049843465499899149391721883306406816612704823938747145053599113650858137695795830117973283265226076937704234713201274065227222321770389502425573320535299815916547239528153903067477742080997016263861387321982123062380579407317477690791735305988772077958638803290150580135156730490466604255618138779149468206959540868711191974780019682005111585238732170579102076189872303520678970361415766048438163307964422047392485798412719213971627249137108065375321072956479260491028218044769367607566575485994747148549459176811031755838752134914598796647628662498144117042746288806911119402619709321772154240555581557951369361616436201248299857361322852440871394679851889887591369768185572634085063478906652067097464750172488839773685621849284673934085794945399549109662513108543602563551838475256265104079150594153715630430585459820974647839125034589022091312415130904798827715951050334091104773876571189346544772655579174101897798061617143353351437983837305415038502972153213701703689491596579882508369169579617916785387933677334730527442305762032166672013370435055815098385360398235995554916199844427496088675303842218101118607512574984556268987043637891915577666036441167894636657986433473694735616911377718278338547274586496108046224618700969703395211601742968303814462333625648309860313693703325814446370799053050621602849670943005837665133657683431280696720963652580966514710406349949397457380148180549191696036207139486327907717631330226521235958922374888809461543323061029148906414022268461577342278578156819437877339482325430933129510876150402836863542693633685604610782588873561112807194456866264434287699646661354703034909820488361780055647148634001759792136196368940041584029101508564080004030144418750928687640806454752808111577920703393663737559005258247818782091882661873479148956478806766595057334195245193589315314560844184747407326465438332791098735490201353070562823611816453529724239451494711291272305526661340812898669300752705082138139632116165454081897660878105745595206192378932821949687775368650791555341607136895667505549433090876913447306887493824032856020845669867043411018742506404461481469538532284424313497590732525982023920382600437503409440042431333562145655045412086845207060966800757510923858006830715213509109957850608076909194077692067898606109886506063760744972998983960510875338105477856607504570538540007055120400243102859007000000121989761724913244219939338420675668353330492569584160283244263167737487550752006523458793568941892604458075894539317994019327076896176940196200141382601516780255238870474397248460643357106901501390240408497527875424739613028422240844526409369233240524194722157129324487971809988270950787654483947490400051128901090104046528555337490993363352669608359933467255141391166879670131204187560179528799859560717396947308601983780473824018438807469351177057340789183666893822906829479749733853927531843670822751156797881780122317297790335988511025608239495701519434035068104010344797810288506195291235001914097314080258577058883165795741902560804856443601191175914851307041361375376594721816073943082443529489146600825832393356371492518183488129101363284097915187832214753920030119461813081691675306137008032724077633606111744230542848220952432815304052214008551716876597220078745421549384206260257211294521044780510997642708767892455670749303450482878942726328207424226488767953907527572099654273261323764826657830019844418611383942325172712243751438709886148337839370157082267306259033237884062852043062024559552565036229658306293690000930559604479828283723901113060653473264412938179712641606170666970507568967360337755010281353021834550741519838385838820053603369469005600505623310321819218381826533334826751984557758509072295272272125329176720760448300936874047197402157166980808160449288193035984249959034795884384542884730824388038984037851750014564909573555082524509257991065385635664425334594401588458493005109890361957481147105399135376576301625148302168909312507440737537880398464979138086855435129496894134077373225453339697468183753584865478937052303679443712195205821215566790760620593104548584083061046401070145434266625536122673809508961420794044981992932380954802111930035832251011854186395262656029423557481396992001363128544703424086560989945868305004756948459268444463290329623512815684759057731949836030681582354980505511595170121630165356008972344593822880150060399331896761179786897976857583791463054818705838308374014008913496285154903414849575930423588417370358079074795571294433280906818955050516227384952425892955969558307458241643489970634328798596101263954574327833357442896985561916005704003069232378212205310284949341137822773199739599568501529397561592208387554758146937111777551947831923123563529017144259023016297468738624797691831817143559853731384683338320828274640752601388800986744044736436393359125610351539539691030041553511833466830824399690223887459462773502141813647584209453058627361156121845669377881816680806790960108498546319899423471276070539836838090875189704960393305343257143333268055113919398694382828542812285505444025582781164775370115827117403536696481074364364196495286807010413646093422122841207797403537652258054558816795336830471777604012957458245974225565268890918819312848856263876456047103555485207381988826849692082817108043138611273632421414381692267948249352271846497342546662207591398080570674300745752629073934387726845004959432755940766665256827552317437051479740767222239690298235517584326712001073270229523126367764574980093333499345149641113846832352485448240412128929540551597297633701019904064307986754927006563027581524898460706111061090414413896874589961081673765868285111679557343655228853860088772101792463618412981803277280971135403934239317922508611769559223489914523296517083984925885821138480429148847112749203732387315275288104774924117650012841687019650759509438115939604396434320183179147315327641659653219533302450275462756897521236622275118910848484437258769668079482212779780957360432852447672959516441706350247694499244746299394889646402167043586172292839733927010230207265999863192012378577688716765487937990902643633027048815456093971716596319978279783107206086341287178301101796952181140579167754641333088526274854138974434432890709153108674103556364530464275511181814463300008349189383216985506674783441701569438491697794959417891797197507920056792522606856046943525608874325223414172783071395568187032260666541147387899590060416309540436603084502533627264724937807762829529230884907517707223014088377089823506540578507943175408040001450751369759404367295466685119192952169277443152030709294557096680172135635897199972915942645772402528144764459897718352066747583716825699209054092117807721549444035548136513709671053307676758087274285292376539834961376859940854419711096293277681588287737250283874317787745242438284888736846926242656850483443707919940850425543235500353942748729032961143346036176825195362547721189764193468485301841188518981494533019751850479017092881374852684298105283494958112824741089923206147912529679958821132420346165794018841311558240371848328275916708756292333488175446702783995746853268396178553465375387694396219396535740452856913123737622923773617752332773603499722843744496565601764024371811105543666698996362171234105743120606888594551104234950868653577377117868297032132584715738363574847597751191489835801886553080091923311204214206570564929013607161657005247568519065349217277697785505700647890632802372480356846914554280633202970819102030895609381245594482962830431878822446127695958270703909883985037641650023970304042952389907235411900338191173749164490084615837495382724491186822112319291476639145316382958940307137759019062982065929666626484107236067400442490318886951378891991242516420423942318847177214829862308351303174196462428601840021024398276968804258056144167969622740163746111352329471877290145936870556168483038925215788309543821672375758534262584845712190176767035587021769164519937346560592856992468356171163728486444205483187996483050012870528947807785259607932703431152648338417463229262087670889551639549509889375433069552618060772543019995507385656089961499362930375235630305293423506169884553054058332896823317563096773983340538334378301260710290090181806970488627405593081489501042319240907720841266945944196786146982369175156603180110749323660998969699514796931517322342046211185739365566242965135994809271020565469538899775579011922538775690886821273706550943272902947519787656356630018323592347555581311164526268023288995437030537258632166850168950157588682720326344393437706099285372072789001083404218268689449049155515200550207245447521268190771954054268347622907581311311431575244936103564595911707153065899632116336900361160310766053951534383501354252835694586695561695246442206120163428813404740559478766160840114883584645009550372667523333494094577730636153835234290000972976065373183116426527267331320347017380723683058169875606549902874342393096677531653342278811209266587802014539943937747360491862086355396590876900872652945838934406108856182847755274711232030924103592746493963828360996266264768400675973572396451834143245442391374938882686322426274612846978175486920806648450463166928354919101508645358207806611024515349087505866991942236734091496200074726632653775298037181742549965349127791420233231840869988708120280944707189740318844752906719691141829520717708416917631554698923427335798932497087736568401122134863094004903069920421933835966628054994158461958816071070069258531636703676961040893976865452946931129867750898202531818553631734369008924398557181627738102632498106768504844675441774118008959098455832723959137893717373399692484700787848817943025237124790839388193341741209462006381851749844716989289873212316332102746505183766684213979278258148264820075705672211054916369995956177431577475746921581403546235273648436618685630876066414675036211027256001259702896676531755713396064570020418752268881246887080529902001617581466050364665171631311033549757655613197763805757169896734915316749561992827288655932918422234499937701350456789060397053790549094713346949568778941308826299168359956825241112400673173382531744643236879117352360398885736410924485576950533462468189451129668960588029678288625346615109511685180523223451056436287895507361800038140126311472748117249031958953996023135855516484334891473292303193090845954648583853452140432485901324346936929705935615987430515294849653436048843117924092657363960343756923192811749627695775195340171468907265209937578871930711287026534912732705464153116954874068625984963455614272433086819224633966912489075506759134975068817120536738379346351203444709044914238531608115505151454562057672917649091616452213810100299108186897162649981003069587117135507549897019859127538254290797761222363960795414135751302966414386554508736611230855882194126682401514470973740401257044090227891791784270327203350438337126012893274664705545322362736899486420419620857080792069670003765370182927361035682138223725887700628496970818214528479669559467267475015063416045565492852405289683732318605849157074201229324451873536091348924656521221348176704442370001944804404518090944871797304060573240995245582246980712269735630803740754195144159025494752110618655962522476122865630218862726014874513957161281974033502205004396874800754391258437286339102447389653772843885701067918095180545330179680207115425111045177138660260342653192526875931599665176684392815257897067138920874206073705088891742243201758646821993534547661772034527956787416762203846027973334871524799110149307720001510332074013542465935060229984051879451068604961253175999580708486869862279617996062159886185616493199659548642977144453312112786082287899710345122585463704330618732010374914213936956475522447936658401105525426541010535707900337045682860039722735977518368402961043486195717537220838504769128493523260540812612072123614678994813066791612978318227083336356970229893424324987571112651925540392238030528273817339774452818755759304536044456582428795333923902638859199969631303962087522685611614475460646344425459384854012409184987075976516575490526121442682207409122677447726739803686084632439620093716762261769338182605138260173641557194194404142349471157204716305717398830503562631327222823523982719613571449721986554847241777923810496507101874409680955441027324921279340554136249926807276814259253946016132734633727251201848324201604043670331659690155133807523852517130637943951404406572709124318366072238171642502084060861032506483808914774894748937411486867002390440184741328747502630178357940531268095444084078138902045807536248056598072049798519308089202016938442068335353477749478625469934697551582054063901347492216362789074819720756210325447256304268280048181571166985004017931090648998207722991172299136385568814084658501010536100606970532025223440387363956540320978683597305982202870002371253822030079192613358043129378450286526979656109776418969209128287009204816283861435759883143866386335958240401048057710546909894492833852341705678706507138832111058382287249925970754929025774160110547516905434420260760529084269580871894263907984350184777917656788165580035140140793538803246529972223499246825194435899199341318118394528756782815537234897763334183633784993660761441680297362242821758460922096389409841371973114564680589074751454358842554728166962146240483668675236767717710115946434554649753884310229422557992104757835649793987730155457099798439897582543231839291829020085967724338608561705957286372186839957622797912632844641266516172582783114750230628998499962739083574406250113682333247102203403545144622695402300434793779404111367116129398836506532270378086385520773358541554917363424043852968904931678160099435278487466499888461899221750307836467763797486613324661900665675198816941740928981060140412053152188251168901202826474970904175160710281454304208724965426183538749342928046206463890560262761719241875869025339662948479723902952290381177869436340612248937461722868171369143474257304391378508333356844451005436314375068424605312951538196877882241894161958185134883885054163767709484106599065887984952022892035528599531377702233419575704529330302621717522331624265051847075298973603428887785186517695172258548141743825829657595929771380835559837015336432580466171298785494073884829108626563397573775871707880441825963791464471603765812688053494192333942005787206920395108734615712824886781752248201715001789071262629673310408734087462174808819565007390442846060851867827023694998411022063791442445091678031781074869152186285804732677906423237439474526936507945150512843529623670447172587712109913991781216274890297753462735990832717920897210083646152749516038933040572228839984825243732498008841839001696733658459445813474286307203590376446463176597118896216533931110921326882809242803939112747423733286139976808076132488066827437465957836778243095264528632702346627331542267235065746041075457608039694905452532533440501743305830603864618572979795304876121595865912910549129236634769770616268214920846746144712561924616607294823673965886414610410098130644640124953465883579071661035364186884789597812010969091729413149211498683356627854313557850359520023805984248209198015030500635235068480024680136146709041852217263158969206098309117885664339368507147269625428826873687445151883892015185363095814853604867297450504896735126974289967118128374862605764391653193432184010177351336471687252438563220408552723848774746695925834492326430459139583116952409381703699362393965606335102680295357434758010100971508773324731295332082174851943009477884376100098747748511918260004512878390853700941888425205612268666350185899361474731661174859048885145784223028084121418178687127833041318484023440499520260710569479248943345036319682859574005315612162458208466112363829417080352193782194850866152594061941285957274156308517772729834174927994606577142526150503767008206492380269961358113636653472704956496490074942009859173588695476525668866178662567321354286662486146435059218471562853043661775206562354125901596090432005601845044194729011256448401222679876390328924847385076326990105514905393245408882654978582812865149179071873957415620766260292703057285907643318598455506701474458359080326999279045429451343467157876508502274098911598990364119153912734888383895845656599533072642088775992353323458821050468046702324596117869110139322515550945983095041976604680409826925647471738287099394199494103387935719063718284851946974392604794932848040050945103414749147501782614626971183843856211204375399575330940225080914017493526737222114425628328778286209840414122621702448783198325901036683833238298432154548070682250352953522066837977539250886969888768965888982455240177127507985061714069137990803767254936040216529852558576064907204963437065654603546467068014942256778201450002237912951452651964779419558608768293359040031494718645807194163258972641829429040508074201162323772958764389287269515554486671332529174170678772159921354696996010452984314741420094325216093490217983234009125715507827314688128743202170342796000556312068136106135809719759698535113889538557306083828870135511239034041861250436615766851291609187699763842048583936018876446896695356905468242846117347758339722611809797522370447225123094213941825653312731225304499556320457846326481225317418425236769356057766813953955541774351561518453503792471674834125925527123568365243013132933863553974106309997484009497681096764767410172541459655433372853444722105138664408562527622512487359302842166122086648660845223187985110874764836032613730091818738666846536713297756765413517871415823463685526772643580719282412843513084389548974654631365958318468888306128736651092592667298713769039264224374963900106345299852518944040189405653744014347681941241611349092607713467067482545154150615428600008179692460162896252881914548704279730261585979779019620162780794698019062229412968693845163421986532644484228344007716198775264379477485843453777000363574965793018741513153546337731460576480191496049660660285295445620216648493712419053934151931324412870950666340250550205141604480625260584883882171968300323650797292379452597798661795079245011525203960533391477167081914262499662719842575161813453000358216567513780195313807816439630611596701301285721859546038386610238757611148955822309637307752860815024811611396062188708915591256450229051588976960795196172688247076012334131963474219230010825939021088491039578635054724674906167571926666729321088959587717025383322228505327892991934891265481711537721286087488734650038511965182825716393564771103925276766068615490009943125067698966208949513050291491693640830920531516920837672944827656390393530565962694426726355132943596769743809827352426950922237646057047818900476261356883870122423935839235654565692482852418868246041189228003325011888606976445171989948981558844705434401362102167855238815784107487717688239279049332485905318752520743058424485450737593258901532145985121769073397812117377406365221304036151713990830977926031690890016436262224672712297283468120680963584821596482735356078748370971540226301569316715230599140844165726557545672233806174249878700643288222698483390742116636685698451566430232958400644985403202827496060738119089274464554707730069437991803701095924839380808364221080179727114051524837117969542599123199741393544796706978906965934563907593879854428425196884553195536680273178201102309818396542226423917768519860545151746265322643106251086345553230116632802292066208162709840311551356354228381276515322518229845828368951063701234356591185793221450956878861424916907404654014344159372000940741249073433107000374330768308281809581246743858501218488588632028187476672860401003369251546406238321743484018584259267822870433248980209217204591542714310970901902257052928092718443220090111033966008274647099790123931596733839307754335578955039204385727860425581275485924548475694095331647518145952806743205575094289008739905689356600778667124501837178669056607929502758912384949077716122546620539113350881665995685094876714191452494620628994696755283296320522969420877521080527556084772569806346978675323223511972608950258723030673150432155121396050857072710325675075101558172420953708975713795236644160668154712291148448229059189097229124023641192468314480076909848855540975009986502947897110123968225106416608550348974489840801638759957267252131087044548048503667161496540125684793633007978667170911578654530627445175362209738777380486362531200927636546333841089802804273319997672867499087394640218658595778302245039779047984024566270887911242918096682582376546218470139800555992268011423340346568036313066300428627572645196223199032316177145451462265362734449306559305349304622527166488344766703116407986176770128838109318146998945283404639390507816056471691655803975168523071958629848655192900025880986089357806806622645616130287307088336561587079584766528892367342543440428241405538053677953916670779449408939281353936493580119655846643303883270438902367679903329181275511038259154997481029818067439113901812873337949643908796677472026420545723498944211829485368211813405085550909040260264264813763926810523884452847220801186348116364142208413111243443856806466412379194466885935646013091545601166781941297574355464323496676921369359523080212371273802240717100890817422529076993070293413109080708733433350928660080633216267533946064392318564311736353705654290252475452001877359151951993093186747916165395686620312250824743554855488189561342968208377770076180531766829591524529962515627657480865608596844882107148209126404478352333658642020303227977269802769075847753212490008814473655829819255145421144833585690394041867549652667387053185568249810871945477737025989096158057570414472463271407310864788652162675073115598688298190872617104732048390751696914994452324752382285277321362707674962699466222924284293607154759449185057693755421491334376293495788680836389441079377180416737794624006486878363222206722707947810625614159931955942540834162824920574625969110552018301143589703468125333927886928312704020836925801905016638996379659927347442108932033986554504036240851021319312579001343587849364318085871269693948668202097855436343311024498494674916157721638003190934779628535123846783557485385703933941463859139210488472117147175837454162510528659807224834897671634034742886061539107898972301359115282634337698957620563403085382147459186789802446664169529030722844636126599838794681865854993930495670630110317876703099863543961150955030074712485306464897947632984559091908850253867316536827818008109381890871505683172719682271763512317110334048770920780328003393886341279020948215733416324485007971665654768589982177246804268421442372519096214540487214049452724409439327266039423512875275633767678149611541090400964748220780219825820976035970145776983594293418831166701620297972399869795090752808889510427926606481175856589102887414370262978749049286329807191784898354842242812384232699932371371598198750703858266380410622785459182919973241839764285512887032885728928756210917978972702487942928294778807745214619661608766086685635240511529363452948899457774818884937473453679935365343299180606196338258159933188595386456384663115401172466085829106113246417737261719185854994667987197456453632796378703501309342856772790549363550219328514285309277687586466020498702152426327290566991652273354715464000326527733526793132405362969365529289559346669535704588406018030759176099975432544284428582379797034837006367692837530000715663891471706841853363184966044320625238926306380500992448228493572393123269659703963041080435327752333888354004493454250274785660468574982815282701691776039577155235733578581501493913457054015667774055946192120482992682431915131230886646145699145294043245138579082613474849200706227557317529055632261763903419305135266398626318469432407626911192962438012185371697072524506811788275706817576688614954469032381247700393907503520466914341422115438399373197192653769402640570334817559684004040914775966611013005263983620361649817567074358041482828306636711978595618048880177297569540355514987356088295177106269487924593866806173597269379942727742967235798668813794696138333812297114057258821540274330930362048548120632993616113454733978275403837494785040770632247580164396630642446743576741791208546371479133038566363427116299545273333200957450179307218335431271642388189741257628854918318370219888636452119536530070287285902075437640461671895562718817248845324427216290449500174805104235125528494910717111781510659284516102990679550844554587651402014228982549264566432079773512630844193303677793783183440230063364753584771262247878195668372984495585607444249980129773463138677351555248816746626751103643639247781791642111139101078870097589241963814325473350849386176512574241627789826911691039013687147859871693305209830097645187461975124179147614194628363911651843786907297700608549104802116363712585567058793942785566799927517668105785907053986171976601467963046876247302493408041796342216167047031315142274153769429838174452785060598050973436112431710375573055228362259837624753481967225315299907937602028965757264218139682033980100727592307550776517910771221806845948728946139380948632129257387428405623897100815892518926851131954143043478220737779224183531560252742444715157617223817050767485530554041430745358635439677229769467706307506350412969978257446494428363323587168049108893498711673861174030880740039041581809838107516317257953240268743126730559744383060351742006583380809981595918520569502192962419655973813880408665347653614967118939051271109188204369478769622500235983378959020662032865213890820197963320012385416471801157393337125690271598699810026542787571354376955534931750857914241909717367658548574341531200958598981707885609535036147330037722610288635057092447723465381660924488005683781258927877325536391188261392107401069685794802148095867014512396305779531887016416211229439575088509653201293083888583236179952574704913055324780727284309649238562421151361596642838448592313224045301515293014718494296852615521700462839183260021029760894872065699520653598568489887358255327838505588212923691230171206577424783973997010144386928139699976804450371449674335267069828690980160763153139543789351364722873238799947527487293940903821864814961043527100478666889967313668833808521600665744754184016259421586548188187403823230764172645647325929491066356642938051185135702260747802520116128146176441505911063845341736915262107350619338339664282041882353552448538878093580974855451709318916971989886016946203785589879350242261111912107146150407525655763347742726296639488420898100435230702531514670166762562051051913693200237624928417960030064419861693606724766795154355338570878981187740269503752250494046658512684323966591456646616927184811967331609083983575641163081106534967738748773868683999587295070326558522910918971057121737933507199927155122348536703225217153466274181588234147879620042801045280816845221666919594398761163187249525257000620917150623144482805573138061469746264967238252247444808081193318608364013306826939811752642861492634918702023323599748052344335213236259227164964981773926455768448842913808367166979994914761423079591224486504219678007297663390507198650378696252232308438082922246186618595041819107255265359469800686326841164913685711413103549619442307855993384020207085236649626960083912617700783713860045838962196637289046658500351112499387920632393075875846017425966595169718789542514672180969616296758050844064288040305695609491284854853935935129322557128339628564110617935825799571533184859449834750467040450250861337966176971004258849181635699137591936478167200959823066943988446482349444998588446215533157019043395069266976197254360154128366764170473533711471411103604867526404083475349913713774805127608710896099598826874019476760563950068404332766976362237694875925120434777378353364551237834781816123254084538709337050815194165258550278950956904463980101764030788319771918363641471925974565574637952493034523808490226961490507307808072520812633123505340889148348623160384901409574908128655503288117940879334259674529208587837504575521653033850939796601701879687030555064917139443008465963365554529758135350247122979355064387183525995759675953080197089152616617437531612034445278267408591693000545653719876205921190906003723369044370741063224316533134690449087403361751593056414106965666564984239232618742985520208077873263460165625068931602169921872739523707193265106405024938496472468377065683299287856722388064206706259171585837909923418406524016108573244072396421220277747270211281823320240860258550848060248539215489956748319677294113662885436295270367011872731945230619368445510421301882821867027463405713175697831379463584318348746845441628617485114381575788912671697478746204177212450002305219282422484303010668604044576702962832019407867173547580828576816718045084203692347848638324744590230694937502933600018854941607013497393005167288216941789263278905700433998197354288527753281971928585717563236953304656416046531531701568334445124638478615122981423585470219436480590563817886248991458025903468744137768556629440265662734799753266655738059990916446611061723218725013876531927974953551707969815638468326021396381707584325929270771262157343544999956057858766051851641233187104915057120642623657381394475102961558769701422730303138126760036504847031891424762414124038924805921416981345973046583663762254584771493043350160875539432773879355062709871419338145561281400178135093380279093154945033352137962146822802772618608364801215249366115294183727665814128530207487626878534251802182330634312492083367083340844368812831050436022294660091166198347552015482805112281376056418815690539768009470892525704916628501531430929920692538890335398278788961655851058204630597140585323665546797070476488550494130189807656188401698254223575977582616124329429774174695527980082468638982650928574159857598788141378156046925345097184326428436332333011726151406133848144914846729512764556595032155325100018799614414274303902695248849519392401486756858502793081310793096599978924553362477600436369417924516889621286584213534893989648087664753623774450363978109573933499555019991327845634270120144745147323709758524629257033319545813522093100790201853811393465582303441363958300998509173583249745915812957855766615471381904558351965485166784975292839160741965728210232305745200026878611593645316732721626264520212978821613308605018503490652248558605523182078684855705175104456068060640593586840929664778178511466926779489353202159918278510404477415256695376256641672439894422854099253311090054538716525054959823497877006977892615996164780411568482287439810682394858998155732409445791519243660769354791276687839583113529407910184027404293093480184343880196394674892569946048181223257427410313512873515001057466456420783514500587529314956791225731833208442365024860970125199143808341643390372486728313729858875594982653318519660408160342742953413640299068652066935678083118975344887497784736165241674052612798465589247116826573523061437952690629256480207052499277389213537313864491626110201994760655715298396234747657232432031674581014893088813826334152694363160574617378759493011514887880384741188273198333783396860918236507469938152571123187871446840218749477120330302813493745912054053681411042609633366047405954013557127179236465036130025401722560320345337222428014760559611062966332567053518119898085921980817630802768588333559511501936325828325223950075336570710327772570873544961423988669621875850698317601733547866885059993429099429119962602242697010725594566467543791894929324265936816954500716944269336686705749018632998568854217048762199994483989079174140700731062664397367392241920270508290821074224891256638995329810944861556995223819046932900553330599499254830717054697402060274952170210075220631254458812338491415595517130626357288450409570566746810739325705710385272009858642354814802570234750229263317306526954109474044307883584889817646039288054893946018734766453733566077199257757718818342271529185030503266995972813869707795775359615148544689425550432460712181998336598778574177269337664248922507531974329208291793103674258906854819938933057132492147570829553551747069317341954756260632404605688135302671593736381722904963788945968382885823965620842360874767701174439955922428179433385286623912124460638157048526381884038662030920147696939058837992682049295482871277031130291114603716236566617726132341923878347685731733384916262562791525975054802974012653718077554536352586333537458842531807674454171563921233979501187972138529885100594233782726864524374877381654634103289358705708894758871585841498015824806131274003096859444479201363627912503841634067045508858866960824170938723408099087904450234204692723600875849303462590734449732661630781211675424050205126403215119100781664476937828981759490366544598862138479379862606884414837774355830702361091448576121817443672832475935212734564969575536599962421750685857741721465718143601759583791457468941921023833829200178388348083974570855754660193451191519288958850573637853631369560422264633324443796024883649490432811367747409037089559381457479499993454162302351786928444712185172641534393586963312149680989409064301279756013782067620716191574200194009004200362446241509744413985157703506550810730867365673268687634114634940560276331938802568799993339467252832608811138992075690481781201368222842522802479378899782619799025694463270386250977519945905097043748247636209785605854026011732727073777368646297198294207778314365041835457129487731803515667783458959877636247243197959112098996494107825409217394761246097712589772422301914987002022919378248368052926609442627189464050602258185384011733487771314607859371200479797024350227237177221114441727187811442737397458500234820698061920643108601010621189398017784017810107122596665963377828849223412614083193243185432175504906978026777005201475073749538338793097364540406906350490984604363155390505995641953378289524141417787685456214681925432880853258350080766405587431904726866030921101741567721814793850800243838577560049059944977661362445212572107856773911871548968787533850299994869126677377936339845235915022176654528674475173915265508586703678241162186289934855515415718337988207441023429186048855837570027328461689955624390960092445031404203456030587140457426349942298749277595171949844221845029553038358365886016990386318156072398897247337734839809888772971919794307104507225780952569085030172558935201422631589280127492683016989783131942263918962062967842955059853369839193436904141007024057620112827933634413475540119186879041021957351571568091226160077339665322794099808582530418075323653834091489861450775615894495187370220529027541523087185756862969167206764964868269751226866361998524809756747100397585308288525331942377655885716747553910196685728963152951676076313947930630905788995654812106687707649134856273675828829128645046522908487459998276987964766691182037128277181745283386240974256514464288115681702345915305380946587577824480115389585270932767205204183088946067232516029502928295026788255189897373666369605701710788289366234251516507876002778754832556722346923660976037248967757173538914995653626868741566079095710024399139473893203825138851649968272829503392406081569392671473172881070313961393360088629118670163042405475099129785067112684205800733610978097716819401449730242055894964625183720450684929557852756653784924150354831294412946890049373604604879368268623580429611540050468706221327975392450345695170376145321205972863462245533080931078003662112999225679269374188365764004264361107856871348405912219999373795759378048489437673838785911401777214180239599315650621777784454310964492369814391164989828365066776520603608837162715041558367455797990258710300923845446397320480105799113310319318446004450025803015842969161161170283511268686661066400725097529029039142404215442669222514025076221437530035276943068371884244442204124989460053176611638542425354347482763548272028423305546637515013660191358829817084059223979325847411934300980576685386673675455206150303924240289621137463844809227570808061074700056434326560166137152468520380975979177316509901492932208302039488494779172720692426706452728939108121911040738769678788222636697472201233632102075380660819412223046898846054227140989318729837465537825781781242595130369371451978698924433232565825484938156394620137609528355931343835215764748050887939111142849754383397688136123558762770318410757095230964739401852757994011728853555097762212136374995875711950815149587392979062253282889345686589053164729183799012052684006006020872050752418225545254890695103372491640257314230152628042676722349199586504521578123440333454004386336450826775124894609798411235588878721408909966171126430495457766232714988018990128739650966835789211123401377051657223519773587224708059853450457670157349464970905065268779550703368545099605029197122801692118107429068606519545231451788876743199944140461480738798407174721815293658063285615674150310746209922467326740681804848289584821068316801437116961802778946515118627139529496792473209499735424536435042919330014256868706542137761314071923534049910146266376899704573046721630509023453619060142737630325515525168120212844932442366151798244256417609404476855109127147195881127377427029535874611742830410634657752436261675301788463665363846948427392252473307050279473876860972678628884912938774298347361996557305633704705946177591800349564409849068466480212260876716505345978845154171634087931837417017281531575816925741859176747262967581651270297621410120299682195779584666589275714867227039457328011339775566827954339120078848691898833239667701526470487706604429401910043826896794775454769949303112437300251773665158808188601360244458361663149271554298607038532317408627383540587596725700977275186326229442403487275013905576762454599738414111437541372189330578634526369358927494313027384429386790743639951021698405257576967965369364151318232878270069062853524303660836512013932586108198816197962067335075751644460486060949697636184501405932317311831696929153099923284554001149284016857954186857134623844366287157836962843850449609951214498290024421800398018210393056496536783157081456003006789306279522600573698643655212007214147828111649317555569569040158973602508530466863633029076380989335855960171598858861400385016188146694649397180401267789312224268352318617648834943021848663215945358233761875661803202579827640292906099407491411007660987457925525524745850208848289223347916266146979647413476540554217982199261736377601347247573663648319095233328768076109208135837856683385214636795730189031857843978793534897158251785382700134093687219315890978137068353903372397458003421197507244147433436471649351006285643441057635338628141989301629490050867777118419371267044697177897386353624275070081007430396672900296884503353123508869642643981785278486536226411148453458408483351920849643944400077903233071742499508106433777221876162143041583677618082149004366698218819434887913741742530734176569940099184836103146997787782270913669567338211408203824925424611444992058148308046353779972299973295814664835620637621766656201298952664445852874233403603836070814557077850579228728870654631869486516473194514184782442631939859761964787897944629364306083615874503623492409765643843291353250592766264240071903988233941890411871963133241642398273626339631508232459029604893929408558821442497262857444075771227530368479741333368544222957558447022172573420438245562981241476797182413201352769905856829699155638434247601568173620982217889021155763145615062667985569555236456518163678748241283064123084646469805151855711199103917030642066567474219514324964448206911604562893837294360883288773350869201794250660483614216479921789321489696131888662908793984886106280720582076049062970570813818223951085566038994168266068425231713163288172079535213552184462287923355060032495169590742008114586736253913721940672294626849713899093523663469301118908119775642365631230881380236772393977636491812465385613639833394685518669396934958505004314813890415090063106972791240607428717398400197297364789980691977010482356110836041106621573505427019239358363264908053387116322572143749795864394409693427969530772933363573341941370074329763036074892710599534186631654355479276685165715769668456150281443828362134232703508414473362150496228038343481218027945534735861803581290242697236654321694277641949959332356221180930421963602770020799387391725857609412573307892089537122912892812049209224613301373478260620469425672011105850673337763860806046266731988792106032014402454693057051881111911396587927518128103531544121874708911099316005967589609044168426935104993386613191591976396299347472135213351349368349778151988591991082026542186480205866762818034878710871077437065684916877897927732769095001682933618888629900314845181474838242782723574282746134860940560987664452941249841133127092969696988909691700507955889113534824828780939891562911723018823093301514716122238652128122919213800824893398259654663220013061523419282367307242805504624917072203802744343566036131705660641294414743253743991925905913744263501617487534780155171023818035567925898907078073242794204806133967459912138567873980482819493860023788410948099035538438714521510815167198619266960518785462220717046717596272746682123455165305899523468089701708515166567243011139773991425826246811819636420688021531395742438832519104284753784154475451765721053662134232283885621871751781842051369473076026843719252397219838925027865868316072025303091937576230148006836168814263261644490294335484593419795817146184977703692803926431580001448910309079304597825700308819567110261778893621964757222550176774380336471376428022809487242304255531370807352293136842265132488544019563872101697111419574014617825677652745854239801187474885966074403253193158002317495204830433742885979244142023661188487946521031643721723298714623436348677774309679799877128165561788167846968130077592793280081263598019736495230262093058731084241390834251438463396547218068015985530339310739222618571492387232409079356018816835791965676171477607524030675710794312648182100206153440505091437515291539833713049215055786314625033581933088292604572299004946001411003874347977811000234051390774569212461751022627494593043118416524832359807184346762616023497680898127941255521175599474624321821265096674222201494498425139966721706753884660365356529944701207067656162591125956177984581232883525931698939307719347624521262473490916612453853197439118707863810053481957958538973244555894060954482406931438754757109992409490997900571053831934955003638655387348462177993555455061284214304481225537551809488324790327018774921565607947688067774680251815561377272004899005460595942998691333336202704932598004212890940856358434444641232930224354346804486647554616487646362846927820891503935371790190515689763983456738584561829682567865687510925281856641039490351201564278339149906721658725187368846438247990522516924791543018207948787526381014882895230758638442254021503488048588923446768919977486172586334200716821803351278554737302948383354873912338593776889981328730598749325915690354322109491038450130658796457314172057501145965290550687625996189681595696436905640917375617916051739887940618385816119475339537575547668487973151787981222741336638448581934425515482489744588817241557933170655080479028885961673225328065114797777103732227592102521842978314651074902805259774718150897179500564784361998723373187128618608576727184635806197244906055764747557006258544919406941384486569614053467676995684097560308650819955418172885265655045081409070092798701257172422286126419684246441336284668520212762689956514326220679553573783815685976571643093358953941604612215843401424631161635594931059046097361523694405196385119373691891090477755253934093958471663906072267356157482639636948132363698589231656630567470697439875902941960914666484128005425295471361077285214010563991546326356084523346426739878758053787074422161099284634531012249639220111698920717847336471811011455362228983603298408895273378753993039252569213575575175684768157950960999535950290728004119984264138058340773954547014265565858703377132325239516441067276291492302034018407152188507135446255574149422397926291888423363960591064603212693188596987469750060942458534720327323656601295058114733212971341264874322782986216803233338712589063901651748871388422768574147137443769370984682819997252210876536398812752809246046419959345502387121901929615217585457327294913243759506790913547731401562548563620570565805076529125286795323843932844609885183400752986794029429917182554112733643142496850255445622070858994004249580843419152009329123781673199867189271942806443514861089193075622259545499756823562632436278277598423188988556071050751756485271339801227936033229808937397672804943882611968479550139007234743826783122021853985919563885025754252065593142700777298126205479600181032929842210176770062486014614069025132559941164764875693411198751548612118766099097614545149127683272827944348596939539110429126139149087294672978145451816052846811719625732378275111582310889993558131335292550747952924725374780765674542888022032004601568800892907474272600992777097307063799607768449881843362750545704902232399288423151808025100665698529371829481946212721385614870128862118193812567533276117188686834429759876160703047074584761318767387041730497777944876409125993468494717668534140501925541611103595399227988143186097928682027150631229095414743425653925752002568401763162863342646966786582619500442474503683886154746561011796325951870387936925656448862437772498787002817168782682424494596265078050017642061911250412388535644683808050030091354406970841994749871527014126473088554801883274558091349523672262904617185755965195107408881657708378008169238952148555360781703975452235730830607491023691070275421328101766695267922783926726716719079341563906199651253311809564107049020342332304710951496012502183836788624687465680228314724067727241153109090408455364780618110584131158907441469555430892797063553873413929779287504739449424272124850769391309827560438851947088212881667662850088752514836427140332579890124939946930787616954978360510071586628504662252018078820727457898147754892940406620299801121497374542975488502688823630159025800700310677230840008400338325534470994527530852543993016371174704573813418623657258047421829530861938937168393437404473234833800288241179518099174340597381277559743752923053307051840433370997582002108605899085893756367182274758539999167001070353617797600964865358839018573144934132949292980753639269825935480190332972558843816454324078776934175654275036211697694075210439893044298791339705852846296600995507308312226381442157278292961640835625548948424752172449759725412343615403128977483408079990093434106290361160811739652970014770389869539038449807514395760308485502280765095420037232107133335916204962750488267688618533584614829676719558979208684789919770999083402436083079724096660476214782016224405052889240256104348960218212835088739243400779456147892046777290065305763168820865029850364473976248272458493338477383459450982467333493864352432181150161050826550282334814994174060553226523504573631585913357240934828138354988341132356215035045911903640037723528717170545042808492740522988079278189852709868265954826156656617399763018300879045135373871812973741457480280149215059860935300367391887924070683871247653525942601330804667673144444982004656668349378615557636753637153559170900621606260720696194495096319139538988883375511836792895586600499829496565210524942036857147489565179812252107553467171359860015286784414938607913455249591846238767130321427291771757986922952638217764077565050054678169648801182843211530622711054063275005034919968830243144915849040064821196018837384340194292463705733258326126630986754345081106457292980841486111033502972572023724369600311887740855476245158059716073767907150123874310831363964513833519742924984858862286949135263215866144545838371171963757399728499264859755057892991364883081104777041859420519433736695786251680718949191200319063491975484307962038210359901692075480769004266185161742056129614549922576612839961206854224482349612532534391820400587227216816292974819715650879440631462916639013888413531993675359413234555180757549651656494585893602639778861134176634329113025729464561444210454810936746391398417009125016061115646252768098860833404441990268256251991643584060922968029182145267810108389001061850323738162744692948785911116382875254024738281088835209676828695101117805761862646696556378219858718974006340801610131619307175532242906723125729024753751022513439775527147760927141915208633789705403323050182544359070675811252283457259043359838577188051009468522658352522642532993517549523401444768298327693337344027204503986306270127460505161421018635487287556485222163149002784188068236606314424021207167416762593656208500032660375040310708210209454522312833242293092998150350257410309142444404787433865751778235181316037462913020208472111470765895945023889282718807336489162119303988063798799679586866911900098385522133511557156890137564491452530156216313355368979903884553076376678613100639616364797773059558313324109553551135275613254467518902887026983637887354423549911211104634284841302380498153224280746773689636421108005022046681978445190187880592290879621336058371619026405910338342655041755140835113689992675010121196808821214579084230960303472826470705921727496452865393636502579867626907424782781337524089983404662821136469869758001128647471355337394781016501106757684540691429957202629980497282193211140696999621539127553330125527674656071171265152153988840213880585294671167561375339882735611569652700058035011060911383259379632662733583558124462649619992284289328688123959756279922861463270969099061286296716633553140574285792426115980461316276655950643610405765522983503997760310182231080025473977474006961119385870504446580660125723946118846394627404195476752950649380920521474750435080122453868607703948805384027405397859846222540532766452284053006583788970766397457916773552148813009904021168922705342428707317571458955499431919503796969447428337621525435095651263699908270383562864496807996743789608402996078622899235158378431735669150586523093899008255297202123687070693542144412186732928826000452546213770955435148899044994703335608333813707712145210966390677874699058610216623297082283751653375174521025429005973844549541329914654575038134657962562373908347763257764626629389705638108240893452611834314271436908189514590086765891453578402694380343418298467535460697382346506047973064647767632364891758049444835964024074130821865463546894021961353449841278867700118438854838607315626831223424924813247740092586542347977240906690123925211502105408970183954320043895121398210431763246882356467929322378046575553210843280760817135842220180865138740196537709256392812535287470144625209680039889565512531359602003545811163801803623006350358968847445917254922922396891290999988667215327890746827368294382217647701776061856574737963601965602694116113632925381402444673526293048499868859589067006003748224146987303939275106657725808437884992578043311903862309456289027601442694987034123308674874281318322350257059463875419766224669069654567903775441574713401533982789236367400650503594554542834096277031621949614193478886271953375360837136786247528897322879856632749971272964174825889439783935880618989911736747940506775445371590015977728742986714962896372620234053525704637922360013088057733904608363984617114706054546773097910525970967776907178869740413932259606884426403991325167169664369235105993320360410976572404165264377611177198819398961312831107052106944705910738869522474618886290812657633652736460373110747084022733781459938863197907662624771398781490979858033817478665293342417124566456623805502269799240604021443290200195752831482680478720065357485500828258348644724571029694415311459217150741123691600553481217696357038214041343389095626980851349568992792110371665582405490878411256059055944327083372464234706981434681594486993237749571660984356360667833877030942460159328434405070647466317266542418934517909906159770283571493502875359886105576748697501819186565249036190040787116598579913807237881667386652452717694563214865336403030544683228874960547071830008348284191071944983340900745599893748706455072559632136693488444093677320587172472150699341710455717731001412958883764548783337756420613595019297545787025363680999195440773000987285670253297504754650716504616199232702184665689657596584618848519210323964875652304106532888241340922374254875126088133787276463889842511982666728732355480948341247578506519229588788228297186408462675022797397529241256915074161211618639053736698104250974823205434196400876512452281180867313283474315089539674360861435159329525489580544785731278918034333790072520956404865519097809156082006526633525425782563502815701188563079847335532693803275863246357584525988859581967770591633843642042331980460883125767499779549491489265835892681512523424506601362234893337848248310311882958653605241276455078303770589097897671851395797606966175477588838389734001365622116530741398119974025531504936172668103906009672289099692374878772297986254069355007420813992124354487629133475839687775970176721829222784737125278546419765055081184523295450604332885253669755269129767750542327165324692315762630739289124067883437096925858368332057886542466951354498529614912508380458549033243645739887421437493445232688223752694715077742406426973247049099195932252265072351111223409463113642977985753619455134453718543521683593345125827103991805001318724052893093117059362323350247869375692384833538962183474548778237004954287363941079895495842961083654897861066458377350530374088930156781254124051321434403274107455051285381463432018902420037442133051943255702149123724695465533384536454461824914094511763880470192222988469772250067387482056325368502980998409858260104278452066691353034532602142382536037849238001269102923877409506240790284697989666145743969828069197940351101044678205878896969573572824982185655545982868377139891689600198952784353167199669899976109691254609666675973507761638769492606730883360123770969472337190133300628746115227091544252917360195008161658757679743648089299846402500051841949377221150109968289751573555736341233604958062426830668716052185193557097566255426191370171472516163124382066423330535097423608342217202372239846424668344223363154149298736110938706050697921853306924923942617857715394981990940940486643592882784675327086856146025739625390819960316236712966250259179887583784541798757891779694329303253482970501359727987341733969818804979854710104287347453691151492648435509035634821772375309609565037612277118913318077475251203668481872937570476993423253019702032863552790973430240287741996183098456761244589596163689593903142868830838946438687209413069652391980711393244307445024329356077066527773535234135057814474653755596874712595171402941800586363383177481766963443793849064054220119085920641973177890513239981632045831939553251359232191439580977152331301184438826086946219113175916574188287558543129872408503078042117252684125014948227722112542779228572261200284103369146088251348176420814203258163649310139091895562074535566257528530100693583873161287780662793194741276165974677778111503303577058874412542529394921110783054151383116819685222270020752729528505925924918373837754415195670071054355035618261848103610427409773245912201777415199179387365662668113633779396350577894951555274261283706333148599979511699606093066532030684233741378495130091067255752474071366508210639750880963808617532885437521369055116243757461348700591185911631950181837020849816925301694228888555963625819658212615923902153493977925385667713818307029320605169461533490689377776461887563576731897340296016082915881811763292582097128481347630356371921435372023049145581042279850084584906662578179168460649166004979481013312936269836789886275559065304074598334844589267384999278537789210485613115382550801834498895038792496799038489950632372538202632606421972995099889909457899764563918534894814888449406559762412658389268615679755257258257730698718720956877965504399120421187072550649441677654316495445294202311349399107373813941660828670979567749210793602278642180188298059269072940499435315922055277083724789473153182844569806107093336928674853345347034976923588406019600787310074312332185615413574328044473227659771489611928052979114737654132826247705876243643133518606238031333400738404070117717371086429954326980404300564808786874908030162935734967382215836947043469284892062481265824607586266007545125378105318335420204195474494744209144146284114661660681679996878827841445538297793149118750219995523611543377545616011292819348990588692316508124608448255106872146813068070841396208741868557181061025898846038159257349876630807130042567827958468048396362268716470058162867562236811976065463487194752430313700185687137287635543847049157306403916992632678079645378938406936305986790956132132210775716648748096661226187156750120956620412630399231255309805392788454775374756725607166216737030854403155114991483523358144671233440679022692064237944662893205231771951262823096652987074799208501910001154523481021131171444029408122814655900413710706169983574694186117620847300133337025859085292516005447054217449466327458116447283164488130659667555002212788862816163351113127272908259115623734473883168951384831216459461388372868201698484255035157966039096846816920638328139853528406951833306498744242941222764130383101783476735708771539162597788031769661449204706066623784599875077773575015281814022124911055781283499407717227023546335850659442063004292473372456522084899129469802473319817527779965205302550461260788959040656179314335760258132844462433775483481971282366558999108625432582045782435783101537514907142603189196810235330126759214005678428455922268929654816171515861208233148333111285061491219169522112136502097130717571792872378867689173507093527339150531065958410685637797994429207481625584108132730712035082358674023801587560781156528482691433148492618264037469304809016850990673725512359416505266102782739239544202574139705358428874288567245689810690144462509516560730830810518494439407077012222180823610370806627121218360767429886016970175448059949658474122414021140016613123463136604563387773147850708799546740729469635746614819727379684080647974234113299739463579623345705689139088843888319028710725935622645116784238816294604462371718646934765444408391832994347179939285653093284281781149217774150822564650988259592132887240973489166144344207061869883995575457180360482762836932218877750134762705388754114310164665777571281881290431493157936019408666325364392577818091410935407924968890975638093321626853337041623992980528013829235116278168804310156355846926820575561935576364530546457468034032677669263814800126168042261226524638901109082385037521626911143878976660745042217279444595096063852842063732312624871219955321738454196106654950449597464769648341090423442311840989270536611048735848394605627939881740699739344712344740452220507372821341760956989112061766420344729725312114908241655796124725549083283303221609214384553177877570166949287883946932285381460759790830795574478486683811564677656949237128609067520457101246042300674786023229048278567365584694713055843937440404146922141687909147817787327027954818646534372656146551296543693870413702368192682995469688798904008168467913985213971621073677302111838300292025103754253486238967768322605605997108325850225876152432430314348954027086417207334080402326710156757595278879836830045601159344983514387292457930810293534909754736212034573871668139460322285211627130841436883774163111740868069965249063912218928622103115986664231090024740821180407238199331269423162667572908726483094811300931386133382839680724392530472761835726152366707369982627520374244249828621630348309951803565178018378576382833653509751394222278589423445711309423044756038902015374794972865102953471373391591342599455705615713513708275237081207136474246627972258800108155776007237633846115305159632143593415987117011636550999491523683103024416021779217653990519909864983347313243449727670160752088160352469097749725944483261385517852915655276737823142153934690846404974113922332099922860923868363410299865870817995340399799371741223407561811411562955060449176245253421129360851427258246249616673470040271324462696587352225392503103740206553505631932163271167099279219587193030680603531671821805222516062775625406693482573253673520102412483017896341650850266160300326705000417598663248134450034363342604214901939954167975609457592161637103802640044304724640754342583107979135652900247420754733785790622014367406845273877118981222011227302210944187818291991522434196452037684507756794893987159430236609422046586531209388685538185821400674993230647972549065907945545127010987441740845626752618868210767823755254839471281776935465918831158740160842996960491661519380824236069420149298999356665149801943839944846393441996399952864324640703480060823753807850839338322004884127141799222206397308143929963628080920330121207090228356964503576296825285824514997593899107124756354722857628446253431284201797324425707524683354024830619223586333901334200656329959407958583456613306346231448804702638740335465473913226090388668604339257185728961139898224149968414063280921320474456698440288235965555088135725625734363796805562382236167300553441702586313229396291187398324928119291192636406840313368586648597125630738064476711920259838226449184126288881997635818087709669983999643990258237773337159354296528723500238669358101476664973805795907506805183318171184764889428756558815018910983927242981707005872000327784001057958536276049645284677148742553998264966280336347614880044700925622961675406883180473292937155850883762422054002724002975904310798980345650371432503745839843422572809057776868743385754573434648075912562042647144261388508975452056221227502339369430128214112132235745280804499005675216736050988864833688858004303382574463778719656640018240021517347204792894953065580063282095569394490097527418811147643721022829037230449665167616501323175574206721387577519923651073209079286950997094180475575534344197806678754100416969356110179084928525472873943314221581225657450041896416334720058236384724312265523584529403672435916137565496446909481275044518670612436092700611549145596979799136973714481327297587051812123365588651455782861311801348833947681712596293104228193520525191552829280710591624625518536162759824500772683761129062197386778465218723254180931823958049858490107743303281999129959096711087594505260967925408150679297982111209423716207520244896347514880591603147519004580051744918500952785122854104630984666372899341728156581195124204850728658509368342595793124908101033519812520775759654275520456959878646508914527108692842232781246619908157588104500108944924908061449424868531672102150036077668877548613857469619335178616135858813364349313947979168939019100361771718707057267262218260728827670109466609194288985777250816067059824616206031454245110021741679349099773088988260663365786371587754900662975276973619898637018867342221225397682596626161511010548936212256191858969226783181364821685492090317804258512240083819862974110082459853390572750622681326246243791465702926842804683872892030939929372200048797560817652942842077043261214246111547059006648246051008661242089118748922063261114010170921917320430976681984515923297886266360451232249059829624294580564197145292740703681472647549124756577817456998448682941413132772621956284179908680614679849182926789897309717450484761055978978968899434761980752327189320374659559411615967449633617248038022600866772574033979686860555297546566226090541134923977344703634619753076472074290453582529449059130188228433110735737025076954029992836914675071511052787023113992560253776682728295665571969702801285488810323967566295470724646451929485647167631605120227174369816848031721889090755213332214663832191613772349355108354848340070537837610297303543959644867293584496882716476362919690569548762111153077509899961977972212146817996614547151925528111148385579120137064750691947568556343805715993617155888429135680387660731425025071835170849937320058835984189809128884913483499155959728114308057428538868319341788770715648955354803603360564123853352698162906532914280709169527244255104499685497573077267251964201741138880893684748384879535107477240231820780588765701572911983216298446064689837874871488539397515436402222287043005296493640104775571044820544377471888985382997672973751686663127351856330844963745611651508270984343577779596390059096089416178736400268742979209079008081660144396750075003849518829546778013377913711547311790551385991319068487963021051888575264288905260809515169383383918531082152420032607540443261468892546259923125854655710414713886702949634532300209311288911369682556620927595300856138594531161134847345538653883417105913004244197232566237408190565876833950097037480518241521119198998472551515093894083462265559629948323629554415852021827985445732116944575729259109124747649374824039109283482605537839427314429458619399814177201334034740401749264466551792984401222809114892439925275470419308417754165307288955134294874240352515863532717796968671931693920121574255105101485614371749069324214258634559611375889289475944024204414876987594229145650644891326120387142002304078538944386231045240496192488448514646041234150082351850862637180353637290705803361916006507532500565836180279253633125845342611138198699589434432701155437598883107762614649397764011674812666108849510077487373245675837005228651949449506150871666535392317533130498894292988102938475520727785253653500776623675650992400480585181489123230433681051786031769691784927292975835940551646327127932278673301661040835958802952520808068252087846527230118815475351437168926286977241590223126254284641384502669377167076165397982885863649134956267783538443165996998216438439813195349101124441170493474319252041860622353703049297419651004278797107000630292287505646929779588175324323648003361167670637811633187981542313208889410327193235119617768814260126894082701347738743051537529295664882171358599052330512391780942168807293760171466922127268466449402541273296848509615971643979392329435042003943248498979466666988044124713918214728691423210013037773029268338894025156563184611788510370279014954918851349523315511881296877046778078316965011632496400265232943917482131788592157005500540146410987578672820914344452208642535144347035366442086398786082507572442250183279226221954725114393847712864774525551168159348189570665944665426925468805297030775063722015654287825914686693601020041426858429513926916844657252495333377099895499697283419535576656211572384560182005073384291177415111800731634469657457293435698845154034575729326564442945997766421066018655147412029527267584220677750165336001340825801493608594076738182561344266368993651124810880036298718559423105996150361140191668452470583286078399449922822717316779657973909379161970038574699435723686343045610042018296974620972536483407286011606427401468807614512629137910843861506047314323387767515692392267429891051101467336728534036676536333901809407741582699705145575756077480614467228294300201969532024662565431706568681018500875767203229551610809537971849074799338497093251444187043344892165676572713474894712380957939797042427676922797835304319921987225088471707244597074528612945739178135609562732588577903595948576828858276776900539140534564727892055333229148823440529595321452419482939039545531120558100496347474420127736508419425019753931047019947012147512405158974487947366883290519528215604355635908831595853208894635271945685069081691007559478753655749751491712072033565609693768345262928084985447647307823052957378330803376104600799141430944881546194702216646171904385265136039430851201259252036104861244162889170559186398201019196229269223112382238626117504213834729638709732084722442658945685083625684051732386079855503817006116088856962011354451301565885297158319674271144094106605176883956168335565804568422389532550612905951738775240839912340274508535057659035798392077987347797878830849039949618028606061946992553815998315268720174217340469499246877769160593040880050257919570701233714455393399093432763228656443880527162009926603132247880769697803347810950128604509516931241280123939522708062403500366180550214436326954711115971033303257221922786326099282417915129958192999325504828265956952552513957473627066325303756648381492559508057126810886283062225731090404936716994058745031199814640170761807558207087970553932306810524010224666385529727642069853291525428619968780966172867713826246943095113991994662532068615818399103782599442742552706931640217273383729480770607955536495470103497931240333463682888643051800607110570160870678774003069838618057213493347601398833332659109549429674186769697621176408538866655412004188490962248449705434012209310026263848672263113319397755477814166412160436795481865320067182630755968112182766142470050183219422807994167879062171769687323984475728544738230094552264746168034357498138609675947065629519753009267234771218358635267903190441717670304733073368530294240608051984804298447099577839143387264347690561699430663349456795744576713878501247635958213178655893819697243524790579352449850276559465985189220704846929723710515404801927829321370895891482895499482369023046237682252543923218821526979738557086426661438622468335467340011340932750489848203190545026832841834509060863354561461756868008312429403104977206657445630149076085704083156794089868989401107426215705045126597967848440092546864110343774124311390895350623188498518485577223055192415081890322705473064328353049155165010218786225142230715301520343427962430984021057845169761361145777047287326988225989392368299843657624890064071976116588022637033448537388812821171164475664778375011597183819791133626155368559082975530905115956068372201693367335003219284835910841996025655937808790042001365785551649270872806503120304829640461708941210076939093485898326484134293928242858693859338271309708418360813614197105352315477170995782137781834268433647023374048857736583957325417706451818547664761979391450680798042604352062643903999549445922841873110182542249760318220129100529406807952444665089859552382153741495433753199564760168307796439932174764799584229274371332468160456712779789235490305853645743717091813040100571812251700143847661027022151738168456205913099125073655562117632435375352381670150492933931499122806042490204247701181440402043999666996140627828012537499537008606304461034712224921841012878207884277842924571149345905194740142086231293089025175907769903065613912602388770023148345219680894625783978341693796018350664756081091456035617301394576715540861363024545455255246523625005980654137319995367142608921938091072378790768652332384734979908361338245200318329655251724897323269881186272821921639306273004351916002614684515783527842609363511101047664648469465277858571104012784562277054420606897943194906540356145933431151643799588104342984487703149479486685051190629864947578328216584256508699210418022518705808209264033212021053878903224262241234999494599466645435836885568311017077143170401917013218966517685628988718910850391868580377097326391505481853378639448901562528017900276452892250697129647583136228783731784851666179446828332054902838434238011187669919446473414352028040137411448461676241116751432492430552271660442996600882805235701807021835852680930873858391336005850748674164741470299896354668690700705260179203632023936559584595820209739055839164030563108913261544133689420214659667592348668018517184284028595125964805982318267957322499032522739139454125823005584293223259989505565559651798206076771202675259606910217797133234801673883662434355131553735643929452927653483735139828202101547297891474547047662140114113993241800603279216400437920497590128247878789502943155812232423465366993067388334412550865559839770978194843980689791968767494097719686622222682590772971972403357638913615433341804857609434474249926229442614089957813913928616636351155935145337708991963185130958976797604293632619659158310774267552753914887806034778476037302616254842733331209184697266933570790808816548011316401677003295923567743862415284463190003379193607771761485138199121848370829997210648043734014132654138512958016619857429475912166100088333269655992994754260086753241849546318347377044711391188648037463770347089793644543869611299863160393971246355915635833931707641633439126545326248757462883837180702158697176273897595519163838596595742006924287439488374394755033478825952798649474303637954682908568490078565433432269515450504803739334488664274229971133312408256211465855615493313380594467231438528878768050527172239461642719768433912673329347853653514364976159734523589219421110656343204492139645832714101902861085860731778765901638906577824179694127181863074263062974112795253309390648236183597270078043675209278493474721041662373045842191653668415580873971262036371837563756209167418334112125525384978741136587031143269602448802002603481821739349477106185722673492836643933762613342331991532629254935879262106887782919043648231622053902717274675413087933194843875676039044224936146635089109278579800111777578741727018633065385520345257307962754076304181749563662118389908313529704059759619565194622437216040352279144007138551990056959786687361931832696198159062320110925144503064288299128827949313521168617905385515396723045422288623008688568421772695541757283219908583007289323006874015854834715548804857380769853362728544454262214624356816862814460899291745535377876914706726699842816036575965329611655741263961609700791026625061553510141194195891118623549538479475707043450188560952567378820291458783225022906047125342791862791608871357429182217469448227598405700371379810873162393103197559105877151434094065870765924471641811769535676745378524111129511731219052728397524545619091344719952314078191721451423536319661937044831069895282935384535024853511808008957066435788533790646374788779136056363406965619123225840929926586131573989197897409449040293494579229756065934664071563603866135444341955606695494267746082826881337286403461090683169429163993989904089285926380181641558306453505053341739894768517720053605982060958098168581403259221826720928118681098334112462425430250351601283399572572590038424577743529098317608327150206079694393745872394417747571423430387620106566835425269780724300344734868054007054560477508225854971010219908013519421650799785957193593670705493022159734911308277458610079491218141694754013085936771506602352927290520343881031991741338905803398284323195370741877844264495682434977980244753053118059103181022953143906967968541257848858041438194063595099966797715286757696545549215310948220488360324322005116278625296138749281990546466994088483930205783578609377919895771707983370036591426247892345567449977551440403886379219567305735951819585303127151655599202041835948996584713408693858002065293759271299681599219673293219624827378765987200234727225395809550217863926191811863852046416952790855542056504055277976274045147840475519089912831567976754686006236528685567117082562056979710073902139571368904790828409337533992803670733659317057658934600206481565660105670475524036823613943367515728782130360329991365790389973412678949024218176862402551093646083213279678259754839592328465487823445896943933981235443149455693274150236372586369605097737376582110015745428009075011380038321968401397813975760362765796108723985251210213172928379470837310195390193881449705716071440475417702071216266527351004902240557008313305689546693434762878882573914817509237639806233201626795108774355809118805936141893234280145454069837889784357830164487192473523522587556214165050261133504301904395238471133362917070446937076698927773401532097347865217605995894171971037615312052084151252587709170466488246530017516430026198409744701709832804813561490742992303913189625240970477954971747831735048948499602336468559690063240423832525547869745315584640203469688553285932465877288430054862769516468118986450387833932806317450679228205307707257183707520885690794450243131988331069551784056944371839412819587838189942041611296801967204796846596176020045937027920864595355550849635877973398953329620124809599430683048035917678570080315086946814588772047825033927892826349675948763675863849137116612167303289384082326589762782109007898046882254869302991865994036390385505315229315619958676493071591504623849551456875737803253665258557382307423399186810503292707436056720936993190065951624727439199232936168018460264232544661987300566820620491762740320170068143850594009670631278514086211052605449645374366479554596884256438855492902161018231797842679260618875861289451357116994527237036978306587857526695835329616390411516562295757515646207920207202321571648545931458921432030694017741136782860435089926288187963955025083286667648815464276433048256364706699595915530149513056645564797724044155884342547088889191361529073061018488260895550413088419764262216213487210633881518547540331155934001254536629892423195344272587903384420849829832696042106490517887054753842903804009350714037286160557602819871034953047089005848874768304737026100460807016050391152907209521452675642168272064184030736361614798719276213133306894974616061979898418052747235745786788948615076987119681312842811196992400981736866411060404842702699744354129540182145623421911173095964767811277985861774274117167585905966413675977272000578718609066995740383036753244019867510981079028740587372846500238213346357692702990570313204990372236412648583111204764983210252899936231869903122360958005351696867644745147535846225763402030225437352039937580887658385594531719741594505148099126611839357136226611790414240982509833631465756451527464540748428162124293070167763463633781100674370654095979059907280891755413244290621584282858911137120044022496437345886599363239367789635150413609166231252854045465957013705558059956165810885903849048869780960301045540999782036690090946268287709111524365649304461429089817486756824014623369313930345622564269879598596105772427333316024422523672334931980474212564373374008816157030442541395029970284349294934593262256966872851278352974195430741732142183114361272909930488363628186583071733819525529562171372423012569965695873790632511625831384702829621711981347524709824772706341495398868051710833348444075665182190306333154182037664183197679546308956059902990765878299789099046768761010004465130585850695607243593828529403924487939399561345232654386419137831401040674252361756425885869904623110292926917975882639353973040065548491957417613123002201401488257642142369709696641366677019515179615151112272909294519239978211610800564850178738437275083214234653497869692366311609485337997190551061977181702397814224176550416318086413784651770072148420440038524204909183349834956542082021370884713012821673863642378501459404274083922810330082308279333995908691271298012265510026441666869962034519771351953728851156935337150383524175935073223780848644137542163177209768797905213823746027098930484795682835920593311833911291241644508501328151168940746141916843655528186109236227789563045180062041779784318464881060099690148307974095729573712462806491749285125179371385806166598983447680436258763534345955916597150283931403234101647942029764097987709594707171599346222021897147237889466126474772407891614952861117080636781135878114436770557013148670437213064810730776800605343484625228208789891718447305245117072397384998524106557233225035802853698846804447278757936541669712640677351052068046024909020592390554700142590441016999198071401032524256098550446135288747766744697108024490304917715227193919565452037069373427394702718647039831270321944199053532112808547627943393498659726700994896001090736750534625810169313734018368735030498226105558683012158710411144097813568057248644179418763490976961277579633647420345732782381994326119603714613379746346489771285618904837220584188201494246065343856416889309640860484440777536680026010950541284541348362201914878735634102744339368882572827100702358194412772202950303587481289176613499869835496656684743846617254128626536516553235917622794110533732217110604023578325276446694365860694180677064548433669135590032711466177557925922993767228014265586107633205831497526316807767269045046112806208218662735974417430895766264637900952210975013643574898605190469217794322147518951267105796254338920777372511197943080937995779181622636925780043380146703427717276554270999943432088123679237156578526139923538666745330165326495714579430296540583018839490757619779198446880728567151913481804681374359162398069340735902299006889089701527328496551569628343541688487358337127558935183655587159981380570562354494519707125501154568810938872543133085211383844400293347169725476273167500399234812248853603092234338311701194810926980972205701279598458317149793703880076644766132790902436033305708455207610271665309455501959451728756069325893253159167286355678130358966337600330584989455173371334060408397653460930073345546951307401140469174952970976914303520956106873851984707090436557563100526587572768291150427360713082199789434330762585805704910486244381250786555510222518798036143711844386563858241166804477126619011562563891317830142118375024589860757411646458570449710209746983077246443541875304900899925971940869628764898532336806821483214741579029415441250012385135568376269143339037653210035134068077791432552950873032041799216113288054844495706017678298593020030457446879768315784806476911402028503405441926265740824574442978047223575786084744670545468795532286693954090026370547256237298298826593526363819972601270287281940613991695333983907380100910759097898796684661835242567533821359609344057701614003368921086147660941855788539288483650478943137040834107707581059426688355032738685463554626795581064350849223896609423553757639904585359389958663691574866948172508480982677499422579367525947635908992045123782929088532036264125349293022367065165879350092710278575040285212287969276304272692604445953732132229928007114329390999362428992803786758463300414662641031272636739947441053477770827660134845374788902862146986108746726446112259813575940880021357817495463693349711194603802802043259340531487436134343586457108211780612082357551432182794706230811982489648251922330090191438466393166113131046299300683162598294058745210512389862897323294361256513740400972573948012736677779484194961040411374989822087591073975849001257683507349419818849659495266647578694776267384536943139350926086185752442470611120685824920312500826784461336124449207359797197493931029831459079287757400053092695595773636909862463646626033514437195345252942595661783025096378911382428529967124356920876678244265894347114652315171510980501783875438159081139314130602566118023571510523855455112449304672270767480391146352324731466953787722079501094349064437135876300711724262234691595569229985188719342071668027823807525192642642764831479201426824763230767148267321800533008393746831820277483528696533672817903204153482308555413227894551625862336849896896976547136777969720914340654350878098593733083093696350183492151389626420309209750913597388923568945748997587861999087914546884798597803680119365932673435350061822171788513686203164541340831471875698710002974578176810220161609332749334716360975011145426341912502253205283704050522021274659511046648350540286363979549773355369541589093027450377064480929372664337758189443005114888954435151974632972573730069794292204803165449354105638508048185278394005844502577117314035870239612994244347439412505048184128531459498966930108267666131054377330485062403962794333820556963084152255376874239287361983014885807221881956522164120852674150477981925661399219134953474356721345836153197425816899784986746453395268262415642006262597778932201997848649137585383022921349024094701815198285132082147097559527052419777150629919525437604411735840935368509049918757806674998039117972909293889299077014897177581719250720049471499942384852810616287677557299277427316828205350029425224924136557063440344012270284068660991684949305280692046401609677919988270519326733479508595775656642781417515592316753123101983462689979432917208158641035241539373612447525025389516850289612868791143742906972863244613975107973655778581348574579468134421878235496171999831908471930406202506711977986080961071138250659905780348837852440889790177168838612467775632101775309657227375907228610530735715442456437558048823020737033179042400561888899335339124046990115639482890673174773549062387431127171645003308701618051434450147180826066839303735308837848443920201613538251486054401593251721360005073870746386134975756447514008677273015857798088906256076385377977576441178213714167499556443837792865729786123933572400418627219121234889890552082458866504910522543169817049345462127691574447168641411602343814124278490129194203363819536765447736450799669203555055866096304746765267219876718732588840634858956427115552787147930084421592798643759226822386874168933709439921516397236527740608199350404020310219319405538506567710409882173531606756411859373015642409943839405704488184009223167816194085645789882805377261161537255820326534449409198804602079506642732837874410229246806998802029169905646862520304132633459486570607804838764758434606337042416977573340204773131964558216279745064621282548239059073088954772192712199385689133874773862275196126621333857252110610656466633605176102521390467692253549421074415461401603088460624455724248248925977315211049491478031470949096086679007006378255671863192877383966686274469035690858447874911024076384041683384677949576471065936017377490113454691386882268715628288643835487566710360624987419982975529230967397227387014217655963696931300792580009613637104516693138287759532219816791775101263936736159511148574236410001238817526734177505890959334652555783303597416605061486308939053714400612121458830037936184937448933830439886833781365682927886546511148096299948103420890380323537249246520597654338707776904314089053857670591103583144591995564498813849257332002670344466801593522266229056899139282842682821595991906317413784534104386935699615356786922503232105211419986075033636322486879824006054691566684294416026189164261683471536887307298474926749556681849200666853739833560956758593276365681048163303529611757529606739568347526936755758065373426206797691931445531572176320402433097889393653368508412937102279025106139276995200700736113191067215150386095993611818816085290020732068698777648779447374599887275677207103157455301188123257035111640009067401762145253879221039937779055472659833811429829712247890968054441142963781317614507096561334003209028830630207914063314569226492632580290040734422042742322621474148825541419284627828248611959468506151152623490836763996569723582429252581049058160402889842844167423181260679704463409911221660653317773114475158800513613852630585511869777069761224522471671270138841587443166131358462199001464456337976665932202462814933215033741380889486761639208011264786659124193546102492910839314811115295730186285605883447418890037003814317857901825844744255347379897703895847175117509803823944241240268488984490869181878998890039891701282710649160564395567382152132692986880914580250858198065148506269484118964738914267410157652004411040615710604558554293508281917223218483401875231840129568364720536188360676982826120351235553749508611907489568364047594015324420041778307247480799957262187355116357589182940119457431872354788184994192700745804233500201508493858787984342333604018457105859598818702313692370400170048933560037239951592170944837458975682105937102990469019144275601073883996534186946917438124858193057129724519645179279858414743110177963001023609934773232595097003867265862441524858428070965715933673014074551925977726605315970885084827163808507974042599736471156661811047847919362889858653491062188093597445078906141242752873730197597267917789793108269264847183220562551122942520690464363528333679868490726862868506103369353789382464354113400364340511751659341475435402701034616876498836909446898257025168604743312616086253898372820376706516652537893626648145022337284422221134861558637074051407139132928021029651304058950656530891308049420062962809309078656872844408170681902558957324623463775163380527120202833805438455978674613550075843489380816959746820067415800716197402949939732842530095179686345895508662425674425258025982841464575612037527232914292033103143334339268955687484495182015505153862248744861153568302136535833610084037822139437966210266636629894609842807544491211870746590124883590101394959103290972226059487092268358417110401702517190758712534545449952813654369356341973980614115007585527016461346133810365014744515961108828405997374079781818067835850125762635863646011771638731871186034741886774899160508820761538219397513280449729922082591635873159209766725401282645379585453941914722068802817950317894401299664200903947231911936495135418866952584389529936908826972538347857467028543685971433169109080426495134780092413045251324904347195249695791172298093711993250290809905891517656490422853819736789171313353444828956164728867583606559050813984698098985453236477895732420111735834717774319267225016990615818016283655408989980369938745600996338289139015962252350175224459496522091638940255463609292340420205445607765474517459369645085159783138114462138274403700948365955016872663849701063645183999646928865390408097635964614876296419950230792878315862521683086747541128914849187850793609505436165088485510970172010640054624228115573306830784223175234603448616413586935830548633281078021295002859274471385305683548625247711773481582515650154952837345642664638567212668481721183691564669760302322498841779023889419221695683359149023935326850513243152231520087221985937840592334563511086670877396370237281956967058044809187016276077917354346684495306152539308102550320178229736160884011070237258593954100899426376435816798658404929058909845602620628337253261998035067239179203527963808198563585709105798733466516833083411631193803504148662445018743935918835617890627028400503833261477817349815673699347847132322431999278217371657792290190567952323649471139871674218472036363844306946870354183356299585398740625501054436110961354136287047777782853558567883902489787320881486650942421696575843131026171287417861841287385097907239213633532483104219746369813912561944289674206816800442805508775922599438870686841547118102713373682075425229203767487726690391625368373507815469659110961581855906582398273813195619416628731228316052808902978525172052176191976298453513571147036594376269019818302311441317943507539302908669980971139622897221749791225891616301197753909880549041921159564378532749792841688568503786206580205676935092164312296199076840464408884832274960769007824664841100851801543278657252483303411841907909741526043484946207750239555672034153584741352858370301530245941766230591675624836084551630998669856614668358179760075205096000310493357699028552012448011040826035270158853004882700812757438375475361101854093048962846831884372858019762668917556447469185892200843307897572255357552214066928539932248831887676480636320497425802850250474489805802618994368746138414346262630264154691026378748801296122497172981136454331968028118998929181999363143736743212528065289770980934154768295648360112296367484130870367290033261983864487434849323291807968625814028086135376212349023201448244214868504934052338930234455098978018944424516963257218693593309410343491584703119123575723361370955656583049873431160126685588013357463784193984734037708872117363438948703985856692669232161263132242363604985107202030367874911164019132314296822298814363311584490312623067668159340037855913389214288788866173570942372570175592298248192610003030251341136237434518904801780127063801882843672572475033529960975298951762158472581302434268037426982422932023520999141665262155257542888159159788498617705916335337999973712198169616263933520318537280542151734268448151015424858861829206008007130607552608332332136680632525084178443195587883006142618654942979528641286965318093868228727439657080454194309097721878933853639826247661148095556382000932650611513168239382630723103408256341604977823915227520017139458822406512729377008075681209404937157869575507626430568567533781371580789267498353577290866595695246738750423323909594684479596979232430893305670058676424852783632131850822030598799152764506245232062026983245442716588823579250059367445227540740624583199487540834410626978090458805342915133152893155360739323298572559461312070214797960622698650748843329793956441483501198520639917945601208143587630327610116007369941160154898182970774383540035576665037121521911696335704880300734538747012152021798115473015616234093408738602721110838173873495767991116023609501277597326171076404903891310677615567431481897413505655608390407963629771769055509930122307403207326171615896817420228699713386901429422679037600203277661344976667709253888377346806568696853285820436026900318393968449578242704649173750040957302354540010481903504593639888550444368876247597052158486227143150028095508242369384375143995406462570952568222054567812327081604695269924365422508277498997325375484539949742654835790357171481455174603938171187188906340033370868385551693845413967300351476736609816202961225895938461994736133194898329616277279386510052063695415451745934774611912951707478122785572582383993750087604325790893224648493374264412772445945342257973383697164529084126215275810269360219885240289108792437677576717035144941910399090933313191474007640696030774388953569871315225736231208889625366966105018223727556602661475526113361139897268353556633771206908190370069949262175286291458924015859871442578405871198066321914360075155892377221461305892149559169859747082691659936793994297765016026919868556805878947017319344976214969798632937677447187988374500188925676618538698620087318772191704476812203560708332391148207939303844182551900415671994440025554507849978235721775007363064731221363081202309889398644846889156900351751110643416701816945023796106852195022441688050600807951830066074676210383889807876066931799746801643915043409374539693841236337418421003897886489491077302607112146223746700723867706768607310595259056747548848491426997044007711978874241053435204877375802528679082715655386326510579015401049298708006897751410687106933279856252102892251489205608494153973356646823140838134343249191063086758089481626864903665863642619490628492312504939401542061768080356249839682320375147217535406952877892885458419651430668705089715836897683809604258603614527453718190927294038213310819897956615615706694014745988443738249152701370302795547905643280846531994419890072508076870845099966207873615366425511013804673246313308901423426019186155014351359880777551050746211564682902262449380167069210377697999485556273053115553090290108885932418782501413225002527047960464196605316195270656362499922807244265201142067611746858366369609877252222224801025478596637157439928171518910534584542159577975222927148156778631317328972228962769666925211083963153656630100262317633357510724836011607701209355878948431823625608995682246932988682299901117911455758775317788006584910215213603836622999171435541145557904345461706312452411750580451630088975444183593418811515024547816886859076451513757688236814334684818151664682599236362408673649754988111660753377941150132143475402498943141050536654780668571441963978179171331296258410654135169749106450338012397639548625281993907152785903678063582361075035672611636042668660823150192053544541489752416918622413810444540702904937766128145405489390814672372742597110131247722623256380741257372940488185001686971653472987722567171415556908054457330843989938994158690335820561046404440896788555457257967796924186820280164497514741037419758576901352579397981008816650572842093141351691743349259977796065375272350527391977550976814952873055594763310711328504950946885708970842886205725563476788476036320035802014738924346789218417283452424597267348302081514407784905080559741799961634461153931790183230647944389358322728891453696878174228576818033805755604993328454896945895524109076699551916545796479927842873651008544277763738608438909312540158293357327985581794476472455393282137511843165514076908381604509493954600139071539462741373459315178604094842497015228005186211649148585956016531024249009807586250213241381132568627718328606871376853677466596124073525976767835662124589112176918256031253731615468152877137319656888190850767210937097536538712584001383283670527337160439431071066338782731925296197923316382612565085548310956453151390458076981640781168226791855718665786184841780811278631608118145798266926278652925564244930962577313015491396659016024160495631811081593924460545159056489959009483446448438412935857210606513466975407539844423247339521164045129980150666257942033963284553477075699940755065215433220969037371089886783261525214498224183546548237038423146258341180930727071515054535459101785857129882837827127386778383477688048992286039426107437106667945117255136380382443668994097365022651521427418133112312907051805106807128671181235093363253058434068573596321435759146035747965636649649016462131205262654642963229345131920095799853756738499701118207258583690774364061258624528660812563620768608381868149886508147929696767878620194980533191303119047080815952993611036601842738170170188833023100870512040812579023810888320326572544492590244979454424863336412168730308267102677432115556951738776662862959748956600110081537857083951443740498138729114462540248535652757562502284722298514429907848162149643727622587095253634862684895013319173625540429187818404273526707780088153134906728042194448800455898319703187521146412792519634003802987875836133451676314169175572122112906023733047976048997578816927601673307911008011188535220947322828638544058547413091803332269479623849808630742206307829225650312279733499815314188540352410324576177589450354002982039322309899119793403474711153032438377196146167038690849967330869308449094306939690372989782109125275237707703401429749729220294913531130157971702927543972695337228917099222914392922149818600304477418593809299175935589922548594998420486739656960976583552197224393784826800711568771348890281240867844368281637125065723055626384905295423691666666841419168290694172433154890745887149142379837923173721867789540377119585826252527612241276636877937773864275960356526048118270991340740054690396863961586417809369534148705104378252903789082674684682422688911337465649348622273589922998708068865829110588848371640855631859315184935400095287585189118338127935966699797427669954130720940579170777066185051111539853389956099696118207923605452307689944747382889640782698103830851624110631749478555182771969972862761926551574308578552296950303071746308116162438478839423090961351498542239611585996987668847823625288425895422014761498808189227671440726626217809940036586338231823698147584315081839249130009621334334307972280727814388925935992890092753546117192797105219230078813812738569102848385853867813972743184070356383403673522856902525804923418341588568758242761743568388543469353426696149942888089834568001493239395239970030362440742470723767103860106897627937794561272101444451504821206382692443867602657722845114438341046096092751841889387998745282493574793827111080975799153938400996635818247302184799043271177724884166061951558492602355612465653556147521308293489073409206077191087579222132710400856914137775315176323708797350811274737824823035534108347005079619059858505368107181362408237189041163550527923197550029091191154962716847784300517412665196915600012333640936352084508363859442968503365828582609396595338343263399240668053065651989391499585133805346547290745704890083284443954390963186571467070294261458185681788171562311617873456202216768893018591351154171503558527316853008181759129210159395765988148997145904702289908408285624161989399821416650110631009907444392677082295445725042509695005229346225911949886026860843490222318992830658196406898064231577359495633980709035472533795057713910724821730048903613888514550086131216918776385851571084785280330268600243561589405429073668432397690984531057110682707140118470335040849490637481507443505931096811748213188854060365960429209172809914162598939097344018200458362870586543864424345888237707503398086340682810542098835775356222563479701757988444161043064403383931613288945126727857761189939797723633290934580408808716319644472163859276257897063105886592390531103516382510145714836209937553076792687730742716754933757050785769094276654486965543241991032767038310992327032524940593483588603422467569762486360058238934465348670432391753540701003728072851391130955026293253724834604459307088153016526984536607731251794632384473970734112287219374570377175936706239946848359422616248571607396798514702498249188046994763588448732613722983669939352136006365080449409119651686448706478907676498688871148009878369664523307745540000517798599042467622490044646111809122523480874301535731693361675666503036701499943334508088195592606322474765332032727504196338556661516614960381587719657119317477185769092508527706240539115185416251821790157613122274830839785448131398394738566310546065411505334256575002167131036845461856316460003536699901682856676534879547623913706344625943071400082987316313341856207114396155648117196683321591471356234057490502708958531242470319724260916781501789037858401853351543179985003189226258670982945483057737395261466613767031561036571199483202196573875361680096566002259477304001717445559058224137492628099403811558853541483001606003139399720950876022586203130049480139552551075039562665845709135399957399131613575699701852069016535190187738920266991444752715938414074964219708839318212357388653976651313580502193174140409567650042102917782141587520802730419988144617312080309784331769713560822912218862973712666985599270742168956835708654817864921275433513982498659501261885683900651486846764074433651032616362536128525644717110484805295227349985337320976255361538630488632020201818918855447769251789768412287421792380814213811311427635539320483718156586818894838903523920926811873824820304699073434799495270341489912754726598066148763254588129858443807968063791431367376079016339993931353850925697559984544635456595524776098085319450750472497275238465929895093552868440189467837573091436483625561093654292564593324384280344209387559123734539858968279750079278155535019067231196641921185558747458166971676543988262357562007672932939174974522554944363139303805518469551122728548112008062209777064984721694842122330458871100347851821282479752999584863110112500284075802866128127383075249294131112649021629459654817637532433548418617547283003154199127970693105724427651421689157057968815342473509417339552570903471328560248464869014380721521506770883192936087932308938250832204062133732205410911961957979543470711776893246695836429707193878617216791781923313964750315989084426364161322401345628088444357207889387923036107238688843268403137694798799183970564841598561962868237059793919939074397532658880620338243182354245917911496430572307417561030529069491308951725441927442929661051339578352124197857804713516235029502020857725974814624649195651516627232579618914619383953442032590506872037206740174084751422306536100659081994367810970877122127334981817564865258980287708889111078097361311266499610211438499750208683534687275477338328798486245791392490352001303785364547535869689372634393403559885427962273255037094574552693051896342382696184042920577769595983219226343979014096718882621299334208771772272994707001547398674085149811461187196857056833874238727710903557739117550064271046866323682208021167673467732469301674172406888824532501809983730420974297194388041166430558535001535327168852285196780430999241552501075387062741684785302042924542107239760315109191241479628298572897342864151180280849813680102935541136903774707157873083109772899926505804254029009544565157084404695570591827231984832210167574163897817776732092158684264829421256704875012557839679284594132438787564982591869858161350892704358539697681765916706545334475073553476269758469170392396382855354305335410305013074187562518123049325512223393596440292475018128282205553744724280183193696263768324565535783453654202912825990252720047845090502172254364006307812755851569163970939475971358998569200908148511753269550683364717788491608208026613517712343804798189166840191560962519616073495065108698799923810663648326001450509394815739357820081217570381475138571146264285613277387096346483746701435678205050599560400715330693815451296180117509604743002834996075556836220977737771439178434074568579699641709988138957646152597830492325872542575353780226326014626651943798167471709351174944943133263962454568486791343138809773646476076340234369054627663555716743363479536890962772714112061085001576060762320999713942053907727025304160652713699207173211237018466741234085640132010124744701965559479191294060665925574103155317291015508603663715299800310510029718862724502937949466665067661689610838582962076838597001423286137544234280140382615370550841058338564446915616487103957117840788427828708864725138479438731073582966204539689009604412823983373181661302516065062704944275480646324683730741924232641802546888356482373098784996331342813969269353550125227444276530755599878482349096576031045136006029015047474491194992304982744032617332301835021182257951159835032870705119435270687900908052449735463565647549448454847746863552627240561211089542876395345282302648366416464382294962067858824678755974119984617535880708436413355199587412690016608322238909860102008952117078718386045708108488152363091488859286068078843929595476475704044928966687665662288168497244532408412156384260433270484180763746937990660073956427295677275966279076428879462179841524648993621170888441207650633702770881171820630962588838964927356819521367942191807480780148659926242450599025964410012930460130331134128381268368405416876265540981687923600574405846121084176714248642775823384127009392279298167591076833535926313441095645553831437836966892895804342731853396121520518903261196679636730627517635918451903155688415390883034028224092476239861997533151433097940528355931895592296674403184650691030628646411000704441747274001344562662243148423002021876810963511319438724567718132408803228424373112850576918166714583763631459426486383652054121306099175894842883546758707000663183551050820343776741596878016013190932872993746238476473879019008103670240206007524953263473691547707233787045486877379192170898672926210679902316631457630881740592182688267210795778756775433880847208103388607790600500168454927054137837037938042239852906421025100234569292052023654105847734649506526068963397619150023133932873014138429719733961097539026450445600960433270890003119916205712077111904856754974365268933587301907362459573860722731859028604432422109274096317193998585284540658769728045320967163929298009189939801760946209854978116620182812024500534205389255983671778010644236209139358779762640554851140782463065422873710340789565753524795213579331871756517678614495999027372215584265498870966494164268211184872983891686221052058778299124320139482451784987614583469275051813045402384501281449385153748149820425074473625815359104593655182977639407251795479082588070836578232789719413073664107824766824619836772866144969436539577969549048246321164956783608878812407824180259445463503724669762162672805412504563740617013027149626903776891810652792974588193597821607892411151008688319039797950149748137675228489962075462564028194040013736526134623722203458361610561302684272831541782703692605645759414511780138459891665213355305580975657008147675524505553264099873825885180889913341201072663896776237793237183430498912042447568413487721523566512599299421848587206200368964859418837115015409736999226948801393924953819687630270037736764390158812991672049095782595382197185268799433737399226172240361331535815008001631314909536964767640216873175472837960183898798921181117384214953857815215885741323726872086944960452012814680222337918756378426705768006316343414747580185289588933162206908553992742110382828923675922819010198193704804689832806461638957407982357426545534501129663088714492699313698516900067439786091679176800957491811079261103874974283883174175208592186731269584609685436066528428891185140330698535751491056601036583395589442807483258022755468784395226552379909122066597139584553463850100187164918252720390544056838911340259828799786321966753232291635698235552658412167459122565099852676628214150548868324985870699655763594547548001834179229872250197245646082029997065988398264698655558843625443135134811749787152239800166423620933438515209710989834974546707541433595523706084974282877135737640437909466972317845994920441455242433459743575999630439716061508709029079191141051083516129667513030869336926450988105074836790323557697124468988720552762948628359614670236311715451853954012016685721436930074461107704936658647166589432576061065482854823642576247197721777395672146975210744543215642445692345544509657115606360227329404391148462405625966281584159569127377923032489151330271408495556507101016699927501155934682814401161813457345449566719697400102031404475674654157495205743538811899450142317055724073547936281027739431957236951826189442604413187103427961434999725879298303868238890260709085078580770065546307464579525749708739883009316349041494511022484992157266231227299615028883981409223893396596096901441073312919616028053186926893254211376395433893749891625710843375635092987739695736419659508048798012187391519972475715989082050529938888140733151938625023766457594417554884611484489385686958277713633526756805782128534839825637861767027761519812790426217374983656634012424773295530504526015507101258806850297731731750432565210178697916203319840727304137377309110624731320643556514204544962612873064215832351309454331161368354862851159807044726499316315682891862396212390704925739919871864130524722826837064694477880765684262351673751647668958524938991176856771998406484154430182957048691735561745593044861882883923167964363151152877648416467697718100334748247037313316338122643641468196707123010658520111428254644444601297773616267782762736716921440734167444926918682668192751629962177281176030883716856201706792011629399685587625576598900166035201383675378389477852355475689694856210406005838129833028138126143482872755498600369627767423373951470096666265143631275304306413202773731307688255590848654213271156953676993820222066766043127164194896153544680626616525120496883965896842299256832240394669483364547740957387553854857682410228562134929938548858509673449623796272804649543667544886207664821504715889118505514107882765870279470710509158691455733455194885039908843843586539563709746210774167152262080616593928216737867423536855942297049723435506892251173944326458668352842673622528151058032763270172899666703161045275724977606562498564764724355785066887921827273745917806591926560968846711058822966290097760570873266644993324232644351904545148778098972191918137647512078780242316908174046439184229147641527320064359316919395514930771201212675113528872494942977038981866328990391843691832582956761631625852556062551243825340710610165986620343254436688400705727729084341363549468963066033739794360525642514156930510536778437174013478213691971856879937820999330373422789567943854551793098911734743187404866206695781658108936756537696340308691490260807426623394850448992036532025443668549381464383415333830364636164535181308531208957622554385711599578714198108703334568383950602392696672751811268456896244147253916244191669321230132109862490843740663927253831691336513769958346099589382150089201436656400864627911655417605591156884466269144203283549953644685767698566532514360924318749856149707314748945578365742213129978870162710143684532448050754433617524327605160524878170870264392339494576799015672728677775936534195834605070334511909023588241829361124552480260751303947286676065419968463641544771877986945221562280387677500645985938797449053900112355928201642432890889174287719412179839234990537511793925914033001329155279879120471392547782755700084774541264173020260029935053790052811171491549068217368379971774475008383629416694784124868159238380786166647782673543527471169886097244022033469936197726024183226178380441926697201708134082717403105198656268779191274535510393968873856263792405067217194025035180316411182938297624645154401867306479049140628888384024853280248761471325598895965950970939086627196684525615359512473696024728469537446052831018563678795925134418179679158247084982216958394353636724462998422560465578463232043735491491508728131348052167672136598667431240994162898698431984010536006683362575801402018956428226599923825601366408087753923624266351871130144556814277994863185446194663153550276878289808727578810209849044552507219179478087842992901956537917197852762954041360189598961358982040839780970556315175248124782876572260367336436210218002702149357398469959988565564700508750091806914160479408505000109195413601226340530874268042159894695417414553530277091403226766184331350343845213927813978081133866898580994918465636639566686268623708294914881498466535309749093689150169289423662562218658246679202478064594556253287894363414970762136044003465514534050044450626563861561266967925151900090671671109082821582004449955082003601007212765200509113710541142461615380521246652617951469105525205482448224021874352001483823867149178421031734165195608198767817835090332590751224847752263559502910006029513000564850203718061774284469603814959832994117952640394146912325845507999673911850116888035045267086362230780588155000075673326584001904443198618639288237784317735058498470309633750810929755155811293598628878870002551286956583761903422796515805120569058915220372465543524309142992350441085687646858838231888024008075367467945361940037880120330765699547898441002921760286039660172607467116823017560531432032297422105828395478385039708502723100822902709355008262611906557309524950139500770970854701683631849342290268451012798763317642845886860374322209856847737375259811621911926743888953639758680066934804024113043356384921569834184592744667591591916671626839017781152055485170866273773760722921591182360066288251356105556050789692780908002883307939067325653197310361966955272312250541569834179698736347559832180284218316260201083813845809873928265057616715538516046582691107951710302247903580531066142086827034340519125890040334222825950285364721887898164353790838971147891891344530032099719921860096702328335184415465879323124611331870891232455173971161963235113666910450825695407302149341671892687192226146306847392919459719490959057494320062225101833672887919832688562299098127207743895893641369162327172415532771606860259417455863759716258536458591539890493862631327997185690101138738288649449350772996597622511603694706615894429576068026446671032044811047429971215912468656507076077739459265032614334494970957268028566251468463503484504274425560941019807437513685609384021292606654481123517188865416924840177580048179543943833548368468920053750582585034550639621072210644337036715956311332087672013016684971903361752465829794277196256289522047698316683255742147791378332740209844771178790169582675195570441105596164598786898255729275424169245055556557037198153507656427787137573231567265964481791025205498289848102122633569299856503454212546948540408101767330512381407857215264752870381530236030938521236937653731786068437600343151384716500412471735575456585707784560081171251653066032751028029691904319361385193437098447908427044569566972217660643495020128642238031848810757917855740789524502516404726913950139349583902829116437352711063140943011155573839784435425083144119764639503837975281625748006641910612563490575957359588758749091989494420052304785020099864573633165203394885364982441573640234151409857189698037245794324367375583163537349115506428051135861714287285886693346862618044685385359313289180125848405778844642586084807781497438909462991362263381365465408568823593278459167107166102421982379496846253451831218521705799848530848019461948330992474226327719316093338881934963807605146861816458702802775661129323141130572597869660494078525729107665564573882285748980571037220284703909538083010439647097366672230458420643006035124997786485122423552299943090920728635384294535790800834486701482049874682558697895813504218089703938884059245756975536988400012111039456826332239633750511316148963093205083695978393690540421412785016704872617685749677160761841416595731365198657806991765225981465763361739977501886087859484407178905634285889396475835880508361067223183148360395676788610505640100377888164930222940843872801550971387092723445983002497939015478841855258626306990260822034599671256055981880080656016607452896529202744199866681078686730874623669423560296066497427820538194191887376860603388985740001049144861106652915810176656240040604226822778892017776405434864854496653948942918998514708980338691512104756051378146778070195719161501413274784600216032693337169979053864622926845014363117437765147842043649658914071717799413495270960126080570820437775570529338748108740967544686790295640769314323133736374836886879713300292862820565260889047067540916912962856354362593782342094111576291727510988742687126509824491610829590614214774804528034763409253026811597186400689261505982199603450825628050871195166544570721282816363138218656426277059905419113784930170561197499996076314799054811435753479439206647302727088792481542840218598944280817363189209207929567759746527965551632015997295618825578573231568154968544079892662934998827032414335833993498442451551958727938043184875290007570438464635718764502253789286640394684452301051984024319558931808363853600324793841338939542940795241178728683660391667672257165474361017013475676806439974984045908718940469560458506501207366035025695772411511136592854623617721580243640672492789841449665977035479678853591830204944094642786069663590955470208365212010119560023837411086444482979826822605774546495205693757680778678040143499835661831517743812345939784130257084543586519180428216309581242688244488209613696753390343463851485671266534396220936635762901025994743162930666536524089719197803520283472703242456924027463988375120888381694685921294209216051147034319882262406090609853997031977590684736231838717549464658077889397046498246299989276529866804589917411982892733348924090708829489262022915965097377884513514627725096743911300689494321004786512527690526030998398821250404653570405775534188097040906577749411254956412187728307353919175166279359215465105577908614431132478104443505718386734486208353809289083018532080640859901835428248187564752198877829358131628591525043838084525935278175137197250092331501583624877998548180205459575690765162035916096113090566365957692680985966172350452881357681905200759686479981779529583207150201767814429519759267575585204501946357157939097161290855196550727211054746660933994579528617976322936562900364652405793260288270112201913539453929246342029325061533867860012396019877591104203003475321347082854327822456981759055294188043402473449002214563658716278874199461957261800089307110266638721964941097099373462443497621734712864060305041027066989537523316699316709747674617797344980429307643325056080702484705309315037989211396633348131044226857281045436915653810293902696879200388304399155772372739419740486522939626108427910600752900863780310569677903069122112391383838968826541793730437927216559482192448797949606275389389170856271681576099126430316953966200661026092033325665228627902843705949632352326271341357259481128528589223147519093010081350167074464067568571919698465290908136336009796910745489347945922159399954605382097368917782710062496972740801323177755872106525937967993273744853451886502053418431523398220139114724423140622660989152702004266991699550389743964123301428076675283582999092710875490775988053034064564975097964918508164443195847947424616740737349334421771983827672489145572781861979045728637037932909726723811434844188615448043563781768407448295495119955869294384392133099433346460142702307176270773600898522863190833220461792148831474527430187652074654555129983279581009237979224980316867565223075577589891285096149083942964992253742956950681145314791702775246040127836844185941844823964080756803130432420178166015238200229571374445646392557073161145010543537043809128795886262321480539365692077482877864325972338117293233637330174447399817769631144347081391956052514273897914804633571888902259258874743387412398058802349784946543303442208965723893568616980227459568200737945859522965057728817648802279635758169634891029176740181123068303320130469522448457096992832695962081384060184381443276716955458792492054255239861058141203242066775262399686187321480876287474123351259740850985611609521822532303146572871367285476988644137549869489517640391360576349847127631847633941597976927363563174758056959514346197731196281300797481450006295700147922881948833387866321698179280788229076572726608086825866681874504772711441140964045826640873756277458656528380997537457884886084055218678358869110798744023091987791154603068961877643815681648796850702187084698961894977401849399728380784723873342228625688899442352277779376307930578595411043426324775307676701540821897269862650016700461618237896832194706503061370711753572965783511256811441017468994160660782606558173868352293322272445416390470842253472754192446266518111383102551285954821286528820303414109318100208899175851990961521948225152164389738089242995525342475298401160347871618980236108276147137009274823216351172769263775120779679210318359330481678324624099640935323645848307194873847970470539298780755374768378849234683867560010511122221184981999057943832817984470284526560741926940632587948875826360970638261591579039293236839902500127223516776895777652848754716285109175493924857982308622841803444499743987919369149400167792036956864597356389750451965912933538729216440381903931146741800653706150572596275145802628405304788885970686408954134730384186646716314492422495633774575269710580176589944766381106820843678772110061539679721548366284627630072132092577401860510054966074430735790442581840253561884278427943949647956657939400969357497667296626564381687491002272554546225054665968642333724176567415061277000435466311310403234574758671636538388830707851789863718824218438567342413108708717502155784447982726726868850127080980982868634391704061488310344978007607747004220514486900498609483758714551890531540290409446126406417329453121429734148237182417682857499838813692460365500639036037322995894789983472354016840611161862531383269202756001138029910458020928720410076559765532350719242569368392156993472309473503713028278213201390420835317439754503039594000346619168928265893705363776122552885545767849262372712145128195227718160984551776285290875457969750947717814961892305574144911387570597948746189208891847733808472123048423447409214206561946295405597549055163565286113574798003197214671729033585575778955280001176832729374222449384498474594572452629720592531673215173410803860053607157066605921168773584034843746320823527480177386668184585958999938992250317413687482645458184884678875767369909152705459080078553919935713050882190531156465435297602598667449230451821912019124386947569871481976932009400186037937337886542713574523591164650700213085173240156811456669076326750044912893103006445007371253680041860836298059243556331490205378228183354568292671515080613565860255535245308332597565851112804471898478077467843668498606714869582766994821921970416182900686692549731013480626129297735740829422338515816991459974329558325240212879102607687719509757496805780775900605592138205637399936008773344294252512438092068098248712699905820233406076860156016082859134492373544422241122683066900942706873648181899320769090150803487012392370439600946082489316790797766100517926069176717208882509339710877113167328008274307901802157530258461315370896804101173525508109302430838254720064023936523670394672757801450702999854662780892916204817140431445776832280243241806177497333643426584400052694305870517589229120623331506086379182868800444908045018740319124925405500212117666948749823197766046252790746726487492186368238456106574290497778946074594039920517397222448185365449910316186113641753337133689095548855803414207246874864010900551559385118838928737276955574266375269311358971295105612079580939952964063595879427871309578550228198486280820617216814486384812512828138611465193157659143222043012244431352429193282671883267676641666315277724402736544043854139206124412205031343884346524622645113055958562009821936469136266142704160112394231403300001459046099903684457445170064687921676655142911604740750123624035649880413141254567077674858684363330285597812774957240830116827773543309690741810982365612754907914886293944106156340731986128600279461399000726436024801021950684238984476882196702499219627261954198475909880570136543561294771421620424577547946006950847117686524470259290805146421694610123973946331771663386401066861803341456514139649130053070929719151833532640061154024525255374825565111952754688337721985914142307050857746474484174694631344930463885247844568736397996027002555497028856106910845986555881694525056077647260217847779310193388017396707863960586250367310654073014734351506719140971686476885855129044496132928562710188493029355228940239606139219308994547761769757204257656476914255519622523195247344769858721823097245519742280733824877819089053322048622927703192984829292592617988559786170423226424271947556454438602609242770182634573531289820415209169500361863299102828863602178055761360573689350593887402325614552503474434797975766815086087447214759803950628507087502863359061908384211659982747027632781453902133110110323555974950735617375591881430630697518047576444308732040465093178132548340827945729307509217893496293231752230072748987424662994926687465424913298995485723790221795974282523683292422922075872888230067457129552525663577175073651641096231744693649715797123110322358607602434042059433798658000618919509102659526524378173908934611560588340875363103716412478643115216974848559555388112451122579823783288907677053352541340335647091471765491027189929579430799272441484465477105840397463055583278355730206244235354832165798329904731120179485465208885079315125747372270240240901532317199655489143870786161316398887358851031641213836045579121954203764598046495295527868389832608015203066641449636836589277221784825549745917397365182746806578756907120886903605287746947731606464540229091272080605865998629872265015068102178103809276528661177594820238455930587215174448707978940844529656830881021860564631659526197063438660960172161889352684358700019278837182139849026711343868360141054906670652263865069821092800263218055834287439250162597825690441808477358545957296765492749761100784280448214546898666920225939145506456989383412772233749135556433961140214032191437510338798532701886036707161227566446079702986932915176455468044192012324340638834132875962167514526444455848289975048923459503083213809226289855940098159766018617701054558065818295730272536714853667371671013341453597540926547645439683371508007543629858594515891780414682115689278851858075701698004689547953027060499804203607614872060695529528821327026230921048226610715974511012009836160429079809752007055312345713246372003707681365683315466365520964709183319396510012026457689952852054927902585303455294910904883183593629004537515566318623981401016006684239736367138080592188642385658206854781314353638846660794458270146221813162134311925679079447681683349111119863386548191724335592846534810780276119960545972535456934026068809004894448364403782987964124507556637678980352244122709787841305541499455001381999984070399453538282499589683733814206749406421721295383590725231086169620105377523524636357228747501087826427868428854646327311031681872471873389564376278096359667817230234393196639014173586428559964117520917474071114060264055821184104353288204131131375936807328911470303516910883395117760095555160824360509703750844483586445039549773068674318784794457818277903177897483244710142893322603017387105137920491296383201928637293947099697466338803050637004750502419638928272697750430642013915369684783757967761519502231609269930455067954279821085338041298009754614729074116633829565773841374751503991120096770543766955861549003937106430723148870583676237326760855534150011473789905976500524890865433386293163051112509301116937727332483151741936062265007056025252834198933980279923480839818118304923126874153891891383269830817482583434960192171518052338056900595872612115455311228443799138599211701658568819103997404712559428094184626496073612932193292306333144477303663469507850900661109299746322376892381763140607191751211199538558791944579874720788531577165959745163994144267591791213074719425424223635317493175556099567315080609905160179257424327740749816848930168225499900684998491531511528752346116202358036305614975464868021962602606678262506851095203999971293944976043359373233528313597568311130113984850287686600543919554403437351377653089224562017895708972608118627372199068342340511341010450003371139403479635112097614006037704945873506899616228237463080713459590576618599734071306635583581688216024506431344634877142116390807293282648572571609743718729460468171703482365937033940344039229405902597000509065172818495677932222908107967818887046919159525138450865043525120006336363704832885152562505086293018487445844401796947778261292832033557465783164476914222455276529495406235055896928462250801891818418854128118893334298485577463379046282817613009164837925556586310641092199581876355423039896629832522102715477420052332917015211986741962226568762757399053542075720899196023990311595201868869708980574205618208802745171498408474486779359875858173783880513862448670684030625677913384806761677144856922711810022347729405911415057457203209216494433769398621855320073765879399075311998695869580111227906465034079662955029373720300851142347705219744722507156757037304600934617214725973353049467424372254283265685430981292606391139918220874982057490880664456201277230860040420933668619547131662834453212286606384724965318048196111875723991773778527760176639790560116053171540267320475613040477024328157920669656628161973096266302269964917185042911914094454285700032607663681050120303202836138849205258504350542041222050457667592731508732544789309900616132361769203624358330779371038728657324612204583203299784912538909466327934609043484234667158062206839662103303032175727448534771560062263196843238277012796243953476559201778111302432535958783119761916198756315088679283150696095660805402884946682324292918167874164291909432650498949693402016268791319044815609115517517451697387310647498146308356241854569557912130909211103208307521927572557033279117437245288950512500539045819658803775901189475871380099354586677337500813380394008363365709646380840203735118652904245267255817354993109810469435743127950349071283509410989490816473279402216166778589544250261384129607749461340989715072262805557799905786795973184426419168369174475756265470488907673980009328032835864496700794356444680803721536741757453884566127856331025961221027121145115794223741358977599715634310750625237086683710335851253475379493248473655113195086846235265185292721473932813379104827418141630043181278248920781898481393264277561855892413002230658847993311238302502679955220296967409412934382582330778707034685980888108598130492937282729761163895220890170437410447523266665904302861279331410467902057597337640149954546674571275017176758381614097623501039966530570446080220434626322179177199683757078883523061601627328441444769654844283950390227904461492779734755031234983108724016296649281934895030006644758525703949901189313974716644155688123676070287308960197468801586632256824273619131531305069417289743363513702420443229709101939162845563092408799334363928372508818783873272583072951045837558731377727426493837347031294075901346495159967473087373334882744712729012637596229946207533468083794517352841532666782866211731262512804052598896403130296707195585544908758085037321808371296912652076785396967348646909573812068328188507452095369448420548668100811337890017674204305737537355355042624824200916481724664272777875109664729065459212621446891354416081591776924364450557328410410012576498857275585105068280290943944693989993539578659010873098781977633000715630247045741553356146827886239180064029889183134378025822815823325045164772664571747657399000438226362353462165372075985955884261980118351159353436281974429716195123815125678156982707843327654402410793531501740890011199720913139154258698270775263610523894007003471414040292437876537146978055711950407355971156087924551127322338004572274392188509633276390011332854791373901754070057591293079205696983396873598581181658031417728320220519655252410022550599984008062536961456801044045035267838683535009866706965008754840406998592408044848995441354541157023551052922998581727806475947709279618608042592341398720351120775595727655778551150230075290142509831184681480291338980439314208722779437253209187677175753355438588664094246881124504904448425283355014679729651459592872703926179377839059415076738675364800397584356099540420382219213749158956794586459551434205890434933219107959980539727628766840235497432552508422086341907726509144321116835459371374059834456257721425178767561604011419021739134078214869554072325517927972130103530118739366536881775712175727438767831410553673139349321125023355616378073602435551673938432622286393237203876183711086959202548905705866905914702325610730418897359806221256349345244645899526498977505362678393046624465683536737517189101632220154931926531055925678334681083248557957945669998837873354572198578554188451962794889485284926059545179705179544036380111029249204111433739964040131717747300199484366316026283922675367815145399968350966106582283069053082883156918694959654864243775464744196409486114172747115239799276254878651993120655146214357293994207646528079310610999442852980028344121582934938787326037856341994098535145495773887259894400575306488954422415167864216597391859647889599041051455342972123730841808733039243526961050292973564184570827211723506997920272658817065092656213566398120428052981661200792882990482390693785308347913460736811943974264599506585238441009507776641613323687984753358880397748359750030045184263077993340062640361656019078609234270428703301792954209647156324585691968009224809758077417093526527153106502428767879533568143105742492779788607328155005037370011749306475910022960099945350252702914407926883051792296197293183431342060934774372709509510276714897850659933687475792654562889011795082706099934089156719650758066270283957628588255360919584090482031763047830283076403759645820778789085982122517766078893296242924866391678057667945657606315482404303004041385106115768061422660838857911890636536453291601142672077594831857219735731824100288431832926286244207110147257576814459390387186407416891155160698160497724092846548229448104657144810831576973232760834433690453609639097125009731140310169400931183345271440488374524345427200610942271197816368186002360761090224224830273837836082328570881389727303501540192201901837453425898774295211057285254889141682193818516720140200831903182493657417291590664604734219015443425436899526753812639160063705472722876505443448749789175841665795622838725058920703952381084760260063006291222253559913921346865763585430468271150964629112399500339097643271421101222541122407831032446406974372276755329602070325049392407280226687440472748481641964411745737045803686208664342036666679586138305221693073659437936528519191304394213403012027164339378955805735105677222535869617718085665589942880416554353700789965951763516272781632932848631451001778598777470946590211363243254052449492685071155943870948929714830872777944297091815117292756541506495754577463019163153506765032922483962170723185226981287619956057662472504311219005162633541242686255668504699321346206762268350883660524527490642603411000856605623217890999473026402069441175517573973908012176811229500278604208328843883096849325528361639834299927997772551104772355180409000815383912756643700265641881466531177980610433087352795288590990353889530754211905405905476870810535168452899123131748731956435476376019371267968070259536035567966176533611575981660007061534124898141695471777187220982935019181332937076561517541254053740538630284389784915214455192137131946987766927824179978688694069030825033591855927212448960802005616163670263278738691223335174485418337802551929283431490087799846078618438500693990404684267740449976974043160869283161449962661690434061337510790842315752944691588990499179734083592886792060815301367818012080096971835682719472023019998731739643000779150264456258567053372689622403993999452488146113583317008333759224446195707181110701222248072392893053512504455425597977819509093682111316751360571780467253629206122589045633346625737021382134869866815090561324814190334409297909310509165426327647180689282829163375400318882654887325335370233996925979001798534023999689517152907808001517060708246710024630213466314105808933335998730708334187516142964551274639977292038605586033821870273544554421990179665228705088547043098992252281129984001634592658810227456534497836403130081801348706922692312826065562829081802578545969095230008937288729979215539773675605753804283459730769167523069487063431503149089597366936304926421715748849920215513059228007802404780509684122354693871110737674757429065630057342062256108062300816693563115975169771291750810999486205564284467532290040860863492414295346196336156096520115234287079698741745764833122174087999849404103450302920943443965806698158074394065219950570842152158427739346984201654919075318977379772559553317479827179770868373649697558002013346083543226011233719578913462284408690273128579451105190238077530216655114067071651919990184591520384161010735709474532197302423846667758142974114272270089751781739217298471316445957943121316356153088512509253073695577735513681536891636357918265505773831998350522282768171647936165868128759474530120885056904290124317520269981248607454266729796024186111394566141923884295160170570450433916078167983958810455885081264490512635362680220683436978619682651888813302904122545794671135120406766068826648169798391708248624238832067166567453809337426439762443688108997645328861334415491519618833895782364583461246747788745687682578660728632905737520039354023997546355284362796038671947059167396431644345830799224863126559457296350184449058385404137419397694849082160622996573218191750810718189777662170240057969054080018249748091365823227614768330989636625778359432279310575675859390011717154086452735360560005443958580434035337186373780344696643145527630502670381887504344173289732228730784955220272981543462630244371678877479987522247963759655352190695208528515540246631470964749399294891047497187249303711880271464641426804628280691638293437897173213515912632560883965136375590969250463696240900979094985692605006911758071026984799880399174103310875063885544395089936110549548560230478890703420545660453496872342896760976295733118695765221985271703892009785572265932080185806117320433813465658204661999602188436436886481416340495037311941868127655727274735764366274917047886049261424251857563985579365741967849018704753280539038244355079972660789505132423501982866063412716869977767877435468806236135388026213664014804323305691614900241820021013337295202421594631644122878862730053375516486312578387864865610367036288723539795213289239098224556445495081904221148849372915495564304974157766098828349164825125992978598294396833940222076434028089831373376494048819187011771238515399813891690769409648124602379627705407290812802178698074846334783957165504661104691117608682722284449065259272346326211918370582396162150295914467796418970034334988777646620758728133799105304101185821349535862530184632913480266672385796706042870188594372624808112322051327368845280430032212418696474674487185765454526913093365817672650715436981278713352557843977155620775512671558519158444229451969005076598652424974972218062231246784511906632432289248976989015510525303435373859766536814926190154172127628588720747232634845809370927146617351503368779751689460196531344825356303159877590894107144941077708350469494754927296303394159458753999010146171847061087497037381385280899062754911014177489665795559321593684642439681639809813159380043242417343696082921901127781217611997089446981980381518739448307160462346786461043670864596447382186574715554291101568465538648159605003714941327840219285411538993860225059296151510439358966736291402150655758962828686787290045011436352424801764741322119154847229839583053080386367012576079145981685376609460492369843818889033283531004335818844478684375026120056929973039506560946533740106886960938915961809228556361512788055749304589404338074919522691193670793497371621724991490858933425345266783823448381408122054835059198112006302977717563221293288796628842918882896227278986618228772034683255265914879059413333110632317692895546137045130232677757521419609033318413940827293242123208096326593932104207460075679252221815365011204774927755681557641406872494652075494964550682948987263428165676912733665447190585226882666765872725637172779102661050729862876497642037493806159201008011989988190760456272583597251654955826724511099653448029744794011638637518234604843483027263147129672903870443289138683045150934506065434494267922312019381508475528448708621156320814267843077247645908731630331373793323283325891537492817357768893027722702450753671661142661399040953813820978992047914777056785583987202092018494944752240036822507692017670168051481113893578826140596637190657838475290569675595559710046873686522815723240898902493514345546998759329751902746257625265518365986643289067390890315015014377862551132419094198507048989268101528974211691547783189277789330198187344885170993784037706278239707688580237532915980776117211808743889620487392564509500340334308087265815551904468025837687086205775671838546524745563636766356783728636692498186962604002034414757606153017246806172864640568150071019530141786833138042552132520422058308689493162540429740620505591978080202241350905072271558061853436851134437444342476696554799048185629470313363643793578318236219817908294876868408230511077276455875177196212045034308295225639026345429105314142350471614957106500316357992223232515066153903713613263915508954245265837807980344712839495486043996355753379066776169803872790721293234125070530360061607416287854735824330696036453922908305331181145319429532675750298497007150939941500613177898068126145690605055985804242842912526541735547706998136800912849200422160147040175196202172678351779332120058334237459817615778348848651052267973134620552749990369374020355736343631683066062439777200894290211636110431774396923179437281886358567077580267184324227364655948176710653229281522591035484452204511839972460864773156254552196749117600873679495014863653262806661240271886283934869883361986141258111061717626437915648319525155673137977413817968073217272627794037884991088802549732388750364551100803294467930535037879498214254440173388995062610842922219294606272166534209400047263884207010271169193802493657806002290224238455084322255639275424171963344652077286906011126456992617874176676638689222484750502600192264840000477115505424055680762403135597125836244002752400983766272245996412602786829188594964761461243418559957189391396776156365250699425145560782589289793463346982329623401229267755561750478392786633925933865408222622837527332507690417335622645492744794117398720729383946005857905732049622075764384066756019252571625288955603910303730835348863308775335122473742638035492065819302028386071409425671702752097534843049295848495130737294837365794905060783503070817429643583369981374062761710792564072826675524605512711555795005513698298931350429292203354095750056789260959043379719018205887768003472662162659312366634130586044644827342705913317515913876981609710243350432347659298492314553878835640071122257526104636507741026307142662903060123938703751327034920276977761507237506069331023992018035047224609716015633390267516492094461562074900377838668160804295963099445843941266732031204587698613370865803660156186599789672863577402998694539641165395950671594670645255886088707124475360181782057281890144637664618853274658976822423815337018882073373853812629969700048573716954232483460950776841290518941918895263829994731414176818452233855586734309305078015505190096874156279914773090510687900752187676236214902896571166345348721398845427697123562666918769343221166575409734358835047869582251061682689582908832241353381309800438558078241814631052800923578870130691342921217711603413441741325804910386505410354824351641254329539613602450871887010830461788548921157863681460980297122548678846302607188732612085936144236245754123262653897230739710619092872017584672595158519700764178412783169116510969007593360394831758255703517909536113803344967347499505475895001624269502425612531954576355820865661620707966452351859700412232216523737549996802751942389226693307530124377042641101815177773131784351783296580042170949313258208652455839500904455392993461958562058989372253193232286330748342735158868341052374104396442333218327706569280240099607977462405178391016921174388030808573423451050385871528430196930118207719218838146770733188920191255220164684787512212104001950715906769456962109993865318616226432659861084771229749630554175901361548524187220346737910021235845486915654677359474587975730721417010156801269188061823877199792915698357587287374995719189966746311522824588838366849078652602703553136597349321767639359918187890279272410569317941904471798662268631601755138190080138660721989231769394080494543405145226025070811137153842234202802747886597206940902125549387082481096521968016631734242292947216651282676163690854866597008260438003494584808674134638694734096892122481848435755736011570299843111121678893089541795359897671607676527280078302181889489718352099263063965922070352475385657559964902792103480044386850385449356891718392053517090974189334420635838262573314713793182205214271833221800592780101888158208321353514161077846839388930072431382047797882094995541519801321942459113145144778223529690263148680507917166521398600542973754576506750207038047707807198865758194631011018648397915641925860421790452272378778095577727200417318232849336163980511257923052298637743146872810258913664587802624359692826796811225945237210956445269314960409675912877253563453584357711457436947523720061934688737793699474437975360413991467604273035258782303910234304849652677827608801259965310947917565472693351441260858739434342530173326618154998130519215840493887311391834405229012397959644865710213437446518793932550080287344690422875743625776226995305720195632166178157049988409788555177422863014883664002328761730406976367763402844879067652201608240498125129026817225792186124422699980435350740553950601280472021431808945652455248771652300610536848159558746883019340694693037549844465953397078833869008214676004161731622986610017870072495730833820818970183578676863249254466155008601723214352048293645080887784003066192170536581316176192588823766045677809170061184998150655405988046242945663960381705354926237836639979685521019694608602177204074171324231438879780759286463214251080331294358307078528216427029727747017828644639557873879210091280021138914641347752388248971114406893277513200676843578850055285639532633324765812074317671308565429121282097670051632859483404112252017949168909836358185190066583657645932546447139387532889157105635576185812388220436576983021568682124488735525095846019270665015580879198508798924344516270006504896488015622617119550461607576484460579545483064874958002309829497967274296344711984944747574272924978218627407641936883517187900597152190230148359569895024238544569512119049630114178154999711119573710595050691647931311141111419529998519362567412716380962906821716302846652621007955139551286820205939233133589831654083866373997675839439035846316922752089341161514917553193391801817192028850445108980648856807940065066000714652018676498536341038481034093404674633150419491314962490270105272130913997079409649774021448189149948221344032083207187919835287504501825056570625164808339123467604947410697321992449031051984711039658659114901506169826595178931974449361345606423425449097169485495686085465659070909350766167003344901747122854609710633197309258465469303328604315885231267116479380633611764934975401090805212356533458938171794984337769581016977721672329718121966778012807318839106932355923649978021481504412136881247388314434258519797346521730055235880939207846365885649708093127462508967177213395945955496486238047994580931662826787431558012835982014464114440922383392168243679885335044944359811882296871718728175723923883361240451523043061394826271844791651810221905802174387800234366757933951440777207050446311853144886641316683143120750170396333193812219425631090444646227237281514511108479466574820401775315672158809258721705868948129755816756420783524580542702665343810150341932294310584255168586260607013232239078941530272247019808711576154826104272386264639031723090834083323735327159035470794010297203188197075109193955876877367822444412405725738006414734714772360684508829329672101916191549338446295576804594580500804866531685477426560731577745094732854163625857235406075710301850293158267000801331037834347981797978872201206663193550546036873512952221020360390379548668878892486937515049296186578462568188164525142191944627027435217552000099291432398123824539821919217610779187571396378389105926224553906824901878702585387245151195246161579359872293723787574932879304241011693794418963246023843961338415431667089302751574721098508730781975818619347864812181048376826208940969436006599854742733759130795711352935930141043825714551078624784187258828509788199970078560931474704717583401929262212427721893523926636420407960276350253898088786193933811949338110062986267317645823896512586220931926954257255790686114250841321750283183017950427161829123434209480530806452089141721794844572938658891897831328981543805446296891234121272277640384964139098858389119822790785411604530735337983498169935379773849999330754913414294638212991074514433825524710250090097413554259987770879964329450780079787971383380069554377031822650677891484600094078587862385813462756477363322603189120586336158259050511732270502405544802247758522293018484449293439767388978428025806362678175699068849123933596572149473935863209089660098983118477266652203783837859368815505893749649427846890767004986189873582108214354558987775568981232047893544561584918518967446746644789281665284113004626583695909581440214425190954483302677506555220332042197676093987305072176760306016989604210581260214939296979652100111470196515932315541651494561098560714909510681500002444156450476250665040064866656313926334887638957462498624632425572020352875443165613073246927772334571736380722954445136861618941932742021910484880071044383469294282972965920983341844306335272149025913022278435363318316347675351139514597877827396468673479860032566563966116281359816187630508987771550699811728922141447092638138004606307960021547502581704847777264545316649223119472047724647284751063739348111350180705090741522712448043499465156333179120620774027315278065119090422486690817331961781261920258976249487392089227210408330794123280180034744276140083115099135451374072790285576306542220883553759810744953349451725688759050626536905797057966404702317334143272719547105186413122249148958650556894742367217179172422256202163466758831187958989424508356586289072731856697165670197977124856153048959715982373267988059502408682508135881414341418611666803683762491274319118560609419183223831814590263176272400800308287182731319792949370862305899787585125783389521019136854020620520815857731368577036633382040946223076497699630362633054514237997573879480729484516200386061506772657935342431968898871959398498477709350520111627815733778023865410701005146143552284978164213813009870364288414565406010002050383643272879571539387518667598261112685267499034481613399195662495285365970172942043740954944006155549625451631466328671392324569877312573886049547925346917483780297193723946429170286843657818826904027234393399067555865292631474524812684111950719757201111117902726502909907198393328149180917117157385681016416618611566228890620498283488273257725970962625102834612404396346504535820824093595626616566713784884660600468816500325121141786184909890214046512315009415184860585442424038750272856604283642889140819798173923007399287694102312772216376512745731691181399762735372390753206155822380072042501235496072294735360437679871978117677036786632635734654453744465097381300952625175501647070208439533018690130286550667078021949510731434243953391548845407834105102861972630550080147802940163464401998650017078858987764491176020563887179213479114917930339216082046376742386423077063804125721174301454616851008685458895128472204189783348450845234939415748069132762408139743743956931350102841796042884905478552222441206607519797903078532144862425440012888152757986673183045386502502957875092826598799809220169709563139338269136965619822357336926704374761794536539551062204795151806125794194374858009833021756791184558022214600028108508190153563818739486208863871634668210112276010041555664114537666851770873589112071985419078668954816026694383825452563007024203467695954642668902096782763652156959188544276434550238460343076743833068444291656359194958391123009895736830856171271570736280060577325105945424499323792197281258981392063931456067166242672494336924547890243216594281061319299660153802282314667017900325402957297517743393953850428768692814015748742322056489922898760926491529194816845985515836617616042807714023882181571835788439300848499507276165971018093097086396322195201850408040989234336947204088721480598004999191168970409741994039939499129143100489076049618768902553225466654835069563030959277784831135502360118542395521053959958485729844133893363411648524067720676774148251498299143274998605950278242340721573426467869832361034787753942056042890080493556441015209434659299005171992855477889875546622905217274218036516401370536146666176299216989397488122336603430052199430975291923149792112256171449623479723726466979365200454104786379648575918085314358750967036515339214184822794027459982411112222796318105331069548295737661466169344493534140485378762473986232177288095022116838457535097416507772564832682593810782518566077475661732076958849324895038167595329451462161456347782811809715685231934246572072768992226243382220517968593025107378026032187985975865482777606320912926940671204875057585791345144134051901906726728927644371452017428020141710747897003562241353887528562159626937906363502872094773272736606093822432170490261706393625387062749270172189632728399660913114456878288776004507482731347235617163540078172502068318208271912179960753003011810971704819962575557663989936485121753914598750278272234795212132808184809805775684923032512234186930412179062075425932415606229811035896238716079740167540152183871849865416476303729519250264319058926593053768181222240366401789399270904833151162393565559455671575654691180090549784473561227499523977226337434802217891908205023396581074861694270080893148694553166001379938115805187381196618054540782336950214399996195015598179880541412385912823042079289522933628404703340933325294677635323806298730190362408403686831735457053937739738521012632822982488315192950069780577713053057459996376117252346757859268092951526102170750343895102940463724496924295761528358938800050180460755585858682438127112013364823718842082263909276362617386755307808040789885167588051080765453178523056726901420043606081664638708198079210179757088706673700309326864335288112318307672075718939555711487764178139324292322642927621438242209448446679417724093748157291320951627592364849202377130129471813413562428053996831914818205065684743404442256593673305763245782426677869183236768407269890533955552362197935418743427921062502795678960874099985593911769566349013274716845870530760173065207829419530503029902593049791980234129575469925222977266123431354283682079496500459686251979877375082259376705203979997950927330187108468259280438035705837452705360191740180081064060462349658112758236020625275881932278529269373876962811710179355786030827791037745615410787519520169442507382080425309692091112716476505297294971357326475866807702000240648966270673383202675696910770040400765568876465137540275015581149047390955630406299913738852771054555863641573870204059799096819493662099457258028023277390048490056860083782729477300499865826333452663386051304845189408608706176484016617221762586943131576818657490048642688606805612990940697582593266931170766840294527500807129548743250027645848509191611808235797510122794712570929239311328570426178106875337855618995536501446707342679466833601174091423364285511962366752740148715126712516325728513030162358767535052418909097362987945444224052036262549930095281086933394722848670381291996732904754184911197978776001738681706250731926493275818954210063172570371626789881541736488535093947617950248921666661862078242419546506213724839110902832837541348181624024088709161823466059755288256109011616740665459588293449795071341968423202746312159596320458778737658515278834232415713725004079205351665257896788794598573006137566338580779784585183575911820986261216514922919183770028654933468150465341352059899679253001448964210442728546358891249913951754955745018997623769143991834771104046719979839047108085695251924908547338671170224565225262788902827807529734341068643927470177009519112305041998711817171218000372282706951285738386286508744196321674545550066942913038048867978511064576667701764295025830103586580143951873117215322550545087465846092428275440832776922369522281426729427733240726554516789640823060195259935842718075603087282102704918816735796527434652154534285740472946727908493377083308491984791887062496580341015485515954716979725274168015041231546404011165997200474379492449495296096207282407510051846843641145613606581940757047833498927865696602217729583377098488148216751036882770049216296971695366748263438363870401660298198775075789384992793073241048945330267181141560302065688012979829634497782286704553864052855177192447560644409933804655343471041831852615544880034849189327204329168351554833415185740318954546880971587555689512800686799434964703920264307066006879393062124883056528162100159917948801152927467262097561378831990798602235741467571643145886780360607195567002287293730333764027944449247285874907336137202534026947827463779646114531711603902433157770055873635249282756360832638483631574961746821701923116670806643378152406816482665109449755321216363503551761394817473377022197225186942641590148941564141906374113689870853416393677078102292438866954374644289746019449711491959367313454464608416127361935543331620957637579933600848878701278448643351230204714646920598655582591851518750418712120055542220311914110163219742699627699597085469514475863630886629141414526102738546415881144045213125371486486955276900252829304603906517177125118774404878471973730689266911683679352108394554532353379399147693680272730821212299527548566874540529555266734449892906331951980740177448419620701889897078837516559063468754645963213472647449122476079094640788191922146252032072310975054593044773317362007264368089757148089584906952718360002797026195841722796390545491129042195194339392650590394369250576190632679494447956262641443352114736930532541134979439151890992081321427144242984319529098834926386260073939440669710954398991777081717297982853131393929441146824880436786882081011052270404973470902578988534117997096902885533699431547380156409683484587085301650067821247505738956850293510600683503729883144423838738387327488125718132964510682325963834963338111698839587642698292545982654044332433864456760435983265616198889516134548637540101362048991669730017311400874466446285873268825882322480335416394929605629306754645508647588525132916847508781024017324379757951960375977720494506996712119660942388379403019574527218094692739513744791687756014875636097570993082388399458831942475220421877263294907608660773577822943363692576399605013777433643726970317701961886066385819298958063791455312998012042792726898234474314227545464692237684419119362478293192802800335390571923239699235092541020749950946437354517508518146262366054908449619564597376041975922799132165707343475885820774906451014557971308444336139256695200308373552641640490296696309896337716360279094452934587065975233545372963491119516237581287730079100336800282137700187284023434715491918944295250153528718498750034388710622109912482826528077677689546777638801615672458345848190648191190884849099490991766949906329782838737274279027875621922642842268478967336280620108754417126953424004819847436174778215745912345105298164165144786110156772863822299513300708720043314612604517657770502027213810796209675055436594359361395317666808572909576000371832381530105559920089678480724904341753104084820841127070021235958693463056236912775116790895535848444808337443666422262753951964424891843472531157765036985828457175157865500556899797568436851414101843694559350931686753241174438834877317806771123538436250843721123214458082520556117315130518231581353629905334915644033446630760821663683529698128224524532283495901276716871772381347654369740831492949057295813522481809827321524592553539638150723454361792295507731862723424643351785945749602821294778297851866631358733796065743188081628318941790808117737717185278323237345886838977609379698812392859849926166488400974984654536515422510240383370988602509058884083452518657934145721558807778249142650958957726320753712039268931794948942971940281810382485029922528587526632373800626793204266479342221542668893895351258005707373540014350595292771165104337317557134127646389869147276977633243315750178554702435255687931792898004113231480148649439898860998756134200553619012963374657376981806667334105344729443722737937792414666099409166410474779566125301162617538493608728831940744319752803355579672940553793442934282347623783992309421211208507460423855637812653513953768617743193304905300130007432054854442644485053404783273238306884842981132738149711337429915832986274714507908628455231387050666118301338188395678659901969543611015326679199086804563248319427443493447655103104329025208121132956062972569576142507778504614903347372715927356552933333627421082180922593505722389819514658252740240120970578909132715218121660892141735132862102926164202167815523643073955898867438996843143997603502724766455468691372933652800975163814044996109177010868692656022458414403675978334726757188028851915968861876322947304516340932784041323460307990245634561303882052751309733173791148199950557850457952167232196833907468360454106224312058481787773027543904613130686382548617497517085119391778068960307707577257098146801570590161653232287655073204664663578639824638181721244678394563608684887376727792513989861812938052086212226123918783156271908029771324940901031782613387257899131903039884780770021124394806320106305283335807962995203916968679151158044163231240066520470116776098252986911559554799290467636756015246167655436060792423457545150284758734792299804146474115150670933989904209981435884741084597400841510636967618057891175741403385881467669320935155862924948254348310320046817460457034836449758297484858954176019042924672750154110387205720050438946085374671991933887171960010947243749939848478516057101154476513254743205984365247408476270459005169900664830062449963623687001634432811706917508160584103105941487417862690446376417926266513083765334787370730826438293285297406442545590172436227616959517318623806659309319531218920623205430530977948573551311432146850155650362541809163696182191327304671001898269222910586490518896376585455299558092738884034969556088740417170870091341971145644132870481464556154869523281178008289132976632405557502871758303337564332525874239428248859072321064257352894325797572413207230682909038175605910151174961930308878642723664855609100014017712020106308291756707651010713574975406290877256039051086989919745795786470993619906715450017190775681449194720866830071593631916833324981041259388391601452732384072205598780247590100107859005891948163169617490775402413288077388341585252451786178781932267987898261051560484210688563934973093588418121490534529657627975052512050326733490713561320415829770763035224804034685217567623831719784517326083544607462745640413455871440683054666380971848613086294275244758942623662342442400461693101078610588707512557019784366184562363345943749002704858999437496602216066445799264808722003517315692442782987501720016140756578813503565638645393717500857369352134299622949325875922264066581259622325691682095552805138827450652314183803195549123735802065326634245132535999946067114583160838256169948442873908279782616203090687992878350823332626335441779935220132342655931807121245741792198449465800027278822785405109518966066372513314032776586627082629887886502156210162438313402356817999700650620452362496862520142931652501594656402652897568942614320426580495241787768435474920763403742864203034204579929775144391603847550597925245984071709553900885982627394481811469970442397539097086967429967141781262287854335105440483276244171193452198516448241285113050290106586533128268240169637384953047124587023062659970172138860790625270359391321396274632743625578116070750949781239755304029105527792454283594623061534353142159353210838683725124240276113186738832695956433188421335827351427105119098986107172129386704240640316900394079272820160472703238602366578035638376763154986732229549169302269118029777816409552246988164428925106944699488739062831151112798624734478527661069039322354995774129663596091008391774221362133291166491616257535817683828360666937728620700922134670874535992059782186775516364878986058192196233200887189572716904220567427606979250653809828296110547818190547115481298452202610216270382667614032651005655594022621330295564513094343468892206180426526682590933309427796196648808487801287359340231098766795604673207052017363135815427809213061278968597770520714978843481421575220830213889111962488981473509579194832967811257915382518643023306998087146711912574048031360196572768015282913820223927651805381367853277796439937359581290819446177309701059066708108265986079788599115453072029036351745398555081355120971065085647622863824859028715385635127592457565557216342830666925618099909013983831034262602747236061196205329130792093575731013565774942563194601344613693245019200150017247623720743502156618715778949148754189888219982558458637953978171574041335853742589441213477521471774567605871066365845299004056653548436445114125479601466479576468163721042713270580298738482688271372146703481617302238006169225297877496913405740670508096343254821338890429088030809835025965485258936313246701272185238807480046475225594389179007471441410194585724320415844766112691606856326657231827898165432531315137621721119469192600541123279826049758016730744551033001845398463909445718188363474530453391444106098446219906292863950111313232491188308950278781122887727225191312643611708634806143413394314565889311509123004059581670698751041211701427171504968607360784942865796877903829911910380597244690866098792013345417159972607037175456850806773074876608155564139287733215025318596545210130596755269056016064685981032700570764012391095507458519099585354784932811997638225900851839425070469688776802395351320029527463452417126648633468439139797350099348428945136037141705028867577368853979677185542759592347210927877676185997812924521312924105128169637703405201105769394188936894099133298545886116635337939312043067623984836777301686973931046296624542302271041918358107796304105923930832392482190669302043834748200146930131281020941722139407073043005813727961147355490333426577466546982132196909557692350134407685499637864160938081950986141599459118092572097627912756851823754422235386309525472669777655959620500747737473847443178142430214345353681687121854681438676280307005119156159068556969611727278454551855512284497738860875522694874100560246448983533480559353540759273054469328773384894474327319754022871880143517498971669655119385032605438019030475272318852339495163240709678887308402657548988966649354776344628734722107079317416512243504229150598569872833157226717070425088374448434246445944806885233227099335756683248778062522815391931752900305486150299274338291452699633912024839020517598204934986232999445076927458576334462279693514185029978400559068119826398296645401046466726077909153905521179394045660583313198805238432695574809127738863873076008310387461308724917795963405040479735479389727431418234980540258727687011510335209525503357214038888177304743081577491491158298049174775624744108840073771299547842173395173688525786286326294617657675655032502821840812150490617389484513271993061905053352243356521216704053232598583152289331347030237386910303443624001073051765856303075079695971516401285104938543481299153300114705609081104381380346253637150247924683143656459756693656065442119943861369946006114079433921206274867884673941374365633815397604150730463572291797570742056043769187585873317855068043580340098320501897550594214652852027059079201283078799118786862724472230533199431183922173918873654755336636285751618229973100538991510637426373209919492432014711673578891472237510491598601391733557961916395150867805518878353978095437621028537541012956876019911003416620450531514131891335181393773055716155704704231520841958321611258590599209779003813848849934298159058012973813890309654435496791718273561456666006761949054266092912363671194823421740781785076187860416135328194941706964196921789520020266977891172802213087224557713714395997455394152290652819789665048838456065543817165886318050805151376254527647658979439419858183692295840523410382779507505798923526669215111111071172726821220035731917622928538216180035075645633262034873066284208949604267477818675616677565233341820385820832297886867692662486829990039507516788116576214451585279558830638349018739812827508457715492397750702785900008332451999243705058908340295060221519666389787312486573880189377360105929624370428773486784909753398476607173530367782842899147573060850494048641867054387255841385376202138694846654671611809807207173410357153914266280747853330275618352096321640616617852798932524098566180907661040306743637091474907763034226416949389027114313184053679237777663913798480150777290631330010808393438168608299423116803579492196759302133562659327663676949155733732390138552430831096977418383799284424479469776388926410988351510718230746961538638925601555262336271438822574044606812904366899054111541674499405363110353229736572482515661373743829938590033016831054252062443378933230467254439696264346718793255356016454950575940365523518154576032303185684380014593775052639291683307298074681062452380162326424265813355312731849858574766825423683155244709406337598387007566156308061099354313366641163561474895956301230652858297546831747138324771070280108748291662632668244958750295764726840433836024906918478564459536730367739727474818289755623606351742573910629728256175867350238101103697176514835638735206339912335378164777958368463990204685518102563980698169902266231473876982698100177638992116859018097594797496269126978336648670844272663039997194182692408113715260810116083662640219631005350652790637016058416749251078770481257206010624400273839111545031177296636179163656155815716227024597265278054168926556647333437596635780433158922479345406991240717980754710005204204671455965727598323991962770232192431907461872076785478150303598955489095082854233060990902702991361011833940294556012548162219631590585255199598548975050433251915115670054033759725598966541299550941544453142994574853239088320333911056213251000974822181631725073928744439503268583080584589019855442833113442115744638819442481909478551432112764452667167740250595294684637890265973235580224757470901852468514365419508115800101233170976406815229954556710899342397643577771111370473902489429489554765588480901460090096387285450663217291393314395567231367040440670897453967466457659643618176169787609291729363742329139381795662131620435573397254877899541008162318861143781426609946586860507174005117819888756067387917864480693259528185470431411766720328750109974447305697367142655450479758358849399530675792724003089700026911301053089989537384889539473698135835986660407034541924506974380543593612045618081379178606495797315247027415139539848630756059323504906836588748267279951877708667358844634931004362729864921998862672812423669834651087951652587160013626752186480572482693289928467871943138035434359740183089100940728503069998191317288871553493508244938396585013041355787410648494672341832027981781386033634905574839493955887974368233881603102079020230202807660724561569909771967253314041544444857336764484453714864061234184936199397471770314519642092248190427656922404829211620066081643251439846582288723568048745943013987154445819818270489280343487169331350739129423992579212349950262992987171853613184753411039143439571922340179397510754567740212328635499525357189580952376303036528927373005937367211534271281912260806197794111362299828415659691244260725077464890876747969391504685193802630393611089293208769618200886729781500063707760439349458338766848925035559073242893399721769559852645435794769566430983833505022698567259904844286294643077213906191361667633971483201820336744468040890129134803538549154821147417040674685204637891678598559709196144220429944647038416881571638928567478709740986461342030228381614058293171999821468955180613846683242387219527982955941452232098326491463124199550872471331627495365427050896970447054262187987359094786268614263882311085494445297731193253171357907712482164237635378223450278096740710534501746247670407377158673563808715890125402419972072878830107976916969772811183979246251625742728390098990210337675805413219066601714899681002306478763845671807249745521260577237093426095595600637528093017295392597055832479511838702438379545218114876833569906060649093180055556223228922630326643350429702219952881787707012576210660039393815677294986562390002108414106117297909049872513418843040555195236761715331492479831804728691438041292505062518366506652060006463268750526927929757856050314926330086490192807117424434110953883295634065489991818662132404608864974601492559148871239939411379291971692066400062315670160829820025420855172300564681462774688117710422816370425905652654295812336774608626433818448444404142817184768115308843287842146039555275253615540003470906431644873503789028836271610401614112616980765655833190535989095596587154706402396263744115086080023485701462381806122802436413840278073501769609484849674160681017113814219851012794702203352474970854110554951895112425675413776826852554820535690330426115827909342704568529714843648725445667548241527742554675749056617741111517045642866516966806498682788225521273738493278924228988653456626861991341215408004596299802929797591492195794702596692568340082119849059653651455108387527915152831277377893282496595382271961314229587925015090953765322111293352879174707039443281914250611464203835299990178413694801359233280892406235328250316476637996187780420225707883216240665750574764773698686760671727703894365142179824926281831608131586838269625331299902249576215253245118718378731734441978483313706669106760373561604634271694706648373045474881922877237223088484491203255418303150460919603923033951262607941456563452012873934341876618118654981636008133642784232861706198633376954504747193689891122294424930646983957960923411370511110004092933173068993145283049100875673780224419065268445268597166287928376297581252900971487664369766406906984668901405457964937728991045763219578746728006342669696832506497553951342844282001453164574889775544403167512813453755622974520832672672537184580091017027381017037028337450385214353296282460180513942611832643644052380818760692183045563287742003380797592074722106556587246294910476824633849970717985765653804764937446446194130480508356062316026897145110396529232081526118814937831285965409596484323374510128687385682010453758717799924075329071340340656727929076338578353071870564022511843892402654624551230156471240055967567498997498596959104671990240634614759849175618786675765249994133195849139462922764389613045142058497615551916325788043830090463334912913957406911254627216280900985337072785360691260360214956097928083682901131195630090115425410312009154643228077548052328943492061358506066588297874794751246710676525765538683375249432333862156328199128869588457987401896088954433697657008590579184935120198415700044695414353991331995497678912593360782245592268291069833755790539594535351543471677748400205944209891944939583402762716323417351750839342961664957661536517680780392566261999639856231205349405702650037395505654025489578722900148817656331617596782009838671741674866683276166716917445942520595669802943439992165205989358909846640192202756539883022481625441700623925948470748842828643837746938315959900253379093087947546819427758858130046998602488617781783572082451148473550270473744244554689734917100577350013454172260885527297150640476711193351768111635761743744196291368696819974100719711710721026916769586944078091438807771302731132258614885605940997223686243086279664002414404135354785538696599061052417977913804322921438220031291445453646909497332447349976195578019376674546132188852333973007344753521265242972047285147398655380057028363716248388434593969391270257404844561233610574837193561181795097965668601341618496126442872090269513504228082704362828590076931789936180776165869146588275852006237513661126495289889792739687989286143022358369499492472485761857518143949774687764724503548849144768037805625038716014817914606680168142188665754116584779803926306570900713216808961373597043332444362072281411905256641048431630656360626691272020130150163626722092164654375099465356201816047441500731910341452718167997022046770689608397322274580875534081502218120363741758762565528428605151667531277248614759233273890446120228927263027559097872782385404411566749514657263469782560991712105107698029881306564984526966046002453097676500251795513052184074411230940248904898454558806232175644138867489840777138067678125625219770327940100890487284178019853869242811079191350808286260824892367334865752665034835226441090825355021752418814778675032060717537086537125924668611104274691770812002186397150025688483761052993526025988453016836953342095619960770204935738882759503777840078319494864385591993746967793319914611737397936954998272200682988172259022386006764019395592199341958061770990610348683197498786958334705008970138459711086400184174197169024417381634106369389763722916925922201089161538751017399223628294352417335726655963463589209154448040705843326178387997436449849351332767276844942665921146696169502802746925725743776675270852211881292177859065848506638843884553079983817976580915738840870378912971659832982391176606624542558618892910294751571526249720332117595644265179441579637174536926160602888938628115892142971269267416588268535957693175531768991280815856797798717877631655716019988804436882274618402397617121743344538355974286637315662568433221746881491864654011339598778109826480841938882827771006816767839922902689257584735856208400445978037231922389407345643669271311922289085236229439409535481733238560081409889353743635399618811697683315056771072901546399592720193629921029458652510465580273865480721740739251736719459083562665639138360512259480572507874201524998415412860591064783063851292546586428532123334156769530238708142566112536938487581030391499477678208096785488667484915986245475971244857633937518748211715487801112031499761855692711950021676432675127434694786781955889839072800405800213956789379258601042309538921178188333836384806643365873940086534799744191835591671250403069713880390588778802217440721444214522092313070211214647078352746079784208083603216861876756179254911326654560765224034013967556455924545984774275245956948083991184557948813260547221067301444926109344906522885919241299315067549951368253638470989574012465364894609080384465984381485375831338304248864250827613158270808731778926902892978437685552142177050349370003960663120054537072181942955294463906530639469342017922650608261263299710840645372203292601579976570030740654544415537857759480776785897474138977876108900696907574523574229217361575301733773462107673752873729447549664128694091131922405692287681950013153339462718264347728549361540856293008238130481045851926924599290993109048988660628182394992234588023438047707889154652607580426931027678618943401010751640007885170071667548566756279710496930708438602943479051257191955099191872228447661757211571614164993077770087506671063997644538824485349737851375411202852034242052263801820172704950960227162107264472630966550993805773981086148060323339597539382907608102624103962371448307754850212153966085912895775470016327444213254734857754845781654392926733563166677088123578065157385752000555478367964033907611100761094587862566472974170535383094187558227970767187782884221604114373262416787145507167642195489945689969201373469421271464498585121919899963799560223438165089503635392797804566914357944774886449305560250101481837139499654595009217410585797766268309553415044925996120472277449480483853690195792788493997633997978624360448112106444753679704355397153326450962454723926885880219326991635030899246343021033475575893028529034313933924649353992126142017792758359886012699054243849132507488330275187450105901198229804359464790529605987042492385684909719467123889484685279410160297409343630314603271428853563907194626263381096963030895938465146219328023987299559768278296372962825556320347687392125692178352703061534958540818900036514003090642310082747346841757142935412215162632181319355484334096750669962143826371573034349485883017385153109914209235490827853689770290071318061688358946020960036784222113750520511476848163015015056058885432978023005763744227297443524560091846973893693111310828966177017184401426025759694692819351639189060533461253402840534694181331351346532740400753170159089213378317951704499335668835592813666666496807606994983275748364573037984127606634130913892722264886230936507433772997856256781322115131649256574474872372816375345043986665252000391753135758976396080300577704515444731514299321826136596902223146721079391717228643119404316587802068430606733963457631470721591068198982510605082152123016051787164110128980375732874787545757141850653959301907441156121627502603183386765170015216098832543024975261851481170360156593876932456264257707607799479388493097939882669730797823712538437003178409220103717286180621585194800964560959955290359887059392377724154042274266694936492665234339799795520562532591802095711243662296819409819054631672445449247145623767255405251652036480790795744407446978591644471539036444876812202703882352531904612433185185877715965315344205139211962572198871107736838989689536349545993308094097117330150056995455221305102944646551519693093093345388728413756191132037337218000336277062138622165283490361169975595915909997828790011463410466306596626342374888184635841079807770352568161028940629311681960460189642569343337353020904614260756337056395337322476883601841502546427834861063084223924151041039532671276580019280002341394449345870711205041725763995062997908991923943055141823391474494150487297855665120982459398782451384855921488973676030016210473238152889863854214319450786890766107070886499178663373018642984365532592470135517437528178396043431377539988809693714269301343652642628868552999979078887842719789309404370873905679271346023655710627795667787947860100762338903438433626882255791257880600406092991510217960901231551487402161901384681131207505097013372992627083695460207212044651598058539409440394702549948825974623218464626320869599710664132393271300924109816510777166034419109386046206024541390135092904553228651241219623447522398902960286979297192217009254067533112233281750361044975249664261763618987677804686846565982275789888695370501288733813885570903215023167906219531098943672290384530492134109638240627396484639183254822099158617518186627160382296185588428965603561677035906065338146091015952932862958176602626554541161761836713793818425947599663956250650313033481276257317769435980979488628334225283060130522955864978179444476792044522129888656168244549071987465243907521808179235780242784984958735469823844950477322763723175220577148301820962251015025723863313868073849567301218141422150993063609982799621217141517756504273403745366399416270123552269694740596768498040520151443558270288809749430017985246448317951203705997479305717942786972701630182395594569953934134847018637699550795838186345277911101315926096410880712404112949845726470156784868629431762337643891216173336684928198334316773891519130489482495870112435405919788573869569751573271389691375228163166741138075460008075427771043168819379585022275265497208443033072159846546231317904153845041874795907348855936547028051110817839750382534080565063042564047825906821877082464575579401611303279070934986888636051780898323892538778171106283834079244060833224447108051467535413834759423485032283341000207293915252552198057400919046339272766405913357348294937017621577979496678215998384131664198972955075056079763031635563950924223057432919517788943719199609348592977564017554318844920196556265050856723405058677831768240320982012206178975065511597836609815211129233777904774110588969154156424248881108282933940763888151605363919566346612801205037109349529377709118449046344142037480035396679180814124632604255414339703709340944177239461230183483683653360928333197389464196490276916852028505195549120212185145000063286385695456801825830213625210185053864186565898348054081809739922726822606132597373705666768306021833144510417023623590276854394434443247595685112721341703843804501264634301752565343497387041978351102008554207627525177644739462995584955918605545449706196842229905035108490637235703145972734445759253002778112208847635030463127519124394645080496747799039579813197626735330958318126430763828481501349756688979323174596732002669435991157876887608860865908145360832245449729808285297059671264219384110284786773154875153951609655186687727594885136596669262235877295476333246107776968137932006465086595198336032416529352669722537985556575903884773873920438360222301556948089017741891785191432577062048307043433220213671677795713528967571297554623236238288976940403276673766857249702181005387182163633076598432001389235209507366014518133842574472235414601013920679743661221119842138859956405139432333961903511880783778288835326830500801296467243536809671602426618158354117303375853579382325117765498167120209518913759730603332175310141172318177584932582852226250221990805536115152966037927021149707757658718454717612106224767284128810586470089940289992521785674493948544550063809293325722881120464768423388455611984726448820629993794168597816423992536707118579297130875989557044245145558780463116540446178650163980689702019861775801104531992333200947792477642359950849042176593510975853611263042426208803729551029531403166471517393020587077670023220661421093283368872706954478081828265615793299454545784906413909065362692457353400107644604130441563781464171559310738039054201406244357106550771427554701637446237561956904514611968140877036018334675882703799153846618149161195292189691626526432760146784850436497283707303406645052189375125891177843325103286679477314424869490952350880869642065990356017931583060661718225926144345170943279689497889691304265771728985532257070691403774561065196965536857135296290330372317635683916094909454771851006300622472912735960322997082092596230034427672721785670487779676022007188357891576866798719718871821645772284813642624854912190757630556951361503804739668403265824630948132760481195761092719961741790959945977365872006355770247989728573173305060982255819654472868989126095173628988273942970272627785784878821666575455795678872496012458322089952214715181404414579787069547164765171837339558519714107234342295694717827763773456705089261762717848650386492748358609691489336734733198367590002913039405475051637829910634297153498122363909276559960875475506447401828612706239150936673199882961751414784327551785478060963344435859721147451093207296525120550249448728164101933913110162327640758823111549906435496687131046200023605749610561192737073473886714491854379282767895938778296816738146381666722433213967062305707453832667723026911019836296316874891578565978369889667797236472988527647911896422924067179273043721638840494634590567476026867659356273419889657046183820071412090330413170909412910596485472495969023578715747524650298418737166429517572705830496565942067295817756081884505943566268935933675507098090283626420069156168584670403189338698803333755121564329024873125514730156889516556725272521393068167973724661350473730990717814441190434157671714881723759120981173700677684890969758463754740535642205293679049927524858154778314628727571177071574474392898874933261007543105873855228926349074407115785568022623958149834762391301333163575986990914365232169848103893003621596223739042322366650094708818255033120415204093736594373634509992347449440373554705194830417272874641202603693437982007000847709605439076168299764423907726620705101376463920411048563827090961604427335038704861875578737605964513761673276952830442529932004332952180460588211282376532083832318788134225383365844821180622202464516525652484740610918192243397220247968397187751233644453733119646021953776643850355093702281530757683550450677531376419350507528437161285458492291343792608324962291746990626136824539550422294734973013396016841281599253880970380577469092030395832074178854391055267672583394680220414319538369118709103304462936454011484570873384293796773528949350089104236737282727427322058321547129398984689815158123091688081776628883056557896474451209969134898814420640383581644636036304346154809740741749141371549729795495367466885831006567822845482130308874932442184714893768085758333418638988987355932747543054614155191025793662984315596821968615799788046418959578157392329237187318044232348858100073777200921204573686530113509668904356015935545119249881889131910724899224180324827205515016997843556908133853753135983072519768800568116758744605090853888683885470992914537395125513561289197246150360506932119505563071587307003633545602204680868584102433014090595426453434787391178422233886131165374061406301155596507337279310030329051858914929287994668210041052336841180545566474497115076054236271792650270447108147974687945021686219858293759953374145634532147577780509646497660445738245721707231152549939552428233898076126947891620886648264093101678560162922435155275212455908846316486482320591758723577358493719203526504008597360262816852602173556845048721885361832603705746533145329502184543396124166621469716592108987074439807018321948990246485250631130412134847931794855482168466027881674832476914155509448759163532053559497574762937402049237794929548000924039812574329944752200195586642555835387825771082516165741157198540634706782885035762359193061498133030580759305759887103880979420153953721651378819091211627013974273783041371594468388174697877201617081018432598094117719623531882902596061851308372915977634386240321792835524224536760129929040482907110179393040452595540298329225229013304006327171293886656729017929693750216903501751410301039129945096934840496959501964113348971093649380690803115041387026869818109929798012818886728167671928252152731044682226221489746608593114950497738766963706560780911005886275555643051690601995109804245891033632178514782532006145131387579420496045575727110905666700352997952629114606581864130975963685219932053561084253165735613167175255405030254393957160717129653341110647761952020586841476874109319374935414407815185081656517969639625040063140871587632423734498331903487301413319532361337604485304650905004436727176695003603391672930986480927961769433996065078965692659386763335571677015817795032537769494647882871675439503069000180978935777634098290462679822366022406614580426157684921548489728612677504694592595462865237001353566129813463385189126713204362264452361937786300293364404535396322065839028582774538869482572108675195844225511427211279363961861280831502104606113189062477309506100339935438397354473490096369629403544422514440806223393288683643952162234796096551128498787400051576340061368734355365221094298877826609560486234012816909258838240655703121004443862680384980238653063105024574754236747620451497511966510290509409867224973752768116157449476618593924111070293631316064400612205883965523966341717589888909322772090025586830504582022930056916220626060493310307520804716834727454040049961734022178088606102148857219352000473665738050534153118655019660261656956437032287961180956134346188622414216141506217477492131292588744550660514126767102440358041897644350789935289834515228885425554807251303877027421464716847760531771336427894578565883510448364980136735342117030421070761649750807473393461030474939646848190986907829566403568298172743290242627990691460563080699480656555651476767059061648766300473547004618089770489977354053413236969879869932330709789049568336315986879525817708287177063053375986032272651678073408355569501316804884491208170330611884065702911221739387972107968389791727347019170332180141458721619578684774079786333943704549677465592871590095749822300956472892492465706133429942523410355025702892418822422619926852759166216114175643224801856533989581441065798537881818660451452984538590369361587817627993055601101997816277838308277868855096424649031144450401129288211664049683470946517779695674183198331228738610545411551726099596758729702782497945896706925892602046711675524192390105324187518860568464026603857863739434883990785631058432843865938814010459814223632737936922671888566683660072782264379140801020310894016135951216338822199078885505960441954663914508260617963164393666316040960134974040107595785321156414615446965187191086322385910909381988636701739140343623918190924971069529190478940253109967919051695409082378543491263724121118665911972600492585532549415446254818436819438639072443425891107110598626485599852333378419106001218231702474293384910224470597020336636243923960460006728724537972693926390730492435758553262981045640327231901048897605890672710852512642147831217168361980930305353606846214751963046803092225953049809361630776255263396248309254139145353396117791909367365982964017121501347046839593110892561925234935546653885235044783749697025889387608764097774314274981272219873351110573507060202593454262577620163103149457340944597823742683014355649169890429548423998283236211510980967696838836859728938039089664412653420463131180094234081202414754539564080929643113084180897585417836496788536926281685240428518928615750256368867141974820494951307670799367841828485849822730780660751074298544432707737275029795753808107393630823286266942621484544362589814818158659941098171739184358964352544524818204696330672859503607065295528505842249759370362581309120918650861374442496759236286503889368846634575715691874803818628769012571040618385738549359910389291054672699472261905210235576540270982292731427789835428840500661714911555823369399671769081112615518830317753734867683533575866511842005203204704120581433892134001385308416873987058316345932961571104372578385466494047204744441053232804316882943624863874582100521071182526953360922300953719054509249017723563350909458870129305913074803278605848464793054897717664519704879060675070163564959262253373399402351879595339403149281313271099038384767161371906599741917830875078659418414108609294678291211754432724992036456263223550882087000191768824815180236828586227828679580534309997475700819725251471840395455819991229996577604896508143190868790627726212072520876468979986457040925356589496160517097276987963197726363516883793508419228466911951131982396593642170209533182469814701691052616987916986534137451882068168322756136429831191704426963849046870171946679254995885019095181770529231012652137095366975101962499428621073269791031280974960711256101336581152606054467196624968238289226833488034644087048990856222225707377914780098582731584478942331784085861049083796604466834690276710163330052975198300567132732784360219909110040783434811295102271936503365173402276265026233947238566997027983932931367841611870425662792879221083679196369160043682303257876289637562837162729437098319342048333819939210969312526239373128874136290956633323670837821545593482358140163623228472246614507484506487010468709845880644654629910270967355865840320940090145581726773038108788393925311974506843109922765944194327471318369688569750310109427516755134826615368642029276072289157293987792619412461289289342696031078130039228442620990726517981602727642491988702180199762881295412670578445836741036891468816932531839323353192566414799488951010669341279589375771588575077799441671101201743136624482727367545445193018070935745498406784671410714420963410103320456206676372630386648345896172110195344792257940946927859504301991201210306008903299589065373035917672442115369170496435184061639214585282769590442851889715828330796985161717710648362271101906661137680477933844786729569843863107511062445672818930343752954107630627524596677327864510993230196199771814256386025715095704872627138115300076731813633353112700140030431065503863030120160122700573239623996726735883372435737309858934799555121433258010387945015828614768315349302121999625655919531634800229802796034888400018692045729049795664195019934501741262788534110106842305590630827994676679195144673912604461452988169048652701105067862129181148105045984215261298565182336176176112415699962660194001824036349933933114557352235330049057701317937615365699062611370637332922267133748644266336304925544736664330836229632828273412129002968091322032459931267698200641955531442617361340810385428025043505886531595435660462496009793650538354923175253345809696833309499784244460896839479715593552620162103421145607842413010849326515865854035399630014807499393746926979109390713719483298158586106325079122099245444357315013251572834921777717844037606973940337003966086702076467676241535006573413127880296775550969274392931231484011842463940174430739636311647966270668073075236514355493995407418744502529446998736811053805304290984553696462808246509335167564629099765877101677547854713503995453996891638731267152155401972697504750214077001266653381131678484250193250552718224091557927167073459757608971750528738887611494353106558558354261151924605376310467204723247181757069112121410706636461434673953623151866571025356308211707039495444299087131638002025624332909565916324086310738175662511797343318310009005689138061746117155882093485596400081336133714357311957104946712675482866409065475606419264734364254416003461721717575476755451857685729602276226290160425835652254826623808739576153514014469131504550512785074605151283731627701954220242188908470327444215754006348934080975917956557239489065042378083590091257213135071757771233389690705831069205612208177176949253024136489044171185067633413184316637967329820513424609197782878031258713357563299140920525442807326643865218315280003373594496163227993664178364777904693817089558168046973466455860754060708793466272523592937938976617308994759110868076360732486541333898374444344248309209365023592689656845405511606298429503657505264751139311085553134302398610428214936833681044471248350795909061271287688405336684865569166852452128699390718220031454202578444683693775542292257111468912799183858576036061570470431544934487933173856543731102429533109401751595826981215562725364225239462575319844098476797190132528831719485090991614333852931704352567869166340969546885345861504305881799054958231827468184810654827732308591029477345775781347592143177594983259363944042552290342071513046582684239815048507838699327532844549540538817240151833373815872427107453489730239299953485426185914163917055117669962228057772434879774316139210408572570505279389236422733332438501169628421623021995654506152995948053099035459700084689358758539031353182876280804680426093494558401700234407455602227679178726873368630248013771466821890366307201622372143273276065805008969464460279099309726403006641090390290609965599100070571759512416792513987116056994144566795652129525726406260554689290908391331548702348207663497655452389438708211716917022098873736311165931735871623531283439486488967809719334208953906292578145954882915177141777446510300957945803120567277888114860204315034562615693106465180172731695835585337097009061807071145614739062820495858393980164654090118597073459786707080862730144144712554405547243782946664727694061226314132484866158741247655130502736438531537490339739529330323757815745128225395789806756534056599373562735876624616904284182740759746949921904520100336642393339931591532538567678804708561296114023466569657795727625731061885109407138994823589917274957853017535082388034729402828645976509389656155450971789213212263554176272617309867845271707788745751793260508373266920025710970234010617725730254263000878293519006448285692263952878271141833672401769719533679331599257793231297921239636504627175737408208260566517434427780951986158742663866637302057215421951739165294044829496692831301086362949767717825311802556537312010982454933677825166982364925852011947023324410878627000820896990577959564085239866609099316935649423356444366058138900541903191704334188022210895871448946283305592118584967249200199150601439666616420466279827837212330161420253668223545917992594144134772214160808697950180036596191660036757672905063861903449331968923398011755523826933132914226488880657934002730499152440211390162987644327039916580457597916300514359320906693135826862409296377320681510655060462825786215204783990880982577403940373294584434664079017292042171012917535255536562281958957677329369724866803973740273355199401893117401001611757506154319826012074477701866358218021861847993310889681204629687272127830751299039769101953774092583203522904397644689149828535676036550845322331152084043553458828713663726413820088068584430707409972727005913937181984767193068615762130076627874846786785687888079890059422517226641653027930144572832986360235305939894117052986012940620735039950505916296975958672102795255969212214278667196992100611855826411058585847935654271698468119148101622351944100801138464102267134149339942426440350690119120483454736500806563659144251891716354935807163663928609620540037361862147851979335777943810411127379056774023892144217110118491816972025678266380321959510742965078795958801993150700614199773001507888849799016791555919372617413774148342785241867597465606555425584880149011941107027224853439835460335661995516804024703254296138357266591949822374517684472454216769648707645270981312373426214693593082069894201714647896022501095256577807110373770577744101802549264310670864469768059293794814342575329972762139353117978321199685706093041613455259439685774158162465577606325609948090293855193936996038973902405337714096646679121480142745414381243869979307720262842716872252127895096082410532611303076205252111697400503470364716439529610059067287524075713861611983049795874427608301411116557164622825858480256842196218613993681174863413513271040085796250056099898698550417499105822923673231038852678998971685158417665047965813120423637483120712943748135420386226830794824230979589520257571838480419538159148926566566066156150101622008280296102698401574377556954274507270638002904915239953563595563296912423781050375476304569762898995400927917842147608404651372157571351927952523894861794011817639740935784385972223154228857376901118668662420628246394152705192832495775699866219731607332235634341281912686105776618095056546631821197085209001814443051632962077528532218363103783675161310066705506576684076299694710463201166857758957273826754989027683027914311781924261773764707613033221198717979334606094153875411240138407173170333841996746007753566876098744080077191956263329087152481582164485922999640207473451186179425247121056996520422291522487836784945442834057399969125511414012090112395400433708921869030308136192075333999059203440673739291207274499433189997317890725429142970975223356269150096344995793747630325773067997104664334822268354214360313433666824710896555445031917067672392206874493912752839973321374014322678023303076754618753223141929997176368987590994645864763132251260570661545738508768457911144934697445366781212854089949023849537577011008440963751999055710220430770532023923313782482722569339385132927967793860944774380738203811385553990306965400797907559776477742122156439934290199622573931297464811867967581905393628995094442124751121057643453052852294241448042424366727410021375984747178145779307432900287593199169997188320333301272889946583854324747932910794053963088144346377079342359887273983921395981026207237446379376849021428546085628957840830748404434773642431789965513558083027543875063413539969886482670451923776094882811857499525220415952701142273964607400989652701587611485792158504185670852592907092996802900669584152029738891774040691695622232668637338507034038908182852507412211186945645266960524020407421603820114282913216726011663425337971232077222994689215239991327529585409945180036221791620638193635619211065645657911681652911291373052388176190142859303784110757851053638967918680561433504669293170838252137477156321665373160369144934133171085064712627107975968183922912973206883347378235249653268862031513321102890343458276425389669154244280995434958425888910365747652934350613783342868415489891041002915087843269468590719827580574743270279916996879598014531567808022476779225108929718323818605965267096761959836327442486215422991330661217545828817509799321899954075458848180633288263492513155752727840955804230313209034795493729951983138148675619897722311961806050406760814893028046860429590448826445287464063218700908692548827765889479066224788138564211802603979962757183519965716173043804056635246960566841677827037951370739313139520649577956771690723086611601388173053898578517021318946363801514706042842614824044273526252809756698444570498465408908079369333017268810524228076366110083785754229190305384293034524894031859766611816171508517852959138460562167085091722691290744793451594366887867988296282089140413485175669875830400971488727488279016953138608887098229082467602099583570397824945459427099122303480496089548117972200027466852868136369519512524447489606882945311691055230788881391914522689523968772996459032535602203628005462871006974809034021174815058501348340600481166884439942489351676144126840858819513643690410323229496896912990910977488946643010484975652478122973905652600773521177050589036777053137965068267118783492343435675623600135297906460928686820177873540231365129465155326288405926207011046959478461094389524933139664371641073956983870724775621034486563919297530430422968831196124818377819682577707437593452520651027017049817739673536369826445579286229285112259339553185740748878718562903514052019388842316433170375466250787676944884842577392088899750311238259407965763575191406930600676322242508889873236225162836426817954384789195889912601120514205473847752777773201534500025665074248583981754054926568822383116277336186891090810893033694311409456512944774789577214409223001863096144302002198689082320305856361002502279920997640811953300833315988291912745705135238151865743711767827941171324563100993395102789779320287408230014781767284039365777246122179306907638373459253310153552907511747299004115716953911617074826645021112688653405083637534528288189334484430018817895478678135291426103715703723130519415264585736284329850079694662341718868174496970324585496038574069436019994218366376991286242207698155646429565126489807037370869275525845268191320110118716716035591969319242071990178376898110759356980447194317298829105627385196006462657683546498340729655890311119069794994193304558996967748813538201859715147984055608666210586067584710634358900647675374095967074663299568285771028454392253417785559132209145526598892430423025775067380524931891627000802887509974153360249864618179429731549426804817909836823504313893510072766693292260581144199748702486813152499502505447118505022955115673037639994653100610868120346810621138756915508899065897566026681755653160351707096737850702078564853965424713003794356538297327413624920846726397750998489742651408871415519168182546751789629429666473445164580118414939343171621649207219944669058017440037771428328510760722399592788899023904307779240067616814794761522477841686311766960613833005402480317370006176602651885671963713328952917668061454821183973235144782606882642402296288502003914916686297950435893088728610951641027763327443013910126576554437228573042582707931330249732022903940385266366010091288917819425119730525611118359223212266707488632975028642424996037983202128606162226923468004482837289593402150331098437693625345312362178179587464744644990694255986405369044371298138577272267854490698461325065107241176292808840376530378034137241546065216782877697045386272501920849557988053129016624851254321046247416373174315655603344010989959789382482877485709099310511848442953924942280854785829521223321752342270849865388499699467527681055182272023207609504802200394747627096234563812146490329019031782464615618204901665383170767969089271177927858250809012347230049799432805661748153276458422723120889078222387193926764330726234333443884143066472555580643486067130506401576512623852884426429886457381337771029527386913890123179382443477384581008017531023277712801547606145848733576020945447987877639369587626914116360846131773320863421072806113099483846623338432686207804908692918555317600776850757391649532623395459669594471564061078321117699979194227060431483026238506021398565037213430845796173607364585886225139719130768647958445098199773080541571714380092211466520778292790825535304405015628281571014153463009563723431736409601725580863833846910241713733086683643643041087836696584255550107053407266631405821995382388382297807624463364080940756167959368169792909166116229922088598783742512963720236700980908360668434489498234061424124592799324038420226554650128110739573001568859483336850043799001527928565302171846160917381017566235460155870412327273572245500099793977684474185711698165410165272737018956198836401861569082174849083808214406934751304731828870456110763759662850407393293481465343125837298042613021989222319581669995057721189501076330208220432705440207327426033565615494909084078260821094470936249708780767002585648396856338421054252133156685085829451237361609359616636229602635912408332205196205631560205541599328408168266748938260375503389569751275546825622263299752627874300728929776195342777487363598484925699671607743805126477975239906907212952070161334230271700041221684662232636028516145508066604501950913391961523016139194388156993107727104478982409283330716511345581266662991180399946411772455219865549236602488895021579771091959474188042735363435171474838160691441772394920577861416779759784936943766914090783471294303800249494085521982751863280842830170300921395481299204231706373601555290616671299089331299616511392929495322367487919472155347096552940953809380363830505386488603759474430489014925163569346230122911419472324243237928023094073448406568012448254582380333155880081842914690668729979637897901411703682388377317822298761903959307296129448344240956581104494753584659746019403245677462979009397855341657828316641171263321068732049755825792549699505593797704317415298562304310363813648045112189114318360134247844481230954204753747744510097825890502544209531832871232766970180889488575696125970646295211031040193933063957764055657625549957048346422970575637252575013199598986808313824992287186404999205626400172873322783055019241728163646999530420719093179618792865244117666333917590079489423917965650178205894092118092197918249066583560730049622197060807785203048276657819643958666732444039011310769996316323475105171737800645440671997530075580542041394819702444336745803065569331379458585317034956284593391777513208410854812457366505993769826695685790542230338362587466426126025395765246909357586748206241535768081425781528910692002518477130877156319402826270079416150943426691940997920836537237808988297588045154431222236264338692396435465882758212537169371145857314129982410903091480528655219117096221367945337646844584112795233418863409887541598528142025193834870218861241331353324945039209872820799138179053091808625979090420524118426916367018410979364540525470087827742519356271448163361862250802883276302428377098394905566695285029820586047650870400272812073684054128595961049601206891001062703061081996187931972089442472145571092135701332306710382372699269419248948578304882546495887123869085440967511722516864182302172782711261512703959067051949776888633876242725666862021730978828165907972278935780159465103651463778148284997647722321063587663430384410656029042106207303368951749623460915465946336700091683368171369267318977576153152700454302612513270502492776035333605878910708593507423989741706871842346390939318563766998812636355848833360324937309119247390280626034071690499999097424712374514097127060135119302922586006821153000935549995494612727453595949237535121441512202773873631114627344175671939977659342528353432485082020589037624989007077211363826653315077037842042068686733988114755749633851651435932659099871949462214569648893099992906617149938381153414065494418757054822580829760371118430304489674153952811525421933505475982457436119527789750988329445139749773290117211531593539512265198429219158826521883832977579209423918739395053018836223402157533279968881282072645127047896759691330911441603250922132567409911615951365845590822235262629464089814833530134035724106850077052103045842202581211362692106048921570439553057915788977220824951618174256300811270820607544626610689024849902730184218294494019985784013697510520095094453614193349837376256772340988761127557328800575636164678695098533568321893514676913080127675540852617921748446330149434994578421765507569015175243607253219022772112570288065221083062006490032681969975719251367238426882235447891438212250670874989061757499944128835769909202145267830548645746201852396902694038007308741138220688874022683813699705698461313038452471387940012465817201692711650373793809535924350894948292551411766683522384543021910104025951567027576092251560141097441783583655959944883815913540552553021817419510592645540164687227513518623092587043454708824962961099072847889795002869073766071786060446782558261013885037960398266828889384487395829191918229385386974953852734726315035445144006771659128701344998112674844212595693080179318666592642153652194165010583494257812722903309250392437949457986024244080668735419682937405838245983735035989584707270995939735421846527673711826022783135883710018157593536937974128846880639694162714186095016532235545795916396690841173281421158658601397252203144371162734995403261270480866947841829856383573333971625644811934041342496282085033734706124868588893578230849446636552326147840769833924730334390112594761184304317432099717027020971147709009555956085253701814691188014547464223443547000856818842997410598883783088086738183000226511072879589827267661364852701096144435568994006166724669973867861821088894992290917532627812089874231177319051699576864082668939562777820928734276670112104297302578943043521767994602300213617075767278834761180208434957355319172085053989331117881038004797275513540611035326384007749710019754577431218202043310209298707364148078459100380443122141153634594745162322064261930962069088025129746756188373144290192777681113461654263363740991235422509886172657462005906281028124227060480647535844736937786022587364802245773368631990479637987315084062151118616984939176505204896469369396810036649240512696494097107278963285681545381268971326153931804203286543966395443312776762639012289805435791574806603739286187005692575563756766014246914586389568273175183723076511949531256229320511010446060486791213820778117384262457015848291061778921572034115745969048024824379198838493471380197368798602932327422294240618883608491758692405563058041373500006260085125889413348817629962490268711078923969380021106676607072915213024836929824280950062321459182083813018675047538592717974525424176309871545337621607709158072798042025089686466686587634726981784456744570902635320605469150956490779608048489385763709438952678720430425097001368832814690721454271950175316635873737109156320722420589707576047574470147867518709778304336481513369000662050645060946721783636515785041130057945706598895757979363398320289829722394752196404137216367421474353149382579118332668010329675004535510449285560374755118673288787420569181411174804226222075453011231961574653714416201429131267858076379287167160504857385607477753494585959085147591515062716709191392741019752066958037330985111617356282003364306422786842887762135511717030582207959507168314215208771373014173408827728778201108280027979949385351937999958970991861536797909397356371819738343031801757252150498125716723798334465143244360726775588550413779005213389310713711782479894593381026421035296241248560115031308563791399308941855912417640798042730074845041237879215319131909361435633609557111025985419177577864838237491115902625006420810012244063103705797115808951697234078934133179379813203304212059309006801033910635521833321555419083699538853275333241268899129430661815832597390257622891358397700289629809924166635246096219894081771795873908007344392457141496104766344087716822350456654107931825785041721233438532306554381156866513969438458767338734354070491368790345358255509687947331759388859333281317328457092310543279160052649645219850642948408125730426505911957657917192513302815944932977636801947753388096339416824238300437805964065471800486432697491655915758159529553034131500586294663500554347270968874290311999256707621156328890784612304815432496119363934009139167903298551513323308718886798586456110600964002694566340819233819004916243484340347965877581018216452625976606966924415902923997073442086366356023556037500486308186301749263868395885847424425702424272836470627075535273406067979921727342100145590201085558829028428630459597600822852262211733969200243143231589340038538182682568286970083222334957464295062589888442509519550899826712399336596116669926185359908960713160180458171412286634773026624047844969120146837194676104440138143254495221839374096435859261186920471525744124404818346066726471659653039343430306076090920247771106702767272579716230483027282750907157247893471327929323896469497701753536044089218072291864586537486393947343859866230070892428749070148055139273995347210755971520032499908994408448772592733965381140972375340072220108850096720462935321897173065021249613640514115458383177489591376647235605374778783863845574881356169047030781421101399911380436402665784670821458687693516373901617067623075446006665593767057304775000537035849869333034573175850056218020332165521145133260985302204112723383692744989627122894836265541398078026005143509565369343981490328320118011839423431860460689343369426391646974154026436533681242982481372496569671090361250005301691347375364872044198566168364514283143867077577802706353966626264405190611254083147392266236460421974312865648660102729041234676614540552445253755590804765457132982935090865976113239681089488235163384897352081755327385723204076594882294335919469727370134956320025326410538518855012428980128616257555048637660658072079807225634665570906184810724750205497606157613267392970628151934191756838291583087840921668039567795750750051373879093269193036727609120662852043935168987856115061081491791166342601429749360443617338741226972173938386631799226051716041858935547280184404351650421489864956455636896295333366954924935243444272400254173669191071751537678638880930020575535876609294556279529838353211810526488336186820705172270913358569398098741601400595530641016207156879480275984686231632109994837064808108250578657154235550672593581299212959531328305672167704242286142063669964979457827872527884902681271337118021461721552997546465392532383083969341653645227134048540988768886579484331594714276519144975414679984025534746502556533232232171164274045935720480262396808615882740774874473171957279922691503806701937664459525951818755530332710595647941480449089480800709363294418791329809653780983350415836618461786136151917707693666409907864451156558875968821024550473237841564208785361793222697704006380365579774863291456048259291367934367158105757261441464798062938313163000210527278724340805787330242216108190605810362748838808684213731169216341427746433115032824806517930320107667068235014912264097693250909725904573718345272925617184807151138021623832141428631850400505377910775437816606034948521413578535427608931443768709699867324959475942699105951969294602575934686237755059596050410454420052315451548676624762277506025531850115148517489905696859860502603111841549010054537029886361969604168197589870386107207911213120503772348055757270874129315943685871944464254016563760387408569013581328289314942524619382585113407724420604291270857231273079051556503402851353679718973651896105225440047710823304007960982534006800598278379856746240528586689654052283145345321116081105024548793304669060587061110969212575097090318763694424264926124808196504259824788939838968417758832311446650680141475498703426750044954096765662659814436371647574294036894462824174434612514750958255358628004191931828340494731939219685284257264586854934335991859678723124712510217575911430631314960000795919939600826268125551644018515951504505621191139325144035991657103357683888214124143046703266790098930557898122408220404307726221897203494081330466937344533035326340770996461156451863296663876187039509085133550538717465843961971237844463668422180594176101094468577266234526701021872474590809706139003111028485318936004940845534321942079825853559506217067988001978072856336382825222139373928002509424677407150101926070155837962287221448399002638693132951835725799139000983186599918417364709859953293837794822156716612600450480131651529053124289358207414425740843044990756743488388824094180892553987694903286302518387966694277315986449303661479251371369825150618413605656329977289580394730252169682127196465485855527673084000649470080989426247766960122077627285133544506099121396644899175905583284606718675868973119036632599325467882996443484215197349649105013696574860410066905765734493928045522808708913365718716810825801868941493902111203756270410412016546103852349543865362751425712907513089189421445329831620120068429375581282574379511908120999415551577993040078208495821624405556446868703185044012509941124480700867614916983215947611334169455363359364614643463102164482366855076039357436761697314682329908661269878480468724595533755171023583499140524511741386395686063186713747291195338267118045761400140273938674556057873604734285990212984325808439355709403566808307878846108540849579258949925230267943792032412077122102463500380713853923364475567545465689989481560253803917039887890692782107330323212686686971599872034168274043445625544459303480123014860192923282110289878536570864978864213975378123801057791690200797091765896389832882762057124422268274228107630793555393263739193535426803353355082823834862404650929115928523040495147126929770419535274567976491360259138297415762249589479014185323781196050665745435569196148706410022167510515364274769622391116141016311123110044126968483303931280766064083097154171165909643572650625146780825484229984523365890229709852035634872144310444688435952256739968453443211657349184020565271634397144074032898315971224086446526633799514937271873332377283059864442592938768461007095004820806787197308125770806235756593327825695038225413899354900150549345739323469859025100400712860659899512491437835308139963292880229163000837008393371161838136618418556344124268744594110034481045741290540823688700457217037235091417129402129890107996375126056331188167400351837346219058125673831769668739099186891068816223710195505412501763866608303587910139382734178631620615206728955977521026157752708741921487616778396269273819262784816150444766260080962677877971124680514435781151415058207307454978395030516125309447354450392344495981342047165444737390593461344538243321269739770951307304486372446369769809410265183061222770793496671604249276827604211007212804228832067788060776909770065661616226041779627819416591516078318706560243682058947681344767437448509834817511801642488464202221569204701771263456171122436238200371505131383103047948480909102494218306629406362754762480834307547279743537443615075756466101617303967700435915933504272388227663511164059207025209491009613456587992561307602024611301397960586816211884708532972977834254602144515100096860577552200482016208987104855646685840609163542564234296181026566900647154975770217448676397275360115267310303769243721377588607783051170459759908152769488178474517648847385709642475385992027055332587872629563115293326789388196007223805646739802596902130193496004421623368295994027261480873460166749573069411962413336446057654916429536317591494260895841091384864588249291428933828352879896225573519426319555933707027489198270897588718151898861042460482952891012694963565695617399437283670129666321816294136794487705766670071574900374157808929890274436065982266960316334793058252865467831195975490059437107182783529042073787879766446091178678619988563891368491110138045855574733607732179170600073201569664868180117794672737982225827937012580077101727847064265279113332465894029560485507891446791726294257246361956718327210768020184059383162275407321033366399820638898770170264992438150291076273921689406437758530861419237603151109735503719912150265312685610991707704441737139837297109855758912975716014560721131595516154352156707820301954574366757013735364130688852409128167443394103916720075245783195491276709511257900826797934323115986675083517656281799133270147399733336756027691723407275534165079422550909036575689125311433174877834796549130004511383944907962871390551200962303466109544289703105983123836222605115716656165719594685050977820107190289886069763498820409873143730433410623573384622255614188959812933124938805245100151914488915460471159913038206926821444665655105886279771720935088550131352243562350071332883496410563097675190807088865056118379513678524506726442417126635155914459808731729582914705552960309421172178129788324482837717220541891529135809047373905019505604186754256494867858298873620803869799269700994732816890212310504144310142040247691957838645201684430405595963647625760783364854158885900740993440279745659705849724591508621682985304758216093886952244956251255307030381794448804112064407341293796727930756467319063802434947033443941079199437013758521922539541338172504586893912384785730521006747343331632653410696605406178323893570367349596448779112666453785364438941404853706245978161455324799542934776975312090010387574627978471816485109324636206257190432025613384216619026031432760515000384241812344503125737807504678987771485462015252058741958933451272887970565416659467141017592552571327898625302133643342846045747265289532894603989063951749481507091018300529008004032943651366891580854821937893437883763861608996496566568799936528183834203882910553881424194906399252176403896185928598775757095883265728199603533808272981102244528196949966454840791501998265743460849166742659226874051066595781484187766967898708488211843292203185579721551387319874442139462019156391648842710256392938192618318196539341373522257720472619893294716381966701125957455135182798990652266024660038163257921979514445027334817034915225022586209764392544066350354402498986874165354569644826319364844404918375567120098227201652781739866192943152877918267567138102362297528851829337910689875828089632795545806488971671925056846361462919279267244537007119349614534399141312695425074175578331563915708306807745865423243809633149752782077525002938436399485931351240368438031908244034828609674398694294383718707183755882188162510187779015588050589468867604380300951438170360763648000653771706376449911154695688903424682772266598168846566428036687219033046100874368295914879668160096569523803930229098490869184990326229968399819625438307968923484741277296020815473379432878822959947729157397562814145824318254346204240892341458006826295243837123151680519364165668401694590912417931652792941112739088812692349006297668622400336816353427242651477135797545280548851930121726287457821233968298076474128158048132678806573981279400811147561226157388704164766864988187259351565445652004072734175995983415346583880685543138941124217133662382692902788722000482225710384747946603456945839902633753063338720887828978484097680643772075838068388907061206439672266039069504697754810564697059348106019690382547958207188369005296881654103496118941890108557088093726134151715875727602267035486524040718774226780315994415561671680309824403084545442798347549219741026119524518599031591606562758195446688138155833749774071148850337145204402002261778695693468663526103099541220017071322442719092677870666444641271629205729570194558161471314718818388560962631595723098539885359226329333861362456279305049587578709510334281089744072129419130398753787172973891032074431477195131332638301998106008473618065082890437466613220413111471449909343721653997700197920029501980932623400935604595698374173718508029200353048096148852710913625910822415672574876478224133026196584608761364808028939459585614353625111008056375746391366668188480253380002874642317759040448643917139324598173253500687339886895209254548364724181965605155948102477178570288544329114494616894785651924963490750148061380436328987824852736050346410025224774257136756874373817208727386874940167815198985462894981657897885489979277712469143959875389202996339166520829146779453012556028988339600444767054378660373615561293247480738938976284266294391680477980069167514564868454563671570848224832935279416361591000331445722084726525696536694926576103211066198795214769269586189886601608982651574317113321827112546766893692332390824975154229994061240573639008186954303309640392126587460018333509787066019372521528623503179283128474756352750804410979076434446554324048718970797189955670291178032850113438248786447665712602776474856710061701968021421310675084919122260804784899996455165791120794922353823898887607161545435545567015568017534661142238801635354327517068256736419489647358755498976417726140299078474337701630612704588345055915614644142891227705932521380891662322593002793063386556911065569099047236288033463353954649649323733487679333052392672914236645784218006506308788135495242431356238359195594581575869749939319319678058096408154071451703817249739168526501742971519503398836762563800196136597603407082646903424727057047503454380671132221618650145749563352925960061108616707616594994116352868689234861100312219867816567530002057026972680480958544651211041329548103576341786234512591219735927698141582867979762078289955143782558622953459928754195872540537073044526212891073682722418125468328753919685267323852603963565221640009511304192041902388332700518075360341100462628504077945970238043014050694635538507751540661529320549155315308799295182160214733074502155551428130057517880889047554783228118449069629663913028723618977782820404175979319260497349431804161126395961211955544626198399218915052919999426277236247155970302712181266434521037427499476461791694413375704703147496737404904725152541394539067916638696579046516233742440188530709121504629407696097445463943161191534227753957114226803153715773688982759539282923583858435939516153600960589430055624781196309771220786609047540878328125943221581135894384869576316943809626542024164329918458491368204038639051126016077165446248188306747909078827325028445127205164053092949256069394597623366694078379453835290652939945518318754982604288650969724352246618011319686061167759597542855871291436825872575883592721590122147754635569526035350531924302299968839341068006693127535402391472316643199761639019935112399906877734928824376002221136496207495345657471400805681198249610367479650739571781960163062482678837312527694164887613632316142473835081039412479102827051921841673596441570492730755870613474844376778258031059351562188569433604691942672542529626288643644531964180746103114096088790444218800286196089967092508700160249222324527604961133862505728807027681086490258854567529008016390451742786447338826031031783054880612837670266657946920608164587552532504541900217544774663543231863343091848009513501265613786303462043038621368195293680356379702204108766477163261694922313770270559387590638224771725997635696372533196421993591872560796472087201109181520374265752528802647316240824163603437474510603165932215327779278459846185237190136595248533711962293243363721158208966967223865380599370318627597641119375332585895675664624669121579447312834737137079753466556266388116658604774868985732469872171095912613375171291454085327543568268026624892835148708535276790133314153348270031424133135697032548332671613122785383594900765200870734908267192419904741153481475454110023419384894354370962199037379043054032368894353892570898114538896723855334543151245624571899440001848894290308333501115943277618166937240329143763665562004875309754001607312571975147117890117730773405354935638073370776402310922343969009196675899705397684122858187896547937724463426544445249134263996122711578773246495271763783715811593034646879324926988464876496067564258563553766209442913467581250583045518623558979615919984384904003704349574073039240266853800674945210216976091481734581521219992236223173505859009763552280287063944120477240227670798402682170887443149729844605614530509824895021055137468768987709465170827941287042509425817522360482449647515484945488601201156469524609969979561004647111432830329674198938073241535946307489844978678018833863343608383222827727429544193901185668424211511353806981479974951597225352650856692108881488115967331533712260455162412967897878431759675766652537478876456182470126814034867690382013720418253128133064201759028412591046395369140212402718658333915443146350688131421073944014293982919775195924312549764679576580668101133106258239525817941134478584604538306829652785550762902844013206359250435530966303167919668141616228330477620870681204787430902648225795471023873320746488352227553031320442437411834522056887199004384715464587864677137160590409860690272390342884906173525577210553667269180720260324431103021724887432288175591200131043371457149576286018650762216572582776832807888015091869473759082779439466707440117280801112624301738951398107986230748119049743225624095970378065872185064876957847993976821233737528498649985086526117791275533730345854530112038683946980745737578989567796062787604749645731822077014213799400032755771244635176852308243061686576647710473509317271173353598775129691747068312074301832754031545116000994505310643278215406043221438018589243733056430772395269383662972026379380392674525161178210536663965724463071999288629955780227037916716008880493637544188215725412199824810036857744356577997717115497516657264453488759474981664564156401283295370198111509915776748644731248380731851334603959191414675074513864043190293334384899418324207021866813358083268848876818681196174457987830365415021794651058834577348737795985348200961545095590264378692168561120900449460404089067157557507254549349560745820151019228543168588887330221062001738844214052537317446947316813428435217747226848055190478033694244563175073783815026438132260465930697058365382448440438574076175212486006053423964445406388537938524266576464204584142708862673673210487354176675104265179824014071022119421568283127940123908678509377486061617597535832094441817648149407849503940880991684025254996754515810294892792788445311536271995891517680070917899812482218565936770026032199815285115704976786061518695593274615622511844778899450504086192602731069797899680328594754920358682421103141929585925674815655032581965133446771303773998651200436500914021223237380402567213744516075163331153644651676539716730527313436287751437731724036881404819713914919621029662061295718607896466963649931569663804999078125946101635634246645367690577046900641688014006966111437778919536117912990020956614420830934983149046472068745249815113304741249163060592076390485527811716737583846771284869372297094390973446156297774622489510581613517196787793330705927936181592018977722019315566793384214720097063543733712353948313824565842669588403439034538765430381811766601116576223960148785373273357769591300506301371447049174047854471429855998407826119769764483064638459504399906223387136685010479839551000786045246778934338545650376466723109238324663321519381385894959304722999224552531128797314740875982675835381132117257085064130981176503055143577823561356402937374624906847189721704200447980178543033348558434993965555153228841914178404446179633195258139418779577202207404293658475456022885393376186104894101215702462370287971573013908148174508501126999591021460675768000218288333628326845552137822141789498187554953213045721958122727297863287460223414577695012518580049790783316765293166721187314443409105744894371012780122828986645237243642197246214989859871539460853508483991760492516439879936592021773573669240115513138228468428090707365927422591513205592048552607293215260528243378694177915321099133818889161808660559827013842962410854608271404575486501048249092345217913035226459255317559430833361091310418080314205816443739528932204318923685660470848933432597130695790195700921765371882487027279403946213825580103471459557078460856681778372117776737569127224579057281783673314494366195766333762238242289754729954174032125004379538894164458059401145775145664293973216778175444329148343439258335419039988566412993078264341473843958793597062070676769845657217200438382766944973132475313044569527939288350171715606538689686547668831799132549193983613702017725653623518626093610195055576906092925017661845272268048714959484319797097275159959404058881362060166370712842885751352304302507968751657697253189356743175047032208982135989503784159075660804830140305079357447876516212412611944553468602910793802492220522962230887551465870191358694908326639262692135378632511451072460985349911429140879177291932696574079678983687673504726509856482036683061780528490807924970462351505503789155409101327685437058334443290517202857156982022158823000299686480481899362855044399361772976347554244656173648087580996628531259246051179843976212027549788438483046161645194732003982655033215329236177541041811111065292240123518586318321831317349910995822795261811688658313281746018466320087340552347732024643732276661187698229221296033041842770569771712996923477814361995171753613154616436567180234948096683650779581562243795740383290696510457165162822007854182567617874335357250939822789564266413782641192727880049865706338251299827740852955381659092952199278524736067030436939065268340707451863659166657281496888182745788605736592541523599736178809103164758350318691686851920086818497933017896113733172359555299377137930214778239510396998523114584989234882852024159326461057086906088022404932790210824876195865056828159226406992308875089541077566527935197290071530164678330918536873708994159093471986169147681325830997545454413827753410872264138875601659870079824541941538096749418362436388005588225364935972761200211959681688118269756251958834257331849425603092659276424479021376649573790419557625725026603289717551056330245173764521314390677503661832994793668300385186315393236056595547721371288004042165201055941725329168674215399039238938552469684791846967708830136060520821483904577364531123998794333661235969766124279200505332651962455364541156873963021332637881180818482989297017971346834411290707471424145849571773090531761467119866273448021176098168820616889014453958950275867154582341586758498183836517209812264971654124725285355682504289021187562952375389956278410005719299089328845346839354545512661888513328122935969641233940011967851419182244253674143013121155254047085252049788054511977829873062683604886792798749315554817428723667098744560757650633822981262987164255213088571050307977425634927231478006141943024840319245644560882775168994628666171147711956204351830153567391237065983557411523489856081945167084471996979666619308992366190240245719109433266066503034261045478348005867009206363529270927431469083894108022318596769279342168416641207596625550807978037676104690397919727861467597188102645639821210332593148925830854546700139397692202874687759897591881073325100001829337723662642999348921679657275761164978336246166739023908591153599107701099927737477937972223963510151881489111944250693821622893707372949047953446900372145079687414958004418605223435983872271493536038664298209835445359490373139574594019443749595782750442739126506984071977469107288599947440916440936099362269058776422836466582328904113869277221064176449007034319793722461502799566087170379287401607664744384413969194977981978850346478294643540036370776331746656626408249929409855256070193686728023329277430710024784472951213474477813085632745381100870671385974353380930076117924787571523965140787603471064755837659949302252070660274022649290609268272539040043922800755249781420725077249764046295855139056803829564301199912838222111545303642323243902884070260724196689124506690365462392525755896513469536817132330780844325105236658581211934890203102698890709283104240012673575887997982805846117584864642703052735966569908198643654670921099593205308867693168093083998290783874837120772146790456442969717521643152514733941202611188058604871165614139669694033173717332991182761414497589730082095971571145979548103764790542957460115291036028108377281866670452874873823003741915882365532912296347597964920672728831699130634847741924863468035287725304687754250982990251423765623680118818408178311520037349334537105141620085638847237780600279984821278346503040604381531671723353694856543748525434441380844508079738477478030357448669727060063587644383274390849931152638506422984860465739781630488589353471403107013302990261800876656421970680388288079494299763069693747917762780469514012845267478298630848447302956384545403429868454099277664393242255231584783275896882985909034574133349437915782949956276132166072929249884719755211342505676637617214892837957853671367165707693272376291063470719920070973814917469688561181949405099427738684108552354359608557939517193539915702541666421815394221402468812988670304262600527028681030324058521642855714359746040135914966537467398964620585820244198525760495542962253441714782962539942252632292308977679139871364771597173277194115026151319424504594670782151981430285807887245533826756230181811718052652864617202176990419834086561401882435073507442994956801154649783713329430756051619329926148764515097333293877815012509702199364139191959235639818486537951396364654869297882445882529721434068141620779649772776744041541029950732452242618860384807109847388219398884303452934488198556685801649708374791321035978524503748184027413907121479252728278084986002589967262006675027071813735954425529139746408915354686754158222950730069631318254550894496887770583490108446464772209198807290276075766158631441464911453931961857895827595216846680718465287471399421975801457251258031946628050596310061678723620429370945717674729679473052288645100638659899771860179835944825000486645748609413965424166190714140262182589902543992314421659051766531148332759637980922558421552963881752189933688405141882756794712254247487818261487029041166505471036055321160267963651634199680321943576933652068124977969537168430115019504530534175915800726451489929304722571811942134878741208335228367254947134187107732158298250585564101889077364287142543624386060829558507627348540256580986534662469362158911923820104210586288647397596314120007427236159062626571062213061621208976473007696091343798028832182288006510288382822095262360446928466682379259553125726393743139437401497327255545472642866687165711271685587884581335185629947438010746913888064652092530055321888996753707260618824337581344733605607950142742903381031934654707264169836627647170535326493134700946602994067368107056574483682519396603816839160528451898139334840322513768533643427191320102592432400155270052007141095877570243738982474803578330910657955419549897608118825600844304490431400274952746559906156803590530173145153497827575853963444266510831400843605030299987421690739460039967208668075803308537897040976270059977064603355848092910369650047604615757757155655386688361378283054440510675116331547896597614974985490718274620515116902783597544307921831277272226982861217956538700686571893505442961196865341217461349065997681822213346289682106095612858458787302218121660385146279153782676272567677738144585507683796421912752078475104489489566017492083093931306046534215085465317589968870985029530686834957502677960485351518407130180557272149916068200190988120153707342043134654981085678839043734161571512128887073574698957324574347993522686468411095034732325701342342718997281368521480216431553161889519670498839763018917592826223215943580675532096622732436455598713806256797462972666650838398335924737904446658833091030960008730444301406432105327097851781006583273290346000162123870428991702025345432481338570605323742981114021055830970111171985607645723656645607697879511857830971212704231271178886749059781996874057457633252019451208871433221645972754064297459971997220257531508680223274535108137965436057381692712824686211226567542630006757297480731825664125768071292889683957908504514218453614331309433148990199129532603124399720243227540068538102958444382082020428032083572083121405318429903214143752209159398340424927184570675146792863210248094994562914695185888607302327531545345622020773051937531877460430390664604924043500497563414989060331587605614059558375126577715098634911702110294979254519683499977958402749827757337883160034144989780985716316339079759754035705801361838852370829906859161224072799808373710600773935912766629118238612354431484561029360591904140389385638608390129567726551579942124659956784803536282542667607634525791143008157768739188193726518323009426305774132786449579760528510934852534632250790219564280182230400130386319814261734022571983197367673311159083963102724924372167128087654666299315449481068487661265047071655980486300578916565077033917040427553052090397729981168337975742527199959237548552580704796172233438235714122014498605112931041771205596814378764798379806068762690589081325328265196816593384916664297548658838326959243757338278073096163404112673939407113246920547220201518819633752333349205616119639145823215266740982845904007385573263547823205586098891480513463134953088448828666121417648598709856869589887702773776567875082006882412108812783783859499296027183182905083645015907541460836856584378574769358519850253589560073733397411071916836727139522126722907162332278447658680891908780802840531724873506275496094559763132203155487410455732499532575897553896768084290023824203387721426142566062550249153956153765225619679742974466994762492981213134868023872640396985622623969653572997828371892566532363355586976038538528025864708225425013196633653845459440769198008286296766566698068458062883611198255521522032131820343381789661344908160074774906143569563151941380719327191553171380814717985258279246775797557001766686332653919719781011831147561172654118610189411919112356532776259982585966837351785863831492190099768877514669997956598927544459281319525445124956564845908939087337947434847921185815390038667661130310693991406934160926441257290372677596087774706214168887022196085834797608000270832786039814930584688978270173659170254724063146044279918862284424731541784355267012185528947251620302016731989152036953535711304134500178158043631695651105889396017530504643310313500255239273372614832343208881456471913526635065884798770074352216993427312793415756580586702012467750838609758601960683204713057482132427772369387120060979222086837322130144533208483045163006407383433119294643186025813547789400377379800678452405147190762923609889558269540660755299578969600120029933711000700723336809987591766613345615111584542754818934111734636648502498290295640453346213031838679732821854662084141384846130767434255763356455872606952537682298359092304270796084520367943575751771025148201265247748521334590015845478282850023578008613817620591479755711693386182089616307449347871068217274132435033100879875603221454980890200047002971688246181601135645699427142332114630507303460767306337559483606479830035241055579899755441769424712236356295823538788855408937434614322971480722494347663855964222350171453702771823080776373962021464595594651373796067417832405467638163256163644365344446961110953404727931588136416357657801091986422392414460323760213536478218086283943097013744265717163971888935595147919154948084156541069648976940277255051471746749200684763910685507300808219600061899777491711337850932306921939809191920719022541108946056912737158873647044442087162446937119384787239830372464467857764380898159643948150137418558587374395988583312434572121274627417264250905067264363742784856284388033971833605368518905781483959125642554970213469047849714938532511348119319885419253988023498652747249537672900047621986313074572838766501619674207690134239045864946751616640922335142204787064055252947662131281517050664234891772756413623925340842376705189910664448646292983051311038062436574874759170735520099193699154377643895460761237664833407178635853128549493581536590111330985598523339674998880448782020462156289756132030708877785875019093310205383675248865610312039175680872084131900438864913006710919308388363356914346349321819273363651410114172473575243086906150420443817413837307510792369809628025179371117047853871596165812742463937130611521641753478844749505175162922040878031728135720955403835354526784021185317869928937351542935352274538089741214414613509330399255546379934980418892128864844775244635304692723599526155338434389497951834600642984143142197189525234314382440604370272876179359149314149374805925137795819738438801867825225327823356079299785111849636415586699589982489401978329768701707376929480565163572784075917912091288970551953544338561660366605611253595909051038203187009621888971201290831056796799944155718855455412184982301976711988847621112945431992101100413184105397802559046743073295981174786141125237128847582422672587275618367593334879777289128891544703196387397264724787722514388362306551447865349064032522788958705246640883175220660609796654422752633487809214236171044248559929228746680671414189689034685088393642558205341973684786174418727765518139634995801446341314596041328043873238688228707681639713503536515221845192816447420855266283473808398551771874809869952979602838385994956925331926851358262528982801648134095012258453005389418966431804988546020488026566242437018199397064979915903546491392900369209521847705033942647901334662045741536141286677060269149223966320957052607185358592635837964719877961621778005309515630635168511528144333358570190071601699159865241318988942078808010337368949600429293305837878434854001485568051986898971120509603045956963325527301909392611050320628527808754053170789138786623771434192112248219251012450218838835639640544409015225627199951357490856072407486435031097380751416785652304093506427130981457223922067624548499631564958176549396934538339855499874233568804071895406806168058314381734810574826472915319193676188554529616510412829524629977326505951145653431420074104236791982817674324304066071634671949675878467081043680081593448730838643257232573099589415254522166806724725004237689162817756038085684423618887477023435811327673386519278384601249469226205571720425433616176750745464139393156385830142689511343483954393271864550560795888172622369782896439598785599150856734123307268493817912147664142160816925814672531121059434185786996728283152488678184817394502426178046540809117373689516608889108586026258357803440524218260886289291913528838144546333297157003911269539710193864843563024478313594782496932625823024194709126538482134233734083892714603565258264870690877183499425008803071969261563118359779769405916451123954002525506839343807459399298609460284507532700030699282634322964578503855554478326746554319900921742888602739613361392166545245153662231620777613009055240478946518598219402279731637141510905706758998635200739691585344388233863406305821355531394701542452412060368974106666354514233537530777141749084485548398139351910035098585715637525010119078405861825420398706137229640173465123464296333713194604633695242029121367391214748509515668736359979346091376702702779988377492878421467701518539723676997260801072189726460673704366458045576176383321168229961692850835459473243165704989017275357601851208592143450687634060503912378691726720875228978410240432179868035615523823191222560024858638032029507827647993427228798274595412139147711744609107155396555892931999820884453116971692114809062894384672852345876722204566322033131594954730782678690236742783339674467037626532927771457240779390635858246392131078942679435432223525228825353520251621939803196519031156335485024047122319097321499959711101504633935812172794890202486553182785539268796683471828287891830961533368771072489952679826571084309892791350754817601512214982318295935958056099545126448250060624143089695692359680690778986673067696184738490137919207464285654205431578867685432383617494690944081210748374672589473345579745204060201145749069309680073204677756690193306054152366238628405256465637435991655373215546527982372698842832179480977545020457615377203283460773905349610956511134891594407042187700095908237621677240520626562932586451674051860908127014201389731132294339445495782747561096033167854646908538926336154959024505872831825934028374673107677713206426845085414204295408164808149328953254263487964643842351329486672117624821320889519252713749953536608053022514861199761817406673856736084387392535396368386635797772517500402387090605519032402708351115482719681914136473339989796015046546038565185848942059153986550565113052287882362187045257657961932458313157589210308269729143890822942525351755022678295436210310879955427539323330805302878074982758399842870571426976554113897353059848000014093333310615298028000915797598713861752004416575610016831482761545765301256771259902997363428159605447685112260515916259892728824506771575417715213018284427832504559414823187870020566425370207160950451481611783413899042039368163554034186747150589526150779489851267608142589415960487942446805862520180379091038145267767977319101730748435298766989300373659018493164507141902571708778969157183805670485090954261360442740164807031687274988218123821544718448722513295423573702040104973764800137939772426734525083602547582234362975235516975030269556705617672977943229064003817115294989699841673240820915498355475985380417241705997534734395982748672412375509763790353226992583372969549092549007777799563796583382531421279973697093670821798158026927737045722753302948149742929666775580167597876448422274135103483436428749909379413203676836364192563621410650592200405282947822452793460111097783173557816508004584359057981600211559404041006905501524940211424868034913936859186793993750181718826592723639635412232233521777168235013721806959336404157527529565064853006084174920256563168794964697098134075251294347247971466469016107840514163676812426392550746939507271889322226624133271933168284527106137351432825229876883324866572042230666093880222903930638454896275270604209184042412673595431711962810552516216558792280445861666072353122700913556812696556799367504085880068455876134885364572856537426461060849915580010454149627406534808230083698811718211890751265565347896870536301446863736761315516211826815885145488580278311458437739411091012575489039954305108512314129364546289744254050412645032770032126074810392557210181450484989526147109038414067150926759825499643667336265602891722447588590353601176358170277028085743868423695679262300016587729988014433755860297577980929389259646261083821186616168512164644177312301859882704141909481931110090421437035779270584683051808206909007799393494310797936082697808061526600170143082528494567785913287382727749260716890819171298529206134062521969554387275239279086840156871046653591760075578199679513425904775837866001709873941043121894778148534335865368639051549181288824833439350617525981109701702845138290006121626599601879757753449853966780295741737042448890082841228859310492934221181684709247837674298209641437312987577611605806646485805591266838825748672352042669393634173440288726362814253443675636503070548945489127638134136875349111077685573012114417967357597896354493183335768214832834096701124978304250378704935936171387273061135439757699020061635346624851043007872146200409622379014910233324428284931283849207570678151779784272564904273685586003431431602384735506539673312093653873606177675545730946207871430958582601662616019925497693075908377217800727322419295525002645239599913001448955544155055324181882155175897361532364510275507895646776172136152906431440427279192375637966528712142792759556720851866777540603335252329013062018843290646865345585412662974705186533037687051460765767365186862753111045396693284012222235681508434429658699264251943762457959327177350151130872206931481784918302395785111013855581060463577838787136489870355165504103735423329919738702764549546298976291215843607817238065326785299503646093591053103909273230889468092208573953652045676135336433810892180416843762170722643188558990449133195355872480448622820688456348510069520364470867245347080158383332294992697561743561086003894602153950740963618029151828041603709720894616282308486556962682644293081402054586670825203159758850038834097319574730053348985808187396342506213075476454603532569342433116911466442808106122437039260616330782411181523406985924253674123425369456896438190899976550063079676225908683126482371938879664582309048649087967440587195354919853630413600504027219105768725329039551273822632216700409151574942570023284883649243887406197286798522702516844895355616135486746040678664356235698599581710927861642758472506433740260633697707643938170491280429378427449523032852753334048988848258137670686895112361513065305886970873632466041556740753097059440095305599094143874257267798685471087660904071983086142477669154440603391830795376558116469624654279651391073399866347982196402298775529607009810710380149050510999919262327889741285468281663164772116158465460323095044603822136595470099340405329363691261876735769306116406702758145606125602427073104519046564575638962253403352575447030606601274343065515647184349403122748508792912077173865412034905134392272504976262566648293738376609488395448872214870145304023179782526034636306463262676738994130527857648576975932894666058985284873732107913249320461228057223654896608324456816170694357791467046672226443291463926348040361091293077147544019939529805340418676429643882115124786730141408438889390465137813639062247823447744680405946513041902239038363494322103405824192373477777583975837640257435425724342311826418187310701047479434452637695713976382670285506505118660598701930432850308943015579760677325191224754690446304191064309678835167328859380327321501382170067830668312763566632887675119867921124360515157586999597550360986052529191827249429651329036032299939591517046848736356540255975550686984623645489045199105337261852183577751593651792349545281325119773704490543578203778159182429806828232343060476268731139150980491679130796488655347094597148859474354257957369625887949646162878353474417142106093827940925535347425330784989159978037103217587909517849833352121458787615671506666620060917542702802739207620939384860461737801282004108086843071592937987759669400369737997174795729624098091614336932093466416745523919013958487439155253247300809334921626318794394912302584184977279191384446777594888683035636930438121137051683946618627076567056089261171737339986841719396215436474505567154116249898078028481528452542516503912741764599703644699216800132413221569835903375905229807924552449140120643051066753734630767022704689462792015996491183996788728681979824750691373249839129696428037660757984636484707061694968349360582049006785677240818648774379229016984981897695513643353765254276624611449384485309349334354981963075136156729405666574327179471798296386343336623864308368795281774536963160067327398947582270134063302202311472433492443789331078468269061413506115540181328263983766491532582049847252591520561494547916003833883579773335026039220955532818782529294127938623378887801477405007958879170985157349666979428204207328790640737293528190760976662855706340394440088935528460299174660094065737142934816791963823082652736265005248613824821218355395224871593580562133246031145084067793236969542384436467459461848251903099637686804079225664264095308527890569615579919821088890845241489443177483750130706273959676861291132579064338608928581099872877831468913001179606251975840352828775406018336955818777847199944581783858240185038915936591242817856177097626451008423800053781533467391686580968400657482179646086270073571473283978343664677306483691963747455559857166828157100068110162883019171188439174849937215573896699974491133183248384046075302059825669949579413942390861434896348322081322067492556790009811803541221138965896187885626963978913980829893709086813430187620378232201958232320636030924914824004054458843958616077607759563537882377663522054491391412693575478778527671336938382795981048607335697574526823202657452360065868970848124864483594324143232399153079916421349619603291194494596966372396228247609710609251172715244884901146641679905643248908922885469165365776490868293002505831334493374798569498091595853576507563007305452108642143105869518419683361408172166531332169108836548414317269514265927083253993676369863907312527068861366938029441285055049672360551820807307200910988220277455260824677688496636278047976809930514124826322511231162821981915328343240444779143721064452273472705428466799978724808888425200533194383329468200415301466441630048761950916175897500600464525055068737218613316767934346501902391573500013441203693087697044421148980201024127896932765294677697258788152924003769650824094803252993761934167924440479691826074366449890499685218089842991572731528677216982251618501472085695834062766783296390246263955871640025794005473487899502557193559448188314387902518769702840875236518205050071622643247171989750842828818037272212868107027806525274329299254851630310761545517142244202085082036058134965317445082449973852136056292663940832183353790103598512011926779947273698995744740801656192135326084796225988691008507640499407300494223460159992227303384332536965074371859960089253851868242526823231575214033398319780437459091434881691918900977985124207458958916717476473076186021237938058507004688856884991103080889977770300040549394296148140870166427349195105105737227541164145220771336241298395979418976181957249429082153224606584619001872552893592645485195484125935664988702303031437385450817704856949485003556055633882488591148980921754546886705039498912511210353391749166658963247049010155057866966230380658451321494025256312278605424540638662580963551138348611130187731144357569479361330967490554358859375579702580066807373229401471768312291310843455341910393391039914486596394875940766185181873886302664737466736363121337154001160610216505613736998121364108021098288496115609156199508998900251656483823185289986648152774205199897809335348123749281725394222197336579172704947958739873839740031912506717719195496864403271697445298417483879273176366276052348780507292057911127749907054762816756107916060565977832817370112152647538634595088320252089910752005794537057544530948712898040520493830732123917529780544343657296796318367277173097445743658859183243543739707540586222102995122421953714868881052753068003098064900186390494621784579669477132521881128238243290834501123367042732316262726595966848070976982841206856811436159843621810313089204153412841188225987159475713020695293316350383668584115129203938830426917933583847011993630170785767908508769882891143108437086107299998986449447986129834074418419670333051920889881049628324282857733719717684051464284923951444656685113946308767414058510598595553956856378011582289994750601124724134544670220722425028411771803182886264165242282071007149393711914711382038198839661232852231209074120202664076476845625868283204013426063119652514363569723629451405746770218184707990593568376962004498289951435694840001143343937902125118789721023497664213908466051180816832902904717473442082150388606368656559648996675122195562609292085688097318460554301950265953147799234231264250573669039467799856854193835781901019071914946579338376600407363022894680330811918787945157519672016414247901460833549402974306135193515211277444757514045461751102363141837026107698362083475936492211526542533610298808640916606281187912762652884562760590641748917568832985999849360010728298427209759488713109176584197339973829231920069422957635218787815144539597854087227386092394598988366664284473632342797072735988193121564015294222976145186776106021340352662153490734221825651679598051622446755599518096651120257824611178991375425722752419637465096569297479611112379379245311055572680213698387563257041561474171460054931041585119886035507733015099762717676559520065492368614732331232076691582460006412521926496360473783335034134179239468359061889873301299234399726764308727387979483585031079305821554672732637247386632772883767583585619839422987329941523112448864642475215176667059257166412925564362202829749078833890030650081695550216470413044473780944123734655682734158398626571766959027706620409779615013050309451098301149891029978515568262355273727139803280013378865145532696885051139984968182885488869678857676353719911634080898662848739369522929091932171298242219387696031304606711338884014139609604123906328247092444373989141874961216460646115217015236844289707436193219735453329628043827276921371329168319896720164044290912527406334628742130097408147481287834316795996984313021188324180137033603820311542378611941304262165668310082016571662843028983580537519304146636845936312008890962154304891392028519914926125725213672740432946674921566727086625755364260636065942664416005923474808159863589722528767004131061161861660823665495748716676551077289610092201285265626573137524628459643444035231717481377962571422925983603044054054534094893936308829796427382341063009230853932548722709236462437577514392469693286039565928200780430016149409481920310341500481392033201989440492383649550545378179378590307507860407035430090946672343390777737184465835484256410115938852044717877713314848141402082720841451433275306472518165316893722063972756125094897697426112596183166561168785608381923913960285875743732246624007310472537094906197733451555220280706251026707616364233997600258570400453432606429520616277202813374747641652802015783281347119568823663580230470418271744718651579119283538411103567513834302535916275185138838287545096525869835201141011658355150048014762082335315986148392341886134940771953975149335588489497220395819636920435313278424371378187847808025680114166058646466932308844915051791549163590122864289309869482234740604453322204295449982772856909632441386907902379345452839662035326903394738108103497657141953090781424378676021981603428767251945566642798490071864750676336454456834015225871984668178712249384486205556042450747473831082209824768597354780883799832976281761487759865836207222085216202590938243895082596710757636448062861059352320222327231549828810741730912310821600273514599054855683910263122966631874261977943039489431510346475139400762375539284100747981342336193115492837083424546343469187505006914914287351834259022127961745441378348920462176577949792199782603485403071615135347281347432871945454611529975465323841096205322145257264524769737340707535575126279607782807652756468574339919782319555531548645444535789033707607403368849734803339902391350957468246212505025570648133206501860225777613441026160459418509994572337412418487375744393222600607604746002809588248318853548614490287100148665852734813411837386076904894339824695239500779006966683958606630488076667524865470779324357755815523503496906722727729837358013560230108855930025917599801061489670162182573944820397029526471089632804950856918388644111416720291051990503804789939690905461214514868945141801388085590232734942597416716967407816702639514817521421676794627847791632600379907800012672857683446729784877444588675269965696794426718350935855815056769345837002992128129583994178220464485143728518743611287603289923103184810031975932794479536883624779375073919378689549680817435064471700930277262667379099557714467397691509534216733436075169078622271130250954768688013478576796174198941681169909134429788126932040926264665553029609635777073370365729620403192563226495264959704993409137201511400528156304620528474789481118130882391705491041091753194039324994864323173623665425941344392590989396362098375362653058358988650881064517697354418144878457637846534478369392406115460194905101040961876570939797462875456868196948440825192755146121681347540006117527190316484661538204370963216914643735667084035662114972825580245089830518494961078836378930590229148995141791624687017702199503790064634941389042064700595201203013947139868085879110316380841982542790794576724967219733582274646430768701234224043500531601319351106155847972477352995952459149444976118344258065212922438499666919746416114953889634669656344988913850792535479930644041174354023508460988976302638206431947232174719527783176325189298281860492863176193835158556695603564249959196296563335111286257272034449060412805992101196278292626015312029504524966397250950766080173402357833411906459838733977070348837178739722899459841042820861070955751928775553712363060609998691850626474398921391282463365332682598056386748140863191433342322816255391401197939171424965354291266797376262550573008515634273864899336507645667468715801515067865053629829231907493227474437240509762336132199668885459627070940678145651648529303843640818762618845587429622862756671751455912678111245422753438799867821949178164649721450202199619110092380760643993910931259487411105460975393771311687503965592432137079984650268000778370679391682725044348686427495743349988029278300550223268706797245762656181117515352764309871620461698534314640212238286987276738983485901406703137532550675800861479622387291743282949329102332344874620250133798462964650038605463285440788465564131996427622911040538644908112458337561956007712041559878161228402247935061064902245123768513821443189519828553340230975455061363664534155637562403489031503234039713185521773052206876208697486979875313472132587899818128241455888271072936300293366789671584930539784040444606651929997778159535657927868278069908722369973980955178757198149064382457903683129122052853769469909026957113608502302088818835285503604564616537243274746168485588832509050134801512485033555189968638951553878843762928916804623928313140258185833161198697793156252125340780916372041386154727687988082258081374625658690738103290192321805484287047417784915479969224741555087897171469883561602738438972522224475021398686065354155285980643469067750928797559990648443254773117865578265052952639899572211070801136716919817614523918706556467627577530958141840841133049130600843964013315282904936100414456865249134054744016405308757402043937159787952997570041366415307032154070532338313027004528415461555041466091397708821049951435269903452930712012794632185692416780802351880564178225999539566145258429777673495070660804266110006368382711947024923102979406319979210508235443977240210032392411173939166804269741657931974669758121456268879642145913600806062107453956349439631997838635405386972073304114001290777405768225141850281596418007351031681206613342866793188621147557019219297122187534123883503531320519473392307885782574914252508219215072814706187734758628439256451446857788269914240042057889967502282195632341122142341232299551440297643226130395000981822701297805023996746625658942368243772083502662206908580228359136442705157773116467588742333110942389771628942705573753469850364106986815739953636950887384194688847072316905996302591725990507387541353459266148226419486738961784006161830066962103903673451790498082019494146582709404475608180654392994867872507368377166884065891464849982809639624481114574729164401392446030539588073654098223113047039820506605975979038556162692968689940925022912572112339313954425501360154594437203035416616703239712675000398055936587557061727482540256642462586092867115444617710554108363431800350517726555806718937740376344759099663899797842105180064872123828435359765403468517942312735373804656656137580066327215625334610844941361596296310694785040711996803649378645408403097305965131473101353732133549433137281757973221359523912646115863739955197052469437618275488225809637188070283471923697344620218602243701210041817363038128329425782879092472303364038533922167204786825082079224827305779270296563934959929076978079775429173597711038974345776601454039061078459833397097097061567066853256588007086680051432456395914298135072019268507758724735131963787734864020079439930329951016523471613510591726217659243684223527254223762094289996432430892313589240897934673687968930945710431381506236657272516768725084331145888453087538046653201917230643430128497885364121541134204677154994773427157155499409062043630742286588122448027109071703301012292908561160520944894612730490564119516408994658044255899461464891735288256999667991003691325166607858957498750411609520601679267615930620416867418946210179827205123368279476287529622073282025971038187579888855367792580485704522461457515778837039836041640811128656484009337711207514111664761440174507212300163816214237289149426715604935198923831510946561497796828334232372118965843608254570907659860183597784070210929306666586095847865891627129608292690183976331615221245269379300028788888158102686042594951908476513176543621476086627422967594478356156147403908111802678781488205280485705636975619828621672463187450640628037967154929911053927300185490288559812711128150581144806330610053082341983517736714402063577707175898459912361161871833834838422647614881806219162181653508179150170283378633754716554173697927242471782257575060465014995456066123354306598092340152266718496990024208720755829235224498157096106716122046624145816163621912777226301568958751196991070166844398338225727001134907611806180948650667740671727859128440356588626156571483994612649792688457498861870479705150949418223617656309450380789380441557173624053862474795580439774940090691846753497904320975347879997857644086077396289229612223733142003377125614493480756053998704736298664539018894978473297178976582208816618354327859508658441056225810444079189393799968981300869528349847444313450106073869693076812752793958952356312360248705588714949841621366014010030217131618774204104983900409556034712596886279223121864168237672372127117765252846882220519340846917318204441994608065689839670464145193801415390479025414695954785985889522701399759303790510710703911492689634514499545876846294496810555650753238199568552849198967332347869530165274827265740728219928316859304497591400004699482920666069321530103353137192243911530835529032997713159828547751946709058387752842364112797919985691268592257335830109343395491524473111610987367370474275738434010255691966288922436323638191015416930790995845916328027977820951036866291786983594334223383650556350779145537781154551818875482867282135150855529257553251413548324875238383941100494920432005081801043084622162065379277117292725587120730164361569936561861626276350387074074341345365860301489300587754345289219267612281413946249564131146803616412375791264441629325454118729789862491192343811315104516348791091640728219005360825633866038046082618077205611570094484719722127432107442203064452646569701595023083001931062977675710605107540352368551190223800872447110317584885911784103274917010228580522721287318773348528448429783941246820876369834791718187939648025377961795628992350273212347810530297004032884822497575580263516642797900196316758571120946443693901471589554540710968252809960967651753776695796645188638512767559975499575816879251387095640542498312714038104827712001426458574458006556355176490252888675472876675397543635475416150092248536868420593574373034775664807207812788986110304909409352349539207304404208263476560462579997412080765445831726619619214753573323084424185400550094501891031432440682947681424045143251645578341362286274772161619173496629837634400726150020153814183946886921378664188225488788552254875430786081590734833696589054593909875941784063918815103409149035863935170585893153560249653584051898447333062022477439261170121647594599984497987308274991563499564682650213301384275493254557259594882698315397035735746741408243023887338795239828824262597959168708825336533624572987113039210925729368452105472490881660100315466519119572573208330777845358933714499844132191071078531800060176756214337746226452886179517083115466377062426215932786921904272045856961952189489650243355617856825906649985972618143215220383546958100268082422457744610110858807767576790959674249556715506101167341825747793527180374586156272744124606769663241727014907652284593569390298988276284011765564417279325403311894571413135199978959530160786512557284769211781351479950133354127835950136647877562614466282174990675040419987522768006887468135982491565966761395483746997060880351769143662740476666771960689231910410454768527159448621506344504733093830768090816767952803020749710444219607415610830958206383106836287065896307792135926095203242186519848257584485782394110808290549522389851610243307259823181814516260912751804680685918561403757045004943728798506057164137746593405742939092676260755392547852139438986615365282180837812222321063456004013662264258073829858508524008553897575974085479452184211262916764656728167206513526687271559828248698364862669886524490931168579988962713896756633333013643617152904831606789805077915674933010335486875988787978129734103285473704180748759605341307252918634744979999150048348091612046677281388102977278443613758941438442030553008237073203873207089922446756283681481050425914857719526572117274877685949374991349743927750239672969067344469421300345258704375404458942497463540749674121669066601553053553353642982912873227874879585509738571011311116365181432731522546367529376358347428840756253507254353538932748291126332570748587375313858702166238617740706535678111273030003806166607176988075903183538376881291844447207215563872119423950655194509882228905006996061818931227284590092064117192937868562975460087906747169525644099719662083735961862487392058681549529226161074061588625832723736260317847536578256502816948483904040186500538784187874326105637228503848665412655781972368937194790648698010881499932239813282685943844658753811211966328650549028881850501829251852694385288366689955076222533935589636348545304691523654656144443611369032904784156461402338410046155049507282152397176234929058183406029403857626830097326004846518055157982424362415482614755621333308197332567519446554221010052070711549570999475575199558901076240583895451649434557241329864787938757734584921523761811438658075140004300744456503151746373206723977430602745619609080379356241130694032947384341027380950447283760500957109004016265491010884407572683418077921613168079697007481413993716718231780049362257051454040841493717132872155897626919860086314324902492641769284067721887760316002580035061741440722183570608568742821554065711537953536631892086763236336667024985671782858379887861443341584266085400307260417580752919228816006482550445827875733807487973497941052340210294700185750726468328200213785058716379905262756006098350091597758623864811764774206002689518571500951233671367520056272818654841938034912213482403952012771556308848218105464312486815703028520376569144698861176786431622770513566616226876039785772740118001493530887806381716708489500055182673330288624332667580395191618598405068792775733063526797984589311159362786574148480641230550380137436267490112212203783912151668379621571208628018050550723252777699734953878094628041203514256147599057891271982966460615114500083305776706957790917939387516366261368909310506210086997951166490771024257524622437600662931651044851166764087124695292272700219362220261948572099466220069549042000847859636434337476300854535512675973013852309596937374583814774743011641376761392977972583898487250471136583203041306712669943840565047849193835011141676071584627525311465159161670749906457057283607868059994476133996100450351579146605219012967217734006639326443303245479045407982849171173371897882711999071217407916073051174152533614868142204979054910722309013647171239674571483937254390030378950902280356940186439921074380708326620347407085166658454079502563906206773075331534751861629045575739312456649633254469505839952896779040631864015069172632683635734109861397093411633217069895758222611949127628981654763736262235773342256132152016256946964796541542147830370987859891416339000404470818785373656171087149738561356255478556509924700474259803241383906502330628729371340469181152981969652957210450432336760792475507805718954204236811759482398526353999898166035618897449293055071487281299163542493828067741945398641366189285087822038570503880733616717000151083172875730889329220762262394319878895716777394057820323234869844276839026308409624559828025700115471078874669110379020629058462171095575004322454473481365501666441708634325316377749235320600091617764284624607470656460953067541349113352349860384218224899270918900375247693338689538454885088658895164761826733065282512784265890516813849202747400435570383431611363745028384234230193771988823183065770507962628876266614130665654993761602542324079271030987919957408820013966408340679689227787169646683246380625371853097995014487667771806967309440243021033418404989153475109157098456739443036852507248250696879441581068897282296949259533022340077720019750981344082144117880934854883829340326042419125362142094894461313248683478405825141931385223211569641909970756362556105285696895692799545893382973974197236670423736353616761022947426033856356278089249612255732642924056311883214038630673301865879025278814963508844288968879434210298093400722132136126269130186558170200736880735254407718970284170206872921352825563180071378748441140771947734658835107169285492256876354570842355736752782462895519737470436054304439498710282847158667227895809893353170610903756557540954779630453816398325525852945594672697768574189500942904729330431115828663574656170515454591252627488200866923615701605698627429521100974288144116035083851576767841893008647613824155222724765347602129448452326918619363323659477016225460299063546328025436635596230663656173603358163129094945559105796276635742791385840200938976021823507729154866407287761480484741824549654273774415278875193100552937072128210269463750692462573342610406546646123419847249071256841800295379032227982228591961917764318053932566111318256939000977896594604038591167870693380578281116641744254524631200419433091088986770119547779901285750455396111893879487895857020565975302994691144915873372652053465249394135516047973205415676512396640511461635817674561467537505050339332880934062441834152923675496589575019437629957023400079567537548594525444915404926411719117948949600793026160105105607847598678719758963362601300270925487963681186238323890396739044625601841751497572252171354314498983200644579747263531602332783235195648278450345295839944920552499365853820392180737102037813454015166274565957930487114987701187355600175829388251293980623259715883681904835431922627080531241014299138235880300668710536033900902030572305736968842650836596911944417684883333182207793516750413505018413825129397544154452712586916015189392585974859692451872086553193545619804250295691092039996538295688885115981516462523867992946115687015032527097677568072826388801999822840659679359333405945383286282714233764170947461957745327623897309104743458037552609410339351414495276769667786869668175907643613380787782032599876846769682525041730971005799742899051776211100608339575757279176745287948738457655479515875877160663853763397460395732928835510491686021122125728198263557255195863733792202012877027243068573227295386118781522407465943705920472656369086131487840859385059626278119449633560830710684420761318695854815883151265606143790710544807142633481801896760174626033190101181384241129008518365451505739032882174200711390514116761960725385421028874965474235512348416574098233616763405598734247461804917236665355628674200556244875985651427443004101740997621525311411462020479459194368376767158952708579196095487907297372684624927775019757441965237206367127385455831275275927601009574215158355382120609071483203285009643164347036388209958468121367365628306700258014137951234795603384248671379277599692316479465172349276992957796609642521198634126807040388911086809951996669336499183735337385098467325203621636381685337619560096105218999385394115339081416693660487438264398673636417137979152717546433380546869462483380536020193094152527062216604964984397501794669759991347090304938576079984790953235457389423167609098649291101917636958582377869856997293306377259975498879707000834710178817410068420695186700345772553089833856514487501749739319630196232652495936378869987025693639416517290457435239717469982893073096875799431635463925264840312978224315430744622183097382449933287110410948838126431763859255719718170282076324203515782474735407417682047287782712504295427071753472323723545793580472318228680359956607475685593571294908344203417420598641800295374429580929314514143489420879720553597384555129201394559315528664115613400710406353271441528448532308242214132571878892629874329676736026778637187110044660578468598267788118755146230120020712579394568011472076428632138335625793869904659720445700682146241249252364614966832719819497202812175546925784718078603791410685396503323427252905362507706245359306848969109086824697837976386188555402751626230084441686159823577010050490964251247863413900549581259817436434818385712404085643909344318074395667633970928644630457041332411951973475713027196708312133596816798993419745381669438797149584823952906207780620944721386732410035084046041068127692389676027450663023835529229980612742953679350172141585417817268484985220572039201267088973578241652799074946438866524728721397174921240586611462667304507333949431840139928231774663038747444370240886451777248585956544624206026372264278261595173191826739582605818799051725470139767152654297614442116503271211426377235074841729793129951426680705823036799722455159484287430973407815458466587163672993127395137241694296520754631324040586644839871802133925912941499804625480180680501535293132553057074995342768860372951310475580819946642355378168248428101492861257657296438852879475190600992352836275497980955858840697205468705286111805837377652559304381356272479072222866098310855305889630720514321272844317293899054607875711188561475754839066663326113912743466701569676837621082438830981225932920974935733937405535121803838349545784518979718585188790333917832659463051246074012269960438554267828176466843064743110775975858688996096304365981510521907251113583851620284340871298573374659964768306773921837131176851089197121590959241759751350909750561203998162122034151169821865578640578606594285703144944729114841839915050408889080024763477615010718841601375567557405413387719885526542319254630144793099930181258617151480010380053567019005293784805727142847896444771523825750531951507058764730181027244834445812499715541452428076586839578540754204436525882805251128514403337260611279954639028865972444795919488713165835601720409585010196597509509580241878651645310133030420085372253177636941639448830493029144594678517530676958228284813254868567595695742217595427447888957829646439642630603332505907081261408784111453772154241139344549181063630600824984156534739115067128932157063710822637762735830554379022125055162925105156087332732148455753302755228471681663748158992988265200999465469847725895894278930974353874418459565506116335356869879659587399079215008837277309424516343266342875879582375023171455914042932897503317616799846972616025663006617962741269039071306509557387745382394219094829664874852822701904210971583942273720023698116706616007762975417014383536626823332987988319345192044281144557996158810204209197063743998070076816604181997677992102502621501528817355386815490620807136800600309855066594309875198073264138283829923947078321377048969495446077956875751022975785787112565755085430903251437357570417042743322844988667437579368394934963463577409431249025845369354680190882459545182311632163135155543973264412464442002617466749501570157827840335778377875555274788415519224584841542323339165654744064571853409067846295805227347368353579131507225927353754902604249717973532537883094541071872810963672321011991578033342771555526247332199714009630952325307963632095017472295044473692463694018782824565366114873528087277233944849273819410298386105265944385748679575367338043806573967705409615352387658641211828391948657127224515083966067122191028502207967441056978697278337470145614337473424567028542730471237779578078545719274397727132537160905900890481869671771530729851947113563941997904913387621725258437245337144622912357027007485527065571545546531909665968264920463332688972134056241665455075213920364230811061064927355449754292325810576475585290292612878895165924992325921016810588710332788752714511606472113419089089050415728206820778534834715510074551567851205643681601285451372760598389648842490564135249153165515066493863032067720288311771690659303085022090205809123333354193233520059173770197700117652367975129007236858190552817356431521708829029362330981164637452177523679571709446526060163658523294975561866958497008033192122128724381611011736033789873692505654136459712235747380513044266180889696109652258000038821655493085154173658976900973007832127864670421645634522364840661418587399448994449237299920718302142624748187420188537206231641998114926335418875218672394193771563451441029408512151179464538893680923681020437072461888544236527824616160417860037314135584837359290498048583487699094068434293267521839665259401345354511579182750822981789396427449622180912229735942476772857438103609217122588726044215394708948700496378202664419293752912022279943832616342413824367794667817539261435543142055687295048142451144311601883651592207385686273185277317468785581095531547628170977837294271440243943044982775279475849267977932407645191901120838633396911331790985758453317596778330081869968056639057178001771203697431859254791897731070048994785378326686205577260747573696340142503487998526021627126551151399935291037426844112197247094426321779064043207146033253358025169224896915791843414828496449122074520587053985044651140501964255857407573938063057110077526720911537077715592162294979335478059556631696400729988877266431496372670487621825428587079538111741441985607767937925898554095198740216990491069496951785329920659983894556135703723661691461788333196497355529206378783289217908186481607785034360153074878787248263558137080376079543744684940572797499640390650757888317865120210240480447058220488152221255754120734663159435431244607802685000901093837037616194967903710859976928504905807979789210651141209854445706201055843956776826758246653555012915512001850919491694158667591563937636809077000684399151251189869940889690179296097390958049770656704186478933860197314607160557700007302645641061722744634526340776800296346308861864369743510345618566553618403664167687475996472299101602833112995016510519706332932865196697861130614117508635196564136269039407946118023331682786917455637488807682837017911537163808834400987193390248839192988768616437371206236095978043859979071370160069939048527884198637979581382945211619156412136803708908686362359557455297886974169080830351756045672383147549093491527050528364749124496825352386207992220072224173004704331583890284158202976617427292639219261071714520501194424635954958996430351543922288830240752293620363185980237858616013203033006239640668043434562352274361107962563598618912900510292163562475440772300409441543469416497041770197555965908473417375706361376986806002859656769625391312144344743196514717228904633312696614099104924023299408217537544668032208100019988307730215416688102628877109662846423710725777556801661014899361499600283078528355320114779836538560867686621149722915164618192756059290694117003919907716483068802327898899939774324290908395650991228977383022224047118107687751735745050672103691061247564281196627899032026679831650895055110393455722876302839599982602779746638746218476649730710602414299691114568030096170491474423002519567592683096853390987615606961806692240847137188364766597099352844186923531385574846559151830113307689972083362751192516645232175087420700088240289702073744287408176364969060712109144881936099615501988818032258489606163905390329355153690959005427486716333731938669457626668153849414247875675723983611904952558582286551563881248064167867581460262555856900334029773615368477632973910394379312191602784487131962322985268649934569625233901590968945238251437334661800159232841097227695299144680113020540829285963845558273426926715927880145689631324557430120226376814522835218481376266677625228819059716902158132836496625887743723104451099437167734284698316131118162571783931009321744090627529314311512997361203632031213379279484423060021415414842414400592949288789667153113088954194361437688773376911783508469057873333108778893022559371799974740715511624853161465514148078963112911379920478467316040178751156041607536555561884516272036971126351866079048802657815698293552767766473329800578728078033062309826690069761000045719841741841843606078946596631899001845088357889321653801015926053122383607083294642190793855598288364499430411002467510131600889747996789013209290444766293421049375275377853134647974574188406693163237506965495815956323434963490608032849609695439888188501899185544072755611017209753814238065055342537189782082356747022362902399207894277109054359748733241481740736036891724141686743463923286544618390812881758236353764503113021662915888090755830239964859868209212306550467550786345473574796206113878678922483495705640665757131718471313997295540708451220506859104730410260478696931494352058527464875009275183295932430169135718598539546397903846638026133456961395885499631773972047520704309973049763919334228946629693658432951277573143345549164903936047912698449224050857542789910887406454735432807052485420276542033228107413498710387847228884048114683093684308313983875968536437895250167247239264932858089287907440436262475997031376512192993746793570513281298878432858409493635578517638141377769890117883293701773409597601812954386451474604543409965770297785395549790200676560054796734788353207992590044345915478093291302482068238212742067249383712304149897652602659858932973377853466653526101307702837773178876555061209125338947870477764845369115210052314668066496936149064801543784742560051377605080709381155497850839776415924708714573358061183566807758464393974348040622233992479241164889213745143038535626008284987165600190849174695898994817136203418991164170007348954624679151136477043573993038104334500388659512707107210598444882776696072405900379049214494270291994204064632929504282224637304142432973541021381705242362352786137388366864465783790283878488598303293025625406269526172714027865067974729980188649346667515181568253304471491512000871156224372090500939445439608005686167426467055365187266203815637716760630985927174702186939094380548513024014141255344788376752798606742030515901747123703306551044723564315049557191787604707466863824230794954325234961236514405109047004246615041773473541380873534503574390532974373186547008261487503310339480695276162815985341512771337888031960141571744614058881629184424393436360235282464364632833394817652215060716194891539539807856934002790359160419502380062039634113275606806763784270998483312080303437420557741000850321636929479302067694965192826906451331895824538782480643890812619606582583891890776994998853448934387777311840605962467658642869731117342317719561023924038738113864873221586287230015401743078884791352220419360876303761506630320249913151389546584205334376430798572904484129958194559198389363515119354404242352732892878586931969358227843673649079571918626601723896260488370427954514800051478657678897420783143589348682949206782699490556057629246458312953298301023283247436067732041539990051717459480669589852740623251600666915050768239317843885085474199854713835923463016972995822642150997306610681871976888864494923312621812400194239612273178650669587585236023420720802738068758227339156743322251730855421796216228094122272468918900016637102653182097684525003935511533039840136381108809675821660274628063301874127812065225379387670529502105488158617800090361208017009961977282010162510658855246314988408985188188997922564287536033604624882584864208620432491295531085940023037333244227250526915543380308827071054772904165852362467692145956369516270012380276834462156052650143200043181237348011991494164942932018314110049765850408812738451556819376895537421375369921723675703100507425759330301624391316808336246591953877729597175394811114982158602667519812202647232309634872650352609148607601135877042264342932387525320745618114947649840439006667535812114300743053705499565627782628450629724441798916255849574913165876275597986067806081929029188687432971763891050494161089556421935320425011876717399222597707088790339096661393198325385381486616449467056241496147352825145215719626268190639060709074782752865539800969392879755637929181553281495399868796192325924746197899512219350375344154339890745810820277825131240335329197089337078710715347790719893173993459247256221308597271778839580886417043520361183652336388171745764223758745645696059938271676378295458144437734471860115734480576667842489426652616676218989198246352158649134828905828169039493891805286871377490032103896882926855487071840955257123599924477420168010286089868758334162238923614681003885320607475466289800434857470731425606013214837286651457957249253844697054780492939571789323034096061799874579424572318424240352228765267255304026541689382990628607703590392178434331831387699431398588796346541092424973052491787952560570250143464601218976603507237378606817999902434802553931813400743517223129940157750206693656315430689953126323028338243419451652829498985497407705000892648555162594494676675578338063184706947139859074698412308785121854786457527242667437900572719646555718477287470861742267023132338060185005806965029790442609336870274596723797672484823015215007364442750654378175879757724550519388234672720386459754700828917439451152769955738928211311982022525463477491290495307028428665629070588425242126681039663416824263205612601855823055205979716452419560616486272583324107874114403741919316329682819962762660267028377761048146252265579394967789482800453013234358335970577826118995708392838453107822405346383683797772881049502860515096141526481322580233245500516857633782197015095411790222191506510178803130808203634752484367441691795914230486195952666704587300264733824137283526253296727517898051160073131866613578108184406676535500501112024413634694788304636401402886416345577056686668668353144025430579378919292129887536197666980491816284568377032027093368037082547630188097263203929642559010275540544334735137118085565214767401185202664726389827754496103864650245098346661156375619597743684029544949826762415632717629698562891277166140977757504351842750000040784587773833303857832276586854117223392015698652627324621631713535534352319536895762472337365866244685932433895014949978960541139131443009667982883614952436479365531072416540831008482179958218949959567001483629033634856203066807051982934810757814549385317012472981090585694697781727161671649105884111282327950116384428327929057192258672446652249856752156416931459917154058911825480109752929699168539407612106991182730616432089583146369398118178958415740885489139768859622340681527704668319397539760402357917684154222233101368438936856543328965094689846758620812233799792636713588105796530182147257901888645191099988028037428520218597209457725713027235916177444576447583591253569286966625759072766484145335353993901424098353566030418783001472427351873313267453486394451951346195536162340109915082612286846912530174903728766254487137028551244392973700567911497970536632586698894670632600849584961261785380072262871612076477072698321154129319408307501930268741093134985164395497295080548396264341057311290794737915507363762364069870221673949647712114980675665767260247864264958650807238907685563840373768229872095598709214247899238201213828527246426922004350663230267605803860626102017372903649335918147200129106811988889900170567906463736186030022486706694159046914486848351681138956895831018026155129763376654038459762492529834560768036196484399293166620070125484387036884791139502198833616185875268911216842813614233525723173210569362753930940853945026408270752907148666144256225185176139798686154293851053502329849512226864250016227544490358299585858479025876174869689579267728232468534112496627549982872734779070575064395093447244484453344459632409673784931000718251923801948910590864593909659032917394800380740144405205423290667251041214204771036749912064201510832277311986271374615117911804389620443180188617939937723004890884225449900827301922741716280638556474287113829039285042215002481950254370975851969438919432184191512909591553020639265073059623460409451679523643268552926658374191712789389189279754278099813963826603185278759769849118628586101811648688381797996725075389475181526878888020575100907171537120525918631767531783609461914083199092674396443244776081811123731749093575316779647148405117180841414410270689116065049413182630753618552121755758284073007049584398979778865848703848147347500304482292616764226757387386366072269905676528062518995854157205164498191589535859532492855585527776233277744756274147355741584727574271184226307415698516448946223889565189680149523325246458136059076332737535101935190174035640747877247882013693517424641378633781145680852824139393670012623136404449136738930972684840540595369683940925578245098552537666811120157131741178632842019206088164926428884236006051025285119495388218175623814635320396979478621797200447312333602664200428039523291901596234483242151095946952494099963448512522576789930179753826809596560050444474228489261329173163078235543303525026150203987438619006072662235339921659999232302312063847566333936345267751258251536986160693203960240058201379308883960518696928807578591053362234935166132371094484687261486774282118879761955960137310015767864856681265326207894909973183118611825829753241256268362111859623724397533783112211472060698616128665589163653386447376098614354834289542750322583732901710850995402517550523359372110025255099698513870561382323163463245478468049297685982854796212648351198214136037700917270556172774834098980370970481270517923348728925825813481318497218607540926796267677549943773559994007335372675864710227230843002544144401873535669986546604944214928550290555902290882446023258173682422833210375781658576880959192507146671064198107490970786382290272154094530451852494944171707486679154528143567690548626447933243594082963953591105761479728855876753449876072366052901694671172524704586781159434222731987386972312542170957249797596648033321317822800671957966223166806540915444768013501347221590337702639896494215388564965835907145072898978019896816643408229303833307349302610231688688915861616128176206871258286716611147506261313529389565141086619768905980351028263870218267698181065277513144907615914476276947073698331815995520933437041526598127585745854936921014362034633670914906125476251629499184515021293784537543410079651281374639743044716545481442072438895770001130075616056301132050961444671693290181247958536869104779512865972032981262333874380310093866142792713310036899438237155016484926168857339561858995842383279809548954313431541015519779446349436028660755422588002307265769993909332812135334018217294526368992323138629587592579073083181033417833377698638399900125774197695846126941951181667798711597002010738519915677487810179691126599633743897349135435054991786294849004539384500480788663641446608628554882810505685130314664480473848506069740935328740866897764525522514037241777599658612810404758065114152149788673840786932354218552777066674320084044435285912596216036830116326253900499346814198531131951304923355159414513768053731959216980084440522892787982685908326514629175014836688843929623955661032801301042783476688175764525828388378817411657405894327859765474712420819197793391523717398223301652699300702445221060634332122222322737469074730114324451503114743783650770651817218059312418968246332552255111346849157336208245189721791565661652216569354739530306150611908527820243506831764237482126473438130754853512143062324020585116655620495538543332826558626252782431508087347856329181237606036745060817307161513509923700732645935993584750347574908195526595146196135212331514837420579785832742917781837392379866519064338334623774584485191467758030861193397314945441201056146517021514556197213715530259327430772539000035524372028309580353628788310659467097160447134232652969227943770199480153754139308854475833378149912744172102166909837296764781906810210250828046211358188356135273305706555974790653831343635344752203115155811977646648461746371075658813275015433278902770668605996786957933879668822914867839697529305647487287772645322966802572939183425719310964642503020697632766094759948542335357568700362841773347808536137731582537740901199400996973187192857478519076761353372202351955200941126880749231444604088655220866634368220056615381691729162563611384024545392161360394075821972414093644179831601117822573316640541346210556182689333912282915313680222772223238504376257051342065871235116008908339453481468330441116175499557766149530936948477294585597063785492171140551885903314445454862605704301023072811762767017621656546711447342041764860704701490459475049386031516118927216951386335255013336040182700808393584964686795963838105156801607851711609288187152539773845011846803695227367316186408207849804915775721435446450612618357048712057062085130918382975115972489369143416630052735861283143835941576495174988725952730800789374901819496550680832180258321839036849810125771800650478901326799414503480146267090444767784016112360663114593544739014814812766673092230170410495757119825902267350667316495627194632911821811809824100959151273923872099884032483111548745465095257007786544101988071285012236720506426365184909293379107323345468292202415088415360879236042002728774430623326659167776945115544791125371471695112777776617454717740193244139164139375287869184268195431101902991565726025467221932519734996093516050751415082133213297043547539998868162691702972251383555038832470108012386027132505786341990224144621886967707632863095629695970841114194755374462160512473974022852603529156592047822476058993499352644107141670943412266408396930813008468799525794188294285589932282808994850534092362467179496495041645658910921636791123853916173979782810032500969692957944653654516852022837463480002800296785736949650057247638243892455744248251711585720792134181043334459054977695997174110072213438604008568620295232841935606187717208886797035254764824782999566037741416648485401220457442687386016124654196695610974374380467837933981205741429391704996233305136830946042812680944656773765544551047386253300577299389627402062740842061025686155672732120272825227652472682480555866586466190301130364742884532848808851093497267451210785231559845146436503150340917295507159281047212934654231243886844000777092844538454146029797990355855813262813060729240657720224015591592507113648128850945635179080408347797975826533318270914448415086772703447399046601735027394365079496723164063634658222278666747239711469807248524002730999507706716823934389738524022304442316816204225011466985813407902842048498852628698984772403721939531277158394632895315808889176827251399039897950979520650100795477564051374705659766391264846996673347169350109901477348618744344717846738601824326538993123665124382951680484045088736660803053249793832808194136612182417741309745061059979771950325044948729763713863278747809109283931197945317187273751945803989947785969035164533465283686658875315978661382356710463558733775658493395042511164296927650668999549132576146212987589194995195109293087020846752694398867854424253037475556249079217535297407584013076209957864858589038567079361852706232785596877576752450899468724994643507912789936483174209912363580708984377358716574258817947841139728601990704435219318197063459675146240470074214451670575139460704011007741841463068626967749507776606651788098405346514750129448452306878805559054501454063175962860100230990649060427770090774645564068547067815870226957291041510920823044158234712834994600576095879839156345384946324571445412022539944622921943462175265509559815252020473974943630935597310583440069949633846840497146388485904234123274058435881102596418053953187833081839334112227527197813986767504522867303593498817115857919634673433570931694494563912568203641239889099361900558377948651671740531090630441771252245494621453896889093088353929340162162525740724034209101409540075130583251903572613034820420330143950247264300569291859239943988247256051035165196858370058791640887433300055718006701313727474932595291984455081104251669521073500294316161238283865828667950961479973020365298636941756645721388204332871954349456573496789186581871857858027100749555650461562759882648702156146774382356165092054998286888968485490961610597478287017023698224759758756907104093833495853384092251900458870807120126172311133690012643962398318815817766837627767115011600521904083335745514865652857771573641742129430582346045049268114136218387104208895592361049293609583873960210810221068386339780082159303143958955127791986747793270869884174760319106429161413636029309945833647964951494576799976476840474850003914848002094765328924917907764705861073278722420551737660831922466642201512100419165820183376667154217100317178881560846127845486784572708075967218109312088970687026943004337441506818451840212451440283213326660585027650141825514867865395395332631511591520658058431966334904282692838905911290147197741664545669450217908482746763818366239192532941662879319420725188020807112453841226534268763574555670040594182781038218640889254959684091818496466342555343216790585625848293599362473765550285399521864123472139977449389827719232809539038366158541343882987026581490841950114406996453423600943825029423247307169700102874332484369158819119207725546355963189774292823371931882001979957322660958595897547295655382713639892744991432389852486472834285080447224134104048560507802491907287478328660781672314477604697598511690427128509519062859830215362997213022476103193918111021101944288250845550983775050330290045193179084215617458170581885634083150957077559763570577930195353581083758635121948385450438901970245111402924920966661637366242377899642273900119775255853794253465563766023403383919537269050858386349657311014183200252857047222224158777011179350844619313973667229881534988564526560635647845549756927736306806271334165254952738188094567760220269406583536262109726092635039790819480201030333042070533283979798566582135114817662943183592806764176086974148022716451541948288450495464685874705766312722391447728133513034604248413023450770550069583118972177427569527009012656079007176499912403685256639040783590712368487129684629066305938172274003978534314246915029697262853217587614622095484615204669064138213535750660711473069064281007818577127256147937963602318010761208955146074867579834292145149246189362784562813937094276838762328735303378446427667626316948576338738215288235052141826952069408186878956918403051884274424937344547451651661867682678311829786396058874077754054238958736286249095323417129953560082378335725057015886694591045995130579685768715598338051367166219711876244322012873600269736976283256806725230674557381293979496973800199567537878362493781004788635431771693849004665405985727606069686828724629101207607656272393188976740813763158890716594006962805831199334819737861422642807841830831953050500361327085064192485180300170039565530154576497365483971285731881611851350587334966883622004405816046570326205764517539442345071293277813530237744892884062248063832786152421909908901605498861749790743220542506930821384805245540097149701079815715693570728850317140239375464993531065931922561877327898105614480401280876767456098172896034091227432661086113261289989388321585403163648511268304997258698952148811580667233509821355800455445024229715634205209077715070114860972425043050337278664369405566451512044477866029671687442062656495928355673528481548921284277812455453850168970407710644655853982359366923381507084700002036268358280694572143307526114020761336657712707126449489988430064099565496315223475259076511849923353184274554686837402342082195006920761117935674028797628333260379473675561606882553707677246011072238188866946308055844062172716731622352332083289892826250313772456151593345688246088225297983743523588898342707532296358147559557903463492423476511277639871152296563359608356074371494489735805655090853978729676527946411051989126681070534558160047230696104977805954769862906240552753027478168618026612578276227297134319397620849120299921552780584035673004648155774905127738282771471140972138223856581563533608533343525545944512105023779775774214349408336842996902399605686860229027077921571459550905293749799121524768484543494933466944736948096395396490058731746016332262309396625968297003910100250868940262176556874792344638076104325725434392029986888746502022556933132708028091903974582145786434465049737603223004217702053866251125111301674523317814604363105764451011446713810487847864195375647856961177819512638716747687555845750728524124585235686938029856763729021942979138257845737018144391239914058636964268289942051494698808753705636811734892164074130237542971123241950394082608955989729297609559281918935938355601044012550205730331751777944586489319093445876143490565890357078370403757373692124828855737112521254759737462554574788808788992727641390660399559880375709624184013966572466888410760154807034589551910579128950438117326313155591537117773035442938782010731559244144670732032746209904864989157991205221373967085103017732986553995920394948590061725486578190284175992021166804344536680381281624445836165546037067078154860890332399904532661756544697670452015395155818513116878554791176186475188995565368694646293499752663532419830284561556619375816190952410259072371792583726619367136347966608886857957458941365931575059538025155679898095611187140601976173181994102558317463704794377124104315972331554105622657199972365686253871885413409714246045622541772211344647090546830798965126516835391093877312742615527057991457111679449278374513353987299399336773385477403713254820237493997379266628619666493220371994560696714300068781769709509096861092697481232586011314169932903373385134751525374711086312742766849476101397357394107329036152113738995750386698136170156791663533936737476658502866200126582520405791677121443607499570685760462324277992663588998167936152522704198241816720709672865868686327316053721315262857758789073933881126416492188221495154434899793531882239705847389778222251397717284890675706229543803571358260172532615501537844545939151557851859290733854086875674920628969153316192377398640995809105119424544183578712769238788693852338688483628926687225815897683758606346035123756389748573457984285444224333561872357536588588825103708932047037881031048418168620471665353402096423515237141327088930036909968142640201051197107449405326303420225457079896590750458383380322167857745251479416603968285917567264807656443025682797290358148930542772026779708979318830741324558603445123488497610011436746686496519143929354548633345266657553775682840795526139315088746386133944260076365962848717355414876126304110646019630067191776450849437078122001526427400295120726850025508251366819207179499034073652355629102520560318437981638644755837019112561240177788605906249198713232201775552172841477621237638700509016482422823782612838058993200931835799982844862781671880855770140221431113361313128572775253691949482905446294275079191254911796728122367049324877195704321712364168126675620685847295488125342189498517343669236741008116022416668539205443087018912508415126854679980754361045064239233656605599655045641874030042865105763425176038078056700500606640238948143323147796745370393644678560403560823466247681764761303499949789527149709307244327792603638287029841974012354030923302598060656652310262882566195227536724676436699920115106033534151754128141729076128200481496721213387238253209990196247398783153295619423293375209323218583329370819125553907732103767870937820026696388525761478470943242533840630245431603693239138131275967040591903115069669755467671730171665808439003478034600044283083770454213855147465890055907740583833819544711257831435220265615051746279864175102506745243261611698089751788559322425249291515056684055375931888639961863251018140683525204146333361704850908457701777320719845891000054678741090229113564662924322482381058955573528762401815602422978062157456939323489055671232658121453678129092831926464202185897976389636973690242321130525551072625543757994391382615591472334699782757658930593077384405028601643272378452961077860140379826803665009585478498853789525677667982529518466678434805189338959425261456322898955654295413464836690336978688372870464774189530775935227399100692307873197439976452137051211538098028015484442585029881081152185043109282734844489496459309473782458344573507669345071827499617054674315440095750425993889440802161771944429485219638954605432352765132871778466906471070146621230018500676079192834065381727664906293261766740503575671758252298844879039265220373602871131576834089100118357552182945479895729506288326960238844468789390284651755391638853116802699773192622749588957093659528530995098614409781745737474051520180984460838577733261859377022766458537870765002452898219057356326007512852609934957397236437224064981076201745911069728680531724831992888617263500806355819619814464960191425092470565793044676801706924722927915791389235145352059333853022947731382322137038657416713554780117123924506055677261729728335957004073703098729260490314391420291986381970576741050289096527254956321526845150217751248493080510044528616374192134565646752853003026687685810803669237416172627594481412798181897516195765872367672729925537380910775065830218938686131076402256689499626880153349070308861687605868215016134550113507314316372747864158188297959652832888292318416696738675021267557093039426966793808340505364626736350869294061581126166629768654117298713838557137895171169036061930236648227077088073429787467947167438532312675870159618086361686019370136488111549029065821193549496946996910452637803060866268557561483131119083634123103719946300099539985460297998434247496697668999545171597634704852884365659484454033158209022159869663816997400431017683972828010818639388548960837434878832573935267711638690129764273061960318589803526429558161498875133283313382004721172455029495607664400223741301902399842577714372044549719233510686359697582941884158304541692721422995791794849119547703354464279181195145392086401008474118954563670010470449504879858240548674082363349356724484254658260169805564345940704464451798303584907167669687188638787377892070423933909619933739779012636847557823168427747267580639449251528155404540799920706926931175968703358801111817420145645474328816446749368262137739406557673824284197666314495719957616651440553032275315334879720036687336280284002352886421355436137819893296689569201372560178349714893132091453471801704407643835772296092465214076978967982679525493622356351494352799276980173967794807377136628778692790016356187479050783949738958926202539165128940236333128642083151913895584998182625489636298037363286348050884559040748572092183340594704676975011077698702411954857793243302943851545377625915246450248881746491807764624911198839471015247399195915324507612009236666909112105666526210603187918845322553741939808373732232801984867370505935020703841896250597225603999919861513859839248419685601034763524241029839660894228139593516893582116690470544269240875748771116165048985984569733327948140071651986948605872007842786217348413549301142345854749925718902237156982227447463172713636018186280730898315241897516465700627629991916887621596205958734108723848167579961149705548115194832360820256178095865503077999771263354512509794420814696098994182692023806644920371900407076275067054821763870647871170749217921156726051359388290232655658439211422798979698243713623205155447020539337190259656291128989033990394762587983091112951448966906028986071307240830300121219594035702861611592443222950837139922449651305079648102353041217290924675127554418594763323706539595980202957306606883733277030483597027762792266078888044590784288547003683969387815842713525238300371238302497732144460683991135028494877860208819296019798847071157416184419345957799358773171958730717982096593537683968489615925622831556251225838086561404748862459729117107686323728041981020904312341457411413022452410457916353236939463162400441226977239264704242871632042982859521538385235093704061150087914693599938428691755402747461387470477093682752387500359498859566742242641168697848197241320359730917121181611479250119274914981835817494061732118420993840794482845656654606359443595791781928369163625506904717110387424607968938671416451742260518514853011607037713261282561076294772800719374783940379931587896422068723552668068789654960157452871024504106107123322048389055498106972069348908382291444664087615091803661837783821637839541078271614677085378446981001698584843682001103249718719629929443785002617673654404290210517390639419213301596669521014216638344408379498704787768862523636383681238956492366745868284743632385340654878085449571100696249116474331607287492888096185040908374365609444769680690862284380442784488394854514766907289242513212306177098229426352364269204429443961986583498766940118824211436175635573198459843703520510448541328365950159565946284101799839182532747840649511154173991106778742899060675606939394038964129702986789432935167927120790023037948891212120403953654452990249602767445085825466087541857847046264172634749539247989204601411007109004928940225828182144130207167196658171203704092097498966884241988692236723128038539688038271208800761630245159365159703836696935231511930660536779183706318123594000995396515062207806688199175879430117597449539740180656664694880010316031587646513754918470019022941954066429719538072956348688635364438727778674959711241970952608371486118008531095860787728717069942467864240461057191926072368415628558055718877494979308925563819427903481112385842203248062467387627597457380159893489197894442857648995539722172284134187019587692317575934993698240746012259649804875511813933150611083818530014199204145478066957174502452328353167020660692483174995468744395528317793365614008201975937645151168440120475307697273729096124756530233059007520068905727264612707679995041961570764766272218373338644574686534822854669318932549073964737552232394484046918130205027963463093929491819675579777381854999220468151453213712924574902553256374265486165685469827059739149952227625023591462952053508496630799738971528408235421681550755761848620600687742614771642753154395688941527550303021765875600036739390454655542611591088759646834922134519246169521038656742253347143390857364239304905268779711319796681112174413315674791832116432774207160092176276138816238511874138913025292128010613569969695323284796508360017414293558857237878942302583576007411276713519666390368643993317608260041701001760215850620556827311718311483018475931325334672495420088579679957339908283739499851174123843490924598582621216495451347306603901329099404133869341241926997017183534123276284664438235728264157607337825978914547752316590056395047082596185231494380170842775783450367051874902777797171567702295886157207752428290297729118980206405345961332828042536458816858099629864153775581569015701101215407387896040522444925097637760079715001686454319517290348258902681116564835298582097022583346780376797082616989532781098538166693485149353582021942670572243482267007560965001475091807867474083055816215640925784933946767715418538720789772645478665713729871419658329517098476327707155047888636155612408586845650346411971573798811342805025777155144963213023076112187583676429013079687159770151757382797929813360999523455579086487563051958345257225016365487793550698856935688740519310623805374760771305601691142518760756567103942341468527587301197939315174640361821964307637590282723419280781076455857983517331498191238775794562263979539875111360566064531341342769297300624297886369434676433096610315695451241225869034628485437860607427012628499508982195502698140493405463561375128494133724243979391170785863837992240857157803161338759840127847180417578100199823500982320920606572519913459420122427609574651704299716558271669746605129819587463979304480229192136730600732359566794101906079065543463498205863415151578893281674282241102011471487609871930221267538764678166163248184316188465301658838055282153445907781309855792010582161455015727298972180396029209740836431540629179914192298661248926666233140824519217399457563531429383912784888015064904774963390163983405776234348181657145445598589108516866420542652240599709244213366405872400368867950360210884727416277254299304806825467541446521573092272302396089437220188015159439028994070612758710786196650317281468169981552927142615097169092452765881509644025782254841060295158160634045428429805428258282645171696244237698467463718439001400054568319115817464604388949567334553577655553529902452845100181219450485017322599998171208970864053184867540175553460820566853432689616177818792889143028781875545623222317603297292167850761246928227420838485382106269710169349409788985108151839583602680195283071894769028967112996647856073354203562902676627725547439637689170971690484468415412820046261025410494628284119716128823728787841063717813168197346900771185473344966021819878607677618386158196980196795302710387009674822737100719354373548181366516445745226130685146445914567559667213185743398449553245643563632665300692994210743046075182851526896676117348503542603711174217521402063803604670169512339755268875145868345181549453821446147818815887236210566816834765474559479392977640341047371523457035422460880409372509588460385990174027604123080464645429322084753068437553749548647449451461678736129241742911728891403288090334809670360034381615805739462728965303474923118815086970021678701093109808632163617196847627939658802014614451432828945193378778120998111458325326139265938542660487655623175124576904777383756333914204050179850405580450068678847715487441143023885546255456128109185733872223626663861201929471204758393806897933784923217498206866102161486872444514917014117004512689401124351462310451685100316928270250239240605815903665918423680811877071844647517875618065017570448319130091891813743017414298770372853567719837892519347427022437447555621640364269105613522923923854613407316379289519902439431982127643597806665580418125662728374471304782467155142107425372525036798128769375201376512165138023424293966958788736326411106841720279604152706828285168006820066102152121218051170418766725441900377890648109430294550031830998743786527287598821877512387700504475669013729682757969147932227691820050966641683020812216597847665437450482252932913127559320923821459912106282593574739523085710375210516613986528993137200962828321196079517056983582951543775353571740930684145430203297035881975055801337453213493278074072088738186385847405509205575188497185860301976718428964083493499139286150789232462212911818194411026788463530965553357262773902877239317516767746415324619058380936646340511063604288902878089235032560127042530544775311986870799368455642254966783568695070831503233769584310695877613438041840033382833654127440119045471937221380673332388759520415077917978498765631461876427607213137629851822861504491920008077708532282685329442666171694220568376065735067966185424570303062586810684760133185368944751124427419565432595834118355855986760230064271403462769893382713335474488978227213863395323669193645346224738772540830160735878749835949405492658135742194039053116487877000781628488720431198388754674417768986606259386515738635754241416331561995574953347874398554176460912738331703487633466801276739339389644591635941540737971263914282522834592171261794558320096944169696458957889237746032634439890219336386877074208087338317483838844770882804996070324468329868237296863840709359024183577924650799888725010578879641030930654971191333940657078883994646481730370635287540440627240490455841841902588747616486656964618491193461005845348479101889224371515572256843873508826850127570964712357070320030897658126386281306524600150752705995159485188876257632755164240743674472260971846611014098997513998517463912014689250059087509204097495633714828497670161057608373265016528301732206610669368005209267627203885175984173435732710210288301903830035641062824259796686406650584270723093591274383093528941407477023096388176283162895619088918908280456240776622985256214740691179157494064936672984640793441057569023957907097994674936164245354108010472314716396846281173612381120075518779885652723616511162656765209701334718352526695548269107333718159285131131804983301557582791918908560104081100230723304166075052629787372445175659796392244022595660025145357014668008260097572871850528337189478842561435076301732297565577157680181569489431216558561144003128943101414660471580797676388565827353230507112836666126333958616718511498282102896552242527709096074237449015399132699624052964992880516501399176996622822392061247093198157145000560770001534685136109601630327741534127150264846568242388717103035471728337979513069330709742748234894978261787367965633642412240086180848514936164290809323581268438495738859124956176446145475283755061092188498864174495362764242110240351884804842482481895773606233817202822702982083433056262759616148712555817097733471574912621682662833613145010691836882659876975752421521767270162506184932300994677088394023280550431360678359490278339332378333851822660975396533027044624535510852464454822068417093690534887186047557493903810720312896200960822141802656203097660336557953383262770788878910572096434171671035404512290887599759477750802391733819871598472202878311340212899285234197945343040738317308956708815903263898044852147537229896769020162288929982800930180279066006683756947322480552845452532853489680914413998828470672048407206156310795413299292825211311006960554730825926652488286930615416606538740870771037971187285253387629864826556250134475499097266844766517997348335447459770187563834074845443647264510720651273288987139070350856673294739288512758735717601413993124380834047941771326451459554746231190479287250316587857466424920722541432625775348510026728319198416588816398418307773005573637570101634682446856299162751178451377166022233830028861655447560605772613043861964212932861275472731197952744519916028482511225659557562737648069444436310770951995092796272199300124168079728198613042209411247680793315074685994852295939443916091152884641750774883419841523511377266275509582673054719450345269346474655376704946560514878363302478653085768051040817481588168139016256235237952732658277921844888668881317490790540095357918351396737676915965267935161571653255738248865988345498792304016360358835602920931020953968527204519474989540698837227927051528445551049884059334945202138774470707574937457940691337538480748970184418927190441380078449521924005537789935457011000036864370339106922701441291128897421734985883631218611424166733259597216315571204269157447892412488135588551860123416422751168076208096413628860018356505319245020854948463936978584411563150065120235904771508879746140404522338076407465513422219863739577599442292770695016581681180331837195090307923048604101349778451836689949153134395087238087381120527708097236267201295785139176577448835925285160322630344120537273045708002852499542994750943128221224701400665086385242700875608693356372228735433625407504207053194187379454639194949973858647022813724881525123046683365533687870545685708581049898887758052940906266842896722986160246835904636526217544614706201210427833034369856744896235283022031207718651723794296759933023906028846125002398817229801221950836110250427056298469259417624819918590274923135064318951808321998971798335500281668568527884495698858531151939527711262661806471651431665974041955719600557446784689204738615596076171424848924627411692684459383717355134102656842800028809780333274172771506686381444401853850114568319846796637061374352408131437730434863508664497632945366696786338689240016327116828765796085266329772067837129393490768703488937798493192003811378183555315462069706652580238224151101600429461589487736664003594223642686621444996844396242452734657838095628113858275563216018463178647053832048098678281742729019017231165072638630564247150761213887201349627590314636766509598933185916857411325224727061292279315963547793086730104763197660726681482530890256951146801323359107109616770626848384396567531052950588258922101779831723350723193322783293112408326521126403908912206387325023776505377476687543563899847025899103186197708183430473959620065978992846368660488275469889688953893447425121913826391232182888814750834943608697118405987642369196702966348223711633252415519315080653043304642717473977305925754571260596476344669373220646630286377233574633086274346484265694239261540945089101388178430047784923282124560644990703447163374587173043937629830754112682616146493207276761655819257982529527222294960500165763842068408419422615616951398387009550619632902943372791707554345870562916944933319102573144340264377389811687783005363458466247839488027029992645807548906082949336788198424597486050671386790090278643676612169473717903413018175186653249208267743762042995649252902818340266952076898566862250759235227616369506144110855543168004241074125184377531859776188992550895779720232679148265144783340085128249408814330435186023555326153109104636127090014922850327136241063724108711855341188257340274829836578521217830393391033839554385127820169064364694536602586702724383120334178223205629102376870435904707677917469827165757330384355712546387841862681000431155181753626006632032547651644028303632430779969323373110655826582097136862235874535745877017453872926389739276808393073446098934864295309432770528493128218543849140834146459549218513230282250938247014197746989575849148754383820360769169494715789814229189345322505917448455483768058682266149982492319193843240641149346154906137886769860219773141443224750206566685588294432912593149756653389730986317710426559608885716645827236950468473596099588703122345223007020560841396530396389606827027575588760052489052043702741350750098857629139702258756218003936912246815239620449737259155790246388099932736378758841865453427166344405192971983558781955705394573211490305508568450369196174874735125383893944606337932285017611861115014004288664223921292726060979624958800511865534067307246366016627764624942216506603755742915211586195649459853869559010745650528585657165731640285435510920878222489644220067792648577631181911774986581873151576087304643719909282776541353492947254669864202261125534021929811640512256191987453500691136709757086253381727152113253845943362124472442458608887679052836614284199336861282746004029667821387028517609062689092196088367219060922463216878881265641230080680405924691650450576306782193411742648806334203540087337476994712218278702024987270428387977610500038055000699033217443529465176889065172243265967066486982116614838454577688385828109497811623447445166029629340665318945173334213118345512488379584931239252955835250979412822629869567887243706012218746302741543678230833054664584423095963586238957037037049133531235540376946878458843214781798608677225731432133455446987963003982269567023752382170360336300988085951541797949650830550828879289558347488777717655614506343388335173355740495322729524251427721040973772287783453989825060652124607472681396166958870628531670249589976404398714131197165158076105544796842937249935672678345413426707618657863742436591229936067355399809783309577136645774169756172109361919752852262913464960908674836437127676663223715341345255307767580840198066849768361407230719064384528044883279210535910182907280688790859676461749074364325476721735759243653024318405266450568855686795647601307886357588369199265839599890016863419196217646807774489233636894650586263939333561352687738632747181589307876342917499134843411476060760199102069004186452389481618488286731857760592304965813893980430790342884925332212418288847717575123412395076721012517488507661415113097478881801935434442681847044623920214994232184643824169253655433808908527878707502315524068494334528777031940970264941521702481366999644872167873336044065336905434924732657878032337504991232265177009890463090404606886811143772404926354321612095919756157092318898204873642132820348385191673196151962670572624557161512217991323202027455621897958484989140665400858408181545809337360832160956092186581927267676799948862701897294741313425357655542481701323287056056225303129655371501257065922120736094697607983516421389801226824639367262110645209468700167061315026102910031190194145743082845856773288815509698604284257116717891198915509198643618740451073649093577414611234824283494366672561069801753449703663045360078095255987545869307473124200734087499926982937136680481261299451067478363401240002093530982836968256381412574376636024318536980363955942580000510154399604805204395329669847323109641690657060960023288935405692581016990540458666427931384257644290379892044675396940645562850180668911518738591631888735623486304620536453518848491866925701588167422519298568702832470819016931571647685477049237738708290809415430892063843840359014681214065858837910998081891360310339522997602159124511619581741762321429466335226594722605297033133282528429594658299845108528870105047510944907898775434475437956424455731374554708324200851685025901294455983668673435397888197957102978491706470192198302115075341389976735257900305305777621292313597713172278407237676865988597949804028723577326211087234519601119719479944695979918441872621358953385632760523290492923510977046237724178931821343951730263265219890407288867867364430489794642591816341947745234377796455939715753935998242245688389975072265495094278643469219773116492649824685572015861693337835953168777889563784883803798653872436635877268042637291091996962025823715707321735884696427794097127306894977811114107895205868522573496425425517076444765587411163097972454400289986200903914058485765942514879069115066663494803822886609552458844468364999812970160565533754566571363558250346503778784198098589833214421725532035558297712380459141937207067837911778734777010218424116493793722240973236825613630326278940308042974276277716209148616253837249429220710200152313256176428782764193122506870731958595047772075416312563846293931549210580167420443253350158641812296840703128512052576549542685174489967320756829903120585490375816076434160028858476370181520326317488128883034231348698896286810344808269429696603086441751481237633931870404106603883421429232248818607210056115806358502188242593689660164675839166918855522402659529511827084945497227127649811327211131616182965368959816057336222868013740982707292502888106474245388401130583999087986333607742598889025275332628441255880189888755781946874035621825541327634422566433870137727763183169709260319204273009999171308009164819944984637951335202168862303710165771505079889867686544039677636524991174650759121778270669623012079512528187976300395581568002158835012597902550274198887013901729476495460707388815402726692871000442271734702330628604247450226852810999747909018774608492938890995758821764465105519516826794413768872073494972842011929517499702212598226784364849347959077795145450388789881200978673090428646032144200055638697403015239274906971535908866049058066072160679023379889628099603841118981744875937097578559472548469599050893992779888794841408052820912515850229881028343204930849488872320112688298235929346594499290820896752345002970233909435191324683376884664085952583645721211179775212414965226578530348114565581644950804610268977038204336523607803952151179864839763963009763809381066699825399766247260289404183431159393710686351578626089356379002620352103632721597435159224592686761323228895099313156877737473614362097158030255500938986041152176732660623424156161519488061409589705778045230094798588803102636888789052933840443877527261249080662755193426021249869603099571779142337799178400005510084049816103116383492040795572991342351960772608024820290622418093174685098577638130591049016042906789720093529187520116332120468391897029845083266453303190209701085303242725424051238946534720919674343157877336088750662218131985966396529804884396769084787557450755554324184291806030866707443186156721593342708287565268021334148466022136189370288367087353340769331723816218135404259043307333654966899217110257573716862294510009712506573444133181855651646439798751958158022032029920230310517059789055745307631042715506391495442295568496440938526479770480171811971108670015285414768233922205437369860232891948496187736257883548866476424677960801355351150708445926422536293864942025544426870011783037952467926961107874945679878341140439351315281884568463036805065570206019935226097767091221931673209927167981828224610594851896686398071096511500561293771041516742381992621013729120237923155274764090818302120680521273682498163833180773932532545193426167018716152230223614732041406598699382823959886216341024081376323790535390434323017563355375017643609820765824833824748727046656705331347851684327794317900042937036140665971157245198742725512893093455961747371441176709060769930394124609300574790266795401857723700627921596860763486224588011297121439524927751226333939837949856321417086540953905261363427401649561370983224506791673224433951442430335677403096315042036537318170912001814033275868977423315778116873322331718316922259233056730779460549084919522502450994603875169273783594176477349256718519520778018927239434737799487669885447645414132087592980884615189737769068191154916967191723864980217516950571087431334997645268438877325748793261548211646714044536857855269458572923875157604766241497598876441897980592955493366061984648401758264147316760378047026146146407715855630071607863964866279791508774467893298738362396509011073095548362150089535941856122565656881411227420356400622695676138680932606138448827803069379880069282658596769586944774002209141678187880268582024511594688372017100346003764400820224373130554972496474405424666733527173761945168133410395659198540764466255671909055794254972759838368107044041043692715317054949919570174267350191757808795739025336438687900380685664117774274906067713980572386040047380651190680218509331692760704835724306728894527077496862879754207760877040470417047378037134225802465768569315098307872617072095780356225100763358995138998664071885909949338404232437554667350125327282082624933206227532063030380070929772555420575337977761868198524437577470838001236881201431795858737408457679521970094242387434098062402978680673350747092918441605112394957361745183571492514496060147952957042156519076003644461776479685841626074098925842413279728145297866058576353997396774467785462504396445819185817595437136146052435273006910120585640691008875468243967976827946460629927691540437341667803880995330458114937355020500618104645525643760942178297104871814965982580878050148741436393517261491767499961012863711989614254654848569806002200456181681815446880476728166000446680314691766832647412130720851749304881195660299197108677097348966930227473463330081121213147410277477619293651771068858188125530786357801229064023943146048640234286886131564462874006935385407343193790242068809656549087533432367005971997141022570663043660252194633464789974491759858158635684977223216379933252070828356802053030784445847303777359599586686515116128741708491840309669538443075452475170110841247893691739606663786890510951545364087022532783228376984648052339631191797311829762778296092310879860112770799900827314106778332971583036395573029000716119589059544329487548696845377654545767643502217130284213774168452017022166467636594099704994618692423948641865293611103667634865632639282978718523801612546609957962025556082902163665739651329382211591772456695703744229330288463446861760708289578911598101481995887128850597981220176707071573197413257813495355120755119712451632410329848925219586791320968705620023885450560750098021723832192173428083957044329546034104171221126464722034567063458460165448963441318717716853634916509057430549942260058874808463265256813344834037576274145903671379095064157836931100820479215021458574016740120148196121855021442470762065939389345654804151136446083348921586887698622438263350251068429460935878248145188995324294077746056024174160864377363646989417500305859135274146699831175801929330422088479839896580108417112734511057490052873540104138853561207202389265568844893964182472193696933966559825916845212162650619384273703719868258842188662505186006840126050055460571397748858763913940290147777068016060284196356054278318041437791236650820761363923704778222622237288938766244438720858735405979961618935584579451723177778435196382821450892406791437639811716676983862630947517329393196659449753767202277750933932701248193200284215494126208955723573315727355302433279376509319865382465469915183756565462595427971831563518175222759872243555989374231312470992960867724522576012938859731976218733864877055782740310843273791650656012540586336763953140388764454924860848575447183188238341476498665974464582204041495304044259901901460890174370049338560919610453884497377213746981970102724440441170614359300117352234279271187984045722340310876542629886068192436506054681500936006576876362584673206212960868370020665129549181121372986722531671834346964593507085264327164920321495008652606304464131434979046341833177998331095355695357180279074048338853301431249394484731940924846625285723892133360691378920397388647092610812075973556151584946008491070854479120823085720939186255044956660847928017636657494179876838524629912144387168887925457670016844804306113888342306783901871920377210077219289925555781946564946653173788481421827934117448266702234783891185858106246284125687516229964946991544756201881755570443915203679067541759382039911688930317887042914128637022047626422234936089071624525467967768118578529638755797363153663475163223409110198382950601437079552153048367409349080686229713313076170487787370845557340635798589324506350678889876503908991933113912299829965215009523254934834663738189109804076759124784674629129539057827582949578861126523159059825356100250427606527660308952037538457109397433114762507731986153765369964495072277170975533518893504535037135031974723128185637421309371592005745212053795312524514307532578098307686066819221820198752119230629248854307771550922814211418611245630387417048476989201674341118515625049185989361725315641475732301073755772246689637743983446472003445605781740168255462614170587220415380922025347341304469889301649600823331017596985752094132097450489559701424942560041875054472958970584699172842139253090385442377723995525881552664261968587052843159127820853106812143636535370280442113161943460454191138544473178905847822992503320743666076981379286258612614588163106297980094570595373693319781229260265220144496034932893994881878660291671818617726749050410258316423657177869237828781424060576778286591774388452825318442667767055444286179922029467314065445130832035689217382052385821790182393327865653758128142153610702408545574077752538133827084618140579479618898023098432130255089722771333110036811427270967769289119900231043165668607490700238608976552555165359001617982156030702597995488553296457991793751513097962793924774662695483941396708991076429006930473803353576598187016629038595213872512560059742820261904634735175093852249294130124048352065734005133344049706081041254744446306730633376143054377970189382113229053016615289285620350832636731921067124181456167862618176313273751441596801824253316405272348829462592653727683884557814474022599281451817483597129095462848949069408306466319925473371130575074989928599547749864576996128280338616119515997473713132783198183881853483583306604656755454203724971610134451208039380477426130218125723116902390004397277125098291521913715725071972400899806349910599623734052978115487953120261776595290451169528673509971160284589118423628065129048346840879448746482541789683784991907189080154534525313527512938770939699367750424912677553241161060110899923854212498859871013257766456315976633376932543005242060629867691271866998042199063925419195095212093536310477245763864368442572211512404983181512290258979046635004374494252538649196248861812035348506311833117330776973142933541047570459504235537681223035598720425927289526086574914117592148243418251194190076541141265096770987376993857860054450649075715625472978832310247271300120206171346715308096647525542378522383698068205589671719373936869741444549304654678698221112012226265708210329415334167202747849866507837733525296127604696196160474331694716081407476857221029251372564777102783139769262050555431756892728537119418610142907393991259028377551867810806506286159974147085171938590907632303653962412998205457040063359855986193944183910860781503712710897608294003745091371884036423788074000372512529919513839450132911554854431076662525208020002943191223707261899518101187880586026756028696107962723697163519710548216800894633906218058319235799142799899950383610807195114205746281089424625640692721809650394658414074788712135068927785990203000355970332192628717473274921234025135776401401015820416230526024787199250759469703826241447261329177482522455829229245898117295400726140629483204234208224883983113726665340658795532442011275430373453510368400544436487959719516909255460749289221465010442878042742267419275162505379644933798183426154380893900582975336213753172083637758525717148473797202716455055298855836885583374362216153104496178412243296627410974077453963688586901686763834991422535400297295500643957749913936427273458741553361628931978331722515212456508528274736973881738485715121699541832301138095555166120911237354878150122757222766280987801446322409790853585352319430636288181280976963932225735920073574242206379227129566611365516928536265370600288801054396396725320507179315462988999830181931782774774489547178825977819536180940061850153204621061871483492885466118694560029890629566966274563750447760687476152731421108938267756669433552674529077349479985352417514089196623841702245900864310675405483253717857597231583357379222240447390540969465866540992226119424704603538160458503345840705943127691710341801095914878686079436835126792716828206979990941177477287616295519203862022696837774964669961887824615409725908131280046652232562172628806504015663599167394956306447558291682962665529803854970408539596893818716614096365244741131107329683976181381641423527810681032846506714726257768824707895621308023130357708958699848271537891383467087471943749617860669520748760572887461342348455861375411880768760039946761165710457912755977627123217626434581452428271719528045605375099347662100341463265814931222793045551159076612323539278414909972896375391171917158544734039757500020492871884100600492379254255079817525599217811825004542673538777783953281618251743673758699432813202907361391875620243786629786310509759764592537370636434066793659624009481972850931006301713684699268181924937181862661507183985097451190570826836806885882968965963019435522126826025241698733859343681692077921761631626647817853234796945144909334584611193766201825467918739857699325947684599047249730227428701138464299656792719872804980533126066166732647264058253904383610905801155148191752896030639168024728065476662224702633251536675025082072311116913317912246544013868332620773818513398171245980684343296399000576775211248893839827938527087546047414420078314366608349833934742733950258870113964344620957250971709077736462775829889428395622424307703506959888061021136990900125572565766220231062507202093941911197486165130674118719293059760777368959335004611245561866872258862924902124772184480248688044921638563835677047643758223452018461243070052333698585725427820548455490283144135624323998381119186372342614855021872884050204171601456140507944959745132284659054035467504394289972967849740640918599615583881723570814859407006362434568118814382881342592435174028411892443961661816180871741940466265136205630769151261270296385540820545767996715911811007414415589633466077756604640792876333944145418182557503388787214510931510925450752217470364178022797486862880991523889003598098931619764926715511494143691798023162818861787386916874924687933386073287326114254930223793476409158299030833765183478024881132420585544420024748843990664542283307644664881289034433581757226503362926244379437375570274226485827843081994995630324733493865571872725871657385502739298623365938131262243183296702963327819429445037139053320035626257287006250520014993790971319504649914919795245953991092271074254292925164782054385214357350359978682365200526876498187083174720503149794191247692785010864754541860942964343216396494199907933112876420028895398870608104576277594676756806265097839896961815252517224177382465845020460396976248944725175984403224178560215913005633341091783099053811163282450606737593069434580496513122385952754671519063257076694461761757368102088955506986165589174066340271099231925919059687145457455180592425649971934380289474614635380385755799121416599535278763328758115958174629035570170794176553192846548538777920301166894159729244664178583645545353747654972437775185329211911016028003984771432022660027483125674808960399172606535199005450620575401119077874074705967566112650907759306557157504616053401568869086498333318251683818041677637214199087499180518129733856052534481924236394973436195798544518535779553326490331464657197700076725215657720094092741110932369114479004769838526196646738637100443053083726502606247118713634166096919648967180466843700706353980697585499499774375653658154232234236046604618444286458151022547629521479224149184181386380715321584611944865610567745067426970888741416676744222142682086600731576668474355557296671054549409980087119159909894294051180733822447950304226543176979889226709466398371338347700418460959711425386812030055133824058838115825431392456168661435578317699595832856151403596988622434849285505641554123634057817803177168955320854392016723700363561844553062440944529542671924118263745916655777757226394740029312036864125634717443165766399487471201266959507669417062942476794626493273840244270193235229061704678016534587642100298919710004734392578999172484624273964874622994842938199138297575191351375913469851217848066832702217519101528260660242461461678342197458616180264620230605281881489369932213174225689139969576236391769313996887069232408421929649290550381856576078226418953486561734402038006238888887267586861859458220852200808465245942553409868284114675406707042988741753639727025433584134396792440467435201793743680975424854785944978990369122122449520128019898605596775761441028847407155700985483964404365532217425658246435540779847123051273794577117165673530185864639718590642486095166675929069687034463567240283594969997588520870086684681223087126782189752783318303251636973184717964123130356693204114684570338630681435863579712962123676805822974336370477232594634076318562289862730821195938405686969572050955625178862855141124519740714261750450095252042893051850543211708990480686393145446134162283600701829991857595563565141746205009114599275869217869163892065002038487838514311910224663193452141058426101219881192686986912057413517456462489602106359733258608039742562798347770856645339986619091520973361271299360403485440081169439810090977081527760959952041142034519503974305097060876434937420348587642375454955150128140868188961103501795486019144619727868375766776854663376174959873616542992069074681651734527424230454529180545491312279079207952698867792510034861705218780206841015507125372860413112768820858320756306236345277043142984368859930148810881738158613066115205915403153425758923868164918166976211698468356173584417659765105031475766974169029260268595852181970651389275981327954410530785706240949205119638727194937662238360579438160670227537026613286365403730338983260635902620530750702651957847566723029921384460947430791742095131461791391154467168309416757586364304916002743963946101666488804843291232457060304665580459662850127613981904863153768702110585211100372480283907098954669403414110673262681171387306865904814747201615662272529842055536030116844920583708786302406958775841372308387216583307979378675571393509024057605617093213450359022708799316790718463481516189537276375631838717098389081453291618566852276355678593270968725829387444185558512817908693488313002379749565051471407483157665291274703279746142708217399292878952449290141232381115790540666164151437588947842723699645078744392490519302958708772835240781472308721421772969582273471611118195297478223840396425213899926765284509311605087654180416512121964149361692513522392928560320019676503883873657116537837074145668526422151896577089532627048605427259451763609141668367745175122217848415457487819964763358971823801675017163313464044282911273785682593014874554038425895211307929545827811663364366008403027432782306676923495085830065079718701447367959099658463267066740082102207956259609577959105982986897261165510972604284185656826881362336695176103313090434851316661769073107768986700679796432703603296197085944870632276201435049800223137261327396494841669920194154780822784257842730711143242451971870076885829205220506566710588288240093003510029586518234390552110522015456390393886520250442600357693706949505863398950998896972490845639106899124770631618716633098413872772319966303320285006222515100990559421180716440665088030874437730155276852666247460548786074901061911286931782772113187411506598947167578168926440316603355444514485545628233444987476022984062928575484638024962043533190698517160651235435311376718388410050961790580455658323483586191443814719687453325994815726817087592616787486176852613515039597966505325131719584115144206523984950968971966529319343619041045635825233442960835467810799871249328936595272055889248803412017115979818778918507679794565298303433022883175508788675443976244121949376905543263740657005169942232096018288154905353062962328271317178172072213657427468885507946823591998126155767590556984186253998264219013427116634260270847154946696934580639222502965953971840004890497195683906677273609211142632247852957220518805938939481343351071737812336015085109253021071451182480941471476293753063562284049319991457197614396024851660814099860758004428996026838981125593540213530381516623441050190692625096658054831045582435568700370860948513268317677718705915812882162792463088451644772073178614545279010633325687223415303983163816244050677245762335592241281377392700890230676253895760232719197169633359867840055465314467457252651646641931976658526800778611519992713458385941114210924876936680784172129733211881837540667657250058969458869050531491134860094357932238460132316338813591269652051344238276772756033103530792111673332232988020314268457497276514868468167633443699981072191151930969252627969408544857313820108594259995344748429035170562869634822088552834013704242646762592420560320178285247394303439408934652134188597016964847347065266893284601694935481819029800961995912677372323032798395192841687785413128178338447802774546010944982821346734675359793594128827802481845866582058609861957576756878887453266886048192169530211419892566878105505932899844193769288486430734778996279440816684602143235126466939803202806053734565039745704017937105353168032350218055703601462359090720549642436822089562464880495575704046945548621101154151656999319438818906949419111286808512224264641836975821660070495689242984979406797375233130533257477065887638593746238937029809232080747365804075622311765344832748715871885679616791329638645314905001241320535681139020850327487052385260837219997149898628747496150746915132455918696286343021384024492383475252290253810408582002493342929305287244702951810693450222896226746634370155019988652806431066058582151050075521670370412141613102394587995491664856188882859576052788193486134777149076953735601838873268137644963711500573004154275513189149968983117884416673894141980047512243659782352503394072336637322954938532500420830789683366055567731251771322740918386426086168388539593480305862298418576811937468174579250747589338470409780245687334938348057509640383382045637552167523275303501415024685323077764318785715205728055324564385499882626450129413769850780823210087115023541633081232980192640741256211328318399687882814242290246278332258621380024630040568148246874523539868730622287522164015422946715426053657539210738990698097847758140538891600957746413001149363912996538574473382592595877449700546472674531927761544254234412785302498683383736681885430559980811933620674812909930016996361179738037794859999501989648687297327318745791887132432710695498547094712726011708488117572985022197273370874999668249186109256285717987907777383138118288641580343955020873329762505581038921204233509812600233665448874283696292898712186304593655376183054468265681453269595341594855427964268879253701635123832908762684269186394580663817081646722125184369036515113920313353986475174437491003343528552284775792993783356415643168486461072311413800212393915500663633901644128842476465926774171071987198324600683063199273303452573624095161602512940336184100550453552966316013924087441103583931729460619537579237681087494829270564454986482133310240965467354983582076977033852570837152867618801738321668971453217100428242122409842426087677424678182543121188209426433557875934580118950086613283617905212206793679002923387376930646142592846251594755167388250377542316726110874774899717744105890092190022917502491151758452073019476154955809364901512879632864292048909854539699083605188527075422719199066013237279328990768095663453279278192026460697270875221641638353100892566570759536884750981327232426609551670658904931093954245173960328737773018505159781452977059922528120095514313806933998346955903336924832059165874345897211295976770564328865101812599439507373175625304728578520300166497950426936806109540561460007048523504472789222953508325539701870576013618765245572159072757668496693328501846853065957486818850602939929817246507340581375111511440069076337736545405206634121363478712430245080963565929794524981991886421316513841589754227366885445907280634740587475496579649996601498384593929095128443184057168093947567866591264379454698214614087071629640052424563932608382131598845544349733927570817044113371631879556277698770056012932146009887473999332195898074695544008051098781262891193935768174797847881970579537441000651547154683332549375860141351106722076187906916324588520368640166611862051837516763624982063795162386725376731498907409698445854320830070042213959912131666299253625843482268104753775612699848509323690430590675133986978736338200451439213680845583465208381421235744485603265162187280626921700444798145995708576123710561959059078855726578631729790661306525587452855572646327458172305389027420819547100491056037804461372293005797690152870647783470153726989775431596826866212341724270163474876998785764087189573847050558266846707985514653073384402339737519750484495337393382916059467889688591130793484267978223086232889709348667777536456570592917720071964742168673475174147803240402765899483514455776435187449997701536914975646094973349176197295700900539852869802564739004910782706924028606015714347302110671333101766057987467172361602033958955331085811300261414133479645521766078187158944136881504556180139217410407703579745135483023934013051608464504083485821663578590721724091560750203421623383851388161878223155515944602342920130640141586863500650132362905581458268724456393929172334877281402116683025172976647803621892331095893349447270839800566325981449213936625404924269841728483809731243264437183593554286608796867861243428500878658851234410358812269207076966148019983255041897367582878583608741810566081293064562097173529821505452774400878341676180442148953064680963390310023964555372990549739205108533104165224638439779726688681464879103731422631659875330972020572258390111548837837494398904782742503436962692742617719887906983431270150645156949434638928324163149929481568959866641544580088515924715276350293749070872240891200787029010120933165249469644322666371804415009007839412214738956775853464137430388667851014461176512353903022448980577333132279540588603938915949035136489976527739864643601804612750406661985192656445619233386426093504168824317583890634837444258698626208500462635875492167479275098972115358896953609870266493400037479855249160966604829086745109704381568642440680805579102918286145429631999930167919165105083634017728605525918791271835724538977196502827849988695232321743357521808751880917505852451866063383374104599938112050878667144921457354707625843430769872411128719896021515696375393321924468184632176065420502122456796067876758372489414609849842226669346149367893092939839093464295536591973748430310010856784603310174364411864338088924987471334185738619913239912142264862854179068776270749201399393476168046286422542269525690763340880090615039074852154391099326773062714243432288449578199746376543974029022317332616114853382139766476752600885752749564550097695932300867100577968741014549196055439735235076668371164895292093895912120362796725723470397463491162338638936188372761803462909791828113688138854523552995664617135521120948247764368148511967628938629643342407790379734174665762725991984688333119772913155085109927081093842852708924345042881023292379394668150912385217380648101610450349823857952789145552327914595344203413140879667375268191776978221583013411824248915429401217378608383735973259814230842171834279670019303685219481454610364762789930300732782897888131560411289485791907299256491075918298932137034806757134391416520922862453851027542673492398964167643366106571039369067164243402317567116795478869309215874566177548526688191062720512903300495115222774866770596415858746088686942866731982690912897102140893430977110911365090599047180276490051126597068279707230721592172217130001639489787472328762573123043466616636760368470667915324472510341244669203175341720166966983519898058888428430259776054264440682010700079940714014718408508326045704731874318871640702667200801802342868527108565288151481990896650687027469642187720228114939525721973561626027279903522947788716505197865930786818211134774815347796157641602953718462610814349237473095057850251577523951285670272284647622337490701328182434539891071621470696450927243219788921309184543502264971578100071844496757890721563623327326357091070986146370130274642363042578022470700086275578530770800420612622139366909092756306959761396120727424360824012408546560334365666032795843855383008505740263567989530546340501634292043027250945235123263844475964113859418483997180194959722533685045436650291438823948700576195597800483816584183277348517045081794090847526158265878726188985558298052836002864938506859066258501061218503992143687238758554705142752771636040212506077574463314981021803075878768144711120164540912897321795723375305795351019719900219480019011325773470389831970521018622189488821911144020004223567833104291148658331421812577875957357173873938630855827703941106598685933076413217982066423462721184322927558929081276152557597455576494761795810283405380551041132709551715309436568869880489669228979750330566187364201640896749567344034196690387707985551780536532860448877138649849087274583635254562789720273992894704755156740986126246095859974960105478554058044909210285942198624839874342204767905400854149756615852521483670632648814106995042477648631348951991913319040444305234125489975201833611094167578248194391487124282174372772260383602814305043983957880626918740220074561253466000788518673965442369375086387733656815183318001214164587270915482240318856988141922937748093480177227780331083538128804183155683038970190468912558848460208988358376213682436194644272221946210812533926630566815342857101940274152668445662091166767330517293823174052578823348451800883798452234833342950621758450737160643121883727173465016531176642460554258010695213471520784291372215340497201327567985220713586004011860380249921625347412609382123376246477510279893625206814964289770580857125698966189373796164671004122699612496090230077554155518439004477892545497971736150224632214115468956014173064493059229323636759939731559289143854728037704756526538618727476701148385084180912985635516631223774356753924147602616765213708968790651298394820690783279500867782000132602310985304922353830607012654485745982595172636208896070415651659181933134947756001171310124485801291695596430653445607680362693272763236260763328574355278880990546698896381403303685671289278247289267083413956696810511573906112262803125870117102995280917075575019537352165084046765915775200248040855618128349500397758882634925428597401574622298451665266225933573247410944043481714797558269205189100210312095140710244928399825842026418421371943237438359479276155302455694147417450066412017438329132640480921403825516483389470062084620401562434045272557975928028055581304784395181246406517211194609517905988851707824320734850609792253345231204580711442459734285156546636917933540667247285062398640838152389493575772316249028103099577577759543094926671236144438655585475481703301841393108384035734007794073139608643886178882284346105508903965497613037111752357436629617229012174168333068605348670760718121640796442396688583238417617817100592511991808566329281081421381269249339046303174612894604536824455075957800762769568826005278828456274138018996454517162214875316041882864208205860926377676248514038158648068346724850928959225230242616759170872134831370876518129391255059971222378807358882338389630164590166693681720215442076328459706678612705663865675041485990383193858540316167394407868970823553835331467146258231978017061505145068972000562739325950819012384262131577932496978018851361357503866046472904451302930424153715536141560394228502468984102957179086132973617717113989368844104342035168277964044741259314118826688340337860437234866165241916664265411378126161607176187986977851947080010725854102556260129223516376714440409921568266456598913612111275365358588441105061488961392367557184207339370359223576617948060396594209870325153062927062424894219206754015797940154073801735371131669214157024674005489864557775924582656948143533957433945170776180751190664699770425810417778654146587776375900934368168444555599410563035185210739279204252764886856898310178683036863982488852678371631034591998830015026536868757043323078220591112659148202599158251521400349511699328701814273917686775452669175467324594304336445506499678617999333682540038744062244632138744995854644570640387540122442700467067353965971768089718996440912362260805537756506312618323201574635683882769426827325988147352952014425427304278182423872878443561713834486104584478578532287049013472934806616972659287684927945018089713424514357165089026591062414029091909262546904429712401622465341910646480498668300295880250024748832060969945528886292133739454989196546401553039859467234255510209746246595933241117021991618436297251685471963161432370519993822670874560517016459948595583474283339303757259156909723783108029579986838995643900283736653741619252293801888434189410602581690605000284294937031816116731680179500836914639310654733046987724696230370184052477610947078410512109510364665327038515216928239362060042183662530821787318335754435815907354325998605565683752065946086576283729308050072851566190778909619540260082770890363214592834618786457364423702452870597436288479583471270191470326281705725990882799360135027240666896607381068864189310739743207172522021629161085535965221006801653242422627180853813467993931820706332708844682634873580503033532559043685104117361974588522806863857796783168270938921052681327070418027022941776053435561305946957182748770775404811055699948499598759356005355135872321071785044009520033110424701485626729815550584738205137888676122952170814055647511811674448460552700464465567779066630381181693033843341364202211635884306645227346138653301587174131535500940961628266629302346008304790619240574946968707486701192702359154441175364754152761334110181213507020163866830848719668341526156034880641314670215683583995568354625207040196946630266144087145784704522978550190288798659325380012190061018395747478203418912384140602952902976296320457058271905921997593457298489176121876618532975926255377872479930556730982546308405518332436262433949865245887475356992731736869327627139688252210929318490087166716643914121526511325404203911956820986822621861035834174878633993309487117858769246609831525449664579547622802671176009667305143181786609320897389567551637291266718794845351809797072820192043507291975526941030133440953384651250732026547722152793180193605673140913747510584158055892621599021827991784711249152042396010417493188060697520622106623201791120388034383421920853553933201874248591556581374851819680751321545465430308083258160410549905642243812746575428008454017288736533988724800714455484387957471768249288821899530990077805792531156376556372062454281280477133669022966345118102326601110697562220027878837989455115886724140353551741992381711935487104538190481023571617516510156932878801764899288783585516600175092870959941974827978085681543026108991127196703467816979421459012926672604516035829766916227030106472831873520442548480817979423586795324204989363810731327164407037511183536403339626507870110696045238515736399662802990020488302763884514061044392911407656352858380519920136736650902397802704419991036296499544788958713236553993614099653032409963916339178159480817832031849845505061233882325788367175262774600401523220194717167374969911884751690594181214450357303621619439951305148359065716427824207898248014165404936724608276867318455293136454296400796350243864164308743419309219426251577084368277921353250494860239582866612168755121558346233483886535122397763657749049028793647127613501039582986487816371624006425374564571421799945322274767919236005125324981935422737914754779196561656582437672476426717795211355370729214944097520141854672782153319167075429751853908192889360063925128926473435661651346093078659398429036495260685826436771790690573366058447650513006948207533457375644302536790928878734117016350350185004006545583118269679937768208454920589994018391696844410635354227010539081127813704185570878230775329157736516417534936475495316972030163236671459979049220416010995568761505561060262350794679205844020910903492066555788867591843969626880449571860120782782635011456117330135402375041841338119915865494663016828343114551026347013112646693758664459377322505955059088985606022229757227681046583110496794033243999397942819260737813183032527769718912030096141965418368970102967284557296577057977931825069358584810986811482748417732175355187345787814027466313798729910624312551214427760486600771034418923713656347447155405571883746662275008277135859522474798447137650375486883723124416095651970530661008571895789158866559048611222378912355757435811278179381791485829154359622849701267111574642865624187164420607296080161720274024928470024825748317368833223543144553722701335714565969247574910659781079013261941632944870014286842680906467337628570257685005987530902032428127745886955312017537175608404951708227165955069717443793906844590127501369997077538507168204801876502713011494813379746283175995818184264738091204923850990541374253967392061832752862634849190329667764919916375372677490657876628125236464486738548034011857247671919907876197014570875979458244703379586232218741523962822200954685425884758488511747104154949023998165006051066287102969405366081039913452921082809495369292326866730265609799352777863150298564265589402198422927324092019167503092200659638407841024360179557489285922612761489405894019309947628457274353907615422355460059607428848559160630187714115204045611197007280773264573461034538078916367209288371875324959564571651992122349383539355771018927009146403773293465725013334327395667865692714062624686986660919754123253016093171294781746753461430709244207382641608565476464063443763120345416728338118375001149101167498427697378620384882706979585264509745108511556461010582840975175511164234789072051579002250681616086747023083039457794067418463205188744255224064222828935264532554381728799258745345672731321653007188211014591572558770469581996280912787985301128953423178874893924693637049330311163303106723483546304974984676180538861165730455073697965170315622430094464066663507426049127474939107552041975233126716508254373770203624615849131810844722543739978854833250408775924216464230686809773977746837948716651355072273499462475687669815643456968129178101314514815035990843145051330331224915606509273366865565066748798816061797088139132161911782322802510693756703296394124141617619754082412574628622631030137882747404243745193705096726499575786142368172917215050899229562451251125290661129428481982443695643263016872675300490833847114088398731057633772733764425544614615456285655461762615055661649012858154744019259862353762907577231788148546882288484008027670448140302732503428466979222959951456438157711474717143008472621293295350399807180278310745276461527231731081292299255880633412909692178813200514917810981600498313758000645500122965460393514080262235869296045336853167082879275720089755040458513246655500730295251428217367199758722230275854297638479410261954574684988304174664516420152726819760667386881320404582671543753837174612056043187810389118377174235071452723284999083289858757889715802499485943078975098175776518369971175661520707120190671476595707712396308596318124864468501223170049497903325780638703988423415010156699039392769042788658478003057297331468868998441168152233764565121717114889472798855221899057612627762008039919977427065206895554322195858815270674238976778260771501431577545218031616229622359941555833529982809222296355896717521949031967935954648162755007876023665782241030237118980016120837177310472793017301343364229474329173754680730524252344316787898888757004679386690169717569077280476342483999824481326371874080874992928717776393983859204925094521733888567299325988522067745382917164955049892523116589489389394582962350563142923564249308786539589957219654519806819916399783229317821753909877738917949266917005599836605038261158017540513024293476838523919982557517910419018817899263845940996290949504190356738365052768933797659877058505397280653863931391864350860826222847217399046897007763701701197588293801009143364515630952131994810772889559021465692555855269049762991794895737542483721990656979918416611150075902953858175576071678379421208436678197253842295727183827131605527815120394482045324064959862915955721090130095412548702867205401564844301654242993412953719333797897974664268776174662951831717844688957879718173680710507384973012553550776155169904757124908305027316167523855259296182667040131366518194696371438410494951525922627879007485167371066550501934777658201441071104471418134295260843804575489482396260085617992754673051125036888983165465909995753001602382563918296443678018563658891734291008098004955649903702812205011805319373278242775410941872421313986992231717939775049074864056164656589561053406325657787337505428920279797801458614556444873427249516554258008065064830456918915398036985209382139620717574787495298236658185803174967434988528772025662809934371218947261207638778220606414938683595085644790683768864091626466954932870575560512772659734548923362816671284865272905187746215152438961734634414319692904806973827399698326346481869552777219113037681029499951482058338182042048429720568130876243799304197384471355256584708715819771538062440026266534695983848008006236717901905113268658895536750958668996679195077657544689860712096473652944901102514531215790565032044325954052937967878025035133002793246881250919730579802070974622308719321961497315866221704562468208224090513442257833359146472867952079650668369192747181602697352406577575543550318274298194942065044866894619327968136547806609340458919993131984598855471939690246996485981593725079848456480995234608530416608702536921274135898676443489619101052264637203290964281800393445847513299294759955370238595561451829071598759870257621376101629820018512611308540940121939927577347987179586605416419031021525045508797289333658278813926510002575889373321766248141586881343984152096423624348898328265647352421611303352934504860382963026905509175062975934544237596076585220288647028760584172565569969222992730248703006529868071652204655590352402038992426986666123324616978763113366045170333206917903657446065637996675654645119428402629329714405785574574712375183458128673067485615722207249426732726246590611675462479642601891791967238497272253129659483475349886392559876741707737226299917038694300339297282268914657177768012361993316749334895310441030979194024023373781467702708972158477520787479811254650909426922236613021676106984593587506577513350094335092295233411384069243818975304305009174195952595046516887043410204560663422535458940080678910911572676153036925561692987352421941201302723732810146015848475928073790226558740866284674124802403560413102824537947316226499957600078556394575114843236452393904549603147260026236833085565495853067342012537004108033240667486756563865343378054573893052019638412180368318141458120713494265835700198837747674652158455008292712120238709991712272517915760418922585240259551315783305094256095483066583131544191514278520647988987617819783737664757682289225473039809585485684911723729137721741156529634321808137039823075564520715648076979744515452542402925223596602904070340476517018758055518994604538336201117623177133480511306649286802866030927361229658324343914590381933814183143593577043395501662631631748538348899578672246930155586839256569924513245777981035014508272278678053821976284625277027690957723697179188244287592980754513344742583977876431624278592745394103758513936158339251455427720835887052968511489774705650897845299335119996473395811872602335385802406863002083832651011409839770518814003148138464282385337868300684839142116774342091293738217805774797925396269435450146810807461625390314944512005449601899312933245124547046365886080894868894265527889243697948424938817645471220015057420434152177021646711989068061551879940025478288724478382517466454255923897242312033862452611331610057133609512866612169854014269973962206113740068292296106604290747639467249875547413022618335145525778554699897818146719298045294853180041091521598427061983265656435117032706725622574655283596499156788742156861703366041188468152360865514234994687268790461380259239199909062254207378780889658498831691743709676382632224111675298426737718464366157651167408316098062036006714072039669157546509860243350172175919282333154722821842761133430020945004108900959925584345254817740356321226580359037181490115042280591853154535277834778169005639223606746990001901916635245529218469320081118014556165091689213271004183669572630603326936029156432572369526134995052658973523422950589194816360226709402336732114684488943376859325140684284447063686332020924892512199366378986276169910758605947504803927881835208596173040763686570093351988306785086807894231935083393514741336616876092684310830600493286959236491416673396642951464606830053601465371295618085826442565921444578697393141111451343199158303906917273168437354569074141538790129381680417316512485441910283072595030203222070321354003075191306737199056307488952756627139528646316862619143904320338268654148942890676670817236725951612769272290956609615592340429894421146004101282692608104461930764064744920888266464783375669761998154970098276918900249422647618047185730749394907046697947599384253377718769903920935658425203662796107123253368344959860071368616781780344217597699396698090457740031363667946749321841789702661841336995209660613113025506578397200263121174616980564278714533532991343100974222943737982059773727062583218968720798120984058876356482782522284608393020592940311567658626905632326756566589453499258552716083560450462646656281715028355667319963664224632902788316565477000016005696873275629330715527389520493313150938845283810118341817594596930282670167358431312113601007097926247377382228894349044677659593214252032652889602168351793290853092373096238884728374150760715034353137745829979479453459725875149840683806343570578540664398422966834163254625416056874453608577937553133008281473360647058927444784092415148395145281824185313077597319534030557961946500950442647785127495280808136652586553433679199589563913179739500397239066325234267705438268564279759355243597508376254213394413870191048905878344649292390079214029247729148673037086764648183549944533980129964625978478513675724398882392667606654925067935469595590995542895711493769349068027125522256139213873535644742921591203487319025601385535152883319363461361507865622488189294747809465124064982140965941982660145252611746309236782839774563549280582237897499522546124090389506257401337042079972737488400181629849524000058027567771837873445977921945699907725112354666729144060032092214737452858362411781735118651029730981105394996299136732536417925132459494164110961137747673208055827199886051831116072319135399190989276085162617323128893653127459828520262202331868428186162876514577752785526078415118965447235947739982096316880300064140513446578198513020212582649425422134864842838591261798626575616506818487337355904317132369054659457074358813162870910336130547890296352035626058205836083102706707939027080745765547868925845295461192354976962666269300329488994738397177076619218214094484657564798295786643250425869153091063715328395493345447394834094822991365394539579175963053330730384559728439403931151078958392311415191259665962684561379844573334265630884601265373017246110690628311212076814480328359023085398655569556854241003549702649911801469727652349862987923109395686342527344951043729782813306281875042990905864998693164661836182036832904149248164655458341124686918066993418273584641020701739211836868597621884657157349537001943570515172340117816883842103868993482294270058737987175158166056902769655738261309301184113975244001633156504067007012161859761795905928638516285732705363262414440552254740573037603980704488670200926610883956994517523265737727654858215133322581145468274013133446460547725854414622688388939744807547492333328845120598597017254514950418842984355476915540634409919134449782743539748843321225823731858769653960213477290539039136366085290582948937676626140406427511409803446111631295623672145954221084318769712394993237190337217988041595089583189641162987967798794372037218029494500590257416999189540227982186294439843936661300672948032829867507903753496180762125745150357259184237618370048489066546728173346364982317209868240809489467301746179379155301438131617564424081599085911893387646428631451790677091747123114721927326009352465902358904670604477972861046640182728294811728266679690641157008146723182284510072435105584403751611922613775840083298168013822326842643955525580898981405830484185859392869495466522886868896892850447019495039177723003158196219461210522458860487390724269922448506990360586436801361718971551796436427226957406442188283171626183727406173398663663428158721872546713568487411055406516390110771190503744313379674240270273095098133233268686785779885282984435103033709411870552287527885610687901600450098036075967258742937055105261173293773896418170135213837996606215402190354580557826051746098084407124015913853633084549336451138559893150805742451980172182166715193831945233363911070554705257405261425057377484715569027195804121275166918797301446406209227620443831995275350007078780971316417645968624311526622204753563889345661916277986249653300239358679598658539809094420933013861979598320867041558739020100650657901728253829630182349452520353816073480101964369421526590732122699931940787326902413946637838136411681534897852088191050999011343123008755178809685776735502953523852173194589024568695556737484938621518998889747631810088002625393128365820818170409824861945089409312646810983982807152628644290376502333281203480075493923848620832036207061606080091008095518560945200197000344057025671862625267933968128839887980947784603395241800592276878549045305438656534360500401639708812370743437736842964404377823829173044331530945294155402053240321389660323457679653746006474040819437000877187110302865442774452540870557848935573966474148741518191287708317481011826302230241334141028760022509636768973716392776425860930746253653840349597701570770213291621672189602268689815795121575445572368594680108639561473001814537760369703980269106516312194032281517437067600670580845761251849198901272806579930448884767370481757024220812745540612746067028472808198840087101590855027272083029483151895945608542210246400427013749380830785811798565831029113998326199073219463146113298885644364417107933409880549383477614510518486597570525867142095416932993731647906619864803237378641314118254066407627153494255832031126125606357925355643897780631113866665983844576720248532332472813591918708086910630635765669183496933327838984487062589644587484626246397906781644909234085679714009362279236937723445993170150285464151625511132581291274918260105613948101596879534906429446950187113066709503006610316930402376356906919348296137989582494904470304236306485755705642159675256451181336921271088052348420639776171438917119425042568846073311710428986901394182757786373527516106070396522893715075296551104404206035030837608067248271972862618005371104790559408483878508230470764059662268404655825439145767642886345187958492121655302258568226267686565126190022769176402386860148707061706107656191934177019473746184016513368637348783287063818603172072494335372091405848866114522783128836083967095851231228302239061770278967751755343050220440868843760368821133361299026516010497591943461304466492771888320698848048189231524681527741701296590038703331771188454250190371271284556175373659492202968750826407165789668753440487701508564674274831776914765380997602407124490640079688336625242521829368072711332913826137847821628004338552767662554934115223359885871265963394769015227412685373848325675286296984966004311113286223900968508447816216905559485568575076607850003210473482792458575900652113487899843515818885680180599209910002832880962786321699186390465990347818485939149505780301751274602340149614760505407589800064497410539437072866642599041930138743015291871088435322162774167407866882437947176533568350696836477381426381181819123814269667235401536171771562724438598878154771280357798914535565511159591098623195312621500490190261192081461379759204440027219484555203143945249285857809784776158133267777074236107465617049739543909554241883405619644010378130292736007924157654559321072615924747178300398716238226170501553119741051587678966844525146753800068729651737536785864523447448729642176771051825251711524976037420146302808436118615151915739780694109783645848574004180945155476782745264713108111019171616197115183484440282528645007796243264841727960822601080028414003694509367891246862112549781097605001428626399662646799567911145563582781457191617425999673757003077935414627379067834193550965899136997439163531832830130157851953413664464174035590428033643167459877831377173027563756841323249326201989427711169991542531975794388736662216677039208355976736302190961634227897703024622782112309904865631126780032477078412390454131510229124603740631582408624056202649019716564462793115800859127523385538964303243561906697126726706822607368254948537751827805288055495444876712186427581110058254560347848745315454960246398460459988293595090265775778316085277277221836566647186778523773598398564314476781309377883869356139735066881435008967765551222433673966042393718426875111660567826476423918070288332437966937591152741517695116130227066996142451152999619891286564076048330227103831177945350769961480975191817998963830320878548382909912506198033584922902809796705987624397795429944119799251079052528629816318663970090206035559117797165721604194904844520264677470987374570821822844070573072252463713667249857859135111080525458949940858558864383389756748231817019793929524772182390754503380837630190279931320656087949380199471241939146495714034093007933937395809708586953204311010118449622978922949267850959986503944379368296839518365329937920341666196623625512151846355788393194097742426870858613730231913316264427691437876493865768853834375492360681497749267159931313679689053840448114462352055106940087031816930838923077677515466728239121185401137452726370888092919845341921266278662977620022772164750903390536308786258722535246279535460387776814776125201443798024180906658743079054851544219311344458479295426360916312884046208190154455129493266300568543083897451468774566018468608515524719960769525903400583981140162516244581828750332155188040190232726453317954444351449591105097969549153799955605189776197123608221847325403817830330939710534423648885928837039832301770082710066594359479739695098377161378756729426082486159710136133934100516401632822061498671468808369792244241135424612591756131913151380701612722838345568784322237839582101770833690847677463817787085500443394893033659600605127917680562277999471643592006076497201104975130143731510787538693831320430656915642838577286103127226349031889121190796116245380768974835069769198394273366504110724465448469076815245172789064157453768888770199027026098060238382229788964032077075094521805750568258379883937014259066855476653128262068381450441381374825409327704788124282990254532857554327084568902957501534476413366052886390537234306373960830465514921077181754245203758365615218804057003129707000415015938081490882677146308702110571394957719681427523857330263811468807421707330243904161500153262449904746530970330934769273721940410677381055338007067999355697504202760175313497072453845250249372496251839646565482320476287209435655090827070367164310878727867282298179375772714616050366565293491727889583491876087715959878408067246380532047920751703860864295612954413003697194570046925492822068742344645141802282265232803216240796859970511216385694594253010625017566041471348542413980895437720289785699838110229010918125592131536748595666869360210229428324112464991823802188479090238359498509143459238339123680530235899998944786713691373771318306039212256775681015338253709016953958983997793226088015982533614863964685555108891482821041557991059760644068499085860203481307933884201424099699290483780870727329971203020467563381505456322679153459679023112694886555576366067308427264996899736391875986135271649873508595417487269205627996389589180245684849131584865073959792358578199565348188712697288367486235261531112609658513427713780270722347412740526247076509844326326129447221799226265038279426299300397629959811759840863664230581384423556782020007044441864905580570396687046734571218028479966191325422562941472922035664001353952131138377660953803173372525558538828876061526510639857857998137683391056111487992221599993754335112147053079420000226946878042440752120494830498197141267262360263117398986857879146855593828980627547195966492343471097194644284148275573368516614475554231332394427913497150637772866092305593470372830841133042802414879305840039382084416653914786125645242172826586612108642353266799604010459381143824754380633978022928822890737975055856206454983763803644202652775738977588190649983134717361612339914988904874494735440122324631742882754588451580846348268030618347367122814055053866631100314430044973226347809652063216469716999925071381082666112330942029660704255233489947518888121904126017628267918605495506283396970747976513276126699110357682006489792470213896198219265185515969220728153137598048841503167419780622173542775583454392393363279195387605311796107284606043702819737721793167733228186744455902892828258479385719645112704547305209680852861117363633287595499578918440276617226882216717731812089696365495409428543749356996469784209846369077035908732182204591108223887094117284062317796436797336691164554880769110057645826388743082213462021562452988557797101437050529604038477538378949619333630668018133373252102607127670772300982020493178008598297873201698308123195568108520064657689968650928436514113594437288190325063193568286249244643898833686862522877487339260020546972288008341988027858085601782935886271720736606800242597873456216615595250001804311703015182056892735931883975819938644242027345720086830209926631789445260097782750699084819706732827426585461963257354201751056833723611171141940294931205066669100304646390452137117362911891934062659448289318952794406697161849843186094733830166450284997809233863552561386166096518464553074818216785640988442183795727583698040187458572989911537283214294754925466401091427554778505106902484894614198938511245033737714027399408696097369411454537203134539597121407710376241070980595923771568782705518548090816337811102033133416029474499917922002693175932185029602361539521860613000200227983591703700778211964929199018833798117377907554234144409222325859965530065030850443577375148664644722819895448708351881774581500503630336912146931791304323579389949629172013138227120201822643275937109791868741167462916289911524433354571346515417450317788421119110176971083622051001487613738225819739585243145013832393144571736327914646352094206818649550525579728383937539227108227000076131149062413557600120000267042849465607859712901309949614050620841072244681442010497975845678101160685097902913382146045954443045690489544076059121592763284852839331207788244793579334370251612383628982112516362199089810641901291845412790766384628893837706092675467946316989368918426077826907812713464494847261981014123636850166890473738246906316187192819895961226264131452788297736325075211889269073348656135291641666386639708883967859129772162636479140458791250112482016679351475051627019871468908311897941098519321188805456280301069199226119475003461279230264602100629870198800412410828180668309412555138807890134765458928869255476423351373482617788262928533449475575309282566892899533891641041075618186393789272989867472919195422390215679028421616253475720073730597542765688385279391410200950584669017499247728261723066272066131778123118157338393296950856181873879696287325744739534696454378428755055311482560481559431643040678786861239825703738834567909476031869646737235027816233194279880191253839082693287215219550958758085706871411860204643650889253347178127016449071324252386698997432801172615034929768264415305424445805210535739502536067167158525381748696525751430259283899119185348807587116751293105674908029593898398375804770125024656372907706455501425295601109913765346855659825971532385623158512572472828867343621224276830180642764477228228068161604702686991618032192075663524010988249620469918392349486739871278579608811330551736814399408134590329225799904214809856107719621435855655641750157168236341598479379131765636043387196715814221707299606237068353836921439115530126353653743786214608448329783115457958650053157910904552406209189684795901218970333771591449436384480384157184161080711345744436411396726445596998349504640762975236597460643275470346396304973858387694389771233381218435575116964152087398209136460336243665960890516425245277303019251391704541362698304562213188263360898426165696113144685573436574465531559860159657866063710990180053335600801123477278673725190325966448173653082690096613021057877103983142837595549299321894692737453692809990392597604918519545397063708173887225521667490645623141016827841320144246887302367996434740502055271305529671486082880873110921944438332421799025762985329013833660579002608777247873750332234026531680212000270568102184283423048533176028819032673130070116577306292937357739631900324598673543155951458437098649840746283442840980654130034600365895205888736447060814079924405062804734014337662912928567743236863298911773492073682302853556595388871160007482227468041976498716459529523021387944233571477377005593610106656865341310105593355012398188829385634790900432658173699686682413518243958170567500812747772229044123741853505791907084535663211506034289146106405316636683606416239529855234644549891542556886298602032886731959193983768439789705687974416603212288065930512278709127510386334727824573955310904356778105426341413956820987801469572011504540484200591341217916888940295094014573143946048661173045885781107728538704441853404330775160567985557547441287836909358714696315645395364190149434102572445490157033722641941985612799120229135313665656536605742192040845145855765196373190229690216164567885535170421487658922325557619779230408366028359748795135533283224075843779061763076392797871079734032090496190943446606264809848198091926217558361063216536424344260925622135518241349927272020015195474335960138529253105566075877134902775870606877947351509289770073086020253444258150867486510033056712934102958592754759402539596201696575072878810847583816714248630960175209332928030280893569298414338015313856905022908713898570033680946506060334479970609092691917231657983134594702177017803355359118668064822266287662898210526160344735077851069293902196545425193457591068299034421007382512374746666396140473722662841929700913463805136173868671164804976361938354637740574020740031394168694695040236719391787834408771927677310581692514453786529771630160722940912307758247749147668771287616131125641064618993005219516949632381349170476933175552259570182261843563322874790734346460025364996401571799555709141523086651820070689603579239393591126480242277614054268432888915877198717228851122000543412363846506485726969789455394261297749791498408722166895359677536494108409738329553345709607615931865652986789899742753660981031308923995156541126043003058237721615061880839373192172727577254775136461205122270975802646467071655777250763177111350458739460135894435458429408064314664703298531363788455243960960445475238714096053053784493006624301077854633358297378939797847391695380406481424714037441158828027969058673251314214698782321108457548890864229346188667134034032073526547102852683279434160979013319483472505362383960168844461537910048818037556339213826004484598619980406004380859149595959037333168302702549556391080486130023950994389451042828983513612934640404408060184996656055233734624031817247926925186850833422845304771591094333683002140339086153968575319902874359914484548149992508325779110350495427375997781182212331450612910371506595992015757325309670836091833585881923207472304354527897635981013213332329486757159437856370899254816318384118351438985601731699244151551614537380899920504595554824097674920421531738037903529018292932043089495741501539194313509199774784722377895835265146174805633980855956546393949640051842843965549889255955539826119982887803000814726474071221994628011902471454464067672863679890190194850963116400384043659795260646509253412712904978000314849827233378830222815423247682501308411133819760917321859725255933430818423449694150162940945012418238547540928416709170739011853045059411651553303082097476089968438514520227341041687190420114564806057400676459770845448778522064811648582017138427896704225387665889552583044989700713350909917857895035111725925641768956745725527058720126543223128135255432818995925533227464064110315563522360862407931453719018108417607784474465624413947969271606912213858274025010745265248483685814961387918461983715891345414600588290115321804809811761662840085650802182392167737530352421422378304370586406151404989087871037103459207923103160292602556646593986592957008286300188943565307823664410845114210165258737526674485757166094735713865725197273689159068335468539108980728497330847559935165190726759711216535322716925567953656060207982415253585128961442156743478774648247556225479281022231510588293012589516732015890444268086299930936690146630402754984376217204561032290792023240255619784103482288436159012191884034843631410073794647372461820221723801476806671840966692353173648321440477692213559676965349379188106363809202290003652391629829757504432701709721485868642111027413264891794445607602110357956406691277038998245734693477266407197059414934487051255728649827151781345722936922789654587458629672761236035170774622416076699011664195862714399993148826957363908350625717387665743621634066467497901258456291072812174250959412534085727138385957652718958921833982206354799668934671698603058368037356292001177930189750713699320077777372080428841900659028587249300876290713023596007556871787331541670361690799418009840602427799135428705455854921365444437809393028150413796065106782643307081592848715788137515108145824266502415513737158585172310699422420149505533435446489923082458780578695661950560714785669665369723253435483827937043593081520733127107168337121127781848512718346551447219315401489062291553526979302789238683481062890905363988865248810575133724909691428998955913043068809892750928273397616670896140018447480393382488711292229146365518970942714090773802177204083026015436808580382316645569396329519223251887664814466156357437270871789735149717727303915915045904553809931437540298558419437827538873414155386904160778133076052257191501130716650824675108738678708272158557430169420840874066771387141500628976316262705722302330449631022604710570253054102853551889304270251276480911508384875074794524339764701747934718061154950089443055234566096930384899692603330060370531358849543773218539829943201296001903285915085901657212646989679265761089673095984536500811132489960220680888746530970051775768595549245982620121967872252020933388721619575908563403974421641841038702648042712089800180285663691151836732152514137360873312634352245049851556443568547112184661243286323595490341448084932266248491943960761760892266511057496116133203821899619255105204977824666233743267995701922685362460354639404777931703707963101148599845025184170423617664113442003354916570086741353820536401321465765106092511450317974334332567651541604735554949842501682828515986419930618431869090139654879832320045870273501091785109649717464696334135815655866815854037110402656900818036565342363375129706829376627043202049995852930666918135892707344851210684308009113608358954294073895558635408962263420244740988963385533529465951591436297308827565600837338238910697055106190656555116223919934516191450420808138468933026586691225848962769255769236025809751096108557299924687472991509786975690995742605654006105463169184473582606897716734253518335278412756584910412178380718835941283989793672447233043109969755944760234829007099863166336339213985183316092933062389362468456805057553107643033471338890484888633036615439275030291410800228432110901730669049742137192346436095443561819739723923757144762541786751760303549652278312118456981900086111028296348054015066231699506907151168700821335897469278848092876773062831427022997775600149657679700173521537943047207144063023657584460374939893911785137918362331922058490545787776166028597786501159789753891738113941669327193363042836789467912055826451301626645246648976203098100845393255306813620287433573725171014271089150470224534446273263926041348337336139188386767389463237785078667138508801372755844774255969946698665042743546255825444733059956336522802211462298901539450627183389223769952012681640523407868121419112215675946521202532571994202497168483508547145052098387916591908138153244212903042981570494382992767424414420014648255672312585910047913893275791393852581769329277997386477342407294541970351269105830381754970947647727258188463227840061876328336049872791680117535612599189318007456926170420229935895462035176455160926743955044163344632360755433394604712034668703088931359366003750944837804098346827635493124919025794475385496437217238488721552785428602139659922139578763562405564063791743721608675755811814120376050648220781553785186490412456792970945828481239623853493946276268756439857180360174932043563065321316155142443491134667117695224290574077836722359975468337621049305734584032846405201662776002319373668819762843875760852609743451993382073773865307346436733778099034799844503495749713977997832349317304838369620719098046426025999396186940631733309775478728557813898554448777270041648495418497586220928376397723984651407098755704912874712726617698918502327908597915993045107021447919981925675671462902408831690381367913975060637569311441464913492045849151856891597665468497371233403167625910346664277343808209378304145021765083775823475589135486690676920918514894218202454192746727116489992645689822508238827957567118387604840318878844742767150342379436848520418828359370541673714599769367440934295298216840151608006546796346940700060436366732828978345376807447921466327991643656859570094095167931540545507028191138791187618749696892743659618107526742742976338903466798635169206927975088186203708377867377766918009929843830479290011571841445416543385750247162055536146771851144116554680729302295722986854637770804801398222272510523584901480771781043312271878858998482641806610635780803538124731551873834193885638935509619197211842070283791572959433484061159000518305457584386866688889283836144187634180897818258557275005699456376242680371896224859876918439424225635145076595546531922882988282732172404293819742618365457636151994456346918022249739191657081604004508989779248152506121242753778834332922531799562969770320618906409872177524088726156669941049404506743472283538462916260403633256292356666391794694984132197606357776272841973380950505998217156709919363687492390843097196364570535721368640384698387628928542246854372764881171402779805487837183934867300399568574086019944169156656799882464037620649669938426115653041766027536840838289460710051268684988264133202506376009657800377449420106180744030224746937381174458219231925174167162943363605196911191538010616081814858069034258092978968891671358440696986406982675465011728556551831206188952394539924738294456654261798198962534432390771297714986512867901268270802421193150760727468340993386018281711742581677119254113418055766988314570825244654803000387060542966829988243155207712112971615210885996280855733591550164764061416185031465908921484704345416837267127670453813719092502730039297155182229256908804885206888536200556826561272146196205865292573358789250778234502855810472731300814673201144953215426360045986833836685750569713549753812025652462404003336092502883802225263681546186487586077937646148247748037698813861310551164532335749563906498099872766931491160522907133145132750613410658140568397648663360024857248362440434205637119297043843867696911868559152404857469530286177735730731122094209171419685109914724393145920551756248520852162259153324932285408359235637022933768364240772770743365297150435148585210810000138798231410080024302550767563160912068684036687060092570618381670175585862295064745696841274306906780661309654191774024618676685902930524344091307611027091869206132597203331096581135862311969695583342219027180631205177520151298701293445303796494476706710689372907303195151762507043927728688397898960010190382532786786420122838238102559969771195856487978993755556493870437326297296914071995043448507822334385359902514311926403415175061701860285479260650280563264910055085777158339223049613569273621128219473190829345847583768843033344441140972518910284898888919736617163836329413947857433574749891519541004171634620818318991244262008641509864645407879425100799160074358191066387395848347238032566115679840532531361394675695715320905505649897872381463132290534888666731110434801761366901619531481714109271833811766449179918573332851474691991083101311143043634992090072332421980666584831632181116794189918103573957002006279180863807934202939114703657395553439555441217082346522250917274487675835177168711086797486236677190854807211514890263420259319236237836990085656027250576155747274054741165033443528829032008929217122343197536482982864259010953824341188891746392348811463485470528976098432725055419972946018592847201522542673081522715168068045819749475338116947944817567383692433930905158046200317741090343416139183811063772972985489810344692150465747160067112470123246519180937864333352359030761795034438943108615357805569841562162435421333911039345380472979851058947608485723510108258534082593588935990436315703411898384405317794636406335524211001136311221132086997162328698080925643574522622849295558324145799139224424097043624817470380897680308019157999439217646262548511209102804530726075468977741397786999705811264789596914137836207647352117402543651832773193455674648452036207173112241274662276484901221483591933213659042572861482038252659868475428009732298019979310330729357634422966634633387612593783383501434770451800762587954379780196474643956620967797956172870675763275551984981360762037682745311883940477529671151181468392152435440814890883973763208696350025590388677201729355427932226606260518387255145252225926966867100018697753501858729024578643782670614391282678407859275400635656663157084149563316996102547077594852697932790815580084664335943620396002345855466997710708520899348736027195668393858406759984655362964916793172819519457103872152643304893403016661373250156882233135496225650997707246193055938665245400923401273108042221586501696627338357671992358866262179703598082133052377260851545348891245703331086558152139344740722186243692917237283203389305501570884123990790921652301641832092709500753623933255149251312672437997019819936576518286132559957415829310622221926116158320778134018261125158244906197984044454906764952068467565846576930190056770686160419687801732283065978571088726966391175584935557698455133686112525960824116238495328981735584866039804911225928411068420777912126556869361201823662242789979305639299097746829092855227515419549961503250465316729598140265637482106621679362620188212499126822427864486025812134397805528032666494886397157097230491393521173110837283412915235257355298479142674985758468982030013738474863295448540301971297198671418224564344862885423106550905891847602472530053037618204644770616644106563074896487432013909022903768415713840600941704704763283333709595965618892192170281365759554865469210530669658073973584630440807012351641049537365058936276165072804085078890685352753430239760206598066506708981332009812579854719863062233473341252377596080850129526287602708239366674699540223949646297036898952580531718039046950764879207532235183376502579944273013792767597541598037383587252891738654873237611305606947458999870745161627376062557326790411314704988513352606193302579272128116509634856715694276588000917693615932006690835175301066331771882664351978217153702510939527757828183444227239719723364940629234026751168917979054557476781079402975392642979759675928050606727556419144830853717803637934117750502106755858320437305641858180429834223517724735190053852544213583476196531021337866467952929610470238750127098815460975299292245069446834543215064199376485516158686891128754287985178999440249248712883456083171340467339552880240623977808745898406020976669725953186380654756978625705256709450987596243689549536773234958219483632536476062570507022584561741675263397229485205335111918195644828068587927656809729396209996052261127190002730102348545029886389245179195717954107238322825948061783486871794385746017343884660288386079591380380862944758916847584153839956840840825827928710567360552820638605637134192349467146479094638014701701678804605198715434814465988421651118485056816549341028599363602942594895143265755796652977177982768836198903533207280834195084254641275396610147709841740721124692473726422544295036949232512380840466272797380927244850573354857586821003227030343478473528904335341133983060856330902046454167415178771886523465952016319266639833001177228253182314410481819642433909556521357018336828269782125714866159909588289807102447928084461156412059029799791123074571062451898869441852343232733216131985530147357661772650973286218447221335924658160009735809810982293577628102241962732682544936224829550988558294210576927873788359239070243235286938242817526036127183044565414841355853884152202123357388612953546732962676610302476369065684732907375460790645281703013540314196950972440064858601423498377766270680321377752811169485247283501129065870950194690176811652042181176339649640396498083589010665404827672169690554675194407127310603020599991442282469763312325483354261747466477244308580602898621591016558092800909746418349357319264460352703769453896733409287103062208762566795940883224831330501198500631992169292382725161530473098687285238693748102144689873063096687614356440861591837575196871321438019612952296850411980529847630703156175572690447147421984807569196835001868263147337536291074711447305952615841580052080834948512319998595660880873324519052174039682989460188628945828689176294011933532581790985016321676497733080921596343377424237935296001581804345159623014113931960999954789794834210737333078960496686142032648658395678429531391627231038407409578507836635791215683521216027748152715682441004210729730095303300362424916633644228112613231928620145522406166648412341733028445369462955249970774212260985660009697075519929545158110250922030374446762752813974407293006304347674552872633931117345690149888916412764191600558471996584946685638813640353077482919354747804056852063251460358959482309113893575615988333073743543256004577369426267970653591313876060558088845343905494687947186899327425659727112859537081123005076014309573350862275088225518288332605344798613122342888938003656515211532390985016317909113074429954595381227632330549359165278333645248243803113407687698930610848492058864844368611601473946244291309057777613686541352114307034765949806186082591412491510532454860913781538985957632140613318976077892177438237125443589940785341498430955600434745317651632164464016949504857710450485980912264814110219427432232892931368173124857467043347546892986454917685797729984588792886611319408356981785715224728778499280600528614238727628544906924619188556380770045429640340024278656943358686486368647633641222686016144036324561491507996390684600700509452762758054659750823949079728194203410693676309468985215202328230197076368386278041664159387009766510867859443989175847213714928081999389628662102225896968493429443670882844701652124147901661942113466364527178666746789710503072115260109237416113689862328931930316393180966510460278038091082254289495226146363910102174684788150771546226113176692352451712585914195067135653528116328056125395779712617137808433523705946461892425240070725583408578643111614023954575802402576272257055152527421851713538861251810272292846961618003721124632923159465349963340157838999968945168764225109049306868663773783464959468523892627281365906438117361631688659647748309499114481364355074455807287454859937344689019375707322804999947160112346466470323533996112489978184197598189186525556912970651589171197954872393307570110950449233123551622970491778596616790610899924086880816776236590538438906826594840647237643498024439765959445239366204595472775460287953180780735272956326229762300853223679742892488361595302931314122859977558458470808687328167520283316080013465259013211873212109176143338873298811361992874911708646757603511760480123314726781375318846216917273968177387338155089827688852371436350283127284663829942557195577961722462404344682567137340330100348698863677266295721055930275732162988947122465215402778417168383397918613979230940611611305065491348844836157179492746735024522090828440551447978191989149031293066207693895412904247110400724167280515541831144913063036273385323042103828421994621881567527445184589586885711822893064021823748008920642979466188773187362277482012629164236128344649184267978137065422750795083597431100490032792998603652403592676055198131799590523050496918856094403876007386927061635232853517538652995057402937415973710678355555248057991626096579260448886149036895118617004197199102983676779160837162917148303911915849211134961797914441990743919148787853379784641040660810645770951532687898322739864543324489660654004198735129665766130915206987622150638923362252718067229115991490811158459274815682208942019829419664631107321420656641200217430545349963559620600927712966710596691934794908482485467286855843263485427700761151024666335417504069752862749910766447841074852724132440282562049198568000529358021162398461231769838638599016543165861193736069109642857662684322799321026009671669810596776113006652659642600144160607682364535991428892041891416328359806700999653324177251555996790497025628899952039334088621645691050783057313524162076200217898871629510093794464039095306079098205354328073809774901403470563069734726729525283082814903006769356743933920724491958721897734029355294490244889211361227846614394159841505316233840857867302885125056190073945384826492492584544276813457475125875664441925269176293493628271870366125808019324655542311135697494782614539890892339796247921976071855334023072070243725004134876924599392830098585404998861280542100695912437590470762641795170906636463930539900879025417896279558940040622000433755853013730685290683663659306608662495331496771035550208171849147165860004763573295567880844125032248140282671514670207993117065592742198830356398472034507680249639741090025089196187531477385438858275726077307133197357925465507166984310524657213812558052416423018523913438918735738490532090398908125677729013119041508771652672360140489327443756196912737432197239760275545453002847748148856529987088466985341419180330638922701363662614997063881158202188435494814225982072071076069781070337886091680082372125715309741480340706605756663024523860233619953237017547454505907596795483127478876971553537923688640948783294090681769004358006035432899722049858291070051269992111285363955223442006568153525852796264081684154168581763601261128591503113889184250403709586151107388163585557518347864459265963438856914273326592815587908511927811054493062263982696448904431383628830281532052205324535417375747213452661186934471712423515097923837969392058276681532912400054018329826174350080745697158944366822526840539458685377322823205312063656016328481684340467074039041631924545554310442102809564401168051887636462043166204585650573500354146481638566955788987473491134581066637831853174533562027831200501354570602393776014747067331817936622827854878256619960670940014446390637569864538525259562835837309501379017828518440929490559310691051003884497803610263126987370227289503841060654572326877103200122559423578178615989730504386324381533020324308072330643668408436298961679613838932176590352926341889689329224855078776638813306778036592644524942414667355628600966174514759513670126043127097379679674912143813634142393525109548104585650769433592364573835178576858987532397393352734130931296764785705054532709782410311417212376830596835240373748570487693282475485010813607439807152273605150493613504886296088777481936981622511577587897925609268295308753876746979190260852918984111716435943949553029958547161318463534546072360515237019039961818924760145869343629900421265725589021382264307828359541379357954467166456467174996814179899927914621940048880221156917752175054872431285496231270578077927040476606025146595326325939929523429138119187405298888566212088459408920935433903578762627793925071586548071071736929809024371269966248032635366209461266556763806314094086194643412248611169981767868370993755847917221716113391618258956814323269115337828808645760731450503867632743524760990598106188677795846323382284421045729068190288919139891119586860226567361729932356373778978305063026283239493272345574076223753787329131497722450936412121529176871258490267844924959446319832249156809864874714021926843958865736517688842867264877914975224432751540698526233044420680394011651153430390872465839629984822487081004906078845370326036709133789873308495801447631807976425398650571905303284219960542714737843837705044908951644679106667186260821822219462903203767508907013074413363984287926069400132655297515874540754943664988726133887805103462661324044121347450130542939385963525792167520389405581048302375831509949792710402145826116490634725903078032047066810089647721303542112094636062574604338174965248792491558158685715763249155637080593285852000305822518283705102344387950010362855411710650198702816421404905150754849093437557392862823411118125697185422460335403884171102093693182863813653693769481805501666290444120345407385179842633387838185671730465884883657636164335923964143639757665251632844755005547789560790527866331992416188780395273358018350010429917909025623774623893837694950661882833065576095725186717176563318462981012549540774709822517952625193099513797352031084827772715701958814919674625341179522007101658198747514121221011637763465156514231084716250059019036659661550926128435160632076924028514923708007439225430597666242607412582745659741358960056705499599558387972630668121008691479760139474462630568545320922946271816562100116993165571600309911568175021718712784148705975127284288283930553527820000495931016636042252988587487344891145926559473980360423700536103250760537715813504826292030007489606862628327079219176383335073012795281524963047887142564931136988862977440415527379105410421859836358057564020891586488922008132720736291641681577936722120067140531945671279955862526442878571765891210935636348699670773402256941092929771768983437427130257086128197742096057732419317661215094104760880233969276243418542816935981022598370950036309337035372756954617900895304661979741109596822968392217009049495418779390943186993417440705886908421292149973968785942794715596646743610987757504801048992229381896639378605844473682535055827184588891091519623717237274520638150571168304525844186444941756108942163717793038783592640428834390566716960402543744745627894666764191657130204710537799166989809079964959934235306893802367444344225605222366782968843102904208938566750451659417860001728790257872275813385596271802404935703203738870670453715584881527846357811102037283455024106075594050431887817042725908342768339775708882830131834607072650690276063567121154071484719625435411087071329576173724741366369052926062483972429616839041477985144840697493590133304992389846958265532198047676706331387408841024940209287457830064351779213660505848175881403902906980018503764485837051727146595951081885804588552941529132994536775605628069651254853693451570656066939389401343334912181143701494043767866115045042088198103988095176304710412622261670317538054231452379752293399302138108630316072221005559358918950397763237611826580843046197959677208574229113911916966232046090312999747921377322650751925530055138636380866063976270784837266474892023261948728784316077591122490937993127006411735381389584583803783702457532905576674092743650984826175797191288519116466843650474873626078743580304418596250963884812580043021909156613791559868604347560379956703934606521492314752119797819208943902725366127129069573057396713396985116287414025079366947448580323495815243724189543970120979194173111378426923484763045175511818787161270227384633732887731103730924364568077961217046146055118234996474850182430254597053396796843090033505759187575744955641975329901537646437426105512320952749932237186237731785643325935456825569131690513191138569866278709144624324002042745309103946480386872830262973078398629963731961509748603520859503805100861559215228407791542963262899157508214459892173607126863911971414644702065939275849810356481490719932858911196734161075481734076277791824166002855010657364062644381706970015660422406571304996874934227173655544757745409634659445135673201575146282755103105092787078903704247035527068264457159239061643865703720901361318787598275240941347327989315692652995442496531505835805234661356985540473363581164113028498538395684295057213206815773378985850043064170504083400294419147833559492126119380302813269933840814444494668453946983499772357410856162158584303127439842947364574834758908735610158368928306997304232032096742571764033646985565294943970887464471673643056914703797343420247948438096825090661476509605423148438264079424590873008668793457766696240725169091603024109262310221716968729996783659043821473538849861958645677871844566198733000931652413716229063065951765398780079414433295475686314385915235446032218408747342319502365015629880232929075466741252969333657204840350335093917065725150670453468903401648049815762480520545304921869669341106205342374370025797123555739566026833059700032602255981903637792387279395480767049415966944818967417416062316583018011059847462908471751245181515734497775225034778789406393641559198960125553056575184652523614120834139072655731670122199833176274653565206735849058637654027217156654154976623842859327033409611486196400178823186205911896670137096026408111955820248233659414895964997806189654708254821171066324381102408567311225070016195338323985978034036411351034721461975046478727719421606357645525564773648171256661937812124616475104454805149707634347638199697718678258099925970564506753017972827507210179958407879372945993156985118926453890506941394595017188183074693955778105588347037355216701322853127862880319965474303870039302143789461080497834085909858511398136120613990272029834456993392928619446583483756127494680855881277209286376399577350704328167835551262976278107471909957312941736981432636633358466440176913949313121887088717218141856295498473543790472607411560879415583823531643220029769674433366044673534364759079755325083295879181078528165856808450509788726751264896623415961966054715114430752905210723767215665819177888689108031267544042630164625359120184327055240622758684028675281683688277991433070291361488434072416230527472522053607286141434990408214420988115830834255066082587774824071799214799826889615236281819455744543714057148197123109756011103294332119921026825888558282994664192038346046757516745585630220598639112465115070698242977845834784860594047169009824137168742452454329460147642804221154817169431889692957785041751052954295876653674755869720961521797608017205235223897955528759985548504701880888871718763402362064304471383801773289214618714565499327420596598628439814673340342333305760779771704084974834470197028984881112679158273181604244882120273809679232379289730876454669906316989256213129559877126578128934989525572158070617386424427199378918759695241013689058886257534266664541644491767911847375330032667308533504387356091678383148468175928980654461887174078815100635465989754515551707432652597235849685313697888324937554402425483547105130800037922175759326755354104741542335338470925029692220002968232007526244873923605491332505319219075510694282554325810318710116742955573088984960661696023395437985289804536419692364919483959011669300034744523068093105428307889915013466633390775116183302374667128594601533504933594997162348355703789432239318132612750675688213407692831728505875260002604893501451024554045706758001861493057182398167660652095037608834285087779528303277718338474049209425520180342553042227215833382862551404911677149268560961566790674004328308108037145091306687906635015902104786449949009786322849153014356613158327058213656911981754690838080647298655928889396500811802002299217147822835565457604980090782520640499319260072476081526961040692620397512955896817743825222402831252232631987411685339892523774210311464013984839348413701607715543502553466705788259382458232467562407290856932501091089051727887711910111870807172486296362959169294614641025759353859976696962475152048046618231182854866965668316534338875687241378025141707457355233522839918044069870811345634617810385018049430835470047399391649188730164665551736414445342539671288574820570060232527718077676703476726881985920158723969267301165158340690057106814813081962083173117591471392068849707053672170700711695283173366084820187967158091164753099150622324900685934006067911844730552400659366174848746672112160777561266390312606841220116702207954772375859885718539859106584709125876449451062049292452890154478019818598532986210365769115305972567235328587075180082049217599139767597734420327471071270190342870901672435346845503768433018208368448586891046936658197959846307927325147591747060409723331123079047791286980377913528165938893936799564175918195607114577218081954747979339182410698206429840989957865213267675007077923156913987920395060071221814264952949374641849132123349503705220627880967764683750768900008324349384058887966363535784270566384711166704946235382915808082113496079743399426880014957801651125006758775625588595261375387604446285593571151048985411603501228884859743342557873656911039757654709167179963586908725679257092894905568795768659674137098631998245621624176140212891294168233770000300567622516303310623616310700142252464215513949165328315075111684516953463969098608576218189229736040574379401357582435638762091985744051276587152329057388280673703033396114877312478123593539719630407403049259086372614935802713747043551355909688109270919955231449233188715531593062267523571205967026475263327882640849653755992569668501905157505116556632741254038280538202114560635884435417968800561890412795712790395594417038049233002829846718513557970312035370770636218412607217565527607975138067225065219437044836836253134480661542339950803202266455375262686866121493414496558378096741314768424839565410590709860719277305131371825382889805562930893750377406270505605055028179291105539920837260697820376689000567707719548579853417253318352609718561685027301421428294360202153051648119399771224887229249813871168686196482237987796654575367490489855757483864607920651276939623647100753959007016710163057273410460281695010947810805769733499672851770005690633334902005986496435164199880105497064536490345942975023333186142863865878566333222403954009100050439512423137433662992137798684990040202309582094116920073397627812277048312470750650747972831259044274339486703113020676273467293250574409098800750997584094261531606161659688947131076192142949721169188838291187977366974471835746280533370034975308945800175965016964395448142141031970005586333944244848179931474687395047008597529782734028563828294669241329943618867128625041999099186277324476291976671311705161246854262758669465821165195572675088141211187835807163046073859445379904697208224418727598597028780298498317662092537217679068435516902300387812794418614340726246873914217033355200747858316852228786655892994447897888684350149827923409976671737425971850713858447170402130936043124892934097349980161936699187374294582099424039398203982006352891060255141774213666999728036101792236019825241406160105263571710889551717069120477235069202014760966219837615332928611701548053562202362025396595301048159725120004775941699039223757166678616792963848590609972158707092123853083926094815141536799250321554519620383358547047479694035065167787522877727010011830680719410475641800066653160356240856812301938435764774560763517367268141283947518602678889187256485320325394341171425943395451894863367212185435059491553303193365335133944399252772788230668757680932645260389442163275751585109299885425673144384490339339155725260922526872240039219959868419858829504817483044024118225285770269712004195687616462814723269383308501771083731761647685591956909862523282643443169553298914877782017657365001594917065584122907384523223726278803430193406397279715524498744624939358706184396263561191084664406993157942702379996055524419421180876240201774077845533564838519138486064349854423430754535267594272381041319541396161103895482063426303181460115488712867880273581272693665296630112301118956015964563237162136787918448902528490675920302707139019698660589603184529725813912843916637528456135472042807278837288439750927980249280789889617047754545193199838177535377513832707195862969507812072133647768207550501605498759632337110502527074214144743029112019984879701669841902253284370004525991480180121032402508269576808099753706971651650851669672751995598655611503212275524735345163093967493715433059175152530442918585077122308055550782403573906981709669306500338839265277396836788239282757114729181401784236658906354929265366109634454738993290552269412247339978026942631160674110222145801156467866122597994696997210627907935917774967577732719442833745678938124439101427621048238128737837370264866227041326850597249992856181439912201019548504269272016486778084761468712691165358045140686991463553593699521083525037337112297771122558780201827646342856617752394590466518065824849170932133481515112355453239884696919516186237268411441325926574460368182651177232782848977051216678898715798937426150036677092514355548463054149427691926518737317843127055207380630035771457751901528636711881037840791607365782650977856629501594696686602328482855040857017478423155746285168292453260590324867321028906954966042962356973186356754930891450756306530206904806294906042719718200497954688892781182033973985932441416484118706612720245685034920623798095797570403823474320110593045757616038439968415098271637379263469715928517077739303266046795967083357788181417199904030093529830084911008217878957768300654102278736841837843466244642472300101419687609341902041502052202329415604878148906869588064307836571742552945193716466039355937645628756978700240783985332514486185184775075538338273385670468160640878872941820735677077399553255820176057786055157690687272291103964850702239216238621982261260304367146302633698167252833961330178838485525670915829229776988183955424827376016679225666768304050940698197830117707020159420878669319956363478447536991239140058893531047718552184166707928317726635007917690821164825881231284569152973180051979800565044035066097128270210697673802628361021980046492843832558860747828351094126779348925887064102464567153683151274944522014138350821845660212709338649588545018008231527690667899664650617920489043992739736473848471083985692149805683305097504484801159810437629204427904817392289297414374170330180277807340786287670997759411789431692613415189975861880818203051985495147198730435226268083855461148217675464014584217133041692774121550571091916600019684591112274020230388988504035144444119244412373738394855669089518744590058859776151963568782331962460934960563586173525882904569929456410171191841865340432033176301199237373898017514905549686448261901346198433936855162773841102720196688197074742727547313181069065551885656761563272688948593905557857253530650183600511150314079466778248100171783990348478402400301577322109352232445331196395187215009062840298049116787426816424654325786374242647827319707841744163095077921917975459700981371541081431169072727678802214042188074762591341442590691539318254069736702953320333728159497584544601157066344332597348088488803953179228473332958419563064879364352314830134704767635083934772614663016958536669505191929139970912844753386954599673545120198182515407791630123590599436998456932467887846516984544182119017911073978793663138267907041588139950925123691959300627134068064962983492027792893340242738764216105083068042599271254169078737387624752967063083957352031500447607672286203994709810675489233117662868070633858127436466578485372654657431336302800513269068785773336711706172808110669558830997528010180456632965900186348846202891968842234919579359585789197250066331715689463935681386792813206690429206096125172083338032398800082813920217622296537894926540749097492281838208918517514655759150533725492676080541558339206048985978803510266478397136020806747950190789629854735006638013893571973163887285462702532158009453532688435893952677328294758229797846580871954839173230650953918987363265923739981656092336534809759127638033929120929977990089405063522616273854135484526909443297055644859166329521736869647696349033962983928557770508048418970718330768543991177003508439341577073180819924508107525223314494655697332873771232034728064225884441075142733505534685002874417706482358919582379536304747655334093184171466141160383264811607764236214317865834640562728681093210716174944184747639472345436669931375838851006564012781333608155106831036499244617436909404591635159867383846844120780236735517123958329793978250759205957661273513217798474236340111722419831283113799644418889060116369610557678168807254540786912850098033889608104872737355574782897906199589827195428906409244509179057065770067449470625813720095951496796864985601430612421063274491596613459831596517336122442253355573438123811835518630647379564446268509873721994552224495264971034193103692745895781266977902613245331726771457649104130304462873245898250006389353059565473633130813966202519014077504223946127735317933257869092322466822944346684421379570793374746794503132281078331859835474999404454178792808972203004256641352273314669768166681584894804163951280455149624924778808665438570149648905786781608062524517934075028635785913110269439591689186386035919996688706553460033731790998350674322724409070974016925260225231005142759036140506465674342675950319912599698579675635220031861183739708528804741787812579097173023620552179699672943851091001904849583546142687890397004896526135286311322787808965916436876032278501866605864869218476217024706028796857440435033036168916682313446944702378615938809913639965157366749667374727803314162633175247343359076169171604719333074761535012691552845440950819219755855310179703589952738806161397309966732953581245381313673926319716741318648452926003637565494628942122565909080272750580359377847650526571049400495773274439140869044920754582063034280804050991244001877503726527432015537835459393336606205195134638501700034075145976531343701349392615532763094583666138879916270873400924022296281701817506363015688089000255289040844618034763426512121394575529844279742346133042290307930930746730382450575207324598716567540793753728527836617555802659284464083108671739344733968378441443254109841268687584315372278785828145818156423589154213816318329346563894264183317335528293181707794966725078158475732272332723238434046488353173821465569047281455050527576736094667778641216854821909540162088142872973289123947321082288164418197152977990430407375993050045643353182176923805136561109221946490418447916703896667943871816091981871139926135711004170695536618744772672224209613273855162337252873279566736423555989038558037319843527063136942462558462773964103438900229174764442644952181683266855894807456470687119008386871659429960019940988299037610800951545724032754925120768030734442605920547145316989905647257410199302815311790558684702709494330953061814126186301781728297128454544849901290110757744398175595875535135069561121780339037509098874491223225706036926191732478708837788205724214160014857097992431039089801601009441279659866086014494511587283173184549935318717238579498831630085005082571480740587965558974193575738696325135462955772540171664147507327564610171526500688481329987547648244758211290889143427605596864315874826675747338513779004646533743722504680874294829849009025331648768417485079676607469674898703876597318423103072152058440592206624522557459333915458703299378633190273985113283539412632566749693363026033478497106587308821439485086762432688184933466808930560992441406304349359637689674535804229093964562172832368927913482302356317332851433124496852066479819780274863516446794011842472910861560484035840130868201024039935646205858160623550459343879748528798549200795224046733641286785907511005612014229248929124458154684745475522008454214429600280740928910587961328145762591022388184249152350028350369069981161509238729857925579158846264099976802218084447724092831631986766772600945902525630978243940591365713286922255440960398411105208575765068376104622413403985889457194956665121287854339665551405477981844085510968164087217367638269781615629034149714086318817627311667797303743733281119392315647941144869690233236579728301706073168220735377166028581821414078625980522051930185510417019155965501753895459570064399041841363262710887700295482122189170553019064702233000812900878618749189067634964762329632980045980940464608605382990338457616991543496803475377446215506100250267273403923201082855421010352648178496811370433009667277642199744192032221192391365802494769449182545268772327384654903211915387164080163500471129370789913045922817286794272942619456930344608179793112445423747605219878219171806611745964170174169535878599452226549746191369319127843854402964567171396617652875921635845238769567031606916392130626259232263027815888276481729389405119787961122337095211364836777918823228811028176881213947368825005148127467586217217531219897173858948144797144191898910598997209583657428681456204582056948799485819071467619757950344719898326168923747672723256905692647188077676306807476169560660972565537973945456026645651378742899680310653875809388596593912657875576333459102530061494429406166823654800293540368975398800035492144470763050270036059715058760355262728822587536662819280634539824813769479403623480261811234953341802356251941096343461188534931361082731581527919353224575893561439968576867587651787015686159923569021451930388423739575476332501341990634690533996348288674782247545053198145935873697225807465554993613531489021464629459593265322798039449400202945281949612584884922444956717322566750362298512649623453614098182189636559641938424940546239764047410773628957671774953019040630871562350080784997306299699446434788474767981369552298169035601680921609631677492284665788805175860540867899076801392256940259930053384373254820754948929116109229451621801343742278910013907459648155129344629451494862922328060279918536631969148405682530349998414908298393339543940948122020879436349623343927305290714058343992487653378038802529834952201883456626613841383959503554709188618878074774529371268689707896509490392307635778438384997495965951239931806267277285579671503660840396089647879687365176325210094900673063470045170809534767305210798395958981220747012217443821016476163966070837003319552405401102339397662359995831531274271719574890729200664701540987987694648147003908753423630378360186576961959424896088001461867390031341753619415139733656609124022973475334566436615905131880105623223226979781408943878361990259117617892275466692661481538950670297380206593502114389450729437192190386859122252336264762851599278203029555884244323207114337607100464029398009478511838036069021048905625693246589191876571531990561643938957627163345281953249610535056131817571737128963365133140643012748275218682609408641015908032495461242186273922864449724519427261187736994661907668794482670765335833664871959842139113778529562606654771258967638191497928581043031506872881498424027624062457329231786157917122799490327577255852681804473740306989971974750722445901031275751032936384428674196305081721696689605324238953917235886028100452167284220375960610126562943445015404811803839066648388894545384764085734484274324924657904247850974391713319166210363383125813281281430986363662195206414149532845760665841548328695164957007296514904956963967376726694937465006984970480817014088639255468686804771823947227756608429716223387102487656707437885090221030280084699358055196554339238968138870803143191891428670136065499076899437030805724587940145678011290443503246339071894694947890313204587942849052531155898817545352621860818953681829314810042506367548990785419878953219141141551165940480573922077576117402256481266664455029464881814724494261985543566927952216182652138136880666812291377803885259310588717984386526428732359912232871732502974029337190911120955808413093114898478516738710776505303481219002908050522894961687950805552773083435570245728193459212797592159827697741611522500687605396112239737435156910187464466298128152872683306462321985888789289739333267653057207242836404038029702844448974033738530368071802105295421561352993704962151439978825671604977775489009985020583578384963406157854370460230706943608197796971612915234641883671080579606494746542588298509131053390800511884809337722383241293939612514997609663182334198575289822693954821028976519552472725476111807343179696477745312038085872577738249795304983926597946635553616823479951769694579724327487739293723330467547616325506920299100331382433930185191902710702279916599793448267822101710365541712802000349219958604699961387606332975669033508994192119141538974377219620200136035139615436317221717027809278741305131615374556788282121978111821162288058766702072128432715476362924102407551170425592966452432056016938534224642074574879851079287859519569768556646938937934983871637732369721260538348286853716300648185626067995926686308342061122088932854031993891460783439231022986069602360161951243232212925333101812302165945170687284852390762121448738427675353208379607701416107356114673958681432349137929526952891005421037390225428290895901022213465068609745193027350593663563369450013574335433909609817681564616281042873872197540976606273300981859227954722955650289871466492462000967669963627768173305444023722367503662340197849610156613426766982491924887148862108438221778973855963134603426993040286202285612146172437761866404483569089410842147478798506855665854573400028010897719192241109976315457294347936270848430197099594417091974105143699190114411864460432708205779065907879427064462934794277993843322542637942206042916393359424049646507114382728270635087602515300435871738885092975792929122506704341096533595205880726949077928494945854941006593334938402050822174542182118204028066743922753351905044526313024157409680846057087984413983668748409266740297232631080703688830317771933570342337036253793397805517375237988425911564820015291306953999307277051233793647832599274853815718562671806693496422981328545181328562734936442501281636091693466616639625843128194795832724358985412580368540374870949054583776202340152897838747718989943792908598198776680508125817329589797849207841765959783322581771701791084582038837487583287753363576750175225363521150934998727715595419964286814697143006075762008866097522148016968266372933726019793554701210856107878921246041879335893787688362346601240969375491409983178374780684490433163975598544787902304296880630664190044935430048527498541140770141316546688768939673967758067281992361340003771959987233112660146331858462517023037664070627064940834461442932496901786481759568044676544705570065805133656268806940977182778557558719645475253827498253849380343529920358513660685574123891710248221026083150749319778297368950503815897161439813829013993764923789890664632567775586747820875063810887089539296127820022474149916705412471201954051717880885525619446169187187234392532406610351396206801174367260759931509350743857342857084243672369998960705129108771673392314813592780770288068380050993324283228446904409943423476936928807858212878908976024180104615842723422882043469214884163134141676558693491559240167559978919219253832723699643222083998942492593802741862595321363404416852340661787337555513151040410098060214206719904071151139255894234313430289912718198895564887811028477908809811286365987589506312864130921165852793988211632200708903319267560592715565319844969755846339947947428286088720999907344949589681491257829719274026864287184240813305407715323042794545350824708487549027216635197425285622204428873834170277872215614161481867254180212568603460928476748082754121707954105172052827290118642370557273793504627032570953461834276322621765831324365518322247721013133263232843624418302829985201305143697409734644889067914350331763760518235409010338890393959442159904066087811125990088522937735935907485653669273368987561592985248412141127062458025553217131448910739248554908081498637369904585141845889247081418033035741386132116738829161965033974644979430409423077115588755024978835971845988111436462162158788600978220122984248262777504236100340986426709408035908069195876059264283339790511526835176699971321827944857452216871535068793714395509260944080667360290587300820759586860162961209311554766459095257567627474764237417815354340737703508667338448062257307911910942207001305676754109029186075012602772300990106347688368096129328785064793849101216005595907856829410557968408285279324897522407603425466940421385847677932032045663341636977368388975318138394478470350119213367635852645365273993180127474621625057995005913574827803801363270741905603459822417657798677123926971180135669699852146949508987740750419214650654588291456410031875847742335315014142067817154667827441828074783020397451450883400330030763798258376135225191803892624525385374647993194214365929203721963647375069691316040165421816027058520417757903241580327328280167404965737747125124913668526356825084214029930687389069174671804931381716856570231847156003539566341385999707614285387124103161236755316282428770411720269301107522679689030889519356383366003033306270856800887882135769804715737449853709530626259184234313052986026464180742586611731887499650003274876436515414164765335857666535878437298257519749719569307445014669490662965316461766647320766414932044499814428492186453510276493864812591140728172617030717085357513110822784762995168566130776965932930687314797065262728617808981416949694463127684044937900371664680165193093453917711246532850178157101922872458902533516194250749838795460612802341018449241980410289240439675094111991581400929281772915014603294713864268046698597301344714796265314714034410078992762323121895076307334194075684452780663386861497289540633241451965846337789749772108684439144813794579120378078330936138473904820995966160665025949110546785853155995411021753114845574232188923517328277160784507699451595505685923098554562332776183615124996045580102897107121330422112741517153163800281669142597503378807648420503136594051741219916202865551423428399834571253964212230847922947958058629801893161680219842400910512873230331725743847811353683651798037188317174739872143122807634706142777821464995427646334126414561169888719143843005878395042644652128023623148247168273123776980257244430547517206554448317399106523289814105218032510415268697487646275776681784128809706883531900056368456896074547226807099985073435062613504101995856916332167379776997040458548423345027617979940710268702541443778727940878399904201649803431032994144291894681758293336467372771021803091600201424195942780909443223372291180825341270403011064206883963570847238173556279673456555555055680570686463986207028521530755956087721116266912556725123232479008715381924813624339464875224487087150666777856578395292995533570094612703587644039671782950105510507782416877738095467563474983789825641713002483929340707740820912493972761433519624557167199936965125438144847475713835399193839922176529682469682458226254182745623218580414776270558761351403631885253161887608548327389522741926000657548552726605846357005080190099913041658837068647531449601924459006148414425156649207135829742663941783905222874111173615149886607158405156361379736854315595862725708478285394623197530450117936279343081191221583659117052828238218638417334159756446770161758942297786287083923480931955599567970070774909556393883336821301542906093593174644943418326603942468025444519166352424410536569283080407994834276283838367538976564989863394605443025588764484534693662088258485338870631663437221262642942341925894992301050572615577483299349045185745260414608030246141996433688362507633291528142277596402194071344914509994908205943110864400428029277772923992766090988988065870205773547664753514865170908350111437974715439239857992357085915464415720270670672684975558433509439798842689866910961256362482602134212561114957431786079835120877602554162245584244616388519618504006361760975607376957176550842685176482439605261936381641807085407640417068896891234359715855891596724540088441766231023379335918731671724372366266334816407024854527361625366718407645984501496671230474966204990645802696196042985243147202517119666692227845526938239843036368529675416823453703694519314172330246255910188719980645068757005794559979205638329738633001205869688480453431407163454752057788872850875204787920457484742851294671443320686330096244484497040885571336405825095037899716035151483785535937650310406015010623680758382097089513576302353123543783687478343792661002623164004246719470069084351448533278066360319834100580467700920183173376110232168472430189801688636254401061912669340604952128442663704773434195482757230528616213625301152186886703496758519840856740859406667248069178528043503966229829457939543872262596599367094853659821830328429941638731078411798907002870731105113768846504293546401285748699453226148692666633655734195605665079717203639433509962169559446240516737419535796177174676086868330503538367646831180218512697764388927812231418368841513941804347909300216460085906921939969663578705869535013974310401664198058638943108664601491621371145986085372041811777793518618967799205170068513441684704573545664418068557408271015289281937588962606803562922536795403627961111952359225669508850755209295781454906996665618088276405178997316866623465766377639583521957912725881929541203839808468441376172188593212640746190246189960951702934261645687332415590959130001052253439519136601070298492004617211514516908067268709391962533455344815446350734881906287952349839896672435737281075525179003044048927936633769359755435906697437854082703076096666562528277956710074832477078873933622938937643507357848563718010762934693950761934314616115089975167221777688808913985760930719990903288042487165372211133963088807228191920630785266992540456568562116070596698250336058910241398252258892731212213276824541660043005044385644589751338121652367196527474395276964963390522936947022755704062918745481035638754865057337069107228236845701318031965926854131163847813952749036746555937414755237400803431839622899296599100020109658195077200866979144045386755843068564679962470903952375137898758644819203022814375566317560938889518972083274916931525467750185043760054729975381530460719815856394657340228593787315193387457024124594135003417774969376674713901188745716445888948123466779525674316553989181243394279909754553138221910094421283655627917777436707601500490670104825595253169273205927196122114297172978085695487813587071384559271518954929653123890604480837607364981943398986418183440282726826679824582656908835050319278379537311382070150061767411783809723764996912802826756216739249375122597756326565022762783769515343960637129112390751402236573470611166814007080247019352865731270924794670444358584856217752240463977619409764687034843560380612770268708567813545086014098205691085936661740237381437581703693583281699820233699864459248154998438567516249985388228984750050896683406798986992811181391824527230067522400727938476447142319996713447466834186072991366218536651028827089680714812703421052671974968305035552017236557809987161486540869218238548967030712012428816711408871414971932403577988027635384434851742260342692976827769885420141120956448824502378844980855849144915830645981945370831605140484814670063412499328132435894471832901528936912523346018990613420354878044552560566554170481897461828495690275074777825868061464370808388972543929171369068797309045309833092313892460070924187521381679429390935950675589940496905631942685105697344198449750835419585567275695070751957630654015259514128913251633889007705374114115421342907100757477827073460572962179974170248764590849107227798529407243205359176302747098681336721396371418802384155757750816982648418246164732901705161010720448302986551924474326922301099857577259786470199753688035137977588895738091396122805545141883408646576437357396703539203512560789371317247492483020956442059341396364527906533977499307447724089953674782736138990842261728416542119604045119486230402448154438692935918786319910694446326071325341238527770333519506986844456881037623535924011621938688851362944712838017087644982884586654410772529926163032531583501560592250847387951567012051795889163322200861730673534911322254833460649176593486536475092534745952677671665569614513640703400354482242438421794672209440262950556829917624681230946519772571862516074938452563569211874189609273077985764423641262351237131464920137296720452586089805292305052194839399811921998381844712064902412599284722182842491057802212474514944709659026182493883805066619276624813890640385699577891462105066743536458260915726569075229920291898071240870920575649892000016561835540455712345993572375695120475057875306079542672343917406910896298796741803537904082617576054253615769135628240685110323788423463402975498105704185939773954093036866249642285028512491953982053444239179357129562293939198431949589023163526963765079231958378227890620107739916386086176352010674877287542789818164429948660695965911062502946191561623692617520718042592679310216028553621314290087690592203619791838458943797818201908249114796174446876574857155968993688939186094627873163502350070775405246524384573183210484794330734683351399282144569851033897587100313101691080762529905303378049597831876009835506135777750271838008229852377568225598836091387092809273058543196451913804939203476967583880113538810476011249663817352105515718002458217115710366759070698679185157169906219066313234230608917353606223941819748958056975241788433640969020992306197086630989860124601273925658905279447191008674397373420653802143698293904423064617089035539927593159274039541902543155355018221329894502616154900740281760594461494896381789319916412383417357349287926484055173714318414016966580562928242452559560464584332306402833684765295302045542255666134019058300965182194111488756569826332428312718772081775089293810084120075547446344574968642857585325871479272191152591279059444868381655744514629304679406576788643447775285748031850976077360881180464043636219106822286293113373150693611445220152575823612690722363044966977532644533054538814167123860414596865290898687572046407931758721541080568572309826695080080366191431214947957969385633077763930204099629445463443680943035136541213751428639419548640042490116826033451251558371084143468220703737690283258230068562644390134023355867558553814380098158496465211520509647270887045334476377626521078879439670170139973369200101602375343329503650648114245333053584073324067301307074510864614047946009900767266448765569605251880617875153336113481151488423645111555223151671681678702883435884236924129440577682326935268438144705825854928463409072567510638866644761077218396097199742088063499922008709371150181613868785012534408908035679235754431107083750746984055266968746475774028320162328020865806121911144516010519815088945024580602036446663977228147186931309349553481354010897394313435131466600924873584356825954845249948278264556238267633810293662432759928387502863193134098744905493068783040212340745952230119690820107268888495859951291796831955996985317939314786505439159786310867089970606707564694852597287426867302453003702117487131610638050645275660985116123108147217581310435445970249680524026145846534175716394840260323504579712012572546124645341415582389032185446241158544341880846767103762851158641247129444638496512083327064155613173799479161742224974181591918346191205728079729052816220327952400318081833613136471555163868748572190498947758785483842179825791418736419040960276654894394712250596881681804748444925003632479565361333634515018681697202806063309911691410985180758515163262671317264501848306823202638200704869978700212392964534813084288798635027549222351404382804220669612452959269398835052858602430702124526327966517844384518540313621322720587959780043343818793171374581738605534062063528807100256518443413682584097860757788386595094666465692012951211312433641503882233865851950699763488185929360164045532465076766188455836111667399588699827203569383697870405724854283451051721849484946912566918411359476978847156916022296163557615923377470278019795523275293725919201468092151857788694190078831629057075699227500805463696693332233782496516949855009890473830603322966523336541324833793966527326200448031865341964791866142540487526422775846828098462470513688104630544188212399485677159520311792285919048697704708246820817953928419535721559273050927691368416242004343554037091736522594762686551285768670738190602387041451215400773265487969478506221185656833927902653755428872550252519808727568182754409624832027927564919062997293467033149102779502451493290229811271434713823755902123944223260855220190326474473411233965409651579966798332185056970342961967863106736287854843488518264805539057811605978774279983053994567130531745225927644858291602373933611604806609562639885719171730374407130917986948391992670700915600782446847692934795257143559652846554246440913999305503915590423067677266608311834457067114863520651348036663815065801424031182311757812123976493208897721404536276807924935431331258796337242543606746336537828423089343606252594783915026698822833487276452028576778490042522260479105847646204480700320409966556470947107221480396274471266809575049625743570901361666105734348081987795425790912037803228201051561663707433048753873863718098201408940571708340286861809517353229524653758423207744546496875523020866235306310215512630944939166429867943012352514383388113055567108451736277483724831704480354946153254368909907972230874695093643893868028787463484354818380265445124090793591081745052674697174466986405894376664408815819520424647635316748479772102905620289174896679105014405775381055349009116630919453712480521100924505907824122852773193705161480809676355814749445713392759278285242801051349420834800629902210111145263664544470587625387291114230300289691485081005451258827250764159530834052706102243714316287637422113747643745966406477296150110136631832226276335000041799245224656599486679372634803093962967119585502802350929017587012417502962309079139874975674585716934455714738429522651549995181928275089907797363008730620600603047322030391249286585402024443075150703561253271488899365865301415850479087578399474782210587283075777034720440239610455309106880595900328525093622541078271886375052423031053819660172543743691556245836564321812870479223479538691780248412889337595541094247880899177052598440602094809182504542906547598243654996734088949061512150159130252071150910043428697549761718603201875295276231614438089515480043294839025898116477585624508877453837879723243727674053085975679508758368113813714058650485632830027550020443404375239076514998548821104311718516464675096367862612427047736593198153480647399795600931700161008120966639401711499298145016433167279111067632004126279673140550887149118244007136331362751211206466708386381434548026268550198663038566919937466041395136625473530779641458810177251619344122178386895706424834907699821303664067811832103625134120688113945035014494798297655257872460641571306940769232902698994720129366923193764755561619762730285761194833102793515240371259441570296174269501795607066425744344699458673191053890046412947913155578097682679777565223511078345845687179467690774021496930478973255411203483771543423224041095315063393139017235263368618026723663434992600935367104188917337063986098238281712098914525963428922262618747710216966365322792714741843960736699172152986093426245875687221019502135609140062989741036637147053503682093441342577073196587250317820609160298569034395079460560065312097626162812921321400833100999415792852534659768777347897615240450286864025162386136174285928494893710876910349431113428082246886977598275284918371471439363573598709655133384453963956906387704848977360793615161244160742683662728353053415639098188950354336415421701825890279086344802643384908050246790983376249320596238534042513050340339288036673174703274676661503700197314978171661447767125735887483333819474244546005847430687538458215816781451689495705391224743236170657337031321370685649184043400158173517668987998814723364096063330160978062907891174035116711343689047455900393096848348125670699881890601668303391533132040225969462171685878178566967077997110817395706120530149552024596547238135285770054431581706968074629819307889409673968902150924840613285016132546873571095823962816583806456417337708787530661045957900383811115094263976882896056143115604255906057579313593481930694291915517105408012730525890163804659370433944812547186954220273429578988438569580395664127470241191732109128608429281686591614120792535063043325804697107339396801136541261120425202323581504571880985575263815997041404539491744465699348681457884083552799220040788104058561459672238942445875577044386251987936806107084320907030264509966314452737462986047873947321700469298360860010512031356181541484758327293443926890299525740675543117744172820785653396910628855649970341604029962435018920922884543350197060629531673986096628694224668240419295348426724723681283267936967119892863778864796781974376053770274541057384819362137015371291582056878808990101391340955722594079434166692103063642765601101202658175957135419172595508189284101370138050859915500934255830716273014724562213892385005283160154736591959150115436592395484557465708300011759573241104871643083623197641636244580693517900169704423700644965139147334985361082260513308581129856466530462076090789422876527446785943770803292719280530370042846355247167839520284609758078632606951394302998188817080568787901600586406019232218729625671601444633355242465306247612684212054139559976054616277851175800764659799751037634748443339814532117506578364593249752116575129949880118429466050648974562237954459598518906117288403769579594957964979180884501557072059951784727264029383289786932949318645272686900869276194121603135592001816425264971968360602352352901433061466781725802156883406115906897855157846946948508698579687393648907720481314175413332804079605161801287062532194733886247432779065879670906950462317144960079787621678521132802681505457199438706751422511531826288314144759067969098278986495481365245836482960589522441518081477551825896660248255874306549913601941457164294950567949261745978584300572541964737543600275442032551849100871787670335883999746332560167675153621222206693721492900633250041080105847531978575546958770556164459690486135548304229946350936164133689744546570421131433739499187430629147873115018492209829719291056188604849340939851992273419315857831968562009698575481084769878096350743915718374135363584858267038981567658214946520670692033402742374264670731731669725078739493004490875028841644767970605905664805188179232441750908262285531644437518303541463601490904966348367193639644209148254699241355971111272885580581531608013696783759677293692813012594550088284247252832656744429292847478013829956359654017876279546237604938427417592998195282559345694146220673322114230844235424491759644522005008076353705514295422224840040323983258258715938676678567546815230683719971463384241418718838945558230536143055783634939613006222640036744564529552774482837073292044368744690511220031857700489926802679529275311218432226470895987000113927030889125709599689163345016826222857892580820034067985921114233391452480471738474109473056997166023749450790434953249527815747994451441470653747727889626577012849741609101993098677117553977942046960686285095953254945896415669632370647495675460199322735287741859619028384494980874578665808429724264673054805857723315657950057754010700393618043392070013577939261033193828574311191622418941447667567406066201050559736900394502091024807709891553286523809206725008023111047417332698868542846080062325966329441003689720337690678005130582863761782598253140117336505834239595649931061952574735424576382572902639891364981434580616992371942375306043310702372973333804437888979677211911498994798070786790257424262372416822701231834401030058303032264319800273026986324287280058190857891414341796042790791169861812672507552015160739212916313095081080375878394898195378165649606869257223694435185601611699833690074808500414614429573704832197398554461913191133253805434594750438962086021928774966944467305018728318109648459740437030175099739094667303735969769348147955127605039410638650512974672932539993633980811578176850682978338845394566370264976050525789424665910819223689864537493837047559156517080432418844415674848049211482568018056784782124478965775519411520820453874309150119057872510315828316860103816802877406404699921854460677287408731804128277212811514249818899933451870792709868784074899720343851398155487690808337362076193853065406893921860371835133410506356890183932307229388480375064037316129582881262588131029986068302197177021669422561962787555294842107895947928289080886679936602666996942804477492450330207787781066835366719454238978771831978571724912638539105434695729552198483367432650546569655628403888180797126410705677937746987264528176272506241508251099413067471534264282216843183516631788627285281580687710497887448440018872740155857171920035916574377176976627263544601408976140209325167990058406384669959565105067897753327297147193366488125455131706243290128191384391461527304752587490385020402379031241495471100627673049880365291984562970598892087889180014080122892583505926881924768334114422151631840480120846811919863073343511799311568384933880998109564817253455518042765354020636058614113706338108722955731841225913911187371655691891517996545865534008761535802790836235061380398318502710318253850127066016170796718069683964467758623775515854799516246589217829598861524395855555573874187956873922781143863640492423502490293941747308240691009474745759400205405818138913755308724087179057653990861261265268234356775287179609572132809778703539095031272956639719805870356739347709215149152820220608802251102439406405404493843200822510151557717565748592230523767770244965491696581088780336400445598928631047521085233018069468302847476014782767432540148722261622838317373936811101035945781476755954569414772975730603993719589883702058522507183814018874780705685875292550929571367341048406624294363391838019202066974238121368727776923154382834814280143059047368984933921828005896711109707418439260039676605401241064769326381745185091375682029637429824324934238415105333706114802765180194471959951752289484501504373748790484408766591863882496806438914477096468840376687696209621495916946622207333299537300011751593524825228975971739162853118205896072974805757305279039188868996976144812203201468780037608969720521570280010300195306433603557075138174073729359000912979773936643841288861531298424998584532802777947315846112531158168404719285138374880995720300364119594580153054605834001160360368068924610183884828725715316763929299709704757334395100065230293158337087636905750916187063755379761089153112112191539889824969782226868590914666723168398011195301821257198216402299102307844212203122298276603631194385775878061990486179201800497399906818206049075591634174900340628927278829197863001377990245142166341395739322215325168745029463641103855255323367878563882261345408177383433954091311066540977873473421325568942396049070786802563878523090434220075189002024126313876360768190181280566455343195898764333935241330740297161398418648509583337444787042751467861882715832328536214612098216374952026693189865740477464763097681584414244659547670494175191888209383191399899262551196788172618033336133514047149514754196372864967526640000041451296147962607797340257771018681624374766177698086367530032690793767512462039048628778594522838996528868275085026330796852363412887391084799014153683766683041497669781845971048042322245919420097399159835612069272348232950735179857031949952067769735918479753755364315542368890271985119831303636085136891625977296083037748144200610285417994659840727472678419631194846358215659859695677147325638992356878278776530304968294795937514663319933206336655742012256459496925297258718790805655629301914116981011435692270553223602809378190785963309603114478928703284647663794009984523388857502234881438060203874691465512069527513578770837039632065655848255798446501768435175010626267738937734935612275101364895243213504659974406328638320924829126677109079775286369678183904542188280765094025059342210522870067112656253309405110083443466957998617233902730891125440457006131271333996787083626005491765834820612014836127740142750552697598598169328453576159965929849968522803022145274769844716107451545956981661193355298092540271289935109776430727339853317027937774248388447137730913113257428473739010392761104571538049959919056856832523235556445135491436062487083942436830418746554081917116017162881401675046591071598512836082187657143577225825922150339760748476727508492015072452564722740069318574982549109668046527016835372049446523379134849510215334049195423233561743415760324664490467236788422444038008975544635856852377402373828641778787780932579556025684633583706112847677539170390752686624805430628290617977877533152288211676572656964337864803958099192957218127976389712482648416875463070776169811155338281977157229532185525980179210715457096764749263465669956202112455677054955510656806532348007594842790084381422358662312949384073011556026867118842864042364045253559664638723732212863577088022133447839830600617499733826445049971822288239851959541334842678878792980836474206189741904254043465056252924592517080867302057425926965046041159719524231492398638658858450376472148180184399102222446579540699602893797562329223641700088694504231656672957471025688499726140766271643071970924643350450811787124236406323620680955780121707114231516250416520166189690697926297098523740680825578859004317609750708420331358677041312623854847349198891500229879258404171256405955538895532693436087051233861880861333154734465402106862309365591956291547417771204670526689850743893546964103717127026460235894742547867730489138314029020914396670769838651728791071586791569638881400789636967612058058572717937470802520881199650596208427707160911225581364171546553752954951028508199062221373325287463917148479660023590953029767946637166302788725297084117291328640760730637643326141911145368545922486460685883916193360167331405640595331989671399429172038487076699881907260844858381877380350813151479064785571513406150402816923251516199697668098210997777279749684435637570041484888173048561454376309317101607543372541102017441023450666016446015275976748020640515124402397500050987989027915751872887171796302528369084919397543257698832044007411567721434246764264040863287326309705346790178080260068275422198535463575020149015773402603440449390431111533570963933127574275705731429277166108297854069899780382590216925113093974710192839601323761265516119092290343891537954423328532960980372011248851629185800616770832386541147650653845657989079928686321597295419952990884511440107941375601376493601028709531119200743488002398254973071278224133005380098430114449889465716787799568105692723379723486591796827443464985510241546460973724083724317919737588822413603488624116723249062288252737604186779498805050364549246600890974160853640644010780657635166303573598402009093630520820316312272609367941793313985208059860619287978679788546544576441112896013922811961209008009786381486008241233432085567472100273743422053303727251580333974524155908272738474251398034086682420951257237769784865765801460004846697385400233793108347660931748341649595575236538546552386505476536369417859686726534966071144260617303987631372359247417685106431930920559288090469060539161557032791824525062317076753588528383355460544111841798349380934117550505741094634025871066344074006115394402127007182362791732044374735390407812115972073694746326624167103682307951759267653141243123146572148104955729908391576888327517987090912946193512359608843341932625592193441781064718056350375711991339779101082454506078298380413632434361054987212651710410114270160665910026032174642274698667515306083055274511052770198803742980691934559709481611072121923289056096975168246232805492389464823418153602186581913751252744864811386006790715380393837944446330297583096043457947982312359495707974704748626859298180110419668390819023200462423541246194082390839049558984031766314458810144415033190425797570963477694974308066419135437557920281391364945735842238950805784459822678665300919955873099132600877180506809596445729947028437872137750637751393043633749077182682465171764125152479533691686454115010762652025097739711414761675737033102193623515312219154540006030183637804661724637755771933244531158735047893185503789964398845896525063531440255334546488054519967425773044950630957383891981740563155482514769219256991805313098605605908957823556517693936907288410243739120863394163724729959092575044893673642366222108411477396877115413207567530345246636285311218433472202971307951483706066531516987286940245155037084431288085689403271003350825212948217670931106842254713212092412919634666131881408074988514869117337151005920113941341140170594800745855357745572586258026824818964588809750777014579733278131881849083643091713589318536775946275687104172223478720982768518697250775077514049835869098335262968811025939075423499417090560053473941604129208392403126507649896072065623622505366984594256069341897971812712479292637730657551631080188105522463446076123891287703665313334171296050323280640452418909694473040255899991334712051658294387645688814633489275315118899870339381973635377284801050504065538580239613522429756611774282590829638426242919422158051248208999750500782973135470983580032245461537331965104812404550245120957059615625011787953196947967496456787967156150705918279832399627762352811793453736895621333721988066577611916069003335065427352894684447233512462062761796510528824094056430426292842610060280728066585115134171055499420674958031817864993916377311897791297350757514001384240231256812746793521817145154112327236047644156711322847551576482257215049271856494928212448726903062849589357160622414794503684957297025009321769723350080811414886612006648093864441417990476241229921743053169744247933695500029248071065179162677616621475065229708417699388118558991865347982662764159855375351762321106450030614277742994156601226279788375701334624240542711662815684578099879736159222879010831033233322147222040860063273954337624960601857399066013085639891251027720974603851763430929455050728321238475819940102949138245394650633909406455596031935981991321442410404890254742276726179758663432712642474491387317375922766476862687058741961674434975473835469663051518956732973998346097541448851489137598392614657994931267757604237086130704895241298614204683725736838474328290277508112598545231876316824479185912298404074836411694216423176095627824270672957241423310747363115244530801462791935435275068065286218948101303339404991926196464405319323879351158982028095476674697161071226603194313330550781210297920721789994848492791089205662628188752884722998478793834289326009202627000405053104473577154007411352013754783283777052366021950635881373840791175767697436095955871624540752287395795888871487420071027257981826724702265686156230275303024357082054743349837885851467564826348052838912922663588820470917079985943702475125472894343616100904172007549872109962784199184430364311516668959107727436212646028608426986491375963471177499634397651559709423093945709592714025589254818217093526507238559522006038762675704007809337645632324737207620360951769381544299084411419441497593359287644755216022769907401697470111609362671176934620975344637026435794911552784555516544549502504577214059611208683630138756376489853791184651417254305323106424747961772937927525028671961973374219787292564677929137580319172163967292463957065202526121846123602425028516526408575918985905697076595989886833166694252928884470610403985125692123271884993904967352585743239057135555786731390487134385159176388593818583365590660759345056924793718492370506896555856910236758389800957664709362649030146521978120368991137548797841430346880222721926970223878584208609442497020784407437481295549632856490494759002297521052526248796538878050931049269994322923770993474924910103069537925100969702603411277726000648827954072339007238528601720889321036362176589976009359029718593806237439468434799367645322279000882026974561547077421268344060136355163250863271292281203119280326376358015011770762247623886765351588113639758748837738203644975010009667405455151921486121401662266222878921710659086358646360829157886715078861089797308825196484803168842276696947940316881289536638638747270143959282331838973089965126799314140840068642731746651401841944607045991321473173735683351121028278892261352427334389749757778697048449931520643639380739262094395173621689340400748213695993561617114863372800555227933480073851281123214867778483291807874699329405244363998841605404279617898346067178531364259614388561010403440125569032142114582102653680015016679562286357887071783934172333700711500596234704324756585443023422349558179704542374136304772877011902951465030215126003522338880337727757972563974277724841105564291809908584110993722747226941717038293307723939970766936636245872095151433093722247265819163337251547023835903253060803842735052116582520541774934025281636654781140892107810401187910693488129245703519163635176748356570219657194818147582096223528832042782121354667730166167199562952920114978928159049974441078226186041212279779743231947173175074744159216511060175769427269155758847136113588705300738736265998206277761423895217932924696454016612418561657489257259135319595798613513537209356101758791117851912656856495108096795406947291298436303333284141363127699117253928714819756420749746557520630646657503571111381971334619395650826788723665601890774057760329348966984801184118958841129823354594135778503765765610212860428777086597581895712798709147665891428543884540030881554091823845572825761840884330129401217737997077766467472801225557807681156027467151407671190963591242849299443266757159597050084140517155428317718358866996157737150715797179845966684102529750363958389920402722794063992496507567336770515897558977871409750415920487304816825649174457439122669200638156467345526522934235183374210378645573693197560765321633532531180864760510669625148158825438857962148856373358076586323685417450832036643383051544218329295421632645260523348062911173399124645169757134473788577739458940444648980197867120166635216618829704366048991569031535940365879110218233756306675990574839195512118006523276981900907204723571025945157523522437454637224692993996811197070029583237107055335105729927485155395753409321473080510709774929575781606830089029481437217789992630308815528092287812483060509594697161485710534075801451789291885237079670875505764643664720204911310553471218143268285338958298391499033127488067674335200319130675679776194512102059043819797986457541308875177899576125811537701787742984873276945746897450716306794827501688199236534744308774141348578388475786704253640335433641719874301375867957674487007332966768768911329785491584679241509890062762951362390288870297335327782199023070441490057920457272158333245144285669235754779666001359284182858708209981559942059461223009407713209687466695274809343302745198581975395620863724027211171637857797228430255079664555168498953454118148086751005796463997302210762697346261477028468468239998667349604608923136793080099665907872932584698571212080260154133369720989074256839970528310091241275984006429140851041380029135460877499089326544469034098140909699461097291257505530922647113427769558765612715605681124983325480222084956317632165555873492512299874635447716476538050563671553255883178789169884157709335525100650575206396432826026328618257310085288905715132673057541218715961447655997042547528412600869707714167793083957040687916641801521310989113084196823286149969669957118864729245257970793784648721812205805085755912973243700420884303716177244555521430152507863425096326715161312362890850560851505424180492363137432412120586763748901996444297788917452635074624279702016637335505279733308016958115106077658405188593390234701946106542371896486955171632787609264030553468915487513835834242855490306496200069963084695348347692423310159733930625427392850488082136091837163449373446945571992487751003521615941752784242216593548143339548447879414142222762986440292745011559855348478645415244021548610792551059217221905609713872221654101827117920507212934157703021169170283892112133135712460376229492741006711512414703607101001838648255834173385903716349682633866878884993130591471735632237769856974625497892149372407242513505627125226456011426221953162981884366951889379922654918192913792013374417373802028992942155565390812284858040251304028057433071815170458285374103649037004198502955420361201861615851519440376140431872538011601113986015034436418098766037374331849123636837580501051079015563525678380038115559943953193966049461943760779872688991753336014114023411143697179810554548635414861323550630280494180930367950931645592383564736723735299807111485329640416346603048770946252396872699082660248942347313559940499569839513939268060324497402980186350650737816665576646440987028071097285231822703671335617530256104896489565847238404160663320913374140985547472365028723243806786509071607276921144932521765345861272128293556655343896841007495941822088846643706561762605744148292368519991917348937666101730158939489727344254712994977579004202516028447594674571598410146576717483357106258642701232487562130708584552023056913525643071611616425097655867357676494602400500512108044849024550471812533875838733153719137744520629485905909343117639819015596407822080058234397553921242643206210700377691563624302814764106924965970745900883147146518815458055052897054353833509647310021696248765312698207594407185639859529594120412790602283814990467144129707438263011968776968156913865838688896555041078779357385238295807836161262166209849645634124156854721492016668816259324874971782323750540986512653689781708174440669011035379537820190741510972154962202304220698593584665342366034276888395164491745747815495552759746530747689543424096019286282500444136016406542797693555736114214242212950528314334455309137060252879246380424479832542130583760154915218783234420612627647999303175846484507604555074973171346211096515394685318560278685662756769731845703578434055227826544873322626149188495823123170467288899027776433586000724350610284402512984383125148649017898922509960814306125763847314848524545740666944546722572001532027710226670820760113677149727113349780924024753548351192591485666547257439511765176174854046909503484433184344339329351944538637300051104119461902118175103505120799324097954320830239324953894643905413122366712764811336625750404899519216287767614600150274863527955043666941934285978768440282007019004628972589218676688557880221124785734868104341750727193925167680142823321103983011159191677905896621346004078349210422788031135503553269776025467344618390490685882181846957645061645389969864459792538371490720209462308848071052941890294169920621752226706867057290018988330213827105065962099487315297582132340601140919495036120195095094795892819429036109806799674607199905388510312993668238512752657651168588834452919205122832778170929001787441511193088469316932660025850205548219051002804847026008744749497247445988091864734714793834016775635932835459602507074138056553054097756355313260609204342067205574750451528322483947828814839128550073121034991955605540132941085520334825903926536019105648220097012739395253993809823493934598355814182601808795575361555956542089164905483589192879592034360686160796046805417552062919227805356823461437045918851950118884038612894472911365742413291592818399348010844270060309170568343628543900314053759289348555297583581195821396958576691298558136470838518806636703600663110518918502630133462916801718323748252216703990799053000488474720963911165136320424036706422983786269289864904196597937927183522682096621779107408166615105027101156455849610484988159884832099063257840067380264014754311437017486487219051094677776831782182458926242627241527734736486944071096252717648682475499463732633690624137238102905017926097482241055702776538422654282647786780421407365693393116329332302848580509990218535069238137842105926064614557386937902237591812779508620385097818222448879846837823577083692976333937695636848102189473290838984159483756784825876381415012823045238104449325111275602566391160767905658261842424109695301302300407777309252320146438437967499559789481593232659160639046569812347792826419489599685218933733124102609050423611559190948179236276993413273088142808263888800863819959823335202235983789126676858797789732779312572525425702582673476375318082570544962308011637702925485217535749448249560637388109373684650506854635816066276427822284903217469950788918401988456048146821759492279509770486371432436673342592742631322648577497011834732183702336786680115223578969816214919909151928821851866310319125697635783712477202267081196194382954121927996781770951616747408761729620191196834555693354353208360503469896317204446617508581799648769989720056927126322706271922935472186223235472631685789901066978492466678186534546678326425951133718736200335925967203914805406977723383845696059414457566344692695185239085665127958376309232429617212478929155283941205857035778443483146678852437037361252668725118126314869994823363376987835050951580432878559779648113353074322088691704830308935917473128169357202323984780598800549260483206065931991367102312764661179009392845829725114974453186932976924140692428544309156418922917295741405642298852051015824369822486886749516724708551728079392736892809325504515295343954210824152533663445630765342301422036009603338283769351382421349531865367356547576969183041817095312392413865242290184924988821440075339306316204731325751479434009851249538540916251924665824044394523529283351607823446305450292314774468245010031146862700974756707852719304626010530887951469995701459359063854673690524346846918640490647472832458382161463988200471828409073058282454163240423187524823968281985017324109340187228689206049817871322090311687773021162535932700795348397707915173264283007589540627162633628717678302529176327855126725176216243903243288206691882310718085341382776946496995617914205011848890731646354645364311744406099810894180668993739165225951336466935801337928502879849241002487932840915426032133754873785628453160590532864051200570516792217187309540443646826283141815603601934782955761341463658411828274672312739808318377193786566165669275110521089112905710297015689418297639859227826638216486684083033869919306271752547310772435938782292079920766923109699779980303219399630495897249704657513256957392331362919376473954202134778263006166011362694167536900010794335739241085992128713052735709769271138856173187535840278968869342751073728397062206744532244474308833578184256633126282054236810611447759912736514154687768352893071937760213293020851584000531145412057037714641921655087336038105945456684976967764760352238344581755526476360858856622193640044138103612007326631476873263636679189749961963367938144479089788421238936087337820432425181377248141754640549969224987285032754797783060321072191918159756787374704149483126271026419613492174885595096404260684516072632128393712918212176735301260848972965192772026583743016953466011626021708007993903047104457274273862077083126582650719230539022246096899825161003413486929921652123415802682718740374969495775343167951871541361982156334180565115610135982792727914805317640906499826931935199076705328621101107580454693219230574507525761409252896942449341071535764636713360076091589063498105305698188236325892588405583708722211647769312805455391534957235591230036494803601916164056045469070031287581882474911669705492164796529820525734294801477970664615338460308339197186761744837349680965259808614146750866766234212379658019774381770776695059026559395722695365514759027455847732008752141549724145632251586583883673974839885497108032337949829290216099633453355288277915590941410812930601358872065292284818366603908636629221257407529075199033899954026172232409757051125194732698860693908024613898998369175161549773699424828411500981621369504836101765740311402127390159154693082215882945056071792645970346999510763186952832698918858650072534895877946466570825693489335743435148897524558391359502406984168025837410259071853978862510860754823282321776347254017322631392349838162818583258547886846627016715417291394144945219584132812755322575866776464450465328901075631357350086083779552262268231972396957218049698125583432171180874149871959853366172243478803287629874363121008984384228469056316842238102189754115373098952916776883049107720547263180382338928761268106952722414402553692695059501343911489182103971043955100402191660024066520755772892659012302528880050969732991206737248476319970123723234504353051301020049845761437341192649547445040752329081787851115861235439498077275942016489827886560963668790842572856116042862002027198047269903269192181234936450475278282229907828280897840708142836503055983997093866149853473537102531754832459817759063057857631298901832602245355618559822573355295565622391218416754927598454227234179260138285464045501224261187880895585870588806367418078122864039426058477328059605795162969422150848440448184145768534145196563620843311757540267438164383720872828491408739428122136165966665909229607797375277920198564664350081081663240139931597321247379569366420247146999757530639686110731489376240093038750614128016591431531259083311460036198308717238573781321713621727158842979756257430689635061836154538899927723867471951512715286270830104723438739790523320329925280842770790621619184021177375460492418978072194651720172348237530803883933933029099370422059414604623022407059410030297818500896631754887109390112902713004974864652496311815360467036389839012044983613347920393126218101660481249224134002964970258007924103706591226547095129541261747902322240171438389873748580476546004522651563025900336951974243816501580546682536448869995483680442140954201927369431829166448343606171893123617217668661473055430368821118830739368008059573159271355131844985564536006620440852323710281673885969367576706571594814795727597228230551599207153622474880736662099526979431409628644696748965483191530100385152734958253587148458106443030770045347353654999345355160879456699505736370163621026402013685419917774401222228019253900287690614713216318729662304475901390402385494004099712983109013423635763019109908947941624144420763100026645728965732050215158417872834319553311229830799980720579588308385105469795779896297366838047837732434991925630208302483746618310775783080965066833950370786816811048086658896088977415897369831420624692344158414036676138409699705345371829339092638753033918004875270590329359358357100784563833899087332198527101613837325902249918218542501567691522450992167881562427021768189624521756788432147247919715988412713862979455509031777773826681287597871238533213588220381101834796819116161586951075528518180846148453940576384716868766994734145795299946592820242556378218921527787619269454256528563779446284485318341563626197058423393674038197598914458559164630290403881104819952279509883607814546189886830347023588304398322481294240810350709290211691644213187206117325424984156021167560949398885220141179150252390516722787684473611593781497050416689246688023698341357252431808612780948954894280372996060142195619415140114788572990529152533241838204912077379853070949716709202641607163290410524806048170086384049229909343089295023245173862023598275563599877260833556678499747901932497266406702762710385629317791343310593567578980490018764954564951494307263190847569358225605135454620359450333806130368556547087224876017807061446665283634266049488183850689348588643024592156848081506151554352188317826827889188680807046975294743669811236836756832161373072445621633876521224395723550196316079638609488835890126846100663369446587581992706109750756848781464502935221817816808401347784836210407497378573188659531846165651390265748047065016330871364065261094124938088946014693197536185374135894687866770031693626890660794969590646152432974209758435614278639426988708347569570343556558900890044127597992014414118130821227619045158733886015666097175031144827241855003710541800610809955925903114780160059777710901842933936008755326524976632733884688092830239067198829136265369303480334622083021779177383403684039954298397322861186172017610607987541404984865057953183846721282535717854919010821437803894519854366279980013141849131902673874812071921342100131878710081569841251896719051795820956442676755476249079662981658105534087076568162520875600199224205101885398381939388793914722788293115764741981601470173574996952369739221784254437409439080856310916300685215659075481114182725961665630825074994344452401426747347675981547444523296413807779749322280415513707039489273348609991412144603380426429463758582174112436759553155323043922906651881062212624818262201926740373005240934678566076609384691684004603296480813133990936746174448051539405840989871820732250191440888443732023733674009258432394917967441842393458491723621627538141909098485627675379580275496883637430874108428982239048988635599093220848097745129385854000835158055383434686040354504070563078045406199270472409488725706542614465363689627229929550959065945263373745411863251062977625045777265667304022017289300204504468429940607598926692007872937090957972015957258911140139826835787557388243145491548452312994900501264560639499051637215302449197197814005073506455345003614169088134799935141520986739313280645668249106107307706478357655024048747157935788488177004291057087781902871184686435494191180469017373025440703572626151700081206486676881274054646559598762889477802080658610892303484182332829657678115689343639027027942193392756681596247581027077258655476156336750605070504802545207900947772601281885292318797912950877966043652192394211540560449484544240493555458831879055005177928132713461696787461080147889795052177323467440254460080432852332537081878923897318860983582732800255487273043255978502999709974558532154536377790342260563565726152143726156228942894567076979469846712162189931892316379637108983157377146069012806066432769327134907226881170354058345631514986011167040756312383673959787759454900815653140416235879946749744048542077395295642070011532641201026147173075873246164000136961204831601796155256480147719015841900284510893041240591153955570364488965638708154286617411408595959050631178253939815921879998428250198763677625874559917209819713810097443160049807244928358053722983841508002581193316598018683516847235692127668469706058258979391995276643217231223798368558703133400796412115182989901579327002260927137428765842058577791668927890214065121593374500167915467128316688066924686911511990882845803838078623947068034992173830110570939749692026908932598946921195144970440733339590412790750953856540125298604918715979899019342486128132737849597596321715276660117057839399418966664171628999122956099050391429491606171921812246568009724046819161818192127452085736680851016380314637643407782415906676317725007420109135906930373183506182780892892246728508561802589492329923042472991091098760699806136698451609357762654291721714383954475701476349176297963589812720213979009538741482447643167473150649643820961068412214083800055389596457664886108194752198345235602384153797596471556963342748001737990488152758784694592791289900064859694198209054791005722344679641889055777461560401596852952613767992764984438034740878013513876261233579011688011654201262305763056304308714122761169422582799652898710661352642177901441858741226853979511019088951990303847280395633292473912317702583629917375692760366101109311102424050214518671758224368175006441392449842749547909537987716883797240102524479060842727061498736456480247822566080595642816303815889160824258309081229302071663021766554627607857188332135064364255581630375051358629603520473134224008971822804043197916844420518426722233938736506563603897091002066000553789772880656229675874161431140963175653711171642470668257388945798333026269847859858446926255838488647188180448559647968670693624186139832995664811380712541990314762274538692027112068102985428871993471781300974421136316451615401574908728816769632933481232822947642157170723630989234035936185539555382790095017146259959923887348087667629238282139483832657245827751376160889796363778352324504796611294625188141750968788917374599625090666280458173637902718221668502550256657533225536585660904427811167055339619525688870452727132193735767288955584740253928461431196562365041101496834686310259949485544404912017942914975778927899501307846917470047606103509401693157625698482212646581453055649690092036393027517844143674756790804963966437031616634059220608941795164819670089446678202636646664320690632245853793608218079132471364409246908908747504878356571986274287585422238660552988436633223256602782068564458512038361782910526047181144620818407437165484509590623865447516492337787300936948296472528508184502719759762586405926667863498348633628557160622181616861435752045055078978331981989073979027682779890263192144555506155871996024737427906376917156768318487870297097812383495381209875322461498844821420395363281404189515102508964415841132011589456133654934263469911233214887753639826701262018693458778794025227895169550772544671604931977712997830473950803411600942760676327122971190335415611429395730864531186707109942148445599225990052714521028530214622217928471904928293388336627823499064097423621972920797494849534275091662298823106371403196689567355080367958070760138705356977400459604536252966187740443139001188851137712388595241072273341958289232792236367185056171093541842395041854342619323954220074572532222583147194397687211074863184636289348532246011705326700280965416014935518009918951335824555789038047091213266760932954171876695584350390532889586832626533325494848133497200101429145462193357589314129984361580463759661099798285970591512906429213046166610773335583531868894250370108851400728787927184754918940658115794365434520087305027375197776500509398250530171600107242413003807543850987474332662798481911631035900334970925340246957030007820652324181790554674048792038626430250451038771978765984094682501796367440507555674327880668672384467454376788627269408525312716276027660065918416194022139907625617303341585907480950700238174645662681766277307651732628733787486401827805343826363200046495861075045783043649930868965997794094405422258446840742380720569851231394689207252927196407878487012577049619442984504133677941487041527208730737092617502299153218795159140936850407421868253332680359878419617943162523927671558457147037864465797091600890002059141330046297694402836726830956524642508952473421461762812280926905689284691881277291899093226037539691066278171157698819662837770444686069227980602740780191359187917365051367930726719919773164641573904099921626173153554526071348079995296761782157571399968722894776001783508685363130338379744408014863038317526415766172254265970963398768288392319190110300079663782243149155148673908155499785121474619619942176338792854122873139504369552764704822402776348387157819076142611193482270223139964074292939628525053362457764319398610351322438804049383644767191009732955346115712317489014589588660299894834208892431192713979005120641827482434979366347759692255198612456194364217291524255951431777925982246234537713160138771428446883293506868954800367487134678479944825427401208972632684883846863700550882794373440792786081770196105670499965069205611794472882130877087145969880611166093048151411078915909183440270105075370711017944441459300234239839786802772178543926706087202051610157629848044818173093938325576571325732670275012777082917328066145175652593223160621328850974622888923539414433593557049221188513709639205592166911533566010657599067142803464764181790021628182301955912252365449168896128819708153970202896569741577076477571625340038112965920683564717956084036640584743934519956587864730839152203195624484319363994715011652568563611598204794450545586777672277477340277521292269120674575493184037550566660592834421273380544377980756712628971598756579228348306875987761035025554016150365487901831222638301255801158924441468423756912227574210714946914620368639665462808685338794265027469929064596872831904629592150940470537466353433264179108748644486446195675236857529639852205111548030449700988949994489183420571347435117584609969616096992069455368667316587642225309941476031595158652210383374552681804507602343270423884782763654173346218294544189651962113676927759864050468973505426043081066830053595179834737156583148750228480204964933103841743110914296842700702729874890832093628880070309609315935022448227214960890628944120163327651170725109405686554171614242929615711997298375839822580543697860791722242236495693588918453136396943878399899054146800402247044060112779514457357549101223637682379952793690140193860069902648657755795685235899077981563930526721799602277183524107723094601162023780314602463248143654064534631096819848760254975982716982290122028358870751585061425016467297154715136124915296946764538547662915790453897446889194816158840214688584314566380252404795856698209835635120862046033091056157475153339611494895735587215502261471714801240806656772868134511319774157284871952651561563488380072302110025859248441874489406002013273049778084756206720365078427704811169512612605144693488138505377865972832630053527790794410902074270019925468961469551838711277980985601257688162620286094625780410298127273076979363519402217058199320176939241066048220104844360328998037892339966635656766987986133584621304638804576105770878561299663815194212188201707189934652077312164114994267214636606280234950231821360034643380535813607932269120544529697447020163950696507327396859670420197431744918351443633409728099353928748143930979271949774652961167529989903273448905106427089327469251633066134088922571226216087623348926627146355915548318445431344670849515486664165404391878319941643787892250260713567761486902179146101382075667074611006198859881027183515339263169678622349795899033559135122928253408297738557278580637154751253885463625997619451988643878896726678955683130292373395929500709549264961073185248911813829705776714127475710898035658699110034198248729764059679253681426250571889731604994095230179585953540756376859191381859286349415122898378759507627779001192309459348816292159465185067629438214146525991981614697355030723948781605805915943987472421092642912007258253769466004935078017078376829024632623258604486467489804486658728015020142489970919579274716108449096625694267271900733926700891144906128553730516511827608912467209669567810852951946308794133836332445735163558295901300476274985570765115229230893301586926236748175730229339631513317711515831598370476371635330582685814950174600626878877294453984703850202641540930174826793981091162595343790565665693030450293907517362072523076964327940695082385206087726293130075185119641973948204205474522095285126952063715324648232526998601585978327284204483401868935019554180619555314063923592590199621045247898591529474781982102533777638011379608299103336381215783877017446713294921124539945783672559383526791327082594391020735641572809237223396211708762950647982668108267720311856496039710807463338497573371972281147166964441972118128178382551046156480242720805014794378251693331666462054646271865900225842804472652675077037128138386970511704503146391326112792736894228227049926839383096274378710564852608900446212858448687545561278070134312774955268426205842489238735517572479572315403087411764606022827122996455180966224235320726634096976873656683644429894475222889534113060898829172592098716923284975093025854875829278711444727285191059201599492942049176248311789291653809183418852141127193118080422311394227801758895134918388607179404462764161720040067729434827280293957902681506927433606773228917618032879542288561374114837220035077300989324293288998119380562301769048249412245463724888187620073868896638843461458603638759414582065642720258050234539703632024323536051689710629910450279267685267689949819462378299595240586560841815182269219471080200057814394821676221321138815282258771089719880615011112248169732007976739060731876584854291706574858449731898918455740462769850510099945058172579884560354475677292879412011123501732157858608709200379463671198059128826155121144377174202263430084835819201411802887009213808582875327597932977765655200476312880296086795692316445747499505331406803569692746922357124360187215054608356405008399455301373460989899211387254714483702846263946418887516353215256160408368570372362514683531855715445059543374773245499839302006120967855059743337773092141107326767413543877320304596053892552272478217110179295161187725271014239893855710657025953535537472899217858163480860403634099509993719723515899839501047036039440341881417317332413209405758747810767207290284444596024270825713471010184186844725989266851320573446481912903947843557048287070065296305157088059715798367335959856308935088727251362765987208753754821363409507877117667628651253352193369957546138385199816313862303488692256498310129485778811975704358620495015045166562093325596614255891388871125861829962964092979223615288561346051039136872885229180888226650469958221048964533487368318067804351338261811448892554366657168663773330643019507460428934206865915879263298169327950986773032876193295490153302346545431419424436059014072777930279330251359999157833741976609213296883073666803198047376353724403370426379168398773872620520233756763155838025590367334742879995888448964598816082509052135601442421413787761726064130842480156419974450675738807602596750664488279881856765286490464342868405091235469400333347586745854317115860601664674336682327918611699160182565812851933383681124968556326201278542856043522655844669572087011935990072779835581017778012205712557985747183928498466514973604546193788231686028521864541493566006999812604816052433496463972636890261265117870863545404117337134083872069229593449003308887317358231011955323042510891831543045498174505456354140772112303718602279795860710502496257258872012030200178502724516266588128521384984959048404145083433881029214687323913452452509293889730293961589323857146366704839039343172279255987341068826706615500071444894370532928893053514844110269726205863297344776017846367091568044105774244393749315631849692775853748397787301703669540870267784091161885010198189974900482996372785520941164144118656983039647915077508347198360113211978844992218984912697137471833080500595252210597684564866754379959581725234095176809479305860239206301017069547517262776497235545651106964396431164031627335502912618797940188349479533293171788940863483317204530869499480051997053176458652648745762084243655013584136997642118581569854325108260849958358655526992749095945828268763626439804573367837345535445521801490309896884671936251157128159850783612479826511920345741553073488032364498635807370465493624020776028058170163496014648061264791932786095286792504738841267996941033529157009570294705636255194714996841497467320733621696620597920788230041216242192653753786679882423459114234970857299375990482349133505718574260141958701445242648374953667631718923512623991027948801218118637909258376379137950575939438026550284206190242478777728195970146495035015299005227617977526739420731213868505104335297337764867373366840531901687358585255580801142032468300536025943270335538006743241708833889102756382396521153503254281872929439781867526585090584813781550484268691876377412771106301225413826465607551911557602921362615083281388608502446144380764796370140477171327469189883431023518422583846849845718417301024160467242305158126940165749313487547337726296300081777947693789821669277176106649706211756781582992862655544933770069166401636730599246157189502100496145223417493863752144373009376028262421320408125262067314976661712454246381090997279136814450474289942747665177254442229955398543286935735129318141837089148691614554971034712240531822638032044571853692028522444178191031668560612359756377433639794372064131088561699497439973793707639359130971556058285431749214222223083519961313505349648744615317164344576630553668993715047785391807842929175115830021143130578001035138202209408842469043246805376730548213008080142800576447496691014217094323375709336976163447712451516152095128048680245167296223434130034344552286671294564128083298277442877122508406428478548872157573336708020321005843704427106470627893595263748234271228638657139288553444899664965655450422318037600630869631810423214406254815462390989883038112883960019863643569598094501660274178108453212555112048175670902097365214729263199924176283067031546387346538564327762480536701178413912113115188315456756632612227832476242729864879212723201695262926324417765165710645165913689656542570849040452096950963032821024034966145567386706345376279822879551795158314138338549297355690337053858914843015359620488355678017667720739116872429534904246449821879309750801669538495405597727694784795724220014744428110363531493107563842160850354953198477347515172498649937004740078642382539955078378671707953289044751663954047384989888174742253795666889221011972833425118510639869934444856293828285050167220636418112165285029901180040056546012408868972842629748517892337674536282592865874184219535072629642793735009912171185506162030422507963956725319673916446486142364142771390872599250967775188697670516855401077195393236063661230781264737597678614440026038309580275374933291668260698927832146879808074044637910198286266678761209834800959849721828470971320170370511053784975124850133234772525609528806779114199990238660410557494846556440956279691609695545381751034714361874487212395155430640005832713006951017374499997380036797806080904784743412368626975284607991832466881232182157004008513208516703488475375212893933393481078135726157516423101378604313971568455445975395193025690589577787568340831132015704248196684232961957934524774397568360475964627027757426336265723907127919130076280966547936075425614794553429890314376027571013004778836527443742472024796887346191645905961760060849096064083031174729478625866549246171756026748259772513088338403260158428664193345484689740902318440916455721295572672997597342862611338974102230076177703664145281249552360976000290003762587740765581176561317117783170295554018897455104770056841026088421483459700811489954777957060055243679938378396839210870860732489937334846145176265352852236766607171531437059219097495911128755329229448457349672964406927548760763598358433691364954317152083800965532115365215387616031326347393378124107435909412293950156495683635361455753164039821339705856966880397869932534308418873833895823861625748194281339520239571409333521435681046388979782725691561335057189207780603211802871833735854319063063740039110950253935582909183748159603541511669816373082713527577040853785759822094906884836314578744392751754302372730655147258863770591792304772378724578094662858845582262469903216899893596744393106928591605767357010280781541473721400226831557428214133002468428345792406516168581641605713913434386211291760434087254064454440325699443916444344698871149304603710101339576411128314691828810005629629646306591753242889598040313983809280351930303369697125073573672384520955949591677832527539228264314286029523156896438515356094665881378409821574875409439037624090671443334898897488519303889978124329556178586996437345992285286253909284325401451241739893764512262196463440103293193558278006727073789079507420397143684399109016219271141984444792600479602329595337587982096526850259941706765068228652834903060337552828998181857026840073723581151936002436614337889794101988186174979568427157334404015379856835959934683296454016959032747630531304191027146258895758925557507887741408645977429981097905147338812575028235664061688014865701843087701223898701536421732102919553997255711298567403301418491274054349274239355741151201961051644141933395531864706443005997007188825499296098871161166349235487326804282664757743949434624045799298688372105336944521196508212982874151194049007197983614039535039003837155442630955050341744930256678644009034194434628572667626246804770059462480323596172072660249813657573985677004803349564207344132000980987530325451083783044342349889113313755820364395169143919273734265949321935385814095129760750862211335795832585601059016297151407024935637327862339157724624785472230496065666852265997716126736203439942267564421991551453800323682908302918818364733396990598686417196675789694865386698477688923581377861070814107458345683597587603426842680693778892750618297558291535699162350249373960311378699471502376835862015493687078424988023928919337598380982159283294034479650024507067692165467435853933874223080767519892831034691450986182694277823086516010892448846149928035965633749646340311657219389274426758997825757625625018475443909278807500552222785440234758047300476002124971145466026966048199570154835421092867503185404557167039206883799490933589630626529401089603454028121842503759670798332275961072163424288464745573782301211598903000847706383404365977198459737462458597235863767998973135527169471661865137436078877481917656328014698711205677816061173522758447133698899256156598025763962983076178733911309614287645436126333914344838584993051469634520052117549164908601823357272358180704653282965726554374189830520290378327200557859387813461120449597203549509148374912283963219536796911225423316134418259453448585347856505362953427255858358639523978340591105891239203271940465329956118467960231082473200888793759217127752482632779753951608237046435931605398484040227583456429801457788672630443557629473446703018738642747664855556779917566823934046439028898021623102220495873103518792450308891759134236697974920296896985896884561674006080524194488335449478763448888944035366995110595546646998966181465330829403679691756372534470260340253786616367607195526017255284020438461175321696622182750787309155159781790083471067885146183695756994551167218183952847311183334575650744426017224740092235207123602873705692967250155915622267403064201316070585685206628081421264320970824040354524269058966623671177238085399062630216037822313806661022789781811028719958712767989925461860896814981632217358506349696070949748645297988527082026344066632942617092177129271361659840014569398242824541380032280836734364068719146745477396274483964843883046320916339565523412168273247939428003235896019153451065446213211224431191805177453100318083993281235246816783966038663427181037171719803848975245215570061259030075276307175769355409854495391063997738258105954353776567291867463185378524210727936445188999582499918594631770519180863024455649995316265126340730700142633420962617127917255862863868274986535816222056220717761869837413227995173164901946347350115773657037458441291337564433687360211083830101554680470089065074077594124401563220091345830495042967368016356522268621066008214414889438428655673685626152796075834579838111083695481671454462588805673685223251651082792340015462671904028284364519179024699683312775974198371140252448523781799402135070775044264719682004949150357647649675290939597580807994109549947752347872486069479795073386948972275227657749279276556857845333356356515965065873617589957811549009196358026216635394060938066615390803133136077029310957054976206410718412522261395293578504769053406448691277922055020980807181787413190516490574474258579926105933018077504984033187953307055303115054290180273919591334489777836167475595817446638206586440776830585138376844018888101632128410476360917134797482881249584785094447831402255275977334270177410077887524776943404088460222514548938945963605690477577052244545256364227932107863644577137409164437101805979243838844782729455259429151394355351378534288250386983507933667308498414369876273391927328180956622167530056174347505152945261542837194944699880931884450483168994972311970615111960277413007929666954791357525662371553451531450885767392371939873805405148600475974132604715018568294093614882045262408185226805785214926950407291210955903052079815563874815433869424658007544060047484955129265354190521675236799758980410385690137018060216002867473649492197699943082081609525919197044424350153647549655164284869857011680804057309752798683315406950493765055587281859133364675777619715032047109727842533570743762624233771319097631562698416881852454928627444943770923966068019950794668333155521007768456991447505691504861149031847668296563665083042764465816551786515788752380519362840761053741902981705767986315315455054882376375371069203260497169180943675776011721408724344485771376400586152085816136982410719507652516835814267546286967829841064563502510605721207955853297546229587913714137877845164803386300232361565997023747678074108896684013143496254331420024583895803290207282276616865765317273341952236028404181951518081990085707081302947023230127294541833425807304784477512269487845277473513479862804046421548823225504751249356418349389041829778224796579363162035593853599478213594980689960757464421391004728935531898741532383270535873548688538401988160280855703998199623321373020784041803773328995838979937753186538037249833297173472912435718679730064295180983947328333755330144241141674812871932104553427646404748100864187375384115145497491013713349901818314043432598808304650758732550670507142404646885037677249210976287222304039085275282799682872005665992126019515849986973427124577147843263960684296029363568704377322517752680311428203512642723386848327227492293080079010106116991889820986499362299700677447225089345527449092065836835560131042559397300489701815693137723268940598726942077062344951129586046148010662204592431284786498891085500602914538361671060547473462579260088657167600920408777852323582894827271475059443262943787843708154529837805234291303835303347610667928343808033588634451287602594983871140976669395498201241706742105395086574097385282837409801623524599438556529728106783212042694640469689272859555148575385293792740421741429033153251442125206054502788844348441640522186599180693150983696204329672361395998998446839937504263373315809762428953185343047820724660550010828482779118989892614543348195507493369913052789048011053398117745558353200015116728101839926195694109287423764098218158173388652322547733642724989828970691204568179319327445749440526047065281498100601847657025403161410774329685809687043748751133535025926959190320792938283735694755596229324386735211666841456593375810480055630345968942484389576719981098074398387416872964959758233963428465103991437014650304671640761911558516474180120561223428094271756205361683139931642721656332376051064874380315752043886113798925999771335131690832980399946337509406205052729414393723370200853426742521391957276518452837033765199184087370067123728794777979631428225462467689410382697486850206372865317938166846308583854246449672899639469885890685276454044649908559661644102580313369555493808393471915964477922709632504129355751115204146585511696101387762999788903090971215245088368908195848590755197326865808286902087297409953130384111640708915132884400639645935987410061164344716026966077668504258220220340076770641739560848682344345291933396189920938628948770356398996525528474299714376769894097794121258503843857610658502509527750857232519263522511037721595282532324869773065150976921584471265865866538496833680216148465511106832696324884752431170225653349568150063863399458233028914437468619375210298567541710093824698840455293445142510303212812887738865760111178069892254642004473982181528790980805603737375242591128310497437140079951071204384630702122953098278341241029174643718481979850349277494370750378518771643010971284163825309805772087141117482309039971169333049861666076187835639383886845472698774534730750224137770717764875566183535343955747057518165809216774254970788191272787022146660727487939009025245744246972520738832636160892375527951284878225004444008647585417305842795019307759216486357579402233044873689557005327429371651501548537292654069623124626409601956335463537594448933453655113919645046674109551523882036307099886621483730748488580636553588923111880069086537781635045280663452690112036046782036573887715720780912457872265318900541123877680383948999309161663934963052678463260686781770993039883314342838612689699914604011308981247139746423692697403851216688290458561544076509500509062201684612166178684473303042042774742056580474939600318303663720393670704935541344043738344697818692308932508285475364755342161246950802385440190217139372279460881695785298756907916472223488500207173774142911976726086009893490751683883112892150199037957362084340898901581108080747723984970046297070843137548337834525511804096162908638291893503836396776050905562963378935615392049847289353423869091061418780658620435783561428294659220743550105074230233724601750443458281697554285777566140053083337527874856133071191175646789050384401825941303121997606872204985675338938446555597987120815785358656262460577092146228902055345009947374745872903335649960049371393184059837610640720949756079304630913322301643087304550629672123632817688428815043569828124774268615815992486137364960054723041309912648482716303543005419386567243944070234894824712683472519104552585100594732729712086089411164957493932763473404978896718018887966062657359454995498137998394620676354262924492284012352931822238436482781707822142465064835473093302508884537218448488283539375695986570488525171310777637893059033200485549344480045610271040858096248798127526599081064645902867868104824026873970887667488941194265378630766180947386529561782413198897505909679301014776606202029887581793992023653838501540154973340774777843779380609205516085609335377230470387314187999198542526414096165700463373947236077050851061088796524843679606551016142718000486917507533330983696052031998977161535021024720407915423905933938847278914499695359514674987000840476674723206369598769319918631018732748044188481948954778211003319308363306953235308245487657888848880686770765737522431491864557038422543077908215242359553386910849150582294629362768196099571372777161597533260396489688590383930872480916655286110960192348416421794562631852143692505553908839222866736753653568288754065583326272613060121121892473185970272338798068947963799861200091462974150654895420694204852426862478438552691492069122689878352865545060029523013406119765809418355382102461733121859762623064245476887782285410958334216125990573683558068086211020716983150816133277437904320509434018631423234918196122844285379927354551051872983857702907313217313426468038678253278630886379700004258998480807138801376003813349683146307560757323580745201725285802347766990598543665729607785147076923145445309417162603637779676569955829918405485103903882668738597123201516071626719651685828203667231132738296759749813398838412583040540662432582915192296486866747152992546413057775372127856510929171035629019632175119337080538102934887760477372706265445088902015613116202456705329423947139706693573099960120919891647390476503146928317192644826463320602891808835227054074272994814041771135293567159041390461863871804032897871580070389512751462139231435148783911302276947163940968436187258056526112815442559826473977707204150987926231891810974101314664066301999595482509704230840651066868271799573381249770426110382444868330951824523526319686990650904462907478127429191805632093369213650467490927814235054174637845419601128663097047326194361712836618261574304786237944628499693640376183105540066995906091851161268634017028572177349152717812144382688293401537777036523433316645169580789549699507192244897612906591710941978720376647627460871086361590422345187382344992369509478437013732997947428797390202183602402382329413662530563750807491802988860494764824126918176495345100123047139363807289277008458920556214217950545365819469317343827253188918734894792672177000002008727173533124910299745488604487073935345279580156065795286977288245326489783236255952628571726108006210323716601048247096815442346042012902004773020557187848027798616127752945754619784124839618181320081984290647169191334972321816959615516823260639760346802771545244630753746290305133084493240973808447310180371277778049148510316554508179066602444309066209836496334613904354490150869553995322105920320294851157504214011735350748455366725330343604620314904934921139617806998861276176394454287398215469260258853779011483697783750406214371311576949718313399540314107150326232778048613451536573615143934942191468335576161534852278911419479733840948940975350782647259518924690001421818044972218546892866716954012938183985742663705113929071693999904853697877124806002505534675582937642157557930080017488020020871166500779288875679932687671169486423021437117823326058441777593382128660469932287982069793810326800324704641109752758929073639702156600550690194212358097821310443282039278044793549931533709364403939718189757225436628472679689511314791301067213684673260047356292935655927359724650349778293038015423132616201035707929288360835899193314966095626519567390123007678575295644306953135925672187938922405507832975811670502876568410752735786567738688523398704478391230349919992154713837260996279804565386224630036357389392323078760686186412330859207059273026118456550567386055841873325634118737749618700612571366003461603325525447021446875118191808878265926420216435608970125557847031875948917509356774969357515169882088068871853114500267940978495498527884101446552122719444838577305849230461673178340033178028589650778822524833174682536552466766000785398007356624996649356944460947211430316099039422040425323329945768688934252366878942648334923431209128567175152974089924553725077626328955260607252321197157767113712759507496769906293839208810937515094557974690580837306360578638350124822132881189191503810622384490032650804253187925602300331876203385894112267778978988262218099070195114192762898276692062792946461476529880733466732227349088311818718835019712600464748601423097095040792011607028754734384164259294796346608169382115621792706573191477954056772755015545064365798839680855630248014818972328353149986335032113334226437445610228386456773386787705447176965141701446920589920512017571802759741131238677840498071460955426330420897522723151223249800436906265494195340514071176297424999490555731751978746396157535216456678850008236410948544191655169930050130615574351799444227886173324847489330585214171687135268265008072866850376990828593044143648797197069301954024139668592721641721036012641052862190545014073936724325060236641770212258395451119956727756037547584671705813927821414348984587713963973061648845969217267225662704992333866183164902382525479330942548658691877604716018014735545871719034155005519398695976321237298672576949344357846867962899981354738276947510705983719055302992727890891019498836108950832284317334379612140394228053679171554235253516032364775133922367105329652585306728957169810977545845049522961460310111448597983782145907916042182813786365613994997497870262776448768471931146427256373450038337110532899216110258127885288858638428978996409717890367514444217495973159654230733294110609014827968037624581605282192148091615263942073092340787859034616667398677368766391702966472149005874940010273137130779238922994870990783136956151745991719638866367326301391016268762133688199975536209236236534305174719641186530887731620839528804454431714081820657624071236012373990992364970860726544696810544999406578996021766675437737843659764432997294562487302987142636863914593501011923709548843576050478703886138753438652364923796133666763884243944041854334762350941698513369873703222962646060401774363545155913596671604186972000962910770432992241577353665750012834396292144795798211893169672408971154619957300686144499124472368904409485366815057514897552280901781655956284941915756650665410143845214454950914568786518346690336533789435155990747479489094658147266984424330286190654903863507100230417351384640997252172020568590963846917212284372144184002459356105040387286131346118024161361903961455922214154387693025853678631507734518529409168904509637454824601471338598027402581675162226777636188818116985351411563935536384408642345872041034212635105248446481248184417350042504275026687568570179689205618381156144026808964227673273159702947693602965450862056844583747185217454993495661935756806084427984277791828798562483314089686420730928177026657342886930014689347920188042168779630504037012141704262127753140259465565769657091852686322617879638354710731038482711376058969234467978298137490036898508266500374562886783590607252923129273170240034187136017328069970881787751394784364288751596251263395449577561506960621252010883260657156908084770386404088061789264772400544337115211662827670045919650242416823736998824637848197065264933710607537557641085731110262809272048238123686228031571095756814653632710595986261993630285659637303584701504694347870457957678494405909978864966202350465817676470410642171043926213141903454523750598587761442274070532113992152619657318936424249216806524698298802688284677795188176951995124072695637854329470866433378169677309207475695899783714442681209587570206126262919340264692287703261420362151316958450169343941804658462378763224452627658206579623418853135995826080095440550403297423915033249562886068956508252905398251673817131134940037336474274786881032038057873390062793507968234015148512985021369192304941220971636450866864515406352689622644154658175692836812188521114335339305675193577558701501217695945973998181221116315023017724494191806886578856347196522770762231273375579749652404574188261411940768318608314068618681090957219608404798006787618302980826194214979186545739273619382312214770317766748731792062826892599555587034105755441487409485084730033722147453082596964569878843881189813933073421623376529168253192968018197309645609944441040217461033288762922266538445405992784460737919760677074955962059203769671208280543661823841511705311019472222627116773405255713517285452306739679934155441790881817187945993951398012990354497570173525014746706673734590661351717297807895440641028885653759839696963346026431530636043912714743349573167575323490494995815048680598748450099002800631640802164867183450073973326645779147740815456185613527219155148178860862275878699656929440160833526555204202278678493184716175099944275843142007950889993683746976331967739758552123895113639715085515860338372916233212165569017779109286234409236821017943162568799150123388371063861495367448979146383927193558154143134700787731489584457883299088218775759060532448783725102413206444281756041486647384812997606314813780498445250952054558706078645682046691179230056192445408770577355581179082484292397912485657466607265747279956296801383701338505500863168351609065023601920971942620683692103733146474512906572016148033159548348187050545626716325735328385796958646072842416848883146935706531338777075370674977102079883668528797284340044140535856251488733640293008571415214891196363144724720356406887411264844385295194001900597884464476559589818889942938874972595861123117590005480388623990407727526300561095383740923426676446599399298942856974757036282082792413416752855368651741045803832200159042624240339938761602592404723659310820831728745176447451038849029349027532480435851454342309887448327880803297988184624040131849095791811719395050346397244655528825175854147862196233680356405443474630682201158285944795230009118574670421912614910963331495988312653414192016263316167347808049392376210796796829270750322419433350314232876867394437897691656262329665275613982924327527426084589638628006300015172275649268447098535593394002183942915973388414557015078229841175206250587258486076054574051214630934466909810639053755080866564330139271967025447099435924464726224239699632628016876362920027494987928947613444872726965059770890968711433119307095481690698420168254804417341760459801026263002496541523666644261928974109056258979284307828103135480017095310315586750857376834613598166593277633042820066580410585957876491356310320193080112303339982789945674949184667308184667243170674462140385882636881003526326130476325821338176854000129410271519150456526679120311403959519740371453482307872867293949780177623435674546562974560369823960117352628671836269431157518614498288154041227071047464156202460595187552935517890492122435129592968587528315209062759466228154688232415289690790899165108643429122455898905928060808945427745291178823073522193563215041523247295566667995582106349730834052323101514737999654859419092119965011570614970197529803342368472710075767920178747027884895562125669829982265002212411973918714193506305252480473493034482473195511199694491940253565927949067520676949604247172366567455930941910406978772140330587815322398449813804927081770703730070484682496783325211028154841745942606706211038834795857663738023348429473930929556835579918798899105292763887554862753426056108577339397963623705601840630264432215393612335598230800693229373358056364962605842095504443325999486463508256255703354040678617277878004707370408029754187419368735450232054526410216066745485734810813653554642581602640571750607766035038673815099907214761383762602308915240019208591802586251115660737182994039560934794150794047476567234312337427006593132682476360333227065742184027448541961119054341504123208448328120902687188170989253189837115798578108082785963469873447510082451586901421763766222028502489753525094884383158978334948867594031943481587074985975953129722056164848607853473684088483426679568408331562566411002798439951426065779634920130154582089914265396517962322898242156976658394551148831388032567637939997564086518958009686830425735126607750939815789185815932718481121390207135044715152370334037898366460613728490377441457251751265344777193698229964644901577577965880059416739794641571420132713477585179214594276206892171315755959679894136611350825017801761644613375749575212684980516638390134194485742494669916690567943679137064549969267540370831113209247528175005258181905487415970438825039757409628187081600143705609922873771612996394383958271965790661072760440871419146170902674532902256821132539198423744164248133332061719762714400943109051145859451662901762682643634494438811627932015998306666088169822861093788102725539004659258877894343266298318888093620193701976348955025113748613535131920432478277048676655063620666366625900570661949899678412238183285636066021898156110566359303511727323234761613768762748110910523029727997597779599060708870723529486720928566040450594550795375386297729382175720516748697216601444983783307831813430283904872571376764680778374081646730358766739320663700205297405158831508135715162738337229963798939366153157359696655422280877984694983120219763739022189990705526868083023940366291698564068630973071502773591442163599710367385026589933827129645570821121033127254266205756494796387629582293012811374658708950738329704943138884610916682470557187785481527210261899689240823103982943720341341532677105242331834409945043994024818758350061347383816891721058196833518775414591035054481986693221548240203478981165162996045768851521479224493406138829277092659137315399346990699787253777660523185886583572941717609313734284432326632905715888489847774695131998697959836737849384715118116728166870600934942033099417936749261171027109719238121880974228082203217088458438825375614058875579134683241189636589561068525838594512061496202681495239092519799946023449231749314097018611973613023368552480126866482825220862812658087726406948207324692934901901413371671354410051174637901018789175962245919737578634546573050510905856836073319773184248177747533796337613002385117929980877317776807333189887719099528736208572270176250544489303651870355438605922465110867185137197409601484445080263473115893997590386365168051579553032152012260092119503953170517868672238894472567037409245133469485038166537758770516278986122750961187050152819369146611249328883350444209471778544069585011328584995500834834836782586081451817968996209922029459442915576301676806499156386215267799754168691895350703628042250841180720697933041874392690194428953073812109847068162002077328729332948714599932068456187989675929491747931606204399928415367552236525222222852860640412788781171999310392851906389713149513192745547234781649185777704581421031147201361894230653552994694720447639601291830887125872288671286531460718447085576707414225026434520206909411538646161758277352463662410437381316823223181890864675132961914969094365863891361533828157376071744245538547526209239391361804393319182595645229923351838330880655149493207698854340594603286633116882384158676036280451676853226572897038932168039722029181889152233566634607938014473813939817908076909217376658200561027769244836044765024265968921505596803269644228141483810248523577224298616018398199113636482468224260385817846808548567801584007494568580134949584313008512400031309252801039754264575259036582164614491334650768311312738796829964160079142367298449486757145363749212991810781067860069812469299517484990985415254050319017728620394217452670548694287305663181814288741651695655347721141876720495835610310346405156039633260888955912459327386970001050090419909110163772694501921717948972334655954756185958332068312700594530576240176031051638652148598703334276306518113216347790377182159720882294098825533888502341104142944560402381768627469183070171019490837829187567716606111970381724510779178969896405311110104184622999548363837405330230796437491956662311780288879452640221453699812029314399264041430144866575610201350318136247356781703236037365377194139902544566793035196804095730511135727386573066392495586494728757210139143851977725863127921397808885022195030478350771986171726093726080103006256208011778928485250423867756150098632339139106858912194433679164770903762521380771035185104195661911805811170077756846064125139446629754919647898283386950093180203511086427470590830377470697809638805243511406617102308067418430777108705689206567338130735514510351435977118999483719090144394146489361142428950538294504615558963409599644440524269285130056255337287448083578465019371761171020149784311903383934300919488518313284048649122023989193709741304545554561085850760909608544601546524162586845625113454892695102022157274093325020113197361153725017490002866665052058208597374603396144562990533505977239526206790960367908868951126031759654951506967769198311738045131228080270633856539301628783508331475020946670920569432118742780892268538110185357591567530580980548178824878595614907942720653622058318913857895101290150845511535853789788798469437510824684593975398446521758350720828527878163840573244467025525397341901517724905400545907445611789749513233196364355766608403585665194430810620886882272999475654507311574739815261265334684255787930172895009851625446588535870480055511139971470384839599822207539929492983072345801547366323042640493812749801950552242419355051188623359931532711246699727119515424103994665187991398647182523898200640564206292851651756870590489867040321007292169347698116041716444478190959775306431413718547042685518483850494306674460986319815586768480417650137710305081179172251097737421136267549273249754059295195929521211545760916517199241924632914705047319146611717535370134050697878521830410248739226284016615382822107418025594462625360281026904790729140681516290290415984647947335565238721568226664435014089866039420941951994700629355048290633420060713330408223236931591831323745594737445192351356160858903203712965837033713783211093226895184594502940530610256497223392117611696395499944295385345121699049281025765155219884267493646079300685709702876985432993561827976023179478920577317759412430521217489916539681698811521883435865957348523581809244291894864732785629215720037682967573808534972346644262746340519579480287315361215215839187575366275568956993457023376040935709414023605607452401744289745564590065080267948583616366701018828530531180309252148967632794602255033162449132244407692790121389563428895346419897014545900513085247803874346268843967131751654708499425015463007700207835726359478443218409126904474261839223948791631887312782580494320013204160712821508224860280899155495631474686025334382421137460515829081622495875744127602811067926239469104499445618533858948461857106671601031847034547771176044600595721787964545512235903989759204395647723094460211780669594016679419051455584189992436818103112743428279744566412414429044256352482892844483991703186082841349221270966855762689120453254258803439352951285371692645727089214729476158457522227508143716196997165019579751187270496755423868352513068533073225488935669758918019178821450223879418842211032894623662332321820365224481008822891949893126472018393798707339174284927977678525577390537745252084533871349937057950199270291893625380838729236023331160287447830246169482966451564500114230502521290137132759411100893551358521066086210873743317221027825439233817988210008284628088211293511733082081489085987280633958930873176973707158041030408411467919723644341630767458098675807671750831386640491992117630434699687757368287627390435898290993354024408793582757481439728357683944825714256419200985114545702001441282211971171382500563444471423438405953816455325568902602670063066803607593845730085112151398660623478920294668680864663163869482007644101667096756081487015892817085791157613944393194358488762717648881811184372731363633611118435964944979103091459204187187148150252318465605150133111394421455191354976765738752463909211282666933577274511865300675940758915324836006697639023174417488135841753006841175583011573826716473455062282915951909133040537339935583820088379335451569227328904654638782962214611077352273792013291321789686733736975518408788256860111506417225173753680668260068238781331417324667419440808032365416026836653863229927524422043662485534472239265786067094767435060046278038158312361046540760661939539912114934176937085518738115184855750426969883424268461783440273001406176676679566426510626253592843418309329459308253202660152993929157679629841690104672821177898678017829065946079360954559393172160484929794458498425066805004348921617412378311512664155233716793903979492430458621025421789033362327697483733893540540131655755509744067898292181771693344932878092496395350651080804914347055933942803296250064324738463918238308980297239577027244354755557005537396149060587763401644375917654778191915911466804261888786765415963738047879025788490499399581110685352257350888919845832684447116353615074994453167050260418031560485088560452781370876707348220853462568229709163457006880824533116076049065072992584561544265569416121002395677060858822404683530900889389807217096635296250744912652026818155955786358108663602913680999774590269088055642051110022419777882363751328770085681173623365362922562513794560185437924536291380092293380047047553649371785197069538957178034561693445696110270114185551327432111778265652584129168816709995493256142248709961622500820599526387856787174151186351728840786733274711638285577834402627779195020219506655387606131832695674272261427755599204135374005887150616378440050926898714068527698819930907002197080067396723631120484995865754142224040589962889656346983227258473337831490948123489305958876597316738725553389188635102545119299998335671587617358567555517785245472526507412813478463483049403156223506335328773690248590822782672504515720972793708662844196391140987323384214302831802960769283298836187273904949463099413191787785102387129590028868008657883152355052163086058900748236787650414120515746353418491628074102856525152378263714498958087645901760902383063485737395361592427396035443373507079162392582253350071105050582702812630822219379324294947287870625274271634921690477286068770522877482981014548079152021759305992520522450414925210288957355402639823721884386839429637418940348121945254506511884253421068309431951277713590902285911861785239259617397514988386434178463494916629724397106201815407797083342728391092057958762047744172352316167335902813704748151396288210652890354348202159024941535413992191601054759669566667327632166405841141107295507816935756750691692617041549677491835707958772319581700181613240482525069285133831006794625282763241414621818549447324816744760708207622748495459558183050814378033271945225956731923047193865787879998030452747623608495228298690481669355316921083576769658262842088956227247126589904451933031734626328590247005466135128649314116503252673518605504552936200024884520975264283261428272714328105763771630322013852628221589072156093840779967365288588792908914048373197232501297701345278639799507632888304373196052605180119168422252374977613209874737508078578988910742721844966036358110378892791451681882301939191962068567341485048943591348378288307196577448585758440949357445732267057572712733856413472108996866559516384151641259130472008642893007088210393396961238594237262727036527516693216834973602251926204134197063926904324781301687490197218615200025618793909278149818490028889402441083728926860531884570650533195411338103602171133419247276479655547088103105383458946648065467913681135327536941725025917988989657506892482137875660236887694970934190783325546505519424609841422277889687469662300969256594388698195885848517718884944112143572948080096941458555342656251833692395906510830052289587671361445471960039557312978234992736149071337200914189539437262765247193387341386431965830808628920996726727868358923856968308899984179333479434704040453430770477029998767675998376335810291592326257458841173288527431228090894841189791667565240885437203128698470675767085257390959081095982818181851361245703967805545974113870655067756841190136254064712373578454079878594249832982965254826766083611132364069818247640821902985371397053037251939247339267976379716697192810622659515995290802419860090172731208284891536421261098318011536316996821288706949448034372023342801440240984332169298162445677098423592036064955802379602289588229913094888264111447612464689602611477095659056473434487358689849569703808026752698895804002628784202491603597708956875466728649763004702617278126353285926211737546572299376026858297324954381962568997720429155857938506393003368194817419039253804557692224013751193634538863376758270527351882416487658669972094824004976587981557033007177138016366936064092053350999864925849667273443355360640150499444225744414604011831031597995790372101028283903724737583235567907383249110730775785268412698366731756904496660063996634970865616671329023796493001312527882402079845106216938075775549779654751366884714117518375902109168179485968069994542723684744493801209069649578919070507425509291759768644277406586512031175071741015262858992716103177314928554406635799614550996912425200506486444025135260481108828057535886406989215676164324191288142404706486103561593297419290689798137863041056330385568162940433978983680068962691791367729835865024400599607749873394760233840533815560813328420532944039653312327835590880464153433716247842512839497885760040388011536697053168715949815319587910642841966928682646580986534895226989277309314171264847853420317033823249296822589987437478317426742612980506060341608316857471755285862820672615642266272725642832172392093742385382040385236666539104215472870342052859680309787706621286439121052338667394052090442749835077394090443461740745593152571841588896797955135193669680601018299102216925920147505972607872340421798896211197249573990118378995613007347400339679856451648046995880932027355649023200926172183319617715157628474258497285226669844755783743848454206240494301142991846507799303670504800033317737432114576828041862267765223662607441562602382079040005183704166411770018240867416846245306435366786535041507690608275717848749563236801367936787998072571082275224965814937175470921422321423882171120001750705100604896733219838584405609067100169726331237137616519587282748734120316234815988178706450217586644083710994133711989885841325910403384307217716564390548863239674541977367474303721605111260963196154071365613943636356250360044161197476828989797156961209296405587128739489588162778329469769073916185585347903268296544558197700179154528443692652050483971252928308158966329893646674147704856928447925886250282869695756621421360615601605697121681923601943371817098443141948952853792831067904460122020294494296852906766792192919075687136883755532223525813445046526772905578262312809254365887397398177453414057007700588931767996370061304729063230833775016754359634112975355961243855118994506049501732454187382183152734782780378654957979453147299202344056160222970737066489467254873937944175141785016280707808899597770156972311449476803173410813809059912950778028301329292749888473875996877248422446810934702055115100306050935996751758828352699702464636085990056638984126285529254831407511717523413846546757102895800990743159394515765842075227243979478909832030550839034749729727025871852934287942336278790699823094382960428696442690129520829602219250383353574509426527115224825422028385620597545444067956321643536046553385142305059703929270211655867389587169047986344205217126963614301242484077179501201839652922888194497444558901829985389336731046852723629047569384735272212535614884644044556178603640604547007489282982673966249433598918753019688281257114251661645006509750727119181486884146918781624926144951956274099049994207050520951029779643638570799017955981783745402382358243797048182875099757653582823110064797377834146443509764190518692890662553351198860507315002961195491082824491673550139453746726710499918705490740232025805394807713732346739400618918750589601854539453326796196790380483588308082187183822030948486034050538021868383280449385397477503891481762552449353042950212094076952118370661275541706490167338676940432592990115458983004884340829859967109457112661173285202873736149366857715651977440972211800524778740287893284514061971851797614057821450779795437114549035418606103946888900281875349513451549151402308212051920550151406849319015776185746368395767625958146212388340055162776650008548894194486624936825375963070258701422846912640602606187525428594249695186330429216036893974972662260369288697278983280858797660251401144701462090731399827807642526638822624346988143398634198110490599733049998487394116202489218678766292144580453409844808782321661065533362288318322629414526172154977022328081713769792637608972551259970025121147444642196071381566293543755238349097952121001424217673441634138811298619860601155223738369345713681111582371171725038555327087553739654462337689103729970971080787821131606855792979885070411728940259460726799179844382927066251485272045717049183734938088203452043113099970598837955247790241427794894060099082423270745007748310693091214637961729320171859612945412117960916093602720680424142487700711098233260298414212414633054696626155596835393839813979551336810045284088416460908079448066791667945690671323835179306621276738431740803128647268452404890520336501753671006732803703969379330631254180953316947363544391822363647221491721623683035141415869123291042353280105532479403540833529766176844007562417531306056204474439055952411999176643252667659686193502680541930790415280681891680274016600021917294613151733857473365553730521899129213291774373819763124994510897941041044019201852678781051296671069608320041355369009287956384290891059733171668820674535920260413058952987525267168918613973618488827496370613424833097613583811214405234632379615746608830598539664201031752193330446085712578489254154261499625725298183736971561375899785633777059496104597805119009730122041237835953462836121781704508814141425998240145816408647715596219482556978184178721203026400857958699693167458274713802673599474835863605159625039765501428352561317856988076306489767066319296484216273784387313754231627546199787328764361561490494204788052830309408103855318472473674962850197736910273786987319949046622104501961818052732379834893152945329601915570975750403113152682427494621232140555304675153944126137381881891980114323349807217892208043842112885885814780318727191931985961870517482227853954161101599733569717755047976986300144459157897882611290057739354494788273357635962838895312443896000404664261143782919770615147067208345944887933394996014584637383289834556772183578099846077116186960967324600410657218455534804569263251754361322644138022516458789007366210660419488972832772911889176769678747227227566959330546285426637295435789537659694513627659644171189351880490654414810572240819655853003314965658808968687539417801834334331249889990795565341928183138278803215306258110852333956789496014090832544635330099604052452963197958272129806209823651705921886588396847161779847226234229594618636152392681755906752983957421412893380235035235699956939764375261279125596674283269205554610331634260510798938755852395338874004925803474537043420809029665917051789837650543346057553160334559132688107529060787719967382070582610209268138763128238511766834208815067120872463051501843458885766677102424280109049303453832028245821734794361652864804671314283950106398400234841077567841631839204170117529216434722746524198566041334177381630805435399844257395950429157192697320999647161797216529021848931687117206272500946132263746758136198312032053225936367577383671087760869560839881885580631772968729727657497327381069897214952541450716326507668214019310892544813192835918373502355792460898327198019098238327668787815905381781577391832430138476799978601593133674655172938608700194251039213243300085139257142876743261861908108350772690002033554181150697128290054386209873958655847098783064796499958797812424888518180059081950199025238886555804682323675307015305202288027782748420123379320821114121612391293480489397779898499137060084028829833009374214035557517746490906476104508551689997339684747172812659452304027140023136083855217155646219781395124517637012166418883101969614775341646712426829441934458847323682935068606008118499445137360861870518711386476995667721403780767110820430568393503078691835816686207109498355613924577375158019926127036408107236894019865161761126419810078590794786323800124364043022313224754099765962712011870485920968425216298499991975688819936997954717746367484332478519736987686762237929824847757901699740146116243184436569430197328599592056703508411931813460870329218175392435560429478035158850222728446869659768961621344380720982155825389993433944085524404558252888142263508788145297164944910820979100956770323104510325911584579829994875990686238873517163756251138227998770505292298314095142517718276811778324293737441675753777203507061218857111150947377084824486610330742309387593035736302415540910787756746131709187294254989381967176157305492674096730288333959995658787046553347703170628451807523241889895369620320742938077057672194534633537211659879882128519490253180333963896177808144279847661849862193723363022545247649005190585550201038033046118164851433305507758232408919052282731428841004432183986795561821497975471839141872879150829187917295442154727920905255025895705039235135906864333601874460317361211731522273776328130785220075489144749665718359663607826855876018716321045883611425108951836591327913349145052358657897364082261608497383274366394508677966765609980617529740675464322505346084378833156234544981457791717688528996195658154147187971702098761239813999353053307162900496490873020534846271980893611975614916224919066745283464710542555874967401316686515317060915182900040796505493770298919660099501750955157224058652252095861477223688985519323343450454487671802611039630727919316028359749798866710304504138753372773604111693990482582695095727751506887523460079008683602863834835068813944694135559480422716070952694120383690804114106148449446587206804324765806598771640830839964024705407554906313925303266743553988086867990341208035656898565282899035649398581119379124070796992547358338947431595028246561631889486042189046895467235036005378669815583186894530437872819812117672872805488446445280815366227886203945444110161851711378525939048545941883016049795520856550243388401691968107603019409280288686582762604246531268845418845655410270551816382864362809670953078722146459520957820425700019850478013370816492508592790585155805065152525886607667535308858878050963198153580347246874062142269401387296915840454430045458861180492380009645976485697923069945084379711721972595046183203782086136386583549628701137408136708681610694944895872884876574459040529728092442634770516925636067355339214041372421200163681420091293830849196145120279625623257233998184346255724250106384707480777530199364455441413492396627508818414493480140334035276870689020114636880506473064863066542696467193716901117198981839648674236704797910053302324472651782238808065202851331883005346507177516903440902744369575066030296716807300323511260396228561538941094825040382773761857881050950635226692759692512110503340263343198785902063290172599722334003690253018658076894895992720981066529849996457792218608152893937599039721031973922416608486011511883163070322734140430180359097478568709092582131957972824313795466306878955568807608012105168835299489742803421749487091479870831799532286833488953726957918785638964680376791246187390139969255541010885050015075279118996706378820837397099592063658438381829571874650570080533850239652437382736817478333391218686529930152813509929729611585619789162748342639022067652633743569814745763854606488602515453601095243696445914583909886197956185051166444369831779107449991044111565850901832026635831789730020778143338482862757946889791828970009003238038315723810866544253743428816250744784436930799171087249579738187078446046365142294584536214476567084780554658275880533017300820333292523668103819616885624132688369830816784670424873458390306801002536158562859518256834742484244924383844193087272085178166542374565664659541772981469926662091671335893298649481233385465579450372980243647451439753540359630318132512283124872297604690186191947438401944010361192068362188698632084191268604185773953423153135685561690238295283492260317590392332846970087563570907662402526470856903385936619145818442308911468332615803628530643209335455359132741513420510551831126829150235126041451718874723083030380531260637964983901935305601113215163744038448200670703333237273545817330994559864963959729867510877860832954987578262069948861870629900359752239159860194524108181096081182027335772719022623442783355790561678765617125405744933518558535332473906723029219691623926511144580078971632426205147985978608938853483251223357065333324398994135921037438381064857107587822679377089241299000193380312276552340115409742612645930190700694329613539379644831224940305635952987611725833969456881943417660050111122416399755349958579304125406229567849005601731616636268832450065838931610934305178149909529507164187628339836841349508362858639977156919642730049551188898297209673567801616972854144846844209292571576117614707528771626225827449171639834043958528140799259146214800469103373784794375842135809700554615159033438463895194896450813197809360196229338165962552519148006171099553896597349614305185130250863296140085955955787280557028121019549361995552772367797286259074364615002797199536276919087385957068761989449203377217736479208827270623556321904342488955444157663394992362423129291159877538081158595478829832360480236153662645171402725774250295218654899777514630046482633095792883281358652470603283032956945559432851340025635868193251491763855182434282925625385704352868506482760550864466878224123208626614603664309373433717442367816313546770617561807161351074435096099181070417565664465056724288413197874347786290935007790925647425873135848382788459255941365507894461090074056346752021406024433202067962435786447001872781654827531143219301227381684321524385241652935933480417639464182499203062062135449446454823876559320364733335126965402155602483930908436553444045788389507714809216849571504055264206113545486767657467087160672902725753942728535476515593574738915688366245105022875145323294323673548496532979675103927136692802748664604238272523647067656041398528593362003237201808408173552551842892161685578174699802633196813034217788445201206615824573808884619589171740472818373356929416236309030369745202739091891824833500592367534749664768342512489127177268672117720971538444206181335188796140423550435200647369586852463834589605161559227890428622962900058138640970433363679332449048652996309508790106368051741190097092982305291964436431127247430331208704380118502480053129941131459940726578334568680330992258048241623790842057168601157563340781601973999274423747065632740929637467557491768333314285057231157767677061348271971893485451352312912493559022523070692330418601109844441641061247484376222559897277556329171186043847067996230821569018703884263693450999228561023262607928432669341135149522620670697462954043598816031554312296817281337514938674545570357749206074934648450618324008079733493258258249891100953231155830798624568672945461701107155514021769059115926601643126252452680647909267061585771329724142044721091201759162588812745435444993549958276296000871219571652506243544705313517949604899109805329486167893830407288187755019828313582344170093273549797024682768412398069016143329942097791964336454243233864198694200416466773664656434080327685911853984054301338428188301805390076826729823019112602104768567021843012418665032650863119505609248895962490849953656287638643025265810647083950888403673000529579865537334912096424892107978834621314950300324525157454790683437842898252684233083970970435008641555668435716123870337893097733544765419495645278869336626644030458457376345454351149175778734489251274160872361412708383173835768891419458148077725732451731568883399072786382765576227451762477140014030090266488214147097556515875510125378222594181022568034882390193381492509467919040365563617954326777884642728283121895207852464667679675090531491444361182490592782017464734445246906801031286418859073416460955503521866653921989674779953338811562932739494655070814539019539212481888813667004726166938900973215972677665713743163481353566871983496230201647825714201642914415312983827963935720211715270789552234399539722704689302490995853394334203410390010214102540744672323531241737752475100491487367855434137503331007439062264879438187493512779994792397302599203816581586195978050802410223321490943297091651770243265986813501731451549575412581131468070392880795816966145115330606026955378768724038664791186622141653358049225868037466282140568012768016937717767109513671887847165849080094986639097892780326680570621118083185037132663086474999906041307739479840529485715822458198291493277356810195071330229323535300227215129625392896303789794856651625752501653554583231944012478775010996675881386476222189114807396252756067259915838207131534969167904739803526675135907484774878988439796577990548840394379731423434723014042823273379847065349207277543295533476912540442881186163200168332311539614801305839005607789339874192188186580719353142896800671004283991745263923005294029821812645512971618630102268530678181498475678691663523282205888445097976727554572298629381855269895462559611667700686844931358560661865867678935024307712457529217280341372644966217827278276154423119053451110894751623006918660460925404507616233058873024720420448399121864619126258310324192728577714107118700228229340219589646173319061115840822015440110307073523460678774097303483628604232002624371662351189871919231842536526901087869694689127898403419128904413325093421641098591912088856719597650953150430650879488755626777202632032693108092096347286996590747257993018377466616662341850880323378308884420954241539623286350556783229956139771787667394287828846889560109070234651039304787881332344633121916878908413697338380188054426596609670396387205958355510418646495970724225688274869188160852258805136495651654620422292215204091975361200821636499170110492159318088208196560668966025162797500595912581062032958463037761768609736284112560801429962440904627224178247833472334200967570490270314755551179454497409303690284663839037186904716884564937819273774922200750884267488014177357247977215394939830999020122623203166159743090819035387439971132647445271519268823287469113226815799273230574845111924080056025952083189576426201084570937872689249963809682118183940379803697257712783577155457577669849555897776411843286222305791310529991759572292227023386329037497514492187226327728104692866918340252876968143199472611314143944220632744744211055849642451353669576072997626142238873278422791134333576955699704189568547291175584388899275418165747383284974951314311771100028249909765385154920930445877484307498011196872172838627178041378896629541245993065257726410136832256457278113927788878555355477971457667133108744229888845554999091572024682126790989109007452961235651141165472790315616828008125167446584777333426425835664432200439908036862491671388055628133394528942934785895703925722137905819935641297740985500306716875903225584173932799135389554774818548089082547429602287105487971699018564592970063905850845524911658313701365318040378313694530038184674596046425020653276096145987415611047409222089102150857356401236772990363472518280481235745969207110392638854113917276068531287023908127487746809394951970322208531869052718069077433762894734764610708143368609034300854402978334549979976126245458694292048539679552889235622115143212630836934231568658562439777280136812813316857927865297800663144896759043644941979300490489641958927326261572796266552813889208651245526181669458882324626589502624648917161450879392804193546401661975136428184793091269568700129045678890292176755335696966666118654550572441876652584177461155959601420557763034805881628378640594027011889424896424217036561801482161040297602095899715855014844386102073311590995549551546090326035907054160409465538109472995048531638024388130961642382874066700054743025967170153126376489088566327015906781339957031908705592152533551710624058298281398359563961089418621395718182908292414554570264248785026360835700839442821142139665177734356756526449853208300536316887922825616301556463561782848513625540753778460468963848711461104422804154016228520505943617421324715509763114070166946995389355753686140225076462406888626798270262058594374836665420386948303257236000043295890311233868691027282463417753160029023376290475470979057473770897061767990005177204882674272014938239310075707560210318918757829126977342432309419913128137153612339908817819820758004123656236236303302766538160194619626895750226311783076806002857528190651159830830120771879410988517405137382032615288312039044555370173684170014267404907320575826892050152699392757460270666440427917647309019067038413859851122971203224202366206268429875726676541270981391600568350752640220262423172235864704750338490096305209308779522131254740506585039020798434396841690241166733301629155932300932640371232028948017682950881505170605430374139919001542635774179731351079729996567014062970833857227261230278788044153247185800639722016279339978916223109839761747279020240171527168019629537769790845600562685521889262718498240711038993950383459162269133957590123784898940653767701729936561491444265958038447881909473980004969332173865650114508003024087271731863588434747654065160276131644768021811869800013157364271374538685151984107501617105826543329138160064026644250391976162097351759693542393894785134537214998174054274673880093905600976526586284222123762412919376360230287240596080180711396832877315308079764283081185629293309913062022648925233472008095962845957384912382795562993034782694690780006362464611694890400849437127354570073967783285657722026100478476280342873304848722893814922589494717739755128412447935559762044983338648016734838758946377231228200067294633221353716629354102464116574999549809420279370572043443634043786397829785988102886276727786043987869608779644345116765109826495460339291806691284239445031479721334513413374673779291623553911549246838519276335077165571529630131358817525790470124916898100274484768825198128412458977761709320765839493664412425733574046858312080769018859701432690146111305711537555342659529839455654357076549361531231199678542320483461504910213891346387618999282504267217988726956381158593690876240748906474892294631126766827595789279844001184515473723849479513977666501968250199671731141193765700140341696269944620110066570273160755025519722527471361264444783181403984062897657465531628389310636787054986786734475130088108802898546888007374884166220345680499473666024618410936567250183193306541599858826446170256245320532457291010372568228198006531331668905400044179913816293848124288165407450724365979876752214863543681293565477609510460071564235094252563006092118859301936724048630523746408773035483339349588583390420963881606202414302000603520764139485892576020640913362879216457293680354617010658540837773924051228073922760906198293177231474085532411162742899521293978884676839330627227924354673692402619160270721642886244524971253076173368145638856828511437046626868451454553340847717167695546988735831193690917701294515479715237559556880410058256747262938451006390064005850317558521188487268606931242988676071771512895522410450651123306772949970194274907075078704276687096208146533030928161836051490560956454761475226106079477908802561488323118514023056360390546258378881116213654840968649061240242267911493420613458768625128435589040290883412298540308966555022856796028619658131630454894809875529701239131109013500328501359086699540084451203648636999630277670729688049310800944014592465925774271684431204794901471907822244622217659174444199198821333688003688917545629714171574032114600139295036162561460090901004983051696299168070843663990894536262382886015441327306400006332983126446868862233577882282009887467896605458526369427568040601594783455888817503775728200266445611443237429577637913005552676112818095535303795422624765313175408782860255662856292300305769768483373335126915019024405242804487817915661918851444602417822027640922089369286254398548677887453284922691218903367413903080752468395932221882614117761238387763121876939136313303667008005982504696475244667211945882188709906611819357985974824301159826349447617021905907301539712168163451739153257397584330221053227946178580561321945321842290145475329311359403411804629792239889148847176131143882304909669407614988355198486655441818230081750513384097801508537735022570579101918060852872686088061313125977820712473777432803685007536368947398217342639380836742662754228128907516413956094469109776714461987718912670073286157043071154752585444294535013912906684569972974368740474793451156493826067942178286414031362108566623567566376044978554868957853662272058460716790840458793599480325930923347217144734404393401823315954672958493635442804213179877100043518573096222834218265877079039943098556438006779303273575975142512250075062692096279694421432566096042094204171553581469420613767383623562052439603641518236365365223367689233474879756020132351520105476305292447342349182117127587488244691037237081718054259720831809938330412086971600043956882502562952903277667813906996326349915753971743872646589669072801251446523883693920882520978442577250248153104703465644480855756083614739482353116184456341199604403393256974996375146299613840004837901922725282188327319828743852333191008688693750380404970710501674028730574395638121292186877030501921355598148782175682130941515527711250371250122454729099174988990417695639124548334023885827793717019186636990284794700308661782681832431437583014640721695672349254814891543652679008566968955908563463771600232282579096702326756377743553921278333034832914869038044460422771264543650249958760413752159445031163546075198748728509734486520291174168454625776554538259028786935665620795896376921576951516614486225883167085963223681481816836068213776335689033702840806818500893777678397792889858154759162637731272737730059102062997612598870875021989435684500751737535922210362725557761234390306407197157296888236925891006269591087027075166403959272053621709399548691526448777019337925441858777978077770263016740433696684853642861572433698453511526549372504688662350538796543143596987055063839790062624942772734337365074007008703828281984180263885473740231043586906720631174220185212631904648310085964707684995490978926257255451540094363418420435532842129079784336305093448557087509231306478685340070746127657790549717818323574018704881362592456376698878637032914094941297630724883822110074912628514547939561269624422088494519289952178328254539978538671398736195090977787054342459795317560492455135660696327443275198580562821701232679848799784545814883630811167826983182022339974897720316451927965523448916430817922707922755240873011726325051945408220378628782542383587830316992863591797053875949375568755480064619542028084801187397209820099795589591312867006702196802806225478316535894167974466179900803483731778351153971668486935740458371842868666954436127015038994647000250659372894457623435635428056785079971131819839796240139285885746636077609165974125020114125365651731597994999989317819950094669075696515370940676843379300719603717516878160047084580436750100826605323494723831770993126747518408648938808393411187420605770431981270644090411403209512270871433287647149997502016815336323093106769766731335427858725514794487410015617731550957306397155173173217065562464754278716556822875503937508432689846096042897420116217369231470356199105933458197957659700165093965385903228977803197918074998785859756493320284637265464653850495629708674999824722824425626942010311880918831001219274953146643194560788177605075583163047986259967468842380527309218801003731791443052785236768447615302030913664257828206597055456859680072918687501202303322532964725902913996025701613032680636120834531767228182544273098393087542319930698140773317389434100881922424692513747993776787041659444298363127150107225435011666506492749643961360536368082468688074366225747272426740842434919071453898289690419864357082412701352538987406948323283371920220579750472969346239345595106753651449544792632488441872339258320319253844102378145334980990548827355190348960704503285808235715574355004988099880889539761708517379524293341852121372395035840707694397035938502699516972032275590238658801600890253490740607528561301181187304133540024491392051097156917590039616864734996281242755405952163157675576177249997269574874144707961569406871926208528139116572863805737763523772883923868277821131558286651988129044586280385876126106748078641571501773021013379855172068276139454673950225911515894274193293628847528073602708385669795174605419503521251425196148764208673809993467183539122740894911773427171200965769063951987646064345250490498728009960676004194437343186401901494364939568790968234575300024161428319324445858199818640387759190384798062431997580833739903011831628791774608826878808669229889756598837662015948497081790468906000982612363111206177536383340517390283949800657968436613141667946587107534359873458799544650215842018446156172054243726063547081374086585871530153200370539169641007259881970991539827552441837234433930645679716040021097701332747733237080131213987415939071357116350924803579829116916772681831184137819718911722764312315487004873054074609034047009330626486739476674172811045939361624604942837488868678399404637216650076301818935854668499760378197625233276921651367537889275542563594267153553428788901848168903586204528726340983151412745064773653027785188538199113106966661616338054333042955367166092335625238979187603867790442102502784711732282257959036243642249167100609785789505889500347768505950727575268643369301898575724089471328951420442349055119333634580240554701792919134219636221803159939965279038714849462114005940857530083038781453631490709413579691066441333117535452991043449646043435070088473252615954327838163144856491462148236115269607248108800283616227306047257463571359884030606603862681313872505505108623072010818777230689920424736513275822553130096426604674862657141523822120968546256043989226196310462339747866903489773338363429694048862746189318337589060464960176908528264272873882830052061288707856021977490185168408002035666807703819858943543541729083267989549370355214481313314625779617894632440345786419054427910106764838409584270737780585965986133059593153393938659056571170486503699678719095871298259476952347206388962353571981570859426770675415885369276215288809263683041618316710043159982653967218153397672086961405256650967670043710877714442917542783218918194886452452215968096052998288576485880722805065052368572144654839519938644700243618340955440595737910579004261502167885998497735845199132916525245502318057132212095634384515104069015176717655989737012566451245058390609013584494639256441378156049197907753512817806302010574580392779482922664115282043701323449447725666682121898626861276763376405833013606119146724616310676975446144962754059810424391079025627771969245289111811660329661181760776857898649311687709514343858908121796716425417784463701720096729918325811156644363290674847275014005899995015569805185288130561124872901079500847441604868828144913786764013198047055648407560504222779580305630365425357988183729461670725125167969886345674143622974592403858212161604852574665176606272837866299809594316205479427783655109634633833403600641757681244101055711332722606951254640732429705157451126498129529324222241670204491487793672191103083895649398685021594679013321244516367461733217717218262556068677392321269339627321112124721756597351798395762261967693489755884217615509017493821608468030048871585811925883747720179212729764278256839804696002500429010452690184699009490352205410329240176657624685760786971067495428682028995529482007911139081695609500279318083594267779213055497878858345947405305470436904926771014241734296344461242590390567220462002434828448790082793767278587493720261618219581499978774624170626405559848762224330624537895328282208936662616302234303216137817213644539930392766961831467884318113153554614046164089782307141488055812879442303389247190624811296219537533439722897188435467853243327499088075747383701828053915319861057954108969206783546395691417482367173828818316903192740598572009873916779037272769374056346107371920000600397751015638860938659626950823334795052515733510515378314619575647943023503419494518155667588633057642189514496647427589979698929433105517511192396011193541369148327255517841388751203839789111863847139879434778168387223435464271305455726504389014610350973540223313920735537803020438942663015155995261429318021397603850732016620197079831104046913532969735955953124230538156167806960703255163414858010301647922081100897605257212341805579906162229858359296937059001605208540569471865380417489988945632959295705384462845970917596989385916378774185025402762905292821539330427092997188532237916380920790970572090001880541655626923141620092713531136208328782735068771437447487654678935218408107317528445438892765910806661341220494996182290385125192883391310075166774180168428689228458381114918702008096357675195443895348324619606917150592120645099209107831382438309671056675147366306152894396028820735010953073382905855221531381262432837974284646983663734656980719719989974317777507798106024495065598105223924362904897162863938169887354405498232680184557974274509704398161404841128137254566219449799703859068898073159268711725342270098248109860592969365800990955955294020468911758583373080686116131002357765118447034709247464813374422190282393871351756584935369736971036082957639599601774670644168110075396838099089161663414025709596293055317443492436680489603892299457637428964561030724505873716149324676705789080942327243060959728157962812149569006351022138224694753992709120741639911309128238968318105567364624371828626011982819581412704393268581272964973849566022393543753392516625085686313585893071915400490901293707679387853578566785898505335049767073551503745316101013125681309934256400046403427797413301461102415446350212856289219108795933473271100292794102331931783607659397080660308237310031342535099605167408792427334229960801101673857165921586365437111269111153707356626486142685197521136075228113506222506577406427293377054769200738790638115504845538545399263103456016972178809355667465438821835451612762508704311541147774374505454569076469861580094804421781288088125592706327023461083430646757504782028715019821791902781266005393250781825046233014241300602693052081581305107289582850791686127065127202960804995539377950696604848388135152510108329039956454937692899898678730770369598340790319181767180489008286671800735795626306199354285085830689401276825694522898624509904846444483727513350868389573263277027731266794206217352809551788433195570308380735776472548521483076282188206763552758806588370008402735243557958728759431513721441250072479486919366519084546612732958055891217909926555881520797721032760021573477172516709970089490090284383939715773029470161944030220380961978629502574179596911813270964315167791532325704144560817913416524633481033917150759664271604378540447421694686617825034593725740438851317951372877132052926856914844466404693610389210981870296832799018691420971998168926033987933522413327198086642245274588856709639349263551073484674316264112637790023786285604830590769174844095230073749318328903448032338296482439556224624008033968195771346491495399437774124997354703219408002188542273702469707431976827163965941840597322496148145716207375905610194604088826738469572096603039671845571909667689050049619634087895444286647043860087035587015436472364333469555955240951530087113173700604667966058222255487249927327729206068601135184248514496071588369555447043793080496355941054693117480719920786796697133254248423860648307184717536856109908423699325217803318612668558399726752114501643981202738456431855051356515431461733651472542081908391616302810920269652684263292309418825339562698935582683908936254552062054142971318381170890011095652589380840762171494100074467834388271800287296279598204413154676789648701042825230727662729190692664571233608739607037467370136113370806965734074133480029151574274019043039177420769127426959746182256395601106030994037374940051173286459819747682291287640668493682807765227006045150594296438281335962150886961108898386127166432617092086855148878290581090001260496911382299103171374442186367131484834801043457246233694782940617322940418269853164949561703869828328352008805918450402405712751999092611597232054679306664391906453240374023328937115168632223134554404958335224817174554069443499132006725089503532290719282684275829703901482823598979592012291127338436394424206773739780260125118800761041180472252671087885495076823301274980240860080324709447081748837236297311075897183589184368389500411681800663097379077066363249045564318997152135090022249675592873773961013646649339762279502737138749245002813789901521598631805445853769215837101188492299843245694241293531639138569285809117497118392856503387218270190181330870997890493451560039649857660476313843356697478448356718218534018055554770867811742705667153294454409696271956163311391186742110938343311794047881088901088214835989639075562372787111132913408560635835342034046170481484142893606118675678236047935188393870189988392913740642151010704994812969408673231921951778195902549254408805389197757701811982603214186248194086799412473179356850031919047516436741432851137416466080167465384127787061179491579353863831997425941864605102307133380518095626892044208944605215568272054871103643757998044398758695822919747987804476538882008461244836670231687715479995137104903725901621952960624277919917053785083082326097111211500887308372979596537684339983549842974650023028573990923628195556601027878364015331091039130298645609678638252919828660968410181285001804051381893850671539819053553626236786170140319516330949207859421841600131015612940543758848778233792928438577953180624468160823913165238737807336101789765895106893893948092343879926682556022658119304684365279302174636426882940393382610166722950512821738265531342265322968172904541036837454993860984554263724575762679124933844297909278553592502675232525853826569181076842905093008769678020655874579952338480336577904533742115724718193914323233059346815299250205221030786245084487454403906271022696580178670658845314465126536516001535069543245260327656871976480270288609007952148829326923285617174055227292728161222876647168049490222742708156396409987169949380844755182399985071474968945545761607983797768013276657954636647310254188741308751834873064563876481828534406159770020373719447646221541644066515383308889036315537522023433856027885984630679502114746062991575311363685368814177776869306476683493806452644030948297564360401053557806293574627984774812179529740943384696535746508912881035575689787733898071289354359006785057560665962572073347495073486478534037235485621065278129211218742788979237242023004895565786693204577294128955189231518704282234684690599336001891773343174522394510943533136749303731058002928497985094559946124671781562903745628786063062984264111828646448875951150379579259373313073005373799835555501111593841471112086613148057215924619014340882101807318274138397726015226080572430535077600033907302831433470965160684303190491861649589612458914572673934163231210148764953274423879869686217293572638336261634129402383332298271822681857250070665038982888542018838902684646358832806552142250451260798225824024692859496344614416368692292764323139891139119112047152170713548405691431794791184745511510868156468844438895466188797513732989520924061866268186969017688144696992223837627635736035632450916506369765342469266404876495828259745899847031380859784427003712136923056670451059131389625869425574195481450417169587803130080915668516437505513955295797399138006447106394672484358661739041373426595415320064293552810311138171894192488238136710358070105133128026127912853281356102598727690454982365112502151743881750413822809725141352482196961639124298191841905364991966111273955872270661871437517149192051042379617172218340531614926071154353124185843414173878496335624057335612927983003812380648086907748123724495130843400172877036982248313063585621975708260676914394077780017963458364589604165827661835012693841208344207995516609209277919170925855965299422422301499507945092393659488178702963598722924870441372964586762813975251473055415127473187344007655740314691879140853796086953801072601575793931741471162611588789315683200271720352251383428934382732914459091860306127181678836013768745653992942746651297210692149241385134151205126735763298438125985063188178950279343691809934574403610066970004501058003381337302323881468763678969135456516460079566047486615283161298662273919462501174342190942620116759159626399119108529270195482314765478873562803662713732718752175880278906928002365571497442491989596928957846192531938024853442757306161694056192056551610094858649470099651606393635081503112601945878856207314039388818555013854130847751141813768133513047734803116277611087093047629585516439920818956747989440070318317537759491069482548755737010543015937338659008500356994022931735403363494253441716978991622804535606065423044663936714010208149463037554678026682305580012111646557290050923707451250270867605032183805713032453372026619570696871504391917496453847245591956721677223764767945648769498538893352226007908998788395887659898788744258336206982556722769694356413341310766563524499260022642637096068536592586172019249771136032168979910075164229337105636374410924357043058074944195379051142977223830861817092814139485315394026100660132582856055716702792665764929856169072297362483265105286649700687724519436561698534353503470452650458623302736222708564001074681221416914978766200767654420132986015863261312931487045430292043827569975701453820657899195821586075451410717440364828873007645556207512721554049164826060712318312856898345539325656322921218352807239729220287483974890340080149170818158797147541755879666535778363553941365722586131535247909934831878351785820272493469266828891605127613936162096978667834836457821077643225882748422806973826615160316709329890030896734764386716217947699108495534917002880931876642315154013456199015484993488754588405166580522366122773821789571753284280557133850778200509160576915086164609382415112562343677200272745570377612369283348248387127230921100803325875988339821274027047627629020180572730030332248675889928971287661231126563419523696831803105692454924887803963857654130755998507275239210396380201619512367900619506585344757709778554816887572485381605867783828026892207362135428061062994309500304069854966680352151373645625874564738084794623124942782981850779731702057065261382220128726505004828297457080589667961775482425870621366185621027550521200604370938380398109220780160028009292052959980005158939928339281705316272770597709813115786331368126782121799779494515040410791869718323266727858871247945468780989745691755021505640660933025771802711265954525938635200211895931293510883118269903847684096358003749948934478189304098420392806002421258712722826726672977903611964040113800647618926825751400243451613428795477249775347265866324487781026338963059590286425350956350057563606478783998352301793049380812892847240933320220487532201595982379223106039237751209346467669112396850468202275710602248892179888954273331671852599204342686979120891015101747838863175257632280686316567526301273366501097609850016084741610718389255756960305233084871180087183677527053374546128116766790551580051987567512829864230292751925143374834912461966085903548364055222064736532348529779384470386653455927557999524010873750566120114168078855224545151147924201318228601114657785360942354389005499015381314754740603836953120927111696208495886977594500029614581389957344037916972256817556460144653676417914500029015727994492238884176063812829492273228252074732899280106786349668114112825250105847622902849021109388998073854138936279303596125462077995551889088843704883758257974898914380415043165947055364601726745804132760029267510063772065400481486753091864781997548730816394242546710598666785769090945236375433895354997710539983640053575831938043724844528478044896871593637016027053653534314031462647372722796419940655877291381437775625796449161366627273658220729175954617115846278348140938617718468727133155030593736655795430238115883170363328208635635662263895562412379808552208577092349765963709329441422282839785093599724984141021551819744188057099725958751864640617569978858392321998041694786535938551396126135519535754119641368346055094589485914247602345178767858567584048012309031629231209139319270097807419391448543803232293338399842770952755091270930745733563089760543271972996518553935321973542786545486492121540915487371966887906674060380954336030017354614398605468178365308848593104682099645258967378183687069913174666982088048697312785019284268523277129154996789308792624257532011611856891025866108598842282936614036966195427968629699919046829520450716059090915728394846553786219225507867625595690918207112904511659933480207846475104650873607965552802341629496751390648645579531235305516902433713174219731891840439696316708254890779263364553051672426687007441369535416465620680225742837125200355400468093341934919180466114113989900897411400245071404985145408596415206575387882732781809170734882397317669970202198968076111696959249875790796336385597129046017559362590187499877231430396702391251648576736988840528536296010330192107443293464772617561195478521101000559189167103719691791942066357317843759388662931936879505400566237643940890620814117641328986598471932184998335276607245473283790217024416816525751414543169526843139574600782788518670616422504160515451493414194297800681013811913539619408185268046254339671565718040735306897655426600657070455532274498320363548001770373773782626784289859796494178189972482733008048955111568670812809157378505961323707716524012961240025574623985310622921831980725178972222966529527806841427623273899463721615625099775387530780428236956789715853619239413434868575303118916341842975028912467888336317345742141365564193281263170672873344597150464580838449405322041674459051315730523696223770485282927636371600557159504189295994248443828577294682251402407181233508285923384546243881358686081302602040086130138030346757079899059794702756663160762376533926412778320490817002843821504645658326322596297183482200786380553931127623984969057926150395609653677980319825937551002405529934359160559283826955244050872486643072514435837119661938624330868468933169782791989657610050616999983731737836581029020165065812598194180353118511064264256973595400579101818919132393722982838738498995699626829191333709498553026465446448845066532935611390048789357972594678098122121738537440501618054997696775813535536449800145928606023509889985653389331880619536666913010446625412760713142220458704500194366986942205903838159084457229250169541100087963102930929155636043460539420150535428946355657042962889029476082800870885921312567076016225287273993926389479648932444839363268860319353375128508465091761862486630534575194706854763091911825870081274284945771343881429740922198868696924548637865323429866692785051610486430410447992720411730760094253365948184620763761764914453538573415703176699931417794772101735943463075387020960381724494152768446717660920994824419336706274428966775732262306881098058916863830520496779772777834889634278077205054276477548856626177000675962523096027652928227001590804711041447955997805089821532502801931603721777948539589757442765785002511197196444582299397444321979116137746417863876980724193438853908940032038197035961403487266365403405820578259696820310554310101543934108089543513136221603027535687468268037449780175802703762774711875278724894575388230183489457535716311460694072939391029150693212104484449275164956784213491327246977993987299071168202461847948935986775511038657057835751943967083797945072916134699936262266234136572858546128531175346666403066584328045483051886574940710434668004917355750105183026975321345850172966578556769284579768886985765653074409579989604520264192004308704803865015736772784769124848636847601893841089520190442342925553161562213754919697825547677961255567677887133380973645350801943639589092354667784999017791540327846015712654987329569921142110585028580310652287908881079122238946178281884188906735338875367421524292560220536641560014442248390071203682902953270089387861679671510764858568781367472245061674714367765303225225359757329403076418845008175457232656322588241585792480106503305654728388335000668935544269498268054789639006871589499025650670516513195996031286488130145403253479134717516945266835714052106541882513138134429189193578125325820232769016590477097937207411266002867888410586207524823744480061827161592746392934820928062236760009600938041165534121163886460347477744806580381887554990876392129144648431192449700545173221930856417151593776835642342910280097058118266930817460352348760420528970374078302944685578252869743208594069393237480039432705732028884309308184443707068324449267994052470567813084678571958624438765823386489954959804388421549439694608866218187688302450459098960285051956871359768544855787934028661137034289508277739753275023714770758972582617656497842416905414305574584235796649277496604508416476735511361946495620158910440129983726340201276022017500254439965182417206909333073027436013300774213601434306208084896528781707865397086013821566043096253471483444834175791225238212298794748333574190523056688217133112886555075388978423302440875213040629048408636414951257191700704460805392743447146974041148983214321103062499243262459841330493851233409612974579714057607702093370353330284441851815749316855157718680859995490547119397887020235534667346609069207769887240179903279382240745821334081655584868449597762898934253849740854758649020156102767490375048796074217837035058614164774703506698572095303258995090496521589271954776576638957660183209458694676358404226230931300223654445460730477937085079095958488093090907662370190526341639142531396508347730482873256642997801569474187855711349600691139204005921981871208740244325417098459344331299861198466959686344068768104312629387657929547556144946404741031415590817847492970339255273152725791631247785408799374882807584545055130111521650677806598838408479556938500424104285340341551429687876022159598990498966171607057556533667418208455792182809925548284902250547505343800835285127307166525011238999251402596452314623832520989641030863879608014648309783131452951486516155900829180652075420586695948929878268968224039235980636498854991338653484471341054418087746522473549005052999855274925946150143260204187070013046707404304943915450348833349216047393887211045119571176585460644967873784937869443578062767510970073359525942382016115011426101340026316723664581774917861171577886625559215578449580458197651601711741344910632147404227130972608000439524095964974642904411933508725786748185847864478504659592761627941412898237046823085765437006365819299094216022206559155635902053324179506154021851515120145119582444740245600256420778196665128665312010280692304061293031347307421363296011725625634142885884459219663838285991754571328446618721598321184802755164238008969097282626761026968226969733211054386301628082774913130448617678060838730518761596095810775208380087568182421202827482129575227333970681742283750146055384024125341987721701207298729261959471518075588677533851448520774188551954843982110201764305199718769774924705193551370792348717554717480526245846618088491275672595813651810797842546152627609920965238113673523798318653178583008867259771159410009267371279918968580822016670178818766232754077216801851874204935461108124677325348855633601757185409583366655750607345628664831374459942722995279317792417965951560366408682890894214855872373289703753688449172794124914567427247562168166655092913676050944529168309916589836555655860064678495731928806615593155697274060451498973248916428474260045975093508426550882792875037605935965353047467104149479909785251773193812124062600785619566957979529981250575587005525526386811460780820084424328913417537729720901675978880601540422046402064116554727609570313238218416029416571358496047323586411017546176053537818030567752296148543919772428817392304285501753052174239801577885977417990350984816163366270648041376701143939215682098460495894437951714229781125025437215535739771105383933697498781870596838953561600212784622406578731708419701428138610813001167195651790121533535723580272954212059357420320131647572039200318960461742879562096206447389043606969638526897014631816514660875298499061613156675820372170831808379545354601062148264403044655299011003464259541146529609222951331731977747753643392479260427822298541767757905855525074130044587423859328726014737585313110727918590333795477714159692831148021070737635075371605740494184862793503611789699781696008132238993363692338392741107848832592167739544522268942193594391273338358404913908501795089595142509072862056202380232272568509477345991756101550949327991198684478121507432036406159559767693957745415068258792834159927167869236898981006123993621686522866206480489786432597503175191426019480436587495066847587932194827731826065118479341470401883829466503415556025563462943041045403549914037905238697845037007362320003002329574349882120459927730656233425746023258820680217280369867660046985723086323414809843331123480339064544491343764222589143644167113539345178522874516237528602853070696712100851903149141415316549173387122770023344225320280178628888920084123775662442274233758382218835893741735579764636548578676705854070589628353348313832148675616639023984207367357916082527902382772532475353780342179813054385633549562951526365800409780453229851833883366063724219679619906441055692932055759161096420464869640040515485591270049293430538695331064694914206717808327650063212850218928231935441202306140325004021499842771840447179692872242514122409395622783697152123930236313847435991358673450982179079762076905834565061891291076657668725412215445876448648547117968726622546488638263520058100819527417477767932821839488159528487295604064654092890319417359286077889267804163596182306549541942074675622951879144891397803682375195963972676307745419667453918658968581993863344319047950886713931587920616967197090865698333911751691836338041655818207135817826316980732062198863371057915127416847499902575526960655655512770519779819041429922874643853392328834219685950477212208061047189232992875939878805605797712571050201747843111480054106503037616142823638806818098786913865102593979158658481089876184704042037518920811423898885758013545230834749146542391931913979492731841820991598759428766343431686710934392655942638222259447381819886088259751148449632414844413525719870276436076901580500042571551031847738620645305762910803831544913877427910734625805629457162345409247624297518063557380584337168486179759339267441889602536636397639987956432592457749286542424164258414621204422125305824006696409232564820661396533310381434524423746955481009346960634066513628485794231952300648004706246619810799035876613304539688042711495654446792114275281078912480699331167946549216419351434567451772778281077967289805179528598266686835384646979046247114912743687437360033688559359430792192923754707145061396619108429083829383115873199357831018652915347311041720430102213073591904934567991513673634845599737846323278514093239256979696470000288690294185179385420686936459380412631974880023278679144119108337204814536628935743755188040792980200005745618896765521685855363568881905033787794273538641997688426626246845706295194482203462785051379303727562764360489745098493667923223260826956519981453440264355078445096588352346174737367353085048850950968129966410327883453915306599846588028844745702361929202201258836014432730128623806594473837481054183117016736677374914372830387670566729112554745868446609476424740300220230269439109064744842100487464070437918686237762009996323298926690508718317741907571988883864860409314101119142807130472862539058491639415351359867362997185931616471270640090189720093439824706699958155466801838759552451318774588667687419645835102142580175566714866371517202253067970548540001771674790227432929513570139661567031571667409572370037859685933355967923440244557178881084029663723262046429985934523062470471491264134469713617337446314125036141721153894788469473332378722446376843521113787217163681026798796981117182000325727157415022510710088554335396807614630424358885066814851819413780586164768024563437147343360798519294548292133545670570168301680503619632412722590018554978857112108659580694902892035318400079053381308678429087200892506296040756629063092345220975051691368352329781912480261509094091700711247575968527181189555884841161373399468496068045000396040413774505746701923922256636072477108136434505466020907438710824523711860423961703176563813564848812759048819549429509957103875374677608561081598135130813178454218226097089104097608190768331032057632865457303611862796410587652839770233769109649955033106450166744059151265243173187329371889003433383420334189406511247689091271779410129014397825007794099816544826064473104801562679332783675279860618668559243753285030182606370207671740605604598692434213643227446389876420274778080073759685934552770879590846714099024450481640035582506479530710612272823490035081330898726108020060119497555914267150483791111118985007818465030822704960249754947406294198483956990101177365124081380754297599219303565856003917048634846871308730972880989821883901211313917968523051733056697083558735294703532654214677563179642562513364523526608449440388830288270970319615518472127911516015289111101557888659624109310945482483592219726674363809674026552519003152022569921998822904388923350978578173360656163909333364872692388640936444088257996565032995529147720154156017959423505920350328700959540352688169310373609412251424350669838176610931213863730236228684415800412632484841506547711168905121940618047811431806579558290991105328359661146269535731320171129486061133722828268845285809547318674476095182321803808728615931975171461100566140146107414207045486297278505669427431196226671476782359218174560946470309081922797350134685739699777885311048450795115851078987286970424362021380191703753385806283715745447093077506781449317136618809094216548480061143002200780738939437554485725306067724031699140251272413081807765268916896557220350898977885364190208442849835902570098005221397152153075249981138756474884808814820686321274745925178127569663511385589025469011511191836131059649752153202533685276145326082007707422842710846736768664244006774620151068590964203172786717455847254412996812752925698371587123293214725249789226136851049260702479163477048394853151997379360988494106074387633984536939364441554804369187816646440972616324917286519071639704973119266601631557278656847513744395677370006276960924282851296324051363775753474994860865263862903242158745874833676412856065702661938363859059260433842933927092563265928196173899283984543260677239268169076310154176484328075984094105114976435560617903367857020589465567148002013319432869099413213335636192470814901253247868208604581127145657733357143108517075942881468958265255252943288595169995491828225640579899782550625383268097192223495166466019396367775154414038875933596061268080377966849487778879414134069521601541068885651913100326156723558551932067022362833675641804078800263964223352939537987987272014735017679765610730691062153231812922939482329170351273316044794828359030648830847565974517432911603836916008262040898488154701976388735969013680796702678982870931029375074655752719659095549128329622597565091107119940293005234864284565733164470403494633643044449349898639859059995786284550493930166410637643671400453477174249717971780968898323611777147246424075830564357417573933427041505643461189003689604084982948081807685676857829499699401338201721201139161088610104160009686132240951454560104174533849463717687012108061805496503073425200057763014258818960330431527266788526714516079649301476868632278779099570809645921674329462885768446735474831259417147798385377330636039958236290566989513215793630229039726525867515187139561841061953542307888801267062829137995433620260993692081024243287680405731387253654638222736523458528621192564089164782988997077885989846098632597808071304190725197676494099578245367620034443867902400337892920211622590351639759344361270822224311608893276261879336901432681052682234216548157001729357610358756613275471991948741992932364166158626527930796342736131351486318995278761779867718268978668248381942585366542526555447663096109386412958565070054648649844621614326904427487530760053992870938579061805361979536288521822694820125951863401203917994943502543360572505157903502595038750135516979469145231813878209869126715736199307740802728521818495449106219055867311606115894928594296206306918744775210627155380035480986478054219329349361747935934089812865060037942695462995965024007501455961419189935376046598771224930966803504790685182747878703274578821214339200567453274320967006284417167458910960574998086977024055268376278322484498480817407341753268806945935025678833080634677319601072075912344930549020663550775207439201379787691650611853191425649503603696072894373263801914960149884808404779857884805282254448430860286244645491028139006572048802080906255995994862337436278296019473899882039842791856755529979775336103069262108617277943799151082012278704715610499024569105226606209562589740211944308766290861839914494030777386140468452038790742146719414425485079359849908651613014225009924149477399536113373681856399510686255456868259912841052927958856399920424243925510228346063864723108690886925679190426697028602617416576214783182505524888422449528911944347244184083356010632416916533526764486813861972768796667320692954910606244901372152497318651679212726672669311575226448276506474795395246430118948518048093731531912281192544516004085777015520277688381194796247634670397484548778031928283480183900505723255836923287423153205753518427813823683590721570348132092256431456701990642497032690405273248366951911812655615123404992259288943119246160274160807459216271425010654151351376260615315240718467611078442933738725071124167359279539091508205729242010373220328383021678834176550828635769898347212666485732759561614748596765066128386923028260680133742299400570853037609699982313580435041521078174540029987527378848748256804753846763970092722058567337260828147568552829409259444376408927319999040395367763763689719402044003717090923907378758806364460111394006262045244270176031597313702838795753909275242715254772741423683672499223859169335704170632661647555260794508174150201273817649576376253635758568341381330351137930845509644987566879691141143664508129743067788869557160515766661264785967735692362868056002206420168548320835617068201318776474275628737477561661530997925662609679407239074104760328957612970179034334505340116723625796384936580116621509861490576937267536212525625755545689368700307907110759032006960947172070198843429509841595953547417946479300468179349376303598031945388925145648507289520062020163063432049060689258112594588678757896008925579873099247864610004486461301063478039477678554106916293293572985713701247130512696303976238777766132460488907138825478308633373644760826723105792322147634212924313338094899546411260613478837023244026585891476581721733021047067443619013047561555770128937048677646306805194456779695185862112642156615209608261809107524175659585847533305442444806517790594424156746899214191754049240120926450513100183788423332851370029677813681087826890835007951033013036372957864081962855482629464805519979734402265171937369069498729158247850195636537024978719266950203457712482911410390132137796017270647581971384626956190396031165267432692606930907269209655721283880788696615772848989173015749031433530214130256744459278882007717024405826480730511524866821390195244889038472178079804410791850639697044220055613721558607282478376157616798962804907633058160317704660053609286972742110085268125821941147144370048942682907237140701503309429366927967301174048921519473539703710272145227572696242584380871488268539077078824472810653247437641097225424468479969239052441310754095284458820497288539291840265157286015646464160525664551187001832343443190592041636344538992030908434800851507834378749780539523903512040847152800931728978614738606322154454256480156095984432965243802902316534150061925218886363731337834620864604916859360206317325173111448024227141267169627234924161109398980237629370750347979766288012965632617485809324494051377179872027318351608060980202484476726971385465120329012453981731223141581522308833298328824167404572466318763524608831807164176518170739066404990976257836197804193109555255828809897249406919400969602074610074580516821309944120243488407006595890904078797345751821627687920784941473683300435399957310335674905993201327676744513043027036214319593473335348949650109920490145853654356443529690795026445765180028191967930206743568659178638027816973399552854608262200275390259495667206534121919578141224670007079195556911704887788988142887840912942918819507197706966029373916501271340965201116228411339212910842909670671621052459843595705760792821707589385985727021524162225968909497057707420362353707064642874204348651331605598739650208402909001133759224314743228984038694970663859038659738857506461212897552252346444125435413676944378319251215525209907950202358117888266991620655318213737028012595838024144022749103365763758858406531180394690547592911962501314077289756224900145874440321958669642742193191330716975637692693937191372212223724106936605246875707659496022712721850628076627994042159280571764695339087038475298412499931421297762542772652400973614670596030543274142569082000865510669780236079109122994131830938370066684441334012445094833125492461656722593606514277640564668505862793869582685709979589607570800402379186187014667566911162499286335604618230830414911781023801950109935323495352686412986562822989800669129253899863829628550280470249105027957092407098834012683954201165964679947664736042954338846049045298384291897256167553306740186550713700541243944159276001569493906352960256525782842215910813820268020951020188318293138050989742282739281348352639427925293301143731448339071590834772560751314090290197623955060798276673228726093924891857910407801266576813167117623860840700866594277100300387683284175197819108088218072570860027334079274159396141464480801747924867006763745105239503442997543348021168647819442586910737245577061233538087242619596313936963636906559834003744667840283804992037139288534531868645208285184550903084961312999258041957048892550035375034210886947767943670619023692219698576436140384148399334929767815729454876650334958722424955951712873101112385960468848629238278825964956245138428897254524850264259285401029990788049505960521777071838611781377895178638122563244303706636234308870911581692374862549064763032688051902753004989446883071336882533795086518887207270362272244667117482515603509255068136081792283767147541990148875756384966668222444745129694473464168025650883277644469418991771729357575936445364328969669858290358063153026642987019167875124240954786481472658489908826976591304737253043570888268519818185792523979668765373507167232809762056213577463778940407121291937230664638708882093677345336717442101675532708043912378571976993814269646708762193065719480975391340537318903580453662079914785090498516532368442348179522485131130059053100610859563903953772790775272915605628888361257826831745084454426597928131853984542764249868161124276329253810055462391359889263530549609392177623460989684703617007180203918008384375739441716611076709867203724443344281648140467324422176976783181753747088210676367422883123279806103940836201143901695830979313358634701104358233549996811294584739861191039632781876634038130554244527811122221809164516374735698283030255356163742360976389862340493693840060843829497858251537297863354238305261213108502435290657985883272316140863255221409383388226001606565976794669409420061978557020431137056428747329463603954339244126165387060996614227102264702636973154603143351266199850432719854806800151229307568755363445184530429919917000854613140004072106024484491183094297027023002755893312934105107928503888825803720998623663908821398482549410897240619689879339358957478591665602221854048282234420172256386251726234508781250588863243402842486602345218737269975934223426291486520137743657886570405721674938145745529633037901371128615194686741819183999773067665497402455041243674937146241860688339769018050639685216732577234846557463068248251343279807473804196211192529692514530716572309355741411287292455543074244423810645312439405234742918892675934898841877535735844987172221183050676400613264662347183869040946111522904509476420317470307653699607982976558913756509069081499455965763398747059916073568823781893945879255743933597739038498796240498910482614998151569459619036886579095067411638379318576804189748761411810945252947400650340679558063591089732934715003923497085500590414729084984900999464928972063334520810464761353401912948083642677607662525065750460870394815489871395166588691804577096084281708032848724224824047801988087156290915391267592548891475832297919538735801144158212322867424794913408146204549932648845595050748890022621896302649334911446811252224870792612452500861001195566900428436258756066943057248371470202789247373164859848197499930937025237884160906901504056221822051286836759643897674968884279993712961806611095812252746912648453559137447701859175008504038949067411334100960947572071648443188862105151664533513230514129279202797135684043864701915223746323993933745568678318204560813336717139817363508122865541065744073245545849070833972209929374492400328556744761042306961104550777688709896736043092589875044519207881975563702587923333767475304386805235166847869262090780890498475106323619204492914829171292479850000517897117506372495889887028943826549301092981997896323433375652361581521030750702293824379824201288708502205916294275138871670607947422660162982475071490269701156609460262783504289097408217233058824959293886026190963589817082598864463842868273691330815510604396384963285343974208408060508619182872726495888240882565632111739846001150739519229308308951967326295994376337535572895921017296804750820678953352378102725580801125086189931050789813531849400242052568135749416076121053468753185513320853065586188438480118295466315146627264995424794845873214423014797384032853260508055476333908495145369339090039588057580459631520672415767361292924330273709113707425265508365514800793778156266721988724193156994024789695527413880648931561922719612642793539576782181640977838420345123186529994423416096746485987901836659147114889583834415159825502007932355503508398393708311267943135886979403115997285836744065309956645825871439764092113703881519673592826893998370547062457873712944298176388907664245093887575803254669280881925829402319651831859092365443229893887415010387462407619694919838753854772196419187656583646811110688105757610889943111055326332210297005400563373729467592944961031579115985351680869531725660895955266488383128941195674212050420841276409696417089225337434008010259770378301576976189020084265565186390486362193232840478739873200434878405367555254147835753593438168951438869132803478002175878967765478548176352213548320309738600401423839914502524510467309699725095598744839209797286399087502510826349034613369178894553769257336185461431420366256764898053505786775889698954784812172518784727244013164372342410696161024533145002998570454853467068448949727740258194461251428859169232011771050193983647644568901904527824090047286933854738124418444425986438221270110736984062593071155863294449564922969741338523687084937113949969926337265322229244326900766787191204219035019719085200106264764437248325361834136908888464048354443611177137392911716223424895915769617041993936392509909677821049342113260554877832080885186847180129894334819619009745848249053408999802114221392859257511209642367464958283912301857763928292885062759199724815256822790026324519040855837271816318754542220467099169825324872117104147080092027265628954834055799413085678636379720149267733223459318189356542154673057856232368611784512659260625920100077910838125980260631200357425303692018041398687601296444484449701198286728920931086933633490809610353794390494770537832598088145668430092049976322238000890202256843986288776856882742982531638293791422237200264633461816721966619571044689883099613120953595766637691921931056632839754331060578319624217558808952176784702467724093975394692042539807315968018678588337104406672475981446368705682129523192373738220566003570725186039424223516043284293179334332750521913631140227430193188040710749872685288795343081656264425502163269499140681234154112350894424551256727566370559508240399955825788363508373265229984803282027012863042767576899399638494127040078964414913547488021749491432170714466436136021354559403658763840965853954949173661203956478756013091805757610846864276167084253520181969779038363470062050260483147556418938007272428579993859834571691346270741155303753149549295990623750931744851920115013880480513322095068588295429129606439951463752359350725930784840030620914155299534185638114647131060855690993397341793499163477946976517191343851423638729185368452141114603399722859361794752019389437271860342961132640206059198966707912151317449166389716879255644641685080620507033262262939349511271434905639916721888850911845048333424912546068401668128024923606049079479763440108314907500107719831630576811678727967870370118875232984241954841621704962862415993121578573369167078573166040493140198398556554497891313137883211410724968039408680102039004962245074021283142987890237146069766951295564930154646419317320886053343704238954221041286044218326596135720147313516799323142480001741632742225889910215292199800290106988382326141449286546494343682707668734295397676284571396000434685837445480184689524927605279777291931234897974752733920422282445563510265578172236253399901802535487834806663266061563105475335107346084742614838260660618189428415988835162801514543540624633257389569642011926077304531851853535222392160277077796399423620315731224998037484579685062267192323995888927679715208105405977328775900077915563427576176836218773732868917028799901130285766116282555061899021206903725439327390994656065835419323643196681154675014181038092550105002473671402354603284238306026200632123797332302218504322882910728627769828210261363663346455431867208374384935678899331366344939085591440183694331800835064944835449819386034649925195232417550198059504700352036285270395857528475968854174065971298624211021210750341405720428102887863476818883423317679405841091306434379782118572423930283053986370019629225015611418823884605451081151686003050484312162086833102553796547594529470306397984613386043394897499609900745454257287848370775559586763505968540699792874680990508268539010094718596419882948229187389691385315756813106391575017304306588329622837687353725987355484401737676864539914557624586083088171986395891485661304432008165117608297096422303931786722514503341425272008297648050423576834135496282166651278457378588759797277986807105732588024638860233571302710867019801547199675312080129207239162607907262209074902621457810927688941770403609944688602029578843880765602070512248209097809825184987707314297393834957203136787106724914835947551088407627963150475896509555416949572827656727691993886711725265494492864440937255892824521606884442446504998829654750319483140715311722490376331471864304075334033309104330869522932915035594313913165192726026119767454097888849342399031041566700806731606278540749466439222564972038741095027767330356737107906429691874745861846498325808091323842875565943416065885526775174802253691261681776270554284085898726438394831662915027696149326177962132489637671268661424864002879722266942016728949703418822733339249975949618530009070090317995589947676056932308859917899242345536583068895447365760023693739124032733203013011056817997425551987721301992101704371150889606499375771811180707516810990376071475402314166106607779235439561022181455194088355306265411790874299475948309710058450927119893490297626059314253677129594738018067428930658349363509887873482550758405841159325232812149834539590611665435774441071736920950848647570008261269619037310239632878303562786402140005152762760516416232527109192728076116336270987886331778032996119169430870986586949906171161873299618793858435374413392390879085203024257084026077431923677669134041766660972720336200841808429822800307188149913354510465275983403899593889626127391328345937569308476497866204761475961152892313555284508725974637416400877972975932320971245338411151734918577113561433527647415662186233739282135814757140847936480712891544416282499426154549374463488570083744812756466365089062445091141239148085435326027890840248455619193971716093637507659912207576908898874474029400564424486644656432827186319171885964365075801024058361865996260244620442471963129074373413540304976678900690129659338004900116833742182663107332089958317395082470998513830494727699445507200558421094933258861791201406327897455563464447930954951375805172193544832330611567337247216991665838734060566937710751785335605148139495589514275323538503043120765060356141745506801220982182918323903999545647195396702656761508489799026884418703674339512783942732698509712614886854810501563356295585793982663170958263866755013274448483057138410280850002439086574880251338802380651369670414733563818103103814754240819746034584650820024557467156318006508829130618767066865949657844115996514569292771789820031710088670131564815296483332796174586925411110205697230139051627967360162283280132986083686046103872300589359350570607140483083422109347668479786846809082918677454994091250498138715899298612440439965850959205791925559678806558218770150814060497805269649010196520450106940729275892041791720141583025213150399820168021437980794862639910842363592907767188744005183546741652649095379297507965450350126205106760554458099521039411682168079002057288036405276764617854543743832432709287633580108096969511931419648857232931750280375111649589421586154349336773867596246566860566565538862734190377997767457749816279029089283733414187477282137166554902175062310018070150326408559614242661312732138167276311653841739407794595224541122657446785212656386940244277940656115329152485021986816463604145282068921862726484000331476211840678651329095089337876418717715531341725262102881981860480088354746777946594562824857124456840972239969872985413866511581074878812228000671679906841667644171354572415790087780927492049226095959257943550993993862205997202246550084144901035451140454446895857208586122416762920033274244361829900597918220375768438813138176370153213443149139480061363360429716875773161238918330670939925001425523311537959195841915357114630674245730622934348543054491649880323946048195552813410251677851115602493218794929248042557779626878138533046603369539845395031712314048619070874948752082812010847171650019450565438492973228325061977095952776094481817585976219503617927486128030591362688790613665816685822324096044289889959750712462216595713718620397516124608300197606024374550398551078697152844140788140252649384853450855173574394294015166271823484715765891609377701624056157233908179149571209693405888140031822665736651609707455631012511759018330202516322349351168121538181616927430424722138861162758832142574285755381019829813610815180098068496982766803266606476616965806924585955039544004808259981850343144615043618795147574944406378197272963394153139366249353661432876837211845556580207448209284724310336099190145671273882618345910407555096957566214550741654336913543322521219134292958689013622369678500453073732265914427761950395206486802501352692809225265434741086227939644184477147845951642572110190414401821384469268079980746207483495315747525394359089811190343137887919446826425160869093261950023628144291365819403251333412958184077278871590728720255373332480343757773252622298779436954161759349015796146690889649695959595759405367427326073135844562530919882011868861538395010618864224735829541434010864250853500383690760667086920111944395130478715005527503847890883981053824525370583089772653849950784966114305978811527010098195929229314389768416847741866866235316229614691095304641235600887119300561275222934299556366092769624657428744099299460236660898190621770611798178903648606133568406319093876563631258634316143510650922536120005174447733870472960622933639955767042801301496178707479103827085096126007955797192053397966894009198684263051037459023756532312053805257702850733428451188583014589438848587267445334154302017153474587004099641672942347699206573234321639997288869180805797053772952403780301801445794818178987860565978951462025867845907448320615135891098604457437649714513130989442990993686766099329399668113863820710226809562453783298437924294690972467089717003389665067691196685701060110142594592814052805027042939702929220455088024757813198754162026431110208249272124163043554994553422096680679627648759555272353439081030802092348916639587356248841273825973013953402132352324635895600023149622880672451607198595745731996010684455253567930245720864615784066985726226368929217376429491242911555626976725094246462232944635040514529016580103828486423301639471244447909696922392687461907730592220009208650397242466061859156963562427535807530922569621660838894940860164698180992136301506101974541987229285430903154983727826120481684159721564808175846924470515872836199398443593894432144061169203259184140376786025536675583465566121051392502637896280673172696982795647040662507362796868739777064133759368247838891954463935885969968132091059858056208329021057535048917022261693034269281041999658444753160313608445365634248539012182269866852510117238255409341340122136914512321552848549145535671193075649577425073381566749777658866923026507530166321503392730941018080572244279791958213018246482281697871075653869452336844894642233423375728320773603572296122303876245626833392705987036033580383439952108573151060726396513247533574066285432134032063412462268501026765948779047559159160528119407352152524071653722541183114983771826442261259708283503206166075991016384318588343926069887602056508421413046628589501713482490421953618479066680221498816150014443767274392947943537149265952600800166780065902765464932853339828009718653594206108546409564842196374165171921504807232700117990134729252463877868846808823630605209782768517121995738666528240770560046012964511651636786425915486974571776670164235937580377720029795948354103803572088362218377837205862493775006600543897819047594499008742857933255733965447386778432696170153869445087593042932007994963199660540520610526819021940308926742329890984860795636654962907109846774425895207611737614904429894618787026286099186748544683280096926073458544401871908120171851999583238080365616461624579689527154397171643136981259163933615503916548680454293535237110987416994048191708858835867544306987957133319356601954492232228200354749420824313604012916052768625569235051051871616292680823851693982399487396005896416942650463376860714165999277710969345422468268770691061081711817246272552860177627851667454614018792600212886570533278458090168180893365976478271650691435357307471464679748602707549957447461138538992182770003743648148060379786793588782151339205037554012793266470748055146545963988252634762756540401054969726275564165808141952855169542448179351507019553570819480491958758156114974793036113700701179125491533122525295440337108722466904332240064756976939104742609758389985982834670488995708643742706751207822824145819437409891775186335906852452975625045353833124140606900586070540416429608669795442749336034361751471638303673571733165151822236586359117909940733632119074917161998957402241549796318249292184321077588255094273556251289685881165598328478804484130389873391488208517770490351493877591727215305993778818034027048108458239097753499119464723747520491128129948175846603850062039575643820625678989098463197123047602166168270884538217198513402134784640949857762546621994670575615835998924327810128802696667320644726186478214416315331293305344745552066347258462499954991223705269055085834485258853679489373795086589694111794186746915502308310459278852044595559388047890509338170645826848055436563894501330709303299806881322990998085083614188197345883229193895877411855643642183842478509446225559204239923935497862992881262802455629184070026179511064738944943873895475475345196357941199397071965993824140517022116641444068894734097852438507743505958212970955302741804614195765643425078276232583667528780188869210944747228480183565733672081469631467329474460997001110519514995585248983779797985922410619637572910465172150349632991899043317708147345965076772397018554290991305000553204315268480509909135926601871625055491773514314257242416459404901232060854051142583963343039742771015853241459672264604561406015460808522102734901964315331478612628914309946044249096209499760133303772313697149074881377742436407141390672142566203167155313458875663151960167230982890533962400298316538267442922078226407579966737602206498969945660410447482011571619455445451414663271860640905494529712123013409014359097237431747791183893473211796711288417275999421160653571241503408834970300114670345665451932639242465641610164224658043485746223205777322199848961287426581075856022562764065416355146005892958856486978541678016639424402430283775848302507623777860630718586845243646500182483965368733692803617574668450570629477803647559148649887036060059439053994908990128327371375051570151491926066348533997636207031190180038679775322893628153880663049592667415402272108836060506582459991571937679516802017773882294557260568724699322821675022637954437752566912979912894701577326390206448396411187135179377086838221194972504665088322216365340575094233539049140456641983525719725922741446577153045931392438782084394030287748039384534872301505742486383266402353355722813445292997129893984144656590924830577536499145618891808294034305653086921234638335837449385594463212808098733518796495583163182791484178921487116538403210895735149225075291546273995948533867933921382814461622701085640655049616482541393632805802903384143826740661171562865503853102268945306501675189780801862108958053224754139821721658047400912089969300105789277327405395908442442655498050627504960025625270549650576178053675666594303413080122662127722620210559368959471773515087613055356607687229441577658493238768107996312219636353445116748901765573994100598031026425797021624821769041318763825552311810266102339396626866344608800271897046019395767818175962586784261995217935894310269621504372491580766843909923286130336510289167154080560962749549135566402881245474778054235038871038003155908044519536343307261449230936651866472552041385351223243510757195788745341098507706431370337030283231327953881245224301905065945665365834363406567003100640595875894558293152909131882889896609286804237307154574780060754443349603578296226444980789060066154807553515814329473122440647530121020127552848712553395367462857185762436476631975026467542637622201756057502450456192085205929427046836977018990201063357037956915084749660728517788051870547658810910139796488370768497821180761077204902209678491872611369183901051440701910454400595690569850986641729529689143152054515164031993855893654087259375728695373813393259747220611162631505448665954460125277035350221939453021334032601004293127932888026081936899996365937926415922300587422478501014701462339068438015229130975408585717033466851691034316457499294096004254644274896537060660049457016694417888155769224795513675555491544997911405382976644417796325080296592281087761031145231078385286508054863456809681354967710314179341362632999731634509081383027977225080346614953331578964127537219932416953570548972872482168786397150322605868137868816828488182524566089861814701215679309604352325559828695099079113787584164115075666214037885387311229961324273527460360727992146172170778803121825087931657258231847037818426822599866620538054420556403522819073634156926228621994423998448860208970493297290939335287635056708659891016970744313409707013485375839995307130825676183680025001726839249657014480031883487291118524635736751348596959430160530479004429907301531519718312595773475708738505578632121295890738741440139631764892772279204174097473585142169168207065399034068490120888049967750892621677857417692648050591880226425046489003269510296350069219887406907723466536699503321488969527471603538447732444844878730455921771440367740823529477014710475188268755567043320029910199932802170768930367652169832145819700970535988379396695338287055593238161413214417845168368258811156179181004718331330806360317042970284863312138228231990179714247147424898905128310325142762189436900258957339657238860454893281869020082953056612515321335323575098643128552787377013544780524387818232342667432440628427243024397795859332050991486913676773665888832435573412407910901829331452044641766180928356934048446748041072962757582166469668707377460844472170890595159226558727046911018239972250813665548962408155241797142471301531675015456806464181968337880051576404419491592099043521871774384184554588323323358216223699069024468478123925718866211681664617844324634008922910988275491173038881656728563215402168991363302999605067553411447499325194823536554714815352694518009737471874535453089184737514289110179180517162508259080868861533685481970089866529805663731163949598072729900733154091131334895599412865470797279326849167392678456107290213430879530605634351579454331597475839935051208004288351504875797478880664855959635865810714004253002946387857881895138283716829636088089841374887629672783774748691427351861262220315946041672556231971979007705700684729028729138921426290071823638837138264090368221902490616488521867642561333721230939817388073059968432175973169466863908354986091272890499639735076131343855566546218623220066787640756301898671770269352468718332310487703903128685082566177125027688515535504454462253751265563710845142721954642233188097038925627907186350326289936825084805068517037467019903877076265230875587432075177356755717764864480507043162386663569950565053919637828167226688780659529677530172259367468465854584900221708591870461237742677286667790065138361526515229394252525940840702238014703277826874233976762194475649951310473306330293163720404824807298238946795226282049227083667659434295001804333602613104309573239007292570096203162280580761464112941161076943028831984713983370722785857510913693063355354568459194757462135009000808247519679671162630934241909081193326487849696708868852555824969995013737687354957509803086284266842336958390550087796488495202813088692160853080175659564328591353680892002645337213476666845587495453845154297663605215970771210086157856231816308572708882373787258576518923911973989163491383268402179360046412525154920181309933798558638255880571462256953689882990305486009247977539603253781417744550552772190564393667806592061770393831922693569001424471938583436678154443543977324959925680173981546281595999680686064453104638455724071094868441816408824697337046712394598493022021130950284816490993868314382798834708467581097179166118611710872985494182521134275673543869910978610317204073339384119822445862970541245941966435985964335008729027114888941008969370773511325253614830126104537448777689088243286313767736828758078151843750039411311012954791515926613600003377499142976701062720625693758717849391430244188703438527522134306522401145432258753302168183316649514903215213836740297661459362450376177955915756474709297834062911092615967074844608380537804009330893351125018026242536004102046770619041196707106916069067228719236448710215965813401590004176491735751125377753397498003626870418384632596879011535087227204055201665503141244767620568703912954469533412896324266391450160669273468738881824610589826252691065523625307355131465355410525020348762722152914303600774534648221128800224982991192924091694562393233306070257673523531787641522064492988702292022959281054584706253636626508256515327483654883455175000045963620753887013614461265019486628996487556950051654090382160671114998133802879601411333909763890919067266747048892601978277947162634138694465575771318068675775294217665550397786608863560642347592149023655257039524629536274893757370928346497862274839273858728509343960331755794244221326750275015609244704945037726268889993736254847268594629026341669904281121409183987117732849321491246095115613267254228974091917321870129907775443028727948593223703407437702593621999491424375742121087206750108339042588040560341190420219915406038776175824590426413688417041603270364802130091433361428187961597744115543641705769548049468000495859750642978763485321912089414706533211173282984233512851290965481562130529774836948180234623544650918133576878930792547398195726249510019672932714490561856811906658151186651680175721618171794967678866762141275859290713569478753877940066512222230395839037283554118765858317072949475260595573275753900013381871528265401141770712960665905421854983610412607346832908405114817884669531967442466956706972576474469892872248316530210571817514318679350126419902976741429656086738116406788427087263368877635255984400479428722214679629246975140005221010288683284856701388436572788941413028106404091803254263528256366325626826125482658304905276768077224695842518061117715694167306835021069286502751842387333674557753112755978228584709924567457339238308054880586082147712081674168190906358996390103210836733568753665261349740390997424924663323730221557790841378780190304859139069754252226787884917813368287177456500893911576679605494559975204776156079945654361204024749520509367884530657718634150075816828804705941981676817143128009673992554040726027366364294386448785348478776788372598782812671239770263678248676736540441846493903685792181583646610064056472917656528302049494920205975252874018879137659214394963485160678467547424853850417781810666469871557145896744689723788229267854841544621278796953417946472229575052359119352936769309857490338810901929697816504981802479694949881806402717709713267529341086934565700783254954297418307453446902023347148811366975898203656080277506108619582337926889825838155950353157166475405098225316096818543659829353080257215424468165937460029295509241922422090475903064149388378049440166652224094617612008565307505138199553688455284988357503091290074435863796460999802287864942397429269497686620349011360190946875086817006134971123918209187534935006927604158945368955521696629148753432320216140582437069678433809831736448539971757697071505990532629033553462157943459249340647724966395465196637306083748755322942699770708031130806741116409362691087198754953821411908406311611316277528680822706115803443530707885290254603804361145916016367337655543256789134419171927472169563660349469769865783619403657032193007656515373464572320529684832005034833937329673985812450212300598405977205911420627847220127795853256537713297760870477231726132198463067281438194967665600042879739924145759428159983983348188073978800902085906191067767829372313569556428793484237866848856331878857876900327406106677076954283756405749590452221786403861367393869146715268014730468729082902848549203082853855991061063582615866742042220372046454968159510483498572908655369603080881159235052280480459240081463127834141818219355095422182426377387687523042366482699777719915043925951357303285768433818727976600701186138915385318611226008420764809941392812340287388377061346549870909729634400482962362045207863702161209194132583735921961004822661290569050772411335362517305159567885460822308598660860373551516977770302404918589699016960047983987645869770686864240334615239551354131124443192607320909534256822521371238326542328101505514644331918528913180828020184595486395296604070843276249951908514338914785975281126118329180099833744081931594381081692388942026159673119652973317725984346553406206483821209384293534130955311319155699244456726722315085785770728059236597341862111599739170422663191695716751108691443493957338855980130801035930158052268003931927664342996613825014902052962715010231197361685448324098826781485364393563372245064629110555405056267502078192380423019941672451984574963483422322814299897498863082068737111096660406575488609881612279874460030850416640439457147814957549123734727782432751401971274664459585464514891443324149551613050930849451842988435533401299967304880762469441634225871490632732983285793642850857429415938079982202405141547814089336278909576350777077752613741381389448718901531131910565191326951272284120928878641534671346516276456798947839822810874481776565995403537961506383392610326305325652024531501291743301174301049264320096725086973712477119271531575917013236283352094367118946194688752442124945097942101801463303817963785949255406818897855163649191167775368324944700827587863576421993803528325713484405420101918892032868217973542838236992494613057880782907897500538469347560127402601954264658912794350934245907787091470337319717263477794907153713348855676086776592791931121189116336734709333128727874598523120171053842741868960690274137470742346957602200928713858137410207810413766793097829147752366542714301536963794766550969327376303992454718441916336170481128817968837179371172191428877433155402982357798624606099776580286864120841437673474785705937576749766605689961395916921041422567446076779615807521009415228253338979538658842580600214739147312041919715858837289977151585746978165106857055962947530144068401243047612850610343957202266910788524926251980036624892159004674872728091977137117715529745708210083287097957240361685599356870101189972550576246189238723256932964606969936623020193422198655664669809486318729236792267547459534128904601778162399391598087205347397653631995399574906658796573557767387936850676934569210571165996370097500070403392532737244565467135397622497772451294543678982651965851793996491499756709272897297168908350750359821834276916126522893628101734052274845569897135619759794458556234773523203483951840520036001170293758833484519080390393154736024929653842292887222326844825299688438735565604132831600896894279986537363051109749724560021711656971828573582750251884753707621869273951842359428541189454669552364848477180328134633489904672927556857297506872353129743547656996567107876098399130830904873055657044886627493209377730244682591255888514666438641086693116121076753193081445039376224737954110327461320330827644514989868867815044982122759870532634617325842967380049085575636702415447992832416221178213162499682770290467915575896968781274759724524029768001557409031249000906291923864871572492040763187506888122201929749399636370628111866515866721702909736442791077576223155813622093220503666720151190674654374171714383595683699431785744334285204246648417306684037320160577072905157491825543177931270061895066533851184861253322398798959003767758494127266215506027782726143991168347098678570954911380052934223303645635076453607456030371188918512544419746504430329682557809133357641103635521130216390711361166193975559605792243608234827980689888696099359977009556891388537002304664428302933405997841714550782161398240838509545410031603101437015940386965227911873745858055527158727799130076676174134763691771159366436849280852277044402813107471124269464281972862601615191191659128322364545888085829499665184221410735045597697368621885364025366943064387680419720962956740305126520780692918152611889010424669517507579783208495392482744153419701076503200896897363875446783085993438002310161069070530103336067651522844152300998552741796615610075193889783723093194324144204760706773650176038990652541027339236047313688719494711430920188460731395591974961001385554501956968707849281470027665554177541791294448961048340046976590637957334202409410901763269133888711845081895773003230705694590870598527913125974566602014680306780570743894955364081662765490229370335223156280022221885273911067337137670857165866603645006555427940378866989807220434497087275646934028359601591640529310423639197928484814538942557930765014041579830969581841656869187294551825597398512431587136321368993084595299498836431936043938899373844335441436102478237004727160049815874116686771835440235045636277024002168653763888021491311394294491098048635690553482364685477256773216340243970718648081034123764062231002631992530072363280741907639311794633767638634007348864674114623393563702022287119765153902217209160972819680174540394461949380619822257185940542358308981258387619481465321850358438014649667575931637600833264895399057664280189495175352447258765092335137796336500594248123561929030954505297938878568030488221580192575065795805752384392312733215993005354650902571161692215274188848332454821387249655893962453399870707968409854722716272937902982316550751361263295354853417147387174133921519431087922610392804239640119507864603871438377249229416203414952459668422695691832029985011773160043431508356937555301441502508551127630953331027510584845614059345281257653437806316718963142005796952693535836648171784821077518052226641912064949283535862675016691223050232104931940579281036585697925685258763080424492801653627711276077443222331886974223826578484475863476736292757773511925222770394911021500524517028637641376952979009495636458258073817863311930134414759539506837816086643705406734046407430779720458460769036307021353003231820120522347458596634853318165955025117712951734225340038466781064399301661156713682688326383109931596994229164085891699346480383727649121152038270564165322841412357989158142178321699973291250578008678241482666948023452889231417570038198967269274373856902071024956804574670624014886969009680854058516573312125081528622002596176228704833283770138121948463287762569045377111259670846428607172171092438440337725797199825174794220893281513426725047539780804022988613886223564855380254614505956866385016631134496735723421745960062874835694255989154748965709289314968438252335732595309346143239414253919646833716168018531478882822016736610549329603815428317783329142017558182097526367268028098017251728788147594557349164627350610397959792468124538942786871716724793094586406226415900437910865316613382066402967422263897765419488640765519074777208223327226458516527120896248290479315325126332059694222553334125807604110331658994302845626023192361305850877557829222469294229934588929587943267126372596173429924298627828230331347682675931298940435271142989259859943818926966594445592709627192673085261575437485037137477704974785239425758289625587294632050704669742246135612019613105390170589643208647800065279807708718208335631733554505489808207639275645882269542266303682502024816137817795495361701682425143950666636767580845578235648765219111524572826700169536030749431108148513624965917046263888297816677451739711950632680757762076643820465772656837767376252538631977020806416373439517063296690940028442524089664849996901224412419297137543948587227845011085128246707384679904988232380007708521007165797418768567848569894108990652140084383511796957334541161130873013800086337705577427501705073962834918718930959837678488357909188053410062965362431854895522185655019202024996103476097659758932683402522029137484520055971659851102012273246802260586757591770880470379485090105673606477445272223329404429535838085484570577604920135687239445027014261312507637114430392393943694623652034658314316735034122064695196224998641955782803846966459418389334480767666515566627456253820887991228707336539914298429645710553804408697424099331886085442436481803933067778850120195093244041298842308791417171002544552436285230837528836138499929529820505609052333620379272089729081983924647990310854695562564960286251220549931382088509582425138643617304893334989387930633932901674749976698174326331641663611681316309067095926763834355683739328396455337275126480722296218486039694920799901003476973416940232107031614303211178328165466817612346451446475438786084723891583209181404508810903561075806850689504346994219113865542077384677390486990585187121051719284211799494022672872113866518091709621419845682184025710992168987342982909318184326357636512536879074333447115832203006886900200205776807642799756382577300827810833230218345121103209674719640698918471752863561349229084253922003191596877190932328977113677757138224758186696872900477395758806904250636951856605701276465784399658743287772783093011249334579158808510500116087643092085085421111884614432694751710233786322729227124856304156551089628691500575802258424921157295056734690442566662240542370343916615828344211650407321677359602730617972964171771221009976491695008942075333510521175974603601309717340435121464710273185464453167495581238964001352136534120220937332980470121107495192011048597519565462899916021312899767711513438004012014752721199870981791925928626181314745888385034856474538761947893237000908771529398184196233626350782107533835825590984047856450110451510999024195303630052569841223095608999980920400563654448500446101038012173544538278270158564784173593871053363741764213018485219418230745624923849305306197203388827896193116904069621215588335818210499553694355460459000372903331338402480577248378973027907167888954324898980424813651299225457660580564279013778472248045913831085202694813404064879093947004210354531800802360883940782443555354228288924041800084954395063845938941511130940972366711028797504078616115122629272205186517101978411248037284486263200856133067440238649146954873775242343470205230317820766966912825801618305403252755906604082844501685097582302715399343474926418454721320851507808981577192951489181393452153311378669924186959610406062836434095643400059303094512482540296336151495540761819462909436566760999487199367155089049980101901422532394700978351140722868594223782488629169941879935748007194227252778066375050496159186742936844471827811114322824812196925949960644015786720104967725919540856423721043407777495119379121982956542875406396333412752758730849283603934333398114904612705867273020749700587200865553945252349025465572542555035999921250535521646762307536880779327952775308533763796138315662312880864034844731690489910484627908680986734652088362799389550272314151236058630326084168758735508605008710824861186976107542945132358499382004534637775915044716748605862780666236211329015856671196459962416228141146244808472331135699284049347763365011700260776377804205847332528354010351680053859119313679037498288539785707889810721717485227956874993028549152369277278050449095991342081207627975482553008816938165504229074764474570997288071103275045245119855468854520806454518559922105278512306678400498711833959255994796635286301898791823845758572504225870835467292925353754881374768582988177950202889583792548526226936948212224993416991653053507742915001427386771115684901904808013403764251465167861136094483140065032760181317074507052851937853951128429906894608059122022982665952390038826877568739859485995763176809855588825344194085493243882263879736630387191313272070997417722334644965748860374698732072418355560520048106380601038235492362875100802750027719454034323709189102423754570883612199457754139444134699560524062569181908142211462723295220638722455865742682599950510333982505898607209686133354890283674290528380528704380702051689138403331541061699550204849799085920597038367694354620437458088593389369720167389201331248193282422156238903355081256851027798783461383170207190392016981691762915444656917155646161896742107077410358920783830330612394989702643018962531411772219362027973560953167252550220029890894226340908343430578360119468290423998554780187423229002079544273419991712031073921659512593037213147978247283210092204533245376675178578154212838164640148249075057946850575102952000841085683946595459667634564176596871185481852660942714756703227470334438925157451505082654095940431316799185685356086982972955031997062029841894794298518296424427926842107489402059902026179734689031133104215279535319754714414127179088395917269718201276209552595370545740449399472587865821596616304663297893773237792262724888920464792197454319115629001366143205301577255660935813623308681591492483812945475769289441930316809100321474339730555140720922213337791353084291860438306075799688513769012566178407647363051423327745905698026416273250201104528217368946099991355207803004488221515396111305923773589127729322748068700004660673715808686450656493613127761598370057368753607138408673596345061771607578871686873615694837300823949799388299814876993039693418095804187547364421486654201009384215147057930033181571629764228691111337855580875322421563446911407401622694331807642652428854544471781703080224677702285657266425203829050115341078206280572228830529490980202817170828802234049567271935239090544008867124963966889551654574042264261543653625090918649209446036869483628173503203058599830899181717315205683653844516444588237470940394077816666787859641299269743310427821195232881606157540728237433663809705932811939136805434449747628854017183655427617429773478835322287362619713410921835492112600340002480494894163767292834678824017889443407512604885114430603294828874944829170954752723633785522011508608147516681337016408590350934178459021355555468423671177849390578395211937515591419741697392979507667920201296659046985069504774763727622441910712348799848189164364430978495780123346180180451532718050393240545013417784023649251442052180184076836388889372792164528373833423223645003533929911198485748683077994324661051008791012668652082329902599621357171107364931249064839479685841875812805723516547488681492988156938441391432573153837123639523003478164358987145047272256818736445807896066078709123844695622430989295665471857537453566383879996674128671727491767849620172367028307080939262674419619178619698324088135685546860578242212607054777949735236037784255227791881252588711406660181238068837381649566041402983823666907172598869619192961482261811710920186343700936939420282313634445042935681313656203427845566058902813303215338866755011057903190596594364678062002411917723674311977075461150465990802061793585815055480070172974759931163855816196744080576603350159194640477769426481449953072737357193261675853167180080401559709795253458310136034094285559856288864274154501587356439978210755472287530933068995187518506803767217017775923794652282852040495862118070695312775945205352976131930500960505673738021795758652357277313894178893483044153992628547941949558139812145142545440209178325862645748100334617190134289137461677244499009749040804452994162284733224460372301890347722696059592870727004744525482766029274435742674460989647765385412041292168183633785547230578686179475697009984970620994500273609118914701626134428271557568397051942304032093132444722415901315707294122934369628485118737151602945067118103336009172616205076236233915158912724115763586389060636246148260535066999795115773463292534939837088585316484572747725968200889513042063853028490202031876702234782529035465755419020964654751063094998205561024078534857083160235463062468219560097245264849997625560727534387253364285961385794531634866451118073262626018000725727559183974734032312010992658920401924937646747363728788223806466923337269583093176779288789127576101602975384162288764908072039407390234311348254874239814920320809659168392236126038739845523559598709070284688880075070637254434248013702899548893029117682885942552093465286091206596645255486266272849456446786391895092484831646363962232576660856501900058136624527375154016821475118880705524358913245331585516721424197100126433322751968969710529699992848586474414132918385323072507582766517507171933999654641726444526930529072271710537460972812413536084614134771105037524958695313968844855758761706113825784391202753170034759896754256418977286953684666113966022660746545234133483464752043113799164533436234674989282942563439910766278828856367313598708656373790467156276518469416023387492472859091269867437453557023765850802709964999958179263602549687687174435188628695270201038644817884272320460328553752087919039424487173286830397561913969926405130148561094093430209334709585582996653192439334031045458407566780404711547592639412728972679658703637075647179604004904289612647660648400510948147045121438786940817205903136865736257631798474352403455395330060187198684928900078929712146628244160311276164938684254371496141785149497106067393952037124852962786373339691054392631265942230537189750750188354485924224549466021051538020751242810644170209769311617037501540910718110487620556219262617329390938174392233974820856084259687035749026046846714540299430645145375578890966478887971966892860625197568291871822656098503258672387360872878670149691971936162032638089149502035191448375700613062297768192897685535186994412679005861182110075376213635179389242960899304092779503488753652348927689846135769443041318394492698946489254127703825565832260538122511679590206417916903016367161814155506882748396374010317176717415887861618156017083627543060078245606805824503253529913175211130840544396265263622313031001908445904118281923585245514538299595925675252982846279119234041889028138564173276580997887945917637926906680596617090910534181496270952065039481644446674750293859000161849021884067354945685216241276201533264617981650191158062856759428839909615371018294471931694971543265388883913458056084833594402950334977678708375041669912023882619163417732173208690311497916165749389772914555239876668247816626721886909882435578863503343312959949855627292703839288982129511020759477560828641245579816247583523987154305638832885370311697063170395854570796654644412843246364501301128103768000061901424424476665263271163521523464666113506649019510238563084886589483068761562024114767922511693293113893438321346340830536192184990124312992692048176992948619531548770153399869255084445845779009441085894213380196179948641848223353551997680353527145214989741631164222843458163886734761263041760824586911940186215737503587270702633447905423869093983037054056817756483975694969943702225247536718935413384514971927285559251202134894740815230256159528174329077895169735402088401683738648668495499917336055947101591856587555796147330884264206205959732112878048452196616677556568628433178168448683700156418708105142297619638106366931454478491275665025044717672703800362375041171130155830480902465505525216973855150219827960515904474605015122445513996011467407252864276687720113803802812741831073758583145909591692878188701155546882096466215632608862278065953219928748920803874735895192978907957765371657337256805021729999902633918713095033580744190066058954598864927353526077014172056862416194436796663025433977879780900017786378707154478190436655084850076911734153250037494985679945504118135030235308072190880413211384687552920435224103995697220337562852411010063570361664395797799866438526993978814190684637977196128554989153377961695078354967812906459721458807832835494157226951310890014825485808310832365485717894518471812009379653015900783968122007849084767115660050286109504612327343188354572103539921489140279463832690604006978723513436044067051763444641857664273886078476765266500332097258800313969139206597643299955207920614955633615709768704991434277826892957532984064866753833775371638666125081973863987094265531430707431163067500719104900865049093694127602526548324234422991009741034228364186479065426358828157510083690624451564978327761245760379921906484860657099217207485598805810013395818308185316517170987001506414862595187935531407925321454288678785832896518228047219045618033485489656288174682076444261333334096368037869372770368759808817813039250002607203532820708445956641034220447822828701626589307685972628189610150523584153039095666051685815138395951515368822250933102921357869251902380603917615740916831521011714356308551692673585497713706506110061590542164638960805811553480839599799350010600278927234988019511102056463049930893608962248321594532326861501637348342218414119624468682507709155993219357569235455479359922332296028830005074384345660752204216156424243692978885036802547596407780637196661494977650603123746797317113897001958289349508833088551656958935831384090668493514239232174831795503305364425188051763898072198716851198330804058418257794724624023039254462322322999854949054863896900353133254057751582099801946506585242556534988415148580175434495936698436972287962315157527063259463247429352919046359264405074048718875125144510897870010693090539395266778194005381647642629722873361046864151736938410554536493213351231421793525977325439916473244146649157738638487432290528612476286750340523016680665209307529155012667274480228278753797514960230639108506274506870333523289589101825905571213332606603392248303147754563945894118791043471527584183473854571417178819768428334856732830088989307383636926551306066254079178429727855705214276334029495208043794279320689761253643378335690814914763143860943714514066523803111875018330223149887134230244453363776142439770216533073647936892839532801207352443478820490341261165792150499146082493933627517115462989925342689705979435367963094566280040990691725944530903184683227829722937048943881655258638595952245186552738061408433948878634083651209931009200072379760445362950285539871905042196929540710510805918332016504496012775666407709954323275326020650259392591536225183785614770029876748130010863050830505183092719031337118365424953020981882531305324609997794859075805145036234690708111181803113134727595672955428440498952463388809947432071326314446699175531955677295636483117989223789628143080105644850755454467178596406089298314264289258321886785504016263490765072807671574173475225265562051375329667386028730639028356117315715372103486517332152140701452208042113485953307279595603592597963404304290152676290740299841793302682040251607777288210957789609599572078677146533254200378953203257820938802131003386673345672944576921143008669461722693287125067428807082013066936025501221287864181721656059583661970984621520178762596007660393814727924967520155415911693728638445775274881254637649312754805115165612912394439961147271551355360511851616149188519805365471400078920694865997378365048406274947600306494725610365022691620021111041955667213270401025051195598150217458754965577247010148895500362488287054563231825220860988580409878138309836050748248744246258157091446538832927238206742366269447222799996055277229410114224820387149394179330623088267760365929590872732808778127514432503429699694391960362698482113781690542071501719556563360147490063087400011762003947873894537580762944019420746693857036166395104593173221176125929954379237261188937871605925801596668579026487258666782660396260236562430793811206983524901601386808476151512542751597915742779713904088553272778204069759781627243191089934089459903268364712580092169799075033207612135062473932737175315407827494202733363263495684972712140827505225879799384165580780904841995074733166272311206462533675168759693569100643342728625035099645858006662425603429757852724936232977906181981912237699068789600929430866231652376969980417074970764489403396807723269152150875829132123485112172523221667679815503780795518641469553124992893858686198070085425334434076399377171608617566632254598188149496971251076393352945126554698183396250919535947650235544528545723708335018998687650076343261611273671967552880936668763201777082674501486447036388266072172901891088960773205072618061766229691262483593817645056805053409929196473559677453002832074166498406725482425125374887960673126126472275082067643848552788901890677002715444774107970928047857190935650642637986976017973129708742542370687924166826551800218781872468703930793878526775284884511697943997258591885943307219095753709832813457697601097530462589122690232215311252605485391395070013054397683269153672086378833085222187231777174508524485996909491482066482358313961974174643527338715009739050333679321352982864533667535793274381629514737710664950413827753934306740200100224114320819054894625009779369350989990359965750691466335524143710414017225355079230327937351091824011476603168211625982264396513480906469124133685109525082467783810509476894041038781771316203050724574614142297513873774135202891964592593642042461236839861137078105266794376970518402975758755931752858884484984375617119137958723792660589706319868295962402498969174009941162336916040518528927574110703979255536856050289928675183751064812928566044130751260936512081241441625817421186565975143009116861118913780623995894427589572549899007702137761593034890191200125481282453676322602236900383028610398380835912013100462951952752567062026188157386497562425210300683389509850450535781545812440086814665512310127531581245341050440074422358335905922652200111262288788766344624036277284237512976913055336222081747612490960657151995600826493083723133007128503798114373167332492214074390286004641045913009375377235248471677717000973765650106934904464774718357065373284259936119245379184840585754971624951023086689187804802309608835936145750797673553683503472508751623106673700492788031628396329423910490857377144197712983057668895074805155305674487448296309916566805885467862663376263836659491787611489349248600205262325282168702459226159162878837079901371019685344325490751178909359114390573280174997253053809196752103713035290628420945195836450188473687563314546323208745173213452208254045742415021680062764269209763026704333010424085682964702643522702442329136134368979148561275454514897561889256101163662297346162545923692403112297197632160028858919021201061150244688537702749500506932749883078752521131178234713543424309253111357949966076226993799740469146760235907879804983819417422804276996776038786526922067075474276384601210949953793491711810106524970600932290103000498307050185211719706751002377864490425203685627294764033260828399833295592184549556125818676719972852173315048353425798113282705104806449616662795141603145947786535504863064940558168148420723145109649648144824946637275084540051542282596038896724673482322789691502059748935655166105744226556474382110447455813905151606493998095005859829548357016734980254171789806413117606592862691733082211976902430465669422988422917572869160613362146355906694012138095607974092516336272028943318728919897871273022894852086484961001372545936165733932618088551785427672177942287594068255870536251535000035305039151302052232136100624000110204781739220769713426013699261551034363478014460374873829724433965128990311484146883509966422704898665660697986393056045255764732546353910307197931506723742799523181325936845911748113783782852360918150454420248432326260322228877992659840420814622613721353064594751530839681346282064852682991979967289272693105734501584573111437565349273202025463720611752522847014324507014384387023472186348595968969063819039036344434535241352020780238771640803403759342824988261174466748878415613608179124657737433371219714580608682172422731248402797117614724924889598951328439079846558689718923807026648674702217023239053283795811547847322605073369886651708726345057280074509451237145854548379911022945901090036070038310382586899233601748256043880505189814610860706119008862279080936542065220167491272709805215521454203532926772359017623089438406851335100006882573949119592783421005637585011415711262834983846476357633567080066009624293183554063137954208022307067183084822932847520085258812543268144062884799429031093895082763690126502713309508318866219393340456525322257117313647962590747685780588165231254206047084825845084766850189783682272838692688405964405304496520528996634308029659369894094078981039252921552674741206818586105394167085053058311600019184908026448268745068033549186338714470945437133623466293788639965984989033421974032909572710351943149660270832522927340583804831859429345503105955862153044059861443111105118707906678675257977271875667836972750921802868773698664427776328243573495035598675224384061856687540017421029957707327906471947408720872605882969759637696020331080574306601277957414175064841723773897827194139206470547329936260532488572681833578503104785267161412967467313475432500370031964834261000721477056955717179007221723670119207849757122222560089742413382402332576672550174044220374643713029226304415018240131817311575079129422627047015460649184620310031264008088427635265720580296908661595243233578688829453913510753188422413223319183162009583499323219748910954001408567081461368604402762903757699744006923436414291261873535676273931552072973393070102960946852640909836545020617024581597766312951249060786986904075269375094726341184278259814609673814176060219138300381186560374063564907811176146563610209997090238257607459727977396643784428012485304827011934890164668662586775021966635797536251400921546424484137723458213768662671926664246050164602890056240075055631471428458693013666313482807502945841718760368155618897981751713186639543084254505720923007161452450246348512317620330163622831413702008413563392070376643046080627570695084228571144337215166754370074812827399039974114892370349243964190539107046034237260724450270432022933412009077413359115297478345981044467156607006854595066030623852619258590538709496175941680934324412197265426012743970484965417025020637075360319581101942232833999229862913578191711821055076295598081662498414228967496709217704179301280353793283075956189504625525582471334288415058417544571122987189514147212633862989501654387060442197737261295140482812762208820325594694709721271014712900926589321559362183844086572702725497364878399285870721372087546850830192627383347144429299119604731687718700113156481057578246643804435180275133085069532515865842475186552303625220936875385495160354047063043949356248184810457972316274804563349605556116213302563060664818935868717192939783858879416600263653115467892692764768895953197633442088758014771995518053505915090259525529558829107411644378868162499103365656943084309114471437865899333346896582370865129481873077949961080365789770696382612782159208007659046454762340062966887667352193809884776929211556611846285588761791407564709096324658349182923827046158996645257138611636517607852570904061719385520649754597767526371005655455657045715862490001842896367187528481191655161862208432689888544730214963164891091035334868841862208779913714221312715194554059900926039620316154966247814118440389714863345836648218622801705610187148569756741977674416213421693102634733682427740294560204136433981703116809301116635072382305552131239412690695931704369300043519768821342926119974529084476340785957882196052625669555500619507516101538262730363385903457980637543856350165099148424625000007525816699844426542406003943455777601472955079436708010001789474408622305943257962614047547528400617964780981688070191065417148925348803730217513176798923689646995057201470975412515691269887570447325706094677956903133397313984647647059468341223726536032835775944746450985070003035829485207449382908487547545352685988618536160727111536227291848416271128363772091252227638930391873201822087560641267284247992702560525166329438298942421726902046679599141729159836079597454619305549219335385159527319910677658201068427184363796210072293529368661174824239108940329756418597658880069218343933161701854048589498648552932107652773499080727514336486946747928037870098979390618433358200796055017319007805448921173152813383538729014291873220575190837235044614117040521139277492143819701785314017901271404608557335917594467706246582658989475300653684781689972751870684277789712423302870344769781667618658501307889965342074016974901609178416228256468567173176980008509700280945798789544827127982987451904167017227927922583488620293495008113548491214316499350247476312995699298392505837929215951864015838958606914438883012621742988151648805906599489462324762853408950453252509784476499645732863345829078831402413578919277433434559700235500777803360434611062885946357853276115217419409450784373500299050011651572505564447702529249869174193798924320710757588989324674783757761517656374741722141148345977126309923364857385463303127017261878306024004492766234851509411757188366767092491591416048344956724996946407545975878484214768468626579257161264019640846939029171891982834439584177180926462703773000696558366977468754514256710883749578896945213421335035117238577765185629384509230364071113068824238223671823169850550604970863090164467289902724801839284058585814387996760639767196401638936331636108600980542230300570672960616466763955018209026782444915083175734906016892087042838803180456748939468989883004886132431543308684959336682769533589238537970808604317036947768786440630357889373681353878702305582356887887480491658600598311919946464730005772716756915177471193438467202022885178547087165548639913978189956843358728748354072043827419387899403867288824712923630436404417122451779175843679242336298747526149333443142729156282129327062430778356023005024208407618079579639531632130000632205921377839095947675900164003747130871868558313319825293667947574184754228148443960625770614654820451501119435560061231123626427563917191624399614649879069897577085961099899710967842084881289790333367521114656765203746728414268031893257597001852802867123139324049657736360937368871526621336419974636242533439425911467074886656121680090549621652271327781808223950033906404669192696610365876519207064752533810768870559057289144739345619059063277776356659842639719699606333380616922896487805292595105336006004601740973289043908525344317936582960778681289097522366981531698205683521925275687896102999386272657228195983789627822911578039147886772617457147519186635787781414566348571496430837181954021618410572914201621980236599173765288695731019615937732119677051546097538326574812888423250901223919621215492866754906424473487802046528676361321807793766792901943967292327879064741143618223746125933936816307745392077731912937416659256011059972039338742373361429350841551796504103238919104786804779118640665973393978394138745802977633855881801497426114223673637689760310506999842191398353383426553059217196731303207484689341000222845503122629625218940041351444898593714511608698013398915351991967718450523101544262425262564161738462065393247844115320033512625158915644012360389361694393125745602556034386875138704164760051519523569012328159524186162164209739884187874954123143879269424187518861101987986813290257482355951560650332307844870484502517821663512620492737613155195491390910717405553326599574161008936628077698991759423823146848269802202431876977461759258928317244512986623111839337631169807617451412036499693688829510727923321979951340959057216210672106670279098382719400428218824768089000250055266423106503377429097583098768198511992985596492526242762846327893457006897122233989941886028510370737656460587987633987387441198529929456042426668279988937161446620618463058064892560319650267168697798243912312784464473461627034215702426158704829157929192585266005644267416043492979237382916723713018784993599355785598006660073843320899763388166969345000163605226143141330807263046458243159827877249158730300948033358572623943754119994268022394727866497163476597878397387742680794082962562717086325705558539388825825277562909889539267276332017504021950182142528211789191943260711118950171786535059632609772543318550660925726081713429690312236923827970701568873833111364423528973846653798030950288044571371953249571242083218625225741047734273907355211540589799342090746654896908082568038687722171018651671360542019181396765267598177517874680889501599750040033422273113090031641693920061868172498707441700140253903130102380083049278161437338165264463672001413327539767134614406895540458645713542524937387000871329865690941594394817657662365309990005950580585894072708214127458381140011080093014711959594861326208604100180686715988195134267534187214736052664325347158137644709187377782916830349918542925296795991053404506120239167615296318328152303795934146997717604511427417564617194084280474536975164345739412996166129834615708227350817172444994641073548875597265471144384943354285734176426960591044514083476735335649264472840351614050642880017639259438040131860400134751158248957463712000510710727191929655124594823834337462055813301566687789930971514150726895568817346482874430638101455557458974756345873690458947476854770999322854322497886833157808658563582459810375495778792178553684419906192046263402662953525772313344537793929159590407431543265605632799154794977593406524392032291348636706741413423581707611199071615623039617969984677488495537188920648599298083123566752269088607757471517364400679421137092693599991429158694139342046413523554674597910315551735074524208428290851381130203692396247389197816977438838868487646834385230773000558421983823522098343657789129499189869643307270810152939683600316744156714841877355834876079594850494879069430165212464846000090115137226901877729713372220004843591817471259429938860235480662948037929859082068236241333246547642445865847996134398434616155851675033560028542922242461477201258084820779438281576548833246169235489266789734197169746173457374036299745778115841993284996985392217026217743839035853888805236644046511613436067231163828398078540751662195874567969881329038404758205363030845747388751201145657795828686639652736690138257345868408371689428976757276032823037786148945351294013131008668875003711209376721490963286892497696049846997254663232366034913640449365022079551623831894703824675907566449929492800529361617036631775980135338613848606709845795275152025759089473148441218069799622896054433158695055013542205385430595760928693350324478699749759312574122968076545530118425125006904432660409048102601187605309976172479317189871636024872407997310007356886947511740939028164414620224910291890000606438709450256422865612032364401257225698622056951092264457530717397280493654878984569279291394902669102282644021143194161254029583853413426308409822595349302737858674208000066183095546782855572085536147592212674312105843300572584203622714251981853479946113813577731921702411757366491102307455470388897983060026795603528350706224955553834339498917272068754858199027569234724108710870880906220625001090628455395245124676429572396245053191688085691428404138505019991085808122681373821505500397576785070380301236063685750519980075651142352425739925408696562737046662303171302015761580369279604726857088213736595181852955229558917305513767441729931844144409111832535526014294008292797021957260871710806975202157756367856419159797712911259989599459165690328902879603081950929406924268085445573329681331958709327501562184942645089193747641957520157721695683469352035719154207459675131498540910241801953495626408439038880580363687005940144374070242263648932106711063615838567937915250666556793598425068896253654342664175138972465227283239273704783774610219052597528351180672962485486399456380917822111464068084493976111634421360119275177248259014537632868897125544390108159525561990653924521094724938958191785007304401011759058793374465569884757129789888813599397620054529295089424626806055667944734047491186485185844676107766387826745076331806641702091869480980645960334046551155694841949616961727450944442461149852941706562122915170082468687716414241739744086829567055726445923837700338417596195821337755914486458689276532211233362640142938290015245496752842874236879667249738663881407012720522756806321043026176737537901337535152109466668141592997343599564425236701476166089197790806802449233921512234470543038531332458491449397616221214016698336273309008661594626220310715147276244022939810389348328160825927193833004420689850517053676575885951971603709519673453051867905078731008422051519736232286280756706282201196359255436735408946538121928508835372615686516451067587161264442694696775297750321636545836261482361241335905272961225949831441339885953453848781186299143891592350238751044740092968261732493662685760814596788881492423860031526035326540176312883827901164685432510106633497545616477209808625432432195501742110132709110001470106913675971700391146275822300455071962592419737423633834957656672826777571826340058719472173413670587460748755387095672412587248021303908386538928644162669683059324300898966804647852774197337306883893545919577407236027126780178160974304791495921241753292101716742194688613722571903581495675045356606729242238612326694747247367938668681094238512746318388982191015237219398991614845026850109935514934352906883810194667545839871700330609222105667600311867897894414131477261186644951192583780518258050852686088334794182016117502071406902346056147746012836206222360594136496541967109597940487264686943981030533276155365511894949572261129753395059789940669909460624642528666511329519371997269391506402962149255441868009614309970929523084319363146737676311235956469464991205764305117414719275500141107541602496644930257944448396449877567493600595377514611049190806995147661192159937367991454210299664612557697236375242324023275151917952615296654088588644326231702942083733644235301723952264535285338515130151492288238161121668024888254739128383083662472409433094196409118630085021950705157255871691831351000682755801423055793081320150921115653312372310925101952851633866777349219078263542765156789688648893494599385684248673842899418568472452372369081715291357720917940606351981194946975448538734422969800272638086805646244446764187039892547684172645570673584483084783079366010171286853051999610785899061852977033727222692455769082985989672689391564260749712231659568808498362892047335577977790789531120674055496228205641208246617743510432497099746637823072598782727374044587298931978226371742270353950499601265407046816914851487663050927459614542558652868624269279547190175707424503193376783272894886496853092351692817887637203299651410665099600131568944743053259553837085550982385769136189991849952863532145770810164520364193327028937786951088859621752269700716684711656572632609830144123640296453801929899741012954913028155953672095982780714723744070807278777790871246576350226457600542940328270926850474710756973689484977959150538168538623474656989597889572121977868395528511206673455177071601812073880716331771384994960629088952536344806962898531190875661540765565815604177973415452971322066622174627798549154293399472961483702219902653457522447946367477192099917791315713543053062103511885987093805823173469461977519022983405403707027884959055635062718864970564359339885634020975054577908861775419717734553318718461395884441344231893238600804891257772595924345555678354584117520630617710117245380934836897221234603593491582207520315402725172750129970217648677745382104855643160092582537950760414287846185935792367731259004665397357207888465394833222672661304616050767091209042377867423351124066683339416117669061462271270487223477095565261250183055763282582726906707632303210918666830647721783342054036298261463052734887330107475207646565380432905033594672050175477952260359949708478711640286546533763165145959481943859658786834611742472598146151531551522480892367667542256049786037022869122759286506530524056757101352845208079222571358006234717142704142444512565666689402376746594713714134088596820953562970210117530024602083738402145607975595144811078924991467373374262862767108510260072743473859726341003757491168367224540070512946272498783613967473511236516469027401347273611939711836732333650155830595828818963439343510709297079257178439083784999926528315369283636344766601042916054657941937640643020791548607364820968807442309152026983179086246331602579481123368298947013987027992281386392782950974261899167460274444723925135237753931025730947732741366836363961414654569485963218548862274408141334104610045181031913606163727764163061989109686886030224563589692355886599214954881617451780318179486173816795644943357556481453183445092259863562057422671463275511799701960429280175970894955531736161665189960499889827701933252599906716274521662729042846661244175325618367774075075334960556644687329960102174915798316459039090284997890833680671525205522685492576412385456547912300769487548978889545360032572181890729638739936410341704276451150096208521008718161334520730050969061358809163578399397414887350514725688835767288087582269735356472816755610283457080737675026658153875408356859177748433526118088147976285620390829363476184541739876947334919158094979086037527933288918018292861706851627196329887458963833028848546186162402564514244032609284168834864689432638369541438693613095830618367743426319619498113077269306114117592479644264021910364231044989532856726918233366775656651229723526863450092009427697951023685422659968232915286279888053537973825924623798746312711373129001775084387413320679865702137002642753218940139236785512615599808484896041533491847721998740391105152977827506101940534018256393118546930899323697865408061273258304185182403943834668996504370301772465691825548830898809881795609929425212388008345531383419562961888303859743770541046078230668632809518707493172891178703635072505688966277834800180608664330094492154922122469014631501428095960490570284168571910180430861371091923387415875630595094238809518457466989338008260789089659010566003945627270878314622128983847388293262744056392286672544973770036754457641972870490037535693178565163073014371045166978837164245674174180220680136538867505544088406277828591286530645593596007275581551399214861705173130371593000839531207930450524588784798023062154430675432867123721650117157960258197865761074779567126429101114453741313279736049458902905399818508188163123803348866351207116547177523567432808106065946673569938022911604185600151265462019746802796865031622794647604055311099329976776131171976977155702421086878498031822364785251119673220623906390648902313104603065543149368538848065103628899472029589615046551035123160097739558774751364454373494880825795706692068173445890960142599812319750281390864751120098759362534468751963610630317213243525285953127905251651887856143810875190132045209910262689691928531248743443297095858140145532393568042314881755561448712669720697629547668723050742340909828120094454290028935526213089290366042797181269673343918415063433065658903236736584441837200751767016911282697896214275654247947733853467459032178619337977350788281170496724714849456795014403039275789667413190628933158991661123618610889343894660799280991262985657327012612068183612184054061309955921834903985862594505014736817567803498991064079751100655453950634902042887987531101105142268023517160161788198458672726897668629972447642276390322024652153839622553639843747152236105758801604196691915571163742084192801747717544472347560810521373431245603769219038843659164709020630734386524828087799524260921479961381811036273356106363443537599866205359086400923636664365879639583712940311798661348300058373578451116485599380807566026903164148488404513969997321088893234802162601026126121197915585236056207961415663619084812477920952374663028931595487693660112972220260996553199545771882046430847399931382459445545917166433758814067332404807177819339089013697933985614780911308459686455868195174040408970199008675474208330707378181650921187880897957481708142960128601432316060307800969484914563655391503556079417345027810173098324869531021005425051678069795753894956775250195477021903339769103352766171339939562661093242005943338591619556351553462892168765371093093831779570529851723856716964760770431962641666377807261862526719910930614287741151899208512758629631782686818514712065213558404845298348273595663189326563502374444286321298498953327259480042998453366776692245678798169088546365906131096654424773091076677759716321854541608810896211913669587017404210704851994237873387257795046365512446784908441501244943869793337192047230120810065172553739958688068366623238741167113062289770924693332349018907148667714154305806174929699931933253487536873275765684787824396806622662341441825199964249020890022297346810020342655834291694427987762582909414532149340827741592815047226589632841346897658521541273385901761200266629514796075895163514798851098209316887060941552763283912031928398607388372026881676950610682062850155693521757388377040100840946141812244551570253921433450743568534794144592904421847799145231411374316751371429484266492578314382618477288909129782452242796208281646438460918158911578432848369989684246311012482504226251089544460885000795982099169338850617923295433940827411800944087523819598795718693582492078313351400772966496672106630877668478429623068877107626487545344670424114554357417226100561997552896763838643254095099966221637436696893167013441416397902487916246858184016227996880936129386643437144551916197995224785155216196001051621715372077918296449735533186609532888241186515667633086683835366308716315756446384336984503460824740997930887530595833335473025589079506988455825458425619766700632673423203449821054410606751382209927424318064390855706039152731418495573161637607575664568585757354062708600508851005718179594022018790544842620760803313496219323183311117426677641040363544177839318639995009139290365412091745593562066343972875587072589259467572169729719816885215014949959923674630604078491097641012237227496467438373133034124711375509356042196122565536982598609686427014451401618972902593166989606767569594446168318463988642479451478056509200489478935427589794847451899291848312837191235149600647390164452329140697460440510588181229250287711652862930634512545928965171365949137610450269560644170605249689202949622299563463379510646438780143984765913917189913924094226594277914129079573018694350657668083816024823778019970136422511728407889533892249700126561313616054459486027806034609149802352206685517192712772310447219510082401181223956473154793961074494333683942190104548659035931543178026410304821366754786661668841651981221972965985707359317899462181481120727371911954636670500713652660275503671857784593232298079138775055632810043573971265849863191170073641862448640921546012107638794354375612210283401940445684174435526100409587050731427764746172802784299345597916161598348341153230713082919252915825496860152836170123185529147641989673419973966437627562126035824773810767980652408067856090941633813945279427693876058767033530292372524145211390390511536574788359310903276169857082156280593350100838317846831437254605658461173528103834063300568434417623184608315072408167684220704758257245230497445148744444686608112295801038383222586746641627092205851817525522712229688831706377107297179894822350023579037126808144627682731515487393110917292293767181234763699517478432944190725525324013692471429261455490396418836160183948656506977098437983383140629810306221951887324581924185256648422887724547835823163088965309664286448120193724326064802912645639932701900933746911485644710770159604909990722340029433028701596578389710415038488110237311894303639242164492651482263546430050772367562598534964539068040918586780678454993534611208927813843305205664637247476998419021920649252679221465480087752104569604195327429348677117359897407837020235216061522401634347591047249874095841712818100040946725444198081034222299153334522751679690511682318488075816712448067414033420711661504011199516938025728603616433527514623818878052317550303375986089109853523745096707839671795296249551959233322095619552097617370935274138488539995566574494908292888659143712744793350643969141186494325296029756100562903551408683110021616813690677360325309732777592149772676594993478149672546978544974562890790409898782997222897284707856883143345813872732776208526886432004395470591697563029318583671377678688174842519456281350557650996405731348243808411103806405987649155871231915865905739870917582533918587071816489770418093799291050205825567297193022939604514005057739278407644377711628379499616368906328506661007893041450958770219290355124549488180309116421806437579328250588867117011364198003671175551527331472715153880803802783442353119706387539537949925346703446869340188549973830332735880276573184492895613952303354516311741455203877057703927908306791553971104129224227617137175115196066655797549039387197089082208339559725380821403230797492647250333203263790274796257403988071577544683054954990122309949713739608451241184505027164030875551406471752732295032820310341779501410218648855643982799784795472901665112939211670354287048035546512673903227014498632655745751308431547286531241192165439267269234661468048209298746829308408975788641897270109871265667314266650731708471758906071784836340027049339525110351002869543380054628847719150012550811161210324878431814175495638279095385182635658890296437346215804106829606158911410288013465059863323513400227769922845599758332814948501570132216740387187821790181173775049925175915660997832913722126107954365885680887434201201044551654847470516726782960622410571640209675412787870691302698968248217425013950915059318146823119377280510958470767186809053086053919883230355881495877689726000634005116109281179297600514291190005272251241268519587383824086378368650866157624275371224297326700494864565550175020186159489059674406464468258710241733990918435417698127503220325511676773398158635383304279535895637441453827607662534300761629329289378577376703934923557393508110266265457194198897506175349714878423380184310246846523109866317251510142951693820729564137098291978317075502157501054236087059423558656949046968434085562409464746484042065176375866905348761030180141154713700000615853716122187970025069199533956197956546745780820588744594989075414266361540935429241085536888462811209665409740389604752681270029998254554926370161693339147920903254584196804500352825528617963953410200249090012971843085492603335806791812560038529901784389381003795482529098450217150645504170205688646194483659580077471398627247160050313074461670034752613493827010972130517201588075238659937336395747766804707024810424592255679429348357523536072835043955152543878633317528291152365669597934059459267369399430542048390344686385309814074079610230346706299501543389833275566686632693838111734589194031277540425578929316373209224182931902584061425857392295332080645262268552274380665279416494551184314946731233324049918762244204371969510468761010254792527239099147575939400485174019672138164036862790847910384794550396520783087003466960144088637869647075676539104745752970981960526357229554440686418662494556478198121129331651319614641723486065806499756580727824118769097868985734347770529707041563290152269796660542910281914564488587110127405585984499099458114114864878150237974944748018032320738441065769341820271944216623628335933070400023551295340219870848864381197562766256604417223872246814199745729858219937285258847740013812063271622877738488760879365620965569897510692180227767732829305283215014546125787661860407719248616785123331336833148613555270186509998017910681319683621001451289609769291511453800161330882080817998343894015330579964100990502495694882238705716150332958535062959054810783250535283178088226852973671109069573410502977393501140069362752265865790172610563529649246964895159836308989561030516339911410459028661366834413687230634841650536480029561229638792719857587561019247348100488860930282499577130786952084953251967242021471779512080515632592632699959790012825769809376834129518644721601079477430326396136891536688235042974690003846768590743449647405105590491153865793449961182046268833800946654798066844106422747439101045543077567197752353992153282543322576727796851581670392943287782631235382045337219484259133571278768214319938551081244664078420145047336589070239235364481403782600629025057751101284519089412588950173606908172592893841962456225627058843674901250291170833805452760823936631540526472019173394551812770344900846984440753868090974050650026620595358130567547109929324292151407119892655678851451329801372400062049727754764792338088273325275524654543064551388032639410203000337860001558091660559583015453169580473062234199817282801213523485117050257049794216991503503575410444302612320230151457927984531455010628799527717829883368078014931595587712092534781567472506287114961695918996762779314342467803683481017291875109970356239822250058107904421429850997353803124323540575291553844864986004051393078730440602243757742128474339373352978054172596990509588703204336558212074604367234728564507356490396733924493713335071591402346539125300813370683806063406983242398392968506667761614213598569999240405612027943750254477851916031447458131419715067180228260245453389581030904245834551217378237173990856062898254378706585906890428473511252191702592299654653988132886176179318713312968742481309235845028521188303459283537081786178784182407515199884589422498511515914620538809182936615100972579425034513671350596464585835371524132054624163802578447366486313566671341473994363883545198073952789548827395933546563528727642457986834076810283593360457110287216223620153453600443819819282181950204631372289631874473494519763456357336315912069150234934262667513817058941283183914435634886198420836990606229241050791821818824192381055601786546550231610187151695988475223008021179866840118383727944565325887157278805101146021353393389936643103150173448621813327271433912979567003951144698064112841167740752079187392420408486761771019170540569835133228832850536823171546736119687976739389871887660127437637089383690629286599283326179213441897348792073695726666349940166906262688904737407160258638723277761499263388550155310818837152506030335336077789889318023450612756152100347682659461894816922790071478174984222159709291159606055605836756255098629026368006749211785521564489296972305851035460039793596971759759661663547407195232405197140159915695538468699324885192241379714963156911556385473021694886069850101443802933495839403995133298458729012317991854157400708722681329844276077666593105603044035918340022635637225154476942610418462517077353455815321774779168833747019078693921002989229519399195297630320149381828478501516561446092228147602197642236464672957527429449354205091257933871167614716323903715275061741623471845088951163024528010389327535950690637699109544214551232284316973463232319083431390437543885065306954375719748484970335613637756690952682778432323550399747933953229357716717205774256034508602771789511597753476734689770804420372083022394819454109784293905178177155384569615575247351853443348550009021947057179995804920210443756997174103068432827297332987149607128885545836425989024409959239935787507396948464765840868376731432318855738739268316476858628171845183782677884190053279197815187873152770144547563901014217509822926157396160701206432201294685988027002622194182054468182654321801092432254658782398140007860863476290814317165657048709407884863398811034747596358877338558297976404534591495275713027122007209882318405664020413109234551008781232015684010335646972761105052662595172508434170358219256053196902989220178611001911161509711050188652649889527098426837247409129483615282964186913920360318765368802182508288041626134999839722119731026926873603383995256176175484227990424581005009658588278667604597890570162591805149496993468162282519561179325547295958685330420404445113441102606024090965232910719939132309616758426593385267553613182502849727550148355109951076704439370797830684501322955666121256601202181277268463732916595376581797457631424192981575636235019051051760623941531816267198678077263019540156775434480671146544403753049066557530414427501534323732327692117231916392579559010386088512334535030292588465508602545925108720296308152943308065541593941961148260410438424043562369586786000816467351559825376836857452434807546736955703030118262979397371258686252640747773974146586648109522701478921944337252911376023202587680621249356104048838486401538624354663693398264554065188107883576134995246313756427800346922899896113192036133591150385582181454607877800396318991342953536746264306631722580926337802852937186218281697540208612106710208720871710734129412107336351732941727541078055111669893955329232927479635767593254424792168020799909331955043608508511346691372303621674330320471619291636437332088077644800292725317229395197300022139793146903052821006986120479206986043541156548893868159982535675065216569206294458957088548769629604346858235009853308749995954236761469209766108802456667337921824472952084466723347820149794231253982292925510922324955629640102371210726987415360021102936013194829426429586831611034362596439479962777123752370701425484945060765579653171662963110624977915639947865541803278644631483118619411615013160321408748085800058949243141832020762846119176087451610625798737394217259762129540735769123833769384230470117832742389513985892603501104242864874668927272454151371385960497317444743024355409880115126326525433944486618055382127587751459127778533482364900379675408445499240149922895323582743520364305174845356657801273167896680169363137851690175987945872395979330203360259068800229301627405549495607608544954896154357443260621240777367019902539172099271683762287495270188654385510348620338619158014415898880643540716586330713419060705937156098884392479091834307329002990673274750654987762010002036837951232698465274440284573203279957096823770777710151520840437867519837468647278845003598818259270495067481428503446955539868390047646917572282336653142208015731698355037912036208150219962814007929808217496036637464707603048720821801814208859340042009864452626948092911964602749610610572181977484788770820295869507108713690289930770117217502577802714486212762205006246116356090417228599668508110002510696693664579837908900382124132870715758851704219556673702668196376711091715739705547624923483537045984413981979305434820411141508205101658986958870251144198749658855404748718532254962616136621787647972531641944721429339629836738734280793516222462845550061125357680691541299387897289562412549580416790718588202079624723214921212189917014982070124311908497592699470843948422391293006202933413198601039236573737828957123227757565916093102404043933193082498131987052754603928330876092447929267109520344097033101927481002215127163817319715965018590244591785909327753124271878003550625592833906584179755075855206531663454803526232537564376594883672451042480240445863238799217258185640172546295790006601757170382028146566182587245506245293546593460980316491612384714644562940638982474452610954110286972920433716342966332341465902229448808493979773365583573325825507952941910153448482747644587777201337995200224684417068547011575329839936979932026056225372559067211654649720720703522245790923369431890340053380993154956891788635633230900810594588766611075331563423351994965592749760346032289083640756878875731257373466185293111879698272230019004786387859814600029749515074536974724026606397016584428666299571628586090803492882413292622022437370747791575141659952907613559405316614851272014641599110560026791405251104117656932935498298465660510686432712927934148357152066758980493289175404898444164039470603024063437995990793097067084537217160448573369609735672459828663006535651448212104563735393942629239593465310763701792836707939695495468189720841232256686935132065566656676520275045456989103725477304049846678307441213721803118769060397132369437455872583729554817197014047639213077109588121218865915569947909615819971111904443928686712785019768611382683606413869341491201457438857760193864939953145920273811617967566570772186707190384180888158441731546705329329653390723995987472316842082062477960865325519051797298977780505346439970823923390662234209855763814955550524737368380665091973467026345764804399591450508755696631078135679146388317536983352042620915023724654453341575476891383927254970390962434628624405562066229379533202627432456052429476970535066601430248099473336404260705231258269092143991602607109189684486402802410397096593020335606151686713053596376984177699204070095374682264457276074058626727089459270488992191038976781495444957089239086245875698158753821883116633059842189738632844065969500201900428258620229529215164684598581982948750978377159595915293594427939851081685184993888475458353710852424798058804185120082549139472576265162137940888714600192145460911370105180606337977758993394801604754806134485338127612148003690333254007317015623868300297930799517856197648768129675834782606375327298537607932307410937082629707601352434555818980065547305735777696858293431127159404266320681282959697182958111331961403361892399048500367721239417216666665025006211263129664317134609876728706902855455124566040771749286628521148681800513624588214666746880917109228487447903486102207436968187366012620360321413010497749844214940642755022637380871421864003476307753226428983682437568873692555530444646750836931491148594555084692152160793844872071947951419734842554357940408496802476423691745100960471824290540542610741537193344214392089488048377644622234050125505048087382130493225094131413892029006804873508773310922464975852819385244435767544765613472190199793763328998384214083564102911523410603204566064992565039222481303792374206764559005082713791174351554152105511932263840690954609679193756184859687685413801327456566463284682021418165843693762736658145089451341849695978882386265944056475134158642554739647325303446939498183878402321064169123379594600908468348922026604566641623819914204704128867409317337989298795589754592872066899279203179591427456009949553156283251048558232481822246520441706204255864944649207090632451873116382002072790774981055508060598462139733835355012577518569792193242668268055992213019408552891307752226418456632988899322107764856560529846238671499763242848675701202837909241808945224485968261157324697508347264689986588828272034163369535302984147395123218596906905572129382964136626949389707502181730092899332447395147111310543246061513921861043693346087083108950845505354710827854323419309261302265687067712998993825230041837579285934600866223140091780462808530296080715843398594103746815705586967415803819230170794880006159200080340666232235674314451378618902131375312901804574427336004848551743660777725120405657359965759339268971902383187379885647720983347770083346472329780029303896463107684469425107105540453581452868034022989010649404346654073345876848443533179285837847691206861888842542041359146687471819668813758083747988763488702893062348517187057852211760797927865942646716111992410647635105435844066429544427266629372923829366422691649770837093531044935360977223066083495950611742860610652434102731590290686956057319104609172175991250003445556380688897542340100522732486431668017558116352810686588629702571232907683284781169758377441180677128027640359733529067037680384607324600652960725791698774238718708231266932512927457286598287073060329283999927254984814370715669503118612985879560002599688944213395194063226157552186270785366000405721980368818673941828642874597789297315948149408937848012910155662706511697041337301240624417834362455086375991893905961683783668846106136302955906975539792919818670194314607878499259912831924704744601683222050144196628911063824336887337408418059038147724473157495278910861725442052847669281292748014805655617508884405493516348875349846624029590295258024813366597093340102112025997616391231500870577380413759038794367271710781906330299086881016181516864528325762371133020240981731764680882858600663357427524689943142097917078524896267020246087879553304418696414289755547574965331505363108803066306061382914887658058855352814258678494904280980330406540534208031707816277836541069119271632881498465418106714359340149804079383175423158278937253644615434240566058480398803135810422243427040774968660790224363711643990078275874551355290770213785026468780675166789719271537016129962304983893648891770809941684788496021791344479113410400748463717446388787366286100946072208962716372430744565666984477960152787211393117422156369736540778631383125684893633330566260939979751401141926629796905905496375331057198776358767749041634436766952505404411468355196946647707225015899489208154239384795331315558591244086456435774596882849431566353618173669396959226559004500543199518798952243943017275501699121801106016105875547686196505327272564217482263337628992438337801433552503520418260566494680044565648606496160094940047284941897298966061785827708266769890670063468430093999275116393019122827899497148160543363240865932470422919486490887347285411112808534018881499514632830051982494999996129892113937364217809106086491054102483712436400276538188817099707360129288783891713940751697226826409856603023421986257565935229278490889046892881374506917502107904676823857349444785894928563442550944838145029087017605995740996330038568384273072683247645573964660385053915279443448501471196713460902713924799543530849096149751204415221850799832768688197123763462427107469412096802652043102480585207318309161322642789811751093084198636185657257594087598238703363666105955452428039617753257044796922149607443376824154292257373235412135457546523689976746877047441827493251608658838703201335087396590986590705571628675767817834737290409356823683302714550573140370459707162535236199832320721448518442153657911259540706429295275248303376332161841989386977488869809476971595442282521361907373694381819879784623129770210134326424893398942253287667398483348347349136545704638489149174403740634959523903956699092158907378527396604554992882759894363660384884464606472344764191844882733621663976909970332595453634701770835054759203394458125300186534570851776055334108318532047540097039701214702573881062461703428359954420134653664187995569045511926311872045736704534310526567222353629633808618313261863753734555669675599529646334159837719492908217093064530845240563496276385930543899330809550509345002266261282724301574357456963347315366818802632138596762091930937603581159872375130677015794780366481718846900355334790634625357651364761600922128636765510477381451672629149298550177205223528967535318998576389758650124916771187528890133199218126848308062762863471122123385890916267617618439176073965404865039726559629387211365326310156366895380574948414316290005491454341230601991915145103327385591644168934988278072150162266665253491733808918322993148525606702130729142334304204265655279119321373631043016475754254144745392618828303990051741833458506233253443073678411528881330009837191496726543702323424428186830513965057451118791656806529102224618209264155683554127450603661020382058184147437567805613465254391509219649285970566044177342677715934830257125429681883681426323136628873343643822742894929359332481946111813592198143026654698481896028679144387312887336278286137698894592504962153165124366435659929389453013605473834611142336150750711001019969405968264462306991799553587003147597102677186691072244520316955729836155767665657477209062408188308430367877356267738953503267927672310505498795203969192729008413029001617028089883640195686267412602380784569606527485938477026070184620462317771013016442698674089831497638804944287396332999663857481674647430532085299568169563151681525257542967915177167720327286762010961841360151471864544049882276568104516938594912781732197472160913207251203792777067317205581707177697123065910391034692972402689926092608822148725394241909733703522145466050710280276064638586111051902055482523201804265780056582064837931925651699546909381763003621330214058713292152189020046546865143570590709741172780838770570496877975634786686365882432537641875997521025976693454948231754411119625166310917879440776393496737994759157344371283144653646751938743384249408720063700388402899241494349700898587707613354102022935569007380500826580226452153191982296473450598220114793443577878388632004027991013879940849793321111944375950710169866742385200222526206444643592023183733912471279703488857496999802500315315054153151256358689344864630835851699228766576486541956177261329914528979010100924316934904151628624418881903250488830700581911605248338149853514799316207165980972678393137267084226786362798764100428578704029828967532751205253896015087520272514254847359345537856378698792792700929478611489831148789938900138236952472760042659442974004708739186114510483280107981485928111956517919109403710362125652292940728831831561750138285619233963932014191815161218314818125764984637255054973647224773179341036958048026870117724464628495752644207069681864133489314677996009234569129748471449746496876925873857003164215758470096890686375768377557672876769610917709729948082956783163523909893089044135178483165354292994060467755638972139626368379066921055620401844252989040633010927345120448241150802476558934560742743327119891682927973069353223458146065813141239830974556213909733892543887821642470007975372216501773428252719452425727804991927561096524514933548584052892487541418221081623226229176132367569545179219052159650526023274448937674319195043580609057146087640245824734327598653338795726746236580506072361124186449823407700044207686668880616390101386308305804812124250633986473585798829081032834918072723683834105981829678464581335938294068741156554509681770708772118682864787647929202230636813316599012527964950152096469277628575595541301271657532203703208485496565601515573177257222211961658408483034323217550663623949032784204231550763927123284555445086664423532620528656296447102634927074075540566562011250003025869548964252897639010202648363040181184154539660641772355882667806400378595355645212005002812280519703714747718210220770637400864862242468446625229666337684821049431776254529750000222902756537401412901024519885363227086804861800492516587185072284734418298472033025309618915875231525659276767379108931025995933357711575748629247513038699641321420486372331343978037736611865164153117226435309377331654125562503319878651107051154315885957300922068813146638050652979416821697460925735238368106202179589641945117520548369545734256474617701251916884383708569258309924665521064017368582805942104710553043580615865516517360187485099130964287661083310156652954821095461478667271537687612300335022231311136098233058061855045897831867869686849420683289782995256931599607910483216350576354313763540857264862081306152650294403332643126264512943832762706725866667488000066870112032071526342167243164714851081193855982594674393363764473711761318291947741976169782870869159231968646711116792851727632258189050357190365722749266959577352389752128977657446944764431298098462993110396487913700066069523441270217706754009916456584813536770186201836612600810812198240577962474724841450467967169779902525315824400014192958700681191933539548667803746846630001010262034486333182039439238863534275832338246870557604798296678979701250092440330446476283512632057335919282862232580845698077794965699993955648339699185842761852861204030946602173153171713305090308594489901023387324930782376692663569690005311788975239519176694555258578791536933282049585866243592603318912959335546589246423836407983720586507825806733959519637461453466258402184581274163307841448272108301254719806442875184068387290788234247850654373532439027829488451286863571933589611773807421926429577976183610554476608426811763436732522655606719487521338981586105030028750288718061421766942405045937093946161814487342789985649534283466435572365489228114877683311487594455804906819629757955225602294355105436885375113150327632033257669248501227295665641916555242423022929211216367958338678876653844156913024485269781808849574357908087475923765698222951903580581832282640194256310827422177442240324327099927923435785691707968339346758086876071035799406590158698041749971763716672784530454622124376646325515404666674650932207685370046053509081729813375308694570230572975864669131784637269776219510550242753282173207258451205790966634426863705206382171203493255740541078355529374104031809869574840406362546995182385233661342339665053078889020464001383070998170502330693102741392992872448230131270065292436113969210891303661324340448180498125320883811500019533004210580832719054940030410377731683378472786998052124532858047694054940913602439647092990658487023352490095497778451679430232366633806652243462952583009218380098617422327223353523509103588889112669896467894655637821374667734494779340587782657772392208961526040696653259487226579202778348423362550061557527930278039706328141328194003476121981787057683329638743949780713823570895367345711664166377036564712048700851094737387997455388441370177535724808751589212416222480302646109591418506308239715459124929941220411649349332970094667304868956783358303671541846792927178766285336611061088774009935173857798293832206711351124672436290191672714012614976852329145359000919171479766799105364068004420829670497667469858836837287703278702230767879328840356791967110280916536722637807263019130283180908575617821642488238939617878762959354973023786958777318385581903292123025130604828652445366190095429397970603499730629200277311490874261610632612503509228704861830795931988400009318430291060062926247549705889669128935147593746496342556614419388153773452188587551672255270526722207380121407628470485317886337305729183464084087206676598702585239756194327502053823278872464192585306743608281495599175289147733534165049688124499893050976149854501275424674181542462156275916824059369338876064998748773843839303770202095557956250239517852051328252035089855399135985747601010830595975562638868920762862142007600023718951560814662587283907616092554852243352982444583361112575007773630153385023653230037899091773174253141328016203185134746123351424101585348894677502012092311584632345451570163218628392927911009351596727916698252251737462938897996801553304013609561214636060944589027834977252234200030887543298110879235238732468870343543210333423430132420808125292091157024165639784781114684527713291028287772091487493419391462400351637093361144792517612729057907070368385554552221697478804585689079691970415195682995161139830561984869557471790902995165852944210753847988686308616669827531693871405391394348026019702169904992899682831706595912301358870342055859002647726793908718697336681768817625014163067507819749302966081047082178238886483611658101543992056426254044606320993581016074426475008538859108277137329824320777016785598105618272084530394720104353280414891324530014904850106130896466491629409935233805636234589054884628443381725064405846500983649537295043345765040436283363317488467732692852992018618550919925636481025528855292587493821625100156782917076888513473993639693206439161221823273778962144070064475937298279611259812055478729407543578307357477445511438360975131806815754845426359706061431358008401807935066567035367095424507934252034961245972153384670314953958701329216328093144026720873600885215824129705072715403179682186489116278802086107862706607420326012278756467263133096622866595003151947176266086983975722455865601529553023069798433311566305669409672862020571120628765342404497756522773310603270926095249012128979914440231780237594421357776412735415461591201518157453848499041396939751988285584710627019734190542846678073119609859469843589291358312034421516153507901505843208812146091911698132916419640093234284567537078652748891467111106758956382584909027355142631963702036434440039171251528130587614187602282084394896557743098222453479400485539679307666181767432892557488066366542232573928745480725571284208153262966925239868723218447763858920646318052926700409692281783507984354352083263949055414222486550551796715142823516106561868497702043778134808032103124562914850011174905081608252182530164480337721896011121801106971072808873112105458387664204340899232176894156421549317450090694650655613443555041493553947849976815080565650722729051650580202028073146439107983057799332671756529417576806027154028499082197604700657932797144215949970858350534560774982538771467601642823603276902676602247243437695269737297405992032164892536371638785986616460879887763512775996171700728659269881211011442341772449977939629213481708741044292776367570898046821803652256139490997791734179919530802025693007124114153456157915265851168055609412465855117015078902809531729213285017970755885931545156979503066572357177988866374557937694301263819567494087469400245803115508700946258046757376886173714645701318837103653944284821287379426020939323952459425853937621273987097816741022297205717991269596581188544600247044805725411702698570213569419357209651696734741245419522293213125671001932632608788547486718350430919562312525610787755079466323927999954837138840719267073815662752948362755869505366010085252881222119164055184610418802042694692869332884562119136950596338709961881328050932307629626877721740244320292873491422854251645268494496989221832321210751904238966133850984475396618230661479565297904130844678413074593199918943541887382850114148950680805733767748461831691048686869900731919798285049594558893204456576105363983349396628895215428477059796589621648899235588358438820849512996286105289799575737614285967359794898707641205727550780403945712687108639721264825620539774092606580152277724518844933468077936420093637886916487962571921959643059594936579046996060295511922192128675390644926338131416439389459567068096471585904538744245493328696743926350459298704426137039739987093928601579005461519189506324977955727684558651020153853692542294990673725973602756663067370286752527375526131316533354054437366889077037860562355030670704126329428764694605513075256912798893036342889549218207983474731664981979444045896326231351532903905354048356980150985526157946519871989292406652096961547513421105347990780633179537834916150071335739999648047291302489813989238066021269107550302925194129222695769518951965736872972250548458332467014959558870859500677906309417577043210960413474047772051360942007513338204511498484101173226911131096246491490470437182477518789416253307078829083106794035589871259312391928454522288904031104969806781459778556589262997947986380982807261161200370403908880258873024012706914672945683670171610483449864759078448606989386949300197905387575421918399527329678752913749013779738636005518738570108671553663349335077840019327780447926902792787679303606766936534186206115575488361117499248896186284353302253083003650527558215619417960312126859146760035578497244594614110937837680738188657059523756406130351242052346732767873319751319861816562435461240250786511529698458453851661035288999986864140285004947788299958512486415597883301710907978181435002056612028656726499818406486130885647868185735065300714507695838541075266745317855830270850162880812950465394528025283114351098248194620484758479430653574797561399830200214901040268284552098235343833524930457301288383981239843525388880036990221611824839773449322925339597696178225964079185806539374623383917193713873745137792658140452686076421020942364775060101963201310642887243197298315611839067443013508382952524823347480439319623446021087618974023073122702721806645485460487601597475242225053351746300113846905887215333562543078380041341820198026040097770899207796352046337283446600744881877454598122819787070550698630335258552500112855656632982232039412116543305168133603105066699263167709459736116266700730213271815521403974160449330382300665212007665445562563549738691026592696185815657621255188613041660905886612553116563221096994847160930745881169897637203411500762872404512003521666677760726437191458530984207696354423904983289769181137811687651392722636151303011835524164514665904100212523647066028199700977469516965326140460482693106500340598195521002399683062990206313764996539794073520892440159011333262189301220137188460278108354145935846989874114847899903747068497040472542926582252606912455612207220233333229569298237819593196283327720737768768956220144663355233366912358034778651389147898737725727888190357858809154524546994888545947216344054926645436306051234769088300984061687726245940781854286891236704478727772112610573969785203919680228802903579891711078566569959518464087576897950607075907384138367047987632535009269538905044074078625549469517962451332953964917370773065606655399693751182686420268313913148579158910953872032392787590967767692186231629482261080676564065869426647231547188813353934022876701440273563292297054502311853710081997995881084786293865578720481203146961621878400068494132730903467518168395790014698134809393981371101954458421285538487632580658980357674120488786367170755478214884934965366045730647490699296423156341430546292507256771312747547289945925193345993424028334038045632660528149767995181630608224575427359452014578997883431600217502815443170088417631313947291725024329717289979175552039982551823046622076370790979193978414110546082939473140288619920446165679545003761071930853720002539737231652693639127077332222868664254817335447308718881861070622272137723897456598330655761352789806559776843528906868112649053653689338543348061707741723517154694922466054165625053755683963618983036371914163617210147454883608595318130838952423440527825731923846107069171685967849074160984429817957465486288261408266807046183612631873212838601351239009700001059378644437573035992010351001899502824960382950130940385641513193539228166618306364036580496953992248658734975342051153655736734245381842438284304826415971036723156802092071950816464387578328101575604232911039425048537379828535531667554577041045305074792342168625050571947481732290417434058168797282337638143995741982549837573682102872502615398681522451696422949922917622377515108044678368316567434623120601358961279951564684727259600617557719340073268799308699536285837247554758763527532173732195115959542746896464480414931416643456340806013968295430916375028317125459315978729368943263681797650490292854423902678607090204088233048478343785864275432695542509148709676643413137540074308613992715045847003617040290135950758700798057057650707056676077146149476521864676064622440079791858019576338806553715321961931701398601474602317942968954943528521515547181186976208273645247540321094927005805250101074719228274262922171031410071747969578085371227726911614808483973298398146738475693332369364707116413239432725872928477382901235398310854784897593939979824687344476928895224315988024990692034835326055838970488569847208208799915815333498108759370208369954718533070412985444948744714184995341560055905700851299056413746451799490789001835039306897111558060327008822002125702778914773547493140160708417187079216009212552939854986544387469388753191210593668932595028967053236263184021819014684655747867991671694451394161693292948822753378755926999459522748974306841066857244478952171494045973192493240268437711976264971328528156439421688048904996953575944827082955990707301499218262584773795882449830987306609380958440083072507170595140439465342824428072807462576160759929251867357408215966648595844497169852324244618349655858849912592966075363650605369749708122971720682686346979750393037582060390046348708338490418900304595511542783525575846557288032320184434886720091519727981010722781870305231068978921191699722601858316599669222026381091159077940440624257463702378712736149590272066981334149962177132503454717780438277259821234161014828443932495775487006221505547493751328369852072238920538822876147751437176757980195648544277514501503010359178157328705870913938073045884987323455725059484852105797848742333240955937194523951975244868123423409835477681548676517009193721777202277170923154546268898287366176461663503116020186931223490865613562027610005372326760964190865191547380774022107669231583469079452953296326576147252343023310358793263305859603332455042501213233722594653367264424718494514054469331286955496738574774101503633768010544511762848035679753780866273737353670345039905412054029597877443362174570645740229500627441113287279072128115972888133235422452441541316321504141138565510848122793761821982017191334980298304318995815584563487839238274277604581855106976644470245799729181182582923758541482360482811773667607782272646907950815154667795440522408387772421820909632069473735569683751690309559252905257421731342676371100559508828460502088690221204455903736400961192592503763068130060123004894777206486529909821159112844339122327159512499552373242888828012410082747568889517743977313540851501282650424034354956415620212662577644657356571246702410916964298369453746837265297025565762716197528172579386139045067017132202612606471924671176762745076920075852443342250605867943195151674079274614562973152707558019638935501980607761616461378980121839047637740171799980877219064458553443676179145741541084534662568369082484605927673165236172905412351345952876520950928600963412627186047016762608342810769507765799930233459364426711233235577629176651432309567107762936607455783702547148304296586511717753391933065554133018998392954449514627995772333489574620040142164412434384608886692374380782431350829491904537571369186986789254753068147832255808390163719345513072020816036942337023573753401119204034803017774828214543365919189762608855212972165006393494620405185733148753364891116039886905473667691695117817978255749282291006629427236957605207234449536767778863007809494391811019188658917489508402637161546074629462546430773763611718309627661956993401642738425889951590037604355775942022595243875451512658034435956064682615191827974899546358808251534233072959807537078959470199430024399344317012005560368204399497135444489182071932994215085398424148657479784497251611991825274537170602582774805498008164625510429634497942618719305966084500807137367616713734292182647178579218367399852310167314424884047808591255812144561560650132653246309795558601482226829729429380779610133182507311989691107673051295457583368305481759993313876781391981910412283603070064426374637647868658502774432794541768573464169093430946795777217646692001677354408884802384405240534570745097990172109517550844811177454779202856540481665280314903773172480675128537731597306066823444487867306674903117496384348075461695142210510367244458182375073591487298124584349232727460711992957694271225974448998057465218571191871537892563127220646759838830803257654116894552273875832102812102264226334968689307483166649819978636527258219201401295283600892935585475693514241159020144041795948620467881105387581240010961954680086512873750079879734386666893296537840532433559518056431044331612458913891258095000154633436543183922029398747088310539992258940448698220185934513513485370577399816136531314187049554414712354277951091998387404074175220351460021148517690180403035466897416063568553646719870430832730413183689933229553325577972967317737612802158882819594760108000744966904289814557842343038678873794899106510452524016000258746103213441229114725217794519012120746709530832909435430138930462390578669645201338373851318145087073349718285915489164294081821444400704191429938450724515666504691608720355063526974655759350002118485077860318477452247879132125913664903820494348349645785772620197502518850721283313121101511109133234970928119049203511204983987151028968501905603016293659355280517213946623095306334638237326011450736040430337384788691335450734720554573097093167594148214139812267149349062634987554734741318870102874541372615505861216118806200973696754088219311194637818200161220265998367450824310089366278262263687807895027356244366139482475257192623565228757637735017464643665324020688157489519766544007964289311915536806919105722548084489335153736226545347190540530061352013665664286092807574341034617042498461594972860873080188370749370269924902681686486707083250048067681134279603595400470458802010173197420668853680972827731606590856845852408800389466157770922604662519593359599869608789347012912873320323555588799601378953224567097330872614684089921030412171854392082446989248481877687047929324903956964208725273629368367199428434373713013085994373606305050820245196051405216505302201868087328816395490573347460918265998944614467804992641169353778663942505930935737236124684481492289520497691387145064870737115552602308237699629003615539215626211322841607149618090937247166438581247182849792028309678190349429474120299979563816671368806507319350315049316679434652510797471610872720001677722652957028256992996333657448481283654108871083689171874100588280096502100477686125015735136004528464190856840795018820960386794077896957393636046279314162928504405889293345617945737582273316788710623083333856268753595436508094853762764312792151478113075010377051028589570047477064319721965730051173490180467835306509319213479271884106049868889171032144140392204263732598441049843757303201658278036092494989390382652129200310075362453631815919201490378916308013911333530211617170457480651128929292282047352220555515433525748418303486286897779479397283626047917507671032944697294974056779960731726779846383329837120429792281358138101541063021012133226455925967894226549310331211189944936102312335030621883587141731654049209197140900918334912332783988824018015382336040223441396936249622982854970390033112062042516566013491789970982917736355898114417855058524770048164107842548983972520621204786356201262019886796087446133763678181312418778593164333717361192871980275365388432461724552596654629477484878194377387169830661732851519154795860167608885375194916633107440827235352527775749412153533624378255964109527612594595390304076194153396227333515203641105806999546634726406502884470965245538923073592588775498543375727679980686310099780672085662463064465129771445523204794163481670735883825732763928955317460480508504814629959878075676816613484508771306643672940732815720501318244177409544346432449232927636532423618166789552222973197843560665394610811094286103651738169620233793579503434703916436604541542014639215885075074330505590827214570798488414572325297658741436942480340832327070054604508887963386446728886192008700399010054101881574202824824165809133916954489846290382975196457025472247148744857571307426366247318652206591046562595538975297216521281046830980738368201300517223934882839440491398997488776088125337211250580782391316250072349690453549283774869633547231198971519485053073105534995330532543199142658163322600950900415668833882027646089795976926567765116503898725697883339376359248612710672695635883465698195672063615794613090302575997263377067117747328786165522490629411377295698696419140957395638660492119540331183391485401228093146168293087461770324929530760071613267684872124086981158830754162865271354603996250556302271839061707987478449987711467339370558596400667100137404174666622355079568937069792197748784812390315808981491314537692817002854385365491593661334131445968893399462423305809916086899111560957742241299971712953275727073252307315774742823466688090627325724587350506471925781811072745648245243455005495175588202736960846936029661482579895412811833307475833669234216650268479813935311639271976143440475695245004034040628771655986514263549434704119972388398051707004347518947674730500238538223213007790842283816672129741047204233135971450164157012717955432589302921265207811538893626550859137112261833778773791154136600589890554272493719655750997171417198246561520661883378971079038483207903331176602867489448027425546620732250454042326198627317414154491721411761458108334760985022966571453182409138454656284457852029007297659647899129436021518779381405979431680923896629815707271375812250448843762069187962880399876639280749170141369310198061338430134598744407398786500957750781025998236838664597236821051177762766851692261350555671586491367132112086477117020692758135092499908459825351955284131463964835658526201867024058884205612019792654628076121299981064262980150097799448509672517313413737099544668640620728776674025815516812406604706140519828299494466630810881880792440895762056061736075030425668601537025656167502054998033917193862472149963094662752405464538038247899696300674689687240957341588220740161612122805876791119953161036189152174801598649813249901936285206097390136510989284641414313592987057744927936999466739474613156278778793039798264600001110232062890075699035996413025075376477906925104273013973585227550417318575739919071850143567470594466529711489622364931977562800786913595502743463922464287628608756657826346647826476195008917012124167449900668542580436052264641822111379229242931269261032567810574846244090652515329444556241174531618030165447482478511016514287360326487596434091711974476055649909889496305798822520846557408373207674704947288017149792721381487260602694385420335655160044481433371580194883528855329412734007429886099815610449893146489969439730153885882516920429133793807323019173304776407703873255917236266284750116446129970185560751194742698370882739139998881995795412457868626805528260658307623057833408587999810134505862551550264463891977208691795608504789883707715180268776156375568126636035427780500637992716213775959211741282531122774731133367276326531134002509066215513418471842123641487994718221282982914053343557004660039112390930256772479493413976664989373367730567412146110416732988722076918953195373104861660845823411279895245230945327499526283610480670006166222916440005358809681847521521100197452898322973157592858804330316269288589136774494566257927949819998150548516587639153231160036998883300557272233044881522111041439094769741160916998728915003877330346788368944948015600519051332713727822662314335699253375930352434415882392345763625285857866964830994389257317699097812033356469462697865439972086198023285101715300971357156148067514582537081065461847339069368853397210225968560452472251651985560787256496272077814315802735708181904932503654435325034285192520108263462280933416692561440489721137395613589267010773943979627356697006977118860181165310694356143028234813109646979314977894261676269330195935587366295851181611647895082822641244975128745892133413300019287078937124302838942961146999961564635931362887624323838412045111251937200975916329319151562757997842301035226045507931211830222697850664034763224382722633196377191027465420151451265336557168821085426401851945392596844834738009970091263710792037936375935286505905394015945874478335873072941771477939072851736049056731749789694114177485854981142208733499723854400292046101875641598455537057196822979022088287598709053967831530920584587604000863467304633035741938636047341764110823060049496969665276861168331770580822250572831734965023690926470582808745051699563393472088932058291412964781190259016975753485337175669986547457580107757113574044710713640162875637286005086608022605489315894617986029987873010801670231685217970405554691943861501341714482260135328236617447731710519047595028482477246852258698146732738010083566618067072955698614238806704149791282373096896332874194314328654998000408508098875417299047363109177119433483425651523471728765141827428839231649515386555259278032194659210672658732998607798206716375544996006456933004791873339083125004908540366788501878215765893731940498289251666164291417620755762076786004496783791284727154763037708649570003387958179853829155958488925481398946565944584287749784885503979764797322715062866793182014320689175681257620345113620952716341284343428793728909931072555138925302315121913532690227166295054717349570471919763503281987701176859722643615224112006381728830105618699744193648672040745891615621726326148525102089135673639717631122802920262373933108664753074568915505860720189581643191064164208883433671524730654315448835972158028656125634415273588172709315510824690086828128803509682349194785818574638673929530971821357892858514240645790950680970152685665253368486738702301710512079581038041319245045816724740390059159497672629632263676243250374193954498212867773842360171593653263099561164801601389798186846327949118029102534294333869813080762545940898033732427761950356981311738163068941974235916071711013287743648065507579434251996743095584013520461044410220312043924504977810346378236608199992061995956463840435448946389305219229521334565574274236927723372779380959242190660598942944651911591227165584646800011044188318781131409440782811055514531816729205756692899785489217089094190579940910165124494216046717673736881061160398807067614107809819540992692051346614631436851848250637685103591465141431057647356683118197840158204166221015130643153607712154876088540613800193509831702073458213493021215026547484132529320419362363629317610408533359911144248458872450161226359673448282651673519916803626721496226208817770293268817854615721210805796451316098653875524602874071934739631695205734336460648609553679166773477324456862971523118641429990339359980924874641673747555802850936899566571554729503088970768474278791797773597252071754883592187904189367013960792399850921586732893887842312786846292799365154941250832393202894497419911664267107837403082414627856679424819551101576151339959465441732776831265222246824772022640653199451771154740374093544206446563455329034704065611443040282458295994647471922233336505114999310919866994663127861724713288783357071743158416216152180096311692288508351820679357375383889779767982523260524522007999427553181817408481482086100403763320821363208492905403347762862322052659146577626600660603502969849268085155348406548935940462083484458968382178449342294704744238144909041820171031679448169813705868506329323142529905302315692871210395881340411978976406725616751366258260609952437874440290660132932155408873228971286840927893157359177672963868697590252347526483480583297504232469498830386586005204174629703034034550961517348044288424560013018872667804457460041946498374085075762504906850885820941867214416315101962501133566241233556332428859571229578499322570224611275364678557748690044266396043732609408112508903478790037367834560757878415351296300945721298137963958933264890421554737526655371497659853689419309033682187932837115748813242712970404326051340346600743738738287384516612900809656121652727104744244085068779404560019300392500917506205460476054567545108441973143475116601608921009924330075926569093698340053341267909237734223788788250402977165245103431854120914208144048586779625377635607161860287445341812934327567542799475469023020829501367792510685834807559596066058255920706036089493995144946144133961521635370458461347147457176681849491799683047222571986826660385797199121307369378461047197805717247711763108775722824831464254997025396450788642698660734363995574589962183742845881668179584719678792573418758499980120463856120333223291551060272935554626335159778205096682081966651962171356567112428367995136000465625506591032441863475270028470135848490172151791454799746584723244467380078622015841291288805439281506294792803198821321679349879977492965746366647188640379723308918782834469756625375786766519291683012314139186719123428442259755450892171620016685497022558828768024786107708648435031211048340446371936894105625453361860351655483987740140364951417612927301083551090004245903964704229831330434436702278259587025209368636372138284568092086702218320234606341347754678668735202413961045000258211502011835155731166148154650426291579411170487671420993510928400704560287476683959090691342483991445956932809483540536885410043130104692233424865351114512229795281924313869467059452867512398382987016928102481649908055379320318916052160367163814049471456484491720023597744966618041310014340111464479950887741171965440952055017709748392724344359268073803549978009191886925757737576939762780005216386370720153056282758965336979056343584615239940910597936748423408938039017194390542314782053370693007349243005568281014140058360537281945478031747720065340431379674859359591226518443546705261571868869869561406339670613674960628359261293827379281418998126985581071257328622299736160754245065139461317868196139741205946511771494800873398205613628071509986842824760474630955306223764007142032861772376108731493140596323689907855349396179570934964219397399975860040713003495021619716161448477962878372415159280128668928196877716871803027790111527407185482952629311184562450013149745903113470133276765462459850894081521785423356527031651960022740455897959274495837836056193997622119350304133655751658065798235866859030947609358028297169127771372385472716403555248052546719148091594684891621941026827816412093505848017459059080273977311043523423788221416084581562039138150364663860108293354330374896464812245290054504505836325533549313332727658893009675047635634784544624344921660891838515840177235839288265709612723591734206232975634221857608183763828438808070696616439718132542640067586771182256140777939556741728542492338240475558986491150373111131568557730324554835545149253755037422352572295885139462951473520049645975214359438809580877739577638955021165688634553401658346247715215249314582950169044522268002659042254501059467314490865742696653407894197640287590407056488947594188863787219060293248347830242557802170242718139415995735906896247511334832555518511685790733370428827054019300474774982391632529218912653867587327833999486307396809821359868846871075666839206671359921615394860011577799158914326168131782588105375122643132436197936968955850239466337245752609546634910623232578789279903438532777957248993344788853856131814324058818558339299260375641952261258303122401418180300504329243622209451883305421996122840976341748735540986473816595778554055569505397860231254177058593304772670028263214411674841448183887977626959595142257853171730186288372095151268327097292613164730180136859247858649170132938528251325000858425141245015473131366411246889022822025525482780015299234641109584619686512129910951957063290824163001056183855206552782124295651086655479671007451974808770504607997429117482747772314704715968252484539133270691107327595922166553077931348701107958332269164791617756977943498884588687098414874608922864313572316741366629149106145751581715332423130735974024914131776038340353724984355893248399089585487255912391136658544419727103444037035960131202685183360291084705561481591545955342137655813050790850188752190942670737018006635536561416808393483097083833319239703129192645379264541274771490711917123582769289815383603997642067586123663434259023801241405915111006379701765180644103315107665865805646159859688737183684453979261471073210245479086332505142938689564137033482933122107353660599607469703432669402256166151220750579577911458388653232780190108121025054672192063838051185205584687059664639928278863741835728101186051874526365142295025639026398671492238827571921645830566569658380433437195876641764828502694854938201631299859212550864241783346286056246961079484787677649442187114990936690199829572751697799217311061735363472301119636603838066524870285887353023187755523441755239794541008083091236135956295886090137945418538240432731004625432056806646073412847964422511439368458755311120105913237613610042533119193471604977009394522288862037641088683968937294930287788753314651828427624248820615612248091456658106119684454698733146215205375602234469671139775304453364369103419542474663956266134817068175069431205859443001747440521099316400594057059657336132218056613814557562828170246638027668647675565244322935799228898399686155302281347690541338241084247315133385620270542941364836277184696298651716670102554325945019374760055680635390140386040197032202763356340674590747690075140527796888568003546466888745334998538983679573036491641689468262852227532960389085531620630121584655259881154611599513922471471139689176349389107257055116595132777324477762379829014315869582848426873107792650943872335753829360387083614420615402015717319362921054732471412539331255166984372784842963244633576348411781037883456905866443903009930251350861952453177362093563330987739349400127433017967809937522677125302642359209984929090802465369237522922661329039020630878497160024073069385132676150726512579320068223148395678570335026291676839261837689193164636929593114167511160065127067632060177358138261958222115445960697258952418873081564373602296144596760184633306559622036169492951159882471146721947344302974707041734679314775914224247903912825719844035718604045645000537448835804744572643501357805526862269237574479820619347488772764219568478051559979777838924818630355424480106321783831094182780426495316124694933705063922969200686956936205706309388855833933278989115482669185650241280195195755246467255737248672111717662534589895380992559676662747521157981701222211342570193585565637009946639416440453164205665633657840997132149681374871711901732268803501282677695361897575652102404995907162638010952331911030811483679477455027527227240454679345348776921858709959474775703697283709052396570409271058709705465938795271854003319552901519188444364326962758380617237827905667586274842649264779795219770768361573153518065955203745467487585183526817939479166398903065584531958689386399814005321971944443540414672040073934537785544274178677193585871436370076274579472024640095888334669833848184839349946687815800995243547538493687604375375767533128719712946389841469884103105359126398555899688196278237987552472863474604948271336799515217903402795996115056039562000262185179630382370246555958282005457519827815652865420193601227570515160526586035420316874548187395507413944925956605758047804199141329552722391638435536176350198463374168037297293962426172749062873002794025289090974288970018965862235468911122624437876353735027828959800686435108251767727865780991696264109977964688766353801474610995334208868173784056154339454474669263903470936280856239214992747331913055868894291795605366482649216375282960316801345629309406422359679754544880583166422243339733256513751828284683487763278603054826634459663185732575263245813017662484925315613864934561057569829224459635748864777393476368178610984699167810421658198137693857233809362922894586480893672498944325263590366611951421865196474273712277743430751603948603510977935270646677335730125851444429569744545936966432931179448528329612411974898767347667772794079855668924814221590899977972634572760397024930809389383598998476058850335044542811669218970374915768987775140702215611654898643558027113238123705059580338443627160006537491923873681268003254681692482997121018359286102317261570536068873457529654651452454535254348582225521445212172981793289379079406037461442051174042292703417451095275088891172176237465179652376868891037136758597952078093967223686998059708420510198812420293363148648852829437574100353114033222803822330170946576966956347690777739966451928256259084417443963290668838592288781396673575615643412848940927022583624405562181470092226246723544310129242498821344233065436986626101696057723052642720246062817396691165865638839608702099344035617617475229727495552872244052620711707554717939477818466621903197340522377967574091991967374720946938172964813647140195669804049903770363005444117799418649842162088163657733503708695809265219758138461865805506656165259352215156144550734095172351682021940717382961549348059212135747918838409709149274748483465572960234315061670597571122744096306897353797223257589878295201067066106728907615022814622433276838819931009645190952309755621930585700188941938474690171155963719827661838770002305140624826889463197813272092698539475735953011494026185080900878109115560154605722866182236876275346801988581547350349682224226859260387585059598880185561048251627809305742134643125814404298987348149013893695003990091473401197652184693556916524817994856842349074872558831372724238447168788516549024804707775724111138596414149298129162042310039388690739971795768465027360206176681693179789583461821274063245174404159911922092551372087188102474427594937631671421583832611148556572549571449430793803044724631818149349066992838363994509851188849363667025789232009228637110888140534449052669747486018266778794070222409010608824718406017633956735908039757141680127831769679567956167752241693737157323542886184736379555913553474178398422014268823384441338488083231146618863508974555664237311021774124231319657996665157033251999885808260807274377834306626513135624545341122307583634257441033113584091462646224122481814351088869995350113492094563902780679992021197427749586734788134884121730569934390150288730296229374637647994157282980795630959270179011707001635953802095169474421692180448406053919659004107017785402197520820634344188673514456388960936323954757881550888298770072965239375640314384558987149702477933260595834969238146935443399980023307050779169793703401954952215503800428172813458958341196206135283434859004339746138214438524784222899152123986794098887460574010445155766318874319393999998671627681555380069088847923026234001734120622082959030417529561925767908038597268560177916456970535907284336608899154714745685209716594601188516407994490161464814769579515483313832097990618932972213479397921062111690845988943904950585035692827649173284850461828616908333900207053921123525454756273593440007434698696279104626455383189341076510974040312724997478487797669425036440958455385441667948076320657008468633800391116527703147745189684852758814285459675638961654713157134900876899596356630039055739197485683272467685474904321807817940433120524878618066426623193797628029560883317808227263904810084417109691578260103882824649701623942886773933553448421619450432798816065915793685238620102337094992458716832054375369215685509199497865533193888653683820637119135083221637232534611341824662329429042719677444306070074402380002671686765052284732181110756705743186366285353047913608334074607483061604884159392564001988433667353861229765853949711643858435383328799580812822603799246369822261940548237042314195848291869117278355924767503443671995438161324698792133278618467687484337660281777070368865684184142014037056534153954048997072907227317241136851566331829185682562556948612523559840277389014196867812120532089229892342362484950116234319648835424405950423920339721333397955185981651875398788807321439453837951939345975888668924296790001032278931021204548225333612414205602164761577758540697481192539498069163929229718638984654977803054368600958256824830775766350248975072574184481781987717959258182206916957268277247314939028500702199758649961358458868708841458815156076903456550702003654647794549433009753452033754232334910654235785961658655461614307475668294347334806592880930965957160569307329001891918711001513349761607094591973983119220244803264027959918868025109210442090119151669722613397821051529148844685782416684833066621391294136754541831354156226778751920436710029430395835804962649502178028538119716461444657808073973360683361249809290343657528769722309560526140759788396159210827857824411814003421152080292719500108628308067442049809773904232553537085091743305598560098550568388126995144695957422013503742049470392399705464096712699913915020969874177360142048008256218676808041220466612300391447561732171869217803348122571416041022426934186567037726705596470893937248945814179962902499004505750798550511654815697065398204958592104479030985563658176345033824763470201857919250490542209686411672375315715855886912581412487098416818604300852394307006318899960528570247975068502334874495545446920164148963646830292887545984087467676945513692263090343507331688008853748937634812291591683015371562348246820226333680325655464459770916628156382612027434499431783553377814876481936719332932659893234143151767491368117211774758643868471316240608458632186528403181303603486375801947617763453424954391042912481901563166787530319814888322511035535402254201524539881593143921142460536185454662505466575273503306278912031961066178078703132691366449444141893751383953907366001058179826763263914831209522850856194636773135142481108715107159813197112998225072393773099279961088029227719301447004890053459377968436523843540646888424111154271641488536936868824170355668526376797555027362581785512571409979647789349576679690677598696461888179789735554931117439358289341482629815562400905699240506350773017727387464524835194166415589924390570095591774234839576515670891510112569254657056277742391750409582780927170720554665229916240395393012565952846585166247891112605891558367642879685722020235954220028193118009309715188062980073642814917734533252750636825015930561460008775766636368519989519667622326056026066130064121953230743839967947159002083265987590560818716556224275259119180414644721907118824161052699978520205286727910091528208779856939896809510468795678559376361682365358151923559842806695271508759049866690365665154141843916888970309357240436974151125944933739905679943851057896306517425856032217084037628112249516622624385409377755706411244344127014720028398236162445263586193002475133124314518203576532863542982763271154988276679218671904452272541913689327181299989779431888425431999337469669407964783790158348595986951888939464140670018383549657855196889324859622062550019657690609479489061682408143299286356005637611685152065291679046440425544495196592530678903230228599441597494309823363405071051985348355088343754737689109478392317925064384293510418501225789422240345385888806240552451131974048559327500824186733293196491261993372267803556815617670695826282733160901692626248927326930513322361029374095117366716752375018461239337972040224030720362548918121536625086621749984870278274700371636326006110250549149832887058110142748963238988476137867337209203223848664531535864939660051660575774786571518669204644922804334455349302559959387754589782176587238183135688224182824151602504067252486273393597346790197675867902508555904210024923142648201819397031822519755871035107055111285994893312916053053246378085294281080403067715237656592026404593641633883911000697684762834526479893248412768845162723399208814060864387749650075727871565619295598054345086757961104541625923801939141649302704692054021616765739320309526064304299229297608280432407815463749037687501979174838427536805051503249310956655104259465398885933372834131371788441416666866239013963844853548822894565198413934251044934013471354361104074595158645739256026394790948728364761654625914158486941382194145159477513087881847986004108513444974476251661081768541381063921447099180982319907049436148937765602808727846418782407888241416405911927260163085472104926076272623746275474452395691695826152809454334484950938834675596802688800672187953657266414605877380561969923000721927602648258977814250256644179656041795092353618851324622430194925966452106254096393986120709684643760199737247070440953915681655522679983237232076916644991893768141566555409911598187671974414724454480554736793833418824579796001944886037665577496336843226390688649414516659746731852482065493867907057987172576721467317512520413518663068273480523502600760442150548875548517253843544511023994265374737605413005717408638277081257731872277152798606688038360789625632892478277897110332534919764130105032406898457539994377884692458554435805566285633836209795611440402703883452111558309004827363894423543791638533985860915678510400759224048035608151564370116543048789879433132822704959722187426778358640053600377330528198366408887796747298048063226569600373372115349032698592998160982167725695662545981887070870609727175557626318598882341209129390584077120940892808447723135385469384570742937255968144672812187424648945936971338046823259874350707186140813364464448375545377878511996114458259032653178901270080284267197840279165822466985048509823240508987451991747116568554976421811204836282162793681936626219728034040730277879502721104753545795487089135256668322313306451440788998832459217724270600070393988508250706733296944265233956769803313069786852180033256130804073804705701862639496666222407071569129759096541885018905727771471313683233678320951465239661495946300302860490948748977513722463603452754221042949932802081526726787080367626161892540304903833866539547023395436355851375318355014404046558384743679884515811598443076455463158075101548831023979469964449373692614257282731896910093774628792323704404499277046667060628534783851258480583928006230495732070371069822782650885378483999138064305275737006533351372370654340627815313108102794526191760463197781175033060906906071584839122103832706357721347287896375169412474587620310247909195751022793812438927594476971495700619756177710170895045593640908326541698607542782069034301224364373727651658895090964201429382598628843399690781085156043311003973102457139862753606400665247637043894856470986389041828467107971910565056710545901911867351494387732122075557121236603811669617746565649635511177898521468764626665612992390559160137741167497500977703925022057532660598873075233012859889519615910225740631505207394123879850315665671144506244266135858925410949304825925303984860789025944280086917460167095868990371732041703544186856673319337537671567582101843782535243982779834553231418667931508509455100640637980634875299549445516031470509853768131870363470657454199551684087552038488834114445168850458987691717943469954875156784518923235767117434421152517966174987738890985836000579144242212480278826229513683541966058598051700076013381642485070934429619864203445802563134001817151904987596828522085558232600319495557350001347112164016769308108445808027547704015778985709667460172642690527942453907863574943274912459161420257690136422041537543922256227740316807472945967234192841677032765180032692788055318822216612438771833956454810041571333346650496736888238965772327105167776139409248511159937659460449726066387311896829470674276335831150630995249276686808479632573244017577181314418823755555706094194036332633716282740814348790622620174544315667526959052342022410472726328577293180595779331110808320906440612937280202745385641121087273499991897307642741443370244551434651664238449288781747917422900498163822803934519198638309052389876851085293142088908756776540069976742036214263361385704099374270585004021432781172011167734046767377222839425801401166597221985223133877015335450867304407661712472942209359384267767739355321665760514252509551827336185287974641197429418467954387798487405805935671137281417874355014838352201189750910523986420649181183429837141524086580672597515823962873015794096653878253540421923432745839246442455631383098564597288234622495864831242149123177922982251358924880757050177941349680697304700621320427301421466364068682566464160918757793232161896924648734774258202827819175371477418757151930759788426369413183874930246386765044092049947981739626163883344762375094391123558452305197656675996084416195914506542124691961430350656373995374121424854660125435084703731873918614045554725929830227543562225437367191064084224291256325645573859444682166296940605837456959886354356176621767937562118789325179529422599446456687001536874626589852315557777935707359601575206140830951256631625028619693480654894141674608842715344692131236193369459788463266038806194881893120576495584300469861487836859913063562643529645943854284497830771545908721967542558981180405430300749156253836469827640030396552546500927334230761629289025331611739908198388438420554047061916674242990796532739966598162976530829677727325102477583862733938986970889487370512325747593519787614692407160608009684359434327281104610268102462005310751720424739742232217614384067560218276704667918819273547251657882214593815984043022422064886994969977632920528521610506655281055927775424747524170723105343461013989266260214386708033599663827721322141661350676160680107080781767159021113603726994125389410282690990619465712969793917481586375765718524125824730189920289196934686631584563388406418992449291890118401036544519888022824253633284816236752801009900804881057013692775396200554711741148801868967451991958952810626454097679218499504860040556274826233370398183038259564736799170750090813407772130318525358212061442674443855301359755547718564064369451787634773892727825140824241083102365844789908712583327026686579378482948648651626538052676457248079181365311082744534405434668115070109670238833620547104741139913509821573904341541529841924996830910548135734987451899399350110526234501581206841786709465895978596408339447729392438870181192529801537642541836273181354222047836610504813023063667583687723701471480765901904513722548316036426057835652750771316533123963295872276828678279706030153287883198224167390026332254029125820822315424689450545836743014659148417697424132226856649711413601111016112491336486195769234986861807233413790040271156154190589161301933511938979592629266299814533013423686966801818823439858847079867746127845013082589484318480084657509482509410838062448582207237478743108041445630434920180332625636253154260279380067267142221710814917845196501644801661360470670684719548423827540305393749364726870494984745429012465218538210923346309537010160788483790174938484342817012096031060961927974119527548696523604140829991544490099390853542849728882637662427207858750260734457210902836995071105847122100999664132503374630111231996861885688853120491711900023315335255326461307974955164786748037464409502028555539580975448242566315294974529147431973674996536395894303359691408644543472151543037744574750394328506090295720724149426424438382205854512330089791721055679810378218086637836107165860785327723739254948972828358830070029648062342818326676935604722415086831341448348507331867958004503402868884554068301544562918920714337172385008475508548310203209996455450844910668875793593527360864850737441022721391396216478113714702311668158628967138994773684064806668198071065441976526417472172865393634873001063640015543911483957331191655327501292723017215850969521526189412845772582140323132848344957845885836340737718943193476557209788593860489147634964220542511469768281396518815585445039187009091821704202902496377983518947579586252504667283318184571721944746017228964809780865604234998396925057568594658348237483870427286326613144432930576418570659890963743804023016559517684622245392158046868828046274781418775161645375357329701740382292478192222266977347384734448235631039405799603095243767426445123194373822939853131796390539316903913599007637833057021707658107822258729280084177842084317326113757603582007082679166251449265156294614878918810886605954957953896599807432341652996075288142367784497750895166633532870114141276309673577961202103028810317675608113462061686475338230647387962493219163118362478477951382917987399219227974659879538512144723774386390554934335912131375521074924458561675462375200152295556973724475996703165484424589173860904688031532410245542377154308737649808872823242565531690140447149724822248711061308963129447682046371041746394841237384292422837509320197238059126067473757214150560579074612400885885440717516445597191270065927940377522452237350315724316804443061335761219646327122903399276634103210416445113969075703418934958809314361106160715687352169469081837691699190952029941095639075854439438920317908975377599906005186352350658603325665853235896213557201978066477038859705178805699790652460271183979158444189220977052996541812033020933413624080367874541954846391482003135521627662220551986578609299438816389369178440957872795798787709669530888681186904792985187044681597247849561964389071623823958615429512255742620624171336449693521974231736816804598609675034788507696947120124878758575248938700819631178249719033404943698057250455944773473509673437997846473958463527488903106173366070998062127043028900765345943361271244238489478558775692939269975842888308910684279656408794123673519287444739613076862034912097358920375028523405821525316690381288526636360207017278744999905686070722032401096095531619745799361476723148373235382759872406833932304025863675870655023002394465120553423511742210508249920240924582007300256300382077516204743068018081790470012155661633673877353736820529368430805654693136192833994669080741450685554400406728517794500722037998518815815524627041374470910657517925493648492244100157786648642482869823934385578946269111551415514876057917507378608972442121659628138181147523691820457333716243139338260886869050129701724370902273106406664245643173951193349142329353825368668051105280670641388773879845144860937997890770143369693433625615398384450943850912478969470139694936693139403076866448018047843822770213885510210277726323767481856586271627722333398077290096391996685123540507563235221527734668369573571761371736894213378928802228565496035156569802271327746388844364827800129146091424058215684257340203969355776165509113670385939944727133162799665408536244248991818801038291799146930453155046526721853576046294189246234249486058042323037340284444623887076823718973001617422375019418646708734468521969898189994100910922782298395557247112989647128192398484698891514093692019046644735893050867603670059985357377261990521811486551678374977895729225307131041087296345930312180758219216329731745224542123609881046535135078744330223919235700380914693359516265378246652799474967630683930892686414232852843511741684238523408825121904802016882321374920785274764255558157212473056016152062478865608709375902165312932771640090290932692154487844809963229537552498723129693846908754099464090649266745354313372845931248559493802833728368662383561872839311387280204704655121319354466963524555572725815735737532015002330579852511085423198058326955040677838010223906101161972289276419651968214359976789358869534269773760690919204014614108005068921597216226030556770845253306417227366308035388415289719894042327276087620510095390517319323871375299406018229884321908741304963736269631635587656539103907743729914306475028863344842319596860100841772874276683909955834777654350102172452998433672073994343397171976625426652844373180369121062745240207039924706340477178657309137677141926576477363954718676057448626780150823298838379429912000608040961243847275719245181045335997784015724224356669270383271530038828699016008761444922407191792616931116809036673579122986550343880545412959308454625070578790347146836705765897369267944433542498825408164132166384399436307961750011168294178038870404476992999542063211372269911970133574759987650187490435653559330742444920285042316945142684231004140678974781885683682661301741760182084154607772378354882597249852337041735282457601072007540032533202069106851243394272947993892822513177421340447656450059169032871174718613205210977165582400349197246819731234850803745468752288268954954795053997104800256447243975991890269430100705996876572264971721970303907555438210875583897509521606690040196918174397112358595385214429539615908914042651461069926496749593615744687800822662808583801056124540529669804902954917801629323340097115458915360539387233401704894924245951451171773854295982348169919987792990481848444638360338055779099737945263904999073753543621807966096010730552832426864541589892617686625885857358749905969579164218043167613310170507460117329710499675056409028851050172363408892790180264740335545011126608784953062814602455100759590244044828230300446853876594002601297519044079214868822441847481276153043609647595694822969847805123643884008087114923282088685582371237452003890450706416055703259261564819138331246901059127314537093132861586616003801867419965182554633260510034663509170706019452418196007487371370258137828158618139634012523620477952195028395591380863705349808492454076173225254463104741349066514022565078365219565386325467829350632036600787041731040091944219623929669364349536502845212091374352927357658106921440932132891276746225665638531567993439066339930617061753506119959235032648097264758784307223765833000662399436845883873742012925671297149608071428056651844019357149539913443069391466404802388628894361112819563314231487966360183033815158815336127462083258810352279772662415747255458465216740812628469047637059752973313597706344610409086827590129022267276795199865362669924396867247371948671459612489520320544636069555901686684826885432483540463881624441629160805892234652748283567764218856580441781801336533642029179943454507866594715941913778338828588570396206299719154906890908852595844064889220341545430152951985982998999051021773508400106395617183774897881081394754213852535611765468702803686540465865873149240816865889315665434012036973441619298322924223140122968691195533787911048037708455621057548701312005477302705745271033994078930436127155241601296801355690978151851443023943184847925964459474944288023257224033973127104077232624325949320462902249718471878289584842367133177266797020011276875581056654880517768022586150646212988036295003941358136621632175265233352743825834345736325176289732576976578420378786390113993665596590929021097224715397209515536092766196487611800230566101691918190853127328367229703570152827066682104529520818115566125268184433523818514953924799284674259679148306293269905696309030028573506564450326346095865122119834467799172314998344617392608315879446756091615456944434673581410928798865335452994191277839731687504808894447606338381924437731108323470025525128613299570511516869108221870051086928278469090659368559447596984827831284026740458932467120806241863880782540046216461334910908322188842446930917189038992130884696358290028543709928624205792197316252596482396366958059385573151033517645330203846706776972252466253411820508784310653137443518907992724666143644900387393973287948468040225061068433321208974387716209044436775655630303943990427764663737196242644777211474724461463859949110446399394530387407964650678199681313469122864425967467489657067042254302139898219330639964824566274707856887383859436155610004680252817468168534089608291927970309149386278699567253484457535061474569639526347288399856146466954547345788118853709073956151250553235619303500954142907902891551423574372642266161279063079791388697561306233233684950757239415641438571775910962916189733806851847876287620899934958972762081846742400156212586276930885904009077171912859091435876118713785648800261226098797120069566658453132696157174715099156021708774036125064533119082744606806989262841025465124243374351950248284147125415687815264592383314149170346540205816462088881016436568440919277588713216545108134669576685182951211040318729758249808933487380670032541299553511342379485662078468299657152636700552607564798110477049723386751038330392240691322979324231184756566639824086859047454157510325087523153479638241890163340678331880965270633512443018325880713963869293138747069494683671436873623908959969210137831381134831454646090824983186027738591174928485460376520258133158980046807093819920756700207551806264223068186912504733735086289473569387378347063858235730357162637957816726278225043835615709454699311929823061678527626143605482258348404395769916827824421476039042433271270435699265013536681898435819123796099977318287668019562412620973044889769549187756906098474446450720250037063038546233795492524330225493599922529225067117823777746212208156272227928821713836261767459349739522626075918118312152213269976926399289714878316045441117601364602594194435086227343860810470107636476742812669287902027109358335996920222652440145979494722834934565590770682910971109704791499862707672719789534929308503120767477341778923447375906327084402863891492170935123878962254559099896433920675390809479058751956962160800043507551644657717000942109033741308571459535674350355514522896397294184722685691660245243265041116196756256820291019383048163406223033612914129468007088361176526218332586356957383344742312718852030444120067525850843964542801754413171691591651023635184491658174842322752681028624836893918851166000115243810977078242438636285625802149600011305530904358918193375007848308695878597715896805962117434635406624649600225025897609575081484505810657544590844917768804911774555214808803386395121099257380142232568503606481623086681611978963312857810940228295428317727122103947017168038887116047874300459035770252050521302229182602262586677404979437293681297725929235275624409707692637913719412318295991575204224297059729935860670420666941822573529062878900444503002739319224467389200789229442225871428092767232569110624326318029698930733391765935614914697042797261705963640100312087479798929948711881707926579079584512410002974428971675726833734332785758797542413469481099777246358538268712686808184136322468052259732752384756414537113309462844173261937400312602260777399185278052361190226642316318846697031628795377631958187011837082562966664911051938007778560851867734703115135915119385461170434801535712277021937310429040917707620405256189401507002312526600719552942683898573381697869327521249737187830476216863597707135265472847545168070961800614574425254150849865407665185980638555064740053466843083690912961987443794673207723281693282127093494951506163312270309234602333097211014567043630333541961820960642900107704697721383819741433576250785685522681060487740507498217954858636974611419266525608503815920560134961912622037602047749630962320600093601564727435497240632330039339396392728909949852491235332477687839542239597701145165575712723745714006749231300968933648363996533766207544232128513819529075110746972485885353659174611582164501988976308573824639767145799217460506842332421445724183977830867861714028819278306602952648691253067625235072222306298684180604088307751688824505250896403211241425078455308657306600798478432663521949993690574377259329384910664460555887872359877322547783404218831362421257138135731830668332352257984498462171818137044269642568175214322458619953313978072374063326835171475104554282405642272002332446946289026437934535979918618036158005461361017429408461478323130762389716190992547845744202461219225837897715273559637117636857505336822700149027813931456812333178818575705743555696371150790106048224901980138746791389942529691390871657289708240848838865795932220435748780467560305030059881069179560913337626475170201706113350752150290059959169388183905805950771497473132914541115275695186442195784730957964244701257394060580424727285981874047650302036766234897975922554496573678336535565292269483066933843759320783256098933063428239883798244759534803035027453974736552776153009071137100658909849559735879971508473580946891175717989953263620684574289641797774968489017944603420156634693358282889301030584906382203651589983854263015088143155045798919066909437298082252287023325395380852434509380350724510373950140210969874312632359693472431083764330432106479114562924214687451506347997747225281815015906696392098917599102134384491683539794005798818842882463726435277181860108420955010124917882995185895659393647836901874375660286996667660428318208075910664300154016274658327513737839443672754207326398308013940296551932977599696053494819271383090262435882642197348851990774545845553920822555814217273356882760616361116915183844512264762525558754117877076820494371944334957009778216350376666295411344721501792419239573735697451866584694353595828126303607021145177838880037136129295170045960742408425161403878027074018716978546454503998654451240569433204360758803219722578493069103690181588125899779342526216197409822479953329605735238434959958179398654302461520346104110118295300743734739743214271957710932091603760445200733975615473825727889741401024931465127332988003354365265140222357084624967274827883794958692243757197075029781965993554953779041149646348220628172863633819479153256679090809214300951829524701597855904760178862787315522856582737250890793306766523200062603163120380838580231121355072072060704418812698736249667220980609441825086577267260818538462466146754949008795727382637877535653429045407043603031548263646012033171930237825443038289887070292675283866130196283335870929058766997721478521715198932315788565647353639273249510802353410781179976204645895403681909837488999007112166473766566073051967996956982843161814873227684987812120604302619101982633946108465628705552085660521563491614366256022631586291456021147908895898149101668284182754394433044778178542073111008627452161044916686639866652801414712196452267048846160012195028215661511238136961202565022342698150678817201258673309999833928495904121668890375814320255581107109107682666467214882090175953143444426919645856099909148749698602021252639057803820674468397677141237396345065613944050420429143610499617129570532466066820084504530674362170984657909579557687783185890126166648986259963211031168743995014627980722228269743182370295538500355524954109114570389239788547097299828705896423520015556927289045633569412871321734442965640927326083862583375576694875029856452951709430940098683940285365937244526643029131621666868111761600758685326159156526533085858590329525020970548105019614569756596152523283155615692900692026151873993788768023930700660874020317968413273339037191885323568695762373165738670096898976478162753710067440467665267647542775098339212091155032702436562946345073605262315757751600604819431370433774629360484384675928931195200159760146932439060266406916553518401676977698630288996077830367846455818461553497848994157396375599414464339717443638866743197009548792940271274350307648936209512551350804644595227754509345309183767597254802112811271567159422828400637214884346192428969004555036109712657487762240231882944854427679280437861848594144639596313955965538563810073703726521872279941616431307865992106788647861858361052257667982587629166974850015373397131186379778837400620690704530592128694229151976057158899551877394701943532345794233575951133609335624770400880939143905350538749397405611956787813492507814894378970827669285633418848337464951236924560834655348821501257172994787050646637893153683936906540189096982813199208290890004014395329457013249823204111832057563296865977387335226719927291119546643182603723122361884839999052206971620624699398616601240687778337526659207185158592212110362380493549127645671913825372641924021587589382791340756048498261078718470709088406016441240997841519394813556635894325103897081809727068103508365215440544453095621283958472720160229253741970417285614501337169461563402505464390743401668073186363457205305313964597707365903023002488677769421576265531544981910793439465645016235511991233968936716097237519007961933857201196770549411070644128094303333189375727094681329586618732426033596106991486784711174162217606719383426784043857928295841599948905656671197626071108164727745510636765952744132468674091921751810805088811813536268879021945289306064371781576376931079371809779407658676084371448870565402497333318456523249015447814128538842708636152266046402144054495727383080098908018142300068693176821182232221611826544626317118472131009456922911021883951268227892386150895595135006253713007815471592136777389851482478292044512953246312166195538970231871910574410023876159889001252581583708571854995616665480460808549995973507084278603295541832540707466947213900516625008244173995162613227161074924578255319980099089155202790123968908948932528611713299869068737670595362134894880184454114440786757106472707477256085400709548997820295974215271849310769275611864956325734061771058395504260273449961170101467868761840416534563992363815857654920927913872092494021833233706272706808109316721880075338807770497687559068814536373769012535519466980487398155212471931851481956368961451074829906215364177194351782712395813963626341355845070298784678467100246801948554933284214710583190569145583052314847798922840304635253526964422788553112391452746111290915025743839834087240926640534205513567259596053210856090651477170884394510627689292128698488290554953894538119169130195842693891912610978796565564127290945478511120574616250591294158922867063862515859408867155808635385923533607299854961067918468799376858749582956492978738672948075814282201082042739050442571389210517853496342406539257002076533015548519010984992429074891450033341160539045817414023192647265570451728862795249597396794647432032573765040888531163198038573598405699774095336385919688654225035624056708225632925838721688175543328607984836331169422693140756617885896054236558830893542175277392553508776424898877417753820619018690140769338421196440516188417446180179743812821416283204287399269864373072281803540169821697574345990105400256944770786404225872106058647885275461909127662326162441504752052544604408190807663481339435966128774777994919551230236522568760278688686850418128020594161444873433453379367416616110310246049856770012942502708347211029856466424370438265304409358854353624050601086098389760826839473460802815267602754946816137613901481027024245128481203436006695330976800125462551147608362703348740098097656150709079667107602512120358243162226469065229025622519116600359886454691252170512528682935085110791830868514297548031811779097032955278280424152115045226254771569845695327964912210708610313927153860594677729426878441452123696580937549411389607569344047018061050291652683326031218486028542093535056042848293826508447063867433398877544025061270623771438916967860377374554513170928944371202289342351247615603484643328314780300320561523132277471461492322992233688594381788097284744142588459068629654303034919169806398816922209758247182007330736288842478304559342933505167341756795550423538298845164425077697778924738209595603722088448149935088385374973306245175917988970563308051197193035374847722409539040294449137208837503230748481267626707623290497882759700108741007266098885188238141085574111551295303482053760845091040599180726405869638749130282964412550106011999684167580239461187443087994079590759276704906541266906209470502949750953608271011329240231402043235371426354174648443192031717083376122194706572820984347546262240326580699273035341694370964224812879078665413102531018181634789747163228626683222839330593292852600720602548169083621721011110483631083905963323223105482899931464191873622041069080773460402468308775500359259343746884052916429784573596060254387269254025950624295896396877993691709362116849148281399742417340908540706514881686979847587766725079236008612233889301646288699504407227841796079870895394081170711620023060332152385497188645205090579623252326207413844325091814140415716281755561249792230152264070306487341628795931528235085991085379300965870703206299889654546177641356538271087672597062061682423135700263523430846027331794980173077384638017967954993618107469939126552464621046462918012049634535614366725425536703900582707674872329839079023098061129556697409649490108854847076320811965517541581407319304942504091150603322240576815510483081601195472827236633149857591150018246965822057879759016690212615294884146797414834360038631706985575884490308267364565520313848036404745963250847405974252089227473755125903831334395813852910281841120132947513661965760267889219056744665185486559446125460598763462564481097772347077888397492682852547725638237119209755127617536378089366175528221636573655929712152454535149120695648868789558426250359798560416455528112317104767388888473554112216939671810595886123414549361043247623355334044252477334440239648032560754771795207322747568209873922232648727602809866384286021206989215694712971971222160686423228404250171428942308661137784309904911593399940568138477642350051917367368650842809986309372785604491714295920207596345484532963439952883549638032764834613202620917862148994380066031070550967468073721612192710539638749491205598549988894589276107367592591688281480304008373338179988354786832696359294617989385944113261091181217897637351003624791044018540717627112857830029065115068227136469968505269189032382426493599286986359653355564069000580790699624969292320616398240013414679867010695538040996865922447082671218727559879911868414023525588260506712991526637990028590177141147233917039714218792913712767844284101827535123268357486265893669767715505522901137920536146440028751132204822352096221977513183959796632938635600261987810032953969217740979747268678173329637150578421822087611504847105140461462795806052108346021152553809236866257254153010310838709131105745025305793604500055847516464773824868922787506533344004119475042731199297577222103886640973578402085752035548357102099271034508045690592321641466023349768541170285402267581539310513501741618995828455004533587014785594606489781006694623294365410302117547700888050771905278982208348464274804247998788806401806895012192059461909663782338606055355070967088489458157939518273613915404269854302254980798527579004350036173374585496760737579422161206355808802849911404472513212424098686273098612383071579533564893187146057980501053894534653912013912811218078071257969482028390641880881003212549754330811464061009855924152431165816408237082396580559538718300953180431633291369338794530717958742717075804213470958790818178742265538065607961862441087921514617807497786460769664172186991981993651932437881760192734270823081422082187687974794819957339562367136626786146205062823728449912815212459407028658637509396873144378583013075300947300588213721051049122998715796300537000248297073844553115524955712737146918620233024782042630915641440076273091775050667636097360545891878754661022937361817764277547742221244665215939713210401829937911463651574337062911997210050474686422569102627299855372151363081568025197066532226059655005623379412845559217365465438348465347010887954475601980907821460684008361374295388584999615724231465538574330193972278704018811071177759334235716521608558049971385955647919182897811821968436108019828722318350565553785590587082848540978237885887719710320128840848677937431331649257635523730202149715169602970835451245284223787146183134799047064306251582130510503109529908242939917516811977278403972045096730059333780690166390134914833095640838732192348686969331961922472761058804253317733174001315399165632524150148238645569434810010154716404014421792730021533384700329996662653427097520985909329635626301020469561605577868865629714230536803036674247949674767356619050349474809084532181600691077690070410520520953264386625087474324147944036215496382944374967970477027030774992279646010782406708156896768463512009132848512844393988372544828200566836485816711587815370939510620253154276169351459289918388249235233317687848328285089554933146637051367703301577303915208880741104075127648886617423246208302919852244331532634485691564642478156638132042722913870003501597346713602766429841890509615555289167618862145338523480147027363317189570440047654389456982379248958709940653366161851239055655400596354265920620253867310843976849860414483886392884220228846685048638279469567678390445225017141903157622554875071751130268793621755208281199387908305303635474658990568721689839598467068728648019791222951819962595362328911701061740061372653468797141771496813818284052208080999858015376778485649506850149187999887663745737421462468519026072209081403643805124843997541290355225832297666670428221550991582494316295186510369923033274304917456452090373606327117722448989145915105007004199771878069279454870665877085571894528627329312275499295321008687916613765968124026459199333518657906614120245989515383395903831875560364055624732091102145687865314644795562299450681437735551092801118932162867442356671799062021572991428362085722726951381157685005203526999039058937974905387864420430012951360056609077573290863827292687389623214885136480826978776669676169114621385173434167757195806515179463449269221091568474282534142884863201211996028734111749046794684302736197505404542911006362782456615798207735009488531790198515970968789091195445553518775264199993282877925558349798761533315502381453522817458493786812226143362033623888272055218247761894056659976865804380000038427398354433193224715945257200568466502429396435692657503902319819557719108678259983758994056276864826352209413648920009644031600244010387688031801285153324128026104021273979428730421106737827562898336400245343899297711412086520290465102497336131013104266766097457054824395763422801221721938409498419865048379096821248622050596862481091210210784266688706579391523567749439839328412967158584827959468969682490770869668733019245957504853929238175648978904902302025243084121845083665168854374413629046657937390298548073996899894960684517025499343068629737687689615317538751016660742175360407108940368022867531102032200419535824155630760248031506822448886126625616439265729365347443935531112103020247752028292435435441642863803902604851030904461281893423532569236440258246993897869141151152185243293087885274082159390023244533042176240070447873474311830109471182084070617515312922946461388444700061573058190606586383918318580383792385269790745322160308711791933165606147560983594969179343038333587611827277386229105460683970496136201724855697389061588480043902263592874808257029742551566920137514232005935969524637868703291452641729940463362938986245670170931889882124670228852639941694125288310708265233871154520074005230713286566625293824940452656946287166273803300858333896642891151919834202810424841911793050414514288348636374485218270165165048388539400857012688148602555444125042466847364058305123959462388590367251483780302384848499394365114641178322524425840429954663846459208544745864039280671206449821671418002601900296451207364376708559390603373263044413720479478826840182699467121830485455191945905723130158866549954222645692736110625816996789821081184000864304889785332472600017449159636520005250646290679505054918743715831800575353994782774884564309379340314605168875172251018690923189674787544837243429438104758020553232660571383023912558831372198455274180204356635913184448059866834008258645091003979187820579791419730694863938572955243753205111514941869714509112659138279530193621303482343792202615429698590235621131122716972479941387714458045319486155876558895097813959917591510449013192661852896308561410442374097595536103807600821562016552081844809956384815343611887623470097135314494967647316493682927106345343183626097777508690922075352634899716130484272448964829263300310542917856426106751897010887264561356965332559670143527313295344255968321049329188969389417875432663456830604247283626417795620767041278606317740259699282850910267444563459887084315172605060311889856704790282068305207134398783693225245771822028930494992806270160034900231801838176614972647203152048809617040598832655105576565097466184117131803371829383911285792045745021882494353397744916722728249623941852568992426350850264653143570247448879888314912687187346273402853376545968097434502902875178024811566687006853445929678536852191773429827169763064517647297731658276499031125213675853700533399664462477400743922105821006086972794915316889483795671075586970807044013465570984819388940211236974245868903701055293460613883870484774983480059459729293454666775552115107091494319384149521085536834991662356888930311454027199787370139322132561717996473201578733463922045435626366222992008256682331454385300773499965427701317799604673146942574593064258651688430253424658570967783632380082528649000943908571998563121063111973920177607177308075211929470838624530361569164879564015684489214083014045557677372379665526071961989419945954590697245568283185725557060520263252052316236062621855959392558561671074457803652028610970204393637330309033968527355405505465022014359182753100625049387875908313930767396393289246012991832167893314433406960741148951724944002394361851265119122596503251361019323856772836847604764919030510041171452400372830351137483737724552606225865673527177250191107102123929504642418548323227363005124880406808142801354947956463095676163956787935144696527439131766436863020047492253191806451673440327667654809540298809167017550673978742364232915406160907420514208570651834531406143154597177394177587469735998504741954395241820810162041138099433504914430296805136821368412992998423886780341573280692262820014681796241249621444096919058816088000253548200542609402944017187643365570630602918653509715985744349044743994688069457972528270195433235659159956827643760662134580143922906430730706675784389669213437469404877178312967274532236688930696421149285211020193287894129568808476234379905814353757388443882562133427178115804035209727384671562832026983007651020744991827183941812455766397277842916429886539229761736694751843022102855010006819044861793397892780106816671896807895174034730410355691167703864216478036298269916121430396484502996894097348119935800823347302224526076611139937383129134489439675673108596712404289155828923141823752565461750233215246396349476942598660160015715927324775722932810116369167960177098374437029310107440036769687025419734657052356218340509759003147945980555531460872796291331110195984808699998759525671013463983261216346814253302341355485449085762878322141105244921861937148733029182616138629712067664299359261565101561145508760665893529858053225688642601209395665931373063670963858660207199082420308007014083315099181846917895707658468042009178570542029857134584903193760620354578028537426463131029423718895087688964648112901637858775849322537113133013448804905367561183739022758076668983168905633393526091050142900884184141294109651488541573548524093927638366247169920498568426941888120275887182575731834222535713092005001886619112252704911282349001412470393468558961973391761972522940217241817798176526261845364163151945233085400718847417955458785416160239816301886915506070018470904020832278030006844096970961579652429285010471897167644711068002939495966616297495086964587793048479400749059370168595515331279222838689106482575290457246569314669571936109456768510509049761044311253617419940224932436495660467870428657976148523936503397650108058002156795920573653463395072125393980809010493764770010661995283349550459801498689450836096410294571804471227253748366300767703265234622971507254797429552498146499292527446543968913117001919209546762001870038513370200939078797194248526601736148503472849130159463913083997896802737489567980949750653078317006991988747860380812129100500141355057962148826151885392646170213302521932388389771020586585056747286593401241063914355604301252041710518752731953306570228414270040999423635158792439022942986033237945783753751479444400586113416049041480594363519727508895886796545712124083529615870486942126478068506340742269840939664504738737743890531183585951208979968962539259667808331158411892449942406233700549695826712216797138089823094332912938917123876979819665730222861476746442853699930725946572473234867760284438735628913549161172199633732332371517989587644401992784307340983927540817803744260221908652409470063560630247268844834564514320549880484346927152681435332473997127453722538191143885440052608224497876516274547747354280328889036908820458248291866730094210279917328411556283334522651640167785491447632574434989991142754132520325573370671602066433197789109025832479510995433086624129502017914713269584300489854428135169641565409064113841574219479064622525756977162776407811119831623526541526355809758554952385959725312887577431341125817057110775015218814681300325006890812989250461784611418899316738174227568346432103631841998374995230313048147618255155450324500307372247167533968673506136344992601256517995603135633818013478606190053974976759832001412305638277261972237253538140533265041041282345388875914117930962187808930870229462846026678139471140325510795089651593640620179267322989837447812862077698922314360660575611507331311768420769398944147352950581178355423360131899163490074209702025257161993423295825372291065563693281805436520410741774661206778873288423932753600379954115365950166387577193197948279590105288416815668154810706765314146655983952249181759114375798423273874149422992521437224655206424385402241705787811550432126458611609026822520726710744884522815908558377271226901965440098625680468359228733148303281622301282695502552148913632226488872275292929851938525334890056259101656405086651987670719719367492710069937855464148304434022901335235912467391447987761780299170697281682918731828752969670652660604239556213846203152698959433718778056997612016918483060855844001156075838036438689064026474996841214822662123956033423631929049247995328144264235462094853164049121053686955081339862997694625113851912593259600271574759862781637662555029057952925729854409339719656637928363059071363176206299806631458183864308887086750069436886440709129482237981255413977131593912462422483830828333235055336434750204629982671837522072988886531788962977813987261292224986979323041631865175308605184827171552995162382926723195544934497403384442266146776898504822069374773529817890929215942585748920213948628621333040718587240996508104720922526763170692491871031808054372960340235827950315642845621278004458216522028659991501962278241757398810913905307648787771223701183164106698127428265119803721269506459574189513728494820691936817876809942359004295189904294765168188445191740603624726307743893078202345377888200237110016283213979673043106320865896086682051720359696990900197468178897261752971665982718765883261920936379321317288875473727383263038320246110942312020718585336464819379813048967620772894607431600750168902134201288312835855442644770981086788721642685108088408227955647895476058104966029216875681996410417410461165098769079540830762528083510490573049724941984755427610176882998823024928903738470916878563132515829016689806503191390198348252505415767822505603190125184856945507754519183734734842599376434043015638529345267585360415127835868062408092379413632570815509434972776853867657432311291864630991451925740203490378468562358625092405832607868248056923950401650970008903253121954177861306344345259883391347690565412154600126293854637376116835505221208659484630750326147541107828812270146579714222622949093741697337851102635259201552547709599047249263849976332143014065299413847268918688179395181766611467459756336610449060841123204350297019557401545359384940866658764101511714021461690596974121388390546670247464090996152218263588375169576872388804418009042299807914526446710914001220114731553361927134611717372813761376930838613176039690431634067050977574237121944210604046837213802417052804936286943021095539528688912776913938033028866597430470161149074298809197056082287300065092057749233546307920880033055603231078499663437781262742394077316394429462903845822918697532599067853156651175841961928967673531712288898337988562502979026739559612484740100446277502413278543492710014147682187486201848253549162691320615469889610949249082826037527774918988009661183268011382970446861928139564081660477575160611740685301642669459293821455883786876010164664909377373156501762745681767943899545712389377588413820174763696503302125048668516743867906063672231776903202813751444416697700694023305684380949947977783681715404742545787443025803840719299853681743161586683545449494152924968972226776519000098782210151756163441719846542915065370771615483237926848502722631586059570607140731860462865642559902375190979209476601645109315242261957985513115312301354819356474584377332824557384140510126989218638595095161250855755840731539998141613397711667495659243438538610567907316484344395428039854214076718118190055855155334217909946648407222196131178294465016244252510616082166020136896089717995119604595750337930629880540237694034247686638970326497550206404572214163291493459231325662994594328290255453663276576616787352105926864279373055189984979627867764208624923090582731335447454592373305947338049163258342436112079082576854055908446205984933459983696113276103306786628686073456743514765306289260615478571747909238031067107545720224112720344207820810183413060153236270623256583044939242799606744965974451952423090317219899442921108105615199768977550815093492087437958000921973407183049549000099793021304320566209072083052653567674407990396003039713145042746356530218403882908146724889968691044391065632559783279375104919661352967967446034455663400097840497804619249635457585321640656139073314937297855407080988820577299397006625002795734472551041070301194790510898881001292956175523402794236065955087330865747740633875847500832161449799023097901654942460269219250095720391677873047187563944154792316923753262763090071047797346137270406239502046249842230949905271261450393035667066378397941106763282171914674304265404546389710672866164733205074205328131806391596228662818409127043028499129134985545889341075469430081477092496887676051544277953408129438090136248260670820560900062746991495584934738337443256235149834220133296719861441937074520458584446005499434835276709461610797542133091515581294500386424399402998987226956036406731736628037866523041743362492090268584451869990795933026421991676120771091357544123834951822018798216911393728898916985520718771485013451157362267733199898882401921357271008318725917237863248018765830043088531779385809013988339657864844881037207762603376494713923566556406286012902903443318872809458886491381790088280043463785345131871882879540101019084327760013552415642302760537894257977084779595109108995795018317005750983993704204130778847653605378500641472669348206618524414558570388411275281069560074253318933715818726417867022352257611460877468496050536340543720812493416192640970584396135297850858850620043792196806838909850862907921497127039231733555144471074886931506782212552694719617593412653400410913399098174049024417141979987234912691267828320430196509968424068130629386406175110457282856260643785234541429095178252342117651439774038437772154781281463747791881578954773242208324351494167097883772504231195134022668273885760322670892541989303797306133083959848956265662405793621164427316838501019104711800532145283265176632340468843374244103625973820374927578491014769449266628196537613226617826920662832170517019619020615977145603312160841317833092073323928510995963821989353322981093672502180730721422597986490808948758262827222657646930219279121415073156135186102017860353478415884765011274702561555639402938854082455574636029091030853932479791208313831283744156201462019625716163865949928414391533315324252083170363612387938573252270431171852149715437568136767775341844481186238127670348726259670038416633960231676781504313194462136026809794404253354155360303926364374222454028332930229825797891511789719263124026153726804159748897708594679941261652609266908023299608295089482912616542905395410919968070482557935546177170303314417441118710622358355093579469359559472968250763277249473223070924533604224223546102758058464911603693295183407891786285662194927307813604028500205045524401042302456772540820971580744522253105860997013114892100409621338360135680702257781008401279196143545506423984961421225829098825511386072172277353661825090750447490233467211670057816738004777861962748569957250091806917650844651589576397499010450906937964281858795468542945536463845961405137793148274954636730167472203686947190985647958198037693894841639676072175192100756444122485112116745043129123157518773430617205343425557524557208365085976633743260427040896582341667654526530180892965762269581169257666529681767455225301761536733932622237315167268727667078502187306800255570229941227919289071381443480720481804733743997449419535387195952479910420253963828751255889145469800748985060057969071679280329126356075675921449252772078414690544959564038041502407014005167494097303962328038824643289565034107532072390299740347161885254875695230464078126297760379089342864806802619141546941496956111994070123700099348684266785344061011385184599783746079041918255944567191986454452919417608511546192349591277950716402360266350716001525831956290903088882893773020794143197575610188804501557103781416088990621004673769327463467813936834523189975261015263619335994689216929415410638279538113912471488827780010334372392596024101835232608479654763576026326252147803862919874714206939449627215083971720234261746845786409038832678229799443241556115321711467797773642107438860568250335873755404679399418171510055408574057025731525237700576068494686907038676161903345718754241878882636379253264065738156722026345464581395220537047946326943332004567007069180109486905110486780225444520878388736011747660481721531328456536858944342949046920776140158797630460481565927688261566212451146134543834902572103818208027566744152247217736943140433416770562711474324949961826586620567525663422860396249857002806947574608148301887343689410990202979168360575734046852534853431015088903527308749599453215761515558651237118553583921607791772062524162546573787619505030384293938473602231726125992825783376260091688130832815016206018852343866752756083707593247108883634400111706504976626955428731871177126335099344692702525419306393728315794786966714569114104552803874646445519794424269288517705743586990025606019436601948438318473897827415223162244333950097800330941462991690104485148340227359052635308303854819891320653962208612080443653653628468465377147455920646425520257141905895777847437219103518288782464885347883840836845416541606119799797956505998341927300999382890905075196138586743714218875490729887541699615674158346700092587220067355399836316058631526370796103284303687722296371742112881567567865757469465610328281038908899126319702797803294439322512462595688959804570184171251518659878494207044358521070953186875100822827038201894119054416441966455120089901764000503896124537536745848862444668087337627172255941543265574608925749463670482987303785368147629092661971544122356858786814893081403494198649768125589840226008854887489402972096357592778037135030169193893902137545037973774366228542928074466393612945012692503118173504944373119019155607148138928260255702834352959640465037757260624994269133616859787836913629764169693887739591094767161432451571049928610801442977848539536579488142282341781620005338705789567764382518301081031650699040486685303194176702254353279434000594470014306513292039748162580524481751569902921421224139403045154526356623235040118559169774491089924341495522498781373097661658731703231661011059648029499870556561753550698313199301981080379524044699708360561392367596016988953604240236085566976770951486041511506482974110236454552029866846086563367588503027509748734622998023183959824592878638972708477600740880591753224422241612074719441076093077674624308898873098302559168041579736214193808310379287067757017503601500266440434937086685751651362266958796326509345540378269125361892197171329647717214258346512339689927883961049095172507175287175734618110338003527239956853923252843753070579977827942100160239093252077140819478448127504794464062912296941468271353820302349120903991939723551375372316254509132442143924928506006721741488027611113964939974960487466458295057927050023182625705115674002275592116397591624101901916496729236866747501719473941225420635564672978251161086707137868089976898223327652153126478067544798794581931851387719492303611421070778506246061799429195316119986826491706511721258818271150612254622324421117393031748219258784568829801206758961355346611547123277562506991417472025859303937083489337520058219840014162994872714006664361081821850038610260581328981021262476103142703814649820780357759692530038150616098350892888033319334876992429035768169837295910574192668930404494362193566303478428824319863772972638239079695077765861664428115507622850616001290792476093821954181964419059832547190152291380862962744354560518306516037393820765452284745788597957948741098112378464221301766363338743998808287451604066813126592630791933804293348195813997735162296524545323103607799739138598620348345569537516134638773741461723970703432588120571101625385211283795177061286733014483885310046053354376967816273384789446610550269667420013536751675242668938288484071993426671902453197063317276039627734018532224515409850095748145222732992641423010318748682174839914734288234218642770199680316778994760573365334719213049125542356440895802166016863619067415713958073796017657194087244543804980511152422455798213579329122113255098154295331615577237082379332201636929244319968097741709248691239156930009528528993510515973133516307498342471720157082952303985085044420860013428874223107343911211209959025932301068784119389100323898890423356605307193585038867330849600513313892739443284678588956957374406605094849297469752122407226142985814626325304829475574934252101834973612224572856613806989937145858191610635531988681415880680959079246843164515443751511688023285953744935118612429293240768344738197451355319845848109299734236929995288276822226737233045461686398967095490249784849829792239973071590527641325710895389940501606402278422945259091457423034241459616749827905690410989974042064582827634802849387299754048841389666736217903708200430392844091281885579322937036215065751194660545992261286183503928376465871149305012750609254420882000081340855372216325864677709031544901548277707678784274189551382577107499006064140611781167518305799041556720895954787360988087378255932478383906320737152844642045607641251146908900895488106567140981020732712964645705291307425920579689492567509602107676905906688799470610305144838801743566668170915557784011345852336343604400703325365533501705583195655469408922384114015290423431106500750407492332275443665800168567108575264626138334325643945458879511813956142859331067235812745292664461179170690497630166201804416280374279938853956362592044122030022951309143289104954023127060082648939443768023634694606508919576523113179825151764488444729283206942274788700917053289075733501028075638070300554575382376099113497710234692836468243708862871318779260227773184350350010264052168282149260537482295795984060941152331771130883364441219324349706220203328810389099662024821698536518880813754887865976628341075086432063614877131851301961052846339806365925459471841288056019143403261927322074026884699024513532075096262853183002610018200976071724368375828410649523651487018768246644257471567920144284368456178387926925517984297768133294423062484233060865549537947957866737706989813644173065212731746040199826378036311771944726392730733711027414163067655472736587314560717207288954303890742182093908817702591715118663399225928880432554188445316230903503515132021860542313950062897572133888517919018917502926856143195056681108808936894176573841522656997185558053210934568394320967120397690734738275655199619738997531663950497065469577922124710409088994693400105725041888929503404903157369736675274354023287119129317965682719879807339733738007956438991159337553655411082528678977892083136636320926295458991534267293623882446540949254136819295315175721444261551026593275134304496646954911299214016488840790041326322708712294773149310678018602674397440079292669950045022260241545405719702908855920010287208563167773137764367704757750226013884784460343312092542374073041284710648647646678223830399587582310710810296209231959664070524405707661293829741973678747647371526656475768448889757437642878167174348670198526657147513583185108414123148345822585053034540460267013815867394615149218548761742592052848369630259768675755644053888749808084425282987865808985168956930582300801679095200583695925272628888746886429366036200143339444807179707065123627528380781915146307418414657254832453999719792532185347306530188616725454605000820074112565073835256600456581090318237498345947250449410504788692993064899597106256798616491148313644234776913446633879049970650278473834291695841022212975052709942859521190007006418434075685005090056821361927113181418178584713268715540442931891606767984000666689918298891199795828425489851014147453297917362498440302097629955876716045950801903672122049843445071340047291608761975060383212068906923949240720606681558498638275246078858173520303258082669314427495049437620797904930313255632248406527458685145726812512426645471538601333046764887121520591140937986859119455057385186866715954225971850791578396744381990870926573471077722276130802177712461562347549564573710308022175686642816968861388932450672221478241317011577356792413696425889193238416232012705843718950008714475356995139458029409983680332178418735357408874408890835924519486726090208991571546515692983594114053639942847385268514130387143283840565647728360821975967438696274440664490606621197594296025439448452942899297047360999405479110434451944552142736498083996664660711561962332555360985054340619283239253679581422325489368299727445195909812793029344679326498384489649525073983851986909430753526205290704943016530847190021281323490604878709419662239797299421588492109714788833557305923395033676117250410678364942003950830711907903075852905211791882106936511276017676422791088251795207880181972900330083533424545583265303025943593602510211518421268444272853097021633129786955881121920427071910764971073319798074556798019937337891690180112476054606217517568610089720330146361905720314107776783354849606613254869322763850382350487948655321178473928894239193364553886394504898089171508752168666211025112194377603193301704924071381231017248044808200058379016783460461234430583386082088882698673045694390090065904951948447910012138846810235621933856076070469000928705053875495444875888265815832566146762155088801584303158865132204991634753730272031358920440166152473386355659548955727157705165785517717011450286704271886887887464890198820843118612534858420331960094966311283030783494308023440198678308605654983300131527732559180599521283422136369284017860106926842069672521815224240717980656235326171948767534568242242020806890088210449723709485259922532144534930432717567408782937598448542805068446714316255149193942425581598027261417680082986077871169666331457932815538990057706682230765657506582108065774154669582782547145914205177531986233579332716572556642158469978128999001393537515361044171830311486389908544770648779734063569138632094150601413388224097636633933015989937091415150204962098536823121122453970552471536763116694562103506115688039602076100700718847038758981892270953714041979834512824774575163769997985921633809953435100595601697128043507317846031063898501787960935516167559360738018672898673206086663623580767567518614939462186476556701420481230573024797115140118689319304566985219422725655374373872227373692745704080975365260914773410802664746579541618939976663399498706269836919061850412046989739452869589262238722438723823394370919531252768878877664641646686685348995606289195344470791273660966288902247765747559502033611254374689843024317097627777450101341481286678581918745943057266238751601703505856580434373728143075258057190314352984929972471827255850635538078827030869770576094566045779917172230157695682443419332745152812159057682208078742499525233906782715029163163132377644635117256637060821026921968038575910446827473586147646075729424222410985916633538596357419173356410960344749136554189257918376456781516759551453583772259873531043921347041571362408939288597680360697717725565575022792582761980593779118400097151583355739302161356316240918526360186161837548277621209261174833839054596589950992866944255158435316303768177608202454664038446321855983861476133878742348630565133105054790538526217141841134662722099647804709709637511892853969970393760308632996514545323959033642856663435640087471810466630346146782552079487186874846089209033216273663402886182590839212554219971607561020634539829118323269312148744291770381669813023221638667871682563615723702331941079787408984669844626120649545468726876710527753170850380497053693288587720097124649494642658217940714885493510346595425644202603362367848378608519381785533871068789549783305877128417401789740196666989726433415450213636163890960275889454373035361805481854133239007662136926223108541221962977064609152867364863118941422756414534818259674654187313902130215281797166006024662771853627041445499073538253228502042522876481574161338558406503099011924385070471834535623037177510437125433433393372965432774365025281905759086012752996678113523897155757728796260712401871201482367691578720609781629566984760899122221241192497055184470575629045632291424788715114025112732173756149492136578846819303582042942366551853711763898115996485509568081301762941928821629194959416833167760922791769381165834557373382934945661336845633867961500490744617418470749627154756829478419526890655890854788822912477088475648209636249723507280273128125972607599894149674072986846058561424849874331876881456305764878453130050247620682989812607572923433365531955430026744775874244451663250337059151485768077123896412801494828360042367248102417780147875782027811384428888907546785951918321562489726460480465865132892164102798665015285559148720165018903422854249522424793421876135999999568253207654971339763439998962110911829316143540703694761704606196105711146697264782732427688758177803127069752508452146694401032230913282272841276480980167639206583161140917520276833330791604806913879358818107371941803681112048057178337025143507120900673872883968118559219392355291701146243443993459949388819746639462340589091042376554368398801047592431749528769351401958830884955390998404527612891677181355998808180448398959586637111969428888743222579452819357103295718628397617859201066603776430403929381296068015250264193066217385496147945287947778110748460188260615901030320442519311860788415024342908225481334822538898849590295075173882651880042908413663441473857915926838834896392655869780679613766850840387514965032200154750343671260193109712507396336020211095236814473012849875397711414799706303214929419611522386699227365045853766433814934345384698592352457425562132021321749599327587543968332581209934685667718287211396120632966330663523908675986459311843754316058591371855418768818836197361096883559835332210215966030828261480620059395303082822700952585488599662602470975076762735160686082182125561311941263345530696802053381020644099671504602019262245620916446396502286438798699540342222572954275312610516914992686560735587296048179718819145954259170209879863018905198606658347594419038697663728137924719817587647353608504339890628573913328233662017487617901089185465527541906499421926779895008835634724439406472677598755166990302991797057086171083188880637219997559019517148830262051017719034610831241523372798538509758050118838650496842812808845401545624056007962228140081185108289586505597204783989486264081755450149095721589552810823498139878143975883884718070608564492582782702072183509259295635627883303708011898303511760154640838813731399508545829605690648685232148122467340274827111305679827841274850952365424217998705862579180623200632030708929153453840634688724638685023522590539622853196611976180619892234085812726927828281179847318367029026416791074319661636606556314735982731963871684919420662520905299091818402414610973860775535118354557052973341770707184335357253386480921126833956425313111927928681799080042890776299026306849232408685149729493157771749725964665854963712976796597254563918548469959633643893289386228154127250696263320044768710424045247380702210657994205819177710777453663765167855549197975226616333367287452911348333311307718927277232073067490676363708254342631574664775942459208473496375987147527149619419663266515566538871974402331468545743165779015609370461972418902114614800961883121174421730842153939075747682034521634349234911991673785604505831219831114504972966171723458478938880815283358699750108747131734173043028731402292344220464742410661170317758448042277970609331541130882539170916588951514392423054788613465241266039894529495298139569407513788538439955957329176248370277059799817797476318117397112484511348456640754639550838703298513451316043225114989911533648532888580821950740183570960289133233559411668784177787734050805922369947493634393805414321249035960131622447620712939681222786400002451923442002931122990046064065847876330204510036582614093901962722288092100005411685144115936527438244057673495922883621332158770541009459240080396373986752598988119311859144874171115586077104158419715045054028656119899099033778205128184719815691398888998069531812742920144636640928040653899739504233892450639729315142211099608112852956498825814110519520368759914092545685722758025843293963395524712636065038984232957997423813999318766240453807559610647259885117161137291355591903822469885130530068284182841250747684882210535721378403413005172934793157805962882270809920256032344560535266330339347070608000065676984204352948139850869891584898049695046519656026262651655231190441697705821137221212348745982062858799317369258253001935998995840698742471786583526242357180815702717623207789985782082025214752468610800037986175560877208919437137782977254274399348446378412771815331881141836922552881112298099331614159899890952556660832472388289096758409291328081384542447976653508902982514960468579545681815162803388493778157782413388973575551916632417102761478073598157951504774377062654681773007827526820511207355889400012431335462829293113862385777843019589108478257265053911253337706810443460765438415739844847012827173128155025892392942016447363905699907364086453194638586184570453937772474183955936614094326186570042460493454760155504027132252066564406282531479375020315492225047801397187243644907816817533187467326200244302772009105661232416687362476219216294926105621776689113986120315628918768756438545395634143308666066671328177717063789203420205152964999261171064263086482522132093126531531096630425763909945781351827066406316149867549555590867952378607754016492899221878864093013760100991901371347830957651409013125381063262881860296592600160999756007083567734173737515686079528888823016820020647249813022281339703633626981128130807936858769507605528542851090968214608138628436319652050592084776296908851208810738470597335051248932786241657579537354931367420308881271983280250682058885481281315144773912549531302608832515701433097714490059960262471102481017833389223876339727634186329084395882070770614763597444769161950510664394817635622079496107976391353406727446518050022796880003957201901594822181714936565979548845920130116220391164736025784999956587103852998655122023050102786772703318196297411483917870553598385522178651234809293549027414357225559877399966187810794755189445242668445321212392419229146625985428061351749064730305737181151080639916228336305296937604807885690638588937702926057760761194261969878361904735013451347630416782470051488956301052356976710349416566508376205058192437945481370495024696085286130606604944313741503047205750359336948009353425199364269631060966993149748494834056818704097461051531000331633981610245336157986305484231181027538865746275844589461109218499570419009197272467232696589188942406345283223268374824864841568520588786016933382407175493903299509069417801663524421363260700063804004325651208213015621603671005341650498777684040267000428155537908922880346339394873230067837553865261441683296789078107733418782885968367671887234820416447242389960957351052820384949619222235520976871963039250725855489509315997469603008777784132124889259794040596854535079077470964278897470004582078372378341836834975642047362682418325481332368024567371291733693429926673998598328982103000656879733320409997113130129710364451253437039816494987282450554844691575254728785166425618789892297117576292863961056563403465388589814280832684409157699754775102761545362058800282991706730578992536544181955761331530342895746388607805624548655600622972356159817713346046536012155472311073223304955259628078400141612805019491828921768346958025656119830761027637779469729966987085901023092329771744264772728360879551146153784677515060011458580094462845853409852386405113099152421561861614833060787040262504546963047509330505320772649110059908805394924652125405912528146692890639780964071676349003457144785747060867539091043577729927165973989908390088904488633932503917609427197651781901625520727126953832470764619502511664056958550068983926120535852049524427135104452219580459046784090110918716024715244480327378280425443761745500935085706465196845684592368274772545773253625805564201380446638816156933667484912672187506285537725045622267042537269546078397755783777625995555527373132862110555730425386332496253093983877649013449169847228037506001502744468063064787545681599438613412381881169014698878433961703659467845467545256695477148905864125342557578104824533835018286563840498028105285016852561299448309498256087181561870268423149708169125187728831339489641864924180016001292108518074900473475258773595656761674727773402739604922393530880781916946030814217681980598166198304530964026820251328810214772981468759890428924467736264621354763909390610825462778983121995284365099699686290177577238960141102416707293949461649015734058432129479618738190465075794796521556539172112554093458164636608956180036700408981324173175947048829819825832431082092667918850653007325421017233265812877387541354004167083014501719393170822723426506278931971237421332789658951545595359719236335350127289273760145267592706199841542936922126895407787397634087495329491157557597448433222574535977499090100640502458421674202949316916885134988984827665531033986293852263373034759713007971163046812125694228670996252814012827748314010239586700663833042879413848526554422740765159580204882265171650734468292143065287764460555309827900505341665114801310422832170558009471737758615259356987838733929460459013576001144322885455588677783269913050606528453052026020117629602343206001858604131255427555677436081795283026280974936193711452860495645472321626745230894211274227098786253538525452819276032999269287872096511362392307066806506809588057592129991811952295720939054903068848060169800645338595583901700133696993989575340899176975336107585661079459356966359074634419265158307472614039652130843178230744252673832623724908808083617601117892543512522897978918622552973309109068594077143142550570406424406272299876030898198289537269189163040082316072588770791421898024793821027194077967169439742476871288614066220087971469991457907501635440567667488261950186585162389562231544886903874967871762759880534268899361041083339176236843313855496927094103991453988026643116758101654549712810355910002023180516135533468411954039297463464900202533541143195999271303612181885052305814021332481870238974364046486212261064276879075025016602159394606949210815909803816124296064464541123771856412361176930732044621858101245323879197021117765884899502740511806008109274167374356420835658654035381590148875862974166309696094811554396397240355187237351496211226266738285578801965939536027719874566081734192776539133707994899001825274322889964830593591164634122483802959447000537777072134828458132493596416469273535810344596607944051595615439901752541624546144224652044237630032667909446338701683034970013164611818166178476698359733253619932675940783189632560784599508107286401117088155852118896832792965515964290119500130799340037514145530410067871024377339631312115302157041051144126652401175869291855130573281611587510054656776120016305050449575116076307932240820994932108168320807294004923575931513041810443701906367559681272583189956329013770974731106446144117432051713900780490521456846349782577223507395989107015291788797950192986026106603012410198346830627368358565312511328085464231300881951179334774183726509867817456467463830080049734149627983271886056780617051055599945997059005738235362973433116628064890575675694194762133845777263735480397439327646035337098217502015819482282807372731534517355936380174203081090553483146478597056800476588650038420110933405785820391257070262148241340781363179487176168944347401978477055458839180124719064377052889066131448650122980369039234519206083601906628240046645449287387120855949482412390601373548997076214110688893414203741909770608971129588967633744187227521059562940338944926876818410912222031603366688030278261224147617013733977091343247666862873345159283330856570207340619000223451432860505693623236515171145249369527812406222548666058406026385346886120145017469733956649142080356230735716402214142576676051210775002486014858493628148585913752997453691239109796961044867298593859547790080163682231799120431340937959614511439823817112228324653965744511743041262585278014836758260887090256409554466978191302431129317294302913977312706969695342314924574153751157893720004835488389501541547252994899930390061658177378475294127968065033778978586235829345833813450792716944795981500118433001835563250495104630384015112484973283981873791304277722582700886077781599304946727052686314419022821178043972847338916622407767504975778275025523954669415820808628636768814156247418499966723434720652669002128245506925943281136301605702028102044881883868383241160050443878024013126401587377053459104530023589753231303292771856869871348009752832490888818896707158692796633394524184518079647157616332765056395871993453848015389627989601344944555581290337452387273277030617744310665190139196645218169838672356149833033304924501088299791704163189568016706176320052171065847709699186858001698703865128114800075428279988054048833123663002493592639579716018886990052670008905501209662021369958423349798038252657213641092571398189828173168632691613135590244957336177149026004848538014876796178460279866467399485693008463876812554147229232012654283583243123388683549094244373925174359648368456807915436362474193952544906560716842669131933417609899519769764937487454489135513281886651807310985744885640313543241059378335041385159732514899308085327149264617514537387971667718298479413199451054794835208733463929775226623058702847314660142709401386665366582739814854869839074413089154246219145186383483469113941641853771125634296737861749776537901411973182085911675567775491126693569339337545836813860295754690716655775280760748634338492972809571886973087593340375408920496737470480936212834759588064608320798172801865691710836193274993000490475519068789748189237329577244190349582463721085063053284627754423483874080047811405899335243390729420648959188348817290079589498501808331266807087303636520240354163339481984812676283630835114846706809528139772210581607422175442421657694897246916001166493978921672834190119136358166869752616714893258475639957274076546943385400902550178892746724198115902944467491500530347679721066107959326391841978801331006440365962688416181092288963607319136303821749883513973162373484622896727262097320004643669610378590429378935033788897190496308295328392356996827075778857259640123275947162150655139585734113225461929763284088737712383926483335816364011387846384610123972537824272814608939792921802705070287851874151447113539704652789895569467431224878285200905570421030806171201445089937043214832637690108956441179814944228214446284841209310444899770991677468354293524326624921248034437227948395740512703398205789835452982401134468896821438787143981486299945551079990376121227181157151990894812882062650568849886202179782327659236327238049286764882124631165909428722745868556504008759173908611190821798303467129411821004684368503433264230875144959481206122917728249908131724776003956419368953763604959945270367930838473052448853146888593949349091785758310590389964864527184623178258227013913228500057976295371650218129303060207634918487407731118247527699476277447211961348857542899643150706976931264585192814787269780799977265247441696367067079584461057896668421244186642510065130380383569989146520493608209219803583381394588560267935406308847564969139599776352636948383646169482448197973646893711184384455608260404136002153202901920324923694933550685092589635473919529602157530256508709847150939447527881975844883546115107527233511051583511023505443036651300397868568437974613199498069923012581869303219609576819922192512615581578402106416151433297625713364020543279880418967525936007605015721568733031654624139036721300959440149573921292057360249035147447104234119419612282615979132188537749711029935836516465084420802867259673629931711739814343940430250816245244868324956473857133863152400272897615993023547819409021909171202853466302329621514280944326305838693155449281274623561991621068430902358569947546877767704871154128334743393321127697072488380948308187405370306705210659154454442837533409543104972966830527461524747431637998822965388339552083196325994643416858852438226454797981349296318460676754579250861982674152621816672804051297586105100668181144348890071417791271262600139537351165424201943417289023014814062099030292367221365336978201362613561150336652869277989408674373788124435340100358880923695714110789412826221945979485424967692479726028777125874998891778814947311586820883203992096265656674889021496502362000260470388919001428291861350349506019948531671123394850057515622861609530431867642217942884785333764046031371095239801832287360360285391913815211549792304392478722476849197192623879265508545539256226441650875978171877191197559882042593740966410859537842685276506828666993325388372666975259234612504104256042093335085225591364927875678010484320901655602530885858614696901137025189153759279644209706857556364129172570536274644573318573776165256753709340316867457436357251679767610668612780183103239910323338458929936584670789526882535602504141478891254212684453751120180755679231017178640739437109077683391985104884612491130683035835409512358757711710257722968731485882178776239179338588153410704102825088410944299776761424289591754751072588022340555547946523883071291365081739165279858997506856208837224384213825494296114349694687525297959475131213105531274578145740150546780360815234393263549866136112836411529729376389365403473473402018187796121013511693427121753789321160300448494462898518217845122813951896306975196701180529322523576201466199848685525808275206157949550415738337125927963707540888743300678068271786152411860448022632064507039633057422405072186600891530592721114118569690318598120413877346503422664602237324716530324974585048730409567524300368555187147815734546268993154825250147265511765043216896548796371702932496493848780986145341574305684171217626583478466323705489806449867896661838665626077129780447036726501008787634828452022371063151493304734379337484564344041194278517062743992597903384114055673352621745877919983201562333074782972532195294803124703828880464334872692369704589299757519088045102910133975662791833180659659586689561221357556653324967222853958627641643574467520021844602400833993488091465229694504251180336142081924750100508278890933386077116541643570620835327146853522386060196435548738244696412493020164528843804176826368359610780754147614500578371174228467161392089735537126084676864102620407227249993218676285491322840770674468443343230390543678556714657288784606288641698823450350930696345526678562943215592067710722038780585707144271678350019393951316715440016701693812559810995483608218680602432030289519084956803868819620942934727785645533199657417072018891878509140641496204420988733697475673971231895882487660346143591362720307978342882206229776474844695550934023545266766508065057467363266179674225945227882680417652708458830521109352556747659815398290732802898486965972644419755771113150637266124096705014091289852717775532177879711017213025325321911475328238243442694968549775237466078022812901023259600357797694255739740939615737385434812348436527928837408035386778024213531345992110180660678510847077384634529137539005859733566381507681522672227170726891773409164390573228569883018150919148439629962061311536684168994895938446396535353001588687613862473927234142424918635576037411733005974347759608857034519524515015325195590680160132981203576993286396680913572695136885593533644597429922456350474000056789339022913039438190016022456918777713196573478230567092774877380985046218544373745022762952107965268927743736924107685830453359313680233440248195219056885454966239402326676718145715672830624279184753842843401550479556403733350705059356110631220369131006673894296169277564684132778240754576676748501810927421638994305926654329437436996877372455593407464826530985373825425549828680292501699683624497967028605591309235043538698720305980709774195496307808568900242432928497557737996199045455779909284857150759890853600390305457258774900530183257854060266403243347809633766021695055175865482708929631442883399747116569619493850597828000503734875042611725520053898869085602768018541975373556756105482327576827853959061993664878908981606100579142540736710260427947446339283908451833990196755938534452978305404344801674217387872167996688674665682048561815248435090694667857893801873854801438601463527676497600404845349856828765987568252525753870626311031402072564520166785361892481182735734173158543765143793076504565818625693257983665064549084392172943651456565539475293559679421894089238671036996535070284260862137691019002268026906594261381513495658411955146108924404406421420050264530536150822977892548775069049139232045710917609255983158857279950815301211349593677984190316528463930944385008717990515038373979189519148379955459374029466557013354560654900236035634894632763000272547656200555218883148403705903207553182195313260894325768681587560418813170409074058824736890067738082782214903755580569304075400805293948014673124027921036844046038415659632915052485248453349035005459690354616086477996392322736549266456408141838221837449923950065225023317674453778566555161497871011769722316728180363285951961714803386557652436786599256895097192740549559973753286482155013803164856575842991762108196162819481311561909496881819919116990007342741604417400287833761034915493165962047077043763508993640939908319463956543633959635447409429231902963624163861143430461451415094585987723885613600988706856889059537511681594177324774380970582720219050655801012637776141473971723584053088847812958475106574319313927944794637625935180515164849602536403388718322738422960568845547504895984177271848889254632527043758666624455856669178671718792495375861509472378752919703192761203034285175104706185673841598155565123738889645837693924268575238160490620506587027826438912162499163742292967112141127871258083939474820077966783530970197738773953118857591087748765768702622204313644234593819812139575274682421768173609429470222367340667021847334198154948055146473070503071735293061510109540083845265783575293970884781843878300295921049045547123659053254838674787168929362951584157437759341227087567096576333620086188987630890368395861468955788753645331172493072444421632331531111404710088366184732433415934835603479472630481473626694519815456400616640812531856114943989838426922577780714343800590380165090454533519471825104782199023362010908241558119147516810355176917897974840829605230802187165135281450518991707214466186391542800754349035920443046029105647344749771710181104116154174810366835632050508779738260643316722042075419826967788177529793419772938968801262057266646367345283879494217909072218256804508019327901954775029650365640741739511853023960042123840384607784473756187113750839999688297135914419569645706336993456384105047173275478566667570083705442721795894090720118281444783027948195962825192671046611924992964541796203689639622404916445699323271474604169782825120114261892094516550973557329398100347883773148003684954682308629884706476042670929572954740369154777665431364560626878764903961143524843336571839125738076670917704217641600957590358294555805600013800614691536646457574919715521158195591853203100822372899300380831270735510737891470845069737780617150381486822114743840513159681601234595811662953003407920539695243409034081366557075469030729408803173854661352471892807388626083522482133955315950847593487440310027626539987696585188196665936377433979411990413148736422240970979725146692922698178432504519528284324698157783764443868719105557683442048670311347566130204979559913858071966304365180942387083427690442664857398221135910191539327664306789966215920661446631004583269178124219499270649221699862824410507205980022824921262003445121354588626017071781894455701509776409117543334298878543601234555780257457549151795751173451914403696914682911784832857263974018814238340610196611732071297497613482481340657025810927747733943150670503704181785159055773989139333653167737058292509269026798299167414455642522658286530367547169814760912756633995752561614263193386567479531725064606647873601114866491043345132670016316486988175858981824698029765189383519146856507630864615259888262865156830442488825367985972038415013360670909784059706009345930294752241298424960516300853706972321314327119457789009464292913630936560888739256449970078377692934763141120785553890739953706452228460329878934540709256958628077620750817400016046793637617852481440323211767781634056751970089881200230589204692794245763275432722104152068090536142104070782638220485477620398099929463943022705398702474941056123068534038624159734949140674261879381679264126482584250876634756776474062970266480394863878318280688721079795411165042341025970557909019023964332346787197121220246453713431102735849356737058697511963335151603133075136413123865016754937559812067874305219884038744753126444011362800061064397010105872342803767944115538957673905163477885073666010272326616212658945536462027222811015813555248404917508278004267405029593567448200849950181524950997205749755086300095472920431621821667341514780031471571451211841115467282146732009590295207220876487888791695404275662230106345057845205199841892355025756072135903056694967773930252213581531620597367054704757154368235407241583333441433597837903483902340607047519887144920974716996150150163783573053392992309379713444275758612793029029887398694770849599780627789084232531925758785284598846245717160309229691579456012592275227939636497115780575124885614295620912235975323441644782241150803512998700866974457967723020124945851403553956959101528058133210860576163043209605222139961731326985257890764107790211555874398616644048354777751166701428880290129726973406466087007140552364631516687010824135996741769559045526437772125588469466978058087120552505976392586366101077129620333037971278285801827576238200498765271536979443676455435640566517656209238682968447897975467737080639329371220565795613485959899587403800953689928660247185197133190403175117443720394192842392323331870238551246586122348519305635689681423543830885949329846436948952624763893220816526912650407425186513136571055092142620656103687471818342411727539181703768981866225304409795418044054440546772645093514100937789659190727363390446991488803938792033027487221290167683975740450356868754902236964958501299643801412872078127648234577182813650407021847064224100793195811615083800919829689200298564581753505145820520939261898845361484420665584197333838073634041295648287393185401146051515590564928881578665823660594685611127434357458896967491691448161225814593633177449717360344755116513701434265026051748992302598390036297010176348178144663862672761330059760952787407261032217769234249860463228909527379702948371301364424586982637300700149581446260935212721099828513312606779169876000528568995771264125788269287742655502355732271641127615234558084292378589351478421466120320846607669851703319104211655964993959127749994105897352861941081400859897265336354825272825193851626082806687900279196124606693656360353243910478055230796131528031950453386396250580073001685345949149423197872077708385398295169937533802325692873960056577150552419862466186349514634593327766386202307605799173427372636042213815260551197167466349654176301421088443394568443210198857747688991124058620158890411558578284926461566760999174262240023545400362717384152515913170965033769168480506820352455203432100648927397182752876385644568198124630132422153433195435212602189731440933278487669030074292526698598306219620848580269068321867149672335711893530919481705353778043109645023330864943974340487070125933701798351846327660455458973588381342786889121979243251997325152219659902661733369963749099305813846988144600590819169311205898898940996842744873798657199587483572950595817080215944575985310465150460800800120425148601508015528398337490529597774407446821966042620134381665793997240894838025266862310819688761509502382288518379630517305905662598754555787805332084000540305778961723346997784024489472851266302394293493875679971046452100723097743080644393791733261942606857386801769500580612716629831104214815729261218400500962318711633170769458175237909656009470472458929130539879276919656337249825075736210647562703123720026076244446965142620027647244019618923555743538399998507961226321768288687350276356674935481186064989224956266203195815599658909069472044590698996707764168412386132852831029438388489236678666987505761412600155544800335044102183012943031347155742566985134788519928852972062571965344648326025655268123260879670054394045351159639643159431411185641470108670886728370012878646243723305068358544651053978356731087732580101437960606327219267728939880794149076158723031931102701125200549029494635963625531602167780402191590998867167401454055443436115428990185528451370187189582298274808663996469244004213240081289286676327584710395571233880348532704686232936021276620425086880384584803020184591155880067258807701218964016126378785225923499345806639876389650859226132262873129517218135977468971846395807551976164757457099369707061215128638865612102574216470478067144845080811461029282098054450254486293914811829499423601758442763579250219172028047699561893530726114499790793457707083785779949417834077824586163415901593767159000361037705783948051837233796464350102802139760305152579384802800748263949184290313106352022975433263211531596678033560272930550033602922193193715370500004206484537291419392977653350465008516831893555517729114832618732132131469290211642451136787856783863470666592938834326866310317437476115460343977846213948318108488328604494603323802156968271317943247834414676290620514137918054415187040515311444853013999258945304386024698094713970343165728157152461906489103409404790105898503739748065778810937798722599499623060054660883824096167282468339053548304114062122832904874911523710246006767178412237295674776268669378313654470852905730453843002045858332387475525069568647652830258115924534957594955095436676240359915680387633935387365754878504995991675434496451909502757419325753355918731386364883364134263440999951237813239946641315919075824048666114833306688575211985697982425087737327624745789905743848586810886368289585269073123608388153163594002867490934394447641730299141233818164376327443988816570518387162496102106897662758087498194203440941352242481317203666514988099184904962322130279110103622402326226123510067371984633085192488234790492466630825886662798370499849067430018255017315782366312794761139735577988255183043804803984732874964220363219928738395831140922915044682135773827893755238545050762341321236912953697296275187360098308777939790685925662044502257471693528243299356275934453227641832690939734631867316428531582875313337357081469284264724223113859157566197274958200045324336893644298014203795131136390431611329660218500743154140971401040851846660869477325188254191848351194598238528207368597874911138222191702842607560950040274571811176017604532784953435090147191998420017453094930301029582404373386601305297829819997690741874416139601874847606701132656394624982239118562715751396253636189252376486027635570920981714081054115018425928596143429605268229818285969937403434830997919124753162348780506366385329304141619500107879359152704978957366053005413199268650800337203752939423445149360256664164390529263706779211416871302038283586056327618208030853502785656549533137346788320230721466557203462667740043618487760212399976557816395213476536522053141894073223616136111089928794592244375445149037840075989528212834766028727843100513347229293201030727259269122776297521433662073318213928076995454967016943426652521748670068573499640112982511594966992238451544730223004014677171870241965519680317065769205529320758844163353438671402069295462248526253625614531160658573248837728695491560097528544119094358994836051042441565746576761065825488244619720630416406934348171739138568678763083335492878030501595300610826501466395380126818694617480783985546932361616483725447230674355517944748841072659988432520563579277733246349014297778788221820519219203113181605921136781898039998956964057966447511394828008933773336040101331837098883542677217615041183552379660761052346211317567246610223289646337357279174855305647332882650456780348704637361755687887434840762617280485495909783766323097202140330117014253011368111054747653747199693366213659964948064476496428671282773960345782685510179063761915566003632282756327933754578898152245811184416743532830524719945230266306723432292824107843518675764983216239504119959472341385543329271500928339247463298580677544975620977457073162929052668412946655390093600760993850317434785104162130050277863032460597652938075980789348260691881037397882270140693665750086627341933483840941081845694680896151338266907779343429782582274698670231112398615122170556892470553765315502277808953384603417223064587646639563006758986651327134841242896417013851316839727776822947822046192199811172538023499386593243457349667730067965731282065716529073995572901997993677933151384061217977322687985268387610883551008710148000012404585130900992677345289940743733568033569980796974492582780762941170276987952371950479135952557107791955485736450258557603372672152536886414881331851870357442876026600217819516353634725825825788624053843339770716166150468047570924637736623579863957024824733672450505597439642366961829361061285735505414526497480307165147784426476874418548929006339291030197675269332869391810712527608389649502080556918586066668510578052197460117964504708717621152186640054426109985408613796216969513031354443484963976774692260437027355743367388961669784643956974387567894247969122304289784036462603364634134199965974418689804850011951294960167242945463564538704382225789134680197883376081414944979805020752951144531606412693023897350355193906624475598822440450603137897848049489072064315586785081350397988999413966904471048886183283927291771501155289005872239057975745271729801070197799458567252967485022460241074824992327604394477525619537055855639714035397219828649354255871196172009975911161747653701198528547634129632969818131427330124004101953341842413034787115133183953814298762835108763770566443917033265769053316454257127410569524155757112725863580027670305066251995277127433674045677693019314477505401870830433276767221227573279506405245599544102619435472105931490478258030265138294888170292532376093917698648792735342020073253832191488262414028404155896523946614420300626834121410601361911339656345421838241131592396999440946252941464300968495653317080370868905038463269053320703400210909616463218649468590124682033829375900178115556504726886135761070730651947648813816848550180247235406480241716888882383523559650612423491321968046582126734700349509162855778738480082069358818767274540151143233688428743563001720001010692175923638650381842101290256741256982864294412821260933227148111518524808121608676900843812072363517455334555731690731418333559881752588236450740456395190427201673730512779022667204609385055712499429678341944335430146048258849219748747021325667359049377767705644721299972801412240687036678444727427852436047829108772029962574093735512637191494588280241807321919512184767289589331056651985411773346396154565708189131352449922291355452051921052775403376903607333866464079745506681386647753109958963435334840609314875103447651489589921643572527074518574897671008819640987893726854059186941524635904004755339851418354879596715257025848073469371056945793210468862923320534234972451594576722725292629840005292448070500679960602489995820878300967335659501481935917343432854348988015220294805419240610504011826010243616914831139209711180531852639473926648263726547537745767309309798796891793417361968051523239878003068670610179384136563400645137502188762763532495551994936453317110874165663917780650347699677369673276077807724907601532884760542073826410707199086578874594893207531634097321139325117505103979917843803753725017620073440364023547962696252275337371285281171773602249987858193713276719084861848094915624284531494997496048574223801753353251213101760495286697105977692615815125148559160674085686773787783933672247250703130903367029042451064248045780526874005283499491876785740739245142318565697671301856385298247066167955894036715717977993663756949744539740515609030727729326980165613324806400957554200854064348515370703450619632760295333064582182850881734041337250504126441429953692619328777203036104250163725867053683704167230571341331903598213665744905835361296839649115137878420172510920382077592556517706181638964279701898239072886930346780931265838719389312225037792478685357618536019356466315178809374262658777064899705882163730443379318680472581048592798609013826641873309200126050458956012512178022151453005314691643653747732266189406080369894586857647004233849470913379870424572233104156801164696994113809303072571500051699889864147864478417127949574347430949945407873114078619128792120752357182424174537498025695044390912857268198426107725781688582354727351990576194109316258520813374213250258426756571189892423313142490639233708063085822328737735326501974819423117164957562065738596084534069051652661256710298925900998606546938357816664233213253421139082197683566277918115702433480682052751996464111510687005652544730978858453660330319540929956249176782905652284068902243774992784102875513445903237506310359567697342273718100792786583463740945242581503542003173335912445699367681686262589980889567079261681604127242804498879558746564569919437884497777836466234387846618268241592420203542064200089114929051408385508725257926837346083093180690064873837593655482841807983536350101514137403304917038874473072043164702813267184819545575583848950747429627888847919188043402301743913000062249742011558727258861981023112085881076060067590524603623960327779462761003751883775463734803344324585604520373915080465562991480733044082524946788656464207720013694077628670003829669841776899672398198115331009291044800057215954486113555897839840833259940035968237427629638114372609821420452943858383530977628917707507364861915081296986445859464969315633086514891580976922058711269329427088584215123302312435423078204960286503347053773562904130414768959816448006967801738822621944989116727149993853309080335693554132900749710011621595648263191248639225054135255889636158588523676790329569249632591883292680819712153452398437175925656465332233382229523783066028104344180994467173016333617882799312182169688960148855841555577002732781493734884800770672171922201575258346548049088631309038068851783829015581503470854564986356531903616715686040675533653251237759077273377914908401442154417904146246843535405139246083160813446437177277444352414496772171926136414767157088992078433383781345426361198955147532059533166728874762872803021946066186270415592943951464299006187224155180096645120116086275704661955553805252898401366181988540122472986004340373941463106161968572469736955668311516667479040158757165853303130665170725630295171996670721046585065653742932737711997119651946786478166924442051645443526874576051920840571819419216107607152925745831201301949901820360958793114796841672656619300182988999856888347621563756001390265380192697162764763552022744135771151610148931420918883916312555695129554977054530712518557502639028381828882519998333936772731475407556849158605868618032361782127578237880319752656998748208126316983919616028275308188360785637642074622209851262395599699134014620831834777175500665021005242254140065357070072648491740318062362093463931992042823098508379639396588809795184404980664669084940466995091828004174421196884844810662205586118284585418968748367427846537606897485564561004430118303719989388141810803123291167743794990367130865674338296546558210826217574418391346516187393748068622123993727070677633668622364070011229374257481341260872760607324131090823078703373827617257417157252222489086757983360899904955296518579188585972327138311224023323179481537759409262519926105945320894955922333709552638650942496924497405933253999007298793503920064205293055262882479342042872973903571574824475366034269863258171222133595382682189758003245292972759441490922011485787521431139177873318301579987127041065154241819997631348588716885886313841648761044824403546707349420552687591725699238943029368242493168032443856060195802236410842814439026827835534685448281673896028145878800933460601866388590080512836420404267571086334577078287751710697092146080404393922954504850631304128604779779421723685568010309349085420381108349298747222314381813970892332520692991347249398743572193049115707033905602379427159096476237260280695046175873806148862242446742293843128000898164333045743702897564021348340400908748448737635554707779225207287348731710647113074725195766874927876522016036632806673013487912315537020921337922127508537967788715936648249631230695792437378753058310315644015253316296607669657540362477798921838963358170339542919557985909362792735484088561203147337126292242670907495964467366411953835159184030012583876093526980300606890609185813587708884438844771432634926172629521160344001213556028465176009512325960587770941143478307168098795194759462907698699030188234973474186387909434091442349300387802304884442457729659324282514307494176621598881409452871028313298468911741798884410755538619375082001874298761736077692255555138339476186598340037936267973362381059504035055072742198197851029868719841397489510138472040910366517417648771424589594306181602032661205439034773236629180873773035511941435125270009771400458002811841781576905902711727325836291245123386051060266470740142520965603448844182930381202922848953592813645976244435041585415938740918202985022364312405612900682913038024890528899608388921488249048257482377412779757796131123870284725309581137088941834131302606593730516307555469179809967726234225974934625385852969983272381164603763815413264404226928618080362656584166919702007300019500452640499352202079073978137610260502738959760655502714895790460436773096184205041464323613645048184694076096137837891239175045182890742904629557782794556143734738664569691699501131647012278324702056424755821655521695442950108536610744454842009974705354610545039258656028971596147018922423432416016066886662595390441177696334156113689640742652032191579377030536970643049210656271051947393214145054961937168487803566314911809021754183224570322634832776788240658918224119883012103728837343050598860273061341124903032279377868860241759322592802920580070292814091015033346438712186702279631786552787841274924167987729464633191960990811733420686772361653344938695402623711540213513633890246301195598645097992715166741961062344822919891803511383418211717531834357784109291129785757451908695188547379547692981200136862662671265221050955208430507924211801070142939830968626755083645984036638666916066643134312468532827753483098629144049941277651316266899331077322056777849376446743618524865821834654013714869410040301861083508079902408381968335189535044431142467563472946564171789086686383328406265034942690776779243460982015317659524908868132346321044987224122493754430099402326865381435948550837199393713268952172614772509111815736535437589783861982089806494698744246039066581259983944994616587556870624089047414177180931500780526684937104423732874448335464657085879349967070392756743218298122962867700882117393000460933907210574107980922977396282715165904237813211691632161061685676857879547042943353014186639986095864542138164789695001873331367333275806608113875945389306342759590402310166662356817551292196828635095643643752400723970396067429553164695791544799716725641934398890855007721241242554631278446665651004214872047255403418447310933706259442176217468625643625078053936632427772902355873747561045932721965312928166009493275293091255549865258998743411440180392521576596209057010779795646521771750556838563539929548362741369258741198297120275175819696660834482108861237476750449641678219298571127454559631607461129242554247937590571760656289409172598675166102547082391299648334826891099686239100911644064064691069645456474885305282523238951145540081878399891757155746953361857120396242800417780381796186642718255233993693098034801418031401754742949046814165213557255266578674790986344001476416824637263314212080750327559299396058406472421983417195560826008033876956715567260602543324844904881606087797086870107076966088108133602619522475583687750721907330375205921860554435228761299402375402472385538093749699034061787481665629610426338175832550132913338191821631118649832782913591005082860365390492067377537134990436730278411007115141862737124011817403207391866709761927761328699309317457890357088385252151558532599244247475718701328793492185555795271839006282971951084580519788933960140084178455259839206974936689172959403582094758259431852386368096078463563019510540031863967007808652321775795796488333997999202755053969785204274754963306753770152582237821421833434636894260999010254894516727297172209853039206735904809510191663742059447286087627184422913667893049906000764159014974878064019329022060991818638625020784558744945821459401769973036450060351353417922331052434923688676986584010296812476824046298555496475970051261756008427877583910742230281155127660571195901051811298714772282667119343467885230604996247469690404286356697024716014603879840596305649374255700528756161990403652925990988248610313000575322963791694796795477865860110863228959871038999403012250429234972234495351089343829781350988150487052470142204506341119297062633700385288467002700491757755026716754426609381347400434645078479593116926188285560106982975475573048959144943160055647137770066905735441313754647719606571427243200404490061441074748607089121757179870942084949689294100198677517615851173343750318731177419053010758977064188969315021045185617405065057976312749879716455262198359795986522367910337055314688610037624089748572172902407433858907529595963178042822279385428395577323551991914212032871420162563115717300775000354038737823041947420601228136360955367211529434074092910733080164499390113048141263366198802962273354791003112546988475809573480878767710973505571207606572372203565457323922530329094998733031077638657776356355950150029096464138334067311834312764576470982279028324526505553414207714273294641381907775822995917937494554609632793107184903322766948591760154463265597568263220014912967845727741654488612521986242808287164132987187770662418967866945386319303623507662462976556888359120547884337349464628608200205649168553987748109248673342622052963962476311496725740935373017571957261703372558244357604117085296953782313501745709336717864050591101599088605442076135386561099204711513502381951433084476952688904989464362360635177732854552477835867379737562615600756733921377825370179414734269041722145421322922446057074860130072661440755458194672864871079680541354743099227356300348887526952956098751311143374376616368255127399644459869838669723861816312661216677284288450049545501192377558679128856270343568129390920892950531617644910496737917543099825071918528471250572443449679390960686285672074524014127882936727289519181827805973105347818823969396617049296008432308804771261979985623617911296556230387827643424315780168469319470627877250723531858475368376106018632314584348353508123994038457528167402459701087980313644492934556437507301956186490190298933802087893892470542322747117093215498607544349103163874961265657012641785266477034262368483444937545179554124654590103401125254017353426626681003377835868709439028750149886967473668960454235121540179215538275473187765402040340258537498998159798174341749952066748241561839860420771483208123827001848067664901410062755303539045702853999372959015665786618031027973055124055090799349821917630912541917117381010047141318316111608121551689024173728306162268170845986922315503441162170492115686860720565966234972541990102017053652732863483087562145459217686703273996636630950451934068482176245264382542449671842584322909842278999131745062905011699013953623376465948769640407949214753907895621418919338988926214934012745287744296499437013886153579795670197357343316545821161680450947596835418885595499086216674370980227469542777425508002787961252138690224908938611303227291305314885877449860907277923613979146377110363649118306890141302650921876553267778349905156301475900799739036400481697872278533721234822350324954386283493209036655273013318765152544509658098586399792485684067213395978000313008668395617504824928279187303269304471382496675483674799403628240558116837218370628783393659074559857282395464426480681317711791776854062548930771097194963742453157697829970180675444794797209248553302594088836360506064123825820569864104732588757005244318535983225077561115946243011516310435791547547232653606602498583931580781076393070023565284920430131811091745558659991145329374692404049490787128859570319514380784795595654979341836293769331347832236894774055274131499145075537651854916618824499680974238306464815257059918389282756441186878265745363723497933361219290596175774891416247817957498898180785920601489978723305252740016085740979831644258421034482033894853440713004208208433807274175369404857539612778683653386100250393793612234002804414366629621039799239983163885331303895309093417843253499392807245025783614857114116635867336305819510567040928803944181670033896819149880410028211381151511342076563626056662689842971738255813213929238614214423331957030951276333739184121030879316233574357995122987933076776704379090628673838487847520821942229314382718013470938552658338450977305452688563518042778968319035815027648826020580279495778555937255051950056504673368207197270328880083877069459747534322510450763703124832507244625570570398162679281834728752723049248762828019897537785459473086573059561170908764194639436364265839695373693487050876032573094294820845102359724820600376609014658801001653443588654218021332579378097986792118980228929133457335902951059130003927169963708203517205975775996144321618059340377281792551301375049109807732003208524949775628901963347384721883353424060807703189275593838013712791212977424151114798169249116577624321460753973626524175277735732548604866712389354116930519034038804188480694465874783599065609714163877434935419599779332686455550446332505694878184445358229071477968271708429301532620039802342495147816769565613985649452152100411679711034018424319801420931459706279295499539723280257300678112200397487683333911499578911038201016395608074188148453792591744053225539487524304770286838935077545935581137847223910114283133432848885405833710800635308372314708252999256784886155004068576167340829652353522338128159695172802058627405462830019105410577192775085322052964597806281954102901899870846794289500745276922560618880172975812343032286318912887498142504405297254275888877149370463767261618258336537859606009435519161706384140273184713746688797043284437025055097250201710017601227246856800453859111143593783545872744162871793312164291260650275447301747904146772030640582798841152396506753192105180463893952356817279575994940314497903131078158911433922084867212769405363360127139951216507209443607446132779285983553484470885121473421154138106607284986532171496662650415321628199861637332924758200932875734502510537524792179946715722775441166176526908292454667239853142198491056535410895624787244622804585674580159369111356003327867039626067254609491258551371040806643843604584884212816060508386519355978487610615685433037728133316672252454704776281179435460331900349554498621084470207978038079876599317935144929356316403916163008713945701608826951016047768911334890141124552021111893427724240260468322560445928712809686071524139745797045244286679370978629403085557619278508549815862514283296248587027376557569555039039321879249107249930351620217892663526222605745770845394098740983065699576774795242236682137604725365593751748809429570690732861646831784988870617743750453083930359408623379344327704663880850913992000680024645154643156525718125423857001202788351986320630129689443559053327079413245940628039617638647927328561706244487858799044044538934151400020199161677955875955108341246088970156253695617228715677132803112325907666345184300101368723904902720369316897328206773697877674836131319167139623375131660260586011098052288836488614524261835537173735423636843274913138217482345436139370620611806895102007461979853016647353158049385119137907534609104675604356137128899872821372100587366932069159787541184475329682633079285056627666646983288752730755083164289870169480401514047672334796652657576530036025782335138020529812858940514736135733358204935624273237898063249498613466255588439747503691438905568388325503884217890220368934603765094122737340315355798155084734499858278599170057883931869871177110300144886880207996617436871383250365520621908516478558129777859580336703974929949177554965457869972878530160535639249099266783487173708165518711315972604940767920684102516306605614242145889653227350882284724949731591958060870077083068499437958435206990154418133752543164452708085711504305079339339449318877486707382116351888582663770559730509036988498163406059447136857379401350300641689626900785125871755400859128247241122036889847535795665062294241984913014467010034954748840638888100901196742978679377353007623206142160079692803163328684192991011197663190381650995243904490124952889156106490285803632073141035169387250902397975420524157364833461282182291084854687090036775447892320517679374878178999672267348659610886488053006718688564112104223665209059874740627536623708247095892273408380297582449432482713673090487304629717006548222801462381329627992011221657721350320265484739056053339781038971011970317332634373667627828563727865826736112114623696090431752610395561764507628522977761714584912590840547309256446624817112116686536488796802462663226610195476346125351598126999299601194804109329026092959187079016982669134890240924131582884193500920629318897663273926930667721246641920106519954459809432867911332911585263222282356722181633056453656925794239741116738727264099372817717609121037546742979896265429209633549826696145901513753019279649251921643203346673614300907355150473858114698200143791721046799028291934723814396018782834295359643274191857472975894928479815243895637747011652716583797329243764580287249920668136807485051696225498044219971731505002647247309102256757539024170864227493108747179553867787864289916031370415029277393556869897619744739531318789455488317890714452493994514331852319316123178584178170878083382813816747366028670160618737824207481699472464251041151413822743880436955119856742275921111433706312557422299509159156706274897272941743327728814484158852656511320835971922311447542494060414273993819771218411600133584088566419003390664309480543848088772654257041461577383758730587424360337243903327897326601111434046905539841656920531942456596988316511330555263733745521693235405053959736120254829848364928834247844398077403855269935933430401711582544805856447342897018832874293209997313427689082641374115097515084561279651262765591160490419828349466164715521997096351859231043990085322057576660932004798848489700486037259093800825281030323008610325928254356482373838684207514916746440956410851569213853216973421929404283859149955771145665004372780896079169729452603935092274268833965916524765782173893263630128233643575786052715165280207731375344926883066001131609534501802693094335162987604532887491571049253446951453803839454212189222302726819494153243781086940858348649150241336218298883475079769817360869358731715883095331808224528153434677642100359148139429327562882858749693265906452198015921494346318187064174642415820069854007628339291506802152793919884987863724643516050956908888160441193021271279278700712855666438063567057078961937985224347714536519015683334339077252710916325782988016522376757435976236129080617313415293128732999429252052667930826256816328114057274636593263788614153130396315401229509744799381180431488581134015580218902371942621364385150987452002326933908409303284682375714001280034984679134998250217628775006650759710311667733620809434013284372828668253789052357526428843970733770737034267191849732322718184871061361524647819041628791521205838205448735904545552128925649018358582925250373640705005321950091252067300023245445871247002821501081144969209452246232681070988606140916680760809679207522455643015743880411685200241558114731920811086735155718048678216924874749103209681338079977001638026313130915335254898460738251962528991256853226045416622253489275326048530681238100828772801385029881674278317918044918633623347117156815343081936754397266683130695242050988377233077902073158454407637164887640731524630817526603552789526339281168089932169377117366260785248303687670921122309902643310912823556554772088126367850723435075314203093208808703866549204667663940138190751289622303396762914930988835312284165209435260661935909564811547129382210366670887677972067755423153077179979761657310991109878690057105366491279924550808550069719707507572129556625363669220735339798876267595880494288361932108011397576078985258219937343148375381918684091676875711331378674869748401567791354097081925641046454121132907897583683377867526812450322463171867350322889196173864612526909175574199981853137709626372883723333977065828418474051066476344038155784737549283222988361878654541876005993683218063644250027596354360119277521215972206731279081902052180568470461949719721755821949529199010918904127254763564186553878900574584279218174024860464508416837690029915111321472172981259435450094472137458009470577725505771261229126239010440107547904871424168477985664034396281014957542231590941761408213600230001157833863754057902814235384845987629249181214322876234736379970052165240248736257844566095464074614337729699028575332863356964320871704342947075790035973017129098464066280101238445062072441885097932252509416763271146755274417933135057804223723965743413458795489261742929868869586580730222498032807712763185554086571809508536716774003622025416213696754829065659420999647173382512192309828969712331352755459902915352399267556854140589490039654753164643149659101851733214342456699932267035082581517132048409451386192760862735731969854467391730762555649996801499968712202812766350096896225658615697261633432907726389057071098663459377067072477409200579907627399902312407504545584182084390144550069843292452179122115929111510798912908941521417313150365117610817935734286216149133314459127846539933207369089733440999326636675516858822231462992248101333996602103398540767225929364912751614381375597944463856236228111712624324345916761479241941507708836892513291474712954751384466755983278294940088013200482756214601224364237027599856957907920831879191359843632440780444683029452914525906476425617838758733023969617900743098493817436035653007162338413204549689444932702484923388576766774353000237255208466383168932238753655666567671808975724293812647495516947101800637225547290483400074631608970462596547639799818891051758901013071210291604189542355410065945623311885573743728462547395314289122805316320360841971630702221642706282935946107066944533447163546338905337209134336351531754285307075909474896691776936861102457171939987481963616810347198474697225902521794329145978261442780887715114046773091479873822308735887321667400995053893294532049160082965735746076026459456596243988647274046071597139116532150590912948429548808106958178432826894449516923680781550471631077809868376904074762227945935153140596406187114237085149794922963760084059348943261759935713987057812252158650538979573061025219909315087807618481098582768999452906911173402280226239473245459985469748106789436974318287823143402031420446961247169940389014239347044847229336225331997927082250635663736459408910446447089799106577425550000494942950224633803134129848523861293883708605358101198954340045483774256388359047326950404914340015196032511434506194425493738979172662481851120480438935727609242516728418956879492409908945757992864212671001593222576616222486862882833866565788120650959051089735334917156054281801279796957864255966627366586303965017766750191119676255042628420649960695118814915147715916522881589265683873938124613200595551779303361627797070243057024580251439644357897234375883593613540018150698864286029970904175887048146748475682695271959124104642672962154231972955966642621661271250692284500310717946796270830982619398668058305462674123831045523486231766676283698038791222285232520767282770155786749871662205979450828479421389401561351503641206653734987866571242022170912669061403426029524627471554562762202680367525291333060456733847300991164079448398373306916204663653549192286110474719344499765283408609310512470195695149429571381375870764029468966962638789461344029301160386032706357143862879311267838981131798599817452033528219925626221326228641271416320474257488044390700949678500606650052254656494352066608514939915057387692189639127197408666113559474457563905924088170106557446491643851872054747437646297923391622700534432387480668351937206613470763264617310695091378975587731786770732892502862439087860031544519999255311198317352228614464762783169597618299327873997594624478962153301402392889731588049767194192650463546088880181560724989858192340002307546403602693838983424084530930019124024222636701484292235979138503390356985922937923021107805705892644006961973285922320995821546077206857310864068077871442879447410366198680748382423279718748338377355121385244130217182608690921991781966831348559862602664956838604969047865932423617503007527306163939762777719612075509377777810733850540264096479119313884226483178688926271632089668946766048312636207117096708267372992575745903907206768250031070361170689988827056859513151405631240816743485138816215455146136724244552849192844609094399582556574391198471717633358547161649270124963545555496097082530962132666029869714563818571180116583939173626176148618310136937143785327480997455988209578750660550203592973744602509163213914630683593790205820225421775552901118188650320614782081042115699583845310461914386593909939523985431166635655952929036245214301695896125823185076513653095623537871451894193811727133366388642587438409575776967864285369738252735479402227457548182706625706874262113692858945419595116302489131327146052913844674142802288728573341649319534817974000763428609607258568637890352230980989656172363023740561349543670292117973239635852455101173878008138083257615792680665755183149792654454201197928843570332658133893710632170001819407785378534372993008674434173459675544288172832371662986567439780897089553620370534034125924435471522279855755349297938614398348550896678614909402828743137765069444120890724781747231963203478574516449854855073709944293611789002189832555250969251557264650107955050226564050495732217958212628849366855531138563086778574136819826334425918863606338016222467184886222361588137233714012646224687589860619135270473248818677713020189623135783334536242365727518587523926496248422096337828775415158072446785181283218269828338692806183170252491132451388252332327993708741196347700407428880452512972455728236635645407446452005945346266855998522182128301143534199163061031028493046131628370300924236551052826759109744449402653778306149154666301079790977495842376795486941149241918578365247713470135285040433323719749922412552062459115556494732582602836330288286906481464489971513490437859302794865554993017799854003923577513558852449725617928193830113764730918037334581034139083688929932172758009371927803564128293953407838490370679832378371270826015568479573714858651345849880247308791371472924056641219980249564151557977780200911444666840034500856604045400259216919005387650960347163426200026758500318311800616821353549772767262862998631440674832469272131812041019492546980901044298093672661362556527750547805325708682536936385759160491264462786934517238699507285789793585351576875718333584385997393278845376954949290924704337418219975018718737334080132094486655400051670838250563472142191044098973047635680441944699518903565717200369190640070977357668407707050293119220694674208550519724662649355110609243859352640035923111687726393903627972096194868745060248501412104936728440000896632555084252299159333331498658912385704385931214498952810615542477259974120777100518504699560536169210520336533425872828999096272590737646075878027933993956842889043673802206275051430277951707701130197952270701304996518309393069240252621500574482797449785769344020237508307687403719332278722065625572686506457964815203845849579732135858275264297839225915648529967990439942998626721974581952394138963585976630001710298671813922640925342793919505598485075407147085628199606842137426259275594741353267211797759537767757329967921900927288287659203623844423122352365404906797639734085687984702181982561458865871403770395113487838623816243936988048487491310506591064129102107394818574456671990952831292547223881160185492679572152490565179618594419559756620100356168083395049665329397477557186730568211229523080538624978619575009294508878956347456780894734563916992445798522329782899520555367157913633836368693843964598753308341503588910712624990074774196403618950166553023674563286849811972558251037451271612288395078540352922310244593524735327546180490697497232337049827292231419608023339096234282838497429269250162452100558383241302283715417482431441096187026222769285560359888813332183917726469025142614937758655019971814144919027439526494743111275315367901444416586596936271553011929357129482842296906441761672384919499368891353314712444060944284682763729493031866499383833681325550991358660259393088608524809647176680985643370533238256044128196639217772687113586599425362224096642080716416579409194527617148189898602009144778423626412579186403127771583109352349948259497658105602941033190386080183423558892922574545964636305691181471743255042397513530663674421650516878645919790421731582700782255760960766530206558046633284505955861534632622006871153926184072453649047425202816414673503217363064900219988549747017441454871248180634709054696850041393687137772109162157679521653736420965352861240857773941590973777428562262975062124432708039389237129324112051403999765648850474990040555413700546956899985596456196800829226790866064176242730073676633977332910987884273829178614818988699701670064494390283812284864950952446639980173098839807092053769862970270347170009366374396993552764490121260472490847322886349126972155041264750513023566015420842351797908732870766793186135403097951474133167211306627050245204167772196438029424737755689254112905771291620058446181893352295908163213484811531804724039212338410092598333291705845226132115954874034434778592487851807561206454254616954369672501668007541038543048026839652901558692860682472147996963772071918359673539206599787612952146407039231135957650158477609860731125573860589283222639010202705212775342647462525701637834663922963717846494142364595870688007372870012346150311322608028112633282370834842231087468296379171250419361110612108330439289169191110567368004098766494176039588835730047599133306830604510418451710012925912688108677556409886312558948036754203571091496104241189844770706218469126647787931949305927276757479118703553959637226407653411137118876777183573026111929335580122806322781721837902292378556708671730300039033328154712959489545224712029113476505095399163226022696489854175215290967550936810983161348846198397357517752440608077511684654034222296879543115593488707333210786773376971171251503574597916704127597169496047340721499693976796329651268184465940330463269204344439096097056887417567981966346391199896213080044092983871695173116135827543662442091965083070891528394019367199104764378089841664875054039860110399264071904578963317900958206671932102408545784355093385149350382196726611338554157592734480806177295214282051863715401271994562730038958821040011381938716511326784006794811152353338843822198359230698389257886432690667913765090699408424341517020293765526931846026775763744355664638969251779764025011261955183289045710581971240623637849078943571750879880214168461579311012374164718117093877455203891169778816931934361458560137244808225152602031993792467916909042752361059989577376411206629519010931791095466823710438100562761556090263207968387511580184494407317269296250717823239070549517186746219018959132512714475830408288126425509505292383490431231733226920159229113708654406422448739451814759394772917226671438876957262354509620249092639242729455348462077235818159035372476912243987528605107641428894999270962815442624483160432612233725142073822430346369572714900926828647236342699036326022928437450266164529930904711414483839354754137614651317658183464856384185042908915213892132174250557920576583020075933237264456727941986656818191566171789926855492507720043010414048674263268810083261781745211349392544344055678478028389634600074526384804491968522017424249423391450522639446585860015446109603222462903254112678423738686587477804661273254902608083032471686258325362059608984252888994120062109346273614192688680978888902477105486714334710053319372863783806229203166378578888100668996888842036757649733682161324163138187784963029845301264330706803782164944803493254063961991157339747078905814610519517352503207082818124256976391067895795575868125513168591610196765021762967337402562102104046804139888467434002731359789821235504517420399784841762995382448799464938167811038831417999292503045786007760395111490613284710117324304334132345941757285297858911570076628728516111634861315508748255713329563784472669327853604329460203648400787563918370058352897889205065069213705765810447652179412585086079974341420882788305673153643574830661288541727081245368549137923944624063744621410183168158824411646932318519213982890458418416506254913156108661661882754710570134148172911253664909179709651893073071563789911102753423117166149950650031229608602238807000290926233994689337605114178777549810931125215951521866507711639055316665304597810627618369248600581991668209174425526505633907224029707576100502293609512392958902968953995777993552465465902638294535972277541534073420639306082971628094970292527546100309391566689344508237184625208522749992022151672890613640621311430481199685038256713796890957376945331896841491198416218025747546346572498821511514882243564394149226805173538695838814339961745213605749667351382216557955674925979077425708543374211769824258289200039491377325726173197576964553555335502193357956099539346271853528097653064895393016708847361837211230289620910111681067652396833352341727382166931180498607393108329457069252041191814042891022101008940873326883853962025045098555733961665840101491064415685865175002897933809172266868192922348422231723505880475424430888554525459687283758569820631687326316464461123841980831242551695164305130314416760955509523577710871554442586781526615490616678100375565946771238547351202515181143844741487190965214039432807744425638246147490598668930637363118366879783729880077875609658507612142274508266893027259384339602571097601238341020020114592591784871513201321654399110822962321125745494054150986691930711514553370968668004750141758174417991409814324887081682312647518448693299038944189937807455798389755274232134977570852764390979045633170608493650124630323098333951514636694949893774950467958386041259914535194237711488227647805269083561159776321711908800523487000050526525773090048535064286198597933924418278272785863192039342255457267046170507527038401525954124028984909489481306446090385361082351252132792168179862018817370655787260984012032193039684191976309591808380647572555986931630982942418064504524324480869370841336639008528756807728402771827621312274928083466487524047945648123086044758348332359623447167433643130568365399438244176486852944555092027033372340463866361182078099869302063592262062909599495119692170968308981932754787970386306411641248301627957272189707722467076577068370782859435032230543502397934851088768510441126130406172828710783499964852149366579244240269043698734389080409314879752798186042564349491378730907102408813648972909066276091213561778683606133273954448918347802261929485851064466414020841192259244849081072001889549625665076137090790571225354542057058837383104104349128370655816751756587308987710813621026463886090233456454823606525032501988881502948212734848452851872581001812849362283165916855708441152546460769833872732684946749310022717723340291123314835937497999563678405408861183580180102011827141278908782331044357457336584420495170806361820854659392136196415170105555976083305982312391541857177030407038268106277326765044402012022254073187142667616677654598976755783265053105301038029585043388873258894551421839945410735886398517732293468650171747630826824944841207924304719452131237062067606424410356381679282571999490667756983387417425023828132614395764569778621783406615111572729081492223687369342484303849790021765285935636313958973923809922091667472371331022493398926693683662702122895452931040327242187989587506044917859966269658959069645281790500211661399967732712884497444554583976056656055773378757548103959417462189816850307376793220591636592883445185522856166003293989540798193855372951743285039587110096454615048757841490280864571619114266652922372942644616926141182523082364646218071993333207019560517053027451899302477612640484164633760369772853094117190227850851283839636536980696286701123160831619166773563875798192796041026914243542961331879760213947499672625649501531381160221022516313105230592996680726767833210855515585808589278838798057898495081122037624115269710228204758907498926570488731838055500502039862122364502870099650743470398800187093070420529872896683409432737762616513317814303537378936680147639874943804576108138507687261055758739781943626788907352988141846607052866372124418029145945152518219929881585402060281335378642676817825492752292774945967413024775068237601664790372893347804368086651019251388594146231538426194728949769455917943924547968653959932037569880602906415713575822992020565515617885063411089435158278027877275388937775688733455443059143340681115698997934283836548227786806897447826249354241931528065557473183338645009943674472895279527404196214416981394876088812821031216017601886520685953079967785450294447209123376126962227663799890413796845515146116989630481510257503080643319358484697979251532210420898224639225281060441402450198003474141544337146992973033400627082471179487257715678520814941574587401098806450033421166340798119834151446809727114869280451456337651241119857119455116824678168006614088067684822855082644797462635126346737297149354939393170185649804481916150725421747047022856704641728562835913545430447839567253010291717705548133744584697958108647948026670533161690935970214195998609268556680380211241776507576511585027312045935999216406077042129053882362013196330745444846289468018297267660393703937773515761267103669141555099202033576467083573678515581479233560930955559561392378764011881424472201640086628046924697751455720986269273016089699181528452289568691397991925788284625581677716395548756827360654907934945782813803734183387752005185719656008439049547857663900357049408943378505592807046486923399513011349524124255264096456432929253803692828736145923165483662339312657653581671612104770776700083897828571841188657884037922181807789247263828666986326080512374116355165044674854530152188843174518395490990855124024902012898212159354518231606695071256837150360816247347540513316270097089872288571168595276657961323574895881243627313995036965497186827244523821983808808396231950514892140898878744008366847778121330120924247468234436010449166151620060978721055175161369912015393942940402671892440073868071397855722613328842431457777340306863205676568400064534524105882958464203597951232477541222585204902120028557254292283294202085000565046612460063491203221212962307754341825873586291032854064250721896985830161397105593282559961690731983150014055968116057403564649306031210702065779604166932266455926673260164498282526162948810229193151742093018145719982551290266347552409170032049991417179298619975024277152918959076513212885742205000554177301600050732873668267302037986014633653494479547804701062566408799158694720097604225906921805680361780508576998315443006379635486475909697806489096215041860623414216800422307109279197709547824589272023827954184710827930722276735318338143224444569551701479672920002738386273202466655248454195146589882084168407871697601417756373784088141718397439445001700221552723557430912454176035587835016954767782052905542087744958976578842913017860007645173344265948388900890448234631991709045386409094598044409292807163516339816226079142828222147138702958215724922067228959900518288755664811997357554502184579836361209878220824247871218215334649250751988209225811225884418240902138403816428198373512378627502848943693610302184968415273433411981691208359336816947142291195298705093638097943059485908237268404399673693510449150678416963863113772603303956570828456906537015014961944940936444240080348131713061217476414490183070062099643348930090106574541502798779003206010443012674913832236299827874776271922779487364684193254573421264230831539022575079041098816959330098151358779797618708403016748693635226375786725292074213545554662543552212790991520735211385565614119253427217846650741164438659340891351992748327121638471463595373488317726227973721697297402480567851942432986403454968193159742398964922166876394570187629764807963551859086770103180716404517821328446822951616297682343230799025511729700259901643716265468165843272004734723015509144177957388286758239132899006639308166707168703837473360152270788700863239294127540843303797455654385248197157792065329432296183406981916744309311124827087362753149465591251215542449072688595176278732451745325690914012824786295836458198733997484177640462666011991542795798345438743403139670986783081574254158461919287859736913965423524087397444986399800137440095738641172127239135212061781462349123887609551390471711915157035469214679157882767406319218629647902877203418611921187073027960874859692339998495372789439533168551570041523645754335447365233579612213051224755083764180746995549727027712839969702689576891795074131858328018189495858131719202468328916772947545124238892288124629154310947237406555367269298159207686121829379454517455626769401881054371336232468123824012057502833140636873100238982905741144222585878332921698037602001927794832996645850178300739750061865902968561077703024733681301898812309724691379738049688390522612143550469057949680113536436034537560252627339171702252073286716131417117366760910859717848366194592759962640957276185897746999273608285771852066859733007850207012323374355001180206010890431825925576729462993944785667296668418171202074663270425931264836453061041297482193390159986309410035284169983363892333710305163779935744087265451552136571623564561294053707388211695444440808185640789384264725819250367792010232815684874736707020421677671133304916402490709436392346115928317492286618906583698927724090447588744549300645219789339894670476445973748126363575789992651097797067575358458106766264028107356472910657325832060898464611044913711655837097680888781827701053243093951109671286287349114549815536866469189297056013498938236049975603535675122665393786196735877322762156511804021845952682220286607498568988120730853713764077447570122607490938675142272296116491417465339931890649941096219819300600540441135764711716519821668365000358798134195435688902263928131328221687930639403680281971357359795394677003030431472975374391822969440923669017618570917765302008249063122968933118303211085026963918767616032690559915720278034131118422356024120989187852321070873815041954428633751662345779985720795189663796635105670097758837731296856325140542174086344364225244454477598360806649236844967174024645490446044497682665886278856461263029802137144988187197787264169269766501871375386966329389744380691198732575270242695751955786351966790938463517702154935316181676423412251193740261587963581604431247202257659110512740866219319913478863746814001161654559045471906309406557406670571100967016206279745530391193076623622225979676868882568979977986345597940600301758241834885694066845109235193415661803315383973212922470196855619408360038944825983399601780807332770447907161428079309792631913977826260852055942018748840546405170082321071864952544516995785551256531942210058061361973829273666532647008875916621426673179046607969546346331699033975848788528157194393206577857391810534866295137806856571347340895411338101079012495788091366126494327579151974488794853767941854648078689010024058008802812506488198975272079620533871952527874813193395899211949224015359057260597988121574859612752192996163892562510600083924928920166806650705813319641231230020636890241401849297449475728098246537935214885562070861231401645221598429217310422791525620700694570244063248977721697494012150078829467138581821284395860774597654769825010817080150600927131141436407511063431399649639089715184200421043491251560614786025374529844601238313941126207212061176220900346408590590256049090749649049434803076811804301885835106047402986721857682552970462773679923115468227466932591028345456196132067096738606717707768328442079666079371514886918629883253167206977494258722905399720811831740698153866870141416321044152147097427540843969107835068149609064206618929648600871418127609488832757445216715083226640675172952836148644651107877842243064033980170430199416980292122871121551698024820103952705624026051534932179704556082855799602664556346433162450926461362074998440500478859328249809674265372129985317004595373300543678439964373141591798110046332846495515919085883022594248671379641282979826453838358098390841011676369783271765143227813794046338358462262727455434792458388743408175178138322222008002792811452104924301625295654315034173162914634715728919998502562837178606708975532346285870155868246658542912368815351767316376344163144302733467884477376811977132362709353378067691579602149982207940661355711328080445338971715958323941855852409439041767181849127237682819770376489442730493682073005450717890028745063013223063851539904680257752267266880880798056591714462639581472416504401482981588459814044407595234118490841272669685571629016100538587384433275320808480873555779476941213671916659582274211574865813602241426290030662820992037572324498923453823312862661375978652432289784915704034542718518248768040421320463971393663746448052898920877554264518728135653963091144869162977313901460385696736714566951496771857315775073865116644062831192771331935370242877455852206309611529651669899995603391416927182471565139683486746386255832964687938832165216844572369939384031124980350615879959629030521743672627190081189053437066586070637600958308412133801573285995463584785149015796180582007290949163494526226908942699634459236570898031068351801256820841362387134788610823546753225287716466863810127389630369443507357187733872259354039082681093742366849312665296746274530449193728900496682966325200332949483941274809220225102197515377837198918421529901935747134650910048107888703113301955220212286848440937466069715929628103814356503272827296223121322727105965734354787747389345608271446364498038792927187797343466487037720712891590133766691033259145314555608543134241660855792052413164290079971097105508187994269667844720286028236851410207570302213113506766849109395746995260916010239003146260619810759894514740149183173113842798484603847630263069760661868364814310691840206002290501871813714158508750298516293835764779021670189875719731036198083765717661152415786756365379234282311397853779880408444442327858867606200283328319569703611820581634808698981742798355113202722166554074015680502504085881127534434504790874183777614246660287381217859775321327234833986345509697835849164780134189158137122940257618550796485559481803224956341985101523557440389869955837571020945869335037545765821347298298524747766917903856573224507375141849786882273545899729899067222146320013929685318474087486852765472947686560601527464634375250586563401509523005177557540026524408334938429379207731865273076463254213875789986636935894519022147964893910020356601072552608780014474229764959077561260968878406199884946396300637500379266828705688757499531899674330556185757158288969005800636986718387740909880766703042306082786489480212949495984435678641330817096375014034432530663348227976677674297341121982913693375083113322601914617473079775943506299628453780471369767916503766456926797685653695421874640711987825072467369689088065361408379272196279968965013502799445023600404242846766313061979883906783422438247164858212526503680628240095494899259236740618206068390765357621263576941188911297835371104712711963941219089507814674689179889800208328686562514034125336785097791935826623421056563981143838600407093891635523082025522923282526878634073495787769160323225614860687643403315063540933469233901856542746136444558841138045876343266462810399790358499497375306269756055767023722788160628266007508047548724199968595954360490901721752460747314606259801064386682420583619415140489097609271457808750127343228857605932876886104114124483534588189424252771164917247450439315992292527724713318422543772986306887541522249772308791574390372266930398453916951038676090255918101234678962951142832429420691482249993625121832790815328552866878257961340658642615431590467855845914812974762871966972257518874313991512531595972709226681105583438885260632116621741329777233101694663956662873913069195166383683843506271731820936934910115408216638775500516917932796889346647833572816105998975594926782086006285745156820312343899117710225286823939005366611209715184841100028929507441860613284686433063417320922855811433225766801484601347777814653562464185040233842263923489356383620934261285455259084016649807670393345384650971521072478266684683540254506958893867862134649001293944837021463497698870528829948302921994438698541667088637611596006543226273087593465891516102505588214643326203345001698276298442402870406575549144202414678175620756089133300446698314335620446781593232500580733957872058207526107136258021870153492635143570947548614368784110685274827674425524280130481248706255070249400242678958066088691296388829086174741932184894483269872420293035468845923089753475699593235148214819213395171543062740561165334802712615246047493287170575331876576425347611653462877610051832451646423809017441162587319491776952356711025617542587422526958940156942759880824085941746685329002402173823400991208843648294817145172497778575141945496845670436255601904939359865726023510552454876161664162385282978206991527817224445835770159526753230650699304237938149197013400680323217112900147252720067991866792246175343537346283062046233403131618103451891574229459792711939840407210535778798487691943228012465876493019197816211274011413409018120095579468653068585227980334505239397869940740070386583983833501890835299726717706074969530453547722209016034739533741872819612001893926322814347004155325377806075972098971780317134540459085400742251523552232139642096605519425914578632783991069515840227491690765616912734573685461054202316714797787835646068489800387697758856075044004044152670234568957478916445006377800053182821161765776995373869161293556219080292422172575370637507859929968606247362361235355159617979204409909068675936023784796757184742711639604037709754963368999431056095158732059396540063664506395585854404407253235611041060893242160412279575333731915619119597164282804417008348351037702743652744556232993408375075943650513071339347364951734770860011687694806692986566087565580667556115658917404578217001981925605951263176721111799263020275182956741319153936886708820183084817562023988711414409179344086014373731104309242610964630965991156710978877004292538228377083895288359452913609315089892854208363501931074131109847847924600900958553959797804793471710830932206649856043998485642591827659771266157867655997025113103622591336050187267388200547194349962041580043024808900601272949790118786077861009627138624006101446549345519391911030653471521587857050864334744752437439533098933111621704509260410360290581950534391564905980760922499459720413780217600848957476294898896519574494568367357588207267933884960642644611010759184436541112280052210763015060808552331449676157063850464363028688295110389840183336320937953831763658969374854627425693557883685736493275808689328458656514285443828843295314593239055004461288952605814179875367241022794079128693827421403045172887378760272025745321980926808039476536423412216136844260163523078820086928572518209692857844198248969324055593559504061743477943920033111374797889935686241535203663953653815075538856327908617776224032198656714791130998265253894447947719692638226841433398870772372261739656519617381797759659484060976004957793421670013907368757872338459466331902768708025827352467136174678346814914837619802658296993980763632384046629847669640955798032038345360592402328916067504717845304678468899765361548414160240220033480610822166841464765245290459361236701518187445826161792582589544289161816650442545815737092291240672729908458422418558391965052378925751632201210093782689183306927315402976824414532615628265511440833009239508210890855169940555903930432971429797648227361057179460762454861784574219364322931788095438597399842864966164302966231203886509667861622710957029512651283726652458957629559706587566534276197782349847731170364151549033781393426276000770657493110125237231304743146013080708600638135079282973498733785674351119897019027469280490588241916189735004114788563509411915019981077770954650219932839258598676947337050829189346751581723382255919274941714103075866372827694559295313654767668710759540509664480634324765208704058183766932087270908245658312887210590400187642725627826989490719655164500901098843351072934177642774832989679643068822165320644076981736703362687645527233382055637581767217159605039370829313806388605759087725632804372646570463671100347945853530371289586444213497523795425232329709658868875677189860947909934830733788634751498454901249435579818920631794730932397586106819525697749693222766925134947306912777776644402571890394612496728435100277444848148658717313631971961893258724613896276665227982858080141007555575296871789520174349333294778227745023106527555843131736666772119570408832714243509254808627550927630309855279742170427005432279770153497743725416191183226371097005813934081919530561950576507165249600922257759324772028815388641627408141354202551449791750764260769566927799765197968990330118046943438416531266114850618573211247711017097040644970726779613080004456400208337244609727746280885494935835049037115661888466747440259653793885739450472566594413201697436747073522366158006884645083942768088925751140833499558838432248053694452709211703610848552993176108812462721402868912855846138036315673080764553659118155430104378850608112819224847347398405638795633420688803287556632299745906913675755235005545219988762922730091082905210839225592164210092548672054845663863822835129668539620058151760676040926575302860498608046617865897339967691165198451867733844424904945008714527521734637138907759723416853898532686356024487525075109227831356710355164427958867521368677051797315734752504425407884393267223946838243110323490360248655620577382383390392963811563353845585709907531878577905673828968052236036444063031423399410094002532763666092717010389075921307753895342710780458966142570858133085239705670664148790053137684546028359389065450785077699535224092477063679305546326917494921610705560339381658430869704368301152643437220405951743745031569146424769785290972863798701002406519035693000665971357179523211081057992201702607579343874619121422755831715350585516297803491595978253886044685241793036301549821093209129642638897773750918353971522960805596614604029530621988618489212134719075374376932938029400735962449221013992441763634799557061728798281401602684892427375740026497711047386190676432463570458094829370057553473028577260432393661373901176048579593699368855796393575035557017168429738744488058381796479445451851088784991262935968247262449327524986969535779858370149300215925843789203348818997603807793894464375051542438578611830422148986895653553953116194583497442725422200121056525986457363313683833646400580100727267723099212486369591663658146740919144267202660435090128665019810879318850596148215322635254773815913449217403613603155321233098853873972711536032964723843826571833913948978777123184767728618268620762279528775198324256181256230651527071227785296140051489376250148711672489370989061674248405210745054453017929504969670257761457300410296411469582391804788072897498978832424079238419662798991769878171422869184060475651875945218239523905479418346731766709297302090547415472108119584746329973809264622712227463333833252396990635670726967914456560880305428532474935881663494428476653077778075679413266897101603947502188321803018268788459293690886296213680903562270671108985080451526199288054871401771307618976469325569111216254580542158459198413835078958443326034308602962966106956502663136917071053442245580285695600691221694196395438763369486976900782532071084716141011449857490970022091301069244821860400106158613012368389758000935350110704062197264229933975264985768308598688474022412192929830365364438113161368951313454054106973208418427026622665318789723888395961619091872639615595685485815680431034693264120668896120146867005190970875124727986703809409145769949194095252713587041873663629291371820561004014929785478517523489452368393965432011609269097723535140470998427801254251436634890151326093317412339855896026701094292703369256853971625568207947832449208747079268805353382333321751167450594042042278898314617968525640525197830617398761427918871604059310250227107177926952026354466864250605576990820740330463401063231202158828632938956572670581690913311975573827535352591226669941493542470199719436071130024940141843200465169606347643620170494607213920691835412756003000946318688318848901711679340486910854328893460300257768345554363056979030555152979767354167221860118123815940068699054076349145395350536692259841375663092001683453975775379530849179571490003130517605354149700102673504997316936001462924439724004731163013765015277222711665464909203971532130635619594591011584470127318212729180060426982390206514799716668955871668877040103254555473549653617815191068831406096165701876023758799072081739563402122230697790628900322006997170721051513567253725624574909700576457145996463551985670557651897123892077186641200199687471889611769540235741326659249347364389372480446239784241032524813139411621241546009354799978069308700769927724045469571691159930398638967399636544673461251329783951537532583286486893232891018606233364423659743815278423086807897110231661769287163423877521815541507413113540918248085935658806439643805612684949775053990462383097619608732148911259633758949688808866723931675888836731644638727829488210228995805923180485053975788829244098126232837760640193619859122737660610827778090053251341519491325967479852254951198002916697841765528433581456041195742952255487316712961741921475188743728954473027597734131563183620802913636341088830138497320925449188967583228061356969984869119818086980917921360663622035178680210487408832427679514087218790430907855977880319154706201947531339895018941845868647762416723449568513476222331401266342673099088684363292440342746274818314950496742480584931717762907099863042868332385059957961013203342481809786582412022072424939912463970625065904273498574300901225358665249802832551172864168498414476186556845263497250765093407815197009564590194197451416877100906465285909412733287136589761286451899361625113120244917968259571405199773883543950768128870914397806393837409400003697828669795170207469779176668885352560935737280972958503135801489321086958420696992144844086887652350591784337550417109877902795217460155753387172285432160503959658569883210135203748984102775082612493787956036704945327103564167886226113436384148267843889262233565305264634668808225750347692256260049606395915029267064450884490183524246737271684063382412531098223981212882007031369538071274631984093984907412157047807108064021352834927569052766327281793801251004073670588126355870928481603228811168613736536259251381182671850292640597235836975608449075538064849061269316621222604312514886511354504739205086112104258776271946518186028931322617067588235100881129884603420138913326083348333601476169725898416137905860344852261986862066914047337826634529776374254653846479035535781602964652376014005083618173719564572323835443629102885547875171360598879696548576084482949762173192180402060529970649486700303818425925690822450079789582664431187192501935829068929833019778444215594106794607727376601493732428296289397024998019125474892813697531813489746365135742941268411176788263210084566340673967714433185287278941414145131211885057019378219407644000159558819792253142481863059312311994788378166227286573864570835142947941301583237224870672681279573419308670898920239411386437755028227897706973702300955726075311750684283960077381480479612701474844372213757973757121219481183928564039845570231942273756572135840881241764308017233458228769807959617479139529167923735212246512841108204024567711546451428541340088081699720883654239752571065522124671721365619881080408109013195778054707189019659611807793402892898570126296476167664997226352526426023063531717519465638978722574511201425468401014115252275727678261384989219503435021213096636962019577023462999205250097771961174561754016406119833056308575921791966163127531035000103839567207424334407554148871992234467951033892711232947667500115260373391702529761701728583191020228329116222888059241376299469720516140102965220459761951366447167404770159366118674923098306044124331646075027295756514105852243653758547997853390749594109166226888923627670306355093191460994367412022226494931445696805448062473150971452349865130941413354578264210887933482166637045159780306662468804936145445838137155328416282556385591381821609112686143906217655181116453681504761926909513340615317226362674895617672434864360532011547898896771054575600822013866467169182248118319032127169622831512878734631774182769412696474415011949039315869473862977235052610285227470541313723147132636520696560718134077217343378380045370869560098474632963943978208039411758337070097896689802178262119339706857943206446603983314729640473527466706846617521099537305994617087905163324407088527004017349054327006008965079250374753065077578714019203820570768631751937024527028117731655430026492355347680557366913656894597593169849457891434464765416502992146086248147182158826664913265263491928570935158854493338413648573309192315265051760479653360024528349835158060588729231208818747692389927559101220317787573603006784128366866343136612806062725582358194784664104077098421414139031908556495099247574214280632485090062493316389545266371768351956148224174310006157552149884155349376848241431503536294153766056371702732114039376032148225911945570655611208819701183352864575070746573226488561438404243643734197814320585010492223413085887020575796514659753492559881232620979819362031704769924963760684699316876452048309143673146152480407996482774925077685010004056924981005003761926313305619885374370446682400992263722397612892162644346166533524773067747175280113388104565961605358573332334109676218608875297011532317432768777049537114917186714102512750476101137141622079918549557900187859510771662722686501453144462712217865552573335937156884667587012816665875704187076110274175259110185789044752060489461081402788325809396837627673273090152532697177125242286532699279070813260563772924318061970191577745111769507757500912539703420663047395238418011266040608843897648125808049399640342529264924847876596524436640381673669022100861113123016064190447089254535047131219428269432798691735431476925554548755408621939256308942012653208758922251434426734646317124703242344807309420178162575351184300846167026962453299418261680285441210882263657763654987195390903773945937713401788303614084701295132552861453831467500390066724853395886941974557101504763615658287776410456464448355365082902178183791090416754640113665747740514281495831405539250675493265998861064746955828033422166770715575348196862102729128391255826935770363503287302850457770221468246717415581217807633325163253284380895390467990058448639772878258074248929745294244662105969462264917950286949824374934822461180090871922039790389168662528594024772735081976585488793600243522213010924891438615976653721778863177908720105146772063495182989348759378314530956798748304901601088566529025759627442479155909361687847481450716643285656911125087780831858605559373662690575356016361175196213470540036973309267604626288383595513445903010237913567731229386242000442528691783990516133528293085306498077574825271585524088480385311800726159682633729562394838057905125337446685372870500392843712666149697432855864579764937816641508688683865218821322579446157846000637288904919692525148340299012249868649122170708603390812789158362208164075012152520568939152459252612357089837429212573007660028870737525417307777028099327582432793644884840125621347849068611656728325373102431324589851993963505086436325912467887110179011350852268734608656706769793377248837336354612445388767108311978962305435305907615467543822575079961138160805776856643527902925369305863968881740847432796051555399421535735875520781296753772592071157185135579319694588283466953402823950002373168837925420048257291638345878664744516381763995834498175446228833566579595019146228621358889412206512551770820755873708981422631501224028219882275743692585023936522142379052837556156466853121645708722299569322893083206594803837753887460962592021071489924027915407844062711850482809307810774695183646419035934033397730179190087614678367517693606252322046961502065649979705962423577765667609873488386524967536124231730145007757480659719972844899893701820378835446762943717332464973713180744511859155849331896200598523296400125581591658648296749794590175921203413324137118811565534568478945583877130483917293493765107441955715798031283788311610152593268988743081964967346400558174963527836243913353222787899507161637189549350710809376477838223638002296517004295595773373196790966642283809584984237920170076721812003179472140292137164418303021088547621514014724904979162371928363978262972091641086510501078377916411538484277120856475808413252446417963464070456845393662177548790434213601035854194326933777329728338147592232651663598639246356575326170395348514663458150129464649514499747990877034410746551353013350718418990630775123787141827844622061782654234478947729134987558030122532488210509335000055780356898179926856131534450850712990183163456711752431284954640322426529223330145960163555423287377993354331582915368035823097460940842148349968121856970692544924593671127176785079553568397975068961599707595370470283513836261724003575710611096779054585959376495710428225299359953579855529446829606247214027190665817168132017828660792977628190295917621418554152796340677951258733781197468956944669137476838866784074000627982208810683697017581973812071619471108088506142961998013458613709532966648246093831695095409416123929843232317472689447733796537047035345397717644805082830005842143428792704956317464353837957396490432324846304446586638165163758056895445323104855735623415055669328829381236835880355172091791254566681017606814972111525562639850232952619907716974691389172491070163431806127411027616317898041945057459827797460126805438643777215875526688145073018729882961267341958639153157715047981702355719709279152859524205254682787588513129524899743427316910276739560706859758779212426535574205669154653686076920685182121087953240406908200979128535936177035469461071048894967714743215304169572244075890564887028025636300216414236994812925753877326820171038615908902645370672572552525305966854569247692026302780197983174923368845254737913927397972750724812161121328362196167993265226809984075483284492764662996856075911743948228375116262158773743361839294782416598004970985369713214703517458814902587046724835894197976112619692237313983815266748349514858578461349888153345304182070044694293632485170494195605914596568754991705768548622473469956764828763413575853994314989034171410984654479321554669348898283904093805333127488898702116443711612989992475531348707711077477629487563358642953758807147991352130506890765713999929200380814819512009642519042462215191145163804669926094781133926048187671688574022012921545385879721051884478838245515960353310617763454785670354334915960280482367057859854751618450254244213372585035381715707962204825300277980925930677423829597385831447237247601223653614837118768540062833253770969724095261468304999126017383709386674190016147765499451586897724057005857320196407375325085029241099019484224256954626907603366101281233647066461643145215708173608297400611311889607457678428571069141188435189883369017410710542958698074972391891982463103841616932469385157292348873789965872886889632000831183360203184158872345594430908363558528055138474284500656677119593122564434390869606323864782486205302601526696359142031470665346052049266511543112751016186764583354142436711174060683947032614321888975864466809553923905265782616631334915809288352040903726369522563943478061592601775808921157602187627935775764060066290115162127307075061544228452375988300782768906479384591521565758703526249008872846460296714510866743661280325608008791958259415954096470143213889491803532970374265208037852503688501764122819797090627391512245358426125675737504836687459450396964589718357384215963275141905258854403690181463691883665080697524234846563074922756998073156928635519647423831957414805553794610482938399054747393471688867070412057884108477094666164846992072425926270771149159554905382226445752714771361063787561415300132812393196303510831409597562039355430250201325862438984734535663217705536911941153032294578332907755706370210523534749121477992070662661179663728280062647695098515081036074779720884433732161077486223585074768763140899218279322699759457862079129671055880379784993841408430654652664085389860473557423194968943820311860691562805814219345480419513553835369662755021618563392531926982115525144571748399900214044077923806862412480598182428173989181971350605190055572561704273955005449167055814326869263181372167433056610685175992355319839243371466903623700512181279071824655440248972042074117674642495955291887567123165316504439274401713779479430153959430027629410525203899536873507110695877273859899047210067970773256468680521750913604178521133809173267781860548727428879168131519922155192038228285362058961263178069493091729785062427432558387093943509220229132248814319174483375547748164128395571686617260256297402766307560439513559697782175338899823123438468337873766489464063273413496271156897447588351205312716845298408243135788618948048707003002110959354301192619331823835436312298940525666855143337405687034558254881917069647380687131744979175107852220837223442269737194381975311557077945682061466734314002940581759120456531057105565227328393693369866044666216863010826943349085902138300833208942642325692213598986333890259400221544919527238923407813896369539451925429238029649679080779915465158519723841256518247321081627163043910680392374878567307903357623499472374669612604478766856347652500663516634819038472418275333246534107028296300939291272946019813511455927119173692989547905027428669377048392787460685042717317443781888426750914746569574905442040042568006322026238404386662003268849746465947045182081200609685744693160612693623313571171898849018046336887567119853193254757674677939012624780648781281138664884983304531625864032924413704988993512928932394726530608342267733261014721124244248910211453152060500348325732081239520563732940262534000834814160935658177766295640152844218091319251103166657572049996613727282514890935009303849253272444975154244049449162716099370549604594362861448700892970123045132713489179820736526434233722861804568662571639134905235515726404690898402304595232073709861195686797467452906013529428777841657898938544829635092902924381482589050405236956162802322104557407692942185854877542119262024678341408781665645593138789559727707626046127103505422920505459796136333920603875970913254753376713961527387775561440642574826120144405047682660285902148321978028374789202204964794452002955573218549517274676177100243748392177470531436748783185256472608137185935764758607842304577205169798292098231532360254146164760534514005146715759392801978234816757524242158724844130782786994488333018200995341001690105199425112692115641186438355729783312485004088796552995551693767163889227227323688834576012222255093911413193004167068994716603265366085832142264479124882037173413344466500803508226147754363244564177052224417989376187607271592371223195572984555577096088973086448121611945496986835894825816315248063678873311609609575691693015355421357263640184652442392017147834610054768529070718368866501284672286003428442309989561046986582585946252415324513518211638945724316779164452134378009254213159266994067131959811354566356362460689218550455926574013949129532922396223092812407423303928174845271837608158269728269586575846133695500967169284874112025414240686119281233012829342356041283702186717123282595024121770330704040717259445152386887011115185389387302774174018330845207190870254987953005195720033065582378900322297989181503079065399776166063893844646408286952856091267928801184162187372134872720589358985095103282444786950355330445148546106845026647157268434468002802637473281065974274716097691871979937288883982311967058622309576475070738394569823463473201099397568225854726453852734970817319354554629613643814789882429372206092775478694044263796648086686449407208901431888294560669898384433665152489559296228585421596252492287204936598976938641672106484397576550155631306122844079400962897853618918637448643958367699887989545012975562342895547796455567348124553546893034121029103291815861016398729277234872998626985196876084847224286924131221238117316488915539394816480432904701236854445900639448339762946752837566888865967980851422287427681979715477624919149775520341092562912485441968370216393377193918125619587886809266513066511616759972491939414866509758542855895028271980391422516571651541697045838409671318460824407786285342837922784958908786045180069593988395730073769596852927080169741198421670899168327263068398561465026479224925836383244833742565329933113802526670649544372884369569932856020172165447860130719494992343468085551916207638725002575484063437092502450629082474548889859814502699980618671603395570398417420004589588230152303196006253006066475511890180439435690281197813393047830625142158808013560965658728779892963955682393127686239175018665973095172308656847961141886333691942140326370001412088338184280364142733849815488495263251953758662620389398805601401854312297412376116342589170054203532435970106134279743409725168341908783645304193023311354444473828668933017426818919833749931296813707611881772167654977188293399420804146506496502537485036495236658298902981621083779252242397109810457957127477929304668519897401608384057241991391633185655546973896451289156866347126407076342069410576909541780611475296775510517973658519291288551483844878725328797281681008699105764063042299084729003586228196374354607031089808026936192866326503799848150906479132089138114830779657144414582076262591810283145915538775993748724411253079246530848754268072524900035548025024421659201053488472139137263919164144392907549118650136044638871830746631159811118318145093524439019129499640559292818829916839224709685596536659644411671239048530698837973273874314230737476501280978401992455225974150512693867205409742608421123865857372481083175246785322994392624926290042353719097413407889045762079788050021678453821250560444224725724303444162506442142601631800157391313612148364392409083001389286185896527006707592159410880965335924857434209673739727235670320484521939295348162773700401993384264115878741499522846125752787793651416268738936960218339708177632684521088141154833611747974878949761134570967713718197090446683249784161199299949980220514753203256079868081382439276889806409042908996089573767173186261019037774093058951291783816706608907428227770092281988456955529818310984075910032057394256812316097988753786068616400917606964737866806588144814562658899559447330661246827150585852166587774502961380300394376900530777602126812750549125858425072836504002099073116381928711663080520816657644146769362287335452069240397438817772502143725092289468258328659736845987266387262523331112217963683512929574668016177470087883341682985986157404510206507164439080364730803378795283478443206172555221300361092123185991858915337608747401335833365771347354101184927046180585943524914873651431445044115428621172065268386679391989765500324379101972748776889743476413697571043568948700102116036626763006166776359725671906819129528408031922090249052785299080910958233047001694124202614344748650282096567861060712492595730570971558692579053130282133880258332020491494941527703830307962464881105367573714887638522903674200728550116830319476732023641038857881559058725193546925587181583504891550168667586434224514889816940312614567499984721813319469481665394318361289986987488971327685985898167054418223910880086144838795081666068144619509433246616895093774251898428280382751491822826913638739180887600848373704174570251416056512277550866171525387279630284809668673341446620167686405562078622719690105018696700597504052956117438759229989433204507236153501315636747489799789672115574837596990705279224336281688304112698312482273468873493083577983361174869092919472294419294717813016205816254967278311123531879379963346419126415773727555573998977143493980822137713294863586703883542375957889549721206283710296983203075148656347809861833243508825505363598158956873451793428828400570340467699622427277751321825695931861332141332400317463249773874649174882021815700447758316594149567989037342825190487218351886961843898108574710216240894120767251728802855588998432338122813550416045476990335230272115418441034666978316737080547991123482318794339251026859647897348472809936202391842926521402486390005171867762756432486404371856146833430570903155283840898683288964182720211190721128218239655725951640533019456265536740621354788491756990601211621727734110395932862469537815808283745588459480850431884850134289506450486456146498589167205905653867886604173588171003000727499185447077533853968396422033463694540776151538873219711748089241180415929037159035501541315373825262125016062929570882491845823055836844779608325716197890110237930783536357000368316806094154100947529070557183522802669240313291470445714447185357626418794237894224825348575264894473203533116267618004556097575320177086133739401911025897538974549376811289508086235843024760014695063990225738793887668697518837943508969704404827223966421575480645618076419972251269105324191378986487014765257829644479155481711083767014419510351124600672907357010756643931472269696373241448837212549444930816246928377373167481983904272854489069745695854905192625815594044335938294922057729972764089516316125560032405383777711760068898464320291303835455029260165525136766192897182611151803234384565551129607430827192433893365554788506456531762016358733594461385178148875840854809147595023427790689634406837125829521488802010987973705993922277435570989253499095940570592066049940996818232417727928182454225177648074159381292128003149968138851457782174801100490916767464399069952638704176226337418391594222066312413409626535634878016823749999939799389992427895950926065387376036254394500886652624043983312711928708974394072264514027775339874520852959508403514159119562038699073491578765426999033390577927896915949767358192510042122089038517844841631632848747691964085094017010131729979061109965279308881788167603738211894072047138226865399610730148340596985382320977809204614622183892906679157884946308569165874620737926780041587287338185477332500718318348082514213693890851828959195633421202306195942027740771679739814892271537455180824829791279318429175289657601763960070647038128608537993283615574815392006869767671873521412394797846905521211862663319604765482085987446963434886063703846014017143794130712763838032810469786615930768387558010330614548692513125966884148456406912692462669254795443696373485665234190127202288021636919783008066437969438158387352458766022288952541470198052296152594354337150284194051138772317323304085116243644131345572588846156409336780949461967522339341259320771730214431843090569214864771227215033224360386517244847810854208389229143774204552564873692903642105467896218563049962023784440506705226728766713006934370663239265505351208152550324002506163783209341483419177575703881713135879894860498957680969606693571030507136788540157970296799315775385951947450775059359698769715255341695992671330480460437928501938173711268722366143055739424072544060056946386940641897412858375373854527656382072153149544362267225192673611958526983046808586100452254809505197229569206967978658584994867780665971719930948030132599638172685881198459674059651191370510155437152858206213543855073183081443092026447385537863102104248944509560108454338245672165298352453422862206673233595692544446068493980337106094675020163486395223824182894329895970169587177374566103381648937729515248793811765047670315482610235618219343631087969676401497167450731836625604085960132411205596465002791307284597786316971801020658222924838794328193424438539948140069533905137637228459967716816929064916183940824072789707031687325890623362329189580222447419518996968834568014565720831936130217534938111683268301941522630610024442115138392746331841485222879297780872017165400233560867881053114345208402034752744016961547141245576027074445777815327857172005952826998842929938118385952176415393786092085433219114433099022880518346920503778664542450358161085535782724007691603177347055046332503533701431268552602330378830715825635504786432866619774255154900310891750296772396097735037840361012489032158422694621184500082915365450866085785716007450248319408813544374366148056738355492803460075908109627403706692095717656352340396918285216903723723519056224712867197556630202589351639109249734942032430395826659903705154142826256413831763647608738449626866592359396599684344915221900514693367152585818577427910164578235766613901649054840212634130198177772837063504592915609151874133167129070180838713890067971040286785112024741125799995123175524193905173120149719244056246670384439926730432465436822992510378373899767171618140896739252005545492272290704654631013088028268183746329138359353258123660349564128358773326122684795205461583404679559673546377792970069574242998577749124985144811707804154456054229434645773913789062449850173158491332060887669915572411762835402727779960868994070223178312725962567775670877527933509725460536337577274605797471258727235223617096866253285907256635865463424849851170410734633629895123670802976329261638465757381711524173487025823457622689592204998803193001049826740924441562631265577261781787093716423052667288387852304685400805717929826404362551097093525512009373873250014793881566403136269746889000936280912481915946303740117828893213031704968968496577790022416590012607195878763447330467460549202401257044476924945906740687681895518728959034051334380346499722056069792063751865259381676662432482194078060667576468596853931728422563745639787473822973814696496138695329934819867238725567630192515410996487246174682130243073306856385301987667169910201606069596940759770997054472134106867070755323365328848390920855191518512997527311555631538865077618923464258343868658076533781925158751836427981687330723655146033206268465813753675357686548210016807752049884644416553143171564028262615497266148490092500073662898358237170472861148696524426201669471498801065543492556270322077744330815226417151710409510021663943543238006678810159124161266657155534950085079461719765286301318599836114440774161466438326284730682549779585528774529606492908170662787174139175846431177415504750936667020760806289005959098225923141640242149074341126518061149675585115603773983551450307534795704597545817413907057415314964746367904004776527345793603457418699643468144542883398200319995780922760146245876356566103692336232780797382756125285804526725359069246069731909958253538550675180426660620510697134783972699042737553684941368400216136047824877937388410532576793086139893481790252838185347044835183800836083686525036790505181368189949253872376072442601642629613857137281143553215863980300300959149165900769104130290970010262694870021308034111740402125622977417961623414703431798213647804051960975050525550425918062276535049008284574547131663650879173462708686172173438335367652243380851145016856356024379523800268762058430851545390867783645132720695526736332356384361881754895375026807219382679832214436299827895771308185975731172428083222134867087218459351166649508781557334960242372035184457178998890288436960105560617755200629070414887716109381647397613813774632236699488232913356824662413088092917169390318016753010800934518258918021837970596678655450049641557110743298368337570341514030061010045561448143500342440118897812595558754726929117202557144231888422846043868456820264892362878510646896436079463604255200234870846588661292532639858692441657547272040332203013310875913520534754318691101427825232339081611598203514396797007551475970394044415880768601534144366370064394249515983659686109636142503263548847398088621618127655339181560384194449324574444448545183336518146064534748275577454448121572891126209174727446054159973469720919725543821131171433133355891522440205748103046234806249488081281691382180571350120253034833216711677462878947177935238617237828485857834173279685054299736451470772438080084264601083736194483218063619600480463974097145157747906501983193276375835715581217987402870499578059946159335893400159260447322721647451849064412813137896088083475927469949797479360338212718961380075340557532126051909394128135222627490814530444369313740628911941353352755390306044871101014053825703127205511816967419207118121022073035722157771839561191604013951211155632174535801043253195678201128527405702004074381070335230018351776115857647780791948379472640410060751275655685380462163573301102625030710252966841134724162139303226947420253893958284291566886719640405499713180214006644272388394533594019154111394425175348858952187478685059185933331063010948173470131857950009797622010489785060565101424157193441815144157912838376026122145702919285023537873727291367735767231077253530242623899573087071455321195049073951730909946120259899132540115038566640334184068828674147090538563672606333461029011916651067496692093975802590870802531188304266810188218390397286057055061566167529732882179627276608922974241677262050187117494325568701355867129612041932019742137039240540805455953767770825803029916877631028944226871239077266926372681867819545867325338520975562017050247752947613140456976524076831891370113199699741476041467401113424828218972343546895010858398912102196503361189563726350932551717400089202313143988676806917887898438196858194786126051732409502304359374273842439046175361245589523357443819188640096430848098884403837979292352955946778256759848655592768145354073638844781790400426064419547608950559032133335967397773003789488702702516766083936236109947545203901520975022372884498408408024582718289509981247368540802556086970526762196075683484428204382681676433807799039349647862534459178426727740852436070206139524733244469357139164020994398115614535027320326374761735571020915204029395109175993235329098009397941454811853907904597251549903608278050172951770197589462865197247851758057466012195624236804973075000422482780115875010790172496246291623027003479022866915585986689019535848016634761329830959826252906573966455131064721380465931640774830189818349279879647215213975030618360991494175756309102199721515416249269763558209300513273587251302014946567249835234473182801673920695206414036874738861486317392292261738320852763888425878980223139264306499841997917339339601517627298279627192568388872989766699784153906233566981179294560271597931973498522456810390537267001841950690280722591827774546589980949113620193294047842392020421654714724718897278634271595399278552460353222578879873322609276053384261758187255774470411998422947938703133904936359757530570287912993787420549637088286307235169137140241819683308165971511121059643674327438328445036392307585248594257005504058047359528351047530913761281502074590624340266942302389449506974396617139739541111035868230487486739343943966214774743033887685512569541464754887144314890344490532605118953023324282043624956271666793829813438302850286994992695538358759600280610442590887701264586825721546571212760198698574389247768600853572095232203546212611681754801363805444134106899569439865589342453763528534094413540158115412051046245111882247165353604500646392765698398107305329989269498828343126621200338634252311977705929693067528186848780538397867666474972901126740270315212711862938002955685621964937588187333240649199189606921159974733087280156328624173640342528665495746228365493422853841485414664795424693290225845647098696353319791259888373696977060352708251783596891080162064283064345020301307810758851903966772639869297174465002185849811212935787257812226701633139835515676081865276268798043325241480732255942310269046639828117283440521919611313991847244214294368251374347421068924842673066400141463175175502343872320364826384666119255607122073993849167302892114740826201104700543143828260382566610999718695686309481824044763816961854052132537079745152187868344191976324945472828934932516304726445853014235933901117932887718893916703927242418201491333844033843768434763120522171165497666863231950417237372268651603696903663101003870956512379676563222013165546142577124814590566467983224221844264255254444844519003584059241716706040638339812957557356792531452468940825608533319191077988743657486751291787032754007776617153897988536448326947376020711973677906754546641054074958112421791493111393881414479712373512124216480950582130134202313216677351721574806773089743097093478192571017658644441362436639221140933753578162467775792069269371632156778580636310271045357793889944569305081897392621841164288642600222861719032363066696400739652603589473223437168168718152193439497603440909037118019298142444717681337483940809076352172547599751849217864806645973633986014503514135160388285765316951917893031568568294938759952670738595738898851557472188543629375465173621432465113384474576269318082131394012067151176888341899908937916352458422028565106684709207848251637387564447055848590803006580707014188736237201702486716257257543190607827205497884119982724136904801563465644163486013511347668678148706625207211835283373873020652388079999912214390179411795032496702192583035772273784316599832553793582074600356408636328542833320763884072865817314437177805617340127299678988830953370564827671586560478234596785233011786142066721366178016686883243749028001230002638441200463734326202632279681946648042432329586920402342434137721463170862185242832088346687959426033664471079663707649224735037936271418552128348455908902343626001926538557514999344152003868796370900398427746332095594495298104444133273680615040532428592347010841249121285395145540284750030908173007984509720404324350373061709445173618487917457618457893601309478907499513586559894393955267131994940765419481530061278408428664487746259098493864202618660423622942871438891320828393883806610197138936054732467549693683035213610890935261901834697193342996431995007924818766708753390999954282650173732846386724165616575692987415192369693352339895237073539786236660057145558346276288874638391054142457691934400959674512265193198123463082697065677513644183849137288675701509783599458074717337944309352642078546829131148127752747140335138551160795283126850040028623744872371332585640931161554476505583444366338027762708779142296718321505854471790631679215935187482161493825092635656386641381299141473750473873680022599447278521964426239954464255875363138132627201128303368653896223869067412859832024747341123966093977873430394522793533396762612650228108974771745625034554459231073707578897662642669163153623012362216810960321956973814699427800609380505569873716093757613512584424716195220438764441554544952857101892980811832593822018165614946988968690465955812064458907448442593198813817209361994139372137489387625008231886889640503777710721388682105124752057702230972465101828975484880412957162564446122154306875300469705792708403268148983321163804018253252981112791245932173596086409185130279136903959356762156835885798837558164307419649347968111917625152059007680179868648352426552840648947085544119499947194628630435496021918187081057498460330253145582598968887143646239488893652804286826159889550310927637157307460133351919634943932752647281639878006017706806193670339455812962777302883488778824925531590686754953329745622047713966343624829076385661943795977697734635818009040071720535362260155399539220393850830222629446152738376369610317744416406162183343900573124366950300085747318315033793415386553035080239059245864516224499050931182500756383344083409238178806706746032572077443003081292685840436952964442744367104645112247736843841228298000857103933006868001306880820791292498228539412734994650795274848229531014073143754560832677391784443336217798603292949906182882420091207002169247687610121365743109804828205649510175469824734741364804843966203450501635813163230220963620932054337608757237131105385215314432383968561678973523459967930638466804983052468795998001042273773923865918522322131150393566521207380624397791622126488126167819939165786871071272991076195144131012736133541150167343130741404428760321541292014977855831212335625910260538821159281760211914545688643625039952190214074438185731183266728687263084036129629949681023704675181375843348933282255323445156331702739751936281647695257545070118992080272321754401843761132553859494709801601290568866299602410666991863009403152689632779119908477378121759669635494389631980573063071499966714965691816242526780914133833262133922881126088801618478508466590657274786398870588265074813383101302643818897798489949976003826337326231498871883196662844784157905775299358866088476255243500025952930305494081666985007039567184649617552605024501662685484642888055923818916578693283337135807322037775150384123935624192201022247983122872317925616930936889675552955753514935835320595548409783670692238495287494133690048057503100933907959976130389547288847896765127644914253042878274224978543808343998003717750541203538798494548031445114204597862834548543874764047647280113119892407624640003128591666294145037526260450392832730742502663870109462825849442539921726668987065413659731984770423723651315294965361109130870195201546409910849291220228424580083128061399508796397882449311198046183175674531956539320169026412313548808493391769934075580636767952545407144135847716350241247301857431159091724067095105660975962380159038139505150079904802560460634635553690937065521684768760802427107256724589725462953547961419227435621353501652105246138864136526235204963660977454796228922271720651050677810900637419271712703289103342113115793730696814225103163622613867466618260080230235048618719956949348507656966827802176939906445282267392221943723595609546556882431611919736822653603122079524111081201737859124229115589266762787881295162347909073479961056647540972214225913226920780422848258615305975133229846092814190471234861800887186630896788099126200130677850652825669082407651148221050165851627695999899837356603033921363936772275446753835523209295114350035194319399787424505358385817303153222623810246161959226999135870232181085149402867256757644368051100962570496275397256952652687074730597761520478477596874249000562327689098722062589013236702856985369234886553926282261918681523835543382225503638374217863777017229836538366106298997563256052348865666121119912877030777598752096218759671322671907836454833645105359513826168250512436621471076713911868269835498340283022272372293135140283590958015081997069494313994355717219544122199949188822842425379781384937709962395008358742644358282236497275408050634076553825335475832391445228024066152581648125660953373261100989893286141031518218282810876883029713137851594330214789111376377854356233899809026828077524779543019788832242907789482032887181050184716854717132381003439143869263428908210733321129438256823771782823493044535961430374472864018277696481523370280641099996822416343837035659512431347340582905556372301362087389967415514998669824447119914199481550119506737073304450474484219859777873651118705355893177763685217996448917778378649298884260547173910023340818250651719431578172529305007476145752367119424161238968267234404198481638449485476160006453562588445208245691863871681321194138337423222852811344434416147114673423352356900258638012934783643458419388465681268398874187101009952961713266976613644490309485232239152813096778979392353132092958463625249017795918950597144212181683305932238599957806334669500260111097020406886204598813137236807729875287285994438772867361530541598106226180347937589396653213109208450433112289643287014685229897216955981147677691949872548862936643295813086434559127095711541877847047528414662163828517328909949930594201757375400979564332016198019714508582577759542438375147326860903754814558216054059634090327532994888098744341149078749456168947114632861824493454587441324227729064603177351236050890251219995911002130592921166068281469162684628017373505614488227647027828732489361753039442336730925227326303975856809937241783311394164422976401659731768761053174016561036550336567577283964278517106339700774102471472335022663919931324313678637065176451199189983990798015996778982743859563530460150374234641268753333158738525140912165669131735446265896279395222387839035247823519514984818859185582240305259533190441065641628640173103392725731302918836597686110099995452578875578775911804352510523035231294766918860658575806398915791984223593498895756013849573058150412900622142303318124230106646454515070558364046075683034151605963033718755363180190832232788450452423648917739834224176713532446337921472159257705882819589209369681891134084357573687177763394193252455674854297252445435116907558082959384795147935896279978156749010505043666214585865572996205927314088090749332239109118378402797140117734743320268128946635780676704606959582456939725457707750422683807914266099056306245706268901582568231674196460141707713353720117495375681057078214289606875996533883453517877493427845342997281120353012393552710839330667440161855869120226541854244179165067440889923230783695171430654478386544198411580320710752501177948916288139303772152122791304751835401092607744251366462624325178978414193074784770797006317761810989717127009824968528373919156140031838290056717923237981818171381086352428315252384605046288347176094499655137230374499763683811865689283196667726270027068421601291861966541508110862090971433424621170721773297572321084000506774812007795155742248590106935798378877164073204607013270600366217952974739529140400470296038579311441557567386641744698273575831079991754085546078980648872205148022728234320337378067938909441727246191253132503815606983464222192911684790756390221187081068793541341453346799746949182493139966807484575408315749478388311732446443985293411565997289674019086688706320039428315654926347071529277417543479478872607884836761910161281098762930962858686950613790241019557226154729943090250581497635129795512860360065890562572237141030651401729352779718415499616297933776681863641165062167694489617909020144444504379742253646924199452949229380697967301206637126184054132243211927547086562080491692323220400796619543447476252116558056676391589991410931659876456835510047553712604056841194282447273513072972754476300234385919448717281785652851165129776789321047259815412105179809178539462395595466718253367714783045882533395208989869214861932853881305960505870565730374446261915071977235385705737339023941958926646989700931875966762404090541623941231760818249912666102792569076475656588976384911384674620630350412393145958502141083320767503547378303292095577779110133958788388613571791806134420732173461896028398744180956880692896576360303957165077827087039915065224221568763735049302191035984892501054694072239292638520184209901826359758286363779675280799198106493530409119179506143617039851549657937259058333109854555471738095652608642390890788318215444017168716366796852260288111379811262910179549014208642453965089822801288652319524833529399142066659704649267187149879136379477310935961314220713867177466262710036291439030614634030289340799477230510880236536495203655577284266745766912876200813059437746391810399689716995725784501817066147555963877314318048008057236130857583301010293056680072021194327852660893242612361578690651645981906654972755091164332709712994119793038004907303768824031697271131047714624988945896960018491567161685131031134990026276824463290442430748869206421829506925435440727865846447823360612726732655874256583672386329081961404776031813687623855721483326836559539917311143318226386849654902357781279863642058559913092496816448457338671951515573526706182494744462047032702924586306886296269732395470592392005660706578264873011686709172860135861754340893120024180378029304673454978544760167789579563642678130750455206518962530246834876411534700424796290464374167940639902134531221105884043062785427421130107026110940924323985822351016459569789182889361269276558523549520734161283131103769714036393229409700044412565910568667589912946266147727992758560529627665820366149093695799506883216364210011607338121811947726778621197853908925561756080181390313442794130250915372427165189118508016527589241295595173399597664380451715212203273278524934339887775857476596746499476010839419728949378673686285866296105354164428481458593797250545153171614870214905342308001151236376838355208334530108948759757805403765980205080032046884769935297528982262039886560951299687745536800836281179187974318159301615855409778427455887358798093516901042366283895006484501286927241811461574496341490943546366441609724700373103823802080491282571302689909870836419061800683549462656154504246025920203262365155500801255043537154067441745931735856055944765812325592965076829608306660650536957737494365197237524915402599172450254118072270134185934288336338794533071528792065939981408500788815121006618226161806872970276162343485550340691280446957482778535662996957364909691494811003794271513266685452093510767311897281981094823582054135936701447054899062146290430664639735365493335454155910368305858751368256114147114998589398041249357972231614701311109490823104554178133753542747987909899766411415979170372329279211507218697459570139390041719610050826731896179279490666867493185673118098796317096301261985277470597201787140229046555261405655271046729975243865994537285534021723735876855540363357674770448462031752590048799577043425546094626944093899125302046546485849406756984294736049704098991646013153580972208475107678682825997439227806891348795148261397196806533851999980742323800052094963849144572301101961457793370305056665504124753755474803319605767772309972694012923997736234062424634494483033349778115754623166648329371029708001889896235181024761384208076313826076465938658980428353482244611880363182753876876507583059135080359156116106807556591791558142078353249910947495089028621485015204292887995041249035348635679796208845155287401444781271913988639166409872515300201897737564717001705795051755740962611117514225988037432074125903691749323333990477984740761652234208416234719748754080398333181537407321605515442017633012354667117128029697762027916089779560990183257973457772806071033051076314551254705917368084591601193690365571823837321444142799486314326862144888217024226869160263392953383784577556235888848791999303989424005845001589389575123475102415919573449779422123611653404371946010447636978839833025225786395184186513234221533007717795065439610688934786812668819175794009720386495746828412776166751602177226335763056810139114147288496824126722972823082757229440100868678704949646426072671213387673948660904741415292803867815058767647788145722881318003553668421388306744410292818397276356028877415350755168353112514950791501746365271025214625320190958736902713128220066268452901532595749957897290121703484483792244975497199850074651760688286331170360567107006602308302462150357336573234586061452722440057648113026365353791714944472423259463697571299138227548801787098398479667319518455847525157596735951954704393279690984130631967952457755279353277396917900911178145959814828279823678558758938435117493285526960961120957035353960370773134850631987009796398545217225342594696185067102383603557137594170650896604669297318277862972086964609957656730420431206364556253886555352024145266939850353074982986429520844451087650163928976057787025800218295284522552108932881006472498871521327544221132105597747425080549597089495344181558832562021414001381793151148315127319792921924543618840008520838698564684417865007639968292328996698431393084986791961775798551713851834743999414741012184057595361658058990156365491436552415596158392813163425378191425436592986818641515508960187891947050404788348446357094903743429724557723921457939718872636804178717674487108607958478279514027600641685844973283423894627903502278300377184005145266198340326651702011636815585871559858327240753091245737761148923949615479916952055591020203773884362346666730157094054138451860603557155294378726337033436519506303805109181019432985140709105473603978248623729508801735644109270404855855563965297663743683446472715083693526570386180247201841395846930941791874618117925062653678236998465734128052371019994312945700522684189182511813510046138574069880457775219043958211391107169820110687228306004601900772586755563463595905210033015813784398895642722662422456340124173918498798150000487527575031291723651169906440700293658391377072960460006121657802614632627531508894571947633532150550690196233474587936935348404570301792740994611104555160843205920923093142379262542860433718570905854860519714436126714566225011251973238855083172300775617344545777025908437533913091550851368768292671086400672516702775552952326389991741718253716921845391356968070609165930560396965210350408768330214476544058992919064103247640534246035283783491234777785038293536891384161657926896932119662359171863426886386872914577398937198615394136879001461076091708025004890895542087063684999392410462449325143825406702162394570695309298033512337104886198041948002497139465614156617227009394075938211836057470617654963238391775056834240637022159572772395975170491218506545285818504963615894598376298836097942512683437961546431857688228096281066902668402577095250519106169573880142043143717308480823705767648757157946339049680002631949157249600364106866085028626522828785129322874161974203956774595441912931016183953639554493219476883192364629631444188664093016709153741493829692015421812945012223854556363448202380212131084814098540602231570097808986806478522339342494658826932404586560586011352680182437507280591947307729624280783591018963059105261944956057019355920633021988136640467353807135730067249024349026025015413183227046622137742578956401531074558206515495588887704004871431031842381300724651422083541946582495367950456062801706654736806972864910388464519941485157326547521538413432312584556019074294456742320218154973559761487105651280184952857204143791931792319602798007115860593911118663615439714621552800032627382773587669924189229172562391581094698506026139294891847884637248435869952203844854749436276567093499400220870238755351212732049016520102088730123223134174141331483246759727742917169823720321858272276344668382477987033784347802256160934136706947518936566091805509720592999208000533247528969611831142468101669574793428961374093142900859880980220650505981505366471559011077163979925823301706674835827099557951887880081381679030866044076423438637305811695082488757018690850918961699824029218393476118898662397116031268900651331883596726294284470720204553701522933388013109819949217552025472367442664875671306348665321709043150280786486843194884075635373052548383872469565659860739238053928208232689315269055375636836769975808939771246390992722372127064167185874147832237374928261560243166713490941843207876004196359774402188414383588348811966423471558095353977244754411702498564520273517413093655020943432607013010194710070165743993949023267154556647821942983961628780057967762901261051660330285471517452647983158317440996328678907906071901387316782673016749529482867189623475138752149941484866676189904571470109977262496448302994878436857175782500048039899775130586231157623147989420828399416048245075722193626392371134594539769872698711653092521737741707532436480241628208795057952023479538786413617850066483068206489691726091048541664218595929047401471404287998784215949883792779844449340074652783291662616607913774027171676205624161503254716563029081875172718856226092582333907610585936225632432211104826147266411208867958512573397893295219591017135157627620723341868491632372902954621196326759250142724986544966398064607833364430020302989614570790952808012052053654996405896665111737722770563295785980439642792781361197873237091566755682056402828139034221854245985576640276264936184615199399328124808311269439695604996964776879512117512071036575045254439815711630737741765014902734967013335563233285206475717105187911523247908167775398021952765356225979925340998143615204525688170661237486688756483586802829530776785119230266245833543903551658684141528341269071619186463214919481761010559442553340257527235080340411466671293850173972936811992711532573761375900476973506480386017595474751696909445648361587297562374346227067021027399260363501307103667674431831619834381932707851459371731986379979526036894218946983843296038706963299855937481134900750494062299541580410843376689111220699085583358589969869148840437271077132800881459130788750115486030234643646085767713424066793247797963943602671526062405866252015438425295753322010387668545028495770166253222327741013620778120154986109394857023711472862434135013521229482458511934508938382320802134039479591149740871825859013850748946732493198285479997038399324542180337826137912197451889001788294813535008582828280297517008086079652582799955597522118018618849265156034322744700922762518357259948777235547963337729563030434588047242371564094020367849478272184863265089955109252638924881139155382119710052156569187796220015047064467561539697662097558418137348701004704981570967379054802530356907165674611445489654210765743181793731487646233743851210494162261483752448669453886023396558438348989738422728368300267868877517134908837900695717251688329271183863192548106202727968603258441340316327421878540573021060715121917142837990179639457042964696996090052420796446631731434025688303552508196514691945037106905234786401425735136879960997011687543851830104682919721280941743470685010311734903898831420574415392254074931971941107369381489799179636700744123691937060756394364443369900174419010429630788677386137684539307950478274525431061793560915120672157869356695244528329516440937140131445313816002904879502063644356035864573539122365310427668040204168771678598500813103466615238727535849660287015616851078526173496818468365013742822455474195725491628221896478937610358849962311365579883450493577629221081298589381260548188893053477407358041542697329069818650091655626266461681152824443823964837760544018284480807669958695636696232396821605196103205653218459225417607914358807917577821663586273582285453464465765870225558991048224599039013895844525707267905645242625820102071058657318367110861201472899129787046852675166834166339692046918748298632581167205099094196371102845723615112681547634989070895165491760855242824600257751470368310005704421930467770118704431022403838776318369843956759927681790414087928841693039586960292244317950293384985668332214643703871004560018497249855601787219366044777521898780800780962520032243186227996314069783292226663821439247744482679480858522294872300922546217493248891344798414145775374024059980498322037999961066677013816315441765871407712344852447406050812783769043120899283851551242083251743166425193561859633557192106635324696896207570647114124730089130265780236637453970872287275478429076695288562371503705345762309929976920381725912696459888277836398516651827783051946492857482677232770222394643785637251727862986165594143088402953424741097228679906466867830102507083287204126231807538335337773126905137104713519333255576558826600392883248398275447885118109187151021179532557979179951622239113068353198328456695169435977914184062381982701986177516968059663808202524087184461037057304220274371908226943195528364048807858245607229728317211256787512618320422469609857273669253166614546880234208996881703387414638190436611863140482853677345293046810425617709872383831788105906923139754631434752563082358462498970719318530689614625715156716221844750660122824096849455867675268039867682635772058680693684258075207562287451676572067281208121095724114046867881244922900666671860750411462337522049722061651718882491185174365749680957527496935542234446940700891481917587814509678883215390627998984093408583132192023766847776061620052925260730528889393346519826381769838769447702077468330735795131152440613679880049638424478741667985138320326347657321622834519666956723271033365151423488258813857632412326703162587356372906686919761797454282201961517215220262949707507196366872946933555714022985350382414754154516296572300362046405970688129481612943375023500723751294161539649057158382769100496179115607550459574599536627175639498801115410027528783610359565293537107600995884176936034089420301894684487350580289488125453261415986158169568248563609602607278291899791551926630434376066531512193012920016416556755741094375519206019023104103582236589610508541452436981542023624023192366775775258952139228602674419717054483793377742111999441465914980583564867515041376097256628648952385005783583267947844060249388063915581010620920755721649573265728274734429670000698355841313139126029812782012653756139060548334713522641842519144190077974571113150692351810279706169025946446258187309436359665329536067942145839360269892383248901579028991521949943715987763888350110624783820899036161556824901594363369866998518566036414742949576294251804074759333573841023520664900210832370275707688242584987533507064987851885179977591645737848412815786154214591697103172719012193326995140998380499436760087908054603717284022725616762246751224681528814057636090245706410360852999162085855370465879637750946913683634059811104138094927775893222244148732392560906608405803654383176953726728838664834247446719591386798550033153750138034509290432643553925502502968806770775412165459479577254484213027153549777294380572709161987812446266382518592618662884310343487682191905164352246180262944537607293089291792870352908505808871273629447243761192225486501584711707607464478755473491549621845732419878994361602342186292372069005792736837145305912615278489401070033787886722406220208087152054336764046461347281912235513531099204223246782783612719413069100995868272683663211728953241480034796432970753751529328390926936488871399228985927080994229685529848960305640272531892064643412000061822228212512794995194713790673718247632148882541560025777939934234604771986274275591200367531547635082570111721218588190574474800283313336545884078169655936431904972301427656164317407965698498149569197562030070440809306496593215301830534693403469823461885792388414964882141968504941772462746817475061486796507506760385957145292969704234682028808022756802787552828984116996901179733185762444850692653623119188057878988731058370071553255170152784484797002520529484616233333981007886098055675562529008740421452408390600239638258372752612966619500066672502854349986363615638589004862827960687298711724759716000357760921526106665655759581316251698905517995245529184343241468759938517031088300476261584713191436073282279167683882838448293418265737665204955484333620703319489310459891589557841021938171629714632951572968719276568899865430326541408053677354055590995720923159324932249796304159122544782298935117921590350345204911395657422283901036060737576772944936739549203545955476982677783611778752911807120828656156769643377077706597509982017417759914896943963349330070004057962844428770593513906876882755588887215112247500059747742048437475657248205239199058570934809520319225717169054238941926722236252280854960776224278628420556579763936293184454964588675113224756438217818375415453602435401718570953648145146665171406617764361880028066066907847157540105039970125952425179757621262364634099809478026040829842097506337408160613569308762346059963301943789519259432779427825618937348044871133607727689199009048095662581437072989064774266355612691627457087412896679421317306688774092695588718387210257586251447414411770476734967122569993435599979636648563490500973509699370293116541370879159516380854555907488047173760784038491329097863983898628598059710530243907473702695201438173370757487123956225004941981617172611565835309248541422001953235180072270698433206551434799779888616524840308006490463860521443892697226382785937840654491830909726794701277915483354927294395892016629571401274442397350065734306917135158189952845605353879511514378793484219973582292163847890063075939598649047308295326868452805557311805924119434275224768940672682742375783838109238964884818774604351898496452562219693995002898129795286282958153643597328255537421291488637837533292266300431564191688899408563230622402127012466935494082734690896698899840926430366791427678476297105439672768416276682587263100849733143990362915135924328908279276950215008896891047979590403913111177559918552914297779069180817483949657994126425997685456737513974910467592157446729574395237941473642390744593417596889738045382487716745775143485382573759138674102655537351235831018962665214835716938823493520585450670131114613098513841303447854269204276008698365338742522215202977445111285958109664395294314825136650812526680555912126725792738350344867156261467634465431414932130457429473602205333511421798318262025849232277275932314492941033388374333314783917942715970725917495507730099689358639265777430463548200244348192715960377561310922389195856128354332347768182794729180421491094743694698935556942016882717250410843344451319630598965772536096159019582203821610994283880040553124776599256573848571672912938292976942474727573653617938797618242801764157250662020445506695205194871426919415387405786078644306154990311376014999524693557253588616378902574052542499353566481647543984131589778509647813807694203112897483044636232706124313163787206629777336985507419437693661885527059538415718876025788460168738440821811307469088739539347999718310002168871094974902569142612037921007476629263376514370182597212495161188532837210876236643205825928461068246006259853720552223160285241058895730074413655053513216892123772757379134459861832194784332327685883325847037092599903808373719870386245508470926997617495090394238943283683603224921380183035108377479465911837617838056271762564482814547196373416234146669055925068389544116525920397240494480039822407374924456802610412772646058665420460799120969550701208770443725016458166968510232478308809374692545384017069468950221933922239187972278969391511296668505038256523641996178344984187925210175799108196022033956871965080360733948529688052223342354929758439460634041310068185901701762275926552250607340254314623185963743427434104746495092144110633452422429042042275564060839046617812155498110690712926469030558009660644370917255850938385448869969699401309082595194042326633801023642831476066962760249143593343162338740099604877908467574679687107001683681285736824665475809203924222299311414573689766718499698687929631864447471308487904072993460395209290715435115704349597277121173104036407017898342794527307579399604243906323265607132066049991578664270136736424016768892863454181490046870110282846328362899936044857658587915329497724633035281866865373609745068714149411634442435813836342689324927119391954193452815059330851095383474929173955667214966175952986775941548532821975994813218840976165984979617021100065130701428599024514342382298870024661826614161094518862064214382896981084208200324321469364558203270196532686505390342279633083354122904233895830199390427853309573516987736392664812119668129872039190553508620511046947772231018195108968218950798641449122680307839316003214300528582432252671812625263601791947337487566659091007737077610433387827763423618226528422986784764100593605076755547694091954262147965828206374525260444840214489189385741269931002529775886969128871992051347424973148885593469661894874126877111052161729732753259003755843647031631166868941114050758497961234483203363114352564974760507895387852549319683581714077940121341715661916345817839738286363580861289697760294694074337770596558095936473213020547510199183397880538490403313839734365861367533730731587521570047072146903699237909891916933760852598553263900256224525988922671152892876445100567125237354834663636303177447932217912720882788446341827375965237154079787219103451773381535569634520639705624038791554358683801219464308502713639780471716008094269888906299590163821850234827350510149252682849678219444942336967883284766931284907742439565032125163800991506179180325761165317860492642642881377036902517713616784027250547721586607703278222803701141954384880532340885408734061882169298340847959647615772002010614486453683830054728302534649169006168528351896442498267818231748695825870460260907283595625840621972326509037510653801621231127253020705843865936528705704436164973419161528038795328474340788992202447043859099012222384881659093029733264009936922103839615518761806619435047207112170324017941262057588612559925825079143687634711821223396346253255483389721975917731159059078753573819007274135066500571992421738689485749053158641486443582845696470526147491172302085164951269537927858447825805049470640502414607204841882724531413307671212197967295661576844335098757463816866308448602075569037523407328632165755673536053682218048968943503208292950472719308802047662812845055351324488588908528745660725335895250763434632020819810699940026967007425085709272879738028182654696404516580397675129509995063252526910299021710841885408723699145761385216088278015021476273796544410906571871162986279898716474967591719709686695700631597894444704269205505005054359182573746222653934494250456859456720629584537142796433254715367781823859051534049707287442371749311645157868673440990612486877374622532084390321634203882562364143614389968619592031128037197137854011575634472328393549383403137477566922140910674439234407850355412259919429810594867818351892610545122457343072858477590872562270623966000836274473452155782494228335692567727037648350699875885848822573835433001049551755281972542253300514267899659943003484560378343965074007226390801149100714380635267921442090642638962401358253675186874049679780385832021045016080298890863584484046625077156713916021676512984159107128000194012072893165872828307063104324830557873794767782032950615114907127735296581565203402176755826289506031308060172507504172130155994829513133567485519086147252220707575002322426785989842692730948505221753455820823306132145063936719536689204276654388908326379892289697320410882727053327655041720361058011520879411241710593182823638171306020096425002943879227713267191005069714138668290721465614444914550516975953868484606856244412458863830537085389158348208172170144175276486334628808505164540888464700781817835901098452327085278824780018810854090871615667030204547563217954177078657392971244012137075501559938433385793314462490534785070310301635469466834140290047948508581732576066134311622199337920819878492893648223979641818093302306051423959648152152661711899118107040367140633757622576990976524898992055863094555445732672256565717426040525862497618416478765311554530121717014518329648870827392747979111208138699232262571016151398758423085497196902412747127458831946469813665690971541960914688884329295331812310345414003449644358496840124390922097219541925270577336677389659276937169502220641210500892778271465199801175507959053435179990891569835869893738966502282436156703040116520505566251256135111783942431268712236421233545688491643328972744979989727986429351843612028950035960776552228636987892590998095116095952216491877230687231964006705288838960588609184371055853427151452822802205891104439915735231764066001742077071528488739670944238251969701652265397622620641421203285108969268232281377771517633881769079725203860186133456537395832873716185050561615846124241521204541237943191874539170051975682657476243368686299062444859403974387347521812080691390725126802228386911066466658333245198384608282649182542535133678956556494085653334640307031832364104917307258398009828527466704089040686551630516112479609584371576927049085844611837453014780284706694615557275311920647410212961864588704532856521738667021301260372062159504876633259447020886727313461824931949856796611175674066108163543313354362079439295827964321335889665470011690822271616354597787851166624441745912879593558890773894259708734269501225291231327492523671679698428521141225142703805316369858159098365092496681155497459962694433079276303430965078691817447271148596422194922457217847756267608719172121806253643094118467333752254795235305138369483962286807344367671164018850394773026361029587752827885853190458856327962573514689520758925026024150956053934154787941752056356852472657825602636153950575811826127364809158195476455790911843878321741419010619274916133335900875328947287254788568238747331332182619545805286342842001225681957643410885876891946985793656154844323104756000618208210753662727234699986195108456207048675450601783407587569443559540640382473515216625307313039646574901104962077237756980649177799346836892968807198902348152741864005330469892722649218732499208890906016071191599348541256346997539085626798851103177566602799411826335114226344074255255560487668511869859477785220714104355504604263656220432661768849236294916806028908616057474652961323332412407079445235113456467370025719331445656887118246853122532163024040730294782981397527975100623495894562246288516457854604853708445745795311052835869022243462727477899635911502897387248690837754214103571831613893601191376246172837126983198431391531821413134265760924837923062392299144126035723554435720633984978160552106725772360204918547091761374844730986922447351814776377297481527559415945444524303002705921366231636954409247058891075241733639655479345875452561849730289442687660396232632926862773532423642323122397050412517979448477855916135482326450070228134600435574066241097991779246388317648073023274269896523830877725032976827768269931161039584295973283353656277998210339466450858293989214631687992629810782767022823445064922590420708372115986589096577605866772985122690959505607459162043485801949019660831778965288743062258149145670975277417594310619872755214281037595781852467373502072098032575858381529879416845171589365202904975528503341503368696695709101349450962793887401175366834236623614297061400269851140204944738539096089203634086018956522063467278749334663714458160241611570506883562119238954200080491372586169850593256294109606978670257111262702533823453129402408813728117036056333965658012176737139176848742386828826262209537618488847171056414837159992207845822827732056103469512245454209853994729183785610919494101027465502635147026592456965809939801885736794790564107204406896930854575372429844631855066991232929827615641543392534301936023239729802252168463420182674423028376514305588311145908463568790729326204366029066832117267789051406718405871989791176678069835845792191640987181791596837284878486306622684046607551851265627799311250073035315641729362750150933879260940346969483451056650247336304093269398976369309067712737701479590334373267750128413969745169334929097920177917440597560271585780324847538089431625520969014695353857961132593169581271012736478964611715308054680826987160650283357189531139910030006569893853749924030174334580636820717084915351337577469820670834154163065170024428410960782232723010412617180512601328328435173827190855837401635030473590348411526375230590586853440424244803104075282762502259736502370433648280065325946991919925824049647197259088281302554521373704225043236868842716191797158267367570808518556945968794109162161517104419679419586769164969412670710478945035148888555616268032180873180070076583008386478181000543399341239477591542283384936645333312849518570468000536706273712553282717573868218408461551876990475799783222394131879077579629281875537922502882701207011770330666122349559634928135544062449170363846894327106477795510366165520777140418786788785453682012793858694539681822408086718610392294602846570080761458302670707214712327410991572826004572924113544022107958970762927396945431049182874485482822393184788489256426182632377590894351495064822237645134144964649196186838935280815886617947465953973962916396152473655041618090583023513858545883365170815938031830846513512740172805352942436780853013611386300923577596792989702891403330903065778733027728767065490709646903382181624336025278367565993808030456157650340810967785645244098718077832392734887740328254693938959118887877731125044649457724204863790858480342134038098844380824217178112636945791762672866900041060158600692491837567266419233319128491456499573285648106528855036316265857800442115377038675940587633222147980107605221752539896905145346216610299267464060541347614152668777747695033527372662385024026271395327973583302302578443585046954796689312669566029202522494345102136898115110102641279330787589676378610235592183149624320877553889982350527492172802480643251728432879151704025645789831530291047272040902017975070355730582650422492002775957024049370631150195222877857112712750891318869485518801892402396553826643068654791627798497406489695209936929922547832515264562715956586040508966636860895233191329900904411810163739092305723615739212274787796381757410090923579780069783511973850634360484098197292251022180502031117153228646876256374256344740877002880676823016129111225322879018456576598405457302159251789778813682871077146920823989378938736118428356999849236770669712571669671981299623020055295649483136719445762282183900354508754908979798906337927220139463079281460606827243804074274482202296224282801512028437513180100042441406397115644620681311322199201108397058652250610401619365213324289931989831752604655607761905060004747944044148517548789520530057704670233281472442070440679174551987284679055947596723349136627570233664777636674068856167603869388649261737112207999927011293650876576830842858231440191042508673968415484509261329649940510985946180555559949777492505098003092727071908060000949623111208362660013200765880434584759595056684457756714770544227634728989745798318997612501810957126423151956605871223171615798233610855028007443410921647132247980391629353954354732113921270717961654378127213635488633134550656182469068176161322055329680494484539940020956418750045145191067185855387903955188505078613871106306256203345155303883724336889619085276739162386860595691988430698141636519606348847867945878866603039065447014290176330995930090082707123964367190383030210723476348404950700976771530258105490426873401419786866768024112976124577574566088556407147927969140469816277037762877169260026394821850441463973572556789641520367166082274629961013037458640000579509939240397188848153953389352953387152495084433530642006295206296948786577479440359128130572035026759168634903731344411526124596071707500316707921548920170421762430795228641041137790181075997862370770816267934579741816841267038125123045833985910928811434744021453716041154464890353385744429991826218655150536955355645670431531854502684369857445057038166645157826020005297865183306961405364456737812798863613289197335981775228897780341442671750682143046552195870529323200999656094489304655188863904777525323993114802009763062595355599296717619889514710285936427978561011782064467760112202513208128717369172233076411541212863502758693790889842943719526571101502750799902673522820032014327877187804731986439112472154709234697454063598106212716502298236006562340325003097390860203722218351473280601274365145751223206690626928102119966178164297380879637780141275776738893641738503239067311180086687528647218386691556984705618948535737693802204943482284387780841404644855350507155702179338595713101319684499583707627071161113726426439762337394815631357485324059791289354709080813553233664792350596374055532354096385167898134258681477882942752134931029973866274394780539483277660967011222494610277344096443892020502559322686077741268914808254970704413911222673736623796394213877061404767388452270730977727681912890372913151531639576568104822270958385903286917858126311385660156832850722141289531669776989469179296865016291115116295038946210408092934288131440448603223390810739947728306137298383896831975934826422360093335356571986118723627876263677738314911531651442839422567684427278268095455716677430022745863600224710410141962226609135361812278897348117971079087033950929335123519119648472237398158860332755233642810238730566347837602887892403398892034902473329852096234094386125676514784446370606465697200262019936860683039488623318282534355105691415215808433078372402344008945046229210265529174801135125141801343492562717583551379007412031593290370787290102748793429522787184883375154346313337972374062062335667182610188877650213905535925464703147236479013005937426512518226448563135105349923360840001750523508848100885969968262364427562280869894396483379254368535473722558487838049688700354939205195724786473499445779219426893123158401544561752482241451199851170585519013684971122900963155156642802901041986030577254621086476740563560612130052311211678451465336108966153675583909348652903981589402614957264591884143651010500246563484675278065968068958814001761951052216564497451405795565710795579925749923036891606551754085638214836297186049036967520821778838580130580436549124368228324000914523938102819681161976646757201617990222064242045388745807806537913742732048212382726578466342151311643185264669623729013077109332050865684803872601426969958968096889211957557774402641264914561631067964991864068419568105574697300026410640482366433456882018867968464776769548415461617791657554267769206390513223135661950328063345779238932657571371013927207169853596518604959262406870377941294009301121238497275745672415811133036219470882420504759165495304532966970771532656331167954964436731753883312763727086237753067850472499607294804232558388621007695945019352683072187177484691554107002812153960234033480749121946606221046787533966908433509333727396755003576218268883175867669027412355751235142118413346895941177857438403088101169863319547496892233599133766619770413746085515308928533407290427968053598213236537594620003654198803022213919393123907043615175990477527143835650718290502239305928910608972296642388565271264047728142585636082470573001536976001209220786662335090316197921882906233049689232376446256892205179797606559816653458580479820508675576431196670703659253001749815395814635726639327711204835138413127676759307982275114221540389714848138697768691633209558396949728379633431044493920730193272120879992750207786245748030619239969239628934686015811098325315154524957434316967785149910391172430846311566809077811046819738037740193829764124828326320245155733503535608736085020522572578141555515675918025592070506550433521036019559813714534440762158443099781848641187316310556677998503691817400962498204825679312089205652175748011352030724871829819583972519712365392551876841681177297915361287270372281281441740843289837909031454277882435404478909846304175636364032001110735222412236532209075142651773018492456609761363447058551944137088868390618767746838832433921900639741177592386063117219212335666780312089646084039840958794657125065216990311917473856748799909652405576556652879646738345377706813963259944126404607674826122004839206365774943695876792986483542905037850460500595628614279027353521253385658553467996618462116259125728710917790181001342636430169325275022454407227012453544040380019724322461480084497484608464044388097755110535791157948199919987701676142938075583883258429401201147260493585067236505057299450775460152952970824125036503206506962133823813405247516322318353665507910796801782592634939506050202827297463474402687692585376429499173387665901782881633175882670991296372185127500518183917308453326433177312472214101335876557766618845913925005666297781769452911938018449787117914757088189831915613785725269707112402666214727172897985348203879318612320468458082737079686290071127597415877386633721595466414858517725065547026419531122553446722167457423596144289187833707685252525166237703674616518135096930557718680319987031125776841756124745924733266349474409587566221261224150024036242945156130307202858875937392942858758820996362387332988690914001295815372394689384399639030451377439722867215229795036346225651156447220776777822309499102750175185299190496528041112104277859024972268475531937126465246424096500374854883703294362326156958634617497916634024223707570026433509822156504533976613579074578141734917997073353963720408589529444626866537528430616865999012170511245214915066372645976035006051359441681581883445718963820995895523786483359940011943086796600090687500272347021400752609505528717997986962231666122340211427902375973514136863284556559423681628452639141995283094806934531460485200947804833523682785846194067843973534630196582194166854357856941430923891884858591144954657732798894254454500088710877470253960773501742199340231244663336825931239969504654114723435207832518167721949175677428262800842092120737043389600885539358812921088069273400274522605979304202267356950633878269500166477588830626810277336244423797489235333930567309961474798018110523424240995146455761305020834546614491014505588785809696009626166100814506790007906066473138979557843137228867899832545565817091749248042915994804736391469248913135794200814820397389255474749986969543259995921011445429688111684095411044441959875437058303244449007921549862528529521301212970325632245566990063143963378436714557041242089816035470886906408852754961249635838631892398924334353673323549554061799678535672065335116373546391758332782089430735115952431415357736494515602889026477401725320894636954942742958836487002361799614616387089585386773562719680388410039184372258358813310209268468225287698515358540824495387335807552220301916613096692437067761210597607573297786094265849642946757648546164867289990705271549838997946608130945928830963863384329350019121483879137490088957349913533336816691583751051342093515425032743181008548956731024432595213064822880885918153698305565263709926803428246999882194104695429905325600128957618086470852911613548490859255914238543197349931521744272546296875357112771652512332430513396094506701357015900976008556676780565862647977783957836905878472178284147086712171011383188118799475120127237021988807235465534309880766935713061786234233565162100759296800096230477360770774955986624793935643304742863843072184692441314643086440845940690475158281853320308133480476290342034889490793389144603341897031504094657892255154273188944308781986766135805190630846272686896817655228915002528449636461737899729516025484803308311615332768861495623445798112747686006487332362731071658059522481465004162962619408511562393989360622398212847625852419920745548579656866869111484307827695916395659971746173704644839327479597601536574978803711387754259234306317219503317411083032065220853246092563619939771861978750235054985762204484149403861735666265732948089883635528339553446891376695307695753539737417689441831156552924526730804143252328083133748739753576675268020477776798280901977708414418389781989265109494358367550289536644222244175280842082249420524717499951253034929264131870718255448059624341829921190416497898385080661533715048637355460396853151544598293752549316407511718624047101770091969307097852560220947492491842955083333015884619336937351512546022267640017933046085552746273012758387722597704226933159652593801526281810854200932803593915026112091649991916569388629557601512978543757108048225838481175515188752269689430006780087889611163014744356894291999912522122790404364499422220343570318912549915751734400038121981064950363456340947861800988440405339274201021697819408524093955953351007249880212315968774940300308434911532679542741934980381869932485310233701133915399939571619041423773397737942743202340423231148696975333416952563158362679797493229053746702121112624549103327547244734147305037847772618315125541814254518622161791340045361844323304366583247604874362662253830728728889470645063152683339508538204950330585109458408117638831209808308740450329332883943561750682474628726135092783439469339223766469793863004318046887002431715568714423342722220191919727180475059302771041878327926979169307385895350086274437385924886361112659366496564665029110247155708825832273839169104706908852330280789375144750308425619664656059466619369050310040629272728416397428362737249540817044829066243505754408965827155896704351831084414681365435869301395755544801249021682028502978817987636811083045031844946619661128411523756795706431189679445769745193777732110771413263749662254390821444056149699138144207724964078704534659183387988793255184640517099667395209003654219113791171212737886778635423154452236310091962981788942989707435543026576509989958492159036473819960466676408045878167225770830502358259598929126996987422271224087795587593676533770617904329036073435609285484409077453419643592879383702422561821838343884155276930610337904981866746419854412037676462700497779101146639049893603109080064430016273113693234212287857275878564687621048299309151753783658870629054648687723982223974571892673574247017250639036581821943836733116947838153920173142361035280623670730213737962384121720017474510216776426945829996074282205534051904229187441108462343319428438408526026736981745736481135923695055629191033483235839381579533281882874413445547941485565998095820153575251961004404416142348196500722668280008039263470248378950825694606872080692528243999475143041547305488563219649734003431414327771095008627291027641194600170781301529431323957527876548280200610628859461864199032683588153960549285553718877757930050333176519869552964949021429675872979128184540887152907289058135519082650864888659952178852986566634488541474708227341463322463447076106473846099715813197128590852663179947031354580099688469117046731382682171173994886848044470492347130176766214475543447710619751849420534550147270133273908428696170598898959138948394071918406553012115744796995583252787550791782082461074505550068514046287870024605863729365002276846060653670723749659030615279962957997251799556135146373656226312404171158712589127625385991680962175648725262083076009429128741858926457890143500078225152489949876257045274565797972705754750263239117584369241745765324943717419923225160455197866127553610568562192873429600510891669078285904051537540243969767990158804200820572481833228080005483076063339320616337303259248838627196339806512660409123907444067772493485072243332233729985452742763591357927329279016880622769084207888112024453225035343876032924610579720780955440833101364219493312114607423786797706024430933554798509387224389825571232584887417160545096720939627153072027512480248065094709327060749928219727129198718038645752132213442593668125937539950729950529525723960869353859210921887455483796460043512284382219899634717855964368320236832444792177096439624368616925428234529554518365588446381104641389456942179686253725201590114803723270899330539283097103956434668202329842914360048747585653675258101633772928811248241130357542437985522155390771777495166801422752331184715482144787582913003290974898770943507402411354442329342790038884568006689357060430784546115709819129622463513869614884078656085772307574331572247263567893211561139658722215039217899136233485036478060164832974404377345592950001799801673798364508472314107854097697635592181828495302830747414586277057203275966139787155296148410436775285900153880153134419481736955813443240051067718377949529232229462683186599152186747643012542101016243829943871056797236528277144993399815817665520044288172557995878556902203407875531166843623562064294476885132793415376760475256794878315798603569475798520683617707015915626960795725855789894163661534393866217337277299551672517245030096328760659939346708221275996744865412514051831095512753129474381978557998058709697813360302325249668449050535380110917170795241953196510482583508509554812550576724199092126733037794859264381292149430704724996300687655374396986970517615959268912660484268921081904627207773255705526370527514656541863461319406064209406567417338781459756438766675029235891103097994720856530319735692428623816071464054589576738328815401534547334152008098901918924017793923024121184777622852425270947773039560443191041788141345457615843878272681867587774220379010878380377697075879395330488807756698429356825508977101961777959039021571581613620546164676372731143100937535230157188293876819658214134267740609072719947554458983038956131812119709296132786408618107642689643348288314575589470427245480784172127439006334143375151745169294113967303717199519520892666254149852521492801997561838440976393800867113291692564042902196282181955101387658090695275545385924217034738516757659068291573958514654602128928446496619968012907361218777584931081036883217475479395975703662059403276159788223116351476661281895285381148520382187680944750817886152242442882595634784522033741721168572586648037773481568502759270784800299186644152699707312396258111803962381175527495651459343680678997675583805220157058869564829105691784230282077627086869516042122787574485276697733257827383995212226664742064248951169845300075158785918449953133832517832949166300950485072444049085978980900369881112670759164076475629246952232473659493886007961087475980954072860675834003108973830153676585049122241398724239917516793155306209327171098894562476392445141088586325171785071630734088455884360639750677117415661064843154196265521458642336284018412221305149080452912112790716383176887565783172947859341070086648789292949409693666259215683432960967383298526206068501251103864389170255109439367390204653014017329030429675297771340741004285810755886931610622803999173445031207573299496222234139663553483073680084672607083454612137582839844656619565705654630508616402159545076389221134981471193249118382020164714680571021970577708369907151829141792628576955741306712000771761073776885979636149363598881687951881562666825805766274641654703954218283030851955939918435955694878368178532493604529619977824314802228158503791196084312467016290436561342046711001375383423572659619497928043709728901105390280083136010093767938267257021146796243406326493773028488337266413383459215895550877990434740663672777181454175356490446044112676677982261361511077310736952943456709169333533331590881499923116095034441874988004212441016211758203309645528324001148671379016960728729537040503586049596782385388810452277076102735109112271671267774272069160682644530324092674843455645832385794522351958698955175529216335746874241865679900714220278740904298596779618187646824420044845132989513820748724336892387295308685378149404187585448828135928932786293657743661749209914688894640350828257782452045546523729415166611232918280215530551062172615617914768573733181501421009985453690187917796456145274971624323479485498828058389773539991976552343635793145030875880100899636488805825523744245432829449983203265507912065601219922824278380394404841026206900633594835265206399588671919057512214161063340795168902422406238100437597759336820114951662234047620168469576469803776003930952706712528705518691244361632116216235401795106727487106981219697863219257586126834183570445950581487600680540178803193699956252413657707618956882913376336163014425219201538596819527933238830412770667222758082705084497076262803699637151587432178126805367055066406896711655222014597925241251121621220718519734080499145700464300041869846297748442238199385128131224488705313257300156283597185189089326847911799312844617578897827846108078758686591667730044308361090394717291168484507662757414057683296830360914372742460362282381811702153357534859473090201539450539627286731599129838084728133607418513685394426532942231082440112581434084371547276296653765970503669420939700780319493105516355690039458486036303919069527657894731382185834315042555908898278048566202554615404268655268125483554607576551360324187630196488737242997257373609799117513328628196549165541199479305355169524443598082294132235907603085809192226294254532299847537915273369295099800081810639360734856091485305474665822952942155440979796258514025197409215118540793491544309425106509686566309419566988455006742721889710195615922419736133023369466992113751478440586584110359051886846392980865355988994735517323845971184210452002035421201411324034585074720064776167654484034450560163683356177320258088331348463788245961864706071534327435061253807492221673489652410400343900146125690289934688203837131597314195865608753329103176903813505350264118929941393635820491999948111215999531584163120700600019780166400397776736292439073802631666667386369937012484645313121457221747436773758390150074788114861960142419997738923631306329613665037814065331112131369021762120204811472963133357754862902347740880493964992748873356453074877490645243000122488247779990089103475095666769813484560149583626963415610554298889113705629152302522502550548164843315466581814927999032844885034256960139041758462997890490975306229881537895229143351866768972818080007372021832332434744590342597650147162889143618954035827583301212397546812760308189034247247178700340069633447975802503217251014437038390187448003011613062996848218282572071937663996958318224972977750729361536716700280618009217004641176392030934858513666879546326938840177466843383053197198557098373945855551814948180208198403649293153030313666403070947623660552513855804745813403214428289490655302208988279301759746613343874102236957527464987781957729886590336963942209725391364057505798197266971524737359528435416169525534068244386276299857830372656387310122805845927039866113190175817572843992982024854344377316564655946111565981185315934697618529652666418179283043680493600670436360759988278029161999735112358330926811293693462454213391874082897811598385622582881147232366920120258502397063096958752436371605656668763713699261104220120953885466738736949774020595473332294431201313073099872695740373581467827424458920099041508719917330519225428776710557923449304949657847041846557871255136039517544924277565758740758100174553779736504536536946387099130770210897530464247091614698219184904591806477460141640108095141747790135570177097089489736411031730665191704668063830691417432862897081492398630550743785467555204137611520043261709008802269257730490928629806702433345848639595826704474746539917687066274047824385532181634874248123172385167857805690981180844459026847295496713003184541756895158247331132643990778872892156869025052611383040558405328873964366842176025253073851838020643030436491145335702988097734801837284194741418089283317977214799379775150868215038148914011203511646798805670565297152507155732757869012620921770387200145763718860926464645860859634998745539725258003663585083758279164786378070684665229775865785061169127512428539897654895964224069491506176895010740896828450074692594436564463120278687412165219083822855077190405142009637654243046312866602770406555291757584939112020883697952922156825002799016762148596247594029978039900135279333371038271403158488129623519032773477121929348783039252871830068494070411884676932013521724965989037845302891072257462205751270959189245416325504269362852769599605648601999215266416657206457083780416437383403906752723874961951057966270038368792581573317370175374191548473073241061957718554585848641044039313799656866076770479357839607128313405599577051258741203146807372391468266518179561052238020439300835913619185640632238488523241101901116017272946923655017385071617016773662053613830636668163634669258675062763489754205790416108352103282710847828569139454000851495011456423035564931014873739576922851112026680863040182332047511426895732419224090368208364321201719315455861267962599339932648747334947047396731124566933367787905377936542697833701020004262004895372130742803177806960314266018688084532524962714031345038360503473365194069639112165439120139027171980840919421733897103617559899550646529414706241376432782437373353276032737291329371690924063932039062676591888051292220311834669959543942011389916637936934413877541554234155015398349773698369243860108688176191551087508136214268948087969534455617582101733885852724891976509181775683599249686197897730551488064528722372674347103556633305322825883479229910876215974320855650448662609032985640716804362288081169941146008554280899841270677750794203555749610751885226608736021049317930824564492429733921463628314353808192384580593731770516343685359202308924178496361629442670510839878717612059970677798582861589634173052829695343209387069761246854279362955310645497188782788280984259892343504091059011952750647740329912653283950973350552859418822751468738951362719396378333540723364570606264972308437166464818842981967252288242589827798245491863556543256135607975722731544167683487103613679863486272468076417883713003661288316442143010031868171365215951220548357421724037250933696915073018045572514425451917756868283441275489194638640001415287000266006016450606104247236868343510343693238914592248223945512032270442903747032727021057516599709679596249208288200629224600974679809617735095049766666788007341041816444938138186499061099433329437652876408523548255974787885583701178060379380655705068952836894645096710185218803559638590593152336520980667385805472367536678067259389444870664550901472525258134344965347580018704653132034236275255889434135526174205621230944329303604865889867477283241063268071720411604887228541496517556116346925179430904652716283837092827919502145215092781665835938199658513161430256771514031904121480027897513308032688934498893733685838978852805327296172307582296509815728914597424101657310531023894775056170668350463583328437938294461941344185217545705138157791011390973406860897069824036028798216956180024259175688970422577853827117072455394018239747963764750364772923537363035025913466210859119081877649766104113811703508739962312992225460807149941396723063625949947671603447724710985629709919433938742086083171200331226930995599851037374130055345873206673900900946583556556364773815229656798779917131601823053677233680201771156770389625918988024201728611893013441907011379257464211723361949733966229511181164309207554726149102020227003941902937082559122998254922242188045263791396207573945688150970916548189491972557190495747507627407180291059889612830399233227016542468044621417718456042365939493684235804969941874919561528855745877310095693281106843006649946045302613846850292569775631959427157456771945290517763445859212779967274793071892350708823901504912990056544491193345346666731507400052170183553723715374819628293432632295675040403795489044427119088252133298753631435287110103192330063766829382910088176678373300957113472093508855053434775263050657000031899736552313308381126612854333500413166755756353372219171470081812934331769417909601329405321566396158520508460138259745567695592029827645103669039558976012163400829687175925921333289416194203467086832439264047712727426534789506198045616539826767397332765464639823735986255114972247624592136623720444549782934696134732576838085984811170186888424786984267394706528308545990341908716504829039543167083904212547107867670976495968216792917882062534642038828276857332671118949456222291758257962767157069022133115980527793643729432027305845058826364619247404485382024741499647698558485944758027334329608521338778364926385447793453585797394543778414192195113977876010072948806984571412302070913403999688275552048829773327734553542425081343419002543759878494469469764507602162502448854956491555749048243308328854780279649954076562886864171248378185276677693708303561040748228126985014908306668746179991092487598422371901263442088697354904389602417729803962401824150205172910344912518908390581836646544234502657893709087726664104994451083895872345966774885826602149802465680608485750503791831770100061591199007083795693086848993172046224858038201072420416833277361724745061249461316361602473122746689116446362693102246051594037620553897264797079600930415923522282680373709059477132280381858066021509679145010948506286641147470667049806864892785893689415345773815974820213443050623801165554168042795773551544240084566997378717191467877975172574526150651438442356872241606047845972396021805159279124843349812689883578763605261257859086837630404710315185676653149864233432840638351954008038930712260168900834320497795115338369746340405199309964751666144309766978622804624333322703089412768211664929870214990452275040256386487161339741567298846599406627268028197408873125623740192139659617395664812351965414610798708872074582709858770377549924043717506507028357425080653169018541847909195100697031202815867481081955327787062202932300772796795202758204248688177695280862794284397355225844954476610098933340051393606098139306130609317469174255265932394791988854186415370742270115875111144682639389416873669371530242986645791149954670461175294618239333659358459929183006266395105662150633404126111594253266648780384861751955516530476667323275744549817923935577047841796884679848477621066343797206899806229011948109954059132398575974179614831036737907130151513024794556103274137249506769249631813980303893945112397293742327931521490182732404987417721784723240479765525196964657716865899610918922225171894557574238807217188507317807285762479336446845853428585194306555965677137039558817778080302867142818433567056759645916148463658731452755666830082618293131922003712575429980955957566287845621709593531588288868801986336763544168564229554762014332123241962336018741011286843445449439943641080579890659388037056739046375135311211215210066025358693572129344296361770510671154131450152393650322693946284141873775956887991414598514819722542870141471688970765407698743163854023585031223314168865926942406513100303035701985515970046328206628001821674896883993426134600872422096152032111645865655528205983886721319260219553779375822008404456818170714943240374456369047483186370577122521181399829795295284996274398387156565517010611323988064960064851157183090485262804299731990913833402163989052403010446752117285197098493426647631947680003152127898425170431860539896878080518655061861220285696070849916659954022134892782070610902419724537231093696524168192948949447039617835292063615054868889995848715597658382489338193874089248842171254923052052522762064725400477452483945272568342079545401817374952003217545615152770017068350251072784647707512930315210972482030787572766923547751719042371434871770613502050705537866647689038673904820211785544729105225188023249481025636168538462835225221794084808716758340687636132853750890712439330223441452980727652317808233517796712129269161101167796052362820226077501301134514293513070738616144814107305933061607698528129972973340229721298819435933571940880375178742926107026727844495345410465271997160782301820587124937663735228601148546018723122236894558893890122217870149215004979559079618772469888166983498348783557931820129765219384691294015914946207715263441107017922054248176701707790017602168307013755796735304569419755188223841526998933810559699992381105521673472904848961442041761477391349144437771612418248808482402719499719351316400515532605907440444474060938758972070386096978939254791030528765807978533849808962696028126193043229719118840586886403041039544616203320466155862987666611641798903714542261835149213472774355345791205179691864861187197150584175390840786143746011184298493769790923255756454365732080948856405221280500253094622335064729715550570083018944668508982688260258066310437733407189058331684256348730238041946597063767446603331841263918032928166205669608493021524670528125797787986427275983762379568074420497870881206671707860380225470052255215204572457224155506130717447125222767208803332521034956209355192733116839892304013227491454427142913644002028657477591576153933242851183314739982838855565686284416971005905795084046730650829040536989295386136058699641254398694163938987412285079120699879295546443385155924959602283159597247926768899403592904054585405376141524803028461512793304195734825137653669674842051009382409509575245192761627668279936078912821367018283936838467482989556665760897477503631669771970542305587818051793870856466220964594300993738959562840550179789338564483801501216667436097685788756865680570681236541443043984920798846717118925262450272826087802164683190394532694235399169209880989910069970739340300683679488139256980189463990717850990239778101795783035575815634466586042304989599075706254613897307797237383912181809630404442979235737639966677978098259674064631745392588068927922735312724853497588497359006161980786872002384783404558905147897572637512564956825971240492293030228454490036434696961150279112741839427527353354560160851386556878073515996408609377776081249427422237552780621296859789298786541182549419336836834528563962502513779728002194179987370928266302091575418366438311159549322526429069620850385518765776275700694463468128403435555906119232642166225835694102600080754125997085902525133904302282790096379607761707963153415791245871348113634246494050112148662697569071595947532838402897275611537455763381816611540765114801592432947783615249094417323245977713794870411828358758554407246190152573968873785271464622071696391667594262395682019546333389776546686538699303288382780230615048944171533233582581680002150300273850777966741243626851824580628191436339554050197189057332879667216461066997313147908011984920002401043687534444359453510171112392068954005538884785406206225210126623183566489810785636538462290314416297108855077438398973530412627202811530747395709685914309296885269294653212888358457297236265975434039206228170870082698433292622679134433382329250938451714655551916457291870743144767179918607336201714273571937569669595513671339068719977704835545340206782003520046232835327152508022452089927598061136892074436886893170021540796613716369403350373591162941639398168770464132031596986904589540904856572607860869919157240115729979274412313294047913289219065721756112453916003428280364973945661788195143202597373346304607663855473927028685059722343766949971102688485559538618104867723884881826395331296111312642562261169326483174098158976626427859967354416630264071570262619683473698697348239823279615748913535680038781174669966032505373273427946898918768131010948976868643723035997306188817805455294858101253210592292426459168672394729689271786449114887521670869524516143416638635580451108617493280878183454081597434307993922728063526296804685481000710485020700572993173933987396261760207745508695167854730629441254682218881322070981412300931545577408699229473019684646731264468887496399308952431141741036497703758943069491602805304025187074995654952305347750124250104817530079616269803408783885373430172858311827472030076246510587641036266732793264132559621817212175394672999540075657423647564675417118565220322476409494290954866233511491233437825032307195353710464020353084359182887647234958112324625767977971273794439266132223077265609421739652225481330053275690027124666514658479937528301894454951999076860149112600954937379765125627547748354419137739017725024219972805021913101899199396769239159986324441293254566274986662978048213202000733792441661472910017455367705845387217724062230800523662096573833450202864375752559262708897745808004329265837045801228767213785902448427535761160207910059325008094985211226280272758536177483694584863047000839078188438418071633399689476218595011114292076452619111793959704722551809803779727261662964168179406734891305125763139305999307720345666597334714578974100602709516278416574814261445014666106704594397710289774784865489130206073019104714393816484865315583512435956751428586264030042588455129288603068808331010570064232882075627003829094106745213777596928749645578768938245128631547072003193006571459289775749189791764114760677820863047009843754027374273546618361845844295356829787811014577239906363828313714414717904769138159777116433874654115611537762777930864770396747446063136157665904089067118038609371372045444210456990402895977763243447462029423177974629204466379342971489227834117926170144454682197766799803496075792616579403334780686601288791635273567675704811097446001090155366512052575663232805208206622442637821571419879110433086712383850362839224914483133533946881358434201255406832644414420492934665383006101890215485982240773353744448767182182554929511891806205254053545436420697866097220058641938336718716463002169140244121759507405440413721010997435488729916600527539971694128238070217663286634021148066694326242839253468254360433927687074434626048432114185881648306593103135860120129896402771746018085144025211070525275686310746718914243530615591231241538991323508942855251590693380511472497693164214561898724265233878854035860631945047511884422016582801755000876338739477483501664195711415339311030269706256375331593579301677650037881419412201077966675086718794752597958394551423355611734572805020591242844262697762057431258186461494510889751220008179819593268146825303465795194819154482955717679612672546811452713236898031096348029094719804669753404680389344521621909071224486448873919634173333743477145015213531087593371732056870218623107531457221676546879422742472901511895529254801566191318413371721937443093842944534339311458762269791933977541530721026874039327441785315702761931128485702198500726749203659278675504988192027211770118267094680338137983710310203453327506383527105807401137960124818270679893705816802840402929134703044317516476403156525712474445254281316922730515207226779291060865551986097056513575819769520841009899406183558068844877762128933315407752043709420910942446082411472185877574102168972520160124125015992254627245760693685471046544576617477128972248846618839234074556188672159609202337903467996336265276676139866650366575389579437009188994773670267288745793660554315488401213483865113816940956754825292083704075050475864398967563197291260555985680686908582801751076801049163108859598052256696291874210563433735962535536593516998432515035531958236040943500777723851370790606081428528382593120705593033441914555691620851979727421776203243543157647549942997187679061116078840123288415228895616345332325052311909233045533779646308237715384960119473124095218827060954525657371311284772045196282907851549642927529925325395862079222055418554409330370860448468701546264237693657006869994764202506760306506019222565215201680918331517962922352415466764443672760266557092686428212095204226092264894631629654133161658784037389460888975738137707403150556646757394537081567343709525691795439126245102581609573384104092153279619271697319573958556377812227738042826407277466081976644028543994982622646551946251867856606311598768882738395331919429966021724726371743058085188556562145721345030123489857829263997385453709554717582971388838861193067304409363825383907387290146056626763954421521262457117566650231527270339665373900667337896451793578705302217871022860850172148365500469577276685824744630235663913776010129430625490999900400330883403995454155629132711107338124306682753807745640211814417163649608066056743951981908289483627656978200393520334591084575612092654389323928017991548160350562701050470979861181121807327149645022269040876179963136125424531569842229208829793516140766819121702628238455843407756889203737809851738523610973728129258783738788953565625006805661280104061397378739254913853017918800960953923492818227927630557511583019584231077324813313914880638231201446531845836936469321959670908212322776743127781075466984643587891425314587248575133261701667037328332528015996852914145490641826904474625423377847865070347390494813094565860197874406220785347469728198932645025562015491673288943281539100212026714890351423523286406856737082977344593038148496732999369705705203235271559628989682408503430538695026669158374431769977456769240763453002284227849713082021336127810954874895894575622295310478088767353475615959030311614518473599819892040142854896451422967111369140577749305129246003416890044922742463548101627662690703107950235388666476221992697185890841327410001831788905207740411713475023628695341832866904852492294665168330508067680503103120625596633042303396849135167109699749032594409971089473121617602188812577115494086987553153787394511698196340935415022122108909311207601715222315941450530682110034698318270590528734639773391923131054156046628482658150386087317100975930348298434457608999706381394713963111541763398102430420158775711820835862945042591186084909973371978355525242554508207916463654142170621320320886959397438972431286225433719177457127238127564572585119687378767749784323966196822409764257926989778957996255732998321066226922384167401231861361986744425772519977319117637664673892380525778731874376230365502475636024356744258502339232629035347204758715181184969451740133151511841827014946199757440837943633953661931953902073772994884253396839718730739777011821100698360555582488754851244366658070343231542311605465961812990696084860098773413553484719060855106908862957649454081793484826227803139869242995128097093401098629625577972018950311792751452334620588692482754534419198917064879851232049867796619004048392770433788746730268221367663214587417189802279401731951014739689934021898716064911314892721803605799282706196650751888529131803805053803224532377542426912866449853694562732615670490958453856691938194258962471560613730797460554516859370598468638546607936595962944084331579940674116013910490748254875094956615561549719388610363485684020657141692947258830454445688666768077197499982290796254279748571508499338389294009684095786131390618625578431799871812931602542947528214921163294983270769416009128032737905076876298750501685047978311525317542428156978906355301063930624823852388249451633815327080445314245648485419074393820915654301128877551048979523932820647972293731370601116313154751026367909017469870503749633539913887036638604183438926717563762081168884749391205400547989132473746646407927732817907748205867605374722182123451689215463987670217560919222649034445630097310946378654501246342694631403274847543037324766339890748173934297886070975735863518110116029051106434946153251993491700721589189507576281207911860332820333993651527702348010468751733289527183921448861912939848042565367078949313248251273916379814054704615747148931886739430801571088803793039723674053060185455625456604577623126369956136276995686399774065652672528709393501919413825003093531996471446905731348327624568605092075351797638342863914859064327294647540144811620081227817478108524352274448694874245667799687733409364968897642530857450367604648130505501363209840490614373151670108071132406135192521337000491023106851639640347665807755269472086288199463895942009074716097178851758879822487433216806588215922545276402441874253205372717640142418855118900375149684541278166412622715950654925075851029227476961514212073797533332223402134239487646506257182085896451260552307251502975181137102437189890048531388744270272144229419899342440012446753855613840260332451247581999642387759589167027500580803481511344160492100750457033898497587126687067770636805100917921422165308011758048543266806854464604156119900974232123411641137047180908821361350530134476711453906601553369390203958616618532282076374591931592967292240554396147729314274274284665432288616013920290690102461536321325174531913004732983648722441047302149848417526800516270303942766379493509945009387147499514152839061130196065187871319689530324683978603054735894608046944184931130293586381357307818893728388859543528259658979194482409924195078690050862176725285885778548732057398042939474934307480928898811563750416484854060612520881658945196126178342459040773389267159661578240929622329662994603694375699653166370781335968326866325183190692810089836607600312084825594640936026670854354344265829938676405999958700987732756037108036068568017788587667193101230040720514433604311641141521850446148202629740141165658169180927457800383475251119850484445742036568353855992151622571983278805980909245029971970380562620098856666345598934941925379086508945406455838679675905058548038882546541480001983124021536433070688953665725754890370712095668029987783901488831993294121727110146472281689953797025108877768956412209355261971743378466016494467827969684740007362523208841450171913572339179943874797132151594337554705495882689958533806767751870914798846624380139857668099744982697353965458952545643662508339249277041284729986414461816541532391007217925149026071023500393213679042809185246508621459530509212094576153101088034378541148254091039065936011067254203463950468870158805135470945640761915664272513718885682091197434072993146908282741544848613293171280654092230088113179318667573243741851108996428380812789107078296018215419514501058608923945546911366721339392449450782434975367456121289351021489917299053088432677393347552087188298211564526856690004022126370464513966619787856415717200769565333733194943149071435185437815520974300169817302399773368625934969562660390156265911614751218547300177621169242713743458633566674153175888487181676946353792235942256432690218731591208077474999642854786320397789241824217459532764319711996214699640834306952269103522600058663837239639797555299469285999572233829122024411910116369311574046546115336450034156690859025296732692965938468271970765707856676071918679371309089213150588855731575152850287531607822411247625595790051318011257759882383946413546599699638588155461950049911006239770556824491792417402397446158659958758442393930846125538155247566093732722186953554090985681543695122033624591473891554488159295278405288981430250851650431615039058633461891071265988308587079114767407053367931113136229692577156687913759847851279371190543478832528454616883966165672918449085091825347449171244904640908086157401841515302293059258159385139331155625880534411081683111021840308965754011566401698831461904850399941333837914342063387688028021842251470327115497456118282954518953274666029321421696270135789934393087973611537582496769228715555630210569476664376681775527051177896566567102892733983234614224188052140214784571844601383585920220540538549765007780523434301054901265006119793361109554056245937167781568539485076213807431773022973943626952317547030527629910221169169999500538691474166765402322973111483150165112625837342078475179613097520327417304587954510869328294833309641255118036371733514346853384909832719429477760091897649736153664708296192694016400430867963754387608916003315806321176214835361139502609256606090159169917148143352326023997475427562301486200497373601898632456460725556476683314521828350014514773089626610535529710241818115576635641541963825878497888949659257121624774411833342387881416422293301739232357810273777030858614517452541453597309958975343483859595958497924935637177518336474702594118861923370175898268169648669260459850655939243949334867104321846625652619208172040558085511202340246144935095730391810992671047456819813799995542066911732255016898884607615657114771614605091489530746652452776097633281828925180780800813168867632232353382979315259577163491896334571738980415454317295463839460182107974136645080387548439223691805577300606199543114190903567659089885303579584412174016723792597471685617433362801194945353473851314565643779876968219796176039525430549703497461993647190017342022986221283284557977801375415798946285241818997938557362086361889226734554287952237913672902044688071878692368759413471851870035779371989360309973551105203579846871606369928635783869075688260114055586836764140628284901130346626501719997960613213293097418218564198906359981994396193878183029810003569882674338820302206041378621463791368044487296672131186003621790616066598479010559255309937102200678952206577221101956260727518682785723968718135018255667337159291988888543833889860316378535867927165981518778463081759107440665168091946760834805110005388399042242966012397960611420033236382168497230453624926571461580814746593516526558218833859071968530691006567820569551705719298605107952023660763629934548900214728498461449251358416982502228213977096529424990688979037037125060769707532074425716462521121451171638874778219710754870777503524006251474740028193213861926417751595818217076494025815079955480997429982992998565757006444015856466058275541187860313213135366693358979194860696773274246930125903270485800256100810331103992077662578122950972342204490113940323810325422826430920316428382476159812708767382329982152510413969079297995336493136764194394205962123633475922321876484478457988530381259784963543245864330969180761898128850272398548402483435497214362817132300462789626073405122585597572814018137331982462287514852247147096956965906248162573088170151245162588172893641612330290995436990722272737008494727458259393540139576490176358869025932771406293491399326450812141303960313124957430597012330519600488323863260745258515297323069479153902721078945015053184244099124153493520478590356705888012899255790575087273236611662206092691553493536072966280088121982518519637778101363563025483958076720122024743291902174351798448165278784256370583520152154548330697885038183009844941592967070539666171534472366101330090919149159489689934677117026231082804910954105753560614399929109262480712466282179435127150689498756504106641170099729631843546682640178585711800160134883057187109861904473823696073420896732529927151117057966680682755397675690576757121335951704817421396286263969361703900031854340946282219356271955650144422370197325683188847638141878333671209080898399194447029702865259497955451922615085997689102325901452746254927461250329163587756944151131581512208193543349585801056329376655916377696772421961158355583913507211420746309399036082954909502696541845611940124009808415615433737992366165929912801724438886192028574112123969562657676284457316190067351580800796526704279788046890978184705542681370270121778484676427051628181334520698011308320646134618391821643215382370831210887742254511373219063546034285027884855517632466589121521704111012907260093868617592148721867327907231972343981168272716142222660935712421944036702158603027979497633128247278028683508200699535349050205966516395833515213648487725594883792038065194755158089516850108867842639599658657588835199030422662470124624462488189838557630032891500125691128756804244980518732813404014472951742086713473427382651597833068760290450672148710325208420974978975929864071570144676970332676711738681436220355372272281648406106528079424240293009336062826030139185492512920545342444602340448478326136682077303901919938591066625880789457052184494635499747017973679036296888147929022413646732995204435828327863684248686825016634589323151778721540532347774227120272187915120656832933753826355959553014439987751688599713580305915756129757023789154744324854572280829485380008513018733965500768990017692637563588094220702133347805153870551087907913937062778202982622865246475981273093737064544290295974470785684943758638961004577775397859562937457565346762991675613788429517547566373346592485434757948971534222005452277494813020053278717083521132042637088895307939823972871109817149333830362745902585250730419989532657153697420850993885505878231495061866836211427590800977213393051287661463711027832313951780661939288043541160307873796470520861811447386387582692106912367785974925013457297038847258436670985685416047690493718857717925440892269990500957080268662856819189659547931342315743493501158763314059589503551174274191374016558595223364818743337959325665149673797006137848841308751059203670939424135076679074429964368669012228619776064196008569224909227524037002335573420633974182634458321762876367193727097147197195143348175578658598694497902524875582920326700856992709569331823450475911251730320668941615746363988097979057944790089678246442669542727533819701961328187407746496565204173858246532597868647985715901627894163934997878678626144247837154050715368718942732205094685324942460566335224247871382592370631866677561685611309811879219227613892317181506227385751513701759846118948905482366156546604887407560044647360291811449017247443913803011768719397585395483701599508531203484479536328370866317676069764967964871874801697805620960326348401372291060176704176209231249140109482537919941440332880508476558037211483989694593024582606154024612709117952252630134584067008792087673839421433790816736406066872945014262375627614512026770392457718105866671519441718288705727568036829936964928566256306498634422143020126079721755251525767028423237059735637712267880719999926659884975649030527055915033123647474895502612184545281764187725505249254342149470823272187661260896198564015121307470232677103707171435736204470898384766299224661144131597385906577950183821210524494340637017498818353602577673152145088300159910479313242358866579895249364288848585016904944127275879218171544468753606590542970439312879551624189018061939834970853670320984441754035463781781253025994852991898550662379322664830825690717902448629883879719725256704203465143447224805617321197584841374060529259026295426243015463935481529953421199653947342369013672126010185651962569729233765159899504507695776221810472867853399557501060758392208110840148495668305491098391646369890291009297975190785449852606587178996187089346789283769067163142000541786563883376404630250406247719614731455297850685827302674753344966521131850659099745238332102171161867373695562578874451100343925902143964952890974081659186036313090797579802006738837660483338466217957662042255182441133185259018101316055855061013430700248474601710192847360681027804665673716645906987278694933489040146695775199483970383755247568149439049681597620401097691849569167239708217216257435579170225087661830443903125779652357960528950699802155529454912721951591938878738706025625812992533620013664524334196931091424384892985330604367234984819027981930269164497610986894768603230102880145074972814555457189747241382969848832412175533479970321513993539953362395894879205258916263518294759167838481841142353906175920936566312790223153657751964337292460329627620001807394649756573180500619723042527491765276878562256286241017988079335063067676531783354874902846449460312961409545667778912425761530726377352864819403060092357741722813253767850241723949830768717586851747436832847295977241036911830292337437811013053968474815763670760554321224787523035840179116757556360012051759702096183915926318826836031316756276087613743397195992259653788347340563030440971303433811968938884391614473198550110846455823115530436819162595482843123823557894294599488317953322438819313449793375446641933735437768395521614641270030217627351869991903580735552905720907978563396797463115692908733399169237326116022127416184372551813296607106840985040933237920020524313941241874769278890831856133431983709808365128526334219123100126198691762271997335288986408499845355391471873156560187433688842413071063458878732322295835283728923422858320104051259696160045024387802582416935853066015902760745235478540949551163048600147264504198899672146519596062724397034733193606842491083884079759428874633881014163672160726157283176686821657925025950106150341135746571483443930015955609096887555895239678291904284500038172812048309169802439739060145160126209808959705718282005445437012538356325598259146443676704987725390966531773573269133487221766896585876606417469662098612471742829990238788718826801937162987461572557523062292961710395925395859770191567081948235474513101363987122223914663254801157868101393519727724932658669665611118811605125232064978296465995365026877734458890637801842780169696553864702637422184632957715476689246632623192556380295906785337489445157705027867747834477432264541897424123094054372831747286802126142953750575106597128228601790041155475079412727044730186088124359337409617447628003282552604934514690931950817013643847601658638613945835888942099731162778870872125097387545020622959033739065315070122427039605982185627406382406597801026564387700619303135064239799673045543570739917734804240270586574406334702012255864110523869216837789513277491812962399088292321197128286441686445791361948832514396571512690654479297708086312794590864234550745300169018580703434583221203118762194677671889926362115782472249931085855639036189313346689706128656245876710796131512003743996850034619072969919151960654681887548877233583411754786024327725489712350317095153826552886303719482460928318692757503674531689943105140218436694792695553460733423819352255289177750137072705147518817841417235880903150787586089854301190446758031527843799302599740343614695417223899646470758445100095221153417074733786634631596399305047216682417018606668501462214209433003639605597453222926861618530788801623619775064964478087011869263878396613665803587856656597014859065371274241107347471953910614025944823202679929795089367150630831074795167771574773806829971670499458116062541789932417801143784359861466663593444709479967607582671845534969927230695756922600474891638089301672194468269798878724023618859983555371217851925467432771860140683460931758771075957045647211995508654086077638565358312400560588821326465811811347062646811668866397789042857199729917617168415470243613770676191230662555029945694768267935479664590017664263838647071562974413877800175680112013300870662319477989950373036960942027409835548644235477882258551064817878250784565199313103219023125259003297312172752089935947111624230585049405272834321000061579243310494326826090534185124654327735497931600326285252099718589240118394930733990807542905213637492527376786698577346177864366363428548006277703016135581770004306455279993392882255693263767387994503819508429905752421048759414964907732662572964917002057848705273157900667209365235473131226007130923011184392955939717019398837128739222062768354686435083416917056012005782992182721291111450733695287983258390189164009581365608644194935066970051760970032802072162730827268188713692572584481646231873090122032043934490404417168218122302250870361229871064585973385698204317512512995229304364447103957759346267646888680436417179827508550974503704175389761091641136028050135129050132661424384945094104568751203204179762630152084013134998463721585333709680727907501274150630570375074970098041746577907972254587924518324343626005238548621085657333253725480192165280280634234323645654921565177948660974927746176453582663598631805089161995744081982011066729565666945269575021948338767650304237136898550539334967070405572362692538925460825303769551572204945776838334272430356644254371461427769954977753288116873503421654878931666088933919890996028063496021245422015074968728139399780606600336165894554170402825373420793818720259391910669737195409495452963045907469082737783768077898384976971294706676590175293496533552358079023316345639914414613826702797705869314966480531486794309244641546968644821705875276957421836950504187605725682188878612212747601037100989735332810277880096779311648982651320678626810928689147791823808373909465374881249073622751574652601331209943210930692068962594682472916172776998123759645993959447867560780091975333240583524201377500772192575102191221831208216361671677567145479185347982980530318215900249884375377895869535754548087465508524872746455444790510224575626277995660242444774396951976501652120141311642643827219436754776811559238137156314688169451040019412302959894923550970152513808973055498023522786519148231235935925236792786635127752861431859878985064298691052339731348094382945515232307169133269949361094804450163940723627342912200723005702000446000162610971253943241725434110831635845674804742342050315819965048191837848196142972887242438477429389520093873210076229237812228020354734433240281114573896037949965669627680089252005361779784245457260954418449052997219503023866463405682633806940420605658836264617673290974863273459633204992201522718726014740194177560033528410287538406583227293038337803871284377169928520844351652497374279452293684675559617842213262523338330825957917482864718080788088266133972877627526729943853648232742727036060383311308206447593610286872522723876175086127564149155929848880084440951230360787571381801984896668069630723029360783299102821478547994240639480658816866784120187956135993285146440979657830515631511960382523820860076574923706743526704843877461231504528634933711167734772862182966295232482671952980642122653137216281389893920745410614457794965593410350432267690504329612153676495539040368639173981560889661714616112265659202283823614806205442086659181465319558670554725585186506130048427840057624124090833881599533694629360814489268880105895702809178856352577934547295996217223360945520749127007522717903903054214516058781671515255421445480313510427376969538083887262715818415127696853359748433040492788222951183690570623240541145326034673916735315268563742813682892108009469550044083337889685865584049063000083608130441115010996578758351879906848391195023504249178053126680476524426670377008870147249672362397551122913779609798670877672051873922009881865333571506506147202147610000553836993230144619521779014297019516063894791538677670383356441376608214356083749049781901549459795528028280894500695360845581273572502043308501609486973300754486703293385258377163172887992377793801283175816202252187764043346572984649051560918371209149827154532081141311534510541852169041670209430043926842569256049144951350126193236004295310143320747040353949000672926390990749429146574993162459032786074269706556221882296555494336373228273107835639934147447969122389195273492096866681390623143308371768894092190822445815260822487689501694858172707158759230579084837433856314179475761161776813101670794725531028766260726514744983828785946948512011263960348562258440374784102220653534931287845945031990621652704596772190776070625918303430571918737055123165734875207943544726121956788915572497267339484946946568451255862519620445006567342446562110107332276049335638067039087883063205794384141123498925779219316727487042028273436588554379772376728784518512996056937815071765793648320966535859868440941155316608471874348498495679378663893859787566093121423739922043228572726630570657506434084454749583935521001880506576009532419665370279749395861107847391981586262047211142556098467527925490423024103286413141925540512762884413258440338091308758253244165847366968704372267173483781287810717637467636120147107367316571258830088751084286168713523523681204281181763768979337247878762829781364026113630192423950315170410526634826382795714810339153982773886455523909165763252600880053958388898932646022171635027822841205299119030698990899198809610626000073056034718389524942053391960044900590601840741676161267338790870198441523864865454107292060147279635365392108585143868712653525343542823017859273871997386172853690745545211509410344101684990643531313214429317549800493280787787426349876380676230089051760807597746757010578211919052786233691367867433926011042438109308783782673652969312406937887585113000827040749730247165860762879025698551913955080294014051933234552664329089121760388294761049289243980137530884715641176732720905641470742952236788365986061904036489498444371767739068773380859959872891954192543657827409397591995974601155726066835797405586177357909258683356911917497042259201981240491523105238948993601391102305650540410155040841333196222991654142004449126132355160507819512962327683993083252691072619130659168932984490176409458094139941823946553668322253545137574594502948057278146745187925113797187271086614084047483839556902630151022631827305076233324064003488101597561162210594377543601963614515049878232530784601257661436342847401852404712220965856827307273889898989093904361583478051001621725245171151981973029008160128068876126016008757799782070927118745539332887764091244729632314322754074566298748114263754740386778986969570406257750699346634111182320904515616897174557341896719045078463183076551706875656973983089027186840553385951649704324946307422459023204696898987198819042492763870256637753808159711591515702180767041522761556625393581794114223121377146478450080892731152205730098220142597741783642730133457648772933487370288728231364393077628312560560159874213889253209315573727135142501701241043186557336260588286665083676332924634032498544672387830153672760996470257915525761618460536995914349086607460312624382694039040811040986231167647023950564434927037290193160467863345285428599964518299007354713995940631238225490439483043880628488767551756179702397477545577211666509148123209003466140119623888652312893410251110176818799899198867271859563797105394692697048370095890184201816024603873405952652145768336100742728139149735709734646250875252114166370876796528560144135127138651503443879957931980057170986977927720649637325183488886569863559667929076160102632280927613175650771119391503411246288031184369134054989005846390253703677513964673645207375765292259927322451333395205233116956524008914826668287603650396998173197248801805988418259174779805547266429791572523513248369301714112920584831798736357416286896527155402360734586087031416097179660952083654763967541369601915083708357120593829640133846411113355185011714126519098635214031956574326836766554779464970105954173750499845766940627332362662253900959345401189152814705345556928375788789071062208408669508423211761222217347351219762517755989982408431504320926106928069673026872852554430921480119356013477518382347651385357119077106460825557887989162918410412532869679199347742558912455883996270789716701510437002679354161216864087840660119015591986070030422863430076787419536229749911167082675658332945103300456614174011091352055526233770881509634408488589292052824534611240882882635298712601638410865490996186023629341719392020356326516645255419540442075221747386616929122357843506820546223728967274555044837463378603655498502654465377963228268820671856154878246038324108137174779222875501539546629129268865769475899683674896043181981141163326705920393587091308804325967319265567906096282326541858022640568236701667367655820821563791225407520822221365032495861407996866594203486794992211129016994683811232269008756804446891071907764890299927981401147156412095462633612372806581870728225733588060062617991486311620494559394354530506468129208173840672674827205699169589206453828994326496157081668329945636970486072303629814301985536209270914933729664195385348597028282765193024589591610764806586964659640050086544471478958447295860491339471938174982298708198625787114724840201905284256146168617742877006130343209184104337869090803811349408213086967457895879554451494341321775383218561163916907536824308704939695511812307812545065857230369295510844192726827240165054304280411658191745763747344362899517737381066495206501760056180776766676526417010868445194328598714665872917155603959282939260647279635179847823454967808262262666781177163399192174394617502551313295222936264241286194477188599151547474484003468134232053685674754762256707259041575565501896058402958044978242895766173381112609097422574221648391998520158424964007737845574102068488007372063292894840967747204182394674469813269487051473755040972910694628071240005119256151748704860064324893113381864610086227071666764150698997526556239762916795371896986616556378974559457562463812765516699795200918811867415383775028462055324339970386268241700502751552232954167491449126999224455731779274978202923662534948004943887501623276496740155745095217431605651779650488782388775044901138274505066497334136820226478115203473848535303295270253125929534284398241703636919337769491274002756172188686578278190906029281359394321599606922131445655028662631721775971600371553598102970664662803450257433128778038208760435317301770518036253733908359335955248481235904731613037609924019945609421190424507369142645676720509149667672115627844402344043610545077369797487147436460890717280229316669077337128749754362908281545702601389860836498510343274239552065758315237963811437630134003748284507730031664540512714287868774135627496804409683556004011458230440894372315314287789934104497900193037146192166569962970536114976164808430527046174793642457375704680272217595493068063741144899310685302957687383594534339192725148184718815624614508764812454267870879873348198865191315869326018033306426167328522773161006706929458196000357032004426048490446274855808839263279649450524696853090756912608238953547204089022461624903578287316347984066140028792509602477209430203759954837693139323547662110239975002958514828964423579219146603010462828617190633798165046293554517048283911967516725206155650365679611582165250474314239365646811127995817053077280754192870104332658882847025500232675372066521847973313225549568278876291168517723031991093344949698263915616046904810525032933216709583379937018174166190591891691142820522802028579264079833244293908694911102508752557964050976838742092239685561208889422218055348239747933976982783130829554287642864784612397113145430094733015375048512043931414303419853254871415695354974940902585210753016693586596354760166103687996848231445921567290944481268964175976076469573891792580355350379578561854626650506944759348286768651453701561702769411032054238459340419804433101280549085049230772098831580435117803169493071769832420953795425681875060857608846536860871384509929785765494399086662831424265762755547445466846331159943510429732461781466345162858804988103043336237520234668491464625612391849755386794733756694365104931258484609448210463398414190630422222100272312814696467517494426038936537726087306685502879786996977049167622618882308077120683011098463115916082058090041218860914693868110260993243382101422415304336453717769196505451639378267932497522504601200192794311601836197975145252377810502455879536502653431939122367485031704198580342131457118423374504451504012654515530968859576362686406066454146033790758222679410820226555584772136330791977791250552278614504849880411493147253882404112332416126979701002330975206829453790749937918009805025835740188905600624279107678737325487928506970090248953207478275927060230133060787341925696017932196236197006659078023954147517656106062669736348592585036408850391718130344246969165054333585224904116605157919505909975649151413724521662089848884774174887476567192822810709014408581591871745123800183190770911543467103181515672337682858204462899767993838055091606551879550533780532389247846627932528177631614012691856885239389211840185960650795959343649271668946697808397439444180379833919966538169817578619313266802207769552544341181050284785512744316129462132949307035686792184582073111144768977567038400430921383220749190150956486497228431173523626942189004099281047791765711078006534056438128891666632912260590077958039427803051866941410276011313604659120421522500296217063239912741816787651017390469251472885534662667360622027855331176096390184541090101342800734510225546047851992225027306789642016911816216507881046055600525528912989865869583185988593146703876602968667152339205339000936451217921254055950084278574397574962380389385930275170501186225572756008283609665348011075904854346623899829672124101556846958965636966906149474505342191401780615132360748917051973860186739366201712090901024890576150127241992127882380128669354739629717547946985872945949152988437492776181076453017464635949236953441957682203035061823000623306702276423624999269456436678267151866034421029347722673835381486435870527879085717862438089296664737030393827167678481846710745848499923733922074025529218981939267055338698583320574463687387918537363562195582612412249775698909706259382337319326336820291443074293219755985696502333053879094581421722620721326764741465566888734289620601811841353335577221992558015594567764426898835162762040105609290512371969931512513478851586123622610693351279902591815637771386307653977104002228544504594137454054656443340427806767893116015028038707579145681061791872810784497997328909112353242787660825267882833595600495025255403862437237903391474422405403724955270545592304956747850785085281917422797516048985239440192794960451234310055668339240922508748781652473259104182555141851925704151947041488186982219276731089619955014870214803590816602833298822022379625001443465809505172641253294256650393495058546743556459196606999065088931503117459687427270693701213526764124383715924804149941824280189784522055378487453532063970959304627448596827926509188910746810448101074461092132090569976472463877400954948125960474622787768636536853081705038433411057737366426018970342586770286202487690476837311940421705691213214728508902393054603126355953511577629243139085227000175473929292202754072584070417539623559531814739988846760515538102183798232346243897172805805024073071349077200744983063802549606510118300640573173301825009919319927409128115860046538862531990515115719999418790283913312413885914581749940734151610616991035397130711195635771639515039051175210900543441496626225963372672538964319397554837578875350826075332125109991335789159012204065482953720630551752863402903512779774324311904441245233615661878345116607200062447519193586485832181800915840881341532366485098623446883626427059087102677613586580803311667994068434286654325502309409705917129694503325276774115160669055215947410046796042372075781935706782015276530774976974121385101907669379619804686166208096104580298049137141246344602452662967166647574629701728378392128004857123816427032694014090646198858983605793152758796754717478612521112268646436745252039165992284643113927878940147759981721856894409596885865093561990305612896145988104715124160423899776491090711855813332477380599656025397222518067165770779540669056604557883518539763446243871421799734300233975201112858310111111550029762173349584449757063184852358417418439346494876687721274942012640151257353936623652199307024887026087718417883062377632515403010671415680968643104795844925955824523181086638143042623045371149961115951867611205687024792540337826023704153499492064254191623798575909102432127469023694678082334694762467335795892263595352516747736879445151340871027403935739551437807495819979524305183762930829549397299521580027194994957775668185770876592319820742716759157756597943785112089018105998224359715863024257351832887079569147168820147877644581417371947177173793440473337592774502006041242241354148596283494974708403092149212102922056495776387182885149518827151870062337738367347284927316340652320061321525300268470860372196697005319948011204136304824449788151068093206673459445072553024374448246647644305227423661231711880192710789674254612559131767366628749997998721850671187458311577404166706855221005804670795322050717683440402746051051385941750576748638900015053979608649104232538263034196228570513431613163241794381300030909192266000084425227347392906174904814422856104341581758852814494169029537333315102259094284133241454020728817252125984139198313569667452297084175373639183792829054102224722350261927212433650177913987348920354588196960041858218906009239021354603730877003189399548428298080107746607341724085698264052672073616456735747299232722737748539673786921876105023652471109240159316648147894417480514297433771505803074508543017896455932354997981180817563482720342960844421801401436935096653043832097123721644884297987457305568063364158923105237214219757817344557725853627906293149784355286283401792636626893613359740303544453546467472129976888091728413200915425906821374353749630160162088393042306737583876776680854653454674289243265923255889215832240804896858948560498602827932217835174449511997782775482579557825352660550873550964646436837439546532042932789774821618246736584246689138753941685658152774538680550938606150316172484713931110196799704629038154573134002596190140589289904115471625222241537397502065804199659880255955403587704403408940879614713753445497634606586171739108283009880710604329597421825875366758485844125218564146904215236745905622353984948546419982829246344953142267582752992332366443931059506691697956986749095207637716766211565336593848381959475695784444896871311287156742980019588097112637504797211787686684704164676785690615015018184089161173429747515741375638767748749969555385119258015843441555431919201250113705370927600343195053992924436187365307080675886344540614189715961185285260545052516231354073438631819503161706625927160016697833147478849495980349772992053572881553238371394461327129728710195157591523715972439915056475837919528758817008261321803813565751337155070820109676215122537593880798846548499213468305330870031300968542559505938682596802686652210442477857070885171896455066377395841551705451158561417416684742913380665210833210947368667168797961894381732096751871406135085316348570971040884670211113762542032591897571600719201930265623322705486153663330325047703727578051645409020426583965405599053993382647964660832590043265349928576580907947446285555059556129536579577544227126491212238832362060059081548029002750140801352528432885312374497251276186907940369928774660549426217069982074915102871573532802283303695212987970755291688869492353802913945694633636874773149433653037003198403852224810515908393010649944931596683494800096095039472417314150354578002464864857146623507008412690133868672810530790807741610767770196762294599965517738630228981194847498944310621709046968804211623340866470488375965509125065433398837911109782700331266366389190454187679117284465532894902290598401923698178724467551988604908857056053799390869727336238165030421708188764544793751321831809208022483874279149860811743727611605919385711118354627658243654120357687905752436604558587758917305409356211268466133801662889153126378410623268489186810216084333205083981760040653619397814779460483401079308711129393480359257324104367348515708998982388326756847742535693698981259555148945000289934296673169643590382037213394711946941957865125475932230861712079325916100651610754429124268025303979704998313851937085162981046424900231197270533647489758319025869977153300717202380704580620121794703241061126823184308924782341254685895961343833199153270239577215138229166096016680856075098825810473220223628180479899823137941454049302084595623375245456990355266142964894358253507110102339736038313971807574301489066920406320799791423005035320494197355965446639807826729575076181568676779986782560659864082776638791693156016715463197636675803584370087621314846284514535991812193045407675362810346685728638977447588434757547446437398950167563842082790946247881570422722438815127885212605882128060028840613790266211394188157399807982609107945848886389996713428968671860303953543613366216881926120587939536342517856608267125897841520360727998744417724794798535249933676264578575600627531547054254128147143971747399652710688243507399849691787528695497790509419664101636690823534044292695930894624089033976324985617233467834100805394456115767174303791284096822443371564626041142713061657592607724090115781808141491515656783062898217054458407876758961228012558816847657087677109551175326084901692215894032050971329377635171572025243727069612059166548842111043249188045615520988846396467199547875048352630349828543830047578801326749781245975805914337028719748444900404347862280649218863862220625254893642778439182272535858452110854068763038067844724084459369606383478279554273933259137838908934795310506741481356553360710530224154284584531200679652156566424938498239597277927221019839717597697279519363264260065885837765263542869029035446829667099799093474840041656954339425812395066795902692424273274589577931971106516565375689944105875619617460729125705784398271075839504328185516788221888709102777156170899477718339451123666259278484366458564020690571763795926891938029455334675254648307291099432955910158586283988018403384375089521124928028894811784117672200865944759225200741329881157795181998968729293602695256309271578052172722944683625568307998457170837325544501281324347011734974282197935603918453833622880535453579574103272071050167912063109131172462240356764455792921188057909162742957778459902778414398692015204540035196723549409406332141404321362300174200125255513940065099289248926860964220138599896727981327265418214236536095575959370294142233051377803532007242277022462943995815574483850915908894019015305444291203022348092040208251184056595687825028150208533001075707162792471142514353563789249132676552989025979704926479090593022293686287415314031188091532124335933271689584230863652506700964807237594138971091075611669793322206245490446118989179126098582421805677697954983156615758024058392735465697724568691093792928956701700417156422364160629118101939044405284446204309737802373698665671175822503657924383183562393350186473970533402201519285771295017369963148662950207869572900830218139471916254017255440246060978279227803702221969140285641711189717974692506905194228653949694651012436797574825829574442084863250785341298934008053476591529746500437436011571176381546003580443093899077615017488855932948119643330203105805081226432859706167257455684529922628074830742456496505443556060936268783274046883538604729743242049321157663303358537926270942781265943504173449149439649756161769160650554333974700521968499671766179698092634853010566906064634501263161873777948763610536497542685155233834609820504064805380586745780090245690329967218042695629809625660161664501411953117863359130221516587973899536720778376683743813228114724319659729213879767476658673385542476788248524843583312116858672000235921976483043304305207705760491074424596224279621360325262417856178516319684492613259470179256932899125308680192363630188509314215636559656676743402976875965386771890260314676831111263193253614692217763156909245364826819105434377237583154522766060901266577018521749932200811540008851843844598729701210081546244744300893381540917917863542262645938104466809796248087395849872333407055905592774251476198614124186086621473645012722839863657414789310958591068726125226638540171963820920030940745602641932237985333440327383618045556124887038687773564867564810713846600486842959722388459819898380675615051496878596359631864010348754652522723646038688592391121314167047593506592475050927659486043659587244605749862532280035713239158542525242130257123713919274835365393852405952145535843785250442977548557462492178444909954516851971392952427922262848655431677227476783511070364535302809411826454868665412707209579845501940744452007296096941089654789263061838237350891783696642426128666348770598662877580098944321010700968049227515617015171901585797284461148627632603983435297164566867677710823390032866880838675582395500873596886883589301074651890256967984191693014461753860437272332959026557749612233067335225871024337048446293703102665867340746905888940837211484385290079125999863839163840694128274383363940756522094273866204128128261437543066692184488998863995681890850538474945244896153463482595113270670482488748180479225985489133440337303520423711329886993215622228721008303319526545313393620057228522674187884863409699696882683107189900150681347859851811365061461309261299636513440964435575839226379083231121584580338075911407869442744002047072355524034983877461291217970538390288671400584621133169569426495740008509240435861812556736020087168719957763374208458592403591437560935964455486803679664664493901166446130712811154954655104441653747963296884441061905208860030576027139427400141967324663959683116516876537345119700113598385389240986972114465747669492693435647227770993289282333556052187823391321857770932785051579955457674245057499478090436147030049790694321905360875945883935044391392876888180805440893799615021351309406667334993915978954474665825771358619793573397562773158225980739946395340331908010198578201240679369171414669931314380548668312820840458079372304605084423451893475053621124340060151153013241406694700438510031302672931558322528260907327112999455047766003619984819677995667213239431470723860899220531051712779236121349856145289783799061009913791818134270219243557999898306897543553680266241488484699487799008562104052852533343602245999276665070980230049798012198015396568655450892624683978983649542645176351199959960689347830154354149019911753812844796216260200583562377938451262327507969784857133867061774410840119865314043150504707818043272288866906576364197648589831218002226280316028129927924769149156729587863288210894895690129139860644954912684074307642332763960290070957791999887035487927384294591593805475615968928241422956892568308881181301769718221954923639655722622780275424270090866407077062971587217836137767728334998417657977795307929868899445828779148532592845013220540933250630339665464139044537869976259444468008277031193453550372177585735559415168697137168796763847173359585477238479114769533735527963308650732322772992283712548680997151856693253698272555795975732934921685810056091015827132201114383657683817927423280034403390184050815929108575903774949086640044122886849122746782219617520160357545753855730017268410593979947357190481587646625205245224012412126670347781188907747600329561497851773648043355029350886696066216096095388037412706719515037605369056852785716534034520604841980769316078069600168139536714559652378230663478039223215023728911437579975784930135037081210595630131748703943581940017120550068862182197538499492508483758199153649909394566886314338096130506495947182983991656025221370678818194609242886000426142347502360500961940585286954629757358648520949653400812612022159843789781500424027296503601997409622104748840620433070535157932596043495681857236289500055045197883388993028212895278977240215673187267992751257978302143587026249422516446541856872207118918675805472183739889131760786852997845438410880565359299531537453275768520209747919377882954901080613307858544112563005819467666763396867066706150816593522566845211377718725669163075548632716577679299840013119740774184503604655360091116885016073348922302745100073873159675561526936161835504172068344655379983095469926487679994903181421538569580163382866661761506270055207776543249455199481475452758020445968419673262312843508539709319677383492426683210906168474808522530806455493986932641245799577627552461273651595481710161488181354561131407320199431439339333785019415447417533293428845489066225863729993292086026318138044401639626322328728906219111891662988974944479621775586515997737768260912837093700123981476785024105931906319461228354395435219586114209132827072933693099419584934248119810493350490271981491151046419621378788301930538478307190226675674628809458954360186931485344265481736475254823905270806590983779812765782305256477111326087927240520687522557834846273399369050289852914672341616897393285781541897055933838979115177893418800484351806935688242370662035260808451685815334123147641210652560352588241609392860767651184901600480589574131866007483573504629493941508432539657106962150934108742722082610962711481991695253115091597966161291763826370343509600362995367506045913238268850917791267896018217278088660569298517999850110782040530550298000669627344956231664065598824179300225837168187809657495086016040222342752046474487209115196540580721090064263591700653873905637403675600158653014663066553461256530082068492496428189483960878930387245386204783339438517764808981645183160846207669638948122098553138453763224575268877320597046091526375722128742487247737225353124238104797712032140720853958924907656529070104073215554496890135382246720571632848285442680397893314410746624010249841623036113061009830841501024248199441766471562658410190389886907562135772357843978764322679521404903959542189244022509079037476943376009297626480582238611089778716681152554063649351138733127349996333547759700107518973590532713220786808763348379718749739938280413873945888027657552209372919774965151770003335942297486329984871498565764766075885401162334304516805279338446290762087812287204681711240136024392741275573995872970046710733446664418331701662329449694954449643130355763290006344255196698066174658774825209954519517571391890539259687603461213610908712438263867119879095469762707852382633267051557955456112852790242282979975500817725697868371149423848940000915326000730882148862564281880120974692273333185025300171934999693648193281804290308395875308453890357952503172249660732144554984457504273501607535256241383707120280888803900631848289343999358176608873466736418759749844168426569680055111142113475911405914207823744195767699735168209059780797109373624366875237686948793819995061378545313604689508628108503225902981112245484130796495532567127977430647875917427318921321349347071484278576426531627339555329372672118470957572086499164179102011654320270255351675410934877257098388776815299840489978979371780027736489956315878862300245590375353921838885231657429776271773871330076149844770234535044918117711628138040520214300947440102022688153503182210864129285105852873458573795642271443480710731523992254169562027453412348962187263126971060797636450634992248169346173488549205386016154961909927835473418537770287700031731206994911078853943353297325256891098386391085917635796208708441381788599957168522144995958630206619150010416092176205896288673245311524618555008963403946859947028947288571001119609773870084621439021873320191927493651614295539601511755867787682678538697173259106654417477269019259639271405283826496167807823683005628587182006454260990470995827272953806872721821718070040966918456370096443991358484291457737651936508734595392263677123157086032088759623904646492092576141122668198722234760530902270749893554430335569158757950494584901472174586231193985308472985050742074163570523439385079222887888475273541463594285630541417152147307704842033449048707291787173644541888670229088541212575463180409367153929530180130904748767124744866005908185854939464491083991477374261034392720798047938377791545508810967296063247686055189506639194933383347531130678329414049217317906382024463109234528313941787592445544093454594650404467995587227991533283583870959655484956442002614186109075950270548679134900507544747034024774637723356299293170881215396593198883317453275674675340859140284973179140504201273013593319948004976216553371581331728801659423196514946665738805872379990597987964810990736143222298096506140854072821887541694892775327494242410378711308214805905486079742725508035771766692662902859910969932741800558610909296280744782815924497563880318008923079971764180822827447164307886880589467696631398264176770013815177297565581769832076094334301144930459046703702976727044994765245705946161608345142437372406930011818276106809512874161780308602985539238073167205203756406373074788302876066721432086581837671719099218028552897978518411692440267044484048304981531765571013452283322935638589067545004953467641206544523949809427045951587851280728650749777489194195529079338327644794184192395915156929889647613519345129516066753481959239783530634049996164173773789625965321600334259732496588805262705347921277103221766734544686114699644800345075860738217340553592473227166256776651073257769744561048168562084310136038432981212110347487468076705499025810876500245016608164207167194661863801019208892098972063522242446541806880727331166002398685068435297323750678062362450874078011904392660237367453433916121541017318559678888768490752795491561819947662881237987592507113438154532361169699916719270604509534596561590435694356780592525572828873241283169414277778423608128217090153876269182959987432558657276178425988783854400659176304010646976723770599690732050563084677694160899683457645996895792739224836676520776000559479494020098991072724331580877987763423511731819266938071478237584683406375093430760808575151060350656874578948875719860821349420274083969219956623680741101217464979057602354829721710358047061617497608410427524858412699536107383688639862637528492137669572998674996697551876035423803236290064498891363850410548178614322885729214941378363127512470616060916442780107624445597140520403640298231259272862121858704742747075050381030071595206322983758104885904844139814239083290361908094750363535803098059414658156692937155786422116550635631920919464258417618403030752595620653353549285294242371034834711030305967958600259801186620387598556411530641799553249086469860829924450765645499314315681110862459077220386369419772954520952315699159874043660587414011380633316090451188654923854242259883085864200747475926574981297521368497464408399131242770714289623685162874339695415569745536188586079951769206903043925108636469619919418243694588690470754854656834472872503219675991455543884305243861590034235660218399439049863671230640380477640258348724900794015689980512537572543137521963350417343041960644575255072647762717736419033365825411642368167932540655439239742332096775982936803179962657287804441448500517209875181249173576317531472637100564586838743061469701609234902474448378607318673282523584732690085623161108061913790908060588728486299027327273111703979406126364533835197549744418038036288837705537421538687991453870368146865652458029706259802830759577854297978496178767485155893123253015458771961339202111836095264001054900697287865169381020019829167327227658639128146367470974899880038132978173348124433393878871285701338679607662171510567682891714492092639859720516953372159304794139877520397348883816780382843852285556971848284334393347929694065439072588133971105957977188199495995924074991057323207859635977758899119716308008822535426681724982805546414284049691699008427875504969981656806464290945308492147231728435192158917090490809063724301363888025023861531163838579640030012619808117776679811863380811046146055345833790584302844128870559457344807497510002797903706842014958008887362312819080123925370540334417900583351424597962016020079125676189913896109343070674312392136690218895432950417842841134913511732047989261294059061816540658859680661588298247686546514538221952991465621250943282262174296008970920468072481306346226925899099473731064048186455547956538040766159611742290031033325028542708776665061908358740916547590485364763988253061526092766825006497557748841016508542479436829062822886706662964843688309893692729970404496031345456434394527669041105016667517873660325903118081239294348290717270552058958856224744175282877063464468049523840183705978889942583061742398181805577259382020354413612184260300578704810537849233547346871695761244562015618223060559148417855719678752785806308306771577578172318219613791548956955918136317496344693049270129766732077295743876064249857174508035240201431206256290991388015153400139040941769219906179496296581880997193557134212571058565670406242976684188640541380901097376149139805917828823501073115260001291584206617355436111583040322520649234461384765739419256768132509968489368693869086326733376372596796021874384674269172985296435968639647814397980704471537397504078647652482891780960695045260026132932907598245502948306320399165610566719794683116525663908789637205348792672898059354404287625633885146235627182601692905379107622678510556822866712076558652631300026952341650479579780531296173015967581383707187204535721329077789334898028372633898309936674653900017357951450012046148821195660852506404078538759430784273170113639241073671518132704492354105400942883688535990029704469202076681271676501904354935281339322366273805641280150003342741075507697279461254824842260813064721784392238482331011638414661622171374330311073513899412790184717527801434279422206291900004599521709604760428795535098749062156249173521847137439509197299975803032632304133877559372755866015020436956608719285086028260589944898321670911529089316507424958967102613322645060763523044001900463219230232439252695878962005823461462610077006169342383413258633418663823510358180830568983264682345517773325485832217826009340839284695771535550300915082974868136285937629284142968199477271736777892287818101224878101655652395988156657885864961199029204065707549684352975259140853756469635284990648684401340537095024709430249566275733663815912546873888977060522297141062429798740481634987082270926108215942528790226934497139079751296594181635566231592908079349641603606636011379547350542022406997109254316383115049548783361806660399843866185828072294550403064050898287936711190387510913879605813528472732383508400462636569737487383529994922270205436677386150742779140290374001832857050864297022196917122469432654698032925454290529265960628670999303158214843067626078951956810994014703263251866514002720981946316292918718067869194992264499516789050896841147387794117488283249162201509128986471610283543405954905257895922657813519792702403173344963162505548262804778184056194888854969451936592885436044122139191747847021397307777853991465947603262102860599495044937994260585958955554011349671412548938915423271701848289087165769802403110434949774783768169086808021990821207387931767280144575318475202413854986718947949141248363596648193399555761007636027601930977313514469333523581241045180125776287483597086167701173952637752691629444486975085904097290006001146190998011203450361612386675479226657806908378356954259534193551905663147447043257816483440144018035551023867709319420583460335721790540784287573015974330704147664388549354781852440099349482081341648408788356118539399780655893442144781001055657906413337568164900060221444503419460123979581108136525508482677913896641967776732301222382116567478630480647080871892831736801189082586623161395665587001432844353109472260367383000714688019148106570152130619497790082463874917669160970877641374966357738091186853665709072416696292382694066304614238606464593304433810304675626955727586289243167732842546334213359994002331609458056022796357227908240293398408918392946424023257669689498182138499909337396928138002739737652305903210747368856051124132532671528605650101036744912191761862047708185298460525859821674675543994731012007998262209626750972310252906153747588241358905115094933914511088435193297971599463697973032269021318545044902216001731912651490263152618668558362768417231941333693211271473951867196074130740607691035239824542182465347976873234171445593223035431000591732281576168189045955078410495751993657273899960059447022501447806415256758233400139212394487677916418309198611940891815107514376236504582241272997087017720979249559460434234121154318299123816300515349405442014221292224411538030481582853336600797032645624908623055432263266895388608733224117447861864571921017775116254150791362625856147024549334882473387789964365765303120661010772768256395958519231862445887701340542416147998823231456608502606457894296254273269626721103350834952270003972057098888762412008540775640821633421175933328405969020158447286253344651173629442337712696888749384791305212173348206088347132699048776317595154197076185039432679611623342942140682566935972692468679148831053000057001252215867376338669320988196838787744357303801610673389428534026838841049528228509138866873897386455706842964352765123070890924094571213516301363984650755134123469441182310003735033032302876355364185574328009066561517071468996673937520458293308848054771955357139302670799573630303163534743694692313040073813363196672228920277961842197642599302661546962947932589768981775650023052637201960790937588116055784942516004825862991859142169703277897187973758956629394844867097673065053067889320669546308625176623213726774909579039668208750202169199484498732518189486063402183484094433670082418445181754911544600687374422788391179939360346444158964857660725451601940443376886821929075525316101551482267388850508395426318436259116256604923863580060491179198487019470953395873939286710150168378032657196636736017847075488532278228636331294307610055027447570392600745391655629975908875983546253360866246224044624098815316114279439354663364544102070647567865309354354208831300196415377976736829445611672749199234081082987351413602560884096689906779030379029032580811742527886084446956755764346530397153509461498698858465668037272747561605629654669013107838444922794634792124580809706997374557594946408488556677796258220063408268354643847353111343333866423094337407378340402959850132691649823002435182777670432892919786765276820530114119413273699812696506685960604039591006643249050318481240331060971108070755973053269795938206727121543673113282730993200014268680287816589652881027044842501621269558283436939090652853093915521762923687110185102484337516996120610638653482345364248433827722156401613719221808555303016968895073671610447489674546550657362355842488895632525140866042124521166258743621095349285839146497408193410391039604569283228048881692931583835529167527206463001818584705437410692180594261529993200439723573571541578376434035996054705396665138823639416574700562627327574237810569289671490701113861353440296065739318084099124426242379946931854925985598007617875583180295569860926760575040881897724052135473675437265255088422188449140783629125226414468482354297161652321512392669492365332880911281491307506315223236792765145592800368776187954502577890884833666019746964012085495291797639459712957882500864710996492850240549066602162725332582087323519801694001818782507126285822120780812600041421385320280899074999957979011066638182263482902782751705310403380951043958680548785212918983526506682886852933595561633698018862902140642196521584493989621520235196560977376403828854411961060750710663394627151034228077290899358136435122907894986126006537853581485397875047114242891216888830257822626293667321346374856531362715671515381541367443144139701854483611754392612699059109697744859778728255543475297563940979842201695054487483136781957545263235057249533080054532174463906179105519409799422182463639608497917289731371252684777558371317654901855238826587772585067653510854426772292221446921142518791020770061991278812471586212104380530148053640362619738972813067118244209695081720926385026208009181368386600561431976054777518328046250441718011547994478897084161978226683603699101337295262848364448623232337182787541396110696831169379682365158268086722866339119969590794980392726744168032569954617595023329331764732133029641962583891250441092215689697598535032084684491615649208517799074474480294250533650499972312620534510751142429791796002074294717544858214545904925698464087915829000511453678501870750044207865543579483876972664383932773013390380419410950771231176606472806936636456094540043041838240179437072600878321233550403242824186534932384030200496143925457349302649515596607399311582926627359244825692156946926551774856056867597734890960205417370110751275090474360493870680222470611795774850942143025176763622778214340102900192306617028665967441495266512415224519869264865813323806484524671322773993727341585590683838147178948772608451007704412362291122841339775215422060251795332762293341732432476731669477382626341725931943601218654139924615074763862900399839718853148324080967040342257991825391582483449037092846285868648121724836171656905832538058898152982895878920844045160364950199259983644890663242244331014487372352820991508074349868208124672150984437543203339282710506241347197762140538656383983785970570722899165661488071119528127880244452167388164972739539346018294510352310749866922337733164879332879117707454669950971212050654069782082705342342274431607729798095258775711070889372191777117531987609067096885368330120610573358465272896595743417222701424029670135740606666723970345353960971919621196068412592004199308899574392882932311917808924141415589851900105371095862420244581153578707140303269604136161960343941012609762202878050016768969629195592227335086507490877436579156870967976842990668310943698447817663650791430469398254698904079307183791076466865177559464369147785823950542827847599605604936696522585422414251238535711647128819585596929040417797830478347417586191127846154973263411919444771001720620250056645450305563071256428199111971569900755375358227121555396408029506381859860020793801048726825891935869580722685987743522025471270824619992365660391988969163883664486195485125380461991574802775898513804869433091314811901132340579668590024521431245226302440419544890659320007332279254331670160170066840400175188249508840284664872195090443442083412453442334242337918905291514771273507424288915586885376536080050456281170859478976998471146200352761038906210004715767074730356190684555953089782194666722699942822036470369531640044113942959634150636415202086211577981854309844906819036740750005306580339509171681970644929478368531598342866425573272588545606885479197995229383144569685847263939323837811532490221095258823859164070666060589197429504408715747839667744547193295096259522850084288431916801213650938205971103993488356940530076074974157288033071040916322891239078351924630315170788012346331249609820902493174758389406564807565769038320877359936948922187979443793015052291628342184767907488653273761113851537025709999093034424299423462685103950848752493733271470728931108232241176635455984826308294834520304730011248884098211145034103681988295059407968451977116352196387728379742101283648919834549824208045496301589706161725217377688012886444281503042735205740239221789308582103659943377105844054904470161398640996202439298068450416083148328991997404615947825049006013127401639436367469715377849013153812924863871583217283743462991890333070343160297725546218393914010633972554160958929369010833451504690546719732805671616414054677349568885988339786570887278609145103773903832768579835134738423596214827809499413848670895022763395919335423663382103028835822558092569637576124061647285369547405329047064999582984649355916492284645282238011526027556207370775544446608023834351875781587485810791090762907330156772209065625998332418207276459800959578601455065267104425864996161537356881704363972258856581719328203770116188567853126105409423079003612970841329759782211994174833649769229105846602539752330818868951497873268673893874573092996255881283952122273171245096703157598978935674974674900317380542727499666951807394081318834576379711898085422641961901794321944089026314019980449911871243968935236572511424868205691903954841760320971359240459222050811490331611105602432773776238937952229407669635877416011137712844335085696130752522406666514937035378275796580637697819744864226987258145678995673539386530066994097681942346222144008700734265398309021489605673062173039236641592231400294201553939332661410783755406616868209584128990835860211642501376484431372249851910783665355956608989265378248437231695474033016636918021549768195925816720093297465468162106013528823229898185798529123305947131676825595493826670976377185509038494314606467003300624530104260972294017882124917493356274058538023065195601578898239912180310062597337397841872467735265198840491564365387772295853344432162489912934308369870833134973834494578349371743053283981019057674603460343783461333273147720218882663210142941951979284556355342082131984177513861601257213632297010334070569195899021203224578779580335109304508763219841724987751474529551842505978995263112749714127992138709219947852269097506938303372065788349329820965475190870020568021434993944697616189404534983922605463902315249543859537273566604914000921483614350779556327275728109403250625258866511996899835335880039399498815993498082164780512982942290400786227247088511618716648236139478405899561291086817237551065601828553296578568916594666022163428332217601995333905354296584656755789474025658126211216683923351292673022670665759652209431183359940055114563445590179738807814554431143982785151180904122541236104651052021280054412591724823413799988597251702810039536888871742109177499761368892957193889912178704313969589090855012086526372198548767855421409095010064378047589072175699991569949754988268513775275149641108364188205050607440406798364168025124054351675371125938910799260729551677860646060056238129303017823843686327445412862401746190966728470800850698426262569032845964115965169163020238704341318166915054410371770648225152657652383158749547916891151146670775141354044759524311062983394616464930622936083831909645466352640659399117512922841585257833706262349658906378046066393042179821949068777312602019670733502448012863812722252465040772839580201499183504097621134178256307771828256584910787594187257935212045140367873487833338797497957336886498281929509479103204274504812232667448574574082559040915722656736953806426974820159832308413750317775589178860890344134697806526546372283427937023269152296800841827732588474001645381304017767161800487282307332620477541109160476700690699759361945391162311809339062452594040490805338125174785588918388473307852494890217267576695612663513879440783704969845079121881135655860571762849788372074670647183727880295473417081880067665891506973360751785448303492865024954514480615966012841706771135768478878873943849749381822816827830867016440899812960494144373340991254915767763249420128558303058564167048011502431444528004562313191726216593629565542160831147294153544649524863492014270896744507452924935951624473203738680329272526071225184495991399354743661382589378739201784844833930483221093796958769320043323606642531823384406665316647735088574418373509436704128638486628101993056977691743800147373503140220100048398613324317861722732678449933071642679047934693461987062619055985710096924954588923250833270628879486845745307170726312603552072998298914268287331867548607552311389652170991210329079408919790380669228028812243459609164059625502008373706923377379074521166245665199107477617993669095811589783640870547064538765638838306820840506080102392625182472930894219074323628824063307297508115156660839531193882591918779855061397776001626120731379092695358780131309396578585866174746947634064194736580610435633915524238216110737525672431463438383747971313838743815012706384511858282806708145291939655871941860406475284766104328834451571892941007987055872881633671034817896736044016548566186187998204925265476266523106503267399469509464516634973013667298427344071445410499767184983968089976264799603899616666522246621523552374356546213706085311528490846479605802554702004534756850009937615843175709220637375124199818500284333151910579463013738180139073847021456288840545333066983848057801345044376367335907576949142284506283787563719921274121862543498779484993205517159282488950924366642436913104244550485565514443691700095352920673255536908595802855169123984311594944567567479842964343967727325774536375007851087366471602226842271647012116957077847822181579810583138500413843642486864142579339991823921784895145493136664948469375610015084298502609439192353636801259787040964818626357844882072658779853050426290506013270993216094220375656844292236011338132174482399721974348905799897652022941419118235096720405450421243381829605633404674699575042751262562858822560191937890428952691972888892559784452762224358436132509777583412951108691653689489571341014011052930123293683356815024492697434367673312046201047021380100958506599720609356666237039227155393442838409786352528242447116305174033464717587723164545954784792063137289112962166988781346107211713047484775040129967284975988286150748333731419299393715304968459094178623004663605986363414739533260987929733637525232132639189266902467004424742232071454131072307740309312114481088580187225384747705382262463611337441826199661389622727568898599680993370076973646723374336101450337151468223551134674186180010566012040523799103098581900878942703908030855249302715531904801406525671792933084837904801385392415650367462583967652662389498510497702017705954318464969639188431692242721411270614060351988777153985563188771380554672458754749409227645197800081265199176187791823442092300568311373960380706522458178561109509675665541309318857043420758222512793867624055652428418339438417298320444451980230429112153365350614797107272496158034958402127279909183890349713165103267503796841524419128963473800402298563365076834435638904702196054886479923347343052331176820233144270496076204755966260430035559011917006040023944729686397902127074768080590683721305013658016252285794770062257064495250360241810181903320298164057500839844412039798498335559029131447003300219467595059035485973548455453934040425881682670031793150329751594217769262586277373621112685440418548821056007149034594552438670788877317856835536978156403567935795153131950402806383619073837714932678682744946886630513528874039101843372830178186051703141057847699195145533301979434815743899517942121762438211532247329422028063023450112025710886120479819020147324171087820372815347593732242759164900817720589295902407855319900503497299902562035964983170308153391378487634737682006035194230725977174448463685034940851418613052787173696427535110957591585317594349890898762820642018105354809878818369308137756396758264756032623149297023217827386837164461612124102905658509165520883560715204764439425273891999669935994603935871228157415925632151496381747607509655857000480588268136647159358939717258642732247987377839190763779228009292861357780436377862959192138541656645616187991533829857703513594839422103705670961345447629325883827103100999461158030610812587824211931623884267921851766659329854935151698816723691659392697652214068443079842658224397715444333227959604180577886417988025351151458893765885962855387192314918186936334739584947912569061076893903142121420916779787039912007559449945868785496396916675064767039622393189201794224765497825152108832565238697112502969122513271921092383487348244205946072421727933905338009976217101700691867918172351851821491866639950695677419836732727449101535857369896459037202315082293229058120210407082808433150716842239121505062238240786548564799995290019263596074990834917909769865120213038343805072227204103649864292300539204807148113308632433764699804798108714996908727686816305631668587407465914852704906196775191983293451697590991008480963049068801118091680951368711722416240708564231072020971603711759969031009679507005039754025863693024752658233036737163138412752780270165251077597423375401347869832055302589103863300476218031374279377191701670103568623617678233312326367013583926937587558046444657852319959375487378504706220885080919784216922770893095499090207115928867802069369034077649115656965269314228700790263021703244124843036332985161403227610976618686755278401956800513141520744323663332032101004560533707263556458508483724412644283586171904369951537931626532249776885323477609319147060564739314310315785228475877511356445009723182033315874621267765319393219198910688653515406395834971979612468670609011547303354506953508152436949861389356699961141690004211200569434462125637701472693226478141386567320720254977574662420830629483012932582270140402675028327600915215015229909105044605491520624300689585720297320728391807859657351817362693751056515683016424471454701534100188875591164585369110327203830813056888817443764377687167324781143395670825739669369898520929111100821774218671269553552134775149885881085902902051961426702507893647932609470099274985036251438336578814047608329725747229417502467854199022872584974455999372886944785437866476514615718210854131768750586745729666982806072288438357375686060102753086577022393422409581805737543044150577616040170653674291331027935976931108812478773522176401961084702978068556866016762005269669198788151057221417791723387903500299159731557434351505279524231935114101498370901670375683339670534263726193461780055006901630698636504202619904558851708976471609059794682440047503787806432624434867553202587786576019231189576847560191266072980734214791708691795070064814296809286464211974926283086592109477570738313529956504569055524803341897488225456322611054195055150514581151740590837223828063427862522031752839328851336390004041471879882971225961680621762511105526852842315943061768959263483585707103541449827288682339128527036395729690193228707421998645049312966751968908257410992266397263419820904691327016373878531449548654898350773865395100599188536042012798930092823969315966825756433807948092559815436205604949327397842377517490790270728022358694581602492663307792067002894541379505121923085434108666068662644171475031936619267147062722740005534750942259882464428321386028517230610035082629350715094148851182720840955834876808388265958834489469109857665856747255982559801586557401094058520153803689717474282946255176998625478783565695700354735076740725707988445496391798050415743212182550420901432811721254465412939107899359359515690397359186682780976162703992327866974988382589225744395272490847729965110891626919375845387728975234834423475349373423791791444421468010942375083786112383301232971623190442458363027975422787898187896455157299676597455493579407779172573292088686641376778383696472809715747408366278546358266628303161393072734575563446911009391059478900895556123679324231189569094308334582974880317882677395597236022515949134422105339630850272257451026755182140057495810385192286275303686986556030356478378054997087972553765948429041674672875425064571331213148818406457254963756014124640784018098527629721923484486497626744080806776193028952336772862017227627654090436208095164991001941730402775860860073773126594199500442937753598346642891355007863929038948536097099765106323683027453195397053624103622252382947111326227621759675669934646710975577163383937877435398839935965509190433700195799481852532338359174989633190823689023198202674217673546315064512131874341322427669049546887854832236894396051458427927499201078674076073089350953277904697742993351242465034827563099728649468207183188588875230776038928617883051456056157528045953378132557182507130022379588809932690696167894538907623920029701276551551242521644207241818893821316048251673078225318448627215942254169293306965928998592799760128373040169432687664766003957263286529584831209057408765019439764667135073908458874399672153539307108686544771352254223933122649819563500979521841259766093928654937346533370592300053862928706158516770864088525162379157829892829199437235187133876411450397218597550754530107365274611749942013361747819587102058063251190394343462321768378560625224861231218216616956416086689825655510871688409771131087978422518161639176799712355549450242305851743082788953930470873910608437998695602902286595818511521318383171927907273466618726478469639385645855529345960662215857801664277258140071678130085100703947274472826656203871625309892201780099419142915360472836930991954481034701276038421392195302550464864765696421160091146985147693652152997761174304299078763503050609841906982190088333522784992964997796887541381116335108147822611152216706745740877676793512353717686302306560371874633727538214513027492938096932663032500649057758969964519290750722279016071137483659686967978312393403415234480231382521086086671982744425519266344784075089204724279931803558513573585478820704119955146089366380860355679649008636250746826445609971941546758870062272642752613957883564646560214902704158690568415691574549293562883483600345189953817907527129193671027329091624933271265472959255590790207961987445784712567984209304959437291382970327045224554825005079218035148399711431670051845291866826854345482642209671326013867879771129135206021876813706646429596743280182930302737083937015204652953352557437427362704419379570301746289023174109945165282308408478908731834448740442639134024420471329964039258768575748769268078466072268337861871261624383960643569883336540291808996579724778387698664114059077372032714394754055044567650173860728428426277124574579836872562047916859576446664632586697339371138094875921164661575991047839874023856838019393084236646624590549309916549165324148135863794179763653452621183940157284837517911495181552269126644243127695236384060788490612000108735251083463824266568373663150835625043119731907264837422630882763978501271934959010478906449098064959701255837780563903759685238318191281078623488689929730978642303732600674780441953026330503224234111081768994818233349920300248349163803785016713395208972668160260806632728237873310628422544207726287181939452426115940977214209039581651073089349792652120142570339082000580414084637724111131777564438138088722804297449871140780822037309706241876692060802368712620510676822235898801529896562098404772806909982305704176390114695581512119340592910465461085361378185275385378199986319161723694930892800027192470773096525111635802248480060293610409524180612813441598710441979313451212295575389609991907277789448715419403881226761268056306347008034131921393815114956602042007006827309999297742203730518804152239836140350828901926757283087057609819821937437722375150320291043118918199205091115153633251236465217090414618499522980135043727651036635623630536605428933377807432436882728133998181414904753978427458935298246881811052481434790309576268402495366871109567278951723762402314767226875287522176396227637949468303744019591936328013204608887208979605111913063388199264271261910705362356465736445803914388269673176094942086571424973618831683953220468193722671367030582270970720795734122581353317510391513717562857447029155740903777948451481922802169378090144056679291683836895149067579321299262062559857710936985512020767011752621477073176138696893159705970545161713478581745130392794829002847695547278432612236830412794599218715589819115373768703161072618065908717615656151983250194558008816462707495726325806503480441689514532541441939471582673371335450780404143412253499176139917562038357020667105078585089953416292862689758405154912123930509461024408331810911785334586662931457148580682975654158023749137948099123455351011374617659612662843462972601658981456083213248180359513172167602810179919649487989391002500182322308078232495700474898664320622659749949188828090491683547882074514105742224204667349553192173411053459096211301284853353536822166906765270895458125554190394722556055659134724446966379881110374229018267590599442555010644508612843112180081865923965856169123551902209801670685728766654127416695993209469579972870850658097122789787583879254279749289877457169512895897341848775562872589433770863515245444416172986574368166361210110727167882455393426047550496414727473085182119364812866520905135475980798318710644559354426654110580862144903212054815957443356213111410300256231610286237853991295836752650957996643492874916993647775596785595400511408431489842604445548405901214378728171377517655555131288377104549418057100658459532216982025016072590642550917704072369112872137413175041830261603000819047224514321050842131538786095608112434206170305030422348128097971350087678409482375943681268135008108845346323683892786812586970575685671771811258137335981043269663399473189147290612581004714201522962248336473073909661073162186390674891708101911263752111154181445042335532351062397875769760010432374175397279425583110946900820687803552538255594202423338734962859058134242564896497444743556789842675635494713329435994294104213196576383289702811006651469378522989036720436637866052173181143397085610682741999455966777257152554021874185088010200648967497364832736425708604942127921234925244166610978654742881534148506026163374511992043442537864672634681629029163378019332573929399213672315599815064265651182021593066534135481183899786155601725563193103211692018583113768614060157928183795134273621582946292318777202560991343296390417058056667497438876968839013579971499909981696375226604984538593791749715127460581270717925619282416507268876693851984354798930217053604914506936276421376954120147831054431094251755400493078001797055613279011735264151431095057821694747641229554702227646985211208369451196934754359190798870472797793828874018853618577651097528331895205709285658653321410393974163347223386502803090673158270724653905693825736695026814511945485504204748614064463599349789140385904607853396864346320805467012921000961366685059949894452442205508443016855094835950803145689780517511099926849308613583161920501626580461945113521782006939883290694206878546611075458457633883715638959170078164979124576117303148373337919607331527091287340865635204077023504119821850241594055325624554645204830288619109417781438853570072204168066872703154892137049578932511430471276585778619183793317679745676222905741259058745659926079588081305999108599940170311803715997106294951322872714250259071667414223929366744612654130022534807311291326621434492400870283967183933029332130534717406353450546250339440641673186161196810218728862215965140791678387292459960763686318327804518935206822377712314643085487866436125114515058140530507052444838635962934608339028444520734794391610242877757879871817087623326734041532983057509646953228579321904556967072222915254040656946889958559550529743398969707276109641602705016441009154864764406565046173349642739772647987244229527422179601322401560413357684080880326377088001693524958235950874843750057627630860106269467491501240636889158058866845953313151503800865699873299127269840268370690529302661487808758796309107237134565383785331335140871281508498323038107407256654215289015534423548073316316565619429117340908551603754861439143827058319862486469453380407130694022457599945161801523052918553281954892623533101568939003472949013723535545454014099312434190779533967299165057570090040853521130389554400936397919339276970799905114190051985023810157509616141316910344671503198473617921951694982904313114671222865079637967120489383276780417910037743650784643860228456622400602142034815794999883534297660676153903301508551815890392015514120644297595561640667830633907631666855133201053837210000239041029699109612841390345262402267601711990859303776325476764920670124142384135994343000875152802857682283422802881300056956814031804629159446518843366791878176671621272921562708996965042736956337316831628351466923581097883045802896586579650130930382437441927282918707192371721758501139182703220990838612391953234969442417462145993552385703381285534186406077643038563749063404230530339858647899819491101517238730584130975731776531860302082658659629407772715489705863857242077842798162370428744934362348160869034984286605272174248939647386386229901676000939431440912854383519786558935038824738928497844938594173803824143135400098487028352105146483249833627088039751811574509332088342905391089843748347770606105531379922453761663808494788140969089013063299374613824867588970462399490149150039456363192377173968763314007017266545472787341861819439225727585817052889152697806493415172868922351162503245711534168712597337890404147700447937047278638800177517630521398738070557166655825985687538462592001092386261245840946794643793514891605923749729794960926926371526033756599179117965013256536338267713051321373323480830335651703471463778164787572624957984912781783589184274270121212082229654492469814411737603557113629812758792345241462621856728662751975511626985011085101113687352121726062076025812316259268101151315217458133651007602360471137702917827903995140047257229174369974822175022645080982801268898725125889377721298112862876825402736647536558702069089821790079707106192290694668575355887870327077520407673548460536203590580883054013253999782805512329662564240001961884670812644487935730158314163721477857889265774260610424376002195289833283918657382250030774851167916013450094506039698293994074632963068050398715839381592245866408744177686606180480373648123648221072226872510191030931456355101209667895677626419865454938366377848749673836444305114869047057633002872685153664938378653074316898445093411455562747384059242281014226781411536075687532193874066033215928775897289389756490226536661694390776452571887084361580499731384014370337011858022540138699412874441433482471178841214699496351266597668350446039784264604464043770421727146023789015553957493568271249292258463014217768852220083861912836114640962556647443069972603078048198715368988871033229675061861146047286342619748402760286453566730349449055977444659837559334311217770492269521412782901364793936661512259567326460225777651519849796026827829593999655510141916238125011301610489757075085607269814363703409186899063161097917978715413773354422791625532522685523226774491732082885128817796976730154743809323260466341130551850000324838675072762893398629349124188512993571050306259704241890710213865920408609139088870663877602597959461388928619919777957885415452987639321163764156129627574723047389314751982016699014379302386259469624768126413099073989306502475442136949233258621035189325052816460348358927732228859931853190111549448120333956853305910687182387751616649854437871314508543046424728355031327329444540043075335372788030311207869498587524732952325666693508707589550479628193685044187067540646539046439120487963133556961756148638852413176158036383510680600016409112957669341626226073997561238470551549354012224531517280385394174229659039206093156495729112187436234932262600722678819031629363269996011642129442255103512367523386826951701018048968311023118821697730636769510697565571874017805661730559866034250902115002966986070027520068861614263455823575929069096909961593355023827585869223778709208987048486150254640427047908252455620049906643849790535782471127090452766425783111134915036871351598876722710635752279059898956168840036703634221023771179694746961223570972453827193709481710381085278896415586361538469263775936711914056253150041725222122461133707275752186545109846028346292323627972904820754256339060624810231882949586638332594884379205294246963789908708378792771688124134567447727521958667924074041836297318347857099927214556888007482208008043664413074464451920171586727141975087436979020449108625123066083539197149230219118769559683162975865968531912165160562912281435836899330991178116706298494274004471354579483782531991864589084277217842344889033677466885207246932678861509145002666919811397903007519357417626775494245191093616736137329285570313596290208373332317750451093763652456682184454609616577158480584393312158735465251500863882439242554928828619520756516639828795953696151604983256725540697685701809951835355797637112391570166449874161703177865489638445694762464806970484755334017707010305380121407744298265788987535825687581371417838233116273344716215670966151135825099294747835219377541931989997914237086468583567841990501804745886954304595605968545417475502608093387225593504178081852072159318989938975277294714088794976969416786747970393311850622536312416442713488842080255164641991539514974329624306856505754185030211932794142166481099949080323396363201251392642653068756195688829763281418624073599280445326322395676998473181768147105765989127332684286115128162863948882792782665073214482319779222555546336015029112617228265264734318578846777146525652963560856128293243636441940956343674376359626518187907903738395725118568637165699149305022890479063519555591246931669581177126275343774840400028044405065099969721350867039022118815250530500546657394389153472207505568003340022526545499859333830841689771957049844423242814158543341344937753284575608168258893243031155601585141749318131618119471906068272961229885376479610417308439383983418137354209450206633789578885016629524313807912126063330680453668788449351505986690292899230037449753944383935230305405903636452343418928652919525226883484953696443005446103290188103572588388522759235766071443862826267277784724392700905831383399354513648759196030242890435993389586744815963490645153815602953720304066509763839522724573925428429249133741538034374595325796459379907798416993803872777395396154871717277463981331870206953884336493292018112376274470296959017691638329083407834452538063620353145090060527460903447442881411419693923789287371506425587784681037817695915523378114900523680831427800292217466352787529146062392575779325995313290747539505757178556669787903541765685850059598187741241248986233600345229447944475861047062434208596748423647195584923994060074975266563122459493213844206855048942150984075132826599549739680577176405633842101142155677754693682257186616628925686819215836023685938563989715917499215927407943568537632039580091192590373323440483062433916759200710109712792842480843809529270022887740490671294117099914532081145571657734224777432066698093666170276055471316346651435203394114120444595871674452784916312160858105461294663017613790733938287753279348710445394839579983492190690516592786545364778850121099509277807479811422036723501531565709467594800993346635817603543439113927192068583808523110668511166522448866870413272373341947368431125426911157401651488392622087552350902393020395256075290736804228666512014347409224217399368125888416821245739240197414161278399539209782831283276106400537284647085330991300911810543818294766341134212795092435863538318172371018195475895694289382296706142508890277982062993567012093350237045564774644584865505041431792564219761513316815955568364068634583233757204762274169545256777179633026470142761356430543842195757079985023967393171174173021398157482673235930839454723573184640289981602937824482276258986975071458635160007150451130167754616089435944653827882492004552056604675978030772917414440701570509546690983875080693425546959152887759460499845153735012091635522282093296324743482854720133168621018329660040517588159046542667008889793564362104343133777046361308119903728399345642107917188681898593246225158648221778549808156288571691392995597739069831668887940173014632549119940443838963916965805759298332540679133400699666201708931758447026625499624020089352516075294666529666055412861066813499893111695734100839501887153478109830192639232210642156559887040976206670375590643216988410714354515076541244335361734708587390972080315117802732904966238980367831515778722597652362416053861173894148604691330857901643661746146135636892832798200131086820717713995180957057825740830640432195890736088492299018278917932808535640763772889160857482442059699891086225511335995020333173097514313714269006959490092735294909060161163926153535340586703496257624741788997616004183936409364109225042838207439149931667831671035953884437791820355002287714705040385864833268501935709508633799985234027750213249492523813475837014871671435138980826164519124210226988182808644331370190677957868780759770452103354613933719924426845618113420593370836754169767275563767907606017763616914346803580567167145387061212923671503813373679973614102615897073239279094770981554845204236583226314069922053246844665023789729256522200530571683573642727056617881446161829503100573254993372303873172549363553684972326565157991027396851466060179218742438705615265060340347837840464927953934125892848485765253677425326638914298187416642904353378773733094007886391768844445835995415053659538799672910576142402566574726019472545052995262913067956356133721237226939329759100529912176564208863209860504864058858872390164602282706362567576167687680798136763748643838377265376251646788621991702874962240158491150396896975148207366468663984032687205438772470576764801667550998816610465586491793491848100211740511245089012789455507727165899682345655674590701218264640627614512909743889845509966040058390014551314406758748366134290922978958985203851603352868859654629095796559490987461442727221989522220701701541784341215910538578439082001805832461439133950001379565251536977735925318059528992837260507431341149590907730256506945821454461771126403836955952618595294665547627878790203620574015928755894107465247194203652426725489105860720358430101974146785062573975724300294040123732630201573549143583050524863159068566169570812887016380069681304191410461006634510168701755589080569421997094593083285448502471485692088466608577827675296858097954459630000191910364143229353104135681273263079475159950073712613577345082605094477950552028158934550261611252839335817023954261489579744909343574446591738127110595476050259251829608719849154775931421798761256066105223380873915175543342227671913195921211636639571124930346646069591183694624120902833735797222139298119047450231611753824759320861403053449129068067195353253675497367439611606491762635179568083586936191249933357950014144951719642797924785059008866419150669397231392579787122305683556728606098530555620296579551673718296866000491524860431616417794895616825989084009409442736911382885053329168477425530915378070440042112432336388110392005866587946110529523434259771033170367941313836915711104180546824743854777095810124666623405163462958326197756746639297739929369940891548973963460397912564575356646806319337499371693405924277635161618725207013602585650102814522833823042836549162430151121817305029669082426632393119714046116357568142652348072075199408140058464257856499018324095848970209262278496129066844901985462904091816917587360086373452574964255160281498835051236063025127275854046938102852077377314567466422537078842354375586113940185437247070249402091763293520525335232765958997688000658798478796713639656949714773643142557893375530625931699812165383449771366274472434283204510893615676767823848134028115931877148285778194662188116544814353659205454022592533326037059599944083523007393498371508943457709169952788729662498963681960585730094087870462683024956625114247676364126982291064764998126324453515360412585752259180154811653843774546388664505475601942132646791817102305114151839669695459010236472119704276512206064881958706406522688208042175802521038094080763816568610101824707223183116598146632392147207326001620029069471586927336652308412339514420105523621401887728827411708417457418644499540679379449915700280730817174970477758632949246172324772172029383095614406465360689629888990658862834083585408812775140554179740481030335610816672688765173804259114367404212939326433054341752346829689029478000595148667025478930347607676572412477146820363106958525709855215855892243919804621121048937806718109468386669918340760478691238383590007582011874556064543725775428768386777034778466479745404701018443214154969926321016945249582429404301489697000308078879859910336204822099423637737838901141794300435991833945841597882196370305994649947692368767504085992492783225127035775106076615545006709461422497982832659336387971618652187233146170524801944385210996241562596869419571038255879384084312906424940649496626892808753686371129611528685169488301146191081256958128611440554120127278351287183983533817669125703980457521870951950192662474004055023329367024027560937269847732008456197090836591821638947163889329587694206580048099002071752111368190420021825669785306964610388753592243063306832364408803819114291528765127985450488370183056748124770589840637690708345933547320546122849278301647381998268788409489674658544169195928969957675376566723662933819181157437016202198033098595805353626475667308390996655523615524222156486357727823131590335160914319275987609967904582667224609227139243965849052351352725145721193503069277869921120857947238892272306332420052742982870347541449317337057708339672886748784976138328353505490097442787197573832245043434970742588588537869198884785538931709634488878914562316164587199533695828242362295862319943209392731832925498321608003041074510692807744941081195539924942146233388269913374147314690643712224328480645900716689022053819739794305260286263499144820600379542126726998495000936340262209805960322181792503341304556777992445064107865005941074552864216387926874805577370643372237863453648079047714025859093065768271646958725527634866093451393383140712077159158501670267674914354848728634368447841613395885749551848786695204186208383454104164586962016941822816835505663889029239749007359830452438515002999790244042989544488133224331489408662517133439635883835008393273577418138490994333556101175619017213838259981633286551602678668309596114295056871536600233089523424567345816561328105451729108196249135279277089684307283874537494118485729985240077125132684759682798554485371195572176730555160249387313731313321892520533057283750765570858070837942563618844455152780042275536876063338461031848650221977867676040860979186046035493016705398721663670852627219093580741069216338746916932773542326529837488527644201475849840929472727253437461422237964269259169025274315221663032291181959796039360447547818993792488655360970483492373672908600770079661937272476823135184072843306542385428309315083679820390340868072372372915070367913624028485806214640970102619335273993172182316912732367898306397993114423946918659053040873834202441827975515039891997555443368616915438159709994993785996510848663063985845126821370442011815501611117230396295954247654089029981141321934856010704168268464028518875528647251324592926862223270474387054972145229294677222406778379555284429941999877499849145252222451798821011892409556945947618527497490454045213926357251464095223204738477806387312679539769904168608466456846757442743391829552485179021598158779023743223829741750502524675708952858105968690608810781671475823780315914552880882779746802470787240125379964038959638290231565165290460239465006996275944549805460843207278960227667636430123139259385289076374113154104383402639956134335930267257697895641322402478842579441671263807400279242233978373822078081397553919623836595732636169093865887778052893434388609783298548366488377613388290445066727951565304847054917772426259890384208260495108336482688514133642012828117333877513358399977636308772897205718027648668337325608323629409695469876929197943184664667488653591283960864259891969189560659357552234316774561910002023133404929531386740188484223504370929998313796354780506390354125610727933172563226344304579125417882233600183484824408614666180482438612076475482337478216146819670069561299223577572562259196199817584576815088403207409039791142380438569231191668751551967214038232965211124145034987606191550027447111148816186288890482218383759408470147210706328831625125645329487014975642333781585159030534261157667988098887595473887662977650451850546337167477261923938000074903964551776477229890695272464132773749636857319889944064189192016566495645685712994515233857617352489540092451936477108934756648020513308704584728320549479117082734832774183446441790663584441261942173152507490433632969888608179520060543883301371747182504218232188650312101900021985965636466721356300277316623777433469098075023932298905438051245449084810313294979984553119004855282708384051959656707751543324100878511032527728128139845368312874553688970588826377817932778554183973832844401083741697444377411524619621480533561591224658509138771563013598742984261710557985752571199547029125096704974060082986015047061957224068704191445685333207465351179853482533300300113182209663632452783053981932622444226542326175112139907267404648697692640192382868342201487307722265683500344998256933689883226521627469100143383813466235186796458429797686158447936263346258493295366136454291813331379785914189194536707085325087084070622687221349391706034239824989213718796150602180164725191668821468258530806682974980097722853673968169728640464544617588014337198507305813500556914084494504390759140754866679111282717156131036891988971571297778349082920771104110164571121281492605892510054902663642420095102840062139750000825058589905232496062439728043840436710792430523067976942381701537750518193483953121290229266760221742440433994049241686344269653605562616334561309463164672230355601681531299982637701501220720307593354069351899826367917533361214715601674126884640077175569533352837947261020512941296545516563286749882574429140196695797777140020145650287153485620944448281938086106422595665541190768854262986611834199743150107730110104060640942032634029608186953196607266813599489398240324134819462482090601122185384819788924184515820109252619503980072484242710865857374851026799573055561821546632867712370533886379896018276412186928730139448634482037976820233376452729133800862339668089561583340071439603473760389724326942467298788823730639129729242536629785511849255028271100932503696567126641922299832557958439096281589883881598419152608521323422846397386699740023350827060983211247488605461764099956287482476363714008292486911189989699500626109308230999598277191796544422380673727568873104888175521365587006932589594150014843301172702366366596368967566743248560404160933078337752444411903955494491977030223762123191986209394163271078047303403716963861768311750951164921850919401578963396567893739430288880763892379283666234840021628418779174440021552302379442694342611237096705155561335919778232426006881533182852971289821929080812332195521893440870869241996601286281629110205256369138336799327132588971620172207031844165869733906262263154860838920864948139374711522744096073381539496782267050884356724219212446320731732127385654074633168080403269842304763809493831654739974039726194351815215262067881192045645555193475893756744180688855095417696643495046675089634558333182786746334228610996260622591720924021696378441301943159052695893894721631759696140433105322066765736934520853588455260743100852903369144031322367443216746339913556236520040656036759412590430930193479225933602101269392004137869095390974266580684031294960424715376653990754145219593399525606400102142416764695692784929318684447361447231511164274807384324189778080892335071252650409087231614482515831191512776007241199392455818724568439079493449176097946918569575546991050301956612760385560487079285195672406834503125251282293642798576186003901130154432533969645882217853772956357957587026204482304901962468315152044472162747628945690348104372504503655274037403888679010361157996057889815616063048607219057347822529278317752891794746635497253037602282580139505177712854810545564236694436429203514537431883720167986271152475372509866865247984795085524095939914865317737538404351194992174367266491528342841691954375399085918602617078955098333003449697967336236687616774594645896863428618290969611007051706702274333056313293673650478754112734559651667959053667360024325864200373476361808567040138346521196597902890658469163807151715390879163771341245899614880174331035199268024592976862543246827655467062191695017088136460938579048699057362495654208669700472746736540879487686206799118234677106264675586997059144886277863265065629266697596505679441914835136750927319719078673141127025275648884136145104677552278871715666585417099003691013012613417242009455262160073848337889106670776301044725611792898431521631028949727469346576071346459206983978314309941568416929043060607362909351078021191246867666573271414657839856348938780328127402716364398719183501706955118682061056424688765325806430104852552301860989090684769337134833241424754572640380285406547939953685435134473585818932804182096144264767610325101728033215466523289588899531192413617834694894550586724575871835465594636478453318451712320823568858251340646687089301676833189943997946528666679865068790965532352672756250774276406408483982043256514159915059179026387306605972869388861247997387322055520941678296185429678136749062899742548020617229894664124033477903736462283098327176528673387001184205620226883798653286619820309240383882422487177554748986654337912762397682326352094347011956869830936726153633810726331676679713867212030253722666182422900904747527229901141682631143958135974831851921265383444345335538601485931692540953748209538661917800206410527345589476429269973812167522854430179221763170287890553405852254942588968784987966619652174441826686194172576851062753995026486248561572088590549738499407928294188087221303483883450043982811903941152416323667113662398084820007342285579714123567296435172660361164253502746289653049370625942265402972352170017735568513570515725480445379831441887787789587289919306150794786385623316817640006096170883408454538945468554779841564810924784290500061719076911688843722904836809263701857502138719653384511161473773811844079098612157009019686848392977271250172778075965050537809447266608750985466886005197613215366527601544763856948717873827215582711662110486341754010871998860722959361191443381522275195974847656968565251110556938250694583425510071203513324362202394771874447538301022975828837433051689445342380003298452392360720353643445443479349964244508658371021942305530937714334247474489914444595456825198589325222531681932188435516151764553319308414600121009803654219856289203594435157466472832727513000989716587955781208183246232892032290335656114166771178961610848946250293454679027146187343171490059687751205399923673906668641729337331271412783317187515501635993956312632904289921168639191189936345241413017501609542069739088584482314952739068621067827227829475997567636262196929762531326433521992468275153187027565519928980782132782712772625741777522503384440018126106122664676871923728103195979444297262680511374064196458628568517200609183907706790188699887959927446347682512581144957262268997753128451731092236919503936851028289168033843792270800252687217453055006493763681604132740697580026124415195846738930200496701045655646435410844240156237398013744613811250536093571444414496665459370468822253650756469609181496667243806051916014159609404877597681962025535057720499705055884121520013458704045119441077724843497051747828853918494377363952877424395365120282628774635592704320254235461331641023433184719444598542223697263535107830487168347362933747834235807514301887033102614881964173531558559442043122012321331525393812170655691221811120174995535098984876782952272480360109961185957202576021263362340632070589437035518314478180560064651528078904684311667517890974284621618220067389504348584319616993110102720879572465914533213473010059494225194295595741555660879306483618178928354208016560482683346396733114125245910394043441326412639299512455249364242116887763382989768061667138068505555752514348507725937008625427140572945479556334678654787475060222240396660934555319782030760105760400005874553164441972356153557974148199223354399861662545822870767260172938098786073200731350596000298847991229490342791050226390847849007535187260692783899475885082974350330184251146660573636919913364695246215442435570161042572189911810775859463214022173641614428984265519891216658990478419993936657569997628853028910590372478166203423224131982935653561254807528483102737127637842173877441093735858581158786904399479956641431567608351094846858714348931447597978610034218904499000976571346675152801441157215613203753748252467471605718042878477853793630344294561053349433460315269193471365241779116159684727221961037539419436879196529940578521355557541838100158727466642191011697277006214309479336458756920218054872833651178873406081794763094371705709887248756959118060331837007300463614960994208719122115254245584642033368162817461550611657828531343365703899440283020485570219101770905012792015317921462745428009667071205173117630938753665308722517561132899820448083403142596531663387219439501097921213343667262815064146402730922007892871089028121684981843629549962083478233625460813800333270174766518701188145593651207374605934742785218477891519237196141404743717121163231211673637395618159317347306108186136662032798565962767076893821159435303109720818052089314936785525454178511273249605235826628042436228323290359417989740364107699243958878567853826056576602716336776952442728696626489602265390093518400654170532871603277340767481357905268993859920398330810624210910789830070765599393558498663407696082746476685286780009270367825503164565168612222143381661296315546057790547653592236695760544203839524780415014880128075258248342146368167853295315783808873936591842296676289760595803964461371301051671652058457903375691287674956876716583242999396428801761880012435733465552109370378137342090898137348826420220720133469937976195940721005697282640992748138443715882195325350055758970942046985452587491619832807376914678615264009047169675975140904732245963058966713485644615198048804553437104278441473010966618832331566615320858925989663036893311929153252633815728592987791803982706875817924676723860791724945971021419271616289711364516850875594480681193930608346921936269865905295852043556569783342209259123135594433623792381184374791557857846858546561186969576931908985262689013000565173946242078879009108659345488022647330448732914722546057890591904811110729331809552725245935902507282340193067694312416251097929194489998843474930513279327191538530628839785037105576437072960598088875466992180193138378182644472666554556316449859929134638704827983161243477970010828453180642551580995830588754648964084292844841224419586481195206546117171692529819279669870919253359311486653564556129436403684347143475621686899246510702588455685886098163217562803181978397206174179014104440342702885756374301642344608127589654544506107655162006974177201214999222142040087405131481820646012394882063624598470939370780153261896350729756298498579378570828485777031242835026778288027173773930595575344017746568449460752840559118473085712224111059354109880473745564699075934986156805921293567303230810231855894651762683079528059544874259099502965891910751936997650066776023387658529231431273712036482270207875864183363631545066641335204992932231395707300030791105155818210555471294576674292735137121521232164892139438914937011424852403881040361221780576770191095584780623316677034667760630536876835178479854041046675991114746973570426879754236377463909543698865867514222042831854792683744390846480613373806044492095844788290214139965397075713255372961018980492270190396676760268745446405551506484769255705167481482896871847492702428097227541691675940650162867986733638640352326737454334482371821220528837051011182503974644548051014957206039187100698148164052547985239637101803000879661704603479341386154328103021282507257222127914526905327578968499107122333692385737526741776033111929691476052108392736431510316478182820487180438447356779805580593571788119204387736343760372666896638975121637549721178805886250222354798491500438113176347089978194271808064298429050238806915545471171527078523801144165154811279478204894716999106102418028121538585393655859134772073302810147627577138699711595103956125284825355566881702683122083061600386082544404520523510744176008567386428237674190303274745239581408405835907428174421672822478748384735272660316159583728649244594023719379873039863373783933189830873742055162646064116666129507850135739968483146855971504466193451977272332426425255064990291642508606847132909371122539815684910012868214843541815105670394162515651000600787925082962052922648828839991579054199481255581510719774466744223645361885864887679325472858709653946796191030798532289700910335952094483216164850367928008882844804425493417864153371460993407297870064067509676613357692589505313352944561747358491898509004993971983718009461397785137124290277815847216638064324063214069799133756182879243373880343061422139859830602275354302687393298444906616086117269220171910130880760886792288765902702427674653290496232358814185587272970911062039215182943314420613387785573629329576359631045422477995964231928742089919266353117342498385470077779219670750253903442977503065855094561196386473287782124612617160692159179320853005781125512974504818578746190325023980660271378390397643173790923292164079231638277548595128887297004164377197432220702683081812329342506737268147945403711428342793837756738382994255268543225922474099676198130147827766867360184469975352333599122174603778556317815196028062624776848545348238152330162996724509527245199666670269370842412099689300650513394340811199949758127175978228323357209792043098916922891521745695309748607433012363951801662426955109808226673030783076002468534125518443799833020069151738515548763495810561383396458371368453733402088337341038080123169170577544232736878167080872885778035804995818355617323621458127687457876092713411724465167796311942233470459900257706105717283915989709483927621653019788848089362990461258613028518838516944492620954714060863055373727112898635783200321497013109730036305686551373863431717098156567426694355335586129190152600265987562836468885056467734175988080652506356562535064768286644576607226119389652863897089194150134374354075020277783381398441023092815166238821776269660192058610954846419611687174489180048859159488795183649139749291445831539631434564229305317129687059538374319671446026890028686310500189835960025441236527730894278694594361127885208267490088722513149612724126185510086331101506731323023613727635317233363125164210269574237279555208079656296349713828611821646090210104223826190707058958566654041965199988344045805324863639739577827122962334960317045604788894973211486371878578889402357206936794721146447317322459432606925006919781325109726247387583835153390984621081210027646184156705380680756672091561947892505960131487650833816028957867503121258344754687098896676349407436443519310259522076032350357005974945149022616810839730519272407088329398439749801965747233657353874606305678270961374657366699731336227756868076817144082303488592828803202958566899062064566925667206646584921103760576132763458877007696484370843080348808059139227505521599767460988426645513461566548163329622360230109236560572549233130768821699502785720119242659870322038882790966999651970949276285167690690397220210613271003211953726796548324742846941137693541912787494421872550526169388287596931560042142925001939421049624657101421816164017805863998085380444310808225047114621094033190739122565066949957692609243493608508935680825782122030040010086814088767284299687200935553138332081601720431057106912449044296139074923674853583036529476939913951760390663817779871464838050309737250319588924208855619457432091375828359183093993071630188229574407308114508425252530131029445338627064565142730368659542404437869112001678879423417014953663026518290213157916037874923119897680012990692410466893341184985534171277114497747380836475884685554155489998717728996200874499099307497750217771609280231586621786224258502014875907005630804508914616229788711747078508145389379918834820550536952779753952163281314723219625074637813511158266663547805563553990480617102241594306841933569252510344433661345525732868534075039762762603190435524941477109021605210421823174035799738452807275265064397945665237121476566367440408517324808747080099346145445775690587672203896708470795673509456738000172092372769799749004501189671191925461310358854906709759405147688487550641278733893881803402810106596133663320012798559205536995751454649689355673759549477380149352728198295756622769332798144000888879503790097647686464069686266220477465743178389274983676153010503601212391255592823879240249458137593768430071754844787505041246876530135192049672757514591335265381933979801226853775416448158768733551465280853227289704531471863776381048139729713992710415068449297061941759139464904283323250596781057160640639218895088648112339811793946501821845670916181973662269159613518389547216172984020734700198108462135111095124212978964456912548862459830086408350659939559371468110633922380387049311375233127003416261369258911535182229488922061927302697277511729336750446326041381071703471976129475747194533219297037703461158561544812178069021831517755595766239274192306548953610239227737095909189290381071857041430155354118098881613348964180453715672738593015745887898587585279241590844242813943666167309344704869263016260067707253481450122137618371159580563211389936558364646798205661596567435558940108832205438412547888690039226282405089846891462874928561956324485105641414732342811366892815775173878571903089146442028825411204701869946220484213519310516648830826726402732635706721411652025034749099598858391230840672684173306206055813836510706573654872468544808730901299273225259916223771592086479146672486542845927244053717881165192676228233520199070631992617538626969334495068638722512237058167200379949625286292528159767723236926481964300690530140333198962009954870207973325055924052920436676679589455781261378246266033476119157288048343932498447593390883224583440071818009806116039692727155386949118320956538303815888180085382925917054613473601644400865245627171829681819798689825511306097396073056981895826310800791674077543472805205759494483115772306644507200006822602626865448976438947091882326781077119913803931889278383608227871789223589237852361604494084462578551886052051675845679802100778761107142448815691982513870313181421002987202013476847026557427533615836326521560850270361645154948551814586755110739948380687279385008558504917746803285267069079748012450673482099031115897483193674268396496291968700023459771529375756568805098670078780557564657440088776536038424712032680727374569164824684111050943484818626339397489854079448768909910901773893453304699298607990177459512354763316142558556417319182327504396080236565840742376729926994734510208944942921735784849110451819173700630529004575167455345723390108071868294359229882286410266195202049277385461185414340090316656150901143066041524094567307543590407731097723439270537843097698045409472999506537899126857795268758930292524750844108359369246839332717707780618543670166170638533166010569711361199389317930222236250912042798214725948166796737480621649936891560218138097459384932717376940704987011483406431325049124968626361956671122828745903379201133534351980877530159415386813192627473335038979035978684692305173665222956487100121713656316703036241600472670533677454806964537861296292244705900420663030685994839280854251266846671316546023183414058096870408734960222240034116636938501671513403662398651308852462395837804070263702539401139645080306491879087400485580121978794821225069030362306214628915005822434114680298116341434852702330845696694349557087657256541495470031309766384238143485976142504724878939926598171829676889188381402593880998518304505900042980215675599539126029305515379692376948482514537749865455410168410015991824546587647272774769812183650363518229940346653936864987019196064547757548152141838972945725107046722278820426854880250677879460975768078208611542605806800568648644056804796592307753708413234090117802346634373107410184848891166942012765567115880623717099959925180244208170973017886731489359305644153071864606432416009378477367108809185103191054030273729102628098472318656045662746139280517747121457080305818726328876385004836272324315863185642229006141504671893026015924737980609451821995283322877165755801737044026166000824161423399124562386852609089411005464092899019443030287999196351187431596838427715494711048203817365190776123007097066386978490475907704999375455048215855983871690374878954393035305601705844280647705880452520268301438416418871494265359341103222616779798414074020022303367219135298606340309089694214737704119398092907344269820606775599373013814284524962332721123681702995604190908114107183459872377933040830205943233623469367254502410751256596023411150103145405494177694722619683576777870204915851490242995682256473846612684647213670967837611547085226927161964328121079150426667544131867430780526043452122799007827710397127573461517917174397937502354646577579664082900013855402927903127714192409898231329762945327127697163421608046726037302601956906948045814590336627916096216291144073121993528470662249326738828398013063569866306693229808872157628436745843468227475338303953214247909589231068944881110177203196402386834171095107495300511468067364085492446567201216219266349563022507659878775547492486700231730472107863042061132107716571361580859760929525679955998078339578986671116717672932525149835421024550511805094804927395712824116380159415642982320224494901233265853252530009925251675521578201064516803135350649634859326244701559744390484960138661544600248069322403542562496194469954067598951128772419346829930892197919489526992400452834594576758861098219607025319951470951814088167950030003577530753485162748642871856748806683566844677608457183867600627240737196332932587439957797061854230584277729691008396697730344995044825181049215723508607531770601832690319883661809687933111147656212852722157142445532032684604889560095215998672280119524562252326861227924024605015515732935064017609569890592505409176285287683251901729786378314633283970528885914269886957435781855857639910071365695041068419876913340477454744155136664223245627080052720871693263774636258408068960073120639724198414673442441780864106863085301543334976252354700244630738164675946546345729149355791643410774191394520624387011914974834800295366959276052870570248268846487610196980167372564685455765379395056375561706448454193704143777742051663222369089549184248609558660469811733242846364216324014741716601940938637077065904057766425535433490825985488089963966005751031352499233210120515258712272224762930885696645391214353530651140090541992798751276237504872437353849806792092830450523928873735757605061195314446445989140815128115680729892972397189942324218049700048594867520705883167664195888605784698799429008239000837278765653844107046198604579637363569098594946048611100094590910223754305469689037170296519884154129396520527242026815769215709746448949902317609988360764263558027144235005659503679692254005557633764310241412453708417921600794028843098834314148037973869357695694201819616947966880194317703422021255253585519613103798878365319536291154141074229868900545688971913729463226441837717480755657325639909875598708014537973624903922426254403715672848589363452045898654672576465321570984560045069379629234682384040015583634606029353818381996098181699674270384100745414145183242140015540336667683832824188034330789200480886136487150136213182561391448520332215831589558283546578103195586797026110248722520606024654130545437030471663053642227638479365059308947455589394153173525813129394928783843665690385242095183699883189449087741053309793669072819789487249344755227025185425698984525577062995316434636648912243309046346145889839952204761990625600315299293061382846107944442255222931696160960048001598060561987270292818016085074043051594821779080962631284270807921401561556714323056487543951804391622107160491177115079527345824465465828683141901196917485569324632200825452089922349470324458309045567268137632863359532420171047731573074255556209723334477502078868728357904932577745751320624740678582664471359421460883109474318421321264994252396470289795177227586758490659439523825971475203308420071394757834902012294200044825874268409712089161381097780730909683675229573920622694593526739578906334465284189253202929899051710075557317490170818040775765331126251096853326160163686357356618776850171610763433235497922713289221275840332062610347261249192677123667266724264188033411344081127827236442044281221293282405357590941300939234558565556190289639557199934909640718416247586931864760063211072123478289433507789701771439870627377745376359123447490501778888364126994969567268257675511055958330277288053284488122222830671173407062168353902708668114211644127424659660328327555181100142916499515643381381375722714338499607802754100054244074266420873615799624421325853549610446234302484900454666975667494915194322058425141550794937825488132936089428932310415949716073756158197234890325858950997711944880276818047531065692141034876725208325987965636404992648542312373192247227563916175094423130807531027168203464251198143929457956889728065965707553671879759165687286004829733186751389667275956511444891178220886834705079995080894425455967161531742760508108544542229548974564152168812250565105059994918450020663266019523127542729047802191332600428125399862620107746394498313561015882870123150008308975949516949512819520327539273348833965861726532490334493810452903354124563584868718272200673608624291746058544118506946906432772103607489326357391288661119289817115555800583269696389244080852908093790989864242027229458210671045605375453706790404753751526148853243644559958425161773929950596607141969835653236971352912130917472173575821492367077733790202514956007679152322913550347854357951858687017630626518310834501426153895801144186253823809242946571866073112475101877820187365192488659347480113546633515230181730640786585507852514800346400509819365491385853711505694070037076047307023369040765812046868574959317878956746998451478296324936177101377724641606912619696126857127394118082312562093066820952068733409262282048470640326264696770251771203080876204783914426712214879358953810915755308257090318694709686405170044909184970195968844323914365690129112900112171586661071259363545297129544457106464177185942400381754180456497615334755698667913336244074032254201321582217167936961390395326028988769196202230867395344865320739073537140540036877047564507800449472517857998540122202676062823578727817033551072498000207382154724586887121728596979349437774649560164598365988972776465640875876130857259826956900087293514148680172244159512409537081972575083889739042596126342077478246314605811389172979344027556689305939142550097110808813710099485976284155183844981949254723952426938696686747782587394371474957982762145692726931173522638329085363336905663930725266190374772027935884342573194490381479300481075292648351409541916608100052116467935874213898255312157375093640689620803581991362792442867204367816021449759710896912984352532372423873738835849557730494903046641285361034865541350089798567615459850864519021997898061344791994474641046697169385446874503293074706011891060988442116026543994104280833298354444540632613301946191349562519985562039776959847542583620134072810570347431169271190795432117189124206895684406071879629957439032840050855580032490484373504890452848031485580025765776757580451072077549320013610415249174289171059360647328492747959640155839384809064789114238847128641838052831310884958006568577538000640237601473915108423319146353822553520062851229138658577746777472472342963693551519307225831975232128665556212739465829773575853635440104567804793774797815123522270768675435251891562372771237677922799757013083828323720233216012693481087643302952334245454623188119854754056103075385307666839225018896887360396895495480837670905149465741456971534037187207178179655452342850567882220370872467041153773308639074776522381197562357681719975812540252814839857960041382763508628051276922451649986587006924638639983694011034048723909878405410710058510319808504813067037518186559546422426785947291938867289133031610209532320484701528943446663869135110592010814184330062507520250212084109807321003118780161819969209904150415636391659604118996788029595553655937912227286691713183739762889228098651604685425945875183163075815643777043575994012375924458799635324454905559478155773141544459273877553996845812358035723393786039880056634360621575412395177468373162376057483081452038085173414224607886091089976661320212001886830865382519792602011098331190459410316401473242346251048861848309853870859537058599264392458212391195378696704715792741214543601327221131063510517800273269173713140092638213530399735934683979277112177562141351752247641272224161544763436179048933087856325794705351651562807775957812345553389024031130934494561163171687895660967477062620735316235640010787792321953293357142733768723692785698468070087786472591894748870059685791538468002770997251754027232363987270760594082440299498578969054980453689026218768621778628921525242851335345489015713974440368105336903069246934783109313770592186133881521739473673583084346797001993684902950195140206354759754038211139564664204056437863579484025069843827130593389972445233512630299608346940737441736424695796983433905670083186324366295515128813657423477953708518175807771303441302844121860182007171502620953147332348783095948993715640086739342415811088544594107067455908972463644545977522503703672784972760311422076428472305136115545813681444397492356488613101623470300324546561632355354941040980545733716585578608284829508327854897303817743808564128390194968524585555777838619528877013040178638589619588865866493046169097825384366545450367810635664292581802482854943258967319195784744270005541583134168023423484709858175923282930957440474590040192109279225369363512889479274632962921481920754785200178347730796510552401852341550724443521617724373998769086240959827183793975006283458969329108015276970873820744267087281346189730830401596356430452539080132686518654440974079807057191165535872869889809115294400829208353883858011560412233563269161714492658324731854642489194546931031259717928375083287590397423990777808703549196471408913848526135792525100101682365674106041650713640707140287708562329406686057336420287088813380943359243975738643146130465622578422910859886083824092701824174457904737836726061175208663591286982541439287360143126459826494250300198087500423575685534368884233917160562362327665727454746418622465433525094210676785982876034682666375483480670818386378241123606718923972858367242073743371947408305976916447681701462602398827165275838624428833295476518311723684280972134091632478379240493891171735534342742588906362091429529726370658620448476864321952117659159829365317043474235244924486248453673321426334935674048770489562166808804875082060789829638029352232376734947883239639110983308990761257358249727698346907440739066157777550556652697890626878357715650375334617843982898268215053185065468571929954266753256664794617054412251439998183082820286807225618180128675368375625456047734866667244315987419844601371887312873923819990491025466686701680297323336089578330584093509563869975210045149085148526722928584572533539310190203882842776319752680709734117972742341529725410919049562091463317992130234198590034532412806800263734335106189517625218010936073880033796194025822031405980700131327682602691033807824753742530595984140075705303035099264981937735983055554441052842328951041800113778590148146490679788584545143559286504156990668406214157789640097311525682086889368603479456503534760018886349577468676883769136533459453891944412872873316756610817086524321741990390205076206408052820006068677931912698340741855126998104183541386730877593027058065335140421173853301323143941351618585778055096346474965501422933093183025576928264832660756096031896185202751257798834749879297727531628599050291127474253791914920214353664097289024879591956226002135728992719361346735341772068594137493001853647009671757109218153233292000812998463516447683161263428933684862127435050950084781821265209485807899480097271392812186138503950719879987818110668639010819806217250402193072318827931228999935206363303490084097110915977583341654912634020706273942366590613823929519221222852467284898970387453105642263188787235409275221230773535039293855609261529529061342838209497112510400011055296878856022047406995977292877550073517507345327758846679403532246184106102516305433662827285831551071070034400519495658975213002099614612046761882128154210782524844716017489070141317592635629170008983859908568438327749080459941856751405856659890413104118408321528961969114397676369593272452049469429540324881213188626981730888765024743141883608520942347624668938428928403488963374754529053281319018373784790408367350956853388205470633330727423689155706245616813098974907321807458151690042451230383264921715971815167159723423739802967875917468352665623778592474264378487517608948213938837874440662966531259892973993237282886020117004115546503795459248141681970593875791939268442328186749665237697046042876777853624541889418008558808509272158628364720481840719331524644375728867985842633195552491090185583742723691761990097677630274430861598043789255356794374086116660628701491514347763529084645969179282551022149393782437449204676054356344498863519560956011704956732941747067132316084526239107713214104549250198405677339952372730013872226633318203362098114549759515035166848214197652507963490478220291625082865885565307435034541296119558852364817888459089632017359549975927594232419245762986610223696475213013484066616198370404009835759580853209190791888545387997889605396086282660221035368449030507441814902337158384811982653394299494639949760072899865612683738059069274894671607260947914943215468799926223481022831391730730387768966510731360932278471173985133766808101006729366074314200573416346990687756718769173052171434555604803003450260098935823195239588132658189353863963372313980612026472789784751240868705934666542559663427296861785300638789605367532790772240334475320216902805932147106299309834326381755602049795367829261228467121325037901887513168711756120845231989359154929143097800062235977135220314145090312980881065830818587587795710447103696658791112921236649607924592891014014870413537736644116014553112971895373321015449881499917239705342891896464007512423743350395099618838009320018997641661029676481520778396311593308556669630484778585951625905300823840349835345527940448679741136901274267258324658358580224242757037435285295811976367282063352041402517418319444671792660837140932409433721776197853524928649188468398077082625631068548656063879108522390166307742372693339177912135150367201669932042652525746208080965734408203510400208903387632025312851777408864060021506019914754131963827766231714051297107499637331946483256434660061673724648276728858191482062022170195884126398797176781054662731799467302868174574368634492814974104703600510413733225711865819789853997747399050152403460163166711686002651721483890725313277533913978906800161067642326371620852809928125087880531365936086512465102786944561890812863365172071741296196543478880807671705579556682960397988535665987158238630686510181774517172935251246005611710094176117119520963774197978742786862400516828784141981648151106191616277059280423848957880055104491003469994562520429063978321530204902223593296240831297270323097147577717091294795723623991652805546006545295635138038876270670243212206371979247207555570571041903024647458256268877874237401838263705247732479391894083919053647975820950706783608455383272004490028156712117895217749397864060572834100717942872081305688956370476671070874792511169438617524610854247304210839165057084459555139813371446076427591355971628894805962416894005246714640275155067892682509414622150758583696657200513169304229692114334069615772071526361749800419934660137845869763841743054343649673875437177709739555763584064304956676199866020618087944978092344347355098786360255075937080018906182974315291570796948641004247935717965158212835908819082777100315114293651144662547657155974961376247902452088256242824135156987764324127155729537411460026839209496614938917494434895684982947331217674050600264942975294501124102808185304333171162171925127684999708958764858122726866303167118686827309815858178982725068852047251291758675559528944010206034194200398177787598358515286010073821929054129455767552953193952176236973887513152693978402188862725224873552228551880237530784784372189402090700510261238643400844192691006250720314871814636007406434640402678773104783879761255727547704438666157496103441588882811016710477736632032650497720203287165943836308231427115268566081242145179424939249278368361253848063493200818972523501132280868079846431238927577219647615550593139557258175062277703831823413850671228562980575978387081723880857101147700559053839487976551597816490933761944377485221389872414349874235908545647551742665267708133245819369565703313615501386435757889424373349770023001564641295459472603989042546501094387485481530019464227318767111057223731466247721404838173567227054405340299926454064114211845577993333546216784844044130254250358969884279141364996265658032070043480641700303339363829800016763318214830982287418548937944761813716894688970305104861281063126027505623021143573266985045488918659703699899174722660340551609758595936862522939442196090578286223720838931654561784701056915740152155314132352971623930843668721874529023380766516423965649799942423746336619187627808544910719795016289082232201390269692498366027137742811271797736810816734480759389345700740620751089295759623221905154962694892660359281731044533835462114595218543364274079947353495296133856947203209378288761045025226099883486791430819484579621595383024779217739282643217524883569174578216304180033093380573712190353607074753861102614673216657035816837538036782153867183709438339672155553903848782384876227525948042638125522121579842708526075781910159523773548016973170077688327270197109432848842153288710045935632870908203460464780047659784559962729596290364149664894059150202098321726561462063963865914106700129337559251326698101957861429144404097637266434954369433558468192172855584489897890529216243606603525772539744840361944495078750903066321139355612644251371766316651341524201104448577917019894115554360463385421404749353838769235172817637533067405366334869160154605799037719614221530248354461403901168581468171417756791070856878780872763234527735159635198584142117665177257689904113749163115996349118044592231931562880080910106462229520871978997526809724646836646929112000705818055663090078864083299247477077564258048675630651687472082028403651009804354679787220550147438125768955354597756758755526226841460860225307993984684224720382784823162178081196952966031991212484610030547602535125552366936204019899617380746471163156075744368032135578428252636737084620146178401865504096135659823376003424604618950427459717544524432632216064992985525974904462217194940420375649867995467683257587138073262053627578182179473511715617731544188969626322067514885616752217344712771759893570795658350853221947004950451270376569324149967519643295578047263498884159677527993186130693578637079086213449132681729855492857969144235379781761405640760372878461128393929659364925505175536549328917943500033651061733092048904117587450248025428258253156186150400414367334763616608520852051222120165596516361810685010092721293646153364286070795682926007828235390216581483552476610100966009823770456814411645871672045735648048997752130081116374841333660098053430354143122682635292482122722771480464914015734178605282955862478727719251287830739103578223883335419881892405594004587281945773361775753812424370755524593311393169246916420087196693157257599197459563070278752580045839986151354356017288626484061814084549237477492924110441962170708958316552276727188051649320447333701902567959607032559986302999729477246774237545532719132953652580396174060107132451282709463956843780999485626147237631281492724155919757867530414414657584905803401055432607454716265112086434577703856017275395030917690059791129686582959372239124263287290192929718807895538047228445477621437288813632588532671886742412509254369042273504216765654623371955785022823958100344621057911381418983362374919563382436670079911574289162425689893981337859977710584134246253833460589456844622515964450706180206136637370545064195551890960381649567263335350710291176224464258858073868117660742342072906937922909604931446083130570518630832388434291851282554651433246315659007159644098058223568797295774090464245339977675616384668711455446186803190216647540007933354085566373276177618546475729227096296696379208343181238145330402943849849201051952074510406448137584612391198438993732669291218204488880898402426051840664694843087215210224335825296097282970537447248566797217892009738496288034653506228413366774570124032188285527193462812890947579626770733271419864246904188061666774485522549254012687787230149712002345547262719815894308390731390484151329499113365562106916828354033284693041984290746568550728346775697009465194836763331429626359429948591337117816925822874505531085417535468065636010921732504593738290925148275381646701145646702017705260200213875724040098838482599411254946620224337014691780947591513778948753943093901724824175852803881806973165637161122519423745558734738352124792080451359624070164961207014104270139181375173680086817410005480270711277936313053929089821647179458591142008343478622559925270622177124985751762270086138395344343681902158660290101472016561085170514308224828760396889891725104414409199214084490661863007661630652778123760760298828798717520411408939263505813627752478172153897855383273262610483395616681905003576641640115112225402626418220027737785642595644481566057233987432031873028175811843563437644090894662156612644931531389662313151606958412587863883507224721292342794783218070332465696137061850487371789404032095628974990081080909530567859010793954434728476888175391430136544438754099053941025696054758065126167851446691847529741192095622516946369078774397217628625046273326249032948783007436029879709109824169607789176496067136727915479072879236630046527111490198324172133917324026074216047984475013566505349532971209173906434381868239605482109119470515059739233817325215808252496017979128659996100979578438083207877263459871059535870109920411484905733809786541951656225199320154035050308234694160839848718447019031781187716506039003481379745518488716551898225765455089878577276401140536796824471272836678851649878046827005577007178049501838893626065909954251299946274309436597672442227521856686358688452986785465550784448431781029031963410651544446592948895559814494610224107787872721092978174621178163154556751363448955567287416647206910669474011897156827520054305397639190210032449460455321917298386035178402976777260936006940721536223647652981539959543876215152430312427422890318187583330408128152325583596121396077703910798707742369510388886216015492462902744934474146751429764771213950018703648777117666198276668397899069693092514999047186959793003344142795154457171801931242865624916701669458562394053037512335252433411598254430717831245339448216212210868403144483325003909583266125231716026807150431037444730793641101013941984791200869902541569273970348782857559895167548679527026640505051119626036421405807966272171367331085005723937802094945710153086066868094401506837818100771164462468841063269183804137897225238691874580741121783848470532803094323639475806268158490053437472786124344962677417021133676470925486345066488231908841271320472120835805790329035213034656562446037117446073293777376601662422106226417373576919809447948361413291307960110749847258522847742065067304294789402165773528168850452002926660531102471777663248952793393823002013742637087708693234619062939331263817217879207093337099638020879304449153753578655848271053967066239561363096819226449642402632482788744876855508761957832225191389316656240166811587535940112041056989098179676330066999833682522617136199914384923102400614947008970655103456977567560503661685895338671106335250361278204598678540995123847101080452037461937521946845817255112673543715393844368525203562173489329124113880102135364936613372801537914356525873268308363888978795236971134821445602162954432718245206723881375856638553927284205646888629388368112187600808178097532030625496412306237312936806500155159298332366101443660857331065998691812517944350343159360956110782293731599025411313797608395487572574046616381512987850672771068866875292086873812231758602278606278941541624191289001164652365540501601946606983788476931703826907562438912935770003693403054298970208957550630160289559877396244496190010232274850389997040845881456286348765819580228120265366459073996883184274896439516943091065637172038438798389638265697491952372140099009933069693082390482049547714192365481997402090274673329460379222036629398047740337769140786703441467278739116837328265154244735108794636721404347589172898026782475325118811825335365164561466659781320528138611709237074150180092537559609410428625210541111856278081248660466209637319378172578323999626692690605576777217475372830803937292868029384113210888276328629306732461522921513491032619906529135456049413220141159480421057911998757309584178116337693399027437986084043554892862252649844572209359287685296155347464387184501999251222624791468616444019740861731218684037143116832150091794080654920894014726140741968751119791988962702469514040937145012972290678640024662124733966115969785954764189890591559005994942406539892960844540583130721798025542276576467489836605084170660280101721236000926259476749949908473378668164818851762152010512382738151457516804982854570686914102224301997474730936405940723649473250882660422663021462114060372355424944231315289967713591967268232460855759172027639146761537274986309962787428673667943684893049495524138916076389042660803911178887325170198936118830359703009267425634880518835163179891070420297513165602960611516136391555599127123291156108296828685661521949808324988033649267051002120900705166030042415903487213599485444740957092230491228899638325096372219774225360710525025926466988574466355306457592698273968070433700438261457770067628815574112252184728533268382360713939657576243082967133134047741065610832054752304231248116568688901642132431675202632109686365118182606192821589530322905563141481471350175049609632243710413425419118140136186713124574330422548281963585056881245553214317928119158229463615918924450284949079346395248434149223061023919514855327075602914519387323676157948394723177402694287649387933075050396225717237600280376608122453265204456539031369287671151536524517393307805792560335362368069183985215706963448828785267822588555489825810526644754711454478323069518337057368803074131604454980190236365810068299574034503329223024428777934897744469458530127642540866010403383045351835843512474036013333314768213232829754162722694951714289869958278735964677322807410210844565474959349621609877025512671347293647124006518577241966517483541988595773907549458326629365654873242696209597256112720142282447862164021400934573300751838357689301227580814930655721042189477723736654023583285472383814398242871770895505662189598346598260193397663786824546101464988066959627914126661138451944581392091932952156514740309661172999787224154214006455346681639902019299207198995847335058729082951273062646165035157238346234280215606052591975674879603798020075688759340298352362015935826986256100224571972339737210115356516334577678800548605680015585237720154928927374543294963793088031576866666639477543692379291800297898935889245138299372875914453686272824481751623281152024294968996202055699932180004146864258430926816617062108537468024680532250250428303564213282972817313910622707771745209704481172391723955137361678196033305355717993048761588709874618411427077163476912902151208698985741030521346152860689009106163817279258449694572555725223464441924705769918842411668930028503745254021773796368064000518632903135103638154411599789320863875729975329089046015901261987762410501725897126980591718176665090211143040594226613682786999060512252333033678190017041693972813217094310717356386387348885437688599176097560670850648052846819871264581660191693105233331051392370829214707954541263568601736906676121616532180382482077729491733532408361432974842904864560735335937923701205645379973441271122257236076693939132194443554996222098526045111909931407110749058780850154332985018549176127245437083102184561025585944795051168035439145873697017253903459748256620963381171035353496320721830769905201738792488569435341373181292317874871446239421963689930032016292743012780026570765389747247009975602881918789072692697449312858592650806994316037122358740036113436217306473449286187932047292989530948782384225983967979066703290293312914978160575249164195352312626624079724843750889338887290158224318807249819151773908225436283210368620655547391358281327726755329334015865535830330231148607577939605606101462017057648536721298117094429623582219378761275916029783482315327051222711046079988721310961870084383927260777635368831993484176818934637615422273300532060963186794793069251006184679668263914745726273093553661043716524787399709961081658217097843780360713970761474899006598297175862025615423844162111278403214927954500636241647247895248734597520302658876930131994693086683148710171927454737144252045825969908358089423134895320883470329194386665249808594526155430869178634651255886373709573192761444419561872449564014709092770582432325895279494872097215988443481988206407686374148655019947345160134704094822528266247728757053980103515124839329751478393690340141435581934665490901034406334354536482767736776926535931143557232468008738299644555407561642142586172480958555030316657841980211590801559446706938172312989690342434385772234848862590293275252391892179312236393202686132985010275208987890805577573113298403389195853580843979385344883605610191322556606670995024143858784584385851975429044149911004889817814033691567858832376272406402239821858371157364695242148110214348102875165677061035048920116208502577001765128963114751826070246995188037941970376549940327888188608155353120642504288866590737029507753002402469363252485680775510541737624917212822983406406860897368837258472570864261387569019194947851438496055919671983043468074067490385698772665996233031945533488832261574828896753818838456185427464334212743963714139991022771072629368435233930311945882943059527907230187156021275313125152404676629556198072703816669853277278573455347353050919242212014358176169112582079388873858417320619956874727065799353663728912157698112071723534035972389180917899153131091904149603215723969745211363888878300126657788477500725571772806889693111162473744320490723020156313096818640722005271488340225259615106199521282585976965131655268038700611853479346785011664296250170085192642840056644455562816222110808841800419669238313340275502732591562202332564022223228419843320572915491991362997790449536922815689995426837723498527185086405128068220962766942102490821046472087641201886324602396457445676555328865205397282209562885522750260821966093373290678895397792332078089116705744099910578088222961315238786240102024363959193344810115722907386455101818143314471475904127964587909870689339693181132435378009945427423408456911639531078050683683889133567763820245134060805120687001373333821493972854665521572259190207667807838051833453947158568715819880970290087187762509448132199512286584308390945756861270919103565224901523847630754959293830538101883380374267378154808889719890852081811344128166465231225592707210093724968215106829283110656866144837431893290573842061808199045518062389820708485177649495145809234253413730872216664347477284142244746317399181710977051214832779015807141206950628769218088551943380008745742461070866319267284323077614810203138405232537260352578941113501268648541118967737121985200105021419392276124309843312110921337646378115549381732761338828249975259606535342818813198398679303687142383874797478732623161285791374072809338138362845808255350963740413870716070712589659548179760286430595734617275283300599256087829221035192846049395904634732085521332111985446027775201216587100489949239426176188921584153022951516619935310808261940889637495004817062606319454253606694298719915075842899150942946645545882109496528584754773072147954026578020808933744948587776902984868548572412230664382937760122664647817653112042679690687441348212031027537923920822023978998066728660799064652657709169777533780890656523171898744819102726973334765765857860113505468618093223235641355624979201051120288438363891389503017402507030465947176423446629396390662822225187544331467241489399173500481680867771065446286799157894648788899467261332181160533924881706392119766486383701117196159116528334117432558663328836843588824074725919256554107961521355991725506495437202105882480067288160100112435142753441686916249377948420233033760835198054666155253344087604848264242008425300629083928144425032059199476017063073793391335346520075516575392273762999948796206802499252889062171147094496350261049611587659995648739544346887744483214381154544721770960949959357975247888686490116939222839650072074992007721170877949462676593785993763826281083938520711878318584540880570007353027490681486193518975393872598255231561825995826173927087111534064299472590984877994913571320624967004943978005233502135278629160877430332940702199722351530334150705126642740333578778356954142237375810939305324203329689564633983321567381791425764124522670104270817961310339711962186783438733126840162987387059240023109343476395705172846615042084849227779529205516506681116516374347653422414057000139825543746177807592042482883669208795747142666445017480808590407364761682743521630699131751467167005384967966260833730900121779324321088346393334899319600580113230880773159201369168847519750926177191353811130788415630716993673067621426695577302243893275526550344658543299039486854434221954284979778600610301525807700247560571085904529530434400866477830115491935537806807695146825945755293432392342572675657938243616926223588979878298691526270071752954903569533006874630860038664524232069578862459410811811118758327136327639084555772757424084038272730072940292878646781895743835927030815862499139040141842466787857706455785082882653134780793523653011791856478101371839391096306455072324689442610237970679567796919810350863336456563672618128718246655110456519018942590060521314912895560192785637576183644320666647030902052919127215887581404824785529055864003744094330112646007683521728311269088466681064590104371633967797116233149270163708039627500939146080590565586602011591244394421705212631995542130195513654539930668001766238054323834749237153694418280991414158618302651837592836075396549997486140165326151565955014425603519834012657188943581211410597969055167629063133328487018364234047991208781039159333476049102896753341653387299372701330883667204333446474365929989449290119047692098756212563995866837684606590197240410794341335564116316943645599503055799321756851623923926355084806676422869230441898779725610811308976200220313975824895497964840660455482785467628118017961445720564060977932750957986911953611351370920552010087139814831296936590410921215109530395768414481837951760729797285823293022016638479068749496411663216211731017526516560591626844205597186629358428717953034828247631060667292787612842613600879632049970619369807621720387981665960528728790423479581760488569855984008507971826649210708975104892162271575782091781500268138885680072776197491608690653627160405498866818957723310977310786904349079832232628298494897781855062610306734729952647088063157043173485039280518413667013759313480754556174729875227027087955168882157780874754228597663662043487225457119924351302857301077405356251084696280602581634424887927599968897182920784021617916351728096159395063455415364791440398824178389541668086690480170076120092625600031259519087242317870518100529075436096670956905713605312538906095362396031082152297598736138976810424223430428801736386680447398013036097714721196522231859314226142627216505933199162773879423417166866055869376256895296248379317670871034764757769189539721526204622947755798503266547306108252318103758433718410053927626600440387627862650037766156439593899242941747127760922337930069540708546084793580084777594275358859666606095498121657748907980137401235895113632989647233436913557531100469707214591613210626626597265114865321750340110287267585263472449991749958850913986853810672763527699353992791834974919009600858315255763804034279796916188420811963222351716195687346135725493117031056290743085305361018700400220541276470972531154779674404007175052751492860094432694029453204940645187717177242804517807363749604226436890510764185780995551722410457992165696006205456246765036649560078525623026317822543216725557920240968257193222232581487477721044903041116849301328604403797972230317541458449760079720390415160635742897578320355464860523448257841407274636002094507598509934102038852281342242029064506953505572132083165915877985408051769565883188748028059931410205402534991590807320777670884754219541660369625919100878047306687286191521963616819468350887066971897152768868190256725925651623439382823988671603900930262751321621339110914761687850317191880034994687733533395691099423424246745343757009696261244202648428718718989252081956365676303945839034121850621059300794845813598485416268416011139495983001553492551294842843223073081679668532895537950676372092924457331280718658404774872190611821899275678210795901191465487040477008413029914039783265735496823233901729606420315075245119423001469621765941025891803097274902913860523822900037043312671771561489296809904424429754764904350196453955723276991444738977953100475644163209560194486221346755133602225150224927996838112327207366334161579768309746837871035494425806940672333767759399866700613609944182147804156038441695850892682724777265816484009516289408187743141800802943791551677771686791880615736803962314727756557674624749354001307201140659600873248462083981366730694594042495152525083113801195726705471268341258253457181463518583882761583721960256296483504450996091970318965104013267800001969997636255684712167147464279953993810369844189134104747217072936662477798233128039659915717511414487129979312804234815032135317481131655409118097616585106454789458315292221908723782046754031844729042178343304453931644123280368547185653177441270290168040762794176659058654014959691890486996729862075508134167681771608943268337669578059615241585441048194335278543513180985522346156162272808072769886977248076710480000571386295697992654470471164067025936615602807456484912542768541967389289751706966199083543516025098868789753541389745214979454764038295641742347964578396828650923872984424013730690725993646714784898749745693582992803906768783333616411067071310437570061486844949743490000966785923355302105786834697059347326002018153440793984436801449317227406940947678553527834415194854584738445967876522417409984003907175394432490208287838197980809648269817640145118223705910337281767134544464967889269307900269909378010885430786348530798643972080769754760474373481985516755045414554792890967886170156094206238915435616650358658712674966334337468375425702205347572351639827475514321440427941392524603363645051901821653136194932697333069233558599833303346211104429828019202094275150364503770615710144338654446363142691448148441183808154638836043823837111859953942107281922123309664382012489484329826305983453654929846147766021446698600846565216860125333092355308766632085522971405457556212353576372590687637386205162934445182312638776092783186609703826757269237497564063909767616908508177315430553194786678636937962974296891558961158017288142560223344420973785533308396407333492690979820967103917804142757878323658665491164863475264488759754110759301888874273138348952246585424372535787876577009160374418183788456252112104331799289674362509868391760360125384926541630323060663466304593290492495529072449930296407543131622448400581326669864902216503609267710004222094694226769169871242236690539371491119938977458203488561323952577587884580409830557094159829455766235857089445476708899334734640790802991307170281239529936444872507418503790496810209231721386484953151157994579940209825394054976800550509539573743350135530008089616839093881614624964718353390028509921022217522602836150247151483122299264335038352112530955317417158375044676797934817613044196689513817337911531533479458938444807441992973052868714104301590119816694699575467435456039950762492204485999782477628971983766496080974015156462673596811194533240144832480683050655467184832519502612917686105485903946689845727165441104968025713221208896285159499327428439985662196935859056881162475663335840327883448168792562256832854651300167862050008042156590680153247952206864012242754044657876951475433307946048544698992281965068031373174513173468868408838741851585393449711037293508690038728358771557503559219557052862135253626691767615084866735141168441284115555125173062948403569433892095838376888002684379688855201785968262084101472116319993809869956594225246449323320506010434174943012817401411300216373632949339741079843403717771556057036129316039415592892870889430136372719094774617805209270897146394916372722095087721330317907486449467810055416867095221773188128908036559133239001813227443431495535237715578191219981943408763099797069826352816924238721424142771662173637393112632017435812390293912333926584347143894202810418342812390178805666795704275561434684601551774964209723930698372586277550555654891491622782659837318677573919370626559636503099897612243133747717351279451362706333479013572740039816532055100037681107993106241606557364065185714627830207792891177134616985914989299117606178336837593313078233659295750314857757412651216623214260649127040962996628519980130508223975908857254267109988895085085382704379883359532005951347342731940077887922682310456712212466053118708301980827398294300730072732300509496604051508852098344817796531589517431378397001772354336439623901507909351896268449655443060204072513595111695956832745120356933947787725367683476933135237332046856762839683527579074752686657244138788486253567767735229998584391657786535530088486682221340214158732312936434279027636483098337462648593690534648634698657513847077895350032827994143189506025370565414361849937525742661118037806060729598557807814237135149230732322419078959491530797869652073043871876679545558033802346091234134603426371984113850753235060698121022714853621805769104661887187847587498291253869642379982177705270035356275034588792473663815693569926479079259228726653832745822970681604417037205539193472460879115910429885913998583827743323928786119017152871920341044153688605323748520124371619286376607545845526807567917285267248950456419748399025258736075009105657280900090582765553798157091849575082255923511815225613597850846085115920888495577635735747852472797900549980593440213963730389110990259497554541751358341045980013994325912200631521224972005037993964787522078689086388228302515339737500556852792443564029193267806491436351222534262276893106169263192973316199783495652301795204864270010918316943921121711260654791474082651145300449658631585512485510012638301825838556059819101280466876208254928654014164014740070429931321823060572548894201492060564715188875626507183086013561238331560966843744842711937639039636264574047077013354685403594672976923397965298138160535406942760985864684084062216961067790520466009522789826215296738142909487025790586437023794456402341089499674581504857969266810972074463925864129630865842376356047650313708530436817523851640177773527526900023365416049962819925465404156470334672908521690084294894567318619505243065330967811052590412324311192613941010017887503936986947397359383223466423589185025075805015488098330001667531963515233997890091780878177552657035889955443398508068419373787824267446835558624375847354845046125746667583638973021504245638659522999108331683412106142548164450963795682248257773229207172216676629440298001907132631826384970628976175747771495468126298394689187330132067295463090780480275506023901119597568684120434122787107783600232599187625846099623718120046396118696484107802071661843458817464840806573694024675348323522660299942844676545907538571689759848356694667865554025249088281500245545733136992499094708798246049310484481603304609190833756577173363835518411610432017776276618434929118610605430847121121388556638911245516186457959180298615808508659677071967000374479936634460071341148852989540411090685962223204646800269279310307843669321123638458361754512069783093561271894914459156437861829479951505416218921184312632120280408756253694009761495903619024440983994781711794290069814884204582623538292134730801614700667672898568705369202743298859885554526554094527939401802476722530010826320169470807371228554632729140871475471377825912144149144457477706619009475295742183796895205352605481900688439634679757281446428741255898859561237707022787989585617860578434148593259895018417973280837175073640059020526820850697432423790518015536001698083049968448460179324705002415933287787371024358691833899349830710159377175414646973013289359142227650717028863595665220104837211513899573335532380605617061776468353029935362981962987598302921704061082861679863104818705812833881991329885843123303437753567217837732515077281692604815580885704828487813928377958834951609458105249949902478931177169422774390917874032672917858573763891406775829557064333373447810813872141543050089761757345842503717460853511709531125780846668154547527989843830366535832182829576796265710881933692983437530257609746413305564687971583297688810518256590091218031875864647832093603442979560890977707907205086252663895941044836928581704971429580962031345602735441870195717680435819038465728626678144367380066298344391537201272257778669508050354649413629883318348309821114677780408225258854072497480614204155544627725841193856503659807757304344653779249221037005801145398439257882734761531006793779220992394200634060409801157340245993205889871188992330503415221465987031938829148073720810839960789934922250611029562425448739627266005867100355741367087289400892372067581996486768834408937841558166330739610476076796960172383530980152273058199986973542167807886695702029889044444724588332259241315593160693812977789383517522224303673993988502359695509920301131719062283634334101407662533409377256073493368382908020358554395921813390937599821860932508155216009654509572127852974201666443862099486113886670489711317269813140746321824824060893283993795353917046323723964351926578669334047314892019602216153526458098786391847077073969120267000719203491883707044458405020376929695736002806667982306470706077411484684045130748363736456040157285857679666332460411389670454823211923856369736769629803282456586611753419659603983045303465678199870945980815680595963783025941680719553599450385685219718991434693624706023453773442040309563607492709307730559116159831710929847149099077181407414102042995561243140930399618752238746705440920198480879869232472858845668753093723331079800634418392925370417063616334120492395496072689468080983451283233710753115347940228929158563652267080108330239877362069073747901000338178306498041757144802058509446112169629154036880126068841650832023052484866648745426845971914947713456833222852453094240927044410005791303171810101286281377455835350276063156159477346841939735055274346430628494194171139767708133528285877191251496805528209556234665871041808464243132210357757210911900594109835105264513835282138258959013107831532815034346056007479126593490282152906231761196734697470742446734383687258393393449941747581273550209683104023245753603865832437420997023861304288984103296774002049779905434030920336545893503649036969557240925331067090729993478633515166612450127996020710603553975568032175181587952261255756575024902529142896996081279474599193586147981774434850488785758569279030513792282240485426795408474138960723178996705527681630103350054430119827235387388404908545680770252125740489232904659496770074645086596350378847451794650897464227193888462634885898931138111238381190772585199968681466460264527173946764682793688921188810616010786525668381605583320260072730123220792350654201354104441911988399604128670017292776714597815928719421908324135260549722031177132774204747300447443821183074324599143214276230573909488287098900470642411473390743729273270638000768739597579933444033039306600274122883974723117125006025066197814801361074173872399209821689711521357107918145587367656746763043958602437811060812761139113707751927706164601188595600957070216777762031981164724012081501657808815132657649173925855221072286358328250988499534724048237791199362277080846363581211926264854978853190321189998903533222960190086282273707520523706497019802262134938443696602199096210918853251071637926989857568655002056415074076150450445697176867838216719401678064024260645489393481858368723945794449036615370211450797977664375662672373808799142871796612441639701409189988273478294840579362841145069199180424933953538409966115302788744800953348188039745187367243328270656116216848783840968912035035044644788875976755900866283164784722396169500411614661703341801117830917511228671694313334321330711275941602345883862163760784287558533495552906463077190857451652937109600564522278924542284475727042558316760144859963449106247477746237012678219625356741194858062175705642138520721563692828373341306958115129305006307343974432417769603321687281950338183752523038224433176749834971358298673864214551753879848634092638093625153740055845751626479876285521587341797547761083576531189934675649583207101173852201832596990309981501952327097731394691054518060944612666741777012726476891219491810167312369154377891357162849689139998421742770578617113304806996904709190554557615260208250821913215071849486357027214178236711737234404640428975083815864661151959725620879397289238250595922771184310817655862426190929825663310468712349458750681350416966597982257138080980748956573006872295077047281232189785994439391123483574312976279095325865874268039429493696107309562635923172020135193389240210591874638697147688719925053305661695209483424811137275286447155163938707395376229416592434175583853268625790782599673937723761253301132970102447506030370169612437147565032895009777582077269320192932801770302461579027148522812855065251979966020584943452723471448147273757467095939096076232916472438057148100575311845071233930701998813010310981716053653335567989525821748863248956628739010693833640745874924608003192521031643385763280185352778915659016015395509196566520155630728294076870389764049336432236713437525955624245478423529083187322919154492316037166080859307392542983969910829699024976121291305377598194100372642312775058215446887117100777893492101225969575130457661920306330376365369652309107836436059941891400448495166050016895557892508899452173487881683383334061928856272928727101528791387031519423878405867189660085129117294392090269557337475527378318000867560338268056285639128552054411810261972622395950442814685695498661760152612511879736969515768505346737630607436821919264263329184514129039343758362758264037306289927555727801948484568178834363899967366418607635216284442706788925706808345655147834256840438780996070551722347522913361781706610104970316820984276757054240965281321401388771140902550389796447961920062270686917060884012652465619941897735604837471828319509991848376260929825772166742601620266687161716996631488444453226303050718021986600495149144326288798883261344313235812529000651648702341146074612562763463555222882275975090816253572875952343957679007458050996476050172688994303734163597165959180565403539047947964516038252665726721691315180839182681116762270482906829449922759582110962904891251477614534161767200705906931568961363955836131038343670551383020961904195231973686033297258066633488894899933618155938269236709508511656150400765153255955386504619138536209530672557566271624086428030426914723797600168631994403954847475384746746406126376744328556764455167606656789005677536798719614107780311887036555442310047543504382329423103402327568915007155664030956710862896762220127534982144642852223797200540469059637338054297491249087836419471171570450257038318244842998024175615975002105328263476031117529086462347465028564141680334577820349458164587520405753181529953377600205781566292754600467314090191176491477555542552734930640908313107479862099339845878634649662841269889577678953639111933801004349086540022403354842103993351404023748626413483713890464086966821242332731352782959390934049010134072392598328981022106464930943263464718434628160931234982322283354119554919479221238499066368550006321807267801008912358800516500882183009486042816728285365343159809886911801682238504651278322242702301812287165636705543513569240376254160205210020251300301426131781465850183754225097281409238542961846132883602167316334325128796317174658543329128838700000472958653083291457664988510980888945799113156728408872822524893828748287784347681072639470404362668058863431520011218152605006437903944148361015624714752264114026886027078993189308092497868591446560626567699522830050498924902306956442125593455909642756189773883449374543993655195717056729780286704140095624765372179135035348646675665698506619769574435370500835042809484663034478272696365239184860789985404149653324413233654851347718747549634847873418725381053983829359791850547728573447813404014921593566701465157117010209818470522535945510279601633233504997057693605614388861893456614256732373557787742667882777697389779590289675887895291417938089559831557006240002243391966679724539903186739225919958945649093370321508714200985196560355383653357496439194881767128693352279736685400792436259379039794539985429015666666143111761369913382933478983037473130568279642671620700520866889905610371795178673104763462896302489446026832718148985831464120597890716487096451148335061174349228163302453697869905314832369160147167978923367944906743087940407082610548954322753598693715938973203600119649103689485340441279677110475154246933138198766542090546149766395930935009519713738218633239420481986270086575836367741970529661809093683047318203135392700762957197891218472102260200011932430638211009719645655768065009889607574607792175032906774206490442134498566854775575652339400120548683162282974592824014449659092894402664110975078368215877354150299835274878379061651379567763898092652777237260306807572118277851169243086466409632302758154349463431201452638694513046148889167809205595069387072092727700373738697530431729106221812383558465304231484460114695733537666670657778537880362281580931739309943394765178884711319691455643656697926361436130511430990860644635633500397375199477266581321854294995003219248571515461288471022220500423263762496649238937592850490632909760463146890900282466995023400704104755634374930654411659770939688935479079548563389192714311814989275841281052244947696948627411354222710231219081544231816688359775586853471506086715233502629533477094797838509597411994346820507059521944568675116302419896061337239780197975393717608643604471759177063289381586586522254698307521535931631959579326318901893875809826840130558710973143234365548767517612654288574823994307971858491904322681099571771078562217480417147012158256406346177633804207396880985725400341034836003429281317310601362296336809930141193875658284737242126459575685343496423744545355048857046222266595903417110808273913358081049545938130901078880642161553292892007437194243918256048171255960706442905609683956660781107030148138789017461650067917080704808828225564114928735388362732881055127840907338394431043422156682539803933650125602890158523028667755520788755483094322893280847430952589984276719250070131997493372845251280904104957375083525428713217408870470073528187526724534803343488449648646725609885065868791468781127841464626420500610380804569037210355456805363224902538270450990497522735526388571829881461275385535165161423522747676929124840053292450135231416209853030067533934747886129883494718058719948944542704506418434300231126254891964471105092221267703916082213304208147940351246131464433143211685348271165025314936910598506010360338865623619636362640241651239783163273649274610060170002468678766326771060032514273889414880794445494627964450100343428853455855787338180781584091711354002674500848411980916757564847483494244395773163183017093849633445716421889065706162497457747461472235987487569339607743160348281716437760380004355319665665336040170806632844054219237170256686196013818701525711131838319001975848982904386401758685945154788189026265408588264363546765901011929376309468694493444605238764363819172215246858444820302449989599806349760324402701946749598578613394976331760327535989087674077059166356905167164695393423942294515499018468239312062388017362355663664531195502113944125802309027455591207078697858572420659966459674150586401352542073018089829702647353738905954782629416537626236058028976929509459191125610357772475306847594842480377534591438714926175582986390803393849807239378657833666670558310969256395420839395494454124839040280035216609417901453596623225752670981327644132026440042976734860754822078494458130845502852655241749043292505431561373444351158456608938827430112616751552808593535714591038589894534192552322745695867138419233837206480113451385331222301285276635549249678192450243941308884484806217748628103830058325664812146413441859508283877004695164388947859860782483802760535512996375215844537402835799715536050687360981476815782591136724795908006279305028063822131114604097487508310041878574617626396347222739158118049364644043915344552099137231070315189170398406199378046569043675603679635387267702662723409993197238442165576138755652652920802784342608349745102294515118622616903546731969736990963696032877084934922708455372589060836071463088040212110577978441692981785571694743862728967925506983000790581655103096627331612989611232416765370246810166966432953601166068319922408386945042432506504929564487255932453570514240584968942860627894370626973793564214822315257480208806169627004490628352737496403576531787955338373445324069057769881725915048525879927852062413855608065078482814839970158749743571340885160685437958818732187095507396301951293272487214566917040867223204089524230326788328609783835484810779653943224789465646282738071112375830066300684601212090722942119183235157950000318531552610216395958497648016394200088418077965365171850456566753176835510527188935414465947638824409045924581773881553244310571960021738902860190709959902072281078055212177264368861682159686321504969605964809277547783009534074281409603451113034723764708790351216072494783698474044298948590049840805851062154870906221672569786977237646004706096766649953511579175593436405211422912641849063977060299661794020115181252287922365549885300598073678554027664072352254785390027076286069784300291576252036371962781175349777030177162048859214162850140391752291474781163503500301931584376534565376778187899865813918639420073487067077959070705630181668655091370341222486246510163221166140245362577106270294336843512491923415229834964704375369050650122837736210857516640364809292343005395292347596305214195390369488042347007055148806292013537530769257375053137957386801773199573218718367723028167045074009715489459103474444930189181535323815459398110354293037918689037090092246057370851417617869642089761648823726707398980857541198795784573351609115864807729455436215810065536731465159682042973855037085861576225899085736002773945190454451366778851955225079475801323121330134470221393890515184692897539286682492780033537615383692996297676432546282559470043278858248891543284420946660534923487827597862019430509191467822357317970765768359756351648484052889494150008072307408070436253768466768148502820401337962347529230513895919419634629789619569269579405437680581789771135846898156053133593823559218250651598608597208851733419253472805835415485448792581886090218572346455418544279109592580596058304148767960919181915477543738979673412618324059230392724562568171653966619011692693925647129114323865385211246924497905482543465738266382130755682730766014261608050489667977563485950793559324720965793692885555067454404248262450157699388517400989376649704874178853948052100294915753744703352421132082752415133393811160871904186768773040884271220799657418924291244771465055447258584123458508969857172677915824774480983872574970561280298366436611026291410986081194134764517601410944920530106045932340735375548764024017868857120207350300303519204667081259890382112303393212244572307318092996779775877791883080364960612533597869176602909576809732413917126236502668407947003855109180248300387761983897308638837778938853670028166409024200003392225821386026969590162942800157213130730705399642966418880934975900092616706402645621025146497468529655546198323679881251507462075573844707074259100864847629720250876481817092563380051689287315278392215484142525788829996741439912452955665130731255826632810278689582026463042269208101571249672686467463201201496904182022901536577842467739689258159430953277552673225222435251939900298729764956490455182414800989635000376022727361021522742367435996514509379707147188344934170093539131898716761409688551126153377768758541154031034185518589569063620200906245775175428319181154446364640764385478685365111577856054001694197710249566250645432945069366380174674435361602494347068612514381582445976610021968618921850944822175729996197649760441175761330410360738352305349866015451998419643918797862929724187455059446200969561414934204436304108083356883754686952153357950614483974816763102703327545472291292792840122952543161393187497199404616979164606842633323399146871589061536044748088300852566816584012495400987477621265252270784203975148368678494233987295865617669094952817131530467854493364538347278971179738518215321706100428472317268017177003828630872625925633267420560938350025584627574334354054555544521691030098843413257490198658426589312263463405107447707526494941351430554572575834738277154538459220834345109007424429155361676714329220007826818503825109529444345772800085162990577310020757197170147150465209933354779088830299582644984924159711855684735347659159734046171150931553393149725556606845038770855729430938142817393053758226973079001339154855650261073352638546690305644722709344688355666967843808248834667387030461389274184464667610390180406490098551027246609998861572726172596487393057126764210637826290939237313413890253684613396962247367957034553137397590532841715940336992119122882197692036479716828193295870011877073086173603203216519171648006442025766673796170375467768085955401555066156251611438014868789859213155302203704262217743477295803970540756872001077982940004422358583931072522217683679053052202989207649428257034220096442747750319696984311944617558497991718241180474418827019225706041844673229711663667355206753580262234740658523735494806521502897222789050588595657840128400702453156403507665105371871101881812729069164268264566405648060913531650143140770224511449396877472429462513349577656847933373308908374142823931174925784690848625721375028265771520502501720141274131410865736052848784112765888563068454345888183809459922890604950181362140443802342027248959397740796556937060180078807077536399752742091448078199250164254508530780760205667476183709285841469358491432683719048893875258809843213607315510577014449438301442615006032804945210383006770473634572005215597297919498731514539269935042396986081715155968521830551068575194571602319356616586852993892149901580905251539257114035861684627343472537650825387708168774715992500123293528833362269977770859130896530044146270506201765128832061477716992158388406501430875836885679849416663338440446244585832990604832530686859812923369227321451809904547081767386492359699507644512362854313223543932259190315674188695566394093444090891580690283436404388967017072459253823069362419063930849114446804661029375204821191336149917383023011534032209181656965470350668996936176110281813313382282158532829748092842005150030875334843383768987517004038111107208405099328418870490194981360696534233887382668973234916527122482650239367724163843152344206333729011255331015147312051636674468069785723401664342494379307491093503298024417850745279009669887464385206516009516183756346865549968733064844805243578414984871932169213898090604814763323493447612875158903457872264754295764311888218395711233207433708682984094864483675251696230272315791282400983107944313883364043765641805109146510307950683674632819420412828992236253238079244419715774048345139678035023425669561930155142204451822654755105284598090038405457162125840172202684969879976670985981673538667532200464402809466229147013290376625894854541518769763966348816629432123746332799251475941812041417807620966543301309542073474193417558169243469390962284785348521418927558053856438680886615533638422535991611966950625060914158960770585857630416388161949048844264135962514172563606798485684837068343064966916441359444178132616275420308003492288540640205807285586987455029609204227926407071096424950375637167452997019112812655549691028761259563931287683893245160875680977159251449764540041841903693128366395392397687829290053638293225343572222248265707050928900286745795176314455276071636623583360196806654452363274686674520152201774399144965077392358441280774821671632181671929193351608480600719650528777608437781057818932001165446678581478005806119668592271619529429410512845208726350277899787630783322211073633786953242641526580617317286947264229643721065648011148374992493355468639343223323726360369935642493148560961482042623197538161783313222613490096163360242576593985164277231515175530086113070859745736695380142685069078721267407900844394299988699078779597783409293669043224950082103623572820912880814955609262378564112261902713839294895678794285058768930101962552768990343747520222323277374699527857744211605714672345634080754379658777176489678347930819060805744371227430223525444679217211561855473441514861832557793285546338840663678476704125437040594538344031126205257019668116910627837998541630569977156186389728892858451616197186456789871564166659342911393857751385205514541914243932105300719703552321720603876129557851337675894604864631381023771154093325324848772634649669974943050831770950125235580257958286643331009981729441005197542996618829207679403669972621419249359819650440006025267670095697346556660101659201845386962873380993130749497193299416174645861976326184551252270132139810428363377935776451455086688821207738617821893939020707941463290229939547266227092641569215754047194124903118833821352616460577851485502579659056622368256025268675138931602287799567534747523220957683976566818308303002499456165548399046814339445833514604812521374783298758680838571469906191693003969493171496747084951677265811099835794284414570645539044360598252472879587274778801892405191370506284358528673834161115938891125359800671703072764283906853224260892327521905918326587522081891026858490426522040892305931056933113442891926601220801285472681685482355341193941364699405075527426598338588448850478764000526492382828811790655392631257894120284667677813303069057109133859533251286475380397122058938580437949205853946016171702890318385551455379897762113224520641326240750950375751097935084167305463129555580403406144705935559314863756067226220075709753759226029889559513634995189561070586032794119595801753624591614694441213014181350096049601309580204325660211187003765543279018677932189711758065218863702678944190153678273744384388695219182704946609213353722193006686996785884105126695065547817499318749258341630407625507111562757926018794546789507589516196303889693598739446792626261536329601518350129042622379857150710810151148452998761184293573044179165096581256294709507300160010763599604658616169492855002006393346220342833012183951382537162269266494345564136575393893351252622264193378206990116850505124261041971195751671188257243810681529806870292538987605290199461813614524998395873092019375280871426594696219137981957505278225888600366549743764849441360405320840573924791468049507746104409301522383626198743220062178947817057956989866879902003886143668538378547054170128760209731190424466182345879143674326590993762120196639431042977364944806799814641224594095452304119789300215450910155903615618587436575733310909105721052165517866792381560288839490066902913952621624787770440121333691605368718192946578298934813309176288319079464625523658435185408663504396022719680911197083968302461744117697164350495018866848922154469709275314283639483151656061709431071075764493899204277995675121271455063646651209677699659007021577389890336400363451070812320472094781155410120641036581507188510446450204092296715458209603099891890053124249887382424183159776079924426640034800041249684277849285396401631563542641331612424643533560670534401084632495653556275950010571617473017205440064630897861117447200204333493217574485604476300181794111373279365194701609446006543618900668140789336289977453322541793586222322685209144293369550957049894039142141724319861534036461379610095666494110042036473791138708077851868379494344386885401889305456628830501019831826222121469767351460992557304955250900708547305143380463033160965981230412781220949911563874670008739998002213290881229304566348552923250319246809982934334045601645223878444801815167486520514218690117527425890376693095981156831594088227481068604790337078612844148966556788577449436512668190213513819073876020445625649443209214578001033134395371515907418966120744165650267019301421842764545090252484754577868540351257090135877118372466798564944695207968486339802084956656236257404571919645595689345646496957220996537865368829055309384624044114070199884280381781258953234529204876142682915583079766940157416999956335802835685100065992958511051345514352192945253516133822209390421881778874343577041460054682406437958451197621084464092756141324227148248698818798892732696318566245488803846469491474966836608347321255637081451787028391557620875251679500415671454865150294324938226873433667974700643909776795743312470468680548492654826442999194808123158132536606953680979115692888164375147302188700334242577869142241030664145362447955616409690153008990548827807592593259816906238587550249940465755874180014346030393092939984743854735327618115172056685848421389971113935864389992985184825151756274227601824050504475255353707903781567311321950430404030683358686397184738651692314721410661859890935336309447218136262111562783399961925884065140935908059011331327373267294594683902305644602902001566582086339563763296773812958764241239555458855982257051121113868442083652632168377657462558230574291972160672371957614579507914866749894620003458196660595084321285447196217559721605005799534077989432702744844259912346153850536803904058178325503887522553906271461467014410088832268205160345221718960302837919414459898306283829881850451511483060262548701669175616961918073233370721402757086782926777547905911884809467248759273972192430883892547894013722046064956272340957908356690139287559684839377087214768808932774638743346955179331105567963675675857835944871883966241049981840083879646718110819338470743843425884037261710269860257071016789991978437386860228178682521265012711623457881352201193072014702285425495681072395102192299665273858821606843217434102371114907089983902789033989249501887825759372123224765678486114407114872621240720991965447566631210630973883559180424406614216996773990110101879906579982719181025156730721588730965186787451249195944589883123099022015156316323076427137530027311853771156360832583585212875152861125896540485638376512565086565091672222319879039932637753325812429032409011897371111345240833054761285796796302410613962681939312099443452956429697443269353633043439663885760380497426851401220176381148406258754923146885621608106125890428615070978236326511421508485002861203354919673210706082316250703010665065691122093851509721736076498267556761078213653819868247604552080190620425040959477716836229541055584999171231375904249307422023334601241119615560382186074688607086675724212311346103033325348829263912108325192899789169554573283225108435437557862925890104485384945378133310332703944700668274884490647162253600995664664134450664261621654122947689472304615792842554871091962078277785926895791417867128173078132085323869904215249388884892162128628149025070301392772464280498249496037429168164482502354035655534458366964991874132103100048775858807630761276617722494339390862412690817283984388345109166881569181522225404364378356948077675283584866055109103508007504196055147245851858917555291116981956002957153380248221610424781939502968204510438930613833713839581586095116095351789766639048428837592880545857649354682524939881190376242758354174901847629070206869967250424597124962210458564216192338679915999296797505763344034272018547663722540724880648699576209384649277312989806839970583199105855853549516359738554960068813604661759874675967782128610470877804252000757233487157682385883924668439311261413931074594175666934376253263430210192857196613134813464352329442289956411648144446425200428552635205693051452995778769533580474263998054630835541869005177934546312274276991506968056703790685461598581453071418368064732670979680076120632324054050301200731528414857442196707180946899493980361494897344095873317307988835214522340630093072986613526096811927436891796051653199720838920933053779791395742379507445252525419399932201535559203720772058386461750239812461589038020877409777749292637817251322773439046674744589675594188424104735265728979104951522177821117805692238730695514862573875730317326057411574395375917443133336717780129616249712984601953559172755926719222494928299240643573233741886570270241857096971633798152104973389825338062429476282562901324949134757812822621180418608508786200897589629552646087836752823908276951917500069365569991317362173708516000275171080244703321802800867706161582107291913017980819835352674402376308847912475875600090799200658088077062592573514190694117741687674410455541184168696779203237172966205943191351663562850818288396503582301207766078231681230124823386266406678340753429051375778296353444791288644285084563256515379250578249583434561111961233653649194084003190009614241155400329343799140166003074239288536126091957551435609933784486858366279639213075663404790904777883399093334022550390723935732448908748472825320019705551706079386488462903267370959156740756962457609642175227511118205182494684936000820570331865027679237283655225664325782406753083346189852595604721901915941440544761090103706694640197060723278393035787657264411666463168431915121332156043836355001897832242246061137902684003689296685524340730916324690849559031914754373469336444052139974695809971082055197436539267537297908691432677590123538530586268221463127853861346224171186441579478279438926511391406332538116419609164316910124788219139050058870116971770731998053731518521496287965722585091756069308067311652418339346552421638467395882323167784077598468529394505549331226942597829168672794051288572704541424232802279984790398282826788672580712893977447430480169931235936466986847108538345219046468280096036848217544326901356724348226430868907823152107577397688053384655970543718775397196259498537155614987536972960213792455959532267163511359777427437286417338361965743479101236728990937708419662999077208685911662054891902630502102822561043694246241592569485745759006768674689670626081512197600853708259894785851879265891443453434820443216963202725957204519173182746228593782523066630207593716687123598671887439712341016511295439878059554570035862545355783657694934759769693175310325533918427480328925025107704870822827136305837796724094985947797239554281763386729784443099343167368066919374174413809438421581503350024519560448676774974613669754756139481532990025378297712502961186871851444773736135805274456524713191466750513917064956278036492741959196946064985562066285354980654284051701260307639661858135442472531133855269192967084963361553607928157075187602081497146334899161228451870157216249049989949027675316912090979244584897401553737527982290155570578643713261760244964206233782714554896840323423068882497776483277035850356430661904351408043474041433157548863705472260742035370784654598890130181505431347357378746275302973992088478042875309330890533188290375169695907602613109910034381599466330886090373390734135238538727639768237320630056548507662778727838609850321393122240594756466644550197289144103683096395189185145706897435138431081914113312183970074398101639662275871425332465887335193721799476346268115965450129149067718471187597594456022474680887394307169242988268752237949186506470609969695557433412596745930744402705651285227616260668388808410256351503595695469016726051878522024306031640087025819388432154059501248418794786864960854861760514336279909429931211732784795977259197534867825325166781871998133487591819318778264640481551648283003634018880600362132229819574104874267030275864798622489665610046487172287653766478912269550046753928173118241068569357660759928339211556959671845335125689455282327631788884025303310772363613671285701558590649349211553628730401045688335651854802299464321402609357764227823986066795903756609155952532093149528636115330425554672054964557951737124923031056455888641903062831552912463094110299373051846558802893923355437955842137007652057995972461556622296056180153845390753661091044807071847250883800153833835345085373618975002541836592400275829850880622629600755454762573983322761922449496889753983403125375556990478390911167111875042795798338073695249607955737646865259507216770298401096815217569005695633520709306661551877522160175890344703330683297278236859210368844765187913934891575472295280761639689706211911748383161902349231819433617357907851760346677829537586439560317059449281787495274530127732320033227314026068332029735629474029449227690556320533756316922632909191224235301586471411452844964916636702777711037064022834857124910333686949492585017104455329062453183886484841636864450341524699586415362698853887645929448045711505245765882515909398943169257450899821879278296529311561627715728895609039539184247556610785664741427646360007075004621719247936256123781053582275993646294761780854367105445907569713081599075456100187041130874130301776124626908802881409316956673476576909141774930041083094422979022992817827847546823861632871983524496547332395468996346839339238457622368432832691045949693656798262262559520494049735120799139851183259917165348173951027960048636516829335984504734016397683303681510039891473167277270925007550237178650637122503742064529788659212286532108363407036154550862663977194718383669748078193772732901447538504478450526789061549428903531540856290667330443903160302527317775113128967327881091525837640575074220011938990143878312486893356040408950614966837724818923606117693103300389281616103859511560321799976529079234545518122157480795211857750859343242794898306255171878167748705322561268682747139604010907006096417857060564611263163674655382763840296615212355790910962448965145406483442603793772031522075538554673100971313359157347835344692298393021941353290987773798435591640852438138212379589264098968476563910885178781738679544644496039074181608724998467398922026527436845024280825114601731424638717579078232242148779690542066879503780124546008780335203472250014526846603012537401585141728810164483410570952071102119174812789589627384579244155176382433854117899015100491543167006906584591970723814558223504201472902587408927084264961440457802462970510865063359232914427260570562129391231806464809764468676081119955663610282860918976882173329269174639456643669326959088857065467338718611323768778306610055970849893316255292612079365649182890106117040306760723617637504179512743095622244722208183055198771338707362969207490144033680491110213886123157100718751150942616121360502110013267657605488434579985226516110024574276648074881069054425623151884039302554489096430642097772262837319100095330858251242050691210327034916535937224270695197585179309717725081513353924332328810173610636891503494142300077892240418388460135327947078954138291008728973153252603935430852470640870973487015013558741264630509127426149983665176720644759328648736204015941524096013696886878323754488477196774013349378471061328955847824390100586829410041637074609312946554740379843033091862838117687307696722645412225055732477383241962643139369062738780898648565333266504683573595862539397955523244425463848195556515635761436781619318069561463431580766435854470353889497973683640221829915484396076552350963790400464489453169625873822608121615558262422926801107060997737521154462477387580292985847898843599588427571535323167598476585674228414853602241651066985126372704454662053201338170910614459286594282104023070964565132380734936991814066510327780089530649967595420588215484326555738703582843401955661027543677004710061320529510874065006170835884037913287265029159873955697590182747249149946084241493099892187197628598067178169529799925304190379151897821315492296932414690530281177503897256039657164543111833371980962092316230411229732305859619529873312865424705870375455209619197659056537788367427038167541167788867016687663678523024526257903070491250355037896209010072784421625216357181740835038762930584293175393946742604995644103849448811694492113168653068409715940914864669778795047591471346062267566461199734032257529598971370070426885323833310296067999246960354754169029959995263239069253239308606905395939240139273665825121054279819882964273585323602471417499270770798421501792961546697223275063755147914906644251953694477513873475722670064910612388334510029660791547515101925666620543286960088762477921854691685007123391580599195763901112267356531178255353035153203102211670678237460481879690057497423841152590243852256006557762637646889501966408614830726565264497240897843356409796849821521274589327310663142714572809805630042264977941332273022498356649210155244828401557273525650253897965811444114318359679078611461595107926949185058102715820118515456142509259905066091277642481804587687391141395126209021703382984001434321974384469089920653695519346870236102549526304452061750415188200284982772297821945890274508526800346261401552301715416108708337591988570280711508157077285980106424831287250323889808436600545862432329086303073053612222863277435977820348361295759141492226346955594930284291565321534390773672105305668948153882266864611082549625260505490567745115122708444548484734648797771660443400709857325403392051968243595299014999490049133958345502864776498239468267649268323994549046570993235147300878824697540580874697897606282945095869248867452658904393188650790748918243489642024637151322929309211898547562412382345098134068497442245903674757362215393478536749886766166575820261717406521043467115051635038072873932506366329166997744754993252127267801504132998642805808454172944725106419463414359176896821628209032092669368915007115244969042214041304029736437805908482441532847799907441512395967590075856822115397016578476842073199273659943237731260060835798561214329202685884307687692101247133617686742258659563802298535242979438927306584355941603064197162043168079851713573602819264990824662905450482553347822494444810563454419738837091926168141636069630846489454086807711778814242357477850057365216314344967546083326957315676133358594173733619153927256719487444566098780901038186915009418343685295169523987722397933315228838180628350507172877481412479169203260170843972289806845696870008609909313742586323700297611514559701511392237428425849993897033010294711570236504809220624012202910294130129821174856467641927692379291686023505121545692866310343475909838894003166802480122502593980448297704053908880342791252269040651680156208296117550508450053587471932632801443665371230304488812370432566096978139429428061874580634489617734297071933692583088717385430637695478539099910569962118149417585709351813097839443250146822604388710543808434892174880246538757831956018922367038427518684038449097018996443800067274472039343431496958470551753066988079255381107991655646804847292673281373720947088649340569769206207830964049100767919414964036358753546761782832773317254716678094616232233030916238500431846754204373346109784744386099515962457775588990049671524941006308021623243156930636411304086570535401616095426772415434627894346062906955733927438335966381302894516929393519728150353033856877307558718810037746684596183279822169437957340473093006910307086833218975976902286181113317063746149412201904330088333101370890418775663967179136214418992111045483059722398098848997440121340314183010924901278057930449126162351476939759217119784191702022485476630692290577082218417343207752735083069916308767066509962686205999735976410567178709652219588262732612018947000169470766114804017305040826609947613494901681130480417433940898799901108055636635371799552140093873534171920854049956324730135656980959496647291060670221991725423306304770421754777743607426276758890415416726449057171768779068566384244927329330520925291421010589129416239142363639169051632722507900594996880604089073585211974459471723733711638909678714933513672070554477267513648164856786876503939962648284169220039410151410660956188302174756548253911071261678058206259322086666654152017573352673143679220587999314322879751491160096432176488019898358297767543719187518177498365243515461998303032681830762437709120732838477074285406992091016752387254832350592421145806514111661094823926907443144552349270274139836252182657659483254672263949025947966617848567832124423668646745932895058022595065999735101640105918938841049673408550689504690505073138494798199660584515320657350279973041964339045896817255979538303779871026359336060907308576783074095023177855607968780799814452697443924740933862694906919344947778449381315201500285391430534817429854576394281552301022319176742864931019031495523312863392268596293148926441899502450635094295524787440032534377092525521152586444386638899024140498380926514978415712617691863474126735047787359893715208694937485240039817937889254238662452343031653020572456692757777009157350133425863635032036421329386421444751247299873102551246590312939482298381418254661693538793370210740107849766681521038072756320323801492544199269932963367393931336313886905988600958511282475132425887256492467748972524279619645483371028465655998495900919361200187087712821898523803822311460750614368299949321890866293350290606693140515017636296756945786584471213798917000790899887530370314566292589960351557139817517795837162009837008593602968424742769884793461363188142847292999676554971040886893285440360427995472218993223582161577930940020095414063947928157579641775233274245755686555362017637766823857489163565110962100946738025945648675686980809352574412041087249793049537606398868013734313020084868767938027139743884235886611583297190837955092808337291471862533161181158824606447069686703741344389108155353783511231631772574967192493625037480498252881561990758943546713088330642583688178097575155734907463423625063709332355775084141435927900968601243833738236350017967758142217631853602455343926255959083929531385417440952296132246455126054457547157661494316840791565508724342553198337288977989216595791981982079806429184752703720903640546068014769063572841206941749485960111757820084441509160787470045657832136433842146212016679520387661319458494862853915631600720143536112127049842917950973425757764714589877824759962637212370776034434249503702542517163532021660756068926501296790857135608869040808603720465205866937902983006230840598238494769998059987241351522463544031787117585688390081067868712046060546654006270319789949587721214868968125837685930087906233974652274728394613132130721808453301249649166928724185685126606007712792878281191636321051875008712943236428399017022413178961819780134155478713016924300174978299824937154770220113330741927914660125728979194660443459182329977392078323079365837904758313571752206400680426997943428479197971594782202094864075799769132387945582209221602924080679634970579743209821639491255794147090060032137823682503125946422716525816563074442827028991129950309012577766069849409170432336750583700574086236788540594377375703933888805707155941828497072049141443798694414565588057322571556876297374300069243706883197858563234787706749938239834037008272892296217696295898988002983010049387447984444424655891102337696904190951957921369413413481239792082321167660627525347939213534600362719768092837214132407921250774751844550690753576795176767130497852770014938123474154895987930134432505798052578065958243826838856407151481702982810715955260562226672356714989400402990439038955544696670735997212811217804770787987789242883542778669114806621779980619991072421581723487424987064501805908115760358036988657657009330773036910143706344069175606672972279315042583131813832201427973932542898879973548693766909982985195762617567684126067384498245696595703970011371256031904499183870573403926664325105902474243503602103275683868570494640722268053799182280885120098145982092672014556931655769050831412426770838263623723055836475524491723810261378608732069842635938557617931072631527426809235869156454428691347568520342319823471134264142677106598960482918013393433459024883904488328003365110582347439831473141974130728392787650534199558111086350235958415558861598778185663176838466948676547619542084971549594719348620408267605803252958364652983753245516367622833382977179182051407946375808047750611769985003105073949821038790965709464420347777577155034271217409888984083793279883885900581898480704289075792504988264814282545032871768993847715331328971326622588263642667406537360321818263304433724689220459297083451372088089102817078900069352817374882956773817740563478551945076152221964229106022703263718545701155002593165310126593424033238782836484549986253878359509093518616442066213834932364504053886908151268280274936377657647456381652071004185261732370345516932558831965464469465671908478936275839818792916145513247337776290389574230742033196154691903131934152859531425072926215203985129242082045377161827410452394646799340658263847882175541060427866339789692581749341640694652637997469306965551901279503074155204781086767037169543247139860718493750742603866554184062699823764107984616241467345283418009676323222636695022273352039563751892789929224894470514593184038495709370296020540311730301404288444984532873141474910000600691924210712017512803685598418988064727118418465321687313744039355651345754687552164409670649501332157089070883096361678472139222143942595139292716727824846712778419873909319232694864758434591477123750856787447329567013891194800567962274620128495374577074088718303086130873306963147734635593285546337360068145929889209689991008936336954067369704973394354251805980684040424579308678598569614699740751447699717724221648185693487391341909993790558765066018899769404921267111843652834621600100512667246874196553577154831801872863460188164444477815071157500472073836520053974052230791250225714118032945534220303088248674847056847703186953726632774176501818977739214987866924651259402204685739555226314045717186719530243668987259513415528236604935634876583684586506486877340105767461436390913265686146715341553358287186977019846224762805506715153796408003001619505201827372687324228583743057090335639929319802577995546094386562063582922719851878389975412745210187550305731654905603143660166649913549569710221403847622182647512673983452157586881537791866882087169763431239977529517893065350291951494764772033573389151540292653618702718207229596507973738119954928953131717578280537611027867331375528764819737382228160814873715351311289614497073169296042402467034486621734755943922988370343736054590120266777101740950850458880071545962928237654120159381484274060601950028314747528622456768640610094157635358802849929902207296246738166790419066449471820508224373506440950456069971744891863050762115843900507034185298155098969804553666098163626138260079888629509830091559031707038001439716547493473550054347468515614337845084660738076620282872491009703273649987189772164721790976795407490978337834546968222320492790101709977572974497870721421836520071195288737889076962794697277224862443130230532159419461453546422869129171430432000366933822287662230709395870206402944896089527900335387923282492906121309284499191686680214136007521798962263809159448038070282753073806803942971504019391785216811409227140197455772029290439473541921434517044217342157248040596406661636074934287300346026967882505137985110987456741424727109001996778057224984544000511006832776128867543226767595485617360530813478695309310440093731982199110006651956843890678372361704573311671963183100353174396604753118139461448726832299108200518850050600655377021389688124924846549777834653706577207589040695177480724607033882866700598364595339324371494997972136657405256296351566818637527809424620520916890728357833916423813634684059707721690176813253068385916246182864482729971835020809862267943542923077424290421829316682744334117833947109624818881265700183962484980690429498942138130337085638479152872072130435038891872204461869873526229216386662099251192823277513412483660976069908819524701011328473003780428841071951171941616650847395135808260296466887796797126703680441380941819756681225458341613153510148857637266553487700458365367849898440629565425655660509131892765968472193610687032204187892167161984361051609308923394102144544557243042000382626612029009301719916150510700941112502895397998441120869157323656178216344816982655914821254488379691947420637883887268994295378973244454848681318890832537576298436409454804809132321732235812808838082883398209065840707693277393609268243697040674126085215183000714153607149040425914272745810394118646883602856501589379924351276232741762880579643639794177026950395248091770816864477881426910896486629543137299292024499237043564582133683635165982404479806672264682846041112722573054776162611169185891222039391876260784852365308986162167102764839193746583074237815428432948404168937502061571733906096514264577705962461289957966654453648674019413491852500456676199206178269263506208576652323360366488321034919347577029593583291898746764106558082258162028669112747462849487197393494000042062857437339815434721071838296485810846846601782962341982363502665726707852230749707197912310352213615315935106689817070699844792033215845782002179605922136732151081472029550678521726196757344715439468695538489250507837855836128696689406111671907487628923455810456540561262388460307564252568083625053028894936243842418486057189888843973657180446649786500423448390788786921228302202211127353404530786576315689929088741805475399483899665077176216953574894527493374670790473387434955618870924700780127753839482773408233884183023509169815993390859400786996429964591406986021110074648991964643073911785693158526739508952823232624889355080899716859704835236666529380466229954497099441921486166967828646549520784543549779738712457640753356620981376377817911463054004204339113812135294169722780128343930037818913784834008883388837200876964147104961239902588274099677370544701528133539130997550014561035290172355000211790245149455554620167835039246147009200645015723744369336624944489634689700266687047290818016857617936207202574113495711113744777723291198679665862203349779887210928618303775416795498753764350801648917081212821435039864297662314885879017904405910827482683491678099779159771044437966425752696966674105713488103279465703664050814569691556871361275818641907005330332615079601616529024748651783537891590620303486489692711066707348595530564136203501890026312933070858118033738056151879425441443364282411235157283242322461040125692357932290013977879312387995280267363106875247359765466769592090823650295675517458775040482441594511670658062473026372213915057015149457594086830943598670455687472394466768228664685478719258790605810632987964049421012245593292711479284715118397076190556234152988728228844452740328099133162569547787400587229291465052074175282783621459897165271304303165403997308552846109775720727058734015851153686695022816132359128890692644212882320608709419339930758330983682114910113798677006537380399134909790023416778642144911589014526997141609678662834072046826654971453333633740315036779202804911457365327231193444756487097540160970801036125277799113117752099752952277167105600408206699318114834524135745155771662412347237340476484742682584017246511650820533455660626808017776446406290104074430927861343072541335236800678654753172567214544259554105093167275519980494831454524472551384366092366438322210693888831459469879975581077228746167817308846224025080691986791274627799127823899346640129106466412891836973872883919309262401602700411215340739725227616318386313513516095090896907215881098292719949699525938229950313648508063270373666831048828133722232164719798365046181601436808956693277053673259372149080877579588454731419213969955102594812473026401265403237686540285810937950887020064348512337382396856380642039984466952867946447780480696972290413340211521393619664066209325012938179274973243970635538155053655514633237298347381159689514967292353663998803152300733777382470565429742372521869553224796175663304379136119459620679572334972625445394075022226780057124213167264763385105651607797866035436301887477495139773395864092759362330370777182454483998594846698716665890083510443372459678438400951279606695829822522379063648863521116142510455933549215233599864406308451946687156552840304396460892798253172167665367657766111516348781483094174734959616786065701704529401750170309018930846972887583053097305655050656049569275568523894885999897475128400158117776970961357091954420949857338044918677121525083988389002046447303078048750237549903146294063599987856862934729417324752925669838984953452837707219797897051645823819449268143007711092179156458380959195635868190802968517618758127232260986206916406183341403118512478638296948291459918306010935387373456940334593893327692028812673530686288654922045794582143909746992971194117829332843884150483055342612017952391225068617192433483824619039097705712623814168572739002264984210054268268486145785764215107766994451305630429983239076205130945264909850142790981092997329163252290926611181638548457405822647261667137430439625898517143905671450368365622056233686748158647371782581140405457431307756041843498448834243441809349836658759485993739059586580598143751032161043459160016315198269873682720824276472949900390640156184894230891309425147581853937829604298768852332809627888780483257805553701077784322303157780061360607876339333562071346977972461609827821964516510727363274738987524341404643333771059812821325626657502484456955209370946310584476100489044516574305202150357668770683658862763996258605215336069018200706755070331836127963155682832103881329411048877988033159453955745404991005203650639340194424541521420318502655306415485163648000448232750928609133568163105754055666040325623890130688140677268139366534622469934376520457170562162167574850245335663275732003493834441893624267262702188008527713279958723476062505878970247525583491584735193591417709209183501321840276266310872821998046147703830432509129309538690059235940585289363741244831972978857999440200481253656331510768402147381853813176363121194426742261069352873591116796851222966202408766509196826430935957552176803808789916504091144356969485288932309982344993959225713353050767643643171479455964949477458634836669308196512972577446879100033846672383634837009037130342316787526483130026861117614335510532499473600558611918771781486286300849627289452152246523984593727449555897047058756761392584633779440109377599679347615332617407815750723425634826598647392394082877219186989154019096639334141724855903839208791627651180489621167598019079140182345498602068226887889760796397971766123067611463054602963598985542369322358137675336847344765146292253746687554076830264434394277034793411592901290602723802089271910333916430988320701055314300711291418952060905645115596231210302985151108331939024355040300129364394152150651035772478677247374345142964353184778959147930986302275905094002233391552704247451429409814706414090325022493056136946127945830669948059041054142634134679410783412431030739698996251705630989814699096848309587971131570124197998260232619601774131347785053059885566478495353499503020762028218341886709170135234720650281792198655994661601308574109070281345645931908146219452862434480306904254540457488782125055151632266823953353833951725064838374940536724359546361129806507450040210357703389374852270473070539584946528915425282711444559650154914738976872197235361440947088516734988688133872104346632057316276412101320881847302914252850364620794896079681519327587812958550265894785776770525273329069680542749929330583453635098849749996792304994411639074690842190219125981012767829265142286972143514985051420930422033666878607922395484041610185271878278522696183849528837014306164378344332333315769475280152368097739307245290602357420353874431360283829442596713326049719986000500438241105497617448961561976785095223199935849063776865776921443841471601217364618862513283590639014718733595475353497969932929566152594277543353473951281401826027691940034313552773891927240410662148784459035242970217724684168839155401865433868969901344615898178114728860243027238240309546172394835291876339969655530973238260021078398740507397961593153541291932205975754554884237201294782921127201458062277480868504559063274760587398266847222525782816600455700278821566311236650902669955689993642174786801922288518222193505843962611702674636339119629027267005713473040570908557211772396316921698420135283065049080100259534968690272757856804817907344120506490115990756830274419042380723549277215737001233488863342493743805358748053437422521113636361167601820917723459734361427576150780470605690170420368649904179885652518959840124401934898843599495214432854803852486899351028036195612676203925370890355281024164096762638728661925857065318765461971235849371067561375377529972812309508385461595251060885431233283289275584844060795135687317998415523008668864834812139480688317535206986782404686460546803051954135037949927357070600226849542465040370593519697920297399943527687529530197370867110394954450324572659324630507680805991584617405007394454635235084969568393436422955285469804370088095632952134055087589709827819803897391536476183717811970501110616615796290180012680282739422493140377128637969964516717591761627541197946897171644993840068233064190724706370316316103633471722618667673072714220551562708302145666108442593969824620880130880111306477878401475121755116925421948585383316507269922323925736778051804491390518440934029420993435052430865632727874706194342279850558007261202568782960255020781110140265341321621889410855284134401539636192038983493853251136545956575054501617288636044696207069759498957170747991089439528929753402294590123248812498685833566628614175138513434425926299353149053325265638309793689403338743164251192216927611577180298617105949934864357858941262515301442142187101827209423900756024089204743118304551464866184456942225531470427711441036811964928885741922843192785044047702359550889691956365087408572074719619079283919416376068133506251887860499189574623624187499353311048030156296787407117370810841684556283475160679431620216822179490392347686312560269995894700724160591113135035633803903447284506570334862031946918486414141527793356114873939550023847489554706384540647863808646991826106014306089148721425198310819184364653092827391080357858046470998525636913960191788900864442496799344018874622531803414513033724059974579682728356465782771756958301103089660748599719752427760325166575078034179538095083333553896386174098344164360219314093096437702984457727394420118717811773448300509422649171790340482883813846797948904250463388069305488206405701658921592151826966843254589107345678573340546364901325135573638762567114487644072539841649525180452937508875483473629717390300510777138032853847286978855425678262201105083872377042045562014724377935615976176373052245019475884940944828174577623598434936147533542487607724557442448958477328302925820415810071627698199561217733169927838147805190090389940177201171192889781396265219314019365263496706752952001880240804501527979714206118505927589065745180249126807323341304242217474397589017208649850700687686813527757772016484547118257154042535899763341128154369454279858003953578942072957549301585376189567255859966021239421935517599921686022836685665923081343628936744553680502209384645484807486234249058639247428548219059675428556717702540202685425639221938592267649396612179441224316556986033857481135886062917374773218024178661887086420233254936365850623516960952682314572303958405319885197672501782009500814729958623992650224103788896998468611608190110422528121244255527411347226439055372136609175969785388675401585819350433248595249330735376734095644482882028975629754575604767734164995379230855173387101570357333023638045260154677719172440543566350730952884738200883103216605805867401081923618563749837819816246383023482918698624125468761017949393482233465654811553398255538462570427002264733092539146208393691300538104408002566295562972341188779789846034919918376734219353923093471167796883235659401459430857977399637208470465062920124332964015231450193344308671241610555145828386901225321374125758093738491950765322984048461551231676011921066925476871395791311305180236171587006551059450450351713125999312615741684690589238154165964256375313174365600613909054508392448233899732980833656101939374232314221502988852996524164068556478713352223734781789988017840028157688607690359002462434352687525069568541780861577494191690567217573610376344248302031716730408982083273323636381193808724615342864084322270110299598815138383469226690011590371144989362904371635595507605168095593676694778989894776970126975565621838063018990593934855503246927816823825925835413668863498356208340464696959321470475210680726126702180698643119633911390120991221280213012244118324863511706733332837666236531105894967989851725679670298954081828079012135620861257474623019477029987667432448434969663685069434504800629418950182675574788496614872360151722040407290936970160161518867154903722985127811402394759145096721388344549428906551066752113133207389988555684855498700329704018326086253937811353856840540560917592743108619214999405272360969907487876606786969069913614407374945646627914955994186234705851029654672829969150792917832968995277237650943651261358298423687104639729229376271388391131243279330708421744440659577491219185757893664618530529063018252567066864197480605414313765902180736788952002670066097603139769537510624564019222360261132489003806439402239891444813080867335777120683807025854850899732790121837741128391583044142762801310064028940229063836945481750294971211432338217206525107735627956929157859873955266578972347839419557932802116807289473026973858357758922601406142614607474581662588918835952988340435777659853336928162300244619234794276914679828476077251201569171829251522738668725562254229365646027051730084418593234143794191778137652347490063385237472760648619597153486830463826698553707529734413913690254903011026238656878637215692428162421842753145807418650962527138566074757554538964138586329063723877713586857762994207382107369090914601743834304652657004033649015422298538944800724519107718495832259230298951716414902387944749746315686373179063563972001077897001513491607609409398512462481664629090154967323143074778367904399764333396804771751842568398406872943429270612472748981981731185271563028791896927925008336928521318019824398289023176128551326097881780971826428764181966052323032019375308527983319897027926977143946200136700006405022890743556741528657280162691637670029335279987398344154303600813095449946715691730534899274571017260018064408558936553968889503236639526723032929686745559056422121001270305728709121155308129540635306565897658676684298525502263491750326089107029619901600174453069449176749650072761877699752373759801405671841923343441886449354978027052320434200847136353594159952277961371135837983643638922888588868391767106065173010597418661845582148088216403910015018878238520473587462908220320747984178318257509754855691500830805813723507434997495467764367984320699515566850609720576458122886390632055401285000332639713237513219174022701091023715186844503588249267379155772043051897271999706952306195923479460001038906164377779391299935696095681892544038959662831914863305913604796386054894999508257096652902589703350058204851193849854972203353769233242477053068018521196776969144822206715671685062457240368516021485382602228276319836020278462657133902053413717077855872063011211523230356634071377249358895057192694371708890832269014625559943511869646161786195539971475063238762303556271357055923372181103196898152732354014167189658632344192141107862296370736901232884905329471869248879890093259848340794513740065073356251534524585789311464014213770329255431468026594472067108100973261124580992216056108528636701128222963980618013696160792117112174163047753363429180476622593429761644127324880443019741807550489483049725558003967445044270643820334160324773047833472203544477433374042742950463788259289809101912497215245494771984616601785515023359803891364032872254839062758518167120313826542648180164725381284296659652232151842623594791833020963927106051191076127608765418161375193357356849383554884756133797261912938679991744986061480481259783306768438710621230486561343668189274676986286300147619601004576189529423142507871090021071630690389050260031912210337105486857655670956906264008327410910062534298911470205569973566512286905660081924800143690208798416670503526543845068971537340693842157453429749458308403508818022041008976578978305870274549240425518542418337722900219406850079486355616221112014557069212654432128313773580782960067010341341103461021288540235056975011697622609652829425734431724129840843076501311727218398273430911542794750664281370837063583434659679940682188449794897902343718735282599227998122470296589427392712558248231539142550985427600575432722595603584932488678274272727258707614187649885010262650549895188514260124411293693205360188053224005933082799958811602918933007740673312104616099058674244540504090199818584346547707174662412326987148074566563951595226996416869419135117011612784502408441798410784992822665915280438388678082683845658254754106805289234067889175971665325671167356106195892621076205123612336445492998673521770461757513784346546275557143360703939733230533507430648425298207691353895270495232716623691824813671825356472847030697092759384500334818820044106173453998680542630361019163740564805990910505203165358019416594148338899455718453588747313024853481327549585616671044326201634288907120588725724820759767844958131161735205475250739689960084871434681992920235824462146546611665902460433393800931085163407904062748454610695760732744272540940165322302896946609969797306798568517400549409925687097254886576251408610424168989507711010103253517029772887491290660500744996548081529314894112265520709257630410942357249894906257984537316077782986819760372837558951207298274034626552769105697358761234877028223594056160747765461881514385318665319653615241578661222631061783236180518679452276012382910757900520613200845067006930008235371966738553738264760248050507409298399733734508175403443607115459561158923872880472223223013930615525769630236324450433806090840798539339403103180097168507124326299225482295144052717271954612948944076133453970107592355548348642201792851148121331527752994022067364186348296293346354102856015624932211513302218281218772240721168819334422685486250443606327526887307539541595758605415795984326897699697243168720529697681531365280997415819030417344431936007862985551769660164196145740848946355491191717451403688028480762103869515173941206162947165689522170521534062314877387843435876062311402188263295740673640263160567326237733563291244827404966239308044462772228536414134088849572869798834149033012560489028292387874897528295548780724630461114594706270692380769430563833962428254257239969222086370202257500323177216055600597271385343768377381116086918126904931246861723663981873849800131529199179180192345296002015426527192271662415526789457881710543811949070453271454061090581345572084620706617146823310470270271730341630920371048885364226812917109654216137766756192749432438448212617554538954506927346209301225401510923203322770561854344245558458850522688187099512717829351491752667541122215529535119306058887113590896831564394610131478633016383955187184219270401684685219939319073488214479548718510472870443916806999875009736773169397365169494393863561911932186638310023457634045124828162253889257709153834720478230277279658463848924479502406672577894000483055100176469959897478429549183889945455444458538958690198802250311074058153982482838814288996378554462918971893721079438504849715260021434090480724958913835685778509912357744641961506850031025104613103296399074652014971408534374690525418532808003550652251351310601086214565372098064736568525698319262859977999500983697534425920037225658384963394120575490149723551167544072981806004779093580072373200859925815691636820649302607226254125004183210025706917752102182247303910684692627929857437869170181733245615918779861308351288564911418672558450615959713180639464148918620366478981900040395043335200854830719896318931081487823885530232996063202499530157891776897783764525022901960122888133538269876704340965886051758972784880686867371439781991476519218038906746537312651214551947365559414111690104562261159036767699784593211891148629858426468192570724943175178109130011413330406825481149039405533486257583465367540611844512473479633768600768620162570910452615199559284940150025287315080199794778565046790007306043429831165122768277195980669813709598019654612647136109609825391515065574826550532255067765853514589248482957737608282773319343669814447920165688035536558402883861408113467020604966068673527173132574569637225087185662524948522440344044838385708231679323802772152626907602953297062850452576767040132146533847100618549279130699867812755848753481778462842399223823870209417305500765913229797345563325103847511501712786923104164725609027860819508362025851888529865463262451726691840193027649515905284368494615885641366693288146464709731053794903504071044841702915121140777884332024070844095683246108618357799045647833962168661586699644794855865222307698518522913164041889152547467848421783236950660354422268439796866944111058085531461887421315764466396746725567484697891995622685960479633521293333743781462777170879066968191329861626590402576169432518137203945761520461921306667574207405016462500241894203940594007020405875409499349587537814926996706943026776191884272170764297289939060827347050976962936596501498647897740365170742246203457877759476002953359354001184793606163859458299724913557759996529090666248177272541405834912716102650910965901464634146100672637297431399538757583705631616477226473540484377201456218952686627459424360474274050571711706707118259983456430138721395121935348542726200381075864328247935236442238714391170442451961516842685137677030319431475255318741860253098337525660409679093108540092566974260109023971080163289478358425922786778253496687170412282968796879857531410919948849008509428540821633737368360164614697705359374555129205602261759997241132288480553008670169831231891094174009849563420098464157257642672947108065964519397783305731949496715467023503182331833705140523647540937525295486302832178949983863690539337286116878764327362430552559707480510448110337578992694493087149996182912764761353632936009945015525431924649719036281225002866254640366746567162831829813517103695821393462883681275033207643745714419069349706452543783775118381011772401344885317860230065411245683916983108182087029834384663566105002092927185076858391145439866552585285669059137250986642108245699265664195327127721497865034114409032152968076721621068951763801754375261810995478897632473724897910096786428898486834997179776027844363936478944006661421901271874847925068914032047772785499408179247987441078100846301008539446332701864686475242539869631797707836141575134544797315956134803735620171147079813923234656576644149233284292351480881908837563502477098526911363504843747252593541478212469517619837181607179376802921154632453339259221962591889481950260693412513424734265078822076282278759441678797375754949912357736164137188030651850742368583871492153002078994455604261068035141884057306504647773468384563472910620036119679353901766813341974597145664183747441390110562816112022055437593269868341946118507233269762426718596813048225805859893908352153173508125590273164960206868991697774726007257737096485605612632102453001589372458942142257808708646456326235384472351045677446810195196914335407720336700360484310961416180979594956902537191768178448719953853774930014591990844714654559978116298645789943311225543966644399662587692214611756403981642963776167158126022830804871115421139655802711265506239399388868739870614847245529278060497016759875107274647990093332917847017205132503922785039480942127734953325514876254801227930839936025925047459471993715238161612707121880116020469342132478716235058961643309913367205353650831429015725657088377470351451630297788948806367364266683084044089080247859055920231082491897398053214374606914998203020748049260564455100939997350509275181142054887212021118528162790083062897362273165288107528766930235176082852588970022001642421476556504263849933188738257628883186152578015147050499119432090368561343747169337361901221580681082665380206618307450431424412208429334494615498243442893544533870831722733570735560845888164913274984990795942894875961462231122465129929288770997081528480240666880973569336489420770755471737246271278072419505909175766525377364173122483378162994669758904054601874559043760483613410706528548689324894699434536619250486368122448041812908564129089808913251046664566546820648135349113960975634694092968943698946799833539872738087678310784725785620550532600227263529987329361167456222928674557081565174121946929263711427427735142336298607944127117424808996050807660565101913470586036942004792901059612973124575636093514479509016904352278849404367984526350273049678582703830608212307416093505243593649674491415336610210848900406972689104985020677994860350781751313360122134929373337417592383011597130225663103555553537145961079675704993085442170597955836124026167995599895166958194973263650997859353328917127060589187753925792422947120260561113982099969881781936551359228047798313661387166476439376320322165860210892800886309890905590459440146659245683397200834515898837259018515900453542861705037008638303128469688393471047965736039168394508602468873897495519450050578751807397289426455169426326160362072862751850842225900749548889600487128868137424022563409204969018246220637944067790933047384026715603497091364528153893079663565885038606257196438409693281207489469468348454029380922648210152612308089121165683443138218888637725377253360975275753899877600749481346856056479552375207523252535932305128164670896013020403475309943335528982744260624507341587940508573764493524274845038781843169047071102105439675607676110288941248447835792007598828142611869380229352898294239697172243276922960994072036683056092170299070578507972996285633325896186315956420652873871709876731397462388451950711633782966949328149489208445097695631250129213461127599673767867943826554277841018843963044176249860426775909405436117167292552681661759974208657236365804806465534496724891689748840063593135135658863697302098116404438806544813945840353011469858904807117173185701311769339498617120414024923719469965041847748126657930540461763690480163358889912768532141874010337440644299233119685468601451060153839273671800483187241817095586723151766217510073387935738053344870537943216351474481539121160262831684138998634551204432792355013871396810039664783364489968253479203207460149217408188489144715999125908590965304665273331151967391347838488804627604235866558269526035184925718531131965930891930967995680311382414950058653192283954889444667044211236751172320515366418509316117597045806815424592830759951928314834351697328364229558316024463532532973658983248739466611445899805298858049249749830839823655895184809577327979688911647919713008160746245584693417390729425365452267703070792526272798403128372432112040558698013558283537949592718136555824405832638647943038335485772521363683200692275041107676282473378902322386530617775109910571884068351684223841694500060974043863005999853035701808726310947526789183412960660567328556469520167408458593183452097637667541522904557145738808226130721265663315192605014588415737826884259908362825710847803942659411863668541723921296791254992633885841489529990181845073129172363698717188028342896979332671317034928381958649648529488285860066103665304465832879596007215282712101701508020458566201281012067089917520170952088361153658538235244672280544318594456052554101339221549791430425383409794118503474018527374354327571844856868776693962442282018538555209224702536152711896709576302523995224863592706031442022923731290368764256637794647727739866801992548681390316056412159845632334264180131590247146929862120321254646138288201942953853006720774881405039855699731071602434902598902746846406688510067825863603897470833749971034744720509201286967178104609711227876486974294777654858233525521810121784550516318951059838434590972864886474646437092891595870186564797813359183730639487027264422497432905050842721146564425739333102599387362172311946957998008103879376836786554953426501798600346138280341749963579421789952245227543815174817842893347764448777127610135572286961957065114533062847912024932924092408081951302404981580998631847909758739211539586858623782093056023500757868634813065202645958280906534409298153942536434846986126855453882936913745127966243974705132366524984752838586107474605803742772164675312742699250984277949514967046265009202593954283952987662591800686817720514889490164877421616417851877949927265138989493546089966320897102765415503596611385542861261864070520548879841084154956752291536275703210382797645968885081912475323873297506760322774946886159075094498860194799603743701200996559174518279433197219793311206356215230503027196259676272009252336683139527408456137844796983559059527916628395273225790482116686801311921399333279651528693341261369334138679109318700619287096378883049588895951425771670641053923602253398422752282067576008070471967444691105998107498065718033900202861511890711536307402287633353787131233420273157740737690314141642378614363010678636011477358405354664618170978934441584736509341892848934224088641455789864141879005412335509304797680306133463807733543161286504456678690061426608024490153834157600970580193223954751595771075014122272448271448661920965041554753645356371013568487908168782630243786819076741484417216001305093843252692060601052931550441634633300966780933741293860681675017523379345167624204523803905460499806559190680789815155604628417698243731044108118976607324985294942933961366441273499791976302404561475851344566794021610975886865468540195963243719839170796655679427533047939228249810787632595288897382208403215756463433010920977009769484330961486861747209889199755630740566696276285023529977263456668860510901328305067884401468067460496264950303968006441538098806896968424617491912687210655563229368959017926204125657153941408248571719783490772165066439097457750447470156081152706141285982723704610402289841704376892996631594736010572436254100676786516525332654142108381776082954151392650622691844412535922773695366124518039588471461076835960909678013975001816940099131720823038924044509612020670800427100794056693983744582498938157482743681114276583590554852206530719992044839671778695346089427838343089338373194101829449138850821735442884547822578684173372920562715926838517113200620199640169680373302841952627453874616259533724867420459270919482255010234589610752704257194702865130230456450471980035666396953029757270552233257332514002534430442955942403742041128327636159359963348412088003424839270826718646115473967209573816416287954353775310563995881000481993301105688886617701187551674005878899839538297476519465329168083257503648665310950659181982778432272554676611172947594551925683511569873735526578466121971991683347318670223908762341237539703830074256086546453258800488973680048966708313602917421291238980601257063813893020927770104746765155562904352558567921705032504029367357746187457591023778801206768992336293654815505825902983017741063131781662506126108931434441752191822519879416238607661200989432511890091040479012778038992615360945228034207527105713957204869987966650605411465461439318829875505299640726898561559874067285118413751906730452195898679688564229636445408871713463692159581833133536554792466134134662149129487878989481192747105060768403072136051452749384104461314812143490736221912748080383931101553356219888050402206531436624833665335800832671238972779737601635984442113912451612229008302483260843905713273316716016232433276968190958046141631815197786559188642956688993464496114583942522708971598958873550187573715341225670636713497386468456985436685108604407984808692592237595303993427275879564484808427546345850095032343416905050420802915664494992952638667397014339249389831240124875606207129396180410607286741785037508036404463657000247934083001714716592526462911501537679324569084694754827709371314746919702425204195662559730783214892061302772517985762457170585764488314079289296279229874510779670625273826744285874423265865202267142328628540351877529553917821637803836162830318883476963124637606543951537394611180935574286038553450822215699037297042850346727189695531510290018150440140789248781185416390603741230848740439209163425917724852717283367525483394382516469635159812172662951248984793702161677723099578756464249062818730482651136915520423187709546948401699341564307859958696517396424133214216282350543743632292741920921216016937541428630179566041273853944174381244596959277950438535661494552820305691820278349220568535560909016857663116551549004331581847694802850341124553908066884607472641445450542247270092261211346728105459751560251201311804752657188598229066783733307791623275925339630283860140497681597260568530031683825191441106073117776076010723423561464507978828450060375127094027851527494667802134426250946380288123171348905800568694503342620463878590076001319462578560437245437957630581310606051757526369822732842856409073626814633578200331038158875021074741721912716473333349335101481500818744137264278571806437853074406455037308204872484558597103556328289161887404940457186803758848277572767093166807411556538750901469981707469812279477757915556912914182123577643518080102355277107749303788295821596117731329142080662114081093613030508891824125764176508575671646702771805775257724043426122615612781681914439147756834986742511730246845381738832258996457328015344917785704799187607867750126930688505174070894378944824016973908317590733898163163997323134367941067230998252621069352692187994907176526774319333419396532708348002877616655805625414825748478940945375715829695553372248375223979331986833308841588071814029415200475268871510578592460678257192860737411033778829209273649048374456385928429286187836346869523865788690743106158669798724072044095910340954753604736824649648119249588113134646634763900875033666540817830449011939465413372740756833666458885691386931353650762768728919345171474473619074389465332336050386068585340779539738381006562040348653506606010295482049885857107037646284158996412109956336543177103832931132098492826398682104071818414631996120816714327227717183104838971766472663316149688753629453715682961901844345393679485331843591626483217480412382882889764789122943674847515214220384727302393763911392431035379627478932842833608903964480166378869727310279264412773477453353036796472833379366944696746923434695183612441952905225326636585147626863859478232637319069078753278900281042592030918682544077249873350241209121290973540409944710095626634650726834887770166935575273657135636090345036958113297737395194140825655335302166944691521221230349590104218355888029123828574802843709966975428722763365869398654522635371956158722367657918505693325859679167620627443261201310392137295393036746056174855217699172376950154967220712036049982882076724794039250125309427190545672099716825057758959501753260639702515545762485469411090476962888456708087278877882708795942229433276831777605746317117097868955752953050046617013529038948239705363838720269565809688183502604068238289282271796550456868388852965974453234381768970335333383773161675828111646351356114681150094515786253340423914306755020280716380294063307760319892939658249896378038997949638839250262129810864628422216997312971309476803356371394488619768440468273868114519026111446604482245993018521029729551051057133244064317099818124517353541552449128789514024950375455917830886874929373590330092944178162520209352811977697181457133035867482421324523678483301577259121506836055297219320195284409521346138368734538288188767107686606529427902186033815536795515009410977268064786865698305098320201513847116849868142064316412653440267669181059517502759368835821893454900938222672760898110456778109398027832444928745687816436229367264261451919280710259951161600101183084715135815506642559909594912466485608205545833696865104962554396670237740227897640139308821364643965910171701761590542902992030678799829544174141825999046251388461322611511521978542409961796683416163342627802877163422989120015989677171161836408955673000912501106468155172407683594098823426712906475379965785334795411639485865247263751182403708151421346238779500997904375677447159726073613967772936552378330050805175448725136992908167776068119169446126293658920040226199556004118455294380288002775932894383943306012887720842055437250192363532938393332583850638403473872519680131551900187106030591800177920841119918806567792442621019457197780769117660800937067052270173747166681422843247870243592169624376122778271849948804430066739200187763543109324862255060794380617942625526763813488196663327484188153328464346874313748175088298313877851295330441072206753682969479794021775288485287537491378852036055369556239637859924830470484541699368776353109535923688949152312545617296929739643688188916096495231851647744188307569120617891047355271448699139552861486751032589362978268910367334559010272528517891768371413022714010333459188578450782634150747338173124156722950822642867464930063910629015152420915920302848820875553473853023599218514122866931526028586406044708447931968668152560814848320982461399569485125152169643534727034552150041495298397655110229789965717348709931841304062308216754745836859834653222369650090271942638902950935639206676242951362230489417918751262851519652122542966189176561837289656988244397283517633071304618292135447594775646292825248514656211623890589971976051548266730256228434861906569250505110199139442646145068278169745331703214393444730593940224238850825199094582672555590111583561835502331019928002023169454214792504437499942677106038950702772978542392313777926439788473416844260673945476665514141175915358363575236973731366598062758637527813088864745192805185530621814153341424579792342141944535871753601998265258993567079554851449670458355611029550478784732033178369936450825218787141118459334002998577113191178292430275257185144403279605500088292262408804425256337913351959708248426718694154873168581365505824769015302761523319958714769741222992232781901869327959677839521727411847249861381333940471468651224323289282982181851670368708154047435889935265917515860484511728283028710235671955555634405967320835083823554042668177173763453764918467200868646743713031700908803711305174312140926028955970495712096861924547514805256179039722184120401740310398842205693346414314519684490859207986677530843665215380919000587996440027653999977878158170407331697776726117515650922641954989106473742557231537010269330157672278721070353823582692940904995796618373869532512830632166000136803916148012839525397697125116506564880462947799699957861882896001775197498364719077739633595015782537685604486871599881185505408892463814755139266511853955173750718913943898934836081198861663894116642796872737936834919317150722364520564858405038017988027438109211427482597924033382774108396181176250276559472028391044474999675505806580009687743754347492190071595063227297720582157050467574518549375464810525907260619479532018683221670148786480693733078803082743023458103497075599165643436896671607058163523731343363587766904605891054911130564165200523727250171278116241358813786383430661795861740390816385063798088503818221170313592876727673960499958367464411989758645670941893874579068123810632475243870957533766510793827985422083814479866372687000688722156349755333475922425761760924358419310985167869182217007131806719903833367465009423218000218706245650645163617682069088916125670195481456140918629078727169814832034203309586565117762739240588822763188763979052100330351984955739305166167705520262614528224040007485425022689619280362064286988308332169176991893569214392555797835073984218852167200553549150003554976691417324418724099633056608541901228604693255570812223469732826899918153732849421066159863592762358541719690967625935788692747034814075124497806693734397674775543609464452274711538145928764054847367308474466395162256536923133476878781598153504013526707652225807172892792834023192987858564193137870072979363538310815150933867440564096726537429716703949040722507890366832125093816839621417639390830071331081573755064276946807048832589956960489682394660258227616879188784436079709572642001192983447716194796779292623857216711342472264636173589399106592125084994079814539786715766989976182352618069019438801375756366398546813650764761977874772968989094641544544727274864836776892467567737676453326319886219668475576739807138707148163398183882144617320768264912387866486458084724705857915379266042056558160692703416707698411654434662954386415380371675104268566012801296069188363188836662323292456578049189482575475843201459885986064312520321557448942567157826103971274504472546147421022931668085498605076199546037992626396785059696350316996830234756557418652227473724337889799084839233573463428430252066464286890659648864101969512823274775032442482898373895801149224006130922357626227302369737474218167586308360511693071576764578826447442036771601986815676237198998216490488426971367870381102604579195357855245702123349657926769706749180858756739103988029677448665427188612968041333530343480956125419074914306560427912154621007746785643557325316582265502652488073059907754783282448852907605683647291021218700989447920292792381368443537235555129657031267792814693101856154744095469659427702601998929388688731840749271447705098858968132079667630112680311824125118760039697310169895427197009031214602378501436553093940567322716172528019006821594477325372671692541892838985343114559821811994230370258035546787132744116781977632821848532741412869228607826852092836602683338653211401291904300983412381515739291618973267316975737899720546593961812974766791422669580692744048156777997831542316807407499079486536051967175496059592392439614953567252865171114915177794153873557752148423944870749070577502531031757865034720890136644696671435560933707829123064000847943565842285748197814174599718130711318357472836571569795974752210551576175336815427983109192252984288427255934349603662434357516309334385877486669620374541145977403373621581008221208112420018316619710836145591677545282658343362819231461488175261867676375678578059676882093492347346633402391101991460575089804279905835462038860526491330997345757678764124171517041063971902536777677709498699114320952490591013646570482161577863438937190544155426451111876667860301364397495953987278458846772399755853167760496483865329271939585787697514493954328301469768423535033113784323969942799840805852584733908483057307577604821083907094756321725599922025045457231152692662404776138277042482359754337836321271459236028199664986385875882553643169056946235111117912398182343188742059800188959552517099215976560246155885455898410234271862412955269074706152391881326372035924095232917646740821174663689644336408911332617816461410804715674611805653058214536178495316115567507907845715362389263029798516720186593175045040705361813110795095497982137174338329678932828792987881954887898294696586878901256623468915303872986748955623015005409707341641375965695003575054657430949502345517028371811854031349564374190299557816206195060817762564413707859115955311994359599530475034553945836875721981975420296951726934587697896337322983434363035979972730398581935700827613068109458964198089361056547811576468804947760637243076024123244797327905255443746725425886377746573323624472917953823947384964816805219628734841639343939420859077150692389012944722999914865568108080386041748817094646128497485135833578215166364312233403997069287431578589463537461553725706350143285633964539074845854469094792975980528521951494348516917959070692690433839399146303614567027194111990651755732193395024137238582985052175883023931713613961023681163859948509880521611915593981260694161456086208789917853557806288154335843222899110264076317182219608633458078602120833134536748371056399793386117119191666276748264608916347605949162125894946012349001561027884747033324011661822128022229674259910665780948258453755416280406159395704534034772531044635880411488711682248847454842616958471666503160039038911168599989221268944001309857144236144746447312026487729197820141275245719928251459245115146194378782440861036165145934113956474364599534589091277460504899460353213603625338048059767313399442667740766911948966195074953268220262556514796693635774636733568273987387731381904359608626650782864250219092153526741489945369551748154186950301525831869143402235593609645764471927669876848241901217914585510105549024125074599550044606265396552783176668311499573280260371450053805838455821942948554565620638392866144804303370884625393429253739065010114800663892354846463719966901514618103701934447870908932946829309546522123437872357147647078419377605362664711230329520995351351758771011278767524615093499652220932752777405675039796455413573501077468750779510707546312972657130180049303994231370041320824725150052326170585881034567745208246823226197772067749514583133241375521113352601638727776484439503923691454747911909498108990424039925115387495362971581133091006600184125225283314872562284022207589583731809552053371096292096832602626613220451568327605783874567681758221654652146514268901104183863100213201903373338109554670354546334439420583042548713414458149578787131921496972000367337862656033919604064512217010732110310603527174658136280261120660065163467329703824020090689242003614604903518454193671371827830566500147587097020421190043744976740339750781758656577311183970226937713569253591466879951270248310453294857325793288395629406233375962631443294135976159873366215814526211642329833282742477660429819086652028055522221638962643097325486430367703582704083508196574481950592314023684388588898063602037578351861323655287195808998923080207181751347701500643928204688287810055282897521897661255962874624085081427427777361566323169873561383418387273158772374986991418710065518725527318391457112859095567206186742394253837490247789282820086975272347466341353901777052892214603580573674868677606648046864034254582921869632569126399750401955210732148073255645423026119470284608455984934622243388951854278391951520518245844396806938947748872096998352844768157363172648298899442410524923671780991194504195148831169941631901670236368276921088104354647887488263446704770440712370186061056458775808708392581467021659513161724802955706173301225596239974502993125233393314331863115260240444028743595491456871208618167491007670124722730450508941224900159035323644326502054725368316112647903027810871325979109615853608607973451211711838536630341856851861772926081283971921019884345225732928726008452750438799544120476051738280618860983067454293712932551150397399307141357255875905494566720749699418151657145753785830952427318414439204204415497551404104541134841867753260597091373714646463558278810421495691394421063685915236729536831319192639504913783967388235302678508937593383324610109274372038907415467170003624474812484905840144032716240503135639322892650860037698704912945017578624282442246504878364150291059755721106431819470652046904698960379571006272105654343037303144674504521411829582707679620701149201983871822272505801998634815398926816667260439799010241846279737346722774571460748923714598688381583889986960556623164258479855737478421004464500017458505462095472235016542377377902979366778422844567284178548313651931206090407337125147440554272200690251763928683235903623763477737469627396426398489820987626920951473514911484998837223963856353519696173113430512210349789775490268960770041411840971572459620288143254153381781897933239494329900116523444270332403489154641930736168769326116502032903503125649190692647161098501395281785318111752643116908481462623922243336732012748763499541560911855415060743551145462421653358291213924912090593723307198733716457671324403413272030845271565715017084484932326745037862297038189431610558207556926486896949140675447554193012779885047503897942194384858113698393463771865740836311532224907600901360630826187980778600752431934538668653951157895341641582100091901386622154972700815042273037620852123592701720789240585120282511997312966940595837169939577414135148147229266450663931700548275636838102214898249011155762159662827451671885455515994982932595346509978019929146454582963940197378690353166317955805939653469497121309004358631933568116389946113665429739287810069143759404720929135839504744573917005605652945252049046596704587768084122601339531201934592511838911042965221991665070192823855678412906678466139654584211556757941909772503257134548782990588161099319400928182166676807159404539151503429273116922304125603092206205539508165674026480354774854164495196901979444573309943350982678466883141884596510487247887110336451367081488802873764163160964750130285306286788696640083514986025487922314702216098988503059606050384823999787828723023707885091765929833617751237822603695624189157914444165073208179243127433180895578244086499883749237661682859357929567408094311434213557742654172865024533276110492620768875645180732692411880063131000094209044037631358896197383916779274906297429964094890874992128875889274140754414221543841209299987982030479157908981825622657970538769185750597981674972808860371215237115414580082849006082230328715235818820293832412279527874755565191151313885522383154189040571292702416620065169456048525340570758674977808344245598341814476958372126383641301173697108292418647815207071753087287157670227373330855275727713130708980341168249657238451571427254840903280377166968525499333913481936221934079924072248585676052679300358627091181942455053859764779378746842282167574249361477318960793348385489328895462132465442229483074360228380994095508214059130300615982117201816824390764608370802753086103190594996061027485790658495921872378354463168823168563906270825503115919489682343975265177918470108194497968485677056269774256644780973451719738319275870419272062955531015946793537778222189863670496071334939588929248172891334570494578784299899175903340353884680941034621514707227120412166478212299773533041396308500733695261294455424299595531330831569334858969534969196828455614904508330414629951349580086512982593033237316720982856512880359586770740818228304685694476811379085551155824656349116460416063215976614737755961485061611829113008390740492661725937450827360491267227763500373673269594443759658000035746084467824655844049255731922039533653396724400150507450495700182202778284084558332278181081824114918711982070078281314725528504620798996171881227113403294161621851830180370306604515947828162739658863018018382263174536497342024441848159360871668654718162374455358753064618263324381005611039263761915747262135498733016929123525374754341673837614843421642106087293987357349826176887633845296827520680606707904529664659329223909139516165293333198922289396524853527686543717466847723319783165271024962431487232042443801775799284347631478503199142948154493073420196875593335650660092248945960254677436448283857744175736334466668774392194037447633077185036727013568773040862266285289917600863254363478911899532857586972535032737398671367694401077849437387816741434179487284611858846807783358426398484804688042161235483917805648999843992007592537615135587774202219064145214524440143499760167970542577465385882830889238031414729229649194218384032192265737615177566403999054936565734223086816426919581552805887022712682095021218322482103823773361696762574041504329185953813569383834607517211411134752316272026845040839981330063525693446080283050998100430259615988636375376338504277971644343055034062436527889007448550942868517162230085043901797617220953432163651082193819757811422284422711202425023230276936783764871813936603384732282213644668141904848498455661043289227900160505625562929070388849068344919159997571944181857994110526185273343395295335633227733657327430469086555024419323724727869867031059578028166044589870824704046221067933750915810908462130219006816378648793713055547509749023526157220619692131208328741384956311480174547724075312795462403503098900326690309395485257133943467266957601069422874195233450704461374380049409991365017683739577377892848773019395364586064451690069497365738870002385654944226525770405392947983333289225554303127433856830797193493694829241355562468046612552758062844199171700614859701251565011169214120378304854946999318252979996482117658708691344400635884610444585229608920799380780032313849332359202181781798809339599328035059749011466193071318608562364518027651638963004105865370487425959409288183522450574403481371997088228598578391720092454592669751628069715258856551554586644292495515976345130464611540695751308688283054596922523123554060398875347276579963079899641853390386170320975407316737410117927321430754721661645174950169516955681047303194681940428157576095943993449970832348170255621687767251230354422877775443876265882430049966679538554853297102843960555674310284062054511838908612243301798980438038002138921978525017884839751383159337620447608768128381383064908167118722424191152700209022825804723410754751400187467244689905259629579606315225341595771815590382199370129558560037335526136494956374583195606570362178633816175646824359108301027225957972854045884629210865276304264430024868067884242581696782417014340407810443865505817414363850090809286512450857416026656691647440484241934028861023995691274353678674840439204774784043767802778590456812950639285181917914994882203051125808596666735980035368258936863231198798019906566542028968338139792265332055072788798659337159418325622485111275458753387998499327459103564053760628376394439574146988131756627198153291283200348297078366594010465899719085904918054706457343423074478436206860666742802286321981269884452940705252239887808909043789508570395666776719002022698712702638609433323024821188193147735594973407746900220728541991662014720842899909665106115454011424767311752765819531566238381245506879244558048184594006045153423121908079226714840148916228825192248819309342252451324827566260851283439359233750001334988771488822701102848309195356141237060814028686162468737824651572518696735307708852723068440680377109926388857642231170577859395237893478785278637026390897553176150532270310282483539692589991467285432820233678499309047825143606072435078133018250106412974143869872939066018774068124582405408008688003008653646132154485778414645278292504811340208276002258277702252025216137841496514207027239801087328096394061817526120703025429755411168169076167002021759814859707055568365181935954833919422174668687012602369551880197397675628255217762926319980270712901853068262228789953004135885388594966564661148444392293034490316567738597591922378539044235817608069256775913082696569836489630913922689478872980638635279456933401818840376631808196133507748416070960970011127595744794171340322197489599591411276331649734352671063456098467939384947626226274727499929970883912095745426211751784042211815218528939929238624059780920787509264274054309459595079841353037814302849498666326835809356810255306999898449132420526518168017985918985940790050569672679459385658741920443654496748685840762810236642221152650425015791848820241424598256246845197346247060125643957538136001056469866843033886616801332874252637122924758202411740120658848629694643540440235691574441621192045364918432174573508099343974019367652235057423977255202163385874803787648679003881073258619912737001292001490762546999065244678608518190834670484831670904016455548711048399029230318999399437931651597494489922729278195469753085827028090716871962661824662070033486203024834674420279015061752948879137854225703452267127484559972023426793054226498480356201849588133452074793571019389386393326050250101973240212101411365644489429224332794983949969672821325855254907658089065626079678561003514786682399590297446968663488166881790396498195204614489490870066178837212451744288447499220244577974246856564339010598123747129455790101725000583076891627300005043577941066292498011742634065636411741212282742877465094681453845208543422679280696052885678125769782293511121288402594138807837652738997446500927438866890049211599071750846798155512391968593191668180702717228216851454660137194295358795646952463454510624926421412816181271856171097393042447694012801564025041454296980358869533938013932666654593366233219561417840832784199024311119921068367197491075051362549428205684632726321465855811426515121341881472436975354791989280418064034677596827274874372996565728144545529167271939042992724453717252498060373549046579196749181288787433124804711997428747067577270535309856959852029501126999705314553268507755504677052914437113484258735638030285928682147440547238602778460365978446427976044068245293326134938398660808420139568439359159224220725485015783658798357802108543296441128927053462131738619959663895797828342926736995242120908365357814043871130647007256847991010738116804958692563009716360611606934570625598003851280857099628093728930265575060676495278980470533844305162088915206185718129407358593445514178749985632274937735250529819777492405226553926649325354664669544927507785584779562266841069273263798328727709498385217277134522813784085859247939888907577813197422269246516243909442755322719262727862328050166130900937723010082933202109015886445960969299704125620817775221385310588275581261193073709583467482814160843598854734447845217867095837459035453244426716061728022723028089112386371014489599107031028287996485135435087887915027539936011245303284767535827014285720408181196724941283070723785612741453396575005705496971160905117759838735892345049679373714247279503512496837281226579593662108018333036640108751700999156398975867269121179231647287349031002612839853815081316210203173670079939353579489008077438551025942027936803260286550963161320151737802462327885843146806565587003590119444199961890904073980951484859723889359550888039034635384024317789542493269181482428612563144983516689871949130019023913450556052763235093799266510734482604409868790034011460296366670773379750022732851073854662162729450115767968485369219523700775564793629202889832292573575062905984368504212608219954590664423394775746832979973421690991155926883160550302560405169829766602593069130723462091758547657158752123964681961715989208239854945515895332865816992608525895305221051550808365359704091086061918826009074441394357806618097298216763208822799851575590118159457446729362780251567719884174440398358041798392760367607563219116319977570489635535398353537725262135743484208912696627315482331033672436098449419966795174537337933333304577740809366206592159325515158067427917726829350176235800625966154268529788769625606932746282442509658633572497207850113463979263491458780115405742911391261882481268677980160190068191683032769619477011550932101175330504878453699606838181405002772040974398775729753107641808996882941142926178235127269043808580165340304843412088316402215795914003430077847401165184061458577592641662550662755773339682812499609522811446698681271905762568390560189082459205930541136607425385864824392456175023302571118440712212933531989407370646518183179818413722924519565097615649355188759517187711511441888773505446358206685829747509981744746868633669271748126127449669823237270145996940823757628537980589103783840041251369382064668018136956432997354567113730893493696151514775015987235752783974114182567634523031309942151291939866016506904990086897229538446292599186511396294269734387376908252953202747364871386276701132292149948561123680556137833599367849774989624290092399375487966816670017768961240902856039314450322717067393751178184410242624857299591633772138456543436593574621797816850256187847414414938013073220947635250237854964451393205716506829535286657924998496528778885796201939959863769110190154750576702262372766637063458508531628010615717196332939405341641833956645556768907308300452859012915392008022906963930277053260432297804862687308022631699243265636774467906408904639388085009486548133401464774553495774134429593618254853027210630890477755932358081586875990782940379593957914243044836882279878288087272609065100298399473983901929771732308581755357039556063072968972864364635533848969120389815442916053623725693876783383143751338221170771358543040617876919382086528062987106270368899063596485516471140594738841985641307649046038363131553141255333189886203379266968781894743078671549503590927463751809013851134416752647883803855920068507536941687345614715517069531737621047577890180010808201683927008818269388252685664874891555472231222087736333302967326650721915727178714862275583434364115892606809289769715928576457536754954314211619224095040385007835690509271657141793836569932401403875684003291608092821353730673377368838545487390921371047544948967280764101325568558004354965976540567058153725475247355781359486681430429736310110212876922034095286829846405451111661789828686011123648111612989430909159890913191798931641907752919817904836009646155204894366347941049045572548953222593529880402718020363347935210079518142426443493614762078733202055659116470482301280417845028546256123512643247402557799591374135665436938673067881159204369626284838109809681516227771664657571357220112473595996938577758238511285740780163008056162996442797758793689627227503544544451580302054344371948199601286211288989322339290871403733748544280810260255571669054787296669720922725425474664537224172206439982384442785670557511833042814070077141613022296385810138632680173448119295668344708725519523425733906864282205986718885089092601467448091117811573667880029054602141051373038720130817453780688751273482114524745854468618695560143034058296701867934596791176938429475841111366835221616947529526900510643851811057441948957791395708318383515900928089108537140613961909784162959450900052099812380337073943877182042004664546625688928158423817342605826959613914427239927155020493363045121501650249363948355519860790825971487699323005959616665178700449657773128635452243862276287939366569058250799328123818419224583388980505797165901671408201652836415232282778362614971934674193213834807682008384913316423866340741668187190987189078582016453960061468148872626824891568401840249738540845409766448887985327736459416437056983334771809301848520895593038351098661623922002579575085565908306628611327716073913708552395398262439805114785288662009521780768689918647787424773266215504788872766408247848550017244112791813837110442979442359423893937003426162829871645571672866491639700025374581441439762390760015191632973880169977976595545136845646944961217470034107391600238671419385746081999827552216501760323228504539069547255648226574598851594679781921891358789176416241696515176210935288094882237932459681469338211168192481360531601393013120786338845989487893684202509863733938838466926499060598484182437967182966280130820723636370302393625826959656667838848732168987583425257057928073655062788172578871727516314857001517048765378618695879184468639521493798992933613952870413928745758000242871781924765535452118323733278733148861150202624193360204695498517460175851912598472507783438248774669681058728122990256299591447020941433223190535320042062328151325529504788416115061932824389347225824215033011902850974103408144802478562465002180728403107396516711101806816078897223405663093668572095182120101829887806022080579114405586380721917259398855176666691443327899371170476019801946298048265413000130371095097756723214248995140426825308530987116845010475482935760143766413630628143086122880276136615684983752716221080333867394560897698722512192937775266225276396012089054418998432099985758361208533019585205479656664405870804203320213865774398919267009948245110270149334549631419909269145537401413405539025039738326004033083433645965005273141232166345527329646564294621582268675736795520734565416445785892492683716059305569269321596482057872303304203385852184660298270962599689916216069599452117143207807011438175049040262584915318135348338080771374400143578388757257793593029556730248154688635642356450988594015259705630294127036658479325173699176850556472505742181115951070887439373207375567705230287237095667998331594200844265406396419001750202827689555288302977788948700185090152601539648078895089315930476399183978368919996400840817019294205072605420100485986752398925763996605145255576203590058057983635098323693975215804345511606864819904956387557955099965076746635571159015022216745196986963634410267754431433720363813070171615418438787334828835201230097577440842769511142667182169551079025326656560624498669852284793560513947112417658494751746730917656316706277186762062331991478312816744945217102150364509194074410712276318580229162544127601076798556831920541661612235395202405437791895306122184247169127688751680280789576809637788826396974957422951152167146454674444320411769540221109557403849081871043885824185998136317832766187447688085669415945610295716932290091279499385363289086667789478873583632236867561413180038320318800971968940310315065562307157670962139849556983113811144264574194070765609497369588799111724873388879793659621819979671937052536897157970712029049962983903305208986503555433528681572098871543454530781301580387978129172609009290061528014191603329554081003989814081052842861246034292618339473053176596197826631164551948947987379812217266798470418273977181516346392511408776985848868835522446660722253951392105337255205928848548113235477984375193786633797458725020829505312184280238829320342025054954936873729276702495738962271617339332483119695458237899237642286908646391871109736606536975330010851085138260547451942955304218999840895855991777559214160341763840026701630458981616974087142425497272869301716777965479978070482381486210140821420711379742106123250351214407308329841820513392089332057322211616301530452899153624559609978668051412825953519601105219640422209023353073191638671623913869531865004386454840982708535086343695252746550667233070655566643071556336107618016377185719011083363194467588797851056657513250885661967485692630052419842700329987814997082921475458298686810932558242427922845371698680450767672269885926586058997937334311221800814631968407460568797602433985581641605706837406855309673833401056868464138048465442844040907575985504568040534618040118437305379111662219465795946361563165692574941272873998177815232787369635027281035993365159686398360327871888994588773697070411141079516814790778861972636879182908977698696505980100213826406872419147723092570516188431836233464966424487926701264330851749642570384997362222363992624419248228356919140793022815572655652443555706933453643914145473856166379036980141557605880721043381697538051063851482334568138086612347676429218811513951606088584702775111698943172858263888146897943230036575712222961462582622225716922459787494319018397910586159103900509287391109707397797999783068001294712373384965297287352395409045695839430558355903299945248583366930206074560769059860318488782417501636578018226923619719489088628184372644473554716394212403525914383945437249100783503363509612497811132252842459012122315868368144620555603578003608466004914446711328924622311763653767383181668147262500005721008800992711476973855320222722798350871558031023275547709430262941397239187250944648820987181762360565154872899318468428438099043577607785902597362859177916360863419105259143701183833924384959837223279821746055725933689347921191005852863251932376272667547599364198743016054957833257530529952415573122345887910192103965499939163637100700457853232775687242541812054401651614549965270212463873253132485876736677376445769022400060124172183987737743609222392932632827730738211997272172410092957155470104112450637252217591767513295068587939579706044732520735293150010698706168054345417985229601537153634665315847994947926200117133432471345792576592856758399107626068785161709508525835012998775665455596908267409579725722200030517327264871457229444368520950865600432143243433900736161199919006101466373208482624858682525587184694068905093059083899676816123678993674625034910487567945526956586068318212257070955557127584023205504728132222294919282425286021374795014721394819793584819947152941555657948275987752364469688740362642170720341143629051453856849006984731814777995804810393404930110156854203754950849639715894259836076756742396591363215183773610383528751684193730437940923778337458833941556276075536011952868406779556970494089647477496919738329301644145554427322699116631023452692097113176275127498919571401797198257641279861337871270545070911283846627646630964843657897711546083965809117638915997502425002532911221004781610084044295767100537197118606568232944523590329377293713680140124065459040211049978691942684746944605087256900641346088368811125490284621172826125035446560368819450466318866775946309614580127469354197235800447725616641966032998214752292869160909644668848864618055704632066005459452317341815974357001923515146596806840983576217606871216957980115908988282409607601993648435362776060166506999894573269531005290119430468247776067321067756875605415313870495384015845536203801116067731077052419394558006263406498825543859348417297739471626251304551047374283208689704174384398477488817875056708948538973638201112990108215269388511303852812688902693052967924583926206820347665495887606518471437491229373089947478113867254649456967153358492219222357521893048032448592241957265772216191864611190751285133691879559730937215639614671075877491727053997296865799424566157340755094978314415803797651217238656498850787840612103769768236110453535312824220861301293781368224106304158140223561837235618474720732847395891004725695158896562796046616570108407176466426208032365053056400460081986301684105194731467596742791127607009476900915278730880930557974277893897663526172205703525319195644812769929471978231761523256118074405235195765679547879095954744388731626513973012661535422832863986813265771893376138373801074281315010059673308768618620370404762747684096922644866180043872226442848679534235278210031752286723318353449461295532190336760923766935520629658683009620202081321184644275391069196221329932762745733003805066193997035503379025668637927799134863390458817149334152590002069543720839166180142125003963819902347333630081462351807759742725669339049351728476663446065021461470572983904984359843906156778030955852161598669578512885566488182914101300414128823331166202744960740757568432562419484731795165407766677941832345722982804025044652274579769209111455734717820882435102994240939586428565814517034275902668382034943698156612138636501043202607884544871797364015396052570852358675721025881152256075298886099021941648213469423426455340440254986928648632821871338838394562255569516371271340177863265018780007733479396876665473579951979910230580934319965775426846735931034705939966897883979305812885973581437532606153781786577645054733278583758919511988414285380048100701022723894459471487369401814282409093333090835694461500889418075237512332855520420897883209389239947523752582972037707243677639363057304482127268525807218018913113343701943512266362450472934805735471025896236809199175300013973655908221059193638565136979671363458028773776269153224218326021051300825350503183964153976534536802550903352495181902579883352420036528130359787365670943624429749674160749838895250438445603843160696675892245843756498947367578987322041265441614073816248138827919856231611430300725631086648048894042218072591815708269325903231806317444855361838137560209657571090792949907452942168498922907013502881282247079486858487305384222498097259705556729203412978784822380182178666320089325181617364079739392494898909304230132622061533311401896602539815566917355646026303226392673366309266191653379340371743010454610796915678603893659389445886005246130837106599065008626991687756617356558970356097817745470710237868110534835332553531905633742417896803616948497365026614052365358240451292577720904647091067448514253918829739625095018932027086393670224776022789775140764175917043140288052821550289899349072176929074858044721326280362676592707480759805979546931879456911589022428518624218506723617504312268175466357802793703960409811569471700014461071929754879052787355689838174059997150840771055034807531239203956914651137166796390016250061377028521276431770439428165479175706400582981374078449022841183122779754090827134296576636959460146589530670368433926236850788467998813010322693755153317594422417175585869973172331942729743265937328576452403700327903114519685549804657904330302508003329273162035007823767669732306683734278943175676721767281129376558827080484415856329966462744810937646107989068003446757263528749099214690506873365499101402752966008764128627257612405919074761838449442541393340277806344083674847965950034574957585179199892808280953827745438527599311303289688100293659045358880358022193243766164517526585972238420749236616743600870419199999471766013999807366809232086924023409341598618824696842255365849806383742046977224053799466048620389750510040196324910120650719047801601578276337558846681203540957393266630658195870068656636228841716134633338601142817156839759567374124796415967354818882230212123387834371762715105214865006072433632055641458734175878141949699653192050950594285083690448347558809806255396977342997790727794569167461549692423525161886537027069595067314739195998057156783131050997711201070657186268427544809153127273843634029741457186224359612220382211365248883687860632842291199095609470468531587691474832771153005895225432850762929424151285982510124636860295700064473546278857426986943872616297226705504580962267165480499622502537602010529421118972676150039032308724501437099540193691345050531546971503469451242944082541157167118929670937462801978772222057030481534861136708111247924269226440950125641410668764327243750619345254994012755854032732323770776686622446494768574229491404165439397330194331832984395482177697004351034472986132054878812872769034020907828153700900068577556717325289394228191621359510200460032276575792963212182003717626103386314648167821754215992988043729909417094065091055268967608653121706505804154618590540099796120670520023702313240597700041397933615109791036277516806663097377715568223831750655181593606462057576558497202549521634432240986587115379786573997073585160248822513422657145161122631295893749343258063581585202966404416042811086611584694971856015037573675957650708579022595791446950254011702160068846809639973475853627803908795896576957263960943961338817320876518550464719006470758611328683900823410094945933940915478043656720673963962266259385628766734074434522186465804234303325409900596754307823126426045399738560766510668574166002636915162066103376101723284834941407516960809253704233153526578615116125168588079946254692355732242913099628221850343728821263042627801149641979282700682240345404655932566195405056081880027645578289867934747017312486199733320277311726263978133531907155029243782697323296446048025329284351424106613893468938165989342245269209760289292900664485872537408762222807423934167162769616123390526062177798294349288282725032710202717098204377058229272958736961367316547668153630531052174904510884870291693336032822725188030267855650970150106968403856627858459046915380023949607374817916107743619307158385509713869683723023713284786061019546432225930338568500916704389759451704674109279142937809112376583993401513989974424632080745884136867415554794215206635580398642683591386776386206310032088645755625555923349149554023972785528438273971756517490367858549730835731766848396742961641367870871643341842541037646028552179615228336686986798229281765922549542187964180155702696857975354579222309244595943571746326619214095372615040624927515388435581492652406274516863746911134676893479334271443093052545756081900234996051002603837581259246116591448720497329924652462326224944571121479618637908140170451639102337451713436518443496052650171277774123864903962405776408067534739468410938567387492108707631353487972295543927428839686971717810579857982819896977980606390042894605752339893059946459826327356275013877878543380004293185943449582830229546798623209250936157135895574561039262281743482400921073432021504777925265151195915880347229888742907716392840730283366290617237254955267835051347247437696806078943010254419740455621848228812567199398587689802791193315850889734528589349718817290983513859020766407176431133216576570236911294945541506226199006636945240163554986593812051563341953774400049425199942620821252440213084511658238812521565607317733025545567013773573296033618807158851504197756652751347457278168523018786646904934058196118960277008169726510263017550096550808893157749368743910352612859017162844239080219259040709696984376729403079124498237543676171446287859777695923794030333144575991287167463376896930374800785582665891470302683984028301544952319578645301072232936668923745227693761612230190031432215034381251309723707950630012881100084609285906646043796503101203096282183006009404091839773773293833573437896276128940972296287370286008981472038844607506386107171439219496613546316468727924560188836822433823232438669846974918176672316724446451147257084140981987419346867280272394515144434711591759088786270878048098010476384874673019565915291353328797496534235829329389051351700832608342447942439990267765974657608618490114179830397776446214338681588935569429556547502307851444850174052763377648113162902528441968328694629333981004047654999965364556767895601410307863230281422087938289853155129574233894244729357870062422431835312533077359850802612051366732160319191297940587860325366694285092925933739348401298997851166230228966617358006178514319366079513952346614220667100585093948306416293346386656536209101396229332764009360785592784281088736216029114061539138161417033520312296524810179793695049273569482897416600164351935206891545325532153421818194681673423949300358693109995404698273164594433477348123726600061743190985282193401750450470274564655943970388581721711735798254327235060477293581487074250051401549852072909487087230517822910912094690157742655768510867289333830732902699110581663718784499033668808320397323131484900137138359524700846948553783697546940100457625684319757429259299959951395959889411056458405791831620693383397681510928442943703030910561609534132210224025693520771861444023951411648007035618156517768547382714267499174677945969021133936720715894784383354448307449350887306339242421123636227664955752362624236370935600115064977270819281703066624309556780193807240863547232303484719306520123433825279524363134842553145024148076162892335871346289664080536324707514757298801530252908102833812717020191380772623412447760176984478653509061165165043956097566705069954389371073690804058831696788439474215638757555462273941728737835407741396911649091607207979982033716854358695879427172784105700317640790377299521466963672371890714835612013805386948499868644165980067642949285933545519615531851880500829881645708500087334047958899952917865009175965376828729453378607184093030572957526412466566478111414416176478305417065767718824450621837810358056893933557044390385586145793909788101820745555342496265027429079344497126410787870791920931047629172872638400403151611104798537113553047961233426914850620659287287385432871696464771337023592685096690976831133705193276486873932051565549426390290456437743373989865679630354426463341845766231070801453769412108678819391429491028519769937275626161958303770247992624686889791499680586651365911581445743018689101502555826418932779822323143176346662474376142157848355092628704239283125951279192137430566128139109789211866969911294135144496148886319962814904410779723659611982846381216634637271007158465487812216251803875576905006005576068341795716356286825114348562593570613111324356471810072236612727078741334861748716959023783611677750853085630001048299719410763680447213324119602530828975975739376121728099838692582911546799376795992585051807272626887104972723820111788418953885806062381680699925570646118338011338560702919371989597959737303488280014451285563427791110835336570518948928507394349335021176638149370525342428296399738293612758439665209790200298245980502181868067834794326080833590900867684935515289270153885031787866161128847342257144353893506779460694701259773743660469076687765008925510216282943958914636096286915429081044209156642880271997044915430588402741326767817917146592560241669964780656606391146294425581658305874913453940716944841676999462225352422708085323205106634671017884848193509053263359464683107027273426485713433689043059071710775474563548047692355374839600999450453217842429045891274567077082365503009906765101913784065717551421712334160354129673963114479330147234735033865591847664520348436072146279746878669077532733245949604056725001175182559838960528678484687700030268338289005614926151989702401176207201226272674061522689215864829347895913286587125935748150588152122105201412198834372977622846550092257334550917693540552743796398338895300320002820546365128069641132804705624051869746907871491667234699392880311738307907255751537881823859971674445131295302151506162437288071248712132255353818895852128178908008803277251982957197383522198014018179082131131158458353611429032080479692572878605163076556358290731016970461644180250816125087459240976497208022357497199403345080225488907075377214481502741138024665830300953047571772994760517439515408225828918474842464582162705913911537961305178725602470457424419643959094776849798947773574055058586259334812957603171017165275608950435256614042060704686768467045656559110128681171711856672669738098425687942314285508733733638916001211713672260937549594008406752033846659132468776145514382071291479957665779460038520943218872181428662970438411523442842259338189908786115190214655564747992913293411207163586127076472148516384919378452662104538257269894959661333917914422498380255498530060543669371786179055915341259125610493668722744997870413705360311465513259190906460357708649063273814005114905300012909987062330510568330525559445379905854306703548183323801689634674669942261935391161252993580461365377823656575610655978380036554024206808566102709242378339820782560946100849030796587236473823366018626106033057471798320852066437383643413984872397556200809797333355657414998198936476886571956586664688400159336807103294875816344249905255867659819108153227405416665526756190373259686576068696521896738493723842895986698513993560388162232566460521495661646292764952597233122808424923253053291487286651643844048957653461400077398269423709361715388063704276496976448389943603837896723821406254312627870904321025814115719311471620827932892582460838300468521468138097412198766475394248285785041880950287202728926725327767750139709310895028837597889011471285787247026843202241655350458734333963529511397131183176541468573954985498951223944204875275218736784385470631607837494463784079224318059390800018230458822522088305201066833262746662131573373472832483127712441558801928238193349910823730229040960030003403774375212325051912523041147208794025518056585626213144226848043621555849253900261321885474758287341375800358520887321392484958183782344089286234259101604083838570393810624036920686253221485235530096510692382248997552084229861375261500223226118286640446369252126754612913263143036382837667387364011892556761708283017584566948971499689456632457454727324180429282991006848240047256676313766714503313992444581945981538701201343140723641770189970774056638028949098800650795074215233194010404273470436349059027041601933861620546049854724819035061029827373461720400478859066950979878661370635425120174505453080474213310867728909928374114230195218039802467998931655664641566481821247917511627450018394056115712457652796285148359938634017464561711404092618399308245970305815853048631351956760453983959999955932653712155355627034943095681188540187563897041155218176243085085095988177635556424006093621830637177294782080685759706519296750860109538035218799578622829622399945711078407657942487556002325747762812217320072953771684043299046446044935177803095543180620181224765700339021346175100985303958798588872917257667865788563237895892363008702899420469355365994478374598897444317702808431781190464797976657109216370168591532339214970013668735833228388202430359190123406340566677385560868151334878780824215486728090232580340043403487623616967551349595381247754039591992327823595795226266332647703988900825592452626319236312077910949181717962451476283564035944773386840710757610928108310306720442080141982864464841877371577272411195923954175276726971631515616238401129992584348187442071487808303481320271643485826890607912980223774072912467466826541707482851575530836789299052198857188028687785997308981519129903171752838329552026765151100208095470803808572204766731071698158059737857425599870248115531176208940003076172321985126546448851415629156554512319455389244162135251378325497662768384961450047208168277102634911842034866990171720226858246096273855096718834954506034928293059473984439842191826648351139417851632233308185496532667126585067719328502649172989723736613963612044015253941641755584355073702351373074499482010364362188299062896995391098064439663488391912203935517375496132575654169895763216371718887569996078705714103688066347727539965363111451211771912692161825399121198412622841734888809282714269892567379231543465009433959107065758694232381159288120287131641797131499744660996039591326554473256609411444011464647072327227926729911425282814184830061234478690558904939699874839742017839449762265847269383090238989537475768308048121966203534085707585992997881362335603591664919648834029461290577860373086835579774140431637039454444659941068323924028298881808953351652273857714783127687190617001229913584811401191208597168783205563720926879313082588448684214444293489729155673350871557754711728430535315717662765803574684963145327176080603920627005318394465718294355957165689507441841728453175117183659335967647076813058501134803703035701555055187546261102699179103220454916440878891227082856343463325178280256896759578540753786346224709294119042751793417073856549312545563203203604892992257417503696589679436316645510871578709403494076047964462296484857484385758484511691536545340657230318913744568071623374816935253479935247419414391859992869092250274096446753466259457614768252915434557163757492395333901724842989052826324521534968110254916489600033448702861638448640398375944870687786715647250480406504146493243472185186128723512891487172359926263705073702215070309956362722762570236473517902707196437867599011754530247319677050536933225221208978084580831649460171188821120803611201840143927976987905861477967387394885494375699001069262796932670060818548696165035878165300326948043588361891989563495967291673657517787255489757746193130826428614377743215659142028450015690085218515954934012141878756794954425119894068516752155101654477817808931036568632781572693733070258175015896967313769666723956464811931215127206116904479773114290107273381759835515074084673424630327485176801332107584616434037260255440899612520994699959949582783130741742780712344147354214707826433846183077279163287257220324699688310309671134346403056493349842460221074345495241706169431141615032951429193549342784077338589994574618790039186311455651914254551812979284351352400382826776817327515272591637578141335415304582348303246623954214509782744733187815434774568576397902427450185842025235541597998169899569221140045085704504230823322725128510133401161670422181220452214264674364598465796345016263539940451083842182605037263613828305674784639728235328901933517530859283146902007245331239682232914581600017642603277741205995544534652989159977712298318175518149646283840742671104065322295664721034851660364895597184247421427386655379802691817546694797685097572206127691646098129287527786727595525844451101871141323282467974858901335106603031104962784468219246511126131462595134586880966518968671654269757907847452778146318837120252741862187726137721441608675219393420690732412370683986242004000095668210410098173343991766547690208223911880391678417871259544128637507669517053213197972037046206856283836040868460804272581012191703936736812154881748656702745338215633897909868132634550328974425953144008174485171691826840358742408194749150812041192805395791667405867867487979524865849364193174116913584665400083162103915233791547383166936052292079025447989353688350798583446144631554626477737725453676480512935318071080167379250327841859157335249319091099391792188022360071406745956895513358271807409776306482741681539022986379476724299900481906636947957729898390241623901116717264703725087939527895665450472126759474016272628899026254993761768593328673168334854737154541713438831297786978430227933847503398253815143434577029464729179608351174418299876455871986332902085483263390953442132806560521690352599986060211836357149659960816955895705962506606805806710623030718898531563132936211739961747311789983833156500497518342561834739032322607709936348605487437997798966769844110330276392681182631385436345701649891989268873710014950801798747710900152082437315735657741613540605039777759128537175459246052779310063531020038201385067360946455490927642114121483192856362840689935402445267682138016612338690729307136694246831631344237186155286097694957608341062917735406303429154253365631002381483921702566464999131732531065779422220968325183280510809356905542748578668278410214804670512180143804827801255758643079146188143244867314283448816833881125955355995921450060666241360673354417346712709918735791027457212954880334964913906580260071625311303848276440256538811706878996721323444945688278923307152047908168999692318905265687024904944426117996186069795150285200054644788633287263216573417292056976422030232578559025212787254239139529760945006613569911269774288505939028635153266068927271106371932158847496422232762737307443704889778699276766530842050074282666089868464595464580913078625556188729662518602035070993174959609917914748783436389892294121274472908947769607634361861195902414659448345009072559647769080651314210552509375922239676282869865593798975758438058085892292304570360765460065730989404398480199145790105497435728341164418971362329255751835151034750256356602773496450830293793395537781333688601317345603058748451330078250191579145668827812179562139597035924560524799802572233443806820803213151426007240534069074480989560597046952772916223030324341675063213227703617364976163467347779911319281302688651631417359362388192903733507281622383030232949682570147346653539068270875993215237363048982326188257521022698814673318620674710047163382450715174377631189665685981015580789660116734963554496806317760887040994683829699095647900873765017136453746817701612636070216792495515186919658180588897112854398816353941739786132513957975033436745231238668562983786603051665008596858705216211174960779378947023535168414200505820824723128450363732633866765844492051067998147904011578797109317211256646003309124847127048033863383918579952871816402381805529684667334419604263860654048072985160863841045727814042717602257767200170279268568957717302315620689713304619081216601794765661372159229690809378072118806370368246048055086885848438342536039107352643712210992877615395466663117792122434830981903824276366524589318189587291081203192777493451147381901763476413004060488049585338164108373705194184912781483791214153028042663112908935838757321309241726193166706845568127204510821133405001763442490128081635030469707721139132462107124058129470201156191214426192256734372334817107637901533036524835263013886660702223531792182472793042567386714792726407222992193509102416977693685497252035815396686654820396996910294990276286572930937133036521841496479540696018406368318755714128572776625310391208143343117222185345931321221393727064099339084581633601316196153803266107245526554372146399243831072040943750148404321930444876810228171276766783066609346104950280201054449996684396474203644966297601539739376285495660904504783106003276732713395980306986205768517659246749700601342610377068969051633941723664128015039010224886831367827869017790862547444018540806354049630840837229679092812679627337772427986448779001995693602445998501210338628732161349924457568668161460275541731000576379222714734022833555367556864535956618422175405499346326304807395678158394690943984641361800508539388718957406546231741007082336863532217371376356127840556198989641687156179555295309517605227959949118400420906927377109244476729421337035773676996133117935188268081898532507787157001112324999991432637583937358406596186384948046380163856176886803109230408827415485083890181011602862747659949309471838990269711821716813491633396856296605547297048548950495374151831424116523021689027734840548875502722946496728141933543057704385177285166000838966157160245509740386681822104846895192859312335699381584354780269829252791282559573555508304105651821795433416723010997618425302175074126291534115537490249866876481877234301071452640056603093075186106345790087428427354197159108551897066931688355215253781505274313660610423262504049868785141596865657318341827508668991126439785508349800603152210600217782884925268445781713911243098127154651202857903585661695720685201318389501367471053828495213743727605512307926361959734059075384705533805256569740100663058998620165722625380618563593636192653320627189661471617122416074380365786215508335895914465191470923431812514181068794299811227647906349555910738901209411928343960400029162356384504190004370550606147557353071483701601689274030457844386926016738349882318045622194654080549795393329113589656996549391652738702383879116319885579053660210086785540440634029426734947302284201571363421596813095360306015856985192029040352127042546835534190887170118345705426391745878823791421108614649630943467557196540208298773952683649968576731297211868300524677804117360206867271929387430564015853471378535482436103253454028949123826486157681898016611447769625245160120873727088295565118197894926013992800621192991163497345065793571194743917980822485593597072258228950131939558911688089555398056664300172031110774633708370215747275286205205637568617074505640065220395722295758932331491174014497179925111272799171888961953963590148075620156129391763485991154324746199717563412650341544294823521604705522531677359724777481618374156557729775744901691260852381041057085761882297510034346458132849031742575907389968499080984807057693651577207777824411442015365933108012653798118846731827486581848599436309787605482804961079771763301736102451806468447365362803185519804097194551500796962598714721676425510871614837626962883689607130190236253305594865745717059878970769810271742252511161048763632542042670391459428913869243974585154913139137390120628849332079093744014553307028230053131132919664031831012151469944925301264101853504399078506127094124740724515886667240454063870463372235004324466521194303142349808578716874019453248983897988505376593763618922098383966706264517619906709225282126191325419047787239053661972701825602202707166988626251335599579124581547897760267935765314412373903590540779181100204514037993166155700535105188465318892617386646590112692657516498537946040636512727066482422807181220565379854044117374354280480004304889016849610818623887549107087424576151460296371196547008294115393460780840616544262216785289070305626570042060202848305952077874553115351899257227396735261209710413083999243503803442172692862887510826445710091584251496016927165834312623930835374410708894871813013513891549577827746039600732968711368149166949841474202246647956091795566398172873406279928978094540238599453378096652513535783749176164023996365298564920155476298728256296019855368947394433124604632096783557631874770583902962024880754628292030355525555338177436109394576157167999597659440348246838379738327239576394955862594310997525536987038587214812624050824063238120029070463950173667215489916743233688711791544719776816468115317399936101336063221387180144799926868403040622219433528009950277179491055282327704446331912179701055695727684018233017833393930886580779188458794314579800969310028509885704691247982751354036628428134812445514415332970750428635431386886171735338241565419094097314085776178252752410947044160475820191315817908046533034848692710098277062886189456248317878092183429964930362796455841288775002611172711240600361016539294865535917416654269758637558963892081642803885079676145712656923150542924359600458139231158154644952365415537290694011904372221070657647077560287603861028516197475650773337505415752683892999209339902729746315928309134951244301116922113674199796665020351097702142119242842305288283411805345546242982434135484133376751844206839784538369542890311463199268425813383688926198700873751073993148053045433691055378500023708931021988571986310568304427055329623095440086739573167508210849763257940330937050655088326328877293211030399749352408934642215376283504258295286807381652360816244272429202994069614351512598291754261760563203158575446529346800722868519446414222549046878485242470528925485481445632939859382562592207438604792330485702459745438587747070939387824021386609118226496672719138247433186125374524611846829439554879039589564433994747376967297604708433511243560680878985859816411055154233271996950678887721499399363733727013398960438763078351696394824836262032289759444429447922613477655722959362375374358320526729339927138787926715530246371217776035379657363545996597687202360793380668210732176028348287916873562048823411310650405313545813670773172198414049040944756284716463877558646598102685864313634356720317412843232545592157869017498124814191338905312128216585993041381042644969796177594153833803837543265327138413282600624867174911887095284139730108693785313868727913395065396571175901490339627308633937956558789353827395187126525043136555627941099028126830539594147683194879295613809181325255887172610833662301214644271311575926367574638375362768530237080242293194747063156264612496080506380067084226549826430748602921001421444226138683690571399254128245812414273551423429230903672455992581933548125251106836623959064849413112991778330334519455833317606813218073390534825124388016560941439943642669174359335506241399005695583836575449530815315799637628136121414655225833003405851277981124104158902938242221731091879402595097617092770556717668634625735580097470306668309557773050766920720386374192717464902562023765230145931075017581781616290412323919405553078831134864285300230563719923045841514776642983562589438530950222050670589163530960075891838983848595305940775443414061994980002672947795709756255733209871990618808705761341159803080297040339936108976421766351257410027519153549232597811649204131428436365049136821321928024767104295899601834741697520080324788380747308889232793912737438604377564129255557111611198464617178708686305988723383595241865142623938125680826206995141130957561554431521175059485750748261128377991805816735046478560941857588737358998232555163591828171354209387251146707138647835146776261752641300821221646209542731548430848621358360861269395805690691855785310599307719106126263646944664624940943557595913376855111033872856305702080708460336989750155868647016234292708380844037631260007173872940187577837351497315052321869603144402408183168639325953534361054875264830838718124583235941755924862204251768655362959969608071017074248534105848595315953274143397338754046652978352820921357389089733631559395194030953668173765287038633105084982802095964928071861508215500107347813124886932762605282229647264136510595085952160281944767639009139195275358820122345654728953391666270867111087742473712388242384629670721891280453369602595560413583426004179988109967809595902359932642904555666708468996645364388009638492287512846833168704163426333828510399636654764089476839503570726735702772217036984783960070888750591645041829253139811807935349908112508144851977727323173942456090518060449929398631888112295165481580437936068739025625555600817148886373372571295200612332166502864602172017463353798960692338203179058844135585450080661388752400045984832274064903455536604865369582391360833641003429850689016252530116602018148700862245819044045909258201880701451499365841460687249720349127377693434122583670477733524678445640884187996683327932497266677423116634978485722462743227023706118125841843506450137464001364664261544038387883025039233445929200185343768827327692984095070042825419219968000453551080984607639455338590161432478222087501420744932931291709649821498380608007873603978403242123732975769444316355023412039548956589882444074223804730347004375669426320354809843675310782450967481923799170979861691107657242780477348363931470313922720113882365332075152078957693041317567002275338005110443467737533758822487924304329525762566326673134615827833352496866704118780297794299996639327278608511713753575751215287464335195440457843409443639054733491064988624286221126225759414458710220528903579422238105937217338718662287649387578872724975948373155300056574360971222072292254298017254338771435998029967710606432872671334507990813906388003119940720673042005617527003202817023514910007281893542135476814296784811592307625551003828993413488606685691101937841498342635571436384525478328550006659885222327884728499504491052897214079002041985945451883655310262103116813105833403172439640576274797055085278298919238659171370682636852228136255687666302398207234770717320191775033757062878289446587676597158098838788624929650971243589388132967903254255066884063515265222548333374053822197056145419041064257849240507451945153838479485101699408828407157908496664267024043629050350846580566045643699863190583772964087630574822870684681743675428716790495177430894422560255794427087938808424879824257809468028403345264959897592558136725963565591926775313828644105101707436780172682000212400330778075317110274271699298397461999720169805853248891572230804093268215642869713237779070897649704350661742707316273059541831330679884823525808395578139475091601920010337451370351720969280478432729987810658227280599447010835124756573358034161148776473863451263592114626156276384223770286472863468374487652471160628816445109290598973673539671287802851881124141651375928192774422484329241067465649752878937744598261638959999994006674333421190272830116571934247970146405845219826120461471403593506712759367554231194702717417453802782124667899954381832626757484016311833773732017504437810688381539758447584697584850327498889836994657428322666429526639112703402584041160630702126254308321177191560732607068072161232442458391419710947877619316205904689907301638941415996730281671672954833345168660281418317888483706986350814057201695998134953353569174672161090779682679774317611482563396599697686142857285259072343705677890304613993678492738861568787337998347957102708801640053635373209659962169591557584785516951741667530899579660611935943325950483153279859891039969148138128731706061141594330516688295466145753525656764466920799369791402077336499064086023110886296638318841809501542303612330489493263223359236353024432133793183604525666533599909575736591640327734378830489539009969358801845713241463155884948338074959223417165673355192449293635262764022964599543130450853396923838163266386115965554644233847986053068264325020600856074538721605655072920524922508180573499862634157295209661579456660456125992510307069222217252320586715047562994133740514394969315244876305263175947097293552293944203952656174116208236954559427560720854880924470160471048112720409374692695103423343493859164749127187430418567281927942832375738091377221272594565705337291518897389509807599424784036677847172608078713876845835825010540722165047691641377078681737189739586114137472541708579480918140997418530582833047669986677563642037039327785270090236637605490211974673669534278920935957742682687843377863609158853579682446571464696612507317181183679360587658049176685756867557655094736238871506568299973010931463543246393847089434236831143451784556468747624973260615174595259307722999697134225694180917428956473107400534199813563770069349952775255628257815496659544715111003760184345548206856878724920314482754981930572375680512532578661262889054145531733126672614151382323608968596384468359402687130565069823841222578111962323354336403360497456261165570471956110853585799426244632809154743740118506398258254436638401178930389510376157764544320808526457771676933288212224557050551201388476017169298509690566628382777548751683298092974677676129397787526233706855984992504858493403442724113314789430315727011284529892942773064857249513671742046527498403444067884500544722174992378658382019176012547447260711732782997288160402175020112441674931015680599226815312600844904813036612562709230936773601329543865839096644840236723242910339440809416144229841049554212882107354083615022255136697085787327274039169249757990716969612251986908765271602598517128820717382302919409912753579388236109547176218274671609988224003189701102136148858424316743197236402615936294497939185726991074105856345476420114188353160804789127534728707908020668140330856676150976915626032839228402819789117344898711170692259992305082253695142438904979662600161628568400046478762809251673447837409076150686687615137250951719881245824662550978805822428129103920410917829187058380599957912556719210614046264588474594373348200450140210776631397412278473787189758648022296803780674830703087501559206151098865453059950997341871403685057096167463465516886087360887181839702304835080933681361694618347411615106777131364784007541345032162826762589815323144358027233665694030216901008057573779325400069636359157834362733029347728343955414050735320130477368310764119318332154853854966106788470344343122120849053942829769033280888403290226207658613848207195376959755401515652458671184112109380452737103729142205860661135032369357267087313302311294009127751185255291469131677541630022391701182387291366260220417366870334724334064784869543444906466638168675890103421786441756603066762890632359100299459435249598939898263015912641778184532676033386146208097665109266797444343741387001219007339593822496379103834102645333639347985930708113220307613505908945036087769010289123821932973645386866204278453672409052669367048083660589922962952478020829256600113592766094582985121576029795411003963164301516763143698953791008921045220461340376570340017025165674290236599554284061917228237198834277842015195738002369954699438117244743660719571578467610419739491169262618853997716164540704357856980852760040531703295029152289846177805555849688708950191337308767909602881866111372220631149657516984484276932610753344677685635452774704691523632236418680262298721315451196955841509815392553184486725829742592698137968093018735686472727992924339158683284930035981855745319281152011792628810096942535890354837639041702665859810646698932108916428992801419729380213769625591895655055560075610833538140217339055299109070032211339209203797782417349738541572082705911699333781702736010447705893455610460100204177480605365183445206898463075782001205588734111914117736119851300770426123222393782104301986200921705110039082283150038021898977110997820847484594087512675211308182967496051042953951716920478668417481718490496990043535988386136934998401593813213957529201271096706928648318197312027672411804787018869543656388798802476171884209885019543207923153546304319978653750723097123729472654077418960472289533714214332490555218483216751026904352471589358882855631381448475469277177118733100301398205329641471431794668323621492619147728796803852440663417899510701136148660952886627147882930306374278418616069143319837848497154913067384319177020866901144678231578067992991857701646915663465539116791300050744510433898133668361782863269421986613795905935260039251018452384074199326342974392816512470849521350559142557885993371841009733251077354084038668301551188607158179283773643552957692379457670794950623619005392612425497091713739364122415240042916450324521949617818329884192341860856256810129821473523750713991372953903895533511496140938119615335092970247447240702062206118444687508531965399062077218376000530798956892143629799078147604576128819678411300316948486789088587905883000872468745232141897868449055455246095976901951225038936962154188830675754037302799717309158495530825332679008487230732806440590154422498545965569704009843235934886553019508705089731729151586155793431872161012185761894550453040180441969624543444022401095518977982618376177986888771311672985886795938591783201907131708852142116570117262723022593863323167064424853088029941773413262944025831994668680611043307984968786258814233549842963202060241719905548685227148040873642527632766151156376549254817287830547969042089890450067867621741495605481179451304763341845795520159765024381899113255057819038693431349249416269069867034613169710673866139936938249421212367288177120686139813079009634238326597508595140044917803591504535307198842082967467756328571349565337836665552403281674140445108092121017006595158558901743659626922065917094042144663406715949798097157015121408040259379667911770839455494859168262133421916176715798705718223212844299769356961857951202635499084917039566492051220073776731490969140712561264735018770429373977705947673219250682711452903260609572283661353640837674115660263898409641904891670076141925917710673497554666667802671960311302085663360572515121895131050101083993366076215107939726789998557497883517589804547714201166458513153220548430218503882587037522436545933142109290561344656680543631528425846602095170345811492176461767552219486317049865849532069913470273961541324523975475511562866562284080643271254369157971827044317232990429671787204123278432729220844374796889117354686246673512692974373242066581547005457201055627234525451324796218326272046685498256150101152473654768811649750365634493797688794248464212696448422449365868111204363415761545618006860662676345626040999826220294863641275573060785665985247195949955658740053415208822860175120222297257486251981692824113594347206580458075174712859803771789172634985607372063340997976890198033292521665868960351276236621106944670510510936713725619466042248049888072351230300643607396306031142111495730774034694819957881892479348204792645204339076655957499207053504175382496180150230590664745617440213616907976597527231452359659198776017872896609638341305745059807237502601983303762122712418735415271263069565726699156217152699253648398414734035431279181610423937363479877172408713698214704032508121839687123839013200322181383340849150604770251332876338666524313973093207883844013619355490023270105796294997081289436238509038857509753470730705406206495635808721373584705318588026985129498353807248259473646758068083469976885717220012233278126850535853279861334208060595991193374511618090258057556877319165797775597713328597908484266785201918741747486157977706555587632243073081260164530842745906451164131384431520194755521977101536527032234441331738632297932939659522548613266695147916384175100060051359279667185156380337384677077460765850265003461629527947333646624159723166291244186312164678759927787245698954922254888261207376424541084064187639052817896741609179417585193817200669829773983149994635317608568897442971938839959453669507254601125214270734142794189694922642591554768589009359469519208353430378129193832389776679813367383724071242370831569116267429752870490980957911966197900996260891337060157774621840326972265242469696750838613436990506841322924942594005152952855344038388944206266821850912757377356007173053257450401564525987837689532689825616802210658759404936938879321823174043581468223472888666140586864962764202537671599343261525993902745651423064557348662209208846768596412897207513531050942514144852764417926835034480433374065603491260913771594900999924724414146760336836535400567783783595613537727103489394181862213125858645955709207970193988577171109985411371818043662634743481484442751254839091184338533581374082582864266258301194398365221528918834764347661279656541743836290126794124088667919892482635363197809829065775923465618790160383009841259896144597366584553002533537005512990175842397554673693735865587508141515187588992935431866144683558560989737382469212348307428356268453745460169070309072732459289984729207043805144145240927903139155634400951313690245724359800510688535238428113409995790478302771109903580427452916175314542462102399684374470341919542182566682496805685229734683584101774269085708139668364121291945357951033436035944964302081563958623025483122624718224961014941912530998305307789923238812769467149537691604250339391235249405138200745497667730409597895292695372170816844108061477145395803792069821375567100669389828672619680319508427210176448318921250216488416904987769009566661890722874304248108995492031968996366053619967662416893696695742569232280746326749958741356223515577613019430124216488025477703097824587817331571557913093115418086762022693437276956214627314820468711649485768279691761505950133322263076769540997799328620939990183883015659351969814483971957839879432261986866780229346773433136118295924995182787856867076202952062489156360020338429859943785584808648697012235457866749414526167875593233384688697388644628742807699825825274220710184604442838570743028852640894662884896803615130172791671409375999902210969307097821608656471782520498087382888718091825154153615326164927197775555419665987368489056877941474554072521070935510556932139376725970164523654639277631349038920033911603653418877346191898512663436931629818493846754774108471060539943581041268560728764078077031643059162498991222071938157521534931852115949142405915514452172430012717220638254959146721913626073874431070259201746245690078839624717726732086941492602534763909479015082847171654964747978851867678237906357886872801891675245321799795015340353597897546793001998053899153108647490138401557869587008724168458537873533604630220750586749187489835828565027968052536192615535237450731806241514532753916206079876775516595889716510668362171330266598623571173791075711618839814641239569867101903391844510793172121912161620862574221917974999240817029542194267505275241878326174911760909515778980128857024530128847192830325658425754262202701690870852501801457998284430628951324974990268236083966725779924154559685596363449459711407097653212105638575924018877860896433006190635791421082148619078789861596387863951129329320897516483949463678203469729428916646493922770132018748081295194601848302514336212430686826902106876485379850189700452514691532229944617512693508762155162757969393036280896042578143187002460724399696240927763328819797318620364897865541925705032425364939749092903218888010182765915767787699733125193223535000349143168595185694936579637589394961628773717981660787248419424780845034057799593376369494496318498100242634428180268393733368172503663223368131007857885717293731190985362107948542345029600694489187642023607931095086697985347918999931565209768842515527170874138924802951379303991030411425199608297476129152379452329974294886283826926090278489806706997956804250813301446449645896332458970861370624788696496704050045334768105251400201126117765526580655506622650305593410789491306439067811820043842834252153552863287677744341345738052307630334585418404987674227184046284590139426810604692540843335032019583160645184793859074507305572355012859641435779533681371174265825495399324628949103612212200071422852289387231020555238945617676351815666975663691816689488663310356996563076426173105254203356651230681347946628605531471014993900145042263400417475988799355314146990217476267250195210118650981224423642745920161560229839637925740345820948839334909635012677081788484647022848561214293470089270864049069765584929954344792396280024161806234228961921104040203733310602829149716034806040067770029985237760795857909062458287964349331051854183873991982964743201378018571781525311196896100415846001900504694876457083851630010801762819362008165136672292557551144343785937778615640020004249522444663764732663172032822027713241330564719592313921978444975059341629135335952125345558239468178315348772580967380357388912730466604914772047282586061360772301683359664095824689287988417883584112509223717492554814794976144022502866814300414125367316091102134394957143685298450808290156131650337672611373023839579795625605934322690423040296793493492019683306063610960949471330556874404282975952526759786575927543752700645544919280799336596045303685909207640776319964709763848297788819328053273613492680719861304750339925588004813570140304159999151685377994368203589119638742948213302245718666551117090454514320049559737377912763409496330877359588135742749606623860163415686542167193313082057357270317353617576995839920792555341442858518056512311308315622446746166508054016115287471590991530011478896902177005028014844123508588488808771353141012320755765937718131108697006335187868438657783178208971807520489544476788103453876962498227572548176870904028608173832477603008255582023706657864997455140303479560494705654686760411205739807003362191904892389060528762349498291640337261166436555268920443296659864240504787354014743448141224901252037674412740898387829947021537119584193612933027158177892139126298615512409129043854264605421601323320679607396070037233014361065741420668112787520351875551684881828931666887167853635610438285302581605362653381661106005868399199318968865737876275323076672559430548032737636817333976328382367369607580486158832056670123454805076305145948055521565279799977198560249823005248277461800934329042593649408704802206801144268525558618919782003018034814558232764137495402726737477544823881291307240666722817023843232523235851994113635076276301198294924538684275432536264202922388752819582411196591984286835251516791164388605871716123802394167204589643913647186151292614116221993026195333341273033316651313150848629120549967141361699316024608468583854039004538936823657578249646085190513106084171528678552880102641585206248268843066372877413127550156753799125155520953778200993871963942315623947264215920530046410409189521191407375414258301157303766345704921320346228382903710604456187779827667760038608369799774780412942197114010259956122692950916447190234698405769799788893861217870456525050100319448961903658539375338311569771457278966309263132870426020980077459506991493629637915666973763217730624878524768621637271331310371298002440898915215533212585644290313756968123020534643532455960294415741386047492702796094367218597011769698398109710666663184302392855333135865638127870106825417491903146461227278916766589307472807066650583051217200804876636841854353075944613053975801929515178282265266168027416134952583052412533478967387068118836348174397640632620768863405244948372060143246260949775188021983241548749242649056160659557217772777217012343508594308193000953490678427232100807950709413975412322597932336911822822594887451593878697283003474835494138724270343210373520598243457809653632163102210930297016829797403072247912767758807222084510611815438122200049856090027529658268362478652866077393632052556835872986925335680490556477497326885769979111268908849758212173058698434690447483275062031088794342551616044464763542824413017543413853870601067311815950522269998704798019196768956544699598371575985885580394644023114583552594042581405531230672398169687403015424314763775243603605889543498141956066984597668513452360521861638121230914545300396357108636090605844365219350601293774613051071919730246879190359690620397783717094494693659316865869550736969822175825569546669527368470547312596383795155825992191531008717728621169524056533118327255515172585860397896017267330154782653045016579937275412307524873015430437560352907719088378346979581582594046683570853494473645142889037018372577044531060172165496698803547733192970502705958894643328406585959708323995788346183178958866179463052936790137176339881743809326251721565489339585380614026319539911698216120904450839584162795989218399675259996089875876886118237052722665245573659859693969161728828751220607425520491190883853838834389605081862070504393625161322192803756933366678272967706036341709042107132526612705344535104981335072428852102733641248215833964011662790259486963203180326238163812378646922296465071923357583891350355798490534624437357229412266804603179841443174665810670049279240963604042246582612549169958503164944724261998790639024683384036708397363401167473163226762406031605015970666881892380330835527785977893132624957871217090121309333089275539958739231191068882273923771049586555662042545605950155069848038082770061742538233468579302796446256283800340491136565689592986455520947953962472008790210664883263389369079840163023545101587920690032982667009941334920003510188831895130708978084965984332042472285657676599023900110939317104868090058196435538929088643540363468479533978891319822873088334724512534370598323360594357030072005558199875247076133467288418515642605830269276814300145376387624375929554001127814221113736837899395077653608954388317937472696983998449192761395560897060719086095706724990775414978665296271064952013786845781797615047023195509684651801083807028312974795497116611770812395564972296401554045587531258367753305935478197364971292366158524663246224561125430372272206541133775093618224417833523868622064376373719152558668450677817185000468544537608969816508865539828551097656946147800400923785678703490914439300403953067503740147571658814158646842540509668803626042509390661052415331527997088804858697225126454087071685991271649403107330043591157677224389071929005115500695886287347240481559288988546964045574671636673127246526887573399574212514715093903983067465616522143593358789171822370433386813235382983092524475101111826553359894594257867587040471703550635042006664712973245536717486629523463362366803323945094265987079037927257680540340295161541710829381937381606385132664920039137798278375459280158083438300096575534376533966843352141164229138005129780178561274006080096753806695549501115406514545440006445413323759409578566233077278595556040138767753150857219397334524003602440465274544356032770715048936407151297737056665515904130619674763574204313414767984694241417992805567920509581322321846534405354055622732776321997689889196376264110602109499145109123164426067296075594484583050730520817551564280619924395357224069679861090099582152926704661449923663623709132700127706239150191783889786321929233182381821153562359714183195215064714283529500924001776983171945499446126630880673266266148786516220727497775000610645610447440930374217136877296934139387440919569555466990445444278944248169116101627160445338850935207189880133657433630533196238990453185547679293554457364809012811645647684721070046181666570054842232471572038419357512932870461560846293860416921083745938950889741219767551377993488649043147642254408693548325614138606713030919137324918709096310549719620926332399698794019519787087608786696012764357146561517592970802721466037361401281222370567324673184576565582312727784189381469134327330378335945763974088149158935440561915275110958998848412820019803081813207424672923327380797009116694632318074812031203747369740134898245451886065286101762832285731743497996794699473596103294656826581031071975183652144885646129946117591025647517751339357436707346526399464341369234833173328362117580738807258673087831928097514612772854720726439675670272976986410766439099434057337220176177899156810553982468964260157578278353279151180100254454674567202256165748509379474166102819462052093276135704154423694668486581946091280940846593063629613062108437578442369221615890092398096300864046342827690247104022476879796553961384414352108770683252248373619660301978279719089890822897526591169624634357246321540667774014139334592167366600058460277547220190102555570223430884512003563207195282243138940474252727310756285290040588041729302693690777210818978602005127031008830810103830367122671485503750421736820475571172373287867339001061845822340770586105992840320436158085997919447431055731213881748664623472470957101945816845392838493582806689515049416895486834685774220229086146758233747254185101017930509796089489406917425232318838517467742548761304124365897813995209244057122654308694828897212375636313530507123493535598089318704998054428406498697564549973890859845002239400739620561127303491911629943023533012996522554978060520360696846092308487623591499643274425219798982716524833758891968465727847630131985882829216691841492450757950300626512359737436516626741525197248684611882881756761954227525901164477925657340803780231702680042408409949451752683069003354586486026817186329747082798860244575255269505442415344981175808468209676524521357160723817382410213327328814452302538674131011286149882449376723097766820920277678963254791621406746820635342696970240982825547990248514373259623722668705228167520242305679352725728862888310986651816337549994546355216039448329156726402781482222625669749521807731075891541181056298232128223033212490028444308317233484604361897250577932419382776339387207483305849151497391208846160505136239446357139040628184736571804483351883984275529050896701006132466826336300927823645781748676105985750832409919081455256456401471962087244071096916212825811407414389079405460390373427548090785512861860064619957295689013703577940715134154164415723643894808250056144796145271211252477984855470607517458714430518082081033296467319262665969321971034802418880021829242244166038900062327770054737275001892324373329044316037418083296414122746284011202083336039794226294999749205964100191974389194150738550798799457384214685679596475726198058757965039374713725241118798515013387829561109338776856482947106010399651085745941321054480630717060179997119807304204168450577049295492732458436037072245900319428011431928194793100738780345921636444120978882234399376289970994754310325726527757033751107174541291223795257668059395180839474003393458014270103700840147171098174624514706112928906152120599953898444289203038388952911122509796011025124182542842822640279755186291723776909171706265888113017867022761781536141689929413079519709479247608924603269053760999468588667504735291674279652570546099040646898035104324627080251648996529347264929064336315190615467386875401154196340359328347045700651886647712660452747252683356498645077436130205180341020104208225068163243207626841581069933870733363468454506204246010922297087893606696054013657844608215653353848366902901424939736505461959076793905044784025881546145926032481079344204896261094860694714497894377727547636327772704930617128861877714956902217826143908497691187134376783685514923012961238635893075882635826791145548650572678634152905600894056503474779419866586848374836406128416237344322851076754480321183421279329551183219287072293121814684594636107927379009168610562010199862123910983626223055650834531888594911592310874909489920707439753044513906605172679328823776486549206171749590502253436718728166053651247971474837907684314997841747408288637621321723337096705891242712464962361684996732899428226886629279875423990076835912064413055258840211641133024125187768966350500787733840704416917976185863530367025509410126729356831977098463575534664070943343705688480390450546212019882279518621868816488508552333027384050288678981356166694593471496865984261078946136218120809089434388233274485674655061969481737076941559471960984858195079660584348538105008772711241843050759600591214171643970534221533322898366270304155903567655725372130943845983390900671497834001408357608890559842312235930314937191189637156236506179110383561987922242536855833106166516000944995215798305624647315973723259959003697162430185328145300638325057055832953758733263141632313827951803322215556722658241805444063820732165178074070349550567933352977190578645455278969365310595752744480982120890759125434910106202448782322524310234594055041479176106760633956648492434548616831615091724793596564552818842624334657372228116375970799824412478249131787614851763419479146851329629187331492874844690754297231617884170228634799644591890203300585648273334537755828737469899723491789558116708742166098450793709327592747266176215823681653259557295808782251829468967927762169822642909659735242058111915997775853910238833300030311629544607584682700330694508633264626849871413340938562671290037057657369528555588870747218283864280563635626648711476125015327918486059660520494447799578616049638771375347213898603507064606649814548919995720117530103404142308569791492603033382129025764515957557250353171734427159065550381954624269769422958568258112845914386571928439241341448849684179492717185096858006846506524895315467400382025077465325905126315221852411864434145569004141792473043284623622196190201651157396630009442202690985423902232087594224219923771934644556195032836763429975162148527070614434834655224342195205917140033992992716711635577923042931221863232302288464166430282414080670990205984708457433345098441859726059334723018052750831299672415867980399918105130572456075710678460202250468057723273238686546498656707046093626009305657589161739546012416176967847660380212641524312006862055909294578912750631609244309554184563597385095085706966538173343379551917935507687628662399064075941867416978190571791131277171809989007385260626021615778085700501847819467776181050785885547157748676774665818932046003420619004080184706822892685124344641097997676036042322732253510784876099495873646718249446978493738546380302029492499506628040137242451648906103473639831684636288688325970385650943626487455017037805570964724539185402052832735689682399321734982792624436096290158321850936513391676218376696250774944007006460961455919433935245709996096290434647498746576576260513825490145827825626678627250332589879365342671578379085316556906053456328137306546222250285050899427623465758803566478327987645590333512273018114205405212051915900141470579155292006318001605143989603329385351096730164486237690132177937447039872770952211051713443457633351647217991356701741090670593389703239223389408112543047797678624601137963500218495685904525873312228692788041039522946787551138477864630232682125730208173442086592246561076571689989358705553495665525073083576518923708358861887892932174514894043316235544031239093703530071980945126697082542918265425325351242334677001225611310186708331484910676326055373715846039979637573056819352452369950475082991721206356019935217405738516356132733814574716184577961847160996378187988004385955986069301110674911001062146508766156201078289538735733588946800456119331017250263378330696411611229064319683692605455849076481225239238312835388542432527225251040693393649291836713906986575838568363263309347770217298622713319912578115569127723667374779883681846440376150080870490758898240956676236849252935275900178103109682230875005311856535800625521616031755180773158370417722511349519439998820111244641355504305040752338677321239607661454941065887780687279087373598704504382797417220920276884573059606108075222217877530922732147151120605041908250532785358443685179323807675487475693171731229807585640406449617074703543569864818693254300099822924329266869166255765263978749053027875778956080306040674594897942500779262118570908811938548640665741385636292941040030388501735961400307193188326907111883777544741877830749022528355313178881047237438535463871471770211569749291790202793083809656894324427796779103882765050406171324808645107769896373787152597999264141964880670373629042955163885473783700891425788116401110088546284140815851831606426452244814427811993916789617453549868803583545044150796827259254306765959844451925918426122183316497074526402929041273406357112422528007972190661043409861431597548689153484768638603572370411971176532239942604986918335116675408564242827249252876388619167584443924325897476038450156873367157512330324982785322018022894696505203074266222665958643769919067656511660364236873211156014687188216353871604275384782849382685485391397815531694721629420664926548147101412866921775287117073990487584475549090734762309379680558164367673629827894983851798180700451751070417158567751547235038592817050460387436070169556060670592180534682916350778813441411994462610057834555718597545419293282391756604598589252954540306106551195833206527704584296481914908211302264926871480849235953525741355770494041974661383060101771218187745627864612785012298626669100706641952408338803291385927141541729946126042694515398020175388668055840208942251134122389778022551888976650201628672633618130252557591671188878530520849434629488156768851139068141841685783155847573228705316392323472904853132017915664994012831791063226318777193353613931875981111581751670651817360615703514861064600783214188335512634551925638337133455890627155329333622667798983837538758622225245307113715490146312351465560243056296483507415469093184209495501470442507909649214764420533037626672696893695781415019327730491606420826941704999915859876479364702382697329138057006893120016887333017992332942071979654137508964149511976166016180183382238103269834866164905930287199695156498617895367582868494856833793967185648275266201114084019369391358404908869319741548058480837052508097640755435959569607764027821465039935425773213039429765364422882354933681981136929050275735181268511125970174793995322410534419278769944285702231086785790182736737488421382905689200551888708116654980807141881350863695058460498112308454984594818441296687649740325395680075599412450179408632248842060296325735357013565607569432704739181235229148772865922039628244492969917176822481687879339266283421884024145485484615682848439144518950967321341568416111723248032117029290827307021805534769095647512834351111680713953475973252701440340973307030008804545920104121629083911851749024526923329672708455123989379413654608824210448234035348194043729479769815140758272539639856946369025328436159511399792254935821176450908700664519237875858298039427103409503639032568429189752770086919168377806213056041414135041375111579961252292647355675998449264152617840304232602863662369643902596162266890774421826687170050294542505585516672645280976026601458389358672370598589460471675411627522111049517470808572281043513475039918200976126144156850422806344937340937008129002888082833612314419062273490912451646926169869087927517451456093352699520642285544016288706236222780073199652190266852113468020365007914643352025385309660540244556725316209741835634226754346233219255088485216954724467846984479886065599641085900883957281226662278406897785844557522759888294991168170886506968730291832852780641744701968601311273760387042782781047836487702768411635143862394234982644426385332319023362269998215608847382350557935828822243256845812920202950619310438427132437588328972993086091647180274276638609933648258637845319045708585504283264077676646428114246711569517850039593626956866094212417995096097967742809471308742961290825138458603500487338542801456513775350357952767643709208278528113434461753598036565017868950869485931367877664698092668949570308817597222682737174192089783293448656107763665901413271016294510264362219654657691294814427623171791648122195311175683963648266947431879622874768930753659536177218191193683219457883835219917699608198475212877890882008297209956002025273357958416924306146700463465304716862853658986030848172241846229835280724460791948569343481013167156172308029023048246345613018039182809727934038062123150224117399264618243697867479375431051026901612618806113775121568208596748308582299082311307778248831667025336594636254561798277797953755514772624315628906722345673004525991522998121981150950975399529883443023793621486132734911322398152568131092509547017345310377018974515467687204083696290843685424791761360239081898013420904373210701530444317616808790368995335470243103796177634740347019861613385925431185572428565001104839099920369605746791460615092591040401300417945208575844971025557166804752714627916631282301574375967123176348195683825846362452324105344361670999272376441830565665177413537568186088928130517300159304004816171884042175297264148454745789242996769306681506520864816380970489266721246936279374413726849058874515598605187120538839757048902846290389948239706464751052796199705289009493985160054004551753685240711207797345284617776552186513556397054862033210917982900669458872636883813048738263334816902704187721419521922215506745380625257170306757401317152507602629947861300760262654047125056228158176680142153221898230976114580851319677704275964102490992866069100888371283459205572364436438961347682401032218748041727823310553992009185935833251652702090560235375703019132000765316076072231638739021398783192255190267278653144906644006250472175865821112769352011539462494207217640472572920046067670796116412121564180684804155064157069518010780748275247479917150589337738945923150311437831893948092147349542615214478179917872033439791636155103338729982605702493085655894022302480431028585928120357795139540161298056997708130525743390361692043223945725104517897152054349449441467022754591025197312301966348539794055651044380830313064216349351631481751565983449236985890750305306441333220757555541112685125414794742202945116907393520326921704553791171577359663994643789019043402755044531943636969009575453062178885999950731060968738203098636788897742721583102084680388191886038492833085046521101776252728327442398743870854887895408802599225998499957443986818266517461269813088748769119554656699050567133462684896811443981859923111399191819373174510534047685165331232053075919534069249110251123077329398710113923746404732782908122687767285463120492880213242640892331213457881700935598700538246802954058529531793264459280526591198595055493874560630828171878603258512325457606729273733383682168414652723286072491117061202169967450868240510053699561528114315143741225124887958431766927330785703554591999794203603152001033402863104045296576258482060487195626566337300205409210922407463252818098554236923046941886884028006220685017818784337978624117862030937111271470638874522849249984366456693568860794654037641899819745045778544630286277144061821067986626988696476069333459157689802394240269084023689004074477689949929109138872856148045130926338913637134166796636499936557343409017293585464617045757848162717410759751929794757598977291249279132378214503394802992784910515875806027773752164529992520956614941127059794915457854794382250340944931362929394754197646203818418908516887545114603722924789254313584835991238570110454166065959598073322091444868484301216569050813906454500444305821043417933907619354515474131872630949330995126744887688518777159836540374795592029869034132827324645240574028025773143936750177293545103070246637461126672708728720810447758874427395007436869178393756504133279622069363538517092781727162120068596643991506895309883237810103308422803584911828564432422954312996955177368153980726009630061137931424611623693312502108629597883896201976199305995491026598250546935440242866308522975946855216422553462428226183677374909922329213837674521221787360229130433075397877086362069642297831109788011424366836110039418311569794612215606063015148244421705291754870319385736384753921938352645915457152462569496542094236331841103651695863927973808726156074211658067232250502818912769899343395882362970268886350781862617325060575863286540001071451064478467988592715914566093116038316758036745653954377249962943175435173745475320249094706822800512400059918474793097374445028878238801483537675056496192036139579925477499603802841230615522251648938352225548907397014526203032141739184049078022202699815073822342124219695571811162946995871313354911006268040936220556754070371739158066257411177773327138584556873514371019330278937951565113698422946293181911904796586036813544694404386851076743346209852540693536712493976774651273941315281407236271448595930685783448128873620031264380767560171546548191506708784580503622859525878814791433314671073624590666559340809386738668928392644770525728013193273251029827343686102907978103188628701379910512406716508393329590216362441190954072311911607126610563190258221451429878728459014137749534469297040568296507381533182556424317639430525196697553898928948692627409195709300727361500780928728958324364493520218943827333781144530407403687645810611411940819106895283472587617575561881064627727738048772829293875870071156211069795308072410257150314406611936694452290990217268309053875588810878254972794991421299801285049864601335362091081330176115783668304372012468760982101358726533370343478809719285866281790254614725813859432519940402784912009599217502164495767007025327725755534806970352998932655631461407620703042230784321942528117569737094992840656599694101752193965252403134416393046467960325908666938047116026477291566083954804506552410373721313050900817785170484210005594842735251394823725593169884856122333809078528280692011062469592898769780407639531857650052472503044133954245488915425192264323309225398915919171234842355585920813000968227071503851724089122506074867006808825717550290933589825245219624995780823024683536082346339874832902744660925481642364022183531345452034975435121774953344843645850272251659176248811002133479892992708072874723411089388308338213028675025416656699696242684143034970403849409756715770612371755684677608579434271072540562274593496609744540680791978488821722476861295734243008859127449914679418211200689305837062150256726059458509306446179835149876232367277456181778577128055535343173757296630634855209139562012320026719609141820280165832759030143370943718342524489012834472297063200280463553118613537912438515776574046813655230100323624213111045990813485019950014354205446769215833895748058510981533938758964751898026543041276075446534224574633205020999328162888230391887162622895226983320387454422184375130811164633438737886757513935969712373979193681971660938801005735018924850066914718873570350752300193427484381939990460077371779907368795631028605819251738444635265252011112527313259641145080798997197755674573228324054057339231520731781413587123948818793708368780696542533029904780521344414431991159894021000212028457709328816699776854390913802393452687062808122864140122386860610725018430329836798660203550261483614728013948787372742515398735815849771026413508295037585514005707879009634566844118713212629474261132467445295630108477336596560089949898969979123189198096318603679216829630534180348891141513307083130803500493472242110435883367314639795095575105409229635310275205176937945170786356093286026882575299184412060675904608329096213331601730907719762991096997202450760804656640886702367006978679506735204755890174152265437700347007188087868223346335377694228823711191165730129838224636600747431374565542495249832831860775732462154927403237818765535524421418516806821444643608183966607285119319026439480363789900438431248174308972532441879058735614456440852208096338733381406957062469084276894463809841758914537553725427935095000993853926635412085194529893661474177172976570987934766714530754888476599472822730156449826987202426202953139522192593879388141287784675570170618694273090967564174717097505823863778561615997369858948718443991106865613759921788863773861848050510179788826557044949356219765756947047777345169683320168591032622575647918015358451604493750847653249238419333322532985683460239977647173129248323901315063017684129530222229323455060405007713910219570112775013864949491085444933174859944055315377082580489620418083444207617472418924877178848547594292071290828347240811531927643097977401960120879629257628818690196164974787368978853182141617933482096981831740120791507239560483766373494767756723841394436470334326958133955888788165330366155218135457793182625004973025595791719780356267212495787127405638679029752001272407125444951541289131546433326491698439992830266180562337795919908365416622764486268301296340380966226049599824120855376540868362750886958412536731905142446382398276898735565523182118635901239347907808278931939887171963193232320352929314848974678099901906076084289734177891279388542068762668599873577701149355932178166440996843814778327706099827309772778580546867645027531198105598793316020268939325346075606805341315273347467269727283230707722750351494051003630853964765366187778871444407688929457423809794000142452769141339598181268595568023228107320222470003361015975149255739555864618950079558024001685847008607729974048390642371409212186193095171349395907712954709786934315209103284823430007482143327963808332003716772968134115500727530206839466943876698174532748668092766595849336699704856188615711036052029226606959294029114458363633449824258451532893998063676258779217567067691360134416575284431783484051192880751776533827639433167913740671154001359336056633414700171879646639358882901760754339096683332436886923072310482736656650154461355159133048134246244490539671829763679366713799074774129921057141796238203358988354286554318868369264564552552287755679840060415616927511404412102730161166858677468773992870504713185958462920201016371502913845199172084570905746467670714670762554772850847724499539577085307217626290604263885212112045231613832663838945810714177241112715957589677907978170600631553988789010601832058845959869705072689993280570282671221394178103210846982031296833051678796237429968467880062800235009241145294969358206589362772767464172329844721436831729817082756450448760755361732821247179791031791009006127769767342575640049423898225678973379778746740567297143098330881997381890907455161926409728515892974025707976760265628058299085454236034808740174600549192242745834128270884116784707168371215252737369585525157694865663304130267816973464566702525232312098569318480342421157051866959603991399838278984292571761487767030377498783746299519151246656042803175873945972964373272257912378985893040061501387284733187332007431648840764047448058606146826624405387008607199913221721090014555262050570725532610140029450564108238226117880902987315393282921886185550068091094719729547923533071662414319219042631756226081939664251405269408631241812819368448309525937858705801167878942620613944180656968228689598079122343419486639208072091007674725914370671053374588878531172854081273838217571968682574367313765021916227650692245085992314278005899940537499093542359293674474677883104527736482392453282624867932408681715080062623974248150861429322070347066164522198213168742265945723371351081939482146420221467307886190729777832312842315873116962490028525764980259203252755708798513397948966538184533423367799963042388012077088522728750214269630805794357243985599643571154229320829086088453079305026840202472844856467824072646390729388131587767918915998079646011705588701905415836955166112960525298794692689469928723400857025820514687554039241927777932941861650354590836236688796524217703468252122069674662013232470545054846029762778985513054485556750013134290647487006694078470079130939726343006817860930622611649451790398818023351768543046547579910401314098110183438586615244679435060601000672183567074047009210648028881117820583755273784781665599642466582436714576746012894184934863750405929267264318713769448851184570029355257401549904463878834105428498139387218646352801195943255585762502201125912519018048614966225985874678020492014875714095361737336750837230772937908356352499813966083538144585161653080530113545653247356282476663986746123659507185379056819692543294047698189645666584377707307866933241185208026194790752496719873915853040681692678809454715930467534306733038766682855373364469412741405224263944211253360094844088382425108267748573421273202437945471847008082778761686021448022058199291737424093952202980859725747326386424175026531145633997486420120587376352736593332335567861112163220153796994640003881337801179257843691743854423941300542652590628447861595167152044183013379697152349722514574518191118426840921551333165102681430778638305752275357840692157692410552043014299305821262451765583617683060650255278969869555878556724890430638528960094693835190650985050186583373627618022738704132872951490726355145775657020214985407084206312440568611575112249008855198498964723296873538641527212876342399699737495256988224482850207363330379013424358345290748841252023537013103547356744649102263510905096286596829579310243171273764424861531852209112372101375180508128928844337956930214738401597729989337603024749870486319461804290798888743789415592682784607348202422821399928456956736808849551018705131971763167400277034108272916102463169616796113099891753944569337915398014078774618060056125700242922526969714511789311895968200216068878001724705269601059968389225903659285609202937975636670971796558889591246370409500365891215767364237713781070664402461940206442203235104785368846615761595792480942601685306040588252543312349295620578955791818699274756390048425242521325882090675570760943560319253865690208733627722756854715095117010898053123154013653919620301349465350591302493361383336452402172631339495635286055139147678238519515761971331271764005588541407271705696646112048597986448125471451418015040943431947932169049468675679118385731970543663167929992395663958202732012561071506337519854059070836028069977769646872626042972928280534829346983563828017150897068014398072335168366239238032644500610293971529538340146336560424976705445442791617254968719073995623016867132236777905919434445330620597457527712878718218974755634188105611169995926027535178386008593913269491373275557968198965606391038751858987280400531420087564472959545730206863525507482552309449183526374065188184446074057281660094203143809738873733517131431519660109865101923863302723092341008383688372051772635565567242774675627278138137689139438589204819787983216307521547221582333573939159347551749216864582580788183636215353929237858214087426636263857780625360843987041393125335981860866087927545605290466960313266830360326447761781415095235772026078837568147142939434504023257952601624083426325627154457289762662884393173829915731048254221346107947706067832323635443022152797551829653720689051588742629422962348062055687859593860262048868030552249370110976518061845952086779744909001920476285763706151951988783833735445017323042833079664494018949705784856760817040157509514182156606734369345587699036372240465112533994716824915657917037968430963686858534668072731630323405082685345726624957035745542581842539039858581248305601694560973259331378105616570357240116672216557126740878029103433398821372212070068548558842204423791598562032451363059217123106989551437231775259380036023346573693485138405794644561476296482806734441958718623445867460143192837060596596248310775709219684947697580884637050090244386521332619092773653923256297432201517311625884708626900426068214317039153501877182476206196235647149168608016988728144197854472005183808326576168454917351850923073019278304398643446319600670432629348740331760792404773590567836858132463500585901998448873756276594751357811573751214821577523222737013920431194234918806833457291023284780775216565610530722209858134487654550731718213980329820890636931880170232232278022328910096835717358982268687053581035720835682818882090179094146568238490224576644171464125264549542214724508766529119961768632426511080394557579917258876207411360002797325009031153371646295621390101071491033012040449448255909842341108310339209382438422157219994880270114060303382208471467139578759509162439214829952277915664726367595136305935769475002600592190014365083102319715537420363061348617477359975671987442119542390226407640486568028611818246744474902464130198422695397562252410878242910296439629873541297033326398338133193095636023680288045772572783569786896429583406474327073124021832778751026061992056496268596739133339093939283434711900204174011761284119388942509670482720005182834255666995710392069111510975056549985793612003151577017890021105790073839592392574639762555059955861219480884558365464532104528675199795371606631668424705565274798866197202153444483346110694937919497380641357835508398005553165715044358878217104107278425311675862731338847970031039737426844341431326052116419100559084606378607990480535984027787019521640384046361979912142723753583574808321014471224381207872663377829090450875894617179897021485010372706646604217896348472418018832864884638591063907679826740654019451681773931566879294504540118900554633979201190545479673190806270462711854565664285664784182851033478244504987764539980861499911337498607495239107662333555035425660006672325347471243395069594015542244996772239010791205703127849342178964260291240635303694762500576681185866952148185228119865679480259885984663214338794499998939343568167484167027862601584009630852688511874873766091499309655274816826359125067407620224289476322592138087979856087959056295061992501046957596476382418376003601663960453741627381226557247942742176363388178361994311427959074268619848097201999579516568932368179135086766388289502328837071868634991334074125189944928829482988939086453273852710861812957550688103633089099417443505491413573884707827067522340269520247563360410015254116635723114731635073958237428569912865145226214144845010413999824524378862510777994423975075318374151784856715998735888304745536426715757090897361210118042976189462104003419417403239845185498656839522208248393957879554284778991818811113672345508862513262086380115427917576662002734738226361360361819868858889426741180027691628712250439640301447350203843359380122051904889463835125194267337148683071423307013824824091966732655634109371034491763603923952021424057998800043981213902209196245793508730915537959183389014440082217025126729062869480717023339252149801078328763876084952970250181329427556939647226279119893232764304978943642529743607837993089273712093951618704239669587512621803689932732744506682248790139634748406211724800977703181354997723871445616946068954548440228713362304645169341636521555730264615823413823474784540899609099028436416024471147253250292867985910005652270795477144604972474302156010754982797193924087460498318787111180301547151562125606139753465179905709551855129551431776645532207964444200247637700189407048542942687502698535160888251880386335930649408421652987367996324161561652800152717182704711099119945050108166558548510274695204586485248174641180339814836671935430881434202798502058806668424101657363323283003543372038430006934286782485645813968034041541378965255729285569042406701781097473160136489621676486343713889991823198520436715625309463414503578976143991545723131114967888024540545966549644320914955491458735762525840616218983178208893677903313783739377829106344148539293528071622676033343971519550927516242789451052802156681839417049771092598881414953539133014390197740193728278485404535156817027435216098906111948006450861438946115026343930816356684777167460687413816944305219192775360504853798119830948734481915896942756513738469477198256445454686126257614854993546714105914979447679027811581631571642532807498046719093932206974349161772492591405663502759819967312433102870652787433989912968693975707267338255839113650923810144856088596108529097181729219121228147795424615875820689295936834146576798956822673739344243959266412122092288494856509357414011546171529899347660838509942458617379978187301150283262286180535473027650681643022268497095950732475116201338205652082189471101949193452228768508144560561658931885386428225956332498470003218324324693180254627602843872286608465395326866747029498795921098216585164173026181719833968273734061012763752805566204163263936824111622803736419315075416901357651886222680121067683060340244186151644662580759608060733137088069409958681864778646759396946224510542667190573696502882508592752891473460251294804202163467976577222419008638154447241096294619310769259820319952518205833355278921533534682307812360364733415662111649682958342663421022060471639725847769071555148714396951899509813945052043552149151110445639662093551343769531903089512335074417783333418747041476889354005243564571222077041228949092804028182505404916253593578238788563745816392570738629466198507278269353714103047192472439211899295921551797217551726524787092719769632492645282211631155946860799055747778882609946712228452874123064607992910737020769852675098954924909796888114431691799027576781593933898144758383526966196612228640252453125151000405761845546159420719781805007490624837226687267842561423154774633689399700350006187007362333424335381101784738598207979849432454639096832520947843712464464907964886860654448874111423914349836150247140825586337475862271054089572663366377267133159124220938376078614021066296493351494836373420963552960976696914402657950675866427470800367714374787733664915857791522643400619268436699870892627665090331432791453309302918213151031678129979017470939021784939557688641000032968816307172697470592099192173351145188389401940185330861312510617490337139076150280798755025996640989186870849473561773494816407301721390558165147025978275145903683365526482277295946346401492944559708142128362702503649786642380440511204669942511325396123214699233843266194283890200005800337687344989245897634701379381402094133316425812710237764599569837434687574448467465165972695984187660181222891745129795228057578301956465930632884799726533308952664252521042341763521748522480803749766479257475864340125480811428924327187529400406005619186062884941067951986852120322124765795143144856778178658697916965819083367992393988857378421714156195363997965631966283472659920990686819100666268153708789014872859832494958919066580313833542536569216004253080489988508997774319381827018976662932243028439299005786747106764031805053364219380335579409557734381702189652057288130663049722406518981866419019619191565665244092751019984317830012987293459358884979754367941891287293279028014318210025007253690597772898036937506023165601486600032231362387988819751462214899987418562902352150764777044560793906514316108136567800783323870608105907665002841063788795616367599137832887034061515322212518830364494481597851861847556288757764447911641386475764813685176798735875125734300225013656727764325108585008986779805381061154759795673469191670250414967032579470429880235550905916900097207697688528698775526221901610887354706569610623904833882888363165066342471773711121410122639094363386188566961144110265193014116260729117661568124813760292051806562755978528397313273864212485910345053603564318367533254002941705432377222873425037486828241145133197933016258096229573518217534342180583471558145681982965665349399409941821381384662175279764127975413021044390941609533162908394732007240065227274856390473472912513615985396045737236977687726569871152110053921024972635194493067192621253684242146232672694654720358603683343735473710188144926769379208749339019930633850487476925284202200466873612201318077084069967710868560403472308258165815490254197377380913980293348972540389245176488456505149172104181565568176269477069679968555764330610847491896026960598011625018112875541876912363589918872925669854508716014732148617107298938444886137475273381220272096779716668884216689316269414841066585893456195547183246096561675634313265986162295787168740779348686206218900522523877995094043562627072847721061960271408869308596246580887079590648851394417690577573512580449548985358577697254453361885981365349309229912022053250156577735901953097815363200210517681007871338303753939218742369179458575718420892437086872228194564795343199488940420628792742217653428980061738821831537082034222036130885291317546263702142592511074327570839016478261807988080576572890977508657855382203249385300135464140757472923013663051949119374919272435267052425532890574477559572690029575827325009752804444883597806539866408578231927315260395792449577650279963025661127162846362695883227575329956531860534705332855836999736911863459978219642939361565379697884996914470050635861188835054462714999975982885585963979014983914973343852154064272912581805767181914866169913695301387891070476574566245230416561609521947833011278937247539487353081280063366328046259982919155235206653741034291507896613573937822714394211882437195595034998658495783239408968181087517995683367993495364484086706862749479929531935720566205225106300575746753206949881131136680368453095353750784481341186437861023603587267319503347855371273761398616390888415610150744028897854189246136366462981815335724680360425410661479733369802358088903899679312381864863373053281063615261009926535096473061600550092397392076875260440580918295220141348129986332985529456720230745821038175424970020219852758917922238771527131982632184847211396487854282121638421805017869061763967230165502244934703377181540733029706409917940988069573892713564741142656413660846702695915076269492049670245524210808568052125818867401847349820601224654481291415725289944988733037283759238208605582000395059294335173787598397511744737722250407936691915330322596090642649766941681756622685563634036219267915945142881314637237337031357805395659936865869798434582338496570612165174642160804285659493472593733798364430603581856943218502567142724900652456500711015217488942878017834733094430384831161093368755503568768378495888849215343736676714540163108517016467432140076142519064283349498303797914468030698025419646336304709701302005505640474043717620969276659033923088439809284647071608434722285626848069743637487910395664661383244658652636858767365705584468455753911083954412589381132768515347032165014527764789885953394899569039051128606079692702831596583147426879002302500564172338509562918060902441842822403596484353661982976394774339745148474380895633309210110168372789901770749728751537643339304015417076214383053770386415851758821843231647779826814437964630742518775558543090399050005208943218038960101258414381339905711674831331137695636900731524900227314008238675073331565233903630549553153077166754218384791130100676382628538975345532940882332068779743438154458436519531524417226915957806926032131829551434942442645120513845794110028231513818821708198983323865391421174329856835523295276534695699894593926699642565223531995954735159897502500457663648787046813583684818208772626983756888151004107613359882498375368766752120323097924432018186718448284420632356195379055424278837258643249720112044625732208316842179285561204883201133704534019603154010516887613354327674952337436798612004296317366691287746860004699035815590418341041010041698343173539801311926868122561161306036440396639105993499061733662207153050728716589798100399006858465113243554425171051088524371991827719541591358946187716539387222025977237439840423138920303046962713481365961690563137894275931850021736082427526758429507604932459867792344722226292509320900220050713563115628483065650809727082663832260777227998698629524449700770221167670964097168405316070510879521929979675329771440832736006710627437694265340820026029267392793039043029383788712078700316901028377004691801423296891880440218059776800539723133347013700074867901402372933963296883774761218079062870995811163954380170327773817321692542872006562622575223874797843314086898136811262868873458315762704444029316310149188977863382543616876020674101490253162225612590126171329178600469505741829919883687439709827311419040577358694553432621366837427005065552537437748178897089230203032693210380072923890096109213729458977825660766384294335155212279003617223294530069792082835424617622794558369306837668847454983323605955972595005700636320623489699154021436636748882861014135981651285516245473812568914922320242806004592889739061222420167671308998656418153967370326029599540354380919449374961451705330249536194952637843575450345318354471774138342512038495504949695030402522114714034679673481260908279655081007145085719100950861637243455342616504857129034094699018871887808299576395518631308884316904761260886649190940542448253243008857045941330634802493008613863779292120167896084866132483905429724829063993909527406451539097455233951337977377608690830685820431742434992677089647890228383142542904782289262072368328754593229157539902620822444114359709146530229956523178419576418176201022572185350534941884334281352353854282489315466227769141329402458874694314564143028862188132475069508137496616188348315960638300895985386511841935280180957646081054010820443553287433693365325261490753582320618667717348458564711028078029927886496316007686251288768324054739276577488152658637332825424798498201944601986034268490320116988684358769299459754578823174305277213739118691949760265013860782417558342619714187541372528941436929285020380930124869901800134942002689479195198363336768857770518545995338564280109321545196408451000457141814041393607758376608606200376412633670037109670258708957436969526059617590272349816456741058113870473079684850635023842251150415988549033610174358331005682580733522224730092364277551280692374292757464435810501094699600353947876577703286064189952797808019813451755706437811497503120438582552277441667553633211884182839945813606414596262836764002410474707540883465312676933567394624312801846857772156544399252292765066389835839052183817545973354653370079025567555811762734330275717673547157561730152504571835273050530418461522485318992608277985346160771576821445594659967410728364558087687224170879947991906633069094618653070962109814781755194221474476791050236136708739482089290168785945694675195919968891934619204367487887987671670266958116861683828352352233067236819197973308097426365777274909534802372493904559775023666121262906422808898044839293265944423057140490056818881145247462255460910962629923248585437853452960794080018038001005156818007322763118924400188821330489068511693196370934212800121230409161741198653823572321238164511532604841719283456080509403639753461036014187755505374347820697174823684923520148984176477275181822317417138301724709642672601841915427186421700503716687096293418624189927762672411614775718721403567513877047571851616337978305746339658278896171014337357532706002636684331008933308873376453224998427034063769858185243721484060830923014488120018603139610451580633184913380230272068108954110922599570484461534971509600081478688483319513340816992268987296977984410303617381929696127526223946733030485749339114261952219407916333131381798286381232374496595376750026095915846880541984338709669489726910614524490742301384249664303783189218965146915203344442365601024624197454850993641469458447281882367695860663718740127809236755182537922565489474364618567255103415295052219009914788731469739225698208020849162189797550285822339967455407982118059989207517429811257541978318414601672677615468630149384007807407810232026286433741583044393463110461318785003565395472943292506661013321939596604878101082860280111127777757408583364845973628905160848717528886265089051651954937012291608580995911916665287656653067014282169872673583328910224275251544263603484908263025326993656637407314596033471181770206636480790332422076751765196009491610610023615540120964752649507373907506774098469166533020432118046187227489838819432965484129223295286412293703483090876137926916893671984405933090117617408854775646607619579087113063206533757545818705909038098870609127363504422497963681421509852644815493739730803235582486292429557225223095896822515078314818788086228436129693911293458308701742901266840322998389877103651914076452650019528388353639362030466974982155773727417199164221662640971977232461591937696566128945691359239119688087910887842180799413458287259793474813915063027203653653017359133457029102558966718166375482801285225492639167159605406331909969994396409421013671807444713467763350466256372594258475568655171932577642317688075622596466693499534122851903839841211784433933310608065401881648208884217728439094615132787319975124448156534621248752199523728861369663462432336145785179377487021854985812262558122623223516567177289508191217911240482304199796976096854836406175672871246449199282218981384935715085674823139781213472759573740643307407729649868309529578450432535571584070261401246231345445903634874171458965602589238950437099034402963049343699066440886815446986263666860019416911518914011550158741685246979105503665797161290981108625771903335758202664274768199196367394731287127384688428479987478786422300777847622446818760449784131507899501270836743001754582169913899815196437913670247627151855800018176071722100904633388656592597927791262777761795590274734941866588945932953083778478467864943450350690228714668331001095840765448170156338868957720801647604232871549762858014127915358260347367610586909046135837202366560589508494484965405301454448214312563605524274623325687299494851573086458772537098047213794620497787431305029927405422480399895785153226195593693907481964120021068315728028453792343847589627112143714848040300688808614022884549602445700820311212832680093255007315077113301562944436465089350057090785356677592857575376337126392121632830934583180404927434649130687292863473143024547227521158022649405120952885153546641993235283828930287087734456454953195652408183015257534062895070170433711866490976336693626495777533958844264555312238984527599119083752372488324904463366977624364520708228623264440586432120633557999029279398289837485671086986955263291087034025376556507999127069004056712278339971932990207407498748039456506769775929354738233809429944025136936151657956655514939930378711169492684929760412335397974524965943584677245976336900409096979009156763505225599588915614083801887399784627990056296177026492993564475032834865162935891382449559467950004630460144886160502752706820839942453322853685900884066012408932076044707880185823994532438041035982363724776802824993344199268546587781148569207743664876583298787503083825985400471276285094692277213118653957547763678639940028351597480995966312214980467412946914855324316187530623341049386358114055088982087321952679148723330150473333292500985295912004887318043102785441717136831276720667644772672705182991808093245223268210872627514072514996616832626425250402365835898783044966084688269066167209712595266352254090764510856919372032981903375177928594785207767559396245794672267128954211142873220433517484963726833962333654009095425316352305266394658047175787172402053572319058039878799896054709401850443936240707659390481845423221524776309548027891228060576890787835125334604050141072246092047388565430960142119559741797256840427709854159938828723104302340735570502169032176591088380022568271497609479709324931957733183628788130913037102523340008928808631962788629197610151548415170360057338147945836140832524111537410933275220136598332547497429394637093508841382121884714290171858703229715660688114110184205545818273992224941377900573609345245474840174867696087599234462930398518990000004711217684429814994479724212986821947492593445310305053934726105726026515638483837824248041385410300302528780374485845382403669353514706313509346026662982069948783978008128801487371345896012104586346902853060690738124021535003053530790568746785142958060574082784593746000470964525168794474602276739332017540749079758584934686474005549257873144676299181614556311763464071276830050181329104090273943026020247465576179541315454308249682116577390455195307535794290727878651917994797799172442894382961741425338854005303156493121774820375157679859749578486563509706537227873138727357703705933161111699101367293467283696473610013244570627883369877766606448320181556653852732028793626975589176095154090812744520242034902685964746016681176284098603698116426732082065268460632113480474662194521497181510721037210200214322783373184342715114684218100367376809495271636607076118480876530232947455746751470747418207425489224005205877401160401808080139370982795654823429771762999124083741953350811479113505779897062458903075184390783738918210906185275133535052006400657326861546401165617028261966761251794344398621533508905432667556760426068835878636841262035183825020617114630812047230553038688724647986841894611447196100481861390457379939717189610003530926371834501356966507095274519684592397256148664571205148459584920220010872424092136775812852076571678426287285965923049679803485309949984636942452591585276415466445453328763876937395405437209370256868374757669376906861418058958339532160282619473306807445268165567700967567929961103243834799719972041233034343560962720628515632908279525186177475088663450201161837447246870739953412060732250953844958370973220787633680435837952831124088119887410541140582485856800125653811048524284133586982235736241856798791404675643027657520353750071818113020249259956642415137603067997278206349788631249166424650910860601603879437606284635500630348233648900015918800347286222400757481341165394246256947519128634163998260793452654392597979435817410440865931935561863147089989826393553970627695422090608296328130188120750534782719212267983757665038173028454763485861746021338289669091060956700350276061830549785684383422948994900465226538672807672019599020526091999195851482234392392827855337947587494004294095172901767157725517961920410661655532677698065697494957165198178704008630726967329014029541198339660380804967037830429907562267908717084750585372092759606235363165175710436176058559260352025696327447396443076879257672290444508882689891114838712618222041471109774229425631172603711562370867801547306792128071424121780849172387465423076593913679131497423712936231418681965760120252956822993991042003287866604817859442768872410147089396879136568557829784366895207046388444853290198139613570049926970846849244416886312909516596329364637086203408025291360880658270022934045498800433903616939624737127531682562936587577755400824786292999919017630429052002201759022122250709480202346839095787165683988531244510754046146525793706842400327248358286690189457915314254160108989027069545096423555301379407000581325952610785719142836636162635855363984896895447828741515113507738207586002823898975371689036997891609788178928692782679005755824181160679612425773864108166686928493965245915553181395296277503380024949876697532574138095486508150173425198802122540750074924100617734485469797210311311889499620459543321194884623733623129441953512496217855923761203923713822009986794013926650030116339500499114858206162569787102070289121739733463763188629260994742595615431804833329621590795886827779071173867131882920728262658631986888297842932286226801629681221022140633823241289209456084428159614377996495611117622010056319999390352592311131730999791133250884708103776523673756569675137157954124871152924560328389884662439034297747078101965419202981348264791007335948255150310140425387109894063931906652948093877144549957047001132860304645088623408310114286494597034517158490316427483156847238816123754128627137045857533919813444173874333956775300234578300303397836874210377870556623690224321754362948615324077837540288743613486191712100698037163260913867190185686803347878821468748038417955544223781670557065949509606115802254320415869775812240060424352071926716032536808184983437183281044110279239695191365517171232909238124508126861609552685318136907577045233664628628813596910244347529404202276960075835360036545378919528498855144404490841732969303922245380365450678657399269354792015059610534305280047722934667717491260934559565165762180768288748968852545237018259675548973480933880282578401682884076862530938157014949341282367733760036726485242478798613828334303218940907620481840931024413382693634384203390074302916458660290831784339703477214581791811804219243323081064944785566395189109137354976621103372249640901870019491219321687221380635427760131697736932535756996638541294448273148739427480262596432285209267315317979273663601347065885555065133728477034734299889894451471878911214887718837615476281964930145128072531186775366424519349220465663430444764584679738713126533983941187645107529736680486971596505568251413757297486014180990478090503382120662998757288056657425015133411086842853969699545791679378467497177244627735375189553643009570642353217667461036305268047863852388446521678834067461180813120949630886159156685770872864435476824155176169975638652735356388588753593110778125478369259052443243656665193617746401429323334954194666597303586276082208096074836208231967866984655272746691626850087196271529753189679428971780405709489328384253572525692962714389873769089248341237403696267666294319740996495760239327553082603635217613741649022373537379479138129767510380879287132799715357249391142382564982661283441654079951698714362390955364964467651561285869613672321499096649381554981133294010830889541976191445952150449930268365468444646548788146163291656101605130269867858448251255332502170378983517265717458097136826574629081894452162334710665367061234333969069811144500265493534900639777538964515709259967751513486190326327831212717438811964628913916661069422470055805053399402264661449674549195791271212071297534644685500922434502327482165959747652301080651710670952095855831777577972246399124716663269710648611462108239816460210617068429424670520774028726296186997085512736507532935112381345118012320643206382016807803200173356470737379858294711531177857898605605156825772120087140466947167358621281235020202099464907943706145034187771571100955082239380471363901821886082727349538068051642732331451878178251016072943367724576482226490277224920453485266692502352472514931315884603959826354390411590992025406183972141330754443484768299495906472148711192302946538904597900656304586892391178132659160815149319416925652672662241355483052995295817237098400052186158495446278216695881567294208616713479685436075594251926884493146933801548459625473912673030923605355892021707490367484503309151389025543788534840966625441599447445154478360497342898776053870897036382432188590110737823923043775645506817607460768563064127125538640186152930655858938352223569701106116562569164876012167588441355792973515502893075972373000960439452111620833089933151304693079185528117141045912823244231075981667639871352214993528105296868050323232261339525152727175950692775928223013464138558577470088702813388938992170376891648806693982797522877244180634233550789288600696922134860296924221701211261336308335947684688786919588174870576404674880706565084548175640340146206633067117700679386354807054588257726845884154352480830093423919534615759982791285836831920157245748799868968430159331057934208584679757444482922550978008600013480018425401335509508075929406262042726420798893417710170441542430279120221078767983828377821696446274968405349137801694977457647053401024972380932049573700592526652043311765113580504682109886334343769501058268931910103563667813316761322363287827880744669210824090488169216548357127859640424806892249597312525921515664511125867933316889905497055787156235194630973655208224692473731484641218844185670412007668787885656013391108973405499114472174816351262855907728630829504899617344147952352692664978924057222278846589756320582833682939083358791671493356170775497392141713940273621428330467723061494147167382041990296460504712475341299550645068269602832987881312312702717225725279933529107603293655812085266692006958963631042040356996909773486711138087707689149779635753290211594246952313580335031382861980895192476756094240968774411292641658595027457902715668404787619985768808994076666623553463417717431173703118035818926161552329514901831259805821391864281241844545847733158388736426107473055956627593491516937866492623549845867518476318889873668931048302069763794225937639784457605381657200825088887357124568278799345553378117830432614193668187143521662131278712789476959223111540203258773988759099424936459815477787419735814930208077311540946556566109196419117788712219242969769076185552733141480440820282248606618196451116211687054060526259828108411612827383565953027072806776451375873311748253379585499590418605074803548516335548045581488792695103876685681330566593659236768650936212397003888002545216627521718933671893705511171918356016658322281716539751515344855548826489163476223791396414997406599797246669330937136452642162267125174816894225528498138074629754349192519406141239872500865461274513304630351313132147682497756645284058475073546876727148648428011686746263277771355055132674893153358196146434292784252834563958774063337111744482801512422578911175237936469669767699469451767617898148152274627397387656911934408391639177161069980064449693380807732429804142086272323936067367558790807614367891874500987700843304522166911087575665977248731208182519266899818693308888769965738122631031319302078316433620580953317652432220083456445918926616784707870149220303060917353973114625581674601679633110250387894672021216751455663505652246662846900344760526700861920536010951360175509572605926947214820412265263986716298613153863548490623533040359453913222495854839439574291728751841308379840100557716089889654213219643980765963564374640467753192244715305194975752652828312907322675733514576601609430910385050087506147338313451074213514259827708809225597912376633620307162597857864017684536458932005892464482259557453511191024379533980280974824226376059598697241738466552185300579394975965036020262114024465242894028411105506603797778326489637813337200132724887003427808462372801558976579299560793802641433248560776415153141544492823228358732633547950931094965068323130703523262603476223252640715083688240163911184322094068138988994164335576777607064462162431051313332472827151457865905450282899227441267002741052212643697779517627279637978543024989265809611951902013619473195902565159052246280410724054975578731997237389162175464788322812042658362524904012082859338599907237446586728681725277751731687793773679576325039680594502679002124732891591490993495963440919014876881243653913036674691175898725682278395040794934879715177317401436870109894187652928917615529442493989758341926794443745866525008558701433851860423105696116895773709900597426218729306116402872273290057767110364788352884533376423838322337447785498917346816620775582731949625000238827282467340574183328290274889742009753405570595855101062575076232077413823842980047386325047594293532698799029675974203747938325814877423666705491960882097655679633919192388309092524346433189229401228332094698372520466893353495191391829685907372529838316591212574214903586471377768033470768493485566627778917797739201676992399881630201550201711172199311892623995947730640374574856497476223792323469368260966833750527764718153931190650694231783307829034515512659692206781922785177750193419779891093221079763365006214284790583787678371165356436304657403388597484700762781833614730460269916920869434172680120529882221962317138714743775556240982513092121968461920855306757953707877615251602997317677513705669678950132601114455961100715219677894828188118540764971946607304581386732844660934466561296952199760319470728995467228459838067313458153985861543803075911736699349538378745662636616810593671728851416712476298489302378213282055005830669141307549845453186332885758512032693467458869308586601380855634315570849611538722056345024371166391382554660869363520195826817250576174702966008405238567651559576171168636180304313055285804966104994784258907069643698957418022731744448499850092848404703819560166713439887696865567966033402948805085014202704667249845361478403455006062702701751193956783229858717267075681145829237686528804358614498991931729321412478927237424359818122762211538713830482738960908459511561809119648475557997876229590929653678912981100892740040095485520148540497676460063872156195828382604815759651753687124969669172598040452566262305615154074851928823840814567290025763204946576025897193286555893715870847661445418602025585718693436385785685414295486194568393171213046447711031708899078456264288212444510321553749524393681478283742692806084063400542223616828470038131695157671684414115635365691525309388488390091710809724549779100865849070485985766807995350702271742382680594306194084281511926827986223723389171695461351827326807264380509622697059598983556666058188625044599401356312497715364795992362738254972176665130249174820563131946631600987318521855572056271404179768441215238775903497002326544475812290915248598434742177200005858049633472615845320449027896407811701962060768411829398462328687342495942057655640859373514012834568967082363706446033235593196605213789094613988842267024079304475203560184070285982835350816551330585315265571695785273591994078387228115228442791612686413236290921718065258256054144639714336629026232290478448665236684634570067466430073375151408169218913451089921438506078679296817132949019714565306640305908596285558903862020414951383127545738807015323798848774590698307030566059703468018264289695922078195215265434004273217264184146422925682687190907962348892727479055270331699613424066297757141883597401276960579000617213700267181875116839233508181061418441895756450413944610666547709477152899276430849743366023277887210877321513995221031492056394267339260771546758971637291450245342912534697864741241244416363687168388348393136938144254990529523664481236067689919656520966861503682601631074057880642935164783015796089285450043056240651859507278801929236360790633900479225200403128344149814114340144931063795625280364456420249578327397417522012451352360190440372542253535319651824797308002278992682479896305269882526237185224007207382276473447563576114961944907293857109552002823416797100169099383630681524764713073833967866330013465070466336661395132909499391199152075442681481896400122544726796423831888254881387273796910809130989554255075964480647945912857839625079393107637146443710794518018380177139335014651350268106236185892183122887504007096552120629699704130037913576279786804489241145959689651242636149454201760853889258976260361686261032086722971328546228820740462437740630932541729046637675822434378069228730377843065831000670629383560012534078704512719015260793530185694131233429459414021278309250756977022904793821056901011386232388124522011804970312756581107141233588199228689757827961095699663096689618203172762309411187844240755178232747127074153609941146080375477512169328288595830253494709720769922964210436423998909696487580211489534083099222686977827458694152235389023424069746778104630386773852427640918716728882308628878038407892239024511846652626018273413921099375845019752659465020840803164374808074104276458352511942118527060833979711748311769945557026760475106675036915117828704297535732505004731017535236935833046833658590794757748316830442812539173242954118088895004356796319817578262431628313662903643748745375233948186330399667644323446607118785578028814779445690631114898359133871726356146441738812147623256477310611120298986792388726977663338100044501906684731448969908131376020911757200060681598356039010301457215594399169174579571009748058787147042064381994510217020391610130155085122582473335966859719692007282160237538620939638388102257829283420892110462043403007166067890781088551051387421467278524845614289235495621919530914166293793493015979644623496440334317052951067991819009919890839028093466681865167887071471366526064428649470358383856768702996946435746325707709172721962790916411233946852263075027031466956437254716715346485791542232128328667753340298779631868362052714863941371276956437892505329735175527393987964367651530105034068825330065345901413566380560489585920486153849327494783917073635681442343447936971311521413553619119679414828657458672426683499896920998017522996883705408795093093959893882695090145149245819791234828625908889614275504882435407980358418135482643657785506415721374651745828217471340075365107987903913580516275427886267658639180176912999202903411146500727736530414775332019593483050597932408535030641527736599391756337544110939616650268674219101277213730557437316120362414182390577109790386701645503858199519308605148914637926495862486283520678761932277620146946130659831842453473049208224484678068588596101602086607459082010293316052711975231085872477720192748487756029104088570577564120600326617438384951600414650108574263558254040023274926744168144652825146210626370662499804929507100815827636299674743812500080821595626133490868628891342309206489883003277809462331985235165021084548296141700721676157034793405927550324958291464310205144367457682825196441569886925847571199863524483405809831527465222669881395685814830217093545346936109637956804743420932968278134167522800298282295899923508828094855567716091062556755104057438703750533398113253363480871796636032834039430691843235439768548917634830634150763720953823591944644173917392021780719751003779878775177094348104884091202578934775298034274799491327273458173827785503956422437202171593627652434980953535653077489580539047027930422430736121872027926711913162420767090002991259125982543987992770465216650254638310161047227299397384642126333935493273301950130667307367626550224761159831202143261259240091256070817783707203681003209203108582377763003968234840411689336079392465694289776140079618351022894107408118496438286434056240071469109656391225734492815704449880761936463144840558619424139666774061280998284696349226207279138272962305091629527283334188368056255655462601503316384017780826849802088099961419117875535141587159877874887301248001988400738538617416044179212385323712808186600386387012313565713377727101486693763291872882173240447339191620873820694581933690063182780958022399788146516566183490333475996253793217288401329129143261966297103622935816938718589264155690628775264698446391050890127458825594602863434561016751135299959721402932099498310283749142535511880527156169899512777743747567771497269269953514044444949426583077233810883497956313943267205735998460320595659164697625562142602633324157495427346863942663893900450419599833397187787795916727735976648861902041068311847939913327470205290702205155398833479770725981872535270053879245706482924262759714744726198719267009130258678891565351444019843323893340540701800728609350889954469126756569202472944345191263491019576798115191273244462795119079035676918307331221796125178606104000623590135646997407006022918149972876880336549759063564157203069402404934139038232115695878911260793999242981222636028518215525814146848437368635992464015416445555821055097347953433080984851923616800271370273454085609194417926827592524193139826265842712954393175144062813543965127266293309532145312112342058103180150943006636724495958339753477160561857881789945826776645653799617326774133876363102766431096812600722954199718578567085289080649225184453496698404261840017463878999019889199121143795012242009944494763584149901328679750597040845493611965230907556634524267185547596560720260239104054467083402586724651031334144486194542460581033894004174293762056774220027231408065074472659104461014597305384453235999184803897166104378922565933392102839907115639579556260680360548501364892561336712733940124446859765443453016746136670384583492102591147762425552478755766644077344265645649992020476781816370901132736783593406677526058320814221562724893804497797521593690650193300043285700804279904713096228924491582707435092545162624560984069135839935627499553368377772796583577101702645961577524160957950204334242544180023561868926843170074681788691770314490235229375921341227918209394513796640327552905798909121502564100603451489175153480479598727921099010245124830643713106761791014682134425623290120946648157026361261005254666384834759280441289976930946083146814931692919220390208358871463539642786107178444906496398606370866381736355890797837346997530785035032426425653869025727237348047042684725939302212816830928751987815126135754867882944190731374119635314221938885074619475936052622207838646818640190755230704032476097944006863061410485123245838853096084258233138320100681008344797935768118938300713742462643685943437510886938196662672849600798083122818179452911789133210010515146703155625910785878597673111483305416618333495586750780577466552690965235620424803510602557578278353877015183217959134997890413963771349497790465821362178079093745730188442819996634204005999437601595181993124625077342363283764237016631515357255392622646660754664614882752026724542422473189631965898817372882691310842290762965628386964769792132165398180489150254160330146754197907232759341521220395266006772029599650411331999811506763761391199585268836076821650382128243994973309278314552270882350944060971715954998534478722301582577888752718134626869670483018226127063535753038638436035136779916686069714718404423020066886087666075769479820986983402437193911690273472016215793434375895350589021820524253151846212964784503438229172567594392589259692890921837611035170616624633962544410941048566429073051754517930102971655673979130262916083924073446178207970517506353130912074531246129552418042055912617066891398413108041665819611718914344774434414727607170394818490580277471950844322362774247738847604240464732493505735070677200445486253232506009392557524564223415458317561492276880601584673318049363733145439248110181547327220673376959291905516370336961829740872688109199758816749663839205125136067040980378397396075407839706541680366915127104499454910912614720535342587139321560999647990136098127520647607810875721116717358671031442667721142082111784610850303803378468851736422238424929612082855431527825627072725146179889758237270131722942554382250170053573751269393041082028372395091021246571907033605993840270122791654477014996308128507077176092851419669608902466116214820652620402846509890869019468242269167113804309758432304294202375435138753629533187535738120105458095212260551693144564959205773845525146501563276420994975762883790519200392727720265927616269908082680236138897553393726108351318835036444804603770866024516998142995482887826969631402187899051929592250272819418469291395644286078142336195013355127869934857667577219366853921716500829482427989756887582983743496619995831354661710461199066512719550553139741737234661979372905003161410991048129983450935814839629202403880962299874249610644044431111077595493010083286179843449502864498527573841249911182049193523489378569156745878319167418300809671133570853149113550409228712327032819240715456705271429612230570213211559472633813278606224186659760493000662023264834456410228420351111133241736799743212016122469651731243709638305759094041444711810993213211447245906755783672289972699247123858045697601164074436123361198226183028788363562691973852231612355338247458489792120661030283301022349424186716936359433622940260312311322761310834671053103590121491437914708299000103007802579348913869076507762241879948478805641613076938367569368535804733704746525748158227848219987322977040968438811753956219809532035983213740789368634500015724074329582108723792067751092257201527172004726567098210457637815986536674598931135980995767197020370531721051298822325196479296954701560010004149640755034934185780359771332333932126721058314932582070922988242162453435350908494971357382362529563134514842914809329718425514981156711463311763063875714372438869677643348195640426064031867819837549485620017583669401669279584911420204031893780158295721792419212266945483077804954028326158474978234198341022710952108816250404288659073320058364336995796117818203107776599012447054985193877412933262531260711313037500135366937862520021353033239948214305815334827682564429586243568933320644433616156619907173183837326797105037331323820694889691905990000245411914154619081323179658969970762649857526881890604099445742432946095621140503730576025979428792030619928004164844024935556320641808302222926724527872622811597009352160135809843495719190456840070068530308259646123349315597048021664834771235024691069312814304145495734515987675488332836209275835873457811295423152571165323892306483636286784647182029062514147957692647871078234697281412712218436741720313792237167147398276790303001431401724567439331509064606635854409441050348003134124528430048310029013349025236329684681597842397583349838448880713148825088748955353245933977490278556661390210750959271434984907044591986364538703452911267271401200284044350772205756736637237782907823843798128152663534759313215345576192467275122467386337448384175924657373079333614054807973600381854420245942771571952969359456141711113474377387052326684069373708299592370265372537423380356273599148564296881046545602547662472898183796918330938028848116333373788782825760816935402518159240527941103631255590959248733623211145964354359978278198007644730213722168665237802350326709211786967818866872228482552202323836114720930795979522200908294826388337642918013535868238313586671837677064475712443741858390961771028997348876812128999488962732746114840190038366260977177751260619287372147676234362800659754175227255828135017102475937657498217633205927105999628124174281201736316847184713285661382376433157848322523115176842434643624951154902205643474401326016206795657093998573906160118786472980843480107055584626942222619302013714886561435303320237858077772947158431878673381796546365659791709741660800049987132486542529886742831770753804076141737541236272813514590710481766525514189397234575216013483747367853366669594362484038834635150577179767667531570610007238401337756620035220344514617393551881688444083689549728079671851958600284930934808473485139730593674095186110569916023496767165268819213538107417596318737543504842297197314602850695143860880991305293714993106717535424449867974427389811568025069196402984098527742083257695544993405380455898901557640214451505728174794684682137174139127408089036672285139879823927845038503893135386306442135858453999723931574356872835918005400496290879525410951801184274158815987815993171074401474461857524835176779245707738433369241611591861531300562758276554818212562950995216052370520015748708151880559195245217012932607059718045667238066520187446332645833671308666330575531663426873511479701928597109512788881344894191564850598503567089624434296558281760145590113945113563837818503617735777364351177998065707984106308415477259476873459847235326664589277381339018468951910104594181816087315456402376402232003645953156195495467805933956905095059684819764304814016679490195989533832782354038812100197337329490776034787829192043418467865373988968786302885108813209750490015559341087954844169784125238421821778526732582594499517646959671531031788036948531933351597640318965178228251484261406409273521257717131671925803846706984975842349964200335857794822076358196913845984720081645973562012922762208589480040906070043957297457918221141331651949070464719042714783173642801831396008984479176231564767477684743239146767331305651561492078998555770664835103067946642951102246309205038057005712858604352590782409746196323931198036419144470107332731623300639436342250887008850239027034043928277500984354915508611160838338931177287597392779849112385341885689954248487049063618605270292546645645795398848708493908630969922809643605961859894688145409170645076362907184006086962657130359793176981610536275069067002702895820157347045232043976735746866020793309661400837142507409792080335564435384986885553426124883748346908163924559068358908306272525489472052046501679419066712110543856873777952947699321279964779927055071504517985627192521627055015502628926051984986325500417233471284571830718477811908326603655910424541533194110571333803496414802015868495527195975229564965471435016396832577114475289865013551064498323490515230587343964549220095601569297992260009458954223353454016190508216517985014408196254607555462069536375602439318941307373222111563969694670480521679498966367501548742986082752973910041104277613832112322510552198815133083999645920388031659731098843074956006004679664749566904731043102683689952214655814205142863855828813491004258425653969913717006988691458897078904401202274910994635886575785806993850029923036902849041227862013836775372150936067393801941943661159451962307605263772165829037056633233744991570152228758880421474425261186970335449523045762552848595019707068697826523039294007126337652099962239113444545528764094908306623866191811900491813062051238926755037995734150635537134528734181949923092549439721932681537893946262551304118855929469725582886278777326457005475186251221655028109952983283401235325893057425038334933351059451393043212645900633508495070311284193859085831970616808604330487536474936567591578331804089926083148830337604075577579353649335752182022280470757869400505939072017561163658654763153259329581215702647526194385078794373321707537294548919970892087959447302822972197926083048794235570786943116774907357319410455960307331980772398979096553798756930390512507512308506633981284606756076931602389115662812356452511210923476567098552216029646431281766883480164533710997574513959948026314777760118653255927909789403797039795935724723519848635038989367379451265877714530515486176731313753355641575350523130249150990663853501907610689918966021906446110299896149226265383447899266627319062270078878840739843260059320762213817248705464310230477846035517020493275646209740844411259249269756527990525916668933341343219147636091103045643449548043072885700160138941310623774827352172833036771806168274769911476517955058765336633936701017625757459802797147979859445793295657512978130426209465839184282076928455986093064720251182823453206743541302949236551648872872052479737857431628494050178675281479282695405795890082352586167011566234276228777087403508082315525537185093133020392064554911538942094354405514820576335575359112551474318543962836853196869864118766241727487770848905873582264607337629520114898418096569359593235280604801411354240663921316263448173643929467752067092816077179869624807684159759752374011594994974052023663338475119226765682423837652525581582765089679797687493661813590498793941783569564975413471019100476074545114057839368102160220091102548612827029874939879447579605316988721417460112163374425111002595275257085449737999257889406595014557345824485434762941800543830948827656754946752664198867505972065670618324332953588226781647132835237300959503617962212520479638063267236543035642200288228357934960438128878729204087934627975738348140297517964177411087379839105463576948390580264651141284295013992440641918820687305302525478661603409588593323189657971651868245430100645427754347687247432933263303617123164790301958117691938758900130253564789866232424167339286608575777335606311586151285145948019511464959936709250763026428090626459856783985041024441876943831700758268737119399909538997460011206708168701660900359689286067625368647689563570471942481983522186705866916974377482946278063361091396249307832489522656162134358159161904582233009676936583715767738113109574522428695450192112451035027064194273722617097370425828498919842117563646302271002078705543828614043057009751400002009395149457867487011706715075522575897112538014427864395133179299732434185980443419677080503121913990090465472841342756947129564407801028522650266523996959390376667975220780717713257721431473586398975296705889766764333683121376220614978020001862326075107675181132582420433706981881816301172822087286964717479590883755616430280764223825113027680451104411606459540846724644168214767136092100440820175770276017642734375848534806790249060682001973542455759607083306516851280575502189295934112024431357841938400759226314535487895463279190381153131092914034978236725950584559849062414118338825551617773768701174809601045497235542155498028833506070806541997276078477434080574096468248699451787398997107564035292813378731922090887862395372818094892584585243787191693531210770082740930451702909062150201229265079355618069687797982439708095618384067737223979842655362711403232702894365110351495651986092205156632461592897560741969367934240334699800178034397465911912892957136263476202071127719762628264741381491802118384702745494542285867032287018127492495780556001519278221493501413679432702633333788613034041345075969747364913006455950881672171290974519371811459812878347060463671581330166809380502959901568900627122100245161402008880232547668919390311403017026690526124096533809189765493731768616208618649382065536612233168631040234928110258279264509668652728893805827228063948330152722715672810862899067040233098040933243298353348317858496760219681425992761489863876709504559119621881113059194683585684792497750716429577757056166702572766692464913861454569228542864098770951614905535153817601029605281016858530929148487493411666774717827448555648164790285940757585425639836667375828777858980445565650046440035640933411935531554705624940452943558022264151664949486245042506907800241389810639639650900104060866056599746843674185052512474867011508857416793844656930964865013499420714908749386338234049735346366561396043280742012085837839859566620387692763535538516976360107369391174921219990797825678339255519974355306207538481077324178210550614987788650872398268216892656901522082758102317957269909611076078384295168045135585748243776104564540028694355367430762409270161444775392817620649571212129119819728670562514496571309468755008869214913902138248948375767439135885454142871249937396684726546199382100702874956843966214104312559306815794383153836144977631343094318586056487150377670954163659784526115230392118114977243879151571423110961753240743494030356802523299955247939778826707595521592134984368278141736044589599702740730808356950849028484600949486911279180497774053139599909113873910271116338759278421791382266154171382534971172746585930981698497390843307156618796812237172429226697865686823585621854247655606971312210512843877663083037278755879958085831981745652741262228800695298766321480276187239749073199679250930285284003240278685415208394181916220101647867854991042511088977969093368912680014213252048239623717578112104277936407452784501335405136497905653404163155155416661107328290733752236216609253537201675195788702119415988247623987905715926865422595242591222007767234966753715678848020112647419320687893817290025837085296693406158604259444577872992290490452123071379340250460054335424215772051594548311753110788877289198220898614572122184513599995292945917574969545584019139608375328486135580883065467099716216380719190969753464886423760915755174082387058524920897918738964212136720023088140437634827637362901979779541559841324264902820002209581419524551372411836162868635879478500898609605123953684459055461088407260282661166839561231116224418683651997347421850933332703789223274507059588990179634239680213557935132169331974484454292507019089330396731396084922292879215138554583741323899888954244741846258116658516531680234831808413118483439740351351320185949576699559238282237262947904159899534111802001417530356560256535739721187386558079178240438854777781520672627083336344458976078473328167737346161140397866349744356122412810054735663436103347423041151470962934541216381274685412765404843371919096656336793419584563277119525641862139494161036018635334976379972038951738716124079643510669747788304106327410392806576214811557991511488978683685668436502674875568937821470758561699284853297387819197240496504154975030706695427350595947771178092247448569850538663863619026795793524671224464769357478862923131327996252838068549953195839712082851391639333974333720060278945175846475018256496376898113871403241640733111225462437296254293435046311803673898215194754534550448544143515676364419473321838116387806209857251442545363851031627665269788679844228108437020704173397341307847824076669754637174851773434307794680858382547673071181785733347448273005667318975319241377860684644844030387261389809078407225549248767317523969794758821733928164062544312261248334155849444324162442650843751333396632634743046947147874745857755227840755027100880435551173276927604862314501810115772755606570926623305401794107821005552967712804875249978739170072967665151234185715680993137629568088262324394777910028623936935455019600369484471714759527324884399097876722607685861494214884578150133160855252199944400772951226975460467010095405551984811917081449945722609120628961228078023071569560669773336316925544502732688540701880314884178931396064449091955498849386790481905004360389162799772124616804784076109125982970315605003636760674313926258720419018966806443328508840586776195318456429764869549842065545527464066576181973246414162884192311660554072771576904595880978935400676683203222537648909385661635798762688011017048112260190344291856308721409144142732822494696981014335898179468583421062576692353808074401823328336727676319148086191811907598511443556341652431730881827719686252701320304289121300981557695385080094915779248764630374132777298514281943815598757617116517372353325599768466600654280727277531365825601698322175567598438185845719852104167232001001268180171176002555842086920907155133677694188048953152357812704525119916113604160563884621734357798460983524672601414552898056061471941473335363963426711643706065748062662718582235169897910359205652036303417272115299024557341033993519547684534752717741593583084116881567557207126921930526672739893060958474447371767053572593002454067757627884769054798555227286890302087391891330058861239097527344426613443754475364188865200041613704761201255534393321326669566181946409918136494700981585486215127730716107915060117475363427178835122638294540931576039448180026534984147852373649023166326404498893900008422621143307933500889518859689810971292483258123768775634130329506499144658318313004358299838880614040053132656870727535583796019162564061934416806137245044062905698910897932292342915305070181653214348302289697898036661582656698858822386916493354740114623429603055925111652679145778901440697691235057658175180910717029997823984877263687491332190694864161758226977745970451923510215310119479573700878315359953741776538983171883057799524219434164951753055144978043931785446094808543591999195093623346390955721942384406643838922652952534207397791018904039665125222698897809420175435876249380949372016017215216720744446639326754139568819810711808072026094634816770883713482031398946874965730555748381428239958240671018200859199908898030248322962231290977395209123607708039387276412751122732532192517082464055651605572900116325138772907290156490812301292069221633125883986524569579959451175573264014256717196639817717888114102845455679770630679977505899082608877912808014502276449974192875647724371920479915488779066064304844790763398571815195002948604938049121035460239098134958877793378833434789511890018066678413956675569825244974817956587013284173014079725491945917568562853302011592367414942111426256353739429903393370791015280869933679435521212465303558821161614597595000436313112407122071678005437962186059244421036508688244968837420867704479268557211654890489210587756711295215889868860214935737436684094668702806338860168500655898367765683997073330082617726712513565670163043741302966668905706156655218495661553284429900535630070789158182692289173654135803915613247774310721577677598939021545101742938648643220548563662781099855941193633997273349297601311588834424715414930085569780459460927775493726510497443106578330279135482702090237338837394627291529455540790297957145533072181118383127157067343489230126852328136770351803504948072560718277738327921813698933465670557548618426860150224245817882907206472179581198020443208410214335797929016434021566243172198671143645641424999691357833617619156575149122432702495353009068498436255160723646971510627759321113173654664548910257850710988626989873038607888608597715685008801385993561771431221240167374031892399289205943957556460244587611541519289759731489017637749269606687188907707073328195951045236698509928603463765553690451857635791458572485116432921133011884088026732366050037588489751546366531101286967796269129609213943088539647251077671000139165986648425998244242952286034287185296984398145235954783709745423142014129387503141576283924938046669023395316107844510085165664319057290204979514789934837436832588807618292892563504539350101355666455471824005997131260798494639587447233542345385034480720657147230159851018413742027074288664562288044544708671165625753789366840630916163530181086551468271648157885118652845851893579160020704762128043760332461151099900568602246233793673895950974337836275627701601781675558812026647603869221576695997448735059909792780096392494367068170583538505480314847911658862518545986249223658936613966197308967777093649081808490811836154719530779899136115560510293544321628545675954298290642678428444401357680728739275462027883164022674133221160464151854174184178656610108979026079957552515474895934499631368976028488388461569952677096437878663063808335171240350372005437670249393793036824386084426346039170405440721764403978721750728210081969715887650385732773376155579488000183649787412181899941977126909141648969587685047842335344938127477428943294597531276331022158708462813980382554908524477218360931599837917764808431899346409187657096866439504097981238822787849727585085172609206348877580357763082167721205952657996502508966879797446148752066104932771893093826947528011240476196561993885561864294979777295910206643744328438250721742199723593145141684600950394985617346134535176266128249903076970152419159700859414257217596975568272865912259653311889239064720249088676796246478983145235078269975114044142413579265914247999921136282310154355392112558662416879839151949649493556185646134853372207965298550903891352777924955889206490170214506916100473264008151965802083646381770146771967515498942304704268098900318690638304200631406596814316643354170186523654380581939169018348637888467261543079881696563089383885689069496479275874740881689182369163659195342433958774120217654812394533791220057550838356208934653744535304056182124676273767048472364615359357462841910276495994769691267091628734453319400781791750899293852460594967805341086191554712482728543891104422833191241249812454251379887508662650646755935921241756472457534755831354078626694043061963910351286893840467916405951139883206515765310004819800215988391211833970965079335504746804485627554426996709777159129978390427510294794362929415973601149237185263523732662905589959498136413035404334698759060397258340905104152709790627052455793171960001224336827792236809557645391593701032788330640767633160978489237688047528115363230229055972402603459625313558682212221838699842943871554994181976694561600222600936901245847289947059901594722965423570489303025820639657889709450485040191657116469170640153871768743197872364934404173840596849198536855533317593883792939310965492748953189712455932147573987045390622897138285941424553554171030832571696591399818890386744977057101944013753114448541320965454137452712020069741700461879569756555447029505597859669564677046378801764107257580639209915327711419321287661354571850087845390381330993430321579580869100420642990321932751813347172853929346014949002383583537892346924907258483812497345545334560477815645273125392707840837418727677409720178739270236090231702120282500455321948267183867426928177384134261083809303498219022735648230190995688760571539000989521112484368954856336258067820955989655529555134629552126443047385119449616814726805920196256853629980557218075063892610359001539427924999363872996645515674145000778190915947593034752750733360473907795496288960476836623746976252043826781028882580945879514790659727811819390954581243733577960721525894015595928830831757722268702224087047433059128714128723840343019786481459081528618277087782850020063719091581160088365732203174151688606515115167960354577822138986906286834137047249798962053944420929554906668927602663109367154469629336033900106037178427486786903648296213155952859076586886433273858932158521216065319120780581998206435847301911179641050383885794688867273564961321138861297043509458603134439878548819029168583581605224645175582930052937529701783604434917373453416452048358796181985719931418942075287504113848944891191785208765975036313438601002178694590038424954144707458440362895553158069540314691679002567232379691266717792795979083320111178697347956478147381016228109783027638684982032508409812338337316604698617595816038164569945870481896788388847990867260565367574552137390618001458178593080097678206520850556611591545084042751010080452758519179631634521610303577288341721069980530040747720797329938454801844188982870818475122390932121070161314560541032544118584020994886106481438808368568585417918462303738370398332403256735653438764404049060965148401171808357844146676076577422617704081192441084167944065679951742226939453782872534190515851211406579330102704876133829457861696045176527047374959930560894130280520972470523749574923199063858051872884081560349747013309120674380271229934939899610740274421682088012285216095446958901392327335512236164140569206706619723219022496059004645495546602006110931394150631242002404608290146646536220923451027044058786712253870494814069994619118048139201714081944715860763092501014797255959925660453217652680422756696836023122486048767831175577766306897570060205254043817337557181926003096406953498650207946832307151055265759617127418643922745527837525980318963570705341546299529172810039573212612492965513917132090593596426023944624947472639894686738241152753990851416472842021260022840244879319706066699991738328805254785559697468675490139301784391636906028955505950305007602378191090729543579158620551975607505476786132368923319348683997909560072775677636906844638595173970574453271429131828866904622671990073324023401981427378562211407355085422352263130542642125678744498108929930949071749039180806409309525306169959561946719399848317505036142777150822119680999562806901765655325828078267053053741486593679739679416050267108941016086769557449114936678778581294681373984048330215554137099242445443698482619338225311826792821346318061582404732068463078981230113891420311966342588077092171687999434448450583759180157013748344690972334210099749696069557773933156250356921269355543756828153083576090882370387639228624977321672003506637737592972371442645636069467490174887718051342415056659299586010375053318017899589113837493765101501704049092028769427010336110246065085572327837027717019823529071221404805708589842150761006010466762913204625868257775250242886112210984593175028327721188102540309885593692687800819867470612863629617424725552941484122091146746408637160003645533768352740006973674184305815185777863604294900022107456721794508653318366772109337623667886601150017293318289885864874010114617679360743898627781776735572950399985167261909558076318559374368933047685298738082951430752180612787280294739849538224909858509205725065296161789979849872681757190944419466157713904067391032304568866439611208474289151757613672588516662082236685704604193170620032889771734687708147732699284638735899548861775723153769357374738159747252087919789190500482320594257038029873820797971400892555687906236257298401287983836174831467975240350058211109998574808643682092334330449738242599471786986943127126080200105860492785666745243473104830597864074308235328646062825790802445437601496757192261260419855476895926994056013714183835084523166054312912820610982719470831495196530431090360855431507431666393615086202594042778567621299873996736352091258316725399619079959042083012711778929090617549033324512061345600601001739992985602183328276560305407445311463342528589777108472153902439361338696775401128853702283697047306543921267018466513401306360015137181576357216367879759789802308239643369582268370202935242765968716478345721436706211223227920772813783610042017034143689197342438004672376996102103524960979582116313294627133313262757788587156814128102116826726526342145652862928316247157909948208092657973695795953604266965889301459873127484323009587979881477450182634130549244296678726132909368415412651657565416353085695045838051731398307159144010905134210839226127662470118399380233340529781496806043560967453435031643987025848795444097007621193189743727226950061665065244596831165402300424484219364280921699264630354849792088824677748083604098349255581125615799078074314227338260202540968182635996019624669168783528202656151141833357411854691386560272814624094576988066842709899095528563947701530574077556484722688439633493287844188912992441037334249289091500464359778722496158176942195603663902542659029995406290473097686959918409162651502339188602643553342824183786591590044418118549087498039093453262263025027102822906174559995692500439666891840123608492477873831991046716585436457541183144384367627876325057644742551046165193316338106194309187333985878814088302086846369025209325212999066154166109820619247379371809572781245071561843938101079380958461601238474965478878974022892681121041108263346622201503728683847534091439694708844498823384386128444157128762420812685190653565884613649641477268552010863413832258494122591716675503760137170246224154384735598705586584254639938196808528806839081348704063787965464312974474623963034077435118768749295293695534917445005512386253180005715731479211200495714238007454824072557078452818401698725128388087682789651055232669148677707870978166179630068949817014270578932927241691159014604534674864461207032576537531490401576071788679480772435623655189078831426366751899954663660280424616006092606649251576782273903610498116128257208008272696834575951805426496302442656462472155598979726390763780898213184822566014984746158617197779151136400734438876269301298715135434620756950594256433414458466891328447124338946087634642972190699491257164634249902722805486746067764300770993839555315885383554332571283615417696660709259040189158533333530591718355869035770224628240853794241967984084746379906011417118190655000912078173689252905498492282297862021055626033118390976179758073324745806988558075311726447752473694787908147710403983138346324413216720144314247053509367448909249330546405536583351150478612546401233611204500232511149318351457840587844637006834926475914828361157742658476470707156165000214536378368653435325166285378005342230943229336304755393388116462258732000810578347046757416771484634981627987645592987699208776642239189847645954715135500477283986072130113497645150720419954500094195513864876864718175099752973710807673940063133752749963813877500345937940049228253517070068237831501514379994587229313909845136341118610481915507020643709432371939272317741782650870237031860829138332329895827725965727489203454921219617465095660692514579761528734531672083822049599950319701338404869238626071703871174342563658170152930304617450328440645911918990974755943867089374820009479838307350325707756180268791921116879100759342632018198491553586017931055988033702512383644867286791282350854375210504449678107179617313979490086222593025097301431320277275488697004289061782201602775930459927321834119369989642065857716394074303457641967842605484213520925397463948170988750495499398937156730231706839007974177218296604956196305646571189850533277198344102556791294649273526357586378144254191114020071420669260039357104013932825796810349949673604255123639132867114319984232754820297214155726168759486380244689090342548728040520585632072729693750781437423908994754068917281609413692059918634175307673062110117373907538243277387464302021021432518318690234396048250392577443767269487363374606651575352689564276692542168104812988628636882595350472923687031143658941941698378167184255444579182978314169399600853083289591679894780165043219052293445020534066021065250075559119986965996734945982977043924109291539549669822146682990645659732340005714984376070467787304526569731115937024678670330427272224205412967284414137119676191065418723594114903475456322953982555116497259702791648747749578095180044326255807590770103793239311258172015825896256168192204511702085757315954878885970609033459212449519811247809060865182698171977265861118747135396278536782218051308920106955949811741302815774066101725718657067285193805336533370658172658065295079355772731956700782244013422651631623006020523399230725757589144152606423614051437235723339615512297274723420177709002923443096060118393593023542532830646528178215746886270970687465090239296477581522357971030753762585623097383482587157096870893213809716322791440424583916049131545906227115129751589718027231968138083606362921188748028266815367814496825888479433867645023193063642536279299869538364017256398969972210160456273609461596533958261110880635797447336037823500703143920007643409621545627029279122796816697931569285435468394897724827655515883668944609033729263865277237864587777670996232651447168390968698599377613495015974380706884318199690147905245551128846309415607996506331363472707633030762074892087104907506435495689863695368300456824601360994681485252804126504889956430993151074554610831442356883309588455495222670259281601888751555591826290368120933453766472140839382582867097207404781825277464773462460218252006588098296379633882551377183758141967677152254736142907387118495364789721190739590483287022070387301201898602339796396636513048204933388959583186168200772182344656051296119138702198100515174849137699171363639204328008215342233753204801293736504700310869239428183569891251399682714789760466239673056268401272170676158332455194110474191025546646499985286584412312383041758290411404042029581501697647783568523919637061414223932477273058728583056877620467376335336781037040033438015125798849766942621552853459107145381845222578044474369638819151448041173861831343729555685874500396324333016864870555770396370787623694221840234481613587626215151182812647452714501915725994687983638854836438561241128748664481502974595548834013886459668342189497915188614953893079814232606859633320065976382553812188213788937408477011274411284114448505972666466502767797893448648216216605830373453292466256168350506716581247985423824407640310183275906107951346894261860116879909274468625173637266219152642817091312969945482696400508018713085510776990311228827525505097334672687392512646334383783829432745222740876113126398945011834438765970749192277146013822401163304115506408610275496547284767544873175285162662448462658896863238653017380502197119084423304429329557942589849975654090401004062615023421334036103402698762666064473068373402421152089170375270059386152742932685872637849391810003033736809314274577252274881485763063212932707079034726409328388176210640240886400981915861209599530213758626585106013520408434031513219538616039665999111106004351912305323625632560114557660973887357803757225306916850923076597544642748757866469411740517143488693722234234904786611965878416337615245306957539284129180845079875563228802070238711772967075602053868082992266257880088373078819468187423162019760855178345776783706525903684494405775976114699176614402688738197929542115657860716200630640000011804419777848709810904286340119513966757062362495817399297252002995632569274757486724190321825051603644794116642550100774928045502951440264771423492318315395465018934059465048442063590735007017605554975040477842440601032123409852553984231614407791748153666915753502511220947188228597990471944784766672247449982361772703958207916993967851129590158505609377864277719915020942479404348862229126254226972583013392903096210549151477528423474204536329460462233364899322091992824422198708886736209695754042397392808360490052314258140724456476527578550876033445723493153420902798666536853159413929573605868005670935837588808003717387724376703797110364507163894631247234491171436610789809037457827530653584223049534929560093018469300729057132161452796979490166605489013595085885701285996427112500726796443827856125907675030259535224574589467989878585111972307729826938003330453681133998840166387121719733654440739114412487916405748185912711274555918145600833606465352668363464706731717270341999437293590475655179984159695115548158016660944407566851199843351814975083511855418859099628691588313607421635904572225850688447187174098102587782189750966468747916602360791908537878843461746476346983791062931465141962307824235731361357756402621109162431398419496558394458138798250028718548286383821387131628032594054199646268837987671590885663832753868900340889683382359005775068043951828317297454605743246490207467631055174032686114698736401334932485000870989033457664006087618356607510390992344691800871396535555470887674444326618949035234213765853520203499104592827574054286547903483589235878237353991407523495327427026266507537639572776886773971509986156966005594281528138495558931695319214478075425582567732184106171881862077424928768097929227650719138773501079761502749373753358026958031589322100921712620312515094137335492295843809891183931079595774810029804562570980572068122173688087634049569971901056445868479343339477663428040748813612153105882465107790441826938575700912952888485757062474576321620831769112505173225122345734663540716355800179134895354010433815887034108828625080336384979310397868411236974994677857538033107382079345174856929393600409612705764995388289131535042935935436932886190759187635299728445685234734328833639848872386699932309556647038161304926036878179571569878662544056487877515133837435741193745007282244564767718776562491445281988269277312034259185366611539433418713638465566718608757103163377373872373690199952700219400272954658799167655183853315360597329715055221095690063060103006474369905999752522107377938281578690644001979336029616183508188078020989827176601132450436303624011437497241749876143765718263344668031085107188888944907953254270125834088189398857614153664596268770330152231051620022121501679672412370318517389997274084085833971553922049871315116528218004073848935528430630273193489141874232764033166840964767457001451844859272762911591480014957013567496859377555188358304866668967716578672423855380060204837978943879664741563550449708030870117113638758230935085464567117726801345648747763427980194911510533091081899422873214105179077783938328462450775868853380188970632740203497227883058915071366956977797697370869525725905964926826874242057138454889560576121416765249038799181694016863319297270974481062817590706276462138874028728283782068025835288063513014066766809289137527900988107534766480895101726497538815402345417201328171556382741006675745873489672412429410168910001358502597908788864694752381172275980469114327080960636719770677035427876980805321296056372104436296887380942960263062925103475486941298974158984794027229200875839574537500213818665754586523585134421319369457936089526842988762111749781005207588923908296679707887361711278259045564142774012398025014973433915471037894301154585787491851352522401298854101594429726197851074345418643910101953483846180756562268802731051273670625752467783837833289493955833506093304356349235875447039605134418525681539084228006185606382999063093993747254747105551124902121884412939939524394818805217068461766835538384979139140782063960249904129351938059297473731983243242541298889271702848917214754178563219226574826670443022071079940616614227730749239344573955012121647027129970918668352445590548134545711275646190123542872787746756575157776740568417004852533770728326659199569169874120412699675209064530032844156555486442673973953341007451099447563201475359060743656012422456091519856464338417924948769784766560451877989390341695927086881419945808583647775302249913930375422888513102067096078965394511274231789632649127945113269985692287908503298988444443907699662030189113262532727879792716528446501541017257089270334967447923063852687709810122539782060732067797571967450626183696444868851361541801737226777811097794246117817573179845338029154293709424034790362708293316091497318194989415071014231984574463266970472124155693174585298973624195803542253114205101420103115643549827662723860934594459538070106014958707505770359319193467475323781794337161696620034170427122780447881659190507461793030694046446738325297248804165539405232483753086961469410093632484214426128208374512531369151115235513004610037035147654551201595892220062382521130182858307147724660073507456396822659882108074026127906566974333370120606080554483086425644332388876338030130783230199364976885643633074044775727740720824971004442092857059549608425951694473008805827270492191066990715762512162737003267550886117555840588645035921843833174243093766820536642370550233913597631079899821946310339820374301876924600009608477983672428665788606889839199230138857194294666000350976229898203136913159808650285867406753721775456440091800749158489734254639876995880522356586947464958406260602465657997412683520833534031072796937596095814261616455198154778408649797403642884304463434791067788615846175646116530595316387764681166181393597716927783704664850986168900361441805127761872859874052486421426985254378723899347971488224849734155001752656681253221546437534649815771640516849815898381851374728207568136693015545769892544388892435007465056906449176150112683121945625715341743851124521261695567016163205509738255406133819658594104534292873989864321504143089487441684460731620740404441514684152334305026222195822868538027179451303790931206968403958262677925652083748237733630339509597183354344005290957340878153903268886964778739720139697048862336688670098997851199726636018406737518242945108861404868518965252505305601716154743363201911823495354351842333716244703836921186519604597201228033038809414188103953256986090960497673590646959029254501978439104280392584835681701622128112525687035015282290625112974200768672329595549575860754414392297403447702499306061810539126467786501685422837354160763703780589156688048310034770009335578042769324583616996648113458680494689985588923064628460543294771413612122355685869709043686395400544767194714250454414932886855392706111142202778800546681959468411498339259869245877813805521468365040166343599332311234777210116278197788376897356453350268734233526267874458086985664621008837442494877029777697400680686093865175613983726169268033426745709437851329055000300108629461858938328724802058760658223559725756596274362451090282479107709370190918018613888210368131356683655401305752100035857767899320190507579863279615577358018976121540076204282549690755952053471106579433512465983494814433994623294775905264789049318761996461959340193127892482219642674065732449568950710849330481857128338406196173956712010315911907594508424658465562877490709702759327256313992903886693778819247725750367337424222907627887708114671903193391394501066260501204323158091894140767036635364280419568004233526825808891781911107163911845647318752953101483905981303571834980731146659496887532839404632639704143271196515281054981706527275488950084482045430888313205086369535313949252754122602373379689402028822664345456644429010841851527775331929440468469491605248338385862607934422604368960875445724937313811342103624748383100550952756514129697428546221497162460615855501967892342435614336185799756847513134025243875720023351726489212736967096866528665750655440878059075401891856392812471769706544535464540649818585947585516811673622946526455412378487706897104933695983990562459991390711475444370702759430518769898363760711572637219740650838734141972481358884225718891034440898319572989485361421542468998616211195594851094414518726913202455687249006704776226731576581023581121129597322266352420909926400330334229343948409496748956688148068438688800708559354427781228788720740779229978128105872269567553137820401423154783030645519201248270793515099744680157622667565432002152905684701300488346195649971108522966246847567283686222838527234026373918183523525533041375335165480588603548290466919525435388059347036247817216467834411231113725956243773554901470012300382136509818243387311553061949757178181074149624405304570205917189792396035366738026105189035181279320530303694916236061475839237172989848334438031256993933945154998076010343778855350863885552803541178007035312655087703481983153615075835292021021984307630800757785318804045549326647474684163326889923539987757535398078519825421944381627409191379936476611906404398099113006810902040057578918743540428008469901345774867748290914799580866457091333104652153191890304011437701150508927572010086289075102383699850891823589952086100256842255971516815378402162244506404807767974010566508402076485999847649272379579478492396694670429831502997431807129342790115543196563050216993699893170086981616985542168664012972500842192496169724645535480244989518397585906192238477384204647472065158735321675453465595207197494795790040712746566580977739054190250517390771820031485041050782736180010798724297153177305057876544023000379720880797283454028859767910648845677506907238653563018096536706746315531296480485386288471465930850784862086392513221615456898559729484838932087290723593748185027925718068733053177013981654138628334997047240315842781865664264989012731155042099566444465062365697406524885982251662776424110870902736262048117740040340814868963794066674891243407608975468059173878480936753526585177669939078735034592729072492512715731754850554052806370006927603479152028793130334762239715716751973293233000266316258032794822010801033935271269424143983281744994111914907969774157865939830027473153972073870007311157248427791165375239385992679505901173281003722370525631352517446176664572462760672105616329419989865174385804037680491855454189119588229254832722738388643701562295332578810690820851441970801580060170576671793586494380781270392984507873166809493248456146118596685282226949393023063030259810457732628003996590252158935028677929971624811565381238481859359804288021603716104630221179143491241227342554948395383344726823656647139451209838899250556670032877266360015282839588860833294497150304490739554666949981203016667457932713090297000480654445042547298747217906956291262009315152602855306468257314959132147528111338397065803228227323456300548585095652138110228649711955924607113426294696627105039595811678731381718200471266012465422207628294420316827128166446492235221761913835365074596308907325567622558359323175920016213539801909611165749187645449326532190403434171464187804982581188722108953579253607729937820005769879811503729288138760519375871046254230151696204918612107233760920569718455859328232754046923156098541102198190348840438177511643564417533036240498287174028750251069145640490335757046065267989620838010674560703056193631854824704413842406896934198376248353570491237921064662933528962898824097484176709444012981273998669165451135830222506579813622830970234692131446719487608290173319953575576271686945552594519374875349713507290723215662951968827281194577655467791387761878882163865808141626412980172148101577187126631927166452632629574726370400763365456950519078366803873716621830808678565692358875979761164823171916748791804509712727790195179029491223532577782809340907163032525262119990522978915406576211991009894607314234285044432492640970987479091086865891835189707067687507492421035974856086758664326211218399355968849410994993401556082389905834032840376223055323207821226382565587086242232848847722287354922659942840517818484077348184401572971182557550357053755394707442583651547074955084435970079177619745486329911184571219214067459484661472870361630231773777902300333114008775461394611633790223309278937343077711973328265226120494583259811134015866794971999652106987156474829059997960091047353368255627435990875807184920770784565636646047938266843044838538418740841404390184076863544415005421246242241839115790999425762003331643542463713013268622892116974801346149791598060796083875839751844151288550790683030483407499960892582993228835678245262194183153481016650077318742786837734106829202077121951706670230762933067746581857013303708338694938729445792128770417272137647228750633329728815395474883325537273843059420050368190539701718060143982827218415856937627108426111131267478664133316989600764275261062046121331264357965227954359283791660226851595688004866882970152565532686681818073312306213435970646638482829219653719472180699613615590566733713454545004920755823644183200077091162078947744560461666872264747271464272967481722290884773215932096960144923116359733636668007635604922196206684186072967034046400502032323191503953194998736381966039830260902278822422892690886285742447481353900467602715202637306099039445529007366713041996642960341206740314419490513425070011196220174703313345423493241910327379442826052299025549465668433296650373643264409338435359293760465667246061414543043086294780939922609440515390502401501253942777941773345087521280802474694935946977727163886232705299654714862973635307879462513942061816091701827137067790546650279381527380760440985042959251460989393592329794335759888218990991264354720817889337908248556377218553486894555438403929853210806836127441407390283672880730846204445778305023428867286398284440359698259579000734066845627014211649362213863596590858036910494156596280168951381970978981883766197594498348001704712618211039432234468028586569144102862599197539491885723381424352274378047058155849173342750130968627350856472625066241151745042478579603015408728186866212903203223751310082503606547283374648803529189484803010527613249483918079868963288151994187298476217556649445071377989297587961045773038286889925656144088225421639383177672329932605554678124010122110370051962134727793175440400287020148040720875190927157921822944277805958793789856012085206999403857883585486813517249649031983129065353562889173288902323224355833813217791685884215266970287475153055373469342838188722707124618983817590327309761338967648083181118477780631240023079500453560353560119173526944372424162097745518042001910101147876891932401719295521051448967139611504734845370476869186923073965329446844308932164438950827934497647507857578530984034105987843059791177298439646703803730281944515041817357067352328486124094706431267304327639010988100514966247462701479452862627996014634920917634305751432313134907220983510659166361810614708019434235521400762081447268241365299610465191734085567032516985187833894561340291957511900026286106285066027837429830902178508738641345840917757049883513615659757021116360750731810597853295401863304427977122719561768777997637854821820256850382079192662241256501384922728722671015906460775824661482588599732037918466495753554451477366163107202760209293359111992500726137195904562787484226696127764968404730397728987590288984430991359688275875223638029045030690206995490268740697224365799315553718221065543903321996244927761294347282752867965961334753607054422361998932466408690386477627385304685032736261731529763796812827026853706131300691141829075908112343615257734509149013195450125935165434873324494868486104115705416923235575922609164639141602134358742102122591123193136487476278337182495433101591940742256562390302184006594758973547054754242748261322009201670640481335918165115907634772122728076263888612214989762589595798683560689700152935011019429795578297338570412354587616145775848548363602734726935426104349238996784319262132717432827624616025242489743247556457837263474617525604255402255675146351029042992383837575319954472567363251168231144601107504417101482682141290187682934883768885884665967927805571406836274084279309391260423298673981172963142159530170478543486705771008305921877006571858527088299619950330894320514115783123481390788752923401866401708026038775149828835151835710438902742067588205683432772719752322540589954441700179829672327612743512332815764957140822926824892817172193066775747058524316269501978610409790053312770690050706972689379074024741004741136137642752411050820840413075931771451358702799472386589102243525063489254160188019492389419175085501537382470912810806112345947305304884027028910425795075813335454515047042611030754477322882628371151617899103652005292815575250472011542954775593583796248056549356799639850352520346717676888069241347233013905883168748218623053274422209820821677458892367333198664425296378675882077464419833322110920631880420893439539358546926551628181803310450478346760985419628350713457514625184171658724999887042549582402038632528119542457771147834097091508277923354506041785084343184256173494833043713613252473725024667821528700194749306712741648946867776650752767474632095241148773950073314506584839673773427477462492705621543921835430148248590515670257889879497646176603952954375450432092650657290993590877720266668848818360483096864853099640027236941191954770616448769169660653528012403025713185064649383538298294206048445702144475098782599355780884770769189451069299573325233918384914164407764840545615075499875302055112638915914732670967121363803028465955908987421860071880944509705249582722820527512596804372267655142543971053936655627314813983536661757253463111960932354667579177273485450311469176860002191820953744341988591704647725844845981634713840355745284767811298038479866063168346766063183602698658025658255880803182163536792678427319878363147632882882213445032325746015108751346777232565678970126482212939731458376264917298331785769814350550177029146804103691275612873629635889057973479730123495165674974471939995745638363687858779539523474497426151575243330851561747328274024422680562225755486538107647567406234845384637057589879520609846232049848304789376489758355906147408923691389609293634342475110247359556809850278631235184670484090528196932897220015361677832591137619800247727140780690990973198574412822684017664855845104306537737998503837254515643985520626154294966623681122730503198106703651512463945036493603748596837134399103581504821991208006649138374845489991543996290861115219457682004638936947968646015353029746340457954338317279928396480794505239320837184086777589410518084729991303637357359685868397952089688282927287616339278994648244611075501222135842603409634100465849630162994496281629838132401120269789010647755248306163015567401141987436252830224749903950565378163527397418230490804982490503926105607759544148084049544715867862860206570099443345840927141352983163193997693631975056637833206405765645601637777905043633286288293963503634822892472435610850992232558859692299307679959163182298353712066866634618052907892598871035232958428740632060751456486181744007159612479072554809570289048203367625474102416732979599265481289455574837992040722482243077451999318569903060679546485538125270942292969203135206575246373461973259505679151153760866023082104645992172573693470680748174307767330704599582717798815082863098662749279347157249129290440402610572891761920309067410373228614379739722700463058426366068374008995056274192065640078324952540741796743224729967620956524526357810312477443571273420080293017509484332477786936225928229939612439589407921494911276171626252736215325675647674816034979528416592943089851650265485138339578541529857614782373082348507377192263744458533820653655072034636350749961003994496811330708997464407334744669013154484703195149067470433664531611396357287340960923881213705556872510121060978726979976605703405494387127266419509481373381348819680366406261447340429517888748609807248157638372348546845147357869567248320639712868579764292548297707614630016506519853042855764651743257547423368168527540329046811228318871268133091208394381395131863576938974040310232046932655726274750188792321182405711765396537913448766943849322865486960646401168750597103388763904893410759742918511116104166192926238160114335244390604008479432383746059977400359936845036548948596756421838641576169716607189364530645170097999129097367493638816389827646029731137703073743305085511054351301285492803152644777378495545361780008273673608808589183486696541405882475948467272778035002412161804974263493173632006635583819787361632494979608160474872705455884548808538066231397949451346280010698485817073270708708165726533738926216217244775922745143110644955442308156310638252941123174890268022938620904934160814092737156803378268800983190586259927704760060656715395939137360587025244164054227722676928186349009267555920782055358548704321074000311484804342763881926910432869374942956997285037926455742140945256902735260119367441748834866079812434482173999502688656449046330602940999583579402233944394898471731822756482541219226186609886393793291127155047929770727683590732322838438651054887328602795240422212077372392832171645649986082134457503152203886330959494833212286265085396768531674546838293393259565355367942953347220446507919809824608819943776209764402062340732191128583163740060148246322183559343344930631108992291356449675093939250373756449947496924232987730464499485823754216261411061240524996082738484010240212013179514161426422478680779837279729720523403323519725151745022070757521154116455491090943268457946691182903944279616434227298408915834301213444288629297484064007530585510784199822256369868826860544826997733993390411582116701074719021403168860957974531446007027219010331504056212616861487529466204890682893269664701556017093999086500430210575884849844494810032103169561872231608400930307129741627393359026189845787450359493860254097067654132482157557520573622849951623228910668316696387018015936208949563803597619659701880070537961580854843675755228242072385226777615691621448875792460211949998914793543683702973041005736289813198052398875433856345411590596231622215070325212419909150390340656306600620240287254712961265633387185962462895620902352593824538745514652216225857776584553990640661755819697963990112467333577948936053549298403634404071819236160937904914113365918418392464622220990803130537586500895504346791919576583639537592550625426253367814984306056004260810863668367829551574273027797779485805982369785350153910618631344278080648525034246823574067879840039779703413831454213885040929235127329481439986656968522401925159852035538636611369357953816827837301783298417017625340653523535366433614500451352662057901066636331084520478349131854255084812840392262510729426513843486653482596413915609284271457773380407270792878028394706080307578225485810486084533282967430448856310745776478800065500546358902891913492729992456933209671877649211294037924954929909580104609520899560226504038344217048444969249357496929320861894019757419948905296009322748850907768054798308258693790567376925261383246968921661892625998399077585548261464319595740121795456526229599449466487588827557463343525455468046945205620482253841138502716849237489388283361784896070781671450544214882370272742838683166206190141259812244390010988783093107185709991234208332281267702917979800950152301170400292005483616196860422946482956622442086198764252620206737293279481062178850328069285612151407569708474419478232467721575556086892659004170361881881991672572404012498230936913148474164252971614185389144033850433705601735982692686674328534546989322846759379620813771518708771586791154759524692923850629730738753146786529773873353863939800791149324908160526164108153317398981739430524628815767450970691067131896247287378062998747044446712293571696411141751802971318373522022671303281722003279690632909524339843373498431917636350597361333481895841774654359176092342612205645464106382678790320328148452706332698431253802784645180585083877876390407007969748066512581607928837587796121481106398187097099990364889074249366903956512336563675716333380278344301274986762925839573213454714622123871599762670506750911337289386143661597797471759376155519973287723371400224186327867423075006459472193756467262943731534796636217805989198035819047928587069017575452633669865108959631008506749780006741195416735603655716317174445489852256212877000351835910946638173613456841461909209338477542129469856889627989837279481686236872826931717385659175794606876462736255730618431045850161395555819537550639456881408566775586656620813420958139489445002505502709720960058891407231840869191259350228574813538660611796254660019782100388084515732534164992871336261214053189015480449954413180654749321003247356240722321956690846553823361434982877199792416847241970745000774488721265517362905154155678932163011868863980778835649964708749207053389689784916724249917735929098772407590259797246623248755733744699959508945140129728126677939068577022904594219920737687339620116063718939933345393664091273711904296655421253477534574856825205382879959108401564782994132579848426133523561479706991852724036235536538992136086192502720343156241484620642623847065833793754570455896507890368380006420293214882746732347353077245983474349007361404404044738494329370752902372212401732970402307410374942610274067815130664795984064507828220035948707729417076742685217859403014141198674185315377788641331448831223441528217623043966272488735827876517118891096215758082815753379758752366731048292300905985117190391219829938995189918837064250428188632563596795400851383610202556690117921486646030166720215237360488958772306315422953872902754783146177761149512775861779578855102039479331340622205659388392969011301239120606870257455267525342609757982199186085017940436670620435928189988743258922333335300166201198048781788688347162129879100326015454377479509503889774259363211696059897359643550943072975168040784865835638592240171824628807898478948600895436841042564911330344858456540167469155318545640324152641717436758972874909066848571398709842624838065905775949909921243357705751167834709322478772808566237677520558211887743615018696300603162636212359943941323299058997336787402476412875931842900396774498707836525774917902036887886672763348549540086820621197414617102244304912233642885213397620132229495090913503618212811116429251271218885662871926666621520163875692777635036199344381699369225163248402251496236235483949213899689304287509964968963736950182436925050403221477320831219794265605360284264915766177044276529119265463736003524401482352046037104671468222690116698089798743220526835489388249271243280509683943791479157617004487284141330669406610671305531053533269723201941937640637360669425465018510426545172399512681016808123419052733609860737594381170117930650243631319298696332776231950175731018037155510790197999033603430723442342254833549912497532717090108213712807271384285299173104691277237525012528191878726256878238163479208900693447654566970987366973897947294057979067180229536351124203027356346189933903489824924495165892200967938125757899956030482267311610028685757486776168986949796094617189644010678635171434094507961669800362551832889113519647654250920109118765534587603695612753727509312459169397502109475205720743828732618475716442413097750296598270918275011027918237666395983361111810218475915336169635644147690251147753538352488872249693533805632452519917230423359844210545446441701936067302197079603163311155391596097595155611479997044017019115568176990063881956853476263685023900990823356007615550384705978462010796989214491582215297668060894645997682940515935349120101588043685195787228804067842305372954102055795498086394976618565033389694804374190658296723428079976206681916501173698281276587665462746666865849715256536204937981958107682354431339285523426847837350647159331247067764497427262666342309334224391549296625660908534331720505183396430480389242060509602212253043318058925506517551090608465020132173276363846246826231587686599590646408355810036667707314428489704832495112489842127515847521397349048689409879210002063891783294505045561629390399200947843457619077741086452591159391975258993398992335219103550906806922405576615636699323611602482495650220404829479345785661820441815394029886165322843292229334897457897592568744528354361071096051498667851639292788884625304144573661996963159949627951372396391029577855374511467952099340039879933057695292956077784897847964122974102628891715724379487449870447297751811418197815625002743150752658814159570742994478933535892599966866218660195971854670323030294509596377720296450843441585081495025014959716823417282279888624938654229745129523062395901923258329835839980201898349078125417257619911936531359762217801917262797101245975735877537661154327944565315955371683778486576214854796442746082719367874361696904459563460628769765062000230005884425037058369147372526563747017659042248332987956564056258681825589842478916468216508057895085182844588297847180838722783080916760020822116892679667440647181707333790288980177947187198521746610327230537675855815902255635181905864915626019425877415410043269087072532294036695652306549631019515383715029497159900070031301255693242905871463936961298834216324212535024790497472276990349630933072589998923987548580239928209335586285216079968021411212825561341014557042653545570883465842083158320714229869633466822355744390843609002451747231895005245823733123236667286712577190118128277944599132813836951347563128386243869219268229609255805434754820235491447717029938167469797440311793950576028682359138298839545075494797103317365234088899928600431998826377229591300623776836049192817921982085180607967255624594187937977581071429977089703886874008628612777095373443507725097547382391912696240597309199464977909254309180300683155429445939947212898701109648942665450492515634004381282550979907084839503388189631166229571365978418038218302492524088123406967010324217376092245307684773911391768814703805990195329818900868133869977108028163783738668793339843383177805493002718473757704998999669329684648072873038854827849703648963794229304951698987910547706818056513974317369779681772008128939159027028983875557908876955903046190369052460610907122970034207298874221114622819194543415679260472575570645930129428566893296838018206147876761730530126958312247204556522688768416960765360808376630216400172420833526319942900172165214421576165971540294634705559150958453662053622102952577643168891560849769883808237877651443744803224448080813539715539630744065448246366475996441556136447087959533358905275012089760970568634462919038657619439710232343795887147662953199223667793613689134708788586139503559212163198529563107397395767275326481152574380008579458852208634802440848689789832187698938562720861308526620994692912537256058527760924806732691080896463417479623020827888729222274227420675318956478958690131088534260561636158896390986316364014252523903487473238012191078420461378404153809088872533416507000956812592594093211758853317721949559675324122674346175233262259078058261845002157997811506076903393981487323935727598572235756599095405485845960990939270521836255409246016935608988008337816269027915523055018158526638855084909388891968168668766109703807936011853489075915207121918507976965330551624086900764362378316787675032989710523156690291041071528577211792382610491733529010267504195717073053295928873995778672183183015796904238971201559296058922537342825293978368022181353487400171020132315093023516455540154080342896995284824049727550404680085476588023830312605254253785440671247412333577684233809427885856313393173045915402263506139045177951909469163039974144777209265899297706766580330141833753889949182031428071400465978685460182617746499538862153797950827812995104117664553940441562198614732094265227683265396132131616774083196477481983519750229046395734113546871920613032111778278385435302203484878115805180455954964339992705589339113291003738210387295616433504918450156529675814413016352078921099678846101643737779957409787152074775149350859262259420597600341493391865858698171670409241970026367692068687395587197123213759018563815298248675806973239646268934451106250192818668966289202453044929836997918054348172231708366119716714468847357451729788645301054218000566333430320266777651382141763112613503083055170860674054707360003643308282666145512557879842856459042290895154523835193961502616040034130486370029867275807594685457082808593994527203893624392575614847757420790612080131610714242563949089704583966289285888360019224995439814569119513451611456831056987456166458650276741106597414009678968573277948586561370794629154031306850882038216097392724088262902916874846592768135869686981078718690777684685332242215051319429676697652533244530957680933233684115698715604192756777183885107847798564045487592722276651308543343896207780999904711306354687379442974226088833617145398869219386522866700136178359521362530305820140596199070358006346843101095687394724166106216271248361967172330337640291258510687310300451285086131666981488685094247100206603450053893700320020314426884356900065439661148702304402361506593980936114516323436903196099713366382281321353067268619733060386389212574977765305817045601508142503491964049459375303168644005565440858732045382968579629675643919520087478744225584544937928092517348465304245386485919745717717705537085314701289579602710511385174992401089633771589096057960284337140347073021238233714478349783142294841128439467428498708090240075181702404430803196278198826838610311569881587875240468531450216104495359901031569597230754670950158252953909716138735701110555263392583254016883831317721136099864384263796426890656009825799934355695512864416997178263058931440704657586410040375777566359161316811602889946968531422212157628795237770095453475614410638422469213352618367474013709726982165424367872606100449071058440854958969544745357570582867802669033402701768571717026144379780659053468923234222620553927299860963779009754513968736336258334731453805311657632090542398421483949424451310661327216806435185618827371579389175201836969144648575980025866576801261409344661890717959389162254520587938878481845082624849886369956476614176934493212699252531238165710473725267469695564675601438641711182665752612115146904955498198083623461888339794605615155284564135976928262091423947486526964850832425120038846443187840862482335240357392122851537745617036893787333396483067413211971793667086324679560495322991446542470447014013464156697472551685861740302144041463635023488769782481577695138236817234079358140953565763278594080448112522337819498018162401649812378813949658325843013900824639477395571156706209558956290039739327213146197860919600446359615400307565775954382098091212418885396101014882503612671807603925241729494597037253869618070196897921227973152039277071318814685041473167061663755454449741294618688719778300820442300702211444468973170927398214115313105280995826887639776933268825813540798349379624497637381984976682652312116089255962993781895649999064505737986279089793647274715955369758989261572123690473688331944265970738396835763420068659464459218683236799105075395910637078707728929318812331194729904048376292550570718519422385978526147131980713393090592634326240521159610497061156834638134376624222954763208649424641790695123779036685944910908451937370223484657079943342052372254036345727891236710543632959909082810514328331631952597696528321802115394816950818043878939675421614898615083784741989390619761532440946791656705381241772427955003008766970053241867832123619328708451036649872522912042236159550316459403007250275035006885405531170024849955472168643578205184142257535278549689855897666448758546724510713890027307135162985529484820188199740903632293240377657373957433385678659217846968813131694086004851623962117369826937562234460755733840604042097325698344834694319817581850726805101597142291358698857732476807553922846896995609675641431096168497765228261461282831966352356224245011585179704416548329865254754647996222760570405376820603375552502791903811549687355011012408977814757545669969108284940776412797105182687328353809040453920018364358959470604644871016599076810487418506069421020115685894155184088390965106472860800395082604154452998948578660072236405537013593074930738368482740589223229933511179807479046732008634565410324611807855919197992024797588303482930240178513972233928970601458910082582179883243952793749602900729661656579933677332566359035284713361409875420569867792254677870692411679838153806904925114745794541546157345123549304318638963062374904224967109956599528194529194614620206989144842401777262294946524021201056530546073536808632831466467940487404158899622846070564636449053578168471365020830945628802866369216426412660017168838092806824136436948178707509635773944051913624943459553116076540799237302028453970090064592912311838801242894811125480315030063385209805900632849165955709502053822116225993052028097240529439337884657651447373329707887578371190717112298501274830082623441023880530882280991572290748169388608863012901917635893497061400271130392434353165147109549689830894237610732700751368658827938843686062545813605953607289608976753277778702939202742739896472516892069894873367414254813214644166625922722398475974245057381076712607875238554365939127209470765401981971058933936602606649981465051638774356620843315154892283528777993457756317105286024840004008406472711827342296778036032447732616010475199284812174534234270992071076157696445680390507874555233861759457437918608014438901580378152705216307362280616168357716479151895059680991311659246495441583657326747363186849863614209898314622325901351699862231400597140160425684477648893752734448789099124913907275810690906594400174759836250948498189207998135158102646691717299687322385776504288965405157267914980564805100486185246458239987459846073470168908806926254489466784425994509445979391855887741316683307477727140060780727712829679257309174675520937370726317254957959661234344423629358086364037179198291966125806276380135229363298340905561185251217377778743060909479304219173496614325718005948636809027817965499044832869439712461333058343390500138481733750057361088904790015417117583882328184001802594152292347437133979257050096734727453435655951420336695480492397229120982992462182097551337379749917021740986533996545989039658220732188704854136236014462539725302042680028490687943363941044897315338793417212181737077613285120999194811692986650318358910356502215652032564331968013708098975397760444220570626471204628518801592727772196303558775349508697013576413711151484453904706490081784213338395167269106213842754253109827856749933494529960931685333098429929676121768649819259727182429235390254472046659096565186906266989552031534898374121707725384644661047290132792172037786467571010040675643497387988578830989340680182121885107751792346936451275333860920888197277659423015437078583028043021787334148373549932395772279627151004841945632183224931618927858719131009908434717990066356417351578007941406932428742578825058606100246155745626402213781868339354256136879297558135000538210019986873447231776618265571500895481887466120728976412084908739368274840437076049341540571400068528182270764693701266270412294972811596422653055433389512831706422218015196142360511873631427894974886876846650992437511521397588555967088097753307257450578288641355050791209893461558152656442299953247355332515440885096260962989307726304847379380296219447378554171059150030907513165141655181682615567645425170052989919182124744727503492461058756592566047638418638601701619720655290177406940330928975627712846918248071552311438132013729532606728116182114829984847330241319204132809825555223432036106064550649763693297645696596225020126050262233357468557798157315156658752594720734419834333944424680639866233947007685333025783451080129951037287441663303509604596676777247823876296224350208433260122028136774554692852348919205645501565642035255000551040987141586282275061531878814646977453224995506955893560178452546487928683617805882926466535821961870052667086026432194965135748729327640177938161234222351240231165054611181382937278404793282303037834007751018410628230389487840786539981803646109145884787359063787335520195441718200834789758188779786146139254076624228452637526296621242285561939489648396999211035177644315893857523600168213761304726718579028247319108644855569401734904713858839156536494529807462771390181791590367562711077160566312068507296090586971631254196166815610868774529223620657077736852679985074779606904369369394649026312370664825446393169436998832921173883897232130719893939586545313348422517542459960063143084382682748134934930099123157745549695457815433497134004951942100606778472941446901630418102263065698930490451197440356494945429668418705001370716881053142947008866448082221983833985766816107952942300885081680316809685040495187879377711828996647379899022527074772548157934416943880090116006968096155775888642938699314520280152902311623667941202616282198823021822124925182086087958612549980305167263299097643664219686897657296394928147768675140410509821812849952519732930858028369733443955452377777982615885916037163066459364440791074616907357074149572527698500186988342476224947574336453055018920106464674792616651703119532672553905159599310843507949224365085388661177504837343731116764895041619109515782354978686227808877724678089857405797182598512501188139311839308735062904133857467748821805406936422484733831815387473762461838536443281642815764810359903298865254329427691070569284933275406831568694130115273796048754659132454424438927392922170832026019990018750226274203401361462180809509755569900500074099980838755470099238811050543908996358120271312216426907324595657510983888144410008520266700032543817771259964456263240239754937876557688710723704783354918343713243958989292461120198610889882995623404703082662957047889565373328697814601753739961021748078466214424858650016458562255153463409921698814887370604532037527826700924773791092378792347318604392152142382502003512036325167263288107063544116391668210673840812835768744335530374906152136453081938793253328872469641962591548567289703187850560627529222519267501441255462750648165492435094197645137466309686239856286956057369733984809094472700576597651972688542980186562850189395008573178241938772759299227349410040327580103205385677424440119957494206757382353191730705792715964477952167584632524524529619787839970704730176352683020235271173493874601299628042485133796301278430677892670181474444859366474178733535485546637621152129213998884086311490796892578465906072863030561429440602818274838242735056280910404815724060256003399300224883050743675198424932857853682067773985573121210724906781428209241125993547893363871336706720865710491775358186896337190433545006526250029991154832711919499952134194928804529539550576373987092449121661802149197854673045973754430911776984525683178116108348827167245318799123337546888511692892902163481380002688864845717473564257753609860437949232574685246852981128833896069369237161506917375949596157624028219940793179577542107002697170104200279052951379882187885659507804942080043265132092379949185465312377313025917296068127699531367200292228120425281198084366067937635104922265668036889627623422483992303378277597375250760901692802081191000031819197849906648142098144968735687082597750865437934242748395291940872011849818412319102140479036652628588905053611382083156683284707959556088454108882000606293343188071173912622075455791388724751464800521569512775191740092794643836305639093226473093145114531968091872557691027143647802404958340960931356337249354450619238459866662582368062065548982402311448326962593352396758370790247269223626794891216848527256699397073075285722682880142429712359844849799808832416319719948280482906114907448212741326782480261282161223178998161741546667988427923181627815954434206615419867033086011920911675439351970873110390266452849523529885595476208580512331231935750863648512789251051975448877792422469506045292501382492044895757691455271926848632002784755176960563767087839138368414508516682819392465066510732711201304596107131020280126436108499141826513021418112554861032638473045474834195672675935351390740760249252906264167543460582426520198222599924335265967106161621379808492485926948886283479009574081052725383570452914495889871231548486696399874586030210027432251836620415498829232616324723076343296823373999062772139603347221199284564607679393034251192797664212903751933094062379662118118457277726453107666250991841628282336735358565958241032673774478311839682404469462758303356517829038295084262066817496375518514433967271150328634104264386980135316769077259484248091162613374328802019475735334568866693397253474526733071064294412058846692079171844348021699594604505678635047333397897574852242818598259628769377528986822142865466031783305683386623919980638166957952883413249004410029217446289962844378363786741173460766952960573190961133190108741688221428876395544159322395422377464067213012226447546445995043810633075890007498163647249884876290686773590793605924463785385570482357206786088350031213910464549303880449542688105029959273396522590358035730068081112501414809144182384805800722510785591435617510537553621787732027829382202944515587623807624723671311378898797859819316522093315682520675938461644444519268141059843037405724104680147557225166994624973495629721762458041345670818520501323698209785869585163488690860509541206150916992433459420181628909960093755168674730089114089152348740843407451766340758257308329109045855775286948573252250493964393986926401749118829162231472864951067889015247148901766829419003450260432360213448990020130038949123742661802322727849571245069884732831945042566462671447404214167863250134079650631587515588541516841599419867012658601333143958642477471108419756642134680848049557287331209662369112430467552749281341776197661930304858407890889191882752437488114443617926511225594184739645043520777497019694811865782499065384756040115882176698325123511277072270328498182194253005792444413028476050897994855868556689767731622322658542069963698230581132342789326402095867021466239635691067230743423869922562665136229919928326682962078504949369774449673185519302177635678891566584887571166158716599651052033135733117301155686768821988317114196907803522492855501630319495951898338007436151445448579566043791119339149727828751832856456197018707522594025575955136661109256754094833096428759448676921879308784740518460142486150615711266004381392359709598172582842073495959461153548636231343779182726119406652845329903282893447367898589975970940344164993106044778817639372916154991634345419661609549463697072297625443149164223786336995252020678200424003042199506754186722758912638544148250781510310080452972846362745422479480612520947968914098264437052434699238988523642416462363655547802745889952822908611791666270372123473943490382267268283020556334809659522939320765211418998750500295424703813165441988251875716044913047584493901227691451340735476070128596795686558720790532924728850671587049206890072417811141497857960725694477160893778310103599523082847013828758308965441671228874925420091890720819374094790251522280224944812913597351352175636178092381926231247913027251031060881747293785955495814217308063604167296469029193860591975991542685996735959944127689230439443509898174948371930514381519356286927669157153432779288729183686966157200511420467894749273001521294255288046309077080336367995702288095045673586630104418303015652899137080919449174274744034658354151617096913210587812421021469920487121235492758102395078507396952053603353804032666179034007050529298635368676854938406897021606543381496264048793372309663585391477539581611689915825309086260556582089131455744939917345955829233021319298095157748190728250144759991132700914612946240647268984650508601760441995747047248979546460232502046803406167812876513911697580634933127438161735938108827002833148029332317954608140139701397146243184749530337378546578879144382332987982008702407510911350011581885008990317562038004556987561672086103908413998784682074848390164141279946245415489052939203209457270096902480388116821210199297219166444421366807715248729015625794722479929982610209911726208825923856202072906145603488011979664408872606596007662071902047913159431620568797201729508363765772859686174677683855503346571989339410704675253169306664758986529190924212881293033174928528206170730781958295049467100899808997935113559296793869967344632185313772469384979727952923632367917243052611821056489653158981857288567153552367155570989895925760119365019668325605562506450699230066948063311944025346682341352475441318674575731747618753442794179001277199261028510199058662816811909950846678431245255937750918175402555653647623884582635269680177276425617973456721473279272192258129734483745018309042569423042685123995692794298454371321147987964801149307361804149701669807088760680846691324994768069712418481841234358272831170765729984762155736743485233745185129808611186157739152415038246102312645891605304736788815841211912439754561683933003749067279359127646175262026990880413206992943653142829790563153213720243441934015212639112570677380659105298043466910266592344456577162489013840509367242870599256193819122487900558657153848793217835052614048879114954872627993227088457764283253039803236170021769416491651919565348409061523574016561427751251138235267706506366399450635931955666646827970311371075877724644460637327398441194592030738377242097580728837867978575878762560183799659583969302983080142483801442778367800622174399622762765806223373280606010490434641300870265065029197550498453852506210728492363863793057634685484348266008141215801615401846491418958731479451851615345638977774904844671124108281859983810752576021462960843133046674144478043560259709200241964626882754413437086543602815232573428812974223111727810829970650715071556350731099236348296057575158638186881069556814281446717493069511742269512492091265706145257256669105139132006139739222654153822614342322947366986435331123553235689842300401371561148537853908303030416303042214962643515228291034740285310543540613879572779890845968907378755892065077297996208891646759457607351897161525358030034627196277303570768419210586514433219108396353550295460850200587230109876236285133810935438034767039218961430658385193714032841047982393498416924544191252862442190944964897137497328247440722959964636190985018517719219641465790869192515560154224375175346746685805305427698697103975983155701587711669491254246246223350194994984911522616179169155343928490682315144656970859873649673458799633959107046963685944758064642921141493599707183329472414629882020246821973173123498571422343360188164415713719455328577007141063517632964499445827781776392223377433665559672337955655947081028761700794247627259816255910319464368930401286438477682289223232360815523546318208254191466055611326167139473228493764397265095802660188797813979908757950760408622161711413173938305626834905680410660322926659441551299103719721590255505858590798956462178222707108863655096739746976227336123294719774241443935930210843234103467774501478061906599135692737663252016295793051280182332274694488959597814991199468986834845997526046862100636622678961033579470143538014121958196536927499098506005152958468408101082468945603602837528591172438309186476988487277621855718046956128135115882101351241692536360980374438605711751955114584900937093132257880806556459686194329724128269698354063950087213569833992279079539047145242652773055252149072844470589276312331818717328832951660112511823949152476038996008847157407486877475605711880927577125283247030809612053905461128653524415113484284264081414950124563009289333960869719508980735048712244421235541996141558800796641914251520927110709428115397687296222064701756201412504824409133025623390431130389587913059438854627540046891360752253060801507012231331594097539693700607031344259057489197709817532765101481640511107069644429711596074591735435559308426095119767733678367376335753404004126235722763788387691819971797733287891344303503722339164040543673190152942715262591781817824979749058381534194714758973205573249155825544774344606895107117045547526829064892008997786579777667219153378665333567273325737555191118294008771019175618177813650183225776155520320303031549299496443235284474595954628622033280397052415503769999232511664138011476503104900312297125822004590041184112057754022330385113076581084788965285149782912293863106424955311481541053282013639152635212978760709898480181723369752371449185011174497223957861729790586984220100967819811630160433453748382908106647026056680030465327302172290755155881989692212949181188125570504749447773876700539760630489300336755983019973785542651564209527016638829046075274394522074305122734106357298516011619967114110930776082922418230676295213342607653159026862144969037277194958499162232495304270530136502760002087412526801356572968856845182169931171615251242473820716475227881454228425103470439324700517716048268077890100404196676907195653892724755630582782791557774665540824892491910259001103694183375767502723463385867242957800425376997794821922685784979757507192530133734056816829452541170762788547129003812784261761228460336453926076156715039381053241742180108246212368385163308000334849961375441755675228026618294915861372380724757226000563686091777469798284299305266256779380298189232339327153245524255574976514690039577544221554004667304150483367116716542957448229330702128260938917390976803514378509315249697151435982543779686669316039285844273168116138208466754043325410871894120364295287468918390389566382050382912530875473560966889120931474666808798194080502624103828179421015836590312988332535748190499725295149028803761517804253329359305139768153350449327638850443559542542967452622506243693917438455653839577643513065651376714569463148733905607281011632249649632036436399613236233710260026404729262876416247004204417188121348014784777131466807880354750783839437761283331214629943436599888969781969130688922287137948561075034286285045996603472720370289748558709783498027228345291332282368710111322223033145003599831914959298704478368176603601356357382635694754960027106310044401511735102492546884037123310653922691305342587294017055365814402051722828370728053263669864858259952293136417352498383507403485572808987042274481890681077715830876682429901862276447389897871058947786850859908434533842599605116463136309979641902594164262855886956668484931932227588057340715706865081729733296393382103714406947160574368468479027488054136250792757208622061835084911908579641564289814204905797434046905662593589283827039302643317904495091831459406482287639513470585799257207636899033890648815060622559265275750715507940636557603031990078388999518052471498034060904566958621146102161649548871577719369072329354885965809838229605809887936983314959949996736002854695909678004061276637294369510454225879864134811580732456920309247915495827845915961473960563085194545860628834078204620704909358085276347183467032449653436483014057856205157503035364745291552493824707350583291032100244137460476222499642393062422047365724202351875184837534242067323832662187774271427398526086938584479229418736886319921235889583797680832725336613737932142538319027314128821387390131972152039543366212225532421389447380901104172601835473493600060435698204984558515541775941172661260656017206884091368644953458411729864335657255442527165935238037153267938187681178853032391645259639353716830376088841618505794954826196874923858019898690790658783755624441161337014511055985212571585284601636838429714743027310777101565561388491353063455474493097898617285005128179026360462422438890329046354906062506209805030701664218763746069816617007756764925832762607060366819973629561763402980050371365654781581433087233555002305959769679779490717266178435655928269451402168717623218434545939449245860788599185210108482364554409445888320668940725716717098137943398824378723392281860326221070330982092927119058627991600810661310928332513187283362243411608256212376365169859820754107652239298171705864121913930206994276757366637583585166570535784898635071429582970415455278691031913890541955370786093682887282894991111738904834661057231776761053333715817115915260146078628687198316410314471752440539283607713164051244241789606393877932633223969522371603521030799696489085282481906009913799431420845179921566185393372164846458370094055108514103173478247377125365673995351569112194189357791064150378697949450630182199500852396532266181620243647039968326487538480933129873139931377330663577202402126339068670463935493616307332510271045926987115403448659113413875712614717907105432682843549998512330535065822030503916847199008880754980680670938870953265182375621544099670193138726577282495581856836617184954845780811735449303456096434695415404446861945548379424190731376592013222746486071198297873073587463907910617978155121215425968966191075953791134705848131022502588309109181435522771170171935514383427128668095041237700326454945295999908953454707487726004441472880303342410487797220967577738193259576918327596259403039202268379064582467351670528229557894831076026215712537512785039642697338275053375547239278869304023854880163981880882507913182926963651541014131139544717914686977685509036679748077386326609913809716295369840387560938944971984043312141158522449273498188944357268798524146911558337402482856430649305986632603081212715695455171814322628432389341958594544032977403464927424446804504317638232610134915358942792940152715448989405326574973392078570502547450061948558000680315543076040293851881919535125282856374887879887851867760414916176829189910860982527028112348756096754666539768317635321979059843992413624047615184125637881881299824137125340779228584071240574495451573239965345949548881313625780827703078892780085797211778233782761118375264309952977012897200879259663498572934154478423302302142924332373001962980698049939300019871221238501560619296209656831856796515707816594409022577807512681599412555421299245661489294527129319732240361394125622929813814480449031244112484356205327174751659320661056439332956217960657301323724115518076676133681448940576109573361064955272608489247643751902181235512079648632276699585875467194565745757888367982498547545108043942779622082128954769946708977097513775922512546293395377504655039013041722606944656518439027866512856429346970262114051347653720569929830756306376651229989948337436392166285061857551866889262264167730815335240746576725037400326868304644908875345581440804366927073790160475837191169585353598857342906224572851188670996448361360593558450012736093807400324978566741501537367225100961233306700839613673500033126073446705952189999204274046875484149451692860589676062033017670107255973155412318790235219302727873088742162307866563606651865685393732341553070722981854202998806783744402383643374840241066134148889853923852057135735779010547028510019917774848242241630218547215118603003364734277620067528918916058505486438492802390748305570856364514285063155080464738966383181646097062718199606126405339023589735655669175400771955082050124899479271505176423680810937798169222035641133583431775551254835220402658182947902166658577481551354519753164857903517397966242741639409346278583356829561709635157035034708201404254950184631775869677484864285002776533924072966441328295326258006889493528204608202662962765873507633089670692623213249597063144096147185570018326691090535944205009037304169229383059208286876900178742486038645616329255503411276969286523615219796674655335513678158181379882767128208465830286075966563918987069920989541223510089950442181760643152050477453664437243477345629737626364273091024951966554660807525452373220229763096439606694066171051543921941669646657977571848965057049738382395568044989039469192997192326600998088120738122557226715615356995298609609672090967248613504726238221432309169433185916135430128734013819576145876646357881765759063455353010108335462582223887942299867632511320034524250281556220509045225903043546279713834285832306101728237402559201758832239719081623471264023018911976195833884578654941517958916164854915360686458584408197836690100110581057414655053381817783744041205858472665961520833991193074667311466371981017183586862087516474995555602875018938325579815591178842785969109127745834997117132915415060478990683125125094430800646665697144969859878249931402104453935144218140836602474041995375300177766607107090282687434638937159626867079697275305903516600023515395489247948825717113947043916732203178014681917108375300693712892517043716178225518958036318278505570253453414025637885243697310015225204240177752491069586117301967136705733154952560845802750314875642033655373038865496439521036224740915894480559873420000429093962988613299797784106000390022442792818600691878462011127607581465635435022707396713482134658338183138051827122868825632144584304603680557201245153842784641178405782281027985412149659819547541794642568000293980019980254867877249350393764280505679035618732212515954446007964711121135203763752480635988325057548403872396131253813663866270566995923901984145074335505754721898644746470523120564726917327704222496335168078556628266579891140691246692827647803563804763678811379281895551692334831627639453871608632052132648199278375552968329522320777986699312382950100696129920287923535054557696270008365234876195911653776220014211256284692714053007501025249696130177400432528843239962007098907546570169482779769659324512018814869695808400419448999074006203186277146574370609176957961243597782589264655074027449078367868233199419476165501772247068048202819647785927539052808671062360862390460516662052415422904501295290741388423075643026440932090787771474342853336700286583686714029402106586647131112565522606752511893741065850368082751953017935257238442809397323368087848976143068949424822398642211291650347637014599636508943303659132462178503412556186029253968480704198881846647295105552637615666426973232655780773354525593258507270156816415312520727820065013708140530076781539835641019454293077222133276657074373590594218401949311590263957950494075132587682518317807624433332185361596541771977536143291372825903346799159000060663744318871341853297429450350233650096660019854328402844174110981289790266086661113390292012506234640460542468727220753681528270625818040809535528252008270896206152399949858710015735510167146846433461555143809923344371977747137282003071085191867661528954493439025703852960998978953348522757476386103651545547058964738700622235634395888420232565140526932601342678555283201646590208661419918422827055270035881715617016507814089178944598967017657625882140641623584388478061164753531619455260438063982953310842310767525685703409293485627370437979395612487435895956259617715058444173715096605604408889333183636125786198873681688814765185970589289702332373204359992843799729869906595937338379074340491298656419578195708978408365978700940126828178175945331121233828647923150689327324365441630081811356086915343506597150621901233489014532484114858501596083738431023503869565233518293531729945593360462308040322756320224896521625601602757764245996979647116430096752701446613298590634593722191398981392624105056341993013541820489370524609883235826551050819402064785490538367686753879607407677967003110187065653121208213998236953985552031018767353591385706510666192273429397488238881830752836387720813199136223759166910637444630558405418760969496804380218302698199927741050048347791678275410987561920735659735656220475455815731302372183193234964120781441126809545409649267337303123534244253016586172596975065898198434442005863817569536212131639988183839481350059367535560588467439207326077768648570415517568176670898539855174725754365579456096416234964737961029150088034541355486305664044686793840303838235187561311294276283234527716662479155787670796379394146798566494954907940583881591623705943107958328015784010139603626682863804731001250677835604838918003764704369554297654586516557809304845942050035507375690206046774701761343316516961998094680520262864831642684151981812741401715692236468199613712284641354395166787226173024785731775738298569457422710499004587645716500699554244385324980854614260819011339968909712766247992214573880654688993810271471786456280464858089090964699602726613532944709629504516878387570322760025496652788670142487260253836962163460840137396953605987310364704583266435497319801367615327239963842808898899112664653932105545055168074327078007813601095625945936005470439370770284802187904748466323158877532519921469526261520699600485884756911710047438479573559673899056769315714589954692125319056212606390491572510321537878299405339767367767425773356824373341343383040033097968442778036709697917921427164919427002626283078762233594935182150338265120527907344024744494133079362591837953136897620080936622543243642237074303263736803190189521905688243054440173794452732152071518469947546650003963573565254318710682568565872375358984652356911051731528345183876991399912871862074156226338217844242183686946298779085411486713235700707809060227227294899527429776343000902113090149921086048932957263418497982573236021650224699434818967384628551267646162590443191589691482724801164642760265701692374643205441761943981436364635711014154134527685919756079256183546667969723478510022613394902638852934344492649461659902459808189367332486114524129955721711404669860753150802522859702712917292769780443634381567843921499862773312328364596480637492147939541017687690067707521472954226728707458460720473502486034997522548911469026401335289642668600377247129853236940475613166692785101977505921788523027062098161451364056139543814328377586709437661150662649709628553737368308179764549685839725369745276435361734367234955275155324376615136612976036962237061469465360567425161869879156644121209218048244349578507413410491762710356933837054834571606472702792193707939950442904148414972216010285101444004638067261434800431371432046773100704124550424433756831855820013676768776827307870142600475344962148013824823806203573152626807495205002419905809441107575654777005650618501340845077450785801394468131444742689557130233952993351898514404139237980105418941433815292672759943939577444889389241862956179718889029023407069442790239354680292946908259171926157805254253769965977971392908599228951196664298722330773394352850810654977148189690564489408710274049959834715118356390192808049423841990704907071056813031810180402611090037716896221323839483966931320371594000285665637597429264952603772839149191875341408225400455463334548712620331808837896829200695114834000850734196804350441381089562495824563268739551844955571151442281493646074960337568025526283764792421095907703459112398506093871007001421943316424675787391260655268333852321246820042803517486523674218069475248317371890119266612676646597899458765157426280248632427794483456779597112965938321643162048202783725416493700101085657618428265189345837811710624913575780065285003842670978598919362847272196723371135257008008430620952158290650648236978762286465941565385752536778733838504348887804762351280908519647481726975905783130500788632489679734104767351858332318297170429020939492185087994015179929059266951280691032699078750066227174469211580964264303715108791355478778112142576813402751830421066639172470596486613881531661127090327705028377346715017957183558824553043221491152949383728021375575778906154240398388701609814758111567271783408127366586069037608138475621403566778982325248197232374631805356857227764456643084960925838582826055488282256171430096937041136447000914111245844072433507934356875533048418877514694411028421924680307178143582660053800079850532227557206853848068801401051683092730368954155812953064408125771122851154268436817521331581450458114233861234223740495780379969545454436048020452885254847571592350160149958430299750899928565876070001089956628373854484103080675707254318606537258616062751688711489912719807096130469733580131781198236004706289436002172829096810540009962197608172826099342872162478031203931258912830627137410700541663747518601105026384942435532477080213491475852786412538257832576029587939835223600747205201694322559002446877179287555444802725190170392818748209224165310880266101335293563057058878315967416602261015595628253006514685527865616045594692377602353129611238582536068550450198198321887133585610785162205740102750996125556270491973206590511040960151624648289264411790725651000650313694806938812122044565635652764381013809227705470366713665860130220265854301227804009409624857909483874186452392832056220572850497836472822773055245142487808910078987246842266298464235271342906963193291210671810935252595068518103834366333590599379071700546455751855228429518855083921880243905976591418098209261158707215286093277440097608311355798751892213365884053891343960705151473099208241764601565533391170727436060563679990714999260702960034182485887272116191503307890472495147405304813851167748683265406702984832140992228204781577534128288344306222957360018637714554842767426422274394653245058171249952406661185419783632516168148543628049153577061038372088105761542477984341819287949398708834553773949816138213092043111585944413055189850575000684064307563999646750368833335260555020896296495667912845234320910902144281044840688887829348568450458288492337622384929432904629331218044699683494349198550295731967870151092294617455277178979548167667228998039093412987866949763438001640751971661525416260063178524003652070210007168059677790062616218483279926309128803961007283971484190964303236239705527172114724053947630906871154636908682825029420739999459754219543136625934277277593350577093253661083523730569740050454453386690237990836982563253393989568913802191146070737077139328803680131379730741491252031025980683583842125187993748727163650566973669537950731352618084589248955674027553035451401923832570159802042684582297302374214394184189057413512465761352565739510119225088678536881105919633692568471809446113001617275005595518965771112995721906035021212567314190999777885454566070677408009137786035100730384593370865482010728470646722666835965906763406051630380486008637358798657650216856647580800860642218064960052119356298601322319842877837537813064775569473760459705388593861789916728464421363022576194502423793099483991428943210416593536467540447247808704987391340084725724301026844299605649859169986100311810837719250155986949382962850320977378013979486729439937122988541822162188469044686179469057440055749826114338259414660045243547561398149948444339394196629176709883641482085327088668946716187812727728918558252469064723100813349518414641097681248784500609149194965575011543835189530398400923688007047877512799045613413950862969490639240394778429700354452930037743569381402628731446245433671710022648087492609581669385769612922982276992356092875356357831755981658718302849722345356092927406514751766675602296439172652053555134292510038791814510897157781148632832430636872631741258374513507724820521769943158870171534074876699213998713247203459314320787701924242813229579963711128482074554455868118323671172571721379513775930935016023400025522246245185584019212573873415646989775703411783461519828224787292881943758171640820956288556482362918365224569758418867470962084846509481516107430928242397789378958855787727046747957488203185355284153637858279023863162818387477672559976210891357116859800048943535094139838098865931556889704589536945132703922494569213248129693821892034313458061728361773739592135580780801937068711418516453444843834223653982933931547940265550147966419495993130978459452353909193613072178277839007194109534879497009209337326197540841527352729450458532562181197680685064176583784453979028311405816397765899088378200850832672227010439683312158786293521705991894504644763136742850348010682691921835856973086568425383999832326297190731138584598359082740230997460561523031770492543282742103203814973309665979171599840733710809670980596510044621451147663050148568968379044325101455781456082748560736572115529136468649047563267434999588210807004371996049284120491713411134662461029825725082596017222720732001965206702313307445355271820021536138728058088325963839384755258698822907401024741876310594816553861269937287294492254510728799140460993575846744082766227511140069597120094866197018856722555993378637113450038868839244542634477815998965891476721392334834497823805302016667571021089160920367737796589587344752025143198614021476592045519479828857217447902025847871360238228787874262060823063239225890970080157239618341400252235554338899823204416816338764338365077338197859516991037298044995291967323010699952027396661434091833922344233905090160055124363629981707411905942815738526786996702685748783909196911656304841790858623563649841275700127187719745122811946539282851693121442560406918645440564985548853454480967875053708012976499212358291583408263827708510439162009510502391972309677838958757643752337243566451712385110855829256472516197726609070148613650938217929658762570790726519440878467608564802936052895740618918190217047632649908027244790500972107919829309121344643814635383721445117237537217858035462208942479133658239810856346122142747246046335333578884364646341584598774650976381482333410477471093910932934712512990303352600918251948193350841999267758198064845510868148789001320894946989184258850181821751566305066849263068855751554071911184538327416681096726034101340171697565570296921276194084983820792078582269533021376021266219121475535222370124775463300576631556189214710855963348033645272616754493613049983729386306473972902074337396438824256356526117362620852336850324658439817157636239602968068895220137233578065172780323039196014497216941182025509848270949668834730299589266949093800277741950467395191640270490833270497312343907644766433927576060774288241455712163251186652347940001936135931097153173628735234507503935376793751271684719948855893400477184902069694323804237104893076282108794051779080118232787264289675492704438976121126825359235306982695641785131523430440109577956090261722597127273922001785415674844973891351788932113555690441989830737260350185198421070872724168910936928167420760668167898395783950199973215045751151812865830444742490161144382444031924108734014055017051341551110022884642875746868888688166954154650788937597773815203893826856392780994048812703025477550901859908170749521405975563582345741769775405105309119625116102811334790688154115808063705122329957584719526748709739657698344716005402416834502036710648118864147666904988275446524513758388489232454183741201003448387653515163057210794639813737044777051952166918072630943377275034345926259700084851617560502355165449684463992481483571619670715955625370773823771168369628596113174371903374448536876058142478634351993571770821538513976811978471468171172892711715358433295286337234815801259947961157282695350074599019588692368026042179116976973778354349250185419354531591882079966485691666339450595942787675313671828289625029629765474852659679754801230961211077160482210489938949958936185602260094475188596089122588469421545122754849300498040327100089622996230039146068882582252821781111026548063694200442063286177324174623867837865888732304086043939518518591755536753110396556928375801162934978547689115760275725000466781762927700740622749280529086019984526276526677495885501881324690626331284640174380972626926075313277711881867899697130196239252705869475280454946520361887316386471362798711240205356074230890803606592267931886561314496145299562049372838603219612887517583710284562401018566921042091743252248325015793998465729528456925491120278795023042538901149595454178615641136732343225083651243438775832033061682577427633085529391866326751673142203654011264684490935288784743172973707437305252816705588833686125502734867173982118740987365570500442052856337312322855573574775670311678832592804130768036529955296639643277264268370410864397132460550740003742805169039981785785414703328529055235602240908989855776383823978899615168486614003318075798803815222698296134008165247134114217708963929010306480187692994651494742298079184935523597868525855840267162774809460229465946713771464643990475179935480367519889753410801436215937956991829299755771087292578243152904893184308060932388690427887468869013456548605580575514721451324479878013294909163650087098082681605321289668534335287936058470718380323170071048905631130311686697539175241645061723525714923056077727990199054919163693167473971841982023674439054311016186431310153175485369115722238616972537477993880102855595454007502449207185320079555179238134173406581799345160524515106422250553972448107808588418133213331144395035123710430893928393131088721344552045605891187854019109124505338701493275553096227052395860991485502965068148469309792876097670806329485906906967481350184209003283161935828122874171349421775660668690761261258854236589735370667967436814568506423763192333265409879301012871818865492345373936830294099120958415944293382877907098533667582311240381512282265889110142692778099176701353595653376948566066294736150375530543831290955969823043528597627178214435368868443717168791409997734257182687921156262234650703294868847854888641341632971924085553721248833102745325286050847602677777824822184647663488725773556609313170304713632015877849950303474132423970402447080805106885430552963464907132199518564368065194018382523975159765759267636309796347750117551547184504875801318704988104847388448879207970368051324225185019726252622675152894676662286785090461580172691098041972776362733414349660686131374552963255148016179429048572615487010178647253946627716981199955465022099356492412718092377166449531729788931455344533351087175861304256078787458389923221869941280010727193183535115402151118018055770324297432688132408850809572525409612580928035739430694621542761264856446452837117214077553135637090915842300695739009233605667169879664171085647711845899078417716450031132467412128160703073095694920617737181586851913899736684352498373022440679609748282741455512664750992754162522321627926701588860447449144634053400657385861107193130426916890682707298181660057958363931894832987152403575591350122196685891683595416122679754149222991840616090726508845028600514984230052843804558051693261797505643671923877307900289772453031523789424970938210822830868347016417686699658835253729107084888898490216067020624546152801129937168089394479392397619689778068550646422742017884325347408160598303699341699089315998083674764078057711061723174862162461936656343857525228163551195803846786036125670564880230944672552892304062500087962114594182508752472515456245240923031136055949896475805980182444288635695146157053981034715791398409934945577667365143615128747506423584212929211295382627033312209581016207596100589729379770979831179617176028115779777560830292616068392807840276016980899059506441162914600534778509821799987102260326764416787609917871243171465738496129116431201841862378050494608182552269196119668559623492397099722590552660361397100590231661721971740772024845085573503835048345118934686655834367935580641375123990611828153437297209083381924204617439864515873212784765547404091237141791336555567541279270617787336817443370221690310089392706590829624706210037489298359101977209554133346865579568623644677494586959299428100137586242584288940547263020113566013720634187237223274686036205956787075894838268147865744500324613413416665315857905933026205304656189736715546607063263100672306754150908858803942178977123312356891905892294529311990524419147514727947043984723612904719949936182783632995807484123557556473261293132088353190036862537898898568562823770397118967348611082241859587560314836443322171482990981322592361272264616913888226952823780609780323310243873586972205590460047082832902473911820826584469742933387923410080828724475186623908875662530870963002637085430726476183027151876214769459288139485433945089811475613223578484589825560188478137128212950879991993676915081871790116864676948062184873345444854983808750325419772395463927513810987441909054665708692676055730228403924911455814661307123101100083774415595340175477403632558778481585046735310446372408108868573532263294269749588910849145319049627709625702393464855114486026824315560815726408457515253211368236891963922774742572800126573946893799814824880876158344370498193752981007761853162204173130062317599233175627025599626341028880197180420221794202081819482580554738684404614036927568985099280135384773719466188598918196791220637916673266657887591458218879438757765767445291033206987881770293683042044935429738576783172090972107413281599875277448185446936939227010130768140301935507388689374482061963750772988892201044960353468753985114218201513659388131610797427731505368770657916122317273201689253346903561589970853693352145574709254211084084733729751619520076318019875029993314290936377445506340081889339245537170223189304868060125380549548323761306572446217363244588558083197896500132373678409084787796761739425807645579815058551189357119334191740117424810870818019060639362254697293760601086021989804335411077709824529250955230229964967929944337349302268743148558205934021739130283341038861447318634889734398198925007927054423838365457957670202798761669775224986775011331889587365534255013833589492787875061269027639642919274813610831639481349682641546057845911272918584873527829725313521427881107716584196727561570744343183999731790942391145868230888155301920293834954022196863862455797251678785885994881969651533273030833178290246224876466154224432846365088289093926998210655190061350083185878112650763904983215899649244200097958143280679045385369344691472647598599215166801032290784665228035321154412360514750359569918073313456271923811068652501076470712813445131529454222854515917441748991341672129854090567072301151552749178541820030041510657322703214101417886419101398030717180305960697744723083676492047897597159697428661170082027410443030268016896400894262248959213682197851770571620088074389761771673906230840511995631572985576156677445834843426862236502505105545791592990419055670858809491233995893789503245694079122305151267126111968337168058986929518687192752968700092568300316026307648604107071847708972038427238648895394033212626126952679705788370038557232811895205654672186421575738141300493980788546235838354357028079373732338894456041435742312567155704520411935903146653246155422490698707808699915147792790064312507746926260249251483260471039408929282347550086107119480661748484276737019477300566694171523734915053731424642424552745067481113512135394678546460697278849051555107426987955954587587269613656466746140547470204555160481956348686220608471119318747118877468928802659199835975791426391663138999020642661124377894060396355868183379469745164031237981096161230579232988987083651285733880100953427568445967431944552624807095332397015234086731589359563196972017447566293960645221629099021358455173122323907068780872590795827383913912674970834941488584801212287947101803078689859890415544152164482884192865179916831742327870456639603669983867672050201931185074347775115434685854999853073402004809999739896670981808537484559363073217276738702070379310799645125406568569222494490722871163661660684201699069179549366390549449715545789527353789215063942191343351280845343931755450779754376212045669167938342899181498049655405176412425875128927072099091827215921175706320471661278389781539260374081706356710910061442944959195611726086339937882863677332781568979178682223140020919209406540203508776931838685570044758685643949396905138784500012350339509621282551558382459759854417782859679742743911982841039928775536005127608309205758391476567215795954244049874249033437190817956104822057200046296634646122574305428530505299675457603111785723330283191594200518399808768274039165565645223849430816003564129772551122821285325501036799151301347295673355249324816199386125177936058803224938580456428320367304617039044371658002714685224572990622062494344428948429384413883674363521653403836757943398862001630292038107376679678765532712409448585016030188368284331128653757125883357975971301978950665343307049415225970334381978424400122757212813834132039098337265726217388561514697706201550821377664237704285184800691825892949045132861043501626748436123995894333229796392134793017977992407743032068994454911990171675186698568679903287040971922070339614163275709218843880200043023439880555083515009666282107155806872862820699529248388114987298786103605293579981737491621377681433162857234117682727763230108495600963365554617342278464945560705176525443031200245106384577725107284263613334060667471464307139860211903419735249708529139748885217288216772521655264163566317599903642356094077034404970427009529675915293185565191939586681469950312944154896018751308282844642009566654776374045802866185569451508350375888362612849151091761158043689320569728155731059025916952109465196198952185484595468606248430736745756459776870292188414773464359429440333944795756897067533181298813646523865127756298210375824033257320554894065261828870217454364190150103515080460668750348347903766077575387532779143595530023391879694427637410599435153276938605985782737048226405822682132270572698109281276583755218182760327129057451409148818998268531390064294921516169553394747484903701457248282685422010696886828687025623767191334139409277392642333346391387107715534462704277513691086994522608510226423698230670503881205102339763384064444000475372472430012344421377439395408340973628469465002356396024545056636875860010715707576175421430676487690107299760408698139726137073660810847852559995805480700666811593846118261147832201961270596005756900877052955218477586790873604584269968705781061552472687376320457023116880243428358413710737064413012295749299925808975003308221449731096102206721380035832117810979975486874750802494961346532680689484768559458197374174569221975364398098331479531119659512155192703888262143248260253561231193716778271448600332595625023444432846657323092237668025662331948986944753350729362232415933703094648342989836556296368440430951094728490995107429134552384277496177922631780107173619376823608928021241522065944108753943545892110938637469320680189735736563583236898925508996101637759385624119069929934873040585201945390785030755968786484062864326888340560953017026092753187053280168167035422249362474054075901556718625868805047431528502940586978634045021867661030654787597198891923330339307459977192046394498073569157306690372652548412029867071816673634854835350655960179455934259663321327776269174062498807359463225575272677087894200257890695420638587683211570399508866980561935635302768493353308407527123273156415404287140562871191926021487586949506548104650009727608885999101618822771691452291890677967520509383669151905409372286597182446282923510818810228925791275912557858222466042785521740227931470689479846243469729697544241669771689784622158877268462783001245578570102360800308289800594735787227168227939151119519634177869822014289264290721688124713716164785584024104060695477117019770202889979405639206855953945254469483716639501743689015949003115276335410081755231184158871067705776312376362697245897998098136091264705197503254903470562338834497541790430787733687461225619077986993822668760964201428642725726884400913924077721535306160273039241005500362155821126142271936620045840065329330566397728023379722623189605724494740415800454491175263009142664623610489488755220663872983056335815802872765711873509636682068516646094043053625417492736678143476657780417295602120136222426397641405131871310946605204180192498159302030769787743629381283336585256518350798116676546260900325096904339734863415245962372447500265490502757755410488178443862744047501548893229859881208793166009805196574831787977038824942018535340875243650639209297621668538292359628553764810146357052838140545267458043247509547348506482779100950130539170466104973664994698966319432506234777746198149793989413388561185187323482489436821269867084617730897227161252320336386991805457118473657320489278855615892473189720032086701114090873645945476791934093864990784568975802243064600267637698755935521330330520094332354203205914661391325105163804424779026821765336855753043937806210695116259048997092175058243658710721399426304274525462932504573733474597810015649570521464798410161145250579092017339506367210317194606892276419634386033656901003056255559100945816036814529622420863903727349160029662406460415679851511603004610094775731243423056870687132535641229630473908979586401174853455338704118828882036063588354644617610200147252547130290113907781747100037974092263397036495718553300284573970448351247435888241703668753744224287567228987144735060159835157523292542903623271267859074005116814835836393110821175798900197549806456009611858013700776974187355198330343534459099151148110119243595718524104745336862765019191279110680151376172549424421822890149766118608138408926717875996797585503121560235586625752704122174778435169403781770819311676338252999276470117539562968024595861281843140967806141512905236993049261524358269793862949184403707088860435544844411859274083458908389288367260310758893305832115244875277205020664159027310155801357055609597512076576324366152841848972232486069453090738393932480570360550173909442217646310485296204976622996415064802486488511114126230755762661185291119929667287159596271953800026699703229980549407369426688954017482052112674139897627183271236299799634515991339180219245020125342234408722121832543100146787067034174357805957756696313424817832421112840521843707473408457843511033236211971699840090628841532982592232741341019919151527082276434754881084482794524620443762028269743553592774436337514609080030955652121020801014037402986449468620696315480495963809263424751964256648450090034782843932786602986437637833978771909227273293328880275992860326653885664623096097744320555401414467328179264579532916159542296096303137968886237976307153975532352733650864140234511337809093152767269366146079420420078500367892622325876771203744974673840760924106034489164947946796246565781466543304014053973957911697335953668990794745361694532051999900594707449178442718961488978057909676088687596396686822172808406342501655766844511300678271613834969514690021846948822378945482392322283784230432012444222490539532766086701303611704326443647366011572707657829316399545647223441132286589304843647052633887152074330667768476319218611705174497813178128843224227927040720623107200229381596940124777037746031209482922547882688145469982285676608572411964603729016784841018144008584228934612431631507467868384622006553020350668790263979740782662848427060390115111843644317838963022434584017553887886898788264035104457255759125423853598687935163126022827515576059291386978974225662704684482476147051689214730389523850405472425554263990907013286494545677754276115474335158476618710662067293079721783335755360365412382820348497786515255118890885523949645559013065741025113167221992724893486668449900209766657244155493474503744424643081449278482634208870586287646860105905213576249319853423102846722242774740161264377737437330407424566266341400954004164772827524095506882709346030271385016290977944315535665093370326497310001262177324054989320806075606070304611472509978464086952592886058033430078875005154230160035807533659390175885334490363686648246061339903877423387816660778045099460151710180012653295052891816531846592209508553958568072495617998107451665054825769710767658629020227587547345221858901045191136593783677980955132009404892549785914767990029335112340172648971499346706018230855973953506172686663256256355557543388745742331613547831245970217828830955239448623860042464923788226892228374212676631516174101604937181890943374394906372658672296951752725840410589960388048843723039443869663596693178073222702590512802647995749352747733578385405042172264047408649580762666814458133776705321933153039413709206013935539924372757269539307427915288393305922909974396983366883868884353363414890702578473325660453146360987275796005218683813727327702787586552127962773337245708908475499950029903941592733236472681676300355084269924238417624541577542282393666288455732236000865542594238483418066444254351813661333563844393764157498487581130009973595565298037554737462230732136691042782994660247224781594539474215440808709520966623196619179422497433129665864160695618572136562014154221472632470455443586663359338613837146077031612948011977162287281650687095509610893501175483722142836860668208507193563192901077365099937032425930432572675108803145950372869188900201331199915140927351638286207142163299976690227710429393312481658246297756981096234325646800537202557338299608582113932843534267938241228427799920573760589404201102642150287840268221558945061766574603115690960920097379216830158958608584284890621868973315489369450151850679523566796301639498115857310292484319233945490725780664305123643519631537271739876656618800166591413854885111767487260137922673647038757721507278480623876360167613249652867529526708955509064695229822107585536121797562727417874374946507582953298687798723514249894373652407167194746784680864693662552579864720771363267382881158266009777498578334622326102972847073287947704310861903088872478521773529816054817136749143525813624948084671871846645270968833794719132159321542097197032031039415007214314592775877426298029470819017770926303770126239741691519008170601931660692535579056531398890566678782605460065605614829523083819729257278177196762400511573432150358410908601997640929843899134922735421873073207011528232292581136845973903963180897125129111267596591049783884870869423992178948411523940982936818561169158793231735366426119452601001788174552269002959933809457916647929946654183032418912182896891209193440678923017322103012388195342674949860809513450078704713801114684628296616488088942676692162429376237325898143491898056286497732446875026998261078658534921136294702982473242552376861828737632745392065510291152527094914273045359864252426900762890627323920372389140270388879023867832088841116805583624343137150298011243123383946529552166481444568542865622258470658631313858522555144949296886477402382394733072593755481719462691462171314321189646594631878658606635268569389568163581148672490410897781996927657671713299693981154678824769186431437665066031439887292653687094176199051884411047385510727757643697160459023271110443841231405007436949165793765057686827571065157329261508211872039506799139206128664362744747562133395211577739446673677931749918315488208776025257014405284171027122886688242227378103133343406388497049097525827326726510013642695868185552814723827014923248974751228028764266721194965935778391127537167179457058461712823580663363650660983164148210470513995743985330579176937379548554894178845114400884908359916586677565959377910198810146629326844494672757408421297274148034993088290636000564429226096554607691081665720294410510852891761640423324067406970547163045798480835964678504900484379315281460907957210256822773704180140750199941589846131183924065724294024973631739110772258841491582370473432009426091664411037746637634188679728650938249110713863311583260365317146043398771541363570010314149177757791083090228953833135632094445435486257322519762385523249739111547667596943641791945432857151631005172943713320141995809696427334388000731915727276058750614708749243648827156631793502369077976538838596890869095857498727632102867351304007639584170311878696103915863469271085111866458975423971640335981586373471503179697301958396063293481633881966244574419949111989365587567310213671091880578463710287118169866071366258700871604020356640317785045018293908852377883258752050607986410611776377758857132524306149976421908689189457873460060761379750075821054579829243798524260022603388325138897511657519457190921749976916851012953692082658981390233866438609815095834520542346558214275415952005894378268048768388173462011781681176686501147721569299724318641488896929930353848972853352895984597210542427990647352338265982542314257760589318855389335529721300572008029073488263185628221188653075267256296412108371486886038404773293579085044407111011921781417117222037451074958649691041601778859297004194171274890559596206329117312110914630390087109257961966333118778518056823239862334965355441463420624367507737458643748415206489113601349309543258262597263736013333039311479102796830958504047496899715965244744251095088015590424827512644498313217853755386221047765689298486093219188374110801479542404578152004607358650497247613543258609097067752858919205739868541753564484476047661875496685346483609977323467619151299401833066152984963925884439866734887667146993657991795174470490219795181334465842659005115221360437684478177120498629559127126874365949679918795530318689192943555327931624094929949110423085359366310535562704676727951168789033075076790926682926197591625418955581361478542268841103119458167069801056536517937144718901973379685950161205255033739408975031684940032709474381347938525119980936881379696547939415427682459529247236889788576294152128191967579025124598824714745072165412373433470844187266147664211030352067221787113807316815718240813715525232748330381109598653828034950567801870564528380335643049668720425850101598208766573563786463144147972251183062260787386952062228082292016471687799398530038862147482781887269643431251148593858951073605232059223318031009498078501784552348917739879682238181787351271108712100434968991218988467817718761223455240593872880843302853374125361536807556825069516531079887654259219904936217527027150524645472018409219860147873150685539119301411439466026797407363244722008639083429454651359210380102090701424666738487866446319155152924059574676333272634281735159178478636319799168114854886715271438273606869043415078840180773011647960963961330912139564376828487686950041097193594028065564543234320157478183902870076405219537077334239408733553931399964298085363468443165290381165800017601436961564456244764579587804584959532320678423149693423759679547259679519456860580758242556119461818786245333028171930553822777390692489931515928553499976498397107921283209417730221516680323856851997971429068255496388752595176555069774796622029736184146886658144806260965495810309326477837815643577888525328246632388153667277973153205189390779574088317744100518659309279771953911502653596576139728930868237799695219714853517167931518012228732312408809939881195873245785801945760328918031433969937558155530968916373300419270712296689403532918692676670525872972695003077213003715379260146323424748469629495929587222466738672509177768484103141717558587002567674850980111612720715414374162724129042006897820990481045668970404646169027279176547085734197934488097365642817567554924986299537395191136546447100855182783528510444804843179423421735259759313078346904283602048819444277491031239228350599775571947156100911390523656025466861520328711712157271956447678774077718568259692719536786099272062639930156957923982263825678570680206022705765863892724632893331581950438325060606885823061494286041266989743928797905426378288338768959110499711209122156080022492191308658726680589456152566078273617122554803904806202960260146991752544331057075650078428647974555817396088015291589351457897794072060423200141192883997217977960634278132327863189519928679868735766458975886760131992677515563455971340844962893442144097021413634873054566099493647656570765436351293378917242059997855525093996529184604584703113398029097204608346439108926297020162939885257216187551523451550114001372184521025309061635533198088186986599291329351515592718806733509361504315662312742383786339602155120057704710870116697768466674913021293526306680020881226391323478815746670916817145438874522709726788593708943500841808023509536130538577301436267510324515214945875740577840650799410545714892716102837128173930382984577317896470196049645430001282398936429331080788182990518408632857297044310443814562827842887580398158684911577463452862691498095022398135267282519336603298247633112575519002289982230474898030280018827349794757787459093164847802428801227596286260014005081496613154507961644544856935795302702672457636706739399774429293660801680948522707150240546646351680539643095566872465983844600610006307079192257028472608505853178366617848090383016746207265653359528124228002975419275539385049150404499070472593364202214118531615915245196763627743681171014833441940671253721611328153039182671232463073983990092371356543856766426763119142368214165924765133952619378365023131201317524128854845562888579137971868702204887193885156490233946950964361149160876898044987942886681728563799696350798613580912576872047933480811195699897369566876575800596223550930453270043801618695630249892422661166148095012985711555887886228570920085218884782878006879231801208891906891817867702687737317243054649152250911019571392558660869140701826464846201880353025689080923159352562969266814687608399567091750033716146427216989161169483292727072060167939333165772005587370402491119921131104042252462215915996397672701111054145982243577823314349474556491771572362257034682143094994805149453948631442586852310103540407224449764048445181027487064055579623215393697822432495170406576133936910844160779664382930694690644550169774883227164311012522905987334372280295742617150361220166835438624213670992708185880985721454525287930618212657189460124784207646896440506565646495221459063836355205613173457294130814147474378349625451035200718661209886745685000217547526552941155512290879355048009858567441956605146274155703422392027835688155789343556621198166111346913611475433308713999422001846668183574216457824500711970485417019550770698251462837161097390053109068822365155026868418818812502886594740260266623231157993286098665101390271444586150579192348373139643979748591413511981024933088540629793594123241987361031927747939908893330017997713826611622720639022905264470130677304097618641601954996676794553358374417741378489706062252111494365448948815962184199130991538601341201982551602186997628392590255151507837962745216513853809743107182388302897512031343480370595061101645982666020386545159137314954461262468727315765374413289090233995334891192220177638291688357013452989461692787582713055187390195687619384425837201508985751301441960838988859548144610439448948593636144040100253875300280449735777753543941953628605810099799268933379669927819921575794554904907041327354109742924013610321113763245975111271913567110730847659415562554652332011430194805690451335377518974772432159478791879429187907049266505471143004122217229989036448394363502803815009984153145060657456730910078247597199527150918762006261606384624845586634643599654637449766646963873994696495228162723974807756391371195717037990990994338436476447469820859605538175186068794826830174336856845900663700472504350364008148676230931753689785627143477830441451648295795385833161323186309795856954859800336910213376532704297057810737945392132480754097004313984638654652194429731677206347604929685249608735687753011738851335604943181329090501975450213593926848641529737283777466754797175827714860306504556523349178857027575224762495579176135681820286140689248998464251169566429228703466351153751465232202512077592338769076357530553346783746673085336532474594303303274921388572424808814121003763812939205802183696281633685238620746155714379688551358896504359611699359670920636249295515513020219129212598988249840570566431632115017424825676914248852190684311224368655956783089711178811635918016768599889999295611577140327347997159785540602390373864484208648263227372337628357359558144112481567360946626453660566729286878620493627085312754976198947006788244942267582478091171066958969641896517747620934058249691354581668270391119387220329690366770134240570824934069539077971554407682408148480885754003200118312031442715591743186858206838396205756782103238033096304796204607679488531671290872147020732478205121778852742273885641676100381113635131293034144488292262860621499308298145874269198720382685368984060864699033873029862543107242637074622950811427055029978382598848478076432994501049556834502045360857151957928807088687073850939755913656103554515762853915879386471645118272850999802615387482957986641933544242317200446038323108628014715880599169999320459452881594122759869436533762946113101386112038305180849981164696774976464027682101409081769156797736880755259699568463824627180202594469022728332754136219632230284344412873879088731180299106525619447233178536479725825425625903992665977993835734370742772244422532445998495074272787573757269067141023012673551969018587145815827157999325506595780126027152116337654150163243979861535001856081595636239743159469597443540189138869132021037532397015913018189810369170920580402315468834191133073843616818918597449571369511560128963272685896510068320250938350723152886750233938280305664706772081381381977818439234502001644339105082045190068945619703106335503944740510103656797385140467809284296744221578611126066219827601088976510803967188631328047015862506230204384583083752083785924285024535741048103195026783417513313442888460946992657865448758299819455231476320076893743512215023737808764230633291645211029874495883278749965076467804521702034700936070612433622141864498666214478623337033941430799410884603071957103357719733063558079020093765238499458370164169597084142222701147701401591884581305283303188331863006973577497305003750362858532441788100869678531143087708403042547961018347606034637712953191496126088336944505719604085262492506743516785995685628518421776950707556363372307902804448915931942564403056715463415127652831811859401830103761852668340698837021731566007693419681035643362135285033663879183613637796893929153270456075947203617755607845207226129179595119286550880305308410860773496091674358279341681922750119538739675277533798390614284681676236561214124794645442110439368360214401237124463670349601313448689641676994849816553223768576783919411079959672379036041277745024826691971943117163585686441441974369459443011045193708156960810101400189070155366999308756060295667137313178615862665902819929894373278942504873532349924641847811764802359649624496302460541515676849695532672122262329751294405292007216904801712695537474859853752756556035439947860123070838059908517403008131522686586163888884653983306343060401236309901417177741532798382143322774077722491118461895878981229814449162763966165341459665920566247114342428357202073179417388633746584057413874107392752910252361327798377158677689646943377104374241777029217658982793918779236910351984326029421795696452965676108456317916285715899836688884182008246122893367283202869709820441456619466333393707510726942884565402600188858603526077023929684908924027426436805099314611252884497732073361867024944467563994277477314081748521729728380345843084731479492808169895952930163384673193266583952615491648317335260132198279334508503934545620146283360527857526479179938216650955956152042928006565112153824337835582777658018217442984977995516450988963996079080548653378150877525223850717834829037517611399939800700398608602085608610836401650521771990807131425932179313773027109787814925701630025287011075371620780026103443657149358026134953485656146822776361269429137649019171665797469649510897367349247392995743668555634811712233347668324906038825209035326346601687876184820291153423247296803812285468888652949640768412614299538041422540007730066401445098772725196037655419590132179009461406410001195326107507429772483468907236436461573317801898683718550346076211567452376977656373035249220164462007217185379816717358198583102085814377077362631936150231728891221428120526902087085320136188797803659435125003580298898218859591668753438580576885626021371376998721924572840654242018544701367390198473315489387297858702141342238225193684816524938505238326848141150173606494511667301392172215096510538939268996804253205665240976142220050269068698383149319474387024865532577523073896329085348272967119751897480249850116762177895272079124521801646784394223615216297485134247142881338553706630994619206085458674958995959362901197838703193468841883214097618703432135906868817096941909702679601319652591452642666194869797589945285711370003959036423059056528534416033328126061894355978944982910435874699983448161163637501657829414994452116295619432660054045829719105280921618075761369879501284759182557167872749714662275823582416002115013232410536170241470748349693458639535540301184563038138588848215877126106898601649466526659043782014374644545941455012319037958823120402560921851874623960952096609217581346810468213152289694041672844797494681341980661886646787082354315125231059323919516671734454779153131588847214549695868615602616431743341988093827015381167306038408510237721876295333468247842088869872433690554932890712817423522157417299868956241364885794986691921478781679273437770412398719916566303270759227874887524102192770557348667252933247956839067844157079418031782719607245734019411389288256687236751678742681918237129962468349278958723938092879432081626926631647782127040930616779434926934544871199540671515845863547900408953806803094855928070490715520999165501076329260965562225847693055209021750868811127406635017293855926200051579974505927850991764168875613977013532913297623857986798647924682084325601695770481098345769705685555745277279449729548832031067043087895723097157135125897812241970662404146622542434234058391346845708081355410083556691375734335522176820159005511287422123620400416285992434024892549205783661278162455868411780446846810997066680978895879995141984281178846897391675644287744600730109020936334567796268922058774743232657216340430881735090658578067213400350927409547647538766515113054086101408998809795253553728799917471426565971628426577114406649145292882123311201427291791379464110788475309655715022704031746014164050164502600701026493188609961787258084287484794826712465602311160612829583207680922100443151233796897895321100237752842591629510809767760731624960316415563666996614239432238482742130576798682340961031772297312596864532068788817582695567847861220245386773556292264067331291981955210975776426149375029193936194770325913526944498355302910203800088641946546201499919629215596250337671096970483269005047045684555289528325967575900154601293724091516427248933916702702169905207623541152460010000108525597547773089862979656538843686436286065865289714837114397583835353132847300354964741333099977073777752420814136124579177400982549320601902460518377333457081408119297309393939804732906703377749626518637999142915811958108119622025091047837010291546517217866264077089705574825852704212851366078973569435132068279320462362606597327565578838450177028555358572958744661867805464383125895402063889337989809861561260876308910599461239456286638340576844948260567496973702555660011450936784750418499188374834004006893784957258689010104743629194135610318395993758277606732225140509289112596046088216679591398555401498734021792352082997443809917654728921947418802516892183439513591714155481780844518363847734925940911710332508555634225626773783416825313468029791304225267049520624690427951854161114121755393535829720614149463287878104576803002360020957323628177141705338687377729798079249268592710344685367130637642968102423608870725066207214904783434201553200028320485552011548494262677442289748126946764228804190282250971822741514313309964423225910830765779246393644594750116687007725133463951924637580546852136323813449212226056045256991094010095755459161662191694254965729098129909280233504677252411619210762607981212181108619911348733690806764077226228936049960748835011642907286036115419201642242067834371677138690064701956975651628986820595172314628439678267311921146710517161143165976293411674470265328309371177806477256236012278416967277466169219576272950994628450152603240014027756123232549228487635364523536266273315869384577602235443639265138680798283030287806888453037246524708078601608130234736020739217071247814790984733240657952514279370669617276843792278545319862458200596703777432774985910389494075493510356062097541897701003846704654420559583173306026147782018480441665847555637668511566090484611296946258817239187334354042947428626614322454208276635892119559555807040361378934706210928782718344059940846237053644816587779924902922007428376101890510937235475884828753470495685228447713316766446029472846860793988400541232079003276069965735362723654960678832870021432267559337543298742626867799168372871006911682719022520268723562053203529026650422629786054352366257437699701859058788124766607051318604594185549022260977770146514828998341412131967731049145793730708614072024298687082218519291485384433415076412026313654862329929044827903699237435489388477563185836716094105420576761395274646541684127738546860584326468184515196238897732578347499999818879021441415035958440286711905947532416329930652768562419913874101554635800778918628726530388855096050037010011144955502260794249658956892293746681911285260137056064668650533856045558411038060752476044421488266030739075248099563775267828725855898030331324409548229303098017152841757152648548272344233048315652531536047637365017571084754070915502715438228061673300075183974773876981784244657580897346718902813960524677602402828582499588367023986161543482814055711956253320841525138316862486775147007645116881549821926611550416974399711651630886657732035436877806385752261199151724555936501984580284122483187940078475966873759262646551146119173830248144635863068456235915115331074863583145717446001993985135332360519967358363368806216166425274856954254308889622195313682923190731819018449618391106739636968092873408444695414487724279556304880229916097593021220796485190206935430597534320250569573322706088496524239290078632639682022388218923510205341470207716539731833011157845879117036907157478702237107345319378893285890903765247921343314143275150296071277812209903493886394647234629418010974373150318001794602656486420284982797473980592316358621589154547576946230394468794693425759179070499705326027132350899289187667013012572660460908929006085903592320087821197710276832498521660061952231815439111324331381730393366367745388862250462827384548446108199753500378668686275060157009909810657149543301881471122838708500550174848722841059424912178914088705468904189464950869787696029840441327924405473560825921161435866741315214871687996539640080916097944387700223309364405971386555294785911449552264045925747253478900876140052341014884061042778226531977235000523624952004782997274376389130984950834205096331370547903358886766996795968054842701014096797381650247619249597103346936619694485619032047836517822424383538718686794154914710864579491356527543940424186964214121108828344943232552337049938707700149778314585194685338493746989157355809472983235777147880050160734886255257327778503748784871373514480584557635980991474315834520346423935876921168831745430419250798729130201699525266117351821945253165403827641615153852686562187113977980627887703281165326932636305169120579721401639951876208707921198307396129757543960067275516472501723763333668939547221985306941711197336351223282853600026746780348175149216712412771760524045850573384287741195002505628555833617498793816748083925801765941206776806591150669463801235796125329482508322006294793488512741358517265450886649499042516591637975089326660906741124353880286955970563509509873479894501576874633797945952544335203087830136181390448082656520058416688013126391171411243258879973493055570340439990570367301987139156414198507691980012046600775751744766281510332087833407742378139943506513619619115057417223966305627517553672809878439988399963652664607215658621559188571186579089719989852023497316416661822679386800538927492642868205731029936832741177322568165152018095853243999856767314126226381133343221852168097651740615222562807729493628689190855459539423822694331915151731629068547083924427834220071162578985430346722288685671648297692069863526959774002058261064630209501775705896330087695007294709197233703224293999905135005189807205948012163530665369323195267530842416664820113115240331188903311324682624401260392809386563039387745128260744634070241749865759609963312971457412793086575790687514424020062751583086086508628405758958193606360942569135440117923493442912430658969741664453722558885354209907728480153823223223604807256289671325220467088227811734944508202626433698851760184066521508351050794235080939423381960659436173356468517999270645243834730962945459857855780816375985998308400964048561768023488796963830350528760033640501048165921267813816073072522434612232147230809314700640688352185010919665678605039608252522030566480669553504412128412873407379417289429927369862704283676334581662898121080878533858514813362131135639369546659493497101661208959597014608526327992824792083795149424081315656894595336103949595189629844786863850979117894732763676446019318209332861562526631548398052624811136539156711932076551422800726557504153636825009515254822079471997367808346288879718559551655063937121175137980567903002141440975247060795000170519630935827117680063443512632103104778433259199662998975523605822991355877369366450728073050215244415747533979609200711865729907025751621435773464801894178130172670147652457757288694186066329009128543492601428471229390346963275698481435317706477600671143305555263572838507288565962369485629186849643286710883631807925344839464897938937630781358041423008928938220613694628539040486783629368476562297203257282813728601596971459541067835916961992807457192758853957805366688353826235657803208125603986355002765188848369500911340706785738907685573549043408352747788184252628877444943063128674033578459543500974598135125430670454312956615595034018307868010636727145888739627759172701744719142889065465954838640197217607100235765092796288196511094161094196272892135922525355146864574666393530317866470778887074627133500277030837325843184503834867860814110875313580357960702779072481687376978414558674964623342609060473476845755104528811071723795780787669127404465193847807177364561768558494849789541862933449384788340283138093756274511970323066234688082024140817577743799644597312959770609218755980018227636003675130320038319925878958145201930293276820326494298683987600990712164794801556929559056634014703193620808041323184769449792543907503589488619059973016973961785543300816092646059956197482625345105687502980331944084265437712217534890289934770388339947893677454977795735462553383930658638074798863662640615696860935157524268653207958208980616717663038441030432049981182257385298047013632718225758861435551995219707752173832676244264944796723482396453813917441334717090260138480060431652536182812726451855650046938379609513193422459257612449168551646126797399615929182579785489219504468126675094339643735986806758291673858801383370459122987605759056248374731761568435182493852128489966244960272989877695956276514893558831471497145145338186100008658992153962995064705959845513117063875903760517035518558535338542257600000837254100651794630541098901814755539071248813668107794697689875645080447307542671870983884024490212315757127725586546742508938948662237938063527902327373306997949235184970782631159952549877278574263030907623006730399637789282784920901369955976830593729001220248075683612240636782827512611856835927192720064608794623388291017450644289933345138613810228416695021952107717068196324715749580292560501876832139539368548776662220319243151260867219547861197753440924921682873162168102090146986340966812804427944610674421145095090303296036803229882238682345414515849500881120048140531921175589922117514534366210339659385398269328784297481160461090973685596217347734259433500255351969458830770590351519532640286348949023337341441457810569137425113448869720791102134480329411096701923680232629721975689797983692808735357011928182412420178402967527711198493210058703676548849021786498345126300164971692664761446080380119434671137968787971105630364927472217290091864630309222492961831861792367946546451109747546950432362864069044082084667157405083228902802506273156150226870124365724719390217331628341032811112198555750990531804846641596789502069040431930451732309509619918493701468046278813932386775119337942872415877055046491871516457271744258438501265020453258681886357588333064586847219736945860784425058114478981746834405926647151196573059757455596043968113221938891181730119044063647364736322081171077491555281674507124220621043140190285292037569896839245146279260424196266319660872926093403205004761292409965805195844251866042269395553989105179864311357813121709204110703894317456395816244608492357913504181984150963601555960265145658547781034117730131659046356541525601534993163355693529336265775920848767711089607289266944773810251290269243937812766714799786882720736949520257234169917901665127976270138367167276246916284957207495692712748415805638866962767792559394279596367773928057685574325056630981181804041144237599190563016427393322491165162476660047511748787203724095033847755929476083722324990064834889031703709280038722019557828551485523748577693130608479473138526130268688076921363639320430779648828009306588950462088930472016002860047891127707316968622610757197928329465006668228162932959213254721112376902242686485229118866286511943238145168496043229762750638845842837111076167972835323185422983520717234801630854592320755004236331167966913787275179265886488294023563925023240033147724936489418674362539219399173879445081785263049765478725902874492657098674757763556624000604044874566597953957450189004292445497235878585394390414069989886727977619353269855368615132280272163503402840925926421765395660051750849545753665703229111670709736392528462598218578348699984176147614699660066432446185596792928069696845295893551645913418135519911520350140867361190931546879807188867435249384603584876611108819508671545221478834871531096565905316135268188378393424786987135673890786848040267049480578479921869908918081770525285372169663459773750794630586769542204248700104456454046534897824575858710899096614376142103629914592153682953425085566433208244006322934588405468952214652127339007275890724234323301503988359642554403069601076848801805375983068858603449124647055414439175653300825889730719739038619598055776057742104837124826185350344054899474218327997089619975449145183000985884489154071764831235887526844405629742671358596295476858464660495419092828219581643759635887463487793242922957976738604153538409109751674060363969262943307149452662437868255329711572770707694117403262702879561927439210563297396669371453646606547221101236588558869564917147857192353136451968756970061511421492216302697760792449524845264938357354961263921040691112795276975464834381417194086639531454570244869374108004060335698385939310191785363379401255180084100010919605022268286738180748843787286249239561288841231936081718624149361478104381005079437740187730326996994410818916401642086485845581866900557834396720140005773066767730271564342455345801257534082529875486491457160248195150170331250008317601545752133488705522753326414241814546780864410177724742393529758415529776373230577462330256064402966356128644548993250341601154714004972446043633087956223972298534746039505877447739799449617223143433885504531843683950330661406637379746167365828885257761049090949389718859393915673815017635553101952416851478949158287418492213641222569164290377823641647363720167102165707859575316897771133144941992167572876778587737960606275065333156101000660310875479350686659058247369440279071095746012913136113062485412931543302319835677476031480575876401907391232097627776009496673423494036904495140394892080055153416775806446482134726100181748890271135568557223632852379227328972439943510074218551899655433719662824920155499125899557816951290301845216277998799327191267236731186658499213929896459624729173545346450839901329029798291763064129155142230131349128385064809728138892611684394819835770971591941193151843491400420876562869149681047910248394094918085616593462832302578203689862246903129526289796821400310062229553446986561546328342069065023639275816394640809444202773588760111801043098101194612140515792424462488398395225936429623816615511072815230689983757870665739518302187344746700116400965305260781530105272164627841558100081561710218208843540869827781619356055958464934643540959342234802795645508215839835765734091508829260494314307433840482217139781909001645351189484588450427038538745993295487344685694955800873263058588567061682522697983336458100039285324784006951226969797983136137023005188093782138063393039201262759935628368558408380688346427949826750429194582713423980002013467394381335595350701247646815955114345602082608260826480971413085965924710506620850900385504420110820355552512171130528450915442892571438347413121667207659872902047901464080354259210483497442659193129038541250341348726211199339233572248559199713397449487130287161617412858898081205573802780635817015248623049840908630991839393127442305423279368624138934637179832277809687033252367094913140273797607439660232814563801425452509548470030206631312306006538887781356192298902475566469759586977713237118461438780994545813286104038642607146945181745332925751200361697537675950151724348793882314752377549695656492772038790438789564799406205653947706124088082017251826478063178893787924274326636835368057840448474608888784573475633861296170388631372221026286122076627220924140313647649565460792659287926908697930621914638336844265946109092383645546374666579050546054614069018578763533751982466256714888568732597106696575498197657247640578336392917199964918286060314264104308816864028279173519879170725710578237359094673243275665558523499194142880148876650345198509604650310944671987262234634491018426313768747879356259577303170193196855828476499838073336774865882771395589365955578877118357989468154045408907488869238045017533680428709045696496477771754108377039273660664410121526872840991605746237059234006141401297967428591814278960179124630271330219819993570102140024560533654268381557134806936063555499835996998914612563236863912408101715657300524817012741914701177977951636741193527707886728446852585222671160609609520377528059849733484265354825336734968515106889536656374656276907015223412670864801690057037348850132505473099447743306102269462949593483434744413861370606196194264080481182936834107829529817769823997793311696109785121559325617574800764171546110829870063151494991677094278152257726237438386933868780088464402926452641827384079377351389145193468659358338038111512557518637149252538225969498912504438533823669017134975260070565334684395703054449951651380943531464238600889566765090691464864530938640505738529644238031415723461990705352654338794083669870185085790995063641258583084075770791381593656899537991147107906114229771297413062997922301133231291892250830664050820129648404738214663468327988074115296291484340365125887836628454736955342289025709805364784062658423800106562696563257557784201660212931628360536263733766799194232716550830811074885461744728088982487063346770609666023899050252457966342968153002368150101258426722514324295407885533219701898008108564574665918452733109572405832848396432197605604338254148569210256312055348390985461296931710582170916116900255136447261618206292031219833688937558542942069231634383257142964202826214073976608356640982769310650021268431698529058192982472008411119478054897918726476406036730156936680617640210263702367280959778216710363962063905266273873646169593680815514057030079156080607111716022413956950408228211248649903443866320253628611966657412306009149501643885913873765420546341933767839326487538002633645046083589848637176514107074448284527239578016213524382214867059285460259015514025297137996678195563196418298621114373834363293390278069956219809365105428294936629930276602073772226957177970537990242110897154685416962641640061896330646586396224562871239225571060031537863942295246966016345135070244779574118295190806224120776537799453911140942117045021042247579289038726981947571207081584151743609340647165618558684133649047654923557910661816776233934301359465697789411484201505997113960251246163038870339540087577400793473823221809694564436195670651260934873406704417160615834119970667053036508637266509462804760253311690994339101548612972862534938874725077948450585461198954658956714518510882518665165073932017859869291203633701404505466104477853482829020908499974582933732515389533873599725518564565735555396840397611874692677929618861975186345740121377237414314366630530756121407772202367957272064337216614786037775949051463619728426918608451362311044021102551819106744612966609008715976524111744892768208217687552318957889385899822033382241596192542767184556525358021951297197189569512485628801578865601124576174388023581920010144100028567182671443865705765235459365219773844322159917969386220966256730511612689046410807984629704548902324254189068147216839089592112621929859436873685745186407499767377791163800734576742098004726261879628664002847480542116635090889562936785413326500995571705670237977736501575346132274897272154646572787699586781728263213465824759326289272482515424164074991837489260593647826617274811447715030859795892375377638695902347158997244178043805476386985025467823420194533554409624523778687416081374363308894211081994113738759020414922874731560305487290892454729897256124742259191933025997962951333914518513926563500205801915919051314666056168549135118842727956598326825439633496966858831557720301936478396295187230574443165076314591039967951181622947833712859542638053788276929841083302228884802626329059194870015654245056170706018007087586713368871497587592769031455302117076171618266937370264675029542153652138292580290854849273980067344797284508268867775761682825355917816240436451736354825088542906838763474663670989521586599865434982167908767175033320384622343294212219584469223214359983214195291938124998241438839728526121298125585357443404215906222762050946587860853444499014144529647809138798045192697121769548572731473132313465292604781901589113223185769641696236095830544820442236030972169598259717411217884577262312684316641481664061329975291603766602943412508741289101227896117056981127897364055647029090246686598184449518212591968147803825124565707088936655645931422940155294862633175526360365998330617061425630091365836874190602259599630832696323986845049170325649551272670067542184779309531659769445575152003215100769955508702343237415160719332106720601700362863600679885242649654661726166547440956967297899938612048128162921558449792527233344369101612998231458724256464199656344123919762217415864144281297792273193320122488546021823088028745069102487345388233893622083046870047701479714753450532936342710615211552633764670241821279983731194843343791975512526226245724561822274817992728443285837656684820895821518618571269164206797476357588053292153974991758090924226293972287019424781734794911415489230059019968454116454682097361450629388015375449267419953818326681245382453621207316593101372931259173055989989269226551197477811056702874103733895348465741358499675377172084978069363958908865235563594692523803782629793026376793977844526591722358073576334998943010507448740586765681715812316691909398521223622588064959712307384952008149556092863090637375735080019595223430006632902492686315060405006091485599756399519438626571692512419594660602162287045407908577335863773373886098769043232166481297688625998363909310622118739844109736565528662911567147483268916616911225002313441415746753685494291210363881651915606738380168766255714338594871991235388812470008607365747776118143843606563009155984179699603399257455623398538826579679034343284773351071350062328363333013411728203098637380710295788830923101734641048181601109937694725690059008847966677690287914654777474235463168745295639390826191121445593150995041370536833805124694293561231677784393135061461163384322332677120441961060047412870610240557484897150464632931214905370303234541332974487643479191381607512750386611688344719251505050482330492953007934815709687857405815331311171394681330558332827022376267484055486645180039242413570573787488459396898070652014456344737648231051568034871988040771091734120298033665153044847675352149051412885150074703883804414865433880734242124960745558041908549465089066592824781899753726454099279893997381932998244430198828778396187545859988016107668354924506649910501500255396211017581570691435001426186819811489692877259872883591725030814725280772561904735284862582598785903186604705042872903879913615823205606339924435991693659696215222633686963294138526029664978601852916257789568277320397607205019218336903664765596463394221138283370140921172793985478737868061209534609774514547335524317601696281629509395147970214780144117326576318801747506431171462566297765544522757040396021029539967489807852969752816052248242074539121031672865988917139235399472582275043300976576493892991647601078623387763634909395574679992733150069896889668324480645145663877555110846814415531308113604222834813623407348653839117790438608530995948780816234465369899599501787087874395210185632499619942835855946094945855212779032643232957976874641260296168549136579275319739312387449456451126403764188204791895703629735981774245190459171674209353232991237244133680957506226867803010874672342854220772308632273763291256960752920714430981896122807077833369037591995709525128766951818753908738837096675662067168054196857898611709810939887674034070358707204317390158480412519895759981295312667016310534013754192747275534524011265330803021249384682014055799067987456380768646857522132384346529047257023909078207188366086941899240585727177196106839036474589767658772357806662430225429599403969471347961796522062024726745036902693612982485137229948921422371040846042359499381853566284098590561362963183668333720105013258999753265686120653526210467096626291901820324859237781547247907083540542463860982244048253504419914643155001336437509864568390488986880833663247910636985101524242082790712046867667587298525595696550330436481229026928400611010800455842590870405142943510704113467514244784259536344449845538875410933523874091774492422250341321504668284954547510439783633190367674259643504358735405254774576461444538896165288763007989567022995377525773866264343772084597519321544191407179519765995737148655109282802993164365698439344874017263282719611813661149761837997911202114389241093067667528759633119357214997154086627767837036681676597444621467049537708658800596225247574272453976262970221415013217132435829258798976840665047808721409528185306339764366244621170071825951603772166018811708954514519613446038965312435662752413545616446610513505103751632949759333914672486521052007625543604845064149173815142013885824183754994718978161996207168520420639673055393293078370568483791747451576483635133438962302384571531877724126247194806443829356016126925188130733835322865439701572929883355067111803955518915589109246227799474407390171902535509127075959624820705204857219667428249185241768816937105549393928420803273145988152068832045757665720738845555022017060733983944254258818403699731638411066815614476631274148539030038663731492828706707219981792758129814944175745796323406088031037510153493567019806226111091909228194171822631441610362845964057668840494134174392956856088601548125641981694859429462375170719822713795467842381207352966273133716713071979297933049432602302203649644436129833486791108405756399787729308088017197962722105882521090539726535695985122300156683044137863367252150305540397182910376280883006666114788609550375641194343809081627880321404201572432250558484400257922996374684826193941870340458899309157121801849627190907868616641693536000212809821968645252658889376746156832425789838513784231362035717168394550497251360907571174153748852829304961968612071259097809161055352738192361584403001177337753548138667579428526745934752420784400732895959346750749922964461485779157723359892512431048250838044220762146111609056290624863861240873124911875191904022038100603623400108056428265959802283554207223149105087338014876907864120933019276362500538176403438694881956015514782098492325852544428765779151498108604486942401333708024184356808498118404494809598115411193821662425740422690610269543536613390171526370801157602160392082781259972963837042230271224499578458368051666103396899450543528970861729933248248901581934743660727340732985914834641736657393986266694315216053746242046370621582669644888733980497703597920285012235669779999274379840299614071321321266347107506061585016128036800415752460044535305033832688928554380316234330185547229932066013341541789579211447570267964238106458634293762816926340203421520419032106029729638493850916604818190678119067548880646132101419061446247390868504806319990480036031819851302810112257468800998918932480171356018446736916685185768122646312063537164488915653755654797797514929138823998336873078733950732340120144343331462707025329119255909818153116772952377118490461527275261447132677849121987985358979853022773519317282444005256041496976822406182868170784491907765374970251947820474965506990932370221125994639019544017430800951091932313490354952077480401672220043370002986994894274496480092988475696253160129178644896918231484236532582547281321432558447390132492431935425957840359736234531327935913605334716895220083554974086968608470408174102332839413483157598410352350220112821501522563919096050280347983104716965985186775766257759744562639435526671634967908566073663349486299389457672273908479387261620782101622985136427797449090776713478324140927291856417885690967248819783429335053918954303189785867107621769509206963751253507714054828891405613197172901904708963141581458098545709114485838280215826091194133709374705813094893559162795699019470192290622078352638030549571652979862903189905466801173237937933092129130963894767087708635525546398719810974779235089500490400596187249172495297416727186664075689124973146874864370072026705425725565959409972315077499015947245033488941515006422109892110528931775720764170667221965098726286998926446955076084914377816262971853835629622808053786382028214533401570732200855156895810868650164525732409653874839241970791449067016362225223539605661070126035493462445481465143080079487444784910718856419326989108830343256227111599122401794287884159123831951909902605656275555008283826750621027928823405001525683157855156775416724484489776923465022420825462279739280508247767506334262081649809894944506082555101818019767206381961910974570436013520553580015987789452936470030333879747711466137318245482912181378450875294641075732787644496124178526195144330315776255005013018353749315336799165113684616576350725468671295370011188892579967823822715700407280251523247682513418692886991588961184500495714821152915845760056450703358402063503637604545187349408957495378834235614086095878547740853460821720840758973174755755137651132242336821942137333465353752482372464505991906191532833644215614961008502147887818256354000257742167325185084075601753964080272868991288120133470525320203881789185365769387537837167399860584339244611732851357432504015303502739362236332979197182271593845834312000578552433584072548496814082587173924838377629676630046024416316478409242534659047443781319510530478150028978602185112373249951177612249056141351223275993289770843109854645367908615284318306642783377166087522520902473786828906797124211951345917979292194841872838307947365465182239789487032475563928797942622364254225651455245522373277770245057389398816925065579289064855594719892338284929939363464727758387303550537713949861997817243575006787310894638159547203941454583531671837754734559016810784848432176049071160323214287401843355910277705537808060455987254528334118090215191036288050062771517187922406215058186242791216119295854018120196280665148608175580252780670410222827517495970398919652861737095404292532022137000853723770266351351449689588760397489245202984244562375655728882430680068088772340873205522296174234514914454258107021534456739383562522975751124330363674906947752111454833380611683861834653020784380864129786560979557633702395465203330545544834303141003863206215932685102241286430090866573722691892694883182239055717204824014019373636618616590781661191751810763916549992540711435771103409585222406512221446009656006637530750871335088414737748226257378922853479911501494040101403873969202324397900155813134883201805552181852326391388648525259066959836307618598015371958745229360285123852553645115384965731821916079273808477550714020504450076051265861573148927554992377865133834442297882930310614914988919346100210096725513286057663450508701090066766158366058493386249086990762943636650313203996248249964198936563243964645378237568029270805269883955496353227763227077579916067528089995032369076340069628722520087577422577119264053465542442882656133070334939840880735827377853299875338356055418683487938506057333723262200350616928704539136584143100872511964209201924039045072780485689974730207920016004575994442876169391805017298721807042520839467419261652808185351433319897194062985247148293244252169776222799853794160499762483378324917528604864439991712257412648878464604176301706724982258864409901626893855284309423761663754690643209483348683205804434584115994487632385445891975929334292650170903139792268026169220668023561129790136321632237465233143025349702549041703544938039563018168035946179528768898090177443508597153997323867065506714802983169203567885810130697799192954097006475983937727423114807307758331875231476620219161964552107605019234304671143964806025887247426930017818996393576779204778963878470983499815204276449178589955246373092953500233775886233864377276738952782567065125872056407810134722550957868852392533067706669512090103748497320435037308211444740567111797647253800370596884649481382563406807315375356250618101297954496633155527421478764670610190898187441868517988486160606550675318733808298347761531591578658986565268431282670707231489767225851174063208699774672838544999805526449960362965392914129667579926405720515389339151160857809479416938076328090813451989117096461824880008061090406741492654148755459708410059525455311316661591096225479694192405752198302398294529504080373402778952933120725575594026328603160001525644294350183023626144861821823421695156998275965486510952875433547596551569528671893001442518628506257350941033725634767363853896666301783538322673025305571088374817201667411887551595154311457917429410940133130974316377050287672477930716723260654316183629559609431550082584013949505324878252207159619802769751196484232175553702937813260020737514829162305169019078597115052063829266192533079328348455912578006041695959381330516626385377110167133797332601625180913430947421213871483507434592877853570733342037134163365384033096525593237852125311770081164551817682753974984765305391272541472119693600547664192430508282400088413470009502717843824055976241011797977637586529344527105092511971022336151781523042476929980898024249161444588957390342931071286535331449874423723369857999653573927507416331979436238438940123629506524255847420864284840875302825602299618413490502799148200848603725926897306930025765739633785245972563229937348935475445242446134963467981573611913099802102574271887470381155066946372987003252522787316033747597714991266278779970259784096656509341556476609449621098979636978962358042097156312126839157750314057388307322749543318737233499683829205251095413446093802079505082269825828822953910458878196029401524296093487792905866198168030570892989577787272049827913516576672114420647433988981205576375162456133097813314683027284152183321088635166618300192630814841560253075700479564172057502027824263683021002523704925153917106839977377567904496887829308949542291801539115675391841872325078829952341980575305741539438493758723699119979742344439650221083046820965924151022747239329159927751248827872590173461554110294332200578377536256629981796816500980875156943358658101095292417947118568334526871978081642782300606815671334654787290710053462540840749791425156552976414053539627643868991090803315415155718196065740326215028252299607650503146046060762798465055727514871619637802590060341352452232319763357243100048615389232282443776745970795734363497678375282997934315043787776444849294852374441858837589548494227744239312603082250280955452259607919567220297613502381250706765458644474054556759578402022007573341915999493789128565856382448383577744965259042990207660082158582938685808881533900770132506584310494590489056032917122875875909383744549638725123613107182489031329040519881980756210759471313111347265631965719192895804182989208103863536672391833109507952174790625974125161579937539407189505161633409370975074426993985396786779001501000435760722763367270319872424714328386749209512690075062704045337125974890245287124356755782214155676857192559664519423169255775635482323077801777500366867838554330446181376713595477674290320182319157804100522624823359242789462568836618327548282151060829601339106264881971967203894545995693243375083773173486343733095006505928379475009432909157460696695732590800070683559152606740078050197607694555462070497868925232412122765457522114316187524790258357692547896052946214806292930195174946065278168834990592511503281273848867088199241616935410380600306827681975548891582017818836084580056401764628425457429252966628259947691924401717618866962098948857035201847414378651549790014230442373084809605107416411743768602208258489684241273096895515188643191480089802887937730248735187747773900506752194712301102716064621150943414411804518539352188357183687600210871436946260322034136111797546256057518394300927246761182053683622653911972202576573175732451804233874739139878673503053374355648258801708061996359889468824387363089308503401625637822363064127725952594607235400822984830936072236255863729232212582874429195873184128333158214487886136879540894966798915775487740534845473997228291821243016810832497242832745227831052270618379513322888121659852363857032034393969968142143984828909338048504596204952016244846515005737246643681433212949491886846053429162453041454612920619239383145776095248667156105220357829474218437297087955123661536360145823185144270910366949294351462775093315866094256074997058944292940652933975548609334891890501204035522097069240290379367678236509425216390858853461088383191072928885144667665355163759470081831376963770886115951756484578948200332308313093206596760023726860197762565520021226425884359403035961513752137915644424928311861474097042340966404695331465510499149692155269140795355394788505850835705890198075822524505340429426824239090785883635869213582960924446922470714954956666955774597522276552198490330062126593033740320280797171687391694573500535001503430308392899424793378537346609049897391315675195491485419614079871627361089648842134349003750861983985491815637113808332262671026105197397485052838043935252279194068743955817683468989095825388598228934142199457483397070052468742632171531631898569263755149913430418035026710923574457912274960427800359529290115953218837768010377545274695897084306448264252706279307096974855164471099926541898616010844181181906110680394095872848203516487420860484850733938461511104383496866982325137674693398563284657998653215812033947074114609820349278211492649671672713357834355720820799643332833170924290228987585667500875961625587412631039689241122003693786259104029560682456832658937301022770693922128178289955734644527011453677454580214015206828283398169847795086615963900134230084833911344053366963675178994314372050480311659403838952507525132104121881628551194934855299418455680396897948263952433464555481475370225831461154935412459656316357056052491038473548464581631913640472863454932365741929164024596459433742412092377357793092421428813403853065445268898196296180199783860752762780268776880116700138607335220873720081193898451929693562679382035653747363984738348300877872877959557308869190695415767948837320078729089286826200316899812406666861931689191369385143249470156579443767841299117693922843665854452805241560507599263673638786270579787136738274772186405880507026292162331305338747679697359958341114246361295396350375246978659153397897014802720755895706231514593984488740336650561584779082881680407051171240941196729066622468215499423955817241814600592311809406885486288843936115246226976496666843754794196252049271755974970238691271584742279078381812486232763579120244888128388858177657601487063302137348855449027853680815778940700135366919390963924852299102787192348647333860924388068237425720842345175053479318769060145537164768184631229827980663447768805812535278345828457576497590973606734730033360947013735245262499342658365304624469196051466999339549376450264803164630550536335978531488841614023588391142506361608937178931026834422486376978596376855539189168806530408590627251851451402263714571685145302523444177022095419075690255279139854785823790080502922369859402996080559067556032328643460645153056036428645017075615950217027348307632799483176001828470516657571454025002259227061413369816156256268312456493330852860853403809696445206554328307811734471453856233350445456922970609556210714921318467177842323746016376385707156025417168854898019353330089501664777692069463254204138897955412857888296894027052675816411828195845204698882402718556488522242760685933318701353594360401382725025440821847532223770760296599018755660156362347477557871272028145821403509279695989597689539593528299888497275804853411973644330567675141708763247532965035867429827155672555494030459096520716727422419724695668858744585786212169394037254219041314279697965921290251890891709882394917648136142104587757467865461507217038596881962882468674916376277621408192580749156722360392161303928620141099505919728672509152884136351776942829934580886248168477251021308654627195156990319080910461294661612823016805366869745941943593446970528289533883052524130466079345125667539007858679786343017562243323186538607230482741668003984971886584413154077687488364247699441965777368863388355675557825338461193249509925964327508841588344206905769573744633812524697961732758663365175431893260988432933183450037370442614613418452571000070535871112009218545332143217561015110102982230814112810731387471977085279565644664118333963224841729419321633605485635791346270102869815543245456492310134394980085784644808005365934352234385748232290177122948400047245955352420515444989836960129392544968346365618203764967794614783736443043834927830179529601657296768046408887207973973182634109211446431916420818123466387082004150519232443982557358368348399921626151016336951117053036512494683801057578550813048248942750257991446644417947264907369850474415346415119644283185921533354622936957380928261797236830757209093135036995371481113762708602269629752968050132205915069189792267609168085103531222858505077991297868374409755289036055777072665714403326731936484454968640842169092742968240800929907694127417904606818174659329494646995360956660886650907144808291681696420232813486281770066724821624490905078877234010763477408643713701099943460002325345752852399335916809990735518484912273378177384499883484523968050470923616161681218385711008775009154263616527503121729178246192354824853519491117702531397261680421202482287972625739111816948319236339762022539974706899320770331048447588900624622276902350177810384395915926586236483607872083646301544132484601951879319768310279782587834255328955960247717993073555988889872341788801941921090615925522738060938715877408004076886582543682883660570249851737017472421368232875492121842932736206560838267455371134268347234022009255385369503231501724272328115510340639829402109654676786835044927147595837200777036256120497280981796621863884713583799280097492389332291254707685267461481542625916110627918162983440403174387212555214035875717716118787430465548051995397287295504699574721715881692656121388836756275994571787700352053566981226120198888653025484940432518983797282158611604690782180908291782425418794540537124699977567126618906815043874329659199892725544800685440896899766631250758987894689560314875847717061977321536052101918933492640555014552674980326686885156996540039875301082941884614888955550942118639443311544224848906959720789919896047590929336335556175899302538525674760385043688465239190782601734673648412112771113978588027860680383204576004016715375827653392250642977027312248473378715836059925273505040047294899073638589892503481632032844784608884137956750690514053053336498750103144136381612306318734295234208950805086566909295266306909846087623345597690699883912123127497019297198446358463444881834489777339689318136479979348173844008799119173803054381732876216292457445874496796502012494181373217430189735851390624290779576798389692596032958800274569475806424523602130649451908540872395796460935923707915472718046810633105802774815344384823074208173175375183745260156194161865612924056332541920440272779620444052110025825181560597056747900999746443808364877493268720099872982287564873501108351034593203503988459140111301915029874728142154219243567308142393183238813735629576346147887457238857247917073037193251727286553084033250104830032672389938316113304476656350073642058342702898582295655446094477995932116415026267027133122844723474074742290939783298480007686266562152956806368102721707718354506922903861540657506741938286702133743123344007667794722745775938581890455679798110777515421162516220999266044596971548333470637730708530151515812720149993700680707683226977705556918354813114215389199898478356608531331952707170175582608524500866974395647170095382748798628357674032036447160955204104398569750312710744782593198681976871235625183400756702299095323339440795964402838257685023022416356732142167311367757552387371478062668754314927434278241995895549703814784589120985054181811367128709107299099556877132994338632722362570959026503432435470936458991975521243111597178196297323848043692507919320659653335668565908914812273400857671032634011791040059589361330877223220758059368983640310757846475463434061400832306068489542881418955115288950338623390279924399010907678642691453217123091383387708407067487011483798936836804004608424526900870666519546161240445320662672446608830227481950312407441955968009755511259512030902608211983333762242518737417270721887736572223824925765934358819881190259559827819033818799615932747988093276494708992758412739385930934440464678953069820157124492033776823252448659336330248815483945642828093086923529991563102184810671393381018092962099144065798960260347610584045511325986565882626743551524776928281202496397986493069776462986379514357828115275119126201071149107023091304011121470287107783110032956523541251025293041488390854963975657762310544136929966588011584778331110320411405805876805912619050064953121464441268159015718674734728006067488081684354652634972902977609555885760524228093632374074547814314939021439434759123733827533518673995099846992538500276010577066784230889335349774560586338158975991841119028558785500847369498845357754848140197827189929299166572937637417222545589347438247552720460026977416807574572614312586584914478910038813061123069155240537681949105117103682680644734528953836945807966769069649594838672803360013896787784765088976439879083482605463353338401088183289688606957175895249021043648823916493117436032883087564285660627184814426412438058830357566817191021320292301196488529761882463808289173765397517462780499129156818588685504304669653634938705326713886107366870539188834079763011808486514757970075937101201168657675702045255243502327495415152346428347060259093488204990335729773127429277437060022389075586580631621110026931045655562761257313061753389007885757265598016049029200556340389098232709571948250925728557202097958502379042678406209320466264506201950113365293333224794290066051132523747645775322793718153179047426347291673798962766767881839847878882223872220269997550889727627750029373518408646423156968498842638424270042958281517163933557940820088504915106095816880438377681159980402000663272239355240396594912070818355269781473742690434566984330290400460576250423820827663329813931977006757134607106228769246711432039951707962404351421881664386214471680885116762843656567281533682175571724849427458246584323717481878771105681034618689831638407826802432818866744252472015879714400840619047901758907795421632535481705507676965758199323306259992259534058441715928278755514368626591988533481278390648772499973711212224075534782055399164866117000180153019786352263830589306450227351782376892924545888357448329677521293269941296489807139753133393937064268849415633322750519342375802819189067212998112550691630430933420025560266428458008473877590250657525213650881365387557383580875051804039907281627845216613198839677439902538725560156065000587371842345539046151394305783726424698564379193005435429214144418302485582859694677788509142510452319540364586305104407043613543549444412940979780259244345069590755626495325113119339407148230235782829309368787692323825460435121500092033529241447082247814799568057412545934216174449983892199918938054303400212119827508637067867369322065487969958103191065924570314862808798745655054136897521046488735788579493239592607765217850191711177426809294761149258167485250747837814705808285569940794261452617212099344621777853863900060972225161199121067861306159344009392191910067521181569151904928366971783310105957354529176192740893609881694437261513786774809206954907713974777316585931059234268915836702894665541156252268274945539640613682386889585485598709677930918569645787457845822409727844537554528560981861246946448254687436884274046699808477342429572988363151747780045007803544198780693359530426292614206626177440214912737345320773073237907545263348453055712638112082790956178459424299567679355811809410405479963077821766466461794646485280739641529169782186502482286738460695568147618923135661359866896223984007048121831454123508626942004286554388923651333335250646256110764967425610937725288700365147538038434935792605437133924264806471891938221896182300727927456108640238262683557520017532583836209757047390782013473745045620601704963890046658143022953650899332394729668049847855714254314118409320961290918080618509722286592009048376587111721236107365859583509891682041059855538689715833695506390986292442861817368773305858270767207020994843023672516770063632179080160908770238262823472599894241267962307952490248585809943252059581432694313232568666148235404795955942148970122320259193368393675199454916237118058857897689111276394274930456992316605643785896641428923090457664301965693302068546842192585982538194740230733607602277253200440602885919238333086139090280512779674520123106895250427417314952703717953240314151498066177079371096570286034912094257852135402160814284915620167219921157055996110608216952995423291336549544341371277337100935151699305170741707267347964523199661203192697681726484976290258059645726638727304143219076590346958778606063941855797261879218807522243624883895306398353993941183099966986476723471058644358192652582417649224401929563383912147918399415790800850312424225645686498851129054629600804119946210660698719699408930582491571763821774241677463317841459868744256875286623578788609482983174885199452319607130529403526328628877894823965787770074668396121098559104543750589805530289869351944366788175847562779758712008068947710333895919454470857776627495587264570166804671977310724373340946703921539986728703546510508392558430768670294558862517079351633257412731140474172344334886506901166949718544100769340651388604548511773707530153662472065683032291891329932649586550917670935974170614556205846528139864556870373897395556742476837982166229540685591700404065764127419633492346862075671135485796838024841569477481999730471039895850640395805237324946521108512397406765919944922442807975523552873960043578340145268812849922425365995246498612534492075588208188293353973775739798505146488993849405784963707250572283809130521416302121441511527960988826479906413823449848494350610498397081792663179526949616153977321604240624000087041710452102205553763890924738682723670616071537970450709152062458856601538715959599469211603823066508438184420889486996981785289068177762981240887750648071930664502057300140494894920918657596519659479839074983939774736134796937523695057134617654501607807798607070342546399443797536275991212163253759957225784152995617070587587050691361176827768259573592315725522940787839901739384561835206224855024081145448387520924410436352162859634136517133274654205794259452743573519127691466394607557955010011059160369459953616348052579276654216973800659030325241336395781864996947867512265194598483520072035887576384699964932422769447341337844692536654648773877527671359053979312680164410840382105176730923182529809572914462568769769227580748218146456703491284324956311440683226798755816711627184975241565778176025490833110854531051329000380080181399317836042149786689284064125927354761795627416453578554041334064558556574073671292845368665908489094975020447237227995435064329594849921458963784258440766502299831746344555838014430313908447717312580010445696866669853176471593810833196328507016727379690920173344895085055336330177558631997719895117051386929952254951421235243464263370657461690682005658076329077443102970554692200175047584392554928297532366406039209200292517822133545742335427230251601039724827211673575014763493738586939909710529454351524795907870825104717847487732489629700806754063019544003975465139083203872415374519193921329906911567079908169601790981892921822335959913975189246499538554733209356083715796697721800893596194999914448759755798230932528382513880357718702910265523859979880390049298856220869168967261556428043471830134042831923359391863012193258065762935971452450844083291507437851652846673051239144197245914812341837544968526108629340750998293820524859670396660035159416755859321570216252074942171160692983389164290267340528815391037554591172005108050733296385575588393521933801863052423305575107005703941524724440029869607528244463999893076205872190864011896833069576760463444868415851299583441983482886422560318959379371914058834268740435840822744575375797229215414008630098787397203514479420911166898211647668865732852082443385246876216819914862513226048035997745026804908515138544485454924361964614900794919619134468727465139924100075869034376001201878976256049082238037523946537567414308581556535596694938714692422305581793862290405374400564929544078261525565645478549287203069696547469996547691432814598188153964918262066763223855527047101171238766039666600087965929238072823600063756247620831412463908930235033446258033057048138666935448019385951015221618536458685507133139833616645422177222227413850521105191589863106427262109227925158659996538153755077359073194260288777115103188602936499814071562747304316141912720775614934505750198965623168460296628906119792820320983520528216190624690068284568155389865606083055817367134762248954144761287893394456900808830008158546485099007578593642727981244960204716604715691261141285996104335788346515575333028977453915944984618645273248879548967309077561971735069769789925297338039415265262604620717940372305140513584491909408363654627982779881539727216189360261024248186310617312667432780548382822433897959974472923214409906204142586791364292812886386927156722207416357300263502105293506837334178441567567756630928179542411947348958122751172667175151339190943099904598942814441575776300806699494369613553696487682926649489017760832447691248496055931800522757356191642266191803400611434930732577668687295611924335151958629005748217847764127872503604257067741566752987556422791681767485097493368321060651093950465244112381088458129468986682841876917926346282943070507286530239121007738513716410407146942615443333949580567759419443245096953571068377993267019035257369571144195888787876316056375148080021910246570842309512898704067446700272922984588900455222811109227406808420576663479474786476449153646677958408094975412003672330003747428766464572213958356991099936699353048623771724275207234772746271660823703922807415771379641532718186174653691145306766762926953794910349422710950960730477024136758822522424400635919637898224387742228940099956233849101985902215171729945129887765877865000788199625487881825846195096792006087416027947453312723072155194102882957864558173917440791749559819593749021764305761457181580781010850608753903425588255655965392824711361083856126591893844625865162509789158535749100098552905692797219929233562306162763681780274892888488572300374212222007949794029600838029999549539528783453990528917706185031848587008509005393705374521093888957996511990434532721660552640245704110659768505673707408299153586906351750599156073151588996398577867751193571556250190415929236722489855998772499485976709783106999641611430664751471261143460573879305453629391998651084088905173426630046623976867275934494762180030422918724618862478526812102181627837582222390839063793686475018268679280109783548789458348585781769829144565937892130861283679897000605237576673707367817285965926203056270764943257706547505679723764412967684659681629289366073143082247305673227458907831222542624917717532445551502884963466684922970947599336362022436472963445332558205820970351567815699440589197637954020996039373238979852333927168395193317264967037879243208096831213490696832377150285432419628382845403565554062933072113696062243335651104236751640284308790358568780918589459891937291753562778823813739870102919105773615837314830354513578728643460682112283420919878288332235470913243262578490240784953458787642152778826751496299445306424627233317111022474580084561324542845024416560762655817061375960862311041985385868209138653914167285827754843119381603658318959736637944295060473133345753788145622148018921263749475708554184954341208903209443305745090598186499721291713334445523832612618133163851538890127459308930565596437232058116706166411632047233517180030301622540567698013094599992830885018545041500761519310173713590473745943952148141538433823672111362614356687968802285645145631032401919045317932635512545237873234249601275900902233866624610397953397289970555152274123253503905422305346565441887826776018224668299478075749871298449956290159646216074865712282862979059987167658500096036053380469315812082234343149412295388043318889714166105681791453338723904042341111443881054101928470779426957177927759704377939840685058798534123949752041895193193788944473553372615163913660214985212181415166749338296938962014712766131225605270752924822182296664431239174265622894507472635476432562111442382546321488835826997492262140970475210185803957946136292278282509602728988039307480830577819054157230802306488218228703232973888651165080270445404521865720827786876181645407713119243838117896864457989293577603886038715537117104616194157395638659795520677294615418459785776453089181519894699844587217649162210238647086861563903626403612742549359391840630298265915641971482577158089704632115929548103248373770991537913507953030601610991513266436375184142802775428297514692180190220358732198530080527304063285590671970090696469626728685902537945651042630825565503430257471617078196576612399108514398883505634221880715966631879114170835208888388778446777522816097701119365728572766618873946606660532771819724415615694311639034329975960578984592384554180526085505657952513058907811273270176038817286570534730240858087797744611071309880968721069753886824434688035630419981344346154072737521119427597987587201377435595399741941757684429973869832429827652446307398399584427897546463533265183094749296524897767548395687239896148197983576049902094979807198783870831916578145952234202201013857076744542210411990391049559306659984621232900564040992687243954877801124801003733602616935992104883050595142137621329175590766820306954894317384998651772926837312584935008031090077147994266213792657875650067233353193278732676573305771388252987654209471945573420812380831556061208488259106744190794643561524283078268665374858039264874378954079411945010304078249570977880641661501434901231603822442025592729812810145959228748163588138030267017316898410737289349376344802816707146329071208170184624504117451385352007750011939563365158785096569912235902978436475191201226168023605992306698492986823409919614195588967395185491800057783104665635906347435967213612627547810408483290784607235139949190486297098163395720144808624556932427830845307182506378451703220731689135176588750868379841599935104983778181609452773334138121745996259064027094484526890732254173081784965135209450598422747243803765856824091994543824821887541378432579216384618276321716636746375000620048204868841869241985751321935018310755218244237331987474528685228999981825855446584960408006344096710949502904317389154318491520382961084531422293178298472737058394297500150693723971984872466967069134429206205853233599469185302631245095950493746735252842188744831039792508175812489987822229744519881252605596750341159907397914569554354668293093766613757457941681532418628415788842269954158595121556110877550793107659212753098369845776408866659428352309219287288481129057650239206177334043660508499859081480204991216702635722015355112779162028733750047494865338339819598935251597305129217698706371826264245807686550453874648461577862686921478617479999762223653561996008085966422444520548108370312176738231487612648440480575419059323425269079248925032352162507298132019342837451383267459891271929509982498640514811237501886990083052719674490921099694869419051762031630766104474791650441152522493518119968095969042155124014115026421191487107032885658248942517322813463612638424209293553568827795754137638176334722524615116195043557525015069599690629836206807031380094145781365262763687098657065797534473182868335924345998026122190393028167410111693600735922801411937378641721050268258038712411098609010423933738174645683773632389613043138164239730930798737725288447870945590944080375849522964268085397369446698673629538713940675030297681001363118128857819544794312139379712514666438059176406246372568076354721659596309916590298431022284794531786865793069473640390140750310473800098821198728331598671869236573019484960043931888525132320637734873990446469886314597722831016016106718459672877536265371784217911432146649606299550453306023785438387439102841686732344635936881084646966417904663557588023520913589160222475409424246015829267108161020425030674812241694346525249883733439438541860748614006796184763992594418561661949437740363312931604312772510720466504624961402277525865454700773505385635920555230547841650633669857768298834133699752739453381138094346232001730170864156178724159997453261352054224119796587647425546533966301703967565958610453272210572452676912987960334685780149545838961218706239482062800239686645461849940647346442809640582062492055588888254792954625729831862428009097903131756559024596781659922492147908517999933459524741566858646098197404103090351812499588964505549485937481351401522699752903698199099870576579563584292629532968304125281487557483944515056341846804071776050936973602011074044273531421870513422314264266533610565692147527983736198034000616807234837684776368211714801342070466914285814469226555673068416986760426868334004130652551511134130552122235885186255973977032841467791430944777172498868247900068241859718000956120954680144077067877368498935661468456161505595828852548975990967561198835082499248626115789806270076274954116918899300196857971100222486079592475636739344130086928244769244565580654462225604782489571049861348076791171651620839253739065445613006218149726377843037138727361050044495595899321403998101687450390504737564604606515643208927190711485373905682300795732540234701359535280217070619882215852644044691614125689751302009755646092039846821959976704967376852546205578421501177035710221477663581309476060921554870245154042748142041600021513228629446746258843935618312112701360483356987632820242577150754420866253984585733873959924402757967941342234710353103461245454300555778186082321709460259883400395145802881714072132841072307391156182774744029002328180528046337598139434542620249713481832282012709898723262613025845296693770546797631306027001087799370727182236868882370958060965227934964129031999451352148173097629706670742619922964317241552547401736110539957084935556677525747625857605837641639769364706034362208552853870578448120742111338053148373442914538333689824454634423745589873076330449873195025746119872871090456810802433572152249077610794119379622830659177054139467805656027937036457583847322992309333025678638227421698433559114734884093274306499971590631927444918153346440381139099529893289407583448251161899542227054349146063138929935277533025069438254172305338441766436658519869504426988868439533607172190765320362187213567946494106934587274147319681355413429215181010547609456432794569668531249495953933648523740371739018117854962278882755460082112227477932778155455833626827089109482636819351633300925033396979929385737630691754421698478613102249507420069368451263714314128587471552924215539696479802016830901644870639192001513717358456390384401285374182662710059807463332843191047521442695087446384197435137097816938339850925361669689005833573194498923533630589934822734566247166052212407352526574264665262260441354341501185429636534469252404287512224697409305663054560783491677176609711878747230427119503848652407699551729116124322819764558652818929643883592360038669537913884277879114372242647795674070972844569402228029094469286548601046800798602933672378927982768389641953480287714519720134217925865357645609319386461620790911554949084245550918932856186372791232857811484142572947732800752320057894730422102393783907081305361870264768993896861024580790439156077556257660823316528928596645965659019925798585915329208220977312141663646477527671429987046542355715454066185901668154222910704070477276324117581950446473132668726511321111164794342575884455866398390107428657252982132344291953264716314146265074060741229187570069004256132936010303392713699743441357560030953524454285484904278412725347467613064379943520946087480240260482546550304970785654978904401304986843538648956235667928870166860441509136666107076335041282965812215821952673774937077069494585424743768836480138330088839762985156493906134072497796407961020901413579867914974356132487230260965862807029614826492746417940625295321468505504642897899311862590737473678306060862613484811847897018581025029609197066379198334924058246247770401969300224538118150178307029718968963478786622424171496426880248867087426188346160964001917053423773867801605868021333245967299988308524018585300745159911010202435724218227037697044885547541641165245731720405257217661876261875635197526749381671428741636147177904869518368076833457569939065837488748134765383865373509438210956795276747938631719358904145822690555806988765452784312895974727010426255038177835765032752157751413905206998164764892868125904134318587989681955510002316689025579910961447990630345705149755367279683718789805296043327364531728551505803518338981897549642981116023729004327906495849310467468217896755216246601773917834980479314930101333149971221891311251362578185255679408619947849322616059690837793074064652927143721908589610700962486825955007073364957769732495204988667615187318335003224264562187924306964320929029185428522908600983335212869224731952205539702044258228057178158552379416551611082793175611438208891616388128215760990753772112884900718021143593491364978233311653043696857099786707501320984931785970626039391115685157162916221145227104255818203752738101025369519497599615861001263241007255213550995403368918338781208174915564753153516002385129335826101986341178237858611913969983700229523114271413873041099816875309161572099385327642370460703852157680511191096431692745891063878101958619122462784195317787430745676330905131103484850273327517404010359132380529791100347545935411248102039803859127602738710978333108342501354845306234962781413254227369095746130463708596614448855583266581502308332443193198795778023651449305698279305388530486313321539653716052844197772319712140620545081254015647521359797211205838824224026615741490308107890216462522968384868497015053525701367556155917178400902188745937204670157109492461488663212423962565039271300714248379863457657140333212734628535873640501442506007633535988251452018161283204438656018989622265146073301443250380579006811038710100584799465496063421468565297789708614826957878204957046988836567245535917716538093289094051004647467011760891393805204279580763492374754348164721226116676157691589494041140646519180684744635472960059481781886135262241618640520434310683010689692885939326360970345763025623395030638831130755646909079671900171656233040108553801517577031560229887346157951522927139937652028158800459486813046828689351835587784607686651064935836155819843799396844450916179245376783974718666872442018844696354034371738549181825687187759506360482240448709889775842926674055897919237451225879568377085230251769671697946768795659406938221665215061726473524411288623580451856261025597918561864301802817752588073761927385932004308878833766350476088519427843898131093689447025887059631183871600777934496846145450112831576290831835997820471771594637723090372052110398185854867720732166200350113151132004191558209363041359964134106833136337628390317534513114459272120228003663121070896716367368912334639806521197241119737905091504834675017532265030456517587374404191475368478850021882355688560993493593024399287871346295024466056347505431945083367742648356428076110568889615236602372020598209592427721029460316628669984170345611415749255596236625424025509267049874519595029945472694438589199678981276595478617854164683418789362587601148547706981882741594598709753274426811368560505412249722124754684599004285935643942473705220586549094263124465285776778371748763231698269709640638716349932705862446128705612593762629553255130968274818543890367872113817244482921277643745302553886461552816852223786970528506625712716832446796739405126520019995106644163725992465753179736892847508419680482253587629066647592736365123344762412046005394560944089604701737778610322350466951023513597410290035914712981944597739740865493424543351646757725582265469009659325676713870660333960759450226947699048227093017055953306689957844808427602069949729270034637930701590872240037904296847480205108096504781792740117572529541171006485946107784173607519101674462948137554205284997572740526627633698372343253373710736822541514654319522591984246896372059126820730640123230608733689439354379107724339391565695750505456779646077782125947185949023415855532987129490832655156746306956597548707084600224666601923744238179016026387332118178878325212161696576267621065990256293904228072817997439006259947083480157468691293595765181841735506508662830109189734240069822802522373352003289963630994226270603747350054618322013634784414070158479420321112905022211594816324127493767381530297088851191999663730007704734813513988619173582673271129992260362627556000641176420968399314777214367715195937023581539061021485834521920424795650594842790089429510867928810210651225669454825782254970657014297323707788663960835512481025498265870632352058124699194170503023012145234802127506867409858994721728649472229956019798560570989547495004895592915729521047984613923553072869475532134200809997580572291438799203973557727888653429507905302778718192420609421202418089010846497668543394927019764923162972011796975206810271704717012902163552919676906050160803891918111360195592501312354230052451130012760897188855887610134596515665638803319698080035257585910487242945255719629298405440706104483709154326524575206909397697978417726555806099772066196796172538479085404993106330427356870877624796321728905722466766182290735137675141228092387596685514059829986419413953893839858844827245391726269187008674543488870446575232563993487868486705482133582473060157220292114695341214680237784279294503343756215625555374747914200472259944329446446840326721340057265764635634584910741951084909070076390061721331284620812147700383255784924833654624828011277043873899742323982283787668815543222100242059020206586262097677900529482361825645077424594827137434222738511225543827506420460024018458167237143043805893236952811995162236587489689504145756167249599506720399393673852696300240567375354253918893722835528693000671998781535170193221704649011353942711142481031477505552287911567143181779320885495968936253216858048460381483159413902237232135514461397622218524335078621715981009270809327814927322465712145128826856882371740661873562037757171195388587784889638900376185556526478767425372670196964342045499823508974008381206015906795240868698483797877743125366395960377166555174426309938561959764889338492721536397716649026364804520531804754683158824742790889230312533662405014863635141326322548413072974494725057662917113947008765377523529445897908941999325567298417006008183867454019595158856301880800741825226672340249892250355097270859173425788268650568253957615908116014959373430440207878470367070089655337594737011567001212563580372330513786987943119578469904706174537041174036061548555968202340679878620937317522178167498442307037941061803720668477591082997815434202546779067236406140270778764750672365982723091954467488721185067745030895144691158138279812788949417426485170643030899173370178723280807237534340948954913668084458901616435182327273743890787020853483447790118679508641372452147192038484070080402714203809751042466909051593546081540956299706160671266781555681445305130179476607697449466314739943600259079571893198161151263175161690934206241840275895964637314228042847460820979351668733732152199413711912511023542757253484657566063673026122711240497233561593080241800966489041548429500750889853674390122935742410504637026703494053047253259079337889930492186647404620493124855550457953349442635512804661668946993846350035649941362904564199520553126862462957191934120847977656744037145474764109882829015698577922351374348436688779750060174074050819956478643210256641648308222440447032098895295761841333955775469450217420751341802247662674090060305589897686381395055755143120263505157923511265403528657858101120030238770877018856719230401203493055117185777269760330970348044636159386770123636751235359666388697258523931012151996581169911939101029698828739015958069548731077918471992396352007621530722443819033705926836257380208920192741130415181049242685348303666934654599319087198006337109942686974769535031402369482836444901148614328262812393953391541604041680923191447744261565704773434287615257226472690188410664307762588395820727225955321867930654538568191213822804255179956834485443226185133186649701659760511473356384069050917050176224175989360456836770666127915250609047258001883354421359404987872490553935831448463179928819415989241601274408636863213224995430239491816891809788090196850473931245273613966678497966371591804426193456819755126701586732536991229533047155941213532228972152315078404261762998760963038432306705012781014831899447534321348195676266569996832582850002961312209858705067440204349977770814454256621926123273576259136595040420332135391444876506359533698041059247273720867568973259961273722678362310762035364684548850470402800596601183951140452965909863793035946989917635635112598308969998362203307441888887688658356660604882152736923109689876591431213294180957485964758255178001853646763979508667227042478386891645501869073501707941138964049066043717762405811682343508632967896871920776702873649115677588915459713580662922307033609113946559868716506584609358494891743709274045087982043007736771601633619933694183322000051972062055149089420879940956168342180336030165256776641063301822522201742113354506541883688299206749081032587930191564352493959456287973174755173492021962619973071668640763794398419627643613000373034377458787598082202417639542264239403405387808891003714285106222939288160254091183028598398936225937624445385187153416920337311879140167552482938746018226953365002991960958871409144022365603130444466547879315442270234517553481191075025627029666903992114320770679761682883960654791976009501751047223404026972623582538249599020422142642770062423916301819710601387278214120204652656285702956539943933004765280622447489476576708697273948598658241672587704813426730687756476471063037009452412177368084688355910901620804666012022891093319895674811450636891248232894574772501410012946840305917718055328263617658488488342005853640903806276612249984162261674370613851461611041521153734133765850740088843009142451214174773823157707930679215819713747530804215159848060428498154776872517693766759223481422533947428337100967324235350286553961774050545762672476867747349433842315560967821112732345611672569778562226610939774033878718716523574482093351914460217735040595258023550690157236342676622056187400691529783817277457561385244096120817018164476948584587491445999184048146175998147114440839699844406363122326961372380030703750975215886997669441898961736520964383195473057363567510160114245427759481662067794018781497449699754964288992980416272646675915085004225314791418408524050901882340167773702227022595933378838915805641833363424990412594845161252418381714176888968984231761164236190100782717574660084246399822295111510664007729963045935884742749421007845082815154518421844626758987577052732539331744499602606208956105057060953225285567221012737801610256480014625143151970119082774278002516173479269750171332745060172192443477369202661178317320301468349577221482610393457975097394487414400624851643671916254530739372738489136941089028873503383824800861142898854070844201788709596626596398177777587748937084526887102211472920374866167706127711558114510282819091022639749451875975016393890780646774200276875945399727876893014769634793960115474130712919432945447804373584842364070595237843619300863771720658933473301347005806783796072237858819846032157764131967858143969958145331981482976012312239219302805631927820712654031500179867032116446456066766072645481180226179754885074342664251414195933167703346364853886631221742144843921364054501815376939288967514847418041145199407497590769847380755020149703327281105260738508888314931197830355677158902977043434868719794301644792335011125342147533141268784857462289973515243373202943909068643721941258295702595622967733796000799577195249921410468149162808592532985528917241374238532341671330200421291955265805160239568455181606898487615279397395196784534622050732440137969185924425903575570716295585524164507611584440869086825211443324573815782584804745270721462918508170527642108005504977675488058884841607168700543545891817641871283053405490655927350344580569538407577791509105819215412960108114230889595027810632819123652582334872420587838146969616353235639649199391484123524154650316537571473744725519489662820370029638605213484367252125953423749498409749348809263775663605636178900300376355530291361720760779394321230075597388936138912813137596547977415945327832614634191596109114609302174950733860134908760275583467043581955438240612940229459120196150530344042533400549905861931509089773566571507209155131531998023394800566463326757662369504093479789592333012705030749440916275620949389214656864832978836703618705013392921331509732121048186445615254116406104119474094037758643850175311542253754925933109686725759085445604925743405150679265184848238797352198553966910825487556776979038678111067173782977136971222717486139292937056874578618258625290752747459616482717541408230005297879157194563721753064301669901000736025154769312308676722416265857170839422834566217928961272824915235015968535770145675619697586547903152669572253652436913997251346960931318529056806379539523494919345830033298227805737646460414716904858143422036408602552600038518122952444391455176377910124269560004224717350680575231979183473971687892016231702283685245447952905333238297341779575187218474953608120351164479848004275154955700548230967199505196110062038532694105853452581152536363799115845333895092042952683760212956551116545628836986664090516662679254683287273690479952172134490671518742978527242825199682712322661815653336176546542872532263348555019883176681879433486594440485967886931553432136644335694102432594292784147157567145172471222723538779243089940010311643252286746212580710567950311170917469991332519985197626684087439182620573154385840171187533081218148996571461724271323676956131573303945746610989117700771603999977771351480189451385343905578256316663519727591467145137937258387158096220472145589977679548296696854134167889880584581797947462898900636946445154759236250772137475898685676925892723719167893381563183771253935837329873012774025400879625149736711329591985302348154175350589806838328224623009645871758117736318789608044024483609228999909704495745134113502047615423346276169003837803472106797300748828991746856123382058405997365565386602974563332327599332669777883113505772469405468319917154593540716927781465847026415490107755245605012239773194689134257959968028340569076969679862348889389230761401412759125335413626527973075041208737906679632388842810803274644573177490974775075302691936930035243508762948926483177790065184614437629303486142922133105846812792906640742802814195873725372161501539241617351313287548847423637117837448892517673645361227927437867540983533964383313654117274788933144879360437498248802037861758312337234642186389222617140197682595656141650526143613631919302637646035864041527066663281611587623028775378242561743474735402328319140280346787476896809759192205077057372256903066654371843383991174346547066952019858686585261393968369006921966277305287487008027659725756241897874697301905329795526565051826281665398773356037724416343476807271731059558646645461355964546763101693801526968512527280444600268170187653927349556695604670026932515225114626861839949766126570601071546813395397866116956701702306409102719029637663902260993478970290050730231492545338986816508181282196333009416124412974764664431047187068517139000039127738552697566274674277296768710966191609477052190554287723616130914081429928431160496206839692951567488339643780382235080265116406364171881430838707019426504454963520758433971084081452451435276953896297534159898090294428728174783157799142635939751755795842233124284195027986851222145140044143753991445305579023415884048453841064389604424392167047156975704389095331772913624267878332386854417209294527058677944321169421007256814927705781974788457913771733864894166006117201015179757909189257109809914221926915572037845780245835876002168982384476099427298808211964855184651048433941803022602122769081687643259746026085608770711573443699567930454507291151018199554722743837517012611330299407529784195951807505217562900689868834635726409955187727251013244110814909276086932524003336617399788281776791091319695633154007827978630865206883262794522449550979180955513765031193732561800350086649781628370883416177413596474147313840307908919421237525288744848079469584668804625064927105415766433479389534323422237300091670890536483569130663814466929366070958325124895380406550648383905739755130908889847628845876087494111386932542678604826101745912502265017553657234579846561404026791271538713335584485027074274953710252698967090344426312892606382609574585586893473586367597241926362952428743912927153286169189354082417117770637678686374238766675008512302346785959553314806584664224457307144660258039884336879286399614999146732394567873757006415844675349652838462280367573879044952303022730012948516030759657917933753876104866684513163413219537248798478684641051128044883033155905413229481628643168985576893159764428918087505281700114403130043008037682130930317240927629723723132742449113663656502290396377042464900846315388969432775271894017595876184411830741581132699410958131510656631661016065995247136108428773140929964366947427275747210246063405365387186079250030843017929696872084143490515507112563644213399621647190610879623818960457257441201501478789020044080651848319291305953974340068436300432231619810383421198961976268416771644105670811455805933805035314678811155234341783283085099911002085475037503421250059060262772007849099203643234935454661974237058839030712398828318161466812592569427137319128726803718548607485207763229987754976919051126676271373125632653631925895630948483436664187828911051165076985708146850733707345373224400126027998165120571253519741303298569788353812643170933975227424690993968793984127630356805590753205807301329779115876934802543487448362975362228110484905854820346223979286123436617057693370681313786515236831863062392726930511268891365803384878674264741057734333832555470496689423068399483245911375496362362948359256643627415114110254717037217782386208121926092912351163004004408955320321742612992446374347824502416833944976786097303150453220859879200269950742606063644311551207140424651867724060256406186754354849950858687391408946732602967281933621429211357914281510635899004834205661163496959526639201317404536595644549617987928512967345997728370829474674402207607252339139299403629266739212147465597234403274935613722288310228107253102559910673064339115955040873222838623565942173427796409955916626252666117106012654007791014587141815130885154878132242769878597313396476152977325293637372598695492952143110726806935409865707859012646686194311441554902807810789907387727906631836172921068345526186663085027938758187098091134171324332169380773074791888804231499101964592039791001718297725943666971883024813454278234160791915434907874297468995326510889701252088468088541479876867647298061532932782535263210919686236471211205984128827811755815021423630583439355338468714548317969226392333675064070871790442394741217401004896064257541292790346797200165834621710569394880485258137874659242792607866121618580804585757506469967763896420779385685709060238234959837319195501973605988279664841895037049228637784274833614442185120815376302268832640131927516414159929753668625257165456063757818016724885748811461982052526498934809893458151936094319203815355613571759702291726823413657046585668616417004935915698060821974266883282165897381817380433759736724712975430895709947760399380521092696812437181272756882682018662365138810039964564606859864588352122490864976487420198010360420301010053156004076416228870162237452559567078738927885070667079638519153100228054394677692872507500858220203527856418058523108816723473490683952856685831672071975559269740198446187626059655085703316491436649864755005198160936130145340679749284370123833613012273793272718060986342407472855096816628564127179600640503960957685912961474448539570021090771750982473724829796618647106618721934952656353694275997332409358408209474319222291514592670302090294556563547861499928158864706815233247914637443086897294484843840960610998374589495840583674629103783914081224387094846954090130391921331351614261170966312666630392570981620244013805487037329557087884187819973457645874601780814489231287922732738825756906015778759518267965471177577174249952780075396193486216013876545272615480565009596553472080183454629352088937624650791510918516103410453523359691285802788716988512087775955972513278160304341707695493890418562906165346195680337576560870102822859873983251081043649023236613936901557378100248591845390991807646742097107806216175769815980916110600670525109012682462291146714240167129205486877988323194527907183793068777645456840165724662081858306844854355469333616537856827487392347584611470422593415497861850817962877755267757001148416906537918882528055074959919515474914442985403596177875877228915026809680925331965026842724653520065740150067130940860442483934561474226108045349178534737258572762389212669930019782805632418741265755568273276429032386367002579888147585665660294021284692776099687813003968327551215037855982428972006996777232139041915190708720952847404686083535308989580566582382719689756861025971166138282791825543485513140860570844359021966448359397617764504449897448228570022485884828344689115691723989111570333080553051319259275726657146870378315691138000297322655661050598490473907181866098858234121919976034860993495155192118902907469511354163161273973668767950247455593490868978244004963339640242223157675897490089928829964606641042974479720140789807619955886936797882017486117863976727800683307920414635765426896068820924859804035801842777996942659500363225454247099057843479967337091120483369328876629595970699621917892553772728938516484955822549356504794329468624116186311925802704286198112268302217817328375867228132855320104869864716150219632347128851118854223427782506395621795604180978184400547533699733338008566637406738813361670204240201972721437515797224805537754564951589945710359982713268082874858529250679944357492894979124031671919718298771457239163038111136008928136664535733194778044318862722938620321138392967380765694063247846045674127198263187711421928135060226559821312536189449590681443385771540260168105197613926150902408713945925981386682505207799250793848792258623853050432542118508406654780549895390012181500875477571587111385294772311378350736069823521713981714870182691543011005244128789839097154949135490310068115795075219172153014859804750581283820108599838777729835650664895583552677771283876406683397871785652314351254189933579737947095629911236891631289880316735900899742954698617051409859768169034279679063892872048008078316573215298257523558598397638819857782745917996246064557393096492350445179111650820933967178555426135772475278453521061809059270187470571111162249387587418547121484512785210991508979355767283910061685352449700621858357693492042114394980933896360841926734528321186830019232475171537387693524687267647606277681871993647538828629924509312691967245686450184846774709398025266723181143006837084250221468473473580332487375873909667969594505303785910254268082241236531627053628058238781680675790527473650860249715445598550073808913078265731845567149589334381227212728578045762345605563251491691982561941736223653771128171537540985427629303628589617954596033944757511587193508104360986691108497625275159787073752285328060113498954692926986102469480977312346944013873141560233034055926533032482952141314086960715342476701662356094986640476272339181484448423091678053659026905037871223275079190153236096155256287621160182258766647076028256596499560982961825223515868305672849808570273415227110132055290647910309836058335791550527938993131045400559837850370510330381260121447884555334690819757474002902855011271735344746985494235382311110083909368361127232613372815577616051231178942165596535628076238073375044176267663670416193436536762518330190568680259838622309259451089247182770515640479353714246858522992320294646201253896569435718412113663185099469799040216838998613768485246787773616215042917299864978767537083796965045925371555987747545775757916586945474025272672916849172540466964871166296934880046675795949470021511575904826890463981667311014381569357518227291308269884671178118299867718856745912927729719757416772227725231700111652690050285003220079054514239976637231276924821321821583764116915483159262206569331388595123941744973085036075497786030792668475915259138274223060449126069616747532641760052664741005151064993166997453705086701178587768421926093258706238378755673720114668282472335137539875360689110639526441598550655800419288849042740000798477306561829838128774558284159045792582838838778162260905049342457277765238767042454912719038364926942791920884589502510084530930011757293394175235217326818175085356397536287219506171527045920149421117117192299552633733654460735787907935470048611241194534916100898132572467810550229645268540767268025889915507311447819251269370789562153992812781617038839653966719393466249945945982825300778080698829712733843577882171219897301494689944280758016333141368428541593624081357876342503374281084909585134986760077979294461762857951515570568074605529208857235377173217571661432442785483666447764963704499616753208158496733603367685246808036343360554505966510865317907276382205179582644954756740610275434999675658046309840790240254234162202438898001451362474176412494675214115701977663846109062092932189647711301274360238210773412558008976920944405058292874125339065464780305896849412217431854959514441774645348256793239897276230508142498876114946014324767745358363834033702455660513704591050962781255270414806665938071964883346740077541050108088301133274930658095452777836634675347483338224901237112166141117917924091868762960891673023085015868005261779836754787971320397321636203025173341788254468032361167318299515611029205646313412909985702268079229809578063786561358693609462679116788742824122275876662147825640439510406236792304219988867425378212910724831123605869086265191485200127145470911936360885373178499215072249281345433475123496457907248243461128067322876099844896093112394301494443012210311868431375959965159552136321431835429257719895648089700915661923078644781029751207559591700572895385702887511760674686248763011361824201892441112236952524036425581848864111435043720458936463341832033801693289291911632515099690334518125295095556934154210027301399753556139056849295011521839691696775409177122411628643636776580161674890390671584543091365581833303567910378279448996768782926359277768766764274104132639046332156365791938605590682999430740450908452972191583415417073860139077382580927529530898171404805953756546002895840756909509746251434311944273270257876392206745757195689119470687239305876554725459927534251482395307333038329259886988823033802713393374260481699435517120830420840579405496332997645193673954171377561826474191882848315089995352556661324949015110096345653278523071590155082838519101017618874353080915767865985706372748076822429845033675191745848496863528510176016228235210967418738372032647583587596119314260277482290099372702096464793754770808253094227370535895014751886836261368087622636598252671100539808244397071599036779806198444664086467412215419448881454718617758623530672025892878619466857289578596484011518443112380666947033736944537562127801985481420344285554459833432925207864448743523127722448287017524887270995926072525427835073586177193405886919519790212932461951220129199416509449873853025160172668687344830684801805710103674082381432587197762061720798408317364818527304495680762081239258833759048114879743402047428136628123962958558658684226240450931803819865486662734149143767257028569968877868125433795508200451424050730200939224037493272653540478583342661859369708850997068810515525450289044095050898513633106016694508398579066448448589211183702671403206825277277046793175344097559321069612392400583321726126354076739387914201129672541334729511306554625438539641569628118065042187180103702721793155328978324220154547697997750382300633944553393880369473563745179307694304232785051731268227632001189155294366746300825880530390528384776087573922517777111615801754984490950965201706248377852352941781791696112009503442173819715845862916048215233580757312196552972141501483514546590433015727013837099274661128399339574638291845813076575416502087452706386188897061718451813319783648748891865649686255959135807559056134598869202663859235362091903878512750954802009742985945853922084124336916318447239826404261104904859671924049127020154453993175546668267073427828615629518618902952303288354075882646884609084488676028177367403411584108600958641614403247638545567499341367327941302085698862754860429424926840911500210433358365249913000461552117828357572859923730594987582335987120400622313723787109090384799882293571296507379523023650719114859748359656975873170881067185269893712589522123742450132559144053933006679393832373542600007458775034126611445307787931976329187323630416124868210146452925350590675098450133026160237929254778551560237718056861789089723840716320336587933832406390806446695845419497549852167060986918257765021322916024216359988331566912938474109566506658300398050082488974485985160909272979982484252027374201513274948070154125191230652305409215682637876400848918921740318396595406025125352310007907955774448982534964778576647797335508671354787770468344451808949100627735685800975470183038237509830278205466333329140503600072693034244382209776961798626287163052312356341950510676011564650537754338593014650874904017059543115832448419747892586004361320783834149290339799663546774513479478579548032775871034199643406688129868313853972977466215087723738459242711918987748054160614789530348886251263861623896802906488218931005890932412954902526520983623366199245705069923292686094629744508276885722511918395900714875304937805900371195169387571743709731748587799416742943810749945376988602248874287879558310482235282223504546978834182016603144157880306344714723484066411711693277981065943136613022337669197564198310732225902076390170080640802428640391404844300804599902129141774713623127255138928689054185623060484039651646512391582307841352245815747292368250125077753937976427374037914682268939012029216533605594046397829607069278509342751210720313940841402034321862744622791680407809346962747867978473744134472520596191492756387130973165323742218890077615749167093377377191377835632030143308382557455588042835310822314823522244294018304800270240419387168333844684994363308743962297716613566661688148908089553529158689799080011311825972162582932408349510168975432322080217479616231759421133711093037523245325484964880020962270143257407372469241869840294147908151519197327795486167562492457115699554739460969541288152886882608630211468979027276212343576881541368492795327396566594608987437363075716427404096811799697644666072027939779243978692718841684800607196275631346868269076078561454469984027995302802270070101703076498419251159906893412388526644867395587805863070257169771330682054635577309113998224077920649189602222476276492839587699205693352961390425631503664733898615285116645911055599595462132438145977043768120722657637013200769802683341346529288213675396012359163221806632182689569228240328785757020511437712576772560122775785835996362259656584557544038843991378269188968112741141549139553407719725688605589265291856820477988100503434262136775653848337748361855167890046701304573708466375641579298779046700380562546072416247705711175300199507505065217486876788571715800521329244413696140153813038328640735346093061811340072432589951436890399876184829448334934563410761986125948966595509394246815342273028515146918286002088236911874716787563309231206005996759097581883772817622390019205751319567114540133538467717587794052806412156296218872748434690184698196206873275084877534533289400217287926602215789524099696413311873993198505692565841770234226676938406046256847185932422922097872972432599555213121046012175253074639164114710294397971837963739765492197780845988107677560537211664603519107483773381556719534073600724582291416445799240665974442496238969898037206768610330140801561569388833180704106805014412005955651011742540174006678920624862322954905379799188636489712134434001101473757244793908972967111640919501171851605193508162040040703564156989735034736973044677631778564954517232890745773527037631355590951147561903228662959953327269429374654417557486054335552360480346567812123055504137492481343396923226305117592070080218376836869892087931776352980027322153960635339076904568039204618137285752322960489223347114130789504973710787302913355636993354064871754530440398265649250492077027766205678128119283363387557066897835531892220054675478878131615924011535312854992345913122351578617230045022710627842475201858043442130620542487235484094259446773457518779547479487414930662554476361328151275923708318294525769184015096005468281560548359107917353822694599234137540450778789643643019271613545894342996645059397103177722313709202099440855103453909244757377460182437180679774839434812965077336515580273692043564422565928001883304676079245500804619327554073481083323721740903758100722542380183613133348888558412122345347901909226713766222821324685804921165890066476584549825541814024381024342010497458751537955312812826831970921928020652764217198205990850425048348394013008944789174211618714924697327177337407131954719303542953823660728270364395382259237539256931644078377344569156680190159029675426109931055708122680554494225556827309734893322275855811962684165319429300634857266095046697080468736934365468145021589223256872887902554946295504621335759094794443972199190836008693981056657722197425263868567346080289877106629359301964977424180766627831396245033264535284360627301032901057709657103370055862286341200104936291249979900984974726450071162857741751486152986562249668670771341934253251519013323688520775697632965304959964022113576238670695039395248647699849309385094396004886731239038404690139261839464210741324121011308411359709285774898915005119389398467297830974449564567069736158341187359478181992278668617698616115863788032373252117684341556197289814627378690592635081340172325760318707865367973700849691760698659181128026683849351271142272703414125160960804786598404822067048124064575125240376953698241156410052346475343625877213619238356656461889056734150825672528979758912786665170551385563417562849213940040586971331349026821073265843563305825819773371755088438217309163464802464905472356007532833426651486202063745213899074546642229718565237241013181671507693158351282450400587841912193233458246185101294663575177736466912436215944951232385594887039728620905271199612295628773947929011831670606973689730598698102616077742051093836977484086286889054247899911578694765160650754878249336229668555361708667243550011318744849842632064243237318865188667925578670951568777250479403766467768128891647664022467517074904552624522265969271885445447285239333042767924453605287992509072731003120091280495094916043137034661333231967743976430725503114387733700809429428917886747892613656478638658148238805077852199117400071364072411355900042951393022915920127500648514404573243488031193931149089563050806601238911088984184865195141467655452335728400149061572493083961862202694288502065136557627401645844626993565525968239526357093664710569503117461635755124837393870581362520473052394876080403435863006406926463659389908545697497103720150179787801730617414062847330214152490646252021091113266707688268087500361396117804610716068098724981913051379858625365914664577384035817633536398935116033157938171678720195186637615548266683517309455707002410462316900882079604982591596501338261814540372132906576766137234897752811433131411133660305863845267812223501135460786052291335248046292442693650586316142568749957491608904745474595337285366611344373408482266286233940356183681312969813719090217240470280979708304218597578542234469901472520523723039765767619692075905383581721195463523022201652283970301239189577327473791255961579674405210496337018735248877779753014453302165368725662740752149085311953485138788852573303321098332235079308263840021717114356496545162770583292586895453242427512708446419618741853235010704621203353860594676851012207278435616035412045968341324712884507584331878229299737296894251931521686528266450311705523300587646110275019304530736927440225166043820336791007162675901282365367217898456934960082179574971096555310022118881364721624250323461874271141981801189078385453181464540310692611352196789926101072272068952331346820098967115455176857346414368340780274745307939652558097455208531458993856505151165448865978807366760534106664781302150447126107311797976991964047210256935365832251591798212147241985942650998676994034122327896230951730154809143498601366181396287261426808216377204715180174298337196130520339581971169638149151875248346227446402582145262803057175815560271408615459415915528023215440827266103768595697086547466588412585727579066719864091285125309246057470751366229675266448036610605992900811246566197610280847314417484285539894698650942438541833663002573063544537757336362639691299611600770717926071189801666482684411821999249156929340416440192656314367652703636655379555063202426067298874257383064838683916769128665217548422748500810089152540396182434695384644284162122331470953028803423099002018357258224389750225177380641470780060297311085888890610731016661243719145545233253725284819773354879528783398978170266312391937778339395915613290101830401122641809314976558044107575884972706619453962945009460131398319535697834720204579763047744477560857379751522083428939051593436561144282181187080559118484803546040680657714561065488948898074867465901210648823193607421966683353436888670525585632710081490192721813608523866835739167783987358078178518135875572600421385973497262995693022786104357021318309419056638111262831865688338436750424358179180146604418612463122128980517097056525217267902260153783609408881891872722953156685659737454981596693694785999011120181298867821912948669737441759775598437987582063338224372355911756381796083728679558533203408587015267755519695018040678238019860744744317468955592138772325749704916780959464924215659648550406254020177826605013234325904649404810946238512893516174176317997399957970037049215825741716825104370080850027061452070164385014955393267811569708035613780833034199735555082090643323251775754839948681025633062097219101357282213323902841529469254405364382059912701181996227984752531423396101955751218004845130111279645627333917575218933520726512310610526447181413834756695121716975767681777542059110198938594837674425127936520394132203087665427166750199489149960816028884897011844529385075835720074278286918338179919604100016966091056192686660646727285253899728802566360161156921274744188930861934225602468678500565353326317381960999855774799853698998602034599665649315902421996716665793997629404808962490780485123946777013132110430221439712826906875454080120054357187813279910744170108941750451919602046073938090758447621246723590639948474458997347152341366372284433892530580375311631283379628326028886434914828417311503098531237847295688535659690527326844460498497854444535935362918895420278138352308921614700385449608571501575426893850482633300017612014769410391497609051552775290630767612396284595926048159964642195560220748832116570521376447916631204609482642862381749884854341672417377556112174630850101292491401154664894810519786654916692639611809918468707190683376847303829139642610702272537857694324922765412332334435131113678771149734170829383796708613317346091689895158695173845916720817761453516608543665478106364845966402343773221561022732316591445158685391640043971405952435126534401642115855827774247181939040634914666703091544468647533148520945410162153794568347494556611411531973037297487652698514393765201494693314736993721148803166099912740700818772587708504766880125640574990935960924227598091730376497399719617733736616991302036811639397866557727947020100928609485670375343772629853336800648843798012832620524780072561214375096328013243276168447038589450711227899204907926315419216343744301519484908485703470579526942655105265418090327630994037129829959352654127484955896169256058717411767709002776260604049511233398397234831925461863242769234939675553474181115160059789928259068411965649375964098983246305441509827511020345963386656718738352898313141124239961545269146664538236087883230136403715598004824712340951477346059431453831359309482495573767298046309185334015894159290204996124223013527191865355630704079324574380744560327350152389049507713024660880793407956423106807547203972155103776168020235717184787723668798571878213034852053703160374613961259308950379173664324041731366803509442178203512676854293430087037950785546485723812960315728615559637605280269088773555763549064234309889378586933012468688291988441318300384972568472517640223888335586680653628540912000329825677643920437189825505663738194964066523439049417942580168072215232600909210819814112267791190636909943619311026836079711057781094644362872049900472916921208640792371441195494106915905885371621701480205654523397465460435962112241004794376032992330340885895387705350676920739565298409646022514999310783639919454091767909294256509942794397970713185606870067945408205167570279725162877478271667853078927042693163723795250367270376623614276242590245541697651305842029394576810075677581619527203128098201962291359247503290487260805237226916176623297772613910047682967913929274062932698225254731834362290685860210203003553840484836177982474904165181757805464229703678133464153397974757463281603364156701223226417055833870233331968839240231165885730944814698089463650842424764773482230684331399329531515436323976761455829720616260424900328399002150660143142451090560427196514587400637573299359686682462664199973912740834396288172599554400968791908706405338970394279537486445589585053621453549530523625920104225913576340673750388192500495526745175088656923978554433572552734065734771933285989957269057649251924390168124171442525252449440571581750338893037330333929138580061765881801211779796146004415701334549762221850403263274099323021403742190914958275538931931626260611562696096028185510070960749779048059386442909509777841225980383552289878239690017508470057682583552606277880351201863551260945195515029646495476440600242044568565403694536399964401896107591489770263102842639121160536711587618796671340488351308393226499023227829963530634614694088936696859626783871427209438663950745144185816392660095005929940672415789248602505768362057989217392294161212421760714090042062986636845499253197060616209486323075230967745770355440533233197547367110310408795438341990964879129616438071343119301891164523703958548256462463335022337001510890913763036550988264022036211243662776837034699217193897712919984809106696481472447539647287035786034291754540736891637190737731169586811454133585711126128587748162041217774938107345106146053388015617336233607305331425468080916753481424295164991353451609560864158234191671191067593738201269189210293151045650449800142416185340854550030820652036073599992405098705710934102299902743839951325941670861983019048207459707429660688970447779071354038199045970898004952166533527151407939758027024679765076129860147813904361734460590587984241713812385974224927680543593149817589423435533967368246848908295486971306118804819469118754876532112487178054148346823717504387662028700312211871615444028462078854246037581693757645155444558569894091167393935998074438772886042145047853856468584016018927515163587004913939165882058174513946372836136335359701640595735086125660011456214599486223699817753215405958158127141445841167744431800879028380150486545957215012300056193401734910020659626218580997624420749868423566738479241226196285522688208614218751417516753689469134048510768938191067693876495357866242943103836904855971075211535524307574856903140301784299217253061880489654942248523366011973270873270127723370820024397072963930844860911290484877456156286272831170033303590712427475394058657827158610160172061117074984126702870380301809898480765815916987581789943353956481084840169351179327446500889097036275878334804757357826643120759437987134995895368898243765105093361603329378094427378008781211560929402195103544295043794746075803363592982750468863373885084635435179404872351349011698233101810907110452061003812332384549503298835127041715032487326697990219255621428640016274771793962445690273974860068381039976688732244538124020422193582812190739828935054398749966678535766572759470538136384587984245534713514783875089224986056130860465602033449706569242240172016440119861297048841909799150688015318732761968316114059880815282497747042593482291892872174318906932445158171933865817838125841859552176050128413655676764335447466272628465088841784925849539460184500461648632223600431980135173646604112081284796341712094724269942614698137238927860865024183185560769886783105669387343234665058426102343405914172571186648293790692444851070046990200793915712568755102299717517517229594121487350798501853063401925097067279164831141630973576717735048690134283378820533695734046506771898778035833869602767808537627509405556342961854483431569413684733236438402788543072408011383226726858945236100964510481466445562115882652392181311056019239354730372381456139473195197906376209967324640648877007493752134334165253689952325117091343444553361302294272951604314953429317315049186315960960437436825864516517745589506042707989954632695190544966256784823893556000049877470729432993225420290311892886291358158491439178342539966635037611560674978439320314328974846710594333447699865999400613886986965034972725203224902945065858479705976301365812885416822824828516942951253110060680575603712175655154968963622357983991061427311064835719171658961447206155490453826359526602045193191561376621775015723212530221746976239573951694717866914343785826901465695031680989777985064234748825640587659538946888582601285615549885770445706600696414470965988990272424659960262240634703091100094993468924975148789116903206050920732197720534552505759362082042343780995215448633722452316923305519144070519290369245960162739340457622127989645756294173593896230431575845844591375071320923054234837659131695940428200624482079783476533908926329871829163113544850089858586328359160515547968683996382088427727149344418141189222130463387640823739946956898300788209679969868788212174580673840729330335694240760518624149791511151683596000114951035098327070474165228095438215350997368424729707136646757769725816912890401263649918255436717897130481541979412164990504313845310206482823844469158630121262322416993998314440053307370552244554131231013630554516565164464305694027616394690850072802221476361857043317458483018517839696184579895087908508931626547327634647566385290747284784431129994139563378917907300798795856602165405004567448162784703266043120639555024496536257067555594837975634046870273263389189276833670508516471126349757875450568991598543092112873290385516399986132863604764910115453843634219666956362345783749467109659443004658254965725198301676505875381814452210546192974792428467921958358096612589551849971014219222791844254322134653932065417258553650029018369459688255930118955522664043528321339512826503530579037983432572728675255148962205171138305807978321283953309595540401906979180382570471992978875425990515700568791444782593783641066233044145660675131447871145177163221428516381939039939553510948778839019784894634386438443727393433530478408583792201155440646551002431368249692834646489799341041709399112969809233521637828631283211060695280423624445051383518780900700851668071080638425126956162219991860898943898015412363965490735665080932452393432102396781600774516337781125651436746308008530427716842393497746760950354326407034119045129917444724390205464156534483768329964680140730009958859840430663937244903817787232554193560910079098050543853104681415156400783419500336889579750539777908542703429811182963397062002864466036636012294659267688459521968118102855137719170543193757910011618727186709198715067979025574065328207587701898398272962297952453701013928368895866652780424986176818839938946268855523776247838524117504194469042403179064287214284669575249026792484257775756777223384468371523102176507605280259848671374661315193237180445236109130681551741998860021471558979296184530600625484469505641486544056748477496375421318078020426033430684104390838836036362129434750458984650677948702524566344108550836461502843888119286540503987103666002432156516500852267806216510834710224445116619594333226402304695118285449399591996161043028938999814816363419466780329569201145635769394372013428791230838438387247087719094740834958440143889480274743454910957599481445056966835090413908770164689650116627293386291180304369281938012927730420430735835165286989553041059162720815767035065218941067236491386663935974462575508233919320008385371505086086424939854364423607781215608669484709874847836069515413303153761044120920547118746427334782201426051107804093595279088683064883496202520722413153627877195016126007728175125370600901171506353371656916438775594836301295795898701575075402671115637179839773381525248387672394629042385380819360730843863067834602132112207329270113912231231360982609257241336384248469144096638285958205907151266606702687301148103810864690801536535049927875525277014126186022822673812910459255648439400523565879036268461040428770186429721488658123319147266914403140078522343379227157561794794579194351921442538824634356289080742705531941666644360419546580147082118348986252387060633374336635514375989429947277568246275457498623202398345324688865026281093864771791853884882091906106043352447434368755149744387313608666297695503227270406837714972564242225592337970833229359902817332438653767874413004250674433240446029097687315988345491157444043465109808958835699930485811347174128506053803484949822393876254727147746880471774697298487529360203356993372554823338518292033118423688619513507899458166435799840375185788952460928632186283526984722179233354931366069847353274365435551388956442585212802631613370910311914403593980338823316861812941083161851850560178840192115642623819678314058498486410175889194302972988062748481584492827313374943562412463448429860081646224391402041237787162617961368967069835013305552325127784721005670550870924278237270901673270800970464235684315336413707879478925410138836577055088042115591505887488798258060507232241965562482155486122852390442325099243001191922074561675088737752781477149103011801153916244696699558004745641301948215941431602276850455812876260674835007544425801605250157624552790287103756944938094538382419026812118567141159356720874548595560072729081381025601266150171354951344724720587720370011065039330046599737876283132369410967924768390988687823868197924184742620702247251671829086884392484099756700134646870975694331469355633083818544040767935261848313155254388565835368717423015442338332523993655364086268858503674937632656633472215559746690497224413138433631464509940997747131338825472358377568185191438549282208815546567812980275832707658108475259134521918966222760653821951546843371392390601534812461955767590019789380460109617863937526544536798978785949602614225038471092976744312066409893172168292495510244973105665609739273506676458800841033048173167454535636883168443154078367960190827215523481130809202386653856429889267557061931963450120528349549082723820746803542817804700056936606920855168891132292065635538395707723734029415913181710377226187886286375938698207819459037999992659155712693638839326193633887641943863851841872518153964719453533825895755626417084624467832896280101424760892829367896143780019187464035478295659310799931474834049738552627982040416664693675945539938697613627902600612022074309553505204724006736410177372259204552790428880681544620821136203253392004710437508628162619221187518134398126451884203824105724052964115591091725687920193144279186094786682140349119049896903395218133443984796261394713587457296614259517995604489634207372729089510290691391650675399257476653639793068209288195305447058646158062300893258184329470678884681021331203241076760905644218369601850037724401828320400747321920236010925265898032843531868159132563276872594516664414100134617891015257456965202914964301237555005420819394953384987492504430000335354985808844978591561392685055979525212702245842102572002936703817980020909364349608965428747193685190925054009225658047231056280442025290499152269049880489735377489128372150316364543862382340963529332868179214796711733580583474806631475698153257314035291404511605561792048854179678003742920131642119261416990289705267182565439115312795176274437165700350120568754577044088250035790072925153284411869768779883985276190599107362936419197558726505103170194729037193538352222636747594288542841987735834184061493629407541315341292774611376079493726576701599273555847369037376755894980707238164892520137132803133926739545150004215800692533319768222821333558776413465302341494620831415062389745618105047303235589056477472944840118142673265832598093917878592736545739225133900495312101220371678253670505140399930035024150498941731580367225780780029990754614182400275197583304603009202287333563404164519230090147089867816473860382328166597353864174395379982019126265056602429674237010045519019329878671369783720350360445005702095097967038925965096380436771824509366287022976184134265143737624887922079328299517759099647641666115357263425991504888796378805717269959672997344720331905621679969837326036482920476562191008015887734159913854953108854225409607998958040591073963083113241762115218034996151137411820316885820402992563095237198011336161854502834054841623193152241384551640695751094857138413607388148393329826120919429579155527310425414638554742819696981249632625592120501847719467019563297673711420421982891593665922068493623696703005806857407689379153552844021412171169442699949937123042915936583699086493176186486345025565908399496088349704962560399618561345479263421498553035120239984398803615732867933739324439658962023392778935590854888905492280571762645534454751417028898280185404453026428465520054581863312799754206460474916249181953341985847333442973751390311223640408345096738026555092431780514526577128328691012463899956061382318811153616402323172934705487604947407690282525958757319013712544607268242501508859036031926877959833641816253583102761857094054720629609851257866361602743952295622092882827680091543913361176661561047811343668672008459636468687822331520858333902795015376945254428033587184670645872366801022705431473781320988578774236208940492156357030294376940848246368197288656584218801563534266534852795072983625135651606987172959308313674493855305862316557024219808150254222778077529844310665453240544323699851616338982085378766706103410622432676228275978138127770966417243818308772976173951742184878063777366677228724229955020541261369154722440845445148563552617050168599256154625072605310827479845527441446170966389778270409807164334237690914004605454895489281101015430556783939039194435569207303365527601912069224801358155479181061666687006008531898369894195763479846674511937502228559489120111239485222161691646321679320847825972804671134636148471185439324526580272193787035184838543360990912929761547309457728208079621856457769020096028029426059400625564100264878198670985260119474423931674695850224856159722173635075632547155845634273227053782129087390467249061178963933408358414604859869465232985576867624409157794747182663887702629561942195710953018864168259698874425451882158744415149489550696448532889480539431822228565996224099401635617392837536770632580059559387709201497872693809739838403640007848759313216665391830081792707140907601883127714848379223706288821899416193075093328065986179677593053510052523709409012504456542534297123695342249161607418344808221175964720811807364227433057706217559343546041302423997819836217605443814350706057074278618989603463241402615128454360531206227219032704676778472570634715211598158984114349747067140236105703479345260487401296278059864861586395026605481279129089219242892327795054384689059948875686205557264408850487368769898266144889133290023901007473972321151619684888749346102086180000323688715822984569780959498888479626331885046560112398694754160222856086659255497737524372910561351975684360596975206721369678501356875043905127295355006507480469053759369519075623712675221267391506893366477555050070184999348054537725268080021849032856058448038783157359761424999508995670375260722640817782152587045857169206188925259117092996359585802381050237740780770926927653558944325987344063201198058175664243832919189054456180305600870863609688820100857251704293419971422668050119048645187986781545718065516951382615285143084272769749305872466829143891032329888700309869093901274341298068154963671643874717865434703868449276012390694961143365212589750169168340218214811879787047928016207522570249962752831933611371646473329273558283906276207964516862575480658909173802636927247747342535823222143433901725051195521143108102425090581051821114081348810515414039593467726292359403239429221701230796173547864767628368936151957408971301494901727332828340692210171154046092247461036391432405532064469351384641459635811945316755874651812247594450900221064889237897732075796358524490915454363341899085235448627057571780696752338456276693275798752033253121535528957620739239489394220082825589195047639483343685831551942028979963176111339723488695525276032965654664236366731993047894454226623990323306392541115074886002243551902918591797257501150091974989763792963996298164917041412358294503612026907480784562011309878049990366414216694664099370128249134094518096141931291343518467581454589998733154681147120563745165963210828866219716056810043706627923012405857401210035718020004681917406155146980503707568357668998384984277724978509104040254174370245905441044325873449670159211777826882153682940200118272043499319155326179569930481881555486465832288393437800649495488828286936397147883821788296725985391475648354402506732289119803608620843334721095001164308310274492056432998953968179413231312554806010204549867643494284247203763650631726516360255538674275598985266335571779809573348049401527414570154886414671178518425374628234096839514337943974760588092417379129092588164084214465578228512614434817428826360272435233003225425161523409220133607300046255387439229112252138405624076221979739042196735854718019492794021285354119789002755198596218841017428981704460470055347530081173296467810255902961949742344134729512354668843740213722872557205508395236095402964021366749423253684186389105589887015981656360468797881542940219903313661844225030756570167204324395456294575512017017049263520183594271533104354648770982475950742355057538202338968877770216650399167490589039412391496868130037537198700702163644784504267889018740816480358297244870227980934435224486378395224743817568062465796875076471019434777584226690909305996324065634997615501327407237825947832122512955922162372407324513736183512038209181327248586570951551162375328181295829748860709997171522932975510559784558254611430897280696017766717578180216006046942112589972599511747513645165571569411500228359398349398777625239207956668734089167776541129615412614280638393471823191933594261544704462687268155177849809962416912825755064755617124879794364032816712079082938576013210591015840254774365470431764395930420732503836179979761498165943841872022048080574018850485504697324212454647679296422750207095061731689566872518912092965210997531363585315679565402283756734953308498817266655387980437482224593700569699763901927936790400976809204263578157243923079442010701376660113207481702523841794952296555537065017164667323157986401636693812957806832214763828174087230162219996046521600934430885633190199726674094063717421647000864253328007424091981991366583889585231543065294068608459282039292738778183404248147200224175661427826649513746359060647903988903810179550886362745333947371564706896224654781571107436443290197063567750976669652089784511012930779087989195807138069036185722140637309069211118348637927960838677330803979206468923045677622589968282642958852797645808031706522362026298113738486250652158199902664328422924949061372413927027340175617641538343362487404412761712404015991209480390825277541120868812026357468537122001821363090431031698080387795893263486277093376041613726265909554890506267591847492257741195515197658240513938337727082115731264842794115393463239267671505019867268580379614072827743735580871389343553644520434946479690704166437928413278199035129035343301002456843826113350052504904635590510396700234343960924015672528561567386157977635773433030552347138250505668122675002881398288700934882542855341233696325532773749027002431681192444417804679205103874343992104733525358249479793185963072839249212170816761123845450712342354283498724371335470294516970562447942655873077893576436152289704111149592222833361876043173347894001727949744979249269811133244249173177286914695609850024346239337353865647025470051451071781400576980857823272843854634578268149827069995100202185248326576144884951372502778623181412673185366031654069731583223455687958998927599321661032665967312127749451238773057159588596788595165587261989270604062801151471588931636856016202751661861952840504255800700494314186817120916916042401750405546398139477460339839415528288548721478016105969816432009126286008796019072947916799928056527852881259753443820189283577424736672617571147500494828260730924547531959002512963461411453848633721715252132520825795512386953606824458566803992532881334422385033010214614554568551506106398888141375003612190876911832751517694617051169516016613048051281266133612246497335415308086199567926657022833664996585026965427658067532324950583634672987663798492841301639189238941873627360547811596781819797094592404483101373716477031847254604653206425747109191696351657501769312757755933710020740963459470509234946328716481803496997442965982277933443070587473472103383409794073399174758256306014681972134159325830306591941003679186655136985291518190750933230152851475688265779670522274162100388589145969612276197980963256866023491651784733930738780120433740072683862104091976786313518082400057194322412012971847884666838134804010909974284567092136037763264996867626390180337080166544589954985600036498638613522410831561510638766731291130308754822170494588821150412208117298589498784101363066396448603922183521612561919183435117744547300427380663740692744223253828250123387731009991271110580773970779089484887570557170510720583233585726836348302260654512466907310473213610773534288873868317459071112774268144651413836555179239312595207014857938779174278296984964211482811896493376521172308018519872980348474707628595858668384680171744606907438451895315468306709383213672632133910437842782538814792639053345883622879498598229439916889766549366667497783492074311315431321413744472554989883532813206726151990939614968591924553297986348966768749220253058917741068194007552449376164984779420945150187015358921611196596819124950937529141972257095122637810181774904251779393578447925777674456522238295553417214261004752492558513160576239331243685351017352823398030500640463843858507256123068227492633285571513522637340836299964359813136916779849423010499349657924811986679253020312624805963493960392054560130734131465576946011902878882145854849375547843245998866068043127429956396666287155796599513518286706596360117430011362896969852047262619793397585585464169831401874499422679052168358382902839190824818050627033078174585689755491095298079264695397864215168168492170595020373728561296069157900603638776222865219127854597844398245264667234148621415668191289570574777198630659745736262318649933765552531075429403564057651090803606296575228247193240556914449723265302882011493879643921716587015738746349773486850849409050956690425880258023742661432942637325553972462882333062035152346648895831609973900045787834620981732459815881278423101121044897720667217077871926614903006497680102642146039965015565200689083763188041884572529290486186331919930480455248227506031181194901047498068929220866175054953526237490688029728090900521287210421770503272899563735539898889691273046274475002729130528270823903585967151659384985721480808869532100471927971022136681641555028119797662686095278079177427576909722710783072951815260591859841421355136181201243784435461617932467797975408456070654240973947885230803344920548738716389874643521971974065654853097759069982412366732944016570446389169274392607670058824312293028791473164914616073721217878006292210956990387425261692492317460254110261144101327593930948362821563271994769165937652232936232311729054400483731853113318507875359570347201357047822332435696132924479700937854828719142912827710275989376788180773541289820189374779763787793004101591217685626721453831125160562872143227903917555769431499387576934730767910214437074472216477105643597934334522578130075619494473453193368542219819104768324693955653673263154562881994852745945907676270626448601027645931534039698727981983513293537223488597180420262630893948851015970327232310592536376366720293252950676764790909610025684297824633313975939418398568607100928256277547802642467348777396590194365075708910620943169764870865231893894780903471005180275850683913184171037266537467223497321402518070271785992226974016316765881302934569000877354169950723820960808249608199089787005934454630190457644934123369324120329089317471761613615078626317229211335710859249133877944153312944096245545289498203874076003405902332658067052670055129375564995774454206843711272058473594624444921836199120454753209584105181633258483627598615378929403546881045740099174670924186617426044090658370161596053914181064084536579901369808293938944034971823949269804524969427440318098643100587569612903303383398404544475829832756605017251165020019984925561348066053176935060678475854460594968258903317547786923997179517120010091138142827817676823213792025554247530113086347700038063033996483786622808252297494795743600171318613954344700267998166526149412714684214706973708167962313696908013308825995479583171244278824706915985765570692567749278703541962579062923926507783948688002734542662807486348107478826588692759933963206857519849978902266512852713583225260175413870681947785165330572863695549090774809736479555808255393132078467556924124313522665493387338130750229614278089512353008822318423239585250646263504930685540829130247264073202859874618102320352439886468949132561131360540182644529812260367933990637354871084404817744028732782106059612719377306430836587160360133052288367130426150047619839119742347189669730972343862407900382272373064597412756220104377417327475466542113851689726168017972877134583143286503386863304625489532874346312673974317037793295972026780436097511382376636385371165801338730251187066986526575919791163696794714520916783363588867960557254050403942059681381551396904901947005994345808529898070968582760586353255959448636730702810614159597930793181859856098766493170173682979711111358011252699545055131471296611762080502908748466045581627437583358174015431231564811993450150118956191990101314007999724313091361250182279452067125994480446680364208800013188159122696408700640821324823674280571115300779137482742358355413114193346990132176916082113774732775670344868921014657486446368212889718102904671486399601372345439658587682731504419239148208022292838798775768110576636221431440008087133757534041404147763379200889718785014218326270460000729415260445272547656636005516542703925789110024589990473146725283951953553709794801383204663366809590566034027748045718190129955441143579785809058674258091652247981827846937149803082952844338447119459107930760294164613230455202908302465930341637848035884038237925891823344091180846492588419604297963895750437196762636116526964077185869694363588673631796103937184432897584315077768373510818124623471414388233476008788475022248324357928712527705612265375339788549616881409132904476086944311745696156308472443463204389116335300245864511856904562450534734524435423272332516290157790475748714191238907852201393669193204401414333211453252024739326281748535829885750357550753471105350811135752125660169985401438207301656297310452919432375339985929955048239731760720962199294014253272412561457819855844791697828691127573459861192392541964317064417326723542698340586731423634632357874149122482580415003899266941772058204921678820127812797814251709979498633494046388321643128441173464700816461565321271920370778470784318240449028532845166695967879938930923606576105104735024142094270205420220685191600389676613746736306545203398520044489831261313902592384571930434837194907379677526531663178526209075466350944864693814794442597870709300356222214378714209759623691318463218395792518506684760407416731676827178726483509823381565962461898733155813505473723630124918393649845065201203726422608835840586727650629070328821948563790296991358465090914670623822958379318112492559167503422940142336031436890062901689181374550568037256925543047136233924093291821017814034730686982716536979354824919153831746408035552931811849946607343659386395815537711424819775672679871944943190481491562757856321202286004859784260204853950599380664613657229175426879309510169908950607149220183401900214902116768242068932929536807225839931461630282310893009047631416760775945003771571195423066079984550948040137806206644085391750508408772394959263131802046149004550513825024210419841708237529670139407100595917387694927831401274617877212362949726031754559828939873193205186111129144453939403594952264709643667407876963073515872870511301857518175124247116590311097435006623716235405271614195351499113800602024772745581436203433019541605626899925556806373477363799154953686414831928534956611998323019615563883876710220432849525549774255583830129203539378720692792321373290497251427193445975024813641576339310499404972330355078332191205138682502559788856701762745063118127662972581730451274758581076951876658593763461784162441506271358865436769113960728134562756742960154349999173337717412131768403261558086342581188287724239039048039289482144758263798911016830530739680292444507940378202915881572402557528336815568870156725466734136191650076721939391666084628999555672582485841494955165107144303848101003563774206157619614225716794362608241299479806125669668010389535202441078966486205706424504234778976800616561834366816436277396929697049007076284026001617164428799139505068193668638034889843318288777028577009599152903036279532761580016827075827982575946887046762871709212836516571518220929087519417674669223256501503520835295476446695047616579766414739530746677118671204363168523479787834195395801183662701422789842297231641295726461573749442305170205341762548155186479750811844909322918783626064163064965828328941296303014526812502469556125586932264994269654496667268559546823017788058370822075444642937986565814340841338903276925005496011149737796849074698913345083818223753957412855126284687500210118227514871761969424145862537926129998650748536295382279473761776706296991394967649402592972227848564650094012078886871434571852948614004565426532940511394944340787183381561671958751353206153967429332967139092136621299919282928168892660321644361065392345164150989848496064636326453103162313031558358541224343401424683779334615207013089757456406725182073417380534872031693736503466274947410265354070217708782333068645082889157725141173948261369862675817402166719687988545387358583661003267220416650437762423543652424848464516369950761423628007305123629204098356930741437042218517264906789006732437051824488083540866123813198954985734401421923022493333464918783726998983959434910125040806638053130483489570326094682129935016746802008296126514265444672257700699883141782883891841752011157504508604304031269356100634295544836605795582826569550786977759130645935761304738705020132037689023769789374471308646258546751259058941396369173371236138027765218396215942843723844865486183880434401520667775897825229210711613201622067737763715374955540134231422290562775545657599559811218075958894438545875957130938569916122701099060049567143297069274870658499487415906043870313900741339575716773860686806058593720785960272357737324957379934840720974750360346542951617541407484758867813930539340491677676539360117363880365847733785294602776817867178726973937077223418466209700677608120180080003402616662225236364192412999363357321664274044115281129755445285911707320595205733588484674109329993126606824277028254974664730996069555376587486515206142877494121330323400983603903462987494950248767775922570922801838124853311961723623916654737393586117859787175985317104656142299723707495308224687195779234053444614227209486598022493429008705330494693023814501304793965020638472996989981442287067481965531507227084160541260894380285544108911949751922280346173450484844363251363513235398852127844295696401234611538593756741509069976445591609504347185712165806642364715616168786268573271635081706133197829696702888794879145945777935850439564898693236297031546926711364033812595380970741081010949466282916881919033878836376222992081528772911969192078954385475016920071801077656527723539817718617022658628299358453212222052121875657823628151057952571784656572932288996330891264505188871531201009373057784880401167222930625085256428717953445622517956925877060980249817293704851577951387220710131019911354138652888249786775911436214857800970282812152641834481146938789656237003936371011764309715250610620048220949500267593100386687587495998147606658420025658883440320406244329044774846397111148482822359549929100882007687895232999851380826999165428698090001351123393756844578385481647060561446470605158956011797450622986587976363951632929400596701718442123231681442989481328268804724748968190774863818131522110542490733285885343264514134154607079856280779120446222587195713041177111711646408376191543621909668095145716671842907707681576275826881685556005132835342744313199561959168456820910355425276943274943235438548384675868405810819754454715863746218630988656858221551138527940235994725812078563413614293676962289998381145747471736754440960709458244110767683203282293769983051481143187937702365240226457350893968521469243260318358785776517479963023356928967522272824088655083029079720290093981898435261440493320667252163386874462936286993159386077965371494178225723557125158993986530327467056902681283815280296772692920229621636346383032355684228095732482090988967626663075249301541307105624059186847721262789271912416150896307256664854273953501060981811835391780776913407708939941028009520229378813523218161907387473164921554315053129974053242688416600044991123476017709306001318322744588825909194959991647343395366364752087875391474716896806030095612624719624769701142405082514216894791899525722402174781581704333174845299714341909432625617003120915789175673740798659385684726630139250926803921991963700592197044144412491783406058518984239283915087535116720549434624783980541192958054411925827976072155343691566097171764049454380556710232194385896519478286714190978274338105920456497792299305067650483810984663442658042012721385560791496692106490289450147765191045146301109681242737985536212544361147662724116286051986980111119563025907013138033615957469459968093178563285488048455999125508185476371960765927666423144848428752179471010550191795368572530188632104088531987226215966814910814780082699702287937911679945314576939431039525294256454381102548169028473559166088249705914886091275677079221833157131970006263959681097023779264763498539024420712700452923925851508505454580849112223446952611379802623502978989863642874487432732718381525680625459824926453967141580438043220145656193171046683517984646158056420982362994169883168789466445607303424784826781795000262814480771998806163237365216112320198785420040133204012115002519795156634605571470952447802865182467526774121003646502325028287993222679347086062648231595727830589066752957682117088732677795038061033358815361094588494053903952542032172720404666936530564812947024074681801675613961200846077613822633340133446378442868748599345246042020790760386229395795368247688044928025282372341677807664798077187975509216972513527586568614352889231866074554970907597761809339757574203695247910561238291323272858298020663574910130294810247515877565444027199612352430585614139487009856927765285716746961647018847184908748135191038709083420188591610954799873333643762545099889448262297329966217738662876962363782661264303637457513544574108034216333038526871653143009894620531313277715190092719635376301710542308673197092961768447154895740194028350572995571753002076505160994827510821673974463055941465899092511626490886938014293155818903342810021314584826289968970394919197109933218092882108227856230085696473257033207693249695043237604046952094560204446296297567443755835115902271881827931667375266694820423586933897000109084683934395721042926177762225954990384272446365421158852797951361536030673449129794971666871900561696275495501532638769529668262109799651499317244848421416590701824603147173437927261567326524326670542524989480519871673526190473948579391888081858201818532448693239558075285940621567057154006837097276634427011163906010305750922585305892950073528565793390911436750613582913673835480373755406225743081525166231935718718069484481812877567685055671604211109059017674846918387927957334530850153331096124958960944149712621851207551303423256337603212667412245157419395650840653300584215218930162846192782635750230195674516652674938594984951993843861545527735154716852926293488533326831814913661500218676560914982652831684644383166598443114531856120739544469121144658869959288410263687649884220990311635824272522346442234437985783665358326341349997616257927430973148878999473307687307915398146987452947486028169890987758434866087600894210737452403959556315427964411944459434817553142133057395061274089878506080866200036909121229121388010608806083167701702161592387811979375823878981804292646903292319447629352388135224599619165259837357200801593414905287273809264983676820838545332084572792353444112997220462920098332076870817224074725333385092205147801397588424683921060080395110259579758452822628911113614376733061600583939663291032674422651560551131473724785331407044634428462420300784790873270090948166404789757873148458409745418804960492193983079047424636246025400221154600302263554962554356329295563337731440905379829058003471067114469655895932800813556407610757050677397293129866179071452936209144821423285078544209670998763466128207365558519423845557216609953243660266583760593801506353518785027833209491466329096011423829660999269125352273564613215505323164396125281612855116883498021570867567832182057763767511692062504925617295603981473306552534902886942834158671271205546197444536719238028292999498008633988096443185880831511292984050647140932164130942121179866081205154958327661134998485793410589992332236953933493369392583485650897678747626503437969081428917304022141362757003243841630920017245803197966387809040274070349405982229422486917038718576230699683920066767915853229551452370593260785698082742202822290861266303929328990660329741479172152227148158412038307817071837927768844814819915349222321150481470364192461244169183230802449080998795763735881923750247545192968054788288890511186506474416079244089423245533771287111404170049160704956620446745280186279950181218645716184406264417144242092219330613150931675223217490010569218673932409162617157848962785410731523840808215507080492037671604774780637009655555813435385603210517932504226444253619658129229688103007858450194464232962280356774853224191027677475551950356437813905674707777044130395435139095503410724410852507836711368809825056868623807205696843547458276740116235929733028982340656603480989388235531980624521428341684621879858325394216240256172946677667563297225232923498792334925543009981709004857048681817709171719758742568940523842206651884624274604310954588388839314131141351260461661548907902198185107316058382450272635548087477964543150526630696668018606569019320574033060365419358318891940621317317458063682932799947163460631468065126098501106448418275757825920907264981623459966665639914916291786064649677849871490931970025127842403696020771927131017239870379626442994675413926534948480311268995101908176897811976592778436654627564391824145655901554923295881774215174888570381764908067137285857997840238063189036432947469934036103983393654302127264337156136480289827403128837688414618417364971064258456782279631895354547308368009678256807862714402792272502128838584486678191222383235618280208626625788992094512324775257655464071411291863844831369015547396104832611804511683780200542969932871397737514857751429128528424602737867446491572309545163726755814756689624734334818628117663745151256875827616259976620463234014904624664265725244895063993718506032028426498934018276936236290801439552107291315014688930393988416233231110621736294575958972194905844536946959046461174924349432128402002151739634612734883236242573368248557041626756204298903256258339823702832692153650350158950546297088367703174470122751784251833570732132298848659704727062379979681262545519246120927031901039202681061856663922002744288372934022421368115258333762935997693413068197899451328367296324828668875457429274811015809934983043023361147357922446484060436908378103665133337866030536183569060218265778131460294580233967527575525837991250272193503087610152023895047216229439738332795197389108351993983093763553983042337751676655722802332594016725966822633779582817820709036550686361318505767928467070495394913621981912938440477109526423691043806032390193054202631343198576253125368973553799362334822428282409022711822429192576759185643585745504487260431450250540049795884227813682336696266577233833022235744987348084420079732963977878005259137978483093150728644706492805185159352726449608007464729593973092343093895799503083995627703165133638705933049857602641542538111356148442494583640516604057102082963227557584595677913040551147145600392301759310378145211387011336350363128017610007891407199034599727681986577484296295170157138708626888170445350383395538760052490920960908216606714909093884129937810291917712582145816295944527172843246904234366462249503986409966476299967636197350212603794836777167586773927159491329239009899075208117544624323005337283034515691687851715861229785151323875889592295984244106296125799405358139640714035042797908392607291389537379359230662008769392741276873198305839094789026166463201804769491756428579798154276581095074585566678870174821003929654865252259070092490819737313476680993807276566509337801056672049081251301281483875764857232631285113723009781582480078194390219196988376397009838498160903864617716446943170612441742369640985600283645762061991297268207139770617159366593600235957919114053665924079194109010576033345125331545599948133119450559629050391822312114343383662195094900439346406341413872098578827197546894624869903336648678312418263376177532558442824506810739287474950220039108280063769274040715260195095554054100201507934353840398448587032211678275665574516480635507397648853619891129612996503507863385368894785316988680467529754580589258195658834302147365892897377566382982134700019680714640462995489166866293080183303493293178006829611004174075771925245289693994635995560898824599399484538839190352051096100153227625276670197267623490583754870865701442608591603006191160811952103099745728604632364155392951437980882357853967697379557104760258756485379447801787677816680301991764095194782961480814696455720169298675349037277308865734366296396273733404748168411117626474185539253600017748597988178119919191824408641352386790063367585319038375948996820899644676849675740240312202817093254386693471594634451334669285710956370858688524425725961744704032486722733569630222902465879031690850264578036919366611286499095949223945272200186900909190994630149645097632338113567310759389500051564640802843073401175152517614273604594660744294062604752981857220353966284531487173394913157760092591337402137144177563466696151683905477018368119555993940201680589901518102740455116959372763990238257818050365562657136793290230776297310368652762902674133133595003704884718863072829336102788111417096717988034815771004591534500698230048293566760155678982964717659695457630356591191886408694186236249924067117447337332907006926200169716368357621685725942148697974663103936347787432478670876896637731082054565830569754238689706412231774222225393773179792796353949905755535394302794536658921868603221938673830588017136040159501702228498543065257963478128179164367203982531101618148163565085478538334834956146225093445695660963455639746308374565681137453073312695166532871247130507699059771275393329266049469389308749785333178337911621844977902136796781030848898372841444174004748579255433857420086487974846597345355516010776824321947055783145640953093238065288541796806502308764827891838822204753365978769363516268925476866712222272609402216484420510802940534371222824985911246101544422647036454853356645683307413692249062155801190496814011753673561107976513587038309918951097806596750861609806291393735055303030919714732957161082441294967496131251134559541455540818276789699259476741213105581220220798587732742777466908031355296569420568648397477299176887281923310894240327389202899949701422327436925623807568653055966756557204218227391013315104833109503861531461617462893858024135189736861424661454273210481208520377841072671013097143541523196372862506769315518744406351641664469988434534956238829227286929240222958940992897664903730295784358419037477781259810506714903477905521162700095057996720627140893978407494522916163544104266096790677740134563304922961732124009848200368718291299879763186805621443666743741352996097392761170790814688821464982460622947408250401413375544620546268959128752114164440212615834009554759036240735205157737746571950875964937925776613485534223803036673091824012307331639659247470084805982333892471874835207463415946793718299102685296702973883807977545747617766073300178331059637870831761209311822484642983151086955744662897651448549859912876489864770279736013989315314377751433353847909828640597878675971744248357247704236017864062283772713567778050989275195337062270853374904647809947383928347305269074351724905996022573812649963945999762471240823376269954344834168086740493455573317950271735085942173934556243270593178374063977696693175766481198810732032175135203696846669621981525655415038371760520863241358785727238493721771633332199693786733866884365632601218997740924260981374152778269167684571335643780210104734411463965179954687200731780936243939123073984558144808793756014890099118776667891942186708988027635919554403110978668251692866700666789646167476123366048282037995724706474089135737706172168193826080607419787239561261284877039869837174371022182314622502877221007517594105677679374292231032400900633097847783766734621824124811649697137842576029176326717504663597922884345698789912333270237138243393084875391842687089586409697735928086237878395647699507597922176721389522304219688876486156642167930471812721240205271949728914770123569957680329667752689446331390291164941140167459666824230940157361761220207937175353306374618409764207088849496624734403945305432456535778754497611356035426065805337092803984886112018313456247395709684011744995050457713344333283242308971761117210683994184077108904331011974005261120927420025661191254765566374417722873321072494256147761411916142911873892247910235260160828740875443497235837936681149750353977076658059918731820872885553102717337546478848113332865911640818601157892305909425650026319185331097101814019655588457344753048159160313364931157192498900046469060667971678001949608548908918379172072630529612735214662620023120533976918573763293049285413693496888656931048336991544486254983590410477300601052735305645347070320670644151625978200145777200276733350022686955815377398162943880842811941767690099216273294398394921091981737577648586644232295737286707942843205201101277394302054765373983327277247861145250409841227000860184795206818251149876150983010683807433008368438409203025351745537695763941346819635855441230065496169008271243537664898976113680755591190592216271166217647253015339502117277527863920909148604597675389248922709545659272718770173908187631360035498086723109778401212103152586598184220173444157666902978959566203578655463037216934298287202441304273739318067283484716982480322612448919331366141208838622607763926023685119241628008601810008361863029066822228772450287369353909750282545411706458400450914923098293300521103345525431672368449845949775758111128515586246592629978655512553981536815279268503197039777063445821970208853461041813633620374641454137014145261498940354004030580692821842612209049810015074019524302359332998322399543742639592751468565868919047348569089387429068056563936995697550403565608441196379170292917398197688556033072709114777049526665558626223772347058481121889871982079532356083367140107556921388531137206012680867154551102851685232420395832927563666004714852578909858088417833272322873754759004306657643866199885323609232578398488968588610767417543930102068052648808710477392800383111227999581666499708206186704785744634690962707105383692799002702789219904416819987106799083993677814790026761306117815183218472698299582614503609185980067279116924432410925796591690288719160218638553399460284279565431202379973113087606911512331060461654715771362437754609275671517347675289146275321783749637519990061008103865084350767602154809987175060589358959046452390234690366154386370981927581365106213478049919625260614553853972727340823822559295337405918117604202507392299311411311689259391325268017442284682191992598552471678300863039476282524794303479899639694257010698121177802733731556968360334628936032222149554626402383028500443103405102976830681573341753342536651884450578856130394728001057550175704970449462683368568647841633352054811838655512529645133912641570242237983476851368154061712202082129797742471142593350636080799443114025707910413168577299398570101073794191998407928635813877881637817498787591584797072416896838794298677545856163865020216184469717940593525845721901386158307149015769789621633779485672743653034982030510329741326532446489930111036518804060547712539656311135552367213089704096562766591577608423388056452694836576718179343624135711316336014581667941935166322721936256226510341028428487021708363873341013832491610879381357192548331404665105432506922074878887971082769486338613754700794042176063980473093748931511197031995720925923524715336100083420913505248062046251244024838847141609822192457122206329237074047849682683922495317847205088808770596975964875639851095339351802626482194310412366109539814487768561034806157669016351150522770758429972758145790267078594583740217535586665921332898694092951233405338947152989335265628762564588955448011142974242782867270962520146775003411123937583623476778843131673764069822967511632469522992376283719274886705105076746674809826862673579990971861234653208069328342507072889566540431227215365997637460389663575334202983168433076483865781379064781524005827095575506393422685998088441838716670679519407902485957307100015603704375473161767309720821115586957982607394682790336941065978160618168333029629290081556636828337367986173890434067560996132554324110648647020615958248921938655072308294087718407710213389528990086713632877036213521561075293637147166968351447380031003616566235443297401130477543977989208159571807898380943701455334390629117990881588160365208195398227143008261577643595835551262672433660434310555686231005948514745420814575384632847680604246266853612177288983843587050400602638916946453213111029747144658364222975432237770245381594328673942441845082246475208689626336178843504422091032492110577717413226252641263317726415954492371025294797306879134815560547405300855071341934008647155459423891680406102556854954159724652909073059546161977211529216490277915642768193213399720679939994028593068785229202649114206773422824774217744185208331785331792162885279297533379878377819032120565513487815263513977719901767757962652411446985560275859699258464480911643016845431279024433897054193916717490146907380417317755336329062280829380056794976904033128732292168305940218671255749643325327376866285317766982526479730018999821855838459291181342692465088512003507568799388551168924344735529530691987936959620289757515960908262907387722130110612342087033329723957468876390445385560173287258165007518614636201962823027962688526934295184365059880140916432583656250247045739887564261925382500248261645082593885785028937899082274182183808568502919397420937766520490477859119881039642662787572802955778286077218763935875098688378800987046190421778221180270792709145754574881576963909901825062891305427537678929263769642913443386419761391592403125482278745231475229555765037715700504403744357001272665492484477971858259988436104143636018447268043306515315084257457136795449967575049122725183791981362747596341221215179872518118923783129859549554063384570352636818166388364935212260995656761920116308388804987681698857264703136179417902611436661738008258951456102966430842827560708740840461371590819284613733582394869994842441433674386507209522999974817534989566122312110176128402316267558228830950545522340699468636823058820567273420056051416058947040485876345072889598721400117216058599811054998491746499481983539281229185991205555177353099399035135608637671629217946415241245210605279456527650058752643710522406185534693930185932133099584491930002387386925837060451993480686747907926816110684187755362470510135341293730227071465838332269401383624721804723335721930463693203485448645883452345967664482943096143920466790533447441671682281507805760977530834643390077477253848525957717894687585083814078938651127020995611222993552087624259789772814249040203863341289265245267548825353371245782651986469523995184534483471249878155848348723436371188941967354414537264497577573918819062515604008332140739004588731368508253609034765831644605327217328682732670605286929030304189816775149912441815249526696410982372733117591145442404569534044507776856912203727080063002170085145082679354469581192575828916184168538557148923142393217916435845996997087381882333093128087355121137118794249769844459214044792702896837696085896575552891046707978131439930292823784708657658769807427049211509156786745190398071495351447208395749611148363780105694548107216354851081107720049321439941690782750101593624628179311515650496583289353802156574564895869575496002629587552776691019000889224164838187675119888530904345713632128184486585675900198161544026085468678913082148931878387197457599073023987859912879655955241105476740092887561343998412568547473541290302149331235195428105080427303955970830514857433555014062610098890912664654084615691206398872217249996858587923575892246512412879663186635891554683775246840101457810652172237509131281368614894993340099437843821736105660745195434441405363846807260825857757534857270331416601908252761893723747726925326766874901882115815385666225189229544510444562942679160777822171757703053816462892128433912064492174852692994218915962076438833559644615898238817398764284196820228855071045595926773536816260072901725067170076138192286665847876953282061107175169367059516702100792629004826118279279470726749420145621110048188128403252040356417535675679355960610924735320337196571676448479544951417514614146374239136666566850793714072041593752041272052133303730045528305502553005559217564893624401105929221694701266401825709314271813064990383014362585490582103985603876986700898793406471853166178080641947284477611627858742926811891258128512142451930157278431380141285887235006367518711991706153641374367223366190049333551947445372201042362622205436235628074328351203528727028081144687149926439274388749789717361829799758561729747082242820438242683170822897866157340674373481670956032778325473927456811639325015242227201493265718214669476347104219124452807461183288118091139661197498682887715680328140874330552421467076616710737553851727403976496016854359662312728884582840599236860956131476493944240675280971435531228557008156284652963815424552333797106851055253451881740705089412129486239094847797439232573609884832038681499479933798946002832029071928134768365029172180571841440591878085888824534648698180981652216065450170167707172810471307909918348758347136993465449249728601717599466577581897425969521443423302011770249769627030904824175371473361902267936742493744341334327216034331006599773424968222298824983346044832110341103735480146989454051537294281505067204346471668191192705331314892396217165285045104577634360129758796853874045722865405389139162811473910153987802337735367063173581098304183458788227484379382788647125253968547618437918031691325305517503602180550521369076747011271496366688913294966563905928511203729533768892526872176845474241876241974660683381457310017833100071436697684736823382389466970868111561185816449487613852947868880120007978904144462115594690661907393943173951487858150010691331135781496209583361642733583881081116676646091618471346836275426515608974102225733494194740240525148256594163477896737907865840894354516358166992035403325361835845015459669679395450877007674609333584526956908051818392038241009931927423518972314046586693285791722254829379916626909192660350516893002010170947195722545766070718999680320698504031636808198016921497281466321471689897141749909187865905429933332309097771800455121855250604751887861478129194834863433514588079089890336361736402115268860290210089969726523913083827117670605189705556005351718126533433641757486236206538177455902634008073936692897139491200227159833875164196763185353334068390241655936586320138156894868559947593460208635976021806061444969706750041972161991791764549577228947136120050778993872170176874099131584024083516119710307150051959967766862074390348412918542659163815895746278848192841126676925323984196974581409702473719489910123144256301004579562218352200552733350055737064963130453711910341194582232269114569439344546592251164212517783154416709811462994142904798657836573893339348748025828061077391952173560034358866269423400891161884462911425353116708036609609749938939006570408212838553079047118779986490813316828105074499783117454632275748138452295909333455093187547183819060986631584721660297138538224812162368744754854387453574800998415456149990548389303367214908865521740887614310357460959979967157837584740603040334912338665837450429150063406748391569547189078235967499222039764937888947826931826088277191768247709858587394981094890518294761537441595044673735010758528136039321863575945555740166056327005033537532464334958597815819745007682297854511493795322032580012028998030018780246074446149532148892563487371337163853859315796966044449729673783519027733169404243097510475389396256707049349474160323385897815942626944572278791025608633643025237690216453840754786615979955285685607690672067674791846872662073907663620455308626550011122689622410383094334875515804634374018005624340884690394342752673503269064302026747627917767899266290263441411920008124955188286846839909599819535385321008788701428298905436236083756775222543053023755294844500462403649239311507132923327085360021008385438064195649788665231241500505149292972397601032533243567689723844288910347105892313386579945223190652297453294597095527300275843649307144075210592430624893490145099140860641951707447147351853177839265595616150114666757053414646733641702790349642531045640213138378812523626940954035105126492501306590612767970569464783841838233258358726046751001545072881121768823389321966377883615983578615954641184806912541477929946374783809733461821356571222564082753023921979732976397238749992005252241750962983814881631235453378522171729761563528229487981120741974744611668831157060175665338782378294118672730125308104072595011140512494211353146284547656124017183090811860419745668376338269894284570934743834432484647487025950882058164010432523258914082600814146836907254643190434768689094044531756608990757792239657411155612807220899264020394465912222041161664821596237768001534269769669660754018067702086180910549243184375854913966220914818913122490737879345112830367679883103085437962531380258635103933125737450076115787879446905741029623513767566626954320127180673053215897980601325348009750901751409497520576788182122777018811893156114203019843195475954456444131119660400949142594844843505506459835556751128004323115531657497254494943712602401799009387111242780502461952775581496148272039836726335514574237073078980320771983084726477184885246907429713332788040440195713418325561437647793196181849330247783866743219827253175965805257478411250374087458815740894313829735225263657963493277912095841020528800924731707694731835730400220207034186733569431444238405767266734888193280300529135733161470885227599331195498839308550901674912864928834179816514288672346272212744934431503458580387780025945736186170693671378380778416468150700919686341417862452797421105784423852818632457956468833441063860114278368848026550555226913982120483121518487621664524002168318841707939090778047030328314461984821052004310926449656041185717303814971360416620261394213382951828175176326867976031479109072738134809084577106046003252304481852201593124699257134219101262485889183075571603488122849773791047389995864169103567347689573619092164818643688001148575453278698969087687781709041897281853587578914271602217471747459991264091305293303153903394961516630339236314873791103542897965352184137716833804651365008438974616551542946142431501808610287929862208772908855762970145008891221456826558988158710727722293962116551817628866113206088167067933867358142885461090893642208485604594847435651791094346764689941105435135639165322919197311546855533936431424569933262789812340218522415878992365754516843800046702206826384057872297091226947153919308830378088242748936057205212600556798258515872480315760439751639716058433508003756951976185581604050634557226345979741720127544293254828882951066053275136691169687171577621206475026303309064083102059204195174440577318839062787327768853767158090416624959982609788260131710029050645518510788772049901238774999757456547419555375623509819920129152712875646882257104474401316832864593318130107919851397424544661915075869624204606066398186287419066719953020628262871913981857024945370758178467915863340602411917771024233544206127681927999804136204886519280264133840120686641080803451777522259131240520766350594213329762981464485650438952223125288882661336178771286689870177088368534604417750417573436651386419146305935964485584425858634497764819948997325651195006041155644941515067139232617583000186503669696992185748174727675077948227334589891073785572785945253364280920027787812450688923186314737365758353865863903305600486861598434370927838270395269966298001582806926249388310353972479974207376495891499086190784440515516783437548759694107181430659969739995938625231112801579536090971255230031074972610497709250673728277171590593921787426105071577838751955785927596935631158999188960860893971377503757208174009158826239223426981400933939006546717273525591205790792140651650930252614862232285016453474052736565615355780255779083481110966462268618491395796971920813532542354766173625608782127501066631911350097577880149809060776003309349247697463282207398638908467845143165050242109055204470050255535562132199000938039412357457296118505726101674687502484105529631062471726673432215556876004415990868261821330289400135166375184331175855181474660578498268469089899957887329348479966446392972789415269044920847984756681091024017769663179323842042994801719057912108634824178390024289213751940707254186935375346807999388542706610282919087057859489099459091379207968063250839032765361123793929462585022292726369125367841659604241911638276019765066369169359848612393130134523847468466620370976050119636786273792762907050590361203551542048404879813449194401980061396759115222202648234971312435907859086809631585111641762135422730834986600010903465901818280892997250920833872560409242241688846759174186753831078914657209927909006164695217146168810394498846335821189263191136421649111670461951495444885492528878064800358831295071629217116371466137641676664633926172599751862816701827524975937672009097760279056563642702607509484478026193832383856421643343773538948265771367583335995010449395278528962747628514276546359020799781382937896354684470531710608448240158304928882772590198502141455891348509890616595645855535530892722258092030797678972948629140274871416550381235173698703072040982768306565111377532607435295417851912158914154826818064392285355909321185661241597483429682320138837794126219616011497106143719351894401502002454947307195675603034832296711456925138989378765000161487801943972420233534441654981425655803011393911691702089609368182923708207690122703635449057500166922603408225267142293454494339019796469501536906941248159846646134395234156789679767496570808998712588172387365348147078908631613767652963727123375984619938658357634731284099079801390257690985424246447690771221060641653611961436875828464148508818289110054843286129514928113939479516548386031306475016016594291241728232181473849718981883295778605929184297552774782913742903468040082205723684808167531335374520060314443979849675323898156261723626376289301721573588496473740498377078112285369766089462979938270805776508685574211588119412093484722461171784854635884895535243521309457804139771880636498071850915651000637451807705611119455795035288210323977135516941775588562697509747527528574368628049792690766034861099249959668738989635754137981539691430471651803870774994107167700857404568900251069629434659456887189647433608458724543260657503123731838388525287166242797725555057370576878785272876137278266622259207907176927329048784421216840040300499343513953263637292933733758805558957898242262226183220233237087957918427521855291340570903863392848583492069670900592519472123808511484423399574834894347566468576645007917716694374570115350897582758910710715122775821220078277768046227822986914486205889797920387276308856007872016373432788191349243950741609640859029204975081353654328169408892219326266734466983879342639707697611219149136650329183372069916543660128876839695024429132552543318056222192451499121129273800889725548404028146284662519281172072636674719714745705208950376205305848687809739561248237347897903511718345246882199557680925933657854388741977474327375333045476374833224907553839912029621250073353940687416184971589087750977151920860168582646010073927840896891907856029313570571860520553061850628364213318657843252439739667533290654583093400871760869369151910978175948864571797346383307662233437346391080227240314118237862124177860241892528120979619236325162258370340936454815836534266198048033573404393444603949945689183532263721640959469401108174287185693659618969548605698399324385888329463481210138562450188311764183783729158994157328866082135439428301296470846332478545550463533571883661163922158379326776882779559975197422638321367312475846351835446511735522320180802228891419440364122477107930450237351769734777420245769034560025766297063927302776212083290119206452814578697782402383486416197355315878422058312921690623309121950494157101036692141022486551516701894880171146966082142054483366174150105656260493817511368216165770699801034663788144231008604009885963461149804720672051747217340908612959387525768601257885937972005223412864581754843044175895513652427668290112456637569041717948277784168327067103888866388896135369788494030247784744150872536917981936906080745676064165313732267312423951545101682855564114938142192550495043957956050219809538524459357906836651613321751719320752925450535760170078419239300365738029192071540156053229102666275732873884699834292286604050028368046781509318951382439402247090263498994789128600771761356801887613282645547882449323423266652781371293079114425213119915483179135014063802449797918561143860103961084011077695694853909900943803625510315860868896511476904712401643991134243967733590623067963238257171534831861144772592270170183210280264868271686929975320339537727940417652968005188743039353413322254355286926384780358047899146857886526944846788519652263455999586085958022022304023792316899473648780280800444041081721276324843510135288082466991731694536391906031441256296138930062632061439937385221400757931305408989683498156467843624241951963371854528313548791223594349930425559332371839054210739118200068259352073203589414716220645778895666532167240620510967437866128040487204040118900316871542367272679565071783190867844328956305953698904818821848518651461846939452856482572763651258289676768022177907865763869239600826198402237049124877849647023584377171304437239310031085730421049852959865908800368972232956037399197498430380639778997373355582315790322918051206358997843554648999240346163925924708372294640619680792651865126363063006474837665740259782574304184567645665002592776913536633876035321531537923843210643158564709505946033992007102107805828950093819531762228713898764433621661592478370639419708734370429854908478278865849887675277543966260275198996158844198396479708474524858749880009303002437461187273077973557308904597817331518097806873107327568940145084219992361129380293730221016367723421573639362322440887510765259288030150609233437949094098752387948685262118342206168664170407680786289773275435395075402048160977671472649210285542377245183649509068563810672891895166222244739217265296962376400485729889472446277153977826069446073718274724592975751800644617455634113917787366089756368856037973162167704842128885987664161885733993546350332358635446751533544234264890632092699992872909795350671054441792211741185096198502786324656923324190892161288422203408803376210047341279123645229324742974204806626810358777316672790165425518443558157164690309448707792853640263821176424077970404219495263847292082719714274265106122856119682242386026240478066363653103941137449301415843598839619778904848663790758820358018601036449130181376040940163019378923413041752443522437739941051733520399840286296864349310740595277777618047382694565494386978176083505326672725491227385329553568861612841835475013881524736309316080482892824022487872264776015872723872324218655770667775749122700610615318725299666969238142057039328325855520084543191335200675839270727287768167237476896653736039087699995290886244526562439052828355111203806078976307342243799937412784434390984690835981524058730993330895473206563185159140796601670101239185993314030356894671209786776205677274149731498711194870712520907307159041897977342845460909160977734384016469431571313726415316648349624141717330554933225374343205693551252368406250631671631911126140630258176929971192260112712024341083691543509581030179524726342706334932319700257605665188908922296920103740068319386744874104632518204900850676415193070827369774375355666920343815291770236666229246680560348008367495798523222835709135659832966888327774059607392858206149773368516408909311899859943904542436286637186943396160928398352377260512949894149757053185964394037025771494373948890616610926077580985525405826560464464291153992179289884134953537474385307772989342688449611500833835463444670467434790729574246257856146056813592454844702010535597703007252567564429924447101510583068822990951499360311318128057496681028734516616902776519008328589635093417798820547890495682590912786391113070516511335452366260323594968220880427715199335013829851465762386269244287727655762502432329682538836711456348689458158439468940506617928662499309079087578079926587445298901184401790828568008548494370975389386898106988769988274542815981118122351380666121306902660648323914493885562378953469682825351217068772933869588151703009887660094961857824952631742098564047933710014624357387582148465180153124343735139224002927682417325386223361935477282836688598643228846589188590792582517234970810893491160318747080501696289008412257043390497693905457013193995732155557699867607251145769138210811603369835524810098761141520976885964624221212015623278500860418434628067763947239815222082946565161939616849977674370327700439839999730518403382141095180209830263756354887059294248993522269995941872144726447716177734493908203524195129278108556929184438888753629285543600878157913975729954452003287151533044917749300506190303684196840780087631121188241918829022612187033743795422245663181552501169077612744780941478638232919086625105859748006848273984158806603181825081915115708698785449831678350585833803476586089626526923928546523026168325211214222521465378537118636464499944824523032432170275504200205005875213665043217791117683629005582367639057925892200253170035033550651849530678792515121262981687097825421795793343653407090192701511168720042774253588574180669894792922594034735800640198566374067080426966108914807792555965331775140971077469456027875462966103375999701800173847149430346322211102072484434929908496347705317591548432459573590329115547391884131807745028297048780597144053842007869580748438800202977834855373656085289119749504904824985995390224450359297222963850259683419313189002425039248171375920930051485268729496691550119738974485877765916207350192156689726307849009664883377049638357147434523272129309457380353808010232140127642193229204273509322774143671807344186386607430560167044573460312151213746536517949136738214465613828970852739158798022990887224575355638446801366152280433479122139633088158393816983506372907431681284563977718905305885782686107330224741026216716862326006507760124802868142137953436726490649054423082603324840263591612715306834988312054284198066250727814350489182288440837298489022788607621171418915089321574904096097112247494712455741775307111577342402369917568609395565797106912582447648185509623128656301196066618173663514623086083464673862617480557738883868628994619753830183051695711303810685438510298480615257733157235977535847691599675914922270147268581264517165604552097148691254501523004315263061166192437974188055031843974287642931732731442904496543220641646090808865310644129410564123942350862173208917687590991548385194668902869348700408360325765016227120480929075517218237109700048192738295055036383012392304538756416781510409160467988514802032056550130056950459459093467806883993537393626543801024041343713714793429909424214664001624371848461159915634030581255391192796160618831580441388087884299825572261725671178478058470771746373615269157631858603639627465940506212140012832234985890877942858495227820214740106842563357737000910470417009124197011514882442312366852320906557301595353014168853622832835654801781065487229169788754282219656800168488617499022925564882645132381800964925609305494631745028780732058760035409385620023942783289305803074721841369559251000177567379665934097893065614198772819361941124550154803093331140511412942914397526325371374552514206434665546925164127508460811572518899251829080049163832103582065305320350997690336506145145362015349913921732308694199760550647823000453805432694499856584659232085638714396786732800862428994619609049330041880912797862340008088666547183820908997326815279943879615623083152103932964039421413152048373289383824696448882396581808926590762696748239121595622999892173569282677053701926083188058826589852394172495769219177835046379100028836798145010766622987720243810846411937435612562890193960044746292353329482845476840238929467599361842820151956535970518229949654792540555251676586562679296047683322750109058607987372712524828877415916615616390221098977725693807511697058572234420933726056031203204950891688545689296790021358629013894310773184972857444379041181466654690308048713170502535652252471536503487827069845519822740015781481110505228036923590656350649661226584792186151560451564163458627768317614687313376043694106795526095662241156159564486483467802511440780830527658406666954030306712176472970015614035455383359475795002710464764618521836759041880946912590630980952239505844419053386090235137628767813966427506714493475048814324847249734781431273732204608454104195614152740899787749388986927866046618458631803449039231481671691343373706934255178065546008575670751152262389298126271100563418272939353081213154771994110744006056758220458678554451755996378407857661460034918773627466576713375907815568607740893981470501473958955152832658261960919047055287379223048452967894549302036110026773107972479474889247983457715619546898212458613549008204678784071866660249380886068844103990176764058924451953049566246035515379832763518811238439541584534301535292549049446446907517537916490638642718290635959360474783760190837005048346452222716840058049947895150207315394095738721924793252419288244299126029638194012022271703499232964235654361455682047249776530743723293047419173539341293885739789149452637268529201252770949741329419359751791350520172932620754865400330066314931980616578652813559102509484452424186430879839556881521281303181997182749965933557854109645963959017115760600700028282035258517943848636892713857980081320234625390502841582388521411733286736743652482252390042303749110534555121025474113416291514028043281412634935030573348893052540648665233828765579852828304783543541587572272336036678135712098621784052294453590100237825306803748993844826483500781135076933622166128726162083134435622775648201248953001077752704687616980391815896646667442038196111910285148009957745696893131730254358973997796664601212804509356835847728792306617630465159570008463996873642253957234228146327627563062714817311721414575145740812239520229267375327029344184592541492942945351671037468750116224069245606356566444806572356114807733049887832856445871958399051540812669990890006743108329333990451349956241006655827350996708704687279064878726931475701031166607995409848491779316893740697167814743542168553861349212950987069348671238619754453562415910244538760148295351805043832455326221266729177290340180786799747715236421377685108407786108561878812421099109634627309709765126602377368289128406169083267146798501795063361825929316238810554929136912472111307092384249785617304280955830381748151965756366604615557136564167806680103502914757752172476039779202917007285987725304135694431123224539341879052526821402894239875695395060142345166691476429388297209235028067413629661851780178483878151978060517266996670728660293056218055057634057842086067251937463433506942386366619069364285746654816451920453943056626087334751193129900961088429749787221378948013690667394013545751678477007753728038684230610720827072797430617622798764256475085964799234852092298769737539994218486183091645435563063331010190792129439336072670480764500803131220988655976317909789090893547853879650292228544833774071891594558109298189572614453351862823884792263465697174934974530967325097784131582246498973385150196935984193849869974634264686264693579017624047870494825545956140993539202290629983941243320072344177732570746381957312746158983419698657304553796032101740943854910471233819392640733045699146827483386232932782283897038476080184174803255566337584730855718678532241555612078571280537461727819235561714178194344533836747599269198321286014256944655304728768033823482035944166894309556390659239587664669006289356367382487410153869605674692070267827963218237658909767732094063552421010638679960397173956795996913851709618271056940202116969417942380953509459718991428474683314003087630268842422041335235689805479389102492328563809250775771635019496515261421865225514844829958958580978188347189100449357490055365557235934505247450023886811942700070279002120554008009665617997117634004453659912923805216550912307559463058997915749446139254354323844961070040333326341765767153422506420863622418447519476371905984316734782757731026260864119400404194181132820017149289867457812879905532004791175712329189513876817453683559633465167877829610698975933142220073545282071769198020509832789066770267589425025471708200716319695775754865948481479507960701373812127612906402899815573957669840801230101692681576725092402437633848566091054776057092203903048754858261889916313068621102262099741854812257731623806294542905495781785709801154935257957073896524949915711064999809771286892199662795593720246736446150216073435216579282847965031601214359449939196595250988627613225382588024173820847047936085040190881989475003425244836908788087637346748615382590741873298368216765063006231869412389241872260884827592468772693467878479121975491095058116296283487158049374082964566858993965017404463506346826944338233075235402857395423546667241546587133170446121728265235890957147628391608556481944097582158180832686129155511500088407953806980362656884919598580350669904804020840232356977505660454424273669886436418625478151820687371280378632231430185015003394617878232352014349709818198923275440304259308910365629315838193138916916671809577256578622798959147214925614680844693511967966921604036939465965206857232798087970374008618720852506828535396598312906467826199402238556106512316954461352976923650571551734729776129784481122404271169128563564907311053121025277421696836029344345643888360740726687572406971791175249408504794540700387869732415067569242958692705383390513305286105047200723381603591600700164284201857159740452260858085330313305198010146314529706971086804672278201059987989139498016925201883173200223726326748410917215402745930392352942444473588758980466154991862405865739502476671481780044626301766830081641948140533171406983431173451527984578786825788284032242358000896261767472147022347608049690744443644789255902368626256926306008346995364853693196408744239017903771605872351594586254720857704271770928505896182852570694585987338589636911010520418266959553790286258800591410809021299797508257689647220192652105400078165758919865141080744941840776621106740882756830015679898038302075313289918411192085491118837709716698292485196162382180334371993176117397690050581497978356633796347345239473862315322692356307086964400519792084322228968426305929969028466694004548291402769573943760387790463266338927570825749360774653694313709451109457367396823023698786761709068842970596314958550754957267676445580831051029511518523381542389073687065419796904632257776527409704575009155690560167717530942236285995718537798142260902897808967075464906506344526019677530959084472322206622980714947971797741238220666156750269346824991055313371081525880793090650542888249050346051580286782926037120494013795730646226485542928243839736748947230348094830013968656012127257923123602093479968923171696873625342277442969699902952524412594713005818874217673119560542547228658436897220970871831605819719606924653290924986449345658135468435388805477492987290731985179047622629944047754003824413641775946038702064381834575755184314296347914167562752073318246434278474267436571729973248674390138711969690742745788245669995253073162355653324275348143589647535833842430673251157616968418050124826891637803203527125351213523657660755206123137504895805064697723724121260826444794949479874521294891573454367157093392041357009147893891875205665119471545473130594124210940980871145389850073703146094312333402832471162252082749032843515815719121746523568790307898452503171880924706761332584664587647660791605861687894145493430630296646556033059549002543523207748951383130700538844942827117572049644636960551106151396690686302471560256801397388012421865749762209731077903450804021008854499343852412677590380572242187100812638547981053749609731757264609452216942139102160883994937560776730951512472789619294980071194018587580911293437354667071472544171692734281169887235611982303443190994213858274920666468632209308136508916467981712784326930526348225664064851115365483973180766369867292499891918150013001243306202872465556898472560621174483022427324718404128767893872856486314651339915305652288090206947019284456298756134907824833835325946570303414772041730376293736589385015460189750894617582696904837731994377432263839239429172020276636328326632322128667897953616587757372749846134539928848242168525149535280591147714976338887594644106748424663963038688171734007378432096590958584249711199559108157340316519836985968387472164621920659390975134760468462058606584987096949843620837054645233426423908219402524911358349764369732721911881881679410874391690430924233617076786076971148656436644262368870682500962315505886973759648382457309822985960187031877838759573791336610752429806265315020175615906824284103932474295903385964356053650275467992025564033348035720594152166737796440989528111851444332720658688962713148297113175144825370839708122842958284417665330134034275721009409818056208112466873327550700365176566905165956124448678480987557633387296639305082373844553061563482476731114175563058177542074529778837518927708408214396870222121049646324845802422897305505643155176743726936164400409894908793620119051685820349944571570703013566314809039812850343200867012981358637533374492634435045514906566503921548891984857915515436808210277827985093688153037457068227741723833522977278184394180310284530299301535731700683126784635415698187311708451581827973931999068089042074332773978603968077608972264503973048394510124685118058418569764131642782349965999779057629778461970021949571814820622836018847700650221097995725389255598869420759174339006345357105637485969111531217956905185685438347666349188566626999754084159487983477876222268851430777844286756290881148771531416364850603878808611560040034521000714150457891512099634096400161171566039258042908648253861342809734139478820976851979209035459539841334292250401132812738177980435171447478064053746864984525857763247502907039000250999426330290212907310100619334336682648170807517805938820061968734077317533987535114782356417845693398344397687610338391382743119996513297377750848532138610730733634398254453813886291905636412808348458896818390843161668885292211505697256226515520595439828118822232904077069285524886486493564685959912078378924444912215332801386371292184139950723167334458342068473690047171480649468211985585522697078979960277633762217870052647612111291861828166985599416222160134670870474400494158684125533131478275392401141827276905227294231142550056301396300602650016354058253476895312922833456876565057135289417913693188549799515102218493134196066130081744130848070742921902275412614443925736314106679661720501140634946978526658469340201613834443579195702816999133687597190423678835202276508216087481307453580326127330292460410653178788430552665465986630241571446626213267634683773899715858489303221582616651411762535046499490946921209221358079044796417946298557854645765410431383857696972040591408652066767402479114612867912350786907536877423250797792958801137409108819868056013761410710744355944492292668235763969463882060079684229984445175762518308541200809986956365502553443547849507824017619567027138533904653331445915870529520252852038351771849220502242658508193919344220655784188358211345095533802585986194683628618513745458971573113706015349692577337229205719444529166783606838750407028922804193797681546575799481544243956538184109450456178142169208579320204486784193482662299494416496943023624030399231847920058335304375316440179400168605432362500343262553616084325823589302558516173338832068545866774994686727280968522289232681935746433697128643809541420102798633230545150038907798770130684458376182116629094950569735655957925249190519605679854891238631609128429043279337168647120692573121809662894131352164105543967816930972507035050189012536771009327164948812861954533683573038302476524559160762021812577766412410666001922868154472969514417172839584486676175660182958416792253833943338641704523766382029255099844075012221521075149509484836508564227452035511507622981359113014544524330066205405353694698224841661299364447832690695263085682605875150690227966904591537050567934772376573669513563629574026825559456198467536060412778478669980185383537868275840932270590811042174609617407413746623868523273592052544888607553098818041260402461445009609150944558278271231382404505401199393815861095492971364351107152886809915674879533434484358004412426063276390029143479771197370648134807357222187569427517664003499987884495549780336236286570464476447445384458926363065807962005448579703517818118307466691753120327849843808829904274411588819197371819654865853670199062197269638519993524696164768850873072741409827071403776107446582783080389511149017627124925655282821481932038997501010021264160860115501436965399200015187733742358325693268859221914447516025838801017515110445942122849322252985551592723978443722957472700020277449903668199606371799119301603168032303039557125199208034398011392657658949266246603796651814955538567687687615740032223157206301233787853637139553722569939537721745854837489895122773069494829079599764248947415275126936607146252719626366434742524362364494305102306318598462192013944487939191008784212598494863786074081944965962685842378360567752247707272527722013783164059422417983377279873538670456082758919288113311686437670783442156267124155056916727471667785241833933292872539733553905481320973257110758042719929204539914064803777734576159306246543781524373927594977491609899148940112600180127041394832706280065436776769377733322609935006023578047010966942715439737404558136884653926663567826729416040607778868498570443254595867884772681188485878467460364737362244263860293332328636276552266976671414204265949078189932396183150685720956413170921604428076035364582371990553275722433007037978464089582685504255418541367339029759065986949408319457456906686804811475994301519280103309626857578975255228882967869826928360648845260649927580828221886360464154948078076803342482174859077360620875618202924106207805365903247024985104097151298272560218370761088101652685977245084267564409336651465402022860384981632982316989852424239165551995911815321809981005398739651951336468199926702238427196091106992289027624557400097038941371884714450931276280738564734353688701880469605756426272723655627504014729426455408585447655561931629563661607912105806898375002663645395183366170672646797860477438262685770160373300237418750187807293214667131288773029819215996362160838363076145656783264027460953789925221558852417747664736193167841586468887155490873495342083505068705703034864150720455830300677632582837616476102167792809503939550246724722403210508073404355210163096260310970991004917220482053185589137411495881464798638052202527006645581964084364184767067069660165303973951795246670339288332397601132628265515174710709935978171153404584942319588986376172156569845246560940315748767228579720793578037820629005702501857872036021175110544468607734459321518813040482023689693894913425816901674119950375329669351599239127200828243037538253816380346288226669891821419385258320459251713732299647460623352966267575903377140401796248766082551503641909525270949662180107331063646510024081406728258115847609969017665729751197278752689202995730584914407612212465941657987111828855731919080173842946011389215190310053499498665710890280970484444749948516318177619004873972970512513539754960341117148018218407006837056813189030921856396314142655631617144320413694548136177454645307019935064751177396295501556628093551439487434890537299163856515856649789494474389332788505362332969581104268723536753439880384474443063168247915069264917520477210009755307909104448143582342159593290691194126875524292923326464925376891448946216148072570695347430644618772376506906921192472476658650879520952153726906328707521762364310291929772245304764072642729686433760281691300662816431182748939164791189881516205284020322699055483244912570469811224662944361304609521960378813312017725521431523958620198457388229362301541266732754740886951882477931690194676924068327865568873844769987489016994850615689674170587601951771856846474768753845250668018807934625184174924995251529556803613218452179585715453162025284433621577092244600097743959553293475451515716279021996139618789516346125410607057514777732384057208145716678727235181537741306232419009276886704790288535264094221004344142198116088781018467600093452621542456502399588148225436588933365190175967230170402322431610019017748046003027209264135087648400835697194217873885081694735633815139506241975659711886580684162621690728367426766571745130157116904032860653632485255207906360327314494962241240734308689076063894496926868367113895813977501722639991652542082546850749716633978456028977182445841476737306666752630038100066781794600538089497804643867725242959548871337910818329868089920272098995387414063646062959720446994560828211795068629383586954791200013029885847614853849945823734061067807275985090726174409227909927613095831860489114262657444662894291328027792842275639854847437825234894241776806582685270266169912737423292564279797842618540876830904797450413553668956625642720891778819592529779632496496005540284719345448075743545178883649796716601325383762219580524629283538362151563306606290273550927461541883799629325518956539765686711808656652018239388304628578805224483903628512644858678368061518891752469373996367667859658988976646290018544334565786838778749719311915936576553598107589803512415601001234181727115108184314712775229295890858940916953366384543716078978994063825971250811072956803873090848704907395582980139675005784444989084329257775570740075284447931589319734958725280347603381527752683461147170188539723011424819801542090112923284458059597743812888307136372544385491000111960691380254346319963168565235204357549676588160820140701670073257643214441983376074462411719738806781886858327976809202397906919538914743406116159108135447371063895810904401152856364400284484034061803507174296888067804327327363787677312863857147709531236068083729642119322564871713765020570504032835376456899610630645076740924541148497967338228893754910869251148328417572064023905407101078440661003134557104714294457974893521811191422687991662980474330078025285635740269331933462604465961932328842955677567195818077869949696300640674876840713644706108667504062040342748519840539321687855627198896986796038450306051187484261352396666398498181217404525759876578669502494068617667279693661541589325120181628438940269780167791412966826253148089522591332024827596640037368246087964559018982442281165581094600355875327556877998490442906938696405648651152698252079615626106790413945250337115179240739475016415915336908906576196565970402977254435047684071893808117985598056616702047796064995985446049764905341060844626585967321160926455539888780692816602105318708901606071281384838560963266467021195060382284991034167071342059066354520836491091121218337725307730590072156954319036218618735080299734238322161173079321647635912754218046644073674112636155023105689539461562050890074892822598953863317255747498287555012842037114239581776811938820256762546396151304366734979139812036913390610407085021305089869663589347683144297756972357499371027009868717971264475929792249593197137440832085694747421614226060759265025395937564954684372291927882667253110646091025551025212456457169401365611154990723380456300976386613169286646690764042189227643426357554386659455957557440801716360337025294234787765935671414536945228855744557486546134809630485924603430752935722114585802988302204982368663042659981980249171351476004034344983880692969484788484957169127884340626173577370351950026552540306711863805663393269878067206194244360393406833022059381491752022342646326992629651521927408914875170293936394771165324430436508820172108941359599196704581298522972624947642534508318453951896211651940935741419727529753912260079338133848668035700032524608125483432259676320200308227193641251732152229272688552500417173073911629161199265083977942430932838982499103698251470169709034671870945393366584945741722028489782287075991225614799993610079386502722600179230920087980189745973754652154240692974583111058705001229073247480927844097145697577307610520856083141301714777677566319606737520100285763220087847037476312699212653721040580963457645514215536120383130406062873039369173087728423362742624133589311463907606875610772971689827287682052727374933510387011727095181704696036728509690109010780944470580763458318991798377360608323171324090319303750291233206982718232891630444050349699386960204414687556117716469442722761105954846827705533146670587899193510609138269660007884534190318145472722118510485621716092952509125932285985265352250320332086032148013720702604760375383976219181401582504495247655636097839720450144274440092112397710484187373596654483936725722684470179294095994445929302422599811572842211777358148935701018296663742786300574702631015324084176538434601335821326208251960355976390920795811238810087330232143036534685683195093238216941483633080572039772938831030932029428854799649470112993169160985341307888260958581002870955363066097118615732024242109246306111073879589345689672935489762794796381843041695368019920753573377180569002490720379156504661973409514975080003997676235709455580280165228105213555575699558663723906422816156358102592622674441047177562433719750996148418676133374976328180352675769554898809527917000792264377356404494354526440449625599668056323247996371139463290551612715570027459931987638687682700956114886894238124197914604578801510815993166791780845449645589230048240058133334437018187768797655045102461334580027592311063878156374118906318056168444028738949071659096336714692710118235435269171477168941570054218404751047229201095878918935069936607432176348738165916516785784672927688541123880864865558247665947168225388505915861438868799086575232666331483797976406801868788689140931360700360623264775517075850395626824458887622253978130982704337075403508745974136405838795391629962103168480139319847069357383882977913369462797988352829863462506522338485611988550726817692187721853192736067699733560596773686469409657539951459772743415297131958356616232661524196391893817550349556502499457618409996723283732662896815565134821401451748884419710016813908471475855201817182112907917730093599035743910996745212826479944244388788074047406680207388391172332611641691836160311737898274910629957370751849629280779284824311239816819787855548824691850613707471112082957375579073042247677113154489578619636364181306697739698299894380506250038885888848175041489149573537723048202393702599165443109351085199588989136252997701670575755745730148113678939001612955525337906721723136058610422874408036362472095175322938917923134595185924288984915098810470321940520975390063664238908024562781430867565020547395255118034392028133995434633801386137248692043186883447440856248641988812344251039913369837645054805290248076466189013586085564818856500953931664041985739416267160897821598664605213140388319819011347152547157072631485346060226961853859175967661825874940895045637910396136896183825929875830404622733796468139350066093062227352367436020710773285999978196267140669854693770895856590537601966581118977505969887083556319720443749446821897687139260329470112050665189581073583562483101935473808414912757338871040440284103645442062745962142431466211187281476806104782080321793169488332187653653080591170310133720908159084755152540591069318719036127301976459633471439147688131246472298655472999831916355560583704034882451115295359738758130274353080068604335691771682640889645545603083935906268950330391901146502981609806262596687277965749615560933903279910532000331270514759001152317052052351262480200676472766445086657987327946990803032149282982270383021797260950823313278690736352041603325773900034505664878052870229974397568012571720426059358049155714918849506030760910384364261990320224479832048827285762358508545099187171820448641270413062925374207045848491090595155438523437453134104660896926115122260127024072113060968218471647087014992686665415038875072216356637003062502105769341244096932927305766898378268886890720640287071894162995464710545486165177124705667829810798439450804742256173950322803108557173247279556904219159967818102695079105890092178603908311006630708211752190389202034944839827259582098966452248848364781749754315151254481848238454589358779540789237058319629522963446527712982481341050319080372481762196284279479595002283252895208844507701246325296329008770230790803415822850421336126842345589967831367448119035556460638767826305441626272065323337134642611689373877922870662563757648039098571194291245835278676817185335793785106259003366648634249728488495296894661890442396773761236689253871348462522103860071760928800074363615681152809944153507596446755799167247177652262534935869309790772766679561959519533707318061581128157779854365183194607897728608004597128372849911369744685416317350925576342954882764650232758851547762300282498067454324838336427600509868579178463298345481911113913943812142177227624046889405972859647141945802668109707386171073866621128407183012152480972214044392234887244344005093975540700436200938037523532429557621370184258740176273568500586211700879831339203193541625534304630211791326473750160214999158176668127083187906218671077693521955859306610433943805203227963861387925975185740808096782617048439712294256609126794992800539900523241307838819258192208111561164560743902165131515550649713783711089663792999385203057954597945085256417070856165758165012455925484681971807605413924758135745595746104975221846393354649473330219089479409254469298929267900573697587815419307557778615233729074500816511238956748213078414359106691107864724203358547937113687083147937843040831682925493816976680305307110513399145633662480368467270558679268678742226434747810482865768342255680806014406354564232305202673447564863420137386978416061135722635019518609588443703879946853698062102014844112226212560524578721794644065259598185298775089631956259899975441571843025292402933687941844726254482195291323870627777417726595788401868799777833788809582378248444913419014856004707061055547039423904199138141194209091884295682917170948202830819752668590216304545688181320514005942909908350544108216129598654785622348937870757397341228244878229928120429551077236714152275655089387131911499767771604586998892146879874130582924937144693887679865934724007185325873925275821546823430086054360657386197051438578325143786982835221220277216543365194218733305405401107006980177735948275222140352871857982916032708633473553931741901805664265705611421236721618922966018545911276407145255755828407671178304886443131423568256470442376418090856111951487576039340648440724458343863471129923606978428981619833784418224293701643021608357502510090433600145388673661103030931925912866401046778803271762758665403645247064104432131894087089476180249539773185609301273277188278614258097509076049170724885684217794104352297488108609239781941015489969042127435945882988935184503026140028697459304828004486124932508080968438494109444486876401892134086459072880257074359275349035991936049480272280294043487079115312839590060365078598167710844738974850169414554066336567527434441947720393277682116054350695489625594167060617214268363523774372594694893359774831621719294277464670843734605340279352955175878223711348217205478124124534279682570909659014926196073468985625942981468528621646250645649988113282551125291286067610066444607131145386599740465169017523829787449617916738844970052609777653316619971691793134062417612706270805227036267291704520904996713430658394872465460246849498682674402426568643366835898803792120200047123467328846214541252268857855804142649107407395839264276528423682560032235991056475124854509449876639992660251833927240879608533954004695297265466650869777318185444644323275915763706495732990638238623620352308912523863190733898032266722926778156768370709971625797628636613397983389318188070169533511954409129340122505398178981292335901352228387039858967721279366455874106309405207329165596435233854084300585069527591465442814549166443607670219073501461939784202569946131031530803215422259721851143916971343593013947736418705857608512053584321290764414918088242378072084603328177790393590167008872213762776429874546358045053761791609146419966074859043614797444864914546317269282547231260474300509848294342965635409598771712277378133778211606194733350057929768875020138104893169802120386894718288006778069873583675159954682020027735018717904004789553882743419960512071225897883050936452807262785778752665303651182691890137657009644070180252362922738908339127371835789384746899481686320461645339322637363650522731253628429773982149719624751812926473110916964973847513021466603772438895849584940298659133194425039493230181817406915897216734387740180914261839888906165219829528266138415456667314924010149112666111228736545176745854010655574513554994168786296297886599540460968967752438129741052356355293084990936223061685548092766419832950799214686503844487858718394097234841561535791479124027540157191389125634011036135712087250223112116603868052213124820012079866093853259050834741991900163711039117613014862283440607181969307362474355946056208552466212779564368657986974810781014652945966994196537343878883222979768839684576240972986479147027332535082632876653435545349044179058411397977956229480039925127041430539655293164958450259581170836488719241898953714487241417480823906998353481142888017216411283735841101545952120753635264617181133394731196122076140136460698383530732942903888908125905657103527798124421320934106739777086283268902212397298798550386322395956250456059673314422183210467656614538036883146783331396013914050824069477380328365073904003109907212978160512342067710067340192508006333953008716335067735798429370093096198963161228590513636152205633157537246179571216778124415177047694661693969978468413350788037158180870436001660616111463772294134281325603848963352092982622623452692700253752755722538328473482014313409518149672125073502955145716058093170964205303250285719159687442505765064009571026687735744996926923741147460112978795719030524164373087796236881677015416407616730459401231294581889810824664554092812739379245340313024560502183571656508652568123014133956636683851357852771405996730921255064583045319108292425940080200874838201674762516901833551106506338971694042912448951916124599475371616780654608814044384971158992910420605863854496119183118749524603748935800721344737624394681152722114787802482640532020975804761943345367629062681102801485295575475234488708474104746033202278177702685118064283553485787952033084621320461318231899357451329708376254461176096143876221052988748127592472192070331082663600344214445903396156470241321560912415541300342422330305381214124225904511576066210354841601587028342983202589561073856812039180160426771703730202004468769557499218829318040628627251839163343566573840122998449771550277057318789902899718272385290100790927118327462061069464717291665938053067673599203543239522775805324446270403227488151827580042927337834621466934521170547695095622512443988041913082553880407902425743589071911298932975677143888202056832097787047395844871836666725628652138791649728918738171679815068752066871426310108165534110214966046940143170748833447150676247591280759523468368522546451237881390173243716762866798307976990621327282740550343863765934431627832164610199196156954173160834598630829072034830203786904423230154179652487966073261340595162925871717037261715103484590713134404118731848527679422090414718254544598493211874047336343659973358246788150520491230661819967375157868354276402226629849116549051113356155906526231894503051194360858680400042953531877180057818466141491632721541820852843077857757403721624962092737964776903643643243981101623488561699346946052867699142770179555789404433393308726798165922291588237189451722842190573327151023736109862226920741443402837312602721921676806405260791030309419256563923959463278164029451700360337651480048916787042612142382037103351043527165012665048471372618103569922630533639293931672815909817868759951269899625886383167139059564339896214953439281873184652355647128397063100026863449049955405102604824117337235545563086948924230786896849327327826350068435269436914263411189098272616948871760116159100711771534983853715772104340223541449619109061026225570488587677988233896899221723382250007210231579681357379014426592983501504504851125909471416898966364081737021767076353837808236027990285770305771829392854228244797398673240363873705787388179599832192704872524433746561607172127357913280580710943820294116030112023504546540648651049513677722183782569193769422832002879912764526562932093149985714312444475473302011808576642786560143602589172260053014711941237745269249615215934895755158504931862225958805896926124095096077268897965422212323948857991394597518788416517579587326629763587493614762643513379821846169428672004726650317723108338592039721981732418484625064406721969367221264270879715223328531928998253856206687024214366952232464393299462109123449394620679277314726301426881327811526306643833973192039711164333714381804614754868229363361573042884938573065759453835787859008441435313223889435224103127968967630739478941056279835558302269542383948099818846830513188453181001769403930771905345396473125320496001126628163907006291277349710489216724411878279705312015029858771600983849114106924626346965972616120528880815708737312685080106974641942236756629168523629648399489351062271505934005558431482198754549593937461098569271489509559055436881803826328728441308729699624991496593657988454161196741097924037615905508616032727184587567759741146523141043873681456935490828608823826381350013302967581217924795565220400125535920427355805070423483755618379007859244396207446774713541023762338381682507363134149753360182126528622384875226357278369104938861813479780237873453699808708451821169019866109324653539659202356057439676662022060949827090363282940175738717539939201653734693815727033377658686323745111216714210945154602403291738901983903037402521077857605044519825050994453896079598250205007912839179442082453648808081739399403852626894350190213062005701532252238651442874088264674153530495783586650616852243546512910033748568143275903398906238300048030897141590149651188305702635755966900141835800957413750062855486701415653520013442285761791949777271326402225306547459238115293125717009529641333338822372127809607434748272789174747563547180713291872789298506152118694951990558862309981098472247616978573807184655942819658954228886391018843258930056806715921017536551958534582711640480507928633347537863337451612536969262090236635479937437323849174986197129550901772548369570126480244406598801127043476767956307838548782751560034512944938722304587184214736907214957090565721743838610488427988518348353246248988584855252647517010348449386604124246442581051027065995163652620721081245244636676727966532615609990740604581386481440521445845767551763381037181276002278906965372264862312011121854297227047090098843738314209250404525060122418890400140487377133916442987666060473187873035657034546604638327570331808377617187583153773538573706220002941865626182979822545331325186489036952032457264850761231978571467751399149643385377413554426345723761925422056614737222719041625891616197878640901711269932750603989854103556449749365008306984348559859859644950993195357778741863960216528099278386301761100684218164643804694539764149123169640295552355372630815634484975587558822967940507347244189978624618136933303778649895602631417753428667778335193777689400620192304541251987786170407905596056074885669761834263476935650802076081499553267986606812021647095750224442393952870707793873040701354570097667475482872226060320007677485948770582341956681737307086957107482762441345328332705861514181960531233272187456099833908390282879013703096161455406305311885918636495614575676886925027013875819030056603352857048384461674740199147354598793363058447111247592325708701263108782238151073953679709256206071923920216069290625440945980270057288026131724364784994791272334815324819006286353632147720593909528604042640504852055943339855716306168393695203426194419058715964916748471876662710607394643503712460906257998456455032309336038655378814363893794548712142148841743066930098021388164028884953565918136850138819059062032163478094300389936920490684673285006918751141416169878670886258778124961014157090363392076724668478956113889142451338550039277225683893274603580074750222189904623958483928476454665304567176621317373746383155302711986565690956467373629355253001801943125264257007579487768220977077856522623855856889468407001148179227715979085084992493274314735343629291264489677333337673835756998782015647354165212850380121696801003416605120391346614356796303814600130226775674718796382659661717253973745167832676359143887574154690688007500109430080774218327612587059690628126922242501414375699670272214711274038789909410091794080845801920201895566322096373485169507449611649510653355915212315532787927446338875042572499179569247412126299585708777415642150418212390615289896508605127130827671661662328146125652122620266442223409629147439351272412108617415351079355865721929889280601358629737439416915542057126122855320786750485526580598301008587894810043388103583110952755477234972974752607412107638652352046191719628923482837749427252687521411758062999002231155871080341093337770063093460466149712939317629288872965622866662677572812243320851824403637032110552329663010570330286239384967710160426372514687078291238467104473899697613611603208545779690267625543927974604170592611438110543612953628799899766374848023545447544803454370724225764885333643081289509111849741955704199053942514954931791721724348754391995720420867844452001923676477550024575636113717089460621945786684480730543568377660384445592447177673575926865017521202835084741502554201203003485520701576935826976435713652400771258070496735085014454312962267619614319797356169603838106977228113128512998283616092756513251832610390673384934903312933152580686072948738725267575628730223198424128612115252890899708368046998986851506055091051022624053552131597264433448349394098227352730868486164479644422137680914869344617536271600334875298378385948587701144523692183290301065032725284825483255737227081920252844253900124413510998506875128869958078389457033004289581537185151310117249126838651678993395086321838483539942768448653742690495626294666358348159061834355936551110366813160029554893901102637207019115956709959277894705797517331662587266563330106488524682323989945233316671969393201748441272871806986785399829233431282606847182814920671690390359452783111815001683030601793804743610874537424465208825888416689696122971307205962254221132118523386147614549069495924613410056511296158391502021059912493780174569729890755792272744584656050914399296503738948850872483749568616210622648916026354447398239905396500677477176653393106836457952849063761913796955166521606163602816710268731961784603942325452480938802431307912378297090961539226007989072556334829131583653116657565907714726380995818267274643954131830044763249734702249170022730257048480211363084776119651069211882016023827398341836927137355045274427643629810482315317520397382211788683672452089292752039741122101206094193531122594840537750338623559359546382333631829579034158331901767924794166519551008695291355811075745246952802474098062657923359789401551100554682367906963922430695542720180206817593959317405260021404300184180387564183233321102635819841629631968389946270347475772028337921769165415312295103807405636486238719427698150260664264466530437141381276227545303746725736360662268875764352493225100943419919362980855638716911686441647057738061464633002775697510850843267877544429236586734360175591440096526422558408830983564055114058821837188991588433679718705034692416536300869428927275300666370836742903568632563798864280093493564061976118505710660653255921523599590256111944215365598016450532633917325818145022176026772252397119010032468183709031363305091791474549046970777140473528658436892067308270271921346196106307971115744576203087733159002745151995812507911343020160986142361528084303928600333284725065721549496889486652043998748670793428594958569369145211084184094671052518776411794157946979795745270632465904613078514591293434452891010142070511028160777396112049378190184001592702833910947839065039962117344473146513446060988992939976042578793023827355323241202261793464812172362093300211803771202678216349153655382970549143393048272083321880379881327033533600236528718718935958942739833196597647990035723047057714489530509615161964460030519787065080091658299966710176824308916633569261716775777378527503649496452560274749004124307499865525216197588729498299096598301593434670465473292738479403905840371474020660623665615092284881400561102328817701748107305142253485828744314692418092900425802623555572490170364140512684544699898737461936025000826441734247317591924734972732508568766324311613507142740010302507918536794292176332213630140369162036082979586924401641694359775377815410241606842949559950386052594129013411058770261018125430677770224863669803958729450290752963233289526799916080711112302365156127607184836187457545006287154901107600240913792461691299883684066056571685187347098583054124021040678081303854432819643100932676391100888548922484218425713094260502052120433974087918572548291613015585063173134100641789808976351719645678015741028215115842253747569744973223376095668123300885743308492597119242871330027755795914224982726809973510169856283513315171337561540147148357097694417114836381667772197844897376274393751149674645102655742540044447919117174637467776037198392401611071577371292063004076209955849918827993935888515935473895250784430326735512649037937783523204084167324342881021116663559735684039899203406433118032945263285523163833733155219938115476021420403654881690784114449348938585661040410723554359172898446157859854366048003491388595837846245154533809874328290680763836303539616621053238416973870132090369565424611291025567545434802877318208695882021659353722586353900633792843256408389457123723090478220505913734469472905127576455905407679096336951868655180672401365803936167938032007940399492705953735267748796612750954596055352238745899249988087804973885376602642411921181717477564874365786898921221744406785610962536795423779147844294627730059136910701082732810415135571404347297316194875166685021826879045823491801592609289266174282400454984689394985132753032298573660975931536564391092799526653072208997616224127799106364438488252825018791494640652824417081971969188541011144621837851461618783411693350951680402187277024370109293565580666262548560757738261818794440166211517201571791105003437872890066808000036455719408394438027286285056156134283904773292696900358725652561511540052468956084054606887289844676818326496808837310990422875459500985504033689497433500026076290709706445221584319567132502334838187512281088956445702841515630771517826587838093334793244198160133445642146315542899844027745416999454060044883197637028560585504024472329600608497252776609627746834738763231285960367652646505704955728943857441863267038040973097393446517703010066008400883108550558225715032840728612808833317880882622523507498996257761645148952325340829709706259566360859289304396359701628311880127096579840021258933841935026944925287070862797427642214450447799607801559998204091088043513624108094003135301231066926212287799871107735959767111042845246382686483292962444507545279656913147982561925150114997562459392879491245582987495664169578535516916208304882350487768739803517635742532561276099683583103968604366331840890297599971666536343558484158525441786945288121307467687352523745781241716416040882781559217585470328104635368397127763590637135947250908493379258001957482944700920156154344344894786459132539183773080667751330814612242813095019200892332676943185480812296767681287689248926912796667415953287092238634341508954896927097587773985592386991619427360543887525327963750397970401799194557118756948530560883469234513127348932796601856975996957674693880089672846379059991518206693184330258240490368193151277546474245725532965466629616021200543429878363788888778700564456854619301774236255190275130961228074633973211687146488694896017382799385488813028961551318975867137481163423586689843664836952988693854858167084032026732855547168399681564681353186905381475854347821831494048504519335855722951182199218212234528399171362462247650197843578648506535233228956732069130457043905472792827524043794797349948012285616812240396403305357937460872013438451741211458804217020767355242222530101942247051246125526875358000633337659670450369234919574106654049505925836681034494819337942235035673342512875532180711023225363891198062705129746854994668059680249237723744378662342488230613742403437648825075433721597178236767687557026843479722350643993806231726927714465042588627647584074091225201358787693204230555273266382957090904379596273887375818322438948018391604228862062271219781243036100603093243521500800506062614986377102591030768483235919021531152023707105377239003913154733778391232063689744592617602514253747983424761043472225770714141091227925470852397910540718386839174170970061782811477344989319968070764877941615952704582186872136090847008692198852936191293836515690012451102706091033526845808445512417278560989281536411794437965824902590460006486509087150790047908574669879797961181537835833361812982952562283911373492552585476766758170737309766313405187149507859896239237924708123010904801478068251256188799341235860839768137938218789569593798487767294833923198468844018004613345729811556409884197821718513756118208811209394818498493618253740531650120959030835872857744745638248787547420376947583383991499776400498543160705008731697611540073305742123744883576005326527627496672418952641723817262352187111613193042214500271896729401664202223529443020286028422688509621572866333897564821635777322443651636893547686640852309526930923655182119161877421984954827426500818789983966092183263872127342524113089773857126688033069447513178098460813780008070477595075109396774752677188311395979316693715492893065202318967934566077442362305590940743016860804057028759682578005074000388730984344216545429195627705656322381104863174679556920340722217600417893046402723446404677207244008943461143790646622917744962543751606012814155279471678865449687331933825874617603097853820417677193538152575915544129856075237972426321287004107288401390679968003121497559318036849759716513861947117701617876962734884795232982501491827642887186868061179389498577649385796705087184843450901922607504485230233839313224044807035534505157359885931414697113572704172784682715664453991861384268003481601107079997914629259658373905942238916113916570681748984942004562484465760900711330232077027320029723771137281122268814965385112788726607522125017564227392544717393427248715218766856464026053953469079705517499159728898636446400034795631460484295274051755790847834695199959371530828914469835037062079314695690058261041667309252937083432634726562871129987944765147298527576934196271286709937240768915722418805367671730842773360790445641653000021437711198437893062395962631173823167748743026919038049505981072441515642520048681778061249101151019431223756400487607745984646698383381066209805437575287091491836530582886245379961530875212735306833209672384281807336177925735277905306967315555102418540488833814847312173208042664329678656928455437982706381580215216819320392572169042771019099433040988304083102191126783562001491334700292085804064196669248615466585792908847230408489631588892513591759658224652877444946719024602446301732732463240666093065801426165224398767646718554051570241149181628954718293867146829831629779430079799971651052010158529882047744196278920767506237430675501284423920862271322692667131708042030760019916713350436510957695751054148092218949183459660512009690677392859661532276846028197880721863134428283681289326170736963387944385007250883038670075517995773135206710761675878326345314656630523238163255405036926952066603287634079848420490159643203921011631451781916717902430049853612568232072195212527058536072930022477625420481181610084209039550419209111127294191113076196816682802553326235026433581134504017991030209913837629524751434759639700935117804411752863769040594917188039388620979897763773400756369345429179071002539204399677188865183327745513671960381056953378717241191987412305493977877465636829443804092085705797919504420894743763653517336823301398567155416334798439075556136492264797467338534928739501302671490339015346292085184776194270065438974765717706506670997246945198163803674638511275899558750186693383345938817254771691269572936937427892500979671600562360673354402111629636661714681642420399039715531845742765366074338561497928847386509126530170082222536491562196644484403197919215037069479000395155511748809150446119647859728098345751746201585750042430445724550988571237716409492652420095467362162334457584796047675719206464617512699207339066939857201516547357530096079346023923359258249380819714482210598679757141585524596423867457384983210160732685011680803875387753081630542843100624997192920748804973962524421266583605921648414486182154815913852651218944011567690969471459848806777377377447119418580206032283922033264922450715726921416102044983396765134012283297620632582665135182306314888513908106565728613348615191370721097500104191244386937649716870080927204759773539444672166045342009447771999724437808238745493350855225139096224428248993529175616673724303834253033800515743377943761433864270878115977515153419355057285696223154441279680451785520065800231565587017566865709930144734359488357521747807277647812447717579684641658403765656942783750334612749504330329090838314437207051033785204178675522702867973607291419269647590692857973125193429005371469793593176848718000795871661134996962270960877945907619840425644388693991980378816817187654313639392887179417950319476974278947812773746597808125067714875370837129125184173637911480617802298026136881405759833313537457866750955109601415572622811053562104660541282029392943343318932662296309437791866023830640735246892590976002148526110021636938795145341825008148019795390930387516119062560825428229900984487415291742389066115717425296111751961533158167172626638710261744193713955718265575282527141593569497205322288831658981254858387536247596281058014978142219261701339049203829204796487498679108682439202027121352342084421618454284271331742795290008618608401956432780916757367911468484865393375935732254993183327711479746962864890374711372921690032534455673108652252258664547591949019821169217854875138690982941828517760400910899456398304578052275308109172705906401539129869935367592933304629780860281720587210525827584280920802737166873380596039994349717439838134662649762720611945126716058148580608478704577188470314363585084100529898592111174467660197820175453605053865391852999738593468571200514552168555140434269615647966503064460486196223339500669561764405579310096833265353860992721563744128469761144361846428529224045592074696412922625154531137116810654866134764218391840751924513378246078809720357710724867789064750292222536405120824356136861604828070458601190557664946675219692484151698112629554892920180170725019112230831079943495396505025194220119912965784876065592831455080036170010265277281720363905519982709684937488236026605503555295027783533951376548055556481398599958130300664850598911801707680971109232426953036103393923598791643487199700983983994551465736772512792053658410706795985796178649788803985452260267004656693294207316867514179408028203956679753816387037675767099263576130657890860354245163752244569296896803707691416908787888197210764222038847735153195352964020182156729576877299960318490662760632027641562364733961274141614680542217376779214050525474003204812812986522391259608356031729268009336257544356358601318125101686578082253332994925834114211034434961268611532863610042647126274552460586277444130381848297167600290498336770697315441397166968532131291079028210573189651439231613668499486894233264629590677471589947527866628829641268317062022534202403064882448828882673970296144306057149901088110286081089262902150123386098651479978081993199619607454758534806240286466908784724850702916358851174676774972501394019476728884445820792619752677309761918667043523408256379487616977438279331018587459283126117557222449870161789775183778908947333117328664260778357297199906102841168401951735057305306794225719051694867778026661546880667666462380609095110501373945636358568923958955675716162803393887545175446607485781894727179197088536755078422478423938313974964929119753117612439330491848800257537751460798096790328240694827229998515706822812892973083763830720392087047334286336195179826712875369831632528119870181961978107979179254003105952263136885489916795788161257777092314294269805685734728786470587483193887598788617360490042099086378829728352810127548725206094226554576048828010100701046689860715502373436539946083520980678141362068293160572160230598404525604962709721406513172015803613816534662130164966957556120281757677327010723479187592666660686013693229910850548843915766021704302761094349935465257205187875025380752375894483742149542060554247189536691859902383232827990725861935284932732611698732456072795527980432699373451238052183677787107569747684370664361933005729382673523581426557367241953046021728230359110695080675840465595324539557322052823790459337079958508787189019606758038414240966143474052928612279506344298195051075028403156058279367085545290171887823438058084634984516600344423177003889780079331324202490114715665833871052642658304789792621364256612078102030468482068301660170353829584230595213898159265292431163303663818420900283801228314389878429527820921170856203257880650323641526300788198521623017873152563268098788116171979642421074460261073991472394843751869566303539905154636206484229883675488616086981450322401843551827547696500174827808190610024393703770483991401272996861517547379234841778052543571467937289855002575475980040642575395883206492519393063380200201281350882243364684303017143715234616405074748775929183108618040352466803242613780953515874520416706783203534569802226897887963463350689033347695311467873274031470591520732473240914825081629654125860889178891458699131170530012387531642815868189711102780908542504340637549231083960168608388684357309218312463833115662850561797262235244796439170780718901099482492268623204096186373140833513876884332878565570829814053630128608592545130781199627130220615636091001089997671111628209472663063137404480048452994151494714906877548463807415410335830859159959681392635474307346261782190809930752316903158731911477346699277926994298413252496529034887427669905330796499151392717211955378539024129423690077592949795103393866558135203144884180492652111191391597189287184304882664065353531695853348394098363676292554612857250853713918694405150669192799870427608353490893818954779170151809012477056404606706168497820143635648042962794432218720635373880058557049342859856592042358722193719984571261968509187284247456943783856869599652319329737697672830428357192481420135845264137829339088222465384672925179758270043781372911549718892878219795183485787998111042743910081449884519613599974714045205504629574306589376702166660124010839439766106828953591010146358696625437264222052270702854810831872627035664285584156964278124649026247990209136354241561818761300474789460657946658988441484406447242174455492076007081663577663129947091642720065302425374099996971847954721250154750227382678893897965645938319764303716832544807767903266776080203914042313991187265334451575449106151527444088478216670025008276530527100928048538342040338794861442535426528277527504896394152828562984861581354555927063451365353126548471000115809068652067958532733466911725275527790109499919005873594152385844495633485143472006426240759689484816308721027739004334882326142427160069948395190090502507779426742796685004608761993554489208613669717291701909528747465008686992851488106443554904244607762697968110793273730962678137417065741900855279867042820095191255622070956206501653157286608086488739078657914257529976479942913246099875262951785422174767593112155810227631982291189804942234776871569115973686144451713420684459000124894850134308332483370968513317584392267616857060163370948800898839945689649695653654241456098017679477309712422006216284900255061329559199262206660918206344136908822471790153326507198192221073967817452220738888871171028327492591191099635461830421604911708940268897010031367649872029127304933651345397352576251243022960569590529680467817592148926381274882987346243807128470883577413910143713324855172370820690067887187259620634827035025664749541116518384560892297165784957046261938380753133765422035781738202441887754037458169088294721894980188071809489932005458690489376392640851536612813015300308767136977312243488277302122220317334334993176396804913968409012203692952524216285315290994147232202113134044665768393306023293941436961530432262270457753730123819035639597888670386620886698498565260970866969709329911612755948328842569222932314883373159934682214280737295864994146325710778785236237679823607220621572003783154214695824301722941550151910189231961526083820017645671147412544685208199791232639576498908382440395112297246519054979415316800194300956077946629320344014580524872251360233230623335848607884200869428994653476451646443238608469768047108957188580159407415165331082060024015101970977874599844525014759241139984003899110091063012918643751089281689308783025992652958230429576652644289532128829193918183867281996216965327063964130657344152027083531672851664549428836319737028932816749437909998344419575953986496345245681445850801592087195527355796806664696660879645720811042304731350826587369892652304584672997116732401026444049528304404841096425006204070912603145122232522484696612189084256309509426649595021934133658058325958037534267120192373663078206337861351744936218853380424106894731007966120535662936664350142315829430239542703272574556618694878345118783372281185278313411038525217296346162304601562600006143812247509438420311339817818240462741157931048156407734715511666747447099374746769758244942304708631353172796165889319270516234338975139576905831032239921304157847387595977563603635348554583574496243848069214770309803401301820664851320317756169362070335115242388895913526498535961074785075671861497301918542859932133737223957730290432869037442626515233180398549929948364388659333441979634260279913754106261267349343737299866327122715928444544688345644806017972044757735094113540545364975887693838356875435761988244849138285611954240644790300941496129153635245306791991521106280981028480968305406029457895832180472026550372438218498472038243561246049625715748334141010104706579396034924889243553387154281426551865988303746382027295480176107179362759589766329074255032471024213551802828292510990831168925122037989939850293778475404734439498350315878515752495473349269123300002802230936294568234536584201336507149201825074600920824366876360521630573990136280751058747627426032037817313841849003307343999498618677684010155146882343095559182117476845962324855610154837124191783555145659983854840090446224011905915307297253002655814368563979867116651974455466968154894551225087563042366286551429974220512208994817661341318249993146686843227538261135538525275269191198637114091392896977616771323827033617373341728475161023037274039045269108735853473939443830265663637026910935566203665167980525756836705671755502225675883858590286733788120301134007856240152608741490315640841780982301558324513375427075618255944313464505504436405120266716764130660851040375490736962404887970608758119766055997596107230198372835767485622670310238314042709980957408185187123540058867771640865965021315946809072580542356616130986002065550224121184862450444082954854864968360836790394631107349297767962570658815278468966908332065974883653550704350778106560967317647650015237742404125585508658999279908568183532899878724092365556283106037926642137135828939717717331093856401871516973950933382109869578288973751390360865302475511928853242888623473047201108974474834723382856421571151113553203526180095714836803617179345681274135420432063134406385402843477180466414743133722955210700166820106710084596758784770035709666168594864546290758595999201818123933324311675636423070694915046839548074393278574385639570632361390336300404141104412564319672741674968134176323774030223265001286238655920003165492893413878759865743970743029122340223339716829386833775287048911250368336264683921463526179281841820228037025518210141766759046765737254794515159656232848325376366710596005653041445747230770562312258345608468346787408278456934547314830793988871699214278619626526291882801374753467680303632418001344993551566437429888819215934734658041953637991650705675894064712519938992498677202813749961385891032927477805151552815347070831899557320226726903490398435180497239839486065627520462181836144239251753698609493423357972166594991118145221458189623483260501581590421426518323397761607736318711586546444848212429571881101845425204334517291680938475825327194411493295944527640209286271176766655228135661806553174805654432201395360771043926499214851470881642087797647530224146102541482928771723359353385362839681856779429989367622513853530247206301259808442091014072288756442080557634963412808848863343076459413545063410650736908425101442631568036746346088187021977822262868807563265442511008489559879439524337041595396964863950005311469918322966972631572583112617384158897078700276239413414756000835304253148753487345565305922361607827196063655689229290596407816516355337845403028217904926443652303830516554502540503618098020983301909103392201165062204143170514346684038364354251197194910992964831330468896183293850763291454777213197858294471954389653045998604046019231026755439686625897472165228816926963982794851114798088493303700663558735251986546735695154206904387177405740509781274653284744377765493592194416262037902606799328436564894264725830692364427176898354640242590000262543653852967684907705701295593925434544328803735467630768351967654833743649812957894868461930698609733681076606161723650759586469054013418418432795225085758682650329976546499132035202832792246462685719569037452565195795118092087882029000909984075707374845092885472334355240037844618511842337166264206829951745169822271537657922100174460705510015419674692841234668938596560950335358291635089421939048426566668513049300175216914977600963809546639741528969218448937800299432828338321805755112139561420213837850021537766677652655319704381576094075429450430734313918399932702383765676764914162356710826737739672577258337754206179666562911420546804063979029602644670531947479446746846885409336480775142632750260824581577637314166935203839127817287847621933440075633466747378316763239860106253824416492769247988942427566136475940547458374023357600488734827707249200893357935421930323995430231923916949940363900926572942628868827519387566511949622025303675573572214967603307281139467472168064027412155000056861974729592654942068199915030565460930246594322336649701049177291256450075604857052689368242230766665004751818795135759467930609832173641778647460047686761208476773429450917336178944292357481574455655451221468813722181258552366158356980436391208432391799329753231657453008550685657657387074094386807709975402893096186593053576984694169371737091713367034603883540267798607301407908997634063449140412173265183917222081473827266124159791574860001701746888154301176848950354057096390652497295112322900991095631309163722407944716413272042341424234888926378111635466398882680827038837748183324711864385444995983303668236467311057218104804394367846214571538547195750176418985119545837907339974182359173196079527930775149291300760319517929889830492698281178716682497070038491687293191413780007746353577817039499521820299529628640488944934964919397719959129457915808183198484513012241556101955142607136307983352025557160493143257560460873627368567641985163354455127543195374069723356983396260751964686012202028894065619739705434536773482453455177356303331895262316080995167046675212562883693532485824025649160917311740222972208500679483418145221332413062283592288893160730524755445540021454749001159162119821958937520432907047196112633358970860574157977538089718499464857936748215614932469940630491048526170763409482360926060647361822051463860253272335746572860845261448245623299513762777926347706544598972168005242556405687797827166600567963968025627092182594821096946561517250353041913018251917951211996715814989492227868300724097433413076594933898592836515860409609680839096726611865887814829216524518738473764953318529471285759362868710049794732099837450659098801235700812030597409489737337893511826967365186364539841178933102384526148735516038113456795847337067713854936851129354282007514241987416083588272034154552378599902121785655923778831215172779120558952765475658638927121334619823322814290170792392248947273577972397742616734427008277699368912120432938314501898039220402998706242964078963230666588834815497467016986173145355263787504168346285791379591501155374218048805626502609405642360224782204364856708622453174435208020182909636284437850095477005860295931765918003503462965661392951020080385022465973571057827004478326419113452522999474483675212246879544996722162388739674749700909162378537131509701286009815780330856705422031779673924838975298983015897314865056423681549759457809132021904565382473238150810095478667765990371326557074291925775556294410323325633230452168502311704906735496667819426736478121560635801431760751464847512889406576430540530984645085514389779919788585717617608792838069160724834576243937599529541371960874959379926608168844027573585755232178986671438965347613770079103008087603206511911851974608115014847705563788577733952130812518943247109016881675045266262674008621934118093812724370168555555353894941606187786515949300159304680809428500434660075125445440322562226322453800830763148058292842853489400060414164956951858621326418140351332587921059023969177152780689543567770092964830679321520469493752844156253229375971851645876556586360117377925847241898799421431666287631686391027644175908616568403080721991014466174516451929300719578017616703101008480513025428347905911659476139274395991055182061957095422261695598646664820926523280668884477988689940260000710866090865009582727027097781219612733078837593346423931633641185195781881316036103446353351072195086001768588074458947091620305060866759771108072526431974204951946505603648655705867640401680408952055398526393165055184392382277288216099851543467078071483727725964561967908661784452366524936755589012810685936017058166315052083200754190160363745418997908502827342039187923560928848738516711761268749950498201598233502971690601815882014011866373582807657930874631855961524385913927729871432807984770585503415232133936017660235166334142934578942094100925491575992119741627959374937762293177644173546815042774115168910612351946268289987107982516920515897652773469318378184993966675240745883924999657481101545209026199334125207507776893096730775432104264724996732583112595062454399149304447958504734389533796065496016971028172683778345883978344692027781841697178115257515951251644369056509853259918958350423811698258091892874092852021971712612131707508694479840545414754065614145134953876504676398299909382407388902556761038999285960820900098427325597330606585345590889876850629343367213363768470867494140438840011678281772550754028597219464274601324882679620359730839018866771811046993756818286449343803101594184498369703546565419150291811556761438911745955428598309400150771904098183814368616819694493008530566015939953546583495040491017113744335744653856291204514155934901919467399237783541851168880028427629567186241921686567999743229879481567059742899230504932003701686795083046773432217041581253137802160508215969672298717057963696345569812433611247008349141187236202310527700554765522359879645756505771213069767293017296320666559168520515930380680944656051101863872427678778456494027021924973732343226145333654574384644587958590316606945598494608894017271586755959847562002411645731919251271043873263405126283181820171337787323753250184510424347284998735206913504390342975684818772764825012512737339695988209555638091922045128065960997497319765497798971243680072524747630115237797423471445521669345905256237978848968555302059646781831748102850218563473283654168915971715554695402358515284609846145163782455264219244872629568786138833339027451922923129397534090537094376920665376462874242510476146115845811787480001295543609970634837317962080744719129040890246147394352767134733045378926983222184408963098307161209023832239588016178153520312976619661694816301628533632559642661365116008888805950445654179669945340617335235516366871253539641838554856251226972579351895117044355447597778403908022537565183686722581561180696757157683589780344898875349085616558894536304268409706454322750453539675634277370943952321092143395561896266973347456141788008370002071189125313632594750045992216546991090214629636474950199771158417431614601843688457913571451773530675440784347495410473181717660602045451837309675985582391669525389587246127510563115618746233693357911615901529201767897703018124169428988028649925758231954357694009281819027822170059306444328776739111176930158130048365513548884998024220217092147133559543485222105325803307932256585884976135919955383603944768263480479208791200264859890534067077764754156390295816094946601311499777261901050553397872784619911390925812072840921043954535819168088328608152505794277025962161909775609572000526384459047447510678331931869197628561650186600579609183684390755055818241366022867787255359392433587249810297819893932017997071043459609422513978763745566049874922672194854277733038999646275975074959424209589907025071424952036571803700128740445640684500527538989725662689305282839057132051237571896348408410073296474216488776629999143705991695280513330510013348397191727959247783953890925661642345871681167432012679264339661530646836634865259070537111100067670795616359182232005778983032188913134226962964421343157524227535428193600053639832880935086908802182077346961346704352492709690700444600564607922329908953545607850216211009420300062071100501512987531330994582176908561852437653756150755097023856279893816862613523340290722481908185966239161440133651632165754843057244999672828419668686135470167110463317596632747496664083679793723651028609218768909711498078614545155881692133205428161249730048407382833351027388279197258609683028522373121459876857570966139534045867071660861158904625927025407423963548507613242126799906870923157762835529679228298871097476621085366164980467586887084519112910341203531491989730329800731488920570648852131382324162698476582104962562803042305892761218907513994940714335891761517656100768315762203769574288925632856214381472362475906609774218659380235555177470887479654178326917112618010329140118923913601832393916462897020080335530206377288484318167601018166851624201790167606298878432898525427660698190027124846558301498919571522346659660831726852524903816012345629070651687990596599947917190034716113107959827980537246219017995699519180753979892488421408017612278703905410807467311965876638498457294441690447182757956896063964514174177545572240204022558989184605775317134427333164212114301113339932648198571106222639554461505831473154709363846238807377020982775595317411463625406015872867351956425346537456466503163379094503466272942687268168836438467563089247113441440134226701261541619116645459198931421382552938368463219741066815169313317788258167743635117206102098275935881537963716904688014547311132757252081521407729961554224193996153927581080597843079619247660108533191102351368427276814231439453630194934878536329976054160092035743209755310185394036031327716642524902185137895644065419467652199489747087399191808461868284558428014585270610518810337520068875505859167090607298382750739482910272106409697986269493125462324963233885355526061236692577166262691044675242047412489222624565454418691554555293643209310075335446756423643602801399807843518912468918727208717200929210202109838393147646822137870475688819519729634789717123624240665477691791520060587733958537259486354018789397503990059914584944765110223572680098775079815509581302737929668485356916613615626872932634812932915941682725098957327164936490407599612237432375820941846186945526064589548418645268022166286081583359468830818334097320139544180724145120409672473097911143383021020881933098728611414416622153342513329621924493942388587207660759448806183582637862569667257156770254637301610698419486351970371863690998210003287443366802011469917225544203250696822683281673251102073981696406719692706356295366750389378731949874619267360224371331310155600006418359062342912530146760723413548097178476234769003957560299728995616892012606003972809342383283352131909217948483945493526909121560523624062361247052143223227650689121280573002042960589015611604657527622143661409919723303011348455182419254414849034832067578542873289302471895515423854984093295106880442653452798412618587509023222689829250435978155639220604816885130779462698247196130014228207194124210685374685801245628334137128308224154307565987855735919706487089883947157380662057790161105491051090067869097961672231787282169639565576514440390060028331574824839780366139950066483928132882240329721777509711497350555910507645517677294327515434093914735659758254304735319719292472460585887711579934892064251015433097052820403781424698986517946110373528887500255550216635673178017910757285288329624286516360900507098237293651619311512991987887254604179670590196318070492454849093258887511909948317357326667647826858897914634742976537882880802561515148094310332716902127380310167704402741823085912553084468025599405916640379610452323886512766892261688747558637270732487703787816418167701638242007539490868249092366527311526813297438829941170703749784412081547215588532757567796895310742680222157892490292828961174504538916515200723908688717922091040274833392409432999940866218419926823786728714420939873636945314767414429290038534734769498350019830959412184562051133976704067699730519446480414046422400889142610036402883628258651633463814325547550282558053302935757372903718751782852468982936932993062700440301354787979351520316411520286901630526709872318413475684385546673074158213898225497104214304441061820717987209999214742814870861204670152014538886522134204119919173694285803280826574814641961779541554913133607279946724080435004958523250050743978047942971747007921770683240126823064763723709609238197367842590472715926650552169085801410632232325221337550932520009554925238556617898299182558174822773478160418157868405658620108398640860418975539526141896294800526266013993690818849181329496053622324474536360423231323590594728626631309798580412579629530707690755239061282453326658017816844019277770308827976891192402579990827640682693137444015588771636894248054709817281950580140624791860640347769931381602200396682944059500149259661396860911177532929870724391443806955920259926997377568011454656854671025937571777204991638498474091614240209798049785962640188778053959403247422180024718690522112214411729959391859567998880430378910676393561463036040399869791120095941968085560861153968523139570872516127790723561191484500194406753526174874618007707705952519184588972453298150877316285079529571160277109061679997456228449372599135879505871934524105027489747204428785220963470146694007106844123671544814548427049478132100467955345328872162269215110647070349652888442474094638348271540030627740765758046858699600179907965841103438264366903679992840774706813587346978617499458796858885598971410839308617237453882266569692805812732960624587091412098816096800477221244193953603410630194387100282971458145840215952234898965233804406275047584382753108250688944242277491997001218640929250491682640424541959319594142535241206021843029505586663912503665422354128446507456839375620057541389594596944326598031723685306455796918953093854332652604705325024470505835738461025083021479199679232646415198176955660506163396717511791847888896554777557546780521737424597639286917736233436029148128227040961781751419943161293520362177047057382540661945993279837330234140508561982573771473388360926183394157356574230352478866357142249077237159150937135139149877126200040387740736400322697218263725439876619497777066632380028487419778842794663203628444961356543983979449400498777792120290589572181418035274982808198450234586806748369026982368015990050011287192418338299664201643809996673971049941788532566757854428100076476505303958333017640131525220631127657091338039807819124001875890864834709321500458516353171831013491234417124649925049344247297232359279998763449021605704916041778246951357769508755926062392679626455551075900011030450833416220076851190858586504332457473257680084211113087044505789377122927758233565468077272755194557698229553017792781399546354765722250763229482819441713543660817676926365630627454338132591316927563797168581030078502673786103449708449713297338522457538458222271338224256236342219087970990021150547658970904356614500142132791398189160949864683618556587272726805795718104350273685574982946165871088735023299227323257853124091691678241073166021491684450434048306187662910107831452496488360583998531911182142996896935527702377196906850542406657201576005914341409479185623383503429887701474885285296773541794460117154910254871715342357814654570054982262984150270501049225768313077209799856487512344323488732736440869646340015246343297328695587649087204860331917370493665078302143519996190913710426467148558568486964940440537788780230838282692503345972682110301716845756260716575504247656214668032537660103478143184948938098869013119001184835901777813105888616475491677405014119562015349832541539747679540015970931439712341811646427379186988828285062486749015560492712950433844594024503150830348708884757922306027764990849498545550608332693167315096150579656442903472721121834614526206106840531338766931014634648236940916595021616154054497295185738269031868288039520460067807401691162977838601196573683203980681064682067831816209475971007345378210165418980850833929034101543701506880184294899917111153925189230006133887832536216089388893026266576743750692844123386892534996211644966431195741823845944093993007718028373786824740466104855895942890496295291759687493114812279095621582341955132367088697611323388997209299278738759549328337696527537426058129268170683301004907916658521835382027885474525643719891062092687710830562076214055376720152387535856621470806427243062981277628920850756459696514476885582818924710299608579373510172942976786084481475001090353728405620886668514354719495490583662298506124056373877146711148377088477191615427746436182549831380661945814381345826868866635378446958392405598259897076915712563436221150731655328659687664373211805431460901994055361403710112759956264146496691745999389163725799157884962597856575113153110316691123943341389865390284344051818509650163745337649967549295059624206905662650396034027438057717610971275095054666610742286461308517090052979270073815430683371454439142454867225670329941881378857249239163642272561244932612393049502586723287469259466548795828768304509992215510072033347029392811990000230731447521089917308032140311918979190171986595779563363774351727964931084577645456585222245478084180401545161094581070108139533814589831211640747831304638569806866977502608825172103497483345146769375155234582837820251775127237570907779896571078852985207134740400262370429988011646865053467092796259116851654954951941200064425010395699850703669916604360061526928887731258402388775285581599243150013669113974384379636494719551439786187017919377715611211724585916294957817670561233404195789761818162302783748853270099759322571130349169192456535170074600996307722383675355404781829811482360675284505427684514674468293810962119469772236128008027343221186828493588533916979710602023503314457544386241094738789006294096092943544819668715088356369065308707521122544079201856939680457773272119553103139695943790919885576058919952915684188006853102503467624816812945423438158260793371930275004796133203302472639069167394863858171567386539974475021598483327537543498137928689169423563868200020782540579324935358463567647716738782571954324072181979332907959461966141483958617751549815123865560629358746848720957992039479806811242911705236206361025098040960606003044029036404860720207426889257793489398356947635559830423142527081072840627441961239289717960244512629364140724938561846310364476125872453600825259476391531488268159242972651817134374445604670806701031053279245592678979318332236405786757520381427530991068299414679617190557868363758581582503784845875253531523483635286930237879536616321142314907754080124906521010782043840235226601745803786923575402222377672192863764708599249017100290806642156591629628312875629351568277742770817820258503358257391451307147544804076893647264212563987594082599846956602899966069079983545217915618842334259583483411459630690824375293911938349531289280551218215595664742999639364331557237493586424423826721858052748897354007179335372952267723049235023325306510816675266562896846939264081791933682857819434134966119199933774267825983865770241251504576046648402817795319021377724410778843791619862752980321785218160268796871040653195441939217060643860116674256859412603459588434255498109984454690717756665950348733670222414283284059917133448603459236094548324770840688127167049779478216404536239307515863020208502620661403793657321612140319400737892684702946580871204168829604075278273842903455187629558502868135412596453861043018389277619027063818769790317817010861175397570078266212954114985841353454541789516908048765435778158656812691683230594466106940491281960487637415630760788089898836704410121422695472090950994650606467799773610479308839587107191972082118194646211833624404738745614367628217992663026175767319314948851172711852438861057785914493945822447073502401557098768737107645834493823462336198286853241058159186578652667489781929739406801855319994022588624092574730363279857260542176215252119617710953183325532636985110722949169048243549067785536256149061100664008650399877905786283321397690876755936429686888403463117132228891327250700206412238344712093257458007360852976494364345270676893393471035159801574007248131072551533112460553227830121343155888567157753272283480354649230545613147413688945630165100375786365442840214399545442813177725222805648022641882479858673468254799907409526278325035708191966482912653523768951349976286039893281584061650843917818887831750297551235457458857217827365267622954411212352529451899714361874314344332634114539496856618246970861213864282119426815593392055704193258846309895124103290640919331749670432036156512092646335401892237140513923913600130022578736618644218891593192820348511528974739559105318568645665164655336729964937510581591160194150589132768322606507489340903669763987405580306408844568914868584268212638734562341389303882939194855570417054233041843140129052354436271135489586844513792013982821870524896220630708477643904557222934600608834831149733929996637516969452562162287199152161797027816020530949253837165906175551311943197812474985990028680029800922628257493573397836907423995095436723536540939959273816416833712643932814638778535949752735188835545046167901508226568412485511056176275607794574763714858904124312968520988803441634234676500880936082689466636218037457749336079707689703026367263017711273975052830901021633168223164779172522599400463455086175724661897898522017346476240305011380722539357123392815956145875302700886243828427839960850825635044892160741211920902053953277337763392285738008776077026810853283324241234734053666657985073395857151850713821580685866660987804840490580778030818064183618181631618937030907625327091511212175391663108236860227885770252979913904745628490927076257628004658916117062996204466339706088076513212861035308941611194686560090165991143472100413386833214150859588406083250057519986319911255193516065083788931928080632035739306665864003436388201100705074858684286326288211068404353435069739215200201034137300843372856837479226434828719948582700772646885414922292313059219534455573880213322614934135460403315678093386461570150670210422490340989808779926394796795487848256144845400936972253567780168991926587716502313334026361053866717426384454349352365647089740828189755021446990377964732971834207172243326350881132925245810831025353518413726491206068083540194431343585443789526331410607101674185917851940546679488830063573202535316120824914346420839094817281603201527313108667351666445042973208776745874172053426469552822734564920165586159511612531334855865965628417598863719105994323442061410306087909340079308302270858408636540089947479104445667702503954884901903997137326107105861059600520467618130578563070450613651381439781631705807206824079010182294770950962760806898640411305862049852268515651920987608631661067833736471427700914396338891725098627678681714075307589837296668642808675297991066052458362978554050281301810185072028357052046541800135782225688787106864237843737335916468862797916520033002899959247539092495782451966165039409946932257049646133134879634284911730151327116886273387315127321253099990952569745004405646238208082461727365021257323687193405138463800456710873554316085033276403205569176070226451314040811185921883539483215795361207950054480139895301608032175970871435906506402887121177255845998738655308939623723848780472800110408338382556830195650513245277946291422890391676597048479338929705341853494254150211462563766905936319217967447041286393376596872525295898550713642956699241995045986959521555530376688860977127184720675488566766064758629715839659198876261568335545140559096940690978803933924692867163072969307076849767044701659867526465932076071463253542210942530401103213601302329773241871153690679077905009163618800776608358493711743933576333057006562339740718993284084844241786800739551643173551873724049755001081422349363407091228929558281933126049333413466990863733618982757791666185284139598347090232310896004856924959313232075965122063720716591392087316769233640436374079099780255733171858012772940886930434590535827416762696683559385400377319256819509425861963537114428177946399918526445993344332679180691959321350242551877187607178909826027119234710844346013269855063365175577650670618777692443117472780680211224265469581397631818592346320201738830664423576639472752871663151454384660971374848286467450515952030659128412003733646896886612016523496637337500005016866344693813508473902410110228707617008076541754609689292209446859340676755490620597134035755429024197070300555781874296806869104938000908306494341739854056897910087019230714573001588331831746843878307158733491963206617165304829892986880790398773071668424185408476997638506323226408913141891673599952810898745108523543124582539331449513110450297209324188215813453817160783001482464171772312826093197913525997612349669787180632078637695079570415304793022476716970213730405623851496983704008016618223725886279636589027048760689289651518627384375679983023826455860959871093421257108932205296840625296401001339336085284256494915497487651980614297627139585455841795244389994322508569607277716181887314260728962140996426060247673570642134150390008400458751266773293293568656730371065564583311450018903964360098116477178708447293749233664070076264204432249864704396477170285555426338589164735122677850687697389578528431740340788711491111943825443399707842189720105845758845095309488088616589088294861585257859945685630774411603371188689598100869384708294918202546285023338658767349320949123446398947343531640128361730415176437467904648512156473054821928958105240363773662163296731722263831491999791380144313321981839615484357024771215539821363022892323781663293471173044010675604252486473186059259980623253716105402519313995242069993568721034737936447932034186572728555357156246388375506963111859812947301838810007511055014481991246002320765178221130851876448371515930631946124317302864167710194748346982681132918127155139950938764121871134027064715079960533140160906647576040932837784816624101214267706607521962953491983586674529361569080021999362812961410862272894170735450343375318992195883454457341141621813508339879929562380568195614577794614796055122302404685650444332755791202839358854282059384878370621324172480746673180487619371731678476921522547456062583310586416124241984203090367420598503426933755029121400816064286941066303855693521508818815701027064124237452862928295650535244440726828096839874315233224754644112084539526540983862120363606161511535299450011116820813500968803975822730159701491288538634341584803917788741288901921244964531072855031660107709011169752997151607309294859998148063421084733249330936446876233235706081927414566753538528829245587102786947073995216434718766239057098484455929998299245582144748432450208659392367047971811807159993401308255535483295617702894091803402165240449089962278344189512236698066816512999114661655577267519478170018939735925535571037445694740931166251813751315645294752319335473786700112839206616693458554513012081258221688485979338154269521208037531265382791499207224064242259461147793198728639287325743470278814868244514305223892267404386913205254676452719944283548869538955583066205363057549280162494312299321938635173008460607382916143979983795832726600740873050394673401013909193341980197581983838961668212294964061634239113268246699473485009768003984205959352332899469971972899805021666707307948258766415214599808166466932922731842610674620272474677800224317134662942362565122926372582007130922695349355973958952650705800599161917747617883977097800538810954866759985469267674160838330726486277326939035168371466193525236905425908316899293268027818591948971321819100768700803169946107461197280168397581937621280233871266408563618316901117745902009821795395900618511815649684229104755041670161199730278281077442508716401341621606186244893892482807988892149926028218097834876363036208450122334563105490601215050555438402779390871075560086579835719099741948945165571159210633808338497803280335664650777588477050125931877692910282306008304240476114955696967701454550571769813010195158406016393353796073419245092691040660635409245702026787059120657315847030365089669062307574459887240094681743076152614024340758514232894363303881633789292102445563844892678082997888993921634653548475097733441009125259425081537253187122019488064549857483444247521882244621607399256436430956726941694619411761485192476646617755863271438349901353641913662109273986184332190964026193590134498723799381754166488806575451175250673247111635280916542630973500675060168915478174500237079324301518038633928508127329607187444832853562565219406478354279958321943130618699055297246143930354662598689871965413405020467171151097397358334912129725545924180912139871459835198056966187000364729764418672745245068703856224924969117340106851361561529538137796704408226364534332351022827192842208099352486798859225803408816143700406454685396485990001592272742014809264509471775334626697913117761111052184961066889845288861235733025931965703588586597720433484963247224318037131241299090657462139435017708081264825344374179626197080804422194726667642893490074518068663140489530146931568279066684505249670577037815607172135734212979930612618939093436987900864783873264567150442655858300777462708677848982071680155874954097943322588055020245960093431513160728643541027579811748598838483635880448945699188490286852360963564959813201696570067598513811357278790338852952654809774824987943599572193103824170053842548527326573127177540966641970330585439607755040622419767840647457374187972609179270893020837714046136842359289945238670222478772818966425552564047919836179837146183362507214101324962898912951074358130177800925274791621094858609277470328259149620844954286745531519363383921438547410470507929088937819605568347369647796205714946003739167111496191590130826442400455613163969625533663209781950505514918222636937290086417282991775207334239854820399892157028464599689235930096217786428391443547094412673079446322704546554333886418865307204338827885127483385896018299761016709180640676400491858754396434215763864052709660190970682098087897884746672695258946841458506083722692008969947579758114329459342645141850019319044860720181361739750838630852584789460385933231160144058637540297020364952961109177520766187488828059681911349581819532111977204664203086016542967320327419686040260095565282600036673458496853253262695698944980832960474600081524783306750719752413733973115772351897341990642938682924583990483180969978925537388879235203361799594805813036624027208639935658749579364678829689273213392823894597284648802210762229365544164335357540580615734016010759690895746193421525930407188659060755344336936782737074079872905286326029306819365892656784983080247746491021421723891956147511231101225557405138951758737131611014259486769981716979199997914750280577552686621103113168632473945488108902081442477114127362171232102482758897126107286399775137805207928895317214177657497651534232351517955224286169218408457880957786254714667294600042909119273443332371372675758449725563915825858091423134355860875162384440212894981572633900847068740582472234932952587721819472427185660227628883835749209561177416564474791552699079042504914986170843234898762672239818277094489150504752281958587917277929786224327479774552759573114299527013262659544552011744336622521907505572676526591209869106341381066885770883574471002145418123467962378163803714147376354746630018766781272137890863253556210357693525011147920849616081413294742437322165077112782631068961631047341518197451781942270232254189562413391890529655359590804460808746499337875321510962935467726955907714702124090494946442297903051693905561474206610230987732113392010823669033763018033502305905105729230965362067125207158069177798128872651717655478191903077447031600909578518005731888091547165989267672238931794504731907969174739010391630281504222943144671889601559857248972082477654637345396253055487735390880515017450336452644760027393474626975796367147993506563557162714485565863486316576992789041764933151497972799756725997623602603451288269519470728977465350370173968112598504915447834720186296462542816753516643023679044272090209816186516990074858540645265507027200565886145120550965384037027471585272689643018001405423672482054828582829754889273370329076143755541490322466788122547477143251099919152906221562947638144773355957558396580378183224467682005183883852688444701298892160517579310829039141510259197877829472667770909345447112986250001286470518007729360183577843003048290713087574744215982764548668949974244557094629631162064059565065215149806410751054457138174466509335931095033487009983098040711174073199544483236772329940912130630543195223666027696983647697693995584011296730562342928386699735633959193804929758063682919274935123967402314694781225655830987780585660406845876871629493991457586827955298876630053205517345617578635980791898596537499159813762529401727410107852862192248462116358014123277747153006721479617672449451219354048792561035234075230122808952289907598101163268924269449703722456229428825191163304106514648681749179272612058884187477543425660791415655822512826496262747311100643558875153343028132045313757509523900915957304239210251500305700635269039796796466818440291415792174800353844429414028855112371267686588152117098097337265986336606799369584190098489472210507332713668547888814404239495590945777654826986824101393495265424806617068806635353753691607060761703258119791455323746273296185653432312198730818224682760368454765957987959599213245146174178500909650310716688228718353907351147473805517426041643495999344150406216278943489013405197867885447040717906848637263834295458049466750311699670347967800660406376889152540429241787678165515900119505958629706099236206152885576726767411225656338462807941472965040024072825185225210804134344637423924078920980551822591202057068873012559402478831053979741393511157119403285755438167150992685095682257715528155567813912576206421504239331050285450372723277349184743489373853389810236057163306931969985892017289700020281766727596083888471797610508859982192574777017985084363456671271883024983119573649320593819742655670573858765089112815322039190106851959330439190929445673383917769068506152778648498011305330710716443110426843804484414349343230846776772913321014859720329635130303938753490389967287447405955761496365620203567649938036034185022324291451297410666716438171894979514133076022645186889778327065363875320170953045083692467120626883676423172147078568861976946547600983062052544227913436217867115720090085243639766054645020828259376404962143021918100692466805877376758013763141826707397977655410855175436667372894439349197231974997736849726171074319206648992837076661533287453160664606524885397509819259982592684634252637472569179555059431144529925170267131518568701563515098593707600675537667180409452199103473223517435005462310746661556517874796506350527371165288477182786744696413383686679681635708303766541896952178148948361913986367481851361458133489440447116059405828690063616338391989449691682918041120397495627539814005914942081839184144851462048306425502531737514188225845155502319335118326352232892193162563339508046880727898481472384252815255091259994795563512701184282903433163687462646303424086521768413457496052825375809155505658519298365105172562114332305052079049729482414281858095248693631986721445980594989264739037689013152972220418120226217635044326765884894558932425169884994134784378428254780314286479008327896097431875829863981984193593635947605455586689590517938123879678282149265987607212308139316219196426279612842256427405352156098040475812505141235064888950114035408283105425318839034305064189937626588759780856025022150712515675797443556757567905755382247698629924295387469608517438873699646766240122360463376494266340568744633860803888411579291542746719468889624546178679579655986021342259328479854188232335486070444671216441157247279934456310447426235259608972762243686503753768945662483525276932501466110146659095642595424784413567638441487266142630637890204002563067101622454781195294509661558370877323669706138899761864897410664986078901036992950649061721394899249998341792712697682571982371128241431692863244152238548747241468917428655566745404114042389385865887012757704286455289752929070814908951211857973761216762371373555317716704444216645159377247074927846015450172538289395161197840405399485286120196210523110245119853814390912135558459287730110970078138829737450683733041238455044672471154630548034524915519840015877565471510846711106275063909528928378042695902979046131302997286083304879459580486058652370573554724328653754521046494206261024484137979172826034096166317324313573009430251972796327465425225762261720309371546577563350315961550038896297920053125301865281834909864927300530211418096405065753327559300791855825586912372767243374926705122745801522372812629070898404708831604409840926509761597229043568750591356909971212573410288414956166085945187662816229243832542345515905346993511956620481400560075321628206784624133463061372785278165506410141921621261489064237184348979447465284734190617319676056009256220010000142324110627396906442849185943303365050253645351650178523158426202570697057893541503306314309823403406758482428817185628432343446213775707624042416903295357262607917682525916475970957724838144736740270557445052201198093255469906443276044580749637344125548819974491956514092925397173102421031230887396997922398164720401289049656304990152919002370880529914156758330098106268580180606875436966431660985017572859918479377240317312451229034854004448164978728009264347710252273001169439686777174431520499201509705498420748558468491862289923700533468550502328510225033233279351281182036658631318965791758209227134777700973911801598373139039292592114077797760486180327256459737561145593705271100734770880996091709612983503752505116990201711861581303934850943397880295943305292069397059626246398851824788391006984542948873794779768973064318417767906699140829642239968269418339270890297724689226500098957005581449937019432024486759873050092100672989745664727301648543862396376938135259573779924016546849919858631533276085453690657909258624328575280422995656258548886147373071605258717301700605854777757936936076733531923507042917708470425557871744344653846804985390809297109723354960867193496669792231724481296161594418559121063915688053634247861518847572318539261525958814936768344714220685179114324961843890161447102905482579514085255680812214572866964945870296778551437770678521617261995398474554205642042879722911295305692166075213116555867611326958538530112282816596860658280292033003542118668559751906274220854437917623704468543573197565859228860125989353874098392989700605675301021787132220944099665538751456337723448108022301983506674087907475840336630331162023725636241528340351665116653023142472220651156084086956830967626593483192035974289130338289853188093106091371758156352695342303562455209242335068794250540186811651065375731494921032550430824940797895210418046167782950712727535784035482269233624406804131467912436716082387593373449640868591509367542201202655552833971274164276561099715359515620719213221909053377701773256510935683491339242846645242931002149217893991160474329222676935622545912668278565460765594051810770089973609652766740364006633406577377442182881639992071720998143373707767397210531814453788273261600742679413938039666301128111903029285220369323978273462558239303110264236567678095794478653454623215264867863565871373460315328442942375713267674541955524601102482157638616251264981604189142611746280936659517055816752800153489437874799633595465642530637784751686998910445295079488592106450010237284920720647968781852403119919668096377434882894655078911119998680432395345798160081285825109479567552412362320764226862570733966242504859497773606519139204401720768603468830561399466546174135551043277283823141598448616844614742112392458667305200670138227019501773674911037519223960638060821409151439321544595589759039318495187688653705555660906203153180615351502383744833511155444078482605055671667293691070232278562312341142374016620106915923760558568969608514612341412674427194675777714578351789978626188852947358115735949017291069113736058912191747671923068310068623996366070647233192757531167881531315323501049770516205485768293835241529150826782889715458317219014957793248978483238551391707723625970463265825033276888069208038375746192993579287683601792533836164528585882088634357851609555372554538120333086541299659042144495601036808742247333140269767661369353689893768454518843991113791074495066932895379982160066882354295943207053137405861743414102498895241109569143212254455322140592709505521525472146308716466433894551222819344102826362177186375978068046424278366741728166993141704414027421323895180712647600442713455322482632425945988369025789730375196989668860250145204091012932966982994674611546738854382462189794541220339463171220951175365643520197581062821989190706345731659959836888036935199426627811499590084242503750874691138114401867319352833106776600145756705575040825354783609032485433692786224843902145940936227713664903072819290147890144888571009242534984982130377918570588088716825483029520317312928396835026302683276354615409073064356948268111074377172632337013052548512369471003039646357567214513903593938788340843330639653288175914119136911801074981563139033920123014146112248465043770486014743821072089430651620600852668734152859675978486416625152765129037124722509546585285219789275276058740665824923882401792712629371801583631151552577586622470266645630080187117099521159618236343584401043710714305228973745040312710704770291467575840453977384008089589072936725231545412900282870529625664794809484218666048622650075038054236167097346050151687707409356202343311041109177439854038706137977779809951111401977045480618035918565317963247007520692167117932556983470047982696742281360830195540589270269806679805895133390615979423585549830991400180116235334359715751467281090261434279961268478053667150006690635971528922276379540350814947766757284466723045143424070667387682777262895395940233782329974846472295036958356005007215631108465999096423015064414079508746596570952925948577080948572683382409082572998798773043835741679962212433034868566552573774494679469381887052357743541799998032161619243111480094284184821800913724369865009034457817195310319115254645986034332923006355862254968187564066796973992953929057108996598252279272011183481253194843153534234286011248120735372457714474150881125957118131204329573081756309652728792522499081633333182671551729303980852294902719293472831855703478274770012777079181602423323181005224172318840143308460878927587338246318945119577956579263061614883688695910324164884489961653720089125623012656575001706480320758925074378138076224131604247621739839691483602702351710230686896422676045762270343199402865660848709105667462246115109749747271802917247071194696367994829590116009342043652754524372039114445685273972792967664248268447583852449683756295370464653095950012138890855084171898172077573840120205104624836901909154636675403108181351244971970254685378824373646658030399603839737034927563934408751910540483513026917356285493637395134715173160305647868060687099032885088435040850797613546181627779035158310366949328542500755223846416373311755484650711995444002317486484721764562771685329662831405090885974824867619102104489950392711403023652103025122807020895250331532579637038466805875270950759284140879631993935975540281876069294906506095013168224502653143990977087204096941944938286709700476646959719902204820567926267746840929061409031447373106557649734369324003909635213759173203621351876391700750582256852226869496517576472921146759516768778951446042883759807581703207368439627520500867106489469774253806643526155977029727892867171106718957611810810124523784217218790378382156575471815224673245587242630761215920324414926838494848634409846977108896667344300972847413574974796413881408126823755756954932595837023633606360221390811868795570271960088261363840241198960792779858782752264904555157898510194300141736319122837712558981192392509850881618753656098474629645617356219810814961269239578546617825792767795567464777696372096191825236190081722132052169875605249273398055753876758337006616173061571860660357805698164853577614028541610153028956561322633973735918156099531519393275497049886358132633883512143450664661413823791332710079546063311855988008943207166086113261351554291169526274938461043894134795534000584985343222535653982474835150814808575259195321682606061727683544466339750816048901585920969837321764138269298878916963741410827568604935753403911892528351678298558192846644580985572716172211057515631988470417125799855472158940948726103386393146594985903524519527442409588074630217616424352938551487796820570344449483022080384816937722935206013652226192682170907914174147483954491554510151484039768734354939478167983108792120075078315866822890158037855744880651857938070722053231756041271350091229205044874667523455665046701926262335692981092857471203893450023182872297605960915714433863357944109869343065428350561643082534871073367963513740105016140623299048580791650500152762912670074998200363957288967955573737532101153608145377785898631178580416408396159283637959740625294398299462485895219461295692753412679662562159326958075056716158791209862903518621924389141305447384266090387619459119683651528071355049205835441253189701199896485326116560209938884266790686530170139018678278379178281260313846541911718772001723296672731550274107826150397514335762493329642740344328985167330211134594528503695415268718521584492482252324927776183875205561557493258028044635607828846490024655632287181439439488450138736260646770911601256939143835271318615854288251722500071322516785325646409440818129314509156786813794264464108313780185669419986772901816385900990043236307149391025014347897202576247786256895944213305337745529388207631276561589411304438917298594378333280657449479549128821956827953497485478146821317716777835756109585349255727777395776531078780785141683786942997162026871477115381039702826620195526219383701539253401572763749674232450336291368725615825557399614727946963073987657230532909616061584236963305962520303774522422754672495677765526919209667107647782160734336154142157190885172272413589210849593948632191212624195294192732652222068063842154052396097516618716092463489432441618261102887133888085035056112288873354698773509878967868564005258073874786132177998606994614291691337266497728873648858470454253129930357324571679703518860074698435643700845049943444230671562952569901947850373211899643533663211203349788690728921915937917978789693237653746888146830818747053192823638808182191616567978878648270447770713874168283567192189587293115523269108439490967168409232056474367167889126830310863783090627683393805351931034835187866312195048971138713720364260198855906161273722422882974883495774491979660288871931398108004113327441834329577246063132076370442538397115841679840040794645215696877358538873145296479613148029041035508140226099372494637316139348726357416669227408248066128913713503087339568507443930111919155295717856939112949596031287652981473935902390331566080055464739390299215540697908047545192258178284430650327887128882428031296325141765953780415674502179566141553498693237603973424712704373793178908412269394908502000122711909586644005472008511555742439828469576576953082996770964973959587318328488869815138893828351085221412449216257707535217324869394372963574050372506513345637555129080958854638526220339877383617057705954675703978067207678702942072625917732576004249138730332563385576277070063621570739956784597031855028522358210262854501594206881909594472001421888856459766817524358727124900406966116296040631589683982000248756250134939783519325899660802534548411691734192483806600138154755362871370010677618948848279608781100473926877577967838897319408144539987458722858547311101859708442838054848289177268417332629025449875304166223523247797778693848290552851084565924848917955824114559259185117117986788639631975482043190727331286006927050264741879679058742959485368853281357979628714173055353674678512299713271425796235467385131964567472185346899949464149194006875510195553937401537355891540034640727549356159979112089736758339860353026704609629230793561556013290369476680881589326547278129017784104470449719677667104157503043954461171834776520084756333172025616947514128372223124165120500817827122958983621670889573776549608102491718507195786282809375024180362980899491837774259168601368332861913914778387840349002472413338434195836590141795208227144414703735753005427429014603090477184179323158178189394808896449881945541520646242271223510305529772950757503437071674944157610105830767218131719745420206151498764601922943433808266114404577298284362999083562804172654267948538682303725316978125680993292702833374649232577565788104954230165040175976040413681265658113559155002138904984026565852641990530358288198956600134219369690817961793210482203661349368204068103768016271392408683077797176753786345670156793091164772593926216689521725109524325304859636041747912373306136375234681281831381956075399846197374546066682249920131093277623752998809688629742078397982345854703688301647598593135516273112674783269031893134596027984535574232968169808118400507969810374711298913658449133080844118235995718855062752914791757920002402393629832502223234652483873684214879171524547506764472794593843645425141297377677887367832986139373561434344500560724717063559621287951598598832333172096628080615048368708064843817043510407218169558156319985834775433658421438544182350110123825779317551811947098245376994511565841945489088063694845845339187572910141401004253327776362724873152167549375276664108397199936973834056361409390229672777033133757753501768871407658648442108345113124370928911342666260613049023064431144741395313541935376376022559585927502383638973107221956524953467837506547205597856674282378841297238852028006490824300808321216407130260068201769806452425870628999989933256787871031081827885883638992308420520181279350988567495666881574827297425681877877160486349847072112202992312973086560871127529787214664208365305991838404931752538016377203447080037154097488239037562039607418926003741613979085603665406999700866993530957664466355255911034616571354626507971507838773025877911806813477633386365795052551219930916291594002551275005590017325570448948611773102062252575243707578707145912767940547708993857283170634768823192695913854544445123650601947201111798521174887826806059305519735322634324107562967239872869179855051724752049189989656073738255893057708104969904432690036569007602594049787523223142653079797285987079557950989460338933607235454000603674742390860524934545143080779067908783959118452978003727311523955551974050269949629707921634256208559859264374812909375426815207135616043405956398440368540362676090280104063586773706528604962957233274773267327884562377928706349644227324829177873566758438456242283974323234268607799040147454194620973058553857621932676741666841587760507696835002566992681223902277257430405347972675903090000115854632059585456872656028216005132026921359155284531570140902934321828100955071106528373430732887152543036445715705466948903011868530199460401938842465375383304674317549820364370256743930573552756960208998397540849639011715544682273750194130323661117302714035113991491522876436105948076257071579469068501238435830584752508242564791170030031907918724816717004373242567929227393617570558069857222133563671638118714227625831932081150408896085887794862546539401324016166518873288881308538613413005706774803348576284728938071648333845102116841716999140197570359666988673276662892972619484151670374017392427354805941036428469990494773168154999749287071630833385178656050784786955162635663141123639456749301383837293049387283110073630522510622890286080261636409488141303345196398709742401385742604981124660935139456765179923842385462249416779192595921512336030560593263076064464374950295194189935995724914306950470745116459383724481989556343820019906078531299027660004768204636326380270197048950457270098491661392306984288197330470441903041730952334438892044560456592317244153629401835772923232812286493966634733666829013886973234613040843517513787152398742101202211191259116905275720449688973247297421756400498115487700492790743066010490769101376236331591886422285654715946712830601973076969493092450435022902930584253289432731649610343648316047979874321135215641094924241490877585564996098806292052120993767295607648052210782585789759604373850368682493286405997846899543411240980432185797135994650311648471109801921839917912966398563682347601603977888661626128844756331265103892931557818182153803662407268761786363981902580868360184683166374779904618941775045161023257910881795113720969451565871113870715220671453668918697261923531386990916024554543250163069547608220676788726739230158522152457441816825504975767785169826180392829709267270874428894032306159032186155064836302350715706796175141720895346336277983626164068115705724209568684690767866060890496766189972902684706028641597884127993000459507174871537832322354469764368999517549258637381837814642641543659195993415923449064237725181057788491827397080487730125202100611327798574317799078138234703674783409360470186411184829102068144254570434310715332828018240190369950478854189890746191189701642776312309725443038638215874617325906413438740008159189505894631439472231948346002494067931973831891985814366322874967350482580328706452573698738824113719534487244735242270817324746159194803721876076887692305193526456808408872339024219798972149902714688759019837330031625304258587758331900731128487200728576864624175656011913680988172001970305206477244003271446434551580094254451363201090181781404641384202738253170414838683808643583142688828340499722429230252726333590300191546004631010478096868326154571335063116595598604919331713969500850134934797503811121167244965701185717200907901858796890647647790321806284135572845170372554112721072740341393099669249040491376888147781219721125313867109406327757903096647193326606428244485551117403673225193520877650383916182205434083502539299472625781438603803140357993055510327279661535644695166057902369405173884620740477588100992659300813431150135266150347831835582626993884322594626509910755478484431441282962628464611275632009254636722817857730939056813225808993813359478604864430605844644107351699325147979466492130530278985495967187851950164958515407815755342172463942222432553654038748260342762375110078308330109847392280131839520491301476998201379805216970613892574033068147284574008552649335702624662147665121623734729743209296800945430955922581646386924992388930880811601474090277390855803206509255667101995212113749661510469111034417879406660946000331710996036822230432297435061596429120572698115501867124491597167135565471659621163419076751171284073267679826169799874753907764554232096513283832577643203210546759352675087984845261518725630949295521742308398302021333819567510100745025007297578062323756921909101148495674000710414491571112821689256707051312813057340797980251454850739159249402944801196746428203688614903355636315025347435775957573972907975185985850613041498289933435978629238684679831883598829290671932800701506735420062861866223511228945622093065070445759310219213003035062045846405920552060066302783360945578055756676683024959111195441425051073335685173181890644873605751167005158502869689963537024619810024638260221303481558643736209730620456742991499951165937766373319406435962751691876381465886556356706891085062289723254753597538990394320641447329712934921128614919584843650496461518320047997998615364415243336845915958292184661348209550519322638473565951268916829718892589666281297683445814144977277094394041100075401174720013635382038100012590883663956739535029685531308091973283246703966935038680500527905131270600063837759039515469637979516272370179552876291662947869226584772624604146855254113545692914642022689447722373095508322002618688752364876234310867577614133799095572034880716821553494991069596784320764711083852668273643488654120213701194586262437356813042866141282656452697263244611684158721973055280191380808955156981534903497910314382820362295486199139714630804331154586431426308289669967549846507498570644203384344211731342698805643411975203217712277630927314025536146791966626435103769514404287383309152391496112944396456487555896199057118081171223232061578370618013744240927780592816154811416809036714373313904039623561603754515109500596397239420975861054459433129163684446192815437707107640787241185987882580086102275566869985928728552422832176836413376103289161228341361895935119235970056749204504667631447739094424331320630249510532633977411200049926175533551482241064903646947807272315454812272013138536513720348436652068630798063761375734589878960328972351228262154343045047545758569124766448739456316896329426329328380340937971217331762272621959466490599958881997365879021283874021681903899093194894260761425748991308731859469922608667830180578674945874459094745673423006856783972642444211379921227309747912310852988402897119548461190971692146137874202576856130259176301208724154706389564867042851601883667596887266259835614581015177726787679039885527383416567974562053840143597780365141292342673367273810303496005829470868224940223544312939934440790521333205392153913701339739406568625493863989018591054462134164329774912295910506462455641789898052674999744805263191603650842575075545282893539918726988072700783763583103316803071087770222429181277621309187575688157395600248753656603898323876191311563996864144532631303808886106721389831862745186185665684386452387287532254058095440449652474869164299206208143544814586853348136295955894018976101949163192021253447896237075641561545828550528389511219840699731677961358604698601344207542759798742983879361403602176676961855463139198291288902076229913302820835809857208678155768964645625135185791460093061144942956540559955856382575988460981101979431662352087096906687741835947462787201359165979163945492992651312161724325490494905960805418387227847418439233122677891506954645198501072522495435198149792745043098792974018469243112183310804899420927657509210701016460687856412629225303653512160039396842960446687495313629242683610928692858351393181772863580481479801008088415705571889378233636018782452505573560787526897653402686555238196514335667628969487966916294988070564240291491363581807461603385577750032823673988729791595415611831793253927366144709911417887879180097649998742711436085779577740466387165638619938036124632066339613352049641796563834723065307622291871680953317280581974157916244081632356937995345827044543428246612399316629986924547479994911369066790595736593444230724839697578852346607359222576809173337459391186081316474480794674992489254413162255504774434761998198040744973332247614327745719962170001782160629649706391573256444048672599014788623614208091044999725112878442832639140388673434633623431592724536361069078127771463508901744213873568440842030815449492671780838635825584253839853634996515693886378606572799785359510388081293323607027736746795721203508455106236244034461545125751462408963424253054022413786719581776308093665052846495761508294452345979753319874255759022147709069059197151981002043161790556808226094943507942947981336903336587333857621588500152131219620714002477357373619877474874813574824824647514104812224532897139601286426496209238724012382978191995027613354733013829531754506520654739087178316811681095456492691206800922181857044492095058271567107724179604805236353960926415447304754593259628284696833736469122469314688343903823435082058225989094538191666684385614885587801885268246455992418507882895597129316697372324102115349858962562787720276881321274583353688079412082445711883209804684260954689859028247358099792276888437631491411640368848040596335258352707698679081244171412380922160552291003479617616959160427569621339114475234486420848429762134057354038051145902476971546990575991113349498715618432459894279822889801267586890820585119251067863789299823112429382082896601568224187153033865917102912214248962677696970830427486562226247662104656401906628405959606216575026170815623473740940773275213048828752094032219596154511830252355618582663886387670743909195805508949522264963960927775792503202692099336725154850550249807067133435947244103814646450807498078139150742087437886251755390839638185911242434600209228150050581470824548133964862216953052278589522124525969746288515734074736140815113558868272596602923214879155418172757647122961498231333815638626688837737559397193260900808685566892139674995881016280918122329493193470018126829761938446094844660215387425455085396202209178673586097958977218192392537813719372407182636853733990639939945517192346842006049256214053588748295813852430569788325401613538299573989959349350343324106899772242145145771487627027275230006998768238719381098649395048816600084955139899399112176819476607952442628471661398880030331763212899340233415813810293732175930625314491366597964097132593083395852475938891801268154080735887413920878130398862398484295945122128245518181823137374724499136476782424488365063696690231068654760583985943852013612522655672863071239464496978039999448997785305571317161036897753247169218203946325881871413515897917977816851585281442419498222459296489666186761654562113122117026047821415797740113862966657142752910091884708068895222680387498461878986036646251801828899699761662723524255084542038526968266207320959919035040976724957645929329397884992898256658730739235731648452128340585203388349453070237362383173652188180375388927737984104533928590961261250347004852748136629819144594072947382981872835850332094220725854644505416684606927505579208908424738752147776831585274749726012697437400511944205033104046717886508879140136952961016945250130436252944515285772709319109323532714178606226029284630695493521483584778367104501627231851550891526918119509055891707505857098691077299509740332923406398688711730276947409207139877859016610098203580458503137562769817994647050588301483305212798234824123249914007676825780548785692770678605204344439264912666816165232703884140273760800796177719646394842988950359477814151514407497919497157133530036982378486125244804231518480155127308218307302348240349889773254897123657608184862778866827353921852378823622752132334459009877134619527698923034433682755583408647724734564768572559466009427687358413079591946108520253709248354103136650356391926726617926303514119097063138822087445314005874587155060117450703303493815554786458241912962843025477081515680275008311822312202584642587462121823662713925885199665525366435822341667208753515264928034440433518823259431370881141257324387289538192939411971574429754500701617656334468833525142626226143315583977416946313640584665541364421811212757503402491221986791288158549290175368573036654920720464041126374100876877725610076246621389020944912748648355072883823144835979793065459035248874678971486985840026293054793624308479899369494384680475917433652511169402290506537084700096078331816886371582267282046570790224474255372854208834377628181141991945905662694059102341442582378499102853494447891592104488831255884546853906417101266652720414456583748152915344335086843445351993356320804555483166517280781640790813741341302840608932427540524482574903864851017419378140290529791431159647795840777971892540519984264056278584067797765735732597596873190065845735040679711860720323432741071582431047481594884455027628704078895807522538034130385659606494061421807682126600414067959982834977525280040974840439587312429095350621983544743641332111009540566165598746826939255840574395743226506660798581696139003062566905565513598426157512989267084176266278963597128720111279861322392932741352200695902739124977494759021546679785091939811149320019138130887391459336662785963988770622725578320478947418578809383262539325067600460648508537745203842098397397384993627116198592144954271019343151241697936522614372887397707567454629208569004250882821596355242903369246436908153215470477503958808103355866213571738352690709280513875255369162805879703685677817955431509659349222178079245976890762520153745018644398545474926636401542419578233623713425436146671484148383820561546464631400008039262668731262138964272639205920674584746513583391899777609970155834435070795977731086637552072512698347993854879539536842158746874478801477112520222888551598676777966325361375635018402418141126556132209338039130862699522352314381553678190512575509252962455299254877514608575980618973499556496425945978463802835037458715232053430349836674139545337900278119175929655472875128527770196392507514956324187938219150224496342823222826543055492472541101374796778636040960961613286662635175021525851407662219669414998806640139886310244691181335391021576152618096973372962665616175652637081378759275818810887146062924251829336462473949480041205654218081434429389635735795836373343739194128516108274665161040083768676736421693338042532495333177345751235732475356384193382763973112788663216753660190421947948850819390446703564519580510412965136752085594426212797064004138430348530599204032235534155458062864447589556786198941752706384791363458058996022293243272701129254416271571913071810552615564987083342627552940542313637707237814951120239698945328951576875747674241774987188617938740461310279618463501514129403609854555663322270041141633941915604473350303770468232414564591495969434203879241587202700079517178641965208764658252315183754980181043846229338087507039258263241400810669434089961351806512423735622664379951162429898549380445467692110285795027804520733102052675892345357938651776937541191737326125336179126552257529763009366830237112958466795799193558993818196988223059120660656743005461877363051904873236362514163717979684860966114446763824022713984487369021073103291309246939949526774595781834689358524118419346674655101148634134528550217017959880020592251400737002030623828475796334192000300328084175142596239406147417620318808689405664264644857334673440594705364915167932069378728593029861793073801894683181749792733927244313466266835574852748742947869524555138638030996491160876235860313331738638259202935555891252439980963422290803529945786949672869464141269025207438888311773166542169191895976627292282210838404095695752812222217914359380511136612305658410922496436466181810629487225564489038252599095462946408596572502569590257284022725129189089543594257137214331364618429862018343395195284440456765251988596706350856166578676337712591616625977639135827148541699185793359173960651261002371062374730505217132436723367793492094784157274077441929383557455105672123347439959479616424808005551585398414918063753180370904338768340836571296122295305173403361461509854442808325376559237707462534035730857445587703220080332511187157510707571296967393948697853627422477490724016162886789246504023133262266471689993619274736516741981150618234228476144589475648658438042677393485663643212568644929344795199047406170835941776782987015432244745080385472957559214138620102521355420920188368891953825881740093613654347770201924225388430464728792474167044155292584958116476480341823504156121810220478362843329976706048655364169007758494704641346931932669064766561456475543890027821997987691555637212336972715616837095212337245087975121017524020362321027902470008010390683695753500965316941453021707584550572998199514810716347145315760256298056982925742464091787176000890929814125692209603256718594099843724456785861247172632017033423365650362245430434579839930709644298077964706684052406256876999304060248410733333251609945070121605429444894621651605171221654112393555818643878996827018337037593579317917204961233545548347012720761179501477469564574035667545867149734525128474245236663589834182554326602287705757114167822383761211187452507929642519681694421688098926624987586248679843550503563312861172981549982142217744011981257289134495383627561126709534238216501678189699873145092673575457484475253076583713443366541893829271059571227974096096026894401754597482024670224743700618991722808988611021997730484542559934030007872978499350080885499557919368900477559325461776612126388988983237958115391024434756004521254757330059563273254656794710627131365453918970699093060402960030245277949394867961988580632489628118020062624890311208516954991977444979081507071064540108270243612148942697882118745065717386259545415981786308045040792940002615871315095084387808525716110329233720545405825153161832971388937823530842874725571650898896583303420679150012157782369563891685519465703010611925218899713629361493860638181683240926252948095281283936368004333575372708891403717436856413902881176601096038983234371925376211948201103477024584336679747918524867393719570720890996789792919435782924097937748359272956303650862087794982592150430126719465843483467492304816342517435928547170202828442447950418140932715089442475963093874983310519791893952780663467769541413763633460364933105149944220267951641687728319749269337660451203129285631684310865116557539054016667388827535667533185023873236938266357600413545692348548461745038458240414859476795756925301378895851094933081282211199526232567975166915852515731168435785607362469730355349536297892946812151522092441491954506872159251316823884557669979824048462254622482102187635101285120994417123418396249505281605643928341436218404657145434243260946557842769133610009278280406771230313236057196110399881610065464993691951221099170504895612683146341448173581512493695832520678498459349206488396738280140282164878793432961094607973887612883373329016513891847916717644426939009248848977317005398269840602858753220705241824510554527296338578094139345109501682523393955390848591433484987957429521950944339375531782906040673414964749250224821094876061469529113912154290315148467040912825238223895764723774831037613847799189157426569174914029764703788482138647409689212201241474578128066196749837894495469306684336810404524613464770053484559086803703376466865380632208208458991690403161043892681680663138582082861210220476936574991132656588964842516465985862339056658898281600302888309302767199776086844373180429753857569074634706281331467697943063514455990987856967346111404143213853840197279406756420497876356540941031180770505212111667247184818808034982920539177196067212566494870118442445960607396568427912997577878133638153573009870116775398020632693051835812797923368181117981708917678846729453042624914073219633254229032869741383635530476714387814381335490910429469888753888419412688233319407228515706799144693019297448811865131359521985571776257779110800611319315047664976665384984137401707422874115606643577215702154732941094515462493228277287043397952797296574677564801452827627983072772167938645497561259428958813925085890815724260356942076459395084062587797589252483656292053398575125005205699270680740109797088641247979578227283075697707269854888233574715041366162277218885473996032325808858669878131836186194985513664028843347718307423514389274146400574634504999200808799742140717817824965740485507221818916167321534790436303997691817514098791672457763104227271891027438632092476902060499229559266911949927849521017101655141348676031681643278390017470284926480805172378888495318604373730034722192695761929968213422400298792586357375973796621976511459160788499614651055461299336156769113760380500061644326389618468931442623795830784140120473916019004636770783058284190340428989036699739842315083838322448611444133515367700519632436690158313355228510900775494014347258539651767021815321371730760951006249851989181565943336063529857838623009893436839107186963312737463804657495612851303075108685758680539307025779542969395241496297328917732227177956332658625874555418386712033834011708403779001265460433167002016924107233575333459728037144908010921716987553112242028643418632862687609603743637041677961143127702042483571418265826750185398120091762543221392547508338482886128062154966709838382627761110371376701986910274048091025578144182864887594141592491741712296418176719483566886900246086335174344134760234671054991005875589105897384277414056045101737889413332359608983975928308699229682731012050683679941100504427865060427294381219397039337245584170255073410887577742844783690290056009735032038756693117752602620950141138374412046836280797382841130425932153990374427686464416520319113574322876171462696747187106382234462389254077003798684266964049896898728085343417170278070281905721617031569362351665560262652955769237022816065892512254074889970544017029854725961255353888553733434105242235717328995097659770142333594347767151854051711652819561021328967082055392953087687472600182950023618938407483139901771693337076460524982855745185190873150705373921363787726740952485207305809518386638948967709111092113802491992879836845392777463852351508004622656139654265614780971915145991466366090032348647930224884708046210893887623119635094306365494107298539917015832520207109524822114193861747075246973509939953113242987014757458956966791819931850429219900761993614634737478699659844841168100069422846890036400134677822917924548364636199583445021498068318197489228352467048842588306687705404458789921670319720056443752562076913006032918571439353082391584053931951077681938690227238626733196757236409408824073760205207879468613627372470614083340143036766992270803485015538282855465713814919753671933900293998623878423632354314763879817443040235509151555105095427429821098178379593644071780238164706384871556422605454095525150914858901278685012693665235189836030729389311989590209856516507146513026881782857635339467311550697044199274723004979483961256988328884415618350471823405778692847462446223347862822964229139805719874023572662543975363715140600852450409790102790754430103992143320355282255449604860709031680232723289380288880336047858543595841548876224563700541214720376986807868543478596200459546642374388762117120184877988813593465422394592389600113221387929296241022558887544631606267396703795547591843961853816459074454290441355771861999666947088762757480501929879393823906949307987024257305554941527922376639101633815713051464196252528113262734210248941445528318854807139833657879794335168860464759774007597155457754056749844393006412310146763021238576112971796886047295850590626767231642085458963710853728643077501977924973929006771213752411023805973666835206425261795381717367915353023166122091007949654949060573258826767069559409912422359482970439836747006773274968052223823540743862174837699005301808897699924551405186515419336038802504398780172514509507147884464026283842009884920665704059697169203018460226570497020244167320075522071635874191070686854318283647370660001141725713546761993070106019338093607000138532513848677584387105344954477799620173792030341018223072213325375470335947798112612912186468792007329300224800284026363750245675242664488477709115986299027847354895718063951539552401478647431873786134238929213248067578020599321855130980666628496444231883349602872253191571679445143473426854093259789240281198210364964049756611163986746638205207432195727439079685932364107870068355294610350197670362038336170648394512199335038305522235757008849515162539811141372476761459288709148067996561516536712061717712323113915571793400537832107375140628752676108872249729678139526006278723027336355699552370865168983351426614073370078345612259007101917509856188798476965612960118766085479217011945275432424842144296092487480863516409772777146735940963368819495607843434896522173398087268615463087098185893909376391716997760270171001577371047433821131182794486954683790487617563386778729143066455068412329399686300491195279777022182183696843617568359111601614412675004819856751639020551569686105804216624162347152175313233508724824636889380555405670185369398289230027766294890210202203565901893492737486144597761423815211697449358786711186241458488885693731091364399598198089275045292871991316655427549758980480185325594793359611816252349749615296768282855855968951931580970927917338179061728349297640866114561670688467344410892684355186062348744576158802634630103232180453650768513336058530933911153031552175286004405059968042448015446690194527999112386563110937324546602243155692225303693062374062027610328811665934109010224998000932827167305090839956917943519186330737382337707039098275986607949827550988344631728019033661281942621186165027665746897938557460756539488989363274207928172949317307160702955317399302177358838070829459086316218338589620070762704277894371071597355781643123091826144183529417361096513089083880727846344271931157833042733661563087940727752089826143499642174384459459431542906144303025783790309958833476321710038090724898598083982050466776361806438275041583370287724773705001947634488695240769872527346512374224423096561449862373145256035422219293157616070939469063364190509795825739851398782703703588921636078977553162952105393689144803029857021116772060360983387506952556551304250306776593936800788656300212739707020814503088870934723690146741831671237356923365983959351879802231390948371324434057715516496946451881838652424741496226514031340342240740899139708074807532375125434475120806793035263001581984583978351388396553786747840809709906146761487369413575296205133011690700866090069646701097902224334504707353620245205788724035732111702787500395598490319373796000176663722140289389760145458780046634698279835779596081518426152027375659030991972845767820521188401139987194743574601629069092257420236053883676698340895170214284535121278933927166380762531876190358673907531454537769500256653207447079861420800524830562138117815919283862938193964085667392494060831924800673994053509077543553968987547631906926524441180845022651063730788772334346347339984364019746025490329113859915550135791601964009284213735385343683142379329438851132972881558658344869370171256862960348526444383349531149453763093254803508136390921426352805434445074061782044839906012985002134532934774371236165835276484388565191468929972741892735376722976574751852884055237942406799543547287111908150234756082946680401468941493578150309870538079378464796939552397642450856133526895412063141884377837745339117707678395837384174504799833253720983030928213029327928807426131968619073576687714662553209840215285458487874279409332076492327077769251332157157729931452575363630645907056419470053541644336287622220507677449824555935472946389004801945498145549860154633801345142908066829370027840745342874818412767986721995446471391197987400621234800587628559509578597841688973234830500763388213722453402733387765617284049640461303378373252738414847584602429973264245503051388152150474234190157558753498263547285908655960745618132077854846179376680597498752101939863196600942733109137199355754869434780426208573818868927712266668702275731789118701038247152050834779100276720717709491340516987610394225174240313476823138633971347084445078320364252675290425083230175201756957316008722343547749304541112874783549036607638363350803182428485633940850662873438348735472273081846025159386271451131826481713139081168021705865795356399995722224057505048066729901927089200158449789203817496383987514497471278943744867010415325815038449828809575449472702164803683240150573978530033193253986451538054939312283282890969677217601272965645120440786337418694081139704668020490737219226746253889147604441226741896990330912374041180839713369745397982742018199616327417334423746312079063384103690566881797989473081645231415615205645579456749312260547812717186575035705341311227488794273696417019709434255466388828165185562350020617582029596632669661913015113766565289918233111243388995126549151999168523606727311961482732367913790629509710616666561537566893074146397737675391984921743414506257245887028136640393059178250763214291194937752570783686311676977807604349695418405370365078585786717754548339289041073968573980405775355040009686602375950046482639385319872443089460312590209914125615580305410389267271761696478866104907606363658122303694324837314590165779555259303801735275759454775526865105070452555090631092969287507064069450459773751606110721929927998425367071881334857302957664314548274614313065312272275066834474604444264220866354179372393954920867176560170205424113020021954779949923266979170973208360512319248203659744229351681346186316504900068594388684027986226614347050533812242568274818651768678539841384572141036595429311934131730990077019140663293110392048019428020874516301279259014655865483790258525159615108793232909274256991309270167208368315330306491037446013808216036351183275213694793985958328677875150924927038624214742475338388936993020297139412506648967358623127044832951263459129919413780053305644201754455901678127385764320558709508917988454461693260435867479690590026171602870255154186684113889530131353566194950677661337712980645172728082910178286433059337800326591763747729070820740876327463862051984860575418112334361482594497927614342135234110495690473854992465216850053238746099968975894029336188661215784656119731566523515318545347101039581790013500978452270478579406061586007272502442371440239561687281270234541338704631623484776928492508648037072628692444272000697469837879656551206476178898740979447194858950034330932800184642395600647269786010969683758729406022620372919566905253980146535536897443692367353181825128969225860791368461832158151526618548192446233214890703216278375185291442468480117605175101590531965213957143481047265276187896577601149962631336436563795704011854200126481646960417586800630576011607653330255115832016161993425107043759079099115068052515468687819998968104475023300438863538038123625876219863246881551630541777490116699583615300828547009283198889828604343275440965354093308290969524828381964606450649111305830340688204904410498360911679239722720591717575251609989733770906192437793011619401529456008314363707172397688604185492048322148629961162168537259494441532125490935607368529905373981864393159821423258580208578997717101627955600429438534493096330971698296050403642556016027858464295131179920271308092210565315114350908528135445924129713295135549554933026191145517082443210120687825273110664181800457238609693162747408186768540314782156247019801921686896496357922759876297487291134157052213825765812008227213605949310174923601161558607013689919093371946883836641033188588626498958568490955549909076039831661722414445768160560515417048148030239087816955357250063320545832770462092601761649737640901373681766169072241295349384739301246489354153000068464281243150533215135862840015556927172687406124552734191480129439380712354050532705108154499485442443326838653809531082367729606117116691317610000591979180820464664867495955396471461697778311375536519697187626328813987004750382353317274881493759293438719809889954240539314904008228777161617637747035171705752208575163365883783325633003900407886589498508770679711431727778017868975227025496137397652161731419713196921140829259939628844573581573900416292454298152067709778762184054659911322993980315096966587565057290162298972235742335199444066755713321466186103620081161242765387162717822476258077335573446563380227175970629769824425803906740788688707368940070768575618524180666872247848212829642543445648337841034952172605244165439830107555225760417350878138498201917847063394336676883206511802756287325323248638834531666260693511755976592674527137414874586319170034232154511944864311024460338737402192387471474457906964322458053946407169761753908185255008298450086945688659955002030482349642594911199517585394456629935534598256563836451775227262248650927732671789644513440307495537962570731657052669135833513238488061895924043790344729852361675980215205963344706692601996620327165163238997794224069270067509898729331840225434149404082384403447872542580350523370805137095963618547870426084566669354917997053277644730709572149365246586568223544597686730289397308179832469197289199434310603395272068362173997334744073791748247300066047272803290607980187805463781267366874007247885311634116922130093503839673537588594960243048572590882179212185474778642799716822405824146017541014451962200291795216209732194533019037527661151593712943549053435965426594732588636884971384404163302246675699130476451087532002881678945606176804441374978087743505016346331370827281302947279610244172126068295923328124663138304450146292644905467596889611799081670951347160038860236937434615613144248337041559281942157052002633043369219890560722347297752206863564816539612794712951763058436089655965262792628237523717203917104646316815899519135628970360167498769846515795027462598797642978188994977758858679684988465970674584583409475367348427921067565866263909008570756953527264193814568987540292791629991550926918530683253751779377234761192599754105379212439639075830899619089230661881705461924058503873426590356214208709367435209282959280426919944585636787156506850873524515833942468103087183110344229606500327419166766035109383168285499710008118400402217955915963426587055763966671537790463553034011252190249970794989341013544178060271849962590328457032835235302268396515923051531873794093145466040948598832335530641609137916343872311026425013890845654327294108442496775663442658288736257762483036602051632063995713593107749164377828802897726218841762582828109985386570482033474874102539183224169586057555315548852281773489148663747846356979871703124996225531174453303499644239907404315982783417189431665323797099266080988970630659219496502018805099320914662775897397829570589819610656179536278564768300036738684502226226229427832929632386049969169009706441462402777337389626129575466303401590847136329248470759094205506855273998804509465277319870415835186971324550230171411742827099245523416797707020802254747973134839560380714450220548896377197745179015184054896012848582905337656102761908055068429734150329539583933254783474180074723783968098977451153789508586034393156417366017142734420909085845324854248320691725455464563991791210422154540554395586402558665688821810975781996347000200661370191444560839122421996606686150703447553250345238543670756102822336947149306591567425654662797862138766803353310895252753901682058140916077174120680672722326074572409797229935933153231830475217418004052932439786813390803879255604718935814635388391713220878509537740011614275057752592993364818914551442714186909315311651499667264594365737775198400018251752009481649676462443952350058537672623584145809109829420170612601125869862645446415678924282739324796899635153094794378659018786727098822763864934079897506798773303408714166954610105563803774578397627768628277736119152354167343131707469867251734811877429898604281915808523781703909450732766588893119532888448690649366828561496827331247811614545124448192908106086550531135948661220207723396102793691115273048244347162556517518279090774445017294244417084271554906739628973154425426353044852261584045834330383474717595447113954552907410872347828075353127999855490939114301989036072760508744357146671861220383219545905819377910703140715306765082589552953295617653171524006437323474674864000394129289170169466765270045451663556826077171166287161132096302816079605655603833265784561920397302958222370319514849659791546471140736786738300954195508517380228991880495990365099254474324759859811906407936337177666813119528619272548589992733206955076431347364518959351493656120529801974655396110862280717453195604269718873221500606592082321384482203450462473645611607894682092319098396621726330156692238359817072970913563530962926372897223859044636266693234426268197304891050828493701071467294880792936663338604232811136805098245383519915760259175495346790215060209410237172133994210361956368439493628232203427714051716386398450582362688768344419600362652244774932851916609389712095772476417354464020928800007927413337094919220506624166335999557568023463560832811890038863839578451393685086968046482542113500647666905222785159609595870397742594409242235395400698744417564101598297180068979903939687239025013944999508760602918370273887272797847751738049715154313403592452860986640045473246229228019783275106527993268142312942351674115306206334465045266494091070265337360461157942161308148289603028745551938765984994256764386646377227756606948039207938081791095230716223076501003730236787553037916688986612309329729366621163649094073063775669055288471283586741819708668848246102125102478365433664082040798910417168394214332400123603722626725153607208903766081297107914215519291367224400889110651011317400261450797119178659960393126580297922290262481276026227273342711654819302925279458977306560288602181194512850418076404111940745515722217331433544933207193000460514397032983271027455240969371753293972769748522438573103149672126578575361859960900135721040991126004436626363683605186743925350737230305573565921261717382097015594415395687810094369413415446257623467373635970831986828703958220674008382732793234300266677619591536891664712609287475542291858678069102904210918253847116863326468993118475308056291973519898813877873744190559174472859653606986627043746045788499743007363655599101626686910425789171823106425926037056356099984535987924902889338053717645480349325968515753832486796717304214940688912437532497762840224259674276717007414842823606951764897619405804385925839370654835007493211693149282582785655335894420379728912394645124798012345817743808025367601566678636676107032723974708733064915239523168935521497877163080763068088541212338473712526160860539564671811050282916278260777115945727105344513696239285799698863152546012334295379622340899565091423073343993583213234726781135776533647163540660084117289637941895786397158712100516699368299868143421376662966459972041372218384479287533061707034731210202403465430246513529458853787362215295562036475791999002896816089084338615828787869313271834755439207977839274868674689363952867343668546779854871279547677258531821745573520473724592661606773889593664443068929092362374348432443074661775853297657689341610064089818231392753366186176935651200654485770991911131368249127701269897423385224238207559017544995118303999541044980918066370374358003574425420118403682189041881464013084981134499255375543455641156297175214130787530258311513933719127163691515280248031023175759896139752157460570426818448350637196070806249562087759378765297245071897181332515657730671052422122016350634997204173808680615274324764427735233699309873713385200297727626388570813533384080969927653109583399157049519919187663554468423908293247150748924682889258339451209208386314146124794897998882812124861832102237262204849910178328222209719835785820709781953829935541029071373687568451112262261380183315935386747664527036179544630565615480755735527514795020665294727591849840884813724733621518335614067692966799080613665179286686785391544763709283558210391715533943199825346743393813187871490389670353666433820613370793380870097515210224616564003251046652095615162708794289324217803735400960807590808427807802247905784310169663251534238001568420804486991390052159484625681028132967567975334858160544893681101911787556902438233869672286641863545907091397812840546760125750527173382171614717924308054969091985749854290983963228367783479442061005063824063770739688842227384028081045836710095704714703902269392712520297196390561793166707374151333626166020370762478311372092516978755764687567399429291320714072493497740878533231959594116643051543790734105303842096711880358767114304549343546587815246947110864725120187576682425519750860822079553869506378554153419860925169743449718710238839507809580129039167257502647358930771020787392425137000012744192269593589530585220140611808058283804972955071684697497380893831590822978697294725308212261339654291046450530555590962252701732926392482188191692908405254219430113380588165756364060644473376968985876138631475588866332962186427819253517086993320214150558996625533971794469143665626060043776348187713230540383028566875073939271745544356996577849540630391144900114192310296231839079773668740569242932454568143729982562008248335762332114632359489849716092811960454484641481761944797343622635528221911973618794223168686154115642949406097277523346711758916460010989352427877247534785336589941317826172378433335249456679576448391831255033444211230396759116110784775769914905607215893290860393043647035778231324380913259428352108919876371488122482853634476887369425632999052633013737336791745899471006863943342227403790638254256187779811370726371349987748464102857078118241039668563816306914772251546668685382224888470826597410682622511028167007014108432071410536294160069477757348771288644427211355105298115594920912450130052376073045206858380774205182578291460847090545457989634511203146964346445589976766851184200258473535885766536912786598504785372511199224451844257084642967086747427051145699306880564052762519517567064095686686403476896624607612934526508319894602790433252396465232873116904155998145510208046637023223561140164557670144838400306559794055384498495467724851077243646991036449217594221606476928260560746881412171823153810727532730614519961155511880696112105622518357034357620965275637820099100011366386298004319503784920975670012912049955393042438521595868816963592275374832137855965480101819818430627094934649975709904006367138811844341547283382079592897144311918419800453353023593261703984387328501125227337196829175519403109229197488155471000108681191907970726236378490954687406677162592878258098988486113158810371957829195593932111734047207712737670353587074164393535385855734798903807124894290324618667201298559963373115924342993659097926202737252956052279996149153645274115257320593934239408045988407978712082332714431984303429876547825555338721778836799900467211702420392456777751697548376623166895444107150326725282916875987017778432710869829539014727717209421268292186209337999877692166833163761834458798634184360272940238450066499808716567991746679712359573566251602934679716723602643140456806658314621015876274665592348595958759899289652332095137120454112095596703292420857641446761316859520478244990468272141281198992307387996041111023295458566580692341757411183435286680508042703514765988137145364814496853861815888388751408840219906192226956571220108674557736278981591657569124079353180082448732612200931559542153586016392486738730158558610371392399455866492716264568717644429083051333957805346457686335482331259315659636782035661095004541348855471691719186607211725791147633355031039179925739753148224337552789995911784790145809030665156798766109651277907530213129205980983267569508128749517536796261919644150464586432943423295185332693177399560195072731026983485946009477008796445982162164203380910176258257676308653288210914816997720705725558382292735084941322785816710578400762792309845335040865770733102475312927913526566187065432174143069068338242927178883688062179030572553008516262890071273261406181836822985630198729757017553999861694007668777509099036276176390053990741911449402488403639848133599675924570521881390942450066693785995005345868216715109462268706362183718179487235737050044132182853053126424198611251029141132163066903710630960749321274032466007338752942307429431202760203418200743925789090633595076883414671671775028596085256569865913759693134594238685940733044861705258434394350935467079591888574438408786423566149399806526199073169668469364095105674543629940122467996261129107066774741085813482695208926996537852980365180308698446801896085244395787498158136869240699199391443480163864438047274811216174803006728432413954108562691566943043628762912634262969907925724926720356884014800701380141181042288635660720465966311289767091325958597997669089202096344475384266068043431883457368098256185231626409481414685393944042594543181220777522502846218827754126020217721893605360286842360693227299157018069922842981893700087275775861150257799977897660069486581284140479279858600999011561594886758441957422532486553054250083144030166051571241756150170564956001261954950294412060924306914202907092496509333683064922367118250401987565631687349849828436524827783239419401665708564423830720177338315558968854485481008927884782792879112376226660138877805753756242102853717638749480722123149806804155718314095232328517564564272379447036253500049105775284723161669251506164845349708820465418705629667723721208800830880721492360790047629663844544334394515655768327355565039888624035972831912339074604554192574403324252457301904237623273503780402330000191296369291260929975447220720101373374446321461255651340472617529600667825922814806495412440185165207223699645374366864286253154986791153027844270245935876104676397274955330462876120546054912031762375098602377526522303886699149505966660943950474427650422155256959470072237326109776280777959100448131394882102753017042916872525772388192526801815745590073632519162598071818722264906937536000199699970270783792315868018789032953448220790543260813658857864590957627817881228379734812618875582614778994894929431944460912680044839028705014062088366134280311352901113411570505192549392295790606654748396958211591766944265984952863568981708390549995126364601229822595454747697498238337663740787090220271616237793293138324802433712913936018355836424408289387270226650865537867878538233459446173268525822375568185015255128101730200524140310609640987197867148557444935060360807779071549975116903373840137751970640676386048452372539867188860262040351552676024343167785571027327624889126244407416796480332585682952354764110454095754570313226792359197288549178157011875055190124360878168336628024169849180333291972466691805232069580669648588057684152704966223579464822784010709385520783269352047747152637506032865675022889848834035022545144133953545279452549298994801485422243638890993307451381091432745164775498743658969442748278312747696567522724599945885634768480741106227973370560821791450472628734143399534355634321801994851149730142987716946344952212172372168341404791338257859266861668178736145705149977407431691273843513504284213760024314327999880027797056735351562259119840510221480853318227264622422275942041591097745757774291817231174266985254278389847171402847698036089364834377032110158254720588281453861421488731897349018055151913460573804390778292947003793692307689976381764303907889084958036729896216707567685165266973022979085687560230901058246768554258930090974340591191014782284598700544397677826648357736330057248249295267921346652091195598961426039705184386439199372771669825521299236795234279267464237190500818204809614963806363083155628355547316545227489634892434658274103616107305026324865917273210894415122405273470883476397018170984157038267952058807767283436949935477650494428537777662304968469674020064267778221720629283909908148539938525833089891266568704028174354669288878201027024115812068560699445226483431218382571049594934695092161707483893759339037604760687764776417146385088405078437443294966449807177609548502038818775255764369064305003340569486709627612403993232898519612198672041938055512353037264663100003864997398240557715479197208007025149767511370456651625025307719438216148790501764193634675161709057328514089439631623807836188007283906815382672716511494133365841013795464786389801381953408387810778325041849538816822633386439070798297467360475127402984978915092841232508638402843788836618243454473578858990335606114747883881052588344700199675000064166333105485781255925515458814951371301724462596510451220077747712849110082097123236625302374339289381852282326816543523547811200308573657131800776007489977933850944171636705970152173952728543150383787975000512402722644096016347132242613201858715947835615088773494562905780963325561742166019624960765961700797934708542002888960733549317128960416676763722045357670464164388386008557394741588609854756880831246477511161688128998426320582789709565233759873320570045188635821241146621880315969939214490441511964008537490516135816287704963098404276749706120235601085042273438830899182635917720377654308069705789745098341412614635287936005466717287770680143855969214183785905536945371931772888667758921794666176099482400822378374226151389417208627032931518585438190127701747812092258987585477141967286783272462470801107267420903920292917913726888508843830299473998712297308362055729768805812178421074667367672531355876081452317973932103189924656944573804556967886113111478039317449076599306394422860151630550785614559605748771547208669318374343595315365022812702470971902087216671038925841689089056835951563715818884837789957234934603925891106503548762683148549984664367518716666248203438821107523682064622329159305805395492732774545916411680487218652801020493707543332267171808417917749085439029144248790318926676617134525664866838648926732069983355436495132804454885582093813549495294765142170625972997249051061509396343189245681440200194039622236449047416091973493603628303397349597233999177969188008384142812826640412711404786067170102243095520687933963020936579229492805470943074881303490893834419117946095958836126238422945562047314978488779311450447159331907777981063606090940372315425469188579656332148652551199203302106787954628971454101871012035360299925055827866122334014840767918413767916952334793596243792685640282871419091356240969382830964640612600419966636925774925119423796536839167158767706996499319054420396309821668421133048267237324962532681211415963882355676636771869182039018889428230081403797015721182654438565684433788010188179223483991297047672036363316683275166773229409464257234629082216367565290922449626632471221075863782593643563092899376628843078817925082281208677282906823544963915776007404379714726213292655880855840177367920690395113943993757544670023316280328663328630002636439733385300719022626517904050657407842534126466431607727447543109498587987575626546653292844620159799265362517107739529259146472205219737207815203351760198733706063729942975682497618324067448401582826085969512812036497652414968982651465078660308079506898429265287663425997505120660255484289659706329338642895111351514615409846649539716189749592531460071353390548137216270694928141813203077272834193583830238315382009554460559581427318665554320501710174543481373937123010630292902051107524695124941399897431421826885430918890200567520920353549533131485525130844910269554205653468684523803184931474620594682714338678847553827839245806869184947795585134921856706309997921309934094877312769186838192030071793154191494074477967616642211220762818521284000230553550215666484163105286543133712598869455776439310121628571494191893465452222623536268121699095804434162235757620702297354282307357080923394278588160229796343520315782617178549346125703810174150652956128201921302103892806499581571697882501150514019747545569400440961584140005848955319051910529907836654098074320612014856977694554090079669280002691877204716690152492632454469760488406881487588554798064494319223382613799535582823798125498295059057739435056263781887978667574258304390073778241331310189220866137768159996447213639648136460455125558660183570520787902898914418686249170098453071988295731331753505011677254404895955498470311458741437941676142471672306471291699465706029105579882118681300150554030938595248096487522833491304429338692664169146730346039903268257166527994073123559215469294258484511652444879484993724222896772000746563948415977473932020755771779642896705767807416680170072281523286438832101144042466996433653248019566890179089038018359949496118466756866402735200068157463656271633949701713051152852766631097040241773023405855608604116695159140160703622138564971367724424964874304010993670084555480597137474426667277261655781197335697096630774609778530651408294959247922376588949022586083954620434099338075545999580813358716218900760641766701929214008219828135558958034874888998064080347575766368066738995649141717502680046839567462223395655739948654978041356550151913897495090576067503971660700873987328052214046560507820076780804594291671273637283052610198003522811643571828135091493298034351730927537422529802080784813148583207790786247019436810858155082317269065344772523807542565649506645463179736063276131868922463791178708162919385042117047436347593369182646783003014216201039527882088240501456739885515115877879959475003397726128151169000242358496476069162913237882549168978669484484792180723093965624093921520326111156625649397201535677864836136443333515878450101919934696742871995017993452944363256975261308782091881143365682323544396126409014209175979018087765085377435159500924372048088828885553790274373540578188700280857891585484270812040016796148692626877619239342034941324159227040288031942816228021238010706773929044970342530591503141978193187834724982771863519085869569167049548223124125774439383645384796438664774547692692913264564456004854112751422338377555651901982814156086243661495783009950619091611676265965971250909187320955727122965930177211353037106569586942069314289230585090004847327690405050434643948005227246409294834285244417161236431888627335768924194478074550552145696580562123581846389559476335057573249509882010590397177137973274205632637107833557480825622676497556881905896474930567573019758416103685630680542892989594666531799041666509379709476840393174058017678922775988722808710496185799684648422725775410254430343214042047446632297248267932549642817457462345178905138072572504010483866064862642385734043590307552631728502552303435044535487916709533754776319943618833422268970300075241222065637501642834805703106814160822524041829067322192720210344448947853070286578023537674459592460873549731125918025378538186516904292883671685598413890565150016554273200724417130021710564571411746951582797912083255562866560294661036101573112764899873432627330251736700396924039124276781375270195991304331441649836064336154968725695034351934215055493782082223376781734485148548586785949344588453601142151508118037124700990406530651842552122300765436553745384278604145576716437223082148133660844174170194474696767001561065299277129223303329515625014755212242347831093967744791966266174848187731822619078066651741483882468639066645613556345137066399610729956602497645831952065937996480640193385330073297272222405224283901720659304964484374243641410219980206692846866885214084913547893105140516284752870664239364151144987154352765561696372651182049685911842052574860695071149433545708090282872232187816478485292413441915591945623602712565743307097182457240817143259306702837536630741030586839720312671272002664289799444497542214652111307154277291329686303641263072344117460210545149498164484332000363334326899314141005512175086257805754759297407067635244038297441755638048179780469103724343812512636646035897082912197785065392954348051567637916191170658372950921030218836979146020111594081017208355337808700995230514066115505909019349268279595383872417033549320402588917961207702755628639325273908669065245566634447824966000383503371307796073487193396550370061071745153904465765977570551039245442835831242628523652107935521411205287079173155735510573647753467208702596783720482703007668001664562532010963596224622550035635876680026106584923401893800562226948659133268410348401157462214329939214634309649754026785685046039978498171099800980834327098040226734736435512365043881173457143249650859919379633523062369466440591654652863491311259725669572698484556262143424701642905787930387707773205333964791393194542141640232452721035325543360244822210812679191533794001951755792279733643656829708604358542399619243419102251888793455161825328103101263799354223281899626460288111264434234277789609328588981757027756527977620849082994226718244074670609980827656192540425529356641192055618573130222732774784166752969090817397342704997564781918790018087708538019431199532226232638182965250749923569253890168399373230375528768516964626014246234335251853072988815339463459006521797634009164390323975993945830968090676853064061045115559182198514806063163993115501698587045435243842511623214148422471290561398245818604922485561071133403824564408148036106168431295298095740281556216772102556605377910084437418082030273165553340702576340378055198717997299780360792625953532297304103244709234695475430335973229220082510516086607439246190709573079570927415344169000336574484361219823390206233441345491708869405933397245752973802912754918360891207808240777889348764876221333200326399968851177010845247111701683962677733703486517706741216687179641501880455774868148392151560301148547661492449269060044576665144663485569184786428166207319860536199947372833493358688617615846230111233249592486252646660006842530915798973985915419037186988571863879290315229685892831855484892164036332991708863945581507004898298118782580296390387589357713659358744202081485182636494105649626764563220273232824420907090090619951265218898037019517147782762982224494912398713358696977032164109091812319962188421751794790852697319273977895825162227933838563244811520051234740970565005555868337971727054962514883347895151627384532013071130492037742831594215623055904074348359690728133544089739761122087573337646302141782512964893458869517717374455541385249016700248289571562700473439572523114067713978340482470966180969161895349166558742973099422728071626011746321160943246910601499496429136111765324498334437636695744174419823633970622700538447468072562513663769530003976194583173025371196294837070900198581232142071249901033828022579978389512257717109901294450615093423791426989639399359748876884365680797080473260016722537629744401935098036652851985786361631876374719320646680972731378505828783467983063155324634622219609655317117954828261123418247669047348339023277459335730093408033440816931171638729295662083730071737683081294173092751257412178857531301970449929113149389961861998188442665514898547108650313950563331067411844302666432410259214602414864495988731932707580057580374516963018328089142901621106432371056511295329629738454067903788226878905275165029169714553826581309430584127124484658569775353710827802783866475163628545265756609750772002217381276907356756867123076786942211823974971993947044038952229534716177810410700782948264765742616327043922905362450638132730338170456117062333789268956549516508157552713867308568206206660444779205869115435603826351093386499161176769892879324114253264420429852789409612598697751672663653177323600896346967922043735257715016043973046566914781836599495608626494843656570931098431544095934892664912894621013667021569580595517333481423231384426658825957536763750787608181139272669863086229837015020686083285331203357813968628559615748883063745439070983413706349327883166090432859748728194338319728655442904180376212445696892915972025339346458608852143180578001763332224820458132754584192617827259354163177300357859284186128222860704264328067077553955478562587230135224658735988818184869783686380528756641023990669773598192207213111329811536107012126633330178272608393480836110334555264073537182389268924217744584567005165264392928574570442871723762090571504410138916475305452159515814931027682929844645700759673836763400142324094401648328657063490851646419103068806488282300805766825491678890099764326138122572020904940329376737543083774053254754615820279639692602271519909109133100843960561953794671992523473309466541837304257991212013421039828852897639380024731695013549207260781685139509821660074443433151619139467694611297525527841887532449357659408057369814447139000155973671249923943317720281313046915641462207573967832111729262616709431375439786116229533751080448620860506825422786810808732350209337496211187865495711829132369562433799460366530911002200593272782815002522776895598968082043063990296627805782597897737639045890314462301650847328226930570593379806729012708064419690346125148130169599464754320327129630163773308093619297067848433676983794461398894795171261699893118687097902800222576084804744542823595554045671572054975088284643960870111464739045217757309345331385147330972861685346364806420760479678786396957834897239538798604821826857334038172362228630528400485641985018989818875829500704116889558654352564128517094397577258698855500225397744784401364529129837515766786363774342895351700809791482216322011590784633168718883029803273968816725606054962536163412208497428948252281603334860889630747748760510032435072338999452646253875892799792451835439028318948927201693125421033757804740808025015923609549581212308585300657821201864562554423426974294004192389173461403205951588882425853720589022642523188283878934897041502396386518067830435468683949338788668919347052647077830160081370078372566211157117181247264276129604059032714104480395526204154504160721042845780392638776612071333308563847649376822908763506379556761803523248457812042218122510775043625134799879435543692549711169607242662120563668969071790717731786491762636920947566505404376090568933096073818655683047067739071730678397009724874399349032622535971796327188221242842673874252753707163496428614879929541479258449974751514574333361141246374773627109960008307189394078194299690648696179668378738750328345297171730959626632484725845355424078052753617067097002178707870503779146306346300419773068987560872408946714035401653320973745970962264359465987814314166860748354953333026866727934701565930668271328438508770249260395926360467488388050906657046252160732920791126609976952504669686009908287964793022039010819655632785044778775558867925554376630126108076568055843923837158806092558690358655792989217937107855528577369282929865782813033796531093649874310582394412813113055102067524127605538261105137669475577540815850563222090125698286087916948541350834275205450739467796713165909384498976817274485914074812287500086780866419034496734152038192161154237447460243970061736415494801250090778765535754355402533631774923075505832096313890668704699398012460524963589253846382489263978239298543420454583042784924412600347582688214526478884138706896862431729689356183696409105005509963114379775245901531900810718253457952969010514430218460102382043159965775278526514061726148588392169680574682650908872762986396361442425369596858047794546821223535933614879030738153670705062984417540168144134509909346570637649961858621170001569069866965552299650955271038972123749936007302420878339572077364861499502988804603969301258901324648069552999158159498941237230676377967915760971296796587021332194224712588071518336874245338280287747613783210948192474551350425715896346305101932383942252440967248946372613003235603702968681079088435855216054951438356999491997675155188362185520221094497889352458034809844329820533436965084608506333618268728647811970719273860119446787458023941476938986603686124514680843319900707022518897150691402128134669744313535086269208413859838801964500871946717245679775348630143566387333574284301466346791737103666803406328438948976871983032040479162785296111227424962329098862190289262810740982058562701386438056166364310393692270082271038927619235885985623501945932451623905516531105173591445629904939948505214431157437586838114628806937957675115265868031389869098700858225807790796511450317382485501313447091653286172167374245120302378642265185348294294243431646642875613576854832346284723710944263110572745454449435099405148952172413337515736171925575693115398660757230459282435755512795477078133743006795346367504819643506097502182304394687064724209684229311057366757165791873901914462230834663435056153017889535065761536102655566966057145738313593804379566062439436795148071369919324972578042364471022661226871408532540643728095372384556523712489075639314339581901586473016488843341210879008193674680330149881529806963794480024479169499150079495619950438357020206670149001751981266248887546574280294811135944549862249889477728665177210950650901702001025464935135398405542849077850351956646713563479376006982572915902560178266546987786472514323369764498117488544756013753270071333878373066014403966691402441688241729536032284427520897195521232764186038731654083748051916865533559034947622289985261769718226177707359221610892420512607617349221796759988949359483297375629101902723084059136595347985808245183105905306268349174840373759575752984992222985371810468002225062196890712505260191529337346458925682927324670890624031267155949769740837167467343465601761539846338235506182850563938113321438890160190418589381234679700892832783801421777104900479437902483262079755387223064065559616047845288907097386451485608961300462081792371968849342898286715575633836301406019656388784438082365827986196774525803421986170353002982998486453815130494652239121567677717207214572098295391847429669242270051097988949402575158807155590380228882841455028913684126802773676153343073463945643580522779412605399256791647527698286602582487892868186159583294922323259494148998848409037379744475869547336145411952985248686090115535173350796302197443064265586336920841366109766617543030824567032091993964692784611444238177541060197893277100452998122335427734956903293882383910876212407145067946987857695382583397670435111154004533877329779013472267568182177275449685222425563000813665275506283804367264430568835661512438246673955310404091340103155664259879927676221469242076387773111280285480744307657985934213350350643600375066272522385178277971774407810251901978365956390761259223645998757013780418115608130126567113696976456199321885230149640702812149414829925353272535316221391750560692125587045607692217487187263886510481428180736374608351256586275002113839855395842347384716197100557776963070306998144595720284984859196665584861606623098356709659503680331590788168640753210319285199540920451578949572568559930294354244796525055983023801232712691039762892657703420693974169002314486027563694917808503414750760081028575820088554116365190483219748138710044223729672024735065274365434294153750452485405487286606672429317065678914661441532926334229451495143731617647242044617370219627211101320618649054381474395111298044422150026211284635669328262727558803886550057024773091403442553091156992510186688952089017404648988559827499387184205992161980257179672803741754742610235706120704442629637799986899169323145618008261395848025242127613366972318885400355782269507243349355939413737214479136902214440958660166179223795093244095846820648226287455346923261497025418226628492863302919072578455799751439823446989092699336004030933603131256860483176641887719222891478274190184602305253100321036135081098187390487422909812223462018933168080130633412116739289170245648049085796668549041409846473792919947658272288801187317051807602850480857399914699059065145887838261143186742399401750481256881167688855438532374208798907494196573059745374079808615533954633724571118799646955064929264729651305152770782259653589864097816185482930842944925290054410667734092473431897552256125669519460177543919484909179400443863872024245914219753927293568224157769801320144337017248443102615553924668315076418920554966422295125403015552322082967084989254040375867653321048974397760500769453952147179695674327378066413011736000620117386550897756212386424230284422189812386987704620442610241125615147452576229750351606329858095030633494777131692479089335809933005413006370706382819480991269502195871008472625182811019497187048221533684027472056972618292179888292197797551151019697944704515202227889067642377192465043394542665747403194833806686951558043449276410834508701443772259645815035262848246611780243733250476740022649807610480437039806740304342651198765338902794631842743585054454959074728047639861818905615873660051055893625328086269279846705212201203809913774216801320769650084207725999890610632405212969830093045636151020724892942897138487723756173974207188318240450768687016650440113451701576463304043148038859873660112829893475343176099092857950281159442806337620598394410449190708717710649133837444249149023732046477342171594543917706691550281395163862548070796530613160864874349657402029571882460470197642002337120512098905667966489281938572896645857758486765476754115191389213248693174082939700654345973362127423077450009097892278876698664122564161069193647837538897749685057140011013489889640184570742324411927127236587084687945589766195557791933908720244928978322295202211839793126522033721479355609224806353127794069617332549043303281491064421747264540149144729644742507468796604158560168121335104517682093836204833074382646189992992457270526980258119400221710836734646290315198923270498906632163646774183567239223022605696717603232879548283114687204945038025751202159734044896211426526109383687578395592203174580663600994617567903921081578195220891997932799477909542682912415936180158468384402850936824080728682554706342424129628539458892673422880319369370776487310744994851624728517971606324386099786589416837903976509635989147899268763592397245676023592694917691286330645833512890775763783000655525611167233125079909960417082802076572020155554788014339266306193066778132404739267658407712246195341773102590086854863840297478464368897387717430889469554479191169413459689579050140367705259908765302632866258729683357275975121411122616038726002825065476934981380366656134270791195323553025973800916853404245193763497947651777811158818955045572528756991755140258389061726779145550470975351132792711717982544512239770025584951886838189675609756389951201557565456865884035413764495061504117531230674996012992972146060711823862195058012600961373101085770484372817197902448591859321469133127367792236251190451490869165252239130988465873913220189659203133012629555473476253082824003504768544854934730541401348320926641765575527159719215779243268809609828432051189761009235493967860741773660615464142241867425913740533148483579511057589337351058920385152858697467332611079988782937294520487813730817690503407516365474599903916984545592119741780544996455155858385044580606439623479715824929425932427583570554620807337304584541435610450651078029398288094623070782893170292922809914852299369429094530700599111419307700063488778699436428368662593333729243098989583586232631867993682278035087274953660981931076763595737440796552643820960414695313637803830305528123041385942806496094209283140208987884202284030904094729373781328805151658625056927110127978638966492557921170982405010449746516040744989867707970367960687688717224306638339854875853124377066178762132250053356132894469261991441928651162611194625781162644359141388930085708577741856920027125180964739084351615191948948658667731961463273744537649268194102678332325693605159955327053640382009404123161583322353530105488989948382520475460438338794974623950627880492418430987817469725877920744910645609978491517767209929103595253466004440539939961129255937712842021406140137853744921728810704591817366087385401260833185179447292153604539869959970854138104367349079916520337274316026115716299222681467149811567222959732329225326340348250221055179434964809841480168822270278990695750230580110764220405571992249414164212583451310242860307591807176703450099964771784512915652091563499505961042140366466452045453027771966972383921555621728786819270184113187046570612668639249517894157214776832595343221025101803903648449397269900639064449751572148612781775922681634586563567478630084041407324211567163890528030040795632457070490032384074645614367575671425344498107584579253501633103569364805993921334053073150458892694157829183604700628568466072000582370458508930926628663995177364092675344768381906733043622344486336460801799274719740231250414070036812496506961828485943670769734146539266715169781253300690929181191896661961973297734960476861271322251241474737029078843756888862205459272603714382447485979475025488055296706496535756943143442767939526022483227412470048924891384343920681170407890810237882171628349353042887076258309054359673403319023985834811566933757316608218894826635955457281299920742062025610047214150501512667148705391808448098978738332008947444667303324454846457204919836323060901708233475652251163444730078747974315186102953965113902232156822997629679181548042814302118270198261126746084064304516561354126864164798649470065232920989988943920839310377663872519089178804342164167631046120449768028500440533583124951656339743174353952842857842751503157911226882672067583179432791276735164234879045997246406138000182047657114592367543349560360988928876089365024406308684615965875355522294877178631586823121247490776395597548401429859765840452440721561988483309538119674404222771340384326170314753486393249580409306055935554152953588042342758717304831199065540305891311881974735256757300771115249624660319566995329226110078589949852334087694998814183482609236051643366979515816450291195442690431593846883026527864424122843110233954469426780725650301656548001101648389338611297593777628394746611957254808182456035725097920405740636347988643724368351340817492807203031317632006027868840748252550446213143299205274623329323724718139653132704933610003721232796670951834062587999514712489724238632750546709198754949907515987511869492610635448755588306780306225603099270538176688786186232302941561715655469341796972932174082273371127551135694558257440349073547380235098320916769085749339294506392055892565857673554499463026232514220011518723370523281026425917456686456247762705552006708623330340897776654564639566585685437728143864887108446862463831354056382328932750395278605091065988953763263178791841374894209296133872929518120351351746634464538013690555536956005223573043100332070085909733938618038701399365464918840140114163628025604479040070494808839984014615186238500965695026446994494960803445104590694630693688809416742326779758933982415752003526237691729626359416690005040872310379911889418650424282856904046633561999388185794781473398757770834310117135743903129279162852389922258699978589796246283873663768434223458875183397720385569586085777653612149445170677348100186995663794566867426974157930625635017443115594875664126612249785214244536516067994754681327496482287457155802323531758903531396176237178622504759510329066012379575774187347670438705660736900624646010525034129268356462281956126533101725436366480432934280108578595865577926894554424342383435430946678821366443321189835382532632122744276335027785987290440117093215825920163742837233324497268721866643543414433996374800798402201544765231977833453033027328123987867621070683355259741482905316477584953808949962648074965051583466269695906833051340099614104911378694469359069348379996116240058669721655369350675988995204353619284929172308918104395757420830677526415407388023260587081651133951543232264866158087151293740373344397397577000604561971200582910062086261912651535369897142375408478036775603260106344588934485381988439973911421622610096729549781497962814284850581392594900080846784609027758221027693178366835179024162649297277107506405463576479075728162546049265313020568637733567516244228832926197422925538645360728671986603678704493054169609708556120540115466363805688443539053677552675260519084397767093268979648207439467181777570404133998597099801292072166246916471894502009853865901190157915713460357282390174208547892323356485463936491991162366002975799109811161765281876148217285017478331588889048767500325661779455511403815770034620845605994830952540282913737122400197263292795539656363346962156627420012660960921845866415014370303653192598725614589649714839185220187403019576479717080706972416434948762749581055217902194055626385509314319534420499263540874269520300814509016372759679284893268361248269659187960774495518618077726394902812726548205580229766797596961858481822747448418529048916125427480072834678450932027094460216852844812766772707359603842833713334455074101366854143690096929701378788652538451224875615294263771533628421269681349366972573795584609573554547442735947053187186141311725953263128486251374990384949261559798818894432311497608158052455206939544798789768785485713556053085426564767463304372180311589815121825893153568432652167671976832443967865084774389725035373632736072462067274874449828072684054788580144906953926797543261762456138893873144312211209649150744189151405260941326834811447527390756625677560117988406335905799875583901634915223250534136372944208064146903375198951975143040363961033747639174141660575414980233057688670353151799364012181718878014083517025215600584902551982768716727333227754486305301275431349882883497655136276626098821534029414854058437755487049193659278205156564710890041699274596209014257985179126050446388256663732627347484400770953127388207194919562153153996622217001415932992180560696007118193547720097621847188449249324966315099049607147339182403370388755889386499645004713919067602546780686015826798168660024938824537217396763228630424403627961322474243512379523053846520806025692463838053166332267301492424968753673357690219128194201055955770705540431060296140044985608195325418059369491198883559488070406129273261567751535599369162745650932812328762238391248414414102558563218658162121053177802419948620436805655136183802416145170815257587003736748133226633836548514627366711608407413243115329193159608700682828905757735051682890883491430244682417227515038709500452124017296155985138499944594742245255752271569358625016986844547965514530441824034772701445467064957432962596737108116886164835781394871674269626886569551799942327030543602548758008842792048842942281691855693327612268510747220781992105832178188124007631583240842448333374250844830003288477576176225366769513103007182471287596261026232668149586806463392954125051290103487452861877619847664773010564823117564839491073321322143308665893338418968297816466568953164477293875955382328868270957514131509299620482174424270145422450792363090304842903075314125840294333058435950081346819028925009009488515476816936107268994500734260245335705618154090703408781765228151677512253879007825654498032403071452108549327047504786624199860194177214072277292129215591018607395822323406492039456739401671190125714042011923309431961557792544098877298675445724212448334115204509761710953410999080877439344130642657853465550987397242772903906331281159385772983634962096542762681583001775994866677242745800708562433905899537358880637487380356562560631330625334871502337537913057424460361970428318291317620370488612925184845772977553860420090042203244093423307269120973005970387632704001805396953955705628022582432878354505958296407325732886366343904798392765361896101219890293771476488987886610698093459343122703779154276861126032824995008432430576330947396063090295627931976605211355464844748509920511757155449974922892462012839915453209780684929021993591295854782527117747980027064836722432848774777432992850123780332558671079006805626216725336575061628350283467439089722354342070222327388891158302102361033717871635592987441729432818941030325686543196905067832199462984846434774403295165980513309451542017318725728495363484495673984737159732197131242819643838302370749259115525325081406931238320921252949290532330938538755870365477303064000009542575079652710302993533389907176663954838682307838102679910610376705665819114471294487286481108513438892901817141155460828678733408022267006508024534458785276189415887720326404634244156530814293145298196023919102108356996569813954485650760515130289007631028739349832356730536014259543025124744778943512715530587038279401632557380899379751659313170297462004186879906143178547260975906070545833803449728488969604899552160153587021042013682261335126277485798732728558950568961963343134608793487317162932064271504428666402517278909168707119505753465678775247260693035022182279603278869805707105991117122823285351574762281518688602567904961558272877066055400173491488614346360994257272375437606551977163750755864954816047193831545421773211294685919877761865538513228821668844973276605933520350515664190404072535161664550452112723575218908323229316580060561114530884527524790249292790071581205378156873751122103383086888901446910052825698792467277540041838446611594999065043892493319854647961841630695021513498295037254349947626552194036470551679704304427381681786274389693652719941250307959927705800750620159412975284155846854404889062594528763844630422504592211328762993964337765121555220795771893480703504125993623874574376788902679117488360378957494174291473635326495467881537784340819009800845940876629577995540215809992302279064360274733494467397868824241296884178138438184416339437483535512647247215817918075751401466287556477380703229939248729069948767692503263865759999726955786292438163741235857571361804814938676881598879824430161149406696781653057240327430993330973733776679416405180319116765935910355312911932936228449426331338973281723669213211047567594631557501705776693573115756260467351855227966771067311530570194765254072693849219330377507335916367692181823429955566026660606745308773510278521052088934524783545951759401077718314627186615611191884305080678780869669959452430989922724584965560450135812692543132102432918645523592783292691216113450196887306212526764690632485015083712456146984582491974881758495037219286866594340732399746331602107485833340915860537844291180690116880545062361242719033178874044122301028622650660678833320173435662070909266472785031760983572055783760069996525784009218466806126406589037113407080227800450399162979734307446885675631744354653159276600972202952995533745980294034105028023814028392532326025980660999018143154008966105382889370739686320788415130364330961580395173019890575173688596879435251781015932010968613145247636680701378707505671625740055333314166474459240928163496388626773983497761786287061398517262010816751062452838527612945218234277817463152557476763334575251974081123754980010411867822657366616347289918770112671693858246074929537804579462276422580442677898146675102696405133192441511650656189786927812659317801043285664271190339601330975574773018446593204969945940296167117650504252987250054279080140542834252571633873547971876309521955975487935920930581236600224357795509773675870232799241731345101503186300392468680890999261618549802754139076453968949255288269306700311729758595668483911839468270861437877042118373516019214679715813143407124118457943422023171408862503399752209965667023952826101281143379725919634928368697843330687234842500726704696330216656701337364597038040100043453956265575030258094998002775500892908795318797836330503021082886992291567904646218094044603282555148158887037022799543950738508077446161715327885363573711601811846583689775116735783859546040426825799013053746556992394370772804964351073021459029470803354703682409650667323603846159179430318175753418998794838695581100358872743350063197649860821474017180599707625602654413680569576692236955452849739291860509808973289559129143054453948247483836732663087359574023829879219933693521620620358309966363910642825466271101816298787589882497807880479366036804444150977465993524239860956068239698625901761847705353510623726094501888613265559969356616273095428889891397050934958193501095090431943967888020772526259671703550425622851470681764919645936698346247629814659031052194805554212358029971979888679485148103807958087547450575735586093433331127183544268719168021360698249727588713078164037406469151351518173201317154810113678658619458214392527468683584466817272978556917925782734915088310168605736339935705455141835632838331955684820921291490475394277333324605444584392923525374367546592779006227443226090767445297429168628621037603397643344788814092334966743229252276154319370540774039360838265451392507980219325141513669551470902572127451490292269708653543469199788930987411738192038955127460836110826218477067358584606014868027860531535240435244915003675602165838512318122553396511149969779105305671055853932595630819686633903881072093753203766270639015135282435618886978133694767985257615843813263029962370129508557665710010850609011493045975997054885963386315997681320049330320517322168096047481112981099421426367602205040321750884365753641806056123368075455818754585787341173996380113846700215690761341187918748924927362994538982706255883198127645100648631004222309100066918411564082441105126599870646755479183758803103618861470300451564645726433917952219816242281598154568615794683939076906867307094508413117423117064827007102480521644214727029994188066256746453040282418571495682046248306934860728503060086769653812826773742046665471500353535618210263647154927764760616525738641230725062150092332496412646812197583824191476938594435625602928468339570721218615330263835572475665306926637717348967540348745259218065070157647557738929451515565740244650017416491224920257645584229713311724408109915417550385338282145018229283256411529941799951582572356775665494231793475788071630238531746129466023737574868948649711835986330057304768960585996419932572703642896679246255632608035545735036070726980251878863925655110668939369227502643392214798524581542440918960809654044191671851589645651667516116716049191433742624113339291878619678126584000638204290790129679617829996750758662896548336670534083299322893522109520691429380115734195980757447338037087692606727181718972544175886128416909016309091880948459522359234148637019860523432744314189432907825156055406835950803903887563864099942577197148494845940551436576653496624371001149763116458810270145767216323560764144691088619423195134657975898094334769401245908225026303528670403989779319132825113077213963803294481437093021267712558870459390682605411121074107817794414337514269299025599128252005895689677325483955498362430284390023884502215721636897450096965344780693345872537068597811393895037187272753962241437834910522273186270528175152184802420881490292884714507235116562637429016264584221151098276744930959622903485291650665147689102058644227676402369352851163658178947369078008342833922350102600598832883243440947474159631278706832478308996658292563583787607632031610965071003768569332448278133288499970296810881719968668802654864828899114825532276736862439571531074626426558382041842607417654808441488381509002500890722200647720365568069184449832916171252866765473911104971746916564462417059852034214722824519076061030240717096362313630354264999790175044648860305047290188513145104849787905336801870309446073929136026474052035687913272541217129464603371458083746560160172251473774882304552958791324906999047130735319738054878926761956500267127696293754988292529934567517094642251141724991573166760766175661637231514203221371756063671296681590884034706997068429264554045402808519980972397379037816301275925325294721996629161157141856416031287818165989707552350838778082560086792265465907664817757538041340213327456428220104028007839768939468443004775614828275241372744404745271647732160806362815385901549832205909078543168080461208791137245181317171703672816682993669990755079974056354846393276766619161721091759516191010984085046078201852403425131096222789576984127244819642655461791175908548006023963056799950183278374317700822492589095358533102215293250200464291645188507285917420626358170193259191059665436108448901151318797671603691013323516875426065727891434164825190994736270884474055859574936147960440086164825270550212412416094031610680769653825858236655143214227993084831445531081135916744784274428330286278545249766866231668863344468195359080228196056089698480549092920057564895830501578394833712522578983281345390458857784632348813804739560273215289567558439077029464224023391396586383254105527699911986109061405232862356094373579161983484543052945304988662232408657340721118519691436813626794501004188586301197878540451972368021330384298580997837447229938748627875879024520055166039311234608498001581635003302890346625120370488636770923887416592453315147075479119979432366608401284070967699023211605211779174066130142174409166562875873009780812572748161431086004650470345772069062400820098766047006938745940715667633263089087273818323778381055737960695997118540401694309347104281561620603518573718354563458706557628134172050536099670377070403953575375135668004916936769549535723257888762910299227682818627584030325024394673976176029987858232568460092377534794043518779077939794529083716735844018671161864004742968428418105048283366336488090400457878174870349313086514064600316100470266235972132367123377785680367977864175932827645693531004461989231152315512605191972383461662152763862990360102030704091256566646010262673824799052532762720488777113733872094499821164072404719086442213907587701326621886005077106749591185166739451882084956175700017929935080513619254279849406611730791956552226806245015637047712148634254698756879293374607676742439530651525437044356854189245776718004072675036331104133172403749202087833032831577184977440033672012506797266045569414960699085921906564164255198787211483762844250444225070128723976524722532408343720003542471504868785409194274662937884617053407736434562557276638713014324139761299973406968235059847131719188660110402058615995932387661729792388184207707566219807670158773787315230578649398068932391148205089827807648066052599527782402816459693193885910728240987970039261061178422445324868896164711634923583446167686478856372249708004781393060527643257773723454679850261341858529958891189896740274904696620764785344754177848606214506925379135974687086141238620435980753701888669668941492398915577065182099969962381575881934534905428715338504572799672500064320772124831991846810536584787398336700493352017228485987123167188428862656781477283251416605669482753858153483888946169387464137219259401979789099988633451870464147210276969555697733525253947943462411463968809391819952344740547271487294461665927048141703457526066857949107101097945962700548431298784225830895056446958083539715778388931796758381271379548529800423286066675345643951917398830091858431214554886411996917886018916653466392847451368301393748068130442491623552770364774570606927562120347349080178523728475714468794147605177551781444502674570325067620113587242454800746506636119215851659064257368406159183864884164883623959976367824758696804356159828224383700418112546182966204153040693794761507794856056060265020299532809689932304991215121131649239411443566538761538711253724740290076429101833253498045487833551240234706907038169220656299168594318795497111995205571468463418301390554232559837085881865721142136775454814163332531226733786458052933907759081689685224813200119950247167094173897062204856401022546122089800454376968621868905542447774471624185217448483870930198481432718225100500688914805313008091577534535828518614128410935730589098100896901548203820095276561270004418296633284696008554175667479806443521233933276340639819325571291681854617299453196071094571341369416298547971834667748246665266558176151540074657543517386624978018978284929204601864381684748949041408598212445752578326909071478408169206114176832916166996734354988392876852765043335098788347656161933617159568659546828777639624756101800031392274714242825311188785599473970359682411447886699802898990958685721153073284185188051917429948066145109003429594555603813090308863499496943898023653992552930381360295057802051094106732583383607303033967400413662535896839913631010583808600156588309377575808238991676253992627754753984421570441393246628239650660131740760574109528430892505881589790435153401512330446433774742327060513083847994113795170246635415657533999297688505038106205771177611754798494496018831225010741557429486276202225795401385630480460319351895782824073329309462691993279052151723027576838460326263141401941954865553393718291647807564859652133785789911724149790097601554879256168944665572428530732465881248334203073494520590280584041052926786889185654263010816532835502417579539623754402562125972822656034196074470194201995989881201947671936008629472770885637493592076382879432400592649007725779480538389157337754185820873603599176678521135901104316504015995854856831090934821731132752017851376799247532919688884914439671581984484811823779241987321202418359529735190517907823672983496917213863170024815107194534866880512312811439657388363305622053372744331212193326531483785611392296749983986977040998381550261605310228858452022853629458936491318138507225154764083521038103742559360396106171169505716246129333368615180176426675093987370680805749918387076601978256113838219821247995690424467212304884623221931970035028887224889361487632741098376347797455835231773669871651747002428986293916982744549680878330402938946919815234452982239880476944760567522722411777192356389338357033813755081794458431199700678803867300653749048562069115868788411581203225725853967913400606473963365952056433123023387644015630568183274937349922729679951525622570715844606398954125665949004776539758981517362473649426593344515600842091007081601648426405954987483156637710267359952001564057270462219425699765496474947833560016101111120375723281459988546326313643670062241943940861713959504011566047815561654581684625546814472196402069491979648162121644793677235899511835465232799042392577543843339099125012049105940275615483951280309104416169782033213590767455789665320284907495201484457952279644648100256666038755875017467358128834797922854833372147120729515082610617308122856183177086014598639264783803204736731391866254284063479220383387479445228164344022448692149222541123317866348171606069693769215459063779905705978147911969437857443951919848428692679740324021106646937615575011761684388932698673152855577918198985273306697147076002928868926509745141576930616099062869836328511064348157358604189821610275925192786619825025403498574822037840057626528928421866519617388291115286685100080489762787795399289932083625533162151622553172558366769268571935099806924361882828437887913174925254108718768585028665523137342716603361772521398057033727017498718433875655302614967407131471554419798102810964860865547039933704981047563421832148900307934577977831714476736567190270663307068851304129389149507851857806619099478726042114530091347263538309474396653867591266212641086914166730949714941292030327639981758198370755080429356603659996269197398581920336541676519303912323202146578337598867191818386471038499755473659681704387447465434227633981469657730506234432372636745873659976419000754800088485263825875554281308010630675840437619374295041545657551030838608385106789380903015783151270814302981280385488054461881384346971208484950387768182356814137916151282923143962785951551114230011420791698357566252588962092591876909142354007812680734289242218583542108124578421080844562127046246733646148468703125844034640382341312393794479525189524190908296771139731228469069925393139073845175859009982257203724591945569600239694432450549388552551299126569066274809671002637776920388510472480785845990573123387271382333502970189545616708742235338213471371129681900183624715507669597742991176098512846728116776773056826347938798720453887044923744035339078112019659340148377004738454467163063879835110986421512788532980551646475587511249243585513576436156084647175575981468328605521428319992982968345549073616483396821268185165807129599305417765829787028985645353785802711177113519576777966312823037453660389251824453488587645849051767435989489393279291183585135599584505616931892540274365203505156727200471858233465406001858456143101276980410211242783930048630344704550978317437923864823480479065584009204926641777451975033656709025866749913337187263552431980540284505564384505788846549059382414780099825524939191795853767610770801043086359220335496248450197686596802041614616876957540811977542721885271951706597294368800735620725365210324606241791753224653261767164205630604675042259975914008403238771734712479799093014129493138693542870335323708980561956735065765272831426628307719404578605893883483226155438835785645047330646718183335028039957390051301622908102725107345749944508496507898308659169021524362412772107239843595090639933852750328126999678233731260687240792117750433772789079578141113683099136644851649524593422980399235699048841437605780617831635909750516081447131267955304283488903379407858882953249444279303121358616124146973561232150812331003079370387673370460529315149113483152739182625328709814824220873759753367920299557171914489661911102100173632666230798290775794162714200481594128895529066234626203264173286507569626663926783867489555759428016195407046908995138016208591705154220540630396314725405355544021996527455301371711329547985891098505922707032461098796515501879819850175050856050293631154993259097713901480786079042652190880801270562632435266092918058752655153053852545466207306050394336903365843500467696703228020043700376455203872480427406132574351809632266515811929825457645876832876494275396338847979693018967963396842996948543023147201871615611918815340480536302006303457318929699756071305485235733863379622544677211952405623808775880061836766705653562610352071032670096228247595061777777960954075929198274880828493502988222272222191851136303080228982203754938659956314967130381111866501752928239413702370614156636576043807248146050492472138653834469384989247555961918904920610418971289933161276661975895308536879538121655088977644874133089683827952218078139320942261857465645677746930221842399997192656801140972721179729534858575389610023294711534805526520084528805546046433339475857746040278406518154642812201735434661388125561824009618752146231964940539628522946134303591635193545392301849391751442504216733689491799617993049582942340767661899345243615184840444730271659705897150282856289311165036256438748478957313225170028444110590315261522425960108390425962758401038857031576580044914539290006008855827012065436035897732476295147872895514639646198028936331619715038937532803804965233753307711724100857165795232860219215161391014240831363998653898110156914937766170397848423718679548380900244540440574325279705237987069156407770623321452203167627135356202175912080232416247598840699423424648926075436167359487981027534451909641805654000251871866199507373615370921758691984772792679403662639422552985526570030664772544439123371606899345374410039249159954195968377568629131835838303992417746195064734049244909151149483413543408528258495050786993016993513243469661214123712954943786007066320639696368727187231524407815652119264315701311644606962979344944808979629984145763174442683005338095883727361655782481865116178962702118063184294234928708567232972446697205668424957255855464096319161774520258574403690601005121566189742859848305841844224061062835331371194966337247226417924458120245328856980002571025224162999374917610862237673101910686547031745213287563270917523330914244088368091459865228312975256475954214964429743910118397646353434641031512684289314478881025043570713126592184422172115951352869403064938079942733955906252037517190213463425262519600586343630034586660624983703376669853603028866472733778722578544981649522786554213849933179799263981834491473300643911528383989192630686586191398856414332429833800580396204432058496707534765564116317090495196646408468999242102432272384213499298567703080942461988225155093292364498479165418883055075651377150991673208264794401502832423889102006602969374740560482040307717361449028265395289981967970858555603626885081359107388398949672717919140217948982455302297450317094175956090553027118975735476157290094464677170225082339082498062531143466631049101096995482778500616054150579260518122648699658816532425301950912334026393757255303536206073899277831439244795677671082689033875013999214522282500571449992783266574618663729543102297261508492861965355545639505061691991924772984829647211181964785419249810397696153481834440380261801621868887030678635654733937930627292034000343515973994297986029826147905919533459255429958106867543390063558948547255455399106200084713221504316971027433816539788424550397997566805956786222841383196071209228690547695486920898766376734296512818484599097271587666681005004053462152027425925638097515643840416698317196320556940771374628149950478786845369994782039597860152540278955875522741403125256981712052118110296911969215645585057944284002481613270973905265733642200135762409544874860011809922720927960666910219189318604508395627914001068514905670527261083622470784617534395319010657757931425188178031114845520555906737917735826350748728639764681807493412384800206517092125121411595843833455067690126357977551030288644149004297580526659767106845600083963582275028892294884983816797390058577307642227778361583262517193423431283944812233489090650970704616347545811167088523037821197780942488607451173223913096536352278636233378801790744564279880340911781814583900309989534451084158780805122991592052692447133795630427114411393607871677625690154962349691408403333829257420791023289206908485740293056667275654614983743734342185404879920133895263751420556761592683518668307396889319332972593417707628788514452702258779421850725763445808273542996062750777799221017310850084861477875414544140150529416641605283641113687658092543376068675215784519005794963833102432147854288360818734534705166832624828745623344638339956927139947506909805294107783418350997192441383976452455445586707032253415197306833377714434503382925002934984023122585793362527772645567514223702260158238960095286554716154820401506223847482510377355527585740580183227923565437244167540027027063610906218314799291829780695630532308004954051895093245040848920617345806819569979598498794123368532726016279457181640068766676404546221910359224990338072000009320432029951583357152041241861242791448489080419629123418931633957633929478944133056094174799592842455489308175948788978524754962480662096578305241323533771896414871171241715738317059898946943187229516288469725624139446015882828828042962047592800664539953687710858826561238239406886159512429626728522753966323323751146636326519128331089244665364132825161985396303488725323550970324681510264769175795145697131509096383732273367359693529075299775418696967412027382346319433925212682461189458954895116222961924323930898591976375636498953502355271733697536916840938098246722333387827390567137082954842367906355599103436345948852189704382678221615870544470821297637177096354863302755479166781132930033774101496343093440463765287903278359438496158722361890655197662190501203709372880461668909305265590767345882605719345184906637725289279141598139688833284842256892259861640002340317106430027096489785492706115663552693465108877604668062576797097489466899158964433855279486874766212043187770560632094572358283971792773711277213663571703952015688960229224991566989834013405288067127990204208747258319577040053512501275217179963578027831851517792808827957650689510694655923165949685458283777178308567352097243100652527511306661143019646281182625479430981579124962082504077578956818411003745981075810702358668747395153182685389618607768273338690161655141451572575899329509470441936860561652733552353482639340737313480482158388427891957409882134032631291707784254873611984062558801448646962066657365170246633704864566990536337322654866756470095470629752218297849037313529158429942548500609461827934585061539991647136572871478585263127075950683499005481635231041041597569636585418507445644486479303380507777120885405024087480641247808098885203489150476897497114636421066710786188614985902611502325678173306121781424096911651065149389541744802660972460670578019827305529423422909949063725323430371065502719990839920735929321997419855432978070009524647750326940268701852605283408136517602083339949973422096693309952904758063369194381767574590529017621645086323147451819509153589908299950854198057731548483949972066585726175506221096702955597285002512730368654912924557252147736967704409433037804150056310672411998347822495788135168186504274299568268508274977436946321781409717300901397748565228017520044267044982995483178077782424255334196509928173146735063568103866833327499400698104742803602267342432217312270824009050474190958373192343886853195760324311253253843205267113466117420751195957164089793565003960345862462384916129874028097264843176633040338479448609751648932034334683539740933501645580969418785568293879431947055432837242563500023178594240106763421580812659718773105252244349460101337925176624083898287973998565873045898806773592884021586774955144402951781046318321697853683216619339927069874758469933418370998862762097969299114802018368595503306941891454604847886775664063973648180225788965104102735049380621782594540872931068135171646245363780243529972794126384190338252530343589544424235357261915606186575699454340933958040168902795725384139226780841353395210506423192676598223110410887038071859459695017735019828383977634524201241152174083144522800064220899449800338955749582506657402761885481862885793318654366567410042330774197309646159143102149425870900408591797776049520698631055925898616679784872465729358942901969320159663329120692059751286952334007133178948774491645807015110689509826796808857721736065824012830131713557287043036490562682635976311927410228535643665021719559695209065919814059754040364724901796895107304166761518029607467540556247499203571274935850465690095730605595636280471365056208715056999758368616336706146482977543085058124994674735128811271463863426492780857010687458856319958709101024202738152240735538984988105067269855439171814502485173463185495411903389351215722306746189944926146556050777041479787934750414354465996750914294004720618588723008355391287461391594055336675224909016245541369612726558407582089154086436978228971924526892954153764079469897687376719543234783878560861753288683471794169188621181170331066334032260456784200176831022692611586246935925623894830852517969204193430898307353536913761165688896798953599075822628283501222401620245034515818044079859521095877554826620581077972663967669351028860561962170713332439115871780526519863068940576004004283906930516561802712036502328522582539531155967230177764504802842371217195453058379359366177188618481827559809370734832193715570840079866385132788181910937876537707702259624006609182615535990920319058975584258874998570839769453173874017954326142316648278391828774137931376125525377942200205155416337900742766842741829428556601554190080399579954078858884680768231842758611466762648648320775349617418091871237946209506363102655484485962187928961249125715607979579557329438546470708365151696174123640122148125691201713841535042905958255350317872816692686021105450329360670665572328675348429052104418277671601746565441851803986645403064072724342891569220271391038955362732643864676587349240646334609409458011675059711812674080529341164309639945416441342998129362863676332407423141094428889590954228456830566368149070358196029379775123910115044834922728009510085474768719345813099607164470116252223221338869113918320331878876445663685356239375823930252195521747973297621125522106540613175604938987896720303700945537869865460236063390629725585130946471848563385963327283555454041165093227399622256591715084416470379658959130337551604707953390269018027410032525562003216345391492363749346815396609429913027770814614092540969867201194590785870508554432022884701850213790594501160906000436809003787936747432598344856680903950297325687499288068371538775497744216067363960717581959593310262723557963195509073945572557207330056784623429883308497540460127544508915525391192887035974482504009440366629822799659480839514105533401239335145553981692588199087899069463033535645219740623507878088543401798569140976847255334961243127444696264333288107847869111065939888136677011868941719017095779817831490275384965596554726691596031625941015532466850160129797019450223994745876968214227379338715348579986554864687377275453177965707217312589088795576033501320939544194189395896116710418773541601370127965014692503117251669746767534332729134498191991196030899419997749540331894841145159140304996200776259319342164276395319632666240462727903360478197098735681823287351741180004468497095343426899156624656714080678134846807619233819981748975754383942678720960047292631578706181454909034849178152288054595160826385071105165501040320826116967707939551841327464712800884934226490326208142987853316426144990489560475477841775960428738124513897885136108222327939794711782614816582146501523103755628235997876575278878114614336986986561788144453626903600165739063162698806286517823466576991285341297441438297281962107466798921956618573114207520380437990996606606003809772941805354706689927425702920277541242950854649411551147828469753120491486437157591946808498802679286311137403049467551991034852435294039296834891396387546632079911387015370905110731302990869668455862956899206466876803288714122766093134128696229236800935787421291895125246833997831402597149059594348717756733655460728604959528542498103727687492664486527751291043681201837168587777373144225127469485089361428443018852880366989460390521878400878887074860777353017865299178143105559760221650138625408361795953014719151073291162056549810094394934677477515356802032269264712938630182480686085864534855924193617551706794427099840721642579447973038380436859258173980752328521432471738545216202272009771059095463870780647676787082177591183072377318238502404204999034623501260024239559429041210447600823094639341032887643756015000595413322000227110584824446426044799710681738535866273491721861861004695584304331671719401996400917140943995753346129976777785415598093385220643106603021578815963239063563785920416303249212620414852788817312334202836534389437093403612600146451027107029930726238129890531214611292342280504116559429053018437351142762527312001084854079244963141882628651664918758382127060391314911095910738841402355632352331995720189028799972161148766226925103994094784843401949941267978320215014040504939249744369466272036185568006074621521332095552960440047414006643204744309436734384467604729543607620165039306398547741446381460173144345553385012659609601046809789346501120642019645853223729363310157416264115723251938054030633369900756677082907523091835869451260273163936196597362878671957287140411251921874929476087282259945833985480966871981721688348070945172737110027362289829712863472732949570151393516123199913587373783815039823259315148247292950410662558481206816793442766823392940007714723787563538095634473185100668172722812021480846487941318137610918600237918157049679239683516160712394818503365161546518234693337240032620541247895998524509603766680979461521774592530748906880566271495727517273750416096018252629661339682652606156491143699121844541112972736415558576170941246326400404588337669803723107255485116795007866393511900742214125846215383293889528911467467788755270983368410286292990764261759125759769398298973066545869208942834828856863243045854723248225175750495969829349441719720994314149905752672955207837587532623292782532491890358028644795457155021335122970429218673990797702898141962035105713517684948753826174981460131388716141855366871329094125908548286442713546310220855835354061015228449645826668241756301953887755135790533456093925201745683990813890766222022355822222048591430650416610044370966997288631922165614551524767385128185432770762215880057242895639649404007938670731079024418868206927342627083325743245950881471182848296286757245383123396919159965114632599246204642846566636121529590210358071439975774804792426309965811256781303424545613292445864127337176447088847700136621672736365338695333365679142768066308391852142147184628064575973422915671460846829545041032498536125509127889884003052040121271428786175460912694041703253123382822365274085961700542150578904447426182216114151617492247343306558254706306819692182593692466671134751301708699117215082362558396074609237744913291741916311183889315453815534272881874361314931784054475951146597835571732558696973095722776618377083947341882177566354030961086462286955775090465749493223819393107438228834626224204081399081315821138304411233288303688448816303728335323810192494329703904305117535604252946507163148723088539580961093586089450228161230475864035161793130627813330545650007285866642590307031649342345402663499703496021631404774929737393539496323161942434620326390254391409758257755265003421440028560873863883987813597726694607546066150012674089208538668172237716091662086879673172105096591719522851045259519330634549159261709993355963657036852457109060283328389098212016217018057525297769166186277589488670934127073366851653202022442570128861562742499127623871354257997952673074406796308251777153947514704758881273013809012930137693740766959237004073933865180372676395957390949845130965095845356533331769294656778420193814385108418387067077027994640293159819745301797345186438980113625351292524715878699342153461062570570621298640069062897202533929615490597491803426338134288960178139533167383732318260127392583777567082981467596329906332081770569102320490888997277658799593876532237973502520380060918631440814990816818337484429931717378106300773582336073492928175066312479767640737355446448560173532870757067127717429302261124959461975686755108047940436725690060678154838047656687363171926130836746635878456715572599551141838970563638013327073496647567872046961110906672529517226437426837223553607969407952926474261667788795806865395096129596799536491649555752096939523226127733516770680387713040698854958399051495656152088360376746751674865386420856917807323690566783798147550148329481494942870996780854293746242723547028664668855159426590646383285899702347325370695963880067599306737996578116131087345351725917887574629110059471059096997848024150149769266144614846831228638619123149319344971139123099158361006647254714553894491464716047278104871792538867047336342923114928723605670293001862488943271527828483354605335190094707110222089457953754220600371547510859668445204657916282653227379355699970595228232979376569250434223989039867853347761669856575380185148814995124393337844593531400536656586679378180835885771879876684645951478268461030956917354789094869682092701998218482177995106918433544266955432015532436178544552254571810707475992795053373079726442406176866835844096203999560244351501300929060647503521481540808359647942878269665270449512080414782600587308123899519432560008613465962637580290100677525821483155519681628032906847941084490412022082825035637435215446214043666607782815991919891964168317926973731503316922209029387945930006013997211507299753283156427112460901563508638701773275694070855647332318869924164907956577943781787643309099995114345518909263148109998688937860032426769356378052167752281678575312894587363926202044917634410119581856378264852560131904173425779166456444648553078929554545455078016070077698782440586189687212619969535545475171363707943292408313158610501507299371395983704669813734669322874110819297415747585987383845568262506950962059537962151633172780891056791155621228143477704408104739525110097751026337854902876665952601027039577354958239448176885900203802709525142508226206226429883248127783386737232991014442865183983539649963608638754892549104667930062540648839488708230199080454677993594364592358611956596200840553814723947371597268177578628089598528526925231433961081654256892392024563981629860920567531626555407642231267354093904527315521124074971229107082696410111373911987011519831030787689153040251319437487936439775651823071281573981779982062524603613225384248973330407996950377473279609682209839029607078995239118940782411167732133924280262859759626180243057299276447113553721651553606512537975570798987810180552448266720534129236589867957123076959574518927210518325597864372840468228817439398613729897859384728612087339106420463803330572892392050618535730939966916335139594554653029886903228876311151166806016354986644369409038313230965795039522438335022280350272314906583243783940106697550217376950612621152144413179659709337508219435966523427864380457663142884404317481214361670381282003361437252220964122666967013518745740327069869323711359549839043656375494983127126319686288229383880519611095340392456156316697453124269988741059745757710788245543560409475110266217042895234206649542191729743817515949266402866822928716408465903140592901633928730815050301475697167138000813072356578071253337552841638071136758721209484824807705553048327658640844393574241927531789671380749355241460496258700486412647639326918664789711442566193059186559576704864481542485550961811965487838288406318429241811338729921990070290860207301144757660556977966257189446447631457848894907693222594578616230416992813102893565660495307490998337038561158784020248962378400968953843785556499840266224343272327708391485270425217602491796028834669445032558173116727341471323420534287379493919847664300104470170075638495281290681021150649585674463298052594908451086391789324972073992048464747873864679899584292847673518858607679704644765412908711017837375128898847731744737388509879296308421940203173985732973711458172809126097002948090664256695046534552844392142888267551037024066941600878762887451990728814918933984384761734911414910221088220607363023944030854294814381439592228642217746681689028563377492393096067176754559935639043530662525848630648607799441015813987372021610953769134252303660163082690898757764732104195159848329215858685789834430322712369518769980321862933901609323065657449526667827082836419441506518696127532579249753494341569483749402963145116096009934908072500172426540004648311892525429952411862000796080492762899526656114365192410333145842386364972723188054718333156991421746842819425375917636379349465807323706518917710237927559159970626204275590049775224591832567481599272406544360631763819491970237072003506215516556215694831805353581981247933314121267369669551125008862930646422382577473159651274173041785431018049933744162634344703065068776901158050929578247383594248535169645955068054733947644539837131294614072094300476732169050630455094876510795544601645925225304316845407552836940573645467995858370588763862889177368073905073666946825953298702400041835289484481514301239024895389318270068703174587859692435695440408933714853839321013791780762671878184678141062440997216359675653475185464801828170778183970702799964755715315483761848027671506880135658671917558285904077973571082051049994942279502520557610155832680896353823121293451336114028216361114980938770047035879483387635255850250113353752463633538915377810679593218951632805469873319716426651775036558574272860923323368590172085215600352045229841723961503751107104923813984028244856842268638392251613823622387919788554498491469913889634148654732826800914730813997608127446354607125621116721753019454773676839501884967141954916467705758315066593080587709799583786931596547952623792839180387556853781766536647976114556536223804012143752452924355247934754526176740778385497393002010274056293252950409440615884664142092062562855302119729079023228380770318885209457372293620981938490480221166922757637549012428436781522667342566377708804637623067678973534482066648350020314824698843451223711043307910787809789152009042611713507698207917538728450672518222414990907427457062903649720911116470565402322104936266845319726552778406734295827325766249844951616581048288362184331580565837248474375151123537460666697369312859714328754089719877263789062928191392598018422683958428271565692225172321086769883116814908370875839058323132161999202829092371560311879361046486827281103526813963602749989610965165673095482116872066161753360918455914963788276018316670481367909176378032580470712391235982284659876095660527706197421411443040725388067960595909098396243689420835683579454165653962130354209845700563635729363452352722041467331221278723704392964319600012586134829318825613513935105658239630327638402782777931768345604607194705245052090880164353623210130276544487406564586633795419714220373487019624486082536093158641280450847580968228785469117216862547255987594115118953297099690352486558693348707088681368099683470171408821211546622996951349746948933635174218199703909191590592875153623300293150665419880474706784299215794165686973849995401364515190084085064827115014968988208504370966893659044273983446589280195228871698162360065564900795574888958027048589562488522259405950649443317364955593688336623170470532988532411622216470014693211245716082281013365415139188993708544813755257186154913649344801642829876517342930044018091192735313719661701404442589330208497469761388327922788334441693397614583566642039269852815594991102827777280360555526899052007800685740805830808202639000074416193059880496195997416395788832383293427246215156236531402814900942455552908395882878940944395208090140069238457564514452843836588337023756298869357412286578929842927198669786001858752102464515975382565904871088666797398350753266230664057853153120600740895824829907118929177017131997525034550344061197497724933017963729544047096415507237726834154694702103614684057923473928115652066688169247576613650975721575496116456498760923694180920355588535800195881137707323808353604637181968194759355463256930476517978624457120747220759840889948904737637681283268314956369557968136789951617538700418451974701554023719515349349400045872965855838881797796003202761827954245139525836148454864660997919080250655467090090261044770598044261550714622548326277530676595396950347536567320023115790220890766682485422279840668131263572334249715175378030185519586616511525970870097836555187050471148257190388724583141679374909589713975565378770828845344064840595016558238196926697628164808855425090687024668162386936447023831149966653910854244134008954886097221321125111890725730887862027733796115226762809044254537798151922141219466980848926128803380143759361035927649779782580258448312170826618506244942477617720153655098571436342169570627000289997702322145580711547165202943163648837270039653155760785635726671516317938713220696621812826201309542120904937819856001690498170564459809414370177526103431339569889140937809757157905007863204456637845310646085481468218410989967237370567703981672789783763034719619778567137915534193158327400163547279600411055481463849748579340017718554079438070086011241800803688198950806888839794154447100422381056940693109700813182660662735534567829286777728145752268331643246542727290393757788913327956890954121884250918154658870867641037946399616629807040950670457340236258447830610087622502557602501442443870742062610016432736918347325006474573975591391616675173046367788960129141792082822874380128398434815461700117041684480544919313860473253840704739439434943720450466453206715609305213280458691562323972351782383192072330407188750268239962649884407635107193125841147019104385404867118053494460863111677070515200553983679799546114270236016970407586486326837755306225565202931788564045941184398808508480563022213479457208650513035453718719213704508635055585406678814800003878026548544875660811106650292998549870375986983191780698713182643375368989630689071863027526054191799112791789260848451926201740099027639096400116319616142154787491554754419644577147319947075589190154029069361601988107701148766924166767239371259608553915327189940161122398096222655412711655951973988215394622183727271836148332246580085238149282720875507019934070682506783804313534035764032564847962817548269802536889553450972814983872346325849533395586029443427353827373320756008162451213288746787624450426219010510285109917000568894699617224643392719221608138568883357375108670182463866209353110080938056425454031981942553874846714920215418246697365911795648643719747106858822463810446206693336442517313709027348258112880189930474348999701176091861287029767575515547683000990897282688192759098558088514344897796533963916918661867213983909203826536659229320220905273448111765224733319804663432670525134062606616151120317708439421648561259815581262450441988836227001116888169185910780585146388966361282428702049820565137469349896361662469909692662341892499112633658942928173651673828857304238013029722823547241504342927494176752061714820340687514149502579499935548152681673733464037783131509357185952067217686529994818089633889684174195515481616653561329556574813059712960371215795643342950640020342553547348140390542467337033091697103487973079160843371452765676133470669404924523905374175037333762874687934121230702194077133390266525810953909734009499655422240104966839251853607995323775547042334612770588230866795073458062625539495470424469051019585696929523939175570708835575387566973770266673538125746128543489370046228067976111168848812283430718365740872496988748122131620636905961529379736009448910119027906378273026977866120726430987889296585129649724405549756616971812353485005937857146722256494211093428293044171494298917213288186898864308644163682481782239863530822789841225084275068697653558786677796393173131637511442851938160663512665400976090657297297544865582461407947266250718667010337146749935708230767178514904074069832319263890470309910298107556209017589272646435442832385719318936193369681198934362318495163015796482594530676206639120925852201662407900979918743763783742827334723013918263138685974727969036437313944179832503308464701863171862496752863842947961568365921779959838687884372059398041410631489800561595236497868174033294088703531386298400364523271984249164269839626823688005091447562763522489801684671366120067037377297143992523022583158726641193817508445791387387856581438397414920337924132096626602087617992589675089819099981750624036668424559179840746226254426308457215145096455873796171854889794761558254628589570035587574880602080937937614334425863702272724933237386226889883460672415576415854819967269280548743757132956177897461729240342054002890805860461599218126534370481041929126750958313921471036136368863314406092244182436089081058453777017007217791317126929150402061634118675747540780526093719966864096875785373866280023564015403312213551204906996486365776898608231667196863050310525437800230688684977000790969615931056580741166693533514147514170960530949192979608318759882302586673365410668230472024211345380468582620400371011029371016338634317807143524357814980981070188567044136226545971129256125970263258249554831932435069087742251649954835086490185220509566726872870205800085513361358273004961530073097055795687486212777209019508640566271378325586628817586805283962515816347996578215873895599268098018477928886777193635104846549775161100213037068075028089352090055749117187791883790412736816534235706870330703010727512608408242588521207960680516693086683679651695600533417140110415211952026777262627569246378621203629231407016195570674391082419813949709487736649546214098811691256474728562084176734309042224055679911634554571276183062332452161984717830098014949104067503751199283123712917134132484824623899998933690543979064064504575125454457871927190157304371386628087638536405552059794755929014627600090525629474564167601133084685101481932897355087019445473430106964901997066097052179581089649381828876529128167175950371620993462801914750092670804539764058408940997083881335154545791354915095331992319780775188044703102731707288552789480875973254017016450187902474785100910032793544669972583109386936206229173748361424106876084393915898470687906636523546410335452415997923468404125414429132815438086195898461730093196861155663067590157444535888666773464828264167456555024586817568117088126796087602152400372759060378152483924901053070205746372715483466316394863441301220936112927937206936011421023422017562725060100113489139023755351146154529729272033537442510076552966593626868772226224270147368422734898442363798426954027472376657022104461437896246753352136380750060942845344445996694451415587568650272209365624647187142262919442115262203406060778676351247432025619514932040705473612961153710019876680991602520272539827355152704693310294728773671205630272167912751746682869728960398807340248886563610186761964559149514137193408294679273872902611084055203174341668219411099319481873882458237428955537325906720610316767463321391469333842747382419006511923323734534582912563040283909583214403005609711483586588654720372473555562224157556735031080614805803481804229441119775987061915256865871721188000227089280503328538978423119541934920400158077853274703419294664132062533405328112559836396466973434771843325784897048283087819913298078943170318440092116166500623291822370676309761739927243047981501525845257850857681637944145067265657527980981770163834966197674693490557751330283574555480704490761185206697864816781005479673096773095482455395412991481860103290918555290801258262499796449265265090136461929692138959355311825736590648373702840852969226790922807946678439272579617603585623644627926316288907419986407307946205468613177617066294084373892829611611409497251843626519350944447963065068399665399872064391349644142023951045059396822732920036654605076453636449841052213475029375491887619157507731865756028238355028742436447574099659969271071438513711640457340480975850563515695434985824036322011267800883344054619320512707617447081302456638901939145829589184141604213585244447018131472438214955047640212526090654420339647730629177807989838554737487370158778067247122040452588339748097717192436985611572713335507367450312700729720842080611569704401680666345760053881102883601858525373675439077234003647392088268571584938526219665354054003364208392572987260836189973987547171002863899795922038046152296473685630711524274500908983159988032452547464918168289536422688424803885078686330522207907355949511749038977604501176369016111962504418452839777942847288061462596035659332075212185965520103253241236948285677843698844288773402281433551941281281848226238277743326746696033454180711199773271776605275405346355991460724155896715847373069841441597063048439831839775510642780469941681972199165875536509780210586449963829813779242430642218547723712157710334254289636227638926634108096166801191381024169161639642929236706180337227482206664462759075929366225947004466373309478185223301629493089306830012301638972193387412492476381300347359471642388851554282013138753407556324844119371776857250376503433238983163118854811537387063772247173616805339819290343440280382621116933041121041181982333438469045794172165966128974892923250904101669280214027153308953320976856774370546163434367535647231865258920600604844513785230451276141560349451952614726047668544863263074897163699048879306126676474374483635009600465056457536536154406718042612236374890359684467610087487351874245510015135266175177187181750872441882545862096673317485985111793159897078746202831700569079670257728607698218695236440346816977825080620630887371869474066294710916073732940192317506204456055703734681007475543943239627004780308343356603084178906282656379791857051697982333986184396642993991167411273863041004750677263734943709193545200950150692546639608750460852886443101885194041882397573672496726730619947806886045214754674403206020945825262502716680472039577863132444491950968011365468615558308963287970096045703701196230680447880383383423016763376040357378308833256807439189565333691951484350212036353467794437474157873265507277114014596442281755321160100475351382049598805874414256143259899091863423566842206926409539776211071117561551001399676464409528062775870989664770877691119036497344941776955556688008654522550613912408663213873278434982586003077582714229390441594718462070098812457999581678142981590963521641368493746690410992555620530162201037783189723139119041692642784951422096377820182491474176326384530584637100584904967647722341062388541294747423580888552816156283279446972745504720154742663194813769487293008269378757754499846803419562302982600930887492021686016027411157348004635646995552183703569818819527046324569805888740751792493950291041561394992849156848599759260058542904985915809898703868266773737852800765670154063231400255975271727524809457443763830241623802624904258346099524923312573405994063059635411218776201563529192569107579325508933410679393053437519181690067721174469050453862968381993018184772033962447294098862631982588775385816766237257179167658763671601738853246090911907097461771089853086354773565099853705734063107938816474288268822939513070387502532174154034204650739760132652906965358201835249037579218503309003443792636816746584430769526916284079343367840271135517023351755144998357501879061196379181283881766651773719455657703800482037621765545278502573543570567863103369656923992281101180673069144794855418989626533723992562546278183963638492050802341302629329095711757328180237769133325324404154041899973763252264471720688834870614435388820000921893420588346313190201178686050706017425056958337218843060879576142288767949098407143251914833339386906975825256545954659329142237894051960546117436325073700932322917842542452189210853627463427894893666621255219552864554263121613551870059339763978325581635615926201963610732414891344150839305839015662381801826182643669001805635947805425862901014773905430628689504679572054345891181714871762317806135979748625648978562958306019103350660028116799334579239930304705617101386227686921935491494516512210606026190480716136332682299731418053863498678827489436820304481044397355870299804603192786961539415691461286649688122418710097779859614651113360982646449745000073457318457705923232264856179557574292937194892642072825028688072449770713166415366586536865722951210684267261622675286991178598839228955659135090849218290112456958686928920269491817918056331718593154357347029791901344114397885376012786394139726663633672199119159610634861664358487003404653814662685520669909472932832579593278689030492594429647766431628250710506525371842087625066230098184628145164527863519457949958816496288037883994080849922957122268489244621292414961655556929433274085070092680248717426717243174306143986193560607540606792715381998051339726820998878769632600552077728168454297706169746374918054195228445997741519561663260544362597906489733465552044374695489788117847273143944765888684741361940977802933667962239329588564667084284748274288565115192758393476504844256637919697677005972694948755574470685918309588085519777164130031330949194863839028391383466836815613490711973910561935038157596259897246800468443567552264044724674988422795861252602288113474062111667919336994802510853999487368906459312804897879044980816762959629120074367724819934391869476219737072721076589365897556473335360845295446885912169096420579413953768837370428979510847048663590824801038293620068179119372296556300357268646499775130555118725548025744793234619078323364557275213024102512781814876537413483886569780835896716043499885975615693731431890146029083329062733686749103541583693309975778440859487407860136805585228145903839503138876130529567022674158769671094850154591891044909779239722023726989001213949907808510636147996256382151305458095852690056938769097396895068877612220048481309588798667530005632462201708949680086507228703505963838240971065818191563943636920609905949602626309567544738228722867050823737120903241392716273190515467856650807888060371054676853845486708490149965835931893426921590446103855202406554957177000756286576728755893548086931968635854607738372744268991345766917562836275890849123456715048416972967068995346664715271380790789304759640020600835562713944690056735530122128685285190282557692426814490611517864290851408450829023083967497434042844184094362708073304696235740187406340057118800555414889255353767655863673961798009337712909311605568455955908891659930500431999181375599690278715939922945659289165102859154471285010998024505394268102463445907935097305893467642182936424036669138686253828347261009333530849968658810842121391079230938212990240860227141196513520331519856237811873083774622820245634109427443965134447324010056075883891497757514882805984365053549751073829467763562705571960691850598020920636719217524693976376367210956931623190406780022125589026177044345260983675754220097892774690019867381088438100532342423624355718332442840981311305629814934579173138872781963871773442625755489816724081228016518576465634958439422615200698411042843734838062904077014258105830015391194303315543328202027750408453400740082552041432694893653940151039142301882976806112908496312314276127719287287002480539635098892072241116519870429620933643451918033292003385318147127040172114257859425426624488090799145206507530048865916252112319094878880225272405819776526832444006420474947184918393658755173650691527767542476370073961123998176706580574593872725051058923209052193831333422275887482306091547482532766485902431017008314244068821406615187167023043230065139296103870099368053496817824595967242380668145993729498348899426329893315319411866819489960323441189027549801680317687618934784995263440766807938683471558529007912480554665596740507254623842709774663752016773921879488693829803646174648078250864585684678878893295625004015647405020729553495651442538580804605086733633154755943606031592153505514293484869434199493796706169602946739717049137696255748238897715446441567946992797923955719721314360422720941802675798945924830116033613533679900640336987933180037047700969646309446789695811139303373451205451256683280897569729580117391554984795047294628318613153973496837231500818865237757529983548738145595922185516808398647714598481772903560668077223277650301735050387896328827370598425302842295787660876259356357057771411860273317896324411309236253691227915676848004797344250753414493234396571245341406004469197311325203880175905025658898167299874231694750211412894853630351604121714095729988496207591069757744826923072041240036177794060136453806661885685413713723069629687452658411726027116231565436968677193367257649808657036452060923415077373798788611135396346469628953121610340566060939685769609710567032823674206692487288608366407723269296515947118704915535733088754262547555141497856176627083930521702828748007807124606742872097661162228589766370370181711996529446539910446095744649034110264419614486242345192175144573804235262268003538883143294836477507807577988508674046848416110716905554992535233053361863048900320290776812128061479927952792581235708685991113384315467322468662273656440088776524047180298500848672155722634586372285442728187633271897157917334109605123370201822795390542229533364309890148462259342769574027451889176592256267016704427217987324529967922250862942642108309984846182727740152250273298885306872404309346323918708795865731016793468220217940666286182671097948724019993651853862218657427156220283026629969305749702990302879379647043525831074299317992975782385700756221488086571225737795425475415415788966330586892091480847751076749044111190614672666382828945348063312738959757205434520673431669171950179179111421394985465366290025544873672284903269633523361100657178468893604566510605018263810073184357853297036972194464019850669356901622147191899033746182185848767016848984752725281185522925882632196079410822784001499222810056190711114305587679228401594947601202616389364746847585304174295854515433220490757770241646313546644420304076808606075656178952670257756520180931842357219404096958161309146525124295877007860159844290731012074555958509827170220339423432322873307103229058803800086170662166290190405817729858588495025282798874654273909957598541213326357180872090403601037260677533289698880403104199421191981044189488385962477200023810135364129236218579996237861414853805757142861219624303628990859809819762208775969306804850289488510557455996408070592837394127597705453563363637686557437818775776273290581866594858817887390601344326603580150045463951698128026063342957469130639459082446867001261633337441116617349299499628937709871495172577943241091915956326849513027887143328817368458657161276670566098252745076735498484969592509079017655639886217514090069462169211326997288321439712321153263189540473263994298395341754067879678872254798366847320953451226465768564359379163492673451372888336173035905953340116538565986446980336444361991242888322432289177528706341726171384943240602982931853724847201318694145634127924743433183227355732469791347304403237503933307332913967350519000230967391993776633785255226547641536494302700405902713456531016305074760145245411347070058116110392766628909153094835332440508164202977584951257917780576448832309341559254458296833102489152238836285607032540008912835831612940637913148398233557430872152509388212148048520343241939130102647263630237652527779989954784665457703651982621508899982101158695001687611435193892654448472710269850087853452081530005331179569755522980412786112452383596914765598169980944933979596536188155830555462492652865782996592044468990723451685592508787340680726088832537079135512606069134215151594730221693590672564366067625472075200809739071200745310824649070567818942950295824270842408503590166280270318922932437752948202854189961283296039334218910483147270886590921230935389023628054079730692068077050543540223590046960458746715209571040802457349930112332394904339669984630647997870061908619801792603361815657981784896336904334358558904030804334568642440408155212376285566805505596049312419584463752400908709108379203790674439134319816516852081377648482281259827731419823051724897081199777914826440118629754429954233592178385260671496522219151345071259065707434630427281071558270124661046086932801993380133702647228230255458657859120208810392017379443390854638509760411353229307276902646315553046533093954811959047947602616071777334003240088936743788894956634817099879009373946992558392782797032460787268658756962198048555324257329356205288712119409260258419470777459449927261101120157967669808016576633783327578978028057728347240884375925542057469165718052937469474651828057382406109076230228976137670719575428764513190890675827186038398678534388567553297305850225633995269951734418308726497807260989753702339552821708292628783063794251512148444555805078673840435489350768274933124354033860193425592120911099725008895552295819703878325045755844011881991098173570629873163314059435332920454999903046169025481163303536738457706667669511734521138859436068831741708267783970210934522020747664986913207580899345510629688297538944633920524341107696946151502175653157537841608843020214001245742865057226565670424176932533681863016249121179608365541829227135913266172356230415363268104861864350253858998784054681559032811292683707268256778910553995521795877981365544499197344261681245619110377503147536062421221506750228268118809939262113892166269157649136857118251031180789515583008571414570274253219980234872250656762088154801760553066776869378616420684319259162186401707264877526992223539232940398375170247376197105012216128390312754879569743606425038563580352510339160340186056809336176167676028443553123358585392114198099132871260090631496933522177255073227636262312470195465388696221173670531604077072791039724683099753000825005454257570951087174082027903479853017709728487185888800264507302470530888198056221810563876367579606947954710537924125495619761569614106922215024036482510434753871846372801637193362602637077657009950594132803176360877865447977292295092095137470621704917754159550255910809645649901307754920387790480608567669486891054940668657351327748115176707582127513636645906825008086112805549912495112102249858163532617842403723963499496158262169400776104906087627957797315382250957487496832119364211601634225367658967818302435972720822911167992664163605530236911638076736849471394668438594721132249071987537201795295037692379467217028625013604026176163129458294782323046062034293803815465832590885448782263801577772455605418146494941458636574640206213460688763724346406740612416812410129917747122290855126789353822065658395704929553064457873321753270214887227811247267818824918945518786476142409686041437504658329497379003652823923369002802278102665151165540449114719137713512742640487956039287803071465140106332090624004096000972975467211031128584257488504454273009616821216651403818929815895226344523147152481014584038530117098447790232417887021600453069968518266904541141539232020172760626308142742687380858554646783525088865562619354560466160093821638443113222729296900710752073603614248863952658657211483134109621067795243636941427400447845234283163883659269153343668818728404889789984670773177247927572545441836042108326504807647006319847641196833685078720418137665886025405784650533650160113976763896053724699188313570950132518503079210890080064581305586336723545081018123728692938548153414585341596245273500283933662986274651486481432829896339826185680889667746008472539185535751576369515931983279562546106272366139073065180743089488256154569014029613660837016181368599163093652453139793775042878054111548699123012401243350363453233931846730607664284026876328694636875660598707794706129117325392800967756358681715193023970560344323845712063349806741307590830726251206308529538494828907611406391880562887210617102191927181560353872533993936093449754677023858826660289695911601650725874648702877235910824480417590358392535365216735411599905977369474702138809892976488302077957905859070211094857445647468325475599768016934739325578746302712095584361741058362311655778495249907937258720627850778918564890003427031683856893997290610734308909331595303833119924003318663827425772747638254341004175885521478983325117331581908543015423258770110863025830672570691995965990355789017888549669488714488307014219003066677745044336197676832359720404086494720469393086234497121088386259213827760198756093505130744214227880109793524239293536539942038800680858785698013771096753782849306350984845997575588562471589925743387263539536740866597274991609091759737011853526189484397330896945325093263856982340447169937406028222250283005251092589699542682383476560444842009849569393822811498044166069428789447231417356552678067850386802822482521679642930687438367510357250799654531769603890513100062973983615053595214805258755125650961998274969406245264524917203184185216874604298817263429402092383282018885822992841172770905476813583071206205138702875170820050598257368511267086041847463173542029048057469622868306738492802215921054845123807622861219689689371329888263601454262358739453514621646314589244374857979445539190077067123824837087558041331857098398956940774084489329422026969124531500319551584168268371265229141409676468084545805636050585916691174505699774338509858485870374659906383191579033995219653511924979621819223312783392176487687605027630117236112557412097160205922020568460158488359788495028492829886792436079155550934484266266468399042522503958815087364035076405460857461786798586125382530515212104523964411166076453471098154047271263096013491422841387812507042507602039822504456208919366913480252759453611388425438301912812774470191998308879268708173451071674227392153914937128309010343548830586192654429232799532697122899729049779776904371307375111886258268924896701634712158174516363649799737590926037160609582094692816729844972507378610078455524876577606322347577661266410648425585756707467887373409459720255427419089576584953678927252098952611739703329967981691370014482955116719141571374674952204359303399912004329342679313621647380080781558332540002231047387140961235664843418198041024640806748799754670277023278282895028055549922764658896996601594822228871206988937999793526796619375175512191159977764579296702497002875664200643682894464566149028142676901852181302480514489191496147715106039432654448153573732862373101665764464064576633105644401282237781965671124235164240938067843509589434102779537563147372615567739151781077457858073053564470183263189957838069771340464620706460439222196449781540921615270273564631579010276712115669620206867786357363900836370559886920891843649038822686472225282887437668912149502371433469156157607019779317047965654784812478000575618745336212204885582750391462037070851709814784921684459081295367013729730831967081513857915620286045422278220622627463840429258415825504445608342819822046996827263988440011865448599876101292934385731295136400575531545303183369043468750067727889205122613798833882229009289256457116596123358904997656923775073242791205047605228370540506011424039561228607822485291064159973527366925843774741547202796601069499751070690168507042400283048874962544298748082630420361998834440410739767796472181303696944793187106656376058686695844167187371289958263137848501250341552109602640794037680733864724841375742685289159936945307502292146751371136099714517994065763916253493669437668290871207403122245011686516863686305713529083974281847839267152508303825502946489187172223241322508196328483106713897157487027622070028480877417611234521253005792763529586377897553174047736406692924247035769405187503831042182176225417052103484785695652732064032394254065031908666339603055519739125026333719596236541119350182722649488514428171265314630569929924207802176596874653934010211024529295427060739213297732032814440020047856811279080852402677528304672497051051705981732439598914639820051890349994483370827416352421859173736218172140738179150646653212769430101372476067033036954394588624166949936953111084937093962957094682751721994675664570474271282380690486030561544736462605749046671851731499952743784311258351039884440005055706063052009342877788009476346421344651672787565479527737987199928460275721806177202006113615544839728702777729406708393376916678226684209628340478869885911409336539605655527918389762778222081673024093592643885393244812518202083710281966832785019645602044700057693310216121761359582841114712938535406774068947557228237503821315631912158862099275307490250036078490614361618144096419042498872200548005453428920716189606445329958739621720049331445079863656424033807366791871794171920993598378774891253748013693509530723181455945468864771297993498703927612648822027186781623250862757918594164072043476800891833424891113702672785810217914542800751638825375696562833646956200855747490353377293554597510507694304090384548554833253521694861509022496383522127959320573993566098381429005300242528911328049168852610292993802846667019698814446966701107703008675619673199581162944935453099942088823332478421164099853557494808625478318870070691927052248683607669048587929905106165627429803888170375901753155171750834628715088575089045229977666194303669301254325318833896392671427169902376029145823675910400766277857801446145619305704862793617245110180963450401711691833489819560972912216208179552265491640889728177258774411171828872330835876712765940774509183955014180348705085583592372795578824108779342296712955674359302690137443246915936612705953430300224365621565298733651881712935556985796850551617775216028555053735450926161153923379193949027466058351140482745312139278473357695244944400637605604028625885271029757397975854380497271260053923460540095338881711208247081673256749835485253214559483642034480823501523776086446566596181137955613869819643599055706853000610265648207027837205060667072027541886138717445459529845408301973818947305923082615700729726383215369288486079955190042538560105038757266917499405917383604344969366894634890411279826916301884820436684925013766847974587718415590219475765451458538031760662203515284995586791962712701990829096957094595442431251028862258670060216503513461281758518193811887718624587951060637708284034021889308580426658197645574211017648860862522045666417643274443364306080441682260743491981858936326687611830336470372813247390951274017414988674375459938291337600236838890248294934944912971805266686757687641020120486362700276814133802620169884358690138678190255670598737125127885800713990690289375830701279345364234211639405682726509636725957737613337831180611331018967401705670213199979129478745771466263768175675864778905994375227464012092621195385174464522484969398927401107461094582137031373155328086070321135655564328227207368424826379167997620935341971403556132610730079911649694226044649809259612420179037984941941987330408247792078854563630832113397505389686283406948131153864374337057376008645412794675776678561370548836161991357598690211309876558974104271652654427884129281873275650677645778307608436449005370434016271931532909290355758888175910222888468940203218616177200315540325260714396323447359606308581438969040274666877023256181986085870252185688721530186688037503743884155121188535652421325686991600486312279141955372218809377807900219744924702308385196328396258886070291330949139581005213816431540941253623813962049325726194770713644833740575618745923508027389292586658979466824322233636379450506539535000700671893801128119588233177834887497856806863046155801696107183990598807970011381839776734716834329999631473423774768225325683741816877508485661272364964916595352467024843593944931468540372644794029193250654913760026688287759622110585496864211570252268751720341895185751395684774737041107864850108488318939172335586361552832264253112469049587916472051595781098441430169109619134631338922176602904181156000081581816212700116650295915506875590807767345007580130740284552712922600529961826924256533506304489636442013066867876198285503016776677423529803608564576815846419946651262204700759128777597772991215708737187928815212248241577148971496455558095779458771914984421075822860975378007335725887408002361476745315707271005275311686058459072841686321356814012287604355802698013907193613455190943246289635054072599392987526424559205678876535466047916222772329342541397203003377495843072348528379431443941751195231024771320354097979940534455889619472544374031965537983333216652378650726851088437501252477555018524615401995918089798098702689214623150686103935458501622968561147984910819190953702708782946557193477084990764433287951884755156463633233691904745783546281702147765817246410433844241797490528243416575670511206142561939246871838489739380798284859597949497972363744320815537340082317300266145519859569177039965802472633657792398568247844846195208282933252947363386696955112396987870757449443061023260330048010158772516210322603597657890164106732679776156416070498111689420594853998390353885267203920136460403208803514936694546290121163011659423690002406921625988567580845807477851290436412697123373988006172351834270006888847565988122262841423075542339629539267481206230826227609814514201335270223041686139234719537779044713829536489431231918143672884677377221659044957523695681181932619925870402769909903130995340486181113044093583378909267117680945260837095223316412234410916246691570893568960028298127296659168265726285028712567936871088412705206535498613523762689430906573029405804799600484689926809350811914117454607218588139634213833738474025642841397926295907032199839312694440413356224900089482397366505883233147063003828747179892097892228710978345138954417861058540476477423879657845375213021535331081008114211675505801519921886337140033487050556900442378489570274498287154398969046701566210623714709191721931627579180643214934090689510111600287892318620178425979761130328760993840986052128271346250204158299834903140610547946860603182463396028193095876140792609102927836887282715072220004236835929008935370555509083687884948208431878923545125630924799008843761773781593883655428786782144485571043836212785256908585845684076032512793678199312955021153850495185302242256345020304122813042529345575691231138325620612050553745544479273061139407375156218828564645664367420260999527806925195254629369421768594553480051076895713480058903546224512341106729040765370937617350851990277322855024816567828304711019253520160432522916462147065776363790913876702769286981993558059846589743542899481785383726063201920135807248777168661845547311719495290005453488133924313876115863211453719019142224023847477188203387061909713531719240949990732714499029526708446344473887609729831530349576643586950546774774175473245135423750805633243366192673428949656583460496071250639234525989210941625316737033874377774887222404164837147146247121753859317727854828596850485117849935031350834535693835146389945028733377711097011665444711880524308457268373290745292116740525409156365917766968229303765056858790095048151633163403992777699617448944765502610402688996529257875293144455809067942559440458787306733021605654861998573405378292610901116398104124055586619108429954864936178072139029428734115197062484634408544732179232166123815378432209615831531469399071714986221721944812897397901555532035917493341971266956537764720023751166066403241971932256661930001685329279094178957014821263720735934876707499193392216250050499287083324006078030280178900651548511246073654124139379609133870561906751827438966544205983299676444135308817208640141765692154531003964282608490604772900348364578521532896290193173711593955095405072795657134894320145897811151160212508984671328009791326008366185660282991269733857034082332940601494532737506219423031040162146612766026518701408711048645271247685978999217178936219011733532257739388338354350769619533224228277858001571882674632468394360570258534086320388132261555442745213997120331783764380331385014494344648095629529456944273291039456858210593852338768584678590086264099129252616860740498297840554106528534474120252240100141772333704201659348704171117343384649254909207682737833447139980661279240645331855289443043162167732513612505776312660362747662065532785242290001634591187705001849346976591372983403566538225232180329389756888434642961746820215330828791679372930720582731742531711929290258913642054567023368553828519845122057528008806518036356701385102999995870698306164867030702158826493941486404432909616216451178874669348284252399266208748832505053650270130396039316527124958487138370108672290189656010147493545177242308085558672814473929562074749305629228391620681069393078813913302867773167379340072034276869905010547926096429012418906375866726464698908089102250978499074586769462190272843563431358810990897164227858122075162576163924693272412507789879958176420999090510389612074162498970368181120671851536156343828255142279525770330410097406299139158273642682561897749132602237897688935508255688987420780032985019879519984812621157059104429899425682082327458369985946024374872320523650950934492684412944331366478938943061931325358871400289842979382821412663802588031732699465504498760618120069435238307344574554467949021847756063419564672345301717663608543441907230714371282349677271394991327157793911657615618914273894723149491392333007716428833593225338063094298564530744684873477639913254999467576142783987497221743672097593855924996031173167276234838838108988636192232754378721088259608298951901467692931490315571105598646944912312155467305095364595181045779984860420283965507891919531637671182801797767146279333321966831215226243154973306355001728202949182428165949596789504182740691251253810939392249431533993465317686874958371237353556377996650229151659115762467602850490358182697159701474098651048887249091190758319510713749146349125117151903486316239760172377755879438354940208404972160005600518515005680919437354858157295986056405851834488781576657142453194736303320754959767983418717138833662999322661367804908749318871201430561071793065356670315541447247494650837825490943652433505037082087776098818794162964624390275575748509384556855386741936145555238179493940413525028356157451432041013790511473532172733251138113893640453112125455679648333367191222736505720300710407385076306584604867529084876939969892054205960944481591444394665363125179473225917933669409783172456050557710086493302111329505188635531385268222014104735391359226599002944450735130781815920746738090052791237095591237799370703138483676934367149406556457490001778961164120957618518549412845376740978743294903612938698558930744375023825410954598606432231905086437333072530312486437371398973397034873586540414529428518354215391759263535719460637124191854992083291715292814452505115042498380595865123928760506283421292188904319137866956882321323395540919313382201127199232338021912892410716395386515118571018309589755113983008712841155137659322978711240946317163675761558298319971078418272936888910056378721323229123181935494667057200539380013168478415271151908485819418530450465603106188722142794419413794317293169514798717599480093937835323384538958193767878727473370431400656378909533279943410465038176127464552068647379310406564643682532740186509173139584502349380807938550324009940491216502191056672471583619186345342536762797405735494043783177519114596553415230614128759098330543239819970843272246637118491051199642815820295384352011426994441248920594024444170183172158350600210801974811979488059250351123568479599929131593576663910992048091597013402816017317256716299213733448410691355312218103405614202277773985572580255913958183059829339507647865878002307434310342026600184343045413135077628350418923210449101600846837767815366046855541956568270091039243748705966267868875430546787158281749389977948192218976679148806080849201115148741688897219086730764959486416898943723149847555330709990566021336540580127204602310892676526375349960918097900661852450123384525857396547346376797641425566487861903424292370905934618210264447296830200154868224205951902127382753722743182281506745868104999639601274854509485604366882504464593638363172022894464290077668721364245549525587842286040196751101210671561541548141576861234139681746691410319069357903172761415276262699810964619582806283924554796328802832930338784948446771077394898496857013717191220586319326404725991175549800208045555100946602127468223499423342380630856932738281172732333964817154055607482550815366204242003496686255078133448170836969420065738905980746480851143544321501894519326341554886838755570546709792178560988573192876346535574483106713114744669585236667656887737372777925235728132521109643827391172428619128717491432226519117553921463156215067143785844791818063942201632359705726862013804268343677721399077598382203907192785317815937094296633397268004302053967347383873203438116359516739219267831522916877392691996314398068520594411726572470183416163872471392008837996001914343566749307589963645031230257693581526487574648620852531634249328593529575862572867402904808191618921054559820372234672805608303989623745105467620349565157899069899770622313557901880536820131599236125745081563537746910750905206835457572158990712418578326393670046098165028237776849708029609547581871201237984330820376953959535881977735668941334185934203125104816925069746928694193848709184868022815524604701480800025001687040460175376880786993670393218899322995805349276175561667091960704188993004588591412398808396908293786843817578550235875317241161570771644384711048286315133836051122928684021823219328238203372107176514220566948075036793528328336353648671745490685668941783298068128257717443633845451265002527871239458066752386366332462337976462665348573212768619909114537150609732013724860580803601505154131403683223142675380754525994953854559693651227936960566256517622913444558045688472485607416420147156688557218888945762015134524501797873818905044033945819064166018144600719400466067622133268855921568338404599653882129956243180689970317660089884578908649480467179343758952955926938162072285725740990947236420541369246486887799750829567625338124788698959325000205200607572424181692664861721184305646805733211982998442117976526015037005409173433790302264595245158563628152660010417273311609550269067399305874148674267206083932989638667781537212946313165212793375772695693838540045702469572100485258241325798231924753526221338319569358217264938652538764388782277160535930312751805101861687338030222110000005290519428035461376871821412138677494727142927975656197470972316390557886224248208887484821703903670600601364112713822370758626100891953657507486060947605863633571113947322515178487106562219792219974195054302957041792080473674140028052847067731235720646389939878516807094414362368718110843654014476510585004570711597575752582500349931269964272880661884631850816890085417113544289445803522206440624036815419119237940928577548674054320685207699159582437828882737779070886307000571908342744238603362070804308996223648725101179092967548502832798433920875954497493522718329243729277630718135226247749507635638587469534849237954060650970969179733941211501233879324759139238209902829532456319713827957270116839773175190536568436748662392393577581296160444465172020467213372768539701549714289915527733580705403693999912731848798881760125975696562921166686094966301593414374334559468849942522700173827176524634456642498625935276545960053259139636618034035055615480691721194212525983772194321842241347297725019750172864968935121163469083344840934214442741004353093480539806474633489785439891866231696656508344263271666553501942768737175189362702471400552403820013441981409228352094304785423854813821368956316602407123734537505186907320942826137350992793293472194233477147415740760886829940357063272085167282122125516241925160388410525358153417985927506259089243790248344991971516981585551979500923001751085236730338099931955108405781924089949136677749521865657431973667565765885862867541439209113182132510071880731214270443046498333621924403107305108611896656796083679933692589392758563635763673930689497025902061530804375738280741823820349076624332436343355956034008812794752859608213644175151685239242009459188805308301671478193245829061285015414490350035691239173490816002167014746640403968505531143452946032981753156122029639935458630502112684575072965563999379930046408584277311210101971307687765363985858634539815795204982270229144712780499394207996691147091629771322139161230886290614926461045870103648005449182506778393248782977021449179270310020811038554528386270720824127261063138846723415081160956480396153803850258986905469632013504623552132439564958484974444648443259343398474122592907488990454969017370682473549554447464782619572097863385708913765771843125082442652580247210389508334038023708144794606978281407411360912787755599927286647178966996667317216671473529351371096976841575554069442069831592172209136059143919925196355544835059678273190473449782256587000985319387621581183372140837063845232871116345337609756322196127465762396588712461623456619630576210456322006183680800082012234379147637870749864277707754123863222714537409341793572293084685124913292573102007680186033869548469047909939590129834715003981979115533532888195707355998877475223375674252187430315012855308097577050043406646675584244071762209344220451503290060591433606641052859067748025317988582042033390465319173362393142878330157876121236085057603984895019749709129558434435691558464668548148913918798574224943619332818856947468913501820242902264264834144204482126652786382162102879873182642919328547572498651572418754288827759947535652623824823562534839665608496521470365413909048459496282065137281836666109089017932000629018589982789910474183066308165116768404145097981302102819125718127441963147373926321574419976200768590288557444923349989037873769035800375307954099521370528932026700756195197373077644756354960671744375297059085473559305602828485487731937626777303059257584342700985208808574029630958264175473375435830216408577635631764495596931362477526090134481831143299699152008057385375590115041731542269385391544598137450833374964462103603591045788633195441163184369687336838373625109940543552104331941516292049867134806195606082370332244584775386699820656511845148078708362909917158396821229628813827368400235179361704360867879575093096947192230823047839901523082047482016406120466050567192858808668320392099323546791301787421995511379323616571407220232941329124929179209806616544672015316068635627913919942861305583368953162996762465775110554524534028679576113397807298258668909788485858386355436544448566891333053244779545304247139808225483591860568620912136574466501431668198884730669348637740628982006222397162159752828496169759128271627845563007002294813620213801145296284503078556012901263600454022426058111041772198375520676728639413179797375905194550916837471485534777627441134843599928158634032967210748422426721450193503776691843161407042554028931292927588109581387641772584394471575999473846733052463991223334592158639754598382805535976307346671073969393791613156220250982087749232794220787483492963328584756887929419055291959862557723136777217176415504206571235800602782531633747074816071065349546340708172602562010339901463533630915121573681577947508128999064071938508331250202404318361960573907782043552378945137961511627125315127090288871027990497961073655229451537417048433919304451808079113874185168354531887781706081956342141912033238995535293898760471510106784099734551068632918292375313640105433008633113277545131333660088882188819387553393081185797333898747283987356684760269846719898740215675256272326185184564452411921803070424185119455899217793790258304530934293134303339415965180224887211935792409141930731900696990598555715860194559373543462926326501772284752860203177308360591276114258298830587760024098643455581837099788467809490060124706160504286819744537834868875503053307214179207793623934140408389284557094109976854147017202825848812050784872409685365669541942329364167442345972109603123790164062616938626278782021990165266912266993561572389454469593092308265460114858877696986172467289040052981054471189868950588055679710250042490868501437281371500815091292068319875121763987329673031088088880029057192881243291601639900773405512234854996929920243606391574768495962504745477512748476305302000804570966143906657661781173376786797748212648965833733407239575572067176580025606864735689569384605836078673011354033342449786275030452444778313639815771372781981863605970404806338385134252639026067376459809362984657255074740383314311384028613123602616609503141367054524126633858991526219301461134759277855747228516537545878711911843937507419818652131028819991333369039533083716754048291091198043679036297821861548964411696464483977909648559687502136434814986179496356888329382482954730052197511833559800313531327172207199092250598457101956661085758410015279593809414085584989761053866635789562847790810830642734664990238640829746184228404509150308868528458308110235154699722334207267201563029908433791302799236131767992006136257141186426228699038049835472278351232489179785367282698552485743508630095260406221328079290217254537349623104827876831080566149714558272887571960936585296764831104173853846895143083049095724793409336835011420321571279819075500356753542775966187626202090960120877726479195468658906467083858340766349074826059966351727998023663770319081875388576375467662224974718304098793727029399533513814342568807788651525581324701457715257249679450716930459027072113875250790314829626410092209585483857427300401971943243798664076627482410549399127266819800760975614510560214156186313288848771891715608424487257445104276042883818524271792235829446208388610374948219635968863315636858419313038561842529402619765242255848857162128562613590372612220084831597969873143956528239976129256120048246947796684188298373539823489883064605155004832205630536773960323586453577653377107242644153697535538066024995357362813233134435752024909343646291216238109905179439866728816011769122506570274042003573315600390467373161991295465770539356450555658571995948618354655127781859535581165672678251369981796647584285861528010810546583524496568373101222400989190341928700063264086151476179332445669884090157567308088534550085118735802999898978899884507385778449285448525732160652241589250419859886617955563207270261147310461930477129098134062993237092177541284770407765731937843982705286707409702962597306312876451026116342838645794194911844017053083665119105514965567893654437756287328279508055353106452691282971853759903757456792284261310054134690907646186726932300466425987066969570569331924324245988781088796437255836134861465062721438540743396632935026774963984864349723060765927492588073334876287967544743550702338709265182892743260540679916937533884768933847423103885664536826257487191381514123377829868251937171837846280486947398391056871832304975421135002181150389074202407913190178925327747925031184817566364986788786846771171766946335700096583345604958317876513554973324616595332804663761542788096893654706644008624595524604175863570952359303128947351342697731658225965635279824844696890353458764428136274781173388553467740951377877292471039437366050207471312152316740809306645225649233462595602681667274459742409630342876703019496835982612484483289586062204346245816879924888548586915700812257048832496865870560944915133398467357190123064745036728656554741975930545409988636722608664725070322095198262560073645748258426219473671462439549129282244294202497509686993376127706821316387569171358851399907321629249536245287727960072361127136656919097359980275226883870914930488239825607081789049927184533020091974539303797750975746000413857674572690737384914304507461158455656623567299872251628870155448096802994532370721205851710167495888800961340418307508907135642213633175854145153563497482345210298811167630537012379212893205425010708763463470221399882591388871415072116809150902021521221525957218515422112849053015714273887837618434393298133144567133165972374066287800386266170335417361408247029101447259526628613540764085429556144127709067484487642189271243255306267972284128733010673702734603798622547981496825659384461722966155699491710247409627754232939178935419606798806708893007075626135107121258144031170651331069525568934248247401482645123638892079404323131435126229952198492466615485232529317002985713138170271068840877334307241953498958809054590136513689753107445887374340251441603848949293010031776736055245233405956500406945194052312825510193585998241609744160771597658632555645608963347089682945889065345251600516683291334514796183576708226314032525457072906795273648645490365740012189253161640947969586072211953316396692972061743637766369049709821548865390282200523604759659341571612764357007283777755175308186441505304273153407074998571094767375855663446022439511866489119167008744678953476144187236213064119252878171587424210210069123627035624756245923317770150273571746549703384401498466320129039336184330423523021477322929398838954131697385820291068248471355099895166448153898009432082457130679235522896550179504157576400159923632365047495797571946097366180487572807421593398847197979746560065278160387310494255132707209084006739612769773115705388754138445483612505343263961630142338310757659183918991807950397811504537494953825663968689541399153433385715890412862042025394350461060167706009552568419921526044476110648296119363528736224669150475212939871409889049040964361028505021096006253708305430328285814600537051505318255085478724204096949310416129107005232398709399131636236372723418677971705256850443855177887008706326511482616665218479659363527659717730392356499423253115817521859483222355205350466738180964661280564530625832889900549510353777382791435470668684610110963072723828576231618206887811102654030781708742007445604478083860639488722666618550372385624360696558818674133989922206300317700003024565224467964851633604515677745576690636546440483889101896743675969541548357476571997197909228696514884514308563750052262264039172880319237300516626645868592349996267434541110446789027140811126705555476673549403003861068505098863779762682291174373142398373626943675696039521319144861548210336493970506726767586257888713213010706513967329336138630931222856301222291102601180989370673864907202922934704740721266234423507339011959551056322159613379125312666027796231513600535618639859805757048379230002791971608619277765360609084014932545097713658476919316225407914905765079310580043144782491277813928506217758558133543820047341602709597986426197516251296909256667106774378207612841979753028993928932460946451024787831430444717824508316393131211632155933477366533877429062166748731442575903471703344539735878838957813657735582088912338429410717119785042011572832830113503238182855615870014567377664966127592836633759016298574976615652491619634146596103271480443398660659964420416592520212480800964132696702299844393424114517507248871399555278254343230562204901135952965885958390501785276960570985022468866097893600832692234765849956978549660067412560305528956846663353696943763192970864658306656805410243987224794044759408708747103028433181308625555011558118668497140326893093090889053209089605789281559984851211460242614427003830274313725650825658225541570721256663481296301099782299004422475741213138658555658030148954915370951882589039212901877744662831931799981462372233354686626811757852271258372955727073223032631399976642442309077910064306111038169340755517882153458897714957251217250334075413244976689089042755578815177566324942075813353517828606541452859608778015662214437992471280796620111315622892560941172841652803915141723596078218937662095426901382321068652181259976550734106079847897975616275876624815448291208338885183205371317557889715588804508577949004884983230262959209036676998886047480163311188487691787251983610406853355326467038213596160359320141403228668138246767380102308657968069938959134637837392316892888839780453384607495599507196575078023066924174357173268144197944748625754193314469648046857199165904511760648002889614344058939709915995506318141567766777417259417020769963484995246033720649324039194979726933035406945409874923818302143049003911044466769384076800460180848144873120705302047052369056128470349074837596196291402347193787417407574270928697887784295787856824329972939852054724543928031583477786084778406980823385217850707171787920672234830315190016366333729556376948180372547202201314631651328501940214722806937570220838198540749557609611170222423707653848677114340392374566141302638456765182678514807378243111033270309499818802415493416948108605240087585520873731164048502864932686578595822006096394792896734906418161474762509734054489075317769732973857570107018736523502741237036794483474781671389919763519541534571267537797710955464384804622652853227017809497118185801031264375701032920588316703541876301004062951821463900953498030549664417992545247523229223633243096319959426403580897879162914821830166943327241523463032123373718983860375447735039544825927901344457279516955846580251050458692011131222771719807535876820613193137903171169284597071056667569003884297515818830851029143759676229424576280426604094140855257951882536215548810752451917392067690601472802941158103874124692179804198346629163642542697280967368435095078184046703801385265364215915436349070816999297463339178577875761394049271737899177573633527559535957748134041926039849050865168915628527863553185847439109991883207166705528521402312151769858925624407827683920526462780737896313026824125195479286748026575851863492812028104884470607910580682234929111500257852323858665908895445571805384423881680423185818532514291424999686213032290999634107268985751525818115183933152884617012930014510992656718136375614437043405897236401091818264418539417364464054816998599756315440195802160949153890385139056506534262565509192597935624666758416737331449234452165254133469565172564204193357381308640722803139655302149191454874247483640151551938382363119926204569100769092147799109906562503209166927202839814268205091853969177163616809295239465208207097733946612827328918799876131343706347079041433931494501095484345748714722539853497442696318561441331165086565556005585859294893630999595387032372435970301826945959412270655322623017614908010581239080216016024721442281046402110461095965754887567859217191305808823666515743869926626182057098798640812004350209481705997569361975380865922370672107068646119648234929514027572800168924879793458750327804145799332437565458284326475640327144138816957457364113879282877855277924382413959785026533650634083414848850497435751555275014843098684723274689383324776521496097488459297066116067225004599784890237019283190925936804287020176725103807158199245215497840759409225232132864155357237848455002758593950891115985125463203560729527903335753130480696551489579232799426816834372227361228225089578566850409022196742647216110111951760425230348328348305326103060557291892605569258575280127561076925772021212690133139190424634568690392050711643559210640876354665518476963561004354949752604728602977889905167074693310516473238066222298699918510916961087950950631746701134877689430646022756040714244611348466126842410134233074809673987979410259032171864419244380697561784229064333789531669796085301001619373644748198858519970099460119014110477422960858180015862840202352206190972755561518313927711845069643359734278825540150448452929551071040094262133307895452456871084268208761341316291264706235108840799564322085585894490738999380507639622366293695769100775396007442402969356133306523114123763611308782865505187196891579553509900012473411234507193337783210412415092364806652047249470092397306969300204404036756160283770039149112809432950207148125138140408611481433264531341887976124072276605923306513001506782628512406698312364569913276912328371126919211976763458783932664643187363412029716836715070154430829221790368029679481188166108498709196184002472158390347014363375794365861314224428435340157718941268538279707134808424872099953400033220466070891045671677653367505858718840600304723507986858836709691175419749099528656965651447837719707125719937071576269757419809806201928567586259609503274258167837218961715716257970027196712860619563961889148865306400304995060023448047061082976775389115737226098799247226872616208224084495167694359996527682021030211859437075674016819297404561591651290286984772965572638844025929048232602918180310052907651072211127847636273935657439662157601324301376156436983511665937771846884288251627686966841292902284753337083458299714577042646587861200702161419496134235087051303091080013838733181794839517991155406952284459529769725402302083221588449146427982235900346590404057815091793027240233250834437226950239170728717294130510954722035236998494555468599124806657327763222225502152652836347701404117356615254483014500276002765107001035464067757256266391671892641591740888051922384196442018768754694517741106698096594013989965728756853205377370591907671112002844602885779088784311431430172847440849215363050439686008059316843730981562657258900419643453260267514341673300418252586372095988967882085042329897678783011394137660570137110048530359625148700990003040360425420042371085809751957668179074194942424298662324020501840982310110348551418925025745623356225275468831283491012947310299292267052236362211154379098440693477045719816564896681353233224649550470391464489901883969680326294314791070494660916676141890962831457921076174774928691511843343028373482533462703734371756108026724999485117751544930050596048505449416082007772911978175881674405476179660925678580312672154101200466060951472959675762773781461169306926456780745296229132116766708498747467663051134437643980538679644176918562344267410733259989288796998824975171372565174746921899479077209795424523228008039827755672720464029098388873882372307484866726269489825304269292028168864062265411474900147484056009298581965624665833971661692434631223662203372522208638480461268339013260124252690578399821110948514006059864238439719002468661317230688231794837063543741963099130133981073408966739171000640526763289328865739457383211718111706809139307260959145240101153182944441879880918586501965859078298806899148900145695798969792301231301755056418604801628838313289059829468571826495094615049387314251487219672636955267828031242497583316994145709525055336613487792365110883047622860157095054720439532856911032819226573586125557537508552314790700130322365824498093525917834846756470082983268224415729840625186510110385977159283734296884556393396530464502975886023509314566819379006047880862908200074195174204789874368969218357710207724915184952534785804261200038025071350174242682555757549415604182569094212885359159810079933141349999094853906599641154579748122349313779961528321316112719309152066873294368348448034062621916025970770136098367313649151224700635264102778267877816365919767733472349627367893608638524046682654327870950594216208507286462406677197177011215371536350729550471528063399696103289762150731426069092779623339992942284152266544606464657857202083838676819068648119869439940590755436458430848220544197239867398383857313696153242659257004278612571848889533248082254887470337320964206678408874452495692791227585791180467323525092060800293896027185898410393561754279081412665566061478032775862585966892088218335960490665758153998135420775237644758933623842898441694157775160517199855280209909562762749278016730411267801039376533557637811622000003426899700198805044559770483499262831997325427770972549664709131418020222253423026321920143304064328751934299020747410357891385308051864346246207993098852284511482697758203345903618389651866561857996028189148322802352266801092140036835756919016102941538934324025593839715823756361547710235987573663123287370610334846012020114081086222264461247565409122747068443300302592485711655625296318601565904519095752018367684588027537039310884936746756712085526363497947006032986188499405815178852515064204937895807627837854339502023899153224353641928557104463424264246207875965656811752068840173212540206519085200877201373078829084444338689951530736460762141021893676780496541345958444017440945048464677142385181607558948080868619156511115520267848579884536594984108268938496862647097917985835109325588999964893909028296555489241323458300450310078558853294382958911607297441499640326529581512499600163006869063419884727044714002883550799387080967178494953595079376682730123802314775396976319926184760648908968987560138442824648667401214413868730556603723564959741343864864609945685591540603658744195533024783310357240800495086966661855618407798611535481013701234756302229536204063207596131405855081674291168359995113945037878884388211484280583929116268395144494667672215053895439394854511180212931508217229113441165372273235028693621404967874685209346791329879922716742363564304826776017869510753942941116303048366822768858867669305676075864345184247349616110185854444618065505040002632831449846189002259454024790417519116424695434608896214058687371053328226930079494386155957224777923949054483880067275324109404882099624637605740113158402190126033614898954946378306187103675369708732111768239502218959444399714639777274213427520785639440749328566875439023068013205061005259941871569490941387990744301430876269018235477984388789206164230157293367982311481592493503749211371380962869333479068573098822137876313496724967755529132304906498603574207258070926502847994459556177594135971215620705658620828682876573686900771867970105986591879898707503713812100884654431722566749763338780395182573618872551615030209357573620918628829026843808490811056348474548116624212212805123483938809519123855524030277866605439303197888007135276556896471525538625352745852697070955730027203688004955617136833327695112073624461321483859837785597950579064466676007271291514111854441096826828991625236307781918529828869907621442710548673119907713704876085521089410404091545085137196273407960699503983479193746598784648943544686902439030482308335534637697537633683730822479409770040077615562725214583304787191895066238010577745006451496921911618533469986390622179526154306464664165741037037564110593728351970626395135921711553225624607883614930244286199396007956651839096791197569467620524425965306653264828632963621281169810419654310629458394412693124858151675201079887953542943579877087935442480478128033131427631368209412040734915871116712146707986919187487834059043970056687178533223985848262319484659092809323696527772219806463257655408285574277243446608091954806882516396165921679544056396788967580571100163749347945384052121456822216298456261242121345374090329145348128909143752136257274781111352208439012555646277688626549293997203360855352204940580752936410271426044199074248073141874918558993987316203587307377242992738390031867695511982930314932326191844330539800982932092750008097558217560617166692097734949193261889496139111980457564078116841470910605523234497213659061184549451202572035113852636487962864937200491226520998686932431347248927546412258517203271896458636403134380872487278882452188232395159616437273694975308930599157748701099516003578822092266907803885855497520278983397383784345440582796663254535017787499311260869647782479430639425114242533947301181351088385966472207011175716501619093789937596975574829837644235969912423693593360314093778467340011208009752584783028247368668997424319821461167492181679141296144776997631329142022413885521287860820688660146496568776356371743586234785758774911188887478915181957855073535611697360172306130101853090965979408404793750521350917253138158145211681176406684964646600277689996221925392717849242870639649982401613618654484642499312856399879408964152110647991367563949806471411977761756334055805554131401456229001361444101195699316998817202244044783414318976886516560733469604652601732286249035194527347140953979117635952440835127494473988703949888738566218356695782458509557933366939628592939870393811865530844245309865509806124688389018430554686195776320666507195909684552761293631040407809129998515969252969834694775735612624740363770400100647844985254237053994894590731251069972550372243539567750753579290465633138503336376207036630383604809615622665001872362181625158700696343776244473429448534516611177439742572535648994758494854622034885425018328216969398015621841740144894524201784522936688141586390839150591394366531020938244941402868346622219250184082400765888961596207969950957131773906922358546889848064371012437995847581729481991549101281093693863951347140332967187976262551947131273733437755238982143541350205184737456737721045551300355354486659352842754963287216585225360297326430058949590011090159189115563803172359068677483585491047051757270353792970723421707858742468085599129195916040890465497206546841432124525487225298539042069811927785222991704950956367227579316755399919685923980100355343355751418765897341080903448700989417432783042739624337609682155233127537819142627630829134473255479366866282097308660126205756424371522424202782068786152891807848935678352312474466738394463899345969068004899150808757166434877863507521183493125706809407642172277339973027870343935412201218786558874881973332348302985852364015697570279710278550320851036184173720094344749279247799803573159210998029726688811244804064692787631534936814674692928564689115693985861202778240459644597197283072664135519291966385277101123702670630255857728338088769836308056520838533821017673314003129831666616023996519970740236266903112802008454599625718074841092269984384775197317883095082939139034313523501393110455773103016464000685949851208695283623602399742906664857152454594765620796518564302176764397896472166899621728235196922526540650987560053139596696798391062344762681435835863137050872212872864148153833741787090470096177022849045691538602933427483078340445424393219357286944773739164501527618548405016333270172022440177048816880421172992536448953482775340725106410133070296020133603338903282534858868269381924240846538795085576472163855802493753247637014546097073708073219279963686074490399091030166892525139877641627067633100240976604108391675780253491020446306963090347591323685151477143046839522545666027454221350722413106937545415951697314734173889844261061690947670774143812856994052343282569528987144415198390646570685205570879057314850653455722601206657290901186285170828890761405912562065815287233312314136139696796394256329701004059013834925262442535647250496306853747759080566691348756287848533119185192440736809111216195548991132105201548733253246287601162714186196438954923717429135181339609240952418021302135601619462639863378138316647304112096173492925066123989309818186231902761581099351364980768411814328109496442807743832473104671394068209423253420616820434238303769101484860335937860367209151486908269503875948358231318402191960159456338052313793981249654591913135304611524977397072692932837844515083412266279971701909460271971885278681600651578557539714321607171888796386231564377901540957020359601755588040677881980340843325362459839081253112587496053730479727676552730024081616124027698189354021762045698817750309245057407204979939789022686048822403144956125907391620958702217062590493422453894131873954028805736260912697180894153576434180572040433031695503357772539458450468434758609880864999360095496640651366454642541872774329991774104098568402638237653046237620204805398616340866706852895606459784119734722488241791680442379556449681801445318525636638639196722852512854944599388734743222553875869323007958596242106563004563416137398303944429665467746149577174205009892710904932773025529594689997702233649032399598406923515178377247704497399714964434144215334113652700826217865108658504315237401950425239514861600034306664879822817222671763782136296275991411134930724973748580707705703050103698795164945292324174885837358139447137586292761551541729834365486431705764805327283122590056073397613598859270699896546705150174933328982337725786692268483106143399225329844316508534411030215357101805815194792751948047415153721222281672911330681002333681865410455057686135906986990529718924198916520992142742597499299118459954516907727193886603815347526803008861909519985373248073387108782936817310816009603192540228601758940983769406193764466582928424668075615434166926102775289717181109172047553185719300617308393214348371068421464853972712532125806600423400101841618063305600513224597289207346934226769399134862530876729797798528171504863922484505839058217266347821045059346759781010508733118277087409171208902151082511458752786920968765720606984309055863757001519786272182498179039218917151924360454250656759269826351119343142296893130684109176243773743178351628806017407386096992395289964970673685567782784145705839145053269385853650638938843278510848748720592009316441260642586358052403224884178213703983099796110601447281995330789560731797167154694210346650437463003677938551374811806546643272928657597738414305127789013368687446897766451655960797925574884576441451718954771791203091279860395745449691154820869596783284759169138984682073277960485371370588523291287749653003265343553675450945397999919489786965596902545744945583728876928632816967651230041781605279496590016288550395789018184448452676653417599314382504343501845600592106679200629680583766486707270756435797979134130272932173791690217929140217291892030274353584035297563698751794102792504040758256388910781786685992245691093429413532616736771415140620707453980712523193879691155356253973776709310761196400755365487561417363560376603331073474802999826344298055140767209738660417376102553101638374228132811965651986801927612809058891526080260639034749880623541941565302880415186810820822528514945232490690712000054057483417106052009267041124442360690969024951928592594589681950642213112269452251687291408217762080418120592187527765605368891386826839872299212892378731783598475553956273095870601652764013804415534378508297553399559761428402133936287095450530528495741674309020475280061786607034366750454499572772441815730190972432678541767853248008313019661817923461966294267862134413317211404249380393022202423673460442917556496218461610655536246589495733996307724063481982418659734124962373116298528898893578682729866567853562112390753605960319186832081596972515913561333772876775646189621376537882286615592402253717514664370102153589195669898195603749432993781240832847292778230801329467128296931242716687134676414204917762840620054224317427836571122268119420816143513737027431420601022552282830540458277876593239393986624471371055169682316380853982896789205799063048536999941279377269939872534660932569775424958312150635086741274496469807425453688017271435170071722367122983664982353820827217510551966200737969617287108247883767604768165279149060588313673639860089119286310331605409998226339794900029497196734621647764676523747330619323669585612769885245575162064231362261453572024918724473043475555046456445940491456653716210363217824207205978649742333414676610386117105365113135537165528243642080165058278427614630552546628170918118424031988823887597232047827738803054579983728564412414118029033143043934477582537039357328317905494312234130437232596369251437243602824074559774977000785779855361622486331369827129034415680970950332929960146046003168135685538734073512632813339602769689269388717817551473696898790427046910363584109919361404375396378803812923426477288449321154241801267273516333368497463294918962920993097439141877674544968952817627163881098406824695611235011448427358102933635572616396559785882033914985679788988115393135620113771940180626073547095691484101956671924271414833693317124299127329103004507158503846934386338071574695854145953209738977828456221709221440111049420103430786431410533450232460903658261521733843807984390772501144805390131001098807031431339133734096767674357960965503653056418511066070248593287708969854337358656515087051689272135080367645327507817633357034940053136086580783662072762455217648147983596911871673921975045796562048598950745339346926748122948591185998709264144124447535476615310858189733630997945057507552707514946276423817426082534267105006333564908197632572664784071823220356242539672641670543024065857876684593595706200938918364534144809974483525292553304200194885954929633438780878887720746506889272597175875495212778967015382218664900599030225015324251509941528213391847635814975846804783461938814191945610137815429858381755592409700871036228029613439461568449389920520250164752666759787716284444271242257229935984313909984460027688809853091529049400844371695106380299655824847359102749856979084392263536477436512119336780621125122268297991712178226227170629750421547431463814897445481325435991159545795887918810141789211201849205980947319214369707625735718339251451033912368014776664049344626504752104314186114796329529181931856329894127497501951564760304296540039478918390295603243269090492787578397839008621737385941561077551593979431542250563711069152770477611746961376710032896382417835431210265826175927265961183289935547142356503781287077325015270035259872882995754537233427599439086504248076486652822934232490600230334102958942293385830134105816634467947300699762625731438497909723803808318739202648488741601002265093379017699800085054839557280333134771380809086527958447420466795757509118805496638886333276305334302005390787881434450078343604098506342221409833904075918687581097591846453085201965592159777950727433768011508211398242265711571311079747226487626249424632765692226986233942942302821792591120748662118712328161890978055132302506701985977927095769584641646101741130821412589548262560251480832861412735017049579686360582469157414760526009365254794866372844096417386080232493780857565775273702672914717504615268549283234562609154029215983317395901550571691755214152204102984316555992580544450100732417090787813486182196042574342942687106277823377391786910952759212430994563524763110652587857629504392951711033998506672314556226379176399198801493076377993459915494190783475915128865754989345803011146478304172489296450191512025635467240119265083519281934898085935990047907442265064784961486578713598114387055931585618464485306897629329087052185066274424952181783801930186972134224524883751651418479582132282128618646399269347748827683933431314184909187244498060548107053852336363710081373976584115980680731225439728040680954694515682644745597590976505599060773051930646528871651295624005600792794246656076131184234546234422065775424318958483560337187868080764100465702204754475723439177990653698715097657058949876043649500178238817953338481375883495358637164228871275620820871247035941459241781573790025985219220528566195802073707221032115141326378303252631831751172684355888638411602788169168319817385033854545074513016259426657256772538885767831434896666579250917480722656377964117632333015776172507471453117881820919961541573775022042401559395679765270882982426515996442450740948559423802485378189000042509716476917694172607554336901803604763524550061726361014021571624715655453103450524974027544913431900046737379860428786022990778278771408545991422944005706804940237266168713516425347081306840870915686433997796386995523223312396753290689859880830794433494725163391171078345439232389506260840369802296550697368798284878339905380185066450914578763742845959113517580971024067730392317114459879768890296067875380879967315905967967518195531965692653091108290815275635034417240098299804103516625040064545889160030888443522783731013151704364235026223407929447081244442307502794570796564961310989863596926171190725525975209525866917942924885875294684980435378978963450274466733480506758868330905314817676734820713033401007037392411185550403923064610099890942687532493664485277635218889678678499732085854280012350924156427588926739952519026025054501409175351526861522969422128480525321275065191187907523674144643937057478778963250050832356790552069572376144088348431717499840497072722122287051996908971873803598178791068583882368003183206695383776765322280352008189170796110554880698197323487765537945759373378347505699407862899610192503150614158407922280396423932550718108976949011702461424341021537802841357250558265754184977998027228268177958205887981645352448542256806641569469971441047867104783521963274047509512141752677743538555226833198572848048035124247846818626002945627545942905912557888841175180967580125550472345593915956750460805447561179432795978634019500063332146239856446682939956512787949062600342684096191504305894938827262007488824994302963057399718823362277553679201004870423081511947258332952163067262645517783143224710256614057230102717989420367451688063471612070205098404587650167711961159514803777021526478407094041632568670393375648353201510356904225093662024802403172810832207504304118049005548126534121935902468239708488983339709487901384354542618651137989558891411402113380158833696466547806050433295268703334145610789370610339048269312486067887920223681961845223894587983268169954768182572621207451825620768564057110977518765373448928883962490308354672041206406531205835659351440887046870211222512718851146322043560049224295110036928883576774024480068881930176871353668029240665142560985629944064771642633845050488276159289268693245405830920027130412178226312895983584328597309205739973272837782939052610071757374431072325732268031194625149860634500394771566914316434594384947996271401785752377215206171148622880354259629279691062956828737037995825111175679345829731928952450415502882719307937758667452881936784253946383182466433417649231916703681403244700715328450847187069737697323959174982869195223790511273338502871864760956634361912627682182568464656683696839714326917499294687891353188755737692351284250529322657470416851606529015998309683847891410816061401381541839631464894005561125675455418232617232363074710586116401220007838130228335156530955136826806763730286094071050930875552368377900184478548321924797376101480449069538971099880509852733240192803804446831516662684373476015176038982809847519826696056836887861874513210808917476819379352325702374793945133924481168870657462066028182623766892540531595327437042134227685633134088972124207985300206810483642825145361367385960916379092495207066728933844040327301619331530130735547146388954768047889515001485726239572600282080827531664822990413137077583305411686826304186657164111976513672463869759725684268165961810883273136730322730832272689844980449751933560042222333844599612141941798407722624073502858184090715831938607380857151953551169922385082730700863340201665073431851274946866728614334372588159837134535815042432443330131366273255096996539243947894977789882695355912119380006579468040487537884182802212303055259078175007795849604083214674854888873119496658699485722627996776908055895836940402049768129514696389920259445771396988633027622948616238595413117261476817604596423256236546715141846681930202439705107870242297947636299114290085702778163804797339291199508092535154442780799523847555237337366611542662464005494020101555312263937216700215465258365144527742462256657598368118874205638545869522320536096708849509018622099684982833142601412502040909686971362728745299991344769572193340536153342755303412690900796500051878448779625692751941402194893938536576182521554546051078656546873289444331259795013396058941781169967653265505373145385813538233649768066291811850471761608888141562007108585718972874902816523002760078738923896315891910532164811888529347490512268637985518841401231285402311048924015768091879853655983435858902183804290792739070154813707165456505700544937938662671468481182703602816685218571176908592520011977603224933941595712473861394284175108631794007301291759439464334032022882304466578753786315939070004916587826690835949149566074585846508577326777651325197122624299449344375695608114906023782886977903518273421215055529534444668184544905790339081546046186840680338365641474607347974974209150597640470890061089068086576644512300629427940565200640486610857556196982341794719479069823996082734126378511245460958863773314603743443415006759033123463777744579622165389483318527439391642425470898795391166871693536666821952888173962860080323466560859454431864685775251708549645552739060670019641860436435814482868911495295166703701253258503446020976584416982013576891992415218716617781314041504255753896150982847562425860805481649104800863172828515972952872141713629105456302466677500793449911807325444279740723871074327130300452544599750760811875022866043566480211907922635405959853235638017958510982532079629579537044538404745510462922976420950110577119299829763279091741405531846458600807175625281251725409605525731929241275072549610047347534268103985761603990776942123016208339893444162060301103269786894933387605344941844309135172963475753743756266526686309877265673452296525539697185682914614950889799357761791270676363865950798641264331080856475216236655853228264824579351178034488277613305109063592046001328640232808551463669549434366385640692045135149986772491530005985160253510758185656372600286740846278076495503404563293098667503470112518985581480161332510278125175040299135466868145044629715781528253988911864672584294372171435743416739677582483449312793579794646026842065234641785788245868189716757511022518719372823237428700288702876780891244665810941053029699573515166195233409227974505661934627082888806117935014937646648721162511576472388229669198590962928744035687038572831544441876752837018411103525345015204048535836065267154479132174398336150433814693610811568348967570686680165034103237724102496274883024938151547907985252240954763776485457936242652147415474807830710301994724353444668033268861985946034764252509784982103117552218778155567859727814339561624542016350795740453021900867552627907745120769773342705369566548652111194457730213509340821065414870257169199360726559947287466261425002389659941452616876458802448712967010142777667844742508697560546276789002275090144124092400311130967569841181743440722636129955177786803650479304136725937755691660793624112078503971212419331719490627195931041446563768505562821411454798886903928294666771806373951586334579021044526132975757991108073345739825405983185780308602075108439028593208418218034771404850246964706951949980083838617865973866754242451648707067107271730734557276112290507329796971828198869850368192824670543695743654630735636176755348383670976565593024357551165326096968931076569791601030816920956378474669687870186428132649410300381968386548758371448827306993448365050429060601091641153943402095320365453073821533268280981338532316118508210510747798296654127557610543888636106319485861133828204201070656544550113900947958769712314624637501582966040536914536860947711927043883614801146483062037444810958439841943419104181798939665520527167659411971122627786197377486678120343557755182596022427480176012404415545780060634718346389561789242371578298240303186332730125060831376153761653170832875909180996447729969593562233203634183732593966287138690391919953388116908111700112195282270466389025822714334489063192083374047784737362327588960553945533466399833587909898334434308889853356807308786165685477968810086571038746540133035934462767243057429552546963568620178285375093680489106219372635962652232437317206242276763527088223170433994952249150084961887337614896432214944101717490469612864308625839223118529586474288260143297711597404231975384699783424848633539362951786562025606137100136822200556123769988551718083419567181252240857440348417614045393821457396168554226627142591209868903155230884123937792122147341520993429201640144823545626251842771543837311959551263566800725210844416678939198409509232892699848192977200102104218393275402370999299010633190369692874352547136978595246569252178887920009402614424918596358717133447083785656688586907631592166225098096071303538124188823171355621506291645856832627108709946177627849328579294939095272468457392164162493279440978997179621929324328934462794932924804061077802216383762036192355267163005178269875717949961010910714777429138982274747809940911367539607542495438233425561352754784857683495257889530194634580057784619152048912234038444334718850470911810280301604837570171178142039786399786056876130601933392445444489105992667206582902925801167655976241559539888717061706286433652785249857039767515827208665610677858502453237605370579045912090140734270598765641621482594548994188746012348967119145415597566130866793133057148489673603861778019341927512657446301935960789291810968387081155987243341629170549697016250788034380615350209197633812498305718550339495788613900613000760679364591469597436221929977948544971519017694150342931253882410615989331335504670326954153858865171996191311493657093138806191775806179955683646167357144327512953537899360361202366019494003144695654617605581329617120060438486502749538793307731201175160440072475511609200075936639716070648341305493004833541963843529422678025313902644156246820380950264614392046063685291380071837738094004452868525706715291231381049758761018162493979570570248639687408506954873089679665475449994288679429383009940734441099846726035379216730290594972338708041986894133248754728395185092819754380390423101552564389193005326950972033399887166610171292917003168919600864125551072350697230841482849648381183937356194084833006894250594624013744881877589142058326466659670533401426218507016713290772851743779605503482255629920966158076067522904037499855568280727307118876792693712126665889376030502174313552682729653470797461150968243433181160559883982126361378102646495642437438301605511675651467725272538481402011512602594159895500822619881700055782787740726762680330136088447445505428899847204399499997192377390278784055838640322538318616439869222849987690061576142306736660890718532804250035399652535759763120832747057442180580926711553631695282609542793583977274545770774424268132145554413069128724574816560391527618390389011563580834502304361652241163929855247293716843210927086864686271719454590087114457450684023805785279264232301263954061998850361878581846960572634970511913565597525675464561366825532866261233556772893361420444061113969602719804712983715814151177246595833511106775748897851587180651548505637415182040783947226353907116820246369347165501111312319722136633858469847559901147213659721441639176349385500844894583519962297670081806999013545832236512243135621645201883540638600228034114474765736161130680976199434303661858955150590596789466039537836409996503170936571968291795953833041762385042551943360626473654847494887195054264065542769423872996852258966896172224714277714034973705255001811283605337543779993368060828880351438587246742609897976001276262618378899228354955995547986807469556607030545325823121275175896525764365558243032050018656308235379905070666912637542014072207489710463115337276446212443718760340248729367073644303160550488229578009017276770638966481233745769281226805425763481151600738798810622888355781378197309125891552272881030608920965481298161370323232478525117960481368456697198720550284603064382578848714025036186885397836987645901231098321776837694081367662553582467228835048470726037966664641947174991669673740223773069858811625116042060206331784387808992444701401744646249288264877383317855132178039220140445590085224539459431658307042794867747312140819244963679312993790811866678640094423806528917881324108679267731300592268608536420065270124681392345029271455866292249877301464381718238533285668531545060384013835908459513533955004783819634965858113329672195737519876710276221117981530362020934661075490728049956586274154842309987223599736076621709539024634496268745942909720298038915919454902769091666668030900925662775958799499933068797285098806830629800879043040965916914220289538742996916176444749573191603262137608631660775201554819178814755933095391589213274261959281445700049705005248816350541323503556290918299478518479738288098109603765691087999578124764023780489720968130897202920080944236267758124817947631979009679282272403611296930515079420602401433420019679921581072448108616280301755472180005474777854703625408847806351680701312465213102330954067851637874080901024327481450341417065011881257172655309233225479579186613775058122320444442871907902909238102854503424662202920180544638767373160399557682405773638857837275662757939388091303978886599087353151266609556252724517327395200931469399365177609849989512417786551387594527061354156722629730440888890963260615005797863906830827080567670333578939640841122855915379187055682711414230121313622956918468934604126919177938561679676567795100126231315202424020321293407010763377499362776624068839806913568059895553762269898417751861729216705691593544428607190553431477281013712375478063414065252557874669098115374078658115239663219187246143207915270054376376911052331325585152421001767419697923651541352771139400587080172865069879967942680489833912059055479146803499665790813236754539465056405373175051745311999993348784188995210980759561924590228507363830904789899596818038888307824206225133436033483025791840680332496844975720538487051571344768726889748959169877711081126956110211562151385833502100193863880295411716189872074642311110134195160351201872330336697853753032342482635630638867785210529495556026000418145721183540267313411667693168121071512681253678438634495038829025818188131064127414607785800173216409779334249527086246047573631033601845439269412454063631890142445465525151233693845387287818104755842680088847686105801848189294670754757922144024206119489742279203950743764211413385516149326604733965310759660147293637591900842861519584919700611944923038457830433303778709351710269042509949894907903936132574829400845256027020999212333091638481873099674912057474196931141967945823714114382603034493830227649618644261945765281900870468145207277678699092784770735136838583651395081567821016402236868030920000425621978886463353630516306623898667382235844471913549121570056658329081225056501462368076686533997491211893058367763200328909792260908558848960783287300108538060462199409685261905391469984548036138611147739720599387706005749136752563097845678959202430313656771336565261394027033451232533854014973257707688723536418619602468846552938167058400980154703956131920046534346241218964511925026032011694707224696099904262984091685317906193485790939415734039197606750328983979463293864778348045293604810016543962120413972827707072683594984582687800121620357013560543669940623889218484303949102623048616569734700186564017874806208105583749984941684554717968601142423282167004821788504658078837303692032683352896125200124578179317435483641804984193503801593288307752820522600702837659804158056737678122681010628564876394325682191989627284017546498633061590060613362053704448398198606196402292393565396987527981229405673703280298825254568258552234541242914392004837902104728646439734310370266363688141282132491555922348816432324785001958139964097011894673276720959591223454211871096777864402287701673274650730293577616377231882177420266788092623135807010523671447268843934264548605183552401128308757860736813383284827693511759582847614455824790509804082065135418220562791881563529504311526582030730860196601006080558921875783299927163888474366134334607517432742246425414958820662756585254691524168602624830864152961818004994326593430399452534342306262898479308525122600214380417320308636586897386124571676405864665780360999396447860307938672394843935250315865058723201351103041666452355908678315644179232269330612084897923355697808710684493333078279573136863981737365522949164222341816498834313984095699237627791000673934540267244421970441396099940166788982815249588230867695606766194613554831255657443072942672893915286408473760006311331697012700516541949561855148342232969167546498973114564776499846947056745178537633298181459085833659143425422177198358439746959412221026260946863365463837440433001263367137993847431488840291466124476818467843307573716804863633724929773746421572581524416525913556560045369973073306459408958348155624510354025715703286951611974846332212226324180489594643952517639924794089259778094845346205810057145460697629398583771622409011001075633144257085573097494601824014830150094365125655953288227083665203410506239002114373681449067025403286633339578756699240765904073816241320366740041284510848184019187978993649779161284822917406540398051095425835773151280233541446964419477149464339563577412481083700903456592719751764579640020463230402879318002320921961619044608190780889102351959496434622312193848496170584418703165092162643502538255940713444233602072262198704233720611001639912409929414722816753860243280517458105562903935992915632041596036290935432736275836704596181561287060327086078898900571539116574671386279782809816510959228059393114791269501591225398917135420757441371530784997364605047667890417524917522686450425394173173816754856247999524808781932825939213469119891363422063678840609961516248613393200118850113570912189647098205045183079511250043861485508967547206659404991302689236246309470120178155484501693269913258659396545100176095887260509972138670652964354483607268584896978138411854126463084757073316626615787323646871428793092795965174095408339274931609068752372731727198368514100342910002922868620769702896450560264494088410646134210554695927607260912268921486166557215040908738246303588562294059485002015189052270030740678805210464708070280003692186682768962473460013226009447395001312299860039980758920353147805608601835038326693640407847605894809618032336136229358643518919854763309676502992997648578325731583876791456242251388454813916216473560535661855632708606808688344291849785648423246209339577452471137124016188198765874187417619035913172310717440391452025169947637358986618292534058535867726064602831878480905570012707845198843989296626524711244557313693806083440548759598492717755316275562530755537426039600195162339149311072865015620108864008615991888714581657283314017109773458970716809121147208024981078935679770214887322891679105244561164091922951805655700257812817145539252040796333094415926542573281930154496019858816187179015142741446541405574607576104605565788230707119681985431941862031282814105001546489770021925399672442461285533680691324577482397969216069977584897117210229063651115730293229198438005600004346975614852784095784921244876742281586241648781740800752129862935252788010621791759707862373777888790092896866171817183809133824978238015008438638609749339626877053337440287832498221747578217074613848827856669071835206882233955729709580869299788414642760885836130467410072834779875230806304599906557150581056166722213827129391491187586732443808077729672527984188933423804694325413882733819930369426034636024441965992784384157851299853810926382390107941506419922977018145022803767237754055908529208121156643030702361557335380922704706356390630145380569297774690390214060593992672515592614255494504732492680436357922335202558187048091233704257534586634428540581951713038104709223322159817569053263873405519547070757256729424729999668711118253713563984825504313493773236571227462486847312187219586651749300087237812000802251652412022707887180910200402466626354834270618850954793147300305305826744625914903924963399834282445314855281417644558345809743366213222675853509910759173909564667022380400451293242587855852587419301422022004794398435530693108218783882129963152344566081935631943638291688355965016383965467747884584972879975789565857031873248443784576498991698412064448584681638981785182551825876986912506162974184838048843231642904884751206434590772969252106603632946225874461513879569521938543275115748269466040144426132427546246296546846362561216345199362510344067015654559459584843284222917506190874411732558485712628435132072714824949964309883945062427658412906740708004571641300104464848124598841819541969859228672985707440691522419718761145247845233781569101266231124972635617878775511799812429585495590666583672696439181919296632514354396112311087427614058411785974401282249793362583072802230311036116670421316657970900098783822380720647570485081783973800880669499308371418280056673584685429092023848404678085984409991035885639605271485843069813663293446708019243670042333025300645996591368932836423050948532705358124335846966510813322130303440581210935633299381702572730527675550823718382537664882942209783332292034061406650347963680951802775453857606660744438221792679282778354433342428647300849196561409716283581075951033666100096178607660566117926066268019377155661760348655099299103146179593882528948151596958800156075712989209273874780245367775621979297866419067196702054304229346124946426468562153400298295471422650689270248829207278245642846894184590842385365314622913046144802220069403297531114243115234158426885878891968671005631587958313228662574034454378425487063788301046141820383278568410966000286339644035816398350033507938516110498153222998080752725285112198240047585106234171937379562291984397832330152942078019706585315380702757836062950554697558002526816179940807957838376234053252977450473654591155920963855930308292180570748868553147207234565044236374739766595621942390913047955958156479620691355239309582868025808473449711487641631558991652183302468116833581078891612990496030718825769168026452645394805287769734205131733081529906672316465529267639945347087409919547422669027139518856900804944843520709045130194171225734001226738960673274669342728006542476775440114339329294903643634553751041302991763613733810891026822757264481096623673210982765294196256345375609252446303644018709722529951749273215708076497397809159555718327308353058023781205608468831409179760823836035465305427984219975016842831798628058078741976029481594504420289354746778888393546048978073805265845286972875851507520940806759179784732996887707796090219039693373036277494692343250449181272422008382227381930431112724504352750076152949524783454433100970649607620092849865421776075077963206037846283077538095039374618226411580094551678569935396817391851159498850818614862942743548906493494114553953172317686078760296244207111918032781714975747137099873368219243251874563012429219433975044759549620065124507675574866554043745514118760111944996911764389618163267271413765629396821275949967778028943531360497595441139614595201332173449391205118204935867926912366063098015558258621758096581536096098516400301092070876563141666962472263582592632095905153720210633007938033509072247691941771235569939328542395300295233877093141101643045910215981426262324793405903567337668171926576647148345384295784741428854694001929375346384783876335296824198886346313490472711217722956730200966025719308359143980217204783775473025811280085305227459546951801823611804189240824756540980074057997349559839130735590294132596776554140664907113893931797438763703890123866470394565318855761521813645159296300071916415515067564908351500015606798552649228251236856499084201837296522726664393082491174361149531252906365397923997366152393619196109229845366094269448688694451629813362266378967939654513529235368835298257898155576251810250709582665374798524614543456834863734614070232773882969076271659988891524358028555361748093310378926087379851940192608113077705434414516697859514311142288769480125000255239672183558508336744283805291261647659003905000968642342595725339083332048311500062513018879158304850176250411656653894112066373481741395685468796051487478293108174445179685317781343404284381125286364198423972481489639700127957851665791265899852463497392544839642790791662585028752980619450929511274020967597341861499932139827194366641519556614137154776477094641457439379955272736545568775206634600062349899900662678663767983843435583772533530649548518641621426505516534224258756245705527671396492403057816628399868165239600808166477117131323447039329363680016061709446232435052683484245555277338977827347636517419287517612021298421884684098266164111111790721630334322854892816787759811387520302774700188997909007899919816138934401448745178711708003840250287341968839036109312649395000922787374305955060203778805169405487112391639580480076557462488849869678377093382044383865052275601477591657673751588199314951034965578967415433798314589038457474191019249045393392454340308953308937207873855735358844121805474843393179678816741147702790637623899039145402987503853006877958092853886875676883459938260929711195662659680836456037478610675906283554369608144612289604036536880209327543185359608271781151310313806922327652105531452094534774670291088890479299173740047137785333883608241733070878626442638459476121355861716543212690216600222595021798026597205983077775301401690213165711566260795066069467577134834223125565861750101245959478822958983812952845139421141643910125673417806933911259649172185111784433649228844932881018496907174208324970350480432334377709901678900434370081476929647399980544603522353000088598150508632178394112522435722627201895658510469503066647765376972186589999587767966531908774455572940831935238988027549684226592114631917193885164908004933131636131244354630131949278401392458083741819521054001770758066488221463267325689527760316715806852387826502912566350119356154059940377513053800960133726618356254528320139840745653657181197657862641304318061084760409440568162196897517240648300511343223766004548655546363788110289748464199477033716393856787063068088987116717697307874360824128152536310261953183339935441663854406840061042896504344406468154636099221466150888478853755906733261955310351424004236112339362094588008030665483558226237323901818392081502083396275511602270030075018675715797245474296961253893458257873028468405944745706173884918118071555225945075933523311925212915907727935689308170481651204031173858741306265088225073514262341417712125293862880171728380397894516850813149710658114831601409961488003219714911783741377645157239648551770652866603874110261752496301632899064410416544473054057996478801288187409915200213154114582992000801276979224183281229815208157047972369493689541747311996196227471889389358646924068272169228854142702015239263317966240884392243805461030714205781716517418646770083146646391777395397151735461924442317949080700009961551738359345610982092765063026128414326977965157092191639619023888669019631163856777093980616916308265739919780357860657902966898547760918852250981835988886551990019756104650393040548959062820499929374812971043096429329673040303863140775961448744107392784164771822065552890828157127411071503062309190671112782401520887309111131000813336578665378554331622340229867685727652754487165094415287895158215879167751630168672636830303301943099257736142853625986655340243107497059079668191451238699212611439775390260875404888405826839485483743084066600898258589312437578826537259754883829702307784367364256306521599799924073763081756242305881670040970444940252433400411168986770235835408444614646698665598187035444338782888690081624702954098206305351220868980159602567068436143213302813018256605728610934101069534179140670967674050257758972698450526572263519572732361630226500652534734858868969089814924781915499270495626220396105296074980536285781159080336792210014023074252091073678264507762253599793881892736865420729507018006754223076486350349557258356285009065358458227157391051472675789993800660128647963276025131394318747165903428099287886998037375070171993981133347685734880137968931331942265273779336721845963969299917970187638299051333093192369534380426969760058676523820381357704853449145912895361647115304352651112999981835907723202540742940716168867527566152004640326594858885198527163132933281993115082591788008017193063572744139765801760765289618475332708093657813992650813139201183506516266948571143077683134891475724419825709022810233866310119400351653753706464322419582413546820597173242060531958265867928592128560031838644699540358316653315555865390264302059147500789376485479947776269132785734660359700517833746885915400698374133976279484692885616051224060264282046777911150641516326000098014108447097349826284932948127597351252787744629181252580883263323973327697493408038948577644963124511797673177942243910025683311715243069856787238839262963613386596522044011298324810270759804346828960013578308112222575295340058227669483183057461510267332188331857160091539185778188255469362917128537916120646196143704722463161175937033548963515981418751272375421418912645019139655728041235962929160619969182194904565166971151967247164447931479175427502737639494766816077349689608023143905359110368581632606655138031526639382196179629151517406462689549159655860027966545653456568754568317574216428637244761565246898923566966882991284894462310557488805193774453544879878483982037331221300374638994677130280537883157085243981258018666504066981796787894662045470586624018521665078533798993204761626688518120902384778169207774341578180009174662298173406485550925869496594449778090798897316120599153392880775337490407099316402683201101358707851459302114178945692636709145796486145415544905477121944708559088098602006998514772102862814220394110139288404999679495843927303132431287807917078287243056859455588497049618111612605604756501394073375100963135124736725330505169018791960043047201266989633795404510160178575734341645203618279549800889479669225391631560244754969915437884146736272912006194778091782235716142064569014646910679396530168808526494776883481680293937659870307350709178132321933867617410814376708276062161745100753817600546572469890336190612269927657425870250018375586337203257894019902325175085994289519271715545110615585639098739545305287579621657990003590276172843614710512223444256663784573322038532783634574493079829542853204092624425576786982259453278074500695862251409293915933037781475331032325124225840706044703960651151647280282181713754413857595459935370235733998513616445060334052757054988902042361836636426072333742539115094384073985308760278903938895284610109708029384563274891374617247724421805174379083775746551213173128920084375266717183939142368841494155717152147203125012945706361359542632742030050626272101927129644681952763223222804600232552969790263542228839490778289095770229489600402608183856438015106876607672967693081480776989248953591543043988647153237697677789305843452987371437823642248835278230857068400820183409585161922965525298260504163382389471957084856702369018483050844994324178338680690683518540594536081477239805280205390864742867319263550596015676410861656266317495018374063074021900706860440243965401705790305715167645706881066516202945020532346444054677519215444555261611923070502259566499833585144850500119226493583716107948665587924877716390704291100065149294059908623459367912844353428180300829059986836412726420095146718472253660647498977328560067783392247251740372596676124650337648256682372626687477108745990251562868540453047605111441956620997327572843261547851541258117481823329274524665511475876954124585042483003265208687197340978690349818083801273207203224870147042969827900500437532476511225681057073244632347620967527928499629557646649759852517529496498878896206793222244819774474005152576481367719576708971193596105337283756238431626923825999065797877871280387015360128861848063516690869727672075411802456696332174061699796187997148743326620421829701774458934210807902612037054784689871287627733595778053618029672939625421933220853769335804756685966936088838450913588343470401180922509196068911835825192531335932672617391423056204474334639299439863736091091609203688430763952080858336684195749840306664619352700799323527511134031352838863891464606954662824179104200778365719400353240383380893412646165245453459405028175890722022043240470320977245859891884816355558007119880138264298292103123935614666592657812788545513525586690558729089547945633367766774297440047313426893386280862344329729243093192792341373896180262656233365674439112451852509619044094760937309238542590958952512501814983618823770850607759190986525639322668012709753015497479025793058738367034885360164895031303638263241894291701597400750875264269757629130107797058893744844231078059830711151476052583727718668754705266407617411848846081437364542773224778087681558701463010162771178506509576563208343977533310242116938448084792137507739083067295595289820328616988965919758877831771639263134915735229255390626930442818475060730161164866968310617633044251978618124544602973313803132279693737220954646547690395229650382392644014027059945588566924782807681402335802789864483394330730441143871972291315212791687225967187842400956862943539756662922178941726663558039502046444094720500408085120546514524294344480103420217520440827104652123699335702457581522658886788076056051491559668509129890694304556932753187824263978384687670504969807006625043606047872815327637315128466317522526239694786360422534957803800274081428183094011776725110110889618696204597063776167527216880412090706049253376109515239785024514710534946759447590461950174413348181600993671356831439569581876137848147373651684227768889706886397157462130421066550927199522588768550520020624752570048034322405110225621128265928743378658710847409793379153920861665291713685900632364143234623677163666355019015238472710352090535328061546875700304741569994136153376807309027810084496941125465888157700557630707284671905492949340428799536169276908248176842471103139854734388421480013541619179011021452788370404192795429921787977831624675905435460304612021098853283942983989249173978477000088130101697913704409563868076429795408215818611053027755530004419329578697971209122681123897911697755152839716220422356590368388460599813069939812694616390979877938342255938416486168851302346669088343949167314119839740326674136735930770669700086194335522317303766274534077501183887449332461642979586995325207150943222312050658711218018905286566633090651583872347052657189071162303983774963862254825338008053593361064414412552061317239281888664602137528479263910724208965423529483264483709707038137696197746424142685646926883529532895120171159438405349283106328641380552577255436109941155066453556423476098802188536884362230305368643443424218531750769620572217651128907770861902654238471457241522706055677878582487815141785476660494414327965355236957275024465164261032449318810326383763244603903731115082941320253970269651195846015453239078111367389367557439300461177052381323425476944759843526877198007332192790900113805093905297116336179808165527771519625665194470797253693807797380798571274754682327963723188983016914446823059170285869843119135064329579838526176739996187498167613664912058522354248757017688926667053696232018832195942238337536602887963513109301271238000153930477543031670164877813235293458026116369492926638464334375375784257113265055898728403058907626296215489488199621186597617250926638357878207080298345360727421237052146960085333632941100615145102109165798907128533463099723877332415667731284974972745683956346477300778648956313600838026496505130643421454721652657256636238108857671669893565476804263403040181068499152250025279243921881954520204179906698875546844015898352928044279177181080745571337101781991967752939517929751540158030779001046881021643973043631922133928408271586433529550214088097109360504260274415567736336223492184572515461313120898332753295634843149091173531224582226379133133957765711926263156986430864910423768246069611338507231147230970504480247159839752938772263952406476556078707983180196184234422448358052305015601972627822208670802259888129912444086955312557493879713121496772671680945489747846615898656735142284636228634988139268285707996534440618153252528293719432821393256909322339020207601786408905385282984848180997082991204638051766487474812508017221758094159627951784215642107917206943147356899176846707410971095754521549766073953193785764238921681400821534437145953112110174325612825546482175069534816310884783314388320165201187738198959227990164452554632693271549018294021976106907924378657251284997438840668430143028629531304368737895980615002886730029533066833359701393774431857061789266812293698008413955590098113337860233581002863213347367053566638323859734119865208077503351500472253398112052324976157921286907937396045309801729667739751376293285289603200231651282673078854701121996628217603779967232188975253642493360299903696777586265791622613752015977104500196194724950374249502474647548729022220471964852917561389246654326325183302460744605584026085960126759228960923856615869544902934246218098120753691625514792413293714484902252050847686898052243535589099214018567269435518652982204792056371848953295007539969302110228113470517193195746173418249442391909695428469372183770248935476618486655250963388653368308490458051544572241828111609318800713123360252523709635692813301832633672818133474510925018029621705628774480860232127438128401247445469425512107885616976530455744011044402725384292888116744086500799808743489953669743415615157303710025211121357002790514335476078141814610955269127593182482518690196658402070978596271685461097075978965738150514562775628046415579892650506801850827004021669602045906406663718548126349948805964044402202316348279107715447388913822427238549038406990429887822255293238120515880363616317601100208317800816746846842698534551652603463302083664268712566438795363776204489150333484674489201340746140625078182005163725735445264208086350360051166484207953150444380624157085214647185488371177951994535395601534824812415698614408170059976298219678402581537252192546701171776528152110357537322997102810524990087186588124736351381330067402593028094625754695113080870648626916202779763394217317046570010045941044551678763422646584672218680580568626861789927354787743988552867972895646228888562697764842868573682297125933051123434483709269299834285633757186808086999885412574276159454067808192759227682320228743431182636182919922081864526932578435213397896646079312258451300149130114083995392644704610906746262035433539749539704288212749750896587584302398924995560079915757938114456195617213613603619150315627646003859974613702681071484843700108223661821648263039395421499760773911918683545651952695818014483029900867898991272060276044886822395340851822591872801663144928429489722359738423302052954030218208757743721756092358120250516795125798189191097206569723163999415854116588587503548545701307092189886957280816213163912088230853810274375864078263496635246771378961710341166485389090292893244556418188119714622818016634971223202958225409629498306143226023328560519230859140634268481527696958298411261877456792245134765308574293914511123129131851230371304057672858670862223749303673855862821049169419185233601344411004258280391177267551753708534602892712317624556893129220589621763047971140045235811536229204901681040674348071715926061372452964712473942925631816401427924369159181664903608016085913889894640629352708688115283163752248931037922895660674242710918364231898512973782589104083644783509169022161206310000804639369291283424706877171047970354108827513442106365414280550703958342366791160806090923361141096556438917729591054996848780881809239933177674390659453822224569186530325342835065113443028565761663087699851745155705911671424864107733078186947565543153560748274247558404773898315909176739005559797183265578040165206490258908192288337014836222826141618432951600864719499220341152628097718425619781747474831812171484474951899520822476581942048680437150104798319360420011708002470210351294972554553812869398209805627210401734194197679234550628577924576948149269524759716363476121972752296334295453860667958921383763866449116796471769321052026530912380895514383986592216466696638431527040401065085642741318067190985119955167021851919128833894171539736758382044955123914516351812322057710299060867659773314122356544752486469526784785006348095520913724879997819749394612159110170626678097439604336961911694717190827511554207382116665348172617151625964161980287214002848232540257273025985945222650587015706460996597106794944616249579053480689811107478618040396491762728819649846925528085777564316130269433490008008074072876433870180956637693351520513748032895933985213352698540477976334341440323181844504915300708762057813637191618134445236559567896981629534717430124673876058081482321519749487154384387769516303013210054557906983624594018748092849780905989558111933625163627583454905897026146444575433024363496488594152508653506460924309677810912861478656692451047032036704714324915680120948272995180122447505346471557135737293108918043142240644469821186331227133597496148873058194929430119933353519191995853414747281001409349666920055426817207668399816699010516919825217965022470446358053177005792842436925345921323490103844236083369314549655415890612143927622894231927150926409038236974203484277991348130464719083634312135008369383539633385593360740033543011318091645636553052049020588214028863620257083298550446835144700058941532461574328731988339456574413816203360108727769654767711878102456643715838552838083398033545774912066127703388677265955281316202245630330727408821225250851589618971496500606224637536991379161240608525150957876423398494774024212779928447373075280456000500421865904191281787253882474742070904705221738734911761577508018234900996579034673866646688487469880811262825624976339088542894493413658906578135211057650953079564053652329574591950425185585717309259084817547635588021798260985486962866582199806365515985707441706054306233478799978866826474294294084352034211817359367502446840110002020225912514405264989383024407063580005351214985344757034954871742648864053282974239224632482417993536521934564872694456736982388340599102424888964983779021426950599578522433440832865224870399935312149999128290238078964250460051322368715170850877380968360874185982423532038663689337424316975110626418771058532833663260179438932920016100424429807239928168265748671217857743121538682458503017944529268822302244967547409147703460522384428078925420185065566841736377577894021815445669217069469848897662691688674190997287145876702296867304095215321720965699848391629099835581291534477447542170747636787413954673298621212048559558409368341204560196574770063071013248243203730951483634141166737423539801187097851159695308227523236220046409046831976410909087071880088889419954350658244544134737369342438889313516921782785996292410515118947518396121427416663619835091388361710051230852467642053076071521440231406956037260309152883984973312908763281162599345882724395732566240531092906212814415108312823541108654852837772031763693001494266567673184857437966721182049108219695394699290378059004026720576003341036211748978405885295224978939743752404694926986231914584318383149934993716980654253509482418287427386147245929769507893895802416349619833040519982494720751378425527763724510430468124759622944493783023741603638691709254681928268223015494899001902695594240433886325527852779206022085187499454687372967203076698172308777965372769934178118412932890748868507659608521984348109116843875160256878187961057921421317697314181362889989837692446969558724496297775822864571704596291497680293947702787590125202468536842936991354897948630076446945672184082611235984864777717818027885232900628218537643463845923269486674074335491096461824295951188935931107789513420300543225499205338869427708290617596174491026275719195753630084865032150219648549569417838746892561725972056314690333754538414514700493230065516627394323648755125611811927183611481493901444430896337670061602464164771943136572338467274738144558532449479872935304876729637450361144582021715433139636151401505990899399943111791838850724613697184226985497886601160117412852957080015463127881136453793806168626380855433320291497057339965933258603893856453253086223337242402083152592182709546151395856953939859841287245511873675857142331334070163495503255017228625220232514079149642815449377589242500534834950760674664488988857840326179303087579273227960142385241994408636650168241892629496305736509712046660355152566082491518804554997320361455653948895383929634336509620970717344105222755200125518142628827594460363779805114695625878019333018620141772807354029892831233588744370416362847386162522599023335761158803424889018406024287167450920162774375900364158970275802557845160595026298163382582773643643844562535524864429724828067856266251466417764866190149490569762792390649163186002209767199797700316774673196404457561712613345810741195953317237778743409739111741804798501545694820953777700307139932301073715103945817396980197192677562083974055725760476552863696021198896060329133061287041025984141425839099412077120042513159257725659879869263174113862851599100608620259502311731283085703476656411001192205140189048715000470366356461446089772309567133006903456830999038441738172689948415167479998772785321366329440871857575134767378631082685037393181626412484980866948949455258485574797943406908017682959112251560412564705621109758041015761484973783626046125103623685172302194456057404425972253761199268509548283437945148550771274969817361935022940320346891557729373143089091187168074876011849270026148873270789759326476693833021122249640478529025608406190850492643493032938151199788207144621246233359375979792479918784622365148649127812323926214951307884444897186036539188460822530694327775131783491381815930729871803891860319968080427369198489660898331780168998652391268617769294841705536901173558625968422967665009653404688531062955817211979452123084696622291980862686696800110116130231222290387306642428037427368241320843256502376403800011642922001611467514534744573535827631492026357762898734306680404162700348351092311090733878054489693233751604635738048169594753965993814927722655682241868964379842937046796255721761955922616430605071047879406355769515729666008115225704509350735807658003501301785967264570116417526383284291817593161786758742009245657656776526200432438383055487569485248478912214667765297016995777512818353479881272855984437904683884557558140829317495417990520195422407030121421353723322066563148440576340708808742332959077873940318213636454903672520110902957899303137447656346474095799151468386350990863213927764326717257639082674749383826576482201250154109072304094573902979621172653277484544126123869022233378567701955531032261632386511037287964581572924503250378668272213634817767834525655520827453997774481756676092876890346791703583014527623402662014831997799186578652526659352882469304385001587506196267768360860090825417486202844190093807166930771341255928947678375906961913952581014632438121366077450290949156912141869826274911264475872187331557805375198936624398970597740679696053598880227200764685922908946574143051671786230595267722712087611719675172190797435967982612779296826539818124196500671198225529485058036439405889232902996924918425045203897833158986048280671053553843031522261902375463174777646781827080150559674891358679973983806384081279110246404383101491142277704550022311019701985925890898580344556657279021835233421749563020878831788804153173140247905578421566872387945425682615918180298226282749139772256001636319597301373521285728495554173843039496151030274998157959294894720542693230074671226173091565378522550478029473051971224845924741702375754277620206206572607328304902587683884275646135123162374515737648441038103339392252239569934610832603101722440667069706716674507298752398382564595506816673042932850542835177655878487170982759662229617498569276813207305253254866399247623879162436671216723405859394281039499489246791394854262173800430864231738332939348916036044818763439250205781640521851948688865619527228300947311960338425335611278854209962012985094805678369718577201119607130010562251008776318423935379849456593582879907017560740310109594130234828699794623299435408382334415692522403614644975251553515558612709421644352826356379729067393500380340434497164419718008106292704717292466699598032522916854660400063442816556613519657890289667355824403734280327466719851560690220211468869155483775623160776331495630656280161458082395799536804607545473298112931226157121982497165759101523886718808078825883966301986114891653221447651225860729533069384978358469600111452106620057445375863249126815354208876473241006466138956024626858541487564909747228898197616068782305761304679987408756506404967018965415243381645186626628094061559577415795002930512568928590803960729406167568007726699704548994244655967824127328306279730157686659228470877263841205731120383224888988016991216961014584453141801567754856580390908046082247675640133627508787578419981685140717623002654535376715320469487101663012364154905521291917334475152425132375979967738712523490744691277554187853388939572289002653498811940329806716372692969549088194135600118080262527443656091572511982514576139814537709836060914990119429952835144027331605811658869555058676411347126341006493997356756944422683215202000882357980638970154706877334435755170748026325818009941617522167656986082396543198535175890939174050665776486040351615979114488202126868652144900086102535754193836837921358739772483677173569967726731877159267630601343160246143356391242026050581260565275599020788216633351643283332027125963773862741719549704264263023015545557759106267176079257099314831296601466534165494425977553133674622295753506008691886646727408903482839975033987630873073436775573237364445769473202592820583047217969688878211551125123027613481162937096859339130116432918692480513895013712516706602802052443240977074329853706600322749289974380423024138019159146638600914296549308128534663140024048217759704295282067242464600894197397113764629980731988031790654307941052006204432722286925551950749721486663888873052018740463818452403143154740245712394535924834980246307511875106560943384881784406257507375478396988218016745258349810452662333658861020881788804478416058939569308781524911248745369238998717756586587131961574681298973271292204233733888978159370095041333219821222743264171135852985606313608198169965111391916734651461346677732933579618690769904244138955308835659404767906104705232798378753967141956377931312965285182081713279612120542414338495780560972963398737435596620495934762642978967470732455972792383805967819844843573315208062828604768020595036402262782378962693880288515610788091532843372339652580332360749922633677866961953242702606081423591619013917599269416252488062826593720518064842267820280612523112184542159274438756596791697169974598632589198612411941085252190218752315155701498840582218457541706069557742893833424811495750306824386092563809779293876442079022896152716197092422683879463946767702021098103757712616226413198530401481819997793631448251482182335019996978624750214839190251215342826237129174837488975299494602922327091557029092001408937268561355632694303414488969765766859490233179305317715622113641531589117923095365228806813282788773775691118442768522467903399728671848967681185048582368536583094407341636094759111715516703253139068841204354496817129301208505102910694113735823014618406137148097761755029867972388232167927945105426574463991293513652396064356759954383585612865255878179977786339078888028641698008200057168432260682726280596960667454415455578549380229075748632393309560491762097320994368656625488472856633441098393369190285327893658484641865474774338472770049717171254550696499037817244121148683757978542588931459954468924274820114094339287307703741220248250017227993660798679846870535069110909365726965212687532187471178385595888802179611283791863085980814674994904902858352134945090165544522012014082594973607620263083112612398327781343506842159181498195724845208068936920560753973482289255631959969285108562019806955886680136762172687880943147501741855745256140343461796230561162002248427382153123163710884845196114817445912717448108884437504035255917952626249606187828530819072090824269935387300545682490271519770939764933285734110039697420810396396824257271732352850399416787140093755195807618024613201265102742113419737055556951044360199322812021503244720396167995362349896060543871319496301570927867956129892888818422574465243380059219395626498721948120682535574654064254303584215173069290934172030493114919232211393444534296163549755851338490318857511934335561029341938693557063525656872333586507523110038530993787106297700196298443412712825055169549814143300775079952093834360574032993532326811793759604001666909057448102786087546662825693142829963550238221113616020683483069455192121279634906504836442488319418367174969326332456939269245964103079792457378355558170784620367273128907701094639166873085911076166915874835755649982062340432794363004992899451477517434799671114969474310551240661666527912780928671697511740410659448739467774214802157890488752702027598008938161282122962079328839437973543848584881355318158783856876199412439807014494494246673878392190238230053868746254016886529484854146477281612390936924861025866741703149104588599218377950157347557822522515954903459688773762106489229799897032350596746388323985482040375561374472933113362921431207827862070253260030258407275321043085590924240938578617775970575327234436734200053096928495264780253015900526329525099333782828847293431373219817243308038263941510865746186011108616963745656445424778528943784498452896517642416344473774431448724225802832694176769290378258052998326146395380204861908337854597045786496265709158309801631081672653575117491604458455237283699555486170241945103912512025777307498646220843541318231834853875807603609491871898958852968287197651362652848360336388821948616376029138315604001208226105481359150481757161112193752990036789425013998036957366797483623158176503299490078046166877986875310729557967970636475818730441191433893289206418168798755638358754086791122253627818990468750887411142168699687759545992804967903269486169311862081778710955651559909142748743873257501814033868015691119401597404907401603466512545401998155287446851198117346318670128775629680035356567237163068148145643645277276629711743566261684080238860840098235997440523015373208145963818217692096823183597305380835697393183415347098627151158419602899206375846125248015179799559151726847866514217695005295030944889518926203533828348406706273105508636286427619802640089829223902998795075138953964400074060507925672510092803592370246509892188943777470759175367917673395878987256550799591117761353925395577997872554371358905408776854192247681326263434299262912101529679596321641476733790152226678842501960239786649417354812383199095600681209528024309372086717965852247200402116007877133753130188887270836981199813548437758800238640101977140505020743549332335954918949100937945996491277740516727889074293937827858280753878450054518489864191614775380370258995497927472303129522705966019031008095223620413791288140811531092795016332174619741168962096006897391880736798013220306212016453393064061071004093440695979619721817636172036167007624291317923906785480084301490145841845192447159798403844460285657182395348251610498237120156177754139443245891801403317684301002068371011041758517530405554187236454288423603010034561728119809664205597112475255501262667873741340423872576620617916077814569892680750352087689666820580620184181459985732901301108959939523913597657433939540563128532477103440441417114985332300130757531464525162154089472547986600427167299036361022155957120840685385774779300300911062855192658362017171263046533007424420809346447928028853224242515574316945509669628359024763618803401428558803316663416218116192259577661340570564492994809238643424572720249563359844094275215456074367239177741636271087049850954066855963874296549344107818905291442452264050707951345406396367485028600033512659426405566675908260995648017479029487482451402434110998062438815886160184846093618150407512435571339796874302600589568043743320631727964765796009170242703246097315953039271996457525933697332912167788238586177944331354093966572134987686097719581487283880150392039047498243054525963348850246988628973616781702233790260819377540333647349502701676629444332831234031071173230041227955468100260534664878083791500878377168842766496655026784732884282839310194214989078473304768593517469921123053124292099972948609943008744339176159307751288522123077282770417222342268615942210035667622900377723851853925318835526450978136866568524682243457027361808698940857048124383177105649300281888944502565203112870179900685024442867308370583401971361374344381502111446401847815614483070139784408214550266422637794669639577659815871554173273687105184210129132654961112031793377100670728412106596925227570092811268529128146308134063897868957605774100757680683180754368249175701334735103681589504082564529857522805557132608616797454100274485229158359662540725752919600787844101350199882409983831791986624264167868954014080261374731936896175506766627038009871522227699458482478467300592737143849857902203336166137821668486694623028601641120452165995830254696222202954184736016578709459054081139627260994389510162060299304378096768965757788495388591577933239401491460599866312805409186750446067408174814355664650470948706982260502295800392802427699393798413220821046302498418166863415474196056091758271028546185906094438442729209695713309440582745535395759619319428022597141454853052189100069333990068877076633986325655639806582356186962387070480456072446210305561248265962712205239118994280216106182695184515229790970606129970483858296458741692449613602924053979896809796171680708731650525269490434360136874851123780734075933656873979822077244710467060277277682534716866780489783197823804231399650359202362434890613478660549958978113461532156630853852245054260105258894757777546987214158834384274157335970838014395358465493675443425859333325438314356044044433368002274053715625932278835280252993647287405949827248730110008805806780302179070485391639049925208216550193132105191107523804808853776920095078946287509745387187049729086335812415586695954555352415506531887247494854220043186356416985939829314679112525167394039786466491726624558830037225074526985913614631501844478693451822866952651003247795404842996553916280493597876169851474085328417625801860235613060633086814286024123907265119463633022888243208543050804322699369206177782001587279627861552295851244945523506371207181985574866205778888653239096822024059245655170091468771563419263950918055035827615943051016858957954930331151934820753324034614294961192993977840569346388339089098247178392400259524041728867778067090261914106656076432649672274221751784765452412929441339122173887973323887510574906047274379556771668319124094506262412654252641050896581518452346074433335703437703538613787789674677618967984593137276017081122662944618979433588176490305081728834153615565668709554472023570279880398709061217364461056955877521057867637100112041263422699346769284575829454479071196455201934293101767985862484743811682927869407500534786315035800274825833699072651460452005793176997735795948743640670523999917749594092976609906616082958048940107876612155173546455734440418068129000502547868427062515197231268845478711333120321026796958940300771900771941665127847560812331784175357099847324168161832245224323465153057783300723172091432394410700205266341864620565314939558200076454198283432032850416331554919483549346624840447990506921694528650721073470171953417235881930421646042930538964064912058532391112082691550458160082433820661499054619977603928204528994414189076790668323432653676391337035269251853480792232751523935375483296658005243727361288830745527857232590572338866757051751880651286149331929731644823442497552646105064989674008359246477827538203341663574742807840786937450549645420064314539828754788336850857893203153112319210243742600704990992247262379701272705594912009330707124769003936813639447572443558481113175806179562183187111910602706363829207365243456494392902189135094076829762850550882820635509549848433641951138483682162095257849627334108799974670116868258311673729712908607724772878545553269586719934201528986846936110349419574656183620676647056376169531634040792284051805542852379190097902628086875475572379744127194088918976112066507163578737515548606320546197668317019486838630678673479073432278649439650200429681591274586717618019507726675359078851518331265843813863904307741742807103623674112834794057138251378485146622652437402998656593324973774829489333529132179975760690274532580214766352677061176192397700271037216035913155568345844591287386162460749070019135499181245630904760825683634985025813058995614982704045466611739819653238835346810483644111523226229955672799583053509208888232976336937889457776696175308645519134743031019324308004605485173748412952831294222168102612333359765015425808423258508112683472596194116483233436188673158570767035398864708179868578285697212190811461345899676731694535697576297314198276515189543389572641961346903455050291006798853212162323250462030070081898945682861871151896659468321565915001790366721098553663144125344258126259585438046628300611035130533023692419067030276069802980581598545330333246027274332484636176441077999529085584069863372677183904556496627396126539191287218425450060683190875252142381255479639276800596788020465150579428253094378190964938399674076988072412825427550815818392915049244501091610732604214692602429556185220859281081458996496346496539867435977017097441899770697791426145427213879620112835989939501981466498459797887597367408465646678708954386822718753668466842187713260731361487519074207567710979466202250538022878219970854175730724807216920404880010361792047420809850534664487733281776770157114396799012800713901690356344274071758493393085574575103018152993099771755115304576452255706580834090193606731582380232906962106694632774731398395115852760035166720468750331593418354299356486646618945143301375756448988319611628201020961244784830883706747122343932362824172679827824804853020344004209463835944213091055293940706053069117867753558292190618285287306968632900400926376851725106216996256256015505400557574486686340135312026440813761945862509338992932781656119239140667967017989670506595948243637750116348493958657366812220876157593196836897475612750553031549674162910143166895019763025390516392380955315602781964202817566846015833438616245867680306567511761268472963299572816080700748449948389140929604451226520815708773058788438658559918760723198355343228624910851873178662129255235736274359741813998304514769048049748295375590220949940766468708563049075508139312054782073131577804165585434488235503994846158080374887599737275314522543295806030537036112323229404399884067577099400553806590297658526349294010836027865894898208958197271617869493387396149254005121531033732022124440543432794947335271823789753292750644547727920226453030236585822184749995859762166803786355587417142862270016525858316101971005645987325787337387484838673607875858120887532689700970360244110051350193910748818190585759186664314858399086733468787096729074576638847695141795007531921963202872400770132350498969339759802472556741001387877306600095219756145830223194839970959760435238372565804411534931568355582200663861141384786475470715918331674393204477473858260903240175280604093904727613864676072430561956729942608031233267111592417391908712301189181139998374304068332115934544240060449033098083949782048502187169905634144944161085873426517475606720332024869895660692709746020705190178142096058843787143211061810540389940477826397279766020158803353146536324857337580218574172619237760672228037639725764262756361971873756721267366859077311441231634059585044910877113075396463587112510520515443671527532070882316322127106949161613446382630052427300746228966912847657856893435114750003757716645871244108421486370430432706355835666308251046937378691615013735758764244519709180765202376363870762868058369459818342754763022976406210624129008150690900546068342867970535905256799528144038294870749731391370467372926871756343137014783512138029249589495597005768389918349120313444448154134854040689824369700983257086917048660637007662412107204207011660929351005607707930185760793472065343466651404188782048485725860687044108880671310176188934072782705356648119305831123959289746917149436674946933194464779696318957758866079531800657215720532530542021667967546069601113706731910672146695051758432878666538760892886398195089351561891243122836206629035281045858890906340855576771949636484919467679498178066215787124932102519973246369755046098024924090777271278525362214697775960885527904938296320819209749048148705293036680102906416042318798224838035807745737190149000786645504066560980614372526283470039411755220305818327125349726726325372985929807182839192182628988200504266693852086994628204945395886241935385126813907005926360966907721039219365841952374905145066942769852700080242505358392200282420273396398575402888368445877543793728658705192050670561574517174866860701616975845746384798492072486873682693308808983281689159065486948930178101578261627843832025669921534345969610383223388944982424810355054731108113567180581159721102533807990739521571727113522019815423755864410754154499700688702292671150166994648649484093352509327891794928875608453724397935429636827994983500402444570745558574924621628960944805361556079634265382076470556494692329253869365453584345519305777435749087884170154255557291073455778245776700033939962478417706048099136452073243533844219951472167046949130804375702903505653790358976839690831283744826425774094075432689535832926060340004453235309090534434706943694891883356305971216916578341178056024786690029028314600236916553001078004533762821023317556641246060609530188156940104718578597872750553261862681932347635173456854590096462013757045608138086189185933862896376882892195843652431164815110150427537943547520378750093824583962577064635083267273917318976179388744242760616023532121540293897236339809757959954483012171604000150219430684989988164965372290426913234213945781440056185259225868232321730684044974376520835713717054111380847961655421014560822629646907484210799311060120383305758628620277806027527474465030103183834152439373895149008893293274574430797506958605073646789953430220361722365898585505647009016309480427530481012736364296286072369480093190091121977389485912448758045258569480436406723192096638365952692177591096669011367812257793114325864089991699230348943255738755525361998632230756546103124250087665935403684136887434046383703075627342925487415635942334359154431380692555758369058535016488978131373462783589217298748121776697620006977837840497867707383539003049418182897301753806636942748081572563235566053182689185937144207428525331726914040765864565517027078727068935628312753897297727217004370782169067779722310314754219787838007711453549740691179428439252137195704155440312865577621471926511417447799671181537335318987157926964711486350231955613846186396213173427371299248273086947853122261495777215817373144847307719313827150574001461170866705158298215391566267483558869131870357009622578250118768913532085314511640912811773078587540678641633280874837071437990531377962315796882513537574532735993750096047476239248982838112934604155823810947290097620906799720976443848522034134092621123089522316816249358097272263699390058051329636036735738847953136436874151165763280821474319526040514481681584109824401347322147819234691411688132287898597605431568044071967556482083193582794137007167356369593004147944428775085970352663636215100987821120809091958021045525091235067107597151458251906810588521259681839592685032010700324689138295630572698562543766281087669430683678084842308280153146003855086875020269603156714739492511463757136054697040638390843305043713399099706828925028615684702899566228711001326586225808009310491025511656039911148685623749185072077281537678241234379234280822553274041455425529214049629723649644837249206669824013238631918920553550178188092374158494858245060191623428166365589249318659478790787043799694131410309398350492194574498219790005171423134196847801418904614196604234771368028169470350214052588948500074302038828264770495031604523327020651891539916396844023930561242936853973445426085807685118597096546222155465778169306968014027284041118132924491939902836182742204663468733592300097649226612126928925008059610260326737899987271972902734962653019588090186028533141356977983955949984425035149946424755967442033270134207083464651339313942562159355709914306571656199193279117145244704851821933491338373226312306494464559967212251869872120777317923549731744780128102344345433786747694369410992918301331513960882574665024104618652620004423431806122546249787251655379607739700234523520320797467888336796095307446720495113111396773942277002263153345934649130703663040518719423706539046020249976582362445101576641842962962141600285431321869874859863768564996320227321102138905937501806167393144678943330776295766185863012391693976190416800878859802890658990369898735879998690223444332820951471533377886794201231999869856301202895103475806897040452204393667686973575427516702869200222437385388014080952090386385884147644357930851413168316770733072930248753438141076404850295345139243525809964741965448770598266546555815273668964189209892622769592361730030774910695168737396436762474112846089997309661370524889065260228954896700743104933187048917651569626718848166019360073750061212332310954650374550640468702248463430554013442445701095973726921185807380144651268851047891408499886298685933893068910343516526956551943447747173372714346465195530755144869034303395025173776723226642853742040095641631730153731991393588939884726422018958790440692092635372120065552601020172285715061648172896978699055304540314299804136182618048491756517194398387763778344957447675607409801371217246507758042649517524829178616351424839452267776868808277244594373753847411926165692004972832642583383099824149233241240344560001859170207447080713383294611069813315989980129513435445111257825294857641767014736527178826828663407670632006405649932825700342997960334033556772756844048513800293434158599846831357923018334546869953410319895983016639486604296396106210736064511527699119485097067601760736158275423738999004788266682691156737141549783930385890913211810784239496392981817247520821011676025726557329456208565187345543169241383913892376642227001224459781138320680186528435649470770649890311095510758822264086874536551043937023377219819615355305600966289001312522307024273418586970516967515464281160550591705498798209577904074415717676985456320822277178437926042519071970047682534756098373494493681641872797944129636838447296305655470593514224778423632050933657043491004574959193725612052496756967707540388112384323162667034228008765139035735505724275114558380660451093418040818815401043149312604096894978646027484717619868405824925034765129181873953003562853816852884162763010093347334040839470719619299396834182714010725623353548918059577865427784055502656624220098277351680763312015927153306568608104952029008974278334744741454590828046427682636213982281543876316331902554664544211480026628391285027994771416257030049517592085719797960340989650632830620915023913049938546290956775717997109865591226162998830976291835542508339116915980418754732081935557509562942632856013936684003677708773658070327622944329377881756097651079418281326518717561866787774935082256494779581769122383001023052166574577024878078364753047869393904181323063441814268800207295726515126177353100776999919189398330048779835609809324594702460127294991265212920708669886776697697097881986269569236442946901218901985448865224049234063989054506437709251916792066745963878926654217595736885467841990477866457170291759328918552929188561566797589829324840746307636228560965365227457449949357073775947191629147017960355580034233912186449943041404538487901791056884625533337611543804888887925266893335301867801224363952824518098609275547862770670855806659265482582641925124429517948874758991244977673021888789867068153549975901827331497103225349554538480694914767122403211551396953267426445895313132875697668183484688406278369215313971997656420825008297701898624405917921516539566191268119277765092262591747392151825234525205064367766195138964696646996175996092095549170377491156566182934968422047900794078875540604032996618722740909411905844996258101273939798339530128709054246514009926104883170961165181221967069078193983348151884361474541545117063401243571531473969739032525015515633323201090680191428964730898468389058059342827467662183757408691811843128426735299894476375408276643138528123951911447727581932420007689614249272218018191684611513089899150723721107409833192970789226434331549043211916083155685532183499436316124500289991093389299946078663006083538006938480573832502534612474099243230672223903883783116840445868779117543194773138219473159096469995419727357426835281741364698646684333747479763511211029860683086275339988594494746074330464853014090182394929150513311539107086205866299126579571228316516092799054966502631517707139277230800477380580877462559157733495374388910379402138708880748347951823712068832194425718605637075670546500762829073765922661046140276188208094681926954839532083416568462401355789382857891577118156191230397614523096172930895082339970313374787992750198335933639612781440872322640142017768811061490118303174510161956562623200327299153030471881100471085250401884976605205764186707919700312270480208275849709491143154571632376959236962311947310507887866358745159154258070267556424737979988596689692169246823321663715210967656032601021271850103107593690327026913093476458807329774788215387429701020628461250525168846563719914628890019832992857914564769274261512276130144888797098533598545518193079750311645350816896359429162730921013590953431627437342278203617607068183536185785105123571132653601705235501905890895599812939675117363254638224475186465426514202999859961377651846314437107991209886606449723868961799576659178546740899636153139528589228939582133951398726130740711550496591306054079589662884171215633478608067833773087611269327092465055083474949019096781291023711432009575046425078781600434878535758829642314608582055262141142493760919172231445860522090731217989350233524870547884016477197091574378676978395462010302325765674127592404730034616193853516569534226412885918138898747608128743812139172685418936774698837296721633746982185556704024285866708953580796957619376839061293377855427276221490851731862021580488248249238665046315730667253838640748834488162817575820465796431133162936489652367440839692293878556595351523128691781326840308280612017564235070051039682670306871322803517619335090376840355562198677077598568616543548665169499280141161401951553792718771459158917961665906744073187017482641229071213605637126908260031586760140263690387560239962760427603432377859041210404645566904482830469514491954672867535111967785888536352532158166247526253531271511621029759574045809951274289492146043372075151026121926642044540305265956891081810581591373173491369730857111241345108711866411786330741033204942551940342003468268125087564390433872624325149061685324168984180288089783292787819328944960151134060999858637144600219129665086297122489866904578524034803447900943582736941895408871379391224691249677969468160429990090094708394889805184239948631691420092946331253743337214552492048754653688692507296431829462354363676697909982736873143863280084714746270576537440960808509228217317573621321275696624724959336769182639764541057553782329729904834753300415093315025104515648174057082285025709394294757279427310345337454389169292013914351761634627595223034694741188266109784804667724798117837300750566975218369830949873668514324238697022262916768545756640441880450469606447329959927166380326682554697749499877867190074250550673843448212171511269197722108538552779906462441016923718157471403590676190179299316795526344054811119072067799461400362404782171301800818603958494369016813324213455212137514649895370272808801064394558551526377954103615311638676154737394392644320851249104528172068512425790872130276962725642854835554431757790479194933013467079748700272485583303430001994726474700095173654066690030856068793136676360908294446252246233780053982168882704360567328719084931817431198021890187734631279250290827000995552605493301884059629787982025714089825803475791152820406057734060835285921550699759865152642158525578172552233519725748221793986323415904001177016112713311286231815901087565913712139979274929954134571282687763304042390811719906051146109826324381358697561902638495297372575720989943230885230946641124504220851690445480265194909065185943124217671566884588758329149678315741481072798022232661563372282236835479742495599924623940315426352392206445587042159808716387251934232483299059997729864920693365649496574326756983974010662322934612246031824298792620806283359290855887007066838699973265355927982895771157118048678119532154228129615521321268445452573042823606293531684792367944831165129413155346586828874465325417098979589719741712501376998769147930635113900309846849997214108687109846294536559084949167888753083423997088140856945982224789510708983762428705697867563824546620970850848756033612318574042700700958952296301832491867258028022236777506381164413058894560411976210996018564987440833178827459902113199189216774607431968506505271175337666833993976607743524477566036870001177777500460388192897325968064405612917273508166002043860949233003941850201037855451710583512728571368917173078339716724089376887823932783845168792266057770238768705587078764656973587918926465064884891620399569629298233274975856963138899037976581318040716537334502886925442115151728121434127947670240008053849355188339731463087489092722472213841444307673490181744354588800636793228600678393250555780160746610926304030355568528023044136805097819977877092888970696244395126198960714111233620597357560809029530828527095621240389019241179219363410543535328843277320023512632112765087733584543101792255533444267657416053850860870206944860328814139035415971213175764794308724493107344430780848019050018046657114877102654396487801184207017071616675059193917306686790628654409509434613523375673817372468715380709703686331236372494204863948645394868866812906525977054214806195732403827079214744534249653959222377100195144644592457773646064829268828708805880409212607000546476193504600152739993024901276531995353943512315603667468343446718484529197516876982200156184439100537624757997626923812404763783586039998664420301264063577198784773970131813181962186428263740002496764600032341469800990289582375861144951920024149653401540171983557386880189115084219116318942912790825937623571835581365719810207815039187412604169124165539387276070622841695598027589884278021390779607315339722331600343825394236434049541802011513175189588342834401246086081295980958227346452414547316859741724511099522600967141160686978433141178890991011675110648415066634334706418056225287506505775478511670631579501396589305742931678891141085774312648445211335016597060291998890709586888977373947707954423013330734126591946647100603744266077502306724281170095848592879269938440730686209290989291978805410500723437907646077112511642575521119437006580148502663081684154770280943144666124659042230293936764401883999521232459330404157511484771190141455200358594167914801543194692448465912199782803743252695211751149773864088285559920252134165418492285670559386727845964372657532492929404410858842318006155528734019576162582418827411525743672458783005963427869477112412520601601296061931450821469886074809011878476583425173254600431599182750541699421199385210579219831699399354754604623265140756046118032132410589360029544140426352010481408172976967443166169120867436616890332323430512512414718634756143016684343215881802689411256406070527722170012949391003244898932210564046555401595182294208076948840782154494410973164733789807885593232320413041766256580543444873900573457327089960465163334296695619904362357973510878876786430242665769679695652086220811061663833072674756162953762549330342567150323485347596607489780548168155056313560141570526168457389667161242609335767272821477633414205948261310864930337599082581512202253334321161606317278878909972138554418534826821082769743024087859368759258927345649079149247834679425632736336907538499287183696867470971682932943519721937670709112416327277797202724067031235810817546589094186683135714711003471663156754875806895191984187039832265703359494692231858287068960238740815926140618083799939371132108429750523570847694816177606331806562650756893251411040421321534397486216742272852051205839362963163683178476667163068047507456522514705811330833804287909710517546753132545981782449745363459175168859747121665535826897470747007887490724676980485651996686540791142128733141385477496561037683911409040170119359064405781146541314109583779539658836693693476808105032947366531818163363142421312753132670094350758682775065949118274153714162893262984466417750503328357403309369290645551431160918174579227119915476775807766136320316293363133963298964759738693982834325637418793482754766201476564749621163449205154853549978710732640766419545833306649771992862710117835251155613764534819771350570965243646059645541989922294631156234407193099707415526085123479112714143035822596419847808090930492748469663974578227859797829156899254763128164981090452137279182375924488584905631163484882044403990248241946556449735795058343178824531787481746678000739278362876429964872927430272275853244418667317182266784082839372518429294861141675625628248871879048963266597190173147957831858441702251641670359505820660083455456161857258971232843895919003215978289853876883547472169025843231243132878298390360548519511352854737693268147798838321958567216527639830141673484434490175523607873382992919079380411680289422829679526246266021538612640577588534804769341930588820669656931170596820215652016172997849744202183390615966544959696459389114963414495897992982292671264798189994470988910631439080899907193765074053506588217480783187108232486460794949926893934493621651385941828064175113066040408074696078111912433198575264208068699274076295357210746284978590732463408570015478057386854156017884559125928874250034369234497153283419606135528148286555306702730864085157263756189177889767100114658786708917838435491096590656296458577292968805267376483510114632980065341553454311157009373158961627552287338539191437286580610197764407225377834512741397811991780999965488943627511357251491951401375220774925126768350806846072263005164767187047550589751744772905175693178514887282133068034972182048500775418628805813175525964785295196654228186564704104778166682463133231333557418362425457866200291794767290206249863691564477393186964119287643509236532779989764205465885308660123865845462350025211389936456711565083586803074780344419595830229527922147698326907307730379341015390357513496140067921244246420833308160713559792503954898449032401831568783937776294315484933180810980544714483074953590761145025499532279034593875485331182723138000747424817327080869729593607431362823831459270908293601904514245282574814443084098075138579209872692879186318970775303329223560474857791681107216268238100626448568225590885162955160290006264084744129985174845684523955760500047479671172264088270521467613763978085263454673452757452351590004350009079916354442713173806524917836605669250597085518348081928537892313919219985913098749984923096758301190859426100220942561012624959812898819227855384841174425781139864559497147726615521118194158107821106389221372160248254210649212575230683641737339438461715885505604537824632544874198615868415208005263680647835954621011765765686955936113552127484928735745310444385071809642229963166282654599654567949641637776491545048479561834005272817288319288377488440198033473473486155044271713342122619408762645580616710625775598373430264539285243844824262423601629887406619050508930771113107747172454836764248438353074938370961846411496404769548345776382296943613044306352323772275664277119660502960713550897305241374145370494169345511613869423633642956890198072151176401727968312484482241460030807445030160979720589611826809527650584743306931309797074230760108797307812035644210604620777189937244506499871770979331137761975343767972056652681505037499426372877292003351983944610146866853249490903892429710101976726896700895607565227869259386790032456534751783231592996950114376730316251420297184549361631887344612899382420048143739755824846485573953388882501750508978021198172523103925273972175609422829625777736200858060801652053332235202488222664959940889665781317868606899697417998034955101395167757948983855649882537116738957193848272533852967911009446962138009716019320732671238233373902061641708314197967772088153477353640435967471147421136999487510881134242776045588602066148988160127872252367880366580826798727909643800208042033278609291745243367557193782033937547386050172310199983379754169754686853971576712595214004749265011163079859256067795910508952356633459189183923488440581394764603824273956599807166705240672688132394383032883401190257414219357024128829529255054745693438547357596065574699045443884660465970368672164128230625036511058226727788390882757440437531507362250437960554496760953722238498994591719443816030107188105045611966845921606444617189749255863013152830780425245301351109402722158096843740437453743533449612424650045976142060979799007671909668611964388305800200972612628353441227347399516672556568810165694480439767440333423215428926291147029856473628683554384138469640140961471882988400984467705923614010995015817627326774401662896500948019143258291057961245073183571387886085382168569024638120779618077089767338697303495530952387203036727948178710952651521772660516046552921970162853216182307626203146661629509447908705479955723659589397870373228674788611798973345893159128300752765226889970315531200211412402903288546918680467683357341610492890296026247694102960255386026822336207479325877521311086258161309046294787419005854805849723956381889980294068940431762484721965860311423703688980830790591151359940567698173268800472291454519826171697716787663997961179522088743147089659713629984326776102205397594286136206942664332017892280007195682637441420561971940291041130631422329171672066273759129533000263614920344753497317262614673369203062105365000695537649867252727231398376669439025895120271579800147179034832028070777460459577017139519135014732531189981503563663026456659358227709778169331371873459281039778291028467772459606415790670609926148634056656325607496175113459626829908134373486184644362841826975754875511522289948931865591483336356046522205370432314914357851519867343108655137959174675291212076973127351314099932046758183476856914734125001655496285321895870184435953130782943234005285263762693275966575639408751601866894651703661391902720777651593372398536691131586944361471484211998300081706276025916006810975616661194228050264905172934976638520988326435089784387432602004749021360009849239303946999901506888677974366200220049061936319313672022165861903988480219145873031916583242228074156484907709091000907476740790517796021979175938349216000268015515637444890473998587088383949140183153717949988099638301556531450130279274328586070611271460272704523024110809599808499218312373882755179489719308151576757100498884716293148402760129389071523407691297255726854121702325295399922719238072428052182435773399865944157793769865698276158070711804596758224516589568753257142544636911266144273981515578946591244159871433962813689969637429285545663572799897525476193470017711811372054642055726508989874991694750896536873845116584428836738690424697170056832399773240861708219619049430283109010939735337520045860304137774754519701411668381495665339095736844879510620585168264183375546937011975779038620294067797428631791501582473089007961068356402592410857467936238071154752195779063743303653117514020171242072592372306773420120612684723728410038677801989952304635933057391718458263111961171819895940962832495260065391435591697892084792514849476164543060204197233507562732215630665714105608186058433676097235899433070736887592221000635585518530094870018254950379929167916359960982689979149491716230510821981781689748603837135335653405499713142429297739275109246192084951865740151578265402172274641549557434778931717890373715658619133200642134575012129372878801902023321637494440356380177229422736693142527184285410525504721089723737082760699153015623640244619431858948192404106931069271081544198373477294270327043630161373233316741682430287020678000086771232114365157726485840035183424212094444285260234784299686726779259296277050622070181961262389497460112890175061813289002497872852300328954045316462621369655449200283061568265501812700542983928094908813743010602121649530929553490789834768894216968615681615271174325955909410636513130566483331284496997666592557837362937142145808980873864488255678279983512746405188381219173826012150757871460058494401764249599672085646790177452841837470744603729164687932345932297235148042650479692470945325280707387823745186843379497001284667852535672076090102637732588563533402627378666291417624490736502923340041165897156860377293789974224362508946734159886576052008864859734833600963632031426101682379879904164177143106100696611830858063739385423591134754707373952039765186083211262746676924547291694543586538700738995920478809633820283302868802682955376491367137549729627358140279165562691622459004121651780726008627675120831803220381250725858895872289186852186668322039834641799887828285756923435302869707982937693469228299625425795796314668444231905193151201724554266899938778898837910914136580281505145088747842908160681494760954261804042049079018180401479737437212923745004364381984556149631415577650282534497514049608088135670632805194748983713586435060797586750957050026176376233106784689784508308571470022612352910013417091024195500691136598180344836517049147969579921615289171593252289969713877384604573805300488334217824759870616511150724117791664119297492506218792438807040976523492086574433588710602792395111599834983334391251399604327807095529656005232931561181163353107905602789517135253563932977220030988148335067952215948709525030870031177923922218700991552241258016878250754996427276261839056443457180632553127983698370948644104989484428954118495592606165913152198044301627420470244044068222288665398719022573969767285105775588283611291839516306481382169975016019112385866925095083454975445766906179944900464776236370910514996484125924109935628584176427289302981021124659404804643930902043517411062270992707992584094617627823022517295298401019866394173495593785837160221256325022171385171385474175985833068966140124291879864211273288792779224335393242780058670312762944271781290001581332662398841755061778520471771484003119112577022193269045323415976529829753463379743110441916854599354247356230644185156241416772137971211533545714105215902376165043514828415114306360080765734608726050069833264255773467340611038044046465820573107365156685152000811767660480933774420822036700941643873367593286858190203777843558715913103591765380936883064043104469912180888653644714027333514734710492523027670160885740407105490082477872139400886697218361752843091839736380399883250915238139690356632910389369406728319597080614592382147246812270244713014860075545250876068028560782897152426983264185309880644495833017653456756321028293140675660604156610229028658238890121141902625171993598980376895935427423564971594320292739057527402444607770189990381239580927831560448293777858817854125935613180588193220034208875024216258724280982088518115710919415784308465310311198056662296318294364780055867320184037130107551527967122163727401965000523488977986473230342204876308557419752541711233684993926127934612997262214688875409191019923915778036229419182412148840799768595565286259341885866389910648025122949796773971273708955309770990738967785411850982761936105792769683483362035191238390279548678344063954995802047168577432168772656211210330823084373396500076854450653257032014800552144221358841083922846397255465585057575841094939843839698121629036852850920322663176087224324880597418642729169628238452652745361349328921325320077866712184617679517556974725981280694771865024888156484709812789138437914809287807564899882200682316119915591542300716585506954789846415037517396849404750061539316696538286168919131324180852025643999454838891920610001225265353673769376415829692986570632886628692421849344625703605281863063167355058056851189663545797107380220436099102840800499793261958688955496841624615827840207818253767949913401907109643299580342642496243106705218256706709744525623368886858363077126304295510647529579897053544837231098881279793852124050513767235497521224258322745684674033595365619520269359521140063039297607504637617738655432684540595393323563898819907364857503823264008900120841640045504005729265880947052209718622768240857662956570940491636997703402719977295782023223387173514865305357869525546214178673860439487391234199025917823443427572762909288640456850256893722290346033263759882922308379809605174531571782065678969104625309645073598156150684411270840789236648976743426975117282744677314336483162036449956775977339009209247781244209316618068922139188384656568355666245567363942128277876097001672057246396661022180451713608417835175296152600595395563647873821224466994732015135539228671403713601693984749579498385712623621152333298883614928777909071661071063080050022626044553425301658612438760920043596742413276123040470620783500215077512848386914927280239440180662156428030505259589130782444161491754182136810936900106459376590604663679615932719214252135259848182436944380194717224480165616184772353164047306542232930078106227194274689594006932437710481294491795295628959427839627676779747615333161529130287568940303506575691695451822924181439750853359592212624664187953406692259437204961378880376815841928227252539476048814482383463518368197398695979664611264891199408468165675651872716928747588038131642090544756207729824635914834253817757339471395880759626830666643583494930350245953217664816012559894210054189903951337339601883366573322463178398806270601196700109162563617525144704377242129722892600862238489168695380843234493017918593036102896367949400330018389367726741306720123592063881704616071250320024775595568354726255618277295972545727610766160674590386498883571328101873636152187641777242110714175743082812729206430541813483260784760201123540010608045973996914763433706849056984793983185054740575355395326101322436613551411389379464752229879363393537130923623412713295602089362130698658369876465531315823384774941619814699959677784958525945617458400886443861006675791068954777615774084866632364547621314280075902005608877067996600438099349151903916421495536823100321144390913551926147180070742802520384360743497072125269159564606758489125672006069125932354906952844076471204622253070273575928015980352774099618627402323683194254039868106391866116797237283295940603714081148257085258549052630371132061811049854672048888894887964292156052016920006868594426921745053692017644671907367544126275979238435180485497864829993352350715988829673509958934079708784176864294999539609062941695806389069333866962867541938294665744935006371976427553460379314263058638620692989141162854207192896392816426512081575105263292452421182723808471733999830403407172024693439807196756816020442162045449466354739959516856162800890376575854461716773222216456671101303615148570530304121378642148741114970846021883980023947189498845159194399376034919956202723125524044114712079819769508196700655247259374588954533432554801853747856013407275151373231973487101234993791651258472862095976474759382353857560212142397659558819934226181215923511835300099959073018662830723757164591639920363132073539539526100354101793061328522588097088626054775012292963587727082311787897254181871725354980801279890135239101094633209223869482767054063038706099193396017954213304756378679161086525637080808279676320630934634019019054123945872718921519590954656692335565737956353295514934624960629106656264337060238394091103595583262838393522834837922103836306326383864788650536075693868975093642843466282060988296574147025210094521742857666329149330320730491171073724800246547683186876930820262184585251453410794216435431262165298844708061035923445367211824873711602285861834671827865503415343247652283654708855512937776034548790353813822442799163815742685663936968831868024965619144458047825108555903147213255977976464272303026890718565063315082738459074074463476119716336126524334557423080723610809395425218173718292549027303619709386253142408345771672614138512039218596248887510803163165675796096898970924752599074841054871646126498263764335210991509750964823357519040240957954925008188175905335519187496210701813034032312178070954531743355794245125921531167524640288827357938185135047741376711809377727308803734007884347475535561307246264679765802805811998955737356645270940738328492961094345669451879481732692075846422948516702561398359811689024553714066194002162065760685506149017090760077967888644643095202400482353387322487726906835398057736659555301751235293886107059118396259560861680569847191365427804771659563782185717371930883498438993332595128502198504504664283662661627553968143189752189394521077327631116852890202750414514281899158264775422129577738152434551933843954336050928524258494035192784990484839024724273286077241737609453466652458465237332972224177148170361516275221338953369050903814887654162732515518011058808095122289801009613414911989128141499176278107849393739237090158587033799324805435727233019394960062458628544378410603450381384044197196740863505352489804312218211625714765258865924249985681586191734726289528287845812206710632161822593907131607926067356102916542659270151855471655062717357466934715009539412071781863974897372014990160437025546102276817998851838332639618313387097682144688718640517566500421153688882691520520038580846331341649102415532568511970460503488519299213180412960285966180001804688339278964809619373426588980187792278312508182244434928932994863416833259471244393210040932938837583260209557236296840084331800333680015707001283398391491869061299754428940710913344642304623937826029602418542397690149999808515503607291753454215826016002873148270212077889188495723111124202696983078608236781983986296816463738182251499347515712400264054051527525663982499575553459482152840414716262567456883565873192435377297796348721460000305780327901917561036489754535186963178958947744730351012698617770965453489575195056070001906412086201673168429439337958522549853392929131293496240174335712911202676468374859641426286064981194510900231863119845587348746106534030585703232590707827553057729175875944721990198097387290463506566832129646709418284549651292945650781551411210812103847312321554866975665341624793948503904609582928007227118344841793110440325115398607208705164942652966569771079743885475835859338521312937829515390191670211305650215513391586001580460828558072806543189095970915551259926974732631897006074560693460570149997007988721504204716066046803633790828114245511716376446871797818774962959984164049029525490224923994902861530040741888911583018640934357957233631197103991464209806604987811979073841876952829824839641742909945580792415616024375364244344805626151164985299604031961190000953712684090285403353314611691844043511960581011992010781141258035954599584408646101665132385163673642435408360734711087112223606991102552390835395076329936753238080125620917807433724671905555350100454949623024863375009889913457557694631650530293295601922328958951975629331829646621467831142270247815901707387410114572575161654836067697361443821344092098689242723818903821069487444723402248144539866536845277667458260352695958731034594723347794035200064430849768968699138388727706469926878241837119881380625451560372296317312552389936292465500524061810118857870307291173336038521797091846693579927977857519937003712867481234272640798499003940366341052572546119935843466811154060114341337373395846472385061662284348885093945854475596397611324993089682434382325531543763881414166331502132046050864336691636915527385140536543466727279373248107439037746428014727456849425259341355072598993676457616714255425514336437907605043441589132794567922788552522477004856232007881552697169217896919606555085951302982339384443556283485151848897015792877824668222988068986638721820369177535283422435556715283074121164988262437218194096269479253824402400341450245721426850969767410032702716448662675567373137933714923233633741100421226146765740777904070566529384859702358139542710091033747719768899616432462646496804562497234985320021106826657635710765409270701423507314567557400056033780233347254566280141494219059654251149485591206605638191831521703504004411087494471220846416496854128503421524967241723181659624423295369475105189778405411920326407007560761266904077698886392530646982357149377477890720850623355916387630750598250856488891745573450791330694914140180586689513997026533325965787559549492646669840939398466169371051753865271262127114210917822821816468231303835473070148919706608741590176988961680984271555085532047986723104958208316100920430565346479594163417907356354910569169584533212545766261144941016170475979891058655117901954966386465466251958522469872657264953161497348712338446689839469897571705044402747470786887696055019389334876884653529177039209819749266463403071548648948795341791018637251585030186065820652714165078596789373361293843103731077534192646656369453207212605417752510183117376379676015999155831559077280109758875364656072878835472925797617360046490231041008529431945642627913267060718595652468010615502394409107053050572977073506221389686879582887573138820238797762499345014559680357386806028021123992366661856794458780801940994216427958170699759951906249340156018121724114510268693120089056540987694485721219465413193586258737421079333092549878202104659797953641867047799411381216191518010397559058978890418561571016652237323223148590336328733541552130399921506316319970618018599131749545195231621074396496757406239936569477526284081565670439914884272022103089709598330651643377986139974968739541205854341854636038320459405006938497871258527204336911486972293062865562561357865253799898556015921054208055832360253590082298401993173793672349494188295690690759121955485620038975016329239473130620306416054348920637940829024806312858996652002119944160222291476844156113132708740389037799255262349784046377167354671541110964262596662582370333889196083471189453418154970348705961244653991005074924930599797540252232186164584526668364338135363632172756780156908465984348623148581611928675118891448570396426837626588559836325740857290982824330647614528165835361719320898820803840269922939461867067809417550304590220545502680504144717250725845905219731293650816656246785861118432401249192070725560276591093568593616232698921847221451282258310208163670781664613345202040385216076280661188694046184858991727476978301906777090844500585192491281308994285098609176262474211172008126728859350445098639188790110412396441752370607286767369725435282889123041651894865387160729634806419726863043286794684126210288898883971460061565847589449215724160195300475769633959038521478543992027731612728729850316913017517764083302950489266755095113601911061674931883868275184694020778466927906057071820246540269318475652620237681653226172421754084045227704567169455115692237578667719550812198796912753517933782766399324190141233658518461497979915188379597475687044009711669337927864179309053401621547875094003595421712751026858560755620806865074767188344504386662140535313136331217202172469892271591924575273913219651191392328948606910477179946982385179010976759596023714146084016485548063965339186529520507248554554993173532021200301298660681311087202654203551263947808868033140468421566921189057163971634067379056293174624362498355398217503860279473890202015732679838048154167565108584790504015429966543271802077751814701992140362456736575648774117608931648879404237280952239053757428732414372830294126212481040783076675100102963197794816671013796214905485068326047726118496962051793256537780661627610283514845232472004851709747017225828266204197960542678779225523992532035114727362275726955488492094414901239896803666689906622821402274615405321902272583444646011529718876232621940040239039823766025580199417384665076625898390333699220647655743151779687749582735076969082660943679170955686868755198567808356557101246107499269887689905134467806922239691183606396562443744174825309768283109582642578050455629239742302040033785895482958086638842878642064044993816061098299663052344172522901574384313148332286030653140483965244152696546961395518828965928901419485261672520309374728173837080475119473882831480630630832205325392521429581871401849629239886865212625639094302275437977658998338768950940393456523990625767597383312208371624830886845173556205853741059654970615638952405646898998640112379463557573950282119755344544024591288218936903395856039198285699297158172861709887186368162260803760109681602322389120212907717209027890625385597404365096745898174731778535385481581558667993138136131711109574658962068051151797696478505660642752189257664176742471008405475659303850429113563967832189398253546699211452398778783465948555190297169107179139549511825557758254827597211206765938847490698701682955148592461037320523828760382152752874057955123426879759243151110256910779854461200982975556890800506571906627055252907287256721311510625496410007983093834485362831408117511249764495601308411570733776155715767056908004745644300551405188219640384099537876242775629126748234010907002819979882742926168493492405323810197588234364315713833807445377976216164152992726884904776821855833336397998491501437165407925241797107443847524423077660006545521399759550827356200595176989716110309442841651674141701178051594629727921120322997763533770434072892094778046989753097005569025439611650189371459937182470937991955930339004914137093972516570816845874014457039690973504716281956308178709348800847927772782183841878856642134432984379768415423039859431140032245584569698543193442308128145216582150384862062672575944853219920322454336067974236020215039962626749902741677504909899954830094449109941348601945851685028754197094086143620309081987388245999926729283447954558313927900231851031058944948038680722180333320396325615856375008442428626293218337643288504313046103566412403873041254842046481514467048522941715937840470679329059350315514003989818905313760832195561052352289916872042954029186885716379526012303057334727137779226162813064767534389114310683683216727090554922438007179454325047505223705249275035942821860276105037871682756069903786717741006279809770127902001103437788461377047857596177084424361486416517444142466623404368626496566242989137447234453537028972863811638604963374874755493439308906540282081930739059794854125918665582344636007889373215763944881250153875206597423176100011295167611877529758230833581286216539278139147960096618396969002864970161771502170321870754946305878486468579423522728860817566602056924490759517732723200772678911752988888923314737434903484062395815395890202743053980309445755923503407658511783061932902404028661895056981827590934615414719055749552308772260919725164364294610877117420948964367742867802268220413059208508023627918819015345079465686488810231844338615311954087405266831799576363069078901134308044003009291434240052852784098631594322536686775638158406224292779051593464666302364461140569931481992118968093708150506783926730010235100164702423945616418665418160162969389758775036980122334044997527250589868957736414362112954667259864368228581187146947537639633890243382936604180807278128312162371316575449252754508915389314524263837273309255843245205877705482590348491891330667594052460134081404779724775720378807013665779479817240376819264360436807009526787885847094371149801395619014826588105030397197833897590140876920122022072767423662488054208506467117143617214207740478543858397909174889426858639314047887400633456901005248741516231591995124774852701087457218275523276031450339025686620934062127827655004798727415237101453097553230324993131187840611296921111874296900681005984270286951612998450009054603255645721403551753274347908330876428744201155494721934962851748725715588170439598111677278249476143787278883538213978266131901340376626137494150184043380201583772761437076892525194875057826735227173644634978510251533416397710403068579007043350640895581395961725876409136799430310326402169366422040343472794018348105701790825823328495209720325314401407526054533353360744627187391692430449970808148813876243812586850374705895362538789740302562457760209165361489220277204328706854584928299864764300241339342950966489633933080964515254579844146548443229166303527283643888098367735686013164945156710541855919205095099707634168077838996349349381444330550461792881760121648898105513344742430681333683998794974186532477450261197395155206793652695080414993520038535734064364496707957389689366396143942648612363644036801571180185567387712085785073488722774732013558047110860907890522731495200466889629371140926558728837160339028462573410629656122671655871106877404024013948019070130988340129269515293801693841344962536367122576342347242174101375375324033369691625950932419276283730718833963250264575554206081934756773252511165927040767201504506718278279547410751207280882738237728620515408635505889257119829869284694163535946036002145311226823725102289751747909904604583351424622172874783119339399564760446070306614958324407832661589442737112290124755772957646343128504675681574055931652776446063874211118247034825183447792712586827967354196363441790925619853644845384085077729251679212845994706970534948055108674845408438972153949558021032880732983163493273292298022246278457231188758364569251982100945469989545886495334609168010821823337370658308954239841326412552127071727992549057794606161719129558299447362784960979246008105965779444018140249679503016307614580928882387822124512225983770744186619006602577036756103598450622678016726129749401452546184657820150320566063384940994611030236284084689183867450365691576078985114199378451369268058709075876092340877071522404530965365748200047595035441486872104280103643800927820493652025860065997023863093246177757738464045691840200588539381387166123084624587559874774757762989351086881190689587435443319946396955368268380371123354788727889572044910494240093548134627478307830295162378695784297549881822307712862212163893594501334048573610303192399292820423355214582335415764814740573024019476872046662764086541924200174518924213334040100570083595782890427096345301964982981170682590906203414330808909037723977067029467464371144540568274511035353376169886507488919813132989900196868327600334742756722982944363623388547831375078888243228353377842195265521841658620061879993603548886465450622608241752519782731037617332329099498543725073042323429246012771635464230318893298420173070032386427536347575992409365666292204808864137517932895836343062024057402490706539951525189381075404989733054280721594567619235907496922014517706266501436227920471848258666120595575867267725848389871019255308176530497129221753642019753340211999919251959425157223526050242087051611280281297838706259345255033196079157535944218769611554558186167670763347332483484547376023866269928395703312788840538637683130100774253635600849664920547226470874095890971281692170130892099998270901404223546497996090503356488370256654730961045846223329892413341868833074998431286663181281596050669914476785638996730548765874242484022914936709017390081696099967195915365763934090898797504428796271287544836038722780158298385835539590753700384419966498444784448136015768082305539909666109446566199667020450358474432177662233669379805567412608508043196897841000281441796383823658002103408764904598488286176400407036197660514128176481057802428981616133363750015598434022283768026703414367610241035931464725644536753746438530907331615549945263992825139079256072828545698442148185933287735402938212233267914230342688029105208035594545786114319705738998983891242783578499565906546001725645720175588348523916532154806206714994559417136054903153734799507470845484538420820038831506194503358751626186825428008418975032371790800232600112675686060898530538407528870935621543255518867523489957238290256297004345305388658886838062641337701554514927288083094735953412988445042583134819273188694527607463413644505874264599958652424850826199731958281069935606115296390524345215521822383059045904434707998143083712165884644050139703041515384756685405404185736445592730151242719982733935214575429585163417780786050318880611512512556691343043172813075337117413528073078235486720380985699227456463499417680482381764312892063818670774363671249501468384874759472592364339703096162339010307780008401280044155364977067502944218779036858450643138638988651085613323133241817894535004087411050946126332299158582771625418722601960365064058921009721184428061860987638551300879204851414801465798999329939118921560375137142910923037440893645459611887788560591957096751253222960115961429506287659040131511118924967119317237923430588687409070583530481306628147648799000221509020165430497577340605235108380127753014310052716131103833790835315465791487654646089996593554751995419498946862388676506060431507964790626894224781050849229175922745770959231020883756952384591057077603370106415983737177456618646300787690162629391880000566517271386124704080005818227451049815963234437527261728085171591312947569963158042203686838643682705420345683626622991601289306740282566797084525470422626924538412117451987745529715757554761431011270011716461854839298762807494162911166310604184216740549956266202973320897307888389528741276363055072300712975989143319276487349732664167790585762787062935581253124114851457401613677553364663183507542244703172700271844032599665055142479053347115140476212353884515746312774397324240899911821943862537322609850296805272439481258937574078497974087456433895095568089611060344998297745490831464747939259845928261617952382546271769310275934070773701385993918327794000739815999217426626721575070673516471078998383450307845284769829958555078589767697812799455492204352469126728363150007355465809774009954220240163855646603061704431354390923563138133708711101964516232319261196231546157053438490179511749782008192429895764571489128363540849597776554750349141168057566649480306770238274280844164993946833318104511964410273711129845841155603588648889248389235402048074140446038002616822849600936422733215473066702090108321111072901519505878389879628241220939926740597231372864445855986035499196405897430996355425848761709849664808113815182159247680030704896147481819330001764421242368701550332847927286427796073748917351691281900406916344592946094659123932024208438583018703956403127780563589045293938330179072029530793715078639372055396628013224669495791416444052519615518460296405835925196426627369786007559682157808913840208679525119501431722687344881515396825223665576078808100330645329760698265263226423744164564521279294091270913952626796542119335137882429580557290615051798487447862488795511811345097232114673715456144502874138605347141739191356897312858409164379881378356122353760668929464541726285792966869011133859613035458040611844393394061829078376103176549523219590250223179148641841355581788789946970784726284204923245553414628307739448239732014774684343856669452827739733097933835104563460527676434421466302990417163106378358064840959415760796461779957706449355325416309370124224143833714825767282395904757186282706854147302769360569349226436403530549009508247819096917755070760750758894475126404558763947713381717218240469004909254508176524487817492641870294070683289339318070825171765863487102848783488579365422487585446295949172552191876255834543178923723465612993582290580893418028496571657351869895111574268233420225515413846920811450058125641492377591640006737461648585928277255154847567395660032887009198436642266651459284390089593979642091079372729636579774332012598242115372160886697237302428431434641785948607977689662126723870051094086551816192013477204131193060778292642160443350255771005244752864961383850277393897154733453168768563958170025755889218863925262853806704492107917284597424458162810072142585982145234170371945095084759426980881295787798209964301936743199443055292465954730828908506050770998323629247502682907400592887870540631576872363322937092791788609680583393252420193066099718010355272174455656933300182205292710341237922319017421051909966411466608816344523376697365811581741547104252066678098478528676596739647656411411470944742309156460967189386331228439252242256818950981229956132876010081460896993587642921485920243359475577888379255543984948783175195195526860254722124883399205047895522612617585510075447147739895871991234437733713093892368978289137606300595774052388398000915806914909991077948159074703956765525167668801777288606192482548996304285035907464759245513749959017304685658337257815717465292222793684510060990983259501223550880141813778822923178729903645800091373114282808136141011457674584087024670961309478448362802237844711939555895282429863304201801190553212271751172070995495405615283271907038377286667632694172264584897338327229381700377626982725726536863963864376309940212262396012387820308676035582536986368946651164564641642012978394824097831849197026526430902051934227503281334978598558635212770475351809128332452942805294406321323860483490429127188599927783212990711802868006970226103484893946449018409358324404589129828369016160903085106094713572992263863935077119719736763316997001481026693065244816962766050367771011187943064105671746060075849480790863345466710113725490858569645066523791000843981978512853603737204148123082993054533820068908985157256426147537106352660009339769248343399575815097104781909359708518481769382403736120170041020610204965942226652775148438491933608050949940107136585850961875523977163036643493587067290190107208213317004275195040919618764393661604463514015118513894929641483112252736195135116400090345324316015327602767318225082109092187197405872128633038170828728050351195693745726850958825942421426982783946372406366242769784379118932458030897752741145354381501288854454735772864499863781222467116645482061718554101522860491098770829297440639511265415707992384142723897802726804864229724431525192115760041083469748663391954441312156181167442453416037073353077004012825112389284075718138346053335122340920801063781944394134955062664252436047266047806425770607324164937639388177634299693143683519152150968977483224070072385900483980144915643295823961871426249375305071324971654336080183394358306413074994283747533235916344509349675963037466133989080668077310294322501291297459179330395322775655878083232574639940402403234685104159931825292985362495255246615125091145166393763278468182259494730498229051793054834477566913825218106065358963951759531371437682834270986318975880539116050615054523293525588115676951295778025258648878060295696969776942143121588647428556422306462942100396734414460441947613955506097310813428018030041223491245694188654451037972865416415896213758633191762271720575511169797525781170896919474324806077032961412757812160387860153981243106183959988546722443571065889079893399096435565678275944699157075636944687444167446604782044160598698176747387453521383786357745387152062373853780137692285492445625123258735819528861680853787352128657184165229720213727534164502725915035494991809539583869388465227363969031170982089490611225200386428840758491302049966189584780826253853600163457932868680459546790025458033965583153270778860782920779408491458832780086543116957716406799287592364471596050869062654922600273050141767380015018248546118101875670801614123176294235651694762196580130638558882198677400517751816891980550276799635647024202034173933797752569414301406346699619395636240701350770717445638743177764355761181825794385527659108620462400493502244376879932414808990737957471257751551570486087721003370192545769818658211590681574639325772122217647556993616705657645824689330118240154967314812736415376272006608091292981616551524263371994149632191335097901210750325004374772685776776802741217803541446745599288483977453936038607297236830365563938329741117020788207623082115630067128841813396711809774340870584136041925571997797034583158422809444356998347974270825465429171766751645015819614683069804430091689503946032469201602223182222113947902752031982213780572290664604911988507811199521035765996731451188824283410153491728065579749589164362360194194002694497920285633328319590881038938721702119903773645301814894724291253997846531674123214274728070171694202087797836988361549752822854827118403783179910917134930901633756515164947354159100419998174188885109518813951270286497771274095756020259931647930421683438963236039620278616766823415076856049800628872056023876063643830751227792807620038270811793871434699118281562709261534073070542083715373535859172453650371651180856581640455882839090529641889491596433231785752762972829612248871915849151745054352960395180340294212130415655901450541323507703147785867968821907942832859556749468417800751051595746521581296132988611327814353059211111946050402515122135540649534745506734115316032093441080544123234301871869201395782205903576207651172772961665269087691600199521540002881334802568847098327564385149114521027744098862221473549995695347839431340974695401767115693998568632248113629831041391757808757746011925273363095743974638333150522776192564942130770972978592180161968031923054139847253383021950740232990839149346393578922472210452357148755932215244509278836726358840239916790492035095582076695145896443772804426168492978071946372164544074190002203811509914120095513492237647306595862219596167413719239719282191006356477489846195931888667135711907080861356049990026285292279072303552842183592844967866261352344463234824620036667308930054829242360270307626715729331074571832918566894982910109670988783758997934568331491672071446839070266267096642448891568434912498132780506501175951517068224450069135186436643888596678967033077254510432813865035303042997203314710000834349146903446010851920489785743043226114296482446094054342965530000100019248777294341340601692898475423770225849479228956607474887836000286431984965368137666910581714635246473026479831367344475377897790973940635851568956828906997760672358343297330920301483516266300252064713887318847366375718130218121379680687705466040196422690818873017834496150088511569020845438628726956566489832676746395320129138415808740891805709678623543600178712343558429257273207099879409429530600613074880631922815748492121507096598453420427521095447451836356775150694861338025761846669756934236639680650292944638706528586342115601979846536654691438422712389555894172928509911465126728682903413784701510767360460279064904643762964235766824183119286955340045077395183253483134786356571315389054560963630415188040550479568637562260106233237192518561722817912311024483514353984914880427826973862337814146197809615383242874929843499101742571685029117643458924927342364329752844077416843124272021444689298524809238969818198499725765492591867510750716661434555283206618756239540498910421698585257298098535614471373026470487206946429036049693854240161485167258997710846869918984252742631887187542432161914636532736099246290112947380941842115187616875389520978166526239350119002283263204205361029450942669840764955914426031231336577452981882238257632006635032016208146282664127203350592456811373743405680900535646876652197796929888855695444326442361821042432115534652616453663728324215689276339720257686220289537109144010376971442408467017230835697486246448039735222114478618653980353146845352423058895459863239125224105213028860428635313552733068357553598341625105661522684645690659799218863927963658464720652980490343066062426930317926012012296942375295822701330728890582743290243789714460675438834024974504517088062161990923220041322035728315737699641418659291719560998312882897858049722909052209045651698934359111220209456582309656222234648403969490507427345508443681330142145706399726401139507519568448390604114915570471880901753730333803036497822981116919606889443750230473378801897506956470165891806211847042264224218231775435560423415980844887035736857981843237372077761858340578941050881477741161484406902364836627633142635264364633908624746507534696533270743450391004121455291471629114395842716962759487461495925849292822886649330297650731881593047985723378260563308511282909358493857802992379601559093438090154253884560815578965976190558203268126909289643495027571394107587318156636468232734719519626794851399360184692773703665800866710885165963680907387017168763060239827796995890449770107464372636392061179339823776267549401524954765318628167732034965534082314177935541293842368525939611080932972729475366520756602793278443660401143641261503427825782569283041696560232916005593454907351086567146292074407178857891446941710468544524860188746532736260566913197433235508351184368266414754989688505825352142702105702703572742663240667561142936196055037185233322198288559606585511536108195686864864048718651494220183527514728316945845715923879625358825105886110272913711933639886964313100041953053977069139090488217717363487732124424850312150162294344655555129409102268646504957633559352357911403091425469270045532711727328814764377994266383536952489403369804362727252764295424371014713325940649761345279182841808183880480649308718561429813452082575374659741351379228962672793610049806219548924833911958286263465053858836688285714317422164874516199544806847594597201579521829994154649315935361068103315892419098479199286665496172888467177117809703614695055383598496235029737946539286160654729157674352824798612168174893344063238647764362468601897523598781759874391028203791762076414596292216313588699283016684167832321545658658841123756288954593889208219657009847932878349384807064555279309419827133006937092381467545799140681593549900368419387934600442109845384142557889322539250275392877846821805664308741972975015493253310758671213750516769651362628035017749735892435876487453071272666084143339695492097397000609434211679501018597301332817085402491679527740587988356199156193952380364825732080366223107539883606860543306646063899568920433056110739368067039891143524114515620267818490541538906300242993386052540848777916983734212190882212632621330664534802947615814163682491507122697480931726512149098284736818725049585171779090954864291039154182476446105673017850372945045029666569691793157167697441171193863238035413144240425861380761105644288885546104190859141553676595438503333096021103949597145446766219465130109878088287284001741564083757319570533220588851081808709911679008022113805083612561562829695041680800478608786334373482648041816795884150747391879043455140014258064847579022111910589398043270754815936813118980335408479670235490023053955136863002979571892848964442912911808643346816669609924561706868627661257199097860758772774001570233693020339319506855384933512443892957876942402087907407303402240990817569569014820967558959495515301418400969585464769482487985437594259207782431824702132552782400669709697773778888715626740571984430393035352725543787779429486417659487577552670929834456492447336263578130698926915502171586031708410303026362895634511992536266458767007666965031313677905808366863327814609563548685105596146604333362590756884451623247902752380764965676727293229746949795823746397811626352873110711024143578806887250250432581208385814334703588548478969731145372730766302263873220727637577928951873952120020902969783187580865512843934739100296975215011194739380700061683102428729183629465225221945151634335928468694621337032647547121943509455838597381479247701110280122895038812311190807895373070629513038216072784399245192121440374084702641535899888313123123112821562595458373921960705834673086474859497302969519779354944259816364382946188807925526282306378007997713403952403954098042178721879001738097803020840747436060363327646944214199203163534951551636420055471021250232621126661277945136548650439146056741931649478332247567324597599931188305609433873043089756973282218749690617999429910867142064771617987191848743980003652272061543037112320584391926793956470397159716009495758598638085703296879377240028299603493739373883342187410265027817431862436146470360948147283861395042807895933440757962899730077981606070098207942537163889868301405421532516929700228875194774369690301237329157541340259625462318394336026716319385879052320658764322256090977739143711283236862408051450134596994499923392990631249681127463800600906604925199735637795676046696936882335222165538599708346115322334378145028775878006867307668901537815257982653538217220352184333777673459617918433167591134129697894243960463599993735613709529847243653628252137974578999626828812840653576431476200413684623761576331652199528166061405813567663323567084691186109089663599702043773950365515838679384333162755072307028250456151429114936793803606868475624581618672083696342880105808407911342835585074846387544620433682761040737333376949989195143481847879350716854442154033244886888424949661954786248811590139258727571477510538095433736834160490939598858242819893878404988148347011181709160423582542790920343123005332261283021381084154443613820501780173148774815470075716865361989254802513543884912956747189268201157713890150417301930090110679640341143708652876133290274535850784160289508893390664752975690462014948080390509436584474125454104669362429393335640206108860750467894120997563179544462400450506430406005717601969152619036746735414848970339632518543786340362139048818805831660676600964063376536087845526224905129319766669188163618728451094134219863981512314859505009323039024903042831455188516060714077091345125478074103928091665650705708774292894224188091645392498524513001534520551709698146654469823877313094114600574065224814704766789337656839376591132233764668873415404579742688617725731382656077402978793312904043655160204882342187507990374004091382324701545449903197092056233173547395154797722064234643613269573433745601973801000280607176649049807323547935455728728224610728350856460878956414691842970030040938573480973831322291260449271505992447388317861598577289452074325109422612673010676010254316065746365182334384219237829728466372218839473285246185146886139674409850891431388328626637129299205182488925379652955650679563112797252352308641914500804700550753117667238144094591855297606271012946425131473056445034133332198599595764200518531856599642630924516755696266955139855068761667642349758089569831167769282965929663089575626416531134686234854993010219648680046151536443249504415849465135030194506992806496937995885924139577008889327813606144543528967081650351531582618033339793457116192125283027652878009600230018799033035182074688883243885382771513489287930474424306335811616273608004322652677472656192377881400588719405940605300172746362301299456578498572721382369139206369517025352835134426866754050282390934581813028538045901758400285206763206325097806751632094908335495937782168184841219109611085667391750814183195697148239839587485244803081010232438019345392772003376969287839512580895957919790494348242711336842062977742769215875685869314413975076656965826440594246333897275912361131644589209882657127330820815572585470295320376710452757699152884760228434441715100400745816709566022321628079657904605802703555871178246905453367865294284143125651860801549240055498221650578785473645097889778820025915517995977337939424555095603666988429606929526827586657674239254177946987469210104641007904450215566936143885422657684007274114527176367100512023919310918949219480069383977158000692192440915305833426999987397183000007723898821929591344151780037327834355931035641416601457379280453855649369596803578932124519258932940678145411408486577460653464942727887149684559138569674020490221822415241322688477668597393739433616299463057514112045166397395586951364951500047373367366167601309589696482300230386813663702585867603571978979911670221278040465035256704407370614027656564971739074636276496182793142561992375927575113628646620293293254139108766588620559380255380160005292066384184750999931689277232597466032190973726379195752805256775141244214808234621701852131710206958962628156351200483233170059359233750446558683666473016470703638187844200705294134280361577501813001217088370900596065367617605025031385765248138823545880892701278592515744823635690903872738449911727244554404646642242418398138836918826867282412839890359855806048712046003191145909857328174748254663005203650512680610971618932451140412777488983183928894050157809094270168821895377554742067995022400512366904230044230517995616994149391638802362977856101456013443324428981405072373379706344785505042953813499045697033257268221129638325144096982327092371161530416518152953120172777764128286367253092293174251360551035753608696015047728355689603026147647539252356525090582609383073452978762403731192565879113841427404520274598589708087195500986493902531534314968063290409362586820093617139909019500340935651048638510415162873068348826904002910718587452403322314349988210632712374075793805236479052442199618511964563901652489088779108785666597549196893690540906585153096891810885243361442139636954991180587584859186575519850539548462747314257783047742871420486368733789933140359847482535413051233656601916606333853961718560939971408043284689733585414866156318192155345000844740852313661257233889024535663113225354084282672708812605495573784383445799104158190692418603342509155966764821830288103051089867779593284339410722016056047969422966865856981600002187000776576839253773749163694216081500253576758710602440199880952425458090945204804354649695470879499991528481380740464800757874640791789863513433437690125554337751192821923716506462863859944085227367138759581457166214715556767134506250399893497132934407782416903345154925692838355440425416336165679499818037134405653274440776637857680054686152935884173026685298655125057319247196947981224958507725997835314211967009347774622829714110515024896167524488062274547437336947943409942415729615488220175373265220257317110141388705765934266250104520696677888166890436123435941947091516270100364842650070243856845692542847750488663389148651885267097864075140638479552313604189953888963438106323916929489944514539314492961065360629091884951856008617100978478780743065214906025932749280211874896314324798806613245965580296480869917221768152392051765284210355932786744852135134054994229616824751392650932067796945989199544335052485721212707838411028575873359428164051613509091852881768362192693846115493521636679003201712248124964177786556772363672244071018315113975761395829923128597166849513465948483853039199374116193803101838716242626679564852110499490828358512319004468689949631885591184956398424042704324060103800371018527476474874933942102914664178623397655196177992507403876459014299850523330264874300375953794504160889957468743079880749670901271585908914146495442475120236700934803335620306879862756821564598074105119451063036837022956762720833649076429384552553732268399667016077173083817824993252730847936990120962494912650320640728151741767244071078578627047832778563610022533469087928148355764066636698707256712701722243885651493009464570856852005590703255614380251452322356022974190555124177554487927592332181385548878305039259675175070427102237442123146337516379372061853210053550398424862814700655454374705071113264729071548658964941802589796311752070181036262026537838135970791121695480707615262380123551859370894477043784730593209562076221036113955975289575809844649443581710437491829869666108533561548738066696891549105339111854633129723840746882518190490184373133823684242215621171745898358171609694286147165863628946492128209433999014274353908195950920072078612808988171902960911884729144856695217920334010934959609448318069297351329775692018342890648181316406299815135712879795117587357730704569596071508382183026909249470018778746519699958358405256796501546641299495881686917690044769491825100857416972807382972970096484213911073964288514045582909846801813949588176344479291633530492578096668914687889341738297259051753850692210460419773746352723958401887019467309820378547172153155529472686560681195024175222658219564007009695552129724515681854639140110222875518750566148557863985062602534857136982428740392744180178981570906936478520796151828500363390281503715867113400297531093703107973832855383895815833439991903002569275551764420611735439976847624628996254426410667054260862207068115005488013113175896947179945511713225688209286495085041541560305077498572364244582541288572958595738256418579873023423206168482908586155382854260121514518250545994960952324943513326678416317771413215095211385634085441740728009692579129277859526852887459641219590530422056000523731646645388785769564493683698921799644972832404806677442857984476391819664226560008970984305689301099358740337654059912100368630565217200367401294838458571435022034075479268097220500225917888356464798060479083403111480170047735968038410670298000728586504306940026489168660235222186465787470782585449283858099270985182971532590287846988135475390048692837427646196161904731775445632103993592655549026852603350305620630153438857815140641764796421960801130927623409401071685073942446255604628560165904026205250597187435418675126200858484497104474017320998815079524712182658403999311594986185769019943016728725664513127581982652550840403231417182487733739256277674533437727857258137633988747535356186454307577926835983063842501436415165158325237097288931441881093703409467999156458432676236478397757488028689762773531058555870807872653851320608153717506379518781707331354171271943974917513963185389491098686631687188057603544171819153925831322178800767390807704945074997911261633482599938661484873532529033924692833053825146259964464836316776168731603329083642600197777954617283841664448040451815821094205677054013043999220071365077741550775156413248908015406147519776555445928252851070777678303339110167174214180541082393510843793125494956320809768653419167954937959794133490463122504414973776986311290376188318016562358755261592822922200294244801314156919109191277478025116978354685538082599581856175913342911688327839264944247682647543245050411274275304230603592441577886722581486195967770480683421345740258206195802920178009120945260926087040763576260755484616075766822379606097527625801786094318587999954789887247965433343668888517520696425318978127543759509420110248598218482964278172419689241246207706313436966536883101244298696151540833541729697695846360535164866209192645460984004693399015318823306062456034466476035256177052752746887187172065496535801743318077379713112199319638112079510806464669800754852500993177863879104794993392504189360122538124767763128242680799505726915572805540815568128635916453757805243884563122709392750975579288787293115861776719270892602447975733533079012647795671578143846383267482496528257675217834088328992786769997848276082237222120545597264612339725606657072708783336505753028028524387495455145886522084662619360885039061825103554051826083403142065959840694331000392559409705030450928345430426406723750286112813391781046522250171123000298508982592869660929245605029424780768350141253678750916075859771914690931804693217124132387357217212876191439607887329663465225145570577059603262103385908078439535189144353509177782679781994596407295832987665486633984835241606781405178495700309450246913724508375804569064966493714876133641801008805519550843325590911666856968885285784944394430978587013327834451886452189058756807369741575104711464413826191009186449770033029338821754806229306462267382958037638156734113559061916262732718603269753868533358283695080905316436366594196814255028485791816716391310804150960901910496080189358093004491127947057332057964446385028442519684347028347889389352138520489883783138477861792455433390290982370841817403467333447605750911497756943273868183921150072809664042656566875871889039444036054343268748830050613575801277950891929840050402923056522026164083382946893231219277884433307594905885446005046839594990913725183492702489023141437274895118640601831647885369479771744723212889865186214780050155378937244737870467218919477173568279832416373930712178390682311256389060920607928274780622493326025691835045753170406799696263938090521894161646257953901751602531788196679006917797147453191746527552636377245662174779464193319143339610596276222400793765499458536589156005943970910947459237775842863255796180234966904658041580882195527562285932760535438919240493056318290231726900945662246990410021281370162259250239495379124147771639713251067083114634386375282376968194703266227273442536423711133343938000502198858527677785099785229770576601926186969979258607522901907053557481663762307859542595621641535760851196956629623032640378704942710658679051980849491790502585186874351007071235926072979537474899270092945529038921420874494766787498622025452911324356862785787839530315123420816371577293033024909351536640801448071902344397446268683285015219081112221979011333890119519254402250321537551065950764515002639926772098769972702782981775713597010888381707193001133930390142553201110901213194730814438232509110822300692073309151258091480154517126826883893022817757498514063988165405772616457838668842997845015530967831383281461470366478497769751394325197399023892999403838444919931522153783821590543164990114975257098184596497603458432353621481074232955649068059974836370375098024045535925827185659693126416762987056102940390211321053411084545736346801706980737352884428011187924162682505216805555206054386449010213632717102339665686998709349965345644732463907134426048719662184511065760031577240262356593243867908163836790313355734036065082659719327697901852439188427551184257492190285805118032862590798741876706316329179064224871203401308682088175946528425326025203540416717436859405091167810356667844974679799847807984700531972248486534260922807299695180673916030951425058418004311109692609980219316533754633600050255992431320458299085134947436916443875709588315043102004041612554056260280773022848343957226557738434877491555065035195337536615998920861171936707588007452529427335362183283561810424103445290994573109624445235974291439465874075084979949565951426728799441726631034530749482029188557703538552143433418805337074853071803552202680969604456941526403087968251100776570663140747535311724713058505397204816377453159140932696349361544194876700460694174774500877912426031131401298969446576659865243530324592239200028877542493667680015689024939602644187247219845936141723574896796549579829316792979934204570206708709197581136732400307293637696411378727963145874984102643537217347644385447114797366655744549260677971320056333601633788202450065306673411623060712566149451708378323670646524882961691032107054343138806084799244545118600815198627164069155549637739262765665885539136691286917858231095217892523612426145346533253563370949768354997383580632546345500905587841121619397256442651381508403885328279593622966975135529433087374243243065712969854018873528151406313711604393604010557143705177165216876684168673919595920697499586394667210396411363305888249690071014013422649989477398494210167954711553228015266666588610691679050357049737638136193060047188684381472762465646273706942253056491461666814277503914562635044125250695069439918062518827054583375363171667953011009755375401848208507306988878641714505026180090833562648065207704444814109436590652929633691183678621884133046454691363490468553703259372009694127748882670531559108513330669883760896490453058297882336826735590060132975892545370486542824667369696120931035476916198845788019032701723455366421815916692718901852750706908456076463544443583341297221743788077074856163145419400374407195288792763811916097844413053103301180365228454995259824386357088279697269222065243742963252222286218344522860446982780080325472550779590236438799208075458548030288371502385952564131024480378510062171413590445449097186622217363796096327689019556805386776551793885858345024333039082837984096570799755036992671229593382365294192678407626692774707978730271576710268752699400849495791366306803842442735606356690127751347844214785590800727630696932986437377162171656448811159683156522502590253156454785073634094866444951426077562245532276554373896053014148755702634338141842721475513829612276062966648182568241688182757062899546566658805858849456267618889868189111463629632425844960032367107929794031372604149492869617791307134432944225249495505217121042507067470893934895012284835194655105485695198969337212509184305068047887718736612637838617305301506005772126398478358984096436397623536909563110876834981313241616567713430164841744358362851634993053154805562994275519096816710809600092889436176854130251275190947841546033970926022634883760742717982421218624081978167344102890487724963671735742621340948215143902249375707471893965401297465581857661263782933695673453564115660860612595040085946658797237006112948114749173708755882395154394038142844181190385667677036217353857725204229109960794190949754965662428435307889439212639587570634534823815729189869452951224109944744216906225493711618239964685639279252699341496210850805577566441623805444222219450713993590049637555768652606019183577496152807468994374333061105065723516627275203739864788715785717341822065344711013877423831907529482840262701657025465550096787698304690837700856839799211000649324068697411862576219988737227289716863599940137203477019526257475341849916936298448250290252563869199765858527528093867302346970883597465085000853382117172660749245140972062303621421661472346286807934471047040160330968064675540552675094017725697155711462934314401412312487335148604623597553890214249655212365642137357150518492497270044006790037461470825362514162358618338085229406030642774287082663560964414161227628523018668128565847443301838416921289651355334562365293464184795010417286667469412219755935780705944037913162783568237821546318863566813619532251662251462545795131549088620097536579819211340164921494334263843349904937881412918698559489468664713848633756606060919435947301090128805751063669285967749082116818538231625022136743110323820620516584943220539450347908734396261506605066314006663261255066889687907861415127247903874423394792032757474205072339951521513409546057616514337555260595561697393610394291659659561566640327598702706399247350457469484287847778330220647246291100533714527769015872831739175292090249800568919944143351538521843678575232370297013526739986343511845595344900470375659044453790822840094245218069635888752610788251115637894873225995574796910366240897031588913910557472123224887751940697291304488491310645307124009808590152189167491542189134295951619936427767081134108575851426599223095485217596648824679995642561488709208688449469194932476608222681255669393763534563472240456598927640562862228001134085496007851299566763151792255414403331777940578449304612329185631538182724359370857713407795257403065343597273983449951194926501115802745767145501790650037739942933738596318450561031199963593913343329128233596815795334622391298072484074684033962676927433002529375405369471919541187084154930348211565529793855845966634000914887868293119274248760148034204712466510910028917946828334800994327994599651237668379808815692588011895945819326941091163050545325252077691236331342584294361963273346165495725084901237092549407789880384303452083203637821293326679858141582786704007723912747993791618497449914751652621666877237254965213261112929845476768280851916018401012440642639646064426775494867737719605705600463845473750667599001010593535282433633637800955640210305977444200091955801377629656937476032662020632417568359334248719040984263044630613159052223631685990946606708416387260714248133521417778973593146282748667936621949158583497957577688086624980723059811879800532399559233701461161054306208380386177569186596764471622600194037196949798033317903195629324535551989651460175939876600131122692746394019125970829856394677041399453627785211952305643565842508541449189551816603474408170300533119113484580629802079501751844172639181298397541382073039069806381999942868779014325546407088811331490897262251740283685833514105114056097530079167834118570835869154543721879889931896641165266699886469334184611880642433330924334868676051390670182435323433822258249549343191395176792388602704211383662857424699403597397188895529571662983702942740144576620314103246852435344792132390288843872142781823968520791869155947721823420382618608915945863788309376671314367933419988474868594751683236035538747227432205548483177453864411977799666486009453464509985322950008379360272044084348947128851492548604891197292604471924400097199358046079552816592605593657190733138408230134194572994902732578750440725480688392937275885375710788994476376888305508882166369960247468830413669858105243508684835238518834731925682777820379902094271174768261707164704430442671126544388313893242449477779819637551445653459163965244720940185716308964763020185468245239447970380355031613774229181027674407951349422136059676290410461212016664570378997186664035538726635553363700774322963824931594550161811364003925117388520981991171236629451589541697382036275466152676960204586255947612799678738323477119988005871619834908130631650210413730133227035674395480862105993626659416106828981329375878660906404179560194869266246771184919345071666781189925392927749114479337775459769443389116423399397574909806854616642731750751986712982818816569176058000087152812239029465553971458170237562843330495584290161150791649407301140906307987242087887135337259546499370401491663370574794819671581604602250405824985627168010924083032894623653319944744888856251196306195646612385761948825296968044811288909880400274483029967967721715105351362765121564900977499037987773029559465610809098272960719739793273171821671880853108950830119680900140918217901530701595111381710914920288972325046965296896020795662168274937021712551201970436442610797081816813842187800722517842112626023444904056157381587183037884705465904358795613610588408314896762434227049948510877473600766977666239896396554821365764132959500507375945005862306097449937795088698028433300714617832861862528060501606922234690992862500553974350598167365243018926589302064512046435293485239374366929988341446853619450558784834498031336024002709939064237572969405068662935219760466011286416891182376605827218426663895770175185167161529129910716489733320711053909321050964507138053317117225181929118936953584375068145891790376460815599512323076754574419710411936849816197505713462625553526568387673721949002370377847485229533011381997066613288817091184912311596617417180833424949223139915067495065127257267921647369697583624450341238353100661919905818890070758020334225275013141452955729151638376789943944582654389771128255067821417196730536727669510192854695144079891500307186197418247881873056508455106916265950808672854928044713336529695885834726085561300742798921719141158841717485915221956623566237862792981907026255153337929846503207134950200128072662647223025447707198785947523988959440165028120081532087905733666110566789578813373284537714474656286670949648940773205120200315574329090542770702133133564409589221025573562370399778091809281680469259285398175697859897475391724664679192138611335395628299495939743760958043249257043647055209445307385030613017186088319723111413007147968294683312956102749885609580204542363536115182684671471967495525931398466360404805475548251229296386849867389997633109273081565277665293050804676893472487442396796948788302825332152586095888833063223569305593540399300371695884825498689649175082423792392561992442137558341829465930679078025569141876695726343789141546484972381490217559939230002574905067845261110394546394727276739594639021059278197443998598001645369302035442783160679541352054844162728816947388292358725331491412673963080920602061702664770194604039440365428298256827338500869111344837788203879658696060633632421765591362841179702970784801702269096125188320899314924282762558543571718547344146444111779118331248752753714945592324241731461557524598828145897064789580301047520159659199582949037944985152384506221998431668150925661971068840286609736017818280055911254064906545177760136950762398778681113895893092333981056416589531994058314517619424623020308201689014288051804209677949830020308188078088610918110492802588783031608187708326453627743051668907184505292989748094063436593807431343206325356112660681381548164898217266107837661387472633425568583411624027156437799538723235742768832766627888452519911436291188858840797764162850687034893940904046789692489055424363042454123913784940978656329752894899362451628012758920884880663892921854708815671044059049070899989693637799428957771760532103589930622462965200222616088007922909230560853318611847201944674957841585131449353139748964809111357664405192784281035150724138262790160636739409648063944089195224780155094291587685792602828947609340820457700710211785493989820458373052296957215001885762770018944082231478714827313628060482027599614668695627706329828563249126892953325483969420859255481987013876060970462268824324795625928618914679432789619548731924501384965944321666563645457129364143420924803763789328836426157575307746828441726153340532118049098421418819744646290682925704551635590910662195633588068207803201867738021692236464892158547414274106913235680302101860856271321050904451903873026287797625179583498770472425173344066508215297821443312136209701358802839777928238365715661826425438143752660142763958935563968882577983055267713722822650630609964366598410678134640679175910784993611248716292540850769643121808827307023994094623443845448307779093654613882125457480389608634125510840646767620909348825527557788269597201083329059410212459766303944317734760071024133779915897416509479861177797223851406746373738734306328621372991829336887727095124722344482865449977444107426535044276274228118034370582184494017838113940058478437490319126165486897034421071651550805594299924729604386140501550394135753893828098162098402209559291847215328481036709279875656068769669368756884923570214823898432447806242434956492307738122467167359990320407735573717950937772316875743533634189089677355585802537211730919922491487658833593409761600995708915743505080834009100828792572834418744144824463188990585190077614120185926573187462552973275780917852696106728228661956745586071113936990211032619266857201371992428250580058981429998058400268869453474725140999763633967942513100096933567511123059863541921171936911617920015226894322850943496802603857150330130593451788247903668101421280911137725638413058055067976310953929544100694075082864458899469925374986676032937312001944786657301945773576111880651782128204963271301286482459009808927435603386576980515079696806103872265731359658293997332674357208005249040196418268313380331976188385167012174534032349011377360229908415068989496442029790303390278104956962412277440389191603541360584616994246224790513420307352853134089409848331783921482725796889451266154303873613510351142751095103988870590470132472174096929422864079025726676970538746165368023221939897801791017494624209433697285009506884689080755176693635154205246114824620107183186449009479584133724114666199546479717707739289434323716864715210732293450106828362996347490870447566433597688360056844587082436501419462785938115740207413109970868889146409087615223704465529319516676080314620730494339260279676492251743991742334506782109562097910615506632476560247228472892935349936273640645864623619119542208083568169433421080012820831736015374717389221243881485736743187175900010876440373456555490183973756892299866331943485412425159669978929854406254360713067472633682559569481005002229815534729172031949982831063603577002346458687372970310411883907224712032229741044400248200397698096355232824492966740746615301374360268806596734208765072633766083996268376627132781298757352933805467978049340274088302089824115507030507983032559157461471681372907817584081839942902729729867624071485827912669277535004504572088986495695341433610853855452554350961806116655389984555756286046599525373075119830665091762900353542383821290161545313749707312324820739195149074514999309583219339250131792642084296138919995112175023435752262638162172675038165383074038986843638665998888996007808750137985388397140541879238916300437158009269352786807211315166417951590578895971551882231884012514705880867027653372833907362212688216417110198076574710838952543584922944224246181330005082010014947382162957349240085858885382231128868958071849313459306296603795028384131432168864343643379246950552428905435722198772811474441752213903474981934367400770541858805627625803737427001566031611515556538489989825511174417879457216044753320333650467617980656811665776754060117863295301278180719795779611124117549767982746904955126571529183221052247805825340414459029568313060593998618770065277754812093472029656128249156286072974132663213630701978584766217177650746632143627280847625232298744332182255377022916872853199907488629203502731570109247117014622360715986191643173891884889527912605631473209409005436785265350500755691965496053465475400204235941463974884644250359153971787410161535973694039458005184906537333928080051442522718330772891491271437925204191853041707423132495619827641001700254798062867874147361467276583159530999092600400717921989862818965409110100017661049011049712253730835288146523576936175553392496014497720410157996413038385988106600382805877960923871860412525799654613515112896530641608554930477445512019510126991971366297433130296873041079476479197809171256480555999688168976437952093648990885106093484683025483092661443990789400531102123076481375503519989246837812435826035981113865487912164024737744509806483131612395433617482298693046761013451329077745796012359160497503017507192981857386550991109137800337179686236051097041375782399125995286798732675797447014520361014944231661494006778319375114733878948814351424124868761672313511649792178105337304153144372044558204318769309386022307296664158609919614688067392100740662243597130959664769064210211848876952059015154587134977741727944581493248610113152183398731317673727404069122205507037452685696907975679961264842962655531598664341450423889377683329536158197002810906718908748163477843769091947081768916913874672651412702479751917249208667703857527094197103546411250306728010227273510534098278359636143649066731537869660071300552186775132657496297815206908111896029366478384477995579367378563944617942462152988201831711806636714865288102079354899146641500030084787535647266097543765383091065933170720890971836991666897576135715895661049491640623011271163137676317825611709507823001443252969683997217447958091103174979192052974020461462546285646311830070238094997471317639918458826154517640333598756563357164195162383299834189602093881393705520897511451271046750635002912039071666152806282699343244903754837264046318698060775659277900711600817864783379396619647655744014072850376783989382411511286850065685283831057181328052217226719133599612568449277134117468237899688737601571035348080463284672306646873216380625992577625994128550802724749200943766989269886956296210772190008384032577504498674127431438462777202109131757118224785087952635980449355221637311856991550922684235666333311544384597690058680165350486657072833210768798810740246998571915815056643913205230929630401498431338896209201443695889055975552759429102219270011960449526784810315865378624071396608543823427225949027500408447734776152407549460666498943568574136430072899973293676160223603555213259466174094238565676991566699847112864348567784144423163765029217771992931183089371114825729918041447865544583197645585097667724063699558332449506329927695845937126908170617933118578506038740247098528087102479833221807701436683561805045864185207856834173200744913945243742948206497608974012678629054457452860965561220114372116810674901234727694985686553205993869377535780767885166419814904735314616157880976464601230692387870970310981320127837996045940425209950425838538250691656864970006358988806737984010031941354587456115421557592114571266504324084374834214718682868650152529921567540460359053348600853133597698626900827575713406404334686554392891271906942711168102501716837633808899750239102635976092002894064091678815421229063329366496547318282554745972660285277210192455821412352543985949706124491519190245279010055633031995382031670722655538185037456156535405309645368639412253176759822652957167618167140154738724781657025127119142057413257146201899627205038636488216231302806292107241670763411740504143451632297514627546803955553167012686839126120651566362532751093919297386449620782562568066758706079089649633154111027848107886705684758021314469171912588291548575110818688797566211170612961308013511249777082328607751557522099332185928569396460029464755423033408679509959207807866557464587272373007202101182215620194120267758406587438534508238533479787067884536218188671648542485666383211360983244797216057578819332060570031760306249907879757320974227822947681274657796742400132865460253961399269634411444105751933076026244280362220421942936009959043232733819086486908586802834079995815635267549047134565127001248204363680099195714488894414213641079266037661578295710425508343541575062575766015922515559147307017303467860990859717307642152120783645779412922647258560265377944160630506323635112866141699217648098130824140673239017407740267090512426268835812608600816449587963983611891215510403194413789623822424973495465100493659057045943686049494922743475554600794865276786144981031626343987044759820591779789034521457807139716797182517133373091411436414301365920677491849403983597019688138580098508111182157486729600311572279637258479451059354014707487699567855645330053925117462846235682941754216911925103732299503187561602885122048572782069913160740257766226210412602864265576652284048950818884590205165585084601035747752224206906954094711895294753892598886405947439324619536018413498799537419242013587531962288791513420468141997425723230908367481139772423499232499577511505956340138760898311210269052456330884721463500708827191834073165533087037655171364216924111245342053989325213632171163099331421036769874023866605211926281991256309232573626593086693072200456480185763690403826846280273165918564673017338680675404409173066195173748747150925812761384949008787698232833952214603098102756863727555197253707803596787427147234203231803289057881841394103121352287841959925993706626783126260447063970303940212075382293950154209184043155377352349076443330098866921326969481498799869290558682206347011303615425364688411612405550739796318333259378563522156313502903147721081073859611322229500372102220076178882841055159180683280527883449771836294904893099168604840503859187267051579091605763722503862622079611062851959186384565937600396449827601522433993812435996604105443044708589654593347776721375290308985588194406151243498664719664977853562818881419881794807438414014022481771181185151427321278162025671937383022750213899861690183334808815218179485946858015124431947686256731792374433443281366051580861569901336916344327828028430274682816000133932788355551948077503136114587284389110080424090615030470280521069392581590969960282508768309228730233165814522825061278034663324757954510147746034481802064359928985342585325457094883356171334943759752151289414591120751147488672363949440110667791627370762927257143948319971866912274849486845668347107787677642384888972722651975785656219080270455180394921782974613454879722750359170443932972742978112128475328265112337353743897559124867088131723882826700714177637991108959924284134018132941595360210800057925579961732393050151373078372758975330826775512478530852631597625007040635155214216406249907168967429391773994472917006211648321397725435844476626733612203957291191682977931149224740367501786886256322073994723393443951215245620862164453332079103128715310636231381800603107368449883143855563801674341114970047788407164924704191136629864283926848066229361610975368794471669864718869538119830335780751278023903369727753931379254689886784848597790559415759350338303523231721542779312389646793907503405478786972130076107803987060103942590304468699424798067271215790784980921457523678395362304335594954570459450726828580450936907301797406384349042799243609372321314457512671439329678963292633378370182176203653858783731098140753372811279939421702928473220043104119142571299192959328970117261643755669909857216911405883929757042016256622665466297202486720763788471002423680457474226538708846701535922944528419897559928087456338006879026136372005138876079530312582832864516875593762075920226661826866016805191422042732446442046638303731211089807656534931213272322917809615323352624519093246237269804586379661739653840867110936998137526554738700550178107353294244529971342325658162618516435924607736310976550564335864394715315476207482249540774466611722635443742542678969130745463169495718692489283109498497345279938934922692066413427812874328552412505698851201194488970396152982003694964417296358889571960469692152106026646002468359898461343597675358583055124525382100072884376588032026429156706816292546717434185576438429071716760283966180482645592106874293188185659855050772248088832233321340185258317273636912251252931030190076498941285725914503719753430238596029944624248894011122474206892826320260059563969839840498084328145627239661939447682795156173251885003470426011570421394350508832111446236669819094704409367838841589360822475076231515785346740873195142561102061713772678263306444204449152831271872567124712197397572788964248366167965802649038484582579588399565502186182693883472998436578676504245160728907223684593596161189046045153012053674598083991487890577180634447894990733475170689143284542647416048430706598615804632935938327957200765433103634984517749948511619405467379792689324540930873795622803831721118462015669870703574273268036453296470713243870899572095708029485519821324442969319085945895202981144977388092982173030024895562325020414983128681024003243745318154608594618353679564548339438938308161486639313985485525584372925912801389106341721649165639829560026330745399173555019965780568295574526906570403329299884782917876388109291469244586347586614381742090369202165251608690909603547143680873083219558832958200445089926289777368931764319516412574685411358919476651947548842396255044783134326129844520458355033169971156265788850640368173526969523634485428362523618167361297820530575524505952154339187130785965144763237846609568356467043884562704910920408971692343637541980452176261546904102143215891536542581956664426807712242596161952855345815253660512769396508511823557436089170681630624259811181270636153860550199619881590030653614493196629059514416068265600569400333608022977707901476577758968089443499295513429332751591690989331757965878152058898388103445828223133911833461121204240967022102419139685251816629355993387201550643724938189812794954367973572538572745368051027771399762733012579082212081672728582185006209426624321900457422993359726606806348526824743748908600686081694112647282130855127993021902289419176266286770283329119758678078717926251959746002321383965594853925246736591796024744994269111717427434705797733766421213386105550434037153314839660435466431638319571375930827716316121360565923490440406769701692699617927247252759675810018065625164535229091094729120446362754933025531657278186360990991838423081639368806931977848126136051842423390676437245850409100919456633315440561485976951978287296775560918778909014094041492496269057964680833709000624993446037145848583213702925169246141930985389666522872538693378106597648539200128763833912814731595057439914687677438068078963556082590567784924259728054942565168989758982640991265957247015420701685497515933264707487326772063334371064845243743356203090310698969078649465748319332443896904883565314129337799883520131493788635433956028347515617343301117853164597620756632801092033867140166660134953110063237566915652668428928079477477808202894765798193066024184527090616532289330128882446633209930621053440501556117927974680250651956700087234970380968807652191041273926648357775350122356483271086721232325323654503603521723825534712965774300222909760464628610192376060166150825096945008674822653422760258078124324436737302315806462847722546546717882387048638758879988575731841513106017630154560690498182044993656477293190349410478178427785805638987017487167440287567740509686530294762641372756457889690804649224704145660907339343368619553269093230057350599411155827511750542363494704772701956528952892765890370094958058717222210174929124594628382875588883151835863444139897793851730008912236401609503872609379033379343671828580862674193865698277509563402807931459561569013280698117236715254164507272924155019378753186572877260638973681366534244576504639376445739312170157784475048312994584160986186848207258632450973697514310547130312502632292295715993612367104735632100450277166364361682522580182474458451502767199154005239775191761753384157984408770290563705867320114233403163689092956777617077871781929479698865001394462885189747845252139996966536754176304143389295124895078989904656084439036175238562437288934236248382256487163980036804626022078009559875654918876488853271220253117907735126278835994720088881991333822275349404760976558508391588564762994740331965882012846868728035785108412780917853818487765994623052555488193649019151631153735089896715039196092144412235987418355031034391947091742478763975835249252013860459090582275953830622502108500923185489679047234995471024980391220655862674995407818704395788163845362483040410417396510921905927121576114461978020887546459708275260484128292592721949938412663725703562873904960605670819468677237595319606032731832657651182218962207947714000771044510556688778627615881801669013374307309188196543220237371118419222287512193098296793955517918094643915469809790633891229340048894382029071515404236736162386766810493466228045328800028860041327557033132413198673859503205073653631955126545821375957634975787478909701186682751582257760823449687463318552086894765627940763345638360257626578300437411866158231975219371801181845972740154150039829029475145042823931190282468400121965080645759644317573719756693292946907531073675170896880704858946065051359500971697579664830737524748209454905030262278073524231599994931246494969853086163942471473103342607566222226068486884476115527791942462121327289744007400268177368621016992090756582422723421037860299305071666430719935183004314814152111150249942164703752045235923354445326107428633730319242816770744557433091073289718966616391504626310283004689883755678062274511397421830385959342600217557800578841132891365937196103718665838872199918016204246700530980019868646869179465251783794461634821427755913714147158899062664125216883773479060355593220499654098931117597108648896507799198651774360613174641004949887966152972550941059176515642886021395164311515507657525327971487803824575759952748218537741078073586500762039342033425987470636476857477955240395307194677466753399894507196290536287868365292824997585523488508889270320812914949304708101385453437793078137038178630995349880710837036146657455439812474212451474982849184517144130409799221228816968866738283044675394236313766597667360276408650765780091412154768103036348774776421789627580480803014186755742150622888026116914531045289107845602286607318582328756099885913304989617554670122177219197040842018777377920314344030170880103384692198172668657781563444299674017198453960677307560057633495889345343341387315401390389009038511327717649613119358340049698141832924665219825320595804752713662485989880135718245596569884418226269357814592373056975996218725936846729117847625464468642627803604446629444211385545157595158753160617025736647975830055415945393107424999171865138952467482094528863609463506232002516454228514327883788148346769485293029776471918074832418381157188096229166149023985161512965834326511456189547897923240091923806623259409938390540149865682799069800105555363670880433601280894745928231144506807799218025734928973817711743325346882344138400934429577718792797932704039170279586307206929232512815016420660137262513551078446552317412091987161200630861341283915358302882249506870651789334372212820206155947856348723058071199920857892687970806983932056406905890270645821902251356182315700562817682324723411942930184145923393166332798188939667562303612782283114995419958280685208141079920454655408348783560166143838296412560207019053601310641994244250893174081456127054626873883603806743623825800620787552667660887290121278380144894234508960258365553805082250031087169778072692748991769343686273950293273398622307094585137584292112501029909561012969585399280671734249063873206143332981483124595324655447409680321939679245696549154612311201779054547685046236357406765637508965464371926472866911332908470358806724191688596999059326636179526860676714992256600484519396330238296279514113402372355423368149303574748137248313581225593825504131360867407180437127432381133337106429308638708874902462900572862826289920943757978287693002094400012387105971056369778839894592355804572787461931541000599072805524478168364924827794123003540126927502689678260984687771697615053337089168488702970440624493692695335059045899112322926634257926768550691448179338898511936601360546420355346227789958339811340265192353917433424534903572438890209284835071059312102953192625080205497626837133316591093814055021227061832327827668371732221252805471385089177345083263081212237395857278877151042715619564031281243880503554283667976962017559850041916623411921547612859610115027059733790062815224511284311613689463704545984287087661929650137078971533860508853737730299188533479724799473878160465466584043743400029571036787550399494900842302407325143506995474001752072703758060005056233782994753977465729797634611053951990024826238564774509349980499408642921652214677882886513492887925360837573200510914579916478154362318268274401111469949709760532548498094231722039045725509306041929094886012868810805172373875439219446870991153615758768388270990426682149494746742698071105043778541534333968176754876459818077848451461587855417929442615726025902546946333592283737677924772844592488340788260082220758134994196624265430515532594843635697977114277092415353704431575786937760148201312462946009748098839835997891194005301824475966682879201242374666740924884908694207400111918405055198048489984480254581056409735637500185215967553126862658526601057093498235647861027380703316019497522435534076275479028754656522312779230374485406336053771515868662878820853057841821902385758769595166021671888297261737657067646696229758992246905194467360168459569555787391708843169985667810330047001309963876182841694790295324573785609149883019450970895848244244792966360265094571272189380014109309979616892495824537992285952309381762823686225531324245792171332613680769221884121481943951109526036699326693683120245569836989747101630807993174094897510356603977858971576030803434308811802289949716757830460354741521049934018910989830438182083735160491091686631391916946902156048306734931101064098732538106211059560146777723446906087589570428843162603764921227225574033969421067999656902348674068402540837792667608787420582136700954430919388096409390398384938648585942645352516279860268100384224736511077154207281708321838814066198605144996584991095555933105292464053953187747729959874854548069420678188931591286697171371277769721631427964230183361024350037391112673493496683165451053029777432562600802502509643320358675488478389607534219218331647474754842680495242307410031505341165199886411298511639825968412731045398141642983368486788069301889384284501191830566386481652494150380775588921942896886069437743466189261835017483157470455278103618576824775407921948022202642910515449017935687344686263726686718959643136446676074185433105236903508338622111300809342370941949407423618893275397858263393428120373837441244122074922539566971457671634425297946261282669662067465395207884256520568882032962001931127502962336225689473420879289310520702585564321565658386083892108565889135731322502329401483403478611795231340238773651402521681162310597313195194826694000624577657103921861454782169171140577889741674983986652926905850206055802577228176773101051666147435907412470228282775756763143756852791558517755408350556658788592072137422546794547442659260313730457789745882809002826412746162444496120332429920641965970390420921987074577822043719675842905004559031664424143428402312719216440202788386889812988193387351981289654384515021432972243392007321832293883896901070063741232201781144790817135954395260954104119877650754222166101181215431950412260223567926038036249627943492934232184257296644574303252774567148563955764886255289543072477717895322084884431789268212824859691266641388800930749598730976033635037212011897545046468011245819403244944287884168770830552501015300453563829648734397745173300884400647210572466640166568254791993786173007912100897501374813858869331221241304187209613351728373676028736120462984292476317399977288264281698966524644546142342414180602742696839722943181289792661615742633523307913459883773314318289460189456858448712990577342192744197517950919911799145788101292614955773993266469042787738766064310374067630218086320976241820488712083106524641939803970962286534160464697751534745475028636950779044483189583879920702196901342831598294406620881454110304208978769534066365358335058704282075529595077405974922487874608392075014914619790163229818347063669336039292003515213608832000347106045453781453833305525937876180767607567189102158329704664946836856299739606166899054678932702106791762022098657379847264262518683507574850808629622665711813566055057158070453745149303599047790875463805946397038248927772166585611188829872379468460965961357147141862171894192997054045166626094300795490610055586396129613931745394151670472661484785863381841045499571831657926201468919195045101305848966021336670893927452405117387726438772360826769564661675271502726983791296682770928663954746285653366876004851748206676324602132568225352047411087304094286517607955570574233748562850229404069427110973782953633225258517415904609772965812658433616730176143264301518008558243530068356731948803255011153561748221013265354301935286876558083810906154856247764889657350689751383771575677347144366309200222545960703881732461628414094935194131276612714263675296590280773009254714534407601345054682005072893204591124584391567585392813659014736245762505333644904892494704174905919432053035537397201819879911900060753337859739969506066026487241077803305326432401968588904366019425019961823575722022531869237891669703798269146448838515459904217569122052520537620792266396968105156659534366470057703285781544894066765397836151302183215317958676791136359028558012091356054831345847938585678285949005951532164766739727924530254005700671995856328679909903212677492661078894969770244001519499893865210653684561799712954970471168929688031229814656073716232157124209229388973495432659085592967376804883857564602711148904398975052793505866247139237433363679231841164914724290613225384377318806873802490719996885002270889332764208903011905034159859271201467397870690056941797100307316299307249288500738157325291197994407271597382466466086341767465067391560133350391212268385009935296405384004827064235478458838190583774388937175844293874863323258601874185881021879416092798261695248267369357606619607749513429107857237397907425053832680775165556946628772604461670591402266862134294940235217060204552566656422361889578237962997271601845334444166827923307008022709051399608327293926667561658723741446370438900013371143590266099358836421352544197461808616958530934164043119274367509131873268887663261864287740234706006965569057641992889258603728025894533423401967252586371285794902726811582456534128440947499280213313628050403451825677444559660538589649924428765188243980764185359758633196418005597034125561822558946716932319729826382854459718565229205417002793551466954101579547960945460850663405218406322550182692370778800732152263869303798378062553381728446562084333352010790670978864088813042230816878123279219599901146815905572420594037833440219044970394157075891680985274801575834457478345906440721441982993505469451926541157774207996823049155401242129036791838787605690074461212012494585440910716144724673900296958919588725115224842998787469591216368553964137374204346122502758619806169881758297910922058057613646292736712549226407772077819503241757678503949869361989544913715752033447497970645142274029391026255618476324449718500277434499100505426382410810504182460155068378986252690206567569938996261315705092766119751321074686465715807872551245324383640939899583941056867835752536851704167083572286145263479930864787527835903772561737625861098318865279228882928463814965745161974221553794824415149817209674032411685632647259455047269540406079960304561056256893625404904159443527881980479245039159925798842055233412567514293805174146431820712587722585938773283747654192403782012891910211432551645579923528727979675235740623577212685241254139542549308734264891616688422428124011107840996521388991368991653263503168751489042190288313626563610196071217963870893084331624839447582504773351507831336423785632527527335198650103205384893932405788296047990110877662727152211264045985364913985228481142815313086049511788484171471333201075935892389360752883891429199012949633152364229722985139496540331889888061419280625940007871271440210384188615677653660952223587662915323115305899492105376890947255525275583038500520603081598382237694555734342015283012036803486579277131176525223578292037289407122595064822556146240691920432376766705236371080208333153843421592187955308344859191312165702150308697588648051149350788527498805709477351105036198281115626336858025488337020800550604754970117988672647290871347420585773567307424283149254411266034331521105230312495139280211878400180981709343979216252833553320445359862629516914373695623361075038416309254521025028774093325883393198400565061491144869197717839078790807366918305646721896113349526325125033536685023410582561835007252028195500823705742266901403912537680836466150602576514937841548484141290052438149768064428014581938020791679045437215714987124375389943636001347838029085542334569796211195630927496446536260570318496305935797892698242063526082331736873747136294147495595872806790148518849076682114466141935724179602392712372423060625071547746541430532355442017903581703115267679962885465817746728784825759956744340073494684032067549168333740399512262055041677389104400124865572903627293446559271222374471809087078462516340474133664786977563849462085981911379794269912186032657283849201081099159302556382990608182969395440499862586453320265554829698539850959150312016749234993949348452101461708244340525957423396098239468729022105439006556662566525790690041447451041271349956435785400674010357927070144072267835118095177014570935688642139431870978051628882967505762716046498907475880307161350110632398841995622627721896352867637020779969468567658892077252441480032879741042942127620353544914479630630113094873504056998813159817624659005586080398795588502769857090216940383201811102370843115256710193788565650985416284027895675277188456186380412415302442936697649782488935438563409013933214561833292767088925768310144016599798293940416161958553190880403918606488337071260491132240832989037371709286455738590687611333527675103672275588414406249295386374757889884299142633739711220517980723456122529135246574425771998475728035403598067691711488681135747848728550065385917650765835797851085531450202870292797179453442715878280428645710816152092370208913882189649865786753812813848687992321260029149687226396226602427572198698563617536981048861086948503711669297927721742332788526496483333831033166951695531769179750863834895546411332319449850577092796525138504609065581863599003112952202263440659489919044495592993104683707173280556694951754427024952369988798133686070141200473772718448478659842379708529288603842847632253192461087088188350416612334862948270216235685706350422555192904584499958547618840024277490229470086028982647684357453368741345733364722871062946889474705680779805981230982976586042601629585379796977339047999580054024748795007062648042268315353510137118279261161047278064664820635069669407320060207728203696370448634894795005863338459240976723251961379392067234343003020353655189721905297684355646960887949109904923773856797196333905436178833561239654262892126422528286396696198685007495224827811918256759854574789643535536992548276065386985017494027489947889042199168272256176064901487634875584174303093032859032158553802135998018950235862378029590680223477890106245158998191520858888707645827305800839610402674893547090328935938564541813997582227424274149923750060134223891480697543111104234333622973532182863806438541322948801792648447135537312615775077557196504303607292394763046734474688162526615621258457486786942102320978327351837765975810504993922463629188822483361415100348941049568851025734180486856129669292005589332868059868934431843609044984188821597257428488365699813002131606005071652798081612922015026367573745957763235052520550786887459378986835334144674891380391085139533438814906930832595268327316665591739927744900150047971110902758677173464452721743576554334446585252673412313022752586482501230992576559069285777578053930452099795357676300268404907143875868655338471888961089123871755451162085550835113038391892057795257365982121590551715574808592474521187277640705338602139455087356088205101141027616413431689612141984528187488996563820461444089968914605884662960685177342362704083907249379270326087704437733265264702542401006594504420963276672148136454174680836044367758127298470701315181943435880891508477027361621373171045089064569522017041583854088827328497794125961522983983902063300035137876749120705059931844447755039448482974112592651836688055192261774418708371674011898256515471723287159376640933268838552961535930346358728559549433801381181058793136812317553816864584475165217317005079747702533401868144468253160758677698743881536441640986158337934365772640808855137729993153660603616358935023167286383952240424190919845903771537155525979519219485819844179116559250070605804081719364134170655800680315276673484208464377935926661888426889391552623777006189276028638283088697133433677321490516593516005527761391492846006057907660737492652522812335433342486618374767979181285355553915675474583022099560987324964721524274425132206132882923908107525231436203769289216913369784853122283846611811959082798544133705051216311305141353659807455483255776197556731882308449975066085033318510462311751882070837566812632377245256456604074695867877062588574485688591534948277607449353012128673751935846379214098533754644843321405107117153103487609783605005269781228580423125275720429877602251037548037741142943160392814329873408236199246077602470316201706171087492827708797135550899664426512121046864896221817992318606009216387648449053158728157515765360300148116452522222005045363918974931078525409468010289762388819785472853344562520858905746182197958282396650861891534808406699264641842278746741762613396496100088989972802453946095601030220191030352499189064375054422723886127253146875933235472897401730281620503617067302804923445635365953157120972604294781508970267598641573577467815819587795551369484088170016569112410558991871626079628609078036747513587951457005415849479718176138035743431694012979881919981957954801630033729983654882880662528450458181907502324506774235717282242263663912269944640545749796792838764890693480275999862221864899964612269345721181488191796434256594713576843065555400834445093275651416938046059658774742404749658333308884406952020892381393034348764614802326516687343024528458568196529467863222131885180428222462396937675130496703836741734691560446156245340333910884753806930366381910378144081852678522192617323088787547778653442813028857631061262778353793966516735621035454254673991756926291315278629089293209146564711457142636432540391736912823907604982222812070843806856728898220133155602783823245845383140382217785968787813015516645440583458542114418668607178864025452816255147329682864989020541750095080850322942704280174485427502563338219948575731153661361142159073980485872275197328641738459185026247911896830174992519743150388034131667851094735988062597526949312770624763867541262150253361109176933172324600629908497434683007843810188553055121556976008370622240122834270786767645696498544324336389545264747085529462315735973425258133185070209813869032905346545149743248662503712759810641356432180113214403999286346025129395575695023905592745590240977717256808764762424055719641087781725575067335748697768896807820715215442121498473536492845875325541173833796098970448179966243989955561918588788214369912575787006457283524484589445418516773141875927274038475973952863028759545231792416253374753263108143313512440107749066423941387523196326572574469175591124657232613351372550490161496397061707921381121637562561445969858513662073755200051595627764532154396032148948394160320062199892296147706249995839824776720473439462404755384720908543302231841436993150055333197211535967034637135825339280537233043478064110085525690909403070291068150734549906328634023282960416780978084333096771028031287720988308330280149622918185995439189705214655166410087467726626332438539667872517927134770014155626673375074028110380999808531373819379403602020123678168283925771537929126098787764746403651895147748817604542520760662941859884440182303573702632013095398024830895503176645156998692653646663358356482856640898498176756161040537087575367538893733426132209721382208893234555566075402140744662606436339773326910430501832380368883303722134298224325702409112532431351111007783548689489754018755248689314617484394661755817229139297164768153330719589049036398048768636026462328106079452870941702795287453077743562470652367706382275023695367212495495342331893441232415918765816479112894217304211073280594964855158846681508475530161663734541137700320180294476835967039048193599268779686531422530965070423437705805766286589018358939301120756733684474108267729105206849680311776179648777760546516578622890107242385543892715974924682111009062673271935588345625404776299657464212823463753207844542528937206956092634516884800167023109474743944890424608243111099906138236986780260458490038858465388396222381691109937868205864455799717918031220573752765739668766500067525782319064332820069158952358215244427141917115115508814749722389263926759529344307097896405834755899781339464475077580313418057120232534757016882759820985890690418929139968699750209450947559168708980748852018906268341042176203323127291285854451104067423858351781233733846483255625670995489664532566283576117204644255694902696630003841461097917280720668283199777352389263837687229715479137527189126230810939513609631147490344214534351462390295526071252383494512755146343870342796676221722040999178576373476594343618748036727101301446571161385814296861938218478149357662313049735415217183013109638619967192135815559975584623419981319433191187553331658612100003221441131980102511872077675358538772860624437524850931859521074270981067127451040931357288492386596458329411650211610624757304128684279535422609102269642274343273981444814655381858322995918284144156986109975580207868740042937145747622980368317190731602352777038629176458063529130568435588096884690446512176646845467279514679010786159171814839437246400178002494417978811205692600960812472374327129951109590920801646296151962428775190442691929698239915250630548766201679776449291414013074057903939566550999884346700472044402627792564970525313760603049650852588827398780270585793475993806305431231663738536688250159995731269328344162548673470425408413228275270433023421522845197522356314190670119741243363129384967296816060022876031509491192545284804373989825241728823553977341659145458516994894814149234424532093061354257940892781344748187341403493897811205974422399526796836578706606486174337754289316855237863047138006741495184918639413248259614151282451610436186509218442511172041421938028548276460910449740463659323946953402338077058962001951889545394771963697413886326165196702178931482814386207789692086193999327928165374273019092221400149515479729383976426504912355802374794627767387860751781106234276131230771476965892447363356242476530159051362849995208213445704506497913914473827962069324809898617557391278984879231311769000493719482025089542908428070604020875280537092224697098598609984891515408287216834764372187744582311648604752937373095529443626482915602502401752527242086728382530648828865574677024021838177229293495553232473996046227104813770597869804681080330110211799091805244796277387325204318129713464447844023385224514067683768410365955549365692735335425476843345967120005232763723242601115219171047018791662505256543670722166693619626113730350614308767877319996925751227504286808429673115211928833470035904750220495042950082267174204738578143405985666378012304578655121956494827110956756979659509036573174673147397357976552051503983519438924599911536864152935769313436792295762725363157114727566689256119317956428788112432522049176993345190369642970822186512549156092456937012054721333041694353280167059499053615274261836455729911784329543585969704060723611555318438505603509494961560738178184654583994449737795854438245158530996331895170865032357078491981364875335160890760481429046375854326126889962745444453998196043962457457561382470049270825776792401935385798972725544024109379016788566519314714411959722875814303541947545817615834059434151185101394714543983572460028964855882125592001323958096815415419899757741333053543965651842983653288364192892792367966548686378365474498379408968029576630161567590862062419020077090156297305053928052522875051358367599222232820025012518644281719847156761917507954873418814250217791586564889376905153044214602403786197269502178668250348704667863014128280788459290586422804218918275149443556178392042681643996927015562600019602484195283181238471956597564712308038915270149901139761114383514113151258487312588250760813624809349862162587651704229418965877986368074731675904883587828679034208336056673956099667542389820219280539055690015740613432842998242766823800026687579036722685111474005522509873986827610867809483426973702453874890155586317842264267263224786792284759698461829580636911047926338119276074078653107048544416683223241590071584859241311280935006067013009209948437270757056031193391895251543905836144732805339053517648621316460106288982727939654391936476520124123610972967603507869000550738292131297862536128422209168895566023179005153015316195453869548674878735093311872476278679264216683818023045489031291677040418578595242997025688156245968174847599145658519431125201991536918324697836254351583773399445643125733600408427147471984070448444775866229441775438450590663355586679417502377810347177103728265894348888194272736186706834964516966005494873886278268981078611620132380440966066057570792331222003826736240559400441265673348193708795621193344567671995980733112373198786571361139820426660741774612026114841861624926600319994689662635876282392705505398575583594224668228061835744304185459391974107457766836524424336341839612546852646944775054619057926915502742993757760219604300681247544706589106774130803116321707280193915233247069766235294933297760376233626359020702695389689818889526077254122434397598428523183433202794963280785388908116923978151946115016980454020062914108222922386776336239793893611224148909451828117568681212830063476973920375128598149632174442275751578933646036085365772954743815805715457901610826679917233630613149967352448163506981824520071582978120712947412210263898900470868716138052236925891580758671377823488076992447772483084283904908680156806397111683553647146043920309906373595848785230979423334657170772863563405136047760768727185298947895811658647738607380347972110280278147618427433624081245641473960204497870987599485313180462609879205664041387208469198488979220348984514813792376448673855070765212671796597531873893178610794948138966726332669707809117123004215759804326968147367253146930315129091625539776588858121662352719716532248441074906432137144129073767589760829389639700981458489214954397372659131597685595537396788168620369349650084138535907702704150760157328285750665131584836909786660503539161893022229162232514992503609947338285515600285683886326397725800597251903064513808310998682144844140677630465584148920491744512499506135098819742132546177498194064078986521316857942755894925859600889825762230589057901441985190068694411133496625194816055742907250125918048322795484277892770652831599300751475900492873216654323450406855320983369371187738238900387510058606261661970982924431802196864522605838574651923434327452025654046550197463239360765690155069322801711670924593199595854966724288130816177609212692418829685398050908028174099050910503865669166988001863821756882314339223145637010149597679490403466144337013161485149700340470755804495271101302533031965471630287394993227978112808680832296825470751824157171297132842820602536306416154057619100727726576839733131024207080870581908628965511933120753735090579925111560113004786118662547375940650032386184029143394098599261162167114397887817356525877320581003772818549345067359853908502089133678574919395805059322905491742009627771799165854606906127382893530581163756717861441694811123583522656381183950209349589483405524902477146249791990229443629259278650972406714813538790366122246077775761926113188153278474172448930639382986368595604911410673963994147149184866451614273558009397294015262365986449610457447875287207515042618410380084847687730197971208576597622109362155272894424891116669523966216532846361305793548695497810087141068488615601305594874856095422943404659334053458562654671105254295136765018488273796043709691723171543983662402736879436328125392291545783397252042904481775341603351731459232999153878258593147755680345344752115103040629368074082358109824857391440085466963433254244313095314815562118595440507513443696467816310319131862004710503587342578741401041617361949410407162065798053703273174686932321355141131023694392321361929511121868849025857826597978103239505720576712309972794369852752969238242307267706843048710002130347711862328063379136006739460519023606592673704791771881998005619269483124413789773807395245423752151094625873718476648902896705626589858535991432974227517385845825037809039989279403007478835930606957897810822279773557285788721278241446905077906899306198757244280582311236171663751520560107587769867585979285481963320539474730915062252315041415289848098813146722150091245251847140902750414010915435133735220728980124627768334651128110404610198430500164445390112958248525124726459425462712113939656545005344141552800594526922788830301483250735860209723693362485177274768820792181612764322267351843426965193796264272324031227546185056371039573728804073956606273308494958771526064514316396182900870022674101660227300794133636447457125864207899230492518364855361740970152101347816733223277070812818689790327495729785201791269272379286616003930202717874972267680807607939803231586838675748136340576542099598466287224361201074824394389304241940798688982713492548309471225310622409470253500692297647600808370603301288518687632343470487231943547563832827429627419639592228925634598740778608725151767149260971989666213165374955760937360028753684039899540752005848929260330153306489607947000465034672214182099368479684928725796977543403374099089733531216923769485970315114579026033745875290454924336949152053604344951387849029991030887967350127318346752910626350840086402721809346004520968459498635764246285932985600055950870754001263240992361040364700788226401198614506186413147287612276297976660510138935029850919218611936774734423764296656596009720723315706164457925731063196607068686185745816977056944860298677071680116713796353154370478773998753234620699677109229760866024408922436488926834276565277107663731499391982072816585294634187249494206941780297873836851052775079237388180004968072384127882433443469119217668568718938313418168251114346353696371781911002962428125438564480555235237741401120138184397669482835463304848763550877258944168455386396504941466749708070046443230848902119992469372755519474152678866718986915146475691425943931138222718589703788314708588455447769470422000427914161911825589145913548104773141628963745411520015061732704489789764407453665965656011870050829530951798922731142785154497942776632278649181094522574719711087789500263889800766768393245473681969463708286983059870220603610974642817604722141053559240379173597697508416734476349328415585054339767261139775946390261794716580141493691354973103696191231922712177893924492040748234270127163053832459648869672195197728949103334434177697391409755957900358070430317792230709574820931150839854221583136668343142521540731625072089794542463947097133684860887427385714227198262484039000701405051799106288153425454651600254117613542810470012695393760550110253498473211347216689515904556692822593291853355755329339744294043328761746607340865658778171437036792117871266336603294584933335839287827650769360053012453505725714015185694698872022966883307906785443670983494077999467474510833493470400785764435341538011252582771975316954881478911678934784621047410230000316406833636156623281034693747660087005187081410328742343156564426775025383463736888468464102527035466543990229753316282897658569614274460876041810099500166574763262959587241794941539123717776327855502616395633102038692175782455808664843288102717856293003906211054267337493633544027113523020439636875324624255854792822226209493491780122004661709463402480864215942189582567271515448306579704720946056267539284973309950600124059737388749475231991837681957765270995045608825541024341445923069213316604331003481514849543600260374032892199582425608807996584442806849629196251656182169684143144468829634135992353171574035493563369520009470295047456458812192093977828255564274660169819658913465104955592822335088217700692868626290044031478279535822027702578036181816205163528540834419136073256717609495344512889514416929092089457823391760647497293479756191451304017208499749897976219645380724619320417169522664935830682124467506260599429344734488689817402614949944276755861945200683022279252034787821418667091844394957412929453462428951022458519733489054331336451083371411236449164957243293543902278405207441219846201602261596203750887630056728223422595535896543272380193750651603012996393242048055730990047518522538811848167175127904690832496274858881372490185578563716372482119530038857320870668485552551403066723361230634948517373689327488064442822182038888626284663833613179283401569971689268508152758196153201389542149841650363735836198977240522375449859513821287046595431286799773011273693824442451415523895967788978629727963641125341663933663399557462921539507038798818675385830886245232820358797838746146168716778410881090485652753358645358724363408174265878988718710620396151406305543766961254234661506038979844754833484032591000611371458147881423277787009568138345165465472032575368810093323680252707295499463475304517097242853468364428151136376164738983556792470822013920570991801945992510201935689837127588303569485732931606453751502368410893090190801312485814223439031086759493416115747974154929053147368339027277235702929922752183420568517610897255284777651284030034093033818369797984637133959596740424650473244508120983417162969890830392102763862311881279525380938558784802257278486224057920685122352930434338738383608857383473247070828149843230803670673148154412560005573545080524506061603596007842826081059272765951044013692127962886742070285454502611600742897550720565688386984828059024053256667008938232651718889334375594437754863169511480006028878278172296673591864789461110692978015323674075681993970338559159494981861229864828353936701294304560340720396794480656092486276425708577247917017814156674877319261736112407611104309711435790025019261468162524579093220992719825630082326712777078679133768323607672453067237738742863220545860503395657470580789308553028855330152929788761283849452182124782876733373570092951720249739614403959875091214133752451833171091149920332037353599054397726595426400998910806137538307264221176226457445574241837527221437238022039110367293472865047808508943680546756952405491391723474644442766460932057197604451891523547973880434082429066843266378665774952025876816532904655800931112625676544103946417719187106908426957431612748958436537316040433469762908094388077041598184390379569232705749022399804158352654596428192463973091953259386375292433803602014752057704975751274648111311340069575627341933875229400292728898289371084940425248259340100466818691474694202379217656552653049567009384677683657049399604026175036472553292614683980012695710370203790715939815036170541415174250001100880334356116012098623152156328705095953976572087370541510960372441288878777213490696747924835499205479340272157587843768528250447564793100708259071851881998127962567221342318360470317314440272967942699453683822376526099069902682448102392840899835654394756091793030660561052573494875868304756701884550262094276522335017744893779217725601201785627374232397716221075653785503086863829941639654937264369134424838284990649363700523661702415051335986342506263383478455870048573135475278833178226046499630250934993917108809731426352492108606548218707586686708067411820515633589592593749573777828650819888459990628690506725777328987990903547063692596291662066351092434209838241378656942971169534558507654888921909480538469683089503470757860013040655228256323187926898146687959839697900291168141539229938378223801724282919708519021969804042650671891011603767332587770151035114333269800392085364849991936201233005138852258926713655790557392783062021865420544855905216516644369051916749322791924653480260709511911076813291655129490385802013631404314457918443944900227493068880848203041767330987024372287723388811589161868963625760960369117244183349596063130535350578058128754479975114282141749251123066389993394150517850285521967219639059476295699497058624931557096504286954004026404855516069863844480977762750926781894093239776559792827325434730109200582445035591264285872462146385835768345180117905192401886406357858343096068888366669881923230319492482283345443283430363128642994330188481146365959560803961626868248793246002157452973191717980758013862475185955139790655273550563178991231381920845794071565327266771881686583980064950362650597016941224669848338065544403083737789842810087028061279684937054694923021714298234194545419406509787917051738192758430645825691387897128174335237332227050935544517836170676469876466787610364151507435704033528794252546083077692561969163375956802136709183174188006234877564392373048658789781401549996829448119781884058339784304568395725483805519809605738122682076256551487092478464041211714396919790270667538487358096123534538890621934276882852712513589548466758517514869085125811248874792468744628995408246482849119307346513051927558201616574978252543001476566937198235060907962181359018198918953816695037934178103995812793925386551513313815012102492623984268846862252034865267930379592642789476747346826976293978178794502265775063100583146468124741903105170419445191853987681246377531691991890943104142998356261701282623573310722672218018411400620042815869898657469031704918274189667979799409668220424045705172806738006800407718307634346562657937115983697563636304123480141983596625152803436961846971773304057254047991428875333375001773109398524675050910796086091407015799906145932353495519005779425082627996134250106473277772105123847226666090053828278952602665552519733371508723781663792511762838515262326280021101672013933973656785297845768704719793428523766490524188442275407402837140217456459933551741649297991039835064633881301606466706334430100931620532442740559492684293259452393780131893404128031524765581424801006332469850711198030137488120931499035003490031768429268192069710198650154300142711335590998177714881064510803271127838878148203418927407772390246402568360595250953600461156073982115534115841166190196080401337615553041800399072078429504161122998848320615048036478811051196628382908896735869350098174574167465800133751798536258890895887612133431354411056045790943813207373750336523141540184447651702354427918880926972093434677841188845215851268127118854451281648126839340819464682702014429054759859396638057675351561455896898322656486284721395974552857083051133109420550515368051507567870094276223550064667336368852348328387783719303148940828107883798433390812657910723718258196078089830036618464595716333569621484003639518867695164822007146289684766330306015892923183541451778864563862706453279138391958079928445136086826857444705221047742741310087201860144999728192903940474746142445226899283567633048617987174086338256441611846667043536790540093358134977377723112635329532662044278910173785948237332420637339037763841240366725714857654301555457516717798375702509824518720665143035951873627193186127727744318250987695977773539409455478971337902277918029604643087593022127325954040424268057074288101541140724485057525569779686845440341602838768646947367128941665000660187719729389246655300062687680290662466863749560105614304587078051079536603221236768385000539579162367314585456918733473338754493285045985028544080072508280602771618045867228647625471261841598474479326798913418942288144210640030496380024273758560242262274748577163613281532015722169622938020392782120092177251018412913095428067371457211671570683608784539489736872072584685368930360767542884356063089103698518235476772424146824911570515842405475429498166479580739544844142728799804300157300074959803144337352620136828114530862356791627843644113524399400993123388188090039158443052989182651975506740079404964971571973835092980445327905847921334324282581389859720517228689219004521399704564214659771482727172977158771376710670100103515196901052832303959860950787725243365060197917101047649759350911887800321070730079317541720802743359007783134359261858221771664352478612864873011612550145865733130477816799062380129026948047049025405349680446374647979326641388877369789485932068348664060363030329737878974976605579488055570591779915109997682636290258269334930717912790022944944714636295991076416789653030834901628659080853643835843789547486749371556327878855846171254452112479343325565758432323237688035771475345144867200190895164553641301303819788768993354024183977296891926050521769195013184041518580818512377710957399521936737403152383782929898253503502707352140792806145140966895512476441645194792760881627332558575979461870296017785745504619847339940110382803590698249759566808695484507277808811238107242690757681594812400596241527763112414919034017140775778801010950310552012579819511940885674575008325800703731161294631785622026149882452498920311833196938367750752621891210509733245309565771354462144312492368874521230166416756317918807623283481775614601981390841618458881007080565623350360736577150780798741039350506009568701523671493850687312337947518442574416948057262933223147945820192108795821263274435914620418133510698376184943264459150689783442161149785358802893053246355999138336882489593463377889921264519353023629995279761955974078703946045978763990582717211287630751951319645293203938670635530203562983718676534820542936308657853419774417091514962218591214207041458152215155456063470803094107535534241313596489975650379739700539292284671595353740945341914923553259428496004270432498521081285196479317293507125340782718555760828151482564330385764473453721208434605498119715348862736418385326061942941395218391038646025477947012804806171706157967464053074305639291049257208591880102573540745205986027170910130790048824392175118138244648332952164642162629751193447881419300785342808350389981854988796682304780070647508640815385233204048364732008902921712971331075016554971765515049356768767990154631013901982787048935392310730253102356066874271237875404271818677917516985751805384181518705830061943527399941159102301804805080728165821811075993121494757862040607767161173593092001325036882689521056313668802625584284272060742338574768082343980622932476906324012173403800803682403535015304036228773926353003582167549480356626714943281368831029537256721189875637776872977917742164849261849568418539225199946863316154137986558197355158168686284087757498041464523315852065877662390291272428003098414547884103259154710382605125317854187123568598693584206268676109125956725387185377318691713794583078181789434627740920934967123432492577016982342382275359093966315578927457307511287366324550100376510500395400489312655809591597345931337373393337176770191035239473516083279470092756756187078105620185071435770257966272625115686232167987215080000778172143559314661346716497321840792904255762593119362793204076192755805986753308818154744045647419099891552975331800081676198078261020113568515384955199220619613321339473529520032535931262915797561682019070517285267151494372765528811989617019246410324907132954501225181480405763705873269952269851978139454070915514164756591399750171199871903750552540879971456755882071853028755998059623912406516659325325542274117288424722837782038318160583766734529316521874079823313545848658762550404539986156011729537252685842596691281169295771187307628837184288041666999221625988560986617451688622488438089137333871276790564293037123681329872953203353359098268939968947518216300221003875668474066630266094659419080720643464037837329368908013986149965758633598555642611075863892662086234365220300858856705091370251052849096359234385564391024795471553490172051716900900710720916878166668877478749068859640398412784456614819244931270572288919910500750984542275735047288988987749453510343305107341738249650322336765455891851111058033228563065651462164954170485621232700499922917390586083578893658062236955737834062205978613277884350725701417424820953347224211423144516953599883317707520916383770325743616763250625010689145138849305058307742666251298806613376479433495657971769978891810442845670774739569717052573453624799340633981628415063899620184552767009214973028510794680418474644176673045198764532791028583747574846014871390077162843817840470341077420172827846122659653826729919379571031919702947864207436330528143108127885998746668785280961827984964293057611085557920249117958925036401544524320504939561595130557678371550978755758123365232057412105496083182522688402663069428678836185436528856864162173214097811950059766313702497266127973267278145228780402547155393962248361102525521779352011881362082020901726581953817449978567463234811072756721159807807329858759958570265459565054016345164152507723145410281416935052503630686757326425307277375583074077278178867534490470687389493705037353323228328761613225188256479020204163389226660344422941863830005123031600940509940354497195399536468860028993567475870324382619258296577636798730963344621915827707299033924203384083345571774331574973848039808674121528013527822351108058097512046600613173753210990138077264439917567846889824977433776626860364638807480360969099254901881988040585317695763962442809455164544483886053767117470006428170937541250724383864334934043886907404162082113916810111703061810471877449704659824728842585941663048931976311516605350122305668472405689364576203546906029217432628165103028538159064363286433732256491315863248781181591274220374734319762045492515848190891975045156615878244366983233036792848731845895476597778512478493002661322437478954366949497986912868677685974212501137901184492075031602205040599052009992348960587333167729493679955519945323509848709760502320113954616643189025621525758556362225355381677817218063071834138236768504114877897046100951697216135099501330924912282300414928952916183194805133291557604239314386117495918763878635193020955778575315665875531038448465416247021886155666389753507131969652130009022479648847024966636894939918744784552966429202834250448333142354631917280945018721668968837016424578092015725330204552876811611702688903059555557399308165223309510018689774924812156695598743764401626677903124227312015772312154339648870109220247472174939168053894756968462884533547089668212953756815761382169527451388342252030752623646825185009749960362987113245169086103019568126844278386763132621571970805830970804161611305005936314084352918243803557741494094432744131446721055227318269584715095622192433286565695254835559659643363035178599781518555474390063607114450313678194429962879987556614289573575202473691924457248368745004738014687174306072368992005165574632880884714214027664135273174038794337623874612429304644003693614414245570386349554218691885378619748923156248486290704698899048713552780162375726450768339647274960476478850174910776185548521475577040145526637432538178516948965299028390812966474960864066270573602472962267636468649252646767400584887614548516661010717338308460407387386215389002431003169401290785657709255191929941899546300769818532118539844935449259873867198143631694601461598059205300316939583016578784949702193314598769751921399164264304225239234767790315001709281772793313533973958881031312845138346418518292476107339741097039534143336273417597113159016154268309115817216897313733434606997359576602491597855344958172775568840058132445594614517628825357150293277498806072541195884849165661851168419654667908565155335524595877106890423738712036221496329826804973238062872759748886995416674506147814307376509075548523215604542000511755372127432490830873195398165482115863600094201775679800699994545248602127647097374224390086053207956317603875087243000074828903874142461501755105311109839792838646260272869634364010668063217759859088680087398754082516542890078139250338096511057575269405368282379545593910451544213598145458176186198455242409330407493062986659012872226152438665652272522665671844766223221065187337401234272697200753264888530420879053881783393155199384629150031781035007700292782425319629961830744802880964398008550233242465727269827052857840630714119185477845251558999657546826075500813557362437375177418272333426521574942119845449009980186709702856410348648391766113860370924659792871869943626756093096006553958435221175295302378937096115465712327781174469714860780417204751798389303048607340409540282122260549904981381350453613607027640709752041342356566495204455966159549840886768082321023622907170987009007763535155576575034911381883594993485912141803248859977823397824416945429343433912866112794246188067764078957335235064989266624722235119985679792184610116571610367185870814836632513740854586901897051445956026783356728839407897100601957089033372674577408298113558635890349739159884733163506257599454850778673901408252345285553326313260285889368867757620242768902808518178039999099764695920164612301195013737104550808540274213546045864007430605202522937845876144754489150135005019186058099717285066392935993323811738713200593012230140938101054548186926297500356298551101859355365806975901978126008301605171881535985429521395855363192707462464614012019919123451973315921716561937909971585655348859293547970926194314130844601609785303932270049581037116530143487718125377366664847064440021485709223937057567647933001577230496373836680008377665775592180134351458458195214010194137852728071568028393802605749429437719707003767671236462567360671091901094225557572659086878119255866356405641881547491119513413506108760556687389286328030138890835307226211556853417895305889713523436683419998759126293678942609970481436513611541216250164595168272033599460621543666237014431899172081371921816286258416511603091647667764369017219465322578155719189689973474408713141728296367173167332046208535633721938923968709119336939361794161089379705025840716352949581792726121226622196260027118305284984378254647636408515826633173826653973473783656138905146962706902944058872651604544307027832720347517039869753965484379777654165718505835131533978790751337505639494366421304517388954540912915192355337762911502932450613081559615462990304948543598214293800729254750613884570090919144656989573266247023121004047053093712588598045823767741891653740854761274673317190462062412774760287773440974581373622399433741222512229113838849345408511828199741963104612002505226762203028269312491143779234583739323473311852685150111240588428068470486138121895459319575960694774044018280839428238338550481212958975920501339133493504461576103457962536074580939013281289703735445980924547751835291092196503358330308227266583460260085609972500441048875455846381622711451427648852929037848125730902655902273684825070736589338181938905381881581638165582053375981609924516555969119467179997015767017219888203796848111700126063092879863200209021321100440257315648917584767803268629390117592999550991992296215437593824107135145480875890226708162940398093825433063961796077502987055075998741476554157897182261400275136213178767501228880167156042199523637776725838243223020358451450295298606297163150368594685676896930269059323528014501046681428734131540832386446855104241711910224872786619416107745560203384413006697221277829961031855881567675322995782299452580569776502869322073103710970584847180130661301964269125450951432704333255393045330975453019328624211158806192165483086994847365178687219172719145745237295244751318155934072746349972465429786795876874366564711999595410887927439881262214394717404580241364400111041459069247498678524728478678688830838146476230631731767205588896608224489209273449906203294059088599541524645767198719626913595576663859313242420183887618473796484723614789003141352489099712203988088099060883930352757842778712232166910754318894411731690570869315612210177884532979517179974959369811635979230790541084741643045772391636969533523664357778958307168772779656951313336352170486623818518722261794886488376817356474548168224872866715391167655185453459408956332891904552023309185935482130183713643022705439625898425208095046556258727777749193434250571803951328574115962440311309947036832003670384260583753416437379513236560246105781721316743879357586346259879656836912244232405372871847095690657370147291774111956333661997128721865274362714564209400876770678288997997708096462413884027146603757599757361593439171872331747898526191921734890218882659881954434408171353343249238298595075710957822997183996303659127691281381333295149860757504584191274192964911423170404753421854240756848342779508540075060716732244869818872296430003480411366557867734448737332934786260583421538152952744210408462973616717873719032574741329508461095425649655930891611527395075406579015507395959684465319188118714477191938196608905180299266309965304985864255728002677997330410084233050798264059014202778229275843963688749910304687197622382257319126432861124609776150202312529530681887819056857668684525249726779887460872456373587420336515579506475890237278687862477176544343744771942677535324184086804937613291598989109019295208185203453000923643354679167549700304355656372858068125368863044450860433358982814989747215403038143380136373400542807118199075059684383312567079231350350025446186762761124738774606817167812344263846384585814736605343186365984407497197354356434310711921121051878188396179771038505216651038398561463876640343987116024795214691726750932064143320989080014157059809363687480379272895802605029744022528048616650238692122066387087131196735405445436462768976700987310647107725217927350058617985338665843926317782140955041866881408807368562101835331743813103837140355946167615368991021930785920664416725975343336768309718598792365835191268055533154842003732736481413459461422422916857820818765238088861591023863215278091837695833662097489196758036733663219325451133394815212007728783136052074771441730753504400153953292887031787351121660133672229004020031114769346319471027928554212582294003783622781766651676361457850219515839989912388550974728295880165973078051534281352905752530021101355929190241271376386588927787788977934539731577134983194662994631503204892258402686698803421765661933388544687029681470597958224756334270656187163564704611028216726493451925982010184862606709899684853317309027504056662238139206261861607627134218862483154599826439193490229276387561372810632272759336431284438015423308019574433169265695914338448707131988532962938387830600549566627581922626885917956403577736625625107260870035212191522126615288942613883105731940955041655958845928904872945599038960206732333316223563433845384096641929597276731937253539837131905370389471539257557943230321264476767454113260537510585245585294549927870974489657899542145521515214642103777179592126416759302135970755000024731629520411306581657360686827615133643662658547699893425208049025411670791837178604201620185246493138077165945493516906950710690157597696818119501254163479778691500878096573972219365211729468589230460236568225615096441845303254754181058599660795311989107669343317153672790015738473893363866818738293779468737917056247234267129045524674588069416530460783359486465290157633685175605548124448841667828608657545181040639947550323425136749894606490896229609076279682550437301864204644597627077468177549786735927378070918965704797106000005747484701966681641414569000998567042709322142135329344823292543493379499154966546349352754518022162477164738776519110360944422324146674132130051599396999779033924497772281559830638317377823298244675914810986908677320032958984520851902539064686849521107551833367090808639447431820142116948200853542735772407362027773851752440100729333052358457549767964130232553014539600244714441716481465209932797327990700569609399976154329763964225210706938771297576106558334658036561368807666175474030496432880909879172695836977532125991531007590117934375355206375454179021056443312524783165619231055303557279324160910737454385821067181768441944798958879940028373296442180830939683831054643615406171787230993310990007588539908564559092922069909200644729447491935260724613588258538254187679633440640639922469465927120261860713539528796414665501443856165405241709238017163138328194131222029599101044845879230331596577925384030040872975380173833331910315788548026929592008418009658197163057015484481091785110781691837523630845152277378180087835171329559651945445734557667762692651974141611633339633236254475872648624790942662873669947938560260456134586071641342030824961075871377396862725156989704769001353560933264648833087486485199428391722081594591787038065863784237585811082254135562701450711104809105271191128466287371454755739688691420056455680700108820797664011987659662330054835099319981184521496291141946185307280028366692968276729035848257798801373081042498337346952982767494555843785537868102655158525474500918130843721725420129289248113136450406755047810896370999443388001477380115582547209724153166225706658766474567176111094257523413967560174665169195232424040604920169601208241384579354600624652175841017446030295297636140270814878545319609910016072505368128106579768447242987771823346667394581998022994089566110023198992879314056573217160812005145685384505002727354040757204065061083827468576629057465016869023979462755878733872964574014094398639261844991382692450085745780684023436442640929387000889284973097269295834874030952234707156431678767510013831326065096607488640879152696123584084779317268955603783590393522372906145150373620216785126054361990937492276913349146585936409747192109529939729115472055049382926132800477894533375368901306231808570519314315942120841069881086203168083028574276589661846487067597446573258831722769709279674846759004808149374767590807900155845913303894164907517463540050957373698475321167870367285345490370367603946658228947164210822920401116714102684237169252964707350737570874201748780485891820065716546878542588470613696058670008757818563079873475782853433435617807499062516304639602088346290417456277396992692863566841533108461186856392150966502392907334962835811025089944460234941614257635677663609287228052766316078742879666622652592623148197466912010663402114013029536174999000047356119090410113962446352957310641579454114745099816122895774152250011987170148568402269470376431498355220329497106824779765063757510927976618356969015778451668878854295244491463594482424110895705552818506184268579486255507708897324140808535566456994124227844283248701980274844336896859366186007085169635763189200552307911519312695487372347383972108540813830850354982541505626204631199870156922803407477921363972230125425553218735177344664583408336556234611159347438605150846921480518057049031849559113910051142706138934166955054984321008520778373663329838468121774223425245012900857005009036955739518779562259990196374804462650943150930354526241522035990116223319379250008491676253308473235700336700331848195184006282873676670493635313672190807211010600896032798587534338115547609043745111743740765601758518823261756315972033363368081386108109853510791257358748410053708538667224188643092409572719605320187212769180000890440897340110309143814683835083348696981890083671698760175209099931673814636052902382347067341954626704275895714244561125716133244876652989651692639837522430723380284928490245835021615212594438856914929605494095833308331154946482439242921691904778107922366408695888321774068396930989472520568575521543121180993107678238236640515640622921766812659753755204925988771523220897314168020990444396819758222947171429697744188671932519036252500319701936327929655444397720829143117226342863374995763732807440805265402622280133398259745974314076243452497089933040697046392123423737679858045279546603812324161486016476645145221567560615148340544026290350527085438338004076573653196536323775845991322589407705106552621472604063460131366312713598758096910729991378255997387275964285678850175183984780247329951653327241587618630528502939179784604347493227321142051159066436783541398175471312934445412092933498540332015185922722513389896412183001019783424175925769470901151352686417699616975482419640919323088565189143387150396335320509592986273363788928382903509711915412262549720533727784481992889427670697514799019092874404225909015104791976217030994639743782918050786835633462498489404354091569519987398857215564741845427349407696777693057095256107834297660380652366962419202336840518924220537422444996738798773702172142585971616413251328354479614201415191999421940927948315718081171382918443642302894767140611528689117122277149825361701124277413877174196020063760059752480079600529432117460962738071736311613036671355280968516704590442471114831183812066676226935391779007849195960761884740087090688790273981204881743277393039125155429119109003773538367989852648290626411897185966178000894245598601252161476408537736491654457626705506585508710090552263257016031437768301292173295829354517166318367354539041482401709118390312363847466448539915931717126475543111605329389518721211345124009950083877987706913455603296497955071441531384144087498807360731394583265803674926103268165919261321233089070377014410113879882632899323610467441927501489484542119014265383642209191618301600743264743451358726926289293822947899677845538150123838157401361657384632047164499307998677009317370296684698110009300415926915685905394354205208163947088709854621738559667011346192017675724297700585232015633174331235547865017249917116389512102490305148497881340220412225837042438809871991811975499325710208380963653310594229395374320262050385380174956876404116509406339359390413156961265070170721791020212206049977843868053928699369324759198184542184461103158801022096684756736522100613122442793681823618589020714042116842040756341562027707928254512651747076499143062539821792752549825722454870943554513143058989784432661798257381104220145268603298191522555231970625792624420407440145593016376316165771449379578401711008459660616624501319404620412690389834024561370631133417986010894803644262645577705601026282896684891653736678563230884347249012914893302561184466814461012314492707888579173646991429385188359431292682036877720655950290749182877993836209433154775538851560053397522495842757507757413797573439896455470807424372480596155348831978929939125242155026945978843323791595649452456880357408053705304375043945527990278015844714509960190774539412832965781182873729392582231009829184452149794124267336740666474246371878039540247219356271381552534057580069937721917135126064093693798888195228550784921589255732533284149222867649852161457243387510290176757254864536877839850458921466641417947175444925840303448448725354117200186169381064371600179318189024502544778503741271055827948603590259168986559036850837611670988580475087762689750470589923728634310923803353961095870371847292301933156136801763431794338880208937108985909121732142081695407640162607000388976335658544814783563802967420173583824698456686692983796022004223552902341799771370357481225867235406285271295223278453314593623064885639239092479204032755763112042954152494193402647907520532642454369632170442245712101717376535195037866991047425177916818506022046960064271127828764140794874949539847939807910603175148149768636573728543283299812144830263308986053736700908578777053055231643395112675181402406334517261381882237799936720854507569666384877694515950526538973933276503079882241618800555197979511837674300924484481262975867646614866571480042382060495767996990584443707146239891084323107715760812084797749620901998525517113749439683385510745286974460200493949166727878079177850079193297149842641806305170301933612603903308804264456808173379563790167750013223937683225491683895486443109513262875676246418463756293251004661487913212045321837695942124818945386152249692704746945543765210965757906505849199765724630078115397528684478697732938577037944023299788451145746548027667995798324315328355207684375562861985049355410346556905591730121634607818318280152331769661365130660109619914746901184434684608103868414818677798744823629705861860479628444470479938851062047028505512453680597140903785746535541093167064893402808951242922627652794597511849727589663722042946142418586913904482089706983177933829645365788063405331320630512701735411822168427641985910043860757886482028629243535362688830899609835244177531208926786309067458765118211658199809748926398134769897426335492518462611500069008262327743312530854142014949469526081486692924770159035534426919749609883633301188373242719596032500807457752520064360944385234628726062848216109177933757247809440295184802020382811831836515774704841666651809496672748925653632069224867600548269424618336635664303310789051545064872518094130869646589768168052002324698072233906593445277893008960431067165352742532550367198851195034213960159727622496356594307545157573627098776742758766611625017327593811124945287823023594963949130843905108162550544895397494460344870094187145424105800838781042546431664394401905821166733298302097683675014949757623049391558033812785308971759476048158440671009917498854100599721760393205968667850135954152428323058438623665730426170196354462336378839789066041523182811117981874178867425659744947102393150308670270610974426043346287130795536515309794116505072431883575697657965597592784615513878466351976575370194251507034333711757008701882317353990555966130202916114197128144300291222041762812754835856696534577583519653118434708546015223194780826001700985401551292977221506429532773691163657018479721246782829955420885598800917546763866829476329296546226542252105388713439412021072663795443976967955225137791153643101338187073583741549488865619570855879735562217720808858184698700294510217846528272878282364772124345916905106494653662211306890217470080606859466376366174603817867862398892034937828416142603610775004898788831762525102142484236379114761465387322977772147651633024211723288934572465827718246749157416653252232364384010546795054040761938220186518376362418208193959441710942344764691388147010358421645996904274527451997480637659357839703341581967132741129059387900721109791074741512896527780368218200453064436418802651220808164334199395233442723703110365857570008768671144449622775284394142150969481241005036219595215160351075467850734251761620022852503944930859195288656975395225552948110666177068942670258631323863987140649929963915681189986398368142017018362700989932081482333723363330775602630990229770547302863448528626951364000815347805303437041503634090941592898161380899181994694274281266416873194084778351530982723020281260700884656939962257393816130884774248461001971616920933319014575059227638186370259833359335685783967048613713884418353177336812213030947507372490064122630980340962152122649648147065572995118340038085898580935376149570920384429323980145933214328377535744337223673581733933699974664493067685792216975809609198690680873744115916955810732256552131281414632571300596563483002026724542171911481756898780507861352441918950559556511443384503120429176225827672117280046675700495730787725574174060257355072462471658714376290113116190011277581010506602703446276476845381486627582342571431836415396820894528854524853283770444050790949384935005206043231872696696030355907743278483785766981142323605464632710543926019957119061103728534309218842995470721197489401472344486260407589590752491803805956825761066319185651644693541057661773206388758405435692549182520395173266679794568898132494931807290944721371075976274345728310570534281121205587655343795986108867506659679511615389797721805398729133449433910599393231669843492573093220978489562826613461340967116381674485223126247040798384143820479450697219429496683900663640362038451470617603973918190055253363948748240079066410936194662320781101783293536248693803841587137448803533529545597142334072581038292317176446391206382066842219978927335104622387617792543004052519721736258968781926960451836121919650100182003461325389717508844331939857787546766872308521968568948823363808732508614418755392977191286492832831118634976028504442638198044735416746670270875281837449721698452949129917544772816651352933313486163624452719310544228271581446848564473569593424690046695433999636933492391331361353202500916127009152624077944885293337759498252887692537241419828384924985889489309503629611152804888645530958208412629961591376871728280409519895001396063462890743021921596960395656530960333849836985385905152692469841703427684288727362283493010551691691923836661176416760261732518939142854132884845581545969061226052881604382136469151789725523161482318564713513747763217977939325564151921216812514214284619050472618127948821397908672938840878020377469113463763075473504796150651611210162932750846905344261667285283464300679659054525503748036686913842812937468713863571088114784216224763755144414200359189454332157797844805048400708983141755004336919828532677872238953120436581288099196049177725736583606680203421196513253047118732859618225085981035974987476981723216056195576654230021169801416694685341116558152738850117832426355845488094380629939786979912127570139416387117363509723986089895663191462786756211661242160936229003731799835668219351679721393235735324960855364473945543873747106958364386342833696155841499428889469210406553028228638831489339208829621001616807784032246769950719448041034004265061239732683781219850141857799360792711062448528621497013440740693265846242917958351814287881108060697005920967184312970835934415683105519042276168024492704437567064483273993265895646644661051412725880203843418397263927400003187046731579004248819205272355897375202312386950583058625281120372178269107545458548951748290167671168063068189050512368991223094571142369967693760838849955688802504866250343917514450316547222121071763113732622241399176603043661840291908904042333139879270422025750846070296399289564567447524938456553925851846660862144574358556609042644489476139490979060735825874250411252555744587860308706969877743449879474470557557176224549186536172675468492292584987612006337868218071967334158870061432139600041416688505483765390208066519626098910931634668371289352860779833821237488583392774789563340447011068775056555147154752193166254818249199263714437485357871110905077868647327523142539114163914535510147311740651991145520598366697105448875336442308292313591480472834111992389291308453237676958531671955415662451182852028615687690638873324041828567287722502905579598134750895086353599505030102039124708177560967845688504287181499407291406576819872598364050949590581806885254020664852970787942333595312363613699705253346474469234547577797740412654509677612108075459636268247743167913265904936814183271912313276216084379090876873916000634075319033454951732737670033129266735315375797654249682507913778501556084273398468919049965159930392623088938746466366045797477160333526188343242183975779906579304934912413084007509055348826656997776949224705865766612120202667050661966931202044508172504370945936355023785052751347925765414794875640540319092655817086119389991851655793539259546293690426228439533559907534793207842500570460499636303784109571987158810988592346323436607605925541008946378211621375562896426129142120694673206762021558488301646137623604220897191314248264009696999954944096545246662395649488972633499288017967094194937971387084713004464184129782924637842510222080743148418209272710385496408396284145125818465556286679061785187630984281881351629178265461748753852475333713808959282478860859992277312989598263074041973994797007361319041978384357744792587816595782460108952618029141525437663157618004235596344161229734216224636447013401025870184602841184509802909014713768899441356530794851599842201226963750711865508082068025176972982551991398189290440035083701667245603595900867750902586901727916378202409613984141159304809999127050280822003159577413908052257027280750494015626690318400963917605864047507281633301562113943718636223925254586421327938953429418426984989363171365945664757244113153209347012631853490369212604543719028884856387870293467316608413021743912891755299479666998604980397917460934686982337410146665099464518747890361099473864259758931944493631189069502746564650299097900580592662605339564506726956530297672875266694056743519195335908462328283865501212685006473760114835757309200496805821609509984578645993521092922934368466292362251546960538923214114543824332297841257981355501343531278596967732953715488051864923608595704422458807713538300818904674705132136991302181836929857801958684925081762098252156347223167469551399291721122627364374413012837891372200306691398481807186132174687920247289615817766898779188120372321557884262744822208158045300109826131041152158337434458770454228073342143565398797957950636910562099272123194910910429140844929222475922935081270563278677443866714396900377848764891877980909659299103388647462639871571107760134333627432785755236638414828145538615874376793617157211217924286956250502816349421413874187842266472895456591154296432004858780781539528204846900303832712257257195731464938663733933671392379885637387764006559971984650008566026612836957566276300098850310879412392305052322328440564913298177931178125997056956624394373059794345693853690766176434180192828414697783184776873649923159021335402003576909446980532856329681894691752799515674424194376811653295398864157994370285380485231270334032082637831008260588224573731822832031813916391777570702235618232761873668745791472673007769329215885722071347822695349348978268568301109172299804522161870256829902646579970463429562255635508547431198513424714853495203543139560320571108670009069433157722953920391895609249170405055878435597058062094825267174120097034725197819104863216477226670762553395917120738632284078207904844224546920473960138523181152383194567646289798360976463603998156724620718779949288634949377263672224288430974021521533842776724880694355775571458194874029431397300207454196769133057624918250487284269428039235841101044066101399367076551785559443201174885813790492048882927468450808834861536359467464132329532962912574087515045454957034467636250820664102629819334368095633751357073289123579913829996098772534532698865092436697366167569773554385914621809601561968541128367152065738708065031318661021772721078054177584671757041249099683412384207830357520207237548591628116451169663666916839485420460161056253389302259497714129258149401639618094767393687693340184784408795147606610707343610220386244437430782448408935990614832744294579000024041460473158208010029469902404092663651546321990602175872371446866133837266415201492074364073806364103866185521170839557021465155523497597907482755706453139212820705786977565884632665767226785343512355049509844317592366469929865054447135503476767121004764392330424377015046437784328784653364029393427085281402773031665753217938276045203826366812575661389504539758016967736479272667766088167434653471983239342737319831628726459477047985728069102117103122476448283232599453857774534665624577672874849947403411419227966460177274733888003280739798492043500823448723403665200277624355757392334828529733431256636051221408506643049332028324752797519998518491046625219405916766440928361458394830990881036552038914342812754417373878011492199779643585298361795095410588681590590720993755316994315637761529600355828151448586779926013701903552024462833520271738156964308820404307287761891310005956319395831910182015715178363970402790352930956216605320680039674208300888299615375086166392460656209374507804807887874090703087282343106166195818586231534764764194932908316920813356149367293307742397583726976541210552851076612764191380913847692608298377305080728877625137422600679555970978202943177791509488462908589700443543215277113028331667710148482730684774911909278709151245651422960036567326302485351117488148130274169015320624451854988427972224406032506011575682531757631040000562524357224839736167020774045610109601575315520070349558220936190295087825994967990999618065862601388841370085849229785381814668130621992747267497779579804745745133818736373475237081897648127384865947214998567303723803024890521481194389236581563156560984545251595214970477118109036913695009693897616693952473304161619052019463926495539740011087442118648965680931792591078244967513791540196224022133701308215555540365142349387353808674776041051496343288713201377977116995383227100102891603850197458619912603614702642497428466100038253789843358596949195944948313430029133086726177650727416653491365470749565609239679214978241840137568951611005434485105646024404151198462425810137560382426809771864910267013770081794030008781690376459847543786241596797542882491834445738092103445810717984234788832647478375999883600853203042428145656517619078300399942719161259050455757412831605207953351464090440789740685203265003094009327996950191952353239925459867451281249776116575749717250611949643990057174323192898375123680979684949706780927575904826933530795243110102862105194157597727730129018080575413378516989486610621417565452421133381890750504358192771792666310847959759234693050391261783172732421741865436438833383285238397402938401403125890766964673440567867498874334770523069430217530741553182306238345094364560979436616186423546799461486184077662065667226145680787297333178862095308830318545008590712151109372043573702470548347531569117315844321293825823185517566883676197940918552450102260833870788469425895241222527188295850124500063195991905774397830259991155992677247299029067198080518058113633576640931879812087311729773560709996635631977810909688605159205992529844620229589515099146326469682187372988021281425561849217974451402746468151244477608994969960218500049263969814570321823777078464167051752494574035031718285182862517601062524112290808497520618407788749136261011144859846600177639642626448462943284410601952559667216539170959736350626886105198083385895698766456991690355815284464464350969867054135644173606577336831694917724117750426476448025494253972205259144095439962210194964110310273437366719721373621798140963107622238293990673974079190169457377840210235643249772350222852176751255582616255108377887708994636427800140252953139422742198582692474838390567575967640607442545337303206224832128740306558719228343534731780399274977712354332857545841452330867098561978538036663280021676955043137533785194881153379540143840043933087727033927948267672326960514536740703234276482363347753105920748912197798173389191698307671249785067910451159242007713902501528874707902435737474951899292674570335478174790604311672407787421836791969722601156771659610892154104713183104948122079894343668431831214322999364262491997560470958993812376121444108242194201621050702524179125586684245504465027818167519531050891582000833721967988635415825614358743286767002799323774986422021396032391588169253293541357763944151156516768654222852986994748346589118119622454769753060080915770343168465015981551167247344769602587467950915598500753231608237729824734249316825170911917308194138581391450897601994395439507718763779234805223023496328944502724021994491260817795507900148776470649567257208166700650455118965734166894324727188401746122075288525011801925287354676950844165652507757381103028373105894328869887375904565570759872983274783258527528517109927746758275418057597841686978444297715631188899884381047636514794911269534467432680043705131769309233740457828769485132742426399287486843894833493333924561859301937341741094112323041009341361775905550778809091482448917626983392482991459720258764139427171683570984156213937361967920628256121273647605524938330207263338491682590433045542284614598328487947695361546343497626898459350435926991115523971973521589240115915976526741679800499791700696515440540710480788717493602415662658392733749718484236957716470091368624331146986208924296763399815509741944835315133768301377680540902521142008016601721370202867109601006393811987664375426515883277272541788557355148080338215624483260397770118753338286297805160555084502482198468532743543521249490170330387970829300696066656211800534438779217964204369331231321713069116040685963043120005597282974858209631944446597886631382636948424043546704008860535146923300516163655236277159029898827365011511571788658792328706598379317256326309217028255163060716577772845410009476197257890406032145097744224382062027905734972763747728885114720613636081363429528318223611415067792795433399993410557991912865861556119066069418780069798639800712623303251915520446508516409650590247497452771817306516144837401674673147971971938210968501285995450359722321887292776309158635069529685731052433300991682724943740946798992078004280957759668296801007928475001921418503299354906584285582850864640818788679838658044083414518013231475573247009791006666335518439831651912921311710445822900519907605883007881906966588598386849140264167271172394223695030921307519768624023652100234753934300450755691358394932008445964689722585208755263170986678179289901386223308027455542579635028216919332429375241237867304230050166184632169091176482822116614518358520005981884198616625121988835963309929290184765342388399515292915604888784533612972640847368416783363578816441038375556405631586384435706420680148005077202594239344339219801572797018144209719725768030435858883276803920841195836053135028010847638331803265490169715620403320714679076376389254771672132196459262956861158350740306915045634467311231992475703019010009761037230224464008150409558101264510694158288156660060087949829147708547527168849054565867269450807203095201250137850111788325600123574379993030689756939810377549467390117593343735019351193995273976016688204183501409254369422242149569215752286456245770973063077661047746781878705666882047920298447960361453967512519784309077975940493074813718291685935742820299354380142351396764612293367872160052613280979121361591598573913040610558682023663582836047956134288333751128352841643184147347564360938496575943170271778803581268896598428502754281540994910423502758558851304229471601851009960497985610399783084911232265998872746735240149725889517530800122774489676773758863845922555331636630053540009326054091682686510006252337722508677119232019484695109701957917973643556681784889261102564133211885590252250836722600336619255772359063977119460500861472122072389354926759276203303863351126842898971117089290917824105672564416052100594315995800542236873673775173503082639769434108168370536560018418010678830929329702547101260202339504797407507793306429021149011275708579442511546225047712468436470097175400540913175401090135560260998432567309568375053514444218360327179349519872113284655671349937606594929880920959005510827328861084611364435998640269532042191287916464753626339575601227376832243361176936319969012399126578828156751620182453275873098477151553446286279831586019923292330280015108932301387283728484155349257475353932397400181504706418167679122556136984004520548294386404670739498764508362860956996868851454358167552722219481201005782326236662048989980082324735864484521768202383861761292137505076117593791094093687284333111758541566065764372034498114530544159167343522938470326584409669933209477746447550187405982692497250609076749118372916333515462358495641388876894199404277720218210231377847529648359143119521803459588824668644387989125945143807899576271246908269327489772240964226129235494959296608593914584922137482022964411505673244648313124987246807032394081259018472556741949674562239058945643933521392983149053447191277510752804002334411752466212980923615717466019070186929971028672344451821102933312659982025708877897022457286032575019757673198591157598218565128794254993694407295238865273578134517084621021209848166728283986141555296689636065492628019376326667077376671405186358317803153936435804861777296274100191670488084141541408510174165324253608032218502900602691488762818632380020542098719384126610094425433837818448776759922689651386826809591566195270250829805461304111570271729276249094381712665596488270828561846677075527523979975279868723806108944013457166565507693823041369282375559193582128958354552324649397458896351594451255172957090123443100766828373089628099617670714872593594476774303749539114776347010952731990715241289293023605342877969080716332549102862538097684535160345403428127496268107118436665598280652887381966402108714762329286978814481453721863462259458593338662130017879960743695172043389825704551861603238767468205782737205913084671019619038130343405704561653896771446511219535878994666390558219657868282121862046364686977536648670263121641117937194330049305802531410386526976085644392776397517759254046845890164172353706295193426363211974405760141808077034220136422390810887472234212377268759890815805312496018631521224459391156064124064344227708680251663687950327666643878418798957646722709965149449874426245850828563712741600328813023190028365746069014319866910870520891328527285652545617348059029868112561409244660604690781017349375443415268833432505942581264421005072735289493015730260740063873647309706618354661944885634481308461056008463222164179350660663026465818097821779376296976820378138381703113668304000539303179235285881114263791613416182948769647461061424940922582878635350520985530656013712824244856606442054521139463709645587064307945793829830372953722855597061647111115930442236871765681440612680736655009335290658205239534368642245349783576529094036527556077777165151652332588334113571702491961775666745646968933328781932390455176675186264885565416456362059082152941263781043117851088651447954481475840931465883739236684062912293768380040944299191791651617244373923643327936415234699142299148125562347273165199982842502821907992961747789510261826688729375871998021909148703192911124291485165672930701136953963645880547414953133120431340841231663076248643483826595675327379424697160696628587272458964221020804058955989120404332061553809107723640653644738438097238888217539413759121958717788632549224929667398125510046704869455136127002285680475220662798904948261384438699942007891528521465503308724586858366443834181883550413791372876440065541872075845930997997504369916437710252147330327667530134408329846812970026634008038134502919269274486134111207688761850896384894286526634088726704048121160301816117298206567416651961223271079082840495355928565587583064611512722920976134767840980874771997980219428146413971075204919993626909354878987688568456769808173704987559394531022401712395245561990146192465292879143915193759340847983498609743324029293823903925026756264351866649821882464897670496966027342899176968136530022674628158270119913876052428494630320741039505772190359748391172699720599821464414596266937266871585650674672438774635204915319082900901558510055356747190365381572086775190320112276003903314994542687646903655548229390371078692988912957276882746423305502830254176571133946648126423701457502393421336140214943067396598234141872493261536134849209034966143861486006271972440180192392111985719415298690375849179929534229485062136602986121743871142589246073508738263997055824511366436635825639007473295639794462525135920702991416342526858704796450344947743942923882670919390526693263899593182985908083718925644046079950709796637657321578244157620797373828496286844634697399504734696846251737313005542868494046796232162998992420018346756827685036442466447124846398730925903873234218409721349741126060809031524138980776391930769332801572043624342188656603643058680331336005565703486425535695260872770566036136511206964102282950159720985927408896722217595588584810579792431934128290294256830629075075133181882474976269623033721668858222131548416009842707144991249784888132365496470869080871465997853136201118358862449818246246627247565389267091656882244136149245587027771614264987300782963990223359119347463023242165975875625433940267510747370750315863870854196591956805458114201381703227796715755785737799171390773707272590441506613209204584849799125075666909361224935023761478367054151548203431155037850215708577173778644335698304623131488803724276081153686037108492732664910345959203237848630258932811030162893870513773108131710114219866152974733293153629958105763087904143721564020819465082084231900132021923570741241574260193857707883647767140397545728666089450867636626301923909690612275962097265141206862465796323340200446960725337892223208227658036261515058318569294110193231855799758946945774574990355045371220181391073297431086336977099703811908208357946050307323416175599255760504299497606114362344766008122254567858617595189567902764019778243770573451215084478635943119011391337596646210528442461105955676649782936888781642493786299557115345159675138623476820969523173772771671102265019235729346922758716541535045334497781296681018486785796158107958857980762817068996585742326869649588769321608720940008353108942107994878210530066721984382141640031271524821250660557358518477780306482227130488162731226425452407385518673185638560758975081435845426750485691371949322991788635052979698701474823966359096157948056924545384860410558786484501579834080924977098199094136569663107677589975289954492506575468261424997643017230285070633281321281241835238384515781235595171358345336637774691599076643084018631305000922113959551772825053033810676517967580016875889155520143913512782911576042991030039557566088855736499791194894651536935185807686050457565185094223841437428281959250467419965549700428533009872160855023213133216054959939826965467176118371885355814415925914528305915038634173575273352873726107507779354308470389914624274980190834891618503867599257633644141774715395568598633836643668497226181265234772669984100758257593587743250137712075698724194608625754905176444749580430078778887644644660742812302672342234982410842772325771884383740067958891859328460209505815419678274155678547476031594111621699372238613675071347192296670775000667781663497810369461264525432865296508477681780818616446714782263029189058737051855098417463405812431596818983125153376961972817498805279399517877426200473790359317244344413993028897351971226493763081338089424857543449467644741453136902901881518491653218742280163546776696275705689106467176293385700825690718878594474948363401320415714957347224506844506376356090729407743546546266357554056597790029344485907654176147737002543251929871975663316014558370708734954794270204547739305352469640736175678071846513072523081202466916914791629019379605422368735187309416281117478246417414364096383184999776093701232316871256905832851299786344177653825405410180731703893070371926794313254447201577004862297684549621168648284353504868276529007728797796192300065829719950206725166071460327945034335655429672988099951093143636999885699305483462995974196609640136549802135138578610996359600492527147173648094739899937420194343026496986136790953901732833867565712726553629024091477576805756172718882945038109488714787108127390766670954212699074719680925889966818728508085512204792457055916905343126836348241030446090301193051170651946146297850548147711575658764726278180963807273092327315930353635042307468932214321042300236668989156609955024846021104694207856256441661136383961666961467667404361224097017267518384305573348468433229409728126284870818398238534416990739774253191196511339816240766641811577841985557496032838936320378737156521083745034220663600877387167896863240214095755437233065964657770120528187476581575467697293088454240722627218425601476397553751054584929264544551519859031743178067526259633977899217463617284652953324390517205801028447329528217198153988120522091363640079704571090422014858429160935496593029492138706765973479105343484969333738282671883700470859322120306562645177144069005559418664243700014161948682003138061153574667612901147288915556219453488659613673293961733728092784890094761469422669875942142209907793756701657165334310061086696345583713563585458187209038417323139800507166892528016400522527399149060757398947021880235706330391563063795066910483680732067427698945698553169667767442000472518837330845908093541254030808984863194913550015993856521653776776569249304849769740084137551128487061278233747540769535312247060545137687055157566610662721224429769687775493008658647549846254688528349870519962713353823578541294712184883532966494195660789065715147437297832039607156297649435303148006230494724911297424416265866376871538760961849983448191884129408135903671598097661457270688057025400362515036514141803328095270519373873776162407750430604655878852840747592571340750540804539308112492334103932548476901086652256568605982836236378178676482429794401954897608816468380706656482702226970756424127435897472534630237690651335043626695781781975153471167484836195418748788406174563246132970475759040083302535122526541361258309732223813425281557413969389661560856293854341822507644782003114402886029987029520526130808459638145049518295452093251428976023893474150643520742078009253628315515475867384254525236341063361792366710386276146106932045971492019756039460497231406440284312394389938026603261663509588185376334127938096099053535902947322014865520317873970638488165587516346545798003599688592906892229203512619865725488476274602787046733460710235988295896722255993862851213711358861213704397684609547334431937281397669629790190422072631014243389849403209371882654251022987284291254195478368444201515892795953098624323741333636916087944806141211035395886267587275032328093874580221845560332880930711768443561140213832511390263022262672308519459723981548178870995474687976003866287061829625077348423877929319341858903533661903332933251004103535578585090644524511630335619841240916000468988088192232264920978708298201506958673398509063994631098888293933872152881815091528655016116658455284933245548613329521454906001826530853362698491882244379743289527222471928071594607097344869257747371383094175947860390294426109200558602661562199150523023602639545011770714347672750929722542419312826197674299181593068428884929007326962098502326437556036765606001634228412618091927882254368719730467915250609090354651931176042199252337383342258040441408796784340349941102020618564425290580891280096217093452426992229516561056934645884526722284924778893260580262960694741972921413784633730097566516229663333276380129359957998332252033376942048688323040357082956946324853018231429107368392493361055936535918904337263117229698929927162841116114607760027018761046399667853876070308583186544819272276841215955813693295610548161295293867637196213330766797062333630164973890808023874336029083128057301917760694093542404690869617599171487213389453831150779586929120706855603334993883711846168737714840294424605552046460629771327302682320598425315356555116621590147789520576347825426553010804191825687800956092828129228189743874589345504653765343199330137629591973170972470907497556253906693006120695879767239291776284246103260665821258913224933008507699558870578585383494420051041194479640386815505661018907041016388565580051114097471784084451096734410544337173680104232444625366852727282177170422155947029274969566488799147132055393884471514842555865259264591206615026044334209172100209412591556544200678831937670150095554890822724904384899621176360015978616039608179447135783911667565731829134137353010571062442774128972209965969141653317643363612474180740235047399853707905478378064221114257338991000170419563906264421053113023353155558184454548382684518615655483714098958981593380287913471735177042460189029802631963516097536113904265145169352977792506012888412810163192820416740358790569983473876587473196044640909925936690099142174122302640174189044161779225424930018843144856929836476231441577705352658204956299981353735698268784687450320159940392729494987614399066576801848227312526693281069531097139624743575784947185410228287684792054782642676486627684915321204457648529469698261136632817846211154722315940036422334341074411187701218103587487531113710053694724592254374119657493624090619380063417779093487548669092445155133349729781825000634484495088328683340249357451370402044997223586108972178355994205390558005152527331764785825601231679718985454452927526824673431991190247608455277838164768894835037166356531255791015182993567609474930085713654214638769086154112297403751803868570894386133468113854427347292773549820192364310205059572213814828824460739348915382090424848424873084816327313398606649318757992966777245148485178480968170770899600857157419544326604288328174882310496970831308173644688837446599150036383538502576876342360573412852327022682535710512448705431914157882875825308223997175325655505115740561867773084418566219410438855832858653216268316073128180347937145034076634991602510259224898579629996730349081899995115815776214286035523131005681590102874152027225908459882759401097622862648892689106353097244476352385920988292058318603068893156192139631650455605750078923864760912952834722800077284537737500536214890913744225867186549405211748667918846358974884426388731488127494555639329294042507258872533940009449535094469143478685382963059820979326794496791757685033767157006161896626777330518869467155343332078816551657962604528337954391483973335431711295617146190927605261506748761573785596607797531935011981576511737360456902706052176147689628739800098156662337087507511982689171050830960292189315371927467046619452805940484026461298080723477876224034255048476267690743092408238268812778012910720184604141689241223406126057077781626589164123674428240742282964457319724753978560293171255335058386490126663651800999064695476661249595520169348339388897760108631584761230241626347182108396627521551040868422211987658855866570096366922220842655449962801307105618959044269052037601571326593039923767045922672925781368006803870985856412608070777446099170311285424089190866209975955311553447387576723779258257866823311537816316116802336380694823965743003293141701414842460072541061143224981010157440266544113521045763510966800511559666616579858742138964682395641110473183245350773011203475660289753153627160919862131682229576234413387267139128312031062238178936601641670618813935290863801324555906318836164533306605742166809531920338478180051183372875579005975358749916015051420304123235264628909140664463288575208935271497194330332106032602459186151331676262808117351605889345297521869638936264603474836367106591757091740976943370068336600306886676998079580011796326411056991714837866412685505747559709884559392938670079768900785715229787939870718817596785386366262104882353776296368228779182245946047282419770029909148479873300388877427985108757657766959251976336439964182895047734110857844911138678243740105719059313235970059536243976945939394754738318058932425550006557433237685363031060756744480191240178540547994535259599215692872871941484250182383511955628901956224870038089701538538812881019702266945196359937280424236218253273237980631691495870579826817410250144090405838786468149418815601459547565137856707879329893994815752336387758122498759193598742015210778357764255431484324854714714175568013793502987056416728036378514469632728931638402828045558695082031362656480075113026624067496828396184002907522306135346916672494587680983382107354748492448145295458860467976612635496352292727808894226939676045607262735407958000471110381217570797508892442981540621611872637496229177723509121905515294358046666085955148852543036902231928375383452099586969818754900606771407803046140987835328207767717191550011511681467659630453168639547292179387069787770403129185323890550819525164524973889712362642781546509000585707353326501371455559039357785158625455165126787151066664663866196564805514093485431206495385360854858847471276218300392038361590050338970481024133665875485994317197504405276194994969106362838069155716511685268121547221661396100030395336125329106651427320303949343495586449659908519865404225483288339709012223301796648853198878654615404942863176737298871686675559457608662581113912459361121745206627271350488389359028545482276067110859055300302116014523527119644700231178565899410772831055319579234534717010857917627383922415662997162991612150546572067631766168708972106957052226189906920666532022920889770509818287166030134701258952158063094862979249992108199166502991387292102375403494941173467883952059790244266542739555810523132738601642962194942907109406152839525835222248454254403513633920774484892796975167099915190126434126207690436869367927763074931132747283320437629881068843970220353800648984572236434289735016652322020404968312667479711037476684761799127133716036424558488065103423741970063452753716567688116717811172648231736342182405325667837027377369675796122540210965478278372098480691289715634276142029075133633144471143215033292807189622403398058800015919927236435449440484264012773163192599938140504503840724013176982877953305964250898409638939476702951385264004011922886962211375917653311064774493569242607646571936003784730452148377849999212552607853437410572449254629221438345207802073540324732614029010489722532360738726831863652796887912456513695064984406608898266150198736008149396808667638296461784740422700505731301243153320267961192081427738843820874288604057196312603027899613344536342881041563690101684959603488606707676239499214151988379717316409044477793880238628591208114843057172176571451073745467009043277849738705484623061153197992764150981811930957489758164865343245774566963512795168481728059393738580880282750910903181958562230102693609390998446134234805647621174819408636400773576315961906638432888991376801752333610268730890790390742607032091724318020591983611485064761371281741546140745051569868151941723995484621003870968016557768233947055374181481088184382241500042495167019134273628657552545438412096763202768306327634133196534409695638099593810291217676587813514448344588854769260717868500730841430761809299126929449614727149176228005358761363499421575701967125944328268944798361753133481867217135802915315631677398623765440634353719467668349704157659984084617661074677440559444259250228832549945193116756485402402690993216726114566499892493123126673543710215051047207308113337845254262258887713613682391055237395559382532429608569294429806463358063946275869982917910461747248532771968030448319832045649472798317623344608104284868890821474767432758705034848332179012039115564853661835796426708890772895682111721721548967027089016677818325876612087196195887253779399997652809434099950845351623352394133357156213275205580659573015723537832421874272254697213098676368147189498663806413026528968898048551683267316831891773820574134387702030694418355724259525268160190438295192804588524849690595582965174509819631648021167258484443990250180784564079775105562196017959335442877587939722035144796779689983866427577731565203602411247869781667228679653234174880994760649239841339290061151419508262083221773039330500063934428304733326144583991777849789545096785347520939622877593440057979086822501957827483052821834840735617615575644947590267847476915954506878394638795679297372150037814143315719266593174142218152255757935805456732422671501396539719931949993786311421450489351028952223311469454378565054032170978731751861323164830587256467339132470301821226635463786962241343691742040708379650587157139666702697116127261243714863659521737650058306850228846922692366832878695420010405397523343937027985098087963503715219527563449607910619901120569744826374490268185541465139711363068688759229533173434012220210980112272342177176566116813192537918199463836563974247441652417377033932767827708004557842739948344326673272039984466828213763184863918244554118749436113706245850931004470532846434819194566172429598432798540704663903213332161456274210784037116220469374950413930719130037385596407637465976063153260461884077452634692346810140185098859166299439984016120168700536957742758105457011456178525080611109525989520808032197114291355402889416589304053420753919962712661693459067363158622873135322178784623624434994890583936671721645286909200009375899170369156469677981600689923769017552915184801011336883776915704904917946304357928857600674576356003981921375269392773475813398451829685854021054053265695625613278264697286783905881277965394417350957013801875354169695495096334084355114405321094697205644256496431326782363363218846156648745429894883332867522727441276393075012091743082641650623556139980032220092881176889751785148702849867601003030777627589889989848488964187219057126866041290146070363393798522182173943649006646535559835806696206019223809976081422440881559274159492933066926010584456096852356642586897429198585347404553710379975433467995648668875739480989758875262006016812685131203107183720980637889949941301436697364732394023482010167124989603682910946672343663772582674767036650124524860898718846630002710828615275569413906189079033726063924286260761191551579224435424198097806303469648543241870122067176327352184888565284719296442831996163523338772319910900021529710985294940538387619525123588556019405074680686429241741744655774312220976294534245177445462126596692440991765865585899107962369414170896653890319900990425898764423381627256783019636241730632165364370833131561318864123344296644428450869929233743826998450257382079406280547903866744637404773052073968768798259755964826219694165695527118212845364990324715185150304458032702036287954473437350101764883505211576993927649363862660468243620226514825684345334099607144369337744172998782504847311172898240012604891185270623976830142476371934769570051355328505104079526692015512069200420439737270416236715499674696530667817076752978464487603170989079364035749791222887138556339172640044325881411340198637888404196047815029866430302833647473626938738734369637339507995599179374100173091121712702224649898581247167914534514488173750138762928993273080206881810265880433153324418657684823353754730208182394345530270340715959260590900844177427949084480374795893572857768350012230051777933839909603061418231755514247162843178622187263037139702705712939541993324809382822195657469666252354822902311749759279179037627198374100700986908799951747598980325332593120410321216597754214289877384308069503179226182788945240449398348672617865059288037914657689316477946452627447076099582397400015423879566906650237122046626703891106007106748285062830041139870356712914714404423455748002224302355717275548600835614504247320270127664732964717883090984039141265231379820007441885989714024109778815845753953778740231337073150410613928269607452766429661335282051423535029739041009808283048493547910476136306856426068085992694002527206114861239750596340662959520742818398246583892070577996560564031077779135229135517794017784714214039916612130194652768311157418028383156902139985367148286193445284583847972922027400922708905345019918784743334353028004328906618983974862286935444787837812332384078055075746551476724395763081499074412734799841323791885900208385280828626383126598788151062293052126498443284981847764572192263298444700226883064548564239922656980672556085584292174550598413732574639611606092371702542981847864043955101834580527531781303788459710564433888451149926631616298182492572795002600738532387815898314403831793323289509778469739893447497845087971205327034161974432533241565241846749634580061791436456740243713079491010185256869004958102504064803781809863635872853763864387547229508460757661834486990789874566658765416530240885743296558999970876651852809989170927353246628747618943910874345591193355911712524819191039475076343551179710698130311940422114976391117689537296031562445226769049979741604336533098592883439062642376231275217972909953746645421167664153002040329269884543463566932243224243551959218555877315196774800498138312635100881047583610418749347635886991934765769061742838962443086285430731157473022477051858765400163550219898287591419763913190897184069840850546782820276754509903221123362517124928294064427165979326908731873668340943211079567426710728825310830596352319240065876571005951732949527489718582881414882994428166127316048351024927306221225652024539570673514039730840676082051484269638839712728880833446371721130579042663747806638658972784711745171994828547097738709543371923800603872937658959597770393055767650423452974932856666668267415444195378791832762802380802765311801151569690671350905854938803019748776650961435035979828048919246549788791868991470811758720108707845143027901025759827052006935737507125874917503118935980841406838349382537312691888807273481843638683063974449010901749468801168395372894754695054250171459372489174377157470662978560324351802027108009312867958464915880395478432038046299800123556752320165119943632100609576690231900819006271828514845111120302426393774210439358291523578854813240837523972205123967357820980094266116909303471642902532611797856411648874326510286666874736588144671894711144908072136002649603734660229013151548403321778386190706632058113063136134893241737091915597112380773983393046508897392183763417383556407921593440427549816379627809295300789296089777701006551925260769494698938242017770993498374254501652903973863350700622644802705196179408131702116941898810108262119248970896991556012166410262565088660669107043707601400983281672199155624512760314021463751787063610872710047620364275563090526088244454422482278659239777068358634342372880963449297772203026168434405934620060465499737947916735130436559100178479698423965540224941959380710458051800984099956188216515767370474222898963254891354481500613430879642454016865700367657132700990051615466915632129348752933605847609316719854799089213347512266255361166208264267142110340975718413150421129947689229183891930070012499431503052945433594629662822348361082343062128220671773854489327529168825329182161771556013561607426235668504350036433551457189267825847269471503571496866453497747794316708898113489944240245063289488599516645764379202851988224489640617537831808566595846666996623953504735725381037447764144529270538421200552241279614921831913249923647168273812271116911191014309970290961389328093092683447400956742078745151360899172497211101973884870392867902093008101755175626301932516368553902295651026961596865589571409855056660858332517217321115233282058210980482023379163851279338662731001072851874300642714902509017264768565370791369438489176209213974503319230228116353247042884015471830802242617891180006049188253965290508046675293530377631740334525754593972014527366915229071936202476932208054759099613710733625769293368054661587943357676780159296642662211010588634525922628537446184108230454236118313657723775900259871875355883990009070836366873680489436264854404435023808954047739011932128498162482995602836809089969799419025696792547369666125905078383723892709148478196848075841082332669296231366367229837635024934104091553855193820025143807766426296099616539245255993982944625125475977886800052211171520841002573504850985354083627714482311447212367462158741709781896863056354508751972664230324947672284031305714288744436276621767539854174213872852024682034364792064544641321629487735960264831582811960707206905616886095598385121467298340845969206052505493204316702624776177325377299568647905236089691045478181272414149711852471702390890385634459264487936342468903468327421402149990604674752116649614892365113489051572206115300239272249622141334900681535379062132130632169691604132954693965281436295802471425793492046746745094339507955475831815706974488870799232233968663418092211248876012524417330948265342101454112790489095553380832969517320588224671912363655030858908304737423726396681626402252865492672585130611158316688816606235577615902730051060412305084458284044190451092483905665761233311591985129172379280890783933877649551943068623978511343215864275694707039236313873102656729576710920742907120230595675080994529991415505047655548055451441552980201686047571870919707229187768492323126988821531283254360059291740499580958074732811678870327209724946532992679398838227764756513346108999611278200076563806273202051147633552741996888639560184493165385918326980383391184765994538975731328942038946005646492526268373890918250767606856863492073936686486187726913538274343150367313053393319362557233308824763749331087489805626133684511181061965612540832307096712579283173087926632020957542636805177830260485469341273237014218863980271509033814195151052083309678216028328576191829060078304427387355512569806315200974337671386056055945240335534247191581489439376118860754063839292367783920519606248192888959653729570648429747111878912384590591894642815519032648831640070343186670473495234069496036792458998283583823843234135416274765961412146003938968734729792534702410835264686641306011525510717575474110147935835425622457026071304885820264745808279423979084060066294540915669299567229777978919013312160648106185820281070230937263834380100508114103787201983690612963881065399404271278650290063549358336766291285071010314744066518448785930340163062529025648426727758460152982320315880543859422428231519935117705502471039220871093326802743382724583269957178577774311802313384593816233833835783775258206070934035731412198970670192209537581881057541818762392895187903403442843897979788827915149864408131976718227258816111087192724416312025208267608241263259169160273496515046040102656923566776177998332630156078856511090045899011671866964501398901027562371848801048765725265932012477976024091397589874859744957163862583967453622807613699690329321644424591511064565592418788213403299263842813078610326922135066183303909233365531008106679809481936065733746970550025222992150580310627205104536512458383162440403887860836229035807089062397366474138075918742040906537599641770062045378488327972131430734009667017871817033249119403294974944979782565663703920266238441101305105562596336687075878456391218608130749035118594625680986078592919892891064563365017901789372657380835888208334905254705388366556663499313897434954788171090673712588473738733981899094097921941441827327840763131171377411200119113973878408007608162348020193893452539625345569537032421155418852872885105814779272800375591636732181443059699659931444812606437632477193477484229550261055525770350502490739144796219375103862779891586321725060396804633255184616838368361520998891546213030335899852323649744786523296813039423876506742868045714824410668192748635600479550667780045960840401789940602257064798631893746144546830605317760566049463929408498873312879318801139045204442254256750893319926980326344658555391466809686227725680959271727908810923249884694496972166828987085568584261565605218009641880721203007068370443637942796986744926210040482717086768937656821945962498551564191972592021314984304266651472747420385575482501720722752945290740916341325561514535833569753988358591404388451034732928976704422990853476350333823182941217123580957709341962797579182056579793094716783767876289071251639396421817285120245707941927762750554455484506435920005050510838898194288690865763876967614110461214398877953460635618675963970054172800472381385435798511518904814339609678600994833753837170546846831779366451122552704762548968984074987855898183721284038927242992522292040291969759788597205053528093806684664200361107883310615689521770002512344218026140646671613212214563481980083577836372933453248811963819205904707047946651963941230172410582595141346451850416361945522774185263398019317858457710209325415386853808516995951333252395813257891130057824678360754253167991150839392868995768667568419746136227025376229736421089923871347945302325687465568798250072077402391942247538738786777099276682645423241917561950650548606035544322545224818364504456554840902860378256575134123901094046388050796635991079518104501341491219811374655255611356004480045626025072021664882201081861902461629367799579091179843197925942270865186509291846696568789593197033714015558766677096193687505512482515724167529354173519146830801182992823735275543832412528997043012333767938184473475266311790862484222723293551677229670390585036289253847173252883191080192550869936874972427712930298794592444966380791097979122865040707960464917919447460612584825357152298807058340079337475883916787679248299191637589576895709631220029706984623983200660220185655771528271840346702994635551079357532874486861521527396058804734606707662697481473880224565480282976575882059120993041190387982973852536830638798919731123125117052408279535423655954481556991818820878470678075921538072294465729190188265442428892526967375791027710480729747070224376044117603324713505142547960714996588304946537591848756019896088411400899875951362970638522166014130790257499262652124102142319761877288698288272599356273049166739872085722066720175633306815396885647098905542889910530023079958673178463896934835858951316922102842666571415033608116707514702568115778883821811321120510009288610022187344710628832563151408635590697662413563279059590018384561183627412088855955176883373850007266075982975162977501199101187290088749061340888878033312935795860906619687300411156673008846637510034188849376868910602997355561047549215188377764299214569396858813637598724176301511783991767133721109545375957447458586887265599687874484476811168420779978427702656507493771381823456299209230692595795488126219365594413675462303344253661820736926504954536529701173398338696651330480220044475963226647602829040524139930777116948436734867029115463164694832858426080987631540510581475505698879402400828891258440304163146555273732019841776070414696695610033079815233498988741584537764737089525956299845925085915795073934489889889878605192725116543700302194392033350558481306853592005762181288697203510173895391756172309268410284801248064215961964481921871351490314393653321189787504314693890098172138077499779417579019777413383190665827583606264121177954573379023187713458368305743343631705645208997831099327126230787998100866978322336284468547551553569859694140928744515526052509885729338263727367231529200022193572870841709269134901000108106486096101888176322748220360126953801877777052727223059731622837568826530519260303076853559715948597893158722710428105242571010237894069410593175729670260200070220952574757200106573159292479502897963350648567612515872912857483266329252042849753997776824252735776219814624423638034329315421076564955501819052732767110156239522562337788968218241341202381885037127935241338689166256586380587972811719222090530727210020852352507191376723403620063613688066350955178320167526672055972406515014874973635636650711623480671982496025499790367928449873546925637316439937286044122831340585261618805170871117174295775001656210684289494497983848096276633245610099993257191223126950242618740390690207732789708194401832408081147603334663312618158237195593350262476219790717704939742995861390218853715032619042057752411374820001819464892441718428008384301085827795839564496719668504486940999725551205470510489087212755133866855809986291889114326083944212273359836669614506965796687233829624350002556898073305028857123696348054254694134468831123528450247029995498804475913275518136490713722673079304610313860001208892240087998247543705485264366432983342724363428866165908306168406603044036244241726670832828147975701323969111012594852161380360837892866991273471076114293427499376009455162142804650339649399226418020716179677765310210376954195509239010593728555810479052339336311060967865942012735148905256800651659141503929492615412854953028424737486024528808721400493090295869501849887520518290066693157914268795332087278498459458974135468356364192044557430715210596215586247468454530722727549591477502973977397391245209803683144817897127975097138305182339696141219157313716522814185628320699287694274027061869676611523917841678011390124602505148317226589646226374071665560412035793223620972662907540309539665795676995563839090224914617096450145055937128320519118227620433855407900206578306373293819135241516423770714720948089894798839634896400993092158778587837583309039483095138789171476678646279309659139184910680429795865625657700689292855804909728817971683973369292660292361926423947500451428679727337066621580126042658113645527628960403296711803523438347128240321430051194987716885286123299303453279837184631010831842855163568327740388026393716823908510351001891228073339308919861353056063459514115033616309284147676859429701660654392042583648792306251745331921307184595491422965374260592023938179692327817143191910666629641638501640695173125574677253751260745867519590758560371417064967065542101430631703879107872705177968937522301171130939475929329283430156979884360844606537244891188891923348763293603103009529773716795174153233059663986272438738904337601630779975560753842247057955333828638238849942241505498254986450213467712149446354622731284166501650118201821871141171429544691096244989979705415002407712021050233816196214235476326937848162802872384014606289224147792128723612987680152813195794712045614354596479803554068255401531294383776328348555442456353721781186013052584276242443171829987195531870139260228111234668731753350655169645790609117993710420421559138090143080983509339316754185247204842830901261233538591058450780440139303087133949292739563180090440993419218326759686973405754634797651404781836813115920795774917919531342778918285939409773788160243916343354006727831131376423520766285953781030850934133833050509095103464549711845426806870504587477379271007470374431890361568233812259987721213496911636571778937917349146450925141410488938297905600562586402917487565055635781438464412851033242172980456260981429248319986341852199522179725939970812240667360796461498316636151848645881387736686705446960636260864777869996245469211056737175729353419990521576244354878460770486661495092715626615139228695827953219715975826023956965991172545626838885708238879927981131984433615404214728082492941711970768721243799633987599890813353657672435442824758621803219662943581108956376863271829870715125853534360636449177802337660133397352913252506206549029557531456179794681397968470960970989310289344098978053429277975348119111967298441014513344098824838495087030154992673489256586863050911899204353220056541730637686248731983831251861810997182543326794639050582569201020020135934368774126017896109453188205835823544504610585566018564171165323292949402496767281434315657409043300395198373436197553131670225970076952106902125705515464631410502521508630042588284958377649974871888483985244989471512793413350158480872105475304254580330684132041154226575052072223373503352949552339594405547890339207434075801650334699112217949922608078574575386966660387097874635605935039234077178579464989962780829445958190249248485853603509773033138575750814904373968380904201533207235178547418096060978933711449518957957841127611259767606372848281662442820921859406610602686819027529122883016430401530455307257248423344473027004960120536289973160357216045576449607840088361614624987785413864399953936930401366202497533840212394268339404797149937147162812604166219425459441160999131418733085053585927688436828112321822172342372201288192462957753876315381279275621165322243064241606721270438129802537556216970012742885283073053279285080537286392605283927291604064878723134500968843093459629472130548309865059441372181677099522037191289302259075127288401896170826004633264774592677934864737693878062632708837903283598976391748887631446919501333229178736839922610796163763989687230490518012551990092214718957119344560749863132706175787081094995662707367020089893423926082392479577126562787769721982346963668701482391652370294584123279762141680426355406580721273353436692256167497468273805559987812590144566733356177509875875056639718514644644498042998835679164170927040436870872440226915397418404330806491706124096716694661051426249931844884161520725574358795645073359576289594725269340898652165805406583713466301454768944586589519494642599567737687431504786475614846780063657579234612161050528604647352495705338015071860832451870798966575363235694079786770702585707198267186549253467683730206753030533218653523117213021193917691907568388858933239402150726824877085236102861133847283400001043620021248514369155126741221051535243175239288808857300082465500431777132263038856824262544687919483381123124866570182586113358925479402225355848268873375183410538499754285278403620169293644936604927036054327872149293323068514501550630415218691485003500336123184897278532417143506368347694956160811746571903381743391766074975791270619709299513534284951241527743363412906493389486610947451785100334652986516323020826797789857295643086361588786328912562525217402413256657923881243466584598689020006570958535458908957031871801573978475614561763121536389328687005243234672491505679706184774047606472623902343063596638493902133685607426155460789781289417333138580714003635886001499250540258130187322802050608484583733027683717960648226335254499507702086236184733439566148322908130957520533749446016604710699204964151439520634328364194088583067131778004625929014201007019143343766177395060158492804804817316835570663124421215956050597894087340449498075906147480839834406999903833689118574849337625456162279608415143888842813516643244919757449556793870564997053798719590426181413882590447003907564643560423356168589283713013689777748514622670504348804414966749233651430741759292287952569413802365635783523956371606804158413110630831856077638936950946096078336532831399589124160461521539654779317922391600184950059247863526742198887769184373126430236853655808536735771975538696036045835338837054560988507234747405432253169166247208809675027041901136688866180085975302913804280321250151464528698222655342923139412754106312242772423920826810741985754789218662680207035789427489453026111827755771859248060638626316282476409954686801785262688987991097219341939251834193246557424569502090241718606543801683864726027148503431467508971245095896985502543111043251686620954018865044758864298236014324885334818701720444449646898550491800859283352151568976216763102390263687065263623216770840921674285249462218536433899204766524551242638551731232741800125409065714661906224701126615792466132963859526095551868539330722031464323261015555536761781586745923276506181119453236055481464981325282070463371229862294622010417475999532771060970522661517747074908458653914964855378064180422549818890595843799696999947900785148192390206786347349786517023310633628570025874835260258037085336686325410664562813113548052590941070012925387788161183482866594761985602539099647847960667667105059801593521070166791205384384210560236952769822487762230819987706700058383443467928100716799086352780681302971323531403816935145032379118315316686928148997401425946446040461644400268714608113189887115558017702600583002188595015866917459286586308308266026935050978078700228917933940084735678389866531323899245602470294395655610734865403557747238979320397183828147757917119159950582860533319339640012812349133858295749699711798390807525932449635098950221737020137158986148359895729178737316308827837256621838386105785522016026259350801129204866880272106506656047238070076280411209579761802618413568041889718400722185917777687801571114460398704829278952997088259651097714484892428779086571055254117138007021314491489378648133188248465981625217129808515624009636180996621462048767855195969646541492003173613312665829613197840678757405820094086235740633980848968409632110704600514860077229970185541936518473538146071823782801319384810926325825116299227344633565910834213666220537287211813748164194008763351178281190193160729778016785171749474385896760784919282392299942047216852585177215744106367851118026965217434618423544984203191913935801104001874366604528340346479641218483056303587622233311086827430349619060690086594686227170994783707540195509375503012584357865306557022876710730014324318324111904646264318417487789712128600614924806888847210107477131508395846318175271620157051488004302833302018375119554101580558210886569516781231912308755033419608853661542565060321925422715637839284708761134358211638189430443611626706483778703683462482843204283227073832055971202811145101356234119955260485426204736327346413908054966899337726607370421263665003315921260306723637495976185700989123703693464833500036798662013377425266894929229641321039092822835003691160869430836045037103880760019780254159596252369652633294473136268738172321896568607750894437915895165699121058091262504887216056925895265621284148107046075821788829201893567980493186011875482883362408921453249187996938655659023161820853980270206421735713538592818021827533869685561341062263500849112401532968722887577365008840214524941365004080455709651840754246549441402793802591802093083921875332516956643104145727984004422586876652056792612503969770718122674183683005948984927864965793110514794207144328895513035358668679577053746913409264119943917613413756863761007178295728469110345785084795818970525335296306768318219946725295305200040063416318547228259542776989258517718741333873078778483796108724384042909173854951625067249607927472855552895110519680210197533056589146819344285274709843006961969944057735925337327029098228817786954987729976012976975092474046659919572000954462732091255972198445656840923121352725825471580055099653254892199951581778895759113467534478425043539977128248581975837356607255736939729972257648898383472203202091890058459767566915885552691597420046401271110680808163266993759342916179218682105717558612641128431271098836534682660563600338916268735382755904815261344067231922715930021935314200568691415593339812367243422692121400005915966609397394081978947381043020727440505878985498827367415746147047731884207780400839824773332864524786756199252670727993790753324766156287042942610089728050702328702224093032511135891737547339062177737944156201657226996378489580118164085073370896965362751067662289694080682397289472373355598249330858251117937272127965596406895587059359510794717720305004719070144750211404011618371417702768627788397064044978621408103471175701210481628746831355212428140155444231479596638152049533354359654206800207109592331994566517974593095671668650196693899429646875019731563457919838756900512730688718942070456089061455504337017058333333920868143454655535550714713434394615591077880225346094101903633025355205043017399495178647422227876007347101442988915157281145265196078626594325711512350145614924852298358599587043561149792028070626387983767696130216405623163022896867642432443338177610919386480175918017698683255555774088367483408683979101589352208115139328501227125269598315809243593243807896826792578412666481448910530819960235815020119895146798931269622264491462747141659339933613471095831261981747763903098051034541803173814619568578688152082872072689800682996052544296197868047160299999005618324228681596186583964945082596025780760194286530642865333093832395908234185785558133605729267748464738938374690140431612923607863175867685868014691902482198581829007181414344974324079927492154999547310004782910727221243115212135163732625776900280197354835099693349171245958559304929295772729119555485112694817424167290528058495075625924329810727198656813308312224289378214424598775354696426588211482717570967883770498371072337700221733351902598553827988823986871206831123775130169238241321301425418129092214760383574968513569613681641616230703152421075767639734332610052652089298619969203175878008959413825340586664839040549972026677446396122111036868398695750907169916519326723207294603608229406663798158173464296655185254767320915008552097820662183163859009286491920241213701794229384326629267859762157675981988971097750065578846184856510174424224970046869011080078952991915130601939829011860626491498812272431687629615958687829773270137125944466314143458782573295591815820245176475570297324648255278097263658474799506137094393416806073475934506956200756657787278152180677401740339947362918553332238293845859611544939700878413218256046808153959278993909149875922307511322055163320525896866705064021971414415417186500448519176984407192359596044136549486691314016443841959113366515997633429372241492627879110670586965769578431249205714111847401477493247346825556010613646927824510438052996412006881716252152480327394780695832449723922608409278478963660055694512913767210869432226103132934772768583512771466876875342777523593505522697149086606750217368128900878795559014311812288037670850989058171115848460106923356009406054735659195228145316272258915337244644532545370078537638724286462707751672687963260697651981749097666089318278797156191951196616790137491929926342413245939743275509101459517049268523030379695688165036826409380516002277654516148173257682991042066675268786608322784620152955424743852360783296093856930647836671854808747907976396437081649558807480190227042648990112369447796473900317123990974297053707539785324632306884460916049352937668827837484615553911282984069801139723397638013682021171076845434530653723589369022240477949270575605582901002817075733197286215740423310910708775685311941059933265371850713330083337454084108280423555427199917977733775558736699235160641997914724540053912565725390399964632067026126786145798067494921544904143025477895819467771516716129458574053829364850496082569063055686176372837870286863092105531675544281743804721192540238892996678420319779052742289244565296551209451650728213836471704103987659606877561992519558701522622466495130008275123571038061487548653455835945159593145161110352305619154516388444230100755864711553371107285831252748120161482929702544111425470141608528833181962447162836633347806685681943644316755200969164747948957687707719297967964831392098892636645985508933223027606715240149056549277433132285133477010699278739863522076613545643585073315280657543139397601236027311166947385983201176639840875803562147217444445719153726726386610756885234706695803405886295005944168233582680401882756860140843046265052229687966023081637319609673291310311473664543510954313043482840575147166662304823968375902169898941715987931010893102329216817733103729756741971109741285103395541845589779904538116036160430485846356584301038541925190962424626604000180118106169177027558602162329396679173837420019800680898574599218730852974142605290327683160896286847679169095930303680910362038256158845910811243054199074598123139618817575551505664649417087186499062795435918042239853412678391189330190035561798866738180687452619246685479330869523724004274600522721809160177168123463521619915154616095791062829558599388717525255986730532504360225621104331259466152830068905379600101959437176792778178975891374497532984221897110837246551097358949871444268687418143325756355138578114492150827874637839258974770204258060157543745811565433787781540219133308755069982890815218939298829086839676902516293722907288715782563210519190807077957846079257944974880923248565942599719668284074684195966114399911427484738497967641138807341479738329623248748368002967605002243106925569301589527353863013931603155327758024343518964806506253135805283236766379546127647435962113155095202511742360399245961197372723567930425135282553057347032211302715332606186188980999454443567020752471715066549869507636313423498446073429237098180100691647965825149367448755015360587638490477100820528010395013214077274749781036282178488889924590086738962850237003120008198054153910687732293273354711589493046090745579499924958711106380695085483636372833669496312675025541772058700053657101054430572477151683040759436817390538348884218380406461569090475416995552942238327534377546330355188955877195361157186592669926914226966536106888084026214368538625290770581953000019440615714098859087468186491803455395449254163750131130497559751919610372295610608932983604985898460000487980304603670048173484036366684643512722237757244375981811241226923749780379191183254191181901363252732220276572921133777071076439515458633974060489761693414778792534129521619027608562627021458640717409833355967186065483717540243392469152310381073422281140709353559536680389283045385768100950250204762517513006627264811795170127213638274157622119519683062270665843144362266335450618685688811431579531313729827801245461335743371328098860988880391327801825800704340000289362199116383370974038156948854617597019385595453850002946891188479833029514066715793332906803534483346030342332234739876863601705981581673849852688947910257608466891365387888028521470180780187021269884743134900253535191435656020275512225711896485468903156431635824920227606853992389594220249276103236813635103940659138838330564711772679122872874336306330491815627799262904360836113645642403876367917291637680392073106862267383165956221143707548675645599637654790617733218468281558630573348941265290182317039179687722136516935072680764607848532506351156355191748036203591541939532972770278446294078347715401132396019375544538756020686329396718048285068700482440771449792594048858941220047949358904067027130075781245634011318603280256240646455148674480427711001223053818731861320504248149678343317044225749392526774007297507781972856304071690243096565458029458436325715304870822611143201544029702119464344595585244192973936604173828757268069922991295494147601765536482326083697939527767129566609026337531394381537017043359896763828128702740038010887271699353788738043524390654298617764753424693842622053143846538421749837032087384282501913173683369334389160838619528839144176569664129821207827160845316714462385256530145863681722876566192461348618893159074330461154980639841563947007741639757400322511242005320576103374999711216499664808157053500817990175797653945207911544339800434857937908152728847960349360485339696581152879857261705875666182200595214038062922352667149250423706222965544317109155382878728920884468691582923715715072819593256295959910363547277528224400187264944223359538608320100543289204147867209888555221329355295557344510267402722603345496304868812285410955161578964004456880441276107614267044498740301847662027863167953114946002757226147869960853847595946681839479226999174745176093220157152524267470211642350691367624073961631214839591257470307458414701973648456501891771628679118998083881635838786534071685403114059191189543407052886443199091508138528940526178406762630113448489947012851032841082674213854085931413026456417665293585260690281045688838007667058310054896779496514557479074203350772485392046945248914386292592393160615620189449144863665737961237979999965529753160024646137966150705493523480748454465134054660106623684545409483636396922974165149269722464057708072217824686316895073676879287702870720592169142099355897569053711868988533862064462456916186487859304412801801012078590454481659083515820631570695420361600523652361132829035131539230484347245271529420334683723720518352580285134699628763379342181798382577608384489050520604415146884075882870166470167203129376791898692983645548617126742249489010596175016964826769383641906327961143459223415294463096251640352337396720300851999372668178472990418946058174924537292987453270050398161198678409590970072895825368947261926226063454095843223854496133468275884673052333288090484597691083606995906877291854538169336395590601048986308826024155100287704715788806388100850247391941905621470217716588117932506441504509688056297047203875871155002657870705461018591549197603022814556283344678805404151641301711124505570529736344385797717301506330892053422604920472098456252575204428710655940571106763327974863747383501167928532644419007247812390727127827973021750636821055435493992601667946078318798982065715605469331438853705434729769240487702726678436323284680725204948238072904365165261354545395137412380996630051865227431349322946009784929468588024619713927804730518971101842308618177142114981790266466289994167214325311317818367539605830534685993619760802706868736993814928528065846361006507125611948276536671341141660956162582724822421226910051167777697405190580189988754432054431896137466629874456112761032792566775294837127765138899676638054921625818981376559246305703458094162045075074122008671960258529724151247019646821350677462453033015456459292127623443780393861753960351949874455885658928778927185207760196265099628010949153479433766695956021949943288798909713034707678811377314952617955084613320495543305417781733300417286408135332197128392745285703999799618002971033559372148533638693243676102381549973164629500026749627670439404293702340149053674975551661379143686485669354592687050519349903898823565647683305046251588332450869363100114716930393507331247837701109706645308338141597230510951746913611583351973908441783256416028276582639264848613141791072262496824109559971431299340645501572706857158476625049985977062982816006025310980536261127732133471235632140689842051350857877351234065663964921627402869237189222374908023940774749926948974128353953078764104925711534438258451785436670669297555718801467481356577643004254249320967962641039470216126032269188899974061386901651626358780814423701863620013055894186465336459955229799570321612317389524885335032212061812679548823153096141257615824831367103518337059301995226037165947590426264854702521445085665313502874643428875112263427522929455144282979210014163821840122184827377147552667970350002631072899158882332237792042460045101306260305746115617658510529572907633927306839027556020600358350058097770495875013561669125602252352941766787807582252544936344767730851371679808239112631671297832684821024853414414964022489702846934225880467607537418098965763239429108521229315905835159294348356835451542415669972097939481207179241932159566162080576607398659744598118780666984376911394264356460297833282489327432570822519588547329424302571045856265363479866779740991691094843038737663635922963185959154837638298810262594738723814593237530978106460529139694467168880696758562748577590175814135736333624861208777264494248357551348357972864189571482443702302917389873968570076601584776429360061264652798672174914167275247128746418989712835208263235064312620250384969539278216872023648701085164326912191339154582801111724490892388564993290670123276323824898969509194950590969270411953626578948929445945094061680150950212495799447719745290668197110179576346496629549014288993107883335415213067076606890421488738578771717108308226902963568000674827210905690510029058061914081708537617483757355400520972098024555351184437562284267775841834087898290715835826052226491127161252843601646170082653930899440060379042127614854024755444730601423342990117606467051320257133659861482648736216436782172140310161638814843536929459519382505192355437131690102828205729196760773277599827731282105878766775751350728186463750721903294454331640078779162790927378756036340633271988581423658485794186688804655423046148242383693384237901146818064385196961786027094064443848152876344155150284136641372882706715928513037025932081896605358999976714395287811212136754735998579578268997471835839188973680264021404304336513480054100671617274441192887650374431329500685663938004215097743521417581113023866759717131160160330269078472636367135440941823563694641037784287147180775141735860450709284804917119840734814826013163010288981474213976372839832706373087443162049128600209082204670207214032898178680224745878709742914923089278749584441039778829892250149746970324478211496658798961422169516230561872465166646506815645812496587639176259549879718949893517550144697903833904794254980889455158083018375835147498967951942829422293991042846758422736880250965279935801850121237228716339326114679072221311218342699124407388968521887147056617043509620115659837019562536067436449626110414562749217920702204266027041044903743202884979887529760351754552794658580981598354953796884533198393220905232252482919384747003685585003726331252639821600160964955881217299746554780565922417142770420043460142472905242186337214644652561475097829922181987632664011819195128383063196638400719416157790985386107723089637105522590932861821072571309858092375864102673219679990218339978569106912152811702130770789472768646491183670046555671679649647502694616021538241463207242978134305342061317113466711096657538606600797388393092644953450555500478162012027405983348979549568381205095644410343004089678927823022390154693080460604873456099700526976209210803523612484298590083572611679308517626027465211343917577496048553421263310588700624931554736588281472493019593345032516636329043337578791311716540898488742211108048336529581199029545714557717283387192591094215603433129132164414207641913241717622037400601327678970634542163989240867369652536258439334446488423872464751338735744341657802198122942704248092393071795802457957297845418860590145382501707877176751010045565923896594197413463946926176724085790989754574338286795106143784702597661837329958570571036524772571655705113049610820914160648013246087200911260908952707401782487527999982435842887672541493302241599226291996577586063509598082863449021458071563725320892477385433020815481477501688220050413725900347458974235162504072687984164581046057156447264001557277128403907221880820273152963684594372159595810572637804601025236461298598272167641708802361835717255163774949710836175820774130980893590788678725421301295517130260967728732057035368491714070835534581580875390964315462103517663340367039780226295162287394167333275319521875701082770367206301150920259571347784008381284060671710543824546616692713231783913670245736233324128123489757435684502135102522954789483648119100660530595909293065071980954667102309320610927490050623427989724501995802854981187911482910727381381170786218476734815497041839084904032883036597578377769977933244983726945247339290930069895771830462583540351065277045025102445190080025652954270415997255723187951073509041754012016904130265343674812374569316619041966047196972880694248955352047149987776748331379659549352734161129680455163529425209734427637085210054977261437598935361381462927839396020463564234551315064096438809726018161933945412959302594721510219636185517969973285957890695055538978190291998833916644677318764940792777529245266454641396155550372254971772002775220964199406676919673464659459663963917550371650168479216386032937813776508619634535551179616792170001754411005872425621559302388957424946450206922037261002924394075154737501606350544690835590088705440316441525329425001736494600860115011658440130361358110360031305983576004357701242770661579746123732098485907710999205087836807544084081709570816675159986608089861528306931040796243343968037044151116298126783513479702619570746559215756324811928569303171423768774455762879956800959275416071632857832148794621841682011115230486533781705766838152374575734106300152729948598289517135728530339594389721082177980140987075462128844836934139938173325623250627293041366805781110949871064457531169462813268288320131136869098567272929455182624050577601136963529756408165447661074658306212405422714736581511568576006781368024774707026110053854563573291304733996708016822244714636026409763942901726014513832185242963403494978332777145093993409544889553359443043636884319375088417371996026758389522634790605617011829767937729379981539986990693455773577965501106749272117755273279202085273045527289753213483227875623820300597009317050711495490480425228927833149467864926976608100529868390503433277601963501964123875987793940121347345712458805800728116418114551144517016490412774991510753769230094750668779319156862143109718298119390947274117706286499110485392676630878326665258106027688434426846016174318776957190939074120663491730496446188536953174806256935258070198424978902281896675355024838172742355508484241488130665722364546226447355029749298563477153934740128886189417114659745966450133233637938731737194838379546181584557177433353501346167463169424010720097990632911262030654954840073423257566232888311944639545087024904204454519091281652693772152298465257274074307811952494734851465140179208700915005104518057466856904532782256795211588330535664306933700555302502400437959956729917404484541245355545669850886829092779225860179798329273677668307734322523367405510250933191241693441305839728759781675894509061122934374791223411725772202807876550705997036596061438435138963257640661317408751701914313503048490860999892867859377123459617652098993120732255517719025031834556100939162275653918032917248284123784143264931894864003187033452534265471499994036182016868705616665872726756697051295117578416619908882736051205824671621732816141806406761312157349830753980958995906567008310847659906304804636178988514441022099324062075163733407432294551011112974462005633233807635552351520179581928171655158697917563687343219517092104111138391103527024567178975637480356574100647603608741356501130616643329863174725852712088814361125370713172560270949378594766278280008411502173512818832925349104625877137853930591766120847342009803947483477069967442583728828728949425461748793729589813933650635264288002813055012213314677270951737145117797510661415246278691096642899461891826162407507083809090885386851980969878783336995476073504143727963866819526367168289636512885642428247027928468560968588695110497938480464257826999471332863948374462401882120660562854338661347333372026340929460257989488743561343403806677229794295683079623581463077422564875188901578129229884166646980826342962771258214331716907393639441965515142912383219311042850224750051246703995733883496102710102023847523377365276020337288129007938420558471200172935718284248569762977217571085292862424240267101955876157798126796722347017327094315275409703114240333172794102095479202678497542244010377060675340165577210083255470047934078032722312082995822017297602310451733477030183914647475084323678667458888386451466963704148198528501724089261790677991388054205434781564431622346881840302206086295642447689207080492415609423599839925002006484814095903202305991868738818995588585748626288494354469925378475581865902409415638209510466522701236538824370007443270781853154534520474331856258839203439235959584732046795023521235866557262705432354740542492087344771174680144080182462646960148371697317481751044337280220869939521924500948536732232068306434055907213672714525124397859890080809578546230002147035135706492228497908261642012362131673565503099584580482673435562464188152892397154689719596613009730173973093792878889889882812915232350105727675405705179088698108660698366784717874128320224880357715912385453044602844063799504141845772860344091629865834122515011648229168083533862288398054631709577845914758647877138649497439409605978341979770813869042862154071871336741491913540754025393084015233873242976104007403792269484409046102125633909258736431901957422335811174859994511679089240888075858671602295107216046122054197907366553757065123911469451858702807747627874983912943219055575292135731429546150906989363942097155087304884442250746059631951548666688020646182818732114979188420023439441438721783685948193119113193610438305498210434509717917777028148390705382874096673792941408174182745465984182438518070551173694331682928228650198218636566327524935902939992075139895619178628266541037534528466195528208802115848177864478734890594215630219047992818001849642450480143244512950561474153626739855816875755705761955745743374951397293529662726866025670053555541564374371882417166854070239086695584392872534399462537659662245657442145727921382306823111742183172800983925561084339838659985958565624694116114429724313336225940465081010921210067556633074028543621922587764842405086130996489318631701402312600501941941268623581269343185157821840163148250395558538477836538073758370129672143667734746789083287709460545311856826722519533136804886115486387126886705578822434476279968857241218444491818865884465775677434050236442526724769791209151169559356349049733946071623253316989426926901344957710670298781479113079509610114982256515362356627495106931570738380652459488282169201066233653235414443793708463947652127971048204679971983482453896506443371475010926189049429251547435161416537441919436947637784662519995683414667318483340270512470943938790024930344919880842122743286485860880983432702815184892394815192669248665155797055338657414997612423227233524127330869875106760642724831098313009191821182316350198438100952176117782445676433412376380504850008214737163645906721710737243455647692011135053013204447316284016286165645634469855008949353943809387427022176013273691242497846735211304820661902048022758726957651062360587874364858228059407289210330241212365314249140689246926676381752750129632992471145067429871364060437348633896510387957714823791788705245523811747024396901347569910993964619792734249583112106615106095624906521236491480300154506979096193754880053117363961751892191039839452317689887154022852225429449386096977115494929548040566144150832273580102177847049892311330744065702378200708118705206301633144050788607748696004782907496971089464918298392081454549204917799134373029875769897457084401862726764435463479648951144550486789875939149058283408034595981719772896059311006238497549342173384479496514816311297880071956027405242390299681398365611838903985741963924293178396375454554229016287579110512919108529614890250276482128599935494861682159833146167816641258506526377172644182617894351622320560620041625197887913648679570173211205870274519561476090765911875105276274881884893462972068879379634062017040733996940730990660578986858491557922237225878255358206087224406664998813363399962819126401751962217050727067559152466689054813009267394566690296839295036750326342799481316009262668030333062928764627741696736832772532823284393713784496062532379126123363476619699835735317313742074741348434753866179472105015217169542920017114148815876046898496029022062664291410387158539311938763435106270092827619634509370857422269717111999774172823223834795267315298352538207059356452244519908555942007379988031651312350377268201953816538930205227901837898163675337687983615558019268120970436310282220241370112053570427230252728165697619809399813057885743338506191586273193473611439610197630526308476678569239104410918038910514470160001949151077392834373566242505156126454863031662788243752238854067659438935511899468313656364419777682256788898507032405733508452934627284723237142876922568970777115186908808950163908623960657171171153270444403096908813475424269879622733583269645958837658219852719923076736775692768726818621773498436074644000117647825763849518698750632371580678259234211132631436236808832365471586662587812436008372050606326725729148273192435406590698346639816333406783089676061798460373316513834435646871626294450853416291390224332533964012500664189317011249587471501331239271415111442381001679047708600740524042645316189461014503880006798368478451410290759688814474080162467716948689315359022053196509339234131286856311904540548143457896078308164488884258023646639979407063515998248048645744302535611958018384273717219750929542978753289747225067573276492946189093528043669078704117680567388675089450082880221391276939431897216259635823090780336666067095779089931835624790291588098128841398293537246290138605162920499195971782451626845002477474782379946426133134901252187394832032043740402925119763183917670087783442640735678811480080888899866628434340601689430404607656665286609414355035760925212024938051946976845483904079807096966779002573186363514274610681174338604435544660320823701383575246649212880012594722832191499993901533515312951770857181594905458453966338656924956028492506824955709090471025065277573828653539605411093375352924569265935668987354387737825831877328666256142762385240408519051391402914846696614829020573723592140459109684050291383943363068300076472197645397636927817522894639392360255436152501541961548391778022649099596684162878821608257647058277414116332437766261704770488834060893150752940804863186384289192228939054242744021564115485333627319434041843527118453870714173300160008691846812927616552342868237560638467898230829343470513721846468701064297544713237248634572844258519272782251546372706092133953447304100793714458259812604649452972182077120333614146742514737289054207890284112516902570886963701229064763131307554244773734318820662727077485758682994644792260278276969993889345392155151833514459603433675906020908322902660683401651022215521329169314089998146810157879852454264886800841704111017231154412209727636692605222598713072960930640876240808250700777302418761903182822463923051964207873966598298614734165107992082283345385230170356776024198796875711764170070430543001938746135702787126487587785076217339296611002567512577319909144590063363559878697542196833584694194489088999306148786444211400203262623417297351659417895317237523357105167104760881760578422951065801407435566803161011138010430488595903582903177810376238040426799375236036975975381840878064822250659718216541040672153756057026279469342437954715895561594390201959138685180487144334357478125113262130346005717704408816631106499586699838404586207472415645143460901757324527551380640389256885278002714085610209074349782295933106541275707944002479541326767741943880692437966653859684505304558539390875054237014004996908711596746744196647041522838976411185352527855309494260148192516799134396802772345180652960659227942716098911854131682670988124799545691754682283113042846270254638052938668414448734055961629530620186918941687696793806522414750907802362973098544875557607351661743868482028403611408989573595700082404879916374033299814887496677267375467779558425741207964958258850503592407514124856887683854139116129180630240528296827976320771310907229266294752999552069017177765565096268222509845712419428449643165578461476104454906956300117887775111780867559800252858325559388121668928689817062365607100245317550251458542699909593427114955439225931248666737690879421655897932931043078685857575523306054245632044441393242454709622737101876158176767374360876433712696285312295638157558423057520353876702754159891568378038172335720645891104095007178286812861727979080857002414682669365773030983269169545136395532381924254019424088536532839157007255773210135663370087457683043046647146433404481937278052500202386138822881404467248776817626878994347751863655615298664299201473697378856855087240970151511248802756780404307454072665299323286528705946956814930589002931679948955678615495414553594659737112324702016498637882412824974646665462750097535733763061138473303879058866097204382684381365038201426013164026233194490494587065474398407473892505116038435491876958328336060963028649468962927245557341331855976511748129195576352771590135289095629600819791798320373622592083307806345663325269488821308653419024115863647690894851743662581966667530426057348879557443395206407139954740937908078590079424300210149416687229711963328325141905231407101898506850920340254830962898486052317301296147253590755906952289505058232084805561098671482645323858941890257567186887939231266075348960610605434711842465914340558731280253407405800607988639599455185320663101830678553186255563894800951564837080593498277141398282347826367623761739254129856864786997543634517703463803563190792164404126777166132728684809644116794463442107825489948952322434249451989445081119354658677307926348464637516998001638655812226729827128771774434433453312793690264328300399951544021446547925185823124615317737753481301936475030831294514941118395326137963854797408204800166960812617751309501573053504893002014507184936383374569614936559633499370248325783820402146944308966754113061766734421999040233666111090505778308635058033783819439183517297323805030304304449229207252158498173421331445561312165364692195652827208711091537738967761261537796519774707798158972418062225294560485752198970414815011086266414835252612272615308753974084179900451226270754923450855699850548591184776505496355747292951358329430123685773096476983511605852891021786743179222949335229730646625608872392479497862251902388470711515739607428291471516590419069733369336666731584625843136112236407814838268824038328885564704818222456741456590601517924671539768695780158019489408699506057868149087032292281634002164108207072189685949848195302694930335542862147504017987853712486870797276543877492519634884995620122583797977196109552389000827419603853869866206799993208238920754269568831900214602181479861299699320666137915712479800182610228575282894784827537911367695954614753908063240740647415593390063759367408459921896480555558075987640650453486588474234732567037784333806111804402150778605779183742047828840891383712262699532453434664946477643979679948316610966927652118814258704242000721864376687090253515260740064781299319322426326105352421939789040895049251992233228323551966286614746887363428407336616257977237255835882667455510568822246484360625106997081948072997554358612909413803834981307265487270850263110538796504797524181393434518007526052829320788274845300462659266511910037417039357991021931847330003278944356279669640881549197286271362576531821589391401147146135883777575584349471023312218075064342181279326071457534573157057911107564880858292643682686325737940157733495746535194000269644924131544021154685225719462438519478153798863904819882617215280057816637966744460380682115083306783599948667033988105536665811956149601642813924445221163389295041694338784745741725594774327679855260722636731652215961934717451671688644625214171046715399051747274267235294326277199542103215346987192711530385251757887367322930717369282651619825416422879897476181467893311546989551961822462379404116671483070522919370207155087671983725835702014161142339234912411858555546359217732524728236911116572806050173089729188432875587888608995494874427926489152684485294676772948107248105207291920436540914947009599686109519348826183956185894564704573518825464959691460721035546389564353733586474386964611019541610977706461422203219066936380902327262306648160986960375072568068977505539738324898005871299855435285886587949850149247291067130800750093659380934863508897468740143380188174851760883969426464621077380186684440840221544668839563262691177665254307742518298811668335406202746891090121216291207518824491582351825849372955603131303326075880855573810843476354961052154505243603360252887110665011000842187749079625632595183247379682642011587944056116354080546683531627017140275286121997789767784553797458537820994578168720351522226383175074088855901625061715788517127137770724884907963049162722899670535681734293877271405342839149384465158311931073525688156700895517986001462744098311601361685596455518639727421362838444975235942681067144342955522255831252033121658377245651296869263397382892320534280744794119790428858335331685004043474645649150637008414414319742974807610501341755012256988153364929144951001411708047804436270910097401466052841470401836082922277501487389125157346773660898186822579699231082304836476813312397121189970425935208875992680821888519497415109875284549443013749509415925744063082328686220828848914493296324258089485578258945850440851501559968674321328073964944467744015367973251806368791473807065515970524256150114706409194871479795902534834731298626716709098297754923347598090282794609058526001679100317506192874733654875333913058405394115817040650577879809063773724306824853746506722040607249741434744785460742975376875397021615962566842537072095674138700608463036919753450492137203240522408784246171171069821841198326819048589737851429958328925300306791489668068904648586862808810900139385177961499575821241952713614871226824933254156881509629065031835527270656253074757237682816974756460899720559001170914686033958505973987628309726669739386530495642413535788112318008236291276515868805950181307829016676863358645478387154567240807525140284406250994334645830593108807033654129736570916841829673862655697637633669432300384199277624794837961994643355577234480628124299143576215004791610663432031379451253388045302485756796804454606413855241098953889605705342882646835935629796096541566229366817508931956624638426523267080688387339793855045612640600618024233149473407348555828812003193992144243585107981516055625698437588428270707721457061783685475662485895726975064464846655243260154412115093220538675549735641979151643942361152511313555067000554448875794848402376624295363647082181551137239647312891715565998735236082376807868016060736003671022814237067447090534700462394895487972887964378912250645122456793665984124232165007427669673563564297689629257145267775409993348674821539192049505015905419263495262564063852072903989505894615013938296272530737411483832440886370573662159503345967640577300494773028941870593489797923173150762470763324991617221595778848367122184974452237624784343843641098088970986319480404727087009352356336384299327129141920024329362768967886945686136431051669101768621434539936198510678442318890898476635090146473495641755856076971261691633260864024346298729874201277144978290516585920086229962662203291166062749473109642047081664645668981595592204020328104446260256492305048059847460246195929279746722455797145086005635133233744526301936662924627090665876013842053986792073006056599330474179814387648826474539937485375881559868740866153293150836407736319511837057080399169630705557875908147346037287394663947616104213970035097498490111704548952675944804375723725441683555994015492411379452919965957279204995879659666962366274362734382334333761542450622170746727413634531504950668724981276301744346271448765137087160325789158211027522969264214747341069770973842007484379080426211576973214641903698042056666569742089347963302516267652304066092076954853760928383448983557345874333698116831439539253314666260858445513226472405536458890741666355826240551122251392484060363606770802570085631701366110405706420265904065942476265000204056158645855655933046430184623650060035300812646129542780270870288237170818337863437952314630611758411726641620371011103343791549079832335264199521594457064578364059014068998205904892337546405187910366191098531150055537484500439969516127075693350825356058257851082724437883721087007547259061146319929936820720031708642852453655028108446863792861261450176120580927439016490468267826886134006666240199035604349624531100570180090268611247697307526623758673223016557196199532182999907600702878642858783316878367907749385252090884741509394698772099958592231192935202258505282546784370729463156829122052618593982858946388149374459730752405733824798805502922907214021614658733816816877118645283684666718553723157794767647930104952152860928870311977241369965589420881972087476377365969618837263651434281681969412739603848977728427382151395765885318646209126200184509190745655682255335391602475937917336074596333593801247605522841818182703861877565664417663916914983770018578850745229803366863265121338084609628741208810748542358442811658167139807687192662319877221615542063755067704515591803967090695897682255562758292891073751620716069144894780766246738174383503732134884190508681545624036817543601678760466991018703641568919086147039525588557151308983935329160131515548885291825635079504240791415569942600188002990977120976177090590112023609915914052343673180438356592993906508589150100813447097848373859601143009123219884837878195284420386832465412908156553595689594081091729840685316398855529661598826621299291347694958933065940769424310875962808528417649874540875084522304616259449811568109909200266553934636080966204130240353527684770544839752365173030478651822029319099835194207977297942503239716366818077097733624523107426786310090862895010890861638548162046474351414617224360967506538275730581872546829721354260809035946281817988990324768254024220791114331691281300486722414351636412461839099122797788237739947471518017592820970804534406528267379895501234752574814799654445595889446387199135485665864512571354386021449971072762902536026762499900910617918744348889158470667838896353035562020221210958856124341381917728272669485076194963253028057028739266687267002510662131311801392044339559945019404469915444204045628688617023171541724740635295467791487968313093055084477697326347110607495026797681940958104283021451326370520565683489393970005787602763449107978536909969332656338022843076897940679832141640848740506157150552776977742546595112762916773072810042326813484200627674881676097802218366207694975903047884362928004642773251611888295438767011077516176828787109990005325566533052762911535496472497742487754867759999781819683872520191809777707136182570529249416414209804697137747300149971653280299991665907965759204906654377679995825578106926179409198595031852652914366558425027824075918695431845745637060878301028313149868535780621307406056295391261918159396863531013890489197600159327452307421738679166844140095891349403461090163453951194746274521321551498130154143684216807548449543775836474308586823748466366914756933076170308086997165956145463543447728816323068079582152918101273810055668890239975138902902628625532758996619440769030323070916748204621100060007784743367763771501477409483090715776726394464767530898867439806581366129090717154258494927864523796887337516899373148074538357856568043936671423951898406668119696210810407949379522197219569594857237555921794293831669769763217535238756188411176730856729810449334751249432201206062146955645439998838811607990170855315520015599863811879749037818238510709060969697515532196485345060847872586538996785998034222025275657155636115738807289984584659324899158570570464813817117514773630645948285283167808552920503104505530288778825207843220527714813041587499197496333981889003052761357654362662071159481960018065084761219826319457139766402645802376930307613345823124794745126548932708288691633529976841978551668227394638600162337011449410998249181146949079695736264163456934515762777865430459948956815340385618222768925756750660649782093116235346106432163920576368060713957801751889479400909782924730824772692407959369483610098461434310417666006089277565457124836016637316460221092024890225795993250987476687227502786219682790885314504596434333704938126005787757442869579517093789322821741337649063883962798809849079469743153870509205197347267408192713398988934813681329644896101220797286296150468424438653752068471009164322135479398344237508614877604638783319047227631074292121106464235921752139539185718259317005971448992374229803700142928734079364238746776139429176007294631662645634314216236787063772686306480617386348816312045347299517074719815779862564595157068516890109806540541656019420655058461530228115875429089567743167438016485495055360662252938935157566103727285910595781947097940624707851528781247759481468101736947143163288887218966906975495663667246597291396897860516932580223791759066030314049651171585085343413523900896188470048812524772602139842026184631578078480252631064530223430998204815790172346889702660730209803557540442183653249754110566687178579703935429354813402248891826353962731345144778618256851987254933069785144489014253903926469792868504298573704115456352286643257508984083847648454819867669063445260668099604230459157061266184969317646608385715374407122408231205581152064868083957364011515137806205344542580807534264303183892328218010339920463007546766847069542979545588577103705621195108641868203823389104203664048576132140339586716445578007187216039418688464397290624996752045404646409637048591128569057548807115904894848376278980564211943649264934952697555079487219396719617109469393942655805288397898077839485234292441716810863228470183940880798416756954300562769671067652586188956366780622290204031440832538691002869227611861236748118472918307899898832071120863111196692603839537240129167680025192690036801774340852365592452755873547219044736469625719323691426983169473026627752023992990239657771767611115253198248987686649492460706166919888806845117233970108288444761365743430186003962694125797762013581113065119064849672067717778869727060297005027132655634975630899188267943696068189246335977612234822034990977885233011920162698053506193723787152584748997515767170894987658265113801850843761557802441334825357520366167155575782223391571185408759119430309815812735105347761459690215563559376582287781172135610675038439705292160299196767981751356537031091397814317282774605996097997337530811212135851233558774258170355657822970495854628662105912348461691083823756411253201635382578525599622204959804949468314275330033637709539395491205787125672883001542500589480125204295666276547153324166598038206480293531030009372232363921287561717691120745494474609692938831927197517738533472028967669933176501441693350927995444480979669182647059576927498364485845520077626868991467934301029873009695101697810950124086702847379669963367792577096283606219239771156565171724707536273108821919346417364528103759424686247264553551460834263639781996023479070273165424852866810463856373991306454234004716046512137472959303617736166073617589637452936424949849141267331556793957427759655447977880564125556626434527561308239563290484845199350201854219624610754656548279473410197652907725737031860809706682643035413880643085355711826035757807311836132871272079937718948201767020275273413537864266651935249731229172864557057149974331423626325816119309087790291829877537885969679987212391821987479658791790995655075955353557183917622964782757793387401022412256038934690703095804361238835721781450072747022814219688981639402135688409476766921693929301108818875888629065183045066604697066164947720868024876180718236972766220704232037518396534733169540268247867063927918525359946520314323964139901314347612758999233012269890083544466590368496875513734749360785145702988415752090414014144217545560022152035972653430348826683347271785944351683144462976193713826397977058204696756243036356109579831299185693408400297785520887090658163414279553126010453370596445430103582929983614703959533504120028731739096694062094528029923969736240241924641468204287111167511123663910830319857520484541470309391677293857414085737808418706715889508492509194529655371281456524751559599852138750142645592776357161289289532901334184804398390045700339758634221005545075366756922028467204202668858116263771314744320900946390316976940613322180224511505106865779170498241642799853815626589980109557602093709668876788633362796112063715903659600877339633581134989745187773928072084876549617151732835886223112203228449982762918752898018525341582990716129324614743210347275696688151619700916490607644657675829368489696681645065840903595497968174835950488357863508445261732800967768121368908179690050747753992927633766487751974733765308259024095451537795003878809045235825643451107682743624907630413294122654981414701031667037010359981950743171185503888916496976157088440224254279355365402504456762219332434773882662619914566090778812190815235643275927823079632943252675480904418158115761064750899410641849335501137944748841395259685968126435685624359033973499824072080081052233621505172434115133149239706336522816112358075738362775866377240699851551103371791823164548435292315667415916549162722353999952422035768263360728519427615214248883120199096459627766473387460369390051364983924762099471996378905920803406465739365581268838475669810679154032832627997452968723441355872214695394831599902849467318374206502915632060095130214299257338146599082144051360321830839656846053047982431392593503802938505297075623629419496091641605768071822032121555892729176677639120826933205994686625876068797050825223095003331162232810925742870514354987495141574203595524612702981417951641909871869270205407160282642686967697147732263277628626240167753079790731964076312766243157599737484984752901248236394383479350399634964786598602531952208969680213466421972932854502762721877375752793075730660944268163683673376877050337130352969786737997154437368501929025820463325301226405766564957023809295603426357665227407255851397149925770482962846387710412548213126767160105456270209134799930810442441798397169666252277153824722650324663042354933954614729351501649806953633261705750956991865192594310429511963519316496929541725820826798840322758145616502419225723322580048794877630961937164268204329467787676114485378684571777088583713387557570831706914542094684565202002184709116809822298781595981459820406243584103118311032143856357329027895087540772258759266785324256808754641161146510247414811823570545877855394056098322654172043612930472233088218851896674004566253130460133852833412583444459697011997169585052784743857691765457764635835668585722880013850589906218095982298425877874449155867014377389834812064977912163416380799130082023014186991455429089817759365337461788873427071813092909583789181542603013367193411449021974178017945785899204546763214514937563130129097533039790635099141061179532541203874216450077041600728132932199858862760145076065724105804077420724944645957543414869409299308142364677745754781503641560066897531345621825969704732972824292097785726501884466771515815008635680196864281682964010576035274714573965392737539373439050853473394327264260212162383743523001047553362036286796193960868057523100519460215374961656366479033857615075797604561155005628593145580061123538162711964553867973200992378125807766925073425787550029766094022316270794548280792957051186493561109554799257439944029149365529800495218260659237903373558902133370628340737083274668283132260209114146872863568857457218761014942236015206436689505673405956570458509475092702035399667544237757673359616127154000408437235861252565841131039015029010700392869514161732518373043113332078334942453814788196428567842493178557981866165802233891266202440902262496634547322926960648832426854416429309584614068997614651112705183312535663012479142477947534575215354181016698647968596484831541008890444147544280401413208734961895335089814127077592482309908396749674425166561105590346313266420155230869231224636637374976534007309044962793074859594208298792920512720887224633320473308961509771287925015586052824966632274608751924386410272183532424847191372547913008296915179557030467499431902506869449381841263191851703413475299807918784964799207904495829509139891586531580982930034830765071473196081410901359796242006365830672860191765444531265255789556237602936056294679350188519724021732015029234738598334325629851180726643664814148903927230432726740447658486280684806587001027660423374670814700033473313901902883420508113777726947783677536337018822249410988778123681601561482658495557618770765220643600490266107157222170914938494879353792828229267885200628424902058631291982998385334757866344556284096222956337808015527984246570371119723485891938273736188074998820901995394047187184145987840234477792243911674355102266470676203303224715574322892443185619846749792908940765145943581854076366009024936438580320867694532598460137978762443695537735878481644246146607396554273278224665288035201357657972013170891450302639880134575758285761254973030616153052945978020833109707021262955911946705777416643355469002793733307452935419495429392014716307539919815147338737853889715160022831385855099098600892043296334525849690602486226926378150622794265657652886939788205409400952385798945038749945894727007515448281612312665351831865704581663706628622170337015739912921084324453492168383415465990851892605856870192517383091036904519320241627720582197493847914033506848642918859814367944632169700144821193157499379312490918211984443494699944292675369135594732032321712617029158582445567185979300225421663218933187690149804859247193512633171573824596249774249868978887472897318544894160614407128001187565763428676125325597855182237609904777568528919519912347618811994495458055151129032447547856038895964004323035384266021020813252455206650541896734083598390272708413125110190694927921355258097745071548300981305704301242680650641889002112317589966939867136014700348993285428225322888501397674772103860279255187476197863636965307305339184201571424514354924159412213156153039666361347178517824321634222459547483204533119384771289304542425278682953081507593259407262589985154342916884767358911448208421731092385715369110345039571321107333214310368589912456905518049676180754399694186403703967080407764821910348335880515373209554253295471135800188339182244015065115983532290164858289333087501773135262712003118694098856196529497693282293462594562085620512270389040640857538134485434248481696626991772607382048433623111405524282093910029793707206515929319385868681794659802458986192030057573546134169150703252596977622690391239835043504699932857070714208546260835762081635163406948185494855922181160418666132680330339065270607798395472427473774160143873748681643712840650121447800189401422708539594090571750000324071474091706358581343246898489072749653773227292297614912119571170939682677341433801136245554406556014782797459866039757627503431013838265088856974044789130847290667019642168056654783174121518127456641328790137657028141424100125524466187138355786081076567891248467530371532756031613879679846862813796419124834086460708341150674850748121554005084723601861932832691248629780189503475109720515886836218922231797534056147911176307123674306974703909849036959135098928885055099101770676554326673505933229167187767229179899048393696482894564583318811380897892320556008820758209486819417402846136862892980043642647416095144620405473790554507773666272679357815367012357057476596886163003145629472709781534572124733281418127602857622987539637848780840087390660930533050186122693823980714060058246303934637861527456907840355793147321989658602838252692303562704910862250291633169457262692454324190975943636285302087864321316946818296658914380344641470712871263471314998413492413268536770013392236018130276623311051082808617805889596213042796912314853188415195124990247377817497633335644711789948864677594531646908373639327856092473718967138542399145945887968839163559075395066968656304300561478076411310645041507633839683006827536889736005077313173077475405884913936879300503178280840715092477466436473986135581998640910782856253707721037570376721935207536659007618621449796640268031785922546642649224919642954937432696839493934889075995806217968663349116795995556273999667854784591451706561106521724040680442562232054092727294910811465823011705655764125203650275327894152453674857137332091078558259772857403532467717289573215796831123425130565170811381631861592029919186926537429726160113944145612068306794649596504220968251667946058419541940195781821088362486888255415168578077413599201638288879441262785848541795135108039450950964301372990735674272087841487675956889672866847949418685970342816598750625061800571306626758548635998725896503928206674497591080066905305600679187944153196688810921807804418776473115266263995492073633821693513805136926933682574966750977670660722152723597866209080082094131025606465252597295707101482502296266830622402474890934019568595923102759868585613856485322930263496453049316744270479782075576129176012656394774127674534253231276089565440499083714014698136662440092986300918952387133842182244366525681369474853079071566968026400012095081627366722550371920981196537316328063281162972575198628093284003817968767475275130326985678503295504321833923205416183179406311236392475628888650746264658597400440187312726952170854333918774195988882610540174806492267828476594940951452969379237373301559540026734576140119618633226262674250213221854039131565077774854852277507298571338808014432446069922210081276177477646339336511565877641178906036513090331949643264418515106013588682717689917253733201071390095865152495344161778782833691057023563700499419970817361286721362251102511504769853724211454322916381571937580088161874294208641240571979792499373054429703696375643956401455235591684615743971744118301221292837844399988814381661730801823439388543955123203403175791483644025668512501210648229481436658296963304281592113928343978460168823756882270046844556536009129365495422288157644007093005340500173649764593428747327714802021771471925640245183044467837204328463346135476797353518203711197638053497510996465300918696176329935370499183783716628032482548127660199512871117393116543854918545911278364394520717905275749466678847871074737985942758624370243105958287351694924801140006981383146327857216115898729276979125472820220812155441739272239828071035782720102156990049103974227897920792979774851862912405142289030429437093342845524639468971959961540018905726003782051762118997956743835914778215844487883863138550549464835292556358817428199677043018911567716735679045627968167200799357212234877403766705608326590880138245231223304834446091470097136704963589304987706010856810017342815365790749001908794733031536252082053529916712322794353134182696450557527660037694254089916313907976733061032436414261751001842200262313689841242190194684132408153300175306923894372819514298314866755260704943040173945829384475686167722133959260687497436120315465845478545376751630470134226362063169764665627015916626437189871384785055109862694657690169175230355771734893671792168473691358329569716366278270079423334950674960396537150053269575107762185505385908926792426187803108812330763532750186599522361038335429503604625634296421248848075237503730952450664111926398200522241172080976649244555873396826671441722850847933947064918344595878090137894161794608810091569156508246164673869935897960786392266498217478607804075462621807351549857351071928526391872180626311667690305924268935069152922521021868136995908100081558378092631939491902302154492360544994222712699199388462680754264726125827147075499322702055173665773761302036056951092232595168041533834471231818514758774955099092627206019422171703883609969971705419175766992932768005794072145840533136453851560451098793950038160952541465543258848588260972598618178190196472079119874979463387609858543366127017559436224206977730487463775522390730866741545630213738424997080814478209024701009105845280572984359995593266092518908862902769133781336610417477850992111381261278170777831289738164284794880635422484531084890576344105943212537939486052727294361387698211596933889220343592532602838728969069278541504438821866870348546594259237359224353537497887170655953153425960769031307586497444501339500139125524323601788119994160801035515145136200558603933383682324477687014036467909471444401512375331334232960282820863457269108027488066530996149569809608542878037840206721932504380020077113398041226138088515042425924363533179872220223534769234170560461746051536648332579503305213372706705274380729044900839049208101908240876590253443551959543409779477590396021908995235011064721370702684475452792835349975695178773156899800768694789488700721254707106091807017801565906922205223000414683409990498158532836704573838629953554510138251547647663387207906851004691131820160340758025502441879511398833455283667819675922009146950157901041300242869648048037736843958471364940263236211568389227523940971657769640441116733677103938837629933151221658400209440875430159861115001623385445741878307481518605528365896183727214867019523129355547180020217254088610244976968383469280435688528280073210481341928950500561955735651608763595942433624638083434464255549843279148892037534636780069032687138218675868978014597270206753803080540008985518119945684573387261994894079786429893171746567929719100466824030569158670690469004199494310117723221447102438509306594798605565873303903214399517773841681276985448308240822476119218467170396099931308460490856914867756929842220351421309521068524224294089590918626833116140165961503624218238980423318534090466966935449482696999907289580868482835707437194495055187281815057226080170433129677061723336477851920082678770410817826133779431145166951793351636782478119452641938427200968267657884031296514635113366583663205330607716330762395387318745746394289372722300647201320154215103177071871623823452678708296438443911036588645694047877977921759800865077709015334666671308535917913419596214115542914303124749431600876552457140535865749696189592627121280224146318587463567422080537151866849439307927630755874026988641297178784678131801815572997009781936607910380260371518369470353893066757099808949636816118214517806459890001635418439213411214906617975861410043536588309462709023429776179626586110793931949434840659118043173392939879714457851272164387252872665581089176951406218335239276975187351201966518873407042679313454320288486070314083640779064860758970658900753063218553383123907123282658135484276161907978064920937308588971454693023545199640000182913512487770913695099712735753906363025827095977001607934747256151758925823564592322928386777759855535825610699346373655404977466288943070067445091250014178354028092212574182735954046782824450778800075423155114076501489134992620797648369909683823084477303831486533055535293205412482673395715964480877450075769494724202167643984694785854315017957988941424723697073219969687883357414936974018447862229781853705086687123875120368802567393394890312321751160362347616805334100373625135818530118235534746201251251290238663407754311850947219426388452823080041219619532141739819478205810123786045916555902186808693209976194050691986443086761216538078804115422710528989938312495814228988912404671063306371949135420036353006243773216355995898403514293797270361639776628714393289086842299097662416227384674514870694835406896434964009546468710304131101264833236544943310266721193581553931888187117908908918623824509567770281349320479246848675122001796096758807071396555645542491057936237228038889802924407911428661749238811882459514500520952765823268994841605155820700855959664937680639687676026310096800322865317746093529717410054010625063408249434212514281695253493993168986617163331941327412503232887228363040695457687273762678056270427035926684514783975441184884760129715964502934614971577300879159841234996771458756396847918913876648302206613141308551591070895739300983102798013382389643601635633073961868478357376456383069745143686897284766385657701883623378951494375827617897826090587167096270918577124192483744929585027126090812000775810229848387622107384633355814905932371287850932923696239544955766557397673251110193507343222009244768358670431210714125564778227496195384284879096490024519636507365695007902516341450334528816376171053894877925698782454990900400585939348373809267809043274866243249543582564120834154591983298632136536788663012682266154290685531509729632242885245541355252623126368516151963914597708053003236493891498859387580076745015264718787211084183448904351058653088989659392495660698227041301463190100008325283111947002158231222424142898812466613268269547802341341163613441823382093474292239792784457722335998125333634444077627652787009198579420080269160317774336032305374143123690755903067938277988955063399738441482413092386883144542130700312420603485612882769878549939456650565317423422419308181368918990070991047030500915515052329788453450687356136513456127267724779505154146580336039032742171998374115511276180811018067131558936957073181382315739657640009100190256353413638615083294090784351906932691381362894719100184077872675554618550375445251818703609714598654807106765528544322043758206157042177280892753716532918514455566652269702808563713709482287055803821029269778720554286359133049343177131181101508154227425473212444206271606127808552407404888545346647906322365201479578168427311516658052352994287091859541018374806934558078017992460918618894538936575529702635745951719802637244827364733700865801505443592216279899603233992240787891350138955483172128426943004793176000426063209580152101242476545566363575325937600245674194497345066314899545565789048639548559312016734237414382726529712490610433931505099568484230109427484344907132930389194229755700369217613262440883383662426222682519844813382339011220434723138763549470796948620359349700734911957273359318778497816174599702374674795003082032005306660395271487271681581138313168284493635663112954312866713565529260933728597902512648490462264349607246746999814603384185275791450256542262576458082755956659521663859737427925899183824127532130646529544887404079083905599056079311676242441700730170335257200002199551165481156621990705535031970356381056897849503881885448201213091742957768848751766761165124417557110293056752274331440672202415206775093848532333223128719797989863269418264751420561716809030315508099440623078235176526489445304997300156066506292990491891342348168177675959249582560724476278608374165418830373224399627837615560433369458760502509644488250244548726146642150100599911028824494645741092104758520226423769534131483878141680339902920630642902735341701819824822039828794158543778559363103980651687607843964931348645455624924644703842800025400082702029740356072209221892999819308615790742909417467186910718385591492606014280918498865565888619756267961922545536785211589247735211946341404238087585666365776628228203966956570748530275914796871402224719816728780488276294316004900410134456675011543859937476885210886820267382292179758852094200540193013656531314370233732758622390878294020179645094872326995935560654833771852098573800377238159811002353773613794307828568751553155043302263176457572978541132076249999587664380621854905310916755438015466185169689642451783356335705509908707298324764639906599243617428064423091250705578291857576957244987364463485524981138020116500796045593845065224761003865419089894202160392437699044594303289877364956971085647849343108560174758496121391227007311553902691077548310325012124622172020810083517357734157018889632813281090749765687549513257048072272789680399196464443028245473385291765577409780546900889876138405659252617445030520896487770040832371936354246178312905478920144997857500143224495288944235264353136004865498171354979584835268190105837578128471059260125744923934731106813145588157053408515609309380071299914459199636312658418161284604743969395898050608663329544866710876049266898314195968119209292504655290151911566682919956909138766411742479591013097875673137923518604009857553415769127991931804583452169719023333227782460330324234419817911533662517188850650811798374226187317438731046383913227882313601933095806921060883407658747634538237180515967982477352743454476159498863115503012160552451738472659364589222057555009116148160339053237982405567621515796939018493092305799439927042366911314153831885148071520589771154290410831993402226334852870601004217376568864999579395445883559178725632396904136626006706226593622878491355202988650726112089158906826839721784984858688671218412366366820807066048830689425023054184595407310951984908944754678446675856574010486304019568346120742406856688550269573002398695979030431696463584098992869665761338925398985591734804060066669646469516022898317129769254132899702536853955492930023611782266971629522306607078716320549192542352355520227385915586576607750731481775762891719507997470005783131836718013335802914445899215481564241899191873834456104734599835286465847733912562896023087184695038565894393937113553388625293824167518854168762363941061705416614608663446053589307868955610258192647955981843305322798414692430394981090110762423962940172680396905504257264766522312460804793232625305877849894527506012352546736292231482065784330221503964570651041122392912230554837238809485916422480866865691003756258234568625811507352944480577672946147554431773450050992085144155007333962196951822661374613997727482884007843044871693796007914712345822562269818296041654411711842218291041067614578195588184224938693047873314230892099441837633523886303668137138029658893765392887505258534142537801442003257556495652268600721611962919554811581579100069252906476883566425636214063127428216393390322537279453955022430218745693921417164432284458124076701339783115852722635869044017524476668544213305222445121417714529762105820037861858007579518992853324185993921408118317545965872705292414636676515982542345604031283892225837884350611105256651202457352216872669344767070367674438209878506523707023578452392926834049385142533319034438145617636809527451093836432074671768983536130752061731978269892804502140250389893554880482349770202063687171649126093365466127668821016786226053897107528317867677684624153637279606882472219715615779387247854477808717597394871811256078026170212051214250743797456170023646786773750363936600430147586902387458098370426042314506982799675619321836228326730372753528157086641154452022787524955924954024946127687170552023684475413820733939270395626692068817325421848563623043182199358935773826829102370780082373355507172886170894794780689304843241367747769341898285758357303887558241080996599453842023120895078701259750348155299459537133571944646557844042367507768141793803410448574646041074542567634262117326917351675349543532918607803232305328753895494723220064839659054594255988222549478240346699960693997889625050410131315361482872253115709186392323899476888119605371741591380839752631044173085958484065049291867320119269266674180116664097533198611453373337752803148868883782651322324570559235603564739956696658972606573430101931211402535617256596694188577454065657888204739395434881406448742868328834763076112649467993121092453728020908148522561141400353849216883674904361588348993208280014038605069692766800341922635651282702280254689709266429236797314643447370164163253794395087119272053833324544900028691347975090795104950831924932205649364754166890630346305786987002019699279731283698110459884634405839573615398622899003804359098805195306486836553266096379240745488103009467273205134982549089965076257322305696537097083724185532108144526930358058580370236326118289524074174971042250995354074208409270557412947792441207907916262250147695009001308271761693281164366823814827319168213475933223915423252320379121956835385126686796604476539573761954939192246812288385951659648423905240675664021028345371143705985920008363530531823397706932310039896589652032039041200676483046101044892956560990536690336007918046880338019011000516525544812963712134340625829306113948986128958917768475898028779207795575460276134735790701703264008852009556145520931040610861194361469603813916175646132815215865404304085451893678914790586892766596994028410475030822613119752889543240847078353006646195864250460174524937884347762939508557870405791903983416522920318495821107839013863981083577902528685534914216264510864759017340238234097975168471497810908534097439802969687012128392638686728087861262468295279819217953411156258658662053158491493987213360163299384776022742202237631295987332521787858951622929955196887538870882693569619943270174094813070123873480237084180862170645164693249007296944993512938741197236025462920997229622439062608111764579879977273126913855218263962698355691738991286761009682219890611895755317010263951942296804195175779544386771771649832309768614454983504917433467839503477312379575833187585487935049100161294677587775495223445935616576393071540897381409198874589277816542993345499078469202133907802210129427594169707075469907868341894869845527804944407888888875903763889174013908616247673167114355526793693315559738209553198379242855433237321943809489519958898489360363171686490754045659038560636586824865999513011491857191624949779473452799052677322588029320079821440176183957961467995423647686683837188663919635846070702905885037265773213191843830300026993271759518266252313297070859076859447075289170262918012017525707748911737972886191273734950357599753764704740169729755191716068000948072181575566434670878015235028804728695263645395816844349825971625496960832019040880427127149538713345808065078690211340827371319509366547966253668183554351692337062857872509447415449498357188464144037419650401082879978431071667030611495802194166574282433540379011956774931236289190722429927024677841804092092298575635728992929742848684700392192226554609262751128920002794299577598159536312701635525124505720181932418077690860928301802905141028657131238672754072409386562320043556952308618553083036625503527377035755567610140346569490043737734901001499377487373729933951661469209399470711594435883185858660804224843373297065464126737495016663300048188676568482189748707137504290479100908857919917808684341479403209642154154494367279904640828929088469002716472925836526787409626927311379345189824248916885206385693852586915366345951817360310696488497053530653296808646033670993544081511202130573148412637589744890827475643617526328376696101008294718902046727465155897856945530984858195050303789929719406811461793544149653989079748410897138485378252277369992397601212138955153963434404529684716846709427079372759616644939472605215145114184408153019260281804190513425762253106166575060153564810133578424481927436326019203340514100033031897776132763271307132114581977202607868279635309195061576549947312841890715456880167261794289210268577606787952234240756237968143357246860343028117002797254654005976525002944880391186916973063497106282790010429673612019152535253185129445591155737869747561487955836607335775920678754563288689704465965300045644965635079785816812875651439165110274079584448188641654386344258797266636054608626024923444423001548826617682801737558861827964537145610147619353162525865535563228513758837862948427266764107661928482979239504728965129121355201007631072516882996098122887387253388208443216195367749338424330884256488591298798875330797455161122819417211377277464804057853495098422819296079620281796879394654793849678861366563673799813649257924294940610510858495500692347124348288253487579144361778798089035011395265164507197927052143025728812380285643024740864125770795426096265869078931733114453435820350161432326233119137770189064632413364683516903337812875124837511963582353938017338712831563361358244850814350211796295607508481230585972268735278181731925024065690379940358285547825674102791092955554807770222014926511706676418927431585889780207475400816781178515803886553042650452146353819223257709071038170301580843635466538569176686356075862541689066440995661851200611402196463808659903100916591586455127457657917353917478422704053902598200815717488569395615075002557452891000268384784558976695202159429812243622601511002406746513881274688808564668240729615858875331323226396413326311083569842418403872125131770408835662789810793276209966908991734354396410771588791548915203864588034985102266127454420376198032631507868596665501361468602243463157211150892684671712381114898799771790579527745251280633591135412916027959546733701178653694022710550849993534387688126413002173172952333475828255505208952028431074118766837764421202640851904253495064323179921545301906712053883617143798935728949153397916628866265691837571677980793842366952005518858538372932466641373923193774803628910023865694864242220930162144325115394738552433855765966547129048751734378758982175106702631401487823014382813807615851704603984575698323563755590915881203339006573766995341075209357519373407603166937645937500567826469271194350062924277153871004990325672257005730484031014223825000359138639223063666297566032082933784013061070143141922753636900250693360042349433748796537916046319316238579951454054855991637661346897608676970600736011153170463429713749506531175032536442275135692263193424323690472788211300385119074735587451851687028114928736396814384948230981810260043616932865781219618500721453805669798039580206223566035078264532163304438415110489241448958903669812715863810439126914734730578932019004119191023499931159881537774062810177991535841423521733622271153752443658720269569032894052398121295049874840398686780354981257874866019674585906135049037612555753558215679498585051687895535569069009982560347114192971962336226624703735191586331206278743367761324492970666002917976188374672013211234512764986176909734326718557106799142545666204064578927398842903637898397876972803685099504891980259087440027326354548049704137498026574002620000617241919741108456585562479200541156238190887457341592379456750705951772131697798348548123112789997982851298510390758466221070816802239032868149502487564102780257274398678426319662885115380626168022884570614373649749980740160465850703661722917735503425410765162122198364855433271158966417686472436481605554228110367692786173862246552756207030347118209280829555255747583550676586331693349846872875296956436820432690706721615980780853028885790070210856290449652181235580415792942774379622141287567434601854522265505970124007685717906196550632924996665249573528848814165641340630108411319668051993208703623267509128729850640745600088634609691388394591322713917618501603042421499183301551126173993586992875167471492752305808730970126437089180051977875022859978003002905606140495096099339518671791540549435244276724071199248324445070711281147078563705043518093608830407364750131966641720961879082382390013481282367486827747428335702215235532798242453080074777288325154212809774150095968446716113400115915162415487616069753661279167524907095778030461423800335371698064220401893704836672533544369539087314489700116620027608280214351595923566182483577729322390922029536532091816578808593390297645646849016550120954330376808898987322069169105789398265582906118183892309695008420855124705198563981265737721665651284026238157503282845081409333092093851633057413965854845810129902784980103348628431645528221739233905987252301552883321515047112169067630536076503244077836767782631350391213782279150719710901592605224607181163994169620321451921564220721100025277396627384273876520228729940694777736622889478007337762194462892590606836257396464578708653284203861678200430788345373848396630233473341639120244709455400798336224560216221739940805674372700244488037050313278771245201387350136565626412910360783252858102267093234916158059709458177686168447119837707257081962478714419493558114657126760522352494244232393680802701594441709056593960480253135237298135499300779027137115738353940016431207503986619080825048413362282435148118553597644016995683025347599074379163801754641860425732455458978690937755298707808269581010784260718516684533878185430772055216321243315516384734390291668902766340473508479536088903673724136747293016916354292583091074820099951547363006599772003245143560726480681194427496937469613688437963252031483216249156970426639297950118006165559042359623008299628190097794168938256800031242064136485754350665490571028310158704900661124045686368893605415405013805552107303455578161687563442090227203464747055143553471857302471716683524915327331347363561760536582493252948507859233268477349570006993331541358356820850740266084013263255789893502918887850169803425306048256337413903519033531236873474263357988422628548019840969438481582586418099001870919884370992374981054487817156107739654612964331688315360425304029599221890287256801505001052652354547370118868972777940214746120649606287448819990694274444501886677769448850378238392220331901045763991295321000148194448217769612716879341804999042907102804085505800320561965618670747356267761741479800617623252337454401983731589647821367627671613581202409925913815533933387248530231515703838923688012925087289616359313692818722068673439358003730998857455148895931354159965484120703168917952128947435092213492878426764373267699050651921168977264645901177769865185482701852888178409737551452882886258234150549632929075692949641819339260743497960004336002475665379753408085165977954602765533778679063317743474586483201969798936553984438997735070277448077771912105959672050472561749655669087615631496623451709153930673421555039057441280164152506836043448380106127442961316014473960592816528278202446361856647672099801914227810527217652576209630524387388131352931090153307635020365667084476738121675155429269293921629773775758625832660332047320052614412722713089902116731810463060729945164269509431055262885627217212432213306681385639427177211089418374651691179091532394479699324464934840653575194845362888197649372478597723126994636826526120658650368200450800237157594375603119235649888729274238311255201720700089897952831133809048904809263221133363861378463671161816727161245427795096591371413277806042318154180238533331409624954193214718368071193940969711587917143071424128366441648052758838429910238839263173065247993089520634268912356256812081414227750086591096512769242861242271098911403422456709330790974854566693406718129000434231066161106984220754026002231739646937617706745578694300728439537351826753695289499066282407685144445220786528817480778460566402468856334417131594241979246622343185802124890034207073956893184153859125868927807975983630287984395225735077690453200011354999935844361916407019181335539319751317276352125861339949697401049223473050583447931785849684105924176633199351656012074627189316682057738118284497661260965424500465828317765410382371372884126963197657584975478201005294069717369655381044647928149919665799104218860203067641652106902399099843917445679359837776092104591881995280583246673164293770346519770118681927887573681200476147549081447638979822122117157439599266398033055012825503132956237999874799432694201455941822456802290238188424537996827934068232376953645321266487649244490208940304447888630747864142032848600774415403354336766145399792795210439651577543001040851240335146573582367928241817189486192745189757278000066942387915000655802216146955558064027145624014034568861440752658517151003358608689046063557912448493095349397518428963640219114341614195021981618158730996912327708304563237781525751910297738430562034723486805657451706053961038602398499425193774255858751934322416023556306783380328876477502620061186974908938418149398684335005216772317547413132395865360707465563245638612187728420616511435142803171749971501423946205895724424677414796749776884832875987622960659674691608256631355908682883901455603248629862880206408726281073955785616989092511379960399354648176539929429646655171145237645532633613559313099119657272156444926986016275003280611732907031208040331579402974534605489295600522564994056389689453081630629963555771337847147788486225341365992210214899812169151947604786889229273419887855639219611664885354503368359871800019350430142378344790486618572687104035491148679648930785298800302892809982400100236241572515469935959626305681024481505968127556270431431308322956737629119265606772607149114707872331824431742083697234522753527595162731784981522797544723613993220878145499294822108717554461036715141936366842968230585741904045329884404117111647670776102590005435061103605193336628910135901522154784374594043476148255260105032478485937159357452321682335824442398909372341907482477165341232419784806004261281055859043832516542868956211205960019676026637120244189398778810090163810170952619618681043691999382665304767943861302262090371055710639291996338143321220435275225267822442012760000673642434627188544240817588727285194615534604834536479626514323076276322333335042898009139320102769661030188424942158575079237973026944771167381051083611808660284607583598099946742746521862949317501160742193143846671655955850707706666521079410116285760453416817017277547415751178901740417971366238429324213982573132239161266385081331963333259257537279898670713804671034507754515632560076538727393811664175201984759684145605800661814308063332059396734911276299276361804256908193702987021531236296562225247865880742523376903111003926524165371266534666186447204127046520848267374236936118353079209329289967849605251482348831610617841939364953828548024171192849146736150340812462629101725498014727633459531786350507312967037899364602045371622891439773809551656924719562623763786320002213776094039635023054992640724982865849157514450085992844021629045913545724674438629537386922790636470273216622174887333312928720536379376094532199969925004616452570253631809465972852462790081105128274450390823824029462802134163455144530815402057487515429330311259969841397360805503210651889138912928292644741929418500755834806021375153500341290920793165616564235712682029613243328049509420611309418437432293543262893415880734198164799797470253534967599821526938198345287829146499012849174383356365559540237296276462062105530624049830371824494236553138788138782691068679518003180065371830209978990638416469525326262421697431991596607063683181125388330792682566687006221401189765502350388488231107800761639616991917466811999773310348756319452813037390645205399143820953635495455172035828594070721396179840869360028962101662607509186126505118899655267373980661100378679132719011877063831385231049867163888151723581944239052686452640522232500463218728250541127085669492879040854511959067937086246026868739766184266803043128352913860345457967622129550370763246114010029225953995424612453351053943070904670951397627765169692078693116179787005024642313465684593258211157834199925120360635325154925739037831557528328010283561590743746670818585917098818359670835592095211827185192830344243201916685341453110012653705411247699620509460351478027598141727848576975755845343266198581274082905948965549018262216100838570640937789603256607233125198559520916315200468270834697871233713900543264629900496651840277988803859826259612296860302896952867165742457581922222469200064722497036784113917979260586358334575014448300904152556080413936371012940704809899983173916898657608726108586620694389738352513557147837611903176840028369055566103896215762778723481852401580446590243024262588158532975133064289849844557241064533732668626418196434385627168958546478326308483920905909333944118518198477617959834213553470716087255611584052846425511373555383029437586125871808069260642915680452801891732112289354610005386309191083237088824817546116986163584169203692147380460406046677306274295251144374662591818279885941641460848710008343416563644156695647379447880466648503467608713580021980986183318590055150314493223176368948549982376033282011495293823357682338157852792603944739793584484725354170480807769890065565969126493336995537546993587011593558681064565925978372268316340267755629476692044132226465194314746005742725838448235108255266968737770637233847635844225700378191136590697099420549856601684152896178500458361785801062849119447820165169721359999976991869070028966692810011732339505199104527174451543108412731817182854578408019402827419211637188857622924883732204092643254787088674178171152486093639367735704084022438006621810933623861521725433545831355997402336784810473315092804818318927027266130902007536970043020879975861374859610546216827355146762396115831277244260223374029020517595182251379030019264853936240604674529157295379874535106629014293558709320811292743509472309864001184547353510917001801719069343458139695759378052471897767094481482114824307070335632702112232186698669558353779351798826806050819810090871041825246947160846302551473035687070619599744075825814054859286668102844614423453809664388635412495111930814800235455148672988010898159537361578248420615297757957832201828178550367830409297928773381889119764429392421069742049783559204432628143623698436511987967621459552820398489747634554006755228302550971887159893437905366186699667201088848009859425365988133430331969311684886390694268628722750437666314421915369502142714582566149374554856585136940194975969893675360696293319782882202763080367414159517553150610222696004930085538955623825726755168858728847005883946918399136085942870569872536492775570709963003152529739649670299853050370885830508458704697449140421267003587569485401717518423892225050030172111344440283608204400685088285052991081897175908970659789898984338650445200332561946801847978597751025076512682291561941787467927158270652511620237853485465274504481581101343815487829577764381458569720461746016521996805003730930981069723219660521799953632951849953255248501835181319808655469772513925240829136480820308455581790554496462213472680394679728870412152371281838170665493264921628489416606735142032694601668554528224128139112404253356649374176626066335724691159238422553102553329981601811058091290121013829534591699025301494418759632079541566550526273206408736069772112722860435951010929467317431062670402740502372500406255563441627751971978073854384220300498463314101967600419267758645271371702569192073047595976626148675995481041889754859473383275423354074090129450631498200231424787903166078489850284261353574415859409727176701560306646466860460786692460225830140185744366912629592075561236387355790273903935764121172619707907347932488430650930340551915437511406042856855831777090940575844417348196730481815973320768836556752180550240437518134745632707729853960082973147401051579085068608232738921754126535847520508383937578503149770449166401947033242734670387557635652303598804832758448582038958733054027330677757462464895084383357464433957027408180650064810966147802714565961847034540321022918439048160556981186684687125922683944725110868102248420229808863163887012562622399011355968106398083645380769929565591208238935572230765880051414766382048327880089590873582862191603372066514646317444893529684337763962733822398737586754649161439144313172790804872424515928396347957416031015737880041431824578087832914909242569394422316917731167557375152887054248168395507590922351275635276873271756003871930723826384769371742186957296741844282439036962178507054650402850511033921174345813552120606752942471545699558060802053347047004238812346997292355257411825571580840564473531281696304850472813171663375107241819323126982487625430862984887746001583208455358455382104563746271976631213131762835890970041436246113598035980282600793008852824629478067169503301587421518787729959344302199460517269834695716565268331089592211401011067413688177969723720273991910028328591442424141323673575629472128546221165172907032161368789968119885140619228073515485953500963559321623548177304255569891471263229528859665983162617577701341221538330142362407201119197730888409606949363320751583618747662788922955071914203701219255534089200430278041220424339189101193555257649854595681224707571009330132422113485509493179924104661451964890774389939935921075377154500520833665983157834845470160391119792786447768992702426106321027026054601817755452974690484690866468537355908276020968173585618700227305576923894492351986174238678800849913490924866053537923045120157514718968960486081202860824585692578534504322505166110016033305752163009441315516362152660072075223183312069860957383056984876511453536183959714025656095944274287148054499028623861247717670648835296374351413974036494610344881825042437192587263036740473796906653602522156979004201532223478979561169573450484236477318134143491033945754854002640242250129163014927919650982999096718932325764576920645453495950676373764230299289311270822710242683173779074112740510322377457526816014904161822034614032748513822556920050756151933555963758362946190514134010089357864874352890075158142090689764049025313298410826789996763587912365146363622822815963539286612456511669862882052560175956339315425383291899308709065686184320803605684145364236458066643449217563730314435141838756035078517458884090174745834938754139514485997550285080160101795972448431287105280823908069021341518396251099926882197310129413735980643868722385261205115891599719065866573203198529179524057311055782627558847028465424978043940575501614235857019085288872037498018012864244728434446132996316629249015991918518339874896731737392171954228388769025361642829336250428119373607484374812285215305305325981099808605464885108795232417018304404198785335471147719759986318882489440116459975132668255055039706501361071108962092661698424579174930372135754197756582501369841561683168581718100705664399258528457499415059828506910860668657910671545922208283825913139304216220978421453437747578297289515443397997077118959868606317303258439786783435852803715652206715218967094520091422263501648086352149446900434928182147629805459188749442221460596246649501594047050992001865669423820786289315481834344565574851225577686445710134508516056095976875747190331438179296779665171171243411514805953065341049716203648317247002309828377651206918391157552424136676013315796240053502586614583778159584138756642148917162831654271220124669433205731775869584723291559087699242365187363880139372733894498647850251244237670731427715119433116396830414409272081912146071205568236086710158368146804052864661884530018101208231003019489112460887857007640650951479559703603270611926595891020635944948056295354998713526024418966770058905599386848516525718416236160518536163026943815222932389131351516682303447487264781768228218612781222551692072743239262361943104703342222137852297791385995175442754957325191904421927771321319481876600592944891048606946571787266509759203022484697510018784069763476979709266880499596499042507695394109368160255252289707865174071550418189185812069848112660428592840638519302457278664257175800496033730775366526395692865232826931093169390600988681478422404118402552883261312636893856491893762739445161867503659720088719620574868018756147334572633655418946287907000634689035507128133612141484971438330026629316821857527586869360176176155566896281752942936514348220629887111828215832727320397264376019592589808191017238542700678483395752460185487448377743901794021008153636566152870791579820845444872383962386738505712972162078036038119507180680671932728485784958321403572157838769582507698919287323286185558949803225360725455084491188967029522313806014692240095481720680281651606678067673542328119913982629311324801074019634715581451981400152645209639805236985365396459676471143741579766554471700754700933894565266509187788655315804685791075600329574298297429998909820007369381695737375505158667474915139880813499496253839597999290741426050729450826790705961986664477212283568459484872478143625029400523487550786133368375150481441585426206873998203031054421229590947799312565140725905968712893472400047600980314672171945611928825464098929703039283884923432019420434220318206809333217385556572055889716927555023353748792015214728333646890505775906225305130390557842957435134859181092493317298201327968624897954390809598466348346635409750336449344265297135652985979945755088919568115527192261274832910366547098870432374334322890835645650486991690320241906912918502337052121225503520544993795650634115820591955312202047307545480354028591232656516103126481695159016740906980414552811574401730316520056136832810709544763884841156944276038372306608543538350779242766829812634112495329714589984593125786111930729346776419224820406817792553504959090110171188946159529176684536225142193825780768697587005197864461729683339991319064989190185967484985356868356493021238205360179651051019947790631987761088771005430456157767054013950745803833388492646391906157624482859172574668563709703455152848835852899640940147799870247754070000863773480599464177775181179268351188251739721251546227935020897177980069489357658264313228512714257971496125571601557605127255849839101263415739544024646653354629667891608837907076905916356684974857296689155581134072583013901775929478623478828781398181826932324923235413411212867076458020486120643652564682593813128222383493648004870987876015941432147916793326972285226153539749576782115558893983441803734142561270725215195616109219608091608681306457615760285877935781188099084393481952291711925991227816653931066761602688311907460864587944100238425141241285732163049964801177428496562564851732526259369421565772344337763831735096063813266528574199562175912830645372881970654502606597539587308196566608876687583359181491216534813129090235285030745419492926470655670762476212317986389587734276744072471171474389665486258344618156817587975515966857377971362696232470392944533845967584991183148778719126509921677163982383301139725522018123773625293145262894534060413455624792701347267996105151030937918982416686516945949765233652231555342315856479535119658829870704393257901719059444774365489957965738285632583655276788234163098191801347226075373732599405061671927924228064846441780534445349421819642173587719064269247519538829449602047746158657862129560578358437255821535365160195603081928962657262697906680132316402445498622366078067924295193339122495455349282714707290560222559332766912213852982601134291595798601360749818556085609833935937609220152392982596552540169251616153430611729247944427871738915774752312555295182037497419062769374732123745683410458170032888647458121164527347270564859450323163042286100809934021055285905803529297826429292395258723278237563016987086863931559013008936369736639397865237887660347394392479370343487516731806695326219511464362019832375687305626413052476083676278479705709185582959450997842175657196259833059119739102184276750216580400359383650951523883033672323824876024902198557037417035092811707512065949431869419874235936791849791325292816609044593768356715257650660931995531568558870734598583884787290557730413238276662636356174007734124464031666615104507936504393053027309869035145709459219716274571781565855426524262877838238977462836123872582347117956178560543791055222148879142267185454419780627607600380612029145923577083145068188726754252419400983453030400830102401280145694155706556746452380124508143311815957858735997924029438815042922420360856030230499880139670977914925940720465971887791205347397645849983883491460107347400876899201028018754965551419502302798093094572264104416734089359700157739628740989510952633450133286682839627314881119547854858156216205237713544017787630822284808124236670827771285280833550492114698576918489822782468476341699247844884436861512907850284908904215868152239533329806788336542669774999424204864956211751335909737270560135775298303478759992821587830303692278197113072879852361374217375708747236446203678356570695469081426701988557118288536205351312284706147251245324781453337724877044398222053864652931653254427575364436484899816956608432224741455747627449674395234482583609254145698990020399690727814904927096251056346946944956881826021103270640740878127274664752112219740605079188069450053780812176630266736753699140299640726135640025167585954565688746841368931060833356407359384835817403841061315935484737364915612960463936429430211303342037428538394335159379133464528953514206704692281154869505779563799739706841167494080098961405272883021873789927814784191315204998732670475617834459188055064150032195854438044034701551029414809677012856832913133753623226146395368540184494536874409044152200612677990185380129122894367780127039915424659278717817434759341944689649739126656178242791874761485793422162069872879240075252106182053666400406448885835969575697672384548677522126422763833859129684001123139482063625770631840685015570522203269495669159123477918435726306545203740162451267716726992520359089026390465866571164867050518678734914048678426069318728342371353988499820244977079981254700955784322566220203322367497068464809001954493684704581512692414276342522640381636724691812160484631284115069937875883332057206336804452731882062752290213285254535387661923497308835885451170555215875501961367970428641413072619600768513471832611573572060685719594399700566503241181038666570229210416341944895588269626962546206328759773090367649062610651093422110589481101241085147835226075140571052962136649465509892133802999066227741328972140757611303078091461924479292844742642264231762491830536667839691574857509552090709780271364976829093449743265437569302884093538599307291265047262496785552567051471896546383094492728267630596398241489322978861100326846224551248132497992596076165824055931822549339601961370982907463077653619906931200175056434027983816145362704566569311590370461344886575852979382854889507926360846251355419437396150120409597905031941668984010605848988568351936066892457218672483851775486413583336970562161954762114228476903087131709171242405979605174019693056951198281115589681021305379137988794207246448603736514151412542549252717123339321994824965425421677075858355706058204021282659131260331162281969093994355201510927501164376341885310821971726991538389274858594234596592562975008450647534224797747487522097635909178048657896076262848061541826920007742792862686409238172191057321796910208012005911472952419550313242067418257758960232632058496982355487910217228802707690910660578030467853037331469280978531196386753197122656123893902383793349107734819823344291827497491451886363195516483533544940291985298960445476172734790810580851671249377048815294674104336018958714008457589203171400928549779918692663104140934776689882592736425957043195213529401156105135192057582197497976692904862319054403755189438230040678585687357714283207751507060857932592177961270819964047997630719266108702718009007065789498263919256807138677718411101288973824246171852296811204959906990539095065710994287194368161658662573539091526965093995290908999216473362358804280971820160557780148180855005804360936274040275179249340843118878805306423467810293458735124502369928909585133809602140971929213973714367727974017823387429356874048017880361477573819188456980802415185092354968445607381087245165534739172963024781147943990719597605726071213680403687184635662525592660995862523636692749903943095690860597937699433651119915320128500743284981393294539876156659994618347778775770184583907994509472635495239552303502027703516521734867696182204355908846163137728506538577767194907615810839113124935406984449233574698216721844271400730917094407440178570778288757090754316252759708344432798567964946234699350895367936353005881964921073484589591762611966714784031062593086416917356612084129284806890536528661188173522918024179771115674578268942914690725527013012958567209211570369117524278031231288044631598658452249249464080215824521453039660021895056332857039430964949423723342859205930134666744517915668019293521942068847073540877420841610903948029434833895834478009195471240221596293966636793787095153126695530060220761289318537634687818156570405501326372831193666909865266373440233175826760344128729585813917746623773197679314754596455026962419666578360649624779269161206050670838398233104710376900640297841202521955239011386924507477895036628802264204619656263445880423644688197146769822543556037808097753250095296990009318311595306647059339636168936164005395543880189071520464932171304887171542162443203327301114233847365195940474028323144493841145876465396003527233252375909609234737118607078929483001884550334180905832895102005170842072351190067875683259254239440207159683999402931025956362036628667494080871580523031834312983108612787487869070204876061852927745439599810259970900984437018413667445887643345734903589122931808008261158148181413335240956887379421901634558536919064126233956058973614450699370556648530514135511444343445099614520837472107351661909316266717895792449287407679889881749313241942517325290472870548816248129120834278501991074854489463864665058060834892439904842635094825566510859204618749160735645441258754460048820103713023491191779878983102646856325732916398477299994804491640639460835401363898361633244254020210887070989337970814465320796594227258290807722028071270481970211636205737518454563900383484332055307052319070840086879105418118172152855317126577615537534230350578232530789260679367171656379783956545587705951482152232898378291367689768631690251365293170697197632855641263900196783988908756132679301241903090427884804493101785266286862058775107198423686690538006746046630729980777562570953530717162430092915515314193708135234595536590399244881962807525267025580057906825309556178685064775216910128644105530625904474320640308354168769599153069180200817926096628533788693125715092838016062562974834997590767286874302162231108130184547880384561176815128692104302010268354664471041175230208065741038582496061572374426079464534419030575112171076621136136868105941940358352221501990685788778862324761438507610346500318864965534030479944989944115056209928752047389423777488581656369125043374981997268806526130054303089302499477169728446477415416340811205244783061102772757790178654605992432418962381475457375084795550636208812008181062484029861387890706386711941704920496453451394585627230989754615173310569283640230797652973099044088854211190913428498109666253243596229792831283828034890377674198098003347828286036245584588050223741363537494833811060265430599383851313155268376513542765273279019063251927360540639819943567997509179126967882254358529931060992218296756055201776071571301770679787545613595265411515434966985438146415662577841334610908639368296572028137489582470890189069890436772909938620966465153111437540118667850531695370383200449685013344564343288494681785186752498161730486653204139779772645271779772827349679079481384010114539249664645694335058116234924467103967210024622460479484693119065973771900417931404247044531587969424563128911996550079758700871262429642468095955711481996069761800541169741304531936492409834474779449048592300010177997411502267050176460111347226016567699079746292269065934753702549978725510351183071874498447214314900783994103855630334458862962294835427141029431460244462486769353705658932645642616014830007243846839759729093833364997308929885394574313720255880130298429846502068714156029094867955783106540021380364870307270110103692330893398475125096562024049861207687482325873158082212229926712424664960211127515683477401993789212147344754630973793205472847850314801532330590120618356212026165033303873348005166085916626090096535677521255763178076926380708004247145814627035527184861890927408088717151529756099800622698470720133418189685829313226500263088659313224319944583170659440238671983422643114903338820793624440102663127096095962789300395288848245807755518903001865112848518700774088482288278999285033573020473535860039143687745656054995509348547076380241029287609488000296904337620697983653542281021907196448957276620115828170519466347795661952333153452635461466484585606657083607784920174457620523196943714413224549250570293490307423221822651628186808886433808144443804116371935075401821602078853717268986563593289429118293555283280872686451322386797772587464028850078074514706160201899449374116252369158870554449551463175458948799045519335000156709208017302798907475735726046761415661229035294623880777231954609961970978955688100287367812822302610787636091511488507589997722345807063811974107027571272972009377415913653171131071383465245278030436675790085858355124913273478017192389425591907639584694958190874511949895527764349745757329684519679719625389375024697798796972319959657482924718792772371764990679439686338638230399516836307208705137508351763035828827735033576423359998772591248468194183428991663797279971947257193896060482180776822545242873293803631651133439162785402196170265114738237448224756453877255816695806054169445378353850601213405151197039373508128298386319261775795960321151847186506069042667707129441143330668100156038282368409439931653424940903291812560053632539668619969458494618229431929331331411832608532574266159832138101307424375625274476085324908540846826786343808806174427474615514827714608277545970863376420348088425868476450562959961019609123854593329541713391959092093456348752123382060358725335134136380022309582202270722039646162007781248409071147277784814526221150092077329648319890369843227488263414887275099149461796766338398203914579806997220412176876762361729326888981350707826492356827743163225189177116609098335640157556395956264266755298771362512684477513336886882641867673442354533282133478529615654440684530007742314930716132302374878054888504223253042708771460237317222552716075763113977189509305322204551826453063376634844593469696834805320474733625117716608234514391983991339580371157725525999399282537936821019770686537851455575540916964344564619751665482553952869151278281406736449094475296199485024022753368636576910030436891704791475931458456625614580881872322909931437642855636418979094751731565380970238305242403872128304337866371488777598111009903448117851361148258929303566558077454242801434856282581884684895501749433221324960380974506816317949535241426555011780466984832184466552805581136776592096055496757236384189607447899063820728073693163606375974876462891780263900727776703006868890518705499651361782622961676412863295136928351752736570667651499848422175377320529032843456870727161373600381241180266077730462617785503385167935720519500905834063540703666583401168016737046926378094318784432006423499610873979411622488817547404309030149993240572162694887115477952821764637943957424005031500927171859699858675941962357799347486655044433083381066665881687799234932661295710870625640120362985686645651995773500508727872928229726450591597513636327915119173543030297188838654147841440729557641644618302745711310502773785468488984898220934605580974522026440220871028034404969891570384308298384017914046142020134573064084960722411633845243478114140293608907628415427646098990505908272194473790429014559185269685575514670954302896301746905087726620444900710200886206129491622210314636357690012547332242990985500591292875885741551564735223899658839794586944898971524533821056459146146772892874873472284857598319008238427732159699839099324206566658442984102857354577342310634875881637368319733330406392269043143573595931348757641365092610385829696211242700019999242178704897618534075499315087538171274061777173447902209708972715897714656635530682040156912941025705716526080368781352153074919422182240321781096377502876884598368894390733955955894307128520329545528128415530219765742719674732334341419409449358233366935909214965857080378622785049106811884990285549197037391329418089443696498069237766980732002482534470742764370235577996414079802592927256152205031662836239843824691248220957516782441849538645968306876080523852541718301998509353879135399604715281503294895002314490653706083938128792237882809504597967859794675335527227627598377452156530230282447640686081445988722966076427765113061354936271976405370329825415415720304683427462670232595068778349850415263396115106594037484651840343612114609343707089411890996960204032025683409391427946909267867577973200592437118620835796329278459792619013019248834414130926319714169534869733563781794584118132879811069333733833853496683462264607094052610340414671843602494538319986906957354421618542186941440579797628088603137029171317090323690050750864530355159642245458600452630708195993264945676233888540673887133093929942763169533291332037203716602171689177899645742057804020943703122699559536507225011771220991416931964341420511370997360379289283104337835963757811878176777808044539590262093662978217988317953476537866319802629269032130714796082531888979157138505001791152744156932229634875834677192271114445953384515116172174133695780237279505065841962933777968222312291270723465973112944565701099150418479719389577337727350850150334709772360858883725490370455714375636794327858225401017228395895809155282805686523074987420392280499977002319091687559701706811417401145056160900036216278041147122655075580271041238629834423585829561892304745518733062667704142723268132165681629756368465293976995708523075281750994410199630492732658959846111827747991374249046457815113972665434589872162036898919763307830904122164048862034262567044653337292530043582865235189499723440169233112807721442986771275177941382356432003799666899393211331597612099434436799743965453623054607913536830775391191259068961442989439905463865994474026283526357608700061238302898221656593756058884668062923897581579871050316694363749511564720817754672385753502788467079015124931640392323980669362771801022597709752069047686281476674808225995228036142595301629147871922466765869527561031952262349957829290788468022844139932665912641448935959697080479076144066553854426201333889734923832624158386736403422184327874250963137825530558755768191914954884762048816157413969794015431638857235419781544801234826409035819710120178148641640328702545095122189883317880307371575914427815767666596096178174392152553983431817593835010579968973360761830350760185959958769979243176218383242507322626653932099515758506546229444401148440727952429254791998126035593276983670721396358704111456718097715123250009030708801710275470472372595840427087468490165878229389380977949237195426000371329435067483796153808387028562458250590029265267892930609012555120967019309406065835858012573288413126163846083141933850321081580222821285519511005908830256208935640660597604576864364703764305415811825312645764147659450195218878367296245682737595247762417051963766113003451770122911595845261534137361671164000623050325871157718980256396798510419702758014138172877347708032277094834857743528013029642668001497889325765928622324796965800582263329169846762168523904607213302618592369543274831426387489503457293643802667461063649644990542722390102830783481591064754935546512413075565938785072882155078583815232407636445119721982199662887228417065631826386463016400369100504742441197061946547294111989903870863534548158514009668898669886392664661142179407025479669213644019355510871107167047007062660928691404653778488978626886434349868870604856423073612337384478303052508632202782210716016016956934531999091453307844535649818445710143748061104656156199439075284473239239211076410909009267019164120484479949492478743553264204260578715159391194165014057535901306116098697348571248455192929016350064181829879581588381647523964090961466162650277926297303488945980743875821802996118552279430003440220876933596832384937529737991337586979669279698522006316924292465321311435693812375975074204404228433753600091515203835807363001541646977890365633649511287622353574025364986778405578048290876751131647886166298142728372793909344818026248386691573831984539335840920704318434819603986904602789669605238243824873598329580383675231423712530342934378487325389779786391237737993553107432552476229285007310014371518895943736832460796946762965412488763555341008703265700950138036128189568082039444075777896705097214570457209757576193388214501494603070303204901599248431076890565581209537615136260634345679831200075167872931440967617242465007452591634390785161389742359566455995311168243646624056480314220226183024572408276547021606356455975724240951495175375624977432520179043629622109926100656139647505215530013188959317960620746895492424985854962327677707836281745681739908418257873145206861511138863007290657473297990631667111152684998430544941828251007667713356850004449639795540510261587211041920610413722264540351273693240369724249009828255169697703330584423689944416883903712926226096702103794317960982102523323488557115069480523898890225921252306933219097350197794601380648168256566203384446046994871594430295800902426977431481296240276998448768720342268892365110385910621617918943564473860988862717274451184382938498199868250874471011354971715807754652364715735093444623542347773319790379542591033942449504408086588373945589456152770756898385529781663321093111413897152001481184726564931657530081107893148085879091985921569167175710465325755823166855599318239659429065509700950055158480617679450301112051424813153217281111718209071075812762394410671658362144674873508582734205976779564552334681979617169356597596181031149301088037228813956192823116835013096642473036426641085994298327451845818826440687097231572782956526813362084196287564403108849223277684800513358564394359403537812444211134113746109901030893014009344306571128679826120463330188883951488007459570370681939990438659983731442514158700538393575047298976274257654185976680182478708940471249130323863317340467145710852985928522473653295599403909109293160073890790032679120292277033145435730992664995870509690681001926062666200076456265956729017961204003172330790641221995583361279227173551381550490803919753907000544012736894403154268262781531683172097740590147777057060125549977073702457047022496013399417207583745655129986830562267855491142152503729648758841956658366288812748855176784324041286222261342323234138320558769774110765564168972203736101518696522046408614406453503311221296012120500058369053115887400874742065086942481888541250332646185204512352578987966306870368635775054928505771983177021873408159749293463551692787057662536113368501770072082777506810596674572649937557248862602083417809325111645579344500588860227483806117103544145366032793305947399769777941170882912985870446667327778638021608254974974905589280960069139508560424658074374647287598799404916737613470302187563256012140545132213345610524787167390044643194958605948085054084042419900286737658334126853190388530881921275996922485513333775207197162126818856504678746931239206239825487549990373353849279576325238204358093308785012463750961279553311169995467648694077534663934388168529721315992809043804902382441637269137957166005085372725132931786789751217471616256148748383091505788346042404066457248155923016755317791912161303816319054111250132774894586141144559727343371574057198383180429568887759357929586904450743422981813413977357124255048567414987346324082946242589084300139536098447229271570724570873912323563562204555127595086671113804637754105828084549380004341278782287053233306720359476651750112416770353291031390829544306167514428990627423653606146121310296957808121139900176963593142444984470361180601204932516301484253099533431784746114485800826018290449190501040039527717421502970408843635263676345781579119518354605722316306164134009875686619475120782066950627975914000282177449571107351653800369033941047221354779866799817114904992144218588778650786116387000691200440969302954252211060482133503330747901197239605278294881984606910257199995364545679990013298203982317694352030754591984125853248321888248417130066550332468649327489238482650047151572509688032287433142048863172367231645486821842749724311942127351565866415631962974598559827230143792115853492916908528441046925408198694643674968137819195118666961574663477931937618253789670851662348487648898707527233193823377772860376522727500963593426565947077821735939674562786066476503698341402719415899754705984723555509585126483394791169865308800374476841341481843667497810753507892504618418549604349530766361143261921025863936389208851132215050403169638648178672840248069419596835306272066575357073504052081408716327258206477243937844411736615671750877026893053784017415651935492009790506444424212502338936149877596991855060693701780031742900852936175186596196305705619105965202014954772814137674032163386566258944259341123132743640287202261576474982103265141147572073521063278514171935834313083605596263677042345055681878319402554769258948443166854307847119133055023898351981814137710366514042437583039308907892332449816418658036359729067340395182121546616436632451347214287327022368751793056068290653573526022850916342899512353418215792201760802021100729904264461981275842311901474763690055258058043999888670278110677422444566670157069589528372181884748969968675528508235354891473728376108112232585045275063339663928053260574144058000969529503187701334419819690288047908935884421617266129761453517757718508701549315925737278245279617360958882288354115924087497465139051380043061600977675869204776869172657488368879266171741746373936979044555104372226462425764141448728001317070099891133576870369365507845230686274346781883906602039774481516388108724894858553782523598163180050467014715062503824717797733363283958314514669690520667210530987279535082458020146915039640937662985636173759352609992100097301429054138931762433196093031158785778026304369596178647288528633469698047657817550664289429866410591766381311624796951477958660709068510129955767925059059684856729936855400018211064837599776831214536071322268001482468325442480645356358579677412028726356656702565765279074407487929299269883472575714462040218407207089191652851005085627092058684513468686928222145831144579139459657785715775909001840642852139812655941229890152909016330891821043444796056311107863295025565844545904030997924997262748188402078771217721619699398357594065916153441017358956118826419704048349164020250337229906874559951487805139125508575909352620786374762148370339824432814513538467847396958728856391269577960765932888610470065499463842663868361130120958387749382693904441859773448277774562671879654280023120573127597779805555297197178603335276062309780066775120191860900553444485561233210782089899853321090671983518342863108734159320774029232642617372806341609609646923982970626385620983668362478644547258552787701340603697611620623626818920589324145311114302051334029796923804160868783131372702883680991968995400660659193443946034043529900385962124530762760117340065276321242094377560483046496049711593721602796902299049098793872431010841850615301079567760425965662504541075451130600776627986202097911417176749837092220821183384396421479627344897124409510953875048403064381991189358492963515694106341915780826807046223835230047619379225196524209777530899306880660759835420669789086397712460648980521842326997286663948281116882341058159471305626484809428265291808162842903582405574579583774261577335793931781037733134216812983794519941227643952452447284462537328880017968307766443095125077593996714139843421846123800664547434300328134190657495940133873794313190940764016171101193356381152716246771146561786334944874818163707160714925629952890544349349582750734178353381000045745779165522303541079830031837760519902085007142027950549605048617257303884237972623770986946235893941025143659693551825668003468708311825026886468445090321827902473854414771935848817027344855922058707179570311139157754746351981810704401761148763200132239514605081187221920312832654803001176603321387721289895209324341157412204449932415479632548499204153739915850661528620729669266277229457981898721961556220488329605219798486800476804253797530242968165605584633010942037667123823235777757399937090915970661113916371938902505435816923393765927531304172186448672677597267508902750568034135807826948117055225616857203277914792469826286051139330182432458920599370843490156590459602003465262399276929215440017737457127170381150775551742132265235085129974499980874119664756478178327585232706101973769116206715222963808198960430869910791728170560010547838743446537132500309770351435224945226120499367838634560789766344649067186418613142153499228309848380969237532315598764610722362851192772396667354903216032638415730677403054919386055028649088823135751376826232982318638598634741785156381584858830759827838275603478374869576622342974330800347232012500232586606724363036654581139002609388593344378431492835961419701144331872102791825518056058755938964377224468623739773084031923858317210470725160942274347502738628359615506132137720168309231405400930035587638077442871235419767079790593951146895350733462933369099345400609749219056934904523598642336114391330552185040273995973479415683373070487186668347606467615162957673887485701908513854838795924610203563101106501005180269654393134559220009186552485079243593052863849538859728894923811860425677012076921664664600061878471629161628307868499866420110777459123192100089047353639250644354299147297415270027717123852669147973928907337592670164403183060017466873950548760757486364857297503711424567989752652449099286596108995509888465190203182500432960221443001184503039929246186613039266642521666853067052242936319564058561273977267827696572550162417307829869164128261711865213696178869081083852524145248408019503550437322994601908146906812711373183968194546456427845735145853978486907581476621668035659906227434061430808467693458447568441582246516355273666487067822033285160255534441654679957969058534128331932218825245028925794226544269175950104514003443961621831935360580792916298200649001449415634991907069528401961402853083857637777540002017375559974049967011616336138327542088498935412066909488158804947230776891292730674594487007619082286410968015431137969349869557812977505585499182441708810689423847250913396889144435804625890721683033922299927368155470290448703301281150708280734870617888924919247249661044945701561628716710863800595759257193601489901033483480946857438582435229167925327268451320729745988143052963704334182432190176527030689988104902177512427017716611800624641535592905504415891727578839625921943813059691139183324613091552771771379696194141017005175248883196564336481983017311646685241000332745723011714747080097791706084903691541780393897179075853689555903985590071524974339635601396788064162436076020666789483723799912543263944531910083523336868586751596402963981040001037712339899427058983392415152031626673415207571325365505197381748683740342041021629848864031680267429077217677572274614660507504852527522842337929663140611699590946362236821369545085560398422602088493247808046983844707528086607115904058194086038028228456322280801232054641221197623746701443468363541361686656939385525632947494717001190984185406172599658617847156225596454066254417934528172241101950638203328641278771881969821599734395955346324627579584594417784753530074854496105445683398011435480176807360237323836836641429354330996310886992511251432087816475018154499931460389355893303805196732834559266520138520966818089666443743815805253299961977136083527296487798500422168902789030659217946817781661040516280903017312938708284268705056875433887765929383907815591364244258386463728805822802554790451765458930282022851943071333836154284749709018741651834931629795654989471465753134059770784243050439362326538264583002618488547610409607876373317719195759395495089323231597055421541336901351154348318380889941725234946485649294950426694130413769680346989762166892004103951167477144907388721862123573597277965832027244774018400296522921857740732814503705643940820699004633597671006006144440235445361169970545132845748351006911032608470462711891963605173960431835566528246805271322753717151960366390760995547430169046199307406523361303276526368135664599297725135786744234723620832191562028180750498768962559161746970826612030015605588805889076115492754061799747082478257533910439639155354717133701334763025246015988970656565385114437245534846144988004049570439793276171252652282473152261845160357583728096038042168858803220662770999296348602487090217315628852601265255846794403958153174912289306923127620958462522828726412729433522296753044333232168270600972789983874744463318175426189567397579256293304820224725205377679522071038645174802315084527527160050716382922671896880662285188196194870022799083767027810333531824628584577434483760252375595160579316114253668193345131046507119603494829933152857108355994536299922736301549063136577147728633822717857095269109970316443827959320958076371409890985174875388719516487378613139637127779538708594534880355028193138334652972490348707759222549874525706482330792195765994535941071916187325936583261300678701766849453927133894399883807865607457400041488944661860067945071632869039300420281661420037636143603543527113377190682379574218243260718406706550192797138731933691484251609469811655701476290136907006769754559457753097933592140255956630303004771779337637049704114462210547140974783705131778185433012495736992999346847560803568006778835834436351798433818303940706268687583246113459647244778244180621865147473300404647302128046414346579002030741714866311491712624208490743069543391707980844866601946975766093134909770513918233033531027722567558419148494063102439833785928468041367818530082991120320056516682886731261399041633169422551908055962184828947027883869877792982096141900802538720421558529505461702052262241657560516258765793860480117309567362738564967450914113499977005488970333893920177349395759482942678449582173332865902019405189543932503339646190253110549227869691796582889911848660472536482902800186758586032444357675887135425766797468071277107673147594079135867733775628854983546228774390094775014269771078560330129214761525716863994436207041606133349943884128300941838288285118754655188027339848368589378881956689913771102708879330086060547626471204170753582432780836307486083558993164097378891109959761930348394503875763520576694254059557690614245992986591178999101779005841481735813980554230542295383961555989110058240981940739041290393887814357927685990347871860507798627514941105607586433992731571881768410451994620192572398287535376677791565593201680546729293267662498290635431359503290880005322178030923562043788203842036503694182461149732575002296615781345130074049658897800499842001385680359311206821595674810158718421161974669200353450925194975407232827284410552763105547448568586583888632289486805924159040008558989182015728264947775269133187084428545939889564125741754577506210370774430743686658013947050622521130535787846978477924103622983468497400240705642161477481180071116101693407726934196616587622353291453648834863850804634787745643866949062253887232477729033365314284129449720865578379095675110573989681926137979327135720644216302635201592046563648997368706789006714851280648529984073191378843404835925580785919743045556180570468132233612947244294653488546139125968956485402449433547512391739923106135324087792566946608929659920008829122672454416693738695167904823184014758446923263538100343611905924240117675325467550421564077121134391217542232051987372548315138572334610949341563814022739569438920533391866156135150484811230003354047311978830996825946274223995376879280404666799322716093364950914750868106097600475357155807716364261036351618179264828266036928809502111505615922007163331714342345976025512228320043929942016319204019424371858733624421108467722215001421408670576884037418787839991234110878348034920854380241800199824364816396401895073452315951721423590842252669581662436390173549793802174577434117840440050701472986748909821228879707212468239076279066464989816013783492069576661882761526836769298385803103438245350289279824230634027718547066681360296659780584602390363931588214235081604361123015681799415518971740784148309426498707560689063181969747200734666088054075868735656521480076615252720618985745986912247107887724042734870836246004349118853056501229338865504654074964835192180536695251191097046254429387138868419791604574840781451698797809626973572874592855572878387624630783657624578392529050436040757822269285847990011525490291543393989442066048872705727366089085801447422813085091981538748663221509135321200150760143369513311389284115960276987251466489124162813007136480620925854599373012999118435372471884583065095336312070372479432794126884064847845126918039507930707276468994236449768404542160313491458046279211027581494944774014085093761698951420372273762365005787844066596330003124477983114090108218106999457974181273823205741038936599038133145879346680146893379648958531796554858553546224682390964657410656611369308953806291487940061179187189666022947780010536938543307668244332009777814907327651428056532735262641092313193094430344358019496072729478169075428883899099777607085632741843860965653115945003666983839961797838472739002100300047936692731606149042856045414737715195241249106448989829255400930043367050804458416262235488781564774163388832716097402247730378654633546315304607635901647147913808365180987317990419420156879104988579494316551757413830953893467027656068124786116096685987029391640994494500749783965912963667854148815801633483935074973969389743010134015617298848109916469916163609112639172849380950148802558108333167162180277343179432751936490228623553835492028424934941107393242335718009465617023135708990780960199326043746093917885267812299618494498726917526017342843395179429743619592743234039024080360749931082363510299856777368129636705241999401187199451841267537353058549645300932962352131690502890498798751015915443412920059805654708013562638154393423713240461039303704420142127637455684739455395258566837856828989090135449262065621306676122921007606444976370794459530019161958095003339708388666204472815687623789585127366441717621705750837006372543883574027917341063667550232588248910670737401811928200948468958720059011437484624162762854891258083326052235216650005140557780599328443479329426233948844171244199825465699596009050701041633285238321523362963777911900634121361194901362454276090235012774205072906874437768471018293748658805942554585535519974050890070240399293020398833667285498591442547571035164885554628050960831741336846517308240733004828425839705175872251370826532281335282500096432103976606507701061296146526436982597464113935046322520401815949716240569236948899021259954919770061152321387385209341352942702098710955875194690246722980410239207928844274056650092142502791961603638798544052045343252880770222444864500324689576340198669170080850010405059406766633767393719503277336057494597281397529004481089269956959292811783897204012325834046187210572038669773494201752124285652264075944714952245221213749865497405454065847570445399886720722862089304557053368632393699005313735801502468277782591297971265463701426167394223280893634573470696248799126766762151899309401131633870902919823382262031956562261191075950326295844056030598993028677606758192684913638821643430495750304576507073728013140222373089879921422928497312506409696759631318366030429865758324766983056713488431183631391902160338354212317190274604291901895327587473191302344976882959659765138208809450152540204816698658407528553958330622290666764730276185115549738616306384074677046152981978277960455300030973602879355507907787028502355306569295443191315148621945661135709648325996072550726280476836127421137634733934648632291512166081848373285171084615426074208890371565604944723769512659253358995675054917454336601654135439037393843919648620825689159524520479719262114721382028095301665740389766956718983800483393893683465126290537518779917208298062274769671809875909264839759832297220052324656771738014945667150973403214685384772385362595249788542754060746883777505921478755950197460382180396083636188264166670821222421778124389177385943182253663634851033441316333333662337019990459246365880457826303652261709731173384527054656780154999069227268084272596846766347810087525752844436989391567193626186799505777146264662137648067815575957328545709222068410428196316805531836068000873685656088851834354706964418140931389149494451226205173885431939698122337509459594060917984856374403510412708106778930931769276350931464269359049676324321702739484447939232996431372209644643398772233703706388048322569551695466681638706931698056351065739763923394396493131997138379032967906880076394309074183353907139975953643655155008878035874825125562770497193267890043132894075717899633949189238475174932033752069493522176307118458173022489160327523880329138744338565073661434122373742096765042138215741234612514793697038460739403088853315168471342162102584601752461839806339937380946892627050419709142190268670766345731963346595554168260690457696754273888868840717450223243745522161723549414711220549379438689027134137507291951789839468212528202743971211183669825742487314288807630741157336049420205568175147525840211793827256180586423492014019852971522060410670834073446183933275477723309544283865216033530062411597986994028126585639422502985312511277564144702106736489053561042934502995635321922557952390210570840401876189753326089709057721938926222229702496392006247675750644426058705224461463186034275486397403516675056863775844339742234969635758116871590748257822164584119584127202400658350658845251714218900960556759337236289116376658196188013599323723637849942654101456399263616938317952283548353230989011512132888145651233438808498897175233424798937550155753317430239046430736588546066478744180054722537830326127844441484783550731882074537174917407426228715061307327572225285097140392161072634652784906723595975444950324493845674803144268330464429591563735041962694033688249812961379757556514641060917355525672951571648000061979838059765703876486588012113431993418302190164198444104409018716669415760132837654570125101199281741461480817935524444607123469794485243275233602529364819110552831955374002483448660430707633126612387766780335818404788356392567792252584121044592852667731773594317599422849451203864853854290165070067762062549071505294947690219311342005906693882695702971420615517840601043650662903300087571858940559546366026453645415123692185574372059604196409831915562648257597186889295776791220714782453317689361522716307738665822358671963870214500908475445476903149125331360320388312344400513692199472689894373314003681438144261478491819335325808269142699270807724669948286734315203566660483813670556186110215093273186154931909428225257227946973901281056990188852568428913855351024732814621104067507513582702202735128727605973741530987458928137500004491697679684038084545880258225076341805554996847278236181323974614116429777879374756032168202756483237245028861524458850995328461577509241077409848100738638753707735726079856044459987741850962369193403041045107455341981582053452408794701884657095517539166471234121579946622222286672872995240115537512674846964479672804793492255203444687882011012847172935531909987318358149414277774941551094343355321724598288226371398853924064898703181737082979921780344746767082143365117783482442333012916176212785677028003868811800757511019457295089714142332816944448572561456331036317142293192197402883615156315372802157065006196569320042351991098780495242721561738003626948579846472221013427191183948099239820567419810440515036606572610647337210500544667550896403392794552749212314918563590478755095875707213469292838275521370174153009836855233783311018919990792634301209799126305330623451805832647720538207607148260669344587592468506449381581467851934017432222770214335861241637969095418090348165920992028387994453956943406838700413518339002449728722671691395669735002496009837226078308392496768232431467627157109610117839174400932844832156516216520054897313766528002272945308365247390494234663688893554023003612109342248273714639294836078198804249775979935884474376994846281837942041102914316427066399515182530382092236944486445797136356171350848349530483311228855225152349208105052547337291511514013214835617097721661856355849902086529186208055972676746498871087714250002400048416489529562929450677290379784449929261305709623217239064767800799457465019460347986749632807709197884279507852529183278337657403833812701527382191311671322613279081934374770402170905159085745719582890406383045311137613673625848386446306286202647336781832849990954579221433636254233908489897585301283253645264683592393379180854813293784393335422076759706578973525354696413133563178657297932598106235654553606401076229627898308208110764739363798041665611938317451834043699327415145093035584516036156790707894436315789122725427813939387376629489614978018987563262967923842016810376380604522961851208697157469391242880067036485312548389219487645861149390368736030927088688536594438656191573433182330138700638105137622488238165816542628945514965384772049655768991983333910514224512349345318316991688247932813282679947652845327160998706096563617346644753715696775407456318613351797144445687469867589897892911033543885828517464226024850954963027565520764650405692917874366776297516540776470718332980023637120232268294120033657941282562221976304543469384007499464343357726506322052198339082040569579896799736703796283151937351924288368718422985654737803705988989324810099014823480198559911376358242144203379045688957435246942746337412121811114658777518047901453838608428640541249270776534711673564107672922144252181710364389653281406808610369842830751212173325838714455732812459007233541464663287022589533019872448736386718916479931406917841516845399277809556380179566614369789216463794607476008276448474764485208879093720045834919205292532881640315539796721521722607696066083887972655312330668441880921445733196292668726164665937445470806085037222259552065754811073546119531977765741466700558813314729033452174950232876842512461694299940288451278911028684340571047818137578643585915824394562731539022461146557892700605277183361370241591559892341546101084517831879068823340784345510313520973547011239490472452372525542355728089881311630510334230789322605197634414659718023073455567833326921420079876150463464683587845078705475934924651714836677542886180787214197680414473850381720585517880370341566865211276982250157449369441465811924854759701379901691341958436593737602126531422860818191291850932956909550955015337030222370308282781294787574273444304741407957282917325093706618336754163208955911500950338487517428801455307021021431381441185271501521985809919166407007286131414921835484257620344142340860476011639169587136339161182557121264326238122880188154548568509853414654569782169777401097426050301247374379281113727640278841606877781923816954366274991418050663019416603093245969637285169894000582621189084196751746640335345741844359457252663793695996564382105053774085630376110505381443504795402588954994247097024879279579873985938602144672463445424536047622698456124976707212378000903559499606395004884351797122093921876943951973269149904964461958222540667264595522225379098541552568530645102335791782477854523020971984399073220472817030595560699931057687518249462519762795131247760431367835346811737909703669557314437692508011631979168203650668119119050191034192641094629539528625272701753935421097161728397205197335171401637597626281225529524687514929584421752763889302458885187210386538872492532187833164558649149353924685156584308921016862789293624045054785600288399297806361300300544125198345966080601598983235687057932547904086813719750995878745962744055877158012196251379584644695537143155895760778699355477928052619210096556886628209704180328348338434783394360624539096775349913023877066350075666497260979240701184992040565720504296843014230450829317733973766535183466202756513621269178528517332593912649525886034163897284639181415191011658892494930667638304112417622137194414611419556719315631067578473554471836308769617576276932982172367312070617161032581178330792109314016338618673964881160200169031328180831096383842280546581604493371524702517907612392484106516158519787215700207430340985175484801572486137749190029465269344338949875350626622238751573333923636834527140406962988756628452053326455189244590654581446449693575176827313449053629303507484826972127468066502163462534466559075691005652105532601819325145993564858854625202677596495017793969991876875765886735330058689173196281506724136665758413768800445013760392537671318027269237017419508036061876795145978363012728918250380299297825480541077211723581355403829420336807074444454614772721843649487330663773310631381799647940775864754634213285197798408994678185293128705288076007832523085174025597953840522803210275228032277411490058961650963017170369200529376396554858926148839347306895464537441854354802723839060218851004841934760800891159633734516840286645555965053820686319237277775115003042823189506991758738070557682868627709000849474230990211608020528135712411958190950588121540380671917970216471081741699071933206923475616263187107800972593190125049927731779594566991564779366595022253104863247038707179404969108162339678955158500182431295258920841882361628098130524228143854647940913702091646048993938933047483203722617609987551400224649975865318888351737465997348440581856604224453328431235259965651606227141572658251975888794016681674442433365343716170252199590475013655850785628835442955281001812313036998201126321641419914033431811777195991523257392793685064928441498547299463054046703284830020513040997780341247869650583647096255137913364652904063787165730966328389625448234798536683283805363040803541369265996717591569440232742283568771391171204532351270275559653074095094585359490190397405853570534617273438673693178950151325849956791182985182473309300163897121263301204012977564509911246963338538651828074140190742304061989845835266291805200076754405576390957865667154019774899359277878877469763079314287174858078303608713267025689089639816458009087288660275719081549859713829479404751297852511288627916731263278017515043896109524939121847927694599666317135791963492200604213350923878779597074718277074575417647625915359813003472905217062427510588772119487262129803619495474968891185032887970119468231704269905803286036173417339155533006042875654193774879594275480864880795454187539416377454371465252592563996949146092557015592418432263770810687622089229616995180942440099911114896457191213027904955035032818866446481504875374900664300035147663148324830945860503378778541101074934477629413802908118572822968302904814873354370163675107428547344117565186998270281117862313231222139030156213705079886573987287793697698525007145513800286082866965199920491230813998548529869503265178931220393025771349564387030923230184410454045805528491978921974851099863987569893038940231898573143011100470112399444138662349403083134572144746506358770675284306231346323633418521994224831543866166922434766268181268736326019978538522710571971570022952980915367886689022744393276445775034851862013438499220133134945900050382502446131071970720966677827857506901871046783071181760422319837020732947226644307554287781064004735042163763696885174785077077770064374088630336955796972685651252386260897625140027216621157071631852895988528093712207262506957563530853006013566657665320141885763695339885579959909534532874090595251206307100340937201989304534003344761407602251862190068703683701147762022031950156463865347725282802520929996972651948738704330896425949414757736602974787102586778082487897001810121729840006497369078963677048293107946470238765601208743603807571170688051688735309748031822436781133984295100595370743293703004741567998497475475691954728343587856046403425225298702345684951396904095438963017386347993668993532195017867975441716324861238318289904162695457255903275553777872714397630624857497622258189280659023303677698373050972765690632951606823737099711852643055739005367087848957721102512971803487029528018672854689060466466040934205980201302560291899492455005920706774887603373091932270546436992431157055110033088949619722458681618593224907988574826878672126503490251713895793286012561698241723341081707353279138630905955613345090406138949458522169970220099840167726046737584799298261616752587065042957852194144736294884472955184870040027639770234580809294053673628971043280407221460958574306316047005131995088650866927767876892512032201136193323898060104614858250454423795071880119983315922246770489152843181491570161297804094577966992214729663999658223662150827027431660661556485790998210682190281832674895305792652642560545768380094308704174615036695871543493544578926030913390722673346486670772416730553460567104821155843152558852542478247641207510818279088219775614450504901439009045118433988336449676929079063919951187089378339544619764183726887609722787135576959993534811803325108183016919385316747033981700140867163397825025011930374860581265724055315601209805500334711592517743280053300693394904122119175625715557727283422611243233557493686573023286926635488966853242881000195353722729888508711308379963428121013015059708190910575749469039562794290989658963014818478657841011634679203079425039105708221681867807069923628762737872075716927287921715961961056121183663176470846955276362940552185736139666550965421494936365300054280397703201548639678299452229261999943861779320752712763779249453294313066536977673245428759176273832889324291552839702897815083898961279654681138427767589164317611281916468022712097682912017346023747924990823967988072266819771288431066561454394541295322341351200705540070469390712822019780012964844786035586469178634140085295837872026143075533634411281832045702486124296052705167993110377028635671394797936971244472844402633625215802536930127568150882470595577497011880961165511988581002607009740053136574535371264349321186754827368808645563913756551272073114552263930903343557472418974112935222026816548876664005067542860978758789780468884553580056896636629491745621029070655706967527643612817685117257745897421116813925701308813515210486672373950332056619817871014629108638020006912952721681446143884738438949354467840756714867002821898484019638104293493783165553419922995071817572199122673573459487020436491274641167198171567836505228541116333156663932337099644560161924434318754352818631241216540533064088730807416875792604790147417852335637910686971502741995265293614434495406005518891210615200709618278634129459976031402201905173870347385454520785661881951638868390215659641504427605412427687495850653576214034093998971260445405121577267237665066065496157085937929486750581926617361480872507084533924960268076480162499863884282378777330608821537581750891777158833881696409876089048117639018918280363025301211710553438049901703138136133290925879221066074169977023695330228055666258892927383648959344985184261085482202009036068262490778581092594962010901185618391620461692992101533194960687914389987470533237040762344167877669642770228580480717978634939484636812947831491476243848658528354249620289551818235970656658811120554391788473491510499958462505554220363230891451760510265807275915565317950904771369412051981220448528628379546796185308008127219298770528988391944341517630598319458046270603899398634697735547060169772772304403937350234345277500707775230717578252737852896177077624105244185707843610336869679542623087120593000315610008717010861844071704107728584090820077439733744231077195318664557479427221936163917131317832713891649331451029370464976788399915404222551520916543507756797431694406110467862190930437929512999248299297174888714447136075597082195929003284215722478137142570773962757774070070897253436298320710472537304649647229427836002676684765167114754407143745977829895667855878770379221329132115349476020852868350887531322006797778164294956112337047583512085684663134608412954806330581529421601419969851696730692712678448475977459250079282333342333956076195706882285593966549664038876193148650483683401028598879915299995495246376822079768108473565965477536913471700180056642813998614689063494285054564106567704548770880482237923652956724016841689656868188995442135445529881745651120435524988949083439073686401543296151573373000884777597125827460291103423567680558963450532721401471318887638973373205415164862265580585231720559343282326662275365444097461169197590893592726065941939743639542766415955515747827396747726186545374013495891926359325294223777798632825937692233837101916462375714185369342032598210153385066955862790697499191094304075265464103978685684665861043344180372394561270620254727208360607565990499058257095341221172346396178681758872568920754727088612438960067125822962006534383608929369843688610007963115935304719265596194913351498899807081104493876355620952261879382632521022591061013656959395530924894243775236284920637311191308242473897500046575946896643951019538005643439568640248106763776370163955256342843635969539863583334178422197013832506391971878445414887028631603222694243618911763371514217609844954068756151477414217040215263631787661686413002468450310501740681570740248725686856505618922129702998559670183115098820219023775730679247514542238534266720062709342268813936393702155854216587471645393215677089765506177336828302348917599840534413767180385171860020078210098698289376734169918637600875255774316443168795866577837432756484377271401487715520040011376407276163614837856352654580203459525065328108152244270342858402523873559549039374859056152127560116842403285960708164393293015544423450315252643948116952864201446739421181936698491534098147416682371634486848234843794104450795098675757597549899696270498137574201095559727589289936800705251804869306529737031853921185351501896365234666693044737828704444337441456152071203685770651341363377716012746081973655532012328942414029274386829266834225217508697513036526262856236014912444418832876624959983738727412412130932328324534886817254435635504443962007021564275971876096817283464939116505699743198513771301324576309977416354281519561313213700124150481767505757055514497174318429357398068124432057597368339598855335261077869943320432026970326083648587828729782013528643589788426047629293573453605162815928437906591054910922270113793185820825332527868280764874694212833060314142359221985468037062458363347772547287592667269520258680154170540014874333293601445454012856171078298008586150533994282348487009831055847786143266642502064594908558971536377594974253489323718503745536212259550501437109110474127112914865415253094525750513090912281791835148391566189697658284034336438435960639025556999598666418453273667815153132950662978844421753645531099404672683038633406150285484856011304887085112287420043892677311552849791505127504610622411147163224176307688562251099596943083074176274367079618241402970341604575524434019661208988347883458948404627386142771666246474953173200118065599576811724555480533949295717020481158971585370051240717297378518100516547084389677087167135365323894546152982373493784489473150407899166359363660710385679757559879770888210555871623303394757250555736617763471894911220126654956818759294576848050215749646624570176744330196048919759765901104781649620978618475611057546102898928538395253311559163218835932859158974864712333585094200628360567581604261557543039360882076997285156555255889357039850539285702458669269989040641299286701658996348902415805661257549906333662371569139930914829952973595700599948427120573338251698869156492640615946428747272714130775699311418669576344858383455597497455606514563589731041960390535489499126669395558090661367125309294090504652321301655827181687755573249853572643303498376825143778608423608714560915017869589583943957019527299353995558469368208336375275313312010964648716076357987774677591650596069810543953808971569153727265060983837419957003679958792131401496605744754967502945913579724264051568010993913279152377664820845062602921341168030334579954012248522816759401896794287492574106437579514883229298705943708974818728460419064358549974951953133064167705666806057378585997215122103405562610371295475955089581106272814530490497048706770810420729357694099735127770847452382428685044411300355600419493487869847532423239695858884158699134462028355520735099070110163047231823104429387839248082324991560389966624875592250525341153668592128575369003748813459868934641830263159862228066208496196767586040166704999029346357523902280847376383967662218273763528181450538589531381120695849420181304499150419455520592042283271332248436069097598540387541927358934008445303652720116753933303657760395300092684470977791087187659044450056180057285522762113542704583568666578659507169134364586876577398407989459606646213854083063773897927974380896883856227137220185777117853034041503119801466130597133473038208131810621037936317834792661165235133240408433538618359827738458415797005211498225471289786644780449959506920703978335793853899950406271348298557124563452545183933389022788232056245579659260796830241899433924468765619752248916516279441705408375021816386243531004130770967597366920182961438551314867836424927520582815881034473915946800903724229944105631509650522857760825205767097279831265508594073196604024032895964613103641320082317333983365874712799192824003053384626222070080272624058499348062824061777759963098943275880933567505421453836370363381673224986950308937117556197715146694489093063698549824245337290963791889023770240756112428366027020612038881859142916960438420863343421338573996449920471011607865544019943712723124401645880254234797331685027518974657528308548864698732785281549381082552354005521085616531972236815797812526760912084887862641985290434217072979851453762527322640191048583532103398895443027730504381582556640529229541339181912234362698927033935547849070285294941765328082985461398014422831239013089646135765891281894461767516588124676486055857320334653704323039199625753217775485657957920794121642140287430559338964362173534618544016660381506193261429702957508395522758865751992319172970761414577074880015636782640761714511380850245970808577421395108381334163791121699043164428372202117279083587582715451010459744887660260825562371101711034340910705574921340997599966981364866824248473244989209726388845765146126135528252140381932200065674957361649923179341165368885175071840665173957261275591253651209011438553755003196444797314649394770241646912535067397578897478647277063888467715547837787211967963887603320583528422902155138344331807309334154547601258694891279686887068774299908924946875737288673622343338848908634542173286261293452869995454931128090970486760557714447714132195411361491781926814173712578727049691812908921859593764539030478581626800392871308800999086814629365247849461741637694773540518805485632383584692830449053395342352269716854022867646652383266952308502062373096813973516769554292521630312560956195467181327846219338430363307385406132918449739595324474619697974165386108844541215487707101531247217051707984511279764379847854133098416559435563355100343501236278662197045985013547067843578082553445853310186276197711366013267194592430346512142517555761793614985802933942148778791216872857380085139714806200437590620710826852408420156550263434438236542544106408695319139678198084337364547951201493072189862722972135325887166378600876282899415253392955606487341128651147129005289540315955034520941392820072819789505451305242563838142608180822732843436526628968587510437660124097434854033712567829443098042528282054828997183290611411446585795845270898748892085340330236508257313267573979863220395883560422570343933442107988072034877728198443936781343039535131892064105468018521488253579654668372843707760678823961382693846131002867004201290028184570315012370142030741401474045149204720209128403598155596406549170191495073612185337076749124647578050589674811966435511978414295576053827529233532529140808149387041576918545584088407409355140079721959014451062977525963696911028001238699266932692896437533546832918598000745583334656393702151740364763300270364281662961329475779340992483946183553874800505532141366383175541766124119912899470625719608808918302826555220510718705749154374167395452998657164547908415607172064483859529968163594588268225765093511114042417797845408478052446718137172978578004586916024087707985044745364684058913755029044034727962913952118912820476046017686501550000786239648031993039643140739663949150305449522692461179057810440839891803382669934944975245522689236482076450691541957099490763304314876176212409486419449209357636653078921701917782920586793033240378118264602964829395147550227476016272504854243908415932705726927133470252012329984591433149732212289762285105211408388208281493403332357220104979163062797825790686808236246079109479017736382258429322075848933211178872961407440748007156198044800795733521087222981110910108034826680230510843872505951785844129478982595675975571412392785577935867668171042867930119146951332171069432436361300601489194085204015980555394158927611575866877805352288773690530651942043594078540874886053855001888337330900607261699829502482448903428398184453981387718605738734720495045439395835208160977639004416070677173151545685920169329927016297892675127483611251084096228785089092518681320782580305126172624008072833233851459636959073013412996407048639853112434875226651788137528267541625475369870157662193851126750691504705736398575804906479080806305611400545157590728627647598183610554046260776883781677519191709182668723535735349412433913421174386250946416155407193225048905997382599655079613214095242826359911676919096133313748108137087141026462528123911092829361345003076995618072626356964482715098478853288948503238723667139963343110882046841633360872297108367912508314185315657112006064910395173078680636511652097740829705337871082856818577664415986653545432477697665153828608661981718364534856064691463494998547388191058798092622244519401042530948091422480084991696261152591862350715614075782633702972277725950555219246569869449582241235589935420950924430701292962807594899680430333182515376752042879070768370156493163888510621988272514764981383753349045023038102149526104648204108893676934946392110188502861002398833861459307060291552472432725858628405332389873329577362709840504291810588332434663584783874923295141313242896588798305002140601145252867181759465710844877685831214005811764473253436091336519670880375034307470312079922308479519820500857772542645955736047468572875950132984672126533672427524437018562435650205267968964067494468709819830287435619479791954644498992753267844175238436698051806909385289591108517935163261075500051818180647881252356198366360435342913829496294898174835497690007643860666971069823381566410013820391374691859173334396892913817457286562282736028109931798098682100262451256414263409855382272324990103963596248216782109600275451670349981642747906290760400975260850919482263098158299652411250670717013833234917286037621186226068077055410526403035731101183940378578648723243153139069044318389530244385894358777012283770252121409105271299986445415732585645747087079994015986307929739902567767441480865294748561050080095722174324113382106360199083881857385442666838584002160752519388250712169655226856034033548616741869129737185781862441063355679122372801695555450488113842202787841747072762080839283390101380880693956575070747697164171642927805079718227899394654502330238690319821025866390117213841760221187210446297466273678245491000771535212730649029016195795479480421982221150074104041574273397491374053978645164418081661429275223553073601893396720258887338847870069814926030445768361390731153859818964359039227750659449767875769182997250915035315677989702894958686042404647470437784191860257032915430212740929535099031327013738555959646141460634167613180166995412051423115407394642077682745000727462279050006976600093910777628648015316646625642326276910619799355142979966050213723721815149294325695374230582928902296585055131876197009392567815039577001605583169264847450521397541646360158563035708041376841665268391668760296483986287866655478235548791740207521846525259994332317750349362465952110508290572311519140359055308434310830988748733645986823673000522885241958425848952539338297192261467489522388569157578975350491622232027577322287052883824380540483673156853638638784909055783172048539982593358534726777481571943247344217494296586130577939132063782132477388857920551110450317620838384220776481254940547228201811167639892050537600942602344376632580333998915437823269934635301332004046512581484474253698400736340004411087058632240301032288387091010559056184851743736706390660255470207132893780876284336216345032325957015294252550023292650627996350494855704818592734672498538390139224254350578218818476166735833241170569111187179407673342594457443404744296413975773996905736141765607445384913545604065141756595114757551114861016751816027139686389357430734723274489327052382067964686817292651084833814787027086423646713360070865315105401475386770668533006187858950938415935750292698803565580292922689382058400377250783252043578151905268715327129914008238116479757971918021963316835578267244646589853509333345844866508648840475573879731894142396483238147564441119054318395842389895778521868276322116220088163913005559724024960802971692817856582770008480179842351371231183032911713603354484753561316774605992942996772748845058825520218917256036779074686668857293734005126100539083995339894872409410717419280439310783774816812375081492323012120618346027588840245562593437927164221705592773081241546580818239458063958635246643899410404722410999840604176933277628294337227945953093637776101051327943293549791922262450896019151624357747557321008651379633618520498999982247152425279652622090876541708939292215436776338588896152037187840041355458063210351910501207961480341046978676025242223933323210399896843231036944948348211896244862230046255687047977906268714801772433470741744387218124200229523835983418529165959138891790862388083540401528885490532099778667850061806961321777121186854173047163931728499858349956034499346382352728337970409004293452250714824755367047740490706900198136814252544330078348434317996275165699271861430481627306635882807320815893250625140763605477480446235203836846437689522224534589418328788563117250982110061957060494120300167920607870850562954605759847847745582102130414487965006647666433525145183246951744952666163869371295963805225120486708299074140111307127587909387177871662398250341981490164174277716608398474717434211876688115133616769445736967725736451511829731220796137788271854111891099510953290710569523120649983645068491599227515757010136718911095655430328970785109382318399261756970465757623581718319467095695133059816316226046962746687924167715432828078158898372831938154785949069535137918967828378234571498974389660492794182039155145468036355156443473366588977446061284262535909339396766123169570241428542902075366198872495091202459479947901795324528605074454783720015796062541361392621927413804998535552635168247746638016361178093737347523736519060267018829452163191860487293751200110159549181843221615746937683224532607585197293000342783443858644682858283259824677819823451088901555164908784726217559870936221264349832453076346173615094058220748637548429631798093706579341860606727141664399687477261584025681928759507758056069330140766112221903245434854467421933211134540771521059941390490430056091696245149951077315189113912962190865187886415194898361123590246234620782728289473681282596424942652755955407346107864837704786820464889734210733214068209216213590509559297336991441396200116691424645278624783127306270351247709957950486281712507640420822354847115941821454503735822434181031090217290127214923745597730937321180092601455115757883019960577825371899817571045372614823971355026667237006705609466798349728355877786583656905535167010658740309917318001992944233727682406037490045369311376978161482100060208824604346053616422927420490630248115207735190483445293342459642130065860076422774164823401825150260103688348386148318080241444722988988238470747286551038190378237116902386479942586836539328270658155789038244832123950342123437992752152032132571302979671135313542989630814994416001423599399807066567378742593673593363651770666675911114118009206243371099211445056726550282954556728684123451305335989142554957944699577941445759490931565599918774738675892344933501844557956079871490185774245464092447414564844678893136230389098595414971244933096355093367831126701214332289352256021083608668699939727985444167319617863740512176615500076573358888846728358506427425910862991595996031939531234286379364683658261521105268155435582408849886213728343814098915155443654039101832643574629339636934841307167100260282569478942452618283906222924741782391277645812176402149902999830937254822035318275899837199016168547511487304801502054074942639282114828944912169400036542373129572114538931171148891546465421838058867023662901168434254102865019316004562421399024714268339899362634859639102290102037737237323017732560382726043235244756481334260353156087307599283418182932173137216105347851260893228191437373896681636553857817948502357531276645573254519888002004540152188235807400620250230140410156772593144095651227678548862487125410731034518397023223451888267943372970348053483306953241626638477106805668591975992107872783491635078737664718935928716691565084790545126428683156438663963796010604316229609443652829356536443920770689302989422531902588144258751678345699382896190200931515334806004276094034688973753355758263305006435001885682578624863092249641425003492710495190202952717909540082776332394168895141925236376266597229752481067367349741448744001372167012646531080668140186798759822687859086699649581789288007457583804745772069179125052956981002412024760812851958500357080305607810681940853708183773793868700010483651701290640718125500160163967360229017611372770245546099789508939448844228227016416203599303683917189376033876143896561032283758303785569984200865629003444648151430175222371685368231596963949667330576153907747020286800167379680037320099528090603670351701556798184846557335156497665469525050392740428242417754721554856660447842492324054512961675695546838208199801453804452191603784182546257209662039080545786012118414774265624879872259385857055790759640892777268781423700383214798678576014171615343308763626003372047653658493302033386424655668636336815207206208996370710291982315968360718408027530849698388933324234824579634199996294746404705717110292119992871229459002558939169636928078274440967739409828762926997678606327016750038796216382920729175159866508343486044748312626087903047404862681535986107389680752073934502676727985373816520825446929472981973970054745832707915263187735226326117485513809061295750244782811452970875183570494057260913695755319937372415873754868344094456757126769029568435292974808515235781617226533968689437116668756229265858401426236262637904106853723496281814859201966728779355234910794219675084111125526453005323562796667513167481686062854193234455035270952229910451116175216863826983737946385180934578362713505233042203091822559027302112419975017667706538136872156845410692136636014103963368597311132082366638235743427337852631538662245043384503389998000785677575204334217484833381523391743665795126375964583716539166111709002326202435591346877116229324545717671041317230533386845638680698843110575907171361910513539027426407481873966198575723583366435517901037229821714506872813254357781108340477328436307454204748067007912628937038255977052511393362118016484678957711990376884248401893028416080883334245868157968148375936086739433372317172330769748320684728794403989261825047380045412957250926831054625280404660732956467793114277108299750573362530791447450859387888036356626919074489468698646227976846693400698871609929686472215889690943485705277593781116646688440583126066078253049712445294771585059595772172397420456736244353234664809832105976020024877921766379539422479771187442603578081302819859420320460711754882825162893643782480357933501925365613789803038430368382046201658488400591950668747365960435817479835784029057289246100685205956507503871275417602372348941514909326786307309686756181730164557895216829853838106844299208630431727491503021160983854836899462854793046933704205336427957817878786830760085451670476035075912942359788940304904887049115400336066507591445553920969127303185695704513102372530223007075730093433820640229462633767111336789337767451614830742495498009368025641174358855618018743236942029113151469035454848314640571949032067502283217315082243547821953505384150382182919406531087681878324234697687427540481559618981523584544849048457700823399485608910190869876685078756363059668411983330075891366271119868053076420978898979218739484587303015592567283251812157449993131734644814017042697869341210224888909695875561791378276672503954963231628868777831276625420959867843283042613291254465196681574407337685507254422067967531122953409363580469052442344298701222700234449950564448257999995295653354678817767190856411903063591132360952046756720856592551384583248280381764870236630454051637971865178457217449194446139015854172790342929907382591572726027080248946930169073291849959011032124359554503414946142352986347361866583664386219468084206770600037023088972210187620307957849301715954178844767393598054157913758634922798875618260324660148660213768861277556615253281111483347247198859340047962904324709337230425416546340262111714840739656690157727189262755782627910792781528655218621897785031901295934692454484536690864955283622786405989148319867938421166294081854542560956941161007108211694040273496693755313963435970509487721122352605367270540909900481473529185219407195000819624273832536410637524512024253217207096054228211228457633726147345495952656667709674521108722034743414116273457712798675483036415666317027732280052770095845116151470935539923487485130829781036559459531123994384554831614245828674655656184151647028967102391671166951781866835501800872130441439605439031421170701547286970066367441568538387425536978720891861233822581119139539658257260802532720714856680962117938290750608757233588459026680923324538685998218010384651285635563614635560393251574512839378094757104357948821700180416657746086312785886476833314829044665460222010286609388099834779915176080458062651297191495920819224744561378678421422777351128316031742807172461243173431402176103128073457797146594499140384108000441643537223027385287957978549859586750046379121741243556844597963580263109375900752315210933245424667761299516002046953757260645570155794763131638375816794969220167107206404179958209578198428310266132411592353837054345804239508284237314820985433240802094489310080882709447349255372423189795619352928825316637899273134869744930688753897098954037616621027780048597235693364057135972184919394636027962374668088941848331575866970636750573388132998355951766803807926745714493380479778554434662579030116025549619083944422208470328517854643128111282861976347668230360121087837421788512864432729249926290300493859397770156683094545813443843184043176202898508688567252047774398027625196187950209877908121165344167044254629890425948958766428708512535336156601370305129200672712081884820969121236303777170858662141862941434765478676083096937455233293972400025966553186073238620407392470107291322005310905737971616689847013140134444347337839626910234955354923548348972063281203815132118015228106856013604291510046555924314736933268489313263050186254402455497295230928284289447771564541829675175999030583921266344942139452688196546930521463325005541315587531165029531478351523488217598548966214245677890548353471922076641142400752083018961185042449032020855882867074818910403116193936291396744774140133871817018072145179503383259174527442540114190223657626919461471910611031721952830621151965632156260478160920310045469646170461192545370112109905934708114374456076860378581868336436787061260661544823486542483375000557862070649880242865124008446282849207024610639603700524127265786881880934277861781971192360652186865269700587353175157439771197639408451700481434429789808576743346346360120549487545787254987921457431366956904772923103963853843900219412919411689293820968735927617019611172964459168363709830991434816140352972856706045002461720030578362966102102049067110545020726819027278913143542972909031934987917666356081130273073657382003821167438389659390698074119118018999101794746105624660118570471918531474410769065457419090044094513618243334336079120304143539508607338815225411193637726313222653754720814680791025207579726455036386375716778603849928370050547338087538924393628328926502099911199625810885880511272312124071578156650100628045840012604212204333271923029889487368492371588982468131925007151680485147352809262609349016940482277602577226267925533536224216796663102942436936462029460102904739658042634815701284543034184671306585925236769683393683857844686449004739970648750128202675999069394145306519394180866889989749489208702971547449696284880541047004351019430728801359576429560858915794366007348054436599518104463178137994292888262980581804868984048174041396910519317215828024460582808336350885635995058017099536501504191171315477882566141163830404417467578891902265337329881837624464127016656521904997498642414186386884089701830890804143071487925402830254537203335756279201470565670546500724795714619435666021614685740588767159495970900366507929048170359524827597869130631700506999887299858448754901252081484843104655975949254427470114023447405946138030704553547434698910313219214233485208205258577219850594792350273205018555954047233660116258858806265049049148705495956306537212438303940238422054086657738820687905014083502706419710886673995722401255197914114743905326994543490303821819967432615212358073069713075643488938948491173389849375335326137320385897657569887932868816192255578918261950420199427426703619501299985843250983356944143832968492869123374070185675014220406823144525742931903985861421105544724187120365401076978935895005375621849320942010974370140713089590445810609747789126546409883107842690667678389210973129153668339294233404263205075079260408685734540480621686597299748924713618028905181907438576374411796082888059732419683234205553498404988067311246495300472027414062087457770399397298255227514798616681076155185655874500698074035415299349950288345619556373627771808984159346471290342344472640202892060652185430553397852251080284426560935760562985232061394752476560959244755686515911146236104090558235777158301452141604667861917182389105375677735609600725590465116869592446929803736980714719325244777788479756269428493158110550525432287024123269858125431698462085703201307344129792588767994404593219007139193213802270243939154657251039052738264483240710589259259928826392282238526752931117792776262612656891323188720356821798087981153864938246748866435280257492255583241736769381349919569221589957416979467226337700961255191896992990412724132152691102731078935440102313260759563207967897027473263074586840287759847256689532089873765689029902265579569277683710505503626663882023655268028655635729063843584951590869197643119293491764171322159808092253786729283282600677058595971549017028990058722209718626051119492866287203927158422859384246847330617805662158432361423315361631184829437484780896136061113054165506495843159565034736766119060692142371902375858331070489482937539634385918142142232258553096241466935237218053677846644275001368095402939587862084240844385662357138799329727934092509940567026212883373683900245652981534642522151651359223212724644192795427665316519874025897880508214052681123212198271163724022290573819739314957993313274631654161907580209177782172163830755050329386003734798468630653513086080741083330817098549733848512318807623370943180575865129525039755550295317635002261865446207149747154734164580338158922962663781084357390664475853882125087770434456769951726058606506285275655167226326447644942884165424258300357125883017780315276376307470552595672453015918578484890969235802834988824874375706183237894214044151360959339996293517704947111371320571793131864518662641941451408876827468978337485992697416394304759915041151465572508811537354461838676973515263581753679404141676166519780257565992289152462936122727201598129463034699105340336327916768452089258978256069886994503661093693419193066013442423198655016408323217673460117695598825305243510721621470979468510728737107162203196277836116965398026804287807922308329703223838481907294896889844461684526842857160723159253749483095398063360273138377681540913358398085193611272933115707873087700094370873381626744391674790456313209532680724652875791301838083858037631214531479056888860319911440561478962981854284425415224668700965988410013197216996283626845899923493686706259009294895239184735866405097265804520372781535737907603216560019151598070048345578151066775746370233924643487098555293456699219181200643870310960293102772907182348259406887850570967911680726429618912562058677185710684890020352073887340147413644143936246369602239286178072054378827281083137643396314061243127121232695685249413883602972937466011141380731606393791050931175476476673348270766272784261655642199719935037597658350064554360964743381879132352536382279397913706708154475700693438404707186343678059492628386121195231197729192489191947082057766504406417691875831544834770645719353900613458936876144190371807796630837010612920188351064313992912734044668476853785363320570564283088781516176351322592142262032347761889802727664367913883299266378508619593583523202578585295945021965279247643207306249054360851183257296253384247128220114247234339718051587128356689492800033021482395930049130521288965027885724954934030151516935346746055975081658087036489929618714366134320532702298786449384555817987809843732726762164911281711666862279654146282666311354338104525287872012323864748994144949521073408916791907506787629327615329850090157900348267374212714006840255995926827294930573636379274558400034638875943596311103939674062855631723910529654986902758038339919017144758752818287839062011651049697462842585145854774172290219254866995216178913515661033735041902055669036920781559865067703561923815675728392254417212475416842414634264516030462046426642647479002228787654786085891821250953261326878970671479517940621411276077215978874826380945104551229326427031233253137868073501114978625913791228020951528944526394024554230956707015495422047359734325379153834878238662332577959631929502400366667881838088356059861473910986556127886586145627396221991520469091616518647065460427158465166811385234337482256726911171391639592465075204387329852167290479373422171576151697062094216877272813055752172264486432236280401733718388842299702695574582610494625593306682046582561593236263825853426620367871593888663343861224570490794405275499217892526301998722368311568322086057829305703706289619603827870922431815662292771648430100999241585033061327893999853863393454444875934443839011955782539553862110527868539703050511970953353138316396347966298405900469139384601681473650326171674784499873693493193341146538112676693747804205971028009065450214720519517679698312370249375823364707995862702258650942881486351380320155516648057258375789765259023476832347683727126763336524997499838456701419874248573203182063861116267605268226709376397245206204456525310418168081347115506765293257728327668463073510399694374163996855309126773201915523366752188884576403579047045937331767525697473525924838096800143935789912572122220296753853991609496135128910267469901237215615506975460954744074623666179833393338936683089069543889918098553730618447078961434335125044967212396549543408826758241779219710693483632386038916681162006829779234434395260736804486969454269128845499961718872566094477676946132190907559391107998102888127804710444017044116236716566944357723174200252883821024475123669381824342626850583704552402561533543568566036399235583336615135662993151456422875422528882080114743599947865200060800995074606903808703599811695859772879582119460155339545716089615881593635905565519894605188475526045046062290680414922784273367060844774621879488513354600051041597084681864194887128038573238726207282721490284130129171065497266208508314859038900291196066121459996794526024239184238053752682505828939462442968413271213854767461136754778818903137987405124317286974938730833608012608216167267666607531987494084843229368943289604330913657759590134985794513710193420811686998294908526637409254657990689212465168205228167655052319490397677097649695795220153211464611177107922988121273669656211669353107706668735435130766072646307876222041550593374338149278548676138528846985602925480525962907994508450925080150326178730308444611499145558266676835813061303042405640348851069649438319703292749912287543691453240389984908207483764883512165568936151897830262530788489676684616850149518136648123084233491509056868167544376267765931703811841575153094247253087444793188357662991742514916590032899006381203163427288207967360329981531584738680926570263420873542179597886378586675275430128804716275866044506895264026061162719431578646817268726773171821458140969823975068478808071000608437961586162991566184570753917580577494240709927384326914120472712064999666643470301161711256354853617684367200243063917152090028655128793628789170256728392356835441701971003779559200553318250076955709693567318012931852065083733646241740638314678303575525319413346182223573496237601573622893414835824788793384458528477869538393332119322127624534467697174887479913489034941474732413318316284022132905485295769001812191534324101870546676048956566350552297363924503161531910294890717444070463423823127967622959312147240570560633052463371554294370600725959623440604112880072638411274285906730842455455154369689045876073675970205875369070571678228785373014246012957886073377338379680308886531163595736873632679943672626079413474656260281560313096635694412804722900180335354557992055527138235061503267505577933610013727301692503998627752766849320126829312426757474770881938141508918248087548495593705529607430862015008734953913954039706925612863823102298713553935588850928299623535084607064390022070492313667435934672360761699729364781128312464412658108420089611204442121949370306993952205502955568788461167450124652652269014591292197841054428111940613555784093236013521808783204448929100725034652052396144541378003687860049383880962534919124053635169369801715701396635433154183399693196217385250699867204751128631751199880377698989389480361569217457428583509505469364511830052261501547459448873402648373595872854504180455263713072282068927399918602815057591478703749221463823524238859253974555088336818434518585608880570623859044747809449447379314670228352018178460798807008433909329770309540500279343116117175651626152577290675609439407879469431522870396257531546707296214011197124853661027051468107418551247476883772852611670340060355124838755803506089100889961904654852147423542552280068774594276555747477441906402284880239496552295334645545531112138603975572844276883165080926836244722124530357372427363434197274203854358538443894896657601065467629984625916471730312108737054706120774772320351031251488238595103716809468935628835146387075188378427979875896509656646346072917372316816590661611559637437240792305439112497605030624158776137211618365275518939133928986011512204866715420368276547709653124780670615675808311692001673097305489756234695580962427696970251505627007774926426499297793209166745665376844696754938179188946464697007777356959637751956829044102112592551183224864976988299071850159038883898193493514799265623813660667944260687231343474979925049931209525092710416384611899753504479723045993696851119315365777340266257991326935430651240090617005766305881202642501362411199808889227657896458587602365426277648009384222333879661122766844818474863981055556717898009096833213902294682360828293892615461389725751215537589122289965938644640048810412178376797700051976722719937794410214910820055895698701999684801080525400029164926817811729328860755482185568502296292787569171109968614811393376502902053437367886232213166780941073928859282229097008906057236173958171383357376088029804700466717156895553610849432419701655277679896766787512526003427537385894501937595061020072948091060409406471365171131837200847060644790582882222342993767911028088946169411838349846949029406029823751403088096792866555413220013262316391526989024639604402967179425095065821647510294909798317250067422290872048755781795495812539210933438444410072685823793819270803623432445624086793706871390107381416216106139001198577703002707499904402088546003052337344808667194269744149019268351669157798005140880066938324216260741411672174184033718290993706422838651646027765657038998643857159249024367153436785317943329665727041052681123139938163031764981099051498979734067283382750297285892498092726328231620159151378252452585854190945951959756397976860149824565891636755938454518551486599622823591407243103043096337405322699387419018501135879705304090064106329549583374824194354117026193095339169219629806224271363847994277315202935287849446006683826243446357651455138087160798067943549653065706057535919169296772752681368747378678546213883978082395616714311446254530845760575106870073633377650931963865864567261753129278685354782259445959620866470674652186017705745353920456956491028011894491398484431303502517601782542734685755086134373778565142878344351704039539489308109597735331628243652674639788838104368650646172607209791715089546877999836930479393273215428979558614781866145182299901507399280482488981374976540475596673373341490024268202255883596931632830858792603194040803858386404250395957186911849325490081266078747526069158526035067922727643106710747466709324776009626734742216474731116197589513178018469887148377300057615203499193112608758314442373165091702097992924200267087126426822397957617177829015111770796938695670365577183645695840609502084253470167760062971871440073457395185525752409079050060294101389773371739627201175564852394015756554784154003471398676753677461235445406870800303231926166246452542225414800636382384787077120666942428073202681177839915650933746214077993413154987861843016611431284553179255647220640179089174372718893250109517260726406604718347644999681311087191634547819397509072080562103511670550991410333594645151305486052214563937356904904692990772060944872155808212987779925930077210791811290515722870195449005582554606934817932291571446839666697415845478713355332396625861452049233105738005014546885635929500836007903275799380656417717906968978702774180099007409802642401386356517895271413784548685424335842932835412753580637842995526396468337500097348349960138601254359222027357828923694536687571393385729626461578398133772502111091271058705577162640512164932343536334049786645413458482505834528114097886949391934140533909977814396114200695051407941543922813629458865540298071934076627380473115819973151567426578517949708538725959479407187999498693765361847801168253390493444934058204219530146281611323964664569287113098752774838552788905198440834639571396032929218354956623951246924543370520267309976764076493791274795715753979696661977969012191758674575277639059147822223866769855013847361501165824236849492658423545789807815722747802743018693082212948125145823137098099548812364215205520500422026880373189859704558266781288812197444489371138134020538761982015280444506419094292155542257441014269852995041337312292875699801714132500856905909400190183219529407224813203205121958993682184431315379721285130704002495019243285336771930953098503184752255591799417141142225354542625465903089155262580695311879693289937414446258863649673874577648758796754602032473937238298329190929814202479273242035304624969066298999694497254540861495593641120500650121834492756360296320847335429923197208172359119387489335777300238404469971822207095523728472589694594367336176666121973423212158336558665606696361011233864300264146328652563845979537377027135529896875747621591181840959591684840964828648512639179979100880396249544002552265441788718208645466084665217509063265321964610755557033778276880949781884678999876369507574011884705252884750126270773890868007463144441549528676047598982423605321388004837139743783314614416429128439447157555560259847172823451269513279008509391640262582009106898113586335007334428570178859961988935615558029201849134649644752811373515850812129661990665157527960565236428166623596110272632063432549181021501346915230533809019202684213066211788806450792407035422712154546274979715352576139338503652549748532660998635733379669643541031501370634886335442431327731833463603341077732962707408717136754458779990012987648912007098290507967919327367104789804145867774212309342997215485662007658590569098442551380264627561620993784963475131846972733839663367305453816339125179175397114822462156067826431701717604488561026696870956030136527573709838166785788272794349783160434779449123268357019686270463487706390393808273743799230230933193263039243588216538507167841238438164535425054221017368810219686651419094476531030715563268238873681747662557153445341555639472592040507236394282398686304115449794218883108890898669133144118425772224408146824809139743771332484180262267604604642551784582470890190524725369165008494437428097375028072222719522456092096977818705757435546288908411730056748533668088030515097685511663319943747221601581039321397894206800839050315865209502300603936758036130389823626837522072023097207527426218533192082928756059288930120162693318956089092891610823333057244728610338403407091152579735609963985349372080112015768141820443193557943909982422961992698987081908897543854488237544790410106192477525487176739370927932674385882833237322746201655920166237109408420469445846078715727259977420290943587407196109900676895688172379110359861941243193594589199516862739161217655451757732855725607859521116779016428221502763588248720182102196793343967938268691656608294564421233989004743452777193741095498826259929345240767433657283811083828994145814885900217973175061916865949750383347475414646990977145130756108737622196558902947840134014589668105687566066263303295170211223297363259976041063830130945578312230655154317173673447816206412475241766428794313983396987419436094009056665845275655846716606318229936017453216811982765937548022250415107119107856634518698283051681554315452411906483923683815238733069442672449618074861624789277618392087656969649807506326618800965434104654362824886697085244400206737819058795317135019907867242608155969174518957689085807677287051124494335155681695802174098121352605593262763386270791011748335384300254267400543651655960475445984071914531013311455088783209855948456287192037775065003019987100773213485766062527460744451950465274705875504949765720805355775736962610152751326054990273088582097225395426551436308515941476097783191747569832295261326978033724067491980695522163067218699652729112063265145772794969379366897934878554100360086473447486061316344868304138930963436024963372415123835044137674541031242621558093886797665936278470942948436394103490631975313393518298108611222213639191263926034227970880737384004754480067034580778256890638601777013462156217075726815988707172906379066829337762894284159989532526619709374138296909646143597639763045602729451342796360707145920178886124446761850993222134206411226366995858750613856557054158032943462423584187665008630555891275195659335560464041593469223174889412387897315886934360519749367161947197381299738603301233023329134707670436418362738721587713526976853714530341156361586034597171219226015449144541002477843206471801541317134440981102166171711572863301043041779326134431025591665124794903232054377155295087440037542170030505874858731247180266903366175199775153320059618122179390718606637312041694570844459708958996284242717968694609795736766368900759980706062547901057441434792871408799002837721883701980727185334983051433330059432085809536743686885009602525699614308210256625540185945177186363669834057508013869447262387818447223605029293927894566890607321012250943880071531110758440329741247672817359264848228390146495342250984881493993496686627535500143527202292605161353868656581733048707370005667682412383604236528293262106874521302829839804749805964420445740253722535566282575101020389070737049681007673942885374441216023583411622286323288260186228889531909142633921292199224010806097879542373278917685489252185976438765650472705707186839065458773377363859417582440659879030477893629071443751348699187687861173462353081369360033514653758532300202230355421006866170668416724134953581671502702604066322846865288154909869248005899015804980540347630342840355794016086123646704173501325615006343234221060749580676383792130670448571759383045602645496348627150875885730363074385920825041143397635005025501568665475369407960682734500391925665363568190249197210336769359340556656403459865147722477612581113954950993860346930586330097419681519060693370941561212736275126440722264349197753055245659688907063135616231009956863811110246056358419958590055923839399426382029412303456478654117972576626358051774144555633503403057267038111941984729191505931425900543369248997405083215366154664089629057057885435744553013690931971584131760116312238805352851603353966747315411090566548424642165644830151985691426410373817953847412236266682264804941675816320187485590477266253918660869444074907422660484418944513802891732116887699856927072508556460718027177291738736996035975827227988067191502987307441325712407661327010970114331734900481887103980609277780227346111591814897055724284668933818440269362398212852922740046187751444135486404398858728645022291903924820694480724975582396187767160507174168001358184514598723333194172482581275476330458677980995183288001920884244202446219074960715999038456591716763699847558511306621682114304057236346731220478496311833647009156989214391154319419834045308736572058402311151344321088580757881054265409950759367181355178634828211590902453799342687486671329765824574500322367623513660575065680136242458808303931496695580289558926425872118166005835013141229283263512516474156015057891622800694237288935506137468938811735120386045762878976768773176575538779499065853984570004433918862614460224624681712658965625420662969676924827654713248743469006609159880686369136526784699516687022453336319471318284026490952837052108483173251619812926391619609055575199982473068610535242100930798448601641409448582254820003131360114189244555305202877196729750751153869770816615236757380482239133074021493136837693825540873186666928518903147734761833139594050866262514095643333317182769493689956214426688541288531938526585793556946198054195191374763361797523123477243153023471895195183020115126265966610091912710555773249714577401598553740642402640254169263722706148521723101176563360637524193613718906646370276609536698813895902731205061847000957961958091298906594809319801129051095324390831352330232268254842101518832567719746246198854003161386085127624373770428572206603514568296704679877383144477092208491707206936118970743859367977773908568649736051984935785658301011263572266554119223703142333530245463413578520784030499226621315857870697166227215246013790938673101269880369251580782291372053861840591398101457344735093668220007584026721342261511311763057184521424888248975264952129890032653359111590859491032742784752863262717500708455757296746518431465843119410292559394284320499452150101302094228279665150590577228090492154555803562287287018000755264667537764390631438369565188750379038194511750492825716282472310157475600474308735176862177308068757298395457282462731658885600955627319384808600913483817744585437697589745392022610359654500286767842803947491175216757215234275677006408816462398456923734528945465589067064874807154994393062646366936183592382053646465096137621521465763495835656077670251506001702677526547600169776378123028621732972096449675298303339798355704017259528051117804837287505990654813974648673969119288049386385722606394463489561028062462739983163944910999087831217966302813924140525018204130377948502163240020325382493548693000964164938735901450571467552171411562581141006454625364628831713794065541172040894357555156033424783884839876935481201969522951714971115748748682810926795095533250598709636972338609791781151092641428000217309720726163049784674298803391208871719420329085783795615660236091622501551032746159592989029802739928533578594037812874963882749456461181675948686817478554180753967776292578411711975524622686255757388595920645755012503942675108114544242997903497468834687029716631600073630568442878403081214411605850454119456339192063766631863849084020336798851108211275968027935092750144926951961146328054293014433050903616859498853666988502321659683998905130763683605322228312919878656274042552627770658130001150588450679907616528226458210968184238298446230200423735880285373339365928108412782237952199583050273585687113304067224245330583162015003233047050059928598215574536918269911604355413806323913187836451661129666080488722545410343857995045648381542996838766053051113733413796867793916068493760807758807750374830535920858447688880007888830541822122130507885232657986441169004156694043304676917372473106681887774276891651113306472580305706461218264341229970764518379884205157160839693902026987378601204020524866016960102533113419640109607838181972891303756921450563422559688905114979090342176374406762339780655463969631012573300226722319592570315609092037876700424126631095018250442697152624219136431611740603666323254407664075595850347018731204494211788022408751023972544906854186857182088297289114596565103194618206178382613201669088755100428091555116617142141769853577249059053523422714627774991601661333046423981394543841268754877745629504331716470821236759573660207898730530611287600406904900355407703615788218834257677201612637589463057759112470726021295918757856064860034194997982413515609640573562631428460374351946848121325831524434017451107808512877821308742715949830932852929344545255778552726173816316780842933588360399831694393049642332378430948434464913398701052350364677959435346308921218207858349105993586039142996401423491058036676631149907312875860189092229505459057264449624876923616468404921872227438738381883344271567519697975449834715599154648784278393681664141810977534875776537227932391812808686389904273506564545728100559474483274656010434709825534859378220858108800809491767102771583301440108511723730608867585357102354724977514251225654290351993835321344173797402115848959251195251742004528759192265811792144553996788454246207182090651404444559891812105947557305076988966604782200440574149913750893099947589124840678765079199381069644815214470872214844217272805324938905848244023993846096387059649232209160191733533929369486403712799001453006867829947624732744491630220488508920240250224490570170141616372817583636420045092507288925312627858689658699741582023852111124739212109459439020323963496690154697288900564660204651108452025112876536176045731842993913662289965886312080440542796245918782930030594394488222940237752367761546613816815689418488241462695270198233298921249300850105221180231861458213892905027110114672299647380043005415759023468283915511672156305374536257610152110564971030461174141695649034025269901719988141034283948018189988305350676136680021771350549006272526431021041120825741990621521384688138082244278613606036717180287895934771890521393234520311445973859635908711560521870467069018564195379173823421306510283948525416407567328304773898483493914058197195422651101632978670029296705400049269786374275891266527396098521395883323517156094621605677165497340246855725680255223414112222547929905000116478461872317749409274155883081015928805180067787981279466173063845699491534917924125203140625494089274446291236751151526249946753345987609514434603640189307448772406517102005298875268230571043094926608071822883537343896714282807967139653065913384960163354331641654589187362185785977648519310067357403758293797466310528919082445563784485799768451238655924845278340077457317750962967632633506837049795577153796244076250501200091180840083312184772075016363921300513893289948131658839462518977350241811895075118530347858481629425748702329965809635125267210391476834257688765953075767098854120153844269915545070271121233982105763580275659826246631965488652201302642158365303460094264495615215648976365946942105118434229782120291429792079732619768984876619906838967891466419970265430877405572389287170020439488613110470743835595122394699675838898370450986613175850022152565995133978274803786132138689719428704879549470929952776046493681270479684535382233210463403934958285195218560459760619868622686569278139488435109405170306668797969910295077585305246632573656554984476233145467845807542904160078531874287297148490344944844582265222612887793486848948263535053023944106639928508550781969506243501236564550024581915724622090097755130980557259417913826266521804785734941003872431628952167433040445374215696643703504614052570391714228894896153796053635315501938779601323716493449695145806574495472239589615711667141808374372983428924545750032037041401077602470891049446610414787021556384263120809641217278114072530938220436155577668864312193251928266182289048104827956016363901129692572643014263853303041633747767003612936302145683661419320109366850756917957745248677913603763248969370630868232460018520744732845260996606138938360614213348646874285140825756254836274245712380119273569602756415548756287038585034898651067750717691493547223227329764600964142161885624453916063408332433625305580744428875290732041907538437503500124150715046734393165330949540305205519584030006881174422842151208639065932528736496633836734649688269069343245029845794011154266899768353445308333803271568516877093483791219829677298339546383756266059784768941958775134075734142768347898471526580480539954244030829234928025759560973164527439248869926474956486160024674406876747215831268197899945450436511927512931757939910254149010725957439125561888559884143550786996851836067620911778213731159225401646820253159232252973939374620497976330275530514289768139068401879814339804991840365151219247741695263104820574103282325346095866523661024324496779907201233326909540533366468903819413451640664759724766779332687087158579151740092225114209161788222093140459984795473394150869605089131547421234741207736407145872841316248306151655333107505710299698622143578723551788538265802135783613093820010119409739474954797202123366155007580253454301824574106154467464266413539991316798036995133990299780558473794347068987176070795581687857877476028196543793240759452633764431717634100678426769786065904597571736624204935887564745255135200472514332890331681930872268811039190307225613667145194681856350616252398465500310124778788870010601301433013042419684514886007469022169328791235689303244617095680079596514448024946860190967104378010325474466617598320047720780642105916417302160167858352085558858214728729950335161829857860663611729940631750739663097207359339458658012364464259620854028751261731504891582711522954238700051176884951446000778933102328549861066369201978908111509593615463773741660676279474077780240568350352658836105236433473614821438367910083386222047583931811997432448913931829330586391994477086001493139609280281407579204204735986241481781900406243072795552485161701719432549769528062002702570381894314239180728901470356904689931467052647919683819211649286968911167623636465015305218013816465801478998651733011885151861252590596949781162532328659720904281973917541842905448267762020472906147382474396595834503848712418601471311796151484761694693964733896387191668829332373407018921404258649992594854875984025935924934710791352088462045201588138050086070808779324193305933185154943339749947304815123122002224096995182995647285827318543061341575383475301385659664605977980866968693646899648532058778666976016712789857867925607867268239023526792858171392362267004948726247276242889635405736365786773351902897919971550023629665926594024059566614778915370589587386464820167953596620752066196836429894117420631242571417375644122055217032474030086732113831278234765837794267925753378044435025416566247903408986769771602681652245299815045852927544796183949732212653304713858941150070385401772587764478407342125509896865918587717701783452874359112165360458786888681526480513981254520643677962442077510826893538922176152829415971015157160833411305261461963718288376956605203848163318467435248537001239583389402330623734079361533913203309638986990619453832073950596529879530970084399996956080009928451004892545450696241592438493582268147217300351442682297539794991734468314736790508077337380350698366485455206087824012466845417910799607826075732964988242076365451654438770239433023590918098236966417953549646180760054178908409954800069562882968328809165676342535362546046800386556557715843268507824578741461010973659449695655942974923567324167443795764011759677797240467541672360068771164069805708651331875603483705020238564184775294492930479786628327126969028646800652557211059073005563782568266409379160704731059217279488652536946582275307451870397724129307878997826165253548658916551566034702578306386430006508262972997594576518385560192617214571031088857729707740603802683989376457960154093407383409611434692812449272294116208425720622535829348087054478394636953984800485234448829804726959703729547358948846752001087814832486857888548117178719371065716114467949345801631437625756563396065033022361646062332444663737614087796703410474420636412836171311284885473231140612598680483478894367583684904158665853331019407876663172856045786230476797862645762998340286680500199034013028548447261564106659077583626900720100620514712341710552565146309531820529412432042734249678487082132511310954064792573620212995149960987034215628031684079470631961899715781769660181656392319535878212873195511381445794665674369032990121324442911130533645733009111070479462068016456167719974260761969581535019113330565129439083451621553726488956910183607843268002370188601161705177699323689429312553864284514888332392135193171588163527858326409984337358426873277645845200815235751719520539681535203364535984733460996305960199372117597041962212043612273056800660920517366046097084161570973721208010863038702881005392037030465228401911112671619080293762861742627661449331477773920259257288631448386456911284903200070462654642877506786863188819227798752370000728575665336895259928798870993777036708066640882875897720443945428941996748682942824403513753524979630523944552581043234826511900150732135119990933478649298703652270928402951645981962005829809491391745880369519235920855634794512350282914181385380545053249232658984971295144484258603687257109184778264126136135505381385686339734887803307470655308844410246945898286153769952774653952287923104757633976249053759061732366705895944344961950953418260542094948568260274590301020394477079088452999068585331348510156708235122278577204524708739544560394801966050085372554194212715004052422593975491595186771345482999303234833781527006733786049249558124599379989695313531553075138923531126702836747766155047947266753577063712583561283142123113346819569674460239756237758378433989841650723225919880518546205127467044215461541282142114183754801147420864144152405473171887161711712493851207357473217643185357976255717949810305091768177060548328425488720334577358854985155627822470738086303568757681186476512637097402214343383946237237431526360018923706220472083935905901490278371018924742565800706895723033640058170507595513330555774364677165679996233886789374518891060393034917696038546535446596024140810974976906162901992320707681328065303514467755146056846404930473067487988871897315702574398110739881812361816868845134143228891223731446065585251613830173668480874008058700876940015956360680810839286500878677319657757926225698561590252673161046003625246919005217912923339658436740692202636471118459686522975207580640714908119002570467005970851328799127293955779452995657049258129085469048248398644068951736458421390232199254586170798866699372074590738405405673771449799672415071182801661419230343613175711899465683978529140492658606373057598815901376972128156638056690876917610624157564841498721078829045487760411070622065265237305453155365509474553758450202404018471011923580037079232131670532345385528816091164123557836703626926763541538306177443052678459859295725866220704152034513648575632714437546572261440264382655929093430713171131005399807025821096506141337421403231679682553552478975210204376649515588640612116223317368993135112956060006522891166018968312347697448398021972180460260951706417441647531420004596421597421182994208715007858030257185330403784501834947688880688627111218086230689457051079933484305110041718565769954186050418264945554579612602097294645910303538284521093537140155853549012626294919519953902645426388008215969038198482952306223961277379235935783578272956788461739848757130859513816228955719056587469793928404631534150028607576241978689689602186600991548517395292060822283816216173938335113148214860991484047990029890703245011558613652039472637322574671946632765229935337828619357019887550732714146839678693705688247454340577094339229007821124115323817812728006350460279435360119239803523387746903508316730790380610620295223138366924430701862852889131339365309985747044114664418090733488099772172468423976546160434008423337653666838469665121949325420767555062786717224891410749829333261421409737475668511753966596947062031378672488495274325894072589521891245661940690313282503609621952822288193916096350385141810905304673981203612919918629309491318479515644762800452746211630915045189816714527098999623239241684559232442240933075411110421295820170356534573553855521576159459907648077710878119863516253687217196510221456134595584609510579599857572763608113914191526066236351520271414483636751939810828620389852599132078541554457221713991933443915271959436075713532344715619351748505052443856653554801437802375716913683536743636076302940394504497234527860118124076537230068245190572859476789950928202556628660436275693415457795387676948065706323284131562498584259297878745284945419900445060518079385612570966528262296171057614032191319730000321841066164452249407842063374501514695385107919695834095940731916220384986007908962414246340534578145235496565328165540692530081979679664615024725617663261092913842856955732456975346977535445279528243521120443816753765660332032032239271487234470656290118124157951851331528544127197214680916292583556000718546192644350309370766485356260811977866873530004720832960680784312099995567179700379555931955091573555040033370161890363967866610214009275539301735849520878231820791400743229342489801368211439458173066089672805867497111014628226726988395876624872338824717148293107951462224014276251037136879059883807134510372775156406067387026067173607278670855477667931192015785068345655528711177682844588456824653420454357514076815260908429554934058216489537013239552959092254371522509002037157468801517105974646835856177377402936518883007002053888497787313589649142463264666851149803579943231270750298094554510453981516215320045213891326797466234113988543992793262700472277453711077881277858878438941493068591154201153566708234966251333483884765538388727147930833658852614175864763408759991916490432770299746202687738132656366100911834635933604938740462542749467626024294892401921767878492066594830342598274907111546648167174613937717769454051586912810642817595356366447614081350131523716795872912545633224635638761962745438775312853268218808858297388276513302580128325876436492327159018849708085497588610057025086953972067427145100054508225465258860486547850807441374073339145178139801334508036803781460448450762779727529951773735668088234420479651609481700790953892539623369387702086862076904038991863177245659005194645263688680759177864441161475859655878109743995726850782346408626792994118797366282790051193523886399709794755420901223450395157943845674400456609207810347555505108349238144032626014693641814322394895485235875488043444306909384094577985107391372251467123354957340312249660799612407209700305629674814781708618357925350401972307009482527939723609564472882374358064908182761426232026000197444133838005379967995174257857248648650642230793604406292768638474355628702544470992551746697011354960250935808081397361178841092601674004170855814848732141505441029659718846041351194346718878427123137527146776604677768379173670148737521944826873014340717737829508159760058959553248916856884531664667474558243958828073909404983673756554612168951245601678775974807784208770869678422081344474541186809367997747087402296251739270810853863946469812062815368403621807825362074294938101732980437511567855226521826049664009247913565161738824793979509079106297195844880755307066275323943923333021027873005865376042397619294605501846946660334008881181758142909059916648480635883208470812207094642681908081093763050131663395743696237661031172249815105246909019701608879341660115455379897474597767448058077072047953204636937148142546457683289652755450263369391200459533126390156489494148901403986823044505032691808642137547194606637344787396646799593286268549254883957669400938714280634608665124473104113220899693950632169458645365863556218547473085958812873826341809668484695546698275287761432576324676617811201019909235998881277387753099962517200338486826582118404533783515325579073449047830175576668070284683876107467690433880844686374018251890135183382627353684932746383284074265088060606854106528225727921594565494796357262110181535728914039198422965812443668262077520199484030118424385380716696528999930304820330965881908584212660791146894365996427894133523210121735266395549515109396323920263023179358536980937753913385711275624978675907977214029779321098254306306911971497039088148254991547580212145631964052170897719600626994545525736837579731873493949593741304370042105025667400711193713085339040584810247990453625267093721752492336569056445921507474508007616720339596908879054243228831851412759212475805880731512999399804268792853853401163660476409607295543846872235639363957328356483826432020522600715124118260624386778292044700244872153439548866576959013763297357946443680642884761347258322276230231371067341319254657423928107217032403834026901512298875348990769189795479843737406855769842655986553929986259586625260910155114740671201203555085431997374598539734554805110014620149803677854903903196801819516287686311200863442692730241485795279732342589385059415726323237458776311127095435388052745160285962347487875755093406601659909216672843637345351019312751668578293863589402755216974243267930919346195357757410559822649264451766045952501817147193570114826448665972205270906352515001707019099184634542191933722308085241734396064455170760868000221597410393878426770933281129224977973728313583887032009732550153622728816012692884099813652248666010635778312584279298665492051374404193462574104037956228675279920380903914105515077973456974704607286607534696923337468971854780532347971699703101125664688188843970116077312817174245347087579373917493182205801478134325477143670223758338517379301708791514111924495814532120689677425947977903257319092894267162227660024341316316404993480969914444318483248042139213886887059796151722104479426045587514628161084076893921120720025124812416635126224019140615014834147322853568717092600905700859971234317811269060536893107927055717927351367687522976410651014847967969966496747031372306306769179265721829436627239403055227105772965284440135241509451698966525919132645837887303163212551224544162678367027577294812190634430869734528713936358977487905136453442060297401550931860404490702388548288395116097562059130892117828236898469041707672329340296905389065641463072923403174520839895741022840317074909213258097348478982481306946048158154383874026694579417719471475652673569811032380773698818473651384424296931797528966012382167847400463398539681498064392593983431244971145807836868063403534402107094995791912691698214737037896971253117512739719710021030833560694242038760849975613600178384385315590095239651956672805504353949147129775016407291176425494039986231060738124286516838267567753613336123439259307821293701026329234276938416705399710804323822923212515304170458389381950935984125355746574140848647131031522689101611009213944382074298854877097428926815997606401755316325502642710609721846324309676049250978089510943411434430243832876483561813893922877257726383957297370717986751950737156174339948851865096183291611252428114544386814160555056347787300638551776414163369919832060339414417781131052998454770593207239845166674369619948620737869799242471449466546240013766926482432400710048921008689944727970902504106271489810164644603684971196558448655686218032347887037740709390830337811943060638234129049636369053574370068981760807456060947697803519671744065538251396500431605370994444359477352364809136986845600313534234031616413491485251649291201059019851291435007277596839172945613011679548222441015334401616989600298904065286606229754807745228860468515168462003597881822037829842960356171078972546528954325064904526238264083507287392438786524842330085066006516765995108375932679287170958413795884132791875015543294819758052670243877764788259078028498787135557080218459243193181693600435840598673966804403998907926931047654181561888658098774962771145373452361026796011872161097759503014227829002206050662003122630682349029299118692999035548963424632183038856395114346692299812492034532520236895961287375662362092712542555576893450308847871570152409980364376101595076798197486223786536591505195840129213870918952806233653682266762060190600188671830707232159070304735582677445058003803022683510508976741799015405505877511014601803170995088082042090553376603482689286953450642339162578985640871225185604649114244474897981424257586427493992602361201391810494183693035922522797576189874056250766909440459342488588000553098754860479324334740607346341340359688731405642732083834772426435853426184900300951049770598264302015480432240974438628065134733900573132553367161529178570671820340866788517524108108216974063678251964780269143653700270393998644234748889959531717401254270292057214770379981847344116048828800507931165019574927042563785241048031048401175592725587454620055673159213723561358606730620413584882996435061415737749853326403045303326578251366817647528189673917822976729361220435784604089898681931568834172319951621739526279319780704418840781888842384776192196374836987320656990403200701635497828497519028149101209804127029351475072446323595605578133973480642302038137267876267462909189528108379944011978711784545492472463286151134086394205526235236283816136290598516459564581180078909853931077537280634120777969503379219058684501965859298049767656237724993429558239921017268726893162114808139814154183000101293415366526647169496996344897423274748937592300731504453355526152601566015257905590682107010337657875334621472623386444252241826198675360689758989704845142643292326531214728199484322731904581813825125048522127384484552045202395614027609343212154565656055311305689462065133350879958643978123982567570704298180811362895277950472061181590795147491861162737138260440278074241422630255949492547712242174485280953843278001665815737393528658430279641735882826183178840441200335142365427764709509133996706632835063875487977680795483999108859963590733753328351858549459752720614428848194475202826131098482366920690146341076952730058503161645905099018990267770500631689539808573034550065899749154243933043557984810999444395362637264470460351862554170987314405640627470182750091737770737255594476643691982908044705728518898348724161217935356603268810803892201605759391539416506691708933372015128028966466841163175597485879716119256116700304557121337974285353084868511427228284167501642239216292373972678244199797667689435227924155416468413089839652027498343414737340686356646277403828411074283832436677333698551819102733514737926133115654125423550110049194288149461754956497375509578283471783190413130029389495140848031923014513287182823384809364796242177342181567645053255709679303376353649568497657555707705880898945666883755641282734216486648952021127925241974370299961763237929054360765637604550695459244162995487534958438785474358138547229056121814840877030841942246002062477879399355718667105235855893990096740729082625674008530841725262510688996956003047202945307946013187493294642081097752877309425943081791522190426242459061775989879071007456169605270008533101086463631813591862342807310659499248873282085993193839474836250323839226940979185794068623003730430004343750578510501745242936028290510118970626430932457775276818898227726247242837715318641856633350157221977814268169027604839401747967436904197923062187306320813691488320364388541679929903598355841860605593598639901083268471535608953296749693798108618977993595022553721997222192332678986457419541245970682895159834549950909384587867426912567207258820931944955467138735972928108582319747326535823836112662603337157255836507979588856276757577645484409492603076700620534096872047353635693869499779216444952272921825314862507849105973650875042194939523485483596913945898041341495434515087811044343361498671506529390264284035461825708667458853492972986448210128394507723472446778959391356302738014622099049215376350233523518132658563242727526260085579741001129430954862815323489285631593495121102876050482370849195124501952327392389730571343209203672787754277742765180947241781832650775332519199278546360747871513921686131347692186113988911821724258245774991716804545069278419391994198826147197704080097256559283576023535833256817955126794602695008858227555387421158536560247905367298385713570259405500475431137487088855293292073255657384069323059807209588833903881943997366493317759758599825396738117404564338365835488763853987652176976412142649635468342357860138359820664395220064591845839856822794507455313814477448584978781933034703798082256649813123349458530939801820531292852481988154890590863353965368585769136144424951534730112384383218066959635157960048619064504090845968580148451691652402107227847724675382798092322599242137047573212168228538634367361479312344682703502220154726211014835287316565396338663919120391375171169203139599152240609356748101059224870230172943454213653551859458827246738310542852471762141766078075351191053299569422070705758698357031847172205834204114583192961398557826584236298554388266830186845716618358780630521107282281821451074485513097397196072630718971159172184128265179899316177728253613783616479791026120505614976389644443111051141791621410224182615729040716358931295973560675860537743001954120164934984685863115128097593711667810292927249456344404893737717304240351310832778384349822882078744285665899380653013800301839865841394893241818918005646905153973377952901995647340759386898148178331008492082087728804093453487140312133983346174201224538634879468240899833717964992915601332852297658850009764222850062831064094493749231067345428080107770343527154870833816549397911888568220765902944075236389125317750753383869477403748419837591997659868246642474508277809376270194796318410636806044463354279444740314105348048438567772805746567549314970300192808715291630447985591375874111538731449471512303980815924652524329811153241444056965807780688675985789479902507976876929091376053726936002321542751297009774589404495004573201943778497573912417363600989853558976326588434793309001922769694732402117087731993130857937071929775115049822505638844358847236938882957266665363575413529289507021604088263835977712472355603228194957679071483217673774310765349762680535829467948169041192404708954778306338491432240129177647366322164142691219104638374057841499954783369437622614583249977110180586064745728329838776733318915448165010867990494848493408128995431800702050782636886823404903797750377714852387642479946081871287484375429081723966507859087535137245855229100454336974414021816686181477454880619506067745485941573281436435426989097063840961729894131984355847953574598162544211123528827673462646831663998822956592936124885522189316839844174783631099724443288950437757412456975264240955701953475204148050502591568838960100916766622629191113100469265389013570188904531799733735417351494454728198985856305271021590686221541865338940688762968692774369738452905523678260765257197403440259574503943285047972499703183638256209589256222453083748536159730513188339940702879064937261794618530195050868133786461967940361407170594004692421873252690883192774274202589208535711677300252812431535453554936510545983025335187446660905130698269752997433523917355669981189064327682456677512158791056427470246651590019962751510267105623329608228396609590926060168150788698026873972415719471219378251186270081204439183994567924516730365539494325289558176545462819696399670319458046573538737429418592259960171802695737090130448026641839756059598159330401507240837620349703360281754462176042335210631579364638013079838063383219020707342636838309019730494022484987039492440021608306300238334814992526120477430021569578584056967638090078551911908647067105501243181108019053169038438685130923585785752957316110555268133951822486909640003096349891186324086915281317033545256207769942508894541875939509951456893734450594059378183970627654807491110151358165871294696604528218171299612454558004948166333019320897800933395418610725987934214091478286577187533801279743083377748253628873785979872680832962187149205867793204646238580612325825214275094763146081416806565998469527166476624577282332361466923024088885302930850527256632605447016430559360850846647100863214225883647692612126827956702046005622077085507576139270352209030626716022696958558981625661637984122043997529780476895161112876514070084615917227328829060864661817715068155067290760714550776517478204915050419712247970570157418156044227157613162896203768219867678501917960898927302068147646222877463497642854967616967274492073995924534243456005925965527210630469416098997141213979578555715126048916355972952842032552799893489032448766820153531816461618773425998821195386511481540823288213284369480772009703227655876699824144782580056766052488181086930316036438979307437820030207074745843071410594126492639957825413986556461849371291932642992627360860950944214206236516521084746152616898053760607111408734794148767544104116073061026387047955240828800185778967655320284998926338371117100715771170621945088194280633458520062439832582361803817225232530996191368441602441446855185370712004980793705800524882007159152966322056530043043289226473857062506795843457608271705846602786643378787353422203979188671060295342573876452873365389861583058621618480623298717748389683499386141717672782057708282734160863788863278429898377599146406831123070676463232511317337356625045658917994158616443996658143996937287516703709860414764480919808534764703392465421758155757386478790076309252704884591296342601245317276705766965471125503961575961353944881448545763004815150291334579571362313696809759065537692236402514775054271745313141571218572384812539939581329963855711166863720809968297875991084794281315416713240413153798192115303283550212699710172651486462967762602559953201190568434620389451307650162860260261884669221846420339445284249250258780789834830004350178301985347877779354612421035406977167020177423284943054284471190388133079487632425173705069894014148846163284062007666324569767644561816040878529927451548015316664132924728871887637013962103584389131146703615499844265070111778721414740304230505974324631557486062482545360256635652407960882542516552381953121728560483781803639484938650142839441824736787193547357887565752740133056490018260164347371890948992844841387351875932769340123943698194162281776947252122095640414210011288698510946416093132084454863073127454900029417681645437809705101740726620204010473634840448260251980167233704758977760696049828853478208867253826873133726123433727695352290099785806499096982236265222539392242276353634721174598558771643305180051315300173347231278730524267325071449508003953333763662240069416213367572231416848089221179338669430242589938741577470242274920357672958440013845851821162883743104825301355187800866895477893490784234058220727468346353288977639287954530775576613294238356575725557711784869636061322117143395639154864972398071939034235158538981835402954074948775842024057768903189264524605471607904888054317510272989521592900934416388235992060056767371745609730374720798217707134569160041956322984106092451201907543058250784106009783685059712057684261767146735314993910368468116429252739221530632569521749415036148832400409311428986143007705714914090726964608722569056074863861786053952848197469799021501506050675907601400022814368482791626395660248203690440362325234005468344158282571178396091987738686969689373812495442123284155831412549814612342063517514004818410772910229923595754865476425881677553360909376288815218334922572797090829174496136300277555364713296370046746728079359312350127139696206066527506641570820883027438733207302410772720175011442146154565741616104044843699467172666263013576826894780015307913471137482376464644379399761709535549699087826792405178755942769543695972372184605911482713722693588398895577034047745813899082180669933364202704187848733060913215106317601699205049369356621627489394231835000976807727475903270880622375095110291592659396748465242891401175225864297492756613972638140985310869019022653403676332885611094097525771764787493060470264881658814354199391445386045067925305242435923005973808262399062303475969532427741926566348753517331226830405118397405706372375247429622193107350591637988727348958160926962869831868638470689881347605353433313088367961198709338025216988101659706057769444516488559478911828146063402515231570111289532962255312198094432126181872682965195017331689430046344412135782257925754323123338800387597033977420816092828635019175858439107117411705256945740012385722618354569745007134618486119464416335951834418610080165196188697892452335405016590350424414474149516435499957147578295550690843189200025831556155693073908077117958628672651831660177264890371571488179242978256380632902776501198645170929712172673929430785090901479848698601875067766914851543907724498199699391302787603732904130912309159254257354017741756501433949610910719869598154718037265573171715591156003449039232056714340642603921978843304346370975554453378864218828095238407064093567943740580970762402981753609397903331169567272273688414686944220429549641678037304932705938284204519920487502994922015073327382272034499395679890090760019440700439237699424350580366761559898598807088228293178064303199624464571519722110853382766018062303184743008482117867464174273410784424337243286236838295180500742291492186197670822252764965480257279668182385171598255215090782389322646141688876060903459543073121133531118433958937809448226382345215690036808393893203165549849394081939253908050205276436542285430879537634711240647285455225379804033061817312133952600971245714037179912304942346255470230321338968964976660084132879264627024251285296667033787818163261880100233431457649580194743902081715861239192461700095021647949683579973810339819196445107057686630626617077676844633608782168340897009658726920447368301638986611703656096164026098202731659614143218999123591008724795355439657031402121933102582769077622745859767221279208877705626522412212279593586405239896649861725290062470722473137311709232303213474286169633306934731729880476570481932001859911886152455214113279239332285175187571379754455006560533286160153728421042359729670991307716989805496760515311235038566310907542701542250317832479987057028165164742618626971109811439461000424907667669686551760748733688838891365004160164587658406214102963148668863947612131807162311479153641899294510603687985562906011064016401196024870534362114869519246974086013583826065991956622370945663642285384168168461941738760195888831539318737982950467095526223910057397428350802251341981524636264844272913830466694602741863850180765598942270478816644010693115922087395690350453107450189376625756055029341416790193001259267269919239944080685374935152048980623418427460652176767965048268562209297647149631065712029622552764391947272124837667143694008878545477113025718959830910378213474493481422919696540450603563733307829944835807273769675292210340358114419037918595022541346630873132958965069996987438576753176565211681193630506960742609832457749095359608889308906687781849197792718605811334715913324818495075705091825230475679416103227923463506348960643628228171939002357422227404355661508474137539296318575099834988307744139771688962429002599582794393807215710018956844015917099657491288183573415979047741391209567221401163346061269162399915926048379689098438453917013383524578400963867340881698990623320068396917481971529413003106586629323552056509968835894428810540987024362202807891918338727935271067247109523516114985520393709456915830685068923131468582016576192751512326625844725524001898027094563434021446572243858278172260796787283646572584068141199356893931266446688691340581228108515429766769974650569030330158912504781308034030768097844519884177671879091510171789101231841291323979246721679511783431326739589162095580002933342696837467356193821798745159405938485165484623323502470004632401531985572178217348516559579393333898079183964961149651269267240504794910217679876372191540319480853861788404562457781329923038142033240358533617751091443807389122040324108189220425228314450245572704994506118584458057168037197711307517844972614309701231988134855359799928455458034553883292733518920212459954519508196799303279983673263791963709729876451150897901419418833415400679568531779962564878933860347658843922244275256610918192964475287816828456430428711784477447081686759289858704855917594621071191126169965583056873017385448986172223781182312751806652760407599081836435147467601712261916580866854310004369174078413448357435927733187752125662386395101485846304383417716796304577050562468571422295391925980641338568329106866422155688080448159973968241001884226024704652887229075211700287667928022063058723608758696348231940268114899367946626638895805411100136245882586503919888338359143450439562038047082624156711821577000194269766021305670003831949860243736328406236933784613577260701992238457619104407095138895438482110636379724363688892034893429847312933142938501963471121518384467556324918032386009196049448808328887090442429031757069267661546772856106105291514583825295930802318287515597982375615081740909743261085944664258484294814879588691825890677892838907345547225159925731063116785003516835538037076125242690387820645561891718688169490968274962431473984111649741607038776898699997958352363552694676993641982393406549980508467966761671208759790405454598558649476978974528210106632753001869693694603656974396356267012533624698216924027501391168922564965404579372190691128162975597201207641145458911340771041110344542865552957015071290108167499837178501447468297615161543062263169182463150356835058923334159877857656554631189470680610106847897069536456740551781375855967150697323837313667854699997302264482833930853775749918972981362659112128691764342357152390371168316531359845842886992366723461740909575675736629846112848517310204814437896151020829899538543263068097911935183812972483911332927688942045913769114734015529431447905999244270734652950259005890972649268239118784627528735288770514349742346172850466793926028714859326817828087127791947102482392810481767098039482676928289216711492591851352068058976475566501246000637321953812827977278248822333906118784469112870311663568832377352295497252214517927122970104824305097001638259834364744686250752871795015632174510865174416365019917287087984135835407613089604043790738176083758200845993673788956152147462753591158023264501742549663771795434079933795337800681560316250586438345345718747180895588768334695804033586138191546563034954856190028494238878792472000484085317136558609127467668868319018854876429798366533125498451959177670400224081863930748227742628218070377913380652102549615667844540192360285471051716454024242813621517382629905545461794520249691758530283495857128988856490428475273443050581539904260666188976695226878162875834677087816310426781570336991095137527512243260379503607030132963143986815689499032924134275067386275009584131851055794797509737480180517037019639578190957098586278624945639820149822166190759337378739050804163190273948112115317889658302284068350355692829617808917001601972636135757864860005165863788684296946686051615125953279031185212424751640673854841273469756581713783222566787275115222324756952816851308176623941745656873705575599585463665500675226875551983300023235205982075932113059144136553713782587341142547722515753177352079355838485504239511621265328656286578022546013932740410060188131027363362417951598691481735130802955285404753434490757062784334313441545857579480180336841797720378435017113257940454150959507277339237841234668184165840916368799180305124795417552816555772208171981829025197249557131747139318923641402433416653644440740075001083688890811458874430112824295643540871054599487563816033097480735247807911616972521932773748120617835410825419033102413260273988042268054252279563831773291090960983822235463414271550157931928746535866998906599360521253613898187925164737488881398575778175180589593390829104332110844060941656097275033644045874768884591911976879650597065339231882285861529333337704834540570732284981068415361573664779949045570555578891325241696484652416231705199115184920392670909182485961960434167296192411034386774114675322356801352618617985054763652527850086080405088639298868639456897233524932009475954304641344841861635838753755582826089020382659691037663070376816257670186531142397383037895664146078047801217474719721758292488632773425756655131676450538250012811249968241602460764162728428821115345629888730817628212416691171446895204972986703396998081977140313501925076658398578267024380926540043895146328607925911718051472887482442486148314648324554251647616699402090030855617515576769815782936344670471825343739062556431119477893171844006486805464478840309584701416542261403688084401230640164521738500503832773680048779562188490412982791854162387488780644127320625440790266362979022845561718559202400982712051741662368611762713351085621698213522798846496386758900116804618222338286264133887646895587103594937918262881653369104615560430906674388147384128111804819633530577229686827473536766481006434973809131826109471656285785830313380603338065023275724924421021787934305280426917573855251386991504964288583336760046422533811867785257502293024011953765218512672307883418012020854161244811809818322315996053695795934553901286699863890564880232936388886198399152034842230306011332733681664597302235838809516366946032704384936680120310307019330929975823568623064027738900632247779283680324341283274280710718008363170802548477242460347305441560455336293032615457670286430257571756853229239227790639214860923241326000857742602421874324695724828486441871174976319447613836101359006357059751302739623645699329953252536429452897249698170858448280911834036803084076866059607996726566792661788935564007109673482740988768054437021516835392376107786087977133694617966655302061979943721472258009329523611000981697105978911275443130482842533166964178209776107879592670232549943559911624815394514547611118505659232191367145892405607965805514854859572578961405902676920374214427026688498005366701463654326983269896949142011265643400102132735171322907779957557944328350760514392387788233929347880980897482197949376543713375399145967237277054484741501591971017538761576485071795845693156693700922291459352516632402938889943501440550858876363683692714890346340398514166190024918555944325710152712765107804893762930874326385304054904557542910571376123140997768209573640208443564081971479780611257190497936444370485753334642693052944029828225779303545586093913252459365286838364392147741146512580769672169451061668409580564478559740525130144626454777461679914142770275361771690906899583970074872795218075825728970448471605085828595676692508018132394647131722590617407494565447873387655389801818923565317394764822098212086991645745643977232154069785853971180586713451775507224280908115615406999881837689504707074027230384172355330231141470270752207304241005204642905956313922413941734676476822717130964529356956444241452442260039034877500186303865365348080731507798147756545957573088071203375288987407050510776122156516043735087614547508097246753481244462312455677344711171781991947801842416707438378079960054467447092590257352244915671292186947087089354564860749396944213577294531380348356049822244552563280144939789008783685985273544899608673210493511761781364704402623993087108070927641817906436404015506416841302701578296357589018287725978634977912984863484065434008579844480709028180432585279061355002364021011122050311109874071359327697312926761569530524745433988477883049889491707873818435635523656254593431705636461563583952451898623318246421956923334838331512964075585160820843234569930828599156774058546880493873975053744054131559327555158097275380720537781320438644699225674590456744963047944943830541649368247048812523277160813429437246620834783782417480863637232202713771790309601762590322309694163797443630431537581683141744426513961262627710663746596152406082524459260354995199828323665382335930859889042681539805391810466892346955294452477661553081567707707337392203758380850536331095783012114351052690427278731320666732267291395554801051879454245301777600589604095579327730322047497452010972633925424137637600661579541092671248194309727665648442361314267215684151419888573606781357518467228856218394224726690207966907435506290558105556157236308980189197746985942479337312195199651358333312495590456282757834314672934684325826952588877481784741085453695094748844011136470848241688520856865868964463867006947014006533413489020677713973684716749017485160829872372297888188199968425904540812578933736209158241992191949664897980560211872897220129854677754614526656723338456965674807505337908131132026723560467650168913177788299014338183447151558961113343920556441057420007091633831982847597950710664304761157998593049613713084994266973922293468118918452462070296446801855882999240771015005601875967983620772570774272458176206565722131792555397778793346889050891181589286217712260745301838980817111146449522968902631728353220747319623533639096700241385134788659220532052906382754969365171146214538947165603403104487350825476550737562355932288614390157665473921012691128914516210262719250922813104248151856063384019953333581777574596910140285184882281896123370435574580855116777714205179127798828001323644158490733079490818274193448907973550514782675881946852496777412175061126970957386912251028395810201844251191986622568679694395891654553494943763032239430588140761357197724935729691317147141519495960246159201744107658941851679256212636573104562903949484495130193578866697065750749303794448821428496354279310765815113992325685175602955178895081924707164740693902601470298460299289032870851930387690166570422335383595051831231290339298975317854375148938143755966571467011425537372278644759322338185664038054850340667391781534800003914982526876799900957740993621429161618661921296204431334039424744070343389026077487959060130057567503341283103467301012992793902251209545018054119881415966756548153719707901684703524043692669677175629617468132156460427404819132748532858679325340903389594083696089786523007718871776012437802334450371636247091709656488782541903625447891552043343765700067251733904814909046484854698312932568969113349072265812687412024482922725855920368989531743709565843384330135185017965489829688919500065953448993906366842188132561299693758957356291036416151797324359938951164504243869142556187784244666068573388147607326061474650753364882772207787167310055801864046610223964896464344488798344882302443822807064194900931763486328163823390762486828776438420260940808319209439715678593514126388897137933221251618998928932222738316836798129547381143648666209504142203011722145657689838821424217570759513755572355059936903559044294968231130077545311902115574955231738003134995006619903338855320978753364928641273181708455008001798202032795687988183820287224244957482969689728899381972912720694741013861962061406200828878803771982073268094553860987777013687263159846253304722463725954799535239905538868631569417133861730607488680593729917724806136242625370546479154268199374059845112619093664369562196437968098075085621655857443802199950585279077806277932317630757962469245321993459260076029597375628809071495045764615041256626284849265226568845427788839478763016258864360100947130279466859939665736856697650934858489350025354882830664059311674819295407265945268934731282968099833305747796702037470035101171040000491520432173566259653213848726863349863553244513233090697764951788780744359306960854655356629124262682510325160231486530049908196149673336517746154111308719117741338420232351693526666742869255483919927676992495479079460273192353467851302624847540529188266367729440878476524995868714650856109903074341119490616386197465132025853631484198239535451256908432195757662496203892580327537793878591717875378083477899723652076276487615261808798327430408450709295134472546651787039227772428986194575810683272380437902247799866426508317255065094430621975795068556758367242873541532276942384010361681397717772377260143019867839338190648916312426212521654990408250645681747319853541229037643126005207469200746065052415181616329916856360428792635935266812615308547594350179838824063834454039553345475027806048735549775528054774028248963087324696005241693545772502568488545060951704313447993914718015172182292318385159224435690573365801670259121354551994039504344434892137766196913016380827051872066717219490437227307231354709325302819954417454856710282075471552765838337867724708332599398819704048298092895540798602933719050186508314080094143232916570154847780282586183853981307682068778757008278258067884716414968078075644205254839583960275070343059905364860187956622143964005320498379236566354022674312069709497646483962373180967831569792285879906909402178212895716122302239424971406652462263946525464594107023839474172108226920981913820941630179926621064358070497829837913635738767602534485769271397697877835471157555569747005505121427077901877419449367877429617066982990665921869218978384987819133820231122614365982124886586282921608652068211500084534466669598754095116200527793135042496554845665236409829729863157470177841630708031540688902347672976169062225180567951152486055704750586029428131604389365261316145137591368616726363981081876547842401664148161583164397459523699535377205719049769675341736377676845745608061117427168125341704120752612970893671583642254084066345906900001605571488273553845269858133519023199132314949567339924290857921781831520719551890104258961940842586721831316949071831619142606957298668133347548294577852384012259337308094594292543304923786617644423243264380252092842601790832234043024562041760034408226896076985117987925492697254860866911996623892374692874179060684320879113062821181188602802139156627424141314335611920378570211216362562444444957961144364307333638773161879025818516875438529661797095808063991115691817829219599654661360877270222733083373394097449869478841202636946787930188944539076544032991941947105093335792520082273374131190300223895380289733992148613066276596750313445111700311820404701158693671474704540145495880881129762478134838225099310894904489743892002159008743647803999732750523086616274002781684908718751759987889384587476913871047163864061333294255424344310321806597235390370520685036988954916451014035605511234300791814045857212931244465837168095677033061949256181851029846040180791727428279738115660491733920005639647101729924928202368271811247739616617364513906264214116625026284179996270721953968430437382822777384436000919975806778353241226333564416789680527848991743065790250404053273572742333855775565691891631922870343431383971100821726389898735138504669634250894808790394124163913586330325941850523986273241322972976182447577926327042156692836225699664809923757374733203139195177369163104427440671647883507719686061096541761288481938751117930509148550837551630588789396574211957610361108040128915433374142018510410510630447836408790663787564586859038029614912401662219437922336869472349050272092823366735345672173910920026946148940560605323038558624173728394982374075394016196116109534051816329390848739814499676698101327506175777047667272451795334306817057125017705733206232036509827757509871176594710269160292818426006561569968464333897816612104133929869054246511006638550856302088455596820841748118334781435498348589146177649782378044954607342718071808198300936166100453877776471791170538667399044320347657576592720408232671430999940814181337447201814957271912088585430581091955029698576511111454346776263257971952610981596974683937088906397298056519717984966767957457868489143739590724683362953905418266901460028045631128681024712960089963986657322935461067331038174421440979249204121879568131477112049791457800979992886729740136162999060742812496827540845867924262368541839177202068047194138381257753271507155011117230265961947620259997848738554962968012998297908629378949484386601649613561658728468655659618784005673198886527279377969127575907259871685006452207905920107899979102254926755218772307184380170831800428842024455118959314568885821597293117868193051327757869688138410687480559359519499065913971542995198587512315068898433245795529705790563203534553020557208774580350466127270026714849907031179317791278237886636061491862584732878713472336207910465178514202728976266448134458567638284498140504884945026569258645905292988784962494477948991029274912921419265832488612914232080086335722230149380580395691996754623678721465800456959442887786587239527469159847936503794835496564256779054791033316870534722742238812089109312343891000017734422226526074819697929905600875938589088158160813564282996914714890851107462956670883527441994205162827750984689486957347778860734953844160396076407473884601640241553098599997956392696940430354037700293216663295025144032584117108216359319399271892727935012765368414121067955899388183371763248808255354358478296749529468648509150888107659511849945740718103899806562072250728733229128649359611716183781546361173647816091562219714859406839618209100837151743182150441584689728761340780658577159923428563103591027194624283453420900678645171479912099590620785938644807985701333872701367134369946329517903851660152224120672619567920572565437532364876985538956108151383849292627499896337820548641468525765608045096958824310411723625904338852802882226291363376520068960324937585389427027150952039346410004291635385536392497239178017861442635191165967880094678484687971304578403293353471224537098405405650636268498184281696071176393223511062796120106809332348108337639451684945599335270255615051299194826784879655219792089539156435265640870624318264568987915290545111018330506517119875597576617416141614827624836175304069168695177427724321624291351280827200542972913594110361633138052662722742900069984898490060384910456443288790912574514315198507605001184919022408114247388215554374860456739643963952905784813932090845058375112714926290411944801078966176420941271543691217331947377148483954737311808489729097614967801453325187101934361221054288266510178812330562556487155104396817801476030764983976385053222979145648686467047075737414285098324948619603947414934922348711771507486638981061886972413474765484675920080501848995882727228116971779383769850933146051923530750126192443025954601318297517877638751635133172100686603208420381389436037524077751272273612128124444311125714224533134773618703361982607026709672623027202040887190045502179648067789055794089516812331271369378673787131936137586151328332233329662652485981098703126303253269763426936216723192683073690875613422758099634936998610450583337488665975439979631430671308182778491936012387674257551616885465403604896930058502960907851566282413525630809374017608684497208925719023704248657163221595859668817368336312106055075898050956472657447972786738904957701317560233869589753534320936395908354251166981365697971907978868378817901887957756075600542667884174459301283838016787791343865246860916557239714828888435685587329127658830966737549674825446862397446955743557508341933653401021955418464915020856155399148899098885044672796820435486198976779772737194621841294443928428093473864054146587789636080716321046047812802109841140770142436606582133772512935887500218167943511740342689728942647620962156510067534064879514692450735813517199359809689162565542472943947884806141211339185563198423855091158923077201186081591386899729833810831967083835197924247805259046304428844369957451265577926831508261235249657490177829949141008900562757236463326955571292803028243516776180260624048951519756957556281624277298769689894324486527297316573451495597867076270115368170180032436365101917109687092010307669127775909617416744006746104154379760672053479779712460476760920363352431953481995182249017069199573451522177897086262042267201378394480432268651583652149430217719923828469786095623368455142273339422267785432237177653075183303195777846784672300328265532231179439259433762268722635270839764650741931463414222538301382229193098782707885000647332350912374475394832431992150549622849332590567805958309297312775421423163561260353864654912093476406224756076367292150073788107086584875145600967658720578134002733182060281264752593813870203115220824471875754869117974696132112353365996107122300366114608474793326040998861670240438791697288693940667109926314994946120031160457786755658508116966874518786810767964585554624495392708223826363184210496977128143979054404906874625152930992174437136346762317798796701483059665387905787475448444622417710494331245415081970264138945854712973645784357013885909200424048304215679401193580287693692394164796681125357426484645076191826337687338269730641294656664565178357436012352132574266674774952382593360351128463596758584954529823972193693896195258006274761476151836977537835193693911956615320580742509794609470634719400120219674550641905581623542078994444918534189522090591735095279674488222838584388550649250803485294611190331512449714728392262677328173516566686022472924248699255041766880338794827839173919909689695902462423942567791067380871473705913479914201511160533882022095799619706095800636249582194025248536070325598465362368769201883132888150485274220685918477765099713528963891461542897137723306000478501119661543777633239722029440730238480839853967344541994162250932493375495523384726943217187474451809016387038796002225227631156704491631178439475039869920009809370482649778070091004659547647543116156473449246260592200410136179787374407774901756540189574192412392493430168471246401424794001038258385537471443824439994446647029497114402490848457020818502184556232741058049161940967910741423893177974683816081955083824892421486997659320166408514491203017160934275197307489525976330334104188511030672834977004396956788848802422716930154955953962749951315591698076190719393820701722453926963143907012898960254430717498361523954505991288616138065668347455346405477373483228081272279037553652921449819897939364156395064282631209030079638356153737486287070539919200672487149420241136961674272329698139109239098106818517248450170832848528938767519743006265656177464738697566444121593461630749093029224473369817825437084833466332913851078110184083164867536203463186789070707427726135219242316769606208001299599113757777327019781164850498161083392440371322718423020797109348955868182184346061814636336815986372757036030439668213460374736519819176570889450323194777401522898528817515010169772506058445059573158654930663681638410815563590429135542735134990889644539222342742695906456534670136028804789854576650882778384544052116608463576096136971263220436073527491419241033049076849810765180305758074690531281859242289358129932479839731702488382805348079658866217181733224720360432164671471586990630069472250119251815829560188993784890456790241415704685287872725718795275003314271420829729536074245727868101725227739932260677272568486196479871137065099397163171796561572042814074831554480443825158154688604246518683670461482568298623193867514950696213842992602780513841624910095704178752905158848960422602632801820318868499033120977621149443239853716011350535853805851439942535649241500928938091210118701503066976050199226799485278358534270648269657851501503645554939593462997339672823667837747890627228222579196020238930009318289086252819633668408110060383872300862846658331309625448313303254849627526567493410591513687386237796803230641470138485927902923681556727074089915840973470818577582699390995971935146674643454992938125804628198375295135530165698956771332947644583313900037012089584477766997158941380820568561851317015200226719651695598969718338511822735059748597083774503074420815663928573781455837214166860500296794109189031601744919513058713661479815289722105772345800119604732000184999381153327756779049306561891620095975756113648573287523672591177729753103840173851666377478197646393198019447453116088857082355663644083851943686634903901391166407438106571431858666004055549262903588747522198906885411039115446898059798797214540474880205424168842552752487197343900478851374378781382009179617967331971865493237770237931961256627634831518786748739433209724238568753169893861993839076612747325707664540946685710839467855979640294097091243253839333981515277904162044731548824353873893647859643247017923504178363166397504045771738402338875220909259812782999565199575655830423066974374868054858073540481640090126835010936394283951158376498877259992029883734749815209770942670652245095123214382723971949872855404658108057940303328301023515907594899446279340687977664684474226617391570508030006397568014414925998407679815704622607049772904681172251580679246537699504208344442220825596310464857939622899952767168438191258253861714981059238567759959391863709608931809323410975759425726618364537849171547931941052602085158645887015815336795010578169447431050523991259118118560727643278712249300118631912008032006658766434823408701358709713465806989445228563411787855496379175380744068807982984245739931097864203131330133761049872088086477203587822201360456477233758320708146937065522199002952729652269716569580968862361831755856233847745625825733654723439126584242592574425780117585320387130186206748184116304173667378033061656551915245265617825959335650422924913257756045086755367166732826393974403652509588268589600150927070831320210052483664772479628896800197675725875312257057425017297275317785288688206776607017269046259113370012269644083120186251685239462549808403588390747921957548002313509019571747921248407900361941140165786261064978351324596451643787960003814691294555089889305798117878578337433147916634018934707819880777345555751105545363942461043772520390561919450534169154360741611779365763360873377437352826526350417596564997174006170218016507683044189782511564698318424183720427563755935479903976531026944345703220371792405909238591682627860023469298569275181603335268964717319935224847521885748519367406283893808503954197754539398640602096023516477197407318753754904945285886214801486398093913049988750023321613780267968649943272548033760633299311331603555486033909563967469326175978171111828102122014969964719497438142897467408527569072657111847462027330215637696909272579056072383511701450674725475989527861707307431153754611453187420742500772661033965851224600477101606006621469331192112084349279211957120866037326395689596995036231015384232400882681103590746322356384279644673670567145862276821818937585555255641457734058399969805752294541621926143326172924983799302723321991668530145977361066398228048454092303431683250230622781529178222204967373700147588243444502821900997641555337766755967355372636735030429003038079305001663687977908721993408997422246988146899182250054235449373762111286480042621235956921581881989903203095677103114485915386575649847180374105930516949318960057842607282562748478836453297860285184479240169613764548809701420809744529353779672009640264509097833758411087712913522900970751213948629950095008767443993896499111219236437913934518607810992068101462649235461762826616424701217421279023754154931457754318215221997137632071049904258442638410448960734894228039752880022451557903554442847058059755078674605454914970910015740784273094497494614536886350414251704103120440418564818062634397850484920648506323616744326761267470473253709175047120066292382435264454590598309908610288130942665022080895377830338328760722605606445637311195854618944047727362544421868652644628610612840659587828344752115190860966523240272455450540002982494065443225438178056283240061367987024207984563826818575602050639436089742900461649295020418766482496327752640858535978349615229609557255447335828753504711976438898459796309872076971339199016036082468082913266266299722451823394003195459855334964541112630107259867170567776196760748606029548940920441473973715237649534563529971462350668560017692343553972247590107410421913608938261031423708071708352936260451765787986955496588900992770727414898079405003865150686935528153655843230904489945490159458526771626530286753970834116120095736929675627241602484047542384938329737469238191208639730999503167541057510319289342080953638832793657252235385509074267721263016398661115038260835502337021010690263193464065657292912784072609469674891048826433197539661241427696664098321249450506278981581704657522871693090531182024119758352249613509291253075152491530593362792528374547743556243283531656641389225382687290190275297726143823846690820784858281642530108084474436267777703793415949369988862605565552034063393647432297160084294389765894354230066346447228052088937431459821809154268291268712598515928588639653865404376336752181108781197855882873132953456382702951923705734151940680223008259471453635997100853799757589319337772609873572886453260318124122609917459245031161000052452658539636622376158592068715144392108821384807345852061838779768763362063477368186177457978822324932186918977575307380276660130486696538451899870599968104582121144385103713631824376186604919235605263834938188410904481328295204806839828383807054733119385353761060481317360350890578689128818817403634779277647662006650438495359840116188776040574061836841490343552928145193510399465550660181800016061966124233686556642975330596314797457817806074134384663608921505899803616896696205924461711580361440326760778082407424585059171833803060079688612863778048081551292106379674557898756957100795999934606774745655603575348986321390773195821688526756625438242573995510186562356866322986663158822813774590593699554314102290918875947501873405497441834409106269534203658062704488532915037748013719944080507211034139981602007362101660988200218493331683861087168468524931254157066275573724622922469450784241180681761085332815921444029410735341804849352484032119857168132905336934205183190739922545059680021702339495710752947070226035125800166744684607510472260501157171352086098505051454252775692843070018371326180266289266149360513240002464059872626006753274772883476525469520867945507012810995624492468808458043148873585783901433406616098886058146050867174403254752226605975507740983672022071218028035403999578512953913580141826287331138717459130721871524489514702150203769800052765992520428762606357495265563391286678255046273009364861408078037388351891704247175514796633790655632642002111588145782108686743293793978224110976634224041943116635578126073137658621116707980833320187843063558274523299191563909665243001393834275047517998525895804362644446232181062724688110435274390457389437267050144935196622783365554663143433759889520235578173741160602294895205578563854749361192297296109753411838400059084134250572998808215540003217958820974779866595129434530487042498020277544959404825259270485407879492421802455670100219932423405537137252322553291053747286449608186927374898126948339491820675034717786289815515304611613397959735619502946368658026802798205257908342337284686390785003550307183279584998036098536733605572851908314730605060032002175184748104263819628672306048701793313791860412196377905637615176172900596239568122231677296665942893826329348804822585249573443028254528248982174408650973898919620868940505735494406860228656471619735159286942006404762183855642654846655284550626359918102455959510932139111165727726315772557020710426091547955248227644149260159662049945417075947167098950170533823536847260729734022102814068796584335022221338391680428764857798344692358083186265662605781596307651269122515524303284327594543012086760920484075445794854312693841646248985716509339381482281447548777445928353444695525518569991432142699847119791663772983419131816733247467851591102068747924628216400272195097117875409956916144704596570943717282756998775060269293129152799530020651675932636314554315569604218322778180372030141253008718540290591094425198834093466203357505144590554624274354656931139302734120649457376874717469429879176160462534639197180453787846593993000248211946642321414967913415568516508843902799806987650436785177142532497467349473194623118295916393754418764960781761383298378089647103807569349265183880145889403669411125403749444373767280145990537530337408587953624255499701565191716331326093428025684278187770773753774146681029540500301075632345270662450161518985656234562936819674011943291656612735955516288144445068886615733592781819555686462016189473218135466744460104353096461428416716306895884721759576238176797674274632155555043669557502605192516380889187734900777506729096162939310647389288341558241195014888476134373590573875303277379285871121276900079751874052915077734030508738316633582340419082075142193661063917455336159241050733127508045291757357361336569830263897450235204156310903463223791081043758911272087497444661948569438088632393957781937528297425426223977276126446573807952369582390868500985328785641602214708441860151829535698502042537812607377947673014674681666630397257233833432708506548184067274713327230416047468108456137680481152661308380985288310138784845299317084251726743493642254612703123695686384270397791262411202418037842786310863440375111291653781417681481880577000821313278866589233542162106103497029575716889686528690919728710081467576725776045450905282957691471190545906828982055134545596980602664147133291975314343636334927687398498573488658968526821902607251737573313947416759071219808965496143729080734734223230294995953167703056708327765984812823694081200025722563085726559550779864462181383120273530778386609490659092203569945489077368294791969820518143251289587801861522571531027975512865307483169662948818635508468973624658084949043922886683277904136882912857247559136450379883571490125257863625616049815333822168611053473798169626956606849830826765881809331050402837551414875437367912270722220824531661683357273748718694455633729084896377554568706144710215248083367125384366127057377942892399379156397168921397729610024946643357765076866496331195131724791550706407715808378470679347104809428186577589952806214250031191331088779058561433916194896148183695786311319521695413401600115108314980443790611571829469527918333033778335690931913710767750491453825051583514991914325204894750313347084428855383920324654984276195341121052171705640440475247772707433998440415700390813741185675687905372827881814034012575156222063139196371240289551400222880313303868590850587416551463719649622910200968816047090348547104367095352221684604160820268732354862905208871568792776601270418167401436887066892922798090303206518766242810179489446152592130576538469730252988783137421188569881882347524164496693121120194609409146076269234434405860870368696709046336360024757606025789100238089008231838419133033756397163991989422391727715397028580582860501223839203277564688403777604940386690841711133338834836915192049804988424449776069791025334582429828692585797321535261890808271935662990756015897088693593484480865349059077443845552411757281521815918222962703452443834910097744571932990199956206332894990036396856653081641345872890481591008000032192637450928048603040801664351821403983381644184643660388961226691223172193677009601322241186210682686099012846850887311192803439176691667826608029400657761714875184619387984625611976380823208739402901821080732248757827851325712765779991866410723756306747960792668003121829766200466744388580738020097881474268414645024704160920655860952700789858972246837534230324651971485663170997478544852037120142608934640613024517944690962666372086298706132366222774905876097092426376738984807103937787930516895172282287849446695586022133647402714860772011188929271392711112509103960913777914446613861798041445995025640278248874690198832271561073843233360485344631512481814436731128850204391909597969116703778205672685317638617453151601339481909734260384914167644094842490473185119709100393943190185281543680297653092018798889244549419327616028372284703924803802144833158350232490440730210862594495290671232032579878691513064962544880058729525439017413712494001376462258190884827510875025194562793736578543148184120196833582369347740988305805463336455135444898843974131734522955532210408371739693958486530981436650437594821252291712819691667369504619794139511610539728167029839686900059341271981983833356132663101397601020054815599366167808393725458336058718602047067614356046128224567728109043350988944684434551591488260552824809745100979892740283308529014092245231488070116657635808576217922703709394969129483790457839119384507437951959574154724254764203497042643315654208935845700150849030728222883986915770535410638420007647600084947774274057417267987515093859837374965947389632778506219510809409002064433031162464711232691915737176256276786936866386297944288022763511965643894748486707015914891759664040061845919842944966366708671130849456853155687101366716788130953011810412801492229332647018033862869501086666492046321911347192802294857475707348985746876823872544880446063514891139983999222890057694999563906716624988177662011265942540244105508053841734975957551766616747277302734248311616742017660440878949692138525995509475325577608626240718116183778745937063471667033233528930268579951975494953214621680186954098982838063196624966730299671819573840937696379735493542293601608438145527990100212710181024471247603528075170329319387518904968381962651294138392498065318933157504649906970351996572531304232360836348947034934666312089384726082504464113815319493644679764673041927294902382748628742815571851637514225758184996046457550917355558076985922692919740465191454000306996376582064259666442151834191570839296678116111930195185521865021172589905976908252924562758051253738208659755667181133025353046881246080114637518251100622947094744650084176115144634456695869193853826299934347784558936812737972785831626626355512085787681819970346937780906690845074434456817965638226642789669089513696703322180140299375226899156973730754944732958516499321591410843643199279215780927253932306612139438438794733286430892834493520055658894977231955878575382659768642437571508184388790422072058534875858957273545181133379875612925979184225447315995588942812979264641045432041848736067961566766044077407915267610642446267242676424697180670533920654145784050309647805104880878168164845424408759518190918082505613185308184349020809489070885943761923476500355476005613327575652172631763886806240764396684588061833805820329067120283995762734872560106848171899717718530957006405521974245474329592029372270985252219752235002887827819469887231938714222516706622350237006810895442584634928892970507546285350922669417611968883147217643211285407501806259429923012642306931874818605275028876968412672235711399385718380062721878284350114192680993182583871509807251597392500487450645269783022987471725283718581953737656316548980565594060079361206026687820242553993676092689323355282321188509815424694803457750007229482338541016162262986429630410344899815295604145029124921148290244590154016037856020484554142998422329093085740261251589016512025040394490044163947011816498512751179688842819369982052892978002258088855926492299099066847527538088795164852471191542925863104192851554698119996215546859712980164864765302680111156931909531269857860825535541760296525727672998816021095417655387238253623790383149545640937548794063956227012735000710543209481826214846600105724154228666338676808549549973675018996651505386670229167684497684804102213540468485628459433684722889511291805044964264574491541622046676372473249869739439807418347182594831280897501109849385414189162476377034054847802462409894592488751711307135275525188443446461537347252345548359459339979910389022678343829422000489902794816654598880875712987298082662853046104079545820281283832165934711856770819563744497153840230302756533014258865292277185250701706379470510668214840655747423184497783750070185752617262570466575456422560747363500124900371045017335886841166537302941642650634574837915021635422498142646382703723302684773407269166489734727908569719947893778593482121370907757179373427687063939685522263225763794992661279182101676152164948232965270643977488891155398717796331086226316371524709596969755532179046659934185951321757744686696732953113261326269193933437578716019504608736745021597753613620500102989332496845984827701454719555566599078876294947024535683435631057283639471115450267206995656759140199324567847025825655174799738932077639377823578119351077358894373519879135232752780683013108661873069253598077728460819977331837076514553561343471297047786270743699992307558840131280210595630885570663223615025978728529758368042414788786394459438788178245145993691489252439278094944755849205466453145456952404584396814929417699752957768920663523760457874367124277102120519277565547542321767740483601431047169524186752581017148884484215956869129133537691893483657574929610093168680380181701161892377119277065269573852351376588678142255293868312920182575645699537166450001200185259709385288590774128597967979175634921934315457123440487371418015305054624831997883536542964792773986040627167613386235647852406602901610619544766234831549253610813730475379172027044128502799786528116317040077327894442996299298294613817059374209009672011295595586981154760206779135386870400813800592703458133873437164636276696203284191886800082008402167393096121245659442677979655475626719910997893621365560471758948021371034941686950411673521924651473935714766944112631972570300845282627711852539311372942293114897449963202818226068057382638360208548325631021166403768991707159320998614873003929213667365115345121048703599299452507903700668663190611696011188882586890786325981470771667399446079984279910468468747581704132785947097751412258190698356206189163501385677400154525701719395952105505129787285582640934547521821653320087071279694683071151763042101305968374520514764282784270719768490859438171555576137176405076353301306720149277365679678952452919806560359880894895380940165743579115328063419662341470879644966641021177114356366458916022509263843788533896029401442708499419496313623372359626930373321682718962676318016084629041730165388422652517716228328735716010441242289134988883830907884233569600047382790554844883500667368220581441109735968372591640314355372960226908714221429583642729970024573259646916561685839760210367473640619143084936048892389494333958468633577046917872400496011585918546673085936187015659661692379711491287780402690384437107575767274583964337790593679985950018509534088741979085132890241170952007250110005116767324461407111239133239606131727637588853468966818575926468786007134012829542275544386267174196960503110868595209281087252258772339436651644707486196954146004538954150666839327949009369380403062617216710993704262560243637419454138128702525806143178301939280887208083807438980278266722777933728758913544935079649765422382978180226619776223181586842107098546128948044112959994077543051740143757207876926860169418325506157802041906865404327886275141618454278871996817503750578337077062961399797257711358231344855342820338522006215218927423394241831369921529040095595397354371155156209699913429853953138867046471977368727495547521901998234566443661839438897418616560609574773006648631648586042490969928196119948950852171897762350844491826215392203123966506500017014214508660452808283525998890179196470994743858277987183175156639609961396222062815884412379162108072173291073067057918992833120444082792758595002292265402390110532600296852352182112257969595475952509969002135906622749421267001935902150515181067555349093434940945925339627926624674882695785662167467743853061670839095800947443032017330645266670018960278152513010446281720400208507720891413406462946686779755678212510085894067970635480511723169411377694260900198229420382202816916157364380888001574879098156444640492639777687284374170321477763682651517823802186403616175476303027931671292204947783141890602366983874739723977268854099485371952084517431038850149806880454310436047625683427269068465030983171838674274115538815045777938900928336366933279369188431533164864538853389587384558339532099091826181641703319246937003397450245833371509937806889181697576242788044883599596451813012501838095849569563711238126267142404871491458011488576610528195711614043180659297726651547451215265860857748275468664998598171537193477965492472404816994017174590405782894517227523051805335794712317550559525098141973954969361181270780427878509689378537925735044503239319605392160576599866694356329246286016913761853827360791076621588005607229764802108856274568424737707882059193498829910443959066229243978921257279963090327130310594191760733461269023473033633287628688616216575944351319327900578971146061922933576887438848881637411852446241121203841955638234230225288393804724239366440418051783225183655221571209364617880602204729563002444056020493504034610217417965935765695612398209703285525613965785788845954247947754209828841549853136381371238076158970267032079715159987139920950664311328508129170615640776021576320763603755123783837136247815362163103023814520315988618197134395632677228284634597331480351645364177433866760588432751148647014797278387552748284400979970970518141788404505059680186909524237801377036009359760196969303259831577337019868719694504544072737654348600272994121394721918561311483124924987895832302229374794946159650871056733360421108967786070493720383232338884658149790529346755378216167634527325911293667726139395863030074107015925412636607177132128281465152466363914838162179834899972144637735006965665003432092178272612096849263871370427208983141741051275557288510317415171693092467087935001120892485943327215279079657875857956145144238087180440069698203401307097940335851959352115379867305348694142131166190529497059034665235880186247762893714083044929843836861859474362694009695053034280898797272671029508846469948388050211224103782038402465215758633287342528359780132175618705514345367164692875976264269175291651558715823953264875035636329351823609297652583895792203633341035545914050448482024890621785436963327623050355137921436089101275117730608387998915283345117643271330433223547648880224385274077014454952163657594711344031871353835557675908783826405883034391781332089945956953213410322455607721529601147703465915341199677842258822653101318807911129054163209228927521643478629222780874692079745270300970616829022986601054882376320830724349217442472777689385548106163082995536222919202931514319836626084561140320270416376822663337505256485466438531587316565470583473574290458962980444226243742918241522763898420016801576425794672314867485737711922791127632606905218316927676952799021570439433972502249806486973822356437790044431636380149697739678804864402430952008686662954722549745808088542831240555839521608172311903742026271429460158648160304644251621601725656405344095707530447521520607397036815657668749312422250038818005533017284557514287185908235807144803733663556252565319547802312520016701993850453479231268863059450586234824125969592576506037139294718087716250772104189389451191512423921950982291654353021007931421368154056525554527602343892640613643026557300960561381782246877684609424940702565907606323870279849030305756579283779772037808568009398950459899826310994548295036407665508040963769683678337822932904390555810422256980797689818817133053759738848588675311953994389869191440517002745755448140477508933364194612245427853541020624148438971177626821807628620785680255402465140083697761100126920044338870453156358230051824573679307069672479868086827067564585771319340327198425975796519048054638673896159303520310707126720332460974691986456106737102647663327292379045257805116666721660476675709100306806853473045889136026542757912688164766236419134540123180820762345289268366983970503899195964086111405784999074881175094038881261909334227301546830066212688611714958728065150977351075038906158584257868400916580531401241497937609199423785035174931365489940891460754987866151676009716673243398038592517873118520545603422540435798985872612313680131044498999700989177044616068682690494106341051697966622006821367272598338800845934998368785320736436026577394643811398727948859175010660753888153432297910679244754497050989702791800309234065193597290621785865504715261766481908205274449509360617918567386070037850876618149916399716350090696127860437775172093862048682897236083517469224748206437245937293557729253139583268794735688505141679959043264724771179431925842895866452346644784611746426641629935182917536983713907360590007221903300387915503813691536099223031635994290298339798567016161342488303422097866005974304003773020617207624379732273181251036999056423149505230877098914115486550696047215089921271184663104473124074754920927513089764178778961063678732857738415543476261819793833463512542496051438113208277576394592582993589281902685556775013029255910594920227630557548432616796484193131702002960893837542931834231656450494894056931035415599830269777152505557624527983968422886778225543254693226608852063931939492514690798433147101731973100786083653875951032381645476322845819830086503660866575178597508507623429271471960271926900930381894452450217045389636013902202228918931179318786816153437201210081211124863910094101792623522984370386356932289454926599353301356080618267155021608388149764633354362327909002461486757890652623142492344919677930512469464878496016553972700127939290386080396755604039743571629452411821001967763257174064599854033856311670763483949442486830787157250491532289329097836031429522594303909845376609924782374634124182673903111547373906295789345141005559791834404665454981216251699566750114168647972973830965139999618611377769791064606064200638968392600935951797166484917859751141973116996190594255171431619490949479434865840069530813559273211174616482614177426433440848962085460104607354967089727777407320697613596468855368323070667703247682304663289236492264640280867497552929612639969118539102708538994855069258642302427645580121702857503055885997441235466085711740463707182466836539331574212315063076626578307777677077247452517472398826547141292599379277929959271292901745799746001736906884890792994305014242872686332051106577262827491617617774432162483001174118230185630288597620220170570376295738675904352222980938399012867483701894724199297327616278871709180005927610502346152302529492633882671888012093476581259811026337701665546312864686445452951778842594499005122914516129741880017220905855468833281854117441512471883327707464684948916934417888253516873348427965514914879720271624976212635363245141766059546130283000247252370091993108032798309007772713293895281334435634666664200682586360494295771027232909196849632682173796532472724801003031828804146813333363480187035269791474610656635481752042687725218044163335716152022447805432383289933247372421951087601351961897009353306748386895354593073815098434674418057784632887812396883820566578562147281609428547804453790971489358159364448638725193744725865796730051013191113564181291009496144790138911615074820529047601002708113212562806904115105555191340073811609545090246078974543676130875108078774001928632318633060582140779813735721506840854275089665934250693931598377412654889000576744173896380980651497734479666291767062123160150245522086879208201698671286761138619618193994414148432175686628811911159334267822605485289301685511405113463199956928913238534964147969118433602165518078842751886097299157593438765415205677789141215775191689899197864725633929467703911318231233968792333381977281204476735851308872991487653805893601584237755686490882154532635442572901854798080576096109213122006282009283608158678039327415695255727430067326090108237413711702733274881101077285885641866563879179768867358210194629236832456935379516730708539616755995361273309301973303232065644593858903463399407703372818160258271209012520321299675375199222498318508010805074532253168194464283020133973855645487296425779335103733820711687682475442374845960370838850724763048597121340085975735540953369472075443644724301336291444592323312207897241444120125812562026479737344597854315076659733627012870088060970772513316832964824476060200649717703638002561063636451020203693566616194855457540106827313799228447179360522180759357269407227096703210581535442799266380130977657935409980587112861146571607677815171508389782456914800281844907553744848586942817149719404664410940434773540928986258418186912547734630875785562059976662545648744027043582108361845424292288109810072154665010087668058375744883930630562001781605324610088454340804424993834612721227491966779439219829989434111147539835020539975612450403435493518521416690277187458603238936255872158896820366150849252382058669783768102387969514304719156010356543096035082206356715956938173681156716130288411332152470133169583235191152577821295281872448363818441813417433930364043684065918788286500199313851703544409726066122226372717236420222082970342994924150371134235053234652175826735716675002836430810194442671333021864829449494521323973786067186471086604769816178470534917573783784270461497853116992802107420727822798099771513993165409740782700487489903237276115494086933534599721064443191088978118626382303417607241000658473528983752652009139930545635906871097655061257314948296736528570983959591115098541257711000444926006364805843460747134227004991834050480490005193103069924141635414275053430454957409500237136383989606159373116453961930322134940614627890998003991234349334710561877596623250091448690722091882965514579509803091950167882943331727213168067372734342743635325743759303246892884146160496472817240077376316692899975593735241584420967499017672697398575029868248624245994839437151456449829655376821455692968998930920210290058351432698318000294072967179466133613403027041553305224974080561529753546787276660591807307978154736714416013624453328360668473811667798763505210090163484644842359986279088393461706221404214213381760290048033408025506955155669872361233980913139078161829429277544668340804213004357919859893224975640290634741314398909081622397345280777409987610651760408131149832678010314263447854697503117824245855364415614642517628239852181463795324979156091397999109969262447928428746323680281957053505993275844228480373648730540897020889090874653474777656837943041612513148011163585332427373205183056961837510314595409894096825832617877596858479362988292571903114722529452308165984809786004305215481023147637464646983455576629033229058148463139760406947904797576991163368967177079798240794111910476614625163563637785452098694922508284807845228490418885286060362419633147115830329065395712375345965658772616691650794430436683795591864905599826618563234937421753307492038985583866535614278712984801704199576890708833253346290152861304180552760558009272653615706706157028169624047937384518335184682978884829267156843616895993153000893215422212978751089892929053680560412357460119327815154951815627775072716945899839062436854314859283923752939647752231601493318154786391174971884134837343447296337064905011919093816019232436025214368999771515172806457975556381542078038032359437047128294487658950650879890289657697507499173904106280850386485819217925393493146457192781772546662124795898418915609841910671658964003078061410091375925036846083244705261317548777771890763556499591434751124767303640280531359902550634381086706159807470782815666108071262729204030100807820223352814964088978405877486601409957306402784512042562269205162535518149921062885558097717256851206784637264436071900551134326227322074870495769884185060383402336285418389551004293168420605244884501559879740753766787606897587201140820003870564363133835367046563989352124479808368264987900638711846913442717052702343759684138390267533350065022455086063843656839286207245996004062145392118881671471566230519070794467866276812462258417328816637635101795779383792742569043871218946924669141925370833164377903523542916158037587076579328803106603078518959162006038790900747576434532089389111945151321924160786738611701174846917296189230214257676138927278939788385624879778568961097302491536950523108640760138271632005993811213994350768406878720464946999736385514507131024341326910680338165028826887339718504066580140555582684521743709835271022130363486948534280691650632636781292125144375727263556566602486290033593058621851221939471680646865751080762794756942363737047860011209554776470971133337950521765448747669500647002590962668051249322415799568909736193921152768120628770294592691592607380835096553491283058046067435872509618759596020016851936095081119556959257631713041236586627185905204574032408093590155270136118422559422259060588044732792992342009152732002766634256860934587814809408412123940570868788544680740497940565717222029080762099344885774085791395921178045797793831717240055693545101678107770019550324342815832734550576750155418016495020924893145281067136752192974103003167589100012344680162480743321705694417426407896428744955920269297146774349150108920529734578268295014242292781506941344919786860427123374109272766529419858302365205711789932029538970532112777875747727595123169473297086907384808789709842071971390921700539560523582336784105832859649062052458279425205969456161582177755507790099916872713904460266035402481073378733416970782080170848813531652984991549610969732627253112368173117699435833705804734930728946382118073703745829321992011209097611066210640338930120547170845225862168950903560014176501502692307715856712133754791404875454562766239405560380630753127793314361054869657618538071021641527836408189932526336367350782055291909047567723443501663490765676326317202732228714435620442087295594320742731494286801531588294012434836984396207090680728799391982361493541343245001983066638929044555461881890173011374790034813181215728682536182689026186709942651896503854703587597431295245341621822527801816227249053112729303576447917161192971931656364121432027122826942042994637536938324943735914775520831620140437224086399410172454753810366059337589095284048706068869803402867840002540757633991219348187400636928263771271676125951243703533871023385033201421468198583040703483366909313247925911355398029702412172515944833908277219774682842982301101074039237738402040571643429254195816366853207456623557021775245801873665016042985296163315273305516171119391068828886689334910750414359192675787964717301912911001712922337112118852748273924794857131222150993138332953170707188853694386531788755464874119776305049959233309935595595154572581890619269468681786803134120819098855478683308620308599476273318646731061054263500917924706332729549001112750871256398012797419017518425514647815493494614914605492226645261364391714382878363055240019630664176014244668397624533520813748922751100028837954545928817947401937420137041456846479358525698617251466252790832594554187264294607476780827220901024080540609372120899776008687477864013698240122617135888375798773364205761980698220619828013102499072217200707999842703990778083239154146787223890591785092629446118742763800915520106258564605586218681785623887249642150327222339384171344349076647585173779169706568670970162052057559956737642906311168520036779064100463126714916358570565767971801034225892848047978543019953393588181277250348517296117385471707274613334793672306090683066309749310829920436452128131247157872940402899419276112187856826046117658599049517400486017820699019060933975797095268737464315718682379837264231114333991432842083471808991606101990543014000702634775153036964053644140595070255061599101498090504416161258711291783211343361818668590099178369423921448965117647209743945907957101850435515884002973132530042843634499703363891985458033857400776587015703472879555909884656152793796273344457092202525148159934218092784401851257093296895082544665483376631744457587422417274422293099315269879519295813052150056596022815687774435948041365943129077156321086235954221232378650256914459900962576586758966399217061451170477736565309397469426299992448158047536180130097045525627339211368710841335263050402157805635591050101237890719247983884541202538663116632879966548811501918633445923594797855849455866669861363203150716779359919957474375428458168881873202412782802223395125668664378656123015182213821662148103293661607492293737478574257652591060528838960209609462286377968814469219940242675851963331786131504195629135380570447898985238783133794833561018631192261462152428107822260945642028878035892352773409129004613406137893087826308310187928962831255992321135866481107387397611822035355046142055366610811692594886815657385328126058879426468622894581975554013924256626317096490357361617637846887144503250356500155154770713918186230900712888247260176920324903209904961621455067403636049525437764413186752449620937171070825937007253085899998386444092719145042288969183523671711908908151468170412730823905906514543606145667858262930408563013747773621645693272398834042320462679221642335541644757989249846499172027244986189502078676986527317427241851720876957210293514304831322031824670844990493924757822620189720689788490210386636498807725501577904295994404574607414916280234362580851382351479226569790411688822896631248740865205710512577907908462852415857231731509776285380668267244115709040768060424948802123307441654925542790929893978552220904241097179741124275338720125007032071364707231661455518551693010400017281950441563039395365330611575991261075971514616365098963055727808380448274158497782052036599114043174290669425780884316155147455799997159108096401408332621578661575078405259877228809083984106953756742582263473671139703140836656280018851579466697524893330704920073253155853027374143014869402958487351513990005079847486091040663168199834474695885888732554738777373187929787461804677005945761026371255983541177251553188088315867281054082845146147733666171018429591889938298040019433384261978183414839497601804768204935569615169660299368242695040181340681146721829206549086644690292843205215957299421526552167369256124866635619271321297522767536860236551497886079934634916515855965771783331591842260166438910181686688270930310280670506511007323501973882947209123421915666248067135428530480832992270293735933973241841117472851659667750837786433138282027727490049345311348260518652339027584535587509509205876538742766343229531250457363903005784436923978228493892414275916129272723714262382267894724747090735130204983288348890834549097574164321252676624309329643247786071977833942801022569038312422234926260358442798480570504589967151018744097625167932579116839571470903643533804869462820839022697048226613903427256005330718888374812420919365112699198940148425126884296848360616922288875500356378912431440724792952067913365561182865358265712476782096377532380737383845816430196373235810908838358155647141606443187355559104134875810251428908177263193002402533466881164210124448614668145069154216456454869266447677254381981553857882125279987345745665572903997823827887613546332120341698095834469371535270474446061807984793125879335609240864014390564351956605364319034232974633258799272886140138644941330029451576295708555671287936021692548746680528578890413498444960071859923293917172362295565421557956682471535900119870499054015433947149575697291546798982230291628187359056266562270138813094502135868282460789216087485890462799952885634180857590419259626482273178667951188136924429186868865741266963833277553303071066634315031630967630152271753785703686659154326805970639107141016410709545464366053368891638520423082673020822797723680907767951946180360862651683119399440599226062258143877582259199846369568192795590967906803651304530126067861481430492541958434388393990567951723024381931754826084504533604720573242847519633878428864538404010478166097961839224660809978835415737020269625362775956528596210717676828333220019050354619751171693107604559849809626091624253257824544855771534692789311161456403841041959232489794072505951431576206068253864595443130065133443122026393393838678053936347667779928414535412445018601254350746558955590707273662673560185385220067528130766647124942316140353990069479812166331267354850931454239942676673517020564325588635929925213926450231952112210659362685459192335476561601015870907439812711507723483335857322718088809699640477726098368300084401359666184100341474500626170127918330286208334789273344560381240339111213852662618591023437531192662803550952919146644823934686879142324558908625761832792456622257880614748558038651989845422158958828129882164364533447587838316614645396197514048020570363158009070950536325676460889374701009436335471333567386204561061125132297978505228078906306262662047853453200296705980636282276093133683768113544931962601849382504232655690106550347309347449790118226908075078481381632780233252377723331976978465938691522107543902228904409144307269740975461694343852990621106922791318227729106648259228182373679971962372537745663976851625484454627384384507705260430253966485696194841164743366078806975048582655159261841782994861764334107535104374307269418263055068142562847021291939078619397265590078227953487951212409271215295214433034711166160827531962826540349802091041078049782778170584039331753368952188892677228556684182528656342854427231046751000692287340637224711290197142780808061549751511650411313811479517338073888384789896129804021860456037980807504972503577776868551519329112757576323997507874200561370785532332199391686003565429786412866860558507156173372191104651528556112661150656870188681439064575596763200918686518548479354945821234185084911669109424412942530291110699643665204457103559877752075554623831500944335542395497835495263039526940256095190196785498663391390357689366612924612722774862431871427959444391051729942139397444140561930235569886893528134070891503992140924106279995899086968932863634367242897215970527417597154941669062374195333236131979545375182288095851240032185192029724659000067807801162586081093342741666016791484279777051148786294890177789394449021232601800710116342322186587908197339713040624885557790366793561165351600452866379417737181791640799091646747686198423433128257635768079758136407464626984116347506870241119921187298153881473026357654334742133840003679098692555318523228399406075259799058931501368596310281759697744382743424818471753833789688511399893376133931192452736403381078177208997840470022189642602967363037681422646580561585441452380607106827029850920710279764222671656848228325070469447064150916712342676813406294119259411625091596995117215280860949455632726157518380805485082758380186951741103319876403908575870561196995872531608880827993475664048158690779684123083228860365218596255236750479987015779834713810660560970248848712749497859243994231867452065284353366104924205014678444263735914137583921328543698299135337263656548699710608211026562188370560981788149297190778346026703777797609877630068563209829482396134463360135728890853861311509731837812936170864130874495879668556032895567301013385729283924937782870166951200690532400600400501385815769859874249006602576472200135525069893735534445744907644860935193792355859602522784192295973843430786332769122415214444014854031564745494416658820147571527324725830791597885631957074047623541529160981101970394427366099152201819299014244793985179265421494335582949456937768687130940251093697163565742304515954701726816800612531898796542965946537884676322417613574466624785046410414460456885984263107293233954250513272648119116920235257037650518484891207283003713755036233919905284092993661540071891259600525583853142531660035816808152443823884444288794223950446724315084641073571339880730819949874809312064869518824774326263794865675781235612129899394233832206694670683946624393812588011283951804056583033604011037782966997493796181350003307846082911846115377669276996928729908211194623288459584657584012610914641129896225027448123156906561254891218039030040771454701885421117291820575493902685322525742792391416083901461683314768159140746044782805897132715647755091798677506761773935478432483757718989301415387081685318705329617365940773411634980075080936235265840365811172930895296122514866136495520218717211313162701606331309314886437617116982032887184317242302838769197212388319846724028711700281799362684589629296733091091726803854778127194777126535354560462614907128644361564170799046290988994218983260096027518326648955014474765597080359994233038871119903674787795711642146892749011495214058886398096503346485383511385424453746742054972681397120711985225423226277255400461150381087710045032330668149430459823515186497377972522485501710904747796959593652372630298248429685554088568524546748615860086741260570897941132477612561973232473968330660762389023254847461589165764560928645880186129456353490701239781797511434464620758626791017289461894335709668867548696754179477977910732788755587459734736511678070808011924593133299185528392501436300988359315864381908676261620353484445865430625216176283428713031831260797340601478680178722548539866570189173724551218049732425109611292111079407660076166494578692408231179804851830417852574386368409561361866149467681066796581768769959813534192842264150597527788422909719074847068797634371994360935401232891215305475132214950794771505953735937508219245664920362000956466327395492729390573458399067031699700429205970816170213619259557666777257389640847982252660413743065981479251395536322517563211833023324353009595276988650831725400861194893709674566783241757844561345311606877580112409249412127547325611219794458532824122124790074293216788512511977639703729455666606598571284616875229346945418701075013956792496569916207253515335207146465484902390923505795429449188005070964007606116052490517283906401082525138062852521830396205961112738069289199770257732210528238731294186287362708006872492520695908282517449880068747332381367484023555298758505701399273372178980689282985280970859476434138640006733586740357196738652799642434599098415836587254307937876226533070706985533046480346123381349179499377571385911094261536767150588936806015020162129662697447186171853637816202561226990984110829189317325047421487131311026524081223384267840937483881799867311567185898637412349775054041290354281812130636494224148100967867911813750228809724398623726441585649163844040343969956952002665280150477836135117422943304512420762230191902837095330569339023061514519522368130892090508895549244310763231466368950265174977334851558966791049564336597222754197455785977342310400007993913712878045239038726893867402203640595355409475331094627515888956145810201725033722519798235716492168900323954130208772202992206651069706559361712827834151919556935807446915173031976944331071191253093472916673422798913791266355804168301919681515469188182683119856675422260859165701682706117789692568033587250084916015938938319769729887808404173728521631987020794903279966175140442053542874426324963315879235672142170432186407058919890553774391168720198456825013281004742646786692745558395717951822409654741902712921062556083504495392594595457916458857645647048530070501947326898186054905761608968441508223168367729351251449599469242731881634778949981169787930319853872817872062737783688700528122659461091924312446140362834437374491379873944798395039427547878432733322286309999952232763566915236283117108542299206314714018688476413398101702744439389787369465520712067469847756110137425378611505283879884515988114286802609540069550113622951430557153520966323632871533265861783621379393322315652670727255063968479966364407983862066871686197734397570640473923461060920351067055581209627355724347082038875485585559545746773484979227177290977357097427225435767369183897662113706389899334938111302388439162530575061408987689167354331275913833253451912469032554429093578590089685899023020288533407351620067498361672811355003387784374125728644224393297981153182830860361261643909106490603253379584839120974427924613458467423556018289439144390839974056706067359026496202841911781623778469929982610224688342213957767995562497791820294980317341378714196286722208939613326211475272567297663147414629240910952969915884538410264501426341908744951230282609400914108659674557419520028136343814611562383426829171095899494502755773949661465993676133542166043199238931474393642767170822652375875769133376351495898585441047617859891869396644576501950596113334591333369326065737192631838999374827553072269179223222267432670237512943447606422350482759952590383911570854887691892485385832218081198181936281608618864020467179771090008005942775438499800957704484176504376209391515054388609154169353166253089935865758822777227271897481384124861205030914890508501030141774033232054267389826285002615417722034332443101103312133837619759147189655423639603331588339158309309773807048686488926242582307615440457990303749405909142172477846720130854612219353674787945233754158887955666940857273968235408058991856347072324463525658893469565750035326497651829032177254495139898471712197146150733097238990886754857908614219276271678937573185514782615033502934774702349354184870807130048248006068045072170365362711842660486764740146200807699176689516085804870716884986915910612974759179802084472320061249281695440852442380760859460699047716476444380694759914736169238471055991969581413704121989678129205232894740863765316950358616727863945351687370240008342919549371545374305224777944098738354924377531658272839777399211782343961051624040297506319898704633721030556535490254523131709671454977061254840707557457976509775547151600102095623340924056119141915861710457710573569510358973378759747305824947540162054810143807927759064029986270732925445810077823441825670542024737737723574172263796884082651797809396569383793418415149435911211572239204609237401606767232145639613845543348562585988450362286140710051554710033195968332616664286570952616620335990662315527441751695851401967748771331262400646033052163966236557677914673065436379391395368138310607893906114443792954825466977540301303675478301861104387386430792827083769094127444072212949045594331767207298169628432870570980784812908435282251394251618416323259451605310288846299351744325521983026758319196692662473202264838465977736727504499536248126419852649039825951442101649498983794422282097856597671869666493646083029157152886245102438970855791508043472262450893965551344321161118227445408542587017453030147731896478887424037825589441530063656905464130415826095615660512076403573559900957200541384927506563985473581307708231134696196364034412699162397208718901017011501845333757072684189518505139210489831726457303821191817444985184672186322387375696702268047110847220901049536247652853155282437027718426788822372495306173290587487199015232566372603998961755169479941474654488841828020363081048065893023950301026813252715678118941068206906522180122548035884426914177223349695129376490249840701129086766188461624609885583487828924287754171824969829087457513716727182574434283373764678586290432909103601827507669166430322055887850647200304116982407132369561781331454993056894014058969832543596271711781697584144574018016112745462620069592137594987477838296579850071304782863437937510664933413052722123637282690484727636810901171507098542705815022844661348464171833158061750667279274570934587734849230047444012231564296119332621081819580148112414864418815222807094389774698821532578014636469105933104326486279123531571685034763583370702088184995413731993273207896777062824114654412997333067156759678098202415500157092313216892028473261150460460844432202438128255502294868017304701591040537686288345565252933960341967265024431168039622335116240710592977126681408042769388979379087793629759730655429580111700445118566539678877443171068506950210609308273942561100459108185307057716321693976240659850746644536544822591984146789528172474129841574092728253096131671257544729440662023462583355322824545411709317976587041981165633500165985537618777961559717962179088082641016517657451065077241273136451409476025022250356894432797910592315959434715935764069351886919892651134319211514738870040503650950264470993952300354162607985565420715685145911299522554636694493604196123845304076177703492402137746042990268616753939526995771299989941433833413716506844668552286302043888870125753218332550786340581539517558891652797953768687405777634355920453939364714492452942948758673471231780926241415300402061300897002438363345983677945650860146453487434526086909503505167244585530132263857442402405023311965346364785023995446082368063077278905343003019752635617824909483698042719295031918486547955851816171289312884957728791659351462112653336963797562337275554604795128320527362942596787975058153188384559347072781803593907044575540066256176789859005971434107733828661261120232466254331375340410779925916176268075639071375845903217027291038843328067192751268724660728284530784964462428801121205585013531948373716106733953003824698966316619541237330142584776498467037081018479862396652002353674436405263286934621559970684197845707599338870062528394885474231953596458878057897424063146664112286465987734428622724750082993766192919314954371008668925937388672783523871146288065791200979430185310740236525535617572205444508222276081897804012989498901403213722699780852046734459002660890675477741196196055781460624058734535159109969325202675299260552873507293597828367539101331231993479452705526285874167146604455141010586889452550389553327203725147761446616815179175606616824451197835183709994757068399609812393614856443763594987447950268320511193903794213406142601465306057307516338757945903535076096865752163548599583193960490841511281904607937322978084815742408428099876221073599773289181939710748765091184399762672349047704577588238085666148669769659623293764499058328849962745127984462726950273297591614203137991930482829834742038351296324804654157802947761177567917451292689563953697076519116180723478072728483802885109119435401116272046838349568488411352977696661918549047508333239603134016453510641259838403581170413809008755019014159329410652987666163769263708785402458396394601995335054618389391120019717724962508665647903584457712474785839508981565681129897979034950954744316744566680829512641046471419036395444012683158514347525632117194259901831720694232628916607610186438553310322175698883484293189603282459467438732648682854018448513685944123062779247591448950236245061682247863097758124000419171906369671337488425916345145321050854496805105970383017469478086793076556359340320590114212689886811678791873302027082736108632242060742635463217456475457400615553753966704677227289882896201871181880759874769041949145663043130382160142046489458876294991192634065874880226119221382427469614833642671235729277379289604802621532187205286419897095303646866654721968744300135991659657430991051565227133928627771584939042463917514692650601404711504223182393409987566537888496428280578970338791701930034478247517076431030420753485550862850282710477309243308255868836758925524616413175979493562680315470475948223481175091007434238895170040011528734899962941409642164938486352464531658696194873223535670690292941047440764182289957767447631189498646655857645142923605422118186927693346045877984268448974676554181122394078894519083071699155493396340764028730100575022743435308526760328694175479521127982083204284775986914239047035557099120116863472243088520098820729141577306448674565032757941820038345307185259617471900616197748608309256086053085984147618930203654974541923111182425977170721278976742642788093563362972794821349286543944849181624774908924538339313918660138044953463365801344291299790476428796575660443629690135449004446096343427073188514768151120235042717689049234289507742038467187161220941393662100880891372458542802200681621456049226276012228167766961764231663776701811452052838775478867515631615854992847734000027322629081972759380922363618509277274863886938793542989981469570834890714494836022615726116682639937006283679359909200364541367908687820387215184018419333521538798358317507543142128577480492355771264147020401847299618844612562175213603350074182150338015877163575428570880953945780229220499328423804522880166054557410236836442409591964945149082415099041754773837578988603300503793456441465794770146683933554456159437390289961192576441520778755509368257039451861993443994202983188724698486944026678331410181953923993002918716821879850004920073390236438379663738073652105584776730920487083973907236861522148626537792548884481781068776054717568004333286362676367206348554871239360868395182922966296421797254564449862405121790820388046983245357583996016447340441015666332995399206054026618857014054728408650356604899684679331317058966341756860111373075756010799065064041857236190590622862890345530088617408784981881622796094863440748033227913648321704578489283152052909019137715245893246415398495005107250861102700692744592967503564520629794866257627775964540862768766739677348389643534916829319756413026400810533924849309023042697536855889634292722297534270805645474391534575143034825486053596914368243053265214830921532425086355207919392219660692164444660162146124973122739969664966300040441690639640365547217082867313182258479035407395453776546195696697722727503998826336823516911483513715452754908006506522171810983592564632878592207391526093747054362379744840765878610313731305194281642454773240157211371977572763151888134660257300812058866156995147632735501392614638017844834712333646181979250922318085626208788035976950914288289091287592292019387287952435320347799746774348649538213395443954258170190147067467846445351558802951315315460820718567013116503697468624735420245877430109498750787399882783828596544549946947481857267211404501405298978507396102791192667285581504707288027766058336021106629705840993198513989073820122267156982633120847904508069073977155049503022718187606467602858600746252928520785824080399685172389033827632278746699874063417934179442496341233470475748195111328193863817747894078732403768008913327045410128137952445555854167029123745749379251370636120050292032409483396862864662464986448897444368296678198057049319301731892416413666980497743622436834076230307613363397102941710876013032497553764437853997053716818425301170595052425502760794810048371315698727711680867764443539773425764538723748856906195957111026217130531410115579092771732634022454521272254464594834309404683666729162142349708283133727249157891290581786536172740049217165811404662313045814627976464335223699592221592992939703884136749476313453757022895599963882571463571991462610535494470732996294635072320963007293228215110427860652096998883636307178501673455167294640547252586274728875186980596932933806891091532667347610756201144359971811249033331297752225307138437064631355348549624455970301588977157939778782562887004114641843270876897273669883983308550616680399891381203262701519822525255242199005975384678291058692000615407813319375228433163843230834903399604371409122498572412035449395428491283911035215098277672968658799062276929837813547043761130203056588675061810615474663510840003348437646175663971488743422801035283292590857013369412124182291747085303044328083572637854190984329217172872133823901966003969492814326098468970541103963608354635529268591271235221175168593775123962168436343770249496647773835304707394149584049706970225744916712980084928656530988964349259946282484365637025172287920489224042464379430451562859345009181521585314244475042277828181255682626767495146953555989243339074125522235228799206735227295996477591961935626534325178412415501173717558205600030004623546069018725587263259096784652427240069041787090977917740533169390938380614869511731431188394295270410569103088305551715006468397836410291414071539806712358971043113878085413322223228008464697344878934452281668072991849073806110501665000594990649580246899324668527274357726014528804334546490168338589312121489683303188074702193694341315665232734162163847505085554949121012672917187537396306809307230730498419794234654161298062906482343187090934046422586876576031073430944369456384980606782922323440886377863074849246521462651883208329313845717543238830334438935861780774535582166875162054440619131988439984054934614676642694275792157934937017083256049260848888159952572878965328590567047541736247913807048164594883745393814264530641392015441512993517942569954223223658778473365609906152465713747275787146311687740187068739429664793595018309841916594585254661712866351119453862556630997159873005080349801766628027246732584509582991507805466330230720846512625196809417727877715536616373364696962179279933767477463362088057592392939744120462165216827070105912854664212686699418712797669077789702661960392098070915864141302610338185884130443237929417302761062826875943488767844416045601840121569352368480223001665709412017597964404320334562829135997183727777509302556946497707861100578732080186824351644211467997942456642724737382449045106813749689453664129242390903381481564270994134951444467780573660147471033290792824158408862897923617818028299169444777812740114898115536794058860607788113783605842476886564491309300657811913341848223287165194900323709872527417004544233984303334447169275571291486761796408577788501956062689512232971727459119922308661080838490073126446113482012983271995032124331614541873900410502173021410383804364836739141453328581563907414426783742717600839002439612579463621353764211073161428389940933184104615573883614822470273468612873777168331218069136048838685223150877640144181497038308440131399347455938913358323267314413020581435406149056890816998783520383550808311060722012013078342926671695033954593197605971114059403166502394820736751220387585485740762874624125401919139098421557993134048830271941954563313016090258217780773879115795975026359080719609522604388153398674773876907076328276105668733681740187729821854509519865614508500110009388301517786714225560325915886754633734893772533595123023150325847476935650865592286151387436218444484738434284357158771977872641700836750588205777052337086842436032832297186068282412590893710026064281723759305698246022230520212913168078726593297069259798350187635296423404581012374941205846989229521682265332541486036667964794004127002815063889516644795224154385138638198927543245845180539409243436819377526447307287237943812603531926900736758253131886016006577752411139381116872928512641798375602220871655094316995314620703778957810564072666481636249982767849398225035327103498353513782872026752008112174163209845835871945185896850274557626902519615777217003073335119631081512415950569112096837555373070805775190882413989613221782922906488649154495309514660280386865619496532253930479082117423321469129174888479723271633236786700646722045856309995623693075824155316132212249670154617392910605695052390475979345071696757651938533116923259447959086527365083742632062564271921961259259071575328998656293144480494333022025384588998819259440808375112835754982197434033085959187536289130435226261190226361042160877164132952120460602960148173926086664710020447832708188691691067206285965438769060550912011034854927193615222551658332311807545005640091362342966684096496094156064293191329911099347404506859997092074799441635354055979613663333147080478088590957528585167676029006488255888360261617883760284522164217417041082330876806978232887060718729234035602949698567728881652272759348525680379750148285742602205049311061930207967395967018891387480327811210222183181754727154011364608951378562333400231530105045568036818529013681338889826312233950761000113814745052957955504912833661161334081178411137808831540728114252736726560321850874863468680096164372208614878789982348794050407560196368193984823658085736091828792304264505076074699630673296718700386383281983600345520162263088015801617589164847193338055175209500205374989445390034226790497681773562232290277551241398436084741715896687610256328097147862845759131433884124081472717051843824877819015296490418569661442612193326374815796759056579001592095241695523059683929635956180110732347225312163176821718149014621218183111418824056274367619572812240773133462010891187103531854359697166448461683672817647305636516500632055714214507095237934340502693522734657971638918598126165285765592164325366663217298668531918681068336786108340405458998134391929443873794895773486221902748995247842778223391268714102995261001980358104459790890819960794439279840967240980659325468630539007956106983257428867632531806268811079273790800480948533712442893888496775023192866596476100887173310472143173084832354739897318634979216986275983520813176378105251256437889615286157822759724161731183444176161639821452654941981274185704497907663323838595694199675942789649580996993455139959408625049405393659412305435383917133761576600601275498909099212515927181173672599201754110542115512343384281314604106916933040125780255941221660455633903404956537261275130095275129217273465606748193191257491589943156953027362410398352293311635235086140295823396973915241570930686870978744949942740864436950248353648183765682828812222592340829576861146123826596795315886971057329831885301180625058981432566169338810357890182025618143010822662454540109855500110143739917986823330292893553872951051775386832742023104898812183655349368481197086202778518249699085432675609189650606679588986714016801710354061182851866184918521068583243125988765071117137721926366703708354644878528551208415579864372577206379579124921532985542275322566420934283186795158115421251941885291753616596707510739550209003355452709220996768810278094022349640522893585743626845389568611827625373084783178489187813471591236118261787387705306813096857686457373566473886447877795528236360989389747337265687141713726249217216124189269331372738092942274980892956253018214050784275692582475871863375266688243648150412187257022981150246346983363351803798488436879168114880625612622413807597819397098207549613415109992192040356274861388585019177416964235442871669501268029595394122685627857882365213544489658350445673117248582981739079288579720675650884441676725385758943743019761077272367568851550871544264998428053815270098505331152625758591349841232222459042479953870536973152853309756620894460904924754836568947669199401777622248676340042727413722927654185823994496853975871507231412782489470860173363478178529833330234081260525690295637127002855782763052334281416048835324572551921129629847876355504794202485195592868431607780338314144575510697261177926307251959965841802865985025216251400618430066081596288094664860626129384967533077900376272126619546585419180046385209659210989713597037380367161139143605296973496664703462602492911183669671319813836247135755058481953645888818489663471541929284263640554303129601181648008245671411938829107286228534381893738452444940154305143823370891263464300025791306283564103483492087234440166154464884763058874709857975331647484980719360755429477656519428432139310885971305984044353995926104648222161575299049851938719344475566656079343154898005864490546216550039125332398542914037560027076516286275524166542459485912414894097898891115401631679951686328718693323014766963787236630500568669239789741162040082908011943907096451084440413544994895716228359803660161785777745533150002223894596059308400730846910444319113369461870192183953240689404374377157874189092558801134580178534065413177657425040295666880634718633124765461553536544088152503991928591776235265510813692881923228762650611981225713102329314793982530969197930330055890747338270418472297472593282233261138908321668144168162137214460910147432757261292480727357099088357341336191059165900410464955926479273534511730593668869667679791901973047072097985753158637529627778267809352144905245266773975926602832194274081666038344409778293678541718764985880090251240455890752908815377738058604510275094173635936153100034896238740081580926660803085095966371883425366464621574258462210565120332523151684542002880711354626707263296012064645719733008718635429054993073174122860139666957211701144095547378420684753848471844367660960325002305782195227955065645940711129823215375515547411807249556021761642821521936243005049072707714743595429190131044287318040773585746707336753594001981161499962815669162204710880752956064438124055917224787079829651111998534784950103083064367212567399251115932829749414093297105748469226070641359684809843787746598835810914852749001595178043907139302926179605370912821589507470432933869843552674601286244705080670674309566560544653704409084345572059389603512252093772097107760378097123926339120180577132251758575757259299337473406528813695304288557584299342200455330055259407297444415465914624547385429103814708433632317342469282324457778167818422370864860899178841591525869156351710405858921521051631524152877577577204787300706269430389559550297969197494696969298003423842248877582543741671904429213819382306472094945831376884004298464809179337650149323699694256824907595275024065924565372662469915657044387957324111249514167476969936537578461361774302775607146531948380067813534275829918326161008810290140448695392157198214317729868019082184777325597614019993723738578834652776286846014590200049735439391601975585253208165217730052173805057899518467547633790833186650066325775950025720814038879897317415141438500017200400324993827844521581314365026665414154420294263123174922870195276155185787325192750835124864144221596382285900069788204491350675598059547008908691580399318479141824641191142399365293871309728767518347785542070585005317139104029699920098294159011621579061283347229132645823883879288600200234079278374500602999023121811134910297114496772306385331129849805308590596993339981443489829100412703102299407290650289790668443818401667438558859895323469135354108752824669975488733513326778902685821920945775982668312453875767085572918464785171823246721428639368763027151567177837354319172998903586050641864857206645111195734516961507859741386607649678787529661023969231359548281108179239842883790268011467365200628909803758152450663960736003038164940038110658883612443566230578178113876701311003967126410540979294871637736870732463511720320000475978882991970180562408967992568644040406349585004585042066964015324538843623949683314877528335818102531950073156121641017622332001289889436013175948077122156399371248027765374815388097208513031118215735394847322947920344081587763681956572800902079704119578835542933013798493898409837285694238250275830560961087459493170626498998103502437390234935850484018465150304453199234498249372525832569331737520378959361718243483787491323872480600020756108252856123634024751188273550357514005110399470100575444504696058226416629573833770663949522822886016534350891564102491919169833256878998209719058551955484042467637578106291680906234858420154379512759110815610769080338832899375432476778943166191442117848840403570118119003622812464683565025321418756455280302425753448166724748529590326216240807886757162351891934671190515265374550786904977682102491281223506832858354608362840887538220135771923961903297581647696907533986504068384201643378000436708549117181659501485709967742548705757307509359617888626483204374732934259183764527414510571842812708285647456659234662390092505748312772454861345278791070001722221915678806391826857656826928097924467793906929226728952028014614497658197673537025731638659997181836925371753572635418330894919960727360167907481974624085949628388590352838235332239381559495864894459920845366457259389095990013334615884892982591806546958027326033056475323055722992774262140664522581997020237670368288514370595214361184020148422298582028862819175827119428280295658726363776966672538023906148162790385671090838149063008326622148828935165388840522119422754421846161590677521666741973183587282331141026736069311898286388295353200672191499127041710603779411526776227195268368365342916303490792598468832174802329004823280191529544444110115008249372367171104706464008153192908458510491831510492121273534744675001531763951337182168928243145994584882855700117868556965714516349660502372837106139136557151791530324287007188362173961357040711452103824615606325440041456446262283275607679656909367323499579791651232366208319467865442835719830367155580699503522680346960193026521443361917209078832175873007677362323413089306359139293372327745422813440977811369283722611755638431639250213233493441777588186436037621489341548573254992642854331943165463246045949410982378657924173582264552476016846282176801074404155056828930183727745527051557694820167712899604508394718198879057335702762006111268024901663169172161322867525505075360648844103688113572557960371358168446029548743607387783261324676234890328285020384155393710635773040989713858277207463808423829035376399815559872774370256171992140019988618546030647493052353678478787301805850073062346136300611621744809753674277317303626146882876525426278422676131529035900507766866869671169524198679518577306860530316017524844522677812206907322330335272410586851079909339072633466950017323200979839980936962779416485650636085197995658453744913498105324119800691546261724574595226042343436695470948006071945658693547378097100543498036377771284526418968613346830721129482614746060949655278771023930186067414356412727191301935741073360599172499259070178205976010885659069242135689766089352383905104084494837543450865371864194216768147061937000503753204267905229611252159539342687562716750022954927328936309161366267676219902128780459516475096194943230105393164969445180805087591472377644350110167399312889445962339958996021671926043467709550560896349335309489455054180259957124688368630157813682694352858462680520616892525997870479430489591483042596003594338972531042483278239654034517119226579562124569509032550372391868229811681016759346341517017928354357701736874530795216794953364800958758938898175533332249402780331731375668408865144829737084715855554114613174309301122528430713287811893898309957461692309701160444997746749868554570411543055518531543204378757294216374197728270863205588187479013226891037738044060890487390260475335488449813026562250755597849047865029990213059936024972571569199749826869238412028165193740171283097225737264416297481797732711447793502889167590416812411675643174197834856838648266157093264303213750208025242772310916627212057633666088705141589118779391883238414527660343279229919968030486731221638584616619895298702173552338028802507237927864897027802058724955649110795539959478031144835613666221143497777789924220990003907221379898193582807990695142515617819718548397036638591745648105880800762121963753146455402224913494994937099547492421236455331472157840041695254881932720309561744005140437307820671842954557832254026925725495562889938862599412764007627097246125427635181359263448820748854519578702511220285030861640559263483580201241269786844932221567148571446746956791438989708892316722462216708973759248322094073636566564544539081442425834723420869667420874683284292305651624698438195998831643969529370438846895281642213783590935449144987353679602885226237053241093153026728579333182221620524086333236912000503657496441669317816253028837541520539235615013109776325857884472746512557065506356478823709019985980692093535391454159778827205117655721244664122236190210388806439394831395032741325362911430077184086012077805033011881930889115843174842079964067474586936717771740853145711457695073888817163866552724676171485369510347461640022367913707171856416489941384609821056696223042327849437739301894808181089652507071098156773985679483220152324849805769200393631359510411902451067653610218725420341917785498323218610271044776875322087969107359925329452609468273763138732738340244460781199990126913430377586053362126557937862076612700044924008668511533058432914776291877734758308592811858425353725318412117714071307659104604825277667886264403977124397472882406831026923509610235610733936259227376429959532647479211487457912723314874478785986714962024695916506305103120971075027597407727931401904738451133080089503229692270590150960290287587781840814853064870382551543845883146456752651883719522521676910907311828186600594816434790643043941731036150231533409711275397490666854597732142979231516162448153381524119228190452698823693329524389484331755165544317640595516833945188164088310198789749577948866483492839569666130669651666717003812166170625867325862281841557413326952355425758624311418682379451858818050011004699614053899578488588300722849421357542371523188694864854341930376577397105836766007459288153333677386536956773337842930489063129297647955599692927360169187767469515791275764527874969335274873762146120104838972653241087032955209057730150405795734019113308887406708598249254454534368790783499359616377895881199114727214706717064862805534903436220623065553617196431638487359351632433599353248387906167318802914296237096408811304368946893559878574018804463454377188986410975649074664993818378635872213407779419958005813292503023077869488948968432541253648765922437401186784283927859760817596595746293829393457940015206317788980489756960581697596236165867108606348068423398812134735518499148978472476677562898798039178876811001250146166040465831837728881931101790255690677499522003793901496664745877077748966690054854146388043156938390309468943338200499843809995052319654497167306321409171204408961107315425476437828600071453918621574821897179318737140355936996168552466803752756649448239988723518747763127995163465663492404863546582061635551472033594945024129207806206122128981639584796607252791808159950039898552288112582967010807035418314765195768568226267224055935631032422282503892056033703614035670334995150257277229725849226351689564094340443820123035373045018699859908298458674492751953811505527423473776387919341174398860804373100606046220321679732685843220632152597152760132241708923558248244561377023761843187806334743621233130347040666181050534580209934519589140503612817677539759947129603148156046030861991841259478142211524976902030036843939321654485374639959603213792631031123599477341911069895024719239465557649130195471440166842257945974877340936316392101053082966846237385769296577294355343105677034248623961255570408919326356310841570568831451952340795735955684060707984308978189785688810044113723877499307727037149018706993041301363865035953183092838463489419724967919185133618087731722236302082427749938688400392647185397014247516212318396784386960117819543707978239748649120828754202903270100580831044886245286295487962113710585642319402827804062599427862164926770195447780254744280763610361811184570998950404968458406780100248172802171486398848361405825790731308240325577583116040473868614037255932891454593672224604388788661765401755446909800461887000265196215028330537379209014812310428034034725397100825919916935162128886683219631299083090410217236312197541187833862487672928922104893748030528903699904101219508036864631556312576463094112354083081355116215225176568651262878640616538964061834601936826558470799931085121527055028660646551346054439443144890758246578553216127047821329794319649870025356690236505630068830447627726083105084845470574783576738552787570800723017023753018910492305596314849616243633203014512314686103619892847277512972749403177171339782665109956133060422734648548129472161344527694505987478880196308500212625326339975256130251897051973051952410096560017362679480191745868538887855281155850673993694437978747973053683408845688676830207023677389885138540780207047363399375418710242561869914934577348370318414410942096415215508797997527015534292795287085512585834490560628173783018181503154651861045210749733029001762991739189086065549085855664077948856514891378690660436367955337026139073632428084481930347528887050089978542142680207448664852875888529617645088467265072265415754671154974240843599168919281879012731203411876129780588671462269250181370732732809548620419516346775608319240696397996821030836662498971603421407808667738350267879295004740786640482996738189597347241097360990093497707329642502744973600552045949155115236263111308584810097739253174008830332348706238891245233850924499472198738437470328077711163409182886091374233857050628091271888031587330847410393898309152297298385290455417656320490325664897793222199042284786841473927672217161617275531188890952321901650916346285692837922810492065221904956480787582565025552905073868511866836364665568616010536559611970198999247408343246058982292813048217158317014279517788661514790641908517202407091020423388849987068897855003135109893681243219010125245600427548299024363057937955939798159165359867365410745277863215727125497693934923132397981964164691973130044879240733518775266671022983857050648375959998323932366428845566023097408699454059778665933612704737999839166493697224715723889931212915817113565352808423573664105086374199101362272548294909150369832037344761798413628630175639986075791197028249999154246942660861213711372932059793998290133987613621713317547008520852395936394411625002228160769743882781569742524724740328813862048822950115722730045547968566883111633422680849610188332902034752248030829115739012607784120595354339486273017376159814395716612143191265569683503420761037756164777547583985438643000627793153051811688534117215944122932265124696770263360290919310941966803399831503291078719713328900359534430372555695279884617302148826617760071292431709770295603807217701330830807444081895410477181874782977657057189440808074217261683922899663491525369914704064093076856417549705136383911373028871512114676183366589875770640429368534585731538211660347621304701906920625938029046732347402722160803254047033953985541341784903325262308678236326122755177551697223174341933456475118227554147211111914820356257409559506828586868145157179268306634468745409762692872969191586117462913119154629993129174230010316425253270153347954243891201317183525057759215326148745248021630502047275108123838550845215638776718016599167360195390602804885395726126452194713119347047449461572326288295455676775597653376104710949230211599245494104297595764827705519841007379627798240515818533734889596598156367341308921389533698349285385809544464446039183730358458666207749502926558684624490879595865051442887831979963495886806710104001790408625909375242030505500048874264138516044457001621733931275119721086487759077263044747067044551644055178643915991771731987563912684515842509022692370403559049866644663217717503783101381674726560534629000672538480431712828992527514910907046609855394091654488831886711671658558064571276387171495821014860300564793081637473381455706102135912860207334869839258944562955748504856898936647986809790097274731638612256918122496391471939704163862539658003338613225138366038667862827470800684774332039820446288445449436917597138957050629026241997191651280766352257041700355837358604820252269455957390421132894049125502576155159620026407342178987600905407625114669974032584180064476519590373618585824707666880284600966221430001066654083053744861864822593790624910439871214351653862887702013943544579740565867199368979591782992370638822926635546446142710274068363671644424812198412851567389288173216795722083420305368040339256117575758495085503923903676341921988229057963970163879894572598602340737354540830666366959961979692660232459681346615361059971162044455399637944170307023108579841879297157166060386832017814064854007159486863305056028709316483863950572095337740770593628007651496668950979420967213471731570686159222989777574843670376604584948047571406651106290196189366007976520182510281756935582672627666025406298333265744106557169458905158424631589462189089239041042001950754899918605104062314947540057586307782018891353856201685818804565696910030385314511168348090569447818811398073703869280075650774433682736023068108747608054934228026258502199913214210820731203887237348667112278193079131794974135251619200654549751412656531807398493759993734298872234618512031516120028178864743852429626852508344277782091673395729555581504625224374891304844611760953497850547659325244129932674658714280129659906650194910436305089231764273871584577825033367105625210693656417102410694657414528155759814927577096935748223491493363603006715128283069469952810075797317616721300431532481875852734058543965022761016721248338763730017057010652988332695107512086339569532005114394643590428456930058661243112893973582019884811214771658945852053580444542816444271732999976969070415286101587248981852602020298666349703666930166024820584011168309032152837966224251330552515307341146779090465880465842433649948283793894727158554496729350287824802555096547531392034704278515045333430355913558222390430801169177311838518123814919307618716274827070689385103865083616115664534371896842665488719116639434274301393580318197938580946258242678566762867643222071067001629678068173654631471996268536331439764683636754542389194607393935862987685021485732636195790480303510460641846476286890636159574561820152144436820730978880254163832584891374635589263152760888152881454867501114999128535622608141702395479218511262343886951797108257387932477596954847836349213191327665795206586615137349007589312390839304244485467556458143272119805177872295247962183791674048919238913679792019616693716327366637342365696918085432907129467838679113521499565012238332745983213413077719216347624768020239235378206375680736213404906121917638717296659719965191765186879739344987243769627315980839834520723533410749072877378317016080997965787037531664422207769558366695859212867112290346188193577172424523177025403649270912615622742663169585357282006261080316436113701862358806207188739393293824012584155498695865048911492284072803688493279999047775502186588113435687529137454853862477634406917000980366158253973528006252598125937612854933144754248981365428774421352745025557604354375737000585878958445658637747823435338111085719671077741917126544552047965827940468455967099092859778526784427764941151031567656012134620977094270314686444064047344572859527234511354275234540016736890537681669826463016395909321674087836569191130297281971637454996343298982682480869353740639617628917319346725536947525117986357490862651981636471381481328533810407730421528693158184405084620992833931054993390685917678606338195718220200361296210963689189571441608108426709041197716653443616478119843326132730349115151873488615157253810733975559491971355254982312989690144392861719498399976176720220057958912822092343697384472425228727999686051350672588129565039783169643528368066583850333904358977446692331047631069583455849242098615290939755788293543371201365949807021844931634855847053448050466055545962014141637888165882741089335408971025668323103259105110715496059809548501790981464932486087518702401451842984068573917376836965610209951331278460355101980874304263046561744540804000817779364199397772477476413290472039983378316355749970308445324607242962269602473031164896569041387174554287924533940400973258451134462967265017786355821466437329333030747565007479349342787361817567239766248313408806463321443582114904555098106736419116634638104205647975985018423146142731906379967060921151172117399126610563813851173875023686322007782892745153555787420956839614346319902364667116131686347993021692191288502199441317608374147029560416900588940768708430805049002414251337185067361127246225651894761508255161564944830219526110456456622311151133427469183119954281153956222949948960538065940655198321398541813932678691881927622147788030689280486129423489636671575501190165577465048458190980178642897496827931829632710876995004780798557034080942927976561728678968524516569482699921117312088178459262500655175135725992572581049723286625610209452184749838345637485130080969493039678901395912903323524680648841114619750251555879963727096942340307392155522657608129941376769836779272148565838249858042623898708552919471753143762706785298510589852393456238582978284165020310450220512232792297817983732553943520368715190419974765109658692419906939258522000732112611391981205627475576065635966028470933662540214536290573160979921035968367428173886268088197685821502828980569433614902151338825539718194942306817928806051273626952929200874382503052245890098000341527723412505025516939788984940142688230714843173016657057088320892243323830796502498741430136621691368707649000433438301756658269710915002860957877427354793502414179171861159303313053176475117240509492322850488244907453238298325530606325711491261454957511502715843140087227448492082320324027538881693649213304661492468647492541438474153154048158853342772208712631731728113534638379803362291549377602056800142236694083917968016028701092236826023707638780135617773029332752848144684785139440173729586883357009971153494236442277230396421841601329996066115644640569893537618458270046387177868461382529149410637534540790120409685121401737981233305470404353479480142827010578582175371056955757082676290271838420255276698664193107896259965031963464955774999628883340745276984568353857570609788148608921684284979541811102134830819170297520105213994840901896045614300099647387075953816771343792040129219517982695238026790596150149825595544930230118386367232659752995082414700095951820758284288123737719392066694237026867894764449547492800162906228683780371518750275318830190400847115529427667968248986783316974657739602094788179637504333381330359317071509115621648292496709350480830755703592597787474524288227598815974522412782481343760926975380731518497172367713108740538376815269536110598914335489677115597425249855070306528755597229663812081401047098716768528179366403149475644785352288321076511654559461453344580704142388441868694599392151594330693673201190608028049146135040405110011593857665484482778174808978435242092459479783768530479515453334346770146277770630199245522077301635752146333036537628649827304304934858263320340723525997901669280823959613463960669209530621952411226134124835488477191331369648031296208723131552539723513928831996426957926026257693265307977724281622566847779328719382447747978995245178734471475069197781865110348271223661693079926636946817539125277543220016800015224646519995067547009179061328994592347509104187663804261341087087878756871474581924793940449338727984935045916433093436822540042433365372834647246421136460543572387297232737598233007960422963062097106145533413308321369769261898377372207464977031625479829691077050236047396344204111886325072818666833778332979043678815626819365287415196476480261332879686743828267758235232073215787984407589974427657257361118889852533715451909749442209200369537476077205072797787655264612479684603088316931130488045606584484938377495080105471782464294069615122529228373680542978260075631763315019133805548176591598464302551517298110391366676604324585743276944293896960332691065209385757106273898935481142890161997306665980016049225470868654040073746771725843149263069409033686027749184787197111854793523209716777362863599174247990975933811723994656788452889847268815448221773285251148301417303290665157962941459909438252560999840705337404370836821885677084547016362494968706134490267555840663003097111461625828515640968629275268641721219501415431837334274155521313047535826554365420692509139966051238458607331970873317829456338617870345345230435020828579129731124405730831680021951587311257257400245828418418977498500060263076992465144182908647797327849780624742310351286236582177085864168903688477543564697003068494725502748868550147459570016365424087886068183014230021784875153095098199909870971533107471732607834050779316530326671694884440398043250873095011110195372919186196237288025656792937340654924681131930531653897879513130306814644634966435284846931396420057766594456782115720339958726459976014364872026984323081599114888226555733169656686760341765273113950746997779626716538103771647386700669389045213803421038587465500452312927119835050358152800163476330447156109495558651047587789411340794103177274988556975796970794885026730400826224324979076366208208057760324532437984824174969618934618610832433403963744450030796450580890206004941937971889452947895512149710402482422451102720150411936968559574752361858180469962249272363564022422081080507945400841903495824328251269491880485881811045282322464057815704311007302628842705003734550141883799414763188956043979084098726990713022017210717481721434493920353059864137009748746055244375401083672546070941378191833838721307778094458083274119328372772314123865698231077018946210848570778108993200215124106671314410482061604860937822935215086708007150150458080704322116568954495147655018147667026055524884961616256364251035196252217406439781782760854364673460083533933678092705982152480450077513428308710501975379389537339345388799799259917028543339668565375074246898809754155155277266474630380672039512619951064867212636417034512999703487494676848410597586556594767319609408062629387113113482411978039168990255777114296553799973094451410313833102283201967215525881257575320114468287453815970822810443861474545967993122941026642220958366590184212360105619392006849762237789324013431704726002541467684834842682627844664036284472350559066509579552126087427774149598900678164250694836644728698790626924265417637877286730859798258630232358408892466871375156357716426769894337276916191174618521230320301592648709942331535789964940958916001229574500858096825006186575741751904622494484825095609509242928235197741067365691919903108535973556563923348798035005008368372256239242963612622246060309162208850945706144703481525899003992827750965915228643813605145118709468530708424629034192551466383707189971551558203489742556170785650687075020578143869621712574433593247823171193768495432949474744634317495545095279912485673346735167169906691293497209186420094816527321306943190604967200200306762124457987254800306622066071973302742837918868497324642610139849716804520406264242467594406290922393812754579470953844198328819329154910682485689825353371920131441819936748361675125165466985462921755762075512671250686178387952115550815326441016926979135344955903561010153471764436701235457502670242240763192732289367241683126343268392132529133878115488212339958824057841475424395668407263545177762456310466703880526965188284908015311477333379650338406144107389695698273744620499456304186052126830494382361262014717671589954734339477968986080129594425425553167804485181163304823379493407071053301190826617531978679411052715668420595284049889863490024515860579326205207306760348542524863812936622937425275197656129410377857776858190600743903448491965040380997507661969543582370224157106333155958691426593507091915324538637921011148444194373164694584330515453158696609976515122287566748377492753855028362519834813369916941031882029116993998097558848408581738613751705918499223114627811515005795941354933225250570798091873205893788103407550669889246243297488760276273836542161407785453462524453637713379782917565273162026433122513621296053120340521579353458151012565779964283407408302461757370932130734511239141164132884300265706035407145989113677460245512602717002533575851860269884991541036373683274722939404601834117913829124383418859660783954610911080635555261704736266420848887439896712454254645190482493243067749520850681964947987679283121124525629993690142508236567255609268068919161809271517516320577324864174734550702488218780407241366444680821382752568983764381629388552291999389519756801476247802366015837690967374835659412835068639704656696969598328035936149794949446734323038990268742676790518580654690141965172552066579305312045089325406470806368506711412228403669302685130289505458238355392109533080534571355192535664873378069616862186472509852787326029224653073070208194422343063730839543400282966125046852748397603639246270870530545705181814923011650157619710071955805719032385178415113385624918402402311364338229504745171829437955142635802499842908409797427223005734179959094476154031591923869860346198945416581761262648012606921944970916473156832442104201810416288321326293860084300116454684093951186587428587829503942022461831411622721090958505436719327626528780347873263561740896833179307945032115062768284309637826953993289159275911090649131325109645306070938232486756407918423190957846734239722857679053387974285115227895894878209846269261745251594711563094565988561564966947817594657361931081262272960204663137112288794277137656957416920121432804776059167314562115408845746986443129540506638635697035272384334991033029998185037557628543174831949187975339914726682852106110714347635360411953357999236116421865630213510764983597145961473623541342851068770204483535063594960895429572966309637332523431258306638559714967624124434843405803358275820454684283008859863941272128010935771308547879372625187762848456339001960372564646329767147386889673782327437551414124630469016610967130271207032192095173240911958986267749640692293210149383344182677861057952992700555075596534875751578156779345969364572027379850478860800468839235908870178449187738092334300895893810609204328075931917755408610480527538251022792625914430791829536845319169163896018444976898779564487300193768462258475386971607303082400741465126950523168702667230265231394082401740449899211793750934917659512654476411854525924905644840743226462547540139246778047716677215416743832367797763622103231049419671973474099068430692032122820749084622553230892363814992403648328886391221944818681541852994391126792289298394613813409973426984653383082872363664754734381043505889147717273486110641348570633379194834510583365515108216071179575804775340900342620361009568133753685462035774736135068771311847717044274605038844329015623471032635213359229274130479492825053128704837764981244058778912558510271535751558244317607544014059238522902025830929422836260251584489065945548194712291016185981372482393271797505258554338124349357895705952514523089951977224323550983418878727665598838441694049332157063616200805634680129993764800041041632581757627711578743260390183267329201251933697074775550418973620937666650136183722350163881000356437532152212531326072996728784491151214303550856399820362475633522356284721972087542991368327207560653361357240361167319990850411356780504750663689114517449402655759093369237312149012257569968525752762039601122389664109949038108818701666027072196183177388123368839922001199390157027504782848131149232200929581485023416342049232560600853729256862309631715292454780696826219418393053792067595458613679173221097061958474200407243160526378939501151636640472133408844550227185334865612810343901860406919087858970281955969972963905716493249306296042233358793807719256553188000682348755073043957673658336700480487338633571468255889148987898978788830688165003561841786701704325225151908496904033529778430195148651609708167283165749283172137879508345807878016994277482675334486006936314984954944595774144366106043779062786766850195357592536699790469948074933695373930095956656925873500846109013483080592397832521676234014376094385340334440554481926363074348623779102048156365736454818845920209599470904299290059869193768820314550347969828352416381197268408780023929102681298155009247534622887833143834217104501819547441374634392159299587144382266537006792929357708774871204347454315718823614263933441107558243891955019702697916521860065025831602116054710377130648567162296650601929404501577935163387673968554851521441624981709740230433872757760649014814076298865579393741712831825701882247384299255802898945891627726983631305763360192245871540101674158305402337980338884609893221850940544815044670718028246211254986368668435579245482188260065092243616167904327702236869027689757851720678897751610518490409377034687717549177851469403462524843292984341546311432187481188991117711371496878811049418511676622787638385022441832893470046401871751288370406349293385005341945521977162735155438670934663027509309777805785621006800010328293520300399485644936200205433329043827782349604390249451400357757818076954726610230964377600982749075487623610047923936390130042982652087902644381412674935522906306544938247962697706355001185571397003382028034893950108471358005125905250852554308380711156020424915261782175606105439271730712169881151322712422273834598052520146094177428710775988524555865100761977813021767079277498205710025068599089383773768839670425678073962860130899925349486450284092739569048779557697567545105678906688674270503751474998999068159075491428342689698151010849151954529447455511410161422800611214497739157812438611930136458230701043165111252445093330274942599285463793763735901527348528553209692260928524604931014012705868079934209753915436761512977773056810630074087334682862469647287563762831683820538465902138733467486256949804433866073995787655329714552742762034599691030846499806880115581654960308233505465936453045659749777546857318462061632411349510098573268930205597776080435974998710062219454277593605180232233271501248324187469316661395320590837278491486231678722173700061329595197373936275648749780167689144384400618410845050995505792449966571632432324489460031721928761243843158324111250559222216783747860570000383128000224159627406028884355195236650362720643127981903456008879736705983890960784813675060205532067332009285140775900519451719479196332232512452554389182598435092472300145188392895419894574830487422825140098499785150391227828891741302030721001607143774825925558461237930905775651532593498402080165281180189125018831581297726035237941801053746264938247453014894705925597154766976572547206301413392664148754059910286518207050834799587065536995834131877332223339282480470794989587098633427164169117787596284293814436706901227962427942611405106914180785187970677449599688453712954922233885939195206709193373762507366232474253880421204367042916594008913836028862332508824194688294785161381911180210791705046721377525925555992038444370115215696324201520162218841532257256077836596570569133452236739812005550213126809922359521590404929100247541790046191478239229949935881087538713887939507457452153509704089729148969043673965437911915684198967482151539996496306375311610637555739290624801008542920386956013699781362574818568263490329901177547012647466766827445867468501399766656227391886511381557845343806519373136073136719163933416116521292042687242042054354516443243408671116307909795209385853865617425051577425621708811662680718285918012237438452339798883843030218780423071066434295594939588019960842286962275072623672394421913772289146484639011868721620681368608132831388906902742855722275017553939503480541151237049562520878380904104180270351684951767518670874520996184151677741674374078686165071755057347861960676057595809529386093638897033872019057077276677195827625211752293787315195405350918505540560660904504995239149458092336308912514300821302678287518990257288438495400524690937087892331596558361499498845148604735326123543375397983090215866197339891166180706436852242890666342772751447630725921703202655540654488503796921310672597017456098126009946039832581236979442944540029172067736888911333279310871113754111099571626083618935072345604131930534286747582094721686497947410182660524140052321171758036349897158500693582584557698252398878610175759544987727765474467852202296684304660418202112701968961008109038550767223178121415916378768201888659422122240208448028464458608557459768938063393609523201085615318087141254534992138231544140811044914277064762751665832206536727497341880744572272717652456456216360051575989813452259357450853134656520098574966107964169157762954774559266006529244866173801057528509337487515631559352673754551125488905083111157980060440094256735332135511158082050200853690141996798700925271825396493365438604608539678342035582529382697683567578841775276863813796252318749264313947375590750308026956588301537841090043932399390976027551783217295731442614519177521996754926365051394596389674116766222736805236397068766868373614513798614304660149840085303602551847008516971579749796316455694173527234470603864368982898518777645753606253481761554384004612977315121813658017383131638177950445952469827624620288477545084183250872995042230822333484064620521058757972097271993670127146802273286660132070265275175355188853506554825606693386726298462068639566851640791159802131703070676401009789978449506670820319900930561570227421450402897519958404945642870432201343010620560418192443237675985833493325483958303522697474578219523428927909708805390658540653180308872229853542657700199554168515984204562454200456548147368184634108425662260162712819617731846686866633748309170266585331615841089014194593432887666655859140349051900885261649989848157773035612333707794716933378166320377217053224098479100421644140657634665850231474667980017488910086145518242615700500756993579119938680838170924319010635814464679108107757367343718247238699056932566402133219764359937711132093714743551735416388884420578619623411075681747659382442066613858137749092572736231628333533821217651441804249394122519455542533442895470156277953292568954776761209276628674244284041406846035146610313317475669461673014429877168256586952748325302282185819041236288246566908202908025213601666503904909937247265521262463827203090353940490796785746799159213069481859100106076037520792511210003639370145762914282930662547176985014685392732509083732676606937151146908983334598370453654188603201880437233761336778614242935333835980546215113361462455172901817626735165145899149375970788286109914024440640573467485706598053294344017339182868873172499474400235996995772482755101298803049978084960215043221989996242788550995803475410877602878067494415063928753690129610092498613152050923457832107747734618307930827978589149969090393197700119247297063361765594667882702311790823555954215043821465014312740016084233175008360562875959090987346418464242527936856033104759043890146611288304356785274080389297475320667349311178351763029445965638088614236998158003511005846288218910507667091457141457118906756096715842798401980947697568626526474266206878769113566721022166824633581137102170909075007867793241758506447403111031128499799288254342592983174659050332572874007627115665752522998600498807048032197940300079789481601674376887013477090632601105808097106959655402158769129599367550828718300376570878338670014752059603728634577974518972348937528482225702072594970554692687736627255093624766118413758893556077008014975274757907025741403780217156810217338840016405636571652895097333995593547101834132965029218438665062420992164200291423426215055725069940336942761771253619922485179262137709276150043540112675787761261695527314350765354427898101975589939274797696393175479018911141666441256551039778009788774696298237329286465189366627175813752862946223504900058239650376307204866002806733326250891072657208571744650756606219392841188832358630011875888641260394028344825814074007782619297847867169666027519019422447937386594286691184141434480555056051965980691471809998748305428299061816407873836996143572889608383975693285202823170246320744714667706503128398441771752404273461753967175858173933296257542089694352820418904066452951425239220301099981813506226764053820565700501236700296644962266798212062372855899111546614332564119619625143973661787920166386106165586476187596988615998791042266084570330026068000872970432335879959995480611317754003656501096768832497616297267057245697588463526747729931905121844924122126561596617138450107039480580671666508508482723327171015555563293175348992346274874034499244687198288973641712375539230198516553599006577168215879473800539363423102448429128827208673185277555971168721113933026319595369344942889364256683902454117158097305553768311668970600049304199914577895371774023343463529692062597943874243838231703736685684453674347355052239859678357531486619318440974662692046813990428880679784679186812636546211995720623378670417724294548888071942711614462212940968194281456305739736358459735588781391807037525096987637050375264129168461720949647419638161378026040144009167416432843774375230340483145625563247254820192178476170857139428432409983428712242520813570995800092035487000202407363980677366425916615417429124662548159203689543378953309488186576824244259721245064207207113381314153759498864731847111887115282193455373475769714834640441204458015941658982507804618150629523053494973283771665397212756739894607458813930717925915216845031600465074522704851737343209986967841191324070440553237084212438899917648647194821900490408170454892448062522412320457013081932016299589614966557676896851025302113504570985943870317189112125237542894369749457828999217927439545505859561092379530024425035603928258541526736333520865421105945151457947892577099954907553088299036206114266592456127302536399984099272712262864862975086569458650233573147550727941547761748426259182346207355564923239490928858919569891038025556327461160789545345061205524798228413505170801829919598581576742714734580234574729479494694488053340566099128553934362685057499085207044375394482477288121702551190576615201918681752975344318999745772527343981177934299025990452002790630541832328800219286661892482889609995496571381043287924658652502709015048020403305744411142606544773173465243456069092414372131402465107650335868907457489768395237391649339961826898918332979166096886911286258190570138499095418772779888202069665819892979985114722981340653900636045509657070222864643181563835835967122186294901378331661649980668671939336101923317173656627975839962909167634179371524521103224048522075602983544310653010032426752199901287411101061024624833107353360300216921878849639972955371279129650065567876958131403964819078218601015115892986447976940465936787422347807600816974092072245584342414116694859179077614156860788753326113414431561893500889672520666178267107148851989199926212042447754986578024969771424733638155769159797105143216933101012762560841767983848235861367837024085533447327664954864669899974109730911570007482465679086857583752613919242327302342256363084001247500833981631910442167491518056520109124737593291051667849662947931808861498935310805046333088355645586184318041375586983628314794532286537996028502557717643554177170643190317615999585101645759788311601042585132479382269681928450778383271929458535510921870879483554976903703848491383324564191901203609138049585651812266161491483283026319870300982094537952197077361318424751462080751543616528287357177045246436138850567172656528148492998174969713332885316582577506216946804772338771582245400799155618861242102945280266067698468688791080912577734419955807443392427748605927311742340756784768063811934981241222791277641655773277850487291343467226633926817729897324996877440299398898592314720197619348556389836791420962877633635721953807660449991371187348161049297005355843789771743483714171022022527055754811525652111730726463648892843371424166562159949601577932891276506239217393752670607207277546866353143373209320683685982077092412540228812633780613810352477744082143668216566339275977998425476057663657937808698586451466582657106432219470413495844324703011861074746446317635812732695961837160651581552035614394790838429667338791221273614056723156194338466727537644562699401877718622182384142507467435296290136536671086043870920411533442584210104409459732281053239163212769082680700054727156979648999601658935326196705664110833365061219159099480838290370379614450901772653682659638067558976340218242266824584188739131693917342483884275573284737385747778731234799154205409751186322841426533809874524740477449347118816138393767458558314833552616671747397532064946626435321381487594277126555503610266952349177077741763186933020665569036022471026486100726246988749860877041773661411326611888099924000358946275215648287094013591165473136645030315469293169700277256051753630959147181778341162645789108777893096640149874575103233718438108422047451965414876601334449906266475779008349837474326095757021473489090893052898970748323710917310310928195856848956107849158761915345795352827984243531738067629124314733090742461781266089163237211799088831978289667252878006716740678979701005096769481716018435138745879020210271917254026755632872494426435134736057164567790693300644883155295354467154525058430665028791763915336454356562150210078895726185301107347549716322445165623625738643065552568991368996866524564631874401797834983473121511974455021876481346262553505408874734723160369767447070353357260471881142589862519792369224518133844070706127862136798746045053317748863644962514395636281886803581611435806962066524048213503372291590671911136703030022853507522048205185379536649906498614778346063956307202705180128288730122801880685615860189423996657341858342240853294228788453210339441534253340579494068070168983969319467528015655285717862448056636488691561365092792235525353302653573480114407128787688006704585488487421725658904506026395541473311139649630588404242416666504613927230285363445617451612961571613447476688947608426603965560141952934782020155709762738015820098473853798508683492759093272897993895084059313640471762829800273643979871514480270326539608244710823638875466076770452580862344081783406729449751189224391721990665089040595977475414754054642109523411820551054606739059741202475468482575287238225273126787791454517751570316274345913491908997121906417480550826486521737449240369897082452739529204915535274657142727657106084252756229457248937810461673451727119781081705131437587810424371586017781611631546880544295488113384916750811501431595075605274590506163838371695392808851246002633579122974972503222501623923672724249468250238017352469592878328735920817359426269844859697545564396545112113918255892340016416408546484622125839163289012290211864881380589475630134952574636843003535662562717016388389897958388479699031395235702094933901613114561857435692750035670629903342956399695071419344199722665843419668230382889031368371953149832270665490348003378394559386754468113495636312800528352796137026683358406170123627251045668592178683455574426935295329887996815216185054681087118206868388388468470776851526692650501814663791480265024095107353116179753914261760915656426504998666004795237482344723522373861557159735256558694801752396434187073762704924299069540184838581988164360854751881221501357804178546732851530430954358836792981145822882572898094961671421060602971133276894075665774029314550660552685279016688131894919377481466559625890529847751887967829149071474529916551624273884070809976220518360965662487474982182318968684208946766319840225316865394165531690332812340622691520272520189280719742234327227223937744033335009826799780094080074723132123937549235648920299184721482835186375554660801079901128599121236527638100649803292398198052015534023882677563334762946152885426031655655354030683150197513016906924565035138977499395901259762261355731604403626114290805818947188555902388275289467868636136578942441613010839547994510346778326877438763521980875354451915715955183498169322108301064185618773844862422899325076087511247731571067977626204947446088376322730778596281719829992095162259288803314641224375048263790985399925627289237962764124533912586800527119180870757511650412162876656269519491639215948106336671816250206373831681470376266596890771898512622616770185001941052690680151531825256409794017592267386139172181482037327211402475596727407798117349234466012450170961296311921744694464813143607226618157528335632931046182251786468022911641412027084771020946433939141955344143946067811729602953203732175162996905010867913594070479056837370038900204348548392854399821984832179833422158139107688565975595447546103573551299325244168016773715886843844697363024303019809427354103113325954518150618991617654479481281766160409834329082718191694797805606197147969135756589738069541331372619890767273753429653003767018106065222173847683983180023742182510382626206379139274460408821544067283984897430803583842350471020144921244698610907328304317022577524870470061707108968112826445278169177105518105466760343195005779746645724780282118963909033932182563712993885173838949970735447739853590061121936736974317820790901039508126115685286633953029384317141595072276692010011426507182295647330989962739766403183697236942641389866667397239746070984314858727039050176197649507952162889354225833440859042764591108927081534627428506410701649575265222385049755208174522643330073597659561927296068233416620988583522174964724755367528441251171579284681777096935260412299276017594639415728276119466422662012502060018513084380106860770905826870905437791248567326944845194031008373675253511384853908794132393839334576237431535628244098671835903672255726302603537396153085648645473623986349013764059068732837234251825672040092215593162329406073665250018830478328032684871285542293053225138496671956356837299169932556409037890396694672783140777301705757922623137287095841169424530822836520433597060522256268774030740483597490685141516904527159950993775631821887588260182078477573029792935832809522105425150116591096940982177699765459506433485854292469867094852128351748575154657698918769042202971588559373704912995515322456744190350039055917576002014480874849165019709109196208428047688858360236014729626379690229882808673314049435759217585093571697556357963846657160771383552344448049436900692494403393497750304629345376421780813127054008278816254375925676394174865992872336628014100894318412283939739023497403388772712383452281451159568396772058642457367253856173669101656774166869130439007309907492288007370748450031371763553934859313469979630973775467274516376817162361240352397842595116282926100262165034272717817167074158918277231248819275035911279411815860348076337905455708336924560448064614065888641012408776780745941355784799562269039000017761884754805421909208655107818816928658508272433109304905538478805582039699916892397945170058586991416041631582697754259414885377577735979312260867501468480413819348450308535861064116609947161234972024812135890311303886140904460996449620615840139051602363914383562464330785477255878732551969814553028203492588993080571105967238194720519474157724725905534679828914874808430704257841033693270406404130041576989510789570848869011789984339554093132258077870103970104361575409881246284338914869092859913266928502541693660113530251122356307694590255138782021685375144033624112264182376567362243355957056761753877585108608675381461641614761789796989753623583871935696618662508008801241498226177130800097429118626299815409341655668487404634613751886500056573186294468677960614320531148940514103219524589382803857999820469070937124256983843949510416489454423105815411317539743779870223659663998067648357600709704550036486541543519022013174691107623938113854956626759720508818729301473769215342043512703272913571683557679292958485131083730787209440976587004570764048689739508221183630516597104697178447209151667306785251289929864703144214516606390127156345031293964872047542903832236278894016712015293583865828732500913693773269633440226249562747446600622663282976632265281765320100187029074530002797521092815694874279673555213097280746003349822799451701446741427657581292951107560860761240579914360812877745004211683881494247751279835163140812386931301464311460056969291339089273927438434798243385479891965498784387170597789003242942512830042103785237308867735199664188754466349034412965837888737536537967086037535170872948302178266483575020091452635783203108935849244815953758038441931232209057167188667432275264752217028555204490719860084499671358494096316245989455086658419085977239961279929807758483637621885178961626771605172067701790290275898354083845063559382765600110632883478669664585551815145546729242430034820282030518048605077421373700748433568296474744625941171641269463475226625218825333577259521393366284402626010163867110620157996184740444070088573740177588954291309222529057503075102046741381441842348579516598120863130733010358357899242687348084727503372062136907995078283949333838499949087993077697973625653520507775435523066635389043520258928167947658527536372170877639357425715508898788437044054294109983796089890304926866332455060958055343304100602039156104937700230611815825589236827031114312474081245626597630059600102899990467765903907009971679487817191663478758238542675799023236776767392194994738183128960068683621375937454540397646211194972793422079340878966819862442211255454763641968267798701203010129500023633648553126496916266738091732345502054729206629990542575519336169375967793725181473680994756270347121687185489397223153770571605814236758512328494087539920632719605417404654442942614582816728047729521357750912149601134913634010399842130880129947382697886162639556408012219331104422807687086779713779009189272750611313000622661963833967947607847091088837205673544754376685892699170508460737118239797519098683128642158713966044798737106250430071772765816533916989144799141006168370027541554695729338162279788455973534995495838708479084342723596489572070880792145608873655999514943615562162052240506660752201727537682416771826580826228808236195599077192829639247542366900675204890737489014540544314090455288141059426831185370379363668512823400886521384103901413902623695947699481787293601593835580279848379521969951595369485020403826116673737675780348302117834552596382341239550937951373002124533078398553639650309595182039592262391739033099670889749117998417181957489899088187760551589098424643147869682803597321776962148931255584011019144381335034476091805329753739272400613110732575803371414053104913695446015456645385117705557005581058641613886297261767788456597821358676581468674645192784474629586217784765030511590150992567035359006538064425780908869035621720664212643153261714677140221118798340697309556852398670883621688240470108888253074059212032854539878295686878446014846819890878632292537856542458610314456928097945034468535981029739483535993435084939092371859411815125313253227442315517006822571840634430033606575230417747023595029357927101288146740629462425260446376403941929350720476712039121474723693473481102170393684428420557733984807467425288445374830386002002298593929477675767512822006700394549395756849050350153893903583163277091181451733906659412368767470782865207813474491664773573613193910878119686687140211129043910426840117224230390057321576383558249399637969695443566128597729357923147721145820168900261046689013853353799688593464815422128108276044036086802932099894345693354611421828643963881403474932983714348595304283177589152235111440678117396119518206385267722930154798615810576745583558676134558985357636499032712289311125330560338762978951077949287833951315416804641959588149854827112123441006375202148869365268750436608335015097730345791237587263469500968047197726855393979390938750552388509522543655873486404996439248822366164335579814577092427820923691683588714150124135323998672480333917669276848881282481197173547848875103903611174552659678600449451720818617864373810536279044958607583145120734879771611381013688489242597188091189678410217834356211141371745480398231923745173653674144212874265976052573995975251900430605555863669031921237667322672588123796843264926072774994980486425635722747593457443854621274732372531295158414931566420567604241564122936794120210991007386289497784134543247006718108448706442865478762123493761345955572700932694310518787582207364422637207004179672149006510851612677178542631454792198865352240930358302573783233091467923229072120757385191560461865690657073450398421754792676651994220345523093067563119519202461234035687696974105381736308432338948382508996303979424906482939329973835887131998187027924512855782367350563926334653909051462850503403462026818428460451417876441607511191683993296509557645639219889347840647121236847490854541769749703353365002979209568596666916289490434956692746501654756169566807140180418364205082999040473385651621370453434502098940001182367850220907719210094630715903565083285275244639262225984187766297174183387813225947426088813031563789435323488175159687121177893441798846664498876637652851559247223142111550039949495678704317347554104645792428683355027666030254433401980017764863569323394855109550505820288681760494408715925705148449605652748994474385107631413179215962525465971388539075684275650873414422630197265069305147579219432463202403119745666405772103653901308831532306735141430583970956965064224916323870801480444838904998949341637119146433335966207354804997412662775839895489160606647130660810907325032255262288666365851135648349728217576776810904054569262374375730090800102904900175644271695022378999010486689229555836915249563207159221166480082318572064637466143959979019816003337449748608337214066479389585570685125841892428676229855238695918959705966211193176514637860986501229743288458241119133367203296237885401185593362225497970123842408409912524544238487243866899038356803652719243231313305289965163713809105172653268257351544405416030073357545783647050022100535253866932777312268703616335981240731009185408353333846534906395203177440932844263889309458212401972716979149693684573013485760771853318735402781929394131518562043400981982338860389116501120444134841694456195650011774109201937181797056550071990830681163237111501780604875139710664507513101629262556895677726730619441141386680042779022549142718483419371731129780055580272526931217185580286164295538464910455708966080168470407367070119098130533290167525669875120655672484257166392508427230430853499384815005189950902789497252143932214828923118678850716864371461519720520220002291160904752415102014026761625958302236782215244110463145780150909953948785980189692454515059154267281295893009290381360023672165785431611551641669338944675831431493466886201773926871536768059550149854618338969090527189326908447531736820755009188484644245757680718652512461088996645232873665747399331211438007373159670615822741026520632826724173285169944655396818171829613161634079489403263230296757248522799263882901219808811300351514198773606206552833393388846949220999467761426999709203850296297886410782994547625393883402331709494162204301157244399228032056588389488815860877932557541765288449768941277286925330370332264178239569968975102832908439028878543545943602545427920430934144792939936917147417820470248831732185197820608841895045445790007593331108193129689456077283017570891613346095994241960251708032171990594718983207033393428522110478519978865645199905091245585790936277477753834131229809738545625479017718837651068610753674802321446988354085828457912254502885597922551594319954073236960768147421042979765997329537578008549526413464345378193273032253602778464713461338200563742153598023498467441467991092311958962801177560538104608532639852938363591592003781832305188981426211519359538243175784899408001591400073236867665573799671553337739754348558949559380604525891851938918766139633850354123899550048364966931646032294178547936877296932729294227054497707384520500008955233244635118636147655476124331516131562858060138204342533578423551968748197050079188924081679201560442036650599840097100621864247056904036497259933930559862724516849353439707665007213855803714169839588690436465227801584614125094418300786216471207226440630544078554145135641876739250072074560437789264032327415283325567095470443289544326756565671216313915562346073920089717833641070017833405202113458600361875945066488319660035818103022028098455606310883835258750699155088682032379590115994663671603404850580360620725653822485447119270555186699581591642066358704800647125698809229370887243862110668998771777452417861845394136831377846895169106971637205977090128107850972682111519462239906148718000658369914298460421894751379904314318495890602190675261190841851412844352622177244137000618791577292430567364716877405074964515890469959002364441596592894209449030696805372982423869946641315283038353404645381854954964187472205476071015626769660529140300207290963242236227748190415660464272978685382622205689785872824509061607810839643625333078490244751178931348478321822829019173543142466503936140350471067524766488340462580916192005765673151686601793473639160391840205493542096430515080628809970694007085611229270790696425700026252059436201705070088554033133211645071455603755900292873448567408311613166233622885038174479072424590331060391028922892650975089921054260754768571622328344784890960964109819124827103593575445851777713438746953159644536207502311889752314566662008479979797169777766902340444281265034316422888612797470560344338769966137064852550279952532983498972902999072662052877006217931197386761216600313044275851419193971038251407053522983505622149501633383946506540998596570549528247240812177676046039136611221565793909736735597102924840139577646387060293764625109192633025929960769190596380039807041262993599497346981584845645101116832070784959052445490379576877338563366182420543996353858365102797525631122987885642772697194107945449814528302685195981141445020534610765477845576681486586984207617221676084692251345810269653574540543253645945162644041235016056505182206351020563705136402531049071888886614656224320455481984325580873995586824541459915189063363979822099632868690643708917526432889465687134391266751760397814701896845228825401826926946585414707537624483028863657852886580010713212996347723217892145621243727011499269460665205506586824724269311841697323744514739112589432276433670559909875604866969221716828616361456179070472949508353946199204581756806366348244888704136417641864603431572538686156870221119266734054373559707696664108316225402654710149658286149837582059518487636647011658971412139104720859908263018509937824855226082662743871886549709480211883601191362292631341175205027705003545988964046307674945985329925838893048745827897690365622749376877610814673811454932968973365679607104289725061356866996556310282930836505517744155627108368453769705295593875470826801811614723729532647751301131953258494297472280047622264196471781646444339708100836492600865394392834919369370397760419982855705533092417515705980186515908901975090745873127851547517875064672358768918509590557005728814461988172946438580721870483643202048004955477627181829051079670089447731055140253013402806536215851897645913472239695026546700374410590817460558766792749936925239441961449700269434354974487990518043102340688222012421290229980627196278999030265926253726199389823078999581573455542800592167377755859623858940397205491406799887669624085400658615202905420947359415602877469686934100808989396001411306651680150102073683226676490385000715443108922252061565321384983665255817139358860887634390284034984829592793431891370971335489739436728392547682055482753164412038836624995308335234164215437761471875334305952948220315233423247038567860404478957766104064911393579410843860825931719006544871342980578927280980058575334249971934382767220234779794722541819998930295673118366330183739746694520412456758645609185757847356247085188742837717333110569904140884280791772968009455878882048318908259921185980764635394631218542247189243942920459438103196645629582903189635697505078477320241406955557266112826099541955390070173513968379532627074150254075365969666161606716821120943880512952503217158621441575326660047502970511132993771114889965147236417138296488601502365764771716583041570762036029387760874715347186888809952280430910647143959394352809903547148697330531361006397084729856947120125824855172265505205398342567185452334908079724606018468523875422101330554753656159922338814592718575602683206399453928337163008926411051616768927588622653887580121346125645749045331096918760399685428161803195107081072887020531771090332320112123805935278670212357516592075332182190128524704924674853577839521077715005239281943790840957858746362956893507757573620131739138846801833497525427852016365687644657199322305097466961804309960582350993706131218886883616400433928738006473842966816708450300139946151182324217993219951875196896196765092700483795139141305658407063773548239520289940777896079328824316775546537695768561177801752252326688717829522720528922342423738153191499473614271694654898225357997057366292081674766969072147232945698691692338616890847644357512553133937299884821227049004231619504571763908984871437475302486711110584678836039492122355490775303504609589401928784088791954111830619707689347360266154636266140633672281338082979432716271434850299417336728188738660678439148420046531885086049912373099374637671661417740104037190256452919385504586565606423063588130853426556517769052088149250713704945175519845696578066580675053810801596203047315458346371377112791686347925155118910748496524569991438587712692816607215946957831076936888300486596531989771394768375808379866105565001861547049094485120784090629255128152849912391977785585168568460307278922235621600721069188040429652625010586663464919156047951238486478482299751235316299458562448152514952362122074615414429666122546643464727245553355136370627802665770769975174270440611576383422261136904021361809487043001318728729324983445074216221128748300460220641255171615651893259652884770205816251630997878926030216324618785031676654759041855149199377024913891828606180174572211414655571925107685673818303543453776925418339287061492075557691573008451820672414707836845718884344523745178719364227820230255750929910131276533000286579396189853030474976607441454531183277303653379271780278930418391126118079831397332963068854863243608887191944393048248411626446472063026023718465320322648405838229545614869463936695334063985444731643187937225348125331408229768558152168422088860906381437801022690736161343165463264091720576251053996206895313203902900594771390867458889216631367298319792125106753831644040851179102867725928426756958475891635020283656598083969423935106204061052703813334581825311966881463262559731610165934239282295617345045128403224403943397014402047031560406059218279299305480262031279056149366978475183488381893936535945158997771608765074020998990551821820067736642643088222778100330344525918753896527502784977914127976284625218098908429389712153789584487972536963581459982724236856026815962236763836233416406010727139042517398322773925948520078282171997281590053509900500688426556692696219333112935567538635411108187678682284610869150437928307281267247925088846766194349727415997623192395752544742575509328534590158819770870926831339786995406651205494849708220950864767250412156773285670643572296669007987780298617186557671249867412125980178816193006116371255986448764395514935394375439505843490016724782332002278352158155256753436326807549175166902925935487352600235584728623987314582741592401071390278678557436621092815470091002076217487683790954737786426120173384629059118959713216772171525658383483999252629585888784872193082289275256715817060647326853524715007501538958396792570335577092088286433869136915509755010228212646925570761146788155414472388381803504855241242278922873313303359130076733731623258221442590536532391737074765387073589210495451925202152750883496642898314859373663074076419387825142789153837200527204745883276835247773216687027267176018324812513579541500645238260977931423315505940107778486430656415898592468158967973301738574744486859219901955159494342450958378902014829632529655248565264865762052372671735406196733211975263127818404936823948761077469951716861067611095354008701125697439265853083570284965693446394166784049706445204866733529333149949799922077304442848617793163558891791033976899849999433106882022458487004790893358248162740251214688068937791779837333007188002487244050144305099822850849269121613492028513139484397344961111357402494835024357236734943675078669312677067738880434279001960374215731272025643278335757569594337445478867368402462097360175063264846530659948880710830121554497753748246703974651641485993581673591414458537997127556310774422903359252117312287150750841448795724373302008373872482494015750867247926218820043501477883332224352214275372344425377701429997035594292424325169991143705862344769305134907348590335211122590096261926822018969164766882276229342289590744357142327167507813274541314850845487004582593955343413131839036897309913223854786739907280256274140220687295358178755966710374880398814320865987920381537489744221139595940227022148922610438728204170110101491812727443360632778602825441231939038326750727391513011569621998072258409176383879584447573116132469534025805776207016573441672599171861968534293637554220097769697348589777608454913814001539492606228929119264451929724477864277089612622571057219039417753994839451912808375034873679237102616803799166378415249272858419696580013088988164021658046805772708193064565458020340934176867875629724428234564418726868699775306068314423122725640348347957297231437663707971135145054543693472582492235726238460939859561540958662302812188438802053107985127736062731087609305989609082078989102674182647481920393506225016700933757067172562527050261464417584616857815482453901774122387864552420633179612384989220151376530750939703455711028023505405683916480543386098981528220703141963133501605220771894598733528411971443548351058715620595813180355764587553923977836819844749401329773966185010698661514084609337350073697704215913809167445159623580299442461889323188816727465477877248418869651662463375791939577416282749700369722901956378653118516483286201575285432316908020476392807276643948846199325065309741829046500952378766209763169924916516398894362791412013769442444930385030227166273914653222662538434925820508078928582872618221920373556892565932885209088424335469318261979532775652402955224795543386304276567834695688436290452050401536502857832470209689684697416184667219100303353393139233684751436070359777380347704033508857933092471141341228456463925361165865052755410644834779174058565023728149576816763447809096399610716248490119054858641446754452382791466989244496825982603549126749953212073517875223218539255136193589422453218246283087227565167093531482143310829918468632740741913772553850331142251809149590355889978075433006378056199604791348210141158697234468098953375216840445349800350371846526514190347744045383260942039245105942404876206294102464948307501306013254209209225637272361855630989411921763215547777609946723804340802884918665382536426553450415413746203033208173726995666401860846850342676001420976810751223429625806855620606073160497052607589421337485630655462098536351292749091991894572783894233275046467930824092824990271016983979945341617692008773790180054917347297643396293584740189422967788114619067852658061522590233125543298753876686059095035422223377235078749171237221138065002505716903245112944871625890876856345605434651869622695236797269133575182058064811686281924002054212180080025821907482325657831126982743971882698369325463438163227529622221362006552162195938805251604614876028182141568562991253323891050304476206289136157141549426000938180485265195537813177217354555711048777603732637322629609808288761788118528317469698268823889818204629253059630381054299742132861145473979123886290480831385438810837076304867774896126654836833838838497791016253859080252024080616305481329383699210136732947898594732448280349603001824615133748837589177364194800711619392903566157303946519819706007406152199315083341495612560746732496728600633282504681012918211282945274157101992092619993215925574191579976793377684757177740817398224954088336352154276279673504281124184102030808946317355203542153624122520959222279038786219596620028133681926171939744341824326305775884696364991899628231035852229268517233326852817748384446087075692808029674354790274371868715218624690820175824815301007133119353021704674494324953730175963204990240388277476956040901360697307436244318471165324334472029178014614741329617179621985078055756705016137234846394623235556802139601301828903982537013229057068070818897889643761458924598404639062701854550764554961772875254499162178580963477550390010068867938761938511942438054802694313594576162190702327395039326033219771801184929815597005999805319197336912112931618471058401864480348680148319944075361239021160302383701936804645276957238384758413554884380374582150619585111804559168129099105962826872064541483319381907687026347599643520551406006186236852521673339536937432037893509398773029286458824371059283958741025888325986026118519284108349278829329130922927440080157225241383104173987632219654885273048682945325072644780314306268212892408499186517618092243677730581286063828574046201907099728609107034612293449524783742797217003682117132382445291581681141645374612703574285470644953657056693499514392222745843239122652801909502759423151204718577417189210554096489321475948772486693443641894397203589418889342979040950409866836566192131682093467217516080700221475870083872569841351118312296152316591130739787266451106003398092378067283329001687124533027265782718349732950741182837049043527027135950927644831686483632742526822462574174937712412091816263538405528883736961466831644134475757047082388797023624898721433255575491195702216750186286631714100107538005656604619189803848148990380068451963862309655564708971111780484963893809595727876316580651088750888074835125514681120618924123464517816898977194862449701826543234968389973196885327142812634510537971747827152224699780326001277818587836721631352876948161406791693585273604339225810933284918227209655798437114214264536217142327155908497960939826581020135152891181096520863721991754061818730648320674419234704994957776826083214023474077298224685931606627322104588889041535793686865593567732424053890113722181766928778096626032485539199517901253647009991590656407274734712526558170808176970675107118581353926178669694919648111605795330749339805762520135225073453796706262531862615299649808026797203443656490952811503796146579756385041482956546677243055109013135884657810388699196096268696863468903002660662514345605568031527686741489354966796730006319474826449802926146716058115322104014058197689100164552435365602093545406689363723250669352149137545671087444609691568620106610903023749770051575064056166135611501637319214359155569883476469808052610023336901626714844711497032407339533506314367724405515214371419476033683105547265082325167354042968643298283343918084533165139354949038378712264201499455322191179307996971915104751778242010186500118322042634710563778353810574879873657262365427088648196137502449620075605988108084871124799405752466275729292068588093536106961269319475457936073927850922379009619204321480306674826517735632778513621869246648938086468011011792101652050928404827722352646986203157767984574443254268911352046810381305066782195387271906236430578448125115870026159096519994953374480988018210258549025664461294390117876433888911651716762542379816352100037067910274563976113244838473244360545181111560059112839026491499537723601052523278166979033812482149038807971778575684687835672541767066192656852779159981673838382007957226515190177120116926034041638400650460827113765216638245723608226516707254263865727920330440790038425621981684121712875635833593124004147313018024581393820681938895526887679632654084937609123399799038898420884609587945863398233886356473139744413140333903971125290387497874808912267215139957144934268035078880249568114481989769952551445517637831655976283387930087465286790444235234618764174755789888005854842822105546147506947008478828225776104502346093721102765326615850320895391858536981503346656621517358884447533237857147195845300472471871749785226511574855454220176169768380797158763075013028609595614445949538373149341472972395090402364880135101040421104051137985753594988189861583560568872630565307727569672668629573433501246772217184378278186076968187184433961656963935835024326835696953269814933732988495465987048592540318316650051630082113762687511814886864302259861900725495209253726617694160947755910733312012742759120515659389104653709010969633695234327199404820387072738878957780137896189664593341893028071810439857743316522598358795894623129863916141944490334608086471592983354607679707457784377339862391575262556669351794781297572004629949792832079698859114156241792823015313346823662302026120978769861901029466238605504901022708324481303289828949794039081169979003046638324821253030518008378019720899369885792691112352484874115304446605144590810403340874640909143984536825475550308494699277709886011715103528816488218161506173255296625989235453033623396198743734074287729991915905032399709396182364282983458356742500184465803056889053096479223632539020608623950587973014674713227187561357182195877228912984658392761864782715003831135419338210174526576082419914975249100326529202894404458757140908043231925161922684188996033610424885125566421474441737347398579538980370434721793578414403492009675369203288865086673612782378438683981921116063123804662479670360450543109324314492553217299564120462028156151069633631946051276510382310601834179600195713514491846082753067085101233947398398572036700874027211826335238295332880479757652454738996842232007300479633935258634005231062348485391334176845466032571734562608729081506033533398074277832303778095945964818378684395889378101976719129032021257653668652463094223720667783255679107633319650227520432038052937508346323028862403610105810207843765863951901791720370943622240620449335238030275481034220629580669356022221878215849290284461560332768680482213436144641674922699638277616971914073255938696946726719724592589918229891873405424213384250040906922009489629320244749141082955371999210611202751880690125539055467194581128534069910473609140610692310111017327203558310868921664254539323511362315720425633734866192686387725610274942374545008319493318353350643688406429841820436053414900734531056538600040651272702779220534130637612046754669048003275094542714860691226270637123971466066976510490025251174263838829940432370791635241020151592422013676054449086821028665039852575889788552577281522780380076933791001017277717067857863007436252046974736982902598859596620632250152958718234843024437994665201309411540145763409211479455912974500526897520815427465018099819537441254562055984190925186169220355449953136081694338430360602595194636503254324066747943364515743124535902918987860265834908100655012607266433418745956397628487754077609139093246609317910425408259490642894710344930170749564075650977065485203365080565927483774989376238192818160929342045282292371087173158596018735754699529554630844875618767027233621209732629098603523260729411632689726027406130418658147876317394391930634042348332472541663951371917110889491814604500725518681657969540038497961083310204395909706679152334912444323713538253144770601851573687259176079149988628341042272190693113105848166174989668413630140836468210420417546601717386016250457478148268560813045083455833959554949305172169030419392838759405361263950451815752048199407002440570261264372567799238790323543585807608750573012505475944611541619059998999547175766831766682730668464697839613264865003659663572398103441454259606806418678287827901832760055025312742851507877485069379208356045369521304366787427893514686671672018991017357917382024405856203689565283975019605449752837237705204025802110920022408853966051872937460339006010979481360667080223953599169167662692883589537066622858567462378016887549478349677822579614506250862557133794132452304000122345102826207796008750834052963667730204357650482776973921531970882837273633942118306748805985104683219525615880958469989699872331908857485651850497180620603681904460879876722922474980368964695088669970991981821909765296986897601986239690938484016475577232538656561267118701800770835824492071312294021107281187374856744944620474178554205840959305942319795378521613628500290295848024385561153185523945005916384229985240659943844895203343640893936440076631895421223584707133665847297178357676227086323733257033183424362811906039851300704188815752504061165483913655012853323248178425170705584777887772938964947502237726651667341139005955689633216780942915676052061093515173210028226413517364326858394440778648231315005020409495271150929820526184742643120281978375444573127288399121429479443788679876926189807042423632545223850592006979675878759460339304956392536340631458416695086217596211838444488627387532308316131475301682479037455480938393264067335908019179641521452260402100335760714986722970919092508636880974954604079881733876317933690923803218649461397384547530088963607329931954079564189405398701858233672533479147797768588423184127394268558270437930842259177289887554498690544253673181522589572130077141113036569204154189268757232619328306720085310154036548815514281227700304484479120431403647730913755065586156888786962667860995402069055226422962909845437150910959637247489525944254095113786818118551412180252941299884411334785683037267985424593419248196966080635495411100763123779863115131616857121986411658922024551612271090534593710066860817396708760423958118521946628558084827331959876019900661376363111539169691010904515773359490146388896912098985505014446719673693499236671524700837013455907230270977484976475986844313963135659339966567972877644796582105815482037357353204569818479936714371230075618544898681262350695891826987889548871034132209123070179441297481728858269573667012901575951241900344891861021751793301118855351038661972025623837358288055600869761432129891227628201036422471916953962967628391386321468839473773621227973832946423590990413137764144520462777682982009261004162107389829417707245506434250596983134501957217539430292806038904381934348780292214874437017693714922256157250202390728601427628886534823562752345440216579035196501430553387768930115649975873620090954243903088606763135208563243359408298548628614239714679539020414332873410164925162295513300672857579478284532396527562413489758447164619785749132572151834917622936717264004582438335574649146403628766074700592759587468296334685151824031731475180146910648185895398512934139244163528652379347485961546323462429038393664217747649875662483991919109529822995711016719572163867689436723415770447094347007740322198493193851725931783909036677885740528246908512231624623540416551190875057680216719769170518311388054355092742542705016972287614153266982776202308410604132688949864279619336857436084808941531584472613604666393791743547965844641801656732759376871184827973350563592234058216657004902553977589639978464361996929063896884868371150447031867051515273381851307214928311966806408133959513786398786917947187089709476581162160898095322983579278537545712627496565795879971417655586635075453317389342599320459219726166502010925136049291768507708934859727311764154116434156211455655413963399458226566774300227545482015833271069815591052616623788926844654295524121306369876364450556953426899411112036998670367067418587764151660227584778266065518787852393493689996578770933743753449962167838551644883094523822166384648371699092873219800517904740412584851958422723361108294905342450306072582561917168206898603541192640638048728262277787562451640719791103315690084932406703528841756629853695018158636403030722135442111336807712260986533672781177376697763817163068905136943932308879572979729226418026110067515722770275213296667999509565879863443091245303540364153058080954330468227395683927560592594933790203809841919915028392799512123678339657243149055304944200282966386441399440540130968975514837043255401145449976846569290567075772121845415599033443341716675502868886568325821867055686837732866966008420814176991779942553792194293482298307149096070236947276603756399929959087196025535532936734216617190124240166213512938447506566021028533532284414061444340151832074850026925584482935938611565279979911637481434692120573975245268595590724891394626104494988252641388834991005796641350167389538768448101311974538434918887815584773095391716873352373576863699799008424107056723107185954402615936224530395757365321370758744283927843077506597463123741699484920067378847068279430855852345849053946862709118721291441238431495608497768507017635615090317039008059050991698649990670801960684118738979603600108154784417707992629653591025429957574957262167624765452181032697404482549818170049687790086279549242285211289454563959689898678208502407376225333897640936693730500623748945211280794008583266327651464322512903642904974810215152033928642681280112262078960026206197635184400109587161681946731365239706163058784588464092544988580071307508004042274234445922030870885131917211671588252854553012783946854604116263790969072628927244334425217715817199883525793236995066508634441277110454355976011106527604213820700413100870148398726889996402398307804490305725031859852297374113960243032913875670851198242217965948734537793689098163108528015860470842409946318950944544455151898536114454455106618750151325741230711715354364048279335285409707624159013995004759085434725813935094440173961236216480085841335522635715485716059178472982456854807544854266602037406142701026773750644491208590913324302757955606892954317842280534128462779950449477585284206378266923018857256701474894261509482110528228796848303239288491477019708039768068679455331274053622131250930668882199221071235279381884887390012357829397878793666032188640229891156160597535784253207822594303439151992495102863850842271105293009066069435920180120499468520646830619527860814222917779959936842098848052821058893458422413776687810764199367979557987766301317799747611885741057241476383093584310213893511639037804376258394036984302171735779980380026227646118572575124987965294226568055010668636953423346249811758610338512700563386364605726803140462152757578478677533850208573795435059240670337947011150966994550940076017908501695988969995433354462411083650796378589465763768427103297005943049521264649280282609024574196495814900306908458066178789701453305096896447172748028312256192688362626682766292489851547044726684692111843937628807736267868247607007596831329167342677190695205751909614943566649540880114970877063559673497535160423692434775878564170545284028728578316257414199777941007222946037237390442164875615322861896755070570529531244439533964340398612191688653529115276297352428046919010044709287684700538304686868294075922593924260079577898363151964007341695162596972680295869041368843189969652168710370900854579816074557679581736901482742183579252091953627645098302151107517221300250957683591979130885998336636084804946786890274002874562878447305563465850408471796957680896332371612441489397962811116827965364202072071405123699719498512328385667866293331101607789081749909390095742591872828709841298648945484696454900775747948866735273302814619245870789625778561487314101461666455001608977015065703334320033564476244302259438410466672763107641333336136364216110932063010584147619687787434740126512652559765734391287618118214184410513368352964224286724387514191452453651464560101724514732377247135909412580356541363059693075551516539464222139124506846687751308302851899540704098067512252962734820211351655871650960883894933840190065291743726200304213555084221115898768532193332499301338318170868700496961153342964135398446760221789323466379534804447469543676746229247641361333290228643785105760046029561360474851276111039336675031184398349518470278918707030333503236806226904819692808966668519509627448611966848712622357295455678770966378153263005925352681934855462190394697953948235153396341349552707027739413859674741002598798408507824532294071332469235489923027080997924334408262910633235446024550338110801644802317216005154978835084124406052493336976390105704011039717815081173786748511544641735152831615840880586181984365601677886341677530612223691665656870916654194270035875127980593574705748776812818339560298522415616806274530623046260178827484791271616970369907896284802337462304351237346013380639227183404451509235475598233448930440308377988651413817394586880419159169796074416248001526686499555640869720048919751858337331395821721702856562695905649701899630286201126910788315060550423587450533997794175517912007948029891408282083648691817288322078806022680151239474683310092780916341524298874186425310513015887845265926422964432249775627470974136583202906782761866157848731909825537208694680977433552532831833627220310955619551436603080609362999218270103261263124097199967192067073849942032836864884901059457087457548731540102254905964776867937249888518079151406402255103463515128938702500202188869714427968648944674491002378132795436841380760846582523601392405748126846828251052173178305633190728383099776879046530523305630695637187935269738644747215283202407828811674490797388059025258254879876476233191495038087700231205238116346263822293540007537833658630894166455916126306901713415020599844216737931106681726053464377830846733411593782096207195977428126228791759859677629809092687576729939868933199615576936165296873542974811344747392033725258574447755337867684232099925966292872396614803338634214399017443115184721539684008535538178895281961749714835387359991053102779088708756180507363167369693698163526448199913712138387810622949624448354429801136174357492594470567895379210764804782147904838940448789002504447277886452794407099420316904523573238785088624838594632084522143967450506228162518240463965588678617113099322127852221218887222974941871458189453867878839291999510210487455907962768123379329110347933422737068068918276117375906651303361541666759156621045381185613383734242730766028745920638561423612137938065080635854851428479503829483425689748803776668429927817896075156205666448661644927340371357572502235007278083383540044017820943920418217562959424742095220988179230702970745349108583401947818513236297539095795079530456741878093806561174915086522147473380952009420940090734740364004754397022022882149874200291329641193944105532306831758775656016736017369107635800096379925826811506737084745822501276759170186238970301787696429950128375716412693405274552070540658334242285627616934252284030660595559978166099670330808862990151957366814294697420919484930018086557670956395845771129593185420175675880284989958931849032775636542284188253300995363584817274434661429934958778020253142236234704284525803950985705725700021391957090611047645969661433479828022096034228685209586904269632518386602537397599546091997075643641646502852275567955646989222520680883433553829161120552243471538350587975259984278933230545788385972700861168019570696705881275780461343050193474718805916682896151515175996587311506229394274289383513679453901925191908722327685773191201066252096847924345734924811507649841789027258601975442154295847844878230171416405829320248386330160036650054682367369845794002615995572600499990025072193541571332225928764414117750892080612011964515673429589512669817558065241935353832496002598433773713204660131594959776811339291184805698724349057656151858541081740750978057443845293308875152721352732414712901115779643312932820686509309423316363414552538100638302079319948758727647861701547330384715634945013914499202720637786465212292255324176135927766299650224887828500849342969159447314561121982007508666218128974763966466305254928796123418853358450720594154362877923350776671491242476306405522997445390886425228580774002878376032078638097292190009285127244578776735755247889674151776504497853483405093643478179779779155214511084503428648551429767371378347473850945723970588798338756257998172822440608971776206492608439402085857521746942924575410583140577231987925758932954150123580429016253191800838445684643158026460379534522747265208089583272783894751279335520506165749271652224175324934383373414636547511497110382800502874852920271027453549381237354039343991059226017013835063445230437696298840699969125325543696010818426181336955075933764027385554682039257413429001407561196808381023291470323928063018426921277537750622287891701398496304277826023934163140571904860453471326241836685106834541995465147174253616321298604564913036088476374248946554595135028581756875055377175573592129557194194212160200139364584092238963469445122867313486019041438572592631792636857888552838161824972310795067583067708203313474157908824917632046380858732620249092640242748950763666278442928818101624533866039914406335117305914143081728633872565106150616157571100052300229928422506413821233304913215748533773583030786395964908607757912498490639003175077286871302926977354767548763393356798298154600315904751786515529249497936749495279250292826428134257291456544591571230154298029376739670576773874187771699492717870712758548274443520012465403237735826180555222704697939787372077999525876843372106690573925444312105163394859100562142538943493193425601368893636966539671179867937937037601176904229455401172084119881464710138011314133912595840342903991619418322839681910559457940877912581560389546592811981004228518980476568684663402227431745201140511229661190771340438348821027744450418658914414759022440320659122821865967031025135391603319881995171858048438140023781286667953678901510613443862462773671931244028546502176709588187358806585058018097994221862978764368167234052066335444568467542478077567299526702827877337108704557258131007521104997092835270683335602188444285289242233985696298861569464402506239559812501037748726798761346999921439320265975230055111266523318320369784652387940669184930089086875298135008779311787955736969101250510085490314082848765703916409872300710959588566948429751747021099068482908285849232852841269819456489331647596353206644446682379521683235513611963993671447165945571878281558440959875732203188363095458528978177496506812160193094234972149337550104002389538698760516898893433518863033641044151776606840904204746935697852011847147805511946024146720287719332011522977883692961553633196874979359658186973933888058776528691425993322517593107269387540157905890290467810458579383460345813775760226820236147346134082405870083435234245578805894921500978043322025995867799035727674311403763699344333298324969142557091496220485459103325158725599576521003738867893962354955058404660326866888589180566487732861604731208854981003690656288052920034123671062284550836735995309025499832244858523226046563502043283371697408397722383873629871259784426994684026138701974575991794778256184942954249861808157631475448146123871306701308077194291074708813340562673054183801478512229881198054835027336493772595346035278389513717371732525238652753941534629853164602061459636197436544519437763240430259845201248180585821412123625036565984149633277988193567319017018496200771004623338316789138914713817589053026368812213434097346071882398959765897745911983286676197891531074201537348689408683737845495547329082767237826032503852143406074695950636502157944933682395792612690935879693526797070780813221279987967594123816468034366644977138229599913484554857741708917414196983108336894976449449475705349866723515455231739316367428086730940426872804835209427378360113465748263816982324915693908460999350809272137843968734725455804519719268422136229676412143084307770638791002503378698922317337042648694021922691157045423622966228073573334458914550050025052993491167163713593600808268622126018362529644192304050756944011018055632333540198494529816361580308777789452972537771303906602599404154534717681684948519209373760466381917676919266156446202641938585042771314848387012673639197989232748762342691816609900933412347885783377489111875773255485301227689568885816099587166882169432635960326260065296597079724974843841042156318602597162605554950534333169205200832787810357995759800181532419755357460356235838922891195224884768628253804012262521904191567547844535721648578751780227091965971519662306039849147611759945183436755555668521690228263425144185456379363296299889192807409323823459096396638338951864033399327905324065331071052188015794137982089974719700381952015618114727488123202093442523232846959793918828088729572769279623482882790219762483257479380995319779908463912674899192867637375874635953230843089112898779894193992430284961346846223996784143014902491266430556016546059289928928164009861313422066715914663967971180857154912101034638577383224826762126670583069175903629952954238330959346122480370127363672532254290119049237104036671762492457466449391926908825574566723808683192016679394581805590402201141310398864874086053198259997790467466414002097020213104552476101844074357761138239565240543544435501813887861101025679297514549455141184274424602494468306864509372346642512449964663242000408441652075288150839744552172657933814422592133194266583874391685222274718935586087888414903118482645812399601462597350305372961448033268893594489980919456864798832855640579697268164918965406918750198894997706752879503397123586742703172109226232998457249886460208526781333176280689527920214262990518863870518239727793852453860402370987282969528867777469119557034807999135329371492531083640573110683606501062646103143730205438421129347607295946488991478487837160364114294331385214382280448151158217952725941980200435900564574990081448656646824215087588946761525537054335191129021416018354607757114610017893021665107484635663874157040983332922658986743568116160144944583187432567582434630730576325634176346427633138084506806889690907997271781378373018141162410190659575952368888049110679647485532946337535067193192849201101288735511154885885291585799136504128608936528131063972175169511425374639925712454411822780295034404971717736868961043463193217753089119369395764886282666558531631984291552248058899923316665431999376760173153174546005749318941253438272162018623185201046275816371811742565427237512324174282408515439800425349333474988961505051980913879482040621010370194738902822386957667145823481668740442342263636728634904060779341022415462024835017185348630345107069486982708604998111811219040215157218398053482855816597491552629352115393293342137229852204385246411811033432906030668969743277023140999049907276929926763014287443581280846200496476590219829882593590277934110310516929103622650041260140712412984723253162383559293140203732920766524058900372892660109379019147504594511687457297581015488915308395816240629979587648935483346724555748042236204379048234987919081626716258972547301539521640446620873687039164889388332472516453326218507453818068307968984252451345887289261252064049646360133219037427358993167494299996039490208481879601535481053914128759614790402055888897030310038522322155594271155751890387480645872723313179521866228572123170561387735787370096423351174752533178529622571117941316763598200597583982812255726015944870684200747314613869692959936195996960765142568437375401917934538800594768555512685892628767752140316078323402288689565624056051957981802367173754468163433812072426521660414359394637375408533961501308680613419400454223468267615995042854190092060781935304556561308600643244523655681177232470813406810593422023752216408906794490936260701691093536564560047379275377628237923594146520376563663691524096543409715331993356176467660342342289044384564697281510892809943488013664772873088360454285442565251459909914749665563712753379984311067933541514255086150325214277966663735417693802827230789159536288507426506960945468429673786460320909243604303845154790060508807808581173233388880459607928817628094946253174780186799051661080694042002219767505210474154538366604256437061707352847673437402414374320045140103167452165924281948761290815494135492320017160880066638157086788806883298363112471234239576342908776229255315661157730214821214670387929074222969276692057123919512261412768140127942491075701494112404701662659881626518567643922125502065447972157950318561309506270453191160822611031472137262424243054172384803957360105615603760975402885886244716354996478891705324032383130010383800892068863357359041339345539894236208116287321598282312244185040331055656926345997812299851994697320445797244000804811845736296731568323693545443476167782435823615741407734971423066994862404779122856010559609760761948628131794347719370773380059565215471080555756151382151664787399667527480238211349607916335957648611766834567472004763197357010821034240283663050290184846885668033058056182797387475585049989203342707910208570740282686389953653181637044606541756369687163976235565922367146990118868929730090054613250856258401167216387381338884484696417588203330206911978457895957897730319889089675034072403101757315074891256246111090086683241619797026562766548211223443008029584146651008290840144860342430120288967035707496279901551798158496643840687651958680433701273253797607673255156480467195942872677398215395904260184481621570966134697564093449515909733782386897297222081539946015461619002137951369152313546193438435565672240626126386369817464768832059552927699631188677870781391278955409373871236382055777831035205944520128901123704555928501734186664523995242352346587846280742321568477873299090566556329495506585600687515779213523157690861638195402381763456075144569036603128339786677543164034622957520555913992986237408614748490944402505864200912276718878389694821500783991100413622600448682206871756899976429336036670209204658575845522434641414481780683335264507372461490844515508398390617332504151221052926873651978559370677274946934236506664346027009298454679261786028615612000482349398194503791169633750948579866064798335012464354895518786917741609280400732176189107320013843136124116820768476610859807159245145899231949482970855530683514639968930544556150138038336792984503679478393876302399602670895589706640804025409357608744255192020346774539417736965135513409136354484281966615562728406713520908126478737369387231910892549216331213209912691302350573810555640047536488682443256006418686168935675437975736515755621064152019907527464294902228815546170505018365129340521216245268397553676676235478944467147088130664162805646050053516592364943760791901334813329843561153013122335036924424630680623144540817247790677833815943123902800815127507738062480157227439807081156370066009053666703553831829674674967509730086680610302391079658137392049838562146913694259553347805545215102248203504922131620837801157509417133215373657605732958779129816074728620822855342253161284577639184559902392782631679111355337835005462847723449012575327563657169140940079311130963507332190870315970009247761943278880393942167257176356995619364451250099296316796918991887130746745491084353869726707801928471490415226577614281208591461662151330930184765133258710844054829549040823186427808817018018606218508445528408830274928133763477628474204488829399744652996047290775207860724964342211255344493405180803909358645558058363234229398404613108960428563736773015390621708366701856359050352011585527498353428422095358260001393702165596487783483001121784140360599665081948950662115174582040104320557820950942869983089333764701131285044063128341953497149869226611336848259264293818058239992986723212071504933358513274491120699352532587200556580467588131224810520085215111747943380198800819722972143783176184804212089424051068157654677355755663137231090124677814348541309792443097931067928776782447475150976194548550691810339345105045015762773491176675652459413402066264393671407555090737574657946216368138902051269424297903833463032997237144903635990528017892396917698204127345029724075416929873652387870607645520426233369842091427472508419992918472322204728635320645894315081283784655536315922654710971465363511089831456314123980530994644779812289275576284238252646911003720230578756936031409583681510326964797283708152958102547257171020147714337565402547306764006140486891061686179327570293255480230226998020715962377561603372848515832585455903011572276493869830867172812481849819958574144985551361203549796353074542996725322799954659543377176065425500451452815954682978410853872203982237540090998630184617801422076254256681421254406855694517515764611722328799016149209756131120929503023073641787635326250388546716909418627960776980667091046585256198395358078065668466590815583187875992366016583532706054368949248203770593764261812347876655646878399128790762611455234881938824116965362136994662230756915507169492769990064552390708519372526559898438595664268519764539946945304738573008830125831319675653854268774109958376390823824002398918718756504599909617877444345523681379850119362748510421450618899861492463469185324957682240071788751659393361674412144803446334519302626509255539904836722386773874189307387040177574852958815304627339013401913226869722860858033892826580504629256529433648719540994057507118210853625519420925453681791760279940426760135133746213482053129028900080575361181258511106938264862411780185837892492119641174889066358285127586567225943201049424776610222805646188959763288438619487370619451922937527024236157449096821007815606690614520106174838706935575140045537381136506489399864911956561792042378801695086829248642918557209920800674456218451288417832206697982374903050295535907757844727033823412731117739859484951600616336554908887706672356723720701902061712171215027924068592891800811857269699716856870911131723136021802013821100968806968787324557886318064629307363352529083134957735511867907902837448068000729771453911350997388837946461161662590393858199447386171311712107494730574568773592659009858290693051402841088776930588547511408927685495227005340504244201591817211221664607611602348177310658448872989712447910601030936425460432405765596329673933878867913711226167531573102899603684324623443295355501119314362791163616734093563607508730170780706058893846724868217678747357519700839182923254554154139142995498790265547317360718000084176014821560152950757564122861367845829237120429926288677931955539124472641121084454510737804079567116970055250084448386772076266394332372194557067571551532181317926334571833607033682059854605346809652452624812267441052406562730800686596697259443370261332576856981534825672301015361831470738732628229853964157667971724765212937513991155208657624328780436005914165991942656179900121800571155314829324261694540920166401307940959502631505002414366808306124307200143341814235705727864060940061679989833705424267783873579918710662431386671794998542948322450964642005505745588193927882249213762854277519365609664555849554702007358912109930261936323214506370936290227910184246547777942768991482838800999122441185800603855053902073965838133204693029610797362890709491979155141852817677629323427037258841696732363156853155701974012890384240492846406990532440574571511110605271119181203872409558307329967261362311183040977461190302900523424402503161611640126018535992279236654633035741426187161457350791005625355663117848099797831035001593405241382236920632388337864495078681341001537190567644604577856197464500828066948634846370856124734285537556276638483698442431261383735571862546939766347984382153264572821749625770189536891240471940499821274157583385304012700590432590317922226443703453628804838042496886152843548414378193289550324584242306619356309172959294126970555779965747047885694654453260503002562537072599726144915672522254338428267755196208978264038879939476392946600614004531510765957283493385490477624844103333326997214954663916108467632091018247166748056439707193051044720756330090943606547842638500837172819123825780410177935321561937977439667030357119503785918949075348863485251456241076820065798647319562398877536659460498097579122652086803206861537641791003251512627990739589066419547844674600385809672374942672690759668091197364274930764720417818907499557848043833624630384092622827164538718757990779213431014638012727146261276604928078332905732593647457637688987617449833103902559827409568508306822718174369577807880377129253286787191381925334016053318653316470044849308763289847127964722949248716620504234441394123260110947383102813186851152468631029884483257229461381726511920956480546196665764020427728023016499740480892142529678845587584183888388894424013357377686796539293331694508273683613371271057084588645811046090332024116531573415963267521243760354694727391211872595661734651605682834460063795390694166623904718547002913018570246276171527729313451726873581603673244993398285587992378484978926466495567685771965843351514975279303773287206184724850958947389787024312170150424807515724126655460465203460738832770092918641000620189672727861700918667540939446934056949576629554011681692580397551564569472912681317132732988852488962395494371843418010613214449191493715280297493331410293389511263097995899103530809242490197265756245025623689062255972441461004425365950545204310805125085707963129247902223643431678879281543079498097391258124928568647551722515343370055647127918790941755593623469849945982080702325364925361366951830557656175301901774810469877113723290996505223035179488083313523656689047556200202267886618782241387932333204772868246469026132021906703942375984462860154400720704526036273396789764123136443476173387974152541457015460309791496124681675324992684434145385818125225892286653893997557451855596845689341845614862120708865974493063664687125597548334017165622697905970397828383111709810517464813503589687312008928784303627887313988423629030636868236337852275846179917034240602076023321303458826741000713001950337365193457117018555915418491039447787084806733715532518721216879634648116572533718702274061934072021042428813674268168314193119247371891151204123808574367518553487129896528043698681737108608530850086379571248521800761277463862473899708653158720223528721931242937527995708374901582751166308063805650468404676966395657089542324358269208267533723819257163897704570952726626292109525299597167120563747486908418424893049325610745333675197630132609748846865155763221365810759313927878260881833058953309624673349288873436087929256710056745000751549397549468829907427895160224590665243178136962946607272714937100716972708511844225466569867585693319227636406240996901183139268370925743906978007782279066966215627210754699422642801151136717608939659626818707923926166880281078221833382908448593161300045887932554855725494664994377478119442417214727545484815822069942235067661650667126888452993843500870710429394053653203184932629497540132212048984030106123165890165264411458799191503617548146092853721191648064146051817900442009759189076088706749731945881343757235606011580119948534516779630715628677627607113168003221482972555146967036677927259777367164410591026618916070496055519575526060229603129959072322268539520977403529774286549320187803883245097332453710339889115479698918303051554070779913169819260894769277374620821929310501021396951533565550733141631867139423797262524524231641460302606451274311306905437998173891329092239769409778906732667949734456464626145853424557922266030841175026700418014694591910294958860761622473912213109551131360038728783660801034656090740968004197469719755324674760894617920831508788476557341844438378594311828250661673541674417379544650845468169624324821446328320331912450906298691547615462179838871976229003184445011792205398440199778552593660442925276274102990253923928268843561502042913588204194726746868718314557385178484212619468969583243677387689046652234294645582275134275112783664769969509557932087153145647325820325918024136653741146159413389623962982935252994088125988656392022119096528335287034831368392582607422546857856409011573340820130424462332203815489528346489970732299946050310655187086850439129960761203640391190829091637706884123353629507814524188474234009266930944285888460990611714951838048277022136893656514690695699833639912811553029336803446191807444269938517658919038814562992477624353846771391732907404193411610808425217047140703449786399454181057259343100764191923329864655339265984901397930373251230145221012877611526299946459834327946726482935131016351687685864467937530759475344708921635436495711605985260362311818848806095668526051155681747015289601043123258739403438511891674279658957125672027868460084703911962314675803138757382288974740516767411485442882644219458330749153554599455736653988836728283006223116933292977559908333053762051987152708166873453365731403195423594267706680211286998106159365445453101045230287418563184974057645234169796193271927215063079140068656250895461584138391738778491123917545251557282611456784459232278181808791174113939876852869807298616032010338825700565064059878700672049707044401403800722797288343105141503016666853876833765904481094536559864838447509007579163302301823758126652942696295081184863679470157094457842724260701539985974572782492474190961122839536271078146875157770072387626860738087432529900678195585269536618520463998130165168984429923277468446347316692334285327422209349324787977471917698501085315445923056754449660326073189487962248170339839437149129781157368288774645604252221652706203406929711883683633396803674661312172886397109510803031932286179904669429837585035957063455662670807980443358167698744681358537872379054486683052468307524059373939596059497403226666492943628684150103655468387414523776649881967586492037132380515239286940384981992891557393811977050777351065957064954077423389743012235755813666371577088672594409064235225508255191639978130079560154152919197748359773906774390931327368648484400553735641167480638343405116722485551840562730354493157011452382929110489614497574064326313563653255886303016601666325925181678280257051801315833513814918398099089282814436173825034177437212924182220857355849763117704183715239590708291365407935124701228481587259588403591170974380658011642499291442988999948722484466411838232621139345342006218707524110663335694114957570863448139429302925542409401896493191663371202137106190645793582241589644777757232941354136883898707456777762314572074220148770334790948271963811515812114729189382999561709975132678233155069270244759182110878398140403606415434576163203397037014408974659514744721247159396015899113110789321198280585148741292904974735113528390222168054146374053717420794378460169666444250478088175606688124919837174239307941844536902656976647799799236888315139655146741845494948792650187260811978664488997670127337294869980182737865807161129318585157373631238434360190763849547191321239413508892176523424279097706131119907199390027551709655812519238807811869024309851049057824140056294035231230702161740482021812119121563532428232076647835555277736383879213054061323944888354791224434637488853972945909663292623017727688787909033737348811958909932797784759157771779564633755818283530881029254554838821647751531383131978479188823419635551115729403623890865075609899066552944104101130733073107629261724539322801574187387489189611560942854515021381941981335961444791251495158916929772320953048442418873574770932665414775654089660493779405026447800145618959861903160692418318817436840170634951759200224308441892659478948563520170522428214932389362879522692323673091331508340140250081722721352573215021419813642199101832693293566449777617684560556534546685951984391652857264364127376188576079234614552099200030172061970940727028532502193390469285810733265587231400639013808144414907451288907536874770081244271875748137030809993482165996243099450285157995620986446263672682430855263056164803866568599715257124945536877278121803437107781986597535669076009591602279923203738822861446545913571326456064413276785122319918538686759220279938254809464721119071711129264407072870587051271538210896246631071538804563247010915405243980176787991298292655842344814434871413268432287908574127736874005398976103347908520490975709851789302125439489692979995447863269488281638254233856811785459679120806366786570830272711310253216471703405804644257364872588238052436249343786493899493291563383635102239400253265980306466143049751910597368668814962553316652943441895208505151973565905479180385647208527076732476759142340502613927606372117262124236610471872824851856971850938115785284049261681545440556006682257776148655945466670082480788449879570689261650033520995968234067734911654144920128740584501884710831273664557830268837976007390395352318960755483214135748073561631686549184836655556804291153988640976644171994739893219312614116157862705914608379943223755504180965476551276518351580563352290109702778923414741802350076548323296690817454150858827325496438031731892674497909583915373577047130728139628250153308818219333100834154427313066859463960779495974028518715338482312333834616735072827047747418831712826207443979994278671647708815431594176658097072434558326171507436342240910234321540527324560692399367877176584809932900055466881720873037087248318844335397190557929516638218509553580862361952065600493296065365506840234487377663409931830951843595121903315496221259111328702319142094372263389137161760859957990763348094074307084605362611441469009520357733290142493437025094025153870881605545726262042933240427429591412120164016213521314825356871949363962218613207735921631106602112570793190135220354153911263518800201686118047249103540452346668453017747877516129938345748955291688487525232213294174236741630703603498623828287534140884378534032759542575272987818525790274010182791298839525790954314813693382811526161344534652467740874664998358676225520665911402407653270163146555411792211270271370701093505691689616056698801568693570191846102993066758393888635449901968722815113657626549881380339503475716685893928493146077560127353559598291806561949150732856951030473262119118055788196282927736359313645584174220211592952729424440101020425839986041693709015326754602594924053461257308811501274336048755886320524561715134023351075038462005975689210125157523574794059067597251113048409675692284471714113405330317694125419271471768908427750243670137537054163898125470807558009758253030466872285973209106659793014483996624645411874730931969891965497379714938617434397012996991209968730114281801841931115746999849643648032051463972617724918004150335485668654269276573478953759633649237287563518406261852102852230891447456826573031468564097965865074346925210669342253736653956457918884579947480473698996704460882671835220075704258995555369305186666896545428572074432601214596331389033174095889961922711478027049241697579466690382232418626872104495806891109714434575293814608505908708822640656876203166522007575361826245482157117739100953431231116428321134858238724766588233588261842639356385784853137027230666019156670357555207003160120924829006938246790890861678266504625935826287421648763748618674340899304002256732750748232506758146157499381724054670106747092034318866514984110467276452721204464351870950787241578413060834301368298378484717993282297864160072438351227386368992970733785973148323336715324569896769386140327120360901732689628918610245588625583810659651744090956716113248763151325786979978301265462133131527320701693200307417384621275688156815387570529823288519212812553764573506952709643276234161068092679078719277445656907054068295739533653431287428569048704171397603405908090458062676070683925626177079303933454964836912112194117441309857753710419743641664497449743882811928999052254912776550317112590084636993723591336751545320176792150626369289642485441462057561782851597944622986681643421252879377903288862160824059359795769398436937266502099255660452839407680036664415744431879325099658707817307907554633707967347844978514472167439032889184671786057098346969411254651273767383824426391533871358309526418470663662594243988960321830749210559937018844577536776524411411024303979763010669172984060575585813260708852201846820832744170163813378611755054121921266118997213610150905738034427298484927493197285927345776603265848720560580267666425715514189076124460778374581932785007045279913745106299780696207633329766986448861747071748431970145820923566048451040032966614090057340004609059735982753228242086505101665247241019277716804335643988386370078886194399315580640742739624249117565980863046498972640296088714909812655974244650167059293137748324536425608893637382647022623750331800213747026499180245362686946356658397454384304800974449154439806838559645267416711323288160957703831308464896738184310301447952529224666571989486131115972699228917689248316387089242709504710485721322539415841993716773893169356555433955635942037034308795843254636485690441776141150352020442591277796058976901742234192509926018474507187071353451040046308990373879846478067302064795888462889969603290620798472219909977200028203180815717835207457339212775539390551066139745986122169377490809498728491210663535454933249881846598743676062792326177423971241648880658773973339787390484228037139606300770355598184507706974448795239038251434902320144425327739203866602152274759102961940865244074426236531583145774765154712361350372676834615613175210559736083672000307417646175507449245380881525499116519616159730308102615516154317772204708348428510370188953615377065643072020362035169980226482336048792034499481699527523899578336661290096878026976110125232814943734662751987239378909863763610455198072226372083258401076254450694518909667812641141908267414499276762804215464280358368653944046418581802178483611587669101510817195920822277699510887206599116941277034456157554109655523782301752449743722980596267187168574660912074030593034615256375901183663019256322471145044928850859393561873770293779537732268900449910244322792493068087555392821796280858276690146782240989110317956784269447988707444675020964147610127687785491824397242922689520159853343959514357651186014682649926486620840314451193824829408595320358288678200696319283547107488371236985714067870751167034977988595127615181278017060083047197896573402371069619455533196967691254270144595686104410471361821475284980694552785069326395566531831617520930714967363089444618919067607932472544287431314449193881798350856408651064990757608038812145865129698661556020493767519598231631067676098704191849301313732273703308639812019533791637022297162946479149078650840877523030245128595780148315250189303125822708626664919813689938865078272411318176243298715380469798731220422047062549186989791757770249604732797689861383055474989172890275122796249564145096992848923318364499609253024494986714028568304085059912812152802555441765672505995873992144882220731433128613547210514420403895873863497617334670360022666655275963570069478754565164607824977420879158363021267150866774998998790934720790469121133594287671914348233202001568561867227848861106706084897161234317272538371510691338750409801255097573038781542341165842749495325529629206288393467283916779447376940457797747687282339019993406854793574680518225787136856830507629278509776396614289251587096872091864289555358100122647279929962312279385646577103110349661833167557459305127614876548380180980635281730487196831919990870948781985884225989484068165772224167783474889485305519066669474814882905872470321590458199652959533109101042988285284503378003913565793068492878197516300729036085322681154523316407422775108344142842394979815012202782930865405482969796468951126970877049715368564846434288053172988691973283624922257991259232064620022513557571978681592078815530312477856648201990056016519151601512333323933802919023748808516705711426218968743828296256562857165469371620510908881484654249048473247939169549628556267031518945801174434701744880720705831725477378385144640326374428387384346514297186158225463439380419822000965564278592007908564756361641117534161743829086019587594758387338216468877405138984122145893819676006667261320369522094830308632784384853445092475110902211460849141369960095018020026382547200284986138380314466849962030589374143014776267890931946889424758963760838251857905803810072529374039978300390579352384067244847849739180058661693807471449989116933739411946696860366592060118205341908207719661403970333519894933914037234569227630647438920969900882139699448229959309236692383428159565339855397594327185953120824861584283118589768166650842073971592522049673962129204983011684156271509409912301702535487806791724025213858949986530025874813741255977328194994305575149649946707541174188524332013152247218164610026972911415337809971343759863434747435804643135893450444343282462561204707553523398062928142821719787925354765652715689058809938121000929745598222734555486578795275857301731392731958506006128772552859323660525327633170995894180173268596231322918948041736998067238634573548605925501680799756514246936004858018704382967192973089866872345239987645464312947022346365031043412001156320157857088971533401162640049559117879095614890529939746636205498844697579198649411201262971916785844284228478062142650777089269690309327502739126986377043911790482125714904897405869345514895029960655317781457773023541203463782313938187309212110977319801034387680385347567571614158484104233549228422850764500841102326997952947990804671985060799987948077473478748979241212421762637097650040827346759481406852819588938500417576940810460067165426839712666220327378324734062672727286285261456029609045311871967305492844060973683584797908682599623951804718908195476217004109060869683466949432561200942644131636155809692927899556572480946396791119313960033556764556090420518366093501083361846521002604231135860356506533458772610022682971484821546640078559121224723149989812885321036309959966334935874662300213226450573216756644962464592884087706405435196613880990021893466437885993444986356222512879597256406992475847472230440000130311624054503996085711113388718384785874060076293580481761791154897983312245499624169733293772517768159783344984835195418143910745009444163801786613625544207954347104011972439517650895365822697791968819553640439078221431481372590816536486364017066479210218395990557201062612835541415433203860344127195300965994923823338588743068831337261294305727330523335469807268774959018308042991936694610859346488363874097996085100965675860337156346073340639431019777153909527924843086485608571529690107192587115077529395854125495877028263392408405913554517291130061116539152790831367366818862074452216574703314930548938877682996489737176082327684188939415879570556805123365730087340557688436784477367469033947842840780970006930878792425020313706007176996119746720351208413514093001471209156763977600090524355178135867325645841548165507265239938035466377577056286418815020822407168708417844432607552542707348604791874279051757623494490270377640969836423452668044246918315299334765539212677051975098465698657595213646497997939900317224430510224819570700473790394510747330956386952180080526453394275301338889027734199754505418992973711696058853738760111885457597647720789159150189812866816702877000055162087282849823988626187891881523901502172497729782250297290085785170377715234520027370269556777238319840197163586580304772577687099409423045050619219026645009326119178426746561445632731465054746808442591507170164471654405347575154459014676706480114794149009935437574525209949214081736498271255446912827573775591290373353174041519834804803887339356147743976532014651745550501484426000309023410222647728924274433205524876552965382121628164553636564243225605882882832148088783867675922163463680625577193119892256494266913041873953895827340361157757252653807260142923394083675887552054861565286546736005638551034497627671351989517619720522962061988321180805069458150583899224238728393118991126118773340841175091435504456239097178298107336022737470986273900070592297138269440015118511720595082042153107140206605634704468678012102234637183764511992878019359834044736610990593522715020183412673721003772778124993915528413355266895918637703705107276096160612767264298072661575297546031049720907932935226376029700597336820870678267656559098886824134598664754198024300833793022471509127777897048741853911669919035409232100848278658403095761456465131320885478139738028156801739092234254019655144072412009671479872278914705518573095133862765877362041414539189545550772186061965119845632840339148276788278756288068795454484894470038949646495691590209926146524885539525076020951667725723841308763404823025564939808545093790763769213666588030268304936173145582961062787087748753784660347210194485963619194226041832398964125512448439678717067974578607797776910079158085977908353798924264748653760294963395480149677788346492028642957094427061617154608912290402370109998721241297157188244934298071202451872872786194451279577580417613746881339442422565195526204208256136251800136784377906902343360349222978181985267394773290494594271517469287868477846981380087615747923583624349707122149773729625957314898410493746555369923814045443825840177575027230785341189513564924964733685629322506829814656239758346567244202264804242739191436203176978785371022283571311031512220438835322378666756489882482622312538699863590633657169515671294157794720372049618794699445585282680166043222287222978742086814381247615437412904008729785929840686632808905362450038530413283575278704736687036346867430146648217693178825092087435243541694054616462269934145741052426551585971101777481971158971021152971194166837951690434829572290144176498244098804773748484191670170864463858956124913033819372366697200425430921596627983923126310027045272090270727950699601613094889257239181571418172057336500594702079250363842308046565889815763681589463783663900368746508749445980116647394551106639864373676230373000071963691978862797014265787861080484741088947181754163386326448248784018590961785141623257607197609914339412352877906532608931909714807714782785463609066547224278107866135680458901233488604378464292823836170744508507176905564761476587446951610537982281787133784229767029083685485859777831280370467874814491668606558314844069364914872279021599361561041811497588035114597959860415152742506658654704535275548733554740180501427809965066467880870531469431067169564601183360865227920464617846145725700915948027845954668306930283031963500508749917582405414930412128074231578173454956375844195278717541410298053747230876554125642805634393383171317529798401740390654612133062364457042796186545196841038018728593962283042722948349174810578674930239570517109776375165064910873254035367108661808028147124028646753406193597374443491495124021542360988764001109179884687571685315063709749114556932406394549717559479435668813046126823110333181295923356974167025195710140941162617413813528403267504382681298399596939674126686426912452774537472856748413382870610032145773214983665116919113067443510265916341499095796380590649273980317592161010985496456038624357164534720715022130838931711882653921574538242766409507123074618131503823224515820540811991915216559908453270936819686422955782587389443217817659349461478338092728593544114698052845788645677544722346757093641005260358411689969957338346875839516478484317519687528544994869258819978656500266764611490562977293382430263967346835021994664244138424568008151783204940743573375292511313747142910531637207454282308463410656880748098611286634834122863463246550947033728337403906644177430484705994550829074928369688371591819410990993975055782084657791076675325713361147642692100354683691891537566663864207673633693157314470150222586962387764823307563599173207586491058048891157922816515203731039872434541725330315538765039982909770310872734782700038227181517086229677287856859035572145976191749465588634524294003428520216745229290624311096071738357511116949312313542442552003683071590523597411397325127917048889398559698095596871475078155981243003661512889935585218584887734193844019554840065923346231299042298014298215848203494375305957836678576128185028511571135613935115365889627459406438554938816802963980145900115497514186771802517630954578375416801121595020337300813331274993511132395107283026953835530820058937281528623830253119215722989829834898362901335686949207287524644785294513094184706288940982751080453213242168287675093199029871238812467017829682143362192126239528981560830580282100506139092798605050125441759898926042516947694499156167098698326683662732110022901849812955068560227502298981666433923646448460437322373506447044251091054403548594961684761853493313768980763569478792948372448355099345948036041064011930070549138441972182798510996439160913692751912060103793797952518229768091137156127227073182278130864742409924738411728287443067674929720131067867674358064754793132157635935481262042702797747233371645496592076295846854045422636784051287971884976769819841405587476250379979097923545317745734460805958737865663645742296956225539894984845157240244889466310606998320656376873185476288312294261976299951492405650336225469060865769783961826286696596120015080083231694312386812603480000002767604829541217790684865379604350313767560294351850833776276526975663397462219660929360159277487559281665944845637895032449122999760693827748065392778755858051564182314274569614862071258489741461473548731662673087820417494125236661914947706773568438785295399473403790284757436435366996171983946949223736063209504350844273323952339758450267680368864679402265173874052835378512077514737006708268803660085073096007538513830733121880712321301670791974639604313493383427560658282856810969873425687725415614939618468788382524801303862834530298326662394566050825618299123901305110565190434307011121672304659726384755957604609693609512067764834540745568470684676687355427680860177260154724767295154429413350615605117079054549528302413199176931963036815839773121973842009596921903539381021787721722421245392860403672285272756005187931623604981961167537704301674711502041946170223822678328077786125178518853941932213390445477031272317333268314494077553130244182400203384420919997574856652040162964586063475519307121570479373282036946037183428731174818199433616108291883861285554034553061614586241949496567473447602663653144318536051341541865348616224246921775963670367904163219290905643165907257065669974006571207052525552870224646875923218532888372149013455759468480211887381984145671844034396290059067544708858105867189744887164619858470858231954401204325641801702422446725867068989572116612695930102280071470711904164436029856566077450940301207463795660107290183882555996394869592132505357477295896071810553155500425678133469711448536853529021163105674465344422126688772084681579037663729246433452681962848801610998495627514518212538265568221854021340003521365381655081229503360371633427950016262247376244658844367046241392475119540915854758160698264804406690699448985920705297533681877868554228081860372301144963142230346617333128535352534634455294098828939445079893314901915718180130776077321537550064068815054247702921360529024507660280741296426128061261283345717085826987823203774567060097424600632537030984703809387844178454391646203874190588348266038704366401454807695761504642952417543255383784202691048403805822520491908039203240852700929508000490334037419299264045363324459726905696112575032002030704833846833534196546042763931154016002104627990865854799596112115113356219738435850016159594501338705396741178908252349150261018124565643751296496881244459085638389485989045067256224955774584570036790514905631032137381254296077806649801799437615469829926379951731956349792321270816399520990096828896241897009350490315390307620415727872353618747414447746271274712933042391872230124535716908323195343847771319647001820310947540720664415614416474580326887207526843659098610795623462046598915379197821350340630974355261505371582625253542470848001170095992820162763705087601164282547133729471499787967947996233016150269174307937567315211258461788870809794830936084160288527074815570196434559317275055636138737667031641282587929335935695497566660917438886465039352569644406008154614970710035953648717317453537444059628854321774457911416291116095031805031679389746801768291254837538439447016370183773080451032296852044674753603601404802250462139577687027012081137051914905279017231285524254134660608862226859003946808862653525325488278889290255149737546711915533816573428322782780240197029811564605296861274369700961553755183001996314763662411993036218635032874186105276289931279809408508003049298289591331421518089011495702150905374935810730427768161379873158681844323900285104556046083879222831314289434971148138579166376394984836139134959736281102121472875698155602466388414493724609815806350939705159127684130242383092500315389688013525810906524011758626599825845265668079282287844159149818703502797530290335757428116877088722164605375093053284360288813549626258164381821923260940958162765897917465707267047495047009939528800892040879268166982558805097237422512766162082641653169688056347571282894735626398468794810113736438513939212036544070232923872008077989254418595756660774490941804180267064113598025488673261761114640303534987859358977011142539647600164036923966465521249867346129407347886806090739530416179684828983104935285720494282686383436230131298470069005192559335231963968945221783210401999977768874468144949494471684545503444982874844613453852301121766179015168843735114140386344149862850837831872287875355720890577267999413659321266361787830050793701279005312197984066384837067128767387971776629870070318082044130698306403073654402461650871751566371095286356350665470612490328206073357733566309295324440478126141612842142683789132276084599516222411996374959135628927646743975947232492027569275061653096759695418541575401617635769066335481464052432527133153530914357810999169521650471241525468759354623711156957486824237633816318044166521761427630705433162902958692875230183060822858563023830614285930239520133962825497722460533873303030844122916768081313721523511215258536976311333331808258811332708100520189616496771820153308072316557258441105830079788463986739529473555983537628467436532203663341552134716705352172042548076870398035044220099545203924841047111736555488994205052619213160497532133978568009348208973005877239203773588458401379108338378190911219393602073465161494002751803980265919047187069281513204200845866883622577600653444126785308414504263991760777732442215250816679989103461280058166389335452787721526870929516616190063101994404370962491567308488881280591776535306599018314675089957852442943807783437331468328030777761858838719054288375720072477346644432785126935038096458927923262826478809277615765611142125365649760259797158340847998433056259444165859858437605233330303999702652402663156580794070825311714238819764248076967811654506754981723164848042643331681668978160685348058180561944055173118962233788220909209051118734247235265976173137461069303091774516331661886034740708767728973030452606746056902104382227842214016133659040296966169917375126305798662505950684458735209656204220085772908793791204188434980627304369857836296674511400446364798774773903566801363751537127279640418660083694173246264929410434166210946113871180103826920027074710785729421669347074110902079807126039479910922827706417695684758761958791622555014378954972771653096173885557724612191669139295124189612478073531974586526022927949537127877403291981543870064172793274543527077742634664897063481526521928665958927676790873466054484234760083536322637227629418759550551533219559089309078876521823060685185274545199760159129386681540051432499357308999726418311441427859045476367585336225207846162246686686171734454523346789908873427724867467370809398102523156712989699080127661678296017688535495653639390924146188294741505849622296152581359570720113486200450366645504723959013714820305634581428556638392722953240090825829927348271833767668555728880337171022836128845984284456526425313409827735560283796090510816183739193823802634568650978652768706266543918190159780874649079188201590672449880585795605791249448489346285074336109938890178900766792818588223354739878180785142272490784710455907229864538649682654959123366870699155188106514976208753312110528382311685359896017323931323059600829566474277080313325360449904238508846589683910184501433164308897410976393404653627919477040687486892609291580827080412414684738358236283844442274592618675710413067307243225778131210807610959677016364107532228796977231514986556128928922254961575683057591384190031875681165389048230015335833172595208352458197485232811640858656272646880059310085138396089345091747383704917952228982862253891994944876897098447906553842773611849506180074087726071243154486494642068678381022132285664132323433360334175019343888356699284491430364683590216029201120679893567164160381110046811436907179959713367960012185618293686024624984550786373488478427647291316614848373763345325074986502610021310079114840772913427804447563237593876860194760796263634020290690053013734231614516251000917648986625933922388945871870154226230120840927290344950208531578681216402611698770670013740571566470486644709712159352573589799675331851847642296473913686350243956255291078252943417606766529367453683258090642016562401153945462510577901507473706841277228135462690987058285710463344385019969563565644248750491670059248517137411797342229782172684329195424770790988746646285727826223941955470961066135420704025387210571198182798023974125825156122186176419837866235977407124773662699652978400605121369567807610180128319118187492375728360341949429276993600944244621471905829702312505621710204436165381805653584653587525875806562755595259173727616670953590241518215226536134402356739955792418907155552691200586622105520732649854680081683069220083626316398147310898892440361988661862322484498620918825769562663070004591673443649769048028618953826982892624162618556701970085208531055528461348987427245811958153085949903425977919461201229161565753557376072899467579349627190944149218847944446430382717830626753224603957891116652862206809640868372750105410066432217433193312090398706761188262729504661577360289728654133866304700017079377726699908102681249364136426359197120895805748705935984857185612905813846359107418418908656690802403492217001541756718097882097412925200220201771589074927142105199599142851913893899533518798382999525856724603278326406131856438412695633306886989689714654599752528190591042571681141253698683937922857263806734165947496858488975557061838093654743562945551610013668884181892551253825442226173793022040076204103113496668729385357664787424124927417391936629308611677698614874065454814496289566294857914214240988889708806590253826412964731531852229279224079340782710120530206026609061946669264993352887954416252158727829117967920463592056353457269309265407416554995332554926447239578284208351492109666936054442134145316909741604008857447689238211840068495401778744468707882106239041119338013461221787873161502307599446513792728657028282300545323823006170516506127354726705364250294977391146497590825507655380455761406163359949263101456052235901122175607442940195122403113800986516775759688117718373309877836142682234142959856212146159617704974764418323239930777763875273447404976381088577564221362825120730615458386095803988178124792831444250166526049552617045923591615844166961375837842996287371843493765921100373389586450819875307126410222702230708289936197163325310160328616896398454149721512653937900547190011415919195574899200799015804315593632778071082049282052654661595480106362041059571490823246165501321424422327826035477148946781496954999770250466525464416355124795772896201649110243217793722708241577345094629610830326329112694343767684148234089559795259909929544658202829862511265341024479412266214594448286037421488916413455690021599043181721724219439576187227107280771345844555707251618315150281846488337814553920784485004614896010516020620115615006457460393670848940649674741895237615369215337282087175708353053940569814359808093094057136407089550866705016689878681223685881949504902623104253791461532201729599784654521067887702712617170054786101778255300470805879425051268322895957835363729158792067664120266176634768586763303253605712158911601258395517454769882224284343198020326549590124933595523449852980609345147219020467056371337139065519234262626740603063061485163266975452096347618643879398094153268433867713797200336201702055722434844039811110380323838620574724513291101577637950973960224609012865202453031021888356916885239717927296780805352443124365598952404386080726489869134913451954473081001210055813111642143440261476189415659305806098014760141868641825495970808684379291186819263560508671168632118494829855852436642302289678650984521581030990650307002521150711332577066382280798576920368282571969848985088441758913344013125045458341461104584982766570506873141394111127537600384195472355370659021965897177869378446624717892357056799764869641463517083322347093278846952292838676671436886199511376703554771043387426987937364589151233053990145439378233186530122681957901329598177462191833845971260672914919382937784970082217771118964293072243285137129256363051193573472518933468111818268175415822973909038699529236616799765823302371350820114130052596730449649667164395200694864082720749990824784854309130183076955267428448484560307720402054233273978401778593886505563277998886584608924706287296644446635571820921585388747646434151917095026365151203324685592367819031312773328766506108527742362747512334975766934379441707858079006703579658923056948020272969452241168822982833608388894848357945022770111217898185891952097862008455377616166298926547819890326009634470940031350879356458565877719272597287726475015344048901668484306719689495901952156673788881173161511950130119866969387430157539034965688615979843610532615711417666251878095466960014191745234349031106131165092038015444518737273791254427643760269665381366439077390581537242811761671997298771454037705182273859671323495269690540967323968123176497359441469202702309461378004004143665325104489152781774652752535976411307740683909594092284036140296315914884217432812193661382533972817577502429799491532662609793037067244383803187178680937350079824996011683680063058460781934691399212371475808604738491002969048093816969426784391231738622668055318314099827864206487145285963764226663379376365799497385445710267044905195600210848034881900870123028118562433082596794359318414436138817755643450813442506075712606921169294978413478491588838075367239603427107510645399934049643645706631028965205261626590220901190981598761096823717597398308297494468534511128474208254428786209194824850992151603587227714247860308673535383821124984588648005037927245558478046818174543850536792809538852326280722231418905216754187138933072241169207479780211344659973681131673251817743162814279297945954121917509455296492999364308198184258386237257931821993895050454393476783931699711660482661467266713057420455747609082444796710501923733412857221580100357801082579145197460957468118178387669013098712989501198820043120372940878830822558532426067143302173821979257022835112977262306026714711571575478903833351916328340144885312586476797964525254028307972877601815981745746505504535445473467286569397195235621943328170455463189103142042733587955656975364015637051586483697053838001244460617089750723847841532580398973221213058246271802494778319662650789248972736263881297202786487954628264929716266329540699838337990540140879115137217475344011247485396410861560130854902497020946210594201132503631648892732211813764021265036879617270188825467572365331829423940519877195980349884659593852126966554675044757302507201384087845988532226215053887766043142155160592110574510234183312185447153865305121369347481624979828198278659428722812520579775140208414277791937461654191917924426812899498414205241992880259921719213290398254329450271234091615752806390944971086479464657008497438421319371084574149107951129707730450799800399248935425520458930482744837169842449083074976999787356451355275853750455315564641284584783839800163303406520984060594178653177535440566153129554333180599684307034150383066056545228673515308181365328672551821723397632675739535990172243022373150007971451743640104222022162911119762335842768834474324631539488678923647645228643644940074334107900812621900273442805407379291348451686483469507013419187706321478407736843271958871151969667706283376033092287301622151441223286786673091811949855794529179243464293005481356695035442891003423097408392885226754996571344862536514016096613966965405746121259565333304529650673671889369653209642566562669407178551105920256798091052775090383031297665483527284074426975630659574012979350257131451353221399452584792369074544307900224286338933486561073328034545253919114981263237479684637640828361450478356893441036554160203337456958431308402727805097354547947305352927133686855029765509718045747259142996420513485318887242333039602608483192528305860155065044826503070021696256358569103164310835311119782339003057355309854551487015256678750397299794039738250818491507228293251904326010743068958392677067389973430703927252146364188158080457242366358297913724209806062995443895266295500171614238142163984786480352488126133137587036539732435044803385603073326822442306026836077704828399367899620771164961723899795610946249941142129263344909689945326485391900004985147115340721218508487780923000990409634120646709477188719983632829837232828743475854009204400177013952986036392142406117642247961943554897876867621515920803839320592171900572285946365629756801895921522342466427900278747141780748435370150110052123874860159229269615145929112271418544393393639752627225479762414638877443110527451028564188990007205764851614924400370947321072262732483782998465954038319167115557365390511447554743059117004779634993066272989339139398799473270392061640745104768019139375843535754386612947954560901281962820041008282004514085946054776977612035133478673248466088946882265193407710350769227431292109767062679246576867120511669962882729564290402606159840316187707497881316915130664909090228486248603823455151041712494205436438324892959524660983397529720663524571409199055471090025800318030583017743427030290631479653631752800369555004465050360724843506751711136912689551218384833825263764398615741301663715485037575391685807845486380826959658692688213121668070545662888291209114253069911260486039027029069216637272574252005111775815953425255136770296029954902868662034505183783275970077837834424151976714417661895342165865629127731390756915893941757551537387601322540493346320497743802716669581043997350305451541603224201411362307948356477486218210218874085362211453793882080737471802826965454298527968635269951237886240699307970397093025097699140312448274157683007742465312133391053520193083707193671337858521423026415129321937692415696837446934941054588078175862222688398728143101424235722537995921275056017899338323066717190460387977260636463625147604062303605715010474330770778628292810223335006415715451978364527593047246603455561793800073501826902074729615829250668937933508535090330385888235668565579844626296826340339705833780703694053751712394770195364008702314754537697708146182606198060196559231168427830612904619423127466278120980678124385194889833523200557543128029187596158766976463725793819535252964843144400732883193233224878092575948064028164468676167281561935349848627276152399478350326087120467609342131694418525010357150514429300901694447102417616314750444196372499579662547682275019294004724432585251347985344714160848338073588989333739028420438171366015860036321035613299169032628568121088112600866542645270145762080204462903491649673806916836350492821207578181551744247413819638032885649041479033452941068938780745367136625815619027020079494868505159682915233514191031026245948988041176260560593659605394779775139793848859062182713537113002493222099764974130506203435599622943376448875236975582597430136967574902888998180019769455964491079853766803555107835448760963429446418501365500704786346240505706717041042295391189688396186961326909274190355138299736583651766579886841698447218626229158509629678770865538074337769037624608874771748860461857943438179902459311377643566872061082819016414527875359862436800196893935810155589664363037857148883453502780276685200422904288076141232027306307622254011569085560362305827544472466678093149964734980350016562809980754077551781686805551722282338120915020215063213122935645750138497842182456856959045895017196538879367974679180426532458177161567694921954375654436456540703080577800042709457361878385936384956684135254510264606702540693412284869140428462256763944381702868903769915600122374873085682903027791524605716269014426502128666733750591660035251415460311793844497902414125876470814062730051134259677832302534770766710274733224846541178977787811502307361161534091577372139105136883709426918152088475858719921679175938607572696089925169850977043306763043635671438850984229009239957598986111054351347565075756362133968811777740216666515042942014075769250956918491480831845921024307167711572813374191993511188381979650583013204668750764884857077591717816493543623876904646835483736164473121862417476797911495197358803127284998160515489817124626921287779024132033288981129310164532551369324513250697130745605798498211491219407842758336731954382056958428463824639783991822887465773678707543926594187660770179560278538734960048864397446973420155837596810402117844103454192286007140453399418140248431264620093582263635817000963049010428280162206862049162467776048609204071336091375339230827537040218777297252554377287269515953016410314582844793586013682315115808349911870672482027069567589280207071974494733423064508757713047248170139838349450510814761554621261536950901607369653351836980329969495455379923003189216872044792856734956832720714689890264058598305888610296455471175337676352603240937432268940276275414681445208432242431406014927840946584092274368484594487686440477495896366288726199544655493992661185075423793443987521140717513883932006419878996848476991487766240418634228468607451006711049304746310889998125308141126986052367907455173740198237312707806300335058123007191027752432355278598171904252149106381631463231846307184080265956583001619015689891777595224165189002150356665701608203675329380148673038799442759196158160892543125600429219129189364014656948823793219211609920479022944244554257459498458079464459529317442189831222797921748984385879707552250206697418752984193881952748211795089509310977345267038146844043051778273818153860764577411117896248680805954508997177112905653081814606752041533765807642089651273122820997461013269172233387981764699383551987858867651409638348301698682779917282874132587034298290912170432002995698898586976380574992371860037965930190106166577276441683027305660705322256113739920358659788436881619560972991073494712129551556857719961914029444272321713904031480720935692835669674802454999713126532454452792233035142384524866846312766654414025106986482648865387472622347437624404048549284957637389467895537449758502378534174769234653288178342136025643203535285182003176839274198056634109252755000765397783778280034324308468774248668277504419714484377690204275250539761653835359720604862753212292523407969064595660163255903675455404254005161376706112067550421383624690709549327913243662957903961705932283480699031080797894280496108699514114354449205080790828772787184715681106230690500036781862159011287974057395096005646665218494584809785537525557530225618429467841065227118654584126364412873574664375078539301329664051644247557548244288665202868302346119943571966669956948911737133636386376116036098892234050718632363075335195394798907327654337971695088448027623716912985756801725337274184039332344362590477295527287639668694242958953518074752100577980837598806339252218560835745779485036362852138625110108447913259131731365987979149879270122110657806665922779687252602574994533801417021822280977316883155897580326697220860310008917195635683499281251006209234662703199511168043556339132653040048352580277313311311584517565530926405408570546831344439505146900018906918650263834150071958831565551665174936234635728776690551169372892178514614323028977033421000770982835852003232253848634525253431490469371972836085761890618644466951042565315859894713267649258803666132857335934369854874861032587311111321452262448932351916585753807617950333301445407035845235075354958642160405249152236336286795406891935624687718728563252057881278930481623400909401789324034671319965240505444530574790684085158910066664560051243989166451255729997037527457045648899939654442465091089995241949802653211016959999412858551606875431837091723046401223434627811129150803664357150737832475718756927742673155553773837705264463664574469545292290862196971233212168992630877181155184043757321741271842060017626336078494288724542362746148147989105740772106035966337176196814991939184995813107148389352196051757944931164530136243283794655554528875410852910773772298485471983866695757192885224073543458072397678331995415872333279793325831024689328782214431920726575186582025351122716305152596803354406132594467368582425431953219761604677058903296935745197801284673667181155413709907758343037275491547155205838773989906048152107488123591770304289245419920734869715696356712361692963187806603106678031738941605845500688610678268236077816916714988947057288095687862420816437326572658379506815136619047674017090077201563695803080478273744668526064834988430946830131448369866106002145414320961022787561013369795798645091099581129980376684273893032980141298287160128256999547947479450093762234275263982963910432674685080696588650937721577536501545023681064969490906584888186491760667716980544413058622360373586493594370612990045124421506823825544230095892062523382452561367981390278653683689911358945524034934145412671221665596826883739062208679440239785071388760343199884794465120929612378348323180884360551939870404274381956397219627068505448051946959888832193597896077122630837996847191466177279182378889234472214566243486003510507804791955383423480527784590172814595109279197668208127922184001926780703587937591434664721411416440725777493772623892606342774390276212049479816080138262934008261228174257712713689875693759215205824895140605868053969906679936757764263759166298600032586022611450425333538605218516536543570395151672293079362781395954057543723234933675472714420215804948869597665717515069135946765986109872218887326557575411620297434527669048093726999533108853414808981072392375004364415584449407610587256575590970501910152411796647678806145429153077923912747906154551586293737157119623875005286804140252880033484266960522736767554382170534178894860856398765192167713130364066326356234659284585064197326697200763586340606552868581703029502048408483121619231734109326335999221121470730076589710663668411473028240984499219802462369187441586557696598475479281320197662441390609867524058185977799642444889110948466926015425334395169762103211846306561739571330781473044931585306851296963931293094463130164182564909720020382913479145510320100535452099976016553268185367561599174080677730465302879267023306260975311696354509637503518678534251708117222740104414414385454312676221277598243979182593584989034216655764224194431537547148380193016073533904760541921902687254595474610530010090115112962963659708356950761315934916049708044745404088023343115572264656015724965166272408053291431415900631475812256490113361589684658241146349158227765379697712818810623746155721172692817433734992633371922023332819505202368926821842864760506387456045206873489406572010560458029150909782424780644667723315878409280920076650321302177745929325579245925868076314153304217878126850045897698764354535800528446924182833471058336727532643069183539190173072264831428972575416708207153770238250023678848263504537064283128500306386082022029600435996614461871787125414096528727605419864420596995532432712166883773956477352562177920680279704333675333881776453679756203070391948845683434758794654702145323028922835219334788757908567942279252602895224394461338954485415535566620414868742794319331824115298803613657316431191337551701742915150105447664762203796300458486813166342440353063942652934278059622583702404084439377772159994360286148463948553211973759990655594725172056475509906956309873729386069435926190004037102831823221406069537793075330901004894330807940740253770403875263098567919991064739107675530236844936754035036238178005429033490308974704511937287638346007183217302261462969202784903450102827276816121064533296918559233394645584411006814548517244954092082533634503242211921408501612808036635640781600384138173971952440183221260709333485152188169102114644016588577029168239701873713832609250185526861161430871157625719847355763714614107610495645656287533237248151358352088406155147386873116104723434895531089904335681026556764241685977705421979603239536114282896605648975578838948972634322930175884642414692174034553407601502453850389739910076969619868864029686460837304271216889117125996077378619628953102866936374842831344544821868561976929983097364222431679691393963818413069585686023280246916643944302140186586047006842128818431494505365219494926335480657105800320800923359976505593433402436599183357884763638203642628817702366190985200736901769345089446264092628684261483448456273196523716188873779834777247743087386767442527001644345895769959676191987825688537280501997401030919785087242857555246973047178920759041668735894735521940980369458129614570950450502500129700482015013711913396470486833575140176796885421204914405977657105382648084013555418030354067304693692083152570694535611323848775866099607416763914060035235660001559010696889280346805952295476285756317925334843382774200468092755125557725848181237032124400604987486496268991630351778549107724572905671348732677374818448521982151765352503483321516300808678213898136798964501836128777989870490801422981110270269075961948178635864297428408327268286229038635405463416934635998131076569730036862223038722166628449305385726171229516833967754832943109126327722566621963870335259631326472531749663854014683170574711243082326029258873888934542595489359467358308659378507889321202646743564280156372822795766095373900991661267288620441483691938054432905321870045528031770650085666363311283384248935345825362536400854122366452436057969546584981341912013211726035321721520790839284944499018618616377009299373113515690750110010021155291564089311526071137676055755681775665454787040597322641412688619596815350188487780990797676945366006542561373771486241926225618759611153070892809443889984425362423782768931472238735968425734412257145913586720213097129779005184900476268803368552874117085282070695698743110905070380376586776043091386989491613089605109582377884246535473380751303327105971799033271566823817401858521690275567201639076758143183024232740996769206152220586586164443868829381162585734030457853808327925390137857424665993786796668733920129114474026265002875365304154199937497878750401331167858060560047388277113192625691481916694553484078290974580197591087830433657760035947460566920081139795714825062278225792201281474952891386959177651883533748153534496186869026739923159868955560132470066171351075929952829980120959024628118722051997340647255424567064950050007013491047564226619978541674057667866608893340603180822778137006620629671176642658928695672207666933934920419962437322285402364038718358279828648487092552153920747168462042314721093267712658374450742574825986559997754157872453435311361356762372833047254920079682815863833521789711058045607346913573078487842351472422454438163266405230387064303603980327804911695853587304961322151498288915212214924528507998855256502630585101877139562616158890367640391168521784024538318913113049375962419385924806152247433960025708157853551441666552358142806636532454983716630441397616186546806297335267789066763448582435173202059364928117840538384080449804199462126215126021201624354801417622658529540407019047929525504017320636960122473113389077446033958448815367504502115938540968174558688232043389438155747564636548665558161123273518423740923720224590038726827345542348740254561988738479970764459081036031131445438236533954262351780935232971035290272834421927756893015642382811271282149916290451724378849349203882937957959652859370415343461832198792986093955483426476468777661769769536793544497619328958443155480596755925383824551082116853609774229951246819564010627922837136472527967929010888121021498988874724542516841569629265133049566719503983251377666951868799550759148555315490413032898763382104563772679860992670980479970376383494485813071231580095867025858640962409283318076548968127292893327088635246087755114643476388098700307282794582534332257788337369368004226238827028556241950953471632417465435633519556824768535756989759342627156733527058670343578644915896346384975571346263970608211918466357547879892083421250527427011278998178296087036223346587877252427151961131389487941252577162095105379276470583862766289190315052419562515724990125356404826370915968684916194756042116757794791362346402698794561482006619878177829831578501457516012394076517260525297176868361844576009343004562637985924294236794114717780304737255986250670760139510409602848736857195508261584866719271830594755549549356046246455611180443719855265463052964565408859537349086422733377500664311486108689600680798714723392525078377514388396039087110314835918248617682711580518364217692037798730653031680186927641716407663980039788225240699679500704754712045127399501829090982630387758212194681994554241563146868183761384079640116635282186096026041387600176145879850146647399250559665266642544753105511374918059704654057332056607819672274213736288732451478636666755696984252633816755804894393500922618149889947337822352234015560045453215314245945397168589636259255310761549308449884898986427330188643324043590334731543826757827878268769160341938052329462744311444194355381026528504344985577377302181660359088860622964997126900403784820795772743372125195886342825319947589452388929370362618758784600346914607105532310998628961558892404451402835349612272231643437413529678992200981297865259360923394979207095294454863953409007348935883203015519606024162109187753398521699557007450258871098025595636030569513260910998361986900267957120237774282869409359394950252595153502005541353810762700101350027165996715321011468452321651079521245071862433949662825076443436201420480205185684388211945009316293255473924223193450247487392332490218320971585491848267705141083235998430900997360185216927969854281356779935829827413074947748965922165594767217356995567924433111575766793470479651085123745861775337703140361226003930595889622957933836625209011263607513889718797256531841883420432772414232283331119661725550679199131634290863999030549337801641173421016868184419194377364551781729134013711119871865899728147452743109534885479803284222982097376786892171025436626041309111820203772028140734211664987293116616254813350748892312645746481357613552883745281915347610823683461434567112918525821432545926655267291199682300935507141181603090349264715441852386514837808687920081291380027500519969878587717857253703064950935888167630170244129782837484195619930013951477003520812302479955340189240008379671673246013214470634099256235260543746883125972150294393158749936449246417840270068407374005912708064754794243274073750658804699998700648422739327829012024513170106365446780995525343391447605950718972099809532941052636236814644341946198427547370511760420220745419157067431805437827574703180524431022528016085527939299175620417794100280872431521124002783305246842943455373644662961549963351909946248306507769346889958670224757401786451310923441723995095014298047290996715486817089322376990155875409417715693157207670253026578760356864214219486217730381047178685355899592294820531323728939112642883245158977506357008742155556302495460868654047617359167391557420326783065777661368407634776466042210816895286614796075875873011909925886448453583834585588744569260882932044364011169865827796122088787484827101665820596337208529990683206568227162426895500545412843814640679781888460219171825515184347267319208902730730090255294029668369372236813923647269523195301132793571288616039770833850175733375502030834082230283281832519353434368129733863862234389784615314763052780746558166844647794562233799802182587285276264563004880922014488107424478504923900690371142144154674935999974927136285093187381063573323941315993506684598349308170756329679794792239620504137786848082487769032127955317792018226335335171352879604246630225664904708469574485309506504605767881548931647939744144007429755032343455485654717498092158700560130863039002985802713278429417930403183088906010352652953616282470249837457210634041613966035964965711207946103037422487130704877758937717852200148193325460254167285697456158981512172938200530373203722307191565277158229497585688269156869520147167538514103625407639351334143992336808116142383663753135271497145225554520253281859707152438488641243593782460038610492400612845631530455566194616628106255399383202372249575079351820636194783467194566588110689353708553961582220884651277551179008244509048761540068090859473008755740289267293936732527369983592152494102799341500325496306523520399659768612721693906415022727781226573272757021767449695818735813952970884095809061772625455437849867752916443510612100267222716526442102287466881756739290412027373471144481938204481466716927421967173011697458151858377053913196492506617974617460566111623396109004647629022506340867849295157548652577728364805187784311222316336686727520430337847720873261694707353707127385481252987379281349095118389661225340237975530213508249449430507959582944173670122643283601014562736840230114916765558804257688820559617534893002622449199062374449998836074330234101192914685246569402916832988958919358021203439815889707796643542025724760350898340306827584388126569195404346962508356106416162129838102167892518114279131027825335072871372176473694614181132161180661631825201023113777061575269849324721117169346022254081923626111094252178647736070751798146625581429526291581072618048684190730120828973017426860250378116906897946775557804803664332863664972048777723926288847709448006235346009460307396952127218474488214239406594341366613698304263696927086146326688283773473114631380888752734631014708213723205113484000377867658963835730638029647347129215544025581146536262908416384367627844453139116782894163844544182201505242232281283023633802682385493352598193300344827636409138966672423202516889301382518715330129076392758693437148448329177154451164346954249670942252252404375141257848761584787693027490259287289350141996596301857172594354680006911735422170370654794983099769000515043984501429227648264051257335108340978419520878658404698430338841697500090211095231007652445951069551094418727270054941575501331544219682521937708154977288916944462998357173821212884196936313180860651203812129673320165890170008498547129579941829991151150048478187221909943055395028880084563406545155655942890111690468226611025837717217647188364767858469795717556009548606449521251449516080573757792369560739061652109240264613788303810274629658852074517294125410134370959673737599083435431510729242069562445417796304832267297821052153908291860680588579531307102070913283451365917804495573246572239404889861936506040269056011608203813400313940900489213300705661624381123532621338730841545915167153496644196410025677037079823086578671888205627232355785288985449839189544714072316544125543329962742015523961853055536809481829132579158749176824351774514358827123400630478434257768186992572395042317219716831245306645872003634553138501120289279293008744785171962243388142930144217869253429577236780721073168202941112111962873248372062806263798907481727774336591279376113982983974278110847282124479796515061066435166811264346284949974174244028328216910562283278904994802210421249398670943596206600139556780006014154238921468950430723068154825248068331835256005407938026249566456063624302069886116150103977439257526227940372848234543695017403110362394585189620490608326005609438824523430083491847082378520459444190008166474435140394888565984588468061512876251544807854127833631687274222226348599123119691707385395141218598630872968160466529943922590341604068792375557064243227342396330836674295679183365326674162140482714139256937504935852018604428422933692854285968468799063226234974468824096213119366191500124298703070722548640507108826706120354375068783166193967904152345977014474118070053093676231241634452978898712897277601250168987626287870704822769355738264490324766454035110600966737929098611586404773795073001649687506520173160817502486564496952944094293584975581000304056401912024131761636952479595998492733841136776132523563094883017396037795653837644489470576142169882140036197243838888648184923400008851289320808040321544220979785031889197553245991616705879933417077442089405221585302530061560772852382253510998953516224954278543257374443288123979112177776934232548542222223619438615562932271375131735048393630763708493028057708948102914991636927776849166118540125497722818888196179875009642835275550088303979046602668574308498910852852902775010047528202424649107013841087978218272995108030797408642537414615828996631979953236042111820865481526515373569285502162894289760236211795704627837597696309286429610614326824851256211110463773022683194370285831553045870129955042090250471506809513997144035795450606419306219355843083095252462929232307917848819403681180987586566911593865953003350147832598638910180546342589007833506705179773000241043584839670283166239852498827963643280120533496215630749443560407837308617068431856638925558971923732480369716174047445362047944317893523150877746513512155906185821658524440194963086732133893953318708762177045374760911477017724831406800900227182799848550963523230233076528811135020180070344943671626952439471578712903200346806883258735366265596269058439465426737551681709289627471730477445698704782169966647223268551172401918545938920688907007207442307413116995460724242205884869369467313560988614286023648086560823815078022382838962007519089847529235150636452966464282143929191542793800852201036532295376260889872551223644690572707812252974131536056480630287671922778709701587995089836332118619761581160224772528815337231202091290195829202124920728649970991683347210309608327274838890281323466348599931906700899026483005772145184465305471810088288053347964020545922854087520968894200784015950586884848542471036153640195530926224820863650727112627460344631074483071852635477687457937433726155166699583104592566167753027400016500649341988199613539310683789561606455851926483318598566569122387333871168012337124562453809718302777586804564372018834133508127457745999660634789610868274002746560844719226447369812572436500209712325617962535589527375024476870170467480311574271757285119820184694751167558780363911320316872767950286315717557358832811075773624711713820998813078055992558074000015490062416635780018151642583037964446154314885645533299798494543662635124731636191783580286844549576683163197071003585211755237929701028929477023204296088032849619487544577370109130850189970353268462669160806157136760063962210075546763710326269659649133751810087853147323986719670500768180368394397276491443595946991579606003775138314070653720295035186169760661052814725857160405075372644613801345554093196802294059272122575411794724487209283576402413559825454773013353237159726906047997315135397399452822297194578520213665243688145762698801176835068146733702039807401486292371325418488873435074753360004924114066010667648545443382584336867515654888269127989379217101875593997463486613622071526222534553332304000819095499534717436917050209575976597665779680464064978531022472519977410539907793818607934863901845119222701284978693587712778611703148674869994236414913835344154772641653098046492760659962056522490727876742166624265808922923743153074208507022878780560055668688809462677418405526272170626111042776595245941833020398791912649295627928346576017776075162103722407805864720737040002651602327517116241513370610550878646023920262765584761165002109586847535790946956986982887012741588834364941879532984620937907714420862123034744015701389724032489031762809078948957766624611010148309163066190977449499537078272158656099235317460542618789855771366982822329686348775260756487102582947884889763549032393283238342363478734729938275453093240320889665517823583584656875018620677338551580512591903260804476157822887686654131569796688351701036655840069457474716929110071764709163056724152431383516475375670916897245260087555515331022588057211258077466544611128995424712467257465267105216823167812506258811919235304556303951874818179988331351348925656996675813300349463341707738768921292629024612601788117050724527343036097649751003232193358664926364921334804872064836418590983531093720432570499779074121518379586963237590247755809721516830888607008972617435041585941703844966232522519111045081589064468738746328621649728268645703434371482807314389380579162812816419324676292477455807469666849054670316904146591501652278790544719900447429862967637429829847103312605587344655889661378688329619278675357212517937845381905461294417738843299013688435791769140238375568851655412333665928910284880151388472160443393155016535548064798808276374116045322387088028873591532127177547858398034446407449133415663425180140415477311111609314507475029636660069013595490402701743436469510991652138898408551651428037827573702567284535121100762767943528496600905679887475853462376646340126128091421657482661892286851183681654431942458265838007729262769298145745854828525001687902177687946916477211266256683392044797955802996915293006264236483871547466200179513555161370885055615297293221819953129783616102977097325189349445344801998897305513651465513492014563664489549001194599781857595922019584025347929651883093966770803680504134925372417545175967629414342409503718856826339931253853759394531735254939017870436396229548532902348687065923086829361465271147299641812582173009592885876692041098728593808466234498438358651090930383980194281388762257007993352539652122931543387855058680992154187868510204459334479033746723204765487094422477123817307671314054317902986178102302915328133679408207276300778884615717248729237222672939471559724279859761778390536287352743418716479604768752002701699986064060395064947790520365911061053985651322494156929411768710978774796192851943600568031225109061017581330837329616292093519334703696748928639685032838563488522474089810497898416533200794194068636536153774832772031498724757005621407710452770113862405574811367753097729146440674291474112961467202120670639669295259541232982471424795254429963845524312184429508782860132246095985210830179937179525234793403203759713101459358561672847101202157581038470707485934966982432370205690503811539859172884602847039495625119956650553199460909635591064229949299703117819213953669926829548831428784563089598819929095789914528171474895960317763122581157010269095793488018157906315124744506067247238263706505139690901770141772525666260152085533746002598450834006061541654667728211951418747276110991761772958109336702108201750925789195885482161006522452494988640585102966808609024036196822011602225696329619980740503701818903293785394058475061709103741099533357931091418950730922898306560118559278159116479308816899616983685756453137895309434341084482403207375651952751362106419810491102234035693422089097763784203990760669225749092119376374067032588049876885450859216163114882957687894279045792683017532013342756148176726488519399893708423708625916413196811511055933781687474939976765527473496043185221224798431151943448875027019602039812204622182399434670498142008241737535708954008854768404221902368847317355373858949641046147070586499345026271956007054382085534339598377926065198417905008306757300083332884410339135197943177416443061028982902552122209961153931750385702364197394612014370837137046517936111060331513030005112881187850002411338711821162460840776203856603824904357574897238154488126888827579602644200819001105182619777434702676467179287921026672237825134693603674697673190707511517848880697976984908954967387924612089223632647070422876918087294789115798105867195968241026151565468754642996557857221292125728937002328322198059280789600004885289557575852474288641139697525710076806196419097225201102536772466443389150966268773106053301973878232029367057002227357896105286624917448362847571596907364405073701411806911886601077903805728402168705360213260892883768791811184014032838451362018885700013180209286202194904641518316604077737021505077289742716226092560594607502880721807327147132626137180111762347057279493596499493386588431543859988375852901367385009230384741616124720356306446769610607597391412076064974147224269465021509241822009445772767288359324656141722679484159786059148732785860521499615483916771901001115509141816580816587216943811438473397685785152403915363915256940216251395994522372826510830261620590649399375169277943510293359283140385528568659065293765579764610363700547672784168801330777198515660823745729087785847157291502768735222542735903850415459231688095374234027949431667005579458438537185497936366796853382838623699859927380411475701285936274925313337876241341779543020727735862021318967883667654073309253172224362767759315316385980050444373507142102547823456527590154765077462036783985103223138334345008766111639196472043757186071903384328744826310072451224729434134487725258145025396465163178631552272355320008695204676703337503350704310772540358549591187482152128197800546955447939991033847531765562068484943876481151496641597926902499721378383144998856646694616420477277654505347200112465298155761883086688677119832119023849409421077223168775967670720212197600660298222735336951882367004729916738167898123246331649030639742721363291931858598585438405940988290039624853410027820646081588610269230748520899535075168688433913695279838796586336332643148510103832246757683242459529736666735842705626027137700061659687052513114494539238284925241177466317553571253555796822534304127836261375195701783659180377382912673625173784398405239266655815530010900094093805564363409179466559705526704363869198243817487019490968407434586635902009671246743548920179262649502607991432355426051271863875274686310660081806027218291017112195117775424342497976715495118725207155826656979647497343978894786327362544606798114204303892441057232457259405775228552145810619347265593155206833440212850650135989154101903164617841315469406866749645490434738455341010880113652158221846275813693239132055573391215579083290884141537548233771907819318301582220753123196360049973412590997041250593579575660532516121680739344921185714571788755346806415396517510475881331946200898085406339975910473949555453927455014748349301739301497055720568148601466606083967935677024423615217206343686028211512999152185231966232626407862805657133823048220133332925090067913896342096022884484501585069772820102977219964551054523005328636124449065234735659421091978835438691807086729695971222550213894461865934072549392008897165693773340886572232024280539669327661507108574022483655161473783370042380404369333934766585794045401241869208577416655802402642554681899899299444887378571773771694354424274382238150357459196566295225365690599350110015115843170565145860363557437400108539167768725123218638531705003628302466864471904567945494615515368929005352494450953290478833203966502277328734719936753257274262452304218342704785300725049346841236200723013437265098925929267473868150501010024891774866187947746776423138295021180531324005102644347308224732126860927936791546258416873106325580831110012261052932161324511079721629162381809389361384517371574276106368353811744792976126130117585986454732092653104817330725424813465547073363218468474722897677024409855483267654635248470087104790730119158733391190856447346873039919359072720893811043958407392605677460594077947167844027100744321270751802178109654961110685785119387426141550704391667676960604647709238894137514687086908644101592450558216270812038579765580155979670814380992566417364473853936229293002781417699482606527213262366953032458552799350036671127935941246457203133972486495054603158126776514621559402451747321882883962727293347950724444810429291202455325600509134238734611965749768176987537177919771208460962178599235221521554388269689558389989825445719221079360604193521152422176540194819064121586628408359042352921477134347481939668415804408216370738243152767210947630867909881772820806462898112114116152772473661513953598920111720530321738663043830366936012956614456700102803290937373461407233811038218116278236117858791989988111798456818070705657585626925774826552351276306238675312562878964190258225639683372304816423636560846353447976979213608559526607259829525502927446459692150328355899217430786670382533859163922603142516161021035717914632427284451338377160520944066851101416388872034342982867134068416326241490998809851305797733644701854539625192380531378337084550905972983313852248997978750558037087744869720779835492000718390332527401503615922631284461170582223864599736146436089480006046243080489299362307402668360637226936326265331635927131761285598727767353309423563856127906425372783630559856605991089341876546156586177937687586180513902543612614611114570842304523182914998858008815283003905471763600204674846739217681080630123378960330533178316303370110095325598791590828816204527824876472891509036679488802553364176673070073311760590052205064947488477925796089853636555553153116383105794606130962295473122836190080883039737885118245652172553422890059740983896262186608122988822117840050107399981071712550808792083450272866337895439919252829202982764010790400055985963557572586298530271591774967311353228385084536352159326633594560329453207646318135981236777558724953383022641174477161145267014444075864768782651328216617697413082131830339551631114636919200651569680933697310160825139543208493846149743271631259210085598097893855786243382000733919842745890982825565098248413833199431936981618275432124646609259807207827167028689831975293148271727664422083295294389794608086943709161303652264853766692150516940457154587216309974300823847512799058011939575043793435264672762226692694638695073073963835816610551992682976304557786239751132899724038549630077446333488829079415966167208426009210945407191915899725391141418266192310398452008618796885678577863093707482001482935849581742376214451237630438408122160624858499019899417575489856806479421509035961483090591455097774359242828342889402996995404737945632149757954755320486288704244073033912837240839343113360048381206199580348470678682216291859009189025305088152288011272120531631545596574617375195365299078750239490947750904143632660703070491710921887159082485031468716524037052538727364112490938233096356976719517105860868320020435231144192953800722413966012568058914865268420460840663774409340365021708313396000206748093210254940204188641674982381043519414947834799086554363170675787760493859443423877702941380163445142717105818319352776481185562962103677497931285412892014364878352001908005248731043304642980406169238397658613770589348934316818898853430159142633249380453401164369048744665979782053421612084961915077092547609587051764098286795312068176589129010738795347590544564944034349857067443034618668064256295495819156628039340464907464217840926677380084018618799709961696527293891297039158312007133346704268185660532756735550781971204779319168424884034761527374535757053170159026805072620496016754482484265364298257500374895043514065126580917136489681348502427560874871817538502542405989404913576773141715335407740953708075091048201332459450825219757116307650604249657626218026840586410462139459382113798545055286300432849834708894789430897334965030727566395266368472191607480451467820348563459872920044409951993048537032928560900660166118444346683598913654078854974978274037993239533645152889185812270910187354811016612203465712683537806720026813113277645392125398589292359484020852990309965437992162749246755263959194508461691728072900461906886297733381045242178902147209829982781604662477519237697536765148199873783427580316329468470288710838384965717113634124503669712818478772912198678770258628119641357643343486318334781007744000437913713184428329735381007676285194615692600877222472610328184339338122860200656445492716464371424789335331225422245180164710813184340244465958883912213630061575800906475315249440790735108223438873582798925432582937521512690271621672884599048753701304090157798955581547058155703284087919753635149421256872269303406237594574136165401677819947741665147744974338857285413327860051640755452985512874022699461678298352674121713967279169922700772911196721876881970470360222005673454646248555803820742118296024371446205519451075968722276868664944549578360323126924703353480386306337186864525889407853815876868695842618113189609317908885108676695183176073476711866081498821904763807672043482538539590663370340831949197719056278147624578416393150777211086960949097298716505090624153193466731239254722528616003020303735220945117633983793970488157544108051742507522858422237027161471329268905885266827084517821440152721829123109650410328352885536206348011548171477967268631105689296769865041871250359265219818242715097083073120599084245339994321431971421076174398059271102552484795966741000990481431217483958132288150958529778624225334833479913425877999502734612023735859673795360813593756388918599130401376279327384402151159372831752147239994352289062421983708329046664608494233656492883175459280614190174071399000861405016466573066844114308869068489761642747385882305431386005364039236983402978449682848097878941559851276424477625568279094046717906822313686374016854406044655491737155312338087237725791027843555193289494906280786453451469128576128299610016612454224819062031518473624608136480983906494586980025647475475225456094288942008770489534445308880868332126822078969999605330424595520366926336594391965543093522909643898117864676869796584445539700450219288088684200142910684665314561359007487653117318060052345539165077889719582811812018939167450215505950140345611186518434239534652022879774068581850058167937598032995598624993258203060225033362031911035162770925280057016196063729546772566984500238737883418140457196402606946627432491627165000157584916208026094875719994277821939198452305177197689931370006026364407030317122588330975609062778080103301654484946471684718156508798771891162009315628789916579719243352463490655800422706681046440869444485242922173319189551989998310019364147562612112976233617918883356603064316313903548966180077949597847340347205105299700158617947597320045966095336709167296111717422166488223840608873365129282657595912598407589520097115074298486494714388950082542752937542343074048068446759307427394124682111863248682604673764775593237248980058280431447984972238177249085473899611568045787908932991337060792470863928234844270708951492722718547918770969318046044361627983953688073794328489808834984212587379551561720437813313421514909365365096204583727299124939853703476038606406965281566220532819946697271531669592381153821452387996560746756856936080289488147790455908907487672628697857122748208014546862433474678762766180398317527649460007737803897083572899910034473122578972995380207941206825856688876058866127362962202543645785523595930718439826395162492107190174997195381542894473886698744791720629268626684734163656463107929850700709584281893761655866787404526082629086233582090622159371227079449721930329499628450283166356396118193923708294919541727271320276481698960261452717222202947763760456551854071456850941828018499649328729307393788335446282887068315541383903458576395919804862001719145736728755126469592807062074332211783784461050664675288455395864313191789189596419437718095597432636412150180870410802074142156867394736897083663822529698911901190911353891996555485444206834211602106566280840518056456508300567573020201676649530237925723274688457566958631581277488282686486889089122091285181184520824822896187825795256176292729777819705758099106956141138850832124236879639370441436452844166958396100425016745770416700147523327087943816172524280801421341335235569322126963867821883764252643889017498782660222546276668908786122839025004654085627777505084196056393695297819970789944610766144125689688230038796443390187429270025958544411734202567612122313597648500190771452733599494015614713143623220440061142754407208536010748431732451973246428579498268358566969264891473799764927657679779396022764569303046512916600025602265920490216350026476779119938591107638534819856551192558981314330346410882862814277506887365789784019659721344010346057502274456122519135736959263426465370281902413351272633184486477601145851323078657067544048499822918923556742875246611684249809001446250603071172580868617449994016555310068442439870801842991632579094218474952179860964653708898235352702172530986761477427807364212558917515534639002375087367498382281912736040660787214288005069122983270020231781417941311263440765573080199762833187318515127159825888455102881797787415120353485289652585618788403333003394154878304635654188693571152643937476848770138901622088844829646810234707256933777882248759071606440615732011871303254916239039491245981176184493139730656805429104130916443967725163159951979122494784786734086763588941325694222769536265210056435189553431220951978738524891993654089544213959480685566961477076456505808940784830871844268934940628737582119885513178736481261802138514646137836158884302315420698252433471727912254343523875315247892337863391024529746448259704253154206540813993227270585531680431061273755662738609099480879967968105409864251095652081275762832785768268230180991139563345986109227640325806083676219422143486797980806090564761489152852580368366522744054857482926700080007914635552153105872966929093404354552989242563976206062852124575936262499879002270240745375870704007505700025992806820450094176024543013360231689883800040889201252259822340095515365758445367051542970122095464701641042193494341136028074391882950984723578333249079682627696168788020302820668124687450560488195056547461730828617262718953476959981963304523703156792150735348244837323058662934353686677969843096449689507597713035698895560378196495881685043946056887936881628992512267803083324570867183101893574021390931458691954913321734058020940212667989008216338851143689224344004367144466224892243393470099380605535395434691931276574117588432998741100354677346509580390992297491897660867439217784629402892560340213735133237528974732250267972819578825441693197361861909527088869850698367865423445739081635548049298402072676685287661565014550393783289419701875688083120643103779326238973510096529278745657038631651013968881425241680313056493649364075701644909481773771130437382752333421293734648690463909428663234863354232282282311212294471796299050330371320785917402824130928377722994726939950294497443047898081091463580389368128625064286199951041411400841803573517036286887156989945954720167888082470220584944674870239090456491327891368992758701842001281422397533048438911281804111384492867656568854077689524217901539056691258827967832068446403195742522905350785643529320075554052023472446632779896105933646358410018023805968193044222874566714310316088496940239749755929725506242237640578420126300166877791920316692065345534207322544837910901164109214305235796361870832986396733223253523084321436595972501239581385514722457148821701986429748610191463662100575078026938378039219061467594494267864076400382051472584487455943696041583218862274074250768793069141248925817640388100384462849108076670287392217968895575514002316866192286247161192359577591585289249903529789354698555927722532879650303846037952842757037548519759558644450334054208593435011222005544491701417811700187339538457151124293939797768219877519686505111035664528299447520209048629372103391658091681859973327200891717209512591942573104864132313974836359610166449810226751880085585298581252849283013958988237096592597828678640577548032589301093863297725594715109880456887046623999216293657849123986640728761511984400139608251627312584064042108731025079214690273755414641764000203374495751102795956047347815895512051419543670915708846982422738491896350926317288361679901577230146401631760283936020411229877756376935471704344055694889403450294878212777021009298583413724181226861272073771849373304576241876125842172419684790540931805670103422927054268391164677955713739487293977542359698911407838058318778283440658837046594458026016796832127495481982094001479830765619611577116435374211274123119555737773733975261461680345759970830253203707801435915790877448049779009467371959377635718741588604937038198542151985254515890252292192797347634748104173325981838551515335348973490833883121938963882428643933717800438956851361252447187373584184905397713183308055831860696845718407676875969178151802759266738038119648483143415547388559001907876051704461782392796905094505090275619126682929886086247319229119821558834077362895094556834921137274579016525033474693487931824099479343435277728100299432876429200523407063790851448677915092714227995400857258945925202897748045777670647995085363582194950455775744893080504737633604760326631487125508920582950069614197678849915083460200118472569554152872655612534446382446912466353253100532400378594461463736373394592068075022369897728460217444040441390378469330975533713972216554208874901726213221783789341985153195608867819263715574991996608277694195674233292517712301967649614526321131201257240386242456567441760355803318349265861431452902822480762904784368549829964478556408425649048243790788988806882781916201667675301805151106640194282340510269264073018117366056943771789865182916375860405805917859056575027699509650705740387430724208146232129544807116014003759201858371324197398926360664867920763472168028148107697400002739133494179484199539410485802815867832676079506258837833298329656127008463475234318744496952446035551160198329206126349419922199720327167761555370591573053416004383686874684774253753453926469765215601248459847728833344758422546678550990318737512760902094338913082069078985082963615299562747553573405313282042000943909559166645433048879266268352966899900619961571791355565845002765778914837155207258721279076340729501386298466821074025145464707199046599443282420770451570303163895225352995951359731387217360840021664793067685094178532171751811295829816511784787129863142444831108442691907140351541202304900353695107079122447099804648578535864598548802085978924458906513531319353041159809543856861034905798455985648937515173335041114539561208994138955165478155816485426655596337904309923125643793753219975008643155570481589987928455676890712549008499646908416083928352064943754925905117436261714816936536848651458640245052483509302284027604673367263825588948621006467052562818279538043754358696226999524614613215167211294697008908759990645337282609892832604216046792449474750334554499950549268238018183716185805647760140727903040979722691554892151725688558087650844315176740506038659224640653704520857762340664936962286523285001640471136905886774188275279022043494933354716979426536720511884959234435555400874807521462878091038588192242882408197592599147939324376836051640262016695275092282366680705073578494004167995232844617821114653143360914579470389023306373045918060438885614351236299506387397840634212163395048694607009360220639980261234801234326466024582170585291530963736733731791737734897104961887485064107125271356706890338837026503070734420571375179879092958541409344192371085023966244057738238313110309288895694126679604654591196106791254444601750547149593374904971389771807156033780102816238328750810973009312981955349722733985678301266988526113908060938149412274436404148933028629936794379934630336663605907829337558715657041070543237778218211503662019996353486206058605399041018663459350805673529058980695904738458325544328728280117075842535308277937140501687817388736469189085671362309357760844440375217570916013423843012466234572566385073988909782822069534742102601472322900260191584237217782039711860556689456333961079152211243800240970638154245052222439264301123411290869377560968298318715247712459945798184195301170227596661734909112448958648213289258521215633657507318400033830936242251333022854426368119769621948411895874900486507290086401805654937335443171698215984434667573076587152683825954259116208941939101780718844173233342779673357568271260678467221139589325817852864966752188107274334611408271330147414006252075666654543532814561724967107359114925546792981594958907495944764489162737424777233868641898325773411493977763218220522844323501552397584290426978551071395241126520271928549856443374623567724403605130806040302720019502100647020190429150345661497501965389602747921486842709218145865211722563665741057464534831494104099052748828319360260184154099358761545954221413832562364212431921611934869507868949583153519991762978394242955782677272463405140428748837690169275985713709928571494644572097065463955075313074291717870273021543860157994621360726380850729837290943995300787315694957689876534749277885284905287611374560335182993958827558540281575076110007395594416588025421447631466134486242916697100477220974338806639125390355709701559837835852038920512687642583542226249072630012725553434522192719462718791147351645186588782374848709491876133187599196313501298968826857371748003119926950955476754548014381636566389250838788258723630011282675674384326214192820516541346462485732669693569127761352634587207811309391106560475688406090645148560282385828363695950367453407499616344205839804194829482592307104941886348257687899516117867595413000926605628508851616510843447792608903511735031214445879485154614668707955919300023359755110503307815976262497061572351652364829486354349450217089322917761689040697723247979854352243447974370604175498876363019259474783668956509028531578089692656891722291179576339054052368325220930972769118308658750347473233890097970736852189250095575332451781450185938525720629340876916913569068227699709328103064302249147455348292525414835585384717790317843417724737216013046897816344898651917027305949007130024777374506815521552450001043931437636316287599166273172122283474369800480593818381822696845726488229390323566602054494885953034799771327487289028594416985138938097557605943747745247744283260794943650636882297079257078486025008950898700474363947351944574295115560790515233071535122454486912130870552513528809290663591304949651066878810517335931742371686167955842263671368178300068558691097844519977855783976558563357930812875712224530954298440918656198131961944028015921078451760216865428845435863954125426389898297115804623062876199812565329503409913703701074812628663248298127646029030623377924966099596984811033796829397959920673197986134856755754117866189967203180165126721800519104541630519158784874021088470766802747058006518687865855589186061814680438918482096680453632734754523006901121366446516952108520481860978548824963776727206647177637406718176728820454985063513794319016322757740486884034632305156171785655636903123561944101605957391347977110942281270928290082590702940438755695271767308256793749211655234251668021414493877260284778326649438278295217705829197024230970780115203063275589805833804281736096503863408748166631415905847083275922380964741738470398231231218791933058978959112917348302673359792383207984708807795503482409210641715865302490623468705422255059193927272809736316204548143972772849044006542870246266389925109359460808561118559938533410766831659332674527666433531595684816348265628154237032062513060201842288088987372602893908936786817874906949576286443804891748128058646001134091569276777937491664185561154837995173421113391293546296695342909159668775851807754125361372753771146834478135119091477585191714399490134711774041866563262666279087168727023102816184762336733073260735764307166298719452929446024950839237856402493194336168924759785480345965841347045753910617017028293130961518393530830294308041867059580112000630125791700142262577840520401343043034431755687520636477058090858577037976638440065051357994717547141273512530051939846116793457591710513081080386293173237461403164025522275420678209787289602351189184489179011272327462850483690866122157089028378494731495214199407408802800750103444279934462349748395128610985485865353642902290681407573982491305819061305881827266845006255673153739695934808249141931320998637723435785394199064374150236050459943011155894339091926776948464488186313012391310703247594685872608599282934681638748086227776307497857637020350296319416904944077274410841319474109740878488751170076347453358441682241141200610289246428643181933313876500570219999345071125119339747352520161991374420360211799772793605855612543650877066491425562276846345939841370685240733876480311348757431094549410734588033235021166025767528809815293307867321080706459380663537410468717971799617807943944048886768510886351457022502547103705219804767615100762412173147186496315225268392652398426686477639443661792174951680735843373092789528558952006606140504733742779593002110453506226221187122936418071733996990633234649703103119186987323979411792787670175100773804277840927313595651894488334119704160506069739519857804539566772670237562464605130503487333221350313824509727285706863072790458811174466129678772176451840075349687442095178485419031609564720178017091795819488778885354295662629776114179570512764832175625161763512708274776151350097217852074777219768226582479141929852901446731505364979925273306712902212184719803326745433028371607141685005113531779658966852365060256716623995176178192657588163806721624919730517991869316235390782930351260506617111759922398455518582200889923320509526226450159405956332993706353293626116127631180979598952760669398607251170273494879929620605629348975795757571828917328720036673843860216450144984579764043253758356698651647609160674095712408811018878451493007160794157616905833388898969505771554117515643353827711707690574793668311286604628866896259803214500096547079297207201862840530849349165784492895501237851160139777481813187990324448370570844786262020151278355763573623719671021291026626410771332971384441408243668766165101223297498245461703122784910169393770091292274969586523747271424966029490130669954079066652980834510142970443109224202638493747840719126544630283422454492222240424994080096537047910134239453128768569212811805059215159682995296543987743768628946845527218901927209557467439448040321692827561563663440100304219516106563439523390790713000427541480490023545077767840990140019154449326050778644373802156962901553625585746147659417825708359214846158670387230267538102908172984648447774944015645613749355094681995323402982019168663975465599711873245025790914541559761810903862650385319050892688286188519685373586844364841744067465170193524639406922660753186120030308962318034881044158638199777369928501556185984610443443324437272973000894868784965147054601941282640646313295050803945480159860159848893584131743459696517682779093462099694250031618392611052682175141184593546580343782647149530794578993889254471474876363965847399336012442027410007652707058482789265895256641827603458429166398190467964384548251564638292442659396569594848225858321337516906232890027896197278827130307180877758927941344654993647193230245139917546745192008290441397156845182093668383737794555995887191763803129508165270586621573695104891783363674059679093471708852712439206236888717544347406246300176892907923742915095382140194317630098099720427303701842703731769155917052863438599051636520763078195401384944721504727341700232924588043314943572257284770118109400763120691871832818742082356639811156109387520700435290329795913817073900485265463461058798684971734001443034019221235543174493635330706185518069714010362827855945704945939192690706409713657453589979384155587284755834066370511740805073574793602967446656145157981724465499635964432638383053004349297401354308885762962784576256621248536037548850574629709980923973813400549855388680458802036337467030850317844249237091212136567888472070878952276674948647337766297713756343827127408662400369510744517277697279114111248119226053294092521326394843809107338475299533373621608901510177787645869870184376301935875097471855485542928450102018913562618294605028369843236904961438138060454142325972534515363744852466415834882493304535431721141979138067781551443003353388368818391713891266209181930430330061737578793718038668339847646065100517788605195531984940975863515038873245770585569394262302771774583087315506152070441853072377703799698679292903243337619604079512741839334142214850540028507678136663180747932767776783576426892996735048940511538881907682995720147333948403751056189791563916975068562296663611890439841737715286129852482613213986280078743499335373282976180438697873103561587104188739542186894931507146122673208426101226498205981444437992055922421961840903667135338827218622412513813561100956488947524022893688934077857573127586776488303340121555546637879341019606060220277581118592813688043035870606665357032994784815711973398942096760568571433091327053168799973389922159958430120204429817520011172311488824565079918293752603890312107217177131558787483279961249885957148521693333006707019234695431229481661237912605304635442679451003614061336144375315296636828588384551413742320553781016365135532638103043039315793692245462337951189736354318621893462560914852487230023404928939093560978734474894860419997366663485038601494624713178882193181088473732015805549570322830311784617864466231265551175205212494586391138268858052203959416009974507662787671382467199057847186324004921374362880152678299652587228667209889113305165711324791074178377737573894681328396605012082051760997119097790862042305759317701120112317021673329655708223198119679524927867212844980532917734204428791530078376992764615917660312777012986230589825333390357253526138784743863518630439094187946225448443277774471824932477221521230502372289081204784840788489116551730355953387118372906328084097886575802504948308242830113632909098113738911671440622725329227936853595149444362138888385519635430735582685320998985749812911876551565684422950598941112847061060094071890418330320463512534443178674312122910411814389088005380961679489653209592058899125059022420716447307268956773945989621954716030396370003797991790384891095101396607802425319968400353251244954998725490021441150102652381719948354650114813964660605633286243112553424876429217268973554196592117408766423059826536343947425369440103565209514472505308416625932240541730985651240610461885320082284478054885959042474981704739461949336865100079705985854309601471228720865499517422153723289039069604165033252642815263423603960439995473190621958924412887425246788304559763835933006842868842760315067220837933481682533544296544026668477310872845866805639618387176568286729200033414167467117947439226699698374433025721826605015581123940567642884348118554671744885882195386081319637464348552002692235039361914916817148479965430838622490957500696717814786383299097227772504251430305285904463880730625197376973000931636412282152932413958100004382114005573427394201255345924347588540467555378894619476567844357619671945915207988194770041368776860320407525575609293822594789712403153228666611323213766486032577950530389448625886991192682784808606435500433986516290585609991268660976464350261991703929984230949929749101386016960346627810018509456360787935166360073015408280641215950366025932987140858957828966004177695489844963799045489001449090222995829049983753101645651964558756271305496732981908322978595984098985883741880490182182614535173770537856971208703831102076480993637255831209035937210800488190040072833293945676826047496606424221842351697306096078850956032700347043725993739826300886609624342786722873494799190584660700214265046828780393434370476291832498511821695770797896354851450330158513151645106499223858910796079676748426103160773597695015266482437143199815185669622692497946057788809147526379628474208202792979327603803552877905025002038673145411839270186558017531070985212418658913211212032338752241230818036187543137598842753528388030143049828600800383950627450159865138158572324377814683626697365463547914161549662581383421680319578310308230651394168028101270482855454818762707516269398206599254061801489675601464906069938111775822431598499844314212368699304547861597949386127352353472155946258018168152450097260262056158758641157027610561165086879747537011481356522458497540639411587668063376882191155534816958277496230028828616848553522579022155354389169744349119717258758681642080454486984586073649993637605375211567232348312161127716233314414837210459111051714422569749437636733459091397000454504267356137016839726091214963652914257251996645077662918834741301081641328340870912785854164385043888522808325963681659903475742844348750422732271325823696209177825972419981311707443976134600276896276623767451188287207736111168900443015179471882230293328374998354159431002406151081040749983688745633543692486681756529751840339628773901222784312288652015411151910608043935057154235568888055556592903186553789177324019177622264821996756649073920784188625982997947554038850665378278606821817223146729481178447146839158047852363968305656337318353405611376575319729797376188965596635946931926937819466342572503953787932840636241057877054591290713169973860514687508397509118970830635959255433728855280479161060101743680786329184563726608695395248363907613910691995097814795244900071209627829849322973211112614486308080557569991824705207499564860066780518944412968641247375512250781210151860361267272974655109812892989937579145313053156245384057678639747720495092865361499366518742719383193008816162832427995236696255125921587575020375032981767780673233883001572137533952796680369235801903307530564383380212623379474544442122613699328396172817397136179567872243014615595876415768471082700373335444534227186494550814986387210218736528539178989919571458879401833362402853459603216037145754433697882424179922744024994195388862951104000576111783713470296906525763679186733935822296701883840635474298217802124898131311588136482274747350154981986669553209849069403480896358620069307737005534206704765243179910373660265670013603460481064499613640892544288797906378650173805700482623312169962653101097022363399757889427104208636626536648394125458000415286770893177543238301178851688524337827152677799015304638680608223605635894827120031631150479122718707700725231937701211776524160228153682452824647243608612591489590390292989021820630222542994229662491136362639658387173599328966508711144831744574156779205119375266663168346056199648022608563233109497974909145781423519199213712592951187704621266413240528461789045273722174627503609094538937290331282634828029762026314147495857129953098106516428941815965388217177778141504625144745814794460393587746182145253733944784668119566417437230427825788599207086813724693377886013140659494513060000543108677799835573627825220115600063150885136044467889922593313376613805781168955321874203638623155754167179505916406394099544326407277721457172543583932736924919240213998756986207062547659287625444499779989963732615529351990514648868197646237470351823846746069673751947691161107084857852385261227505583543044070138959888790178276801574171167886204412146104306261080832200324698787789020419453944235780967465938399016763205149746210864729924927342308592399579174547890122510048008168663707430647821440457656274845600800246312155045200253290134353413969023772340040518530830266429149398502702636412971579043476341712781604385856748731804843000995654090889466516335252033682381494962735530874898030740050409458946271651562750043126585421021207630095474520739962589851179439551372149785085222489450329350027840394951895953687442953862846277721069729060128542466658932509598942273510428195410960423496502335702630053397039209733927990958710771686375248642678732356080106250223581588099860221857588445678219321193263754227771212604144549013283581851338142613438452650900251605693646495974905904396214920846296972197076779497240588384542696359567698526110149041925850516906208564463356565957278063222152071254387680163115643231967323408899013103992562435236999010434074335610189423421526487604354504188173258905841718601583784468408939746376347570001310586234710918770390252973968051910298614512412755504781790895338125499365548053783980924786849366820088448783335015876313861582542188758358863880416539290165766493894631294759137683779772381337359611971226326866336582476008272977008992966171926023131199174241194598578099094851753724278263574617871047604139970038232304516557952947359964662671602023613358362486501815503357461090465845112389062529316778589541658464162010193867873634248079970676166878943979801072869244159062162078445820440358947482703171137679979160657752160182514113057430993481082085570037763847604171592420335404260920576974714315962900354657795560796513988349525026599733088579482669545462856960349410937226141784418564608384823510892264311815347730956649243273076842951778089459520616099431183479697470556467088612105125483792500186492382028786031892115847461199088420954298602502994378237620174343297685436708060832542487068398639508517280323419164831653688981710027393629109203692525354543591263247671331046306112659732338283918982607283892799495702391069553723238888872460642222557681356705172126878113195797513545881453937704525393521187492332983012937006171231675078049905296836459051092621133356651809212778348133702735834002065623559924206833802454346903202291761030803644723395047572750078411819239695898422992226957323103687296069816631500447839531316242302687403074813788290414225154928535756150647605853981326032164377130278062847615677808690945690171936665877730493166346117090892451276547664835059778915347434907894779717603403279818513620955623785995242110237853636796229802540674697013736716184213480453775454214919239503099113991536792250173867582565737468594035994346909635723491918180711612306268742163854874059107579151769358423516012730728723027230375642721947901071123522711620499677676715579002463641308971023212070322276310127973323599734247690870053531425809950967043919921104319936471121194360970132389155931966784873870175720394215778042747747487467979001021022236868769727552621331268481505062585017577854245527305970039183353033970490567446253698330246515075700254170894568288614664517319821606277279924459955517080639666617334497748532543848883220213450481571046786253729545746178477132719548652012767409918359755640711667358594216738890175110752942056577148076532034700654968660496206672426727077527078622582297097964726657936053986567747112419742343265735581609559722899681001320018202633906992233013064470174729100269773915392489321842501862259195687059801108404635731457652355941220063468041335348444863606718344891283064597836649588584306329831107352887124244429691785800579718527364277086685521491721421510711819590106673351168702485260492971752218056223418469058189863184737681731225887686981984595406595684455989864494797807780406668864775074329751004648291099507663657294916975640929940627747770626706000794779668809011302975383854497137685512690818864764427613876130595335064595216765131766366574637688772403407280273106344537130802357781915562955498311056107671102217141368834951668983940856730667709118179347576943913805197904177148657397398097818040700637389906227081505128250656454855115130807296245975160262784780557754919933975870295500355645615586537458404665009387733568974742559714707148799560336968830894132460438713372810977831263846071208952366718336574221970808152022777300945903743686007201321263622746471209393698944847891641829200686671403320679967270602860713921975825021092840584002043256502789862489482336564970644361343761153708134249220928022537568990410379087905576491022237253620693809399897347614072169810065424895431893228683106032847122606699527969410541716714830697403277013158131959663281360401136956885550249455319072135984112944518849780810329060947816598432122719783652303327620733233689727420012537130274529877494826769770138419889971453306667783242161063615853933031495555417682951367839881314712857360693175976172720630478543818774962817387868872415774617236738606079186165198260001338164415717229035769008834871119203853333084800323828446896623545339949293775381749448875835280858075318824198333569793123608687845950143657378353102381902632803610409861847297235392314009335300807098669023829877902720748464929588099015209449993391233503795920396910112614398919804984724912630775484322455212111852187584692400527670670756161081036476398595633299685400483070759631610884872151088072457558040907337857898571540943705179940638209300277065171715422499103983868756191725605711053637931308848799169147924912021138227192941516019363502279205100730179343164874058277699402645798445738593789243905039805586277286593653908214824313308786864158075932841487811853685986324663595082705415748409477044632060060331643741080371555476309251203108847566199567108891950992525262994733614489632685214944126464349050196292395166311685277691812390080904440086691694132895237837415354625806393106663053992441928280032078681445091821185711297949294359859846446282278741790237926135746101390671749016136782516583546446373924795320088878461948178993161100677989059601042393576719800312099619556674556841082990757330784370738051114711304077895753158743420837661823467205951455840864667717976316679020193896307507017725178328466430897911726579945847005987938827300249723063347425224102635345795115274743174136750327792277727915171129269198098963620595426061523101473539316202103836050681811747732556913425627327254615098052790269063271272008290187812322044031798326408562935773895964478939305023349935806333765364240761335592303734824420447368150556891436560587575175513912822610017870096389104540106270878879863369724879063510402709831147081319467097630029271689197994309733221487592663824454081389976018318573718055671279691881225097755329059734002301044762075264014724213594197174553639451577206275594078521102985264785988503589250729529803021468505031360929405050837698748713692271017986379617766855156391445240017656658821743196701761976943076594054369615288531139997477025400746044677420658746041209036626808051680684279663837086102585075825477550507656816725391436609971161694670916658385527231307203429077087030911905724313983668157425220110803284171128285825824990468291812490309490295930054742782678943179983380101393511968756065503453564892265565737578846474694408819730574536704499806488085905586957957124443447010009114556351035161872788136143470325938316453027456742261179375970680080709308744995779512301610796618604098813108191526504213321734936827504775523926507004925703898608240463658393550858029127335578738651163706674594165498816440143619926211784828012113519288166796810280635936066810851606613100367325510923861197915125050827031067012633573361070498260513647836296274562202680643188732702140231559997171794923911977227743735222424174729141815162959615359230094524378776431691467596888865732347313904589704496403331230961727919767482489996185210073075754951834355276947557193725774753791554897081690552280395836622338220914088525623347609121666142630477477038500399719521909993150693771810369717670495621387826598771727244582833595660430782594114220187280180021450194443695205692201060419427920948598091653009275368056851870813857988605093367569932282101530951361897500679970163798245473403517606930933219835091671356605209585437270523744179896464973459831056488435866981442205756524340837037685158507163618191175833693355786212834570082335217022928976935885732973561874551517948337285952570803209390798305342663337365912901195602763281613684771411242239051082894677104595965134739760119452984207742208174841402671054171151900750235328175052313510321230257981988606289796026212395346572493266440977792608563674604089794885255930037680681290720397200756884127711919705019807005595729413131485441368075244779473351847868257862593163177845905939163025619708911962680877954686902107596134904282749418537110551448138288429536643612938156029069563110408010150332243669790641657101091415655619959293385285363026400325148685204488669036095160590304412682083310624492668102950914973863016200000225470423922631520701136938854015550792461238306227973729912407351709398628396430943277402417794617394305589565732968014516945586155192391365534170800813895377603884823721146612590838962754986896257514415104589539336765433963961490025734909338053904758803096205094992462171802464728894076781374902975887389563913332867993054611100157850595103491382799241728629664173364152305663956277070921622244927268481773261867652391156235857686648359781475631372739772964056979113653393743547305369139169722216450304482142952900630784692998294502104876705352630173846263775997056235103926158500174110862723669396551275077363011091484104634630393338444177878576382053575055054968053939676163093753943077796155038580646988131897405838764298168619195018002618454718009834734376642897504860011988545261974411009815692709776468726130071700742822671759148477576712840124013225637878796169102606120516196948682075620437375104637802704770756233913741091085157236709401278930206890614957836573192622284594339204771412547320869324034863675356416645600759565350792918758605914441529384329338436575494600037010504157453560274273956618383057525501355903126332967937836966659658261172111363110295471032692184392989057851223176026111018153887287596070802820156374770659460727636639302245357866182949585605371807312298226804504835158248183158499483159339527017254602546896059555227549891698549207844270934370503529561065936287300666618677688439238109489673307769295869380977527750750713834973851848938951063023254012877297909243922080277866879842394059416304753308243374847012425774140704170596189676142844398692277557297063211544095287575094710317539209378068500240816186035663600563976137335548763827775960842159191885948315884754107949221873445943826292422521172861381718209021506302507664242694096322041046830930156127586865472651931085525154747077167690116712863759884773386927755562408787930638162304565478835667467053280024022660785162798526940954791953729535641111942991106433133578170595421443583277424847119235034109084184007170607216137596643013603253581786374324565458314439132363388459552210973951247043158620342836183261636164235919346038342392407559155739720735013614802425619433721803264285953273278011562066989897887015689326077909205625164313334712010341118086598011126208713085868194615637040061100996501797645579279205038619589318970723166397065164340732403916205969840125724515426830926771533323631733671374007841268569029230071677361016800437757943818984883344683172566389576014438539390399827217057214796197340598021695209864494230760678430221221408584949574035605008152805834037775044811880510525220418187843302970639402729197590646012960840679340457542758282085982732877441723843580813746996452089472218115143515515917521204905958301465736521653122549617133227391353323081771311941231188772642064541667898715143208965293219608682828211241570946723094257660746541079667625461422922372032033743012893162009651291002340460296457171089288353901990709992202616937475948095715262586412207881330096211763827409146800416803463443936290716958302232398662110146317664788744176642331224431516714872048731474759265424984936692568751099082915171304472415807985029587346311903073503553263615073175240534287726946232007362622425516662361679123300405856670307175242529670621492768049785422619767993529244822407761860936037211111694138256598484641441932129216600338001116546972537564561443980902937457554674717801607719820220505372727510263120795038927076338391109354159451319998778702550011059810373395546377577453247536303439534300370395683271832328106878021446813651604644763291238672557436899352754652781290118389538054606788912611597589446731330971982561354799428171946702726934479137954219414633208354908541094519170113069139445085091320160331073528152194350048441393404471809335178042224958585060519202266759407698787211132633798316449825339348298354875690849376426198979701098469227554148733605617894380263928368823363875781868453299627070266016796149639020442659878265999823752928987842036708741953839077219200744977280784068220404751624398819313834470830879310715821757004978934371139009093367910012700454259598014105072508165498227023770379420040102532595161796072163519078241398334362840180361742793538398604951625343250524090209545656791595219701634542819965802283887745524213195456643108412229137762069937937210595942899420634894322702685934115569835809596037390168945252416265719745371950389644898269316811186526883413350604383945681096830263923865310203102626435446127187205859213026531722996795207826985664098291809447360039206340609148443580456116176031984626372636842764449331366732618962006552457529909354243419533080318754461761128518601217859199322694142812824610317797158641214530445819012702216740296539538291404538845913849139141148236108001307953437781721012450933077850681029243819377984963133844674401554634197806817307789400921785459002361216831683445975504863567007724512747578661380120997421447424753460253064746243410840112432635203101374486804918659111200665744489623973317861852846535804446376623248209789749143910048749581795684933316854445968012991620925549015108557100266463956842595825347177913606088836960702538861954277035220231940120773174160880583535084426913323522861982322976541968969321048375879372697955430006239442844954997336262407649717486804068692237988797199392825865016060719171684916194780385289772330368567794441216284909208627006437968285589659094000321162040316173329475422287126525938370968585839189119672381892899324639828708172384105755992177820266957332053026532608201896096318248481475211563304264326611449863376304673769259948146587119537945786135212072762117880537440962423637557736345176446200890487734336731444011906902687508704523829785451088269485130710066877452034714810108118173566221013324349424602958715084906904329123327980334316097584946985582856760484232297406711510409548028489931478311810042577923487520553924609965033896579757733998627840996903595654423280151895250698702454738317644807530002801140603488296454479450913674944112403316922520765273716450544508573749725147992345144156984463415229147075671343464959241887075268872171857219429056427455006866193055568715419361406364958891676213915124130917641273469253268096050056252320342603802824974281805942355594402929188535742895970942422951487062024794893584742996549954363623776369524796033927936891274298523133546716422543475672616158703639025434269179333337595096329131098306246210118341390971513937825803592596390105763267737898709812424828021950902659943795860487408401483256046773226450337116023196781169660947165627182122125370986147504287282664175726079548270183645912195175395190626387856320319207213004584022394401328021228535448576958239476474899403422604547651089951005336388920209055460228803186663897005778272507538676153479993696250811990893742695758800576200851988669216487070024856326422330420293322856247645743241207341508111416705627349601976436228904603580936615329318263703058964671400209422977292010354914378329036318511938672532244835604811875554102943525362159327197988278559295711779504893593259509935517821196446954159247604040034306941110512182098979604279692051114677159298521492769595538346245978110665515367706111497437760085898024230100640958208731585847275026417982326497890810630689914237199036674109976358445784183136698209665916444294755879969305020306109996086870979473415747222344342527852657613320427190152539987138431900764263981576242188817679960238974950926019088213425072400060382761847987672945887362798059032733947620021015431469709948102921930638573607471186786913599918679039135288487468658141374015432189163521384560396351152363576324215776740766920826241119673140690569653082429972225789205814563230506596788518689309423098188724816099821555561612771211858010805247009370516600808719261925337988221173271081738468731917378652374588615974667772846250702055623417107056198223276316134290895649934845993019080642477438069319395615974950287888070456925576232584193954495071658876499994340968952721658348251269706934259018952070079672939150600685436689646841698244156814552241638315669446558294225102357012319891739569069550806075106477745704354478026078716349216948482833819602447418433500222646287361353502149279812629004496899641367245704268988592704659744544685409323377690284015769269910639391253788803452550200964368810698634019143642584138906900383049480871462842823176523253581875209688137088292626693408251859217827656710090967907145549708097077155579284898376413993684576288289330431467236343625674581991859812536457069436902265253483857864510911713391024042136678307185721376319600325383958044454783242029312378988443270784269072788249003099335415906737880023745138275070395152646381697701744607335365136364201761769201804428734340868844561045711363785231247102669814541978442228383750764894940268838309796199123134071903065953547123779291201618577392993043769576634067951577157750755116045762935396471996692287541734123352663963429083755455030633084924790816760462403118451342906295294998974717398864637221180611511042480025119979510637586080055357926321619908902504620517976317009545839875362402299286559489456102290079061483551162925656652930438179720933094062467359876248805150235392298512923360140002858828058090723692262027938104065762467479100728148834600607365125817767127382270480982583835038719968699983923312083167249859859143335964532787193641525389954751837587692299814437944722387639064416358336824512404580029799556719023099164284835785058533827549694816412406934576998837452914978494639083170609086583346230147958702121813677570903841797205349200953517041149860557864427219332755251048367109724345791903590503541734639523583966915994981460066424720567787422014568326301597390592538361261263563511396175482527766563830048171038983893620565898293466055607324104620002048240771161634923565332061957169466991261009988163972296259639976089533970430180661993682035007784051033660522382724573140719120517139150389868507000745753977924542675418809420491078378256034040445226850784147499022772976253977781243566806294297359487788411344924351276564932620884432220833101153122987147991761971098922231047950858770519122760511262669463712327258785575351627675350957867307282252087331270187179801195051705590675448163545948698775725852587651075686135164462650018245629915616712735310650398079962582947386150883425083031886880672951356785329159865746565895833178945511697074920544325114822882707418807376946489615261003292774728666740039561590286889039407881490511795803278256570232953637754392780318263718292574101847233367438515538712175804687315134764940150154187373978587827488142985678740496909549695744812241284904702009998473597714188988875167863912480662211168876579842729736298811742909289792263137301170930326034697041066894704850526527436215824101057017170164123675964804610187048259160728924546026521368811396755872952863766701247064813523868488464289567948580809449191839382041804334852650218703077122462823067540448831388055172799143117794611232026481287304827348085448287574754080782138755825559767732509453613212250922178002373347462612573611998702883949207800520162427440951065624100578375052504765853773731074725556554223333105079141636991189651550413289870647233893396476930554523355424458757544117158957703521291110949396989517227294865532420904293338335287024290844579144977237023846221893879161743544099652324290018821881729832080502378471852641450730889697502644634983443105277704520433106993737137529294597034063480627637683206510994255642135256749053419112031182242112973262807678526737484017767969632436540004978639016599015411220983507790101662224975165003724606044295900903317733498365300778709251880876061034343115577736275332969399473638550535292443914720598964708296783728834685582659209637801036283896792998181903502630268987138508389037616607664376120308401763916106464664560924243934127505411663996875186861873148720127728689467568730859815568793804232299351055997089988684257394730437362624937357658534293638988290343402932192683853853908059074847553643938323032348067979003436424463965561793695396444910809271354652599000330540552835102707720573858780358468035844617795245387842095308055078490176751489292255536903408543040706332256103235262229269820030725517504617393159273139472081229975280567252526548825570279539336980668242354714389359771522599449980550123340752671252040011049774694361249401735205789361811093503191388560745510076880643139599205252668714167231064520381591605719697224903821255943183194059837411876583359860770139847168498038981746719721006873402623591213226352833835917034792148961893444359377461435947282037829213399515684424723005851861549558594562919901781572905924445275053286175992609667675298128192415314106123705970455818246833304396840862517143808877190741162996417776571906615867511182097556408837779780802414057676245842203878080710949979307846750997582093735364824445525443107911817664239207855567047816717294022042340001279595075721930646949581300053529547276226697463448072848964425779165567419496144357730427637974599468273362453525191866129736596140051616217486641264180879464496415162671724392056732459587767813465146625131540875344100279454699760857179911638915140944369261368962019025008050719752079643693309087696547522350505841390001500296414411307699636052156853706133002719477867247040443024814786871358797468767562172734883601247944719345554710909797720967734014587627056292013633757150748902566421042433772257293133785816521753614418292398996976100370738044290801909423099417578574219533524692430772503406747721732970594147580052825931371042191261054875891464202262301882799908885856979668564125782550718950341350447313854374187273434247880339564628906890417758025735589998752821044310698133196788414767000464093854049796343162221712739657234295183633919791020189925384136784953421601856149554398327885458687889957218497021020996786857562062250266297527804192357486395546963922912989939368017487861917886337132031909629641936327534758993589060767163658913458505514969794559614925498617352356986310290498355137319078094165656724802335384311671425618734810038026353655966734099564452061074227177091985545010642848274620837164806938287068206706990102375274301722739834199643114026994435057240278758723350441065230359504194093956272183623367474400305556701367335902381225130362655326298076307880866183028848285310373155073179273254512795248122734517580236270080599637517409180441740130110188298740988336021892802167255124257191143773320126556130212045830522642667203975955130692464514022313398536387727886624257472109574151325927579509257036198307844930701935421570801515557888558746481786849749704410970470284672479841290837026310236325704558759441442366170299086258932657135792725522799527714153415160759665478639628459742760485260975337633947494412336933198893826949810929504006755494270039433438580488620426186942429406412632374175177325126827866119037819624011255524763157758423414529923128681276680801399150216750758433030562691961117690331989511446828371176833593428985738915847854784353912535899035869349792293538462156867883232549174454646864463422820773911081116051378292386905991651098872020464709771325716207712395309789837712630732824447925379320421432822470712164591468800225881928002892635062304055099629936783273701377143241107223825710178126235925238642880820307130739656690713555388078578572813348676555258491722801586436252924761324459846982402054785362104729119534520047086267332646339733914669912919176801227368763670833938099881389869927113338901253187941826569692073578504462892946143858257651248821256635965512197775216284168892800617473699880657514134407252990343617407051519125863745376000147481560795645958139922887661054606001906982353560493336675058562961953704464423904724833640007788155883145904838381997866426634938962400660180379341624992856871970102912641757755291242675664264989744736098027831607951009730427337790703358387842120186319927030515475975771711201122098423735489579035497866902103157765007785551888289862732382389782113125866200996326962655779688104248074431045325645920270634862502927081290271357206399724884516388327362783753346995469055202578783994867838730946925336827253803699144952036802897130774305497851194034630802628231611826814232987653114777491661999654787576798429705204411987660622023616346348968311885504384850433417850323296503153779103116771933574666607044882371801820603802188075506796469698351938237211973923581920556457381602568155655470350810971328533675085109732723342050248093265957399819442382852251282026806678927914055947116373764018701378156081058235502839321765868127224949470108360129581368444258026303931383801328125556521522113624295541931238873929277989021522947885722622992947534657346587048550960856120660871444667379061943509917120159736057715982370342438749385672554211284874986009405895687210374242742084015024888172150943161989499451261525919070224479464983781670196394641898085252701599249111312550086349486136843370535645025397104988553847363866820055980961496101769518078277038290939376680132613143019579626898665757043621547071835169045057646727518787533142155358029033185182571966678177607196413583048019782047907427361737294969119700422485545431333000662913231896737894387724989590171161813141199631663843925023174210986013004853492415619726080929751105341081505181083577563146682904230007437174729502769485547067311590284804157753125537373957285820338275621204768736508505770297435678967291571452812051153171057335381716976454790980276634337210687952076381250625319435586564187801537973874837345118493920627908309606266491351026828563659567740902190895820966235004772689918226184687240722467977016500699777610442579268592208742893763606031161204426953304158012891984723342794374639341226403022331394358516492343945763767187540521067632909029638162251273452219614548667264853925527976212085004690202106929641409336525364783322694222285987862007126696047988685688436100333919760771206710454612157701841333048844038810772127689863593157608102085025528788401683306633498318656294002538578558746755224727918406968008998913654568608458913011308670376502069176647804267246171429097539749869502506134266060030653361292490139581636282033693798377594384141660221647378572575462627004808247405702174210946832903175866817731946061628618216887138143302035477940970312579605142785575550719132597908223873443607312360565628806101404003812281021638369103676366227412717274593473408872469217194702742914487063257643910197070550496603863550042145908220597632727145689154699047537192569620847883318703884185047984065295329226544677781530742076417580793513179756784214490766608575559348822863018892117374505771847608068582265817304596298813418581674497558312429620207370112658921990437456428979935258943229058459443249255914024624005961220483419697470464260993725252062673877897880371817069891385350152954119549843345232883414930198121601310143147703719119849596275597699708931089285918346801121795343106549583154496268106804255667525668235286905003355773480513911158689738795990754066801946330584134280546362096909604361866383104597433814566965115330303229108232451635115679109523148942873194212206613996845600447177624951982469521059473162648629184830417961823039910258369354243441706910426057844203244999692355646831100732022034806696968305962192399966329875274106181084493144787628659428596520530799453367109333018445806295110092083634640551051618798726097799057538784249981462429213685333398007693734333500363795011690181067866055655958378648626489268084613264866390976356773548600226822921974046188025563606302095499504208426749813217167134128485428913322296466663676201843085382992739609291565987880484986538310568183205175526744598888855528353647141549633186843664790419739387712428444896764658185158097438918741923506498561593954749085148529781345048164958719632744513774632352820856339489282621094453612931398015350965215162417646637952461982124191240066202965804455679359597905225732731043204288274401300083154740100227774685868246251971066747700035747033963272893511382074828184966577817397882078911752405855033959023604086747779954075685405260915033093942300067999088863994334475170443192652388336948373069360469173954495749558024635475475540587897330646941592197048621657515087483629165452707324819717078068289448141196072289704741189151362114538160757190164734047235431617570509810309704774967718231974513557767785020578135243503280388587659596335653288435480465016903931202015618007938789880615638817895951444474392441137653697055296728452028788535281832352427906251801292807872327460407374268718605941438594902213346444350123825427502051549135947366979223774866342708020156092157391541080675025494005373982869413917984204129496291323173195977096359681961743238586703884828150122486926656908563471425998292999197659685767340647243016389125028682522356183239359566734407867277746487411163952398049335643136580782116973514183575892119869428002828042295518241396363396311239704106646283860057963953657562248159232999437020516419069121401177969162186835032810326857873605182700933754524683934757804996476690153677084926384583265458290333444435245184110898955874899678731116874483964931935903040768515131703780551346047874438566469182799873841743264352589006299513620902267660527056149963175164880280245658628558294399981191176957380913672224723348823069611526457868187238238160425473753031170383139730279832592584839617869581188161083214271524432709490787495674454323157113191584507408291406127255693524054925582397255457369798542301558970402122593679150962067463733384857448460287370606755968959774032074903268060596146801928061793046554686488326901204810708183055519947273934605950994411842878165842802935226726477698735492751397226379581080728241396866252309380988220120053214902831284807520994173736946473161662521500363976777532877847539279374198774437067453640819316570102001771534524898912272243250150108516019414980320983177404064945337656463456780314044581833961274167089598834448962218000691435661688763733941313632688948278535043846717818893963739146057464226148665514644933693711850383730192045614545171922230051807177687710573357763675846562894044786029238618516021800499757384408793011762196330552365990921894126549003527523366627949433244963619836964794608920066993187197996306745703157894925992760877512404128088095085899587680934089528828092424499086830688212159236938842194623755509267310677031515579919374985894534109274316068478977335332489803277657538027447075854623708375512766444259408574454508326339512447269828912256401098343218095537114090657294667529346742794705019268085885003594449984422692673018702459055529986557118809731710787058439243782009081470111425211788090293503299038897130775523003678487161615197008019855753221228013878455250671980573718784680708955956957483419012826045229856498015983184660502851994000215034003330710444816666665428067335240675457024833589002552156377284876957730852969275321581936009667435659258589727179149162194139381835192869930146452197571650710706644698499064811467927471906933233874869263188692135204048074423491054076595154243069998361005447413040394185794691825882421693288045118209856365595992947221937134346124244287869447224813731337451034753643362303977128703393423216710044797709293430121563739471225596455495738844874496728807947480496627613367319062562948993174338076018495248394512077165976370640037675595977503979727151094767556393951924208757223239233338319039810268774318445015282637850172081265593018846755399034846394977983485132677454641155125325174900200363418593292853936352388768771035307480725021868104297965279756045692980943527848620762940094578895731409238761267008100742663102285975549598460664617748441672539416579331025480179919633853072638580591778346146596476520473329771331452355392824830116880472417284295602983807967536602360821750882998544966938647491091677965022883260565942859390100976204846950513996966862263935038812405626003316346308833217498674754746217594778729566394335829932874508059970283517462974612533667681453812562219273470750526716921592099002189956585573947869089786093511674393563166081715830221236995185302247445985014946559134622829089451918767702716265610731695768450605124406756396172488697299897758051727330186002706013272427109672667738775005345755274885846391759250384349434869437110800454533176628122719898433255486584792866295838704115046623397033865997753098088843731679491980326135798449846028728185758083176792420483193420614969947075057845229171806635221064846778106114211781190383325755624754003224383058252263107295460298355075122300301213001852918115863413772603008874016740282892994490765372677964257252501191960772489816942312262435055767853581781251727032195421955174565280919909155097055870930057564227135774034160515685168493109571701332308229891460218505367569567695843991315003585765489120492826480861749983543507205639766736538949941855203205975035863766401624096199044227815066364938503497416373036329810883273937821570043141578852774116865289095045837870500474625651318826543367625567258554631066538198547381244197843570355709940479339572004234193589960330020586586353456739564552658846396244218347264153891998358891020386121725278228574503854681788270210351600338763930180104651433118574274833638252213021419351589810354738464461764906197004249735371054480008842523258535243272811643587419770781685681524025008170922616138677352928493804393471032958265825084701354291942157257468385415008147959190198243414968258774786008074449873053692636893215601416983347789064526419914062609871182834947358176302786771576928701105651007277654774283952674103405121030602627111104408661610785971528828911830635558561519252998088560998555777494665719815831638452456568635377690569281247587824945117899237190577574737256486278877717209421674291659916287151505734512550097126775655849588136843578385071317444625998833952289332000739202210266052373059394720246067386444390091664698441678370638489479399423254521563501260052369542130971346519980641492477987295691979216080202661880497722242016367594102132361617966597298017284376039524246500744613861211222008227090801483785828227978452714854797966759757668530667410936920390379640780885568678219116100134124893868112272313942998947450547160935712580129917170831859384533517484889482649989679688144615733519109922163351182777239907498959169725108642243348727803631480816801594592393831127981472792444207107332120039079596826331146583088584891452873260331912567908973673566909619310236622352224628261297742186859618817504775887626109591192963830802460547207289879738766364739505441326819860861334419124244910315356380845057733790132797441507108863957886492053822437354217787916924463298576970229461760430846841924184862173855068724024114038590401018207548661271487279848985206571691603475403351491608772824475360557525376173780082064785915978871913032890018298797733527946037071693999059449906126890868734114508026767819867493716519451240995754558237313532267746022908256059594132903563854750947221455339983085334966862653551437672785793612815205964283515541084171662629830311456644500974648017934463163381429365991892334691094887752187812267836006957298146205936374357394669326210147215215222316447290431291897179901904097192366373187069799077956221387445038293104246012183262129602472201511031373629402424286743056650198825882490027913845073210222090266346165366167329898297495280219874468077717882960163140389902711316950495139937053317095852025201892789806747995156387167505468780553797094663964399415538549539738438210154819605470840948206887536055695691475886015142395757109235923946848919294083889748005821121064259735577291306303644902144029739141028711610975284486636631518343468374783901188191686567333126888246650027301918516858963943284934826449731005286885475982322860481163089947648366839273631865001219203624924056872654404910980970599275903962049193087892460620061374582489469943115690702387603233502396446645226462875790846269336244746336916960995756583368237740547471593800073771485142273820750675878580957402594094200025645602629458989983178399526691453187807528588463483590185293184172501663542665688300397982450564197960272301036375148496639095688844831149372291970405704154424243621935176716344305305375481042564406397626960360320282888584040715591565803334541418440160995139736044615006826753897875868991615099498615307791213360547630791604317161364281273071054298302932462904545507247642787503257298052999330094307481932416587182503835691192481992613598166042660686340204892631227816455056096511488046196452332123534525122819982867241421490933959526307178858485701178754033429018360449555012407373075361112003708237246880507111269226168534799456427676342293175700838096900742696048534967812856298865866918262640420189220854052558561381309306862107923878778025910484241115047950040420448901409629468890979442948011530312398355903997016917815872806220960687661648996268519407954303324463985756105327784746092945137280465277008426163708621522709798200239712103463810274515956966359063954685498892431037897110407677222316784531287015649240191309755877535298450710221550350908186780117668400185674507114576316588946484921443146987121221334653549441676009573985512577958951988847117968426814048678560298496003556752363647529740154394400851684890006698520766676482776261965883260518678004348991804066400408115465883970322410778063278130273848544273667288397838690385063703877455563663926461393148137904021987970902094991629400972808507834026859293284242749229379866140880665926265086309544031430215303213552149809995006674513454165325558483417848798164895425864432394106950919445190800145360849148971035372750402435621596298426930292615560959735880618587394409830934789923796662832652938708916620330157077548260418486821351650593387843473661184738424531258331506133554167601936546267399070475720242534900584038269027859150061169059290595595819494968199369001314053423553742144699173779771222847499779713540852313144272108627923771226655414960545071393376039250177784819906583482871548369088764918314941937093026364204369682156624681508335504000607163879258778552667275039382782064488229493457786636407480712230894050036720152306929271151748033880475305754584444251603873706672766316030583430929035743946179714803423648249588709595240863831532205298314904622613327915085453349110092498634033619671271499851724822203550246503177155909768566450525927193575362234875138379090215094125533830828809265812836307827038679025108954737340190743498194394571086745075667547435594072096013688300405682708936264447452971376900418899423432211480891027453584058466393986071573666891677563128988324775590466380371313243819680734092085699319281617412793296982963453580152190851391659885125486665947229877059827874464187870618173682866798714150942336148506299966605273436598980529404999720654484795160161244291145821072609921664320108868048342438948509199748577319880856543966441044153817352913057328470134080092991566595314454094035578425229778622378363285087318330450265193107823296265892024047157473296996203866850123021952100768324441752662959769451922283226825675778762749806496996560520736810258867887200969423821439198100067490938801906232293181128995115145928351150938282271759358267798966224858234519599278372701137677019972383781403921201523911627195642018652732125801010475603814886614598631961507546701945956958681816893706339566934147086069825227846091245857198512035767741166210746800499134281839186032799410937477402582214809679608327443318787743152660364604266838194646949736447134980924191682016632464256648861259805413263523751742139120626469123422440968213886708237038279030403439163298517433310985215088868855991601370895554423916355681473646549025564386535942942604467020329950691782368634895435605208895120781161000350702882654159145519277902697970903599985223925051616037400278297407017769116158703038252620582271665300002174593905540651934608155562619931674458286692495871126934619359195632076702541126156218172098933623487597941030078740759962021511200066805075332349495239308328872209355614580898023388885012761897556552216476423546848004719976704557822833258351593287832125924215367949758680222958679716383435959800168657977181709622876522830952960111212561000945503735889623448787404784049376995597084315303151888269773466639477056549860137584498845721930441044450189024050137510310955038476484873109311675458938572799840140821582794860262075958294512966665181425376874191287483995178274986065509224998252471003877552854129295415548102243390337247934417233647819483224522304444018762462738506369632063823019792882413092339387204006982691073841413274882945976449704615509801041462217118452303238350817935834794382515845245675329093401673880619769158020960661172162643325651958049376832617210469234838542928181553073337707295948235665831876397807123472756478494433422614196074928941839790484908878756340308828202582195353066556631162201572283308863507850651995064691511077026453396701172453139140384838342188037896255908353039544078732619222439803520434556139752492096882688622594829138338770402991158460201671923497632175506067843879606525266685684128310678000973770928714929970901526465649898064993807923753729374018891877920713461009435607173858390573357264004653931448010670566789119799029073098195573126763451756655032905154014632322209507532638041043239297247887801115765662679218771360141889728497268373639639512937798737957791096705604898975100574792352048320058869788291085983602027868772883555910641380393826158842144104670441980276108641312870848116063207153940574223864353951698164236201058452371954381986362867636899745941506492194843542418139175892033004278690765320779343959879372144877049050505596884886871319998917453773999434523849251048222579081380460794825513472223253720380817809401964638717956173842289967491267709489429254395163888483014740577575032784985155828245871469001640414558248238194265703018560457269264258588732247397558571403956817440898998736949889321393981500766545021863591654653115255490526411229479168417534217912563577568220221362122804595955715084380905608937327800645856363456560908021565716197025744972819971713830933902562147718044623004348435980456558741548743431341241095841932634193250876779131598398135517184676986914126065355765195135125681717360795258498587151755289437270897068444428398947687798292844770370645951670248331859555369324381901557911961393288467751336903964532731554911369813166760877854759072817638067144910944790775974537565434140818837383081412102853915920202702962692990838801409807339047691673683262132757918911699195931157420491620865903202042389962634897456038994989470872730259486673266790734903112382577021782264824636681164567107925894814750587871749533849952567439001011516176523344750197009422915318768155050402681334295256831777558640265944367465306442744065785663807020501696821780594828468704580703285479348282015199810499096508690785009497086903658411459266239148324715891296687434763110788385698391656576937595948422203213455271712798838182564023085796928319213430847797015933176990690446880361661341736233445200621077570628835029975881183343392051320023916161468931386437105713844836158147196194918372538873267548915894846799483278884738995506612579201068370859669292309649527604692545702173088667279999116983136299633675618456317622726362002032359294805616292460054546237750692554676763656433887911530856243755161812942806942444602875463610132672359582003215058077745061123849023037726225681550997859279075212008441621929827337982803369864295134531949712300314572534892172443526799567170986183610235116773198870787367073700037226335483240055328947365662963232833675404023184049537527784232176798348963799704167041205596822882610128544365722350229372635633775050962211101653130695105501977567163245665283884330872447957685013969955904094941981647696155335462847353330640778705899538524750429010498469354485369039539970730558188726653706022232232605168257517706277803210816297114682620248543883091814844535521400124649263629046122796549508025449460758604091031531716958247902447960092862184677942411417274616754725266666210784095007714141573180550499387412942601542134957774378366222746060453610718476661211858570763191063270212227168347697651926028770198162402558536889450980495536892366981757052472619287468825648301920903738608565208542445603262606053663555648953145292933717831126985073216612106898195480613870009066767901764902986041833939083328717201578972437050987169504107238132544482873001276028703046481189966323612765885232819076587535475790266828417432906853309334121065590650894484003879410882462398616203792412889116741157303179942162149889347300454376748598500939446719778485504220520368389120938843030288268169458566025778558764562077181792768985452394894318474250512670277867616528987030223838515307845807788009752862348652476314423153767925895752695021857205405273678942969744418293088400715671621462438923029338821888661680407219522782077400159390292497595961657305248230810821333965163649889111674311022044051770140759890167969167846388056158399105642002679918529695707843748582198300812036098200452678731648398105728741473915968924227225354929474414493593232336200766564617010230342473291715327952531845306371238411237191442038719736528798772989009912091731790161903055971261499340624967887208344400386309601357004399405941325576696444447818990033361225216655678522469181151106516437695456285569975619982542972585494208883043188674629016955230974403689290442804587690868257717552392435504268708752541205059066974198962179400913734164462083842958980188739250736853034692472704057640007622685323625376838475826923070627289394591648998671190578167998003993357099706962434747749557706775943649820605035317327185032391234222287284385064141319683911502809899506143799191930782311814128750005026229346477996371103556126793728296871491718882306240396104478341674112773625439158438015663540001872850483833188952537888277993019704861280049009156901907057733649258017062153365615118304886052041932882829126397666192760258929624051283575704912165249384992586261684284386273178290195736805050683215785491097747297631889409984465719849274326709433042304631030785492717165359167604588565836271719915417803670442129917284208352243329667766317991150807566224581454196240499964971607537234241028315720946454856900873894804064371376642925026251349766253156064005307905510008569815160799447440672321400922436298212425055319317904982931518410013922161457256267815859479130860114111224808381856170224059542013199108486611538895497359247204261885913486679058778663675568882786348002500236195747693980263408622855411079722759209029348961191201047445397639317002381523732076444549722111061471900058912308994633507445748295813892091177585520967798065369840195885532816447516261420239040450201195064630172313411980730313505980957583200026624890765346141345834361555499021854868087085627879740007926026837657805948847567857319378032470295803469636953786277318117860003649013542893377086081333678292075228364149179583989064165684176525794956708012808574428804109135107525261577675797142020845636777175604261409548437340763575657225814046570946361375137459538404423402057994864255582026629412631365107697025867333138386555785055529526282229803636161341012452375714627369573925020726508585354509598635701050265663478540888452900088343264779244328634385151818163982958000295972054647781706867968320813375586565185638870864849693777572500827865931553532378902677860101995109853760534018028581120889144311954325397116341474554009185873577712049027410455774136882137434524713967920379637021204456679855947584935632130361607522070675944741302782143625205364504830970393450449227933237876243198246040068466388610071939487045685728370628642378777188210538207762043274863352400252034134807419436504615150591256885675652199465785381103587918691516012171243198566503829887692885180360592198497651504715956474187935652586192484301937004605605514539641557294844049802748444265712860550117537282809079168244170704818575253812564667755245301939153544364727775753187958300227118720787910492125309742264991639207707409214572596812323173300197196284837364913749904431012860342233938608358350410737073185018382303457781125425413140601072197295288278215700634800794008725499577693264650205347219431138941813169385475466573583816623369668799473995835326212127570449391334072309633088112818790611233694782395305480343373431876407294724331127399897986392681648553297348582675165619874984449961162678815369523245323281084053041443233813860738062880271491684821954666226478452998699310453497198568463793879933175422624835039085937514205630547096030656219180230712396827132206756890360852121249029450635824257995689196150792093032384060678602356224030121306168584072333772560395272298431617499606325657817264991786190473543941122386449089015164511776646300018323580656460068387624608235426771967165793176321404995812107589264707963082766602134513876713972636465417781395705604589183218514981157169755611182908345620084534466906629349661058420186495540777010819898326466696569440996053756395148641441064200789822294329800023454467312031324804890995366378037847209045516822225206063876072636162127213942216689232221988279714344001643652171729926949881180665195500598878337120170132602221971776913531652258644492293066984896297748284800919794407416795360160369406730595634368585174649996858628594815208441449078152436194372352496353217416467600238319435017508485830947697744068340536473533214865912604936939358662098103708292743150764254487924225451348798272032698514853500066467595591796000728075566534357271924298846738134982415824166113169865298315340053032793965932123201454581815080838568633460509423431778195329662681381220066996616809131332261631023156543698584410763648833665012225949972295462967516878959217992513869467224485924765972355932870357954610180395733710578869047730667834895023149440673486352516884983878551751379580887542731921470828187872717666496163865824093953194858037907210800798145448318336988459485781169758935025929014546078791431755172519800634806312620315240561565903152733716758841975148223453834498576456511062092893824187434315567542095236501563541506883318943539223193728893420976479159213618796245662084989784067644254686240594718873316485842537737610291234874209832535046458307867590387542392021504496558911600911734314001501555975227167857231199658684541353174039944517769352962866562197866159979271891711438117738616473609311481376135584587406744631562624030434966937271569793261898661614704821474893026009116877593292621644775675506098048287775263568333964295875250009193213170356696219332032394659574211217541177707617442953994512169694845314680464537725828057241385374574231243014849343304442703972605567632531769171696135076693255440893942473569055334127361662691944201757468830407634700047159096511933581907646512012231669640480004191129488557410410072359397111667387884574655384806398376328418879541681136369635681497798706739370915964261271189012595728886814377182922518152123536449574938024661603662278939464891082504369128541302307755545878874672423295039031802934309118274681576834689072792381719823641569979560801375798686597414739849138090530613529746847093603802793264232278034087618536694313049363654421964113527136836354148680943984944073240869621300380379684304651321650653698343970828676570547226197543673013575260896866437716860118178174003912210614399959521170789974231421053918235409069520661100726175703983393682504050223045429916667244068368790436189265534658777331372274432961841752173809758948376020492262495464658915539011534404945420011888417673983492104377603219333196882762716592054823133013878896564274195857121362702239600469565186335288875835036463307196672767390221192565803165918036655481866287234399868806640120126029670072464199225937306928694566274684645839192118712605427380308391359429798299835491588428378347003383639098258229115655807747325735679380117748474035157284311207831621550877776483915891559325842266345738640722797407725061093661461755308838473242045605615006601058955913016118391303428306522360498487236959434579349326636832867601583145219920187051896635661830318263112636804891915908281245454949576987704639803588484930655014153841325868515082591106306747794336464053336594798966838327924548185109273751160909368612928116163527477509894609953589696654969471615508812439669807060780434298979891479319397618254993515517777960255654056284106390993733686887592693003934745621000558611232547420067052023981466822511859779576913565700514515606836268853939195978389649185297490964060238421696425100680082871142739608522562451583139765447431933055943760958752479821217373937103295904146611018534205252451581358057966769529085114771319024360299929397448116484573262596269097941925954185423194943669092723090783065441427092872813606050557184146711295584503483750482263977279990882629741802104880941271367796148445272156026077009340234865542883467781354505673684526961669068619390458917032018133032695004873198892703605375821299847926269141425162145663542371107220375508310172880972145195160387751714880783517571423174455008537888955923468653311447307944545503449714520796015150572639510341803863763741332529806484698981540276573222367345030659160670751304195626092135671442669511939786368204638650249750527282377008485060691894115785615326007522562858641015269626988456891732748555160474209201361276194440760339382817176911001869204860328268881811742828712834576196666932090346722747068765245767170312768364245505820174875360435703538945329370509905042655613834471978025515363502032737746113475090511329017657076468479129677161855631342779404899543831555732231572694751958073028361575847290269285892235696342232246074793990866180967799266682692953601549267290379421172570347295598940836288911309754213019505187949664095974078658579538709505799607702556416852912918922719112226052564023584598710064240338325189520803661759034960672176848394899143213814034916809470988862456804990310240085367122078153858083786015646243271962001156106879359925783012618353471188358032182908264295001668981890345402599713274165226052328080044923412122775062244495762856604243810462196865953785074902713474580225901568604960392793389730858395850258052576713358705985407881741763178805147251341873953897550373410761712871782585377618567724662398165489485646732075444649203987884798900163170899449723559909617103221230029889579256350021527328131706617375430048707381612886509909541460694599866318025892576506356058337701828879551914311458290171020731189924963917106388095380243844655591951601008338619022451632732965777808690921545357125329329596458413836266682015297281682277376972736904862373901906950772632364328039538930073286129820168413063458721900328050038785882111656311281916491060518454663725755350433846979473851507231188840853626416152539307688279203290499608189315380475920758950687839140621655823477664261189034572600041884546584988541008151824564332732585516236773798438450131957970331228861383883868327565166883106581176773707582296125843512781419073224538014854310305810411778211279784966616991488322592070809185059637259625510319442941292619340190090436041027644474225907196758230394324525475227173017276724459582287983961088046019146088575295298969236272305466693569103500744329322561406831110067223190411041786255472016819572131766782658905276840184583189498205666234447531043626683714789746340167712796436007018239908098326404542793469328775276950006020570930088676402474711309863327832474382672070445985651297037212658424905709269348228834270810079102332913162941754515595389146942097871242402150582046275288221776881053276724532895113773188393641644663384696524271971467509873760461586772131623833200903784784852800126536817537545574390795995860762297698514256112002773742455416615720872259078161289152104080531001544208120672749027317172866010166262120414637110776736950372562928675272282520623173106483155850944490648813557583251179984817391218500259035643508735907744425394758063430545263935152817210511409653664064170912464833169759654600428683763016266613052128755328202300929694264167915157584695827989623089810047447948294095337376542029626784839647892138341350792614695407009231013933093422010739710484409295978162456559417692692564933225052160436244604033150101221000518621202402534170843038827630924727861836079628980498451296368675561872549589217306213809242425745753231258034553682043759401110501560124096820982680149966198395786772011437083271763548471402804363083273569388705077974583681954269342667129493511006451296327928060520078963412306146150001828103166511079141034005985803157604899032109729703111611803885810789652591770109327502237363958094853499776801396193950174362302375194570311841196989040993572859459156728443045886816960012496816975910388400192752575513519699080669079174744308752354615149737330512073127432664889590799167926094830092434267037888722269032449402217497282937632381674571206421785897589349579763835066130895119640007065297727189120936335573278597490867473199616438480473814206177933255143691754802304204742392846345809154180790914219082546165690993065136906384714490981928701795764715379096338696246137931359745271154622791348819435436659426824761587766640823289955076025032582301534803804507058447347442261750173256516442468633031366496053934501582514174586851343675499556260887184610873972387852849711909852139485902797023289355329536998379015828282642789489419555972987319231760105408863239379808866433133186562956702752546777922761865544843772732380388571911436051048026551182569807372662572399913422667004710650677769970712333337425992986629801723861369429860268796398281596363963814807501121958317268797749993968722120381679270933887255620354975440558112378143062927440565004168569529492694173496398940749259281897390425389664607464343568390240956098881588292216895042545316864745590494998411920319604228959949264168219440048050527808556063621707879938481969280575469521363927792967358872734154627643023078108624124460664880480959951580258341718188649860030844273970897458857733050941053695616181852942974904156561150698184511304466560970104233110392586133723166763324354644343571106290564737280274168825884836507221179196219680406798044433148495602430102615964865586895204236638801333871927166025279628771478086303773892450272280154965770512331889119343068505873360571284493465657264585963311559453183256111730400990348707908345669377897105805600491470011842644583981720414298720219860522208876261065438630712681078437857486912331466161507878966790790681681149532842393085147859716602371083807813823719433845257361180051668894357435407163666595609743526307878798561372073848834314824915903840203542996678282089425675618289152117105582592698150586104278232034460707867968417282706428004279465336095004457799964461634094323465723560598272713742491632238331882626802999428456332115711639385839265943626385284296828024796666202137163492531657261216832748303016246814775918373971502724852583579950139446507014478695704068553414634755083803420034632891383810610248337966511513848178413495377151940200345405561563633482389113162901752422506406187054562639055848357095545926434528547650250563566897179975969754848212395324861898941892605970559030628918290882847094089420101958740827962404527724323034319733136914467887190958285041235438360007021446230863360321351317080702119576172119022703115269023316521608096084384737271259731796410079421625225627384500785738721104278136866286392755107159423994117052963184683151378193540753230447632037573108428911626725117502657583990368004026609141472911352228202328996180802232789647756093787620659853905574257543017158949237681308659444039895638012538812272432667027635045752110360605720280811762909248269269871690042745472704791485466354395765753233540199658427909865058807001017261909099527889899159114450320770818247761524236872668037510311791926103875155492305488773974200705262855500065802665416981202598412244002737860813571774422679637192252503019228693515008099282242141244926617231415584304598001599055327592955099327941870292778630878154433798652840953225447795030116965639664722079489181687229702140123201900420470958165266132256663905598746458164108092515670661350898438830841084397546056512565008917485893827401418747466517285330957001222199471735094421154964422270682377355826946834430316928047829539509189725010602590562019846688049181936777542370029402349775749194120669199247207767095604224857422259213798051816090206384271929312567697685391168085082474980599526290031906231755464177293573514262835985543877570370891336516316680823023093552515366612849563635569055797628587739665437492761088889335270369895930673657866789197549615005526129873817597771681775777724668588088544119229708774990149310978845186878600668043719246365291918469382817219157535488352716532310797093115505972241016033753560600141386298100983673222696904696902519316375015647583912386781690721688238325931570778564979179095002167236551780696982234640833197638031316888415591019886540344547921391801387154451212700563835799922228909229179485034839220288532059322341595215231983470273668998987711315643689430208805237634615683460686842197116740858237980148382603465913607908403568838924578291396725328215212018566039904687654170439882603645040976598743002959599519141081323735768605680353805484964944522074499808411226707530830876718853425874359379946329690661134390263721200250336928176418226812054318415807227523259550941508394465154391077642884126498100086374194277588512820447269398056210209911406607053351732261963995867607225145511479477832322371871972374548166818586857765678720186127782241133611267092650548396501661189996024937443058860317548319834290830142727451033881363513344203680073387446661306767447734828554453075573168519470553986900203519547479387307502529803603070115475799442604783471633198021966090332376824571549547077791765051394900854388677658651032406348481728299220086539402852691767673894957113862210803738194694418644272966291393026136650378432728592994979106212025340901396657704379780319805216479847181482143784159502137734185687790241128683924849780958209575883367050084293543942551957409776821573903090841203201358706635223072625414925796638017670800288502658566684121469429800443265792696862599442157965647846204623447805510265456666746748061159022394850352457467528211229526969473910412949056192915600332261620436600276713174514794435909193561245508125264349024931440164319255235175254067913605569000837485216139493150006852051024456488698577822351180407535736472328136109500418757247288447364067261855544026934400145361789557622927296184882375543554957873719930909204302876024539219167326555361057420847942737584554004865274109467203166514839856021849469011184346029332387783672585671796640877043136203801854156908626638613506441504552359882721596966999771533311254722142912580909635689298043495023012900116298180509143993108928902548767140814218329592642475528472385867038589519591086332392375120009202797923985703508085329439634011465583671264776689512102905327512512295578712868781064408818134337204953980091983074608305238030903089626382849774855562529616247397263337335268474993568551366601580344135022582504248998682361283298674402749737732596418734307236024498678153616335050378259512812598705505418511494289584304393229884057792501794741664547673543909000572680548284316404805518126403144151454494736019876129559065449800423487789458922740472107328115667465751366780886220288497227285385842276034501526193977522013468344464479322353137056382933990693928685671234179447519327540362445689206326737105956737065600720559061378960031549519558001472689597638778888588900518721881595800733138859862115656763606950326455536732273873961077667761374142411882360859019944189285361418361680011096876208509702573690456894893802089865286592965171173442494855346475951240000372805053857248497224998430962067522926530312827681193962837916350758212102864721138440782582271722812666801368530885839997697306492702624050444958328197224034898999112860460273481253597442641338041120898181632567284816966548387023395792989786133264480534286801819895338772674531323766444554355414714154563939909185838195735156164248503282141880155698050061500061449716105977134674716973039230751970896602391253073973688908304146078893580651306188056808213835679071676567459995293241077291635695678920621424581008476745632604372207539846334929149006770131225571609502513912242357434819814134861402044311212759899805550655552894828142662445432375527682736387678190384950922927852045543768520502775528547556950654102667144719070818007986411161907061429520394950744836796251823704737831461768026204657941050959144766524921250069241988997587443148401440410003487521652294451344941613632232711697263300818341057907736362926388575285983551226449877313921718854862345907875193251770275094306832403900671392969853544767996265544437297827180887599023124900466595898733512875055055004546893401442754880150333533118452219817769491159783519522555738466491965512029410168666791237705168698172554965569911853069788397840576287483860046835233998617050658921093046904366637105998297308968949180021863029478811305804894132978913367675649876517074033007739486400181062870176989987581983592333603195502830085748136766806330493090754077925359540667495139053302569632477222973090404369658236053047019652691472688764832759718437084577183726109861172388065166006214051176422045601246226962456217509578352923517848976579955982988670538219709225991222213890454203440863904337076065216703729920743358182571188889122906829839145825973189905799797223921580427709795914368547419832485492830589298535505410642333363764770311439396419358464974710548417093255444866147071047447576719412602634828872668219765716812212058515877287198221642148773161380497376620074936188357105520895577789805557078139779056245344842905442438974001736126245753355377640947285465227965500924486609931604549096567327533406673097668494433272375161194427287147486239444614418963365875800186170036221988423371250711574618449462521486243586588236597939473684891147795439931281161256826061672059982621045378895960067241318446566590298624687084089348979996101787496642679878958630703097658678646161564162824198211829144475282306541357529558451182226988492087343267675322348875172895916921535510527756537674575227291215998141550002433196999020706564030119846751301315841755441998210566066097032864267146354088980471723377073663019413773351276554190406292439016494233173800361266501794184113331640119959193983982339614596906254146930895804888523297447216385297741165003544690863266910129899469555500154950223669966106591218965762189960706094967430489139654439031505258043319076632848262420957204942487088039891997285761794095278717253363782139129657858116119057658731376533656261114532816097035492930291919545568763544601733856751408865971326056316546569613363451030030396710692388693008873288324437784302555623396087381518965023219101077151217573337936588827051430781131491981757451762020409452595933999833282035659920238026001820650319559441756676763211538627137707734593796448608083146383843253999765472474014347199441914105985705770864590091025345978209690760279193429455665859952615514996361776277747254765184733154441224666751625738120426658535124498913692595828647299677927723009540516515861559637628535961394819560256947216778090239309532487973730084703606469351606963576555691917948622033599759399882051858179731129285493023162266522275969189417699284812124475087285912131547244453189286016124234313420909906080106841224315917414151654422555140052124963980638425961824037924162325293421710502048237423769396198306779914025027079057246158246556975046154274943123214891551604057204972875221828062606198741029621273290952758498410997683785495366459453623451086325340148701162698748889818170534483776553113824529202654593821389654299687482544150493477437263868421975805341465297350369118892470630082984173447330431394858940503973094623581825940386752349715092715170497027808913327184242815021860042117829085809777730305939345731843424255819020417478188002266960006597759801308689935794675527520087930002165898260745120212336704634244652593809856263624703169205916840226941888413083393480080583110752224461211632451728642843662669756685575425179734536801412962446692619720002327191165583696546862488840336587293782879160737826610073328160897029657548910467023370144166840979147319041873254185252253931164520106335002198785646738424380192292261830634772449046267376781528074404484730950344943338180397348613586758216395133513395525364150919774459664474228115183997834375594799733436698079154917926601517804651554158357334551298343348274528464628120412013185111515041480289247988504723997731260446260019888204132251177488800096919980276032840114558012343858751556613905308715454483088942829521264783907672627241864590373856301478994043480182403229464175920571753131272677188211145869012872100064158956437095633279607225855093237396984177733297198023745155163522642433242398506391424003391870986650058430474480040228149893047686830203411341674012484844031072361707069939202898098220084651980627575364345745308192741082695492569073987109812671724375029400617231075545121644086559294501340806991691542317751303731386007004737839736912885156135127319422246292805785596477753370242219064474820905441220347867439899323965922269868888742609447320931489536382296567068798837545986664675977933036185789663515465808543026964898320925731649089049045685422777785508434113743384144012003337464317360152848415757670584056770923320951627673508572644544903890598383251869217520572501992969399264382055665937157920639335142751186992387796069163407202477281558844218206556433332409337708562983356539722122098827835022037947867167199500313588960484135949283643082148189247583181664791493740860806620443882054805231333408638277381869951623272680705115580681861657496802556651083441356912489712039203320971273336462574817938066822013660808265084085312545117343190660480014342179421880845173132956829567604431255761174789175223610966889768527751474796390938297886674569661742297227397881793475038226509309141124983166995616606226212871890843451214252057971360553333502670957768643269645764970058540028522194012292224831820987758111910848758716666823423569800056703967453090553641568700357547135311680403004354606718604295488700646352809271195788174578360705865525797701956234952984272375035319943987979620231242735643870023016796099844961900544239282079019251444313618971681383599640368407147131250731020915885749657616188235026035847169329608454323225857646736541278700169009808305480973680122257855344908285596168865317725833229037214827530423594523690537815154895710813268474263798001867291725916160658401693749324583249986256748410147161502035737208617959580273130430516265911797463746411701209156457551073000259427358634422231733501661062666008908208399874087445580891773145566601667939165150495883603247474354496215157387591559559582030031707284520263332065171659006666276409274475272292766973148748557445037273337656923496862128082763050926701503701361783508850909794688516516872213604066971446304871156258174538921323293941243067625565238884030882774621541051655189499264407864549687491717052452354497832123318835548477933218227714418220093723485762982177247184178520197787308147489793372070543687490069573783471040241895951010325471138579880756018823969076003976480912873525427385443737679589903268374043871756219936127146475666567715510048444940868896668801190051526181721775686125637592902078311358061421704162467196183286249032620189616702654387649661768972148486167778779111393998905543149817390966769001914275922703609270178399575566282869225029549117281977207810702135683729240502304591758850351237173203218088357055051232280082221967446583736485643793985678376811682086551442164785179756809361986130508690727840895634602371307295933419437218999142537726374090723177882047398807867632180303471302541454339241740256884939461586823131822577444587486603826853800084664964913638730976743638179736876499246072483617821913392551904036002855995197103323339254631485304944063648192579755759815020656156825333191073203784172839042983594790801022183245507379592730057894932285256089319128271893246382235444639437160127553521802012135632009915792720791066735083772189675622834852357641353614490819611237612932662890736359770046641637470365735549237616326408286054639237179772703497786314380710448869564155820411734739291157183792061694836033588763128297335666703262533892097116237820969792339001593747504142771726644509257460327963263868932288921507684819109247444286233041123554828638855813627020839764468073173309400749300824996853369159668779492149308840487788432796972542970340996675573338149252829532638796453307618039575687676227272752818554713238774533992683091257921560162943063342480223776235702259338887575330090581695038180334400168874021127373539695187450159944631176635242722467394872549755632727684386078348235616708796728400521177384597766488794239808016838864379395410329247545085122972215408222443859397719427926015578277425412545396551786002093434743557874883750656185415154560282188980891015451364760269849688035652593561238061707468988184631853261206963094670398407527647827162189780589215466528688126322393970496490361700110866512944436589385703404024592372293191681535144622282716167494021584302694226742965845853779757784078461904020906997106770994705493303833573841656893541665141601497061946128828111044201513050609614411974960460329778951275771775569720923301747898948218566259429619084746574306284253583723344129269683296903781968561685325570119770723279901381655048328046333014779225290019663736602298532488223861483470309628736634074583324710553343089084858643272132181846840437557404231380836964051440972708149548383144682229368979107146946894209481569060758152142281828428135393726932169677059631793941060416202218603672263134024823991955120534066088241452777250352728641848012467114508681630878110231621104253313409870168216488392566318054598273725814583270698139101643963445252915950762854318353583079087808044882612710883857230510619894563795450256022194720746924244498318778446556384802344195622203853975482211731162957132691152937489676692987709210587260840429344923111633942760278246115082909082629583064972903949316352751835835099359159227348175208314777017121662873353675670033568046770317565047789299752270124978092198999236910869771784930986855127216289318093693793141094313939994402349279370352749103795266812155953036834340442331063484532738594045424413286308879814757764143877665649156002351139395994667640239877549088377098018977709785667145024752617087744011428873419342488702094532840716395521948472335697935015923649710880866894286184363732987217270434289935620869409508694749382796161813586232470143547683314750210846902511371081116783502666835305951310890946107366036116279651239708658614246617670760116337391153717724982709706473417847289763408815151175287005269888628182050042998248151226679716265314261735658075647528830549724779613875677398861753573229712721580431558795295254730246281157201719502521453820852179959903257999138400564028175644765251051541349490320805124337412052629246075159391032595362793539939791286518437158680944787173133995369662963096997803285213507286312621452778229071611428226632516999516581645103789728937121578247430568643072341357188814655009897400325669990381587432015293642733555865140057137422231130861084059337913442450838575379040361624995532028859977561455388532874676299416913945799846664138093187454787515581871313003666551440563240584945904761788013840110459981469354462606439450082408841956208580717765417656519447941756726884208274768064692170340413689765086271476758644782482161987351942811252050280940093864432023609967074695680308672041473568719270375482104676037214278284867352949798599612379093143232618206033293956383237940557064583659432140622220903143743231265936810522915054189594036051992097665807556240494127302519548875397672588273811780543878995529360245515259389563361741279212451247249855625035526330967026831039554348611157799492514472072779678796884998228951152339963628976911105875225541047435149293281325625085233265122298637203985974484967055457492295119009420304296967243161546575255720771994068394547073025487101767512617585299482343504527431658790695439048820915256515187889947831639357210250646215560738506849033125520369506269326513561452679776900662750994330591246676448518930430953757519818459467569726783934947181816680052930906909445178266172213289987064220628043990823244469393265524765151450683816577074948060561388601694741226330137295677596840938049716425722714758362734844179184591093974936015168850081861203367873613328678378247882228014857427884741506321420854106301921353661279553430873143932248487167002617189712184961548321192160318364815689132601491667156372530036039579467843197744345648780704153038216241798768780784487753790259623916499241140806175487531146011910831482138785167113439464600270430032605001582661955196058550696283586971747131749492842559000775986794991221695088012545103117013941607410750074027495858461482443623964992389427478099727142296275706599274402128207272026104861869970131711536638959956789230579333575377843978539303077430665649109641849448308859831941529156682977089099743508881093330522611866455032615473198488256656156922177193119438670112996501461812459530510674798767778848429488336945113863678730478771442668069771854408727745454738616148580200693378593924676683222910248481872729390580625707067126255483849297606090410241508976888387528317145822149087264698854661307751700996657634176311288976787956664345615789559811763436228716345672932166136568354161216641942523962278351205607105657815989005162794268157402467676272718384765595113766927826807696306097363040845430542307535672896492227354785667025322687706314091519540188326639829827076144693113845702251723347095101143218343358089419721726625341876845210155766007023784549416285417696566820342680134651126886037704894554612145567523706585016945530034963453661005291179738526449658102145764898977373997037640006916094318227705943086278020453744771706918783842437640858280353879976007128420434204320723274548901919361458792365742068415831897469880735806916647803556788415080429017700441428346505134098685401400469575894135106930157636931248012581065052095769772453690148455502413165999919308519163081733243189296769109898333558626253956308471319389357481431735913663695821764765200114497798534100178287919262152860581540362975329090023581601099636394359909923129716878442720313071607481130299770763134938031367890372788654684683680433100273220304812878565866956544228952729387673893728249784778991183707435086015348933270878506558980840018025923512747996647366420732883791804166491761915395442023160683265806582856473662707559701556575221734624082134867516380001943104811065705510469755779368753195657988235634854143052577665216787288662267356074316819999830115628970532611282714819107743251188488814042307570875652676272359265495975239283324797535536806985825569010766036143336287109629200000423013683970565708567438110593215594208838269977070590569522296741149926394151516628869471847184022808101819706844355071509208239998102680384900365205918819060482559562697634838983177453494752260896396562804507284734822314023963219090409237174683273422637731434500791464753182874076177898083020448106486717938127219294688579135814047119411205333308610886812618920868335664394593008916526886237073456663947358421816018072969268065458063683846956519648954619479108496999937459238702758322479035061489128830016697870289108719903585957016775275282860028831335193159190327986710974770111016986080734064062718785509480218919101067518024895109617645358945587272273224077426848230803709749605961105812324610662911344269445985399445347871712233228312564718325607562121859602434153641791085842167129077072424991333896084889229815234146084942339604647852777719334793908215588988735049088080347880343968964979712532097686342136730670839535645876767537170904026322377224649107460224911148666509819992610780414235454527581067671992188796701264691522674943644755208001666968681749698116179973013154285105196057752149908989607181188201945815524853474029766047752971145549600927940663690731977825990039735267994227385813495030545199627706402572251929347712331220221216343192298068538068622931031421125007223387841996126256909699935717850297481919664851925458338543065837911294088919248868804694968153553876283550896223670288682168777128696106355777008731155894467638869408821045775246452648618474669334338212506204771612554913969826704614414269739984372187313070659317608614420725663813186788960029774271238040321823178604975587530909208256193767753073303040378847678427482275948994229912341883453541173200451095814648034595205731844321738487264706265276928489092204851690341935861981867189353543512039170608695178869268274359912586986352883237102816706774168646554480188337050487914969910168828606980745774959249668391723457134093706495627206089564741060722004396781581305417177906753286477313943349066591689435441944991358379329741552949222529468900361022940747782735524917569758789641701847823059216824915927449219104600559333676304713076398878770415938814887004284348791346142955116826412143796777295958538453441397166536120577501109013549924406478214476253261554482185551497419414138116927455587024834696697737112549712430100381873279995708985602662454747481663835802290062381518224020099549433614856887987832122290971923107626840157885428662366249059031743829295286152185547372125822690843843143507810286609077695738603543427512084713876366847253766364659457688761900780820048479355039642199048575781440311310332003470813415080123027256682528728844685124295408196404154570067556415598118376738077049724427554007364132418711587775587807419689258585778760506049249300048530982114024611026876127605909040315488790066105012129173332872646647750251832304194674682598935297951913217910574650725048789191591866323378318325826516910444322796118825248601999967260265953172990622332435887071697309417035612173629693513270580611417610581720130945966021773128548659622841192965873614007887173447875985066634254630281416850261696860463634642026415920715666743650056098909850249983405387363695426532127836222457863486293479540067756190072160028322210974537511991418645182218492949134020220618281344633692555580161346838917806697836918921128155823529664802164388801598310297083724964534857563860966135391337333805500925528932118055283742935711236727261676584932234093064682508999609376854603123658953465397692393540214741489590138268031280915694005780747649968950970975524890012575079785810135756385910963533076751824307222699805508960743195248705626990042690314316771092057013158562111761806644686556898784215955205288291744714237538716162158758197918909353972740730260159699847509718772960796916643607305228253064391900227702293711762373316376187504701721332436727494463150409627065514266972383522180899929528032325067091777636887943917659448380437510495802717269045840424149954219782995477152870954408647912047249033996500609202979661785939986588397104876821870177695763379473884318962965059107517777544460930747239712005013551287298091660837737672435488018466975640579550467673320114600840931563924203273136607377210456117594214571390259795713406042845405738483831566172176344633102924627387482326472350284524558113068293312967928720967251784530609073238743420910077032310515141778014327540307654696684906765874086942673177361683284925787108729992696824707661796460224067447747434233597220724070980077319817977134567116421318811362998573306431135470791223483169547715334987444515762221018089922730991051990569613177580791083532515168168749887523131046831204177605120064517809123044836099219416463407346305246115371250403907490043248130965570877419687100266277620229337699925098679592930532137492776990549061825928588972344241316427923353501928430200173245830504976416172086164069526766150807218754770474971229362719756704949211975475581901905627065684138426641100582790461465079365343225573269054454424548415229299425935103670414770322337309616064140650867156889679615747009977118434951700435442941135629500698146954014716875278154932041907433841346725733931636708997848157412697974751857806020403992048234547098635890836680919540484743653288625670750091794038573342348306383730483165589786416478479816092410622627761793058862997432608500127087817899383906611606724665858298828958512657866964746980491504876894554264929879968556153465500239194256712614258998678667623497496315414550408703612408308365850949388499361207614134612158627905106987047530707148627047588304754949663135254639700188850305114334918594616583414253218674935099192621417841028402230529928223080411021475915810519883292376360192194262993079208434642711748396738100686075847500737316075600114397497110546668002280928712167467537240318122987766187019711348025318310022303735318773688470096468606400267816644595775633418593434759331417784218471134431687328025387553456083198678468395420009726340024586648557472985376494962745224290292992518788831894467967616295415629873274410814763834920289062933814549778244441369267369435005438260334624558053405338368949698258781890922315400022360274587243593424592358119110388911165217520937120947460027067211465480344713703732856028765565942645435232925226043384955651849878452289386405679571495078853939359102979770821524059686211439845075673437919461861193911383375551773710393876621053507857141805499408355512749337761927998218092556167654493581852149716791285445893225749686443967765093040850335437294193113791549130814139978665476585552362105251671426934904310758463545382061840251685173249132147519975322554593561690484644413389810538187276105474295681827614061128440295279118515560098629920910337897223688569434794834495933287526347187503460748145572920329956353822890658708372433005739233510767489260709935393490189789507452570825555816136569631498160422074742272406989074562493316739435989789832323660341331329755224921495162800284989865210466589221016728396854845142665149271088238026448899005220966252382640027322983872426976780066433381120489065203870503147647583268729005695515732935115908433882668515768581192660737279558538738745015820286741097679001251193907511348702451183186359768427380258516535196175601514184841903628726482350663488082278176720201401500436854462553728221534835152971619294398654424705283276524163016817168027939603905339112932495918759553851053903326507818046501129136322493624097682653447216243829286500823687023308826030389440142234873877924164416253552899273257614736518436225836123782719828243269564430292390256328602340578245950672041290176467056156795132572258465539159100425337590733053986344866735004612563564088838303421532527442651182806545941986002397847608265361798601540915750732770558771775777190907909791364018889408047776926017739054662288028865209967818007017350616012574936170695055243300907172730947407915311488789047940675094418981269798181586728841427000899771227496289286309270685818750304571473611381738149110798960711454550496077221577557513190283126859461534935255044558337995900843042998873912077061469852072161205279271310085887010434938389452607244876212211796050706308070500176642946440609583062542514523056468972802257116080529764089812229513051194456663838750631026483838518379251282804660320968603632033522430286283462942580414836970852791272871645523983905768134254279622352683213307083638409884141403024065573396909712464886523061506156047593119966880952249711708419276202822480259225775396734629367155523285413518280166899888509266803136503565202812513226315511385126122562789516858700809250903119933219922683727497815194878818665312928887938094984284064163833064850535974945014151251787615568448764900659867465390749720313730953989870097612773363832022231898181259884315630764866908861377453490426394473845447477908553074754064497102957319035016634457377868510339506770328670821806176320706795115743277334136535694545302814297549159051673690426939718905729747182680836228788772061149821440880109945614975876261437812271735691638010717913298144568715879160490074286636265337145080732117698382500876129492307206502649986170884152624993962634875718561343374890721924092377105593019100805993855246832669182755370319159479994004109391317606562024772734889332302186456608664728102597031801644974788209737356420785228059860546701619735523871888673940899457077614417451657803879904158935883151091614117374219576640057611933172409062148751031993536038989366501719529795017298668709941970892394700050597397875083284734063043736145298417975710167988129675968607717440763020683264840365402880271577825106495953965115265901024994042371008047126588715361933892944069826688055261825020054531689647162943987706757309228107910902434559462367322264132940619963920468962461343078364307790617391240964782080606840332653392768003102600387555955839544196445938534971767315413575993745135705666240885392533833587422710752135198162630153447864598556355961196288181361800124384344944592288658553472479534852341254820082313703088887758763027849511339912371616977315853772265649679842623671314998983785214785256292681628705104163252321018189907269762271790324424220074042391748986001207457326888065481840606982008357195093259343563788630575684865788031170912255055023329202417733141308195273950316191210352839549800380301461023374928362932359606282056271625137767913732634666158418680615720997021481063792611920485701903661675446710606640416459175875357854938937190088131006503051577068696589964665124411736385441105040880147998900145395030952134708255037476867160818847805644065475863609177532104388004378050036733166227654726856946470250804696119685427990972235391698292015448369439960350845021725480141057294597269996535055543863228962726586309468673707174634429797447033673954522229888680591681931375930065506542758352971922735443781338908453443556852600212402319399956452168972349298876048794546342348411305064311143502806808275885354162691619642494052883993707945777573482723269112828703978290233857533339856500192145278155036722891581924975877993555749529513442999909260596702801591786991038545704033718209105821062091610905773069005384710887509722896886966930848592423407300322957276402743251654528527776757407370091261662231617189675183902110161633112791180690050674863383715086767124878624863089500873749084627555857698401930037248699896833283910154315522465497148207126132708194247870740002807222057506346897334039551115317332958343076264811727372273658949342152722643340252582699174608003679551575085540935773768468927972763450509958616617585373778279870242484169703884723396096222202350873527423131187251493157043251191618228326092183080794889552357556876979678577280189972128246381582423056670962966230367535298392659993076509312427068894845758718232329677050188972568645182451373232830819376675234847575250391062339113253353739169871712093815753782663468655968225280659415079020855080342239766708294601102727504679663506347175989166670305254934541507410522505809583472913741372498886228099187080940435325286207204737726769850689182833631048286235845835541727926190410316113472288708603326791168655719817790162830831988528819963291494532788040594511373661619141581538732526654010192312727885638027267672918833801689124080319614131964670059633133216540569000571246754197761100562617685629643199401576135238926854375652362531088911172911160150347382598406765160641840412555257025656560067864898674880277698462269458549247793912681704342338968129606447856899616102827951617904828282435743557578590133765857236974324727109009459748327955858353373511155964725494094515345615451527085592845011100093246034571095287778271207350187838029434614245421914622745653201698712125597488019834746385992410586638997636033040656046834116548143149778209837799463437101650097145137089210710208977573193390168704286155633697206274394438678408923148199664552464706665863217653847766344567681740538004974910139459397099712165300531291060873159203798175482024433324648170998053982595710961856801894238428607984023009104410725698255109843032128394442606125498061030317178690205004927979026389406863355377297858142312965475783114128833435142730601308203149562230380694125373017126632558603514499939062778142774397248158824240997367968084078716889209390135415924632089258835584712412718362448879345670381913429067736384796427947900168576758605800362768753663878653806023454796222621903986870874085202062820178693645296930267955287277315576959462828726271954823614949258361363020276149449661074890461895054422579567135729909919987529013001363140287405473434876947034130214749324020438769407614751879821553628106000752525989496685229620682162230351218910851449952794698022917404027414014963423730516029553433262127515661217398954574294988368515907604067378620395136967567822523201631132149708732365888794326828283110205183614751566556854274418909261774059603977597046279217126709409597369057587980073094114007898806141187160437613088092712357150346693289757599106918825815948183759101016355006923178546741358975190531025684259563700323323021313044482658723654627995182936486363627107322102195948040412908103339088651046435487283871804986203476616967376634080217936633123232171047597727875453300338339912614402586217352537875268769195900020926750774489738568969589784240480961983121760976948265960966603883505904695788017836649891293457051871959536752287911125207287486879857302737607783663901980809897415475874703414760003729725765010210525450517186759125955264897594442941657167314682808616422107016152497203951856092260360107036528125999318991348495888839747732188469520953678983277312552935681294022235757888463285585341991498764128072868096092519348720693417898064861967292119819461278886295225685511094041172311870597870295290030084737288352238622522284293756758113941634366808844197340526081442185174064888086845319250986651583140251092909547789633152075110780746976769533461649582302081868262390187582845697437849021257414876966278091406998026915824164740819558894805840102784488526409270340990812749148474936901346695219973256559256464915345027627179367605257801205487768931645881570883129873069688573567678866602059475384626600227593071536847031741945253546315683180595176899179993583855969310089411851019143561420692974022534745874649840499118040983274394874197947440699105161099958344624825476610232140285695205648281920600512690955291152181379717027437078038979052342360469744499841452040698631979250450821124432738106147666741228766692060559825562787372027198479181869255704941103043326145744038294597162951442364723735426684288418394895340493163227504638054250422766035055689943577356164485062372798478757643556524518432084451535871218912560542375942137944600245000034349676062958415445535135185325295023116793951460596197386514718714257691129367974849953762278101280732962839331003309234650098302504049393081894481196831209842343527708189252717892459982880594593106377382243480587005237168313453334820414749970737756864780331696177891541193460484266972880150492238797693102593687216476050942547937021654694422916742794579533320489900563996669327440282839660868365375435624319494809846963291674223156533140009909963553756063424890551089271640102156885749339210680056361543846260432022292278660614101614281252212046173457524685323652694643097964777299479409291100274574750534152002201164522552769825220531969264797231515216260270146406028250326492343712883343890416741995857984620285567579220937475208740226615608426696692926094164580032839310135877624813954184998987845584427338508898483577482569518170230869604301497043241404141372635127861934683944550217099894416408094137416644885376773714481614484037140758731206503511061780339363701357664630437385837843105804165216501242906875584858257086774490001315139075618892837933602509630831573051311208976845896393165502100848155698749321141418814521762057635449431845654930358117630957395351190975030710613695084648074473722739764296222119389479188040315984597139127106468856182331965325612300717130040343217265345363225718191571125030769915429417874038240003059176401548718798190972051118943876391340362405902764509632853456783786429824070840432114703159725121588871554471569612272883596455055505874510797719183659673573312681381469549010167226928730183158835244032950500091155540601355743894368134111175033868128250566485391475942649112992633620799495600952482339548434153606531639326762903286022069122414515691713702025628534401170273959223599920687167408461930199977803402232686797556921014979833420920442831294235155116449060501306168673814645611927187047986100477232597621260558816403931980080993774575534467093283707248812661451547770339529380079729018424691172639899285234504457195456265997804110399529557320301955632432196666474501810812794111982794893190036567411228404587707014582394025197205642973839829762257614866053116259438387447682229796758291054955194970584936926651969248359306375329164311574801691194759335638922597589665158297538530505539517668702114505252324733002148478180986965402229826623963597487590114253141465501427121050960238598805549416835580419702612933150449079160674160636920534300871053868240706486707763604882857635022219901829433638345486945476151660570786019944717026110577755959200659639768788248657514366115232790919295160454463486693761294587862491745510961466612146160796271624048768132281551782786021688414835141885887808079122093724844316646854451460417125878227429353256681369020953869887413019123252415050933076848681871330981974883356170221937366558011604736798267288430882742125142404611351235044005295288689101402499605351961294073011294984799834918308565361758511055031358974181976760807962575460807690480166131362425266027330106291021638927775732429930334277401486473047328993432118104343918007471334953164576795740717463441759665746570609690001381846960057374215008078337747546137658562259950329840849798917490203531208310371076127812040398358114137426593716318764384214397079489535732233823600852341064872470318960747305731575508810378448635069780513538914287299674090694381554228511170867754325275538964924540380174760922225992971093160892810877054116379008205731704882327179266397461289295979287406381915123021044749917549993148333516950864419086278016930732638897646431017515047778816782694904743280290520195670307430565109620893456175747574871837542393221048398770097130813036877046028604022835488137839708612511330829726468510312667131042604424741736852842586854480145035243494792069521405216844859921712570825612232689520566929740200757937948945358331480382014648879851539377939130337327915565039188276749404341520919235809189369549543887275606952952747196453387748797323258143303238299318369199465431396757049404162356970563814114321056310867947383914248978979265561512432968846011348144887592350187572063532740116833459840003304522026761052972002634191225326044168763918341661840369864742924680550891426164696540105350970967903241269108337179998647209470112751388969135369208843893422818301876766896380919385023535779478280135618458199405237142281197442271252521833950601816118021296601890193835993015307897340810488513664941776399841528731878868317235903468899706946627770615787285917351082046852367759011323870503987802583821265964407368806086782096229161778316384784283356826675576501316797512185949866869314766588465295671581537661850125746123944052551915828762206239235656296689199577822598026985806346396298663853711377473174120600364399989489169402273733061007132405833270509458045571673020531689100111700025412690597928021090259603252572664609265863767009190351662536406328199162302539314947520484300395969839777271809175408452015416226911427767848548486366449155866698134769727432441883316324879452390266251525436562453875395807468540932120926677698433302593970389649641913169069195715495795560403644644774689032544680698298877854364923616697404421078879722620451064268346775433937432885056177650735798106538813096896102388843242351279004869212955826625802422551998288834813042736768984576227719713252498104032175504247779611877614226460209043128970855498073493559868722756344812832451910449757471457710767739256323815371367180668180417415736643905216530375072000805636828207746797305855677582533295198989819241515502395930051174551283455873107243415176065714913917891473580704948605984885432690790399315480339816382200055871365697465840672541469589469772597118581814399866921160213378996765383054585034665083217812141362300526136351770462794909332113144262406962535107392128102315115786050092459097397974898830645180322072760059687935126098000582377122740579400535827274993096287525935697219921005272348437509310904041001433592573129820023610240811262448669847446871858261665164809631703757525028735103583669949872721251534306750766287336028759004135056993820843665163968400989210392763176338229250618948576990199910028650313574925551085220390301920016068831548920704547284918686040455691701277916108090349856688239870475120490470256135566999249148463239637342265434182618003078582516158731152772829637820992908581271028094068546084519213112630814448534504243835596952834762239468096844780979692233906120428039308554275359685992967322385702226905729281224417123735985407497106415155318182261108113715855808793050655191978869600891130602028714744299299325745266707712228493336808627898768192332596122869181858649380281933121927105336003701350253785989498940428587071895524484162777752029027100646385077044451278505861072656738131715265998035322335856543848140089510468987441599837339563938352467727901171937288238194497761842875596571083302170165030324542476492360987146183268975706844556878117643563588264069793705372577795539495791792081542328948426321109122430523586814259508010175434892516909012574383752559167169282842194584924048812985265693112511190831160321694884684062812719824797249814812786925715991267144076166632338086550866317079111964222749516365923434840868729087392694897324816325441605817453303613983908020391685526128552949738891831560726801559741741174430819110995677461128474705311688122040372798012097008427533217397583448941474995966928263863827219150916804636690340409435528637748987292113700022143551319209854888259278713069238331323457896079235555227948865221354352783172588916196101198191793481265959304482528573921568584132789060971027977238528043301728595043829783780186921148284999172843566001786713163722864511355424319372298136633565931720954116293412809945393910662785774133551862760217790249845728125872461868982805124740000870708905992776984373473888481001937280838678517790467091694675798148158778580868097138320457152195311187095799504855759054182750482728437265385123430543178916443141294237547841883352395541171721784068589198166226796380611265845037612349413468848295671581826782096895329342218233699670424237324118237462627961500736551890826999235090090295998935414685696649333461330945351449437684703161210642298301936455570771363781932356090571759247211104031489667543450724814403751745627642545996784705620603268873006374198637867578950933679097783106557204378422597283260475688083664056220175577453758968226327162095007279661444815439024098948442394356547740453025003987768234169113252713850702751994008165755091859695837533461922724725710789173658546690500953505988620085496495317496967418532225665997312612334017146357546134212244103257552938146105468479909082439966351597098865980859865580386445032450947371789333841852231118070993111812435801138541898262533461044993034544412101923033295935019047113173635297562476519461063167971161363697659060902179051880142663650912023045033386878154753195984512611245835931366912468759289660230456692417785254994978617775045474107104480942731470701944756973169873519409359106392451749353584713694477472708935037632515080692378053741124399770678625098672754979075360672067814084863951637602254689907008564322873408810802259600073143294172222228308340332360362110435721395652561703574745489798779158800652555425782257877983670663464722940673222778611182581285853331658986916332888523609564458881269069468887898094247465690609415624370221956907176675518830326293784483033728761639487810194414737692095769053816136212802995514948817508996641551347772620767315648362316521987038212379405298268461750726830271213134507422940065154959510766083597163418150793506477112285448421628572451930759462896603099487655213244790567432500767307376351460977981971406160843217697859615598490476164461372047493142759968312445633982552654223503471269776122470376140213887730903189266018068738366575703055400098934734347515381536848057081587637535579091429462010026989264618286829765340118111255773915902890310155040644971484820098187296232681518805570996062528323611291886981574245040184522091920355958635964058203936044104421051436627238087647068788564731967679605483639124718355091514180927166374488152067071070151006267054306680557612311166034342001709963879319361177874035290926522355122081503671559309700933725135547554797401603792517245585258052722090159111579153020310106972686545351414333342671019210069791681769472407454241351241304731040453541693141799294446465886656152382598781659666995193173285058639885613743731656998967125192490572498720717258999230953674758009524407258659029963807394700779124717707709931708965452811095302229347928267569112556323643145121566529859634814969597196201554188491820920438962144718225328016431257065827123132611163793736596615145982067394836097734636065544546861235663552512235979674627019504652838036634478164888910462071442286679395923559498377041492070355324306252720953199063614838085851113741050761867581957340151784658246171600351248439268356372024390212344448115761205903743031159919552320685133912084753505702050178083939237442236148898774945190299651828327274862900318048889332868321993466743793348336967879034796616072861392369820602967927718266377075390652038995752172903201305252990866017657603800360558120125373481243350610441085999666053890570399489398381692035592762217158867176040284876840347563285627737002039669971806684295665842083343113663662318630053407570809586085095832377949694900706892318387533301042931141458455209569614535357029921917154949899893156354850384997100672545955955665096221621536571013656100575639787940346412102401269831309238136339489443275337204110206468894822468764873244153743073437485169550219062806444961380506633762369903221354537683064318568441336920339473471918223184081047185113300430623959875533735104969714203621967497378883975381313053282323436358149679475497098767971403866987626795780998769536867051359906598629846453586146365261576382045260089312306166021131065481471880683888472343148008962849588914213412557849611507429071022865358761901810005866528326954461421832842823106938242584806192445885082132627832169493031031758660146159215366740193070221548995199331620340568767320792809056513627567974540538576607762297248958292270843999571914968454841633719020695878212028252605758246056057142198967342208432952677046115885945143268348815319572757420600938142526970863429459713410899495204125272612604789050401397983634110525540582398824397311867495066073002132530258424219384996650716395820536866480102259742703469296259824049208936408223535947994920271120328246836131615211479538703372268153016084419731137748035557045183992394992074650575976898151222008610061844485391276990752871589764809707329782187162653621176900339054025809878671180720571960602643698695558682264094149412348350292186124955203978455675234126769038944059815105009413338787372817345491789083650513401046315854552742707606000962525262485686935466479636003059996017111269569456901291543633197653523842306332606762242438811370616483973172710760520648893614039359529122739628148572386807448870875644321458771368393418035261683159406742065332840130898877637745131672631085502758798776486729809021077912781953057567709529336998866616818189098461404193217718085026861502978782085485989863549706432157424283761336114019396695143590501572960113781854967020692453931009709316933231095654965801174891235504089170758743996792786866852816319023249285174103952829721120959157365466733734233311249263672546035047957417498822206837215287309370134592997492862564353293566983353675003686240566418745649332178961409026284203922193455093874184282995502531726442810463808083177524780928304878637616906396853005885865277032202073469120229248108192134831892936640090951547291036622091991429635866233276056482553732355669420148362075988456519464725911278739950689260291154354579731956808038148554524803609731866027018422211157319652918195632053485252294023947354660067230306907685235490875755009118734371892379291652907643856014879027814343395419541706191992036492096555274811541623454724553726256460401338209230206943519786183620811316292795034525544132957802007409196789040331088382819002560938250865541623693330064816143615037194887642661041360327120910288079857353292929367464147816161841128228138155352127317771522720883703342902976280263993863868293921219386943574208654506553861334378865846290269718634047641195708888761250369622028272715419767372240002976878787407346872393049943315785151920221057397160840373890299166380069285729427703176991994134733108376811928292872548270817989688359994220349043114565832437846324999631539987975306118419565171450395424168628765130758777796211786211587079732815597518195852041086438091882669845993788189019737581903918608179327904228622456827542418186398027443720171144557444456674822862437550544801153050757990561533324579735548154516264620194651260847663829699508693560815147156436681501687690034070240132392617233508725368734407901969716750982256328174601117912947959619503608195567851409644946674197854341404516419560669513042993661690992668904990736756431478091533750232971852303565033526034009892940502685985347886483230268049674215637515783964871725523280128165601612922521870742617769556043649884441317568249984585424088326087552426166924016270578728417709360563102401002622483139926433616621857808355533226661053535892074394061584854911790950488955709255408936355691901718215303546559276744192291278229914852094400986596630396288647618602100950079328282093099651278792998239274728470200335405065938056587208940349053059072351844151669354723521805023867835325693204184774941515372293963928127427563263247286210108722993603143919226945624561794743145649580730834611220235477478591173917153863969274351743884061192797674939922367919145136169529139909500890217918461295226169567805472536946995529066981666582440844481145172084424807047446134976176776347593871820359282795731958728578690591444808268144745616704167685820518685307502333192501082448286167990836087698295487057113302947037876351887016839512008831701042127422845664396757802198679416954073660029032215420067545475909433936730947343204358469146485677879500225011642387155515384912240143860524249564377593458477162226669667194002480904916937653155203422122498906613006454843505594972374454740240443022343662503278578008828036354539918940630071404050392691521903781337802308429561913587251779662548456406256376268970010511748006926579493021410581506878590565243058445746820504490714613354569918643468462702967222411002091159605096283073907606474533454798132010330548240015263777750454072939050213439811334210491609968657231670425565553424845053935615799807016297936294681161839359954372603265995091225955861858539096811441498972050856412139632519352180202754923172036501242699430589711216273187712562343768882124451471977989678450520838724703095646651022803347626213252839495251506841693676880790913224977751564589742122656241334649499495951676865859377115770266094308155938829766183152048451953717082028470857735210594455162029631587060301448642001001834946767606371807844814839518704828551908541343640324201372157853680906526023390562867430295687959282881910429628878346377277404529644750951167409081338369978680904570583505780153307018802752636365819833657925884200833554396206052556523596698044919193418949035402431885813762412612303978682874633195900593695188737144630095688356553888144820821719261925822985919607984843959821189950011451647222305860024046831824795855403818046414805761241943069837404153360939114738051680408899129512764907983094131688631631515565145118873626062506746250979421017065210145059290462010919724272932459786581452485729226186258734241440798831622362579489215044913811203741599789547489176524555859914356780338258033266623162865013759907366322682494474485843541691891516197981614945436554802469253149861672881359154193035020890841982155504987443638823440961874749474196980600765507491195278458310472996970230715714051231245834486942185719561345508024184860093292970212789634068189731790016418690126997738867306873073635851874147772771401554593342788717532916405577016310429529198750527443804143237671305259016080085441717248283800188812865597316755448591366033053180841129598740862745737248029924257711331222212249624626835886370410516269569606328884392442637849989383912422368528222523346370787942092142239629378676002250642612548609757938548806970423964075351529188413766017986247322609405309193816112040877001648700336729638444956914936025068466286296838740637287428203323350164142607097170145456143815641398118900458220486671586269932641004892512016688060104819043890358456733406801175322204660194220102119311156859742798257307807964891856737182210135882076980672749619260763759761978821420627414662795369918582517372537165741391334437206487302516540656384518272869061450994734901275306914605287875193239687375562351341679471365640281467265803077351056677880638626180515344959659013208749872588022879929419017626622010034876571889397636323180355519440207660362133235740599085916172311692561788619733572197177895190025610554264033261107056217637597359207945646331529258230345077718915754527190168372939105914624889827193515240298585086564526287728861854042874851233231055076075383223521130903481736205711691859641522432588014982360589585639378665951794105348795321198912506641061518642907406732544748319227537350819811992489790146822911068130816389832112134564528591086550868314952479983268794295747153323228783265827808690509876256699392634593510258866098864143607218612408556818625530231552765337995951579390562341181454786729681318667505030505065199726761423571679965030874222194526421568044604322678942080611235403775137562646674005198282583577338481109856290747039717681214842882097369377742246172619567410204967015402003276355555882537155294929107340918127515849532193899247392260901579575985718953354702865593201166983601014928580827629673456797986376004110309124792332399818275891307098342012898856126219122092520500334453203914154930439131519998909554793002731361529470635426056722326019952740551987456936524696404781907916746616878735743088792032080681006074863603377367718914194367285654551763917156853838129663155660808086238452554912981962583594920937393552525045187665264139670929778960579007326828366280881761556762063136067835091003683867284765898273736137643433863587975824076134139574681850189100522289897932928180063689594238304922106168611481775145783347426328735036092313085391613745729010725050769826764510810960777461149646159667254939012908257477212834669596929950688846456921301095386480886959249496877358690601694743115942722738652843986806069069083446527985854361343618861086875264117378063729859031553267226036547176648168218640989281695588576581903738058009819861287982864119699797309949168070361127157561209975881687809671255755454104387476403955422563657379767803110389407202310204283394968500946775435807982235697952923064571775907254382335261266602033910378819992676750846091093443917023318972247432194804555190084631954999084282297776186887966721541415036642662945623748466322109790066321815242954190347755893658487671413302706857491853381443109949361400730707444879734878843682993336395102762010668436057466366102991485300658770922362795791106567681556561774126196741726870783300773119006869145924060514312160332475901946195803073846535137161866706353587240601168569404957649750584374935013571965570365860815416245927591330974489856101906254054914083864938097334649817832393268022373354964522441261235105611687897049426876734489961068387661127967246600762307234362904092206554152330709954490625551995853945344600667455897016909619324147553904305298012189463115703732242135431578236692843010209631794876342890056250404465243954889053043052406005934743927805133533940869924691730516656722286155144183281792978891302950270241083851348171151017138784864113380059860328116397631326456112976827475340164432664998039431683312238734352215791660923640681554410542382380019710697415912762525808609801186713059195659916052307964748406584019794717789998868899864313891000324588978205255405326524578332674231551238900780862558770478082036653771296966013589331368409626176360174002825107813327851305136910814713012808192075224421505001395161304331746704471257031508395940366650467962286102964547491851209839923920983602509136133668929928293442424675192107854470630975761284744978968261695517171660155758486274193833309431675549952964012997137140398634709507282337074497635613617665394049367062583061730345072044516854694707505597553474073724258907723935836597393496723702952792606064383961644294414509992769627131961837048564716307173811856582673824034780950793115118569763867296701020904580979203751329659740373198587085815920443735779510441102967761098985204505124584006686333720483887865185826424779168777130764063127706534115359675352858159622218667193282861558091879014004184733112948836072553178089909883562402121579847337053899781829686201805154870903487778359809080678897834428804000516566939417221955385508946304022315601775724384420273104279814625470369767066539621129924199270316081577993287577062083338679329422911369938653291043014660872901692885339456176578119068971603846882587537794483315870402136709918151670755727371206889256339691104999443309357996941818974491780624870442099160172865646660180405710764016656809565160927304098651423372736144518374962572701911557348356031549018302148721149201562137128370556551081970899670700688464006274503709330501079060161598173384742508264837104693499984695732682409790445830843199297245666838389051070306791544474106911318221769236365239439953912601607661410306706479692802320563998428891352396163838952172275995479587376680522364664275578962742622863083988209362541807863364604295780280600817067136078003378453833333155020150114756281287212914795832831755470474866460613426957248495697044890492510971402215419319915507384188843167142186605888147056843425292522969943838937628878136924504720310627870605718971594876432663700665269565555567638480960238601405938126219896696636009163220392495624690547101133795830404650947392473303719639136022514237490670546286948316907271336312888685630842241064591104521511458220267167317274264763221766645172474656707003383561688468275099447014642375739946571761722534321701121592817875835637911696348092964493581125606611479485458259329186032851307090371522987404874755435202930685724806350823538458077808491479787213539035432437236132310311989848340170346119152796054126090255655174840294647672680318243822767057239674342344704982431400260740684122391123113130220731093302345344402239917257630945772024974445907732250598333156080248271144881154410326466672204665218202121834803039421925571644957768675901942284758413711649170541271735429818188286349768887347238688244068384230132384701549722824204721158974708143375062984637270031708235588868146836335727073074289558685570464007358555220121196507934589768862442911396693787921709960551190343733250850501558593532045715847796219601673754253228309798621871826588576992067195043903079358693025553667144593561239334074811989341273582509192993658314925995869384183430371726632926816231226444195519059644124686132196529399806225239529771505217166946934922094780698947165411524949442535998251040597995915258695561206312679751504153407785502726238739857220524395887200446013231105867863120606756834908407479259433088853555327287158949152782984778363456965896711760767727700948825345223321349352840022920249239744397031653644228153128943725348529624332957539804853670082950045296589949207162208703226073836245897731385009091401762460502532361155223524835427825015895726113964559383381552383627323943753962207367097796752360296678532417314892644393043173300693123141371130203771513322300225723882620317025615170639530448020426736421031944892003178064989949803919177295537214877433546487377132309187639948120570434416073676711000553105566398913384016762698369022793434007370524891348193257559328922980727478582249747583311427047534680171046987406516659308729451876080999016045400025249060569077790393961646198209639053300191801845878828546087638586621925548805815287608511947744363801174142514496377444511282892195806386855401235380064772105501537503432737733982326661791798973345529110122538189314911186786138945063889486620124261698887727528586277955417989559309356172901885623602034549289171098361834120548034750436000198295901533642890161944631459789790201520133389433070224560493846649040638899042904962990166149760990963296466650303960587766185963423991901298105717447415740086762328600345315817493489549521099034058136796944432844710630020052041053664227310192801947613320127266406296271664907270105137491437222673260861227948624203317794704792250245926421735222387675278724930949516276661755425416916312597160481301049512247059683705086399911306997672588045852686279297148223110891254757397223936463309577189717448513631898138369611861153551719135749639802788924710423488147484379145831637142316539615241469665067831952209256303187141080092614807128990851772225490423006565326287165421831388741566107746676510744927243337519563418587264043155461855670975519278178323884118997434678388873613634268545106637403520487346574888569626541949463243396537953119808527133013419422176109488358916162966771443111546842968920902748406384557837158660037663388863904154761397702035070050089652994966723773119415305915969782601318234690472504921200601664543985175341422958643633872570363354728780582751252929471396891797969487776557949998179146799592364058093657307160601756197980313490439418685343115373247300534963602336475164097337204770764533735113028812644089186650594948492979934764650494039908427421559076253543253630795489925827667280151287603987777674024047741031487346987612758994308732472187611918494929383452028946069735712145045329377442954396571978440362618189453221460634144177030340360436204088577684687804112044770220487345980008174197249757879625450902374804897002392667541576189404594497673393286735723750357585734122233124768443433154278177435994188353986859399159958937817147937611078546874930519956557358307786238632537004728366714408973647762592175005076987734723118541952444867216050664683960041913560211685517530029156292009634777433989010137774417922819841222162802243115460772470137526011631071020982326067289039754226099262831905895692682597271050328667235145969202808164109376028068951538797222314166808426887974750426584213420984251932778943799374213055633367438588864532870423927337248730601979754577164432504752212716903927807538532935596180819107733452576111483650202020688684211321848004378286992006051710546442477070812358657502125037763328538819744777723421973141806242558570819588080810714374125753116993702780737261193943033930465474807929964402833932924690944805345132758085341717218987482497279486781810592389360509282861033637299234401322290167196420476228240022314497644091668279858955927264849807304717891653631192480786129959712114524988188021033207086352244646356795995324537947604703238587426505041514779160193541876420161252438566129958303533719585760759727951350273150218682746968854737393118397567808206465916380896265912961689555334986582163761911173349886433293170156869286816957833962478719969895936412349748146643099013123782418222173552265681800579701786799733653191694198879306368251153878782920409682478905747160767987692832378985636624211027330572945380387027616542125023307198328827942673834639383589030891334260231640168410889588358335855581640960476239144828351772471301496568485575163641402231072540212185685773616724599084719630817545870875461921245675103301640578176811899690282461921078898473230235026688782713649526954841526224363035495711762484220148717717178074260660477539282997154964362762449971609769573908622839320442917002971833871390850341946563664536195007765098612142207639641886732012680531690655688734942875113642146048922393146061527943461005105029788162378684259305251300975874175766678393795086987436596593446139206945421243666909218149555649131816218995455208576349641248545944150099949120204554572558043125912167591492903002144274223631552154895771068160740635347048729905181662381042004994438343232261504459190193115291678582988844332403096194658175031210787031432792716404462638112522757455248236917513810537773439309084207229592315247203514939641955466798070511795212856459747080390754196690080251978071474126305443868849366114661098947713591012467630828411282287057771718290371894594852763705937189873958356470657464759667810348347503900703251818999893051381384734291098550541850295775937821851930327031853054735258586743743024965677505468597320764882182002983467424108449141671607840691646510510226725689125678005680922669178970304146079142665687016151400482268614960954781622881852723061328081746761070987167480092106819204181310604135227973043022073600533114027050190883341245971997832345830953872064332601266011088041100126311719593082680685954673022603786901624486195393554736027905512436600720094377348718032595794494682329754696520105609100578059051798299728925301085260945815424516858373603155881619203882552508166402088389968979829445582160984505822316003779219954120612945146304349336574767992146182925480176812480691058732394614448028966152016489252841711890789586464443737079316134458007221226965568626896417247818334167930889008277991892657385205901080471555971786569029294020178580765720329468813536918116865652070795130604659059923756895635216275064015762792728365520176590415959793145281527634141371027776300353690985912676112216403240635231021086661493195715113530587044525644543950261539399582157062258415973196109892451550761526505316312695618884772199372651734389106188414620793751379255529689758014725876085487635324271055410799808093809807912225612956305901817937485119716221702259610409310053740439534076878940824853628233953873966423491128084003054121585813932687054510636542256718577659538749758031273730802346167953357116643670228696836333352641144903178265905225849374550805636629225139142113400603318900230433581077911614974685514011282615663254086574712386153722880155308996929547715673670857688566823240248603676202569347712393505428004912751419377013090825420684493200584908568240462208202424269389401132640860138617416966653729150559439195694104093208115373064603577818829945850307335262208802811783404754236206018847506218958383302333068256629643939600703161319292126683397352056887894194507476745176531417450589093635707003966801940722744076322299932094030935962522730710969963367790368575870954073149246960390039949117253280088207242414372098638623707998455353952550549120580100350144453109423701800846421424314661791772515509837703652635289290653191409732427973521490219516769994331970060219688221725213835193194238178207280595207374640225873395298621656782902386754600110624066627073624837738758143491420943124932089829770800518499055470535130322995678360985957907018869661234737213894266262576685640359144095247356458137199512786080768979982410065948475007407737434362411251005214614465115491968950274932075742709006808326097407023756573777669057813928362083699270255619183564760295957738397366582965325999448907126284633449364158815767237850140594195731768298479848042474211428868750956251797855677457437011427489474372118668720386557759160042434009578447894148725837426196314722569209048194046566196354058913419731108080487038842205615372669142141861918451505890608744309794598917109267498724750472439633336840068090750944652106803703323560392950222379478632644469044684917133541147552531932181299016807119781035739185334214466160951050888271854202753422377926593989721345352380738439587828475512820840304434199082602493410941280551358922694892933866292945199301965537524848139209975259524894516257823387786651014998944930836971142960200392869396761618715744575737294591634071912282439579749049531039777531123113509535594889185603740281635469189648436003087948313145888238739052223770498534118328361324773128505355533644716271984726005527107663080253223268567066448925697175281395144781874826831066921294472179386236630134829389499560196883075772861206170828640397831979894661199190808306349454976518125787711117510657364974931682968229973761721497037392717629711749713139972497819081702713015705037978431181182808139913314809736647817445356084034178161409269245565724101258866059238256441744744376721936840779784224665611041241456148316114470489170093002496850283162641735588286798234228439872106669796911259270484842833274902170885074707734059687317408048043560284515638534460683603415327166107552112067555380334327987053021474008412986529362846666633215625363795787572349817796584896454876573442807007070227627144066081576439592857527300150243509291434545770748874317772580824389676862182056842299117124424045096002938595228029000556610138234142694939727786564633753797158297286268589291957637867969141286297771214784756507458439496310835732904877326652909997247701108950702533579661404526450837170207053980568715744712797914140233975729812013451259251171736728923896777587011436178976334713282343637035347327188543851951309199106571214819795457671889309866520123153608565296532954322033789409751748869704871866582335045858052514121828927409770198690432387214941230366137249205413326120803133000359445893780840161271925267972137541046976276793179051701518188190617384592437080014411439298970785455936491472756367504375390050190659223983195547439289529096579819179361991670289759378287613401873755591231719743352151461618731556176062464874328644177019264845617507906754146486616655250642380703093258278929706375185564675943432790633683812832496607720829213000417823895460054633085175717951943109766942178443378295892662896855164045247890049305664260157247509590061901907569656499619148763419665840358391739181917065419598418346365299749241672203687677627420645994727135666573015714609562162797812644319310821933373917950647900907521302380241842937082397449103581203516108400561201489819575769157963367223076008155845931276399080392649266813061331363780728610443609755545083668479391746686257192303319668938736336689366305063523103730545888772079376384040245072195456373434231426155182736800408929366921299393449868320165717336305046410177111045673788525451664058237366099509554902720690208833674904400239253546519566703949798568539379322392776823309159357563768883364736489476501189898366648062592447810467180467411682974558612997462978794853485770114742853281088895940663097526690512751709447880999093805024032428536463262618226472725180998119323997574299611541323618301032422464863084028713262340394019290833341837875974645673810161495395727770111696852587058573359763112566352359132623303406059801957043381374065395248068685021269852454256006727477843316511689802963600223381471003067609753096593453051084972071426407187512079835016654132924513052720816383399850569695630457568378165420500940439024910597254962992796688280493307442798813962483126712721705414588046116660617661354445573230209754425856645172332143758056996735527090056569084296792500929176377763164298860893578537649976790893344466972656973859457425636733701144882473022414213488657648479693585383689174606404004133088746025960879408012949821682107904659059551729666801208051674941251474569644864954696139192493777864024884923074444184734626663490290790424003572594859600235031171503655140615232493091979507727448111480362690061506878661537803735414891241650376376700247389417615393885307215675315096724252438983919289552940310574268627023610221133581650668767325882367134823539974881528977559717196205682933962164694175444626301035834287587425982445470244533933103703157237133281089284795060967793665114160002840680762789320474330936559373098609956962697828222843610609526063372988176934243648517648025438132692935789572175720016507611694892796851947584523895928091386122720380713202305494578831486895197060793953882945815872343588406380855917962554065245631974393678293461462154997810594760404582375308795136256188668553001776367653963001574626152164012004233185630933636179231101024102671579080003777867617871716421400675765122448357175166115570009981454946202510186900936746246464911862691609766534694581082985182314088416607869294102414492346524134335879011966394261117489708804820976659699299772769431803948842572717558803248116355941699097388561433382935915586737851662601112757642393268872923619506046449206407963691267496631118411585000376674276607533618667179387995754900294809590553775490110778567299912103096819682218011779198787215445686227405961050519437931380948462361405852747186422582383948827093891510572789035806967787566266076826164917766249551000773481565304467239422201088700340656860653322054373145728945622220868850929228400577345151342447930590783500979110416862462377395921564623589367460252002651316154790585517128181320208531809869318057451344607318518446857565771542787947585406778505417179829417855836095071827682295438573688404158454274883602597542843061126490628449952247105948663674315817795442282975062596646495464329109363555790895156467936144115909989646587329632540757506648565414625144479745596723292980186813109797767381999673048288315350511983765467118495180474153313167026130266306250621321798278448101051064035233665305310846371886405099703988903172758788372877424829174845646133398055983066902925649474400269121575668602378927484427827814498095631600538506783455470768763044675726596959387232531863909698113405476589776867465026552341564698809847069498166554949333534682276414490145728747240963489574847211397078433347377828280622835704816105232607445449484783083513462830844123063403999868219069386531307927633598086191732880263486824001551376240219459866559580505932167597618809356620242603774776337473335491847820789010182510756149143302166388137133583561238528433641543729285821806563102639927064515380044959566569035855999719380211851006434251655037347445732935268417609059726630060298720762392705155690607578819874577096109389918850578366964537563614752021166775156229511685989998291297645662984486520483655373558495381790717196633000913132106745489282258198994765031606422341590337692137041512877037674395880324912654908340255162933197323686677329780430990300932866998637961683280711483814416879619835920925016267292628770896886357372974023602487986323483024050937039359188195031675489705442553726392200038197423930113655408338609030715484509711295548960935874036032021340672319772362797212565639591889493294393272241025476966872602390018880688123972878447239381352013392920248144807076095177040110904009167093248398080843568220253311185021071060510695185178155356017173156669887870591723794361929689196547948778846927004170704296150403514880750682530794590669841291269360581874301425730657590643233381413092094121258998026024272486679482020691718002094824668034840556839695625952225744266651048733695343910304204318221417322387840656824813511344587412439616879692534931798668540104374796091731391177519187778085821135537745818479182438774272002601857611431493907416521501244486566783280253228775140421882733085376354998951022515204481032912646100606977839388819426539099200342083927909014430710462573803406936901611785929940257836851650162866664762266947996841636028436958867406917160379146777009944100711743298573814626422955926149852534472769931939139187755521376041264420963807824134458306771266726365267447138349268756530527222726121119404580113601220339598445605436710573677545563714156919061901296177235236169805800403482904365999394302615458928895006996640816532696721439574905984088138954959632029389345815383130105975699523758244590665350287963457859227640864641105690201325014439789856974116276592591141635736568811774537397706187930120928989894837466726753890807708610819712956317206484864612725732795435852966911845585943173871671389673078495035117463903563202001281848703757346575683846330770350745412283052546050846086614988169044156527951249266276472082376010019153954871903022528632455633297277917248469023345459775454752118166044832470089837779366691132992112616940590667595359172260378333538761976302302268401650187609874747951449315309829477639672820611817131895151891890685715636696007442317596110684274620757821939520183095438118059886071518021246511063706249574616396475348562487839032016689681012517558741859350296608328174829612050098428695792096656118520176019396844496484334480835981461612511530262199623022300334619649026164930981935513933347586515054011789510457338693075562282582972379880538079267500526887285386533552971704222113365253416821697409376069787627758975600901243822856085754454769676357657116182833825649290463068940809756171331151616405537616347679710477411433310784863198557812937500303345752195844926426507532472811756245894122185475194584594909609756973277012560228713198097975460649199953710751178255307317112041064905837399970970415663455738915719736848622443762522356719742998628548692550173186721174540589057733120006498080991628244157382163530428810843373053080613506674658389796009711387329080215360575336182880098119475877292831961115709932542786911073108072289715530936154071858031539937345974825093895363423734428525949297948169360662569626831969073757653936866851745053913570148464857645586556296890296567005696387814519151529452170119423699739995587761066643228134786353480111947662353121133704552055177859222629798841949406161328810312388634040822333478885657333171309696868443965887802631260631994250094804648180955448237374361006894288885046801388438022088529747727149253648953624772676386927984391730805213501801046442055039150824129996985752780478811032723623730252472562588691309046758397738361549132315210588334131727941794586818012732683607157649883756539679728265784757676341419804660229828910392690736089171997847949525326012223960702319634970862488107295136349318836253290998326824488540053645026965362117057729823336349371347436560494307159484723304780176839949099539482841077512466613786814305455799573233120916882893290596462606410292179099905425814061914868056977964822983351832534959981677691710630134138911238320027770645586474173827047669404360054377884430107699174024755513218751033940425615608608279133913835357464238462278103327238102612517791938355695346946774664242311629777782964802649128618111277882143300388592889371170295095522660666263104190322735265446777988894727223687569116218103648803374682155195863757038918620429085261279957583681983339945624108858996936965235912117366925958025471157969170589169512893323539204634973820219314383669983719843123331287545545535932591243373940224598467800862174852359432517555045675638791419229847559188581140651341320666332611609661106503711918475354643107810289695228337034001347629108247699795071764854223670784231219510265504046605694974139738936453587761488199268126987687184022399613147925583703496011964632646001940318701172417929701366228488475078552971889753070750297213186466706418048833900558491048463025188684312506916650081819405274682384394243897187274498333590821508853821803920723818808148505287317536311816744955386102705371790214068210030902388276347318411269897786929877139849218354407236751032149383461092492886045382000133834992771381379908858520213611295494486097047114362122668242329959051516182426603536149855864208737623211789907123795676151735887013596952075444966263802866370648074372014141254692127677379975309870337341420790173539686103808401627011706132545836356334036371683833111217159964628901692418876080365958822433411108082830661456586364849683879197147985201805198669719614006150081040253826054603161673135137379090289675144570332200280166170921027173243643915485930688970438916197061065633762543421800094696978960309815705944132084731417326140964280719308113233013847466496633769565725607470756530501075018542155209697734819336603131958750505969566460831138234105643036356032714941606693429181419709351982764501584532988862237629260515796706650007072686032129066509944358793390124006993401605968262889627331088439697790777582664198084215660636614628546747891893797899393337327313489536764599404088091370708482968018499469537394019117687538242509294724661632676768329415229105222925075892886223448643662700740583073828298008583941155791352336342713862407973123663718089909751688258105161541158514046603689696121207581732040249773152821944401880249372423875216034728373074768550288758446771647280728652424436595717927532973704851718810176426153253183941355821488916831683895716044756136205931167320067830544604520500559367699397651354025246091864185389545491007868873110164793556776010311645952789973234357482033311565967018784508916029773746993482827447766686753403743663144371864545292038251097695121471996318307920169288193414980066563346147916815676346178031135806260213032092191608876234664181375272353312149873936216406184835881497835852136550623870071726356836536648418416520811315779524142915961795739469494882744458588963147101737906301597640966601591025067832181870711580643930120676573858573350062237555432987301521120558202148515514708594997433731929784426040258615745656268761876139436075742404585371365633134126205928232571391399538822054700774774193232722067427582302608914991580813298957240902502244375662407686923821200378735163479342089087277338342515969628811970639283849682156183489699829303545241457986913694226680673226983168434335853793054245675335126033124211183466847696310856360146971738377617772843065527761546300767215118814237278434046241402823062213775166109278316673689363202604155122750538093136849620584955876567611224536090249664286084738812855519112344258913445144079619618940172936976365680256968301082524247794306825308260321626310126970194194941097686365944969209540562711354384612489298859170487997166221563957827845578182133016153408282637025936907279280090136560380038262760535205672370812577129582010436673478479176445311640677742724976227893386242257437029503822516761681985466586847614255061344485193079028082089741349926885931798663248703693766170167719979400001073807261218595663691546104368195410700769087347395141833616746149311075970854513395339715860787047553113039993062562782992790265101551541527534010213515234116341050863525672399326460403299452420696776947232680641578001460135054241388089698412964807903304937339383129314300654851345607909497761158258229446987614544089614722566327216140102996480432132024231513837886929371644421016090906357784772820242633430189155297318220565201526583918529590237910176617315144375145391736843015836422811696356005877162774932489737814022476582463946397119041646373719195478048963190438830196751391885098152520311484735912735756988259839286578327617370560334240386135445392276521558303596751167018608361221655563895322907793500851869491979175996669673102566528594615525572194125418977046712719283266078996296771185812723411258027661720279728955021769936802370896860007179061095511371256807470499377350036596826617907071780810818421482648889741887990129730385246460149211710624170062320762545732171010669392744500439319749410470069338818948334178723153413601508141716319587418503133308660895630580014609604375964878115836018793431947493285308526056172053868522688398434738801588917653347656231947499390805502402896846545533572055887685785420864050989049323450338889693317936888700170803313486398036818022772222507639386784575276564751373103111829950189370326391114428805012846664879003877669482000856574167053875656288793375621886480739928239473693124621356376557326335849973555165725691756331439324856697614218530608866792850799893722526275382509919054532516956224991216819196549617320607810084330223983033782803605335390555436036822896721903091563071445106377824870393726020951212734803353827462874399920967409827804256690364683927846399952034532971013058905245336212156441223169448207864339051127626319360590871537763833804288787858523011712394003815083629508540147119813376366111545015433398885933895408285792729548410708490544536167569616707222961764316544499262691333942727502380943995621776967509797188755269201910392425141762804836984383358077641685160555758027758311024257196793073274391415276408762152443793334565617491797756182925304951755797229446996420718661982242660062233581121896136246913466042143903830524797149277640319495101077541041955144219757764410021623600451227583798142338608390886222149826395958201267204009320251457071730825479130730644209683146014838030026263251039626912063161925674636975772985015283110911230164729578202168153865112560919324722038559093071106692287165031767704008831575710522269675080605331492325555556216856368883042582656659189019982630208713515065297229973072441516151148192763618745779240375330073855944342629023848463517036911415307647638801827827675733996216854028403417402660500898831047218030295373695000076614387528856304328525832434369564846218897465494130849002082325397524866947277005389648822991443936746576697418652456612209466703490981750178535564949044520813166315151734793916536153379697269868701796693407197163596785031160526997347024395786213284888101948995078231113101576344404934573305121747348359255749788032319113497118545668273952752471411911747638388094275426662624533584468806104780166788550645506613376733281529348047932262056949336966090116808145101345154899293618609178838322277816530362523684411966326456808320875903086780895302810797257131559788219872259238699486675083273309088682526357007352458871542280221852882580268695503501612636053283533339959344937132033578099881818491053471999838284111760534070129730852018239451877399646606050545922735925205296277864003829117957633433304357451414603172242781377492026078276524728297694367149906041691671197710074271646746441970808456633838469229820479765442260679086183186530136477049823353793435245146474395966689370857361427446534187734491714880592719211979241745074650152314545883462554772240731002722648711571916881124214928983567801950480316989391477336315873430500285758346345644505467807873526011163450348754203979229815812274099344146059622666214523188864659657266594032493050229435478027496121967187414666483855454997438270354072727792760705611201125190929968242159884138527759462725669030376277295944844796350686902211910680345288124677743821305539046290802216803200833553505117852845309271913850461317207285646023042694848750311668518766246321159669276631462830744523593687294941179049983911109383891799513264725817043028766815924239580583880540148709552276851586772154512061469759602187605215900835894498933569652659061164923581996636465034276113127236942133049546240083729494266042413298933406849728663473998634049699780275605154990090883316876689521190851747893689957764864606855545717864515502174322320221399508362091562277285392369654047166320330313452304836115851616674707439785807697834978657524809905092575162879129833518216976908495124814328067100016766039276129638145128373694831375966285823989225102379301228377924289884099970385033470369719645847266283357077154057415690352077940367029069413438032948603436531893072413298506744062073508056284821145622430123797718013841810196714935021867362950870139306585060274600572579452875832869095781832430156080567670252770295821791550275648485985319426967979496672139997581142015149749486862234493125018931355532472339068292554343947279659806603771919589304593979919028159697675966428748737502073659684589935997337842977724951985340316184349650268364835964764560086023023016711255303191316574537661093625411002317405029869790798646391057243966451514683873771004157795015630209812253900297382721504140317110046006266228392320085713434441817659906884194292854827622235646778250036213671370279030577051080025531878664938225409504271341025924255428841558971866832827291655201139613180850242408720777920119444147145747456594086025046601902250717304906066692818107029027555942730411244514963244201748173985030402307327236910756901106739696011630149333325949041971685741084080777730293854303271432341662031701085563103477493398305444355448198672548538421174671222114496924313812522692910653272898727763841251266912011260698599162792463429651648937295946127591347951810087624682285613637037607784970949306269107457397086122195649163312599233244517396294893691898337039251049675295633251483544965160009729324088697428463246988112972749897901464114456958842345942125761674700605227878105130928240402559122064327806073173888615897471119939289456385939935437962785524835143615952298707763233817876952047187780151556028904073020721124454626004103140493622434674119074691732082053003925244329132100469747258307046517713925186239651590767807616966930635460880784318559277803268670211545298248819090004547014184445117260172331593520818944024238487354579496607715595232865750581535862891665252274777813784327106613637834526533890327578860159924119698040918566567415727138995480753605168137505501540315790727547279181775687441137148653202927461503760199280449429865447693357024776616975179406433632107159873820517623038537059319756830112147092291041264180944268942544276911911996327326279328006938147725970161630279530141377732347292455206898391942557472613275063714466327795856536108093531354770128179830789024220979126080761253620144052086433465611756357864483874554710822458685629404104598034376370101863523222762101985491209272936526462252085489191805534511423048551304061915406007706636365804729403629600540714406193032563757307739249510600612641632444813585753827697142215850726082387104393003052736767426385637872878169613235403696014298089565469761758105988358130545038660226956771020751811312954564640939116414633658477332530773059403894565487784794370042242381451869425555892418561569743778275577903389501352707765039487757383592717766921157216530114072525310833754937567012557917603843552256352774264788847380110366421844323103399556799645118749243923927681749145780543601855090572301614562650236908238728428783113270608776307967933066424309904677952386064951829329350049921482220469686604811157530857275959730392006286553518797096556385743903785072087166169766491152808835680980118618862787697532247806973112879318942335299535075042889212849876429519630641468066034412723846487433602220293445718635133773875101469541672533453552497375065035468337022293555290093355958184357083439811569284972487171230251230259022365714615127087028102879117871521570021053131741736571777159273419998485555954188548065667524542992279663260104089920831160960944682340408997009556902881623818884292107768876783883230585940695576078676347490927708027226506138634333963384143595504340211571675067570416885238720962516081376100078178553216103804408369721127123297900323469894820115643705772975918830753563933219627207914544343391106048768230704550113895608315912330115056947361146423509498006020667301139402350175069258830290027358700351323273724499409684692207766524583679576834604451131557458505441817805899142699687733246337754348164140665821584616072705393051515210989984365275574752043431511491104345233343182849701289332943014188788415398134680517501398882069260867338267954060409143689014220934581662024262604870224740545491105735877443013333756818523086668818888474710114823294115893094162217471594489204773043408035334335484054832737487850216920460849264314782555834846719906613770495974743679255524425951923857316951252470906576792888679055385585231206118690197898414079911970753985504029878337246520168187526652651502843095642389128554482729784086779183902974339818342136667169034881299404716412142183740487676509969290062816325284416822860154464604277487282521576278102373844680997543749741073563724267361887867176848785307736019785495177723126625599191401525506640799221584387457483229183970155226627920598713200731678817979049307360872517504420270941825537433054847000298420415945899460527944834288612617136754652906008553316084994685899805687836671587219313903363382214923320245111087730931958063457306116043929799785140644022861831176860596441982840649840415043921239395091711016723148607454822166116578245270610112532765939995419164820543011802110965938415478390736361941078721202814891035266252917750062151459735440951919106490646737114796176758800002791471321530091611145617967252927059100081199033824343215655345154749308562079347041247481966693664119081001259449117297424114596592056911497384878582292943590174129589400423528325234408761727475862902597784521476707271729664428266206417375656270342574370934336585857557191855418359108938790056776641961839235862714447995391115716722276804739602779028148969404850704186473740315866289619625631324418137946288856666626289223369334477368771685059506617567781575450892304073332810182450055537027041881480051549029191647351270849789209044119248759762833322891399532529700534507062142268453697004385186200336294894526158816889935103846548668673393928847205193847254779202649515397648356241381129607770053390222354002001960445129695762744511336900262705422991282839303108910999133581028903983122081670011406609619492907432761098578907963874301682380371493115196307068115941902062421127905813534214189727773377702245899226042419601352314921031633321112032511593755185995098186780894840041988659428408021377738642916315049882148182411158766720238832636485884560186566738468931332690507188980605941403930097503055858364171835499408335743582253714685229888473430432047722965217609330365070589142479576723569874894362583253674394924051862919236477622594653141528007746375791450722314816436615836739039928983676947257059230376769690656671004197966874862084722779632724650677823129307511536369918654907795754225774787064235918230501874541026201591000118869364393799390719529673207557997024833803630995631050646032958053212222371081954655138184151424607668224627873910803349164152963606042296011435238601215448242546307793393924550143676487543325135468884106159058169259918686750407909863805151389522942474861699038625063998627295606520679921028635077095277408540966699947536063226709991576829974073585175838190606310121680744778842909790359262480950402804962663997220502288267133719148834514137896362422295164012211750517208175339322720327921896967489701850271584354066689408085344205196564693989447083194772096340280856742843109080750519810313978737822251298764547732972674999542250390120610916687535422577010542728113316974278213700911863547675976547386495489352508005929267641273780477649553488688200875656758448994805288796142292887982269511717564215368514933887770039737976606273805736463808880471385151106862608202995655206863939831246536635296856417547272403460675991790100241937608470540909735497607605836720165818576629067294112820655558284110579785029669389846352695527567497937584116514055929260213172966024157413432343180488856742819946046575351876468778055305482792144783426301269494930510168236510464401587612568048937095907039239547783624801106520222244699656897050326507944149445995217182273272663783469104726028567087051740416050919293247186004225689070323412655876507249336636542175617981565487962183385520610266825000816237515652659725318298036830660450004818980503345688159503964812422783376220175920706670090468002826714178027236336930753525739794340578686518902100417433654776534370366294703140287268905947906075099609620623433307478134275468080323965968113161986538584656189423126426813328637349052082206560625766479344179950381459850915991787866763659478474750596388390224046873874982417243683551401108921924402789476452944850676761235008654393586139867427673194175097060470423207360100579063514445070249043458287617840077660157696546527278004094494317472751687389590113887507312573285784998439213135113239968192966494691275571763808281772929763745802214906182264282187102556681131567895741572957021985157776175278785099884203910952794870199758508262192467057777849820461636754166713666861810966043041684740814945876345330254507465969876328781092258768365510364597355967685176373407130587407973415296360890269716107849845233142710773304808271100528427934708624859113637586773091583479167794151483727043892617897096443193268842832266405268857117155551557712940877817875473984269090471841353985124123042320753516604174502716612052985221449630234861436657192998302310023471698881099079795447480210560050296685697992097136568454337294108427156453633960319869692632754461620081969600604935812757199531286289113547687759034833543842820565106425877001286903049765080303468398929889491166180049382740384224036245689242559065240662277499103633517258189460977331358555477807431346723153146820560256727185711904272597488896629184130891018576903777708994279469391062563738690235237714140375458363785615939037444666521281260305303333752453902154322649541906487069360782489288359073168365315195109895750967182549661327878326084764033093645406213183115337417845769127134105918043268577488176076057871528151292072415243107551410192085664735155373880680623914223136034480904719323814748055330435534485024649577576960106479563361207222839055070831628528607090558371235083029757210010853163280435755716967607388454169485626890431927601842062765028953369743597979255128338630416993786978416233353459650076226739908697367311385322087299278694664391372377396518463930040453265509093330724818048533348026011840258516105901415918705007816989905924810917999736734494726149746506979242329866811636747607580106120393017785084392551293960873069916179488128574055180966841076710985444067860062465018167039655351713638404679920919130220176935352591300093791099627059999383292196363517364732756475612960574623390021129342855813027858820356429942359425387975398598980063706384309298755679442634942473578179260852659380204648755637161858154370844784519765114788975189318803797252944792770866276224021354792017748057683391661246349575043014673327683167803453196285390181801487631458135116878375812671690434797507223706243892703365837049272290647822252943863379209172984909870439128860694529582999710204977385616291756832300314712708409088789629895522791819885796301990683030269155631676066200180450048800211754926818340171044863056134955419835982528503717760511664574412873254064861077823185577178931440567593344924919016883746174507442084870354429386789141055059358765365477524830839653712248690125355653024163202183533010977693410653799325941299991468280488843890750883584314520843778516308886411879813797931348879576044579141778568712492822038845524014370294412394348579096993004237187553144458407635159733402531611471038761848505976674520609471863727365460065577655632873006133959712887561848399308735280645356800263437244803817393771974273486019886851704491968566986364402194455678701705258629725433956136835492950924612606620480010511392185573132204809428497870250682610782754008437356619518618591033111325272676507204464426055673708517864792220405200742160600440162481088460598105747201217740566930521405321581226734851940671787653338128085771700256343281475571750387937412428872251110689696288057849892050635071787098171170643475308677922358545433660709988391075515438559119533493752893817923057866398584664320367269506480172438750503635312549911249957829129558436597556340401382532029140378305728342790263224274490727740007957354797281750756505364597095780454505578677164364349368403250208442574845277549703208901740654777078203531913324560540914658083572763029026462310009871812919722531589066484509425015340008443667749378045829877511885972204540598284033525836940374119105237583940753094714476059343553913551409180315544092313749667637294615996485157417308175776239111403114292262003103390103710406357399337532471330787427725035937031136507330403081301589488616811591574268604370321322515388437626278983247459376500569796419002007997516629258873859537121969525806719039480125381849749080993132714512238507286208569280257967957894060489689882043235579018419586662429108011408339921068215428698248468866117491436442942841208455357884548991824986912916497429459095797781613925904281196571250176877080240687259973025701078312703554720019418724496377827325749352306639230805724471275877133825025684990119358634333466416497975109542859784712043279817067404338706973137764469678681359586538699202541136617044960659028365575137126264960117867991883262300861072063701187132548507955305390910262200274895165988636883905278396918746671037478319245923165843780244992381140872883433669993787861899315822513235049017115471749009481696493690381995460513913841794039720174671319616475580442096092317713908729109121270330648867794650607973779536512914481323910291433397870562902010133310607463141447470830848856113045427981901755202343429373874065140817942873742368245088199383007728648772073017723423168821521267968857237749680942581949470131295352463912209169497955972286712356517204640238536715080809711907208380863824704346649893262578391081647650264133145559829435250838302692226913204179086013014851043188576995137603745257535232537169142595740737985530654415332931116567802875748744416440666111106541349142974583757673751817622870759210176711366050559573327095907967008777381126826447369912296370224351104604380115841202909073769191276893094849813342868360538054503505428578023181057487708013183836014991035761644179289219616467429903582588692213926662555519749628519618217817396356418864335316982265912794754983257313901963209103948894050225193408389751757574689541831834542779964969650292725075286376017129973321595115415934073125767798127749534089901066689213986739190427285564586473357694791554443447811857817490374267426894553758835273303623680543331545037656654137951000077130349874254960207842393915334723901184138195704434265092484456170212612295363778899490253955485147256064158498050823812470854591224383678076443972829904888898355996129385955862256956516344152808392963159171039838228661950532308443543344616325975901163634214816750184190912231902366309915955212365871271798163262525648351301938459641371490664272559975478087451235434199318454246000467360287257512550421183020670657915015178252105746330958030425380266349733463032326631031523748350250549816260413989180901258148856218263577472441882010782376642957779210320634448640585558441486052082440322847759598988541025722528049703269643620029901098636062830941888902128928757752921459563044609779168430194570077218964478787131996699618041883857298976327551127494242008966745246897188875078184181976175344950799409840062030043849282532823004479489358333070076646917548574495759702832144489510824412830526549532239790178825178400648358042312035687291610746359855076043955278312268264321938876096692311026660259502923719690590313403934714046635588967409435351172470414381989319765099330101507408300467552728698495765638383705848160158949116625367288493603658177237838815943790009004892658655701043751506788397554001982841645190837912370879316548008001256383595943464754923239898756485709652615089825341238871265622304482726140157115241315298414166995931669541268903118155581015578705208654110465955801460014270011799969307563592229654030887763788304954664513778152535921948883767279475183447450635052083958151549351876692400588954651580202074848478023563614548138262642147815219944201097591858390706717331999945589269264528193440339927863655384477790025090485513939924435512422352558978084963922252753357996859212874545973881485813288170903391137094002936625709603004378367974927851378626401575761817653395599531152339263540952203567065047450574012702393675841999384164035851742587563913146653542971928926985096011221275494232991669268200821911139539475660098629671198617772291021339026689956530931328282880853813031531124924667604121457567622353555810871907552091890411206533980536329683262228975215997340587924203174548137713792130064385225277072081862540015164784412490501293527340197953795602622647235998332068158505238140397038804511644285695247999748099202314936541549674876218860371223521420085544898821852300929556531034589789974640750498746324840421719287341168086951431447312988898447770256281072426654389729547964581123247133440538208542718569100832545860470544935655955243997490651378867885394551716958331624824752284308774238143015648800457370971583893434229330736691506550390843469874775712492789647534412092214727864867983773644966812976509731783858760092178960122647278263323831582288028938469545398270596731481222575599196147141301339108234921342413793769121489662591393955868197360168366162821615250190986298610851508931994966867982082533785842824493085412365016951963430923985921891435802570236695990363115274744781631775017529943083832000434175310938868757012754436708646328169235586272309919780236517664091286811377840415425598543019825805681292346531937878018235823176269706374723319582788553006983866530418528932666549965823385369307929257480441498147838697927125762961425443805282869905767404859617677902965662156552249843433579019524375698355526868526699129969927572850525751032940285810887236234865587727292993363723235244464587029199625907757434880901913567227310421622414941950929061089014921144123056534657198657597863567744046817702844824576330982933139067824696872204814422827363955118886626331976676823721102896187242032123239715502084584720894759783561826771202933925403039471096043362820017466979372869362796332511867333589681948113157998278829670823230819468023687676426631068130073069076311258587325745246552679606138152765558249339295232973246237973570454995222396148331129801773592808286447206265048464371577795044105821001207273943919218238973822255841488182853215156987662227804773979094541363735823782801533511272815496790934139169355109885559639220902062267428116077755825510620219686735811311031362470721184114214899666181097044542991045388888926084553066194401290704053756059578072560549569526866136832144720775311668815987161315241389899305999039027739453652489527616435170547377797278359509234328191055047515198932507168938666147139760898348375523464417891136634192967353742154427173145685071711739878171225188468193742295161700923324967984851653935202225240421131125067199069339898088622760494994373068346401120651796937737751351494303197103967747395854069551874669843878949981214455457587194706758850651188138386445151723529217609205657578264828792909102482632281234740395590065955300181610994722153990992802973727795239071480200480102086696304082250944319141472378601945432063943641723358911374617801684887794131868179269747768668037938661679153084862692195851130752471847711106013612977068971224447950519927415322275494533518980903495834473196155663133117689475762304265355688462899121231335823305512194343626954416657427621307371415526910087450970311940283491742087643381338955168228268776912737690790277279936756702465718194580784997168961769500849436152933827942791461353438514670849473776481726957908346310971940582197819547447765224626472270017612739631962353003151563505596384563882994605694284895023115001708366823939448486541260399321830116151167505378259130279534837899384263361825390101653254954262053232899559541928682847335768779890909234294628182459194234795489921995351239234400545070621870329578885990879571429399063870830865425717384195404321973821278435213305513908403905150677770749134365582696557062876839018021707065172947855256062778123188597750687844704643061363466358706828893760213451139767881552065695943585091650805565634786940351251502890443777175183863003163190058964883927565117611908093343132605896040045995267451663236095890850231833251794915561010323373550551808065110330592364390831875380402249082920422185971687682294276662839222679223207845296385310803098063064634172533062870887616794698247647007216715245759755671287475185106019508031829019555594715581858291727990725605784281746089624790357080985033039110099234340714103007519961207285253151961232129051077848438155603162389747901690518990041279284303388407537683630815630656892684323328623518736682521393718926058332351013388261839043329674577305316151920785873849276196675042887605332459777465929470381108537630798279907719284196124545384887519451782790231127755108107091058992039949032559146291496047292831633584830353130883581672012268077345590133396945025721210311826734329055174281984578347422091122623141825275330458116363564546065521676979449515514344986600550147470797189694055857284746370960088383592894647178525488791013245425817501771944838626213641335408761731377568125592358596025029087381365310835614605733317722565614901150418145614768757572405568407333651848710804087953878301205816227001096480134420888828557991473426791732570336316761769660250566911513651833406399883047443676272253134327087901731569816613596561294924616577392591060590728902728539366803246188480861745677230253156721778615057177409002259824225226060991284249813601308493189098086824655952156496540952849065874937937479565872455073959130661424053089298721652802765648863526003891639962195048585491499467226075671642517696826137498723885606618185760116388000113973538947724916748467067588532410873689082644759717232246778457194279489806534876569332259893569319300396638410826425171634321940826403245758005219118784333659818408585509813354300505726332589516472303552278533022602373534563277627531449414885272448503704289346547583776511900811618719182210665134553741880612950440801614556656683795412195425930469769094231180631132032744606805544424618797797668149627901654114364794480184292129492738316441180300685457650529657725682167146082434461839962506204741159380587077559427063463080092593282489967456966915439619572133858208500192628056089425553391313610525028328461781427316372472603969602683262509915545651136466207151977095974100539670197811065444805466864849418344536884081994356278209810243283092170463437531820417136659272945636350714359561289951676748589311955702791949929690968532423449074303992468963010232241514996810566454547451888429290053341430160043242198564327273195656640197110978325200544764219429521915440276676882818849984617345904203870430017659295924958578367014689595640638769567217950976709323721711980875365305933316747146798941036035048384664300598832356273306051278992535118006188855638008743362001099398222095414149242048217701867212318686715410324255113122016886832904009239074700312331668222585281409213074055823492256252681701405599776931776780446407537654622067526975920393597168764379866825360022844743284443094098760527021094282367250914080682859187081090414903392608243539353669443634125607756751053380284587575734494095707146491156971026269062894655919339062529377439494480678295411713756558537938463778595179220222885547153505043594308159146507500020762362917459925453152688138824328486918462423446351889719654293063276460907880079412259905784266497215715991638108114874203295693040182933805412812236943235104350426457057223232124873636527216537103213812653579980520199662846189929217173013521207626064599009486876169939353371746499482059854131034921392741752528664307116965105984046823839995044890316447132828960655451952997419476023983980223180619984811586739299255081880218961781045738654565525617719346083294874070198209247569406344039551047107221261103878815491078404217179617071877867548939527353553495382880515583234669766100871315766450401594962172150973596680947463664300843292738917103741981800994270857706283443286884634995849234284707306176296034076903290206530291074498575016492704229457207648024790402355723790073298057421809897102071698681024102358960981763781769135670936634188246991256628829248163286341477618845749593170690036227729781252608939068550222967690195214042590721167698258319223948195514841598273742194944448906424867873646560317193051727422834909530942705990547238056876402203050661670086006353012831859722765688499708033476572816952048140687501792725490160231504211992217464182691135952515508117082153096109051293407473939772797935695763816946979590124425073008858894117406182947848833980329925369411923638994156566504186221718925593817433450304420549748526406673178268903148513815510109242749983483009061484031605836472799562336882998953270164727664906111226992397081587362495707590788873396291820202824063320530143391214106456559858230062803550855891817065355456453540223566946877798282636410406960726028294369572741966275547468074500741562939962739585647144834920889269463914043178028409535212064853272852892470928009000412583571325123389623848161655614052515871005629669369401387382598925361750241386879071111990658093962155962459627827120292785823585354867406645825437015587299646599909515019743340024267078847284082386789631443953472932224502471491275798807552649986347647133530726003264521393197744679375196312498418858320896471127301989718923915149572036026571356659601521313142220612417540878666810840061160835037253295488761090301502571476389213945587234666414507750051068144799388360102785229194327431430000659374742100929597720228275336346561962036833100819020287465569395530200405391082554197283662967983946386783023265465514110445647081824057482003047026081578908432621159085007094592103091776291269902900246587914391573785938717051825950589627373673603522400210173050033883194296803682572020607884556846398715895647908045982316784767414613347170412895029606818494086515096790214962492329505057456108561740167166017337530461955728110626025009570099707197166621714464802336054068646730521237890184670600273468921319269388823880769133574006068248141992447169607232965881108739579733152362330856478959230405535371064905611058009210526930787941562940853166608413407257202302143917760560294769574457004055514565759362692742320277700926046132774675885332232007338408760341211029537461805480542240628441381528170170994446184946877702904367568008804046270271011880153845643603870035923952442419476154436266103725036648051479317126756816977875736092211753153282648470214933780789281195558119712353658570692814877008665356031505647505769556001281394229017968589801504742515708313921544115787893055207202251349606511741066952602063533384779655843472609019646944941345898450409893409129948767468157907337265543997552848732928413377712729488422729385965381673535423014367278111574055611371273307804474061388097398224627769697332740020121940893127397765505307375332876636716152552774141642037505270789633323014886796539031282240299595973816245859354229370456814591028876910380423519070261813627966610341648561989942748068836539888360131848903111362004437755079371380110248395010081077809614577937743862114940104055685876692163614969700130140114902156708098864666395357923020261022985401891493796260594592706527698160243702626298805099564667942301968719181519023901587285965730862817673685702282504081144791433803128470782168801373626470592334385849012207763994551539087086439239082104321649102844636189518040961627382409007740366490076653695714270101773909370215535096248263786164740659360530571214799079114877465770440250004782992697215932342632591523971207929337705050329760507482406226676107077587373481400168930523872583115886981379617785555325927457005530058346738577176117503643458907472779644276553931222035949762355322127589869492257646716742912570806195750239151892844299290088586503153284370902293951463111238496732363166731006673726356588655583992458635932412707111619498401096589816963517502014420392605803469370871430897241477464757804114833511233125528279916545818637810172166882296148299719311080876896456821701377005242324160543263569373633673847265933150904091491120187786597420671195788767934861410554069743639125025449105021591313935661179969639600726136272214153328266166139490261171768256464889760905114696858240968398444442050735212845350820597082837186667893236715207942153670568032912256036554559298020495104623030862345496734217022297583989090411659686452206496381849340603757452071329898160519164110202178547210312172909763156472234571690037295421376834150408817184560042717781583100378050324041286048692157351654380982774033005806688167783794657893830059765906188750565680824090563300788719255404611187939891247557907038360760106416396657663681019688360096859303898121127177512969355048329772067240647016932791763016956569211222913933731245462273588583388838157120743054588130703606038398180702244798204574626341965662029475207596337700059530560757307625688024789902436219876599374674158389778135905201739388848522137580690862501504340623257260897868031237622346665728954200622121242367888213164067513883430873482347287514595891103954406829107760566152490143188008568106707255927785332259280647774454479074032125733166190307055115761578083399652629065134753423149704054645912724979520248413104891566350686217946120031078808528458536993616576846809651183416071028449590961029272900094041252869958716349379973612810577549395405685298150608872953094096890569989244740815027396679851031189025551076494636954388534114686600779335149308418034451593519827201293743041251169392774439922184556771743542691294425813634810239402901162410115974199754703576416229545203890966634076129697436650318040424879773966688944751555150197670674221650206637614853440257203208597087341774485890721771132423265281292449780572626571702343750744667264656012344107334064385210871834276755002162947928820330695992152584591237225228890068424685718262575544080922237302416793421126718150623651767562954429728141545445022043395162692501160788450265882733418262141808678770100063458330672403825858897599396530498106859477246420641479260211199997218694169115841923022824987352807395451180171510185394538973978517397062812976166996609569089626024427225317918839527314440306741768974956380877872005229944421863612449879537933678773360611240286508036039698903276182498726921559308973643407317617546712157733486151456900639369469934702264552567324678668366633613077866622374190160907935959354305416647460049018269833805849124999534703158715252471705528688112600537903006695107827562981968336067530320108256692681448816919223322100996744385477567579072061381038594361607535131787250659200220893783374552311663622833271762725037017973446457694353345647560189426917739610883277629397538258899662016270376267111580266356649798348424529625986396721104714966729431404320233794521388938675615481410540231657106611985666107945391687269160735868119674022462102050404672352430601089989511050386541654814147908654298244450764991906361399690420009506048438125647249226949255990693822419655351889412960913901454625622995945354622594242992617112771618289271466458241295842982829743040385800398018675653351954437513011456959414125920848105031204025578852491078272127335252777725133434308910762985528066818501532190232579110812560001865247860601481083538807340102051764346266087000852729888811732441542572280162270527019984639297877337642093114721424958427055737483444044996108863161648592152630688840622432240359490231942648563442528874350989852264464777572773030061638936864196513707261815474971083963460061172472107746506200712205660414807441273972505044636245321648663450437658860830377514432445523127004697901899422037714093542823622696606546706577555608557306470266009770353256440862047197514679397371315665528731992323202218876038143970048370791269426517905393785351583466071803059264319590971332049828457721857118136299693835935259960556222230377059758621181713220588475766863403206093105471607953614340754215218486834198556128622684905779196627094490424240066044480549129576507991527746982402863805191641526181597369662152283878197914455530465759314424506625275130870745048479399628111355291376280224076157278468999869827499839293523008374846335513164440224420063465859312120618587271203705836755679981405057977418469244637497558265746245767291080801077346122773133917811640973888464988880271542140999201431451906364165581141243964233951528604921626707481402351764991968499751813019856686470674254765100294952962962654825245619243981789044068844863020040481019055136711618118221806951879413476666144116620020324614490490837890433286606315619496771079826718509967080070027815861745123160720417471456761503712237492155316288257423471098548994267636326591628321377312813017720343510448516973478276274475616403455783438553000372981733279098063732674994930609306521116811808973590821753961362305207082751938018939464839327727786070647420324738926019528496148824713554225168512331761879652223366776590395975434699439608972632616871929649893078211285088948056434239470436238879095780536870274120471330187016797786178042464396488973554644371853729142596466220277738761807905002424676383567228408267840466085796597152184116739322647561433339707604788841490197998709270551378757777560664478527546907162932251621491458140238695084312230624706767088528173186745432870933999419717702764551837094973664551681685953909493753502057806446365277778135532743183424571092545199286042692361913631113781989228730062744192245093662839617558890276408632365691853621812233066611822597601192929969684512235342170699465314400349993058624468955776528837077163225630951039991260732484477170498061455810832417160426481537905129328646400515077032455651923184852576936578731412634786367219683853380432543431020520142788782378792655559000431182690350957891295592551841803309512258471771433628766024640677568963636414865205485482003451345840012307643155221896787126394752677061622630726585632771724632340634221318124279703154504530743041121977731927491183820068199722048850336600147441254380959257406616394539086399746510322446656119390641126371263887968220222401178131742196730800712830761419488459851881834785058472192665582316800434611502498378888640042519740340272685056823571919930161077319602597188203804587315919260046615562159150024584948894322659942590028981046971356390023533699988541542575972742046691959864321641834594434453766246522962881603907008877056273000908877379866473495060324835369042313883002276781227234713376898113433297782374034562455645138187872781791978801937212565465612547505704057703537189863400188097022455787739028801006671899825406626753020680577017470736683099747645139387477469550107729181961945049461807688373110317677607815241864060504958694612982024606992214398614884736737808635001115697576126393192633767001737720353644135496555854530359116832582208585571455953632124303051810424609255310578265819785189979040292035898340975061783045389972920081387309549400875884430452177340914817462197947723032711574859051573790509507768424224250677646811377605122218586687006288947085423316961342304587690863330652816555346088377168978575531671936369763888310547567603634870397101449783422497460645866828000803618690769978010388794506875069162004217917606027270001242636505110652045519219093419539316031424583301573344604576100436785334642601262643490132882737596563971726357887505116847989779637027108219784361451542544795913953953212855409648172563675509643863039616042019762929987480317542387251305841759764363476747785778433182211193693169639887234193531960029906518162040618977970362508243071099697904601495459144452671026725271328459172761013424463237902992245400981689049853865936520138504900191151838537215300865381170964951440743182683114821609493511941063087115638392021370268738347543508011255259819466425304387120715582286563691198066131169151541556102000813740537997704464461757765475610833722943187889089401273749031663167659212354786979758994218500742894540688385130187655794833453348000339697431648863865656028615248628887435122215569575257771230568164242110635771780361254900369390650179172997578989557763800600889672031512401950178956228742906280897106312035805793738226823379548301804991132860310339475826527534858311840345088893739581240544049667137269617961654581748379818434990868044618878642350279006734585062497020848381297758790820595970453241152098143292803578024539681358372897509111951133198508678608901695099624993881434248587477758322536342861681569209422085184492740557360061551764730340919699574750142466615762227469567014638936163567726718153053275740990349918030700578115588942447690262700091571183021852633784018276800081687014091930613631591508736704292683615166623271557126340704455341107463190584274944089722824211153337105105794257338816374365082772670926615608098615514182501769998075452608826712771981499203846956726759337318291631739087985558042402318056709494884270794616822519913997986917937382719414991764565204548426363697472444723518740153833127630401814642540812865707601749278667344341850414338254946955477646795819573511082592509680340104273240197415434616995214532030193466872137733336862396756394475583030116956517701850592241821727857536036222934775323995913528440139230098880969397358499703430285701622590038533063187631370653057499666025786490767885435026226502143567047610564460082689273222012815482212469448982613048366261137474761891481567463428376759545271051984132312796375287546496196693369688855001188388373366081089190167359595751104124742726684498006507735658024910142101587922284037935879940598904459896959271512379247554048041601114609702392985592603946325944792951883350110174009746290653227853073396708965800533483921530407331013528727132924086962457044046358738809990163624382846574393233019148122726740818945725805193479698822077483848778159626699920547835815919907148241934589852244530959754291110413944392477920959365720849549768433342195869172016794166734947747386658966655347915461991936231991300474051340991266217563809084014031847285198816126941118568809524593025772058828948771853623410194302906555630566833567212110549196584677249244847357337348792503710913986521533859508054328794369745695159096103648228179339945563194620550860099639133233780885736637122831915145130428479269735489910183107007758749875708436158853226661877470541860499887529884438417667718436289500856984173409558215202656932703601834304986963239748502810023508336247144397658525818272152508226450365793179827612221667890823909077792571454680337391868582100414068784668042646401659398096807975299178149695036132926479675425678815893030422627280838795082423793449383098710655968679139623422532649371967671530921944183335412090741966730530871602752098402687624777500340172199629559113857887725109597934008740083728285349007706598711474364474921843722897547259781415255118022367518878813840668877132751260022164105797935351070424073455133454248806015173079418321370799227600063247578242026892550309600266975699179581630083393517603123956287025060715120073450749166358965029470214493433295390386576083921491334804723019565369038397602290551884584305716391142789420859188255335820526206448995527779309953418137864235203587072263109143072381098963533075831526616373590258710038728450984651663290562322156995148038527584207262267361724491300744856384846191693959126982915742130069988969689565871306121626929339644374076275887596161337764000144871515085462861579126100364638465599982871199977871062506153217847334397317719667317190530404825593754807926669041046823534176531536405943198339129647891966401060511804561520587450372825687232759895929895130742636987085503991600478775292858287346689346375201377141774309696013293834002113898416530635325290473877453036426359069553939660848230351691703987335110491255450150257808059534272091249247731617903153094962784585306000210297614238882842480263014074698514752253480361980291790978598506257412596811886858388684782563693491887533343774156416414102205390587336274662304288839153577614435303398148743707799669993245869648233664661980389577207898158527174652616159102672859530188121972017477806004669895837957714661198753035387676142143629352227390712003711066743015984951822012972098593281650739547154424483183179914721760669711868477060474396866150602710936821793791960127965842506050117371381865210522381087356618700760205753360281938229883460826200231255260042414447373130181216884606321436974745028771606269264467712369251270509291984568915546486697580672870767252191653210768052217699731022705318281475200502272372910196228447973158820747074394379052765170668661147231088600790443813260964765601611164540844395414124689132574455729976547819801397819866866570035104058651939001888539943746735877822246199641021073354989751906365846701746103988235391442273714155270341221810220697556625444247092434825123851273003519813129453020492491650154674944237613917987253516369498464942500144018447590046530873014722938877885864657758190467624329846832255770120443460091084856992864569448369307350111109273808619521585732558988474270406565439909225429997827611163053563649414250358652032286855366401030937741135329885925394036551721783485561000166249317484857994741426248354102004794375538133130066443508827658797079498125772177061709907977692619612339668278789432360576131142956224478023748349498661444043661281434892583818418153024650091643859461759481417378715105166187177133894434467080052784944086780578331578627194167498754517802913838403501812911989538103317723225362285476006378198595935211426874588570287956831245356402045948519683629489453488252321277322394192095435960556663485520248406245051515401985360161340281805369923992138313187493009846435615221408822744166163637245175250294502143978142695858650052833158528052762522047663022635627010920122743894884463747931415484342310468860896371632367967456914222075362923178177629502867503604852649151573068732930662392087390556657542279984246374507217927225326133350624885640950133219589923043980000132528744746811240595337322025409620642144289491258926479163130182086623229296647163666914494301501701529086646308224072476966757640725507351747912197798101387895663650418769009536892122898420715008224754576506785495673703776604426536817866505344220000512987758208711693701392040196467517518012587556729376130816375988442890894807133639291147797998807470866189788158169785728112377008575568250030074803949603748525636322826544332907087770407588305701930700534315994002996589922926259983261941437338556888954025156574929763442680913098367218786736654731235032163807810225465294367429953796430930281605592375532277839267741373841675987857831465861675289178755115979039800919308373730376709711852613015516258082569055042386844488508125421721265997252233006212153629881341178729547688681806352072515865668949382243949723218386876542270409961359592197950587711888591178647494066998199858384837230123470394373656084505106389629305282651277230568451731602509876786991920079142345260075473591037037059208346858460285906045693458852036807588678643688597448783362376230845155944622372150249286007101420433001636216530845074572158312698792148701363008150195767476686375589754589067324284492396586076482586629418059021305507929861642037738950653894944793789583005939328013718950247001346128681202971687517845411363843793745208373786209665228367462365304742282695346855561019649159632150567672482068181288101391418197364149682841511689134668217613182739592508399312335757366510190866460343032736216019986445059466290501979279473175189249904068518960771069277516868816258441039637978861541319012723695190131767562388704970754066056745291688208274934658892822354197571773484860317162212431107020961714613333646079364475768657898768254196484681154182082356625277941054524548577398791935128994651864827370422092968681028996556430516468959237703516083847311380941579930596268067664471245763848880864058730294133477319236776759121660478756906156215618858732847305508909174057471320616450350213699690789401082885846491292316221848279883230547960270529405889650165127111369489147933857381098742660989049208425456252378360293954395498342740642424874844936596155037980093473606972178550455328244782475215524486746410780391279206240252542253716368654937035673975344432713115522060734156925434261354827394510285123619447817255745033525363732634563461939021059828839477849105009899429480503133193045611275251296227857012256606261213505578890599273080200346667183551126946478166718304964884624027005257787545401642914695941282167567855277580880657076544799497176874961696134664134343459702949109083224119852715012861617817670257095367399750240310395524925305987488605439286852390572532044651537685089041479517697369758623591966342060722176426815156446667821754501721145290800515660175808911640363801596734096669289542815391543508913189903910090289852888869872968629397372833690277685273936784837051232937580444880726393827034818220698926175755809528839323071897935517718951940780092286378674471365463739318856220461580097583666847402984677892567983557756397322934850776977615915558421043711300648995684435041778578202978881045488756742406971712093032395490436383681669776438748598872672161003432572619924573711042952188445938464954452582358631550121790155289375505839292588294798277976837886223886518489250967643296995379129615771611693069481654790993471198936424122241582777044907767145772617617498234101676415799041760316537708753804125601063150106272969262381585166622789150118881842817031023006456804141974550425490630098618723847503600455938432258528567217938658911477607199699254797487729844216392817697603302594066114863240785460532355918497750590415699610745711805295601639704519430281613911613817923887072139005187423446747564153274718354730058669908032866445673447958392055587842209514469211186031380553195339379505348164762624540083909528591543645992821196135846242988246869686293267929164020391205768657001469493866338708241279880983073733672046288127742147298220282027578288153511726350611330376615316028022835715480692266502335747249588698493791677973594935689121748136730833797048406737401115888904821421815731985560335948070459131132160436862771161801707313223991942607751945258294945325533431124272566106057826995945140684665493789703471927287380806325145958963578598153910535127063020203276298006864591021410272883375701682883043800096726077650775593723292920123535125570530967275372496692997105942511090798264578900518396499616479759847188662935047738193630019122295824951977185117666649530866926008874929636777563990119814738774817591378533302736292553361378668770671736125294295269174172374571352472081661277834953411345610430858527779226214030040185241082602178494807961922804474199570326292806518781320252563259236204307033586014310974656687817322518424900881407763088768756614873606789416415748427076711593965415001942123399848471484583399269793623164753452760734704315959817830995635280295614645819860601293744000151255356584651040913676664629645354949814288037551817641432476022669224190362585092753581051167792403733885297827404214647214390366731930517517577657131960694374655201718264298025692240643093273799660357660737708336254809069138047261402815959452470828582458139872176550911297319480329182493885930829125432224100448354108001951138359178499462796537265187641700327356513186084814073114123948716587954612462900111949796878453825164396348762624212500150450780353615671792815875732846750203413203466249372320055673975569156100416139683693479023943311802672664772399796922317138148957201622180650209676561779844335118687117456375423098960243508160480449195315194771354764904664432207499611886376932428223813990153275495383051844051670245073264945565970287944229822085779208755670177169956186146631882197395337810479104648139727734408147355581597562243748560758470131286979943412607220362787935073249879003619960061065493246078816874106348732853183790669613177448414885202811084790247981537063357657408949624540032141229087195318272451125686868280375183781480779305256516160893959189737827950816426241507316328224895155070934943185574443815103294317834472441833818288459728388632937358620678410655291284659848551616564749001472300767781314152968133422334801897733402892859807690442275428337669056575172305947506298206928951911332278607174189813331870134779135328905232028088294200708714823553435362426284085496511329305588874389943359584178324837075050091556603003709533103519562905930925100587191956641197746876607714593428755409956994291911139428311541916479985533813384613597544051943089056724609480810918410649878443537651393675234750264631241761335095436495829963616609673691409524909459489158245884867767779587921901585820494971415576023244033453510200282851138434447070467539625842801939255957149829055700905891739593442665525366994954890937008196126113230292788482031755556437640913686466631702644655973828980383909627533275356408282108304890365317910503084149676575662807482320707580040130537469228004032957158478972780987997513376259225779423196595007963836509414386436228764535305880032151237633543980471454657534075719750655606405600119925693643475412052710365892975443958719583134381112994664817947771390322421813207758821121701726725610764813857247407130823050294399587207961838213075113431485238954638186535779927568325692546526311972338812184848168312545995036713945183850753711867799146444797557637081228146996433936787098658203032787401079188215725563036221191293728615052546507140971279608345377142531589748115127860774795596785928965173400916829424070938454799324151682232944618808623750542013961849581230144938916100503558362038022867944036277072963226848202594410187048528184031083114055668629512895161070293069481063096528111383228332812827516645091682845562895213569153622299473627942204800521578591589843001661282607965736699027790977542673460831891342115748585372130558563831638473314030875187110719220917433860757530446939135013224452018597497676932547335919432901983536350453292985342428988250298067300014464258798685729229814389652410171193464850094472866674334946773961154780933799219630985490301539684144479671913690392389949603728828304633098807013948760167197706367335763811237314161032273614437242034180264345671357834405135844987491794322850702322182962928058421795998746424738383893644923779691884232421381959305892601257411180503767674190075322482250485641241314217813872461261173696384119945405394902337342628989715222573700257607821687083373853244988923183492098192329966025578351363376812784387266628943402617070984625020281587318384007271505505054961077569671481181931539774025305535069508292556129432244821149201906455100639369383925271901244134419881246931093962749943158539407179185802405674191005141640140870999253923255452599451140794428698708098660195042441561055454069530972092574824107339150783054642163820793113971832194212345669439329501452111208746703919437725712077650165129989465694069143115626267225068281112718254766565970106992617047476893447384124341139610494057934097608488180371938292391616123102432254324240277508074068635336890599017502322641112003321547224326474375544645994870739779413141358200422317922369996674122175390167917510371606786346795156316491262853376641097583998940025932022674003237007751667418117070604057004073497198911576141270517523665298524573120575312663859826478363736556118505171999969142462084815695253231933884528730644355397246658030219740865709941762717272112940856045704436563319196522186092346386020548059157223920533894805951889515932719452549874455763191516187604367196152444784393473514160011345745116734839903499840420994193109330970854012701076644568709630197352966753022207393988405406602290125687796440257764821035036456376013915056677064764044106581248670285706810110738645106925047281167523090670723718539023089091212783591960887755151068164435244598609302744126782567286917486966449230349857260334185527875612781303411712291737289093613928945520821385701605769801759738510385364487616153603638251746162472473047567684624560215481027767901201932556257602662782225597969188448669566512942390526531825605002730700766974138075202882834464826394585769505067017412788218808457055727976314904972101348022883093819820088496935089547536750462376547980936445462657707302996394749263032070505949672317340065399329131072091388066025080038483213385329002983547430523823360254315577476696848569552303116150795821559287960970631253233288543804041649989454542860742740197975300648712894154076456402890767981261797073641717787554370468017849723713539694401209664281223684867261546013242741766712327168825109467284119281168826310073022415020880301335648345494663640230141899680689498824693994052920149940587141115664884692058764902124542575525800685292070914487299029312919779219706267890901327403288795684044262272629505462832352807525768706678347091159429256494108646994301930177721814026072030977414641694880806815171788533371423719626783040594961298925909715096267565082694269336589998642900024003634647527208462106567885665987729080904932612651923618181627282443664542923981095253089056616147611398972520658577353400371359003548803491864907697769482686684311049375889557282426584363495257549121330149412078980576528573349825067056887097837588787831469545452244243578160554109460357101332529708848306148055616425536165090996143160538312830462199387485670393908918223716478746893525730461292576840806941107618168160401948441244480055913435198841263509454019661131413408798531435367853467073878185117974773586639411463190790123700426727040256430377580793031905782643752959244768202626302152983106473550223106369641526663302637864284892690555903827080864772858735736642361985956205407564384151277433810695381400611520170635014643425593070323767132394607350713590557230358763987761784297910246289389274411451242060428641138457642386914446943095813857742384941310558825091941418244989090039616277467859493343725590820224779863914513791280222857883627484202479610593576381808882474292847833051836594816463811657646972257834222300677534386035877567524909287514643958137844986260651325502677747925346118264472854872349404152231335992576747174509089587243029690012857452641131167741995583163007310050304191001181250042192028912119521817086165011099136525614972531812822599908405682531197926451853232049000993833287248238741025287705860521092894606951190773539644056266244563165070894815626982020649685728681240130048037236719727378382299930821361370924247149163414317372974976330971484971252453483003777280245283859399434613147711946625117508728543519265572095642580385112538696092738008139124022205361082969570344306790478764763491681534380765511045817035170507847859271200302714507723878413328869170401309535800928300310951034937266264848118361698286728901365619546884582583924762754825931864677712922352073270025343802094373733400201118590772384854282558406851385698832276172710529434505150651912557461623453892333535960981351037261702647395482638432189025175129157064343671056225973160014582477496910651493847361215110857645698469500692961590707797745661105731300076048186113533187856237213474083025102816968726224754211425958189153397373464511236873745243423266878935123015794385926336917582592927599985814369011451945736590174458957447905286553730544282047721048830458019143473791608481763515945182534269362743887595551332870624740178956711211761310483312478474287313578129895111548236952203396362609216638713323626641242425976420458906297714535587822901269085144323784629327186190207169378962978490786876988614646400030497955264868796853960097925282177566207343453334341056411598188169556950539246336835111743364218532670075776703406624759840115521467838040860112928840232088277772942832046744929081464546788898612244760922042567137981516791707309083227028671638549928920270202760445202154415796866404772931256099789991662364542395606154470216132142018167949787101062159196577813589491152690515839271991341548797224935427710751013111625751892404030511671714814159660224026735457878909985891471844588024827210529600018032861658673395220831893829640621167482610702657918105529833171022346273176345013537602186012923846182437897798671410567917853026055699124339455809960692704839078297792259855348501794221347642647916239438548939388202969295161025616262035740961458549758102768233861156261155524359952789283818432941716056888837905143092072851009313434619872157142003771934677508817454659044853335550607418888713016653864825711852620536979557604774121391022515745208304978005087138644462848474048953372694702623526679473116488524495268284028909570691920997002855446382746514460884208300539611134697738677043626337800181216516045318723351071635517678788565045708383325984721177952490147423707703718461266138658053967985530707470303722336970218365492074559733570940066243905090995160715653494986278063385223945861126371658090208312522001095819156462417965640014419790505510159123538444661533853898572724575368456306928155014372832622835470395327086450135531230892295102994386571739153521658931773275986078515122740602774587647910132528214660252362569717889007549368421949967179349658359212211019797617008162978599572868674939617131027043552085643138097814503614086170150322237564237968437918167451726620802760838298168200762763133443372209191925885426575474753957954397283683262553153957748456559889957626153268894591222617921227258006911025565832697623491962925198944605216846309879954852186884607028548637455114969524485879452582303527764993462745356181631488572491417648425227086431296478036800316158915787813523321621579121216230756206926510324225611041236655303613547519649263139972697190587365841465266462349500012841656277632706300613008682406707884264830643630279049860025391618441488077615393898126891415245154555296468440034985883987702199886047091880361348547210263586650657677014356074523018176066841838323535686028287451162532765294180880599869171015955810044685703066308419216374739543182708434876641504898708477091499367821935037892932309632403252557288952556104166335464477215883808899763971890349938306625071058962043368165455026455179352805340976438719039721396721973527508881534941725047094074716099323301075502048613508582582045452738813807243303092680327593139788187005847638128624000790063038219330032780191616478152306814696348640823004792750140731008824076977886584117484050417189150582398902244504823981698369358603508538016506701021329567455362014627990428537731904355250848831875995368220152577568397956523526568165799240217255859375472621670330376834006866336494786971588453957266220769990908795058909414390484911733551873511004660976178006189093902802109223935186592799425040173347889610590882015642880020289263388907256049313773834406118899263657511454677810130644919278222322376118752917406912178270264146155227120584849687062707482032865112818501945224049640297921078270360584917938212676807554293203616802585401952568871386963481755333871301983092793709059345176379237383981250733546062280991971441123194258079990692776922967956896469124306614002231667290324181039846981714757947133286117389631704887066858986392023951944259161873405504897709317236784095456930361760302431138108030015313271411230559459801853404933019007424905480778336810809920142307872345151596653867436362523476130995077476052736479915816509201104923199299467857882051527991138491458351039784449444766882026426041139800331780578378805434797032091605537027723469870604889795035360552521507373104641635249950056510646636897304943439136087957179457659579066587875506593289161798760756976446711871944918043773174789353896373856410520291366880118641811275824516333316952199557463402315728387304039626101603796519763997996975358921476865459891986300462786681677942742260042763240842203980403325341457035209363118306273782270576539318002273992469774381428773867841143012616659950076682760687770800066631370291679834905076016345168525023978476603340790469488756115847005029077990511814876142624679778173449077909852195708229801044324566709645778614356658259252323443686222743841574302547962693286647999995401596963388004293617776235664862340625534701636599945976854378870790379944541045289230168069495029262663820652772240357465617482265772448304552042205880173614207541875558944406938582265650268002725358168020429088575105486113556693416763648845626920142293061612356132632701207864162126934915210595364273330147332765799902958545917509628155896703306938665475955798790616676947248560289145345229271842075411578997422994198523365098767756032305158817551259886861616881084322862251079417045726255594393099640298537221627140489201469595075608941423354700147100073940528723076361297015722261652639094384971438645881795943597209485383871811677450744389437708072740612396142609914452559801564724011054056851549515731252184044226191851194990098153436738821341803049840497477393615607712424422693643616112479758612682332030058655389432288745260144916685780808544513574614001711677004722465478098608370289754257486508239911736339103388051007234957453340655099837288474868403339711233285344223745206308566012881039100561524940634102239442337998035884791801483024541569683025855723382462835255093380606700293315233216676800421471078616791371112607463550671920805163087128499331825207512200626199582029734543456787484449180258499596927915798876396943079804280454924765279806478330951125381771985622613348617224340563538181610066528318368233280662773414195570796255604693469057761361712456931483056342805568301070392877865570604075262380384198878257992936262047634181123586215116367582112218425569906066735091201545886132399892583319400728772727377271322243768837470270331044297910116122139415729555678272136714018043685779272815827047642838673677337098534055943286722629591303558477706451519035448227809218748403211387229543110508857198799132957282404058476020117560461601672068738664234347041546055478755885095001813727994072844817883444607239502780159577599944055084761207727286438513916897543453664208229729204646705083759838587225184275102109917208433169951263821255589951350658449341621601903171370126918338811495039588414479276373380610486067753438984118081546405379495340589136331747762017623510820696127852268707611649543162044325319578232921450809164135518140092555391090995119292747023110307667689992108206284744206248399017799665719148265607575442277222468433874275433770967836374450601726397140284929972309432955649540439781070059227437398455025648611250345633511951107680897246153809160529290869852496495623482359677757853572515414439545519065813475230365948173027328832801607830056902039122549325595618755022299694011353394491335379771061916327343573666394639769116896404848028449443602712644241463631346800412694875116817551677042398240765042098149299157833486255944863971092918936050840687418510602974929608233457379514995992235255045235854985291789059699555806765221237110773849001177161919307169566024236193257370230813659700302902943127810712014603585425472891410884696735560060243064598634905433943562360524940748934701577443065351352819291987781944683206936272436477530981761436494230469499597589820591527766484669364115481379962576795424276765573719021947665059458555939895911433732047584096148571723946660099020668357963750392128077927149730566691634061858893375986970983915351960403338163921526884355430300228325627652692857996292935686160823674836305192375399515459608209431665370073341627197009477471176412837652236422103775588515358866115511624296340171035135331220164158970345466097116960642400555822369306158876251888628525017086475851182669507914842727196295083131934520234497493825211692257730211891381408986119546622109927660945561797700742077272043926122335351895755398610622980556857525857243765535241935688262027352286174745197708768355277989530648613514649429720490595421417133650717321665434120150744818426662805261975391108395546347397957383207527354017600418842935433871432341883582536522542123127015319981935380256521170071702595270222666270634993489672144169035914913072187716653935322117122309915105071068893073280624951911053343516973617171981266807615323605754628620950909890780007398598077354736243721606310781598909400736561881396105141217597879437296886106272726489499797884670919245196409120938801285053828448845540214523089710902544723254488166258731615799752329292910324462193743734975868822312085942806123327133890550362057917567209295065661236573138796078073620461472075390955888850869689835783103126188539963963238827387263843727026236996884788247171135573643711551715668406593019822945334804348506783912829918671876445909806800918065544312887068631324343398382020187624533007500044308252618466445216803214007535999265595878166156272204738450269457885805146725515164805405355139371782213792356928725513434348224271744092060936238294483654849527806677813798514250598918815973687802929822369877074902523018039430224906113624684074183706239072016234285423209118671025288982722228827929940701276763979724147996744722782793984816594937549786232521818889793125775664842040159695401327142300447356344649174544868085853370887205582851002121736223065694480672800294860862216634058590620855722363094619906952179703460972153273892831136588391907725080221422201106421041078213944636404582989387994742479732079347938081902343764065540987067388806986347569662424332593152017588981215360226102697709403547096837930357112291728807720371222525057119800017892560908466095847807967623131388520883968649683191658219443544706847957684999161470604949009938589253695955396319002198031484001252232572333217644442184367861626841710371373632602576760426012856638755884850236939668431130986794064567289649248291879554808417343899778054937079229549705979841963688108916526048914184051817997684326362358967410434083311317339530068818480596546175929053765373242270539547045516363610219507489418028143633952431527882410121423232458608110527788845691908193465830043661357078663984917688262016014718636088946828557587324757080288657732787355754861897844277919571296291036603845714051347656840350705636717618661913076910149069410335841579699773644191486153240063241621305354563512727296498603396152862729107702921028847857164773357312613573536864032043909696346641604910783831571191598006878401123282099200022500074643873999672999392143670939046593253297357396360207418896871440739765065276119908768122996179065462555971948774392903275022114508346541442091872599941104320950266178861077162834749926732731861851186594508384365249829080448561054701938843660128374965107892817410875214293994019652652318797057601323238518058539385333907114633797832788076984196398106500537255570629527524966237837316684632513307058846380652045148039506064767159269826231709169200881494417563504421344473517404534628592587517529352602687725641913564766487422412472940580129812574794316384765198772952948335656212823335448862562687955012337989869482924899218045981992622763349092280958171062210082724240807170850852719913099256467041366715438549895529649940145645756671391765798940528115929414328069502485791174134332740916200559090226576420498531497909941932155703804548035732357445118483527836679327603768188278450305303051957723253702556366888586525028158431722290117593338239258802789699351085283472049212768504227776280557315696539290839836287182286063333772969039115197315215172898508036736092356333580602979365428787418752304408486520729567415195439600264972629940158700280679238534115602793559370134918300177449944033330586508683887242826784526117241405009247703569985652943493996323446801614586008344720255403298485679641221461643754714884819766127049612584407356236416905525391763689210102542865402307681124022480938216765939608635469649359536641633800279830105803088841661828013254265439392481787067047762573918604745975018962483145447332392216210274388967030426989893683728205330882054923896022535636628483754223114473519496971472620446923446434795313864977324290962843899248147843452536468211222628942786935762885719464659491341880201145041126875021711300828522215323109413906273994177167174216813939943604586934362551867147883900767530736640494131232768596648461482100759323613433859054717925509000848355170005436204685911477043682103529388619506439503893343260521558681752373657810212329004557480299468531590841289470931430282430593413470985586935603316105908521518360433834916388236613856693165983170340479125764815594776347925684767942890855721714931290974196077067866054847262370465631746149498195363245891083880831789365287430499813765019777630180089116815561819684914906715098226715414118637114559206185024343173858773480891957052202402895886883822060037334123675793384946312933679012058956314925639473788035017202730995580367475852775890060580717176747848720918893788781718336620874654418636933792364233448206347141839709195812768979239146450685997180346171254487009766043842804971255266555023834863428393293393124611405378032546970484998577678186800228750060679017084789877780884834731104660238623352361158500587783037381891141030093294542172685510070051587192845454806789528284446670742308347255970624006475324412348846939357409443972561188668170948559935796820319284563125660129981089886706419587905194360542524181564954439397830348855940003074499210953760089048904169957252756922179469944610569738221894157733831746161248724386250499942198504164748175693106355391787237965616341548305595502626710467668208539400758328025026269306014677397768926390391573456665421599309747361071682335517438456083210133624288852711629099549034192228097518696286801412916973924357616560417178436357483285310906786155643829664346713584181614900118408174835720228598816051595959430665014516534250708222914326331781062939797665157940993901867958627974174765014891066761396395655685242762274549892063142600961909301942524930088103187353910689729932523105569026641410078182129327144427334236298566298159569076505273332150693880205484158934209477598877584141268219831880264781890044964668849788874067330459233439811917402299456680194213919462578954490860159292660856205607912207647545054842510992095407879576432243883023610123608214512298121901748241382640313575938001469976727152758718419459740817642107146867380742711878785028154645687007222868082325595336936958246603123204268538432032933303454022908965969175692794690945147158354588078078205928625464973933647259207440770276919943273878905171625338544173206887032273151463038456089039014306658667218698099406108885031656959691431786977105705549512407304054385690725915610802213858735638934110228023586801858836632207100976842911785077318718316637839025786721785362192504253331350042865575157899813235826294454469568126756326594850865942974453518822833662328713510121761821600130310151684060833432996338243073123871507876673520738563360453590313044812458149432291229410169969670523788037304743840396391535035602033434963437820381327980927873368907488532128303925213901265921535400736955767303720456004310290084220889361100704219742339896185395197903827535189967801223404345661889508280309783634993820215474336000911389790671632496734391192342191407815248807258650987040572336233848021336999199932972947579350458829387894860279938726562610975583110645945498232889283787225947297906267886378241753666307157229764880727238791427530954606098818452468438919074470170769522444845542935829662550892955182208119953463654580764290895038173689783148431529920946615468099333855048071887819063384855895187950266177286799733548299028550431518122155308783934709620542759693548644010516461902991952099801248002923186142635705904148677682940308340394866158165350730714576002399258787838687222693693159253391865507748387574431505354746182737123061350005356823260504456541367022026055331372482202287534304070219552113520065511688466193489556584640842288224592462363757307684198472590104153627929839652312472026203070324948584700633326305787873365842560890586955819133733207185428358590758339815892609405803142795843886454934736604156855301815311955296046792351662480237101531009933684193910017325796145233667549479395041421982736151640616957667572832643076099279449968774840761419782927455404875619290631903721633583838590876742974420460295059902527637156549404368152540977217567512139560027634123905175425584310149871190808330831237910071930762149996582968263167760400261208593418211047313990338487373848420154851937908577577583770530437004556734691056073700608492338079049970163272304685660062212686362807330127283249912954021389467756990751053006483040676131525812626113221108358421398099136307702929962395519398378394688464957145558286346569922107624588629686372900440907770862463844021629599199754380710977452511278526078960082334402276102993446625140706126155193590555547414372715917150290406250033218608516499514909467608036606312844647244068975744097911337302203234545370696848991549662512502245946520243917757402461831378086807175075755447763819892978562093275547263589210629590851003927453237812698310133801522090803143003667071669286654972801457879167562940538320041335047065320562277242802560851340324220423385813980057428752538079804881230280747976556741659476723587230322485012930827831416479130631113478563776672318253032074914099164356781337335782248687420227930268786133319442077919343760956685447406473752257969243979332414150950553763453146893498642455759316933972002587505569154941387470677659070451169542114104826508198532170786977820227931760220205140031359594763016410706540659774973577031863777123710333865647686815445208477192327951421858348840030628461081624137155862952455809106887267960869874417352961297186520741339944844042919707047408868751302965297913572740839462985990278403950121509317336539326913145796062693037984791486530440368067058259310521785268503564064862068306158997483981929555088177430969183264251114348082055842680453770253404221737934687247470566527067558932411476626931207956795374639333119250320527299846027732086661431368339847644745273471176610296106863431929570813415239897930236039345238194501332091634547180432964324078371185940439355505133097507587675861665679578171335562820890113984199609322741200876082675120622676981819113620611223858405014453398772966715116459747860043391956355722793966459600220287290128225769488501061985268407356785667883397850705671329755689571515846562396490534275598211966198523464785245166867703385005967082366466703437962710573336771983842761044421542530409859259550299074982009092594690231953001653814424056663233884080009197399959637559404819431246618130769369803668396773387270404263144849599491038178582887178469291378615311445593786240932973020634758590612037635292799862457885303788676962377352700906468695438629010756679503605601137782236336837329544948261463627668233628746900782303040537194326507832064433760691291443193723846690470870541545241281270222785210176004807856102404537542841791128278980838107708454139067333759141762514982074488592753288538796740414826160624076993399721349650394052799139430820934210953020308936720370135767506951706951045344692634047193938513731374847386320184384300428301040004618284875418349469985288317333102969415569063079002642661410197687719507654533673931908279966910766866603601135347232417937847522345189645919597152033003515096089302766177473171819644376497973767112080400474430301208758864729235047319401261516622687019485115324740616140235048981741807685584379761658883394432538326149425020099116502112664504254773413115131152814433916443760781409959175119016747453565053493615868374826378112196609529833958724561753213091871113956129529240666709040137239960319526274912183909257685717923971748884720052636881712209375590388585310354042967219405369505131487713173499085688372217181625033625766022969060789272265169711486019884726295254027499717343977966001178944060042716012980959237783966648916866320636868699743221160307690417918852918135177332662825691173353319116620658864783367746533186988934571697818872761626536252693758955419860144995055520527891030160526542270889308268055069935599842480823763395361915489827226984669353455275281249810022513925251472003771299161931326339234451427021085188656547231321861176187223100082733251116984380729251099982989943118669826464464625027131231557874703815565922037245692710057499418330120750728655306102815487653528091714437803865948620787196608962569626737294755504306361565519614853990741931668153510192596256791534073206774549483083445300260172586426891864886424250342098194567629991067532476093273565788827539719010073450817376095228381832597943269002561727434053449583357511788911372575079701972799043658322161889801861709565874373131508840926862520671684435774165648643370018022248238985732165539766989685133182242252431007542848459585806418898598137883095685798717279985076102949997019711493395066297553170097795558075454586520602018944206487320703954277412088010020980080520535655291524494085559084799298148826243135799932484090753394308346240754564719613179299056896628654972498084981685461859053920921321055223835574703264178169521294695069305547797178909451396969509786565607686603299293643952613805563121691186533212764934053419725275241492526846250466430021482470594011512171445847443724471865115156960820283291827483250886343923968180190314864315635609699227062339075329565033218609449129736608764889901824049440022698246803795285177394091317223413413103109436525718799862823239613838620135268818816582819951903439307099561587607902298539599656554960188483945838292852888691896374547526560814587500640286553368097604822157280098119838573417896567077632916172093059029340429923143072266048545985892322657621713687204331663076393548947051963201197544348505192514293972576123272693740072514885683388607918172184846094309703332819639991154231868625805723384635481342303921776973674516097682734564450928587798559686721922972140355593146824370555494420349676409566679645068303302737606986685765371829670782978853277112679951676512718978020446847927652611997913747574766235478096607870739141082791721669442690848174159997692087999984456269376095816615619225197086775761609242477088898393296697902565638279165801212575766113771834991865157624107142329079296006754697935636931741306350670934205176377237740757832696291295725064392977108691340801578423175308644959363636122435737690899814709092467636333169525146069940720687740048385538341519732176277405694385440316670172933771827627060728029164449950049095100077781914270644529829304905407620385237895585940368512693276350773141431384534395484036981106422410127259553361173792751517166610254697157733632751005808093355829275632593373293657840275458137100404715917462280794814764526206150708351597683905348292578203440027896858588095774517784027247041357154310959875597796717887824478041791353116911569955012738409028707893663929439187375404771442448639923710321947357481965766014435983659330633084193249887700326028177519746285122698171051697386366268029378141293564302949814195950824336716263105668743103575797723274151571108803631128893111773475388187470949073441618128957911205636931956640412378055023456528289848154287326423713652509807450820861490342379908380695955858608870609927531693053950601304283626232951232904011714286707562590298281884746444967801031633899749663860168942942607289403682669266986423953340024362983755319844290645142335123343785268933161985985310063176397713565556344890966225613206022995673727221421009692102130506244429842271255239491487649606273989973401532987991886660759879341793709198555594738975217619061972450444081266161489156387156061463090383862904247803282099701906965049391738814773962320805453485450218695412500570606848335926626727366073639733136843970305158721368012621333905798409163332682777967909106207457205644630427227952979498537007350888342845279743761815313798200476956955154712191560387589021346314639921386792237262136324335550041072823722631118815460831857697540490108020755342203006091259196739379749827826763012849247952277743312689732608446648760937335941949251768076689421061891216121857135489475929891041066808820121013198806636085223248848658426754242516924253383595108183931439359313694077358428491929864029094077847125494495873656294168366798825774014616045555822643176966046819031934272239159005396012556156808577920311104738514859841056135110835995848751241887640656974528659260245270391140418057156269213441685634099991407350368241416985022111290421428292537551192330015082804405133172435899450892719372232989849403746766525862062484412297281893638513505389789871498336914346972634221291805365247817698634582884596545388534915952197719374861229584181153478933283400967977393983199217729306096608629350253081563792535475647454567003046784896820658851082732669199892427228470489382585938789232737550707251481788273415548804737982353680668239973539142994794578554171349470769539447652501001925939355283634917854993514772442858239032741489670516317566087421991057293899978339076958387496072568149232467892078578723459332884949239550506306105649901022379482929976507141018379203276446685120220012670738902042789590477747169680679874744955247440779842557502954521325352395775496399850939001984757776309268470430661959708819610706839748091974400504489458335083057085495594558358960572110885461164753710077208720234766523358162831120022594415376225050334294717706467744291372624205031837911561008752447941152420841653800659420495246132493085683551215666054980621186365147517772333302236062069571102158466298279313015029786687540452001517352250489814934865195697722028796047679407248828696607561825513834281431862542673331096977017860430682176266828150322379334519655609505553405853256274331746317506846929140272871333510715006939099878184120680238161396303148418546369396405037745880294420708008416840659904059813617586128881627391678354816852169453929724543728695252339684969865353835215936097180751241618665275057969095842137013956074393655949772861313221423096761010481705515407537402111871142464320043314082308657331708509086869083552714984616029220899668357719291697104665915094489718201001432389401883803567033532084655387670216307548020639324553889419984192104061234895686290720141691621514149911009951443743958912493777961607100668690417809531715490519756333829851454334439657311865652645353746037492993998797191192847091297328562930300694978710809455382096988214510767803973151874533100901041300846405747395893840382022018149970000968372353820865406981544649580159012275459535002171077764178804348388930342374404293000216805791037499744075902738176997657247604788242986984074016179343472991709861022010795415340092202291542446979243595913803452329407330941209532750472865497857796078332536940535541935368215547983778251357807760819832367884752467573784940367142162500541777650527490800218716535660780529635115112764776064566705307949270159422019966656971878745603836094467547684741950860315261370612965831436386090982910751651732333639520574659348435664880510752628210545472121690289333931066675031913260474211017433813101053669620870311555252831726895851222054055128305190519932025736888314471596708391081034062534401105178928853637129151625973638170784038868463825876374732487017807954828660580180225251411593470198304543020418059818124764634056080286663956451417646586810638472049774350484397526045150831788638575087780503034786104032446220134319721201183045916230372365285941553156139685477936203715491299358481580915994208325078287791955362415216556333534531179788363901874387984582313101380081951436464348726072012865596542674738283739602651924943342127355962336261573694147953058661520526067611184217747768360143453562042494241076807070514297947018517710800159452260105119873529885956331788308986139084555447349923180147757412268037083121250602948500075187158481652943809790040678668587888703696890859105805227108529383017802560523025842340210295752973196603416186074817014063902963789523235163053057397072186006278217458360499540403242699423656065564570598504554624332460742962445989283587028697966382200787305328780504686438247130021358588688170817886095626508322598941840048268204005158985630901017757762311164946401043359233425208293376314664571356395162236751275101663901480020653998994806300690512210451641439661443502410227977276905350834749262816728197283539796833919983310307542656215109474611628355357913600801688218480236095373939418331995292978974162533274842104659251343527657923344216178585746507562212880588046422775006009045947904325496895984092077614875906356608577461377262556445469928553423659554109420494064394295540329356307297013905782535999563647850304215827750775006536304392521599884403152948268783422865800421001704428939879368091107234337260696845479024242316966979615909201148966262763471178087675580781911129320275702968107375536867351892269098166204026329141436739896689588971328852381544502910848890148513636361689116322526124011188831780118033574701228205635314829443258412568619595358215689878296194352693427740332584916172391567527759652624025488132645457255530234540517362149851169957430173873225859741082681755533101317525535978463985376549775701236166912818119173383462086323381995690128409402654958872141662595704299035675977241545380001843980301051884625823613617379093799924179906590249670324073182879377142739540935394040059508922805092509692823175425428710576592100736399392556333057509160550945726286424799601554477250238510459857413467552133533729637943463104709062130500406690048548691909752647981146994674611423057164095378315938145290819931928105731287855703953699414890219292383836285092992540269907662794289630023081469467305101600230166230068678318400403776890543094859418078351020530717265720305496991537102155742093054086169165344665065742665320666997619760153586553903660316937670607832450661081333603941181365681951405211341090719297940074559589620572561407171546610073018861403488847644464411972665110766721169301886933158773208232250242081261928413713968564297974785103828031534810702006984252447624176224973737347705346944152528570476233984577471689811117121205617647727865469199494815251782518285267206054534982831492968773533737061945570248474721453266502302945826334722657005471533605001262689609732447410777159424724794916981235657410815024571887399828322684673370965909474676147659674725325857056872944589417517988668075333101074491807180674621615136964233328029153661068252776854665706595431415992394142357926154159129640629522909444094445055012436415352145972833699037335466313780884431995346298349386202365958352377618800992816065250835905748915530204799913293424120922669210942065429667411227393472585770680080673298871905017025271986707961156165130252134189981318308602945817409528716184691560651816695774876937930461729620736609514491658646930340041286636925889440346436032277538571606188832874498869678387470439582128453298944428753571370880869356833868923286070075248311071429065513625883979382886417014959415677773690058000070713223910758814553752833868528921422888198726316751514683412048825345466169923584806600837367465192699414536575293137777904757012386833053222758518651238213654559498997410413690540601536861304368746030756684907144612731200201263100352866904803530891146023922109471934514347779881271541690123155830050366096959459693737426172290069821563419583212485524777324579307998162111095144387545377462554532121836923218834162516891928738650074437176759152624230124613099518260379160163858268557556555436639464616319070441604776358232671711147847338677926736922065794744965594598600942048803433334820100588759009545726971153879856081671190748771541950386836377082625063962104089191047364143106671144772921931835762783200124841185729548505984629106757606422048625302354303741391099745005553688796546528332803551605644026175932715762936031365333268905797909626089897597098987711785357888349053124812044886842822053546678702128506416317573765367070991028106094112812676233244407917984085209359768406729727245523769631879870486343219165954139054450436540120122332752776883109326242062380433028381394129779982289156562587287432356191087253597522988111154099321425379830666776493434312549337104284210164387502776301552212367015080922944452242661188856132248262136571897766044882334101201449193840725218838589623096306817055613338510048726203339942146542203925590468727107297443704059792951692737190375271012264024419319099423985842756756023144949808530044774886256882296285684739039637377616813126072498304511964513049182265707176930704454595009841675996710972745701024603110396539651981498567219028750618151474232854493977003880729980237360678531169761966306021273654069027830004451204146776897517563737231515219696325713084025894685997304047969032058600287229341490294270704965776730168578807565753331806377446833664435556660848195828217200843890501199921567577205763990718008751354372753324961386109402509150380443010723761077183346703383657790451444115967156966600425111094213167700100866437127836776740119251660786091548236550659135867044881083949100990524093587806673476638154337178863953839497305800196457110202664026374162571013319886545141841579747569630701321700285981545259711698791020484543726149076650277925339536697065815069820799940266367938734942576038963522304167341235337529763938677080724979926561716109776703710356556336520255463104180992922371701055244176596662482874455023142056435070731412940567518869933406677658842189485494785005735208600591398768433659942903006480162210275580779871540982363289920841916689716435129058678635456582690455324351702427327219997499824862877971744381992076661340836701431962974641046648909404506439116318111737467132888520733891964671651480317147674629569841318161319511954555561981157808682623858506618001023354570652741578026705656760257066464108432762218062083574402293050438990259006308385031138388250906791485658358863058810694480144693203047176248484680447841471817209817631000116586326268625552084591464214226974485839229246446900988387436756908112801559218668865701937150124075832447915812839283544169197622663701065842163725114002100958688894686728500436436005598243658535560420807805954625916882765307605005533460306270547492529711573619502067910782123125841899878334861909995476561160626858728202383924415044127218628002765388824551013359055215756790329899876877823574809673318110162796119304867936183523092385477442809654966762070016321829112077990137059683387023538689511389235199866400880935668411746963637868853069898042057409695147111741250141928990042823861752385195847506610824386802318925836643555886156162958903630259302216834945873419646139947524778151295377695843032445333062625927125012834880098037618080891921645522234853326050913780024815464060900398267501952851314590091406071019496100172952144265259291109363381371455168801944642560539941371526666572022558747519509359182135310124557003606421654257964915244858041928311047488246727356032413658286503430819312425297663389681230864159818152645378150556516565905077171179165824883987908270667414425498040435152391688991170693574524892592453964618346142961849370555770840666105356434201474955201006759896636748226497992773772693252160146089410291151779309189144428214166069168974927048754955082382217057862358193526120580041207299726759339319885721144745734468456903663873166671937944607674360537839884054092697938958811563800696190994289399384330806068085730135486346334345891390808788497346400323504176240341832270227199651467334291570505846317075204527019682091730179002988727505732299208898832210723934368416541537701654326186727300571471337141066674790137322775034526557229785101831679165956213395453091634317978222746195736603557837593746126475801206815772020724361077261925488155748002736447098552721508559443899435980312327780891746182277903542781636814988952048510310067559266564078737802943826962427289654694754857627657814113387757502471629495304916042146826815869892554121497311610278494036387186924017327400774105918431295922050049226612376663182373168080062299487394301857526829739970448903608530189552765802206740651383782130265399474096808514825293264960541051241183744070163843661026866521602200878501077835961820135972161876652939583655538054385556684551070101058110772794863246447804488978346574769110104279994831993331702294211246981260647608835095203825058775822165285269313310506180185235690105017301270361988111754171385680901465144081138626156009242799874739680385085366607831677686813258039779466383286192526556003877285999447639233228320302877586620628340882214260902454018562321900538962307456978169181997511732035999984918765779112482102029538068604663287675684706953759676456284312235734428508302014695060290013010404271605415525232418612639570595173553908062937100500355359825045542081529895829773255682513496570218810127361170650485345834699672934992291206787654477102899995274037249489795865067020391579669552236980568076849571579295438670170815749032365000727086118870806803657913526438693238472608715085073613877362075859671892107928437861528791893664320617030938222508389788119799590497239529820555856459849301983476853724222934330097504759028324331152766862029487748942774717562376904149054365026950046258710835662982871219273340926838012996540289985875464098738009175908203471261872291920135077230184891615691675589611653981334649543973838527684005669961818171815753210137040857099645177250164629905587873102186859207216023978125862926725675648170573083440946735174199386051676491441250264516177337231509617485407128368824523072598119733715633910448581539265005366911216891721230146474744490298511458293961164408498823172678050430596586022110139446124755870383035539691368831456872266560081210742503171222466739965008624633810118150629219777566305650885538840555295070549085332685990619740092379602877804318326841690064024586820892266407589625363006498969429266341516411116225074709353403880945381379353557638211039988670848642545493081583220046138308527373847669738237356806356096106729659192767895391310383901655760003071760764875303233379298156748791889482312042952034050486378063233639063361200698718185587400262019433930064106602848198337043016051937770048190845117160058588772926571658345406169448368315425926722716104732151462578039142964724726442896860365475507379078112237831004208940622801919371094929472124975126397138639843785467295054269978194457651422184921020491898376632276431420228869009568643784963926243062588825883346536722036177356887937912684731702955359018005207855041383730020105654296286752009752792330032458908668226504042610542496629908562178704389216279502589097932538009578671526876565452463081514174227747745633428274519788482045120961063455560117162454926914468492933127832574281786200025960655497919103029555624790872714994320875025305045730219255247630070994080135570448618528354913405120339215414115763952068628627432591028918830493616628855011778575731584894440841774403920283727757373323203844911197917954817424154512764181177971102481279623165165943519101844755799521926698214497495995053744477895785498842117399939877079851634883167115004112620190753246408402627642626344506788958193813941872411748260829742377511036766854875232259042789567747189858254508762145814776869368195567586733890964931152243974583161332719245746619392938183352265470613019925038473065263861671620820612943968089277696459050349349268973534071107381967059536884012833785343781329485472567179398486389530943540615361965192190257930315622447831870688115966074998193429013203403012642763738292380531874423650095367981813695493841008487061943083637181556251528174725767536587971740183448543511958746350022840290527125400114442480320110138971507901784819543130071882353083910689973719123255767506192081657183181621779217799540597985355908108285611711295556305906572217995671926462604824194498364414313335259730195640455361822561887659423124944419759424335600572156807655165764216624433014425068139419902639641706278962171766922557091321392708859862109757585278980752016032969559936439684789803892933121506192982066600455205688534329699853541118096224166438542888691075499142980691784233083193598884195400094495763747447530189433784575984295251361002557898132767642864468525296971922265736263160091863173675387694363181736230764688391168883590017205981885010076428196310395361554856658589472733032994506025227728726824841277593867867720750120204169829289224938975362438232632870450870472752741737082028079685579232508272711787299279738236313089309363452023207985188073736128451718383357340425907261100323648721309553906209908624703312575034587570417782721005747165631858075248463456405273459989066243801215443106333087479063994523757025411496324912614760645839397749251145142632657575170880097050783877755724993402244973304871609343678234006585447913960508763335381590037234793311609368332426591264063556334980486305133907955362608423831721516396204250460766453485341758527622345046140458217465479519814199546831332185858757009734868908702520022352512619521631323662153273216355511923504739593504571451970219666623645210600610616207658618213838011947925613427132252929315513606611403912825809076840251875678033349585859785978970084861674097203012678559043869602302391825614958017468689455591431878975216762327848638161984163595912565992258481265820746343826213854793376333383425847627040245975930482822783104965256104223422859332062531886805089439070882161833713502043489679014910263248462805740778675389248622112405769622248538034710815777629639978753977990769702277289043856772002866235032956575298432135530301240140910722876063470315745805121337934795317350602471578546475187970992227723814081944219367877014282151485339115646602680538194445481710211529388093478593472407048638538336514522935275029842945274872753553484201344306412517714850471851312525150127630629424326127401801579387452702187386955365964193948871380830347101261442415799926488708861596371782923559312644287036890653098107596091632945737926965841109206801547311197954104938020234120242645924625088902590633930436158777989257460256835355071434223201762030693478449852012269895873019328346797187021878678563228447884405529587630625473839918973709173679160907331056527926463597992194241494235386360813193614260720987297671467696845321169124452579213858765261342340533833896050374202162222328957112228124787992252603233495976966915951421425227800911294160423378746853278118650592358623707115971153071852967462416385781467799457037185180108171426591549846800447521152023008247402416028016001552057942527156699904222335039320433275075651351089448912783893011149622089944864153847179970532106900517627207253081770546952344719038700052562242568311389086284061323762654173709255550979075444981094312200775895344151629043867077488238518693794153106998870956137796471600063168922194148461184651161076977282823958984234305838068835160231532196612694690179787898760760462874462377500355005707992931007246756354483474281887119628857568615053480918158334423664645520108181144876855271237957509585063795700340399447559028710165472879609355346998065626634432292754827237040444514082132429403114691495239396366894694915106828005808543425982347075188710406571752900407658898333252092352735280911803277974559873595615853160746621938622712204750852683142733473198412783962437137710868629930785964996826164106298584573892096207407068918516095261008141518601473509785162260394077895854496614045889886968541901063793405859237978647998238685450384738749689802258544951376186905808813808576485773005282636790721969154146009354671431674513206705047237829444732892996506844124101197483262618121715845556246281087916168372356376871984439925102102437342080499019796088765385020466488540654396275800150270212380479208067198254553800824262716167202676639791146701313714664764725264775878971194978833854803068338878421446581663229529201055786907910840705093227541374924866617110149234900453371455614563167775220142078045359862619151277723543599157072687755050035955820864276414218555628191947896405125218900922501290954643365699814463390915135474238184123735918415663193905040816001268348621992283822055834922919830567576940399980352734219981367154983651626830777588105501754678421071848235204187225828927211292057381248304687726675247456277750233755687894112890745958578123251208154485163053468201229366975021979922288135739009392204687688994488723785059247700813014880336895104596261183013158548535011245171986048566629617348636596829096398573465892110847779354546024337914611878473396560917454428667301655170535296505723070593602616167394402361887852326737791003674647725156495213124560476547080120384515063943692141226310101294172833240507265061671646878963234694139983400282517480806456479532030686480736667709603105967166699756449804746010734561957267480652015353607681475902266931623844275623015418353393773451095335062986830288570900355414844787635221318695039338836332802417532641537122530355181808195623561645148059509840705735405797468029388937787898572371327330097828715124349594170913558648370038357497322175571335287021235531858013244456970901248555467374040018232598256958147965562758581301938358977843692249416130481534327006323473887589571663522856167456033294326643240027324776104532925442167840437616326226282606121737182872853444405381959766925719275187547651967367363470231900764748751776842630599467893094126185453325232100500336529398234042624803982867637589622309307353394812211699448871486232452630464841176688845498169811349531692467008754179808633011304120264530592169555086746287631974532199040088419423176614238545945208352305019402706424679049358262539382019698109217709376986134393823823000510792201798763140054277295595477544820058244736302803871424540585061244627605640841835701170675058414313622414558926734248579455295901841564715882657192124385980652366446427130880704006833169451151219019564575794162680206835503738381212726814154205304020079944055756816428325227896921578801242826458303868619562420634492588080063407999587617791170487829107710052650148382547520957365926206387583562228078398319337946673278633913115339449499734264081261546697844034974739770788755344858176337663712623708987467624002900324533959448487190654502193699487272296887695351520075648057665089806857688689952911393806379817007588537253666379943854459539531284456916321925083768185557847689302350530136020165671066926746703754421054921570136188957531801463166919430793523691779842685218926637044746041509717086825550298191773544222359637313516342361829043280276581053263256707234257210702448983735587318465035672387866059747129930589305783777714710060631088008842352276670186749598835149498214280857974994117380325065417560151041631529644916660927637315874186218455242132834737129893741054863581407831222962323168828385855886629781534575876996184061000548756190923625560510474845282475706207041195737187915787604270636953270383105317782168980397305774622911434702608891997880365984526770613712314020118081958448046826522322496304481028082681700946596185082545955032958639060558339110162773040824178200471094494618161037357854490603897810465066119984365609787126085770297430071427221382001050762996771973963827693665149657375590036025651128917767456488839670645247353106542994718951723182193779313314437106922526857249301930293232468140244405374606494480248165941988566787341100914776738549419210374359317022891048196988815112922590545608835875464433351354198766171778636315011925685087532602495299583935674541867737810606407637624227037412159652312779640138263919718690604157409116365755511943706283615575934808988523350873419855127754975588629598601706673500144812060177298953167852279222042874854378808333558391429008853842154211359602736264126334862453152714818379860300583319223230543606087967589250656233023828463573176785267891659184729354325079043330808393201630180399674358603673313851200164192898026766945296819761395856576786534086224386929748683439626652036141902123436526093851790328483454544083779876244097792205746696475974691452506200877393527966626688559807644106824883594536387897211180940376141315653923631238221522744835146831426145711899755438809789207349936649803514495240385340711603148392450031822131985289248664096190636750005874830825300709859180898342804282269741707615855689605060634561132120281762764303348059340931092234682531047052844190380059010178613044175566455445570344977235208182918299361126961030243969182709968323938654142880737530322840773407354297837282553704434755751768537519409343364223479702312336961710436106639552299573226210676103227726970064236139262577889031737356957851510616500018628611811217974588960082378694964620787038874000515515288095550045752482811477308793816694104322030080618235768589510348534735683681466563285646058689493905125706073014855219192944017100201384493665528902814494591555469004649242300653840860479513848506161175863105555575263745655465449525917596401394718630870016861216123218910737667883539585247627465759519090769997406326925817653935462292570329788308344430334708315835363121808308247380920334961240045021000145183271736070427343793673954547166858723602796864811351256218327368621049931669916704527301298179492782013395957284468443531974772198004698937521641867992349508577964598607249436400775283003142871928895378089161345531062488826639210809919840081242034479362304014153024852093607575323019888578670952109460494364662057693631581155736981421522438468134429338662687625875334367990721995837441960551642402655076215883348259106050940239134013168702003527361990441220750668557078390159338758984074823664623869603226017071237045283575550347823609520812883520166612623537585963041480690329946268974804710074657845335671803908020652642496554560228742708996890226096620058278085503081221237086448409434650449139403452374297912008462006927430187882263776539836789933431412239378160868618291591484186053610859979040037364615966665092700643860702881496548072343509595048685408924239623831133244295770815586389138568951555603672162264498309225409284121909575813583896329766962462016063698684413607559243635297494098545824814546312937246920363652058654218233546682127855200130481899434556064270629341185083193530947327691560216349775127631618811433301339111750836962590664920726143163297491267752660476796167227123159938198831215523780601216149954255224869620405026151053922456583622613684033828795923701543414687266153307706919983886770586781186067275841376791986927759930877964943271985321310566864752927803378120270058739136214186701269886554060921545047642864623267809972683435623249008727510722830196714586420785738723675797238699030947734755154589440184231209196713744463975102921644293568907619233740630075846316400607094322758986580990909252220486369762719943675168787374319381007292910730001035281674496299954609182475190604760394757514832717769367606679581606470121019945135389403698934091121761404692957082378728772836362560783945491092697501405847273243794744639724346119095561499263812160695781776556660562148433522572542127348312783615617685314425419853341039049121861876603377442875693402085616152547969949747846709507376662342314077201936676297428427325925352807373951005817053818913593901952704585711806806703036932667359778814651217423651464707045646503148718425193093910514868505052227119410402405424194420862436655704416670433077067880458960036542856015346539095494790472851195328763931475118088256200683147330816064451367347871065848396969574271427776504465848826986951349692499091965954383491132547578975326804700696768577878169625648746968854383800979765097772600336643594674628017466417914457701886818958413620398738512013452541061149599886551729584071415274170011992168073000661227911102448217978168754484781145860409869907937320898365046438196456227013615805472686467444913928013055550757209898156890213379789736092275641256723973412983346143556479051559201320263076859901724192895885888616623898620490648641305599341811601133800875309302906150026300852228464129307671419962814122081089121051544325568579687925398261556421750418681037981857265986904530111856008349674620691814884842564687353427279551613808989336295390693641661176519078040522438788868911788404235220858758731541563032873573892944467671649260657441017615506221934479106912824921897703187105577683620439807397160264922442170783990883630809765510807076816523429052208045149167145689320090435006935076701227864486348001318544438803130907995830077874470583061301216660576514204975350535187926320291743914880649645426608044400421843765728998741901476055642399351161248415367727199851522581809407868100369463041247209619718533206844707131264726341336315107794752719987798771442120280539737561161793032310320305618374925810851394282928752500316463383222294726794159329641036306627936156150430444763272727275261451124073322776236108537411641488821151939807059758491263238538903945375009518319189631490586587055501604333812271923035746251344359811268927552485012934217578388226733458407908162676183056242134895757611376547568286765287703530155842333639101269932062693095012671930267639354321288222637841416071402779611540971336720771153006216616381738752450186613962184746087864400888763148152775058714475971711199875268409625371389499327659272528680271037049827910795349942058852724194920448611886959176749345061479207080737358198571465418417014489615887907512430311079979186432902086298449246569271965428657908927648752003614012406807713797194972180540320921577116983184876176677050302232338551427604101338143791880214421329677380270320454846920913412307842247952392057335080896178128573866913195278397668509172254780757641599305823055555439297116428503780808365279984288631156370255226282223448065101839697330919545060557689725804480135680979379749286580931768364327022731630966849800795071263319663358482041502503965460414638989515048307085336190419013589282810610313716050413386322777176476929739154844612000616176573997549511420483157351805136612104449504963746552372433651704099101285447968866676819970927632850741036067418199096769596397058343889640019720874273308490139551440233178404012070043688838375699157218942636984953193010180733512139024185820586574029831113967783523455975541379894842289197071592081611595858260670791936418568027645022414184886190258217588771642953269787838921809420865962859193583070019532904135040640808764072016438587303785412777612647373729726054944034758743147328523941493099591202506764158038301161575329760049522261052775397945874639185077306514472963969449791094090271027973457003362999496071913060214346177849523129553213616867813726005868709607497231344042129072269448565861581760569271518926765138801693011168334932147941672033765553816277833351133792739245514362667492505743127407469200332080011502432600531870694250016653650674189300588267775927026114609514323152593766181920155744150363426142404120746932295177970832695893232871404071392367401402888760131328835066966485963184658303275672903251132339705311417531518473684148831065743705170947271799564703076453700228111217353921124690698781187431135601885867618153013055063746307503533134439336701443933779976279283327710366368409611108537847738930405709175655702320748796295844790340377807966009044720834592165098857162332988725219997410485306966617506526351145111569839213045621819853807743235575701373396539458226922658190000223303923806607120793256732799596485040674529727174615123232822021174105079265355525691802119321343974455103633692840252168676378771920105650778320379045920360715016699088851682057010947195513165239162506368560272213132482743578270747289161992269031573380314511485174946119629648739344163675871125686218724507968038023805498331427986490463815417576519217819367347219416119447347547576801923453601548553850484566728145384969865762930280579576532274509718784873452100483134029902641712290282472936917568734471449660020784599743903715579534368567843579865103668164666537142829093917807154676301087979058101093097334996446700809627195677258090857332777710952782799061061416711429091132227069803179907472590893989658288883095304009596581239130676453324792394640616687765278073686532427030224811757340278966304825027589927621521407639991352352056384098027418451979907261793971858628769866554840616444304880715450776188906442222102168779385923145790126656827260345092564073584989577242465218268196340383061027144213258391047665648321043910897841755356833297970624983292266280879509766072421251712339042289107497165066806647166529703857863942161603051748768345847349738537272088905827881693913815168162127313603924226118937694804010469579013929991053791089178530909075112093068792082812424494954475008936188908349702152448125373615906887999192451341185221231986741735888293215711993374824007576243652454562917891048736794093873833866152241813454889145975302477268080842071596927470778788025289646880523582490884551658960512099798182884113400951841786070054378149692970561162553624833571069871445464089888518364336538492348259306622361568853748124338976093943966651606827976492823100742009181755657489841329749809255117276443264296153175641401252718574822244936364059653302558527282234302767456868298389662922737410331007720730663579048676028089014357524567372578824067135891414517083331943449374651986727437398099671071845331953377893641669718087158014978451419752023195616133710295298638532113382513101364797368425954814774077925702489103883947239975318479063564123616374283600191871473072235146497242516572581414157809849111305878579426324044672898860129190685561262931727199893469038975959221341291093609947486488413836311489223359150247273469631162265398858462095022924283823838183793992679025583828522265455019392378135834735998057744540447094494944733398251286734447595603943475164157904541467450264387842921006763114883965014009752216472972836670452721186571702090482966947516855847882282307223910063835797227711236306400622106923633489175680570015037007698119607520019841135030701539307111327153035387768432195699442477857818268556565867378838368019375474322810668506577439303677248372132424618818329192673957656341216833636014234971399784548297532222466072772744702451549263555840877591006146664610168992293823030764700797616066778349532173769560948428953516914519747047667134698330017402341119766729734225059288889903786503032596214341988240868068449495253492291587808986301924296487116059972278171804247308872722964425190335447687460153410881938348340636569298468860133917398666968922676490734006152882630260481023106525394771819475218767861129030741759802543888143034940969097913376319725527639105970753211401110162981105347419994229538669471461609555461575855391698946924206183161492065768363567846990815876476990926196193953108892615086216995159385462082631586797415002615187872493399572452864974382824696884176057200138440047091923002526525105308853393696488080036872750089206114224788117448703551855861796471680760263633525700414245060396383027202448022275246371678269077645720854906303795367101982036868910291915537103191496673705573249945931355588775243536539270031448681752844036963769695100031485096648538112933179514391869220157455938823943698755130476808479654763424942868566397610956508165206867297360623623318877436409253355372728256011825514413386411392293406049757767053219424764022682041670565341195469234341752314541270075615297657943223542764572076171957269632651588466539177992409010796359145638095388529263694501100024477475603226086836113829902527939401357684620115806995095549473106651959611360132945436592314297692091667386847026860228219052634420275478855954547729808985360676114490259983158882706236782961066603159337160478478188461513018808954164313027502383997453238183649651556089369995302197717881798555415003881918572165943002833095910811552857716121079606036508621420135634558113898122194132255668450927244501134733050936740063310693871946465442226798926161757200619390601591582681634987004869563029543341520871458252289476603850646001666001398171920710762002454069665104978771704428467263960812684310726481108279065675305564124588276599681879078632761656030069247923221269203552468523626741200144934001980355747786493096053991177674076932585516975617190891618349425156665775015642379866954030521778390776361307662117175412773166377969653940401779180797578478713504075411550031705675308504057810135363140384007668504913968164843660290877935001546679339217967721475343874489675420053332374658075463073714007705474271475500945518500222686395023139751086971182526704517908042918505620330719404414560688401121506575374984528979256137274602688000609070162025089709233658981477271178956602616247222646470160040188606773735846283751052877726896818189705609696186199829707484163442757438290703337506797379450107487829202753637522957705690726336344472792456784218529465436204723398779062602783709189900867111588766343485972428767753566608373709988288134467407704064475483497281661433195602331818849905969669170113326702392099829449498782944994544247512870841212573509320843384314135750755882219216634075233646718393202178885948816332487128604142620505013675983395037563228042839411670966073535956134031180693721443023612761862972593064054308938703956463176324761313942935117585725873532320383213918822560019594638312281327134181470501978038949884951749657835931175098795254524363383278048034288673018383006344640073212939911988820200561339210521819791238508761962125355991944032764692019919044301374163350510158506894690957497297594323798052983886191893149716264822533289912779086487391745154686623819159955423608105611108610811232646948444263302041839183363107179395114460482109370013890273673637948098345352191586323896297427468006918689406101460209232329597794481641286733881904232664260376668877007564482807785877185055279925297647330123595614576296323491080172866668035407918040805714007494958001167540221621953646624041260586576439699581083611436941363983874956440156942685755305563334395375298492053410900040320574029893995101672123529196040046753168126631834931909238851971253807156612438225945823072987916699751186990046586601635490374446601903054398100252985896130450327909131828808912344666753667302517727994639674115286130924347865873775797769666697383785939248657079226315964723736656378571002871767211525922848136764128169446086821695495944747814334338478359815335455471972024327896667034701575063192597473144145624946390519688807411505424680646676451273342139961941285271802290794695077513529443262857490299241747112741168751265232722356505497722385738060736446341080099041771032284900592065629522674585101296655389757223937313921768467155870628311667235581740899798495436785109648332697466827788487558310932450594317492001454283810891199383554386469513155792510772592703238846387445470077890958623642867933182661351365347560412200457075922854624003364667432414495852690703552672359188931230808763686351446777703805825642963538621609450263470413009037746699945646985551274709667642148667760338401345300966499875630403399065610332946307102628269743691523535642980033790574891134586672793684130376339179007242708250723612215678906820415300104347352975837179704148558208821414111752025801308156224755793543451772395153829154577575582185676477397162509559994032911491929486917188939329649390680424017654502691233791453110861721729418437109568154774306465699992460353970524445558243184348037488394511746138407509617261619953406330423550202404410770680142268632112595544418840833468124388311856721073143592579447571349375738297939740462976300548967035865509214890298802814368001899770193993097339632756019922845402212468744809368507592334603023275549633940898153596336309525659662447151459493168143235068072167749411213598811110900583060952552546209018935055366841105864064370466542249435589525847689606078442183160011523553174758536786196289576739638042273275905537168919232552781763124065382626562139059096016270595644277279102599983651770150878182310557173459295842199528930153504234122598097680813991894787667170942814666862232792874949545801076738503966791215273104557111314031484508037356562187516468683575268125459724005888445936841768739845823015233826635476783314045899798942381048409457230411134832485533838831200493891681338952227506639656738116630920573999145252128164813520446727610270447653018913172753993048838880618366188694696118231411221007663246524616040075337689270953257996401453066896257718174789948530902096508978681021070041909056970306671109232578747659414023899792048381879188108475243719141916245249268667470896364810187718996868767671097386782648051301468048390188834441181797152991833946208051020975154175350726555299170449489950504333502365974813183801225442047170702845676295268937896008345554846631725115521295319999387085030963225872300725890295464035535955996438299464024677303902272335228425844610843811958940718845783525614297003666617944737509099521357364695403430801458822335187191121353489247846929983820509052073853659935450002484071214491357204402757136823130283832023903271569004194779060516686825473750877794444209229260896917373940204767260990590784846136169788933803461032866895746605925390823781604185958884486214836769619702122411078814775955088009669922326203395189738782145630339507305126918805162764020810251882594496204515315558374334896739425557520727489632520437056548517262120018739725686312874571220353622620235369987947219198480669676169189954412803067383748685897139010920863032515791354029239280059048872652882858847932877207101414402376507760375655071830290887005658109647862231632561405522307270525475664433919901986290283974300550475633051579107702751549605011139195356718950579616046047411000170674600256767097005812895905248298147666280975856258255554949078856277517561853209127238022286090996990801133734065729864686229500069778171039657097367428738721555028321100818684949061645287374339015443894550515215296482346323301930417745827396182484853211921993082933738038571900889801036839780514000298703141825552269338231685560248894193262819528407112915561293397101794694295225296905661092669358689509162231875527766563709384592367045897266238698978135012963225044637708669908819383549974980995052193253212888178335679104055984317879934586249222808362083918046019390895079777500299463766048164946564050272687412850906866690663454415155322898677681334517808889630486341009559042841956756479843762392087886355207275369776724478649865556454771736882121412772349544228718752804869678901307974291808966694385816514125089717553597177437488198163203626541505381955604975926094618710570438606192919263836530179833931610262865592720985502938420852087109832136387635286793513840792032254482795626908942123260648896853660016072082157907678369314724665238817369230809078878910690581741888765379380610298393378433148615105486927182995669611054604907685131686634745405177447154500425981447577574444028989756717034118189542008225922946103720448601161318171442235846594078002844054905800721345617934987359542171409270322284596779542157185494418675680624990511396197551517601117096996769987075374209813435194446173529655208352695717255033147260252860017915097985969207156214932480905665311554770223964102054855225140535229968647616039361304754960874485553390534240916577779766206511116680202256191813843506932975474155774619596619206309366853110396814083543809271311247274961902091806727148007382205551093822690674236440881222063073745434419786421982863532884009003527587733824752640032562035206499412409114150529679102385796882835669651428800201768161976773752204222944087038333570833652323911574877680728378735283591247660579441908891110855786361765433086006281354179055226495799943962305196015752129974883178228338296374155585414192158064836307671555351604582690336895499603056105914421186012629584255072741079375691659581825086752332635858753357318325132617937796727328955497976463120043403758831624831954885723947453773142651498221403051156807711776718757189337309943325012943068140228105554213957603460089074455381118996084765568146327901705388214872465461531288374386339009189091763631636478200846219815463564487110125955654869587336741905450022374178584584385474025123108926863480500153188944377076509082104165724303670415182606200058952701968784516491471380225787194243593675824984872286856665282552799340561007645258016296236740071821535646940371146616854729272997813262022352986068640769639993659122017954561556626956104967850342753413200275735192913917719564908323778703298445911438659782355148187776717979180904042182188190405755749205028765960294549527719958086154925812666933595611824537643376429848616873110047224629644273780059650448436967767093040752485064575951781335952808130659472931694135000789982433710518232476207680285897774130771460858957435696117382672294976183088760142078361476888397667758237621801494369338787398053792167478045224121525531073320929731122778307958248065219597882637288718250670307246109206241230113466999557493258373082509767691904842970215608203281894012844745879197952090646388242595727782698331367368057742741387221352625496797430169251549242695839717953180015035370537093482787995624135588377823234226574787539875215709031132742518098318069388450802444831134194004749684539186674266711762325652053438388880925744902352672305399360175133937923527979913313438242270831098050431174405598002194533195659534974987746800214239110523240383359461031014937662912730999299881352939396677983774523578994612604876024906637256828179969394100304208581178395414135168017902596974854018635993652684769115469320729186760562064554336934696041489314692998262486486287370426524379738610681725238179347477270649079706625932609403845573760160589938453192820766558798881160817682937796057529981581006758634356892484498741799969709926292435008909917570515924192495013247290320400403079878697623707695848959272988152562943164054415312064054550518438015376031950593466807467131627362530316698481742346754113316044806804302575803407457435879333629670520259791763851887354750352142269521244370894319067201288456375838163048596877159932823546932590524285641480143183686179759326154090124573729671194321871417647075200023329162915388919658561189620685386830408263752019573914629677126570120155609331261494440803077320744991403983987361577911282013083250666127532789029869757036830572665480862944797796541006938295413046824582027281194602149511352198126826100626782230942962491740751630014496359807147641522446424456847953857646150788766441648754038400084595704398722307607083176021116825866730469517922307085644302835033576043103996182751335741072767812462259530038022426997323648714071222389468167465031062268890064493465893381840886885357123312405719635392644039887457778310800234765045116594772527292257052683250432464846496153484369819904414437128879953975519193243709475308147514875677475357145027422952776446322840133848727992808995485697497695868380083121808378443434851656177326784540256309625076757607244256847461758875733446625122641713575479621746881591148565918280306176260549558806971182168799411077309437624627794590717882478493198894124934738930564422489621143060381698461547339349006627733186430571696281257036816121760182898314477201223473237612640714083947929141668019053997033010684909914609013249820380652663423175842158101152705616002097649689813698418420378720464599124567438370665313271303996834282876098572679897142888732441969984564608302046153111417267199664763819571028058393953717153635817593335924253110171362273699976741553612400158448251660333052450343824053043457687117511588193671910100403646030729170659030489463980685764698749561622716506356385533700212483749416359533781492078017869646247033535193379225400560817324869472098052101222047117247779639761842448370040274422987345913666752877937620869075845139161899866324815314051426237965185737394703659914921095088561297485874102120985850873556042855450255847423080192617920143883105333053028449060498954109610828914140102205993582425013081240799561981842642573513274560306782285951653025553408905320140443193884418457432019678831525731707188867205806651409096118603610916208655455275261813962749753522328200905089182126330784024054223236298070999889339548503885535879795821964589749645134609865144672822458856877829710031927819888564961958289169880934195501551339564747574488903293908920281566229060588713352284366637027236563257091783831574858698217294305140441096410445913854332068780864345272416684800863908869880129712833375959688815682220438638201428958521653086963277128916045379884612729032489932065042966820203325066113898531163034789185304245412436314283007413717098716426710601575699894605084766399909222835108448994500240000741901039454790317190501629121904286494050595190045117976074430391853517737926043912847045770939825093657114778361171014846400628173515853971565182537722349471157208715435234381658690892950524338364974491345912426199387428317433238148107621346833288355487654363009603101948066342300303232032841620644813808303352187055801742890931498548177657125976267496418732247037767931980898190169965580550676220104656293141515326400652902587049089060059272617897091671053609880787352572801575236359304709240395097228236259577081357698561429669684561788256551121190612319702702677632063727517838339378258572520781454612863600517988713778988007528803149127370662992277613603345149886235556911936494214101441944974564786496461732235267785050021733790251180115585579639689950813160132172791329473394954434598280721189910998213046647028376952301779970757831372529244093509901309556601764673371976624693134990603537298376874833819547553382334014494531111154101694587833378368066682750539600823159589498273362994181154873833433679110685963494119262284503548971327816182677059373311648453153092986401827910416761640966756126404163302433411648336176543450426196035747219083049521747290997373859733263449312103735041123912842050152967806999521352519271239892562109959423482572818687949253790284818554650628879281532570828903933009980589343262603895825677521540953357858983360517558869055599256763551866226391286748990632048652350706155674607830748782113165854809985489859760687224576610907857059362910081067386867227676688004707794910407606389716508901980010767002186546311703458161676553700101614925950967906870766127487058628841462944492102222671681254255134403887896071979254098765114773173040792376005029670285858578011633243236573718633456084750573804442131874656942354439982194773410923651993461016833823175089106057092992984918343003944609027615938116442926297054788619360203646385754432839068926264576919228821280341095346220549811602324172664916234175753838008593037722201148570541941238539516332188245429283046042058570935235429128240047516971669657810763633951596878453938859437971525321671101629239193783318046972772226777907623171130395121286083191566426549707641223816093901781102581549654783423434223739545507982047793944901768978159638611522037407424699406455873017345348006359166678721195277304683669928413130020070986675213606376508889994893615852231553240491751841395100358062238382119954007966392869218175305526293658082706283806638956247955608890216566268832308258820282825275749017856942641296273325771163793291263354907734176501721938643590880373313526087520240379131754775803888538229286086010347933859624372725684716558165280549638285525457039734232292414123372553195563419113337670740757511523877784933559280675821260842052773500385303560270526863675126801606636265161095128718570200577004530981979941922271274150114813475675676550395507843964594919253900376050852292377968048514190797291671843063018410731611923851119692444584502346231741546682243412124441043365173235425397363595419544517474290922872018103329268445185640257274118767880025799572443018480635645096597804810637550211072434728009519821620170701783031686431032740654694558655588163515733998456408482938552176910852796288039924627562057474421050662328967910242407398322245408958779958627245999968791233875505170197826226287321990616360732674537073960142005308388369893535341161721673218915822985366077593824131900376781164385179611214840206335914693259830240600659821631535428958144523901798761581589080240274012128266141948477034778602313239389035932540772969748787263714929833220074751735382385772257886874828410562804049431695489732145418194169661837105459329551246374863026944456697258850795714811788493340027991562950562131725153253858596484563474412364904223407816830251872324337134053585392543408069351977142251137264070083698016083695363521604471252503449522538830387156721054235053187828141508373851322430719676822957283395516987585182364717122848186004037657117640911985376469864917382364657067835185666858124116633473920072752407417160736121858790884401753427410108247616360892505455073502890960043950748795532599736079222841586444649735911913862270489788348913220065383884100339613331504311993313945466652116842257833187841202081246486186954724043583450052301166850432816089782988563271263007197430410951213975953902885887496596357274791253903253547644441789678020884171331038174519998722862986846977260743814087989041209236341133245524846641413454631557405101875458910375270632671197940961444844630134812779154880141007173360364696058451416486219727749002297522632259484795602750815049410482689132865427079453176251297792095918811178852013714367040086356173417645705904166015382202238247886150766365253025400743999829499224594541832900758813219329653755852106951001430149141762662976638006080040040430097242544375937735569864262841644277541599449183141958684909215163208788301433785264539717061763571832363408595102955083637368367762093152094733760626042093512857994986832148764270178120991823829214360003566384133948246009838777572083324883430627313078457172728278548548198159019125120762914948581233531156732574813145422145033446162374767888077094128234752865607540161754431973587685880766497529895536617506996679920309348540785115644401299677208431318601305950439869804748707011651664581805623450167555529209015957750574433093440345700483266561267730573577065992581615302754838032778129975325193416444052240751324126291362065107234222551375309603219094257669938027029862674556307422003337166310548520375196924607443062856496474241441813342329729957811543248683471796868086070032291737325619635422363741469203907482358269313084457698593662435474035266837706347906678174635818966346393201612679226704254787755478127985145442374314653076508994851476678209152163955806124212178017341788804606812451705645860127688230367580438907312882346822853490660948536526204298547887988147522518188755630034616689209487473287451380021848874718062027878467092370413411719799594919433978022988874686834879899391578410173565603328409890247789232220392285880401041419672008044394507270844262344242844515382476539603633212595670356683931030870688702339751723207764767418294146075649757805939073277170564658421041388267924338954906164408154345699951848982848544580225478386037380801126606893443125590205305853303110493408318090799874483802625381671984536899475208359879043937350164882187988459552297211414699406289363443213837133369737491234627985227085515431569259086822131294861262767245775304879451850433103742755773492305653646047775733416422892145128870002177234559428255585049650438896014164968700317318883371358748298992037979114867464140506437071274172872469065881626872392395156365426527055014929753834413116802908331866585387979839605006619219690472143481163690117487238534750546901088488699470856712451498210365136683041590233372885968959315922418320183997026643091541777391120076675476907800308162081008150889541459732525521171067409944442241273306259764680832056001892813209871687535934585893032223015941621928671084473679044003800586515298162870097733881729549588009500061759786039647596030982981057524821873085777336641532822566864229782320962290322119123294091682230481676470149035621445137678005511127742711677333456864495057852529415817216501842779960147707207580754590518553446077835908085824461439749229439249696136347001071547832231374555977477169755258087332947286032633967422654535427942441559672786586441568767494666921844076063362498548843865203609169125501565719910813907588931057353673826674030435792982481399912491811912471934514654444468038734433953180680345043810334961585168944103709045649728275950073411858401492523083251571809492197091232606703050364022676648206698408481463366814391033880319048169908849725035399781694362583538404572750732439644036379900666235658582618388263028955246977361025125354585584858595342396966626978765083269366241358866854177026760783615166504799952284302118938321875598747989214907161830058451224820711198160812455754096986569602053707424556846505901135902004813104535337473093305696311880028377789260572857047954016277962320202372966558471682554774563293598852367518276530140705253760846527172823719169967659600604635525776498096644716652564847997336007337427007785232314961968989173506239376801839177756069461846261108149676874101575460040803104268700683702043898971066478976828934211096700906727893689617895432769778735972379293940094893826649385989076817585475793455105985426286253495768394978792812336035276205849428842089104343895598684973765726590398481984353203496608813554471110539307205085451437126697103504508651607192471249846327737749714513156014508442401096982887306631716195407021293196728700728340628317818805847789202598387852520528189365537178340061604425582460227946094722367141411615564361876705643436518618614222031720886400077696803049128791369734608204972192067979237211388007774787858953696395546132858245808934761963054960213516847791561307502017685248044987562743098131175765544286199733707447222322839807271200097591476315856402061243620572118556410297917788877667946348408891529803120186433574448075752185557581714929455355660042667117372058495307372144379309608618085416396367014036232864736101382790336376977274952421284609179059964381975996486298522539889210355012486624092902941174554312222317882733917194811937020595763351476902970168365921490040096874966490168816161265297922746623580421604008423606257814707397792340306302978012089194097384947889104775694563501470041511018625603370399090281497525022441095704947010573278208236585652062894221894853172814154778703644420085594649991357691991968303571445884507588889285327080177198799405393379039149802950635286541288770328056895029334565610183003336959578083261866970528286116764424807904162627720284025446450522297575345018937452067148706394074485020124119308519699059109644182597020229073159950564027912135397059422472722184569040933735476565823545836921602639498985264273862499045914357728162584631970146869237762750681019097442349076826543414869821185068400318537748378373501526398770370080366467836384916612988267425274637152213091291722865364818287399724389585363050749049624113612237063734979171478451525589562561671699545158542392156780294028635803192392992590561819676792924576083202841185195582486066753106504903092915365492760562180897562172832273774540776152250766911261438110319825361512381871766008612696573945785590613985316310666956328029260890954747742976847246065443931675352787207632469880107529830425998573958642086865249572182120344442623638745378149075711122442722435559923354962338099418298635316351639829413183543366229265535943807155543092073104432984357777112876778644430751084309253498545581172709484365672838942287993901446222765598570786233132916184602769454927695918554576668654204999683593360616009443326226642647437252333067694934117172299394986224409348191064350643098542986289752504911788147721220818186184507877610758761156345913169247927068284577325460904382375135250923706321221078719556235335827455898799641216905988017983121844569970215974951581798161842112090894757262819249109640636713610377004132697160605186941397090340813369346476132876689200419985103508961578932519573579535388967106977316298854772532602917545291850257697153466731874664173859782447951363043948616551139065500672717971732514750881078518793204923929188372667388395717900895191409774418701900976787568650847420410941041477098713956893318921961217111964653407052240853499945865764991349350288419182385822165790588801323117005906683208492628072921742484903358606130308364495407094409130391479214373384988173160265209862218513528507438099433088469412309087463053273872339947084211250443641303326877756448909785854732528415209173237835267680047790584019096315144306232659912875411454876533018424364530347860726292345577999756725176240710318317766214785351341688678149580536732572561868370153034368089405452578844826187445305631547382002157794591206482066241017760332919162318288720972290105418460749907676079531824765940640932846765460365420484290561489565657153846322038573963048302945041421430669808365517821749003136373910831958513549725561260445570671079661512123058798391497684009006436858917958929392697440855996331242156254997558916074622571774339223139494177678548594124234728150810585227896969208159567598396123479586188499433842867172178905772051325171093563897456427375955352197197225481907496803970154508012800453818112872582422138869199019710244993960806243867128636940346526723732081952308141358406801965387227780774523816549261692379017411032787972619490444038808945065020492282181094757542208891792502120237917796564833570342782953431112582738292213154048291168610982938423081621404522534206636163980066515360032919888725146904585298446698914614022835433929472345894230218204676544123217123488868796071869700791792741225839091309944679858839215047018660540385089087608273621052958604694644809781415942852294519640076639644151910471288245444400497280612399285739089620370592521759428349498625621146120699441250914807965692932944301925428850434934034151680314734536018403112152177499604221111668926564367530257845745679666097607430842490846010598828536369495661699028242371231154597156207219871375254141242398342444270848910586605792092186407337704823911736803233437487453378131951770137214610350786146707550732713878560030826920870568378010255835247176095042021966691945805430044193297083213852082134853609874335893528340966015084564842698267128434128182598190614580141540369615950206627401765694078977699099569846219785411158907674717566500757103976801535435189777304088552869136962030147849640434154638654231552616927034083893359793458371685423430800584543483733171855892488047627828730650018166860337464680709246163365909610973766001486027058165292578820366620141821895960392457515346689271772105580450786468283976799491759352435122241748386955200539066858441978997447155391672157277275558424368280898478082199306415239711399617707411179457420264802435208227578907256013125159912188856270153205238158169572746334281103632784103195863009816128559247835610058774098950313259727956766768529451784962110964790853747694516117805931171724233989677133678009897807052158936033135420448939854429088017787583511475239361826556074628398372223283451668443490627973005424017941108791980289759584790537936716592210128343287934523641793096772591190230720764726033625787736397162531369616782496727491806712613655292644417213477223340093677082372513845682051793694922183762872792183295738966416725065835125410636773130708796537831608255667243696043555920019556571541343182516182121974500633500985852965621574528333939193011300835022452185496043796006558975885842038422652823189909902776818440306387924875802889167291284723471034165174658276715171353490133767473250409321575821166748192596349828575133176069531901045600654459796712720291924447588571335717610513239442128866399908278069166144332376816708312322617911629210742224061395544808467447900407404524686409069123262369999733964960249146523407375385080296945485297057170328937771346783626891430538733456727910855409689875118801758575662625881811025565472879366079423556363822994177270990620358420406091106884159651038850702657011876367436972186011733619371433630640918060379651936619031835491442278456181540527627501807569554498202011481645382830154487835859031921325503373950434708134964536919778693737813545817757638085665574545821821360088047869970288116611680327097250196774068101160964521257406232180297024173454817125525291162657880330666263834907504993248647906731545154030663191221338763017405699489737866694386683255107897789874970945571887781177968038034016221898884385261921621803176840066343507388529298928467931292883080459096122730581177625277894522593842065267692648065542763252682699742611363000909900111735001604361593762352295784243792033917078809668141803401215393795121274049064629413449101259862817273717439948615965433340501407788672858613497205335009912159052894675017836681630341400476701626558377382208137686642669220485821757654120687433643599405246101307771087393352822839408208909204572759226636397345674202736528641528252659800709867215123972085130407786504380428937330082031331246311698914460103629427642891042248157733514794655686509575069535520088488053184488552346096059704789056059001436746391504870538457489887691800447332158334517750444245114969901546505768316770951052279916405965607127406650867002264419468971732646451175815451653683692091253432194815864970592571571587561812085916499352743404157795655890301170089564002269940090932765754935350076800129503311892973892859607145036653060084647821684068268891078464559773765317778807753679519608360115456921177649804355207079872090499099565009457026997014861957709072412396459637943508891261543787946270577730965432267743104203248105312455566085060148713499623055627694093222481600161187052633046782729329985814987591298358798188027182654323922910629630074097933481048356385522793078700475844024110456066891442253650655743554456912785430671168187007460262463625110941219138522823354259291938013943562604583725324158743575196662013242518611711870843779466346820313790910010816449118455642538704429930385700216423923747154065782787378323293761630633715866968269786343163297256613812725099550683402726482591285542449664420023722310687490255596189590966684605994254426277806226881947463546469511998783365003212554226187566263582834142479318536312382287974046598804032123896966455468238251585697736961170365242713448866013286694766974083072972334129866813910429644419008727759500461952810741526848350601931868172771219030508292001620444677314626197850101217745378783591772313354080315117327273895999136451133687434352484306559835505469125892678893586206808054600457684256228863218443671817894935585324617523560174361750199678415529662804504689229788863879324626454089913592073183088981973015112527289495143616157094161330123013755449859928656240441521405968425315761966600284565619684068557170853448717976391020925051618632552201871862105854326909462915421555379117377143886797459976436221537511989931435562847475003982115772216537758573812490748361640621075664065926565760213913619821025614341641667461428373797335637784974491592411610962335163924187614903931735568994501260923264766996404447141253607139218695743187815560041614990362373996043296077912948107024448102196117000944637888900447409816616720892757644380887121616835668460647522250100800061502878381179107141971226908332455012576153647349218074788621837059001167221923616849139590454470921685030518078062608318543478178039512213068536122013963284421829490294542275814993368004922686987312686916538645621182949602852344345282697736942922920599774757911327563611894919478586260512611248396791257925544383158193330722632258962150123099848322331496361173390389631971123091392470804394955260189278803638870105930631903174081749892020869419580677391800127539332780884789942132910764895290605323484487151614081651359418963331714481319366597298195311122050291078784207288248487017851433778077104609991283996641804663192809251933834868174239664077142416117735988602138631784803834082960516853376613589441515264738604385521121648711037717027067496903980601523499251634347802509585282167634911208623756048336293132899196312555400222702343803759121112681875162828404023689958167966849230750714537092282860768081792860931897849162124046527854483515908010514721815982688062699012357249697100640044949941274113496962016783239430833926324338536544920565896896831286249920719517849663353088005034606832310753941757531732065515820872443942213546409753879899272520444367655305006584407472598263144233098489974270816898513747484461087813639387826684562898021349967372717730247125915781051454983073329265562023101352624519475954853601378689631965063356604506818108488851491669270746995087834664404175646786288579239563789497534246933447117792889615987384867672035799247164485399791885814676035450439455282963875030735614735217481900041703585047716378803283223713909464764886916208255421782427344494600351350760329815811507251275567713424051351305482373512894491202328467007956825915922208036308177955304165109506620352548947339399961989952864452293775674422602744598402935201855450369833973995537353380233541081656775037482781548815778666000606873315748481124591411516403388109413526665914539231340884527506364092319511814459093843314074092443204523599897230591488346112133511984579222587337411920496556675176025267403979764716788781669228745381462645927453977242283304530169031782951771364977002729085120745215248330998044097460005131952830012272263520073223240771592352833401171712403067027544507877258896401731312612345703012174206007460751928340826578442716225956263420428596260859224550351662666316677643156470102909077212827115225462027032421139449082341477091171599565095329021985666988478429943637165214560218017701738800109941666458343141326795176647942892703638020856462509824601353885754898127609558464959908343011847412889954599532484892876614823744474167583976318228080337399759984885975347656546830707859267408185014059928270561681186285702645183787676009486714507111919030545517399821358249309895084773761556507040637310954196439727143102874190637063845716931709621451318180478210236614239050195760534303478049784932954620017933718743066039246209144445598982877489609676786918588568015502288179269592932310085964793677882641778060031634429477996785257560751743121613541187456108483738081813216527708295435507472765022341527962854012184637721053851283230951575992730829439350594922171660803415681784532092414022199017592552141185817144747083098596416090214251482412650440142080920359032609172345543391986295113740744967420732361701503799695282948700854225360770473126766713330648906221688878201648950096952040681798785040221608687832037669786760862408743521035511731232638677873082897166460571660897546239792376026583248384691685993189294193190981064306591663241799898556521936190243433414638210322920128877750789263535486294701000890686060822778763898386917315408229548949916845705901907687845565696999699846994490736175920574248411771336766401013524989612637346528446684923449187874830659480024855125836518119045314066737683529403446503877086502469374535563540207882359222224000489273636002317293926268164729263410370945040185841457190359422548104380469812903434885291366769899237542515848743711013510792137189217230687061815992459258365675233592868048271530967414071349348392773204546535646648015059567452833548068771263668516828627278345505496302255294290930080818659642305739446981698155299804687845860269960549445662152544738288632188023446893477088727563214621461030487100253408008263232632428938477725624259331833765186450598292239912557929573764633016803058689416691127465402263436362963969103855488419299100215511051561072467978432594298711149590766925536629911277215262127424499508648364234570481809224810971146259031020811929790079263079644317142618176825230069014715939671945500813968983764006589553557460186637465116626744550202996428733252792220429073870696186394701254626534097267511312863397057299690573632128374701809343795617330735951764424651114502235051036909371964818983721702993703153591126794749168948087031125114312432859342688480762635695363135181332717981288725941797367225102751575097375040473685490866041405423012781979744694031520810481045592718373879270908493338721693315952701668072756353337027181821355685745685744332645286307639930550812151584360657978480925617735682475594435385358000829891081617413538929108695202612755853351188853348305152905529175001097571149001085107804828599476207767749379433017573510432299411951262961865203681954688756399626670646636813998280355930902499383024285201026138953084887934912223235206829680820370156235013163350697774053616303270179854598351561410418970076645282464673267937236405410079343114847829152468857449789001684023780678159954271989729014508409988805572118520108591432823845339375215391973592980997966806027823929503631746841675069572090377130634306070713109455023363815696340187421692298339172576273204663775944432941741440962124173857133232208460879907914976583111907185406874509364341042027700027431694264375417895336377699742770929594675719828182302942460929831358176664691852819176040483106436172554407642578611473280596171001761259132508951935105231947795089937330569791669364788698797864548083384251046924811883634794205606691010420102681837898213068405729627266251445379965180366945002695592161543311178677474153532912999950928249067521043678392711484646648725355275517005308916026286914295239250549188073540762038286407731421791131151309121677826418023490007176786522756508980060515152970969860388096880096672353121202330676296817533240972638707010790449522575616728626184921501490713086842949693054572816257667498082184321123323639885087266310936592070553870413018954289505835714460628909765039347622668665151131449578771520124466929792332934012287581597015100140900536537699340544326179213428171675355747299208598180243255057921517600271893380328945513034094874820263065055191842851844897315938256413832792408139946970804484509236239232566798106063991990601490542774619755006735847320806593300474646576284383398492389973831162004604027539673671834394800939370693031850274846536986328189603335465120408283882407267028055829298255567759960911758331790285658982783442148046235576466238909366102575898949194257392959787400157342671437709140671074631736197551176539978235711511881984084905684404016564591840871203884101420436039711073380955312142754637755256795701231708897512453080295172091764856984706424899849949565864635026628730837645970526203844107158942753077429745568146923208872185889516744438486292627295321448231967413252603850634515883588002423828125064250293668936981732106972493694914733998187360144188176705598004775663112093074070910338596056993253479568449863536583471545543940980940153369581379133987017369975996396346925920463704018377745144458503518372103395888474306607275173908050195901121360680212848725475125535418930841496080675431318935745566208203237056344757821728157319085426678319313945850478569544954351396799069895369657588990762755426695089563247315747079651845180508395132700581029972901227549740823000500308670642297937648416328647980338168972234036495874633809078816171663578589631901338642826897200982710451604592541999168268774117304654901275679296219715452877580046283219682513895304653809690418687557968525583442105110932062421592931576811954738165577567759435865533650356979869199625752390473340411420162209241520936467711543730518987027957188215475906119175523571102968507891741130503306413353208274816756477223696052022156191188263465404769439419603035676731760831719013929217454442227619074807103578572256411283382647705928069956601255492536763174478223947813553781543829854740614174479973453296919874136152602698977983818304556546811533790697904379481394470031708378267434274290770614486763158378455173816892996645796282073310848598268280447173147073034300123380257243062444169518399380513111196743203174080610281179536411278543402992628566140863288435285929738305040137764794441469968382312512172749537403199795080795040876921966012717515022538844756308672972098777708651526848016583176200799477835283988649670205832860447664288599831868721517243808603914411497122220879269111617210680573125012313924046887053755630941640371451045981432348871030927320052505487486654443250943988553024445517507798542827941025920547366122381682433782625921907694604161533155303294222703659189710518626716142458144016526232000853269017740498536695051133476742932752368820074758410163504974254328204172945024685186657429312268927781406117421257740713706661869839740462635862143384533509183339093225147013973044924383441376266050051174685142517868253193082629511307104004859777341578305432009340272268191052950974045210817678389052037005667530224601166983871379096612033863636226217409559081738491750532838439677000861106968339298859985291378301047741696412087726503455434231167544760931423129914033483968744438787220535050596883510835920440532164508417785787811603148851202629468300112555696456694606880515809362525385348913060416031142532355197319400932471395231744505479573370750192029232754827617237600879178968242931333096668560539487722886942997288787323975674767483847732255055590281280668706953084664507908297879182925371092177536605054599613318708978339912628276923263264492866356166433284571372943676440123094531509003213038615525542750152688269165123672500633014669017913191515578047285125742485248075005867909426902224038055899681353163268365579196248336300153079778403883951296508916224568414720073461830789373122243337988104375671205711631021048100420989984932238497347838432496540399395627780531391912395514843709748562719183564448396305651664466370794217458570033982324176692894017341433318868437600068156883570886963767420354362762513654851953009652531219838639488103519229311912840374881201896364040144734539228438947870951643188823747391975849794796542273114880436119981229818114781738027887907280067444812527255843396573507359766680433022811524288961470798034801393060320923797313165832282662710342373102985506849231608371899935631518798692403027414760116005036742371278539880113042762829548749068278426750494634445665977901670103411212044379147475459406159838426865788247697649411250387010431680290599999968875346721023606002030079516335578663926717297376070770926330266782582553050901596621370373359795432742960821315971385488074278455748935047107227003206702185223121859789587584238541511196446414129564702869875797778274662387485013888709250645760194438307104025752572043337900155402068805714864263361927123551930878086449820700922712866613233094891663395466020120959998491781464697520767793063316576719175144464548698462027810829294186887627598321526644291742057902029682521918233380434558945087964926924969091990191721993482251040328745840096155402251764587391450651653024744069429518635439741996404568938054980079124978604778381988823265369968207535611986689884299075060117436595492585464994040347202440365609590076247336261285625912497419236161893733665284766369894476942432245693692800204382781713525855791526957807641464480989886791376923722078741784245580136089256560116987644455478468497139949683409015594780904552407566084094290570611094937508905518520203431696111551410618206051700174708890600306298870132285544264776014618468478406922613726252467039503719592086367116163202857564727947374880720947314538377388587489367019060046107894162304439332423251601471976612090053762944979743938239341687504139147024675644309182589186880603453034794315718801893818745159724014302073768241930994858827605775374610836100679254173172825325356342599930144982892986824350662066369142454143488266781243175918923739442592089011914049148294076557443553624348719699538986587957630049302046982924440248427191653485272164118889634724756221836647866998646374680328961648627392034426082595705668758676072042392411783936922528058710334555927926115271190439268055424472026767848487307508828566976435665890923409657803968649548907310618516731684235236989255914405284583377225034057446238046342447773382829310309919657921125948313795385067594513056551132993372590219817728549142749526740094653578137551229909850504940595311211907563798600829553665275396575338842998403741751850764385191658443047049240144315266545783798224698018282373489297056632161974952231193119134304324585601917457621599319662345741332610822551193263256165142729699632982093532102000171292197036160243666944730437179003762240228405413724603269002277368938049002536832646623383368013533978578919318187988190674615185166735017007777528505804888580416738536606277941973604399472469234055546797139646757032042408620109087269205193093383777517690080422905408286426958867272085269511303480232305213635140688767083343159550582748411252189198247242550582453790245186495639251092038975919786023658032544537406183760014077292144627015723777966404993600148129149101698773915496240725524819099554488350191684006717250607588242209494156538677150694856761275093515817406504777671861659944505488830287063172565137154264334500539477426213265831672864183601381527232121899198390269735084337245715007769800040570520763688226777966646102525118726273040613631597582200358878605684156086042698614485536908469983377986631056266725505397313097681017436519828832141272652237101838636307984119038326120415638898115362908477322972447129078818512737461062402973267386371425551487773791192424287947577227737718498768205649304547828581059787945080030301912621107887334740816630899423689410982511088304143408854445200098936068509065319555290712864148452495823685685509944272582185739105494246435731152420296964369449493786424117070101538063804453071496156462587426356959693828896150499872337860574807790683083733094715162710385888126202071196871353278733221391555792843815874063318830711247390363987495344986971348135156114296548030652026070152056404033607117262918834967913335677297613037199077874960224448543943229567502428432645596069792815968107243850859052665383540076540208779117818491277640146812238572375222362536860975751911125908142680968025757265467806987498926144585540784144791155582087228800719541321550351654850181685519162663904902534555118265486742664706271014332368540398522371134233771986338966820609641370997651768201734925393917678749433107541972279084026515820741901286874878650345101162760899358092175499927977769352505627014229058847087540514903055634520836726667802067990325702931391471809765407165449577177269524261840840639920152964050102427277973923416951762955410543256540136585204474479143248187567072869580680200000243529054476343798056213772886540744974908350254520409991601399704719486060132472210765786796664015893399547095031691670646884964817908346791504375239250860794815133133223596621865518796193068221208667497080254164818383606242018449306574891828359951032686144338302361476054939224948957543523840621564097899452405157797068901238033348675360649773299538790513411749188060688103553161899542703430299706067044161883936797483830568459032410502857287835133499592784138140325495434371467820368258633890388336692010502185914888023437309901700024374708371404866066000184466834048215941039223077592240752532638026455712049608119403262345009829331999194889189376564391038077783004631254838367398555938311332594250996802161294144786200039031564721697221391930455140830257661466090271812691804065626389943336636797228223354655823637145807246277805542305597674560222794853737623265776649390753743343637895285451143613792374428886407842462804713462110127942623294283711484031118911401360206981888835690329513145136697780613527003603051663456326351506222442731548289089482974613123024601954217604625079113666564310899698539054015835720320081731741709576381661711182718605646136609489914094633789259066897877599571915677208850264562124712033405138736368176427076286140825569798509960082289125792037168091207551055044387490204598153098880997596017818072268938029093905627641967301248963423897980414280093676883833772906826559605374863872655664781394925252876078070468310314479762295672440368342999140672107879530708553243999796815615819167379067459773268246980609790201569288199691321845522292060113767564511639958765495192164218575607224554007638098437594506727183902229071033203576467122093615253199847976781609540860403134735580741100461870668038023568865670536499591605834953909080627527663333306673863052533903813490298329828053399558076389411750338764468345273346747813736573172509606535502953186700139976498866034295298682183032753999415308873014418135868169510310086000454549492345518411363605170847798303079638842500572124588926608170764326407200018687468653648495994071855007787771394809729793536500849522982885688549831968202769104715656384499932046093179482247826602591602438374063043929962007209101569037815927096033622425549085004096894335770189526433105693327389963354385124055523161797984997077016382592308979503403226030996886008127623745473156542410929345600901368736995593819780439690592085034318588082715508222708554275206505637075384168266133181767203201411009059165054238266255490652940187919786691788366252555866724306123199293890405788469375048540378332169000127387116911261231272938689777594824193745966679629219267732245764528448042146195674510663112280280288943036902741747054711748597164229557936968545718554896719821046217963906056978931471295404669980838110635406941431959310657850471277612813402491529723447496229613992745672846263144089731075309016882574444764162048428721539904953930827897429033026557590852443630713882933470022289311228811172821665940359421805539304881284055812347657522426163954081505276449920541243455633900977160356639370521192919166395930462452242457651687256092316504513953614600610460346266748337937217303070912134121189385853337632335410007498491160557653371417950027702772169611837246525981233024607097421669220741630267919797908925346871184048647494211028142549591285196169984298524550986003799791846333393340636276534466453103955693307309507462142375516942329891508422461163258003745512679121981475476458197737171010605656532793514162521148109574364240890483835632592687483327600086008260286323499834596337219020213513088011810887054994103186662364240196733407625023133340206760624038373099575013136177018835856641067271315501379468197649667289905832325538336060703672782022515000312733574350676834963742715166978297960418218070704225407341640956115012657171658667328048997808989894395238121712752728097162495338278779749090302987023119012335825191632406535853905938032296073217753932195368861133854946250115933152089323575404349235411278648626968362344066126199496188610186128527852209568095251048341766236897778698308713240976808711088243011685682961530296723056095915312737946347347963582521706144941293286426582677611530732724380665437384113495180177012885508241380499240062199539600409310038886730762049260939020343403199260485139425422848200801951536508651561786176752469886716185764532134713311747059284680913525474573161540141821351686850730374347152625216678851910647344258066374637607016709309874575452530498090771694538567380703138485478261360379119354342796272922633153173403467925909933551266456620943740905117616264485860124893694453448208386034948910822818240286633162203979683420819138163224957922068385029994871592064510346913077367186102816313088667737072315360809747056646993538239294028969299126819128026207192586411141026110675451138252766285591041688760019396506884924364920933712351905171339940297425130439126008817314182776576256351404317288003840831992670481585872836813920884674619976900010847047818880457719709583532557443111078523127145885098330892806250938863898084342151764397779580880633805698138601829403453585515557012523748846415399681853822572781929181787293229297324653650018583180965577850688276444515191945912905468329664161326813921039172710926513668195209286856836750244168646995176511783435159691046400801854104553729264827969645001592972294177532614070701102539056604628701930015601639332977222279637453272412982077390932240531848419771135733245635635365273954488702078297202364148053293397925629095233417368496654447608336167438761016702202348413442347752119887121992698063094809790446214643285143282679900676037265671348302745181605286060178782263065173394893065144214794342227340935986776310799699723131722612375281312783994875996406550518169717312153491424808211784859612233752353510079935816021257819956855805860450907790106653823884009551736432932092035513510505598803445945067864507155033735320129627632156772018881167862865470424482672953315173389836614751815939878288477796164966389986725074375182643924329905487829499836348116678234799756496319047637013905518662336744381228352939676583453460430512514911997918185387285981418744362576379144825579761037100926291400911831981190404614052988273973342266348029004978754269096520675690116235183452024735520417179150296973017188046202542326665403871791144708406890740993605075595099207285110440233056582096737333761845920108293724099768960103549101449561864960489073599421602241148629741866125187704397883737746959890121592813174206152143688185944643418864044648265997110715558264192702529464944797859915383672673202698273063174381235819412823658826327143147161153597751316396101288325035189491621805010822910959528590569618267630840214591643006674039449389270976969427409781372966724536299294014498898088393364221022280055716449303359119282164822296381036975876532931654961619019950877488655203272574101350050363019324757317608024790006658096876511413152355693168182448421305453916554232368679943033169801089833790282909235551709563282481832068275351707273834174473600763515574255885471727394271205121527567179829224250847283097239466103071698544473097200541544669226962288361859093019370940757072451326772964958465993388122274887708852941071256917111853278444094214867289533617321820747012290665072523822499615235548751150405690925126751442265796037182350439802642554004622677283013302568714169139362641338301771252459093274865522676563035376439372135045559189496144120850366310226589681632058434860459374224793747131429169925016802514014194094387329395196188153458101527532637626160921771551537967899228874503390607847464015861780957117250326725865549511477732082905608124932677380734540748654604927918745954229366710342793225719906969528823127557382545549121098510368886459973070355990746953125725159293907247314419261452736664349138472808608458339036667817965866523199976126255136656854140706879126988348951302764606628307829637262498337925009596227101591642818759925534748614462285661224400355347837942110890580164974889675509807204410131858591903771020318954599542206806786717880693417576705206478019332388720072954242356089846056289209955973186592638155450257068571425635698502698881792426925020023481596918484123007766693525565284573882425755429714604233239977191058756077431088988508221335324838103240637851533242503797268977755016963703933452043961604134197080498176306166010291131412882107617862032581643535069363037149526787010116223085411143082664505868274383602916622874408938214344794409332825792870438313903636377536776566055465503997481132283625005144559734460023055143024746355695929232662799240161204366361381111230091006957778437038655818400732545448743841089944414175820149276897951798075741163659155530814967574726387582494933504335223868820712919048646675846272590044119503265142346916029004523140985043720548305506190743711353485949608501932704875756292087049454787483344853051243901158494855967967022758185455670028060960531830779145803304574163780919440378760804054965871670009908060081394951004006117075510830639978566702048511217802909029038599571844031064546712781900847324235462832249587381525345401305116783969569410769329172227803463373189673705192016471678067091621612434298426286022135182749181802555714950048040408025925014784132683313425765348818473093741292456575281065344933897273058944033714461661914215855277049210474806514150746300115915571134729821156608323076756795893629517338466166204520883917094962390210009868247581753697899913077929088310997323263264183835286082685207938449557764713647876426598754317895889467682788609143205377625257073003601767250795024023079429718440806981201306794003047804525543932158959668122986442902561901631821540713819561523067802016281263568772183649150972496275345157673292027922269588370443469674222201109455689828155324161568014382641537964979194617035693660284883293642461383764438525456150873250725294826610747770104048447596260659566699629759023454571779018192024245957920937197424437945536880404751955053422291801346552305542831683517081727091502294640234137227117538583773902975418174237041733388542649223529018955315430481061464077302377264674974930825935222020357421261061284487681841071955353628613990301225272790615398622159748352041145854568583343588148360987336415036810654632757952991881558934108727632118614027793415854950934049034618673476865957302002675383703806340115306844849934539685976356000948820686563556255389102624815242226947799727884357732978502741606808135875820497083426718109227608082130382645402295372688554552670156464606718467096919661305629431684354783059956238951623775340970847518203251986081367492891713473611247259760348921549546934566443056073389963654098756369033558425186040387887111718541035060898914343224880914259703808552494382330872567398476653738470682393839433830622472744066512921501800774444488791715841871213706523550517197767431770013623480386464192802620339685734882274813298289124646770285289094964830683927949158403161149507039647992770968981280330008118659870378210171284954420843496249994788906257423660321490722706354523595059074259158180775505588694140879796086020369194137424103724398272965971230435556403265200025143131361642786271287621864381773454621028731516671148713646732224073993873321263314629625733346782923829937288891050057381245196512185639095048050303731816516712438213755242577056505387712449414434684075780462478117339200812191396037063861033481286918844734986681089518060428296724520540505831512159041206451026080168384091861804944979837378433529366114918364634485090541584244158094440294558977988126851580682649344643982160854713078989955416586671191158080635903640122831059823170207758052718427871485940236909418869210227456725785242310123549696271988075404219029224078094028949080491944412886798274871689635753886237937177455665071179053444177302856937922879193598276292946640065840251213430748831546331347275358059274416203229820180205430676612211519264379474917504176696536076706398560517526599107593624088937896900023668383868198781033055359625508582286526122441361279324558781690720061171223360457855091596229708372144582747866676587969840253974329068454145906071548040169956573499868132831636947935292016077284215811074383546917966668767425971833890746053056198220596786742358288650356027213798484429288624252582324349572873535865286295231929169495887347086458462916496539674861234533808314889214047623796419003698315155855168105133079706150885589840767468213724058781402644502668546627274145188755999900354494591664130377712034191573054046079821731519339858672351726067721315549334769230477692460421041556176164147811106354209789106672253601636951125471728190826647485226922674978437617238797076729821667127425910360197455358035126257812398106872189438145833855365324355837614556495863745552151410930391890268282991260229790169028165391104949859651800603153510988298612311680135088613902507527356929463221866934702717595737339725504029621549522008844330271533640727249438030390469047111113510156358521106839231162985023271997941381446866874378722766424073446343710955641613871686411271301793037456424324823647417724726838582001913078931295660532057170395473764397700713639976340062230183463820632897943094416437918892392758260538216936839191690024060967504507812750171571813615457718722205645755901876445579094140810864672073575278670697687228053895183687942467448065256527492312542943100897771298599370773068471137103872641355856009901094043275825781581908518255485636507573232745612627507335249782122162146453262003997699246301359357600630640538439336227769826264363501533495963484391000909387378818159437568101712507519487451644288687248685366794568763550431117518129753266239521489101609234725522681865230962820256439161226235405367266095046418455547545721783690366820544987027530266269352079590827812834852656200104875608217602090620722703192959625220009431840145828579835436931037675871058824733138600460297317202637837915817715326347828431880142816349904341969571380044156900638632059856045885423293913125200125157348462424391675487090965505162048131599479049337683404585227036535943352777560725031001628775809887332647786823397788422231244188593250876418676911083459720452042019856885111511259533694894729272011642107384823231757053853201640001257096517085720671397352625551214834776738680463189502818660120142046500889643292691304217414278125413793993127733472222180932017054953830313322244657848965074923714479363012504683649406433367597705493051397560095173480191277781440145045213956400316859351820828759097034455979600983802126735112842115532965730459343667846871137177416900271996052850856461268363610150334291574063534927951210234402773208459861045230320050257825930576088388967305606588486219314682952257681520453341358518845290081511905199706541447576230503466301085372407631861198517814509186111426394817581179628894484661393429762089347017459700024310427600925089494562301871118765156360307208941778712305235732397430198051195984663084177241569170259257840406092268383337227649795622908232021899604155735478993611821098434077005560667330920210157271523607410254794304617192722007488561725756021681496195470794327806650045875307768064115560672726313497405819580552872815158100887137455406208768994586393377692068030712261263499723223515874802075729426253325473273343042674434439527588626538050216438166336936766367996656072807574228583829381419009832875206712635555746625082794412703831311703156624633166691851576657928121803696072947917663385970105563221017850750454082095392081354683089571750017025203950959371836050714423776594623100351048520478176252721724314477265928827367346069865286168594943495684650308535445045288266075602864823520770374183657719856421499813752804049730792538953597119045490495885590797854983074584019280913661474336159919822798571166839140991517430892569548407956040696140149675658118034519704873614989653846020523824178999284775963898660628774265073493973384743129246170668661055938959290246780567616607959963664587622233852180669078678561642677811481716935755468329872662385737040090088645448288431140043094189667365865429740555332410053981593988902712964673663675504774960877029756467335011615415198409687638986838076393000072584171560418576990861556246478373362223586887807497004777422127930732261899248475150529194988530451450789351548087791303027561148462025356777388403195279837217487061513181922106448074161494817766471573016874604752222173877576536398520913949355086881620488353430122823070391143301144098197964816080162466489117121496260663988616191382683188870505345397149966662694372367827365737381861287201767990902459862200492703062295232694940156040263740974469484862492358064317950447318562694326928689837818611975507346552634350120464293631838920134466770806533825983030084232734781071365772933437689330458083537061602492806477028182253179772428779596730425193335529561243880733221850383777626230125159723263313517107395312406571517934561378766769366963385346415402682026031964834499538361821174708244209473570283271682108967615492346605485105620972352780536816798034570799416671075384029898010109236555235981674192894257818659863028042269594887484667634893654317524201119699640442277731333758950155918850641914762773580947698112935923902393570775692873686319448321790683018024702800746637264519237901829054886752721802442286704247946014518284367653797206788720795467711506110317170883897483307428147060071947145280293134996427157070124247090153305602852402964315889098099589918770185532440357913422130728186107786191420570493265825143766706443827214737959459957871682153811654280417272212717511431911196131971869529065238348931826094958365950414670390250715640903086317053539512245842462338432104183153881880099638834042487809854734477608003664239435089514706653563615909046656007719279245019028665047884376125620935811590294856699955067106437897990809773105348929767234163853797321366329589812556488987030685856381523795388722913537225152000548939450019767890647009847535651120175353273983327735804237941817418726358425188720098072295126519563281473275180162063438428131730854994013897159478287853787852625556751341867748987823932751154645876690857323390263269615052351187040738736206799867559377080512062143311615199199743750062640580603713126931079642556163456429962881336466093822304810622878033202729526142209047272641727568199977168024512396370633149178226797438131965064221106964952051483786090872866166350209620015591484520085195931056656607521244963447388446126473679618419891843901195184741136840354741536464510995858840381258479887232260838200751576754246952130929920393964358559880719425696669757285158710606607404244463299556799237379235290351800694490167922943880415064904827137785295003232804302927385252689387696582163696363271715307808136864597292194815844161987663565488928167096751571647420196830015863048063479460261747879548043177810132909188777659379188619338503014136877796386354587348491696629370371106642488222683507172703117716992072512113788690470925331410853375136507734492621282689064098505120683900546325953853332206515844575391681364428217440976916738416183995552414045187186070228119518912427504755455800073655142034526360732948150667744409044286282048285482274176098460689734430235286238544992979709305186421317104357663159836199524317602312047015794476854254289014756280120333192649920067098443984386826202322973424533346472407664841722205102024510056439568639326214376857799496905694514278411469718608389277270325769013138862006336308682900010351539611290924356423419153290049673097584328803010711901525634530476299295564395870382957840088432682296957326990924528161077824679540865229741795580352196397585770949274330199480111719712192370840247386976340215099629617005867511811574650967184241197075609114590356369487740925023534001044880594980809485144605758265131745238920782974082264952130024884244449220743868746756585682150657932193508668750720599024529072749361958840123004527445239153962250054449093616093082629579768121692508747021775363528987884508281046763751502971051808222553967164973936221070166010932637220014053065493933672041620191624730080177474497426012135880215787223904478965415351389287907794743464959293065569235795227962491238634213609982419746448746757240515205507877917595776560457285623623523215621923691903272778705484971436567933910874332870333765085379198592653368385108096352918857507144168431705088141038627751437454430194222293308564490026860699704798277739753903804921118811382751242578061396486312250471634913576421418660718620271492947715878227751775772357843102422615446804248100694178250315134879559473459446294148184283288562716729151701952401577829772783482947063581379681920815872394787611960037510289727023511833950300649141100845096393591760791974903315123245085871100026548635852108059067722307215307161455628130918361966439033286940031979245916222525753185887361585629420554507463245256199263932059670071286013417531369028265703461593552296796742447498127182001399496921439529074584361136243939291193857272714969784993896270150208773509152094541487581366099894031045468428781872127291823885742745505448440546703719212459602156112710986089698757696759900233722728348235012618140237510823631945709676828016343411187446397638874085671400413841985383134147714853381283205249964399566402095500863938710308570802116723143129077872210334614692131225415935361021224723286076459780986645621772540113226234539580009733748507779862159760956060711810408547341302481070081198508767218151489102937627700119006606866275010762255200193828038816822956642341973542654802094812092942492294051328541625874167758443632689084048733331193234841049348318717749422099937836117265541800733094125294537862219918466570428731337033733440786369128714185202310361248326223257192066493136769238151150446079891661618358925867977486595469482536192859049832527700125357714115232294735135917111483899260837689987706042516287173068044113871559727114617340645168204689484302717002055772685302624267514668033700385161452405859417188925357011469264646059217572740728566898454183598838303149191334890340218374670341951619254389427093029476245118462437163103429885444166569719197615866776353572460430554792451800951183305054508066738143092134125246038638874333424292283323536356786594878302556856174655182446564935937165747920732044594331343404484033568406908910686666930102380638909604651553363271668837071431584229092917479634268692815892247634836085015131768887895715871017701210828487019654126396034356239506261635027455958769002327286329703003325910274848113370723700304933289539945817805986851473164990193489653591898683901051481261248803045278523854670112210957001403471224120676663022097095472755757463228285250050443719675409024554675563011872006321680551390320566879610968590420635569187265540902419308351433163724573822034248776673026588720925224622611134692015264874156737840872494191017462073815117557824490015130432376326239645345726002088104228994670682088640716570994169521885485723130421085774122921188670866431596433635021721454234687082653456962383969255924352412173991556611760603734494452236459204396200192537599995493737679516790361428255506920885168425425568528649227567538040758049369828188588041060656260439842796353295283093171217597961331171411499836440991608158971401440694772543023410939608017589620296906830663585084104102653518683116392275347849831765993873905163526008610941542532218420318145350119890430012347570437888873446738790450623158993861107338641437595863339231410622268428794129789089133788467927917490490593983407183010887020489795452995514630228477868640951142687210544155729598582120205916310374288549121182671509877216938075070483818330563969578981463527123918323663973774987164674428409470770674607246172119488483910082730731141569821131638594335016859815678531844260110529816488034637479170418478637797644224390264390525995509003667453222953198102049943547142256927401774539829312730370902136038946566591756790881391445909138504740290887512121268184999335446109675016528701085180029137844309757298450736855068448568556451566821727823612479679440848239843896027430768543334249259107212653130555282659011339829398333226454493652289561171536170458096765243941960766754639764151785736802772987075609893927028486956357635481058926430103977940681554327382661774750390669035197141706281571689227560248908396926046611511139178196868237715440277225775960299297137338547745417865004273377411978987705159875118403064040925396063840930253757378446254295517313729550632721744904930762866265748506320615200715433133919749686296003351043673023361977004119823233479197321015792073051865278695288080119096079779604692180829362815504183847136097059901478754065966705627557323750651613284918678967677001332077354059172241402791398550786480819450324058562655342415241112554773066950069820638997036889495163900599125564640271799834081662712725395019608536588661336992181729482897325657288446006017055001290317441112291178275643466361738403055542385370565542835662415380931906059277020137797127784783615227646941098396491085256523930639686765634681125251466724154358520137746376000081259180279857645131361759291603351379446190612882675171654518142878691964268008777829863102954625975810588203173230895538071541819398757838435010703898288236225001390005091800365066269668213410229979525705815000890979566596538473731102763697453742389477979725841751813221084263907901694872047709017905592601281524943091760696842583338206569709422204863062722444987861071107370370109170143825572917716432294760440671156880450241834790521001465508435159419317232213689515738812279437178310164043798559872158056852325447938516491846564320433910814872591042861627929623946452100460551349170204799254441725619447156107960221064281983563228824314857908354413954124511847929952737840763439503143695229987567163003632536061546752644493428086418729676979476953358047456941852424948301917785057130993333231175685867106269577407420668071162324959995101545130860016812058448778932087625214873932733511577624475958775418989718849904246929947939623157811317137961365087115130600136675908776287724235553631056177646536008823405098594925991738762389800986127610061506368099612899583850836104576516225381359541571989289216433126251052750876419789342103568036565954364157450481528445245853757806520119307597342670971394952104157738802010699229451812000523751061053404250351747040862957949461384739198400521994908365667233008524184643084907754056218947523394248184240988847333231549656117862858735935917996718527254048149205710910832292583469057855478156346717154587083567524929039775026309721366857605162856011795583629856290502620740476674933393380997108809232712683276833751014004908272183035075771333540178475579432739184285735271202284266900305941085427383058490530300300693429206949127888397941800823498277018951689622389001110157541348956871301549289584229099910653396862151310269776543606951168422727095928808648246853028879414843445079376995318880437597032106467596647696340675669293340954694252151292641912903650388023881007436242634206166322365935298861545798972782216556787743558445756143272672750226161530391179844564122811309957644121348969992852619201922549713429598418268461143442185718044260748723803711176132632660527692139114470427530537158694615676510572740923500337544845485432106253634046402429236165939675591136974797324429231708728164441640089844307874540345713627997845970031166523563133210919632927904207565608359096238496255667218546328160640513166326216789708379453149940556875163398712004102993079430464220309518202345528750678980634101038543174508145779661238421770593870872282129853547769970829835277496735687288236670805290926603965067346431003538082490046278204113913941676322968591344207041088576510186357936172045789620572248748127914053325882209031485259244673402986091198513476967654150925328199768188684512982911625317271098171349520948595287647843387976008286413822747358499525528143405072751182965104198314288069877388413350927468434678837096713568479730511526968466362836695637484996260003939912918552178600435508279429668659419253625158900869992227982185859413989787975477385828573857234675036256258629733861789121409591345256174482255418971798830482517552784828042245856743996105284463483736003283064676429997447384990300941919711826047649613388355114918546724844564847858709268442376567675062139667100729860333546273266245033417667155536824927237801503200480941369142447886312689691011469114281115624841294359072802040215700132477291268527693710959051235430806930414635318296471066120836134251823869209056014384205824458472952073805349256820787095123381276671287581768495385496910141082705191184116957196474658653584239028967263683068585646069464652257010362936120787937651208310446318420616463601363693095187336320646584733281105561433282844198917812698311576266507622140369174413701584703989631999900921559761053600560376765324397385378405832414723534001300157533429416398650559368667196171654462611734063597123315659591826917484773989783532628084840346336515735390747384757854762900811458504307933472809173008224391792671390687730982299048482607912520380874552692026352991739915170147527774241298469971125812150619864309928376345715558571693324858014887489744065819040339215618192034110577989253186674083719541098398397672723854499252122324167677400422096582119128057697499140309221684534182653567427505496121785645865275901301515314516034288321246694668707597362032449525283168076167472914318666792090454754315656450074785732821837276359121784818622610077328373856296209668444372525279612784212969885441199264943125491194810577127690733787681718281752027942656265687725003637210798679500770881776535678322712462589413697523398128363159184661107247195847691440948062215338619441933329981203899870867861036518764162364104477495589219967111423014009952241032773133527911577795793421621096004115534335013083354162304186339364787518355512720724812851182851888769678089558933027522976568577059545999711777597696866892930540149396885906150838314565933959155277448622678308227407286663357853635881239310963061878018914681851053334072346058706273931402607969864421699075166311776267736837340614150495167307970433186232589813382132569399302757251518096237430308123899510550360777580369665932174545758629187191817647339973753993868775983978648047353181666658015599381710516030280415970362063607461669533426937948269451865090143234366204373392772387491825308128597306780455897716751896485383223229658764267849325438737231004404481918245540242198632750769875745963648259542989181925638610478359755592169855766319423158980859901912817994208216649168694031416368306235149249531293019853044176967511361640682839463371337182658014415356422978594769326375812240079745392126415912182846255808222612845420980931949333409994977204575933537247598441769952816737526560171937865023790181716641866404299017219260551393649759626392752846349561486539119376168325182875664417476144417846256054351324952741886372801589675533631034133023602209509166912012258926357975725645164356417613624338508389424980050137082169340610196410889878287151042666113899996268383685786441726265028768399750370498525963833229770403663391394558407733570094918010542678516371580585768583173235823824419271959180232441143527906015634513761996575507502981486257750000803732891018059230654276354522344433878216231462171658416418032643712203335516635986376612580884229657157543268447145579083498563811255900522626060047165779009689087375373580092424502330593657029669067651149724948839951313960136843397025261522218908908430289383808387238337755182580064300213773551231543566375790789075787474708335488560214469059040301788845435515897242396773278918728831719077849223863363052385274592535116893250469961965981916914330506774537688458427906746098630657001651182442249654433563153466942448226061197845357314197141689606566422970711819600437321976464067084919654890009671607431746058796608279016330092996562775434578566887824399618377429984322191614776857513730577727301632309734365927887204703332019135346417174119838039239667667389958179827764386700613828688607566134450863951531925093512532466269822453632046114850395480438357300956793001218687940405892101439492960518332838096254117393887435809844223436232381453062323832054659480124319453573664752679619501929061812323300355597028209173025179825450598296558049993242813613063727808756830816135244021571620947556346607336790911466027392896629829789906226891859130676129011790476019655794105367643983349430657201958216547124661114882448662218249035021049734179784323939124640952625296002109796367315565410310265755931406463869260312812026314526118103162502450060013109080157203911222594885178662643963035529496344752604262836137962712085367609847526130773433356247105531650148730852235077903181776111972581738814553120881119810639555120417729926746700098108596303942401389246241486831722223639640337486446022879023639618146940558379456131603848886995984624983799660166863274665737131507093408461982537636939434185829085601044927026183660249517511159140993021032081226765349254083873270379446534976178984711390667573148554121781081875143147853869656993682212929524065128030847130463927185187415326866761662253943376634254996194192429610829250728918332122279933020223445924864407656164882002923619782097624773790822215853040315403204582276144668559447815405220311593058964199967230673279128261469621070526703085933020455935290593236063442369141634123064705928360175542434247893753608853796562956984928210172949710970783110384792495477995036305797365255549412069704129401596691205071025649835771949808565973490208980712542784405735233084281301531460199395224144939639149810534838761792970902816010562997737951058788942148814450159106794131744790905266911773173393056993696141828191208192389604017620060371084519547890195927198675617670878423674609512626420760529873855727564632608281212992402234214151103490410858157559443455820556858065534446386929748281955089865690888689707202672146788016833900119446941292199237156772888613673257268114137027865528998589570621079036607906740688196935015227042186371235499747798704048951246627135787820851526044802475747103753739732744735217866930591033884354481515388120091581895294341061954955665708137589219286252692474749056951243051180195326021668302954041718235750173204754209134196035889343861071796054462888211859485574368620554163797543719040177177707305911278834150656677066494896795952377020207903580859847232590456758783874766113693776376211309962106559083451278070932826260614306613696890169935120966861843986721748441554229036044784270226603473038397641687895808645855576956975198668784509666060475892356900163900241357300977057721734453816951107824849244827636040755765828727548345238656302334123404415603814741692985596759097884926306896821794525520856300867377553042616337608079316600423133132212695198732127327276407003324439632203005709936337833798972562372072649336826356612040538820633879912321414809245354212171380303221400191256379143389468932928916249545285439659735477211253457682822554135199099949711063500176601724620137640509756175717723225036672540789601349030116909912845277915900713934630033883999011266448556734864989781203503688441001678823625818711178471098221454045603567579941485282412985566144539988048940803646808109579045329408706481223717534911219918543439919853560975389732292433871364415728872349322719175489662091353800237937437822377078623454613475224484003699389113840344238881785730043514724895073348018997860703101587451816575075671597017196810493828841254055120627992578206338218644036198483806448828388660265097547919599039911177073817167156261533232128126166992742589514380619324514188391617362430303143238414558896018903901460028739799979762751154662943305161314331725019294806079467787804008285686745236934339824260970632381149162563572864929787018623071507245003603052774580834496918760901795991248868804083056973980450053840365932365707168043604651626045590168457002825701133955145824539925954795316175659532360825535481201390888311196005378784007467160931994048449183130464430022370428412549476622971525059245453167737172954773936085047000980451044310513985368996255339760466168931943490890257740461348236347521005979314552580308568921234517475565915068734769054841967086060930052708817699624771348042254310785208205357446930583550338722487659295856788163562965191457765640563157442475188888795791770241290190159480624593701500111343549734872770046928221066446816857410135968673961239683149581856979547051490125009925186522312769518947321830307582624372559470042029180742880133668857328334969759693415638452638634447826317796071188390695338518885333596282952423096673690335788587804649906313952940104395829456278630872518431606217140351694500429053867263241931713408705017928429882310223228751330926683537782113283959085572327795931638192086508757555292148393401378936711138435683791639808035401891600823887393686831365153630110395350046890667826214432028236535470412126964380520582498213425459973349675364703579824131322782499250382407337631942736581264364696920506883917944929657039144584226100269702460393623646614234089187189156960428374336364348325492453374512088923465456100430410491726664281447578194384373199391602952426528640198437239920191687075844261319696849031838595452094223531337264545601050442586924738515270802072340622803173794066747158121491484498164674495710269801598618115889339501356030122978759677779239845571235097586154713250348627314645682087194444813305829086366778104142795850174024076739379744283905376602542846785769697455982177635769897699224026324334303151286549129058138782342563124101552084031402241308081871905480679741304548511992000060561016882117367972977128199040988768306622567877490293099641385570008556311016708602360447104942611106393417773149801809815098818927906114064493447902275435032160551339898513013281659567065771867470738783768825168431334046653915287070822187980698905509374961580892785449886515270581437869524537021819595101498745003958935070367697355479991422085385848043747469274526057819619992882845418122726405933280031651833763828015190485297585888746274098859671520685904183728433031253531387960212118781959854786914369308730652400299625597774406656057473191071721275569548914129001388925719979364260296136419656151376044990086682350817740811135905028734945118318640974423680513044558855727818360071390004662959205688073471976563494296482886035555509262891808466873601291870592865977052525649960015002591488134966217341682945663197843961482393788492628861836162921788629833295935188645780208514214278640676591988570377035264184722914394222594372412973354187707759902600010700073789644578844237040745672666305817111455147075338535316268960564384395005062314884980957873059739723446620046112242472131292840631040296872180945318026238941979291173389259422906576466424137987247502238776343751360290575248014221872920999088421105833717509038677191277819624943015989164535574894983331270708443916602991375409412419458011471897848873794705807944304083012956051967779198050921416886628170040746528766172855809867675449178312174882639112073698515019868983277961176725185246731178847825213704517326848788709298362574701349712998514200552197276366492290927393992549536354655673342112834274025492150687254960472660572274381716103201941477189969576696481070600708342194606915465266019540369381691440244497983726897809917394057261355790789883139867990476501785613846070793481023582757444234110692013183106942173436646103536952053574208253868156718363149293922144157058001515600530125289562961692805516849718925019006331295224877523175989621700461111022815794956502540659743232452082507415281332656098951386909126900204383218749941011749964622135683463227186908561622183307353862741203896587443004545650693964300693252240755218346059209824704124633522269779803184048100996095787502444169852367896182907689216735531849337148083310627209031080196722246082685427614750443006820330332727393693777144989639749399053948397357553656716786235729537191882353370050866579635590160174259812570663192244465304139816436821500120609588375265881571712837081187882059129947127245185417019591507692264731629718024063042147605068415870802753963875474085805766610369569880653812407339273799629805178348127146170522137752049055265419260834892397052205592249615513375805437099266800383562665318460111704972568887691204827782760489659220695319472652816602766310586718072127221373215949513513869896847721035730717689659455795115393139954032619530813032353403331645389412198879473321555589499771645532572218963733209392933876045191475651042281553870972472494098896946307271259532001340157277339463231689569492967704488416031383412332345441503441920216513456236156618867236800802867597208228642961319701589880289824831900226080574193117770967567666370244612308721836383248428485263381323067704005253088983493437400882921858851685326184215199182460002910427050686957173863514595629008327162993095160532222776121028942226199488799629660055927119498506479887212767411678464274016946907122514628092035626302059789596968562052673581762864173511495265939015460178894181425328867343769831164981807613655463153709361426566124165127236949586159503893727651788845068866979747677898197968513642335110375343937936930639206016647578667071280405776922433885137914548783566621600378994625613286125049282621378257913209184575637950742310387116365037575900467131153110083327752643821454170138249311765415121204772895108794803384017375538134633747444279028860713592364388889207837018771630521399010158430081257255409594087371985590792271015370062631199782291850091811756782740868556125008475558892837635115809466501919991533610096681566748751774437003504285436942367130050262835378092442799172704141810528902248752274919236072414372831040269346436359948333065407208966689725875733040292010514867374216412290671765077541270308995806617472367769591337192301753592865860602672655065175472362426208154081313963625356183307503967214900710782077868992627334697452973436071121214132627213942888260844617820261415225346114761404819943206581172542095361942765551230896631248017696461954113975000967491443417833360770310506549005113741870381019727729134008231691194245688113983183119858341829143422695141599687329261593829314713672029237637363342958213925237125119526236348218400741883577309296849288246655425243807203446373321117963603490218830040445323085784178918976752469678291370302096050730490849880737585709165871854472295539248069912965754294332404378747070484076729785137717211333303017688458606576144032182792962830793946031153678942355833866678698587738013769411664042143706614835334922568002947689088306424646076925868026485294789655773429162011931437163578262739510530849008403092542667074039506995091181511581042322129444395645241786446732278882472254445842501804314442071405981407028029893934929947838053313580585438883690513285167337244433887474002998865939022978919076568799648047502592188661133787891496816140269102170622663892103804316807265967061140255192539751934814594210247880270348708979733621995276736209219635513896802421375849457163947879739934916908869259457423020008307975869284017522381628628843036273271653038966251961263514589397539515511198700328406235448385712882499708004106895040391442789345218675695265067629130907828507706329703960266948771817624038554699166816864087584344452264234766432040106663618217751779796978962994400797165951021613367882815763492354229181337100121529326691045758264592069193091278484809965980350326453762718768443999917847987743005831357801652631174596650812518030320140012821318744018748636586411129635683187204119543854718452922191663337112113995411043840182790728285611111458380928548261917554097266331445331260484831487823488057225226438731986412796132646868587706252147770184874345630764790312621390548014783208930265127647939140557048411590641075964541504215157567340132204872697295396572672700434118051390541926040619188129521438079414094781666030942755013263316105940391123516163907145249252012766196786948955831869138261472116950490989730403636954702344789788477907834805116185392406984776181186185220166001019600684659662360115781406884988217347253247592451589915694996365958417837821036860073667876777855835215925339331705011984236806303886999723663759012200748175642455369114197568703568928793913469546902923856115833073791406526695670099091799149932285910352298428926697053858370770935044525242124998877211488954975361445729887410114213619139586796393885158393435551467646241475164155142205324501457211225794850076324695756153402266068995258022196033937741355862659385432510442184513429278172546162660609846201265999515409483958280247341882357084421982353988009550331153446448580083154924800148206340329063321120930100040875044612619547171940380553627962479956774990768002110622625996461184919560961741637883590365653579052158950591405140532373504212640228502750549528405903447137755312337052669291541834048015617218325951019874729689154290303660771085684176454700346754816367693190918690687285259393013719746136446512415801476926234774552701583266375008938368875618238315879800987175762267878125480721878066732119251640574220205481851794228979471661981522166073506007048610062364374977513065502759436341361454631231169233216068100490533700502772925672296492415307484647135123015198306985287806022860457158255366488159831942769614072227792855901567801618955947312668495436030806514231097774907595968568528265022588327198152641123261376245734486296296414042478627845968856004096236385163418139961432029623946459887253747820212061680437787457200825756721897387285680312088752488878983225801505584893489441171925265803987866661001422117969665191488280185188502518014220779249585724334702224619314356477280130168859096155587866788428352284971374275948682751792248990578506975721080194116158032122518356159033194466800168717269207444534669284855192502044387176306411179993434752185469814655899738888897644724291458559634221597238724712856419926824007036950081747283553028813693667102559930651455426409907036697731236470198545911533494077525695370948340909977480266054579404784877806189206616598912532444989380321334218922836415599075903465071664047103794807989068468748254827416024059548824558849510197267281435419694400031514295152149768017446479473828661542177962190873211932587784206378453133387171237353313031760980465638629520685040672199064897054916526923980855416565450812325263867761031298450398415018625763064289307655568753466107604881660924338346596720814119504158385310340769435102379423711025902339261039228239647919127365743540025721042733797349059396094377895405017524962759019255355204593681386787343081929187716637337189748079952521608299946581928240955209655551889109697188985127427513084517754996233617110726714175691104917612837664085346757955369661860190493557414088861146190159716266115603845747518256056004677972978359707515657720520482321407775764662037190830336998600087758403228226200152430715817989037839161731680718490402787759773446512251752935390185471228975460196844531627130650178239678900757006836313535286338110343834918306614358792200293556999924452510061760038968014998978827865444040206376880116244786241710217896272574407013557828493121354033534119764369782791916612556084595721282180086256428273505327185256525881137423938160749913892949922895769626934675807656705988577744460881298872411098526993296658551414100599859304876937712774909820599836042332934413611931087150723658542348902521984009386781548853854034378136090872793840774608754324279791653666915519246890416159223422293971649405307025984840766113032059812502006433308016006348552200793105599752664344177805902148875316016154135243182648831917976833186909636332478756689313621644629150595597750874357130654342676836570522668510493422668571738314536970645573022891986047469416974601176544905936730292798276750802882264896215771531867188410761065205288063254284682006860823072611031058911684919726719489020078158710620394635142531712603106058830262364547958195707247983773624193696024011607819772047429316313684883238325966516905842182421667087008344339871628304204596315460325865080406764141351218725382001260535547998653909544293552582533631144321682488160061081306127160965949376380270752297128199880446796471879064256650157642206731110702545212352198384785527101841371386316297181926431988896530687207585898982035431167810819903018352119709292433267219808256508491683665245615783637295805181491842135934092019804905842149781998857486315281051834309386717814792836055680456643525854976332475369703417905871015951042066960393269195865475641343488545862046581254941352130830829388553283799969199715321058815721483144989769023604593594636109038831354773833475009329600077919060528363071745014884483116517946509346288034802962063847937568185620443614306883099407629809335698679559368750183994185495726139624032220217221618075147045414102094387787450256046050347295590821000849236684856076797938724354036600735608587788083532607234348222521277676268426415268377902275785668872891671408998238524491523440805712669250301821486354289873912207781413110210880255553940436177888038733466758932236541369183918446100977379922098796918246695602498991418634837054242258169822435812171328403706717144887033964492257943278391502454003925574455595976991686572802855711722126145672210152900413879648642102189609119310458626344978134013459230210190694047037884031157108023778519878517173903974577328093072715462827911584720311154003596111613446558654408642317728179669389057245983318085981513020809205811952486261414069266265913365862526460754232390424102993105626445806012297379964005297521433996781755831419817442549974007024138116352922697755227055573170329807337648358301141698129567811048676144724001986957404991873569350578070270122818424902333370515003027897384851300204444796242179300521902252363594531835841700774564178560292790584999355743718962548145603705913918481927090621788712374429688028587247274272190087621155198997180751845772739570633424762040207242600986958636239936464379627724961874011396935862280977230309509738032347224397175700641956159613613797920313017006304680670984419205549755489951900931105714893928910915104982942884524094665873262033469447910584075277449824359947958748418736691821249633150592226489537322916091704774768489114668913678157505342623604890925342368442644205358779059449750750800916101097312255262708320748290337532728588218703611979536599838492260448416993614525438098152095670008032630012773109079788318076726751027662208475150464188469586209648435117105856841951353911346878959639528835102607582056240751113143704310715601626679685517263998986454509081064666347348604367252508636735302888927502411320714809278781130977247556539436481202626030514194342795520931457669559781698976879838339114931336914330921911294338117430227490405795400194717599955628164501439811450918632629103347859130429830118584279399804147736984401095753276525729811180979472182638047413952171263988194451223002630340232212843275237332911003075192842027987768317573786449227609557544799839124489723118239460983404421249970862228694363376411929858087967494704476070092048094467877692113110634839724413113357850625748303009991034428135402113718094975744083072673748315839508400544485429594125051525058284882568567084940324151816166782199134300748961233567065057384463570128718687695144054521608359982355848022006393282758832570070327634966097332717070570915198944121835407595049878320130882149386640636671275290922782150014765036798627787439854966670670367527279525885682707670314823336585508520451864593160144190612737029171281025914495931317801265474579894270790264913599044711274893392881672236804130888339918274854407519929214113206128723777043927106855980742485796633465875409614222307163550968533412639709445572268823414192155220419686263176657605024918604117112367339909274799192500233786417654660392601104025994574052644507309059231779012698936007468515759797724354506987010104419881915045976656848101626376416752293078789695834895004989984825146624021150499316958955598650507501197704845201423015252463444510318460553130281896576751334418631667282944687724961946745272869726947605189939379984825514044242270531505486871023444775260446867879548273787409213043966691036278094318444904613787793483338351023764873991019348951332987046093495344231850696438016273682363450615553257512316270790214606371080046196454437013592665897449121339497779522506052401614831885673710886875285323115527681933087809190591521770765165690067208496897087305328549944083430190234619441884804753775214586503210004739177581127131118282066815570341511558719528893802718332624257531466940062753594762718840178944052615699074816080619012172674074592034647203494130936626594453831365454473570144521266213742100644215419000793261738937574218614882988602072257133051178868359273108518047514020392744001471198478549275625184868992636320708880673656233941577767538339068026710141598970576052979924802171223757674130467976893472572990228452510220298075542698566705513692058777743324679072783843701128751550242818905670790798513306636416554455165961330674536519556099427971161831252159249007680476772461670797614442693560566958202282222668536720449235342269987450953941519315032990871524310462995993850632361552472558590818362313768730899679866599443409859305142392808989078289575672649839865698100245839148370327591097651117602620696839683461401359734669426615726844060416845344912397610316680227880175428756940601131414226019995658295352330436877408209040331234905532640416559005974669847021030649101331721264104974710032189306297450529410684036499372888204338583376321308591359125187509207921054460383928450127129104289883709539421661658043765213735359083162970337544382982423163045687665020403617425290175354199979052545274887045561450838413006585182906929789263564091908860297544518286995119041215758630904085723582331682043176103638905850834987667706950503900159955502700426609752406281787515693769542796838518273114262628099081683689176891017629190760893477523441453614221427008627215930936606532006450041119622131192318025317317503028826338998300104675528936652759613129443726130775914602719084900821746124037616164743257515004739080131604914120137318501492222106326603114764139044070988751432254289004064690714698310417070050707448863380205263884285658561081289047301920752659750940298852499813128662650608463566260877956819116335650680714284743719472999232601569349776495017207704969040142060231695732232655469081344384619368099468842746843438268633857511021123006142123549755331058346057777114747387228039271800924421996755986742310534285402535857518903411161122855551182761043548130724050016130143070125404680631005416341682221947392139788501782553756518752738097217492153155167348207003019096624635982207235466354583918946052762786301200577126799558899506926793235031533426741676622804819209775042800101418654376138520813395318116815066572179478438269208413652981597611459986047236103478343099435124318207984718157104089495609224913032912118076036516108215917677910270874231969415309396222510206621162855095766852085756389880200999325703439105583859068680318607907791234335184907115718006995056161233076697354123240460610727084693574958544415101836724488043772000828600369027724238186869517926245479413295933771759045404006574111053652785720377800368927412097465593895821912868618852410878401163093821654052962475474873886746288272427787660180639202167990217146882142958683857499668853328003584912230471853165840614327695706763947669275416730107913352827150080961469179564358904818437047016368768729488670473103755352855480936348068860599686251216440116525166504713511715747767844835497663011343103597377171690942688755466777033630109437837437433680597131844962672568340934426166221254783971500623554972458701904945504452704055485331284744085624602913954335800134417101494044651583811869891316257443254716298912698010774104583247868196837449892456612941077483128279208490222384279351641468053246477006291132113882616060890800423357081537805181647624110125015528047573351666760449483177861783943257583256416254743585824403407931074452765122598316702828772610036621926485387922142382710130672434572921674489870683467380436677162928174129467197037721014542484976757762839939278977341313847970280625761904842127235690942700745521731223248010912586937757858234852589283170340295223525727054366023985783326722267445986392757003133781616464933502079248267884502330495061547801080418666351771711822770972611302229229047069266954317688847466528863020519249027333901412849526859791478065449364759291136038859315228978412059512327069261005355653478649645162611435134684263938929992190158550447146558220988129190302322671483273889092183901169982790334042391398926510608078705574955704624796103397756781660067168489365743383393850544684252199975693693237994995256819302177551972414485157323324662764959591782687939613740817131815760411416266188608190439907460952356886579567830936003212222763719894095593871994809573503699994674590221001839716744215260023413722559519542897119713577552767151003859944456248135841516687574645743920777742977176714841342985039119092612861963385701819086691797979447474552218757648961030024837240042964392114278462165825284601540845940502599229999184311960331891620306327468119385067915162815001117833763404891446088316631253314573063139619493533668497012652759428473059811369993119196368942094568656567785363257288614058757935098031088581172606066357590593997675732156250265507478433268555339241597199794219937752185160268963973269099827404662644484137769372507384745523012640654167823398466318325988009642727199468282402275619248529845655936763106406878567951304558641913027495969710548468337441312862392975787971523645686209333109779386785998731951359600312187165017987288512817151537054702383075568984849543504182270246834693366420397903381716035321078676901167641785330795325103091270291304895330349923894353975300179198051304703050006832257939837688610730658068424667639098149620374954139885107843506477879687353023795424567855786544848269722995281570810766135830884630478515515268517095094187378363300577866740453562770409301693167415673401948600412041954947754796753588467009248299691924071259268568591867418984744429911483165131266589858914711885393566044211850433292175256108068170527694906884451163450636991423943876065716908534696300138255216019531637757719643570639445386178021593400927419238392168819437953884209418292996577676284195308137654568812471429192614208510984795188745247276590040214006382277303355305732212774605068191293897773246660023478578803190641262616068109642254655310318158221308209278096117054240984587829558125102003363824917865200576850539374049061499278436232594166798614540237339219168694253040465421430605696440123996174577064770584457677019397023584654153098560844986979707638622018875958384999594325663918918126420192595939834818945341178368184016278261841142334964972401838508800120665580172900230795095389780411796040542223416286479965216020738614236890770025116112906682107641925085298245824212495224952489960972988430238343919035143223654649917548537993434285498522153989056493587491903636259886587279809408594026903459699420918031049017341368302406602004962532013192914511022763496750487904715003839815703655803089785229597680508168807127542733548070988619333909315828937418737807266143820562002433345884093742758454371500043587313352050741927202742140243886989943162238080491542749941297449610203013074346312664340463044996600002432472054599553172502386589780320728304487095026765925809461046654894014699043344614416385777526709732930604999336942758512917921615866156147367753179297861729250308759393462415534760481036220534485637619694880362063936586974521722674882742787407665809660428254121194328913348927397035968014890921427620594672187492994642054845960685835791255809688023991506845522202299687209918570195799588568051400492926954741431374350574809858233725544467536106647760772259252660387155683188771524085855581862553222529877809240944448036227519556540137439453165575561653472522386649145778313132828254693008110750250997200238856648184190814088830691914842929519578032256779304719444495887659779694594955295737380319762063438630622744162515098166755602619578771228985385254747900457497393897986186335064948290180610735694808120562877324078474888888780151628239689771495520155807664760604945990876340075811899958964507946202471985731122089173383480017806848499948264817382784646550177695465443815533409924102305256458102296605881459421042226070539565581888940299325753836988332948999218580592335661791425129779729010471404453479808174807650832112970538692581484743770382493927535692603293256144524870954061799436328660963652360607787981682172483127057771453786444007348301948630169228220907691530914547958544168523767797643384098845154773523462463390549266135552522250487019500436290961765207610804616135975318072763904456241824181419684043299961645718135915049706573238177413769480372878558838411991049033559931151864202629162756517395471625383542545826776345902865971267430806676183331370874420899506217852801100747127347602660295383329640975306369552589818172047125867803267948182183602591655988215607538867648585025013321145605415676019113924990512376078624117582210968868073177260562648513555024191140744562704588628174956936859135842997425175306291488805325770575132830692093326472397595721300954187530900393635969534143804674643452233282935227290481876837345554544604696987396122688102852077367977410955269004042228726103216618615248362371150332818452048655804702688404296883039301124676839815046380284035654107974210654463898865130142081690014672136490502982746206316461262424922614770546741367565878941436282044681599754297205955391136535983466654780897714797731392417160457232070913325324626850034258893882349897985844035514644910566598862875905273886298855979330792073359612765743108061445380837447724159257079517459737308773815624399179682029039349542938322349868635733625248703066717730491061247580694018289556158906605564254372243379339557598618295239038523423611624991477296587962322731276564458235983735439685814566867925027178781544539992903909016541169997776053452167727050202071704390164422824261498316512139672259980900512955232236879458868413635396265611511979123764812142572535638951701967452591227466268066394941638401607146504697888924241864385731091429159587060719817689044253197117370740415341385286886557390181078055224205147607389207263163732675025348926592094035577684028656632534049925179154202083920318250675779478367032355091664914133361171366095767073204894489166428257184541388010181885018235103809067594302688951883129578850429216381743751823380846431781476928076321328772599296615254660256221678594003426014907262456932899037351642701713805289519692349395742857481580162108014074039146909201744082308387581169333701203278897335648521879279987618350372248710815254439555549637623625352977467192171207053714708226690935577041800973578678644801141861843050214205141549849234606117473596394352534210099168354551027142197308721223981354400830176200814717641703712878118305401570969244764340866942342229361149189236926667154593208170827653141845390692645631290569631548122895234557795328312490411086537368924332354920174405307672682710883198819721997922823821570476763424198355171785846695890310698700269162219127630278487160953707372597908556977639283968822137735181579227220369729663265653247393677715329568267849647131877419035990330978659864259558903628774237127524002391993704730393839289319348173083432708510808775576701878606527471872471340984831214257460433744323285070063930496477073082960055653919536016789980917497646060900480545100493882780838864639959734920817869150906012819078737076638406819978473181051913552185974921093600677973335365974498984084951467003738940196687973186363739307054225078266405226200569291770357679009161861637891251834952267937306616302025308834183530400673786833679577035007461074829668823224053563550352373615363292215806302965227127458877287401219335521219803473879759300697698861877548981146045094948230521099965199654666834749947867468360360827738728577982447341103654959989245972806923201807826665755781659147086692945495094317476322029025388266805365617211707519133657214567862039241706321719051163502552607119772265144290640996236277228048831822830624646502708577519859103301645887405923167662450157613630780619857718906262290746886712546469462909745570512667920327891234672534802958827198166220246916919027124100934504115357780727866860315281392087818512155922977424466114413519437793825664849865066295451525710332038206203038105483347276277721458021145223795502901718527919302792066503484209928593916393922755130882973677429876412002481660546261413439532805429949783988219390982368652914274056135753316581102109651728151298277596290266564461537038757446446315181608634517174467288258900958753674434300072369351234803734363694022674722956386955853985805232048214965417767893786768196923564489176711900961559435580318314188968477851225593891592331170998781197940635978911444276552118832784312897141689576944003060690459742961210587891539043294057648562588941741572567615128529879427296413495310121296559878965994467758968565895442266012078398343544231292359180840428320544777340815764681227327801410632602244915867563964347491772166190413643303159686724913556545381302951283848611271280250665467438886265616598780774607421266405957738456061591198012752653522483359698093346791939533796710176127485655389680031656025515069789144289395286040958242698499260947628937456306614347086287456270195057686824470144919574221827923936058334858319460209722673055391220085357896051412399399844859705200352298302992056878871214256452726953431263464530333364377397184418520653013383729307080774219178226404472530943861965830361916927582649757947785056090266545104306214970096501968626727249382508532471811288066376296861646510523738542046287728099508155821131723147410120946886577082948015981767419127903244034677798211712314628643193019701959638513611801077769971675659279925830444691287096582524949160408652191050318876393194428896020562255863229765645674269820191465841492817867839412334154002770483367292561470427773481229583796729946361128077773771191251039855839408672103360155387236357937809637178372411115239412494709139342109857131573288512278069117681386372098326153047886817587486916733219763030591531622724899769573887353889018238558810822087303967150747614271022308078904149932438615421086838576020803507141741677872527868145622117129407232272887957340015138490069035681922650036481362951987843633055765196705597355304311246628176809729863230967441393132052201185459669490258902548159820552189218210983589919870133766491585834660606794797070026474473553033316413657756038780156334188735407178928987913043004175691939053599874884903382044583980596202482478834577159870358419202962606862046225840353360706287914735836257541308581686018832401298539329823421383104544830405421300470724369620147972712480503288988525176012198848714221641864508424936332315347145287709070171628118756967378819060642036420877488402511656607208058141351505106528568309056382930142120330544794831993296147578494112784215234631265737748008653031070087976250729440039162961010760621365462189004532925284282966649167796132868150324373832292657729307651150835509258438050722465367983162205314089098302769439831508542280871427831950547650505434543845503663683741917128835919232251316032765327818459604540899646778423358954738177670363152554342373940468759498652027278689666762168433764387072983103501171352605008075098377330699945256775966895822300580070243040460070360397208788322749574514411451919745001098459621364033223605644233277649267872962649513878958014919105057724551998927717792308361420121385540373248570697525146421520094035364433881207058848895788790733413391541510340011865618972639775145009741880083561273206286365185980194969604245693195450385802948903278497264414034691826318624065354765856297416851858133549576222827116879574896044084215433954126388506232264141205221569878419340355384017928439075189083902969596252965579981786635638852917083884400822853898809376236178588671385969812205739167223587287181468664860453334587326437874477478373978680488214259570294467093497210855485504895037853512417192316100100609632791478921564768291038347302055173101069810775345165895391577459435107247095012398391491878264051164657462314689674915226109239063634338320144179137895232796533657288678927162999932303179899105197588205173357043521558960646455739423139197847504962057968344169513799874005385668538497272316998455935283846930861569464733414898620699072288817542882129418923602481023087042998452224092658966022111837703191758727069828188820516574074505027936817975036999058064841704838314336387289430097254226534598903734957311830927069187179803091407337413157141334689552623930849448461312985201776082163144044904717524815605111795258041090966018426494387291553528899564456443842492572405763858334007647082419426998384334924063862709260683811486299212073426524845526062837394042484253212266270209733707092908579776385741900911689387236636177572603563840842741356077221500136887901924579528103014871666991565754887630642888731868683894454824851472160488376167107848827192787867645081354257928984968785349850311055280895880958887279071729479996765893654351477944822026033255990776267302652676360236576520418611548578760193278588418294793372537656849558574861753160717734119154464411802026169888113650688307758092954079686214036240009460830768282991080637532338141057837088098749320988184763454142844911733988696420527479542005665215853674983532750430691470723605176019501408731612546460793648312009401490313761724662929177341088765410157179297066599708485841584245244195436893949330229231500975446021068091732741500554860155888891778689807985758841947100646230612717457706726586394519936099859853255204196032941822468045818940227195135239662669361353696150484330304270598412006231519372546426301700807454324543724776069249383698658547159169595949985139551379739533967372470222678638417974924318285375822815049605296261866541471795364430980491116145133516131709692061410356699588121813163896267502759860265132641538909669626690120660599706569992598271155970562658044150786942047676027389681329475136223422028754988941898773361054906579426845719699957682245077526667395847162959626084524444733233670415099500932716660545522119727055910038165097705180256305618004112106833622077114100610340876819651318445064943165620623886243285745117710571316130344569268809265078666495628041944800265271492674265058870541837512291953172248413669737981913198423432950292256571771608992219132801681023415167749578081637149567391625836236537279453415883284638363896075942375326935111465768354609832908984246260074380836755959125029656502664536277862087197156997203185986884801140748708189515240269827092739011857297526938402966711789571521426506972639644407088722842929860203189076523022672211721195793318137366716930095598888791178120186138857843674098303596440864292707581998946164907459287725495557429274975644216575904311436395758682667985359702467433321734351135424190770109254354398767302399403964859168468174788098002855992398092281209511523537527002057642011570902490071933273721746068669138172372937835341211880302244547776995794422451905660268132939413344612218900546516555594459547802084255410664267618694156137611749074056963085114122458158310458713928674411137487931174059072582403606535974825652223766690015677808064716965487986848189461997661943852136922566302968461297546460523088613989668693974358299805343158897421192022301781445162372043168841292786365514902459725658126085665590720887380933291192447833163197972371655255645479258150987264419473437819666514833967274823740404218235779502371564653761994285562493319763695694926397800843299905943470369396099975110886952338385001908583933319202332786928850505536103820435866399889768578346726680714364390640481313747511134594706032471442049956706187369745715394628783528381209179316869532284499926723975425812696410589998873652515981358033467150812294010374035662143939947383956966143415000943663133656111226719160232673931747454671652809020083681624603806031517377310919247751128320021720077752538977538945104701839493238254027121418216563043056285446729182375965699802626683371854193243061428448271256507698510169569549957986950639116068833888179836239584675652537599026020982844957508563393028495166142396988387518540286523966132028760352741947834866705667357007449874351232794430263429648199398434210291856951615953984407682885061560446658487695312146495427302845046661157693443951140825056199611042611831214883048173711926848562570188274135141905294845583702976093383707060695064163088095216488797950205009191348322096632585605174508699145910915875309742637358717009413564481843176345718380040783563700513090303128790940723439666372404111153735386269565230057747439594271179449006443600283083053582186210200956459520831319666955698314373528975290359222194244555686683842951869428242610631749383155251364765645483666202481634024317051270085518064677184925539247767182141824765026951112504899039740788978451889117693476875507499262643663579241867174500645572121886038794719441448514048233340037150486382043696447048087394027693308569460452356252648089449929117240193515620477011589360423360210485743273923384015293974234887871556176393402683375529628838977385050307951513858431321349578508061462465206563968340806226538208722238658754544600705092536827164057016332625988850991093066838514972954534856545041191476235024184564195560299107580143021071045230898233952484370995702542392063898825883070842817695052119014577575601227257531050799271568306264525197282412702747947427669418185991644928561322927224596240052774961617033904948089283257101083034206911935054542925106720057501752597099333457012221880909342896605198693033055554207644523474967642103325980524119092337598791435158051968618438039257391641629287655165341411762819757458252849684523142451865840345200834035208237717258207751541310316731542752853700763115305877971647925590082803190803652745152760591395309586841407873240903937409938850386374611804770688715757128556872903534751946653415431680877744610425785863930488045273041540522565965452148691320891382471984079790874322831278844068067968847259917851145045271262581656395807647584095063442553600369095045182228679552963243623660571467763576180993970089619589005492926210938354120271056519949641571289318566848644662406081962286140282056329484500784125578164370570647076076602619391943019379262763281892565790539203778325611780456793363673355290089437647200963073721894031521689892718212554731706669988877833336621557079265112924735085284906487542291622015789652098918352293271307604678482008679033057008700081138371098074666837471127343462519999667713748919316111006865719078423208134706064237385170804200376466852656868739117727215778098367768350750675215875537654010872085095835268346919973214041186472661117731101864306049882257541099064134552784356159158782097858976315717356472033455741429303673884167380357421986824653626793679019410858409849899540179528971686288500649556997886428100350976480453125288321539847117796419414967117228528086197370149289518597416593567468547923472248273006129372651339002460639121889166147824584875970043958943949027911623658045457819774714320317933618256444266386746598822325425668482806809689277698996314797390672154773765908192167925573634935421031995349436803152083669305542766786160531316227355733752101366471028254678384376908937103328466739086647164135268687848613948036072554557464633778271373617060682551002561864680256375404316786227853910797357920123252525086777963567458775831044936889461537569991931482744989340763550177485192382208536726583712517088184731313004987252824005395179870124224880711309227434122948430116427748356439163116024792786467614192139542624913369425923512132203491822456193962623637669472182586402857148107711789251471633582713040126092835631654449440497919382095179502188986941098956337705644776098031878028882775146746500064919214663512004670243680711449790567943010224479493191851920582789004363071538659501280747526617757992502871188157392561483175445948078999230112529257245006696451792972465665530842230424936420741732874972463102659583360331134448916187845014895496529309928535451076497916301864532631229342761059766288541602637509742942030066944915950809642445810882243919487260282440930773988986826293312924025874827463549678304844544295451553696835866720456187673531916843158957222941075421034073600103393315225122845255116309893027292165176816463464737025718792641815650294322851625577942924888246696958416697087440933061686822567564447473526333643099656446474027536664902613812993118426069476024608656011269644895031971288870471087974557457769925259207670829589178457394140551107427035763250376198292375688975036936683877193271654479878088987333936191866105226242061197059382120357868395039871307557765236344732769874016776124533284912665190923981891917947570292186327815091998869559654232461041201528364384332357544612719705464611810616067028154148602492579836295607722925303621014884475581094766095518150675646912729818317238906936276944424808800340070333804393544721971694811777937816756780794457726274916672917509223622385347908642082604716946368682597995194471247775639595192161723095234078211203326022154889152644431882543115352757668346388842434247563052834440833085270524275976038789827194959612491541593863473256077105196629249941867028173449653523883830820691294394745250619038233374881307767046244924696076878426828723340378097311378991460994874477393542240121643808796227731073416275675901458218548721635983808724182398324632190485870489298215688884096479981706120382103699120706230285696527751867729490250743800979917596661315628805711854591230303043305881535938903326429589122352158657816330436959110203764040226725476327067328476982475126318407236419503879852539584805511008829524003426869426409975242081840482779478698913322637752959366990459582081153717827277107127607673905705915103367292846667275498593908659336364712068369860756246853740066369410434817263905475567114721238787805659416664761666344879897394572238165125668231928903837404757598601403728800693989715046936061016073052012599284773260215439575248126296293044784817465219432469478974426535623841209502588517192030512231008074282697152997691704160638309032380282997487770635581749134001022660842360416908402863662419708306840389859897440089385533349855744109361467231197438226056415030711077352955021496892283379795121845833638360955963109617303420735382897453160010249116632835371060507384126643316966410841711151584943436263833251967317956769425528825024552393028029078333332739069702663560892265712083676472797975777649706677743531938640728595689027746308709439237139765850608853838280442327525583846982924209760451031220899022579887959087235510647199958017039165646821811498513744861923310404402025101855818675644642617216201202965033590924754221463592818982567813353880800198315656485741151503719539851121544293700377685303301184836836335258824599266201112703233801494735730015888901036612890286659067976678758297029750572780222742649253478250536254540816728714439471393026008061440970435662665017227716598051231265527897064965879419270348697782400344995180239005629632167396726982901267165071694921231448796582537957228352539313302140126644515670601061368727432224058864117575217506224847304439563498902276986505848622578822878269256673000643014367344165169009047383347734832212579374217919371713490599006502108509047480101244683663875886269335650421410744536323133589558412883514461338119016258112127236993503152926507442408248055909492283344964946331318434627202148135374597952018002383989977393850028788576982486617520744091594200346491615073182042760710435570249459565195700716257348044805887101629277943181423849728164554812578533076684535405936528623788832776785744195055026847467340681941242847530499320463146752990009985326713984906372083464172221580186785321052874186873512178406034256576853895240648967519659857175419056326165093335515279003207269831584721152022495509719320227810337537508361489746950013925898518580415009447795497189037027568469368641723213356449065822731105927138280752134045092726118889701733366274883527236110447228505487290329120804628672269559043924710997961387413973601716814612531596889312774967380315986226697039424647440668122167163506067133078836213338295730792998488081410255178379845122129958919304875509251105146840773150166846600719616844869293563621294016088873386861196661810429655163791897361675724430108116946820234837836414714339431072612915435592462163725641753707607295161438239470205104556332403222739047083435865833302328892085722921803536356587302174306045641321841726846303595799335430650049382051506869398276725947249290829619162517235319908693796641103163920821037252745296216409062059417356022585813857026836680021546544604989151730134440502472918335721379726192383892378039409302734186753278074894335849632831219467030048304853410287283270678928057429766057608708284637877346789129912845556356843094254632523171412893072940811809205283016633241200586967213498403958428249595914118762901444619955107089208623454896513446981954517244047928792575069775787683741615453720846545570099967800458849378360720327849003106648889906144616714828063057112493499485072744363377980776739635269763069875864389566989431126122174991761046826856669617609675339741278463447132579423733735289482001433867823078547887188714360469363618518408288893484099454857003386153382495005293887612238975518787205743436757539165294759950552308503656191595431788391749601968221697104409728793319550373889004271672566299084403335150573107561338681473897050574406494670177123824229690139188185400503334238228058431427526667855316464349975515064873680529923388667228878606817471662937559003455136171439433925931833913605352057320317557701605940801614237447807740401951779237143297084721955322102422978553452064187378714382537525507685513007343539541340062373096736630371220229665408952273539936227111345350382655879706635965568036048762030776788342248356421033839880957607841034978901723098300189050800753897838901112522556157946983265958077325401675798581974382140501645480710882589822225932188849812570361381912681480216672471760282470745372931038338307966719897033898561286707166249609699065003851241964539628113112651855945396318134437805864980215706287236732563133088513952857059721712217707862769231554899096979194256549830138289123649909046243468183929350859038684042200639004305561234247171103746888825165393676021027481444589753730699472130393067576596783716338851983786240964800815173994494804763836817694242503121567951121983615769822215818719692334032046412117827747646355815739629011112838243802386282614155832309585201590068455170383864682513531854181155885200208273506500051644019823602075783153910200434829685461034984066800145851453320589813590725029385187814089380401833244390718433485699881394391843196618171075731398453871284914448657885570321000190700011859432165788770934209424042139695287721428049347766131213669422623205241525222720166094427729781840005656899510292650766741040072710861914007882088925318815291020012333774802110920274739538829592287680448322275377369041082572661731074186155532648205129351837523816098587655359763241984030572107957208932820650211692217590012013410948900770171574575887908608852770690854082308514231154564877603248836133202220642517803118463153390659175420233081528228157432113899784084606534742935834730046614758848836810657343184914739138272960681264855541914042327158337772040733766817538985381581332609235058771036906231397547741334455805527361161149597293858049910084795042521106981386996229172050913559191086234139267109635598771546792202824525020715377809668077642634770869527070423606807788607082208986113741598913455050220982983489521234273208521163989542621494661611253053981411848389000279924551483655909991351283199128612942682405923466644820396416055877995604007159025050488096602095761690374014954588235086363841065612304572382802427321819995876604853012515747140913845592833619753220832850891618263070959282932352334670290520912025449732926734322706551974020478985968705574546393412704953215922313547443545018262343874375998150033367236414640271570822967230913602623555806173727475197298248872003927222515585202967768316350831972433842546398115484363085460317507717017358070695147401009257191847355090092520354758468707434022798900811309095335123695662417881751048622019853287197714606029909183594461248869018298416299321086692012951951173168325995195105664987571409656961955064413264118205928845457351261705841927226576724933313680822830614866632728003987245117316215783495394347238468130734022290479038585455086061689028057230670476219445567864975818752954284876207153116313531647409886824454257121552562489476640692505610388797774856870421879237015645795010422096420065971118796426746871244756030802697376974448083277567871578047969148335660443682110740003598465639979768171963871231570946941227546681746271911515807936005628978938706124492178173219078622933530303652018273004319687358202424471091790754671651484150557868783045667958850402304881081681282680208663648550569053102466508687345740437567386070827424942565781925330540373840335400303370313982273854866493819407624593557836268639529745681178147195220007470100695931377908031059179875894355351898725372563189400297496453766720261661476875804356352500913882090157441926735824151584585964884722262041718408639705074708523233575985680762707057076543179674352452134788122469689777622059097650210392233868014355088065960259255869480443360082912155030159914574015802240007267370655115644372436814724248219411957975438006291382101293307181831249679935068894192280258588896342163127841727747341278539460428628058651068394767409662842549284433950632436824822120142343440556931502963718541250432363161416280422199585792831837239408891178112871386197228885839414581244863533412349930985580436212082484397289835618220839760335409717623318780135589442892930579082641918603983959774042602704806095566147013781582148628835357909966865233667195139155292219582383743721104161834720773887638598305844096928135869735261956281018502408425240046037608677014215592550191795268157962286737183996296480696454924471338432085543373453801776782789809531493518531724012773674979488417379218891006570001807597452075750306388194236858682578739340950772509910602904463849514082261545175649616303941161324288285917945556968100647701053727592892539364140120908210657681109856473495643182039764599234557759840647664377343832792627341301594660137945816305794205620706380605547778290920608732407678122478308781924924698576339402261229257147949577558880383656097136188924530789034139023946351683811166096617914650637396132781738789725201456072772099105112151733749818881728138537722615427188939866990247906524198586728509323588055783637875805992346158802367176238892598347722880386516506220838175579149719829570270770815541823002757725560201004818241288021635013773279123128154346733490028024742320742859987032301188344627126587979846448235517381422229137258069290080968484022026118311593688159940633070438845166046597672588834008748816684277696119667645908188624633527751485132670519208717929289210224509546774376839714805641703988545930385052885840706869811946470409957415209060928556688804540607466578103197912161567265982001299136674325504248167200605314355701699532284092091872379074216748773273328743472413658158428588588077591735507679272781040584134460058495608237648434342038644397134876804496628196304954119185182421861164797295215703968210966886570301343581923510686217456458023866587382587804553648370406655976082232064533748078271979607142487901096419338473890293094565432499962567893327916661972101366465747507261761157507752605185285524914784908690049377942044270129592700790593077074680183016331988228947760236476416768590038320274105786478434203651029359573653099962512917654667584042326720987122260128708760456663973078308167162189979427707883354314062702270071875494442310090500011148180584830265724091420345683052701318826851524862342751961102507496782809880344283327013482544372979161325984204648292867631138010894967350248002710053969421583422825785513178399693021213664617827055849485054397040080617267857344864144383387294794495818893098831045286839203518157111495545150327764687805500689200604161554129610346923621102907095707102918492634781065382478310142556112573489918860734525026141291744721820433523936628278508695143138031043455971467128312413966647224755668097089018705480468790647464906585686803930410686997514404523732682452502858933670424476875293464688671583039704137963196188866296531359243312598400530967744009288992381833959940886667332156258117907789718744926302474002650550513675828974368621283243550606108420602867387209333847868846647040632622160351255793072315062465049375254418132649737007106386975250732935427932744660573677339897839434258692707192868229923452110657406310669778348026311618380419177253650346701299823402378698057621312677429062285321356573141661976667733302711590608891944638971711452909573291296466250556190912372477704024794351374401989375761367554644265359019263678594598613499702099699823860150784524867629201423423524823732829234964419806869875729475735979629540494512111429734389176682614617975818968990533371984353722427664291913825939829660154029331127840331448658883823562644229146720421324586066446472466213531095487062761494575161725194946983575939594022730517083567704998758984997458872260463660728984912116736163101799512328494373515538606810487963349446839777773139014736763174131453044978025737170498591868983761716997920946678643142373365193194665995794499722924289492226623254624814079846999387533606455646106024808758595740257046724979455429850392322622717499469344136766712857214582454495365978864738346982161139355588482122263272905482732440314259714856545307121729693575776296480305763002682401241427948097748124484718526040158680928591775182826733667506016810072619420883618916825151619768187835021459626725200214868843330852203739578030039171460929058321751959716897513450379122439432620575457976487439249581914345496656778221475331666309211631011159389893819254653666396557124750933519194411521679923823633491457560678238999493650017552624082037197801706176982529793359712381151141756072019837926842384045023327287629064912600712011446177146781562312984531045579232402433826785322052922756250376847539877528393182324629743012378144612945517449400298361009052964514430285655598424834921276875712837356414360208331342539074119676593706065341168234614626785010499883023402500545301419200345242500503128707178657647484149716338987843907988351088378200953089577465491239935515794739357224914520076040147907872133558195926944123706606323429257209468907012924165321351462928954686419976819171768971384847281284812033180859076852820645221064482582170202044578742978853839574141093258115213335797371275402329436247797403486616563443126083574593612419077444680017671837272503012578532937344817301666411760080162076292806463342569992782623050442849215175895529894384300983236427578642836477969134212560699399347984168793353117152277754025447133200957869146015138689704354423003633448917191339272762365550684563565700916811150279710076822975974349497398435905873520206698289024144267503645292441882305927875339398701546864656080709948428725202837798444805708688864539319397549612141508772099829399646623529871753402716728139414700958750423071643470686751958505277227628313795529211835117197442203439301675797589711005397731097108123374277679287699654391821018327677743073547254755525861746101455459596250379002300373064147445990993124956457507981914577664027875436924411815206593419228129700192607769585644821721004269167928540927402613635945469989198089163304927568496029768470698871592192981640424935953074597622458711415414582052808961354688624227831650057304225575531740818806548412119126230467461011034836898876249991760537589851729283640998509651690796088513639577300504048315103668940655483579233348706942259383624604973793489436184742133369598924822100929558072494920883085092413882862079716198629293296470431356921109870206822138438693635796442938465732016944816963615500082595055760969938004619995505132679886990991732403883229392939088617302135277797422582350346279706380784053973658990544649923127506538182426171126083756164025012856875365514531233364268152878604805318749958967880090551444172700154240566245127158004555091498158053909858119693419330719996188206390361261139616334758540495634881868957491961432126342034468214799194679791779512253033222692127276442504197812294004246996477410099621293000989665999176401370481623515450087658948558574857280663758635429589389739969829200817785571183817048229802458466532785525727675925706375273632261893923372339572563597637420312977443127632300069262487298368571236839904824690390870130983043738868674217949884292387729964047425721628625217525792953648675629640754888313750136330137889414527783395411986837034220651466004817114517268207656292933023243783645553527141982991792579202664798692118643605672793888387960425535208975938391462038815748149934913113987205770230314888666979911570395974373413767725404449110639800067794637769249622829032172336074747555197523701399867843992456726993053381509043477079223601937410422011264872385418215609028249000895228139468549745288321545001340061820123153300794153068925781708854058595195519592258054725601782532562714154736956108053009256387359047651699389196155562699391493576102476829280002522650554142684672687846562674398172675388807408128634404796930482733906137074345891081780665765286884917812526604204878434989097608951380364361128831086025338463619693010285440146169303516655441283044866608804907285676575915157269988389606343534955900523614141092638393588777016538943542066855109571227157033251872406528485466820366596896528218968357689049835090481224098396919672494516290000683074384536383826735428897768185716046335224997281628209509347719771024240042828856802997471440347243227689749122268981877290717228367171650936617870394367200063883744803933795867049925630837128864475483628478867962228889155940888172740477015053998118754649642885116363144689818813531279141090227426874471096240056848585632595383263940736050378579785246888184171126796842393268300011644074954936660218397955302794234034918816755805889924165654008224343622042487861528965569947810381693275472454423861514709855085968687389062701934326328002609698689251994751364676072826705338109204060707667379234640979279553565155635788014239016924747706597482932599539201190085627174347370380597433860810861763343687905559664309432103324369724781023835803320204239514195917680716900010255120502452998690587752582632464560043478066081358234955754438456050228833808259736179944674082352028343942401975364590556626005230085035610095418578016595936956686775664423724993421655623861043589853271901547311652613152052343202917415270680927112261640595190458568975551302731324709838736416663734647793004149409802339220438297451634127382019415327309426664620232253591694196845205666915372069450545380122639106663861330100580431310238458013874235869810253732885948928172621684877495206651396668920437560940577050797826863014819365581665266615724980032230278905577612836695980314721334459036536917879268342336682720425785490956081305502207981099376999202167707607188062835716336046623530489226399041668276333082847134523271529991208638327622174081136378396743209075114020363528245831879871497127486843176357501799107269151014002026289538746296157951714996826884287352661130287841990707647523390964646601542119396856659289935581907288942375426490859051362121923399614340744908003068429610317627758448036738618887919349753634531446531881177813560230451683423934153575405962549738199754711692703465315320145574969425641262135092503039234973048407985493353883488686828371685218016930557106700746831583347595405747527270648359669310912428570952840125013835752294120767439269345500813576044178892172699642660878636518434949863977223575187574200679876719472266983980860991468219050720345974886683092880191074880251321770277208018046006041500906220451474833759097302492090463722989019460259568817572251141331492559639478294294624953498956427969016376727384818016771280169637519095159920234130340757474116297737508882385898259083286785496795512896780217522201351459869603410458900571801255399075044278660295759927520743457027308948109026103582613930361016803470511929717387641130984835767579055703201355446206875934942400787509785456918601206559047758587026783034081429839980440472635855682377858654796856358751336753931703988850258967284970342240813126208524866023906239120639345920937518129670364515051044783422192668383615350359289298254479515293572128975582572371571185457640151314265634238747268655677463529745583837912103309315790393018190290173968188877775644584503243080364529229987014828332604344390124659720205667118665393245623406131538037843727566456547563485449506051314718984209804754155003893542427986283660284373315297530050890917819888324861014745629695688694145673907519619580347075709273199173550422472910916701906863432145265280222800326481936977105636117255804418094430631406158377805310128630014523571414454444271201346427566127053450216249345692946862527305529188881210057312454172708140271045466833593275804116975484047745537784794251450891243198633926201319969371914746442928624525393620029165801180711211251737728496095900764112611688401340462991742692174700763930346398071880121007598672900879051612040011587649127869189148012394788359618590211680065886440432747465759274400158817043400854992519559260543250533366194781383618778250751269166378653408665670584144200532860542610991372471386115939587621339355070292324886850176825105076898632032125186933200243054258186890548015316916925992724038615005619920513422851867445077944427233536211508597278599822688593420540149045209342976985528260906995150677740161209089665908568242826222678521285558761015814045092352411722071350904663897303219176026516319691371315174021253479197904149210966591911704005935224249084476565502800562633321873703764816195718340651734220962179489527067484920219030547840433298157023321444412168811578973102826278348531571157718631739792310778796012423299961458125663098086960914023375715870793982058208592075641549736977996411658170340381821757848393794092871257161801522919073602730651612722023432999422698936903866440260160827838522254173397651662643235860240940449322605168307510288835087121757989575138467191503734968202378561509269327141657044920338139041914380746520286645529923359104779642049987824914037115390933520609010981542223028268006525307622903173424505475567333890433050991441301563626678287981366339732258559348625317198970654590478976346815493929078471625523883578220355168717925344030855488166002490764098028053297374886568879689549500111679688983646478226419034444370579178621464378252673153630542745781164921710219435065930875729858562394067659874868079466881776195954145773207662512356018649937228516585375146040068118014387128343452984027139195917640645111410034781574774609942265699031158617353402351728881489544864737037416950975553524272763692279775052713848465125279589317139831961815492704769869109118395429908158033848782918058186551877885791765358326132694484584710524886198721045911607604238784402697028834249233454351223442787090276356786283927731593982132728996510289175052378686374222069135695920117476204817916252379155599406187463295045041379575975176473401309421678243520086216011183446819911075641360397120558368175408580006624879691785570861629414444747129390395017982898253599011670840214486080756270860777131196014680919655338665305193558101254435043146066554380038901229904720794345125953950106061114687771730033451025998256739144571920842359729166267201875151485889335017214530921783504642468070113912848371168961499861734950029840835278985818691945157004496207229548866236010726581896235470216270410819258666298059904902404624060246045552258509558553179695427848279287775107269145886762029066540739824642184470306875239580711162347798538051375533297587835770295361498422543167484263227072473863746125368205685880964053389831422693886074490717755722591923396829229885548779434439557670789168802063433481194739186491717645402783723400636234191187883714140473910175811578676619689423584064070978509408825107176283395733069172242131957293644606038734073512770571322568842522160472957790145961470903839865977519525349710187069773388462225793342011320715780258883393069337486018010848261543105453525307482208553708542218690414596806727860284251027787898484417277558054644662565888177765170221108450043056015555353960393119852307198533560687795680388472138500030523905246282132208709664105423173809778007892062225646372386106804868275640661617760654674036043315123935570075288563150955455312780550236861718634022537515193320205101813270413225227129330513245232392945311709569786185544487063065157461527715021942386716042051041541894829492332454038813755244194953433119514937494860503518223866139632755057802559568475534291222885094959417211374015518731985633066387075455187864717838878987055494141368817429896184736759638000587893417151638552936361354211267842088772367282457201274692461716857234470211359094730648587260908774660685931331417439520025448417346128592837838103707817805835593107081957498305112420146149506314292269878788089237465870978905709302086847526433279296604805341267618553761872779573580024154504951228937162541564252790992829621676276918008542112969963693693489505479535909547521942871034388491003334845976156231217794281583112504275254823137913530631684473854516263620907456431517065326145997317444863297719037327074821323555665203176200563639101430967610853470072315547308069256199949034277114724787844769605410692259617472243422453641564311050927368521156064011187131146509567455929115271192263173531479298286188606701056153771586824900382011950673187943051933840934447006359776187418895095930304322852900508395054268420841870585409251839977567894894985644435232183827535057502220552247312614161087119219636635963571657498409004108571371217756800972984335623606369087061959164925095417834033940071728615238114582879515875148164060059520417927263395839539915350664811218963801373394343895799870256291648918777885524894053593201149184470190272694209245950452041761053117255586146393982492023921935522684565904965188400132419086732064034606052893194566657049946897370838496424900196683478120822442674336983825617364399290299241194095482814502343195465087962988237826343361121640276168546185155977512851333334042855413054766132205290514156299431709927144144260023053117402309223804126473869793602204842730487992827755329754610334040782005528613950406536677709486734656321900546265729083372132929828844843127258712981497829731295840143197017940831250131101551088829581001985418916978236469968879314716317505608346122304123060669484169102719018363117619946299222314790186528310696326452465943925972262660814725673723004958149589956251646855920368107899633433091764985192318091368154425764397985423816721003800617671720500099451271630338625482540112838530562955760441743935558107038927392555606407231146503017875959761216818559974368038595502960144874869048810974292168974257634751001609057599886942606101745335325231174278529878892283824795885050366134662082102935292920125004418131767662239361515096878756222971714138013233720507534623380588337130002542476702262009683408863229802657020315234896848098315700786518313471489961597294111098042914028322274671415863463686337286440542953494755163322862003357204465081391862541233910381311963363197724365964830950060688267765514418670845834746103727554718871256443383645637074395700574525741464255406691607033003719606276678416268964240101101117691812685083611885992524738742417204993790072883173097822563947269710408502864738513939393658919787644045894488717280561181087832397493217489306054695520746129976788896173999342864154087421152037613835152192259946681336358755961349505307730927317632531421273063141936798489083271928052986895834941958944759283821273862528300632596798301246978406150652688917239645736914037779910889030820431951446885880825206537711596641163948449378136005296000151234453958176332546915893852632260182969206056249002002949636485474490712342601665196875742900335303681814841122774522262923049868662968350282611985267053439398890299691114166741102821131107673199670262632960622741811234832484716159393523058080215685518384082721837768198802733319802492093755855943331706767843989639809989206471657820529529996128289214785335354186752556895868738105326862330020865515947223989368336500370257714915850429163949260632080711460480853317823037633615042069525779016455241709653782491073354237938278262591386672799711708167927703990009417217561296608891126402239407822804887673344159492080424644855684529307904855837247169672592465462272428139721738270339765648292293322021751327512895006399801228039246577165551398663056078950619591238485472445321510099439491043460232752893696685940171675538883138754757150389471925025647443856768130027923037757391279713967504885421992909975978381259861560587800447063764130751571126877572635681367450347843457850423754282414351510467627346434331482807858231454912336966620794107900685374495487905837579557203039434010752268468019279918124251489058338743475114729831374410242933826100833283629587720628890010178379213546478590444688514873858960455824832031521199556082970946329472487465918279727219908962960797086906381340555388929676630977962239734548535605762293195346761468992727383524480556052666010920251092513944764024027033993904932346729004543402008872740863943081717179652314960335822666049385352935061092652070083016885376358108882110222175905113908205932147717175840984370723634104377817559923292001592889968748431147304800558784090566801691519019866193704381542756062640960585343380863934997483949732718425539002173725730690014696338604193620703114209660404806881588202794238406252991567754773548011004261384188457152668581324955613394865938364139784464394538486279563606192899100852536536360479150865669344693520669969859584425813937407730263120732039126990739434011184111116318890865477179965752402198383296181502347013439482105064450722454209799860735963256375433148343465869968436711700514392464048071508623422400296192812774002953245429408446453263977865144490672869411310667386184881569585832330774196853633294352497929673916837663964650463458993613239300461454414519780544882060438517555073352636104778465482976524301579941470832925810863636959982725447785816842727266454366641308290037217687346719761230083337054487321718428674059345251472078209770176548492851456919595985759853102967783553399695175214768989184245671745177784268219077847463141178034981571378564865522273350939942976812853372043614127764004666396986405027502355176433834343117023169947187539340594361141474483794243743112630356243194110731506101077506718870009236985461729055010558155257147916475514432773783089322204032611475112007532635230408389801689451465408015112767601054306780896103653394443763152106046527508364251177995062263557223833129861971515413552163777938002703153073821938019666695271955584612342449456405285596770861726438828727278926938895214581494563821101874736229731620853605828212454441710615372040261472483485607951705780281945973653994206303137905687663076727215723595132175061791922483371536010801854481645710921043815516147749210175762760868163646588356607848612860166320279433780437939718102759204940832517797428107368075099664539039873640836819121341734534739887719291121123662000769285637497877906129620744435817892617726440018882334734278448652142359910844924363349221746796353491979531414688891407003569657275226013194367605475648305083998824494429270546715825175745851322585338822413443592637241159468325105650809412345956898003157964100921981217270168137743922725400847318974742739463106882600526048999186440287438585960100388495070314224822744316818127584655095917486797504846831905331765146884111219182806794349041199183026348628676432060702804606183157498030778718520588525728662492886222779709449655664458676876065817262624676937557474845043828379010398150424948846674419858878234336124470360297094673007372516706596505400150995681779859857328754211258804239262535074695690178189583204096760443662533021621449399871908347595300714983030488010426594293626121949873597634125976365393483426292376317690673155789355960816081234330159016246208378091350034183182842700558619080028919540213316265196652352318711078556864240808959101127751491019409727997224507424001009601038328300789120786255256262313541883156822023711321335264370907474971817903919033590055455513466218480373508945033879987447622892796666911073522911667232428802760669784739286156361587594209481838825458204390688168980491047549269385098414796719332366182927087928656841361413150287122948128209871395019985497244508172196387978375474450432975843489000843156199932659037946836807193180747161130462220420830716484737187998371812234651977113495028634959436751229151254975385209814528090342583823811258841572198839513953827452505007052885876795375933336319974161909088174688415697221933725358835400844027817751692945209492991899602915041218554845688033238712558538955255486207723284873936604259762090802790039657613737402521645148250849680192575650771000429780758077027202735170143641149442553963808794284043996352752724103341860277242083765689564847890706387065847453507331200514862937787299177799992799100200734850773447892355489582111503504817557107565856872101586735915685304293164965488182981129273160238634580821429976744313708377299605821077121001489580853872297769971883300583493593172910719958546093897894649540076133976839435235047550917738894207804545788938036265996879370260294077317624565085062630475972097529815153112017088840753939985650912821204836075279542450129911826323534087261902692454510798266756844383848218635392956880550543539785467750461297446620009560921635915323812480415326080198632859334917399607066623883996837507840633944337301392233719324783315326642839092277366427784362817864750704095632747155811704265924086408951353163748970646607224602569943162948143264629897812829943140329582337643918782264043194189575885517004640052370722898112824717371088347429686950984643882439542493373125896966580940265213126374484448389937552673761126869495155640201864205555104338267767500310406494564664617529006387540091173648098672611856632639578403185347291610055454519950161985590053195821054961167633207232996069457931233127769990807475502584059956773030693882528984128309975000442848045299319730514428290251036711549966778101969015175429311405327038428577467371344745457973095264635350812461928789035462321760816704743133743827071112121213417602427705459543375396944103871176713617802372348569911740300815508568015195373254264828924314247185613736880659763371418690983161208955502772515976077045540792136392278731493211511402324152999980490897305621302423784752116758199407130256032307740941719086489022515798996820198104860606730068599358061918734251025087447011743246179445948356232099156293214935207114177003450905428937515664806639758979274584846691043793053791755264610685447898139988819341801140839951166190282996624109726813330068128470561942809008192444866741376965676293969286606082066677470903203857404678006561353902988847159378405122007173158214451232197861067452926467789097694511770752695220385589401842017703654892256222086714759725789971549576358860228266484777210788095042564668923838717051916351724702236681395343472026346875016066507816214210907577227270113194331613104991610910757254272462923429984686630931020122362869686815391471428136783076345001663941712690095904558498807804782424073277302305460493794484693692143209830556974850253448458301858874304239112082269782006053443735456432012335428177014943146297526113240554577123137266729548891349749637761628274317548470629110688186151373623046785395205984250117736486199887824756388833717020600389107474706775157341868026276944092691292758161133470028429486709669261865771643118407523224910766110802202654308203711583972676394298922688881004357328123930002287156817261968918484265684810385368453074849271534923958582307036999335953473307896785025280239644579231631633599737070403263459759838859361565640836553959024362807268558909941896438027414529107899917470557636073579594353554228245536664604137596367712757914822466974552803218360120854281446808105828726699118140609733832693099314961269912455807220353311182264501115383043965297236305643808537656262706584631951912360935256574423236251853710588053859509404141879939419155102457070171914903174955754523411365832271472024701450490505435767558050395199353818925939444126673932157883280588385129092713667956778704152250872886095514116028591344350070992965530624745386627726575245448802660611808968997385454878628518604201057260251628567314700972393909140817993118008001852226074943436908130007990613795060744420644660813995681521733252582866941992323042403436134628060170593950028188003890167837913838592669737490755857853312248125497687165621540140064113735046421704002851312402451424542048950262354993136387091861534395317816364148709837882543807924397759698190946093392641498499629071686690529006906274191178698119547491111962688674257866117766932836937538951243619490048128019872447192392164258672965300173818958518567026713715725917168286736185354476137211172763202589408872101601637981820329323523653614920452634454814793405207475602796158434067943391390492143481966521808478064581850247670243272044874295403309681891310118102783610744631700023964786840464716785477445665154924546953439536376543441149991268350068914386715891452006235159175265698628881956880908885662631120966389112746464105534066091126064977103517753115495566869174834260324061757480522739759771462487239514801348735986296879315707862727414547214459953498928614334207813959983314643879355332702758646481026142867604745771486805700541097406421791268590984889965424086912558167534014852034618036360068789966498598126876959940283086844387629656089521688696429160594513322632113509194558591455457954698043372882380006823720831107283347941145388039783207323803050020696056910432553140130700359649548304469777692650221715178265763127638144621165573752066055715320946750837249798058129402299769043426588476724499821272468352644631923506067140757550851731282644670561549427702598567112263380587823509240747933221315582587299945235844132765426628089093802603337649902156386033023640179288841391872701762183848076584424355034219773936354930929974738027218725273223489917198395317619558929163042520398826954124503308872842151240792775733467725412083435351753324070085407891228295363512071752713598009458602630104632288756125333517465921047872988444510605171155894384372792105739838631082610654926580211940191368957604534926374245852255130657029375480609524763503636274736510692682639316825126237300198728956792824905962070564631947169175304458134215924530912143492693149108599977702899146071402595543438955342525033095204487516419586026046507700140637538838108643146227242164168031789849162904790737235052074687126963287202901113979167266806621585341461478934919175965881353565303172130528748629175406312178109914280740189617935855720721612336770802129507552638150285162080112157157357767869619422267731707978542285103734329517486484966067208290597596305391647635964903221718623227352580487409548965143789287950425711119563857169026184808224071534363442151543072427601030695424663665497670609732914750468496692617192691034845646375793253410753117366136378192130141787674355126132728888165757720495319995285588220121344690779279789701145369542026245291342594367844989389892240185464248414850344216575346614517647930091241633284584658383593819168637309021953459505376541779077361632678688877478530366425476927676178128143132291515107516462701830971703538015139657701614712730790854663768458985269231632303594423268189332724616058906363326086672680759178024559333174942188014239724537166253810803555129697750660441436227847546963345990280292566280895373507754540419557583422934996572854278617715999288740649041719524664673530007999257412089838812152821613840675870473063571400213151105750053491989548066859902430153840610677871688470246173210093508241180511403612477400096982563600893030272736023291317312290239597154355792883796658077281478006485052140071018302884476436681099715911311338961729695282341765531811455514522072401549526607564764308294829576234641706250479311657428220142245308649143087922608711690346597394700989819140101236233844909941682134301326357639785746281847306871965324007876583415306997437682945749324682004606032529529393890451610895405628766575340510093893386715038019566540760194696281698127156971614656521755395589064086309449789633099046797739104500360212143364724247834262983842222638447405545591974649854779244793411236203533608915507268116395479731177292007026145111754673940212131753237775405792412190565948014195750944337573727016592767761657850627619604173594659022443295427025492317011946873493298842674561381790674218944660558812262337346233561653237220606785168119672310112206328913224288582710291626596626173090075392571748623213765753666216587325016708737701371191726489283867063818210737815128883321003973195952948662769978895343297266267827677781056088040201433836914503351732173082678325292015338668156610843826063885445305363129997410884879428249455069329694385352342870581636474984172758549756862286015855950638038740532356538283855384973182766836700468668495323589809484714894085867393297880648977857369637392689372462972916081053526420616535087237888643045941719481038057684993820234872900064166703420496557277611364517139575853810912390192919835773168655928298582781553038423824504702194600653480623285260982102918743539548141893721012513708496778553970864755396158582839206861469047014054287783950988987365778845319351295182820508183222710848663169929152260894215976874215347272444147582985831753385263205188798272567872100822021142840001387439919605680996103509526543713233742236219500280347371824257783363145617677991903733628593742407669336858435569288311513624788037973378044620722445459127865779412379727398618515335595522758294793150124635293631772680155307524880739769134027782273879876667153107929646116875136401407866905489869934716942263903436318627885021834829114033736498859803398359837903533896464747906471847107830827942045449819380593063235857057243744439044574290575633424283515239454921088288174824415831904994553066371538125370301030476629340646180661543879655537201598479790782344317416747494954567777331107085580394622207497852276065537775714644805341547821134008778918758914190262957630698150992515303822271601010766454349726193815769196827425940629119989235654995142895148925658556399767800488118579657697365416834170568171177807929645751499081680844501414716373800548236177097817043693586205829585049554262235251628144343363828899168553907880470967383004214934388154404124244123459522001154535098561670694792741008460591122995288825201652745233614326008787127579295822578610336165610422816259959306435688969115677291469183540203667253370431491573292450237142767966393232191360621699285626254564607553236213980002635260839957650201904052938377942260374193600180253027244251889164293650129554127125044799913148832052006105043271913556702841376314669128672521663264770040559285850799350898886063262631740423987059673064329259026831747885637875758293817635048565484570851060329044618474658154346450258459363010403612440605412559500950116915054380505728188874438174678039550800043490789200506184915455083964096671683966784422451235659604416162324072681917248884444125815491674463883290190326262044901633359137161991954180589002778505577805802399264102918612465796221800727783796090311514995998621433984297327309223022972540058402123777685757238866095258670936801823558298787385119618912678295144777673777356101680337756272281340683912497166960137488474473578100170119344030693735456187264426804606895994215725262873701547897792763206461555238823313817736572334944639255793617666741291384978164042656353561130993715442796414576483388227187646087939885408637943014027562944419681296942196855081880451884510816606295147161285348205692304996680616247118831295770831865209237761774174681364218341664435646474581335039689898023387081752396289093094108083318391126196875376366599912043603388024832545030071979459069655863535898578418543593524960679230286414678833759938327695909332447225259241106087495157334921665510491655101377049903196811174949468386379213660602706677540971477194698911986691913470454770100732890627228846738525423421326523956863737322357163345264399988643374414560650806393500891352205854306401952903268998863564246442265382436072427550101139802753220250638951295727662055996220197604236000642035187114414576495781555543264754934883988951039865173003967255708799171595639602876767175104025015089485020758218512889122915679399834546209897693326794735804915328947504826591014301446855502839532835418983127857722675923895464660044724790858583269704034350027681457183628901908572115286658355125899517421811163094951933944420177392259954138516903327813627096248753360918188816670867972629538564784226012041047664129485640755349864173475936727276124647524683075311849575663068325590519745190972514626794004642206323695144213560715988248007974050596692819939184402371793930080489506556105775618249209857104990717656974221192505904772568175378235368747081407508555644866699704251581836905699386133969207175960618857125190686292082327183204250883270358782880629368853188025372959960064538482737495170100042107622795726186056958680609233726510453912864209878205639660206136465157493315556758382510735097056295313668954858508729462124904994914622766754774304126068011682742587129938956233110144100156299582364734424846097634700032170527493042700678031572501667489513311502125290740644433776362474408527168320342789310413251072645061018465382719598177350329079349754341769738331478069637502632928176930878318948397335428062624037948511102499554602212392543309906686686501270476721940200433323246790774359613610675892635954964482372906850346315011981334218674556908193472279700954308653675124386541169960489574698575739740127767787005700654436181637072834153067808391113544939888876542105623782244026269090870993818718240735154576307432311724000435780271456068483097171894814068816697370191185053304232600071919436266476781186342537227485573548060644789130060498766806850196777496722791657777967532999787145262685305692114865608063669301912956017585789600172299714869929718392324297886368670732040730660029867434208348264519927693180586183648421396531398737616002663895585198217960449346342269113458229282412498052538674394129960101858705469878325835528879431802288308891885206357302588864664437559314071156499921740314602080063135594217430255053933672406680288601128964008710901927498518436072459982474482683686227007968908051780140944750380997808414102577509110734266188048749040867080415373582207992314773576704408106731024623238267573315584963450515973693037302921190045335063333560715191592032163880438221753191086591064337980402628499815498780190826100373206662334206166015456579296649556956763879074483586856641218945496948180460718853357424526267841740705079632377111398888225773227320442286164112583129931201038687362927511525003685637922175802925349567393096349314063070624677082582756625233811602825512724635082199350893360196842486036461705291187814276539363699152569764984546563377640080613360988229274735685226490321079541031406579959404017230825302082670104260421015941964205655141553062746296794775871768489717225019310634881601745893921296110425613589369277898637172828124440865949417886225280257011256545679073519261121978727978103289187418001208129770822655961029831097250240544970565877072862397740178491939177742903282537698648060489994702896429695935694662446925893565898283893140403609073105252573942903451949646207573257344626990505429099273527733785372713522676787565993573888665972884814893312667233342511641084189871834069583529533590722005334889297377722815614011135744699568496907904220895879788863224227408768272339894105835167225710011859993544953169456208619314790312595913201109251590864641395069692570192662590500032370140643131230862800505143647123048835292218230295364954510188892211165818380316609881830076323992479155876805485139105785276172369591863904480462535011571373406603107389062770396468373284102599509631643110968410382727165704946281966441040362499341170527345136512217138004112522861661469104642847959897242136869367937209892167149470314420630242566285294485065806360781727784337892110556731120578551166239685403720876423623784227678359708064319568998166268566919518380349431022859340569022830266292726134622869836996487582609184143782354168273220172149752793312255530923947712149764151684337205094387386881760258345959608112964109458995627436586656853462883533948858889243932671255976098412004559022977786164350596525176620551520260010666478039821672235601284233739246060294352710835384871472363263613914203976087256579289806212821416108696014782658132681225587497140595791640857831397224007811417744517466534914596372224483916266700216409473713788575705424479819750839495335134101922323339075334684699051768183977344694812372364496857551038185509344500121091993804233766687552280045627559211759057836905689144272534455371146393194069676903891913378253003204378664966206005249145861027587017670767132198592555058284635252400866463158377683806523096558469543960045390556354210663006621466589969703601067381747451647114817567704863435580577278065014876297494459427724390845121041262273871841713449882442780653820239024723383453726070618330103828722917774970131429337595424850484853735573037057789535730586175073604752711403226869214554322411372611166615303216575915068060835209377356856060754217058448277404333225742147516931161575119244231146590397370348584297978827311169664337882926833477431048879176516841843089331492958753185795064225767677439636837036699327179456765845071219923665370646831297824088414326650566011349639976149633769642947013509550010443873326896442475973310921023639554357606303171594972097494437476181709246035870566986353407481104078886352938574645956824381602062539829041810304798441174905813268616011483933112695691110192504338712310059360441321658464096912057976819053373362049979130288106902692943814426019044608941796247155723129244234282491057491353579178322122703996669159016034572590370642835771232719353221591711567344152010661745393125062399615568962544892719097738969779134485728065689743703059303772742864232840405389570917487104669201268768809196787141917624045724857954363574386796659882288571769478001394194606290443228029777685718780584784672655860844770892488752140578381510775239445930567120198321731390984153399358589908693918571188867699991310814473544335624254155247708961136882631085431697518698070747037609503309777598152014036718140203400963382506698587290921193502360069309997322866968560376434817692605472675988535422737887246293804139303596567672222476866192476806274242274304174322699819288135523011162835232858097256324601092086475562989045158649275342672864890810307343355672298486722284496166821539061985922228364249616209406332031042329253441813400911413911726494500711648481388223488675296182432478419427563110775518561625718084852980100024695359714968834261195179908528879415706207769798816686651472745524387355196687393072305235158974961129235698472510251711346749367847263583312256139656945375535981938476946257901276072609049856007673041851472215322066984912339125493968022015383398804598951829496426380896710818227883079515775246104186590097178051106181256014174147778319492142661025676658399887287057043716229112061563455816483322243333249675277387889214341221065356665256451868076155925430157368656373158763070983415589592127100693812404852180670337735502600326171313751399352582402285473095010963039390457028292074568993812469785674533545525926248242996483433009925386218679741269422056898554420714961101423238487097577902924097410391329110565658715079098597869846515978417298284533942912626202907223362514830713572297066664088215406930364239223994252534171372378348432048364041017519447754574397501222737448072568391826660595361178148755544254104323924585004014081104108844860630319109691829304095625329530308233519279618322976219179343673036829968606281393490608356935298685670129549777250369819029364848872970740278626401817884442721097871113813491534446849725020185387527943332383392452647039656474742258371727074136270837862127778318222709548682031882494296711574067649249421077441771073052029181955296933941460958025405385736417628714309636390227441186481275458716764778476127345257558071966905569252213516190231089248586712752289216863382420839763427166727612871894333726210908662986996838383071794962299957255030333399848833907105819497909655370941731050138040233599249814165002140094079489224883639557541872107842238225069088530383780100201954146186811976384309734711121153466301008537044567270706186654833432837258019645015304060707186116273196045509389908018896831032858218185859507413927922919548245158880574171287754353972497372654736412536164217873990639525898394305874789793360359607575997881411549908920608012682278175581849348525754837644620601417579269976539538243270159218342021835904606076975587043935142774248869987303905834922623079837500042191569456451537511419272921062490524218102920912233690222844226593174230759762884865387734526803241566792243481477842927167041991756110642699606116781124627570575918924170820744707542497697811212816198781158889563879566399327801013320546018413342497011945174012441596587618445075890069341972438293018404364016471068691242798341578398080508935099994103603014561039018127795699029698073079626434157459832872254048407968761256160474004612446017636701592134751124686401762055881194772883351777390570789383430001191761521144561910149197530501466126576910416994299560493444988112110069814203785537784894713631719245450475989934542810003284416974151394583711748290569174686041806333097723828779091262020661939134036066756588996820346401567449739354269259295271385649602102116211355604667917058723236489876981143938255538666520293045256172721392639169308521342114058917559283513227467767304867238712406586630591051956935790602787822580490833737121633393319394193407662420262339228353384915394074170947995538906732873663910182061906125084004344429099361735374857270982872284376211836614699571060812925115203940710670608685117505468976972686993888824980755928599586539470763306439629632534152793268730499538169399852671238123750456752475526814314696837699518865690350822600174627078209363287194959100720172168665198468213690349712674926572070284771029871346937598592732161440916710000267288336298568569816407175338427111076457989814275913307886303633983716254955288622522219750340499453598798744144153696338790174637627596257740117900074115487069169299275571971902507014195723233150541480525597891265899134404475947363055755099602044772724590359610659209574597653342369823789239470576796256122849609281501605786281119130150478789908650090144453218821613059063692893539619582815360733063580988854602756163321269413943990114500672748684669387048358208710182231821003355438186560289660030387739951081490805269796373433715681669233817656140042218447328663153393590745265452165203881472020957176551087358636453169788407350784970697845604637078576012686555629024010790298795564718271630217680959913590236226482328176341004056754728175965951726671117345354694843529740234344434603768049596305289005280721755967290098631005332584256946525318123020191872325582460871717606492209670515858262737791682123471784882332954980041158728831399353092052014389718400714742212260688563090870842195623905476625629778863160650412117573181608231241086880450190686014760080105782934260303636108737404915906975712227160295752394578592604780537880381562218627227128160825665465406035462616483449095576682894039115797110012223787078532265726093330675698782984982320786286897024405909657694120020049157590130048484103694933952627140559724801976844221700139872147123728591415043452702796536474866361838703041242790150748623318602099537019793927010532197129877199678551789739021174139810554296310423416955728065474494554505958395864689137595173649509573626140096862585174393497716986883755619265816270408905186762277701175246432910603594547386148400587913726471498128499791154048520057914997550878372681958607433621426948521099023791148194927396929238159181533001345683594416908740975974568816105612454382833865244980775079516312319708021746708626798241486312360554263028802775952649806122704013022713840899185502081517683299239153365650752154864336933229548144744748686587090048227207353011509689981082187456357904542829599157006071674688429210124288778539595395055875272600172492698230786421438746355953218356502650297365499380029646128309284978542150729856537258383124268184345965546596614031434286720045713010916091784598734647591944932534235450563790798891538350237780955596163791743402470560179667944244333763762122104735167249443432382670797611501491224396584820161849142438621286018191635233396004363834431734055439753412564757127317010231428592878359687163643978717603721590096220545994052661601210241378913288228501949579668947411046981387995865254732463768361458808336130026852205031321014652121381932634884869407296895953561421492526467709251433410813236869294542749102269325457522927360694931379614306425852398817815196128906787687232308936451603216747769685311076518764871646909987824347070271946245709577777136215338931513157316645587877930651554145705620943222261287088624823007369178144145927554056728176997969209443156829996827572476040072807238615235998631423647173420106101481082720868674000055026912340279046099182609321587194047681069283637599356789403219381245300978559946465609981119949171639060630467713172815174823784757602685946221872333888595169885745875480497411683810043223114924643329508652767819307339619997445720926707401185204074363541508818215465641154803568078701673058707645384370598718394253474235555572416029891791324147113946607897045476606954687425583587160389063148741885215378117589706309080954156875282261748396165798237861566304380159730275556907028330809424415091359449222872778358262539740091605344742177454063038420256284735459197995933395527924954439390037474216218625633560528892260125260157944310755338216021002027217091776917079136402112904231393004042366251680098967046443471936091474923289024818383859999173148119644226428274473660472043954572831287895120686747533369629947751208556557891545864024055313927013893473450317853811549970852154427848741538511145378400489502572234284191872151137957906511081985969237123524530690787820208786975451612124779459858288948748308660902326661487858895655721626651586552666315774385495097157788942963776817560858568993943978535001586184755118441794951915536325238665662175333213143546832833713099677548043633341776650394656998707361511889047660828732602824480467401527418462337784025713267617694090262585610223361508468719153330824143046697487571933547826159088556621220571679535076964899314563931589323629651943705421876754585286354962683732595257855952189006280005942732073266585686467210086284289318952334218276180598525498205743469314062341902342546582016292097634437975602577914194023929017543618925167959325506407463746972421046828567530864193170986812297014065294934151839987686114993566260723518187478535834758322838062611695817253949040470279833468478172466155036589232205265214856142909173550418743128748673187325892629074255589917777460055655214585188607052709628970616536873252228521577902179643322527002236505849462081324804596944801253300014258820754646653124327954806500443042042252664083416159806506125564177547126875911983173087882381219986898309594638092074879071795894333004684635056960742236597628237372274090766149230345828113278023024170776532744940602862000873166726183056878019202129277356368175268248591622470131219029876139316618034424442381620253140904023583639132400297067082131643773306889095159590741951315451175421545184808706538068132632011333333216088651813563122230569606356480348074127372986284763849128228765498643868551854356618130099091991720900099934848950886649380479657032603905660962739667287202348451120147349502102658842212274503977257127182177525623366687372099597935589826754922797049411218313643779233620188213221203259912086556048241317654659337031039509677447294882223234192840286562553969109980291192102607365163602681980579175677207167270469010783848041332797175183285377489342752746008185728740962476160187304766822521683781841974918247889923726298215266715909262314913477972452571732407373533178245329583256774045877240676760873611303895609143613622507805048022575036987590170637538066035354751056650864867781502167817207654595301346841246178397984834081101439145625492595525576943721810319411209151602423009397851995711230596411428664646852397597571016218324176251542716828665443167403046353828644817076770857316613624805380273189243688225316271200081373865352058013471719447476890643716732038777227206075004296886989850299115525725840005320549916293887757092147221121509312324102812797143377554692862459409429955723712965142593913675051371585311147752596051172590647086954483151499927828219023537870887324146321832533208233349762905112398227034967053400333651227007799951294322067732186186456609511853568288385708262221371566519041546480508674667568062339241137491105833554562854073131404032729248949605252896304162264613741323133892172190573904420346862452729530947968354003902043005971875007037142565869720745818926992138534181011303960589455360263589536325065545011231568552396547379008047609222190978233039679303983697936602718648826019974697642053268282545267204015357506938584755831192754465423855474810161833225300687118015746123217055377558002411430954786135216808239109867781691815272649160230418192997745040587756148214459827492471879090626456836752453758521153943346304402062794554765602902446348858146476572916124341531930815767609740728801775658167691313584289377262066208149144100423419757960243144164898613375504931054570962956386258393313800758523007022676955213968364670285635102382347746768239570073675547438285418163390165368221337820669128719266807964748127688817068568936198957279497108042465257364910709953653372396185853366735239367674370164399625668349408159081152208687025669161964476304705842663218452990799535284014230978247669484115577490895267240406196042615737614363397487368351662719358184165213057939606170292961479925277615221846618410781559167280325826264283014384797502237730085567058837235387496911588454107341708142298633613098136263613654399494164782871041093063609503259436959720122023606303496094996000348256256440172983946142840213222754295675731276876657958989919315748468325323241706951063470374343689067104794503447472447837312965270863540808469945859178762462612603935603061229525287869854079537412107288856744598015977375753527379227415910854272701764363211071573270071804413302754153129243083762551325525283894267854120039232183996890039443884687446793664371345893219870764426452702141087881130867722791853289397395596307524542007424913170672637212338136587047805487026125657345817323182739389013674334298481137187235692488928765961295829837137613779613652038788973150193524155259333884322256804891178119243200391405853598292752113448247740027716475458250757430999668021415909631627352508872926314699754301106966377225432932103013232319063494478492406366736278369997826775708201818328841205315445148913110248170014473044040184446924563762505431436776188035243160657628229630065274786955592925415500893626456362546984103153354958061772138455041483265977735952863497455666643535666934396565025234949435486209318945694302304108464758056101938360586608847232819610217063020760631788936322979375521394981710206553902064236883990461009721635044109488797949667739955472312774098343876925968992924878812365312569217979188290183510836667837240955704516417040281077349062558076028451952871361249607191036557842467233133294691322388931914945000296455944494513734385602010287897192757791756771284613501384493144234516064859799784477522284646150612731059595979832408691897478337237228693096530438981190779126782469692268499692763640002541756155117289119479024218838849857050643633252009311697939631020441591134669390058216062954939213737026985858110876268330286275074647797622581751371933578884571286333553363566511337673417271994595753633942649775307693819444904680895976383326489346381901739030147193148059600766382285325731336015096345922134687668952120336869346985954728565683005625326950108045696071152125821314401337282996433684541225978997356238077445258533771359272340239328838633386626613543490357818542713244641674853040532606805607218086412338565601827736972880914281396939050662144890441336660016077072449946334167639208328849989961668033258189087529594700304481449889481636786376181903870514679865380269764854663382895064360262978273010947635110836342999008686096948836817515152329414146653666419797154620183184230921911353360944321773887667363468211285937207531505021971898518484283206771713657543682286577680117212159109131862716320422096647989961095291566735533131150349333924037482446614988726824995544714275341773235755033916753167582229818723458291514959716945485548028342701313079636486516684513041989990933743880513325135600212447030839305234853360827121242232511199075277670753139678626912865697022839091773692822677733107302404285796872943860121123144733414074801395869523065889329541750298355459036477063674904829222895272516890381720134996764871732107273719693772042755957828682002962220130056290424230781877729450447123740401650604450915754962021872582010183434257874007908371925564151434527261000270585266936196814893701259621566410363081068166521774587086186690956095781172554703169901342547666745306748827334932853142275351641117481737149103319389206364143191456545219981850066003867546780041961397018942524217836548192457380855893312158877787751027594209733889871340715766168879422363272020445764100736077207017439463574873330443560695294135540498923911389873236303539605391879618021648065407884350072145125093984840242288693059665668032446198742757945321658687183192612524949730027143183761477689107620163911381936502529128006405763854383818279340606383986265526954992377226649699707334452328428848552363102818393921245709310884576665048471258471553291597448892347660883052842027103899637632982072391787715276855748949339714698115052627603602537036299848407583800710340227358938263187466084426197229419089427788874059204323377657505664118292252281619365428826331589217298943909019563536571553321189371474661443091214315839194690751365634661669671107370514592703974217996571073571551173992668592138232505459595852541144430044192524095659233039230116391240748156538387200429981776917705592756356254638545274132915542015455867714131360694111457987263154761143307631072720463555772521741301622959661266564239898718269949955653871408449772236722548705265070340085223860754129132778392831591406177349457124632882647761294115853389284948311766368281466489713721049910886342771916974842302441072039814246555968276456512210025071251406713985174769769051919368725799139919862334235749606260044553881103840966167613304106679051463741963785655834900783481730758669513776714925574403352182186216781957094696277049108276607711653252645580586599621124629221162110261602814863056390239777583525424938560726262801594216012753153028855655632808602104168467173097956097767016535067107264661367364991165729236566586678436379763460738943745421752774767927382089324081298099606501311794116724008053380148888390741918007131727369433806404806720378474365558841567163189497041861247480792122976729981601397398948394463390139833859263228806908997716607498073742710333491838389684191608317584178887017614498374693555011231781216405087061933407172409437605665718406978705600249006379900001588522883936464444428812045784363105705339378545796093355053165513493014132694223338985282890363672759336624462193800217958168633892452955842337733513770863369797510240813269750127688349986461961453278896594282167874444776775833723508386583247014721686072472047095535172242882712593084985309141608085036321106750956592754396705864828150392258245154987661340148815654521628447648055433996616509776905615855365633296967633712850084923469699743643581812381861502572929537340350223768633768005386094793127173353472524586684594338780596002584578077310232420356381960058976581813382836836421124310364144367562733209559521194122376690407059319632098756421660490080944766067194959919011526426729442395169565597052359388053802100477746734980499747473275547589424428977192914101662671798109287418177280048934479050692049254004508873942165542400013858391831168995205440420815563446776102942942903086184289798923569929319997752055941543380185746730792843858215518075529927787867789911722306280011628331436748131738973085148992578519973831655135872158706443910436415115690281361939320994871195967773642572595022726580847045038772473392650462132204978492463680228108437495033067944057938080292237947650020235376180843832040494556274159386920149723220015510213819677121761203285704454494899435177946193679163281641241598962205152145304372791933485505269482981962283504625831912591282106780806539601346570778475011220054323557883559830181052573278507983358592666109411849349760520368575296038093964513266435290571178400212503382994148702382982533595552745641250288996413827100717476510109361220380600387295005927775135961709597687465397310339696779362778912708752567480485863646660233093816259065452309087447671686211104272711022934083424051554036608696123889651650069916172337419650809988740962550049232094154492464128195653386523088834042115346775925838078382666038973114377127302096434505672904945710200693524746937346206980349355581070802061850622310151455778456977738243008783199498178299158982846642946522342142369100782146165083513453601717702711028018819145543362491285335439505379209304630541300227002691422386888907205298142904809355633532989011461099009053021512282588020796580382253770865733420202314331494445665832988407686688892367026981355537297594500327171169318661216721724099640336372717552068616857467119029110727228969920254840437503595344218389804238554303741172791929265300909587291188992646871544972480659347355731083876605097661117219027196351405438974167728431197959469550994645873481954860687005438866534269157922579996967976078179685541548802659332013847371639322027230099264468953436914783104191749810559802918635725242417184384551422114368234774680225608066417058307743077235731878600208730437855504177339065001838515160239269543044811966894678742710083720310267256334616581955516200542647213909276925609199238323084212933627270344787897575537912601445686957593114558748577938303633234104546143436899330948209622956919440476789319208624750340764553070942038067455144267945630581552054896082076612358109687162711209748611307836378558741080774245645406616261937875389650487947690190962247422759202018918302397684986152261045329754262493816559781058774451664583345140064396660710590906891512282186114951904834274725743213683681805841509061681500798865184557519645566594083237131230480231121865883629765369411377826755375419751168818791823788980502920213564114914222584576498328685260123635253519737862236450467518380740029215878951136370317815788330769583120910615606866859476043717958058878230569489948513682912601855165946777645773916614321384479013182660775846798009792519387658284073334888629568340512608445338418362232999835463571951786166351963155115696691330196256232443100642651791665703863023260727576863778809484211657251773186691513713532491858357299997896018647613422012865816864584972816799929792037467445782983035057520535878399721379917959605604683870855489211068265577766800783427725173517657875622104240896850187633651646757328824523497881021006366120266870473584940315099449269458566289802935659658666187636877766161046901554108252808628592262094111258723656872677946090309111129166884075300186279511767033831639110831463544555543548896740135779231413377139137639008091225310847295456564743362862386051321971381954812468759809284333613288053584763723752359105759571657256241643265439104822755232130744196393902537757542619647121391849327551640731992170209879848118735682919478631543639708263896149085042475643499166582457736710298390006849020089221685637485646833955841596849235961758924629418384076598958685233367668800536277445905692723008470563262576805734478880284788204457556318417199630298445542894499815519046307594172580861783455260866955578511210513360612492498056699604016017783420482110037456872439679309234446796202359409132653357449381497117541537146144277086428675189131233187300606543283127192294332044621883745589254617209280539520088259135053922279744955465166132744716800423234244017635593863121832148180769528443697875466278322167433376653283307855240761344722476591496700869400620883156856506897575983796324548335059559879951163574264888967530290534408621202979699737705202925737881732178498110844635961194944182196023361852950095836674430198015994102438049700131639031509544589683770349361861786130103280072421759321602987531470051431802533739416336803748271507678131295225048937409084629044144129112606193546465995985500129217753173134606042169471482219005837848622343822445734832923799752805627855593017011939754698033744438376252372398656786637841116001806839241074746749917209303648535244100097550279125524865259456671965349918070381537032816643125443808418402798157431933568822129681139293638231700861461089631570850458769322906939738858325676110083912326571550224944328935055957036515170812183868393710508056841854372781418644267007979837512680644134752551676604521501723415984321573959976998736953454096774733816317045273135278047846868453827489313278527576623598509256504300115518889246774592597556601996501326715146621934904904771222680956833440896029260901073940936064023884258867842286558856942605714670861522481661908249573902801829610942450261519640892012457603845234543009284181075219878665300277740209668654060371097954367038022472562875943035323066785006685667178232509625654674301785241323326010052851341596177810897934898842489649048024851752667654482296966283662840868136172670846792853812644396813505800307007733776525851766531164292024667185021367022465822707913032192207347567430495666493720866238945133790260281274958271976401350924196896031154145906695698325729822787103475990617674458073236014106697439831652104342481327022026096584520600115997520787651473467021144530844908599927427317970184845005475200278331945907479019862507323293805925462645445038763807141266716569476032343114108374370438402257023169953232604229867780274164289131894525068083888093126606779908437330597005201628437905207651843474252844737251079388257035076111655552850065049075345202169045093622674006532646874245930618751361492024040962787256595487891420206669594592472608080251895012075544392906820290932011006724113507575007904038908544610439427453139506846477130473782598610036336225606285015809587016569536175141958122610050110967200484304586789659212298317740818571601485863069958348902623630964620844540155014620604029658585715771583146138565106112133942746971760348919516101739819868643352515222249559864172963690677986105009310611816534521164878265768094119218147607905600475842509440758348817154652322437907445471819789408653224888822602189762506710238674439481371642028666319224992483342289251914190305731941491506677848234779660915620781495697867489292292898769857040128326483499590478029470690640871329232188116100499291869811842162157190249656637890886493377568480818395345101350764016047556187611024599379594047154490613267285487774959626796436244689759232357342492369361343712497138735271837115189028603106654056065785735457885881988774678304923397237371970042981889561974890257058235797218651278994517673808795683016940277851189049533949366535794877748833128317870499749441721712795769396937341714284256144574745611943251052397134775370288840293556666598079361706395190783108091456696507655037036407181575377712759437116972044805435679669298859164239505680082435520403976159349634244172828203780893944336161295322871979690587526864543419396598008079446416822836367214512409661065324376815808185569786170072179911934611996149485761577141276192783283843776033570940227541716712324787290284253900110838203976934643726579681932129691316698273430570306152951901377090832364898198537511802113398964155955804663957745167738216000792279300205559896547741657294517374724909599156353455292296077209763833436249585717477345799667723583090824069922501549869159222063252532507831698682855156226562695871865286861690153721428448770790416824031632910874075347439089433335547122927030164168278383498285003655341287033489125524961040786609231907188436907782640352909102317093304584498540638036799144349977634357761964828574617652735118176179739944726642821999706877393612827555556454876059240911360728149361468501235208289132835157473643472627252675282897052047063174694860674821985909656170980429273492626336343607361875515391078923850454068344921062155068392755124291500224880874991974166400562449894061178081789722724947156549891073714112458328018360302152578173660492740261023921242270321746107623588147254688192995578685548836147957479392019536996816297173709510875274859326256148806417298140126239349831962257650007744582004758976663162598511066408783546141320713350311069685722203010409726295545354238102869908203565818583215397864652499185154683063540963451961495291825440109813408681271881795377735592555469524394795371477034096122606235418402608101618417320401839525028471624728862974573983302891450310412834392674703185503464899988722667377376062453607351021841668097068409417945506384014535814977114411471025816757505673474532495791239051413584847284073145806321182803032852527434825205107762944952462536302782890559542553965671989187071552984440849981042720359154543121394810231850279446019824801409744012398089104181637238852369534819175556045871377366743955675498536798660585203207087136564408346612612312381937229164574259669234850730296787934907918220073589489860185325970481443210619113961065880654099019298080274112284158961341974065781116232253796565289902684073813511263972693232831141466874513758707389541193549049122711033278149761548585121198383292074176043508598511328334219328474807489433416292335975616642478742946942621956445802039939080482426206205366022254282901360901719218581299457943487418419944513501922089600122299453382123234822904021710110799708273876993920693575711788271204829013972375632548901528367986266963184715566416817112765905596603075012942940281179062403731587216446514017795083145131106453389605712531092973947840995191463627871022172404835769620057461712997298382265144600222377912981306048611462247576719670691862593778456160712259592501163202026296689741900988547328844488006589968397795406317669754607231326110844742979477396824426598452851078483020821287407144788819012616246178429815115530280940338788150518067664121533682181702063796306555937006169329238163900842631452422533012428111918515866371324673237573998600538771119545009844178567072979832035477603211876856714327555327371404241817486446287219574560917297408333150485350218928100346511479457533866265596671227927843031690490613799543642481721732320236152243778125904940099162692028653495509512173922730025651594015347253419123974555845736862959246329972802974464681291061580908027950779106496079279608398569296123107884539536841679123831447102878024131969340083105363681663090153083300781348025152323997774090937972989746867731275405400113610704997911448285333492460615013082796017530922400819157263566612823759871234790110669729669777223541958586252840227388055179240125640915887328364396881675609073314835359830681329378797071175814358111304659292250836338505507149512937655844811279958773063493817048796235872725924330105945394511557363478917404766202132277636409830924738073664128122687230559949710349005007249073868356703398675972044148268849845068902739876277158227089639141750668845856415387136560312970894889717194029954425867981388908334824434742081320853566955029400064857893007431817904159021810775281761511508426516754091415276113171587422966199556469461498713153379871825990419926341370338233181910364449903691003836567408913046703576690461309060385793651485423715126996460174437294161834200097503518560481980742184473660391113782826975645449345305982561109829888347514185157665543463422027465934506032391568699194249983457996012130671200288888019661091676651431662469447551195135149590108689999749354556261247250454883764062495447841828008398396652062716067480673336233337724520531413204052098794937905890978709697759967432324459873133054294478948670719167793063744506210303297799695229392848860747924367923157104709597757738594278423654325942700529348535020545097628782323237927112420298583680216741732829011184951412783566218721273358681898136343665638886112485241766706509263365068361635266354679929757374729405637051608264961963762155197028605532614570785837837891451324945701081649997057605006451689546330908482725376129886313236644975565200107768964919816314540062049569030527595929005379932760276529717848036496400810813984498665366174956301768812709127018275585015888131287411955071394495373627036634179339935224788109259915738786772188296016521362316650676871544152214155116239896096599098584127673755001349410801464003100936972472010955869903502643581678112263960668494903581078290510059339057207247675215552459994736190116968727213483157859031590735956740450812108808757063586377368937772226208522071953858929540855180424724251775439168991526375858061061133776892141423796258670671414554437911353820418549211349388095118307465125494550020583689001255467814384880693446827502465763376655389651443856269598968810665141116368208769486599550855671862490262201870691255516975579357417639755601026653951394583117532714290775806142582159682654434840364330933442784225444399737702914990605146229506325752074889641409902308264386238580194170593991233108568012398183342463348938213927457255190846617569481564670143061174140299283961450689773593424985719351670400413761117735677951999256244961636011276097251616003388272025559580722867677147087142550286993946029701328830958828390790048413369387060018893879576525963937432526037605181451025206999605413554522932865155136985839049145255802673457681348161062178230251077622428629463254469555020427000519789399296830770736446355220642602902705684081237746601451390974626462684987505066632719725452257398736151893972781235172073540594264628316650680864656453878967941143393166255575585583804925849217033539882958164195169317159520108601598077761477271720122045890794243199905446319889803034284097749651910409845944760245491337312673600803279022152083027076518872639825231031070712634846449745828630333561337895788471260516724923599776320534615814525332877080943903363451223815485275078301439697349801573548068169713075937662394125449563427670032065999215219230883268196256064232947753900242485053150540013308883323588787899930165334857260454858127436077657937087978040731427251691832278231018796409800898870187363913449926570528491577068489054620369366262273419638803438179101123020781417537578314580644816706049906429893892626603685861820769483959904978608597738586847002374879701737820329159555881006152745421678712803328226207953801963472037880280395887978019142037267691784938714302018413056101366194683461628898889235682216873195193838562077333948129211602544656202828403022593900339108363475281056175811509246491204944512819434865702529482713128364782567882607260488358145577535985455072524168140762944546977475357564920856673703223564224757749390757999978759645722639826520120787919875306389484526836899243634207490818237619231112977069649569161175300171063040689731933008226800836681889279102089444139090000909162480747346814486403235722930346474794014139817232120797179113167751916171955215845105401943410827615954892182350530150159991707409473613285791374547889292440327410227126087151948751675650239223129729157776837433180353488224119375472405231733005558747801856313250428871706803974061005578806718119038317527519484924231350567016791909155353136923699562547022307439203178712371858222312667253186724246040241395022567850964434139498601519596232918313571480779646680076603486892834154033568899309143785063308221538711346157851792372822069215327501872471287788538533087950386055737215052242615616504163826989094453718719217330116303828047298390317542058182858659505933083137174714153665476823847710138158064692663757015327334963978225285495435203104325039151994761771712014050896197532903187997727473158075169351194157792544956224255882162397603800929235860847450911791732591084820567913541953118372426898870946837465655112022968360449113923731526104309085152128339339300877030251659168142829848050535277496991625692143815890697477993537735877461275585342674487161356011145584436804945560583208251115726420286015441986384998712475857112066556905332808502655318191846109203501168234861730020633566365612760683977669444159222173163533202860579939948649519622891332272142782311944105311379298725754486814286767925966289642292223661875473174122418666885651042634837810754411405357308847647762899829671422540465938127239428825185910961621160620876666397885506091078259385719060302379562217880107871044285819236691376959108441888447014426360943963499462719850330854148837037886016952813694750956718644186081049291946049854115957951043503914915263316872158494455010467893084560485832912382942073021286207593177947790787001261401506471243557075393319102229769607778239171869761346789078975138431589850847436358740260340479192326656048186907719883012830795279897509432843229485890327713649553409421595181947351627917055304949328017354453257719678834293477967716981373388082400553931235839828782497511599086416237871762439829337641376874665020206361657329534462761894376536651307790283016561256541713416144084943851902163855185239621004475554154160464255615111133357296096809031476816062605940969134802238783749803603833173517472464433301125922245315378811751981683238177704789059898860562067817482487310475110249861046931081396219694796743056509979925663799633829460323690290630867038817997499031449342388307583248472017112059477600366841884061632368849845906752357525238979223565757163684709306734288172417358850755887113669945493064065465083468181159076012100218713996600528330911028848856788852814210269703988584096772413130854562580689083747146092814023667131101336563007608648023168989414111615810100624679681117631088188924186998490478294693239458143897876066940770772309650601115506577570414659691233763437341049083986188258958707650296132924974853375973850775052664814826673479396960135392731892495872580582573532152407178869978645862544559479846946165373548626466474812846518543243821106003210923005701362801350865686551404811045258465781861396629734105046674149115582869163040551885856048466207933153538185239063439337271217979737062181262982303907571836537212465053488494635655379786818430980630843798139516813682648273389716427812172475375261857439755289145319924617839800499994505792573465745559142886405195421385973442626665282214890944710223643332617651061336567169989235939814996498173348627564303687101931385704951292253164750746363386426436565046257241077476142561970605937838858113109766057572283684363546650676380918711525038350306507621463777737306096776705434068705311504382715799720972344192833311135924266386733861999468606160770852385905398830260856546103258868395093362233815227678468264659867003617430117897162546831412756041022348775533848388961447093060338993594432153434178197113115088497214355173963663234044034995999808572631410102147084719121232959398541054283822967681049556579890328078777149853922391904490522736562774990850215766246551260701507557927807259513937293952496849904671739366144115580265720053813914064269569019146786384026678017562646635736080624391353961488579719291206198457771389765666732352062812025274709047315244241303407335172434105283068037196575636631770070868933441329508118465160509051901070862224292007548781166650894558117764102227304278515547699186992283201699897472455368365011112198027764830368677859097098077687531362941465156620495484209374307416043206862237819115822862610419087389763173139781973292829722421633910324050443608065407109789788465156158087018746604961401634644977919193047047202174544915332133148869135979059085373315166585796476063882122328546247697540104727576192211267743432076530508832074512487416632958892851242702675786961510921912440345247935812549968263072381990725844729304582060934016671586906154778383418960837771074077113904248948238600968297434381386053964411844837654891868398830505926181943417353271986549017780613591316986865073533809751386910675246939818424481040771733911472635273083309080844634780094113998165904624595688484167146636050551508305866734668215814665951814304370736031241666438896175257545488271264538726632808726552892661052538972912004361571762822393472611135967314131161605482488470056616387801354526369983232799106795620772448533156067389347038862223132701015544549130589787389972298820929931629296334989050961934461129320607460584677879059171393103223850803536974047545567211094666987994778494104399253639055071252614831330937206557676569829980153616941282785688898044438077937913164654529610234695882875835073617838438884838271747537914633829771948706118624244573467228614252372855891933346097197402346550802376190934416876953486830892080638640083928247161783090295494495733211189837472329695940519019126963458725338974584805091544201604420098142032306702830195203332186836843107934527104971747008700413407928906512058674523602104963123092300571700597981038078443311625108588367038713860478667128649719938376995438091449570552975198120065947691663712714540564202120227794269536204564428441536617315001517602900985041813638226628524217370294843580599458745503873356082748764557573016352669857800231597740499063829240170744766408220105622462070883645121156186908513721017482032435894514275234062731453084345002583552462622085359925992256585076818375572069939791531830692661491785443472741500364534286783638494906614588557937405202802522985809743879271905479400706007055828783690974263503932049163355730669285243841475022826181648879270597265932399902849787086017217698795280525789097955272703508432978877266366059889827288440342200755580853388866261165712881038450317312770910349836750515591351080028411476360066641333861818695661043662167880378646377608678708151638943793827096840026331765327580398344547896455199848149321020857358364047133218528897470660212375207431307003343542105807162208694677661338607700965605545061646342110545846242518322224721133515932555349570908712134155440748791758821279325565800061403106137120556294850854007548967490373082823110465726889093589804216755297671536288240342946965094321444240955705467478030183110994154130212717257704183637989026131782026872945642692691624038651867701890699516664908092124986699872528954550070355620278265373009683627053331647623826665925941891491355529251199490541320555830601706703183913932547719245066946121832628372619966092394995576748252559392371304332983337787491089594888934360003066835081491238078197266450544343738778064463304100041500491728436380233977545836669899322629567109847192026041130189090637940424171442720154338405898866475077931175217411069668517259532357842970630937265475137433002626638738375375247132938967669638652402893535435424251334543082565582882249065259476302203709858235304691309450185553127580983542199224236937694616695442067922780940174863461340219495728039881682262178574648635359832097209119477647834754902142595650409110032087125587516885225030668419084065321923221967778283051371338115958977379386260828299079703536476573734121699748726352567357181896542004209092646125488297373434778302567300376147862113705397279660261271485615124178087980112699425385478293732661271195981253944493959317711643905182072859392047803229664677319643960943946760723312061556785621419622965289978896023564449553458817699296910354677414764277163898307168519513502981590608642539746179082963637788950806724044056553987036966453849989675920767665674355821106585860686409096168796683704191771252396185246232157320765862563802808945182552017527145361734236250886377422257924743939024780340353907441763694098409376665987083481333326892277495567590688148178357239195043338994323130878181336692375893944497173250728657718117174481748886515795827854916670218686543691738605410392994533598444736188338093732116984684450415955167672346223646573891604046767334396576461988989372532154599520847317207162988886618053302487255176430201369127003759861306512061489037800979885042579636654493809417054298714294048609737932337427164810646708614655854029999782408082738281642656084226059543783145339586721900818671154047820526733550938529385689820687624206938971266816761459319586664589537165683591362118516033785114912792058490065128394466344435845011505200528453351692925857510301376711492238517960436906409811473452628156439035445300006013968079950559327979031253829575478246393366748198105258190526849600948838294752040361941882253394372212587330252356454677436934524804555242268711737206962363080192705422605068647229241737073028369573679778801674133330574250684082598737194830327325544584174434141388147311032973026702217517014483096192708312020831146623901425352978956551315973032067966187796550107796604361594693741651911085746311271461563114176692708970559235414583970430067896012081380589353668166115040002178310728935942798115785831308636491365276636832507409641440328797357092695978023899442771801585955929171623195175708287245163188861651596605936491354613877903688712048034517385862974888832924435861218447265278333404164638565545601051684027663895879455426890039461945606253087701930548082988918079771078471120188885274667177814797553440840255689936901988844938917177964523827491754164332230338698550393025552659718366064922300934464633252248310106626625619593116865165706326265833916552354620737779028617742802104127564607237103688333045028772862252997656733959731999289986289306447105078968131178280039055357854834081851435207671379880107785363672559601006429838393403204858169252055720842550693963995988773549364506513476528853162602633158193449855175324717855693509844947424353558190709542482289485326160734845584188705496588635782237498106094960490780585359053474513556537099907763309766960616030571975193708551175682008291377131931818711381911346037097858117757342520714979621870383731779907538390847020079990496364884730037392840155299745322421117556024236634389401648960603556842550344013177271858733728690163206011481221816667071979628266782690449960926230729893468814396133695462830046541209002413518294676319660949324003460073151176314503842146130988316664849650253161276438550835691671172855663303620253564322118095867530255432434344156199379739096325879903958484231268202949826095180959922389673421918752976727201013744623988029721575752074078904934458327418073703626703652833060479072900097313570025590692364026418243826840873267723390329531197440898443402625567977659318769173595591501401734791061666496344218031087468603278275947044583118955631995301779258763642660040882117659360299942079304022053675172230265191985495810232682386181098306867320032113977248132796588085039735651714061072519660690955330666523823654061212048097464262447537507245333250956065273255935272796850593007317340967312576076712392651752342944227058944837708265391620025526650370457599219640496932370733838325952235832552265292504059589007915288334040501874180701280808045301236333196807152025416887215411151840393253178311078526566006237360975886547545729215907092086228126782896806928568695976421184334896636702966602158967266736635646755557490847897669332648440148561868816533033600116999520468934827811221247156651686005423695548599795666836536329366995361828791101049247711813321782147413998065716202277993880885341416178354221673503150735394123295674599621781719330646590918514963862602580177305290589931249143311360643713381510973360687584711601820472885138324235515746757925237971072473112409454060109245506771976692156512287928554689736375627457680857280558597487286135037923880605040927952850249219759961193003118620381929482109063160094917234311826712106772004896486218767904133247421687013275459345252868660234185246600946312204004827059026019360223143442798123142077963082061178742535280517218153476591088729653378881975750499295553913149658492410169695597069096059341397462405864774938627650226366316288144544509093079315320683731626472602341184985754580232249977212110471209651464765774659844585747632302498809318608496808970678043067400380283185116897204290043752520219303886842924245646415008073029493822992819890326479080858185946493905896756844595823686031943526610652066414897941992260221610708313919268318102968049936289051140565079542834864370903315224910477154157612038620058527868632006972955591029821122410832330325542469030575416813623295024417712472112150294009592322402216979325320699247192130910725869396672802187504541745642886624845604041072311368790775786861794375003324910215236151865737536991916279391188993711782157953694920490010689312525462406260837903212670317002132319607200419977136709779159751003287177838643588550934403951562901650709183444801254970297715479300968116579261574054026076789220251772520673961253450384628486045351821467534982880096089087871524636504113243449354521337563788267182407949507804948057562592827241294751396913322006257756028408340033638852019122213242473501510694221148457991280303710497056976854491343318210467428688898607001063299008151942810851377370504061849758795476834615182006167436432558108132048793360764680541781798840413621601473824370908978551303208793933639527290773161011716490456668444835424452456041818574148356141701565336129986853711734552713126607581444304472771289881554074540531544365364957951925439645558348041317450524916713770959704227065675086298383906765814901405521474127586924945211355839579918737622864124296178214821361228943350148082520010527723331275343518856193802769764316590400789641478925652341355183246622119718364286476935322897509147770433308513130808063713799640669755688100845522903113793144029413257442009780298205392947233103447747351055994535061431661950444553693185053021978225659869061043461284293615138781050700854353942579768030446804118988150117307487022807552060464071742112743338972881959308629173559321064137161015961136697071355705953074797075921617025962933785944710318380330875055700234926238542002106040409940616656386041700070670720272084620279357539906380018589063224693208085391120466441569519659450053835789059867398399254420041756064279773636264738840604056302430774650125260690345189723884838540516477390823343015819017897835445859208632285048677985424783972630854906917199798648870920106700219979972448270788807568710844685071864780187702267648318786331644307829067666141943964114562108363816440705022616907834540199047619298168928422612045163946689335520695672219309488162007413774191962123809066300067575157939364881467241213097166373470828374575643419877368741874571036057308807436202837988421466311210433916826187841306370449041937960146348078268327628716863737649992049421637677741794934403859561271478224478544430461936323849098092965741606592308358398537031312664829974089280524018462316612178628598264931097673837237411010697323475828353559618508259323891126115579815149385418003819968365034923606982786569911483678001291674546055410437813894240219589132577086537838773815985627028816012838983750635576856028836827214877729309638667563841746683392331873189231673407562665623783640332614692993726396932399738908466823482537553030214659441500760521745649322973124936763697569212541068149770095028756869448508514975735841654547835096607754766213278833852400594182849967673553032472677749245460940344062581743220978323040231987655920461656025397899722332506666031293284371559159159218608963340482823053094438699233886485178271682648531060760022674191047864179435864674090331430364379148257295704629338554215650213317695745218028623117143438030502442652069111971140285408004529448513117296961688083064642426540335357825548356594186198872549475019350032358537299277337991210436185014221242475695795316293989044056538970984121130697678037497391354196279756470606196512789948307660588632928860164419229055149139778536422461091144912081056381985330404419125899547222957205440422496163829665425988252051840999891719286179104456602890071731570051699818947269109315777157328082315369672959826063056576774200525183171173164524578135220208235515780724737282495369129120916528376776240973539701454964444901791189129061515784882358122266931201209414194739158670469564034348606502795881982914278933580979851103180687353822524474357932893778785442738522785849152706544463023709420292207788620482054292170204646184799466429082386888687478717951373095448415328139810131295870407479497144329550630157584194803660245959228566231865235091330283059234750753197184711453731723905696599093077970228333964023937181335061145356992015813054971372387283899987498680187665516553754098161957879293218419753706304233009372854430888163974307660190737227229929994140242209896650979532244155827822448005142638589769096816411430952119393516922098355742696125653402731283017228597745099601118463107643212035744562888248908852212446465135082577222107481516426876313149010268277014367382836752420822773099067019029397994615487260349189233897711308746640297857996685216548100989874872613863894508953078386707158666531821747227143006534989467136480878623646643914482437227715065222896804813097911868850086710861711908762837422841441022227739750567185095380359543327122465538757547748794212122590236239967369677543607382500630144226282307255561513342820177110428844771037185813150661183575386127049058867092093796994795110808084337784515412996239761654581649447073528102604169139614975803378095107370999024218374535497823984071597980115462438526170368153394534771932733704850550381041393403496222565948627387136126475677905529861953416860811236547603193581714640925132429125539016813355643991479440508025163659255856246660566644065781538877668077791400833131563103720991377462006294578387224964950654550418561084215092843108687263110916866712004387733384787355695442251689317817808981986237937753803398965701806587308270319347971307720985375747271800643477415086238335249417388675990366693237488392542707803320482855924010676815852527973581368205098949257093602065877069832422026091827746918297044456674873370444561135728868156672283084586741603032552608506558661628103930686634880868632246581556720934156135747610971799888738122318107597197815451320496724777971728955228441052474049079251972663778905033426335567977905428778592939569855858966513809615145013307989830914030034036104245920728072151888131246546911714790441180888266867903073117799606764508612475233235284035583872351708171043157596190970247421093057699790434274694884709984477683888027001532523794325264087715824096550473072314718349471431676939208991178985410438446631288996332480606734167841700437871204412467679804925889375800971788052462005683288630869328889608896709754253104056459167721191093413596927350513297626641311388162725346963023114456704672075546831865570411120446373977686350147188105389747368862735356340046712077765068501790435901376255001562271426990111004649290976847407322804627667621574664417693918505185152923093454300391378273663040258803178376441803445004420222797444184676883980321549065551927141640258922730249990062456146315667355619280014116908344683677919673101939254062269842770255462934686698716858728360307074426034923696575264435305020742278787444883963384861032936426741007605702785263832925433878386766552325682452564734524035728567481887195678434284168257024782648021739294155952191261366910515479884165383857346690058654469886740037919265397977328436273415832812279944619351711196746309156575255081972524683081894004315379447482269412572608233786397008755112017106451116344964743972522089803047141615974779809507468222372345055082969487596835797895583012755207172308644533701563491960155347089566258839749074855892354853211851224168510766758411834293412545372670038127670540661802753513250436172550766878075658018897666615944212354290139539298195632658869755653159974584249412192135815479700901980183799238365086404342554571924718162598971627207946823800511428228076038476582617944962041937452254389104536282926918201827269275537542188539669842912002149855032595209283049234194277317437819499289028868950184019507899970365917181205204659340005717514517592034545283366900073747221951927587478413473371235487688844758253791783931723576984636875556962561065781390423762780544804009981716943162220509790493621506075227930551513222786569817074667022915971681125116886442666071096040364736706120971750180624509190730777980836248850640004988181608040387471222915577315054002354513774721814940781170772942012470686684783736213114604966911409382071328876867626376939103255974060135691047951774378535575310786324079709919090578946485601284856453993048198317688995811986871949374879476042101682931014471020574343175835838974751998148564038814232496242636421712987240160474695019173725692096388597055769627831161229230930405953977715932752770694900108027430973396330483366081906489217080936808750521074409055282644956247799366061440401688040493949042766074203992948139814014171536204516658287261413896008725127278644215232565796670175400867815848737600936654563783669241571333462888815732065223650946238255442611233396127232040781870248618537648842060933215682620356663883923054977894328741924369575256676888704042661633583608273698839358471143049622631811699448065220300381651137263010234042969244764744928042000092176328695791078011545444783123546081410151473355337418299779235923800462032643097356431888226030994493850376039705240765136721941820078862548811371220709185296191013280750632782848919478276836442777036384175758302189285977368455035411968433551822799904723112079569023148626544388625540922833740173835272481087163567929296599190914488877790588269000069176075783072668222267995130697128593889334732156419554161613818046516295587160314078164597888070115569502803418393713695088999090930045213111773622273957023033156402633690946928617430744689717566421527375584829691760845352148259367527429280137789130655609916001556367885901194633388826708038001746854500065982192311821234582558061677387354110010360060294579984309768285086906088394077424301222353645584868226564374039627693280252231253248734014622912881009351012727725193947391609814566182811256319730260485593918367505269260836453499183247486279710514535686540361220854970502417594452782964010531703057678113777927350069923006359921938419128080265587382415440088317405002287982023370197327185041730959824056391009701430918104897874435155639535449246014511810810589209014120612481440815652451685543167959708679163652387790669391777891344248377658870270972857398239050461770792218676190467626025846899011099034125687290795485266499971220177258232657506506493376566367621329387992300430375507586113827033318696018731898716241122937845572756661191582789335268058778928403103304826527895377579334085162839871804126338321966340412400973806290963626802195277558648020960361352978049109286746070776918827339944152402252963186458672783283133992550493549149490028445831886026097165665110613355837888280376776554013524795927940181877767293664637422367028241720527246996453679738676309358386090476593143756217590143144497857196093833864493144692512397147943190738920337829349723393188977817435246903893336697157512620401469551956616200163621579184329879970228361144006846643774552993538898868572795241116073601639046567384852786701202180704367788419308728766248412545918134499231734419621394064162512589642473973813054077538786131526812952935276406982661290372461367115455240238104441588453058183419924221796316776848962731240282378762185447167080656993968709407773914727635914162818801371872949485057011041504219887818507304905142938387834200698825959964334776092711345924452109775714469320384564982716769271708199024917689051232820893270903765375294085034496935308682143296052058057606992923145273187290575789650985330489231302093318147766264045830927585705458102314033850883461751553308600196930314264609891999112871837391613781893958913385188624867168117620687688754306477178679620901560651852423317942883729091056174547259088819641318063147452021849000900302516718966460442703057519162279470758080542525440782991484913797514567362626292340841294047487621415534897161431222052231787865640572079174001094043678456195482435501608473124392474422888702381639284378374726005280450061758764176641831683506051689039715357181304521096251724447423829593300617791143851472673384359535331903669158871234329791744353113562464972499544398913525120232625341584345617117032506177808772145265650754818719446732422081681861810724509940536629611348657340768979972548482600464004957538191091290784542904254818271138016447005520134859746351294751218868975314679596688536695614642004637828868829648683098287921761964453084539939757595328898406589042101376083094398889108987064872040946782316593149483148745491762648410631635606355787746225528958643026699321865548935927863925872267496775643478103056332908917548612500322732293473003346693750699961907804885843228707100107480031899435238404568356152042241212141534348014508530326483160740890532467898563533183016491954945580588825799673736470799649187679482381757531524161730829380942020050122895522610073448154206964094718268640113200666229156832830448692429718018937033557391776542817134711600812727585804502417963589822151483110809716286736673179108912307115894675104040911858842917219417348332348955006905556905034120606221017876810011356883260856704973651435848010041480507052012419904422580720620069197369029017379141969935522531819770172141589394397121824586666223853874134197187940038400177792715031866500084637593707369129292938701534401105433702925604223151396089466474557798189211987462098209244317734559005813732891105546466226295549041149324617622702831524126914054183632692991255655018358824123145237336553582462098220042942666558201381149290962812695688626589783337100863607287104175970873887941167025722662750906865544747189731316223520083445644338168534646087618393769853173117257321057810193431924514374352034175153423721290796064355860790679768032640037534223862069699710050972721217155684570678129554732413539449077084593343608911192089494353311080464789591336292788976595484121308119288982684205972543117911614402568174151939190999804412264421810584802504358874141546430308323555919980955283222043370034919473310566335054809187472528285546742007108898336159630008530221987106764746425000360085275417703488343225896991643629583740292296440354110375176023682191426645019991016664790226517903388492840453860288273037404724776380247371638878762313876221470178183222977959528750946932794006318703519795373173303311932941218098056869304069925041285724754185666308400775864470579244829927687558510524193559631762215550275794381781838210607011571526422860907611522409338385203586374760719098303158667132889154317611982501891615684764535465481974148410024935510239492489235093455497930467806990193695825727130137438920537054820667754812037623007151880528741910231864705165397079403556942917729544417932516672111090348930314532474594062673425590037723284250050486952203225200915788605830126903254879685588074730068115138096219579049618253988506761251756216208249027528807024773465036731724901691748558003389974765182436369477828085272275704410049265795208495034662780829013550243788645858687326136245719791281269829664071388350140270180662515580294016301125967866750524960480594273423582134180882389427043924117394540910084921230119203304891305468669041759780332275899860240157507388495033197385236115868556917190997614592986206726912531096780978754793145189222415836011948257120594898191152411705896207839298831004648202168885816542045849167386365674042029052274510653762766793338109969212018536892442293330669396593254492902604043282309293886826882713439362641063631397429607995319757234358925054536669217444942152915855021889699781165941952429176708306231810556362323349300892635943548751122903215029119535142552539088899875334025034985306982897082576120271551091631811804317769329340460847682940286959952417947958915673933428157061625313001262584823136344970158697451313520509455630655914713228557019057545797472090604419884095070524463732106452400252098373726640609685422914243868546463303138662124950388963098136693487756240436771312833212433897249333063169003793586434180301827196569020458770023532545915728717084053817705117037402102322678513125863686371151148369661287848398561931910075025184187090551957286127260218990896767934507811069684013207893180772421669805572923050016120179009839455035409468253489196923722021838869119053050543663226294229120407188199850683321846156643906357668773160746089340242130985730783730267678797621968710998331235756500593069261716516106222417093135905843895375101181576476749082202750206084590322672434050565212760235380060833113559096632874805282549783413981106316160673320663416484499964772363253818972954426802463030171531304162927555857794919696835421105225859934103617302472224324520574064600636720531114393569344386065345858695290924326820602452961985459755262150536222044455379233408139088209748053546881241947320395296373435707463728491108535634884522989377465119963048716646162747550713914791224513228312758365774339639016011895085254476099685922065181127148421679986961212404586623138046995862517990837205787020321932749241373574477090241154318540258509936462923408360920218302038515050559682231179732624352732045085604494306410730228446227469466702066599136485759825582354916893996400821520173454021336906337408372241252021652449424489488879206067062677668248183556731013581080823188576883794435700287874200978119154761243503159570631448856503731175319738804155139530221292913229423207708805145103578893116606861521194178905110411737795150219943967983513063257617751412051294546627932761526951347509647655293487627696476400900323089805730467876007783779025888179607625923422499301708231912342580107465361139093542673706598893682389669691472853750563631637484588591030789407027724187512129857291269615492004154664391377859125131562928416294355845991960631874513906611876119137661578033460976391739960560952039481943937566237314680631342110488561088681809365990109878716959762132735963956369311215489825807886698415685441595894198367257472882336741089829660983066830843868616076242115629402228423615982367752873839550825315139880437146301657777248442518343716500303698740059000101269548531627396175368534513383511391014645402613864380745344431871525835078856329529357231346615609344168722133128793919248849701543729343223856822220397106451528257713423435439672478732457655969341753395054311403883179360856969862015916859816838264694477210555691790670109548759503248821601308889664210577863404425290384338600744584954790032060497468734931105573035239391566797871115012597050632581395494473872946871969183038512069645578441794644533514618889776086448272183354273298390824806269930476465896876970946355444493362920551636105444281523282147776499657486028408625771022037124853994642561466575578954213707607049246921862695113290767775877852420915415519402416101825358257781998062845313634002383469348251399871375333908375758192235809777606446479613273867974081839987322709319922775100633497281440111327312010852387747292319530877456230690269971333285026201158989708548607663533569339313587050299117753016052973847202445090494370851617029653427362880872578974259638367390280995602733296136323385196919011765018599043699535681737738501571508051722131635302163624411917478825479013802373596956129337477313288397509254394592497471373687133304611555806041032266105321273177215563824582757100198071284061045351428783749881826127394493914030180372189521686640415732667498103804535882715917320871484679130201395924594581125953192389714922661466917033129603441750904476867650977093571222454459531151484156914002114365428995241728734606614415030051751892071118125472896032626308573389413452437379170757183364528369971797901916717404689846710779455390326745263841257284418223307546129778646363171766797907719117959047636281493659836413922821841380041266074804708620567649547869481537324424438723088447843647933916850827440815226666541165396648361872999065258566671950392804084987317399087038161101127042545283134758346683112718778200926982229112778468173590166011531113165058769234581421134375150449218039421778829471853794902693705977059470191333389390956003387482090814840529277275577319505199394838263475177299017223266394476244657442944084907190252373612813049952388250091766733568543149040271026429005546582998008561070609003750194616136814547526023196026642017801471413866808519198980491354814430497591546058335164531016091313172423829667843293772414000671112824311947948979742815612471074339428681468941169226055782503277388366368637622923285143057795566463890807855212343129633395650916851056169366693204004478641402352227811772691470423939085147048767202868535733944750115997601517676830856414780351514381518630559219576206055726332905342378664168238285370855346789738689661635627865084553399207923139663211119984667246717416701132766261761430011356612264793976930621243958391889517284506421237514307820979933995481434271725311478769948460059702302220574033754280382611356796171409729094849774061264163695557302266278729719647573777058751080670018575734679524546728372702492379875060715133497044545747538725210675987249125676641271898311819861723519698178551744429293020261314340004595176355899409563482138955755759801578877934999039888042079745609755786993383793884534786615146907618968187032108277648753586134988082036461020615640498923774758606883302902736941395155028614684816347054441417292047044445664540813915451011431736610503231932076965767287475419631707147142842279048030146409755707420778836052089893179410706592830398840662115805288812709118282249141830648455578254930271232202052391330658418981924807882701926112979219066366579934671546094286914988931306540724223077960728137027064964953099289882575560500590842002943812627072798228720148099378311409250749670393248766043893750768847927200815626120541376312517634012612226624619433193875094105650271209798756865620359452855426936357003061720316277531045629499890583823309656025871643412329013694459954761783252790768841963843780160004614237895024714020176072443655079641605954164260262497754190417141907704303784766941659341734290658648445211921081179395389166305280935048323981095478500985417558436951162906880543875853782236762557787757018913088530608119281843491919527619681576904233254001771149616619064965127633641976738535590843440118381361944161903910933857202262134698529491356562206606705500530599873879162052717254261086319869666637207486922911754924976576590388717971534768311976491105586170659438937961172438587668717341407510847900795531142841992867008570028672187926968007844525758150344883275961287749765261714130784762472080026409249026223527957670765142333092631313658867116713704156326487854667550396746654307407639679182982183815166454391289079521944134200550012955839472283710751263905842169555307262791649986237837418067209870322971613917622241409665999400647632447113786245979216836440016664757438612841901392939274236934165668662063924580166102356186688662662570842390251266242613756395494508275561076835045624804968925202465573144212578594262732011961389008897104476947380385298478869620575788117358327106621524985834325690421358387968355453436439914098822606554678358611074319663110637879704230953897592196985464780644242897163069091061055782138375101199346487904285206223151154410806542718778787164637915460568451254647115682059438475233391011792291507220062646418940212813737221038481585052126494545681970742168810801295472086833552910506132860908325194505971796759376681369273903532132703528402990550192348548890263306911108943624262456338122392013328537477787580894425605744505027973006480222002762352081665266153504541626639576271442828195230336997482674768367161415010965142637092807985359383832957436266812806033356625199530641331556449066103032480306051071936598839726073419241546414187511459917301181117614199376056755881680386352147202136604809926503234122693458573024119838296828938435236695348718863759572117549490579783784046197221450127720519894599048195979625927571495476293641936423679514236342353308968407995360341662051636446327360964188575632352615839176339730743516979713949739254616607109648149865494770819665914377206205429371744036453347560377486261648016505927549223264109666480831132436338979547071518701660834986083491825331127008379373572711608616515834017124208462291180512252753676613862857214933646552196438341349408367256837761214396564632206115214999408691151413639907284341456396783202798824836528211987744632653649625588160656958392065301175025475463703825715426821784990614503940771745271121872450693790487060311806531127582003132071474649794487010734330075858586382368617208860473395880145285077089552162243351615711556919223290672505326627637261828391929390153415479579094965221279749165894075792057838743871904923641279125233219379468990126621982389213610091411134476851757035510643727802821428576382191563301648789486850369221683464893828432636876682391153516584873908613188301885693021859387049757495990972872480828682302903998977674142215630261170502816711570964808220870785337856119277489509718067154273566763329454041096096946041474790843575799755053726702601909858168988159779452486192720229592084204747438296905516726982006817266805681112647151233717145476031959286476905421454483438014754708081590710783104548674278759500457821868548912615169549688650317480961157381621979645488633827122852396872624775015740610067116538073582360819027578581053737735562550126951035520772189451750096693394074626475891463686486331231376951582832823487387914124466996147899592589155562830216151994897405969823779371982428841919437954146561542159849714331251808717015697834118364130544020556690180237708983220022384112305776344710889169797528245137256013781492687255354051911109451467665657666175431606618383039063883547353455855146643313529462390038927950322891350746731359065868394059959941604580104427383604294576727531085199719897292922112733959105280718219558611010159275046500627683961352400013510441808130659653196525545392532881541812754344012072856874579179317912382785493586848467129912938376040699741651446289819758573007972276032770800529647736711812476177202254395250226462722016211238380332346002617386268252417267959893323201625938856282163835575643826143846346050182753339569211836889464451631026056721619907783903221500100051999140047081227324618516999917653961030012440607215810151982126970301451501696566645398661333742770544228034663042914225214519540117341920775459637327660693616855985314651247968078184721643381551645945432204959703744113127932758058915960319176681111179497147843681987292722789104175762444366166683867202578707512931268215193136622772912574302098568897932490990210019703863845582227303354449413209648486306728217727876980383139632047984333504294910015902598348174432661950637286560168761282323751442885427638591808744087086299503096372819849750521141680337247518920391552888125769515826295212180555956192995898060303056928808188684339454416960634054100228558961482020423806585323979822769332244890277027503838956951983391365571723614235496542040509239847662048796668594935832086115381494683597193732907789977889741146341876460423261463135579545302240689105237079553116452481215575102832628629889125866466629187098551875514288538836929811860740877381767662631821810159338962374200211007815991789217007306194825406764579738809930430517674876251861029593191381130452352533800355592211637922648994141016089738539131931347845924016400492638433377594579309159566317530824179734057705195782347607750734887395876613089489563041497384218369320868992774637556914240500248923543331829538640576531799194938805331681633029589890469122270743541034034023757684987160068851360432541966788857246831314170362376745883679991557432089405675233587514603189333158500437558561988274382873816719993612335148944223536635428280965531990491322074199163768608399884858792116004111773330289409010193407017086527620569039510050578760732444980220352514209745101163346690736118530596646993802468243037354615070383200243449807895807849604103058569814778032681010302377997825458679597603183574881292239983632500927187261931294906121911172647147949311358339094777363178379565892852464056700907855965555968121425543532413749286876256753323524543283927416100498387869976387443164331463519920852549848951069375639804923198180569803286119759915906535605307667195918709634680804594900521931894776312705222686907706280435540294279497119101244103626154092868802131086993071659975289810638778088869322478830991650696911118487534323467182066682281037747864218270466838740897173852180582528279253686434108331651467689726308716375667672845541081762182323919181788744126127558657252504015011755433734749742277700895643571798504604242217842159464256635831926926702135528296446578035864327197739015718580661445330744225137130001340446003356353814766777084934426748216388363847580859055856742610674845126966441366889505750775798239422672106666907423658478830986064099958254046638018813383539782458356147962554018010989617394903736469998101090668199528207448346242799409094392339156300749484171207914874358678348827258424484016340906636143367141301373249044812066223707889585550011254827049191538191092346637448188698146295400895934995312783040038318249813158709994339297651536062543233161034748392564712374016325300073716846925367053045840096114926127969059279877702414286932298731068398171354516704886260199839494054480896197130987092648001797999577599410506128480737938061233844880941895975047878781193688905350689255833029246601007509104820103776206221247367979191724059999545664859528850996017025736046883130581164149949005381959027596189311642843296324015055945618663069498637557738380844575228239433787981165165925658934956919554992236739952838157660525945524682399932266217155798315551005242844314070922159943166037760014631041432428949734287767493911258077630842605641049148035509142504919091048263829661119053916010201178730036648799047907464467297723350814463255842991925811341176802559036405496004451075032017284738571625173780694731388028623367900051006642339678474725100291100448953996307967319007330566471526388092534099353637611578264828688867592696595696210817121351476025949410151936810500517882073643459451888211632088232887494164314362849451429712161035789249579859433479958428235164312528686492363279897191714233360941914733168826290618783148669057653150333824468604053532479813617127481089002146898582206544707785816372895145635710597188386172477357451955872743988670110283143375543528509035773156324948039433703097068468867036017516418511637997397156069981015605004239283356462690293414933539995083252039481230658425848850514006152124777377566295413861818116031921192432842240610294583665388964104746370315551463327889080238406312120330153733177292682957173150994403637547458432015002260839162745586015441574488455605171074743799711479584886578607327172669084700744899402091456028820141200516053566056151644586246166372619195243875563785200838611505942658602251072545941569631943791143612899834902387144950422949366246147194183558859455802069348596877094100630083537525685187231068081734446855559932666589323942602886269038908899987692575508601586336702544473189914086192416957587183006508328543286278330325565422099899932085252031292576530214584845902896329892423616352178755713597745120822700700933499547230797710283262418542300225809582454402070216486236059991378423243115284100986082657283197543098865448708817451327681443789561262634362462812677180647965037360281928148507294868692329719540795014927013889505710822245616102787017933472079160969818558724749931816471795845038591657278514210560956202572205006050183262388885311197454774323659704626833019105353168012987362381840682655627372007147149722214353862862762139850106733034235291728852621711191205397891743547664620604567089293287674199918657086643361602008172796210735179260013201627992403378579344720161542910221428897679715511143381965442117950698218483168298892979567871372575279471675412073212902886222861017371897144307002551552485829731007056364652276590184862582508147091461502501554636774250099262860679183723599365811473540484213860114745456785487227986420202295351584038694003406033329091731447269529232203769055554185792656831250511926782892393105143300536425386514085270245550690431540544700921409362113003546880363726369854309694723876117707993184902280397505685408123001100606160234546170569954426352871153485760626885011530966973401118847120328514779190303190012700792005739688947796904998292990215839642802306990701884119024137996617216746705954973603236352054815009424210713376111860503045997311638131959145505819064053361671237094662377592965926535291392899523248842011883700654695360242711357729738623816658437726258758104345028144052183682022607228102972370380927211684585411757413824698339433340341317853669865130439314582381168009979559390396143739495809122254584910277827289082694112947010014140331967732781540710227607885824196367811536674110751062257839998824190698028002929119863653969471761414596252520233313630394649501690866310951897771244913064731158910931640368291999189517030382269339238707947049166640132770284738617072529743778516193953532139969324632510232054328860547125123328404727241510149806296049067900661161986291343091910709040061293655026117917305995514715414637337919163087025357758290005495017135061781805200001407988256932254997648655989293941012322875941663003650872921817323520048468724678105131322488986854867395337452097094525717795709774250997876294239074762153707540517804702381023614005093314686470821763373698839019179423802090797717345174372523872663052516987628057019342434832078593759473093695833644193574546814308094466306964714978470258129614782460807994459596112561778685034159175995622626420288242538150734788277585107621964525659678574215111021538882856312797734909625628221579126098837047712884744323064614795412747865886359516129263911754509360133147547254737607904748252664344335565164223586952413764364112237100137759279721303514484486356484076397690372126735424075569005330688359153356781076107517627541962034182836866193475534774614433364946248329059451779669877070437422444078610442819340072844554559674909500491628746906634426344147648195990343859269844274497124187901158655398203023901958880484016314921076747783321482431914104460182984090643819936059393001854028601286240001847560754090731098082855542281607394724689793662841164893516081606760170405681678575638294728466868286926469551723926239705491074245253518403178342843516563723117471223215862191067220497134672196843592255528574280995936374266681116892342812500001854732509911151942474280856037929969406132358642177225225179791002480499764814037981297883923152608943759058458545267085141195155954725854996816107568317025391059683247911964990344081146232619245291586188128663609653112901243998755010290292442892138814966143414158362177137959549373600726244663948204024462073224823463017076518334196486182095515076397080815467138986654414471790648667140079899974491072947113578485804838107000895415431146179054401568007132340787861767597821037076878837436919291372324230243305242405016942607111687045895124286211023318646440977883931029144599268571766326570545409698397109545306832934706130862082741762155880067946932714554169076726030257638762637135969647454639448731614960226182942071050026478871642023387841956302338235759802619977949193111850308720074889923508630337171714956591945803826592854522289501832486843589482567460934293415410459646769873180674303971998473784597256793751773705158409420743054558483460794487387450910714568915964499774732858715064866866724278766222782309195682498087976973558445318310165116474920328239017479346780679102651702533963698814281864505623738525201134911138512527939516696993764168794365823315013618180209547663253425735482075813438249180328433209562117922834341068194321991880050257174689320166133488789785071876415934615038178372209330288075740509900543696243404955640423065735674555691423751117761528749574482190239936373879027937141244677398462727802239650278256962934927332826173538695500475471327324124662947395755007676359834117167546252278529189241566473214737916628818709697326751612144105150036929966381208306831409844697381316233391651676634719263719613936380483256311357806357789050614407143826179249809496345650855491428859736049359295874492915508513534634676730800562261119204547363104255921120998846586130034567438236751180397738440172078715389306492698292765408849766023882575780385695023396897528391677834885839113024654640336314666829263639219732097807848445827243926253875408333293356887711424650342361661899877051046085656268462554852097728018496119015363935621494990060283280082033153166416118600691163717001753046267288176281256808015848454664454858709362132579504138161431469352326005196928378192448397331526523077161392354124191173849827233846522861406036939201198062931406292479360622794586976671688393666974613734419896047508499692685550215893455979607756179484231170903968048544538120802688857897383534955409978585778654815125286241708807958274026186131418294249835901497466290349583887258672271921443234491554290217664383043012897603139305801228081566957551713854055745855033789434743986425770547220951710183238767076326709354794722203056783025359281490975604778012662704023438032259387708159170060647647112598470158835203037157422423450792026345120823830329734602909203885675498689528630494066065008161536732353746997931756022982214667098356532537317256876005051828761175142268750463235080414239242200508681672024658174376600796770406452989070504640502982047937149302754394187817024046492589517203705924266060393762397544286753545895764357835105853147150381559775429037521443977308960446668577388372838379718974769103674447870408079650698173825633450323794823724508593882187615002053836284091303688463019090023005904011637921581664338821648021878891264534504527122761466787160252044568326131196554493284924491147301318317864631937711852030662622700011752180821905768727619265046103265316055301895932022997151186338562650663972671609480279275863018100023074970505802911085208055605302752748764224899701901158640121761303744637711946997465331281852128637763237155939962554564983386796160817585911410123685344506852707377834184000427959188992182283206896326999357403244599583618325810610383721154965902681349284765014849535709672048367659601247049739445505930329646661252549904762939876457262997881973055740849161769971492793825590759270326325601558031979738430863618398626975197926184628597112855378563952421772094979824777744345977791423976296779497835748516279807862853721744964762748077913478683826153643177253440765263676439603886157848838573546499207585563258651295951253047903400748278242348473530174121214244707060452327715840221236670652378566223040328847396194792220905258492836619598915492956122732261105606573484256319979716862925371760773338662943081220473223133591404955604630922774670116671634885143178728189296560662286295843673835338610586028785847834356017577120824506134405697626441119840975703664656676786604604778153561697930378664487429795170390325949467473289770675324901417395542030509695154865241317671097729974971556767879979419938424680151438588352661256785964477854848929607749011128848003771599338718754640211669667013442542222837556502839608151281428721683894473109604140580015925914570667670936551513718257139227041436667852304975673854244735572534063188928467243037263143697490455449156505170239803419005931010700501757820348689902259667730029034598650883878128745045697076151312942053662230089545634341706032921346885707426580489847152613271712049704421598432757027240403579232245167250561461065624782045043917966917135161937118089530903648394162053688330344779285368105989866240084017999362346148439773569069970284532876999817211651627728350963351435437180923873429951297001013751730759336230020744260148996247364520679350948765990433209574300694797619118001992871100617543964677967078975446015284565506797901578043696369717419425003736068834001735670926694553201375120165342996759967375521282463878363736557503318951606129249099843866317641406448324299466491517472729624739746862383498886583847380865579751539742544302496228674012210699818516229374420279794741701448875797578210249643286863098185444723785441836841800455812492202452307504482413486454826311835354146946259300786798806927756139991806491583342530541337203457597574342194081028603287738277424438903556546055768724646669780950803819632668738568602734389786050589049889440017954736517691474496711000271157717025922346846353721777544544920323015517556200690985285614770471950455517218293633361118280999779944729126185148640704348470808408407093362036680449629270752397371710716976681845933325615894204286493595908234022074250759875403290169550420247481417966422309846811625157709252916910543603541722518334298559926923915968589971094644084856475886878341849701557131217253041876460713854954488628417514752739963319045929193119228431005657772157532350701297786882517260282409740339799491632709494314210241474149883734669953974392067829046940730423129797613252722090744408115477737603386166312421005235633700747210565946746364149866524979166842186052613866179686217740278535439865324116398478868675917790984598182035302594165814390836029984831743645021138724497231679712437697493976411386399285944709780114610760445821786803067216424429541958161395896956827105720208642401449744893470839026508214792489117702901190975863461997817129047217272806075532706530731930356394771088547369181279959232570545081745721472296964157694101970091972304257408961399382565669666032665144209977800927939551004062108231920354342138191136951851565241128348136371421995004594134940002684201799844021066601287085026178433365478916265417801298503137571807417803049906401102739357338409255518059001656755974352878464926193132045619862216339201986391611275702505503192283382653828396931791083267709155990396136643701146027175947273974144518726732073994788271674012911817274977680150100528436384753074309236123932274611537508581698393485119107387020885780131316248604624375953284639881640124096951289412014510053648790886286403406974897256063366284231177311272083646933456522464730210417496196864698492701152383282544713101997295605768320559722273497029357922703833416170145344181778425804227766634134809980684827479340084606362846713820015958547794755381445808607253736488531533397681008060891399260229363303418765737551769590419246488175664141387202933225068720847415193558359640911140864309828887331614660282479253710901255160465896726707180996799556126837834275088327490218943201082292653666608329625409053417319064541189819915590339525340849710244325842449157227837412322311609860038209609269532101214693510763576401368727319752667592283553019339204947154095474600351041415147524900357984293457191674404660692556743372745516404444893616469182798761023647190804655853474459589243509818644731640057962423636428002917891594030340619179735475344875099859930507783996429936716058391463462385183657233157511606470879212643945679900101428339159611713370774680758469752202648211621728017131528787831011204669908345970044037239040437071036734722705086877281398836414508681795431669160048634769689377705918374360310301394285800932299814379497555247001184188307947634630718646638394810960641809868408072060137652632851285124584370354922959787666361877237494814529668141489088600638803639854146603989857679556575081829891000575995289378592840089449823516175797773893098919514939005273145541426572916809426478160780229914573038632725198524034097658273048603310282947555531934831874206262778735986365632620925961969043382450093815804728250993581728086917362103189870017342165197432488025562755100922308193133812010851452491184133805994106307428821110397016757917846804709168912594162938260059334695128208468700894509349385675065771450299473949288549848061074450915039754777810680348092183106808524436140392996839754976948199446285835509341772759274280555436695358591152756743254309385568737082993332672951853064951739497676770443428345494502231909640719065530695877073318372978619995553876357124547164980090415156719630469681082302565192665965615360789349310898257637192750212747754161833558825971889388249524871473074057660191356046741132858287921010428052007329528829418934540152108651817236042647076720317429621230095117920533811965208288519170368222012561579816490506253879929326162601488991460699977017972387922121915096707483172698244628652075791207775680659738589598690884616650945798943563676243326665425195356914254505073134916050778831114020085200744925846267301461929429567478587242070227135449515580582783382682730517996295299865154970546701793911451123892537386117990020197509886283073790655667420438891658867254262975689960507758683401790627515705081576137868907576473436668919432385838394136959285093642615031938095385253681030343201475343154060448054984137609037079759583914156260327265931003859755358400098676021122370505890238756396944934454669340817058467538292159004421919659449389775251813975199743678348457201694515287703975157730807240930648649771891529486694107802883522993525874080573323987711578766539217546387248922214968129988057895780964389021724381843739462347544463292353195575520628710967070977133533443102998282882567235363454687257652211955368473726620684304729678222095209317829301012399119226461871275228918871811489712575953438970019767279011082750795556984729175632055041952197453485126982331651145079038982937341460692441928620259069919083898349199359307363180485526753439608170944987031952834286012706073030130391806192765336507136380871432001734093602736009807029088415086520660807222394054625530212315617134654698519663025474782535388155703694007644626149711886276053262695556317081769309960930286645412599675420055405642595441969532881018083780216544975419773546612108035421450937535090266174988811821430784048885521873257681899856863402476922249736524084740565415072523115273051990394606644075607359904905554608949963832385053621164614247863063557955794430958367744535168293202061014790478164806104603202066135149299011199124334659880812302166889677857128328862618342768936765648965138330943355860222748134113622557038585055704694301576248979315050380726904867663089088471105395055738052782179373686325790897933929545386255703735742599065229703757716532520201730874503018142567415778661861909716328925552093184235239647856651815109971213174989816931496407729352198754687296819446674763830180841181924347350149339234779785572218155153626321454194781817965859779173579357009934665594589145271282297035763501626780264423567715364521216944680385088611520179144096477861675993361520015651045543358508585934970087541267940913228406306255896648099003405905734229984056279267247547914646505866928267041112239531121194024630337911703756538268120059602550788201208572637259367740509530690977390077843548428537242555902639488564504031555404818797006092895807848302227080226415112844734579097425983459172305855704272001162584529252379803775512960129312300391512062915391113864282261700060424857154279070500920703083874261313520612101484032016828189841012833672004709975595873700019675664048304208037692441222645940998478918690254152957804688655233971458123165220296358382192992131243290117041572330628185150011692513141711410605463101078894204976278282444684287653353968405057468559481846523736691607794525713479315182871237450777019118507486893803961774263667509534836822697343977874295642208927636584968160506575862861555941155768194578750718795954915989868081493924104002518072791950717423311332370232851746319606957951224094933495026145929646734575336467817232901063417860324904023488046785310419817572968365526151190817788046218649558700067498162859652487238744155680565308348704911469333664439986893889603541031416612861303903378065662875396091215825129774222864471058763807819302512474795569533099184323814865172152772406880080170803450181260017189319856936001440397146237864504331974557945427904445428892189785862727334055635801741210626666645865816109054155891342365083640644576318826895123750450904643817680292240049061497969740535898603027396388908365030071975511603801406017100235692503411156836711244193883657856735422833143731679776234950025211893991038540865474546593160779846551576343830659782936853701618928618933221618766664846785598662441025250985266860145950646848055733581413854967742950812827887838372161607200498000846986829917431373217603360876833574060529706029803961996625985588258623412379656948965073653124032639812787405883543957237776950617160703399678138825595346956814817645601697010997282088171799004982562708881110634329105235333319682366331179885896424310377959393924374692708628570536003093760735921397647591821307760868983021180813552130019801750342189013282488855247501900835499781521385736947319582936529736801028249941546944026283604435882138179747655376035219017959962471379836393489658547333679987911785225712785684937810805762527383405747459062556698008680189259930505672746025527781609780272474066542546547805830722726564881884368783946439051585686785769027225528366357072505441204561885682854662953833726903996100233380563546502482473019564286448417943166300029070216104703260737274233322410499732846276141288292357729329612349192368642439658690114975145306420936175479924410812010855191248169595096093148719326346499336322335845655753997120228116538549357192392915854420886468341893218402459161220110202393807061154452238760195537331229539715275815201396778091827329099039786114471633058901567377360834259725022540159763579940129206987682457597766707705251786107518019033319823416644035356351599918168141866639928150760389427659618032549711490584924470212314952958500945275522647725468211659351274036530057166174104337249840730013316045492701904059167477354986002573172886293140890961522315386599924038041676004988698510841161367207987692613699043349601367851194597492105289052819054257573990086735149467185936871009456832913669625044584159731952733045876651694859404296741168743011143209713064439629021705121632390389848366140509488531958607534608914394279960365402474731892783901189726685664190374252348412351055588684593638212351474261847230840700046152606601320043072086129249842538863372340903167077846003904423850215914528124194053697608298335194936111281580023952056745658724626873922900264063779862798657632922373110521877418631188607744630022054666557215641742601943515922223693533239910095633249462570626076477270413988052569583595190024208628523251329492342117224974372424756868577238879502603118990666582614560788304889912924179639863876354247416037454511972801011417218933960691042078549271852319593985568059004437649059098122487069747082492670165910460887549174736090021705286488972139138224295929719292423334443159905744210922835728205551875296704297170813723458333626625498397077048159505436353050288459930057919572691382745975488908752158250377125227127679905375813131653508011330507698461983845735365987025596721641883235567424612943258907224395109969824268397253823073652963891284690973908537109238661733202677760551417029938514462707745814311727996441488024569316435070235499983395433192603879310723134455949732576930028793078153822614736683781927176207567998211555486539499142389869959690320234857393325878437479872741390863122356083475788207845012405982046858115325160989968275891725591474833691475545566327903087399495274479410722160108173511053057525668786227986552349277987416598540370468042763067429226413890243589248922406323073032908684080828376159944886015262864067758635180027434774251080552202360972343797896055793978268690698937181639841607598509399464979211038903609840865768429563341987951326553454500105317357617732058132517441747133954764341057713705942503864585545792991621552819995708395552589377551462464571673307430015113301438981466280223083470574730726093236720332577608039261862872435122304704104629592688301501335260637245201588427501856747186428481060460922891729816379574599582638379039129913375290886122426005131478920794582872652703130074043151537685455062694008145683266723518026319893194239412072254900120098011784112708284553782365885819690565171806949423399510681983925765798849731533722845815763951660020341839878727524262173860072207316262062690604657483975406731333660503043070987992248822947432859848201294308623328251292155486599132378464116202795695613515621402283919380189483014637126900978738490689753795131528592188900862479008423111268989159636895291974940198639173532747816583671749928150068643784390139693807605321560023933579244400231274113921630862926935196000076123047502540226728085194023654628446123998824937994835278736378771204930737065313826077317340034166174243546422916990936512136469510124229069443265622096039113509653624412003024698010978135639098770108341935643755666347230717344291454380330047804178868510630117215699255943978140421340904957703819686545037823599270256660564352199415921968425358497020762570294600284781408840632105196298837123343853251015313614370140362778458831733094337202862531346414859638489245412256856952378870560457536993150752245664843348699189383152789481647115817337871419626057174758437694938130071502030793802942376971724322944932945180843984666055375574052700129673794484417817568623427750345777692249615634518707904498443653352095277303081041507546530273730620982180039427318019920196719597287998885252090694319636167987487419033704121533412007308651602433083263342728347824663900916676375006900643963759344770038093232059881059998621296172035595846842921595718846159609824775851558901230205278260205921781706543941936870154380722708892074484287461218021350900613335196498439481118315251300837866118585505140699342748420077555753268874657589243258203378752943101208147087556363488127745388302857793127501507004096216187163875955057449990181909530872471327065857100315216813289647352841197894207668344183842201640886466422111188154921536013916931585745257790649240714938256396026211834266044715363353615563337601318032545240866366806112649587059123672427308842152101637167761521276151315790036238976260318932064542904001243547751985756743221127800460104831268356793325373142126949629108810759111004183349559786966789625950607890826961301934697159914441284224622494261624450903475912849820583666688364253152949018915191128520907944057132616679492662471122469227622400894166906084123427219529399526307907090863649692768779362302179996171083881287130625584111864924923261797972495083908248823550331709248337098763003467307207291276165980567876697868983033933579312241984307671319049894721137687735790070003400366144479590150512954992520824980247905660395866653160231965539825482033978898210256658777740992417742504092735288206203813214015121284096824098411998336757884403327845250412414330901221340294462733356820578556281786101940033974618561223951729270566919017369008169103537892391859039938573567530522694406580904849807297641868053355867592590316045155438328806604317818024640600150668589979482208872301385889084861957353975444261954681818039321681499914207431543363766044112158399029910758461201200440966421207969420639632330960598683607419343132178485001631571057297573853589191543616158253252436330345086831946267100420436698338055757150361709232237165943227749398797497203368977844063394199837608925298503481965937527168375858336379475369320873140246018986140936409274370473223824707615640878673040329945180828044577530762447183933876248395518847556046790833040982412847840312933138264041793669996157514563964642807016484698980421036889738242018328746688926821555316380059611088904644033845355747283174182841879665636415958108907635555881923149841347095268765465371170556422034341428612131628811820299070746804378044360663371598059392820554506570645862833126138298728348231471833413413668637897771750650098823401835283835003938531916159379379800462265199677843537851970053320644928837787489098700603496523327937846688264125627623897793245356715051105765177306050544080589753337214037438252536551988208723325608226363122565108168610069311161538780189967560717941952983573405347644289899321920726075444341966583165687908308029483402135629542238279356013193904588753688203187996061962447837827487215291300071864144037448294243494875766982100535222229114795335684632991742990414943494920413440015627827664949135832827412744771981457917505092175188341839285128928389891093396138877525515219058757357260478290465912383402196648550140927140512666785326236352770310700496339843436662191337604060331908357106458121775040731711510736612203383722679390996922908494871859314330948797413660250624713913123645236331145406737531487489953327396178273944743470329783545052111546876933387453541452764158040243085366833160771629682611426636026341316448418542077487798952438966929130590949433183075590579599732764631087177656435815865344539921643819383052184600418148612948279806864175589389467373091448989678607421493051209888700581733422565698821685909710642021163692141594194393193023478469169692960400048656295879554591453909301075435985338532313583714566601297172827271773578304349377348256202646252576826046494760567792352938466113139533331465881350470399722788793872954439492590117746456413352145152174810590937616123142195630514954207901440770527715211984608594692672302153597547121915919705698316155902735603330512004246126742700823824711775922600274456604183855577570434743714614462125405293970640431782515450622262350196124525592932880109886869363939129996694922911697659410357183021220253138300956964252742571862092029287406957010856381569500395738562044559607532491254637925359256205860089466873233579011400492011190567474172616324786137002077402744903450118256032850404207500512920341766767806922822053872925215559116543651601374958724022038697829164405403479600406391636502969946490929770649970570789664740134898437510289457190354093833438596552977983991951843464183784142288937392991251917482243713665330993282644673829099231410555620606901934895756085507342185496525646088734516312195703845647742312810961300735278848978028874731894093618550751627063326428050938054970683783658036487466210602441710037795488842131613116779366669360678564390070765032709485407565782344093062895281928477470538168204466165525220246715868318986984399252700980695111404539698501812562052001872192759021458107871957479252026496532642633356633709672070345096473223688132340008758595014040941388652355625386026164550838682098683039322783734608898165374797249182711742934999502122290185852954316840358767313289620028321500514488588723083410831156616583568161131559035888710455495682950433740850003631552967252084075719056293612128350352075759754854656372106833115867826176641154547018527900021863744879451489646740864450216748052546017260202983339425866500684683564891366108598651879932484026685328785993279178315208744668708340907531100394628104529689026252515363203355204093462129819787686769927702224476943348127153875193117436941883910722902795012872922072218480432019090056316042027861542111932770044625606710387028344239201676768569514028627283034757833601563138220582153266781953123697900079509254114722700679862358061071766804905807833842521902379179853153510704877066541240602892599184977012033694276333292334715682362300530951387276254708492638310480683685437318742079706570713790098478890028345089259475378330786283371116243043091594638379824419806350529785772689484822651798951401519510958790533706313636096445686639095983690339632891385450238285631173800161967444734966529301044267045851997540795939073030216761219730896988865999948358546370896381466007555297450037925826582956694229113427952444948480436094103285000656685293353263254481638178525254411907392834727750054434367660434475405405521566456793239496136691735379440404470428312567426911007531310402924678571898164194009395919418073904569298923044596939512728617529611203058499779422742456659638049539258548931004717718278178301902437074794449557606204021814654271380321954177100906405210185369412711997851183556129082969441138448721489012174332873101704060868519145115274486011784099822352626210247708242381350263656932510911237947580616961489706281741197102311144188931900931166004705392400783397255924458364333454286799703187455791491713026917496874155880228952132087096552411173433650278258336256548123665173437883403819692803219106853754259485228075957652726635807828515130186259115403518042853854736261385418034525460411879262969986421523581475873612753104682809204558314912893037956393210034671025574313491084693952002062870820282065501881935750430564038181293579863403288462890508082676346645216928697850661896015166084630127786143471067876884564419420924416836184391259339095605308815375423068325314722083169370686105456427230908564327390131436639596500619033484600772885678455013170642631464379039300146037306655526996419933942885278843392347557880010804729216827881185853035759617410202436613984294100695619037689655928898662911477592985208233306818233773179839834410684148530639398091979924222734610474642949156430131636683302242009199522986629739913020017705637538636948676457670147685804912249806429968370571193976680491103854634499382672082044753921804302147318385249338298372655048719133034463987464750414102280148255126075141262738776417276254759357481858690152721291826934572872443100685485072452511324549999791853967728634416395302029773565326903368392888182994629915004083717008771276397440918217375581609116408478885341191195026503948844724229023624311165645203258340402509534384798646615971737546676059183989576935152166807824689158916091781018644186910477325114298050304460466779974323831429347755977309501049910005946339970858032968979296451164639070521625887016827849547346554907626152316593216617066761715341721247633498943731650689324509481380457208143269551311743757922485405316027482607781076975928728198959494466360162825890219637539702030879714985765934773989681579966830184381007127076993709989583750259784876650522272925829134598911283919193066532575430088223604666452183624536570856608095845390072132885439177104174196939627352591483338882008413989794678452327890076983406699230371394274072099280117767693790665725977622821670254225945466760395969829224785258844106313647012711505882211339063339905324208721999796698722934208712052779152146292361459493561910003883001971898834271966785447405795329880994775265446412428867145847517725991873950244654291473713646626267221550246925681814237129191586310703819382549796571923477148330713204659278140613759227588911660838676843890992146418657106347824001174970314849388883293419458567713394628711278256000160181765751260647351144885579854781433282891790560406993020400841011013488082446338626673800076830315877772966271176766595714412199159525710321452402930336855773120294281255386590912308571781481265348131412660055528675791779647215217784369040628288091753114356306008284096719403218023798423619181011621813246992349601557352304519993256003690982765482670485370772731462596340249295668043789191199880415193516134164724429203488308710985076869572286114726804733510389445404198367892683674155999676324043485837322587645137896588450193906320707878006790040223407891106798220364986049522692898682566175918860058574611850643806069538547526156398157139571437498971698536194124975888324139607486544050089830443415142981252909778485015330341293802179233895443644332221744403231569310777857133355081013482458295359265146410873715161500894502056946687056767977552990451058933941779981826317308388510922803552822663769249431366482906504759268352255341855380937930137825390269801420104863650885933835817565109339529726470792099057248479843193959005860328927563806036039583622112050227905753006520823424806853233724162079931440087134050405731027324887513461681264668370652917608106351176790793157723244886686437992791204370459484033790178085607776777175186242046175261176827571156126363559516596595605010714075113735050150688142122807110075467530253590336731411185885020742863413870407068162393457518524654038163698262955254857245281655103929411082933260528383410168236267433838391445187868391794695773784856058033757176535479448734453738455420316876588633587204639157712237441957900482200575394613271783252434982238543720930315968568035213854678289019973635295022351944961067281495051741233798833804544891713907971124896661156969287316649686509682370392304351368008889529928839978346240234874215075973101644087448721346442411787954373189176072423564190257852896789099869355637438164448101556346452524652086634623714625956761112845321416961661492943109272984184593588511645519231641390623108535513618684105354470741600588687162386702852476538937141951206978046643218652948029756764395588891744473189314628219983176307023328438680900494576253495021299892615003273948436468571892492202359515611099384363042218016394309032888552739745724897472714702740206815413641652943003187917282753531249179052374272578556244007857417572431490574457918280364397441210397865011076703808013177475625545582224354359715973711033775714134530780012814011242326694717215752650990689571263582326685473437341537860957600055508081863693232979454393696766153107968680533766889608264705027095919732461786254085966654649326231618902868533369491744949363298853043298656656921627877278162145911631143326697659215290445881200678653876329866419692662298680589098298704718248392917308335279323165998686052406926350462369749495079129761067880856166132936366284225943928578454400939619267293986729914585009812508091160459204242205748279235793001668411653976813173124851142735705999841831478661896837537531133325983409022137595003312858485599503821707693442869295358514143004794087030885249273418958811430476387922987765343708483723425871393587283571665977760699425186690136889943157213914244790449123553798498127311827319951019621637556965476066652006094339540043944174580089478732517666758616452668728665848197894775205989811555629439902023737266526777820190882999174626239471684847841775911159194416592770310654152184480561430543047283771888111993136443781364445434265940911783142796745302504019997948744200294873226061178676539300797120993475941589174710253639645274604031034789548396589872175601522412505440802101308032497751833920851583663074092963503113084209083235887399607986784337153437962395660785363671016463469347347382060608303499968741364033587720372939098736324236055126543734941270006459781952341934087836596451624668731933598544993983606538755051740346462027280442647222853553424688482081968854358741686044352816387248780386111849123334059748665422098461256196649089426873358163921961385921374004075900461188482541302080124653453770855351239587124065867482848665217111240977267203291558118343466679908799999333964028734719185232863164901842995081707994511286789803668321972562873266775253972291918897341137424184559765879760715697722345572751411557668060590504779741140503060141743400529357806779365971487749325959749360321939514513014850796085290283155140428914647903985597236251500904425347691273304548446088793907846329413550930282063663097980282684443679158661329101520801515089217257767442755795074075641688698341387346723682161098953364390796035528559577192261299327253413702058449299243902950382754421397028400867197877965157707755718024588397841269270735451770657761893162617066524547263330501888223968244250164970145315656053688315727695936078804141727561676816020728090074432679515379438722751211560187509857019561072611971304489841985669273887064940068682146734453642216224774777480056051711111479517094406132214501370880679867267914251613319317968139790029016773015279847176120385979230553960687705395980020409273223548648108154710465089216949117038636205993570959908763726513663196212297243397899928142141524455808021480424004623580035302032234298783366748024988291940735143650920875498929057064890424616057098892406448030822324411112479482443295596955869728460582344620089371250359105238286043701281043061113195580125016539611858915777942060494711292759537041944680706944767237308218982511101750046909235258620192812225468448012644849806443511905089724122346762730790679428441274209830821396871856293367250759282600107268270703865977834339116728372438987987801072017937314547567949624403352778747625499105065438024716637250904191618088432308534247876936065294959751755345937531932995627886917074031133278749848649612889031382533456784303779413039079513398472709858298846116157048996032444740125448408960726716271249256128774864368676473533343571547340930024260202242325133517720988596171728743611433900648861164248485444586727748475428569734879957625672465520190529895785890229622198879874634844060984096149779841375143201577229627840713614548632574026566772059380183696816064206402871823942933190729455134362710839641953273581315427677377225351181957947974816783395458402984742636011504230757547032298568516648806665726346013562342745555172451874337030819104760186053401862360799526664261318853842277759366226148995009515552404775371163311697559043307154425239637450871291323241785928665747673514474003063635233234060771760989619038424634509725992974344872767491234131812589599228887377051699401856810689636973305216206880900443500981742851850928611538699557208897555438873263727772063857640409406102548271164256233665302225958134166764543546918380923941608438006210060701454736243037174626153222294059409626407172820906359323652982239108386786602393863329639144892825235352134224334351675959238129975033848463834649548975580713287115846936714613313607514022593040260008802140763384745511271964631386852992030195067061969980817820351885906396519709733835792830079094360676826011636342632227307583621214052545820948473232889102423758882365886074913090724127972789906197459736025916732984177587939130530714891734214924245930383142803688624523428824360710389942503737044521049018018841174076094508233424629845885784043098714608639548961245892447744373521512576329987532257921316002798644867754238959219587449358999719380320053369813245156552627915637955297059761210133472209586879365148884986755025877582909649812694121813218085939645881695567323022120233298927155933039580091807495525660748267771244360008393873023388403480026176218401492902962440221400787890742174523773141492616166347215181959477948245477143399775347933691322485910058251684733004134726259833243564068491251762479839965737288907015068241682511232077788905888622610653878266250839113506782593234608875408444004562387845091483446860016091502847237212002296755885289778154004927147705858495777014058418860205514791851880959888636938499532308799226355672556008977207585008334265836634165608313439298187452504415715604688323991548012214081302283890104401101598743835249125004222290230336740852071767174668578629173501140135780940482356715866172075454861262787440639012498050309780196684283974761948259894964659568394169735154067249651040125236825490217552067053455682479905668715593324143004120326899225441755077617439867168334385377201093538157555567477117974178770626353883215982440863543663045739183914646783967373359857022666177709844891225006351216407785363251591240440229490449941816308966292376220853307669607057122240179181600754060135755915268272542535955907984540257829414672308910118206985811635628820456448995322676154593602929528984227478785463217726374113701444238839673532451711644149410040469717370024658506812108816581291127348470781633397019168999633940303073810845029542018408875032956196002758770340330491290813122542330919815743236501574444132762687183641917104670061355824274236789068689771874909120543085821001715700567748727979741310013429501699217378778492433988171723040424761695913783583919004582611518764141109828894786800752002211151217291772480488219210042764931966629532625576741360085378403799766034081464541891153633562715965068050835883913014293753618676257405920185679122997176665260887355985525012888143636525773586899249495472951147136844902799605699347314532168753145630661385439518679936450819264952799384869351012043811908342269957091184956495899595653500779310797881133788084282268886888683180871311687994250186108533245581955243303510559431437554355229362900215717947647438124932220311825512130222759199006505349628622773023420443433172779566441027853576575394524425989689406090691025658095868049195470910803246471705802022486122431848741391847857010755939785098590490510537814185017964678091563633288926271014990788138529145858071514819145054526093686738583805147093947017703497283331820752408130618884960859673697001865592245793129320861241808174689915892737475901627423483947974799122401764343395114315393987870400518238420964352810649887688778026680975613052262448971868449003145996196926888561577102780367355644476703582204245108469140150262159357478669992326559467778176643517264417186031994082562534549117407430046152563185849758940641092225793703683978996281801330097367969760012026222039011541374186470522049197145933982957267390483921788995352950767818433260120850284532477367526678059212186470757722401773509094333357570036453740752703340425541757495969705674922033705856273585018784360045990679866537788956198251133044909011522310238357378455272501456623639746268742326721091027441042514334957538430362363608970906958518505105784561750440733164776799008132924330291634827192546931721209037275541142752953327842447030661836373292420065286890026096997535774413458915406031306049136646841607904024876646262291228260954057351600859665535276883545387880545228641141442427686575774049423211580774667344754918866508157320613392810754567103534874726316291227959129205550828809596334629751141563743089350439788060730262737618927048217277703737472494409464388675541057319308991399826496582470378078998662889899496203417380384095090312281587404863690115999713687143430983920897728220628394691608019220112521166710359522466971362846932011774522083879928080603480796989234655881982136344248502652547971549427399683897348100784023156082815415735172223102987856082667973092298484302558049131269607643213245856478077261494530613213967390730179848301353991430002897291606784182588904630165534038738247752765817919692474889084765433080290069262693234914977631986424174484174952072112408217509666851833616250528947951540520046535503290652936881277768588293171398802125819872418492992422590982413258505729796158358644178203887573933787966643569574058714262881674568073716468711633876959650340189813362796100603746632985008257477629731136358226941202836997123944179230783885232038883646269453049844403191310306460690378815190532998080665815367025712362558454652487177282883549956422121847616819855137771083910582698308990607530587610957319627547128036152885890350165066746051650381943608055523357733840192920335878053381125125829490916247046645933086779329922558029186625031217404987166238062616810960163925181231160982631091639199523029204841640320203066562761577174538466012608000784027755705917992739646685151368903098682139924505189836403491979025831109210347624613155722724351704253837985232616763543460917346849614750242224315655394267852803016870073510414181892018825433713225441468355769647296832178613344386666831318482775928175065132621989291438479405536693721550635891379327014807444154251647946974740372185242736011343349384193189665041213594638926443338307570645146965894974468181038996508677553858727494344742320254261759431665937007014985300131438239774342847813667243894004682776548757736496605571605407921671011820742041853046977072306079164041872884350571857195631410762337429335879155394605960160202732478729868112687278577281318115008455345441026721182771518431889541556182930098308993023072315620122141971830986311353747818122054809600101719853709060982821884361953450333903047501403984306905405490284986181467732219305014400817505991424531826067467321811448394086005250221385287913433792788478305507322984373613625124327502958059928800703684244934779062275413132424028802998086692316863697632844331225872713660028546691304955458073831403317411052071029457555419608064050616779576510116009299106632869381389534192635962726675512760032164452029148094216908081363214285068177529829731711964209237780716426318376237137975503441460956349864967113036427315129236741649803452103694980741437712853835306111885067971276942892589543121236722261614599639951971507728548140466729939983786978612641320344381740658949507338630683750451776477962859033798860350186823327628153731040041557891838997108915355585468277695390324160405377483012231856282209477844946277563663443345068162759675563486281592482444715490712681451703021304950057339293679091146544547748066645966192776901646238132007386060913986695093615925211967009554776672967712422364992254123242800372419792472428512971392308680632111618760317091166460538357579043034716795076954838051033491891436821821067006464910303719167626938624580143818465897544982923407683201088088867347691563916209096529159770210577599446086966637324963889090087495731442217947054040321990371106474931231706323180872885286071543568079521423942565189183091576439597132024233554217832959990940328183793971446874230776769757579933074091944816888236166790473992089132729220191348441865464230055471378640644535793245764410355624470950051972716772022718729438434325218367855249161349235091911960415024709177169759566566271029971805447552478136425165479147057474326546126954383372594299611257147134737813046726207369395303226916558621214303434460184712608562919254127409941946936927318608731028961623573046350733429413895523388589309142748066906859513750350612586263509745720507430617950862274253322291318307940742626669293039902761762798133047654100658435662619944864268624338702814043288679923637979007799539910562225521624498669849920309000851430394273992915242530641004374254802108843468585334319505389507473684588149347856962934684116917750608569486661544776577071647326252337528825198980852869049818407848497680701183846779914797372097967731405911357078439153449389724723047275982706616410368912072713938564215695318778333069039326663120390839040854901500709044162354255007786924443350156251845352410379030332660763588169824982104338995427075456502244875504314348396449833349512574351478692977550568448031706415005892046305414033500604193514674494171595323051594704669539606545845216948950179289014412301929207699480184637898020031560488620058326250019269927713894726091624728097099021536489180067809558198343281529882646891566220714694867602327481097802814474675889540296505239722278819227897480550832642961339626829291849769754182936676001473877650254589116804708096716312483817900231012218838997003504555080443989263427500171650608431169720547411955203832569251572676751962092501111552668991866053863836010188520998713690750933872566121045956370047262579670699500581778419559864901331817033610761444753864149313896183728584967932042075408256269637840208598042492146526909582464752602216216924421111904620171541659746893410015234350005043986234242301761190662978870020780085342735413792163270521287197572562991874909473153686929598267250078687680833764192930884427446888333343983656112193813932429353937733001361959920164315339086750519651545355937343591261688045622862751452385914167030922984340563641396158624634037540834276524952327092412263785899558833807982272034833429271129343966675095906049571014995383514129098674634921516165595967580587386316973335822239644643343341730800029797367703077491207974843444985518268727787470318057647299245514359689877127188273802059187274085516566911362151203631616408094325552393153889392718425527390988433593477469325777277335647070067648369762856701438029768949681139720056895042339738588203153606162681974911759247772912328249428242413276631634876624473992764362956557510569151314379559856305804242244760191800735717068069039350879171316739604607198697620354398097047498551412943269582121250198203786182479979008037157069971408795672113760947093535545186764814667548742608495814394234930475803630320861027965444138271009302753975229212181706481053982307252451389560471513246020235183901145920373009323772859878082909697883774622222564848956559776505686170938275510733409397943169406773771955390740999753670281227107540234313970374952243699378394749470491586292261643133105258895026661806117012332304276621576599948352033301704081284770156007276347609938015177880752266878111967534675391453679530509416683264421672267225016961403375162996554104217533641053162223085417759881151237151793772618021517113735581112552020024313009320944773597964771801576458088303806830218451561146087283267353716404413464287719618795295704098492134563077233365331338737643941667718958721845561684885581315762644353912678390781300886147770962914422784546768301185390521774929813351750619315113637614661914691619268591019455264924051234759762228139371735598031040335890519002599282845541061309443312446620479721134757219118742587416569182611674065094890928971897944330951854998835120434100522444220036559943796817946525387073079175205071083381619237008867094823229528636882409241251588942313027311061028009194936971194133796888949718543230943389296090150302599584717858071251349006160485740972503435506266963954771502586647459581205496215730347695122326472956879832996358514414326004512648424519047857780163769855006808863721731325701421217012203633927392943112199402965323295451301974956909898525745555552076313958844349666390612364343610694031436487440102091751528768751744928759762845209117003979969619946773991234909462527998117381708838675864012167432578836745762908498302120697177544699936131355548376820575128312625283816590493124646662717165816968672652323117762720535916941083212108777002074891364289354912143676988511623926550768579158815172546558350382425687181981584470193598357756668538953051063606530599360849643081518256560002976534729966501129863025835377506110793425796815762623508427798248051420237455348239777134625025099997697966381197410970621000054914061009287017312397958930862296421199267087500882179424560853624715447680366165363834832718824455104334226445840301758457488226263827541919281264068454383989770092862481817655834335811159647495297937012998010203070087820569358252787145921398906647324832934260290977094059095210932602967156839324075684804580495518657739296109294416147439806680132375431439865017492306534469760740315443909314046497296287500781393949238277711634905023565954758769344910906533129572276854307488932359154462182423145930538637231509739726516970329095316793175676584967472202357593824719387674784523366827080433496438864384716234941708772843502163813287723425555085827815192891873404588269032357865861490217850454349094528162361058068095642975651569259154136027124727781089676334681289639342964077409441368164920754969643330623076359644196265700535440051779195074439920987993337475371414142729241813816932450008126882106003643251920180652202597418562455673424371767838678057423619109767027687825806702824201864224255693738620182385031211929928275266256452384985850800342848396375778923382148640625701861035675139484011238622450771370406675644846667285432918166162089836818891083548037158704874843403714600907986599753453306422214003256004859534534768499335978522719792490166363968091620192081630748277257715205576877129084720669706180704143885864554530472381788310485975378542463165930003326655317730523276322802376653963368787804949076405719785198723711177055606798595756802195607509533916641366959419709095762837202404576225474460411791504775642079552474663956706805949106828023439523814186790906806772735674619281321374783144073997745931059037574129110026591575164618001277370238167002871677179822335646247477772445394767790423635101099922764312178145745717287786856618798897963544221425924517743623868816054792770840301988375273119131743465777922537270205641371305031573248849825087700564532020230679176667587885809436772337519446387464787675873785559012080251615637571549792537009061221308589562837191279494474436562674326897792951545498700559321577892357818733576339262444481143645064349724228355137369433999439192138760349790860021152443896986050778998266421736605335805445366746090602722863352566603873327115065468715518011194233664412004873492040219164793771734969508411514054432281453828166054790883119227964348846695197869331161215753296300112937998051057757119998778187770899897296437682960531498344594328867927598185455070167008410097117837987144873725888397362688214815331700145285685181346525956313782300262009061446578912664219170669138682874034080023886635351921121607209783675894505891366152684865325445397927375590806584598607283036145995189609298751362792214669443739869331316571567646865440774685049234278471792459007528470321977982730199129828982326846728644879448102613593732632223785129004729293388376115775962018367545703533106340033519435035260728530060603242790448272256754937238180496097856709364702041640417357410807828023848744472111338249487135567712630138417352367679188553258746986948113660210378316278964882335395992624934298943679167074124233549478451168629990248957449628129173784525859131321941360254415551017733006957869293690325818272374219196116895771557176802887213502674267974308898099295822411411427445559368392818598632462953646802010672217955331109990048274717896461965288673127705610499461137696154375723876667620202971686834129069924700337876155499544710493362891456006836459505082115016641703407915906460825184620446511487787150855829283659693509773675115601347822439023531264907390479070873376069643804609136007891334476099330367477839085730064597189700106276437044228378871127421345102108637257999979182051946092300538230844205145170124010874426451856462175315810770147591653822530699186394541153847610072671028415926960100706970239534782297320961872426350497839463653871180570720028293925774946739330000661516215285076239618842409216445249962420295764414625429435110449146752254855477786774474209250537289912302283516205336325090074777429120525473522189902195285129375064014619752731676242234142792700772263425707106817038657054810713372949403300575719534644965862761670882298253202529518991596472516675889565619594919324808167373166898217373720292783840027121011566589635911486102623541460937111688381736676384670986238273458802652690971982255152521699141510006063985030535992648409380049790758330806254807675646463177258591739651417173991043550708066845980903364296071451943448320135360507860679010842673439049841940435529147353221102144896565793092726987299537764767331663738766929813881315581175440843342722919443747173899705180652741763170046510752653382569167466711804225005817816738531675390797150589601723180838565815088827370558562040104921620326769173223094926207735900598485672480204425318050037691398082688046318550139697061514680594840869779056328066530246109034087641382591056428201566680522949362837517199814147917370778849286633922696204461811756415867843081441275633019335870278910792031608695750753578080229540825819277138291952061616265432149108798889312760707337749907353477653850820405972623031241472631878791224977191681038059602530560710033085435761759843206900572768254184726577887477445793472200853366447662287444569842087862960600872251210457702256089578014220088946947595518344066995055571041793279977707124346413522079736646227908214075148174183095806641378078526486205903517632872984032271196539162845655945758789554970958840989155234359667006755598224624032453852017711245882328424751630491754252916322186244833411103899068063347929906390905964782597822792447024353081816352689641553954566672836547731110448598844664786968698792690527603507398342009260379672443802976088429114059304406651748208665329582816321157102711095702980970124158328835468337139070657246551436286117939548217363561691582272654652496897419578070603194133258528373935612593315203426898693841609031325704337749899984960291993998711807191179576215483602981090859935993790950191040601785541670117528211363617734847675917965875259550989681310061274053702065243129811698046429794502073416979662039185475840600786281709702405567709749727401330752158867941339056938265132814105219836690264283884662605972126465795246946924886397577192800955338927811664920571152568501864029502869499769967853471523996205976995477734432825791129420212428989753159738716990416465716006390298888365245484739645577120773939702563261560437171975445695980532083221008123347039430420057349322781170587344729373427199366220212547295772732806643957067698315816900083780907138867809195213908815571912622736961327253793781147464159378546811019295898351651708042849504518138479794351771416400871547116834723083539207628116295966124745746291893934153777297460152987879882259746186976378978098115238773311485841035198554367562509660773200092769025024035029945567631436048767786369066035687939060235522334393253233418502767840461513612961266691298412732774242375800461072264672814622142430325708473065892941174578510842105057439088619619068131726298528676311050895629143958069641097027097530470388254250979397046832550874800331210629869615059052122160807257461809352060160407289491562880630211192427907398800944775793879008429081191276688719231406272716905769776173556490741983175611618883360699038136486790691561709060429377672941916670889666454742653362783186602963041746325373593358815199170485197866641199293624619977086381011961927058347370823447404112186593253842969669845919430478430462555063755214591518795699823334266456318966218905734506233586519737553240403138871511524039740184857107813328916160735533920708211222546984395126851128577259614058200760116915653532707996116648408532721269895066274484082401766009880668283604077238788423764887393597870479635666102833544958754641154324230503692423416909677610045438886002296798579013598766129498765161430383677074451637307518132525397245926653982783596313209655760352487750686277163913995731936671254913411985743987033741164794254101846925801964082311567855156595441097288756411470828167121454941813446979196031577902987860484042281335392202099257411060687639275407068321489258414252938119900586328911610155550765236319030438664334605689682094818779424248491383408916489860607710320186946301295160811441452104532467464031142126581591887942898346116101557291831122891873550330002355774763978302044611499451257151436419181381165654134821848252976045721401716955637105393002912392982343888022744600695927725876825423266300074271060329078388815370578159476590059881616409716581729701664190598362371595104444774800128127439265847284422099004812922553629017350261665560425930909457533141568877462546213410191151415740936037254788062107041005639862353133557671385419523401604062500744048652204327302870090542503522725599422764348632628381888716338101437470184610080920042154321016508851347397131659735017971938626224885497590601243395473650107412741085017523800110172169273318716259588209476203707973671426973379928692659360564088800303861005207125989697575950816030323975204633330064990827291313064722039114561879900667842808670947682696353827108526324680278119704568889290822990660782167964281109851956483190759777643227517377642140140622793819714927925983816822184272100691057860846899386837997319671443879940353110702004864686196542711949895783719820071094224871713214417867255401182638765062893360470166393841620980524509936888182682665745723305518138887412778972422080374301807138861830321853299099324193676229965496919932461891279329508668547990800043459043019284520684939279810562124663580146849587733514196686998182072062236394023186568018022964295752049867908378711122464693430389230463978541989675120386661807604578817206047557978888948171105038501069076395026215534442308921225328809250077844134532969763740759168006837918915983833208783061585430744112270883340077574100746549434966367158615537532658304726218257710468866459326785605638350478180456960199184308504128951329133447564242324520792017599119031130673786861602763600209471882011294578220020013420507794063003932109232602823833886770301814275720274082046697664577087997616909621090967575015207713489554776928591553925996800169937443432602380331718037872487133078631424724494941356212389280522596987718016057264587506319127602595708283327384712644608271018201492663641408135827939339597185596250550311747992889809467312239154222286750779189405148252936272848614064604639267990799904063516371136137222885355138217260968749524528373941348249574886135196319865742270127398586986618160152267792876634007636990526344343667077094109351801357328997755145984124413529035464150349975711802270404472216273387401834115535460848876044364527709997956247555660230360264212088865162873376294309530852546792950018617477360868977206158709934127842569381119021359519401971702010799546869168150357383417864070362820154616736335598837429620544792334192699846397438280732156565210403062699626379367838085374843771658880922607133514267830143793497488100331418507377140404732277798608563914584356123657973705346504986140852331937397535036374710184906766949582233809302267157433783201005092537724245576020905420175206885623093738341355592003117264690709279622246770819140840652254710039784331553808592533282530713333950900651801847112942335469182637139045985159127452925870526360309446116204568373039158468301256958472124003122608849187172472630197547401739230184531376187943575430814512046181764643917757785833411290323946049855297006686208471250661040021936473569489339282033614694688983150528883897096447611538769992667687555627637993670453323586583885819969826614149309967301966298108670943858962348799120908720936300777440890214431783986634774158871585916953964267132972668456591669175299816672860826994413534850143711146654416113822500513911787496472138328541252588459988205917170419577044066644849608898302710232570354155566803223761450983038173434024865827435524667559352227448494840392330134394225358015148404052559829236279902743618538137264008555513574599107128562088435766406950811946702235809689415886691282852836970556447474302285754450890510660327217235953531654310307819612338955707185164684001431632036424358045542547521051687728387456187607413793604222570869548075916931844456737359585852346391937280081953896431697993854115577303904570857228603445910010064315118785725234724252551502694260997108413746473645143730770431648917376115445993868941651302955803066242586887622431390945254966729061898995058973880265765079605367577957404844813650508929485808483349060796755679597140466100031679701842663167175164850162139742135118039064362226296424218199099779572887596541732015973060089952765729501825884326946837961577625570264526598502207105851610885622384146327619166582251128418273477957732195293524973465144378848453386228695267717508398361924080815490957783362768072012909341090614508728906392099091605504503609164972161889179027322182716431437636636761010520753394098669796858843439995003243217348463369720915535474235289089504854578528498380420327727208638347088361556571517269168355619044296069758100882743555728168915184789178649445531023456317554206162224739921837883569055395606726631359479694177974184071737794969723029395669887504548962364034570568936234117352171746105081366659451292386783419523156076051669184728627114863308862437578714724245030906947660746446966531122977288005271097830517431058450645588198849160436943936490779961760807863335163677317524996381414985826045554491160766479897573395691917855622572265263769969863342231536565827154413895144988659746243449534958763984119533307317066672361175447356113107525149402075189008040526787212806326768448036723794224883997559669669305903162328531044938106409676637481731130783212829719402564688776265979137846466714952530860293445792538765481329147312968879909918956071766772167195590664197987181338433654228418224562427969654378587758678851702505898755039930526905717609508118816950562152053167213204134940587133796974959432404395821785211132617883193684762563074647620802981126153122938722537998513456246957006924583038330657515652874434708365954452073249438663805585886416744897832166698964597255049457960674206332247295383544812948650239378668280827796773881541961662951815566285845471030576946974361245864224532613948575546561275548950874409407202146654838276153907205908214870215366163352858840594619032833218462548109266523884677597458951044893319548646402544176049380600955821223154382509581731200389633829448530622601302131037986210454583893089212473212592465681790748602614768173486192684610910621267009942338920964072131449056963229535386927876921390277425628826071735097590483279336138205623517187101871049766434104996973128246502117556124352176601682316456599317303742725700172016743560215931799386121631649797734851892774807422469380421139855127863910378738247544161897948875988277797829412879751684340606875555059039056600531054896286174452090143084559472260654737569315356524153889700034823145247830210371718244386233645703511182571965535002900715040944330703259938933669140166894845330091876663237579119786454112067749382142635790842563398515066820887265287278774948231790440089432695243260553669365037414062420821660076084023988808117235848211193665055813426257001969874940833019461609812692063874938096051529028287284506465624039290179667266331142532678416376512570077974751659999271082210082594253949371603812506389126973419922607348482518286996637107898644755294555085159847368073649215170093810079048965423942022240355253281390763061460715150654637334613689692585383594361277405151388877804186247872519525380267553863202574814180673543492178512434050960436754979812208823548040266610899082180335968538124828022586178804986493203957765080925842937603866988654393721121459241133664916332229410757256430160140118964632754755686657248134870116749963932093814233874001130807508314379450552542026702432176085717825651735893851087884436288695522430236592741820785760382743894105664803781769415935424863398966825266447914805448422156573536782719432220392806707598941848149105155110599065751544658898635643178365667811107156510384787299580338691608217832960077774856308576961574814223807800109886571654942953618511949057964883361609797622798551910833305372499310071934051173144293618270650112015013860559311712692363876411456290297664286262040347865373430547748161391673475375522752082616629374839557525051495395118793949240500925961130085817794313604989862070537000343241452623239084952361456228974585262974017375606618627425954677138902776626872823202379838973562702209375560503068073522450319833071153913589653858517728373185022396577325947929667072711598926629830406091784236236146850924686791324000191339564259415302991625172240775088141873770553341125306217064566441267797217101757770601848548691098122880137432929194938807909119841773619817705199042073249017080724022551783068858631559845640746539282603873873550050681163131209386901225031378928075831603125526964366393849807927808065763812085203849534432285673174869451402351587343845608834978560885907540304764367672478801136759694280281418216327942071164718711356393863343834409912317215096609631869915822178672900288649366826085375024142536742578971521537910570258300974514683585893254697827283568803076001253222985158364038670821258084364546878470171961935085136254626903304878236595035210953930250490891580319171849210760730679047106649649283402574398991068392163116656429504064218891955107796608338673672278486834559665677348996385456987199175509561586095954585240853599366005362455211430086411396280396729023140345490498974413807447036807910756596619561925073271260051115290964874643813906711202654838352774360542978969048267220224325487711341368258787074686195509903145029648320687341279487969499879249525575668314075257701463792846908829131404240805026739779506853763036201048380978026111809773299550515631103325250513816056074087031577677524545865013921289556577187537615908624311169424254731738625461058791486868818122176270192318658313655814678991727809949053172716470353132093282118422472666210535950250824936467705608603976739181354639559862215546498343675562263100399579317975402580781700609046261237150462517605770191519826600456495372079109728241996456902275201631306782917108033417570916299091368077104929695588003416330689835401136999409497434326675822524415444382630161567659391825584480520569283027515091045154413075261161466306626965136788754535041710774152142032424360610402644613952670000011195163983402512118744752928539003330068908253556678235006789395269632241295712128597706359589790261287918483543391857993132105232478164545497308228602619129433199806516854975873372838475428270884544380636491605444043517978637265789514016295858231017189799365399331762557129258041146600633257512024143701948492370647792303060815981012446664301471475899440997730023771090721880539913666594375192755866214159689797872800537239663575812060059835768208348875899555768154707874337642928024650681451651445885619640380051744123132913690915801178545223590973077331803452616199289124488587688651848145274687963697428858731082901090775381483327163927510770364403988714916388724527190704150200244437616387676662325072793214707746202333383870059774092851220655904762351184268750002839175715123424709818429053972046126793373260153032946424022565572239285563945836648799403515721760329070609045996803466366844083878901004965611828553812116085560113801819815096095969520920814528741816706137523717652470484933471569165130813273695149045849801643096420359526444958313996972265356164276868273449606149371623259194005578722100986845114504285719657090413928022912382575706374854636320331613878240385021993332377484720771237471169219619928285825533039134224268173959370900133081396749299595464076518360244248424702968098905805970348845135554307601943364850016617563674833585987101563787869369420932825075308047519301914955825566307133534879850849203514023415767090391365109919879744281499363890336806218310383840337194607198837026703443118327778586322858816536109938968958943748270560637687937011282995172761993790880814201002944622906244593403609430319821256258889363046633627815465438600325666086837763392170678704444702808671944064479448803491408487207630015313615606827701102178671745624049374640188325357011597392086450165856461128964360054843713341388576016349120870362508058089086137890782421315807426591524385632789170824753011750615763154991764972807887932370303261379530540967557256648855257509037166159318480480180648589921262179637481192882209941977327392681735040570454802025146579737816607788041043570322391170201774754223736679052212846945271254581150752417905343535513644688423845915733063053254556229246818847423903830073796710851260965566956968597562655515996477724288292653024210548024781730532500266695714014231748494216298544822468151881364542885773389204398587729212878334194828772770802023217741943803057498388578087858978532020947717175130710615604278410647149689688845522740636043789542631773145040294148303504467904319238664819680133885488316401946652182141071204281808993594412589046696862734657127540453706928967074986778252152856280461220240376403548139838401384097934967271153251736589543932711397305135874916426411656601154473654189619836018928535246084532955029481068455076962274079013005880572880371050750708424626187872063106743526496639946508103900411226356968485327013190863509459703455678447420082328027045158794513846008912292810009709275888739861657576651748129012397704000157820941335747171799545668355765137006855343612654130207898532694014394843322569960819776633307123426067950265058184021751275225380886269769384228522705757383346692878293054489843022069374257636794556926726784870934268002712082926548406296655870200646832586797432766212830779821156348123791478534448166288469117718105837969052384315055564963902380453382642782278834211452991882082346779785166130723137608888013994890791074279895459380329512906649165528572834253753920299040025440579465988473693856289888123869853282861850388776273180951487440785031169730509213895556399352218849819159034998375955370422210331641978732226370664797717977561351646218590781418297621305674864740176341016591257117761068802457120486126041138326764697273891100582062176722075840530931985840135806762608122854748048142527655977688337717189624225546020487334776926520423703132369239464227941008154572302753090541871649127973384173683426215341430755368713160985283216142905394284437869687234449477839128805277706316191674783321762871311262602060122586915321529184674477467157044995404816774330305805706468901300573035243154691498334635649138387021756605343722916371357770106660043102825317074295739788069196111681382904042585615750143144963133090110927072080528217403992150286943918151916226341830944010359875361806915077044466215233278592457711872386653534662232027661818003340710242668824566906785965027617681300261412406110837425454429787920240910741982884878086217516693258011598499055916826367797796273762599878002520469537934953771311603339269240384162497333162950338518204471860843184300028173627912001104059823394319218205459639196210820792226422095036801502392591141505317521139790990412686051149992931902270821496684825788523594019418104830249097375465667194015003500260256813323927990418171727974000869535800621336100032369403218637941035268272396670734134662708934345475189342379323421899862023344435427590687339911041649052611108646019652975195653534399812379956076492025634080523797246237698323754163193245128927207031902985412270691220664055043604865334984608663744221945650587321949021825800900512270761988391230323699398262150922490355234137212614273156193990288280348802771567793566511613989351401363911596881581730520973557518938487871014046268619482268664977689247634626681045001875964528044126273104649339948440015535970915190417297439899353178740391120449474289038873604338366938670862771582423889296696728616264543315634080717346368848888673600331246306607129467327457993808749630390306650124040068495336861145284269415187072657234828201716683449219432084481452071785347115153711719151043414003559940355552424438769791909661116286914628753142353365286589127874835152592587343769381911300319315770296689219505272100719832898864499418519774355545392658170241347485482955947577312216979238425736017631527958654529790622144568757885273370327446655482947703709138835063326286547504766246059455028511210843658749027528961471011399676991104610772019852138047702636402095835886351066801930017419553153981593569576935935188474872108114074637409301178887529269495267041458932721837402598609113083633419560076977414181857491375837189148829373032022912089166724532870094003522243819435971901419337225873618595761175793630925125570884624514402936827612741482201068535240124583532796776252748850179031184947816045963850422957374287519642659385103608869507070718755228256145816917508114782530053952776247325292132500451821550434862814846808870498211284390619287289816499956288622995722114716322391462070924933092027369981545524508457092919815590119780428746179805671328345579377893853063297641648860415600260346467100520340340272002543885730893421244654074388890639881877110152240406504312565397291757747920156023542463965955939114212124951113050150641116774612912895213352684694586379725990511503976907363172311701387632175253038634477085481539348829207203577753501636304572720527609331468493219099054639170188862552115655152579521172355353492411822923348181912746332029021207154405916186352343603664397734985974546221698049549147175705937521583834766986624712018537333111277157196167958236397384098235327934771447102432018735317565611849223142669441465196273260025423908777014071937423861037521381579846243203208057360428443866665159748001463232894348906536902531412771519657186930655640253622081740551648074279949448198173607042122281352454973141478023929085036018151061699191239591776353551690248547919821708500061092767447977115838275075708390672371220591683905143141957432380085910896703195352472862485842869101330864553854335282216563224651604149336955878593015715662522864273314876801337428544392643190464638458919382794122783782749484783116913019523485432497097894412754469448100170208499885653265787200559434206518827885783168227468368803333362006940711832802237614577064792616494816977437995810850887208549087560918341517057257969387013669309828983436842881817970402256757796836566417836030836346270034396149492159539853791909736012634872129946591523839035229643637704907990623375514882334020842529328433331608254943284398254069717678979882858932787493122351704614634755781618144192502300053790738411726539121244126782017944666426372464182053553390940635680967494772080594080136090823095294832207377055587841733196800073565783027923473172592986343607218435895499855782654936038148543468232817406657528056745150311101657166981392691329825467516599432094642590909024341858121384430172806047693375953189105811753011695183327370323950807095743898945404084126505825939456810761396352939673872210786506366689160365993866032273569708504215009621603347336254963880440998639559330333231058200596210520228295496238471655256365742683640755521623946103981722464036031070504641248605569667167600300606474482543122384371605817095911030236458625953187532941521098350211267919793848117513483755073303262121936873717003350394499718937269397632650580376992132802161119646335306596922941276200057987457877829170047413606926391545777861221181354314298897287428313866813576285952979880082636719269057711698187814658540425383778388628483484509825104866786174366955606014825808753561147653951351502617219055037873418215896994575825205572476629599562634496957048859717860905351948140859873578898178700193394324661518011823094111311133689451144833719696248480191065658182326487053992201273522222793519502279317296157449945830065204608322807684697315154404888651750734049773953284450217921493985408278959274134092648793391274251448452963783855989081238732762431112434160902976047801172708356752100958723609253407371939569752609649622391586202219938616810096460924209619191761329943023413905090136971006988471969564284450307183558580342575434288372827354551461086179976195102729648833023142749245957698121583966945689138902164609841441684276747964911866644942945846741371834726267949730957675918492495102502185665850252695042728883698284559462403280092955126413306481186144333505419570643031521717672040356166233725069129199469986604755773983644269472068043482826812596927356635864954122223239617521000373487950299755000670230275309062551572081448305244929157388780496537870623460962138207807720369305551121241839196140293086717063324129798826707117684754149838601207253950651873831036797751440841698651664168919075717714065459867561251350305856702085133641507536348007756727437266987744438455301775080059431072423001073374085942287755459815143648241069330495001197425116967182026771828650432329229121370089766341560824259381339856566531662907245264185668249867487143269836523142844906441599031876145665785102011700969534702118927069059597538633446419332256262146724143340869227850971129018716685976542929125862429824350346550991074105742523981804823351083826703690457394945738135729602679591296329000783277127035907968779354274649089467519982878839913973126738802550066166303891684682497138370253655384607170978415012490008644786253260662693342465343284726811675070239115050103247577387108663606092221960189338480081770404813446428495228796448890872287293246415527773554181217299146056807393220033341431952724074637610264872197350449158306299175278933041460430496397068058640432674713894461036658277019401778610840281334761259463876940964649407734394947113815321552990773079656338144785063454138741927410636317232796351511721639241008950488515236783526252153970858884578666760245354091862527437838388005494698347265447473649014312939675704312135714429644296801265027364969273237913486951714333962950594957105708125958849769660706310921653884275514977106481176824481808902249169901611377950277832303243122122634247439867639021911824191177369214647514593654007012273323695357385244424950601280974775418293382891100457422992047180017614352252660268233265763329721442639815686059232694166339558842199383467950370656352471645861893363438710089324841088393580343738788369440496478653219045546474342355257600739519649628562864127630282029643684101597076003721007562078038137553223587449719910344785050642135259973344100462641361373726583421375406937652960372229244901928146314805392118269786397710339240709817634713217829290353927129315434346932358216857902591045264536162295043534156229156729571096595722484941688962642064416511684757613864975331746878843197063534875389063240118631788081839481120993102095096257115762569026905388232202511699410721055293143942873906591277021570014122522836563648301003911792940748920224551534633872130925732501039617507484301443288083683569285561467837794007105772741073824357600122987206682385132482909200583054278178211665687425841325867913149630520892571822684179410541834499007578108855762777094354911678888949698442786824334181122825594279694022709121574478875797504681578925416349052435739618343019671700390526719324935147100601826225694766975351434861088696307225972986770353916689039330622468135706942205221994064321213907276193698705147163934554629760003226228515795146711554704234825404692678718000148102477417148725481735242646280729216686579306511530053170981977804701476730834164599385266991337235735502102827597966202013522134500705790056481671986741776627740515123216735976722942995576954486180911690244438352351219359428233501280122583018624833612727565917251784788736237981726745631907638902896092254020536889783874037027851740208533801522340383673944669617303736834198484311802270566904230144803110394371045109265189343180273394939116651167472590419067553782241000832729646772253040162757108425133407932807349718319506715020871592616553035454623201198377023539894635363414804839052567606616030706762775359017058780764304688401265881320551248456738921619733180637367445947928671688668339248862933293149517900818352442450696773927623705333638616341155618497876166966219673254557227538804369707875808106638087950770583397519561902072512465881118801288750756466513057085285917348228500848227630781390094014773171282276768897397289994276078209048814058505769764652792354651638029016068027177415385568938360053336695508632271133263577129587324127333730692833652483596068950166270930875327875843604890812722278052814348725735552379014704695139628344631925889688231911740873049204505916217796182442976666869714586846420633976726837092342591309535849902059469326336645816185308541320618354378341014339430036174884353199579743957835113536735624253188162447504747120699787244268441366393128897672643759677617131537717033760982334511058762887519811021811056206598299815662755655476983899800446236728510147043927031210322901079835013198221533585651047456025604895285236516458171512221444375995430194111143720382913169724229996186834675221637385310681011961383318878953232695083251856270725184290538676768574943844997789225488637157908193887250775032435507816962726678794053662909994406811875681241679846077342291253045438774274999488618984372004513975495777277252213199954817063734793040246280655203319081593140669778191893443646864487854488852184521273610391421235002105087264550139426409943675973169484155169479388014892156053489266721920963335142736292798201169543621894066584364633433372291280944247097082997756639096692040639794340237684304119669860581207957649964129726511615539216084245012452117892568974562725634119144445861570143513266754134463432819456697751714403532062005986332631323549951367739224318960024694290078980211715921874197787089749124901749631760381867438072239983647559122018492302550407431548034348930503417097789915877518939713125240493867524939903553594441107234127468677828779875180631589640862427898099671072169187493685631955245201141675388001340410246625489829369087331613513042946365969715058108357888657291058868691281745098484008800903610040447975016194086972869608733552605682032900076895635743004087889186947966512924175006931062132386733910990616190961049711880965220326592151226163372583775287569060521956711805272022689653346447056697884063174528401106817478790823494591572359132241557814094574442425306475189483719284948979887498641306714448292912983792516293674628922995424926125400908561107442601936610808383500562767937012711960033460149617402108169324173809958845344004513207635630863192446476214600107945202459226685399996028091070475126790685930504811446275786670580513558746923568832102250815258332045999684527159635967522701268608515035163056561595128243499397849385022210692604908678909576032237323366988454893582854244448323145372336277997788320168342443466567355629513314172332217585411515481876303866790885774743540603942857965829557046907918016687957830729221794050629707394800693289123593440111544070148226573035353129328561439910680909808140246663917838246493972456371446951802711539006995702932342779017791382438258194672859405898186282398222224033624222446037719837760708409275090394271096574104060094953879736177129243047524928676781571859429578849434925813664917792598542172722000202695537187216699959826865865866465840804143866256533249437921408079728965067788140600273983582339485265235843418955727081991797582157847023721955968468907350148786721707600151403907846927213542225436163090652590488859050757088586602773256184863002415868773496266606537682766257799915135947913426109636703211677438424355712502072128997635860503298118385638554460441064382734191029673234270015124457061875743276442658621634043246090733082789218902525973709741822833033406170859502452345306529329756506411854330029554821540635954824943668844687463697335381274611416489631729892797487958608046240188624796671506283293045928316736295258346102312076230731064359411968034182203857347895733385939426577961416766971058647539880626769874437906673654670872586467658042632385878797026747418339910388760892764227645527260713726264386911298246637940182972832902253955561779112829106962902456605244391202641386487590981668654090558888580202047372616012731905464877346784721441073241085932414570131221984171251942249503024191997437436374874471203554174825601132922945960443759046113711005828850364555584529292390088758842850209363846226501569195762505065988294951192574639951238479718752654169593691915074641933454744083569244477782674326057550845300246030423765866897430771280250375388510819718584590029756084926165740692519240900862776957453781708605381649815572919368240386879306380453563264651875967911059215697351953456356906068658009721180650958583165918789656031722406276723242215006891163720175008482154603112632778569544092057674134501797906118467603189659344342315883974967206644889592726444810233779596703414568509810284440324849249886475490409204232204445158422026361709741531130551097675175160475833558542310372584086129516154083208253836874556881206182588405371218353279112170778703411114766428813591605505795292808381138564781700434484679022034404525229087549929999781836208318536365740808624034896948830569103790293123715705566700467737107339139361538290171648440756422468940979524601464301509764550948579358227381156311448497482790440880042123089593008799608469424636024214319468600090088442476651828148009311339678303679327057240706692773164554241712715555368598894374722111954596448405706927257984194992547121763876601438551495261130618653949628893123454490514050698553756959049140587585901209520513746611225965099505287523288013752885040743585426342677701657183002279306750931960506873769312793821597239160939207391054420643661701042376473679633762289027715567383635580691123828295682714573381284250705749459161951952004108943392167311573487866670364304192889152432913906977238176526290877071675282273007715928054878673263068897973627459083070299103993530644358300973356169739250425275539338539375281249922696840312874817787411393237431214148030510528887771266906992724074021762030341337871583506629956379677655694337226868680561951393834794131942642346278992356657278042908454886387423699736449680723576427027492537115374057624769523784944383919887214619566614593862007792648070316611871013523818050369597058425765312209784200268535829611140071854899294796066782921870195822354360435976246647331889263575490125066601980769142532483338449840221891143555470272534892813034668766639985207095609281290864627506291514677727658534389039054542362628823126720476504782422219990760251739400003740383932350519730145445947591347598727558870002462761187682167170908925981546209674674873679413185824097596949951539988924299622181747705632882350656580668162942810436415057551165879967975683172815654851395492699197600974055669832627360409377932225990927535254321400105359319700615796026221330327883225763156773791827614325953529127747572324211409241803006799603439699058506979297449052841151439827639505117028164554105227042855499997879557398052539063689687028424739473608030568019581283644786457831748794305841876844361810582001693691156559012979089136692460374892729414006189144371098262712729920834784863044863739472935296893018217176088440139894804751446370072384518347383169973916585114194479987043993265475561771878630131631860109630715819891697222975962730524089414388993593362631990614023135050900777767746070992103529655632571631702186700258967139388038272233052596449047085565669004340943564205416322051152151155008463380130366515563890595130564661427862139399592892311661001767976337610241382003564824700266268353153527537409792043904342059018876932037168590388587386937172754482912227890622069240808555206126541040392682217458182117715709124055731660444943208215910982011821921950631033979355356706573882013098511239790387769999327406635948788534673023194470820324314980702641415853789946849641825216426911115083215851238679003729876701585684126787688000621727674111777742127910105896395639782275158984417693555448948604414532969520208192536533529792551374715002266759664688318083698298787343469482684142574943791638747258006601995709578399085795618917437997220837355616211226762032516049031293512278858164455750222192249225906590467486265663879275372941804250116425847616456269083403247000040656422853631729776131107079204385972883349017030009859795551353567897536843193093682599928269922832185286972476387223127308604395794724810998042882342801386918577580841754895103297136201530422204005018341391205231366220802437424683356935587262598618997400415284372574288689797789132259327851360020692145209503191875665475804019493186918345544065396834479907551591363046541107333730586047194220286926006150896938374772357840899971768481721133319985828738312353222693421899151648555605298713985581046833602364179918828390874251594922221943169352470973484997846436100621860381149819892712890630566433959552492028858604990711369525085036132172772255101348122508613985144048344277621214715843666466692737797379542109200228109019871835745507516467065296794085611944677387141723318546843774156064960371854141001644466064700231860947748954923704648539417984354151750820547293739091941920467328708456284519653980882756760321878365248058985888847269007929999350747791641658972974331677025846894921342242382694613178889099028522065457751224255320986636187897424366671360598864697741108193939868020485817763529070890753088947481923684546986809070516721799886075694374096759251650650796287751996322316145546316690186615546551228379789022664075024812474789807160060247304979263721618365671888211323938475601527227565528910869875497646658441594499179769136144618812323889548309040952304211388428967232047445819545357957499778222032366851563109035678391280452605213418342096144979366679372911318612848111366010267309990039719556591881628918864225586338014742538861294791353568595232335536741471544916437151492839098393488286558757025377279109123507291981964638518631380614672691936129853484847350338509668356593017326930816602204492796813811347432827360518970756393234446628042475390248061931915267273490350435164511166759598905280266494087578038730689957549928746245989922446346625111107703452866649883667373985470330294723079671555269991118084559032804348370331574439915101760348694921961110109559350191803277165835745306230257493422288331892881815684946613099050373586729760625609166093057151508426390747863615007001752443303262782751857440459667711599276994701099646776395566648379704216758428152698375428264838463760112630558584189056205438510491436315047357299674364797616973468948347891254547769158254333846364899327441826425317703402976159782682026503427569844975874517165959713453650581429396268712165301561702063372517015854689402263559940278741547173628549592106947005378100019472865256935701360120558651698619364997329137195699744636044951394211689417322291895654938622010646645295365790006716763147785076684431132824072939532971143643438378997801305503470809546168031811860713771232396893490016448086829218608612176062334813862628311785233917659074991152272111476963808423837820988714156324272577988563930247572621276378009289941317139200377444293448279833966358034917604036137650165377684413560893199957102763446292105147423134749961539239593828613398292688235601595410690026572359452447129220251333986743849221982734910123961060036907034804836829678630018830454249629544402502157173743744923033530207031509925433995383702426043728224819295321341860172138443028960703678190946603589590381008017337017480618701517146593464826894046189639542954821799378099732906513052302275603172553886208387036939360490795986130356941191602587386907692044094674219643675205653882566979123963737098030437333745404054046826553971747062711604291910654572631720406105036009509760840813310821012557014554882832318175233975553083741727983965252295973837839234639729146287061305042058372468971220613781315045987489018658938096076630715489968867772238446276436555907858334777136577359262310126954099678424623826178624836076866976174106290670695130075412506026968029104077380748019145254037547980361487369816019447058629325977243084827646199249666523559253868481246696535515871544530541127525420539887063541307225430131800853265649578529175182082682707994447302622008212820277017149891950064948629311127056344229703573239921119219723960999851482035571014992137716874522605930318782301373107637108725231204899058672511806247593718447925676564092672009750774941119250025358881817139839865394691581851241836749365651482980334352510679599285031472060578964922612018327167735700562140621748199893697920577245570156423310640246134305891373592784510152934084763232295352120471648720549609792742843446658581557301390570734172919972281194671030045064666626569941239521735333728400292602840155869298970475976675542809072502407332459422823453362688644702643513434369582912620187217940033771287989624385099273572005888670753042906326334841583043793058433854477830847860923634233230175963873777003127765255421561905007371362344951648647680519762067166082057943377037922658633113022114525811588896657936565991747383683129607044080074639140430545250240926935766482711800371253498870679900111325564792740376330835910559158712869278623019349004686759708435502663634252453445735845725231328019626492737880290337007822418165593314281621092710024238337683569296794531225108960849669625047353942908413603264007798332334880134348743040644372312615469369563054640698145377074201375469623259379443841782456804097054308580496144869255404588309426522162989041532805335909358157985264563223871283286789956989425659982742764473748440778975647244511621700329436100063598616791149911186799695855798558007083848070526700124500256641895944658515754413064608179809409368893512341214754334550472449177405456500130803211461054060636937691352026638842873323578971764654701065188777114332825464164700859907010684124334600099352031117124680713813933502477084036697893985489011717090011737816863829960538998430873138621358789858739065295592322021576535264506825077723816208564380006187772226068622417122710234255040914855693781067633862679990235902060835292236359465733112610683454257069095247117136979950554331025502657228840419005146463430855805635303722712360312423633263341298794534562156528399463357861134112500512540681376427882848611216912824175255350591441681639409812273716407671663176786175740745422396185869457768018522428158559857936269227640598667856238757740124699452855480230340634912126645531722285235845508071208803014976689656578065493665444388290441172319536657247584196873014208939563531340871257155143576513345051079826926249551046688593499597142181736834485640825842731629652913583246784509653098398569788064889738938750581140798143471036895350757887564803879475719576397109414059802173677949072267924433933488261334417716458923094628948173870018436087548498500725044861159036567710496331596454546681402381447260196298764175444516330317850358168742019909377963150249907185385639139069730081669621144449131418766163447866106442633941251587641303250591543470538617274025169794432271212509340022883524848387986940813190717259144708478683201840390072845622205200981901709551108875174615344685454289142102790063333200975472116222289631638279738173028649312392494971193535285654751776332017908668050444559071622419794951033956765282782110642722506187350096319866929826397762494189431915468227804043087691729185221886168482525227229462561393687552174842125709229974488418477086883938005337670978139730942378847059149031216130058615954604947507153683200633599810973819109088468595410894832605258065110277903368960293842020458564500076537989929407279954005175374355633054385972215485895411716827692797979174043819945371670323199619843643972760643633383581350673666422054380456540275328126587588907649895255205841027442717950133651744907520901440548617779145168093482002828911533223050683325037362762362521511077696108959128983759612812883011873421331821485239884086104625739840688860989259520448953238186517926527055088054312740790480805134667395761010354016682738912769784667717740780692233648330786700741548842424311677868800392973106917218514083811852203499654908367875832285111589515010181749482989469006804591108072406667079502860736306877631127831724070885220487293828872684435184773210155325340987715328387660220879325340385010355323397233946239415576571345194462424627802722726407379077372072330854424422679463540112380865718081385616327871710041113935894980824886484159365695197179287865864875981941837611801397883905971735200002210223785043624011070663945418840988504619571080474942330643339973027860884385176587504960992455277628128979826945847937812029592729311890345780295285822794281590473444993434411860662615244459861787398820236397403100516656516444128915448637904574631204754235348149801933951901909748156930838961533587043626832769796009723760783881055731480565520494474295139997206756740680402651879095257026525644338378839502179361581501665831740839397992587775114714223720868085146804465061221933767596054883645615691347704610906282762852290045164241461995782304848495603506639822510976190697686746502432160900543986345712062574618209305636339766791319876038223664647669554497462381338469702872659207995791589785844541541278312202188034032613835982565192993319745571591522030605838714397263587193291352198293481183559811272048389220154425055226244143117278406839005265416483765289713987804251883093707270144345157098130853213783496700495341106531002621415265334923417102925640402734341723512563448920211505322516994913006337935025875593522340933937563150538340748179974191582080460532226662829929341747216130770171288500819628650348482841189672180264109191630527459193029080539096931017367343825595675572089312222597933209687132023370964263252247597917903112441735665627025624821049536485766851367069661874687954434764510999129115324412194185426315286514235401275663661210135471417553894681470932596493543742089939921592295576303201570259139864176122604505054672805757692621513227344124786128291830852755148816989228724716314399522190384328567940384314707628697792155240210956637152987119051484583105977427064839033214022233838282011576360175847476674337529386965740558191802340592244438118250045226300767787485515262209869828265120581845918454100948625199198941766832727260194099150995621401875012178039721525207966936908243677123957300791430140689083077254629453602678559067034867031956224603301093305305455521786563265007957612475345732354549946853987055807328311950934973429881381009157129896553883994424420141172746004051009465387311253599243615714554223484346197263447159183511852373848156134093555679393442518132196341322275598038940915863382588215434678816054698053189060225954288677335176829232533748333881902436961281047991856554305832551436269749310553713017840570945687883036755486998072336191989437957584358404409278817166304675386238440165307249799268836554233368282279948408596289012920252292312634221279282978994024728181845545646825976410283871085910773604967594169630698380115712599714228676338394171042282252238773833874924379182790260725329650526646751912499549241680585432405753988513352423447673461007149366573296152081885588852737853828416975068917019817363111873690095070794834708609899438508409314009590679983172169442733932251463170871584668930924934409403720722204588722190936373999926695682668703153961077816718693393639499785973867728721784282002488716739406566857568062606153126790743813650323053315957054355934361252178787874505459646901151807256583621451435724642152640176462495902266864506193461245171344711721073798212955044773405612411476884244450189278040839438904060236787217440317938820296717678364137739775256416029079471832678946711737711504243864011640563362320881959887024905559027141032264495050747304196657043039647482693958860334652729751462607671500312909441078743623520120600004733183753391375224998716739207171021102333198842798131752605269076567564961324451383604647250899668494079883196382168222702392722238262043600909642943915016937747686421486984916159591937840227006904770670819378710638945790410372627467914135450880320519388586449272937949057655463599514802115671358233840466323076935133934917792734486499525063347162860543674114427986026968771888889076483240317914796540104739021796105328909625119852613853063116614502701814390868632619566316448062546585589850796838181491497174160488086651594950158655761491938584389452499348827043866882433570197024497066385208762301517772095884607301951541265787889543158519058620547107972171734020017844749202867013821638108827916414603581459680263194606619212752118298289707947740776796666435339974177030822915560135706259549651178805471344334134394012936603542598157761899934308729652163135752297370676493835644760436859014517195610339606719852523505834119002472345848141811356623116947272794602817048833415476615049604254737135800408013369648495273082053276166953953950331723806717053873877151828062108677277541758948375214129596456349444701384398473682863691527607119216988512512387697675630334310383740253426096396363472139516102463213664010195632114649630418646634396042611192888287243118425071485814330681270806536432851536081171779408484395351532192398500271643068791389782995552433436886772960838459134325354327502757960295060807414144112990448927817046245714876657962506520355901942506233593226081763321085770199381352088871637982570347350004138216863304723455050628512952154270813585477947822926932929047071776000418434533311040997883670207306259300520933925690976437089187375359602279557380688950154233968621187114846838434993725749817006827969541312037060557015593670702205356331649124484523928524112397074586997502967480686067796053895104593842850082734154946709036141605813384011466337014022229252408509218278641888198626059058774152159676639584010650317747897170084472591814403245413646909119076489665283441927418816729470687816287926251352409014942029880731297496090739188786283354919879459679197303827573170591725517280545704074981128244856739029829122367323548934976404121195794276310964048830688280040310472503589689317647287758472262745903051176875939904474423384417041039701731212158001179361450386789758572472457883899381354306350715745431791339610892149615569035798374660640507884872246069059685695915788528410930050859212210564820194789771394441688342763911045484071042471464041254043981059309044149340038894580894404030091790968096440967710913654363276717148703130084957618249758569167677257486748963707926591771773006905344059553089859557681276469600384387159463138225099698852728693636146759611126263197235953757965275627130039971659993579191121039181446932290580348521983661004950287845607149285336194184111886838592949218640636611628945422308784880897271224568159521581357376839076235458693620487366518719987940410500704989033388268715947545563844999485559992816674544670417284566558611071253637630954939732473460119875897427232697191204007753805137254123309151331152454017960058230365134723948261655480890259911232813791643832447590509091959687390420151553450525828931545183936185212560884100734258330969232352039082597922831731590805352891772619845109592870961430325258572616717588107503034551919537323761018712580064219859358654420293040550374866367850103378380962855369997134831332067497047827457914571767949102739471013262188429844391095048938819329279556310854332444617135516644757630891841626106753926836817536475058106649939832932775416958114678219893961143673964952605607496908995445381259625993492434144591574778688326334219363679173968014408773088937213533439849475353521326086380402999304094915810830313228198121049245421851827928069193226403423534748185739898150750248042104392359851122916751402963426094051427507022605579039240034977529576977907525775015187259714183442004125154372817423000071008540757347876111444982383272359632119800840661217125853570084064866412077495748874483758041361153502090617966003454097132970611700103131212460529190239570109507436959131526445540404799075153436943658172503237616922977451745096026554716924294301462199278787554940299153361358097354180179322220614271265754943124348414277586581926571441844518871436442892429821727759953244389411928574533387425494848648684252293418364712203732319752350994133469486884223462016903263957201542690708284450196754653997189598593256785779674836299685021042473718046181040402250440386856805230731879031599024990910543235918090440774002542049352544511303962031052756989683019829428086851288769449214017549608409175907417321240156862544787136030928510819475671452653598067516441219209913476609140590203785585776971743055789732106947650084655038359265705328037143186823672550946853084888614451190041395087253828629594689227034021545968370658566671647084983218511655847911080238902421249182465046855998643283221932141108295359150421744388351255736435487085501121264830260324069769354363294069990750938076994273395958415112044095405095991753483806696529531108937164442174858376145924432263070276270174372294431682852901597897312129739155771156338167905211342330494163678878372299397155671199738455751472705570737863981464197092943878067621073013867550246861484535550536088022285779714238745625339152019466009070309444722509888540768996575957839584295959350988916569394599477948388440131256966535258192372123417132198788970744079482890562147535472051620840999548646781621577565080203816518717908997301417854469141427274885486731305622524974719775415850176058443129510674856184856701678953699481923867174637270825504927615113188682563236416602011369111767349741409427655413788267894788770922296354571938539601211607823005034320072548959289688195162778422800675059839441171510470788631621987512089698672320764878693304513385612975052272653775627988288689549199907491517599695476739631101845570762534077032965465072433246143898108260970703034129694419190383948403921777861409782645028998766373754505525652179984124398202632275435313071705943278088143574159842901331163377494423304859810349651414069921276762855645811122998884758475147180410045651956955096616579302811961704646347643656681126689711808392000014800083884312927657740955514336443008007532830635713455661721070307068492849820147719152082001246788198784138176383426675539734133498332409948734322546522007596821575704654555385546897701135300730778582473353833787180254689260347526474924816832308678807190444345555812606076280134707807177232437418680560677768647849483259693775942934478036719608618387868640381371360606016541738565090571058401789174828044578920023946680778026389540688018475951266396603333612989038473970685899883370639602500955217800708947374833725068833825959735773958682513289697150954440043938670381386969560807280015360354997218845786396664366149364528611588912016582997300409114447532087430995369002579013329274336156261988719343657293159331024444065918350245813611585130746119916077664566266502192820587833531069830442596034275851825494384475615214463340272186552194521343788635912907705152901781048332454626465501284296004701318764848873083753221134120756723985737689989692739089864049599580180877508563180889273475296520527589854418559577269940084868065067515279249107709072984228039614533568946819507564554797509442256717055540091477242970211083864698840314244034858221608516251484417230093143565923673009193533543246893819088080360736346893658841002449356538401704387352641571481643826196741931024485979790952320159643840513752560806586561402071949782113498754390020128476250891137057275901323788612581236879528805599933645448307435904019847925801740551710145982943721712150499355292136891611625443078704577049029445592190436946272930488737624112007546673688714791472161148919234638697330768704315076062889404909995848972914450482833491690240947379338298076778144116865299124139446200779914134193330985895503234973199493000767435087758196714220296866581916285837306612689971266722769406712238181297278945318137957327716189549884034722948081149208094828919906745921044661307119557385730512214387769882261136371327304235371603231684710855360348047437227605361745798298609847473393386570824498288280175798957500550530079753178793451801664962269577441008916450160682796295260579803097031020229791166935446299825237813614571426113767897232943597931061480276675494812513297256292562305072078803779151254880355886793039570048587947890675915194672999792648664310765081437835215238958759550155015489346595405981213621768384567511378696251605563922054800163153744504190333145567932800650693381309944258761996425153464349435281670639370124578937613393871670185828104054506214821312151595189399702567239942873343513488331883271466384416830175016823406544015898109385481523486050982441897703591032500154973616520807607403384648551329669897546898593948842473556109836665015806294843521533662147892470594976077360608003875489873822722664621501588196726977050399424310378085718263012754802959011579281255875577767444285450885395421788171794171120479804734939066475903820314794393668382156104012467890683739440467160540342669054759646376867830672293037049900187489866717873412435192331941909656214283172786513788118967510308674083007561412396879105874399380431510168804711392377269052097718492133896791915036807887515918966814898971909241376075105374743736705100129111820073836430211601330824510601608892287578737912531539371941776714287325225888644798530565603912270239943574978983361405412036190950940000412199358097355430184167290604795401674414283723311883110922595602112915931165235343761203265085375121456684959874686693350568907143235058323367444868362615119255133822266784929981527452656154296312249973008755923276153380731819331744592796006961673356450607565010792438519046211300251361644965929966606048066724461766824003160600424928871448039471459563656944300572968096204773855297415264526553229253433371150067470266967069823084446381137399703790126164373416478972566913480279725729118169581560752673258405586161148654948138482492739940462636295582113336178737266296873239080375269145722329926232545075578058788948344258609169652413635232534967404331353181557687284506162226297803313507276476540155152389349791159990586667198587321199769660972698722911794690276722639130643665521307903118179132841538733807166054783775293273744404811545364923463713056552159863135703674947806243973809241664020639497877835634179290332180295613526238989676433040724047424179656092794039184683074631868200142890853676799846249494800698196446292203345411545734899733519927019936699205483838301081817627965677773632882188994602505434198331367197456066558858649838247364108075343231210354600966893292047984332940999653954457645989802390819575243710632448189757956753222664298292608604459735080077000823462144345653598816794742146809070433896867706568666965007498594132401120211556642992601993090478273082389522692955816066651796947811032540220233000652368655380505090305960619218497759544331245265575234149320745293062275886965366448507273538500974632701750615236792015538139610366146007987480589220053120493290024216124425003893216897899707520001428129713412787528162849548281785871650642970887692771385880457206290242200774473180197338865625874384477845593347087468247158599605586309609525868938538244873647888034885800586760169196979976340451648018221509963621099663603734577068672741971816575363976399096342861018563971827345467417917536818219200780260006875801172499541289483363547455172164009418020206973241555410855765737754057527215093844549653248042741349720470559890835522392461002916484947859298474118648626526773686597507596685824797922522322115138268318719439894048150612406749902268349410876394570166750073455554841889263121069687317810578157745483456727112052597774606171435718395666141907360007988885022027468748412875764363195947475534420903152157498718111671459498216329824605265960805427110429751724072049907473707802832136268843896774643853380815785888871337749183972269693973113748734319347319939077885921275281020084753687775154521807253690638920168228397778987377458830716665182663109755365766319000703843587913559539108522342197010186797506638684288336638241400731749792753198817175448520434132176404567987267715933936931154578114487418351183690939558080305266095064026835952835621167987006376373584834294154064991910015885411407933657304668425933717328326997741347048020361363548715609712902963587817893193459933691860833785025155964144231987810818842186846411140698527722650463628049218034982233903526887780248448685681123621949045666101655245539822165232285603043591297411960784799540756373803781012729068666701877644713518367843215808539397224853666671495441689056862993896039602697369286741846648541518251031860115290674214133056940243986003332166907538210605672483734092310581066378082324373183262413715921206615776962158258670619293348885917991581024797076974476506457114592562347145178437004393187164259634449213483104581830481425885330895679486873472550947757023959923808952211835400197242174496250173859461736225515379633987530041709874838895431654423448658446500561561165450106543194737855183024819664394171961129122101841159004201205600258693912627314716844705453066087223216994882187289664604397716919561056212778882197546627972018819570420203085915348324551869184278425616415009148404208024550545618999248268016025745490337961108458636496776611651607799721148419515547807864409800579887903110104793898040166079286757545671312313815940035805800755298710074026182506257334225926146736612063313117016839792963498583404900994177261451346714748474436737393642815350923575672691322091996635612805478766023550336528948645700097305239617393123641514735595696315823413011358340007522657866543437430231137707937548265815393480932860998309860313502704883069434439767904101275807691025937172349180423119983838167284945050828884440000620315947440986969177402096221128712192073056044178383801337255673978934487353187977930420854191076021759976214862708667463991321603965521005922100615050031589310102408616126509990655105115281398197010617456915660185030300473037300987744859975140426576616856306594690715248980470580486814629061031775815029215015357666911336043188549711797950274650880840588173676625587953906192117641373930963563825881834692370347424876017699439465405094965752896075260195142106187426258302177172072983430497252156196554210263628724861917794548961695163654923145569100686749944108902494714767306447355415221800180674621898624612216164226197412361750123980901808108601650731684299286236046893933359446853217869038850362061442366520625673783696052388931671735206430273395401127333897365486357601235218197887767963035044100398241600436841455271909929366822670504541885470141708229576118077919278736401367025125951261269969395689958828246611967033606512149794413429002452754663553630357531087122189684680081707640837192223085000835289702612271127148173498451086285239993041597852790130388007846963529141109186141045140459403329246498402661896436046037215150347404099985307759164614135108932420653184867675775675165746273278325247442822837147008410569494095178150704227844349265829557985560971766426436848384174900342486295034898533594094891129373122128626170870927414616010767439904802210473833259905349963525577824686199836979354207830923197590420186279822464693831074173261124927693027815085703666342199357610496240346420811965538937607090111046813588610709119680169102736632085653633223287829307272098548893088742169712119291846361639682580125857355194879681482451267650942897609260877413183655274619898819305805122090557402421361095415888041593080969912305310683451972276998249541204415508236511658333092519413953368567914913410318470705876737391554357721960827695982664239811292543924676008448040061009278334047175063313146373829304705569226006558776116388306063103793784016100881141349040132647378383525866652804232684256605664443839780420069358009661420594192068179430670007938896209101371016557695185029562333067638521453060675621122708638663879614580518345788075032206114320367870365605711276614669245634248978306365340133276549696810430245556525333432717731073586746658939160548352345846164267530764022302533212152031195460641960816041264754944212464461067181264936984194311437562509945111700248209424709605476782016434241259055881229306116140821645692365934959895988874929542915779724513368886236478702730448323798760293818636448070817537844291143894851844124576779080867789854095898006638017909155906407954266921668778811430751579331007810023055454010886566092224202403896185197541578979114118077837427291234887418733166679513259602195953800711910167446839464051465243511630475875137462591414327720196307544211990700847058851825439581599037249993630487492691229455788247758451488113936721987441651716462863666546774501002857112172186772360678307559358327948393857466588615670460519828664158047477679716029867055446827411568433377550003948305417907898302751763096730601024087503791062962907228595819518346912413986226898171280962769280991395221594333622227393860015524147349717495014837582132471949345184220934581440163152905409575220898460446741531213551931132231018507322128929466034280578499542871086432627059013416226015269366700101561561259757573673803090232113779519825533265965589925247800121582451922992206169059124894003847370792711759883173542468994752242891063719822213502487661288500510946022177251583332735294854278634451382008715313139773313219613835714595745046423527223255837646130392029100128811203600569894365445107142423176387237676186256326461900330386093181868279423912617966656458216771297356250542957928549801437136316883297104654223780923428702648276181519781061865588174948548598464246799329453856635247456432789105182841849408877787808209874047750454524874204715233139448939727278847121756829849327680036866472337518747054262633453464534863913259766220716182223045164205864909601951847542400786732590912431017803389188276428264047009540290693903022223826560201900207608086830875262796711722824197847962505925810768561758947965042191098141077624670628381859011276221912591849255391599475210741399579803590958446822735679947583663403838788611195753761088657229693597741232990820823992256749872758369164051654252291499043920327373246012130905369987028940279744955400555531526733384941096852835473948162390562644328646309001078655401364090641700374558402494901759136855789468763694625415857591088175249471987386343741163867287873488461109513843639569147524927567474720205350934541664237778334618553654608825376110030092434056793916203491253706096815218838989467345491385315783974178932145971479185354944638406995462883064264536772354346579053209624643048760679649317969428907791712195902561639432914541026787129102905143536810113377378752151540350602841015198085130260296141086868743706991625714182358907446150846657002216193087519450663436643630118064344314603589424413671407377173631520916442957659854997341615341329792838905535660583002075333015008587076890997702763521125683008122093187747900773013562589665449004288944073031835032540054442904983953575790047045171859227024351087257653434550770214481323541521739862719467592824272400963064095358973054482218156970253402839937530480512587290090896136436068708407696925028095559353951408060462229109574936521772896584138286598696395205845496197171272280719756044769737877456444891076182771803285193482935180716670160598732609030979779158356232628802792947768890188091828563415724831011077860805016047435798538826858551039519820496191140181869129297706842004611310371092801611579280236106590774706591910178919418714605454495851681936505105313397835417194808222631117861734721640333245167755583709072123944941923519060761986330577852553969737548636148746910118499529194465269242435988781329850932587663255108385361164091843444503037624734498207355588338604264412498378781144599579202830870653152335597223847677461354410654446291921296366669598884635185426431451110304354627468190969877453762758310053747670125988819821379011039728849723296770787023869465389811502163059934182559320397360555013739713320132046681862623110255285431532947831633889283937019363389887620292070762783428531514266545380869179248153409618238331292796846088042449877757270905290645523621195988949861963798878723451984401018318658539356761808499379560771216636521633861720516682164238316739749436268874299572819757092793444527155914365159780567435771413610219500655904845322039153168004783588049452428634414778643737850138922368122601357109372400566869864225455370953156478713883713916307431211611381546867126342523254406905491002189723864250191703954934933794981108159487120620905075764296801208335055462957701323714447796069371808339387121893607811176043169909135699140333566853703484356879049848987966615725188773867141178085428598767251656233377443484006807656061902980775973826101456860276891060850336113942837233964987596592077670298385114717216736810318497402150196029426748762454120012679116570854824153065293539882943493667091999669388151648164158281467199653044326614319632269098045767700503770526712581343468530604274016848362989078455844962425626903343838133545580453532369946636094725822236655743438868098497729893180569262369533754727859106104078190425974012785500837206621697080814571769783164027268672881227013834876477511620460128313599278664545902759661183766332068064954457603941168331605504065627563197128959636488549812723238117829902691341418728403874275199212827825946291452810383220012258686215488785257365486639815745543047165885501860186445640567129788482805723805343208712434923316957613639864142693858912980747819689056007525747376307478120717569539891188337550777265246344998807430517155946254926717357956793011473988427619573176302738219563668663349131391102277997390637232713442979435966679885849431169869611057522791889747385507451843549922270607028572979427033912638710935811526732514119215554799582951338394973621637645552028827850824725353848093761685871238356677468305211810694590418612430253255976857004178377332911024048359752240642367097983420880402778765523115509129630057065443220743953212348683403940404405955178069649316486550038027434489127815468713456869497976325651223953653219215114656739138422783749914172378311081451905919888187584192751962425139144259454094536539306811673915751297040284437303946941344064536499751258086608491046640884568778752999885381389541096672107222120200045273480084361238140827444431994488154177809294261148597077021961647828743595952992757212262359826795409761101863775784141875419129968610052798163980275574441958239967418986294493375371769514333531397270082847128125607512508995635149432058199953375539858051247274850001646689422243860639220425539548521619257211194547650812442235313694740413504085275310798181631918530852385067224990359363345902112495268029127910020527212952100080703761904257678081185208033024254851293083546297105181176735800230946004888600347734620599972446605940541197125651460210610769308318362924223318303408348412285093263506182009942792122018423048022241534256520177152522598895111081658649317365844560631758740636181217475189001282196693383833916955433985364801529009060855278483532484196450104238502298331515021347164711460609420619650779983731307288916915364629938106028809278684508683619517513995985369149653972271524002538627410533891349714873136204541424603031759881611257486394833065824568671344260268883462547452848988893253237706338595793415917244317711266516286306303103069606515593592765988011726669951916829545724824618798618223026620743522475079888835391382686340892085219485561417633315227457232483887008602572997099987030656744763777675853797264899853311582908940472006711686893563042975531166371546668669859996324379898799764109911061058989509733367136582180689393922886746045565207937196037903288489812029570962043283039908555432864612168152962723368074312826667980795605957577654974185809702435433641851105585402014878767279915594190340455623019005958740490713238289221001477423424546574069231010378637466035574994551896930871843187152320696809662108544261886944166261030029559995326382837816534633824197678741501603026366828966143581453926082074086118504057591411500144453204306117658172806624108006106819997731207423263780320881284176970440060005732203004749989679262941314938138953008489660529019152640562133224655891867807352225005552422315348026665218904086615260964515739059182304593695790355571370490827229624769479988548836240798885572043259880621585848086710187042848603062944183973562955628321787515405037736346156701027569569528664722610018709118548546165222040854472056099881167097455194327199598662798166066255136296216523049462305424654860159562792312229278927356432490989444616337939615426422287857575890678383614089520481421228212543017775825394457319650525198086909922113553111001627019603338683619265253877259746038362825082666160986005664097256457795978271134270556486742433173810020878166943784358409757563097797196193509995168785883811971553807089732817834713687445254349292702953754562709354912619235699679581986874343172835545305661158953383943166173896938154295444092502014438052579407835162133273623163588255335888623154792224619116985710801335097334679484885407583920435753978712712719341376347208684662790578892337338279622090971618367281672908600289231650902532709897558612353780055371853577440421221681204813255126798882160663175832334803128882876298629954030470175766018989576170754829759885746090647744801331099827190708095330415561302642661176412659996720179742595094871551722925759455422247948611760726792425372272317301210428914511196635666492351328747559095567876951722921186250767578053906792741136005249853717560702334809180220237181464664911841334902358257047743469188027940245082628488738726581634342632390293525473667729622533814128102903001141726376916759558606146317032737630780647176375767600700192235542796688904457930403411081872046920261393792960089814866495122754953432527089816854861138227616700940673693595246719993694280239979134504470156778582728639657501580413948066021019434519475434054665538972498049751242549715543640382067945510535262648815424528826380294495744800903921489397239228898507153133153670625208488178468601758315675455153627491992013637470591653479641480372735473231504959985555643834797453267138820781568343874286654665855781917701743284176448337866711721317337839897380405570327116429499201882630035167683281447860875160636777148074382884811029910141894433227140178139635925100853755465334998748708960965716344307433638883157389035458620446803017895199043947408054954425943528726008154999645879448307939953387807757614578485101292551977058678253550769462937853657424462357867567247162779003144580139287402716289941083479549264693184681864038376096669100812277554400607532769510425331431678215707997044674187443071226299286898548934509008480165672147669848768350141912464545014047181269798231458158090366571730537591237534329664463558051194911164683950432561989022500368195856272299013866934219205272291095829805874059977576955134696506057074094111666999774415105339952960993016331720520876386172110907712442179049689569717446739402482821923066461925966929932360185599151600525066458921500629230391604578474311674124987080755818363305931827407185909244830649957798718670243497134166265419708235658692857735055343590582148372748661468175203193125019544532500015144854142964061340842614771976399277906493898074028724928976069879872541132025236014419174136133230442196795703280538301933768216668814895554874689988816952632002268130495276644015974508156013845514239849730233970582771688962889106520107500943300277738823643724557528634894247874967777773087264547139787553908369597687050797527505810456678310425940265255147129285163831788012224937017878158896054319083303974723112392150816715693739608053278555091574047298030019082287520192956745466895792748315901185167389031715192272575844220858060435604645537385414111395649769100191011891968219484813459876988505850052548790164513139123952052048080928167473831355401022448330017255674352610167586522954585831619437988263067895370595237405419824308125207022428162086500770520222838359038172691317370187197388659703363297150445335638331365075233451296380761173076629149880731604416884649113836360980941869466227924106316214828048470969694501968790095936528965068761082457634166080680404655557242689672431236074711430279943442863842380395139153020299893380942565873848255784087642811947694232316749278400288253627021836210228915983601491257094946057340886397290138983085094641963654755309255688575658155281057622253904271647024913408693843119247076923526965650337515492491821690613013352451915739427535190980480576005019543131102656564419690925828082534171161234604856518172592128135400477418213852193248093391301112185044299156860873204308832422535959589598308347182738453058980806395764394741254121364255070777216153332075795558608405368930290507049623238338768194895399453705013131084159054918899817207609332625112625029293993656357207317987368737035256292304070214312034973670450999096850964281395249827665777574986657579995918383582302973216923527309319056826075650857536600790549524381060841694487363369156887484749275442540983010718069816582940484225191597549217915663966930540740324435669281197697645140600912036993917508078469093319141570827394750245808050261206901931677173422111858316016176459354757976973093715689385126475331392943320640863656380993704524653417687661645327538859180857661231876440630836428636836448461654296009162163284566905003866538755629599931498930480351192626397221195576879827813863973698074424549442382999525777170350089340955192996417567323472510166031295489853224573848012240451938706740370725040110327416858782726699512447929893913373743260614476541967198909325982908762606842328827771717812485437110968658750994489692059909986225764785888687929998399515375112939859966311739609646566589472749182084048683408487158224295715274576059492552977672849549936133205897855914889027866775675161369124774978904499389910985060250698128210512454968969991104080989847277868421780728412266087416910305206540934078843359181188276256158200631042939384858826201566488990824864168977274916730837555589142991353606801096561215447462016849225609885100842410957530510774531180885349088984416345584732879269615620616352387366095968143963446106797985502863623333643217669999777507231090745991519998987657441686949333296062864099666752398646028342555625835424856858757533019529094908775518757371187254358183542532406481038677068960225179108200754901163276428744825795629705961631460373559746870579889099216615452981425190271211520252163213392072665225609435747573169768827345201817155487385095573311781671838297278038747893595051974564563624359359402485084350515603020279179614371997118468435691741997516474159046432300178993004893060357801331059697247323283630347853484047976076352943005162649492306900814293667980939424227125943307180402510040493923000120776615559603879845010158681618600938468586429685252046160835959240702335392357821126326176620988079659493509830833016701186531302230268917272950425807094020045122414120394071968093688786233784953900287193781597550919045849182904523022342291554076801972074922448344644805668640322509825151634199753752255908125918559006526221428216372682412685443023419791685941549893576724849027097487356730948921990897177925082232999762662670337108024270788845324774764827261581063726278290824564831733127565971606532500671050075475180099566487576646235222306834801453187126000006002672057430979211563442828685304568825477159611918871799636499617886958029824533585950256617482906846806767447747699315359743586458206594793057920969993386700219468139793749385827111514216101062225195840138151744752415444868069899131266974793039844317386463749597308306782602268900789570682249657464816247136306831214912108510570174583690366365380123333760770915738496444504692859916862616967597205924357019510734918776284356760199966508151233416098232674370687093027321750515636733255733839943183912708184595930196215144369691090215906224784765188754613903914337888778964595292107816151283123097943205749705339245224074611619880964253603504077159613553153037744973592118929011497202462019580911621818328035635819251285760200114035943664331901783901940423728012823328544981601303986093957925764754369204710285409561830351721719431461552672384898404466863860655915604413374825266641379986420267710249610723303991245804233926321292632640574006657317269827159873209490692593371092049849931252606178423859369085345894521034553776801880210625898175332950429663095700668708245627719416787264765786522465754866524232615854773504661039988012126601411064788647737946943989978106442963428486001583708851066948999712246489258579033833389981908219670684084245740199307501475216213376288841369377715536329387398297051471713572417807538327965461972093673455017973064385199634633872510813523197926568328797392809118122807789839816647107825778022630168283121438937078566813706008598790022691127459322823113546175151293570077958822470345859541961265805250247233725141382235711330277161854371232054850186108322676904170243617498064391899208719668631701495690392864183793267795466244917114886133721297058002256981919337168675029971306554886639146329707765904913140768887799684802830246644599003672676274748054679697212485439428973677076603777840750942066055263691962859737834685385010445424823359250687611237662235979507790509576592428079881237006956672923170942965612170205388462903656740656369621529436879287655149234437943193689783096755648117471745506880122661493266002239804373720948448475752023291804266811390090040763020523447023879569995562034584284454174410702248936489444904690141514548818379423912279332123192635421294051050036346121294273172356316617326930669474337169130185462787688152690756381675077549778762305275034916998466236850447459833590512582224141527488977162697593535332505813000308898172312339321103830664125586009461474175499076522503009483083250965646792976641736771138605492249128232852727381797947049413801688865580515008391970034143548136251347309773950903930513030940044032769768996804975954669222311020037167741631708661580469824109737250136640883974517604184428106505604466290178873670125711701124321833059574613015471947331350111769499833590570690021163818206665970933843102953005613983361670327807705510271873257734839514041035525537223426656595071392869470122907245026530899543767564797298567806466818736469171418687838323661419958863031266893201323126653865104154545700102536657703111370104453003783749278130383274127700329154096070983072396473258063133291987439741731622232525166418532288883964904909506955213718991899453067445371294733964337382427106409598627440142418657909248010962141594565291258717770509341387388444045101166542999365108251670539847695231593034799347295146719195165527837012777780072050295858582552847381843608593966324524695611966327784895412542011533846675452518259614776037022430787761945682403178959826535075784240422973909560127948616428865112685927512123936890175829209886399340262785648234888092735390989087721042757103780151630138461134294564144976077520024783087602115526333728887572114459346932481594833260075323749444252718533498854464587441842551975139431714734699911032872940295042958344769803829048081968914172926805663709815132170474323046341959293385447912225349144977737195248536009463155293011313769070709983480528107136563018490837114521822214488903240611665821732431584197027608888423106176525953954795750807631369639523883416045769107877274125924174338043464335846395731286860817363370872026452454633783363436736039731690751342877475215637742604678198326534575543403424928921190852721041145274886715579652604020409630346287118548970784429919541415060980381087229117012851742471086977642702845644669308427621981919621832726200087582773278139026703021130200288818543072550211768858546729883128251372735316636754223659518206193474621427444069087185180503363740066856392444255206567219748338667997593368046182302141828262555325290961776844565690687783549807359591266166194880420058459644885697600574302770618436198362179028150656166443235291857678672897860740869626518734149080313343090226346218468097353923311038455875003256010178627711816307382628323777672162932028031032108666674116911796236795041602638292404541161553128339697669761535489599367500240019042116977027719926478916652786584879230379426040003782139451007150706574451819262644056402821390242060971545005695216064099734761788623266003912280426892436721578592308451158702432072866803751516383527207773832113262786164276693340751504085654481046116401171474018329170982043429656916701397961655826529241652089535302454925349932261261759326583200460209612157987642435317847430350683728073257182153905315260237832250571907154108706995652610232150515414161140801851765305536639765853321013385350315345515239409966405961665363652705195203347232712753008244568915819575742815160090745887826086373476194735075159197402957820668462123856480659504567191454141732207345266257931040244729176904640528781507996383525940428057465756602660893141216396037927304188394927213567987700887941669433909419798259933114748069812856782693064673017844141225505230807364477062120462755971587454756219825415253264588247935633678112584518764684758542097008583564268362189832655838770179417082124357093304381256787878792591701356449891967301966826309342950070581810466345194845944576747944421604008545808959472910827118671563911087036137672157984549851137615187226638285405953571975266975502438090425416996312044793104495634818125462129665101063370991697430591911852563469741563740551641600198255056667333333364007691820739134367621321011678400602891803320842182151302155048741016479412729685976766496711278175136361729866610490113959821660069854237865810208725155356295146319057105116069789438314450725472318769364137872572289456546983025249372509349528377380075569819962686814419234450749398685596356513328860941124020876399046178180664053523029307325170635698792216740105627993916704692226028077426640644931216465891285267745826553418733610189827593736289015136667353881741766683024697022541610424092233917025066493640361626029549082233216997855665585976477924697835827404156532815735677117641637367240677528287670296584131859243647953132119528386639376128626803942588722634384684267801661561474102854794770558042758840558404451553331246546093722900266778449468501441195699741145774888681975818511446744295905539741392415144786451869234122588383602577144769468140540879753818293688888133352841500797549245151841438473899475409486259647327531808035160349103587417042494385057430379454391998251063194416712626318045064976557527734849630844746487063400749903447797144457720545396298817328862471926606878567710640764216062611570229757940696400919902771227368657292383450337123925100185377849266618549914822604867023564878792324237014655619094854708963472183513900509890738258539383644386959904568494713498157683797416327166208657278910126969838848177395067985192396272471038132525466336240837332642544562322052408095911370848392681883806990864060777771664823679351345553333209019850953371176411151581841074900897876614804176301969276145808064730441503074822307838449300826364214574333788946346674804722398062710923783211877796062156191309289496430216907427937338948093096705093400259009468664323620588370944740793666894195139470258645249029523347116417861742957244644367413108434125123820352149451230274459742295421760966139635303951701499462850548880092477476478290812126434009918103059068974016715998962184453709364368424413977584662400766256923519703001220672905456962887765655280136178086832630244245405393337755664825971018612926295678355338445304553971446810449497241533649965700187423722016450241808786240764262956222723955180240388819490925087721110931706708883528040260844590844356238775601929966444832305871438563206000346853361085097967337910241101006123577354261131478774683609864904908422602303480872275944153284013329036263201898855810575456767675304874100443282324580758910472098924778914949367315281622440767983949955280060496658565404868143350282461815146626962648702547122495467984588946174025896453881923376589789917377392900720644412895170156112160087650433847711640249951399990290266657217457930737780626840472939515732958419203131707490593094049034033036925363357992780450146472923397731622148299598109744200295217644710222074430364257917426597320022827502244520494649209303840925642253740240203870911836412450484347247009376272692656923805802232673484934836582723493772401879778142872853525588780038594665972523052708342343889923785988319768381565603208041707294574729634596220738350742406811868618432119978722356244460822826410893223062292887300096276766533112644200251654929593141245445598339901133189122440206090631905687730592644757218794989063719024970812339158698207508008133785399737830888242363839868647051287660929762971364364617249156723846504869197944627056182650777636552137498787085869740884039681644425668334994711722357562365989465011093297786363342202716868963503187369497473233910222673065698634352061180353935080848995690840581917072286797286454513882489679141354611478817302918257759979783945485308737149293448200230759305118018225053825734819609906931100388239412855860046989727423077855915784500819124519353578021995336051507950655521165116182098948032850321086208461728620171021754637848395023307191061512084444638448129073191406523257872551509826506100847257478322179553959729077083120511262877559586759810024589275089520453106239215753308804020658006294842773165811123125904261779139168844156736120702420152213383800367656636092081958194478896322300579944949436167810140517968692931958922930267471742620421477132974242818236940706545097756467979041879395157238334492366263603694943603626036989796143347599381646246425196256180502459475215324963882037613159994231510575014547039721036368093815684280699347252225314994422090941983180423606350102365144812239651286033287566066223080545588299522162003474724914353991259263434330354419639090063484002522902581180323703469386580188386721010589730698283312337206815582172284535604326869890118259884414927930333830998993044244190670698444947650490634824875712466341174167370485890624674400521224608533103173040639033404263977488971187264310435477777534278881267660995483802280500942257348109355934044448589574153579243567870163809079318311292796835600841137277512030986286549100072651221470611286556019956039262781230079526790036502467404322373811812597615222526960046903234207296815742217694778602662783481471376293891601577188664880296126654904418284026785184283401653999572678878900288494172198719553144338334616978257835956696153410600883764206947543104424429923247619945385917400658237290351641288532086365945852953267376562057415835607241081315971307096617527713544216674745730733271235294952917049852674576612892316878712826461788103445214615908987232553453790433345206470735777077198396290268942184348911430427909845494090620500216992984612417002123293024225194834832107388782740234437486093121691410453348634269970214692838841427018317877928058957371905096717806172737405202472019749358061282826090168491973805482022012949330782564844759537819907690994830716179144998625225510937653089115710196353289161319381445740171812332725536599542853297201287240396227417276714601410422825435809343283766622122129894743931793504075083498966044333960366771756062982048273940653829000208023889879975260952610284396145991231613612548060279629995381166933317319019358433177007970869575340884827533314370717587917032501825926886759108260382961628907592369344166103279332150989307702616340747464205748007281304082496490054025721410161829130785206217730112244265672726756606451392945064649972540882247461587747814406158793966907861881130588258578808652012421573433067808148296101568642868658558684221632763147815896394448973154492645049730853442074701556688559989716207621352774760636772731305925648293955444151609153373088504525716520090115133674896266156525414991746989672218278334286302399362323979870587780645991871486886786368628894960515938330557060127241627641221487609322135764225145741417951513666451457048381173558492660220890881244291457733731026630442998186767454570648872687794342774586986348584202117217223881941297793792891712900663547684794774019605434843799475186700402365947979496676104273168751076192282994600525243257092420441354612553469395773047674389326886673276432096753016619343815539760144609075501765376064479193070097335212759841714832528971517090299956919923960071744349482035534332562492055997644385727710067733227765673352969339132283224063821840064372565288877305754913133297863736063893015863302621719699896963071539219386357760504552436907505849770644152569314678176876996716189903863754974197756958244489400552163968430712234916302053291159978736735206239260523284307567019285733174693964822356522299307919606131271537090237411425296894514513664031940291545908816202046586392656685820393692605742855323646822752787226661647888082148398427596546777337459241354664364353097451592354659419291309628226370227545386507949969416371083831642760151334167628581365808737805538688924315869384430174113052064111939370713938183457859086621941082651206801501438211362911902344219351606845331996766920114789113537361649091525230297534346348824951702204673350973261401128679188283256492799901528517593927797016325281725421388490837629125280840912283741607524604765846339552274523645063817170702032363994796254238930601060638615669484340229468827984783316774096098944969376333509977982141833619102773150664249406751802730773542627559839664689656155198778635694135740182197625280561191751499447096239172971124684356890020470289320278255982888858681619596572485113330812625274272897700791556361762395972713900106169382994919788801187263475817815108068640614217998646767105836813527914801357681083195084898399712910180774907337822596169401609743096428765174266770614322455562478868758179145932225938331322263850731045998379757682555148468821102509177747322972829390992888125781295277030376045271652487126720206608939279375405983464533915911692563672130846034008381799775553052879080025734635849036192583116729471819405784029079171996843860415271261091127423647258706546681753846337007016111349761055953816440750362980384501219661612259250129629858869604436315044325015551182271189107272593612979520975662941633252508058254708844131935822858068702712551505944862022349942256016945308685633892491036616684308946969885217583660912411686851642518248326433477253331424113500100049571012507130035251728567021768594041168398231536496240488478975696205194788345231684310318259107648463000786554529166930438433084942989967850291122790369277718668286632825064495871341763250693569057600033814469952183819870623220240269817214489555726740066293434333906724276518811625782764969466620104808928893096587948137293318930458365381687921430371421513626549535012307178888129660218474452405939139131214425059021180485387098740534974295567212886290483441003600544853947634642398456808733329756666556256790218602544294161589712687450514464568830203094077269643662876731052007538909785439715259200839667527568218457703003279009446317777157078901687786386157524510417009488674876892564396128126097082480017136165667971597171023516464192921333892876575970522510432864357303590553295342253273502942158248182787389325043528819928173685141862447540583906602023296775892121315516001114877572855671006524847036630420284432140121213965426654830531849382911974617220814260025450228901724040772080690889821439138809875424378826996886021715822310528968743893344328989793507302796249187968882922804622692932528843890916879243476473270862065831384999201067506678824453486960368492167628835538179539828115329495781926896225837256951832763052549043309277648470964382381669342623218165923747583016101917301089759411523375658788552192608139794611955171201824000394817678371452765587855577478948782524710285819531914579753240641647417085188897223069922661665314445101007194286127528790006175284434006123033855585815138922132025326498823472664251968523510573828880017539823982444755600802273995020346447838870523633251942657387903935238040936124536544690599774446647996652582183346748402254750010144507510208997909208469251777998097411195570940517221440675348894627009007594947190287457329861919385262014306478818270348417021464732060943628643348370985955950174063115775953358257845946183308049488074054889415426916320585941208164428485355358181805100613898069521954471275901037756483366826193241971868533650779729317348141914253804078160509013959475860611421481719168630020756424165893974766789276579526960587619429791784763971254281726356886046359289427314771798166989139368345033875671987834675982809392326967497586968718558851280888216686712881252020457865587621775572043923074639519322227012602968080210476472262620991670542308312162265496742307290545684715851942339791971429112358163518783534495296683599825309574124200829330550531706712982097783211919799973045681709597581403901641381837731348160269787290449803161944374554417427383243147255704991550675668610536513787886417264959117017687384947808901181490031889476631953314303362932097529118752273705207103925776213689059854855112714314275620312412296673503890429652717388032013937739912961983106250161595557467138720333276236889161555520132458115724320938029919144243729973246632703449505947486529799168367959166958088149898127036008577611710665597608721723582487567286567189570927251153404181015476648728452149921028402898744394586751417693567052514639090200005950233547929340449907270645023637688564104536734823964131384017930646414877904595693995201518776172705713267519601982490644450553452273520687148634560941971396629627359631915948601573992186227494243820772524243826247627328001237592975516147796347831987987344553646654228760393082749851589316238136631298475097032511434817911707393517758130851158383345427373351473071038940663372187597401474261835149044031642482983178436160742396038233719248637139639194575665874031180901321085802639099016415286354637889661393439818222348910675381329332054406029543718806706439545584461413893587279409334251024171678711901551247311151276523048778879420882573240686459503253815707840434102053984982877159086103487307091081194550142937826615764138654035052789544026999389292153430177238456138007354347348990809358113674538034811998559643059372685620681281896393365382325604410326803905821369487003937822441275215406269122693523833026321806192568496877032451136403344458622081620373366923844589035401924478819460399948964058093252056325162611191046074430184750534613459421893443577135557779546247308762056346873076167736318216629126677483945620836978067281301475736274398458558540006123624250309155076345698148301556878182356991227309145310762893777174146473084432572801874789303626941150962935636962512596293830132402367285042065012642449275557051264646936657077978308711327096569609982126004918099984986816831407347373743461490287366143878472608314770856943935429141709707876352140705778693600149632981858737403798923023539994357214366402876998118339987704646692167140681834830047129489083097750156533098394657551090538722017570497474188113704699936289482957277753359947724789553481399077563786606065509854934118029042199466436924388092051201244349350749954507023907245752340423886447531845764682260604136038982882855106064678187579430297083087616447565107547023935044394476488744528465099219785371631642854582128953121823786842735433840702423831798923551932858112066157652982819133067506985650205011886533084725133658715032770053736983080581433154514598163201524524206358819147352427059999084197626723982325400152798617853616153679628098416083360555804443281009414880135891611170667664614440309090394168076378214235485560863690377658106027316362821802945526494139824434083537445569363311572367045398602314840463193507970638456550307110485675301485923984612742725998172331022026042400760699454651081755451618093016052825224200941922681627577036564985663797184761920131886912986829764849277275187713387302568143794412607625249355014581052351271407403992621232488650157461808468441953552917300186918471257333134379012205216030515978849252494525906735549291473148290449788407794049091411421985932846932775642968616460256686876698863361211096076285205888224860998486489456016076700636119772953166529574238916037921843335537703255905682649459718432481752288389736603271549569109651895341226349156970261541657808286246322188705700071042774560775007050387079974054981072017164176389861831812017876129908926968278288385737205633256318925769695495571361820819202934886544319273186691065050493300646666761371832520890322159424862204146130947540154557124387169413227241572759117225542868241561763909171730546636158929579677355563931109797701248750144986370649148647192684789614826916654288028294449034473088797047345742012876968986216064482856231867730905343844741156378514771585044022020779109428805852550364810035868451731006230722524315231533364499755449563701382769850634981043126455822857049431049137455943766210480602854555483288300552497826881934592500379854529181953176918809440421476703318604332246752290542039745389848038439842088297407123992641474266547687969610079386393757135304878904460226059446688717196968380482352654328951808356255043722056660031841163771795045623146564854039245093866654802361040012680301096291629568242212066601374435709402531745985060017732175377989619002470968384445512650664057304327152882168312119200786042600676242987595359112052046490705898269080703433968417078407952472560049835172355051544044375211887471485750596804068260194622603949823605537013330459076528591401087542484059132535062078541038108725938378066779418784205205311293169750624801058749072704525822269869187614960416201690143909749512375774201260135384667545290426800020365062330029126766891200677122914307619491533008277551256868319941317536913043802215993429280237528279641577417795232947365270316501419400521920810425752546240752031569404701882786079997239245388695629949734668589358710321462030676697366194837347398131676022990407840343357787243130964867010183371652506754400918038947596671951753674476918345423901575129042184653192496994060494927538904639685628450083497685945408939648296403390068753483733789826526961433419353869579383008097559231677771888295656395460812219021999450622008410066754987010204864145289492322613769633458964949532767598470203666628562957875875602697597501681071281099122726687422331127399745023023066381191634742072595224243688240804323261228082365269573312228135544871835870284976463477039295556006194492296675858973157825086948931153299388339695573778518577816101659694354548421975496806374765388991545600086149074848282701031798599079110000068387462762821319819202249543202895804530627261323107579419501036343479886016947953378155207755651321032123762755634514435849148562514094263369834567306360444650506975494619729089325439905878396287301317881885596798166491731846272317795218532318903353979697644629026688635671703219041431169532153874215559524197749722575225128047633051089474910330388841495249050522487645988268994607389772743832552625124411853663919137496690488386920873892930466375732432130700747492199105655895585802348283111538790243208143438273953788625023547914126659998744455411279540416657460041625887091905045746519706793478540610715177346067186081228495501187466829672060559573490214233349353900284586635046159334172967350730658868480554173237878504242316889109781879671109598621365052393571166310393808775690643115473911054458569070508705263460632109817551639976661952457584140033816557935100211984865477944826294770577942051832097016848466375909951340575928820077537980279908691298556838669895407595233603375578114647942888127370316543828455319557721747002183684156245199609269508820226229411116987792231963135791505345959965857552130342942156920909066713947272726445506916110747958471393385786214907728455675056419949485611652569813291641134279158520479934468454886102364188828167402727918743848708804424283299814261498929715850197279018337726496429958210584390343642665923089210967637400295906150406369348338987211149910989411648298957074582237964851039267529303961056067722682847554295113958152836721954701969397592034196236403801724844353974003374575231597229479311644145526258954212034851474308897690824779080122552739994815772418249065387538144923184628838737914502899901501380613108544700985961050909922800615730713742152657297870314781101717608855049944310360682972901232037070369226879326244286304047589137658340935225486216939941658324014569546596822946724481127442487773957045370571260220651316305281171340261696814449119523449528222206979904929450593708154914563541310882969136149675067579313114802799458388080269474666256158917221664235822105461955498007685576723825101222042440909976827312863057003252750214941085970683473265158456061303490405907546206452862999607201257928550174820288003742318321265845871924715771397668205014589783753963920723594038597571467017792457008294167160285488867827538294927067852692283375120329316415964680591866672125546286431503466949544703411642140915788639409135968329445311900408050839136619900929317415409690739408355245404886988000737960718815144559483599183933685034371890302855313152144802619420064992277952973907870678862178599070303411356214752879241612332647998536193983626108795499602451109906363989088751156648250974914939332795561541814350649418980696600917511857337123148003579615629872581130256112340613386472487972686997758002476380323079578372273892935126702516471626111996565577265725336638588461677229424261179088197907992511545656020230832555826744696968465192252858623760918021843042437009346192270509862698702975470112377872401441725937511964964451428439256417052909694750289223598270703252104379525740340166934047336353430749215484709861628006697474883993554880433482834477861560899544763192945713053889055974807115077221781031162969033892889592485325229819535427543918823460120478360520753725942682879963925160733176821304519339277250395297429043664449178016766603704106810550523768919508372100922366370717107143905307172891524476251879951924160636116305761857411768205539907555676312693640716504594487019105997488629789539971207598923465722187004228277915497199384384128160259448704975577851359995129290775088466248215969409148204255237003431638029837477263849091516904727382008296490607131135842379242755284039590251478386720119780181983401948561333100550690050490227551412953943862214250223276110000943763867738804163365489512965030669622456303540239536860454035564747002571600260230043122256026002395307335653060094782480193192039817204216298349197538873089615075497924637411242905230630782151558247835837131375718999238154037384846424408165210111843465651513366169131420740284875127049484602975600533788509984940262865413663899166385721038992047890160818581387333386394733004582373518479587419394070328584471030576396175325925317370962472994463029627566115103005164178978228647875880505917725591892358510016224802993306066502639368300875658613481460195212406304765817773386657763084129927074262093748941163202798500992916239065929861568069199696361682374719441554779597894241257082801773728449564953800258446077047366944877770212274239602683570660800655071358337367095781754125544350664629421065547959448282463904438765202024379085264130900003981697360833933527670755827857893598079111175343471214797682856657532866883866437174626513447357647985963117198620232594939458032040748461053025480140483421704468420191042209814395599706320806979491331852485339521536041755272474515289219904939016532697985242707986818516127385567063975105215002495684526630204169241703575319164484019196371879996514467647177377754204438381151790751126899614946222260705330621672457178664123089408965208662569672382435170007859352421425393131717594671667249817868471822171821101798620988514099935029764905911149742295206609545417265624703061122464652381275841593864360725096144240019049146365276235136042462568587295595006643707629695054289723515740875505680841793279295802952655918202406337659886005341042138491579916284901796359733967045187428081117646513570252079792527309987640845422857003298865460091302210116119744730128934333976248954345831497732714720621770158894135210433158246341284474744114011858761584971298325194592432877957628935896660365434974508365909598206252136141254647718565873120957689396590630573591188636393468085959127011548232388940078489412764870876832865815726402585171204565395271291064178158540078518457240396796834563547192509886647613209941239552062975908167872462596927021425692585531701769928668929123100208721517705765221040839692290967369380377218034761327504200288947862298322418513494725814378567244080567334719926126147602537040527192981088389654536546193300600881752951361425801208330600941006518945023415239769394692824651926352731824242834342735857331255976642751324993907477796306344234849478088479737953916253088120847357708306289596783995650415782640047069323038809408215264338100546948807670676660706192782811037729957437218816995505968806067844871823487815324399255812811511486893338491960083543780556091030834568362734640890102335056177311691647081825365602535001399340095138593391556601285006012908089047931267649659101184663958744140762250334204234669136613148381554458500982958225356071673842323184523091141136427323281932256350309348845296392693656093614259802070665395253290642843426062520539029903462615891734484648752391706712907918125792027790227328848462245045868155974562327653795620415406921874024210283396751691124397055748033597656196771527389223877411418680895114136195144619280778118169342142462013358874110436160903362301014274787324184679347746090265036733905047134254987684135888821113157062917169091338820819964384027317738529744905153862699680306397333391113520226430430334845970660072065117858073061577067080529628687766265279386621472748224425785395948970066272855567787920830068818601904915485337991770942332828002938731926650552642733065583455805288837246102864432264467576601977759338471662848190377157869601271091449507643409672714225694674319653048732284554561130020788753188817923900269021906982720207726217318919098189841925216057590409751004984022051356000428648639722978067824845424337429742580153967594381178078679541691316946138498902992313116077504000263286198438609826430046084183266396379110431863490827793058481107026702437495635685801174175280663364132326705175404093404226056121559270170714113308974498576414088738147042086124797724539786491392780944086845311897203329646296382258338792947274542524269476032306347179376918509017911155974576107354456980876691887008849310373740888547208502031621913954920163958108133237726741596567342646249701851184152833088080826331624923672268049122975604688919477779252093659553462040121796543745914660158876404959148103477782819972809857454862591202919801172121339389902602742934243946731968598695280470010363745995652371094306258606531890677935233438656273363507274911180829433792160939636139054871435179877800511724177505688399596798634502225290647691938021718803622027021290747504054454206317107724189485982367272191774090242357729334791442995614781020146815294084670818254919711926762382243897259688861541284365629172665431052977093531214527204823403241792097526157019945647299969197052829198471857995244226737463509801820951304631944362534530923189075564708480332936598229438391646663739245177808948450537298862470878719226888239380982401979697806911617879335041788425705155174627124560185483269341951537586986057917068839648341422433967020046661087015459074427804326117600328700885108755227821467628179651534920092735936952388975786414042694743714267371479165539129003577921986568770517703171112777840572307924683734978673687546332426031717054170324983341839525490949772539699930344066193157519655384684346318235761251263449171067528084899235223633917347346214279554998018896095963782741098835391896935355020265942497386891752225141881640705265106710445227206558675868283505279888302604334865333085637677398856115539766574681413173250183720224142241484253286312162959694009887935132114040624343019587733034212455332319974130638531215907487711550675287784998312765919006129762224381513385309888755970824727483946967838071446972252916245986095549549503631945142456156175751083060756662149675045380293087545219819363074366805310842311994089469465254945905174468339681175043761418795903524591680819484534015975535138478080047228776713502500867236575613491909438950464238227583479608470306981958858696600698362514889315409845108649287167735593026404751539414075390671980721047325446279724618402061912981151507617201826637997869484945244610306756258884855137554690514907841418923959979016138767083029929532836766286809789671528383665246748489517264756402875027749269072862171926419709840825321213751953306643390582760868488443570679876202506018452695193190148514153754190237045144841197466457485001889095664750114048449666580682036410331814969897807284585911455144108436691584197431588613528281953376529281208400777693276997763374254873569025063140915020215094624504519387367056540590541437814448786753253193267937290572699012587906437549262583252947955644801852653405164434123791778081439489322591725042432128936270475409583381943256225520443307083215549101886999621673270099571948301381867976004718464538109403574147685853880899544219109630292879336340097074516524437880234145744037045732816821101961410297723202471980373798231356399171847780734284980665085428223801637362521268058776587035652193086927870092612556907819236305823611661882184365131261861059550244641009345847508314101332100290001851496499981364094101944416028507713157177146610147480484401800801952663585825676594544824020701381895521845267871200052285735776848001355756546387056212846656948011794733761934781102005548626132371579552539021633295701719358544723929631287565658909150538804324864781991149273302839892117738032622920796712706150069645731127929408272414808503299851865413166031509076727155022862015466393931938082436549673251985802991929096645675554302357647059164380794341491475299511954614255705499617804041637534521595046739199907995735881247003052518203094690416252781863446126897878604536139064963560152023780459040174675884779231088716874194986776140403152451502217645367569542190877470029982730099241207505514736264669074389411690736604718406937754504861068785872761541674841759242684196545689345904130283966543764993998839457918228389106647055463321061284544160472330487584189971354321610829414600838850336644613417351828823257217550903744104223901246346195688882413458457056849775440128304198635869486973579068877611505474062751137071178102590805447311524636732244896935044859208810312247249468668002205986753285676236966082812026385243185080493736458034510562874365393962910222630694139883258631814630198723956850206292061550145209620569290369965710036574152904765518104877974553514780212412644420687097096109707350126459937215869733287438958085908350526951846306525118158476179717865154448880390377237057316189005344701790337425770789646503466256018289706732610632830683730663141858554845308744277830972185822329307205582879436844633500078746506222555647590659518305301552512795845269919378162336268301286113554942721188559927240118527548261158348305617951883883173471907485851178761353610447158681099479381475665258586352902313393713422378446822743266898964315675698506472427519265059073334173393607064729313830905236754761777718911630940437833322330384405360078380977343184185855067658681582460142647667441533181651817371489562175961711635206792623524515607575546587660877170337532062080929793308447444728904085787549382703330521971098915176421997595174868487784446223660648740412067057208266640412187216944064018558200533497760110850982234520781301302080226513755281624778137370587262916630601781171814871724071444193754451729603457682529488919927850563461961900913903131739248122132293720823971778689852546586271757446600999154672917078226716992429382451952400406098434720003615154355949971580831557866293332997281442016984222705570492542334853726402239455821838752737678479991429913889229704252383711380826809712126805603354939500339535845047613974476353071840612863402004525123292143097213937665332619720566594025094164060110572969295197031037340261725969871178852932225866930077577624992992976664942966889102525708933561818817652770737346651259683406867368145900336492857939943227067632515544847795105798015354010556399388425341184373288468876781254592677472906098729029972603841312797965418541708393232725115131024531445823938985918633831388202538330965800443051620362584638120472406335301798504988371199027572585558016990685361567487025557334387708927379027173709374145267285752351213610740643455055046512354041924359794786431292770783897331367585860133698254767135831523740327967675895180074696862283556811266605186179747998165345788164979251088045503164265883945168397489085504695513230562441300003085418983883238292442345587635950122733179680659182868748044198096153237312753518530667216770422346082351945782190358588994815857451675936628367328902700699114429823784150000120531840322792262139213260951114660381715391779819623886448995126699612156477799011033085496887560315008887488531603279663924595015242829190804708527679415567666091786936439838403644190355960348892260309708677997220055163907263587182119152986034301090092483469385787594691491034695118372724815993453566203154753551919600912542176124288399401880429756046985863685001607826329609046553285674762387943159987684608284085706399157722467832841935369568682190593063262241162354234521583647271926330364959149733620607544911913847769476115811846204174682499848719537211405380159671968879374555886436041686373238894970258336011246092800013244486499994254621054050194361439438698346132933723134426617849227498287874439241498123538928326230861906648729330114419795908520756468173965314593594270860834022033385421778639208081698312847704940561120055965576420327571781390428746783797825957731303734591505861491186007157746476316997105452899956215913418802087690270712792848658339343736740998673871605200048690461136333971320485846142778429614280144443967221670485578768793796598764887348417319692437322724623788750899151254887158556265035526565518372328081043457325944678819675297534898910371780168090840285384875374813113839888550295005625937636941369873904038038372891644993462471218525622788002021253201181464008731682888027384268650665173234739270721593200196077925156238566135889497665333497416229899413089228361607596271221209952368467501697133566176512675956709335632293303680231482045161057465826940849183935814890830201375831371926958395053270415700375701257824116413301033760849578789801671226701079674151086535316808298663880533733923080550301421762353272289519504689430250503680940314260599727959395788593777546544722787975593810457335979849167529692369202447790931160470558372889827222716830769311967527633995216309852393199381710570674799949557509018753501575661924225759659113258060315799067491312287950240661444786930120862406820597867746417024374283986607625963724923523709636244864756650269517262619907186362354280449195875769023497697521944146120473001793584356284342901090793312912952397056368471922818514520548541838142089421756497743251263253375260784700147002327182914589767912177745289517261740973357403511111466515988148547636479317577730574522123392362262814059070900986071936062289139816871668383203941893411424554735018986911525485778627993757424415363153303237767547835463906501218579533017160737435477031654154941894518787873692954770264244873309271765326976304548818857175132953312298070887634405145601965975571373174808738233245402219135129498695807240063077365654814828673166041835219285428031982196328536977122417586311969335222745196321225722188896422212022937794810977219678330655036898397820275611060268450875457612020759258826030101645343986384619926040336625506784399076704420720620712512516265110638751997928520196681932243207731514616138956789892860208028612879960237646693901179076662570036208438478834748490837880452963380488048223165384606113630344909271867006818856689988277906315696704853160294938266311206129383370048403247004687661645162583792233368453534855013053843990267111117590781178325339976892582831096897949832961455659949279619268477546792650328846526136850064280502541757580376869871022866212147379396172777345829996118102117061072074226273440294150684434153513122362910350064885652179201725801046886328432869315485237360383376002364380585373426700121887625797256608172136748038309414627331630806387585699583859518995716904967060667288454863720120574255588370287948884079402694256031176200979291134728996741051501919410786220347391605329023331806026653007901288802882618479880674324947694894275707835455964971566679710841061838694393656800232009526438789748478931173468619720578666252821387595801359496128334369747144371038510684902126243531594710829634114629548615619675338731637931994022223561902135519178493366095909937710089323575570222054040134033295066541861696778884141160714291554236776393729975676989374397482017249211318012922813236268393091816946052352285191294317698081584111040129323953066959986765037287638578566735596743694313661341436059012767532583601504015635719904043900573867400508413387881214426621067811109340886596209225310717002133503330833015189571469718051877819739798577025320594308360432156503950836915485587497249404721106430000569037204620647130499808360911489362349153602173818525246988292114899501391322319800438976389341746555993778660167350076353916668858600432933468561901207089852752492687928969340550671704590635796133378277733161675513786291685731721980588009775261407789636825626646497646157746481859859252970204155912409974988682925179539307320316830981995801710733786680424662274031093351826147714174168911874585026024996665550910941902040285662265428711165723721147944394127692921495429290294862561856571087725208629740512575183816521092702152088024325282352437052151988016192035867954147524336630637967050729868390212789743514199826029536069360746587135507296305272265439105581947199559170290353221173941931886110145937460357908044569910246724094601154065229530459442805802319311330573438380590458682193667491942787802241687993265665739497276491039932446945316366761134590884808667577558709993031335014168370338480266600424319765268231117500121499726442408007426720098213192485484138762064290472236334600053922963027379576368515032718177032674037437403308951535849945517810037294167131978257228579531638389448646207866445527814360505182851711807093997675973504445999140413703512477606238031644025662325833606491362680727173010091495319899046706484005030345851813457696859844508251230799409490961993439452617572298205241961809057596129537042455579971792480798788062732038355105464207849009403598543864231649587596686855698597264022344765132982612903168325233776736639021292053451324886060498943099906735119962656628865982464907022134852968889286377832873514776794546315858478136562992579814808734930730501356319376230413023965870004158511178324914102664721743697417116016450840783324374519533945896291559041221346995158752704510878865868074225364082527606291189223781391802198877106289257722045714215887778523436365252640225585003389065434502892858117490323273316168865589600729390068836310474000652024706457598538456463019646865244348805030900572169729897101786633170154221191632032991981774024049298729684839713272197407041288946394987795907055535590737953549755889599563846557903914211939970246777770904174456001530983033612287499157942880104547888750723439314218195867975688969066331974052507095180018249540427302170247122279173454357863929182170591181859184112714803166853002282031244928234372172630940714078724263627861464554964002093663545110904797412032227754360258394148739970391639411233269019853972588609498382860761334311997169823571864608051892786354730007814835293750625733297749631929967751014418103890958542271366368854777974176721126880348287391001009393509818646495062601953263639208795560499506659126773113701691388791015599909384037193166780277877645453627648387260975151236419843294179903841045644952730141850452380807046725627494446781570361212593978316502867446702246435998482463716239906376411786943244957938195238456482281275940956736336818744579873218267531250396216019451516122926512629689577422385747128827930359919553653496520362598069431494324403244662117804555011504051436854248491085238507730938794881028987931494859465492877005465047209592274777714159840427603428436661025203168789419312632426787137155975538820343493420572408380477877308073360775419129222156699810217077094013685803038135472611430359887258563447460188512535332195230811941072932253685328687454788159823304232859433205151254587708045042905741379874805171974692494307479297546088599038440783093416473791792872499313192955167475669735182994526999309081603927018130174584378723328129247782995426633750416415373449263218506864017172306140828711160920510407396491248882690405089300295986163611918852192380271513089430189527405029394894337949866057509255739645276516739898692279393785347014587286914398659141667583269340076507837214624200978384985501165827360931314724673795165505113870297632152229614261008397570214955608846153773102178488754709767048934992709143762947551528285759477149091114239058057820136617465117770001172913796797266264165957280002849776692191326869809903163846052957935900136569550371917814139562974623868931720462115164656006625390392460315589152432887321272257899464610292845327374411819256951132136034228978642891635321986558585011755454424331239042969370263439966911031779134687334726948510358700551099917540579745887419284074768753477229107699306697707495393976828368892236802620370951701678899038587006798646940010880269818743575762236666066873746074379648528640880960450129975325150899753880306895094327427412351221143995505063666246409314053817026325650940956567948848971163063672646192957896079634497158242495704460616945963767336775046662816623678788902934379281413474395708831282225786740124090544080954430432359812822584012690642887815592435010418964554543709334244713796182443145319504112938672994565316308126248637496947875980076308780002205429017874434589024172018202992033465620328998574271310395836479590640549572483836709915382307826881056381863528085586397730443760666384068119304159891846391233065684395031766097434601839379740517573284715167174256944450320057278927169122845252820023230674606636138176443540874891236963891807028670686787076219165151174884061653799713713122069363333724257435186854631461671815196552614011723892801829567593297792485274605641688154884799297787346725527867467644076271808492090592363351986279158745804388366486407089864160871645261554390039550633514668059006270137086762902530044187352585036988785846551132840508085433870487156720884880413038741238901531533289413571541776073148843359368155663279738881149341399778408712830332274232463895634005461137936172332615523574071562908573646906145350351822298144138370354779919362013954450291794710104258312120490291775611383628209298446585949939385607333316588133093216559694968923325691075124848886884817527907633212573815200252498990394412852337583730460658226633137393737060074630213167216552116544289438575615256456829076459453033103988384328795017014928275005912643984107887887890498270067482640894222112898890411466670680344117154236491590726903042823847077110016226310329721074203390930386022959478633838397614289707749068686725020483487218943204283002514870068186673319306813725014351904231649660425034320479114490099750383499944744697569029710157275070421111318805099736756649550539793511595389545716398999991593357169874518505189272836495776248301715034498944305015714143097174702793490316378932914709002663272092924781268000709811158262515622686571005070308896162115098047883541820392875415363043850519219026508224552342454652502907205214648938363434412967077546562798141604322608583738556702673379016329618862100108047344716747146843630230069886644954367323933415562283934581080945958160154419299927762005071969927824448121705208387754045676675180269552101035020581519964896882643571618664326366544223741050778101475614961895147241567377080436623073243206206582334185966208628743571011684857700857789188905253426814204476801801054185574426995327849261482036482586416564284047522719893864897727583729811906131489040380381805571510611678330495983473418073669985479063677492252111610329590287403260170650662776144727316942629123130379801364599119287393137458282819952645274721281726809662092304814618046363520076728160007036584061613362232429358103900111912564954064239875318557955656467422346180410503671807050836940533412429879991882466175094065866392640651083237373123558318783614864430834229301766497422079751119223568050723966866554781010632635208420217059131190656413639023473964995424229731119471500162547026825902332377918227599033984227116517616592908898883702492546084687106327092933472397232307983853101481992277221571736291193547499854304804251660102218434929404545461344939277697382929104256390638508164141680437217401789220299597411647816660715886452890627216313608029678542568020534022806378023003344439187665521669448385407851039319797629217157375542695073444819622013991577046928739080599149384594684595994948246906023052815201670047730107744559777414263557103326574601051110131762420510639089768035855880719056358908939036647342807444732827359101935202222677445756319816297887004919349272014830889612477086720590354219561799819433591411560729951204095507731803471250101432588960531127094254571208568071832991979611304077237026282093370474383433858508609418855897633161706316248791527090982354407369327117900570205188495138254919570651403290926826190171880038496856059131006205099938478954982960412705824794808577797128308158057144664552089965764564410570743821570556795732313863374205536929418325818766507731940563593767299354630692220457806997245377002603634961110490900130411061960630591191870296933510188706209959805154062600033595300877084361052839586376487583555049778539959747408183735082396683705884742382447705548957320121615525932279471322502074691689133926916281713052795279939893312711317021172723840164588980026905023794778739745310837911305852814686353230371617837491023353500124874087730426861306596020684156579912437465895958565903308905822124384978011781963025489483224297811625253660779947242945292010331742522780453962493796593147107056405038947366093955389842691181508856827694132401521124000117483822020882530896156116870710154010641277913230871511250817858267999618698671600300519908361921322285423026030930473072013656408000553328966258464491620879280014039130433000965450411958584241649775611400106513248242185719203581436637628505259550910448091618892774216544163495695412907060992850319824054304935680853564830071531966710244444180331677472992998756586604052877183830323794743174243205675880647455323620906797526613226486209220993137338628291527632985044181487100516239889797781609758284930725230029063834267839591741625860782780002313438166495861026571352612286604834218167026916247319998772296106177435917331290864872937507854469532375761094951258665362847392541650252239753244564153998435805492390620108154426209089145802103487683380142731522384799915776877269761982052857791440754890191936246332752436344415657340521234690695438291849811203073897983573161049638343904509811328332933895910939522564904039658585668148255253959388515456026997300882888404901736106807468248981305636929822382021278814620487085658682747571242439333243750026638573693930334125403247425138635717928181621527438822641963592637970961216111408556730095531823523556355223558012991308361034063001376729325375391005918919357383809842830351802410398146483013318854984978530493000060976831209890507202957168891979936070514112434475717398701812969122921711837784313831687848031359671359850370660466396740039977848477646392309425482924039161391513808820109033243356032527912719616154556053647810630473577600991747390305588328349483433389997924234751086580814408715406436204040162641778244284724727467873428633248189540536229849118950786751532936606250373544102406616277934974233899410504024906723724418506710381183275762515844086608441352732862957597764370805570356105325365599372215330179395236027600552324239817448783239689336237455598982583261529447340426319243991945497696621799099812990607941329416029771579532970279063455312099432542631023092169009197689227861249641203043320943166431241557896082484081626342819025458643009816010569010377758577522790363225308284691686226076445882488421124770821554769749832080572128489496376202905450562285828891734710351276277837122048448226291760375075893396886043970153367886321478121444964960042316377814028349586564009462917686254891001064161178397447828988361057763418404601704807046623766779990506253952791079418814581522258109176414431526704049844408697056065267000670743177730359988447821749454250871852384843349481286239531945223448111861586985720793278153200918528441371471652578978947279593695946250850596212550320139409969908278118909193817449253343873311588541811970666183056551576203386745264621553849802785098837930787831685192955281197994973696000313056466009700968327653491905781095683575120480333631137956626864671034844766329794262727668300604050730859385953581167109510567643900623572265996572982928817203056018204830878515053789329160901928148649855091810485359152503823640797654415935724106648902266175410611901513234183875413039387790622083028607611322615313752513224696101109534147714132241952477179113139617904263251652710341800544551332982058060247029804253171163697127744641529771890229001213022415831424347802610202920250528280377337492962380737151837463102774957184014766586461452782088960038984207252023520595667861633155766650478790118356026733118612659199187811099665551486011779679835522755178354226369951607200370520750127587572922832882509515964840203112743334535650506145175952785762212167275511340110876388365923165616719873886864050355148762383679715254043595071845433670571575903120943026630052365536205820173534669272562963687074596377547811096347132422957025234492150156748097034345971739449673752857103507397845340892432792541795219960235081010439221176181856897366500982796004731814240984462732687392916720971764173637602942186790012670087873179950768878605016414525946840460491703191511273540393195974936577501147591864053153347686790780297283810957637988318320481637020841739723998899603164206010286464448908687277070453244125437277647380955526353525922327700907375454345237220430611359590661410736999784823610471062111492704664618104231669847785678356518795049155511122187291628141476760547439109564786408853333532828670708886998010579626197223936059790842269058047195265578899134958299976413679195908450721367176390490661302263708324282579413107776187716210087618881282117031231767276398686542515200775535570066902542626521927747997628979940862328218196315586375420710147493849222375814403067419040911615748418660152910960156402179966987569307203977285153600079706628939643264272334325592623403055376195330076261000110766134993299765818248196190193860541955083723717065637845555332528886491758517384357027757533968391379067591435688687154671452225069545190679814093625244102200328216311102331091976817914191029882548553239642075170116476321326534049319191491906080853722802799578488361945121140578998974278556919507130707815205119844812883231562011698236381298993243821518383164643246384992259102038935052908329302814263831323287132260532508433561543769275318071538043766163190055240723008945893069063018380203008927740715773174440596512286623139542051515316044982716902299292943195774009339287419665932979524035173575459533456425137413027613435025817149500285866462944720537391220805842089036978314009835881015914914546342881119306951049218027773832449286897102765992603097879657292400252840774259200314724457391153173498518228456134963811441954706317062587300037530616241198085128754491402253370489689864778403330873648459207948268624322339240176366564128133913031256590569315594018950657009091704878785264830019539049334460544392565074712207355181390225027886947320661759381241229328728046876951679920092756256473218388029712597213422285275926744660114263921903099273052214247820832019280551991610056291996962386051481207286287449794461788155929558694610836555128350390437701695405679789069484263048096615428825076878997065397241910803675163896640803563785180343896261522425191621389190464364357257152132118248318315736275277392616865375142023640146927493448202333011753017462443063962041171096249940757972724449172333074552682866142075238958596534708384418546987029001138847840096089752748782272720948661811451401240051687084185327064796419019206418622139654159276991646754247190101300076270365097495957350833533713042640972280153857491293766760636377972114275527380303514801493664879487087354350008031812964157906420557315903523051880685718472604434768590261404121808448748398213662990010438401076142015634838942664877260943914321452018706347008295024782826341541095020941135489238951996030119753767138576189446777346454588917858219553068971439669460377431803938914505368502409176856168787586792021182120248697418577898024783148949900541720956163288146403821624791108040730807175894776715114649259246800946158455242460438111360628277031421863645164897362946434958998084232684489171686541585681773477732004737947149908313233859279917057468581672343236037319691280871409245273999341763904539398985881156307849184804552811142067406020001509339970263413430111766860729909653271710795663338809528232439404880096387241198392334316972487089360424696567580925418922411086678145809327461599873289627766110191074480813373874955827976004479866235934186443038801168452814069040209468110161122096389653526285299294476239552720816839348240001676125465502450666379564786198651546773532545975972728249998414356910347153708946380292673185862734377140915390862787345533851627614974076850339934751858648427690865949237900482687417464734106860193056756070068999008229479423363581393477812301226428973278681218620793927270473073513641697731285926703676896454019224700979761234811719077530939746493076979195240745002624290233020490503318926273824096848224476856748023214032914077308523998115216833418666708233490722896996892762728347925088993713170883193998483439577117642377496919527230852218706602086445083748713177333865658627802865413550462892231007244369620238410456423241556304066387100494379239989510433555890496328620807812386351901710873552192509407735448469241650863422451062290721780143172209279713481818022647175257776023529602523861710178429357351327665817255037655799778502701897120977641998560188446798528410332343159750865241216110714416115875031497257457740714225726621382163176268217306696373457170721917916227705155440201945637449184410397943179562269235738924019671477522732143528633682635807392391084402128837709121505823752835351082987904445631204857987126025199742860877974096743046338439052344641014330663041208831877015497604269565426189871717454665918531354482451773459232591826719140056285932189268759369736478774499950759150294659295003623169670069065961467201659202945317369138664020173773108204514037270916019745431801714997703475183888518338069211558796722284602649447195188066540279016195735414075040074090707244384035141761959937844424723432181113675716056520497907126735572227170180353623265746804389066721878542819188996375008073893210346527548291151900844116119819057989316123865406704554390874422912151446042761419660499337425486151221264712959384823513777092093235231108771518285620907564632783404671168536908499161636231540443174048086243828053873451287182011000975378442789534664787380930970475073235492283549423968437050633213968236086683299278712999836984292620088510413993018518870906364718702846706531964527591590645913704586044024975175505995620844414819629383499622069950155414622131780079744066048058124922094868853649353669517264667319632383862942334820980408290622631593759391657807247537564432713178959425309929159406277548195868515456593148002289235708217650409868613632838597584529971446062286721340216401177144165352494792975735494925241585532608973539054333986942814242650218441094287470711878042551470468061636074589136212637155450406882902388121104208041303494742783890782040883742591162750697565906983049795174118461554472013907311922709070720140508406443747994342528392535355240059974716495249669156232044788148735991686175006781932945746510553382947405292770203310098551382777021808253609401348712209656677727189796840601032347882569821571465674632569909896456280140310003445240731537475732042914256710736928536519331149981961084649446792035496928192639610040182980600985889910190196919896870196011887584039386760575875737470101628130732858260702626132789542054964789923975740801532858104664378127189916582863181612010906234141927375345993179661964406241004617999099161297953295259078821233631532079322021774782904459785471983586103124969113377347669542133030489237286508737442922833167264776017165613508957036048504959639851429152634192575782143902621358301182312778107292955790725848820901070207866018782331761680632611945922333872575438824544245161707608312957667776355942543365752792305713292387243256394764600240054615572769690240493576449948140935224468685266822566155570861707796182344636856763035730424248750982278319181372286537260632132536617327963422329159131582387244929407692845435331563788498554759754021492629885031793768531356679806875590791243815712342303200533866114215443917835581753155058399381765645629478018506076574516839044538453165839989940370162908454204943050947091777693281049454030186773496841083393260194611032001049648717431748819730918181502840320155698337364906094554541183662868427721940878360251332145019960487180635254931770468271676214247613017795296975302283427072618083831453511725642444108836441232236378759397425969602721370571825229185015931638792004533740566182225817298701520221429653578585894844293104577919004844083916223320430997230179117506467035692795585685106454445576953990902393091030839262458166877721000571449185458512970789006491210754277869084964229691681645349169502493310145067540476755057931635943172199654577434854092885942931446091372077495562999737860648897813915157300338611214584646445460870132429306263881830362210815337073392329170704973564626315275873061882226208667595215943854928652790844606110516435846903194294402028498438734663988045120132021454140993019419911527590082806817336801881519871500333993774938510094457466319317260740602209457414561334738006970544541365762596040973458430933208017906026604782297943043768576597951406678611757154844560327859485924232432677452969192812308925357785236023013010930145050650649666812564832428887456463322377374276780519915561569929327916322801114282252780809346778038663594671099452321205382304640435521619057522795529702577120667999099461058348604787431996892456065812650633527393410478572093506227781038175806564022210761611477823997228685746103579794620609733180153219338512529091892611883863663946546082682260275860005781391481425564893725924064904353317738360388936665545674985976726574481660642330249701156767840625888072392297932826973774985598157649673504638224906507237631708699113843186363653039991027762114115675439114700740967305229603395522634310712213897579645506132422280083050633032914484785649206451641399372900058781796255404377355393783788981409841916341092385248672868350211176194363838864603264514119709153705354799418444478954418569153596013321920574332098934902202859649208413285110839070200602881514427718706216044786325519099505512692502298009477334997029509488014211178457900587615066137833125913691799287261759957772987611081864329298328820850956417581671968025805253480916047628674429388675304063591460764873959451543631179796918603670468725267956753469235238445618238021122118148557198243891966620277648537191672047270310997751614076838308823757125030718333128475592553773356169631935102757151141410101923428181306842574777104408228150005297536998475725386092573477160957955948558695927021397287277234027142975674995203117866870984568684650656827104565841416039584050635792711818534890223314803099697111053944457633130925741122938719849905358346707865997656553214960025071900634207289835866888592006160401934330023995446151070905143555720971275413047560818720473190670106729519045836438348162432406747015227598028801077465815522514151087858967611306449641943344413161614391206274244591781694806482442208413104066287143362655491096823890357911646356937357924478580466494834713814745701237013086509866075236287178885449137181954916584899419325886222650380133506564635119854892244762603090075430708273913622028655550437918527554845660733621892537323770456879700256729871285918072151428796788809317901230915020412089316523824610408750350859546063423180882772303860550139950256987626386315442091016315799568239740612835120226639204346380130023042226110143691144083627354205149887179017890681637951928881019803305721241072389382572369469287832267268982700157694905280177990104265671390225457601496471575314112912803499978559921970370700968535387779140385634984564791957450731679616010183653032289491126195020097337551579312104979812390236877884876832666067497975417740041451366728464811165373750522830224402059896105944473046780490793280279187938820133366025929535051746231971005809727123873473039812291695317865612817560950218234841256145317210616884791749710978090057439105724702301787493260808973706618191945156859505006614947801750808215240704829743324806293792304249913727830390456795517234214764292470052609867358317547752712053201835316115187095418143167137299755211112615464171741903021979434945450372749686905290315884599068104780537060012732660846546750725121189017210501896793247784785000467056585153545869800980506056048281207967199267886669475467954660725557550317877674477500276471183674136313030939310336706472885977999523065089379316230797719097730942987047562568502255318938151879658830178864765312359469859393019738053978440353768247299924467501914914337368142805684699268038061173050190634741882435871635701792473614691248658827585617654091721020591075048264743223086368757868671867236105519304296851440797849547017213272944349562114194725719937687801368476123285166333018765099326551005012227193977555055425845992909358321341166977649930239654300714555547775331391247530599719727228956338493324046443728003244375175268849097737915731674069693893974165742420282385547806885875146614179654836218386413141696904359742895426744609339014193748267235393084142179750693828129043938605253194595005494426589450536184057345387246423019311155937564648770280277804761153805078079503203047717017539924083100668291264211215276070474383595912870859598626326041076268196200139639818095681989813488121642131575362569127423116249641045985694948509198563591666362415909800382616476081088604002061916858639825668848984448342401780543340459700583440034367526898366917981210271749521204948174968297314815819619587207253989843904663257088253940338212535618751483382610920114419419564971129565707250344628208507758693249145287329433687259825384102012479261124230235706329460527517630683274933735804540563458516111148904433044849203327447434069445984246424745852625574001329797362298218050571939837958746483408175080764774860320505326049054371595293286715907698180089163232683145752827138871329695870823449108596408923939079697322669189805839400395930261331837883475040526919415763223875788106483808793555376712367297793490736011875729391879210775729326801908958229119893455478147451315366924856142110319521457530359532202616039851394310738344555158214684283293602614183121716026899184761821771220723157585272714747094907074374360814977724919248740010080770864528253145689329408700288346291534746395510070310966631676257191109120289062829492271540890169478237976507227837645080612322083862964749643687135789964355828732372708965953908867813677691780146320997607827040387856448810802589042635509521125886410173021617137769249771410316900650250054895639389265953332406596426905682052807489235707457588764891146994572531318796991252910837638936043771396498305669311278898348400808777611445740535887058722117527571501704170901355818635215905594292616552335436307428939356038428607916000205086099431350326215305392996239776870402576901748589500093138239294480082306751105509939436360234441745611263648582226578508574465512854786124690121851047317597954216274501036661076228829072435781335453377818777255267715205973964458027862490612375432527200977888713361161819913815266393063026815589646415263747663228837487438971978717631935330605123715868671768808859391572869489444993794364463758720673118096716806752550091332861495471018919994633798512736372645939395063650701308285892185021159860778270753367969974392890352406034951871260953793741995022322818713088785243287833505856595653053370599168378221038885205949312356438996145062822852355649466402317154499871836943740862827431603109094743323656130683290178985861068794599479932820533488873951232942691771489791755568087314220626526863973624158867584066620940482142001336595224266419575401990480591542764634848874945940432047894995576587797984834659355686685575556266799199493941544091973154582942887643275504819705664581622391968529612329151906477877897595724728161732795708614154103466676560228676440432560477502053816011161034954171365395762166103483037140745755580209258901704023082592490548860498086106684398472021022006279941255756207268529453437195590606086104015081283676670599415890169766128421864321392324765146200163846793062789203614472908722351274196705884652300899539230190308150801139743938684520507639617528553536090559510657584078907831027189444861212402913123930407620935160930471507458431382690231813370119107368912103941172163267028610357928148021880544095449197551341899937192895422613647175468296031052025953723363781518606101563804114700850899407976086355113847500610659280425680254096389022262242138609599627936261928402251195979376181191241139863841233721031270857025938677516813675596612710840852723385856050094908055545050244548470437140348936831306550220956057137220574527291581785861927600638752010604003724176087243746304599039222605446141741088692445130616150642309850846849144177021731352385425727499107132881691225214395787850173996479733994743477242943464684482476393304180166933713364078594148409605393914454897112499177930232082737034332920283336753558811372625660367260479335853381499898887534974776722357084262241248327841468699210310289605136581673084377390291539198199891468200353002549815234115852511489602103531159880089977044406362799673012984203426366380541376709063972153501697494449635502396119474666338687508266705333951893918293446822393389578418399300098064759737265418780481564389685397048127459493342323069965574829329286857333341102070183518941034820107947452067956510485756023838224757881204597236759492122824199217464719462103135449724916787819316134084987010416599387258745876582456831718976133006586961358736608417731453134378083906685902428733155915407886835664653753640455570181681464469209407416355665900193639843210806415281859621964753764962185356188765610177729989289622333817985761797402524458542431746009992617501276709483538905402360629379060280909178996816659253760147379902656147000832317802260713728440696104429811271020850081110610300655203995763817427442177495411229429824957105566618942782074176709266464288942536924280329521578295471463542516650337658612426172852037890492071459388273902451801197899021190065981583158387188484610218307363643373466495082277759612243241391572269588534775824011288773634819688047246626008953255292722923351088159730310159611074671059381694779507890526747646894661074682792956515686410771394849980292126444419817560427213842822959625158302780218611059416641918129247775252896832524419842846692284782687784124611756638215581040307307428613031704159355020092311701391403350603393907156846617709496288448222867569216331825130915323755700734171189914643251957726884871623235322123841383810483416268309452996638895442854748500837555427449300898219000641153942328941238443857322793171236570660767954567819935501618881474895258734207616046417037563402655268336270768260363832950478604744205222176217027829725517858385922430042850397413074912155100789826328834706703154423793128710093896823899425958802916025413080243766148842586554265808787891599659532146768114650646494716465832928664517117364022682182924581316677538717592583004533005984056712129691712828594944080391905504593228930074713664873344028946345781816813504403033393517405600993942316244893764434030711762549386815626824843384808154409643620024983042118214049289813419405183660852831225089068306757876964658396336547771177491116234833192493158590051038658835538660862057834949539686578140741613642325205314390804979488326168390137827207629672502348795985018871097884327143307002254488462871492317966216613649627095772105861341882991098568834891806256347802215306904163422514554977108240274799298103173667625450373094327030691737880876712364250784094101172345950693173778213499614039909410854607301744927965325263185530742958036134770682361344506774011022463818704512878885389165352425860565618631581983822624225947561638449120816964279654247477767734084906078711775125926017536080971540447068815008905998901799139087353186044802994645405348692402639107179382865520728083047044076309141508347317584399242450424216110001455689757657540470107072827195842048440105361160858751525456603324668883178619208862540849128788372200014044051512404572088697127304490718348872673137727542099691909851976242304659081955890664438109324020404378682449888246442619088800703926884750498332472068112613825926936429325168147623162851152364623887030700446335950169924896451447101444583405622367498166367091507811364806881154715131032507289848073085395953556016033429093829425284222469343288334547254949427375324229197850776726403170327318692780796484737276037066868161874696518912330568536426517322800266154433499219086034305897480998966683869716294133903379060404806714176928511899128463077097673048499575754170780169023374154707445872227932284575732478809858488795425525355725413915985280399973499062664466038694457046258762459744101832546029621178848999505052819016097680100283760814533232391898428774552835063010038858518817671979761509418823133308259643244173168547645840202081519974153708120405411854776099468177657201687491023485777088724072897297548363790081058420348412692764228840595093852890119629745393432727473980227244741668147826165645710766423517318190402900629912200170847722395955045241956516916559805982652869812528769559741703880572276447937779187265062231284567733072345228426387853765424240715176897851633825973140354292206049494643291437193198130161761178738687894273581384245859017183302824553262495814756483069416594875339135288938668870719467554563929631219013245714482040098274333882149665242092213489881981476850168776734050820142525363725200964921106601110404421543355611395637757690249721324043768266655251007350946112548534954170376450488612445748712265927967154755456727912197437023387924576147409612259708376633825371937488129792552485719993211869571894713763800392759598064829686947738289733250308094166897154702945959856559739969579522705423402090718366922825427600747585262531305607933849925142675067562276739333869373932321615626191735593284201458622709011119683859819947999994147843025814533329575434469805954150127948369710194578921485506996245843900046982616781259993378497842529540969996116658373765349460997485419855229964847853101875422925159425663356921676973021985926829584994921190887921056423636191029534568245543314961166011179840996518362637153188107345185056487958159187889784228323155715941647557340443381185900188925789888098997009661603400931440316077262252204456169152248407976086746114164600466564174892016024467600970583658113559968135138151270679289186232402995561309716509310149251130079523537388902029646747194670326734400339899692774131084624043278310909208629090839775021355400638121137843628761238154216266633466637687800579777245251416229006192053668144150301391919576547135782207771510634453134614024993595832565963047647762082945308083642447164731576195082987092237832111521633840780362936077379539902927778415841825834320650265085268063022992822888900702693800130981419082894299513177431203543622630651363749271804092834570863621738301636057725914753098766734402305515615615953161381670699157950829651004348065800544048857616926377875145680335559862699134404418454841109163038730238857814669997807907891619816828793351954088433942147922210286339317935379794479938223528532899640026017086550821232538743482002356217920799622206133070057410542211545411470049311624315122204990426344461571723295707560233433444705758175648139234757054825562902174807760115225877712268240960386871190653863120922468160553573568296255469942238163686089435253873023260851797075918592997002264769543581463692206169489124643893954364971486239180535875157414642466592003617975383927466339871945803360539570946566716119281655643912719228485872740495088494973846911259431542281987045488156907950841051535755315301595673707131935451460081020803746351964996373742102110629805554522849836720261322952192097786614265564658836323282377397538764403655312978509892112103524291588654414495554466939409029928387411179116610135452456627441606277830477893871773981241890463607865281204225507891627583650584998394338979474452998264539802469288565284077595005355318277645315987724629440669691323226125326386060120687432201713712397621807869147027985476735709325070508091089934699970947685117090589735886674557719820650676073437775340459717303833933348270128528013852600966543647338216707654288663545582879657529653911211921264000469636802530505687547965221564076874452460185758577478491999142067127671144668362318962842715054982071592081433096605449750382858342233517850791789767691180731582999026019605282591953995871721522320822360530399224456683657666940235409690056063248979429254761637629165274983182909785366676894340740941854550614413755384517280998791746280996262995013724906817696521843092838143330373173408257375682572261783660608891730466742901984728117407931154529154166347279078392497165033640550692170105150218869859709831309235295032401241493279886533347322775099615045525946562862530603839306830407502088085897001085658159346624811905646572494512942918687245617228172335937746391793717361048545689514336440864319404076464009345578724323605494419486370988250535487427326909867834722576612850640148109165373059588709841451689991718118102986650161807694238663897309330489654045754228303585142618940008117056947370911025530588423816664585464976136053064666217496650782983908605847464506631748222469280267032149918212088398885724993539296326175202353300301119331490182171203379093272812048482584553459125811907712962054809310245288212819935995199169929117268388035893141874656017115341437191852046815769818053545902687696240140744778805176801840698422445359368166730198091931896656927298302713162434233059664884238187517060574981261563656058371566722178092243427406056538086626907854811553097283813408794540728973640710638937356525498104506886962566831387114068222478529645222929031950352482840785517069640136345746488310760365765006965596969261172332205246685926335848285168053363971847796156580214283838915132452574155044661985830270161482329527470464069169508936681166114716827046225174904453924278586505096037986021236503077574932826631458120954467101605078706300867790497247648254974808905611423599808935090902192840515499255392812142027110528843821556314055243593826657799757925173469707144678669921834482670962991204318510856801366994700979676663459034577267595837287194998055104416284014863682880351999728981484845013917082589646897848603525212529816431491601549423296930299966922522035992502882132411526981506027691432917516175027849869380475724620172944815654860145925577674968831945286058952971826169748937416580025612551909327660867154527580124485862250494866759669410040772177777430499038447554493131428938542623281197718384128226238982545621703491762771174995654564009468416613359958042726363113515133386036086893761603473207378673402162679478651042805252949829717965689769833433497296393871781164260474241252085769043515127588699144690479996533595168664458615092856042293663043758844883305404014740221870068724680539325463154822809013115621380825353543977413970595061395504786089353503589736931885910299695496479511099645411796643897443383969781836003834021106153166744923113168082596389720847560970078913141418855910295410182673121769689485867408364564090895138960158342277648952573779146232682040320936217882456051778377277855458404777936629783271767012681980427649742775544653122468802726076699963502922941829301545525411779080402190793421827909271074742253014770573995111188632114432142651734242391519669804311031217976324562665959768381371122541305814470661121892464779876637570805049395349222635694114039626642916897896341061397489866485095347671935682878645681030343568925851451645609975124763433141964347554941766553481111701738640327944421700869072962581076624979612798535550090319186510511204634173441720461630319251622598047257322325996998381972883698018469057109308465571733614334424134414249368967104133879758440838877817411390822372739504603187314058787833235838815375975212243218313630287121169852688299209598947855171304713481254257454288810252642580796018375005624277687812654776192862974138912014976423437277896919055833580847027700679133697945031612991569311614707240993977440628420563809859112692806417712642322342171157190228229923086659125981133815033574104789537127416984813535400907527090689459059033732759819797061691954903824814127527092532642245599920962687159138592149837238418734471517069042993088914800754284675022219535228424159215149487280963851679638680015114760858416988899479320336490167662999356236089196041462032003096780315986135303957023780289689452783495115246362645261078909229024538323312643880496367477022222608731567810944506493780825912683142433146313807950816678269800980747388724266521986420674592121829984980870106143201748083958635893189280170582699539035406999729820593481844175825651893643050181367316379810872810923375248850888615685166067363792451310104295261915336754103329723832744828107957023687630774964606872319497301366150718371192292674057194184131200381976967968515674750157752752828554028473789944684715971182585568056847962130774289456754438181658336724249549380801206577354039627487782464130974951535101652488656270622672433770883769803482097916406614443912988821941020281693893552424798138241850341511752617674386830872819622196653613119284039013090441984362852171004153739395400686170760623947046961586895320009819363118125762789324026126282930455483916438844921501724839367634075149232335801600882988408596373802590208679965931808486898689549568902081111137251905034817421262909863576774523606218939724638937612151732107527943013701300948143203438299877729627322921966394943813210319324476804366680527231574282326464428093564800406794073923990959348581055336906321593628416958133484338138658250807259190252036926927685821477760233436519451150328832391659489674993412431706299229189695772204467149309183143733069001277457013983275401804641326280219423405706664121795532086129428780569874261438763206643276997732446068873882825373863920139257809676507599289324450950776753129750149024942867884860393872319438663510953798406360995440186563922588368003002445146452963147354329922654701651287420265116853392687422845543232449048954355414468751117228136780198319523620421928845653922016880342649842859118529136860343234671659798383953307153358749485656449247227347809508618340505683085207104440143084339829472806913239566189187729476015265713835253530538396428456098386940622921537414703107394475880000456622187005388330244091252324009657640609358497148969485948872372807214218519404613327695649493200749427654570811836280740250310567398840170453748213975017882623140906674658392416427745975537489741672096456664649442969964605831126580594969572244843535189983532637535046731584534666943344566523256679768894670843477514780770671517798569209342943195095934890336556816579466088856575697032989340052165284463771054806691232492989788292186861003457636399069130637492337512473212501238651610482506256658689012833327589418456589849934250969771463116420958903976779886871418913665273739493650700701749636764407205448089794315331215339603570947460624779657195876213751897567571343261362803237173013391742776640339049477339759032299362356874965668458879806958480448819091169404425038851850871233596319808724464783876934238136325062820882766808823614272089682354603901247340537557782221734509439453263749306866363666960216990814752062857725570887433483593833190851689880153932715180658853577949681935769890186179907979962725960505434410488880375765802879592280478578430768706718270824596948732103492414453903801588561963438070838442078785693285960618292489741966973390518226127234358451556364966075652590033166820682904842567380424655208087473203672344943497207499696898477006272129818936671096194815301975452878872284360174131164772623978792353202804164161870911189620436354312182348856744919745782823700974794573366725542255071191293919878759482447986137387624287478923214993250769081386197306485455040392952260139958625362068802056678031431066220609914195734842716259616781342976071709928016100642609152742035319693408759403224846254883262448856053362560601814723112437980821852574393224312759255970805185636721289585230409514215610996652066436910557407943048283321491955017758663204671605082854730445508512809568433427611997853704094469121797317949194575571717209574651331253710585208905862061913120045301004358515848467235992614560810565969135251454471372474194483179769460470488741192479671262794554367744212123135164607817937550778880805186816323546284969002186352440578649859439277457040214901589630697025886233081057388115291823862730630069807149456705812759957032673523391514247112081821478600657603460393995493751978436929544539353829647192177711261516644041798640989444287488310832941211153190515676341626987089407982296170384726829661182475294805053479270877456011459599551395547301203008707826838059477483882279760571289573111903069693813253507961463735638383300724778569424379071460881493030499051821358799938629629688881609281941991550108996144937214837269744525542620942911259654616041429864778486991468676619681839195448314827522104472164081263072968662414412288549006411847365121405791436646732237478262936106489272620844738236694382479159753665999051992406590491532286686007023897456715779855625032453614254744969622209924655036537001293510253243867353103095302278566159553948644671968785762587250659765632581605600101641181082816219657405508224873416128842985020102347355278830497289164431432020789817063093057574450445469922698932005977824684489882085544498912305028819474881632619753740699393357734001408191566964990287798857546460892968324595337577619128319073773534139547921554903636426355012770272222010832551504525812407518443011637117853162426877140692405884568207941357872372244997826651469042357291553370413993134675446225532265997000334717451050705416051623412995580304935313243137743944482861065130342337557883439901087089389092903149841322756627386343606790701769005921754785317315855375777475836973618095780731166305840127911626171889025779248487511999242327045200042782753201580850442919585502607494191060126964205314948423237139278638022991638256060083684094945676186624623662567903209520806488332508913877778264438227164301767621613518552126151088330476645217255199842322895317578284680111370926849376187505095061941594816559646171888281927063832414278797846220795859938514701757454452981217389495839389418282145354707022045128331435794116328047570226763172851351589571707500580100455784696121997131505108392218544451931943751392776861984546377917916341656076825300329091145288056332570419343616521051011609339240771602590566052137325928167792231980658109023317140919265037093811784109754671721900298061615723259457485295397535593411347100315008520915634401452670285265554458153067140596009231202169521854489130962284626656686038160503361519971838997951407637085949599143410792053464851015574339606374153130569941510608421329237481602960677500698807566103462748954425238709876929972102005226387192270459788559066069277345123960270884042375011867099545892955235954969400956093595541189915342499909850266122325181271640614343561661308025838114880622246884658539697533896048373792288963140590445256209858791904977844595809840639140310482962704507619755767009053348655233401748158687081941239284405112847271188606673378383542314949239343066784681422829297004653500908506820707193250282918645958648727168563439725630476717817950108579830253720395614490200429133910784263754952792162700188037635805763311724239233597539014790586629962779803553042213672704610000009099062283939673073194656705642697233235500702521702782691821325959643797578090165765631962609629512510422366343242930336760333231263607149249363908354174695779351604746358943865200828228408533891092164796517338374007970887574756359575752642654774579874732648141494659126193382235245922993482287815467253735017766614472214345607735925572226892892590888027898055836142834838112342987692994299648604965431195112723802074298063777514971573434122457676923303034142114864436872017460154801450118132767970550279447600220538422412268670214785659976398282753077744384434347563297769314364298327606921192405458928174241719114632921207528977935394176406357826616937748918097361593709852339020626838360846431927277150034481816514465128923333107896131835641845992424959920539149931487364765391529622571414295337553023148414060817633561270492526303978429072140469720820858920421549607364283312494552608541097989467929065672353383629946221806245050335450482122660773925250785375267183920939339878055408068143795406429629124909899796885937176902585567609900138242774560696890843061352122676428177827685253045969549620670085839598192433392942615187411001074234761195341752215026008525873000909755293261948410985634484925429344516484643286527086822962012555702871924265282978024996877276962432992245714966793489465501416283356695227814537533028671899269323828598217284769098500314088997839697984271688226778420377533531601185593487310803752875407968420703491584480508203505161489948870234127451516351917995012255270839947211436795516057306904111747893980225644244488018401121368535266806438719219280634239283737773236968195315928856534380818160522862855299018267602808064636964838920505899978797700173291690978311733396750206093775504716164519808595305938896014703422280299118638089868628522079510893405201305150569905518035650182077571614840652906847834082298940370838678427882280024735148653584592357251727868113485292486027838326352565136347805380949350031528385017727989532368086815080310094211956476516421546339630532712902515541045139333110558245479845131048331154103861793133918413484733213346793093572096750980741224046563083118875640629771601716904438579523930468554566007760631586069720647764862793910937888757993545993990962894533124597452362447483469501369419384801449068737550741393669647053073442780145910547620256208625741833567539405192417271240391722396460799438320756852920228870063141362965026920331752997573603276244702579953125268246791196677434791092729747705647064325367406700956293764563298549512375179858632996113688196279966603198332435543285069801773000398666185474529392167522856333595110610318045376857220678651319660508362070686745613272364713417109000355146658358298318437315725534389851365083627656178827836902089886970423683816010968926159424761341252918987820048008005199937885514123420576415149948093192605605887804223005284164758738589347684812602150174097426412260002173379866219293444486823069419595858038170099258636316969505673619237964587023288108204025974723091478751738516675841537606807722274922009259880618203596330977581738541974544868235544679746731756141995070196096598209343820186933370192341973249532272346934052181328278655903222871750645042394511093179480500749288107488127424414323032481896641592792913859323647617002139313679715905068884139871280531043666278338707216170964988780608016830237417764510757553356844503357061547882012920695833193861349327407443987472803521071600635101336541925010360937694284062123324228721340914296430423019888592118290127692282144869738020541752403127138225949620513887091663571948771061284489562776367904914023198782084510145178232018022345550424059504192647772340938389928235632912789779834992016910384496859638159592012343571589534288337052414371109116802316633039194199724438181563212356950565589138028950445058989367216814249307607851000234943145579780939275676435750102690894911912442431579151702068566446662947628932234848344094154179455099958470250144196279637878702882792843898833566196200976452025635709988206791600805289900523357010303048180477142310275754850144597602547816727925812053517357701799572726742766712501137146330192356644321400228148892764462396576109262810022949499669746236576038669697348264620925063866351090087508572659993079818920318132580581839023912774847213935442751721653298871746845668239456084027278270071254083522320822147357826230867735743123824272927267577727778767897354354542217713559086103074630849520155633061240714195975864821210457977672768350861209288809397672428103278998427292123645911114656728740588558687054595318951538314456027353484551532545415981090803501004263231607239642593063774742145903932699065503282862730435104494593948386778617145994127421950412920441588791282903289111944040290026966414122854151650196610562637254849265092839599174815448353723566595960862702479240965438487080527126454097733898814943971797379077905133759978444711295332003742882109224200918476440910378963076700988250037889084742891771531575938850787830130545096117423532419374020193784979510839855097118171203323502202802614097243933383388024319599473899027108214909088991908763485340684095723126525663056886140865960645885464941228108757966508882813613674772787515481789426684663736214771270795606587312971805135466829362770582296722182625884296185351813026962807647346244386593581888526146639035206076499251185351931450340414303143137869869054514643567475862656134836869644057540819703963670875125436592507886807310839351007379279320641765222148052994653143911991192268601409863153028939532018358573648319347446105918734530175392983320812014813827754736560251749821255281249296900687075569117476859812789484643076658202086585814889549057809702233031862520475184697247699325995776250500826360520111752593890548784518673925216976004676993857136639619656048595300825027049436105318571729386893327802309216204149849719853922859324956581379634750220233120401426686397448741074766198248961504756710597226711545201475043703141650671059028349818483684241898128713805341974031372406579541032849483618436735365017653648482414266710006681882520262081336982497143073560603240876642388346646998110013845991931683721324565702829925268390162818800196086652211402278018609858852025971655888018366207196374145637884917544631181500232296413234742891884430502025687979656251153403503296000548396562430620510514591700743828783899668472083360604424010673478912034728332378656697557039378195828345918344385306604264490658029400906564608576613057629799886566801695275960991831522632484087949726628330287162168843816884118417087807212867781356954851683993938554319660806339258408960100557104846511803542840468060180439898150537813731386236714969793004691238373459820888094486426387344765883665327649727340785163796907259471306604794756854875762146422476587512027540401659519915154439905281647726387337721728920678347670854575360284249612452320397482837139306634598422879107810838299097213679792341899954246528352676208675607580426066958124759505446133877134473668385931343313137769431288397315624913088351929986428846999938962452759027307247066221061829198539926712035169505592948117193927945355841484803902125808312741098239603527798699424465821739353823655104698340058249708729260477109898462477577459269454119517704010880716329354285100577216735021618919682889504034856514895769167910657378572070157074079686949946233465399060732327989437309060756951722071150276967912415157890832980981079676752202105561251195161008463351876230599886990850053505611565005529919585751841601339548477790771537723918063718600977574168474244680356133679201803032133756896484821959635994401313811159391523045579493682831787758645543201426864026510385758342545824505647893211166127855427403556807406222468364258838773848469517673491973829313382446554229260881105934503056611026144708648209166889108348497833788180242781435758355720885418228291761815859304628332102230691133719518604356184282782090573333506655215728637772141005643753389953852595189153973560107043006286169122022951367598118819438158217789177960200620278219695414081753887084878831615203390732913674941988521342100792142550095005953368438425499630599002772991653389736606473131910180042858226302768864747037553216481801366650133940464789500872165568271380058690890727884268369863944601708066542732368694201931124229888621621730920628830265799972072429918083017550414821723798387662002681956297644745614087234532239802237922837711723853294981917584071245290574224033898474263906851597176824169069596854574476179477330935781908577141376658438146869467667361683212607118921267448989055991453505025828020603589324358342057466789591642907921302854627626652136534125983108581094105980638857651198779780734968366257604531470206338813713135489767262778120397903075814087877262845567268865406709889896004073799748404926950927004000932871404750223513370472976291481343044832822240430877615697885090207892092224078264539423093927296342438516645256578866214117205314894790113946265715525896320533104762380196270363165395157454203043944487864908360173864473889898840635438791414640373307178152528281245658828924118909236732080521109909947029746043898675181229613048024946418315398928740227349466828317346625367262931008585090706691521399780701002691797874294200285792097756954293312273282987878750780131015799897925860900385596542056401108504911817428200792948465892997161400335850300717876000540424123271854258394181208928953371358314326533921140652079559223902009531181788397882419560607220021693331500072282889505278471100574391347217192461526480453707523180288922383954147448696173370246219216896041281402332779429828334839714227185753495344704562973919719849232249735584575301668529392623413151205858215756955352038161159046211517785855065232203025043186200407957115803939279379701133852533360786525712764385337213030552706828000659528135801743998336287659333956320713534916203952429286116013863370004326679722600468560496137290277198858409811866634183016859467357751854103623719887196953360565442394254373759384000727954375820077447452568169835385100822160889989289993553893859561824215376805769597314748337896190201762301967896751510758006696265609143082501864769856197473913410482676742951461884676536548231043661131377567596802237046679159265657509926108140643755988298085366942543446768858560226220983980052993766139024432207921915077335649757867800484856506310106294715661407924674028787797017078562203145300835547309558687556025019303547113167393038870980023580511313123731135933479141845065886498252439707354053298749998584679598074516716074050648801819886681133624775674871326091309074316754595045508106746351841325608712791546689519417224455511375244246012623172247838754569125517536820363267239681400351491514469517739460018482625480409348245388159463213325439517888534540597849943233430284394138166578738241292368583866769169826607138708510403988186009295921428845758213591270277378977874020712054073590953985974315244449319547442577150608181461135993934241969816112469798699966897608574952762094285260145347715861250016813711869903707160026806904009249256328382886724476715387726756325590046261942126431022040957765611366634787247949419996896439994087391371523053538169825222704024897548790287882182306311170573999184606133959293404799744764697574684009942460186091462748591620278891510948940679042669752853861511527092520872973893691587224902158914893305767971156350654319099868016955025063377037476411931473304851513721240590915787353892479194845433656187019774185839202816419075154212194499425487023368313811728650534791332083653555763246380126191091409082391154502674502273355016198677323022117085924238912243588469640623902897773268713202063905729848124441165535027733641580511769725040181661036287147925788738123026913899601996994688909764211302124189939589383115279516880308195179753339867507776684446532070377947889399405857758617796337017803549930688479187270858359774123936921726308959403506980807757195380113411483996107530668342316081297270596549735047066687398514151473030336473978869161847104294776946120001360585586012235534715572392307927714781754113283528698537356932190886203299138798844612083702087334599348415984182231553418146152410801508874201830422528347309166410885939491035494263370143159646916285622031277906669877683606360271943982220338920436035754280410675694749451207572819916857612703192981113918906398136389848341723852880967787234219173378551629178032694611086575141704429764661601327207409508360542795472930014107917734921609338511914942834357223424060972990726544624952570105799369601810918557797748201840866532392982580986598266902556424177883692327222187211214755757949915965044825208313346333688563811010604866649760229472148963589913129824979906506083433651396869128950939709987844881598617646440915191849267570933665151816760821177086298805828237335427335263113247549299197763202366240979215851123658122953067774958536595184815044936559836920401729822449812392330001433982719382603888097743328606271637174363459513625701635370340763254292400027711777090923664791071561980172705707913309873157478215954202628623194628855610650475393899537573283349819366356457732933396968468015245112720472830959828018360064560522154968675120969233087515265187427390762440447632277298979957334030591321440078837490019854063005462388198067396640392154570970133099191506425887051130676164760300929700599624274412254319132310194411802850467153067378862738643239409458395462368315671237097817195458014533079926243976485193132541879451256207542280700596347055714657000128376516806505614070726717398002435878572962699153715820634613496610779504714809171116345849462706144089925769546070534474275984177502225296782995523101040359310442873515109636560369823884318096008646048741755632840282474204808564775081274003637480053783293617044403966313341499532774669983944290352524007294909354994956483777025639031738479547515085306956685525381942373527873759432080996690804711210841738052993721564026912059787680553312697836280214382298496958701119739144927768927266189858884261051126795980787373529847317514249936008697733246362808080234616202689651631663735899211744163376599592222384509593271800198162182044305693470471526008595685206589638831913680263974277365848469702632457829984358709545615072098578171874352918711828510456121545107800879499346502364333322944328379076966025103678160652135950232618125642341992365097705163867543771935220689843964982213781032976282016494512795007662499277693346506776076380367903073665972210494707615199422288403273958625320860361498007554758771644134687174532101599431756666142971427470655721154505633516478435287818914853874253117968221675590696087087285847641163840088604873558133870450541310986904096990366302316084061933252815182354285195453527527057741738696181920372526717771142384047366155750530881789924648808498492995603225876054200192023050747006790998316729953793922869159711479566218088658722174017794537954670046356321174206437704179849871150763201167984849189464999300403716002657900989467956709940691095715613607953134070512036565974244453699250117847949594598589050332286553430991288963124682898999238645847392423581961357057500302563223214771775651555225422164518537638826541183853369877135879055520472252382843260321432981526256771623515723076939230227653264232316264247304378021132388126048101162759505742706305083431543162406083087177596918702398645292262101607254507453403051609037887685972643898853980743542306169200520572142452776191876056913591609646662247126785304393350634711126162058022066917318891451582734655890789804371981191987605663435474298889357288963590347401052257507340828349739163912985425838232762510275750226546106097097565539662353566401017732069977828963461739512409196214295135277236005000699262647057405848592146392719141785604443626634012351905105996508460060919593137693208557750349935916709197423807986557951225582071838592480117483305314320819816535560736075376649196001508930300979303506650919007598350549007698843096326541612072705273678084819631311747443646988544549928110274235169676194137786211462576602963675360856527079051991809594508290529212874577100139473725996944105038409283400289164099836189037481857954232276245340405573249951149496539556607222285777910050633755483810229637406394017784437115624106301490436870818578423222947779917468426512649778003043125866631147322129571730758711221017162815646622118391380838548732707435109344281362133505074775044664692299089695707825643389987766033185483404011057498955738689947978196014009439213986878260407429927331715928508441637404426753677518135152555361046092579022890629998334700363437782631615365947299371870839696870963122474679151749937203814024167688826996559577033435213119153704086228489542986736270156194889790552958609159159746234491811700057239470231358217236224191144294155421973018073411903907949356827774719875448971376671208369778256542779533247867812786023992471599454477802775882396236048596874579798044847452437089001270800926607733837720548223465803172202653218224245364356805949071998837631810591476322444215155862681367324223049689994555082014632472417605099884454562937825385558797392313585681919175662210788202802885807977123179066571655580613015131885589926443798286902965620509243316364451801473590568666463258722361514591496806563792154239875010390841644888852119407623313789558226639864854351404902084628572037273500182980805046242230313244867553971248396337478792767846476101388339653901350586840662708669573903860419842975504922187390010855736678267298232225973214690142678877954080986567027942450769314779052588414449860310812081412823794585954891480992853748319691820821719264534219067286789619559406725874984128067976037684089881267071152811966944520767678911756631738046813965451232772011350840823292930452502750228783950987377572794253851999375325269258321802400278634316040839735903834300632699405230714066285850822226848023709427372172347373790456667389587315771356142021796062430322895474917263455825586261706343905992276220020807088056622869271243549813261119850806248533933136673493776698228050679855714760136554840613236024826301044039400502910913247687488355579291439499749807967245267886043731465347970860469232280116684090676881184345611070244045769324758982490609934375425221753053447746120879073783294190549841683215641309152865247804384293304828682511414651874495772744516622886771716533775735283487383347615617002367919896012954396932343759676768292334615088019987050464498907033660811917618033069087177159415508854323149519033911435774577731981702664449428515910604359223304994073512951842086584773738776528875419749862311165664280056154023189648816567101286257489131623897372748968405863367452527862484211056999573086479061090736865386896739094592385873545930797066514844392180784637177510459904475807133194288997769930590694119902122261116196525190632813638298447597450296497382075655920352508722639870178286033514422352146362262296827673181742220586827000671412062066472230217078096332152455343607627217613105112826668433443031763808298092078296292454042484861081381987006268104092567398703451664969155206943039225717178569564360930193681751742207878458210271856025040525997627928098536868270952701734581905686629355183800857214023165912648836207568113886038112410342340120753550417787277414602540267016483158061004111860696138085252722441638143969854947325242457451998954906479210039369151801694815059976606503433647214934863345953072979236326772534811372978701093442659779502603723935592106578548766782040372104453716183206401932470758147873724110830307012044785469221131145380571433581417074068433878549816587875305360130207793643138620618117341099292571744758215493877121060166950992775411016623441482736934713313103335096704827708732162395183584742616740789257975269516445453835099831041175898474576144342963757165433541797069068628624865997307452242036202213230147767577121087732091800869234311672685767295730078106214781810912011523622977947894444936511864449714127291173787885386736142716137601315395165233866750257592400989250413505290267710182779938840627232430967319777592575216757792992367498970482300780804796766227809918056677356242918078754769572073889769849204001193092406572143985489232455510438024375908949600753207825976827236227419987139938113482390433009968985582108835468045947099036878107282031502661485437825495108148240289185998365861684292594486006948273233011589675662337264807146258049464801828494056446184878111393625725170872455248209848749397352864647516361908893574595400321064219609801407537832887875107072858233508974866990515508980955341131762244544991963648636224151649684749850288072182595789550997092520475689031208607768604136981734709989539359812831250356530710090590218955556096994066618856719054347647787876666805321178647708424538893348637987933863753168536367045282779413457279796911411289426391610924956833399427970774822463947569822205641067309943674357709803986901436314852218821349636277555540245420685797667713139758397674118213046159021327652606676292479099480518242653387645102082058733754825453840073758439442286056376047539163434681579806941796343759614071554215569436098391875057606103104530402105906493346479062428187955717611670325859914436564544712171810281750578149241719665153263682635254024234966778590189219286349743412314882677710141360345116752343737285707252264502344314534875340663136592105415573245958042543347456689403629821786463730541487230944291395561927958417209015753869507994709636693487726086782920834988253819567995961603687761587345527277305618277521638445879864267901251301095729246771204276576116988383187473668919410393959676956866049001205278405720820822626311866399022259034777291200617999229786716659453231820220376284142023705930992165746222332460268683883786384476516367778017172390347904430375968906625680975366960549681730522503371989455788875836432012196027993441885506114701258193375377449858159336325540840720367870821013466515149086931535299114591972059140302102506940450247299517967951009357302848141251098604995380014401472456954847004025092755542255762607411531158857462662302150095406135853340448464518717015031098422293725217663410804208957855264512038954600339185530920661127649001160091402558731152499265558415805450384568351088642579562707542496015512294318310369815340132933403262671283330273306385070459537052041692310772400255150371916027844289447401465987024383840153507066227926174880787645776520797428958360755957181585435942181797869262603335787196991196642698583012202332120713785573784325066184333255177159074773641297273070417299673226840283931111201915675285681173981510320203225933233789729014266742225278931155914510865372969945618054485233728247875364561083332490117129828673968356736778495117065163286934883690752308159109149527793560038144906004396910203952195586849567178991547007349175475924997130286527572065989369305720595715005535162868463299626773150781479697274890723192542130831198992204184220543411358518361781872242479879045764166279079940412360449386304389802024609934555714909336522518514098034671994326429302711561413432938095587166275067020400745710159137402603625724738788631289276801373899453892446003746742720984800437793109564991827246310718995118560957387109893341574334578831166815591348359911384357935964152053771309331715622483688811341919402477425428004399552428561515900716984980805296494262129521338320440484868981977067888532088537172147060505148521644547791271896723713283417223681958996447149396440770272124617230749159087735705027526889352874800391891226098938604342157149333514702054785842252094339574095996916958934915334311146426267556407997843515050101459669077717506547626157147585729543778584834707986215224993112679197140538982384703471079942284262804942123533320738098738970491094144731086975042020288784688014240451685278725184729756761338530781550988045938301492401078793245556297675602307798453681713632917549796038986764155719949685571578889563347816498084988947585356276237530231714115159000516982855747131369124888097312409642993209191965805740757307468646158432926423922741495977237130799873284082981738511103801901661707281408503290030978656035099998605138876254923182465513431587175171194412441251198205953919587234242445655758065810006156987097718317309293295651316579988990769225859561829125093590958011630536886257089062741534775921133233818567629339273046749117745125602579405056420702046653160473200331990984892709232794402925537460047302937052541234787286002461143219261819839990932987009427035478996723419058049814364377552346484096432914480250747516648701368710153220152041665959037393036352501486892691340929756317868366914188576998002780892762697078042271078597339166302575975927787298735764908307421252489418673128243295130203054439309157264652128696241773832817665961874078151473042070840091733175445688123373241043605271631302194407896076108262815623715855194227810867202203484248607472226983513277398706676248141498517909027793730808961872835918252585168651257829000292184593354358452066366633958587600734225962421386801280584340244309984515236591233657500579509656433322374256398862678193140755294401886215067294319492960480662387028282241637748020283227557993655920022446059766242683206471869473479732945617905615861415357932707735771154759874240365409235986505607512515406402425202602797358355481560841337228407132325729799075177314827187152266598984207343883239331034316555309643112871025754908369350879049978086857560897266259274466835941724926431569541855508609666767409567310978911861097296232031384443243487712943028140747641494174916817682733869033002788959739295926385709234829430590364262533799769517796382402440864690494469048586399377850983986853238117385470698838846087982057469042490650432506594477781134816613385465173020310064076243283050037930473074443397091379431649018636029666309393629809583925840762680115245890441114453707257115569027695222046830639489923443263868287268213353098889584655679833266746847035406302267409170169982733671017413221952696466479284513129205541130698414234792507706455761006274568366903986423712306733007202670782839639045187520313841918122627987414037490354794724748248315381958725707351596583182538391732289565966817930807886839552832643051295318552466701231476616643130886779321988742254177563740982765776056972268133178805481917454726855810529482605416635648728275426786085949304459483598066383146263596084872792942399428734069276985009814980183121510665558517627872559301391928429943592396821663033710667609734910282100832290389297572823027965284484384248733495466933113005411723878718385613638354095093189943381740627066516180388188554225439367944377102898729364043060512948552936910725313065914144419842779378043276051358679048910901966903207464269595500436411443640179977052694161649388614850287107274122716809023720924368663989883845648134402385604057292306632778901054722936232033548350734971731242492208303095377157598096047822467904552769830975149366962677893640687670906799996327352823768714202012394537021801544266558471724158903339622357197896892848537153813241325881010717512006536184895043024671501789272775089958274566924010797158118968533922333268547701185822907085319077333292113046229888517137975072933066633252440917040686814150466179232282411891127398662069252618353245859296459484183998239166034669509719251338362783686823271076410614301397501580886806790202655437036643541539064802550658300093580251422619136973565597555126913568027128685883075767932936603888059943039937103701037131239694347500646136442316676892035884557560324246938325153887597339036596943531856077526434974258060084836462748762724942022128528565940684490871523539883636805917085192185758231191027533659472744205078423915531761030519672737652390185157285886793672576959638752060437591281901337608400275350433714334157264586426471859868211209337855488123436219440993820844235890888028866216198675195689919094751045217818983793605504614569241755695256354281729597431477328496087920058728159550469375107995626533076480829378036627422031435440017236348519517781947413283028346060677061751399653899861115528853708683263669192818563965892993096355296287127124733235564078954620102763709440382853534315272451025826794687759579802420104498473737090343074295753427238620092836440559864954330258702122942767248094592444859045834931118431934090264896878371904689951092405305456075229711052030664334747763541205671572237143228721024157811842678978767433734053708055512620595369460511480234296930198646070195939584486688149964391401734855208724867378495840335423944872115997780590885957069344523916280217738591224557351079745996333589194814159915633709193282847354331807519463630629466880528890658186233142991593610967834144279254062372380875968754852902296019706569470991141403808454130615967375061236567189796217027765989442657626816258847879316021738850595699394758161729236850135496404551079905420860995582011843031020703884326472444177460224202171269424288550195037865605746144237596666005846782643138304854400677919833830171388598076856689272275210294990780190003713199779574786143110524650563946943068322883587955327388106229725706968600197221401865432633239481007471355780491397810159422402748993010732889233626621911446835845733468412156328510319512373868408545112433605519464329078891920179004647360081216004295402108638266120473234380501784707989675748761539608925202405445573913541805766146551147197404046269530943634008223271807307817002210814997435673859207312717413415332148839090786018438947556567318054929904716471780237969731062664178948595147835243718310272166049309982503936939773856759396306776226546960272222128422168954804604420428608138280237667296491132990728727583860729296275613599625802643334148074818937355847006271311585288867396474755876443166258596431668792624105349302922589199731105896074938137183360664816442856417206453647417754044310064326488415258840021601370509033416839147057433521674478390989555194807106988788665531825077011827496088538738127082109135206213471676666979182595274839250576116092337459937351440962245002934694609870799510262457542833915026344656183097282900078478511818452709097422615409797733836153986199229890701043144954332924182861879386516444526382733955575082631230943111876298799990943193644238378603400121752076374369452774645368992548373667747562784317576992310958169644125303927409050436180744186154668648728254613735265517624918461143121218318955859879930812364565702842660470618384238262152705475858476112410363027475802775333347701788173336995129434152936986930713135754243589663045050038963094082111905815022675665016844804790131040005375527503328301773534434659696628835747717140764683751788941979825322439203086750115805175413470140453179021512117971804046829303200597003529341931213082138325954272263006591073892547333174946856030461079437259597831015969193770924993985065016402899490506664683949135434767026868669617721103147122231145573598159084620271539672402468862041239237189951863819944251118298018547619818211755220451683171120582476929355699816651627225695634059205335543968036811396617472873410959269886084529892071719983990901829070131876532344128078822488183603164287716814579855778772301001675789441950864403353543771323966351920581762429713563792844324048776968463883342920649226685049621270137687078079984570273715996059019591101565271242614590568766219329420137726080656327090753813526403302496110618847889090158682441153459405401603681806318001344028937665124924420617079586320777826940076184217959369031964686995664768523474667848735091779217307757963200916375735755502176138754062840036971097537902563069661655834109098773250576521204698672778712355241821726882759315284590923573435296844713637308039160093982547877881762852635939894386439193159077578676480475363759376514607433141359064312916157651899413138269482404406153853136610836326978399918776341225863874158658922588867482317323477782932429088706770062974624805494118324950359958738607982999714586682210156396786808719848277585718020763939846742164406554566033448811061853380784036354622868443990571960132059971163128177194422111995437704388047577978719770746460854594447548897821663401983531680961008548191357082253322121046426593957317371874537771731201636099359630094767649940820546796925324076930389844983849339607090830985808022056223013050371878043674753068636554103474251596717811727673541083690268058425597256628228190825196478634003265081457079497850866301058988306312690477694544141123305743319363074178812829014642982799625939664810082761788322903839895662769857597030346403704108901490042354893689716824356939732418193355623959396111983149470582511706332299601264488965762958019277235847869848258999207870181964211484305038242859205151875605177675429458656903476133627598766855301402823907734596039801644630091122115110138277552772369595384834645675995090176836881543545808589536155602921276445017257383197158236900914008122472572058486287268005287536505542566971980651076868128923605789990852746438202085844262966081003248773506617515843212022620288122904725628764357788326475448570171954376114499243224696604002751889020952817383552702547749345158522547914818079452912712270444523270414425467149458426956154968044840281075795190352651592385979524058264077436592228342824533191743801014699251681696009106559443587397881080905898234981405612810573365391967563170491305051232936916112938659866356322747652283521501213705554405303646405662995365696622522295052710355671798225500128811296773119420013835869892919008093813842245597218045411029072217711982775204705214750987204670932327323164950959889506737103165313798495029264611775411923463898133741808130000039353684373510565150991167990254384480921936015303786604459767118634947379775923293567250431863964678232263795059609450208746637972150187412597901445717581930516939148849869285114797007567305632227980013351992828161310014508663683226752196004981867333367036894784555597253777783657083789933527540532916639209647948976664005943885054591413143112272115894352694689626972613041494630021828248053433117904832677989766808185089956591280183901865181705121279535122267861693004572920338117464132968377882857558819043031930598286910562618678604296532771539658905591138459237752685016172575409776883470925302173246488434609840534897055555594947607925209687374782583752610700491720718955616888457301707521356942184576752453185290969263449454289616684801307935229880204339240124498931412480681265845896165318156411741346703130083401537898006113098087297318980058103921306628071052312589235570493560438648275838055151512765576856709516559662862657110233974679798165382063146516823299056561629596669020847074609249779677749234384509267678731062090230954386755584780443534077038413758688422767071803519935592323996434334236920669889938664951227036823596226162174645595872427124991743471223346221004039636528666331792533148517382107379472378667197503171686031166124206414018964654003175198084117829942145121135767203894185100422063083957518924667548118512695541178198116857470736213041142050145228155273828004966146811604292854779082566315885999309982524836982615903395782942804022304334788447781875229359873382921710719689374282680665391121958625168855470946947181343404767090133722967397263366808861486280301117284100638716605050378714423512498539184433929709745331930396712973128450758465758812653635192445232946753476556482574164977584226618354395490806136532839102807836574088849671311237245056438778398805586942039598362553311038362073138358347939922493490674325068074174197869160364059214135919845626080101068346639842415100481170893299007321606282024187760579313936184979120075022294482927976501845664216015684102400210893505862889635829941081568702644644375775536353902064384999597355021553834550402650289758461151795182577380656296134280042557095367136831701609103621653535912395604100879772691393139535945612854427531152213241906888340888209209750452743128577814224728672075913576822235108410859467889564478983894068229446097812667321262573265762070359186061830280853534225235056185995556202277305184403413106312005477837092254740665792902776256950776878161170895288328678989891579055117281342690426423327701580503232102995251747096650030403205945487718524013368188809868494344584914221948612624524322775616030326617268402354846598637443168550085671764664863838014893547941568114800256513681253890917981734661741536006679273602692332472977535404868836347930288566075132929967349743789730041643088096734288853014123210901290361219769093376155053471951636296808446743474505790904894408902975039859368918064604982157396535151372241262123430021379755810633965864420887412958274109495615771912826000936626409287492027016878494997126315058889836853573295647116765220609032189618424189806911988860188133173383368106263127076645410655527529615788968942096073125705650489281434143772241090935176894954753155132372132167353793417055193098156287192810938011972458689262819152499886412827864583069396666798551187196978699912743506537411393228613809191897189834660975455032140734835283896830485146269344953650035861758659577546006835263932373198891083031669340420766653124943862581664739577008168608741819669481734582061543966314453207427013574705504243482979429608632375716541739889806745325751197403932698448820027928717262654303593069838650065937072740524168340883912072061743629676773029592329377257965334645249776609811265050333488231112253287686731453531139430633742834615719808392472958092532700132712589338920094320440756525086344859387658891712630200183891038666172094579868157420075398382285780010988445913922391638256365290791958567839686157644523347443926302483635911259393136106246851028943176346991471641945084326233431275960392017303095181404907793879046619009734549779910655873723498998674612661912629055292569974966559783025004242879012586484645792878905315937464986806847365827799383543635203689169596653958934151759029074898623661636695469778279651746511189483005109670520435208604510214567875611609875143831436620749976146145871295863244097330020834543432491634383280695670652037641705392758093216254798513782371502869337648716212319101115990778251827010662179750514081528193399042645777943392983579944207037609662720287608101718709923479235088287949844960802027053342785792738083756653546748783389774341585408270758772883708029105711762314336093591541401213774889140000437959543169282483314089894466840929482142873031864466582196753353015407569786026170369079405999836237374627095370611361344046124877160177470950906216165563513157837783249356717721602237243796025839934334640665518429557241435190653442120086045496063749068456768163354305627968214725026090113854293927662909677023239572549542630512150963115206464963472126816746661835153915306794024482543134484150091085068079194231174758554083231703256601874125503698714831073568215584432184932185992486837314094250395619409700824087811278885690045205940014737058783813740898639204941355931894783228385293738722768535617132486798509268041549191365462498062120001627908344392416376806807957574574818935479896467533327807317399859769419053912693941253949014051392173273192639586854411547919064989944931642050198438801011838899043990404627147199674656255299597492827032585356460475422790361984825280689520464328539068224825492789119041278709783925279767274383114001618159358483191193486454029795544668214267536454132567862276239522405363458256443209554430061213970402038696806418693768965175277623854417329278545495032012447333597090872999199852668537761627368531540661663805650152846083353620167784444669585698876098003693556460211204082578906893927052444057005753791393412191832983040458463045451389898605836655267682329812327202749060525181533270140848308824483454897526292943191934666063304394910694034144348185456948035200257148430085040201841118065780163683515777706193483991541801129790581224050106996091499574909790078930707674708539324011855864867312508159674407032835614642435820912601798225015438777747077415281633888425425653999978376812593263961213489081760163462003868922019422431084494106205378105195431353652797407318171121714549746636924259270875479832923797468827801137597037271612102956674549379136114594465491347484970056016216006367054715955592077207401683855389776506943110263456199763649261985519435597840903082687156815435579204621240409184774674832926422670766976482154987447256452814718889681642299347668459436463670529146374760769860238171949915460179592167216585486554394945683752533237713781916001326587004186749641134586821333280204069218328067954723269761187558586441190673875508708342571231943613935033633919562255168405862943899755177021990132493298459457811999803067592684369548559985172506657709706921670344386510266409325501689686802685527001229550356057479360289812393603456320676903539227180265836072057507459325753009396718256089434555457416666888138328981218776600069322513707207465351786974068581388493303882408514006291200815985277585996921837175269679574355778734979187580804111466198695770721000448188211291841129819628681891409161263695594704343193692060915926997739813306250119797222188266180381293171839053395333137156444511986118286316846541144919816299787916366021613024973694348549601390436491760091914346375490216046129234404209709851945186076117200308585663261102176770029075585704203768851076901112864962374340112774824348299284622269274526040519549828438187848658075385028306385051459085400433801927026478437479569225784469234367376152215287333905878851509547121048537941792094876565835084443046449198844801020802746376362958062089287941304657839635977375856186236329884260555921423803888989391461519445130886484671219269637244029277203915645178454597289573437392243986692809246035040308257755576481961670405661664079160773308415353432741967458602064672629934378373064687108625069375960855159201459149711870312694413707213903486406238405207929224253307554735567604563671712330533729180224845012775590989886665824746706008318318499729370770346100165942502188606502808605176353303393252104675057663959987669967143493638523741757954559089618944462398265447394492855897326217596375966125840248021653589999056152162628134761230002554490258631066109900682193728109986787371594307707894845889906280891171968082913372576272342393105296010599073162272816871105918949257128479315400786835406276039575894954701419425443214124129591054825203594501226193509984967717222649622175458669228413643254739568100318115763581301519767825542564173653748183714526431594694593685366487795579271938700385412838273116992625406618277536424636009990328799113613252001457291224431030802218323865592568079062103920075078954143301713562477784083470547691830095740277681329852402154873758402435485249065417150012839006479868135368139016293371926096252580363096338836750147626264180840580778836152871361018734457791470610789786407223913899709660862946041240640727620380945017988607832189788497284990349659186897487273976648485900643501255374560383364683155571732797005538572885653406732362920477523560018524268303813473346327088051939106039919103354380686073807131290674281117499049280030743772732656284421527142796691940368785693843807637100256580730280184035839834654341329433184424842538385987388530196185189202242324849643780522232962960307268285695205310229185331381438889681037952499076155387041697302610174268619960403907964143037853882374765677374844061571474802416372844006246166437246274916776557571631634386055520276012076431444614127804647647386614271875439913199042486501404677526205424150442576618298294004481415136653715271636129829014286328527947471674785382674835259454531739852859420737332942345413181947508912752500342149126540005606316242279453732873893434849109672564778389704823203769502952012611629145165125804674606891682640925356598415265943715422464531287524877970013643250008381938144387838700079827008860593887274155910402136925940188373382965378959352421537204708169544659095931159028935745196492354480019041295311725511370999215528075738163268939011305001107553142875778122703322056795396526068571244241937266309925324935912929948020429231893569108726927648598498463967265544903608758641325123576912702911579159909098205849052523721955688458080132465465677227803399604555191222226762333007694395998277388777521383477188895922667559108874826713959914073763264226405255944300035187628512049012350607951345824351728139839661483662800764402663030284986273337739517803147849616363711899544089464960126660305084988338389227374617386452047754590475172190013393539615870103829695880580097729103117584902300956617580367920287350861608547960588378277313215034804904636500184961190164672122170519077381007210284921153981663515581996297650268129590842862205757975356414091753176868150276269030828496620511859483266042646594956364802174188045941399990516544184651189728500498590935666811838985905882582695306781825115388545577082088877055928368164442522022816960422725080133231559059792027644399347435995423878558204862422831401416735883409176487958268691588646347999745898766776635721548701196019398556259087713030834970981898723577050832235670894013075697584117815274829332608055856084579062581815013979206475845983388370689863217480143508344102477752154830387150976092218432466185172795780634092109632256695520578423300941676081475234300488868068287469823080509631642512926730715497195302563176749876721406203931675215277373420526639381940900034678738495297834495871971777152224134707885060681423540124390361799344105561843868005535077820730914712000968652134180928491010011001057725922701508895802636754341019313871532085927386937054360828670522701765605915829844749505846004429444687189582107900503442267724038175068205504592768621364650742676536848072399013725246150837789137957854643361901311708237976651567553521057575534280297399734799492111686462573500954953443726998921875189309431809115540885978546658482761342977790423533918450612101002938782382682147326807810118651617512156977387676003140959048927453458718904447227518555100310446892211792576498840646272333978057241261155295074197958375026132900660183663596301657286091049095051938941076963226672508278176163599954771223735106841977278393062057901136658274499378255882283905782873744451363887476228111495724891792215604466991302680063310446867092654875824020248175042473673140233137543843628889684784852504700577094601878302094336843960363332210479586041115226492315448754471872895376431308797107658356728758359562395441961692792553860389508839347435227789424375946001921393791310784607956962237281995462681235925099370904901791772212603397093529899998230714881850134393844866762650375487230049352776563304991090698602262622130934588308750648021021769660763353670100571332588452321643008030462084009957602560495932480511099440429168470619015785169863891614835101481918671537438520506504378068618948812685468744002787923064153744550569084973753507090201634452648875595782908061346419777994205790986393310239905149230104694925065200320804332125810958048606568671614272549667089956899447429355776698811628900717041192381003871820474292881118662521241183050112899437460980318655964192354897915814570734598324294635014449049208777544012832379907286652496615006499716730126614506976039460500854918484519213081259549390881540936048935025965380296389690839738060399829434335437304855104034765655773458657920220462318340187079059200107771721936908834642369984074579953833135817342580109630563017061172992074097243330615858178161126978251335215251480442072021692078994690755603417835286632019500747228942830292570560403211000767425435260490175476405157196567720852527553604565547420785198141036635690311314950297491191473939149886364220111511225592280219326367390218220219692659162390968408075475483970464254725163967948241700084444348547502451250446175759168638147672168815096612183493008793647271519239400805884257951940050986493369218875036940761160377424707546501686754908599337536627424528844546058001947339388779897698828420556571998639741574881771245552033188559269011297458691851496951117899358415128062408615755709348564411388172593428437467436811426557307570351256608952373353265668619231788844969690251993613459340932535389307164718775935023053525790309251932017632555608379344794176960409386857831850516388218792330194143453990968234558781102003169739984285750452981753028824827411806684161982449703500045398593079425837922527709913658195391227371133018411963704628150482079021540812358538030974474134216665420087106990783103253113967665408714106850410760954310265103480738009255471079185626676481947937122198047283929343786580916042534396458340859224197410816589579106041021265996627334162102667645746196486108370249404137752420576899749828998741335297614650849488554524928657502947642729207201801252488317400907563649085901691457867479303253457985723417718724737794308441743215823240792199625003296038024302473909263020242123609107240971839221757245494289981266172812174966126400557964433980481502963221062465296982246827056923768471930198265718167761373044486781495554546359133268213008968056980861791809209939148555740355683568609121596412471241365539770347567084817000219643978623256929811505767357671910858329609687446322086689756275597441301085348917263258341555037872170557604366731576033026656495413422716816122755335361933269561847519248021536996962090676873085902425696956998029842257727756058572853423423591261364503450995323489163893358407391982077436312812592839423254127408077674783286456889809318512996917190400118777714399702092041017713412898604365906533557343138722143506147150157816724727976061806854013749774525558690572894453981871356028665186812402183786243246644123216223511252588188800544543545468504703929957111162745915981015536053134950087895682871848937271137294787392684605395692386542130445569153256940578681584387538282909979514910898376527831873013975244074768510440912275932495886759128566689949373177030143208276307395988489511852149077850170584902600388788613192535486242310194649573188948258282457010953076549479651603493006450336274353598466126320785948050833002452714559383639202326332200406314958980864509883643470060739286512145557903743401543395546319146770224306846423775901683779425050564549754614118309672600525703004851199092714385773813473744829973879264965688098050226812328796692337507657414783226982396012969404107454342370701507627531661694821621626349628251722985353715572254079862195437567886170761175997293994167079505345766330280135226489857183460702241060554732537884970087174191436781447362098265515985228584863118998337003730426445348724969630401909299467783459575285389490440546001638205666832292480060531289906945335573693939731476872972142464664648767491939341059701162357057195876231848630500527475161598236163405617006028965408210415376804328710346926387729421583421352261951030410544609384151402194403030638414952007469468732441093684320195671568057656331311325904455847597971551128551439897399277056817652610530426752037808841620522744250573667900647103053521282120847878514321092563077661820524059216567702867055381047121101294923598370223464667567535514940778525038714311259281279478717111338987409826643145614319533244153607244606670216068630201401570795083893307296728577842793740838991785674888567033685424058678917226513645389676917731771862880280667086394894744583971100063790806741431968951330575566088560061735566963641692153622067042568706166608221142572032316179535432330444259755643012040199255399770408902937824959569975430602997550505081179487583245367952489537604258110347701117071706593804415661001329009585605661792179386344951372632662159347827101210597462547679134704170880075210858226761873282844019071030604977342951481958996627771776234997725751099096455753142805597141452545137848997877158150411903667704617090694007809870710398423661661541419073972677267577156001208643953560367203658822028125867107237442433622921220611421706565276667916524067408606194048681201258997814006402155766881638067430083663817628014746600979744306568075452986841665498674604192832118604521906089615333101227279509347669793049926783234321270691318785639399970645572342752931594846991012951755258997711513677694026589590817612010127644910796009157553132361914655553974487168999841168667681124876730958309250761274265349997066163878572239963390966180272258010482190009406004452863647112521838007321565410782609386488689906227283918604542889718740501776961550835728057910273439585406932438602687867755972388128032781445110555788994847252934726455849893013737976680459455202516726804848277694310689271960443378124183717139496226551267068913963917142464757095948020827244675797978664862447423633326584724629150690123266932273907145195720975641739051972532022942247574157543911851348228585722078075993456782746659522346748483951600362262460054791678372194792978064339708664734000847862615204209690999905890874107816245059777045386270987674606855140201945077056885443619479148993977608981307701449451479176415905177187544965433944191742992478630987439288107425969587827070500189568893426663014402275389388752091046901553878432967780204066054772818198529906774139253362789656903066850031314169541563740284788244215284326724703563314784612024893399154316134330791150451887890209491530612373003130507738618229118008948325774330845016783556530764597897481205609285622241464467773949510862868878607030041528921867447582670483531934947583284751245003678699412102996979381936371574743146165407456183500744294115629375609402205114172628070481221044839501364558181271137094974496993625504287057225499967513516027322707430016280654600917666220540793073533849563952590469703160458923066630223549000222827254659033903379225234182496602123873782781937281162701740817124023851748844971545200217534288464958679160490991786551557853875095961294089769039785692371690652956580048878637964807806318827223958356012245787902111435445556176075037605180048822933949829372006004721779490033092019644681195943851752039339703896656869561404403681295260606615337233928197903167514480908659840430072770202047037259952049821737579005254447900361986068988465750025735779649250522828667589406093333245232557191836296757462637016762298181163210190612666111077035506012911907716872534664180734243279712090692197136218385439594377261466420279786364902121501133506579066876038265091278046102953518687520760383264893639345213609955420541618125164774210316002601675031077034142174459127534052322738971412381245213833854109593649626153033742419519847713941594936858053417036819722780566581206254162352763715821320522351411035523849042332663610568889781729767855084498151338129003293343807605884785976019772870800198454228633235293417224446277821118595273401540229820018477655069200117046384283270427642632570495342659020164934217862950279821071849658992233409242465629445401372339879262636575046022812359586591362986402639210232445123087160478500985136351407427669619784390379776945354127637349213663782883287250363231411405425208476918888057320569300505331096316132688581268976352317073801842161587405818689679695712506866177454785261867326031508502705947566245611335878538751702416465989046691204583457515285658069754332329824948096873909680307647566701064607339155063567893059687879834734064437125103240565784310502660227339587939867839915974843585846252141754106111425869694033780705764098709542132586229668630635371381064736337787681805175538502872354589026919748621751579155141624933996011997002654789871290374506490826952186804985925266886452552423014481636878361997516258475456550536536574693525731447415453459802657273076341737352714550577953538377245792935202049661047936295359831950351539023982713180076873815398243959003153666676002668198025934364496657950002887694097288470455364636621211108652162058717256011346662666107312961280888150036127977405076811044740146566917141172895554944875073907192558463307831643912312227791652865881465617117744756891934142807331375396610829714484877946364258477992652953420767226977740828013395046579485811620877279597324751507859107713383609879981204273432043178856093483380026700799032795302005262571808754513916950124035636422779606380610546171006431310914218753621825238966641780095129720785123467580016658147719003980620386293013250672225426146915050276542146056553045820021979457006914690924362018329392116590806456412306266502471912783463710542068241686738298205663237477291968619431881147311144662147784612007024092193579895689318823482296396430000387182154611528492250726518120848014553572284383290956452748634732189669217797281986769223255815084108757984677466544067413772217102923677376861984507695559504634404202512130099934253244603613606178166336769493665582847303043621478460121782639766489808874156351225780163197247342688058149621431704128380981996316007893506598356515344863280652038055860965380136482785246458981953319421907221722421306931334454252389693740242942347462200985642487377409523130108305208131920837388505584653657020972963521480611390518889477349782903465783894530619880499032657162795561248739473271411754024734321644649945840893231034897655070065286867236652748781558156978509087738277209076990275175341733627583076551749307609592014348909018798853331997383110003763463048851774139633020641239926922103615310950104333722267618053031218603285049748203544347851210710564513187746275928447166549799689298598797568850935825409559780628388470087630525019308342304382690161381338017715037033673641964966374283316775444111173125829779911680349742804130506742163520092505065086259573487651069922474272883725725847174640831370960993558187440347132679724977667381233629354408313173003628951367573033608370816078574946586116487878813104612719428810886009546262243667353549153809477208457976960349075165561689879197621646332133663854417669782543425037589727204629550469099146853987017618921136996307400302564822402237247083316670863020815855705954853211174152860266310532465848434722208559947842314141396797120244641606599743133332097141631491492731814431712666097380792555514336337072078977503086122474252745097143576508016221472220755740710960047251876281009351733885548190929912789886468255554805971162574578827029191594832504573325525191362426100888287529818703424912156682696089442511164945383226737371116808333058097068568077997898040593466926156470151564261656341027629835739039365599487943403830143893199845858496164387696134767405215168244297832871014334397526977616266448220552261969993171698392521416854289483523034107640087986303957183835926035801009212357593849455262616805118543608738662353553048089070477914655757770917890296359187352986987195376343770183181080077950548568696939971064579974976791524982174114087994369838410130701100646011896578311708684609539389229037823501057408894956720842926277250093268085370755813794528215832371746419834366263497240005508643257850563746954243697480140283975537675399121023381323309200962547168794492856411889260185899340677545184246927452228850246620800706923541116373048237612832264193739092474146758668049897447298265626858954219362099064403713268577641354905919436670308515354331417703063801202361044525600756014686461510818111285081854389287738998249199955114150595372931804698219435183417449435438153213014592894306766177412820058685462411032996400106089917108882292080704585498439981167727349782697836079435313245150286924717041619622437292364444173901281109225155000058009459081745994287755911944652133274522119701014356340020337104507054223024174208952936719311218246176245826798723391710490412557788841642520519907642925454823736466001902145758680525212519461386548367745843135079176957255432823233149095682302750885946128035892969016681689497331136598221631401172333212959109820951075678921802201897297840620384748877405343429701546842873345377312817900515393513933473789619845499776635427532811525692377212983235580586919097708682801522686169818445527611264440745629233643497740951595656572416515565361743729447006128313874659552516617865334707727953981074995503214272995793624198967380432748129413622413966390755656673305054708062413802602648857501115913757768696201043066577876055526199759377061577188185190150172547204474726371171266476576392122510517231572127781967942245176266271262770678585081887714639853716678183124421135176914878738028493696659411041341464876265925002525560770324016917385941463917856006030650862720420690589524442278513421064683680436573370691951835724350215533632911876438651184329752372313603909002001526541853047996933061813225442100497465496790940263869836265575141616646773014546294703216753828068307909546148411802419100521630587579230045826891773584937180463908483886145761050107334631111033166343053905220343868923374008835429276889356857461098453311365382960190908834286663692141870003780308222629759012853326715044848412644367268655875185469243313152017576932652001991053078985696205857314454841353658019757029834775942826677518111576379599157544224086568200281673126097642103934431402082886858738607660199679950229481992754528742425474095090203068237152765442996467187929213335350041212017697695372993486687254316862036863627824785185304530970960807495243049178196310667646508558463628779760970440571084953931588739689318808611020641584099578863923550937652111027450462517020149075291350094132260889477076387206032205356786337927343197307825293443922098206534924597988882252879008345969955435120233582499169964467656368841099043320650251709936864566911488822926495601803069953484991229053974566156924555073076633088232582768902332155304840323623540761958347255767373908110981571274370367872494361418882596895768631877822331690165429824784440926545812537413691116248459273659938830035962332296541064892060225073713572609779719415682276850586147512148555629158281751056979205790341653276556427418103304543777084218210912937584220761941462012227991335826350126304402591051912181061652201978278382675372939294521319331098995527860597122752295910469797709559774411377157748156693811554307493237326842562400099694134082942933577646425785004515279829141244151302148963476732798540047195258687673521307182020376520445822612884343907589622506559155975700571023537604987695297641573583786025900040209412322890129917845754494183067332985697877722653348656038135269712572517049183675971114810412911061364470854908119860556133759677319188319432344557780515238982902492313337844964203570186579498899616253481174762410814893143947281186853108838591271885565046347234947730395977853177255613545440020562185509108601450406338230296668341473338944345590948777724726857575959236102977280948097922508253334849184495915965601772596261449935172739903592667861782619127192632255981773747945632796182975967711942679027559832849655234873607676446801010107821040027880550102012738884469132288600497731776849403570520317969206420761942945243820676223903866304435947747367670328420007025602647217070543839399648081177790856280779379862242289802779169909349627113335217212670221684999124552222387150828162640384137365080413005818707970488004550478165088506316057729585736145151230499449649698308603800462153475576433097618808426693532155987904496752740050894617871232358924661748054654348097065036903757549839518217035512871691383434465342393054615632174952568772300906309651997475823745937103004147926957833244024749659103477359274508892801038879776751418767888677882847397709443087545336245373491195955380756914969056398462864336216044696149899147603349615390100744115622666777106449491341302048931172404060014646773383221743604647594403213061947396817022093210039404612961401981120464587267253578478133594112059633168542642190596810488979649400046166338750787492316785960648730582401853071127704813919821422619285061805803382605153449507579669297863860296613548195625320740742232255394136174532307516536104256578064999537152997010771516064155938843033564535176188246989572400238066485586442787169427772807912499956152126744119963066742145708253939255440605523545363284031675212862313997590242747340511344272982791075993009370785185287603397075137740205613552886778806612042004404293156226297580514862539535097831229169867780269566799509432654630510438945217705470457742553915178078422675996162180624149209775597688195358425115149914345057547970237841203889643600133588551859105091291519768780749436801915427134851757365430822681583409025647426657327701474462033624293894180317954000609139505552610292595424158782937839004719368041786336166004437395772504709868615054753328347113803212364182582741330578231029713369221479864709872905955226790903722428608488561893429613551977804518300333163628104922173924396569363800088852164637266830332831016435003302584872677454048726289525836457704111940326734585493153540381145323742592732435464453216456541286564074347950773468520832795595076501513570863848421183681927482413322535848871991049057893699886658895975192805806571239125139698458123358626594101102776394008043738183967401009659020899688375406139648242444579831706767954383939873121682211176985934036790573905612325168424778550345002952263616544312038292322737540700278967662186646927043975785877027801307520403864793876567644318807801422703256747050676678627605440504289362290119312993466061126071151623652175688757218038548583750239237292418903227371533814875255576526925234517417217191433106009868484977396590106057073899689049148339573315904696707634124516239085403159213111860676712482249745261021209410678329661850041948113397590323211252406397346095058991750452663047560305997086519382730150952187931318574981738329620463999429653274347339930904209150030838247594653979028355370245436092369723629076895084892342656302934176942834391768632647322867796698820392205140371487119383429220431927093882489752285786628521411441065252663031836237418733163063116381124963254787504210299203868202659526853090129979708174182162542355076806614254353382778381208769294001458224495966496974834540044529442654255278559217153687251634692633252116611861095249564791718701221106458030764639684788109326192155007305250230174167097515381296085577019414704163065950817918530883734040683712895744495275577698937272858781473000555464768797788094918898926918396693752226789027487351282479060576632831867072619675721274809764067772171494893433274991377498476187684328333880542811088813907338588753236594405725354825578553150807555043247702593457833263366682461698165705902421429343495332025925599163703652530291030192833792853997150913135236996898224281736910161943007906139963268472257983084532910399574113237236056367845595597567570176620050468331249931676703431736912650019054870513521865732479753242863058849779997191487865120379637311725164286007931298294401766692509876508980905575370841169732371264550356224446825847187857664691120990888917909758335764838421412763168586596422295840143431952171970230794429358588512449503576540430690399432809582894121739872820658379926974455521485034645403409661843328350503014816701533668277436900202298955323428516115324371383070749426987423800559567788398814008456888481250856578498427541160905003267542689932541717941407146289217456927892202857459771340718204353419323611221560257193997542190653502939143842122755997253201809981287774114033700624699466668792499251701045355159566656676640224735808200750841157303644520941645800837774566562049568201522819752036558866536147832572896122087499612450842961165334057274300162094445499273056104203806681968126965505321958350533369264254427141002125568649527247017456300697562978182354544888689304301176285112893068044882298547493999342291315588526959696131676674983189053066389911357542424770968218844837553331578625890415924838039121774260507440858477153469846207688320576094578349229198282283130661440731348504084601677328730204264015292834011698084164554547157081663055689262794300265362719122194034142184684287175590033869114647007895478611017576313694489407420345191856484377454863790071833462364181228564455980593570740048792408168057024225530832316816915267028623992150794088750135242248582337816404236946037521267333603983484147278281374707100448125932109258499227709052410471568905439429769252248320020881158843595782436463382422765663048228621889102715207931058206987197632996226158199907623656332282310819588827886530445527712370510238681493859327827722178966789941363888192178046505829541775167683697948703008728930940811959698357858096909636548027202395335459591148597592008626587634683156636460930462182152496860244824867793575145547009104728049558244130069097689075333973825079190126999605342499343255532224492596687923827140778539680474615204525623173183127173110266421107946500345514131817713361199358468755021575887127017723041385487933784219282858758288117245758525233654923502358228785196092788123281991057719833708779200728399767134788274380086392386675782842991145643186157815866111592209492849774014103728975823582338531880010482228069738162802860033191777758977081692666145429269451101737495516810560364506755179919976549706452259500921373069866311860740655113332209134508493510746632524376195291864676557206154804784672484592984979012368398316143837466015553827005006958071685266890001598715824862408685325231531962341245072560892089164946580042157207996066777815695343366429341340040937375385932370644388500265250592587564628992019173289392699182659621465879600167213789037215336245776283982056991628925988930062361537846568413963500456951890204835075506038500122430134103063822563584657700807830270541157333986847685162282210273315387343833273800560386354636147902506744793568950411672408511009932213706255320519409445416812024894616673738411929738787638620358411287762871935931623452240650897830229666372165874336917392560226277333270270940755169317699733163749600279989505706880679056072446713889821740080503027326851919553729553069238946257460089830953347086588529014215996880624999514804642092049354838404834903331423157542912206541575317806506471024994550391145188132140732552334481430563397365663353006411293314847676380145142671214737778239115863773584985092475230461205089633438296872141009498977149373357580486702248171544554955080839867135146561162273578194842576372612323461413446398452885151720822097182507421846073062843305377806197065545834684637162598419928202389100696987121676040183360188977061410292315260537021170756479161108499879922246226997794416360121043083678416935928580956606396205995781447689731861045892001139981202575311261781452061934665491094027727328281934854429775799757170651030664173967786150790480422381598312701169769605993034060961820818852525545760021792656821246537973293688055660082303221308191852157653594920289182716062077632214958917267622422978631281255789102574561816990960231666712297018065584836271973075325530142725496986425753198610081584583287879005115862442590417310921882602433025100728474324142698321055893010359373408904368067549498986089401815353422306630321363904459622298263252703839667723740365920083603291991569825887935746289683550604668239400700523361145525145174355197974758917040145521336371201261606885672277406269133695834885224639898972729313486103095761259386737786198129986889885620595628352506116384454639981668046099761533499232034386508732951653828250637243856690682193183593549744961765982611872660750021102735784434012515877454258776671283429141991942194033236289068343519828377243770517561491981838157736952004669103704644272387205224178518329715843064494798323273232892677214796120381621136660490064692410796670503483771553449408051817126442112656541158618325119457843310249031955992980867262602389921529413751455235367237474194313235416163877199619562469633515351825481698213834847090603496318782657724128955102091352104107654866790315261198771139483799598745296507636877704432668664189735944302927041578763974945751844581143869752627391656506748276406855019366257873297460134859909416565643053179292257155765790441961430532007625771812537977477305719944974253764458106181272805883617828509037252974777816263380094178411389165660835010158501496228099973730619367570209495351852326655768986233653858061396856990554954498279587622834598281571375860507978498250105437964463021762562898155894622907483536925031040778729561249419230859161570174259912153542004181954933315356868819644383580251018252003128828079102039673119377826300380627708147967606925932240168264340706486401730729085230193288981097979830276917206620585707647657213211731982565047352588109695630399656022159301710385874845089327279622572946454427853898334655259130925184990472494057392453191707975499106027321479794069072312293570298366393429177825925601657308783944358258510932197791235146794082809438625070080367609174178125366355965401065778966921096538597404922943649805747187167713730715841507875988109779043874019353592318811978635420485090213097831604583673444439536457174687309462900487518956698154123085352244627393358183992033738187014371679573843971877075340953403064691290913370111236022328368641412011076735560859909628122568721148849527122045117528660101753454546674524507907844482511204212353203585596820345721857240214993472822125183268937012331015862803643405536866900525821619014150699008638250651020865350727940057582126893153869535188507417289878110667025023350250893417617767491486389537005096286150642422705142800019590371260387385816472827931167797264000956125114161305669303690104649579398772412800373793254285699339214041096327449630129269034796173211846424413205331561511010489756325200805312310013802345797995826177186784453386542802332936109828975673272973895140235669090830378100307041623171842417464483174576365778554361821773442716097208279725709087112550029511592678492327105841345180089901469667429135270085184513343692142455954074514356687195755384549087570896712933004430560099008415990635861845427463244458410431862615513289325426379831664064654292070237253899505646990106658531981756631394871750993558758752400180089332709487705894999009512314878583328579282727587534223945014594405212245840987474966489951535740104516536779345464567652932326412521887743107300421216295511522723619753409953337928842335338116509693830793428575908962667537082997761463777524269523868048969225778104541225310247922317709675924681854220188259839722966385703964962145143417494538214253639085051028346599490214463337104008799929283626813317684620657736361567398122454714682849925919162569797837677404783780862889602453718707992357705995454463039892032918753351418242721252997539324475318479873815598123896792180412748681526168794236916006813581437411034535661755466795195162283347155181541450339305802080210601462660445556800767109854252111112007821319537813152222735002880128426473151239044914720759744758143327610451232257723983377848758226429644403570080382520290161878188478244236808575652232129057529448782061139299604693128167925576563715097081342645869859470465109350819379669043907883489596596740899707804977624609321958821279112968064107397186940866765283705552333890501170340007178324774067873937190574292202088130855895809555225681366403411742680654777919207726755295739689505396029723067376760164473694083090915696364423080911725781110258835264310520874889707628783332969412302674927564424258988311225370879445561670574755584392667755450725416406193605034266500075951129388244270729019291216329586994312460596523131321321388228760909855191801753051422835928703006033883480935383591633718133522410645230770204818543282794604999715817505121748659662595816096366999704781195591486377522723719082907685606364300909552060718510711168247892353314629335527488347450991770026599983089945919865771846029860715516898416848235904752881432314347573177773400094289093690511633985858798687312373925146645927570893749303387601703172424379828031197521089287075433747283453747567127844886020184330335866417835481553633355499268167975515111184674555418152700876618148087869165596903231648778136606231083634455217148160707601158164090822657684857578600585665701505275838863827862559604687598979351868879179195899586163304770834073002194935848627192981640131004851157217758320667501499700013052034791435279232460764353212420707452820782970312283319572542324249166530101682627723585484145984185463941975092712497998962211674626721979584842652611779008189614880733650344815239496272578066424071896885385718223099812898192998256161826621984378960193610012718387819508933250649238353228697525351933404461411850952558325282518826052143712706021755574825181281589787251070627956071729144421555936811497938574592659998849009392772790583460179402884606620312826079773349481415987728706827945058963010914848943462187661850851071809561292206318213898257836246358758184382715500407232458454236118673261139438548056890327164345857009451979350697836543827266245178192988471189002019283300908878973550912654493791705079121948062555287405214460720528953657558853471237187210044160759050726550208831794070492939141259158772229903120556014521227305431253442778054899363375205632344021355243292746705218246518573140281228205936378492988917512372874180553992790152255377861155512384971370420836719716730224881316557082250702921162708681821470853684774444235195379067195020430278725938729144661576691371805770069439903249302624999622982647998952674651613722755933142200602928910730097932776766074257293682313016253162033669002871750616138138250603173081576505643464567512429836969129712249596824517398022800362517157384830773274030589151263440878059269906826564902059202393149365449874269884021693346380297902521319224585399893614018447853822220045076863768636166406611976357119119712450167930446343052477345325947798120752238688921832991643183331523395223984983895636522398131665770270070948002791372122561924406403751436356129775638018838647944046637926346749391772984749819419356760794620718626421738843311039864028295904547988965203453382140563879679538305104491676256595158230104742993242402174394953004813147937179750865129764469261185612612726358436141881643931378579603066438494704549089547116424887988867330183499435845043683185694850618856462778658884863975935781188099198396038442278486458209459321344391687452033723169078028873791178261950987494690578971337182492581351161250694526159904250470719220386162682994204107176638416676539429504370748872870096222565120897203948149233277825143031862647856816503040433126865502967762661785145131650235146129421723113803466259191987122803893900156705229252489706926768919857653875583673040405561645898519866852318391961862414399930161820922026724182476183524406134781847163417997201241645088170677726398568022174012893554182840744594871802679529797363003067495254755488520580419860305033703663132892274153575018899892265493412281146658531203139620409953220612295598279046167823870232117191235842158626765066072710073364133131111106048880408897201239471194826766973076928771758858595597147157035373652001599219642612215757219414746627954443353717546834369696985136282384288732250432796386925111046267438879828440137016422970290234453272977321058304276681977372612844589497048415390875020657263751809269257126012991166851692361812833122414024414830370185317818721219431047888464690476572577419733862361730568200496532106039583025481210468676780743839520338121333896217717827443805350639962470328002219144852151681253436291317097221085798128272828401409590523256911498754347228271973644207565390510016351411551372834540200021478813368401229447235578016074115764960258158380556309320935818252259898339637635785468729065732200128324605646643660904196987782003437035207293510395372148144938645331013747742204928247698159030672826773374772844199035235250258091698748221471904526636077454081106235582722322251871005133266928145182675477457721418373184028104100637002589512567034930655739062519033671522958460377702506436978609611711011793617371944670795921434565900676251956234702954060212725917698708895060534300853250776182021308890488528257834605332636099758440497414764606588860956867383372940744166701934575737296789965320083207444481946908458625880735407527272845472157537038138368484841514021525982478524043219860783916708948856809398544515909749613255334674550705333792544609687167845215281307843680363157783822375447857366668081189921160252374406949897079684016159592229771948465043209309425899098858240824137761801425841762157991422863879363628375969895310156513758816610208425672716611709375005882830419520224518745191803794999781692343183080024527557119420827012123135671251009791653343911366736463498871308964166830804135937616156821074772424997770152792375571363379781453871234416545822386927624895518166813433631984626337290971471061407665360016285842522123739677611456840179353092978613852389142812142914774762300510555187369035961468445784337936763163888187629147348839128072378671358723818568140877237165633013834789476982715598963923447166012623270069094749252012460321581489128020597919924323635755194668663180168524474697789959728372557500612360913869564453973987451304379479664389094167821672587739720849869817532793316435471742821943442567893620044024720622079312729984579103199187061507440055849383781604462590577886350709918042783604835643304567397581238723187735181577182128133736700703630909409065034772548508568305898238532036637515078292866351783951193785590243908581482471538759639704456275980528279650329545571753037607667509710877821739567465863572875172071961303954710534643794098735040838804347598918144288871756857602388691617067943386221041908816301933487951905889177980827151241059452277973594910126828645490946753908414713333009115666225055537931102134561490274429355568924689878627592598305694324866917404328243802568747955397363636400217983921290016584558182503987828489158250362563505983368194133290989807586823766524854944397815058271748354810114149493822029380534907389800099334218188981827843245791679501046470700801805555135333046518659476321099379204390281025325136171479034509939622020292972701862534415951005585537754653329401125484663758181762531078020500865129692209620144282773272056500682590289337189461481668002738157844281693109676434536363217098466982192942985032023213220276414647331497060167270520656876373982496662639636362228904407216908663617137702782782900228124056968521481638210656878836198202046433202238104920320261794480259719341087393106161696180859974655816268043771227024831273891514588743970696972546754672115170978443090053485931483140071366827426623069765080900028688680036204169289490772820265523361279035704434912255048514458712227667237677022765273720918209090005743862839891889784376020047508272938537171748638327660407892911886349743205876998122111814256547534807750369697959344066868567084810827758229763383024147203440467144904549457864779580329974834400340576459682137691775007647188456620342413800238722262248679085551094691369683214138698923713817113319283242645622760720441291417340922396678898799850801676041621737994753598439016786519604020613637453343549200633329382431908670475037333058750584118891574829109798172652014875582412680891497122229805823902659766033370174264944331107603281801304924026446512174476577853637149648485180948703453188425847423289259371511238190618424634092043629331218202857834101820386398558492737428857473353379559228320887833734075526378310989748783766982809941180993496880014498189734803810881282280078570496329121775587048110036091104040359845170330131443336841230048730467163598496658507173631050156358293042590979552234026038728642151848750452100094982280229710919714865507794377529622340880629375865053530507880402450332178635693277430442631499221815545267777476288137762568548814247860530070846735897011115114629458199179250287451427854461303925041568795657576680368088085774395507315505230577147415834551378576926127894976642418226616690999442186917701070253526640864067319464179894099185593694113411564282755755777023177553380826226825998425149121373901398155394814639053975272198699739666090054674382541617275358266417519861982106440330341411940889832141945051880067360821766450112052985095144189801717688996884476317609310714063844802590048376424966254012968456063511048908848883562565338219478612697754456117270110526633476982869000777914133825983746118501532417421045339406797714086372290846897143628410358808973073447912295545457017421434980262598312022315285528902654792224208458371948893546410758729052080855232378480371772174199072035997696008133846440201355019184408646979437034015814705277628007048479240013067324032767879457811198495574128225017608603463830726217915445051361999619987897157178117426992382426475605072990481111614771856545900807391304771121130343061328024504539365530712420435064608894744027951165658336166928772862990055182832327413804861023196078235036594233249797496203955517010089267983282126692010300106691429772607260620174590153991716936713116276218531962826258381662561034456004518592647627858301613714724152714732074078206885890806226246806950179938815036523259988065088450830306700067696363816605254934116775892189353459100116619061227519683513679236634280059243415504334746240085873056607420511424145526402718685236793337968808540053402107334636390187730003522753582968352430865849673684672485821280292407104191843849925688669921725240822356770337448894914288263630439065337603926521624569362852965216576240234421038610236133876662236266420797846215229532433583806103304469925677353219514910435203877024150654397101052341625359727427877775119045696406884736999314847245575604515279991712357372692625693295479309476059181246222188303645452236705928044688002879859908524560810294880308100995914655178045823366475007804160224845260059193762547053996595026471880456940108263150232960688497785349064900487919588931785370835566459675896145784540756039664835055181950791682313904069667978798977802551240267038964831664249646657724176452594175730956339725065248744011376930840414947439197069739095722184489555796093810908998912248377903295741633709139584280691741747041884170621305937285901750320330941451405101096691197824570536540246704680582063414605939724264082191769565607444901269271422144857187602645370100580088317962511432076131738288668487315996410283402606620989872690270433735384939122426293998915578903290975450181058874574230509690854687687660211599596357183805054091667422289253603404070231277572163221984828618209754044643996453212557762979939651839258872478689601838588748113447116954771301023059245515748107850448018620183833809143558013880814630348967250129911732520190279290018502407129019080851936405552864197057444394279187466404223680440180912202600493746964454527658404629732609202981859552273816221597300034473133588269346660747186484145160761532610394975659486069779426936676368089094295284491761575199333450316922095923310198085496014973811664153552527439202999905530971068190952129684890728401707471497384411424146248813469776081014797833398667252357711864977687957253773497534976279125710303793186710694575530233900936235416516254937798575345327122662562155489973587583780004564356970240550602794416516378568565644800730723224782589359750323541103345149783784703560812524789340120892783822639815536640326914333687138983541750147865485660204448697287952933601287807119586030324959892389845920090967150899976790535476061409935945730432421772931375458782461499447986988114343784978558479702089016275353184074844460896960120483174724402271859947630458820142410055106975211409421996883441864977171103605022252641644220019834793827096768683988381355332154422867580960260683321910741086879061169842262390688807653550525310741665975171400436440375824932487745154132439782276251956744988522101832087837210573904863569923789832457043533572681744888888972850210624139512733391377763384131511303483595147190327084827727141227312540030806465276659305536788621084212852241499794488331318239420416556608826752144484468811066561836776091818484866471448273091769330241061193115025488160596476653084096716712549864674686840877348676892012443109166529571605756432780752019843264978611252025375368732796772456009378136228345361474130606036058804831604196067973096589611240056243598338461372834694593008248215868043924370377888714925395688951451136371128905641790979581135130182114929601403388704535497659029958371369618164836886642175037841617256965734399046696685066882762405675832903503302654404787472150367156796753613260241906027381801908287286939329310127205095662697078930945342422874143574845453511220689928965898170471695365800004332702423498589403797890282338219239542972976130463259666592486432578089148315819555932304683345101052471033640129685089158128681554866163503392299545278272217229247381246667342322838810816699294238863299122579619347671074535788517338934743468319111022921350671238140556325831298041188121226062051438855404654805294042770884480553052337129386182069942044213029918552231200557718560076826617166192677207317463344324022753528971061706266943089465301734734556032689986331263172504943742200635752234648813106845528847767378728838570947966992674360085749000533096202118959615415521512633137369215897712142297294730956173853607258764933145261530436662551960184044102957078012760257595810367544405739711021901201068879317667548278808841407225430723893424809381299911897432703329504524300289502122567780557891096359414073373162606578478938860950692762844963484513368074727139863843592170647082860410554167790933642813470101957229772491081194843107256964193560469576655768458916301467519914703751350967471719991737643289322057124129090518357995458674030259976213636796232512825634760113538672597395225627215960696576039882568541518188388136980775024751120665763602152326918434910763762930863732671292180110050673042474754256649408248712909150454295994238461093226562023468845138517720706918782497277993696734230828598195719146253296626240221706742340555558562003250084210307045871242777005467267250717740830708907343821448533792199268049415011641403340747519866442203177892126544212351245363746343403022334199935521685438676410667717185106991183382096240987084610388068506360842408263450365674014385118870722933216681961125701362934213855563795337400140561940004428390727063933048204134893412202327670391729604835581626400515611915312052626848829462468302275086349138628183957841590936177978611570214806963196385568817793247648221234077654138877273798457942837516891126649364553209067251871148176149114741325870461274111546012208729123989865150794752607106300404402489875253116400680331923359074504854930913782760315762064568106050373334548113678651182607286597522488774194244436498294358043109387816254758118121547087769062557913330729254695076612289158446910229521327551669179179604454611321247031798901414268409630653330126791871003580760440848930224693414836431340815909863252657318119284815408685480795634286337976737526919032547248933844984841334113710791284261670176586959013341269485195305046101681687387021453583651407935497448538510657170943881567962339177469670606776222375862548955191992955801754722072297648109445683708491279551598860754356681886806800944344445037934281386563776604755459210452229802286744082825688601465733898187636625902830020275399414961824621304605747503412815796751394126337004795833729936695044301854647198087910229615662019777637657566580902909875180545673627184239837337463769407886040157745148904109521280056566457991183712990824735790557425347908734518791947680206889094831393659182055777726484219340287225980624920224804452301869543459232089621506256728987250177596733338660642388844515637634786727588074702638437500682716366338955022693827490054284383131064954166312281301769731058370210733020261162757483548549152337031058782326605644044146120522050192792692442626985274663729297550928218915628992518570779505484436067885149391454727106341029894903999419106265558069103625020985736733125842654239741809056858219474967578400418419023569086278658072442627633262483420574811289841177607624194361928351217255134321453959433684165212906932398624051833993062064861347909753149892305488099593973771568102171383637787239901467112752777013147693172686479045243622892668953435653059138130250393385786203431921910502362917300562279557536591267607332330980062944717069947284412268071854140190029063188742592994631486070868407265614886224688151057951389580846298340001558025950345637968797125056597776230917003693898063390779630015935482313963973503170786768171851306242580198628365788174578558241478545394331039390187605431666786049755276134214442373277175796326265463411170089096434412749412704539903001044898725390344089750191661179904888015810744515582803368516059747753664708771432507449232674085122421185989411046516374922431202476561800467385397674417784475787713277585254592469380508904646975496159248946668217243173743398952968244860752452889291547779925241900868955729754059566144240039890797171924957103405965916025993464584664277214270582292586780370351158068296996619994386025202974776815563007073238251992632821230966877971973521714418303839527701181280450951122897376034889047341489489596186903708725645043975805204307759540245495318744523699729837798358205094659218699956007717460924065177642215163759857689631716483240602499274545062160385062879221513403205496371781646851041943237472872456864619246172407018158044676438976755060956385055686501751581136398132747654783944728702967223023600271566975542013686344477719801860145246047869840421814187974389138800466158821166191960020373186777625580053796181842644357655458107323344296375756590895044269647062043164498322870770138479319368799745372396673494998792465570459259846063861537735234900026775634746179674690338985416338765978757528328567226892395873547655178719596052143915266256649091418674966583002682075265735655430910846810107188553093596638591599775136048490297299072174952162396610335982420358006555890617457059213316207359068697363330385118960146185229170445581952503265404604080831779398717252299950751876786053232526385066296015587610690234004365799155967975236900599201473028778177381724142189291109106238131552638752666449279965501180040103160052397140117368551784440768688784852339050801090086177319550453732217159421373221582078226354232416280085080738779545739408039795314306257811779296642363555016752700859664005119045842960435586815214589209506966509182592691828610844362867763998739074904161084761355259069962835308734004377042929018946456717684016282165746681294915894648118596987546291064236880246300059560374458361638335187160849460388171376029175925646396382070429492860018512345621068553245102944019778724872214075859047447654241805166156591172262803398450843724148036588187881385058476809301266207746815952122753577736248121545577663952324757201171171946854295556950396000236239069133488494502435057050530648539815648771499467305076768569860973712689706121141297124888146014869683841976781601023585111810168944526357823000066120675193273403916619208864538962286215758128814205529438618258878698200099794528545020627866048734110148960545763580637805973034740937718127261961224359843030007472913349653466506563059380891159079702249490695756101026240237964230496287758644225134697906741516762183679654074015610671826493103364673445125902702790104762214930875536472375597239219216228338536470174743557019154284853781116476245277261466372579797971277445339860535627581209464937609818178422757786206156462659296839210958914015467111134125446168462619986250294656093909574482446429247984539782552927508150216449971831190093754474446546014822054171715659586134848139145496684444397288318322215391295138130727501290159246815948798412910902462433907671734145627724449286184735439524346388463190724453253540621342013945271746355069705573582484295507420166465517917443193255345869642917502981687328781454867080102012602518516893290725734341247901145750514058698057934423038989139174823131470053848993402321310739821160582863975378605081438218174822388556366715457136320328713080337115769711183706454779090772555451447833065871629786371083876170765230883865750503434141109158651400782732297120020955332062362865144204845429740195464407370273592040296505170823116040760402108555785590190418704215527481226627089293317422214029406900582101428299517129120758423506726747025171971871227414074927455687120971794191688857864334926694300982627997972593788256222477972139870500743945108113306431610718441296846082605259262337716582955645193932499780586559416969138858412739197042833136449599494517863613991395659182613495130614156701179563573124884282032701980945352916793237653147447341522529084247980201472837428518776195720792858675542720025756417469704315346959777689013961949777385711673695384138008859926434722174670791266312720125822122947811246740732658137784693887148543746751303249258258321199011160700447274917976840468520079301585891907373934023965326894795571252711448251356132905690086010920189518653618169767656668997520504997866953957168383360828073338879458982953870621212159339914160454205713141273311536182955374213954928746555602825497818432014242765492803711722456959201403445690508060524855414128368771900782868384233194858400967132881035859487538305343497566406430433593256025911558905768274326425039036770853935897906780623164041173211015355368320631179012755775252422656784201946040602929647926674274369341043589935073368408006486137666799764016689088924750485256734289790841145567945415775658175103442150969294987550882673506697867238315879620984360042600502104719478904209570511177460544113574258158901351676614183475372725328147516016251331674032574565716505694268487027971457388181210853576366923640154125984914722720517435844600089389867565737845144857325664919903056898359976679175427233012147576981219246684862347202655767607081858656800857732201347863383854373406110637873068573080132379376972601992438265186799845387597494962711913270555779483468245865683725789339837189179374336951673188552636875281249599093868329693535541138147876503314404721893448328796869836814903722122709586647468034104632506433748012439194439932012573459322981196315721568902083499961908382759205353976721653959160998324252374381071541632447545346140787908897656240388131213539506699303282803124886770759647678942487762804266219934351711239151883622067451824332675563546828005521365349876909874837468624081010062516952121279791387888465220416962934443138860558609650755438310410441312845056245072456610194069838418677220941756860224543473851073813941173504479870038257149952041705372029436870272859496657430323413581411838539233039693837978990816639958281512523589706846578779495447898130195373991906655801932337920337676291603846172828764404660968923691391354071597907186695552179566196742586342102994104427290613324517193564358434617812411645260008971138245717528461769445856198755085269105022124022677944053205502350626820993757692154312685020013619273526980591631962516467517431397406040126250378730075523949101535726286571245277866044469309871925760771401085080324856919819912861016939924293945495404030949782865252619425392980533341334152392844895083937612969298082914374986956856760192711235171818344904927599960981705785636118397784622990797097217037080105084210120882863502352358332984972934730164513310145065591199075085214764189945056672338852704157653855921219997119964537856033189123391831796518895940772875111363565356709825390383791576480900437398636264524330489036654188785625057882511847588159397045091075015549907658129142301473645470316315272210039682521357436405897549273998327338662120360269305241940217976314322839482833708610881439205838579036131979670003085232585750035453569243009308492301994758152756950960543593697489439568020324271448345788304805674082311211451482207600508570250540014596687398911579709839391342510674458212308726580620624913330480893286852043446178935810880216711572332478408227482501094459016115590069976750780391141888992861637041723604641660027750168570574850337766224377304189955601524463842631739582899490904499065962257371944972314184814152734222414465025768512015492511574438942676699884091235685247120928185178567651358809222136430464814157972898213402979614126375028856662355506015885878285980815456300014128241487648987737770250013031069564323873536804603383045652438094050802231926531892607324230632702711078460726959941009194645767703751308592742418543022911018731866548223545229198667322279220976522000643141393549613684788155482045712345294042033058537606538688268866859711006612089525434233159303815342967770824443636248280682070159543184235160865563225833763001848685398417979041734628132764803657581316676940580763654288871297543029540915342109885027234225460274014640999351011038015216780477333479184768446474479906344408265941830089218809638590477224057602349395702258819099999161235562787714309962827553639304724778226729299887599102933509931091449479043459330314378187556857054221313004182096986301678975824879240426781524583985762621162697786515553021774336603752482560179421559852905887742495158143470787073236754042568740054841260758983306556538325563857937064442477282802124803260109644526121132327324388132082550888902022653477561039832359429403430452147816467460131962675009309891530974609925528131596682935755400030460732405720333380757861518733589500263451395085473093445651624176056121500340649830186075536439512829117936924734021875633627478385244480171545492278446979653511875840283679327016232395501838510696255849353605375471191514358304554228023127251608832584654199808517374644785533951757625947880201314965641806293840585629465703858692115142116255749830636036706673686130487232610398915313817622186426423600663762102666931061913667321454138872497478916191655763733670862415304048493603216014208259079549321629832576543274267518929261076310192387653039191785243358287796894419762250263061207463619168256756011293116268180941688144569520470528519049817207878339431583903663981329376228690775767961650235431531287985663292646318786204752064169871974477416542653573598894866515385336978745652318418560335240016318139915254142826878391065349227057025841306853942818772643090474501330013985250557386996720555050400864611820813968773648779488853709771064736734696369251084910980054456709729029514511184195758193772393887364990511589984042051997679646547339001004036881612860266781067600016002882824285981879334894692249039519754561131406089768521820196972701423148698105376415222637862692870516245551920949166672184883499192814790709609649598190020098463494785005792054331280436839234353520064027699086880505449578491227248832097679670893271249307857975032557460540441377487315809668433621298641357709776488943987180754081843754873394275812819716189243476021884655478550517000690627585518386930432219627218005942521239637355138547180041208102047487831820881042277944129872195651684143400013624748479733782131450539193315463849328485558662011862740766526584086047588636630093956803121685533155388367861700406892613481082134218003547500874388434957471574720504146861389033504355905645009533950344603821987694026483857507511387956133482189670533054102582746573330186706285952960572903785502451013744665502741930989706850167970526212361894788128813896735476743147833829633942662386436437991876043796160791367009972809166946448524580640237401063812445934801817057272817700889180871775731275423929252590403042127826681163588630708664165013535400811881757652874210447686657593061129543574913501857725537017645487627056005351816322375657201080887528260108743761101542700778210224475272992769694245876418914982859431427471570113270297809327074498129255559953196257788066468731433409400975661818335871268258156952955849740652466107792408514941481400730438108170626153819358814677087207003397281888180130305443440578524007265290547423325632614038958118644945490256210465016242931596073484812558174558148593879030292635791762523733379661558180035492049804619323889168587259918480149951136864512408069643929255362060452650817673198076665826865198767677555049950355147883495132510514817620711553301038540883305140929114247489158216884803009229655082688645839547129253047900041071218510221074830983821062955241548878947508935370448233724041890937067786227942010692475361102720744086264336399284862783795406380888788303588312430880797243119424594505070786151215875256748178738495907161998260850421493230497990561476883556030144954600881829631149078293425001857620126831713332615705338297193465366536568581227082713008208605774770980884716231966083329585271158098234321816913895361456059948155485626246880349931473820995210997349130388478083056891712524454852693803734558038159125970412253073308208541474703378288715003639787594500467504461426052152640490152117775782296065889012853115199434254159499473201888806666885034808674568006291730044324879102884917890839116011496100676713464065418062493430152913113250171622304648157776044010732162120357846182275593294335533169279067884843217523500580257084839586164634069645866216794995862409230676267796690549537174173160585537346936795594056292741543260933987496269936740798150360916783479786815011613039453220829927178125047085636578088568561998704910181812249862608928272080614783942498729553693235346656892951005550769852315056353974902648715086294861244132992062081139044394448745558979519724412911723718466564195776005913042969724738576404766902332669927424796462750286533291998041608787355014952506944505423224869173273161229415887417663131691889284990313755151123165982553046919596635550960505468143764328909214100579329559125990257105769570388168699411210179736941541892451604358655506819787664334536086174852293990639559825769217126704482954985248085661090206908995028648150769790625228371613051924672410107212207605464702730166140874885696516120946557250434573097658122116405505843479222633308461587024138357510159898309748583139840923966336506965097117600677999517525168227041260427271266767324521406154385113645612249063669204347947774507960969474603842145774729041647316875391058610537129112266827234803055489749682872061211727022990580156807450269424779282028369425494968711364237042544010417974009246185907519741730230827450163626659420490117596161235515966981754878268502384704552024516737392939428518024213496957864947875595826051195970604298425672447806949857041871961292884111656007302545912481161000294605652527494601975431137516820340597063692132732946182929697433053549739280211073948869068668279826887443947263211875221833224810619709732298953995376231355375042060734050749598789569043478485897431736363734747465087926623592742286429233857103652373553976749650948595223999577310251263101309753593794213603481274040211881215938148102752603161768190836021618043054677444702004768345777139184444578153389840349253584029489792649468065419860008353784716544381083992554844420594246801253540231139517628434276085403629322346986793106327222407899422557851227637915213766396518929536703933461107657928365529936890124230672636650330129294533548177692547326775510682110332412664362831085069429161356167799765885080327735243069163587754683059020930808185040405424067654228036465682115911340555301530839997397927871514171419695235149529075507533774483138842298974766413460769615381615803975404148022021067101023221534372989016031583971804886805865011709504977633253860863924890391292070049072287089866738151704798818206447215035658528775999595420501170949559535303116248349600753927035750317346146063330527733697616187075238125179211065215902448438380281296182929083488569994136991197076279652554531233081372819618672814223654512645523537322317875670426836905937353408782482425346336122837370321587816639883197330826842326830301763808597802852523424789902671851139359905086981007960297819620990022773310538081410075611340878345602774107139554709998702596000839268140281507978580348854555012428027041270517616770839129007724288110442010172686979970984860161094547192510160168196888583607120081994534792061951947338921869602762786767865372149511521837828921925228379498053086695043063247360295513265232769884178963992073805074790453089118231512080492674427697144597467266577023167379594444636645596746105434098476607816097036208089389478918826116726557472607727723502623085191613838315741586069876574186141158014786062791551732364738486702701852306517758865407086753311242839274083816265304367368867679092070154925849726528293769936406770796905841143698006548600634830155082307635526484973606004500023394875995306999826585143579898783320303545209209944896683934626788628948435811566123048706670447387631628158537663111939921632935242766026699091899186269989751885881416426770071073502881720332990758044425142165410137403961903444423388077261949551984010636107545096972514977501495176455522909742301752079918928176869479114133273775279292392453088638956012350178181522826689837759826106110119477726400520143991978572190475064880725818104087987145137404207762710298884328597880292417943047446790531420874900547516493153740962689069297412236614643513278711630595843349399671616406550705958184123291998462513832776049435942057042177624367246864831890443528623905320425106518626414755911838229147919890962779480955228942220422460066295293592295282077526093214650094109890808025455724292038410963360525937052885792687458554155041999616514515375343002960215634260591936681982237093009087000362472502032926003316717145950689963191879275723064453396993179902594439758759421769687326787409027804480596056059068451586469589305146805425548495630759744217729293891122677405113749076388752863500508357135094119993497395504450171729728759251548506413637980478036729842546865723127216675514733331564920146336075350231504507002638923066797853785718746075453085135185412859250441050306097460743978236764621742188518727241039794947939545975714980320059887075444384010719213765767527487923245479086158206955208858869756114651537929822519456921018181501295564026578056247099017299753945634240146110804712967684172495798322820457267904148611938337873639471034969807642096385692808764963741623078067659234090150087571642104309101063161741417548997467181431510731530284534614037749851487572906122773787260872890685484182905003575236982182262196743856538191821783738752571357963554785362085368938620107266031790795624771257617544859637222801385089809785323145224465672336628435714269530905867035020547797064505259299054741404011731047290912652506509532881270061087204891701091790462316129131408573663503424206633285688848903843911496043016459365988978654219275929501037887090204598817354813762413026819385747274165547051511793334295245022466551774543858758097899489443185466447623190059970899503208646963776866215813091882375406430288858046022821154365035031454771054197694657274728448437738027598001384977791378933907930212586620161015453874825736111460291723696936684649031847068260166624796172097115100505052432265140573649413718014046330213071965428267510406526044195277805057913729543268865783017130886096273733220519672487756329847107795972821075707804316358885486314209076497957541327533498265900169672476267077706401881676739606481820245192097420320309156321618370144144786477941777041445636561657516568047633621265486321327861187711474029596844192000433294554675068452773914532080949002538750983800973969091987430182172710079788095485804912191698619952068777051075070458406415976628314617433708393636206752620368067884096776791649362757295451989768393201298570926605758065968510720840544174070139373692319456717834543604407450883295898095382649289340186944772206055498815436268535645716450843249381953079831410473807300655320990322870671325928819287259536000590996411549166424725792134674410216179915441612076107163752947536645744585009074337088814766023608682606358374036549783301130909965481734726101124419069920276544220634377353913571249693227711766195433308801488450765097122504857258266483872449921520693564769911636013086035475008026871003796951977547880276013204200400581879271741355525536872724940130086027107160151162640569407952689476968106914240711007835871200079702218633580840985692970039048348726504772509913496649329040676465875237619920719930428144793043939874319802756756111481593758103411399030084011561479854916611771424628389770344627626041672233379738981919293767025819974941947005214477362808334995425979308385489914733868672734210169709491051922517986625120760149374989777110796515073352190373730245576842681158400802397374057867895598635100897473896707039989904771816649101180035348708680618817397896196976887845168127335243389774314084680841760316259466831364214626995779753602182115184815259325991522419092883619390687271787034742939228277523713363231503848897894727900381616627954079469898407027459243941523089253874409828572227266450563313056027337665891080146210870938485161376303970597471424786268553398285592443596570529615696215814005928131553198204948894722969739697712627050887390513129687522359936991600490662357395513954915211246861684870760986787471265229769067791530357199452602318150471553871261561293497899822393709819102644125332955350140445663932808626596562878655277678781269597196216467998712997634886850107136895192683173183018644723218551898985270824940067687053190716456980466899726641124439440740173770183478921635429547620146335388114146463429208589733276528882799516016953290168206312270709948844721442105155355513201954548369713718904302346079628334183180679910496341394498382458618333533044556372512058321338505929424900867469709292537005422391782798906728988630521274017229932112326590897349923364171681315283317517053132520714733389735334285790517323445831423066872542987108923934164946831920705894904060657165058491855900830330161323461623853827949814701046180899152500224026671971420152865456337572824899782143091052505425957125122874465106969826826755197861984013880829136337850456620910326333094251868330992693395378053104395404710406518388295932581661303598803356026034715464365552828574509005612530012917507939046270557383322028224282740389770093086499687975612899233658176290481179753606238450091353289932924474222233135336379349250993866711803904636611144662144406138028345732949456685498812011222748216994983104787744384162149950004090475389593509195223056420337243834741611507193029243748116985546470368323741133644461672914858221207547337778479760341048265649834756816595143181091204939082141348722870574678839253304051979986598805620495898929672351262127268499439771200104976534860546815424078000754223117824050573951909371536198768106142333386720533855170217402913039171097375175370300002058506600050741460570269895629045144125469292294314798189930053400545118200360711096664635914865086340514428774922387688909938171743059550313591427103930241047247977160096690412191487230692384235133407645778636344671267088711494117104564159582821396825550826085365220053651431552217926306144990210959926213566457625128581851493022674048519493337387063391063210514037028869099219865425060411264357549807833236303365906460651663538005651141548907043446224677461307391190785311585515529189267095780396502768222216929089789109532704947079482251074690911264645541115036623808926188579583715050102421484393057137830576833690278086313129843131455578567074256112457146756138202962982476218102583503107770238041519293273101198675127645552679520914383101963001892878993591517422641344247234759309541925158349941366958946273614201743262550179816367075644338100962505474002556893874930398621138712203451568620541945199845565247592155350226248114424227178231465294813906696759602020787004350585671973162537772274867914880513053127165836155147698706859601986705510823386150023434930099247510178582435618790265780655194907929436207221242981174438114041425270581946917984320484967492159490441646599394328045792932863455485284510595420472601454061712394856751803569141024194909162578674039414258207552600775881647155099289945857789226485610163526573753057013984582319792526638855730160620464663329531260332032051637236744124001244959914816730599564842672709406593502421845958121252336280248688937195853583413837403479295950776251253632721054932608752029041051308675919453870772842109211935500078221827153448710902073614494453229702769330046123818123540655237864562881939037625870282236299021817212551328501669277430282966128724682369285074793446970231608635701487307868865732198673327203775769178561460879311720052040406577510507438512651205147814980051046052944316913441076583647497049010673870048528700444226466090762721135239483736146685695947774315719210825108646221693150001444552471495253269207777829507672580667877219390322797497750687194933748967551285753065843788373025366976802629169915469703184460005810828012812642663632992292742798145558565694704800550090731299314504739571302702486035358878425673654191037625475749918294357674391822528485856274944263149326412466752905349904361908054496981019478226692546783642954670181871944002377175536174100827196174082183137694933452234917214470320635627738923768722424377502362501640325930372603315072430016858281535815497005035475562267116395462028192393449973361790457521932029423405895357039645350188782187849665472310973232181938859748737433657598802806225812844428013024377875430385345122548030867825859281571150030299731253515605234775135422561495947411457425462483244483221065847762208481140904946986393407791240411155540403004306716820302022171729180023124517240212823407614529981556130132928657943378466723758927921161095338015458142993893565636360831234292368374081944179734160277036960977443094499774037787797058682473768978688394231907260235794455193695704998529031371069935189185603663618156823394567186336547028419721563377846510080977966043852631374741920619642961325732949548539662314822883829706717269864469704658114019696123341272213998888819443787430398229007878852582176196945848233491399569237285456181451245008570745865926658765539822031553361487324699724500227574553431098353144449942526425637155701002421574683728846553588806342982592211950557932395398152675311848335128615037209208841954597484775092115426180058463694616568347422952299204097883112915476244165514929399966813937519121102363888389399191863184264870017285304254021886439438089591884040752848829383742741171712555084574183606366682340445139538891167621476899602086787871560727742710573811200866361996192805166486987665054202666106014017891450819905404705647917539455475466179897368093266634535339584789053472613206014781419948385152975390104847013467441141983566887270572060372577182057365637823423393843997912120081367836882882392491987964482911956880878314751015890493840907220328037823226715063356494412039226696755447397737776662656575773030165914495882882960083539032758489662941566278236593407702691654767684009743910178620196995089341562617290824180929277240763031780846120955784940651882312772811561722818880003709930039782393236232625250966609474461447485378150365253440555562498706370375744565187007606952561172581013060842682476272757280404590256581579031031051257146420701087906917247174725556460379941773551303478592227984479310450284581870887036816198694079950098495299329207908979333934193192542810979491609164440329200580906596513138526238865323814427713440878779250726620275691096900001284033695941682958456445043552471817330604352859814213900465691479288383346692180627309802399823857261661488308921732145871895763275030471447252128969220892087377913197441148179721693358336266221858959899123911473786668224686701217533810021671204942877049269592266772703386755239312617003454625225292427888188785804874597554894269618769756098793492492350243423906815687756405223510635973219540926273841030146837633959456688510668102864361993326544319699041780459839912748922616514390167083369771402176490459799968219610841080082000332737488670056378043297041798332060418726562730040568016898154817086130922371585636480284896783025884620938340220554668967437409802676090019252616391036257414817529544164352865441485908583282761213691241130426713836674697638903293094574726306587136910853162592376526734680847853967846908815077723983313839938837226249664822724459519095468174269595157387711259844022779798105448639580127234320582693503310282476673098154906618256669852018413705974591849331924501995557613713897682284110489864381595475879321507344433859351419032279851301078144996880358993986259116897887823399272670670668322097512489899829516863199531485706363713869070892776850240944810646130227151982233158346159278277565691076842070189140951449125942549976927519590675951157936571063960146418949315234125825488689221818033289412178437338873985303643388783809934420013613203007904591254068713317512046840213072195627413105552027327652843378089904935995688783532063807848516846877624446761239357436282328894288080933866262525475294963664540241081412537934550862323309250428105097692423813615239113519145385427880973992438325547149062926779219291715003903298266179957233677185364744384242394349625952702508069251066513729156227850695219396181523834063017330216093386443779209708390803903629022410404169179577265034322822555399567389020140098213697876307240082934966548362218940249770254003463011224082102154388364226757896076143259450676670174478628651142300465777420175688138765709400450911319160462532800404263519005335544687570841137829154351315622428325726536800175195881794663417270955990566925061070909534118242526208114330519704543481899720060126235317497860432524686835457589346353738944835483461580024990426777208516019287651688651577829819885370195542905457681005429263235423112738159724465503740190741099738447190736328213755602839843145387370251722329574620181084410238243531568505639718859793489637336640274911757582391134554592487811232497095542690045798712213708063100029526465643739700337493330302634382213643578303149008951493193223954788029757322088407815275121109214592784355589218693824651466933294435768196506667214396354160525649082175135136380841231076989971579777375817864511742999448025541976452075987055144909152975838461539163511301331532518230894692242945220059825171926140399588977163892790473426694661820514282570691507935721285787171433843589959086501024842359197777310327683980000445029345647405127497268218104365042604982525852747298394326720361661230976041816457857242973436079946809241721192571693150356064609549116720048545810236185830106130214187915071225062664956856466137347842081179859408048790663750165571545514083091540126592011457033739049885452112965261841473815504717848439342924082523985731116496600261208312638541915233877807190399987379429852177145226529184419270740668414401426147704878768944312921404455961498417433436463605182280670674390651883107613151312654836439963558674794847450803331108908030439568487982734722648708442483374452612188352849990124909118212323437956270798177269966024261275655413343722308070165740766198546962851253000169872233863412510217370565038611809135722369238920676214173347862408021085252967121185578499710456698016043090731367755351656386104812163284294839836784715546609939177671511717189153777615571450318774198114741830798627341613722334686340888810664540736193726609243579519378941611210023345929082525073215931544759873393845218516330142274588442730458954690807766775225220484003841893420264441007834548664395517378775948895987092990184286958438478456006976141592620282836364769946843670528672282020638085375979730485954975207722352709232869585962834704767655252320161114317927333426399566932600024159994896154895298450199069547076151490569900836119809267549166107228201798788362933701963611739962198737493048047296356831770686300615295091534582052127844234929467402683910878376259741026765045962366089712068645867419383629253471856326138224202757949844078577842063526710245415458296122893106421928619015848415808877735365036872678947110862538217228036068600651609745937216500706637283101348802493084402732729192911612762441962529971874486078551879557776745052722250497692087808618245391310254020827805213048094247430900571288711062889353314033639508989890830141957326732328185967045146553698281687505815049191148438978878910401830722107324758025637102408178899333470147096581053962970957228631079367958190088995512140712499861240736234262810468740450758967247186170841568427391226627834024054092912390538145423188463342549110097281179955052725892065547521303027888281299329155922913116101601494596114868699498338438023741497684506765559891357082690440266146908479382632425509485545370614748257919053163121801621219687033948002871405890988862880655453546366469479956101636081294884990970408648916554650988807556090923704380375541427247608000728637765933768842833136620867648970859106570611853451402609027916323693299490470713990524600093954696626752843663403316760298850871816189141795189480204557121553202647824918221708106508330052356772282019832332929031763269863134290657152810091897737803198672673550380062228509337211556617183803375708677532208817112902935669866207355689705266157867634586310129721576982226590533850310109236357052023907589974564456528234128663381427557785554580529457078368525869281654792142082369890745187029323657072740085614573909692582104164223440950796415480876702731976587227731401956716035193141426923632401125738999324122725772130492305094242744395620357276294561110765315245396658726085621246678732082206316397199569528299338807193963714451267226919453432258450567794716059455765708950786656496303896324951272408663145678278449576353016214792831361953563794918899155395037039863972594058095881058196844751615453809387303671929831965389124304714926159732567484027181271951806348620274387672975297500348134624018219297555961342093771820660595254440597895843866837086315023300781992725896368083516401747383749738077308351823391964334488192788849956138078620757607465523951362038092492593076538650426068201917653717091507167831960360311727723308262831032097430766905738912199618351698362221156735379867649817842719857962101174799210813258242798964099051205817339443214069727167766177867180485914444337272872119485278695668705541635167148177675770381457085494664677574855455916927863602174325480641403851174235065305554541946371300009926103050675514227942673710560838349761128387044292522039989055478916872053624318965068044005315594772124015981008973939340565020079248289644147622131462375031767136410145045717654890896436872079380378447992386739706031574885700186261419502657083896863323901812787258891322990062826471470843623888224193406848779111939003949125375812385727921708158357140218220568464613799810639393047220391144559491126498487577508932767657700016424354924133393123634238772523157305455830085002302688686284545349972388099094978476729052321798646348460512818771891435913151439755513660474159911921906820830951615540365233647013634894977985592969077970384123195662508908201786548505580375218458871368057196438004780097114796227545675315332655300928302394350948629138025686202227945485056469904955923307691108275455571275044652615316708568808796022432023019676532975484379480269872031466063124452683628043401900969425803242843429440497329634300713946640665821508690272497691780074503805591740896277800262225772932724512022664256933542765988534332652913277669303993765971054951702911629295921642352583116658432278454288324817920729146023961999546221506187035396991751948635158967247941536815068698868943255628337638616569332167069791546268053987668121584744124752180042157334864253122012725385991955122521141905512725915377846100371751670739262859404769134107455651045928974710056592214896547727155570414292253705763521642741184207950584449168313702864615555434659738091378801182289775293730806179619870645546723051682452827360490164245562993476563980420433532552694166595529042098180001645415153824280670124179515758026064099330958746775313650372159467522119646079685346008097250300974859203385399984202142491827033742055365597225321144379904861516609491797713759694185246433836368806743916656562813983051692263529029205678312186174849169225564001359479920635215794265073775200068424593102756192461775845495581979651509513940891625867009834687598473494394344956463187352700834298903526447778381399597258978013049277997006974288897128955507162866014416178293128618898374928178092622386264996976484467087706435646929898835935062378694870601621286967678083525519869224048702233926116899219034924783277404239981554407332037183187812240716344805817628024887316329710629316446375426881645635973376677997396333246016844593742092111859291800025071743735205214371587537088129028276725938101585929239991826951594627685549067208759163928942549758561532722795377016611285046818035600851919833843393267407486887350043672570232847138237984708178129589767170137608198218500720094926770474057754050494140343014393421376335272704662353051958578702317621414371195666607713747311278222521053799063211398566025614816969778238961902014268879905235160040898765835954752281809800230807011599488816461905298494845169911375861892103054169129743654328054286739053672205903100448561881979683241084070218931805966759270913038579521105093889007152926084064777574796533608883722766778292890289004220609977820109568423592950076102443864372434321616118685874252104670177043064395055730455695589614504823073259048771721078403598293948537220003955907369561573382662146458980633504550265506147895958543258220152307798797464187201098626221419609056222173979336854675334269961717341784716550929549112727226295102427178905359497311139859850339218957610236750799978807471382921578356569360198523313597145536972597113245019410204617290049009638325395507047186937202728819454736906538749255354230325097163021719408491891846213878143092714137886745613466081201940971925581945333659484511400801867756866283867541876054547056165520877187054811486472213681934866375726566545152172289609368347010165254411675786181270862286442603285890255531719371541742994979791547738418343300598557981379507521382440773122200874154500237346762553987661501050955984420590579953935292500320932774157063629941428424113975754514144150024427089750629221302693427108323939472109646017286180481193517806226716364732280893984812832249484945342095283743361871812397579982471425623788659460388403793466861273806650822361782655515878292566128611096602253195926026939030572100126147834277551241152439796567641579279885812573574802438177895760311364909082204396011669095449287417629732841289713611217845686526081532214426622052188635912071566946042471138888969646722176715697705147192748345825226913972957128892314385062604267049842604305319627391399435101780356979915112722270906529072055740098600098527439017252770701144182749337376459268963926778286556118665574229328215568594069749679017263945770148856494555666925666333935521409559852656687738898199853319565239366301629146883446492562912510001496431841328996791853837845266008914166972226704019356570362728179061640191180986108644196834814825927506948038536017638919157476450884151703113225119421888839851955368906630073031810601258805400153652848807709064677747024950728813895791275717298923941918719005895101815181755423516148060603270697021865585808825900368341967275464432734186575426310372996575965816203482845715177629259719351893626402369184702098695361001597682256187577792100140147032129322370977383114290308233999306671618369991320055245492258234216958803621365147525299889268271090270664597051918113395281711474126383915003123035195523170369534375772963069800717324390281860527316827904256115146822505340085472314456358933726115762885500596251981702480926539981469464387143041253710099972364270285816786830474803164940649980161285942100034292729733476985034074894800119238616721465904627590245029364002419991563690041885503880952447679695689341674576393966847088140958382719818592273670638269499940328150794075605881878259124749491903632534454860958559890884767561306919651064369372133490908786479397213424900242022233812477513727060823603479979564976932367815442835623957516528216936520776867050942888296102056803310083306732056210963220315778923744476545820169447967171630506781839603178616209796618644534427195428491587289138958969162594093106678591566881151028386056593068631888739174377403878232228775152954775052101299954302650545026176241058092917908539966248468537635117016921294450139404482325354061887299794898146336514036239216671333168151959966911632960998871391739422853712279347834896912478633262132064633920346317860465048493769433441161798505643835102485137363456796194779082623620388563864424344798338269774937031657342761989337742628830349414965854188187908064654716855422615651986449373397570813152578001841651283287189848574738460164547622444721185652249604387337532708068452064158331806091631150839270195035283511446316622602477057842805709427536399785725023068957131991768661991593674922040862686716704596024743895480105747853858186223364874246152567920262810796047779111269997785476195554952413966272712505288110962613001128791248668609513672963618633375917907358925593018848172838378359320143557085918053860456892825690998117058284630586440515845408923717059446506806105310442044017307301560547688785341806269444106528828107038244231998033307486280580239592475422670241432596183743015692155446916511660022539847042070481490914843236383629078267632490220407800643348589365488298270789831832144505842508240355163544702220312950012710465459357546823622600472281449706422326492937347361755611786083323778797453199578641223086622149733187307002543220489906813976636067983341952393565392459880390600019997000998616536403914686033841252278807304806783376165685080771091094282470553033816939391593186533193365341122655444923573480019660189566968383900996408678893375559915844406238469709398308129334295304023242113410242837305881418390364841145220813785310939749813046863639295141484919704045049629392869692961733024313198784349234591378667943930161490882811538463465642096586389906775225060305023344616693462475950702075271501716156687397538007271379235288481125649573249539075607659315116388349305265432848907890038658510127978922129828398746651256027483290050698717549958690883560510444595570972082367951886857017721112980088959913185035053256235774886955398491365801897453336838612896163825969095697660813951404155445990311660645175882848395706531369313700397814133417121001180116894624881499976661712664135580553758164914999785973876761101571896522404987484905665265710600368949023147200623754606898688703401005750032081563923805100531691047943938355897684052671111936034342025096546317453819797545838265381396869199591069010936179533388337543229840092535599644307587216056273222983347375740730459724508679190413053805375566797739502378234589791459274171657394058954537574959735983042253268331824067819222796119904242555861419382123816506944124599437749632163633068806512587950474394370441265858248687002568530383202268921314168862436011223794196631619126359237833376477599619171862894636936014537660867746925345029581911925377361244924372495881248070188814960422467873610090587518297414693387164799463980359742151463958665833237734869156436667778038442323316344616759829606629832706501611924011741878129982547020348457701672187543962143807286774416443535417645537767159919660058518613264101750351945944306570421238221182365883172550387559552062427225401264335220992379864852717402226452768971541433925911952745240691667278758628269852482174698553772170559749622641875270766061458960507891804163815878366741448386068842908044084320692457386686603515764465708311035291197463477324389126651005160515678527141133715895877008317983918177908670640994515546910367888515761675595342723236236586967667831287023056549089753101834352770407538702157312688618294842655830988670370657666441150247684665621447154660016630656317780025612118113756003980052334113134422248481812215326464877765539483881928491252968790355337450417660595829545495704659254529853304906694712256552182858165478987751552587603339329233078681186691509300925818005222834819310361519163794846492534442267191327548472451536801894751190164606751146708659916649630132039015698787773539094536277516271071265894899634244267406864751156328561074992170904030739468848942829747996556753665426973102673917669957179911040210122368491272521782486632331233382496820953204699027431302541769173547277972474960402505527582964393504948664670102256546438137808214963337547016724203202387067157832289056020111940503438891919882572590604488313331615769158664338414972073024067478389453368489779679327648895204352794206669541378944561688409971149790666472473066115376789165953860045653787518106107139027930545715354535260464198266383572582590494688325810156542859267977455207589184747875888012806006444336481803123177929056725583907250611440939177362510863366287223630166528996414142680826312809969454958769722340280603629778053288465677204057109732646123005755560251870568484676884019360187519407204627516463380648469841947629359658927405990910135792013517442651801475754948152428832161433370630349410694645046919376314653631863410718035395290838696237319361271050319070659237311481811412152167492183677256260442297955315428013890707763930140539895027395260632004699758615953512292241269442712159974749587984227419366833436743159454599784234818401259977779732867209755935927067353377399798937942641501039577566844491158958647825932022612468177713864647912268250905177435427046382481987286741978954064148112884631256866237246435733018458138350661294626695049906018931111557452462829656884218231754063977212793933891888531030222660262255349665420073403943684680032948227519249967554200890026871010188352677776236047536291725819174417985923809508016472547657287174858007390343547284886362422570782420256778248443304659376595590643219402682245119928974380327376885405003157286173791251219924546424066460790208488335622500440276376024937118907176251450194909014060533190017882388382648607299385568485057256586630432091109456121465365080243106939970467087331166895852548140102459446528600460188392666766442506955219129966067220501191100541345160896133109189841003184931891690503895076338997706071960259107430615846784300042976177111984079101205014560073617859491738759203022802965305311250281369291827266939719079684790485004164378626709781616899189977863476664449589555953706173492217206864860795916219623709590504942631902498635060387961920202361479974433729581158292528304109376976574189301301297836217549007285502269332533779057700430895171884740838382089930543754952063492534426568773847757105942901323832758107617902927658366474779418875777859047160449662815330556985752421726908399734406771857488819020953616857380275613181957687486194404654427843614986365000234240125047401897335245574893405703832606764873699380842061708079535402400277244893704456806963254819484979321995818717632155050994908573792838355702024103369628702718992121830098365190779049004609096491544737144192843659786641517711782148541701442129514489814222799712458821733524831869721868337814952191948619817397433939546569078406239669221555452932627193915945279979393756474386513051834019533399943267195534017730043504855375762687723171291154271765678744236999716810538006070466741700262486130970226622590363218920533341174284190857126064795342692729270820590737684280821937913245824486397508129126605254519018079998621201456943009240888681033607227852384082484005139021745483454116176603635168593772672406388710952649164959457617331412994224035806534340841259477924103890874672804880475597294697660733112085711085241947441877802484063276412880460607720065719850098363744936989164022548874967161067052603292985233788805934803842403960405169340705998107535988842229594962797473047124923898961198802418156767827345070479693975166988363463144019501865375376794467434267115576716263332549717630457038406257813538731064623399310650230113870543552318177421241006244826049680904202481850907314282337833948346126831604153618326239576583602487002783158319804115616061183570239218626275930390402609768025934210107479057717597059724218501523575444010212952458694471501258505612657024603399383204530111068504091993203929155523298566151388386678816983360397574647340657889401650676191674241211017607084237805140192642682203199704446156474935226447815639605991813150347896691995818189434598571459532028809793175182806275938716494921827968487636682759637192309371784666436026075374144600938426531711145856028923655042752577080284799150599740458445567823553934817942814884954455518791510687451682330504333987137389969189295451301353362179564715269338496610873597749719222767586994172854259268403750282688656579179615895743198742345227315548164020791340115315355223975309344644125989183816897496810984255897100533024936886274581827607298016560888435915030245886395014253109292660954134857907429427729396484448542514205855724409735885558382336436478403232918487482214623365684181033151998335521951388968246844024293454657678562943865745081152366486507165395377705444137410628396231776943680328630967808565400278175714816698710784511303952272557865479255547693897742539299029887919212307998069686105262389064527718968874008230471261853619449965706107395461326609312493724106336764005628373751714549927967913595923884912470855504870882128431330454506813379929184239080642412300061660328325211558036607174707210128408367108431204720657226593157409374487945908445465737925707068370243367771585986954781388460552566732879400314489587401210291386452525694262931028806899927752041689403113875698477331830603947489937769060768070035511682652570313163400432813059883785721932235294977741987026147541727602192056156624784968678007948044645888638309094010136706037798450786456116530027321793564081760631375997279753499166028119236614528242930303641565472874615928057561721570440491342724188336205974193769828954534013393424646214115932287318820932696051502605744114772398706989670498396408019667693711927911502696822864592258364389594849696456629004127126257723005134367660619407405260853650205014831650281740997815295185531923867981054686456048761220513940638472627774881525345839440507742515639364210177214535508783397054278037899326700671762634839349727251569598507601589036825670807111661672449483716941505617890395044637398815934299745685571963963642368883939052131861680821432662883265222061514160953418366984074923026951270857743850472650987011372243955957463193623060080991257549746633391329287068125580349811276877255151511157482741811055834478064231150775871730248684829660688544537003704274862651640117052850726784083321769916397048456096633830183825585715615910874991729990440095066350485798254954118729415012031907435716380402141841774853225328430277466439593625409192154149716393223048928948651500656462701029823844020581251476110148370023201880742443968653446874283968925522235227260618326021672231921282458853030448980065439800274462559070592309348705934480972211335346656961830093635675432085486429807458345277614981447909041843164842600747084379309187798437680106579077111630411702438245416800477698297435574238206381408766921943838638141084413634950568747779543513445217039833322615268278612605878908823045476098181319511184385251870813598944726239001142437412244877120511567641867863159677420761924023121312492443103243292825210990501162920671124233346463985198555212828635999407532879374778321040172857071621913035494002749834877117072985731628227699647305163195458650056201798058908654245930450982566105536727439269501266605757134189283610672979657770094761451402807367632368756024851292041142757248187182098414427011116168027700998136683134258757886228056614589624688935368757768166191317283663572780384351185404951621213260465363436682293577415943349066348165165842068924786647834380545630154767999844811797609100038131656852351239811029248324939204988182521260795833938735229475537907305594676252604577007182628583717328877363334188979392878670686691559674538770566773202169576969036054508018721372581826752160228461969751496537075842075982125700965877190718191841702111868394666054140229853676578740908969861089348260026494616942413099125172728698616953140641669238658022867891909198199140046701625362894411560721638827754237547503006736697682138407964335780845128234942208985795758554692273366294959091687358821634510634320227196027971875202095521477676878413513352163578323692881368319100760136864850986072125338508721023408928271319659816763068321951974225630957927424362130963311133204930900159645465324545609172590446962733585737837983706834585249174663085973659453800657474664652930207211087288840113755525751269788079877364942844795902426724610531202307890564665849475851823045064060246890446933187819155827528510395983451814236654032568557347798682639736389560626812684445004817497865528062090362730445066603636244208648179720080387454985592857517881836702138622452229412449880433838825920706203359991556825167233563361933600566680388641783517047894918087891208614372193296806243332733248706827049202589788662885613465371157615615368076861141597552096837849306616328123451903742105405056745385272393077762717916394306751261425727427831175802055485838168637518685247753885232422875889161134980043998461958698702935815014013468355518674014406620213641706080478018792773254119406938823631912234645149629261449697303191793479596745361378155705895953222495532224081160153906193082042073410182937813638372114798563521706116172900877056864653211140284016996613727230107954852485426723958105202370892342486673239047996042225045356949374390559274553975522848041398888529330228734379396040143876590751454008358902051934569509423649246675247784264637114223448621556098652114592855793741723541287300314022094091020481007179654922398922571181033169482586145273000531677590305886450499309674437352083775820013572123345864321090861832544209147997436026838452141755634117940306267750025525485582542341194004332161777661881032081232293069859800849714158733438083354582603906616483116071233588793292436476365072961595268832669448861798803457358544196261638467125411191060152447489936132867358454739383480328517581809483668168213700066091467800412234855198175368907133806684893250868831544456137429839470071057010784432565390067767756088599236630557095740324507624826036257734193617389534682114089696726738466760054841004621382135020956449673623658712648174743429237063347486757585008250332732923187215052044696061632462710610774772490058200453426075443359830195064209352686863738443688042910141193843035067836654821279209112699836358231109119508679822345631304022940135907733047017613721546963212609101240057106276395047342302386305650037931018182161796077959012181402255602119552428925086202518190272160153189332634037443705317630206622491594072713262606944128411951833052920421516583712383219217623254181842153330323755056646542927621276308000855456934592103020083851059434684178717654324002785263861914642204160574461584242547472571052331478686072395488942052115159657209938259097196057899835901202808619723576147823112715211263299234088413142218850628236959324666099389689153921743191766180000306509035395934540940310984743766306217729356366654233789714115020182120328762396352441243946090260304314543816004337892111706087318570928835583036834532611757384599309673517022380434809762790939929193130988762483139885239052346458026599452527074380657034098386416804330809104451390122373528835005635982129039699849070550370630881079312629630355463155738175409350486340285232854611742468151548021807150830368545522174220373822900206915975618331457379559673232928857101874543736074067887865268989479262380398035155146972550975575656267389089167056371122964556937911764471469573223196852406786321377295053594840346472034726333805328466875997146244765697314248780583619520938710896201680899519297529878755820653243008239005353585474153773161323073840844084898131469530628336608624803577836485656643342244383522442332736537310625505750646860714481996572398455979563151298687080465942489422716787929029548990611313523614074278956999903201244671688117533666535695826707192571919095423260729115960915857252345237058059158696106239919372411695936018471598496783199994880735362247161007907613068327961149813407566955383622101499480725717465778879562755868643709569950588410238838295412276056353793314766398495237767640026936692580010812630038850808597478214914630897048494270024588501273976581291154008818779858954233077382104596599349246050420417708685768612604585809011058561834008223979631467216448817264514517098002574253272922278738018668185355600056770667559587243057285209075085002856327919257802224018963042517405605697074348844810254780766007026403641112510870510971617574836191022276314948076999977016813604102887013907348822047618364925443480219557970337421005618780147200073435049248521246838715657504450503227253940593304723301744729785992413711893375522507667182254050797155596133201696992625170190843441948180051372447423567013189531768449048847838702273780307250755628572091335795133632832586893334311050420095064151867311073525156265154804049267652402701403662536278068168565250957445032137625003343026385133320891914334878905561073314053364671082923638966447622281793991620257030827145867309789366059228851830208998173113186067266119972452098259725511816851369443942134921178086661904001742640701171405315396245009645816572330499159452398848062567286620285714478017926967246139627710767005612994060197932780118282138728771646177491627064616177971477955557558832534453445556538092127420918187236441960059462003863989939239082307311561421361168496321331948196939334277781100500892316205966713470139976104839099037049735728356633870158026335864009054259779818006841037488199294665889445788819250583695232384591004165008749291846958636694843650596375425160801794352787779884165134108616883246214215332409565213080114937834709511992577063005077329001445011247302069779971297729902811288116048189252331693456454402597336203975554765007094170307597934069419920507514887204895051011746333622801670714234301037518419825286684226731918904534801222419996276989484789566813866362136352839304334012958000606438125909401449466145816559328507772902827161086036860931741739532816662772135890637353664357156180409116968130400048990138046552446158612932857399838971885956458534598179635882968941275875366779422841130375831481986467481570251024666917422435568200826729370333814997740296345156585633330934534339376658290848462225704004714291315650963705695325471375354279192880787300787262562343662690327368090815787718792853852017551639732426609312169516321325951562953755142780552001819994783996035050569211549609167995572036409283315820402750007012739552531323385622663304964190986589958313130426422736893240470305603635836594356264618299041046888079649529477656663036960802711623809525602952801681148654648219274475309559937357834862581788865730572823910673287384423820344795888792824980253821819708710546659734168456248278172733546706863932139402942347413769248957567894423260213068655599878296553481701337859745581737872314377289019995174739524959513201248475017119258313028610898022799109897372199047222179593534330610420860914337842577999472324549571043723056347703932793894689487193787134466715150326236718050461719203343312220767566361822178666902617349331539794954616199656912184981528630138196811962399067874395442038908967628011069514669224340830359429642819380143726317149361938578665853994484450142949165783930257979827167232274209133981740302776177419125302112104071649968543862570415135338250651130821660599189068799771973871381560278698105060717442963263843357210228483839146265470493644566944261456835532743466293304144981433099534079728374258805051502922798254380330498572700106575150598504112317730049366168307131490334533131064647256827333246922549973750222228138055127715602892460137727330100257053266404918463397080411028879222136325938453435311487571637445300016945683920616252173507386436233830916716280994587250470044647256256151125914219951363599664552814385567174772543181484155106684102047889017382874669398257469803692236199106840172199681059940495729607984080964701177493599430059160473330568183103794135457119137963274564318243434928659527215937521788450659926111278985060350424937881198612081733578105984450209767479305051055851944687131490206695180869633910235219719650542696139504415137253696796823896898914794833393786054358641976521262271507121353266159682685222354985402104074041800876036740412862474312313564448805745443305543990431384976947125362181271127760399913383354972292784187358477817919687992402448264310543931681775667925520350784782944697638911294839843530333133236639141932587021969912902844931170322604390020176541696574286322747510496072781801134069164603728226644941590283715596019259294763586326865198221533267379739695964396266029596439777690920960564383336192830890983456975954934801460575841526172455135295698646927549440292222183980719446393049040496817368622386640498413166330397948199963163140867012702976321991618489602281686555310624003482758631229230310336036521186021409455543480030152961335393093987588859273928044801300945841316753251053245997463382900067546288575201545524202692804762175051251611098800632598191750066706944385923933148602756216415250663547235057514197564961920812945009937144758436887483881757719662128359690351014986442122141562645198567132512849016617318731626986320295091226273638342819405976973900272977401953887747781938351231446875647236010098352823167718151428012109560497470619198252548270787365376543508154353907157021820430793271976609550852527879309905904980468177939480496314697107401643409521206979745612565220514497978382084882998924104520450469671787396068574137300054100313727561401958193128334087071015221015735423266146326103354925299443737869547905067799784753487680553237832525405343281735076841121601662512140850438121776568545151179052039648103775985603522690688471613136825344217327041209132977475553009428595976520819444842675337586655870518265517744828261777687388215839014795010010094222482853466732352473587114645622196661133565634790743211341642512346476046076095820931223752185023125954280380136271136784480721910312195117816073086931833183278497445328838020985126493563547898291122987974358903433594364035527639086934771272347747893719322531344068483280327742181740001306535538709626667717548205802398412645240048047151874497353133304014993330942380133131081087017744334027387813076102328406334264950813973166997476157906797364567829103905714625072234663468070193494069614045969732181675435659433317811513048119527869239220331613250698178077382807830224944451453371083315314257183949261116290678504980746903916411771022395878754261519099366765388085460078536627537619518124954418211299493564703737982072921441353660556420565541217628768182759778277907605758562180093026442785961253643580580692228943703723609181649325626556007641832361167889913675374841237496467963292973774356909389898510733955827730721021031892557049322919463422389290886127719045590152863598517637632603614979913027877784545392185569372688390877721657019792376256474274112482595898211113478957259375959765522265778421028944085870895047080761859653399193407024988972233880628641757971793486534797555981357931553547394535577927434514862198281684552149824571730867901242954564350781015807555058196627270138106153366070128346385100990538305792217639476018394761917488531697089188316201100794377394066737111749184470741316214324243106805300335958511487843825061800498674623273024899247329691448091178524510838972279251719840558413450094617000999365836538255868564270718199276826557075029812451378888884374296324549822400327105847060190625654186035063646374052284145571056419992608095500361892292783051265990000213275626440177501239384080927693431245168549209557445852489646782743231995708416438603469954424782250508465194930118352506992266793466867115974806577354244173560474728784466172970609467207546666447714967790446824313311504960735481646266843052891807083220350729803688313553183622614751645430800540897615141558260800798547638984351089438909583864367733439399649540620012104562219812732394503031953720345177844205606988390937395360861585353293310068145991178070172859249533933175127930032067347725723073357115834799067226141754167076220064438034389772099954598369713055685640264431255249601364355882655229886733602564331426772283718645710627183828403719845384164149651491023710350986254517807802830443023468911922958928205556638244232400386214285099048694816859664899099465611663549634929849160830747579948777973164368411972772204239417254285319466674435055317546359520947498735430515677959587754184942337712539299130617525030015605560172717626764814970296541705207261615090743306545525236648811721784722851185557712881818701821052528429635100004906599490834508508316355339270634340569955054629901554262178762846966477595658324107564914241665267264782478885557964311623283967458894306478777794601018824436256159105643792042646901524432400614818393031984706249733967229303522640114622595906618824066004816847712996780991220225696282252799600101773408918153477562810651142490380095988839578537488280885467430247232533918420866305633709819372680360643587732716419723741028111890283162660748239600174364551684400926305751271437643864447823425908719804294282470742268523944781630929859971325544985198185287519022349949629129207839059355860032028388836049641013250415010313074110475001264695237665151755541457358937846448637265792144778299042395019358999501591036999720771323809385999726309016727463997537278916298975836150983371622003529745944931725401409535873408798397484394756875810300537118127729085942717406640137035563922942129780318700242292012088937873595703072779051168626671034593298527316051085089215289467956464950989608578351533158060389167751559693287801595768252451277635964104117526577555114139961831736270453712503184538726289304861273225864250482673296908551549433703365039256765261011006220048176662181620231847124745081407208487058478909479923577234077862415577814534804421940622493900113097740220909635815048306512019910164932642097006258300340013628950343631325860487874927580904224419192485600425562390241837941549062435612616540938550954720706644125236153140300494458463653359049881387163822360387220266593734802144110033330872790702387165920933388460001412568059934983848660317146337358463534571734325017303742797191832493991585102411354680421349124366451336306688975754396698560755971569441523377560895866884726092443872398073920684452832037992071226149113888905086527945973731963820018021126830432840635890468048286687762271376598980049707099263536848294929352733459894190402863294174469223229764852210311042710375495584813429956456806280312949223599143313460871992890193878985727092050778932769036880379043846727976384749380888251483591711593578583873545849475207934020211443521769696657057936323105847114521135298446518732029934467856541576198508563865129851175288088688404292508844352282612334978704781050277535897675163655168018502396534831256054580605544246915307355846306409017111323074857122180442254276218486714519669095004085422176846378491135185665444843563791934179852598587183704103828078402986031759909732934635233589183187481679750317742862110024052886364344364574027237564416499767896000551063757277272949976927759493044318490218702572571945483185626138360581539417795873693397205549473100019201167816454539148019382845394522787852429078886750381525988810422067236937639887913968967138239728822831953095653684054539808018381749026993858317432587942921871660668767741318950379299943667353363461753936074593056332367567258210276723829956923397475300980872950667655794254718582307981433300882838884063260785906669662803414803623591231971076245260198982882433522853482265658159627765217468722320857764091175316345612933426639614194402793726704991030587106163328791757870941238062098545870252817516312928055910745702203848554451868232057620543115146195939924940812727099620542666379200441683857711011918774515778063344211830562579672367013881541144489010412062436617044905175561121187112029987998337979828025078814111419046738557415051943591701189682500471744721841187125599944893195926652356283155978775661033860249041573915666540886067357343013490363924662073466212769933249410003143842158364414297206348701584122303478233987604219197415448438030191481153342664167202966106402021795756451255656849005659584906767752668484218294911018922107995815863380268480412273595752862447490138049621201231880908761127086941836320364266969762841589767794052444004067907750773877635673852993742624998093789207090300898890615995715642121473605206818260550759493449746812710845474061499327759504643487861254017425316659845659210185561762355408846064512083971750017115772587502228870885523154160999826714420440120363652880073531705769782645194380991445093302421875167206878887956266313159538639700360283980614111224086635765142300624113015305215682497821917486963334957522235373981295629846736192777231074236531693937059064768254746347180947426939142922193313543904292115050888133128630739833326387147589378622839982152502798688119977234167226669311341474474665303607157142643968508588467696390929439271951868976095186744777144400722022832488557219645544852601939547488608472690834626532377375735699789012780128428920885225850433384723760074641915840253040207869369299946287493463952824999045110241116387296010393266747190534114920368453938886922647407722724210759292937722850981874817718413932213786581675445182437698981204527198120727925894007894324623498222288155064777777377567588793536701380608369883878824208127208427863185635811325054023426716711222048176460390438083363886192285466896174199840151959263392563885746982620019322838248472961237820441173470353247342424982387447633725697908134351495016777695607806403305522420679023538720121641858119481330912294218156051742425750972112529594624483977629038415030149642801590747985974311966055456514200227983680860615176078052832600249550934354171992456781689189114495031832515755046616863419157829456919627354918346059157966887756939684273310741124378028137636784219372549209782869458391266484884232036570039926658303446828978750185513165170540025493504833460054240921872259733448985318483897033248712755186656381176679082786983397306479476103028749383261880675341074530279207211844838213970325029462242815326371080222419493673047982459531832939848998268555534837473639357281068789415556836512128104924685576396273363593541438196473015993062164717997666142299896187275387982558359630142519613797654327490495643588723116047706697085294205886903042828945210030026532778359376000522888823818405854815682211119644257844255616344498838555585071278852234717464479277904832243290911701923370016514972547394691501953615023527362279597494134253419020841358881588550850441893100565648809699826418194506695026774161494378524506268836501285660403478353215036949501724688263835932867003614139183982693197530174409161351709391373474377013617712923417658073652894086505295988925786695071113681646069323053904793714325316315591572817368489404538100857890356780590757082178117311072293109620026065360046430327732664210412075723939268222613411330195643753611518312663859494301610732448564424970819187904767562522417818235286825433690051826429920784819649220510275938818584529962838774655956097001899412150669838903453251505958651784582741716853228001659464153784600748764995842781318389603864119681636169333026384817519394657518407469850976768756581335212554166426779291477319334694063251110964444957949578880140874499235075726400465548916443018884170857429982207610808805224325693836413869681202884666583848443748833425168335294916536578653761441281550384619090642302615366852634311489734069044019973965590078152567876079574517765655497032468130404999643930510252919001607824104142926161816810638216967562876793126458001875694340048650944516481555291207361583850222171531202714546037600524062208425772462355581240166451606987707570951846810812833275156887999445227929679987232259938283090015229731031542523206188734942428722713013235666208341767112417742545614404760075054201144836858868275134972533611276273159923536947414242520497834350654324120268418764414231447152390939125786748100927962144644902212209166763610597430148694318419930843075868695152698992173887308859797624596176638936697178501022401446325493293732022214576317053314992715914564318332692105328483705799384631176814791182260288688794686509907583598823642878085449450829993723738165909059188324160340572505158305154816410696017405639179950889642368960174975008729948230137582081668379580336061587156935667858178500409563840861900115321064523964455676657398568352165450191850689994705703892198503192854166752384583711655934408603497235512998008044358244084719157507226366935879871842352138354101910102766795800699901883867292076081734540596015072021260204739604592344536836378850628390694618774768971817064744421278354665598823893967260225198385295114562717460013485603010073250726100485839138450259188297537847261045890775877565753087549020445622185678438973487845204675696238821729883519396446016473509860544765773616379547415086071350722856941902884087695979449705185099645966392612002953003128763362258884427661442787550915654941184037395922935517067175794253414008238253859690638078418333435263785305710967974996689552589398258465065938154478873572564349724496211599648355133389420054229631457765408192126396312872022307091065082902713212642140117737923433401514305611690490939438220352217115827054061494478642429200957021602339345527480501316562531292425060950958444779902694137087069413462967144885231597806422561061740864455847796819553818191006718815417218936636135746813266159276032053795483311293740062497906737509029823821091064273922535128074210946562760261935367900089696653607724988234784146703279267891067628849905462689839186454442751806057422050467218783168135708185069432916808776230312982829423669492610789477731823896685337619291904677002735396212615649516317484745961046454300024823213606923633598257423064830037735206281505498882536426863500021879857624766772631823301965012988574532186978552028055792351237168218716119991282398821936323900743907393391127982707368724483592103522529206620942617826360522507563691164310529353567667322290273135317898092136710277088321070846222058781491449677274547957352470753362955365455676676427490238196803464083600500878269795008171870151277258689038607767877443486272472714844696783062799559818308096637582809615670674767900860655360622898851416584101674731133469170149039761320521237749779451602449403888725462595959227526001082664592163563737895203740828064041350974851249198166041702259410226968849071012423483469878169235544655264051176522678654817852622938626815074967630377345425671181544699150831367239568935793475200085181565157762715895226927921055707574760024308943949628055042529427342918442638288925832194182793184624644384715842615065739827389515370719782222334363909353582000595413299961467080587238341714625884909757648601533923821086849857549199505628885903487129844067531051979215348697714663687543276090204738120417095828013786763302403618145219266770850921743386909341173057630986856506274990520973575022969330908074523253692878361865586516528549343228829127402739183804465300510759625065115659674831333209263297445978674478910054227951229538806421203271984422097688723901037550386331665494641362020844787631283933112352037536033936822364935492119170265501959375714648473000491420253447561289568008333959809870291149898009958628485650649607653191260570225139233521240184161454393171297029239412003828763705130622904435103305723373036965516078154642859016847414779850918654943740281971282124687010173480738597301740780823050012782410751896912600792980401227906391670679071960954105549704808863226956367422400580246512497368785113285671312699689033334459388145969637028950841064356533214840396090511525616953302226851580990481355018297985006965268695163246254797533992028483928746667987464858881451671786692371759707202543115295616497143746916780696693798515129591357607267147871937725253610349056125985585249058487599764151690661557086227170241206543356554863985284710853608335265608122854643709795873393079555965021872610469454220425465884841729386255764919622874265026157643097431784794098443961232722730229712460434639617713928835996080846177281042067833458517986665600679618966996498682166996567240256258894988954233710039908274968624089534710789225937737543670142118896740807278815839559779717840746446098900555841583560473705869411112183754215341422187461175647472322251497352274406860499646477765152278160213971079041498046907457419093300186343913608364613319454288960414765987024732152478420409316011874303141522092889823385271546681231858946907543915702692691926385552274653771799719034834784800825358981348730431723478262186836145719789383241654016421734488325408261634634814519096390187184399245393574556705288638973311410949909283080533915229428368543024357713978946776722077874418872905436551631865302383717580463055981663499350085879684030549728569814439853878861034480395068929163906003969439756975379835754429414261368144552272021771603364776279841289942169701086167660476953614066281332578571518880761026552508969666199293810749097213419166414482705147768688621504898932350769598412553624153513646272316784451084129340915658116806175196955337570808220325846968003650304162189055444805599711224613289787551932648549429246862701932204812515791759788579775791240383967412681332010278637347716123174514034880054516378241919951051682712679969878069964502840677412544826358756201392156647683360027478928545362642642868404740508142876189523765217186822486393052205041193093790769247135920904772027121377316234657150699600533506666987060763584888497047846982591298386202250439851767647812826518889373981617730442472446677444730232618324952525243797164395497023931478591401841760974404238010027676233623616728154729770142003041917480234646599520826000848366313614637950357672821934712130759914335923177380540877974888220385603222504348276460774700873126549940543778540831225939014464883886794766452092277961888947897278124046725976802503305404574624228581450734340024749368674101814540128481944733921399331175972570875927456755301598274852416687497413832730325114898809778735830566986228808554338069761951837711013952924913262214776566090819763637602863442929500148123536308155942730259310591631201445248453138667063666760673937559601796468515524997571979126447592223453394684146078679419084285503907937380941421601916984760359965846463751596185465403777385852044047229207479588390779360844203537823837421875393330002436145222464304081792744125534690202324006652340952687288692762101480621289612895876903045184267882667464093746721075946970310004133750286277463199001792990524322435366717258950008902103077287115331999738817303710973357136278422135569344598701838937870159138489060834154282172343269308901193120105284683889711396266576321846931811605033033632493918313199217197490088805624739174391067456765980250797724975323283099748298308368332463917093769431168291134588302746371250221785584177996448217866098321038136302126135913188993526927613455498330959868257322202133327931661667226871983119000040624907581912904480292979413984414038600658039724041314837381182371793765320045620437515312911924176544229046129539472388776635317908063328784532779467605105219997432578097836996929031750421083817818998812443882941970835782150732574651584184926952241463580262348946715100720002452730849177175154188370176333930343038721054152863634830519788218200802428707336133972854374116545706809722820495920692833670187833448950117839340218097537761828046486132100101041569347716118328636531939175921548500055372132331059589222015098255345926068021938623538279818573695068821146522463247951914629936211076083889491121174373862212245210941868404965326796362088889428458277880383668231323070189589612229730754555925483411632374955983549440606577154955435097581799689989342712352734472961226154922100777102092150244800768228500366688647614620571031644152593451982221222906164009837209208511523712408553759391244181059429392823021150892401738105800308833452617832618740309696526621336561141826973899973162977871829736689202700121099914085260569999261015654865320716898699566448006863540653236883403975911265053383176506562757422460133796292479629084002360762356272863846200830687456624317734001351991070469499981450893736577630763729396836942227515492606909132001921464308031506470019851599450239870129667471132036770530945797218032448602444229997585502930409795795432958489948022609688358017954167580235161226502565204648651933487864845486466650052355556444538324873308399349074595154168239190364741110071828104487473918407051222399831812522136310825949279651341478675787707474282225413699824667474601445089974225927789045127153093577259819466269393049127961405070477190386828763031858534455428851447987062028827112185201406190099284168947809019025559899581728530908065678416466968587324800458801495546173564594922112553138999134486891034672098606731334959797409498175519464648669579747409745817885434432016809588108826298644734167110223582194292531891026522690022228947385556058328141248094314316688425842423809241325405019676010519510327112754240486502303264107829138993538165161947081102442335504372932953238169396958329256847605159370812312352225221960700726525775557750486306612628608471129629678857318383578529748638754601203626576528167707989121841610876477051980515819440558100689930647778930571579639714361098981564885299515552653925144287041328256685152494679629493016155281976560971043911044768680517960562183147369384826529790898311775365978914837401975654242422780824417645604978180912913128249221998665526057447203463123951261567439825268937351664951387657396120297240329156637709719750535351755663837121378924790866747954964515446598440416428210048133555386787900327695694053616178350880512456423631983425890149962246939858399351198311224753622024620418151198711607123834291567673550507266060931873487646818449797289132727301350903202405552797068962318254872178115338771981799951426228455486369313309941342020437841523734327718048043396744119908491759399637494416592874565976501316915618979677322483066887294063407969712187069338601934625785835030349634237777790713330754953441632748111396306809019431604922975223772653295667240829742093600656749990594264757061722846802682037080959858774117724391300246913630382474153652962838168827322367782199237569535597474789266576493319675972524554621179691343955424926599932485514516642864477483103854341004312927989650354184399196533511450848150176899973083125973252174703608174748238849174411703443349992135943415920543377969864466971490589244037860464498629109571649571707229392416380533488426061028732170089742662652143365821885210293404213581893684043432136364923239137953810612530333661362553209938777699463107776102564600058313117014341745295928884028122070664286660209292183085999256752376885299498210423904512871461675550887307766013300712469343933324709447645559536259505160698411164343956375691080550657508380378396681574713045858763469584258728968811525790805685182070232703086657479092169226511651680157249417472850826147163178582847232062994506812525293339951763471536442697947118304659606552139995539644980082128349319376063874107123451627804403317695759293497860437917122333904440882124599084401910719296578716055529086785140380183180898624187925505749479758402048278194787932844793825953860552266199508498920778228929090726859789815026008836036349793442610416310699472197393768844636322706872862963305209916257862541373105371730015837006622340891261325706311474753937085574236018527407618023053195814517917301812284157615153590741374359120024624923634807146079262637261123814205182465675983031145247316560946206228139099959267109125147562342278005351284701493585648151839712735465006119974849049925345112012223261327565940149755091320841566374699394328014000159194055498023811043541705648522533772478529181316735375517179210533444952406067375948587832506492670133542398406465551962020365051557821330045059325731864772024726289795355441602203708108067712383240730767717778621041064749577516818107867300841507150421511221417604096216024760722034260271861778331212682623422363577215512060990080289901466739178838542663867338355428970799458629233302370879122699078922939301940001549731241111565956566543880151125616991713865812704397096625847307366151909834373661253907795788270526037023203817621386555138040795229961781721442645129409124525534898546665683970030968707309097751055732062605074419834385121933499623285114639501534476444155812861029590112449722037214770182997736437610846092907953554158657303029774851706240629903352212644763960406781506343845523981933407896627519831709868164621777860642317688875700420224310866030254902451101156953650309618438537693275792373833397337406227157911060735279710259092805711962543969291940719762560333106750555950934611487808603359094443531416883225043125576385637558388635023691448580865223170675803808209228923756785725342064481816232657737699229311441417412221067711800616059534027192490076201649156324080862777803010632430393963393490997692713460315252680741124450999631465149601467644603453920666570227995025854441679232075680855447109405469004017805531212470577918033168692944585585755463910800760288192758260738279985123387584048387709194392263435227258887979777730379821103416189611763403183036601902216743172556442306901967254791904536933151188501181246490521073807428923681716285659187324301719421716127938361928287763285554650501101217489456237155266369987157340454037013832184715311968421395831345534917757130809094363376670633307026094119081050952722304575636376394420081230707450534377399740376727871171893057077545262622774340618694865894745052749614232249729942418735210863189176596335022936931959866144685598902947156666697074235949240036939885686569429179705840817517536470945446229125672730246509447319046654806116440512948187548782500320774902867984672482917407075296156337110035999521030583900344653563806336820855269719783616939173355833559449939509254797750301090052867416912213389417167440131304846981347656644991997837848523329603383912361945347565417410632286178073190602919691003438111828293494497464244615690814072657088387274810592172737374959944988580083692699774162763722887978468791888990328864567515491012106253295437824983932643942422111591269909971305352219652488088307388372141886942316469115789881456437447070539049296903153511477563903239948825565527062403526768165778990295985662865072951746351364478841817420084470066033440053033298114657325580188101420609103466219309716299752221856378863294695093280346320158767246173302811310127117495252445386279573494645257738342315902461665948801719511397547371592273880982161461058987330256188454917568083935220137528094510046516324592207371740513689668250611564372872692616612748896876094637222258529939218427409750164149361899774510019824799434614480928600126454400510648547375338526495728697986245677244318414630127765281859359768252089077234250948864482527221643173243360695667490431249416352820468053094088812400231224019742992768090641472257322287958087569185584330426702162448698885849751658679995020163119576133160484193098830827366610689598759612168746090569523037293335269949982441665889408951752417014032019467418232652789119917433014624186504506101439984211386491473440130741780610312008501944914452760853983898070064561041633080466649902823312832002222470078094688116811304716496504009168916129367243672997204827993783075110125361948329879632420881617126479768208685764201905141944026967394220933981080392199609506388586311254478976217967623391586306950660724930494998438591180585941862290008462798809648121506221141956388162551848119268334698655889585142311840325058256526907635208161296514401461280486532240373753007680586143166912093889047622950607782640220569496324394887888400175948632436112169682733720117625281273773489282741430961659500504457711735214248821506626818138683796054198750034907599007181855136511363123398993737573885550280079259002525578511754908108216715710275346136943326776106045338322412723226360394690174058495970242690242851748512476583988239739696002529396457616205676249477780629900548149097574082708509577955747753116996892156500215496950969090500403381034990967219544065712242370598050147316716821004542242967902361179380698549318343783812134370251868246151614058592799935715050599600193381132747869643391029023913660485412894114964608168813707302659125452381541593447271890245714814474778886830507476182960149265045036628180253415877543022548495921357455987713546453956665205492467014011200087421114519295102367471936899991509294399631847456771954735283284788520395860187544243017160267472839350739637400057688271226055269648127539058919247333531921692551084623894653785811568876238059486314707717294262657664925740879388449936694538681938157943292984145092103691538411408878276849499907010393593814563299079917992931207080996259020971964086672687373394999965890810459678456000665606981854756588695111134726345925785015956887742417113519881786678325129765891646202281244472958766167503642482727691994084748136764739928781576428767943050470802351001750390318989712186721306247420772733691463515551956284889440371073990977418947153905116815344849315370702519787893200029441902456785270384653958583544052927236408071453872555120658734698307102110381936505594963863846780817657090987176930793068180133740955999985514472537202885353476044469237032086440724144880547280841718118347871296989612828710827481152447204370792546361970324723221604340149858174336556906518796948254299791938958966769188172227131278452926664100187517078455106663954239060843719958137272164704515989086117987250910734251449245017503484980791149286757217819002283405449360839091008401412721696555355497121933425891524953019171631389575668463346539383699398474633755973761967339113294222396941447863559181914002871752692177883910333697353475461793620271458843693134355876635438327206646097494839538694453841803453734199812991761090080569454064998690399845062077189865155364732113026507359632001907104663512355408037468239378671617175358189295431978017980900304172922251034970539022813972528236218629604745752016262265959104369345237512322373156395810851444284026864881196706028132878260882741336672839461523836055493315701193614085732056875913494523600603869710108953230986832385730297681012464137533578528741179949547342765159173301281603850357273675002704795295344125711737509175766439243800755182895124632188070959378195158255674252940738157308405638536557147754933276343702437367482881571264106323885660024296122312391947063004589159526004881333451717358233338424837951634232505961725313161458466489729235516064821310768075882042963687341116049154832728193057696180597905512034015943335161740341715935781710054851088108375731552486767647156219152303938940113161614418602487605180882684882767054396661068903097773322368341588118152585914850931365402938485825251193394705224660293596707748430472184349360576580376599074648563424729592540004101981289484793132927590431106854209647309255442523515295854429840691349184568523850433523704948848730050082571953893595941909472239454570977532268862970268755280391632740600098582204153912694469170659262560304046944531217563473882919938700577298599421023099791914175660733232978717487635964242171131681813770396182402030109738644436788679370208156620589243740721816876900455459147733150170950663448200561268948391259922456981859593853619575585520024938688308389242945877070570111995236334351715807989691148037040144918850027514531043070091340090838994649318318906258268672759749259209741911895667857964479158896008014706230195868200832110695910822989679225067526663636595989586455907213112565958300353746444874564904611744159949801490593258152243978751885424311417702047833428347156886707713274458434923697955950866864489046944812132768008341167174526142792639359482479219567170689317455493838824168765339948117806195172910333266379200598906812373229848357417233684552788589825398848041083560583403304511447927079197788337521219880496892303512733353976299833235152548140375504366880353211796539295618205246135674141205331602916327007302956067685436575309478558563252403006839030149320715172937453595150578471105524994474305803884715459594076128260452581324052165372923083180844417270232664375219806848395288555300722247179505541868556582022814487420605839239991402936107462196163898631641847257440453455294008798983524145229990458916985909093006130851015705117332873217743024999479337539500401785785139075308058961543498189370659103827659501998146912358946928798674355856650006613510812451132015619836689951174571902665002450097143288093277838847578468235993767106373433545482749738513571793703388985383528420265386980539637822278763102820328716518260436658713624008947299177688908678037466642173056379895714425665669505368510973323394631031425938023484317645755056408901872694247486221494583287463738080190045564665652271982085383486808584303112889724444655934567823098634214426736331346070526393431186254504831117192186035022249046002966450847217680171287705309761873703986344619735165111630705580488998693417479417684977605133263997914283201841566470002576284139868928007982675232790684004201249930304860299156839531832689468585709138553863874880165932242947388293758775219765659227286262898386369109936320570955123525238021818565164806885307485781457059817493464680532490400904139262622080055468034182003782837417305104544291344254989326336452877138065525152978927052205182415414151838751953743202764604708359178493517355188220614973895162979640933738058075137951529936502899420162883006865794101838584748165624649481721131662853820637060716093350223231292728856561940457349893732764252255452438466890969419500689121342738474259491552086121523857110243820910930952921746423947181367350262773668447109523485720850219063277464981438123903808341637617503530748965060423949041290002941487252522544818706487970397013694489611423903959028897089928119719958627599572144570343950704127618111921503657276295191257875040983293111263138112599290742686830839705664447932463450804002503385620333742157385529599668782463170103632898893014576453533067769696169031366181279138713578748769129004636162771426066350877176041985551562564712095362939624097743591215632231405520541995055212273331416225173429221295178119748849075380345613351138316660564134349432405403031741851939432141684938782946464129412916402597906339162171911254915147618781257909615853281780680680008216542637506534781699804669047459128725818239201457493702810708181106051625814558099025861470695533117168597627674809627164300999497543981331308764839923983060525119930926194469854911400031798950875111754756750903868463434045867971688627888159003802762333737968911667851245107686613418245103320824692597051876439069963233291432657954134162183513914821855952370289536041925021478354160455772660357772500489124428358780461367293792342623891935361095610923245861976789633784138932852086902251323718411434189671311106373275753551588071165413345468015640130184767749358275125355381829778464953590195570715394438336529962193303645648396355692793915032643157145410966070199342407187330687003776053529230350844479749404269678721122466983428711774862915442685282528216573059694684820181649104000772466598498974214021394280309860930370609703948684006985377841279064038384687683567624067207418860014559257256194642057617139973662127915290617651069414857395478653103368898625652601776872678607349162313734773993627467590103268168733672220433943859575425234451156643287645710415312758688318903829259469647728868135739984979001093611941968990216105260870857077084655343317999668809467031893136540326137262014310388854934734203070110006899467275716784003446758516876373892113449937927877308154010729719301216376686884139107997980862662731674477176432779621773931468679572182673457628175128628685051222632287459171773164455057825779921761455305542999133599459086229572566897308009711502154187729382767437785484939324796736849577438696657280870645894162631196614165318175245328137533663220683648281608511477360239339156328712948741461210960974790514927857203443687773085531736248125292426555119723526600652439353838709526284799104724474077591200662869022110786076515801375607865572871315098967495742064709685469800586435640834400707990440549724942365291671610825333479734932591105024032467240385826151031542011533616927171280514682401733369426366205981080801018707661692136826149369522950161293888935754042034794134088990156645624988663275523592848669942748032667538978187722029104002384152682845946593486584705201712393855550236386993387469777733363924869609812797540837860141078085492778050996026594049581169791954102193607480138508374549760291757726627903062266252316533236692304277385039404636590165291568394640575669207327596241113035261040501694981747383064767423172857884699325209968615645173663587644544847700909932963700488982523104821654988244160290152718473507912814704724392512464636525461022418844123543120041628918622762382549177312897169514939363542174122148365366541516132647887117948372285655987345995910749695344349247284616595553707238906965628821588366542704008567234698250672040263350218261041472773479671866991721000615431374513937545902991574325295030547168358652471368544692789404660938742176681110705667347491626031226788306977174082770106442230874185322850879270589638703306809943937037051955500262609608317460355798068871106162565690030394525806177719205016829719396422895623399837176090578382584009993129946825917191636501575404451191852300889108068494265288665263526193824936391990541935714003451198048435632777823868125858264022087069644225954915549870343163268520852584179675835037812365768717076667645306182489672804492113547652912800407447992034597549790479730709246551325591847642733764961180031214458520733826251752899564900154403046693927680248932945383662506468417012544111460601391879331266925316285897662959886639059436288891484793675337598526665087230056731274416084561478443638397411315455356364148944032132516079051249046992502980554782349616407599296140966786453674435475222996152285384311873882123047807928395964750399354660446308324305696967232053192713206326966359157296539143403721646959751610039872906122892431731128052571762309444721845770941598427579888004987004238824983445516572752326216372555896183840050444998054157645335676916653304939195538918819430834303045824399194701777281098502682774319147490752745879358338379889299778331747428728538153251827509532018284429316567465277982913054286178454540835269529658375234094114087612953024613447378057223650509930844490918870834053605869615011435269273657519558499994914429425679393143820267361325811672965440442074011540606928525820784085128787214941761316096838287903693394265008453601611089902042871332373388086975240325472894900932304718341107622038737699908452494801724105021428100679915765449588145826349784229067890432759404935450069338738987378888153400994774870999522411896851657141647703588764058315162895832915260715494654049620048296429663920578628939076524137522172879823467401709294393618823677065172885831411782384938133583345175401874078574104807208052292883215176948880455721471512228730382762271923525380426437706707859965134562418922496886225698286902281372007859717987656992959029513717147022025998979104376710940147459109458172390334591736416693092119317333882127857107559135673867074759652068071726747752996080772562662964959818703210238691240478242255464106551086639445594182023079362811035102721765261590984868532789486774179356319818484336139583332534178396628814917887686917985335897040145048403837204826796672716146084905765806239208699284542835909350159562447119982865198472401031897835948837457849332884703753453600199143125535087883216501096210282632880083922297057887898265177851215835270041530516810865616794204861244096370466149287019389881679982882872926379708967892698749816154151003138747572188052472946295862797876942837804596708331729005693266446044253538216125568100831305821518069985406854600061047759858624333322106947057681884682090896480041437252550213590513498659378387051156153448255416670772215715797786320855845082662340037678104203107577446781347653927966638414759435905009145178530832471207737778333711065354825168164242771422161479798729958754481152972926158201625873274845592623632638892920461215371252783544776614775890925548467996869436164324810323540431927750627188766658541876050824498182432577202504808583534423267639240565146483900923070305382773567663972671411607887432182369534744248962883732350621125733549636680100647506111557664112615845211625062723446623650362935249848084365603621015387236170969362557711053614626389475348555381636021962995274419027308389976645993307938662097799034316182057031591928922699970971128836459852462922501265986229750289504030861539286754270877502593036750447412620114304458934617420058018844956584674378495136682146253704442642822734966942875886695130790163971017140985221014004025155345149983587301126470177200642645846077150091357670370828167538350369047101094731076429311980417225118551772176326189428288077690943796455471315404211752246251916641026735620327923752331390942797655796999261507868443805332873412706712200293318593230748873086156059673403876333503359124941561967926444176156204033245361701594017248137489260770347814170394640571825618548309941092643210454946886480438964356973356035820814143027115447660300489237576840333981565345488054356593506541672148098683012639917140287733414122675962215766061640892750227429594132953065399026402858690116962369648754224209841774282069278878268604256759518661220365117704725991404955983247911292962758870896252671785731396697396430955959755547816270075091078193087825828821315684406996233867424263930810468199356605270020715659158619843649366369640512715532046929417927662527179027442153733800970918844028024112310299708222528882390027505665268171037087085697633814669301463352086710126575768897346820597749436384147411627984952634016336520329867969386874084219168888731820193207081733426272250554461453954681578422558049197459599304310784165461397263528556277241419203154871486513710734413786856967566846893498886575549871971231301318563941777677903495420848384555017696487205542961959143230571763175438699103890651032963130192473054409357935826963789939651990300415154368362267279706983804556811311073143029485366058087819043971606489961428203771579023103873951965978495427260616549442570983805591806425390767011608693111882113934583144246456975441420883316179699326397258552484741821408709053128406907901887358444495325742288650615381168836572821807233591198071663309236496144688074410746783903970046885280466480213316479078124597518559982848887394003061074156308061536406489533480022902443631311215329654505848311757201007543112706272497524315689350439457153345832937047191648207897439366298394719751188427171254501195124404293236784134948205954117200289013510942455212333287053347771512967269061107527430574474409041214703286533811191199119760532102460104181124615581173695707217215073488428214314276275502662454265546782188329920979016555143118880899238362202293896683104129569061732313016641681461425570957190863324091643808973558352823266731004494575776172304629096872502732791174106928520384304255402195698460308948103071646562748118856608190615591749980428915893726972844157258066588273176398678262277819466666702085701201858318807796705521564493258300953703210899197857663649501537286789287237791863216234832541189679568375766819163567957333078440837989124714452933229175187119868978817664020397811613926152958676677530703946968159750204173506645261132276967121816326090613381220440126132744084616056183967209998831430813256284114258852054409824319813381902302790656656001871889076726203000657515692558385196282236773081296312543737421352430605694302554207116353100778593123518890560426076666383013016556859410139930113301551229308532203420611464879706907934228462067952377540077392371646710120324531141563429901426529257423520849307397337603283700709611707818367063141237987473507028335049575396192637924169167784133852122194749059082056294336712800998075888982084557048444286634305954932417627173165269560841058871993722941233798310360437241025751824219380899650607393768346033266193016465800657438241961649309873376404771555015374941284259297439533217333608110464300473562684348781781748235270178942903047535784864763486815021928927763457886939348413102168669265091425513889414067044177747565971662962354899333405784987595638899997448367305947591821090869251205480386247485143412362233142974181419471990550522247580022647882827251828502522839908756651968853152357183221709017994947492860744080156434981183605786167936838348978735032644232498076468596030346793933693035278786048585134849879021663117045331089926152734417411746557726618609955165361517111595208383299866420577038448536941434124041437770093032605741034043975829866889647472071386931454710222943601114794523215444214911865879203793176898544402201844968522566786886862042366316322527635642957522913199769953708598573071850450189172801389736985224347827539381734952069904820909463891162958641198517461468573274792141235435151153598599466861370568612063463006574524849397085894299821246736598211741905712297154238705258443382102208424525612711145658115010102330722676472771594260706647392205624367769648263172650018102921700645468966416175109510511291012605713439250646050137479300291771452867197857349997968456083295372928700960124757963796196528556257636069471346170860690936275941774977513593041162725654329917655953671059674583864834786655344287376476846529375596221908932745011124495411966252794367452627508508829915354480508384712603146532390848181581061173489191685530609998382943899707943907574410611460952435769200199910066724405153435188742873716821272448499673322983209712361868213372059035505129370225724600357290613192976615906367549216363546452687146107833130113872979095625898471633526562283048398361192904236944439292234943637185163526779692647111712285670316075694220322718357258876473340117751913497797661152013308426820440485516060306026390762547101008773975419377147734405252659133908994043477695684485614704133360396310410534524775428016966520529928723339269851239348624152943104914735686459837547843391022026352999308111407402761357190580683381945099194763753696073900555324783687730964258563072036193259837645149278124761415604622855247516868919624082302487117015144770222449367294684231111473137966407303970813724231620431548040060113166737090590951799116046594009610353666094957566204655528310397100056891033304129087421383352850403120686185010401142121827221021454110031483475575529225582770277146224307322814958028254872727635308036518023208943717742509889111972178820725468681901906855950769087210765038686437071544741695717949058065459524986031770561508597898740465819672862464672578195841353711548688820113918468739600872017754401834766584206826957851340351921740939827864887641323109340901105501341871974314730758003097524139621222614301443081031548014545732187771047743950440919386300946492475531758679864038982463454115308164091689976083466747162438533852082807902225177940142945296316638458618647819524240329875527677954782905333086585210417950426125360558536733472734220195026279474940330063577060764357625574636387378026583937078905134139000558778683150958636323738818517273754318245827908458598493117124598934536738297856967122317317461905308954486672226670120385889705110867921461523898559647166753734658235275205132522736925161713291000908973493812318947603684660092986256648928963454561489666022767160874070219563261257993347774685278313006729332863200065393478424862775941198625298687025555869000480300145259941123642891140267940800631260915867475884411527795816820080168435228483057806342069100777477484590231863322719661981105338135161646065379233525811492103166605615269810721939870068658588119967238591926585992686304772926089277714763992996088725512574002263317424710957129944322773569698988554100964718675459021798521127930791888445821983417247678880659624821711064437273324529590120150615302990000651848927875488229629875401072233584483652546711572205526897963157555068019656799451409357140002514209368715669898370976071880225228392460265242602343721175503602516758943974839842865492301034732463875804826971028135753334157293225428877226835224999683265194860158937201337340039932358491986509439828524696601841715343111473059227469203958546737804830357508849617082667589803520238703072946471815650583548460160471692530702946438970189278107470857066659848743064481640849908584809524152704627314707267042399990707081121701798805877405195827348119305469279961509247820563274935346274602561902958982488364151251164451176564814791809474498593346442372356430607429771812179090591310529317050576151516032476897329780192993789024904781708159853278445403705163091212015989168342952872618499772539416070362598848505090929688879996312036857503043057479480702512379522495934348923900531618554253903242587556113828692209946348424881124046387563804838117444870295908602958921434821438881231276574894047003348814610890960290687338898808171775579786346483524248278851327238829862786058610298183128208785408534421122256459399560483299423842217294139731126476793254238839510623202450528424151163521891110045602168573109411437139976091770972462892039388614388133052016065090480580559788414624322204094064570336736651253626332752358093902619428874900103229405003421558803000992000318063013967455831143384979947572818458326059235711780887657442025226830557908857517035498239520382902428720988039367612741914058277989497155658507143093415691859917097179053370950650086592885462301597178148945326784738674713589233538131436767588240927732356723891527667229010140004430263591003666282816736400992072345192652030778502594933839254638321948760071142218787572923981433376334409485728862801697465895842272233476835598168975526676874899564093548960444767994410464324010363253948353318735509390495481460743362443269015479060812661403867687413343607011607085144874575053627618166197253800746267173613905022434287618779191266004003646773542851774446724213953129150308605881078372392320266196901810550905486891605691754751724446931025133598322887506624792588532791108808384841576589707375369154241980309709811017835688897935059478097508011666013111982839315682536236743380740462803127712087332268468617412224310713652566277756545657671179080502188776279946425196998548932294138012933218100191356156311516162116084572093569630105827768199218566914805355241380161248646014848321422649843795783547759643402104031043736195188845623245575771132397830017701800647125522119917045904248377392244156437583365937489580752240111627759272365603335636828633071012862810123819434080496895560294869140462743093717299177081748592919546285362945513718120381712343842085260680217920789086177631438761871487332248420186128305411402623884594190901817189307537694856611176924672695132433213191008608422894889227553006806036448371362228824602820261412346765867717881506808884649614282321855630562732579696949775756680898335698571432696031481329886758485505941473882124151577588565632066717512377739199186207310502483697867672145006240507931394285933590628510401368970897400957459709353004939625808511133417970466496284866888332103283149477194076074092894460731592307172708734171522033108965327105699737043681870081259799893488509565229202650222188165810045984671882798730567132979426099801852292453861491941880776476940345757054366137292505740955456733854653574786951683226968261951653619507559052889541343195090373171119693038171889357312663603529477228989585889813257758555747574457540257455953696442934204943160654794208529112021532763775163010255777516180724841012957215729861656145956941604846103881354256351305789515483546181016963064310664410197923122934265273618285494015957359525601547586941542423707306053777481159649656486046148680734539731172618602909446074486977911893860863111306308057025488018163014541481787817700570921960100151371611590225515048178099766486578730608368345397006603175590984390772269094337058895928538947457297207801486484791111158793400757219984573415994653669842676023249895274461534998158094376139901629934685579535621990437861137561055847385523922853100966975820835889445310659859914943038595463479153555082894903796784718567858472994209168515620203646651558091164032706221604917725130858851113512514772027232229033034683272255518569457079070626479345206084282549989301297262236553126888459824847871787991504267969836376155879170682004200229782833003467881461276055296228800338285552056451052141299608278536111987134090245183163731317047117850335010954695943906177425316422869127413140865546489140609494215430027302846051956976818914702613297556339252507107381884447083431262572060713631529476012749502075606588744090325099454064046393720556763622396158915258991051376237867183683055546205665813166328511829845453546470432231821386196455526616261971340258935107315821127914139383186654993707997278577246798836964249607574163801972983537528816748062969782810713241278362723617023437281528947009325866999840737751732221737497789867137361940882509159917478871826231243982726763643127993811482214576718702684950028228490371905030224412461222935944409373339200698682050531796366421332853289903530600785223760854728220366439540766031156784506045975979050268949262362857529832518537211191804706526752170558049601726066242859503544379926786180501697798847800609383910211151446897275087208889966563817435937102912075980719128469774696931862709192463606197034848968207268287452234028641184415240518845292163661155568881552670140100428324886114162897575356733682893324149609800417187488503888741383411731972499903408794113296870836238291470237400317447521572820285574843516070636663695292894449073289476594716479376086077760054680907591911332104853536139989529364422033841735714023686456959571423789319261029471580007215612072671159071348206092614901450270298033057835086336923108756886224288685111345006167760051165804508052859826071902489878049748757287087815535921636032720655965957909549798663131546188153830761171499817223657362600931876048826414262273465139129852927625855513843545678607809380299312143127504495742715288068819737944479900087769926014920713239241189626067188075189074742643900458654653873034217402940894658126562697426696261234487769649355577481126331215294633002011660498696266318087592789101771385216092517237900287760203883215644297637324605766359107267770181895198203095015129234662488494697343548363445212843453896142071350372415240841236862069073857412114413968261252913461797945614126883810950447390092125032691373303118055336322548781785477363031742430364851697399007760173801747161250496670427964490403429268556479723968152185044792189661813168050794153455186755297087703586044172564201500874452853221970644821832684753059670287396019553820676498510642074917992212136815225740787346547606036461475941626680240254342318418153132641327058900977213045977737363213735882769512028005079094463291811871408819158913548186566663956783185227078003949387247909675469418569053267025376425853543112118843265037605895272519239233462850153528772009269098218060658641926617202150213221234021969649074575573608220641987331900791265582732794351823265101125997502320717233637326166871978404299165758832578504309092286436898983031962431849703112839839014398049424024635164423888128627111637277492176392697161021924931090435221627808245721045273925361471417365097649805690447024603295306383729791307990364564911336993567638889802339708949603292932242087558657211077612219498107460537717151406283148716334011386248390347820879982522775674677427766049786803327587117287601373929076878683108532845237191625430375242404647490325317763777302277054598727158614249559135444613814318301114110366460943657521389607439860664796776126685183253512738793045032666598248664370724382902877713718892601991828322191010207280612016432010655466400754076308409988124356994716826242113148218461414060737570169665466265930533869164753191029472432374322020900958107626059919439063140974830568155671088119139660888789555183250265151301565278543514166752820552607740224126680114830035865917841620569951198083235086732288113989377307399598537824247975865694725462433068089568462863027790939898722283057512522746690899346414890479827565797983928197287367377624743534843784036746380237091043788471300818298709446708288872491284513551382625081198793546050879434880713789532694994920011760227955192063922456259648137488876116357895081372137297585332713095175732080899080167060275382289522591694103038426698317210603300980078962275624878756174478724816772849066398106503055222541027703289789612345856185104088129947981153178417149011892683752101245857213955588384512280071741353792583091318208667876279265276973314960024545545166047512590256198223601290914278898644409965737643337926632438377378311482959939198145991559158601553899977471821073629883286321181181507409998589286474743234609225286494624049316014662172827761051777181227533874018572781008640113035155804354664051700057250814640457966427634917128947807218547835405181353295448285794466423974392073584028111769349728614463856074686267538635956666892447607046730842562102783820297408638414314824708992510612332627904197949776736650686794256621574995400026630620400119128453420128132035840601053147588891241206715074993084532084174947669191371398443545708731466765448918806929839277934989861124835796413616410297071171712997622043484980757899958928743080823250910526171052204623078346977557907913935552624705131926244377381816076957459780393066544242670311709423761840930023311638285185002551925734167139829918300078510196199865792266480802269297144752124051906132679702673335965062917069118286868811118719269304311060298000468341635360025655005368867547314783707249053256081942377470023789262416036092540746638961263986023017772122092799525508548555354376637077159782473069372018965493816599277808304640799307570338439457524172358902132221524814154906348411080227178932992779307861598960773776086824263870332559914456622545617459949578754253932355735619063334294073169753906372461499131639407851006795727872325796302833673298715781693071568247519018918407736153390189052659549403327889754962779030541220116186227573876049943625868833874425601009401802009977002683175871007635780071583955150182339660293700272451251430343424049738392889534324376622097263696521309443439406358008044126835966461161345145481040954233185813675797309510413109015501213192549121618787269508045907375511484439418176053776928680814183675586247819823451771708654038129628567300968624887033019633444510421957825242530129407089944098240949077364452030280615132156069402164314358658376642465019593969397393378251964016870762962010483325647454012690214211255974272476585513934893558218621374831066152000131880336704342967364763167236800986427204328234016363318740685843979229086198265744840349238321699011472817848235844793214140940404251487185299426213913056679808888273359108255232169315126158887898947507214773738205515200770175104927385753229810600243560615501066085318440218577804094625452562799342728541887927478159160205022444342261420113411084342662988307446305322103016122065841882928280350566497926275979913308819982697811294405939367060948520242017451063884577331006374679792415484654403319632523320357817667979018947182784519667903202287147775630107273023181862447875984749736467666438448216577080238833267187727577490732876142953891257662651893672143538922366614922725617146949713027785488531716864955761007810189390667246293926746160081591023300455755095256027814942585983889830402302940297427094257989149033603610565581902394559353294746905408751621598382667781047396289525254182765036955432299550249735412623488019424609230107152425148335558271060368141782772374488751272102079823389913212547346231921018505324946622121856790835441412377570886916931493335880915648835796760173452395199345530674953992646989969032228995681830591595865990166412367517864003337851751039840087091766258177820317022825906292412751576518707117625904845444270050429941232140224055619584707723437597548729539149070174316657439722259090858372566033487000439202482072207402474043418876457415077650197960542733402553095095652424378930854234506091490235364019062940867231596799637044456053388013129151994943990575783482550688411481964985205397007113239634912029746396767197585516993852217355367534419331534316927937703226476361714799144667152028691921457370870440898049315764468302941464708911482080279395739355977084229283239786926739099737875551879058306555360658885162816219881560698381510413143774044680779287822587812109796483708733902640702002462319790728615402640401880007039046204992658922393330364081841068499384965563495658273981942958470329745865757086560001982814517664199683833430540432184864559952764524191921903405689681357335164369060842509137956354037153589405057398130197497867124904853681883929026935532706631248248595529906438867391722778778245731061736851193407233962334739955006873457159470929019996706037679261958319264292931573398478697926433834287059522457284017045688094290060262656792583456003970932079756921290233002956606950288835713283921830662120433636080924060132626382000628091293058947698323556388333502468580612663828047294472088108845929561656363669127099755931184888490536442203281092460674790392884195035352945503300866311072009333634819576546810728172340079522276522679707745419670146338957035916340903722413744748130402840042734363016222350345984651276784744423973201545171755506569982155511014107194369865935321852059484221826619079567632761727515057383875625448821704726275183076988339703789806946299139682306551206155173792776478018876488669825794462474444348154627801132500684164951571635798048229295343184066191048741848572955071089026150839738741577767502739787242499576737517084395261857501529260565424383598469801553994250494137835455107358263257412632333868531417259945986975954767836723076334639368331022034063092358316307403463713136952884948156385066200929615580168106339186354577936764242026548160231563765346188190931923884179304491997271190307336516321329040654859520524794156915867294205756797815982645201834805176163500312270349591976807647573050342509781002257491732912572500473763966911189129440820993202832974035482072218668909392826080197182031943097418889464507194965334083204155766378232476904678606119952847559274250173810929967565664550857543940443194157031198322820766773300071514545661296882970902990628102019042171678955153152445662976448414477422859572836237753472769748053919408502543338967504242050644403738065914731741070026045694812916541951899083487606322070745856634812358590667480343992320868245785804717531732130918896809854764886457854699110728702490238685824764147076466831758098202060970836055066883597940524592031943353704613966025320422318357894653473771368922254354518387355539966251943011099828615798191815648711804616075808193932993469793853590792405536029027669695252973884996018393689038817915812357617464235088843010194186721051091027613986899631791386842466838590219468067755341866293520139187465222963070902260670834786462451346072236039916869011139109490463429131642584582105264982893223246543561201202092376380209084898203969559741677355526966259778821116073221358092195550051286922139024835730338720902048094328023430187987451869337560768063217139127793916703014624993869123718234383850582394956185545725026034790322767748865680206878177101041147597929177924892402660356749424604586800865626916465967518282413989197988934141265614862784528058367312462945626121555810186823040254016800548702980770532154746799275012453784003228925655165932236900884629143635600815986071433833379839433629997510160312039648020418448516869739710952486007554619162087895103655301467170519225795158099608392263628000575109224936608729909328194336555234973852903841402286234351749759713292970739501312258343876099337286400968089951094312872614925855810230911295223244774446970405739045993603234809762091442907099453213192942578282461563903072095932277762172111360914272734209461832233655055558831372373902067198775083192479621027374259689881356513484710988760224082019469535162293693097756454879989745404833201647095072824332621097775988723124145615106893051402788637878315537418345785342237501577912484167116140122933716028652522615394371823210697142783190156413553685984836669048682898503921831416822181412830618106289210540327113684711833537735430305582699912241272675188589777884966788442336642565349267773886564763436496989489048439257421356970432999215266993957407448857458206859286621911125010870771453590906728807896961726220309311860129324708369438769438120723607783160101875139707264461159250427945352064018558596799082029998712015106275899211722203899660566938829949874833573717509204828671698495983476021544361231279609083625582549112980292494513154486085021567682587496899672731528346451790025316579165783520342428577432462749183502218068745767291189687273476757038483064661675828739568057150560796169657674508280103676723478526530244106085828739263977818954235448503827296131022001351076882431733196146085088267132581099985950405152299444403816489064330854591181894734008277216485498377683294151206838686216972442774506367144568092909623470008413575151510292829292776373753222005540062547059708671779413937562437722270121282377879027833164351971128713472679541708854548548886774534487090257471056753460185712173771548635061183605020670106620858628201073549812401152308936821894143505793780753496321551786881940421677087956728635841953499245715938819779310988577417646494101051082919695209684042486642981424885071080776626131109534310239138639455699279107098746370557599072704905640484991738774813649555289424434527810561190469011021410360150053339339395322470280489748549904097658991453131441345459546403004835973648433112613564883662351519938464594800398594654075246711143474723753379577085944905565829004606034505694101070663965055295150566963532256176729731338840484312314249390876167273431917367162632187181305590120112054806514887927493479746547504490040221779096627001595690778631207474983149054586608341105975422794509101422795132666559495067311242765229439318476943624735553086137557401798303863391353667752697656540696964057284865470336655382502339871884564640066410552231755480881301333019002060273477293091519864449205808697131129069569349852838317305346131974622342740443867509781047678759659469493908825415990115029951016279336069546151774509848809513958570960346441811011530579732134398261876678194069823993250566299707838857741034260213960213730432491940599795762983827051072179380477996590954162797675613444563901638051135307931881037674958223210350506121558134314163391381486585879923655266745679127897345258034089041347116459206125592901932915642965302081897653707192142734524914685974387752705668923484466531676046985861820255977020745443108817554711711278078004425313478512035032377233959803970117358783270450459686926483755587753447504069553719423463353023133402352299177323171083842619378081669837756360174961689753655895286287999819668345203806821994122412812302048034533419882998189735052612893865746505496748033553536603100348415447042623930489204543596975712447816305890946019433803430256434599081342295359992408392257142836961880335048291140870300570550133043086199535073045191613638775326549647333361390304116919140095146315151704944192004482294452187850051068269060714821506088837672306014643336863588828082709001060192183522052725910225871710613901042452106297507611198976498372780944458072618439313360984659483372240770113724988345086203686057292017654342780530970204345115972653133644681268585138985331830794657429858324033981868513879120553196475133445805565567668170319985825312831140893298325085639331893549386370012166387037331211891295448641685900675217942700703456718294562011374989252999221205850969661625267108435302657332490955373196166341905388342299392170470805564194928431925767235085274811784119558725344724373889475464250580410868685139950484229381539736450513345217520778395935963523617462463652305917419284795031698496465027705481942443281651473287405415077225477645792488825803703395746946648403411981352664757239323918841467413349505806179704050808181830522310354293470601049770370451912551748287187686587360246822654603562760295609342665302132145707629544230911571842725572224866059556948349404235585794789908490517359481395003694425157933115691941557764099745700375167786756148606028308472653940561471285541516388719386050389416172333056552160177881115189365773553013950847474282975450691988687302947482634837413755677934113974645438445315229769003132894454521092928022602747212700164250274670090447396858606196527039336282970060367667947217812829991120142340418068229406027653875112474124594149075541291601206085401973110255303885942444137577904726779471318002508470211134244328441247981086115765783119720269944949143471398215440179964945529832797908377805190523935789395533418761370699754586571144087731316862024822146203057953689008091486269143745884258851752751637824530385527078870201303188556992481657179206862988381349677348850299825131228820780395880872373029644275951077396190554243814459507623901146192882078401043530933385050451190662446258369793000044254801553222543648761547093252791317320661343700410656282474531081352680133507406658922820763404481754078893108188451639253645850192413021138103346921478868608671134655345740202960946944339647514034111294169859800750530192613435812849580459859130728156459161043202189552762674731193906507376662983768315822225686182698589651460660356880805543744065833940338852717083702641936684929414538396372608835860018618514786777010883634331448900228960950435111506292389786541035998779882679196503416099731608812449640476633626947574151765355422962917271910050557695565107809771687122355530415274952051043427071791397060073355030956030679207017163006039038320632531161609383431180367910118352135185555480340237551778429764349857122840781858730694377070636985290189127310811751837291458488008417524500447138509914455646249001368714814460943372769469983460115777543251986439037748119987300727424120139533479497615238149333779149755420508216685286773060221711995940383287831302449915393258895905994440766069778581540911668589482084649623184661371140552839837154435938368474749909001850256543684752782844346689618123977051337865879588540012636169802820960471255111870847695864592068344087865072178088384026902365593183459224819511531439984648176113790002224269935545507121121339999657357412997885320694784381330894336369053501667956511769607090399042786754430315386090011018638620280673905679726614524835059874196506926398144625110201773662291227537216115730463208317610318587303378817230510580866387014862834482939087892136374556315399075360300378399624758043853951964282814580705696109780253650309270882005942187692451502642639972005334295456652426893912923570150863136043802421569913986924378631495802380760439647855824606292641231360353189933166012739604878263066208992744383135380787658906593677031774392384040404894656718930944767833977743709526534667379334665700637806373008561457505596853225292381509916367607614792422990368772494755124256603974750868799465015991278695918159151676464093386544406253313325470468634630473343992738658537857840237526356137751311781281396034438788835438994547964778622956545941027694199030707664283494622987728341001118027168099905630652885575684596126819779254111810387509079225477808634331622195447808825498698190212448911115349579950218928880167373328628574430201152438384144486781462705406969123255250520906639034075124172065192067392506692336207343657460206320490325392672752594567258414286477176500525780329699152814943279206769721941204521516239803141932954717191439402754431758473096116169963301970809258696680803271375114534971580896103321390557106187971742826245126282294353893478473768331161107197273927289188171558464717861959135657747845780347304507851719275427441719060626713937865282836531635420236993296103943897372096722320978765972645470815282869879040689888035497801295821467909927421473774142491314291397716553912211147149112331720356405042660459730448934757905176425558883188323372223993296668703512143520649091022347722798901814738281906502739810423943760864599896577137676173132479109578716534073255163673574691274162394096482689641428906584400067144908082983218327442226338751777087334527238155227002652168872574513519272913927805082756410612499563247814015565383508739160791144905991359012086145720652150951592732552948424410383987089945750330328008694851829793609128879402007104963861294861505571081092576167981574117659510259483176612010376846661410454114449005946222159058839678777425765981829740658493388226632315346497850988094551145686696491456781616946182589589862502544254376906495557501311065907585436990659730586085855422164406577932649203645679209437328956447085475663929465678521917447707893104549436577418983906792510613139291724292327470072655494288235560181329501430264746412822050119161891064915625818473673692168296135288888903958246667967422894227349962129847724276093087362314204664762877034023012352582442943060874457157223090960701037026816246499329785139253029991588265428711956578915920063251927242017902431160644203214009211387872859316456886371489155722532088446530009235393164684334334906844755046636369060745925963993151650305617335888407822907433867955491608904492658251476204195240619619249728163826358819129606205867828435029785033400056808352889752224853219613696198297419268193484117436394053993005530903650934121833022287117256274658395348645166774711242052005567573764403786573250597111075574363534888241241808259566634685662607441721666232622642021708202330626206298403369804651672662598682572153473772335275046129694774574377732948444265903101958982991793984948456173100877397443198944909879288292201742928528178328335560181250271360580202195154154104673589167433120399294482021712324804375818961890300888962773895840971967494522972336812346075040580038306921347511926832692457427758977663760847374294498217817262826196506260370150878770432222591596271410489399222566791973104958574180820216446435901438883721844953876856923076661030929541867578928193890395013421496702979180741535723881222942053185854966735488854865223760917222733132496437605717269311079572187818489867210164413775700489964329137786702303623010719817478318505426866506830100261953874824024066958813078853220563071260935246444552926236110506014367776910442624576852396333320439527174434295974013388199722471771149127054455146507828354853362980567239592138745274523187328336958756715851476219646864613562831950862217108566191826498758792628863673162220540104530409259799087339378947509297339763853618135346354746764734300047207320018160406204002062319578581970128501598830302219875762603961229758226318840967847179019949276728089895313517943681385741535547784036322294630680789714133072629395482487980182154414196276550618809122308488287967145629880824717661532659381474680954172029050368170109087099010434487177187075448583728646518429596669358200106457096126532652682478834925462892325599057715156818929283793135301720050773838808895692989413557153490819386385531649749316110282035279879070558668723011162765458805084700677617931036549775705468808581259467732162404396107241114671254087441005292614036526093634528275511515798823860207016703084539485895106300840936626183378103589122981436311829285688975014362897254026588051465760727864819029666119925356353500635706976803255582959405395693094796782691741592934517025574986997971468051324522687176641490742298205831960930035118512062731782015705856095053804840482200322859297247068003796450351638225061730215988960717453359798188585784176869966412108886401196577519892370844387134751696944583215382097116839789308671769966083686125609297587033794237132367994014361613460798891709063467716401608898923330246029538302999102354544110813151878801393428946905806864784625686399393765039289095583203276545062504532924501672218609736503669001332388135060027228534456310551971945075225471559618553564172759997440847306195653723335188419847751141315320567695874480964034853922882626263434368058023585470101923827869686150756953795734619279067708979852959976207702730582623816747624466869960527763118265200252302988774150959616256012199101773846318383018234372905974237739353540050092617629253403511920869646937643953801169040579549910126603638078989974030725997271178869339648487780386135481897837252365332521500097685172290685311100398536855184602474007267733054712817098975075058393381073148966096500380310889269235585885780381274895139316700904150676960860686604168954843371361702205973514623639905181321867753413284075130234272559859764636556044664385744544318338316832283312410989495206812978356272395154004704785505574658781172440878545974368118800556540332037642878563957896240905618847068175299435548609492947001096102726509653723732661434736949633983085609733746176060648921127946915420337736990885143148271026523638965366611070252944502546971798251547256320146423577972363906937218480627882918788635696156350137438011141077703651680387286088421717557895378839264247774027277868427342702222286450073116773134552410662145484798114285570572860786467847674652149320378251236274117635786896957786638010683510208411764356478250352078870910932141384051608396849097742655918832538584948434200903110021417348870843567307837707507476554762032696276371033127289703952728834527936086709799819051156020587574172659583062994981576153218971750372988510704847622995269478782190065149637132875121104970186952962663964775973452835264158820895697695150277086986524614362627923591731490212387850990847008745014463381614130780620063077511673966156892814314263900691069515543840458732705900017230656224391331738010422205066154152578367282799126123822561703472876950708817424329231970584580992995118325268588442421243526568294804406040194206472657180232483184450302125488702779453741912569240900372506306038364300684013180154938392800839358281939715258750575188386490225479670387848741079868896383912865644446827493320541348660715127636996001837210376696018678223928524201695914782157611782185901057392708395025086893470505863113345552739986587547745122573496173090034642598625284846727021356911195297338902728549361762487156430920086422935350188322034787036128483543727087241646618976689301134229664675825219800964713438318264240820997023861152668573361825166379202341751118721991318979464137393696201197142074247600766651780723186351605383411194889863259014067026679302747087717596906181005930612308562377977389592558338617103675210041365052014149912477471705014646118136800392130078062131695040946116045403149551649603720438592640200985745984065623693789765866792832338468967935212795640315272548005403978976349145773388086710219867885650748934222959615766939308374623735736803002688585594893408757816284752828211574988328874887649043394562171102082657108368880435015988769043047395852440224566043052714837794964066946332758636254136863549887343574621823306020722782981341979242015944558765515385258233340261295250188228880382497750617988406942243829395059246350782669182495147300583728758708313171063388926068822699896369692712716538716083976412368852750380938997569782708339813500766274384747606449457443659771496597674985646129670706287006225333219984255525828349639834303217480166861750811131295935480151558046967482792056985947522320034979639321433897122988284189141292264339260928655517622578526473456242370273627834247805706781784364163031329742302607856881040780320682038743635690327868262482889466911797706912660786061106107872888407665744794098790626269706896715912228504356178896852408709384953042523384620098496510836035588792497714519441568063315173791264616981410467345437402276114093220149805526889274881237560579022929947102269597324169846484103073098624769216017305846983911646047944348609220514562266990161997610311466699670433215553415949085956078593181676192312121590290931260590168197527840095501755744952958329236523574719779762772977844472284192408245230411616652592212942890302226157297839504864404721184167958371835974748865571496595578369481974014332517998355854533768987328384103119683952168747487371995747152300567127919963480316129720697886299645466647264434537830259564056591882929373670508594141237136985835356860395692818340408389723077749788442596189686498493649670297991173478509680222301281401812121273714094054741226796190198268108174539203265769121905880737180101375477839916940287009539639773612902748213547249825014150949925482543677174144408744134932935382154375602034240318648090420111148660270556113524273375637584245005247570665506821816900755105078847808898016911586251616546158332801424211560492891217661330049773287973004409071599809303046927691935573723900922120735080680232941414290436776373650741842879617504533510527658462815889339383127078017896947668544383554612598726785987356830451625110043639544891612833655086619690836642050228307401092530641492434546072673385227929666667130363119717023958666943617518570128867638143192793710240169790757759847955155741243114165323641687845578869384016847227649724985233738585272835829149997410382646660040414384908878088626189380134512886572382526944284556136373933876503694037270522145625461985735481733421858651586125534690073505328687286783831645112220631780983473550038029662984972687296965836525457429445114942757253533933358579853520473980249384897353777732100726051027144366158392694621950834284650015481142102660130155228120220896206450033102634308806654187671885408970483349214722090422774454532720776342898798794781320998032568524084852837859269799258296200819531568102830309123897794430280310494639109799108051150283596387393033175521632351018674165290753532173052312004766408633759932338825206577188273195860790148771165547917135444261175112630673830274384655110294193625668832185355351734368983117556231004319008283466294467666876498241673058161406937589482482153915913538580175903402090654130556162838106167607473622932670522201805014331977241020653754455170658107310790478558675416593573838363844122890774140545194942604585981362315240841478363409736630077567541427122830755706222992331721594008593768942444489971719013609001573848646649511749234277029654142500125299695122224401420804981170502081753309638105039434936374653436543811796148962558957938584830978161405103352867474417166065043325150772643489440570705202343185302669640039170087058226744633979645118940730876716140293386509750535741653440096404825162016503425726479549110353432894274264041345314688118413327696150747903405232388264084925775948443636165170362328206493811551885607242057088178937827699518488582418375002367331488711853741185441747025241028226047415091484474802066715305452852809416137709280267502159419357869743439453609432439485931177628934368788971230427447550852634622860707256710449449995749852782958610930394550968861572001329401806815344442153861818499898164630253586026119261559719766655339908645092302948782960241389660584586623710133956524232808680449321705418070189423170869346242343303152082336713311685789552262464955907799136425381975120076278602997513990246791836110070086217516245627404941742254759615275385519509940242162860036463394128927658412963188571881334482786301160101484516579835377034901278223778750554480342766114325655391895310060206679674972169410380235271522708407379277715299936172377380790961923334959878762353500603622670456092386567718870329232863697496890705625128446663000334413694714755507900331146939408793839732623724877928115016689203260545407697084744702992092678297861126638959836833530853468350929956550072141008259679731832265020734951779659051088521760336440885118635548536539342838314895660460388012326796179341262387750971536582230408538446344508126662169914506836740548206884542240909680205477249897427384549240628389406293525836672908398291081257007766246481190466857985403834301347031108271819626857313461854191270627527971910801406191112365880313708407262874266938103685892930384493075385174083634479674442738610426927877802384819043000816501171214836205269732963181504549434652526335738020360426827269275908387960765133158540238919505264795316852154098920376071944609225717100516013303740868930127580783136132598100474436914464865293396811639144009860734036830264424967330391180637910481109634804071262181068454110173839775865494592774899152573788994119131622501730246842285597611776775546920773134501935424838735034529214828661007124289184574897870058197629388463371915357125333084247893885729762445818048286401531306210444983652903644182759474839808922352955164573439125067720330710094770972958181610641910517437946090201181509164592688383544863710702374766089492732444389916310826273356195730445925253214035299232089958465541887931815937760209217312112589399265331820662682133746105851935491855963575413130707415892613279938956295661838476786792223098808828090258800100812866309249269907114948402120004797799394556134808025393942753858584409842540152136750876512141264509200732982730703421517463912051455411420080759407147030801950584370995752130122211267856298097239106863137936586366514420604003306387369351409116374698438021783911644439776108588611007140491397340767071054987807890120682738095695408938360221251307608356443496461505822736706608022918109017350755508203579765640246111915011451189390819555727641633606955857065858817341708480233402239138875041486415026178993674331240306098894199027842697857895914425083587254552210900075546405824309185322450075256568101194212717786791200846787514620401774926356599679792482357575099034533736001763898689638082125160184103864024491980216984978432837148870237190223943541643084716579465209700391997400724650611320393329645870197848360835756278830403166457082502115833889309021271745853932183798646063802806442187003688844323634014010969844599787537603583025815885779279681347359681468280859318747763063336185997353088949383874809040863320915238735806974824971945862096794652842133335301211355049838251570078966950584826440951606924139869283847626806855749631510918534008728439476880021688183012957983577695673885617548925170308691282231708996623311624070904056944168428647929985931191480151931213083491298718383674731844042933423348154767841167385886200688327894316266155127998644370085820329833308525310509442562619756080890838195663658237884961479550972122441723866485201127815420729311859358177957763602102271165100199061054691407983927241622078924130691929608473314693007894859480038848386453190527682671709668762165959784912625542742290317964707678208942614762272697979293074512416698622292587035754156118370422640978305666463752189672755798030640241260379311784415825822715872424822854654451500794669473425947647139490770057688532335972361451929302968674700706963803566453519713229284909551177436327298446955832735700061186682023657445473773346219606004438380426069341268554710576865014252646192191619946755954873558068779494565420829634970220499636206115111583946144308271328583346130539008041440101265591176652513215482775352570334308616667719907703420729531946725107320670473008992596775689746280920394745185458643865283202664863396309644896594815327667655025257687220555656042513033521134470044407768213960356080475533862150244974052614173908009631877109599656644446200922894033256772500091488354395204741319476797393546941656342161518396350377991799575326257348663850294921958362708117781599938315817159466686131074317783906811629863470461195878789478865813505688791427178922594718495012351772805685100813825373964350753090667529513667844045107485279789351820214483600400598127248586153015466855135613858378848754039569062286358904232490291628888839875010522698238951029755703962331747896299830530028306704422242985858717966527264094726001403739618225762167814992021717933962520333819244484636760063576020092538272677423378544118094019817601787716618347772260002307636772245747393210351210783700363510714082827144262850664542186203866612003310955312625434339653522864703241233324378621816802512193403937689923931294604065046368969967408921683048205557261947535222456802387535209181109814220129057067347759171057102898060913327907580373725549875436432530764428725083704105712177888016099949719621838760169625906690877206875108385651201196554435881223808866804331030644957115165899585785158746512937119867275908276140582836802103615960128453395635986138043913090100508852536573812598401611400851970782551457812308521486427638938599270812826846417970228130577719561182670178565638484723540933076994688321485749118194659364224527165462363014102923221976165951657783267924382983735314440048238050957051720551289371725066712373690997901117271481514851422544172545414525344144952292627677760332458907574091003552859140535425594324917246562591142804374524220157675697567112815829269373016458370126366874517792377584458896913784959562791326291976238499390550601273452799336681678155007243000983956860543301445981451579981306201017599704537001154671591451599980013724787507352792498019452012613190149764547139276447811991582111598672663941734362900567731216129173621257863733730408072650062077409747186516790154179322185664756977138285715902448930048785691741833926184059448774896814790505491702668517752537671445330083675461453511765251419010452045342893376496007461207885493441617808366814919737900550039204408489804288493167833121732122340292072242366400643821796298125635969745898545063521627935312730519905775158266118257807636788427751014238371508942720851045950448867952145278322154908299174434764470101478330864299563374803180764090419746979865048041384265396793619213798836579171839140528822536303492857192920486668999559307724228743107136397016675940904306900492596254746055802680631047773858471505700314045504877247084811238504029050041538313844535841866670242229663574425699188369477177938358222575183284914237301922147129106231646768298659666216729098267577660974301841951654265951515448828687265023503085969695875393945500663445219911266084694979440176361914895203376952147356051252091710745314752359785774829878509173414598114655725688046911910239518188823442723955555084278466179321590248893327667574350310381926654824043892050256827166244092073568460948167637042901670874332266679371097177057084991019567658676159672505898486985847023234691549086325227802208002309316419016665954542950472980610545512782290427483954383363091074139479981172934596564920256173699629323363250406127065710527701974015530590566561821502425483957082576629797601069929538111810118496934849359402099102609453023918309685997818469551220119187849113674979849173129397780487490803789853617457475207817922600096980653879954605349017531866011271585169219246103170465014047383782760310117564058407127102984758559723982927592761285239943079622721184628528532018501684659612645202311979726877634797596518379693374564929879955425812945048403722644874128249874789417614481999683131166651727871081130667209986846016948727026378612982646576851358783960157208719045003911447096172168645247653519976385365327626435189510955368946473954317125331814107676276439950683552428306761956472217238522525075533011281143534200328625332332793045874510795661815958229860413053596347795057069411835516593585640888400389284447012568356036762367783539044796399679336427520658484353130279792397665121577959112435804341195189495975999281508828952707519898032124018020019578078016143590914317949029725015385063474381135916400638991248270646023812681836523121069926866063746891535175302450212189645963843138516362009685457998136934834569236440414752192336468011373610750674763699912419983638683953266056218754860772180493129493914632611126554135920320839349629072147356605012339371764574839467296313821015972203545663620698068478442247695887526854334000857371622353486356795013108588208077580436363092907585326468137737108737679569016765828112881400088039541958455291390280721932768331107236203239661219473675115429519681813476017796594457629307020897971951107707745876816062056503342425140980164883400939014640950181329001278259391771963473102957381967993736300753335639305786533560180433894236171326542100453337242007252085214493243783457742507324630650708389702740702212246151523868975281742624949037287489981434212123544982380983841174970886776426285036356224449279841716635538447618008224939862617152780220995437576145923716935359374959510517244266524707463329641481183355826159621976282868097087874441095465575394964835390967226197826302360816302613653291070274103129452020862325703375964121767929116224736077795762437985783871191110345940536402912342161336503037034785509845405123437212918507233461788253871131214548651787235431940618417636672979426857766202687306771439369142653523065343689321405212814730076675854039546081264339855309772420787941469299000084512806988185496922816657343536542591581425405269696527946590763180186115683189177899211755350507869152855978024997188424416196355075080213127935813939981323956747130165321379646944289914659044498249849001311792224613956914442166913403249513125176920652869088536522785856436452928913550022490057471230300986196281024659255345278636252703812721982828494468131741523912730475884955341852023767635809910359067421010763690777105969368462150462686406183594859273707910086659677140503653430563406128668083306711721129966686406963120801875673067924558227409171350821750392237608227181791427071880106904440758390949436255573273455698878420199328578777049603717424234485122445337855941378231049526147333680269149651795491608809153843715611021320317850110347952995112774288768997741076462604858147488814199253608141772613388549580132268625441313674187537260799961449726451898428900657116638040270170114873331962367124237019061990493879880852806473523065638793828066678344563182075222538100887148988192658816419487465895274039033196970986795888175269420214421006716303615701486569549823955503041562592217658034535909463957123902598488922110371930218147812604516677029577205673614221114417081936953511896501008760682822565427158540192252443466052465299398977582822370283707140973256857185868446544523529469015594106470537615469894083485105414231389449241490727808998335977235553165328827048553170110118979919520107580158454850876829535017838263219983326650308833019860248559320635471147983525898387578263883419577273096516724021532999424659973530212228052427105211289319164098903085807269686524367295330556500354251063747557551545799292934413032860463597548553630590714756774898371433760723687061646686172116646847552027620595107224813464917030057442132696800365953211141762244269228392791940207036649142524262393092527906145392781418893045878968542178165596448335517721132145257856552836359404608533806608844216205494177285516906999559971733811849135002652789290084616120626659547159803197154452277570248413522381322605041096552060158046795205445146545939444397084665495451817600270452746316374114739274530757419226916795514308345677057976382896555702052165108412702469789433630508461954854037389467373061878261787126559736635142444541270680477937852664180132044111572805516385519959467934375482786030239710542067721548943811635681853593944324048483162943681527094141288190908321126557955320483764605612214694027399607147118075998990279431392140788359274484289842437221653434852953616858134525183553079699256842854262373201681536044155685128401938784521837141501909110448214347424538565931352371572699318255834657731671899753573779705751797684710385693536136558655965543493909925660333573494054697511263324119122347607583743675461783916824344229656723779010084914661830348857083579223115519454981106044319603718358643176936700078222275298289232640055461155437346121428073781811791744640007017640581798611268858813257296253871763740900943017790554435849781292863586522320873394455862656140798384497600964635297691248643874773995408638873508993330077381151555230845011336042885119101554534635216304416509695609332681518238642704775951265604670757908303136819869697452745015460549773493308554666121074335675148950321993938359683525962947819057419496268729646973082619569360865703474101758721509897534414468248306595447414101047637449512716511330351317073505641974350077661594147041753275458861248857742119418837439883017275035368834447557016569968454414902360080582627769702036786514287149440439396904038954379062892966495079987417799523843695503184150826503213647016348354779033261570426827155646143229991927081255224964344153456859213380544641660089792633699807985081351644756350451997088031798954848208697935746139622265756079749913876244975297270748252149065833955837998167198750487020724664540411186690280226597289670909376717526538436096440077069678630457471152754294850011348030256706781975080255584361606084640219250846478567179942681286259633011275663748778633674964437915576119075941200274590043757783199307395311088921383116810691129478320863658612407343606341143907475866641014429629938371287777024400551549160113079120878867948273417969557460822778508617919761018812882035181266688940952509005519054125073563286164326293692682356316461052634247690728338199403915368878165138187008786564273263217659229022524199474789092608978557773354323752467217347527299424870280199473754738497607241864839730115720628069858942221567466675490072922779804463732886557798413959007610544000960644823948632004118685696557487065815501057682966341364545898068263380270075315671850149892657913335876436642899830522831363626584997253236504330714779954450581994422147260057918087154913763293235112274345284664336311365435999105534314025013926891755229831057681379025284184678419833650307790955499288810161797054699370110824487529704886030149250716897808007900253839400305204348654611838138403815395212704398893747633919782176922061915627270488484109629021145624167969735637214354405415110578760691532636689046842159538892194087440717210490378812614022903751903716788141366090072390240708702923586806969667772939086943854281074948051699765203952554984312860181075407768717357610158431114962554748013610765964272262753992770981037257677941049280381113079410734467780744262030223251209252703411499622514872139232255513467626169501540986094740420164915237791312426664651681259043634803662519740538989093666419904543272187416290131499893704079218079424515406725247293195657888116539312277644428105134943638141610770711792075701928236114493724640503885102304349412649646147825689255941057711560793118295810639031518210664628848406494908870389320364473756190844802485360978097394229068543948481337049511712134867689890554135436318250712866505165940868593064912892310915028382375073240099306053089400250288601934830439895824090521972602483331261195610813081064644186010593730917654661517261259653013684299703780354061037857905440832951190090774274387490798209698118735055821783063941673138097840440300198200924390953080073651762290330886592446364792728547563992498119705005108843554028966837435788962799752336731508873679407408024854581752501046497813954385260739744513406731873980089959358757101965261271229992618702770042099397518266717316992719255707963948475545627167121631586574677451638678110839374484865942138387696914744324826889064727694959504081349213124654674101411177251627556587735201418852278356996237716324422726289546255452347778673726479234231589678607362204540043619597987717331819886149580774833487319612051954095300078540775791306378886384860157547154018193872932313386283067425963883233319382718467046058721293604870331896308681391206859380126092867065199460897365116666339586278122405851130679164213309029309044743864960088783521297067382741460360272546148328248282481784675886482451885582528050445193382099426057084421268592931463084077269469306320055891365546506237480988143297023652254438137479266835751459013563542960779011571666933250311666602456455704099058600928936656034578953994584550957039619676296767200931259201062916603913335275005671810756330463061536953630113717924426037975770118819633158741969523611182368345636831086340913531336024836795515813640496885664911920048317894663558220635713696400838732345625987462576571505088004591267018252261667816388216252721064385563866281152877340291874247743336433929249599670877949665374947851484625837999009427037195618539226405638192993670047503872600860060637219749311871350053169290115668208503407418389703681593553087031861205334760109739907457119911094758128700981298199711441423659988167302064228763507176484303659890952848241801124959292339242267159795175387439991372545751381045320617457474784713665569284879075557937706497446991085081363193495685323337905353225335708523471073943635989167250125828823436280572896810674407543446401007430258284701405178518555354153986894748293766989197683103965091339229794724978298565939710796393787268762413259573799292342809599550264291482083116415272682650081539387673460873693347459819710030391015174687116498851171646619503125080603292265778930883419845308323608654157418329433964458138156655288493352269488626190271045309452696137978015516364537013840696061627964902816904948192705826095613182719816884559480669359664221254855684460812252815614173030227493722102821377360331662836824099815560131010948476016586312678121573924287660996255424479844183604391731486615781864668841065227678792402536505721944254393221229280860248541840417594940165946896224354286598795089865223724508026253398011000515562012860316063072133187290228596740613946259019476105654946869464326062451003055294724874383957211282455684254693160602292217514635896655081221566169677824133774635438817626984873005357084606277649359605694076188199613958253835417722974926419729246546458735173370569891661334982426620546490224833463072444844262561491823900718442248951801203075411624873362781241676785584242626382037081171032371735934360188957491959434564487217813280246859396309713710761022358075129252425364961921171309339137613147112055497106876557178874098455459833965626445186771237967858521981796286366498525765016048726960005005187148957057309012769646403861263584173018400444276427630070808781741604865077757050956586852573536259878502989092534435972743425399863982923059394117826347706272753520613015576500546691527229496619242580219093040510842218936931476706665058863745181583821912247746355304199743592535339263255262595033996923040073468754929015366731083469970555179540313092962184587585575035398161037486446773414228012556629825631218268055394028439646654554553604188619873962600943930998144099384902927799346909373793999830319068704839191582968352962318559540035433920521666470850794783416693838013215796581903916031885438541397551506632252722878683887361747131441423280959463834321026047907785233668690178220216813147640529306589715498907816601073036740769974543088550560495825741263872389785358454683576555675727899975279634083284640705596304319933578255139342455612795598136954480072456054407713252503195996988323042653893440104684557279185590657307924242340171695653637287852213493142484971393629930791848555899049658034286058620361005179775624900164992601330033465917435852917312330572111627825193439753138692461717195037033347079822221428686974605546143132728529102830899375440933742686285731409947381303067283457855525975909890130941979949833276945503363944741203954597980016915046828541841265299355621187534833586822059653078580618011521688174841499269347029072890860283959755192113749402222763236402623550404614705895982867613948659689946146777358262952987917397362796941344575592530637390173010223662914218099072022177289753966611710576155815787781182784868929112922863603660562697648057261158145254320970106750345977812303746415698045011709067774466628862222503151315977478917125351783158386653470036468490096934415400479797290005126975339578273101760481766976357179693102061349028627434332845076713329041996812662652208717106661866667624188250253597167500653622157585616248913558359708966674844721962313838871297361556333919944035087828468851010642973374821186646156365540740596021030296055721516456686292932057794673763604633137320955383750469673044411905963442083381886172210725202515850847012539256141079980843386470436795472473154549779565159996655182258795345513105557339392751579798447953729548309985286707872632438214099389046365809172241084821390755802811211291236495004857196961352920214557838367462430008385041338167584952712229070842257003680870361310568315299404514155232761981137993396269178365308584783510790334642205692273151611561370068777715761113168219283616785813996972894757721803891131035461216726861778857181302590537203262924499350806294618375867195466197900135563752507060329318256952764676834100313273117963747755299805447816916423271620513544488372115054637854846409168297983818954328897248803683373027807829242725317345239109787533235111728569553537183030402907714214300438937506983007708525023083546262911319961845455804356168308342892033197952749025715611275098345000413697279378123827239566936406657825614078021463664546721597203862278180957349853317238349717808163279744188418212232656663351080075367532094230394850781843737610710194633142252296612216422076844851240625144129035513246928599310348698313235730559464184037999582697087286520966013026251991999191464600752479708348172690153258022091970735538661736810944350520018017050330510619371374285585611090969829483409290000003525347553074181792914525408799758764751984480076997967335700527721351629402748509454527490973370883262387155825041995387961102535306254762030893358585367953935853136632504338884248799636197320085711976847454668422287873238592105108967526536288029456816845663029372012322646645227915193523701583068613628545919304532154879737821701472371470750286439821051943946628897216416855547179291602181821629035350508296443399595609535283632851571605074590809141918137061056727952540783853616836540824131447765781247684517560788473902995897059622605834678696096802228152309337096108526557657679354740459399477895997283215386151215197495626907296290572513396107334334910267985195898495352679012846317510045255828523671216864308735634898643079318543479024022588956967531523037443557247188647174354707544180865192518476139003842732854345652070507587328496772915501823165829562478589842118248619480207615309950993362803111659063508446893796633169170607945784309230005310605657939631367744524084935607268523908081509378274099452071564646529264399291979765734051671373760555877176214730204325134202586988970395160513817657054468863659525862656037010338703635807468518320905977812012298307310785402973296525069336260216919467549315473173704268661540132425587960255777658062505326791060302951258372308869101815052812098828351824168604492802891396432611676452953534587172723405953824426720334540096947427342775720148947474684813945259213335962586855254552867764342839435704869631308085546138662278568764848808919173969555049586571405787673794342645222757589119557217885548214969964508584003420360345173085103637601245291244698868822453274788795406009744988709252191475828951031157059749966024542530981345943186107697685202148015878645261214535887119869963375555221424347587164711337865372520098093189061540464887694592036726350348240071477258977771563345447711567318186684843502995617238143590125890883386602238656301237645439413320246485619342800259099310815067087617623194444138872481069043954587608130560903162854349422381816784079464003469772469944096035120037909568419834341044936294741631723801413753650604978741027155241953757511709905473625519660566070643332138403588153021687677914547196352371860287144862118863858732368039835645178647584384625092390512384820013285899589908160195087229813798350586222340157149994183743949869592017944846058150720461268476490627480049280695288715841302920789440627013462272682051885657945533452820279444066364802414578621392032244578852016997957950969273185271584320679028472346980719613550056074900879203262369921644086556293788901696568784921505495402321197942076474643137660044758590071905430939284032418548213115146847553945648635955123381510818077734529498197888119197080526035870214350474183237049225245708467555665245935918857040371246182142907923672718434847543079978660702113030626771053408277570267374232346684262798585369756421999772793634497649235790048495222167522859042661060740581393422519347298477758294573326833515654666887880301372306357523876904304114200641241542763861747903212453288594343395469238000555284031146469228029835251901166266073305403854129582030467708570234044687362801223177837542263660572380962423712215566736649992291492725807627454216250643258889363935145120514699940613745420699327912343806796240993510143522152184587863802633508741450270572456263480965381193426018976736344600113537536226479749552772090911384996297317824044055966368741784277094066573376362834996449883955956198063845553629188254411877042622364605226465628611604001713200532071374561816377514051584708615887942857844543502343508676896117008065259093102124591693352796705067936429314145095940850437078523471792264516864839283732182759247181126137153671553233754023639666406342167247654614285776777164162782533663775546643079629985391022512213663821729933954129651176618307945061405650701222084381174069796036930912179008061469269205290373739899508802007090620616560658569978776282714967638728240004010200818632948443226861796103107592953555891806188987046077157126917481395276717375010559330311750320947732519497075346121654921949964991643880330847147517767144045024913835216341567642568442053334956895157435098680237537812294717365677647706473184107485442535820163935294900668902901140428128583074668593499836888947573784232928016543988154260969439865536001241176787171939966855789976423822529671881146633857371298558362092464006216154884331211278944761081912001931629646263124660805465763908909664648978294998662758533347864116744426517954553553786997413852630042472730572812341034110652607387926684488193387471723486502643451045418543574267246992184346032682715062022582169641954854153433636514734619925413160643340675543991725360755754144533561561022458360694958337587009268440036937607957922624703960994465508581924153645795650498793493469143196904140303404914211901502976187437557831648074374421868015554484764946511240187761279936356440009537667760716414723143330079439296007352486570638781698215580613655312235858276807910562155597823287541904740737069044063264730920631262013619523056211797677731015351093566711171933730522066202903021853871600407012790632858876101881245818161960579310241615626595521109402634498316176488319117946042490754535285259979370160437032257363515283589791434302548428383834317679177597468507597430517710760024618052195830123624513158795904455344133504510908738902004513894310986409861197451280208090457353642458546429807870107837089880601025519606374403722985666027261352353129634429583086620129434926839994182626897663246217032983543396383970909692759109602838936594076252309453609570402430829229047219687833073976234620955336412316765516299587656091459860624634362271601949614597148430282179356561925091479532239803986468325621100519849541513469986097167139712260496380687355803856090940625417561639792620797634001905608510977983472247015042253702011427077333157979329083726741808891740981699943726988733710024795736161435664711100221350264872771778888379364551757993248192099711741812648319093473545545840544333691381693602672105709133396234750448317442502582334803553332835563283366905896988935500234220349198317159630670845828948322004828316041655916240690710328782022744401016959392714999091932808873081553102811236864442130754174227354125963365829519680266237778330940024688398671498771419806512659846201440411621632059664086349912770843149890998386976478344604234301515787451457885159121421089699178268647251177355249605522047741796813215204766237982433718261761172805470759381356728674331073261342089577394952820531408931387467852323792936738908495581721622680729340144336203921018324572668551211619335489458581033151368556172234972337441444737515321535683220163332793329550548152302135044119921747983427062419320320802235223457809758458037402643363749964182201038813651804891152550159880840642176443857818968358834364462231858143669190323207756370051292446180603961815967222541195259542155998182908994160178108067757754935570326856561226328730694470119748521193393893389257516237104314800469011333834975640289897047682876216955192493005917903438876863031053457882847722025531337688074403760440245359891208412318430917287503094430419868071698926072790405728964802168410988166813378600111662594793972803740566174846994117989292814204684687907933058403469190165878263420089071883772362449573232048466333574893068663237122513105894542693629927703479661338169967194929152815106436835542674596871188343932356697934267130082434358242479457601102109102957874703502422363158502850614096044315884798129966730438449175787677075497957749885749307818007102303014153909019547321187127795562164047486849689030937519532269001798024840945939601151813400770478751228409935475886661177201022133286086280279556278593771022717510959944656802694966828805699126301692085246532086640761337766949552312517634015466886177897410060477644993469660795369137912462904255847333838321594254832562352832339928019232925221964533601625575812674536174292415178735445713938492759935180202260826777894227913306611726228495046431727650864134194942492544924231177879320038269286418963354186345687898760434193698559582518004300906086289417128123013361349664446076044809416886826938910529419806133586923218339541147380247168723871901361791134991466391857951059729111986963369563545738986821417756556875439459730582247367752350907041016700604721303626295948090488181919985745027037846738410793609986076875543795541602768319000848705561540814412489339771461785630409631593840143381921073654153125805261623517011068402287916146894868912809767813803768307411900467756928045653829410592196763373694681372686815268648123745295042705810517373193572598361547038388388205670025031006168588915135153933251920408307088632876476674713245200362459951169306613927709785165339297374963172524618672033010892788913088159019619489254959606596599192329334689004534249454062936248574522555200618982433067546775034963787230964703605819664667870951167294810950582991545834129440473756604499223531891236330314713102524671143997279897971698997165865088775023550281045621605464671742329034454811074071528036133591933998322538267096832299624783763347660470759293318955093840696294127540609015389549881519293829996280115902395902219962601386016853044449637987447146392015272655470287754277772138529851191696228595492973413191066666686242651803403928985504757375726224284565663256296135552714695011828566725710918778583193194664945044667732802123128383402226435052125398725830042043891559343132375450551681444650004291929815945070809739182973215986612007244399950540116022721835274278894193107247010170411818528888074421325513829754130178082450250358977985660012813888147087737199701468930409373683381936914779399427029853958007732393694091477628610131991579643368004574482972198260311477047502430720309083729874944969884014393680375213936461780223026901972692757087111782652940193413165129445245385680797680945899269628940081964685751123951415312245826057014640153866903551725948852291849319789520381915800047625381263302396185123901235101792815397593804473024462507951923478481834580982289960141142818210183719590918781346504261021583556706955028737013235687510625685512662237169563886597514907590150097021936149982613590606688780013668723210652843333321725486392002941915729115714465061115358886726315120027858506791425113673384225903207976660124316072405638927286211616321455935056373774394155529368398704768052511670294974270837170891258387697367131559264956539405366489300824052157395655793507392548689272524939632327030805813972290671470582890761965354008266961903026256936794097799579955732115583125527004604924808628097153612273297211871862111934041200236656292037954374387655699823387104358661301657351845843954635259709447222244808176445584223700606244037817715231118842785095481906339389040697895949173875305167100587627651415029214098107262988811512806208044483928547201114237806515384218860903328816220944942926784914256017757465700010776673271055098468733356998145224829009121549210692521281574030845104215818349849473921561029910300447517844107194927184530451763610116641877700689788823973060087454265442916401685160667667677817922105775719641033611169228398951064844452566003658793824488770175802369554788090324934451113670483622609415722278158612734069455343169335439628469950296977759278148438557185879609991256954840749702844524926098446451356574990845364055261807593296305817076025173080753825944431076226796019664927590694081243926723551460035440978388980263932812598395032254337520645701911366407363504115759065169042765539258750205697379528112463902570309825569650433295779433087479649623693433780876068188694927369767289325766714750643781531662104147985967845409285597314701417207361665288037338926230088809985022319630145697889401398590381142314062562762888142242981938236130970303870981939708450180476339076277195077163183728047897798865161895474474191861491309467120218516549250469426960991476225464389018372579747058945101728878622932204891231137379834323866226153555982504015889040975754947413569611892778818253067226912060981991560673964960619459304531330294809214679967212395835583802147012415458313714367290158433665434098658681250895740775087407713353304381153371207935405323567515015710304062039863049489895706741718905748596697813730195172180912962123098577211156837199505868340927030789643012828357617596110405951434883661128564224057839387665483187606213477507435616000673817929746206776130087437274662143221724902112000124131890250321784598836464043158145883296865754451162733533241105479501634457944591947392388950276990746127835838860455266311410119116630413144507120490913847489344008881601577606880251705383227130318117624130954391859018004962506408177420014273795747617795531995984015898113878204503953109528323769198988057038670599456870186785755440837568658444421950460007719703095492391912077061109989111260456495045589172630897492747708138808045992897391788154372566699254035075356759972159097778283500054219272391901433361089813180042601708346240524892210515873546193153515588114424226796161550587335685636924480330461754073819458378568309828390141399324416987351752793140626524382277761182898736161270397871402923897574213654870799618784638522876538798430928080140216713034531584091685107421189586798564141055822912441386856244964620065375690252719190238893515725936767861548606208367825754190352689196216607600160501163406422578454692703853823438038995778972086583542779956117520015581130191102337732934468893577063005974330401459701481197161208495066652710298569867765444158082119787654455528577846809228613812179995585830887332789994002974570366192345566509452379280749951612432409310972606800145216869510713736929336638961736562334516970562662891452908653181847597509442955085724850759417220751301841622546980367305614891501632966745768002043691781203123638147861681713037806258422748241798708333788064375545925057553073097248330531788296494506695177735990878615973536300401119170067355238151147556732034885940645945867288098492201298776683010972128103751130815128646299286140359785681312914040206977843007259231827403175867699093043969709744902079312352690025756437812705273602373145770240758295032090883732792147351073945383248709711139650697230590677961422883809747285372719913322898923118558828565011894979610833590270854510286032442764077488486742045832089289728171169944168263087537929244111049863980982629643514498347288629157613999126583481497235732600497453942850167332902835741633459030781711413413798495686806693900332279586469808500085997758285604920792045991824599995524915124008632717895075073994791559100789228435703607613066767275977553043581813464914354138136058560952395836557415245223610046704709149757639250819028374860730222971766507416365727466378077371785146912413641903518017227896237025805762676967623277306433295295502124204384460442268029305947154290844603367784494908123308555794953595517909274326028796875176332859789010723662948928865144111203980328353487392369725999573777236205359019786844186796294183438186484740253569665596757104768594720792982195025964187509130504541023008070002153814901091904530958248825225792387117913645471618289779207223699784041921726232227091655814036721578804116206138844118468154173706378321065130411427722190009451647921962056531703741970903617415042930320250311994912757826930734938862692436608717122244138084698065693222879021638111389855773257881727081497250931175117218018581449576518783627128250657897876358127354650084369920194969288829078744209466811030451382123114912812178173660684539339805370989211909952207236752875040274480980264541877318528607769584245428239242164144229753625393240361990173263391181776853345526160031143934286629167746590835692360131766645433964028009957802730702108326441330406197937384176777827970873138041963880994520024234634505679999940811386491328348718139119714730433216949567611528149123641546608030480918040190984689179341802891632820413487715100077396988579743965352934051345601163196878836366928552521601934133153182893566048181441718774799488420335972913321042256597021344786552101188190539367495514956417802805388162566678673757863252673444194509086506833053009217008621743058974837857468176396575805113786080360011613979706072455921980112198528424748381538838274878927785636653607911753358824772416117324292056223891867250262970400666663737642190831844772787805946341148715696701751016036336390322410016230647687436274997047917131899946818328576212961491269346664662552722938324634673825936300554567914218202808799628793042427162910174493060230904450098796082579355497591371138584243727951360615905271062083596918044776198988993523611052745064712435821769867784457739669915671488830238382264008169223887561698609492030307127068701226385838140146709867670936827357675807784930754979125704249010135774683323810818702552574088592909084103768479525666409879335650597528537608848266890117272386083700206127297477067100691529941812500267102130675243035757484733632865586423747621825755587784995166920603505018438545502201169017247482679577671759399003148133809298421200939885695546364286243242236893251194422609288461034538124799163993579608289702665208023980735677417306121093893914205610259382336462069406016709574656160887336530832181157335283651071594056157421899259100857141470804654720040981828297750932957833873167216079752621399721042777106869906147546684964216207197269691852657343470467594662508845272918068636209395569430441972641776401489302605040799650070688954894781803669053992614733333424388126311708178863456799525237429350726922349896860956597640743434770656229684903738699526455895655150626456572694424335200953931318552672946784761777345124903230289888860699623223983169520969291328819437404736568239890667315983922679632154788736719424220392091491296979962156017849177197016033834914569086695418578733527465655633488774641847665157099052391275759843200860463641543184818539297423253338088404821378543988253032221878670848519440311233078356833234188323340195122189279074510094051549416560595322465586199514508021324956727094072747848007981637483603029818634591503306643088035130375975960137884415421164683383539719903389786592005305581311238137420317000037156532921147499156859825390606154832761362477813419710294480026025631549246159622864819188155464623849859517134540542469491528976745892740991148611682711138900172169614533555698568947456773153707938529005808767278648052157417991310146148301157678092182223520812729217475761775833095622025040145319728469008552877961055931324841011936866745056220230096826975170095240416518041926646222274055964221228692736849309381247576283171714569828875278931399315611001981615438473390823010382387831683526262750275333763270446284916019099778258401997016228890270120453605858491997526854408490924591197287912663581763980458529668981109023764934653904802786031277303390132780685276254560463667032702480548637082346344234048232787848032274025409160953588269818164128950254650921258122840541046551885277710078650182027919354751883184215208184700188994901936272631678280185798289838982650033921308145065424366905810513805639232370647901769523387365628933044567603991993490997783709870971394350259372821226971156451065628047812273829966598913947266512885898152892362647028408029877813353441227225234422886958914107979197753019562410132827107584484496611964752517886898584522168160116549400808778688513360880777889132879763430652636972125496707627776664924483699706409113652158224034703866939656938779444838895266130549220212396435450513435918379948969636618983990277322798695718082879384010263342040863488091333536384591786132944457863875232498976008415966122530268923748011059569183572338241024710067433063154031965869279001087129171133190926818455891679077773123387255471750029363736304335209746780653643547692541316181794060795246018609281569414938897982251154583948097476020594978426287353238446396768791817323303056613530843032511757520825298908714549992889738530873911379955649542300201483556533895980214407949287699461831564325038441936943377246369671232853944712575987256603663940559553571530223730810683530185389203543755305965251902481556570362782107383001041098926357411355660359108551082219707362485267951604999878616792381888178836143544554895811044231480217177664123549690954854499131578922790999471709385104957168044494676869800795471597464158000282127441163122806744155267983483834645921031945968645306223010377385671364038295478171913205504041159271168642307262717405736830607498904989563773027421323544037624612170380948173557721371430841219874551509814498043601878697132236632178646182891402206548336180994540243432194274465964121295633892691966919563202921724693740832682829051602737471458623149466035475643289722443047700856734124075723833322548209591350760156023649380811143266875318010293335397503331147626524938235740130001965877385262485168047308644658202088913815708395884721957104361125664873849990809782653665030635499669185940174811881282660067357097605858104566914138201843493600824389098254135488447581806048733505246751549318239994862889593659949941153724801491308626948982078373239657883683077537140555598593214066792926897312260058471071501259447024964737140041064503319179650473039988828194612526871468789692560173181201215937531606980178206185273276020662648844570003667122463886432344724154816076158686396192214789895633592086359707387474308358367094351256868654634036500642758521053049793659883051850403188703520453342247530668078848074321601280737080493067339561167815820423111340708896233393517293004963163797519869107691689073801196370057509897849225258627512230806482610566561420911391264260654543431033071630409205268569995276452065638926348256857783723236073028986034760841845686412925518183831534988376401768584286695105289579315511298441424712375181893216824638473599386259139646268753105394203133826323513349838457068099707525826504559310574125650710449683077845243307581453620506725467447781554972066428637488693960837265908692445169305714547153562543399381668931985716707928955839734814046952707754394934048039747411546826077874377130031314668800084833117504676320772448818964131923128155323553130508062802971340560483980055786242663929227660911297296830423988786234756983898527488097684913519607064279789826766501269609803388361432048576256018172548930470005253913892434658415311757120560478609062293702194718356652180293457148254119510229562749920045369262344800421466378411627345028050509148723357043163398696303907940504970748064442665739594676342652210326550217416074904587111646616573033014992944921964337568730096383649615093326548634392483446405934437185313509442740333094567405216254799577253223131490700439693347480612421833283763683344899625481713279887578073748134474904440790168386316245089102416269021212194465099553670592800128291183393680255174740246836703025133115536610847359053179121256288524983657192901943820776866447850346358237329025621460177003526863712511604012645171409380577016419895744641800962960906517295331966541627806757895207753942923007278073402714504626077061649386302030415038053976066103600820035822815727082352053808150187410124548209076092069475478689621553219043443740323980708309165132249837354298599888384693173125061093683422509927099270365392034851104068155640218854621695827797539471309658928795782541473700891971038078847110680483939402350560612711876967116020587248870174045858828769460363940392885502191333418464536403092634152397058317318879437554070931065768184278395177749565583993133861292069703345919437438927774513896550145216270500455367327839050011333880937451681171324140458244593321076795217542446202927219853698357243344114101625208724988346407736099935113734402311529377670226488052365584519202983033383959669389367695591795424452828497488943737190642126291735667161437510817305732426730251695724748371706445060221206548218905244428588433185319215590268377801497251993043609762987579467522962855950117787863913065462378674098089193023190705596868224821831931648625573497083820623375737392990951717161313599864200054950706106607200190328858888855227065799209655162729453430486993248601485384588561886318520720290716588215903637577108965561884762205876988717000523859306333963369835243070754858384876198534138071302681194515406129478735768057001758960915488883774125506868702136442732581157728032041314422097705284888489996262397111215880221267301217796053437502367624006398359114957998630933545864756567170704388144701161960460668334027898892715082913952862145566054317203106943739517932152911474114278677454602360708105515982851394556992919697568611109365523792067857361496702579812355348141983686507600674498912411314858310806206053524509150747425229096149912272220246500634951650034917424656105135736911904905543527720036353014397540656701704376903884034485055956497050656360471114397096873284550336177674770815283213913526580071944807672604637112592262015351808622248789003279376930585590825558058899950992779308392381525293111476165384136081233716551161932845111938675655723721974727013128103379518990489489531196374713350922161517015102395569414519634761299351647087062633194526705217752064823591257502066858111254464568186396348494347202018656422110184975749823961486671214396252320773383264505085002056509900677047828827127833189469737726970449516633220037631740743874667850734156451393514265357534785960649189787721336419151696071065198059622670665946067025893759983034263193823068832613372382121847422699475089902327231883959035366264177141216886329279112691924610840279214833485587095831124275986305342096485756710404402909401693780393427323520597900300112509462826318289037490451749600016122168569313595784628345522884959147073044296859140165053840663682345334847832697283540417772586440159149542548961273789791677371537787252428063705852724078677556649229692274950776631557840666900455130038930392375393840356441590673852194851805715736071454474702823888171243955861195616782424810801378063418347445181021309857830825917925647532931108052405347315371888727332288415068902276307532258262032290460889938293126659350300097650417693416401176989959483870749401238196594488196153561536620952943920532409835729262830811985889550178622895379045487655413779454383327338213774141178042093500057514422118386386396704798762154883306829227129776768225402221793196583704831098227162479135884190672710360604587360306271158116255085678820914107000832793868968923322318763296927587099851153864607850422541329984164426805983350965013993473195857855653470990259837368010805359666346962319698068836474993325571998681588208979552573883518740437215168308531835035781153909885027423324235116533976521774284033372653117625079872239907543816017608555442370014399535506938755853823458639551309297015806968044171555046666365064652980573736093214388071996372325475895552721735340808259105560644329340302712057079854317994195567430563406755759831720965970480988695313299285542932565836948712529871960141475541709964691148321924680370083137659281319171867901146825425912038335929193500943287325471073514137809252688868812860756413338469331143165248623741320535395740693533802531116769861490264963592924415421538485235637779433660312078787610744565638676775096710950887494348410325613093761683293531034203920317942731267712814009429096539006581833302963012460590781917613500148598729989062122376495088119437641899977169048272083105796889316610632438207608997234508172681323793747325390983184711967019190931226063917222992653741607424734334186251670540769282777266987859686309419454134917818274600377883686989569765051362998026064733584839947920487474840410053922897203024023990425825995503206637531082715169382678269806190914436487629201407544097081969312565891401461371669624785142251555284057142688388346254104955115421117268123456999919043999510970292915775350826224602270756426141154050610047659099904893005382010934057042371607471733505561182404471154393990379446517875557105173357536994601914702863429103288425262833113611080674138325208921660751546647110266698611240621701493565653954209091460424801491783635754956185565761190689042325693490112055202651757922698141345525835906981905851989717004723680872214776427955678833984898526141586205049279486692816452934354070622575784073092316922791329289531999609801596881451096029718850511095732711072033807515669444012453440287648485626352299449018021045860876202679053137371659806580520038751913066272207544973091581277742225904407765818813617453885332939930471207161398881575818893115631743444702503292433060356986766735179506342409835508202354308854927396489309076429130553453905200430871546644132636024478606202938360981516122100111574828749696339037060120430968908245116231933415214787111211909576795336541428358959737653293644713633007320809956641894745540032027177492619915887553438769349974029682265945140916459590956295424314353660755871302528061289479540092795069168147677670755458011782248247210418540704884277622159162389821710691983352606076430647339996847940296211103184368709995150510313189145175518867387524006477565427585621200422171006548408700111467201452253892061519551117982134925510677541544344861031810204635768569186824729000291695165398488086482776714449212463213424270786268256040612062303787471243947067104690242724038197345883314052020835463642458942940887781169564723448479079597550709268288392118501429550670368604427544883191490818320844567905450645664016671143881512624206520061592646778258010636088244900856888703372690767188331292322159809705434797739620084243748377842979376206475925998413353815770522307595427108903771688433224253796362619010582879009286164714864950590469683338687039682766421619696048850213209674526547055787834633620609075787084854249519583914466104880034289344058163684616520434790593805171402836167744129568113554289069789394652943258602886458905527149827591612746822767159446919258228095210857019593595310117240084046643846140106666839790274727125424092741628403863825956803393098135745868995296025436221715371312391485732661339565913315995807202320707079429539930601833591800105751677991156103284541405508618687196582190214633141879338567153554415783129893142586848361755618362294977533463908266270644534031661433453823566163072622986062381703749349711819662341310372587564658607567542626339891947469317213990417923788926265058006291542076271984424584083413232369778030714055081526416264388525131133545471044344717614213551208659018039438007117844823865823370393665483728736878441564648285305852381736719770999908375806752306972854923029371576919841057858328872105609559318353912177855523960182936729219485722909848806021557971615911461576384503523212465191373917836770355580686925289738872936913070149711149746060433079466361163234234084002555980570958108963476978600431275675713282969970554047221312036256927403936022784936465848585418686139111991711923082012552499872315240515071824938946854150218100431492888322246539520558682785537299011299027979082867740076894077024738416219510729403058848563230969078251166066689888933204133501987138869730655447351827130129307018365910282315793033959908811197620653897949963199303718565793134772980706896852349441174323910294907817536074497157655316390595731424569102094382073417556346062199821860815647854442462598516250801308323867005451565324579850584159816537609449081832247557352262296468848151349622661841747926998937205372226885667152099183983937859965573408788907608924144589791085669328310322562464658559539555683094533216557255074852684884455004024365217198233160305208342202634744764241831145302311738003988127494925136352020059770277736199051833797010981594307806563650418854674352506009756869530661270774543237169565185654964301845269002361975142377424407114950562030568392987218046592309175610421091321800460441883231868871858761195638113939709548742729432041669789590052657940382532549796421298296716774727890693777782188186798076860978260341313684306849921963910484487264128555888257983002212036678769361516820408132953838037352833026189800719190911171173092904947894034689700327273286560933044809787232495485703542894130861195623663530009192976485395134559901234768331691940691836779007673921769836931006905706336844228382496138750670563095330768593378977497088594805512372357231629932385220207162045292442599051638075143196759592565101537208219121163464786796123457028667786005424011514432225948708832522103873314264140469935812841888949145795129091071223456067453191546750609646498413810593293423338652491279067331432185529150717656441543893411406503116964158956662522376595516676988025067643809249874559471506374388940874480214549331190396291248850761864090747061252799777588597565896593547689951021676614313433517478317551368494282529583296649905595348072694776084318511002871943284640238599870615053201084614554134265255654331594327796725008228075822434203699015067924010440238238600455336660424480037926258321285124264844683765151132992947990655671913240825061065247078868902432290567275274697056080706504307679890736154975227215606182893036556699799387602900717857256543286013306311816641173703787845475330060684617948233385677788875783276793271502650689202432163080615031681668477800080173194838994126463430333224579080913515982326433779412759972542470508096118015027316613955880971927519939118766485362652727843062327104765372089018253641169299699254692927135019358017522498146157549115680545401215072955450345374397549510425401205634452952898477905453018068394378420805102564929466377915446379850302138929300008186191730038810891249655951688768281064453986849748724926449179863257228705664133134736491858513647181659840686920416934262269806116221966595146758733109336300461686744412879111631407533245963107532459536050942851646462186768511635446846368755138396769278069252930017376412002978666262347388797645191655033946038368141105632102073548923619310939330450930123017316361776741598852457829040813663475059307314842884919545160516022243249449866527880768621726716433541203916832373077476745558691292290887367851327353517482102189941110067783602510979783462050153700156849846801187121491807997711753042754007150275343761953538648237241462155288641288412332494625796437169969229436417927579360264654896077711970810153486869655488662939209500823751106688119829919028621076053434151904436662409582098779072938189456049034026326582852460852080459262592195005364995486222865727703576722326738396063555533026375198403173843241279785456564740376567823424214933976858247028114000844043737550713587076365846144211640506882081441984859179941473522570733026550960863605400007420041321064998456078209027174903594624913256252899343190620347484054242328678204772939075876534703901392708301313287280229413143052225221422733604144415691746762083920351540519963490794652875208274153071125670237661275406893175325438383976633304751818957328538632908042582659213512788854913435646071514385715012051128060233778053042926937620810529126920963679943276578010814159338580884060676530781366414118188872831738180520928462400876660458505420235191337289670282220759259441347280379498443614140496613494850790881390427032536075237310092344295467660579797402777958151963167961279096206084093486676526781439492989040775554532175883971302982786916126939368172709856973208492459405438092131370699253789111874219474712636558030073525627271394155044442830842596736005533200142781067772865597982330751224973339838983337048040355023816995878284488845620817472482768829331246804964028300520651580217582209395641083980215233815159067638074306415008192215011595163236653777447683727666130698831565621063544327315134982886714282225111846339796445601521575038245188078304538050100204609202512015845589355337740030344447734526644212579960708826107306400204362325080252596834234357470359469553562600286870011825779465322765324084357465615087363867139005187173101107349984243653928526579476407813875874487462788474724655296763248835296050238040556988174775379824031420206243025915226699688051160721554492414814505573130360051255020809587923942385931558848462723873258952964233490924849059107364424466263363729781217360483191052905427281123463279200993140058756415513057460515103021846001722589044358710773753255931713436002284686209592334515804216647059901842160080560220768035860996353193673654377598626089456441426280610603798980078624500186992040884852034326381128581830379430104950033739828682706529997323656638878126269982358488686443907245084078784557708980741497135988615750106634754502073273479865159346390767790437193137738471219318257802868650042237546603088985107509960907369023948812323866439843617127413099349772599975580358944840484648099890631849358968355669536239231719113955414064462695266735866474012298700388148351385948340924182006636753896072377407673745072675396334384973986167354227992009732212804876097338833855714288144333372285599334501117482414139396955241860732159214463036999478582888966807121077639838361795886484495137554226023574542659165080311296066181890363752115740798098136432086018823273504248748042578547123336900586024930708674367119108723007070394135411556573561199416443939027304885073351905093734589016444346934253925513284193813528721663125751493478521437434560616255869508110656010110370965938200150029111551705411953934638391918327517564900139211107426363729366141385008995348488795062102450642557760696433716596533080121051543574425722151774177703433378855540974502122322870993683416131783292264824083338851101770838080733594041837127820884169276738591433278348603188012406860411569320951889333510842460260303797371705279190171163631432678674301310930937521134881191632086502682026349906090821484108573358431459763595568290155798887432107800193940630716517675890383219135042496456768222175231278045938492269783226800431133492789559480491632829244965643362609900608069155658056520878475167908430943673922018374287888327939940145345098901424413869589838812912908792770398480008658280676297382972713869735227982624190474116978017402611249979445301592352559103825522462215529785816472016291812792665803668462492187368654213475855185610226062231652189490925381400624415626712807723672787211761342137891489324334092776157747630383375415862674596539327574386682034252329648266380003673239596771436294678143667921741507614469173006209102216043238769935489687029241213755764492515056518324440993156666979679698523447540148240860688037014825104630311557759182654011485741380482090682217548674617104089864731032954263262165582344196693762204875105393172763942292216422953914642605574520072823005009552541961538190438108995436817625896462850029900775219522932860284133336027072609717004526269137554472150604383923111344280766002460777032117315344398840822839838490328839438618248938870011332035364539623469818627745933507572953677676797767004002731182952293444380908392571497652809857223538799396607879510619955611904943597421822090029260593861889720996688377167894270637359939360607239730282992470676372137763229249754459720816557392765771452092101913260483707062915830854725781164370849274350521944174846443580167513881446085242757790471048947540347269817949316396037288708462542081273662384008048044092127876840761070915859045106572557694040232334384739623269333400444083817619425911340478403363096151719224220859083796765315205211137309887254688793828268320751452433901965434492525934461171622885451302182608399856628653155205665896654775896122589633245653666215898820221820569265060454787200304733237944946949004883042556834640447607480016813629449835388251961261141925242227231378473055671386266362808158620073310736435631961645025541860784172584415342650917989138115588601064580780053644848293080073515656083922635527037673776738877663490108807411377856626594464560294237812622930560732602516355809704522501587283954470358156625707730429102869844879979196497471379256318601093485443861268605614162851151736276805939230828035251474035110009911442048516905882367541313021592755186108998764979964655756347521039750463413858113528754379017248622375997412345614420822809548508247439033512370543458162177073482911586053984550219439536041548683246590377184331590357347556425958289148935845826441981273277035779893084404298707497742604160083052023295843815505537010142590381418656435815951508550894095484350377000318044027736328876607225853917358875643152006809251478336828434079922145050541844479343200816791450423578426766580577726877896530183281660896408409556275513331420256415840672507361120132280082340463137253832411461277236776155887819897693735579690366989966849135669450818609436237913790536951024357886866292892524555963555540897012066529434854957619564885642536090911680054633487210864926467097893552348814156686321923317897579827826213437757690372665060001155822464296619896165212004769824094210516047476912169793446011991921888882511410890370989048820520202027721155110406237625665608628850865635857704401805931013029524441838322957138828484566601354269884466355903159598074900201895955865146478807748255961241378388064368240404803366208133447407479863418323560533522577979273309405630131306768040319744224428121921929424408778155694762469567005158475106926723579128133257060710558125972803521993055922456191378562564708546075955517597588233339114629826719745200018616573877425954393373790867134833124078520955966950899942951739137441913605427579449533992285212115716013285425230867814702410889302210958820885544162423802861326597012965103118138728227814534473127157074292034227520792009563770174873279738525270810195632736338697454507872008110455100952563094142069991602895240280604560440273643040049011111988304067748091089210767086095519323181945932644076248488167831377848526223003803231323735339393338305600097766739497014616571546870590894484342462252370216922666048267027621158477058243571012339612219529429598521719969901529711270972927077261498272681700087904216991769892705586312053789516573250122982619392455766466316385988745653541835038970096068193978299583851599838223734476001906299889794016339776894290473424556982345516854147807039871250206660381019755515989590732311069771481811828292312773335555238077100624549597412709744495733535348988686526330528938352590219971353908266782691522568738802134813493932753277040670070321807216319720310538985627673123955988373344310474098091370789695924057241168009955853186087874437907906218236681420132288032221211060918869761898593537121570055030766603580413148171981213064310983606288384530537086715569770314991668409830874456823847612203392858110331016735330258004637080824744802536060457529911148263907509380357160656785906481130939036188254183772907546659313407576030442571134175853486134624974761502622017130834526046738480587767108332857679601007818326959333582196299352961205069003016781297320900250889500000902881303950631977907706755672392549424299517181540642162263618909014084370437643495038912338913593546928527032839088497610002661575735693699036914355639915262594237694809669653221401346750110142965437185854256303562685746893805469552303427118638097061050480139905881974666268631123477968902823990114026106661551846028669075109231338211050377963550348208376382796931033111191127711134348245021051500077571039208331008183477883094194258538293628234107362953860692178680184062075265727089453898992123961153267114604963949028242702750124138695745061769983879117447654349681257381543390888854871331746961016261603232077560652325218855059887637130318731910397609553253524328289545535232418504127769552574417123469666834948147061591148251104464581914915579546038335771531778617058588641857234574582268211805883780536465992275142029251365470586353875397683949446812042921708816208956494450585743759811959225894923373138574414998147853887302812046589343931420790545961171535574840854135092912885182087809881156765279194239253621930163645169416380422055296835031102802280472431667720975965722313560991953593869689567745633586414101893709828593781103451383397421493547888518316858924917443460494585970126216298386070653984363590441676930336805587386810398864253351029954086097377727261108010217395371574059797774976326670530445325234336966653282957931716941407250515216600301359114679114914648276102924003406071043137563589301876337419749163742018270669973731773510017664696804940069804973412011428927465339994385217838915979964818755991065223128261990520120074423930446588626762461123421522714668568932724703220291556952063871398931797461510365349761016232601296055748887573394803098364580046909495211423826012467893426069428466794258691443636456396665410514182220329562644628139748306316554488132097288209504755945054848272982005451914015284368926317054811756470547466279719825073214054362468082006709968742009942272459751683687454248375332527800245899983007228390538597453192572498842993606333074348247315196649672917853325496092313910022973064319637582158184129980483782198745528352738389450916167651214440639511354098004650358561617550250817491326959139412941316514756196390283708892149295518319874499838614429878413812192203118864265306174514328613894818727179106694398746165839057319577299458563189087940099061024156188820761647590689931363026452937358406054424300900493446590215009695034595557581502225646254666844587012955990417232646817523038929618685483694962094792602913737449566749215172922088962005365916231362175297825206005644992299344066197233642546754524080923927305152619635945886737834515068489480534267462361484348566182294932442599029205298535980611298722634574469468041944216018191147342262353323424189592006296053082135628153846003450696152329209180181523067629893972463871726445995596955540153725334605907727265958207193745793923708318567070920310067902520526974138894583900030817895641038831494859725139515660217615785151070245623236899337056236468982471708960938676432294377070654657830490365806358537785982171735670669429017481391964757686466784931730562413271691925518263365884243066461729550726360187324905723918461484358528787876766325376931880365663310716519295552100393423406097562937280272476513291288648285172762555372131816520944768019674598275949793622410057352606840269865088985794980187815507193279662625588141122979245382197813943882884554070159147976359355435502179803050096562654457882440499754781313850609934888199747885183746184532784146496542917467862274321782034181642348975273924466566079478921273838749813582191286027973950590489041593860667721474730008952327188748069624265000428625727752582422938195585815567758872688535681244715308062198866977674612046229809343879246622827536573031196565169883157178611018500931378044956530092263311648531898468365725732471100534015838070814165613296299129638009143819822763774726805082653913858886585500503425168600105395623747771693305987768127939935144320081462489022319530476368646152356498940125434376286650283343706379733619468902863562998471619916309702462157324532820065171403824193842233644977365174025308153862024732846783925485979002764702751067251420725643946426449488300167718068514981154190540005182298404554314621868845810738324463847982304745328538869926943591779189272697618671441966104549349712309343866511029143252511870536400015375736652904095095185320119105610520797304887753695283200717293580814220794511348895032445896644889764028988588723270511239181296444079551704752421061313012682287922779019809328453560620807083493987631174758569982449033308736291140276107168997139707172284884242499597493234622857279338634409388818664108929089595690028109735601634184440919779575205776075938239260898256786351438786418274050936369497466698054241357162059553931068259145621105971134746170727216341878848461659009939371602639009669320540331859685992703262094481362524932896800078550929912090807465479466150510205713322537612341456096733371537230874815538705103787025389700510454528550822420643588667336256073817724840680774320910599499072610025709553071132678678669281315872804487142414180284416371385183388952852987280482060374233948203131892777532828280681103942166977820763148693786012049730877901523561678865484247713816440986420272648138710960327657082461696990580500408059966730164365992156325802735309075444998922009123485878236349053506392793846299397488879490760042274165471360956961371805318633457987893436526147396850219928117240253187685878622970509033144094179723067189730271612827788167630938077999655005158774853523171380160111012235360730691615544301452948878442615993243209861973406152077896550692294076139665331751846424385511403903758576089087973793103061352394186906033135352132996446812779076035882425242797474786846412236885331271420579869115634153377820956753762097553903864600451796123427480152956976908503399388108923598982690232954356496923999151455288996475204832348506379192286730669077510020119384536619432199441121594528845731620156861260952561197445815050003711125538778115731989618886314999366110385496173274927996166221118297833320176129232108426982434262987062707718035914102397969297346338131206668619612566586415515595611895231028718390532338468531109778516484722890473597436156949450762657933289995982665176067644208955583163758244273956640653128333042829271556199019409041031717439692831867512953584571603044982363877165863317325741938993219083185480313450842076654306835712520021916091472041335208383489987859969136536903812756356824411326920174143294440420332468288736585608202315464245878466103682390462042982899212865177988804954121064931228516705974372598919308596258533203685517083994342027536643137102979058682286884275509538243615380810976351626464824697818466796129162307034365405546640001035193821280823726819197912765129961765790967117484931280816993550986107845711595665056704856725654321979204995405787380826309965963772294477616621477083803683030430004497832734810808508749999755468378945086407218225082593695856878523543290208560780350442935009714072063655994992583031203588905237417055826908923034857215932282759822288544912666527445097404396288194697588202439490587390846781625956948492042029337777378039668485593529701335351866623490436961827494013886721077098482338182132710546217300605938969020046759523583308693434867581106636042808175071114505874304212386277602816789910192214355721001795750139976253163581861579592322684214302184361131482537145866333409166130741646021875796411582844319052607694764397312509473920833107307721830767742183913567430069504455618060374060709623880993069237353899049740613889860752726736897378000905073978047923921160752202879016686536741143189090981483021560061725897187017314252935998035341955671693642729817882384204330580887085258623310596378021501271889594328190861061913776761169036225564578484502184327759939937326632721829055724502276021088759156709341202894854327920021101083477028201613526177671231084845425033151160655351554365893946924639310250747269182171213628778065759362902815321392173899817641301511488419697262823232526035250892860687266302624292592542613290918085484781944146274656963086409161878507075704662602095909305111848848927521033781244092359590525175870020151047129965319247245255749817248700223561721173763192912392056492528366142612268833735867565433158620683058104177826828291504831719614882935118418059948202610494552759466716224160471219000980846076169034223075607623266900699398301565605922107319561597342315798765629499362148486943266325933884733188354266911827000599448275615316790364688114359907249205439342313260621382092126126094290243860013044824371893289283382666282413723573655356357012761689638880236487278408651485973000319782478068918171749297914188781636362299795400255073476030258182055536620186590735639038839180952787804480892870370955535903910341319138900450753859955409046661674256665831990756460481209663590832573417288739448886538484846020391959039967232126180013192522862094873164613026730052133588208292803745572512452140127525353350198865997143613179937024435513620515884861574535729161374534357465547494801633874537679395297143724801158490057692681488321774315479426371234348205821643011809942045451414927742429744825977503888293567334405091581324898467288055091713419498159094089690282370114463705749580027567346099897614208463005602911421988862798151222558321625005931171739207507167268864414942132385694381700577017403104767019144206166361345268435875697331482856584997710038499458821356166930611011372348293840178169762681319054519108814070396421019314876407660100062103677685365844069375387431882776989367761211102121423146176566225858227345354441298892555092365592530152331745055975735424906584773904304382006649791354477494921292444165027977133059233582302916358015866997273270715592484752006212483274875268002214657599751387094562788689345278931294898032940505986337761798011083899602008475656455578211761610449110391297407899435333656866640761994108873286334447190000357248018551538306311241301025547833335616778335084202757140716397782549287638647973932477588461440808415879854107604690597020163810372664343756721609468033465449782359974216714284289100141196806340927951897097509294984240690013675377718970264224602028681677711341746474353325195310992859782630315370479621410122711523138189060698439193893348180198104891706201291695057457673910045729631863930426289980686227962242351901692596902610999085395831595644266823012206514297009700479586540946469210964281339151635309522571394218187712949524209245689361935936694687914037428394737488130758984375815555220883910931757507768055463476361648963558394325977219175306190751082588955422823930783265870322349163177136973374602368658826100479439104489697586375172991596526884479907890323083228885606656896798661294003736999504793850009988706960330606429053020242201867635328974066814865602324030768019366449582945784363086738080694064625741473612344570192782217085450307024488684670939952392723733566952374920403066851604082408687911388043972515641122009599321452668424955938483709639817706750472666976595741111165985718535344052779424777357372019986481431630268094476457990182370553546458041842378838206047727194648492179986919734319953134378150492613111739037492873310515819567720892814956043363854982933345933003998746130269283986275593917002166428355810836031954867209138081075007650618188321771179162748341803900967532172790340715029537751480830103817678483358157325170541932614835876250911060177276858616605744607600440483680453668998186583010181097095896437997724488313234993908728188406292882919798721809260701174180381843737600121095388919168467883200577530136429058157925583686935766287709859954302560721171918357452843010220357736678721298143452027911445455294602545354192824044981854033527876581361523446115395381743129955157339772284192510317962024879412142102406641160010156125940193965582652656489277994379356660606605667566927095829362162017634524310544223634550966575225881940095864057424622990898061184552374553091295255079118128082808243845142695850429900651285648513603678399402704099830835332137789413110297214005344712121306583421510710004002814321455449684779005718688033623508996834456889164941686448438605988392057809325616364605809410556570923802133843720307442649796685846837084370583400746679556115263587873386763753197045835410158591889247442776500559392699995706321157534455517518424835196201029278542035337970376700652736668406558697673315152592422528370255222934523480375614721069916360261916206571696544111190736990152372257149428441567337844761095280147493668596127269642099588328979195277505985277369846009107397668661723253849486517448338471322526069641811933089469196106037767931847065629607414932473013400530555580433399183758618552683212635849789061641773572839922458750819014034106859818863429988657564798600282944417176776651365519483959101048798360716147408339670533272401792727812251675155373263970633729436470935704315710127535064510728865522892574411049784399386348534317872501097768831661814881067783157217825561392644869703084055153248194767223671799092006541128644671109119689645294863438455113653881785779143848583740700344106786661350011229950662561789854957005004189133823860441011789748960153979242747835987537138056858651883652445649162593486957542009085146167104083758874267582094353531539829328909228190158432075064209207315549676288521008056414059928534295599269579061749179445666123480026830122627460199508222282198668475841267338921427300638258621276157242331321370210080482933417720253870009401562601301619553615909031562977010526139072992412560967134583782029271607720301556260443808493231228342103199102704327354979667185043049374730954048297550794840250758510682951539560926258320120983832223924711212196067670881439560767390326407813099644902345504651578052754336786911542627436434148527063499752269966622380195517694428990449227474901122444955637771915335511040260194565600423722383549453916697705742485579238017104254114403076871943183856723656259564124058680216304632439952913896952617609523135491962737925702401542591096916622275175293797175603326932380909039116305998787309811369816410308924974549315098697405934456485657305844941901685982652567366674241278234860417021615112897026522917184762303736314942157758707170502663623854739813318763151804080285322942212611509047683607623841385509038742641041511168460414752128193333128917983803201828837590421512323051702529825482897761248495837903012845452655166257122385638998246100162625256910641957886196163989279794169554051585513083723436959694590483451176485582512110031500440786036054771598831774938265567492691642403262515503187903311680703849310421335578108852389191275415182082965389987740551993908929049208320002384016460706814873230958381353827996099737808605582202763329338998019255264800389135375974862468690492838049907575702808768511729560658996420247904745646518759688375146375532305958171209719031900636820937123368247901999440363213902993102048553028952791094762436963804108553036116795870652634622676128681802869683544589944328394703572772951307497835362402429694462873394062520112038364044089829056106077539892562241421251952052287163647343633745529030335511173143660520545834601865941473569073582616316599568981055760238113847249339130033448686677238514659164560720893560961594750803655008305610721845599471943865889945070460774747737834838703271215391114875083297221598650674097593065386666860549238440055857311256450755434208226839755326809494069159287562483052878856114860472882852527422178637558762352534983519377503363831043659095970020751821170194762375040554102426950650627729035669705198170080994263935329132981914699124335754334301481569122179667437594818536259123060087518951476272841831276978693195412062683989847516702525075261476918740524500977646752427332990511832081522527460901864281683590546839077358456007365644177543047920418728865545577194462027348295690981703978479760739889040244390204571270535365424632174082767507016371840020792171075949264008707322198864984465350039534250905335712151578274012040796485482958539099752034761177502224169678861537038024061263460178401849114377578404966837030877069594403365755565648696492701385014494366524562054956812994931098452976709011897463053087364812617618495628760094326200965761455679139256736185018932497432287954858243568480776862822585923307199497036561397651090394765912051689149287202717340593921391865419115211752675632040978356651394615932886239786527637243734428329460331850930538263019066319408195472896854473669138216437400235049386672593285956555791348336121115748532618613056252778094937843669199512318951502094066334304552811125641568686886402227190800923914318485463550697689447181413062176351693603468299304697589297018857075387124206155207178463223495002445082199395341126779799449925382954124062209768929491356397285362053052387974542461024964299593374738668838715792448221372970603457207627244355402382280861105693854771857347410967399539365409996934931239789880541916070977703092918605686019795854407913000346966762840979196798199118838559186434070136620848213490785579626718069692501784729315243598909486546045678841923634576845777555017469132318772665629852817676515933534369789398247316476060017536017930189986881601100332526072907550250729998340749408804210914301164066502096842756031571965466111778864946847258182385886454832150377947823199808197671245919223543362129375560821699245155745533000899254973259703537155228488910250934502136601266381309064360364356356337189571424653009973150167955618228668799524983998559275856704016149799254790740006567978629997326876494761720261748402814586894549700816899070940330260527027064243826465596492649179301175320906070745438239303971197462095447092272058070684459849959086850660288188325489561137906383793250007132593047819923326196694732024488660097641108540800870268455415648458668620193200697878277270954294373388765339989745175455040446615439157122408293725840199243083725663805523869443188521492704269974179965346716753210486343861711014470330864069015654662226658847342035422153856210196043187290184786108510667388630508037793726086980423076507672102059935041620329738004708789634680139344416435484468087302181465214048392052658498380425448937157773746801299725191839797715319264537931470145469843095084626079646814502550895820778200812484197417618188615726096849252457443916272015776491159492265828419140437617207377893736395845255108796612204113397016323972985525647320462796999282803936537132505232182616689964829867623591253664481851121622255482686864388280689107343550635132468230304361580329527242752272682780785552008029822514593681795024337033869028412122128119259611845838185551237611596275183827879798386181779742867590046149920261719499326466220842352133339740050001507347876646257933731536144913208656354400333653786707181868588132895717694486525000653801960858244252363007128671939330313616373410681082189296673564057782414026041383086038239021076281432700632801586089004172716080779953991932436720169922008934729294104322402809393541652205558678327224124453849979134422776942848731937028780577256310013260255083199696961007621964911997195610732963399585507502682782930936256009016538727820307925492479691986156409036212057112735203349662728262577137421347171037724446062758125745161940469666557860750929096481841479291831286888953819526219425818059734647239938363036810403787165021374126088834357778198971725496799708070150058744073129505489617847870070433453106123689799678711002402243875211914077858349408380979236528681929382676717057715496694222245284257952667237229099769922971324516134008097663424495170989242647224335652828580822741448773278268903180308991935038630199717332426264287842236912471955653543804989333942904259102824528925730955055842808312275318795375285520314360374804346513760137393170687598217868237487367347296139514026556565905649059039491947919985136387479754410146103476834289370216009263050059080754264450109904253847498859132959378543805880394209065167180507876308610983889189900075299827304932663193579888080203107118408924642684622004081050659574367680951625040269338500181956993544693109376555286709427667477516774145907470048740576143719637781851354438256556098156194241602650771473588092496011418059739849508757398912399897733556256271420095069184593854174896115362192613481153461307306624344520009046151588121574649865137218723534322928062280182379186773114881628415912608527261991765405113320681958515104734533737542458423544047808390519960627170402733285794063148809908660746007830536872640364821894769467569255759660270616689807166869125786071847081549987955848319426745162345500126826540670103572677844288026476436157270531858293369159326048983767402273631524199622794395233997102803982557360149603092635743315218209321234180469584340024309238620848597211723319484004748806983408177715052708314343889906517387806442316072300632321459651456796806039446841584042883925157279831170106880339388327188549300322917730519507902995813619512024212490967363888419332220284198703539780138132870331608397283422176675309085167892462215616080223764615751948174902069182969994739948073911007715804011422219401898299513422556953310795388367184474218580778273624272007075619398837951207957001031840541435116810265881098475205616269323022832783359087780666741427057715254290541758727364847352797081053060929649076714593211372101446389306717179272229378559250917998600961169321646219720387655992412808013535690536431465449301257670324384274773422460952391664020793340741390324612094923312565764187951206981064133773450243250668910005756725495731111924874749756370918363341389791978311267586180072983895221829079562441015895071713714055477437355076862686218051192653215690750836747599198588805789829166382270264778780324474599070758418869521137583987703590533550555287905312844406201273333044394750184272576753016978843230085055055685692279061125773520023257122069459652510876286212027589428769762662038978457123563751529057859693553400854018973260253306804074735135003437357930259737893369007710269502382288571395133982725311636241354119599165866815211877072663292101593580205409479467955832445044386313822708250024231755689729317011209989899967136239451547868836335945866696362958863835160138495864409183939371161122103442709571372180267906422781880614320476349011936842105746680925664248585439030430249405455123609154336247858832084205785346149303010692138731707788381637003538027039165693388777222891134384320793261858121736162426300762091759075145322956759594373246100639919930836155677795158871775189573976665247275999353442466884623661243797862507811430803221666713440161203948236334433272043841691041569238366594229326097623637518099075295848928005544157960513814761979750519983728438439356570343518717027350248141986088709903109738630863130708224119698440807564313071587954013595093701518647881488323925361882570182314788437341232327827017946357078116686851418574653124479938274401086856213915005285826445066456488460255861950878689405974147364286923498821958733246691687706276791110608166673209269212055077779385509611942511345813823570797217097905384889447487688592166617585254612245620731526007173405890487942289817160629286318744005851551618152526307712214732705205858118290948380862958221659539180849538685585955049293541178774335860812644919869604592527226284655785379112963502051087641191527274448476534778073439649505497326463910008622988503614644217713992549498126284118011070975421106728569715103393730757146947142472408084866705176337208987149581071068466615076713130603631868601988449208563969253744685457408354071556699926592741842096378737964027380251028485930817458583207718329921765234015594744322089251350126372961340009188052060177442256643886231111890323114371608796495425624276156996867465576765999557526831373513735563120397153895728498596028424467307245918943999308469788474051248840452023513170008954309315185502696293598137488426049727908711197032434347312917398354776199720368632455951666019425459491495034772961062559036414905408964118471998328043584276517123032044506249468371624505349245646783086420980961738373504392964420958290458442146268795816382094718360164988205626030235061501737730317872461641826204322798987987738999448268162687241538994645273323856701755705327156350500212484237976790660009702575608106542891182259345140687282352623469042559323742917031991756941526663549507671967300060481962992047192815861313706547595197721592367395457574602506035212133571964570514864255267135787941478774736377172360687179325113285287679634635184766735677007270942858410382313486514863509304558595468516894066552157192009275776341616959686837144701291440975676710002738539130362678858188783253552129369638820545712574129090088200127388173730734864461911251043637198110767808877863964917145637900276571594103051629525618682635656703188519716725137261547025980301821441050785942674517959189529425249408293937081741913454541469406858457419892904063361109949405721978719185940827275443806930949088981331934868424857062462353398634276190294824406772025535676712264983315895903225125237887850424258302983235267494415088008035854175706230397395057182148139670578483142488580839553377957515358288785050476647898792289650670512848995786594471345785558946486163576153043232074778731362047713790507907447593091588411392173485786047145810789060929971340427660676707960839210532419598209740956282367588886084887584475615669999644439946934792817808391597948017964558764202155356165130850856441329137027688253046182636409978240817129581421666236448560201491062688823142998454347247931548126805789194475856840734648065850428311864470767129318075716760209110719332628283778234954345507448989114375362610945648695121823925069014131373921653478574918752639644631437030441616494287748066074269925135829463186163136572527218053837066538781124976933175726430349883105766583790317138652906400488516850095810490809625892931385578262237833204956210461958096782815147233728073897281701731213460507780532394429082549451829166183796436850563769074016128537239328434241539981029157937882178931886032783715174591864903666187083498898489768726073050413538368507812249167664540065957937749306316012584732513223678556099757801660580300718480012427557248585687177665974793792358803336774237029512792876883493925447160806364826268535211086921779044172601491323959438803320326392755774455185318800641647131192602332258077182255909439801403353081077169227178439778944236311331019328117535100260043361662926120794321106891790618499175630796337287542815873287549084349770444894863897791586252584144100950635667812142635707129859767309025262325523412449384460511944254039730545367770980859807052827536560044534397396924118738887662473244019522287763512480460691231182930961055742432512136325557493847203666165389050419505574837156210832621249359881304685079152340039580052606836317687762384634852652117222472640973102502838272500210694235643556142065970756121283053897802976950868004470663111727603506151901554389497217096412930610778210085386963690945086397018073970052150270435167976356375201097140076039511845322024683083732286616234505196181343381172181871073613644204974840703854644100198534151106991324534276739954892952297758483380391038989285019898046462755804259580128185822836442218245044460645104150841082652485169899419212520430766267913856911847195220002044294906161207423062735981100889882074413150253465517612409245622428059330567831754091875495888947794727937022196207376543171121640406222168032471857364142158701448504703267328428825366656929306313764243768647217184381915676408418910449992150675216097304037706154670449557010933750194069091450499587369004414288694934101974797111585326623132870069303474822802236264814132163529161751222208809067872706300461495766457700974140362103558402245074723228412406846743046891413822741893547388867585268553407439429642661389573013737626043125056508483195686990751864022065756204688497597860106991931064281547202341504053874596939518273871081284989689081557505951481378008191382262386945660328275978761657357102308975599823687350751724530863894145250580159572964955615387888863583822073094543048971246605682941842270817467979089653639793744702409789611027062475224696145430219544056031422011154362838370334861603111752289560178161035222983365357978174429965835433443254149551317246024228533163266153699874495131494089132484180257795619423748285350419561229478432916777955278366761210258158457676413468330395419066080227321703894344847925776109714213630915647465753067874524165308534711154802928252654962305071045287431416479707085829434264902860268897168802228919138761852427358460042642721780974676182062693764499646496698803204430745234999192123151377074643543930068974784229820029593590926166460680647887998695626363247162694656088599947077269622209526496701043736140234224273512079580991737706971471967438901048596024448008996760052506494475125909976836506863938024110102756898634654335177320638103079559799275674894089887759776793405587001344714626649615801412919082772414950981628135927615606561213022447533364375626425389599472598586510826492281990795650169688029285504660145630013678361086971095377305112184657970664227636753705762448049542940875422072777031793314477893415231804054119797294988782795341559698870007997239905436195702920249186248670199215802441063168770920609712407263896520677801681108470068939143412934465512346097989906908082053886080497707901745981415889686604422919228453123438404998652041265581678729793337319298092887264990760472147362374490115610468525379175560345215303193001844960573224831002079138109736003684590408469693791590209957981000383156767554090157273031098754934036107784264113282035725719109275710484631682105652145928487126602408447969947718405478514775390916018713229039593614692494898675175596381193374495629073272924538141055402820436331381595862068014389107532214215683576582279324755337356837097926401650733494251863069954190236260104319195683810231382867729004541701141601607800467830257241657603239724841251375366338572003069765526569434240105091406855808264040973573069841901175993359199974373457534050205885409539653289242676257953115039735303667931155617466942223490912986150835917323635538820429512481765295691228039520669770495787364558717727841348318561017660890920186584627626947821816527029058045024075603268080722875951649813982745109641053169863459530171627488106756897070727150225779275462311629445875312963741918470910036008109140890157758107087936080299081275755817808450028081155359594307962938322448005943791696133885177738344982161293254074719358046170883411609195870086227147930817653523478058044985535152595241926249476266033803947426512466054097066012538694572552131519990077542588930219616422249941295971729237306557848764913857178375815731214485213219662176468598881051305492339305006414933272666945083450921810233554130546500286724952642480956161674752808015580665125531677820146673241022247191266375708239242838662847105877428143690389385740512725037322955892015013449948412699214768049155501492946763710333224966741675466375476905131688440257570736107599620087427498305134579085696466473195256132748986409481618419534218011008733522170243106325744350529571457288304013632577918847239704797335761320488956802628470407203095540571076051015419655643342255643062955212563715332481248441066117140284435291397752143274253654986185246659441150585308214753602217190576192361648875228064829429126813564113501046171652306279691132214497862770023232457459485680349332832352769669243199422044821773122799529799786470232082388187628498218242196834704351997109331730304644180244886570144430715968740362400436734960725217549370063639667365511396172996809024968629818072472011419148050236877545600688739113834482883999043843139914718322771056327332130758154946962778431720158604910446417921526118413920947249708953312799692162615910579825911528211361991656543588322665898282283492648531934776296337666080855645913964908758182785459679748531064110554586449722844477054573737063676873244171591256607121342813706246615397563812724667803245829720917302156995292531638110959434183068837211036247335994429311847122262179786789447428632667215249520677443807377927294443869143108114633823218306060491397249218643121812570700399467676628573319309139821454293889243862641955600448269183862099390344663997679406422241883775561869700494924250921285329953871527424460336999983620449495129125483851581170948647543260135860760679697756611889517818331427516090825106812876491727073062137364407310288241391551195745461121776805602871861295724378335521509713830480339030512784105490209376538324058668285683099419961364464928668459635280528864382573463478340650936679986863665719371311844564591282638059020592263384329779430823785651465351500781917269055825145085774846710255600431903361525461496468077562916265997786144581833431248306427393978502068091580151452119196751793623793458886882926952008770829764642346650321230558106854818683655479921053015179317030210160472948968152244353010858811603273047941336730225030054861197323979653648405877459145192177065320205356142729902920314626913057995866468291461746705207456173996463158057584306522556405832257395809854680495955901644946498468783172957411710495089069550516661892265660663440268109131496433836342531040276925383981941859199023837843082799074596830472387706743620059389703000320811335584180186329141223477899225672317064463736322381658532655463636452006157821820811394275780810934428543528233612537058848415461144859902098514312047522547481241560112382678586296754177364214019491779386113415476917244680415544797003566421344229565437286213492557193091798533515121836156478544672638239042771521519426653847556518024466116096032281651159851092183590096938652618258230767402602237362321627464579926670799334874549939921090365848679328431545480705208561671562063748835551571164645052684027277184704157136786533209584055347406409555839051006514939021097770426866138193056899215384250441503743194562121947540459247129525665803271929433855972849479665603693688567692359545681718097570864918121091899730335812428793725876707879703333877071224364730704185440384834325664269778687198729266097649339701308657388293616560058156274539185535843910530236566894473784481207532092868756566706975627178583878300775801912397372046856313839246725512437558003142764893530321376423277959451829382421735804499009579706452355105327172438648365211963856290346111036183700741458520723221533758540300524184271716124285611380418247795000987977635093393308618858483301786725223220239539653978370006853000106095715046175284960808203660810676506293219051072385744986920063523457437693240335663102001062719528804929955829173546316342159277736387605235579716768787183313073876616403875799850953427265149293902286031191595036334793555363324301221499165039427139853643136735141671539187957641845374052749814146869786755032540257829131639520246389058919897665487456197998258341926014044906418042796541984343774838826880536858851462606198090826295312940229885525037762564957129316879627802910057888050882025915292003639679488206230274308548261993892528900164087967788841944957252723359357054281340533839642085609341719209440581165703412272256072802595028794874721876653979076149080176461538511301364068791204460958933161195444411212622151833243476077515786824195984677599712323398087599097679811651031876697203432415262487846153978963604485071484689551150577617804947039701925844312573704389235637365413729274440319985051257699871376802712439393561086018983034109308503492904128376609095295227573755209248812372860162059204103863770476021464065568681353683243133288827071691422202660624518534692550699497346275276804956553905534684666308091581807327769825344616898269724679344665107507885732047983630951408952849763153232608782797345227163519588956837360341511166882616713431125554533107939150171602593153903833399205991733130953737778607416902926272249840452351196346153905617307388965339194519293927109989993220411153155549383915512747384626210425136029063635320769566965627999138559863784818003120006838217637578960573425243654357844659446389430520138487895081695239901574031074287460280918558282570538425032058784623313832716765398303959762816621456989435551357371328896918377564159470783484448700000357011722720029044559101788317092165447076156733061992189276910058005159175702038839077573168746026354259873356132472163133900279093627261172298259038862135843074505378463639049637069356265592585204728592938257071274327412060488080926069354883615628244000182609350838651441800437111366512602853596789366442203009736554931969870957490356158370867950328295286036841643190122388188355502814384563168527154469644358967495958592094660276283790776484797126254267834054013621154776795574998889070496616077848991638707783381361504215884627158017465628840905785309199602614292522938871258567316748150815512353511851930716602786089154674523149074925078844058575814332098392753828352808989492071601694199833479954497201307058132699393924000980366757013302423464627914940444857891528096980199698446315997083883540190025427176234523278489047988502686678540832095236878817327717671540750893578614047379179326253485124792980675248109583838005575027209376399554870774636303614918179108414404548663104275384716815646911910165239737193032775530682599060467964227238066092918361327467263275849436935286849836609073618209335432632735039513554232205428976627571216736480237685073817026854085836945820295290335659628258563589335627978078758655207885163281771128971711952464539372365362114591218497351478857275251927663421842579064621104809061891206354067293793748151468747021314418815724219066302861664005891345713803390515805398727137277184301277100791032769031474793390093552588792455929600319841886871304396000644806538232847183518875548159030555182827335730400271978394909829084931517998488736854239658947834187773363856282464265616591164669197309761372303624106770805889433718751971860554772681531301136502915797720086377763307142533376971613258992569334655018231727790988164423266270969429043840562180723443797010035955124590509575943322612042406336964104408978952425382921648306578469306764133751656754051776045974558583132388449475047678994824849538498591728051901861817215731622175480305542769151233767755575751838343425830740084529339514100989498433958612020195716901225546681973253930968322874708381761520463675044304065840390285032677709421119549452474228727656060774686300182736056503008037010294848622291159803410152460103541323054117969398252799768199188937381895814043752088553953554384382162571669839115615024685894691797669163270119456992072095168315309370249591540530287003367909714535313295602517574765178197037998274579719265615056814753668330064609219240086856650838375359599327092171978261446829118637232639290013338591183079291634492682044678216733348282282822746087741341625507450087089064588978572189339715231109330341342650109756194882857991491514586136334516687609532393805227559620193014935059548518566386108731823168439898992122649544288735176953665181915019188281675931658932105430131421528404661766786881062875687639871849348752340483724878466810828353871994449113115077294435594957404576629115232176097149438482573680180437711412064737029451644694321154296741961727542648394325943241501765840415064960661806313006543927440765191632714565581025048768213089828557870020365304444267786364514607352567909681000961207447146562294945830346213765254609353460722133508243903464949554762692371571149709977491799834716059945053336287686299024145773507492554353555865035109950264709884551457520761183730159033218778856466926569819360044486815773796388453751686715201951266562376892232490432243495792593856918064277652943684189899256489618674885095360363959332408331499740808999354881197708987882848044864173981353363787589137984524150470958758185581990926728675202826020354302730207133688825287746260638496053668166937560774489390022719265677987115934938952842965254660926281060632734484277381526702393311501581804938798683580885004948529787613408473835693777741269686939196086433934830182587653033836134738601772054332600536624887248471463665045642395256442659004389224062464626990047514210647961404529835488933791190853893154977246500297301063435082019136108118005054797764538847705467245626120145128714631510579437754405712795560901912093419355662619631120517255309549489232102746607490471796620379062112014453598562431779360966671055595331824693423622891829861743011864519597780324834978708060186215722565852724990463301160610928224071890200197398137877234417110273530817178225337210139107047014200790177248670161895712180585161124703335077538224489249275865032992783029761991237674494052095342412138917345672673497394204643977026886569974054784315980808966524774514923780441105811030521275865659917726730763214711081170858574598749111235724639399556893169153508630178693937982016070966436272459315893525605290976338469914431078061075349899004192818873071616093913627417449003428542169880067557253575543012868391235166905341818206266185665474207342736462850522602505250557622691143411340145457521172786208963890166836355809172054843766714639147285689781630340747284637410086466480806460088733864203483876161457846770910776373379290308943303523147245301133311731047724876990999923339231794304903178973014225503807828819347407901139257960578462999750780169499653348243916391755481577688305565259354541419327275198715987740254114897674612334517947643310339011468006928544667924772143665808862738528168156515607744477006885207009039341514335511933013480822074324749177796453624290713561462420326130632752629454462349491951306087767650053190801360186697068100301043009157391053761283548474201718804732189762794235616170148984287473993375734555043126146382161674291045018167127658232017452164357499769468588711520695457175999985071020563451677405721800434872600339214701843921281602323707904517431189814334991424550525877905780136577226515196847964864858503762908797840205315801764893292568538103609807224679597366867486868812446875943055260202857224641154306696594741012524268505391347132145163963707646220824573179349249310272106027755301102959505790941686045500124765551224885746080127378544552765630201397418686597110334329636085379823268608705459911006232669060546076977871547182563987687542347217237742414936691479461794349770465012942256562098603105713431875810418821536484943735048707102315102239916689405296945677267604570883547429908964330562608804614199074662731156592040880643341964717029691458552763621128986136287069868667738826708597691794359896828002654167836881078079783635826863909280245343142157667019223095515325167068408748320112292787479501311516402843283041312278267511452934876063295505172235596643725050163642444658353486331101867625294789168223990573795863673367014642212974321921955970025858982529281508414454652794168369382746672871092418079845575288739662476162917624265294012181922088136998072401543328389009892576863994452381151521246177519730516977256565010391214151123049704787234641831850044775007599708352530356936648378029411957840591148727892509378550483125287158593942383498801857857376865158844975275565976712734396126671014122264269977767731919327215319648238370129030911756951527163522001297829176858333135514467474779519255718324214156194067813705267949826441659972351970420828900352980618183108676844570238643345388902454520927123185559763931058350237467641560931212712627904324241223052915357402671228277134368384261211278920597247105860725767482954709207395193489833098581621168706481578250779057200893111809563465711523140733183573829976864798246893228715213852517926284426134462207207967807999339423007719572844015938777877123441292965586480077864428740040703256508786567985077209435428059618269073617853750997222399686385585110020724745241631024516106911850684541892510318082018196610199034578475123144374589530182607630977558785161609853078601384580371402152969939647682358776991284394677347317688850921962291199174999938910400263352991616942651934417081564346027803077564032287393805440431114215753544912635242918752670470652232935250760690625851274931002716378079815315329812117839444490769666766068458011925439711621030742866191706086951761268573454830015722585708936957126275951177535739638650442852047258901978511455890943838556333543232979757009585077911091062671075195272221503195757230308404483295641626363163809280309377764852455963905993876325290157433168080641178097972603226011338105250028726562250589268058209560445902202866882903060145013206781083515359011008805936554604230506537201235056243485689887110087011573577607005304906803981592388967991682121176980374889197647826716355571127481651385786721315991885639573505336752610804645637808799741496900432140062931123486000468377444432696544736172366194064310192044893282190288281456940863424570177042888570786326004131985403655291054315081301919760990879207508012106459576416162194860582358689977892222048309039699672071242484537685362082310298492812040066765346242412908170653838932840969070918765744956509586602276061911312274766510550699391812484211407358775748605110788939887105420104860761058786961980570456685880404043842953284275202277076343856346781119589704620211481289716234605442889406016392408380887701769768575255028929421940990053725969174235263035780444927335449716712064841850353603125631785971766954627793219389095421135986023448186252039855596493806682800347624850481739861919466789364466659837738285393314078170778996092410282990636577971199100380993907250888284173779919214650653241543153513167869309898554129385467235323935843768276487384982581411332080335316764100135859325598849773392167179625532449708452380493544390440306409348058719325306531072506184545652132608996136397269122249777448101400547557202200278758374965523612697042671872398899412815498291011246711426700695433299836609225309643119816332651718880811245896371921480814312411979710262441634767653706107268674803370131670101126104775027814453811876327005311363802724490640422326663669456603135070745912607400442897672929753026942040735460428311461485537406855904634909499719420506512762403744614591143854363561429611003647821902363662213012012067774564104684189866557476693654800196692885177973843965015027243168634066491524867623789281588177835212206196255818781260992585382544105718839322771515076135136044090517408802330324938521301235273260971187414519575823538249946700414030035748069569495185808642913334229066109186828112486434944247556876388686625584127048261473867833982309304227503501206099025030890914539497817936801779931966324692434201355714828334763580767903628698813850651309924161112820608504839404672139175223689752648431815276309937686748726004993845669908195406062273782384870577004898947418135410054811632159291613324517149353785505214113932398101618815128574001265152672162025513970413085668432780354061264432345578029847995268519265519931016606501154989902971772505770041320639990145121044871864446526500390557409517519331014092741674364500057979341784737212455974792627254435799713299653904223248712776174801243740471441038891089049047520682299163436355131600934354935417190435860311023302745425126343222888815657847980999512505066628473312031061849231945853003300921542671303733332408580433460085153541463962949347052243335645506324365167821652901883037062133635610171862207125431787042015212469510257776896697164203117142706663320471233652434867654330555257298520920200846467008000236707860280790522366636189267310332302354510155668736680982605959317045349345731685165912615532953064767143586515471559469441661465707306183325562349920358149280793386333368981782695574816958095965891808451207699724859491964645207404706053848089810012256126849166859811972411906492524631992626432436310734368564997716346996303843763126348757911956455562503859180987561710753439462615659392022773419572463215316347142322792299304102813137219895087553859449492094807181568269413248012987253082780383333239736809778976805424756115544754883637142714172921961649025624007237049784353614681629768484468004950013147629580177791094022709000172804251356641522584454813836924764733229704468706371534808465088917074033336523208759662638009612035410717499257052476179293299965015413022649106568698875872982253759668309589354602904736709252556869987910725403492228281018150033823110867873322665990555677787662572191789826003804105455107113404751441893406494141101998225821464659341396655548577237902146918713201091793640650636934154877053574920366560903172145632664350703981871345992965776519237694891188518371814386411080026710943102944214295511053008170458265821362810413641375410066640422477291262798201758485313277841020072023925974895026776366115654427398728453815139576981447708023636987672124511070127189404939822782502377517937424472658873998537113773443564946993857180973150614932900299324937719818920958760102920684647385075298768618616201664695383196234006128582982757129231445168446743332346561355896578163911813259373086527816941384434616158557207807524148189499725585906298329235447344786831588629540474222953444628704188202581381233727513893580395312076913799361320040155752465370542625512591630712855193864529972211921371844454434716155167278369486546935697208863210557469949386445644880980536569730190549023347344707588382689888007833395073208945943628292092939707526552980414542205590572011116269224834016722264759868662984874616381251594415145658269493412797354295222069003500461590454794669953630497524623023193309829173903019553001766866862534041082596650237260560768406723134603577321510691861659062206115766828342768884027833635242792426517515783792686640598646818042408017823586852111207013489351426687505631862857497993320216424457127640865825307668335297714868683744609429480770315398622435719472614981681134130740988212731803743166968724902499643809386857132676957664603092496461272669538216667237050724603182347775591070161693921399445733179096983106103411026997043351211152872639932408250247201778438199698475643742780364825207498760482277189671879672105753798146606103029736623847379198383030281330579008325117805468301127037121578357314087413626798954563435469290063064754261419762951049191385740974547872549232197360881534926267621117817365314097988283579859721810641459653703341199197194414257288486039187438867934902279206901283718225576106902728003658668329046335911240169899015944327561485707175991339524434555038942912748188513789723353902912091596641473918450820400499960162576898863094528895202642174178113485258184394768415927972378860267002085654071214014694114683061312864968564186142771763170680030752714241911429708784028480542058845072388978440385414452775549283697240156427224425995979089159335875084079037765319671581735286646116654927542155924590723184052208302984753211710390500713045883893725002087261830093027336316682103343185607594900807692285306977580633529890050277028145690435923982543498356720992637052233124824930573739979126006612848323719960107154778715777651418619145613461662491213732402052103436764378636578951530333403256811174804594561513136862573546354482659796714316283022282508481996434671089625367219856998378732262507507929425139612246578111665724517121039747794249027384540635687195209975612371098065324742207190770583158255480966893099296994962689762821005644974938941992303925573075025709308626098279072119374236817970825295258028932009305648096120754576731934085468504067984878180597714069795793145906602306716750138677704625660307136610495271941491353588616225973885944110359001101324571628172507628151366954849891254227682429690283177351056215140262496971786841708311066830812478961932760174464695571428674308240314984205657462503382302039086432917144317739442510287005137850883773867962581709457028839441204992350208080981546114498817661187997047976394083454685157160240127584370572377977708157626981984545102859083865741682188634045644518862639316957293199227070579795238765067650085514648181234137637502199597729273965895230258743988308063586754936309491468957735699775951053479994374973631683388519890050584948255756302888117937718731333266098232333549560871249626921574759208692713067136344835815150338800268384175664689511243891530894136814277081009057416260676971927417644970530448974354476082401217473182874609501642350164691748349863725632825448725932031902609970617004103566563758704930657176550967122037704012922567506356976008363623273525603704698209064239087524426568557337692496698475336873986029429644910432762022769991505631826641403098842487566947615135346298879587321027493018513850574354025123051163947839340017361722036759906775510314094441838357304003707388195645341120778773320454273910101216698833939633999616992929248355288779074392585851524313194300624744341895308538613983795776670898221301715181329435843059187337328269723660521496843297640272973809131560692787004199698523286164691067128019827352596584396331550668723538043514379917495776196806525743091630344622287335105875679387954218871202316761569906427596736115357052858645023510224778464496774643513158138434697403047554138991908022574288184012582754177012774878235550475536678759350285850312966442532856058001681320118610811361075492111882828967074058511125424583302744692881421731125131192968646413983447576422659993952506405736671505609639841536358229635004742443596053713454773414830665037583713225457223161906509083530757661444640107218376175673675233345113971181004965318555430718481738995780925864322194802794663681046517882159112728438987218257174575442632866577027988522877075740674035877310295722535021780726852269123506678628521802899567173131842778252861536774837438713924196920111469058877049068930086375587444849439704651756162525239683424886041694239395907315828881407984549761679257595707532299571261366672811425012595597344332872270483266687505567482678784378282462374025188380498590439344038133997741716948486447086122808588935721024350123265150381842529609571758783369097966937499708383111230215319084829461478173409982391058367523711213912054022190575454326402901737502351023054058800099680173731127317343414796732830235807581476529942468650953254368172209550983205485211612667071003196485791844687326721505805710901872238548787048181082611915275405114793536949360713959994919198252184318815784260427722649465549945876909457673967216411310113804184718620147871184158720319268856674396740984641421011118510742583058734576143816904248182118788904885992840772214228704633324942402098120091064458328295234336323673968854237682980822200686063555696040611695661129069334580273906915103590928958565611092568907966448797186355722924045983613566960611015051035829343903184774818935475853621563235619510401781108793763578150826796822748568818493201303845015881900614477786965781690368122721907686524218546544611139489630465970700602888717569144279242363926182055849059408654960783456898332010407191421611013887093152299183830556521002464443570336124474238648770742926917095425454232776117837656797676843698096787224627001009382474386127307361425358746867441265414360556389279619077611486728337042046211806764433261936098889578924781018083295335140035177875208879821259006302344045896897648340015733104880875480625049188539581572843107973210373606011347132745844834969817627365400577205904780652531728965182544255871278123950804414239349046126612075761104312021234610079847916326593734839902087028923261820856181771725713912015868160601066517900772725657485025711403924130630318349530379295645422545842008220067758543164316162028448918449268263140467102604133974899844715691910166095576876294011927460406550858951270697149962208097365674861159113586745747645603510314267823869490422538135742734590924269397909431510446422112303989894753602972988743067089418126248068459563019598343656182971532798339220040363148557305021005455138226907556834303461248729228565216146231190190749648847123281699150834165076794193694555890800847742887392177163591175912873299897765767564073415023947824758687770863542535713428080007994252929422357731490549486705689760849939281815696993545824732675695615230185068394458425261970108263649839898128980272422361789447347676694731457591178969793124112359324484209564217483598982684873803234822576937921579885378579358786883091563796230253141527237922612426553794711631097650673366352754820742036380875599983127153771190956826893124634503292957895276604623782201944106909083436361858135048818637075187535594378748397130288526282283140994790061744867493942506731166546690980009656403024444135731291793454683841727068039814846237989727060347466054741126874255623062336066271217048151032336050666871488215326612622610377740619933901093164904861566726466949042504672441538381793726619412936289902147515569696503299285181507015502554061364775986121457196892125086606697017883818610836076444684413725505787321310166772656833943286280528951086166780510547340027187242832384689894856918111745780654224099194945427823818039074370884252406147113081453529219795416645919282620428274276567236496871117412214755713340718234426563555004788861947396764124172493302630083592539034993280298572613219449569738604727135466986473583322173296695755733850057587675805334891425695784184638567201731849741352889494864611696878270120995271367842175329161424998182378195643184282234996186204982035161106836510102541405339796778978654981854201869372395898964751818639457126042177077973014871106339133347271351024755541988415213704431576326615750767432527975555482130425051099355020738690684056887048883717098807706228527252606271742317788656069422786873337556802923565319227487033572034115855569214310054083831016652647152220562735314097345220893528166921346191008188867372754701728214751808768171590788252882864879392403279923024676680989142042315625714932144133337703397670571498756588044880162263108241410850915562092860837651712083981693124887242549806091376471817961244682895387689951049370685645813296056365299413183787471478156451501873630151279736371741351575019363203591299568182868089865657215566444263130000950022729436051614750752387954997166843147136356924933876212558492119063896980625956086852146036286564418824575683177633007842037499181189751689267862757444512187349965707703998734099842802559886847170359654627024388721357447702723970683161621660886126654845637701310546002151184202036629656949417075485623315551635347272094277021432117678186534659162118482597025036322461519133263840175113267311250726053170600812618310755639269187172035832823575637034886233897675515300513489441943867484561236353272473684805611525344577653073823577247639205691859525054986398967189353185482113579495263757361970267329355548749305653773284816495280124975998135928574713308889698040170796381065899454502332934091231177359015655476578769914130117221778472458395926315123221535483431572141499939313171311796892147893811961914465794952110942529115422558708935639411458962091003844411746595078040256501110781258159361732668575214044050544709570872326925823385979304147184443961988066230160117381735095949897999977743181551947370105622281091469573349573563076093900037132814891696734849926523967146554221340510577444631909091562486676174426804892284588797079697535195584403215350081598855466903634837932491812962924218428670878249506231904883799798723937465578736566823832670909934669507324338920591018123482679896431219476983974606739596435562466801482070239149561443807736873212294658117246940867685026422041790505434117332186027423597997900584761380608424000241262999133008447963273900861382405895253499517237252745616436735818584620170683485263472374173376283399809299584318193865606397902671337813697228427709750974080249668903516614232386473019303236504103223448163538385574229300947824275582807100636719796211811186405127970811266487959975436758259425392700944847896026076143420946697832558160410595725388206767564589470921605008918865871210563544575063996073464472329972803778815635488272505322029396297021125969361171861891431408654101846543652950340563252133910673022123406759599464532579601555562918554037414391643376605533812649235709436252985085056700338988386402689553624285863313762609440765239173537331647985293245468437661500056739878858835221654870458424380939150669139524025765063065238106553416036930894165026476103945166470817100666018456387179659721074972049670118682559401609008291662495656300816691614585265616673116398903310769591973828111594403155545002639254757094125527082435861047913563620071212518322617908730931254437468592175581518550960924383208116769683250216238973656699708445510867236206050542552869029680727102864348592881833154768257830399951886641697731930882678842771809341604992713290997555789656238010869943850995845778711059955780588452563989882139511783677620012294727118367079942961758752766438100821262082457725864913966534325686905846795161032829378964465620766401848371123641620943381085812920592293036890024240582452683657763696940667106157400642296004397550124677416451538793010281772814978549124987384380465391474082695790753335999389938826406086454293753557545064581571150316953844242284281920151173213513597986793175979188856331932443872589751863583140814505168317627875149865041149390899776734399400829952444647242842896284769570422845731410491876516892324638338176637619868489848160945312223568611423552350987185823707899334560316368103500696665096217033553841456267392868170123298145935551087849019077844070483389453723637408886141037644429181053888477520572659241115597954152146082800490394279606302914969805632601772162083328995927991411122522986698843527561447519172619888508431645122549582111384588380714745354936144104687954255775120591963714085518385553197195060610114626448105474767839612758483153426764835098161898552669630347691726276868771638263055651436428272887944060078469469925138554026304936458685438995395771374306426679838637576275221928495796112015583157630772838006544827746044271544736996187557639953159394534543457065775208401862083160912957604384367714587753155538192533464725200267313511701266947733539111002144127485085988966252716569035742939878429382789098735754931351026890429136992376190818452426936458557985778313975486121427325038095594290418661427353020073724001148848043567515995883876959998489670991512109943442416531247023839127439523346190610344732355401932536397210595340952259215448007418119112394527482011462790499899731760492338046061046036089514100864991524396600174724342162697158201586129303347260605416264168993021420806259824258579375114089397897801324919373908448889603741662854663558817677046186885779343175060056091848874486174529203867666630509706559468534949652274542316306282697292377652692370583994480674813362704683605649256816211479383662316471304138852853771924033619911157474865397152278145995532925339147890791527909811622730856960695908291051804854277083760600746608005454772439680608601655862827855913026434764510640947758729547565498659396876221815191524654847527007061302910681305418847921430781848776667952507638476558771481027958548861390182379190390442497359913186128093886514208896774995919814012100652929325928386418774151557727913894996790962508561990509432648851202693963962397732882072252975735671963593971492560675323559273158600473407852069759679147140527793355672657423439274337860394116217647461144525461294117606607508252546551109428605124769367664043097263062556934836978502392045937111030633726993275228844194848517622273000654114135483066548900489314830198566935176602001685634060932277448520492848248755172934969684956407720693043937456685606233330205319376346135181031165223739020381517635998343354344320136648336495167518443141528878044817049576253418820346081598690155990353064566606642238057332991179571108652804788496135811555546473029969627386936182030366247147692255590940398894657686437868439523031512336188644516452813118321486525096335477096100310691094042204699187081964864709383985979363729908573861810073300102871459241686020077442568556912038515553713831423309777320989133515136780743598482261713010407435167386225839245596698903454583844412466726864123725982969955384613658893049845909223085286137675552302089352507642681763146968941244452780883848957405500793060046499073707864080412051219264731467283419454529548382766545583523651232520437066139090038132805696650654164366684107878416199085793553786792461350071360867891224861821715198016649364985937646975827419385071068976213378750735010055432974018120416801653081092543385306081990509849407154657817106067731627571666773618876414620759728718142936592456111575157547403703251177197801655359613617813977730371787838091313552708435028447250323077743933039586796635829404657139646074735259066997738193306793339098072122684594757939852998879229504311327069873944521345444723394470031429562500398385715600942172744280996828860837939445830639995620332494779173238245369364286201832486800028760657900364041179705365327060511687818032878153308433748647640215822366371692077704444636747868698772869708111953994800979895374534112168555444391939572109619785940874451796530729309664431633249395468521309385262068722574140851798307335832517264524198057918958821967856892042033419947968031738347188817698614617997158302644101705235781761562782193483806847108264346142481508264970656779274646513925124659357006377858993422623430688088798638611421230612601237863116455751702736960450986024936802451790344818776315059442377365259033255247720146908512241471555993199504329052884382946176864403769844575373703069529029486839190773940041161532940629126799373588368927647378664497889171138833327724843009741011016975147147549588450202203979120193378429945476310549624585740687175699248275438664312076933351595175812769915363340456431309962695676642883939124161059163382755943940399649694573493171689512589815439673239180386020046621175674678732275424724139522957067891343365774843948959938040333273064680524865448075844611857624595831807506979685260673384247463815130029844467178076718909815225695270967678904747928059656725982010177768790738839535543134619965405578696372552809057696567617911534270397613100517283566889040972262849877408438938821249188487402100408870926714794559789327683936622616406529993504008042539130870417110375310146915276891423425354734977094980561577869004379461990784759160314484386060555861199320948767425391614772362444702491442453484247621525277000648088877464729319220789697807703794718518831096050474035545654118688809941678091357008022401775132570024197037207645764968218451824911799277821565951280844839235431315144489043802094357978348165381753338094388012988596937949265438148592201281956295761737911974978588675367458910138356468850247149469723673139619548306780346079528015971518464329429497411572657733517150456836979085225891965751041939880442626837806712338331326666313673655787062941601453859695892971401623070371114638546385845991102776458015983029528784457086182342604368896825334565899424864648245721253598339607860610656526828290245168319807186412609045191492589085975772673308104693357246426602260992505738915578049242534398784377879557926695239395207409710633890385061864710256147239537823695945496536223308689756400488002780984107314006515231703121780111441624591674389705114556391826727801621016035264433458237782227640168300976323991230214711051395860145319542131456533424179019339392684988337579509368504270689453085142931880473905954859895571181933934183645049938140458547494450769374528206371364894135054856992540639461855547283826764097499800458982952665507771520483019217753291170274173783529244568437343898128772448623511645463655419236442179975592469664450619942690521067481755884889937338157650476241597052696918554704642462984687705664635632785920263648188915923457584049495648859634202606624467546685483029502630906100794959358792146468586898903192611253831070377049487383573329510658286697480465152940834251042983547508599854381661735301716429797636844166485371398513617528915751976775086872442449464749559805842847156666739445674383155489106792961823546863219468697179249004579626741148331463389273621411693672487946289721065351016941488897789229185700030292234943236808191374224675191434899518654455656672107597675141610575018981491445551008599980877808528592093854460119125113775061380403384085967568766300269281160115757025150856491161876119301754760142662450396654756478068740968942135330026917071503060848998422455135613177272610854443130330177794629572234663697051922926021047282609537992929174643609518553641169544479471389387460187548601834192706412050896396713417622564272706463723976260673156411383052148923392947241299998631798714370514312295846768118394783020568348785634416612534897308562692606717268120509653288046630862080545677128050132674724899245004937688114099499766641198634561888170667134793506441316320375870985600600625057791590848319925557883328234304334173939072284141761979740558930194017460100106003602281968097570147449255450041554932919648824171002049958908528725003950171671235752028226549893521717438396532462747486478490852288524567619680136422051918328744093043486282076598098151062815042206272617087355536315081143871817861655242541264455936445266326058936009037089796295721580898801802565499313010743634790332980373985424797141088343276676417244932623734840173939473183877078058824409765651210683093538020170466990302486742722686126290559486872662983372212157739889686414565207907890036576093523574720302690676017513497696607933296509507830106916529481754240408618227624862970407410067070241762012414289274194379284258423848534664183118431204012470799674179505201354308035589673732311737500840096058030183567017058382115372676431394846227497207907476628227943794196214945402886825437818183589795065557380957633113077387594066044159589970585823866346720852879856906726464495116589863149440286724989157829900104615640176768242214013583414154684537609622588221828847558525820556313185509804280192162200975619067872710687773629213525107684723223383060569332288514579142692299158318192104629570028099576989999477985757115518937629716829119709086296632894949419216509443152612032213785824929266687189710145850739168936670889437700477945732153413637142282509397950406676245280081758570746520690626499712239125459241500028130037517279018745435894052381793575035389475232814170347667929824176032130193103015637024295262364251412831932733066127730582648983700247426496229088112915404428892984989975194929267885148080135380572822413297857887522748792271918038245309628551679877118225675080741678208107199764273866736264901804621948900089566737462576856651312807337962064408677608109439349296273458255270415043550934259544910037798667799800977387354625035681040248455230574550849776285293596795839017844906752607506134114297465475312277275648297516892426490666540185352273917470231069226690070285910913866609165681312025779845889027416406033569291353033931004095727444011602262317573573707201516264752594969782112074277365134834699283884104912864721133186738683229920960806207450246181085882058459669349866177125124691374105963689119137421105624119532663056072334232922949680925760992811224548771013403745426713106659396039975504167242947208271479194290140792399326428866293910180413074333086748370060780037293559422260285304928875481110478914116795829339942289193853931154266069329481449023128612070183857344829851364506312047311569129237435335235823503474404553644407476124858081991160094807459848991984194511770812757645089789932545565075147821328330418766067256002444893355799363305908052709324241690006243708071248044813061441341576984224553426510578627109511567652121933522447718135234716934167832955636976864510327319481980206259997561902681755647150826714429901866629615944228902151684609057241730100711642748586619660315496108504572065261377328674837965347029053109101048292573683793227699893634698630053925424551793926522179562297258613900079953089278108223976584012138817224188882926545320509116928637741423152521993315363039761228230289170132160426535258597105260039818278203411453940652590632407874556535933478873687391160387948598476787955753323967041734621766179296829322755955550354957199302456431112658746739813870833217934433387009339485498753344124517430399561484859640148660936170448842583437696646452649651084388703624248241918717587210287251837495154188011186827304273742946568226167697239101449170171593915983214579032997466431880836567510999107051597392736053946095796723890939881249324312075359034749079357500946904276157684981068577372169888304944388474548764901438211034070212960304963120807148009643659648101191662912754737255657352099237129789069404891840278895488106604823309452324061448687040532873851723255038393075900236070260795732304431495550598312620035380051235386975482947934811467995577941870595305570233549709076611734022965419287261787855348511681849733642251804151489678810414288500499384319243907346312729393576538597631862467395221225782764229554463301261115659135314031034057037255968638618861778009462060882298497246874173773619041049984798895491681414062390206588390694338566139912016148913186916615881251280450319607030644233424611712138890950924435271602298627955436682155229956432658539098036330984687937898090878528564862664783691842818187151775704174839046632156356318976800473853751219118696617465704433358290131934628532655331107143593909388741937320784699741292303680424149207485319624474195828351320938547048423206027635053024016508161820017569224463113863192006363501822983697410145223156911575589235442741130865800857015953335860645513236354980275479357831143436702072659209897217751211063790891001646929007142641794710592191407068073316030152182698596736726246923230623404788595950953362535228310988681765895696914982715421405995752458972974341649749401960089401379668266711705636491651612188687047104055973744472730885010554710161510075226219046939720686541639120317436292443181477178841675741108819497305421423235017492564842161048269405921788341124821301014650928209457007842557320155604703351668957404445946732054979818878538180360623632556199645040759789354861041235911445558872721243034273952805084733871848664309787539979796504562505594711348220059760371911889723972620423949215336040655525225524911113552231049769728531963857170957572216943111480606198394751355855369748135918413589143861433386043105749665038642923409656868102485986918209981379039668132092043232825030690746535403574079681895354958152718695497890163569699951031930211936921100179725647918169032208802390407622915759492306070244224821466981547301396307328899647487763303434744817298738656935529782983882291481589249981669489177963402025772576277154146303842692089215502231341671340839254294878551893417122127497609637701674831842141616514932376859719343115701502945435558022027578355658681108122195152094822014585881428832738248212582121216682825062342665162767559150468066420745676170499147050723372108323413774992055769231714737168119326957073575313804811607838789964305407311805833869267096575565862201719728124748256878003755437705090927792170853666062557806475168876110139852044728154981986029039271502959731149761722764971659144951897283891152726363597160173491604820195004361901139442973496602907050860545667482719413744529286847268871854493831909337139402047560802564106092077234972743364802714767397693499987179625705821610540190231035195816237729644474094805055916292349370959800550123777101094337799068550205328271915624223888949733235517918349284963854286839241813468332591144785858464109013424745971739026147104014210134822730775264835563200286890019573733665470554610665691372872014245279533082283735210876963429347792373819018100900705423627723140446080252081201375714553610680251666727591921015371185695287551317889197608424287451230287051300899952227448195430776186034079275737585754479645849294618790340521677441253296126705645927431303062201117634603086445164568377054032245672716828209362349810556221973722062506328189060195586701484880149274672028316890754912051597535248817662651135498355948637887336257127522598688244409018581153077867827033811642713625407969777952287067620850647213085057158102340618867219198919030959719579384645502324903651620499803474282722540593480266648573149814593454872767456618553208144545876337376744574565505717500411245036586373584509497132160731998523679027898730378617344544188914977537549114422724107734027547648613887432451345585735759464927788497432804141821222542926231212179020957787403873988451331219264597241844736861292674850703009047429054412533194639412484054192671276737264980807297215607925392349677867882482519595956858260974382791424782864411566250337048299798486340806209059033631119829097793942612284099120308992068817089220558554232188695207490039757154362872201500689796292596838559465378838450642733083286914659663773555175558796426970772836179627814879711730691605868714505048061571600622708185771297721801167614725818144914425827674236881643746334882573334308129417058124915739695465480191105865336642000223766906637580399366462541435096996536655728564982799856162919480941929511857052246954660220962765647595104257861298282888797829826724949610704970300436496906739453089305858420830769973398920380891352523767732324970933385421694851171295334068973745362815117209719471009221690904525530549682066733279719212360213926533691133518668870830401317893133946813639034213897229320935179601823819485839463782528645528807109294586339662551028761705897172440762059931204701050373878873703713447565710697944533749183897441227343469843780627124080365950348789781988658567537537356725620760659811395076503595061128290395471723887579930385555871900925405478264273377991103859491296735625206146346745657632291323662993733985460583763219911489621603725446413186773990096694675075993254765956751018143211260660328016746759338185093548241923767848075346203089274058401720805586433309922777020062942331635017254956902675593927981717793013431156611777829095400714672370986447847583097834583958521851872817145102355519612816472723283148667481103810749365205124185104435392261165537711819779121537146656036287242067664713884806699198447552428164818452493832373880808417771087395660601671578239604274954756617284769256222531526006461025517187107364375991047451045514293525329477961287614874049145445116105404733791259759313659464823343352843569987119226938854372828980055357143156354156948254226277708154176596117847738180683124217701483668723934263401194288728359884454299549126087397740793402624631141969182487193143400234003597178130302535856505124630063947942960348984175179481177901162695047731479720640712245803430051484423238306104938391439739017194486105742477011069062942858909088565728039633303605879733704771907353654028306510605729973796673852855949440428616591859989239168615514101388209700459300547110826715190220279514471882707333237234611681022372472067116901508502090919926080764676174873253144682727646879440838448583441122764840819431730637088886934639359025576098180094639341577901115412519079010347771797753948716848827641785694401075660009172179783231944122922239940194807284418609035833413688058989954083767066369510615820612857694161635094023457655653851330687561072166635583271689985611212797794403802524363934493667468902986170028387195729663223213924677905970826321504965518760544478813543943690865230527154094120678209745509842715379976357527969506883745627638387481235473572571464607987101998413152984906186021778969144516429157415022276187676226537730537298800588484504772292391262587536181107440409799909603829652733669503771197912697216044593606953970675797387741508138932120490011032108239155216441680661206274184467018439034622962554919808380304609484129538703622252202613295287963637369383082205025674147201491534790761160153454526992791692403960418953565549284357290733049191862148852572023739911114233170072475764777722749155834004802954270692717446221254666848732206581520157089141332673304835136330599538209847739627675663235852250251941996627167341986796685614141755478604210287201864451206190374498203465485506400834065906693428511931610633094753757986969161361474934702061283379516754372378180922479445475985639694922395953286325363564277982070083317636560268997115258523130765209515870160565108406782895174242203069705042637670005316938110801382366221982833619401628626493431403334731309766370453402248963581384088036495900185472268115968553930826511394700554144381968379169568097341239789364047524380452927836133102530146801547242735338896070933910113086381256448947545442173883560160094997592524841503509034569852145011037817695877250220546323358249581945816323767979162969269973711019169991291625894908968132072001493275217603423712734862442208132518753630695664119764582513192711617643859632156429292165789024893097665035354833996718759802788418811785975269052396694655835672354721226635154642027937183253241035741310751221829969896180198442765975001855216910156060648533021531884930668441288312168086401833161851645423586666278140086985234277191583266416778653327466370033913871419851612064412766531034032294316565874106932119553868768952602606459810956813997525137896826838798972689109668580930827342804349713846021833788410190585729241752984212186777818442685639585228459390323896987392077770021757208898476249412744656277982295688262033865768998625503697371563211069063614265382271381341928573526895163359948744536625726300384467181578901569934629666863914858175939943354572041247046547016939865702067795955612235124018878537061088053781541298615618270153640800198535448930752140651878020923493709340708513341067834588955217611338381017080055595554097006641150106160719512849863648325784135771920724480060334988565857591081703263264794835927750551660114116921479977397917782907570651965829362851768557386588524286806692449382924077250893109062354680318225056866521569995121086626202468021237619672382682045279997046746345294678565830257768787821191582707997681194949614983358166624102186176724535971875580987943133642825262676469431688090864648494609115120607462485213870255326010599426494089682248639944813521065516799039511069393238822543801004407583972004325230056385866538426888981247824160925966241359052746039057148867543830446624882248122293843243965784663189492708031449593408236048463962615376925236959162026424070655409666251328312810754612782595468935947186211572887226366198776210471968613375981572590417633048345402740352849144434211976607110125323178017728151214575924006770318338778448587474448285369162870786298033029973131100944742923542972752297458429533127108317866161580074104404773943692285037475953330797038360439442033724362121303145394072878484875581014659189118581810312987116620931843116877350365732439502616432421351157791861044768294103570070420939189535311368732869991407405593303562700992204773019333882427500358216450252331481182482197602242234406877346271375546980393865355692010407248823638160953450051697193689078143361277077374722264864370827783039720776807124078060407277900694013972033095033320648904211113700757602069407982664031292725944576442080707152684788024042139028335870150723011157056672265972835689246607377609353584691196920054250673711552195718623645414138230076507946682768113047574018664049546479836443630936429896205780625781871654983328250752990900898290046064619988988129655886625004794115491218704411935046828696828468383769972506523849185188809788864521003139067942650673087470441868685469698403860989993622224167701647873088912453001985247063730436689009991737071437293932751211753666388853654852768593877339679899290516565378985694236497299663716468582449572268563835677831767038299229269057152959310844892968488674764136258612930475327759701020664768901903709174717214870545705532260773164880108789211801157810771224588455292794022789392164863931174662473476078399526994167115589179938521465254135089723852648750895694055586469321293040335774446842699109192129363455985938082396113646856097090876214159350960593791461609554952576701419326102738323967827617982716669799302379169113172865958069618554442367749154967351021688900416476510283280316644636424056576807767726102691214365267305452654012238976263064864588564018704319176146332357053066743156194653457418105647320843710127675678072877129094228051929091728763830364622259239498073687932984911928275091597460023482017165223645801405532169748189876757519890796235434895602268077758373286378348979538709216485622874771140998397962558941532138267260624534380631394308139196281999018362414500181096778295493016579913777737935542471492061238154806676887829554898406520459408973859546180793210504759492718861034137233870004074001809947377325462416567763083708268636058966518739868468421776597081522802125478515286838106521166797918405481443369959491580652160699441571199143653427790342505204686030808303670155750590004449867628289405397684236441271448098333888543696767520263240409303208217230036772637434473439045245708739632735131413140011339940417444284048385160045352311444569187377799071032723619282494994061706871419227103961095372260204203956781261926113670641398175019613200286816284769525596904253187716493414194848531780214400855219334990469308560074357472647965756572798851374872551013884309925238118648677810778640936081373265524242849384123334794441609220133258228343284885578591333534486300824578260846446061703097917394790061687121317486269004363266976747305536096958527645975990470515701360867148747179311454511167970250062520113583294984758718679561144574489611988865328178047587883316121229328974485781318013783324317100609081284962406758986225835976089344805084706165424636430475352644072654365652946429323054843464438830851546483958284319779004300869403762783730806641098430162465339318957624831553533170162945527812819038680299871877703211183764336054928525831325452809975992899044940085557748631213050646208923219647036005914016388326361193428871960142273443006899744449379987160133683296384286405658283848300152658766339018055710384798802795937175497028880693421406382278718632536246337151201137300684726469086553150865421960851366906974979581908846382516182419704566305364694314160009140201049385407752891149877532081666458383016724226551308922523402222293392138935893098790444097650551499538349482319384658456147751220950722098605307224587792361908108225147148693398853925201922794764583979750598657819620321313610593534633784943807340607244948880276285013066898727245448676172838990027250765783570251719476824618086776101455999970763469555505055624106947204976579718009709692313674237301863732067219288258716889980963166703643012301625168089660999898787221618645746878114176526396877937315937225487572067083796588441860964449036264079243043491001663429515338883299900501904766431049400726525147997121099430103295159918041897381442395038312455986261343340364224648821962680283920775193806596741233981747450227427495894168970209198513333538714119845303552892777646272040249240146378956915099121072226547689261386264618265564801080443888977004011294187785906184155811407381054110412068304835835241370411258401223483544798696673760869165322757527249329888365950664948315463570731605565918549979833049502136116943527637774851208641124646850347316782288447101782852672625432671452091021802231828174884113222355705056727108732070568524365138187266569878488391613670166766058148970688975103957065478855118830896224386988388649369969249144858045341850716985767660439858662693790184052265566692534289305724735472383027327304376399204924550143129654336175991274843183335660892226141869082754661633872318592571064060160518181942279200273951461173351294405175383611509776038498194367632575268411802583219979437396832662769868618987988645253575737026863729956786906861260083708927391880154199191104324076035569326431241496501428848419506843166098931631619533572166801425109887949596780212486212678789905825773693850652271521853798256517219974446326858373037831148191452721053087617745941323387399372416086991995522888726983372598099289777215633138582330897090655607370816079045258952028034663420812445578430316254711817040932617513870883710091626136125514765995544183940705799936810139491869838857101347375511751039732333284468497197766497351718867190489797855347249438489209805022998657615597492308517115708517972433134216683954286504091765851281088735419165422573612200406703738925176911160271755716141274573494396059599787712642648151828047642125438083089228505718786366738167680621750047770586242148047457344148519393505766888782297592484510868000095071947104710109885413752964243035388461523287020340697701166362087967326354574752795543046411954915301673448568245422195272973726678644663266691429175722205049840952513421584961484932932504057523721238732988916624580073950660759794406751398599145077998729463810154611514101564818079169346418269103298093253682822960624394936350892505254018275724221823707584176431726486337871494102990999976779411054531653618939208684311267642945674776828403391798519057569013696328082020864912397497737340374282691100151151794195641622849762156835985432598832591373703725466827612837612732754486195502888321248806544927516361718016738393138740849949226122579569192829291045406248032687528863711284041032453998597092952623048552666244756049558916279911250933264229388236027266312160404873422528860784936637467207691131797183823771780403975616450033367868553105721161253918472042546087505708324910037391900720345694276147161404896650844791964529857374545377643419891219778641329874172929742452755561356745494476063946508287539307049968220337973963873608152469539067484681491614799279689420213910426301207309230977661768982136898982561882670680877292842820473883413156077201863141220366308111232774077848598409476675196113349221317477773043237208727963277508389725237443445718455331639600176893451381485627519372697622829567955901534440728613370887023776959588724233881183091923938198937562688990702115959293930584568952965291054739081117637940764385823720494644235442401018076296811765291760574325652523865275845617451082701896530599398399132538712963860924071536355878826817010544125059132675022198061143089815234878695416969749762915923660572658167551748761087399792693561535539300566075007302825830863272473449099534933365002426854049594221851910132811007135673003210145231964389161032167906816675301779725630244469509863241603815160693016324805290959787993947763149543877090196704668428802222794381720337220335477197081589268189849941417430672156773854417009850762994167238797182832288025025817228498269945343703557448513520418725855467394253281451506027165528563800129761750270839070407009342074966232020721596500598784408086925769978793030397471392129418492433076793612844813994057511311152360039225930887079028454484632899080021024765159533010938631489448671892479808214818470854407940014444639737983027433287476939515952320447945419089770707280326976008842464808174706185376694096578819440195824916239191870999885183959993563258324046746532411193871233538588808371818387458687432845927648586424489453228698303784958290784898411602305015497538825139039164717975311241522634430372059154935890154328953537388647214243356508533485857485027123581789419810952456829009435248042594924765959790544658253348647023170864054836422527642871297057002367335532469331909698988646087875504189552007979451470206071450904650535927318736178701391193020068498799961589711289972436583899649615682610264625795621381013239195617299168698112247929547342779318727042567195439963722693945888391015600902205877092512659051920881527394884719651100164618254251979377932727453969842171239903918282932913487668047748411086418964310732569723725555602424809307070917732092036007298797322354950757672414912402588889884520648511224789060051968026144922805658502842554263528955545174325361068767370585283638119436955021268420496252696809764946095577048974636435886847286880510614502619867226301002279041127505506269130387096830688900220764882870644847960451729790011724546276513319413161191124864511271681512758976326475369475049877296477268248737260356904563757643551852025747108916307601197036095559462899523192784744868382135607499259150067171036378538429336317095501761081884065391162075830796527482356753145571241493582453253725218143016969912912098289591204569751286192098110668784090470197166252096986827180659952077529206583674528393991926280966390330550502846014003440408249102503030090692665961118375934415648498664697444240365600581198122703246986720913046261365579167437851480892052297974745101204857047318662955521974061739768270009889518260648831708610079694135515118129861091095275855742713086272459989617785146755309869671924819426959029819894830744181004030056313646587217988865790784051587708317716607277846821768853135317573860589455664839943059049190312598262728888070910864196224010095207294211775824484846045078275331150089775854843317190803457075000434002876516338513889655041789930200436207885248200473864707920932351719033585122594570785325712639868858435379641029923289096978245464413260471373674248313156984323968263577287090530079854065356990328541592989298578802437214313308780074781724475388241277764002822509289753388408158749659829319451945243405420712645237914798883876453475474876599138682711746049273007889047352364507678203134227531338022459867227074315942577186596991754959326182082086916562566315416060045322661428859392822061986512292540047829482859873988323409004101376828488397061813574900543405077317613831150197309988642014115663734305521824374239043196568232467927278086248333741523209526906477215858433177180218830548063964141139510762920342881346382831258860085154032754881257249339155919755503280564514188870821113439021241038827763342526327125035353350728633826288694875749592636606948537152758716853135165847683636225114037180278770907840289816406349314359972974845714346183351151075111899570329597625498412387033201516374803764018773994462313384064822476259495240784949833889219275997594693388122338970723452230953620702442254294828404963270676673744002032754892918164301065424996731810666382796541278454618375711740921162278620382636517179005133402963873077837646111668659338367397534731248163105905433840167131733965142211154416371563541695800980792388447630299765416233465365465584504433541252115886705576185135183803824834861210168011926854185881292208077770165461331004747405966979254177964679440851821271368120895270618391719969843297986177842099934836489549045993344367002241295922397165088545284742009560728772599134760850493224881566914370404498002369623749752557275587760007615194363558498090517107263523827728215186460690224360596802402258743344644044562208203174767988534902211653316811230679335436289517094642268617934040279372250487816629953181402036250151998313010748154539756940203805320732795950238493175547546901019553926474762152793755924623516014772433750223131967420413917788677102834982099088441902282640801716534154766130079096071830869836409001437808950960077492372440380118120482958004798226886031831860564870299547621112437170023081767615253501557048750429668549472836979543319005334974709875288156812892327590986484942828373841377728565847199716268996641302875427249555185694741792233911726132633143990359897383839379828031522312439982937901256896228428043342975183336482096320518351007777753960487641727865807317648297849513343547412130032518820081863822195202140157930321501711473428757384313343196408127018885364267611824821255434896815687956552886341204777122810942625442557998938826410314946448350523413889302849972061116711049277200702253507909436312632384910767983685521387137013098503980607587914631756428029209769831785859929742074840051637122304809119358702623573943408480185590066200985170179411204489405629345231428609562587487955859097204835074536043875983226425123994045136863275506519137796551256816453238720615337033906466837038152519299610316429244696241943913293445535879212786699639285987903975792490501957750190215989091155193200659362008222127440603072743796405793092632144407840915009252643098323169933625511854041412504963199227822281460511476634594126186368960373042250637542673767022222520114040808069912357588659628142409118191904545977877621754548611926146120143758511614161471769013698304050878473239553116769245485083016306735345528300146104338155351749765893516008182602561397037645889384315727313911331200968858355586003011237698507670908653667399903831189763494801523685306816966228078500396303648587270742224247556767887747343802242692902928999533369960300378706230236759723847058805769125190729339108106149364210989566645601066466473413111475493858252985590708685027074021795224939703069251405503456066033775780039970107995549979524499394861879486033708298781463864504647609688183962960502524390361016394856056746700157807607823659591023680286447839538136728213163452024155419417160856942425737497976074496777621794053233761038947115833501852932664482545141033391647425863435698329716826061805369385945094170066966392429176397957330628905186614107918925774571555469575726276823997650164354250018680447315697220932682373760144320191524175175832621846222436348232309550450481260123291297778371900761652566773383098137765721240417771158744585722163215756571214758526901790342629874841393061786630083215663818739159425277523849637907199040337741246930808128353254458350006158719121114127621219258935592594201970648077225688244551856440554688253704428327529927718913508295613651963631964774493518495732929698206453874641082397608083797588388710757178150783378767025043489050526870760328428580582703936093114729417744792070151945619629170829020214043907920999540990602017462026689563343998660667668276911271001654098111730105555152547123576133085991764781921104293806177877800861130822598068223666311083551491169981964299393913929587843203566733792180566583639327596637296790188373362624455886523901750533581396359093806872376852565467074524514483742011749190664735025349445611939221367463807400590731444922797802913060703419177643037291097624566048183350886547175412424092530535733541271410979977069733272057014041110537446058741006851883301024744620655289099360313141169262892341802390436397342589324355726628945006202478084067104131454589555211460671212259298810294288008552440753549044400099069795606454644595387811823787351077427166652641987112740112885478022733892667365486940542422911145673801423315655124039532027260956103239657807927359255691118344676774957560808222035035498078865269171160156067861885264980963499071310023858939468330543998556434059379345993546237827625097227781585302504341209686151927485778101990640193909458842759423135714401066320095442232733915177931892601917175697616421016145534983254103144970632053072550083235965067848255747631034761283272854934318653583346258587520708729250708383801484353941893375646396188356208533374615962727336322727579078649762195252957964596975005522921971952128950846466536280171876273112501085094960430795742251804324001826528189571909762218782582809710018872088531287478486329267884214996745543339878588236064020661703326493817479023826205785431197950957500120966944158526279602153890582202674807323194938775703260422940331406045712826669074800370718406269611028225399686004044702282922715129096766437325312498712904966051399486523127821984825882591710272232746597001155027931745196024725377003847736274301508000478168965247340620971275407782953675734914280651457876984706887179203546368012481476571157282696717627064431076014445885286924680954314881293049818990960673948683552549467709652255216247514882312481359024741652593885190414460135790746820994810427915060089620790276855253212926780662911914355295625060667361422445662246048808737584523421825965303454419872884397931468043846044470094201808059867107617251415200917500495877399101059313467942730158524028178554695106362559298394382232039610912104060462773331788434700358527184064137687175358958060988139827527931857146635464171678730003918007260921405941710069688114911454740351997952703242130114755371063377189367018755700876658052620896933891258977984746127477180564036432006314629376279439860203729743352559271906368871386401288648974185299639570390775871545823440792861435576865082086272788146504855221754423053704993335344497273127467206958627160682094665376168817368136300793790095530449097443364432112161038359289415802792835394989913819970550374658736596814361576883112199984046321800580851252860153785691098129807586580271501914339058725804236604389049578341251220187621383097477677634987237976186197899729135884450997441581682090668754932980005624494701555931898935949458805354217695624947918151646504071912695746642567639941610048242120379693606704300278046147332317925011412294782904730167005936780558163500960836974643190502515387105762669824714540364901561832762585655870291426850800132962659949060913587147582649376474092827471623819922825100852381246312381905664947886881008734613901438602589259339845191978272904387966862940818051590518420496763740535053732080177489431290632777681688898686527957815102617515064017913192965415685344961252119879207988658138982922627506403845033911441825770329149457803237960744883591365342444961938286696791661336269550460593492963403809755617740617458057384793744033022719947212311053905908164059486514459899052493767014898443071634131911403445320308925825838754462994727855534665297900413214006890211740400200907483423872127116490408741306720785449348904264053265341943992387675048653925275506152797266434727665335482199299750797984799379966796684851774503019976738123439421700699778554667096860514526660794730399341355609197980787369269807621286597273388388813212365700194127407533654551339648916283232732658015684003531733404840052304241980332312194632507235844037654533064518833360979135035617572845476048907387282855532239294496718053218149605442241943690007430974206505690785501688632305901730124248307029691682851417893156744042428058542054035569941859898322234627406182054345412502188967152764884451644236699936318197514655732424029108751573358665055514631058868809209403438328490997925550948048840358463757095039046768130966679126292118302100515902787571930989957451727862459358059280385632556621379571632643701410178442116555003508055313281260079771291486243471041844272230122726106249301694077627716227982965321224658625201572913854481721839641797652811198586111741564804916885500713275755090578306153662380585456124171245397291872716313719791505016678217307146862171932508446878888585527375583802384647362870938646056615159059719877917482976114193013692733436775344316119210438637654951483808179427028756017850701887069019633865007351137257537659936581932238619432012856668962572171693836774722385021794863115189952175915491227839384475828916271298224028461627475878914796132787494511078489974281399478940482310087729277807607606441621876451757050094451584521627225036743024892279645107539136863180343481026488087299890506504200962395795206013333117962515930308905076075703080526642250526558210586597872830232824968078062720699025345869568757890155290977104615883914491083056491108746014102804182757662647824630293737485975915321906209679137254339078182131976023236882605996811008543720019473972609283109442729794052959755353153538583870382486544493564866666615575641934176323046408538813061464625924927862283068874462589177324515561685893325120958453114742275379975823789351531016197888662114770346297341011461288871257595186831388574189895838981673847605266889376370087172319891761120434575381381444568399272234473444233733627299965003732316845157467570473452798425640768332433717363457192938372809005074062030996276414468316867100045230780904101006232081665453320383726063608462809264524781567001289217270472703100590135438948054444581768658490346716793326068971870037891318529433569162328866274954646503519151511053252099464207755885952545292573031019542665909504943240638546329960204886142131620912568248859253054262293891570731811370521699999368528412166766779956949518444498723817053475096471948458417541936118946020344578335021513868862215839644969214851149026084906339337895183784349758739251117980978948957409873039814267758756995370408286697901186335093634117947577116576241302916380893034497361681937153848126566637762588272802173820078351839515202465525433210494214348896872727847261251356692056463721970486231598858256823313972994736571472226678290829793234833379838353906477763629201530341642889897881533560469116927325179356523512534525785924797064746608469284629058107909540248536835727519207062671911298061262776108320656091160084849556885643561457795900651062009558367562817391377169203444385399751131788947271112771191245973783680892037913517663981518116727075207242043416674595639936263499093285299860499867085047234990763414013892443692407579410579166484777203184152168566922053357445094260194226120757995075454219555588043746721657577291727838313670422893412327315775065762999060812946102634602232128039244340936541595998751864294109331133466122373056646479112823630822269951353492751207783231042617687746968634493125464258830898484995230870635033793451908334725151155613067302052291022918798974698764966148905713868012367885095440354507156499305861180652989220497711499986048698838677451939510775796369987982618096985297679627002750512411041939067705011378438886229577519007599832605886091383611287633817309165483875658496704337300127868839358551763601150274150048694847932771181499629994356227497351369663957545168740904121855331151898383840507142263110335673973879213644114976937327242470936799405878740806947159448447653898071224379735697841310706902673850516457805056200336294708672823541090772173392761119712994747349313317855960782578414389204949218648915176662697818077257739030583173400989389766596490225128792667971279223192188046405113909306283769693227889498335173291081345504058067443957913801421484251038678006401987120629447894713571978327871797795852120674922253787796820339216651851226836746391246465573616334040965810763578141386175930846144802802178154558033918444017553803825086774128217352974273217919055972253082402022196289851260245774821136941899468942217087944664695728464084456412128627706094613516564205438151691227471134328852137719195434693154684478096784395587119425411586404061622313735555864570075440331292680381220846776148613144331777845202567055328476073761800149775037666068227737099352796293616943190434544312075511113259482233931749698745753999779052360157178111998329421387141009901241485637706584056299864849279654106437941292441372290157782728508981573233451472777583149594915546674811187500367148316893577929699240420401961372377834845485901274591320192329109881869209490250787177538035223279647627656107402605767570264173089987423968160946676975992855013250342032488121478041035346727261429127496887360394607793531860881118602536894632660257654962512730205538471466260528437055034037596722819308845421277911661599821262590355796464420395695936243444699180702755717845670572141988256898173980369420804570722448670079795824127384094384175377153379827679977373172183806151159950512043422959791520750565267343759953189771513701846799813577433290814706388941266332093613760788862200232011175270134374491238094894475276916825644609071238298700018702350034400619701920390320445685388105771150935099754718747309586773850263783738976982689529839391033972643777225097672573643060541555601378223956764263315822977306756392948101789853398440275237400128988166765287600065301356255890056942239882857408066891728463029444158462190606872012900667125748883925733151331121319125543444323348703510134027220919936086968540022432418053857899021494896635457911876232521747458943316884319295959407751855360479730968333865633159408462337355294863511042158602897450078677321285347058339280641565494718036471524256186031559819880408212786128341526679927019612797119029548936240904561495215001947458696446339905672564011408454130562108546625430487743930525531408794898203269163067290997743942120577831745246554031943020333084630138476145439739316848667157297532688921966800944403501187149240329627506806767844994489517974454447576464871484396140922482205141718253385646528849985965538510935188877926636076957595410596070900205062318611595708319549718052582491389584444653046458347479232376666276836084603119199626302634161092687166568698929070016115695897072154223085071707408771660724884682886597899897108239427272913700818195442022710554663931290784522225495639271124169718395247851874515282066269337201466588716091040946875803809996872888509685113049333071891304587596831044956304253773059676431986809751491125805974697119273867421716071364530776847052548887878395647425754439255959243518616483167951028375197567979073000460427892709873786608803568076836248608534061094330265046086344032550118191296673030702913422635320819290952231427490531917910477622380478298548922393662651610675974987152180329693883492912117991895601728142910054918966415076194580066228758355688364469408145901775681777945136765241249507552905236387993640354946589492960215955040489233816774248913578258502270195206614793125490838808017983431410960573227029931098922167434038857667071180979139449671270999354334439630118129691146460626487880546471262339102904211887578255771574223474774922972400858692691970786969095495560772801987449096883259989704603001388005051436396657216053405220306902380305118530945655107339248155763734825252745001446482086363901156827499705635273895261746001666545869795692282336748266108910890302198983916982811564454194445836882505540681567901088979735690893565503882486482719342642950488911764705634974256200654748010958590200483122164844153260997156668404480574742781541522176566457954423994861761291661296150070142003760748937208026565342900091291899023520089097946259719496361738150474017875824581959191046639650770029683455487739712675871658455987532657668997271357091829789614276154402329647196445280016511417598044309784353610070439748902994561049191713462028565160044393364201561881454401651977913629574706883555100156260738986638517291073541986687744166019689057249855216963658319458662275484981594812408841576557961256606452306585775622810176353576685685167154807486709707236713651141246344609508524883225534616533892081601812735562583785223759983560276691953101336278858405530745944581333905695215071651475796620862575626813223264769003010614294244353055811145773349271907412766870610471847437089936969478360649754480735701003255216520751853099796949272381862952339717698354415011814408552444452220818447275324725015245231732308030592231109615804347869690799571172386800619427359087170846147019412341759705972021447722096233590753506742763092892782564875867942074031805800041379744446105924594129248979543473392923239451964213499824427008035077599169406380232794990594652984039342496666892437377974812682095342661061594246823766979738512287407318155308690788339660102272860776894596651378608547095636782287666746211621184678450050400775146713558449329284177970800621290871263104122962714477382186693245758214978534386753125922190615323311289252940397939050343367024794862237582890657371293243359632817631923485264593788367626714439806202440190268796184519236211508112643723111072896825553155118028024614361855501651190093321256057615375793320041359708003655284984958720672557945750550678964715207006938580551130449339717791163082996454048060870130094188285674862872767724909746204871562193804063818608366763763162832671648439704302150504859301280794051324837746448175304360849589152696305683029317839460074983842265564774101877038257466032914992748466377268558322595839574783183578480104546441462234840242079904332239044798238823010851671590342823225313827650865378001198040519694405910684897313241498627249075969178866864815022040443344118339378561693390154078033000285119172276019046943002195727459834572288609191782667721957937504110117537793762495725610607789197841626323000697483465625739366022086783474890479386000653132501494506620449326285542225484413698610327956905096807539386572348511417791852230915927664021645226585906453242502644466145493255349084968947785538315336864631360658395933068452200516569034716255263131161218271923954208353242502851736510158539745992972052610389742399735373347251703491149606318816324568739538591639114902965065704567357076793693866942271524959838775981482811260272380629758097130605388415735248779508405000904803790712458331359653815438220486619369545587987507763837969604035525845206895837575022251849486809000685212011377827694921807717613876049596571690667267808233452963478544327630171410009421166405952090228421357574829285632261731923912799149485743220729837608059269439208375353576909420247061722463305377415830781221224038577885462151768419303954678291306430118836050276307997650023363134145910462425111546680084521429859807941825874787523465304806924067713977074004845718103966744027003977566619970327168102776197051078366265330619119871469592434060137785988153795902533896261877465356882987984268778073722197561509748580178910469186662105328364717463411857233112832610260921681024563888194588235117143024602975313705845137786958457874238763450277010695926757410350483118028563689682280760996185355302531591568011157181366635008511746198265351382195072818420207876087731141915588670164402241007775853962918115422043363177324716693947047948458386973986569700623476284026678842618103224225740102030504964572111597691014335172228918871096362236628355984305949443470237487560481055990213379833741158908405136091860259350493418246508932472379779974044046141026464719349971004261992932984509476782105578399162469597528812435594405667264860710525951427036671585594309048609114298412426873175825359266301057147820777607181222823305391659627508174643045013334300780295452735264104189604504843381034869997035492577420067736165594679484119701338640392366438076851682618833142568586916125496092621500575948491590722546395415346992307307026419992928814990020158444893061383733118906533808760761672975966455703346024776897135240222318687959686694854041638179472485647902386620845931504280008932171038046340285976589272279309243727585408839397425334709444706233313983674798922931329433881411602658278852035687545283132636559343204910962977992999806806685658014377790986720856070117580354610460712549537545903203797731583630029054450766325411756884887141312692084380978578850105681648602151773325313538309419784839417200182416288752700531064050546647279334064936157747940035176878323908115067481854391635608928945391188748427364299168390497528312957974076711003159261457400829384180061421934510436648730362113315782524343440727410406088439706710984697172746719574803039556184274469003077182558951668311136712500187005028130412055306541654023072808200207952251438001486063768356070245178680783138402021724791531919909970507909524712666996500571973192996457283940608116255868152570334708639165731561511636327443730761378629674988204851934997472131033674759140517094607031387224454976334902726150283658137913085141380865774309552968416460508012930635072293196828844658709708221255442012893588224921483017257807904672550005615336653728851508905943867146688345679862324568318745797100266953155282000009852212666336140872678573110426979802876672120190180205909992262901414790683787817362097017635013428686852260614409956500277557310867273232820093336932392455029553664561104161774996672199584770878392438392115483342618214692954773190313635160482625992540521651560599306506987881575497970903316864418929003007080230452251626341774778040069916851716491269168794898514887045176741738895070772831253980887691968925363530852649601076075103233481122214866607480582126017687814712725606263111050830196904975949306568788839804865506318234196878458449280167699679777536757525301060383918711269002469464459876948183432752813896092363812954009995041204700453588323438310317621133061115548596586778616132206712214829379767801451248140620366447294672854006643103304644246680274492884769939235621123995757461955439435442216870781853530249651587294695258223135441622840393342566469247267556237553907402864218663878210442657779894580542336844558575302267615883541222451169215534044584876289031989649815697242984451707277678011763833720464226838300940673668231293545075942729369396735569287735361998808469930937149417066206301298496690221690654199806245826201350821123155567717367274793499293520774009636298403338416566473399256325698199345813279284088147946551405459261837164245280849906879828121637634450182319265670633453804971488599993248559863787791147747359204436734239475315041203316587165204583106808371105630116705961319339984008921795024986218546904585877565816311141329201552650725961939949050149771484241876906780052214845926654203904035249937817156444387824264755347475744611261615535290264788776756070848413147725365036898246440623132691133962141210235709305227997450804558178379113234554285107279784145681792212602898071079409263197933518576357357977593338732163884380560632065922054474613143258325343453250656229752632380752328077241388178759315511407191960001360873233524384157230796822136468134384357785935822467507175146956787055847016520460597178908500761153410343681244005833436362677291738077112728123772732010431165706536921841194180578259910043059307083778752146006709491634113763733257633833225274457596510702519256506082128438037540645033221425542597962985041670360561522234403523136234758636753268478185145161467291800847353703891369244298388596672845725933454119419727551271331855564083720172134143438707032803180594969807636239875544261262690727193721638070609585850199590250940260644628056417496165591390131549934372101807212687639838362294900403342541864293857403375923710554718960455576370013995047216867525803405934336717564596314320690395485797099315463977908715281238477393943183611236354828444089001474921531267240712425880366186763187560033652098319026509623011339385978525986104602476758476225464167128275442241066853659612429485335461520472723701175846908047066302170619941613721948374362098295953825827528915107425225110933960108017350584338947544580449774317382733670894639445974805195161498221893390901800424578118582271850388184062437583091750424457716916914594140835452697244494510962215127918130806717882037550639754607460574449634349088067527294342994245503342348611417757829140357396227908605966420916977008518494351316136969828045950924531814534923969384531549472110743437879346887842485650880306703479202048142117826323893163007914058387601559592115956133805201894114847239832697964512375355839923075755018110743337693877283439320370969359965605779767871781317287551261530536450012137287836775520523123235321309551437296417812933592495080562641390103691510281051138146875161062759691022801777731272003906711698741885374579471024563864211983336430756189227050718536595830023568701060915127039281485813361849730785258527211943112768826562133290851172602963101176275053049424135458999217384246182497865572777329155063108129340543648350307339399642503535307827260854687519813085540221725671712866023108035516914025282295715943456168397420368582842833527824195220163906885045940853120735861080449733493298475937001698586954730708477780473576283477296884820425044347606610915984865292145698214196962160449037601369620800897171954947494323752196803768412826481743556699873324703568795378071961188136773629516728428562699683264606317110687705195236884011164259804958071846545532979016534926143483806655912176716531157885865808082442028293935742902020778064240355341574182746760051493697128884458042128391113154994532715743501455184646366671255466345726146665203994974990556903500467607518673570355765667112042922477761038339082205255465318922636747309176892868531989578792406899043695346903105609675739711603498437729243008242372636292090439794289996595998434667765238241372597817042260779578137433698920549045824264761607769105875288115101329881042040355458713179935748484561492403911796289759479391649044612546487393320963096924756708369861258380769946828590617242698894399892100001723730279900487759010524159269392788424358505270531834496455527011233546820968098433673179241928547266415582438522601884924357987169787765988940216986553660771511604184226454369226724622829951454581869466187376844944886801426603310793193275613389697348831099405825670125836639654036992345964449458854499190811138689179901567357378919390357437804431708550958073010368258115234935641080704913099116481372116627635601941307737215753507805774201197518190487505687318407471537214688898779445546047289847804807804837885247549006913190581261582190990349413866389680976086958036426743273461110001091778736818127607745428389748487343681041035820956620676516077689708821111485134952491647436864042797025678552318852429411491247903240935278071197317378673478870961674882841683958545296128589481611101481921378010545114629826046367170568976094638699638884321230670257048723961349974625056324762148054115174541017193676939906253152899710728457459099898889294369816486832262288829727333733185154095695375662125413916941793839238571637613484464083001053176171857875654315194254158393129358409267239302082321501851782991935575224874383220616876149394724091254631189563015668000936780194903189806831006165958102831791575491836186799154767513539600526620915354239111473732942836731544654524011008359407773032651635326828876646533525199962105547025248259748254992187849270826354938042856789078424395883439730021650162274679125004562065012269020726235519411576307018256344107095716487934992038076226496701189865357211031708103955927849216221249122276335189875348684248643015548932144445897923503595577168311077834352903803411441258130441820078793601216581034163155654401206084888308228024997291466539045491290032341057520453646830523173967039871831229688486591025311551822826019842453023783614647747089840135286650317861460214313329933580909870801996787316081594444637771001962447703169193549154770246039842277601467479504898920417632805401743384765440908888576345455715037584237550517053166029490160743356163944863313715097529898135238950824189420118724925952901163155859029982568235240634709155298046863537816914461979611554387832373790734572042198225728430652920683747671384333740816981123431950175411187613703247985927197691480659267768728066789795058658390089015316248643941180058587288308375278949045060590282662353026338594326993444684728029854076027573892087418341876654955798117426485031946972780888102143776540278309311882359889644696117290910202190025632765313557197040509777117454162701780291334187355153026514757489599410259581219208760175354363151121921398309041076921186897703949643271176697494301733802219890203471028555877379097424583778311551128098765298505916908463269840123675345108012444948849422529576607360091990824007043613395189051166171346790805812210059269858399221187352471145916214846651831414053631443472691505045585400236460204720705423944726937495354363759451861009658302446844394725094881639623110938798844298495722083488017587260349508367540297917633353382429729285619240099228990465672164060944637130024983893376393040539542566826716151811766871630964567251163665884235683223601206204542889108343007575075937732518726729217764402834354994310843417053888836765679102651650062902147787801670567732682308475014401126780528825918828592823410799393679844574813049291557364849048979680259290379349429957254907803103744452475363266641075399003904320258623398955636021190141323857862105891507772037346276465798308238821802059427316248418204009485271989618009250023533600847727408885831927239497513496344457563952540689315299527683216689995100600420372699035147815814352918993431876439274455191517047574426376681542625442104544885748789047495416437200022922436458199944962651982011091992221130482411898835751676646114077919195556598453484839559347129528511329402366577609295635670379007393905662164860039033674014703272807343286149827006012182086921598509597155392294069586965071328331338934839613833384733030764549182526802084622548012848476100962540042423682189352879760359562279702709419792024233301701393655231381082373740833237769706326406271587463485272250088688325091223176470469276527378238769880874559029611293585234626065659776569343941402174382130923879248769817904373149789576230019835665445267878506727588171619468777827532846576226994747652381830218361478105772896748446051818169992715086936632514451911874919104296557817109134290287637782546322753893440001692585265261574073294605539761368749126443831741360703157482569412952957116072848948658212072109369404810919069384966670462874216131633831397273071627525394520232717989813758408806768818171892726707052731704715000000706955215341339851645863288993094730659611640490854457122522955252207007704195390295817673299184521160668712547080973003634492856525858186782915222078070535117196453641461024686573479055221313782713743063437401939145404428267827779873692319618753276024246486588101282890290708870476627765192642676828156445670515874327310366493350630484657291946120345815292877110741549579351201668396957619639992506491382757687057560906455513549573608172292247441287132706607428406836394725238283201444395780605052759627302379122023666612393984687164134259822253199165603221238316114321340315715519181461251629163273870330743071870351655726297694220317118883979558473882373388766870189366504377897509319437739949703027405799385035168486814080917206967422872727616502097514755030562017732008951138310464641944855375905015907296952603495188824582553859757170780866424403091019700613936041805446745579560468504431610870520201968538074370810614648981153666580465605395720113897753760356075997346864513242947891267376498775138020786316453679799515095952571381854352592637577452059069053162684350310785276110456367464774357319879378531951934097708998007450038783591960238407262860011747233528830639326151444120718472168114817344742370665560284767780029843291911294805017749770523604026149058852631766103830817361379543755179905275686550194461707684272806195978908222323799282376833564888414132065230315270860679662791501548635294617416503694465937720909804300260198631877900769847288967709814684447158086537649921916398136086234711390056171976001558294232156515763589989045913733631562499103519631147824309161226953824651183884266299079510774163427592046130114895045329249541459824747694422031292799355298854968466864670648300351601822025809867285101963340693867932293882184587485327826643475749601120488706480357225039254573681780285960894858052512773518790487195197174894588328746138804222083812651290896009631916154350375810197381261771897738032473311724285051102934938607260662592565067072248700387494004048387089590377778667848733493194651075466342730789720477292121356587136025879260691665961903207332660958521778118221121538553424215216478191834451102858304010281365378631565391271332769033434149129204128599685286920507905492672465032569825085359668771853723625420628182100816515101701848973739378830812066117671196131769817216522456095590028606295343284949447585774205445929187022226161479399129880692499078040418705439668543008951716523444946058603270526372064430528320669819304747557072287654395997016946340781937747957048584633852485151817940782024031251348753064090134009762474644118472817403145302667400624501659436541990873873535260679038725481049249872813024043035894191507034937145116469037252957714662881897230403123125585124209546161924590846820662014149534507511745023284772536780441978996800851697871184508164974080108897989161276137467812457364624519602784633535650965537784323458823349978098909347409072966803705248360925955072358513340640748603612173099569753494938432956855265693566786963204823487532500596480543203670807872939153897821462690959040229023825140312410078262880363582904836756220604764358732231548116101812247338616504596942959141960294590125716748359680538946554122310888077094494045896167533142443276819067626592847626195447505166534923629675496293644307173181304947866992061364215079863769234070542202595206638923375467129993251142244135998223449813268719114598956450350950420854183685453211701348620816522514526966153133091523778080180040049569289689830296933513021402071639835054593819847410657080169777055981262382196094680491909651770741095071845355564207902381788489200230536363136871317715676589636063191449121941264025641371789545838267586138508373782530449221910713254950934938366478253743523402961785725417336844060863964006641907799378436208216534694091101965270896881045423981743008107377927912881021644495315937187035481139366306036400905635286064999923340129898678703049474285290262422166650803978777277119989862770770114263005331229395211156748946852620335792387543011870852237790223687709337199896572548721438861293151619785229330407597062932774687471019732632119732731768538272520977438863327124822500046232024018302787439668687457725562301680753905788968178896017663852044302364177534246595122707319292082062227223159730602320280506917235754548408855122149578662086210953269016577532231018094289359762088433979607594902452293114380672473505723708054426101445677351567176384717503785262579703641491765289707248608915637238838894552086746777726393141992085527755708195330563178216640622456029723569681932229394592216549873229242871049222530826222857739744744078524166314328825916765042403704055832590093554488413882180809166065610997624520843555091267354488077744654893213761134048531452485219254854022970916995238351743667074325973446097081532939907564551908069496029209078895453792922615594722522676284286618343644546941512984840979856434137292674620054169802413117283111700733246367254416862294585955136013462358475348921195749480711841266209124899196776385738757689060575372230230874503326229926359423566261939078525731501849768432900361259504436872313252914018035306085937307459152478814129861190521018622755164394974176109145180207435595515309381111103893088366278715774457955656489689638184565525949983315263029529355020223943449397778553840459252084692262255121354557851778412130083539522983532253912387421636171349454729216570995330739122414252832148853398083770649240111324436846263720216619780772253826617953841967371140911081107217281285848262729222052282971031903385882548044271308013539069838713374185158506216322455815183361508480998605320270160032572651281672062502886844166675244320678756744160289076523261469657062007246810886165175556028970203396877823017963738505808921316353615148691268546552611261466466296882307685695572793875538281568256894609574663896679348812405979966180704299893084319807374400792455743004728705029305163427078224099651234912484053724990950151886971027629507496077328813128524162900176297040765726998151077717506931028154670926254719377969863148715383714903187505434734953439741965068729118162778582394086664117884674464866111380035063156348286143901467405563389799584869949375141843640160786482124709668769253078991402526886468078771481601798019465911328142859847557877781289994082461794091338427997270875344316245403185520270602602982289468628912900238545937240962396771210430121140309507838089272462916916318309158479549220113978873444830520874561998756419056906732199741995852504692166292212834994657384387959310310889239368313951467778851549880550344459356363088091817489176605826104570304454665332028900784723883731917415186539633032638541578567010752266693788334792092161111591708386043157139153272029420320727531157945691463606420313388705342025225244830232342837137065752930804150060116352992295758624503254609154589334525216887390256174893468061646140704499661633613265944803319325833344683516456259064410809016846654376969836691296565955448441821354558679922660199573757748437330477815905434592474945503226493830513148518562966530093098542471715325063889720485615868658301282463647749174676492918820326309560623133528857894883782817366331182414079875964684060833003789946892024328004739290157422383343161065936979814250487365222255799858290219815776067516762310899924318798773391580980268882108279250645236873208821057194634465293216811775894949029551358623372686550633740476254939268505414195362066766561146853502477575005378415369521814066718793857654781119156726595690467733062584649407089269618399191540627738163982419258888031211895471647647106858785376738678287332766240048569178313941409858221455982966522188601109506308157361239780326026236100946845228276581730120545460092167634969712081142320005262598696894484080267548738857064939259543955670334135784395680877067953402274790806370110545501715499397019772647937967940076303982403224631234646103696254510077315122177477552855178648637700026776890241559037568672318893339603764983429280748800442332352348393443717308725163112732199330477392600915631410971805240787339879228341463460765935339922923737873602884340205661812002379970593396178422474156065988008716195408676804105767727504725680110132443177455254519000854542459583478783088811937969674847125492518734944370715524164224028046401964370844556987831746327443219337747654951847122615908009440317978835594673355624366638249231057340865155560498986920784055062418601623144376396848762619788751269601569487003933784858680119103754426311632269655885120280168533868705811017541726662109462039700184962983348345366521708012376432946431551807844268191266889447819539547276976188507248113262662922743502703225233131433263198828553681954378951418443575246371603145016561173832807768559505536082255187150044943364762080161889619172102535331411001717500501940176004439836671661173550201822637693000808063837309110412496027068382050664816024215273921407209943615612907132134158326174763637158458369949626441597095806815727439262270883786410557799699096265960747698294550212006028118089956186984073140694092300106809179681503914560122794520575132057068526452525951788201634402897149097049073777896282441486585405852510366931735407809466636304595415520290081386489057757030062988233394569231478547229069706384900519737978983151992188257938266236236293402406402741900039744425796929466566520537344877755056101323132154392335413729364617678265426041794193842288681803280779071424892942129638853874000958501220371641096331808618052974574319657927647904875872464882365507728146990550104765086809813430869456992188959559377160976521553035851321756582899984717901541062364835224163268112905272165659532261379409733783429566968026977828617584927053409045309264946558344525519451584466004198855930163150094735835327381553549913091710782645996499833957924458755292048490830876855748745642403130045080735948559645929774071652571399764676901492304885587153224226271299481305669196303558406342431617464425800568066281852309089961150033488950220684517145071886048347377119871554118305867496322374734222197452634470950720629593198943626887410102814562858802749293440270101745475985640865750466721787175617832298152711849421938170805009127852964424450041849247102748439345969936228890019951581222663242303597585937360202240204513594589587466171836119560849625107639246768258885416584003851774327737757067241840905089456536318571165084965443685355075027385485643737523066621435600437765546770695814208962668051303734526076106402174964455622348292810554400092251140045668092434788203268890227123606453305668660000514404316762671599751597706313611774466744177081446094827260724772320071466049331271887467186695110786079622972427699514000979991877645478503789909745914630747192739910940056235283870628223166281142265919088637470368520909872408085764731939237268421873474511874013787312567547895165935653163010958514350894253172229208452722165544893618303403462567802669853466745473741120443618117770801463081459490985682704704143474166745670878955500652098402371753541934765106599966683032960511747174104454101067892895071474668743785963456516920473926272954155745736209534337052050161927733875776845581652888767787442997094558421017902156149451873964802709878337908865845243057096670308927171950469113504508540541474615818666331371979621144462416665231955282420168360524850868938211445159172661807315829774558493140448328351931992914004766648197624803757955002285476205186536489388139433597153535483213100568260962087587687535662911193184734115485126922345250652084043810651811760320805882123390912436258892383611382613776098805841613622894203999631295171935342643986425698553834179137379764504660089755296706847889716242378031056052582642890496724281012790670970512487711923369551260341952417377727673544461816176040163260767829181499235333461905602545196738343906649810779178080490839845167634346452761667838309493279721068306074604196327077313618707666678249159419229951793603794848707711929140439568421766628199041521787620453180259574335048855649279597554055467007493114328853032358115256265264589469987113688149638835624950032433763074190250867628048430978416704411975154940315139979037747583912123032034864516984104209962153533248820826890892262044188251935162314318680313699881850688046567790269824464742465785314153753387955228740305990188932852066020920841625248943490074879768706502056316314454265453794536534821891969566687488824981755274288921279150597734072283463592396493318295533980215579056674413479718596751634864230060206951082164244270110281867259342583420955692235196931333202090268094690950067880619434989256038400053973596430694161091299976098371952717339334667435865143789691108420103072616851101484390831455519618380893681727091391582795010442035804604504868953140895380840539357674808624674312222291890948137553441241658677074520836945661933322270571696776396259277030714581447769004657965517262778321676277542660739256708567073622883612722327638019176980670733590338567680945412755771514301804504080118661937327290978462232067406468913901619415706643726320059565619723584788487125126147993416735368143875224802568140018095954355933591120262975285978309850174341248080252331710943286066927563434536845185969148925836230224575987280546851211174351452728823512949325998308605872150625276186441749857426809693820394665771108586504368725488283405943778088222277488634771096817256814385837902030408091433594526105345686871733474559153394928006342189325837203879743336402487549263630567725844142167097186014207014659659662244594378113950919896889212600712474298771705923835010117643553703897805421478232163236510345871107147543532382685895246165811974929536315080381934745969076676348693159830955051212330214536769149119421173118742546675294884733257568940105691357512900184364310569192608864541199494864890733049683696139453942937488046109655026348664603850085093019994356064841454210102065356749890597665960577771589660142728201675234466574048427464651887242756068259505560242621734428265136985394065202942555770554198785756097050598438693168741086298810461728453656402768261042288516098409692314624036657322377869635762422394357418203634096579805394730739261464180537340915254799261901587613852987566429063974974070800418978516237184715663889641164958850740464379107368205550583271128019465061448597211634155238617681385270221752335068968508018094426824106330742383741120783912691317374389451127937750021932966070702671356936462913166207312695640006093065738964241244907952193676158471592700039705491257139737661266502386091538485584747702932608067869203443628256380262074892790208423358409983415667861812726092996017042093072148804253974604367371066945091235280342945747798946460685348276455024533911960654204695908671499225049901106693006960881925583657992431357084663874466347914545067747209144721691676423167388673354694481917663784328246008435805499819959678971523197898988585341563221815106109568717249272219412962438110984843828737833711965423675663650593827505837196904989412713125185014696269502402669281945029925243823296343677628055475514976727414328814087486331893198830103215315301964975200237154535175930349129431979286477165874954029464619486378275248195766729258804677659747803024779380326326610696163609637652407476615728658656595976396001025456604598824174913329714241288458367444361116296051919502230474349522498843362350510872574449892594372910731886283647709352095441509733452721916649230527449552722165704765196920321372998429885786115440008179122018089055946600257261664642448555362856111332651567020787818556341376661422319702384813464319402349484044154977645145999869841224082842242164852206063542992590345389617963657414605251602563651138436920972318081441185566229822323014553911949381066467071881967081632211885154120729084776694395731386032272274718090163662211628867977925302223838568814950649632596871172356841026959105275492952556640076698542032428026150560647929205146617684099086417623443406304251434297808313327743939404876891015692746946934918010957618915354730721264103888572198325670324903051719406586110838405127684965779412392672937504905637714704435241953194904569831166904784896574568523485181134297564546206300821571075174430887698928177172195488904924102856012828742000624838266247434225227243241810059328003577701334945500731917901808414170604382289431546332662386940096610468659877804547369768040309342339940847436565139207927518351117219111834352720296479270902874960754903320461563173431747652957211505727804058909979917405257808555775958817345667278295117078507470508896284549965910616589901236462267119910901509071804410187172731248554907681323990446197680345983012550811657711424277822200270457103177561549384974515051873636753077777221441228588173973794097881030425707697261759238846431891004382441855604980522286111943436222052482762404482543122194198738333886864820316133016248970267463325696304862882453558836245998282916248094404279888740213579575562504943054789128003875324455421738118619576942283988535085366833213984523715862781977826918305233041916348193495809516868739890577544476773808046559351414248760647662846795591721194463375337042933638354229321807349951043846783520622733703968680816789922249379895696286399965110395675302124964611910973040052456231191809689773965135342053911859992485440274047629733338092371144792926377744726417809393614475505695883109791284508368606156725440474647021769847586065481573134745485423335238025117719639552106547574589062908035072413277821295811412446361881617248626712282223635524843927238062503610875863318979663989065013035980901863004272160034235961152707131158393236642725699732038335559998266923793950466257631505818289286836083721867989602429440885683335701795070482275344237016970899099330346564016567678386601693152147998168791308631200751792778762362748424641329645772807534491382080001764864456840775017897820615692433675705545108023019289960161687227723129801165780970772568146237112012913169138804636243087068036746966671814146684219936668783478792205990759308839758494622001277797333247456072699016989567204859577984520165794500167994115026255146977172028574567174194600287400787495787496498472411487948638711048694862255313114905358742042929358397786456253468567694278396802982278015978473052404801072370630944612029549448010400446869467056012165968064359318176670344359824704612581223569163797342154551668429360691961589470715328294141620657232378067154998174760505121360035713550509956245123281403524386673732099590381708738568903507227439133714086045858135489306660970544284708888527340052598549283259524394224341962668225549002544277142293468842660152933578675794940883015207361258179022137284155801899654176181880754419229922877128877535908326281538831855878832069038422791840174890857809453210144950860465665144955154299343332264234810990764064851665300049681435232732423739431912834518722186076642226009093901057394114476719218316916414247846887481908944752698503167782396010837790841993036096230056231080843819283690982750513568354561181629033326843706913586660959545486487052668568515296819537629659026304443549247512951098756073522505984539056848159581615430248562194703329366590056135467684633401185039221748165142001919149967772427805307878431451591679307983271038352861332429613587449816854566633066596700774077832467833020713299180742744954170781398869078071149016237161565683260789290534074414384837147151571450226076139551730186683338004618872807165000927005402108349495983676887125462222096707802200383442086809186521563283883058812173150281252835155182475039528153896815538466461357925901631684709175095172047137382716941213781962525728591175310213699664151720991268698568718162852792311020070075288750205506692956083922774125288703353376364061961687443056903984382603053104603214123328607403706645439715216731507853459803141462115711556116936668790064787571019037173984730532356445224457572655615504876667960809385627981492291969674910802577311507521755532027329691380040422534136778228444900784680664577120614257467326463801097936018109433050220245674488017371542087773799547311234060609479423253778231571310746066260053469921893662065103101352623087143279181680150750152387906088341841255306637767117105867355094941177754807373338513143442060218313235678265544764806513188212255985605239531483361348699083093358129973898248993873533046440402783221299894185573140742610207704269749298594925612597272540277491764793386480547797816572506251975779580567390465960066355543559873003821349460645915664179094308046673234915976956803697109667016951422884054661598088221329941706563389538347988562323553413830822473780558476024226891833657576135232464232560602427820647527109369354617324838442632651967413793342964933693317681987500850655528639296284238073273419744445546139477868090453785215428054021928571900560968073616131327885669220388308919191144295254732839681699090771951624708200825629874481554157643241687720577782520097205817180112119548189476442571988397643354773916754876601542786353217567444557815343142346987355379961078567119416346479109023334324847525147787287146155342198210540841121880390475136783825313247450121844981025411844390441900964699098315473107921481386712476995800058096410740424757809990756549098526954827065227574062733141530357551061869247718751131774489577416040146538019051266082944622951629737563080581530147157105709737685997702277474978333935467168775280313807110988659882191918936962507715516509461065549582239821781915259173565318338228286054364286940780577632224490514265800017779754575288884968033506961074994360146096010435299590519239293176672783656313204525586635633485364173500515200429906543171702144532651450014105883345587376252705014441043769709812020982185353066734308746093351203420516101533110720642533171568036186083548535037157603537433198903472818701237160821772385119676682720177544828549428429034418818637291421644692114000048293632281485565482676949195777137847604426778039759673966853817349973823248718264742351835880215390997980839687681460058430427507306351200398530336176923422100968283462686247989129567436416612164227993834663279119177029310718697701664100773604314610102423093145963436656356252592116311723273655749272109465910987916797903948980945524340855586347811948708931739534610017313698698046671695178346818522013253004805674837899327136744859526951726895810857484147860790729096259868161035743913259711401002561982823203601602169828348989581468528266866276494778587108821038365681314585998349317562961214555894332328450662358134155794250394002464605694278564648625872874803984602727877631779947470393725463768013995608739097823515336625978454069656391376450704486240240861207546810452085651429248897802865049797680091488652852212373284199324514088674639100823579809932810002917894562034295203726939854161946123268311310641037974153590307626824257434600958625921419039379767501435269488404141140614552901956670829725478525462241475602144943356214344686409576687376788386747156689628638485423355788314910650516505984426617750032199434816834668819841484671521264397600574602350579093656391805031089732824183633563412980963528090724862139720151212787204921231401063785752719607753155554989111964808413955483486299660089906357980837069990462083806261068366086217181187815245615315153784957376444047201419842157645687837804372447301091870788815439855754357264457658869494474152520263216627057468596312598943264951914078717908226109646813842076593078250948712995039521099253104823141883476054047507317491915880611557074105934304648454010675270247993131176921859064386327567411525585268714374661273603131288746708082975171116470521064313864062593384796656309898897357734335604680043664355074054723553705867156136913182783982878593616219847730497072426601295558442374370758506520892306832710090172480984584593706020594192929927290298081575622499156921675986325717586190184613369802794129508138470791417130872688343989244935797492631965187268234861667597386043810699284409189919873664286787100583509243349782928553958087955959848837000427782673250973460786816922393527153631977577802765563274467222529492073887882128547736951688219782697718109975478416355401547489264388233579199342547130078753133877139511473932244641104011263532617704138724246876487033224534853547835528624744609881869600419237521202205295705247460922241176370360044625362784112194206300911074120774569859861985767475244494726619093326006220363118290521491677708028548547136797733125657861126582354800593703627184844398802395120043854183901145561858221257846534012207547245780791355138876892672287425596015783841919035836203973028300178160764499353176899084341594641754697828531921152921559300434044753611211823384539468249360511826823470282661479840018463085984825760599675137759464062152739796757316450237195968789198210994588522753651214977212609826417433591238594475957658885628914548716449670025157480923850170304665581605082640564642258926688145113058189800619823564721321169882344507966946084532275747170909881456499861756654003534422326660026914037437047642058601522390569872681588233215567194818512475287241445971364623500694513051936637950525813396245947368550543085973341872799860083120380155267010102538010877770530637096052644367381677691673214069162079888517853425317732702554852136422171595522484318985651931018095881993360287484073373600409399146868538879268258405604655428160782726740067869460460956726929653896742529763949751084016865726299588389371542323375895597451001684698840418320509840536701738754959332569738139635373920650335816587615595212988634739937270391550138806430380857624395628163299299161137570279491988224553834339972910357879420936684376491807742542992905635464092699764492008625120346315482834771648784136029561546252726738894760696234141955756627318346846829497705731286090883153386357413188614437812838931985102237317106891431363091403956445325965612390747219771777666479003926394837415836977529249552529998871633527995145123492406325812585864909625994858698277794782231259575244179965859821940656701175874204568839081776705546497002434189718848393577871687706219634950849316282887370242615131872246987623601026340633263326162116213974086836379989621196157594839619286196425653284455314784446984090452693329724045170931829050539021483389149495308553689549428836180244948053609903584742303289881512036051378788961194420697964173213434008228137003267391070395430677966118550727969089726795174435993391635534432140529360715395791179354483612445317267895790583083892964585503239287676189362753523746706499292117741379528152333598232843742012382648494498968176194455304420736806020028143904079862020538266985808034480672892542417251417074046061789776844853954815125651501265568108814102516758982605481391932110090149568016176594881830570352788109000852267718867850030419193621322706742267650575562338260605053161097649848301328594156966515002764645784986050183752571891802825956852074335707760317725264559862369039045134479115268308241872213552668112539590256581919430827819764449228186902038904657875166667184601693056908648394847142218330800194160071936572425018148458991404251155654284528864087512384677673179432050674174345205714480260096429187509301580374311862454284159354188674814092233715873773437867981369739304000305997121227125720136597610456609234289861169835334521463392274967454855764429989428602203198979594356676941183356739850175957131122332635467145088660271403777408598778759506824264342754764845511822701330769275206412027830651014323912649909933495722030774272232639442972692626536433601645025318333046678276396991788266773439156555882271745624197985938718368546822899999046162216061133325926952191689380353412195873082068079422172372322801642811218735540718120322377086002031919587866779610932710117957885633958817183789384669393740487913298705528919001365646979105001567433763468140239072180452552759406159674192303073656894861610484217873917511534162363054766252749074254660100080052451160454416580093474835534150206350682455682024105240550608699774205515802099210670941394632048535817476327326268767941620918926171844071052882551548359834037022168030927312634271990932532700589016028374398454749441587897127529017495792457193775598838283033159327559408644412775993305257382132358631353839994978951310402158612646118325632160824616163923017012917859064715703604005145445521367258176516033404075634779514368935882222241332887248453706912825001402412089337866479125005181685624666635295724438566029721691728216128127942387557185247262592235464305098735384032036827511333321705134315248244474684884842840035485453714342763795146503149058241723883593400182544031484950107507701945083418810108144028319193294990531702036409128762000460733187450040393875463112617348680771035393455231446467195336724692733612403695668367083535186355232512915969566060373631194289208932391198739567332272620167138479917996825777408164806950575906170855896738584908382699534033729436830265557179229293847704143998408970560157578279749742447040177058143014611302385250027695747845044658678831910934684445304820189354440630753595587890157176161776943192355735864955687113817369822874127657901855688317341695684804471871376473889083956014295669411850375236586073322463844807708413053650940857806204076801420772012272036661535050122450780346852277700055294609515942753033664102559722391534594007149437086100057899955342629488083990980048232628078323445406817733546498634988879897283751804180073597576151551903587839527245639461104732668684532255474932364984848520821338111948590277319315914033744133694525942316294565493349853076158186315027933752708771632244691859069071946098608328913520707061035032199278003229228337936806404148429030043650690588606182251171386941894062461867036177116496917147355683845202311358350531669136616167571820049185222086761869448621478345925296673858651323954909379208420702432299779888565509799808331720543804343225847562880360038207658716161026738940582083132506249798055584707526633729471965007757302159185763370259702183970683448640831230103001325534593169311953753103385150840612470469751114865272456311502504968036156267318549039040402517272682478830331732193923364274594077520619166457150485377591248700845743170887738483012228908673612922790681690099655734761914510136229135243981937313728109484496172030479645958777335829588558111605773616238827966122777567973348668713516121017338077389440289575652415068921694577655261818384996040144523637861330653995055262373533611974178775884178317142357574394007123637426259475226426170605368533872888919338948174782586411512236782686839857034814854107354757617890976588387593352271475480418491807366425382824746658462027401756411051976798714619806468439022118636336192483830509876212825777258692370653673695003926161561385622489243811627617399208576395973006745461300493688595115629498544410730449513769577189468734471453147449359668219151127202457654799619505643313347103526249047530025708533104022218988482304801017857529204877704882942887327109287931646144067997387978975416586317977349188235078374457050446184178434485092605022360277455550922694839929414311691430677984742782724565433491806060109581002856844128905876521223486271079685682469877328379183251689830313917595355883909219205450577138231709606360961403183542674472700657318874111974991055337617986188790661384415616039330282321166828688874955397636064894181553078264582197282458721088036554868111640384196989114610891029935413911082311547496086085010060602894696709363524908319210709357071813464322764191430128169855768543480911649657557410854274756577918501865871271542007966988536606651474566363760679652895394127788474855429082640084925112826949654689620128923707889502113736296778611983744299031804971138957886285535167505917168949294551508548785337389914260663574313076529064594349813036864577907206308323927332929668275940951363970986368033513952821512244965220010065584397239007181311301942833325971829131863577655345425672478382281554890813303112761157530728537479123044507427286151672174077157584913322849247439701603027507928316042537333124052797237852716698331112184943881688827804747028933053519372041413431782012450242234728296148396379733562456651426633650384573362598648463139759558341610245204977915235428467019891989196775132747091539693979009436471026278145358553488559084750846958142008917562839419593186118425102864339573878972450347647122420068684495222732583164329192833936450264395624586277197438990186689150246378535892888430724010497771557994110242248901126924443901855548509166049723793241410754909617972389039270050942849806504333756925204598936490475799344497841906187220914424744102059755229617025637716255207517973510054358854197693001120747438583560624603114036358636196763309575850278090815441323896768698195984419776720290958855568775633081617852406669945055958952548036524815937783163897681460764675283531683232832586315053668132438866566330615246549531468881014996044131217835789139677797995886815269619741506143016721777790890222006624303356509212422685617972392227047660393627434156767776888421005364627751548429560570914028745383134404063837170857256881971824978813926181308263160375438700297695932894303720272978605868157217962717763101422290885257959043759222501994742858740024269155625318279330365139088452614642967696154034270254433541474576099800377286533348605709303503146846585849250831876212835062238981982180840026639257627354155699583512017826684750220281395240964078849181036177229640223660940440686065659850589530604513513118558455704404406186642705224089176336186734219604240140613895684619918804383810273363431996385551591912858247589394378816534240264436782736528326071313006038408461422638963610408259810471416061868015841331882584791411345244515815833155235119926597827623212174768099473302846045279427720749224116365632752167928040630343968168627384881991524415822595078692859245387979761798255171982506040288118810584389485882469266316615037018398815707252854864349753305789116854496427119382664148742629601108819695870598257665373105413273995291879458596924947682473457665629281966353161226835257838991350607193894710205902271507492579779595585698327074124054450346784554599491021851693602096475038371934756957592327094928503880368389910079543449601268524736153359364306024723795352804157526249408045917908808634995914882203508210116862554048763382540386878011785984481314949148829826207893623947147674448393130192265664182101191521176727638390339082445857800008724671868540826974819269385442254413294171395880754092006278358638691698402581020020842445139973877671446782950762149675685598750888483250366813686032603276555798847681685969629175115505362147562901262295833376013436595965023539833090004780695857808806159074549975754679136645230922050424693732458393504221347372605145499386103457836313365041119275478575900264913953082001699835252793372880120863721509700096868884740178995602698404447319447903439795090000379386051550493355374568514148396844374299826491262393254052444606191312801273790821974256676529896509800508999873330160122397343356859284219939726434632841276599455087341415919191571898766741038576551637912990084983092277791231163778055952893199797295237779842472504368879622921431469636949836440100258348701913414089639339504457214621146879879650198502959753880200183884781102706271224364447990292843629550741068217279579697722427992003327923649958119816089303926971055002131335324515034058125435207449989275279763917619438165293079754137205228985819272529013538721480849112647086174638481058984823667639212103150616363809454619862355069174430555560696176385896122972297417045843736572472527268057970650628042521163079656790029455750028753580715903531301632674688325854719576682289418479565395976120474308106590825026436198772246695775969729187615802186944296051373791932594337509198599664856312412693555431809970469944201529913955507838654915552075709902333298967481485665815328299051948265441285528937280472984347845254440248646431028305849611683513508206965473915748819415732330787141569769664744694354373353238622780517751931401897970350489807058940934276227394286239198707862267316682227125335788688593955798928138893517831398196992046709274842427804760018564250163285240761006977042057268981092556743596126942727367025188181501508111669124500184509118100938877016196124333051891734102601170250146837635620995545254759090992285328934211907748770093634019858339250419494540512368796450819891544970959556390873459278951851453231921256290214489824431567090519110702460131318696195992573667496979778494719890061671656539954525251620028969717134530684214473283465373903368340429346662818998664908774193641738665757361220685205675877062003075115209018766520548445290221879612123400544632333399599768948722130388398844853712039439642146349808763390926797047520120915428046525360440483484077257778691988418943883893812973291462124770225623932495950778732951441743043379676468584325872865071102531663110092961881394873964268250558287768420162006861099882257055867724488717037230025207309480717129527173921372556305100833650134979974583172234010082711061232934246160108795318407256185234345638994182528688224419214691907021109839324115988746928494373708111780134583983460169838012404943947836283711518085073355066377958150646706845382794157014283139371698283796556136085234879862879485282763787741919695369584788183347607313515356652404548689425538434335169373866671476320314000441021395268127450869576989659368286038892529239128332334797603126319305517341761490950014052787841319065641496105639517219802631510197144795295400168083947165474929876093205974763753152648134409186233789538232769351593339863012703927471621369570462612216639673556526483634386893122614040684283276784936973121536088927950422755273452460780084269644542482436044067250331496419034555145073351266240177753796851717075496055684199608160784238051828018230769660604287247231432311349484247570343238369351507852818454910633039368401355580913329394799240226742289806809591884904807649183181872441170318153561246163718923212008417397235604849818995813387657557187352675052086603540918103314793197667152473350708577839069700030596070782045824317675577091530456194372819482224002063465155697210611709423405564007558099026096692566148361647838608511701526956494290107089810507513823763679873435218427119122362460981278629999488716346272587202167919447650773753493784977803183916265510363259728875089959215630009144137355247864746147560561275245818864701569748656119554153441708396364268680967624631945591777481734619986097972814841068490995845866151813586813220197355751980826554046157088805612714006589228643786595273145637227819723122886994787037768406079318334459651847016988149547534098864640514688083395952212973887668535506502661125985903062280363660371597601939424468583543343779912729740775782077279174245084632344319158477041728065164167620672673314598359179888475647054900342398403101267152404194528978685445618402889242919026699818876719202489782770913292374578491300428027501756760616218130270281973399155511271537705230993572277896396675250056858401025549329423985797962523959145265998392988768901564206375193242733779116636176668794147339160768320728450473903044687565594336904125227886016477808933577569585097469955572032852502741996526513285263419115452074135035691564963184320147935843680155305849429184595966512673438607841998880750316480805208171163347096584673012940395717850726886899001229194787322203770376111993097216663276182255171725913882318624762458980459926521285505974360550783592630316836002958208539105049971778601982076237341833803585350381688041441927313796900596867604353405148190496537202293533489501130060506760670843578735459835418124426827615067916112185719042493100890726753396419918129439227780617192682218909336454177185919763143887807471659349224573073300221696689032452965389883746264563959414193885926460668256443881956576585205660381839683882950099446522775422163638680537666332838064147693776606739088907695435934280546136760897861458234081082135840678596260701192177624746526471318470340024857893454049743707316095800341276323498822696602741651143135230606432138831257167705949272261877870071768318277912857055245436502877339545508947838018166691597806348805552341618452952270689512279091309885187947522033799247996184999810418152311244261637503881566577706194067152152147242761799390245008298794285107267909384534259864409945970295016379425554806395301981268686061404925299324090013039185615719889856730743293563179987833926602993425873006702395722676456947799665689942013304350834872258654558376164595314615805463691461437611758526459559540941785786813912098529867909480073530999479930267609766005013396823492635569673146665275427069897023398240782071491010019112699847212715288898578966979695555309805219441160861901091660387481820550870837081932834163604205794149931399543514307194200095588115346198866778200570543742966578725887425668912385952333059252076293230282795091918917793613995636688053354915952264415645432827901451937792442903817445992092190060797385554437838144675095066766418859590113886775901327655250347136525121387108211839479472119161431318393491291102736068964190443078358699616914916945334854844514272900890392451332176974153680207332934082732700993581128501106962597028963238469701336458901684388436487461336025714817768579578431152043751909372114462406285462487116668578287038595138691468977902164765745039082266681461126511945716045280192593047372337501261666694197882996757513278154719564638270325561714766514069902751822071038057699690328855254259443267826511010397940589836474341346150734279137341896437252960751865903126069314426541516173047669453891837687637465862874246098947615791935685051494639392396806663818350583952608613251359987435592651509667854240249500805521453027310414202125562116278167054420729373431739526261404929449025144504938381846836084902217430814095373458898389547277474360957457570480219763402216286771704258641523263836511874204719833126049362521697513705172273261119040206708326273845314371061791454206568832231512657073452614525716260324072263996587553173153148795633633381734760559235841820528940747008897359661747939286941169079346882825061289860916399861461938209988306562918046822806502949207796799837383759208733152599311474192345986536952343877869265461457621898051644061715206051857940721526160697864264242015603650747543433540666534685777550606967081536261973810502205132590504666547556462972951569464341057954607071831605327309077392061092829082339773057810903790647727031505978468187371458122448392942732391864098009493478200109481640161925438481375791646723416694836883696261914981976357163470419109107734233245819644741423587996202504194957768280930421616898912990494988265595106521226001454192409977238358874210811733029662257773234366239172645261780550718554850646677637143631784909615576706143824525788186180237126025468435495115515783157558090784583659394572147982849318241659803546699717403619876784374684954636559039707436774990504527158438100673932740063272472312887026291200699625958626675928478437993111044526561121866169177003967617826268861453692610013508780870874628612132923035315464933178171975003354566392589794022060947859466082877086165927323733140488605166826597772491084415233576597571715223776349185309578165897457237068313120407488011018690763226595596277392695182094672343632021257876138786643565331666878427547734106771081081399316534296197751594901538656829518728997741753297491329130924679185768498714435954623824136975098477065751337792326769072673399135400270308428689177690030491160967610756852037371715635754786486951262278490597699657184874712080176223848468143419807694507354529783711656930102672786069723071723343369620163453125742381173684887206225002498386055542089265382165833557762479419393977713677113917270317678156235755450447008215147023839504913831974315078313967019900581778490142856290758080855778008128545114673093489051675538665539277664623985764923711326938014362966334322960136823584277388381023893816809878649022810589595942578956175278489387167421763184513015257954549202032861787375797352474074581195912293434440946094376687717516607781878692395827353697050643887226984079346917799114213257693275249538500934253633806141573510981370879663707270719681282532169206280570426906871939483742997021215378994692277236558175756015707115505666083436325635742656546800166157948972761527164759426560367568983745213717379181139554055808826838335524649412432653675807311141642672713004528370248561147167808829111771260533476990192656400685123622421672788155771654569208565567278664988501836141247495511295505687404110696267322705428569463558222284070117403736422120526363711547827442705236690398198080171556626686548874014361747473472104913655768769621800074820601544182616248823444438319876392688535364566030894615611485048641145495622014499146723860229220047635065611277560018640068534125288800250092244769932063612996480265959512391072263385268464897011886871599816541333197031841033605312159341343325662144017740282671399082845620314946597729719608040225431851866627366650164716219927544862852353420071716080537134346283280154515385546048800658058820074611222842045694924398716851351639652676928317214254145771606212796296738034235780033291431300214968454792195177228220557957605432707481370427138758363991819124312466150819249981158105328364560485269658623084400623899602737401717295791572801090990126220634275139449537427599116816528150344963616324529587330966943595903851775211426675914929806797740424842080740643787669931769906338778476097581788165621975635037473968425977654708254296701096075507517072526496266226224709922502704024454622862300441344078081498960946704904171248898043614514413349554994409686566512643207895612087226748598746561759102876512446692922521313656606056600407700787600268363555413072152201320286380240762260019771272621061388876823879911946082001244005431881651774845392164214569592464972704026579847247764957735249290880685930949532247852144453504703577710201558143371133729736668176004725168025331487879309509468508117372372335241359567716471425693855654548809611260514991861382039083873572441322120166593614688712088222397375978648863110301426356094205958397542394635110301494265009354291658938557771990610588363313407169287278207033187951672467134005826048779996311662005548404753471810786603462301399432764002527255675415962066657985118024989256007837012680104319149236532911496744967784608995446317929277730790832365647503949758418604689428369357960779229550422247894733422846273926204925507593830133709547439225411944882819519265876771809112012830902375012696501519041448936667560466647576378270308792776803028873886359224086708044380069784974196899318257407184832574713073747572716144323062032483647123623814872623928592244695768040690549337457263418187151072515723612407009214163991869154072883562785239665835986969002643542469263992894237483632767230272408816568179225830438695251518986955943017006038389471390735807857015265056625752044644757114973939555805875642007355049431313119948888632608684722956684447204221163853298333610599024076770132083185955301596887401842314485322256441783793257870535950093011276457002278322953551068099208350876931433880725129946244342201559960863196265642286280269040872256876056379006253054978781307803950560583592978738640832405724964402459192633644960013072436189084933755351514918844526449021110549272132423996847505449220480633465748992514035008186281942647028052759880716197120085216028218109832848182760263940793694928881806296938249053276698252335648669258951456717338710002658356152718073308237257456960670270458103590423326452770847137903087510976945594836831347550253796731110629500254439660364415102267122184922256556608519430523334635022142231270962234424112806171931085475786354292821899623276118067384545554474534375608750692123027124671872106362336246835220629613675622012463339280086621372613372486909557472675715626563325852921016261486051501753119747181733992742593789611544802529625200468742717919022482176853024594682654034703465492277930084307124726653151104362187362884185141304992148588857967141967415493186097595819799584318780564338071013855753123917059759830415172800940120144533759738574566309517334917170899128717915131228398787687803231407164584163035478131218016826245461081161610289049854229032222707690124814853136465294225490268265319229757690453505492573207143028748515284252422940667561819332998997266637040596968227758188062460047610994016874228797740874960315844529477319444969939815484867509536171300308697338324794674978511997795929622204957060656548683431971052252453580861879441597103889905259672607299499797771341928326282437509963285755545712349054239477043955073308248563656192989866349605599367951711350930333246943708543926098461957135323353071661392833932255292514959853010030894557318452529134658148787854782424766635962710703885351521487468485661865125902710470327476164992069571863828107123649401145065720701601886595960901202149787747404650987100225081202467162345882759553253577906572717188598042963705197112388100516685095856034719145618116835006680502874919592595378129856676960379235052582204191119097595004361846418335344764361227041649149260846481860697088717571510435411108890228617043675032879290510769813415013194729726693713300311671368969790572926558397917069041484664743240750152324142327470805217603913592410354146812292196106642378868544464276747595372331924320887165348033679348679079415860991218844502063149556046652479655454863890077831241156011573806466830891755752211832918051665808634347374915395745184327620490234953645550589729087522401268383311987076763657647647026957373467408637354517995731111858504534817062551338838224122335941965415219120899828499458629561661116667784810358584313641212300877898137961041108924394127878379763363916386663363884040825406093224008738029794479310364848268172145151318150610805759121772123566701795827828616725914134357113263944127246679476926094255344892121687974052000551065088221119931225295525527025424136594068110583954757110009307351350567082800773724127218535894243086470399755942060285418812109782563287008629588665171639860590708872681183872171502986852645113517057320816621380452664054876112890114476251691869695032812351461719262350123372215402068786480339022541259369153702503289993025226681578609869977503592774473323027692354510044459890388365631944188440909695966135166280127594558310435290145042368906089941453261031201916496439602950147301157181075063576286157456550681386335600354918124336932841610377484040486749862213668721553029852048705395161272020240051423512154883519265580986841614729622049549203222758987677544801221418400086794783648607626099429405626258730707180935940617626225087297020737465264814822056563763772676462120980680292968359210148282161850575897352176101205024923260092262137953594532009688940363594464560402425526886609839562876068574339042596789628912153206975635609631954791818769345382671168360868631805068189140996450152485349017710000206735405349493359147224062379149594304383883042553356920883090829385186046789870358996370239265067309639433397743966749474306241837668274943030707065508300302315976393424433628844633596852951626348692171548546921228780325735085066390185805430182605243856624482599541785576467494032554365236860764280468767948284642511963105277048270157750321631702912119645851127237402324753800837407044470578677201282459646795525291550461987346125511700096874378384351390303454338359106212881656003172759113134702110858319339437674130652120172652965268620235826217761935081768054674461771962983899419107049996450512875948918244898279252386805361335569082822618620735458508305493555886280508909183602205727968929765793956077606312378131001111369349379434418634381375437492143223885186307444603534222260686829528436141353430831018277062027853385941356568967842540014260774778736375420067888981640793746138225949900649463906379578981790114251367452409972410539799549475679861069788059110927910328902371702894541769450084565680561512267293666399696704693849984274104310271984884927946977249681820183122575745930531913638654668386552399703664778335239131558862936445776327356693251267134828014792646679018323260543834537189434277792065953732124747140137876727756654430204624132378513000488409699029272165404826319385499595862704528937462956655821439136401316714574501320819639948686674118776123115950357008072629369729558299665439600462967109603899965133497683809982483101199059921436511695975123697185119364413202150739720493120342146922061411752383178904188099705759731783284354012180724982066637505134019281047596920650134839380453653274875903713997828602400127649672578424258915743430344362624937115947855007099052602078612118725161399453736717708822456164925180908580470415763533793935251189911756184094220310681890034036087041951971283130989339952700135917988336502365671653882971250987013626594002785281966378859677669598777271330632288497079526731202343325397937149083972399595537405544145364207856840947134811061367049777704532160992044487633767434728138521538276687744760597028431853208574379666039712064259332121008439330968871372898729310177438575085882302183735959075534719116139718214939485158349487833274714515547951751594798835468099027121958869678644366943539677385716328887366117598634822476518438776656940334725934255261470639696495939117258007027464427745540562708128289120709566653589062577980024534805066285290605479699572523276390693378629167967316760218300462715049454890746415191511719604548891921610918956968996302957954166429233168977539811484053201718157502342465518828891001188224011856562258702866472126305052421835120847867335392804601398997465971469039194229450257641238373442719777543139223036514659738693437870146212872551677948899548677990207548019772508844745581826605471149042671578271525662150831368099094619601881426828658962706095701130389323317621186206137439718833383635237538441039138351540355243229282760208594262877824722108610339812809963847396371687526609913213459265558280546462189860949238705612845056245451309241295011233891080105772185227988185295083723722663185981931766489837816116681726042665474524889398003838068461677720590992649704845479894964703154014922342979755838593066533182595008376875558054243842708268719392862109609808400613277630043741564512985014353151479679943783091006978387643740247047294329296717279206481960770120121535081703214022926539895682793993904320747497409879025088555570874228565225860712431878378243469335866762344886532337318077301083825101985456325621811539974684270731453324904337779939572236668155339718762186736685680971623318722013183945882095691985786750633819462199659519600692167566520564327603053130334673987185865502684000660831596333674569512765745718086796137589172044136754729235882653641899490155580152110410868661415895236682208966878864840241097628679184262952445819241662073806697697506099457718920376825439907750147436538640653268997552531636687074163676472767693772182202918199126987939548708812451099848804192619495207149140174555596714132147201594442531192461523250925110420983550679301050832016763181722367646401195172111703569129621594463898787938200724891934590939783402625032075632891197921353422955887234587993129012481246670170686768969522875180279044815950670471295140414857614302691380591925161559795717024289686973251893752249093551549687903832680704621366047401076905939421279471942746595332071971295186894778249825173270086959356894284872976710649174504669614160364741768944034375286099996348425186266647565240521483916514098310600676526671066369500985108694675807109548145351630693478682151773103085608008544938955884543815652544772540934766891665055565954883153313791888043228150767891369446128733176954766290559036588469586763751610800554638415515473658589045949578761522782054794866577238751267789648896314384732725749735040875241026297822252168632437459660511678272956003588508535974397476043791618255203727641997295785358585310475260963105542368906241642701903935231078196254793854354927179223527684700056020306643583134176932829646195606590810860011465373834010658850446299045610199627866127328132287944516676994986816513725304289735496906141295906135957196846674098665186474304175288725736134393096141194995698585362235579796253270950833678016505053152339148354063194124885199765040307307372827995546566673145806446266971967816926885904100511158602617552844986378954457808287653928679943264646620625748327733352272769375550482791455981517392086336988710895419068946783794549675043679810987298391725973887328507933962181206080098144077597395289885441116754413906884693302161942380221068465195237041644432315715827728957129081119534903734573619894823966712020515978047937258377141709474012309455465121553836116313270437998512873245162368606379300076788600944467961896362357002725997609609389015337083925932866472133962359356808050985921561206820758620736197263848185304337165245435469789017802118148450138498583591868025818406565573186431663657501953167894235745067516733690047760509504325864349605581213970184840068540771486604896418492300108006614961655558415357858743975209324701600491647128046726053875557540852747958438239134777923113372001505757511909865442201747032039401567976178417345732198482086171344343578589265632253768568748050291658491877279265942324558639406446803432034469963851550468901821812561753959288767315622929966857634547321264159552586259543216897543253761691014581726307509074243987813343771878103629579640100654603959670941194010993388368261622571543333737702043605373210932663529514960016769485345883688483446383852175898492020346547479926470362402653745291627543489502138497206745169834437569130693932702173450446093724410761185370622685310869130535396389275187852276562390288683739178871823437710757968199599578474522722987559510391000122449014240269421106036842439407447402556197852829660542564060286835205710627083710946048195720289622723804547398683963993341971701416785024749332752488898306573421355039394222965836029473771025500683411890745631807939943708702748317170534718346039402048780347600539525609566521961185322659113891775937168478189501953563613643083217800684550889127197455883121434929369408713641914744676803647770928820894182773187404921866014968620373929676289066870452959196867929105566638600684268809351566313316012627909115190724296266644489576096116535333184356319594856949644046189315179610763547897779210864292375624640794186115177550770239156381726254047753368137746854189503461113383019799037164491800998608916048826719419352645192034892189241744459751635542637637483865348665118914052049206045869577651885778634161787306194162222212488647242376709998002988510029289320182101103431432161481118628233808234055069654380346057015331195733176770418049387359673835150314923252983245750721379089201785774513568039689979469702830951027263777566158600297467156919389227931963827667797471345910972540298482856984157171741248201663615604941495091159199130476468519574104138747136173143533289574134904799567340837906338352732589084674817317214502956510413204974066949521258435407484042595025395271895333313761960616442797635812915128497439189002825715153647664473261773218721461681937960604258662620039575782032869483541789714405074512471952328196075626967832867567854270149618977455589250988802986550137184043926637317152269943477386673007240018797407498673629233326238818069033546223669113477887660134439330409924023619305054358289061193833567242851996202961675966572416513129589336951984630160520087095831762155555922855475883354855179086264529195348936900786196453949236896870891044684336105400725269490234942667849873967298091956353916687709685654203788973774725580305639016195115701946158632392593163312039009830044291370586373213788209540020634921089340028010898698138273737902731533116177258678410694979821600268983266968057465174238837996326077851767063432333760071423611512571729641583083020106529225881322674480676325352190183137109266583429437974526934124811648008118804199580459330816700352714364810300566207875634305346541929242835852720035793710006332403628080925815510884542260799840833130844023892913821920939706367553413732058342459913540330063352449716419447981813921114672522089636745203807757028898244266070697643527935053998161339922636790179214718579750897179559451772839094505680006198129074050141899706923318820636502102079229766261089113152052250729224421148045781615571463235475582874359048389461289396773575230705469665904964871904214815881970824866547055792593829829687071233707132944166036182436881809629556632067228758423680707393936197501302804488479659955735476133821649945142313864218327349836291794604764209376736235724203801307394017144240174212635710699334986139613686549192442007657167244444196338368644460169049282185926109841889403905426528991677238531927850282618029283282637544216798841107334782522334722202589087760205621399182277259924736600437922258021689678792671141913381251025369793755157218979189495556129856395606995713268805411254553205210496373674298646745478047787905768483220430719817941879712086705382391551049220176017266071277359091233330516799477448372008194183500763115298112483693520325522755473919864703849922326086936982798207231578128898842998675298691326914234533470843024362147403567620035082361199114398794417379710342229372466090627662392715541499484879264454580422312648836163043448591261105824743536136224476639597435241883171348054443244198813298773837224703414923840969687538807922213645144169920438251956567912859753971230400470619901433358553843683800952955135581739525929441932392282997273734884958248994542691818200363864677203284057341315424767972216768488860865055618268167843893862223921647124133998156742202599194683035716780907181986595296412489023939734175063950273840182117336491990831201444435990524690863249945295088978554055056072068664699389645586678534598577644517068398819841279555237056422795906604682180567207370500096598332306913595701339375787015777587801249143308850952107600608918905472919764562126343808925149003063952328387065137470182492591921436142173755467541544809161233919904848744717308486604901847267214011322591012784683326634808195640297840302937000422616437818488257853175642591706614078138340741376840170366380466453129464333684720188881206367979882361466530725520248695231658498616526511641395074921308572425785070355236395908252189252657420975328445696368724902147530554158470624618553762751147871168404709310195574184465534884258807897758772820774417373333569829387732450109322079021490630714853358806714859090069348359455457810849548552723334671921852180297189313216237931169605761506250969633749758812163551312956043053646945203499505032522698025582997752590475356156695730029866927269410735569845498334503630335899154202007822330461962858753248534626537431064194939182513146693363125839541486664411249354148369211679260325125378458360810267853145816850713857582555076015696547352697775897454901692241236371044947663636713082902132801604201589523869756895408006186675176974194777699543656156234314600427417587487835397044953112224073366058838262496898982211622594132862777316699069834160634386072214296053246677195340669024537138978233112331180380537018310645187378230985380172949440997177323979221176841154196950417670614030802347727845567983157836747963972267584485410271530011473313296681526561186063179328169053761841738060877113622716124015967822125208790257447684961550789309905596195754199361983298817519574332829539459747228248132947653450757220499106573879143344399923868244470463740350254401470798880391109663556765568954651850291407524705027944755786280225674335548742653499127059104408874811504863234532473811953726214506666595054473949528391368660452657324503836387680670217469549027968917608691905677291249420195696226750122509961594356167397710669551212016934432094954309611755005272901444526917850088360966433997651677514334976678240700946011272970248728928856110612402657697546970059498589703625760132698434212337244807752855669580684706354422562712117120322438010245886435280857068234653860836277381553772519892407140845877747470645224544408660086619595381213738616644064111245000533990312159842035564407486200188208280372626044171777864828993339329570169726391754163835432060413101945592470718342484214289111058919518780758569236869580257984953145412305378402516858994203863163614451868454498858928030969728928746015243636469373275687013764800267531998333431838442922980215782207030139096835482131837722524759962076387241783580233531870510750633157462615947904001992832323916445963059538035694273907641718107669322360588278382630279013980438509955304071452689350048986088103963454476845598337119856017935997132848093041047233836556229351584491132383948699847384843310448266563273909660615079592996596147326930862766685976262183832328024059856098954384623450472382112371671971684122852773097648302203407037365146896501194462347819253432780272230929167466355240421972110479040814020876121558202339584789331907500783743115071324651919200675615227699191764721298983242960119716659750649386483803364177704620907911738649270685638764415674956412327933064829272098364405576073418442553667811956036284998066534315426980572447340926895431742848086263332403622376548253701059931634534726491197335204840494641551036390221907014992798784859111698971672282874277589174769764211847010791376734562797994994878816725752914097846317668476397480833053041281302727271161199301877361015034465236000067532887514796745116610779509759538974348245926247347007474299020950037574767558965778248279114815638631705319574919982548492297777655399322989666326470183528025472351104985837968355726153821177977938353821271891130910691841592875221880352404740872729057178738140520740696754671116393799628774799120096049108138167503353728444546011472807901103055275481426978237797328606586691661841482065676474298398262622171762188205067183284924697875549566920741147649764817170261545205484814076689142727517866376767059803537948748087207324290895910506566638626670018608279860788537864467725386194503200879089018902335379624574458529679614173567165311085953652282268279655363467724098562101838257319286550784483846992791685410195900718655649814016788316201928113664557646737906197891155498148666256404859168400079379911986261700270642394440454214297082684617139691683989204515329868578385654808904196325658030316221334407797069825585456407081487601355369262671758043087909274543497085427986188033390803262786077066715785408043784486233499217839969238806486446580991649639175021259370817508139397417243134018082671057178993093620826538069301485504748094687793015590896643369115847147804999084073705481474767826861884766183412402561149112649441130821170331199280514867555116053377077499129315102057951739350589688247497249389913044557127635098208420333427760421847043152398221701448793455832246198348596921497287742000226735208252838700620479825246379368781153897198200966946485026091657631358805487868330653290481056318299285720306340900621185934237884642026525150388153675765955095057975906040807608845422761885252363826263114826849207112612807335864064755956828513309127929752339344039740320673957042734403164689241788762464296497994582309992189613633369779990756716312261558424062829198632934882015142682579216761461785786891788237046874124290641826757980095738341027768421494002276597299748870255337690745098297757224424328964549540840713173288461834994511781274781996453712597540157490880818256124205693036587124170279097280047537597701276746523609521811321560219901824615896148288738519940124741471619073423720299882777391218160079875362404447272840417690876616384224485412461744267743110766666264533608820701731013926365686821124710400746167558132243685484144243594489037377266748690536457156568433349158098575106381388147286405409839209811414283623282093445967403396537965334677201771024103968266223499511236379043745762985206500159880763235964726308249592979510083787432176103501734180796564128351524592055076639661547725684215645052496939026032219439453031441550747923416624136148980695848443302500781672437799393299946393548137533636682839646853443537192583712729375588342191204943683297434278478962016923451309386096829293645286200884083975502362526658572899259872196288265549589674547554586919220686132396347788298417015142243108258298931185117290236836462777455222456220194732007672448481290601255853688539821991643871711446644927483640236296327039692804326031293486911112292974879359154772016955644761318532141973640451453048130913105639962892437877140643417757340680885007162757399135109626290958961266779899470068976230891877473434331935402417832111650271645165123736805177979745387486467980701407623005861576302833706436296909318062028961347427947923930961638008441835355825031630766956800855507789202309982516558969042412128181137121287837536021906339839324775441185312890486527341293039491857838010996640122042513847809831140798291864860711295273471884128664098542232265353555186566266117495671496249929584621563671512096084719155490432712887985792473567182721554685139944803306084580200542596946200187192670449210338142605234174470475276946387321600583111896291108581724982167100982581837115292965156245307798131631771157154969068969381387107566880368157279060490171945849381936097021318136404003139632833553334222687870854787428711775992734434971168676766300610524844192384314809156749983225659471657505067001058550660322497648605735586216661937421802634164209267669742828604813779705545843619700811266949848847249437959360076449390777527057119021234438204926054802618008831116272980931494088544732548741942175722273247628398836084155311927775793162769716712701277070208434279911592949617285502388586600261443029977583780028432688173831342212436028223871648731168936807248492607592022554122714718050399326450858228719167544872482076383513963748454085445259814086844019820048751782272048056344379714611339008415485625352011838592015442048956207989983063957431409188343400372776121030880262221170987805730329229327995622846188134796349500953759864216292555742175315954367710102891145426951006948838385225488809202480076529424689703451314628723080557409848196948944940498577859793063284396188650510200371941127814195083288156041332599371492195655283901533775131696684016165392874155011128448779307105795117298360042134893726442845428185222196048082990449282328186889806923745346049050101718163513111841954062364292342588015147136879067484275768727919738913592032684452609847356331447092152452664892206106450836840800817541612756149853182005523704314345460693464838268317076833095492360175437659133130492101200374273574899770523588142855508535285167500080296577667262786636543562860612965523834684335752496201717162418977954707062048579032503536598621370465937190887811552709966174398011072885670534159200606615887084883816650776630646300264717147689282748522834658951114602246808443831617640658298298836387774152168060482577774780239764462432791214105034989227920595674768697052330315815786829419921398223561110451230165334435919031617259647521633155040718235553231176660432982103034950975962467425991758696081114201799713148375871641496292427105887110602064000562839460152915700758846229765193040385493146745230854289356860355311621997070484257681310787875945016859252407010406946237903506894504260048884252876210876083389297046009538364377537145923634587744043397214641598296695029411919608056205029051411907573525550319963839986960440751079809424217928466450766873653009251849127647486356383996657955192744387403359024757956630185243099190399684097906382027180433199113464464482265903950669118998464014692347594958998374887642089168844393563186555037171916237941525611244131325477186111399313170362216836767165091314490339016544701985087951338884044032176727558522301565929073367588915746791813290261969516280286718600019322721336214643857703407423547398856185395585908800405573696134185059084481015720676335541782334199580501256669084350008859538586386433702949689802291125023962622275011256781047106598075209008292162734707578735163765779976311028178502051766575988111910512620322302040562863159511641149756404012421582065422883766092738358646520797143668866170498405538477713363594531913185723633912655785746854317406153729412049612178547423036401526099496819646466028783233037864760835552451269895761271245984619479965249660333747076363630243751460928928610692277705768635518661878951396974621512090131264608524594697199101199785324066674660039311525259532479349557251002154696323069714828834859227454145624713434945670212779492166934371240915084470992984682909894159472006635973445562858533304363765860430195937281159907601321735580825237394073012426685543044388532281661055499990218045693672097385266341229439971557292512586371620134824161646894790050158367675265347036019686017842265207561534817577646794977671966779514335632519277832926872583082794679676172864266868290347837823773095516919959086222293340100493979408980248804871494814027907661471283502563005936947552426198727127243163230946020127645479408737491656912323005219499430584246573705090591256983653104916439928880622434282435188429392168414146243696086078660260066800244118257101682809210310382737989399479593836241627531583753051392846238261454987657559802036200237142600488195644077073658168617493238954704579429169365164393458825783069330650339109725081449786258034219542921150028797741028346655101600707678180506979205641536500630970691016301455688389053117480154214131809408109906217068335685074868679036128600704103543515337106308371118300388780997573054270033722189457195236013267032188433807412198956522384031703423430938161187251574091440409463848624157587389211536340655082233532663074670440738091869660713793755277929833684011240774197891485747784463057546261245026678900549144264320236081854899922498374267491603676001022403902424441029851123863093031882010919194423473510498654071279919561324647152928033794977376116057145277995157048705433813689888880568707494548227696484346399765484778941135706544421827058862895456297564058256885684393508770771903613436016172452813874901456744509119189662510671238629940754397304362547127914156953507049233736092109452268619777244398214138281016340579995483835423243316901089148246502016997695814449524989995503116238797430120166055612950170872076440461614005797504333970383281554321976416414459364217737203590561437835846163782702439479092453316042269397487112310968145617888497917346937602294441743979906727234407845222177134816799873111153921723437808641798109462543029776228423103632711826439398375394022032745922097991526359372634902765332466138366581801904443342071563242315965341593131040106922249689444976700608482457100781070207786843069471761029244867237840922165976770566715247474463611956684130461656713235186210383538563069915334617708281749509691276887525283608950027309672868821959820164190760430512352899603745885216302891373895763856377498605701899093702606329342855923750888836542927900851570182516410101464610709263739792405111303176421024092251836124346653536587519342536836807923251547300015196061586349776506802072385229774842321930290430499318023595972015523625579036169762978316144826705935632911724448857402398863514035944256770688441783321243839074794349142885947499172634748080403375737902501047166788689549430516606988768382808672388565642799551674845686330172637694068199303793750172027624887547038503204400847609130809637371937160644703345686814810934182312589866670291136391014441116072422337442757422436716663510649950964657643857854695395337001300503752934420149134462051611021906916518574684070071663831255757883471441866242679629374362705498428490493929826046675661737484780800660533478115378988480001223918055113052433864698521347188564416881257311598695165248362270123319411664329837875199966529871149651007872300821174327122836382859187339288158069219709854158951963684046649077720354864411587630170459628321004238251703500605378737609617459302626975511397061972460193177825232419744712828877902102273702713859434722500350629798388706604444742811865630249318514348435198792702290643854052811983300655156745310886074136572892372629710963986743582438499633663550948528837718597333572858959660029476482413185158958516031565002612821921510696011801621138994686288736590838782227388265050603086959731704535552375038137839339609716706705210247200124576915990248981895104004824201788903253191458698436182662537390132431973276091993823300966833334099098532029487556598724995208415300025293776105052295859566095135383687497357912515241196565785108796707785476651355481345399512118724379209656746111922768178456275028781189778584836838569773433458488607954220718098560574448843841150262627122423946269458301315207460227141251211966375250372876569863371809996507986431228714394448414817039389801212224006179251991879902016901643398211690919936567761331994044925744362832315729578782846776713061990607825781574981805560722197727193302450499538194291508014425712319053308251580516465657723029707036567784793893732060620623603533766280144680184309831844062169219821251079379173870639954675111207186372053099574630855338151241774320936751381658105085095625690685596730904102794111711428934136681294124485834585212412241037232796557119136895172821462612106136351208818353020819094653769392640516926762267110626864506156297009790376425589007669765069121346224677794544604801632381869739343146843279236654100700680122310113514858620462660981268102305979264919996769362016348440538013746542962247958883238791649804455469005154993212925558431718690589692255356314393045847471441005524682705229503111957572540776277514247142363775017778569004999406861768007658760366756000996401999412394014102145902669766536344714295150532205755637162662221581538801182177813008775523205557536815566726191297571799191209991981369961999850210427090299545472741158315866553856465332579839658179897996977406254995239926379229796324816930037588385985562496472252553125796179987973466744520162097088665315627440779398374374365124689050699026198558530013019431613340447708037039596431772034226629770212894276397404616591189450861035727075278720060792676677456149787661726089035276486521692005818032060445406208099582934464076252823251005913115152608920363681680983798739765255255514188395023580295135543546041720523398169558761426945123088242255665645592327884897785902788208289081178883993440148652129416828045512403915952735697360296517615650146467215313362125779179794987675375069361492265674096090789775639096178879520534919005335774740275301895244216261853001407536976187814123984660821897292757109417959748366093592558110111792712246570639629530723831390275757544275764098028022938882159027507371170737488775652412555779705892197564942879130442297957530832377281791087202247215492725481749303906564145823933654634215681936686425596764104460930227814469906427061580993419958203392440040946068252192665682914239120976250528748349989990031736271808770059160827274615408796136158009143872381695774775790312411966934273190706628724170966777784614592763505510030917944415259011416354103744023723076168081120605852789542304727603972436703342514935912076409822453968431359027053331023289042656215132649516307627883849363134876687645226714455861426132942474443791549774414661477599668509179778889175500888802003927291001064136450024897471597171941754993711208558945855764490646857539029843472262888619340776552371532028391255653684709895713197570566817064229746660271190986333742131983508873449357421668195029509194440831374964931895471681480246323257926144795465471369542644959339681350457021368417226933318332326200677542239006804299813939182488277547404527052704561568305673888431036987638288891623517985562984460781896068750999036264211304319367205480222765037089321864675926025322578972212670659160995039124700729610350445246896826367262388285082189090929777843951859903714557267602553106400030152100983819095004931935738464432137728363446298798055785328326946717352081357957371665733835107234989246232859830690198687832771264929524755015675417502598415993205125906528530494667501635851454233476458071675339200253797448844028450217636625752249015903545907752761994333586768523311745274446284242325352122254566302741876096618362389236479010803469638782260087587478963618498419801787260377582767848022083246911512180337496974323321132123825871761928427448185659047899690748764182263335292692765872063202422776645591258167562165579054963429301460104069390018511823021640946730324359850175800480071717469729720913135805912587022821843483756406771164653850168699537493614325954824337335573885387680579059109043675475561062805723359388819522962140155283206974418784274267736691746046817528880812534260992569292783728113705561544734644185229675727125696351812524944169950272912741076822778499041360291406434800129281510545655191952110004282715850590129932615804093810738216023431734612709399255928029152437486479731680350047230744907007615374266359316860200868688553887575066382499006794527380600380250019253243457373785597737189588384582976368850403283034240322156353594824115900435544347093760380145719697632107888941695685192403436606805163658840468721275096356072764978598797614500215915862208761464006359568140140767735797696913348481501168013458160894747881557232224239154118080363612291903704335174056250270999301386218287949051342910298955939096986840989247052306979217007280136134944923922244292531449271236277694853029818782927294233404029059603722941795063423973192401141224995819947094087994823004578131774367535746959088387563955238495512863557433328517199343089406196346113843177733793354677510014714776757134905965568418797566091651780189727590397663294033891906210722719904471719910840413531041597154515430068448220134721277096093174008282293526974700539217733435194391713886432103236997196231246056675915669115198514156024137984184613649706453075587747032557815313487608247855832075217706676701152587908564462122697662631131664131952749830588780105638380429090614623698644971575595142463365503784721151656272121263281426527444318563496803167899054988942983065722611285772602771449008796535839552643200552366628400850741525772300382783868409601187036002599189012906341601777142710425011812334331780557532167507612744477329835476576235339518814896677256568231320601427514578516817738533377865621080572732488122367504974394096308696673054499510750400152072219435261073213739613870275454080366670156141369631753607517844176960902949104152997594392924682818728825660200140616747747631389709492505628228069376111081757274987877556663152675411384461013861178914421860102833895700563879596439877991714731432230503542561130622653761240156390022832830910094760922819649165882111181535319401063326018643716297163784141005394548233262543028095221410461032158291935327926119031260053612187467921318690626623363276922201525751092926717197869631673221290609034728150177803135899972339043238787264870115562756807719027838913214260253123551113368721668628830163771480267939244898680540304077214314539083314054714717645856254149250783149122714600541811056432148132650410278481458148455410308206447732941125949177201635132113343980732072415546729350886426586338960843005555615129450345385190703605879080649150915540295095972091308945135923758754632817496123231186999856352042977790399043749560999091618819196675856907241295105919547472825597420009095765008494813052186350212548515871343010646451740734210876702192256202328551761228512081129554881270050054623034150874837832264513807833427702284108632703871050245259857834456519978371967066627562743735953967992764403149313338476904993488374939592446519073854961684252779080160797585868421162510011567632753515340577269986191955537730366903563765113340390137011220727961603056959702709739385125271264714064802181550045225939340541949825421854621957456981918386160366161802369898281920548397091983459487964228647025520580947263042910076946090648815714498321137042717276308789174313007958341522409302898043216570522974558861299917386028965257475126082120828109810525170226054721296279542300002085490141312378667441532704224183699190979899731965480509972830148091153484714364743664881149583155592788933640527671989248088056748938227476469806656333024762804083800904226822328560254093094917441496761961896174474314770706344392991594404999931542928388842175196440254448696714703012250412750728441077230732573224305169662749605695256085806713522309450505094991288541160248150284518712341385620563992883001117728779372218811142585502662711920019571256850941975966905745975518287228042353353594379597327826936491869377827571083957242481323238128635006439303298266809843388227563423473564895130152856743111292130309329903955615233116431069549879207087392869608486916682706582055990099424983961066146101510269767960079770128967283343394126339704983010822739605518909614569161545210781480663385891632699757423779096173172381711591461490076718520292938662651933041139783224422402007507540301018046813182157004277899070820571299090865601100722128898276635303094317834534722424365843048066589561569662876996182663425124135431282014390734732663972466973568041926393487099501313374148266545882627121319137790256102833173942299779643571594933687390655022665590527356412669879608622187373591886362798001365187730426107812091525533726607640111425065559698855319929169534269546056390976417170209061414608179085579146292706300330694926850786247437017463599887783194787016977397043418933882154937867603707750429474972707984791137171899072400943420836377840507488377760523769747733796041839542745247572647727236645166610388874968817362862440880316830865426452563975830461846335452287261960468975136018549896430068633047502956314293378506942706319223843288313684317216670646482740265954748108090696467759283671278979618028651486785215523653285881814478980864709032795738591519833075979594526490365617870128411477373243903393079211265251645069051791046212729792686391739689855720666178111322900592028076588780148114131652037729580355572526630447135581109575764300819639970858429259409496037750026070465540361462310882642356575715333227876907812638714466183621656812019063430544959950603518962257314382210756427303102457026520198672860616849747106801651321427620453830054276548967817133603441825171999015801879655162991149474019359244211277096900031188102715856974266428953876058509334437480694279238804147171550818745335436524605363871276546074901128371751906346275814696225998247916397201529789994514574236787864192961786560506202734128182785573718663724401599350749987853354741751769376935899822465560364149399527821145786760085077700617244488095929225900878128022106947289719725127048200995799694339771259035844307140639558458662348612425322524413461331545732364996183095723931490020643299928922839371565921317203946441237054319532686088684432310123144723844667644034043918332490054890823085117102378032731236442507705295186482016152106324929012128978409381378154035763346376618638684349750247795885063176153499294192846632012059172688692756855845021839108279506871951611874140218527187079734161775958502396792551065065401129727705782300174016678689995217675984942211083141145990656507675337805372870404916948293564495609302140642582051082291076676864796325531130438773354190410169149845197347606153054104758691418625788886964650889863156055261964296847118259922682825587340058984231375799737842830808842182440341630176510224293694076221402412564372496872473324963936190023484248831532746938526978072111564694612843381861316325697445484561109422267802166760544963454883292969190333637755409720203281215182449536487892455480229058373372281237337139611807233828928471807516400749038727988319812870288998240892729876980360504817950972148447991103597981340694156849802985747423781585313985674960830797825209729472697065516066406995628869680086130996425084054551768822777110018908615000264394322710903384127802515238013374147695718871886668687887123243302322256432035554813985291224111554262500167240180862176264512000918463501326654179185251940552765798081600185925624812189295201773046104401885735639926203267590512710531111517907463955508277432057890917416368648993110222846626819585757834693991208913465480775827121193702966585839569852179351920757990537005945065976620114599806486137561175256911343393249015666648796980272287030053350999016942133562565958003484171229108509134400613622879042057356775070670176960447172369857575872809633683869985448598719680915319880521984189991937822919254065324046717556263451809475578091258230787212844182197785518557682255982335394210997304418630023846183411081528423840960959292157261696032376718617508130708440940824141669272257933717764857235868186689782299158496389376122825062440067253056145309520061477473298824071237985506696540318548797707321446002242024983798379331673446968375628723339350210606312614756877546735984190386412164361128019492943898050510301630146936732959386711945494869732351766919965875303876570060177292981438669404989622624210105154116980854289732635116344785228275861196511479014769517558715156428079140941680344494583924744205311220585017268027002935734176936258605157768149621895141036395264100510873353878161876024033149261403759238688671737938441662406298466233143983324558793205544233979167300659071202719684255727317685104985929159444905555477504236550739658552005658145836708905257572550791507667834803784136746558284267148929628546824108736554959950248214154260850538211443844198760885042772212086876009380083214916588124201251099483981744499009836476333418548709203640913253410889878962233808641706133730744858143954764178683268176040967647936009890838436370629849055770835338898721421490903990547438883377140209700683575129522098798777617331621615494441343131540999101072564773414831750954731718244475783719709074850424254780658509362592258600854325011735224902230475899628232189675939095695882814199374255359108448214665699533378061156922428351852075151805012566495912900278138938082665715778827865990510640998431093259465891252352834825162677895678608877474382918367714812145045471487849622058238449180444866060926806138992076674025871499544078499894295961909441623681947068509727883847445667980070359836248892146073707305094357589839825985464855818082755098440647574825996773578629959488506285056378527180028300632929987432503471501609998238088695026739630338361525328255642325619645897262670996377280602474930010659180475498777530249411571766957792810481130697955012717648260607345783563320053319486220632795802231849739093341684725647404255783963045134795560298426923621701470802616013226661506959996647198537275450492484990285265584505775836919220292167446970521284192671621412561155133826083022468859411435389518645335259773342514014070070805372995145298371566041483942819184264239883644452582005839624150085730104379393717096887825219090867409893997185002455097051068793015145700653371483172079138818421054725373271100484926346998006953495670636693140713261246520382021168077431882407314082315975701056707839294037198159644944633879381250443788636332275212518239906687165691052376093792417563299764104715731929364090089780470063567863206849796770708112022424355280109226820815095913380136246334825588313073726521623531029458738234459670448166780852815610293613057560272582564947031076598151135805544067489577448949139279822945192836546530684639794611881321986826474593623897521027437859452561343250333658760271846976983883081869619661580545730672203489249914704023388132308897591968835738430992629384939560748235234694027007655826583813651704140338792410372556013988889896782250290178489599071066100778154266733922122847433511701557010523900691405961924711519089021580654513713872515206441607181537277576320050203598654811850372125475238840846974314326784303452506264719995021943133990481525004094536824243738705442624131038520111543102544171066875379329627372387960975833315132989239342764249875995128974077870375364881999279275954255590746886895533791878654806184936200243446081088931885127357540271372277794315252741867788271476948689134357971897507349542399616097723618650473470898556817542248600001561319005545399175257228649037553412703505672551402222344043667256748513626512294574658005449039892179277190995250204810014231616336679189406305453276788902816794911122790937137024372235497763065351783219960911542098258283594779957018035961971125980424492956925468429048395529139851680564119820651890970482800696590687858742069276106013667045107741381428121233032865029933107856545455162006685057980262297735483225380262265462560892737631255067698753337111311244965789309834249337356367844760733760896464631312314665661545797805819261846867797531562709265597605650842085168168323356241406604127239171645736275694944488916294265026145630721897737294994933803590135987243218550912200996099832527208812326124313986163716057317234062755873318392756669312796512051377626711491892708615489158208748437738507381375519757710405378105590356593485912977062293199445632478271202732279015117266854883643811850091659239953937328702994287784579445224883018940434406578321549508522020182275936485294427082488687090680962574867374352433618458394980403919755644259461759641716401024611233136713740775143913554413257376544956486649598456124777714317275644152251065156300067014919271813369841986260949031690639420319695037530588671946779022041013630388416182524987589400098227761042472615167416747328755977593285187087521538873810438371847512148787124462771850188421013576134136680785347850170203915483877352215732593246904295814431151889813091846798211796828452235528385619553416481239200096490445089285985404081865621693202767970821907404962598837816972319263279391858442275618138307754723036515831512772208996577583733751174137718848945624232100804575426883797663509135081800530965266670769193565521707936036928507242165197984559239678427236386150634400017723792180960697717736084295723292563577242252070054887372362376963293254979362354806217537513262805004890217725237995948237649609079856574335202127085884431115055136828581198120262422904378039900052516873907121406606894283539649333011742647409357775453972701087327309135624317781031747893803691103445176468825494671095059473427034295828879456622603589271361887872691119720178105057498412335346943137141369647278881212390424528052075868216105606834559010371428988598280905226738055827234711814728935262408275479009139313288137964725795157219583406899068579664441376889251746714158502098245989605660683691486500057916881871048817810332473000743425179134676728437533137409596760652487808010615884475229001735891088241817030704575827477431560466033717479867564612049472277691261985464337553448117628972609796214297893723052081372926792156770711984194599883672981103037621803357882078347243396705647385387038852912662083906511102815413620467832910895388490168682567985602433889155276867073108640087585419330082986147721238596267494672935430934352255830365999430406981849582300153911798900293448044297094156466709627836397087537103022626807193202909852207195340112659066512414006622209846697428491984101324252409965905208952383648878708341661928214454372492465124498357785063919574817280685143299067220901145249724689173021476296060707143031116136563425861061999023614458898995860664478406560728091752794248264850308750644483236770990262975778601057650463152251382297578799203520656637124303012642189547001618905343025625286714918433366934384773964500497711707797630638657967925108546373081820916582984938187525113435958988129587902995767629771316247418880749938448112382450788710359111543730191300900846785833851053660440896570727870016058504622986974384156509129866347191593966988546455198375024269845231317789834763591402436424646535132785565255564124278086835367701709606593296016667352279913159879933064221380232676716852789970760138438436658865958751534744962647662949755705485706306597323398106285373300929894645997643242455824462800439790812863956088714215840132949188827711271587616402835751111528228827305134142028608309730888949869945226962218695234604611779407686926391432791272106290961647122666370665062478175174357960276570378023228824212269175736894208234123125871707828115118819836261593258492872275236369774629877322511691021491016501086587222250499977570063464090319888319927854700973505201235646888918235959661853603500639502553691785780619361243172512496338485002312513885075698432067073505062652668396680957451384732675124887744702422878472977396593783918044624625891788847861168881719473489739798874673843695960054796375080259979896228882649721187640214215348638536530171548752955653085309251767758777149014523870385179272060860823557341656452533012698419522550743865216462954619630641477103061564924962291006268068443092008806664402668606209899099006781090316676928548067419869941124282024440443840479307718014210155220416597147644650194523491423520456281054387021449270048946446449895665359319841291352285480191534360102397727858706188666985270133379786762032468414456937957158782674848761127465402691160498366598553863659025446151109094000155988048295704327734979904861153208553688865661463586326063615044750707876957034314803134856697092458811338760130965364264055434710793571659563419049604820233253421786853889964002510293702946424240620285677311689746429788472748585311707430860621713928162957649328047690675274175458310935495520281079217627799775626669549261042640243515208050928217141679767675570087079023340157940983839883068127554185806760539079974769083250307913081936632371264035533239123002203578282081127670349797304922411028503275641448047573026261577395994000880704715828270256565430548902560061903834519691165330471250747935932606864872993475457823343573117960918517109354058820670360807956682427401706268600064435673535890801083173512717080556736917574644488205510329713102755198652902893579883121381746920035695399712307287444932410548367448997439948444058161530066881366705301043159670282300993818370880820764226313809440896050798356788635979352335122278090258563640936749343281811787725620741543822452317082952212531770524404389905796550425070181259880751768239260574121594015534933952779874971859416040321016061796348753826268271220412158318467584790246770008882153750953294630379429534220060361637822467586961751828388533288480821570046176512861967556854417313945116377350051956934090573210800233453622101460905775808371083585495529100212825078838132895283624121246033458461204284318694100513266098942209760746326962085858906263066750189113037665980373732291547664525914741825971188434757895537529585823563576969671602416024189069075714207594015884658186995220131391647130852759775056427316036204912677401789224561093058599140881668393064850727313422921055514069670637713513483516410162732298854818552514913421092069952263160547740423678826729168354186585573678005399494262333686572933826936459538329779083913917900465798101387167414412432057876603286955830136669646478821240318910031668714740964192594366127292552233378213000995829506729602912518320576022928245145511995377397372525631571936179651840937085284687957440882428099702105611582648325211004885950518659310588802919161113634954870890918141183175008052230553290653272245150363440088979055207720547293208504663668874107680847582473741604578568486554642860745461040726711084282382369571286338522651394183619770414437302547846700694356504174352228118108795637459934789164220781167515388269114417685846513015336435997249671876978824389857187828888021847771031475985874981173920919048909143398673015583377345135526066819198345485940551966046137907385140210741575155995726612318042427424084495966560079262837627121762187019947448424007865233640329806767644748186344824731736574681593545533812023617151740834937039657523704736540637868534209199733855559377496864814031198337872369154778425824861407622526136894066759093289824853029816702462697158445507669452500098947406045487540455503351367123816529966568007907994893546271567039360460342151365687098178849198212958094195831162315915944098849625736406903997110328790910772830741449564014366798452318346744467875834458993046551456930559397359622443427706570652907417619469871101437388883560251210506650838962549610739117144025639781721350024914844881096925305353483062259465946900331724243533081488157356314056634476250033971009347901477647570563601948941931803233102003311094637429107371165685559983876289697819625409724927556043931130261675617939625313035308529790878480971467466339964689981581694671753474753424939869981449880007485941015197571099741929202684358877193694396623116461341719030874073969435278970541022663023306250676095149849892343766748882644806979554946828160389474183757894019775822301338209237019907354510594558433903313176896010561201184538194393863114610533837090190834519770594348592222269075461135255227672055993808007779221224934574040074007954634829503285554262829036229683677235311971744824029035312021953156088794053400385374094761568296431153566009624277075420810043968444300415123175317883134290069096455528286042717840985459548810017287257002769857038139206164766703313710266479432259120926065801829238690233691585685878919511525872496126682030080312893214584339441828001839733603600693610288282139542891671612243921936663492697178009618863150607119350453667990732868201134345005379386257516831455881188259049247555624267438639116692514604273972081204409670727778621562533822697563868092072427520193481566259667921802109303291226613305747481173700413801490470081997513978093754296945174471230226204653407758637040749545974075681789433889598525155187914839563223023540559454252202328701136806515560275748423579306083995529342351984957771894658565348444132660369175537541640788057767144250056036060368565759219646605483800483974580724740785246989616077208259257711240408947808894430623299878592661135771998931001765812461377703324641684653903220288518423082782280746060397577320887150482404830220551764706547387706205044925564056378424325969441057010491556016625431432882459591254149990505994110596422054321687438597553125934248369009414715006643892068133246693777987074805511638053001080034343788776187893519898013870820287507280099467414441659287507739544518742901949630136587761269882505136906359295907235860743909706246181723171783037762723942473297638858602411956762093071932024745003782597898367910224322487541550615223378609910219181610422234747347987022483583260902399819540625263630319654193859276482628976798483757964919098511926118637746542751071386713844760546438687689634127430725980046760328915698445979327502525865432634308205870313081810288352578019934097853192394072209511333528363316673305564301119370563903730970455218406281360139630294147151363710684550281929796800536452129218337474975568681045847919440877097491627418495833209250040160028357122962761140561442027573081101466544550955069393593753170163343546192614020871319075125513928426031821561016224962993961609866103220500581871224504634868860191250794235850548908577518235955144166320316270433259261617133829318037109024720016772500939026200149669279892513195082701231359756617664876545279264990925886784923816424635320054288081544686071555097463827972014865990856971842464535393416696950263248648176946822161737382680450887000732382034645907487972224182734120406132175680933865110687252374150904271737046542481186780582504113235921903817772264555132890220255984312896066557923408921210991359798040671671692833312958252135449459817677976639184897489976481771568736061848535754902724509939195077053938984206523655218613375107801783506093294941228037738496837187371331320412342815915293250703107470647284677176526830567160563610363119677323262193698177072342691849486124568377180950261947001536834827670934845506779135195861210737891187622602670827298485772275007223955380199795446036065927205083189387073367254479977443931611509782393007959097008207665244632292311468667734340264696451171889286848525431355340186133913899953524948280541018929627961338491649003597976704729972999404394530374486180728532482538780299476996382791763177542371512073347581420377161933632698566917026831542018494326307556370089978618304413721813610729338119711595810252068214855702544149565014374976635918826316735870472195951706418966703566503405334253513388333545795380222469950494826160564725952585370604139263062048257012832503683657842683227136779257834729898106773492161145864008906751732150082606108533920118456483830519757157910324983140942566328521976461712666559166456222325897727441605002888014091918120475210686894247423176629749793779418287026954769565407749215196422816144861633930123282223340284799407009523287508952474707892196031238708220207021701101506059686998011611325727594294488211468164150573083375940471193668151085449289860786810969815051053124749291934047785425535700712709034642040909295885358573234016188660704226160916992579666012094485065466372209759470025224472653467374687187316065881167412510742471072634162298465475370681545878248892153261419312763410621719375092767798957323417233298638703786466104816188026187508674500962440429025031431642365628885962917308207046453886917576328677667409616268300287390492350012575869033369423678140321090758190163945772827199826917518716195532958226398764207212380515190134228005541296970100750643755600196262743415295901834077007596035786399810702879243970559521898663250888363123957182151950117181503178324299870419334836373617201201304306951987910460444989611064620666714750509212172598589531708283364818192176242024799689153953353561229084188669390833790548158678361077228688416807629192530316015631823351522298335113360341415397635304064118526013115011251999084677684829590438795645373247122424132704357629020478262522405007421132423361522590913905272543661963822661040491267929619684430801154285344561618223803672847681356444675607582946594532339589894636486320431013184913246158927136835071233458566043538015493679654972502626363011557947976634507280957887619799145374223542237231120960821516543613395875630223102939498373744997999078565421764511072056115876364102591643199231061127071768727546018579105917814836487442271465161950196650085533301915867203649344000821476487722920256344229457962107453430927964582588253273927551028874344657559502934624035041653719718579640526913587451887789800297178654871262303654398993995981440563641327395612415872932576392630980914379367625729380811102677252955100246461271802662114736194055807335641629322483463708878548802777771860786891865587186128178195584353020075705715155817652938839031260314283032397530014255916994637511309722903123738192276165410488304400655149075654020256171393324722121218871083304411916314444154976960274779174940520497194885958502442897150773708480880050526794966909456887389677134606516178622575223587454570103360169092813838666484573985905680145630042918228862434864458066022398279141032597789754089222023941792456342761798692860629793353610003626121469383469589934765075145111364261989847244629890472780462871848772203905168751283089795783456011713423856750874079496519869719379763417459756261778146742164358296281716243161066241842872250046219624329415256396076627024704505609559150581762630174600079344232065286424309883519863325350541990899567086261467995878820240570111689657560384643897512573989182910545879506206227401451161751490079565209488306445880757375479723846679698058426578076527673856599765088254910534490442316053137381887790593001950674892218588005759420381719260213941368306124432576571381374691528544944891703096107773701483680043372849710781816233910555687016834977328583914927778420514783881933896822947658144915486225073802676979782063048361826124588758776408124014694293398717719758774352776728372091460883956896914108548148913642520654769096918541500437402018629901097964215844883170877863951486076660763459430641178283572930022199339694908117183454053961016793353464699535784229667705480805258432912142841392516854870914262424064156497343740581140863041226095611957064279281158348598709193065226440157041601747787424379043910574529441688045121775157797295562555028673126871505071611659741397689243936885895009844909363391932739293212686804934239559221688195488491385803581639800713485065013508005906026064435428503417332643994488345091607429577533905311787392261591668356090631125694015789969505038369619953216369217871217436809375578097567079216153902741674210940561060877644027679429089126614281630178775333928527028272623720104046351435208032857064699889924076400955590126742968076786194476850328765338598445319801352102081822263638321200997863228487832633343757824786716120304541311805622470907984209004231795487388828784929530201547146392819081769141771488612200501375449827377188009410531239791856899762828180711290332671707211631902737699304045220314023995550663927887804649896755164625529078503112587703043124947595158811565911745495652989559375903459033433856445530032853300350057070438404395660182084036429846703525828588247984409485420648458210567000559417171142970775697590228396732738830245869576532192832200638343679024668667034495232586602344545436446526777260090502836138779269026956527067475767484824986563605545985807580136419287031488579873083021562088040116757948025320956244214588817799275590026758607076680563938549008095204628600029018417183079822219769618151086990036949188750608842624966163886157499714600382011697018317457261000412349773506833579855730198945986347929209623622894716056921404363052389190305900407924376238677199549751062936667216819229597551130601958058869686660360870529198482795188179818000619450330374765890714690837764873426429424195146867497558575521691630695816908525857466320944817563169853855756513177429224169180902671163708344838585362385681013524078550391421874120206310563740713986705518375053131597543147119358574906809018638025179991164108824614248908931825174919972056809612577808620826101436038133791758353186770293554765403669619612339892953314636734526572969799853865612423819985921048976196864914572870937485650867242356106817285751089120047885415948135631198877853572353188986963751476721754010938936837850187243168681489633306374301593407223819220328898221344977278144746121454667122618478906123362982248178880067072293434461249830234751932899965791188459511224590694195384808830081681853131907526093092893569495208368042611381289904681197875561292778274621824793136891226528159988684348390535880646200100940111061687346035509268394410304330508915468602132002999525031433033042963956604480129255861368512934779376678953150532099409068927157186140659462024401058971536147244334176367609377837680526540611705065867487518597678089145362648653448916787553192464252465737574739798368536905175482986716441764586857611696274991737573949600785058559004998178075369180626624949194026762706431900565778756736957446591163594031040794088626721465260342647994435253524211200499787230793232692607167852313155587951773355650167446893390777541636711831391373962694055142663061566342094979425618647842547412868041300230266266855082831700713617771066261824946634583975016925545889245671694809097272168170989071222970898525850547643412078502571542142249852018656613655027462420556197132691413709810273691609764164974488592360583729596225221836548705736502134878194080305407049850664945945086335756651481259896494095039732637103394082063357319633130300635942495986023374028996502218873140192216804322375048552053429126207317613111483869660557640863865744296594945818245454875524497726324929257678015525646409804980066573954588315581597579960500910646581271811722826499546055040133870553627064045470482497319756144093064660531766349327625800573251745657058933762368466354232845201423479823872135054476460689367803801714962200563220291869226360397621389467437794614955011110547883602050707306857829332180685300470791383735676476512479150385508355627504381662252555414188060854373212076487425019559263835824792632501482095805917416397314324120019448824390347678222948844344373871905214424476746871503322905571710179247678374933427771693416359960949579976662903566259412788486921069930829455102538224982831222036029759903300819397891883554349246871556775664548301122072836384538908678417434032108197407175942697340150494825149734020746597021612440517330310313350457351591071030590683326252633456170843316927275771645746415977161876601096330298416911269063508757579707410523930528835246425039146400012682658944075588207943826792824132117395355403042418903533258917568254206910707936351091933348843269282621446624072657268234718871923815846457947930451966704238125140764702646841554425253295463422737736605497795281768651086582891249875477724425454280518780997909829951732379936502978996328260510870119040886279180994132704440735600684349619211111960594082905534778172497963711170761493027935463743838543686749828060736443234259682340967172973074392642679180219379818354852339096495508824090718765693805516526131206809742088382629756395219932056243129287185377702416055627004762060815604045122609723328743051372824987697758134427813214767227708618901555343391950935635152823399054346486333754874699653098447059417078899393128810880027211911949919989232485495471040783310269057324604823278820696821122227130187795596624016865307961120645368936967419923516921169681143556625931386882643103515595483162369496913149638523001618197563844763465054940930355419389383951889541156754445728044106378461914398561000181472797665547442564225007217976466005646141678297712382583978106984739243427236503494024892233656316139333434107276327030608974583505488152549099772882601262905581841156852412958775243253672381792285320756530879772137136600534244769123256243231485063434617456531754980676241546626349759569088740015723445397258962489860404470522887379680969935121383474735950418911713447931581694913253775129084139748886417285792890788939493648691424026808904285143193591899536960449700287760824066345540356509205030790470840460409018305384032767917228121500891820519675109476489186904412857274514603428971366435448677659725143759854899492435280857785499023657820853574109395248030218509080428952101117071281317731467006382108682998234167034434151963238190588120110032164066642940719054629741716453499092833852272995961351622132837692110233327654660798465052175837936688774360386989694407218603057332409656509136357086003259279397862328227035868065624502170108190754502567345397675496099190661663587324672663952841387487464634346297725756519375831248188200833258643849666360620575441169908161216276540336235152106007419158346136260429683217431855392584885225770058558536866943792044919517656045602261672089427817282309149990960218338018090063945640535395001483162665747701738421438473700626597361373651969610757820256301299814332572390005392216389593797493377857592492479314582343323182675648518563334658479635567658434147201084710506904195870122430716902425820334095325965271973873384929840993586231255442883144427120337149492568137923933140414693766817936489726987086429095971503166309844003858321556718763655087276369298158422864371670065718248459465179638646942082897895049796985110350869495517224929229619976468088643691457193379822362777720990587093173640384529000809351124257972449527959350758237193540904696972722870996966661452775535294403230026589299431549026213818408234739706064089256235357398554507497224688096507426004774528864249629170802993726720637325117827589240747670885607728509146529082105898115205946147641550928884498206118010691590107724322481471027129628625793492707817632229978653108017828621321487050983430509839896826431260078753768533184578476782105640496739389852197671033991427127691737816726557438409803542465757417592557067916966344369865455122545138354026631476038158515576074831400309197034193843463111502964337360710223748411785044158615135719300585675373570296119553738729598288273261636171643359319544834783237204782578519398277592417160351956061858690498652689246991544566023943149180705334864016378863623128621342640910278389151844640262895691418561581805628841003495461727922751851199984757013578892872202091955473539375422352641442474482131908643544028409170342069803378855382885482383972817948258279556325308496158315940610053330403909949712841795896474557982143717647543181224660899281839030669814375881976168687590491770589145442057281921988303090838156730796228268432518633010483998273379590592479095017451744893386536692593866434238042978115778177702805218770380256935403539033491365100396696391800372007324610659520084762273636168472804554896209745255152433019423824790392882792468322617926003844932569643018004474934371725401762074714068379166716769926050100802209511629491564916742341985781536533682960628344155739588489763550584179294030763464987739565525432690544139352841341368342962935501850730215126722628704243466732260942937320810493995706369892022130864224228647609795486410387474145923481346531376336990335434434711383330764044958650099985488400004788698207997695138218968593274279728200879135701707903630218450904606319011795364064505228903193742738834512444108885506117182424466737358230199373442816997113143986818155936709406268946961149063506975405590679457356445992431016690927153980704179255546644043817703335400530469000656872044112732766897749919109051613265249789306325853164538615177479135237058455641542587586680231995946169521763216531801393771897665424623324473191461727453345578429621833251605440589816697972049440918409014693027909640158493150928354108893259754404083812513280152323938232897032180815800171848117363325007711916515239569207283952286238083092227231130510930796719356510613960929153090255751299119325140205854363483639704239518837443995151265022508682294043838079922762210363067163975628236826846074905142405921783097935033935798339292665058548659623052976966411170144911850575965987737900243467194184237175251779092907195809001583920909414942471179548381728962322683676670120107892012415271807546264471513773673182003837012495449551980463504256062781117185941287088821055615670281359407268000396836078065610184125726039146067277775221695869601358539768774082886770785159382373013412355692506529818359017094186998716038989100130110744946982037015781692516926941910721844424428332533358119751386365629174165773476014850221925674102633700394658088541223806611305703357216542239106195469812938502417714683258948817180274441619433189972238892284406441744057348893384958951633541055416694109478320586452805897793837198610260285371348861559364568214969708563064275292685542607567014962496139923213996330141645975043906932540452327452457692700956748124431769813434394580933183078166179902568489458070888515986718998114895420938515542899149857544739181534078918661292073368031134265248752709687769800174895479006131219048344939874360893398101296974362459891935442034064136310761438090868589528998539196113111034722173245023086906592050719735600612829200705621103333196079151948609763955222275311406833654453497437623387778526032792787436586743029756554770836965955042489465224479546870265127684575794156119751890213409572959971067663250764159388783590276476815103783434561374433027200435492417218300803634999574577738534840985150390403605414902973537837184991698721855113035044583042787816850418550205858591819848634175730947211275677497666804709812699347097055743638623694555389194509930666154325604109646970260475289579704012374161739118756675558963814369854320183642749479384932789314034955337721247313127842579412661226454382483271405716552480518905827788363649267575833953287139720299363616891078051027165312434748526816574058014563381088985702722886979250731438311416498804972599871694783514911469224921302954810803890688667072736629544415565516202042896952610269416813346934665402871379410080235207029169606041489634078418350619170534720430972911453938034366696026753064784401698964276564841088009481641010520793854281193638797568848302272031951893108996609109287679152512976956081625491993671848204863596084958391526930610970645065934968786521828982635164604955783276434587454323442316826426706126384478350342638967791132532283800975256226568070983873785563131723323164567429309019396221489514045153976972729826297100774950732793454153587230344709032812558091146689033755073654943759276599837969226769228699207301844480557250997854524291344211700433740668204410988750755394846923928043145213041537271237830307268608198368109751420852054432046394344391750070440717598210983484736866253900685415320315355141909651019923149799155254530067512465143620210678691011203802290672225729884716160614222696094942585342171662504006671805825968225343908803114568169267273118708094478504451983121444202367856557866325989686867483220209391480479395313436751053228924578857127555213671872617715948370986261468999194828215423357746819239226318570244168396792657043627127358741369884885848142240380172858708312060865421701838568875200813514042752119076750447627562294867851939980400917864465867132582733729078988873188870233719949199388584757571314492512739432335319585647007329501404354259784746741366504001021152852064292272876969550867246973134187927434204646068971699010526352670728376005784885351881566762065566430344144312808981889608325418580397457649147134719939346631128283718865942268936089858585815840063054639560572104418574531688486708082022630011748180552753935907462350370014077837714405157308796995485760401690641561366604734393260676185215243804131542393340013265897700655080297159202922052577251432490712124265599467361450163453041723430031393551152118393239123821861526028099563544566909632908576926362018879485960818203299777637649196274210117636845804813147270818450157282329707447890569259181160967719050630937963821692492139760118993505752654729118723340891448185851347291551073046100051825647406117695977149762206103970520535983203723268297665602344293448347496831815746810792862365804392284969469605207381206026652385638700861976244806577279469332814843665566026182534462951761148581156994919741920567640268750502309169917975427681162616077919431006730653486875369483577303117065088803539572670919784908685983034225157272635736135169247604945060448906940029482692345513824055588356051701596117644890433559537548871174342827846957484564038464351824740632769446546516243266279023277559848942182608582145394147311906258721961615757718402138329645096274168797921504159686966107618652994077830579449267625908335330480002314599754138067971062446196342871267522529583937181900881353874685834394597814750432771806189224622398173505754919979088355699949314973285847694591557909954303916491299814285373360602745644358757794487720570486622902362934626320706876350017294459406531090609868056272164579097138651949364368480606066357521346896791385461596943137861388012445669196643092293804254903770835694181979724731465655987467910971401626457179310331373483031796928461121885798917395954190033715325388709599493752737639961264082915397252051250048709964756803331960211384528647508331337252361638841896138997394995751585342231983688562087043637108407580256239315960478624249682658091562028738290042157824241621383581484384948891505514343878289618834794284873585442842130304483586389370646309506502612033147293894550561023768339897946448120217606516426819723575633874218257157756908177675973624880553245043689957118540360383070336606424286602409318576102759838419073011420739682435942167837232522763871721151295931822174471580965379803056060881058076980738263737759385434130295148935986766535531037234627589078892302530800214141348019031541373873745270200342246390928679726098114757115828593634596494116439960413778298722243987605752688563438362984261968907630720642156328910902827143447291863181822100910154410168473513707052947704159149783374891055201361349568169818684806242893523249130739738664957523120663945635897023307162425505619349192123564302905671656547149725717216622850306981368376741712910895902231681167224214631878099011715002398043451326241175808427270830300853817797035993912552922099034913931930408268519428038495766238017048226501158106660537238734563039215839291007556280778473847216693285263077874822641130532930996183043594404562605513515629660341479327418198786857326637267720456435308137950405768535159885656570435121255881199563214195601322419098718357511427824338887871168010404630418453386278227492970588343357625090455941557428934992157665457639226318703583511460497264820838820288517224708134132890094452698564944139067720718340924145955090110799417530334745438696312700825283849484216690475661758277173510777213781175886972938740397071553313402973066320863220263514007773236759438554013565883169475974023892774769380788644704891992286168594121038155002073837621114482248438325230638819794851172497915803829292632327532126359649650860994146586195572058080299659696973621551513616723886887558992745956110174745485794376671774312198455436622980144982396882567240993971970713230185476506183221419817636655240806407284295520331925595288059703015435917797685761122442053090495546554146109849695419595763357346247245034528432497837500801033529541417905073460226423418038992592173849012247395095455684505383680133941247203011045308367951405968648493317227178510622896777084314847278959290864472523326950048510869900125668319252780476547266366233974529284390178267314933336865947162691566804494206563623700817822604971133918018252858488504137431517569146991120911646423851340683837028978723296523634559743756084737861379348745904127731190337460328803079558302965902907966997835301845396440753462823872363236956601561203924366996213071079690325059112476334341419272969894317568265373244303894461960226371419493529131518801818861945504044538916264613198272684396464555881511333498219829825674843243546493263965156658386984008570621009736497775810031177194130711540213286040394326796562888628577503497157742610200211536746707001040365791903969634976988195355969468431387258835015696373722614018413114329144320209091286859755048368566306049044386328167883635032349752381914333644760140144304341288228837071329554922914335429409366696261063726789783031244810453903805043605155796854676545694155179090501881033446913176598408547334084290150222620711921194379813966554294589236608211642411557876448163669697547758167673142250149570905666796623233504628839510152703710968033035729215012015647889624480477156724013106390982831264991170287953990501023899232057271678943645422506451100504032919138423903924668950487941971899570539976372418327966898210585332784469365393087492224286938731601366226717765797360976772272483710229525238796992660254955240419821734960874501120242531266152739840245692413381772150554250333860196637004051916091968522176416250888917458711575224499238066742890861368202782673841953012829645255420847238375772750791524500645263077264661358479669538649666079931577454280974844438873660741646748785660225185968765905595098438209846927488211975520718222166875277107839153752015460174610134919012474505965715510245462099647821131025003840985903164016539671317331352819662655585177829421269458089188864224734220815516491595372188531236132839431199949641997078694910336294630302529442185162780913563771414384037547341560281082203191019869163495713001557742725840916480916180294585458611298086390561523551364778271575190702031758607907121799487400805431687930457524033510426343996211240741351493381501471356644523687861830188459826262209237313157786647222050284502392444835353138106902318198462395055104168570455426121550576731100905304118652946876313076327359193035823806644846400465412855801611318153587090894740534225335084904117482176934334731320961652011762231945854760872230780310677516831499796321358034818714607834675432282326267916556995564402682828510525206552558759487235779054598773070661805245928965964583932355544106011403406041255038790955005533072622607888143325637952670694089086713707739851035080679347553112403365366150919211073733883496149643510824137529657694968729598586690517269045787022023105218183656539298426431595152502617327619964056023237294116237225661720165837590792215139968397660520691046440809987619526818013981249278529059033382149905319775369399652074966755013710767802164176361517000787613331070647965898589647878116595543701661001307484197782320594913789596431336533639334731458644393222428671882334839936079247039047425377137895854272047705352227560719831725312872405663643681123658332635981645310531086324854498304753134858740017211173022779902596457100364510178543772800163405139033522160618772782705877611102462093963545862339284549689248167910795927951285226783563730827087261822108645295845634066604566426064180357416539263039502478569841018212518646892625006089572068222461818484594190948099865241013653590915806562043890384529125171910662875132045554013184456377483512404171028055143908836588219193054742031892954541534876478018995544331246269784813223579236123706625367292852155708294805932588811915060761439837274515731441631355400401242847060551938296992203302768358813649060695118672476657522549680160179877695434277986135132090767090546154213770716172461240190512811505361622436728403361285209744707715139778671680771525570822179727088634796189590870884457121612141315935177632250165004227084419143543276474441199725164945305938945796233883046775658857180704144979469378279754372612060364093081102207818553094018011191323879745110414451894137998450021788568353781628034225608649524558727621561997310411893963519764393752029891943975478363014034659198365603579064469729780909227542807392138267980175497712626300294701773153409275076908145365491568259903271479024366071537875227409891499313552756341921061891427051143291497959293762371221511639879459771114335789467670795759531896995262949418862949762053293729098899569710015904129952059885095856729991880074091399079838671715695771778628270801647550240545971243219506669196003484839779134788514262177703745175154990026833662967775760750501342776043055994055137406206809241224719313487714879278385934062570950075452101571790763359701541868644237443929925267934976892072360599373075437088357441237405766040302965274671206423781791112612805564119362104796444486341340485534870145527702812813067174264774173992154584973937112029435813291079500805557565083432072730684555393795806355025303920560941329400237053525395103299965521198088556693321849340475076460722868894242843469664441469176569904792311774622521224995029833555204135623032705541131292445632319029658355589791941788870503095177466392039761006226096629850605678057386864550107747265480966846562404974304031257363744841269884798430302256028128479215465120057717287745013486711504578821267650742854335338378957470975563394764199735058640231994841611055782306281610091488992442885790695691876329538024272003771146562721730218520376177824725319899954940283015155582932884217488321329754171477839597680974829757415107946086225173441611165122483004977114314568884288990881587818117892086753162168158231577261895411100040081168684169483326819699336793292692959098127059677055495696973810543032477439906897439507983924301462724895736436193522404975311702102465518375265103152570914982394301162499176324930151617186816124625045806476666213654903903880652543498796797185908999020597401483690104994662284601258317026905818999984775026761142597011802252052908485358707316323546433487508642517651346646968409319898556305559612889289855206072616487090363699802140072582900075220418922564614359869357826164639378554799269147384543422829075837160496812067883378522124562976798225462247748220981229225530639488926080049458105978926012358525332101845021936304399029875896409822060433212569007544485116994403524319182032312087445080935253725143941062285657334544138262852140799548355450387500533528559294446488801926241233518539020529676874898978441762120739129495604162467407670304362727027605759969976927905619302554688056380008733238199438532796976308920326510504576172089006390979784426772035663310378489623622198758397224368589554286098363836265492779688895880307659946339368630748256246791298600998677516730852035025754045558008037290862500580454535884603730831163471548711777740694134619806563372348250991652390279416721766108435309575438823289697284600201128509694816341055937907831045514591334882857113056449910049532164116401977056520883197587141404783433544985285869003035236837846820152525396776747778024951833577576286083808822559066114980301687809625228799724420148702529176583091942107466344746550295607977541704405858672170866496739245397072707399007637241999023315685494474464794046718961273637365513060419725882653787968157277958237709730430963443405808003592067437069766420759520934275129343439451755930066092954435385144829257442466925450086807614798552461956793324375896882882570560001683142079893131676642137564740626802910072605550600667047011284446404533554376688445891463926255785519771669009665948469429915191687045586212969513923696487823524554170462375474386583325722143187356553279535182855876415244279506173349625877282155489259122121077176155382351625486235562811617830433240879262115047233070240374543960328017717072896693837702246226489520332411346783746673484740302388382227037671984114359276716231227755744213024371342389114554336882983410470859134704523300398213269165849872418833364893536141546602450943214100021091928378760369859063335229166090055574063828113879432920192218185891609443481432445436981930998445341941960018874699261664693454162111212310488986878648165134992743724621280315785496031195779440525859835030690769380534369352393424366470902638696260285391966412581348664460371523056848672869842244388187232027027870650365212455238376821214272599365616644857937575203063848981973129037636755834142963169055530864933116260196106731581617584445917905793367269851163889900154417286504252400849425484950280928147931025449581026720881132978988925148918763507073507789841362266333831264674485394586551433725714035834713915785364763836776428435534892974855452623382454724897799717260502420390918102764779346670598413533172548376279847789412477875463680313244482262826079066673569620777232702895233425551134744571742183400490880318536314531624724678456318050852173873503235421898993796791015292226783031022714773580423173295747917537070943959526101588701132715846863097146215857298786445831786769707127482165138153129652570636123032053684873747722243357984340319868398038879949093018755921655200793973601118112701593426721130809816312801107322658150503385014875347744194939856856068576556040883888123809620835985350168038265230508571555110045349195428833760312905991409872341900607315448448822764172712617979575776138737697049438318806417004150011255140102831527377816402970458734316405653631495117573728433024325030986094516551523868583085739268294106469150390081770417003689596386203051914613811439109777480854829452277653467043792617836131378187916205912725809223327330816496511374738744557654433712115026724604674160858339825544660099417118729918347989663478399804009415759595989243472686169343297754190626318305716196480956086193548413047544548462270795840759778411450390373772723049908637614940858705180908354519749903512815612957329126466329599421658696956884000474469117353497353381677658179905618085064498397077070502695059249229216781980812505383190132464586741260558060645800000160320452779005529218085733825034757953913294731806601466345083344614574515473983795147449319038733234227988974117352065605285360014038479397032838291976602605629286781808354970274034551382001527209179824340105905514781846223532599594592269633132513111778369729547944158888623362673306811772036471055832224832260189359024080356373278964767913405463775598520155294552150121652737879402944335468852557090138422141420880141608859725645219554872566407161500462000984894267269282659487570065488485447857357041456945102966116858144555807020235187804048751507191762123664686604668443645749285699681506665266906862637947212742098168943888937376449600447704753970872495516563629354534510981898720297071095565742124533242816340436809640801958205748601942345287056513884913046812468486106506929148169470960343469566942353842660783988670333984603585860583478394320161260804190954702685357132701594681383555576404889353048635693679981316578643562673407691168314773872399196004482012918085359846828794660369118614366758959443966835342908381674608919563606712132261682832234294847913148408032675509874205401482481293091678255612114177866155562162924217242307642419101661361047593177201345896897624055868113001315869744791298587168304146106570228471805231485240380583030191551430030740719311674696148662766850172380625436098694731861352692008174367631850566547303223841862235864093451961283922346620102733257601303124213657890389653197468629599209967511211310163257358849285989834437598172332676850565072091696521404022221909366153364568473090772379954174729548365067052986137728140331978746537011567559078878293772843526075919004973011855460563479038007993195825235992350152820958007378288370754986991714892738560006809206427959024240663153826244194923419641829163355982930717640897680262620703940515175707890552669660739156809409559260458993112286986992207515850309487814752244372879947143429619072450516066519974991392169104027671620511100096500774161785350034688948836741793459485105582156192096946118222297942884145677693173391418765785448727484175165704692624318106088952457593017732566632678701745060133011954092867843926932475370950247187900277249719145658758958940784111928420624711955770771565409606339552031560074602698341384435550326553350008554238288438850327446635753314264572985882626656991065400824836602989381540355974799608208711471929496719471716757093840093021619403916726311151824238853976959397389323854771717823264705528001823452361993785596103820042562138058987720981449853780665533104623298876426586378700366764378047021478997453200278336064880284690687760633870593180528244651327286950656087346670785733242837490109718125202204138694635518242624458905513916044477959247217142975637129436976482452040933476155530086259287453835119244951706641977376973022025603773070078313392993438080407539435990612670349798479775175282180605791894809930134806764175329209973543534144826016956748139088120951994098812143648746825976967610854694562392071750862973020309984999530511800094912249490076268777193024109942748401765805238520513523320278396390597838299494686904322865085361888476590784019318045519591614048957167520860370330702176956917862632787894954824858362708757753882862480887067774944548730260466010416712544553091709671129857396990790406569595554189720304651567209288950536701306022882221935788845289654667654268386269061670732713864233272689897084894693485800513311257872405592382795100270424969819692852854141411118516411175059413636337154123825387649862510470633272155945353211936227042433887549824880403006023217916406017952230895622727932785396909533725555335655482611667572680227590949297037345083633387199624225279417883229087932796410658631211132216415688388576405590037456148058885979382180319048207959051344795320732107774933614201886921527570884209383702970635582440728461352928359308498810680580740172074776640191140515503940547125670674056344332868435944796147893986051598864809291852518288088519789481038322522521327536677283111928900753762436366494688759477508220682851790592613147123063272121595309345988674292198511912742476031300364409558716764609484469142578853454656929618856784041252405323112512468788890270072691398649105323300879375691651376218870340198802956160389567954181615623558621788440586046196718641068131960274410791122188664095167519484945057911284908965367423833839036001646273981060632654303353356672463159435286117027155134547578151102577780571392278452714313794606297595105342851263446440222301629098786536442367322696672717495792962124521781625981011305396602604079480491820481437462286942258356028786364527410429792204895540360966929240208435566317569080336417536792215591703468473763500479483711656795195188934739901452807414092050777550921559296239958503749067113223892898853544004772953493061752620899731661005288915702782901557663768404052042798884286352090681229315088776745040559011051222043679259847349435101184097854377405222388387336287552810375694054932851931013516698341447644090774480881313457228661518449549662728674870901652555470142699252460342673165975963926239367797682378926382418440666349851953283628338959435278046593110255091788192356994633777028930030286124992862400655918072501144638759104000341385781435566821912446294303594263377219457662400706813373589837186868707755037532181669146474208829466645928514878437354668335488287782273413507879389216272593835183566678071267618451077818678344970014543333127726733035668901306125577493526147706061151263655790811089986174159602197247059475886555269656083144771265583050616708067241837875590426541620763828056594346280741793106148225665959572692722938222309270943606002457646645269076949256351881432872247230242998341954611535167081380271631105968455036278795593396686808439846452816649314456256652055421870906935619242539652096976276034237201408293184301062756950719258244301480865864626865728672402076063409538037510944131968547068283144500466991263453008360713773805903333909620327923968172725316330504725484467970494849802929348808656444536401216947097215212118661121730665492205508472560715442377033929448497158096677470335088193066151762668437691284192868986440768725526435604051082250220466923062918282760729890334484579329296431162252978223015985647154093445606727344847289452582881530193218286418720038609782127585918920836902632894475995465839530520639323056616182758003151687453422586519865609477421219014745894428201309834428802024758995721115489187521226697372008921074532956282379377537638222538954502959812594378173660056700238671134172417152258557854408739920872800717751185550532623952585439687903748009826119329033571187068410948706468481090603136473057382615440660466923612757797779109128177941711447575849973177668924624815506039063262122938045110853810101926878714203328957791041717997095933380750226957144686182222189563643518774683581610609060550260370258457308277829230441043999234096986707092244553719118809839275570367606250406555063867597900675619779254796067750841935290099817459382119629390639563352900110555231744889881777880332014850680680007464053823627332437953521234688394041810185905615360726636356823274527746965391693010461861147844992266511480580143804815800556755797287296027993011723974370894098033138138100201290037501015073337843244369988704025162165527137827442154825816620742048465061481528299087322551211839296891220501570658159691236735479264752442275185684297475144368479586827556428271468150753595702083451380202842088599077077350716129368129070659385051542124506125243438847868122672338642657099024232774403925958365054335355919911658473837137268873255500810511119541439839099502037524926826096840468808159703639364812127506066717596965958199732710661991890935725142074482000153138506015679689906724550900741019352712850540517585152907893037661666585841894804573417405038692516674352945247506430775480032959356881012191617024843535809281774627996574536801931512957685127143573171987663002303392763296545384606903845694620000954893617129732459948095854957178367008612081472808834802096343141315764145009983191639785741181049689258979816814385428722004082090690364768557733452176237978819773232238270552443275717109277254066586171986782708667876735476361733433934153211449073543198467692140897462528817542156382888586007453687605766948622823715229226314013252935337513060587371727567486381911502624516871613681852075209811174307451715980763401751444956415064598976812538035678603928400553582098351831006064660762171244085050564157613989794509503711409762946226555068053047114591198357221568928893727665406910253645620059286827729207191844053792979229552363806090507468285959510762816714659629792986949440414989509718673635635459277254662700827440213946147299891849143871429687642607097938682676814589076209655565265462202671550386446453420624139850626975676030839405675582799459033781408536155700120024394766145536434958799147726207474273469454475920031570599674412053134598925160794268802477809211838732697651557479876023851062257043348274897774029571603210923171456596528952578035098240537688206245201902909862862403907576251659334290628091281596223767214536797034087746633472406258363924504138410198604305531992607827377565905879523000376347640668761856228707405378534541219096879389483289070263828981358149331221970604676336346179535612160389766077013963973276251597618668909688671477976997443927517599297549272459439666949983005277404275020735442045372409896485004572259088470832049050145053506779301347914075516443704934099669560354841713050379383493742128792869907238805864465451988610925662353208307729542011934777416882636860082094671234192264633592706343392131213035030216229600988606056074358778960445419484483144022899390261162196074022802034688191916476510566243232928068143742719535293483798071499588162235430611437495215292766260150513535434675200985807659784242786326851065892052735549341507598408208623521362272859053393923373831439291665979922627128531027014863538381268632432387554347570749492435678077013575786335188265985170478768829222815802808103977653319772613809137964459737525016782755902723967277775167174796485574558721819111560606066435131289956946381425000599764101041423589859231262390391400063852791160581231708312436240368602626234849763089819897561991786522497465794129624287341005641685961004953530707900327117789643708653211752175204211433642744359884331890326846325183353661895190436995173948904887968184820211105333291358450803649122660580079070105758898613054695040003065034607984061949763599577261577090883776123445805266751653072305000532106858186586266908881074929037093779196578622754066175729212264423252742438484696456417804440882588181335385381128892160348626774166248775284852797809122660110023009207302771390798862704778221534112990148524369197805211012914021796070340269412365123455455938001123287101347243688653914810979640534158520102510621082517334619257216819828953666800258721105579264834106303098292131787086406989698274325543638681069704041607435731445235008046777024698390755249382103786854084764726429504594292657816782293299797822080753025033475808033147643050478991729339121369055851290040907790853816487951486700211783460919546149620706072217455215877541743581765789151677655347655477815624485882961121670396368054946441586720669185080558031225033335071274595974174354122020048772289858728342311553132404858402497465804745581406651443988130739890624187377740173062593612643600975087564308519846059513625106276987819360436392850948177057664216668219170634974375745735114310206758420519093165465022712718663758109024685741642918691881879477302902869781698914029023693901919302113937411063674130159807195595442315896342062388482401275385042365646244809160820112071930390140844820080121626554168226364308340312337496856765905133756830868161544704968248883064695280585359791180974792178439693981148830578632576456615439164326061495848036973101225704046338899300977322608437069971768969091126359208953168586858967301218225421184146730778089301633222633299466348826153257373199990356775883554943056580143275136477914219092314553025865071423358629250744942131973998446768591257148149496406864260316191688374965191665322070705210137965386420518713883254576760030706754496149450497686956771493272832188440065582115643007037410342446101215224523241607304453236288553658548114798597471077899233258707369136812954073579298705801176957901264898684747933172291898808386804227551597400733521857418510506061327387391319398223635166490860046302739724024816961464248099615336760567855835728496486048786080951508320543820849914419650125767301106790033739199853868607614999207436309810663828996783915603629441247028937464159971789939566300436296031141342085059310523802794356791591282126392905647567223235410002031874706416754072413063018935982925096133441705111452707956369883670854120328648897458341588494284730741251690914218569545977240068621416258562393051465097514981674876428491358125782129922764194057326959481820289667154938722375338369143973720155391981750800286068988989405666056752582321220536298891138725633549045516944879751042840918138265328665928540472981496412415498832660455685816905717595073825311227280352982648861320647361051678342730761795935257879371674748548345187804406962557012949251183098620705871527711984458418984623983802937849186316410871920618339729495854142459274279606373371556656497388934712114156711935793143588770024045471784122727081680015677562709794003184026434917539015447631594483731203888433641276482071210809863291047135617781023145787532042919071616134103805711754665377207808294559646042857791516022516885188160217252495950176711654410362042427349018719137691909007523452649518868567679919429526783788075353184038373352817289670976151393939009083383420628425695494410244336051361759723854731709990216917005534005421935098384998926465732748414046994838820373125696858583710622454378261158097721410901749388585839567400286252008800122920185710338552589089376715967700381658034438106039457031114610765890602266282094321198905495485875844207178296818171169346921150823003367767913537660257480784334995954257472625390562148343343652636551079651538003488454101421495400906693688503639507585373611657196027546678832321814023810673462809227927446200850587825079923200974794584854953282791637068045851126211549642283900037691455822048812509870962243174422458951189691082929783155955688928124610949863119960043352552002710961931445903250307880266070740509532946777126467545666094032819614781676402723489670517654945367335893779736850072397908172628064656927436647735632335189251726468029879272845223643891796379102827868755229864763544633529881604660109204341730440392095256794483950827705027541355155337697927984281095440912317603442360542310952649039495853512405288700062684527599951746097940345636964246522907239018071298362934511664825940779225848209270262915713666181624584416195842447037555660409616968564432619641810756950302153489008057529719867815536918066964386300755117186801619801653845026263116382823862470245486334704364533215772254364955993878846368826812205706479286007079527137274884819962080825936873682600116708278982029475451802910115011840470350400000805737535509136962841602045804810368701613196636107427723393681290282418372414673845704313899102321254956456807320281628360917933465510610446942471523910452974018435436244766877259969366552873667795460221382151573982767785847908818487467098656984999217221022706283262336926869552680091253772539478494143585534022079956768055646132771574064183963657717692657615790006176320266153963651314760174863631211605853475091288892641849305889346642709385355392964423872655332993526567086477067313086536932247373111056402009612343366583727966166243186955374378667450731219116157317928705194087418960157963986473615109877920321663777076068402361063674715831871496656265592300321120595255236064357233061468728653490706343760650749126742405812037400075028493939951401098553734309362709261090973071227909866187445907516196592759876146880830956112153859190305009126424370568497716765662967473953313215473508659501235043816561320014111581041198847559605278322762454545772204654388160740230475686909831016689527861900009327193276149780869256926214523657317656470919164275708761185788841950397205833272040462280413957693125095350043093518415544224745652640380599589942132546950914958471543610505731534165639006293594931881254024992720940519782225454508167232390671918655670511983567242936067366381032803266577276237686692363764061545277058932981357316934420945125284313311956524792067687846452976218344912055991679455186498733227788736992837642543492112193968756091786811242697138678152498492892260054823374498907450413531468481548016587944951424568070626323285774549183917187639721252023657134118698706065879337849226019101200933331623918672216801301145861678951682165780439348331583338273903809946401265844040269350729517346094436776779661253577467263119121761883404754914483145150788922044825126855211235265158447190384610492082613097203103150834453230320270057093737267908515602571633449768494532325556572562167447080146322192403102058172018057080163533495397551992631593746396333895902488681148171472882276843317150980504475172183385352050896261240109856210615269954511210837193130565578116921746034229883929932572417310752161037756182465764780927392431474204249721282860278662636504430329367336426946697334701737253939279625916775283898756792179052055658164116685700210029538932596759854048130808929581872411258010195138607695570663983542555783052384637510740402299805236809684693478652805732356072448951614152349069539951925911370352194041866062259628974369317709396396144591596825647276284893540834754365907305126487895124307444380486184979241454799389074925253877278747875459828484145143524666909498436406984600055352946715085977823700966240158293326693582056691138604171591409927035024762535816839183297552181085431908192747344786884506288946952413868913185347394887970365502576415056311971791118649295892006551722961392886327338242741364784794988313723582051417064867657889537796916123893367854452699131851129085478967302983200447080739547083112716606546722143607213562120278805698182020311596579085234473349216705871769616292963896571820961337582903981458909448902054226032797309363579833970632156726955540922519272893099302956270412824740748679100730058268748742979314098671052440434875506611024826329640254424460564807338202491672745770838935724878097667185297343628689318277828554142728761404317555525510342791003975278006353559860960778594217178709527017931482066530610640731384849514352367749091443239348289793764599760752404310958669694869309682074640338370889075769927938102309776303677870473110347228210022166663081454226923656483011946415750895606347809528276814922963378185767774023891319002117156619684141936317703321369482867800649178074365421538448072377910572431120016918527548144475788773227284098002013188519875228465822882273319784387504997706896661819601051069251536085947547367438254887667826378537572805391350897470186314506619710322691289163376411735175423678439907032185954687122294142929686451899311700144017140110653043437499787834219213390534623668363086599491861885789940844303462097463791361465245813288653201593825114388551269829958032754131490295244742816038822000865462321333707982300832329716865837856678055740360044500201153331990292525501367081447317676431946468964863595390401295822898382359589839853318344681630336231227673970228930967278739192188733911286859589962322830665835970630945776738794553483685828296257641097181514280536729051663718605294280206218043557030238561015140884168393013585661671252849983096394284156153524590064854772335350712983930846320302564694369379215887425396358985728527036881139266776847982356379158528648471828101668925400631801286302102844941246235035284017806985839487397878772329054968690725786149237425655707818191209254602684977766487259297640333877668788290408234243740743684819864019907812499415399660354959343078075065429747133312242683040463206513025961183681858334940328220581247313032726864473075438100990977188309855354779085873504418696556263916924861168216674485532857904491454513524083467432616706935569849456912043998903696657982577876282808642473459244638912164103814890262410177584322862082002736771929953426889899710066461128821792188036020985209380323224979959760201236085363696744723176530174613536159549284325560728528533998177622988034514261288250240013006067424515863954166168704598560490112157327395813929125487765101562944413430219528720695788627019822689950220887639792700585882398999792482241070951646801704901038564905950227067289785092075610713499694323166566850058119425532278629019518383459321905641406023341952050830674253054324110432595513893232759948937298145624063760653011163229500229882303644692679375704551272303166066483395042427943501753151102852115750039252011042968998413526336301240258991584038745694034644186882207836636703886100321811437642440598659347528161941203501756480692460191494898414343380393987514933974005435625887997381307835791580736102529718403560704273753675375576527996889343934253468898657833823730007372509471438504510796602544945022960236611713541876979601473999579586964178190645987809188985676905211272094611624810167340852998063032917517198348511278301969709732049263739437372783291033763874158548414401106579714499000887842580438338494359916701464920021150123605834833255126958100689742972595326284490923020081477904606480958383186492464174024687752284269949946816395905739722982550352315916860538826948995109914175669058202381095223763143282317741223056663520438268619739887107945292489648821856850546786078436865088261696908255286088114500983592359500247719122271733431658649769947765217284857692236923563443878728530241393000062571561697414503478837669060594946011400449131026320229571804167208258642145062190309126716598508205654664862644763237138117017527625902629924188546800478602482249501587375056582010403766591960044314344000901743957676112208832797958567539813989398001171440942949827435644401947136769724499639251237116035264960034306761786949901874715268777590380090984927623064433175945565896132743595499885361983241754888810259813329070636415825058811454473160977574059095487661138172674845853727335156919474325757128676028513412863854174243495689996851109656002530781867105123431803359894954111982915101687347683325078371876042651046455670393464274699895440544722374587147907631433533606312398724237767398077657547172030108467490272133324083267529072746053677203982061012660181528921467787079582946695744312887527974993869317619404987856131357114489491010866954302515325531104117739512170179689439618817337280195319341024911039738915351653175173189866247806160895145368188211692436337220536146605176782007895216463556895804802416174354865326186250507187021653666838918870494526673002655577612039137257451722909579962822470360347762004746882783274082283454757433842024136942268323359036105818799930705551657823867993335569853199511696966971281726850118643632315799213550542106021158444859217775340561246316098256904993873858408756680840735498245379944992699780067704971795599466483567266075600841607367426635349312281913018828075699995525326684697382704227650320384010353469866724139407971881029726473112598449877997125795558521562725187652574378608951010282325205150167109517287853539334848267249307835651750314208721453994312807592181865055836382722774377555006817534685272888748483929334571860311124051814715962882089204803308894892893121755051427702730405520720462224776710645047670245651426016487564799069110440397611755126893519626982517022729973132398840083924332730541139646749407790512406911614758346761498968823320683581492464559859768925385931197617222462567410851169904462192655158196947791236021948364204185242382405426476032248398131962824024416314972100586300483504626955958053522424624591354953188951089423945157809596469405584510202812052499765260437736462363500017525092142072525068897165525420629389246483265352354513082920211287102168459381611203745481556328453816976848816191561010627832664756120204464881849112702876751294536286845669454974570428290528148613801394828743460480217694756943060583317182837947330680317026222080377622016351877592413108525285338888362430814549372109043129749443909754817378129500841844333100761231882639888429857170208922171614132700245781262424908360452908015820245487063105309929142463818766655042304868491324477767960895194195672513064282841548687189456740572902562108721306678719505526867835219605859190305053712010444285780127304375373191658893648074319228830398580970843793848885518471339932930398761494325164888953207963239900243905508155555937224855945923306478383448731132966792002892674508236040048021908990040877242275339655484676844077711510528756058280284779100745927202349001595667131969250251791695980097699304264249692662602788669526497986226245450639310369253800422096682992131513473752255398681008727854475048117987956147716903509116595045834504499472043769105602793697910805650395781782970678702489448801740363733734827127521620400701724908262778615114237873911787568485310357760013869437389809461243752713386620383712171452407967301345627179657148008628942228797105802261954233840583843318277618387923146028805134134875933841822074878157654264373805845733856786949064615515732718116271660751345330232550326989991076528185500831134458880231098623604331407228419850992914512607302034035097166976182099816526256284498285977408366542239730265304362066272563739932041687004159403115994365707301187173532486635059185453404046402059482983338061804809024467232928981984654427138521804878616403615278444944393388299847683664329917051268522314600646427639664782583143147281735303132034613844308052984992982017805556229896292758178277177463638544708948463251260219487329012711027473925721052396727497332072905500678769476045542310782871486159677009396838751077464074758398107083282952026765101177874804496918361836773689003961648986303774078000087046805267714976928186056193628704411197124572424850343231429274284480226719474287268950203535109156713723784385468440656083817842948937597595465449275743457371484270260779833057508544936557648632004426108896118541125382664090436049482791784285107470097479310809011372696493438319741637685790722115312936335168698401097053297159004754300490360757662685968836061009452906411589199672256110631826582259345217060321466316128353313436804597162137085128971273913549731424083237676371299424316035172734438879315069948345369966794641546195636424377768763111211304093968953029748284341048935587622768864550964088415620990123308063396107111666443486557848221653493916882818462449993910397684121033258338873110965953994124098902824310178058791393853102088793464723940879535920069110879266835885095187058423924122153369903706914164881016306767640465660573604828195719050479002579595877960610573911282969601900765795255501706297127754241314679039990913030068519665460934447743079746384862358096110287187694867906624826210225569263507639298737753498506232766943163987006171556223067794070756034085011872982729072074236372434118837381502724133095541526010946107575112037899707679173394845824478026792232099793369763026590407736317141046932293869346611645537825997256847785346619079491014456176265760762912572725029518303342088100004639416523876338915614795993029700968646982606909912211313394124118044722729894212647839454811179672998547950499986653308593680566902985072042502041877036738742155106991373087523459687957999234578772998962218427407738948137469025663469739427235064695846594870338871699088697715293534831865404034510781494539388665822498326728302315047682565527447616836558725999909211308067101549829854691240191621043072314450891712215256958424875074977400547166748796832830390951296990860359740141256926804251478965927499456878384609031380628215602282696867944483636846156947294658281204607666252276212819782549643983804536934346401471969208426381428867313483532396441348806406159146128815443798092920121058551762152285386123951429502552116186240630266358350275789602667812761514999323425500361047663430868639922529941685180290713742813465060732146807828309181699674927662553876766020973295157858239465192632900774124195570702345848897141916930788633351182504402313207257834722561367411755848089453349415856276766803609204675216668276165796653892441603073984944621394172250440065000430691212488402786297590085950630038126938115138537907427522203237715849420446696345859938532927405060286460188301976116730640522237080909957101797970256700091224684663801094602225395838894803251537134179295704451257807812347448650015876997831919720277999475677581183226842730231776414916762780983944059140377766125976225811261590509361872974002847887189858853802757166775766131858649194362427380076152767676443902678036269102324526472474060719179953847770823807062539448662401345389547737131773705906159775962356320943911633570698988477684998497265575723098318717236814071573742828193402759160005275485876555188222572087159620654402233478916698052783010432285706670676982182510650923519712815541246846744256138463622216857544651088761228174170561091025386498641061455535437227269553536855067353524547373683446719285252819708288416454843467137020990979580135640882525796032409296634182162647739458688905036731480239727604442070464937641462113735981872045175124024448667260041297092820184778468967508410603609964206865892753999418283057937776910544441559137645495773842879047949358827690894647345547722010403894378242900273636713043571799750434212750706390777443912437267753263450612307673513844114521387733819260519281845057652922490044199732218908319605978378909847996370009256899210338737954589778594827942696979928071513073927428223517989461359794571679656879930978626124711661193585380518188126842038651404219581983746168209986122493427964058099621903766458166355002550158516619766815697354905369960239111714503312315746733024632703139518374545670891464990614466307241262320018373562697537726902016219571716986228797587020851208563936382221286757262937778156099489425155479586394632797837216863024483112513950793877856744781936512926325703978187767114595508307326726532968763711649999110006700374588524241422207466143778772667441577902165712884915143706579156680237027389941671551742254646883060132570087569498047047092932966884932573589903097728759929714199725445470486759399554420650253004275478487878451881089008546931630089068975973953590496837516750308793721182904148654038956660272295451863702801140744797584668623481693753892806981265760274576044401285821732542476596300714833612456036150307648520225571682229714379682115286060226498371409188447342809087453039878358010016993754377787599515686368243681323181511167894703550979379128619035676038054586944978574735623257445900287123954255734578407958213197099977063819027335673189049329292032721068107209435943276215804820612154449981471351316326456724043487114791049015893957143170353578433963582492919020906918509351948951005660321188070242852131057494304699614730507437847144035330348531044952497827239331080768097561929333236319998366278238488274396593132339362165682126925387606969753710460349891669853120419151026593239150850343694431479029829915134120328139324458012686153579132751589495313518282094877016273167688814300032962444932227809876987922171582578854334717057093000162644853512016593212506035248754631624837976618831936187528998262888990836681522930222398463970931137002457304608154370932334098603450556826180405078455199481051748454805462293461975378560860191851042051119836990579044819748170518013825441497062910630336800081874471090871761874605542222258511259174049918918748809211711286723034348362475448136427127301322816206378021273654616815943432958825352988025703165900683289081773257837408437882664979846257707775617452180860141054079723299181331978734512298865632517961527159573796368141898297776295833846451921188469733509872804498578436351424683032267516735916629276806025791147031693474329564844651562557551174320545847957733540822429689418851404996329718888003520291514059802641287416292364575756248504838251788837534469673294493840202994843591303370460787132800667148163833406497630236727081283319220629576963381629057722021887212379755630539800366531750202205920843422657176750932210015284867134232689631835215434732700951488177591669741567039193023998113168804115094312883996759707485816717090883360025074252067044432227294200106888875997181995977302141732562339011746300184946124935347498021296092979741370958341390046660493273613094891917038261402995496627733238362566975696267385027677276454495343495004761716573467963356523384923240726641623954301807809791948624976604891337212677294068526907462601116174418651044488246905835073783085914578899958650574445283275564495531298702090352852380115839125705949672302487774353937033676870216459411195580583347427205105649241928124259594624677752772475938331027092031773872440468691890817027925956402066690219298463949424902890325380471523347264232452958841679677208141855422143819430353264794319287583859067556848120075336396957471067242893152121712046142254688659525463951970817008581569273696637118854386546751672345006366919456786040416354347993930989026206924107225416594566993398793472030246730467956531092488639457073856307537744146382484113438240051922492153638026880896554016328946993515705829961531286719995568414610327600588339289416564883076286530095578104676566411061897347219943494924650126254339115906033246541959814566070887180796019293097616000107797847038933259425619679055470695235067763459740890235070482601758775748118799904683579776886342227785055796750325867248397520681220289020849837670237182838447459215518339414180477861308845721003884782871561625743416469730269064057064455579184844000799091347732451449440179464809506145894464278979835982264627157521994594297798810746557180394044139196903247269360160003753093229595286211168386727914752315947876780650424540225267590252324805900773677592883714484146707584220907403378984470139656499149138122381411880398665234051077497521927206707983345634181480904806164334095221268106547883638061902431290746124286863962653731553135368721907961666912649961581169780283868510061160376009815650069100354607240525937422048798269671756082087926597910867552883988689862924783732282433571566593729291297565696984846918222881387190155563903338720836992485790392747062086143969439899463243290998523972989436472234885067671183632812015536651199666334862677473356529531967224076063739095006390698233388456318207549755847317946528875936208627849669310051830535466707537349950070827333485443389686940818054762613200111766345966973308231626084880597857763016926760441766011402310278371812605412539513413952046363788579600190576437855583847388511115594501943730595414285818888128478458431171471555405528201937730024906680491473687655608609500250203072754868609740318279018910965418851845274576055605418412441063608765779170800966140003858961595513440888760240219164561193825342748779341633833585383339692802855916869913647664898503843409642543628598950885265973262987142557489201588956731750483267531489777062093673175673840936348248528254463093613093625375923522342231989733357612853593802769446732524896411808492286406408310930564790148981360929679989357767694070235206462477248570571510922382862634799389095167010999510192681362776279730161047767680431828676467129664059890751783861553433550495405210085966684691219662591073364503793162737864543416005147546252597660995634753289542355306270302544005752310473494433066126352610765840070291635499153916400605041046066065903028313147196401023967822518740350704538466083126547122160731108833322714740083607407178207951990442667525192782001036985276403794729805949602920015080251987900938105526974503724548903904014192365232112746419414439224572973801946600472185556110941004061994258872660375253857383750457344398337015428572374467418110799758778257764990354926903617991648278400978985478985470340751746375987541220029102048869000896394324537883753716403812478946945200893857090080728646165821317589221277676614422973764498738505799275138259663163648277430353817895973932962172234434851057839734463536340860867543666576790388336348510849900249271889502790424092081631733401139394424491724630500695209557171957067257403309126986296939187199163805379393417580760708065721485589218062548353838543626366514410049754386422870239765333349698970361278651385647206662375282345389398616561063894445300849974656959805813225301458029441400660747566055610174607056391728431995589613939244726219745418081748269646801537799535223439972919221703243610814201616769656847167888858059051311054537781575814474960758287288871043002087881780040409820002580739235666781902058578801398972484921957105344298410177516272026542637348726196178831161251981865850082578413586391621355051830991533962152927659585806556867737652349412000275701105129505399816407810336612096530781568716580465453097894234369687195421516321883249620848708237170690301683912992590212162183011111228812701377507982556443043211725057595269423928291688072421815378534724568082219625804008601602013662908696882890954413442758129895864368346349861813153223173685160774551366283383793235282738167776024368819302812781363223050258012913466668511504043407094452926306696026817739117343537309399698221564256326066790214143353498512324864704597421497101950966806738306675723182853627551627268377329544521363944366277213037635004175532780841878602921459552687667707713863723835847215512258750594023081918283687902354667585153312763560456752946133848973644129328722062761923166227252592654432109311719229794402506427441024591538887474068829268078409321804535727546803712615026391291853388123666425678456419893453891878121287286993888326691176238941641029510330563875625743300970357897629164988631403909978220499782491441966252352858002022713072065502928464777832705793003514250750552944823335502272403682396544569499788966252323949943604217882576605915474290222621399301589842435240082102535933618440574432263372263453930116299650880812617880906047263278236238282341649650442598606245251893386417918804155686904452716878116077442492081334260442426493424091857609814430909733085621601476446734935538348197689531433240229741329865989189523481489057018719820742350566684459906607543755047181175821914360771669710725732739692013055681257665336803143716609723193174624769147448882563369228081748287696591859498700936454111619228937853808321569679032169050755814516400222319545845209022451738259858575125834857516512757440493952778951366103704275080536968825749537799014032129335213087571232556347810591545351861641544548961473277060674937099663910032437101546908613901423495002326678685225666503136335268263005965998042314147574530846178768282768840848652457323802814960187969961548827308078000676785467701260009579063092432589765811522418551300204123182730394367657657883590848491781125012877451577565692628739230992846689608300524666531086627189720471615286222815817751027991785457533975381427274927441807720052452056663748069745103691991777063564494965150897833475552501738846154444316650574859729194480171188370647363375254870695177770306419730162330521033097241454663480834908519532439813666629884172186396119973526658587063213539904620841003283890213276165614350598831375279423759591013336960340330780384214035185279271499685523752897739778427886800498238422266822413304475256767917859179054436340793078220805397229852763932626829347354158453885457463625782860673092194832139023216639123482058698995112482674674338757145209361038390869148274297010661208087128955818575227977695444576842740228188403306784887214199641292350926077678342626334133181768560477722356168871783246864638050257198177528454669312186559024966349304999788548885651835512979601593996857155422070290692541116765243025918307835042855914508290781290720247905401864016515792873977943760522562207973923767597470078471437100381034962943821895723338816133693598252454878226240733146382172028065784973909176821814133180114800093543803674932196755310791478591302169448411023785006819612182011723405464267183911971892654318832388068313605355891874994868886078975972581017016038777974135747800311419242062120058166377062222631052482362491317096559116625525083803011073699456937857192517616281550148730968612058836734420263776044906805152258070298223649090473081307551170246767290326056471726185837730107325068893012933221363915778049737097663386395434587076072670679908266185040783820710203705650518130716893903396628741004414537439433133404684070737482241935165966879544777177423289429989532831932728437814765358198131737424926058363802185653862245241895605548474246882603970747032561474578663247252523721662179101360242863498583545214972372387565935586779851576907307647634632856162114048576270440862412949132207943360647010076010600861299706492133699549872422321658601384672285874230682837696634025613533212667418799653286612236113291989267642066611405488107054556889135655514240766632505824553919514290187976813412454812904876638791796199409856094724151277451795564049585168776719518880179880242836831208062728810232566348656244849155719532385229105488680871761702901477931037194261336388393017004404946735504712357316831460608220158922003604529935743361107207809471691730753857197067030225830765341851243037145140189612596190282506722255608183843876732902551253639019972330819448361440609581651360179942625271943860528264552499050844031129210666317039729395804136146048211713540118679419695081081798513688871766479550087979408565659688929544644672488045207768498594701142270150267689520496784286699339439247286008109946643082468114935666486296236556867031201450486797851832522825136296411775935933250098820129909780817395964133650904095892488488799189549861782507255728005544461731758433852123342674622664118964007749330098954270603113980542282906400327323221081149008329196667009617956229773787441435674927111930750042554146422387754482157382014089680055719154796728843440685712609170862707579273071983047514717541083984429730332446688597130091279536452922189451641819600528715659488688166794031877838421671485415244566067741657091941289271954533223130730158050544033970102782130203579203147542931068563964294266687616164567896210354067201981879170921722836953785709064136076687251263778118926026017274143531734360931875796399253319386443377557847889975166323847330048853169768288457078637129943788271547148221149816883859766369114485327461163625387952272190835871254004545856441798058406669959132922436424231046648008042972106090179051691463734035957785682356570479234113746913873576045666140663731454068527783614873273117033442555727550256576912006562154401778671342426768962815564442695512063918246312454193502570447902797571340236091289541893679491439960668411483037603938510374481812343146553247652616421942863433344169840831816951557547836260997760162741900747470999236719472589579978417504885291685964156151685057794839391210541566478375369450174269942626655136586961206706037542655947602741923433574371340905876537290400541414841694043172919999687969475418239419658554599635629600595946318854571773902219844911483292637363843847172321946039070752160151821779932770982414840641282787505570942551731923910383545997247463421113608905397440461330297150574653376771218954454115379009690931736760703782152957563386852712164106391414241863305360174202213089439327063123542813155470829022827595227548157070049934579437109072965951651971935210881038119083027316745396939886285816804571054062964104788235772114548844831830129882300774494054272597743068166967912259304301338477984843338794039397331046512185642200512140137854223320753197070988388628850062311629382189748677118176209990051633346253985273487699852401394808872734532245420477986231271319558357379328680797442579102077760864076653370981469995070595338449909188785125936707637783927891809009609711676784620784836393677950606258944120807223193646628075739223671664103561863170512917270713196711945689998746346304528160166442305268054031608853589739793601008299152039774654332097192284568807274275987603672797059797171071625757068803723072997953701187005019655098722352432473508086125313554099243153133673953713894029994921213003534982239179565511787999152605931001907226149968402781699679561816550682953368663283535519885139697795908225955607532729977298188276811402760041238902702404184331849558361467754703821972926020560785466564299567672810380693663620494507316514039681811883155021603055206660894460820433358851248521689742959572838431183349949251436457520752773209583354969091094008432957990661044577698584393401939978884841225638899762020615134620172412664946185077762979630427469450623482182418000240943345706667840176606996076426841778656955395391103754124942800930420645685385329253407194513057926727587014321215562777549580886652333189283583528514718800265454470248692433687038513299113495867044026901506461043620513201275749397336744469828770722878200985685232948222235303149384540718057518248541211818531953258572596235205951391051614136219533041507341253348800240305200129128389303290223589513446054598307027781886087602340828438435180538230038002830282967788557719826666271175517249288039434433268270987903082719133744318287721441279059330001611958376398295634527222212236659874997717510991898382171594398517550286221255312968202863561488972725613414634025659298111772764123607764007119163356012004078450705298776495064890774177631490186399883352214860680706092561744572866924221459489008137980746682467660946911079976251222296216142202208368083291730931725531500552973351796460829949848148119511516292163435571751306308378958747975013573830952405593658547825664087732302546684906405739283811535725953141512576278941980673122534618352751690696627003884773032648594044560990608792327728069244397862049622288965561085366054549429209402776483907164603244909420454133336191751393442513735853128967363934509051720183765054050238211646643776935640539834479790034792562709760831162982196526103014544337182907763391810407229500085925421445947159956824039396400912429231531836205613475870063732064181880391400859612230796506648159484788108782734616291014745079472208872641699584763201362538025422137735866012508994630182591510673693325571514368320481291524369436307602778064723087155620251288615302703520013028129908669122146561040798050395377580198741816227654263219660516978013809862244704071041320359663439537370431006879096835883345733881149423475247901265984448074093114298319442294676963081959364212035771828449588104013571868615663244792415507430025486521751688985455809283712141384452148779770384193331258370214278965085255090452859717750005028569267331562809332639568485085918261608849649374324700980310220674694270212336057334708787635595923479384694099606488786732959205009779693705565236030777008855612011175377719667527086089748517480608696963937800977830802910040710438484016281393985414947532371373521438940245400357913767993826400770364536772306438140774089802009184726433802953788077018179864134099278260450524799201934023580303497419966153478575631509546039593139428026462489259385154754256275853715682588862740838238770958772477624106092115342484996345127283339306127931427565914088859409714028706184533301396777704796350302650198381811062401885283639521275415968282856818116722850433136014151699985791919351613660131592573617708098948548951443818446171578325411275820584867209688460156829767251619923419684225953753287679639986495157397330321444230908445896662425412059849216374256401412135291531159495657303730375651797664077582045033233056140569707534130272322376418124260182816714302991981907158359941618197169501668900860725341465754069172217740517953359932837086907793375067985058431655163858220131988023362039411015839727761402071331407190383723180126367561285913732461219835179568916579788346896242297225211108407824748101165052838046584237045160120811087029161138602870146029686113341657581265735902523873685790736499237347141798226617208942065608734579532355925233572840739761075518139946089616784986816103373204966781251946709007788819934566183254758984390028475325268512393052412308614975101359652284907546680736376272067753833132983703591863974610572366965876606899927336246918332195781176990166327095236668549489464664466157085780642349983006986530659066605279186949756901137765138530445667120180424681657535596249544612418791756578765156483217674569446958877475285472842079446945073703999046598741679466245061891440657013443146329552503629550517414761376915121501427411609778175827531956843026264812775097378169291139935229968609715384816270290030099998508412296198304960673511658946766071333840846882270225178627839963947365433222677601613668083712317991848972631759746845721459088806153168449269550313957808715522171053139069228536004247082961055484212064007100872436516749129861631364908709353200027652665245255297615409938841656342635749608374662206125754620405182679071422250887977164750834831943812821501408760109931488903877534714127583307587732582965785171805469484016453623472702738210592304379629713410531408409574047958856508265192631037248698132850854943562843768309441209174495929734559341072784439676692306826535284921494242020017497900533954182519540632524331256049471779552608382993415833546850009186630611755306511524548912342912582197316612616190639182441654163290574199074484072656461830433462151829853676328053424230501602645858483668711724369731089704376829760649030219196490452246231545896119409664691831250136378989060729928773742618098333940683249614405933493929724017196233794844810541136476541397409019503494902470293570529509814375111492338414909282136176787379215216678121913916190508859769105025472814679452722361394980455270346791436144104082645651143816074441992155235121282554011509031935052733947471333322224432209011428323128260329977646301241778077410082056993799480725781123800068062830950202369164259804167606203048686686002309499120304544396840936074689334824984957815992532127591762553350626133582053931192789572058995023956795934151718821277110099190627788746332797174511943419269143737883454388900290968398436722012714245333372440832383395352236910484525286783651141130761640880065588906222523894491654678105808720141824952244110287214955506958483657719342658361733428700742998927629195284676134715230421251590802308002033871787132007358683537190242268867149815105660736765853711820494963645483980883387498466994647472646084885221485732578179246590832909269585015725900125364429165700293468673129212795488984630386684109306582430165489429575933382786147578793096525099477369688220574565584606184498210212760851894699453893208173112272974893310766242355197423349933080395671359733536908587431111154058041534950150063758216714849738452311090397106730015800691808900408634597769898121403812894273061586461891227980694110301340815936244590802670187272333024174654504854785466502434974347171618978121540045119122218016064531103103077091960060305783629797854346742210892415456105091853023005243299356098649487017946220459511891503328269660612287264964735437740884663700763159377188308589941512022883817504414600328018895538954420503379333063638876854660744549595991454748587537254477987187195609807590123164291256177790684226171540616913171191191442450566342033628375149422129809406928227871978641141397923248582391621297977421391494196054209868113366608407487510016122415768226248696436172026980970936377440667434822333534716574660615159171552432658854991258264342091520749297382008717854150548134118373455507861304886992941148850351460463268979099632137600984076720800600941446099029995727621842065958528202143819249167412520278563697512419779682878052919335388262732921609857685959059327387719024031922654189577140817065782232348568767894595798653932959822120534803630616242595693433496674530470298880582613959195757271806382581398576730225563785191869392218200894100247892691208447152177276661684434068156002986720424338062098024467764717820833214615812439857420736408229529031173302838906907168610372330417484426426836647495329814862299615907890199348316382904225205767556715492724864478263307099093819121468490726439884816513520347950162877309870310843997937544466275618047049371503350303327141504728075613973983925508668639122380500650691530038099537008780523484132024648589078123382072752610973423875330002951360855175839805907370345969880896698781318749154055167907634982568156707164739426491729916229226001442671127504900337020423417523889783720829643884921741932460799532013528408750272967068042205837601908592060970156201993127908040863007879976671801148752255059088342248964507908631750719866520154745262825295440945483972962588271227781282466352192018084777121409242887903439348386533377509503971961339334091548011127684323988614514317228275878083578928514221951415222218640118755302858266990286532661527536444584120117109531471230399427677986104511979908364817975846439522908436112019676188818819849668189058028476295911119250531030760396411507838448674854007942178022328814578269723216904499021031896915402672145731819008808996967787879488192551954948519269526796396623118595683025636224051486443150368073964354949569802326100678734879710356842487245482616941180119507073491195925687454082340534056881703184580110657541741934855041020294526286455917551569226734096730054269584850845773413795569769133237354945063087046781903347448446227012926188468030195871441325882720861463717800650473837828855952831088646773587975905602585556547229830827012663345562873923588362715385228897796918718422118793972515769768038539126652848742625710697364099709853349461893351670595368241305750911142553485930580651571187284694641927208866665686242379461999515942504812089429904561333009034722297304274180839040974164564775437569375319395429455958049382910291078884598400361565309504758127448581221354664115766750872467137198046173737531956388995633247772554050419380091210859630008160533193646841806037649287534169447586519347383628940137284272334191309881792887409673512707182388767412830429337838802789982243108855157588209882622862553486115510953515194384508827837028616845991245199827111664811269232215194095044379967274753226105812902896134880892935593663201551606306613404790684139880501696991369032301675920533944759401089834037556070904100677409097722693478367606088324587098802690804070776417314668936929111217515338198588484084447685327665901058835411768052180239951766959072110871077786276541848819979346333910695719963402162086117183651096906261763026638180180822366834901031330331386380850499039735800954874262984715125483151489692457103456326089271452058009713849879352655790615534671034845119129315539236261478318526577815550427520131362201628342640880737944100061921372012834841233887097187973911281725343539602449333742603394738319004270576062345056614056543101403592583660486232383105121225928920762368734269795292502639117186532776815459351873780537140289836815214980735104977077213497594542616311388700668088518922438455131691114322673318910683424401488373538262342150201606480398251127540795958347471772420891130939519803294520506234115937810786941978010289444618101888600020990050136539895221520597349190624609241904277315608480197641023272309969030340960141533390250778628591351234653294325293400872612096376941649631894792956393817105403220893039277701325646295251354515549339850574822067916772928143673839466557797619936324233566172648600370453509378146982742088444487843884847087744260020609005447828482024915857926284902293456387478788319396437807495602142557330750349006721362146038438589740368782192412269671172357153850193952677084580066163287133721092567941445770744764267496319872130741808180354265476808329749351385924257733994032805615386508634318522253324665348344049125795332644469118024470069131318406058305588990791579111744355519267099966177101872500218214348885656154554423143276324358335883079473036324473580369670642488686580771776188948089712839281221302289743987523342192687040174383392855040585046742686607516466046561492758112466894994260075619293470785981448153396486179786205739931062019567222052544753664009111724899446634271776909508991942243651124749510047198422795156781842113324597726556655065895445338130127969835953791505031386924600822652274509640685390576616986592765141076275920177820468638716129476777853391344277721321773379629801486612434092991065485993213614633933030432369915061559194216770704319124867091441239922895068807714349705913897748052183251598327544692178949193540804288837225809799934836193886740939495616360202455077566326891465235363935969690168858397480486677413165551866037085664538888207042571412752458372976687541785082712427675299088773045784963643583728214697314699696129394536167965735148208638534131994540086252067548131266364543639385011370723603534529862921453058050914826465809506887999872597147546813974878023116501277477390083315918835195968291657595808095976956797663526567346174140945730269950866464828088621903591077639423792184282705133326836377101822519417170201656629004170629961554542597395005396543505607784062014864871738325341895124262807251924502166013562448415770965945726157197927068793279666910235275061435315356231336185612435789553030673211516030049128818418079101223073266142285409994281281525732634860999272377343661653975044449987407960875160006094004368558423976682832758816084569230437590888128088052266181694487397246851837568771696402713926642094136635330804577581392550085087064717829808175958309896816710875717043250449036857418754460408655739086146098216801336600644644479315175877185232318109189475152988868721006510562561894207175523564579489528476824217228900678789818905368419697714443321717404792840018590810900608801955867336142758544994469340441638571732158152434785451956444106203111108627850724288517799112227495361040025796905101747412772932668708235288255266686060948501815093822214895054823476155014543209866024581867652772309245072372846336300705988365440120824062754993068091457342530706271967017685259492569020973527081479426619455127811931258934299403861612391472771475507024433151170178351002503235908122184774701469732967638354638498563443948548861086477690955451303293534548433715613456859235142214535462979626526501176936270328363054732892999174695816697050379499725154521919438322503696138023842943259506594483300838813745566062676691735522841779945937518052791326095875893600118102116595037827033610688978140130888336681222896744888973757704093776386032094239774876486812426934587495326940613106017793803640906941042674859325251400962376872808040559326205874431403334134589050075801023090329807583005163614521129649081928263480253782615663126915515848512040050547896193408797733406035010125627616855659642827048486324044721718551390822069995321874983042273665923984150979998116436640674265045631481109331843564007428077532548516116980520559349147695114317321379344845456255249985883570926526682134008277038814953240895826579631908054803636290115064389268190300261569808201796116167747658960518458071979905011278531769704864138985502782957460714700216740333037550048420909128474860041667855392187698874896259014140132436612809993026420850556505933752121153870333102818773791690295709569460434781929998768095986997687974977193816155035659704591936308905391042371312822813954067118710062749117250424722276799770665034388778469727891326941353906431338508780610704622000534910262882841424177378714953711327303181254977563127321283218463941483263277848924937172725582697160663183087724763774610190034596645683091621876786866681291808464923592536340396578510635414654938703743535143962183513782602607851635086823905634522297460163742320655357799420233412147044828418063983146960368870309127934367007752333584425299210436164972441929731695609038662057978912080284276612242079113557470950861020149955405846162048391694012148154203054636197178788152426757865110522090071254870726183577546304429130637838675470087100740601872730232488402950115927384922716339056739854297373613596745573204784253419230902158351586963383292677341349613370990262772078837970124158125058550404700291839487713199267954835850574009419838487384142950104782562408390790129279292793246025149311052062467475852580150336349381457826915996342723323501617725028534228534474766550155411159376624238150067284027334772023062401649477910513403453567895431783012666683334394262218551011413578463189814349965895319651898232100313968588668494977445229063417144737354648650200667883409422666112579758912256684647125591374947035169656943407409302265945598729835285296797530962950980515199700390420824899223077221838266574675447016291441822397325293521252787258021258969520280629437069523665351204497125949954870445428942975252261105919951826777143270261341270802794360285158073788381853736977389886995919323963977696072701219968147864100762324306619401821072292523911956838312379702566069249815790346901649983335067899623328750312726053238067180663854719246456947274892749994753264250388626513679201506225684766715007045688855428724693937035838275827978629084941543767653687924125691946555832877560804436552984347732138615418853122743760524468125005916977667804648704588123735869162768438041518817104110424507054053755297745895726554467544778964908750139682881367627862293321812787238836096598103491034202181627685407774217924397377227001096577922417405129736419843967591866972319061969312797140900935103373722334971019243971264143274420257736308824128814959302967791462834745199961480361504936942306619439806320571583609155805133050403076297681327543423836244443112244205508959650588686255937534446021805805735168717465174816997545285494847407320891353039400244672957037953565485686074386917858362301207583059361754024718332188487406847360475537960528198691657511414784351883384186363177050697564384750010136233488317036110670439606186032657072005116346704423040744429637473748346717104181947493313737435426469927695335212497271437761355376681928835503188551318833180227380803205368721973069095186198164812528330954647860004225051715816424389411850620525586629957337064399214011188560821272147998420347162161489456011292709040448096573423734852571988156258137796351368207780869494927763873114068050279758334868950890970030655325381335525062409940488919107794886666736786076798737916624121039837702145112822035196519503895207808368706946751473083995982990266654731541480275682671946680679919819533367755470572188286195141528904374054181496417269997539355741984902379341972961677756311667776281954938641381857075096974556010031013460520729646438189791128301940161677336369715291359027887765915004604589207025022226248210536443043009854549930632147895490524421757702024931747987431386906649906227727788180751722801715911209803578034022298936364591558153284339770049022752984698683606237985807222080236843281979412104467572471257434065981983867713213247555354266353227521212250857265175921515575122619160430681472629093321146467804831233519659205190902682449372079507540767916244181795858107931301887962646901352201273617813202559385963798244584639275885198524296058766273444253583378224573302805259045945715166201070857907317408028479668452484669326482499179231757383707961438293174294781109909301239488038139872640264299553675485330850481037135572753427779061044747739080839066285772831032216249810614597195494843801743490413948780541566304656404019422183525752444506881327450069034937293363900583785042240507213449494559310762353926227626168173460234438924613761165162467224981388278136071984318794027427507178822993084578589248573201883943115094051208474815059397618962076153279608216081273272954710204953055112347951774242796041722958169869448351133976676233390481243549276617196529491699870162976475761659432591320482727395409134925807621333570126921941703209060486712992808302890463587102662542112058882411892657080752698914559370884549370275620883480762546511289088193075993068775061680002770225086722688131754605554991085318172402808192552002110789675528962709543640620977750391552204319650064121823217637529192128818314648241138417240962035029101610633779649841302783714364278372957563716722909899534559393689418928932594216629699947427925662509553522789638183241527855709159382802354758758932572730423328300295263593564307239457387872138997917954935108559603186292785912729663677224141522120935827627713746987466405203893076394969536583184672470419407469994698901921813327643035031228765445311727797063528427879705145324181178032628942992186559689463949968330727022146011063587269221244982735531248299985187672100456467609959731738988961671955360729629639400919664650155759321072452523718768921878158596190071721902482449358155995946505387964464049109872442051916142754483329863508638212750112346141400423538565999705620697067128590252215944317423658642850123367622400306597181046032395898136854252050761230844379194323952781682409408148672170379469456061018298450140819364976195038932918217572611550493759231754925889346199153708001582668636254894782453530776449738374269198986557904261632778215310590129160031654774165489334579381284950261848959281662838125531280930040533691892389084075124567458731995073140755325871140664656969911356456952382647389833808061354270767955261689503303343578377504315056251106877435888096904564991903703551419407440938607476923825473993867631189705464670470800373219757398178176856652006562306468841290761207510346095346945189569555186020650467219980176820459501897948872363481485429221664221657116646899330283695379666918767929176641751534559425211170422017345253314723934166164793122667572978773149286668947946654413087097135700541265792412798923326354933655828101508323960537500811704003811119968259701411012826197877067839532738446703592419490659202983226978127812844982350062597695045017917110824193754454058455124940857771563603282415566564289305639899060008492377002227661961051422532751535921109333543000356579600511149116615549003156865667750474165520883191133548284857483851342248371655136915702901639039205582872446954123580533271070278932788103000718710756999801070871566332592198573585353305077286244402202277896638702942898588920576788501840506993085164157938965275083230986067283118332212625338184729453418965806121634321499595142443990150458072955960606469952589299319890291939083169284465669383646705723413136941531296916617609178593252453364456159555196286625957534523958794884225053352704149933883579774659811905288105644853270699090350119513467839646513990841098227900625217131424218474151181055867479224712302569050799683116183640579666821242734099431469893317143147811152547746648365018134052550520502922121056565893128485824636348035611100584653727484386033459021287700270848341928973825144112826621195746190737482717427367723038719556964502844713943078605725936762273513002999781834941103391702435367802886794535624679963514193059633473865964102067967751679190020824738931270866844952688368334958050892748621383516540080658875633630884919032617653483138252142337544867396693635040962706218578010784837679054897906279504868966386620304960187726675219115326197553921041684532704589615268139534947176730252313743505922874700946336404334293462884974036479675881709047341817517375173708435136536389040430320655400806523491898308367319814799179934253346983736816000260403058105592185030585924775115849208126375149637194598621837375071856968943925060574342573370965763703401126742850843988437845108793642802052505454968957163562110034363676785955617887444889475281038175592806703143079905465918315996422245458638768532585209588097911802199206017289773794892242816311136298109856333095489919784038928092601993598556747063758875136791607179544975977484426985350701495325367929125910812523790794478793479780019707956130321555852532097483369261854201385393436773904873555120866445702341862025652387207096273454969217358224666126570224944119112302699788974650953359196686754891883467638469142485051684609682292695109534730446204404682218891167088568409043660085946891112224665297207166786537287980135313321911207935810215495879166936511349845785827095290207978208683918604272799235527488664891197778327221646349492786972008435736328942959060967503253889842567359874849174335734849823478683275107804704960175555946866248082655039649727761687222400472651914117334860727115059279217317275156410136139189111216856639420922511166424346923447009470758379410168797620597995495901611186692245936129800758020113461358495827111384500692430200642455160198458706652346676233221769657891601427257334614380953417436756883407979759615868513369558150450843061394232367438180212753904644025356744044539374191775907751326651027099166937942790013456216181583926437258300347552054551165431165445485727133260658456760943334606512307664234945672065849900415191208270335615814251028390236881624127253118163548299032250682845792505224544285542686278272635876506133207608058045580949057766120077270266618850293687056279309704486324316205819375127755639622212864654518216093220907726528097637317156091531890453597344918628907187439911217943942706097617414333888828629944826920779647820119874807990970531937475828655991308236565569293145572870550379756611687269067574488706717880985977088291235970786138463802624026078471083679127723647133580053677592645054286858362961817253798438228603013022400213902770906810820455573688197399734212862050521079585882817162582629944271713385598563975552196139339743731212802149301713009359782534505845060843852173400147712479377922572096277083278252875538541826611945143391397793721102814703955296169503458180462036082447527135466870146642719693354410505442215966325878617596206352824132928076256885424049846198829649990292420827903339733386871684195898370400807899535866816012064993050753174158564402895000082480261502180062569193631449511630993797991366771778576741083064419926396423411198214218782156541260031424285933437343062262163421026013884930391086189765382746736519199043507802886894377773200459206200216687690109820762673298426018493378758614031246022467312605629855516594833006603389540003280112629959706810352726985009511531150815424948587009953817626280360097236339201517660217542567928168636567133533435143708306288979308146927516472023489034783068489906538308909198554619963866504074050749663554171312614693223424287900572859180272185472722197950162566915608902048657432749873292620349727092082232705787048353284075206967440048774778612671404550783834967043525531518205579669890466951776126315518086069796476347168370403637601587097784767319932449455290773962807690805920802207494998512729830864474741196337924794246973794800044950490324593213599040264411459180400161427726433889206774074210365139876222731194159787438527066730390874454193076877301135342067950048545123851647459105826302324472349822060362478445120442916507369481151241969278114957534123615319414479018083362307230695890495314878828818988337552747758582957901328569221248121986817270214570574115643670950627718952719829269291388329866551710511827612413744457895222252090894110746304081396429909659003796847940990388649092854148529366157584763186583289557507293417932602712108648567365176946763184684240105057315386072857980458626904377751106251818140789374453679232873545394875962997868537099285789198164426885315744681311457089404649378634525676695335009682973857800040842266046648951905034308825649334620702929933400199642333713037773895068967561824985625360020303174432102315348883323017657132078228516960799995510772167637238606806792032881820221925941263835812386737843899872458304307620443879920868313226239118816975218432359316000886143516670536793530244261564293094710121661861612761056664104914492280992432164033876531693839366965979651228017906811178805825569570730372758444439263592859964962637201665751095634758051529735677132575807578478947669115810833644193929878549458284142627486966062872925714898855957065875541757833807074093233621943559257035852534260252189536645521007588781069578642612947872864903032451319639640920247765362188988768671902301226596064750827037025058267114980081489179957314640564723736558993083773433403094660218787537934647407202466378380586621125896494791166807070282640323963647215778914931119718922300652115756437736282960179631698469606550713955002489746845629543186479339534069100577084909910804124904659490680037382216514042857877410940511287988743064230675879990118636688330045988259344898059677377171691445961883114435774526423249510307786744570199490195288528065531850708218447632024504123342901595148595768601391183890373056295081531257592659390709073822584111865461985123653430633339052152500678832958686208567436378435337426768176729371419942869256012499639286637840671851670472413061762176524364233570295547539349767008717824814024672362196532727056166804222594165654576094295605372419598415014409929432169416855793193408597688158391697512535902019972311979145061554994872935399610893821522349453044284781520911381513641386632101982500184835262412477140429883880552375642517380831791023074710525513039660491599401185718323244069148368832489392502667626116055609301763957076687850713667611442018865469261187856994737039958929014246010294045141446628795632776128550836201351042795131956135487278127268987402267983646467696089194812243038613548416513898849999541935804009354665582438922652694392473816913965886436419319664715732701560399329701417211383238689372453150038208104776664324392788358748145334380733011161697004225963686345065546587460702123202286633893606077014181081430492731587223799565639786682808027656426333148252846136715617574939890106879960051684760949409049917488765070710664111891643491161664540922204184342222889128627475612285196426663998721721942939522175702905847321895841709808909599270888778105931870954552919716499647618885241067073070462243083130682954209499819912999792215949557976942530499733189052619198604582477135573747741112548203840228742615852536579057705346421014558308018051259656907817037648895296752684976620061542563120041380163939375711336030226295095834078210849901206340603198982652381879942207999605901545040222038499910227692124148643138827249033284650125075241188014445942099562144186309016620915206407674095973848437451323118480135832734234915820725803011974278504236892990033456345670754128723376285732757707868367548650656703263657116502022154592054432886354241167831282157766572864144390916700302071394203755856562174959710618054132924192392280292254078166890565851003019490827722393565084889649874686539955576378710052584489702340439092567304719300670747606794717786802566993751074181473636538561702712135199120101830636397562183641666426617042670931879138637130564758922269701726991015922894782091189498660721959885362670792527829110938054127513757488975447139338434324195297834736746401570834786496620978946167610355539041078697997695395950010398949969963523119984003062291574776144700619288751922467364175511466078098509471728183559085028025574900685524956462435352387135000338820207036264537240327685971690339196349258387700552326906274605371767955892847179517128612071505171437734686219382073250731070592479199784765762670333946935321911819089975934166534040982648744410535206316771733346245053608901760983956355892347357879563451058077204796449404693454886290442020019631755823391155134484302471361006309626659304491856882669427695198363400166474756557367512723443083706691078129025926907904382641796486205413461097182820269449548759628797594092530275960799723891827549000166275063462703397583690321403032471847004679373297379826758280622782372633331200337808027726193896350761269693998078194752884716106136588592727222372782552369939883446663736955200968339116011199920520885450267609254094413240745571000058741189707408280946396553143307413102669844898247318414858023000572413051035201137400584719877928777052417185836142060610516110425171659218099105706016950566412359567483086829197471575513499575377227500339102866025206368090918322065454201603419810565836410971151155175165434041363549041495382806798869373353913585078822310391085717204630123798303645772047241794568646216580357950131638895128183777052671258547538035415189556012545715350902182361124189382075664555270088930551485447615908005563237671063723569495516098085866207166626006668904364252022485119736593959002229705197886232299343908299686882654067777959062642725500544069153293817863875902516683598387701216631797490427359869707266809767861547833236504554950241350141672562146672356618996392219243351143456416400049505975109253063447993701895850999682189916853987741539799429446181861243110286974664027597892864076711510458131210657655692321358554797500637695701951876566624346296492666425835443251081870319044266142872140523819139368098145911856249289452230555711498469371315608478898269774406271844040404714386963450513578425710812975883070879319556119847861594089761513001552824108490783504980775704015627550444529126300911018887364628087413896588058196025205466318794010320248715695501300124912537003184271975454638611343606177883678365171341872454636829543033554536262221476470924210941027143333820954830467627241614048102585005463401042292317932144721280876519981893062672693934852350737412196590620203228803585328428478000457992741251138610317283983258517353925895140870602697633545056819642343678937424951750498425491707558687341937165338880970315285833933053483332463281828195742962290812675159765542461796948806858520410416809285589905213955451589495590757585020270120242422339931148062220815621418836903724352149889991002578027272751701176837655778804288666866789751807389401806239259551408946042284883144502937231914738465379954107082170756925450445837804334573274156361737165202132860591638251974629483250186414562699125579524088763190339787013836025004744325284497210870657137363774780275655447401260585105731048611051990802036815752702702683369198330764974218478306725609857577019130329850674699070578070021428535119978526285947848169702863258779600066298362517507645339925267098562876786620783415440616207992069064796654672777381611824944840448443198346561099097537273032070151696685025005759458633938635679449315574389687155392380967743028821218696511104979160535791287986099613860379493145721238608825853172772214523950812381949422576326717771093410300287824136008880683281751419811013104509433320376871965052945890400424470107946213149654141404765904672745486959604505262986921093020566285005369181318952059498025238716649895925969760138698908473011755379187842258663863786705669415747027437486325114728465733071339285290268828645844700061956990052497618630867158025572364071500960716784321843594936936638938476151963314002065887041717036253916462169305094086093751589264430788266555371664395452503744285338298998912930858195957616062450126006623632582621185331861715386677980991301938950800607537859805008054354811589097822620171729604313421733530410422976437108122256546990285747354164540179858434689559781708204328249424597859557773802276453667581589279179812872313387773908028197668612178928066985423587883043728569840066942282131099327558880096679678618769588813233960262676002810514834131971777233596401659711518892426047115875217282107517222304269288804076697895930241747161164389631235063676232610534976188047502484949474751235545210286783320707002189401044376146347743106021841312786135656422413303720951049830454919098910509907225308654793315687744871165741378671963631183908498743604762581770621612725636027110502788113551230583376724953726447917329362945565198661601221725240249129537198449126289095364182763529871915245775369627923427011101114652657213747182038259434522637346856669349055226440078452378022332595581709162335572259225414010613552580581504517645927498035043773081633145116517754134128124172409016926162073126606306758638613748036377286988932866742567147138813053948900903281309457635353291246044874346764368460990105202341856440758273907588184467733182490147556852012523238947116462247809059508083288072667381728242827771993348840969719531928809106574870824178268763744867809596460112970203343589097964316477096319698321388340878712594311210462991698697537069635302358898600730524327763490363510482217294695390905810106984765128497584019679513457913309514744710748974259193769623346276941018614586862109707016836817214273795345470476285584469057288779806059315219303538751209781905638771051213879459582658834525768007257225845480187091918002631649321717064170588460003889360632285908316200715349656092441461820431943217735239381541114617271535230836950735447534337561682312456673073096605019448069577668521752900327883395473696028540679773427423881144082557944360477954105554349394607687487469405407232147351016348851645076103111531287987837596571659703446828266939388117017836872294673452924613132066952031083388556885606166672912511808167055244313149792568703006953260394578923118091577461226452862977638080822501023942950845562211346753626482162654983079875014336708561437629823934929069349415692799802255317269485327507441663662954683976230078686809310612356157838799550666670815212607987880590682972596509823208782594696968600195283201299826719684488757311368382567476499385811534062765548522353270879508200797062914004147253423573861858141243486065716949468779008315530782891851066112199932589965280689386111062522923785607062799182423015376823046212432590898671008624443097299743402541388378168613858013393117418028770115816313465119058196928182143289929322987861921343636492083865034649125499358815196109482766965573861303339490680061091895583593457532040887568530925226155612797129993857023689211472842811793533931022989043978536691059686880407662188068456139763543533813304378747881358299867194086023841163197175325640386576628563467105769380329054933409747327641817726146089089570935595853860302286735127442571550507743681083989433214266740221401643179754263175687127772422971759463212729550266770214941893504573122062412108767495642184127220963694139484180516341177036509905095407997702420865932059429436146930915999313270815909549158672269290361123527072834907687559310137832220332925120355022496516412284100043201345203783581997377478766514580015975520931068032787806685512936340641800269035745985082039406404346686631240144285246349928382172347390157813623268745369753619161089243319996468874438063170952582530879023972980764140765051061854974329121068145957471428568009207512132989487001365911658442884680626231476971656327894004040730968661762866463141719555628358379778388089817745780911923549067360841333471071315143601567159463909855776424942092537345487224157743600488826914294225299678586876123467100406546108955002248726456404310688510417196149701560632223013427970290851562672883134191992421160873907579263619672392458647620420634614878606749096517831322555848992224796328924640222812132622332949407669658075695375819544574052922500183485426630143571597715132377814570603108206753389182596406716787149432948900809946038766546389171470006758626354980270281043007174087752255132286763674132365999669973807738244340916077620924788007134433686752252454121259994083686045079825274042077330741409395144037640075313886431080479145284363169390625493116888297444400006699114470800693300148063814288703662225867731372126044115972799590883721115791681331453189913008130160803228846360929390265993610995356858250636226695825822854549922476082506566077258833188288894981606440896549515615680142224078609392295379001299694036462345916269874512263399370881319983721987690788108692375224632305333477503129907885296517815488270286471725487313175663882850718629639657382849027689860967604016983458002701785482227034991195712934777915077538941861930509238857747346509040215882947828900106147658635234938017913077251850428394782036122070600353300806306956217912480022709368521365052316082138163518590065373998424375000983699140434769169456006875367191193974709704919752382281544018012730308980775437758325956402113358849976267786405717020473063830291526930787365972739498537054278855903576544730938252460331184626158204680967980139809132481849789495851301056154536181596679712058876111972719129593886624161183914863553989079951280752345834989900648865614337371036099333527099247638263002360428444196933938732983431380459342523345744572678322974736658569030988608654529344221540815256327839872163770400658132159640745424918761201536088353309489337649716727949782257901850312892938010760301564290202676914211072723775584597074459547086083578897660602935670289499021775566719099100761094040129922258120172924473853448014142482789747733220739256472375501434189492185585527404692852089627682855096796566714346368413542014476398382039405826429928197101606076667079112860749434091930077149092733059344779027697109638294985978528415486566198085755233047557056277903428482667946979923614284108814313734025523023303055248025274545028752602700791542349126148528361629996765254451352126184924854734742395273904206622142199945618308868116578116783230274220358323456165696206382830496264424004595786557766247467562380413153215400168370217765552583677111649554813080799739205159646378789484875313901225561001160215359287542616076647586806110344859296136457017631532942861758801308892747161094167298663022463253677833162722975548205166718923870384992298757516523978877669700127095345445828857095389176721270054671110156287253189396921584619171223660467755092475509577041555641518924277292112834458648576404164807192052109410077804182119832711792547871777416660785766404668354716255832709264699000475559191136169603848680788198642479791708665052784424912142789881880938472360529098781252778466085299318945418413569282014276202451046134779874776544664170085213924442050834991842935060983244342381286133834805220748183883448375550303359026803492285084651518356120985737077272972773909547036565667549230216944692225996950178926620625927042269387144989438028356940658987968503262393192651467490449519039164619981555842309299155694978375720120874431814592697725849066751411350786411054352924696672031802264929736086804410563524332677388847609760304235409937801937132585924236473498373155657239137241177663045365639100361867654788744028120649590142921302982256504654561121461409439614133242167239835352676270937285618727722582003588011463535575772034168286666193241272174251102806361739010541443501353432801204910243160435950077165117770412167645399161146484345858630158838770195977549505954470494472530835316371719374537868132032747576208563186784117440644727110106046192870232823496059078743196487524150746011037015701351719472674728891804467581613184908778851485154734269357535670507853294112431822087077488618632313781659294064576198227427147981922399553033320612687248765145330209840616520963339817101351636823010548012410480452072895512211709866734919420891189672386020378252922948569581415740429388448914395984095627740308788197524323297981666452802276423502460887119946755145071797385285471846583238707484699779455252211016669719144537282238719131194213832168320141574318096249189859202664501333065451860320431871565420114344029084490037155604820130639178115182965386149016081234277593938246392868106234800472586267999036672920397002190468150585531765628829648244693900274614355719464653672402448583489987403673569556882001537366068907954011298225197478503333952793245845906987689039312359022327747400437430889789669658984349181732940932144024798316467535649292551029798694466113943695903393749585536476473875580913271234390892931726511120907652944822440385167234376507587246977649945882339907766012304744799953963809681795000319729814670865905581152677198934317965753432711943420198858753650862495074418430022784471008620865319834745457087470814062101609283941598449230090474354090662258148101430931526682715217771594774640632178519554177168605579492641503779924200762502338339896047168889985588248120430597578673367652732542670274645832585503027428070086693184078047571434812769900801143790654908240667553134698204645128015124739243522224211776578336852525693586241777354683038350124732527275373155811715827160459065054533299908477976557020700144775111577486658124071107721646667910531711466178386230778299979687653892501464696987837747158693021713419296607759991201774586688695770520614664377351751062522872955809134696710560041445708237381615589605931752376492094987423476302696462283598695751465043854002534037324297414023141538367264589164671030537499036528629604939936726732671238353915500081470726014807599342173109346051745214869960373930468454632678810598186406432694962349407937452383785791803778182200055404648578114131558554300525836493297690174717666408783649219918112089091790653672631350018567880736999376410078761759743787845831268131418676162284692626286504434222952616597079946983579799245293303553143940219191881663424696331684141343148360460889252985787545496807321340594958742836425280859864643824486373737151531404488817620803797313916731770437576743051007000319307396373042711703128207011183053130570497206810718289176004576959768152204354828212348466874280068851812402958752143597484541117590112935235383313756705535145946093704867458599519980250045745485440183597238517303502352021162885763228245674516034371969045023255899817992405822336915717284219585277349093958037163098666815035900587131186808447016350086116877991969811865867405177639998103920831303521664487473344446799925972440631280652316589025508127902649752855257265788934076786767302574464233512123834368298588483380779842133492057861391566212217654410899150450671943168328213151358905111282037371648323713829246556616338485208277547999878532442217183041484963431392727105057890946557926428599369653853148353680223680114653190647920119986451106723059570953423789140542711374766763061996042765297948761908991228055937032027736422950281862654226464258336592139513483114269462993315972527959329431586555281414038800129213848182113284902651358970057957896478634745692654286612831854267944815790130557387476016644915081945465504745976924649247888081313234942565091032959139765952958961680361317583877063228208322312465749370231395600617819426075127594322516895841519516735127630391244955207809905922898107423968668759006920599705576574705493471657486821147635903102907466990206341581154792713326136258424717299623131623800063996036662786187343727816584369808020937158563503326642575547538424001459780261701979766165121910016194870479139561413770269478273056567814609735911590138093620173974131081165617963769292070915767350063447833443178447150581649907839308171541733610411708942801080114423903363601628457121401172104909672323245226669750363366957380477094732561009303590566163793203337953974955231926157305307622864770103633601018188058872927482345509347719049886892353202971024635935960607679054772056952334495523678802567976698066902529717306851715888238516952537007708999001588997440722765779025262370303253474376112625019265903722501898079484551835583641430169782091086086543247495731541288609752736822863878870247295743356621863202437104816460414492127514054015423738278391601388390662790818857182881560468288789485092932924195936496231908170218433347594125430727399337270528904061744154797433770219693781992540691406848614569267351020304126671580960428326948111279384861208365535527051519312456358513632782477562661706582688277027004040512485454143867372221258978224863538448214601347014420123738696729376271738648815441239099800269060679339182111622671654413036014598387315728542636489828658211593226002002735832289734507030939681980738134074524246130734608074762463958504039153508994883285736987517728627366593173753561101040066979689397876270632483436299495274012579280611252944091290560242623797508483122801408908069816530109128617541576553499262551102983049375264406861818384762420092791246739805659158935832320021865785211568720545826961207408052987734024038928102439867669163295729017070056250932649466675123482037913064859725181061561254738584027981625211435895822632240852540195914687465209764797505565370205698414429011521226115342154101801270102159439686081353815097170012152517302393107473930109404624748084655987224571684158006015123339937399342312645533464925041434763414064768557863633040430360460655578033782551376360752885426807768014866332292869207784848929638664046469175289800803492296271782119764629963812696541459431091733601374271698141392877120033053886246765813515593277107497597531543736979657035982191464665386225083181501688029759683490245753241064628103391778407168142402866676584604437787294786475829463176410289716579965878811440342236371395776210514091243232459558387678171019181527949354107452831867702804407288950691722791231827878244898800282769219010857953257490484205424532816706388159044307424508966212696110932926065388559051330051772208712118017748257647695933174160683618560462252217934480407099109079422107881577670340648488184616690939231672601797154877368231278294288066796643706409823446129821301783378910732620300525184874868843327444685692912944411485383752277811904803256570477100106136740040794152657862794867713038948528884612388682645057232678315937652664628915457034358565947350636566956823980165376541770395766961748397111767330232835536844244285344480606065997455350039338097688668081987335260143284308734015151303942239223102207726430284144774482849411157142498676700115211011473561330073468777708103583854902489724829152665114513613811827156021296392310238115873033569851881015686862430974028995853430314165505559428300810389366513197310707510082477619934080027220669977387358999346766502371850377680854809050876950600708191753145998991871155531840167497250085065812703611419706888316406070589722955187804524723935107565104364492411375754365162834433206831751952151037207200615109936888200087404781711340414477239365214750970836370454564660146631897082295897231528725774798308450944755364387514669166878322358995360588071692481770546991676245956779923330494989898961320068138383902510508071163215780818397960117503325799603418807379345750821851434507807224793678674799996015769456335653933266610058346278492420722769221006393265597336135815889830952569956619500242587487391003771627470375876281830997637658826984561242000076472876235269573047195842513565154527794103837883081598007215369075466828499256235327157053849432185500687251780335644162140715129617717196240474040902851368894135918048537635536696255372304416865948039128694448696747605338569315541385795125072026456782852204468920772916918669125968754821972241100676074540580545318957810366381252309153271952339879326978737342088838649358298876508787919980155278174144762037577409241383364466008104278300845080980648820938941619672810114822606505394711740434415398632316558042204839552037648128934788185762256974557491772913295887918051914415562114166373697287846601108052569426948411035429383465942033856987208969771180681095435847362586736986775834943459859221346155225911955851468980101650793051986073198985423834848347946834510579284486700876446309292601985553690148587710492320519440041995391087801876087048010711650552345183160859518209788598870171547226374285928174813180405276963754150418347515757308950547230469693915775824428436473767386611048993673816029224293664025880802256487649633203497451471765058277953172646394300944162176680222332631776999960060835987453649866045065857674223574189923935227833023587534197361528251161925221385852620353355514367586877725534690662795293391493381155077187028679777291200345417905852528347397231907890626816486225433106456488901872708866302920045096470595016126730751044178422401066184081887041883223707346943942257727651732024764458414799282923622152987803386053513150148214052435709745223567438055876994061161658850896653287888605078812797162012302832407742760052256901462635614829795954875556666184826909188617342082460788442768852834802121335030546708305476418586558584892786405891697163255556895701787641262559644956752331204959109053273824442302557773467239696361640835796275244329176973179147807206721277049467990209944968446423267336756516808870184726308467088242944527137643192064055158530937277663907704917772825699549354281320556772700827132963727268739410830555206284578257685413436770877369688109793247398982035493090997862352914308122551837012427707123633687391750977598885287098372259382636653780230828284189724631371615333984095775052905317977681097713745451046400950653895845974818547704235978975032728538766944478277255897843789718027986926468802111847763863606280622646805476797256283672551575175797848493442575045215680904640301664240344507805065619764625433302988318309857138514173083189172561447171213542573854833935845068265224003612595937490814884999711925580070111168540689503439835676054063430065327575154504560339680736971336861811231563691531440341135778196038672159649135151757088333334764177032330940264709487198473185208027168447461619804440077574648917273676049911459095024683984471246080849346340657753296038894792092863059307500787353510398416205939364653340031647872377263177331076571742498150495652665905198038627668758316961717721732129223296386090523971057905044617603257934312526134275143789098808368724910679076167339331085367325301936902339705833607978272562956832433179080265044248182271222281262971631664140521152185314049835577027830109834950172023093263315956898445090297469935574233194108495840737048132317421115702360008358669007196855828153463853643469644656732938698965413816421865210835764740455736923698876452745169788016083453200428175876328730857927216117492949909368977486430737140247970208734494097536029784028573942619150135756268579502874808076921704289292122999811930060483594781791599583996799941585166943162010160229408261473703464085700899111200279874129260944619782204006104607124445593258426824620266739217930616250766673651991182105163005286430590136129648695825342753450925952994607136921157985132828389535906817807661338452846242577168315348735932036250401211827573251691564813647030684056749528523296914666299119501858600430797423121455723809742072790748650082065534162525772210658715382783651940057905676839130594649253781965270000325812538244911695380318893701352707363298288308560777723830893866915805538932850693131088099367197977159289300283748775100472185697971482945779292237009057560454416316473624787836916149970736178515064138967328808553480059489805291344120611632732723572223211946627923079455227308182587698793957291528598908882752759227884663927156990756254782325239479373697507308184008035560016039441796866062890632825695328473556468910838319649960882990029427914223431215955650284762904653354881143642287616026353419298654041965405626318524055991116261999524411034925383326624903547234157504222882005262301271009539556506140004305996142008484375321432670156018578525598433099175897542206474596645456639905618956969913126471008622677060696687709824340749345732372691223031362791381463209979854063463248557957268129881644300308782859507857039352409851423693456167029816600784467800386442362250955011479942792254330727502409440735695202671445281896174173123317193773228609034784006993719851045213229131576866401222007412973280675648232015641573797719217162299820444126115095681392703702010236362830576956354871928525527388720581150820758661065838300463363295598785839193018965888469571070578566131817578588910905309462193796843544791060630407359668033587810043565947936829415613488148527191601455264585953372476388876315408510718546043682530392550429238214077927957091339315116192008221518800890961838582935723201787637530858197898267625467935139152752423152466373373566197892265641414474345019284607120915237122767539584640700457172515838213763337721863760205035167680276576025033713180619379095968603325464700780726811584803382505519391783190056984278143353126462396767941921409451459795376324293398254246033778519104191907432723249451446534599482496139024996670610198148359549980839645493800442961472954011529619576082338431448691953503140038707746093944637404365654918690359179663829240206923394090835612258066110754678689078900345707534820017142296438994736045910323531509181443098543145189833642486869164710623163955044520907967674483837085271095660659163761435728893425179539440496592758872276911430380566784033670825611646678916270659646768670778453068037043607217115613498213578712679396705696672898985863408665859241523388669121660465447532660354754858087542492653780049231657465180641038755130677725123337636611227271686800135643012330175120361845992288935306928405596859605606085310898206180457885177317094659260220507817252245729555960220829877910699567803337532375064977553739297470472224286400936603730973881619430430101920689304422472791800772343683900933947997894255818809902361343515142006296863169139116542538808683333487284735985037969782227905143482195642351509898349157367626264579717960751407087878556743616103319837445840650885556256806514946679391099679773693466305028612470123344774047689272747768578832408153237339010184189146561603905415464043344839012476432539396486435470844468460690858676946515745733388665737655359284209818135649089063752754320395985055106334775025203577596594155368675155665382776613188654717508541818908311252340012400819633826918576828612169288282048774180813690738824595445123080131002699047890151593408272931044969149769786960798497306068319777489207111771491504779821421291045492218105813375519034271940899719809014893846231809823348650252750520044510179881071296115850591649304647223870522799231996686284084115474257077842197881646648950858420887973700356040162345337922439097232546709552674204644082931632290910097865431832251285633907882492714999059056399885063589776094993457151841576760899684621513665477818505178564444122382632528149420744960618376120337147435982919400148844796727067030190082558307951668769217018688869604766464535562820834864357846625898737051652980726120462398291163450270252040606295228043084208005063385929492109809482609413617121270933484862262897423000371855637505548528381581002950729178004093399921076566864775860620368216764886672150928635361383513678380932779067312195632249120445773482089980458522452583384031614472508149878393349988046921457079909727923605338175712708656457100333476490443310868495334157402025427774108592946517950781780733331038439228727984506211406300535472838107324123025675078170757129959865541465626653819144707832119231316612339327325513989696610761981288768669087054136176262722923831232433695615795806098557809566664433399086547105055712669491132636165680420516752997951847409327946273041122226060493018493847376412521809895034932058052760041729920869467252818586335925531926191225970095119712407985096248074077743550436814675093943188252486224290782053389513879037346218310715693589459940720402347821974672205507822796441504072419354352121380550903718902184508665027770605544546263298627097452269357336190166054782280000631205593832002697969659635637033308599893265833162729670227888556880953403926205866742380337734485502118560596608955592175153344655289725824833467155072854353611837600753569368822884727606762106367536561453905733169714376309618523642059420626355780710119540076318371877126844999773131613770537658931520557310504432009394967874101967452105291422309413237230620693084158583470033225004918779115467656255325586648719713682428504173804260219973694137589748934650037268588105978461543003251424880468243638621253615049709404583874047569788187338125865331001374081218744015789079891858110407868142438265288374256357384063925985501738939596481342016348167920954375472062527293053885186786834272153764991914362996897256378916996565878466941988516205785879658741826308127699591704662003486877760561408367392044292463640205673643164495047744707693500787108523706558822800287198469045741293801302160270263470999272927040623955349449993469174937543468592291221125771389939906746506634365149483126783348194459562635797568115845609970071854021474250871640577526099592877703820636912767872952801340689146311521080417934133298077032663546630114487319809827334348451142760359080490320790190233875434018308047160096827860675701415824775779507274399080369353398388672304004105232159264124361549095118405287639663932298999874249298872750671635256484394962017005905523299801883487943505440372828595985674300660444270441454542587273684121786598995987213352480329927448096746799992602477210569394945426151334787708856535790909941526430812983005471023680749558013549614019921872067444029305154132231524584620065456458455860833081333515347645818413437116316517908572991422454554752142178492627663333761597682875773744560525582166814394279034964095148951844198686985750040153356054071685329216221724300533923236644457531137681342649213465694508162711950394054705870823530222253358904312007062152476250589039770661340666181186406668544492207400928174942244560444052513666090240041714349526468309511621872029836652193161925937584895368647826293576830205505750066346953817376031472992533436031399017708281298039684135218966427516190534381096633097569021324020110041353101219618974424722213733054930721273216867276714060149546908008941731266253208096623905936445530380860331213803498888502527639905472805293387717145080337157620514756083706694234034746273397759880483024398943424218810612235185801489209008146479510849849348515836599459369647097539526152577098734040590106408895002024702959399614256632846687813937633815900443491048265306601800059368197618778791006615710990612589762703863028916497460503500400193211335759613948672240049839376917189348694896162609125866587896552815467913486970468788301965445652387922627413989047495821775876361608899651614959989712587839502148615609878193490760666838525901875696942488917956942370717591918780060440843287727330841151035435185738384403089976461515746488173992521597470844768637934046613267132660504599268611370233958734726683620150630382107516492689957842921612835199289596579126960380708492039461306577108403052232762044066951068196580942813962390588675388646934083348275837832232763468044267494299382385422912233636709545821381462719074721973253531723365450938366868779227025909275456550960010460782131758203128148653817888181258073448759641381140288404948011513230091211356709761291783575498018804693193566018103551272647765067861352953689790317829338167219845817840719258113206536062218184633681879901860119330080834241675631509319932011795241717582355606402677480098821939012038715341256517787235561260760201309531288115237715176940857072477339236877893406746944509115296008271125586742508613828329060080832061781571338443516222741655325479187434687229465109989031810039389649029918308825216318686034008435677257176943478788723612122649709451354932459502667509477174468390584267082577481572915810571020625692718153533107158081733587130312444590729031326106650155347809684045086433581290879210501064140339762845901927596414502461157133492112928740294004645843032369991331173217302692541495873115825907294660922654812345586481110936739689279994166308266077826427577627631580849206384764208910329311791536523939287661342696770584905040307531791372325752955081947911292505677846321786432902684588062547782522519336843423981691411811950118029303816758522233248373730203832081906242722748956809025706426131352416771043584127383844315914831828126337638018696396001318595212601966682977981739394383913525302700214243661623899266925043113984661025196183259098909137622603512217673460255121483845169286482024799819614531701592710906797348825710986217842437321975761529054511822115561268163427841735783535418823605515193689015253862138479868249595072144236327882908460287469498041209198624245808676376188587551801494233390239920440803104941866780975813107635700307279385708259234144642812199917771376174494634351303831271535982002504179169067181026285828303360291727976802702701836469971886617172146872685542489392682621126956730171073375770788171638780141361463076842937703593029291282442678313896581547101813549001870433122048393193398028306957198844795341711137389929619875489414163482341807648825575617251101818940315005640456250632825076928924563524985816209827151944564770120053723763891984831393451373835650536214493457982379111062489414714835075613837074798590741538168537881578371428641505296391726511405743137428338381130768570096617055937769535277830741504875773739217046316466157278863842532870038447186377081186343182702721040319743634427060609599197190122723880319601041728850579282230239896658858664051073290158125771543170226125910418902431182704985926382804632715991832411910430675293056280217947851157379527036250790515771905413455718243699832317065144403398011233915870171116444099032247654893370546194827656450495077941533239897051245533295923793507837098296440335625861751579024128598379952626820760594229231191459880035574439393044114052173567250843831612965449263486641799754241046385427576699368791322443580550529403425575735436935633529553841311188148839725200591085482146486573078683802104339090971481108224091799521488756769135956132174801483514877893389591120830250029758513117296091872117698980423544507710236026630998794152972834061957702780261661001912787572902207087691263351054859643454614937635024724670109106484699934520558690642782448705619438814070445416029883455682247418502743864114066607693603834786628648018856557126193040384077216662831503359667177547261523998257977457864931334046325762025715325631595821725650505748870892685746971275531405569177228587396987785609977190951935951470250137211472535059266823793427786677435824612471038804069289713494396450179118785399571829180157619729833516470154791362805110429684315645249470784892474483528599847853266845799530092513926973695990574583786892293402991806366142065533654111072032489822200969985564968949662791798654666457431264317856314098912147118882897897407748009687265393329559035318784892194308447513046725784779694976661174896300728936816165485317817758695109746924555319481867145965053252341371056755421090506926795803258656666099882320970583022305039627031511372864330347489640633378824552931838980962839931434809792455327736231423902285110106316565605239578828166331337582982810484799629883996334210027633771420641179159593338629860130838914414057445371986873192374918134845785482407219258461896015463355124934993982503030062819289261152899807185533901133436091620587445035721422470098268162349635281510991620738266291953363575638224250519698355163825484530803221418957420585174575338170423984271339119958583400741075410189384329324238316453973090656439231913415521338106160113953618085561106767720777320973983028356430893966811929662159133829742371163344028621783050108937846487375179665478088161305215277152529003165157348589131726641950767311579411923995375652419220836239853355609813374065264651905283723562006425862409399959763939776634995907289883712047376052889120360741649670068792904746775651735756167311515972281691195813745704789800817871609198968924261030858421182534370659251790301752647272312978359229090571124254320049244349105759734760686030480066843962931379830963579988574945651670261971355077281324878765384230495629510174637438136674141758646907258114771585284620013578418672452154964480893559511918568237666368109269775856764082799998342257764896284428748537242389898035751799572629578904396359333196574538013350575056905665340199630623157392340662922533572019092687965266179825984327912803289638528466304695749177946103322551149087431511651707122920786664178727759785476668554360372702991292723315251961384521871214190520988160396014139197784221788854963200592305963877238010078630540093429742458473008706319335981245661220275513677206106659611724234114398789065131217258011971052981465786203761034843586186530883719626787663569018509164767191950173290207201221224538386740707550506592830894352238703921616526226759175615597661051747697159474644699938696523810272705136843386973147462856192072912498728055338713937531910170291188959266286938208663619414052032589486305453781904331396069980745265845407657163455945966008268944956005863357892455521295090063156303492006157061478694888813111466876517956721852076520644982828901781907185165673109945658224510295323263600011912705457790495094648236139670214417791250343462984177655498060219316252704232306147489553538338756338428288420018576934709011379352373670745162331388706006641244414220322100665629099794294348627519756493915859822085687271460045921077343957893866970297589873324571693348276136961488148320542658141555211953808879072427945038434694796791411964782497643185043664237546791943501029771052018236314700736297664542907650769017505643310381289289973772945563311536097440368049908880965213850984817232293899237541007938130686619248293283102564051422200477083145669201439607914895765220029889807177583123817984023332932008430320039956629242476348457211530606400718478106755095017430301854707606589819116214200052088711779229863937450978385822259859497957691257627856284375312580677413843633072309178737207282238835666379118899512482056907417870244639437183480002347996553000676457606340743637205812063438631741171399918783144055969482081578639529309515221752699981708916296816632002794757987824898008536919954367975690975672487078035770734817740950513478871200042259040031308710746799065445552329715342014354700025454765973230067838550262804934495141297029397247397865934680645581079193831892829159515198296693923826709627684835964350521715302934170274394835843640770302241066561315365815362381563380106681419869113499760621581621069861829321487732542590144997964741602997274317485643988057654877072377710328034497442045740117660755982279671655029053745145776441141439555417491226106614298643622207184623744438041797331142988055406846350069927319626211348651310503569930357467241283129917475466265683000686997514343541990043826498555625513999738301616401786053488487357349177673398117697365683803023777778193596476888324475804900696007832352818720155515498188867964152753480670736219636178343330475943592498716698523236852658720213724538480375151529267681457177450338086642302485596106691656798538165586364019782683574764721894104497772612039825802473838968671495682011410981561977114023497941438788857801162246597163140427869868773800371618897595259571694195887478285670788538387012552409693580647411217961362768337798689962454662790843605476354683793379962906147400339614615574579700514474792774273912352530732045282796177959853880046250231036113024732966001845115916161819102820171517530114598070906078905690964382807643060953649562755704123919929969071598805548662930198867636298538363360478329394674500373725912683533881829009466128535126897159791237389649857277831762406246193800851846727074720973298859870160177642270983878515040419243204765355529693785941947120475155779984655021338189591866376635502272916144892828792322763603525670117036289194566779718275976940521034513370375847421999839442544725615703662940965353777427609381415680017699570714337557536249120259848545212866114461583076271074768968599347570995106488858289170150946863496816343968681406858385319777385931688820743167923474560058624121898070043241877466663618987239487659694337596807647331799092894844284247463318696652014003816545676815545675502350831858402809426619911895218892033808641745191423019052934242922060756096943197295272878838999679794311818545372747773988176226542710195551116670081905959498297243019648441568475482576008192420421267754328277723310663296448352887372070435940445810210698179058994874387697679574673030730581182296134158754053613348157829747574982821949536292255929892293230149813774854579447153781082315605650306794327841702641425094725557529847401532481000085637432172959930748372008355953538335128372621717701049324242631320747741057583499483887556886451651073109927142397128955467527759422213303034972673561530733787938574719813793064540264418304863305150383659918910119247314800247415614573440128949380450079135026999989680018794345287796204136699358293169290095032699372888455701917302238011426099928640928734707172475882863024473645109161764798111557425929641828842054037560003067322179178287422369535051154745200227160234282390913533124274978473829646350704230300757222621268700331691648627583878219513274351318672341556378457300792529024869447282859473783269248597442160562328487002729350515665122933907088018383093756483125015313664977807955730091096980545995861973277198056301111517142779390803407756736447591875319244599947530236025807940844549070262041304720463173277586921877938064764845402437428824383569088319055246768898421905538110225103353480407549320976982561435022305228890464141214222465160603018446036038943383901893248828822949175338965956517288399395817038444693966758809393532812584085485220343629537992560264593646997167671975896625984763649379719770407187822730694024923006852779076050723172396931654080117589455357995779580734988944368681889141872215795934059954093736258834001170948840532565584275836750573725767265259277577468758827037589938520933842836555959417871622240177936171286945661738777016901309803200031954993340569566352191838938607046487314892177862947044021544947113022163289509142143663742556024979628738931492185220588414710388091535780190420311431150898416229675922702941065767986576664434271865978518252168801414121636585700078909851094498318510433767014464792351072305105920409832540113384578574360503645657095150680459235360448032938113349348421992209167546596333657520279910967573866377339462680589936822777008096979335395405015662682336323406422757113900454730777592720806848558951186899630318681817373118842850536015564033759752527604239480091447666895027446091051726665153590289606113532193529184345385658500320163320928233002837399498632714625775611333654353517674351243842717979358558510575481932778542733493237473766947889482940911614408425900157843778887290700150666940804419224546976560016314191432022854413517241697732807394578377042288723335946814985804725558616911201911394558934328748429445582374457758715661049000650695819897534570218538857209828720382980228098769894159869013198058380420525531292266015229750803897522585481356342193264217586202684707748200000746999804692092946817227462099044375149987956619995044492124743228270915728885591535101832858750313735751078708863966384181743691009950977221728826009915885175485341805353098921568042137801400073828285270567088347338405185996617168486808406573177389611861162532559015113529318808646418538880806373389558839303521936885844845677811020234094138387111687723951957256199582787994365017109924192092291769233410263854896982630081159602459530892120306460526413505185057934839647334414329366894307265817304272887052680167895419743489228117017544718268266755605664455493991589199430204327998571893916084412324762350440845370995934180392204065999935943523825307513869259315530879775123746936867744306647189727640552894480190833281797391414324383747214167151488001181955487334192330512278095632866502200807679325284681673619236923125027428515092214634493145288711647741408869530311774292530768582663144203986863392822052222024080703454060701261608682498328468216950312522732123566696741736857824483879786555008358218840173005007889110008150278420604859384873252612543628554805920379099134028483052940242460717714706498287701991187740003368351999990947033218655682602858110585691031491847438654344423444767127361620026177838912763318919721916240851252852272461534551118169530824187708932520332160348220614024686210999875772935438185545278006315616074684535369844859596869938478333872303476498464951545939793198481411485320536311835362339115029563318585114496879513094242102424774465987627576028428065984298135415050683433405973660391697161239194713730419699180320871850303588023938099825705108460856284659792209612839455315494766239545886676666126159342468339068332092032195034512860379073385184192635860737153561857775761875680611014262121056331020604829352607582530807065680679592620863144568453022661345189501278831130767556416899984100744693343336877850567082501201201817004025507954300915150878934474341261702041327532793213200359174956210206336244342621540253620361624772286473449263417573996839147458352680694299288912334727025553773446206893399482309666268638275390847254847355147565640499174183340427625326965940232385737193968475466504470129296734808345962226767316502623567237327026614592516989043288433294925077206859261132691131827849169806274627729192632173593168230576959455407905407766683486150308844270018254893080166971899565980831735721845264909286647470372771410020673622190795719198205401157080306651301555696494020913412594746326115772252976972572727521158549311224317115136924621162212319732955517958343313571475456490588892655293476072809732227464250766089980332284790661651724451004208423119652297936774230616938950216072017031143732979667268391756208783042977279597650971055948058576123660623136948946981836423465334560933694256027949198052570294538145444233859745351276849408216479815696938933998341419890137993000647717851740662840213306748798110128986627824664886782893375515215481353050683289579956768027750601156024167760470796659391984045210875386325742012011517897790847809264337374639018532770878742173040484695999395262949259056521124132457010046568644860297150082346503056882549965466266622251037025335780773915443920187097159971180696315402245260479626607234021813555845152023835651671724498490948177852539223009168120381856319131675973415651872608556949471360249417095346268366212358431172024239682413308667826125692585397386479252550575727904552380184645845874154618043601276128890799267458866332014860518213062165233422138854259730292387587796031317534324159215456048603694351452195774374679600398884604614335005848951223319995263976961208757551961606270608576692542912195281495994566154008064664613882052972888585844485033661994884403754119653038651848082330288331480129299961650682243355451419515031064825590744525638993478542570709399075442315738262275938245600982632133042383947392649326885253306002229157156467630928916708251154657492920337332763607608389588754189287046796283406898276873114355752623285180545141678652574567754858950988210393271487004154307221838098567900074707174231208871829850773292850459885463350879228482507823639587434470797303134795012212240499129220311526089059873053984973536085583518364992376133909138589198797353445044175990556623764824848866251644169107787630131410604002285212297696986669089224795952937346012078873185013801773371209715750460840112088401015922377279606418111076967727803045053642929062286211791461131821473586784950013644649892457045333608076163899517346636035715769086503521601174068123583944342970435960598657717296089164995778786252311922821907552124378988561658029274164515079744895309685197596254834127227881066390315857612716003336593088330179617552457694322660768003162190433314867849508806853163249592059246318755714560691617331016887751832048589987102832079247682719356871316322026478285998374523101647373914041734662038132164034073576277438232801926496165947843965668817149851564955894919944258914802253751858666637711359378678872234863701658987451950850122996418355652154575500048431882111426497691597221431321483149512927367270805681158385774143958667027798057528950903784289212555623816235331341076194449421970131883493135570883247975364693200729162501580051687660664945758615237028103689558683247562754961300525850451332504555009065740130018747585050753785825533236937039842737952776525610710105907387658537147124594165431457582588703891281311138152350622026936801124002355233780443002361605989976027348603306897389568233922184177929220883329277998875813210516852613697356804082017689699755568852832308546748291637178591478633241028779527437296555542403604206151603154927715864718324495291565775518329875287875988583433574904675820389496721409521994347652618535060220261042805620165973547971314105459411217465528213626865155165834234432637370977138818931093253950747687523539189350392523385846183611046457649589653738871447204781806274024482892423841457867928760967477384696643079567270619829059634252055326761533040342389730420562771291335827928333733255812709915002219510429059945790652301792000087471137284871529522920641246726275042750269960633049990296058098518600888727461577787824864573056265469820327121441893744967797483351740770446377132079298329680831647442897126789698999748950490332167792316831224101364191464526941202917776888432795565169443643997688547140066254356728295489302682726823953986055985966172016052550752492056331940886681295684506242408012237457991014660424908992058825849374873996584897648092053802555472324412752508463825626320594923918268434585728036883812494958419800174997171289877353153830831009266162442654164441743943547166911128244883762407990441360513015148098081609944756178860922166779165117756326696978741763396156107886460574454871976665967215176100055423876277700330562769578382152210535017280959201009214852117562344486218476282362968273474031521063818486745801026066637491547470836858963907919924003304287863887679864622493491168113687666024541687681102491410167272740108490337135424988683831217708992891891564280773096385368604108924945722517872575279490370624275228480774834179969722676583531457667713570277201901589939732413818906644164862534421431140127270767209909830109185014496589941657113517618305953471297026012376662616882747070818917683005414868505305544668799008546249911735550979064321292749221925164860817702992260031558264948284998448577541767302671410833369820233602816723582656669811680357853280324470250126173483190672596251523510436818489096485530214174987005813795534276390265558612470675550255322101640418364220604379761793375990449389860118722875268026026469834515181168155514707878804924968108539969105802665585977493547757609426607071225619672056109129741911568173802220869357348615047641977107365242590885515967497314048282822603541139926121644982614813365616580285817574183519903663383247637506071230073438544750721574607136404080867454761369654999686657437483610011441187912013419196173912845142612080758094513844082377724549977294792740678986534489216266873004392151618778402310531681863534141693277340347250945217966732004582008926391246108905695912362746023506895750380463742094718035675621404773760050757972373363504455098466613880613420758841565653250482443414375755608158894974758694490128527515574068188000597072540476098610925488715421469945776832212125441820727875149936410996850512151650092627287024406963424455227119623318835283472986703561167373613084923588987116761348541151590286044639655178728241206496343881400575831889228705226345516585734804877931377127340958017488392015401571691129038935177242691301164612470806681160091704242870272806299954441875683716725783279710822375572431375206129194960763670766257251938316403360706983369321663876149954873643137750528745496980969647174584103999497214665700721130464642427672545118501644809663465189876193012011315793141796321274572470543476624901926951433142017805246697787015474873992050228634544800942409958676964263816380531775179744768540718033604011887843657914696065193259660736316710691508118353239805539437410846970838142063348146255349640188612942682490178407052952217450378540252905817650952245685039966500660069722605999618645106709709378755044518439099668242168963891467799201941022663367746240866830606213307130961845914295848494090630556436305998183367110718106749711737033400211208932609361107918122758329501548018103835166799240957249821846809849123892751080025167816058982215095918195114227758526612302609528291672581176517866330946187891204215733098722520369348161496238935446741490621590563088280335008800220449082166143044991074230771952291512358163086800822382988138514361894229935615637116390991536553863017006335570591766139174348383004377339458206643609506115539112408050750268237889200798154319664845402572354741839360863345541186559835010921846730237081776917816254602826831056453381675317062755639937720367090552954377741909321241803693237209461420262183158539471880694672230724596161444156029173113831849696993386309184806747140074088379266537891423737581755223945872772634836335038820275654566587308438768475379050487907969510162749016289734748261029893039921274947367954724911328332576600936849876626572899080286894922232951192972845007203511859791093496668684540335473860162258722632112293620031076032856992346886482332350957243418048790591334340695644174382781943459011423882501860968847569306146350123014984290411182387520596357442277574009743165286012394319167373102227009920834883176978644630700302079481747593076999364421875219497267461091340663447528088593571045043199804722366598702932911343272090012784091856037491583091950597378859847320952081040761168285097355659907783904374428372284000235625221265164800282476784953121305299669407050727683241950452400213796871977242216703765189483230540292488404515056941104457230703717257996102206720465331129419170390145440715952142178519887032473608520404369370347401259297332946764325627145668236564353070494737667314252569732997880154496036728964258617636849801749099411524757993423442148771348118683114049333674050252341415388993006938680845428607951699104920446192244077897004705644577742248414756651899648393926625583468641627001252241543443501108419911740186991754834898966190807646376119289506149685517960947385778249661008660250608594438534487281987709900131243662182924352670525803309690619847386978152718033288673330715334536028629790771555828165183810995066086909540048012452123632934330930246651630842793985207017726737740026987327713461959737077837859283971581105140687094354867534739498827156429184398945274395719243272277643434848723474217606400567495978525427625622890759120217574248320831750618207587362023464751274153048255618550479426394784865779014956583414587338516618458008444365837150467913032199143049802435820436076325029917753121117665807545740462441291957442143677863634363598870765753663886134228511013118420761151566006152762242749345684291665507670624787454202784134059556305165120026328114706113169499903603854715586254677468227489073882412219602342851158903291274997767170490707994138971569215836021716194723294992931481553402759155419004149095064546295104347221151814178026643221021538128367545366292753527009566074556029748785064369726096235013442193365836173278156956389606426973936194339687310034312532688571259721872841253029341663323348062062225307413712536638871250644380640265022696997888033672259550454594947025742264818907415478243124353148228608290720123244805025374898724383863189963156695289147460299487631007828487793761149903784403028535265821431578091804314589206792987207855457507688440996778251441289757841859492146653742629189384155119969814323536585334935755111401152781468443057406077535514801609700736617534746566787012874495843427729376522235093300823482706945749549500779794181479194794378148610807481300746047448694756214083092053412308265327895208746437303745789799519369132191009907908901998400334375829020072620824182362386632968149622456212840665096241172950238876229305953229414168124426464820640719548393883875626203119527043227609487670451109334764657641362059317701535888455851524164826801513932400213643364635421194895325969446980662174889824224028352533763990201056138994199902355065247987182385425210873754148822887547822948657791831317143714571498925598039646143344451697552082792113825481482928126804730162047484870339674915490804454431851798134739918824639430044320746066130592530360837040748159057305003620647272588874473716785217476943657014651187254408531692032628189658335754149075895590026435373086527454437855355946744258176856785862414518726271571588298279392212977827029475111267042255970865615821133398508714627756536104127060610521792914979350636443605320461715636604200236196667055952560966473932834211655427209414787768028071885412925721875427982072290593824898474419343413885043967716071383328961478822640196599179824969847279771729874323537356445379577751237056457631181750933453639445043622264446117985259771397165484072180478443991922045323107686048986344279853310229842925185629343382087874626732488908390204570755630966075904784537640996603758977679707983288378823552025227162665005799277053287578431482101017877261675588075576653654334846668663958081517305766000964156078252680378616928031472710286984371468522397106789965003480647984365749140434984348142108970791752488107960090967133604405789835331921285830719089590919346788005346887309657711588704431589486166197043580459469232051113168860907276337977476094005310406949590418500927161307290924234390715118251952506558615704810094299215272819017294725270365487558113715274184508965628966349340571662310146493992883020958109005137564494559549753379605331541563056757793522680521214348916919687113502065081226552006677575414242687563750998203566036554925178765390518556098994053742934310828436696136600240306008745408769952371887659084383804029743957892661168707274294065924872735755602394496453715175132758335422723670120125902531769947264907048259371377979901306139261864532250893794054575644280745752518726960100964579072742824554203422859435872525737519356338419156841036596152965284971341933659473191494878055162529849122457067055760495404615243801927624583988230662713082926964145293871621788836230770860534132792734522650964891549851221847867647877123165236555620671892398019079885412709264052556412905098903106107411294683021691799356458952306558279964698861972923959893595565847440344866953328360797083070788185888005064346530120736652413582037405968762029164589934820932838409027356071471016649481619239263853692118578629616131981081471412575077150670549948846900478713162561118456823319469770788715675060702309741671074133228838728815534285426042095593109316073794814391649687965504091171279453003373221163647089711930197034236765766077439672037714125784809098074774905052056329000397959149792025513026565762280959236822145979301378667102135418758251495949981118191233675434915164470142922334551692691052571908048919207925509362445323954240675696906645053592513853542621630774547516672261005779758421739427006274770272552957055802711063455034106830393556291720767039719362181165138953224800435954924873311438921430651028634159562246146198618415762787656105954291523644080950140264213707789398832788449310651350047283722563714666127797252103681992022273763978837918087525063429968231908326215684061023667052104567698631242753148760035607055110974455448537310379805588295936957160417884431889329533841364702513443258940688348091362027333599455010573821986381236184695386340984274947929953840825443064021334145459516454502055993883200150903641915425592981944199199050035899140615204577556330446594686002544127844601649031661060899182837404651213353538884176001185108624233060517771875175441663592753699292902996340637866539874196840146271266837801179529651459946997104780723206165079671957573028377000161729790948380517193036736433921206152358897029591371307238502683528259651069102651195849403244841889711192511066985648784423597714453901847208305427568368039969109441508971557424116410357298422963251773278351636259972409688769328073378651425936525920255270104454265108978323624075260729727890999216690344771438132079806599920722018701389046988044344743245980927935538691461435886469458094401771935749860213976746082955696110711825801502723236147429267514282330778599418228711838238192810427352003903221189911370080756903222682797978243439756926461442803796039751664741813399172488930417191938997363184175415641832779646898979198715727929051429455186432154706346669981560559460475382974442938028914898937798544346654297593476865682330330490038497332152308978946199034352175117675022362110202857461171252553438965832779559274482420110635768965488776480869047260447861004829937566262023638466408872590045973125914057007463197592408461544137517471769649067041234490308902968656263866835059034843055445558992139444734210330091861572813566534398533984106815700052942795491895652082811366963179404340520507865016619895615934984636780319556354159155391116517538021285638491930511645724368995904793375137159373488581348444215534601457298632355159976029263751996602512106891805227560129396743963200669677438807448806725461769641127741073081790200004841153412819113990233728172103168382200381914168587248798449769727755814225934976596555903469682620303896289999179335417758008108142464018840324159389401702776958513864524146834004520056566441797837739322693665239553071726390867872772891490100894310560601179959141669267043614640367096436678420781523595398712763126119576931241605040086220594233626776384413925968989167056673854700456315977655404695641098211225455809572470017868733554425442767917078027530853905975317621676771803500012680894606103808463388066327727219105221500391684067791063515070591233051886635472230061178542223217316795956791499310739523219342717837271069102751295253903661680562017792104640771242496036016611888198144338513039872818694119289261308210412079014087427900041451364794441872344613917998422326416220363303128087584987825594854804457591193056756541067996624587524819502842614420616423280417572977062467245188812261095823727667042512613058220062842971272067406604529899687210413213377164731907247135088424653371004346421237937894475196319343971156999150027687815460251724847305280931393748636124366676428122514933899970414273741333830462008365764441813462075903199642908614173713831529599454546118902840793996021536715312946735197816995796217602850527530770779040121001102890446907457816471980359513626524650616105459537755063230430378041866365695139604743132236814316945126684212026689692513650266730566009730576718246056732319754730336969522425816495048821220267474110379678266276756869660483164430048741198957126989293105271417042819821316904312005764215504116476253095012521067526240834439735673986838641098702821383106625121444542688214903940338937942359859080509544753520140480596015770463084041396542697588427589944245092909462097261884234510596272678351444242296030169644616125571017779174123737512588451840490430423582793808466313108037023756746026914525368634773966457836198911395279862018145375274887107771563822643717797037892217208250634428450767177205351148947986784609591209859127711589705210736959500892067530618808227836254827127734447718963751845903016700202185202595155127374865179152041693701560870758767710232396061155082167546533381165723962120256962569096726306451662794391682932972532664375164768904160033629995109857944190054848556504038742952741140902524137633131741772904910512329304692846398493843022307273959420170045277436972639741099652337495857659871085620717276764238840449688986660837212052730112595690949248582949876501227295482706451183355461523153060838843052533544248655443714429056240389341946325554997454191020303865323320338629228779709336562719061370673476329889660996861621797203073400500532504034833602258278097380443891319167541876056585605614089557385039559851926099923651130340945427348329431787377686022636213764842999120334157662367044277064978936830155366026835411291834170992063215660520296417069454888995321245143103799706757577510605765557349051500258720364784390169893488793676328896320909439901041133573265009088430123754891925683325919876546214134451329896110132284891082726204703645758963082855285203011261125370471675161877997959116634396685306546130691826002478959608890923960554009658028721399837086226036463985820665475207420108392638141901165495438744082432166179988080554737403718415602067433863454969712229645205438559184678312587499667151262189412764818935024095615235278677838330377471243189133927411018199901874653613543195049209568453790543478443918182241766228584588597559284422812789023485867613500412110449733510497383112777046275398056143190958038703807068195989294293899054750309304778912390254607546663808146270693432958898866829731660122638509030637481521959490657530506950011036468536572918433192268687443768967608776786520151558237650851627922454506341709978827968279023645959463163815082419410109393934428395564340504165419860205529838539098318988285871818801753096982196555584200588647934859198114259200283785957494217361681906833013658994924650889898328969645698902613822829313103040500668244922506491586360712239031321230839917962905696456711969941389048972478214013682097599472423530850012175657669290487024227491190276050605771318944096306213151924545439435050784244899721093037494682900738060736514929824597333868733321554999293730215941053501176234325044655387582054998183868957202429641138562296336008884566562919424863945459557020802992147122539379230565082116546371050615570759941119260534432968227914399718052129625423800265674558829091855951519595290210010948270637286895836700073863842104464416772468686509390763626682490397265935692891868310445989418216845124874389887993843400895196993253948256327349435129511491346725972344501308401423469480105110373753921430088988287189335908569047996214703665913057486084072984804400413851331945517781699129398996282677461327773456785762296723137997046120977521871358405745308722427276741852989722717871791648363002009835318234374959895384009154000877874743954268277192874212064133016206770639541863032741757554031385891972708391033558295436423428964964437839456005627711617208461010377419736911209807352749996590736583961586992696835281595337697383485667204731756291827508346694346437664951414140838029897094598756452872495451157341553100351979507013740347005202089772930212337824684119426963894947525167972688293939854062695389762335572246402874247789344590892588884819466858174218059350094848812540639983837707332789440589358916161806402728351542604775335701995270322750386515403602496578807533013453043880519339659662873119561412866356062363638188420440289256079603427783366103043769291661451878474161582452062357873455728530750645753984663966580695308537917405069030849921735611233548747698295754470697162568482904059479029679552425047499476001460353856093445331182515103583642298660809023828493321817727970904234131433804331908042143907570347069819631166142364927517986579861277774220895180959441830928471845813096745878378221862201146919767984007336469143828960171651423717739927567138265843135107570547823525324798823432783833318266501296705681051767716529138892024411271151272056400099809662485007538384571741214946712466955026461655276908891373225751814770949417072626107692010358940591900061552087152603982791760033530555593716445869794840227441244932090583451870420665019150666936170424934832907316684406327067280347926958726918729821257156922797622373999661147208556654406745035138565921638000729088962820170254083457502314478112447401523707131216850207731799978536347353651448050920999500089909752085366656988324774860074674005864589559047094059082872656289605439545779415267469461372510476831747289634986551200699299726426547306333127076289619711453419744681949420000333875834935605974467586474127099282817175026538301096034886021390894636263054639988646264937266327597243191346901488655726171691345563376385299404760737996524108730110592406326900703614259946588763748541317823290057796397639794517944165854160643966269278569759420389461847530336836365241890149168023801139698273202213718636343792820251196730886758111320374950709340099904289420057206399686202379863585076480453784649487346005871268636372459037750362931459888062317599423624894490056193458866535743451043585444003798240380230615856651249336618903438419249678667341843855178242568321592269380877478761524353094042818599739027283738386854075021513640077464068169730089787667531118189097756909602586286649425945536281338517148264208472783300334455863513237352704221001646453950963981129593913205262396818477220003929871764530559150576800752023751624967244362170147207840292600905622754216087317591297212684028534717363674841268698995654100819795269541712119966402100343066452225484071455688187456194414283779082536478382424621654868800525988971749386443030386191338819805027851309708293386283210956672314201515086385643589136817761828493170081808057194525588335553434614525720974284448297147507142175548101696651324073450310952614735666753665581360619584786902175672415330313050416227473478152374206774391104320577453994283016402541203238562736814121236476475766997417526227821214021371503160565625314971768951129830735805680398920339098019231658257734222237815472396698302136913884751204773644474230649248746218554372974390991157824479738566144621451401277655056148105940996739175083470924308445858703513462559085173946272554079662674018728281871211834598808609506040910756133026744307111664263949354930523111069028279063853282752138030725304662116944988218825633616573135944336699501542917780019616753245008261588412026734725201394818734214188590525897836652792459543217663328955504697907260351185381200257708876448717129305935589405854569530721532595820102426697179827201301979895929483352256796456591804605586319068480141707635651110803840646291189220682965182507842609806261638841328248247927088250658536725495287598292466622463695808620113832785893510632666983586648642458222190456510105016654978890904952800248757613428577242154792925630774968528205007599091134093051679200513800719963804601300248942794563482781169995901509821200584945374997231415562126900772389097100552151848840324762839530870030948449236676531230126822327293086237533551834454806221173862075949019931212182533586508053529721431968242190065483878353245009046643381592647667363754927042612618235151832477890329950609539655844749271899770454137905959727210014682500051879209394786398231594868690179940428122255734027113677754511119985391810555580567399380643936680238059174753940128225756417375065010509466873664204939176540028672742026930104851773531882695827933296568487199212928827122861112617133586494396136839470814092077036495357496836103298976966367309034800963380020771237209615243564915295021698461875730350043387264493669891143734714752823920996052320418632773139244400350940328333903258486033591427341971111251931673313156128243030228508117685571643086888846747065828249331112538487885934053963095377184030925005653304401330448158335662141282043463119354356498626873040678574851531071057273546459185644472914071952738948707834599203836473074065140178207420873376172899368500915130260885346433611375828899020928113212055496189426189841233030602775677656264633288185166312619892584267611077806171438419028329635931877655453764825271360732613528771417601529446128243017025623850873748535211955579451927346811866601972512859542377299895193013550813592068514517484077125708219132103226205611698343078561130102570163940341100476293803803361372398993776125579825471794646851680284987728163186965559752668535506927308193838754326903663082324326476258587718202062946681760603104882624697042506944405038661499473182731954027335451355541172278682791740765246733185410124198731460223283566952541290617176149308650741377475602522622420358074768002960798566481545288692293846157777224904399515918648668908340614137716211009169146114016706861588422298412410347988439753981440435170730494585681862099398722257853493629546554316541110007852753153233831486136814810723648253174832990476763198505815793592690146657247031620598828384921368006792278501238859123761466488492123625153284374602066243305750890684689711489757798365606736197415896401158705731941527768034046559661819093977635164555866259382993903963894898000713633468441785008401867837233161861915489329472227204771191545805842183464918441570297016975645562649928717482612750469642067013364116802992835051367831235360984777925072192081611058020231643563836586092536055387564438014191569076889468939809921432791060971742580324694342748968050663477387036612705387488848550018670545765352085724880040836820262794727562927512846572953242630911563559749701353442537273553199965822614534055975179872815123559880623684551858482685886886652202880462022494746014383148606921156881686412671240787391196977660056312853167644430192568384184210200329507977183869307471333382166590895785964572721931326946093400059828111473754839857436277674724768719660894617747474834800209234359282578141724457040637883430332739120444894790525038396041484971396745686761069340263581532472531155326194441691657835345720231629261507728268890751446660455706950403709217088625291819861880705893219253653067727241489198757155122579497508405740707229085407575129867514483336878050189164283404556521840478405722925949597292006132714445785072271189897768330780020022971227010544977209397459708968323996629552308489524610473158666585545114976839409667963040036726353077523601470374709689621077118990554050210457001440363406849576438022153646545085542029776403673942120590906860202595046841394155950735742874596143804763049359562588668064542482067599764145810534126034521698304942635202762064380158066443094914631882927634909866043173095841134764319484289991052697342274458543537666961728708338800033485713507781190696595937958574055311919584586990232960380370442558776570219871103857559565567991294940665213274554716586370277986851267732749851492601147584208386186093697560053293697495549069376477853105136581805871077212437297133144064932839991333595480697946545940004019724387140219686643003139817664841447071280034685515824301836725211776792510621943192435543166924200424203804003075713697305838715483113113440337609063750331994012233117868258501332602560848603311155780713882209598293510256091604742605271818344850670489778018195054921028372102313669016887045370704878342044909113067266051890442153093344421658532280794889248260387515536231616459696409892950780042131276200252594158162926911398995333405402378552587884330898715714394923547451225615720085837445202336267743262737697734019735567867234739057632530938528757163016769339244525071725720601477926596510368106614376921709011761532148179836589919559997928596184179351496774418313862580086365523182108264374667087625089392527593883020158535851703021899612987647921829931934460220332508672326513210376204362840352484698215753795690023909983705332793388545780084574047255114736095456873066279013880793898168909254943160955806326288662606739981296811538175320020003526069124816204494486140826838817508211104692107482819195707900918031115415714469360863084281458984264933015729471924640096865513848060620579881433243061252070904377319277536054027555331005572196883308542998868077459895731384329849149753761618971757670938594425810323886212865110146411741938285562934319424808837385669877529809755521517128270671900003814514927299048130354852574733221460733337705954294326910671546310655874811028733210641864396199626239193993269267163949474731227211536879285875436198222069581517797497240903760605245942657178554590440794830895925759170534919251655408714854071709597283662929732885302662308425608088939043754634056538721293935032139779518034926069446035185274453085795306633952061373294623963314665265714246989802092333252817846277389938174342662124164255575014248600872569080256018429259828927095997086648647407252096691238173602562372214887678655857020757118388644035784903465367976654670575792992850100130845471019801782679576754303083841604198975286414790752040874793977238353723400381859631497679160034798360087104317274671756521252923051436423273197497980007357682404149787992795398836310086498054007015371790924427467223320157561529754978585803899509129947309332531010782028536983445249467790054803977997372526278942644110143653486906377870422159431993414912782121361702382274632206403821098232581350492506577978070681392353367368948825641984752758805470943981931852972848354831901528804500110060040385822492848236761249904673055436449208964442115080167360051263382890482815368691199248143395333413087930427512021994139100472028880958401485966428903127709578449128665321642743016485924635110353902141952752177429100608729261176204045174139184141194947874953482399816156499477239184945818778634116430897224778757372246211174079952208841299400845182917011890146536652572199518174940158030655630882907615281275434767914158813828476602131303601045965017156162087646856412252236020746926713634379522520787290337188848076917266991099655453774053179511754636047717893655241264479908486075901955969098523471131546060999993095701196231017669049221622021806467855434564892872064494708562859622044364146483190986534603017734183624254849497135686876616308143989717697379060636062226229332728217146870586331035092978750888083608886461680314068614435081024362779641922505865249119683945035627698984655905289821869669272804202913434392790823288846453638388688911243935884789837865400130982663555760494286036919905385955815453454669874072577489548019174685427290640375101520580053000866088485273933088949247997029300669772408826580775801296102018967162815589535017376267647748521361167174991649345583276198192976876194638032242043685428380311745446185901469447764399510167872633447514704212264703495654836276891350915758706413227198958045459466984698266753313180354475885513473595131331964106854173612812723387596662902532985229232133424030048469929532065367562906835254225989230524540056634813201940710055683163459321981950697193451858293829076221403113642079399150926168304460679695219546737548145114966676959275507950124727358203929119374648137320478408527177027537542585789248114494180623209433092699895971551074255185653684338970389002836080509807147020054706089377887653634120518361957440852679891253181136895927771580649195582435738296202574805006815481942424971593712165111411706139746379508764034040241691987437009328058876839409198881564483783846071163580564287092460300800699706203861422274930589445544794435778710334809344071909277278678203073997503905220937284544177020876135829200265740759438591594252650100721142484185555559193373635623542930711749170937311579411067138668940738683427651346730149813173324216322409745211181850116967903120555428513979578949031452282634364065280756817349341032336179970005080650869865971836332157565577372147090352336718188482101148593572683901852031613806952393740162052780951524055649994522554018122397629196146106613920344350742628489413547825559001157094862642051259114725208990531178273616355458231311007783089281768343305195322801392819283822720411744439427404690877412145550804014501908315379902437138248931634275109118413913802573975687574595982043752593322818950155192402327548118434138803587205747929514719402501276005612851824452090986406488142562611615958259124300106794851549435091054354282789147960163028895607094924312180406324973920936544483680786263736566444441695925146099770697160810783295078900040752685701425177066234105174078438302244440896251223592773510069547056850418188671398747998706748848652168241776834274346579855537332153044514969413983587187430917918444283418108291229575800963889032959947941436918212175346533608016355349463719342644769265558627818642474866821319560777953990091983336923993966564533488946221311217228608806192870548586215683277481623419248132728327115440811223485464531072976023797909239541990526035932920571402425850664107362454593241443504551832729730621153038833665417791151389938066467530737241928972081254619607843954265726212539698480817418320863764967908521392978293738752268807453281616663461943448017122341451501472239385937006826962369874587503819407049883544636082165097956173467994198754465438763686965738652866063068165811206567971904198591752606882920858825523301260270407360433133566018188018605553997178436436255889227504304429093589425423861609081210780430987218854037894080822828812046737272600065910089103832265143938745191391448827234751016705987690410351541188665128318085955738808360138113259408048060082002138751906617643600588944165351547105384178115501528099142479426598531171315816371687499225710236523026014779414566765908199430085016315176805891656706761331247190065470815637093619163056095641802282364192371290623145907225811080107656172450455685485616518572981090772127634261329408847577120074502793378127843893033150258220197392960108710530291870883558089486588867999292331617081072810502066259914381266920458747169117709946068053676002972604500997228420824261568734068547512401460709071679898556055894661860791138396550365746962410500754232946199506498444249896946655958852071531179456297658246347933082089667958019512898434827587306558567532401515095179730559722388353943571795077200086649695746346240395379400510405886563810935239806668055249347243125693086491070800748476603290376846445093542033645674818756326897216021328878282064586916922531514865487802364515787376960622740005037244047719447671829341507528387782402937880897700971817126856068045129204325440430465785078367767707601617627126091972004032946424392392562565694031682143842443485531871176978030231061688035735397152192659828114482530864491117175471651037186181153627755367300426199569047249635777941274525787554079763767591104284832347629035602875219956541795609590678548095247834743538585521996617300382547804983532126421826510456096384710346182633521554352091822361584722517242130022509339144434472609070460257881894749814616001928034934613593271991378122498252701086975156449718606308772914549061064956088610728718630921588682754478047035893079884300081974462125828528526377018394483375117226564317509565969853632308122169649867923733501312112550144914428964759348133187210530920872857436942462114779856093034242383709502330912516524555429233436250579904187918750402078719574758472538044596755512830354615022140693632451878398783345235889535391830794315823527122293264788094330172885397035817164188010066649439638777584837434399201796298583851719811836704831364145736138732961440188514815013051018801221181461671526030090152663701230902675551295127649894655949643764711133998727912222603363202184798404316481795642187261674903832591191080227863820742297715812880502308702058920151079397213496776530543253650296499008262714847637803180473731693888098212249134505617002293760241040365574513176744004072082361438526370846458098070641396419317402355164861451025457295268303523394709196363873735445648078450505640500044588881161664673814014092619497162663555671298147021417119122189724481013381393591071245246430303218860468200451737858750447285337647733509049972324012848314855395568358173319786398282715930765421089374492363419108716181456929076515502884229349410751214649188126974390009595760238295069403056874570799736418168292803995586655219350595837147477929908548280766081205698388900611402624600860159786994662373234897532750773552717740903257374923602182114915759108548602496737045716216741324111463280723833812532746891716456943229088698849363492002749759069120221076160492957893387522925708747270694169461146058670299521692428664340621859945618408423325221442632088371395044414274421910058719868335724381646763557708968035546757354272218456393017506290487650370876014420384284474291427577161890674723809886056019922057454447544586377064413091218767616421642890506997473964089277902144931047987055620497576870735165542765053638829542778764616639487506064943600747055347141448560507013196828262148514519733082551673103408086635359333969569862783109415884126640346931268065083421414819677523643929517024245050836516562053544203533853446589241079298754714431515404772740212526459290955332160550706311045677820760237158924455374069479955551632482521075350266838430756800518718757221576734462712455263436357056993591873626079614411939455367918434918841840692785559314421522085580243754528975162152941216182145172366844806005766879229421027620754579097666562009305480337339650430002222128581772728865278929028138527352322118285545611503331451856883515754653315623942932135501820491064670521336201476335266807254158418831243762087546112303363762251466184258454908404400006598274614956103216445135523419529547551921491653204058534396383291753791916771421527348118193968958825764360316809021519623654610451364372610894946519738415912296268658020122456643821203292377967345188653678087652268349244052368615529739343750198231961988720059972402445096145427956183450363535383107981622338144163566448227074830182988670803203253405311940347454576597860709235938291688799416912038009015111659441504524094855495926221115263561527346909548226934390871882152010440947281374594875872968099364534013763318476538565709118651684329534626028747151093714141857821415998322870842421997081140248660251701763730088506876442131020779804217206311136247784365978118318876130977129835587055860419697130263365471041122171262864623396886561347631070950786436192006972740608455905835338692555315441704006888976297334287942677965371248355896431101039784531667816281916785981144599297302328240649309065745984315186331341336508888859233625193418712809079133830376908001611784500789990746719482800885516678508252639341335078152615292814229547246219567347732071519553250675091126533576666147376626335003103181805148389364924451439302122353469274354624088186985363614486860398226525968296685146305181709267722039160348880411980120871239668632437285694681918692311736048168457507140430827827213221579560320725452494689849660117627851702149188407521562820809171404971660993467936640970626416957715196877560074706729729054469401446223073292319136624825893214617110697890630202967249628508803414937339487662706728934109312384865863634095293662586646412073405258972727534321611318028148280707977388064899599537888421194836350682658956629057529631580285200076716112064922068926089478190773842160640097733556804563140719043956573326369878798570585068027911997269742501511196464900584610280393103088594475433952392514254597777465068079732702047890408951948315719397778823517667513273893555544901242609066030215194577083637266293868150204670508978071608781406210905310076054916707845756912921377198441871676340494217428567970891410752713037004680023672804795297612835982494490840390206002196906559359521940034029565199726899091649519782234611083762224611333079437390291450660859432608245765891350136181657297791507404060612079750639138431158969364389118135355422107311520544734873274964867217341616910678253165909661874505135290556141521619211868691872266702803732399698356901383270047916575976297047800311925597326592387662620654793686092773883969031224578639526321168239024954439084368193195265445171779996432038409470733682803004176308691946760736622899511763163281119717626207698173481689623484414783941080457081951192013342792473128683224148054315161074337155300365536959913688373051897393015904037949281876734252677024099364402792384859174400790461283059836250682256936406074011014420160605791864818582430197598032620964115800426649811832824837361015982727341290632754146760258939219379858712148738519879852747002067124337171054864147056460169965430155366752375551947938422079408288151395920392985893553987201458661167816813180256629075840721396990947608013823699043678771538314141723368722170884973308654354729282386578829644612985678678520280240434513316704063538521028772302870026802185460573013621135743652551751741733776753505971634603872039706607550111932276673910916036684099522192243808313836123372325701633353838096949821361052076343322109826575342629967111192836939756528852559170532116596540810293841319129563644374377628842355546282545062597052084353200217388152954098586656378029392247849765090833422931592758507557896657611349371282932327812525049962829308554027613344741222317325367124033604134440301369591852908229466501215225671290495919317312117304488346322731207465364957787032851577138618871697542637012438194636878882002518269110047516924434070849992436983903553822276504774860392686101916707055730054208124822330382937191112201230995725313803566126191482514576865269669174958854612965738739949686347028329857894533739647186871424217716613460408455583542610617368457472382271930841712441713340280554401117547914167978674552934394473158915458091015386285279446698326561401258611548585811943551195073920206480113634006819537610356973696384046018523957900119249599286719363394806812866353264470088975658959031217956399585636377029948204360869767855923314113211482539814027152973377527347650607970694422747224926898091042714772335765351031295697213154385508870089422792274578563975869107661112133166133158733000311094572038494950794607473230784754577103503946959721757080788349810097836426804831075502053566863240362833688053401798341128455012051006159253147831653910505351024293303927352285995800053344462568593610142927609297090131722283441482582581126136781281946351304840723405742779443866590630737496433538558998906427834874910254766021500745552269439910537909854003340042124462654223533343396294646846850462792042746177897437515752933774223654103451275024228551036543614463820077932048511737726383863416161647385814895974665361674841299848206785751458855986736132034339179167586186516726933291543235995944254978666604741412686029957251118678170847858044223868503686192057408855228361819498512388216632904011676880048456867902873534018736920527586667693350291688700093388522554275938898649976438811615252280581445278575807088076847143108418060775812160271438935042801558258874752957257397248284019154889940108682791305744612520122833770408934684917652097314499748426151855263338551503124194955201525417927491577988955205314857369701933844985367880070669840398282937463646280057704356968840934403523232057415643834462711998557329677974193537907156709550561761718191373322699646640740859156800491364764803104876545260604785295300411422711412526765764978734343262241368636272197099868705330907128218435118880469473298735342970375623860507789677771793877757522036211954570140475739961029747616688544275442497342708942164677253796058433244400719138894259540785593570899328663427988698624268681993413896875368852244010327877119566376821955529814343217801686858675147239642431624349467979243715140766346526026592921194797113317586641190489713459938293299424425785230227007453931640876584900107337991797670284815017447139163391906654428598916815365863738670265288794455655513059588862660066313004938262031049818175161290336055511200555224828242404611303313704741379986275801230033294232273727381800108863717423436854948539482418634664443653015142742900955073221610505011937233731390916183316628915622477361746865378485340770741535994535616814697171761615468542547338291724029560973260134004246789553959776060802189650877705787259643984656515453852828327631774303512729064018128224371497385134651834444652976740988558666594585966991182388411256182107859251567076009190609556588356536055448342477612052145228661227722631618456576634781288177832685939165763682404080551491815899330682550599389046913215808382294770188682254326611740954287024692682839939151853523907237542928076848421611798287279750162265892680673208475905205827189529725896861707491626329711814900381868569209667806405955878886726172000941980503672965431492784875032900987229818361578157657695722632299290889494751336365120392125433273715669912412319734674220522223978879415958612966613779939780544980384558003882036251721625570134108547054543010350296708049717384193883150401533490330530147726700074954126750917292536548093533665138115599610696468184595304884289631694231653850894089233646901637941261751439516313837362563395039746730006996195207431161427841216766366499036146571378851614736657161497927715632823934573755021652589912014515010303942403779309646801807370997895325605376255709833409081234698243152893039537878400781871372687265815852716570771764477702277110987081086332606338861474175892915837328727414206574519389860779114258679342823849430557686849195398081545129849040412355284400985999378990480313895290170541208783828989288230759611473117062526478066564229616792102023153670428001988271058531066615114503266889839973005169496145175840808553055049576061555109423746574432134753581822472333706390523706554268677928972486899457551472837819962938431533157227941526361068103738583508884302112774044655360901094895788095243567260721252009746681720643641289998279199301179480334658512201887289154774543430679010549220381050213857203056780107103154101694230920619593968880327952450196431723780706180876990871194735795397144615526483836941689248333458959599717747359108646180542363137233085961147516891800073937949810976322547646599855858741385000914191548887594014209039423255270036554892760594426105393181543032729778906673128729384693136004909105928367386567714124440249179730721553842973171448414771907998709503603248406375167850581501794525089317227147360028095617336313451111709170528294588875073804758219643557008994683823379639300406640378990156016823512490946313562620895367975597345745886833519266556274360109235898053685832898486509681307861070494473019928270973492568355229324998390043269449608230003872342572089829693329758701910027128463248277765525930709866596509934131980410783052118394773805386641165278702560508556320517325219110118517060013499695837247204972059694408008497277608839336621318197348184334523086616324463335623299899236110695389116102040629685245995515830453213086717917050977558377915747587783683815523036832100711342763081716581339453350772694549266766839321486060996109914106465516627265906848936424445990174606066843772909628846938803856970177873177209223174305272402021823164278738771651884489658873207563872503394632862859249161180224404869185652821187156839918792536895484896663980295589782687909919993682976196562050881008181673998179909371335199056367314644502023415966417737086032252834168493527346275610650010172803439869242548000624980781882381211660298452486255186836682231138828501258824089816818844168626000725737667783914670621900307613484945375334352159488011102439432198774830391581803748746261721062895785208165213556592985818593614533094750656608292668180191282197874109280389108859432795631812269941514752202780984025169169444085382085861117299322664542919577845186803178749746550264138518217320544227708061243338937807468869118922420049111503643208117389777122825723667167650635131894210104676505777054568609484835361749209139927746175260579904973365303386314443548806839695958627236492663538292013579583775437688665810709576301694014801551716631469106432079103000738930718224424986393891637923562258597761731574551093776187284012240355805745442512116470428748572865094447236387258038966183214770440824103745449702042839666290660118079581440904296153148346526684890575984196543401000699080869924201623345637722135796035237814623349630260601622857991684849157802423610525453309078508092160651299395912024596311244084075123106886732670856935011781852418856134851157538062569661552867063204631833598540231697451330838964636973546623909762139200669225801809446592118594599455227237588364081410208550077873788417299575439947848691092733842019771529896815378095443366478155294357152052017773939185311025878649462981960718711640420029600357176080801152712979138314392342045858318638842335093446519028064969349411574233067826968361127076230483463361431520958755796504942250007102450384838384110311929562568279287950951111482023320990887073313164886110905661398434726590387148209073857493749324541240678673461221875086480291195022844280006167080765609462456953655321383215746836430526382549711397016348145045121931097488776893533367332153654265744534170601942904842320114966000762699186886585578644294548222086708119104271784786562515319652667345586018847000977939768702519922719218957128172392392933569262855412019891648462863919453765209487805566497999781308862393717413504312474350278715901587111194739982417747932287083111185783259922368819963842112670735853887081774598029396065668029477343145226493183508300852404501543493623195737876834348878825226120183818470062112572387424449010032808714012064733249339640641017920525076772168477106713428038530963801565225593400614864984082520118302104832157292029104769998489298340473542267171296215174113924563937932870213051321689199027166040527420206154277595622477523845148964911595167600076380956180400482834087109420252424016501279231327703933936485240883465542766992398350447099882052832652428549161439407528578159820612992178678589097937235744731785240557843044071063545105606333286075501238250787474885569353891543776280812021258809945518889250062533141007394530693875576529088817420544877173757488792917053965946093456821700194834871278694367768593866924555290465101199992045268590301178814023275462605737529588587626847358777037958444239900464440258072390951675682099299263156327344046144053937557020661725485525813091134321577432802282319075360140077468469870776804452855889123804027077516743754050979730207256014609336515737474937948710792156289006268383816147986572739914225128791660729154115277775487590899114076893785571336056568077090293035627237278954848987348622798637598999006151614602979195341328203657807106444194025623576261655084876356378098305617005260194693031027534179325309932891330462714496138864665576018140621873344909624515069856409703727534504266717545351506062700518259912732148505191792654655148182233599686341010817280636347060703731095995425861380139568083275455394620717327180945284268087563118552998255970539043604254953534395600280117732225379362045225085993944234038521621531183123722727059420575434160074026134590443642872163010520225975708931441684679621104986134043298810524088118653332829966165047563331447896964356154081377435864998456325822343563910024038634037824767821201848031151814971236703975855846180184900420395550984156689317333309396272464530893453368673652903908007732634329679502611639560138761703270072568356212380500900696784432963678566713350041821365712239267701741836474056512019348626583042796460847129281402671025623434564482700290814068857874641661908371722198402423357311588447866347766348218052453499526193783092810877317864921147898317398367721101057759463242003830671310491944681023988089105755437139045680120321759042133185037204913236465648682860738217285108262389947556696598329035063233557508194176397103778387148792882081781456941107176861297197220232535147687300746514087818419405525006983279035291958139296564794293395407856894093201747654885332957646329504542017563219048854851101041100141002424139335167356769865593962840036044343972091581493879163140816225429830685357719770090904476413850566431552994946760408684610099314109262624697407101757976872030011055179729434329169733368608469881510364838986611146023080062262780662960380646870687826217086601317047684745972376145138821062193119115238451437218390623783521364068892666096068630242203094359313057764077356441413141215501788614357587391137800932554589385128091509560667665660639352948874270898007588387395297502107107130354969115799750930439407529001461055642759967145927060659821280927658208391588388747853623517460741149116514676938176376078085174230528716148373113980597280286023976034825602305962809910633262412088856200382899636150196587210068258584860408080640108360434417122598497723932315233758875798787861488995458764343414542764809044387396386296857400819643751617215157582293383768408441651267040779652421621106003624448172101822278230621573995657306893854147617261441029427153434236681050388803345324906207896118655527591641707942774918742345825079444548150905373421344129309807249110473924240909180853265253807451979341133079277950933810470691059862959615505826261524840102213907027267773781100694350546325017776552766929498446147910726783718593627584659788606677075261925049256305610201149736455575574549370320953525139740626877091444839272039956005271930164109610176258454973610993728210097458281709987870129045958725824439281320545025268350704433215494767529692563990196942270732551819987074134020271613612237007371979829853677305265911984270942299634842227030581578961450223170946409609345943785731937148174627748284951078305758235682746378613311645982540238123911982089815907678323875189984735985471177529266639787637293994470493220761611267023755948671050542449146122112599395629317313583018525336379988959215825809165836278931375898749852471040833734887337540133124919436347040553162781367589866558554980935024028051718512020239600489507963737348866532118675143143439295601204318556779976474482996911560617985009446408679187242702970506322078159918823210907254208507431325010894349602054733549655878285297104119531178917639127268265921826911452874927117737878419861059139072292210129825038667252852395906862680482189487280887816650608094624076669514534591111788114592578834975516040302333188612214839912686341910956401194759983230436497232756279359307803431689392378351252512895640712406862452500106959845209665986305188154423529274115683735889900527214357212828222471160651684166792192986008287463670437705527665747775628418447860616698563973156247090994635419992327968154927520029863286224254219618921710984036951196962336008125650962027743865348840392835715061788498304032031728533195368046436600651244567911892142305307523528066226465205023036203536133728572131885912466895465835123123065493777676454759519055478811068560900217869663655582408822864986860079600490385930243676037576135776658416806234495722798350846802111232197366634721114700503796151958398475244040612501215200704582609394206350609068613724303385987150449180846711783565998864951888893389420893814970522456788527119692970907573785995514039928988296663556298041312869931115272227457154036425144594193709594348196537812904053872773540162928656789000489816746530464045977494841795464695765734018849010092616886710256022063199857500541613654382664983992940177112679094443499300987204574680785250574495996623548515112661007491405808927903194899072004210754464560829025239148001011425622786430634718563826138726660017985711441331465625312734049614123085593493319459155082156109070083404891524766099328617603370404798910433622492783032405409878142011778607993834597609952261164227168245214872403136610590243280982100376214128364862326043596087110925748670264234341785291159327463770901948473685611160518739470053179340750886970497513089371930750042567971996378079272351883794641383593293021160900826480902233646361167213413177760417876895941033069462511833537023305851552235402042617816701850429057662614309072421326903203836093263526539595172784909995631753886915304562510849164727529931647209935017349165794787190297612818401508961783359598628107961064783071323757635288941761033631144778190509623563238174098452089116268241233362317587308503288972606999219283902657764881660837485066334705120968002594411932133631090432894138252080412938443693492354084574871836246550391684652644851355353821459203152243312917915789020033312177879012932960294361770811815968380435800566407248986635045868272006308093290234212904113220528552164233255953190494484990374046119902692388773808787830447597695928565795921786997563751719208659723623084445928458117767355073614320833548406662817161455449370645099537867104573237595027820853394978686457305826507847580461368807332428095414836751944047204116159910343325152896696885754105289734248483672862196335559089883375171217466527917324055026063242355877385951161328427461733482056708174799593913302671378339150503943575745294541929922325483461655547114075111299985737367127248108207933876485841063488694336673706505884159193486304227808769553498669932051375410903091048632490531598875070881434217318132167898145688780225081881250255257584456749971461316471702328793228408847816475667446738899986822774468933407635268535172639143128299563910828290655622299727449040885896302703409098659488627361125787881476192802060597724097549469205855972909076488269916586049740428475438740279468879221381718829501878734054480993446541321848352279438815977800399229142672060702971389210835768604336963629665067123212652867061071789160948873083601538351363221236124928178197544503697582566955875356248926400392167326761875103224217624536141561572275660437056043568190800646792215895773939880796695802324995956054459585676653062541484186731441577351384970534655986536842760065976380276209072997529881244191037650850242763350069336237865205093049265430897170286991676253306289321359097411540350320740828726609100952289876412744680261836097461649770688449132444861370407582248816644174032492628303358154821752743369673946539100130425670817460162709142516986098124067006661846420857386887118353661326789384801501072475188172482230181108231428847044335175812627209146727783769737012564801740025477334338042915519068778409641922146084293958154919832320843915679538440258078912058643715433593675010097812881588993800758155825848754636202536193849574577754328630303899701547712237482115580591582223654191999578859162327109534539592387296433016802489576311173405198949156070622471063019281013829844892435927261864576388092313213352841336486034444575002607147633226546203566497031138900881280914493958660407298529678720047685471678581806702085843392153357305676269195372966979577349544115309222647538018262010902280290837004548836150460677297926600953491622122438550144075339474086664530053450675919070648319610000382970540258201775958409164176411941204313666876226783279227039508949987075480216310205636859518756287985042064243574699672544293263304100267389826914740059287347040033433273832258782459171670060433283451161737194498659194450842895524927166724127110676903813093878534626911209443414543524419198243142346527876837662990321925355929733870238645456369090312828143666494615814446912534389854590728643124342881713841480826642907193325425757327705693240015973495170924147727309710922802272745644918369610391540531706865976226345240148084983941389322966285245282838962491485517710500889259298195975544688773458934845541330508611730946321268574067462339352924847212663200202401786024059646566078749527930314789038665607534192034790677942127824742165497517945745344014215361402135044039148045513085396597228408149535157067418275204194515047448181797504282184419003581338941269892941884697797835628273355091608169403375973173426344562458800447700364246214469849369563099658426961860394604965453292083845724442961846314008764406796254821810706116181632821846302925801209973589653598510264600439566258103690129539038472112289890636077034424190720331229551223595788519554765526608564109817187939342405667343331962448319999702710898167882079738882557151481189916029482654434448422437391140612336886864256337050783241664849753976666252825600717478723563676389337557134582546803474222414572482515325576075768204132563161729996159875463935163177714237308648848359088735265374564750402088841665072294829495705109022487941913054619003722190204797597735973805369757576385473235596246628728008975763775882382742326879153469204570652692607588934908441565174054346121703229120563384643644986016101438899830381731147081320261964712010699402398752708457424180274974373342794742468543714233688652947997461610925228494566636425666588473412048946673452295248653763839999044343318742428295960483203429779660573224794905842180466355592500436323176852032261067796712366672846520657034406540913903997284661112831203077863277317106345624573167479695653835918471723134301282587407545698329532994063478585956883964817626625544913901655107043041521003751290791069771352874511390545744000938041782321471253281028583998553288236190431225695588052152455771409787563963735472722205686005790065516698979493774732166651847333695645082660420339733742227957096074122204001496617212666210435133972969532669243323680135116996927856446091596770478094190881117920156207971142167115758221849322677932046688574229488579560181593195890229653342454326119825311812504141887028394087309091222478294430140955130138246768815982564096434118413442772693100365396738525321330475850817182618295311148066438514942205443452265530816672469728904272223535348848951156899377654290677173957058737608059994404789848362817182435930155905576166952628889656528610111170165427704036375419789045715931788752262566174899776003481698269457373801953062781611914671546109150548873774292801870902845250773971610732865761916116919861708468618439956133991431029857158771235846099158201073157629805211473613049983968321156037378499728553553567255322266779150572011360487959839309192517346764433763346179143911329069954314331909576919029870844379843876263491713573795231471275282933241285572920763440508383943214417163291947888998961077185966087006106101385393113386666893211731182336340617275072298242708565520036394402801587469337203351782699779452189964247210024880858837941146032951509639044334399860150205321781926897934599726455780332607351130138620125633267520773422623656767312167605641268936023231900865780827379162516342761699876255444509919604200855292794706688977987230087252109536334771944409823507913604506891907819964145561838292619836950370296718619589172508717100108188180948732222532282146420584038635798613503759156275311324003641020623151462867811749297536770159430397716284218666916636741339916756675436452764249750713592164332753978061506693076807254424677913267346961949682066076044729810724761987139880429962433110812634864698459506317963635559317947265734004521821077747182233307208152024419153497655589151752873903822939479254643470120711769072945084669838529043469941091956095811198070264863928678277756006619200189388746442214006659225176982581220294017363456796248909824567499627847958558483713833273261202788702530161279229587214107365653042877514755059771352946682554282153243263726425994416291978998803794541102270361984491948994744092573651816202267601296953803641997961513600819492492805615258191700704879526710383185667607121030480854207527537249296132881265394777151120088090750674518853713331680111763780474438066985401048794643558250000357940768652146977029072415576967695561309414733080876026992296509779105380578541351818901841953043562511598611392166689644145318416924614193772378085407186508295152318247285571485411139852151228651328041833978314312594450123625974214582066671906978434799477640750148726391424477917829497169103013489285774084090042722989790939735461743785345665599155915454380943522236463817363304362066069586572622421220678512842057761546656224384834988944090239126605613452448795381385072602906266531016275516041821046273958058367381523628186909678592589750216763303135063498652088883283240498939977829792437970654339330592073282275075086641289992686812669510735749246834431094399631271393397038929877769665442880846406527731992485906436633248562176417736776737033899070098879831610115257727450479292768459726045701502710891250744335471152297727942266222768836723449690654250122660905059891296797853507000982959427200678300003400578650389063779220083118997796388588402773009058384607325126314850724147969372188516300730253320642585325551917743785466234719443697080935629002618784592778630768884139705555512450788148113979365469437713467732630632983218419259740289104416439687554418057439834812730786945249302008368940873364676497861810825825345124862118260947210851943234601836860423632753908031728565466491249928245475094950056768952255919983560714155972537197604671472758303400548379700530080211818243945463851236480207031593761098522883520750730043644274717494101651657343790264319778074920650145981191288794950354237811799241068287900029197176608441029733854783362603795751754869580886915766129078964197112981667982590103907449315392035172685209678108089785980292914379504922933589087874426751987295980181074311738120462431173576117785662922264295979974953038094386082472740154750105538764681836220541171501130327650843449909438950073718685490141802959464599351130022383291337748143416249718706978793602264571510312963088483284365123937989309795285416654590736955635607107267973511376989064102561599263489666959197706675919012450720545427333351832100064547407746755471939593901020463860511630161667570294770426184846254469865874391344817036012815177613012566889334161030928149086319592944586209966354777708109519833410579781268035656243207866379887743467731603372610813442670629824972313266269203594408712065089188537131804518941416534866256703566277201311222183539761277399609473125696850573456507606358075082391073174297509562355670741372218063467024014924119263260979230259110405582592091770631764771786810699284000027910628427201621468968508373053185367785713015942377251850457456566924120473607791473595760662027542753618535922319592591616604924415923135496802169073891803305155632367464215090372107547458151016999575491295343999817854335813328414976961309690851569988347835174656796947699089807526323240606845508590925783741346151603543506470332715826368564703334938777999518472607955446070720621181086571176812590607648524462695146059732804806295839911315022491743815841960735621679236707941569678262270173697010176960746846613377553293513441362195664050637606995937271598928137142618944422483715706531987639602925635175579414726055493542554706991194674375631045465594877408541272055645906841029004918263002853260422012221697187151907349971564759276218098828075810980402302096621571971224594785064547272982123654461291460153884446236292851640403550378235765440674925180182082725031667712181005279510426949366143529445056272783412559615076286913408585764109999984591939337961132235819893373062058173606455605998589179003451568673867138774963260070478139752619100391245815272105396731042037351439354825195569212255390409539862834747250080075949295627834174369763957726035252861115511249581973695326207266044663072999346476292340488180965865867268133048536487770561212962405357705559421738031830301943177533158392515009461852256649320259876435613390066176912792312308668319780691452346961518215162756449362721954210714569168360781346335563523098393862384008474813738563329634317422436707808784461879003519936375247722331455722068461201622484775989307423102834722870666693608962645029863898826643203409936668792993786491137475959118658838140331763491505363429707321838397763657229645774188395751050655323011931729105535534845196626602693286565378054743835259338530693273009735155262184461887962858164081784739920466870064259878148609030065292080170259211308963671625484554779817855519983774930025230579277537244540669934678346252751702272593807801348600372250978049654706088890682432254353406672470984362422060371894010021890692835047144467718546354834715443456127988971017206304379024086347814966475536723491608515304287450476276031953842862370664552482082427053117057652949160130724008779004644575702685024430191418621544612898895842886469813804862080478662151711762824525349334357242575646705377958742948053035417170639555995727883696607550114693546551995368844502785050700375537292144654037321500458589117585938831307991084860542341668024874711403302878301957016253382203005983425635424519693848464248189522417407419235896912489718560837602363988752633416898703904564594478015320908123110969043803346585074700223360567129251953410218480696703000271508782663458658075933629644371327410721277689029498681146056838395282622848443030762569102591807016879501307724587611483920110784640797352147701952821672076717601704520724829948376289496130210898214881491753347711164888768760842167479407932840823115735445222163601204131491484756845315742381012473008748579672993416312064265648115135257026914088939426987612058053143047727549780802695721306422319548291527701545661352277035827967187020815484964104428434749654384670774979408611252640334383395702468039882638534665439211136159865075314871061432545045260751769981469934908466937300781799848967222016480230798872638000070513796420707468556599389858738766129681460638141593992068824385830044850607575043746229292807574426208675045727057451170373565802762596336676702463486413925672930426944130099466290824205952720326068436305127555018195374903494493923495478647681736549570437128964273648400208600764871867622008101348651515096044331639604264624725013738837252474480008400687825514220787137708246352804514412056807348345144696994183112773445104521274762763347984155472244313862385566006771876543751528143993394365940626348172043996662283812782082694421638458914829205344680649343936515231316110874217478541395649373615471805172480848447935641133912662771947852550317988755843413880367121785080549092021917895112370237312508014062584033631098589330603397518163752806195820646891381818843703145453434340535164666626559018752189330748318932065881866331828950816233831948043166951343913029149995843648536315454136398449627891840478816605846912745705521651343207926582859407615454480423824831880345491490735672949417709390722361898758007406822822266832421916286182486405264443603703360863260383857611011605117719552736256627387194620640249188962860862168440320646999251580030875378116190238188365717755691058442162046371754207731473543130739889526957668441773593602605554963068714738871885412785543192230421022272396531734811522904670151446781985125628400917360910324789820496577891500543845202256515872910507720868093628170840361731691661231090506219862512151706582831263540223753155534563144835041896574607645200596496877643382065631943615538479736930844672052418010287742378239932903935765617438554427888349202165419446353633981607511104294725327891633340094277989459375176193371959060228880295467657575586110357137204809933634215725173231968357461148154590753701220035163334311944719263340301848713676622913997796695460402776482690779767362579708620533809955068716765243189557063710260287479644620910119726004642492526442474089831545451659086907415965572198265446006406814498615147049899864458999884701371300036907954154144412134757053114720005319147493855291647760929470072574528624016089749108738146379900007551129101218821341856170899804896693911837738424608137374773706654920340280393419302342796195566536012073188721683150291328801589342973204882908494085843636460843433587143350630810698367217833535004510872499683867110638880011086586179174478359492922236703740506602839293341693309018928798113695628674689641474854767503243779568482452312964727861934945921996330109487745399872669945467812524182220386829462062534484518909647057339211525631916567760914876026247836843520241867740432801080099056905169240966909465108840590055180438378499060703281002125973837266271688574248904262581745947316373729497391804371044263637642537871192194099637765761095445733956333761665580859910458711958059931787130678283815628102715976980529284030197973247541849151300599557521708714412166813743308373276684281479722101373413311166002259795207720358309367156307731092695066122909345082576648150666624431342965161843235448163417008403720028097336119075200821381532616172356646286481410781214639180908369328476622085074872216592575764044614073373563041699321377017801821014883439398220198440353891884833950278445770693264318497300856796777678466115299531997746840979003665798668722419742273447499246433948251551954245595417463855446259108671218770946295342577099642936398638483411588966255134478776605844654807133862057443246739681876116146669469567417942205260460293907176669165007936753702228787915529221972055811346179434091275057268038081792272655481682496957762994375671757055154065453630148666857748448135898244151403541910670737785040672173798653365456899670225707456804633907859905694998552403808680232010382642246546686416228633707782498845358813009117440370444403262982190437033789800799795163678715760873843795323379567687244819449221215942083749580142027792571129905944437335000732762392807964767649013165100840217223183110697662450805862088504922660729032646641277838721561377719206242890734414251080382209229653571866619115772874940266157975534604246278961464953674215076569109302941339870121040657784517246577864686940091009816929184897514324447971991980124160229343433648503057118995271824392496476975963684912773078635861318229799277495984175526661798069650153397851768646883438866233409469858028651157580975111335056552040121719407758890230468840792611338053955863832382185848145921461229057098310373539175723590567763382484823641234795735630726169162916907694296294142152432356445557162693916501177022795059590040518962118421872960072733611413439285787480331918931895608933469209307012751993436543594829132148982871814593353587845309940461099518040956039495283694936058372665346070867507096913366125813180736338532599028063682913613027829969852263328321653578171316039820926461410920965261602740142545329838115755966756787809623856835507539242844302464924408001822348080581081970175702021807861049751321076520807574085212910582139992997170997247351391742045615038047564867955921733034303424230745800892618016728477407697618318423620635890316874938897147953313291976524240822206121349233815413614657854630946576678644978361073212941643526116700906900447220557457123106404152543363659982062915434839858056620691471333986510219128138724743243489070981635935650797830244386004965965615523469787841680098745286649490041002163259379058267934676654293020782221638918849350916237267879781991962496409008068201011144375595314237488606261220127040790453792444624695069589619561862502436902881620773611174208613169615504272694953621974945736802439287523816198556854855190648236953775300420088057435451564581608679544576230184403826461029750785034205990226293136435628597669805853983001351510116308768985273872970622906970128529580215712319314248007757870255075545538825556715513119460985222876881557874037036601466899134847943140232369944383343250250365639493103122970608087065337899758929664699677642285123588650578300759752824779040288253723521222161367869128825667872084976100925943771775079154456944316483809864410132775826125418842367112029552782703950699475833896320697211346504091564312253872837497148235588106245446446853771161642619772396712491752848080347106642585896708556495270679820479113837384640641869782313062165918762916708571702354475156831338414497705190709158735850451458728960901880255243598959917027697315159555903643741693529165697636784718320672761707178416490183643966747314062724794068903316910337569717543121518890967562665172702684690263549909466165379538230489480171249030909970771903963430242133197562830366479448723447324015688189722420631632497859547534723559081442348741707496534826548592754478929232296070887956922507507423087356130755404073150088799799027139656237341204481296323343220412377534689855895688569170325918989601213477735053275571326126032979070839703544312671194564352843435731101149078201642406801110086882456479648188734328667658868775997084802762068801948494136052596696961686933635084852062975989005571421979312283756428781975443048395749797701493315058010230806435274942884296194943095110368518079022012548757617457595054152441766697610506442234007519901584425812489090660238756045150996487432648303089033952333535931962477031716943406021861067453818188404451046625411362981224096538315473513999814476804943220922507953664366700353537776420391889733163322929987989893886161369327209873891581375368603044460071743544208473752156236071327588771912306882995108740481408513194497220765611119252044267277399008193589624941160266600167040119544193385742291907215682658573412875780222005599361362486008409366713803680489316379645996312334470268964942409724029502901469542934768950546372614975904258797861054053728013920428553881525449493652944303258548453505204647189438522424844834107518093404474754084366845703974335937144573168132446478530007780416235272607510394066762154198754430423912244996710594172978342679793600502258485663188154768140510061433167954591398020020422293662271551021500580480317258024824349963878868300143927330279969735056608424025224992567214776092705571781307168881883423533520020690169423309668205311359080980741450834015397229399252814801604561903957987788987649979436447104620945495323277668435850979207561267679266301494992191171397353906871158643047243355358429686254699950562181662554516853907792719910925082509559245828202732549879691454934059070515766738367877997324887176155566347385608576590227124149292087295082262932576965452877094233049394621780623419479750366864256160520668232590148579571336435933415721538332135972252046659564288122357465036042110382214331663425368488491584564607868470865448020428248379910325115999275407048220243021148247800551736028733414570231623521254594797681138349920386644815510593705400993430660269080097298429912244756723250637345577914032468180082239383324343022452032667431194004163259410458786728884285736799321140561549845237231975063265030467511359025423942420126674432130320042811051967637972726996805321674075485172769819106003544383660999011688633160239747585195299047778298644086574821087050415933937159895278832780809979604884787091422626711018151776418132355953441938464755371186061354892950906716110103399620507378840891130141796575383439699258773429530591980073847807384684645151087689203960612852205650142782507312216538007791197185224387720632100825417328677434606883923196490398314900528438891469541599543254746743661324412782830016784380661110319259320062597637734221345237290672890121373660546534294466364031689722589595312889736043026144801946860028290654066424108600809812506482373505681651378561804525001487283647467687755599092483384298183503010767573520117896945099790176103123130137218236410681878825595843401660544410236717059108697072291316760365591286333508246072812886039195869726605954616713049429232403907073168096946574247453311266248981615215604951361720291644023639649046433336304256062237177582146837151475575931028535600081640364711121231445563739150937851790260621169764234190531132279448421027263276052595584928167813008612521981419268949109810401024901910446151362719728521005699254394187712437685752734306219998003919558748925554926961911266570745307557508046270548415405530960284634256077465822570000493958880728486504906006753991824507487381286748186113480828639436238857303105811581491111190266174301091018224430821200535467701011221232369807193244983675659328512417436302037615919036911093968237464557898942783397515368444601084433388909454499102851369945404265123276154912487732187203069889758271605164578862402381005261134863187536331298354789047854701379318122740770797436519502476022501160068886221160796419762664842159971392493777168717729567660252272599889907142780319441629070681914121569717845078644737433211583248698356449968387078132974939863503511267212931651020669695181585563801207301425897985182734025198128221449700089184822690762040364893058837655498782276164296067491890651591014405125952165925095996296356047200678353584651564469966746579300808756329707074910518368919310713012324083537872777935228923013575322911655688517302572334083740670983159309112075878674068329720438336103828391546879434387984989314736336638834571238728104958048079128352465351250744716451087340436374406212743139473135349521149326885871882844082350546243129723658036402873230519204649399119723727760185442004551101115970479980552686373419542430714475593773338468921842318214668667851795201953542428378983601302112941441440049622531645229603285430774269896962800585341278773032357343528578853418759539044051438149298700549597755974060952816291611546185589037637715678209573168156668572633514097473472555563494411078069746995425638160210396578661411418361271548645008573279103600082911311064176104824052319257413478048791941886294822319009213657695183016671455347784821401369288199248403294126145235091472246631522426068366083728713280955771567837758438026856507321073715302613251686787701887404815123721078250211923215253697710973983072878560572983964479674491862745028921821730123105126748764677652216134955345385813306982103806718291245978725350711943979607924467453147450038982154959439640111452676659360449112248150941550330317874557886448626796801810292675811602187826775222653616776254696604301607160122615839396209643008961966874154102886308378539492765580776943962801727437748338444380678779210926605210604197704111473500823335977191785038656723148674283670677145081943902967640494021488298474213529513947884671439229635950798720920639200151830971448412938512741135522512379271041173600309977712007850578943519224500218734022586959013577567715731712951186791824421486169577510983066673307489762240721268753126211491143734926821804461122358518682585847292444664277924364102466068144973388178415675149603444624366009964505279581506213982881560283748436456947746048396616546380313262549069925116037125733257965699131232747835165315916802648520122877146687662722939589627478322906595540288629955645217442564442735070098127014891120497221286391315675250489097223819343305095069997258599212927366550214533915866524978189861308729828684987837254253093587665730749660464394723852408055772894855242573737879670409191524936853985394979768899093812516603461905716878394109860948977512180358648358469738579753879698627243317497220803538533257906484067897234274399422744968898796172682463622500235702654356842064276453102560583377263143131037824845586513552259127981298958232204768862777146106061235540159465778627672387429782151394573188042345223114042412993257558226235290731929917706888024342897134091448793046641074469800854582169907702660027597087230341803535488970204483763384617414374718510836741133385315276758011197948641651372467681742978472857353652883329894218047647616197323112716530983044221420462740472496802252141305210774852094066574950188755964877481945989544694359643023930773711594462627756270660309922659698210891056093789285741852807584717939754435188702210887712614216160551320239114371238885006171081712136162953238945709991408554470198412041124240364748060181251735497888041640690638160726121045088928534829320072472593801542181102151987597136083525928347025635357806241088719015602523487868391131633652048240875084328205730250487097256697701686014353923789553008206408544385811818916561509341931700150019657468336154157191428130971105193406247897860661944244059697609840293721530157492087110192679409868016031417229569046178234110183709094772032277575839749735846691225171374849668320411941983158849002388140233657678440071167286919576519720843762842225955319330944053081738595622737044208039737264156386976101061611588976223717485541904866969165217605601744350540770157536611430214158858697758976268463430794077880603485067783161253557165100373571773047980808300050766140303136532135731473724039275847866095066033374210521811573342660079968099396336617128823707874151437706947404144300035142446938384446609726035291127638925300540460286853156464933507544256330323053945531706763588867228020973850992262075549018114578584845370813514723035262919194812036637112416895622136067885299937131002935130416304472773290461100008119062695134623128222137041223101873665420902200195554267441993343431024361406451886739242374324049462966637160938155737507717608340072446476073998572121138147979121731406848939135607373477139592474441462054085330863551929870632100127841265109811461875926838698607332719486436677735802730007781635309011188353104585635198409161228374538715044100406892590002326024237131418608013316701970533468733850015599124886132141245682243649117196612605654751653730498596172577208560315599558326973034620030773522549386250087171831419891054492483786394547357341407342661475678160718827001421809435332463076386719607387602004665852564166502786465084510722465865620935946000779939026774212854426360293929791065975308225242872700533791780792968230139326496375364181008251755462651441886474555130806066295353922661518984130932028391178425706074363707188814641021452780507054517902482517291595383136357498298312728728098681692826275796086667158851335736268833660261808528007967506184352059665798555870841185301975506999386263454419641831533411981197364129697102001715944328663259578924654306527030070583557006440636276526212609158601448489880737739322442273297859024623626692998709912488677821064741111827825965301948311062361684139606771899143181155977676008970481174082054657617524768114667216304277067460787538645030733007222083177817225849475454050069452422125633886381973436290122968852373725535150818387664147087470218199147789089222567382777079772975005507616218107061508874089087559722917359164506607713935028638556878394212232110110299977535155313763804719273889927115913142649562174907608151154243227061494626056817816484984025826233615247897988944464668026818452106328266566931457210646492396241831857670462571277896916893797538482521593121588077825413992923477520417933630863932368423308317710317088199640950224309829444414930721467818344923136564316958524146802031468622137545355871463909908245665770297551804177209545712019711078214641853335265826950381317540953526419211405099074428507763399837016505494612012019339258545356258369926780581506122705048943488911186817426806539492134308569796506562846549782895016020097392762666739668070277085345979395835903937817751903245088941078952652526925317038106113550239994896731654484154038740186478858854224225442486438627620268806647748608945899815579408885838852918749369446151865639728331699269226015934258620543609020887118291225688940468294703176684334559071674489767141067716771941383026214946294411792932439302796270605239047245118947188010134062741780134736723223739324715099121274697712325669421120464218901197308280470076411957523589281105561687575501309633222007172039673188024987725916026490762791052131813788986853063950736629466543695311217355960918276486111768860351713857066618247439644099732773420447876800277632553611037282043522434608464888824946730704101157745252709893100023463112001204277719233000605901768511071425743053939194413238825279436128156271392736970582001178417453789193178482586953988182533170925308868425943947161048366498505938666592206175208525731534586747750629949579783810466153448930278278646835689974767530716470592655444449454041421609781726305149841960992292087178572068321053719371254085877384170967152977330000599086843618115643730428249258673407189066649518822991658536744105389467894623971538450359477441243281216928908962688323042126321033086341315441017417622372768441808299272031237615347948462218690149252804967502207652948000807210752144349799612456177019792669957816715956572402751039391291356955698053537628300753577284972375861927743598920963720327256338008813830208578618900801560492547045541573082723020842400591387012422397222740943014160576415573706748850062123468932208329618944689974151669361362857029110220689220847494595340124952944527001938439311358337367880321212761342480353417284376076157597067139345923661026621878243223839077432396475227995007318318636043384823742207020281800831799338909639402926674645630778250906472749244515282785794361671230866343041990749440534865301748193537364560293921951921977276065883640866900162126008705173256103163909915974850451487771056589051448168664816505506307008648163685071266481999864551497989661552971583428909125529715346128383799216979112360687887043616686593549587435720915750826807310276042203508662075778073421110203258263698230000542974955970801059492282747020060095004577097896895846838643508717786195685762863329383273681173356839096357560740006802281508653339071133772418039694976648677715966739029917413728298270689463108776300186887738662744849677990619674345211415245846739018429970827792265193293748647446828467914148913177050950527414127244608735933734594459510503652446067043752279868667516467927037173398332648976352591353570827709457164994170378295957488600406322224540878694970064205146936111920057358302754964468594675688443523739462045787012551680255288625592542354129356641037308979260109550438987056025373669689398669016773530254642995313305942257199528562020087280572730794816566695646923660360336077904714717320883629793710800660260911613384486041949518710758443046405838792367815468587106731178583347806916522150407550773333625106379431430622566294206948790061125217203145130924287605035634755726862162445977405910067294756354798726507569624856993191614817366829109894892000808258265713878944998456330273453420751455594936874756381921618226535880736495804425062717537425399448629716650813235497373257578699334671363641760331080142546048096666203794557614752999439059851199085981026616246289173994235283970446957894220540816379725814424456382985208401275149042066064342477350924767097160860568777320692064751159445830126271651050282855282116459005552845008116717182420719715504965546261240760933051351063979328951700426679692029318307002585253347166172141819302401849565267065293347690382691433534442768777283801461099782377240066772814156318274139552750958999641982901086636808031220454806930743039539576754083324408252739373087518182824809841375566073280777138406395479309735842947346441417328771137811333903274776678130417457275266028430484306410998461048184370882944343584184215469149272870377850109219677512365557480310448670715799652483789460306055848888780107992065778226610134644840738902584174166848918785568105362184330909250625822246657779707426533919462031295019787946915161678626782531257925210186657863431259509265500141879753193128027011671958198028944306339532265227048208933575292576967433848562204202935127177498311876560940975675584694540107160268858815921805520680111528828684675809455878907214573505302640380414130269490553400009872783864398813841686379239591402945118705383031486249861114545261275429466854483135771195453505971019914527175189739051129308053736302949159745722557535825413775918035639267369702607379075614831498657739746124767756172994313772431823817019294308832397046914091374257473022817590291065464670508545916601754335233870214441604246074919794827955084433963446079295429312745988387299466861422064875452521239132098837726693741687036557521628829141191379304160105979024672165420024655172846110785508754852542033868758506738852276189870793172650658733835254416498577163328347925662485167740761140989464154035793652922703189305109554583006647351038647238040402012387102875787755787407940460422982152593608195355612850628572020278354109114007085387385710670325539138753676346121386187583178393133109200183171680197252192242006356619527773160540674318211596515343254231544246972057141388193997194239846981160072839427335894044472713132216942881953949380549597471422546579082129152616161963409973797385114331106764867450403516760131148353801484592760357800125723765755021465521351040623112366230906548389261909145330873844294029684561253378221945948829822198507616140795501148758442485202887673296217646370952216673333786412741920774313154824271227264282988157581467540809135557960446212983783253085202757043876927853690888952405780404769890595593243147787504705038334190459217255991011176536978439422239481357746194637230239674175426943261849586369412284250995662428747339944872554076371338895826731822182003387454588555672660038060721717531680831509531850043888982091518351004264237169242693912448917796683644893928266405757857914996442920626218839810592819251193046304147460356706853661417480992527465561138497917510550616494472340035702703030677063248908129184966766140858976548095116802049943723477699314876844103376441899265075129997920518350620982983535819680336721117497705377547028414732476508347599026732131138526497388993701168868810110656269240128131352595316968073929607674371812847061346587115236272927742739772019663429337918114488906971123307713231976454295305151491411910269709103530734738260421123519583975137083542505853415614393003457250562722646206319213766625065877343957797284273290296416418342527913797818783880425796835384888180403584856096529141893035268451264923836532954310535982599128691690713120924107633355810590019267042466104055699870434599284383288035896667061261799084162155689717615051987543054038771708020040675129575936086054607326891383421043556119246139530097903385050850259514626820529316302407900365080906767100052682835619749177710039514433705997576515909938885084633844283949430733787358342857697299090939371623891602351801207587925005272930685655563825820731139600521575090995863737756550169320850972774588967586954486990977975131498544678337587849200536042821454485227069978967946006592642572584482408730904681958973209247337129293124146479657988851939167302330421637717109072824593383856886827656612784992256928958619558558377968107655923475568219961816598069434093583300489172398229668989523935994892413640784727496578944639999366561312788501224873458768859097173183901287409604126780703296270305795691331699807666025278572482933916536263090845716597137851289908936820943219750726044766688083491896758796283245338842002799508070035651012881288484021277193525768302397558385167725930137609120116681743497126746441962898926168119600378716816726161829076323633469482809448122793096841877559335895611092037245787160320493493250749288708013745317868300867244945486216507259457051201940595547116975252434275345569368334189005397113432375558329010323428075607634922119451263013463883038437694801660226199189951087197168956384023149816583828492876107467982986584791690830082349480802310102811563589508609741038764841102435540956478175225985403994593187049521415633894943620826072857802917989122259696965305480302152763472983903139141460492321810033833821643705250490642900819500238499103186967912962259308948918898296106074228179338907380446837437906399027829489621326647912870212929041421912365045772113800783007111749490617964108472612973499441367225488226831010006582590379012555269106478460407306232265942767463177951476920257678734768520821331561171622670867300648951806289052177461264012203399252845193214275671434790805330016136090605731299862301755241288969747768223521211495158921397235022741142844672978747386684486774625717491867356970403561128697956221227395513253355227442908551536749432020279976124461233251204356369974878870547334823746780738639373655277530939706643635193455281011210718300407447576639012383091810423899245090452801151446040918918722625672412618716777385303501472455345939632337029181287326245137147268665180325013825954501908571119719959712528563143932293999380733821004921014910533776988645241862489627648235071275795292317568293105360591096360574476436434346463114289015685863407910967966946561889155800063976698963355941856742378276601796980137939714012591217517275442961855228111176525425000641880761640668292148040694945441274413309478519510447626202120585128811258738789466392683894405284626868093002046720903252199469530350743707759133277923483961808779636359299254733704297584801544707468985696926527238584648978780010232151290036372181056819026948740202466119449682924946406071984510914790692979500725533404209466517608102285562343391775898340516989402086536810470415285371965066568483238279236306728052498270873135139145949123846246556239904162830111564179187508658593222786878600827801836135847154141685367932915131584518575219521491494805857746232025481461998455074841977550305725350093511082042197443006446452913398088865639048547964444779525799257844660428037372782816106519025587098470749085343467505591822198696181777827908853723607924776922719162150107781832267312659815983512661262594666938938692577801894469733241665264844854148344705109220851933743516675209294742945545819736377181449947472927698458971269293195009576943690460135039080407566099117280022653810416562495393166411605367500916581372250351080878958461503886159523999613454624889027537325247797833606281809829123204589295292339451634650727950984603630405299740394829795523191996798632329109971218608326884879517017929210867917149565460481221077225099614841724570441201680926625104322074088491885890749050571851613011385669203821247082968356945014367769431864766412745686240337615069201373932688726659886523778262795998288804378014616225230804628049767610080835326576601633841995418142221886505330816970514845197001315981137381865010761297596354156780476892387539174592536207434706789085437327876544362842111447865041989687891942768941936642769961001620596415930055838716588880549292505325863581524132681243088554721732012790475480067076928272086269133428614894175671926859250504904245573043758733390333327878635060798831841020161059939111096943409066896520851716260281731899988598578183365218859859831782376322273653650088269862558049385412787236562478021922271084088364443016802937458806489124931835210125245288987356479974559203493780218576285283035263311881804216964611114856358038423412027979258568457562428295678073411722041449139346740691604176312174444024640300488739030230150393419796333365357128777387057085905948673517260932730108561912146083117078679903121162312109917104507848378601105607429478418128835231216528740013281742247094665939210330441339658207531192692354970762388827155261966163122728356871506948337558627236532758904320995511043982889905582852877297392265268947278627952968704455241812188340173667836281025963226837052883279329039518245047346106926376705729388589417586771817194928724073134507996069069634964910717726650820544862388022712948204784724479136372985542533110777804822292758363851044374518063059445724771924249357269168803539632024987302731384686479318845947486053690743618165106189405529833981162485970730494054873235992339247479340491748605438058607126195823696200922474299082645369732119225047208121922957784222941240227279786095703327046056538622935988013014435800167329304391072280505093676947634792594978039527704271166792325673905043713726343605405366177486750326469639838936484438684697689660672656479296999012615481517911795459982863196922886367187709372753408455885917777540402733747146995152393258597000981203534396261046776194840890234225121418845203098500734573043711602586593220560306244942177811251845216840698259469390249295656172030894250054027570877970751915864536637952709521526615127425715524977524283637782481415674868418161036925862385229380386770925204091436260394062710771751856134889281820029880416594662368262259213737203836691721892384326299962105775045431820281654154218166876928014027533600194486910973169501992811521608888898804797860390991940595042814286441413110696815446444946267537702586630700238619362788205052670964044189916144352945534645090487101899221255700460082914338684801714439787440298828621410137648193156346053436549893165324962519782635016936082911644567171356133308155423513435578428345858387798992038773701416003728230889844396257043413447849247278099891711062407074025902109073819358855338914283724510890860919134698870458359634573609376692690856709492943670587585627830695607563476391540317587432908999283800204397979267852412898543883155620750121144511100584760157603964436696407983705759334566385535508429645306889521272448390978156186989234360733389047793694156458822747505974494784416343223398223977378742740141092073410460589397661244683196200025946436832800726301253129602167275303014418168756486705055239367921211051919642499427833341345815259780640570115627154747710628720451936136349264561115221527432685452650083343547411170275878932098751627295293585207399183087527617669136262076849477378186746041967985946762908705520402051788762675052801460688988423497214935082596906013498722079099512489165319739919055454371806106413117978395774387827538864935698966853598659575530575006645247493410510018313192112323304195115292457441987463651748235720642574187508559211418327179587476062656707672146879889475660072587528232597762708135931242228786175501311003618626762080411230777868986692181068820294661083985777577679720615227031422272258456273219220497405535638252859685951112827607378379462764820729984646070097879347627162748081208393854971793861106584773526391978028585547802191940760278185336714425215915572278619133298607316686250794104818358437269086610173239670437356170982695001605434837213143740099199334683414733680217112682935221184290536303298327645373615064947504824191045124331462749813131076648079220242800204275534002655898601903339742576703568411891555612806906145961944559793380536596285574299163161692320576302753002050702358021093368829023571600498722497689070964362642484094739977832947910672207802020689191423334214819144111966734636231477745157759414908514060992381071025119337313117722201399725887642500897534958039942242949227546851789122708317346797779658373375561714947735202982273565520483399355566470132271092515328668062165131453776303548197529715023197723107893096284582383374118417968954874136951207519388115453757282868373932382011664557432533260884946512684846324616838078597485394094921391543146215966678569986769472725591656346437293225183072733011992431313309603609530396599143181812532439016441514484117953095836925907879064209315803121609240509206296343744948323165980345918179839470438857706043584542855265885527006514129425933996888251489475241380045481004759331856341376889923279345887901077517803812006684449705257621272328332718315211122246445666968577654782658578760124752523614293041744714410628215889494712426228131328934222959242377859704778004587929646701318042891487465783097165063677417138763698062685238469184634536339819747611420494149841904722446568727430308639161988319664538841075389713121189818530163523970963107603727388086486832519754314209091266180567751326190183323591219878638099970522038897693238211433078545079270490681811272007903730354042260374137917911533512964957955884731275109458282142972860144849106910606662657743873098827081624993375588735691890002860706422338455232872217950180258913791268230699055932714245266288795458537713353426100542312383423105655196894245683232353467047442212970898975113651346243366744665671504465811463026113121702146816957432230510994689663928544093043423468822668196772623336811657654775868227064205421798170480502224682599524361464909818770172713416090989774833297455675836246315003727957597921121831732156044715575512697990394323444060835034520525392762059961062183242809276466170776139263752619371692479061433593825039355624618265290240802481920597731975481683020337905036120109494561944330334403756555719881844975077650782592473870767692451799895014183712188585333552637220643131218617286963716040254007330367563599000695590785777899060099046947004783516134448901173193279660498314150071167559214293242591955735024488393430299827021499365355613243093080265752446055280879651098828820356158160147959841528936494024482835162942903199740117977586067969026192936260834484863168907244272942129604206981565576977796345572058213376613905606507852669734054895111815706593935198971699938229011379072705252373444463735114980992283304369858988590591973531271668273534788773295917771253362959693961461176137461314205091136824926923731264845017371717084802650733770273050146202284545496091857989068130418934662474142727655883418778872039347873456338675659006652038706447053736236188546987819557236241738737173004000800308352847622862524805692338526673333989371718977121258423966262123756321572546106111577823145733006851870371058711793051085358941782349271627380642433639840315316201186766061654196094678882450889716531341804015288200173286911750518732109926601452130897169216297587947905522480098915249380178430685227179678203275277744351953261960818264371571035098619405989812847739432110016705524456762354762804495554769215046328095983612361046792119456957892475739541326410987803059451125360515689824914900242602842800151202509956850835560850249289781664759109364969285726286741210481856944093766676400652408868668692066795166588768310952819833209883392709687848009448569297125948549635437150675295602052585203207549896957173157507918652101650508698947684292286607697396954010570111714633350421492452059270460152203910182920913109345458780631935494530452621401738077880960421805849866533207859101031425405906709462028820973467863569287581684214022795106401318136626801704730202551181340944168196950947928638523232552972694731850035135957443642952740382217498961498055897042755772431076231293943547991046896231527107457891457654465412736961432471091135694502275835685808448668768861394382090368361889724623966515480289357693446282249336089076073745704889312404327106772621113808405838259775752825447317828796568762094369344185748448263902379371490754397438555598402961434908709193141890480939126405400963337667044772555260099357087762430622668526472083612491573756973830130771041702715434755916334716497340900874187988619661975524022259239689178023831583619742242050134094518548308320394952029916478179945990187874396848713153604192090922333123313995244861765052876593708609837498594621891695329040964263848126430146563228976360260384607326006212551530243507558637572102789491435226576184750676229802978229736200695369558333292811227068283758942468726590754421539844737374648449523406919534347003151925620464529528309783733071898298335673810993785364421291264598037814143267231627859891303386668785100372457977895457079961701460522686410501325973396760962139458706622328726684421300014361690133768198683095245851986813280689189241932804027115288989485635423257450839001611557270670960053432597296060327587169627181268987549061079101574641260002032175921890378836775415272422698987485074476802197209516090208973704007619563249671547528010080871059845936749861434720300870741069070594470903953155583819983148829338087369121293992864846197519813132243659530033425107515377648642739391447268144331139283896672921913773275575036392518983200081428577627568937100822961973163702271392931330281551481692529455356800927858183291659594446755206853393460815898929465006114719793026280693448949052609116444206959124786990573896185292314208902851010830948978568199738525137739287829486896070293079221847753423684933464979943458004863677874879992113907222066720583243154058359969737196923155493034138627918257424469731606058636234160680141715713682413826839481458314299979311972011478218192548629831980557903455521041866927861305671417862719149150632981802848200990849181779408508337614418543061885969660638125856768005578743622422017814931135246019677962946682045815838458019758486878936994545341813153958040991375601793718398973673050112634790719208588472230463381404780041843575271528710539017030163993338466546080340346073227162302853640774393671609326504024786448749530090255969833668089481620327358254153942529611528722563135921354932819747506538651896197304375350305662189061861674995638470033255502115659236921130381636548430577472042021563852035118504235989331158804460438914359715228806599586757196883646286704742082617762134798902933715555700925989861795516928426994012918131671521359067139117887686417903605543536488837348004520922129062404561864280365078669453720447401704813623302966641152705295068701069143688281297111863924313094628726662241164301938057285312517489359129291300400572332062019274758626398524767418730986804316713223230256813084007010831466276358309380659909877047192613575117563186442772282223250682805860597889780807562197696655506309217042373599078202927897957028599358415008539633572801591773146678745147350173399186041045568431018571048140087958779125276478918777194796431186103138759968399491507544949615910837795705186404214542458514268829282318747885535151660803044349838156856175271164638904998990957393693818392205789224344016242174737275564260448432481402848170100993824709771970622716579517902633875148076613217920714725257796090816293279161792387043539689827388305002428305045099812096480598743562285162335163435734306831570932135323997555486828162423703376141749642593632359731414929452548527821482045547422404431645739703397877024357339454068005354623977024017561863823017052263407519546162400476374801254877596028259660521246687477794733998366763106021573619796314491380757577714701395532336849604113019282926901665871065717669793912306082950009883322643912403170367365177339476079903819837279278658094221355026158872180902467144363624526005535041652621987832842346292446721665677705904693108825367135751500648955357319023439895803375470001994118653084844543020644430890473351504807506156830931367451083878073403328878851677256193742108889795636032129182480329312335464257884780012131878044388079350496936354414759729138876268022569350698744973497155203029799922984680865117009625604167386116067180670478501215676658073784668387136408708505869408906369237293137411313908557326157402293365192133280082024397723133178488041292836462863733337408764838181433071552537983929143879114383202362676293273447464079495090977769155736385214292685321827608298304236049800184637392716420098823465606467187611439099754337252602087809860841536388569415141563573898222049406152456066471878706364712044670429478063385543487831542805609800956318729284208184149890794855025633465619351207728083775558928635674201647102580869839137572448770874241448451316632319415379946088886535733754424505606115547168427578465622910104977421605902290013623774506357619746827432217755354413482436562067681756688569854107199878333869255681937160749287653067848975892653232692404134399041316591553497944529468953988860411311050853522827976907994001309227226658533629289032578209223137795093575001303834612885039622608635573349138507930224139021764211907409665389901562913661453704067202934244350634581898045135418834313221460128100861415706498754642378096727953828353699830483202052784971290929937116384096553417131435030719737878948638730731169220146563983405885282890573565878564633907704538320396900836158076621031196489362397382532912459484056507469195612758034509410730647128183835204371369244284676974942734061631646725077681454272349597256448178613279529318633330576351280191887943694972189000191318420308197379943645173417427477200324799690155176555668923631311032256123167463415132109988488962584218418459600769878302603359333356546233634145887681999846961480486528813341368192057535493526843871913226451665844530879878378608389510443237298166035485245298805772210789614007990387632377365349474410047163229416695903524796853731519682815099887251941118676218911711061615054885530747343583856423316958026998111918373410730925536256384990708469557701804252988952252058684087401468153050185722543148566132930613985225384341504429649922189068943116754752272796595569442537781400773755545225000949815361710361855336932310343865103124837566738537588417943855295269586825748247950163613607047392537489361864256066241317371855819368312791077620330594126391659122572237643670375058317907228446197999722193781899948265075338958581370399966650499696078898764795402944059943629250352821617879391311229990271463239979749865900983290387924224674759151630407553578906814709581248381270828137984188973410260323722048663693906161245401974885142426387746958393731944888752969311186027910373997671761896291874939978647199401363405164347338735377905939937368491495489609086735258286280229669776179453370487794392843032671194790604231637433732184009758133126863941540197844741706717966081319131846215273540544197208179883584526941118054389541531529063165011862211573150174875905152211145372122356664014828922107983003334541809592762792385260582808484772000550394983902634418246065154931080760461212547118171575578872928214543721276922224648420536275336849385413559841698581251651252568044167923504327011212258679705391968617226655560471663426703207438198662765495107522330862532947790909588160923460543880405856733573308869409526886364103317410800194670028025758365999595035918920847973265316333220821235591468815595686396836038567985216020307698334722232655996179501152177571646129196724973251189640246419396211418850865298401199547064118406361792551076026259033414796600872518263136565944817674845328166078800271289576274625131613611418549281890319914777323569003031158297198480735518822591062505124872584737524831532394719173766307112337039771013899407787157962670200806934469864213484784153892061685958941101307986632852722596278152036645638771342714068598401174344099985814904680651157361619651500518833622465395047962329433372071262938751130062363537349246934442492639775154511656212825445922263504052054110768344849353220911438585789603977268705275656185861064439311891560491740487684465493588296456572072275074384923225520542379902326007937258420961103466324376552980387558663888743718471365272207875158665323152742523326999937740080028996246729259464105078428265152659756163247582484799908303205610319079479644199353531101426097490214664327148264260027560486530377010553200830757824183709334077517479347734370351205654184638617301046718999557852821358596426959452422203860270438958422875752695048272586027010313040724667025169725096638801427428263846612489290127907721041997972576643048696049374355636606530171469876284824781268440044222694038274083142346766944471684944827454832126110883228749247181381875982691294552005120383091274720270164498352166790575377204853670752732522921136643328389104446487408060505978255297491979436692799381102048902098000822294436502039709231567289013577600295179827819017782036045516099081115519114650498690402698502473527912448712017880997731674088136104470926892751770813045791309023574190532766980064357118139538539138965868116783304665154961169931148146491509482547641974877468573428531694561910534173331993713039274059255607580107037551362430335708414662477787269769332523736196170349911570084562361605826173670615817897721057579768588110938473131695975878671225150162501548400684074257453143192981348272139237794508374255818161334282648138761547651730415311489996226680208395387909906138107970475767794720838581896935952001363302580878507687792574513123095668644852572387125269291334639954599476794887909073297365433860192451710150230353830129273694021060830034514153147670722946057609064354213924481426320719832312329497826476925964259422670644869204171180618839931904379752941249731588928276558981252286741648171319606732693761080083523136544464909784872244100636857945510422851658042673800437697312902063306003206139978529756600875695323434191095547695330510651988184947741148447296940102508754489768359130193075762853634931039405311346902846969143737948348400690378567123361279646768969112319475454883537755131904582337686437279161628716971244497296077278349396484064259499327304359532028451887405887840939457351320288211278694183038674699047181134012743908273113818362304418702244922309271996384084163717908068694905108667519435545632769241977857785628624734986490832416664971884715489473236951956709527981794607332644380962106407456593962855794911357301736313285017763240186903416144255953755532407626040658071024887186808875035239358178857280246110372108744828674915741024835807301398670995736817025079055406480000809671382762504009386149802520947078369734068562894309825330650104775673650770615873643820893608749665954722610203781348480024333041802154365566338155779845345410195215579538973883464122881800408228780426524933651995342964083365998896481133851306079930651667762995830463251974277129679685370670387925026140093071168573497248939673017204478789311949420405357733281265792917420580202416922602162635045624785389772598747600639087417255378747084515099945477248782354440711078073891217816706807217734627403755506790269981523716697643999731612564796529977247244263682661249809616234458228752165837775442386568074944327593360280292586186118059831944067722893405434054253149573744271906792716325461450311530182617063890203489150100888398039591079973555278876949689932428542326762963808563971389844544067637187844348571447650242940628313307849824937798453515374827771012064709509834123419084517440647810427326610891598749329174005293744188951346241060717883489484231356810449267201946049158751531291151090363657729038979113622613647140364184595116807317413831924501333651775654649894864080714908671036025766867199304685369950308567491502767210400220221418892044265671181533733146822204075887250223005297573033395484849193987285585252864265809747080155522817547653073702517680986346092965381294199182655478044974045027477028631798834419637439459942982670762774234287844636397433270491477275472386252460798818786850281382166308123367582255904647797769893305324488226583044965706380228700745865049029927886219877395888586670622928556063226918883998142094914497281962153569070031389511974213758741651558716392288368128287057714925359277021432676760892834519612452890638334999806305074462702850282823969477881524609013625704567183089052061376387808885744459294650615743967686881092900882229396203142892667087975907200145566701768778978254360397398450083834815942559390616263120396649517273495394936914001072839781380397467292134688252798117988204028320729297672773452612407305766360923975123824118932793966470625284639191903298089967153915089235712367667018178023014072171181651435261795048328091699790481262433507921830970073337287114022449311799172588661826177935321656778056623741113538419206100671327755797380400949364007839653772494345526015173601101203103309809001344149331043088614263732251022713629442304613177697951670268726185057634569502629819077926963958193199893125158935526082529692651332654578380221143442944359212915928684011949599756413005594625917107501583676300472945293972872497845271963027005528136912495739621154350317446819596637140642647287669654423590944610847794466842138712160351264936189509371852087926679027364070668270182346199871148287406139797044450458022784303760671307167775444451343699674483742039088810805765487614004534701947096443653806005698397590968230561494625553778576704036061507785530519204433826419682863112970857857673181214797787857532281489238845917800209452970211238781389017004103623689446821360676143071597991058089734107508609572073850932725401741124633918455901512083482214930098303376241796823609066709971354685345245808769285928197542490403769281461205752674043259059465293060394023305447743834076667958706607439911246116828923401428107477053768190409777418486069874639464032295840859454735620874577342221392964200940289526163576564577011307946020698973211094382665345452628870785824544620363452909235325464976167879487138782935285644895018791905088124419243975044981937528873822347314330246296909898372599830515147384103848092757285591112619418902279159056356276214234219606036008339071611762715664392427490039178581718598944969505428439186246322054472308787444540461763282807776133911322581444862706422687491571612612948563578103971097612118991552012099360389391187078216216930237832540253055261297277709596413118579537836162682505947878469912169175991587063927752994474670974356360231031244640564310567795742689233685802117561994527082096678572712114266420299149725906220749228541171285454997363027958974789129741742525350607048556870620604846391700282826586943805900455420427481695015632918843557931624810863842917393259322061083865960906242834947219868973613052420794504399478669001722493955472827868362306599956277887064721388917051093892812770700628513832912979783031120299545991275960573792093193912039135384510450034091672449474707648078859084346982569958880636020503176720270763866029831178786668173129201661678217276032349165313903890874263658723884623755674087911685681377963065588819439689827166532599470275582508823369503961261960741205086585878970519078369384572179133466955673911422135836141829581303864086410704292260825810676788981423207427835884483194774503219063832221114500959361577554920288893720771437259727009648832797652814679553533489082327840474828083286387636577743584830781139512793953035539152590931915553900252790834086447911195159226553813168704748449678776637228555999448628738353464051024767310251715808007381851062637192976139370048496823878914027320480608708354374598527479331931038541945592578640010523606851200376369342494135525438142644293974806685582780993672815647780336928652019636646322742187019844478233027145802619045658814079746337991613676162236499386306948114247639662866716302872525250765391827311857917488777252984799111569839005135453267431367756992413069992522204899417818968284051765553155039172151033716234541143723282767804734016012004565227151263704874498119619143968949888901938959767903412831615705133900126720694460326665700034052930240747237330137705912120600922032618474367448056397180438461594642624052827986164516055658963999703420875290233010779658161751293989993014248940509234110343205567548600475931238878816716736619744609739279095143601059972669238774434252625552363914825618309761590625011332563859727535513249076521324293065363093719385562565035268024326141888542083394145437134152353599769255895928298356364991724728129327361842027329926801198834129206050266579096986975807941367720351247573145339508760253666688650871243081122284561624597368677411375268826449143049183062935213064778197305218165596090074525392374154668449628531513326617373987023182391947819060576702163492230049235968413494992964306768093528623521781806876296634052564479662768127644881232610277017982316177187507533762176817270917589423654555831375389884190838767694110029614510998116017799252269196591120053240081709032257759775369462658925385257270032442553023455491550694866427532090596733405540407535306636484817298543604407394451665565403324396042001513173550079407467934220903674941808865474374464883255650204602928649083005180425059013137895537665856939157907582475843615431328604433192090044666355190696786404796112889473484560990035990154642258874950711446232741296949468878957170582714493363586934370985797793288246163981973385222867965860676952963059168805870255257887977608686096129172664464297690567542470595518432753111073958464021058772340539946137897640634090784496446372539505072652016784096212660047959079391470372047795393726818851296019993928439564598595897752581038948181001717369196399139020561728448997866069999545873200075657441189264078542087814793799363596423669775759439775425079628635303172137611454568753309206091747709618309322577864675705909346367958619210748581920816844498192316577849887035685238910273539065378558132533862888473554129118054195089161855216398184774912009823349257821013091586684282148046585286776423365306965154850480377267393200477193080965955861907672017311776772415835108748706415153798517037309024078429312774559229897639086452963757544212955992356426893433043125637563147352332429529214331703173260675206639392568405940343234267800539562337767900579382721814964241924931718994495561748906451541513805780479598854286530287527474696447150426219065170034810989906803466149797353585084934294379377661520418605649529533975879886296401293614269944418749844898086504261866556119262351756043512472487897678088265018376814404325454100744702194733263122053962546121501348124073848353216025349561374274465154689395926802952595606982588362959400946828501245519316662325919106171791956409432279277949445836902432418450864270091101980418509894733036039798665855876174648588896745299820435395026215016404400908513195259166833376301991151475566642768075484285226062107863941885134589038460389523171522030737929824420459244010070205214729093618913609815034694871930347070956270147585691262740233943331633781793285134680566586025518449883494620134759882728379752052320839824571625988678266268825172089397738648376674016600230383539410579853295968926826297052084909891589822488637253750900328051928354236346713731413508972334082113317575123735933662286826751925924030044554361993860988474533729083058179844220349901666915691700140865889699320400879224657469703065456739230555017418846036418672014037179265075562518569482541189257367131247631337643592661981240178826557634213822086017425548454500239680055165320375036312987697764429055430469786508104742192232128549973087057752213448746531049088081912978534105632272384485185257831493522605982238763008430692890560177158611295275342374349011755750840326762153021162719533431854886565692584235678180315404591546448827981169031286122183113828915467754343503865901033912145098573792897075610499464124266814085683573895519754332879153681702650180969105181079396961048668775603063870476838443078267749065954683188733456581303115134549116473505408101268462027072582489585365698162306714842111782872660773886958688018479612853391179449638265003710964548983372533705619597275227985860977849944344622595437617522055792056838722442594034021077536968966510678315435797019561599938748848686401792362437805499387500048848157109326141492243520839668090895854795556011505186226449472669293383439645302167986620964408048190253048617354009909589795808806696672334799038579338859999147910848911877566747544459162202770597536155582617511647492126573547736405690365762830510040147103684780446378635013084408600548415397109145641696389775847816240031575313374451266679877697755944796896924685014832737369490992622619859989834118810672528492810272767656975614110921771523798922598842718324646838756193956119933529375126917432268684458237879679336041651614078583433925765634835527942668366429546024167909729741352520497641879188434390264103176671765298477578567273792846899698742105421697748634609075235183010953641054406016101455168429663062129991182121398129318139430231540054091703253924469250152887733392289298592522066616966882256728327491544347479252562043296806787706336161044871304859590498175160428124308041299368315201249868335825152187326821080257745630111935917056926134442933284138900651443842975494256579906266781336617357498680350201682009408821734860592573526245934832797802375980286259958597697655871775152392546194667005218609030571764470356519799110046172071474739998282202694368488697090582474470579950882780138594016704899694330595616739764369495527235519667487842742249787288708117478754982485935969969587309764564733270042923183167977833469633080691802396447124999059384302937076843820017587829361921425277291518798876534209004516142179626010647311216814610635658165933818641987146368455674092697362284596346145441764870284317228317271323701720471501267162825560571651361100625838878601414185612981984619714077008973112879838025896987251297909800366892995712228749574019240931492263624071687130125166460956443286119686977946231097814883790077299917595101029687317963148063230234261471389992024925202472495126232934551562162845008445672806859071598685492821448528227059843671916108849716312429753300442726814107974242294642001013575474890544309001763987664859730049766841144173489322197997766115250980855710297374947439875619788609359933618404202322138463183660680985974771805014683173100707777336738228754587387283569992950736408013527105894500385929258802977390679178136358645707475901162257368635595682280748723305500826242478278622793801799753129301686838602734508610742199822809779878252524124062798094438899172057434731653022011309083355288676874617327940600077072625044237748767758965080227399852036495176131731690082365620960724770198239077717153226527876092119606487142125237032344121082616463575805044048327849228511115145380847775561144813090089052006429402344194212767158688928469672394530651186764801887459396131574000295574721605531089814285354105606917720772921349702109403499357710473477442573134629313357977445977330600510775908361897563618231420754437127999958500461309702288854670569950440329569544028825830266771520707596917257755453561816738821119596011813408272728150640497381868561199282790493976891095822539454997659679877529103123148654066147869020598723845757026203600745581951525641955682079964236170656164691786131338411160932924822866522768183015668398604723075192128553452744741843812913095302023068612982266053062746754865970559853540251835666342747766855686584988322590269118512289520147979484822310849329501572536076643572143080297965212097255100037975562409645630428508253986435008522086920079902849331641516322492310244763538301623992885726441186359916689732009597996987768323664237218623376206804535932239669554880653199158983263043759888328628048343400345358562649660096468074565399973385838769067100190311006543398488674900577444099395534981010872998148911970156751414169393572008135433745049276541783287288922909142623049224939286119680450122512666084461491991075800542245337577936100749319896869723005301131742104530963637493881686726132122500906126329021746276744967744051589896922150746339785336196746667293760238899440375677878578967838122491538763743190964327126261601554310357712949725099337270505856996267784354570453127765766394574592521644705307075506417794595971829621140711197878305731580659616817281845792670980589658702856176914404068255751393815072567628468429804215853210662816859476827675336101262458923950500647462799284487430765641126673088652005229943384096845014245088876306297050230762755429417935878434158023153069660042197987256092963934753784615981857161297194010392189905558777627519483155166798752298963685550360201875425374679525156343946341045111848642520036022323729526613080561960382250220378189542110379314179461339255228378997035598135841366379268834888006284901522944525547498113879563842780923570966152327142572714393319677570261638110665629428609556441682450904499493531289649658934459389334449620948620640618476591464373477927945687278279189379435584768591202409940717060163624063685062287048185427395307437149951239535684511337046498241919667343892058731439505340969213540144992408310525179304153033825105297077639698521284202691635803245716133396111105862038120130114731605033989549847091807335529167673686051574481298481945309314263165897120568005645768514095990260147809125297964661568935548397253887709190650005211068301934020031190203852095222073574034838731490382221456407546674937047566170321586032252908676458217958271599970655576442575607810786680527479030226698196168728042400331517789199833577038504421468225157580973748146057512979226955266638794903699903578241214940975524377420285872599204389987622842197569610286466804494592417203158877899254132330327211219553105743792506153140750232780579457193780607143900441735864438004816295661735388467618251492487252914513403186886478404069385647798028110814327478038576282117093865083919892433516935735609657154574815317621292173666440639555043241791123326654327486021188123818346178571086651125914245066576999026177469323575301529714711758836192383251518074976055903203340098226419017440391828909304310162618900511643238675457241960707073445196373909304365205056649750398389646015102757989512475536515801910909629506266181197903477555927335320874638074132573187248372407958209907828303325691926551375430510705709132090786641205509811942435266897878539331830195186253511693700102531316237136391026345564298088068387071671438884022916479528865061299436297861160464525755478505534142231557626374523482657569478305016743531346353596935105532105752937465039088741079137265429856164420444742440827742521879547545059463586634290131036026075565617879419511168514581709884647248375346044110906391527009198529370367924531093637013741002024274087833003484374723534352222313522284696337410665045780180330337329671112920134294985681531574061342527884810462195254874184120569622531376805380387153511936487098650903041827775279952010232588583503359471772390844255324469825666972642345458222652793505992032169757308291401608012551066904075293428791534562743675355236154988681647494352148271944733735786293298885625939770454417196109342597630112928456657432694821620186467653583381800913842215354912095800282949878864656612326487759168061954828861491800240645045935493547630742653273695482990934412559745231962828149980329916495614377277351150838371144553231687771351062489998377483409680040667632897616539851795912048358680910029167057683939481102415521760709974425239094928520632654088102851440239962179660426186521182602155618913242603427223929195692157145417339345578043258100403603161614464292810070439321109288747259730431019374722064586103974270112515778887237389413281385613378670314791002711981925350811440593491385621289911393975434772206082830658754581165982397643747372592844168192371845380139179572517426731114786451471778152917013141931990643238436733335127467286847167159339514646726649447860047712384297345647438348043159892956173232150473125281526464725027437535753991625958209382706141997899791256100679646760269848358354103719777053526918496569594492138907921579010651194371957270580054135087323698078187737079374969770807311776785950124339890682893993292070505342585896309079643119076884558034428203338565325654176704695480560423985149385910353820339437180233959758016053098463829820927358995287314935765153539966202129298272079579151086953734437870821590364930759956849312978952470484768707885202358627368827192462946768023850158528785368579823150897591905911670220144082926853316344224918582098179706175383016943861974313572954687354345015900620197438101507731821395704915975483766776052557671471101299425127237072274885086506891310337370158485706299364697803335345249889359208502687168006409144508710429651165552149174861778228143002071581092520339317544770914222423394973676120043108265906632287602212884301274438803236361167366285288741638082286239222701787580491853059146603217338966469704161128937862764767159990808618299087582210399717711199375410380412702100390828600698810919095024847431634556717683207415476103549694737002245728014174796303895604261508898259303599195553800486068340622976205116657675445704020864681290152586110071083762334676729600652188504429530180302828676496787828620989847287696059376825430811224417443088328603448206041154625765649514424800542560353558226646266807667908420706678647693904907157797381537513556223878719856084612998130591473964952083478126243381206068626225532076286319322397026653627165622279162259044871565468708095910783766694526710658552069553470638868248491610694322169131911046381327722898845236524777584868544361233405859643484851051080895830843383220491739857126771626972526857227283789430826011793827407239450666920860922897549479340822593112980167533447141437539485354332762484046214074384332283797288718923798450442677176707234452646965531097005701877494869058075537169940137099261908067709849648717911014983873431751962004930071887554951839067815525221779617675245536893652811392798375516728095211499602449135083903811912202461179363758308650492775232337144742469383500349679281468260778243252042964092124915043542398638612178901756114692975526489240481674106094698489173789644034760653666752793809155374069507803945920732965193125804599941857535955321506054234125173385883560666476440238080538907875717463210742102075541329339863404557967461447612561031677440328700943609839781413363190793073766300802249984118722154126911310190435550572820932172784439060933938330027912289065495539630009671954738587540409355737019777215156193731677989569695069961361854422484508863168834585224908045113629215213622826894460452149061462799962829532271264441516747113123306046606910486430347356054367789905662649049630594510112332305748832237843820462246353051308342216437405519947109320326598396568526137182501355333701858700076296338978791440747952555765210595446045344707969879759019025972579432808672521200502361719872543626127092094291049456736241656387253947422552856389311285138745419217433066563845433319986573921365376084158590821856915277147877057610343471471201891378079697520335475665633953676301328607935109838662734026569750693516997117008494739162413851361739007183279357922288299653314313531892034308238371223844465356490151169002313069848233824770399043816573648084535876191889192367080024226577436126590438155424999996997824468380091425611316366452898560193361845002707250647042912364822165972237011896252770000601226001791662771924560452451501829022973444107608646618811331397242919622217823244694274947454837229022674799906445561526315262695552804648660557207398870899256133117120117185695515258753703030580418828630194933146830406470651206256169494895536645258089613783159980756616701076192836616817505360940618359597115832928239412562714038052994809716018219359409092839911726739689384397825989150728562803748691769909666454237397125031734148556205031794717973231721626921134745614200941237440595105874332618630755779791136261505148049895001174847646614655065872782503412374583521009099663164861700346189526010672564874750632442364627791040264236384102919329814009748508765589069032493177900310156866347333931775205264873461513260813290704174566360500981746955873542250256645419426287692436902323042955637198130797066326975723214935621445337472406057318043371544785577319391216881683294467685673646615386118026338724872915885590756237482390181743373850846852536948057420602928767566354189785036704883270025332538579007286946216303295125700154763048896865844004422651629436279415992573751828314660588715799668194573413319349573755175040689256289353030797998414809884516291740727689296271993971314296980833658298830102305662800054024233986058402894180580489224579450774138596690777125498793963728209342661856708141293181429131888881025319997960844611299309612845408490775785117024009460509250202251899829172396282526411561588095954403546452193154907644890927760011663932914353251956528483932045926374446294532443349731722220955871287434276386057732517721230220741592480841646193929071759867517605237310469724952485621768446234923847980365788080138310714758915510770861510503534446180483831801563792442987604832486321970817874887292565186419442532636387450201479983740550567196559935348408403515057673627481198467773582361043135880754765069106925089822184922520686902054217574707491696810975101630289241547798127488244680220486493605590195771455925838496965660049240472677355019120453469608095167651968895733313944693803623891414371625138990176452811174256784098799872515229147349584881997886743892236346205113570360644322653246271515452221569095552651268139750298404747015598075765074760948909588293135956574474279875201991868920782526266814423276982296017538898754063743618454633620212817056871286168941809837193371842754704073265521021890078659827400860714032690182155657008902602710220199167693278159587226596531846529666081288547603304873037153297942095463187484477864700457616815549465756235521495118123667902872199340943654695148143524698227983894701866084917281527719385667898593501724307736415831795710009311325387223160022309412736172399130270926074308326451738016354228298075070092005075532113549875597064850317842063178003005800231946019056019441468069599681378378306858849014389729309661875347941490984806215007608629526636710093455149871183771361914545484843889990513284810544525448864743879306042147317377848156022512096026137850514479814253450231824286748318058632640528865865406238568290383865949337526208415030987192485776613964193586079867356513888851706818533283893917984600304099298736335887841397604193173246883155066212704076065655706377116117276602622419738691833831895657072573660722398435439191214444999655652792265305587798952864340421148178734388656008974106356202198718889588782505731632386162574481209964402808838695669991435759964646380238708836661375819921485802286271644163318909882224892579316891954358731498368981512753844794939085422823882111275828529096118116972260119073164001806222844026059135581008733083966839096607718307958612298661550886606066939527292177117625430638455396283265251402422322111474244731474746872723277979529773005262851795559485226989835162360905790095476529363330127636345822049623363281553163037757587684549984424700312757754436110487419872146781089850450568415499378739234953786520085710025992800033394507360482824802679197005446237198504944750310900303741477145566172442011986898688707749472572472448473711766426640311789163291547739750572002511331029940857705949071535217502515847108834130017243591207341277655354396667470026859929138192831419010632487523297038189239863975368087285230198364436867974581644880195249378012966463719051385419373532372169530666853045499489933597248608819993955852019737150766807661564471165356178909042208502889052899268083944810802647294632463775041662529155798109632023930546544876543683414303247011637457802587937169108904955967986884774972603556297766335840080075619920509326717344792214976984345926312584714104637430459645043354948003775529362875916788135538016347370217729042247856574360853980089339494483176750736300189000491419125782287481185849691139522397899700136790294828701525979583699431579925144010399129083342616425831051789120796282577191042922442750105515515644048290382256789780990903048965916705895769164355596191935589749193184276697744256496668532772195068186514640872132367273859312872800003540447910347626434317127680781003127276513823109735639609595954794776546311933376957379036405533906938775983897414065815945973917410576170416535703049100169360770124887632298798924476907918726994281012666059590446090688488232076738454333830685022883969599773691825088383456807784342070502625104961304223684776746884021681139258112598204190410132109766631852417401097920061064468931065172857820928547609218220676707024615294453997487937480453714002231667879010753338520363003737173709009124952086917452351099560011647739688897088329982047763126716588063759649706854218768374636684156488563350641761510553482723199433282631437300457154363208060784293127553704479016272237902844100657893332096292552433553828486093038604717228624191567424672765989534308848001285231076360104724231497095445432601984609717190126863361323878872739306453412140000346384649481985282903222944106074526543104735328351167585945699116724773932419451446479381998856291909086457622841605515442907997222185652064405409001747095284223424106268224615448786099171956627560579622766402246182337554555102157252859170030805633595102884595231865758613507620543869713836167411851373797027299940088808284558208218027721819029058988189012150043689780098995166418500204850170000423034726279820121968047962186291918125086787029476012915453146314947631371389806836070434775447661578754457105934676098035506865459546333771547006986635971572444515783488197356394968128124062768308794024720677478068931693549973264355367410462968953473822590394989968890184937275117363396565004681275076358047651787263850662122552190169842443493139979161077018318592868240740269432935376891838181757653634324525904477745582526594184460669773059627980707888778182997893693010735166152892607729984200611109169211421170624412343493122818253420527734850218257253169302758839073338606600852253521157337117290207100892183847879660967018050185933578850768446569648107395809043999834649025784607137891685151700570889377547605516016387764892744633876806650192416213718696189533090195753605461809608786279831967036106028080022613652370369656151062416478365920611508427792096819407275350922295757206926237736111498510558948826548830947343521349890245808097526922102269966229578270111850384298138435165985871239562476251401119354063745743668445993902263130971853196868504281573712654793705819946672690318098643366921646486929448494575769557858632186687490847279008380888724177704873910388447779024744856163734527846245724928599480172147098229868687306677774867240022796897608674768165153320668877368187396077987585499297067415385547316601647555580527721833892586514048256887105406022107002963040482362324976965421044836733356287169334371490056963191575284850883716367273140294521400399972618030883789456104644824370317307861699510441906291785285249063674487477999885824508718241158799407536326856722874417145973477453406357153401241218427283235860434282446588542925706310132082143997684414488829399361549475865021887466887305061147674592239587015583884860056751984196611523588177444655947966942031788482150590693489945946558083351153673676760212303332989942195798372907411036343282147625066007613450192876957139613456264409543228842030131544856435300654554362311666106847930689914720154076363457449173509511275994132188337401647218406261221700516650046295711462689683357811047856187630755864092602979079784782693377718825989533311765462286203482081250346570794158080881745300420029728347341756107314225334106437631768976100153627993309573080861010211601236172371105350565971903702649897652558946986363245179647853390929278765415163798439199333842344891014876419567407365693792954107707763631557410374435612273220822998448155312641673522270185255188693461626456854278556426819100380691809545611079288711630270387638556003455812718765254006737496866975837506609629195569706422637386268052292367371750541680119000900190396873630656696415423505363903856533989622343637975468092438724546652510816594292730895704435830944939047504930487267999288064005972024569131258447457177651064447181323140640555396716348937409796906800052749903356499614126576879797407977331402220432934043628833569295106659528235047209023018531931379571681838957463338812374888275196927200826281383552102105612027438129907490624365546989943695008551311202660849705830472985497193717583157211617236240564074023163627276672545033549292330572302007729322132394153784490729311323611490478854015252554440364059484721747506531488171833140338664809872671885710484142008580970303696751181880356501311752693567869349200493869742660293376160720959405366867505283448270924366878152926095325118978099059288836873321930146488705288540613579516692254212287786869401422249949743234367142940114555792442618792959415907763763116818456129046170034989633098258238275257484277159116145841330812470058474636038295085408199807224548636701578112629683568891613461945047425215706383693567587136076485427844254088744952547145530226004126526648075891973624311830448124111834647377949101145933189712550451419522556664347775890650380372738080178014447650491148924698517183311846165069764462332326966244153122512102587450437008563359780626070698977380298373767897285169508741136594686493848918449311227801908116427773626251225024983835002742707213091551388048507849997640124512465577510082366546338650729314331289835918829727734379917957104389991436932099383795567830893366431109751933525182671583227803312179654217899621573892317249059632557850311261463667127860264557681191772593810033463610909425592268173209139949741019153502732595988304592674934152221946806641328627648851484622167960467453217093769008873074198679653899909736394339056665529434962836154515151000531343126804951983479169917049814281874385714496255409438960751876152104687360998920606960454800893536799223346282948483521186388304694999396687031273298800890909587140546276928877134964526468056559917411034498712896163125980799410755112201621648873925689433646826941447874688405301038776543815961951993170809428924390189151292759934137160133145400368461895971413721244336403511099817701659468157360490741164033922088979764635470584401128011311557456223279337462652008569840092950739594906462643851304166673426629663335497994973417118289281759934895447613642486493514457740871308665369106230955443106604459912416181713134327647038300188618072896877774742720524325651269077492041276049737614461064604077263651647761604410772587954601772115021456893433675914842701592376750862770693332231110809924327719106856888087630335866805540724746042070812543574243454013340633012347191227953546816081151814714824636554136321773571340908400063487633157102519848640836145140128264956886386918543497625252613451998379678777056110090692107338936046437170358133347279958661831077113610715963488185314864003749021678343376516573748067038615352501871925124834326338370719607724979807334315634350189057079313884540746529265157925801844298950966787845118524338203119759186926347813806495240570699020410663985332070281595376826687826979332450444926314709332377336882048091399369179672257055665260662881256825337341127038107382044032885729947798585972323163151776946362845691239654266788490973265881748036599524719284864708202816043493277676927687851540528379398692482320397962987031026266182931911558889808352617308495225980086814382895807371073528036248341320876780663109508516572224812525873580028612565225965920571289338810317461229878146540246064742168098424041585226921145807887262817933761204208962339735836878433436912468073999935569279152975684542037781370657980911589855804172806493400604975759103716066365176235227807460875686860426474470176176954923822601129912464689259431182228178752968843734596924718518955798551379896272899751007180083757798589293334557913311795825090623124394240726322665818659123314831260157803716645234120543468954113140640608636913542642264780405340729293000658626691511562534395934294026378402578324314050611053377118803753850713876047596201142136184467027000779010312815366282754908974398804482739901963651651887248867886808623744291823454820540331217358620828302345183463262063847967506058130365748205187329741455898147348161760985673927807581705810095019797592508630378993564530951746759640470551303708343642035106683402981012903818539437296719913958513223761504324334851108505098395025665140519561823335630474429803983654835372378650659259114395999308047198000163713773312510470934664595206121487566731287411155483250128605774633367730947383833684022462379580730487787624307839742795333774205407804423673794430839031090925413862185169315761551554129275443972298346742101287059907466946123034630572216247395763742008503279889871975905994160710046855225756799290806112306442776596359503521091293156058041920337828804038295415052707780374992597450413972456711310826640845280969802143019662656844464167320098877634592856473113833163866317957324490482995562488119413435583819274088288948075063754418667814692198914726441868534295172376138876786182165936290509232009996594488626100109412979342581649247835185500834893841223215341006829350795957314709553734525294674520004152294855115636214914705957472126807497722072197191841176252189658153768846628936461844173476378303889063858309625012441985541678294981316649836236800308287419350116623023953531116010923384086849561151071152501529042860155970844549014159664252427691953267524236523864037677223445210140164919573357802488548175813181331631932550085667387125658412095422357355622521596954775938831652707412207283293277418533143931298743494821246425417980429297659124210542393714419151008991864644046943469577360428858387547685742046558982007588272728093631044536355996144171220919289642460586366959167427638749572393453243699826201298344295752132811895554395016631331193984896992689605374231838373861824099951661903210713255639891549104554536190266763873494532434531900605090912909793343975749529317808857065338721341328086320825371834251992752675878334880622799047301138770501036302840938069010077807609688976668028826516097482332500429191645996854787462349151533551178400434186614105304969642630444166784655345543382056565235588360294559379160545845020019480622324168690912275248276479051621812839427753856985954929512970963716878977400244253798513815099132449796333476941962356510322933114652690443709541901673031588904993367943176711038801401075248332938059586163684762776310281529873156817470885875975028689592171114914679637291402209338428976100496444599947392510337581143884673631855160594051816750529311436953164933523638528934962052759830479683860630431217947292217600345387555661555754838582052116987500825302103106527812188672919267498490973594857117023534440822109874534751055346064968348782927755165617278054801550043410717861506507762118238679747852766866475081372484566539275234652517689822833602672691744354182235187555858916948285276941358343836319548521894178236555560271453870772324037991762511446242386790028222024064820563797327892173463487572810595718767607357065760520843783401423748757543061165395948955853409129692774184020409608323346645850980271840750942549085888069791446207980009402193141895247354251092513493563772668242705450805805651366460967157757575354253700962276891592445643213070226037950168337466197378327805988034802261617783890035073986500442581160282634009597095401023389892557407704748626184592909918204202697818785317452070050078296863173185791833922417858028084734904488257243282529627793867367870722221614545372396249873094554761750935876663208980196787570650937155604535407161393054425966769604983889591555968645646864970302306687135657574707055447675351492487825511159191322285029610023731279867374735382119100038325425253653484751102143088998282792490088893287588284198188387124868729397253856467339027438392389717393291713123230433358985484086697677591657260222044654554528303818077406107248165018184447147792666413311237723341438555425260829915312856914837380133089808963486355626030922756224268988924530633359368256579005476132515239998083723300487182181205784613314191217695933207594032088111976650609191819771524951307271508046710654290242521122356395475696552439959731312053233368500000650252226855241845103120442158532329254973138241945264589608495916767422072043375845339729945200891442395250551199471491699003668419585998814510716336524316626852070243435881019268278998784482543435638617828808298205944863428426932730126442626375142131602287025670326300066311738505195128477687653569699527380407179507779471544258647520975209774074566617172670377860825741666132434262356601351027340038346314885560741256117986571047318624032748858338508055910045932723461348330104447900177369141345743865652932567833793338828379269238201371898599882422807097569185351826507369171035209759942088859772124242032050650002506985988292003884157773184713707993132294439822507441643994515573089859825238640586141662756042896350066615204772237146788156779125685941653349023738276734763782769635069643097038889812381619297327292860281092746614277714758574276339055990816716915607723037263241313828292109534225700054257610268652076663186340822210059783566042696655304999561842923510828231531876902528103079316667958614927523283889826642473839214913626752734649405964081927458525757525599811997590757210052724565012535894736074594474071546585304268460031468784937957447125060040613548731570537135307567670773091667331090429535768094313204194945228558589071231394642849662736336732449240106682706230971204944766828459377950246504378581486963658677964303679164442804051179728634833147398842455879111897260356943131893486082467056151939570703746250573503201989399254188468627596941292525625274807098447394284133973346249150734801442593685907208763102341945021082534315567054300662137147563538265922992759185610572468673575398233761690058152522924418074810922139164946401024626647595507164588009265537003897592952763572434677325599818071103188257350770953362569989004651180762650601476078103871799514167896520931312279382559025804123645287464603235614208280444007246020075458358941408758526458538174477817179927927604514761093245465936246894117812618881409331738293338667796130052276078422623699470931709141125932674432483694107175299503806765219663980381852445490485686535491114813223124360128817239607645213253194818999180456611753171989550598215727911327863715748960310513241787820748280542017305691530555672872464735509634562315095921724307382076028144996275311023054310574592634177802925747439634033116196190009703695666871970450946843973991153272489848314669142463846185641077648589281646946002790473497050339163590128884902588681229619451528525488361543443412964635617600638320073864945460206248632902883709386065200348529993834971408599695173180108060118599582859365972282188995554683917916734857873456833023968058943337047946485539858488456474388587388188952214533752112822644421593579427233431810166095776341604878900644503822209262751264514451391442035538926332371696527456810035216949865864289156084992202119956570110900403564418326609284048049395111554007252081483824716750944575878401231699894200319986371846447392787594628120647861770516231235541854958414134683451508041646298660444280861624262498273505769543299808369736614621922731684129425936145321488279819136603097880146045218120111376531553092458990061099040306416801067979436999622585962348863237521375211984609723973283719299530822096807176340246668745118911230620273033349038636183914316433131051212017280606252446928628739534430335535018266228612773469511976140335855989273070968479680324287446617321244385545217204793604582940744679387403423065816584634831362217234915395909563109200573825828880770859562983382390310734458431880239669174464015190553945976031714756568826347657969459312148301946120535739882344905534421149059063868630220557480277171851559139799773330493932978605800246103343704435434784930725894262761886473030596811901217326587905533215789718154448024717190162806687051312122621026078712234921165824118501045662804921894056768823446665463195456385870421949568733853348936185030606197021706738530900936399828076777371091603181084924784506457235822483401407197064893457225305252845073840581525518989640470015255929948753004064209301705394699502500761971012797634636800561111110969826698988281165278798324673933411640626468926016452650338682896257261141700186074302531338242471805258901322027925098385861603955817723267217511764542523571200713010314477846705460054100554239900765615267414017808165205269496593955224525116334033463778115389893429961643734145577019172396915734430095689758864003212296846615891657714688355336169348318698310224314951031806090286511926319705461024064222722870848813264138022796944100248626098857819811344183844165844069812243567619770427912701913994720423844310565339481306661962436229351858221835255002052308506167636957489766871494106659875732001596254906750735976036774283755585667347144212360125907281711848555155657028229165721210261598189719304014478553681742645770831578877047235497537072274953317712992591313543028416843168002112966818132714313052766658001894418619588307849870763712492131866288045986399537528615819120225819879049802828410491478044198649336405450585286264273828957948464677734619609915056742924313988288481571038321846006063760499830555902701113800719711019263508193537850158222058657572142510482568899043180291855597124361647266696819810878279786131793907422724903152859282644303226628099028736904937460480860154315041532490319534414574909649660479079101274139370339895154435705338500689656801020603073683119037937258355359713891947130805001107653308493375807895721895347581790950464498370682012961512120545271008539320172658192434358315769047424120827983770641700276783511136956726857884524955922606913426825184923247125926354627554877557891094328212307236575081610124593937583386653905072368175635873847680280662241651816354708553945166423981444539219199060040658622242733289206966063565526583564555820320615781704043702683458280821483152731866951915950821482312954216081439929697372789347974940186600826694108690573945328992407477278150792542732470683945809941220656526300134044445175775746769438482502906433312561407025966510691723282210781257190869289717655633233660601683288613306610029860327345253446079228036412629649653337701780341528681972831560600624035152736254029051272693171049435665368635064581387441656240514450120509334040645050792595513066145249603260085438254253065626015697033512736081307723371962056795360274670358386714561184953211080958483576964815524261076003924508922429368258011873305037649355026993677608722384629299628080744008432969764181591125654040009367015358398699282475484239035158840339295604449827955332160613411919408083805366209921540602759632784399668053717403180026445785752507430503821684679623730106494221953537291395644377564611516498974568141829251978375171802164150444073329109702757168021103676837644791561188643316165468195204351700759688520307175764996505282419326147738704927249918323612666872271269591425433141427689021895101324278868183909814136294616477363410337707326074443678191954331710361818568427988595364486751874584168690938837627326811658255452518580999026784206520724509180803798598977769528977007141244811576358587826983204430394901280465182570536442545288303421997788012794321989685808490695115340241124807474517006502460741687478359475383292180226430688931600092728704987816568543487383460251383061677626670829012996059834709867560605092471466330541636124799458956497550936080299752989351013661718522173770527521640314321324185797829284192800530403366814142242327051655397541181626337342728044077539321402204476580707575566353762955987575975956341908448538329492680724016947514501540297333311110021421377448289874930039046202943059520785250772673411926232166758093225208122731374445556804996343028758778496500542300648252270203656855039551240426722578118080970560132469713315102951950643388561166258329038941455800867510226307900357726087727282759793027668201879184331263310281929039414294748383175373388050547937326117155740012220188169419219245028371639355284743464364277791264373086192221743938725477088513812562750441168166055657063388124358258900675195561119616829315767548781283022414737185913987528755972928150202142647074751412245314323490913998592638681075546974629397606273663953366183871221356546985430795897106106819016348692529209839163981014455060508343635780085687857964905706933249986223712039296138090145801137239738097820324379029937701443173310913010926111557311390695285024083903397955324896241434756246819509252099853163747231563424226796765312179463337732042875539957177595587858839792173158976503396695418103037959185692044389592783898967494783620869280197901282207899555543007362736940035567156129704941063127878541597586063183211794061479975314738300749963707660040207821601760457475201755791414635457757797950972429435758636702995949488740192948296751090660392474469290634792985627535279661131611532194740743546753907783434077810042938875996960580809474295210902255976315377710401908985412877231676964623648659372448924036804490900599261074428388767653397521983308550561220005950937642544286816479199443604915978728080088180702572574945193117997597108093744176295113763747968182335217906433518874503823242937746534321291635435404569692519521129579726244274430396313757983343555877007022791854468793049965942407492356530139539655136653956543974531740562623752051760470225969679436536560590937858960284168515030449890041215312328198413487437809354127334664407834443688216023578125213398505838292835908687564183566167723343282274234203450222824148777091402373863905241537027810249472199486045815467310158980416306136320819266307616333145397189175313896103181080588951025293373141618396276387999458032975883909383313180109778477159182631183730972883966446105018764820920358322567707270742006938228411368328807688627419905541672542417549035537923848391909295779148534136479860317570270048609880556293907150335342508828434010792705320612014784345968979433347830914903073799536908529900797561965437861138685036894001342507044262043478051475303493326047371308067154442260213902662169299870179611667040781904621822969424396116859901207335814992100731996629124530344815001393964698030598752154695508787559878282593167224812829653800317249328750492148778302064210064413050377891051054161370406434061073509694339701823586959962072607815452667820757614722602214009679505183828578530037284142945393987499341725882167999593846576487823084483751990946586927294891544470823026753745497848841768575404766580287864906057700812310158939027321384194247597847711045218308066303926387037746709360101651486056458829059451579913008834251597995684454719730029857002834696315746758684988348350139486984513046444078426579953618314657194974900053879495252468892130759023743031768677757115502056186670634456017496886134668962388220243646889368171479059704226280243955929658327148278779615888099293178846730623942113910081299109290620013351788111895251672722697237021343899776145890784859246888494573333000855535896085579719879216193519517920760341688496314654487603243175284229281821706769632413933311950812404602412558983643221495853907445421176033771735225019247367872747607985518763246087280494845098817585941298117861553971307462465310993634668954656822720129944804738328199158264426834163071765131295886185740738472966616771717060734971927717743212267681202725553207667784519009904823363719371237595274207652474752802179196218373448191346611512300603460939886500003497252669506666904674650308640738522209710415452257005339522228827258918902905151215605930731873966320173061471059525321659665761573057396358171201629159122510560433045638713574916802401427114459531420104853601512813620126933973892703321424668263890330850115303624049809278844177816382092703412679175118271165623711148365840304951608843881089213524104431486180409667964781442360995809236772883785558641224849607110121337648085716348460100457231858634489133670653837003107277105201816214034967106092613886006577271324525170180863888317765539402489862577914304348860160386813187026448729727316313936665770541528918466166917227722281702161667256148751244547810212973194902456797604470956922280733036219100131085710420475064911446466397646885319373699912537568998131522216915380838121337051046845956951747834751966471071036428465035939489092276924160278444225428653018096501274177021687263394919203054427237125805860287964360922837141439685629228274690991332617508829128011621602072647158084436238372403091772016177246961292043042842540257359879437062068990454985527540587110077490779473545781019974532551968567545834839451594778941572223423979730500194909420804565823796975209018729296385253683617906381290650781923205252875590128621272585003732357371712954854148469205542653838812875523267762192373451751389662940464737116733401244800415565063178037484693267674672863357693575003814947782072803110101901395307273417695739296001263844726602015315941884058188864109790679060008573146871098487814218600588787244010668641540177967592441890632855522161529710082122407569409569942894818721129327000338719835689819019383310727918284638444954899549208375524718415970025628842330599077413907237769376762129203887955720384030255904326031004925537636382641657235646044029880949781905275717234816886274479512176529289163601782162560036303349559484390132304141764895429775680978685575697297828078441381483314950755750305002996213267086773297675211814672507595432675209826421388209501443853220429119059801807578892171607132744343790665530469213656985947416349089237509885239659099554409158425938550526356794754598653502482585234797399694567275365606325364161511981012296970784970713185026492710223469694764681581243945269211360882614776536205391721878998333674810630818189887228793061245203315375161526186561537324781720383845909973461561590261084420767529287500169894506631528676691712068474524260627890337897618148242289426533868829557557402602346417455916935052276180899554783095487966220674703179150103030315183449359404977126333293587060273513353010385032425829020979042109591376390425400890134904281063749312952119765353920189862003953810606638135682701040202287395430010712047594175252935839288593352045117458328509020484301507939490720425393020526738172654355071012257105477213338801578975031893571716560288893260811340135122761805751874122823856523277902836785006005008023424333873685729422384208248836231343735265116749527820948716941616080015643521783599461099777574935370374909772817466173065676944830140914015664829801936076149140054983412143454452525294196424307225804427084960727838251955336416574381897096504885666838919088349099209924514318197864704422858219999475983837584652394174647188111390272916394854590170461609541290382573492403717581601159721740058071608971572572356395405377066910998227040384919522326763779773198585695424843624872607703292193535316399163893818584568578261323829777563193629356703914413565367505406056907806178645224622006514949793829425367267779429559877994907053965220723964309085295905515678923996269071983995511265712545822960917160331326589151672160520381798573701446642872841759546436117571000475315200509541376123405083196838808002930047460503189448863710057311877837544111537429203827703093084771751954553741791482155572280928789518165708181378346686645897892202283881020518586014684556491600111525775293429368649457214100388211175719165996990851974276577469850031191446307894998295288174360529851550338794483124852301092159354586129559243686618330558108593168617003194916117622668990805493430307475462501120662174419416406956201008291744590241597026707582791127153700009880048348611413769276771831552001255452785579286670986177519043725771260541850962585919145254159280549854299945980003993035009324921147829426802390187892345633800852191552448803239621733702143460857851077966041043532422066685215033001035728379886104755418460148856591926727041939958438613538884201559820866528451156721578229373402269698084404807174156126747271907371420512568499674750152473344986941982573529253071281486158155067164577127768483834565026934965128142285767416066799632806450815653684623786104809751726685909203827158240611032766826602366471177995676913485836660024617811811048057806499903017418839255801902574094622831823397828829697918733159481943260743625750468177857706374775601783068333451070499713125166215549057333718835266972155285742598080835008169274693485576131047206722469414086446690603801758214398894487563674431063269493265985408454874807673565305369348720902017175597810456755171524953770315840450228619070341127980964569641507136575400496856781421878787290545799045506526350080717037165010250307463951782426688596693272437999461703843192563091865763034129596271898793127388741165765699627759045179517461148355661278485433919691834640892194576702384020811574129359798488145882221730961859074853713721614192823642519132862123791370510459853194245066182377006786545842593837866472252141043875498471115436288206971369564022890517109394742675875717147371931204968691005065132356116651136212658725300251179665181022477599641756999221907587266631848455370867349532449394320379179067846854652757214090240030176886457167564906765981807864852544471159554181065713147704543197934341234799465591463002638198387948399145794317481986830898539222493402676912190941316274834613682080916200742521584783234217836553014435066153311904919485710638073874578954035339518722557789955872451250921494905636084252541223927428470229566548254047348009934006852447458128356247529478027562727990950338407513545855774713575287858894714605613324095395505507605361973780169101552479810571892157702434331423406818528833525421728813415507499716553211330003177279148292075345382991393689550762340908844056394956754163405481470847281101707305238792809292328062356981287419316628976483942694446877861399388529106037914708989682603313864846957196662419510362031212518675818383259403641538082427664907492026120133983839816068881351710243423146366147687118692845514289398777416850605366723691398985514726073587150086509519477358999412099775773794987022154802519368965046441545841385669784840595039715624559535814972725734543886485458404866737285678203288515990559941699275647736525436533169042906697604619612969680779879489261844980926074511183865321935966658701565151672140326142245070083704976359001479579877659812289127784435970959606820473391734068843070838431508282799941483139941060116868616731715899458947286359615714090689517492164860959409980746237068549857526434926473938198592968669353880903214296608246560013775252773014761444692556985177887518333049014361142182045780163515457642139596278329306545956612833090363509615267184941564931358322956480567148382280471059518144690876652759831175573399175083903784502605400736503022771525101974933350476590528289622475714287947722813984163579089163498358238967063850610470843926539647965113121477824329588964795597427028313002296990366007422599168388214470562479942917814851055214969596066303122318974425294521981843583284965791246435458942356897553809892698340245837482424724718035537436330969892940017797185418870266670410820097796052969888366670465441455147073713087181173454954365382706592610367284776439780623462648151787086277533689106616902766912667232575364832096252938765287035227827762910049125974005151665656099794858058799248960551868381429469717832724508304034651928115143746541276021346153359713517899363059905644963080719277273781054633776635506022171084989559939001547513192212405734406777415724543765847559931032015983995418771169739837739495493838901275892877394287788057593801180145215565166916194292006702244692314333207683104005535737348424092289960765779668474073465741945447360082772927872868678885559812748249086298112324712082470663265932115886788110451195699824518949890531567612636651028151521900650300504739210615709925348661367377684727922067130169230993585666377695727324972003966780526093579278425769045467118176369827346603422599046686501070986668103712252747093730534719530665562960173382752854210181366284994566189109855207123891489454267256762574454313054249288631324930693011140079244256388300904374143899984533730529200323355004258966380499583287106283229158166556855019537879693018158145116738433227397846341973562516914291646209644714127046717275377451504170897978922399424826308247595956144770149369548681697859269003501931786435299327129893157568879990780002265892901395707367954056301308749104927695475998762199527664146507621365980318099333185980313171442471774082034300885450439418505703487555322001883423067019425426251873726260873788318690965595786686939124979815663630337915582059918533796181266529578046756483278957436565329270086700869721849884543608924762951532548236749171535492601578125121714214451562190551171366963168625300841478843240353482113615985736844060451395216816168989011727001375840412470030873218031916760750798578296722315085043803273284189022974500615523278141237844441004094810575033256557774308628811830194910097499028241112581896573206840120187262160312722716728471196320131246601578618671362089328665623667205362710746641166770520855204113241835272183479970384332679743573762605118872085823535491416718894272939745693272992699620604631435358495638593313207119795667845446446337702088443976896818983101227839670160290939227221308386373479144927654264957120952280849746403188975520076656773465388292365412085753106036947353834105759416846466833876024052473305897605309613660908206932983454584951216841103501925215330174596044886770777906463075070411072833531870748989561788148654986385952671802179242348506369560259007759479836414666138381038721186592762567398948006551617875726496891214519529556459525754645301572555295099996386429663287219041931218908493828732916933501989381605599210103408114525305039164687032490516832045000702875318818139210370338169880393214349323637596075746145016832994512419889439339490967804664741460322579971984485763373600950932732780666859861350316560281454845354773161763816102600472003928068782616940124311391458441507126772388463817485956665491212025019423207773750994606135128656542850271007524218524262093574246302470575853425870056638681000163737277720915007113905647757896928955106572478021217088357197039380498995346871192317856416714835655374867418533159716414100761584774047720114906943578907581672810843591036448390029437755026167813344611885739623950047107848504950898735210437393552718692975083121675724985188902843039930021590479182123408245709631424550219874766855020515061397855650366163830185979721728460315771118717036542634139787049159653891111558957730863162562903318825052571956780774354784576153887436599105122385404556847201716902140784732774023950885324720599237977045884363634873200452550105429310900756545631032661314666598855884749732946377660502892096453896218664159470973547786375597736714776773763255629548422026690478784420323302995258440858174600113555056678683134632728537466086607522439855826644114241027076574574364829847181400298654000132019313396465098326046977314905609313108086525545580929525165230532704375879298687099491077369523289633285153221366765047125298797443657628099253709259091530017716563263494522048170283764382697378710720905772277184499922748591495371772114397107506804376776673048496155536674766149156710851887081255885516572234441378817530338589508714577181321722973923222688736963045455908015187990123703501210102431837470959210606178298364445806894776763152139106051974512632335568563436269608850326583325133777518950605261967325538521010920302238497486027704026541549303132515868205999829873596233845897209130407396437746770782927170768732323186004619086206921476373157031242948822361036700766777708805460966817283738079417942991145588954804351955260635356522946385969788715631843884982432065510351245600676383992884031849307367565609284636234527902320876272097451801621990123088663007672388121151309630589679246148967209927100913843446130869207708170339401235782951788012958332722024158261718542173814021570081491995634753789069436380325155860781188817133808489511668102586359027773592151791701382283001934091800645329345606714397263560688302462968376784852009142717933527366755227603594288196023572330290148815005832357349010013073996625160328764023420921525529079216325442703639064526823740698188477683080460131916877605663400326990261802551617825909105472177701049298105965131140213868301957076277761744540670564058920431013557568972878333489332645301454982516950391062595463749209105385846870507518393974145712399446208995830581586180176604884316316016719047521207320730114954231486126031051787272952705831238691689780796418456369409319815625816560878807121616176239512095055296239724049373509269408174442442327624839282032090756984377410861293233191581911943173022287101325655342282182377599935919170350718977716550823204943173118036167014684146747378533081052772490937388723252802268488096314159869300398300732693380224507862638762524485010445444120345106637484118283617121067582371455578333425891655914637932103252758628151185931261080631476162554525336982290329241841165259408223911751553224807079363759503247642892557317113701414792652728549368020019548902863517114387710147021101796854584695906510338045699793075330108207458700963792064680216895618192832130869491726799292369405190179041270686921498255243929972513474695687328312057872526757358332631528156430707212346491025391118061862720061857290872153482346788226460014996774877464998354793349204077110536591575885448968475596830699203583481769014895124588658043228628416025118367542130193989332466717697253494383727532797862320499524046778983209192472931885545229499097886968025107895429583763236531636951545869118031413492486738263881222938529144579456201864666479343706998277681706588759001203054399286951196597489676543813821660709448150012174551131889410544058946861245802883647029224692594211390762911495222024656338293718463780351405997141385259809246776939060693798086735609974480666603684472461988601640687988918173453878534892495854195157334957758928756586236330813401528793766800727451246243106399944801382337012978816993027266864940917555397277172545011184223587943908593455202105060026639580860644183646918136894423760919315530860962032130606350281375171695999971225398796954839752732581848465795465237984193447302988053968465609146729918200863348913318961468129873108559804043017757878917765247706129120820488488787916311117908921926713031303252307960619949481937990672540822473846277395987243951038164055989535227471251751756628083613936527228849815293622139387274822122413711689895494903551714626153704720686324710965146529037757988148818311589714708694209596485793681046480220762427127530242120750121224775857670219397986745336132918494049736999326899326494513056983188696076159583636102535398030798137823271601732544992390364883270076875992505984173060388768738671341733679590187149987040274555438215387083150583645187507996069703741697704136252294105193901311346522926561824050945685187578907755520792514500922719781375490054726155043355460924817235338262975156141240795375475311046223738464028473956124154793164913295154509363109142038298238842262366793801146012309251969139658764731046077159062334608873086316918263692964295453950524576335736863330805150698716700632066506911845310645932336012893366551970329858485854491849709423174061201892682037538266831501404796096361324437654220479801963312598730254847886157609310043873415368663584869699073047718679063019056107333897525915725994367573472418959036194077648873967344718613259500745913610818201108022618196068357108116624454308580824015398892067288276220390021871654152398951936127539638073546602351596059618292779414636352990388337640276880018093778634064837229597357534339699561547931506382040154779695963734132333014059842063759678500077404252153870463324881550212407631615276695124131005737461580314302958342991765509089240186393019569691519652220307719419959379533466910455206853761173445067700768207944434908862331099004132464750248695262430608125672551982248941302616841942872290876196961477995344893907252629748022204491501265503465035071628071837481262783933400566343805016049039541786939447898214802704707825229837474723278401817334566703526332516164603773921482777668205219807773849293975848683553924843004407605077856447525718361249018320388447932745010788620928162333370183344169364993049023887386800946903373987049578684397551745274915942919495136846612829064880876459001043654651577096115802523180969562620959642457354860014940792598070985416202141678829018695840311145555385569400592163944870433308911543764636508002074249474829876355810585059482690669229439645505059438607140824644596850521284244396211244217939656351207391882550001100803491113017014723693150546403129745500351441602125755052894317517003821002819930531956262408967957501737662669376682579962211107260998934312169841971173954866049226455056607149923811671659759120589331357306365604616599515191379370543767895709350265830038376577385694435927829724269985275800125425459259709312724429845236258902694486243325840015833004959175829442417622841229797075144852726996640262550758416154451243680438804032574349501732308220227469761450657386147213945907521505143382564284884798087187424001492167289090620543215648661968938692096897950922901479741970065611271797375637687730058562299402088964981308396270660967950687706678232362404272468726203632071842637976967900792477677172668128264625309468696385405966960668872527491673105291901024731725553495071745723902609625584174162421862791976030218335233815612942090256152898420613147854574332065188046250008921179729047522113476623077656779078975643263895769274886736828054148136932528033461025886175788210398493791963930145158003572372043502783430255929607134202851891264315931899231973081793982088797104369492767190372205517459984821115416372433128851940435454648869412009786790743901209413596286598008704261240286042133211579394454588072265398077610543663417889374353062557385644434784280470245231580419499977507033906057000998040719182046918648178853666279367225661742866688403878991444350767880419492540051178890912875328485231813205869153516854371324027688043277700210912284561463566775635626780838025486502698763335553909425742696664680836255281760046598795676242768762325689930021105137978274871628744095338606219094404044567275441729262712000224259545426364013622879509232472347988232179005303545099760664587513082862136607805023008074647818414805625954236150377136763279999208092143875501824873225943480969995926543604691698268860951025173988487140801007946798634509283679155240641621971730520596261362732572250180666411217040954682644426635201472168204656109759474855501330185846999943893214247446780446302033443406539844007130319265525883072325390810797438753704612047485813116471780074604743665349673014372207834811349404643753166373621375979551427332524378553685265747151295431607840388696139270969110697570925810380430885399683595634131324111438545562884533766400753667998960033218743641099338632953870982869268919016131934457739121388216622463970494881425875493467148689819963058335592244216223599722267227951109077032402562253866801353854623846455994733577406249247862468144653871474010844608889696852457520753475839722057046490364504567563596078328593555845896216445049215007468380852838849870608174594590060507670326345084370847807631457734110693952092449995811217366615767721778420881288078941335182011539449212144133936778965808678667404056744390716517825030248503139843764169260734997969176825569786171934638557891897068513744543819686996040766337768594660375000695247680389034070676202396369437692205411478681109883842773110199049397155516247043235034685595974228247517743051688641138850505716917602482342886003530162633033555935267762015049107344384512025582323727819806858807499437364487353555251440520694828636105348823176482671196361137072559400428043180174777786609532571855785104089421563698792372496224497218410995964187928089056289861655288359935477556437525275374958766144248600648199254499416523123975103568539312865301359064928183352861198004170831507557712846984702510760335680882581498642582540214800948497611924581076397798607837444188337677613486998325813786770298300386873703568298032699546092817811355597371251695806391099652032397079018476540952914323393590611636497065601758382695143586014199002126404099324102899119768386727679792548696034626192852711524868316326139216470357809233852482791798458577532001038180043887127988743206773579783360157257986854315723169693320685428955474656526144713440235989442276474074706171842613419997475407348572988356879692981583131498751160461296742395130345996965683067731679876181057683113555510190124139690460342835426457661705274289645089676099209414823412727639386555696334810997415730700250107152246243293596744556738757972137995160225519051089785864525657139181821472391407369790073117207133310078335418176689451195733419718881649255781216108522890991901854457564772883334086378042160621648487355883287680982592287261585580553446813384028190261790672728382745821858813735999032490766845665760718133206201488985797289579122033311148710220414987663515597199960610975951005400768666779102813989723640247956744500612829603203305487404882655043131783547142981457117290113551760243060036739114766790873742094027903041816930464647250566353368582283587823137238446928832904104105914970079466393241169164610198333696902865683718745181362033323262213417097138872529715071899541878158427298326696197880679609800068939304150100524353993081347205310330590028988761987609274618226371069141650807549455532018378569804562015714994336451093521176845368719547072573510736583756136549489282546173994392680294281026518144542457954631416179409165147990100931441337653814932737482051864537541251296410901764598737341681620316057454737146561272026812540130743162918656344298185592930536860358928069880102419144626337394673881415389462201458444955943025279035453280205477789933351661620840444641252590487964314649584984334527491582892739536400078599633013051950333148049441473933584323778125015126996384344860235931767297437174679569136527871691013145060258814542131485618022805363423500497225003837840942371407641238460909249007831247109010007800938035640009430186726213566453193545386463290526024200459294108736044878276058786142145050363014532174911974112212604244612063410747203051400178592783206641724150894042338686766650224363667599050826480600193152050395157744049461988418525742713881883268251349683283288098144432529204859052501659906427633061157088903545621341767187476785474713788811234126548826042384095452191689610464333279818839202088149215521894365121495604080746702031895467067834425294135338792921169733449612582726209870219566241856276082339708776840294700807156932178355629729251913759540009742921926445744484476282420781444011963047438150821911442014072028570258908650352710982461831721554712119085967388518365934460215628266454559839168247181250681193113958759413655747956565992562307530093707028445372523136624941529323034654570996733550072269388361687984095462457590542485590142131649711117998380843338650963166051127640381105907182788916512624740635661681053625748499061496360656176877660892248412470377559138005876349461888995105440540299947554700307357581610581272681654609337963609538333235248974722039154535769389164305493340150079138453935952555519881215528248285593444134108708838774239595739005198730288048539109969183552487909379868199535956264713849636944345077197070149052125471480336754999541827576614567408283515271370980086600330859767472642622205239407571069275300669769180771321753681849107999974515797142455762660567974655154551834728477191455478655597409158486519524982839903500386868396824700461623588717170610518099103469671935757223011881813305393937365658937546513209359329171054230526051925289842953137751305570183703416582311861664009010477894772920260749109392262281848484453459429561815307397515696081966796791769836402337102236218123115683816190492793970939543626898158868018995825289718656007650867445847159305136714831240093896629495969612957356170625936600638235787098305453575685585528677086501758109888374599280411580551640203645059344960036287316274534590007128243717507747141103347860213954624647937217551970058064672818601960308656592202420355759843890846862399652218535459768630344616508880021006007122205159000150387054891487993287764984515346777644814388163158314901093919145209240031632584817709298603689622607402566717144141096121537230279379221680721873878244234221552311452299171624258270371407924520529723923027641768998035763303045770290533015531997615515584323196292501603858993980038998292323826114505324334767644449991647699330071630480140764069409333753647498383172571063101466750694598044800463712955758851832166984651230414019764426794530513505197425741282797905254781728426547433729048974365214729569098637223132966100269592516412921373501451151119355510706296161190541384596244758866202872288641916319300040501643080859647166500347297609125025037022050039394833077772087935657243828458584308759245515975329305042821138575511848396081910536677134184799755757555329564626525026023416267481047012210585244221884575437537764890253772241189229467662179218954888259816404214292500994023306057559730293794015387512826655149270071006233791655828428875381506874279265853604006651292134728734015554588856202022298979755864769782310927486664182919800742266043246718815964561109383236173904662252307223663801868495972361253196903523516623906575936910724061040545171587528448739440561592120236142155706264774336005241386509143724390612696601221027950221924515396281950977812838920315950949292431154337298658802316784554662188860909210331088331272953089235274512573579265104658794799615958985436453959678592196827520123792723263848944727048514203700894649225664437813727253197415638174653610253494649460676136988222276268250357912201149320757538552408060194120863821292988989382019233106792448672752595109162073509438694702655970525511877403656158429308741428106394125236153906543517783454450641733727624045716938460322378473746576413819598685653508346122586269855189895295838585249525542633106314945148892697538108238639843825577228849195037751438258219928107729818113432162071302275303693541391092594414289454352401659228621662468590762642213900933023821628652302665564274767654065602829113282744911121536216606578709577812292358713839216085969389668534775106309176406749925171308373112921135282089285405786887025603438333777547446640350774652459925259135756114313505807237697525131137259610031163359064495195014396919962768447399615991246515494931726659488948140201985246630330336009476785528542189376976066327880877256082836812961958556671007945978978016209107636782395782755824017273352918315108733768291246802169196894946356895513277679781046853045137029478895977663223240432481115315405513123166483740920260618480725758375237094810430895833100430236959879009596371648248374187163769563001742344587852624642645727537211188554039048140033611951952401258805130543708563678651677631338449491093339243908921885116622882261355992976826647146811445102093878559002888422968772957060357009131017361122728800027759410967222149264988816572625015595179768540930372624648398614939587851730694238713437934627221518541198618418380973694838138037872451487498349698532499857742791229527571053752877781960735018749974594897775591645412383866100637542335835248757845973853616834836848502232566810777812324183838093100812876845136657672782120811630441107473378787124113527570087564822131371900309711435276906407447673117703503051545009865944946216239426116859244011535780320820594780098098032000301198776878930640321982939065827660247353095005023042348571904004365948486568294466174008915150281785814899336338243184599838811086971979387472911470659445021515851093110053858430274202711045761376386582551833291674458536005000575113245418833740921295701332507549946204170669053133301149133401121128914611471395801846688691824818636832567839747752569203593966974505632551109650509211894372240976461705784777166767907310765586291362743259624926405764613968059139607871429478381447721638520001695159776325395046536335715246405800967744844057318328981186006684971500213442513690523975778151736193226021742278671204487066637560321808418373969828580325731842252463329511481940651354477678747280448899350970180776486444721053820193082611927703428260619025874595667883428628383636942042316423403560722834407808614305821658626200112072101446875005578482239789047548939470165036482716403591924379786386572096440124706307486370082062150814783924329259805980372628137989272635224397948053153664066512081743790973966052935093165191873440448018340894723908368818680192442418732161389330782454045985867653841432608475021213384695732968495588731268517391173611294684615365034062658013534812084428472341722363738067090678826082545327635388604179143676644386060865643930546074592585075355300652023291778055552621015913209683771462479136981910434598067343459330286880683034233047773847063339814234007224387549804210026893641931711950278815627494105530293308428745240421102945682817674829141850694090294437106010633441130093349506492044724550079774643677555042872080564960643781501877715125055334831155857568412639961100740728182552072036152703790643825143351926193576728506988980040107976366680263695097450329398476888853365157006364294226417263352907903699011899220710821783387847097923951442897968423461659294525939347126716859050650721320983528626753130419972432874604014073359976128989464104613933472073729981678893007926611213001792035254532221789602912996421398836054654649896613378322032254928770728001526176456134593578997557018366633230606707152428753158650404505577421704888549721833778146137767084068936958540631295610721432124845533372908123041057603685013342537267074261038669116481053203514267317201733753113369405097748608073555875272839747881856250559313008966477047866272391591122798898409829999471280239158415352015744540397025170850217953751344944511612602809797957962081126972759403602015809615382884941994509649665601929052149477707672596606682079007945517127873110789510873932974169235409517187535433745975035080962806515340427417716680486163182545272719019516999714941554488977798236302344940538185391248670226581785631500435472779142547321532943782893960864288485087306701305077830487749986325779151154685678399596894074741351655426555340594131197843577655101220486319364796605973266758702281899943144016258258310662028898214780617263244648901979960068501503886748632921315793419165018430112454140097644638012180365291531541782595421842388358919206276565004398596996026395626058340009941459090067459199483607272068283945620404237112485665392759112324837770370912868017196630323687476449076662358244800991857221664000502870658332560116577364313180094331535198406160682076432767527411754107392353738813271647029796909895681442484789946113493908742266728117836231533256559623336151587360819614729921865640222262492004154635062866631678915473091168441173502807058884313187597484061870501797470925912510459113890581408866161267228131356456784487404147598139884757772574105681738144310419590177438602780373953959279462851726779008364366573716571029998519057230897010260686269152682879940248639507177009810972707518127595607130425476777675754860186188439931057948578426918091086040114327993115034150470800007613879494283073912821297836077448251220795632906888781670522512450639926572471559999491562590205758776962945769831105834269155342335115386349688039625245774244919825874174395752403565567119808720584128153691404248103981381858269990493213541945202776997690592063975247644017285254018536688204976249955421074335680886794683026197839195756980472719445467290808292158292368447668583717136443816510028732789177827106174384679232079286296970299914190072035930378972061722752024428434685922853753412278518591567800323267093652000328148155445263202542491979423093955204001593519049569475314530813488577002915332947344176254868370660991163580303157838486504915310886200946859478096037587866029927730054399985621684921114414903318829159157407660819217726616863665927017558038884322594251006181589099161936089186141423883133170116378124413759717067426309871376894711467237612831877653538781671733853253559601244046565405105035033008158468188380886622728903151602014468137836823577772839719886943523552765123768059154348236989887629889353880605584933979156533790923611138485418630965475211784736839928324517842556291590834962788949320911312559601805659334079473372597273509614459685783957294978883569515949140594281065843789656108488030778019454342183302859928062722486549304758199868808753848676922632950226580138140592925551238224261795264632806048041927280530873528104780433747854228834210791202511466243430624222398591010356265527214654951509207387398349533450929257286240655056337556020799135617648708350776659430725906051849482088483690727527037546910180395316376036215401492261249830610944818538312065960316313882941665442046572710465874685522322103714753979240023584749406726433904065234805877197040924462479358666132892072740843601923370354629250909042061391587090037784688916543015412046703047597019802659843241710138577321077673228866832158187453819010229273429251329048444457176897123756620390363159818602951782579244278152804201866672010547941137397441324985691622655174523851531593931825998815780672468418834350651996184943815651744050507758888648419133896479704703351054580475485273887522601155165890551105557638346919092933104226452389813817859250731017511297957507282836678255185598744223570749460641558540702437321793112101141989874855140097749448442264403986982679345500791157572582362697965710428620462594258385636581628263300240209521950816565658334035863772058920581567758944488213558418875233577699317662517432421876174858352299977599751096515853086369705618430947638992157046041523476813023461768033241228106446587300339929373681221179883274752390427167913308267635650321038883247647055344025188685798877076197024177325875024976070909848174906926174686790800646131398007192678799021148374831901456412642509314485957784095495832911123550948967026795794444144171053601289785729835370616694871985516271414354252836273794936407461004126450023931237684560301553774289117812828174781920721083166235493131432316485923435383296565785421530548889050943009890195254005978990656877233129050971638564888135245389532864381888589638923869210557802070397525691566478146453817546377668923355817474238235993471351072438602652750452084416816244407100860266487391302970651011792773211496094277894490796732284256687079457158200008891397408624498508207680251176492853405715725972562880851213548846232328891894082484807580679142126696653430535316011814269804721228005977176371539986721051770414955501865674377678682113596521738020880239148335396911403244350567205210936876648704137035224735857447727737976902075854521058199543040794286456406401537625386165804638366965217791671462856214139924192992420980069426660233086044580592266672823774784930999829003481495260515894675222238099998880237314634462356492967999375723803985157596021150969894492034905822610142762613764684438515078927135560786849314458226265651895861886818184759261940753819900828916052908042246136304749509125394718706602253588250551589906934413769076646770876897692174083990733637756084716136078861858439008204789414778820614210084081030368055824746085933470100785668122037133630101943911016149122289793955867623941303898795371985486425068155605619963276548036024355878769657290772173577272437247243372286161945501980763151230351987468986544781779058386898968286200860204743220765631446303685771638013823381207509568760577907228069903660982061161627495142270879654158698074807089254953982126696486884787228701108085765635475717231371040962867898288461295530140382925484079030075448844471288365729103321398985646165674345132283324312926516011860320591184299532983441508299431934537091687592122288197736013222989466093234942052589647687600880333760756386238679878357343780102328914520220262412270692301540472830165714055524023153705633430937679311520904758536867566551710521791603283804785252364851989848722165494471187109766207432654772713681635066578120832260948605777857153575457859413345300876126889165972120436606877535951295167911981591857238324949095631671366016805300671016806488330829133202932495653384633581384381483398870463788969944486675086508474315508321946904484015077284353906363530409900754524086114621510226038154498904745553514265142275726663309490970475693489842633361449283586673672621990933033302538547176744754899143787419601270449696641483598282473535348101097901717995917390967002742108907946783295156144134098778220253688798814093093439469335559328453899318003467210203303347819909092066969711064765183731413242358171980454129624925991340304215312059514310088560239652798665871219379751538328443179704360066603301510760965386095515877870408688574672095264868236316826076694166770834491982092233353510582013455683893912232426187449923641572460685783567792950846525284530500811492523918300510870109607062608557295673689339980367151444853242330401449795264561309509279833526612698991291092616492994845651673777701515698629354453918797637859846925486171067390782709811175363679984210615574197388836614294993335433719177093559615549980535896908970911930949552482147286170423580579377799181409838997935485117824169111000150375962772084011162857915915372938002864305633576270450586006656606342466795254065346637909544139047257846662410878440954968266786910526883657441795004060189864570465336135168890881851383948008676467079160064275534505125502852406239030430752959635315960590122618192799605107939139752561674924716997834033577013887617004079455415786176298522514173475692139072688051765055402543204830343219519042886391424309043788167155213840145224978023916536417772821990197265657009345673256366643500536253851243839909592374617244920818664080851720357935323587400396852915401257212622962391751144725915809032776042538420996521473643451210396150372246247313889340443592004776553055892009469731957612796579599891604493841003326579746733406951751483647139285755066735644778452700834850230484491536269021365240186708019702608038889029492205402752966875232174171689963360444686646181823661798195609462172288270865150652409659774378060121315858108768568078068425754796655359872238034192148046369521281446003480021334203148044040983983915593214470194543849351500149710245291457466785466437776572484932026307220760402591296348934686255777363318610927490127541897436800353495070714974221132474946140597569880517265016569586381692040644092752890851078200969063573461895885295039743818202638922441972720275630489290573491290822215831580503641885058340754795195505402893037274000630546280103738709115841125033505330109994448690099486953752046652492703441853696507125220268981793306120246878953318357173410137465721880776559128017363444541870803677133684497492158399723668021488524432116988563088565607072769021900079788531165822525953098475507009421096456291034248285691677104561983242257222474479066048269125758682112585035985215027676529280111566151193308595967772335112890334129379548981074781985828049095498874534923245177273873337812300038405297071987590260283993683290284373512055498875124096107340704849919959333098904650268004672920751033697562259368683347431638403402329513778592187455667408136385317126987690260362982689265491816762065083233360232520460224130511470512793922926833934131042181942403520647141441983009084010347328762342632168452975183898479806040934709104361502944141082586172270019182470879991897659639721852010848280118121796185361172391431320704258716071614335130312747637209235886967794624393431593853101112002282442262875078922070526794273714494581005458931436844883748224070208018754829786053741350735814771225746138374621311839448523183111510372808561765275249982382049284454786448471791835622649807298360608485124952076538992278739219148745949393938881298824314153154519894881493354322769277495112716101190534863039235236463901440548652128516343372152022678155977441530027811985120364702240528253076012000159849773086945287731957125629001720913341313985437070785593850930321172159301932602981704189240606880645798547173078629243416095431161561080249506952509977647776139507172595045350898178768913533644637492538232747669679173958491456560011849199639650692232789402143534725386599287829239361058302863164152772148903631579552896450129238486696606001114299574887545049278037644457673738169730144278237306936032553904651405528207097921774040971984471961129978038013118621307213548663331543364474792298650458168623225051914623865649895866117331912725472277333579687402150364399999419122783516560848437863183713625830658205622851585107205494286524377822802194593495722733903079821007231487319355844569870883840428861772178996329618948131977178651784603611667997938028845393460397973159730428914593451090289625882254422358381933217020362411362904879576946997850000048940075129585053584998342952729880277168626527183324130567019422745915427137082526912610548423698484821924950871888100119697476828978851656095453422186291307482412018773976528283490027912883903958542861272255214602726048411076417888406212742297673824329161903250980745388990139586930311546599486246111595344038282602821585556092112027352071148192591597300711395426617000328458960434985367336804498366226392559356236781985373756833568313353823616493416526324658364187590409297370702907157123583520552696931295526544187703022364995673117722654107311477917078200923119487808721125293871205304423214514152011942072556934154500581285713717014264187489596459629060050838089631291006275292738908504035826713483279958743200155324439578712922151351443273521336149545906065990461190445087885383265467254294466178760802013173291733947258817977947147313640504974912874652039195667995093472065547057864446307259683176385938063702929173925262238021367729868028334950749163762365931265976475785872342420630517201195101715016055953135923680975983973919063366431711969942692945740873371393335619313277961017571189647234606347377462093155422497050945361945379244326829143597809403009315801788607984749569030618964812920408896036281144093310289735104527653224919843757972265443044100074176989328075959068141718586688059243844228941687250564047643501776139039838969164613726840253808257184205887181309815631966944058447233059067844754756987582314234180435552359566485266311800936636822038271787851994585334761078723008165013705515836362741170547602012050086939010001898037418163138389789128386713573451119110195540457137664501632866247975774623889689611703286092017841930307838692239045551607502004674150101312548185431602382927405158492747658441345370976005700139792794267340272959334119166479409567402559530815132653906367943082361798787772520967851758055139046331398138508324454472995020190723862831755288886347861219009943607112387410865716915054911359620359534932843577269193304393967930934340874979473542720708021612708810588190836834577469664247801123432996282043406726296507632688656296454726210848452391252643414931977039493270456913549225872045935942975292985259065263502642914418443716369322764911483400016786050791117170245448178381794805877952248294249221726058147254966568333612030203156235510801115355665562446331134741452213785868185140584932533163728976233375624782882659845416040608261071331904252746671618026551945002689156971371847757469928940390597726921003306566273179817140311554998067072955400003481152263734180422843286562849401191338560773445237148183099327932854286907857604791704993637306714060966666715675972336719779954097049575426441070974199793345850459157229457538694454539453736492114474296272693564631340291465712010606164857429747265035003756718675915411525722612505603440978167004450429300131303552170558254813334450692722097535031295098671159276387312625584714067563930394389896848178340461422371204888965816028351085844220614791420762112689461796155713504501354014449458087480531708034249737138470554472022016286857099696710780302859429691023129853579410266153178240597983194810348468119063632413396543090222328813680276075977338265458349184031967298322920235534099775484746279534401264691058678285728098728361796529279709378710874488965169485453541987874077717574308417795688261635543618723563253912939790060405228414886477733078244028313963603242707116969840316917478605120405997184806128754919792426616469694446558433945200923741524300213453505365912220507068997148252957822069671543413196166240869405338078968910066930660624184045536588312113052661681306234305122057989954771102368009525524540988387576587456049070746883927870742228931360973860790766735634962676328468835116098173267658881151071309277435885033406832703921367415710152243883475978413880635082213966249319151213690589002379084602694309137467239421572048348247122836056127806886647885241499684275408350228211481681568783965180612263687651264768550138171087029203735914700025518635766572481910153621232460565752536913803013998009539654500855581204334207990596098787431953551227272290771591680856903591371171486227296475473992685135732285284135514555709888143827676929748187837782139953265081745859441863076957418489215893127967642062906723360455059188587741876567308443947449874396439275230669017000976191088414300752111841573364402897311792029787025999453302588155173895920548492484695350603786794385087512881872409630741846090621239146621783009638669375120139971448426239981261308020607313338654736211866665149363135198802327337989964047790188306054722835735137124435647906377189805752989642367006186873212940405049180116017333978629459350336634125065555035097689652004055641515330331620323975052243384024495392861284616745491990574032845894884576527836894978006259607868854344809854680916424779834848499218789408579615920727771360702088793557642894414770927137800137362275019020470852912955287419180628477945522656272290570977385596035922114312906783918426428772215057626213083229655863255726547556326960179465145083128449978156916833831683322443896687050659784673813848669093929042668430873085753751848736790897536645946228493298234276127970159831781860752400765864071819501499045278687303533660755482504048373914464059487108650893546679862732869647707204670570316256692191196545680259730891724045447772357075992357090897278998491070122472136869954268205809317871701921944651891372604887561067929916428894236114218822271348781540326585798259337447380810784102437573940051914253756499590835829521473122963624519415235791604448434662507523587668814280006981004036577288792302973145211184457060978373200871715560988655553613007033394086512879617350701402064261154829880676876350074116978947539629353329304306999370681207132697576008925800031906635774659577967353553018562322505552387380809362109039254008680647870936270564294943223221552850510668878053016107162690234926058860968807843623626801668401011361343086994378595543699671917854700829660958467340844209549458609677896026604428600133917773009909156578737646752797283547231517570387956727962370016190450077513435181082115667016884435077756840866231875085652494203150668943345587955045541216226043108112581097087385301518160602467190685559451757308733914411972467247928366875205456913406358922823045507668857307961085594683344273093026189989750978303985366165227229501686956813742650625727258438914704584250530687507684220249817742647942089444451655881070661028927809828517625982200721621041332777448948226846974516115917529537989351317217526634094155298259653585292261354173855579859222500031232437886853395044589749040056017205085021047595306523501871155129867913670351044778411978322073172372969426754701501408617531964436961297918849238846197336474493584500705753351847256279115692195222002099459065117849383404572141109500907877549963201042122419178058378681050450726740013196572898508017858864636542323063726153395544937927060938694447256814863319049585415219686230483373931011707224737579210732333712069013928585394869890152455785790336074717399229092057437167122744267227774377470894269916228688303580764833859756433780039387596752736030635061529464008801450875939251952172302326676482146357743862115637811077342065821689911239372017490641988860758401886507196286834086628062602230335838012683850101261658997765106197316313513028738597351021733789041601501828384492140068840371510226062559903321920939136140112512966595433541903829915744148146305337406616593693898312830799651100676114007321727706423711034222785732966761469641589787096813111138570138976884894399355811273234138796331056017978047393638161590455798879192597105704715171686995450912642886172600824849074115729496124822925377735592626136091446292199496788222997741918490467839667104047860546203147573128470327360468936110982559707749888833453714724945595033662693843318614253442669895212127321463729672536645469572872941315521076876341574856216598167667876814010110492817510565583514423807770161809466152456706621870038652161965951705011859751675816666609916237696523223323309800795848824283918086908251399881834054431114959205262479257970905527949595475923721244875687835444179165032247246675903121333918015688804822788095664675136687382924074710194416684641463697587447449008374202624069016790689692519959109126835966245578047143573411015605696981980216486787236340654585367998118760212966220213839068772467380411900432201388148364295861174276022126031937116515471139015485347074857782463441432428717663399381683810498619366362464129664246192163008732536772941725440304047006758915126966694670724573005220020839189653135677722136039189491721898555788974884659506604077333132997433395978092588114508242851747530749979673638943604992035762217131757737501087377753497857216862622616166288114444884066804486114345140540312853498705487557554189850043482174829306218492939534133103122991328170404584268421971596862530323780606095223836705718850969531738958281390605273053834116944190245609599268840815919065322875274237508087304551423944667270116799982339270615353078541095755379069177410162669247217511717180395113582861074357415088958219340615770596366083655008958076387936571986088150029459029605066459820779724560191461794821552952273816713400183479556072029050907148088161905182653099652707279116228668402647353281238478225796878403638105140551439601314543471663900120510345699621028848818733783197770936308009392459994715325259902180523369726743993762365454011773700413162454248785857393730009042332165054924496233503093307101945170960069861947028357934223757937447110956866748299684045263693232673044448965977147976667137682885105470927267488940612215039290867419924606744698577772556253522067306737203688262710049387871103700891453767624320566750258085602167400788000558139482208677505571049749509524491444168885649061416571237435812491493907555316899322857572700887743945127950833836027247990999035007776598178376220146066776382504533151057963063563657237270864105038871045041642597841288678968953017494387244207337330687934014698575305112371687800998779231689867921876087882139024393814219148375422241526211617123331879759579457168179577663429590010402002745383520066554506367358848188565446737350450068448040872647992240645369290120723636950141439581416657989701469471495569860794886435854569145293184041373225059958139984373771684255313457187636000600200940007298751832302170535313181062645904723954353762315480628178621812100605503245533925621739247506238563822260512435620154900120447969230510261391594819187136178115275692840901149067242564611096285422570677459669875623503579358045549445457681729573846691209245881236462179593398819065049596603519079543036740758533345717923395765608880101512112659342065931559518685164530688544530940056513970166353165766531041959896330265661504224500552466230000543255371479468628972108694861697543645095668704517949449456654602471825193436332518144693057310849215177324737916467346602125676783754246250442665656792570182348857111056498689090932461335224603077006730299097634719123168995940336014218759210888321163644913996799536750590744477069137908492020257155697679455001647301094291659657078390756666002384737648551094272763589138032043826802226592290579727608652135253082296389700085911285853388184262296704524371137319293817493269235714345866405508382657328175274301633300754919341938662845065140777566458515141842933122193279323509825428158193831569094155125174039478087470593418664354719683814975208179513238524352861970628177581706105864270582355315374287382213982753030650423318521026535416421878350758570047390632290550963111615644667246909113974962747629890760497589137764900259914447100760830682719998344261149755797428006228995252898063344838256146181086865866255530255494664258341022016430213335499668350421422459377621004420424211754430058173096810902732717438083269268455779386369775437516096086347617390524721131300077192765900714584051334944622829911110864090412696982333953818290452580645454629869643903144978544532396534250193150949829513167756228707557357368704780054301579077638155569050875127704869634852529059079139958486090821833500482700182328029060120750398888278650057162800901277332600191067288277487685415940532865276410663423238719181379180727953349329617873100674824623431008571926967246686229924837187919690228311530757689704668177585256579909377227586299567486220976443172842877142300657984617583875352251832113464973596275380280354441339361782851943288388843650692307933478868871569825117757399839693514965439415868992163702334271541307923668597464336466516998464591207614626056255968588981946303212944034442708231587960054700581213142533375857791311697410222322568815359750045731070934990504853865646161596226585710915895225030600791041527535148655907130628613718517375337319315633115804372097583361840173961446709854566424570973687106968866744887314344602223802762535730451379865474239255356095545183682601691436868759915714365014581856255448379916653562959643417485704592795518858555054944303092433675624191067825293862063220651836217774310177225427817813013396747082547678950855758897355150279262312499650598993906307394962502273589138701580179442039475320428948098268305285351574355966274029637144874728777196443276152634786215900328027005800772477348084302566999767033356359777814893278396162837899184637928606988217547565567642028751343879816906291439605345488140346436424267454130575576794601818354385611964616010917881990527783397332533539245533061018861646465678131804040149606371295700795957699268037543170500450335061214004205015499122084228757746186344541380449740575649588482629214865645513525219962586201675809780735640694762832552894325102539051379064183367427907736902202372142143189892469449551491644219441746452752188856589451138344435177352413115068065452041217442541477937690816643016224246715317484514131861182688750792839607600723476713693047274469043005354057130003516353309268517992299717637583164639045926228279469204658274796985558041212535149893545375386696984667160482952162740598872068388414953285805206942706458027669243249590178996398434165890456052069453949723468692923592913627736089640009198253943055707290630556696172102632740460554306512597685642939021125454993305195496903646211833202015533237431964931354013880671595694927778536405306568255674679313401620144109121326293890771987088208376818316775601399933625375395337233417273179364026673259957101923972469218742549749264961353101341166549026593862431256249555286068961728772909797014218015923065151817203802517614121435159254248006335310123539916425719625110681389948181103119360257707235072259204896670636225833263790102210904218373095473228930532518312285610889113312048322461469496382474083952771957429023181289338725793767253486256845874330392882582064599332411610033941213688353941076966082428357040471492050867040730749501521452925147975976545062980781356737859357956171145299638347271503261563808049629278088386068729930310146441685692380573527450153599939325483388546420695080542766167901124028271649187988974521518805916179503300840885663395209000802857792297139315068986376413415069135938354502940463463206909501324087045606273956208535324625044676412869268265011152677005612727377676410212814021792874682951282221074899333942947877085475721392674289855516100339106915232061396175702058044641121834733530676969188332276008061007207564099892925340494777456271717449183555680784235595200220786251382818470148157823943940465783151793447329951655595112184629933716139468575443632532345098239450774552090813421603811611628072231794185573707173835458412410940471709059587085839818073357159224869391128255958680209104716398293461079936732140292197516439627063358515134276517636790582417330421202236597585788731173015250688520593125290377396109280776537703734740801762886848670364477775440073318020245274352081153743653573595834562770674279822270971075213675113640084825830067364093629132672645629334080314225633984266307086479162742723188165442228911382165867172959575951564051371923133198133829330382803641306527890848038734682799817914319618851154584823903600912181496469290845629098548157467070792722925605464750281037835137377973440744746579689259874816363828739936221926921214999400049785731081577688948525223178306537258182342917247760299521580486534837575752060035117205804624271047647732920362252631100744705551840372118887371378257571179994382243387756793767883843685089073162643465101383432040367534453796141247670332747084942216781399586116524285526981542473089178019434851150577467409996355004072005107836577052522961109167842020206082862008970614715219735613071966204444518409693912713262638103163259782704573074839883957721137548872780244868731966113778889247414682308348978974054299718726239323037509542145150976428831128527788261291504702619260077466689382369072696376706401555149146944583355914292852084134848943507139622153711026889855382881437151500261478121189753773251744263621536956895660047683744721134786031413753563342448166231498783947582270133866142101225340148148706174789180338318623174686287570494627925019555508091745894867201652291661628062606507098721669425626142051402341505017581463531343975906509703648912198691074116467301351537766475043143789357947155906845622753070774960521715950211778154248278031260658475801962703206793782352425936506336689159720537271132573583633938236350149030855966770825096802309717332793731213616684042795538164379313691812143684411947087399871063175771575645329926935802091593529632860139678860710770951759085741689331249979351415331310183820059314916190283795832063711457504040977756239915178392643890787312817765763385627432533179744296744853806448096444378881207946618134067225770998249818573208365459277101191029314611598820227082655946522448170721038399505714448599161232464909251975118340248596717346726601058676943617367183285765499559232713290654371782210474394982345641919056395706954148568563212810715718911133184972922610501470223348907752313184187739119103203583510370027297907312094413903224821689399173547129563014885977283311289256244356626166207233267496355369076049309139419861681467709902456978084009607727574545541777669433071228953688107914508187069875103259548452323768745148995899157089438330095270218115717041630772880613198637214046840737332931153986751333515902519410524571652812053353752949682647498211653350803309476716247674979884655702131148009508085807822126106870367436540644844065010000133819708675009774836751938921785683005632855937772650049089836497089899147605934489988669278372085149044514409185951160653155258163847230321943478661129350718564716220150576638227763381255406103643222760082506732323703099342421787130629446582254398394985706368612389747627845326442668286468724595989705398462639227178034175234522202137860560229229131491408766070218839765418211363637971411979705913095697244586984349403763737687580700415518036733079889794284416106798371098281177743498772653733947705555536380456117654915061946615858645807820856840053758612029489319469801596367996582443095632993947493191369082660787703019923820481387787372409376217936296983953906821586874530191684908486405741700139298759594716527562362060741047423735593765142086004184253212578060417682342259264331616339139180326792077986252407907269034650734335313901492499661639378265082982266358381238089125700964530707477864205196837535730830191604290536016066444252349357673923790585846339652299073284141064150244745300414352870080958599804461095525515174862137616299038021728546297793880278239097889415016846431967808065241206563772949709885005983683814600761677900380636535534174324091777268150867868737054891823110778575449729354814881813966721550418509531243489736973144945842990007428746859899050461593102918078279345565255230807345846602821584922504811110617694532955467426190164076930584174393683468559233438214738117293819681957893390757323740980529477847292348512767417941889301169733984736084415626390229955145320560309853204979270969328232372679690219855905579757653293373131190222344893439441384820116855710028820938279201721547584938210107253843638376356131119965769057472631813317253953779551688651712753222439962171612784625647384480002246415309739792789775072690572195484870973508567968615440354285336424428586065128764945741569438733854220778703520563274354770048352618928029932812903680426026284917535015034692836117268619851266787490355877860481761997281974006385372872780666219475286568973059684765813155611172308576264877155006084875402729596381366240197117290074530860197059230901869125147379648094346041012378059686021833602933089283485835780040601531520270539163611087878712912581633181733005959948320340743829738982561412160425952951040320196557106469577359475764183073085076830429113027374601337591239334566141976712809265246530302745932053227448498796902153531484235166797914308740945772262886972878092313292055760181947246015789754515617995470546094520107394866276610619128725638635366909532904638265541948962309016618412986063244657242790391397752222591034529340513820815831920891733803281374325148677002301824267360445041659732455949516190968714120872805452531118968526313982351677202922332657438989437911766816157731932823231011591633994429538179972945392248501776284869999365324258091913725500805956200743107021463485875111073615350648667526463527769977117909703425873298512231427437549664498201612443735766508359767450972413790629046885109302935382051327558998149172117841726817420049977968418145506229032576973420495749609517563532913132197975997852949330298668097341522198922904745868241125250950353485818327692270844229760757856358293237812106008620907328865982332436647369521033248727408687869303066314000496282473537103683858123979653009213107413082121171999324771183719097907170288614838555260196955569631576888382868329511866809115450974357352765483061718537747858134784439757945379522250354188955758614946743946827235171101121409101549572805332683280886274432197740912606528489660210185279894349635843401779805571577632078806565486797202460878775914060430527790156733712280814300494806181799167956191131958733728329976792309620752099849835640323918893568558657332847210334888919839028170952711477173558566793754544663232917810593840692694441707315405925208817960139315368837276217599877345922407909229811734682935406838824744586909453480248765300508047293149372022193014060029019366795095131880890553469558264433559928032850227908523249137816799229033441310959854697667644932176757740837705829381576465553238039271157795812798275985574891984680798424505981593499961913003362269856183582239841239410651078270825628899291662934622621556789153010565025448669563303103283198873554298254480440720216047428374626492502876834005044537797703552230566260072573797300018380962883654540226940817085732652220289209205296059689281682144833620750219510785702779230570318119136235989798253491813467357839084136460553195689680928818366913010500333576969145209131969984019430693446077360000889534943150160958383444714006497977608408557244749686628511528764606729409933400600460185482463535728800351282456552191010923712540813329968660158384124081608256106605964468364577086743121615485623115543289339956846174390524723477554619864006637962592006021486504056351465449117855045032634119339855335891305664521768415263622708120832587964304636270956212901025597075101320059253719793445356893787073541994400831503924835653610397651377240815275617610917548787843962811708324273995262066626626801151558611151460576813753308721021711839301252986464474163344934185568636190694493136382546864065967794517186683014925332394879694604544709228852155624386234907741312301196768906910583927936185090996373605843825552199511313924463956579479121779319818765853551019556904381727475587333347644948592257768461513247351574638924750862602082426948368498243825578976231907578656167167490923817074527024909375871933685262231865195563900781563630736096379996693319307351036602051074613768478883961560493225994482672449660874669966232229678608771018549293912696010748559432511511826619402005294218519756283356096728963632939509881138763137364074046906876094451066775341551852727102498949876275104318522428294518753136318451164893253970861997642878277946442985861078914361869209164153555383014236770264234758247416820673382656591538841131700943297035299953218645762368182503626269874527561888429712360217384078280216341528030966452891069060904139117757554021467410415063006844217562540340112882186372980215577163583718034518149391558863355281774129316000232512452160129959360908767594531431633065159962561778342656311420551580459660896049317861835525344351236762725589837077315914283047152420143541100393609865941058086279929867889420790360773092632304541732193423491424784347247798923565854625366946635916266363971755831469356266585082676966613909970222892938962973690747783112275360509939776654190221858740623784592426819361045020634554399509029675378196905098070964020606648133632210881562500388662197713533122746322672874631066431694516091639128179553112355280170935720801799804566473913043438493320184522058615525846656433270258509461914115790320083799772489602008137277411732657584697632572103051761649120500821056705554429024044425112992413225018401563877858935548770871135381097729677727768817883285783722640371630732485881576781441957457479071743076469705396310107156133018159586982677824125766958249562615549105390165911288030061411846416836000559562556706390738957981885316688736214315928600282641274291289769685359046347805674558486488550329088257787386484158044441040990959117018925087024820817831987208776736053328145371760203807438927939683802855457249620424304320834088858665760498670845779793297837654342139814804970685526740346916259021655536054335463477538794510155991889062690774745888709043114216461092667047368922363957982214546422696038365394998639957521733187402354902016288941081968032902701631906165158524473665813809998253475805939520839237880284781449964598264886842966324520996242208137454667228680253129775241932208934445030886049776724486801738128015185504924781746176855473328216326286144948200255989034700438166104509506696198689798320393469443864078374306597241814122044658720180879168457252984345709588638279258866652961592080873866417966806840366497702413916236390072507658262148408431470546835211728104501897892906909344833239860611612491557430134918413677391684798315966367622604894142950593970385256447712990747173261645085308240017403867542143864021767283315161032934840788031732505142744901268929927143477720760886533452676352091864754251041788360620018351265320847348554748014861030269308697380372376516357496358499157695242993382159154061137996789570570865466897030318279835456244560691140700864940494493082988954005383105340421619455818490172882670201146113914159502029584104646635498957878408065647562329744903035217065571844628111288993293513385438102767514495781389311608138099658305518680575021501509456406114118974022351969182152210289807782578249695182904445118784574577602469519657486014108242509856153843850582747345624428187191123251492216013394305820093261019767981976017064380162261571775694412142084952139525782572702069887636173792168370446015449779666859272235898989718423802230578273634036695467679281477140312366518618922204580929482529132450710799596192950813318562885652689368292626286035870385912384469731431316317187400058531532258176393360291900835909213298488558440025913483776489156978149193404042606868202126036734248329238927157649959464697197767637281848407466862285926002421332987249549657790869222552883193179627544371912264650795288123012325992152154856397430192053427307100145754810281343943850282038407544047859490697044151712904912655618415589913262070462487304696213817869637982732206814691381068783612544538670028147645048161197900138566166622092977069017755326830531124183275597544193081626245218132574770703346882337078793358008029161674842634631654766173722534304556220516740562416637377328210300151235192447429230732482216662824671265151854910918040202708368209409881309116270272828644526652813153249151550140733967117405725523382288762973450451447475916918342193508441593597205191574519693890622058801855541932593133050058951107309583781214041328377668041950717444306362507746477673773440529132027744636473008577560391645322699714693423526906978028577827649312934449391321439958227424416280388570210631599604579597390786572796236928234686109196904976600525917994273468888595427315177538922855177282743653585133316788898296713558234991118914873744034065934290414972877897912385864402412104568925449844331397468204127521034883863512673126861301507127354338439301202850775370041548535546809731024946238598178645774352312280875301435742625173588778599402136179082993698923690280091999973324465547200621675277153553802796088790663130399868197607956977898830167770276947859715776995381201681046504767048049926764183519682126291577380734006434490938268369730938939483645534806858147336904128510002470590541981456235254446620460757099590145695505826373408828033793886354920896624385370462702154895868449139643532972500208341605975507546820006645693410454845055385222072360201088388306198839347054141488812159176038476979968347316258605643318679505250080398196170162765386502483039769707361958509559578875576021122464753988341217660914233983319147794646413846497195767095177120750294914485639764370553307169875107130884885121460965182685038666759580222128260169795294559304842019328401334963474970132831824820065422083745368486815720625116677522678011490799746989153082767780647495879895993093442251689778058614414088614297456885296273290847730705319202416272525991638236085344097295758967168331711464758210849649939745231785607655856424949497425321783201375894644155464400806052355551917755249799275724953924311264188218070498513934746762760278312189908630924188852817759425414256872523402574959906124807991465710706441187469307248034500873863605031823533953321624473783221635191151756197334387826090626897789540624498905583060465410955831807851842935418032852577548386476644429974011572985555490725520781200114979677205733115412187618908244094434920863407003630776662783320669437680988781822004352955309282787856950832616041269176683151233952860966194861938009323504850813232984057830204790371839993182835614849804598361541988019767815228645738089409155667304011936263263840005557577577987738750876537126642277118021554069662739836117166784454288345079376306939116188434504368394550003753156936515057707608645722246630152516199434248955390083236463980170987786754679539167322188314038472480876082227212757650073943269058963670622925213679490956536938179200584202834996141696666443049385524160159621287769332784079975491107964115374207670187213486904108387816863516318876238032462972768519026811346771307777255011024397885054445521843638678376773943129836958731855651068325992720892676120000065382358273107365177231646295237196194801949761194458408757951251267430257871689770590874219164081508083474606230033392931295219871117339768250808222065282483259331259257980269092144250332125044181281283094281857637999367230362540903697604241470114564194818130334542006169785340154255381299776678439127772689712608647217138645852804614125184772084668360362992095701273782830432753918233156923455983418394120200505722344615439786710921431663678903951820553980191108821929868411891243510509947808246639200322453930038593804657592539207341925605712356971480667426915894019176569525404392833224238967921638701256127620492199398209859525541675661687323013588608707154238005430760570590690112503334392111556182331556217500370048058358018214293792911683833787122177484781010158424367753309373926550384830009266035419658980248383278800522336420371146987000098325587573439821950605831396385757498947202496835529312674097468878479442660374705862170190059825933295029371191260148159634666304067004290053318777779296391290437890658329510133966230586421228763234869264571462393509909574627102328380043875147481466502444406438703843631140502408882999217712804942526141131142801610819385476355225523461218701492222109882066289447894330049056082609797356260091058615617675459789775359107657064252058672173927449069464710635902811671753574758568860306156078489734503590524308987486307194048131118025566709654873304463862171371126087766913603886573775052144913851452522620942120283362463768933361638840623594741679580287596382671980033452868259902270868966919099276213618005328806622232280511662526629690606881573610001486721942224568727046100428475246864989159928584932168330641265663454425981612350352059908437268304113328019626141830938886303754304440312892945314659812383727374469105807382535473881174878778158260570525710022579507097852277523363576612979572000491211123770239888231340519511918269500916210432072100829978808924265324488011432551098028677789725380699284542335975168511360039475003055122813295285513903824561904070044518763363147472968220143063524176657172027705852970883788233422784892572714498416385329655706380138749496149682018186300184038712387349866292041310683083184840506210254736307724175592396035749762521251759510829747350469343618859882742123403318226051960936519957830130017123698821899277254574299957076982544783003129080806033207903125070885003016385684404320244536987460216893353143407674097968759515008612883038725363936709840053588615871553031710780847142366098335663160153343579853212487488172034163897837574716764569364989047292461409289208835747574351989554734312655915448730319251853535191316160208528112024583788748088237745103841930445713721906973784429177170132323063852279378420653690608614659489476734249702646989785431837437038709324105098044432070250589760063320297937852834357445271238689047423778842529760662894836437387447038016436845540120608685413477902662149474323422711537133245471468332406363954484440009043513036234714564412630203612576581996049564354216346712159961905521059106845728873608771780581917424546188087701847519398113228246868330739574234903526971927426024431668362339897512808145806202399531578475892483049160241832096902217794189177606158781295331521597789068626890111123203807879483044299774967363627582326198271651673375786136500028495191046201034623347170939027077383014382187319031267993644931359040246938986509303109072736451866169792858389701071677642997197991350764482836768048308988634112725332623154688944023460580970903083037512639312846365049138917599730118847174445945216185586977462148944517813944085485199386406411580208317462684198900901008067599705360980528553550362379423727713704739471622839953786060927210958365927872753844401473925219209712890618572111493915384032044736061683467922686555383509963139791787121813150769715027782142502817811049013259814254457640932016608731179344901569988188863612456207285738674452396625674716539211137546711525544861021837514773237699971416535570030032869109552498867898810465478687579885849589479128987721701697795428315489645659725615339209547636539756117915194340766194767908502803749598936751681745331141273670760465291445809361409207801790261182055039285930544607199363405296338026109274794318140044618277210543038015391221790954299301498800860337618002714578849413480356206520250433531523188302912479289531532131108562218471282929216595216784783212108813127716878500765366671915635693946323346448242624302147600861520786332670522208797397480468928715171307228459942491184638331899745758435020713841279759397561959755701048914863181623913157127405618690126156788049071947915658475980001101718929851028168663716878863418728616135324383372099448494709883525727764923558099508950601985398197028280275356900614780922359106704032213862247414632875353686167877081123844162233102545163333353969426984712459666243522705182894572116298357234742105748118677159353858837364310419632890449803994733370150205097427829694581131755877837041089841023161064480621751590505589071789079265210588129474665646960926554184197377811500527606176406324688018751433391556950521153095484968870808857984703538154914905463393491405470680540715230379624793793181276898144731173308265223797078702932101647087419574569071908969890520025774990970929725678140707230619319152768964427475778918761892500419838610840554184683962578872455180532541342194191265855121017017992984140921917828520073554237633727338399296618732016158562486221762627147632213267654502688058830922655853707433077662189089548226941625880293818674363571391830362394898898918826170700188397189559035873299001419507702905560285483955941770337196945835192258182534031517422434418348056534915429420184344310558419165428250295889429308426217131783297325069446149606574504646484871534478676835242235822449080861761523414969139810368576356787295413658853258073748258400823219778053488104744879921305115627136448072890339398588046453871476229026510962312518696436883568900955569673572836163511634721316566119588041138974789801176004187051056936886351643081364344123526593121220265580560182213938105727177340347857149060228921390710093555492040585941931528869911420826267815056471751592828593624132713059978671821840568994616710407254411930180562391848852030546810047203951439522049438755585443463328845591080884759686274542712590730007156070873216301282571982512375282768834597180963164460861044842323261071161627531936975981018927818382475929245515205117656593809252912461256788275059408777626898587565179340554262170345980303418900466519743899302878700243205937164034592101207181447739515707685175105710763773407614812110536679811556201596266460526159339518637658545647369982817343375079657433040068992441569229226590028795133745393937950611618145466042942276808611555576365623125797104827169510086583927783953155807561084761577023155373456562676214900275730205959231998406195221086020992234286229668070436516914367378813230010808957786315208747257167277349139650403424932307163516672287487046076303165544784053276061798995543954427937543497960169755267215566076783476496332778971390918881448809901769387243905981078504584260792898746295703330515150048274132446313616154115140108398245472038937618728668737442974477970321800650189963653307697718298134601407960480012059575193292843060387245554368936351090849357940610519944510565294435886647015823155168240866153520064621284283308617225718723254159617503420510617775109198710426677465799446237197761221318396217471158248907091763915213982121083167851727782610183600324588337180042608474651449917923090942514131563157245264733724364867464573263523470744232352391867984324046974306509530918218169806969500598566446372770687543505051770190221262105535629628554824496896709671428720487513025220462606377714516230091654409201355479919261802637582840748751352194787307431113616320754137307289104822294892037832261340625536880717541367417769494082661645624439095004773441993901585609931977488671728319370991640863872750247589656311834973518931753952763422243127593372557669789000165075927120950799786309159470974018256196343850355391820535367286457128534129092562449001840003560196023573167307809383504766838992893828600807081455780529319465320647743288587857278801099147409207869582428721452261533125200635497142391424238308257356962355463735480248526091252331653840468183507081877148232188034426988264720226738509737654646468927411198100345069691226249481404175455972233352643952094570741215948363168796007177594771905286587940181587749533981992732869311927323658987234695035555560783362482400570003449943837102542492252702600383105593034905944148790214588840293025435633983773131968171992714816094581572404359383681649800341145313105018979921740174057607272887188452745041798337046870079302383877565260959615272038748635709935264424856480936089047861910056739263315258116105894871755381805773454367135653333888366400370565455473883992311809115301592880847802399035702918553888919541226447653942817019347080405760340775799938282724193438878013225272890296695125029493269892480225023785327084048628578751199965521377063014663436069907107854925989172137292750304325880727655699422788449225520642328140071449047304790156899841529274514689915297697472451708475654200234010566520073975822554234797415681628331508118477168082925752095774562622627839700583827272139367274290098824812190539055600055646260989749925681502700809814788694579062935985962907609930706803852415165876478918234230451267638659889430586380573441069365761739919324418770618253509821817554424950657839933092761726840853986746143498924418506693618457385583813385377853207845818869760394479454871632269987516098624385104416852259947480107699148026313910251391355485347645453513129235364776924657823704258209414435073821549246527513157680668031796816935246082654089993668992017097420323982673262534887300370473201896771725564756852534075839388725616562469530877618188863198346592370595242275929756083868676742283985644834540953826096465538963718200974297439351256669112799524570536866151075726448602276587278930532489818148524953631567161217972032415806473923335381706667404526272027174072432491696901459090569783932577653602262834414425453817982170020399628228709593239063927141763678207852047431159851534690576070384223933096321341895441377556554391081598374587949950765254890348850218419263354489508680742040941909502212993549739493608934293217073772845673752212359957502076567154348206921727781317016308559241769523052879130127517548364244917642496061726971731163654415319323204574224043172248166890097257668572384895015869457845664392880449469395230499031411600558251211510309070568377122213680595526234264964461962415981245756778425094953220437035595628530980830692243973290071690975422590533004899862349117879271401897531268146389621007228677426757130781786711139448666806983196510052704087806487434846692083489185477558593048062141440058771866004290208088699284231075167447863819969147351465380770966487863711195095651009904418851954534934213038009271853386178099029246157402065680871683644532469593981043784808062873510950833424238156934750671710479639597691691988976736578432512771665485972145868591058072189345562638136859803357634859468445067491140592175454408158359020572319762864109958318478742629372455427670169761043728426392482542962675511979116865138916046085063794400600266127715290623167377818002581781759642798188945227270849202865262615195502140849550470743812109411029317575612963991399542908876359877604753983922249627173694105975435901755835389723940448850537629099095026224094037549504210395972392260004831199623867252513093542550150543685657595731658299922185470122857973555675781600939671404179095470523897297197282349101687182117816592247196293526253124920010945174007106618903673230492458509806237261497912624586096355373258055828699522990845067886988396287934821894511913600570658531385335744062651908487017766999553430365125903803550785602481224115577451561570523401192860880671740204858365072778992455287667638517285823833278820995018964853358631262289148438123358331070049776076870214346895650725201059882289620215881079778736163314216328726601149266642886883729217345272817842458676249203255391562241423427286166673777368246164416033917093589472858138484698593829859661682212953005643772651954736786167392922007566605851082399511664665372049500315467343598755394290034525347616388643893830580216231759360927669066134952574116189764594025314334130334681966000971591665568648938864772073583442662828272150151588710367733706871014649543236528500362436937699221436316676852957028043575891569854879355150089703311604216152968007209833522319248498628327612176804465980406556268220943744789460886939034218277935449309866514533266476361643358338980038800778280633504922192320750778568361947433316234030112062243688600039455085307411805780107911369862723666220516346045808930519852761928341238841150564572290754380011741310868726887794661850649852617549529803033234376878848866928714839597558678860994157177298216081974308496063144820132001782907343512355827148427398799766812727581491721412567107069246688819653328514609752259786084298192193679478643376397640809163875772519710209964033447658301085818191369389437195949542226722955377946664209234677968849191381933003618759495588070152946675662032902105292421451827846088242357854960950157528622844393470095965296147407806803453343586106767526647632475365087871255793554787204006915701025342200286479319948290252213758996093080980517143894855185845272808964628852798895325981294365951138392237994812990647915971169642947053677011150749498673019137430743158304836656943373204742895041418942394514978537578742331903169906416493875192812927943305608717997036857592394589179017844151913899507288098695901119407109815699906437787936414206369027863072842619570336179043295077205808209945311426647491556818118455498636400185765748695868599179931636872871862205496526399760046529571827999558331427683549795476791634611461872451643406085624879860808683709650250783614322619067690102784174196170363027976822486880813187913720355829096435739672382980064745478097536949225220695742201045529381347928040275915942711717773742672892206272580961361138456400447760671169880655681041307915882560222850390347296512137275022113413896790498702371999705776269917618776686621351691604713976667521628483898105867680139915651510217032441910282369512821718775560905935373741498694254284527208647341809875322115145945982810303059721096006567824720832028126253945722858904317488530663061201541266123760435100991035581418479747293797702110951972923496458541775583514499847258189583246578253442714963361698066157277923432506546831984341986147830100632607652316908035349511272010555891474387457736306053472403715083598975199792371667198745473220437430047573219895677247713608557392559788102405355175619021911703991312772538416515481492792777921655998379282095545199401749212157744401966571380816650352548077667142422474706032876815995145858270772023622460667278421712276082490526781532070503986187819367181805160400131730558120823156992285038417537717009606364882441406268924727455219152914422217714984437556169041422947427885609704206134891010353452400508665616756974112992629622791550109568011594330532750702079364339253743365517971153465067028194818873625596372653517232988647829296079168962619642438548501341805014874595076078998525187011741455978124127459224983828308754442183257016125832250000177169109588051101595052386568870877181313330647649896768512065797524908619142529514726965831171536510962359414347386928438729971827419233325889200605058341821337066087269166364477715237693611412600208927978662778427731118990181711596640014103971785716972864892963720934847997819689065617435777113673173781396228554199903040224139540130753262260198530384387852503712815201295873675445323998029707399108845259884678871525133733214023545211963740879817581072754935617977159068871195123075904960993264523608061355306572366103081076325159385376822533572748527273467280718225429343978572035061012354056593588199583425047712789099089110123581201843180194706641266977737283891462020784789242370739752230910616188798919446473307221055427643836900430864507123735902927927219277298137354238597288151876984386964406549270797310226588927278372115285706440455069596741717034886382788317428644070950462547488631081357895692279326157124369041375643017662808324488059673790610921801009223482017251226047735836650108783390638981367373372701485519023447724324557848174414611118530587749321192961292861721900267275457524443054889481541832910251458716965272482658332594068833609955467260867467729558079873824386381398271553166013841343418471253895000732003066089737159464550273573052530131913117159193499770361862074788778804505190639145612220985092818841236782765803608349099858693211301211415397964835255540038914025613357224310694319077410535179609548275116831213389781420912523753936821358724599336901953695345141988005184028944580143484636417642950505450498314875988263208887943918932457997018727553143394093299045732113634507084934761813916782063889571257077465869560363973858913508039896678115949572182518310743905861455682941345232465430640203005168685451867202315133287348773480254330860919513955470749288715452011119306840897381303123113652367991744087991594121031710231652897779366001105238292363381452733428963038945092307317038363876235041152371663339201964230996095538376892128276510759706368096403839839801413342229621185354724624464146818749458856337553369680466695196459943619834598267968488274050109083350577500756689320067270426808624883390249533408611661644626253043757110577079645177435336361368762161062139585803030113564536532128101905872601890943186913370726688951051819590305151106760415524780832217285495779254753471005793713484275919633751068361065984440240215909421817949713786888937980305487429233425134252647121348660599438298270318423436617848935012016586631550868462104010996559099477582208603907566976227701149095646061289081592763149275605585432648500201617591321149389676885578815030302465261549065528109861055563355135011450340497248003080291348951446763377382742676310871964562820954075200404487090688970680662599839882775834404278168681236795419486907998802231112880003154833582497715661264212755840853005378965858927846112835411734264868285496863414909125337322930043707315377856541655002035070916723743711128186186047969490454314762848031105898202044269609442049992640431944914594777397629273516354668822436493997496565286234514858136782803735733774634683652841977331855478710818005557539168172360185087838700219341218858721536008155053844793581675572947192025900029252992027481044939089743454258134340190542496290312403676776300157200561885692586774281041794811089042876826717619884869431984801825925925305907241301383059733201207585865734267933233853279709937881420997548575151504390067211660775406853191044193452477022514889181853601212060924670348018191291204822682394260295180036895226616721260650653485858071531575532474016101599756793598622078079669252901501121989278623115279136598396189632711274819942363144918636117783672872570324724532351924992461151489851368341561840738334044954893618766367893922132876949224664632639050435228421084588481381194616616135117025142252793368124620541656138869769954899597489099168916065896499417807808362509932529310148289712533036737881000690500810017719180639150286613749577027802175642076666933853661495201288347759874149033977246118393670834381964719090780349862063912595690255260881309498989303916369160318815781491118475660770359261617999441605197145319992453441170278807265377243881827245388696817259836808899227000064655238958489305838047013912451791923356196789533857693444004360090888537110622253374040859277834743611217706247775058349250441163912269720314975001802792222134702830903585937065264347599022950658694240927329066177840895676436130492392782128236084246841762106485139708910495656531666256586434840400242634840223417939877111217070127091647392558397282264827268937602149384236890977242885838132972521336810230793865543152519378927711090722729554324580134440902602396083870567886138087932522651781102360046458941444549081633381708783742358405213130167050984655870196170318726721758468594038661655556631446232670120147749460765926866224328779060959468167153998199290519958211985963380136153028738815577050311901196035558974461104034856566903246993001171854039395406736619377895939565471538309305672879082728650869438955996743148850374795155446471598979116925919808596151033882457046315799261497695726896416723854870130706641417079950282549469984622788658594225988824209442280899669262551321622965112251203732685165487311221473533368335500938101231828458608120578662158285902308992962398360825606170883795180694735199433325019665504627987755199442155126096784115707990180894468414772337223226127459529618693488317592594796338906110448344860878245130651106067758219464597371034463779771477737019667023416737486027303052487176973699252134863177741563540165958188649199800187355637112032503073054791669120267548835079574702805250494973703397061081646163719561343428506097506016323904300050668288472207813422466838975873463090283583697748348618247785841182896124318351740484308591197868948488377463408430364145769100737624023624714494262240376883564627502610801529153387758508581976856071020119367912012618524006329863584824290746768670489165413717177829968706477400863088906720784244897956366971427462573857398225218827500506845251051977771085610449761795095666568090551013766867207465825865864126039495201049778953597473927577849956310930530729917812901671073395975288214005209214724523153282128832926788213315724271246726923924846049484912687074758961085594439113374689755538276909679795642599591727009430816472092978542806213313487829524454559450564746697952407355776946442352671749680929032984979522717310185612611215090067388385411673827627251202748844485181202177926352372972987107543946674870956414938778687419377920482746766660178158530429572493231926478227934551624023728590400398246172181969474156585912733612702630969098988171590531459989094528265336189768494314148348637708308371842220685055887598694266022080772573027082470641289682357276220729451022684311125635619663178114712236347386343885675841011518978319555307091883609398719572502828444463195066024717761952607444791524930113592595900155950181026100252404900203434700548747012986148814225457159976650163431685989033692328554674921563336594320599112947798619866238315351315375600720178900905345935012390906225175006947912324028871823775933103785193093808850384760856518550585755422559696959326889698030997444025809246931426072220556648811010210580137037451470795210779978486090318897727156150650756656289769708005541516327005997506474536606301746367632334084328290190503372337676040500164407532363671112650093788987727361744764335393065546299444763719901517280440717001125267580875063295193208284078738577765491417877051830770496280670531451071058299702430356713956010247350283383134127008625974250679170377989085406460636505697945010837169017341478234139808150557509520632054812311672583608748100395538063555303329037213865778677597679910914132198301365749821534197936945593987461644272724863161763758163786842154689935101953928408038382976943692206980929959416759664613770435831161429411397598952757397127642879174893765357652170514870965705976720775456272230534977067396878203474334375288495582216281741517473539263766545911282934874288323616583937663510456680150041430864398846854184638527190568916793278214262149459949222510576386111079942827775568479388764938128557184034078200362888753837734677851812430207727659858738126016880099466537747123162297097653614686315200043180612632827927693448775261724906424407724098549905618253721242756653237949829533096078567524024586042208930373804693835704499465042872806139253143078975586419145530500260953330425212094571623277658784986349775951618322729674174119633562508477875205990344659934635426327526608640868609659065892711457534561422173609906542804717902812435050967506132697989883523862673182802964007387994506566676579007803383851441728844426755945349709379938188900766859194396906731655458748398667993126216981244851742276173798529451901971445546298816804063877264923630647364374332209710051707414401525455269100596026249544207595335417506505896329606563785518970626032047488570268858056852287411854392670134367496359668741944663434462925445203528890475830867836153312116466772865880089707316625226587095466564032980572734846713731473189691683505792629766520217649892645507437449326536546520338452088920533612610740431881975933197456340207299843598057038040298743146019218409377719868020170855208796116271006569556702793882620559140610577617701486825123263496907818702212450204014947928819474347775875749297310050132925458717752130947999203338156928135771503676889231992533275856117152732521237737796985540819526321073783889986801733987004836864322546555805268661804607963329030407188016029598902625405020180135592219544770119543600058253571995161279663349962918524750828628774448174483316828915356091482610315376929333451592206867430764016190981370083687842783791049338498466650209595792065068426373766884995157631367576147562356488752150742225492110063791972925325559380204639526360393478584788661948980304726650506890308666908185255296077222535316278929012466336089788860166284059039612886700453875908191747648818072033396034357739269593377656873814261879838304738603717005346772892424936781120463067600609413553326756842054336573662753892310130403581634753268826071283709478984816164239862523085739470260459791325331471067927599298940283875406777322819240998819078169660506975706342006364974970453892337030686238858779178084172561024772994747109602698671596393235876977694244626354171452095970268775013320218311058394793861454615837291304142361229693058611183380723357934440181085813962534936850392681053696423014982665770816274565687441511444126324537778008603324655918690514066435131688030548668437214670605786177704768598058497902401445367855657486858651866225434586310889762585672614736535632264631537472147964088730909754007575322770097721895547837083431644334322226204764267545050604310495263995051237256843449829094829266920573637763013509429813192707787013470525899422617770819376048615854742227250164993219920632787386731210952272240604583755216131189989088963071756327323430790750611973938489124392574731662376288281081769648131243041443128779766727715529696424383417772757577390621442554194329289413881507228761043516746579511009030357082546568630148370909855305493936281775354125057758986260318036377525149614200296233891101159554069870351703929581297575170675620535155722666455313950574957237796911276669977147897571365895958931573737943266986312506401487331092723711190999113814299622605027689926348819537109696053184409147332162582726136313401231767623836689131471846633055344745255305614321600150636620740384971837215123275518179406960378063120624794484119027932150058584008663717791261078776598280497583874234171002779323698650771483015845710236494040017063588811227830971056913358152543020215248879831720179686579888780295021847859784380565160861806591685772414333778412233575336947102656072164210005145651851804234027574147015117778102323682890813146595233889857551409617064809131090489877282842212368357199269336284229548850247645456237428098601259777307651192989132797462325311778903193298616515846763591997011450591398181750396645112238752673795335035012294346543344163385549523082427334413813732872783109702051096933743993841604643943440400615555762075552966380143921751115228881900418930176307049284438798135491454029438364902268922358304958378412748061643988952404259026879360634106930391206439284007710556681725591651028642351052295789071120864167069107912829240908901195166637557846245518178899692038330663070363127316180253287277001087755128112631302671410326868613296075461085387971441686872720237669177832704930624034122188047473357030853375653170887883154273548844826740372615654230409342777288324974669795324690963911994412038424296463692846184967061088848639224436249855848684121994840915251062625492512584194617635632821663371836418971918135978441988195195623151258705717088155374184944564268507435459574879302542603641402513267751728476565530347648820563403248014573891627189040950118985206759000407717467593395016988495750929841959006511593582739130381791430273647180247066367707040362697004458477291956602457204084095214520794529496511220513975018852700680438725314772992631885689138363271477249315829513028665036005820721227825377550884361794934238702163866557540158784277254933102971166883182434364548413085159862647227465976905519362897537521964437434248078638842576621387746445151030019961872228330557978373982205698907660350302549273019337300098002138469229580840559823849541887031268133014607039265131398926912163132793172516035708073117085913926297124998211294532800816761022706306081461688950446412507675569987927937840516730828295412294336481947972181028727802951499015701187860459051904710324665049243695107612896757809191529230102509586843004618914195662199195274042678975849539804311631304524010423952918655423110524796580313178497045118769432842895169330268627062454911108363306684075422482573772106949449751793206853830092847409786616129029817155121159288950186724706518326932944564649391888009687569784774306384905623146384826757539581734358219819785559529043586279269401915137916716806287909272621959355515792116445800781058754415544944771315286170977639309734249868538031941791624873399881533413494205673176000789679166652272536697223816684755648709777443471724825490033826460731099183635410839484701998206750264383503845745051335800421096695434819758921823467219470611207210247444448026200636131039051631010056464187133344990982360181495431246179512661380550973250388373094978063363958272171581520340970721513171042716708943120230025229258824006408398846756988243785661760799457974475635855984699399634200250050302291456037662109831482268029124650257910262035009504080286666501852628391847456087731005198993641749183234299660427612295061982414861791838355692804335200179767663522301707925174110476033765963950575071000855828902803031879576578036661047069778933668682253552879307755810974606090993950411589010047010912285270059289266413553209624572709840856646769958441824903992363089032589663393306470974333005729980013303730512670578727031974062573371882011850711268008331645196343585217562843590497504607277036500208792870974053278312398977886894835048235170411112213808854994946107054640590286140256546789295548938917670541325489324887529791761248862494116524411225380508209320641664310847918931253788265047674562284908997198798225564838579586262093287199565041723214550889460891029380741106326154905827288911528188923848084510492025062580875769537282740186998660596930873803640427072173079765303072115614224462316201766251486516740828017532787336610392365470652917265398934225147015161820452398048306212236892789215618959708725869369349332664353452021572888264409331201684712175466025944378154187060462587521126030700290255136739185460543531955370441913279905484571518211734672102676670642607053967845148670267965972399542219032501659414596882716284562111251879450286414102103063548844841888127328925611388426825653739866063191074823697994396416534483487435341539682743480416871265785520189594084571562760652576649110630082149280682341353851755978641005163408413248422741001098098943089720248063196941669073497519192210834609276316651599240546636646910106263416525041639322947471130985648871245869484133009093174741832918191598731037106861791634664414928697094266984819594733867880877241389749403449358264810189167102611820471805237567273079815299428777846501953728069771418694992802271290653214779290725265619761269335420966109043883249147511580965264660858432167546000308717314279554422542521450758229008431923332383968730503321222428883258354320030559374414523516123885981745572896772454355744600008224792490717341609414279825752296552452173985380211782977202545602989004329578590431163533656558941038178601280738540431191471245266092126304872101387470163628565031637955131266907837887549637457552033924967266630733400926918154335052778530772287356521421896564159254180201644267878697881165596512752174562664602196388397922000345542987759341018713138306576981100060469539311893250829212297790112879640736303780500780987619810686049355449360737463326508799551065477883416224900111515221425573823249572253466419111308082970416264539437890970945890392130241980642105333155022665338952884933036951448185427806179702742723590447549900590761769679856101532214309392857535809527145001551762790294839941847041425459322556108549425677578237600196930704105763057815915098523581847420536690183449581357407063553970055518717805749752424319007787881480222488345807093185122438654788465983092772176388251435533940135261236284159674369091035450250906155028914142855049284643256830569369166775971862394903576267540685384885852910314334271096985609674360380669359464384199224850115010732112906961449760230197984472455805435886192485965792913418348449879636364939296961715841611260361157723558382059229505356427475019031123189994058858776886443745266760598173861428174781705504301423845988679510186254523525623040997849206499164791569106398876890357566405897798589204113252001590177445076709334140213857504352559371164790913224477642212632008973398063588614329211563603268498333481879812341287718260149334912274004170164385035760283801903057103493870022200680499269952608038751166905067247517969216072609682883972965170905755557702427381066289602885306832018812747437808872368366509351550111831361367323440007719997415412034830837635532911825668649967811777016935354217784164133677190634804558588215680597825549588908860755000477359646444952642200336843846622481150236720394258113952941471110342627932008680526705715397486678880898936242984947186000256752613380015365391827062401131223868508777036827560157921186623165751711020778839899444915839781166370771307486773136003647339430824582147300143769105234433834528820205815316219074365884259904248153108462779153749182636576588919887717001620130417373385341596814028053003275811981452067970376608499354462813504489547395648607675761755570016641276686655311969678046121416511454210756482052922008255714004933155077518809409793995410101925177427207889445569870453051454095804830929461562741025679140315751718258446395798926945337420902079600370978523801556866657942707779248287561989464052887795933947557441576812815827407798466119120810807034452899662283242068757247609592822452096859676372657895563664174219186870296318987088935085626412436878435101563876270989221244948947399569871898070400152492672683422675019633724809028962896328308026310610133791983996816223719799751856461809593143473023888017588417110518748673433156738541511415607463853387435907546184473789695956190609848191817209510244013532855017527129743349904147035551785246496028169280418243646127705508437283899050107346497966594847421500979682306155479342390628929174295614455791834608534073556199972496115903613024916470798965060677586781775043210095958095419698239513638610792651487715325593949813160688476957527216142439456120957212451368202856070603884222170258655325369064659829015397633942715556177870678016324060336351373157832501741386867203077670602220553334946638904101142358739818898876482185535511335495090217793892811609958755055227918578698267005815818533230869309657231406981512362542580860914740168538051171919487250858359238525352219408327933510017918288737047281274750696619874798848319028972721550999191225886753621375729174257295807414395700559816191894399850123215138556521615332552527497615427854934221995761647606690468557205138692553069296096753985732358544057630164778247149322042230293017601150249849463046747188974712220539162329352939028361485290242669541688432150163921861071033255489757616456812397779892719861079403417970282189640359123615085067672104821461453884529213003579670696551766063230888265366644566606136635119392181653029809896316643577178251458607019470203933963827581187456729532603022357501745240230747352282431747241617423352143540289778595663506557869563789094025539469957408906374196978156474414632259052940928021710008323686767892548151901500508966635952017427096627161364799595078213280189026533363879354609333859800335480670702879169422448148695889353948578697352691250694081041598107677786194338354051913810792659001548079887094218318961913431816068306868221101428079394304095491914530304621666117706217265884287581623812220474680094891099748298746940812271871772748135127359135902660745987883100904862375577746958125308306474151205788106771349877551604320501832388718964472825055604392640487895905595682773253466016599656834162826219518625023308630025184392161280906708325216832548939090141241761040894033322658530654043143123711413500598545152654646255190247385590221683686914716849411658583316557228739480039079834172996594501922151662453864118592299254776187312729048855225165351822064646310415569408412592472693897227798134450316070865400118627849027437224323040612418635100540577566720533150658630746251063928474373719711811884222388550843452471626521792944639467941213646703353799992287517321671708650919298612002244259286719941511424015402103838284856784382232065176540418952718553596655967102382499045536418715450560926265032383748466916346803183262048756168359227429270213212566297945997219148480132706594859465260151033950786280230946105914846887245183998396951250494714354975686735473390623553776731196375878664702565012379602741649578383741270402832738674062026965563406887029779591891141599998421303887864717219012142880987924175838427715430937523444309836873961635464157060687708367088273068012983194287833352976760839691858411301329079661534801345886637743757111219103302923302229690770762286186735413657013712290206249257678618288652928300609206105706506249563340094772522648362811119802357083493281216240428220095706545907468296125655198153599246466157698458586229569471624821070184475535143357647072464642122852280497542517697732826819470195875603077116091708728787258712209507207620953666935395940017025914559237223545161388030064603281688394786787658327024150765426818407568988478593179470487822525541920964674197689332828384946160187581177673149478057690375606874524986812511897846501709447252244365726407864961553248059980582178852312928409245618778420897934928019947432079706227652758260847478022426356661926033691865791120826002458168326459651842399843156817477836875892104762034960061308829012862289779613055280794701093885244998947798877964660174032460386372903183955152948598174111599241450917764868662956440166598866006394030921523774236567252490312618247212766986557575992735862216904511345082133976708949908151162019318486654988396898319764565346158534785462527989729758796035400619331546261884824415784941666748914505800446708428184512306229784363386397624252219613728902449763894884522165581771756346792105923589038815607515975906624929629521426497313385248167454487649517264748227003148757098789361383306392870041129799806974350643759219231246711960511481152498648729772019085020565212831012890650803370490284642473480383725154597052929941266816381623479069626166387344196013875854543085311731058434340446212911913972215775361104967274872079928887850207796786840869703751893385244212034379386555133593163640214770493447280725667136064590116561981292399425253986306595297758153775684231777820718040751576483483480549671343572333312319522678399139410302485168414080944624842288361533946130018871670558683685492291959992088567289867614586404143047209066155837423055101498330762346742515823549938388402267665141173495687172628002840315401073661452511813979300470404624181222597060320317087124892268229953863005537205570271535967825287157846773485590173618061556917311418700105224783924179637034914162812125466932712799117605770694330780684631361736115655542079933603554426822427173547333287751354499096377963102632956345943801126584722775818944732577091388824849033203298411086288839147498013253184918422439842491710340094370943352019492616850456310120371415482624804459100476675786218132330161417727421215410057951398221882931626281256588163111198356379079518824128334043371023890793147749848271019220142921510439592442704982507619229417773180766918138963914669040731960943365684461821128698912860431628689498080972634305209384194953016264572453662162812868080476620867347547138969674156543926701945119231917589398800383324429939671056651764054996840209168154490652388130377187815005153432978630259477382653599690967629428246370616682190835370407776429373370648212525053820058511359503963898306952975227754971701329796609920305397947508846498089415484680673824605553620212181697111828091129828525881497876227857490221378855838193672766262633328003760348502514083122254271122532721397751087317685815883214022635971066695428424999739966113083094219709949180793247045592349279073465779443772638649435438952061337596432912251907552638013727239117607685814398586565423138999606775683546635075222719013637203032289660401595307072978681789196757663951715593642203234207725229734841088744632336561790600166769978846024743658958208508014155915430056136357566206871303100732507521250301098483036429673974291170006009203022406996114732044053878968143591235666108389942032030846211103484128923875908307842768755641386946762872988924931494149582730311097092635342256223828644966700782439455894171903827544108119499900202833349394483375954443717042451544832240596861312569195400614928477348416496026123987515842007378721858948662938975716922696509871864736170382348279642046679822502722913616319311999239166104053508144817540518220181345579535729465376527174098088461483855166505395741620735434871752760110319201002941286546676458030620304491544046046240439880755854472664754128852725130879522468152172366608417837956573645469722756185371431066352110212714133042143556958082433018524589466757992168708367277872704102843268521139556319282613562510352423183460325361978922644912454795632531796069359930883597961154730792965592537416393341859261260123745944572455391253592331888116259224878322379429406483432873800670448813764163105345811159868310752147471072024666489357343018308951509361294457605481106804748453074326516821115995160887625326022805512332140432827494564067315149082302875853895568859915624809346701186708191295201705461324298882336868416916487686074733720762034681613827601845200788013898726651005712354235599638901848164959691223034592342753283510609249173156593614766506479775837357425280493560443061665777812545344434866051058081745241389049821817171241831009677063683615676671734942964103352282670836098119486319944133182989756946999500667145099781714720457967525270562674641516814442176858554990402371520052352952058616489861612969423735425462537768248463913123994396859542499100588620408134596982412267134914831132805265979851672679179093387850651445534367964890212766591682798377260261483831934432294248365935581675748766415166329041538946414722430565392447973945344308016081900878108903047739460104584131855933719514269589525327900335144359559875386719604400499007483625149592203609607138599722937218884479551417795979231828011388651416847445720656943157332983218611442854080684767834833549703406900021530976795040124654110875249033204135590451888943469463018497973928916048453732867838836377854660357374420263353833139157945279317164305903514005135650956824728945377427345663914707929830439242782625001607503894693636599873027917862621591507643510935222745044584062112475081190574886362504192865693890727612625027592595383775059316789729573921206893699234556159684389034779138622258826352796920835150290669082495599500348414464119810520634005675315759657635955531963009728240524217697631222924329037256322980031853321548998005042785142676539931983405530609412323452774711007624315415559350459312672141274702877068280515917440450278821349543940564556455345193690826802057415035214511731379656831294977434457293792324611630611562354143420373153303305552739332179263706593573807815313669113302556359042814637559099396941717555404019453833224376999522102114123669598759949942536593746563289522168194036223672791296144155013406829401259443456732034944784026660909640733570069382685580030260262919146800894968167162220024139521469781789689670925729845327725220461423171211319164303309028459464261178394189189992794487534306812694009959626072560562679494590218782440186034013900409299627057746827226621093523497235193559984690870388854184875095110653676548837025402115198522086291295633715147360494989102489743582041205473366733737215616391639974193008648421480607368271928236188720186709461710956295940604188623071505968605531699422692450995625916381431668362658378241751919774550596317548848707774130426405733346616731802259984899220029538090135875989494471262828830792088141963509899175035351364445552075362334046289526557081110349144309885871903616879886657613154867221134316243841052859012883608622820530160480236023668027612873641675257547758757913409753301233279668849162076918603322873699674808043063290203939937071700963637024499144590195296431058802783956180227722915306237595400575927516149933991396961066014659260800341497691029842054272442902180099440556461895363479513954476348083167732641098281703120954785295262127173277704805615382300796120604242152067672735935022395406059873308787916600992926129234782662243980466155621256790255718771788646587424783129241414954631651367272797530588474587096175798091597096586926246983610986332952624063348851681069948705168195047348874768312745683303942132017047836313937996128296391652868330976293774330029625732518895515630920862884301436949752097162253550401766396727287062455447524255270459592843064948968695312647366943176497211190192209882991225633276887439498900319607559984175991917405356669304118613363438613001473501364775206149770483121185841505969811061956353818914016743128412288231109183333958859378803143460231246160530032976670900229047401376478854394460297800227268424831822689967573019016083277191011445200902176154512807907827808940137559015847050664024573697489515435942489445657445023663190759976784943547565126930643173930584418336527205459785898380301079191605117530107409235526912145578540741302399323408102340571294600225686999333176417506873805313915617982788617338321993319614002610152751488498452414713921634535930294024022375214323114684738851911336017221092248115694478502905330802402136431945347227996018255026745069550818707462016077821285392215607642102152983233215685464132730038365064862507125383745473317394302325317282206863931473225690705797421202279938151603375023935834458446620821673491841502915323903515227682693221135808808582410754231704385432868541836345616202203271131524667910473228702342298414169478130324517395186468830716826814709456401793858940472477564946601619782832400793902036192737652663274546501920205408541155385640420108660206633488904944715410935000246428505912378489630939082596060175916080631947452335274649417117377062212929412411416459404521585427914220917755836040655033509017888407316834329795038963398128011207544009010676067777581338408136827579446939670555915288360102291912901265296539270240904398193494845897711175913662155022740021445588036207549168091252976594748897932422882547946273339557690449622249547851923131032354480433665271876236893618619727269154493814873029794656691545978383974428464099189254163511865090652896382112653708947723225643560198585513104253227088609780985750508109962937879994336371112614711846906321205729475385221165198101003376427548541711031402175355344152675686899732689983024317198592696096280755308359301587174020539875963464759381827989469772507653470760242175251585620171326228834528191140967909857820032536390632876392779850661813601131653209997961807462441744013063237050250541499136759765497376999300118137652491553712552301740250181478306633240319028763870488601650290445421918825391896249987588952161840062233441245314911484112269202314729894091734491163720008759070104592394478295450727012453375423159181244906224222657542599983064056604385650860059747452248066921402162521460818282643543471448952527534907142055255697119898585989830563807092669428614555568575795645803014583455235723550573798267087561817998750368953445192906485485931056643569465548541492654513049596337088279466175621837641890817720145254260124614432482973891889543158683207050437993019804121396991055056639835672806859954620835460865833852205753130216200755701907773421018132833371908556773191867421801970277094422157742247436971135739795811760850750338087977475298342589748350173598994094255203228505642038937289268413678301626296594793663298578367417036883539138475319996328807293341323133719704330102530437044183118722095321955536390800879449057910726333694200876262336736227557263503162240277740483786886348303650960539332517314935964517602341367770403791985626748162637699927781511869740949429431757069710904969824313872318874732391228527120556972419942796727094956541607824451295286128814272437192157502034370738309705234557920616798252949805129243911439570957650456128435190809684454836781887328789444898409947159348345419053066386227015778880652039370705553392924323296449624033772439015335668359600203843241466763969079713940572494088865487690484670778492239855018374857637536847073419984720549760565781081099041835881665872807792214613981949191241987312553829900640777906478957098515055969467639522748665346724090422236635377505792795820003912869982052247770169452077310532019343161484803008470714968447422322216070961259891758035000445441502075729291874835458685256547969828946815641658563434339393217693368013050583396948933452426562263291170799838973187324252656991784128345288383397685009640675645150966248281776316115471364873681802165511470347732045555964101554292678864858517866597360119917019128498640654835093560101630484111206082508797598760488449660735049832757017275849976084292887931305087334094543533547872832777101032901737287471763759587882522418919854191674934450993782987987785464210633495839733818112864908549352553728631682040720545307039989640378202313434892842606105207029616270895049533296173156891795470059027047137850202231652700244934786922776570093934462843777938055807767534432845928546962783934747330300586804616544695009784651554471644787920849087952182476880855383667028976431070018285868935847728443940649128556821498382020850654522453048381642970108007802722472622499802315362884320676013131999308703115523928280393257549287109847408143016373200346561256720488247469721993612666248173489820474128854274658659898986217474853348078170571753862626183619002786894555978908060681694800442507454206179840281119398372437974766370743420204030111889029612120261211117564516173578542213697212617199951047894371155433361678841240727046976489060021994972418438381258615292013723604926287107410557623497118530416721055597496077417414508669174861950508647048183982332042027674193300327947602143520383912733483126960184003029313001943858340827022106365736906917064967033363370141752016057094973848824882765920499541904513173274957872007963634047337552589802087172263852319603460331201366394045279660648165872969112196922726378881114751093860735672418163471167569234756273072038136396248687528122163195411029939526114402260200442381040463419961728982505560456729437701730170533680123963220162229879448940483761705648800475761674857329101219435068823876383624085455897941061499035043563751873806578291129077069873565804116999126151747398823245411939506789410655530942704324176035007617081507845561303722037898887924224492876095639498590877353596941564654248210967183177027513414949382590992654051218650770510751847869578526787836376783516673264229864878457696960210548124065406505975022709336396648465083198009585097237772574161927042749384310032618993252198135245312010361131762871356833096152238925785297080182831160694116316480543529287758169419693078378044469571930488203148859069113680057397136772245711347549103475900212742404143175912177905267094680830889124355208507728198221924683563672762752400775784019271993356966554006916404424189885083359761343463868659918278851212183641686720364339952690516836189329059063921619925211792852633090273632697499828138166954310421673312452535248394703943500911313500250183744858807002031562393697993384757406699304537026558962470321572468976764276149613239770385912734169499981837097019731976735049741972822960409674964739527166578573351762998335615555962249646604831492432753283242032947901430376777908201964645194222838561728801382763348910496878000884182007667446578332753626493015500823424862958842082317479567292856615759748088340997440611034093743430702227191253315837193032263280851356947110835996536022922608592444427209564120848787631369311493402653916967418071599128546459499590956730497185182761221108411049575432763647816738540749683307915197552762032167065567569330682508022288723845503074920109161054666428652785186685508313132317471582233348554651603132753037073933016074578439646267244730254459710516109423461547980126213770030963652191742470929680002940123731851397437451140677612238811606368367834679125683850486178072813144553016216629593595864130174730052265306974668441408455757815038719767340962750023192254108114730201875939243868087598698267977238438648371998965529063524386865528330810034527647587078084541858497469355083932686892668032190232404769522696438282166085192460044042311479323281239705856941617508579397085407906076476934101787841232536859141817671030983991978297317882745742332093434621620763953884923629120536422032455478703068792286517426483488248526140872582179747402140557474007337538255390226145319418471727198492038009130037281913974043044546219288911804821014950190219599847835256430018714619844027156545756165095813048586620974584007811662605104154661621702589054870643009650911831117627100901351466731861571857558101500826979078269710163452258848739287765140859634474303267434634378366390849116137175773760436616804074724396806128906791632975129985069973526594984883886773680255430143189818292825399907188115339067021294393143650609032748201942231820770380679857531540260137605608843118148362548642452929151933419012153889904832073948547193629929461923882636383668984880028395942017943920733497212300235067562458878066132780890783203699812364716959911393732238832358670019568608914688719086007747281093889066443962047931696512216298873664492747692313209078838794613156548842357042126300432877180537819374130828650700244480728979639581768297885991801573207703269892044201941352961452204824441628951533754867308595520886316412044415446958817416553457383902830072856356727425110089194631954752932153482948064015671047654718933333094448482827438246717688492170004479043475573763173562487148994010126465714791833622556001346710632390237959357788585593626862593955594051673467339997362641155126435662757182177949333870158190316076401505391315678571729923447175854153388001985828080360926568107024308266159765372437556172722815568073780121239004728070143233348797434654673027960135568064119763524261161398352300392619926413632458145708493509875370605435235839636127506346876964015283990716553362397543628828469797564381423188660396897234519411605715386122825783102217660948542973345528638372387270385330254166097195476082282770004492793934549813741704654518919797463364205484519843524287989684960527083501987217640955136310857082281653254585088457561381073457490270440842665344461664384032580035935563881762491672783815693705125721087563358084316915422176532655831720719910151234557852787525575861248211494086119128323289973024030404062200733455379063584986381039491347583189711886666656010662206738020608087736782859452787212815052001795156801404481408694883100798774320407596927031693389502669184112065031897318826714694766380638352277928230863880544142848914448862372592992159788702824107106813908587540287548145791391582975226246554998159646287128733650353815368289309605853714988473419383408776234548788450190456244836407580914954496636465268127173414537641945373252881353580443037478521614378234544183082707513861505047189078050724812833175626337073969641327096025900201480535369340271389427108050471670867688883613108428121426823912604572488120119111447649101007991051381838885305529804351808012667269124301131011429607726032735740894871553960664171060777825985797476867514211451290179815748490655585494206918738125261263519689789412526318746287950027400588793834885794755402448460941489972931900288148618831975506677122418861423096541417195760705360103762953254368216661208359699112217789251158614666556176146151553919238178239021772506395548255037405590737339289376797876290941397202345756191102782394275533644729552169916239153041520798854609553621236688546661543384926257005407763128585386279795150477200520611388836430133176894333922151932679045009340068925504844532909121147645454886524053185194984180799609910514028756975044262974948968393528565862090578734863336072864102819826790683513932756077213753162740538115507295078589715852865972081051879915496776576398667553968729133474298224488921807233437390469617128317512578145183492970254939807986326767101145301855954772740683125023167902234794599158754336988347306431552794480926722815389844059360127464934409254987877820734918127842920173079432381720504065466652603722404659273956677563478390287338882457552363824139932929979824454820847704271584280800032440986581335121375562028490222533067378394728291555820782739777035531349768056440623750211380415989271203820630837296935930982634661597244515123509410387763985854884981745222379660581686891479691459271515007781549405576683124849209882000635311285852002165386711728047359052114968069289752657239281034489670836574531390082343091374836717346693845915556942065651602825511728286060802495885802471053967320512121885453157270459033312275300262705806422540802357807981313715295843972366928850036153696427946818189819270892868445449981048636808809127675145695424764627849286614565467158518434954153358752423923566876277227896687117875665989595886360838802514559285685206808411192276992421278561577646186104732145915253871550156330633942734888518761309757783185422734356925121618079563487856266131940971660085627051017301530402465906040348406026298799833031537919690825379314415063025476526581599689958958700198971162805584747559338687125973320337739245701099183997915821235951273233018547111019126378257966837184265488582382565783447956670559579230710524339869655259489854119696017317637745875426787462959350168791572968049954670852620278833414670241094231948092188681633882910462219036213279487789012037494407206805001086598855891711797385819674328776998765326173298930825503835456228513971781218066030013679820778929682574604379332524728275639528723584387390553716970842498175118710188603465199687589612758460117965967812967934260428202746169358473403232150129796682604807742217063761782445227710305722208580000066335983018417951865641382420144722957962520992450154709557249716749783375794618980312167673176651769804717813640598216451094228599200996120929593846581376675487145486488763252667366111399915913791914934438258765907376534224983888525117282219699240569095705917432951731711846553859617074069844681444347076602646047307898478114435357143891658637834180406645098304554715687762140342350100938090678459375988141652447081580360415245104895817358493380595436603200503269120583810085152457520423521373248971580556757518725830959745164223958065489902595789602158607943110067068262169749318346970108242016893403527499917528066232585495618583044314565299527985233411492222385433345117673692405880907750500803799128826679273925584065175537300028286365274416531790551957722817549874740420114211610434882544643634837660087915515109905822235564906679481378395664650929834992311127165833038469968767466360958526907207208194143594812870733538703526116085791356485081673884166860870260454970700341023987469628640088902821950891507362102518162272861712972907963988947904721702718877744796464940878136648245844375074295568702964544581733372739417208894652683941353024878071938874698670509233503560006693191352950941446410699628075209710294359368662726639498548870757270782813459482205205857540779317432083895967545761492463755808081518538216290756773731886053072157931092284081243931525789952165399620243864600784261445896107792047505262748713553020685547684665041164665138751633389915325645573726175915974827552367910417252474789098637467899860371840993709325984595205718647819131128345364047986241828519215464228468546549591387176815183814726125564694436986910049582414285000353177724138354875828498792554072707549988032648535310441254286428578109579479117456383251441733708180885533283369981371436162358925688088778544848908392236222847855006080900168386736929675193280686719252401123525161529416290622314176348070291096376029180914966640311076054483056544999796299502369814595791504833234140517685590914576644064929791490471562235751611407317398110729093492613403985190637951975130747372818655047532461320193783193021394585533255377162757334829586937259398820099616107055386995508787242704270649611806306060164953432191831043491770507307608775028110961264100755599652441541552684477603415674433116567588817597706553931844579496379621826474001229052326978386616955050783652011801164171447997928155479851394027076184974550450127645742780773997487476994915807330603570453023791027396719374476522703236452004479084634795531164257177740806588439713387251923951069013981247922879919574399982673552634071509949895732214199865545355409097595164698198055324330583102337701886706187564177764477613138386027620747875928527952926458678139829433865255903001929946740015007729438775561863411299403796493658724968275407100580122500144905046237357857270160151245094677280692953943098134355301245240946361898202948040692342601723462086074538608124763726825810811952343081817686164892723040462935847719160340385402407713671720646772340334644083878105223745982365221872098085724434437422574010765543253293430261793334079481215266948893209071711270012984472003197275621189955215440432816793520179497129318219089231296926769938041936464274412315530091418599580093188871954254186034155064743278526384297808513835995903869775198393422229399615791566201339790325649251135572559402336778877425389328172767388314677878727689143109485295084873935334782361490890327996497836177727843982498478688978210620609915085785828085147185663615691114833598372805453847415170678633756222285700271563722868322730747450140247729889240583803111295846066335025983970621200601971945943134761150416337413041657484171869551923945643492680349810872831698445801288183626494663664078695589599108497625493112404912820808667912010548067754256380135516820519100877958322305804849582041138584644290767248633161735596216263219736500111577227136008087904091941181404677760852933425996053876892667973642911676468253969022582504717363145493476163436836515032716396744727722925997829090588352034953639071666474634604812633631760967321404925463571834778537409744560799241413005356065314124407354879047507916244865813674462061440813949901472801353394663337347062482371812801583506131425917353743530222262139946229291732898735180255264882823338316174933304163901671148865665974988987755495431434899007490668209627485307216262987939653753931567628745336074703230261675894430569339278811391417592584786088846092492122793583910659483704109725097941023835229148386028165142494844988976089668135654916743676524050520112321966968270013095860798147360528507924889215900922838978626876874425884752187817004190821022935278229464150798015633228164272624387882749446020075989820983691232455914179145491065312976535960826636276633636918074400366925364893888005420707566815815807478207241128159967358406679434786172450479715438973921296372124978186581097157364110388832050628135013379569244601778435271803258207498252891082880560183348537308834964942684897614250775706722535399300796293636122718812037418505906368828254320138860558557853649983877897894875743770948588855936691082957090896587301146459029564663836511101148865738826917278293972479212375933105137327117662474577215533220188764103508189835970933822027426317885236026471399807615838888778646403974405402120585045267175759277593575621929237896044795306034440663582965557030918546085680450446300032573399268760003582330228348217526062697919998680983929335440198919792506147233856968229458792602256762843909061216981565735971573696627120304333561546538338047167719386024390971335164210870460887894159717187270241024618918468645521329256823685758855593836845809607913480045295012673370466766152673517508653198257847615910593631937902168709123990660263138672406123614983690592811695907555216037531819472255695981824395319680193760576022721897585208265036949173559392106635179375356594575756588852635851849593423498535261537585349354842017896177595276582450175752556049888536701347765755687761151290049464840488765097660137601928071431793425463521607765351888522311039292590816709215129584025850782935402462957252523290907043516079934614014974431411581285668741016020356758490628298040591884010137066840958440048892029253639133716863532446158324238873811689617872198003965461288629841677725327712995387053882236007802975568593745265586429213560071852184244889936359573524779702455333529538302021051324073392546841663413793546794998428104913118676564044751728566683428675079673006538673302361827398411889948141701699011664737208909610924523201200332782210153495307000870516962705039107810336337259557734914296602756406177384096609850733304000033010888779523351743801923963450698802948952384970577785834840613287070572563493742082411756861998602413139089761527026717285464179856331063086438558146371895947287590705434753058627041253294448464051090211355705303565945203668042868012433990206862132904449058588869319881491677005262467570144704987303722359780743758295740812069856465372403554281109409877417701486112089890568268093607805520577262680225109811134310044929649611070571123409951119953548196764542383869551661821653858380965832646484853377002693351684376919222078249969560556724343742162539505515164454405426282313879615584060101624777684839399542440903545556497442151117439477852348071073349670643506976047812288514837874611959134854294131192093184849008913994131097286343026793830161249282724756634796876678918161333756912738158051301468126075124370362157382544241143013078682955141719321301047079019895405253119583842162820772436658393197323950547619790703949810748443609476544775446788343223071619827220151402853729372094392819395769270416965389157577796719466826261032451387777578173054342343247860664096215138976073668907570942217313449774713876098827564699724468292772853503586217537318155958373769962625914227542238872672521745016036598537204026046398838319955484373471682238401984433708876321033679231146483260842691562147937932204192316409321262785929113292644924267129005331229181904281358448864436738709839291417017033371731145360891045445799978052609218348655175670250514466593952272118080592654635787712558982637682791427365239499469745326362556128912376806650136484442426843642752638154482490122697962111890277368734859203231653300416810471622042707642116800891910145245177327010161687113594331696857405170027143854156190660659063638275435046594293677022883085686508825261090678735954757275436809970465676664194995125513027398243506424806771065197894533213310486829385697136764560107072537518496760647617595989167157320256152804324657619625799607919613784423224427367594922434873236257954914750232184357570999117475413190799266590064351138736883610997936221939070185901098236768963931587517166739397042092319502626123505495314043528989128434247678721063928236568967667324722512919648969216177265577278741512376691576930454386700376672685965549812994939821308923211273880362454841095638992967622768570628879122894373868646763492845039003882770185988999689221776580943902114316189144522652291172413579775094223238038622020217752584420136201577620301379049156004713575478661071554315206739525280796773590138520083526400486611145892242325035061705663813122136377106658546300078839795645560901916866296889744331367842383502058414440694027466422055606242644380022417889747492812397409421985273768296351771766494271972707140397524653511387393284113705427697876943929725238395297593856716393337742926844760047716848011589581379130524671396954634269382570357495627362348781253554339455222448784876726247174990216256007552836660847211604593333465676773410704249351034708946132516241017641432159768629207349883623099385642601333874212707819785530634207463583997398546842085103569115175465113797913111785429243479644691314239003846449955974922287249437541160866408734663770498575514552724037212440783577615842624789081696830499193713149062791908664428361519337507650108985946393197709053998625181973618920178611906780685347814336192079100308407768244589288487871928600242885932884399837827012512513182287138028300111229088219521334506417444905217027859856601743171431121950239154775025540391656276260549525435564839033823311257001756373079767011024550669312667566114679841590587141194803948039845077676597057686311734372132263361077256545437520823528606782045054852678507475098899005583041146819302950481016752968145620159744369792123882240094852888917680039932050877034559448944032619349663596655291027835994490245176318583739875580361333451233563364082140406457411677937560950006083426550595405460419527705741521347117808424323813802032992931455707710789865440458882540970474127941752361823719486838381863362120113626190523841292055211956499483334559701780436260840945873009443030364672868830916821703994647383100441288760728389446454877854674669117881869881894746185978886730716446491152519323656596350768436084546791110197927990009943991390792416943377024973194028228021688150510734841622488079012717388541163239905577678607777355222132864455716640161819862245003510799399842394237965716598663618478363057901184397226751622327181657074350639553038633674436922241952405295431286559073435670400550007693644091180707512845637860042454917225034347527234223396689970701184835815798381421183899920833049555735570864089610287304362682043175914965195226572795664736031543530862448562709385492676257684364308909510158825919674414384682385028684528572852115389433889165551049570233158149996152956759362056349171150082121076535108327600982845445299042067803736312227718438041741771717326461866302157710160399016247244897990833228509772930594110897645270691593498894005180258138775900642474250022075926821433500880615469051848408550584686700404172121069844933526704540222067228040938779424474283647964620929948241753487518664897764511366882693758862039253106755772131670425950381733470357911048856606117481687699022728535094008208624889140238867592376002582589222104141944076306963594559249399085529881263650963547026632800324583078019251422792001457925080174953053933323753485630646454267046223023271467538578827851792407810578211547096651709381276700608616014008827992423791672714543628735899195839519895396612525722962543128079853981813115103746789772958955333362599011256728389995142127025806708580398391083219574056149019168639822626725970392836133130626505561472119781739440149897800377211983186342649563964625294505762645868229307538291896341488922758017522156181532960865851419138130148874826798764215450288133158766024124593336853809716231289819000527832103549103596729072569930011188890955169172437988581554956065939844008745452758105255977164337534898812361709544562646250394250784384424277190935709111386286165489749148897890284633504277995329034823314737554613478147399868660406038470414937817244193369165010140516880446370542465152128422998848231131850506909784047808024583734056500962204528399178707680805198225380930326580227441931963715997559274806374055341212508645163282280515960202165133102601282938001885886919806419303491847564287660854057239454135569319655108811621386859208794283417046576974485642394443589002116912200071826750961094727999598783604990345509506813077750525479213723492710512186461810452129562943918552351835242797491967813625684222268169272448868856927549186223119284447017081767150366950807656997194649893643577963141053466104888677021720775138859806936874987145991713755909773325726360796593954363299968851280837268813650447064612621123913871013193287942529140841576337346863762994109499031506105822771192070106347931396864074449418779790991188553276124562585729346534954236987778225447590074860017091995204789188708535659989497285896067180441109481734454210592267314081599401221333277256302536581554780096071839550917197046063445892382838683196164197974039707370057685379520703669331575891941733876978358588966074836268338533691770929548992999190986094405005823661567933050075733450327256035505256702480277432393681036462604545493607359872116343492463331675658100912300371169013955319923251301190578862474710165766232663867345260930222990945029029520411761932838563361359364110915812364620862529375241751229224639609172327817480723988018452476561081339638751971761389949084228764134197438725904247433384782842208270633843597879956184646082560580706145301266204251835196003808644713683464858179891984007437552078155433987840186255114088773151619245450507253175910553730018452086771695389219608813732318067005513532114565328638511129709927562320702957601825630731609750530558959986043945301203159093572223501221533782543875995661034071973661919423216034047211598322733352398056217900731101280980701152223532868844831420752191760313816146729303214606105345599361188977781800303168583836137529801716301612998461339418692769890585895594458514789658155045325329838818873363999843912954506138983661880190652386748018545113528870017200942293682885569629612894926454871302407294177914891078589574867632972960291403856246070019416778079856975696539843703252457299388022066799773247291724835021195966195556060957436283775809227076987944081025668872932745953446431670676828456628649000273869272830448163960268260906016900268722692012005067768518075948504740732802879742425625812321090379340225003692239427174210051639851186219148920271357043406308734246495399039358522230396037160508195290592989894535091591737696551502531118570136051966034804666864983164631835507973814048012828260082790831683867155660875837138193724870141521801276420883149564542831120644599223425902733067529888890961278434307019311392196097877951049084909631553196427411493837668890288531134275117283829684999807483553186227260950698249317166550288854368469703901677082594428280715027583276443294628741561005401980361790034288500813490710900654269001815225399992726274380428874705104918662656962307299001431867998122298654753829129489433782889429137126855963990932690688622631317862144769376633782298524891628199500041760510261510493724592840956940893601116266140530032646199941962738419655131843459970245929277123809967216727767036153836129258874270425335848855473368246286159181429567075932166260760806532075431266374270762219083914588541647427665267563288250179279363196580245206031224064687043230406783748139799160459566533687727189890100834622362081043602726043913461815676110155069071125052337125375266904803121991448988289727499908709271326936885746014236678656348275283003658995941340312498233504802708770300471340932951376351271674106513154480788840061806565505477120847118685687777569511971952764190607497469831970567169467813420120575880366204065413061357632564933335964506459598578592322995897418967077619655312370772967524497827666604810524050602611804648411836337040537769488735481447806240455177499842922635790425277509444958463149010502571680471817187147055506748487103691037244503085352731455460045689298377977743840173942098074070312718372341271353076987918760604932593127817406031350436253681013447366600565833673889018703633105825494443809600453752374547759086429567603961971852742303900393276249194205467058987656727107939896575843734088317402231348250825948029769398751762353581464771784276936018455497358104194580927804349959864871417863998505626721927157713725879989435722159665656486303185562738803223509703746835711469628717861077209376004826556182005350007414180127857516145339702720673931127016689496996997543703822413537997764356882104644140902313360192292855553813781748292586314878691661017010106898515401262926357851755258979635082803099807996223955189099809770702717549405660954202842345756286631656562776001315428636519338497913294658531943244690711042908916240475701601478790810161821070094353276448574365912552226350932851989448909902572021792870090652448016704399649460737586109465319910961442567761235729107793067022544201550690229146471343738435900581791635730397638531701725268921642953913559771350011923767385183228620554369405541713743129152812286315068398288302885509783669308784557179634178428708469237805549062082723340008731252983674754551499624191697862356252820513493558062260026915271690394836861140748572367388331657036039531043535415821276940209021329838413271606983608535893819541347068476950543725071146096190485697317013364500818317892359986266480825734645853440284150202714711159890941639334667018758879568313057141486156202148932110350653994413672293070055450381416600257905965742106650495795851483005756985305369664577593462923203431087966738673970868893797724015585148948234061874643676693178440688214664057212099249339337571568510421660477436004293296207544431721317252846938832663741694785001372729843489898282592177877692312194394650257447369874134546764170399264284773064446752644335102516974497667816565212728069136931957975588636758965203108263697016747797347312429929820712886628817279882540129288901103873673279888245557597249295693938201781813091969838222224827981539143580753181929939804384407575998564088015964878567948090273595280276809361982226995298151797097217831756494458771224422387177856704684482346945579310493202177713504293337996605467673164146382701635154253635199586221374072823109215548544132684013111448880818703202059861598720895972566508195796341714729244707533248102970791573735109964802839824415747367170265486151988182469927880761305299895059061297346744959632237988416819450634165153948731100062991263727653653471032915128054928784162154652990062391957474110082175431797894344156142630988476497223131322526208967438018476502628903867069677235552804100922365379501673325042149981843751353084067966846304125130039608437744471714304677463754408759995875960942471962442029510360942038528293005899521761158774279028522523965266713949351113711721292961004293674764419463366485596825729891771386421556165462274334787279396684161331366535226801911571007041476572440297101410864376111315281108004544454834481764999641279394614060599669098744041165931109894443295094675531831281913743862262010146680340168979071042834640335895880121922272875032601400559320518796084649839885585921420139865708077491188697758880987013394065444600146274984332664355899710914944229737000477458783727224559212002026132949750496765628748254910871937503164535016418738624311986113514556014016975137807091273678567991931595787234735722894406408116273266497442560999821686947733073702167290985129871076201763394236270691735060158088775575831076516759471128427716023452682861719617394107574791705743195074572328601373193113326329261398325507672447041150702517471187152572167520775967087416444016023654202407503835310675931441403929948908117154266701428459765781590188532970846543601300572019688726663060539315879446959632283104978636578163018035692216947062613963684572152252810984045354253203196527256050133304882907052248029779082836549880451502102022958452525050899476499095837350671613475577146498961814968166210088480380245541176720485639530913955239116525112454715905894123189831537521618843785480648096941619184807023584236490146075478915498868499547770196986393670667986633518548002246148915128934126926361933132377752430339585453542545033910052359628875035917025832049508688799247751588202141260350995460352315483152561159011530103071709662203116744796432829375977717843881538045058789824473680135947498412961548380374154495935494369948206577225553730844766525838340913041725459677378336534645258606418401451050698564882846155104947008920662455709856988295270080244006874208227087724670314009738621385310879232669524455824860402737249213059578838499690972330366842194931611670346814595595732211782845313116228654178590834888450595878963301304659716562185970613586724159843374661545584800722636882341535519652802596941575040340366306450721110064178115268617718537492282190998539801918310162836356818257856525537376023836706775159297766798144936931940631929648120614160216509966641282087490127696489205985789786287566463219533731970629905756356571206711065161514720566418911874861860130187600113184348016556890010105325889576377952828759965368678926637610858746742961927217471415958189848319698939779042982494140826508605203273080313172207489946140649000848058455124849828264601380152162989692950196328165794285444467090652152837025587867041696626071833572398251778721845019346360002703863353726131144102754267795841163330470621586789348606875408855460062874188421389502730178946753815727249905798559511423167053971005807641358144222486283667571206759672314999333125353923304281973763996605868870797833319293030963536439227818493384857944747235377536755397776980542766535840225750921546641383839826455614754790387479586601607958660729748154316329899109698564101192814915177047561195500168277464214311417684231217870657202820836312159445508210099772506523128867508562855018011203067946108520608642995843602721689182644159056647487680259436474790828439284734020274540186525923003189924994212061759839197187917920828360165105642092250755667753917662905381830568442930053038283353066442996229860927503767859218441294564092378465493211566567081754363462214827966637358406617589433077542617125892167213753109028298989923750313641800702256992693584824173260451190358866785288448531096907834374780714953326489124827746113063693786842762809115546638585415648431472765670901204560545989634870167200758830539303137686317089960701075075642432929502244431031248661045543457725864905768353943080409419135841921441477497075964569439108156349384765162530083431928809264224102097490020723131553053991295466180222286854943445443058985809794043959891050213925206460667611888742326399505786057624895718713820635869610785852431603157675790655303859525159972945883040841113230985141593698622269942769415792414132911118944988044873668497916377860744210843362706330300332781071296464718003403732671772280022063186268893635053308559408295202294013269896542541264276920246326285373827816342156514785834311911045433095272250047269727048234951012501953754103003026134070801970189096526652754580508786139436846642133384439210810783507073077735557664236982669729683929124530393083215930373949338216286417678021232399951573477503791997964919447386274634548905312331100363375983204752323829943999899589148376830004213816765012592141409050301782010773970388661401366991134301816977780179369918312474413568120930031049368404028671184418705252844728552234032185711484485447357094077866743377507036384241851852815301676145253833444179444811594668709362605331854010784674513499544921902065389006339619150567462864102230158642640593514169925541657564112709940743208920104044673029178886097183389981606389492216203311649247739963348830067388042184364332690975958223226260829105138476677724556834816495394110297970013810470616235608446244684206272218098788208694520808968024951485225152434028200761115966146133265864843365425293614280165353265641656765554652215387460369555864008740736159748249872704955629906889621791438722399790692633830453519713913246700672755527345300002778990484754124020506869344633858918109064688862350285757609018337183429823702818788855967929013909510380444947579232541672885112300467604600867124572151726656754529009914209460468201163878582416207642386091802925530120457917170314519224016471323163462768441867372161190867814691080580620049988975988721853077264088199122523606903816067799316654190334560193020567162257154980524362055453383157144012480358240053672819944882520048908898509522091721951242881756272884931494175456574868848751449089392055514746880311550254307259793625328361173381585173164408551265634089371452669225241909538850767131341433273670566138945446263514602992405626012055326814714923074650111739206201007421750255362152710148314869479979138737507442677187523914491360384457557897350321436355430341419693012602271837559343712212065086496037135800316677360812720258623428686214715863984692217974885856967725585070754507159477200111435796958428360413704127791349361653089002627589904629900870330754216508417864567243984264034791020701817040775360746518403573913203354483621696830716311471532892106325405407593923777492395827383732009488077370587664347712272324088355442136329112184081263704056022889650814685398255016976578835342874801722291704322029851239056456344671932441537746810338882749954275959357191994077785037263806801130068833271965281736311680721244035900043523617067944574696963135622001650401128876629379270964534238057876872287146922832998385436110490231421422083204681584199317526392293297133440817028171198303739365332432875537355859737440669758470992236712855470806352176184706834407572124848257832717083090207453757253287339297697348464046755801233276634509806583427657563333885416453983076909752129664431758500216921739343148625827366303732755973555322300062559162908140182990896809997104955800391357934579116997689383844166681813189245915716473901847326475749372422490500096735117659344058730377928965219815800625177846470813451608507228543435084023958813982266110207878983360887832073811330696181296744658973098258881226040923647058222402430777949025934709785016973435511924302072795730016892074070215680299944015764014419812230075362101832656393225199614697437928164151585243759602926517021713755217417992619757456372306951196280972235446284282735923350654821801120627303691211011894363765408663513124000328390832236387036936238829704638355342379332248626917010265137932195830318957983216305458219632542477858547359098252043466080594748991315455058090072366788710988937628936040179416343267032519987274115627659460495261163750197221834763614244607496446127654196491254433590220560762438808773080340293687713567839517033826215300542708168881398540614626235754835870815325993482858195151405572980801355147219738553223841719345818938084819396138874948219864502768763767550840804791619750314902817678351161165995834796260934018178006322267802009120454865409386457872718382120757178635387887740033283133091617350143330208694154419509496659017592906937707021228908814549302060768934762976003570887460315871907018267412639030958331357349871943793172740944137006650270574545323305283457523284759850766067185808583262747194523932429797431374457138798218521763568442869453774939383767048682557863910586360330045647971849640159289084910382670193876992580533113566664786150921919385907404917326467085985442615156137572264808445547708764598426504945384685767359917321182075178221832165563918285447151435692850172875863599188592318365122687304289591496484945369240056176604364468665977384813829799823685702313167131246655619667102320256584368429917431341725583414586496604463904061262901688080100681517141252346451361792504224281746295389098887414503233869353455926088821564394219215542612006801589322655388443659936725693049572251913892785412796339304152495877161799916680609874568714632048431114405301651763564103756862531824733798307284243019838427256041241379555803855186156352339176474129627279957635231239704517001718159399291839881875910713590070445864629941634878701357650857406100187285227780977678362686799571971296564332333628419345109539903105459710218252992027048257179423742467010242050225517400260824637129794396703960297230527366456298924611190048480100830876921170498351729576126988518129751856413787979620551033409831144580771024302723945996964485944330902968727663039399513346813512275041786465010956514013237367794017966364619741397240502452333162701431362565565014589260374988193112537223159796365071320205230471317579370132966939749637481371018049484911913170978708827562604445170739830928012867050762282044091748802573016892165865281692850907742507245217978520452196165880653936478902752043018028552332102121327527412302639842823648891809427663445630093333376324920946296868924771154244157022761825661261160895523168450566872980598972908217616336137439006914259547212907973602937416423002815749913482460340973152457849584072302559128104994135345581517053770479805668817626052363711395343311314414471662141540366047826065207021188909770838100036362449051406343129058435888157400386823348286808188646673358491861015013688481736162469802289259220239606839637016009873991356608337242353047317197950177426279269996413693878960695123032796374284299883877076031479689314270960660630225341766917518947499601428285794283405967000319694079166097806536628544880715583394215374653534074859608975617074512073094532526360467076995800156618288254402320285746849261624209623534241928981835306935852183399583926517070592361358695323528125079150055188805213433320159045286734606995793301002359855833624219288476413051204330050902726829719414747562805185187213245329372258609548017400076870843435388415079851548816045360030131716162589463366165270559523834792117660747410562549976523592892313106870998103111562557617852432054584894267588210252047659375128266786372134284767129363673839291040469251806073329458149039383912258941094817235837999964990744074075883340753029857851895279439248696936051992822019155411726660744281008430409822181909822119397089662414240081768882646834817715577133301669656780113967486899089527951351433109432368791661487094142289522725404196602574114111361936187655758647738178915555355164850137182478882683741183196880451278003955836516910053760971599291533841896429789009168962848021184817898085830252529488812838875098353289324245062930731846379872932330687954427556969127410861734582121182221437524331080730006497583762989028776832680521425289411873075929508794277541319916584491349370524989246633779316588868340894626192241000046843511663020388743966500035230144642195070431777026109464011152967977671195412498868084537353674854393625705651187098798255937853754495023915146180940018984207697128656302697973987859500530258301667206054787933738196646901329173224239735505970191849073373242908076975212068148161235320832101943962008908960593869577864970559029353225857811396902130750279050565561272042436334491605758458406736515664842752327468222266755764676478297498100179116824306769120238779419359277343691076707171672965867341021883000027129612986703935390029768523502752658107904037515021105171549905210104989906816160626371295184561631144770793559901420982086076331835029351791434634357709685327646172328462231152443412494067450233233474828426939659363434608603269180995273468743095431829047289782943532118848143551816985976199280803638784551362039859427597996321289773355194921192887616455872580988422972965325179346693429307861128870457556402950212050428163939555958356902573270868271231246332101483460773982950455844955932258236286233788856903114056523664179953303275547657552026690775372666780842959417093567724795477282383487608081692951277530058262776980247544715070877378291754114921038731980597392043076126737794925871886450561354132472622441675900197811034157173971336699611044779638245850242343453827377804031157706574423597460284923106182376923662949211239637065794681706136196209071886212129735434500204489526130346119561106751160128677899165186026290544737862780660415356161181780193357892226429777812897324107591883617643380690291384972384251195373809239493362852742230241853345805263883913254332247450580963930956020702748012814199342003044828087419832596191679940269471304685217118615418217574870742783420706048914510768055153952565993136244010282906353532790341494277297397786372308035545715699808315176740879430145484343145357611908714435855019672583654114395602443607703585019969692082792816704467246623365751586479231794536889730862332711533987799186098750690534515721438777056358779978470275661552548954434133914267363957556119003175858818404529096809207852873057431175147134414469616553710381701157158958047288154243382580418752194558559671200623126327238588151838524976516619549244552600354735043319729869977770776247442905149525735403549396498333134457418683701331936547433825304101058615697016014517095416249573170392613233587451053499133814905213257280966319562065561989744824063349536022882006130829651158302027676482493522549524360657235467890003709761342666098737967844885305648600870515342046276465068336548475796119123645239458858756562799424329956657393407459258843255782555675901428641975918065590985857366047710163147591550588344780840896293489539781260343571184082897086831274794157426425840993310434817775488485592418705182767554107520652554808691103814748434272703063772458452360071810082722495544123725149914483841583754952696130371487038830834868144446926743904361097068611787056482752188515717590972791981617453693319191008679558047942686897699161199074545808826222564290205534326713113131096228289312369677007860664570609706524171168618569650479687344503525796941348141584469856787929776395137900775385927892446499021428907383045497898200883848700709408716189448105567124092901552577918615163658286713396385928286729609376727912656145228517969411031167846526716111145260479118095221924901725042606890521359292565700971891389182141557660826194866723964048799714946548344665994327078795803685377865666845620212745746993531006880579004684963680575784932393000109686387923971851652102944543194954807143283558671374717751639694010784308028708587917850081708872528431603838158421417102442189807758898259291440273788447644210808481095151888149140864786708723886907611388003402892633512909109936614792943383036052722689189909744850048570237337412085695916257441359284502592938879735275556447074157065576056927642815406109101192833023521890346778068984933582854574433906336294505189611947390841118005571682740503417793827636507380983639164653034762846594168683525896843773853856678332637313650798721956130269759587838527082625042758586369760135437523129886126135743338392812908625269594388056891470253560159921287351257883610147059638381006278896815625423000195298869036976970648933725256719009997374406060156501286748261362248992314198143972866547586183279527157732985945460230615842016525344515323666083116963306860953287579448170808349585200530410681766649978230356782915646775581976524870371982052547963209467648140289071777903548931866522669832928699575435553322832640098792078214493688164080968338677165179477443645044498979203044753594034191659399130186269960885141887212340283805315419013995469588754453049107705455223765068779552137325032182333637812181686884597194416733941506542598996724185557147604100635060329194471907089647840098640050382215077509989433041080426382670720870882339624430717278522842717160150860536647567690549374700575595964234036081514685912438220140097510131635140360004085630490872530633269084091165556954736560576911069848447698553359045082979166601266250446313755574007933207239363018747287524831727243208054024909954979617297216191155649118262181884791282345511324061284878920759346738303940844106411614441963763350074593428955145600126684130933829940568446057956426686641625073295567404366498347293508748256296610260170298085045939184621532066893335885358813102234250810633328848599679027637321041163786044028504747981830998685312247365351975803662086502274926037302272680273893888074916316772605257656943959176981483538199126660056695992758475238697404014244094121865915416125403635342190211304862702273210956535977154366298252152281469074861358679888622349304062225748120419181800852601629523116845229251240513226390407347802589095010020830016170326950278137946784877011393331133985800403539339992262873627897813081579301084801199780371660058456667495690295661622569456036001556361139464164062522001559900294780685917223771767896664092733792493387087138677062317262066434969154784992884627847619316302737944250252192241367345799197772356250761477574910563707879518396845956358848192096704197323563916584172680886466635907355593953026605709580237451458777151312431002431078997561529903190283085919621349154933995952178990604946904473676488477888269911944509711169535199393824308479476313321723717543984581090792647720097745007231733289674738892919534218732147271305049669554378691889325437442304072462815096119120780377210861548112343920178081639442076444088633862154903289490455703958467758572859700145554464070924901346640025792591471518532804618994312024122880077821717757053746883471221307109681910999228818711223702868157052700469415182835796751847520803845829545753031538267918079671477109689191162111947424338808313171275363483615023305388078411094245220419411121837577987418654972681998344098889430155658090646192979148226538122661899372880346698187240549626229745806142746687818316972098848780244133272903163900373875356624367676328876901542964270499945817638461229033030961899522024409612891989268443757143038398433405551984953624026936065747300809748976414261774846225023236026537898519450997694312222427603788746477141277238121677922136691422861432137326186261584283982395872198560730861255520373599834673041360702500454000960587507747379157186959683638416940680315955676729605618961919183113129917370820372777236315726917223589113872442642998586329777796359049518359256946195343360858506294085587675072972890603645602689693374361349819760289205209444320556297752939594888036460093736570732895656387020547441564956683599080401642792207190626120109866468642359730082825310814082535099824529677683687529652134953359762363936371103867224927049150798700015234711609514081814582592290987248279098673310651664311833718074252125503681872217663929993413920597910306361074732878277107910879050750033063497898490190260921459693796559645794726882597786393218112635030520944332466031214242578198577875493117366683982269044604409765006386099019323599499547267221831771258111931776200039356899400972441958188130438494455632959743772747728669003763574108141562765085311462792167115330445313672787948015678410909352144572797836374418499576104280137050497232561392390779169995209421487076309925108681311809829367386499516937205050890396803383408999999406878741058851035051516518893307797611665562625785787485838262282801691954773659646042669538779170289262742559056916205563514046972425569704150923121210307055678594661600557379278016651319770773411394255735697797864021182745338826257674462357518937176062222865821406808111125385397794088289665620790146458374227394323586148138844451126161184088895950319375391192110727633525397007540556541605981161405078279326209463924036973345953484449214705610246908271764015304031354809697960854481416874126751960033783652483705676468423580063786787932508502711682521135075398921515358534855385104401311964135333764076916009919070300241746339721579685366714435268741688957323139055450570952443916493565889791864202818440303165418979702909714938288768872811621685084485809186785777934373158033184644600965466382612862798780661844701173032420695317970002964177806974031861219265118011496183026456768903115242987883928936044387280772634220718927911348912951823900683190827220203769579479152799316311167244271274085934161246741438989322939083197158543961694413357731945189854840475728871742948801930847752713457394249661583248823636911023902406449100297645699534827908755262577561622462981657544481931880261595697440305006062841071669928845652557033438893613097496439387014353618565744947828773390948335370626225090390783564558338745635732652234645576390755995891662381547249116899579423355796723612451710618632152163941473212582146455891985145298685259497336049164785906408056825133035106328500645933413698008441374319819491404601356717252911610896277208763607889267638839284453503383108209105133463908558555887821553915411574386596189501844702931675839277618705803481943029560144424571818575413385017118881708176601008217457382624443727592567786161332558581111496567137437297062388933177762545558198302932021062839211946885024501366800939911937229097234634299984864788907129151197694145869383694206934169891724176239762567339501875106638649898186472310410919127278865386114909837863850734468931238277991872210618291970832323234328037589192535297476731963929650910776961693053026281363817947994315895799025084761172387332338544995115684458324133556246871394086539396498633672762861212602125953281592645263997030452891868620886300973408733156031635631451378990660543818309615271622397853508231534520312477368613919664383799441345805488047302144861063613855363161839938891241216409430958365641068389525908649992744647488069443341418532647202311815281109138393866870189198453748946179123322660532521959273982668221007201123212306780823330467739045623467926757866759247933329074557319067584777647734940754878012218781770980511645259961902951839362616806394358448517894620906783778008227088848130501947453886554677166741601494338853313134915162481237882730094901872590562086501039148652486504828224159981376183910084854828987379971294184084557731305163976629337719148235718848524281058731887573035937803647434046428792159682572773153376313926358398734342823661162392168391010804665835526903791630800730413387654208688676104489912811191877060378848305158684981585945335571821083424471124350016646862981305970027543756198313991481311946163920582913261547364651427580075434568242373124563674422509523572322572784172775369718281213212249477563162084093822742053830346062607126700813724860482890788880771032859526205372602103740048907612496077298655360956888297921319881766693228102081904871905288033872233005343877804941650762446851766374559872723630988908090618325828989574812793178000775377762717300544407523921560915524139941336332777235689874258520188176173338540130663412261322113177292847698581916226064027781720009811395006386409160000056584723883007047351464471138133698024387868608044514415777840186468492131878493423564306146848415513701330953405684255911266743080499075936986198872369470825281261664209123584927272476259637222994418730273198863742275876045729328264012095045148527740139007097093238608297355253046512950222426905320775644174804194124785957004055079381739025400754769802848263112597896383047463421652115743656241370979179776775767731803661886758871910525702414169675830087041730960172230394242554322953068984542313181838516087831880771281034832556817866665364148352257301153153840685996600734677713293435727045157562443749773696136399283002424492138094036023186362718304860295660766444447079111242163573695805363298348127571469423729966509112680665375353804807224343796366220839229251407027918900341805513390877185391301300733758973765413587684099435133708387532046538190065081147550944974570217723610882766928013802528476776781335297539663390925915203040960969233715760626904243625413004158883488051620023739200473960880706638690445534751042047222491833035345614639154520454697569927729088494799502367383593107894698303464616368252578839729675140926937762036689975205084816770842394503071987269876135329052432366089345181754626792245441043559114074955930724107628352619864356098833891073087275423488583359278881925097241361009215011917485131000307913179257675446049402202884157815308765480983723509587773487835431195656419861808260137315067263553526004306732748586193612335289436346258440711931940439020722046997190583522508332128564286583664348719275549208559521109364191142028642071642495588729115103853793062592546373653971800480009385895972140465763068972545241859001024525244471545489502050768072172087153861091835851688149819318170154724898861890295236894994734113537699356581912597068502419988570737255671476355635421425879469836099215832761001230719571542598490536741791359191232029614841397056460535924819091532855924680134947480428425555248912559695378870182128090086267669647167899507662856357167383850473861979241241769092852676801874584525364815380335162844213553080493614394832348809716165681253126551651394136384635715264868140035926597718628562077109550495765083908920555522838542352889124075902125486639318527603463991099300742573020149766502723742891721514730775012380751091146489112184477409360655674195846334313891467606458697622074436671796084487147086207251482583254872544154407991383574523660834337353221168396526285569403445785972227061900563000922199759625264575801313837511068127008558848335386267018784423132083703097898939949813692303932830890303871119999554893106856888082897519562015463522675041343830536821264845530012253810907615026667037812695368728141959783075175043018023286773478803819703689495912416533405136210614703031348363221741799411921983473784274375649999463654524076691605483433861524152183022972708454650217264794531041038430474922903022953441177088737426362604647651824567052228853485182199527511819152642621564542420576019727998109282956083683571750951228284689148640813657398642352504609556130358003349354210681302558228208957063860565688759698230157116951304969143130718511848609166949728226627236511962647357593089696735266602839948631508076966846858089745967255291086634262326583585638184850805538153847302597860559028342527351790786896199695380948094379430365282898298576694814436654346469805190400144250984753930225260016142909481308394939675643590118212802481503333583089617492296352538647430350268933970216511323419612603106579595902306570621835475181330620457381005532384587448417588286082321681075607316370635082569271302015371888430997671370061741155903185034490753597087256438056806357057879402906695444318871130138378920340832871599306028515344940549646810432660083460853885174657847326459466043046487373265150474979418082507202379600757622112951520386732568276220038674376672980975585712660623373714315559482608850027021266979806336856247148028936633526253343474670540863139096292873770303012396143627547247130211144220700652722196406316199525572788710200938757038346648004474609434088748441575752169253302863149160783341799031591274874570423920377472341547317696850862290683450629705939233778799172507465061023171745970442067559649619316940944840079096784205253678084596873013181077479291110200645603474538912087241429017778637774706402986339753264523726695929572181133897023920624428548313181704475719196630699959922536477604377725945998601094082412059476285392571907679484367956480979526530166323038397389544663885701220988971947838122839851799206057830404259688919436855446174047246056194248335915306346169761507842835773591422280008500806716159763921028124544134779154023772909496530575961916507741397618399394850267699950934653668249899541101971158675458158268230104493259191243776210621612975051794687988523954372006587925065508090841490507476435329354800908589788439089308742350142503044389467083983011026952923101728349776024079533211426972733055169923724499620655965750698995543263590750385044964331343898144125926198704578842675273330483112186070253517001484714642059300178108828268442356291557308029402939764540877657603246163849141824502599214488490638223509326650579475587699428408859922418487871635130904106198038171060493509409132708769265333698847749720502841265214759633997546981217994369517000036577550525078195421001654738557401599922446538726733638297361507374793500273035543829333579066570659978783344986534107188506891585795007073081949115757798426640832340306492776645293801765644405474948575763501427705636743044007407845878078381408474202084384289086048248192961338031706805691834511356460297181790463757445142947648321631764204122752778592173297145863509960754805390127979969206587580662171222124414123381289120346908036233783665430956506850661667534014247139481391912939346991164099075872982615828218005357984866573624318309501894363338207986545963507884508029680111624655797202779017738016437373413260392320917001164029002553328350382085360769022193435614241660766753918192637529555349477863918079589138166679287860488572923831801268670848229327796040456406969136975460308917530180703693298392961956031637603716420843157574036902998428837014766960961897622760433424280469753274752141877004959145094850805222139080339186925900972843082294391789411081669097008624418551884513571386897500191673738594382601674835363644333617944438066233494374122151945063841511771163295417410246682622945240741551068672907428253464331993587550774502944137551335893637469397856892105566370051873634843189111072595406010844785858563570690553568936754280082100713534355487318603049450734813103422359953339536722364966113891951361835409382720848847328029647374282375669103857412829430125353552595782083692206258110648683727489283411975041969256671596427428327427330458583999805598141298533131684116489692894701487801227644275589602693837740938299004289668352057720628941197530240695719044108919433132579378196501876955523754499018424411625465110331593142253308798049414365546512031987487452403159423693483029858750189246451617337620914340946573304303972964164163217209963773561990921555099816425680321391806074964250671063278954102425666510551329208801712924634366490917911140368589365224982747319398720902481177475725477630390837609054584654061554088100415844361407233033325838387073639921917136078410976364622998442019364945736973229762293366058142476715530247948550341242488409809283709302176606451640127421452944461000609068302589326012592991723962141695421471952975690495927795757307919750271788165019798103825922859045003414102724963482611493406192755750405934255437592867181345917436860025292043631359152406669002465419668783381332954879394546149878560995622696994107334990294203644899700447862641408865316539932730968500041837074984016465397767136902570988852977672349428815401931584183827230682674294081065574848583320861743736324993549443409768916657565264610192212761811023342873557626314801438029425646431779996950614343841833970610631141477822446241131505269736196610457386049308947241064747706614744375577873465640662564014838580706021202645526112582415033654191417994901292599811044353473643447045565028016524409099045074543894034193157001361716718326585522748797657521390768626730701682816257998164278551327070902737621342563497754825816943636786103859951881789221954973676292525248672950156433447234386820026788919370784079004266438070715295893090713457023480794709532793041852558711103332682972290756481733917268364813705242022264278589490514170408922485244286762619490745831577859857748247078467972242898570782113337109866967750957011452258703393914099546479690121850997377200056184633770080601222980754285707090371898321012131891500506113922237275866337707009296308547191833407855200569000608749967251409668034701605142916080408731949492251444407214191833346183213518080949033652660656900368513625577207060621750177654037482522345385024249265688707811111914270790319739407282431800251811539423665273775045565995731285995214089948671040544217194154398565265703108307160032130417882669477784717360285368389848634543593094944425193155533867426721732801542883108630702846772253137644767879983063014202506627871947632847925753433300454079428865644023111147126136692010844009381596234683725808106751967650812088799978544108311652361915982209543172984694822648365084641116918097035451339147462687644837148906996549555770877980924140858153881794676999212338474105544416648837488127975482608212698744290180880282428658630327149833936080264396173820691364052873383660772071744435739130667906385552290700063208819908806475896410796954299714287687234796288782459839060947256659816567932563012705840360097303212486948822322301874011227395327335547216473939824876053301623193286296004740372421283351745316151029656790027747702414637831046939388153905612552872614653095958755540702539021304065664677579405425546441962865063413150918872145287320546595000187015959296079941973581111557381060563454450744764398547650277668881535449237705804845247511404979214304237213689438877419930424655659951862807639925853094295530231842332643059305042652286358895463716502270188249074092066116163804306092958865953262125525645745366903433074919695079123530177129783873815807537391550322509964607161913475164329425998210688801472008701878502414947536555111244410479136456553544526471533374250156238232590544374951712491916027984248090509862442033399892821499110026369023839873129227538361969155177449439605872631314308534500488910800945999752090632036534653361826522979652944758543108524608167642506447144308091581638362297361239009195233373031255884905524095377836180899232636826946810377458412622488672515279133603894006152029001888656384559909475058933075939950197966597786468503602196044167396930844311480996758232142868467924423093556513667862046804876680656915368306194081891983046906150134268740205220045811768329062003168200494193392460199689149020815354090325338503375844415089246497672796916930604269231905445303442516317994548931581104872135118902910721921635150999565482146302853877464142001304520447997032518528323363383215999884141158333756805719513085763340958379098795085394664560180371527624787586240758976972646276887978672803986580463152076942088772010775122073095929637074073349025230159428860616887453005006568484642491891930084123041387845917421756890973214863201734953953128854368820705143686703470757294172823365859601670297593574907307008790491287486304929115470808515403729005422495179499767461968998680299860673334727562112771176415840367958889789251700046306318519269978030135953059283001462973465114979656267706775540824921188617719800047300001487918238564070405525200318728585449308009164745429891085302589829946357708618839951365080770741568112189586510091872039972506363093905938412380757683101438809595955935433225181120547091595656142579393793401842462189757482409355711621437149744302738954605515928336722631975974238407859011419572643461636205529165503013322138848749244672861427806415798822706761193318907416548798061919423827501405896002262172407832747957055528523121954135321408401742891408464451936086038521596355823402859596143774574474232589740464213318658910755328586303234310142874575979548103248238183446082793409561524419054694452410278067010802015611113049865197791677732763926265892010345162946700479071230424554176403420904496529293409104785674412016022410386099162003184402957640438213942661300829219300644518726207215838828522788725934980153973918030346830356061644919420104402190274633963217687773874251838919200180028443619214939833377362512290511159586929364401630156673671108539413590365365745799212749989467897437458921322583767883661253468055666130551538362223931621297419236940930009739872399818410527131495621751421736824232502189385452220454595572873071520751041231596395798079784702134546088348875500216859368006666293204159802636688039073313126440036196491882500908283987076911681043647028772884039889911312169447689159229221358903713397854496140578032845618347019852957069403420929926915484498928319979315733897821721817267411662202452216868375482684330201353574149466767949092159161924554625996599239483427937894877698303765412888572146510891983605949052199780653105385014376691139370375014525131220088499609528157199431916646377957520951410606637336437173443341842091856345867143355744694710283760207528426297610761158848113569607701910187087277592197028524997847354384667880406518642554016376939962325493382380658355684738060650409516334041971633129781872203003054236652050838021302893904535350517799643546522171844541409359914675493559430466114914077215144112831826747747025020775437620085369593450038329197742315450528239126014399062415871810248592351846049778770704537421887248468769942137455104776484080671233172056009892179418364070056127073472033000224988057395661057743231194009776180951261946832514917620461189652138910766582759279723247862819066817556780429261836067138536289119684959160887862359034847275692259295086601222718161382000992532785230254581586419263859132692949971316510045773937548243452488659769856667444915043786632550540648668937814949870696903014996908719347753846913571485191173475504558574079047914599346175703011093903647276764976007582597484336351673598331221943132480327369381418071547105580381715729652888086041777261620453666242137103452898314738706893573132330896608335266256506831442068515602740092247818848162641440260326434304433568610691781329085300517851275872587493759021990160421015464160281456637864311602509778664025044724575655105023740354010326513366566576657304254068858728778279380141516722061483618527889406149077631412650617012548977831350859979652465075935640795600854628756758133597345189572047789780371248834869292912156136040247152936839805489825335997431006309766776737486002851354236396598115656813552094874207896289347970373801818621444947679592480952278187655607788537418778527790636532271437197280672963722370203747965309064000813923033271662753420803862687149690537015606718484393026504673762150057690341306554478144705590662346561796245891218112520790332458716090600465466164270391073647010545552095008268866112722005294288183999591399579694586050285773137239842961842883103537190489356836724362465941540586498273304251190699694092677831049421244486305436003500506332444604354709988367140814476903185996696813801166347768532455624269440912859178719859869446034003862556525944914828427056200920030887881384084784870236212916723310069642945247686154199977557895838042671220283029653701714551956545226634716212831761478250696805245021380779831719119446461396297209264208741270893526613264988426778512913958988349432729430840578662049126717178900240903873947914570151160882240322492973329358169640913729507699888430396132673301954851472385289162264048678282038381536722664694296917466813062721886416554157308690583728280105583962316865363168163151040267723743949952250489942655395783495160472484874903385694113689414199645509240877851947260150539608141507315621999721031446805838633572919056855728011457694955754622039924578702294309604675022996724309799799153429490124023101845993999800793402056912376187884479099910764782919318716769022052654812184826540907377957173966215088734331072757466081181900037789677184541905706752975279321654833253444408187143924895054983017860541810696458421958871056259922110778120124149898161747470449207891622952661897013628129671709761478082799027212367415798277459422129792777894412607160452757215288902286858789664742669708092654456744337801567143176251594619902060323028585621976822393840469622967153007983522835580019518983629797736379986247830682071465941420299365908990725336474697776023255086640568460524846659736003920476327798410957118160200259090276494283980443380681251329638657193420141690682287291252895939977677549155536564772821922358440989327720853901047003135817690294280558986207345505460128958341300359205393639232200780340534127004582584417415123416003390286367762522125671807723445220430413763247458793664748613479503386869907658361552701514549137069578312627858005687734346466494394367733752132244555820215803748085894472556680835485664976381259240070477833195773911755112382531809629182317580999086395120287600545352474113156324618311975568622990201191688474416981413100812890618484308657329425600011418536393122437430265443837779699538012061917000036228284732900240804386682471606491192028503242557606848748809553111558693961121081718586120399099483853263815475556561186180742909676003487191898288096790616102873749521577067018241527875062588545280520834484998849846018946013439103144982536915244117486076306947371414073541071791344727982558700847471688793577064215229195822662328921949233896732745194887415226825864175520679051434583334450180669144775493793363602858363636392304835771953911805947882612022101459208923194486407681198332132655268328576609680005198712182843576980289834491934606382747236717599765997739001670388352603277213069253381475678650346459827985231473955877445871651785665010255540734544462059054606577292197205509135287395931958820848377771042848583242862794495160889413712897792901309022803496818010340831443490202653373298748520855975733741110692754788232264881498405572580672462521016090432080538471319910861165443216544194739775882380911789083335411868897939210308594222687607124804863617536878278540176892253703131871363434059171147817119264710453425748867960753196843510743949881806728977780265479916497753154483542929263580386807315201503291431450350180071605108042372179257486761710692782673622736895659001843354873214870403449388156528621545615814631034038245859041631841427601265540477174030151989296129721067340515938733002960353282346773498479131257284558880546857894969468717778389540372397586851960695885107257111564215878535332787645002040547008016105040417837387037094834965750199770537163848284210519352432505128915986253529803201526871077279793988113482026420808274528280938935654786600784694518128446239877324919639138918506305229402600200430888924621230032368814663187817191654009199181739067420955430677524620547460698467557032407352693922947143599807384179304122638570179327252135134395042050718615433202960133687347939083108542126365448508915658418759384981951749847254221084014473808813033275172442735496830822020088677811053422394261542458590269670857477088340045452981477829235809189005609617918909486288085128182760705711441433187697443509046178872371754181669317998454563764691338685171761123432242775483252535606556988716659001703400934612861874879256352278897385234195073499529949049801269784034748093015301272208964020578888599321240409543442433842871847978849030788692166558800213277828811262925674160840453594382258343507010260589143001104215697883291181983376392749199668295460376531436547064303967019254733213228919060435398848183143614574757965734857726670074050835177998160285397114636179553424061858564871306272690146844533708303681289330642130325036801707663610538558005144995193225641981934320899331558123186077639164191484425639752042813362111521621046052139410208112300917602452566830156188588620672209729699144127877891600150540607096395141229514336060016445759004846718114826760172834121497079846075066175868129377837824437555839609306057562398969961886924131277845731489412326421697993092852990765226723403916226781895182169763828456079165497623240390947195729852450254770810627180702371489538343732025378558360675199874684696530592862588218611634903549098265481095068980758019634028200864200770608975401565011614351663981986162841049331209328295743653043016550979227197730191367854026485770290763551698452321321650500932306785565691870446798235525712411643470898756133149277928759401215203131505458414249950313986067825686041323797964246373879893282413537120682045222962396161994357201484256412305504171664891227979485110337484364208950705980043742006826584005584010428126752726551372249737221213104029666609768205039752121809536526996075773389913478024132333049003075740350571402736228437723337689620674943010682336783029314188270736385245646842917512890894293400646282249768674432699515256099430296034308269078138906422538686047712001853379655177929144619697268741247314020703033031200469162353534926490920762815442344058586558501168486988613226905114646264492304985556460797776213433825111105775726046388933097821508716191086516697024767956373092971285585161823238518463938776221255297032032866646755708891880443160589237243176096011605860755883442855597636943021966078539419359369982416865537309240889492314168414833325913911147058250971930419197664789677340399623166130194419913382822332616888316982530090419626151654680777096581907881213673475623394535544000293966474139442645461602751512872328527579164089080228962925687127473040534219678293128283616531014698788567136994681989444590451316105435023728168403768069445510874191833265863474708244355752219096873258563615651642296286365689330030334136493833846678079187174712704818061703937477141851547485861127835345916467334380181846580352129661568992469037050127188981732716266491731864397041629878523770694116420984546291677524982931131134885306316992170471162391592446005698631849932993871081478187853188014957740281202785394374305626918047977022580996656122945696781103360014901292555550724973145588088077160542173311624700603381965976261552624067331802984559085682304058257675353075158831703665908127202032598124504505724514237029823575537271703298420021960982871148877119206772682484995659891311696338399517259015002302232842311563454321427521649384315501489665780728757512814240245156779923645656937816972781890957071726582397272022775554904305002994573006209115660668152665673897285589242550449995551577806960340679897969121976763404213843891055707042849267121102875064911449276086388806489405545635478167631767309403131131421977336816014629681698556997104891384279532720019257374734068065159157078010728999915260972417737748961083404060652294225961740073801326884296755676090842800187320054085866663830573873638676964366708361405386048117554097304906963121157363864762553686822550112013641634736023630601022998237476276130008571561691279621917018414125414667590332909332990973407710898994646580415400049623410083767658241064149091586569607022311329910091331438121430730803371325987643140780733779348664732115550954397518765576372610032059544887177356718231199592720439729217787165981332869000684589817437037605583587785934344118159074894572042895378861945115892442790003795438485644997913170124809516899193950345067988086307460589141380543312756855162911402145233430142602561182429860801524421406736657137071367307616951072141335216538979502373921723720044640147825501789804096823111578890578011446212794216902741516133002550674172965138822947871658318623512046542531034966118481174157202978950363871583731397247561343628437824176608701494415053893143431829940845511763064273789313231215633110831777397083557241496582166633335821392561140550237589109427030323145356100969405861142665258352814386922621132966095508618789038361057175911322678880251795292671301878371361892524872226975866678832376495823924754528929298192976678243059343630747191151093539739494213357466454147415380033470665621442960022758990316698662491829013512763209002123752177015801775632172241048559177043531258583014650786446922538321932467703125116463271077997404509082411218839891619427863618251233216644405488258243556161020928705799210439955575854635063762802432857456358280327696989600884134164013218948869359040874941910991231272049207218355977228573045100208209887958756427776447429162597185043879515494063504516338514202213876854509749244944416359868496707962962951906579256703241256283988149235750205896214550103712285449981650920917997527898281917626942142970343017972231923338928656371193972677677979572613366842928349821122069173140750761386255915818747361092635116029994728238911788741507928753384739081956270025313753224015109553941879807180996877202581450227442562026047896361551909633693476551807240835985968689400689127504669190024863558903833665135096244188837087078456113418499346421854647031952874377669099453505116847237978794167569021808564975431105866675333300234528709515832176702531658312435899127217595795536210936144801138528891881657026994195131899161274923088674040855688907810854065999367527030539976581411387708139827620900532571655319883272030854606737293880703983658125202629142470789617918055216982367115311035207894495443308487763202501920748774361316888445726162903999462622439428750281181545780691270474848418420931135546415222254509733183763596902739865040417310907418191985981758446943709575073156281698950404874636390059110304593100276221394064464919795642665945955059895942273236114406385908990891609206495760592806128544245958146099674216812968089361515039770777065435885670249161372875595432671122214839269064849256117961554735379512688965626346318410030484626485350358110418652199005924980725937750002840136324468393685427992157482492921144950405556724543933684254695458430230580429288783219544537107035575063399962735952363953636883981735617479237801856582011320670854172298432643764906139943159293077561534010819965924716378341289235409692756582140583046608295039569182503400408323725884462003027119460888018553606478118542661728907073631179147168544663280571919763687414782463673770001415461447329293626071950496302777176793754805699332660270104694579586425727986150144281259712313716390172598604212389914068788983962969338649812866269630459936007871625213728525728776684379183422875514584701949479489471347924363152066218444544916084306848948680908160270129578471426348064925574749690820992434581383671226787214792404690282940216343120289837199411053186370843745115829530600284224197836425312868964016387045843449890975918797374325835322520707564975010079844903141256657209640367540870839779983231585611794823605311035200475495164208986713491911091694681169357259264559773619100120268275202238156531599099557648641398751635835637899027718990882477426178313408790555755725557058112148679903598317970667472269242394767570195208146279055063568372395532775256459855651254341099807747818270017147690518209554759228026059469504964242322744634040222050439241833084708323449622113980336384314842355413541334066356306875100326037718279458266235616634066314100252363316194321530510124514255988371489162343291607350827253997550345742694120777424483622562714782805871336233161971598814763535559555613297277062506610078538006992610551468502709518952371339910530897983336546384603241162800136728906497033586435062286767804358546479440768402070869617199734915773104855897295153132894358348990188111898454547104399831969236779408991415120548249589337572033192536878035471093115472458913917915831350994769976485656082891091421061473904542039545262536909255803213327829960148575919184784262413006484683473078205250813794114514246259935053676637098680466803925977680557459270524759921075325802048136619990116361420395142273016095592363609979858128607289431282166283611351221601745439603300774220393210794388313476903366087648140765290135994243836316824967611566952000847349992343594776900140360609275386839892365925523892457712322721717694296445526032219300093870489163929566498611069726579648433137834956974817779905384536343284895860918076721436513521359361551311369666804341539088121765208051590190515931015610119421680623279360296941550323329817038684590064692873108859607810309148657808748116631821451724988403269493118173293999177632568205914498588511951732702229454228056533303251720232118157619220209363622815867950689602022192755460639437741398448102381147786079819741282296230676336360714615627668007569943838405865913514616808737033418538634915515716186513449489579796390638503824986103373074015901066443634790206386491956903342521846678478844469209897109612954613358305694048002636967926139561730045565592547222334331632199828586083001366063276851876159817941227793000208039835112750641011076748850287605110149179230454023064543405924219921674469727755149263290960286127181973599160482888627414454386433245767515274131121407882154992535067659578910036860882403191558633920754735221620274073475230594383569288763706406967474010971251753534298045519483862613476480522687574489494914181776813577770736580822573583375183525824173039716912065426442307145696491430899139971938207715614425858897559157636697811836971919947127050627843036952564713592674422675637069659605763438313735568665505934244336218906151750124927227311108804100433776075565899065545218444487518251308955541060195554263939770990773920026091369969150571684733522661120131909469488322502926969739230109993171092278118703068320594628906235465143907316325383532278853739518076901282166478442146873838793880659144703580874073999220171098283971830220871265376632264882357661552703978085956114987290058928700760134417288692675844874036029820287192919397306793719533489457677383625601808316089818268354810491877062525839435678498559049084198747374552404703725136250683424810459257640828880458436766633162865400987834532171477079528995552143354461908892255539599334084393150579175818777072140604525887000483427063095606012254468523441733568416173944094329890492113150944626837651485127043564451206790148230039683439780946024663055650745572059173041588833650748024012993245727557005980406831915538377386945168915276936151330125961124838228966417028987951271482502986416360401203667498755818282224027066874892067617904090877381358500278731251225956636499715827933634154115965183773807807443464981506886905326855688233043055366879117534991520528080543392090307195973874190473892894019097677829963595379580875130395517654226928555971035487927850350703419381740747576046802271021577749454152395646659669036660971860388806165882504277856014121373006269712064376834299788118140044693589735828321638780890967917101918218827349706530604685448755746637226937148607724678163003351490195990145922640174378514840880310789642644106674984260799035234426561864560324390351790533902558702860307861642133278064632067139977878595935143757150746490246269038777752252363150111450863036077091819535785234385762051533066865686449021968005728719761001966842230986273948539258937121006485664750804122468654614177402609986575966130602204139298901716602596301618832978348431761617383859432641877246492712227782233577116396863307810665276428154462358640846063223188072740883071952674297476049205742571033353801690282650762599743918071828888902023971490417994837207875861861291141758771915417269697386317416970509524527620332730482315077334787363952720685834988268293855793000927384402047576670860464342219739327047816177748294896415884784090051375251553284272929862360724820955662879349859763518446274670516499779656534869126883986829732463924874269568980048742166705674875090927115623407452101869061263928808340824593995019451420088786917573083346980974651881623762660421839791617039152765993881364031841695971307684642047031667070682797758444068069962660055004035946718624445920302111689591552387457242097682106805573057352784122327992600846385206503173565336841538259731691008400001400481210046500079849082429370620847940617475681344172389947448407084967097326033350829751179993228018191996364158546009104388642910950831738282706816600172566825362008643904100800982752506333598632435197610067658681187069609000274826240324636966519115865818282426064589329683731195408159680091286062809819503124122515090936269836634779899354097162232487060578063015286372957465637812605763788629902426335237766298625435666779081791174848048552524658932995490933026346697884561103514572467086054490413924024963292700091100566762701576236665948009148868889753700013929821874437778646351006039198614143620219271231519782232845747118844023954025419313322219103746272031321337212370086605429980282736935975885454872069144845747920331177368692807231267469153291936877148779290447168786513970935925141692762408013243311271929418387716236672950458405160494991015397005030167690543558522945506167458481030026075815469931877142326234254609624857281325228724994187738714091819675878634035575885553756255099366837128710270173915869376501145513162893758752867496942456680696418710289045624118876524398717519781558651339538879417653899134996224433315539036176016818187103615664930607225641474247083230486482243866845310623970305901866455640062407192277829874911058777085207714394147416002173563101171196998861461389197825813754195820148735286576718348094413886669652401572915727176990526712569810203075000959144884668971467117799771342715095090171452760574367251784960630399825534640568675709982213443023046716511814976058530134690246875432898680833295792615969739021564855943746931644662849220523276270017365049870618865359766215233216426478283554033692093130358709642297480696367126269244259546220760894459829349507268586329760815419431439580964047770346144697298880626403424619798487274158260832859079545605495733421514915864477582891437204474590266642994677042442632770500090603963621552633383110277817061852807590637814356290263186413196948639682615584462414646213326462569674153717466768175613888370727644623680074038824183338803847608912582820889185399625410727485192862631468818504071655374897458633447624580069707152760570427560302114367137842718902103995282849803100207019720079257021127092705603656532007492509031088962744647992342929763132955256549103925987411594131617739834761245627553275330430860434405920202188066042004105268273013909462769695559192881974852930296261486911021060959139051434708273775365819121816292342012883995187122402162456399203772495048598470991316739592438506655478496114372862703620688000640362724492028082594885141152825358532403882181115036719818866817122356293653076431562878739738610466779542760953350942493511085027784192446625552464127227588453568321506600215214369092928863689709500442897391233261458511297884049559880198724036654770835160890368897666708544697601324099635952730576617614401468069548282374124091217595544451190504513226483846424490732387089330529677357347534393536010003928379717985218045541784121135149932228956593410494688252706984212292018277714032126552907900968820196667341560421033340665592861740709396406019138018549884693498304858804408361292360996580571442894303759178932165960795895253263845854226776636000919054121777953792862020315005875384686467441301265857527569974851810726660070876122103675392802358641017235735897539848708932893252435828241709688019560717214527199301057048295286867711335953527042038118378008122349548470636174213495090756183930041841185184972983094727996777781869342288162996354040291775820734897701000491580301888222529495357714965320392386367466469598527732311858964855518066102109243098009722894813438986872864687524026653677935669010514592360273609321665879897676582861793823497804281091458185198633230969014839874831811504679349518432805079213687220731871442965097995125788286297152741194598052390725463536831445798364910043594464165542342768135818871787884594343907332313403138029162311790553381914385988150573474298667440743491134793326912498301396294444445474076704941157989501350695087965832254069201666597487713552747379046140644521745780815816652346142397092375002984778673028899457360738781323613029428489145194118813695877232794610090384994137500719623114569344111924235002965232352891310346982625788457355666622178800118287734872456256817234354408189390333349364347217857260699431664654031577844428355703600648817641450839804046207088954543393353586838100739938789106765075577591794950930978661568656123648739248166838181423889102524888012201207328032604426116662159600079499314550386393893841258379609792830237126318686268149243923014265577812144811110659519170764971528692446687722971026592378730072285358905163526774315453029075341939626766574706278193995533045459888223722404650414824212676353957943468802549841081031302207952831655350921273462076998994870631858026239241893609541332701755493303503790851184143792789450400236340951984112176657258166486199450668830197143442321397060479007247045782242850022299132203819460058392956775784790887782277641983308103612679491506965941751063870564195010754088849356773881192478810668797741909969622373988942263449823133765500195102352726700080317046750029536891499117693046175021646281286490118362665194690015117647729724483707272759953699091155201390188547564563268516641164157267132151332259165759635156133122297215227513357121390617422728383918766694388477947910009873130033056768240855164602975036311872966287722876724415174969442926499071981993880717422553024889709446276290636938991324102938912153034620860576273743744438532775257486726602381878638483974765910352633718262745017236946839083747333747937801582164069965524498758215010037181326097654110134013661912647414330010695191158301900079063624190574727708209079897881104223584027482995705904300599157536386569370234551429305713378295301067881101008844376129588920305554610661390130165549786440717338992060428845973538911869634818650340657205594521801781470574459067931705615930107801446148521398333372964328584846336297988597841885786206097466778598853500330911880978764475010158904297843764153546198848983789329244391788756685125494548460007111546915753711792193817921416317996619462517481734137890476948053973367111675199590148875561215971378918818558759488482513089264273459698200021457007253563225346976243675879039798600185262610195800839872682169442342607575240777394262864577674945603103500435696880704730009147246560358074208113145894908282404674852484905019101481409817354610916412466848611208524108170849355366684251072233265406950145480251156417949573691193413466102439855932818602576441859604563731777871588975013885993692594258337576987195302540090581741501760576426602315033587511838932083407059702156254814070249726743198813606668234996811745714336826266608192054159379201293511190531313711269528490956104456721871434960265165166746262657825370097672880115128233597961344147804374070267045246971640366282146494241908209594162229485819072209731392707379937721060305881079715334222093086272437556143165039036117741145255912709555425187071466001139903271591592827015937819480316743824901006532295557086276579648094854390945635829174893114981802034360346318857002978325973773216063314018536290547781902544916909130975807717440770218953913697816601674647184304782130422592616999036706291990646594290141687980089102715543502361987886286065966162951728074219561710238680019747832944323680598476384573276669383968794976522780973345647134446300608504242426082883888172855154594329648576234194644903204436478796033201070322299738980185496703652323383228381867827738748064466400271787220844075118538219052489330462794717222653427200460441248593647735225787042082534892147330100154262727464869272618291376407688948115692193807788732601428890886893526120640132173896112219580642848883160872841570996490798411949527638172946779420185745421067321129921304386712724106677776125033862485338513497074050108445831365555853146842002275789129783467938595276574818670362902206524810267717944882555425413109576786158901436812641836928404327100261506847834336602965701909988469700199127521409190428238986089844933343199838637385617155574181513547673897602890355950407351169473112036042151432561651847089733067489208238449123840534833867093081605306323129557420423654508030594389240138511012644324389857477124224131811138291145372803948098855674440744486624607133860749066063465441183688140347998979105887324758983364203625640560706683007983724830007960470067047517082445697646986853558251647661647078302320130067784319431584343279325413396285839722710151664130190372833892050099415055423793161440963696560829289766874434933373347179030780071938789256361560836478100095587334592938292798931365014117148718111643188839997954605514360417417473107703634623900816145723760272149012625697249962059725541892513259492468271519708537450462931348861760972663236764041473449069358653841315945947364313942246825461321515975104268885625274461116964988294113757530004167706687933369142814814581930897714256447564031678854525119165297304409954996623990500590512642418645110322705195545070827635667147715683491375160349123704926916697640271848972548923499680840284658896158698692772262083937996047215328448636340903710763593878744059793395109024791802398651001723591578130273528578231899949880043455829605069498167117645794865864138622602542247200564725610994577926379438559207584252820550453121223992012139405385188038005364719939300563089025698541982928353007963056425328067792338000267885198758893824466056634382546418582562146959996537076576398466719407997147234410639696513297919831585893528635990360009151371201134328521072706227132248138883737450714539112154395364344566143168915100505379760785992335767979098224681110586788908690582498935476140198744308656319123120275634262472374957789596268031661029977757531929822793246638329813528203557357316522671986685972048815035377626208019662699537387954556608255405640376764027612097964980700727627580821658777397814703352091221960069577923007480555747763763912512617755515682951079796783449815294742497634482889556261193855291363645476094691513541529985308054470641179340158918808420971815141874874684392996301845025820862168711209392619608720107036866340297134690014506555344311947128193379113148525473508741428953359694109096400881206089814506749514736696542284873431815746829087728004924768261343798364690784380311466312272662282839007385154839199731676851686895455978537031609843967873938688582145373666865124949793126640441998773190805020111496424678875227684172781593787371789881574462408157597792512787579768579572076078810198533009507280476668799479141359140943690287791281519546922695657821612103800371287133506184301374689378993852516693781476178481244534947734648934715924679148926944465321241540912413732470085729232642144415306946183680484231461506128875641708323439917581250856866103566931399044365434516483078041918286680740835006089682464375291521922847513762544493712341243801206255532292760427140174964071262580950749418017205867860493884838113517806173269502678459238609451433014014915548343149607471147382023732200174678967414182001201454864621834283798895158208778404863757808915648181193866388585345982130876953117853225399075142492740417715782467421309164846854715673898428279918458261870160870827124227038791990813297447441994253908683412956545494601191827716033853157835273846190162015831018054622141597316349798159265550272978663950374379671141789553874989385215352445018323579496191645659261848916966258880817361487958941392397026582265526864777038210739091663927786138531407474087679854135171265776369506954808796017416557802054394166568571192214914757213774170135639249055983811811874155824173199903201140899615802936783889626347353664372537196414768278282494493944991014824694660323955363681084823284871492038934139735789460005089059317287798616029118849367137540339695790273397616490116363291321650287488254787915875768160608745233882952256688657107016795675072544307501174053977089747967973061570016646004909727323251115664778187383943015906506262348226926478192361386565298598734822306006561387240097575882794237371535161482329348692305579432062841573360081123751441255164782960865703987937909233620098293739409823927737439370579918040268575004781462033693274455047607605771645850173839321498780372494149373254921946696291215128602236772425694575859007342899081970776405036346004067773155379298219105321472876396584255376706220444944028611641086605451239656926522196356195111930563946802223537663630300578385010448689845940168844501490632046621615489542515326502690847893545870886793035543046843929872650261504660747963078918706438059577607978405540392367747434060036780629586519094070612562408789576274870086301532832709786357814181030343919919845225378039236174355415762875941849095001921080094082663504469950316260495829635102827781355513524771834556396720671671226390043372040723671747503798139877504320721206961570332938154934715210755712576609923630067325657206109416662358948570069863924199730206079931152650521876948328582832779696624690748030747223111221216841023357754767882566489627057942237348502800161508112351062294734636871143289418319659821700976569588004190690195435974567454337626077289208697543591037245582385802479228743087297700910853678318317251360657583533916025912737905631058358212448908263339841465366177664722276555939162992949431699691102738760031483158016958055181540876104473367813277159474001690716856715004271553902860074610347787575604351290009964380549365746004682523810455202369726964979716818889538423371558670760209280228995134471663479857884768443928098542568901697898941861633739016470995062347014891569288631735978399481686419413028849381308134760597688415304549783765597946343413243832881773219192189056815188276533095728578789778321742813125733221137031292182877592893193511638055772073912337143560207554115900361184545565354140856843261447988273607475046235030759805457547469247411041418550670918897366155694681234976180370157099512947484472479585258303803613890063260807228013818447767164289918060852790350269029466357479589919920065440175041978584333383293877170053178516701490591587754192954771332481714184609712794533444590545071447009967449474377565883846746265635240597602323637894104153652902644032344534477070487745940322689443979921853584492195542221057540073029393932610414862918320779165188890974262823817013094382240426556550338676440017287048262831684950082614944741348910890097530278724600381548375550680752404150652097479519229688465087522418640724324688383100792643493299889683147876347445056586655758323699503961144034816603715438750759351737967601688506321907150686230502003440153457614300946903326760177756234379618310998537855036745376985907563769176312669004040279942849414299541433751389985681573757299134784959172466962502306127217644995533366044640728898323101060043434832524151748130639486618884167736175908644354103402118243963057774180927223189890668503756609571010549799199711799507422044846307319057175688559428162888411148112865340056672041075408686668912811957481054014867690095738257651213564334111079341470480918866275686712191355918691266665395544533972799585522355709715419249405674088639143229743635373187019843787465551026513957861309132841954359300904472992907252735905461470812063682535472831601479837058008105194990858001882648721158990425060571326206768454544318257578180077290618673461100664623666358584861866268340577786839855235337483505696736991050093928127648188710889690605564555443388466595445031575894194921531531278173555310770745911316957044590018832480905173664702436772143469352295177169005559130707889707010153904202178013575384131393858168909197133132409818728710627771844239813146879140983485002050303189064523570234693276575216648249972422357061990118891884127106046197603429603324471689209304211756975861971160052796849843002449236690411344278595803225300608690872783128802519886908512455626568905110904312358748888381694425297801178139517380901557763695316530520103792986009647340905313486434371620165799977755354029834136211705881405947208519203247471673816946341634387799291847773950657187097374797153469199208082192114570372263088308813713066111657262532338432567555919357966010657320648026481451484851360104366002208220033397902122138328366138822177509296460248023166029943687136942571873551507389511821634710625982319948772494440118271535037921051936341950778446443286097981054177307146171389715874886555915759712694631942803719039308424815334993246532690752724195216987603998481466576315997265418068870524300527039121516684424954860172422104078114091239429760894488675198544682540935102281305222151714461390156169644163642515601227071487100962167950617303069861931996396409136856940625514724001270949157786011913859209774939782235828027730228473131201759726730906468637987904169461898319574840934321353497906421768600787912429970838007300607282799173549287068077883988819382245193715570424568332759488563370992951572947309769740533298400855634841674748149402188576593947542541923385982540048390272402413153456614551424077721451289880782768401821830007612191921955720996449352363522334936287120075063919998114972376036704154800434312949756093931672212327862495021423026095675971555870591943276383001899908733316711514923687627728094947627352212247173919258196150480796186961244810277552555224033325357152277325833641295182534472941327625741356120871619272065092556855566620476985180093282722593436202620722416681147893286132219999020345744500250518938008718517193696406847007584984601257429882055772775955999795725515540718435048653259864381140742051308769828167941241447054289127754360391202028406992855795687209088797231486047635008701727010070856524207589445762436930288220261156685217324407348438291458102568040428609338467411326689422056884544454864267844937735778732481253551760116157698639900478950239203633834501566497133269762344964044578844308753333839450736497729467356123807401827773541504740022482636984301139712968690931794466279798447002025634548538374019335554501037338569742909513035887453656993128505794322657990833557051348069362092423250977588336165545135971742906471858692520869039057285600361609603333635668756302577404567516750999624914062234468009999224810189643262684872206810151121549937215179686147115694251160899155021105778245977469379484390776631310648407244099163171287075523881123592036648129166175592771495172325596091516582048437345330828384820555835420274769167806613327187649945795602530160151877574465543878029116520961281936168416387315516434890055718617093076508851025367198810723285343073883433708750937026795729147243223781960708946614327331710730545759570113316067365307422890962850653380355812402097481220416055650530822086058287249884323883979259234750969639220855551156255733062488851924579957766154555311996762092770544589496944020726846852551705033332276627497046294314949610633292081777427434442129306178364350513846053232163342689242663059338675043114435922786684234160638529886917164914778037294414431910503206409941774605442337143029367744925309502619334649877213450860006258953638143968187083080003830152668656963560981140638151917022734884972738373400036779686686142941538619622498419837814234695669103091051130195985431841836269093203865516995784368839613738879787460656636173772300599929937247267716731003116910851401189798498973404190142460530941394942946172840315773049629609677828560463996938639654572775430640890591630542567715614488985466867571009972188658887844036317486990038301218128542202085816057449011433939386175848360412823945946038156366239602097346161701438789854226783344849312237148671009641010676179687867566703925187408989659419453291738333545084683973479949934268520750480609246494502712482527103543824351718753914774852370012264456567272563987611137533073661886696295816637361281756663452122903533794673661792613976067197907946587471001584325434929537147455436685388568114225393790595101029993390837521097697861163228822720299759943413968944678840834775512068236409697155450695275615938093091406902787537664072862063247861065183259863411995887856453535921709609325974656028578910412485112561469053510247600596014511523640052708838858722542475532559402829210752080592909728580186236201555431332091359334028564758105728055575074958468705541706045041908616474971720671021755720174148596825568034839812473396724761521987349907374246051960087370835564724947531390241709433980395720252752630876837994156598022340145685131636363579231665430003763697197864510478405903606050295973031248317278625996239168755172322870504225172888664380038363118972092258020633386306556877130915663586134264841129224817534709636636518049260774880326010077043287846866922993894961113843993407624603148115985020471294425921114181915592298316464322873096606667059505360722620670849793874878144074322974031109849882826879357643032049638200387965939381007444252384288486666217098697401398792091847301872474553640854023042293154017477937783528253162811241912338080253713628554670750708739861818643873223799923225010679663390685266127287283986587795442071148433515405340799027048265286884390394208452690849218155066405404560635059116331030704295906262244416546998797529149499028595921781255725252096705544127243243174882741068952248737884988662647431355788748425072613536562614663222086917296577880557997480346107124576719617526014644208085250593009998996900813863472278260532640755374411082959126349773190485058189064336334063562536579618664511532229089732099588326441261692047924366641247609928941027363350201255736189196676940870323128472136076196130314929363625890062333366687657081461863676547050328135513259499550544198041906103700167227663447753786909094957289205645078558398031660433475994482698025654960268250626365057747119429183241479507212489451351849413229235439370072310128557852954243102775531356476210118291986533431021363481769116211100286354641100011739425583896775244492368070410319372320720251121140947932840130804847618338740177506320528012362684038398768958049132353972795593816902228751342317551870577501495605710084760761285272557550087347097392306281644107087024850136238962076950218367591936636941802646433031811222450070419901113037406360971243042372836040419358955857574398692311706577926248384240914586815052516671182729321458005937736027704318732463094212853863714974261976611436159050587203473719261803448760289028136246160473768768395242661869066922042993479302143865148583468135210630101823282795714647464700590915403199060420226877854826323258278037750034966713106336608312368209142535204164474464445094172863599041728194399558984847989859472277153728215676175335123247716930449542410630864304572661750243605171449742586561976805488165840155416464346743580071169955420219686155450233882317117970789937384271571167948247586214628622829678198549495346541979143928222026261975031834571837098464799388610205070930643367140387089199590360060044303244824107054585544283362715064039441161357080589214433399040265475209562537885893863270143982369885322537648850438778375719637727473934582837174787122594725983303203297612487609291749478328939857276436951333670799050922163273870703832504219848790335380286065998278960188350081884144355626464749967168296249624890037310852723680377566264754260714766434539326834372454086237387586601347220293201926481304463207333779155079614632133536892910072121571034738190483582120123385290032339324529656865959543958277164113563791470916954989124046788315386755362729315984048065016283381276811726756241926184430118869975650924193517207380204629726895814666483798083085730005718372429171946021056234118837756533394423325403784162539464231837138710408087499053049806487268893482573108010986735718514390861174199524994416646302289244145812544214423434355308149170281686748525986259281460941373443637116852067061380248582250557067334599602341931121795057227744723777368258366157925188392861176174242076493185651937652094341990568727292412973891190882340428967016289491552987341861507273146143317495221573066363316560418953620628200176653987115479182655108540240177747004604530410545821091843552069886590247991228013918586045556046505510800053411549180112507339865475667242414015543844413931387006537918571344015390778205627012232152065271538291552475740298851115046147621885589976176642325884519414327519397191102053586710315028400866860912739236274813751724157932906896913840332315062214105691203936289497792302777252251926896855885140354451285482430712960731823181541523407685679045337080184969356303071609496237405317566330609847405112326394914798409821265144769351406195744821982568717523215846105654548541127027928101770554806995468201539239130044115581455259610410307156882866540763967682150460176333197523747508386383683781462343459864242297183559684987079249006317076461036621137215979062468116441298787175069672217073112921969036993030402367159175287361536447400432524435012936034930290796394248187435531322535062373104591602127920366239221127229956193691205120195015287628484775973465607834807516576981904274835692612725856974671941184833813941789315991497814527618770313035258017940918129702780667993112365118709083823479889775146618209015142842646377622592947567176146392285668581876135300091942734542903556604922149500110865100007724379199545620952257628710799389789647135686651495675983520339680108406483826293384929322124834424002377788391021519629600312591681381934841022312850412674017619405403981065653096948230247909366463217276228801194576431697227649194834404700945121307460367537678039597306045925287974467006127117246537780679669455616202169617293097005069252665691215628431602623459544494364934370333293627563108596823027018776137850720248067873579264447105696544320858176429442376822863327885516115484747266669418645021156467200628567082039446754964532163027576667755544048088752056633911357742710056202030458622158744404571416402147046971733249322565966062883645969612414982081328386212918014587475436608993248213675563917155433206470103142438752471571846099138500387038900800493270567528187189817204522131263958395830284611939983861741793858732836485962903095443678722886994436480968316360070430161214117834163647692198872339873816523874132339665507360034552390340294275433135508410967402767899496648261044082520496911391104139642692086777042393054385853944206668121868070287723749909601903790724627305505217127213688996807992334790644069664397049392792485552888607939805376067821577434468735512498111642647635010670915767729743586807593038728969008936842281749227943827992732637565933672620519121078756325925048008175198566059668592913934530387334008142868427434923012280826317685198490936223499572381608040732442453896033099390634919239056609409145383760173102589176107386505587071530545735913301421044617696415950823463568483049494605354242809131060766119142844973408238248088217973038056849566833821667710411257220295872142043892587560963018806640871622990479180611372113599372289112719846378518387112126620086336485848339952655166284707202354314886047479538237668214053460643148620434919726250453504199984318292249592716637637839065129135556645499720033246203760404942985431968258308580962749247744735605614571361888248416421703916172698737155249827297898139694079739607655101586395808998388817166648236629872682193506892318696832124999869247119978602340924034507118569231508585515526247188631893732120295027382825916635564631727932949716841078943289771264255510662354722528179386018900392919806693566267415283152329826057035280275240672951544736975971143730189385432780366254322443702896601953116293049125396978353082028766768072262792063752347602169926779620566586284865665337875784170063579660592064224344008272046830111403082388344969070229740671605102766487375961445602785125711142807760025196741774000203119463810732890392509842538819183855528189452178175068678324553579334705783085716615138292992625285849127405865149162384638692272310469791646712428148736992740010596555010953391969373376404672933856489511009139494931154233202647283002656533531112650601119875641083608928514666073943511278598670382548027428740976042657217320818457243901729046329208058369265327884291817264872761917771725334582707761405302801997459063857308335090340967953765760437047505125570400873604271651208063619896737732278636227426120860033816008568451141005141800675809103565063073849533921847322301933857693489318648962476591978442865864211790483877882811934378699882504982006171186487078120151558809953352665149028807702486891135304501538305334655992029955122126118678352656129304533835537976294645502618317784765720054766838948906541398616220798050316975648688452143796183670364970760167570268106520178309644444424820390164285766409963302382032126664378227177516320160313936666407110421955495932426421150515771404475096688445600356828687223828189649344758026509388979812115637661104549986682963779023230550682209766530155130366749479627564730219820395639549071145863022423974515308889530257881980203417207975040310428402476927306935272622634666611207697064854659815786038819255885205047958824698762970400482839564643362499988116418571242317729063678953923910915520552909215815548871551753450517121772829814187840250758986703309268688800847200536809078112854957739875030988482705346240053240988334883718415705002342088809727300119679056783977003768318138884257696716614843492818371305814793071684313386199373308452125307389860081910298673333183522759340904478542390159708526228980981854637583958444610606426404813233233295824738510192089399941433810606009592160796937666782600881638816178441228795480826912425321967531824696963117095531536380620427667939694521488665634903917790016388459903247321510936061344720013443636718140944102870493568617172229406721486386748194896012261538482133262201268059716674503555582800207901137711139721905271987961543944962081586377906957014529046103695908911315738847866500074128540087852540815009040134711460802878500938207397536225469035081386365026842961807770421641197700991098106293037815395115499446174870455884000707782733529535613479700975493449708359392488594152269550299969027777646986389561905975154720985286276508890541230799296418515832502650696559516798872824303144109558272354471550753430942721282191394280121537921215956805402101566972657626486418150804112371675372176133561002433552542872980985966764346419615455420098153486545180627210967306502760068782505782619707679442242233668620438029908369100348258290003615712575880753798651969663449991346637142054207263176257337727891106782183759021015987378164407858104615550880139372347331130319238400605825406524818134440493301900161487070863359745740678087979124953028455550205207578488028275029531001141164998012695649189508864316193094138429298729474722758030702792566566413873778594549838305941980655596908044781940122840360931469228278299014781322132835287434188221524366692302170516041900218057373713438297709316954395740866088562064452360323985547551541577397918897050059291277781516689931815827657056968486178709390504598044313406963405778106810528420964858062803571766292094846241651896079269561036520330108791547151746275354359315978238900131680751359842955440931259505158965296765597726897345841695197518110934914746056761444489844890276545747438409700442956378557809421813065941217725345342234090410120194039244462596129285003902102815251582094944394320808585400826252760756534941109961521763891133846463444487788855582469699548565936488484509593225116162761856509303359837764963327551757688864402291313584086840915036337788192144306582575752286822179021209783650367258660250759344611727254885079424554362641086353432626770893512484581549739459200497534779394012367196879523756085262721764275961340678824912960012321696838588481344585060812097239598457133953846292917457963302516101724472234584659552093276557737132959955909636610505789948493623572113691909167910242110529153688752745528822234859247248285569920123367217330281619648664386257924916090842572638963025682582984107288685756648947900918154206370562219156273504584628524981847952775825132327214638004000744528057348201240027300780005275883806748341100737605729075147247884767145056125326134185728722636995603270317189867996565614362434400815583879962463309035934998920928269788498529927549812442999042842742105877108034893954253658268233642418556075886281844799842861900201117305470279342414922136617025192394880211473676546942430489063152938035744148697750298891081076009096327024511313801696482364630348762901887979621819198008665129277931750742625780924886659069467789305641711159197383524857593892043799544117894889804476213055756400342213246915983846929714671146915183977886579020267947136783469796751415851850672203090728461001397169642798854661981299279625486648888556850004342620672193430670708231384121420943488661160344556905584587682790375410030355813009362433425262956443131905597582055161863500897295323207690716493890640022658719834381143824375282041181012744306109545463056263438048297727443780519205243712647475436176832437268900156067315610663103050646024115851607359495123231304293548520483725792354142946243273507121100408217671751753147681825287542426770992604781267692386944722672696798901360206558157110779032899683824739162144120084756630445158943706751826698166760733261701377398716987997799224847856709720947368469641054364439981955101426196404477151067830817749838654903503783646437946467315068174261179271535650146068862473134183594667135933519008054216065536061755582748221946464574994896051912530494861403963896208989072303897145947976816429925280942021052576751284370125639609350513146968508508083826551561163063073288464981246836642989877926588034652067017611374345047532852211110675389113590797977768517044638123905224354579482393581100516082235722574456481628947688142073716510052887157158949879232709727877121293185020547312252030911294966235172670136453459712492887501053016386357878209644676052589021469486312896747625823786067988230378039952246298219318796379263131446946774549366746282854914905528267526165075918170215143698955695418073942512435821268987766699513476959255669898465021089443565018228747752379119196363560188538347557877948987594187641770315537778509547047313220119300186980364309259804445271760600564041486685210486840895832847900853052223160175403084142511999201405401552524767461499199125298802769376551073006645197579354525136178567202431258334042846762149978092364325436242420537843889352055078896122606301249051945562570967166481806122766829350269950903978942060768296676404577178680822756977014094520992010621523799727276744852845153505747625886771194511864331265220775144905973283102643994265099235670184278951374978574833179101822425049766518772032040056365789062600051588160990657748528120254106062071566935846450989046092670531275870440972828427837091666031925204178577144519309007669814765782684161275554369370413932563231241930209435295278950649934609233233295488944297508275010053953257318339516920488942651791209056944245812231796568696041291865478650912624096865023424724051568562472257701053696920743394602663123401160220459927808956595405871046868860695375388335095103223977997237394913434685906263261049788696061650441258272078171674610074233272877108981576637788657606477885134910737097066353210263376536163919715489664242839111818404331250138788354624374607139680578409738479147889681150028955181452132426582100363615448453052814375165537559289099911078509391874644157378788543772962041657048979227551626137759183428755774430851460189712717181554652450415077470233883079443916835640082869281187098037777816405226828769161748105624913974873722018206679459761926550366443655852843105925322345985449707177357847944226626652594856111296744578351838503912233988631035475976508252640181795179482520307865197813896600486414512930144340179227054555178286895819240225909899328194365452263481513266398540238726670845887377586277067588705344068688665246310852474325199668854714342752140651389925458921207317585394369841274815408741468871837704588736303564470088728782153152611010244759127799019310274848925994981777019986075352682777442081376245952951349596112510266425164526167190121700062199662077924360377449049745331000567854012267271981946733427080192199521013606439060197114554698271899473223608140837381600067695587515408519963182018463141342849416221809750989592692527114655103334167223360445239304875093898108969378621823779585071583897424524068519390971928671422218280980703936290154109926408806868451863549187236627863638841718348435238008585702595400651692402534087577056966342708136314437869179345683531719975463342747036773180468875495798423477361512560761495055852716419281735240927195329336450517597046935994504089282833185686199233222473188551370938768265306694992143249480796151259237273368641010298802550724919555983563460152677906929599801395565730756027331979883860784920019727157638546237984345632469946016653158305196330509231035044885595823477290979858892414017469126939280449666812105939717602198849246378355142983007878384778089526382579163582249897363504900633558866753201410320473566406402491319608160850906487179364828559915841655047551603830478859427897512989954495374331649207712693419293035758731419230483280240417261128047788003856073302118925034361035579034858459630243875444761784363092849318418346312304445992486651533767292256723290837575621221185705654571267673674562182743346689167297214857466872919590528504808009208996389143515700487747581182802736670974907452705907180531351821494727605078973361377096788394012377923861659458251111468052728400421831518787637796201437006406359027060475343754963282958834948094012392829352811203705832690158405164300766948245373793735737273378612530016603683292481311487440575644869387800787749981988009848675063119773840800387174527513496607764294145761914256673875195832374076997705554711997360795769867221762987214388925188869583723597249105978461897332287106090598721163198511431924485972084735852173218003013550379250199837814511100764874936451278136915124076539130120233563640436029772363465310820382440028763445580367350918819949638839806101086624636789493040107578351031145388051217035944033794714439390974701537787869758322396921911612026026497117329820790790846962934769655673522576017219902581812670589161367023942315548811104651001156032792136121918804311223052703438434883564825576481234150926431751544983431861936369944220836305178325293406091451792222436840131654738194276961357132355486707058025933732826469018514817165315318741453348558417138022461456381579813482924087723014578382860980886592323619533086545857870327057007762660031073666257417479871247234142352252734946689932722672342148031464452379633507422657869222286753483023167853596467108355862612079760236525433169581424911381125139734557505736383399231039184097853494576103429798591128753510858649660604674266804900299748921845807540985237737188209294083044763868465748794495422498506653248624794471483556193380376293453654626497108335466772172187902883045118295739281545565398636470808249407659161092222601716305994707429826177355512793016348361544060742286980468111203833084961289460806199917508044387555115806918923140673495836849980696969135447133859957798930011258276417808321610118862574143650224081342849415491944420671468189150699010341634179257037530325958347663398757164150354286564055532467014045873060219396411872978713676833254611866927051009037597276993595278538506805159909977277348112651919355946412943987394244327950206606764167040612877482062709932199914948349887823238823660628871871594939419720273472545420139993780267920944166206156681619210914038460888476734813986689996355154659015491344064237011811581513216477728634395355624027377051505909795140209004223238266014928547107633606036376008904166399869912097368877224899267302131628392510723728500749491017673721633846857204813152701631412974934269504616105317420837578995161137686851463169239009407575666327167750434631461643757859472716044424390732842389514469920586242133659714929401428182491161787242267478317489476876018650334967500801072714419895459098231352575985356865075847595049884644578196280970008680103146807543748601767093898018322302980571315667118815957180860886004646310751058877830748078146897522901080084107185117666967283503531210854478113256643741237326220006677745098119325041445191260041035925536246918141129051963937979342722529093355713602047999558231997828634443095515741369839503698787467639892814792200568605159885565624883819933908037808133533196173335674951513241856380010280825501886974950492630030826068813329076718566209835297332411909100513017068725308847593165716736586360981515344659480406362640226624433427813738987091070412569095509115802386871990032089491294576846110800506663216156400390256989029354686999049928535208525933669473859601951499396662337279979532742449744515187500034328391135189365184938288430696870292604639259598276394042551465199319479183249061901913094472039953919497922257922966714089635744795923183646467520539200623157343343318896571608774834480053622737929208604825180261692772197348928704814815079903500175634661730045760283947077052637367344398883194008935270853253894517895102953878700156640017121788708588287484214708183751387880951498385255640070882924843815743396520119353211356901875460882683711078529860658888056351389374277040889116721446475617511183192671342138981734770170479720839065344798533560839498385510573673616682365508148755551931470550455619532564142170749515218897186933612699835447597036233080226471260207794332632682667071739593675360373783582707328365296008879559274748656546036468087895561251011593479908363355037015217699756388627408939094310366583756514920790031177932105108307128936922937372896801440499057421734042859680120814547393991786722123973552565802646130641068615207119487572270963344791760782994436811424362318739821956999623143989518086447745429562418849969967871240859140593813505575477976581997033264451664680881555489500661118081083016689480801793213957835286912744049992072813650046175996560292381326351158710003512187958806177777082292367464344839640144480132775086085411372303327867780701357819553765398739370581172460757390879410816728553488047989217289551697307022333770933954997642657053004771714477039101569897455189092914816074668198211333776792771622728955959188323117640250596915215183639057899285021430850888782580829951983720746225185482109919761399947617545859884842847050217091556912285788377552947052862729798554074221377142244883983516803809164419140836940088266040455244483940791891372171616840824045407496296590491270256387104850622563465308991649270475967726709995512874699405788112503190019944729176168098728822995985336907295331137696305732316732327816622586159835777650803161267040650823596696557591409994904704427554080039161377666321652911379327806593009772683076851083204957768513646783206497358136585598734898506777338550483408242130279349084550214370812559247406075328074193327184671375861573438106733819934044725533811988091387301992067928245775081776163453564429553701252481018204895310174942602034785890935862451504084291915859595455644801629662417073143934217102685049870963978873598177977978116697129490782989356757397757117479974593742527218707475973250061842691439474024631645858547847723592333458317867557691064056867277216916150111744115760087450513499343710375518311968583436066674503663208772793856176758875601773740355878252863981450167814933872223466923830340002693385863674228952009061236411520635355131495400211764993566134410370347052240245269193300507531571694808399360279242396059073815356157593411918970860082344279839866440035202452093016065664631050345269707610307611513613185060691976219340529509180457860212407278384652973902220343255507906752017672689253721201947174732602388070790081512237295173970884283266288986292622407838759181110534616270210536891557828055114933162377362303326313484872191773985627442538706239222659691682335229029831247094879213415712819682072915221864458512655750073789155865713842486176780609492884386273914703319720545347361240187640510309535036590298277513481029496286775063813811927491118189640994760574130006462301871820505114228149190406720295791955064880463142773858311714709107906851216470337891538159679714954110400072411379663499601536609927178020007303661086095790320505883186627702760135586810398941458473969710284602689786551002732251491535671059765077750817748064442367193286906896190292745526568170203411157052983351692367404469868676705997479786563123944802104765343650360355975579301044547982254070577460673056282020542370884025994625227491068612603476545118511782542043581111120218234419289704354930807808572318125250945354618296237505382770982453974009249539625041692301257195849670169847788841255533153696305091817748295598537976119532651674294068850445482854239537470137581748495868248067621599104121652535031056635173228503870319730938126701720559693116643194689681057952006279803385185087197430428758104608499661791473836741028337169528196747015443902047982077851746590573044758244765197992816406477439430152056748793601377665750455808633383381449020337950053335627921740115143257911326383211152214412124361040529304290942839934613935925948747435455555518728696376822318786350682611987957503176621995357090653256528979832414535477894341393336040887564173106096831788634836332428490427516560656950004336387386919042694950000556850503939271463101047225506270905657485775540989214639548493765745775196357022860920419712766542501721764304092639528547011010469882878946840354144783461411917700597029557219574503340798266975383646867455227185044551671114747129242604245665806519499428510468480090794313712457628262382842620406437037821036425817406766282365790223830801095610083801050075911252849669188769941241977811345419389138643336838163480321509775414663025825312017925317281243174879481495528361817555184673695171053009050464363459411964526703564496779921276257481130098564957899313479038954157868345445058812121623989563605651275798311158497206785398741156577785473714985844952953108344502232770949781316775239962913797680263461935342426407075890286126543808483863951847731512270659605167698048915681399828279110876021683406938068311804705953896158921623743398505808105639898211564652458733559680474504986226293088117282214709038855781036156517665709457835055896669894824041875423653841927977375578953905486894973291167507423246693957051580342939340832509368144933227667630308643001431350422986551920455613436830730291308833595657981667948129343874798344040915168471844374522712358564512949438879269288231123448527007130736412475959127457642083374665284358400541230455192115146696560261915093160449156626338027842095583901479894621088511207111937182281543437363009808460001781556065058117156604662138626194097281194509043707490184927837613984509601654354582307384725493255131558877232987974584693259347512044266241089989754725487436377436437325600823934490182132951522989847562006724966212936735754053792577768752466369730012338901623806917136309238137380752927356231987238251416803831123731921563522154769155051047908242476400780331091917078196474256520521175351984097153368954258851005951553909963626673470816972023302301879468434120201279020990590173978226561612955930407509532847618086915493234095637567485504764836622483859008020551518033788089705513237761485494747285504534447591627875426291713804926146020107354803286636915074835413497339793510583302411768604937340707371852868293767991047832151138785806085071125004350242570184731586007851725255970346134296223653901948801738497246111205952904266960831275124818037912543258700140007412447853988252004688708420200322824896215214922907162968680379327299122200173065286973154478295750214463722136879597850444966047225244724993019841179438943804761873556101396650861727492950038814095202963253087604500398160458308264957453344637106315182813349684051262009187412044673924549508334767182428261366637615491123065653102675262306914980333702955176959167388575154522216441005148502000396233694025146688973672039680810291076828947974176308147360673609140442797280432518228343462414841230228887393732495461805947729119053716754673641281810469997823494208773226245577760557101700186987551263984692320567379235257767894924057847520102029612206105852788759682549301665178580020208044519607536141171863255244767504188521772571933928941563228088861550694980004865805974260832262615058025679120847066646375576708264600802518317607700332830572069920352817591225615245528918792655937210142729211209181794550028314358453107666577407772189857070614074805539653235754652983452143776866810843739605765796234635599177404836839872788690977451567193953048296512878747743400854409465648233078439639942171091430391263785558822315762004835401268830499319684080208600570331075774651639116307013031598804745094374868794648043173843239829615260814699742824119200147794403954934047447276614176832507845543302444711886617699938077830749469711356564591773807382381849773535761142988853527643394237868677405112989802286522199276041992169625648262963342270744653426329684365775408980781684755266760376174180308994169384757212461729089122181167374225728217112270296762657072939082405902350362737827219735889569010077216771844031813508664979920832954435586042187362936009553526056055727706419138630506546944760234028853986246812513448331473298954407614137368185460894619279190979029892082668531596643975953544544659472860026430017412399124850804528256797716013758419588600777229180595801671615405590584140427201411522476224969544120948746279469656148714237709964483364286054808561688332170926537929317382023431106909886668528365085661557173458238706078130513287564843366016166178597024852306064550360666161628381118495379412767666665449440603653335885231404393428396903941238198141478596754843033553199539788765630674088954288401037440653068283015937626683580515060495786266063225707635877604464559722163251341672373616589086134783764659624275088659154333292995278349298048806161618187716690426276039869275680122066241674059046362705206613637811619071201814865832694394352525355539631920320909135858228487476655434545717631697633443807407828457548365240213761505085023385212923811111090311139794506612522311471898550156778901644584910368457118169349875232141549285946615988292735135125861915719024517786285144398371502832272623779359164203117012370704923861544528249681966125156192181031063584800436766582951272761342123057491045880502390708048969792600256661733809712883906243322686420850705491199021453486412320188337012337551232506943783659395368985461674916087604349756652481734711296682427533887484390810692932184605652527133395250523843667588285358448949690575405529618901904467593314902133194855561953183304180000024824797812334807168340598067682125946607598772533943270987969714880093883426178448795100860702486977046128552378285918332421306880542110776275840506827124014862963691906892603146474136902169091422900845444879877117257423966704365686410929960604950770282358995683986523163801969903573769766351020536882124357134936942269738339126144847007186680155843429294627823420854353960093722189167788311862180261841577754677432846730547074982018060035357939952626042391362937291242192929793101076902326826606391581336303215253439602963855637040767440418984422659982864325185861556135321333281324682338250866110155777072051927855167443691558079490170480551741577794475530232953606306835996994161835667042182423464043616174696537601881289763012731125497180706372640178633279126198256535369745348557271055288849627873858127889995472180006665362210415915835706915311950844299377867043366617752429294537672226886430116968038328968106807407436828091182824430504794875893293440701889447722094460121257274121306750622798976109314982419881565181643334732859095821578223123625956349788941571897023839434287199476258936176412200385246040399180779604359313431420977865461913567896376315309184335406704070698748851683891595262499023734385944682960187343086368212608431400261921187976071525632967102674333153469171089963936834599351352457021874564143644963692472232272160113342746466167502009040760190227073837223715290140118661313025750149682396955502826709911378638344643996000912227647881671133194051623341506260899431985693924349655970401649205285757452841078095266188731292631481390722430668500524777140127538434157508651384926160223241018562443949454587491721952331216270177626152193456294160150629816212950649340583138091520784144385969253475926725347146944905549779766902900969156379719851040415669992656012734811370201172822112422718559737328645036131343034913928911667678065566143596898829200638181581426474171108010035676454012046566388827980228771103693421213923690300273223682283825054581523096927541295783499520618564653078131716790214116275543633814293681487057137933097324588783969541402236523101884003202439970878664968508262734956399831382655190764180800653069093578908501828557951128105226220485979644457256826236153150544423033010249104937569522919201382333665238571570001894930759382493311864481960183778171925452121633951409412399422694242189121428955505744105365893856688111376521751454881772965484838606417510188346258093246693658423334687212906110976053413324239464554090009501586057155732478979318344838539335027870533087862277318544918118536430150727053379936792356282837053403390094957024376235142373549322230975650164634886448051820816890753536268173692766875052939461996165818164240477931264551973113140817577103340716716367391527009762686007282675791729412010672531032179387424945439032077996946921169535208670390720329453167359445640336337911858267192884015141381386730528039801721143931673174053306145991010892879574619841985370241037244368473495635722162624452722455460385404901885398941428251901143736847676485159800250277582688345891399891200679402167478580167571333244020348431020108616233040821696028626638100026894633361152907475602629977041525216670139576302414444715711169503293067055526934363814036667454287109046454590388390842955216544659917244142678898179165464972898288193607486527550165398001074453198169569235426761771766478490459678998289326318160430305648436252142211159225172061712366997799775255218490606679190524842178576475843628965673310880551938660064574954890053503770747911075945781331978104108956808645581398127111548384702299352717979026878128256912839459903140165325871292344613945654235092109421810288628276156030711078911890347577257087543749841091399143832679155249813252475570245529750889201159100467487733687375139697367340894560609532098716700423273771882827707796108772247089746402858913439118942604915674951734530389807677603243553057795356207359887789861846362857580339522105445426438092542481019715457190830077735853711233780620830392845893087578433060822216993396360610939417050872742703918634735682356065194998740628380541617582375915831874864773238837698973136313857558352581544769885768971175706405770061585757665435689923103458909473891428894303495211919494094235031806483728516341599713304296388069761011284653062400070789638476905518178937066387126761484242896246369372432179505877235082937686916616071780583996630881502193558704181281051627078910320269779077884198943188865878929030040194349956483050967179952107641953182898922375271037093098426793297697701829503184438164617570345114978611408009028108114360209756782844381113656628258278575397611092369645811982963651158165465735707315850466946961937082759625489409762530317590052004106302869996199822078594372911174609616865189718905341223553282184027648841180880615316887796606692931342676314190303507972190588759412181013836909220333917448538495863672786591443904596633485177338736631589117073927821390634235207025872921858794023178832855335955870751973695767987798137934242472499858544617316352794726139893006887856448563979698122831229462814940291308398424294551737536689600996433716276646124051686283450518681259921243878385570801050993443871548236968618396413298790133459064133755408144403102970171942083129953399506251129460747253269079481665303438778978433292114882395587299448872203154684645823343072714785419268143712461229346980639063890984028638818355805401728791861704123109355811490693023920753042053278619048695988491506899194502887257319225253355936888356657162928996367040715217776858902615957388897921543847902153419548075568229216056864106893500527106987276224769190883076369277528208012442776198017859172316203272802489814114864810698522805589949838703219557002163497901668205855041522724616318835302957546094611506080202842480438197755979318326994717507271782791956218722034957865381798014195314058598943482208210033787359172629062691314488062885823236138225548378710957324545091217272052190267473538812819654221921507995032941224538195114378526550520120092427414756907432618217584032066179470977688855839453637091093894312757413751131856738818676567064070103587431402247765650159883584511649099204255086843817567671757968086377421521415566510006258167702737698071610142316745104393912373382721307978765441025857070582580131926095090919226822603638078124102397702183556447759853728038670933039100055752479549756402701492979163489043810444596119451867538390430549891222755453792707971763516746359955428445733230861707820614544821987702530205278883861212632902790471141952601194616661425640850257105196003322150635720936262708096910398933452165724974901348767419105777769783672533273933672180767781282282590571458692604939453143365402422061132466395236866272846173930699977719841266737662337255675183382407930136592677947803893993899040371710344620864069530038847645404426891575530584765077878582508515660725112162045182399859933671662386224003158838432351640233909085053529162471440337850582436128418012981708962682189653697477216663197005330571516969210061484872864595472785184590856257862841557668532186723909759007080405943108539992505523737740803359399892449901053510339044402836254361679816173609172130935563900446782993887274719304669443330858165742014154652640626732218921751126108004045495832993827696139574781113255785054582715333421986759493298943240792848694156395166920069389371493792885660883463763463345763785594530766910773880767428531950933001083342381061559080014515714089148176450654717627009560588532874867308692025567886511478307272992251989965925473199833956138498728290208986800721865744722975845620109785647182196152675830199767524179301121876197997100667152996632019818422029363433675831370920640150148855115584132805225620213740842656869171226141444518492547698681647490809738502698454271474365496217488897300672048104644246569133575333704089409906092005653714060666923973020809560383385289232078871112790960156019072979916819185363352262926890710791499934403816688648281814556840946430701087751759754975256364750710296775893132181689960414883455243685015442265629140467861365899162749089735338816198652298853388489818461514266949268904889321938872373321872092190346021597546294406532227056512051979763938786553528060546669244252141699387158161051763448393866972752794611011739351803498154185110899751676987189178613234541131617195355097971364601056511523370882967196764817653342765703679645335188329043308084358709555898258432067004218928858835271165827918270022374688270407251361167185235988834750852325560720608357361658522779789109744843791728649849361568169324534318435201694984537624581373431022229963173887666300535553446746804507924244864158205526718304361418181068911790369008786384888819203537120405134757232840753398255311688511518996069181221612042200688014481260452068810003474222722972813819092600619404921812580981066577431043199581124212083427734587568126839136596731751493741750758653451870859935106639353253430866944387945081459189803151521956494771035130810009696914923633845408882920418410706336496812403865197576855667193155581962241549503595828094790516774168446445433045626978608466411551587995082497277115395405996129807187054843670601945463735785533922226783601106684308551820404321889727386562752844865639805893739173598365957562010410902076805923330577152809690669577258331402012925532052641556993441910112755938843422804842910590208784411744237731876711514875074360522535301125677594294717496732347948811585038941203067114515390706133721960524766852337946289342123948983296498782634820628321233708082723542977328767669648854596873286064403658571589930921837611995994388455198922511376013381274997940772392552618880384461810995977148859788390335820664496874879489248137799811660954753379302180836107684859863272058398756051373973551626982439084216487308665281861085158172361353142918270113163278536736365482840740827860561081025813604703684808700320359618131786608843026854010705453032899232506239712764058470143514972660213820756415408872322725762029993365521566792981979638141245718909424536522536637702932521253975277893659526700805218723742029922970021178305406083349636989777526946456404495425475846643575637889481603634072266674417836347612017420578020224991027411508847102322121853611956055479839801977924871171661908628567720997326873332273361221579474421405699061964935324277182377598974614239449254131508024862575389451575653680764512665097550490037636215533820611996498906924477991640454792698927401220132455842478277219126214406437774749269143472231892927513750147519335685472282593752110369418430573442194390938844802376507262909762592067177202800643040649954426836614828942087120752295394261147041613588025125748712400417204951158547052239695335872732461938337174117357910511599621799601037813473642951373775297558480344321320771125297817572221200813683338983404240183497367431062012343200377353516215242726977956679619498600270557386097247415072228867274460437243328611734536739889034639752366789783734539565621807282278059488024163170787922494003915064940282856986001962765185405720963355774293750579840871055323642524231048206603666376328752236422903053519234116029897498919458360594605980132067535984783406450420769213707783314582818082562675008103697389092551982505891891396502356662072613438374810663875158944899678579261510789116233291135375509306063159543198771609085435151135522622142174737981124523628180477628713954146977720216800752092649346645642251868256608484145645167918719348446919140134190833799405088674710587156055441151543917731590628305677966926072569307274207720279300881700630991443299277735737161881277036151262255175969185528391604926390886231643460464022636716678021114121863566022054195314525423408349525871296042629981047143833556898343145119721822642794914863702871244596438721535655418345095823560012919285960060299617968576284580287866944592465297433209816495639482442349152431851829743495055110857710771128569961521837869647902874747533610232453358255140357778444538897338385929461401248449709711163848360199102486078696223950892257966546546449915601089636017511437054793644388302570209868849151270558831402149770177808982570175015816773707992882587765181218766678667266944290112780534360536056221883977192709296236389826085498043320933688849297536703612086562210249677928305371062785249097048484052756231932520283998648662203037655594452942736740335778044057026117198724507621528570891367480499971904029557450630012348661258561323305657338234949180105916610572881407822986545118688648215534720005381927988668729692900433950081455396043533283237747548651096546278150306439511637017988004744791099767509453749122319183310803013406424888182984452449311493092955823444422531120823575698438640487549222085913305828992999044482312007414621853777001728960205530683255454493107260014907692635970575910060785630810769109962275131566045003792618528593605940585960165505450909805171831283105826847878870882962043929822002136173621753667834913633753673487516495575834187593590824150190942520620555327476540134254269734726776515574586796467790570614379537356997410484923694662954618945256863920255695947629148771170650486387497954724581665658468713211158191609186108630698088612918451643331214939875940218573685182884981925115876419263905005872228404050358425439884801461692003077325094502689628285366736217032666266043331109724893527872162011692114536749861814930448124826897887934393201334553517674453988249499888813402659515221828775897767856411915265643626447253482662611272583098470182052158481367425529138476992216040179824289500659179258516021638462231706452889833972647397917603399573346670011095760884552468159469390231827607909435384477004324251882783007957668812083497721394748564014985601681882369245524772312520611690163638733759670213054403364707985607644291438051517488183265854707104586548570726520925190873104402303546931190346369279095501016732148759366067696482016884008610769948112938119883093800389877602638042950417528896527226912479074482453695047822037146371248040960111042393012651461822385252684075782649273174976153610197709155982963145493056879965705790743303144222085493692679743707063107370894525592101328594311555333835171700475237648688474136200520808675987922209605069916902341295108863197178189419913899715379314597889487330608416679323196164390237386279245452478113168364736028106380441386639510646179999804095973330890559654611600472772945162441444230841031596679854230823763798281034910860923269967660610023392476673278818131916213643953807783791251237838662299202254639232152321867568680420571912553847098603601115675531579887410564302036236939772619030860452858811855818083385707077213837806467343688257495887207280417703306596633430514448117007041358377520021864321682589707835335634686179732714734221618744985467233301736978295519822035960924658560490768181503576615529163856319428443196216773383206201459779893000783723785726750382321967909132535236765689163580243943986715374931179669980198892727518378545231578241092655755268550732815181885948230028871772322365899875278658484461273480328384926445801077140393906860644955145007793315517073865475958504066507336069732668297014267037458178306435684570466720336584871184222683715942699759155559211531595854320335693192184758088702453573083431795083550062144155044365540280248915238862922437097596060051886821464192647659983000320594383228041668798768607634703643364359587222439041007345127722552682909088960648225377637017303443719759943328762605359618790543650234925603901893606305125226830818551021650241994589598366833455145849691521383245301494213840017944997433501534171214865838123149751418788479774088130538376488068323894394412313470185467815783711837512906305786912716731555067941860264361984619699503373795041567377601841431353714968175654356452803322464328413864289547750292767822556650394292291155248418265289523799678140312305895411472878572516325123531678858894273245613300961493865827390112725410812920970776357950283822832954275077038499193127990814387373516264296328438257510093596503623786780324841007071586404530462387479997285872337071198258057850023718566765838463690574720475965922371476601642775743782708255538225915183051831330899957553179380716719857843227536663157833564340848609603949824314227493420010021198306584729088056610226408403340078183442627428353311537222986523749938254808464270663624379118820271507957224199209450125878449824072502832831846540232389285085269553659336155614074390280035549581679802308191038205257379735385211436586352223138882830662929655099614004640414780978593244251053540105567854912585028325650288143617341900340436228958653074146844290735959842074629218783776005495455199429102865710854051893290083890809763437882454435882411260635146530382907986296472965344870401404222982995032758139641055909189167294296513583728343537624733210731178309626245321373331597396108750055357610077541411263549464872126256412880921623040670476502526527419165980919650862509700166330673843715640782108700608796578767578502872090129976413788449224493993616263229960886296025522133680507386813272549303152968428267343975115805921532806794322482254797621891642352325651536902418141168166866152195229725646395574274852328881872437696617460288475752872664022649923113143593224119709082562309828926517655453423885199925665158733655910663249194381141856153677584418409152109499222791608848101960413930892558272553189967913372514121756735827221142111217814874022254009685793049115704435806080681553620617499095595620239828237575552237643552387702907739635938956886915811095559060045041235745258892794672747276894537033115743409825309680886205746762856488545661188713196493284907368688711821646610571421118400158670797530404349899983518694358278853590882038682018202500766132491735086853042124982897537895049579226936866630743804348549145232082775233289761286919577434053240131100010946994116390792049734562202676743510939468672234073615827033467276755807146077159661887975731518316698373769320599992400468939581897948733499996332609026601367890248373592194374993163637378052931669086581954194459887748889570142663203068705758087305801156134812953781244978264222534802732484351999541749695547957679843386019919531317354825280872696957012667721915890181742827262468269267107309845412945974040054684557684728235272649892382084138181043654508252018042397425180849826193291548383434057742182594885418825937946473681794999058479093009049240444647269541690547653439649704156004297257245497781995506023588618160166705897387807845746048232558137338180696928977157333341483129168010645931132717636013365048820691253453251856522797047987393308229233199365638335924753750965613570399418398484239493668245310651244228754899367253574526430070634554027689217380148496179225513927999347309618050012200283149479839874808352015144246405353446569108342499684364209378599857461376747886370633351106941953656648129568911558744013560188515824063611034202255231756547288697242803603378102189371306366442064984940908030678918105354378535836319517716121103264693982833856507064939523122744902785510074264583323894099366537586799370364609941136312284280896543347779216770033318246229106023711758626504014019742442604890648471601967021587271738279563391404449414039506351468065243781882799044435917421555105162937535575594134779544310985762964193278201239510880503563150094010948340626251520414174626876317649009792815665766989916330955247695295110511067801111265393645421047531206707647913168939860885543795474409834877320669737077354961599333192063826704702389985939641017552890798262337325596436945150474036158434564688984792660333254432761540708899170772919768562942470498232277538786525110808650801043584072068656551544254906233875654076535072540238120328317027224893327151275287931202635568502271911552125175476107125776164581046392869817917363014267647882629940619417921902910594905306762328571668444962531180023876855504586464014630576029028187250081587466309057712940487044856118206745003748382428681001183354793179116899136671677550727847524620630831588849638980827238027403751566613012809052499966331327091995029081053971692283564173272035566004798805340507145035350698097602756594860618772177561457167136806149838926596290269317798096844619754031656840449817239094356966892743644826212115489085068564615779978788837546801109214033330922066615729577535645484229901182069692613307096916587564029834275013521169504817050957449237845174705631692353764860566895924347175349661706134139317921726951557729184075231523533739388816786984415043366509177322650617223748929508218007499961437992551339982907629899473805363614501235129213811203013494053711514560184224310603779453835736251610622533367799833646183111824238776063772517032748409672163914297642177390931106560863865876489404907123968846083810709675047506085142080080943992088901079643998570532554837614685009928920771098562370447461889322968410889605757115365961987113902276486212541480606232941430054164805340336205720468387100790909637242680438425795236025136778762139292208458562866469287163887219601151630984926237882978418681552681134070548968480269027923674135743667289789280002837689403671675552170509483149862948522962849384130632284750786672048860318831018635500206859217772790146441381577388784718180129741011935693595829082130913655561629253404132724265452899035907461035499241013303414819136244459541608552107275820496402607789723809505130731605467318399292142982678166675575590572108768397130328968220436916257257239924508747335104969921849215294991627341847500592459136286335253882973825508587151241068911727010775120690843072070769395561262761043713128967046426605644144128236700220048289683473606664949427555364693253317438482857547550433400362002751026755401590774892184807711544697081532189695447466926267845814755122019275432654592964019404111272011563253248982946886247271683454196296588331864181143321010974367580821297604827904265916480543397359242555745331413211787732936414699237750913047854019602102485184940424022060785694711994841156312453796438640518402307690956402725350849588167795558761744749751440512874881493117484860966210681605867836008060378876850964793426017852212300464549885495128078798841500931817176641428508836896595537729729743685072776134171646282924525388185452680365662546568458520042642174520389634703397493003171197260812805191179533662264089219945134840964522212156866771140638460271895994294803692021262199656211474647092717001418000043274709134117486061320706763839438994009271509046266898022183110454949902504538116135766517965692982091259918395388585711278843268225082361024355431682461768553073148407022364665772847579517124735555780718098900115422118547155400446781505929345371071030003455164639849328312141417024621791002665825102597769105659211002754611320244230435055398346617272006853374326883215341351377585348938778666709522605464188439065242056926679782088648819079170482211670776951273688955153938522885485115501343418928444310509529532222845982641368331946376138037794984772638077732667181552384539624278594546738140236446465135563904412191458157485904785182312842046240858661624598606613551707001039636852026056560601812746092634730897689626678122851857793532205851451857076244438393697520697060156011881059759296482139905733127497639889229490039342249349299634314648403765727475343666549115968708783675409712712760296970030193443826739707116736873950594019180434436420622481243946876280369834814543935584668595787192122391055302521483415155134065789388858439472325950426135376780625636971451256076556983941948689291731654804613262092318587470914072629391875608991665429042287880431071064412904818287252057553484284683427097956115451111387483961737772195258125679590061225191317928835778862019291027897899792106973971741602654035646388851945746268472543712978268077378637960760020953712037378515254303829163028887034842190293652554445680822660303366206167518741920903795577583298108254896340115106770954544548889188669097102504597153484673222189516815719080564620072976034928552916950567644111849431319738297046884905120623075160474177272021143327615551664516534809126380110501767273017739862682409456180346972851945126440242716865492913613367882884693438044051625604887832002024936832903937867066381604733298222833969065355362687106753773270916539676830250401211094562339182323160102169401149253706981714226850578600302948998438519761260406149541013330947725614743058712887986984764491094110995827045916016816360224017568521713334497508515838067168293426265478860509769142340506689611258601424975873367318567545242132702610503439929106961096121672760743429454530038386525701388924407984424215121031178176102484044513110631536390429003138124379757537152891189411090123474425333311689175811017272883017405433727531843586740076829427242500905515915469840349037335043528150425738202460594963884581643022923204764424218321591571294017742563122693131116994563362550871514886859603850107816479407187099567972290769731771031330856320166072319686844467313889417899101343178515270468662693009630668235124718259504444580906485236449571206797694866024447848188169377167558393082037926087902203139886203864706937611895234009156056134776274333321545416398399872054269834846000578708389051989581087760068919755246195696328496467387484065289182051352631938448556287934954113181201484966695218188881772921890132517612524751109140324402664459816156637358083330369695493324148232015674446272644906254371890824166496291963488858764720028551651668929162668299100955778468458793760396873092160891049927779483333574369554798537580714799736899109661547922919249397689623951943395577537470356567463239516799055647912113874262216256616006998991476409382238001521389260528175278838783062361614989881424754863459542785150019434691390753054078967789506245095945256746879661298106030117746587064544068840396705028764829032342543470653838783409755163180000891587308647380594144216017476546352934728173591873651419055615683154920275148928256912710520973965435229940852249869904501820957211298606569347723090880225621177207819348146821353851872369803978537357263717062608626485735607106709419105690158678900770385267903463260885521094287930370076677289125601053530638216100164470853941244497323696575136223980016822893527480709407969377818201758868115416788888025667683202480896637206854622777488603210209202830357954692330301548703298058410219438891175141737090352468930202931875752114137707410039686225411792143110949121339184708549194472282223359367620554362550812556772144574447032064169397588488720470946400991099200659889208979096713919057266971600923834544856248818272394315919777225785471022930777842647506825080999913302807323226111646937893758502974939072407570655738895183154161094344023359529829037696852055001058699809309754732211895870454114992356044264673000439427221473215116480849335279985873389727129992508295834171126838677735599996884047436523005447134735428577442487065584543392830925656436784006044254048418191128557660607868935006847003384508988539739421257420549384589995144778999935861963216026544828458195042213188471576701269748005982233359504527229330103380926254075605792042608181525107199648842244969054907320340175817707330284003221501353152656300044771685496680947682939895498209359462589196668218477571196669465806313757674272917608656200078528949741802573031267573362945265287444202095626495873224578697545636383485827010433153426285456980372512906585229342128009476740853292958266926288472395014391241995049173380687338540866171037926169827392783705044670476395645009449977433835048590105092101425308505009762740673229311548053132629764911161383740911666287017591779128345163654021664184347197049530286983714521512440836742417399865585977514343904799009690265081264523893822486708784364371877510496393848678753469789798958182008589800044988022430674937749997363120285011080903459081679227086733269753963700675538943615871955554382297017031421854491105312895218479163704353111235925125720591283294117445965068967594519112159540399577361557104462632109850386950851287899725764619662319735626687443677288588034696845530432314809053822875628031096752066110105351784489534401361632678208056381748597870136417819676164927427049219774245607401247068070949241769744576820854603137701151928936253780545002242961317383233911561717777127991104121599590376352257749141772254769957054722406610032125585695536486235284608552907087709073440316338500191761169238973520056897208323850410718104125975896626520945093199190177416019890710750710213762355990090420523365344083668241789754723038606615415619363242266922918443970113334737764014314611635387127790557952254121147095341820255399439628302887617814437151872623249156926155269852064349320760654487391071431238307708170035499973023818681584455142050882363084147979873484581972145780091446337668973789943271901618039837522406794937885207683669501737506073449132319654235342769854097161944204784515029983677245393673065448230169655228729598631953618760703212505841762833920353355094189013746071701689760833718567038438568308453573563020112332181884555039993749031159338364261262502726248530723360722726700355768628275945745434445415701495427780016106747651976813872920775689539876867216741847377211534341112625721239288975011625823373576990845854158644233400124308797440858651230119038455054983738940715474173411846877546981112597968254644822353577300579555680856701188095079413257151725747235695144869779197712032045734860272376537656699485234627250955327517908341185378552490982932016619294058827044583118930442874849758745314823776274278151987226206731421409523851655970291721188347365791671621939168624024943835221068687863171912585381229110725465357042600566357880020653513761933599243065807927227722255931724975926456103080564677490377823167723128205036669586030178377678059116236288488245789530752910469030939496484519600858539329418106767523807052373060489110252473611504736943904270567962037158106156316030713047351668098458985462585097723923541386754212144792570253238330255926826650556212888752630963701256971113703887314193908759000575530153182832198780955275825650698064702868711967065020391768698747115194370676170865453244442638461809296626547575823223522776540148286251829289336318326458622455592806822844082641741863121979644964663937789560240486417010917575826281503523996612990675530022886667390836349678836181205222515898971479007186884848036157778712528681957742422813593611555145874134332965247289869861706398381028989175182707917843656355674830891572297027857594966183586266742556300272857737818610746755222753030331900341804649125950104541630274083843800902284941704380665878813847174522388569012699238623980594199170035175113621919361109085752711398202701104417366277290890736933548537187254419561084791807357332321604182330896632304138054483448080679539644016897491175398090204273209969032013827340644293245318822947381318270962307335361821106206318321968190611296822001917831057781650113557763682675561200690511475106148661465911397960766660304218877803072745547113564787367044058278042168030741254284272893566057763713825314766382756335426541015336915525423316802607921592413890954296632144893142199371360773139623424290810807998347014617907190181910529961541708159807468059212660950618144981297820846525362982011894123522806960210927350181363199336361706588862002494164463522831175336533431197485382586388732911206181620510292783447006918247319036165717619208749073558654470677620500941904021502573003693395499889711222016262096877601218519274437076251230364328369739482169004220927218186587986195959826131042960712824621237043121943900456977107732814398326377423731650072058279521854101449158645024295629168404457060740075961904208928892831911438068715999187642770687995707043622877311038570733055950767798948204479420179071719562661195121721873967242305707263412581963251780180280436142536005086434528393596835167908620828661732696171379844772023090306623982719498957281308875265474896028699905269495509678509238422430589839312819536639991852179405992509696587431126618536934629294136159112694524429580849561824696823834228617399912870224984445872983749033610505898124899603275126280961618427229274549286492629564355610985266146079411131469027307833362730810462826712095695604399819623936591742255232065981458559640909523223786056610236818828764623076894398001495048148807663906071856090899761929617420191887854983171588523179553808802505581385749901848419164232509612753472228051123025732747095776790595767166325680092498775102688482051482526167147701508794780549505158833918679047691530791469907077064373268864117328562182974826628735606946679112020129675710831547566449884869538334605382777558219374231730515618248604469758864742500280622545616797172823136787789829491634333367500095456574666061709793358857287800622419949643581024418802618236812201031117188353556286175234660223325142442799141050390030905722777486575259572540917459777077140253959874328269582593614872636372975762276021613179561049804953707203056126849245679664631108295681629617283361957703527164263455064082684875623334402997314301872601093217010577094212378952223420340792831596970024283073035345473279008083232509788026424613724911923155775888949429881777756965402962132978272916633035812864548247749087673569152997774862156782223329112672866579763515143893269578078217338511000932312167413189127414865947980194557800809201951146551511708371504746683667201241404453396620209459876449452587951459399186755127476478745079348450454956425723154139766024548308493988562958913401303347006721955290009956993620499431826327482487254047171179267204651611051935690333128080402126155071462138294153680244733323720752004201737549677154752745072980985085492242756180846015430861051465091635548690021083760559382279458534559422858124668430970596466346830793783128723569491784471614402560843057705484254339038722845748992168140144348124758708270199609546740580951158199890818937317391740228143249659858653428051414672809162602285085123413636064292506836281410455360816445762109252701958025408699685155999150937701870026562539851963238006258736066685884160778606812337937103412925440369213691398814731313795463001214155045834460211803932814245172231641700652311140266280122427170666125840075709649363485019629349446996301829204394484455537416179129042806559271857363979640287843029584803071643054241037930581016423006665534328094611322680241980380926552544540419382079465421640215026443517730796018044266146143600127347474484264263976943254115023856583889912823790033842585116712244266210587746786975645199529314830321049207274013329341771192338333953542742721477917385616301340589807119731139602785539408989552996687756354503280543142212466280554188929598176851452361388921191574037903628368833132449552306829584041750667236271237590340767578797391265184913772615918800503556541977968990627140887093359183584946988204241637341154445937098475598090506810948009041619991548390530923368172177016226901523269198532288146328478351829315462511618543836113495463145772404233167264551880387267647442038246297512731883896209860158044597204030868108840336448417637938767385650041826673508022234433985030590486018185021144248468038096561263573640436470981624820135253637738614331540488621811094032180157363376884035772252665470842100034367137488362443269294105615634597993317397579268408550199299418012323073185950392160268884491335588965919683005888790420728066807467027616979618833811853604764402518627967684800114445995432678447368161683022388592205039614548765981509023784763409744831302596163716060359910870252547432897728063926840559591865687211799203712766280361405047765769085936550431220420675189678219324066144550911230985102441839740349144843435095721638065767006542576716110091825000396087631462094571098029951210082132655961028695380565946568437327700667199672508164704115101254046813152231666084660740739768919508910597679927503918493505163064434848570856322300023089492939477964150838861433420162211503588148468470233552341945622867135281655653636884402297121659685921206418408437824810251502266634751647029986926357066580519476853115552697085335092708827694170327264562813002117331698540481982192726857955726960417303094540142664277736713562871415747828733459783130593211529945133188952292710851106950029078946590370537988703943672803810053918947525438754118608560157336873746125837819348205152446910860344494089903521303003313976405686683316253889538947802767840591248999931001083851350655271354730254754664508900079773846317303068396176239024759865838966028524583513324730842053327074514658770241632737909099059989311552456810048777092624660633113050066609403666875750090935652336960697711459440098226816631265102718422100200007399761177130941083426912324200554468346279017123572561192269213747935350518217984989109961750755558580002482919512387768248848389786150153522752645962956770624120907534025056857753820074091998266625544940155042895192218515343772724991681867731163027006034965216019106013074474520619585321686120640848588957151061473072633671996134973755352981563872999528366208711746916939613188588725591968279555905608945164034572000603049793934408696091940682433088906956475534415668383158366151577746722650443833018766132444012244822679937259664670889867404771926846455612781997077529494174877483412225458113193636696017059779003588379070113224816419167163874741665214128837103761786022537211941152006219168636557165624962750915681277427309661338085890522792038556786769438385786805200127604852689825884149379355057277317139237060997813934736652189680861916017568560865964018167973875405783254927375145151333851861966999848692273812032459954782877460417440548864374765693954988189235140315966020847195577401252149442382205687072239737387240340339728021537331358400050432522088994857368431440353068369528010564783031292755646825904907042377752218767737750658585406248245180116769248363100746115919624858098358997446757358906387795074617163322245389546176836994831234588499483913719484422755263487775265393306417520215271271215589036147438033341543676645837449157448448564788698463728701032362089248325203901291196405133615138018422567741246335217480710196426484132733045126265521774260344718047485428683212735665376318789699718851963218282616797749098757676313506017575061512495423678952894080412146040565745668670445342841943097853901854131331030846083465616632361007993776158640857217981499280457163460598651236890818309997546135715998100918854934110233949085921766473071308294230548075934553053958119200515095736289078194085067741893528444262627873511867856117665412150437237074290622035921313142585923316732388762393486124068876195020282389891682142812498938928526579318370236866047197807981822154357922826390649325735679982126091880900303591983002773245320004387451926980006503784908657585433503911097034365824009861438047826866714678570512004334445020595581453675689072374733960585294983725393866049663592166973935644420305111242733653800380328449096825111556170370724346388615410965611017274660555235128372900793698835331830402273356722359180914256357347423681372124094165521769337435768282405565751751463033767780452080137489959226832733344552069749646849460295211858989574215712902279199323882959965156824338405199319412848896500082270272202070239925798767238932027681039333103582567394067570656518063041972108591359175321891207088239861693302601836813915305717980882647384716938686737646465463708121059744146448933293137994741067317341531763375009676236079544199144442087927323917969118748757800658080099667504093521560732211610762495007991565322685557347576930045619206853720636300535369089425170730064473068877591935701043892007364774677944741936530473038617336011806429395521297847861405633925254967749886471596342673425122666238577808196567514706622963805219561475633128875698256682032470646129782247660355253307658734115775988130245799770801743435660746674407102562918774739393406434389650676448287727198966447119230554610432837669062830995954441072899726878857502606454483990818316262557167733147466299857959370595112207646919269442306143461996875450143620342652117446253276449176949160634306484018641398339436142307688080504586430931001878257381620332953104209803653020366889318396859643460570715975647167095401260477944337555642643488949101522938776743609018114991648389344536809401442039411012383947901354727335962375040405765021213326807006645036392170988436902809263626527817878262023173229914690814478669848597567345276395099043461926001467980358631168613440432478959178054480535482761264205282260948305404080701904825210109049469916339391372853546637873978139724120449152538742034492049241285211147394057556301118522462113740246997837011148958350311907343810681910875558102401331909951913597384899949487217710007288278037203503107186446729505641473688011837903823629981009837125208818727900333919238250817357393207410391765098742356665979511947034635122400518814468735236463107595000110398925491726025975690899171097979379571628883823833117896135242467209182810608263517444691248404943422397956687088260866994416130318304310941999043717869232445904584844364685860844351621721196138556969819225874292475674593808279918773477202643650650869398296240586263496350716910039594999840659649973919413499046424816833503054645741292707750847620597803680458307882782112697516890121163577722963028375849893004479008620337927103717131908104855204761072962792779511830613210835220568155692188730374298478660278663198702947197674182602786464553069297528260734885977042636973585451383669657920794032186453482909253438567911304754195449518015430913193167098285229335414014607914557113850751484596880479828329858852522387780721779406193059162344882149937661512881782088008394278858528837722776305200480053449293277178610424402531618422275402958191976788266868449789977982903655595291644325018002571572680533218975597164115858893641642055630056425088094588021975492272397852525868801780458814072249877353590839388960390596074502788901830555363456396129574828172435653025170177171499972463067780410453835211898002601669440245817131713514882528081118531723348866311214509193836656556398367834879705272257198801744681624104955689519718015562163811511668449914212956839072478450977691942954151889136687753270992804109202161103906623589099856898319267196547439401215386295422962239344947152726670686471650745601352160384444988176524167955740268493957331151641145168834973406533310138796203035196347343827443985279484892885913712769037230590211307901645178544708004947279406670023682774304715210970125411652372071372494340867892899290570219670577484484983582434366240355826964406939916656319160068103159829719910859688685730535633133566647548921454186785241510046514854068679975806994764016658478946532253917214471609969007507985746770003793598762581769386121349580549669616252709265907174594163705739617260004002894943302951876383472093870605936724154316111075555409729663401588355045213209542661624966660522099359262876321067683489603391729246318438073583763398779217927203530979577309007134375379420413329084512658213241155793129199545842140781566136268125560720107343281316370441013234717657471448725489253045425916375760895239193949767398718532608497189467662783190979354312822773399763986897749772615038184271194292512061712215382234919935554497125955927446062267893293884248036097373833035042299105770045123668399089391175072666493481081563942810388780312552530185315083076720273312251769786168032198897350624149396302785836838747868700598170259168633845289707956023006349161817626016217782451101192516747753669293105518272144007051694720033741830953508799783709734218515599407890049597533636886386909880647740527965426029846846660322744841078844649125468554524727399972979305886273548690405745823911471275484422071062890909680940560943071262237989138800536429599615482839884914672588312164425861749552103288153597456273947476547755825097451006009682795568793547995126777852272891964293161987191947912740567171318014372603261646104279142278361315581171551681648038932144132753198263597137346123513119857836293852147619911129726534983238488808129934689280287167570985692834667136156103340969782568696398065854945366152879166835754570412437068735288060357716188667140868729908980576824709868690153951367361419910613734270369216016520970336181043808676794370851062098586233026882008997350930724394711482283929578943999239185679374150839807725241040657014983420783255117769523247366541875411809102621715639478484839547825726593196481046778871797800322708847915602674099588060743327029203251032683172552535567144371577596169316513868756432300579911546805991758654354792461379643167676265443596233405657136164902571030278272180122218046988008010552174366525110613688646196680012043820041130037166993664320565029191720169838178772240497664413319656272782870558043180132439026095724401149358585530311304527296382315674789721549173641520107792119092243832765563654495730033961234059782544178057539054505867110778560468550478670217984441029816868813525117626862747932317761277953841847131906247369621691174572226822172262359044382546886404935702318826043990829471478128205732609948204559441677800677403307598872542115777105532673228211089855840449903410686357360313036681317269914519490571482043911892469747609817861379471971458363684577577735149803839272177918930263420827080231999947315334404658800779967697661932000542402971058920619588748631849596709684506183580853081095928890811562893397430351616474474243022469608888266794442968487617805112011800881470686566697106115444458303733885428991341624089179372015697495950832335293492218625446506421603010826023818936793096913685453016948043838695572237535367691337076157325983248901202146254758338242164403520818194241290959311316742586360083449777494124539295398619468825030430375726304631273788075716099040884773453742143375548285905855830576977834097360243055254844818347997104525225516637989902991480358593205087889220863778418922232475906755014863943836632145756877763432820057425578832523720626281922247376491541938442933970864719437933445856601410081531234557199890327917778845592787504809896100736239072349898074648679938822660418537950598428240032465737898833819592485269385265882484967559430285716899092521337229070948363664770055887733716486078785871804637884998228994029983243730871398405802788406535750540224938432082403955921184012481163478083431342880073305371931186611892789977668555296835128897416121488125986484979590777791567856931792681036525107035097691254073361816714420753450922086630112544702055900918264540913321686788414084138338320384236722110645697713353946403738736426908967792403924948172606961340608080100451062268585601614220651352782849328218663193867632521537912110377650121844644884445694755880980514399341712204631603008436371923836476839242152320107704314320611018175545062108526342442256946634194704235255398665633701550344158926637865496670466213360574064357254291089845539561787316768928076911434969332597024967445519742315703361706865663385981269075877164887129862577359165443949926587900432176034869877794246927234193283608914821794860710931785756163779804590682410235587319303685581282129612879060982994645815624278194764345511549143162414570301813562287864077903633522882454931213271856884285209165475791951719843942075380485934355427655772254521672089464034833093261426297640546614325852529377424534521453006054964590541899530174674792367624783701336814521019374549819598910705889907724552940497954103092687680706979412342336880341073818749730571594146688107887648948971235153612555531329158351049235380335686800568047392931076641503657664596351097009037460351203000278248111041586085001959604538295727777151565304558378063091908746446076134084403536101674172950685386589583972438557512300959560469580004902738762690778898276934203196110950015145497755511208569578075410962888529899491008977044940225116349936074215808546967752482623798147299808010270615754412184473198778749894444623042559927266541042729446067134740553850006010097852176982442976697360191624856677596807334720611152269427821797524903863212819643153441006835228726258319557093854913129496015654381526733380246598525732728650773505161796168234751989504906754236928844882445714012994884941981383404388067906467672121295075363144943404802919420954846900020614322623468445846579044197429739731455384649670851956936281486424713339136068291319319507544382197887780697374173765592878271973251015098640591721576548722860050696187283342740150131947132486839503960402684921092558847541318614729781767928690731973160280512634155456848058337685514069202272457903116650417548754982921712874133841352486781656666839853847763827619482347289912423640316413102550582033416966049162736919058419764385462195854675774144466047759033869086633976287848395155475986102020576185672291261369598084919257402983981420765769615228699342026375322437368642840246910306086409262700103370105844437928307924423275169404561175273415766772000177110215030739922544780779908139760000802664350544435477268037752538340848257643354216768816251563552231530100823966601539956250766595217021775335365404151640582083182776941174030967351402773179362842291794984119406911880429158097088041186192127888657087506947007616090436511524558522830357150225685559344851775739570252940910790508336780252854437660512775053043332469137750726105694125434090363581057042959633673481598559900944222626824018733255313047154713090684186583077777930389794991936456184854744572855379891596019486403895534124351823956374373347216954278089892596448236311837973392533369560390621475056087370508040842573046370408889663394386310666966692627738682940761976285142318127179073959570151218135690847421456075108842498996697823788777538817578438075913772470550431981111766964605410861482124694387483587061786460066543591797607865183274899778657287424009106915756152504752858402484816640560576222844156989265934733961744814200257662280331580070920606328527834013433781096984613097260462125699745181148737330222761592306961928393975722852483561305418088553561851734986970123148284422317037482066873237029522484443872701894290953194346932925170860832474839696978915742565008294023190847331515870731818228475155707055831462071609928689230287153937789797735818754452000024903751217358529414473056690348870914129123826595644251335498442396414810661527552468878926098253282359422219002149088395506154142285909435952342331566988509997322031053976393512157557508073520586241081975468366156466304113762611913794882200187002313298108229236867070310869093003557273723686095651605407417585414699566961605660551092956785044386267555109648452562888344748231547631526444556259090354699603576937423319394333315544956853224729193368668972696939130865359176901434368573208390430302882992669088333765501086580735407591425989000502406122739767950969969055340465393412750409374774494809667566806904106202941636244367099224103169098278307451520460285908177651398244111974370772452295280456908701178392734350545625393701737632400058847880354250279134145080296048379853796499255008426608732296992105340915194180190330375019725566716201861361675080369322229121323050636847885535066526897007279587512516571443429409161150175271999057707277913348594908044030247681607699864432957565355666512215719243013453665399341121062626331551637045992605725078037167969092378105661351170779599841884004132744834774426639633490995165263957140137918641448627398212547810811320893073748125634155962926064088346705769756882931657836939151084345997360195180649529061874517780169693776589635670288326166453760309574295578226575617400681499275180390936261407760098164337243038085321063308318893359886385528023360779326186150847850384332180007006046646023099626738060806762299546312323099171561411018403180632083610508522886228179012181471310612823871883338154621171595108907848846221204257660611538212253647872230766388119898965455089297207564462054095940211144839235788018589391957101440477172331392405541013279437159303208727769289198416103639323525970190765056595226119865174103082422215597080883795289461575250606056365329096326789505540837534476497447817553914792739860002774375747083945136058460405892116582959759447095486971292214890793660430046753955901928384616558683024868469263064828029331622422844434768009846928471192380128919137540790959059533289075793060108648536896895158376450202103257759260318785555394045068210519416668782475348925344016676368085890816569469548025157496146596653978907179670530026516269319707300982932019765843442577136504980219799623228675789374147697192131446071915562984675283882407049759342556783305989247077450339611425283628747263134218529371602012014003085657100102703217712046119128060330925532598811762881690039637833330755012488338102524201482877098010611785842652669462633851418181086672555794246535860535259301695341438175117751275037775500982847561500248113054623014705285569466529020592408904121640345505763314678166003266381650759171331227013713619099043199404482888456059514193215192131452956898273056415780910033004792660166519918399735142633242322590265788136687423205515876783160446061589687934098910270223414475126317325994145019423395207197380187383140257077786229313481859120147789370792617447584967935249232432232905492703801374216887796669826774336462506497280309863626870444673015342143453261816973210055923176502224318040576656172181438046074031948513590092250200125505916129318599601290882514242697685629128050617097919984811767183067410463108027674055768865358610053382020321977621794930334748299823553913803278852973423182044595240444442765796024300421968953515210317624801481017015388246752836868617409894011203025106944593428436237367849192413794241567949005065820185826252377609309711427167900315678227791790156159659965957005844690350929683430738961814706432056075711708086295598565401223422566034051340731835710015524536169042957599756874258202288823316486541137307928867492867571563861781848639814797921251515033693868161295071968332012375506766520420265272546261988075788180641295935014080809139679285573814517018322125264313726270100702675101382262547352817407616107779805432253654750339284985156479502084944100654414012762119112888272556427508052325403956860992635564231997878041431759161071506669021316892101275537398181448011719835657288522309764307603895443159148931754386988615803269305981130298363792953276385992966449280444155244113501634914924167794487556498931758155823001205005396842697033221754511909411942580685888377619504167628201652516372049749837784248418869507765332774674768011546423925252230851834304938691853744895973262659784474414915521499236042292107897183643451563862092369220839326865361832408721878877420272692393841345988935096935579293998949658412428139010281333043154634371118544132052766781372128267150738040292865604860744236269358649904580720553181685695554629209563433155302426094952210834658064110287891937391716280443710749846260402152815914218142499717376828284458131176222301582778481145065486359876984198948740808758432116180078790341982446321874954396458950435856874891182250173450442195033338132379092987775362123319702571612170232475255578532572765761349947679451948641637389813063622284580028579600773273356994292730231656507545402515298713024220238622179094810756907493870344484228434579724826856292438871164504639232291153955486858290101786734996026874915487928226610918736206000921120658667484422767590632136021978810831059679783142463662471567331790306465537624572764429336482961679381372165631682540737354990743493671403005647547740781466572402351928057047691788074489120771244534779121703710240734496653365906987201188570905189026566809546863032478705581677361823107485750500030321816365957496032551713230551313587644632600735868096935427368802317583020589734312271973803988086450197566610380411303424263133884560810604844134160061663683052754754203253153022153538918202145246441506440270490309068880150137179230924923687595842157721284500844399932590087512130772382235059737629708622438106784778663780802101749971859339918549900115432296251670624071816437062173958905573762479566077150068338940573903808569013443052708416912255639933652574407676559708466429061266740862643312370839191547697906959771644114017584088469202904859532511576351262640981886521665601151837938193449351510330741500085157515151392200221737945371965422141545450780181962118109259105043480853605082408171894842518009737153329158258202777935775537049720488830115150261482885375126525650189373373957968189908279122414027310966709884727662529872022498961951854364261576147103095526448100751681034738459184196262696393861238006776565221575309764336759029763195591873337413908442365920930542769924007482135141026938863214053415950599065036306262515051416952998289283593185761424650588684198103026033130119849698716107803340866739162350308695755501621648060609254181282000306183126578671213493734035259675992882585629264200684183552212519973477706152803346629949915246839082553140120677841695191693330438914081562037285187841330446831218297254775467752522781955690975987094080226274055039890206504705607391088544329508718108058459375804947586730221329305715435402823969691625411149508826941239570829940062769582729839735767071815717101273123025344058837887646655996532435867872116736465935413900703559705972243952459171486203991608723182870666657861372813131656881282991754395570030269156093376266642864841761175056948530278589452040578870314262097491196527141398773131682271763146890802174079228865450691335523539562778949540598504158390399999413110796374231364756374693534370821002940245244382799934976852038147992750050703457024924126640540921250529425473796995116657050549439116923947488808311040136971076218033519087444380817807836065979666943409201332273170970903108070745760428339865255645250002537170803695832873078314992838494001916256062270628247299771951419033585048338443601322469421107711703609965353874836277137901554650379192535910902914821024180567730232047086756088930870722074043449400740381002132059365321516121584561296156131451793366749961975815347544976662309310394509587197689156625018373368310573842780824618879668992558795188719441472024637914056400040749702357984822790374850307932064549674831406537193333506736738953098741363341228445760996025477539362690229539538644628950772727532995785369897956452211520038540275864244052561137038640321392537836356029388079252450229300903552103844207927111018289787526354117234990971521220949764044113968914657229646290455480271151097971288386330830226862603082664522680101284219868128849482740312285964191607586264578927401185275923763497854327162178457897119303301270440088399992520011410888397481665019125740714368727200329023028685387550751419620905533457646908254336878225793654746785769507444009882967406477237686789975534655277278744907062107575403413384106895914063643952060674306296256137933411083914747938167456419913040404373946993333904740528425125548044417069419617070506999332447933164685819709881969296751518662674238607972094665511020720114671518252357074874517185298510480940490765117264545867390080097421662966315914620473025098489303901635205242719104444812731065223832761823100788063551627530554198390910866028193832907921624607836737813572377286325862086996442285301421459758645574155503123104211119555643486132172992287701551302879248467683117943575753050930841621960786532395115910972138958806810131982910082708146825340102095461529018919775774188528817706955549387184384881737168119660899245895009090353858423704267590273000322498564198192856598467726333490391671534473122947638227645207531954105572817307653573583516803173967377863910498072860151698509498905439410834960296516305746890989923339732254279374487536267267997382791344672411685923312747938255292757472059227371577791884368453382767689371458249799018654433706787947917723563656802597963858611104215246238670788579752589569512760349529177057696267642034613386415815829540655077392075880793381175713924912861089353289624893489388829630314823383220186894580807510835822416086406834658179124650482416348390412743705913597146208042696063469927283631334952616152968656474863760307136625729229172501974248988294633112346486095029007165643570050836568161874415617936556829872618559899112204388906528344445213328434379668067110539575921396119297971711919585425045885745533405318118176663317841304742182213847334048096153987888368071821492581251163806781843535635140707316319974964223094665924843373881473916768021482534810943754254775365610978967848473107489923859817293013534971377191303317301212521827166999650003115990693488260371386280746422817726276889377144141796109073515438387922778862761681438003215171924225630049828371875946712374321683839659613381134838535899978844693383585285867330374969956969460594506665378610857581956345338499747871673977876228384954519180655362966909881118860409572995603858798713787066250849615132654024998103516552697097936544446815095199541970671131362483647433840769960788895529433645936810523626729829929628561952763327221616116501746957729025094603434597892115743196314610746499036819653664182104406904089516145574771326679115740159969876051437761274183298525523127141426585080095993213852580140478601611821755485748334850923553859385308224745599242157899768798135122225950454819507863015772742807887271855679258723772282817972552936662524473589421053563587593406923725447000890778194794608174840635665311201705292903368815910091666790926472639557282258716948191854561457550436353670847817056244882600312251985447770857586714799539954436801175719044009256748603494299292203679124192176035579250401284583976674041556981189093556166409400320974623768399826785278750558966899262074311385444722047308255083384049778873669584515221077484341861149381144714443545611896115343126373564403448491053692963288397032806642896920758472445352454772201315029059348010936426191625327887797203261502196456319447862932814296434260451102083773276524157168348531272731258878648108140241050048259403391870217845907078323447044145591407192842462358259641379657800584990006960889060697555643122127067210694714789606344561777206337760590566254407348350665280159578813754707652499909617600122040575269486028868109876686116574311639643233240297911890558696761937509561569136081994597451252385556643043221030501029282434878315255227635613824603677133514602321606719743340528046438212462209411140797773463903475316281047292604763738347184328086027351319019565466609990512938949910738962638700738668707545445694420662689801088251656000711332807433118726724273429065545795111151326360548789137836921492550363960404555730768469923343607918607522129709674679419351620947891354252457001405511098319799064760247904754463388708425026725682036976693331459929530413380804624864103460510541836775360843493545767143039321801651049018489795209532954806010216820371220648629202027151925496618577833227005221426398897326037322633054543751462540035606807303435682644552892912573737889795738695750203069731047551206673784281724265036577345830151020788407147587333765690344243318596806055539949864717672709495991930921886271073370830365506910285763880157155948338060168809847647949778366634755833549091370107993011635786900866545516640483911199418918524183455283170383018928481174966524878803823680444143864331673145533318829389663413574623457103028726102919641333976286813685019276462471474189865574928647259168840622809038284928540814328108776190371190845301786061742836229442922741773172234644100423161298999055121754774339398548141419128406623512100950099879540463699655839246731094770558221568512729003963654154601432395825953695290378275185779400600692586409359688778574698454655732074946779136912211033251471584239380142409685271763608549274730129334845388468961443326089016017715382620604011824839650952831745312097852857003739511047767366967948296125162309622093791650666119056588831461614860627112348207331552793295811809638754925282466323293457150450160663730411463477351263487395737530152173505752672818369161818111285555934837571769015153205817337128467572869164887690138975366665811435501066338842577277964463011909662060306193951145946730187518992682466798640302875453757343329489019342791673848092868173284111560843826609042083938582541037389783659554480648696750508591531726040475332321103065531530425846945654536713962458788841421404139334269357956136930477516612315581225511971351606023397499741129447845004483651749536455619216139813972765725799592868269099882063008602127731813320209325456460909114660628435845180695489176346977952043901252412898124398579159167560822398603222740495921700088555943028238507704634691780394825422274017709815155854930274455599633802057150646673241372367891043455141902967373435891155595267835595911496109285908741020868891868217304400733715590540743885465548053669355241327881500710288722279918390023162187928117947579102961822501555233273032679370415313411131212609485154344772599036748739396758788338023327509260915417569924808933065100914215762095943576944282713613675119093289930095725995381051774076366597805868055356341537193763415288097666267499007557397272721202375891013467627860982773924481898136190077957565951680712630100086697452809002396338869392919390962655035115606543259395780774177925553545379205678742160339894889142927653677803887963249310371861345596224962155655968975174475697869466444597901758868870449996612069257405289529525624281097840711082143079309976585965154643143601182395292424339994329192543000576229263189866737921698471298047007129924910530325912035382337915045559202285044676374676431437827424406203778681946529394101693771469860285422934804551398515938299375141610060022241415177239013467761226560432287393437009014495105650559558815507167044839069633395888898377470985758252251549739194924015690556009702858073460009291282275050426451761868980841181045580294347840786380527869957725584462994471804332330969662914248463649718546901776705499648434491067497626618340674457281400145026309527345194395336890769382624683534450403995269743058655903285306370020228572479267805344907509194927305088395507591389317008892182832672081441450137370655909558440118635695958594902245772120384374188362224301374173044712185878330073959075815288296390745092839488100515417352388877287026436936438774266209420775447177568329817411753749312819628977351982015414313451483241906689654894908737854303765749422966929952587019540023877937723707029725886221729937908835741052513069085787568078279152723543794974880187725778882410379407690660566947934069891360709883733934638356514626543394508148265657127869209622477304083709802079512027686956049947689807971443393953953946768197971838951078446489407246224427022014684275137672630379161215844537282925020510813479470815472798698527692561643845520833732543486286353921514244366020482054775999510936300522880374755426842091340897196975809307293770614327590675684025545837736268860346896753860528428279560921522728651309024652299646337922830171029135415132393298087065075502528789171045461716313604169064810861571427379476655055115308534885601754461034495288117159485347637232616696714377384562250509437796871687859661173154014623713120985594133193216519395743016658072682801868411212654071423786020253795490129699552314169310741889577570085288569399562721131285445881920314523962000006822999759431726834736221850639521590494450963505326690748502894937834334797455595691605144104325402256218590740898279095413329597006756268260982256777001461051091801033569420242549836787440069865842013297374954552986986673776183358257099674448158355679195887385181531994941091502364579592269273783580033897721432806281990300429780681349437129704485696514717092183800630587242331786855066587756747191511856753579111755504681682179480229077968662527789201014008583340210329486512252232656527144656945339219634938745898145589106450146724220345027590020982171672115299780074415146557986706866320152542578014305327382587567330258518089410307870113305888370901158380670826492488933877217198012366870600311260666570468124556321780658212519961119521496903723800259279148404712192437465968160121766255308667486579091994372572380626529042261830886458916331930834081146395447219406885103786838494861136168521159345539456171284714579844185339614500348664844054542494412463337174848315664488818663074419480055399717920029402378556531059895785882278676062583282714410085167530286067816833285212361336475803010562041681247028487532853280262533303875249331350120446583669673508959744005743965996446128418672650967870605912360553082548384320560496010574243502776956629442435950295990356723570893805675993462374944692980940936260651467121460143406280615744506916199342207299866637482356746318174099246919360135376741705947807646443233321975183082163413548819836527818442846173324712855651869285501922766795675619758852221281724841424564156985273448080588566076136477783994288644576881056643227153652322810156037644497613916415214017492588922168245795704579175198585475960569479025965648872798506618843992291080818276344895695198637405817286944129004921017735189319170468519005684373850523468471239742508975065456965805439456872047925085277991321948439055735868447552314201471792836996761025194813080222269470123885233814600582456118710665404503020104188590454007861174449646991308794932775187738639871953115602174834640851227698066627869476033199020324394630281269856018659970992295460211615829680800593640298034394242527335054109060575330459750129785676373650672669435835319619052147467728725178340203627993066855298344026098402191873201435197706721569402869316084197144050538234750435439483081343154921482012779681609522300925030769374847414500903669011632214909117714901048175242432973131963625084743606302255039937089384311466356590870231610261892132397385818458611239682839498235599813717970132591960781019518967423051339490051586631233307727292010015020540487212744559667765981226644994289094384840816354194866960426838451515148437492294216998178594469696242399762859232162701188227421328301937014846208668171695349439685718097044324045997618962359934620755699833902180275092004621534947963635445474370784247520980228655197725916260839997378504906609628271625500032727015521720559900179967109764549315634616411757574695534913377076376740199740077229253607418522678880250069315925281226384471762854462016169293572115233910802057154925533885164227512422685617303488269384428617560416836797125635165169005206505773094574173356716038235560322154629739414589844968741254499529969872368271382449287654438179611902683993385551364603370393403144232068421516346919736683781914066605370630384769697624813865344064878008192564632516412515463173902721932010803923159841072174943953242351517352246709885117996274754735465849453819026528666340333956907247453383694350745368772211756795874224579647252652141179812798699583262525390346201825357403577259821718042554295830279899070931849354485857247430388578771179460398507654222232406605708943721153507739102342227955656221631892113005558210320923014636957582750781028404141433189297499410487933607994173835927102634340163606053334488041229525233239581688862704706007358332878921798209915899325315280922535669499991720782165988847434282583460842755315884670180004695890596628951117760982268257049764811332484676824255546814087366945533837661799008105761491830563913859612134424671866222150032176594120724332612138441165096988552977046077650154302788690249631591528965617933671337537232899845694267588029399892655699089368457078363899038996637594655746521146355605118272383813784731905229403003863788236994657196071763350190036637683717589828322087584060386477962653012265110941517276634872349414513257355079925326706462017624632098678091741453357974092868205966855273626878244634161899966859018920644984391124522399758917880067211852427063717152326608509649650227048772785487214219032158666952437980894953806446248080494820691220721073288474251778069464499437026335948162927869510443764456091534629672650490398352280542240463024580102071098868186010356014746017213941240859720672727495888860181121264289537483066148670717612875192438112425602470871124558862990468832381716898281713384244841952704626906641794455309179227875308207586225832666701261239406573636058460665537829004193611974856139693636326544239089101719683296451940030435001142769541886236734507647187269923779982202668665731624803249963007067703516999187276291113186317685913280398329090234989027702238548431290822925927189547688955084690053149581107096670165316302229041013766293679553410179173267220955942312348082855469820021889791909094424387932569282399968864687580876019840803566435764858872257338297289320306117479766288193714897480396519338445252861818907690944457343885190127925198153792591339300479129875412919051027055673305567589254462198472995404954991753341828067586468241730568729545699798019361622417211031714174931959467948304240834472434124177309340598879636778489152398050662849702136140343825976076620016494599372297860962914430762601242271482166888631483930741889271529960860298415832534529226539905039538160738209346957984281912733688672054007101154168726401688375066388335183005052836074042732324108759190335196573135721330513962155419012657296463078736809347849489306375102593889475282152606079148808481304842298362107506293488608307439112234123020549728812141871131311198705716805503002622585866172795691073122084724729941893282291819136027054727647917399238828675729548160499121332575477331488246039623362364672486477058265141713292200230897674060916936876919840859426978510360154038549064106055100060216727988681282900761739907676282284759007618348032152165742787556190316443460647694184680234935864588244749817126296894818610480765516929174121096727333633931826289816888185524518874945642593488277130502796862391437702703747944564423369942245768346470913433180057698122521857798764668337708484978483600614194966757141501085075991940386828136395223501129561685929885266522652028412933327969257370718670501015236061198622760282950655415467806886183385528539226179140118702035264962016852908407329712645319241525612194328065564474258159707952511360060942867236182431337919357537051889610671800381576693295723905406943674609194253525745651902998037087312224230715868397137146030267555352410557015382873715462942016455913332470521064758433573970948117673071436515663713306800709358547951104896777857163110135383877413115122975748359661015726299687827566270115051928535727328460427517670028140247598465717204594130768186025088821251768130244254640209257488759261741253295637589100750950753418602404610788175739879144318747493178475865864273783087326304921022295474632009227363120147421052691659778602049342960118753879492039878105773423014664546529045529770277677577874588767687926842182812860018502481577545398428900815836130713594989285777758118735431894696253845933601960216093755108889043858823147138435498488696878629112821624315202962274256829217112862052059859426665036602361792849584189467785631311698303888298657609957972630748042552595278349733374729553422496463999040845574094225239978179508748683733488501423692750276626677384141740580889190198121456089679015271839292530529579780202417572322775919551830923939799965313637158417006581678559782085474384934205555863565671733637044490902183084843538521276747703850022944413938041746427820103666841226929307711471618118440008759257225593609375219944020873506344446021733758428528544355094222087248135119339569484119563643726136026734196573537664073093262573091039558440768730554499400863247514526643041334420233321299492678637874419033218427671231610740483515445373930807599489086160854001016015682103826136863727315098766838754943282092700781107371019564073137511736021699908086595705787744925981913443083305991338702675239886433350363099989965722264299239890460492646755088770864435657408038161091751853903938760899188972037598760701889528503194384411267476795878289887755100689424215369791707261240967536140513890315805906216973823159893164915399208097906801868201647609714775294442276069779191613988647552070669781070517899896432203774763890175007920057950459996800485507458222724506798285924534603201950374697642795717345074463960505001448209908608960519818843706891249859980243390906502752162050775061923414859474095420208220310853985137072134251885412694476152988693342377274295831679128403402178421581233612019561761101312523762673909664292382125054445736706034757747499103643542572384975090985751742833816400021533125715093557179527317667036796704447106142767535826881896465502808015323204512151251500400974676713161695234331276605218386575393322719305114966517542220919042880579083967055425749256738520945654844755853368327935833715201948539822360129132480165383703044883778203984232555099735773426622957052775935580335347842780303322824089767845327435226007588143365585855877767413536917053811096064965384976176229063989446118311349212296992655160518554605532112719047168542804502998275458174603183577624380583283829933153582267959985938331210225685936364428764677969827546934286891585769389693116649366463241518681632410266310412927476585997725548530903872795361341548955195573978446935359058735611263906597778802811150639294326672424911672978206579607572723255654749979148752556452480899478989272689856978094350980350347652699257712271422038213068071636030550283643362249670124902605555898248545061918037856856392834950046337917457136318359817950508750011360041532609846841903085035694307428516104302194700872707532120064813625597016077174527558141044933836426086113156517139008645705721965101435738211146675496175885041777225406657469023684503335439739710872612755407108882293166971270075660384089233656421681974076305092588128264418737324249627486309860674968913299517607686182090443420557266889678395063312575664589046384580627217756604181832979118601280545165768844092596633723285937430723803247738086840669621912630217468466164335600204667235965257600062967406694905874113004887704528213915447707293307243485853602613820703229527762837605366243889774762452930850850399517031473597217289883019198815346251187503511209797317171261403727241856314485004220148423766097433459390898746124802416691800374143930721428185930964650853545699328569120618824614057006642475084577758083069338487372866177042761840088446147286544984452363162576738574150935858230988008983358877594474642286171000125299670750756341030636924422543264921723127648046747447572923437230979560047271092691054514984418889353783776199648462134641353911329140481127915961944322931441809171074317166938047327251777869259001239687635926010578053824878334860217867279003611638450816403894949406333913465669736102033658002055634265843804921199579425823419516343974799446727160403388268637855127846626790558615280521657606526218846481815399137299147361412245755143802954463307597667059719737403407392323680052088281760343109567572223921179402472821406872033239442773463485487480924020756114063982318577163234925621907862778304344536421616328877023650485408836482870779145625472524801709820250667474143356052275723948285088813607449900509777031389542177997065536077550769874444869250111961847048897363874438749486811832651560223945004946935737931847216044836803152110412343857260694507871244719428622657195680310965560603770539376566723639540337159060673554216944373214406570764984027714146123659712774678146187470018822495697228004573236503445954877473805483209624648792347784248366420028611966785792220389369268466921825129132730998676902989580927894289622108451408901297007669795256843907911707988562678134961647641495473408251988484401772255914877182584752898701041908638242616921035048780267040785878850992083281333957713638502757467842163746250869442159214880425123051722686285184658032676673931544920445581302370523999365845489826622540390975500137430273169422136676551213398463432906892131629099144218944225488043985560839918447124888362281088148841204476214938219567412067106432378663505543517061584692632947490749909438598807049611965785676866953385516820036787938037006623039939453583887753344302894345268823869992422704380115860519052167025236971686486381747110294980022203733496255294467567791157291377789371393592188726730750565043913516365217652088821302200634632671384114795709660036840698196048790240350913941633959140296819836703278336279717728432100362472784883398852094956484069921576461350895305591425550402962140770712150464069339551171264291516419867449823313870925881668187202030230676279398459414062292232290996281086999232645603625818801427317053551675881808534466190061405279806032753571312765616327821687037640170428847095083993462307377368399992162704162747993875242588379220699257838475599315780953396872871349167382278160199491492717234570757905311240266963909901102207483351678783055105205908395389660158204568300055674985996447057623372364436993938209979412387002415445276831938997386445765267634695190129392455173868043242514371002208695273360538942704130222109952819767377314730312764908922622260961415687644712582105348157166263759415577022646364412923470944953091668332902690224841824895384025756882588377366262574528216123393559675436633860004710112766972638519986567695897835512206657249398885913077879939275472979137609572757671156249970091324470792234493287660387064204506414754310449413376402806337460277210958383521731504407894318727615711708877358795448266163586133011106770082343363700465048835528400921579810740022303735790477169553757041504606788816597862140645222440897036845607990187289486428735714107445781861697923815480892906148915300591141557688327907947863862222133020889140948652893826637441751606979708911567357532724482859481572453633971233307207155258946808564812028851325067550749995341639967965093164702739490949424739901994654753175678114419443961925162668455022568794286435273927345573568147618017386251057988464755083469379090162251563919933888183262916933350866003756290639983655467860741531189524713734208018656282889666315349401055016991585754593353314836930562502833248828753358921239649410205332571814864464116833999190009460693933355398104777817177893801242246095295382706760521008073311562258932523689512367578048877523340779298942832649857284776807976916291892323292775900233862938658361248338566150435264778574437846563867470404276373939376320410827698268091138124048196723153900347422291250249428473538721973500138497412539728927725966161642129689424337586896909799119995553824516129176415266551218602709112513318443551988797632010976110803313703574280195816380390554342512053351171116350601030609008064419665151171249028554478590947641266768598751951195850526965319206283792083008976610815384571365008811684662351544599612164889645862505474152344013112412927939607024757451669844589421276880658241089732024433441090550482078989571039097045224617652856682554811583193911423883796251170667080866904934681243549019234293727744512896448739002552078034167384072690627756324358301703610111274189765748336223330421292951078968401041025720097003699463320211898720682214057643616029101119085832039290017869985084311462866832547564936822881846149176280480932039103524537635848451598801005053814708646986713363547286460912650301649514515908680744139471265226878192727251832456536602911583410535634476717110471833887538121114135462182290423354653290442504181991363762670334092815692719163871566891827615058228571270397399954298376504915582783196188490147948740974656370525969933349913359806408959680570846525714736514833939978516457795814724704264848431796484885406540318639529566487963635379502203532105824978952029242499630147526701481318456312321251555876274747599358740461741104726111281747157409241963332149912821770970092989778647838171233310041221340131763042618525987048727998002629383318117481545077850096329502708528476567643376959152550727652722221474864356029815128164902836208364371239085614125683167237897611760004671664829728050310429812752324235082104743017088525622203360548201631418245647447724268885581134550071892595743678397588712676566273201473025052365520431298281608311316078191320630240395867643961882480530823442703699689640479235109697234419610198945613045465281930733396019538863224520430439533991301287658789552252670940490941128206853652415419543700588149985711170277119220575074258849491315565809136010408263021932725456098530080787089638275246817822929917087049685808026881482996483608663313147160173836721165643083945026873914805443866444622287835698335959149059703547453298938318626560211151248570760300027226421510086971276351960540547144497359109719804029447015938397860006982188763365432490809369965846336815506277896532966377817850293185352979362309712234074799175240115107151913537552937845181996096825908236992249979245534283786808734267208321332677723097142879995232362034794294062062700345257365213457131064490374273495258539055658062241743784089598496768781311957714973593828016012069545076435921318777823080946060660100806486769815987504194631921521281248443303918495812209925209345023059798730345190502156142424732401422610509672341176031834682947862996395387831396815642028709499058575945446865931599705894862429020170648157078358893468910136760718983416776520953211582750013082340529204761482232935175907814120329281983977598451853013754103524825818719291579111145418637243280401737959611670184247798517982684153571700662112885712371588502264820124548833532178827361705580610294007380424013929312508430990968576459807288871513712771107307056653241942934055871229552194188475249846052310931541112303354630259242832438336439897384180256298931939958299754425742916085307885157008309683751394038063054730528687339648503046966034474593554492558443591674300795065620468317542879458705044687180309432813802864346842253388524772392391956355142868899738597998533166075617200615824489107728910067715089025929420706961950388016413831165894639532029614476094206851656382787708108258324832096891350875425221918678065413484501205173683207606574000580126815633421046815282136774317370783292770710459815317868564741561745856852276068150152213563362734194758320964565775730796567358657963478138966152123691936002898374218398644834883006907786890349750087225270963240438203724295487176838186193438200199901660443808033886846373784803229907726067531687169459283421691781860927760150882325528126430308801670567621265133851351054771603436326411658536726857662249044211293011777965451659131450478641341214931030834950735016904833310679753475121844492035750848955183851403971333252939374817724007203217529348001000589387269070931931518407977063619372540150706799164394306065536947751446006234842403610469985104712485474744060487273160123311258050047577490383172505370111555631729806206735344462212908922855972895976067977505363470971669326401469747659506771620779745726688418759177124103090463026414806347149960723470410058367497415048863505771947625067327056207512097654201369937374195811528619149235766664152531015831659873304570309150429353284191361684186275178810459931199083706243910256337616678076826754646900977470657144097158544559011522293311196579548162610893475428711881073491718176105536441256641016706608392003099449066234214727377805599944068160507743698506779276843786625508856653112142564034894213212120380373672672970802264989231186332406526412568861722412985890127775384713547720675335976117207137697413950670735760827789365872017685494989011127394624630837414865054154582927223064798868358970250079618236340925572858589003645241081528878288616040842043786456106000976953169658222684767593465391999653959594960181572300026729909198789005495177221384024922602500116443198659373684609327640524278702914276828897598447893489780752570923270406985802291676126567382907743917127907028376875887147388118519972228864195414905861228095617128102978318617964570434084262328911308183827850889999204256466469214722958980707492607577206224474300866382500282059892638812027401092175710045194318122253582025890979078088801106351029787686264219749491287537688884194956222371267614958601806542737235387737262831696213178630033301882251307803047010877615831705218929004788675610011224895647598049632900775541903408108121396208873790962070684709086211818799236542910926412499101983157807858208547831408786666392820950487126285256802682556489745047947536258004676219315913500613687875803578789488829430634672357113796270530003872853365977635287314868299339814141823550791213956933164827908224666074314463299451951481699222499418727354846822117997707129251923474178101570029210586023809641223166700140596666447297976032501480530814005454034362320369684154656255017557851355231253285006951730616431629331198473376236187041465231962921294623693944223512437202728829043432802823981424392316273706959017823687433764352445190349692921172595465930791892318530878128904420424681215330561460937148241901263743481433723396827240028742668446564513433738199155215538255253905601614825600181239761688148817647906461476801848771770595048114965276465023814333151539345501357564469150107771260481512063448051000668726672585020798392622536016693591193252187874165999867666640924908474404244810696858071286310871059289923161240309723639950850722085677136768942999232082363871290020014749728077360545009004012642632925619716389514881182639529454330668341987121884474887552498742226090983653889231622450669758549465840277003469065553901343659314647409616695188161036212098207837370057358520207299494302150720729987511202352699174977101446883873776420573513251000400331157655443312406103033064255736032832011454569728876710573279003516991419225236600505238964482168403844391990770003667329807072814736523424131545727914593361651989003464610120390753469481254923400820148863215206584187440887145912503266642366807377611531489527160560514600162471594962105649896494386137482221458676184015014120904576109194152509891000159983639704585219331158171841461715418011981487071521323296264265447061650466633949988103756110459169723425088741218965181513021451994035750390678270203788343243412968091323907501014901259182905943293193635377505949435996375167763474118275002103806910692704708592257700600776913771476726227387638424200102162064767539093081961066580227233831825723657065232786414751062290601417486112850899568533001179855543618907930102134861664151207856086719309196127472895873908780823091557599696930581850282074656741469959415081804864944585365296415065041992155687378312620780053983345526280144943400776173344691364433700331573360333131511913811510641804528562808307483330407345007284911997777642092966921277431381532262963677072837858960218221691328689887490560269911514580679955318551400912733178566547748073585252849959195433258893229099508740408082204755587659050763050333937962849406942497779591346040044737050478799344739123241087238542735999905085013759693189955200157313722102038696824219070646129686302515863945722776474401905719300380253550822124157040090300815402727809540071999186008594121464175724341194467707863386423928132686942932576330458756063568945798537317057421137655077151561679181982713428218929157670574173512941657473869187294472078257257814003501887057200068846770360792047825525483101654308711388733293798733883474717778343039699958785155294914377464476602726605182907248179437094357148107474673648807652454354637180495575782959858169674961446369461095536499351234932726949890619848513222977100542711869348482640193440594658825280602822608618762615751518966918883143273422757864789031186426852534686295958624100607765903184152809780644119459573569335234965717306799112704063636948180750524050708106918379697580398335384647536303927335040776186248461861318215813325199971813904656152824514492537712989916017793938903552575810526048293976789156458075570013354973914558718652094915873689302170842053019756127168068094442620418960317022929178729744034269664083732365588710730572685365414006187398127931898083433171685166854690354215482836912159995409213129917699035462388890346025339997646415074959812214692808085586453719685072658802278912600112789827737920632699020158603455628612880844977948473054932831777031616771145586057582460148909658092832910440924015087407759662011375143914982835448842795255795924863513262050478996199836809433525842450609760571740125891659189925106491411649051576258324282958410316216608387281926285064092066664198032442468673327323205163374646881325785038409385582086255559731332708616578055456063014447987055075724589204365815116389929165170082511799277146823149855702187380914826886946100038147941386645609912691084307098316484877947814860266598893240920430723786778091353706840785638523473564273632278080173597216130435422377391337782922135427972137766685504484900547029386566891818998371624626487778347338066175688541324257222137615551987106607014450346400257579662461682557060389202669457839913860554470937313430503518989946022020217081825955017653436875985856568306676207990159735031754739104023419294317620830496659349539278943158274739779031544976788376935107830374805408066814890297975264456333362557035747980030928829564041340047841112868445432996145462429271991336492563801750587821633528862350776332006616487665221388925629001603276586693134342378112157058525979698200019404062396093179629121436504612682727656977465424641925825156029331063055214019474329896603952478594660012674256226628689943396354835754837959831873282966887899636583767468555803209966400494540717965779489408212202936169082662974842447244899683669360235057541776728725770938128143750748971556156002430237003645435142660692882040028156466273375207824170275082386624656192634348014960454788830402233427943440674716188476538763434358469604552085902748245889417278799698022413914567342874751792713133065605845778824942148152276886076313920872166641354895080023743301700494207374707119552560439336011389944710585098292824677164569412644100627986957074358988301949087305024358509882792482141901759908959354144652771375738668052836488508908974493471725916501815154070506456204438444311065913649198187824436909646204053391785187249023123469322161563614874470741800501075028820240072333200180836358946736924841545767289781548802790687618321881021024927949534883823965307053213828844334572040389665076549794633432075075666385076172437691761707485811355919490544156610147502338825492289535506606768942313585550711375205227172927701547545114181598357500455569368658452342638146749706222505951423521898544388036001402506109316237509379270422636223400091954295325812905951347080872615072627849125268252266289430869463434681279174045568001548979803360975315724971599087757491275641547446860206935495703798031612031117853604067084805428918769585591044853726821187384965116618553880333420469015473035305338083794860629874844275657185743019077165557204218553440469082409208864280435070981437103446137551911913943441304562475628484688622535767508832181913866456890626354160300094377275206648028206247472357734877600878391222040403341354295789327823498803434963834577713835792371225945087805903354534691007523674159847426359164706584438889111236760373210618971396473324152652439636838018515788327316111998733934680264337148332915654328815017508242432209983323087096806595936998487546223113212149886697557404180798511590785679042231399763899855022414141382594588541288101906622539799827503456410931719446712820106363890265779339867948428562134966231920833562848293780539914748083407287922415336689490196841309649154555604322909127407484394290470306783572215315780505284909797916168488982674306494349612671375799091420125759283982677839292768529908530682925490599772025465742429330175182170319859846674451679447564594716719503672899040171715127145276354465256750434795822744915360706327897002374400909996334071833659939177510492386631068390327956896272595382917120626120539506175672840352215203390052366136687307447522955684727656313416604739707950241149208572811977896195409888409096642580098625445668204306839517032353722235059700000701900400404758039022737880420048755274560321598168671419210898543059994936294790503770318809591374115239460629203627460659021748515949231284159686300611694123871832995924905230275722100186952424263529531736097032443866738035915337472504772341264383907921322044387588474335877574437671111453429115875599382384107655069133471670122219359854222911927280522781732183724389649887101379723864626510288736999015419423293278583590036956419364491932640812072968083743478682036147707615902345380038337974161737053410214166010407199513104179241782739797687027247528360081361052923313608732094957242144616372940279950298383759723576722253742804398200762587890530093985418000539960952532866812813486614291669221520841734341318383257500950194555969269148363164340671166407642270365542105375243510554901126138384321355049879813685325539332355047032491036293399490701105758365243217314387740414794414973343556890863926968019373380214347171796726537495083127923420006726034305698431281704050226442762839022715702216658849632631900853739852913004571252703430688004729591055181338379194952019925857516327739433674156005703743133790106538073008820154619774600668809636275581040238440068238702566291708907817540205785266757559249643465135918099310103160394586403147298981992068396283399477384497303988750206765189907801864229724145468186395589039038974782701259950747553061272718073624816851014136360428685003737546863575843734152639253827361458124749608296581248893190946119724957070554453510234196942626061171625665867992216992391932599401074266193200804478995795515612150998802335053403726320155841650615599233768828788964831569967078652593554234103386226330919592245242720948077556630364426439396369083806071583466635793313230191966862948230548175943370515012005934287322490712743611346367707027230944176232345670899527369767707645219985770239747173149527756563911336474924580832420796938666871468625437475712993871317939761554382787489360893100079378103679319427143694822916455514367051051219574833346369594458487085479461030563144114993402160758602297556152066494878505623784096700781690835868589988104536364683301174312789752600417990740830323123387406216432641903504119107985944955425700278325850231655340749048457812358413743469065820422322323472143060607554574540059535031819858129563453450205913025500958338182807539717067549028634920955597382874010060174525344824441865865400533903119936862323256471062323211876906546416898306630241112380747354636753570135973127385353967762352302044779988489633593298576525530262879191203172343704433221030521837631010802356885003244245567085205352373646119828074302256233610846450984431290953861541393102431444946827182422765680099068074381741303986625636820488993497626683201466686218880847583552091857423685083383519027377415109041308159659820932806725816578104179542013630995680205877939554591364739788931848925706206471114177988141731660960480306638157466215175424752904138163975311227392195174245941865213313494261858935488709523830948001097403791299079560668860735037807942524071091603568422879589488056209521786622618307850640974473373587683705655694626281455798517123632465755552284835334069134129982631222187159479734179961814558079493319754042898049066966035975900354441311953028870825647838329083089407958010567005604274126489348157746084552650591471714148828891527980598428884415392782761389104572905572781664121085989223556981912847768925549780307977417074882458243197651809795508271428703595856917615639119318992934079581493153267749498013126011783454453513244826996784284085923211082744312358542787901448070751994518122758170710665469773690565422424370261150020999912610579128117493154562777429138847718907536472686488179333702253982895445548406982809018612666561597948774448897081977317876874150031124127438729304286619743172073688431720112545019080249331694617302561432880649326670550188658203116037387285694092587948461175316612413280362130684673255188596776726591884067393749127778853385405054542188727198119622196164230454888526027814802145896704643787812320216639703787651014589105142119214578453802712732683889439252040318378312074623515925089813997647851830237159567263661019768457829532857053021817324560508554380518833200106644688421468695498356743377651004952647985087788348067793797575613517801333903762067384923648916747163407483829481436369888827538440091609678873960441062417137612633033855903660595176816694676391023027188613270580848007675559851389949192945616009692778095260188931496429399203930600004729145271701841377157833500836543450210073005489777505583795928267596285726133581708677988995827160355721981298116323951656856573928740900683031888964931997153547900175975138121618686838870777412766354967196633695651687526524960179145120223939505468282472579564372529264232384786073322056668167365396563765344362488592510023093310404787733178011802828257193941102770083903034107185925744045192595664664667088237161404318959607542328683737082209262514620438667236528368502876421087045752489070721051896559725095928023355916171845098858066660038313380002753341275812813708197378909597376584964414679526161573197639760619356293482790473168558153887528791122718719812984492108848085422938691784256928681028399283318415639559698374832793568416014622217377548962005901791602507827793442499596459014326739823626477907715140059174716247719197563015038897222313880283518691130295579895809092304489443633012303839169924792865463224547169394730312861785577006710400091272035268498761855836706498269130849654804240297233310848678446610386860517855508498354556907402100243035737805304641501487400795870583572275155609578349908304209462742776350675221829215957466664842168022172469464055663455643052754180763064365983471014933158389983246363123570882494810076912154663384547068075565467422180382469506295079969328092835123694227786029790816010900780991310291874779297564091381879991191927511962124702996455289333123180973266887070571092523605896731120691025335523829658336931641573493941884922975755415259956489032858959383575432756102331567200973047333960518831843712916712123424839694456930948873248518723299980337999629545602955381490915931983621111621756393429455403237379915795524343785065011787106189700024310021888238635512470754908931122450910569451283377112803317937975217690487547415787910628389703827081519393083088743830186133749289671608084157815865315293604076279794124948884644006598749679942050524707595519008123906211703670895409375467231170142644011472879163994849134659539898066673006495478357092395604014282663643258527608495466800011535993641512043377913054352235990372136713685741055694068041300830442629941696169827115870077816972259921042746229896693385513035559780992120709305036985966787333681439894259928474898185747311253908709834180933098314115284495512555610105007412629853913373146710570295462104744940341010887113381580371847037364835391067456200096587896728645423233496203406809308507728244692375377088427183792532161222374460150304847090054996663730078909418445705634364728161951406328671840190134246517649906114758395934366574509144411392943277630405130345781022364799274673662017217873740125157849285748685010754439725602228122889924919330349601259576449570884639822958109330913634286319624524864932313311275985493902712397242659210368528359267811851981979304850331840833751260371907640243907036938700259874879449455603871099098897759933342640888695588804670554300096686341627028651931394359024519577106739081988408432982279021013730352366040452251531215455627554806506334626899774305244632055203819173525457353634270432066264191912290216468782566747246557201883982218234841460248087592703955881867290310744710603568198610410213598133538347982268490545674245981628398182092562583367714354748417555331581174370747470332358785016672738713352594762064249526245989619892665256750876463139068132332604326263156552788181771037289028637759486256961770600898606832532247901874059614323378926793090654857249303994538739776857024655760486400131654811784649769345677842214356280061190043839394241129164417537709265122109503317257153380945306691932587500847635792141115399769144963043538432915747143092610676438364723555387728032946227866133433250758695776937307343771214127818481262091954318946545891889888126377460564118302061580413969155462821307917222176362811550478994653855162654667024956979121886849003591547964264160155340462242073664095621745084634222058522342292014049794625890857243239133380514831871788483492881001353805019915722233575878111315552214430603946391751576745852378957526292488258328841307480601138855520543551018628037748274770731284613963401826442680290072578921915328664922755970431113600894922724139636895665823229782769950696259583927789578917643338621133605772682292588643953222740249756525720624285943473828574983023800071403737813834518565588793711571958678484819186340816409784173831700434380138221481732131677467609139495244675791774661374039793125821745061066756100932521040759379181473687753158969929444415607113743157411046234136793900721973397345131880936037324207822930196316729784315708677525929721906433907384414829760398746624892785409144175938802070201332939529460622202211368572843714948373967629479154011219092941773796126875847943111654120598979008843700540154259394260972081437030198944115988360616875115822438578947238802038536374920784157174393606879520413012194638819692715334099826068067154639060394655711991219744772147519684309872643803482062770930857841332008878719160483143690412667304396414427738836962387722911507236370229672308043744692132720688895930717355058617201051827530674510452394499110529646060586185562229351954604984693258466866665838816962448649601776466225940496093913845625074802290539328441857622258353458192551349585889991614714054584695681860116535050463562738861221184571495738611579374693792796741682936377881005912626809099571930039720543172932427314486972863048578398266248172577241128497835613499357632382641381770285577825922394175539114317650647240632346156856850425000962526114334937373518274188779171650318707806083846808330750141016930306071664799685873291065460129667307282580925674842494005791239257463135300827010856875277179358779651737259888830313193764332634124059780398658259268725783716159623942933456281495241248351008902314116230530498015624143540062596346480790522459886930740220260942085374941995215300520348641803060725688414238145124789346477965295182811480439445875217860656985874128877497944629823116924392498016409599621270569426377922853786201258823864940013616830705529219868485807301341250875301078560629179801161973908002698046488376989397811821824015369561399050779432035126482137725916622759435120767854222443150289497621907846014885713213696643098993769607530746541373465210887468427185810227214736675663140202543196720852092168457794521459202862794361511727755059451821567924724624989455983707129613759916040999614284839915104648836552546973288041563076835545279830291182531173706262695363452795213186663101078545640497029438663350463934947553328813453299357320397741336204146154142139398909784837704205077219685816773492511250214144359976941158059585026543451254062636135889119903173321235134434666233015543656987863821832171353344348049114891267748820359684505145318007680189303758527591454649715456542843686184683781360481737561977270659837638858342586645666069745041987692125388194842139019864538358144088798894906196878706232399914719590190424892715475418125473766576265473582839896359797989262514068005483089258925469495684361643874848423546290265699013768075975667025821222826458435486977849230213813802991784634227026225293664464072572454774974055757108803702914712063723800707916285900725253206912551566318572222281088287401181253260978381584307195077817797273426790455133047836139038962357855482170225257780726700390289524623779185198297239455031180397825154215119628040609963545221098593907916757342312615749876688676973912759821078742568792306813091737934201399854104536589892312851263653722509714318701206933368727769029919696594266140297849620957761548988650416498410134307117484819017678810955257569525883741358390656321208466058046538422439798368336793261261458054728637445182784599686473093629525401249406472710552043656414052821599495759740698348394631312462850419962880035230654432258212910432388880882117373307213238936064719008689081763671795602032996547373940497469986633129326304872025418279721573613539410091131391621955029960303269191560292735191360135079791813300361633559744607974479880693350075291175366254890363403231923105358211834853091405022789179077350162634482773505731453963779756061433760617967619062283346109056377431879569267444985495549771980553714918762466448567391334807188864481022840894617348075010462177246697670577261839450958367695683689370326352642694743763147860681759004326319498530751793177901827607514240159223536914843346221127216028397587925670526058353710045389943426265753330205450923969496509688112817855663492100454338522605980987346096249742298588959169520289259958392058423721753104264096168925089747847899901845293564510516722585176892015051441812491538959610026941165838081898506686817199260351208519681067814477666884437448933398256200418021592222285094565412225803346156067177794937430623678330759573826181338354526328135234952801467856139512850419893721395956173464620205449576637225182851232696048486934272494423921795172016774964692044144777553891224298244814641952549888606713491640231286858907254301368663842801022463259336613019930482528718308425640144090935833202733943133498174810473974254341932948285394427278404774895919623594241388873132592100251475926351738179854448328344768229664740593453984212278006578136294867054559291462708723818853465143280159249529413086818392362369294672747482791813063360014085953162783483645281249822625805710487203339410741409484526424193651109067295334632676573948803223901376264385647808330265439133654237608526618783682428035200971413429082357784178919567738037484553359680451867503611981238063926993224413683027537536741943252337603064387802493920764033003153131635620868995534692773410375855204331669804210051520118881257123138892088898514450200826171692485536684769341587756697000602663181265337772998914322832945128279138194047921000372629468641522783242495522429231663803914141224933028774565999449781335213625163376695960494998547117197454141377947870278073921931356611088052707039041337616250356292268949313938944752136014131682020759219673008827551565672722312508864480437002398143103534020790036630701987075038992362132855593862878575859698431665680753982974598797188777478430804624700530858073768939755536365694300067502448966857298558910641959610673479825138079213973855568243972874275889284301603106692775409021474172889762320445159262334941964412872756422165649994914737691718588397976980029859663258695637141345914264880404344587463305832403926903107992789476778753194142734463633143235228414235189870763011973564194604306252508273535276536881628118262560595619819251368095083926321324009905500223953426369608929423288824194275851231368347408943365718787568210704382858368833113564632975815255972998774364907561135342563302309689142206023609904134921040265199529644308223855795192604571383305316089589005935847226588924602797194659956303742300925371953583215478862483239042537217143139181294177496878774327668287988916959759115825827952772792124944701907908332588799504319579639153412311643071049149129514781540083975776742861539770546728100001183927023983768876628156935798795767149079427156984771805480992915729986760512198515030407112410406058328126640918519111718699865751285679617461112322120859328311576059389350866602803929821641772259471751105633847364006138326520035023353945532783436437438462938656462743410095104061403973066722966380564321232759711589351581260082681581710669172865227358561622728417061123627775287490897035795989289963616935545583864341192041259953042020206419735716024334361286321703790980392749580547394176545127586662185231198886808606064486243601174263018041091277423681594377114270850716898708769459061808576312140325170737291500081783472633555097128440977251532629161518384352760738474231651198212109333563247269927950950171212577054855927362136123837405612040513862281428453694111533862469041939335137303084783609362552317708764193782650404543992008002801333656770339156369879497124175715496019101163264675877738078390376037559175246208568796995636348387565451445706530092073095678105841073664631887594795234101087738311881751846020539911058532283924391394384570704730060202425879824479619179682083633735404823874473232231782959881568037931727922193537376317512256110458432790011000231939130387684965695138805573848512643249583885580921168863844261703623895210322171578006495334772095502504296298936691139923814069277601276943463218615070459153209026813035701403514329876052186585345979846832356583094616657172405235679235218479013411182617972881139410113591315833769775598531999229633075606498563942253061384292835967847064002470643516028618224593714137182414456672522538495520611474912839494101821453372810668781032413222475254987977044155625651624082518653496009521113089086927305886258541510982506287903734291070297634851176621555813907184345271392783985238785245815856503564167020151973370419310250163992795880163088341455638355236434677289066832553406014216189746285820774525475843875711559983603938720993523489684499179476791120855448009516518388229215343895507632472630398507233710520980359041102883801378053075672687516987303651302036239827590100817329642935092243019840645479571988225124084330830553052218526912915137599832755612669576391020998417665991943052746343202493442416594669256714611953487052979896515829443642639086113396188230242254252575141481790540990698761897772180612415669757421700772187791428639833441434187855622958891504440948166069331784702638908582942156802995655679969188554367496356842421515869286318571049017343698120373648818618583335560946707729767983136526188472205027473831201611772308767770264298292530954257187586062147822824407807486446837618225081119466944240860396763553712779045577908486360520785558510131717544986682954967186483490622029409817699224560260959348621190153758156050015830834421878880955642355179055675731785386816215312024212386746407462807024640990380502912244889014116085265816939078498963291881665213540027563920508219562819712728347957417020794732126974986284922573211256564270133332723431426565702642597443593749628934215606659268184510104365276890619156887551823670305599974255365178293755724676037428348183337241497198903631002111613778608647754752178545240102656694763308578098052890995377366802351780555875544332651586981435076267789763852354874760835284722708830546221168668835854167933348240892046582241122147929854739139228226992311207711796195573344901164478861358513743408306464434948864788138776940108323525929085578613320682991749514514051026885469805686547627793802397641290779539439301992659825038397979358122777701715005039225017651922547995663082094070948607486354260947384975600054867195619225645887472978120618235052708970510401134047468372410127481284525374317147996474817618047904590415883472574184851889881613004822448578079191293066356140616857575135073290856121419038468594392618763615542357743428161757513617069429672537050794973209992644098163721445479788169970383295008586698517810531619817056803002488571250893953044737650522178717137198598558394771390255942196725870360748811577143914668016012099406110416870559189963254945387848462734534975303947396901379881173597500205365198492772865182735495692589252417791873540765475215464451125671441792131584251611108605397346403145581211987184180574488817060010022044981774328516608179576045150429414642615413911856756741391998282451031847325164261269547084966682954617955538913762950342972565542197911723445562457549924136387866444768268283224048837416191847391094725549841648306167227162768790219361005542885767930883878499665311013733324273551148861949810781149394472249957320675776886959707747141885543174761867155154610072945781284313222018624610829886123433718375524747070976776174122231865522263290555139921844985928539108282235456642124067248998952314173058943624551427034865454411837632869408779454762188622985044129840296549623532736288685464992092117976186183252071531180900438804839162495281625847828714154535677363676405122950925227893338906056805638545396312051682267041854811389593659802161427287166085822375430727471098737204477735569435983065761401092566047697402578848257724005047855237171902819762609571275205404900280802253449609178019108911281574269103879764213845385415416728159071506666849976040115169089500497785811448407160218836349066547203005702426572492278610517108806775993933592803886817271868587690777652085344529670878038758840215725363901061515087451217072748353955496640371555528358878822143936851414726104012949462371885913341062834146525532650964931925305412341233441883967941944866647027279929717015569591019876410213875058103171548352534758096408080505821452393013646108676648935164067023432187227067728762762434487903381427666270959534575885658152486679726495037485237892440211947584148338908808921642321830623815950886853797223762697396982556473934146773226591137309094991733474088607137790876587992023063970898932959283755481407621100569604704958259988014723799950304935429439191446513438694586969719738024557464449605126481016764044177898586658105400574085222164855947774634081365574309912700167946678669475800520470149829474387551353858386504845666278648649230870881287394454328337686578579847016628906744025613539453338884950441204040127616841201952124286571431141524925506024261990537173779094768908301504274571020422571001223310027486458437369884638300851289568670646471742045310300537300486809683563170794062963659856671897141268735432678181999891958456088627280989660430241599000399976100956445024031210926507516906744104570363491087557237151406431339251270378383269652011135436244040822196541068794163979914801302936219503148158752330657318950346399510676701382294265079637680318248195480289488978405369315856626315182125361783719868493070844355753966043633892198035112417822836759432701793222239793671256577661947318617868576387276495071587221501487860262209198727521201647673192127468313588559825354330666643668882731681825788318433185838807246197536206912212852735593492152908609246818593463292460834332930594479807288853670000995879833700316778261248133412658016190234025608006208041090872122142713767722579800649634060156910635434835107898965652234526185049440487133406293475589065657952834677609288289530902738670803648078661543750042501824732812680007541220773230512937321314166873060180263772062127669902951492278626131161058400835918173787968601637225036660650483519295653306906198870794483935332407398962529345910894774335405266223956916988201415487603857985172849457134986431331347112095725961640682886211722032965293111371288478983881959996379585476639054161279316974606063740569509409636853756552242529032025828243819558617837329054751448195110190320875458578424221243181565215051242508280449292288890399736554384207272467437320450807564832243026731106934222624125394856507489348766118571793611071600132230827362174700144144532078393736107183521280201472311382911229756097127336068022802476932440426887433915242977738670893086816493991161919238415365794727652669107753665806661174523506509830430413945686574840907482182708847236451563193581765725305823441836006350670122812607368186673482769383879888023506136201035842937767024029636602648166556712409824643370367629837860324718473893909658673807212608907081436178982363864437115550967417534584432023909556166296229254176281636462312763440991959187642158993684376813208097725545937963465962079384990884994226435403722814477011918334646425716843510494421365494493981940501669924692893703315113272330812453860672056379433773320371648639245680387616355113086185130225127004353971636605821226501139098413791365852759312101863207346840641681528855693508422528354649584150159852194122506337151906340856235143156835203192909063085877830451113974280169773291516690490094860833530300039534403828017507296754933815420448274008703808575179698247205753895014555170353857496846873681427019514333189858796492577597505991238951140670249200402904304087765998556832264512369820309032868345273439813023315145943816442552201558713964574545213553997792890800273609356500489350035703738747895839333846030173385715471653443995958540604787742278246467742000639772534051194803171170253553060632088148066920963866204391792937943655310696115445670146449182332608096400327762720655232140566748747804358883308946344317600749897753256008119719511023224356292121950375356176146786930570444408316161653727445627171249057169549638653622988661254912830770025126015172202555474895192128243316272466705603375206450802321681740089381072286279972411802306495676029389407554412792920209565116143370903997043645240308117521604622517231073349568074175410866560371965518137424253357552215120172889551444206591679688793727530748806351343041125703067883548815939404189019490159839017754502582645843412545389555692404822731706265874881471829101992575524592972851669593233351454976534578511489328214294490063901886799954271541722209680247070637529683783829957324060200031850522746054081980396242764900821555603903162477208274907662282754168309079147110236578185176521078676193641229246883070881053552750758417371661083693039066534870747483242575254407007555972544280879215575865747495611824465545090884961554085975482959694713994577928852852795215809578003815594324096399137343966782367613903768497764450679055299398241398025167300060827770672728662395655619336178842725360325819425602091185497407789647034107112796089481063512768011841422676322711178513457536871054607643107025130173933428486378789393380068309343210193941936258787747875183749745755169002435058529248149811328678624183212362968128428299660819732072117394141353353900222078706042189808292896499692015003756642766655180469403368384791807977484722856778682533692545020941711333181161740868093264022389928395117957109548115368014421606770622637171117076753791431616330416602229745354414807410015617866726619586049151687451691377244705775467510467599869232267453978922036264869710650988989436847966554320246091876501103298726367712630385754861997875182451647859614222113235886763962090309198543290329562284363925087483954075433805522445708847595649984132647705445625154561510317263711767864618827901487408455977913690806284765930741360898350721899606811249007025485613437785865100086559385619357891858731418769770582629263945070794499105140048106077118415894127869146267579399252644528570655954963511621522924290165678278271858423690509272268944117933537222281467198017856518408708715033277432368419290150131482628155562805269042463028212859140977654958308689043159567490622458123797434078843740338288683174038222473124189065592547730582371046632361947755966910871645627199396886183633961572240415287608184630866404363139740146934794220620487049971301458726767408860263057784725740798429512504613472092314861062054859988309868122458197305977259310448827852477187595209909505745053062567507928896560678526006309560100260560178052613686124478249444809109400319635092446112022687133364950547611238070447284888361772550669308660832898108212312572233032391000049635496541153238738938813419365439246901670853720906648430894881918666353281552582380614031965295982660552675141255473096982273448228337905560197292389007114059116687240368168448700511246548706978523264860679255704206912998895256878511934761403224675818987519529890147449983233909630973342183689947955845100814047579874343318938520255239177556784027707370915873464578834081771203063340143393512189115163833280622179409401680595567836670051057943173666364983890775452558269964348503445124406113400616042581493002278427565172632905357360070091071546289386071619800982983609507516422913728606805828660108261287169493427119525462308908577017838512112937216027313281206528399601727973845151733507353011431967367514460258711369030406859391995299952507965653935748886510024022909972769189756838456733247836248370283613854180497824552040158387981632850892537485705426629617713999921423078904493862514817120322933264870054378810209616343528069164927741920814550989728212650185176515434211359536228231062032993669392223941062852682251605014383488700520489366507649818543661284527106408493463218745526341116792561587947567542841693612106148857617579637061273176432566882482136761797489509363423084273281265518187694355513763015451281261988029814944461483887995814528234937260596077874580949329754026579893487905194532657832375005345799343040851109309140487990593315955047981791858711949003165574895556731998303517387878070054520496581905653315779159931756965291406087159750115952269684804139005513720127400801891157022538468137835450281936601995891636796085147577186220479186000763412294179282219584979063915423944204485331824463817138590186416622914646367210489917810647594425692377769404231383724704870791225800659566334213964749917649765034189255909728526525227599684810047015638478538824451619397438807079616048875894559816312870744779080895622699269280550364362114128594613015791373919970678554460001686918583590242548374538502330631144361795005602231025284115644849007646129418853592961667233887608169851573856132417656508039963907795110814680751378472452795613776057836859883859733604218595577786805084021057843233484682398129098465984925285634774517907711502313189179588194371764051959117173572093044647914960387775542963607867224152377028278037539001177024459174851560506576448478993090628037092156383034745302195345474463144435091012808522318138653012684927580156612799877879684462536470674888042865484295579893936087183386755587312820950173460261796436711211848626591141291900314146005240303927355492299110261535522911067072351102713865733219439211186456477021813317477651517406195228719982937531875829137413045341998809241784793040506353180214454004364089342681641838613029926615428229849872605061621055121661409288312883708534038777021901245777351148094621923847039139635746647148214736546403915289002352390608752738633832757318104830667039428799127226268809540991908039329281657778537029916022213916603825656222124820087388039111401200932324888807827487170821795007851272493743674132401981863268911722351993089728750658135031324357056076482148483995932051503990744393730274654131585235148592134124686626306970941263092912795010512705395324939888674005996136677895660057172652198122213713473754020458940458298197103137816880427068116469845466678370252800167955812173947678870797140199435399657621695264346163570837427103424519548424308307286437791673871419085694297107958811194560494164409968650642491959256601541399484314766282157440709203509611623417160609999800840771403302122015111961429081630398533921820366004691441527398921828499286808881717092871941967351371729301547657693650513125589575359955849147718522596247940236700732826727585789783169146817685976491272734998004790781862162644766806648847615910025152610847148665324861465814917603026085460321324132008734066817155478872296398923653762754648589082804487196102294964454909917332938776010992816586714882617630497639895356756148906486593438204839443142775545380078052030041660235626393581354172827275640627843534072474540156616210987833290350364627066992890958904407635955446395686752211089130824898005736139051822268686018106612353101055058658837980427061682340584071034340225699760316401451043852651779842302583923549105303966987654392038206215458503344114883131016306875721208789681123378237418184670616298894316610993966236292875309979367961601184084195675022036818319860949346972242950848725391059434025384689221268478462106994204556300448290088753282332755715566623954238991591578094010872181309585898940911508810396884281763422944785641035152729287875822307700996288874742298547549138514223194146159685590073511852797431155565467304024099594024824462073510505070917115364387697341651267885461366432455814511920838458216758051028070786352614081868469249087277214201027871562545214786267979403133524740015810913766898777848589870276033639126980646818753505237870678323272803131771698695703201232279172864294968113159409839742241343451096694831866840925146602129503550521178734260414734319954968869967711444608224946981026135731022829968920431337190906442990260574323716313904929100190647018276808409633364630902832454102835628180266423356492105669911106354879618612262678578806368065102017654943129149896988928861768807996797443930273138566695628898317596144955563114345533028463006118781930310389550239756337206443141616768007892185892452068873898140317294890714430471524526483031522367742550473203850393649137887661840750174760902485684321080824269779014274866700300802110371445577660863587123434058774356537960488251447149453977167567331861506425375879692389144033198491438795214669682383894618739564159248679888391679800959007347058148224345697773549750791427213224600043575035155052670199230747161954130919537836448423153302955820729224318557574644776285516066957684337728406936301836335948310515596812880689844591951335886076728878541748981065923456368312453549831640519300841810801319390761080508056404767815859801855909840973293347261705319678964005821249651256931637011800119326404968357449719654649273753210432444990359875527305311699053802125213216190554820408809441100730792774749698972839956478940277572999698762462329142208049151437819382094587117615807268812714274453651580157514641115289259878800819659301507489666477619648953680377976071770790877913244555354923655109496778361209045537057782958695683366840306439319957862462467781748685481058247052814885242448481876173414776414371685017641009003409924139224132496662971548847913882894903736053885335967028383317946261490233138164293075994629992063509330189868628303227012361964444013468119911999029266969094325276513932027533581636505100125620226067358061586011733871536090184472163044684679176756755749965652344279061113339640463389054106957531719085262096615407675933217088543484005276576555677829639352606857365603136488052007080266198914498081134908623695775322506982184705490604822917241528088391219643285293453157499748492679412007483319859163318951257810776793804177598916912384450611021518728787436203190396771399375636742963496277177246379490108323260623134633122760078319405743662077367667920870912155964597959418547553344689887515908244608545941788415966690046134142731844049656108188972226737328477955279449975780632721769040541250487415591215246633074904499186578195231629104933567720986260205938911354929711189712217504245582279553383017661643767749300982472381675964423593140522019834180168240873662742623691615164193061467036158788657720957020687383844577894089053336640842260934453110127116166158064603783472989735559965158342253002290249749583979167135036531899097894493533096961754054504288502207840515114620784604490974586208363368940469416943001368503878138972465995794364980787390789890715708973095686653452643884790394904175206353661147309310988602869073900389347941366328923329831213313914821223907925725150064161719802445305855184470667734756520868209550025538043871809357793263331857143094685214011853001258726879121065945112234114403113260722902792046108984023702454782391782779708270698379885266400484919253215538412027363200461421870632072837043992213963306246525889497956888830319319455104751553678311409715082753427069339235113158290747674333278274828624624788963733069862526162178167837616792986615162436306539786867767090753013069510763879293879485855464985812330678187070739919652630687068762368288468779883079849642164019232822692837170557042239763828883823842666508856589848923565428697000539439808184065698024722034144230195727868389217618530913289483084096642160908693970619851931566841516884619596359156578562383497160099398135772828184864797016415257657036228368369168848190617395852510079052128841802615513503559118127699057022316152868147435628751241318592457224886025235438530415305684669939924581036988134778572141271505574581087800227209849215269457322019901486950796525544449657349422565949290360128115168887042079727458994029752686132723408074814629372608148382386151894052348213539317709557292617515662295997872732869086304509622780945877751041866057366970917106478804641523370993713502586052076012697382322064876192491417508397254275616386480543700322321571525448374840790514588454601506590842995916215956306568294354454924478222661338499545051367940352976317883225560400269977981396932866034508353083726276340352868439846598364633433787014354706637398852040097371456556446545591854302824777377306007267668269250370772249298644769446390984598020974389028307581789310365250116754376419407674288796046221545366876737219804921070081062422086094758528900711121366457980275341922547378580215488164800612108691474233586766675777277340617656898225392769680947974275340004612783216199241632194884299586154443927739382905030618997130253611500846784413861763438557434935158459230086719019208731245746077196445655690316409243217269961030373119324351133343668888578436716664225808288698455042054539216336816915812385478953858562453823776052015434586754106077807188785248107183250706282612750310589885553018652416438947502962206193515996903901057722713332625221125119172881366512303210771272565167225596925455836649360473313096497102527010373524010040255046084212605069178745604854081522263377716804171016181514741464270689867263152096730215619334101109872719490677014681441992284537057619870545808342948222668831080106204476746072310239850763515447733920854226131111551525670875622129553900985995557371369464252353714784571738209274189836181478625557781318945041490956131944383625068849242626436951682334440019706996380968637225551190390184787218313901471881361532960338087682866517183618240878955399116139057887206458581082889037612956537979619323497676818594181287763462846023487271841189346825294407645674715242443945177675285439000656889311321432484666305972267599688271091108581746720340660699955682212263204845597832993897966361250186493324260654385359817268973634803555840562931371271123231990583173277479383952360734784596393752199998961025054349192040496853327336431994593719649013049887681378833055214127380771099258337644145956938927365918067799745538173274453416305319442170437744382222233965365846455873297796361757835265412108812330957965200694062004993313859492140647693326709784140059445961352401037676126416809492775893163043861086094125267118875728675442877766595417078594109531570646850546297811092381295248962218196172402670798374572311325054446074024976926287653869868174908644421826384013362068800047691794867719658836496441296456155263727831363445974364588697135183158485431860658576621801263476096330094294221887552268524357322184482916147342030699016385278816271783826644223212987171281836897735546799954412551750118412892642185203348125024182992998695463964909337791682249516771884130644595859725883683205376500524241320232876452411026821067277505712659655059699898754823214205987512879009390717609384085305379200164333155994718484820751075507690295199319743223363737641563229454063331986079649618559648612184018821077973290729908387580281342265903191219618413130792595387775675014503364510388654392238358561634742257889968207434722465321991900606777606639968644410034804002015576730919945577619663997785592575155147939700112978308284825115400633498431632098292112226020639621245535730446494965614294013292208418354121567331314639197974876097895793835068821507924656687110920082033249375897789087084233406572493138079965455811472494940050977968728164275282096376416858380712730543287506551290820657536041079076697343370916489042972336989619995972610213361780345387940541938090684691800999156347467046340036130556159276365884810665106602993107720050674813865000210649978458753821799904539442886740605058007727552161579186003774065713160447792805698034937165624432241672017743337539384640702273200539676137643405033470049572699399497999357513511802900395412867959044018833156317640263953921075861328135271244591497680042596990681135972671219846922659902002771748577326182747032071652401014347571607493558067913980287024236541216081713060912920036116513689477182483216585792358318318303091985582754952375507105023224207578941263412417041327076393622792799639463209423516411034674865837822154439258718796765852554611180037775074864149021196450837226910626898108538462057832258691397477889873867200644355846721829083161947406746344701335623776219067060462504711547551321760386156227439749329226027496746765802365200982092345955276307934146133861138830483979171033344006722690438131288884917675626125242544552194587161130480088762619322928717059654429884162006401152685148133291972005411958939847652399772454224714746962717149013336378149406950383424505881999320110401652757753935907897032990578870912247505595853986222860046743148941608927467827551994642059640429999901463005656663908968908635441300870784408311014552786180109811015174978986792208490064358046311049437461872509485539828187060250051577014242804358155440392656812101817947669119860735432506872317627697985858897765883178820937713982853263994902466709647946091089306275664474695492554188227604053500658660613762609339165033594063012177948282438081330320220575255270900853747594566796247859625170199050829467136013275540789833493518359260650849848898721570618775602454191241737061811249890633984549993558397478278295465732039900963728044587948605082389663202319578778923024011771295907447510789180000879046871950586443766914915364459148065339873181560615826448642280563092286419170286522706712869919912721602160195236300200714656295465230814072633563932429029458661925704241391748264115221566797750897849013189076062595290386665146675472621066119024581028676466727324428080528844491150254000611006882477856374166492107959164262860176493492976234783530716478008164810368059619563396715365456861892274910422197671252345234777642971689416663602201445952594256112111431353722620014826164688408631184174547692541182120245690888422844452270245106788512563206179762193686855737734598038068472161862692585438117080079512720092469802880247244297579368558048725252413416339626138624630586807119150643686900638248135515901420447974352484946455404016445586380341219610447393758876790083130075751425999085760879021730421161438120105041318697976699808217380370493972338903742641394921070776243378030077133596383216082852874438603136585642956971005601929978409500203265408428545886531921705078505032949485895340541524308994951479193126713853241943848314340964310160809427537529105156460648802673641355035480827473784655891166582010397157456532825130693161383509756725669907534334730197118253704102602415248405931854730347453688641296822333900953286610063369758236931069006285258539064927182370611644944896304836428998321908539756571339049142600106498252114074352903142974235860061591375151559022983369294847962742624038716234279128577883794716894551341153880989184684978132788042838566769184005608726632372534884506568668201333113479202721051382290790217470920229701296146466865205499357778660270272068747389324677132394796904878234613307637389688537075286217928114927113825843896691007922157451768455001121565958265515061111615847893023922805698479964408803228780038591497239502010703060182278205586994761822167333617602433774510994845332358388738341375251438719581891017124618377739029249769210038698515058154246653153331766692619939678406954838133370103176262387511443222036634948770164025536710833475927062709751912273099879977978726424723770760287698733475147202308454357753454323799068245700934794800365758523650759017252880163975542043357240711488826771638245918825911784347359346089604388334688433038154025673524539201302177623286751650440102067335433353873591347810487255654317051746317985371642916528371907335834971772941559971910569573848573714261458242654239291255863888266192242534966736910397755467323393408928498900538655181754188591549301397866826117383355926075046436249265828477197175926708275510537901659902479494678168473427804102581702088062116415979612492000233256627162604968274818395377858615955888248266052986292483505020288303051161190445081248754953068002430534543936181637114030298950407102889755531011529882507873909341930771383510498101441809749558946350847776778033882907892153487640904893824181804945081476683506762133014055650126162048761291161572815927742662782971909781729058466464982168322643706188285617264962523685291494685407759087500318214595643735218546824085265068452284676535379577315862553336246756173247498886901765401707735708840775537099509949440432385207382152041924980070956411236274238718607932833699497767359456255821858221238741026765148630897001736532073553384549005657638706254908656018418533618448301705530095930972928911931255372374152025379391204169346299977089762812498313316765462471132609089577931601777186040365491774163345375667567591797514868683707571825281694963651581926274136143629204747012530798334093621571578655975709567341447904490517436132545623289088387879211784438885221078177103333370663711236640553960481167550568710817124739208335779621951124766650999650800145273239471562947996909555091990221747534130885816937444407206200168428867784673946009239562341641494130093773695708337757762454078088461684659077609639561411011120918597227197695223717206218972898077143863738267701637858888627567917100678369940209327561915782559728502154083308025161006769098697133893750293932506848231451661726313694414233511369133680558309736971314663510142133812752260440935183247451213029664265690941092415886306688848329998785438603140220391887942744604920171444765987294081426562788919258683986350503949341396047726138619116042841463094931453611691232169317968291709162713791495582930473144457312962728068619983074347844406864059911528285466164271988243513884126234602547913852354086208356672549683543822300751024398067792688752799649718205911097707336099454944527206686975114793154387119598767731947568018639209988004006570390038508042152957841694292901507108842719354083321986791298363612757128680656704776720669821900322372662451680114546857933661527121456419473864786966433721151647840641350902524626432941933637787374372018097879851194623166645960682937088243886430453988012901755343228103586824708231110204572262057204323944616701711454069660068585853760792569298989765783763819049160710922317230247296338027813841313590551107806368808893078693482044357503373507827354419978543644852975061452231609892449417288512313424300819567050279120774143708416055366069281729984330196460274732245657698368278360214352960762200257080817947804611238765524269850522852777115725290554392969970823064125872561575414274051456094746088705689671952487779909565376569455543647053098463008053793076573648235192018832114954926978013008021668061867807408039502729574321838398796181105529214902976173113088478903223216960119768086697921467375589329721491026265467111491772517772611530548307350212003104855907621525455235222168028936869394180514192250806917525794793006973087034064044317873330006941760152950538266566241353208009487725077789101579074230905373066829977438435701374739658170760495261736414755451452377821063950403232553675642518788858041396432336141095982148863258202760075206468477925791211636461335923565270039303073638291884494826572262772237049394511865268637918018307531017566092744926918382457306645416502746111145369324947336862451997808458909334838758025017457599500078711865944622808347734575570517896256670797428430362575541031197315784187434226357267395945173759317848210456853608310373513659391745607789626784943324231950289856407995443988696399807929782986096838654418656830406201591310356752963314679137496828833264210424066630987131134768480029260449291882243466818801107665356820557480978506394411919773703368878836195397072170948028932545865342068725798554896198700084703926239551347955220865952712191530389354799583755970741820586141289750715499187188483472646391709328997901542912927597415535974699473183404448528209209787139248624849263158638603533280099267363347392837095008062317401612329820790659371847618599442249546510453833522411250476344406966746133910832695923869377265589474465721902820331094403223147735042447370538014554624717110748026474588441939001329415778356343490207582634716633524782643708577485227784683276838660945142584876258489694736227154536769926359126691269061273114640803320324063261008282908487625313751692843536095229360763092183725153327515294408426531222658002055463774495352280386564460113448264919860403372270510047071521690947878913911025385352766916533102831639785704470818367832760571084195393754472106624610362213775379408914310284292770007037832571292647293586535321170250114396160561196956359271976926656084352871812786317804221248514667410778171798035106412954805645063863153740194263610167290280202990237848050091170314441074102126779234125956678995532954335696406529477124376520979498920935476645899516725981767974632365239993607324953838688194968991412642616242542719596566316737881380735114427441136684189613254465359398796997918168209181111628478078592137879121574567307117225984634996712491460731638060705044063412267452008047064300325035951031591569499067386217492705462426058594056441986650653819338914301187627290368702817481524906490288529678471141218859190727584951023124290647595969887597126000669202903510837487964754725974069452761513347762723645653872855636279847266540972625309897895101194122508339176197802236417163880015084964433547991311329562048265940119297250015361677206955126542510001587439968239751246558783325506309372749312803440084169896937095823228786678369352013155160694303475008091586004736938419898966001313755223190594592001021819780405044109097128757965039238429492380620448963669829173523577932421685896390608694737667839859268601250186799579124982389143420678988332550169923045276216794108286762611847406061621249279039041268026780377245172189602412384943057470465894845921237148401041150521987719746897278870516300534564273167407001949190646633595125410916115894204482764032550888558384885816553580494481172433820685783113358028329292913686300756913696600807613425071626241689645764532199345240616713906304580372666821634452099801900311702309578411108597850768491952692346699888347125123487808580247187160568512306162734081061072451600153295955357418268237635621300321678802827086404078236463117748432566108248681074962177742231902538782782802950702577531231486579941958576677993675770641375769294761448979236709081483742824986347914232696240685034953261533042390375274103088144292411894756116452169828803540637441045989781129059343007962197357605968293294040836242086292472197578068887610771785846733563215109973769939951995826841170650913870576424399913405881776175161083101879912459306694831008845441452952628540712536007572411821754024809723006193678761263735612734947769570291622808891369178983959988871915624231838729548081534617767414452219887615994587688080773141209281737938183628145421371795441431466343271530773811692225205132999315707905192833206864923074771146975714269230887176064642644072490498496269883695416969052147901163958104604936187155826751311452484888398493464969172364906378217137908209469636465969409531943994580080023188580288392724289671776881017083214036635096065790633319254195717042200050290995925029516211748444159375906209913930250789071537155109891135444478879909513805446180576379919312853153106356158849600958194531250547814976979140791784331238010921263058232465478987759965292675122641678879270996812352560579167439505052733844965867647347558130646806180393556623088893825912538269227501906013478164083838725055301608948249202824954515026888873341979683240979365774827581104149692453093570496022110264808772199746511060419797307775162447560266496066779112188391821109486334509366527104159104199582054711823941892191672668057850033157347221621235844383098139990790229815086828860935658031127078644102739630925965393031234231935183089125177324570510430645995777320787879084342867791360554666835630913522052560130987678941356411444585597009962157101244363995778427983155465867471038730213917386437119033662770962144481422147777790234090342816015579867064384075766119472492081111709612254562182090267717606769392291476583691013158048078857561736751507953825248540160845958041887130809273001022794226980023678087633923058676743696784334268933317491421538744892199690686173074628879630362274840178837491301040218969973579749775848888672087329024227132559708936932165273085818102028125473132614030335893035158850215744588081079361132632945290653954970728372973766718280308730456192928782496256307182173089312173265784458227802669371032248927916200861581205151716292147881110446914856931540158911332674424095769512846864417714210058438417723554188827049444768950723089358712873781427650690519044919147425031194845206239647633673236367087112432649365779488991094517803119969241408347283712802366738026878878265535079971509684551523497024038580901962921345533555337564211320605561898490895964857974965882779754893492965223497411965689254652110482700301573928185249706233409267194108043649224731617396599899404545847975926906280183018943735155047881786359888030980732206721922457253521100808268718879944623341801176462659574257516961428905439780191197150459600126335982450827386346099517532723860749078651606157374373487361997487967337352155161038648250800755172446409547571765887781071119381853095932800317385292412841666217066722567952635295817688807298706880582310974343766118033693922300695048053214703415958485308370809197601064420468177818343761361779881221707096870877996548968321191392896552263995551248309028319614806503118037086225518356997581987812347365304299900297263653042908106414201301534248964337200308905725061637208675013231994273330048396599619011088814386897044977284921763228882441401683264442904641187392629714772299450272194337861128193576505081818646241181354480093893348852969414538232732286668890084727648261766327324775203133416401011132386841989620548103120351529744832554958888782743951505908930061912386275496718579601053431908184281972861794405814598313295636116284670230504882948619699604773065734090361635746491953352320862885324909264772446129975876124035003225545133112594607444282870898115683543292787058383970993457078224351798842038894544086130774758979408616701693268091163379836601560690563537705815886304714782122326229327147914764803741612327155179866565572597577723101488984076742151276224855364906457457070463183743603057881488902668419781066024499289147894067273517864666781307299451912141120487170007891656958369544093498306162017297507794019024781517445750054785407289352066205142207780714083898912284198943621982958835150146194170600973216546992067444146954736548587818930290434009451353521634188603511445715556163885472148768772329438436910718391262250025053750347628044833089607721879359881631515720781324643335254653624514763024886655907374879990563879528429188117217855132648151028546077687737832534017748259610397464996366558635084474588890518285197342562781590779387115015970348258838299999561516151546708403794974891451187332881622244695041575334586340101558370760956252297297419250247615060346195523188829090191397213396503117738952004379094333589376069611551175095234096117049708365788110673270745581074061565613765892414443482734287996390673690988505574667225594092478253026598296038753543274233484642995777499988429975793747274619201968927587163140937737308528578171604875832160930723749141271957843492611007609149958806136903024006896018623744275795722210309786756631271864326115690400755181166950532187904089154158440771328130208950263576717984649663664045048375995404121556030325301130331821004708802834028444869888434812181255443009941670350540005656613057442315370462146697851428095614728679081283910016626704060149871088264079816406938957089092757136742362720657402882962081430297641327412300641012151881023982433808653967758531842798169050386688554975060158908690124918242728117544622810715431456302313589154132077845622542796487546935643593656469479704336211867125868110621030062279073550744859506069119172787679742380200256737884946135557347898405012711608892501244510104099220738163328064991134350439507403431418268781151135601077233199606492990486908058869719154990373510676173527589457711564618111228737081523156616626086845788732687809409581292583010389651112742029626909536232379324480381214152383010484395293927056755963695891150032053282484817414233880397205647929887948825759276607192303371987915769551096177937062632568982168775479090468130198174803038540424193394236070348910112822064170885082169569032654402435170649181642534548404940211730501109230471640396561567801536461521728309151267070761570724156331863754137007206004768041484315103433946947723478930139249760525329591311995588399607954035882451233276009826823521801908966649068608442704092224720869394575963419249776887737652104217703710612169906738301080923233741792825471258677080839886686214474440904910031269301868479623038488401116451601626832874406674902797145492037001700348432527185899416327056748348391640265491088802215899918998779579781941841778917174229455274834186856005956070315605250210189600937773211748595605683212004805600562085483107643209573408562663615290277734190588881301241488761434843636203280949410584125577332061814331118064299259664515150202012747201572742959254465983939766563501595196833069280656330597059427587188338936682171227197095392963416289111488170812324126797450372434398205222420327748995417810968525576109865866809487160933790162361489985058356240439022530842476387159118385684273482678382201365538220863494203747268727005801826444296301647900630784960894632193649505286770378251450455385509707981704292282106862245931630556272328151794623759946813342713886476950271689202383209597922075499163398375433168396407991809854511057400188061777834814478107384857001587812615757008420533266385830797743336739499454094046202801726510915349936440713055642370890413896539586850029929391327374412813022584691987686540596921376362469253691906478706240784915780650631935411032181334166832231030083085938707288015183351982100610283781788967580810262518097589553428456224901373621917913919046456738741351824791272182476080025966390863410695558961479196451526872340628126342871432004421073538645502379892416555423747070443248467870568796285581127290951537639849542284542257650236945666691365268905732880709227475065964244804973190705305509197866123977893257165903163735097648442038981939268944449875390836431386916185478630099789258152546423335646324444768918955671908105999870888085061334833488347636083560316411762163877079990366663623665053977876453057406506162123964164784065972836058605008511643919259398911934639478661597278329814719428816068816669031358587724106465197729089532960297486382889232140993430635106941015410727745418136573632217367538918198998159153795928934697489494195515005990897804675178384548876349727720832394362427857124499710507421506652265848512546830503944798680429942784134643729034537082140201987789226306990062204850364249064894445688035430981636758451623594326025441163467393497834697323892645898679259724533169803373773567284736001232804935468631302156635670548978352041925413109670935474652875066361942766982068431464888502335585808929235233693464368552319915244313386711492200448988782989744077216466018460924439559074649120155465702778890638314679727109935787316191917022325718730819456873545121748049051183166738081173318634320324708228306352691597375403897167081576416710395131808374292238405560227324820100902347559696647691863590483878824455981302867230829015588723226684854341489617849499660840110995510668923554792461621884262130466072504469663049064043898874033798719295237751269719505287973113512449780638268191742861684606699017057748708162187115900508843161689896246107238942324211157177796596654187444767251462925244766841769952885009956648998915161959730860812742120958706633484218748979532954328863700553340207985889482412831117198368004423702839202273363928591404585157848537923673864375173442544707612618811572178470665144918446942739013155925188177253737470414509803399157126872186454741804657203088204132544879360186344467989264497168032677340480699835271937724755329247393357921603713344726560595427011193309065952342982631186083901675205031765092397055414290579155850624832489533398784161615559700204249793857068787668625147873716364219267373709610678518402482511867987414296987003780445875536697786517308743227664008424449173744364248350099502841975101168100340501878562290141996949737546215506619144895727113040017221862057848042615823583612028891070544418631984934445020984523282228030629824851447928683878430804142439512608868114230903677193713145500107348586386138016851874070450688727590940668410619028602115230950648983735285426733450836900413108695481200529799194529862779132890147191617931314147014887421844900626888654811380456766845390891542905532074916306083793853299547238550087831397015406344198062501754950786406609311328201179461103439933906027781384395471902139168836438290636823401073679841651609148907976399374193801459970936541837795166298044047696225692930739307544196236387017120862223425755300059569371825555270968469472478631884780801134562738683075444520817956006287174523567844943350514986787206372842770918945332768319358841266223443212352792854277979363753573058159453131905203806652855271511920046727921908465545188353647622495498579992643393292296547547612511150252865093150286009866831836149532825561600020597564273725983112467887000173490667581824500317589714826954085981824844813955249985411751114537630809129820067134400414557442999526190066760476005374791517536139198676816646284241077970767636109806824939074678966022095654922361339890075374777735766647440781764497361724120358554506470451969605875061646796993908390229008302172571338596600003338682576216567050702828410416969643222745634258562033840424333228503598478720587038475843276003783523649494142678052233979152852782125006023304818470167621205292982807075066760150914045431564030449427599953432471200102161538560552129811517020251163699298687543715310004539350541149526240445470876428930984049347512748220181571852598804839704063144102431140410856922807350292907816522460357160627704120090746030400014575246247493816228236780438972606442407913898113933799711296529187796327572641780771082329066788041586718868755201783581396448710914141470609342778541364110504951362655384319074653471705483238149326270624844386407993270502916928404086203286642491463814389822259203773750601712665447020958002726437280976079717134118843904573174390899220483563970145135506160850407260219002411755308513262053349032652781429112210862317463652190226531789967800966438820595357810295714210112491545148948523186992307012889781160967868566243796732072162943248455497245184097987819792770723784922082996936551243557929406050013430458486961849005503660364094655272565579338416107153398201027459194813270347811398785521886600658676535810922504434493068724929703078785283619945937293093679359582968945013882602446727471660136553450436964750164780596731347653362943037671726091226162919669437859840340866131321961211252567681991258369652532234012667531688994504939826613639069053476191461724634747013235696683212574192004662103369215627528178323464454555469613468277492568803736468871219276586104869987835162273494233080479427569414344566319990874854755710502508112471143424285888349470147376010248609291156869790103259666404669125573228536672314374711909356562875245423313419746439719492426987900568780243651019646918678485103389150731190775002578424261490762346521368614221054968112057309461426556105579458287509720103349151699294672840258898300585680651783539528056118641750953335863001309367963302538516180743629226760435712263590746367562611596194972638893906640797950200435620915968088301966706390187343988029903845047529584210719139818882675459837487252742382761310807035249060619750712225596872032893577094581556522203822165810423604841900297252695437346700325135660228300340299872580085317218438346251992113584006961441985506464187162290686233595724387437353180982616018114551059707516979429660384946652690323066929727554569257986298710275863300308443289592571252774939561774947784960357445851274827789319782680529313501181836554311636266837506201806154606390895206306859722701919136967585514036165129291392528961641113635635046672293280400553493535405603773892588527532824268680161606719213260185539061107617691632389928538075658830970441076139473550249603592171683676853290603336044901004243310638694223799248044336192532769281178063575737747856071687946372421813485814748057472216792424043571456371354143861607264177873792792641828954771031815427457732819055049271399862909303053528433825233407064521364108291674927383471971823481017310831157082115309791287218564424093151692376580609968218301343750910215538270532450434333394521696864486489188499637649422518031481662292200702556485783673526690093411411195874448125047380114292240938874403975622577852350079549542246605623578510496915365683542793617026243343486655513021935647204794823585848794218042143311735759740097756289912821948389880741024305741134273388542570132127820957154157675534355931678129246694516203519591723804367100461486744375738622785711038546880784594132767532788418442842743423622049876821395779590219315856595651784494160531769705395303002174184897418208688429788042278782738162912004900922602954973932552035489377967280273612459125335002057961536610312062830293772213697153321380897560595445258246959636484907881170031467798316081488070772210610006448357062352118194085220412679144034418346157936153340272953726810762352499595175553188135602275269768041429570516706919876347185239423184720189567703502971835306020584641703944412794138221159557708828782498064405997719385799835342408703542867529503185019109628454243816479650734696907368666049650498497058111525363721556536180935269270969356580375160312085484400439693816445863097817466890509756136402649401966459528612155625867802545035319054086939868965833140671291549624825326292097108090587794003291991053987073843434628055771686720383568087302064651555956673848256909215828200773857478930647936305761540633447004902403598563625416365808270334928609589619981001625005427719205058321783087322975749675841850433290193153554161280409154295783562559992418777141930464883366365989446029929028595395777332163956455758706901691541960703194532383709773956143532622527231312211470736013359516875318500772335225026463540620377203977587794316151965955652756998472276662303638910075097284869084973155411554946297224099322351841691414542961920449676360535433357277480285083163753896176819401118412763869686795361254485284756659801364652465628559717113472444761351392970875089955001327140289057886415202882851318064859459833926455400181123904591678798511765214974968036455277566020868728734965453667642125653349729847817960274272312290447016252773274959315752875315561505797754504696181528330487308368536522871110288051894517700182249865493033514922589945316266788951090339020356652746159264960763872373031324375168809289147038801996253610629877068492413246279767800869337839532403186327100509859999421829000924681340224613791298140525168947750752151310581467318333747252308059974665429391736939623118304701622030733647488993071049300144995489487178443008354173642630268306521153862913813088423620761135877556827068496481056875394388074199795286893778958127303775847782106102422502111882987394498077373233086129712887728574842501382139750907599276895624748481806390161788380926057083733064323908507624786512744140258560518785338793867116008098067970798613204280491368978460714470669887218955624523163733129227741516730594337462007313351757562039593606131205836918346403957762952418798421554130970734714649928958354008097575793457111314063979607949013547626495374884462586895441885136113532001701657778973426379792690738758307073247187580078672688386707775853809897564935436187968341366364425428849711021653854161842969356967618403025519063808011511252194000478293419362043734334153597665673091549589185044197844071901059705850294220440303837924490829906546813756047460363270048880841218249395321904994186878959218148569660621073287677796236270848088919833500737739774201707316787321066427589417783909562224264358118847482910191193376670803465134756777816130859964207627542685755499238739669804726102748655765166461905011663402040684916376700334326434285970868933470670834936941442902726597702345038612096353887604823698161043057133600221017364433296349755750173371593677923139726767807464927877690752283497565855719463238557315027379736455913746961950798973772536666557184040150901909490022969297685643082669804078267972906893349307086460217895981228114673092607323610052441968234824215522983553580069086343089417918500616277896682555580138051002678003745409809553719166172992693994118622464379638977394344047211845297243367794894947794272585453566312704298724884444536518758984574684671977901823702268041103369881868412341800074875104248432709986201913477919156188837369087411095138893026897772771387129523719706407869296027028682298238531683887750645973321215777596226916889603863088334417150388306097302039988009679833557885485222536315832500278280100173416581054106066498626890098850868953872867307340574321459335877925869126142691436540044152269552988053166152834723707438863574415959277562973052536980993785560920815054284308397036344713138754056353731908714470869718875497182808476383272594533086839429613250002585347042455447131694510524600652757487567949672227841531696865938932421029704716249713724042631053440563826847320830788297931852492971173039339896190267529731964419550384300659155447054414413036966609528791389684103994780059074302031729597594887191798647785758987126866074261796685229883841972456975492647167005455462358225529714133497082764515928680626377745521056091120692830985649172878845458937191991438419906289298357232097241866682067930921959777599895691014218815258022092313347140377945496112470566109530068567791169139283124836805589070103976877585523943877129911003228004731290271639258849611860559060311981736258191476993969873800820150622021666758609228157031110877458733635048436800180962685358619828517353861538159661924087096747623523763684301089381667171411785169678378745076465894626809885031337642277121751186344655052529578149357599857744012586945747537379267751254138421989724696408533377908436006029502975328791202693479288321647336112415857625803123711033686794956790961152137252644403521242013456025987026393982952453117032955847785181512672782873189872162674431259100890486514354246421118953362339316053269173446950487583887288807684741006769545368731456512036481326099085604134136603479415436410983003004840954713553363326208687967929079977438434858827274113886700680503729300100294504757579544710703829087996529597698842241011110149385986093666410130198248237643420461276109053918102652752937223624233476530873120305137277278346972660192409349304595380135131239421363758985046187639301131800225031784773696377802774063667823813395727979211535658949969253473096453001017124613038105122194532528141160575094909052372959026089454601667198004475444763672377058056445469023803227843549592778392167719481246541493501740956333372954902980202883916479908649822476930090086553019969322594761557357751814764823482981718757936801474637990821549491660535578196823866619352368213048994083392707342430850259136616568483537725610374382069503917242538814260549733614988615406330368379436034779106209784861524069277648099875904327597856386964283193534069608064867565588060754214780730070562720759638068572469337647083728061570925709695172686254429828250041732717753738629365917357325655525814194999966181446652020376112463184309930236250965962581487503672870388969666980636831718270292865522117018568731334120928083715724119738686568099640428973506359650790691848249638203904889984118093955570895018955664161918846423931668443519693976977203792256915983035382999846340999306030308999210037989138712160574622681827443833813812029910836955935407809773618635328869480610284601955101846882055572572645840372245960064084374211336146510924376361109289421718691725163197816377448741677944608671923596367499220149857980497050831827334159971220484001561106315005788924928471921190063310074689422157324196607180410253285894034774510157607887418419766007175066994740528683467636941658572668079543798727676086498853927031899907937973730404390713211634159364343071251256394084062338239815009053011275168090337210310523705765874481739285704396336800483008052396152134500971558628377303026582347762891837321777388057611570575506631445292256717791153113516176959464495793590299617084179283785659591931657967313414194619643774849886048903458499135781395692030704752286844093059947346142799026180376179643811756662981145699170274249208472497099443975337288881295987685183587445778187391361402369693123029309724628194163747683181247098934512377456127913889352172697765844317356948496143329905825607692344441632353086688440114912223061357678783364824621744343822534858442561854668418880369478581332311259474379919648068640696280834436286535525395598293985016883376482297179631809764983978009746828371354241228349112836031663422779026764012950092688521473319885798935443295249375282056832724189135906474570220081815861188494937079139213657877059874912669072469847845906245187931815538521176009211686849415651357639729627714297586911702885389997695321279524968551803171963243010594126483143204037433907931059475900136471496496347706916026853530114239632065652053909438064994627945112659668920714730459054714487943493611458985507798042526523889713119297246783340664866632220848313566768454797930350573345909286367658047128977409900609485134361934567569763546159483085111936899504037008924856352341081533405672616087411682151169038785355790200986195146088964720410009772181448588692135498568245384893652794932036479174517346072931579615841737417528025739020842414122632511414163647909194688723840911954878897550632812692985707454652195721952918362986778013771798133454891038863844635382358224433921875324150515701719494571066143064335204817641589388154223271921952805749575687368214235207495948165022390083444564090634749164741091523047365540316471528615847004922941821219039775860469366081395959310160026014746743440403128375653554812351297254632914927749007916470618160820997177773366784937398296840489953729389331835091694974334439959324005701250475104441621303741171890660409625177648937135450141861205090844367897342391511015074864556301675133648590234476900778417572243438302981590452513903843454206103601331637079286837050146780062199116305382105429527051190471306895214310497971031595460349122286613055466451893667391256615689905222831324659873689213699351920129894883828061417830651420184324748887637959299185334901171982867627061130164026243728083829352866738763673707599633685929671798388572214793369982038771359067107669978136528264155218121835112431775310210517765536624368322488957654914242987271321046289246492060553728923946125523417131547470087076091570730703354989927478923095528893998549759059888773289964122652991261463264513335578852502047305176627299583070985134612999624763359555149073468527210572768781060528664471680321023468377172301236783019168826226169586857209868451905331661633270078420267997738709222048418716171013483336255504645113792991492045315809551786449255567917053358587708268457683573021741524145325986662097147983383406264246780549318724366682780133098674948937812497769673086184294460085061115471018650858917345354966847848486132715353136088967793002834147327923494048114558286576685863573415201682981612747053220830033704543330708322266863364625720593317862098619485221249549632957901460991930716910258523378368227165034377988283783607928754786908152531187468310830129705550142393118200957967258473872758825291423751023589714380159677303300550279594234655395153742388359199536359731667046269273133109122613145634090746981252657220239735519013870536827497849582362369025368069187132281921299157408801897118008788133989650313650085916420639718660413128017407548010937388223147818379794305904659501041434049640189897294866140580321596320062178869697856438104545750216935928656347010123011253398514469472777772392075043081773887391999563245480067269068238648155973954512022864986701943256876868229991365328604569574142571516469902808652745980558142822346103708781913590618504293566069049740236079200431285710429876355005192908468465384894248296057528229624536519692801960561028964972980987541216672999491941909472675567962349188468243534061942454964108552327812325563420473377894705222060039953165062382974015154942116408314316789342777658554175832611030598183420536080253096043554149754773555798721347213820442483056530123433890097688200790554381450699926843900227665860338593606736360876716366666180804970978243564569075063689923827245154443014370013200905132482662107752104093710681597653109167488814213573260000772161926067218280632128612706486256614268652184736711075950409747168001575447879202006146496020744804615200796823405972512949111744113639654799962462372974012617087463341177391777708780539986647246191799062158030524647219232481422995499089851100107570322217619148852635637678045552639988508341484111512817220360472852159841480738979311723146697003994273958321617344083958302823033301552759807965932070429591026811588417926054331388116826873062847791937518941935631382045982347035908974612252604116029987231711355410359864184427388765733867131889930377481398786173659535078103923868321668226129701433968165927213109810987616486912992813008340637156268672845358688798153927414588360081931809045517356925541300474600907043069722342908319134822992713796254137411144176182222695430662972198284680968656688908674675186636886826112470786745610695262051291650742936489943156266290110789586870130078789582873232412194569089056651016409883455898712803745734943473027495592110952617002725137989992955100477174970431571966188959812939480236266487049386640842648672920957043751827601188032240039201742312911808209944911854505577425597832987245305700547210945432396090445847056797739830318301319168460810554145290301912827032542705743505563691886853031991813182497779456570637311919973036604584644895879661569192974274598947692827955711155266941158634084795236096921386324260644502095326403177467316032370432200825312259295672134885077366826633169733500808920692427825104761747069595587020698957077915689509464065822301625579481212631490056104579255680254246111135962838112820393054602832470028564866260823177543686820736387811130934016821268333688972797881884199294556237436859189730361994062312501051803438759654005827067204980321525682250672244540922263444090165306463895298457114577492857906592155279880563449506659598931248970319919798919565261852594982782444807085410690358110883525498503856184144301601083196900391592549377842317002933822052948166249466892549378628320544608013968707134879411796666718821839342542493988599552683906423168363772893411808777236180853706213824294996770296201902827419319088861879592019388866017024548007354137161168227326877400585414782315168668964604337810378777166810461361511567618816317182328686531827811240283566941552279953269077951752961964026559488443550037221379410000528144546741391739367423618584198833490816669685466254261865218816683741238099372508787088621564672923642721074537399987677407475809337265887520837629445793512914013901526363065913331397550875349570777638296196274412224473138284484506976412579047894872858969770270392909804867279993588444892975671725851558215511655805675323270024241592506440475182966679078449446403397270090985582972127766437710416517780292063882364014813137094023434012636130352220633580600475833332693160343515925963016941235871514179946452334680055812198498222426749599846457829905978701493207041320484705967471491078774010435104793047303862775090598802878387754710710931739332755155227110839350800320573657695699612874695513351970893555197163993042558295921793980781374182446967283318578751680362039958143772665823990275282476506425363174277378939407853930884258043952002914711126249571432750117629896149293843279384766362838632925402700251162330109311153562238798722569705673642916565872930278911285227811571880054768915554316203515115961599644067691287679597572203627794006768783679974591806221209572145644025923425932057166604361073402676677915588051149686097771008111961957698831796873279089547247694075208768143267980236818129718599559662713953280783097063710015560876635801616764962613561068933938416565271197086183654548685239208802342017424914994703692070147204343346838532551941059283399501113903860423654244025689135591344893038410240298285316371169195867917169400776333987242912699377132022554803595271280404420683098070777027047107228556434242150366169697432584376008328671884076767447727950644686948712902513728816817767252644959742793545655057218823683088737740159229532786705884747922455880378103537905494818692519961591693612363322236360655426896661372879364407980010585702013214622977136659099196745361779952737831318437947742365885453948030971327832847696234990036434067061725698662002606398846148431529615780501078167271304966547123355693013456565119650230077791907383476683345822453788249448273663352682513631848164629490918286275341643994960266097105011287993772351990460001186731636053909003092921690685883479555806116703279755982941900954852206140792561503455686957582158640790859761837484586656188836300572082829230968108198468418933701391317092514616412835882485383798552154230252840685379315500608046852835551768046857412069818497726581320659526570726532348765228654493307848919060145904872430913051223808754529661732456272121965268937342614905634553814446325564881505490476155584880812892906464604651831984160745454090399173266761128559320169864230815382887168373934934742156240400360994163124994228865291734237082597743317660273947111187680184995613455605200827388764003436094335631928144045791634166720821831173928409297555736055658737580340724855765660982258334496876162701546787722658285952080110893371847322613739341227444969846399958760938888292922400659760488440122575010415660651646983067791239922819168253432995703237600180750484390966408886517420876150823464068923783265105575445905619502542818213700935243885437922678525826364741885172680786222402930952606222315553130603753810387921241136446066438501447528121694704232400812455743996773371510469935034698763510019179188403339894880907500052625243590082669230416852635893900822563707333569982548957570372440102175985607203794827525529563708730005082060132111220181277263807882518413341945498921945417599591297192085048631338882600196111309437089429580827312211964506732447926621255308190157300413657022473250113225980258841288142828675656768715895881019909828786040267077839607106823292984593652048401665191967470549916551353407174326743048466118096510034232876956595240799253988628363251438770684031003024461589947746267146164578246653417141856669712745284440090113568317419556624243825808481278092489290277567611232343047191031594386054993726705998308011434696024972802989035669687994247369442210488062186237009263925608708125404988093606378841737080938276210087676752109085110574091326590333026230685140088633053877922779913191406589982600971589546419652134348014495852513369885530892341268759253120427638265177001178146652608567124500289392046565275034576588988027463877685342669469505616824672406356514816484711182460219751561461621262671927600958075450930134036242514641550963636093957579059700506952983688814268635680516472389315003904831790386670678767063631111797271454305158999407766001366413760349941186053276469334537369899233335177296497590581489328028013980196753421866956730868185719571555859116902531824847565594534983707279401491113707920814997449400507271188095525373526391778903895455002414647360780631204796225534909060743297650204252549013141515564361087125438916061342793159530902715858883796598863368458827016104617715791543450934856651814347596393075734707575968978818076755541202007171226286131871098133368250757888526680265678127661412470339148896207234114494039924440225730985790794150823879219127182934190885940864874021761803911495787725433786516749345442853547770402311630699796534568974234017493074932043276540650214225510466988271851886586063239465774118071230015998671428029704298383253056096246122455262809478235093277654925531783657757570271044118087951808189621995715294567580266213329467289819265723576072293839646500362232577077996363130999539899698117170005489401394730199288179759397131096048473256418603839792373579128839223158047001076461800094408630830195842362024649390438834361945121533133645476219312456820689496397348692098256184046886805604972088338964044147275798252451734625234169606357034063916560335874948831926040519429027205072070008046010707409944643103192834060164504128149091605364521075068082069832513493512689644638384685918924788513376950040944068562008583869081760377353489401640760032727785580304103309729513570512521947186702478267567086543703650449670364792089325535250672583165304082781608195318751841378571471658528228448022692727626208451619369462384464204066336899572639416157457104122264988570484704625174118916476563272406179258728177328341115090832782885821976460373496280052691679498175455885726188517247872464411293556551106172576989844981245641412805837301856498295427433281101004629702826477372921607131377752838818588654714910946407561395639414332102493765633504300321075594378107508777885468933732299650549589889129346810514170939476568251548964390847219897401873537608869252460199999956379748807284717497398994505719646015992322961001257942421746369201042422811350252070210383110358509862349157141328969118928929586102006989744152992739343211406087746417514583921087069217463910095363860427786847869767122833926677247567085721681110541345812623876633289888513915456674485936650219297224235869799921586524064106940093700571319036590279705030752122083849331761602430038470710496876465891045317842917028282023633778230447102594629472467271844203166613767175739525952363814669247794051903396019871794022402143479085208335637164278802061448463497375584140911557588633503025122227145643277471466951056199753873140984053116987746168483669703483989599775456076091089274316714094090438070523705288144277791857337305806746038929155759915986652254759048378062853902209150240365613018355514671227391342865956361473324932672590659111828021435740094854520014545251406837706492749271611385552947146653345475884894442063241857938289501159771474165177132318953870070202770687419245961876781126735961549254537546216289245123963274658355097047739538792131476217584239157841989158854846372009721304849732598805449828959425055741195198387725519625351069148933728590221056211276544603204465768903254099201383739615134740985973412371566087029832715324097386880924684060406173974866692369294204517252671688142630057509107396370467800886824544875230721397256262610758410243048341741699174979488722130047320568261838546933947750819460395271351490722082119659975214334938593470492307720110715908509012343286821374572537392666648528035713285448469152207827159465712333065271146197733565187526812047541958977169543918967399225068908018150114171422668267961197602655948991795817806842937277394741603195994193654570146814233792628732481873811683719271842827585353291791119853916183310355574267277014230088126540955978629794804087401808498009347351990340270926575515617404373020501895711792467203250464599175172564626695633849706822307555373000780313260123457907028395096032482374469425866070056387796423653458219673115555064385170522798083436219735727294241236991558146872629485067388023680704585646748882522244852655803193640245790640051625814435589416425569821328216806942664800581915433808533199335004003769653918684784209523031243523787220335159096135641304758644700942663123083213033021449476990083199266559233482399315891875890892667906500142693238810234364391608735615000669540554689943082427336561679027887649015279405036206078230347381933184785063382825225977690241365975638746487753468099467432840174128051714432501181547765064310883647993997067151483155251994606154070536491456156183800697274594753026329101427323739980376728080407906080825424835890274635809168311904985586787943202124269065476078156813679861620346965359232693864313428410132420008750915840338279243188553154432408526945174010683000635434564185863796097238599935602642211605183487431127640422194546895670425206284630704738892322452094986459244374067632365802640502275440339325075054706203814869660945368682533847709172687971089431499718560069795843585542038808258858849153076042214023251912354342143608104997565957400967545152071976186366371059205955837668144254070018384851573126547493394583952432942992897890700411165317806052487755004644365286932235734391538394012237298750592804809486181203772929403055701343322930951610031505145135372636555887498070205438585944796260248004322119345402171206971986400730888755720351173410845660009488182855300446271009583141326177065450476058390294747785475761276582505045417618633710804588539044945481906263839419510754396770852578779215518996045368517176182078904389350003094897678521140486917505117576032361829236176482149000045242064413716573500790103979781501478711350370778196617199131485311491354858519871262002354617848949447289513803446610419049592745231673267567276517103035542638888791853680611924995834772145360381734857541091101471651551808972494915270476713262073559038519709000511352047364871386772471849072361793078554780684518341454077215401484504271410380734562076953575598546140926139138998230823423912755037939197337190574925353481947353143667293632720092668567664154185185145171527193510391852122023025374986212940839420590926527341856641381541156145750544321383512629955819278673048919499435958295053924489464995042196388638354986482075423525311563409692318825731544026554558653419176202351428213848286348148797167351580506695881168378105927891370618780779699313398920561285108262821500624899082496903860560868057899910007936071545337515055215662163619659190401997393967362245765108994949712100090574329476457611381778638616886880649914016082894634167906776281977248066519394879036265430631347585374079119381901443938936656113692627013953151644685879593357951771328971599709277807563341936438036294350601261642395233657105760054011482043627867720746141593004375110170938981175206365864582291381682319285132335690218133864398069706951949228031795762896611504227817477966020045247534471375033578982037486508960547504912435950048057487558306862236053184963139750171383437668204164931624808045680605723716545860383479400475751843781980042453010706255355077037725842243735681893693257125251230793459699108249282111481626741457479759542891216077780889882686756248841339683400528215652433518652538378658333396094106358516760049316068645437664664103774397569626352453780491914727338942523782362725216180675205185236225108413790769889570987577082541151181295214287203100567739835161815700948296117234502692999869548403746189837151309961891176841772427315912106105923181089278479455674489374923519473075606441162317324600936383651729227412783278776229785250594083153846190586798331580470487832824324700421062278304378459053603815595573212677593153542829727625343763837426603299624156453540927415444078659677046779062859571453448895735453547757481800152718960727869023792368640821334228246431090985919906564271722879845026685418150413115569514191752530680820570136761358716751978380113291345548560161180098393765715477254132442669259680099151932949230750577273159628891822107070091081352368570770646654234211337647352265298754662658372070544052100575215354156225065202461627137502145776598060943083604677535304867826055031788171201230223964289901712925770382176742612021572440045671508770366961763765679165427860224980712073408728558608155739974390183988297821551727246234388404268674939403246158613602230161838803345778966175644073333322077793865762631090933456662972513583270860518668744550459595635640344907610464714768305546872662198606460935149086992644554476867568910657433164439444530174766058317862609859057060126592327941768152709703913787410449794110426681623669573937814411501008033830380867099112899066850937282888374268342593533415101134994116013393956143253452561939387571474248500746148574872486675809188968288821386493464004376107113089359909718724792043523101388935598852022815547832335993049746996631729083761634354983347070907695038326662272847305356806408138003988957845737567692913783597641216374953371053572256307877477260919701464561291675716578639163930511949574745885045749386077563559886526353787322563522350187861353616694680091987972463768917847985016537520370247739210419842029661399522326438820676620871771232291660760532680833379139857000287076506800908080828556452557285499427759552714669552540763138899171982839735306681497366827929296929501546450358787502055883212916002825752723918672145467524525592319618734270922005697479940952404702744739891751018307091875839262294914562674911354611347637440927450545954959955689471060178830255834247684329053451535028002733702924637293791874394761548123070877842240860372112014124121119076593372110867044498232893312142673419940922649987620605768211800885640928084822506874441180021691738056155834100666216397635516461698257072218303450977019383952040504218674377391119722003989891728981876148028169726857754625066811077471178968102398552658460732968778169343345676399811583107718813364700150955415356310760664213999907899897450963705836078542605974831252515093384249246195304280829215505438855844014902208721231748888320296488847982164656456087257437997586856352054929228737831002167341869401461259484660420791783878685150770736272635014658603603064023933675896859773438534682049155195665384083851100779502802152063943359258556087289351816615535385230566905065319939152779668314468700555884044562589467744808161780088786707254956300244243675720253143622349127441039513889746063431141243357491558097475049650562219149883426059213683943375996481264174209094348849718156290193670173347024577314066154776339869189234727181418734545321360788853833726982649607777247155724727953677820245176375038281449286487349493381312622666852253827614513014395467485325132819396492161583924730607798581740138879529818281449300877988798239225644143479991726160962893807486347999180295741727748805928929928428775807077148413463158549777858532359443643043912184854528054382692299527646875734213674255305463185900426673818041847343174149337648200303955914277034282870666272651237361440950694704874532091563329353055645755928642647480978235462728958080268380698071647229221118165543357291047046721887291024253634880558639161885220459119721853705875680849733578379816241050769531865289682377258323549694582104867868471015322465199746376385926017399054188059027607313046136067896526924312800540605190643976963308346366620013901089778241066944704640078800886228894762332452850567321047897472220619736677249428989502917397985520724540642958068647110185469578221887399245415498995798631308306886543325731591826825136594369824214694278447464622341508327739620146370042616888997230265108911194317657142487943348163992055242104883177728047482776596693642239032762529751955110767008162135844748330541565143403309958759799622823329550223115833029314638598387340265316168438885361121760140237495057840964086335532970310092454293832152815396920146949014058217021990927022557992979117660394787404669171761924623223969238585039707559502379297062402246585581954033226398850341747761208705170015346053102589070308266893581994607563290385354055294131576242793954185730159020720363456613284879276135486064385486539865358909268967729445261914263232933673300120534268729469127594286667879351083329118103684147056413338671665029232163849137279150180808689350115828293590961021384504917555199233090643185348011355656682883221624835146140107372694152211794787684421112420560591203988788181702034431596808077201529063715786942442155664556707715513153687496089430118895821188052600717643154845590913985770372430807497029444876344079997943729624610305203309863614989157240166549812593284713802960691714810586754315953317283991402026713472954573582579510834860377554421963140227464751624044144031344724466132815434520407031002475537771043879682301155481658099841913209791901272387697938602703728142315101844205127815155246445797206376521637904142295247677179592992141329430161018943467468505185633456742444926035931002577615240507129554989421634642517347520358775825394516708704173842767055297892619597506903522988086599486125604243596029814082470606824484626291985539656972900109607665228436817083143532013203019749847801879884309928003823841000599373593968605962902842645196116487955101714516734910807452642493462739588679633676981744308107566805945851771216607324350213534286187211539631061295285233548729149031204723577594054610711678849858395004702755392567120310067754286131804088244963878130769442876046164369667222930791223074170676764250765952033109038500610635193715216595970519954737763239200550651158004322325088186421043528069690800741688531364961033287689465846449469295750254280298384564431313405744068050888667785554471696553140172954277569647085834860644089797260435957161406588519803191043232948378609811694840790430006722846193975603700390985672082263329578416038471591045939678349805888736759385735444734431667645023881196650890558767497532333571665408213382495243852166243308586772165172004029872547467756210619820801559045673828564012508480825032010402822264226925347121538030832091363319763385636515435705824732775004701066724541683248724747311769557429148274940963045178398465409969299531778387234408710073902433325091770286508079423056746247314535624053451262961090983593203208233387031694039205884665317047753379609554808975707985908691893263898593313706587530206609264262405201972508352556840479034973380849291207680730250784690911661967623215806928339107139924490759834104973274583386012766107475099696193444520198895442330895745135261077043528016242173716001215607596703147431776953697108448470809596256993624004759397162109729790594521011745034636424826487034590071223613570638172798762453970143874359104291000862843137450772801777270566741358099395385715083684992444664604408332147316648749417590299395821286816670284090913881887870070620161925576130118448406227270467109599314805992013946684745217735887477893825972342023057919305058771029117614251528351674812894366916150657798004635857093917548195882666460811228842819755614713735129214507857319256493597716734407345276783965642810919022426588108890504748243100612087130700833573440209214223313560446753280313568965368610188107702085524410746688295689971305906017563911896264355990082191372431282435003411346857763616143543285168712579769158645511928679326942480866927516327153950346513900045315216944660974998313391841974263763688039971051509466133324609641007469008552655063023992543283915222918488070231037973982062299147463162986777286820627834146820813442686217836258593590412566422483704220839706517209018523747095288973000244098693706246240543972819589755976776661429967340457254482017531541280851740950703596148437572292026186071392456826388218153521143916765236078135096272658797918731774363101678478480062693563402066986122260111237797475192371457340252151394092605304406175637501904814458643777063194068122925044050264292475551790722823132960812788613342469821690418251545389903962749578609482830883409179664456134477495582892460070373958045627844877297364507504707695057172411475969086930450653213016079731700503625978574887342385723891711450123646699071902443110095883268064788085186402116180695233125233923242844500886705077939782164046933236709329199430302622825399326758371632445536575084733040601707323044948923426265723376763064795775569178905566589489330217965341373136759115025263957459151835557035167929627241228333092044960048762216578695430887742881648429760546030988865857796679675599430371632970306005977287258746373020103777369702003468796027921902739871162551791598638549988916558846140586576148968500521439392851451760876288342267387706531548921722403955903372470274510507253263185713459200554311691071902936764887147643997606543452323772866080103121295639797585490682483903770025672949388481776809540118980322561270099154000602031698382544820181721671196041210099370032247163459722622384693365123580366800142854797432186887187188559271501707350669351388822380567139120025891741550948501522433283092534392397014060314398276800178310392323855983170904668359912643994042925093461860285672836928473343761885364200068350084832564516696916270128004098625605744442211955931755338335424410336821704476899575670040130809891862544165832373015086195094133766903451058964412587561031598520960360088876632035728398475531254298149625869142062495425807562664994244729913265170288269632039636214767861077540189839608489253702563686068699169603391250357760578258398797838100788798968777328482231084219565493808414066252857185037491921712104123383542943121736384455832623162658888204109036156879252958530911928988763523047048635122215647320423310363259668262928411541847164972432747516442074709652283375059660306987374592764683838395758542049968572687019241170859304154911865725417344743716440493985376037344254588385084935110403364016532764298909480470847080914770701120805926581598857493618472604762909121913386095394651390781012528207601788731786247104539112698002394968518595087756299168933126692862087724652699046330417114465275981520856813056611416278780816351161596778138923756852551606500367821362880516720006716845834366176131468206788590806376208389985078643230542578367915560712583571947366076578272923521977630236077103056675733870165126758863326499635181966761397032422784283422295244999456258752647594936318927326478043966845811269983036311836506683470139897045988956959339694740699868889857816862759904199604857302442596193237490333290646289034363225887496889440755416842414126890294097164127196071036785491722029768561763610079146881808900780212227051624213434162123997594430867543183915565053581377489283133052246530180750118934541548517393009049841587984758463878732601355328834375136163986070950684703157627696035827009229370907316325315959270588668792584457062785731258578272047934992430531241176781741636305673639952141659915598036817461801415489011816006839476276915642018668935149986527858854431274297836540076647402104589599491968211031143123583673801555664763416689840191856080502309096833870079736013919583335413904417770957087367144595573926670636750176108197898345761616227782954377916845825128073800541244816202951852835121359011034357311012306266448180278059075139355140266699018447578268022008139517959403256085822844141943036321731532691108628028873377853241809655698916480241057367710230423104781150542175906981778656570786115114538785738246106346727064527514509676195330204479372731173402766456524739321640769944399851157219971495635291050146086025852118331894617733043340698285704641467611194035229739407120093525008186582511830298086617610400841919599021769176534080847185067507453814953226662103948355294570146845927628661047070404529167080809160525531987699127415083004217927876711980533051522059451812863044503259414658181049885007293140740896025670869395993896378730653245953671069271403909552153498983000155249666109735947399072050716538739092813666790236275361697141241058110954150594196671646762625154918620224225383482405387995864745316182419994251053508462746181736499475318608719995333028911354533303180687318560937903914064850793113656267350896270886871688631906158105072342023695350641527655447213217009439316179694522316947583307881105570714951106055928408538201662947371176934882775670045819069568498853887455484582335679851616066235186563952019420970476857594105155271600916959636839717361644281582216086489167124329601809925176524541734707869291892043993531844024815703620848476584500852691775998551134018020818541913494806153575676243832949436591686441360048847198314487280014637411105980892918171343570886463206858717691601110121353787909625142760950463601373756393004115944415030647687312030367306994382135798318202793321780046965334031755999427072526213248324295249357762905757291711941237725303226699763160097677820482755958265455569115853637717131905207323042041132076421099674756627960301893563064710709447608494355797777708961663469893076273927394772488855741712789200073026065259488216550758871568823902375141834645323945834640828086234394249770043032597149456254645991545301153816540946359158796483995325555446878343299028687492717122106055179994226520266806478838033755909780677103251653527626476293632275877851103403188791900991498715296775211402258888619131212217311917607019217760008422441702401483989225381365746877132613742651556961846034186588100935631417598774137123275563712870084090901109958026696034795187248640441497982621504304323799186290827500010502679891969747402423053817083103106842870175524918415857582287251085495157353544228651520891610855332644284056969062868114030976852172980023017963015004059071567559000755021136040959172183744659196174591512951921116103664181448095695844474554067186655645446773208028344264274626954682665022698456726071544048487597092457826916025974648579546747060749615081880670752497446852173518861497178151210930739918714621598544932841747598758457733226144192828299307879761039441600547179286649694128612854096031653033525040250597350738618934141823720964182188158226503952391448039310990375654903281140349114880462593310863201998122114099688051255432474246104538739993301557801078513326826730170763195260302257691435068944770010703965282032970195693649043105765952281574547805535887597300477082698979800912985526232415908187794586350434614135513417219569507421988178894770038521944092465984563140348807424094891967138811054108901998916074965246881322616200814876571494535221064073119697388574185938684874763348477125129310305157216328723051012312904812082946793393904204789795902328095983086504301155163409331324092543663055883068182443488691948813931488112208958798510389706796958771808736793501786845498677691700267268601909290481223035226470100566988318308725950413244688329843414678478044845471556395208113594353358755305711058957077676026162785668597215554652832380588097156114185537185700218382690474435600584062681667235922608581383653147732654449783241175837974876793097305621443556067461475787570737913406049590999968654436760621077699568081120725969251728288012269799242347988419867715642945798938189000713999845549084276107348272072895937800628518576034166043620178577687756258390390105429825167982364461994896626431000389912247859767448394165284476636301925739205572836263841518523490788789754452441002475289396490887254393718246082122564658697747858246223163552690348843431304728846057219649584332629470928717814649847113447445684927651252364944962564700461412788596943800031974880677526933965490121314218881394277941966565800295922631223903463367720638745850527600682980908957869352469927318988797404593434647246563692141703537664900957230861791065102768982237659921477103892414818333038066371980228103434329711523355731699872813651939206543416640821221556349961435250193241698846799931253933822779053206779164479736306831907796062288927180845836188624188220720143288541930086156695834173282626786568692192713933747008039078346870877602792556929750902886521417962942843968420481626268171983656537315104660991731094259288075088744056111517382548940578839732390731698593141002160034939550837653485018957747618010257341773136064773668142189556328480567929711343187308522039322912603355805210663431523942311804527391250220919907977704515482455413322222086237203298365792935063926365109668365423329755937533024144543388654007369695816930855893726038678191271769622310906632023714683655427973807454469002060365817010763821548427219599570449156713814730929550502212736366638718010154982207008374121299077525407110030023471479128251401651024378784045627668568357088816082690687049014996637540930197077716170860921936201895457179106923621925876539980059754607891785478760751315006705016387896188272036775998417509063312042496040052530972923876777481186628879247563542874896135908173580189555461794499099349404711369238488155756774220124917609692478191525026426593958907884479195930195470848161946288371252347501596340135511190568957487369267829531373775286485114639462041473193036644298309799974352053727670347872851093044773460563593873397186151208995552327469770083302262775829402025377155390212517164197980947683114975843913812205411230748482972485216867586344050994586452554504964485203656077547053463662855522499030527214201615671534651422823584990799308938617173126058946620195020412510833967238874748795578556366177497932013313452080955038521135508077051222050108037410168123056980656419363150395529268746378406623105241911380759645386274906664772088439222691079295854859997421872805949400964268413080604153848961029137409729378704041373529823613929426154494428917108228035452590508278922526169132889175413636085404304155684852773309339120965098268963453041345946959136340766739426430160590330752977005005505168591563603319622316184186472510910444709258066548495062041511832207928112627310655934356210066822254248563610077220811437789825494215648735609215141127251769974224093070434602573574057984863880145771848219618484005734363830749857843163247623481556088916699689661155803180709363192833334592624011557102294717668817966832347493514253870878483676575548119230762673864634117400906804474636633697292358152584827278993644334587547938098056878690065821096280823584508348246984197614424189912511659745442438323195556668878981953832680703232168748168995618288450736478814795177370394497035281388864731996236848974081471587654192765613724858972123832494463448688816012838703663501260567958348654844139589251503753200937718809168427998404538620578430232187980370678215288457020457814497796128825336086458316971815363965168095771986877927709176851457690473959695319150774549977751394160730494468086259454582251930676512285323093609822189069207780894507900538619812215568883356064052680150858374272251247862892055611796177358987482028986502712364571736732413017216168807850913496413389343156359687368702501029867266420513727882440708906431516217414953336336230674183395826479924784940103385404294033221465782719263629975354214530925629025571531836778482249677994598532091913750340182149679587424688222147223809728053027727982714425759869015115151250435139487909432741798124485038048543859814330546907390274344476344119841178325210691901417233536330335533532909040803067354247400670387182124163512997080570240800278997685592964119427527556894751100528357809585948616448377300373300505535980353866465897494485964986723831426628341895129720697712777427477239973642947852231106994601512257976236957164203483480132470324349775869842338331788993661029475878917860565449682525195294077872835905820182125606176877425452625835239340261357325096364984607912721959153831714755208761418039405331863463071724047717319228682937467335305640304456718990778848548759525155183038932110005076032591582615257845863570368242318206973874158881445345541829552179834852053387534824388502980242636670480187724911323264536878189175317785984640742037880665823926190509732333682611835794375220499192661161048355476366690906860090929923433285597069149149260149619914130474200832879195751456520252867687152330597714095610921184511925931033594460891442608824370870557463950281418733305966333619969673873004597291067275144180941501274310568371301957820129182420426831943368765665347627873598293272212669284298308647387623829662933127775611069536565845196227578066062585226216735785532984336168942418365696703873686253179694032917664564409015153606983221205476232613134740105419389008709207772789059502859855213962501947824066354670493634029553755704152520868589889485374161491827295506443150046061317437745940641241123233270974594339491112156046494396440627437887260671480804777755800644156203592018368268098175074755544329121067268691583935594158450634512769625810916374905479113329616108833428053780804359155987350794782372957190303924860414693908058603246963855075873817459536539514518274218806035795314875294255815934460133176485533555728400118560686602429035334092291751005711444329554482007767066076823930379519920971602429270531104374016214429606448990665488452203079336665369815039289754399995146801073986977882974186578999870474645131440325173231931897893810710943500006926820497347972899270263663290123319234040274732957574565475003966764168934929971462938464033779031386823047349972437861178341949350108609568829509551232363647651568400656608142509274628742612946919990415273723602040279343391763405756703983122112301769877375008457537887748618879633635985612795129690662153144961479330968051869817967831959839621703729800571101039707421812288597420017407988913224064414509855745733616663073254124305185545044542963119284219598217683648210980852146821484209999390070355375040083386578323838070462330014184086927448994947496035040997656642661908530732310342978969854344483085029841120934719246791212350635273281630297768026863046604339690855178066810115280921676941890498744652169313630955094497665573351656991487693366228787406484356985811029709197091407306753323185612805601300302811655553303758715979252604660081404745624147560889496364372238335105838963805974586925726113723940646553899518456471243259024984177018630897546074073390653728283620614692158953866225313526941409878242172429996177682530648557073836743488270182149331141479701416651101006151950713246490395264382118922548898214000597873310427498777047206405506579389871650240515360730866547174444069305483682518396651469356592101168570694601086592890411143772352045977295612029772239211485641681962035086680280722244746714604663926573153667420482563488835320013602314396033097009596515361188565126152797790906788998446713904038693371418283714028204731906875381334124172460987681116815251773390656674781137698560310238808012351572008179272561841761575467204497026118018361894011133040460332477817846062275634270556826309817087159274932514541039234492079199882054278831156851814381648009642258415849287198243229227835451775727715330382393942111642675623824250741927529173350943928706837235808434586788164929324579710680795653988386403806121872380589676035524581289009548682074870261892338992699441677328111811716591922093975074734092490225682382445190158037937350136394420717353765063799820184340566982093402051722490887687169888841930255152001796661044623830080465774520768389825459027924840780976716421221608908992781763999895107949114323724772722018230745062543118097133284357177775572250419477033889829006964479082924738081349370202637096927218734392827150398822611801559095237895544731233342447749590884492805753449240404038472521894667656008175635919069492901149796254657531668583723725426058963333463855046596585320856762003580950924501996584098926975273157590300298794310434112164063341316088220643380383376541454186171925786644859411290065200250142613073140144584850453834319955874108706683976010570776260353296996462024647132987788667149986881507486336187897921521439815196052397236678274680701360409656792827475151010954269025041974200963079745716058823168524390312387511149465141075060487282034865236520415454069378961091599428558065165940886360884360607601267237330509893198943147083283235998433074049712613347114269447621351385936051062995978403424456894299226201056359273897100698799771855357123765950952572877064021824852264237803089647060161631020024316357000884397309423292414085808600206065274852717280030856197112477239682737724337556770635481466707373157018265581404280069937089755263996606052047423013818056672894686919320336235322055700526946521761356558444062155345660496460834760820561069451779201810170670001667612057851417394935852308566816382150160887093091893741961438873421031731527120198962072217710083108407258244779573121716524726493922325644506322074511379171096892573419516150227855518303131718426960211898224133000853151676533913963464642973656170422180364549212983755445349545357275872762958985063745789896428765980299163513496029556980873900132032592185295537992629417428388842675048140503060235725235174500144707774375149548407505730679447790344120203671428654241697351297103563782459263874714148324938178530960734215484562235407046478447194853121913327488898939695934659681748385146058184825999818085266728830180325735802479185535123645213249943872835638435987293446313378436678453723517193934640831556746680223348476860640751034813565287357435096134211500178777728073179383971536774542031773778094413285635683216941011843501946427399566768942506831862215635284423985950801056759009388844778966659921870973845473286217102502863363684019599110687305781533519362411908325706520081724113926227154588959238871076117554280795616799573978359168953089956747613986517662540217805053888388178755931548703276978050631182175438922261084998320850108470737514295693663159071979641878284849885467793255634881633298415997570078526084931542841692891882824430130031544600993089618137778779069799926020948520801100726994557263363094578728270732982156044979028329778169787723002327359475315232730669829098525727059633835051202325454201762033479234261502154414934450065462067288849905688430871013654811609105334057154097696927459890012868755327329256535840701761962698702858504911134692218449594647559864733831660785633256060367349372164560688232683458228106673568902636724238256023761138211301403964331299529742688390945953050215491194436303841107003829734864910648773318445897721531403871823207236593108042570782186506764677801430675555620329564137026839479171372444943893680846868298750316534871415191355518763761126442890550442158681419926546530048578781676763405164612371090190891348143261172697952110144038382909214593373535552636165385588935064821351089153317146094769970930144533326020512683356150714310596598782596596208695687927581061751786072843585503859557344064478910276591175258797890890068440960858656901894421187946677882684867959354625651281875309870893851528873810061734654438412725924022572144276684634678329804417830547352726458923901773776519622889411057161421500413511234670735316317394998293357150039703173659952979110894680073524531202685840885860641344762361093763314151535585749575166111765796982559499845400838639423405407099958274082843294092587840707328777845921301350711445690638043869163774024665171649868839229890126474596407836442730006686643796978869165898976868861939480406765381347394107892264118280248156174962472845708097592742969892254393386949963729968907320308141058835377673102002200957564837124715073197643824175279951976727240950780371618294388398414580079817273381802268728952365698840152548908755017610092588928996547836266801466313557917354503160537733153497201631304983325840988521047904148437687450383222666605345028313655452728557672048074336434418722674734203364112605162175180498808414559166116045388432856123671159212355430617369874112324071795276378233003533164436740685039835512557292937433365534236558729742247637808979548630496113619195964765216157217525998518455824375629750312989865011224480445908601952553190528870491806200196404579145564645057237882409025351449845598836106455723841726867298443113808843926667593476869032630275181085422564272459862452177656270958384394295781263575529162087810610187329144013207529145674841407084917382376612473170996584889633797207750220448882832289355878071191885470154448301630744743420729858961511540487643993361162476095323867243366176852222032472085039323114098865154786435845426447465920115013375710878188701647667600750467530520481813959497815484604379186597058400994868776866994227883588026191945352918097528680069392226879418648756103907771224837710079646462082465356125387580617945519920491670919766890226306426912264430023786535714344797285760683267109410748022097888996330601164267760515268481905451396646185250570507176572942417070658504237128454228057766060220114382428393058789646282978803877433683043379325677826515857113923548007352813767238825800390313442662967059103138489259355231352840107828220479841367117219708398989718750783636667292588098324964540851315439100664792802462738229226871778081305341111439873461410416323677963931533782425098425006874988665422641409527864304816942776955372014879053934089704990516060489163411928788504611128789391380070849199887008516943615166473263208548819459995342283437720327755983601013755501880772498924116408181006914884047827876760865356528560558667985378019331832326923191590337359151389455132239483674451669968789097933437686008826613046573349019739300272468723017624375698351630416316631876857397086303390542338554821395035882025327962038112488623013458724068235758606811194173405979592461825824301277343043358832321108372177215583135196337678370922799478161355494795170248811269283501023246927351565218419293305378325328698120670284711744577310123401571547511988396798862417573435877153371101666964587710368125253521389964127008335444596767723671469703180039133181619481533257511982459127973974769081194145324876810372857329127610433311108751808115545974225095580814027262629923645424477205098428736093673839030256159621367434206600160947942179733020580104802020379321495619581638493142171117161234560129159890075446537492690069311607623617177102132783737139842400016673027638398606550414461903971999934627340474781603772476264621773794372857483347849049658816359022857640836711532332381340613866365076849724813116985766200799641785900806077570425579572967906745642500426244929915483065928875447821230507372030691920190644039835793915229936823748082282680918316526170909901614855575112726843408924032455968579630604345097979357611090985917373744015841088703005803805673129596779920856780435276437070692711429103447244377789943880985800296029285824079253513714202424172343266956177675360394001558798306557769966516704118740010698832346615735813953375001494491677874197215871472865827846524100761193206795714748534216533823448263172307493317209865974435067428487229175498038824440350732955909502431247433527537376306645625408616753250414911148099569610758548592916470011184726457987073320724600885235272355728716959708133385167609842642931280847392139926119391875101785282107880899755610301609861331125938900522897818701380345437480592707799619777346721407216731059597181311421359150204898826317850710039341777621350502295290816982053282875481431561834051329328590568110993081638734831346864190047971337412522952277532774818929056683908726634694138848622463980395718433401070331208378353202895391959939183093668137887779795720776348470612014761549060443290808727382884068988972412255610413344346316475746037408175427866875194915611659092487439747689410713324974780094370155884148197117395638809019098406271406181641716891233234593307814922056245007007995666640421190585462471749184489873432453349922961945456345934792490872946967426295997350337894954267725385951444203006160240080060623039908776900337875750446569894092832311535465210603085492363868492365189607213517637334278989412009955333931791799259787939235318499048597703406799577643367416522311989293520496741801438755563263401824365139226114987116543676114800045589966002948612126589993371940914190272957611419693861064993303814736190567022006956919380610377368118280604049457487338223488812580968840587200018595335052968674683306983215198016756363338212984341216085705785618530853023907296707116750022224951623297062871746689467727802827174351606263279963470956913700406898400640736968838254828078189673893935317584840625289724762017591483708074331295086695967144715493619809585527489490890394897877110197105441399657287019815633096188941260561928085240503573469325279444169673736210082436754842015650779018364711813327341581515183755709598743479987069445997949834907622897793637407236359051465362282169597934709869351868666522124059750546709633978337854730204654510021058725452641129962028625993862934971260813053878763895662741842259174556903800025094692924337894641233213436067757087152163625826633948145130568641085046724799792285827943746692245650648944104565265165771333183080572189168261100524234037106207163011311996849008091459507483546449270849418528242406103977714338542649571813175595199099805420739000443594871809894807148364352191035266148839235491876167398419051031301932432115124660251400457611469053999024283624531159601645137734854820166257319209702895615338514019147841181043109902737040614575737280003469700833380966237162493942702144111155703428983600571499271457007070186657289749233608600486101742631842179532320677956674051907775128335920064349550029406132825912782781458097127793372189129477804485998929127556215498083000630734613437660349035295357127160099806155806924730477045031976631115444189577205355894324526103054736594882129843324475972565717444642848784841475243027974939827278803266869089871119666027880041871885526492710265588455539814345119312951674162899220832657055752739366600899305699389950420709798088187496209965105536572385258415206804777838668462405050347036912570777971301068111406789374609748699406338695050892378521814560475209710935636479926123076885381272978954462871279248428667337868278629988851914715838695001913066835387968137714655352155581843750329666940377128039657523584583324370798410357083326716606076046082175654222760931176275540404420512991586587632874399665281452908256662570071144939280576705571388758323084927035668205228305606945357203129519992221790206891774013134888554267666655441256307572525130062261090223853584640932071487606546801111687963863876527760862317077229102974823940254129361424803181909395168472544980380986496344430598715333008545512317920653227830527473123511282122263651898841507065589194938098016858123859460659312510557797938462661858758022054887563393993843887717450850811108795207494779592821766840498682498999420833891347209051593368961748933840266848375799395168626142176017574014067268441085808307093301883269554711062092123945466156665010685087387642080969073500828453296919076142117713296706640692519537597199090356330719173160907599823979920840218807901985570098652253151071970802516785461982348708482893171633643438978809387726176690831112949571911389606228883191983576986375054742061015409968265561636985922420950330386686481270912176090391719528868489884437591877899092962179883832227257372552531768766724484088652894420091864466682217524054868879540271388014232055690436749198429379194474738648485631268173070415076384804601818935777583020148752793502485238846959238825771734563311873629693723531839370905982268057715115878632809331316314003507986235417187967474591346394113190044841407423212148157408480848082700840516291914070655215927541634840212259574341877776954202252476272594642222625211597792858265562184198506184768317496699673166477602082048515380083673009178372489657084455157965323775523711508624607910311096119263049470806652176665668640554558655513490284181712493247769834949974407773824792764216145084712512441817870582854922687771471778374118333184431531872643973080619882614516963648390439745354567485090455738459696960390752301859084451575121656792994061481768827275005155721977348685443833706967963070653188669092398607090221749765281249618665463995364801811701094138230962995053134213922966686769313492215308000005813294302062057306649683266203391131510447765052959561740781964715902435960128903926225136853953819822718386937699691867811309245223008138022549905376160236267369719224679740514853514233851317949767244633479598329399708160380114060975162628482308745919250278847874031812703357891437263409818410702369540146407342707002482407756669996242123941211556459832822822326659237920704990231917871617606799661674276375942511555908864900477996345912491259008149499635126671559110371144549464761325052435030196632062794690810978043762134405177102800663346892191660424597045649718100227685021330888044984244655105123960169843073176619720439486392155207412100517208658138321511811173319403556091009727750031410965358610233773456545311041713338295904400527368132749695571814683938333288799996305937450198413395820284142915328064583749364625130790833010713527228695648174432548596810981382151568499724132783420060423444317869600224800914171630817401675449757689333941028404527727309133599875733804778232469835939055885240164079911122289767635676321336972435982479643816404126264364770249588099285032237453997668283579499235686366947767611642380473392128075860095445732544926804722601415146540539601254620077964774800920608652622413934516679460673013082302769531942703549541162494706811487147155336325607583271067144764447218329985967418039273317414222079030783471463641647462839070142328784927925643147962743125560228981170319612879290492159892416416748790530734369221800771293709750064386445588003465456607131404764020766098603594480568065729882278630934462593672749269995487478776925315169331036669233238353714809742898795670033142475519622331082473911034113692763566787617224892963764231994409036690975749365982829919588883598485544792115094871865432668901274737966659674363262317998610926309164663789248542006924835994956028495471581570613128961263881922842273356404783868158700310185833182647204784896385899867644096783083600070153559101807297665396674582482124864476336528370830449010508044362365443554579749198445275034132862075154550380165973869674635553988961870887539012164458092736154120052671929968100045942881203275705260091804853744928573303286175961264578695018164621617131660113601796566859035573672272365029984807134172017128933137935998861486850598942801262589722462937904435275097962632391839788498978413224918859001322476689927915983604279629635437577435045560215819679660617026316411588423708950952325051068288765088352790258182582820194212569107803325562995172774663750026660049246354573304669759051874843828114216405610594528749285660327664007947969962970164898103572315269497318814586896181033896117793495934971602375439438823060124687741992479832459795399997853662214868333067532371736234629223021630019161454539800537468164093576470440910241710056185822540438070573672912757277536602430009570811798970424149823330904597891719095902980297552198688465530730105638186544421944886577403836114128920398683885475198318890515244817976974952681997112333936617306253358104499042355791283255124938693366570515628053306769695838517959863925596393083684235667545216113747778506061221760916999263381064224026682488595461921395934524779679344381973168140518171431787408278361793583964088638810567389617368991126706574119472574217572543919401051642395869983468731620594181419346729292980863934087757279103445793118442176727198086371812633249984739764983422343755270560634613866534013494287376011613359443868562213546628249981511743761370305003818175102317244929439003158257651605415028608090875427474781196886470889711598837069686947061745695796672518428999826508118740724046653783073848721270744665415746938272550578218062337454725971075746701482065594128912842002157900180819036808941445014284953083183255796307719952320258886476304436314022989603758752373852531559806973399089233329965968507217242723427345222473502270844966517765281091700602695220132806871520705626883986390965081012544394025646853742280113846903830772166536724585276003692418548026276622644890763566007629163328282448468994316161112055524770391358915404410690123827603842294242237610612502953151968212315411635783738135835898791379147781240202994690664815461714360128658822775573426626222995096035126229863394109341091208807787265060125843567761762966739115597465452631053649162593973975459885216626354744804205431759363859573699834650694016801508941148244983692383930058648681958480458026766012818393311138683044453529440862359871327498268248928893454161451246706211202901102201307569880275010252661774525401086515811446838509987741936209628735510380476180985529443143007849891209263643834500306641585481116596781371172809797263482439181409863750307187908371950126651472511485249730334665195324294729573047676270546593049050538176815808842089826625914669212388832758662985266515844836781908398566775478639544064100620911685441662087782098989234329279907031328677971456878936241170583589977062021760516614135120157673749367527787629478310272069653365539233729136540936518609796266507089971763404149661913707382127976516711268024785831513822262889399382096587320767408406730812420071485644986169974056975674791381108265732617672728206825761086475365267370435946450440898673098671087294140662481631497958330641723477839956078374508497189955799368365187505031797417189577153162122601078242870307718059849247646209115023095752352254425358022271453440654179988948626998542033295222602670523697886238508647690581689281785252448422620793867151153172848202475719358851817970678828605181692844206092547024071767561273235799470406064881324922862057820141224457122823866941951757978263813550874254664714140710167016957174529991064480304142690425884607287072620122906648069406573876137964221343362480667338949164236935510874931238030530171648193141007974298998770408511339926894629984911869397559889957960992375826177548789719044130247682200108599346166784043217139033885762251981855068207577128334667397422428447955343649621667315013040980837046944698683797269950419557371237571474608466297181454174384163067359867430806239450858270815958257331143162880313176086805773175110367076950271695350032762602886840240056240925931754606202193476656336574712306894861818599005497525775672693523245548396319448597658459399159161317640103940155158573133922124742581325791036615195684183856239653132551863351545797397255856568290686106273343075493289080121084782084828612593786798419630703483762429214197121622074372181503536350631519899213346806916248465492233090628916925527473285924378155929133437819775194449666731526812626444262185779574750642513195830963548012133219445592444783804929483220519730385147700722495767736476093824214397041260862989121612016347408941377883799723354349932549634366623342612411620392879750114985784324949142154912748901237423319502049325912453840203352537191013715958836871633699901022533642435362782274587199108403849456651249474336389339830390241972786566035736564688395852498263642263629249717173246006789061282519899487584897646645539667674601199487432647963418222208006472925597231469839424921403956420624475324667117782367879961727791018215923561292558312431479054606402695519679868560086132410017596906912524659660596275620121038489227255563290091919110468031869744786852444329701662239565067451258755501699416552136189031453398507983133536649318447927926373986090842355132095151572232919304892802481520931452129691254945116429455239778949445159614540145070038037189200688280465625843017797324279553679213704486700424864717377699131697470388784096234407627290738236732271502857759699782040902098648018104621174024818695405955703174026536243484169038382062741040838405486751211040977751898258967439253941783004600695395483856821996742366246567710392793928771527330053944825333540906060320048088611418767125889826376350148794349885499498854492090333900977294654782593454082534818027282020991154845991508523638981685619931548231085123519982039367584346947883663019890118552507431250194185685694240972695978499820495859891914648111440374160662947717569406196664479559789159839829210366372581291488152482640702943794669508657425483960428171000121959872690886867429875213370038694991532084028498542836244878526000179624158224388586049064288624804817138807939333836315172749503658220247122451929117575042660074949643584385008896584420136820055205662055768354554471295129591936109716404251002687255128866776452206813264119292688887652092333763826310619391518419067917112550506221357141356231836832033013932391595564806686865379594208903318033875606554666203557302687255332497166200796041919610422552427477743016907138851590219197312125715886235994832482188198070716530920297759136403202811100364052447159877508853493617176430613275476041641880449816479626372359543137547106248830927481384079564472227744339079112199330190016834183615046075280494734826845106172034909210314236350959657820925322505708317229254612931259490100809981906326578620158622908602454019703034967690116560829777706728390933552563690186348708000237783134379505799950963465275672868495893401375362623939368115058716087810721298332497273956461462999680412902984574123257645210166720125850626595536452281805918221728214716647022973678231034360291767864951605401059480029768639785554180391405741321730193774357291220677589924005133519896396141915249532859269371738447020804188059430493788693740120306562602046960964222858841374604346711945085621623983610009318956814899390421313810294642997757180325060894775342474026886055498022413333986411677292184399930471210666811961581884834827723210046720261315911528848867095131890473669307255717252012909499775225021396198938263506111693603176800562263290062435437634253609310485421100568011474651305317221331073453853029092539320581172806635182233557362808412174473714005344881450318338551008820235968212380416402422766122435664746339501576223583963843044323144660647573319395622651472320926308640549215217073650008439087162680940889675991285809909324121767584083384730899849065766534255959535584070559484606669355182216338049951304631298522847357505515412971996520507047822079238924529880610089916260016285999229321823748226558296734740048899799275765742479006455090456828014187655986599625195238625540369587075801947199008221471502879481469765367213235224749094067663390899885745813925340773655509343625702059306685821734615931152924182495967196238565593842473086599641313388692285167054946600067625837517489076105611429633090737387819813233984657102638728034518728340542920595049242932132562238361011571048433072582112475148690231090270649654248444981203900325908642438861569435190603576252615799099876902754265322417887130076239910283762480446669650242461645708344871600852445915197611183017250521927455156383980798682607907957692633026166856615526297560339184505187057824790134181349440204540287834247061057692691655806268917619788801747150337374815988461332775459913723468584016681259929239218286595806835857381891883560528493740187781128427154745149598738714974359006656589295363790201937432170902116872151136736296234728215241646207190751750458770992128516527673331343763263137990255887991875352218268676928497957463957059167977225110649454564384596758964768787524398317389366500995576062443278637372221390565866658439000885230254957899819262703109005880267109928432615736223259725681703927150037683476742598779319584473245819648889107165238326237569975135082753558602159745649332826022266109480406083575540101099217266568203799490495094468105109722383247375557274067881236994591745608025442857169851544218694298309844333052315066278427130182638396960820070621579058838603565407424739120152569525288070453734939695094213583719595142199286075022126097790024812063962717443471668776394183735377223956705629810772818762086931467820076712833205897156786357875983923184675969715666984551130841397455415836087925701055895367400997873803391498970936246343333772044180289690431605323296730587893342402712299327613427686859060190734142510285703096281683311232043053601952335578511868046369608549503627776477446476114929020084708554536356902226452683079640239338655850867078475847795442140078822789793895917759652623634998877404521811929732093879546838828888405513523346449006230366943682393858065490618729095771894794764921409336484674376827055500303228761097295281452214292111144117767304171422337992507616403246700341807328374182925191453178087549025286699979870138166844979346963117104737102262803945635485540929284113740947320619499687834250761737864326560473484595466792973300981763682139311522056074811943571027478775939274352004272181391769044579926615756211124226056337522121177688857744639950983910639055880631733475678825880742200142233758589659924866638290397388546086412850518427304663753949755101856651830478051229944948494341462214938371112174920987944956031065261672109410640566188672844008535577057872723264484333997493392369104006874396642389032014613748921954774474371783063035311449534903435163493978277788083576841165889640916866027906121464605362178155726513472471055332863194766783688125766018295800378027152715749299821422051695869700484905921467136377144880709973573931526940151270937994550908521190544129066798739588870873698016821333162713990792926188135820933261664454440774755981072089182548871262392746149303141030039055732179425240198544439553730616282377817908010389822957214787508693465608551119701500722342804990104401796649693129867948160744571535405259268595823527414401086953415741503628318904469785605965688640012962211261439139400339418520883813412363865797566859468925898545664579931935531062076477318307669867305632317458804161017786644213352662378388164610778283077474485966253382568427636998962045202202165119546389524201227153693452168978474618370668833940307223956206657837702706567965057353445155215169970219605018578167270350320737482164984250921218014610456920497784148371299742416878258180010106051593806186993537665700442748031039536502877625193797398502996469322961689521142986318417355319165029229765155395730005522508488214544337754464946676902667978046165165663040765137452560172483536798741757237163764939122806853592488833106394660619657620922656501467795488359802358450737203451873981190536818975793898295693867512335358520057003643219013457687500386152953086778019805663575776618014740828887515504495794964467748071657112292462889597838251548694211735043788481969889142469051923088995341780735073971367968691945598503001077541748148834714566840802893084243144451269701017161580224097455881976510588475176943760277324729105878041601847985349617691984967631527938883162505456762571565884616465546444914809474578107701941151520010106800424400741790910855319817708941222055224235329615402712159217263445380436800309035487175188992565620371705225606119623592597788174353716747929360123295446154684671358295838692367123642604552967110500560735467391768560954327805585404794836128765786522732589608395846092183461469519194119593265004094307394126124934232757321146532445392945165321811100783216111887582653764159278011068205174268027865008396447158879777533015765808588920706665404170391646282928911279770067430094918891042240709324251845848766679106748540967394325615777009238997940915377948117768333085492912540533892674342766001520900462997752189040844216663331582638147869894312642658564379629015657733795240928646875815231339391843413806779234940763214057214926523411553494346564288144901760169817527091368001651326730776521625513720344922707227929031065472688145637959745369561864014731107081236136138413979827170206693310020548952756847814574704952502499176789385473418118220240583088551424410516516235578388608329812323183863508468876711856615644281135408841139226210540753998154821769945135378747240550552435923010570801485692100351605532926042722121378767522668388192671381645340559414621078626630163726838966772193915611806828217431011706717090596349430101570901431116110312582423880318232911685581809613563578259202862308835813958717433611151302314392495246234872241073776645855329385505637407248783705701854105361386841030460640290509185007027086281680362513806027259901022574401754207678838812272449636381746365559653120325085294886819997294830727137994597517412056193110647264592313648588356930381541364066945966887490765517807419105774005392187275922143630312879467954299141537806183381301674044410055319297081513035723014416631042077683237640793409879153514613439700575425698918963274145764736219134440848356669960562747248787162726154700670078169956150932191765465130013799939554537167496855459580291544829638083812915462247085352583407339560610439009685733872358304200996455961791129218892444890734829361993037768853574656648899174896498451712520154389728765570419020557303394682358210391975416851047187215382151253628464304043647504657882295819134176390657548120976646114374564612955253074605266634910340363667617876862156613808528874083428095100764231051657728544239675259105023264439713988533284415464506225073847226302033594291739324017843823611307371510770733739483768855788713989635443544289498320711116061819698733685212201126343870965062137872462276077042481725242978869211475652061053737838766070307034810162573112670819343768904710586790979305829361640751039259027732589409268238433786110269558941643936686156206425047227398559090211552907294088175942960530454270398210953031599820794917392160332741020948526151086237326964908132527406123406085512706116199979708659297883058965654173108056046059475223755580483681572969053845733882035665889922935982008324457194690170070285423308954922146406859126236696558854054353109364846534451972590636318137685856531612639134461772709795185804718106962787032121365797955197341109800694829828071104045601708993534513526859630408414806075241935940646295859151522991564292822260125044906580447609986739938382568241416899111889268867901438512602959273888413386085799994398966274025023448451065243862902899547139490598840239836291089566205922804280225875624000892610619299434495446126820944789044840806116419708938366821422534108204347311838690697767009886523830294216114437866167582422866366297084740825784256777194707846114544828628003760878627423078617306858797081273469068216555016949126481926556518280706883252345659390511909207931023497410073666921871341407188008377547652421355464301625914043669873380904866467174681534785706827560228154294401977350608830633624323623894328919832946167757086738308019259112297135137894510035723024622110546621685518916906507603745403082216306875538496001714938935875283064474166727851375107423731759491738965973868385419741603931307788299311646811244980024780326915322596677308276367238871468972684721226505538510371921290422401903565093664200528385116819588488944041227855219306665130393378843761714658375530104594099357538682629720703272741940564623848703249230149361958993456895141235972279715819459553118250931816362434165499209666978102561498589054422650234811649596910960936488889916558086117407922986040584305830907639171462255826353239974122725808775191410037727576050534155717649343594101237699157167771904678219382409837014388410377003038712024084839126554702664545891293510102477772996788830077081213599170852903509065399436010842346657604766828786008121786553961097396810771865257411245381113037571506125293400146869686097759138016420185129549996039347254988195469580279737165850735753151412588930615406919208149021552151226009988717114483910914784181108703195066226172962067729790674385873023344737102882279092928210498633940537428076944797584528864927006583113075223882600000657329180079442417763711519718249742500551530053491872835207017402718804180366681238856214026614324849731420819450506010879077912613040488077916708782003869540319070849795441600988577270279308876491066757843547786345629404276008137618113724690445716364317480006027795954367937655165794541020811757673247441892971303438602022488921055460530943309451776354059041727646427184212525499739428351497117358238945692192997983118807140937083602165909731109626528702363189078297143748605190085224310819578601424567172856558838460414775121458153616028507482521914719409628262050718736020670389401394703668170317210118638291299687421153357012523307109733786435755936895465143059114413196125831950751832148263446511677384269180106195695345938308711842973410893637981484639516250648216231831821167403327084974896051233484551865287228357803324103249353978297761197692975556163944085234814042143189828970616988357668779541824265997203655274907705006399733349099530571927844218887285255520630617219184078555559083137254527840097315710841647541200976494196135189861362698474381496295374173242977319904525588474846291787066194563164236856128140763200573319499552599014539801271825488244540811327108791825570471825965471188230417923698110923544549617736845715450740466543678540005973403683114983388484536831956481706380588743255153446214749121235482573741507872001013011623767176844844462389846737031871048870333271308186476550590456781046078873255607601410268564297077017990171904522334636564511238518336514599095885942439004997691860007851751777401112853840836316259187509495565859442762526597996581709945656274380247798286857442293287280765798157569602309725760717624192709105643452440803266004969564496262754717305863128788248165358210947981038587759696035325203723076459571673726432741778938979085259471004403070769398330097846415945276250569578846065430952680450984363379234687415503868506081272898796139666422216471037439156891692205803434944034069296865794910843068544073687860901514223137054896876312609930940340387607739451188703945346309789104051481955305503686444152455146176043466992465966712067182632229143838513367048429782005951508181336873528655392792691568038293670022970595497557087326469439102388919557652616170188972415180452767448349833895901511046225830605799349787201088523555227669935526190529458673099196560324729255039449800025632173035537345030665234752152093854249136648564676804305971228658392060708640003419875633064701417834578601687648364876990991908632286038911347800245984155756614808423991088982622492417622998596026224743005844239739165771426592315686298302906464515882231214675663776323979243316822409157032537977043977155390175421785446537283797261738910324298698884260614107460769703720582820839261946506668255479686783784512916499581116219742356585946531656785991272015925266310498434586343521407340565680853542483554727672351124630603593529007398451075423944440323553617661921523294911236636492244213384795627170161247371675881329563130926298678398605530657171798239580244693336200547584145164841216758683407321675741653419686810158653898775960479297055422339901645260072535406210136293852730773828523192325216745862490430833209121262675277382949440999446056535570137393049275054398096379609245563356299755866313420180452804994760386012395142748830720214342953273952366584096816498586975923216047954143701291674993026648445991345321613640315440331376625246907892669591218519929851979170069018844914512631556926825019652109788534943560675949329541077227785987703698983045798405425950440377468659903505367613265793679261034311064532823019637412347992996191278440845266699773566595933981821726792325586564071207762344426687966913569977440724267308395136628417966667761890323508305532260446360319895361520742169899497572982776447025482820874179882418777553358348461440152284106223110653439602927369050020390522423449140244118112821016358738138061651730586472966583185037807271843831532240707012423760550916943815750955712124699806940547411446917154236539843488512043660369963708815173903474997693323934133794985818636124133476457061018202423237679532797362258904250376787040290503289269657169600778211521153625312042466308931225959732072976554082794561542830153947976929505075629187698899867177934062687407216259376477772305027199345129413968992929294425870852598979999610890207694170175674081337392269405277604731198770075593481724907004804995631638913982161179653271060709894930740534490353091261411485685185961575904509571569886611512505273497155200467203183084563929464206174844536898838966125378771239863834555814494537242582160527869503213619455115943784597125071438446289940080566661586446571103089882322885106231697811507288788504256666671245252406759158207477567942705846700742463160902322747746709065712713998837580911784289701534531056440111649662148795200315230106564637983939784962886128140804696149593944538866123462969297163978637021130498968669165797323041070024382310957570171840514844636424234306057069357856791210544567239254760068319237321828375046916059661127694824410922703400288940910662618990997677373090906395647237106283078921283097080691188162419324271877832834298361564677395477671506692626300407729667269036193738061844939586264202156457747128828123859053007595062805388355960349904962833351199477772482875821886027978318293277402254958623780834122615044423741155501111509184731340886746201444964111176729636843541811441571994653123809689036917599718893158240901851390317934057304890763656809151934211747684166577221398839463935734492171307938113950126740101094623426201620667891006677924492745485691475621630148689075757340395910724205052299802426899570027877137926009235087613178110342518632226291082786133972857576003671949591296583832365916794345174916143807456833998825494602706301005942713369504750047893186006014240512033993344020245677268303678421701845586156097127070533180915821933601262198269610017331413856243560393184143946103549243003978766605540752030590508643936299135584203531276611126646217411748680889837752346284528510842110518630537728030437242097953300294221552925050314690876456449944771470364395026850470172502999172495397603034675950976749037274652922607696098839169852999068419913544401989836799352688845114985169802424714717245386413221361187283727157168397216618956282985757701354924464532626580293248586991648719090203105523803868046986235344067650484251646537310835220160904899646816494257558378971983564955901679459225923285692456962403194841863868771512389799203336360203146075907577678459928876506474557689344469258963025797407206047935871591271405136672804847005137710720008164185165846801030376821337812855262796325215266034968796203913555000435457507548843672512672552670156413268789963978949528745552126498389745049445795593889583914675804146035827435919502010385904050032793275516156270266970578720418817767081534176666263835845107359450773634694111101664664845409775144703303769400356690616547539708705174389291802686000371787884840470429461827944201398698460829600050933327676947285764042448817139550967441181545978974932950951791780037050682160396320630512205531320026505133293640095256250973336254653671408923361962118765262382031684533667517886089158880793554781673432144100330474539457868941254632526914633632157057420063931610955476698468029512722984023832811048979086379386121676950398044678803212297921759479616464362992447224229884846015529193727229477838927938821414351705726677387251215358771957463081358285716219192681378403400501048864504744087830905348239943273237552625495724776009776566746736461570606617121551502476768888089935860679544817130614413243587825880227377134593258587458945481509961362169560326397060190879374966341325438545888111750114122577822098005360969132708440303708600304100631582401920877468356150838076379764657565416832150434471755919206934031773456801032153319932910739012621616789682643359774758905908334415468548808291481396352631453261282395058817556740412459856558745790395692236940194793698005093457347021549578379639997525847225462318420104689390545856085332507567608518183023208929400264793172887251348240351876761112681708285877762216912647148861880863269813683196834968289438094859452288235211884106608281294543281438153529701729370624128293540582516025654535506898833016034186158057313273825819810813255262238624571175440247593399312933889387112801522826841521290098406720253720296562073682089340186729011555015786201889993251223565622620097254165228740948419552834880359685994797284338882067788868668215627095337413220234782036759208542871427083848652062015539516188126100093926119876585020223271939654026099381411414556881216951147172773323207644735697800733278662333940335124351806599264380099314315394233073577573709009945492841044012066038455641637081082485471688901438565707587847955279521049747398240502539217765842578996785345329847164075515036885164677490390484142883937746696267327952520582283204720408330082449950569699629427187078499041847601894069219964491292523602384546001384394087985643617848433202515269341988421520189704959518379718817693074648842100269509416015193151278633121881111177130490172429788539806385289251473120522332672391508465358484114918803973288047064732568775181957416368369926360766278687989154860466904109602626667741462266396929974173713029778907082625702797667265490588935653672145176306242428247997210921903834752728606163455702853979781702265540270860573892119468903265474004333693852494081366757819408760187126696583858883033767797978421201824300159161512818447776157502094624475856600745784160859093609940851365170391248009637375400217586786260097149003113853437692089588186887578412837187802792904749139336617730933226307709554445786052115126802743043765132568147927203366367922267043996654195600659572206496832738392562458857205509604426855433498959421928332957342466686352945098353028184870053418294805276525618606426374714256147731684802863149344472397601615724439091471341757981528800123656881338484659786143070467469402224759913376504730391151011752882980912137362527715561918753509692378787270675163996131926642392166684226609147823845618334169600479565752910575120354002744665990474385692003999223235681593917478867016288442812959726545422272071933809966027459970627898441074040888896247488057980158450133806490072981760363759965695976246187793184333237181329722419074550040159749174033485582578593616686878799459905949778822990595991784258734368561984858436757361509390208598578580657560480538063288215671029662167097220485324259602227859340042201011153196283231756037010225787351430655193187600843426325036036930336173893161857007946027151868399920473589452027858665433999570263263998772350913235492373949967115685072241979241226822407213035982921872582877997855522117637075134309657796066833544773477217268695643709429430815985979753462098327896524411817195620842781806882114255686169633273684959147475316485099871554683678530699626995878557247714529916229403678864200304048255542680892981646753667290924106818809577957454915427641394566377626005602988174442392017118792648888287122118014055169840049936311877101053127237609175257983258460496852077792847036756697395187511875903360146843273269843834243472000357854993231592387420196343321029851866245645542593356984288573415077018789065754135021970251052375187921238199835065670884570812560992463433475339413007396402841419398321900709448172624448091723684657962223524289925108638581184230404676127337425572340918856463722317257819877373008275346505006445441690973854017876475117103479107715194524803772827438830791174521791752749615509933623403945658936040619891500572808739117751855556080215088919160200493424419823910185840005587283593659970356589130953157982127623219974413468458522836910433540955585150428772394143750881857182612495324822841648946311712929990914911291470963306472974343774102947076001805663188519710208021912670547435793770114737889066993909490356703955043950410977590757287404509177878117757006603167761916934038782766404600485309778023667533551002277230881772631608835606179874706435921608196691935597865253251275785669029147065452082531421373249952991399977687252809830749194638577389345985836525880415880769027802073233561709716576959454926058914934276255755414683290558726270240128273651799238715165486197316650445150912830255972395691424511399014054251234655229850359072711632896572931350655201516531325049289296474114840011987209889134694170102834036633237194453998557680128291847756726857212329193230236680689492067713225335385868029129519550111412049969802515035513079307874557484920084132948464525116443614301641771415094903795051820062097528114395584251825567089936763396825512272714784128242709644335762793007606998918270713561116906362622127513621204815686888581014452934656047014317817871207295761255029558999149385953771483128117313877794958504883389222291175484889406341961013359748633381906808341756153472817950152966223281174031869951897285822139263237845612398455084462298863893336090495852588836115539686162431255021889580375956507625220464633048082951201814891990273546309022457822817787746920636539153374752618728083717695948267474918401520050791750771704052081898891274923611566390090390429167899094863012268150876820489723464130467698505290697208722907088464119768930296628986322058658768612207010405658469026757935062901472593755895425500799739103275086044672582831784164786675926846845839531410302422112975286820766245377035194109687431219028163167988790062275798341641820654091503919194153228208724548968371256582888696239529380585421884323658563600520640253428487492894193499196006119403040205949310415175367431788850337689257614447647094486451646399857463104487517614927526838653875242970264136014959185082579035235574046315566877643170076565786403011198612555574305924615342619134283275147731241678386601349367633884896141282276502520740502340729026671612714700955752567791487500919130634801511603075685719734572358198249456911041110357938509166594223825255377506372828923502532752206898093069731224977482326721609018950182328650063996702724229627328164698339696868933427059171686180559277245602298900033819246307085808792846812127106615274502497928049009592547717209311524787893320445095553234004188745135123673292704946903838309622196905154772043770029393778864323763745888121543577159803539060773868070358578553821687883642205868435145169500119405970862287620697066543695424467377299780926791459871866467798798177544484947280320288372418632780987814129063033039192356596154279671729517536605775276158867768632651948636345188789643887002242854596372053739941627443180222582205988332957429133606474231392677481413267457863717642353607256846868207828210251953263553868815655228223602185751556556637216269831134223049154259531323198736799244509975628781469855402230516229066854306633575596357915779747440468826587408886611530909796244373669275179046998389323767251269154446811054267194819094080151366479310665455656035865188107196380980262158197768515391624972010420212953404665601771712464937616098281499778441769026450531775433596533036507593144218214825234018814435928940288854460222697276104658478022933517166605870121936316829212801875609133544659697143742743028932294753545472186532390951654554904097770755646462038186271917027947582987230560900278936903320807033546229458506174226317155911197625637200321325880943845456502748591076237304372900913257203371362759201229725129435131214956471385691555306742090162817707709267088950972472984846071818941555256453658389347695624666657100779613474037348122625118456284155832791213388119736533067903246815825474217581736789595281010710828468860610914829935026079281881141918351256776749747862743171001808319163747248724739265810328707873974135006405417887650075632400035261731507336433051712462099421109766228641981381400717117362414551583251625021350817568463509720865888771141901210879801885933819333961254368511926094144472237790391747173347983794865935596290568047867727223204227780128271073655802157426739238325770511893248057127833663668123816153839764940828618909030055249719360977238493580891733293509477155423424951144955763516607379766210011056854300735106439334553435971865484283557805434596409063601755805660705263199324003557001113081114578618981569034787143335896906014702101980488849530131541747409097443061531192965442321788592249966418876273181342241493567360930083326125970253982651295131904787978139812070434992292155642115262205513567906506969515417665726933589218930422901762281195855598774145289831073229021260970172501944224406247627377093101706572493237207105179108633567525545485272145543696589150125787189278099373668251494600972929051320937853783738752705111604997724906268636099706659052124647278603285371228601499064255508692124826129418939530765422590942988816612738308090603863576718737440152074642637729900284336131698552701937055273219795010505108715586492573206707276725653620966884017148675306731196619780316799071679950185333651912568939209467841765027419899166575187524531780743715282974835026578158083234089703498495167588574988179205281228481369215481780189120247042306690868178936729023853649567285951790705144260062429660531256297382022146263279289879777492937826845766118317984264586174952850508672808220721840493846568570545105726640071595821449699181380656264164017599570414709970874961241512305643982855036687823373145899490150959353977228373968760522202827609842026520845743169422454222822176424765066732710209243271149841405778783726232136708152489779738298510696725314762470588318771030921466864404069470403338829594845335473401378115540617162021571174791689324374941226251535051266712997857897026929035113020112972379393216958388154576332937293978091008088139632637052569475484090105500588665614578937581905105696205169053049779592929067688807812982954803399813242534333342149152963392336341786815232495667756189304560041434377195248816494929768365036500330607846330927061575046785892462061452616570675861047937546239890393001327429057009376774730512818560029728183380106935605418214860687960179008317335852760820169766529190466616797396366473686793460659455693477372180371653891890788068129911524388921839782057026704648374141708080014938238274944973253258782093030018030407776307108824457756990024759692775814853867412528915347255052571397377781391617855193394915374001299271275623496224598110618270838943473898687472435053642049784037299134322232744946269585322639112856709886310381771927450941244485832299590683616757912941565816805648203477968296162062150742053836757108520168456231895331912866645800851924835765846791415607756309401203229253062354451657378180224133972463497930598356378648519382413761777821309874367052203005093560285768438704417626829002068600226506422148300111998986105334159371969677460244721611848607983058895714843118244968869909066290428726181680060111275315999332226182320551171572462471905173902083133936169963508075773285975260258935076840341787538094401763047794985314306438580587885057402696293803117461987993993807704700727709887881131741748981950399569791855018010269667422304448384463639497040569219762475883100980406439836308577426365811233200567099498900749371641713561045552537255278765469410056459841610862218873219189125168387056092469345702320110592182227973192558960964075067299304728877334374508764529831864744829836543499424924498432618082982199652219640798645848151295547058356071797100472647832005219797376100449741690403919738338716997480183687116685625367648962250671359447913812150623522277465208069501964706801835987294310201883600218277213719141688632899003637233349327442626011912804577426874807840533179682470489645316107185908809549856683991688040331507976381287800684289190689757462354008513874770104131950777483547516165614949800397380444341702745887630459266092084664187717445268810955664669490792848516059062134902369688833395635464839301631591803068659047741261822575960596996174795490738009264180287839771486921355468430507716771286378381669730596027174153722733758161703517913617764728424135898031660149765519338897557472851851245625153648734238634336726382162768604246096469978021306549419369950346512899482217839701590253758776438275427724460302530192623571933091401372268334035293275665918666622737303969718109978587224266164935173903365710005091340520104262753555383602314095893251665943987671207081130283590404820837715231217384743341460690046641385791098172376610213286546630684058215048508583479581718911257049923085165541566744290625922736201395153918745636982281517103184919935373704437899781692605756735700802944517584543438291667067414520196240353028591811204941564273883170098520330613412923239748633288113992409715011335264371031212234823386334217236153604933863555878951101085276442481635967180432144159452533767958706964635904145692522335912392118580197549284939761563840229104410314978337831482602454392123580602433296549743704883217679090739393481952975184341805242393089938525001352723487565096812065673823285761879125286652635650656231655506336836238967295162246120994987143281501722567068295723583657984067703910336531491659930120571928850673850384313715453775142521840073193084570956806788603175527261568008616509607242939023070217779828470107407579878835335475668205663612900811865707350845309820894137550201168296435815671038508591308265757487655834188624611871143646710209937950210240860773848457238309017423735643612945478575192494511471971214340419455314725497173655047535455035372576349614790922161300006061702712057215515539882521492153391763754105087557463577461048228103730498086408572532678414759781462497919368479442702210370820118435823196985087259528870636244917088199813572640133226527594625615772212579081697374460164296984008981174539968443228541963858019629366650292457399230766364644742365668312337349896593963653584385510377327690129626720172061005382991465563408141580049688048786141360123103881624899791599644494686926219336528250268248750325238196238724082423280738388982797346235799593794805722595536597970748405663001891176187453037166664143583410909772247708294699384661515168994607014025321021000151102118214938302818076820011925491051003001330895789048242900754325166470755089163603175002858263561694735595144200978107286569706242800217124514992594906175876040017711608683771265478883745135943655709761013329023077047577432279079225974074287676565507832538919791056778297650891067357598552473709735200118208858630871862308876920611469748750271781231463538463660614734171156332751012074391402170911627341120816252914724820843273516744747569931712230096574394758910505855256708625429411935907020207064485037783930888283008065078538286076754566035309232067744636052357139020924168440661384287533976914090359667080139142047342207658113585600126460481463483570785108623425602664023173866745144693988574320050131077682951003926058286613478870856988372368341133116331369132244480673823247448145994711152274913239369296894539713274284608854753714468786426892467525854097079144202520244914121242033395287700838163712758566296400937408645929926352203674747453914648514852695743935040223014416939318553505269892594098539569455194184014992285762594681473331601816325474016936748569573603536146906812957830587058391156220778317463782196036082357905737358315555418086913574886891310611860290133050631300830249865023562577685463878009822493336178019185895045690119978453510444172120981628261298130422158679230932081633002493504980698029923048556762545108691728465708655483330411180600521878819281813714623150966105500961198966444028880445372698274462587684359799298322794607548979326433707608634726887266084222337923965615356158658828657192996502397726898121172742980040080354563841940607138244593236640702087316023209810949297258639553424400001463351967784824320220327196860800699242383979601872290992793068804846614324695087455479374195512535302262672683306632299860731117513889935307031571369811931567333933379006765874405806580846909121051765231688794904504797729692088473751192579082481449626394680827056517125590989373048151362190319093313033730973597800967179080508871531388198982616909214836151967404634284866813357666266601061996146849832425267319169556739758147802586703006763136787472654990586385125639514360437183633906413485355932196566545524144920116421627565173129182246416025350026289933511714807076432421535563665507817909602621889438649915500949993055772207220367852794237623359560193032658807451860843005208534915504257535781321871692931595158162073651013352793523052821614848996819195963165305161357384531644354744754149568585572104482590719404104608655720978847478581672589863191625409651639901996114547080761084043546297332516817963423419261398708594009494006824987892585179026491433541987798006036244962830155646975512479068823822389766384963363604364614865091000569068924289001507047687539940251260185838599933353312387873830186906361685886277088552881197887822442425873846189765183866162022020520098718905846381657063009543606406051890678169467157659603515491787015132775474072608181040144975470647710729414099577429975730149709754307274829936387436541327419791851151200658124584071788624794789145440418068691073817668166993250680301665583222530169326115707048051355937441506379812666130648942653794035671157791093430114833100671283005902922040574277327331361304761410055787777081700473377086083161201293207969642947992021427227027725744864522930500196034099754526647062520438386255129409419373593277374762915983957791886065696531767808662871692556337940926294878342085790796660364291553647047088230507942355693169599649802523455672783178589949524664414161467670066002379044074948419185997761233074115676743041263245974706483196781310228292374604451231723581337833575120243674700770160181005430717748690173907685285752324904786756801307563747693371093211964150363545317228718910575256776122476759428257603969809227793199502159500308661211019352547461765822912529022428145792948800351837872768717054999610767983687568183748045814703607959426352987300023927816080962125684170733554270009378289176194374096672331975163187727463708992342917621338236507209491637595696087193818016256149209138347819647780387155277079611240115407900824362277140685550554517288104293162514222989449892005717268631700797210240567111748546846238933617253267890138108075958901186551782155152540441554379586180604445741542744410207261252643571176720812796845390643272888817347603185149144527506020967132324952181566061161989776513235313540332991710890278864227306829768224634634179785555283886723459232557077721761477919617758553382907952314332797819489757039119064437840301305754838804650783853151814590520846602790184403673583160150908055041613878720022068677713256743656285819966166595333662383409652543958160477248975717474119943079227646502981977863774022752870634929110136075781339152483830640860571489449287503038527210283078748620713278446152147030263420544393678421218281539334250923240550109810477266232764514288258749346997573076423155957431208209983306556252775648066113713420615088782028618160457368617742147267846889299727166280578257809702144255641297660755191066902721441431224523571899335184216743253657818285975949644552601356095896104350157982840568432199322494113671477513948668213890806281606962373576018347321818464113280854101849997028401820971983805703150284774152758841039904431601415830785466646673102201189757986767148788158908613918826447513277058168679230104077104456016581080129440377662117054315090113058598758026343380426646735638502567696310627163250404521853504850046146567148205888480341346607935354715720050686049493356525756392655969605823838160108736259441921601553060032799451963919388253513387384852896189152035159693137075392343167872718341963622056680152275591029081497673952210783463591552032726959676893591374593986913414015379419603324492079585750052098001123989627568778418689685438353400567982496863050212937990754744324275706147184258334315715480900762477883916331203817517219969121749150823583236435531262039003671742797614184159735394604868403871279183125127802391841269649368164696047045416090344800060262901090294994219646530060926122655961575793693963588531392360259420113566676512985216787926353641749843788570399624164272439166425767071495547332717476891892984103506092061578443438092387993539645511331338709436283721580089754075862253407334590687902931626713637093387584773142475003594862378053950500878105365264341709164484229277366913551458549006904961090541607562308590382769474177435199918000240516128398363702802676916694164376322877946701493898964019958871599825850240602104559875973609889685439336846790880719401991793188660304261921247053206063604212444841222306306152200084830900349653315147841724249235014692212906772594036717676651181994436136701009486379395444561756761254873014211595759831431880936157782102378365437148843181615389125245377522951905052643090547713077932443010004921893515551810781144435398709482130450505471363354894947235084680888010872728252001842204424887159611345066317214982192362665651875970123425334021152458744705718844898338235347410295504641893619763412691341181356648991968230589141846758616722127253157457886634499246170096294936715772269418357062769172142047338591418916094917780369186063248603442251674787460322035012522777072155097669629095594888549646093055223267442564075460127560998165506067004952035089166124130843922145910320961540729813310651632093001450088750535810237777353430061615528110983416138511832202654483229914087691424625731492813975267436296425451186258628705658655843587890537022438584782783206366776225488579567933336153539036115848539163603110888715804079749044291958692309105140401921900133700183143120066639938686069109671063361598246385365425880061958286835319923915142585550732841311550199470114266689345926466560270438072875770191695518064849563686998842427245705579704595066752845739528018457953420084239883157240028810054070468855360956562008861124340225079514897037160049967873219367554893821376469391498155488866384727642370228173418563028177204445024548826631487929933300380660858161850725279501118556707365803381505514314007078688782388424603712200389097032588433842953427130469935908659464777098419898540935642868754315889239191854610211108999315014788504097730524709085879510953906911571691055765187418173169314485207174428494984157899324722193816420672730877280013581539867199308374970585526662303783768770802916700864375868910568160455481520290134802292343062373038707851546253384678110932708885588718676118948474504423541491250000387740870956659638833301541646611249839404881055333186072344013488409769289998228442723287910750024471221512600506314491520098245194582540321144709711327729254423622339362334192684459675007708278210195049798167419939241685814267482675785370918652028927716467749195545610556094037679688704676570415038041068321109552875312191100921348250966201279740981684117339946486436693384737134672315375103532496657039145466628833450679848804895088291112900784549965476405950972528827159775658774917249569334803386531356466281172552190951809485504300015779583269158408631580890472440470790160197918083398464477374540539876142341245445032409856254969383070661485557585266797983024696065295356297403631981776155608632597240496514611058369804416433385321787012911473933322578936342098303003529450681549994834697509827668899294962286170522779865200854633323779659045733469189347797659486945127310189482890920105097765388858017262673832433445519947241549205945476280132269754248286902796100148689640955619515510805218224134804222171708153360673486980475203950951448314581127944390947798073702913805081514805038515304981980331619724517195327011382710940883717537993789453657846962636158880327857725322858558555159249232338676653350411023820743204655710700885336911551125803603095071397543737768236116293960552541189409826167621331369926907634741472695734828260135322254405117919144120055510694588801191460920819929879677017687474659702062892291672550932833818291589655771112000004135593170021139366419980323686362857911402295392523957285015671243418833350344271251250895653750295969289991045745467239061760429442072846174880420497929271140541769713150415935914764136833742348226111082720484225142225269097133808403782561423776729180066442313137771351878686288573892222463299659396009126846086061633298394788535209551022589323766163585272539833829251697928977348129555104568671036354695737557931776484109444487560857441141392733816437595850035754405756823731215645754430797727489799979880473612884081034873709395717878233849129581978484341530956481921081651593180422071932074513334101238477791234240195719923000687928299712850827828992352614568873715608171918501371461567733110257620560870430046184799572264125937990635074251840546874020576386709616650172891432414698832744228213535123849019272362173001525944108981531984294488424683166045301642450315294375276032668819763495676663504392345545416744372143640501983873150624659508278776757283310131678074983895770838748872326494922691287878834550723445377170601655573373041916292727941187125869375207218521194315417944708429912503831764514958177615286914919094263189521994689503795270878525875615917471196386708606283878028830657342066766601401307529853232603298650324730158438865728497420221939746228477767121685192207811369298929065049751352720661469051875612200710642234176471880080515247492501496393926949949738699166949145622552697760220757025937034048291657602384278631096078598845332389740538664308780372885333325973674351684787021404790949351963097881706095745527842784694007843241330307140515411000260196628183499907983666362753046561585767022933461680792582250741540085814352892029328552398637955764071892066766311541966902840024035562462959875794210132437295343098706831235610215092840521660006961165439243323318247689642036067794956042091732876115938125241068758577784034699273200685108641793870372480299016659490324900847204832938037811561490046681585681995495065038137762837871294298054954141927421982715950936182561029005072966741540655928571057924346861930594296273239912150306729147684380641458613892760409903368052839661053456546096221871280873063073451127018343278349907451932175001019619250407641631375016141433625002436349412205107356385665112596994925443790526756217939930090785151844837882590626426636807484273513078588577723759743387640763853956944826982117626078411448986787333194098960113502050743894940122938718922434173247224862088304746247214299287638751899132683145671022131664660977131670035265344855300086262918072749691880680083083476336131855681417889048383361702744050128610953853000188575094386865086862372289496150430505482602780925492204939877020472616314784238329983241096297991507121004383516303396498956883185181918066420181286862247488248774794223997853038085643999589389496032722843050284948157949392263790066285303632265432614102118342790547796480690992676346107378984489795348741301574220018517666225493235783110980523173010591146537892009747326280895748540868729687131579700352400529603948978041279947025861627883310029328609881232164212350291455928040137105045552200555492628908843331296534800117014625059594400170115030260440576758361817894125821299835137043650253127803204168972592466678778052055385544217968967993686356388951902124836534552812998969654762125409590422150722194907281758805749075742789035218312550638837450564865032102551717988829437349843251835243525523613183786532012130354625835815915117001045649071600043129717099928008621903286267520331361340438136257137478956826346394959605820127012940005370001117198919356421303673921128903184804062162524104917890287764035833528739483703615752240809416588293981655200056337739242358679098027674777541450036647914818372736717750870381861363448298002486242815548703610656103012731976668211328191529770388330120174988815055661449033429024269161556037970624258344139527479286697007607159161228430784309693347085610621878370725361553237682353492020933831081155923461289080662830783789417486062774446221714893875177042904255134389119632797584170099131617473313120394828776736780864876580452761198039424761186864828097862671670997459284960871998193129780667989268539393760057767958225602644832499755210659630502055847247216445548852981810994897110190238319912808939710669778649600899668737111018154074925152655494075498066910244085943762072427823630319961538016958080682924666208908662187719457016694565892578126339843715143941531811667258950264777346194570429479853496054086567987830761613650547873984496657335352145644896939545792429121675314899601644250579457557750755734771643483920185929053732865826057740118568335073339900830588490352814740215777648180551193704932749412407070644292065351681844952071989206307408654866487264849154914407837601523555745994279727435357298813102295632618685925621034633389454720279056173996845683635426121319036655194685593601469775058300697693538011677257793282429464345233086848749720373881365741027356649360297067060059818580963363387596589938863929765216651060799135872410194352730438152601613703875483498258414283460527417722085343746108597684218096230262790601153573037897046991611886557429727868793285139286332405700764375006869371881007888616530115991957091768620132341288438010971264253286693575837627971016292280033188822068647902963169319633621635257776259664858245526311659660212977242691268272938298758834224480149697086997569290700727314441104068840944828519689702741885915068789511245699322120409237069779527831644008651529234124286644780174755262860604121975916529188106487386824580098165749568462355310895521206873728841481589104076303695534039091461947105010398377771431143148451104366899897637978146233947858197859358122525353686417579612701096387495459636519964866686293872119131211708233299085719042586966443112294310268808669364532472065244189202197495322050775899383441469500285702093325412945337891596176380908099886516274800643811565415854629088620697539880189721299220785644743097544501961893045651413986931575861821241352931959789619574836390499497343184813347273132944022143935072686639844125284215559276657048960477055679277696195760838326182004294900128429336310377888662011971379642095565554783533140337672957265804581958223856038474838284950067204198345259293511220907827125012444699538805651764411815450876534358408797591801713431689119812430478905659500963686637202942517205297832307023686542566177601919634065347072307678985990865164919909854677271167927912567198601579310508567438568679057782004908255009442840382208986048385854036594213384839574946353386954509381669381494282740884030119531097151841608040220450499947842009957089765716455268919859541908113776209104533945609456776635897241326525314924743475867878783717849125695992476607542503391644064911063380749170541528600606338987044061896930513445032229203407424337994097797372684749195686645303853635904010148807623174340362059736402153549572833896329544627515436442756540809502786480397785083426067630657298669312388173385635490903242083760648375147979511736518949393099206525772049229774404699404630425557692296771157110628440292799549212243558878097138010336447659670063014428995421283404817056002722633219122780020323240926399913995802629663688292815919986439406524705008344431699933786564541030652756219098771175939096506724451639402422120927645582991051092339506775586457005318160906172764536229228184927002621232204314305159378649835640563809610237674227641570402099106994728070795457777687578296806460103431428594159533351096945234411257854874318010921799707258301940617564917993175657920494647942216948152433723019005802964401506160522976685712554147549129985629711704252399315505806240260901809464040815761072258810973431670704749059516743146760357547999962023821571935336209592186574362896419430652038124376154531233630533652105153185332252544324298545106852736368007757792593444091880440601287635865200897886840093324255210377821727898014734969635870336024141604382739833242260315481459813542081833429104496091699107154379026431944305669348715089956520988622221496814868741269588273355353344696249916470808503835551041274906272769432282618693773595878087143286390667050190395617237964446226511381024712232637647362590559488317036462917395975360413996744229446141643353058730403596887456022308753515204765499324071953040563635484718353143896299084875695317030177774410799671585907591339519695478768685860286748695799357218000378397472319574157654472669641641026376280978978274715933579330736872499316317212991881746321844652769899284352515624179694225073002453014065654391290905783197594185875224294850726436335276509728311804860153619693245770635999363292984129584322502066451235903601667429385928521738193687711489861067532993228480215655953059627503733314194349061703512850427353239743331076166417190198676897667794308059487623613910121209511604403629893918540753831272190295609373678747897191950934015197998893620897358192917893128353797082454366216290232498509863543285442483666538193469096613978723343539737063368764006820397885104776661132458524791720913379794243666848681747165980724316279917720055077710769622798201861662035109184810902513050930322550354438249882948182042662145889701567657948607263660598423285364314512294764787932871803834560524371284779378906727565578326108877747164659688559120417387555511525611053043278142762711238498817541675837030300143829181872434581642529648871376067510543955640661234599224581137071768121048202499916789857782893888561568761110292000918210326462592668155604903428485316569380553775545295604837343387840673974019069754326885513859478895485393139690743108192360613461408628618038118944405390135729108703783266711485791389183445253434948301229828699762856166361793033249825408982541695146418916552523742263470481056296436645593069989116670480582225003837729621772313507309886142871515712310474949554936979288572518848777491247292542041375976083854811383014724451812349707326182377154497621657106138089219354923703667892365524886961077767140414003596905761893506939759403542984194093088989000023559663190727051152881098685123189663520519657229994976007894236267868691793284074421838451165841951574785585450874081415248660664073722339272294693309193623331514538901892950724577057546515030338799636713158987124028519618936799042868257428348250128282147729059761780099677665370064388175260136795839426092751650701134115634287733310376090138652744141835530432695675845466726461720808043658606012862294423092228552141855766527352213962868628969380650375388937732344708209784015417982843758079585845502646932178458350833070938447318963821566895820046944681470374593665458736593972508627701088234135240127422898000827787167697862962359878095917081285968439922376324425793094608057723941754926291452233117997429809810213559818869702836370153562326439484866472578989289599915545859379689527966968947107107721774859207188525680093295000787478626552975189773740431653105062878032531744588767141020861016825276582639342180615765672765079691652921222001850631058335005260998926376002453057393976059899290040953303908197106856683265664707854047809776940963835462813351293572264017152190757536949211598874866825504045893612267330828554818695567523184061356984024251922287050336957943049709521699270281930215578175986720532701868243700393555927696043219295392953747768917883602025558249143615191361607122025166957466713299355311802434684948724833131446990272503535591850303073070728980118948698460550655583049258136825936893225818539887623553178615621039761940462178983013421793627300785198960547451810307950859021728137714175511226141882220913104783262606230728083027050135466515876829105481896595943131950248112321937627101586101351900087281393843604535566656011963393331425882549169661674561042911191089337580101897538926337991085510386050697608120585486731991994559169629463155394509830467547239209925044111721851449441484627986566814378772847456646706224885191052036619912682074094620239582534885068440716576337300664578230024550643977648584113428994817624637811360709634035237337808218175104173289427984934030507642748895346724545182362686943187877416409416420573931908731835480331170280042923676481019347221215758755016458950694385818442030473935274796906644245741710269922784615134121516631398882398193027889377981890095864394110077904146883060373789359675045672755337199037486111246721850456245036775069231745601473236004905757207688419163354743548298406268563430083143400307080230477365286037023807793708669889993152481192054176323318742716452904147411505010341387267771196172705459113405962382314517528150827441382163525764729700131510040115594190172243193367261282206991437725093952525484467847134779902480673510293748847015171818130367806100704756947707437035803037340753794654291624400154572309188034284439611121383005618955719337136016728815542421270179089308811080657328268894643956889419258501981401344995323992767750599560195094073740793757197191326818565487783457496816481915867160006068174024672357913410578055480874104572904745023866413186230778337568849548006914743184877968879661927338795903182730392774772864494297064990078776021943263479784486465937819056925391105345777676237286509501847377833105880180396822584191298077993906671571881478304108473889032766816698590824216460799396473740184441024240984667631532623256137584327599776161640019450284635372187696323529608429975991676684912432356468912456648497601772563955673712368635575131801567523692729516658311939456837222666223352983652442993234349881696781900973033917888904012977136231587281526756411093096415720812365991795151521665496455819963442757389455060504179101534988336098919373484697842191377322096830584044595025642421841901702230171605716491799561117414062831983471965814292017800998217396045182517919264374103224557551479693112989678427632872482626516337673508049699609329649325711904022606615111134420204923812010450540281326709210285742469386234393073319075418808206389927611433425011862371257585216648970335745807758802161670657349432754635259644849618820454382100464856408479141388774992861505001536528748175812425967152727236475734536882549177615355317940816682747525846534402614794396773839172513891717380040231619097299173969957464543284529434869856027081828698826211417752954223501449660782280493485074170034631171027598342995264665584480319997241612474098194985250687096958123041345193407460493995700405187791932720087702327004278851426403698145922512641733608425758202608036332575346172656907022383158478768894821984525038414763128137449891135635214319285135226866768155280984185563871249746186984247580046628048182931588066969302718547233484349375772098410749364848343592317239212207256673023360912646603966173551663231783685604405254145006283714070635949794107034339300718789635468404743636013177962539080150347241470216727302631475248034123241236744217114299990790373364531660196592476763091297762216045983587560466003163865131359662145196143507524468138200666042598796413236416505134205027208994849272224909313889864549113465074441986479532374483007104539383657690571604156064764056353786443415785642193234026802281648928132213113211869775266694864324132876927053993199526087007652476822927126718809575850595890467051105275949498599153871820946149232479830023017727356711615989534994653673059762328439214122050379625283229083061364644874201896765072274039878952510793920076830423928725840174596158803776435840826036837152528168650330978554689062029614659046536803076853683323748679537046588307928128452694124316019226344124180499722527134367295645005199011398877959288760424243971617059616143100851429704905525832894695942860478996368715084174836660411706842286457946785102720108856426669162080391969755926887104698644596807891539421381572993499769547362860220891919503677917548003184426814208500230860063952659374298164803585925131400568880775906009919209584694976908858402178324241033256361486491636744141246351778222153218013132777239311324439790375364799532090744465697749411079318373265969745049985768736454592418479643728061254880155113674493306609825131068645897903677138127954708267326314902785175000267588520334516675529932434851956722445301268326870031583030476510710396162906453537424545737699623084587736581676590162792855386754160035611340890367508934676165869180613645074798807716566772724862888908567462865268126577615422982016412531616977956830681196536583603147616691821825012217502360944649129318718464830372152665690681985313937361646725808122687396938423817396909135722617988803282603329761809206354453441976452900767072934166752044519865758581767075613781213178057629458819152686860622910678028459263829276431545110801213650809586800486096641729208421649332696094710637768033842544741180925112772589574860204602201376884899327345970594009128338657181625192805098477249748034781438289980577599598564918970619217328788384698163078442332370164662360860015481744884274940006954865817464657112412303565187331277415419196882780655606930604852139324907403580680323688503439192367557909252438772650859833874028602249630930789465343452212136845210036514255246488680010180751346976325079903400063707895868351477213400563554577374916999723531845099556239263155991981328659619751363837790205053140127602207095440590923310768336147172292034246393580793462510141277437553351325130246480263917653539130462743700277638698941052823337429657192473344312788126104207452516496405333012885615018132029555493074678981051513343375466664220726308921742557347714496762299008463322352607758297557596734723654523372780240526465383881893793003912199682641440509216100373614728770794749596515984076577077749042457898526408605732597668738815899469046774013200000298951281168626553504633433693217647889095266639727619888614222726582655004370195136973513055145935072004240753622888557819256164520739469147481976161791551024423180889334449406960309301823886143586391341475571078759879713081531406276827717852071287578843856627837190887806007534645018474790217225456864893466783566194513111639183254494695172935815641003920618805211790630082920363734787507326055263788689555546654912048859305165016316956024805197213198762369499035914173279958738430486337255316847435683878735960394005172546177954333434640675899664894265526531537132115544568088077832402478154839186205127886824612135437514694486407562329156347738921930269033755669890544744431613925501466517620096442271525677731020048942019449634106142443536717477509462278042807665223075540684127188581413757078616289059471717264855185540132941209656217597592193539662066030515311159671815943146442414051596098313552078207105876186864646415476672850780020541896520038502759153864863937378032966716117278975918132132150727569235141002658960628634632544983828853777457207473314400854995729795544813450857162524147422286482525640257402007003011110863778430870996301385424441465707699729330806998574653110597591170687593587859018275906744533545755223717369509455892643113646093930628484034475431651777083861039480375960540618784152171242951359789283050587420304928554908395945176230543628115540122118361936594961636195852297892616719741198058042723203414621731612509983659972141645270672439069523598501427909978784559306146494938436119831310726146747878055268497731615475407988160771726163276933642696987763351707880833090709384863086555122713927225193127645520227263223340927824005910295245792546333858159736085603759478792356644281244566682438036940011982722520651023207545528635650427542212611458681075713973896854155754200603907760667694660373508173001969203421993900942184594326756739021227357010048891384406804608000190832455834570676744157646424598498733345352513261298793612820074675645146212961860090964443622412948587068322650763398391391221830163429695382692745682026213446335831260039639649043723642624271563254107111830843071162745880370180679177489534474021941382956291528840435499652805348584273898169922497306996212036332699753800241556615193295724725104469620423053222824590899863247680848865669246304696999100136876589618858447337076272418727129998045203245524355790654004444769128521832406328648021043808715294521618282952498440792372378001819193996073300367341749124666596179353895351808102731117387999729840915733112305185044999870686037440118593910557201263710035089682899652914052128982415482965726908815869434736823352828471443769948296305097690414451984709842330824680554825758740852323286194846058190508822591577678412471048242110062548907975975788982672654276585375400555976177460506155659748643025767602419464436128787759746331778356671975634661768226487173037365582231584349529551558024574714317167339301455212230679049872606834671565431672703892474664269152441973421799489490362444538645790778434732620470191510548759078821779388605041377763672233558089219385160164263560797551025035352101671723206739329945180656074034049409525988862565804773411139125106620038902474626603450121141738427793108803891365876848264001296001749537644741140369706103241259305100299889924252494010785749646728430407411550119744717183223038381081833939088584077091390237032685159070219614083790926243703747664804808147956627107570241807001441747960961552271611063514675286213875160278044719192937962436276204123136504412752714256792530090047835507278716051058535246741273388080244051911478663859649302097811155748014663208107981721323233175048489326992818670267692076918229985696011321116086551354213269560534232116294964124475961492942559428749421789623160134720925777325477426031650348145410222587209484634174940559274941142807750397694689403478085311983016626726789801203930910097627245261549526921016855014662167612073705156724292580606821260034583295850158533646519604083524123362232308343262425367343555593909028687046267581364136208970306198424620067181117056125554323902270970417298555533371318809296755081098576698172966194575446525628869737093624937868887933323853907228941611279521354569392475743354800692177003643027516394973026909415779792871445423831522168695186891109048675129982796652585429938179180429899162301762080360149217103729574464876663346221643945213131399432343420681340526866733288817985909694616401894971694472673170033541794275751265399498261792795133079101740566132517800173498655242111260443948609111871900663241583293425090535086269817151787508647553572008256740290925645255634703193420319108559378698456181874303012211372235861087857910669506376075933827270561419812146013727198542575082970391472697726336993804307626164618922904718325862603994485543193403856309473943688815277955046686261883392796672515554141205798136920305663268283039713895920406379761651519900669254426116509083106851939216085101267915946620996184705058568204442366204149090875255354539626071591058978086822308376740510541543711014864328956840728557977497372335119859857925556622805657448660833298775792771885490601134113168453050974028468356515980480262261981260490207709626854672562779982361964598520410856499181068712366603440199018599927955652989414863510361221845262003021498557338307526081898432290653006218465697185228701721110579193428648956198564275454585288645217611848017700759148302849455356918905127993757973709712982799402906420382370596557256902569551482851239244898550538743987525505460757762353269801839298257927840950529183165326038291333245413005138624201643266193407811885819042489514617075606160000782039092108587048874479404551618649618734704722398565588927643495907097022127344017707002290627700244858326877803323109302592251003922116214001277861998045763911770786729006894262436939366368675389545156797805240354728588813009875404982451552048087237242315126891031621629622576233118180244295436536649351524246157838120688968813768577690130363185164093465799843234604636604494800519161101711230938524722721966023281043722068564821782839172779084301362125095899257093249423206388821730234350863351738523362573658594858307335461018611680214595116284786311211488166742815899708990039979442108473332862200442023489735715163552283999086256510868776777186436478095288031656497201459746450938851834910527673103828518997832165724518647273777388934391530961009590806080524568924718111581674689272935813567717541170744418638198085062728978601999117643979405357513203999571523662718658889902607928836885105511202744740286844730878022231914380339138890560139549776762832468719985338140644224571548407570494704653120888693487871111176217206653926191386390462010194463743612591527729913410961355906939953289656425273762313658106099335664505419693475985362854309534772728690248587686783012314029872497490315914189815938007777364570233435307966591940643887339183765032448409334155255310291854472558969234386908713399701922638948356815617217708538384765954904939487183292110455158531683742681503738240022420523808334452319926216851159104929927678682069974466819148723568119775283437567357994468975500621477143128104277025399094391059226002701347568565933154616985986283884090548665173760639630438980526904053977592696425894418445935593142403709638162523417974217826386152702933205039411413258401688512484153434572239764497934670098676509241706897765648002289137577671858478097224694621017759758511361015322497316513144164473592250884853848896379503267836000400891525076582793652479915414034433059081045800723168136339982773577902553267418965394322382598028120059023195806742042105783757313257626944094865795586559698777118455451817430898742639001803430653939764871300804339834003749552143298939591857202536202571089387206116351020056303068860431232824498995140295536954168074415541537525146212085035401915600517430455350999698933805600163634173076934707863032777855047902953807810063322347375633296274260997824058599694172855877828402479570124573862234237267220410369094133951363740538390752765412243818123450689005143121051733094690102161255180107285136472054588507637731904945606733243839853568667412445028244795201860369311784215830730581170712950818563489429283757187791045467938278227002813365546667095528059488315237280327372063769730364251745448043679461323447700763917182228755133984130206443538293237538771743949638007924631365689811794487471241596372122770259522153611222261863917858130507519827606471799534662738736854665903270035343592235006924569603694604126133441554934892830174219167572614408911497303313018056706028153625282391015609195074430058268151677961666983770628440201028100412539471764770241673249940034740079660050090707177026116131033733274962758463041022987785843879944941415416678159233768014161627986430408646576915545375020608522028579417448943788002181145772197829182222648510040188595847922507845911354723838680245731358063483073569535996193225068901783112231820753278648846718589935565097298496344522099270642900255934710826538253318273819747045112557659381310417241675414006155121212391158177418903920964634720637021199264220267803532449224752685685927056291687613815494439635857959830411540666845247455771908313431001706166617222214339291904176680985406908681395424500273137150866484840715282448603876777067778940400825767893189769533335738152230962191625155130371701347960893683541796168057032911688025826180306391570663610317716820351618394484604525040362855518385870438656312946839333060665801221618247545116989726405919604718040337855353695465069558504879192948705372078368194309769399215957640997296751270556776558715130099089089572152121459970830701709127909950191966315766621880266020515677988363154441372091695891267083546218021945637042789174614254114005434381314634169761428568614770788512637031301979046777253766565313020664905383921859459635997578161208505194734849036386734063672314800388280554974637261956881600393479783031272331509288717916802424385589080491094239088788928654441111357427891203461263055662891169120235444907264165321812685513108782026666506235215282944552093175487033934527979551186603809820549750740418228030099585949707727347418607023775645135707755431504792266356949218190427831825770051434326531811446064725380898769822148043995208079157673705934602798626545961222071837028150041554651520413209165207509884736227865095420573661743023012200910174974642590019693523816307229698172842986117572406087683902209661138068826762971999599425388658289290366541682704436675310010310556189858977120723646621560224839633054591844645016545714159398858822505882743974142021737300339483152715399668619503738121115283353514025307858561159873736448214087309231391735677488209022278636664315689824767865876524653769291183550151349973936448043494795612461639745228806010966519947462933929936772960624518829656091938237174149756531335040229278254440239006314035620705284250461248575130226708364156780287850058829901324191918572062618163729256087385704853589954759737599798794716404864713819532059929442939617593120592875071547373884947799593288803695510235511314473181677598369021352419739647967513737388835525211883457241614232249274469882399764751142854454958066395316132355250333717755770011903168406617000162496353921583779697772485109294350264800542827736050290549303110622718821400853681060833256505361504621236737918323457512554581392313516182144102887135521613274642762850022852333550360939420512578753619570896533754990224391151073795328522833334437219193875012231501748573137955625882994247513979418595681936838646418217146096783206388626285326443613276227370165649854195096622190480226730639980435577504827735057727896236070980518239852072221800730654995561790279120979899451007802622121614529701276508166114807218442653202996503030977186638279404679508016260152085798958756965617045889581811695829844089781488934368656130450684791353489478558933646787198369988652229775822295946551631960293300115675676826471933616623038949822693620173984037083685047555197351362965375086225240086317247921185204716519121053427834132257873862325582177203654841169436361325566726702219415606514890430381569180621716328337195804925592296380508568416563522828281340368630017131731070415788692112115346240827457253404689276701449166660421954861370630877527287361728315564565404203479993639504130449564418871963818697153006648606449952968569850830073621962506970615409715859059680294504967898344253956422219440486684812741581780698279754391109338541475369134908562187467165255430910934765308577978595968456083819668563413629402861935221505616788972711309355231146264587932860653620673226342180188450545124457531278593023932928368293379313955678971111278828989084634776804181204389674218215213749171875300396429373226340470585359357836782356627274276855944002848866901737332111485514552559824823668384251256948438574048284305524986037222265018920349741457369361509191107134428470982057336891604671751344621784923034345721117960356850710386270255951037732930367384660101603029216659754611570315353257650385585064636170521838801313168085472890068499141298943178426780600415377969915307916014071466635021641247347419996626603839031734348866276029990343870176387516520991174152849958151017511416361292350213232048345385494688176026902295078728108785649068439905982048275149688705377064154114506990340841711221474318710308419383688146654997971689849552322894391347325096210898444700816471197113952550787542993881988337558781544315634893588721887176002956902306983289080378724774795717145969655327112122781724575699972370712439066056357983446236705796793934155653962007506101300474569518806899852518171057970880059817802105938030458797227499736109060402642328752184005868527100064007463402469305559375657801238280197675695072088050922766621342085353376084913532563025636969636931580324578977679252640316725777187970324613247570222519821551202049110736092366847017139372944292987265980963671071495217849319386403906064341653141050282888927572475713249409951030726104224880094415952858021049852523839770500848164044743146088813499102870800505625255184044321256624630912133429286963296083545306173301402644510762135290468941828583319840614845872767878124548162577870298749692208889022164555779656399565821586253344577922479762498487167095193640965865483580798501248655735017536649554681512922764770855050106705383795835918662012888848452056948105572594713604351479409760210271880973345445328043439032626057870004296184592581191108461390131484574343514166264322499576920751790261328828415748455481077202640555382165420655539805741657305589804391014637063410816452792803273258122121211227414629402074273429300749235482068854498061079049471372425636468715673547686216784788290616905975176305366708291220463617765743497664360234624395722440822447541158706648227266404359707224349561879070413997931422426108776611325565473966952838785793334273742283758042413394927000272837435239513312754466647399428973987687691433154217159511286436851347911815468739274810702626824948946100137688212668937423259630829996576053506023421109519548548349001443566367683416505320244190470989889647484969204435212578736480405082604022879576292980930507119429213213649076071823240799685394174145975782987492470579122045976302120975395565573550516315432980348264781825649792327825689983090715835807413497072727424782313727223459640482681762702870097574800602812681617262729496944020966471218145270780057818092137568926625658493118634046274977545245388512113769550786361944128297525476711919586961296164841113976269365566225204928713341525564535798572857205829630702440876042566315181991123655743735079673959893072552013973953909117885649087756146304501082214171019255381985514345205751470315796520211759542317893215228482601499208888201580410436228930533267504162841707131545651301301602376900678943811315875200241028949545560114703422125931109533640495715297999146895750284717146598183137131709471888571404723834740724066569854435148982837757904092708430375020347824014582580903594248295567762567319504874141427167715054512514210620525988701411188747025374474425283074834476949810991066537604660983023509269674428326321072809512800091596122351356353001851787444588632264187596314548122926202515089239195304876183480523166483621670095072585610607345093453479915952444809443097752704296778139847121368493258045116533612957029801629257498460681170228183560200740499672356907978788216582512720046308723722585533911391235155753223719224119909439120520882840100679180941092327212072113396612699584975557459268420565814308402725695778308279220417132844245430675836638367764785940343334231509453897514135209105746564275135279965727127389461293373377017651726383419865895752755503821042601368025472065909224263468964960489150341693203342966212820606758329039591770112840665257348677214187224625929019131434424885488994672716807285200495038251780753407595919282346708194879138764131438808557188827215212001806376423300759884264210336019405651215068897788041801683364174744971685604869315237185689192529844457884418838086546811661632400318948413827351746706346535709404845154035810604642449224274935517476881837258137755523577980945113459767401229816740997168762666054670382889845796204020151825674708400063135501934602106034817679265129947263089413010886461896873412207949852869978652917947370386661641644603444865145323633354115274190808558312351493905238779734012181710324897480916634276128996350905053089729547995435094979349961708089986207300362757339313262899174606295527399734861711573006309237203605229770232562186836457747365947348055395822812050105344232323152174229426573620122724995758144699012956008887009588684785129820078885874826194108241508131076667726761461505844674501056865386173973626268444880766239735586290998877772511921278953073347602253809033903404202690779180459072444965384340718931297543840779941175421424090627676084584302401096639757211935075321951631618482012012390896383540403232416980589725437450533491445370928796102208533170998667708366034717759674824066990371110513245185229631204813057852493131060330966537799758800477174339016253396708160445308863839642901920441386285159286936111519628223177591747497659802498504528785083707538899206736257960531564310565972911424017248726721118013896975203167629611757276494278935348829578112181529163113232672083718367101410409371584759440341023794572469479784162047914013961256047430987834572341690627878409562807402114044916618284653184812532304089347420021175669522267056292885290263798675466377784459437807961421723843408551973827327117924409574201535869089764229278617216013180211084610463845858810945045016946227182683483498545391384511454906345862294190059357898560917411285928318690482213955475087794349994899734850387938137451667580007543125135381299950307237599488198961393471223508206904193512804820434589978112644803231601407239449662821321537981365495999400973295397230703106135238466238138144822974292304832508024375818867925730139938234906136075426445740420287162849709872504695546210892831128331915956936303234695690597449231977171474649195722211203059283203518684005550425772801064866803703688866509013104841695007457377299003630609638136294440481771038680134529271216927531649793165478247423988209136979754350888043721233717985003588576632864528647882393550128557944740322963835589490726795992507947942816122842985391583614870747324643717494415622300095796590353842877033370582998212698680662512148325208949602984470441882282114918661338385424617882698684952392914976458502389141631691615120628441031794851922644513343535974395186904687596406721475851711146035358471011014477554513913198466475576037274750943510721618763830013477404859804865635363834952777743817324931105703591103080303767510167670271444242396857771519459705699899658469939871663378482120036887201963403654035436834423562557292335180141924798320129133271632982547950529929727629191695662899939808550451930014955492949359743010893230862392007305258793102447003732234186346733890785918131001852115431557665339235853096755335814890924444873862125519750193772211603208735179918524763133390811372338815704680141271086872994087758141071640323957274395660668337729858398116188459377947295120114434159590499543665513010022853176245220478226803840442262867632292038880041028049313364048319146536950795745144231572690763909873771237110783202783804880901128297220368089519599202785363741534319033222017143244043917559911487006766956913855073257837377985660173395107953173686875757652642199123588638458312515211785312348771806223166257048941344432439906921817442909719933979309519603126676977953750083730567533944092353762896832586332625212487216987355448909579426333887334524399715215960355513310468906510017210581846603929270214633090448217446084966643729840784719958725478234245989271470836987580253556406640195587803062822052131969688911560841327172231187905758278839455416400902077563202827436635030161270912692778232570842676328348571011533527861480802607852766343605957110347859625382644485873906329804106731734209116046708803487371265040171883938127459446931657669902536544112165088527714729816537929813052069646881901280338809407818131922391053685391593461529999657837682993538022079649650307782510778907642862640361291900608159528489155858271175941164911302778445217867078346293776778101090224907867193833846651915108369215549474325092541846897119858983491123358152016466392895345113541299058450792918700460961645090462480972949685885384855665241669988759469580152945533724305355115966551588381722220532350836553429770155773065739793333237312522001773188054973876697716246640542236959089433277538933914983013216108763983429294647337456104012829758701670192624271785035991488705071568311351086166026835058847310582864256616095449709928384208600550622851708401739190832521318301064716730724023673119933432764341980781163397043146283048847389435944110083592253109706060252695000954419444631752064333868924449011605077194605596473233549788615137330140544337536106813683449578780466588081872840402157099648835795416728794595306349615868260185381005467065041167585077774618822039323556410072253167040106315188804080614500953865397046523551079747050393881005669606961816304779816483620277942577248067317728214934926000478648550088536968915529083630654671634239647560401379017290309255614553314088218427203688735883141362939603657521262397152418235382322743193016045180693158840006786556648379207153314583684246255208159201569589822133605487240294261603041291480423743964843206533530338077253744847491286883578639651207198249695347859257208784405600916468232067918428081762674225549707728074089357931095939232637583423069850126770867184552740347158863126982824421476020139014936858816478444421655546699964011522361322729244902365381409129513497584196258562396038344083947734526429456300837633537793654653834116736907044497637060511192398176736116782211105348293187273370724485897247144900057543645097769552336842964392335453241385917971048226050113374899533079847114033224316456439527296218152523126818557316838872218903529668166235412486687362615545258821659511390725966312522294976058160632866788565824913709912042298901567627823203489935847725352065909890584725154151035664253029828556003929752286501399868185864680254458936680140125348365079603843524392245950133560482359796693827381493945760394862510027034715125465364971573884340775259776958041896228130496663379029807066341559481334242704740555702483298051703017764536840992831735009373793257477574425461144027317111062403453783265823456586961418935869228541166748220403799811589684020875586250257254174930151872435622622584769163545146659011404465038838325121476114967197862579626630952290530751580926915912672564782627542062691063630460029999781888270047921831249892901551755371299116501279268754602513240322167528655783961734432250351337550454045863012779004039036323107313842062839543096482469853245625458287252305232913151250944183159252552479495373235977551796534761370756172035544473194468607042207287544724846804397816533168315056035717622673717777484864063022673310794468588946443223005741530742478470410584799676360818527958919075301323592414222982971892951536543212439740346666009202158229737304209705176337758379429905895129134367711696731318202230870553512128758981455239359263315748341378367906318774108203842430617146408838838661034079663856777927240976769519831699239165881689818148295688146637579384560730371634134763778604747767504347567011402897694363806161507670449405781436856740028138916045429580222134616417600105100487604822225270758202273825893698084259922402956822461370009188559782856217048538662594492761125664024136577736566940578451834633629693496437279256323588914380870418822809745087400679926796929332840828734182003326702388428078084663025415847742639070921823636902379833785109211509144395388708844680484397591970063602651589119051668022027388963993710561396831211143094879383642203343226472026125865256929860088921188682261409779298967138886222048376664600715518566784933067192312744420364441570630021648551549793746647211017100783731178995088096610925572592875010923031261973656513796741911285287939462067834138208919333544950169875252029621713531382879827845381243687496805427745585456105498829455000616604731982592158055987767142242622123403411721135191524399088184746737944018551720707414958092381851286123318460935608074321941116694695471999571552383414258759857143322771683048559607773270722737522121277770095249978191816912056339119789899839175175582204230768643248108451413979909722807892166711775779367581407415373671150781221436018254941106771319317316035365416499922686949255884822667437736935804266498945664743207512081208202874805252555891196340190785032200481234421955525417726030555088247818919893483349606466946706723600844241328105251670777367579076464770453368845381698841098185611231400824924420617100433630039657814676671879254682372405013996856332337829463043200619501704641201428621217096005114397724883965070006598787624150378073110739040277528705800081791489252879189643352982392625449944887822562602779956571745328918416751628393068150845794412469627957568629388859221548686947269077991726471753861714479065937868285820718906218439280307707485180421642022235520544842583548093673703037162287267580237692714093191241819703936478921788691230290388599176120492323113539656947829574070971086249795628166525062608129576914057437961510063311762277589706364347024311790687065766321020294945891352267250584003386224271780444888342221250277353912869379943999191130002670976804732751397090164326640366859277138159689200296642599994685933233453388867863600037262553339040203512959001192091970850667720376538114972395542807151432319332035814838234261217811253261475631860044868753743815333694801233845904383979179702234830655273657442743899561464850386064263029025274477183526440871708600745197004231055466199820042610631223989399477257474313373177076786815125139174239771244084294238447726379903580910374532744430971797431044431330778736650857608386129094277975717093456337546712888434785557355679682561746829898792024404973350742869203377454334725079189904506592653640176049891626240463726245101698573701069421091007727149507251980615216761513904733145178293108504362305371281144332910452331723457257244956892545803163087843103065029252606042776253478420019693909327391714231117948528253088897012966688062218821745172495314412130683214674677189135427113355320929569778345132917784777411631920498956160179230588301516456795644153913855942532734818880463490979867172374365668475193670626802881752711406152594187318239107842587780108747982884615241957097978129767461988401230597059456100109981909606189055795021236545027331292838598458470225778006505514045760672342492998124357050192673266629658851381924364553190828000615932921072280401299012686138423705364318382806428708464593373140511028150549525521528104535132055526704682911834814573718789575115473295851412122920931468093378085350201050508247310940588104372852946506460582104456885300640254257712362161726770144603086089916485040965635395486701824272987124856159870748215249730198219126309973734095443260328221235160610270671575008324722072501598463397472018459105116731141276964939031914569201586677384311503109606583999423855460453775670121501875198725592607749492794752684753912332313558821323182791530518203113180835504938457716043854207442435227417749388491060793050295159083682744093610235987685645268559892074583984694759891341370568039500617882715489427354246194241611553164856986263762716673519206136555625794827865182922361800005237699132621179311980502626567835990093507803872183062076325128752525624802823341595870969895158219860389925811882769851535815017184834981178826566459012436786278276228476834469455340397503057284416735680889451915579294645628962824100518707958736093775813202298287607263658075326361212638633496269456925986528734681244740685650929999730799495514761335157439626945165870155757160075104780001227014568930323811378420006763812636387113980654530229961849274473172810804290722361291540851200536249005112298930197541914997602292434306390434180144621838813579906530539112678919627151697365850120792639063555488382418231709762352555019101438676812437505681647650233082558215194486489769641887831437881119437064118318599011694609403590874426828633364173733270753983828162507052180051324360138529634974529322071023203068180546613827843093521524276329133280383334837047298883275451727159103034597639510564259946778397388009001753431358412744647706471210437175603026481213189033698438335284062368402266164128474618162658064266400559458094096021442850108030269756743233476966945823584117701884753462290421256366654792117621112212252725087194116771644173855314474507242159548472766736381057535518057872899674730122431568924296120777854759970954128018687568775047411047635213177998838981352776737745586145455971414573756331171843010161965997251967759198895215846788166499429990550564158110805974822950744787722069267776798620361618060008679644680998184841095711455273246012713830914761201205063695501839606612718169265230747969614731232887102790765716424832096255613778733830340390939094384281147027245284489523593137877983402030335671033553672017871035704638668500873335116933722711497486193645511495812927333362465006139511393808158578092562522220655528369602171310060209114161691310963625371186559111156677865014358685575219531090135162338344126785015725210975657982886537474972758718322906558155556472933744345978039688927383236517323902784078724417999131554951573654062203945419885765244327114482994418613131710838087884548282670937984009134201999257774968069013259959276987347237881877617302019361579954948656113059686428909810854214746772154659298221711427773916520492612841784681407472250574614290975684949800288303377833800289581420156322800360304620015245757869741267287163960700344168303663008361307245927682762537072643734940272330649787427108284453460391509481256294419781629027161133828894859914859427681068109087298034542864326099942519640600175130341505629365364728775546106376127087199864047949597689507345533028059393998193071031163382610694718257244908375616754272370292638956825855999980039114484529740917506061171971603150917272954842871636859585385283285822245122616207937882858869076633912763457132769535712177201227870083027107809566618216589626491065899036696690206750447433305471399618956172804513334136724612758962798896718605592441185867952165472823199137792500067032810417149960011179664693636431023684645075247155723049090377402395364026925242470911224250501894947841770080493947069069299138260821169324641686637659007906270873873611442566324768041583984450801169558459449144434634063706125342160270974874190987258146504514638563435567410483163550600756916857633304096578148187610127356772189940940468073882841224461127680232643167161286719367564280740946498202819980094231895569181840134339012887611634043962172686258721716325635678464338993102392412209195979950111813955178592658659375293779128596612134140947071956569879191107601182493863662321536017337211437308057023299157830288746813505561263257355953598301088718475871601813058639071526680042641060723645179903548288708066580193937439372466969400499406962179797199724779705885485343462596935201273768785404283924747588362341576599246637066551517308096159720344545183264121289552936129565573556811699235713617750924096881581145066915330406598798137466069385551048812696468602719715185165432101966280741670721381383501333378329211072500416024598088599805129792652836470221761876056983624646109291059837688639581542290662923188039505301775668133467936311250261909625139882454923623712014767023007514299526717575447993719883651865008027541511903276547677621437462567596511265433613422492592679288603618618955207405772783386838600149591989494406278717593731366040999607520227784017405399987049721609944383696683082513895501459369388825267198039951063238565697613332304829630162806724223786203078710903093562308928795538375409027417175633149202854560780245436954089143290827230844320333580879919766908984680199008681688006122192380574217831276728209653554689695795172117763488599855976703873352443322467724874071655193193309686402180204498374526795766076812994005152720502917341731470083323080419745892090033550156078098439303089602303593674402733274870838921768614632278611310532788578198523295304033600201817465619210183865352325639154961358062406144638692630364531593007773228817757471507659464047139713073185882753902654118378433588821106997280435040433577099771745445192090828495673259235827167275570105084293559603656780165380275108622752954371934872447487950868435334865934282852514280118933201767857058623497732218329129262389908107285800942160074800561695651592908543524128812824140428899440078369189441356264552293711170815324250210294461589632165662907446265627839680656819122675338311731818203186946740448637556535026721937670728056863002867749006557976273732224626726062646588078596426128101163379448062796748048533313218413306303828190766323389544560577959112439608204163615264049003466606329223910697768067736019593068360164312769723924163891283893134306513811583905684054475984448416280420907840601604646582658553296729519824560847559390410899583411268999750189209280628843242711736963316202540888017159718102137791081763062538965060609078184232973878427574219359250383619235024009298134499286033028678348803309029690589792100388751007359402999121424258530785133173761866059824464177347350975116617287810744540061473973997892969097076562949568695826989255771015616111842769432611498429186987038871218806100084059164800787325818775600369218213512359118060214579579122280882688538234920958806633133323386760121944304334280182421051888283534253839709493921499242095927821486024954028446274172509035349609378209632652935243261900843794760587615364327274786031290429511767166241600766006208881444839963734961223332716045623296783959598378263957372183808416868419466743317753646776790970023181311496190092299809871439612910054195248691157837469485957740738394554339684998237774800582037667469442559363222913753074223671488844985599368839858678321216662744364581334955557045421501056736381605384777843555142969870788458692170553385529365681144210360279025650219743306944169159388071931096571561876413524516601345037061483462345083232388469844391961159703791743096838809666862071120999357491873721778883758012316625314765943495083713045535935698344709592579711359982380538919720874757576085188213998581339673970537494133974754578746079642365326013065333699385052057102539620881936698351094947053147037222598227164334410552220145743710480483482626425643467574449851337288134118690690999664824263864304384836690669066724515823339167358946558552791394530285639099365354797387694827032105577448870171871429170066073025074524968371150662022590915860126170678910695871319120754624006848706035471263756291308120087444851074040906270551616867759972477253669266169189793417287857561010376758895518214200045481525373576115954796802604503554213269789254455986555359477588484079441218555271825405115186638240513221820347391407227522832826451601826155314295883192092607387385780635893622292753498620732068121708226746266601091495458917586951546272878091479667467732710409700376548857755314684683531897652440766320951457805073388786155150491492111772380995549653040397897522114772851304075802380128528040273724253167168295370881102372684014938816977238053180383609548994891045743828347058655723622550841203576486970001012842092053674069131775265108001021661788354035586184884871405479155146611954002346585771464077368314170859032233030987610740441833753541405738299272808644287910344792431188583773045149496286487588212145753255172286289839405377881778005446878204946866524462135634422524191801581078074008737034118114341896347570593936208541211673991561340843605294145911167391282833714759735351289326581756788448091255489799421445740125150389341927056606798466465034723823738288825776450134511229331747614538903104928824582902690353577768547623031172877725613495551391489297950104038793637888788406425183715791725312200214230239180705171591308290889943343048378099032639203939612448590881177997698270317966329937812057155932759152621452635366113344807097566281065750124590155384547097355620144114414561961981096321858826706798410180189668585884978011891375326585839309582899835295244577760192537385648705640677846086150332727066068843459107526118100971207658209734816687811526231865970050896507371981869619222831027502200545297057262306102508030962819584620651514521271217339759874383086235623003130178076339316170609582394927526018446641641350965915120394078085594066606748243611079649176810511599260012093791482519514490522890119924637800056445788259946180232753581504874895830387681322790503908095688959207367912725639610921649731615187346170065932668637617190986065216709781068739060533602794089544925509846806139444839056044104280792680836066740687604231303524105734576542405896075114421932846622138843116383555231220804373054464812879204033937812198996993208371799222307598744536909898283636660514008321240025677908156953611380959819554937613690075431829035300110018912790949048354404523379412593336845546641557835577070283552251437047375304734374622446486518757549008909339152023431330113093483865765760839319806169132375502420317451582551225839324474433972964387704996972338675365176700161091673348475669135456725217912993348027323664527351489068451286868415042608998182823458209448468003992950283664590810768847254951194566207384165149763804384259732353312366152412143155666106633439106302686781476187039676619428432163699714050494861079910812400733793904832067781563412008488096221250387198168625128102580979711293825706938160787537254067056410870741786005001528293428462624579740644554252780593471661783747465998000045956182922742862738569757676634694434624547033053295783323384346643011549096210673207420964516447318049449582844563872953267992475976251635414036374609690261825715573588917930059828305759372111773961886910163604297664916802352147403976736616715489219340989763354797071736248455346207565879975727680627130954809825987731994409193505294131222933762658474380744511129415859725620790307058801238045834661135106747048885152327759630068910620395143041945738013923709204026856186308344353694148537428267715580331094886163082978981831973803811053074472913425556364761786317962037238579341488364251071694318923787466962282174268031730395238292270302288099543660179628824300821331484672761039747914917634427111376751112148560975838777799909500027060450880463231253863197973761424957177211536775495487785424057966756800613489822056480099541331265128159059563984475347590894708891239747464305618717058545771472918206663463538977035144295418892305674828196979046551092062373656936154481896730522022511200340707818412231323467112692177972210421940127513553981168460770959394104130380021445904069554755482762871889820464079618143993955326403559416833709591560735826064605719790575494476839297833226249085917581395900884918318993290975342208618307866825686924068611445481426092706463708707267415231512891722077228747216933886818703298142391501273440312045973601103886727734179408653863612556134206865886887437745585010413527798147269454702352105341718939189488068570267225086463011513018266140238661542537617270740972770130664514258944429051312858786292528116779815136709030687900728019309429273657424463487696429528035779391015894313575631103985238692552617775761935625708228572993392888946509411811502462764839951672819327112757185316591896371694766970738440372539540457481969088610525396898717464512820253529026504831825881071611447506088139860282280624110254412706143648867424603429578679402372518565132535586094979564847052275479814633839796198230119963227483049778091786308235561221768520538825851007434341663802542691569278534089551425368634306355752630645425843000957803935666728558670008979643143419823413984250983622437380753971567239240082983551724977832905889556866194332292552556926592491160012680087999481537529119566168045010491622438607765348198498890771805120388251477403400994426855248128049655438791544689498906007936043381333149902566311035009157619968889105754282256555656349755469974761003058356682138771287418175635766026136861601525785538615250918393383617867007498871207637120281447291988734899447851164147910011340710299165828610843208181366740947181893204186408941936978209067555175992146738763424972595347866810059324967813354434926723495397802099090207191708142386627129438109285539612708714961654228209017539522010434724045797148007961957313472858489860691332930214913691144796681684712405781372329346923196214889273661343207038002776300580132643035810392869014952435986729152200096733714919167483949472546215431252745987807343930377714447716725876844167029928098861208970460702008127739343854642360755514484755164829038344036887570181362952625310834607007497442560525615379772382872902515550864549605056714161825751304573543500438878937664133597512524137842375984936116401653623277679918482366985632826657164139508592190873835545675795554694085858714742231178888511086649091981470379605356375801086859960269175357969672739548270530580471577596002933690729535510503073248672182368125583297056998685346672190676905590315183782852483799878595866233964116077052305612671712321293779128520828093704321302956779219557923125701221364248068904388901361634913056638179049262395218003055094214474749878210409131509142997925117296578233074495103250797295303148834907163363877858466145892467602932136174057700820990800033465456056196266565862033450608587508624235212636116544750198230000063147501868059890812463821899471470488029832626096494999160011928985441318295844951535937227402946924120080360925086522670559643704476627518910202001222637059699192352337840921524416052614010784870371885961624317292852416791974068572190852126396656024766526933382488224699580220761608600948082183820294797458700677551877528674679238405553570934473165417080304246130823834378066289834660581148839337161067694412351837579902721377776238659513960809780031009639130095917451572237899584055317027505806179036771235151999202588670368283089779592868517311485668154477441362582300475233714214827931432681018805419858382917645054159273128579711829875815515778291761102733089330237756128444161281001823826155179546198603010288290095055072012919068233274749719461862830453556593344070441813939512709347730434963321827664723643908391432455311964522728411968458200215483384624666189214779809780204252249915334698486140493840305451135907441181436558364599112178351007015599593194066767396015149009850433341453306415919713715256478943125504347081763231231478347700331196246510172377652101808127903554681860764282206608703460066968270659507544803496438633949868157053666960942545306932167518506211604823917961360712044565381442733704717162706290460826511046769380366711395545448571798739377924556820994067166708055799190683270959116995520627203689723914101831917347743428559998648803069117650383020796675031407544361542594610890072952393504794935542777802846717102172183316023174298990182917708259568314268400503742929192216616236193127053742256059113706762477889363342271601583024290181356850767704546799103891703975899146907272271798952832248070977806123872870346514899028085864183373821838710552503178577247805231819498258093943209456663281374627588412266362481303748736718740065124316067968889946894545482568514975647774399939333734368573017572157369784021718906949705026778996415767381724761642534894180510184102264555959904136685056023974070676750926360755470006427378385351738753314903727628727642947072718444691404720027890530023459090291359250401300418538955297412491391030426792041320158856323622259302315119644098059359915695214287737423652941454420378941356634109497403383734647649216743166826514110130521514717394083456243480929148192797086978141980976351867410072127380152366826559277185909381554848003690306359055770032491504538341288200344341432827843083741751063743899157789332093011130510462782806706283841047141165595301480373700018426687481626129864533334079674817009159286861166268517066476179145563732988500456485561380984176867045016089941596681471594383424452348692343646784156883500162168884454504637642882642967330161075939283949200856109892435493447679460207416236190588718110852807739986762041097238477950270457062808793035976977380543414403207792697364780228848961759246907482420174793918297616578677596659719830380202987324238771573913423839735341134895453182953495530963847736791121656448416755627379866638943416470090399163972330693320502261806565559229467904203782230346273136206933052027649847612737618416104618427994535775149108339197216858633232809465218595475055785151890943728605501036653649148707020788489300319043732299717589952699687792285664145968853079924331603172642952755811983179339038097676274179767406601228232828105094839105354143904967583047346171859971765210666291593228603788144524054307090288396394814212740401513300151242272781510046199326777440893384477356580780580960147025806090480325127965123465587174990101900198118185276993397924959546004751622826133795770626388249128491341528423633404410141954487276004585874293104299286052341677759833610689169081733426015145771667350150541326358698295957382598113157346517906155796779983904344830262097335741052303225557206948821884418770421110152774826917926237699694240426609362722892144393246796785531107008487527683064619458866277695320810935799408991032624015629294472034571429164972847337357189502492359976172532314852990683348587226942268230688935918604008228958942565148718108707738446259779520580602593853967418818880582959261184088475070777909691495478463698994800611923639493186020915939698280194557919418237505739224861834329146743578801907459548971519002494592938443384839014584910231542757838741733708262005430426908936625281365870878034399306161527797790801899682232548069696353857990991582360955681737830576768557151665981613895403584771501695707309701579957761878332584914293265446471591871746254007926762217165093742084297011096691972208014883039233567090743752860550360957020877411414859137584533342200750106236748402478127839031845518546717157450283878048901466757597447510740558460231346916146902877433170131066591782963484853806653909317551022122753862510729537803170977966059999766215497606753817025121193204143772728439707594177766278190600483093094617279818387112776645144892221566282466887181717631874207140350886417555947050025689907734622570143948907169848436930620662813005860645911858664606970157979990852053307065920599634123413955898217033062062629365415534221655591191702427541770479364275438973818383837013404024535246217760998610197778005643910751808562131494654863665785300074265724583382363779049971265605593737501039684849212810841475035273706484731300680062250044032579203265758762744556004518027767300821919983759371777722205013791814561755184415105116031475594125916046064189652451955583301004027005386957947123949405870828453666144291722543531062745657325514902674047894605878001991600354855314185316562978823588214829081158401174218233564415350766184565041990202862166217512460210120369526356710130061816752198458209363942149963444892534364017296424119803622810999469082835152907823411331902937747999945850590015048609163516131434660278664443619902276252179882818264115898323720150799764785289090205245024289240675093820321889066048095075909836382740212106799174318774170008207786836550566947181275381134707296702169024503475815854238859992308791960914499335934710333650230799001295002421175916280148038673291394406194475452801981505855556967568663002521785501622932186887020693711807806538311155494926125832498533511520093680589756911067049443749943267444350289089912852304473753561504239111754397347732334055513307890209238711015079237216679438885191400872184595541129536680814816239497165919832470928148961896821496295092952224426123605219702118202986300945419138724033571336160119375505674087554543735275770718571152771879382873363656680317649436801469868405432594896118963334631784124060442913734017119108335693687380376646170169847842814863540203869338967967701954313028612410028489790588197914157443175337487577996523539206290694869982225180932097740616723827440330047014142244214608568345725944046034306253897999491679056095938641646165473322451078091136380712185240365290715595515211365081793275503387773678952544910087376652793868471124429668055414414514897089827370436390574981838244273793698421484338457979853961639356423784188048336468745776818227233734276622795029334976278031837196656728345947989179613303978475100182941696507612447441935734641184868505461988878134035695047131203753154990076164700509405657502598131199384781125609225486368710470269406174247895164393214454365665597592520985050012190649115207299566491683485637663268967083804065763521849276280894467919850243441264440663267592582937408498869883735623502653070363609385296791702204450824958380361066685850246434579079107004493474399929783242910656208722311919200549544788048172723844892801469706948770961409829665444260463091650696824374777047625442431285698480369275609764752700651662737367562779686383688652424308148019064263696350174729160350427711837060891552068090305854692183651340163256844414204188805799666983176297713186871010661619565745766105679360503382199571029390648451223163624813178725600065935696273267062860400456941109736808888411913404846420841990506902967978810303533440204784210469270100197690551121722225092989220983026013716526936290891295286508023701848273720863026578310077902553339440676167203187797503617641830441266895831195576984888324238306337724544216775176121577096528680909862090243410075572940245564828226058733852522105193910627440877268090354764602916084494613451098447342390748197315986628152623876720173542278948337025149210801932422897161505566721578201321718839865721969766734182829673705177314354165601784115020124559668945979719184716085720352091753494074631275628270900312588319175871528349857799328040806915033339465669144452938120913942095132925307382575026069420672642181555920819539209447201697130035602026302030046735383844481481402972978356599596014594595951192274252281184221757784712118478357160033780698871900348848746849209542670894574360506177681480502350949946386345413259476546523161546825793684519354152636161223585133964585741071180751296828908459565183086942174601894052782370793085362464412540212263324912254664709909665466744391408349134171565726052514679307108595789424096351144123952190925004362195456160572532259424526547565705806861766278477940992151598646952078455365090548537312150012249010470871848073435495586120009091891724197229499489276041490481156656006050917202693130456208562246590587134145272490069162171043971607675280747642764168284837834457984696354521238279083310848440971764956159982949115397681764275288854398385153128240608611920557962694971689942918991857209871357982956081148666829123503888753573145006561916048783970407207173251136134124362574952300015829205830414487718008325312253463191319058093975705958055376353423634806673470454118403892440289955915540658528620395826310138331629354479721687768243019495105601247274682473911882390831872321452425774629250635213268008747884329288764099862481768969381206518202785601851653571162383440873547506073870967169048987256559036183863562509759852653220610699673670429915026121382208316725953779154188575046679838571328331791047433231644770761823969303234494326751408572303132745636213181034737346587856936479102097934708918717903711367941263203792013181195837632040829276703106079085244003592551164821823490282677407031069628674341299945431065052554644864524396522128843016015068246341278678150747140778475882483377017942125469815403426010471372875493636281952600849386871009817643815895312205672421142974628087461077058276652094941220425780116140525779284298497278940206694467597247907630520957772081738178642464067990690832945032059475267295987504713798666435180335878713498752433411485072984724462598423150282081491407265272251264200563120841919762500876663725060719388152043144530151898329013535230400886767398115813674990432375507493912243536115160325244813519678260542779707168975308459410254838669583060818746991204061834327924505555375274381224268439330997601387839662723205408027050768429513083546547860396148737593272494602571538515196435920486242720884471175974788718726094495048424576920654035622503595784008234683808891819000552857356550311081093403780427544406055439415963272746943016972428597859593652999375119170080323062053501526953308477730373735085606321424367947673948181396758156850183257308661968968560962741278588441831604632515454856393355326922918642250669694128155124331373392593716098185658871152059621162324190184462625855286589310121487709699033388005396367488302136303363887099879876417698163028312894125606423559851066725004543497905704435789751791097343833363788924158194315432683645753900516851118028955198527576674717860914139214773343216041216952302626450615978461162351073280683803858116469967535916887616107759921636390273413505235842148022012408769946563706133219157315251911068891005301786333755881151351502882163723817651175357594734892874032900885455053216371392924594518898671756079887882035764364264411345814792945011734054932238286180913541324340776251380785456002951726129945351335359982440382581328116181062761621978177240344775488397824233091959112289183614324832498155534246406509113227436505958841911237738089882451744430461666803338757580564513588680139261380228995398825759324591388683330700644480970979618359570239496740227725172823625854746132480589414875065972099809657415787630138094661876860000451029941637222769589763495170718649522601739750691302258999267299278857449576035695741346687502013663179813653331219265533234096588921930714350145034091616951372861948102678026930840154644965912118365453643173622295524956598449972929262635727275070385132013366705839471424119092105395904673945853515240082168677021180852568148272852325168959434061263639003531190698226675049903500413999652031970591051570059775073912312949979364733231983471019467687371668773424132086771081670879516102700756238508671402355703233885637912057200223074224260219038640719425111691605842973812901288865349530544144910901918487752100556771589927978816967892792740054379543969595983402421036236975891021239986769159972381885350649850341501195019486139683549364659084088332089926649487836679063879776188092704547870180758863953746756046271120387173456599027152906162040123827060884457276242756994566565766792202925646019961682652554705056184370608731015018499697858073104258849227651323789944835300454317330998523514422232504574902525052842477610337318062158366330295794668031114032600510355107692341434077224110115967459427012551335236305085460280008644377616564774048746685046424944530869419172848990722018077096180964500671699989088933934346976594530127077619441474984654197380627326812534177447360278091619778818550798477737978346331166245451211455594531194932133426150124918091109089853901472678425754159425636540916671141182405074036913707784869175997559116259323380070060819874250379864659826423885481651626356667765910135819713665970924652806657130892078176966743489478372915648309364607654311819422887958410342334081721497544857742920898753608578019902235709973584733560166387897578222244519264157248136696268978742743227487060777216824655716770393319761623316044816412429825232448060374622606634140776985066532076395026133826891245045256908857382413442411860378403013334981671008207892210994534936526658629358295267920601237682213827156772089862568783743415675134638687502275238568065571721342789935352108208354874177078896311306882137738378876642862357038494834025378568086695042676003550479550847585273384168362534250337934083228605253881144339422997951478192458828354318106382306395925913517141351784055827718361759828893375698966455447013734564001623233370750320255349366251571958742159160133955513276700360689075165472350000747334571723759631844495966367249830925710526073872701286487728232362612223898572850880655624955768188096541598055174420678222571082374806712780761727205286374222883164752146290558080918579350519937140793110193833519410966767965638324388730715871830613253515433031945646116794499462889169873890340682924729837984159395980367964209381064573829730856367638453504390008263415548874888660690531310528492758092804613050972040048837873776619246727199062896243187618879158490023861941766105415908043090630119339398077251995955302735623855338117166219288767321862192562317944176674674437963534190608674278660237131982546286975509927894121491788168197258434391442310076753257164047366969689679197952102325341874628315601006591033648852795538267072250213236284141175438016873261915422096139821908724640524020482078622795289754118398705419397492905079523244192268792510371238002484465320455504764842404129167833498220536392842033483038654013127186171731323104694498911286551693994157435810417720864710996932581302545919605577334006100613218248540861249202865240534477951361818079788007624167340352847220493991013538326808046942640283111796488507005266784089839702889991207199280507744114570801860722707813821177424050602196498137895335567953024755211500756061067620951299616351079246401285291702026438385323056825015029396254708687436931226325156922512393049099262984333399953780695319603879481897932911251095466170877761233438921881656907228431463182633846849886898873746420187886962599087726699684138642189500789174628822709569924544003448956560055604081102823494945634993551384539038447701759382145539724810230107932231497419591662008421926224837605617724346468731610625303366017874068358440747740856885746940126184516272585766450468377421430735983318407597677309733108903187936766593780473486946284409822939723829035301999811769287128192944845904811942296767719083299127539352075355064940788411387948784539561418425417736626385393632645092582050224254354179448487687702918114029637470312675538927214199632306748847252387959600488919522766689828677694719586607653343702746618268888733822660292289240708697270435717406722669031686119371842477316051831650725222302558657972206900769048008390385259481780070396268440160374742758585368395078104928697974590882202476566357643090277393057064194842610923806712696627140822105474248689536407059603820973802978030030653066298202443857221431929353827727422926137294232238096788435841837176530996354291296685082678237569060104314732746384836101950979309774251022552673160399005360781205113118363521434068809367446642972129901497590074489974513192586291452133966018482401375908061342121825433955438987082808299411920897539992735977119658682615755130981542809235708997447962897014317420870356961582990739939920151480766097332728112577654526990616329808924057727663304801206069343865249541242690965020779516633497486589667030907673526483506632279294102976070271202861475943420232642790848611118677099689949130974236583468638565052858797296539738647525526767392245463069919137781769130059363834163123418601686686356924802382256303040301334991792888781814379820598168755162583563979934182980701281420695912498569908371253830119597300894626454213480685980279877913596350604070338527143846115225418566405828984959017685013505988814367298871698503118739976069959276566130972747375142893986917802463111816463135293247377596349617887255940513573165729302897708701230379375092274334538008964640861546588926230435065877166905141654504075991467230105666598243314384988232952927527309978359943466814676974597760213823477219233963405216485332358730839936895320129331047390197994458875076443429876388400802077450736550674750722291503750467372403361019775840068453892801182705934529657466996607911629730191186610735998847755123792169110937372702671557415664408696683673373691580513024055333463005662154651595307296705986349136651963945566040579186955664880391673926287559970406283716979795536892127424784521428378348959331341027657546114052438876322438234259633099631733775763210232636474853001996286469304140350156563001889270062755707160433878638670408135375037313757565370232230139339492325384817626118290210526123641726379854927788218211396640684010928218925413782170832933753462364585245066714364385983245490786625354191044832039527206952355304769993848593532877832545668026981183662097362009495889375606581465047657432519851248153168075484814869085277257725259484592321736547791007707523970232205597309977694343792381083118226995389406298686283496186402373375386449303697044657005501697351515961836526065235029562221981514776266905694109128284167726902463550784861480486268189291116499104128518606840367999358976238691979726857264764835361057815982073148501574727372523983989921118002872534260728931848791440144430736684741481984881072824193889047901781011352303869665693102248897627589541364652151256397393509725164835676413373022569361307690831013520501752361765358945645646285702242791130086174607292009955380097809590729395625673595603555016125958023655740427052288840309078703737736220072218800241081531498614848992910288877896372824852696654649288954484202300437530501171695207908764567110319124711947373458296152278091094747451103002249690035451617549047732065187093155469738702901370959526303040461650217531479407135556113469391584981613718705093823878226171181842813108644634868847183429439743761190059041464263923073621896262509083965791348468681301986960040711731091386038586314648851995287898478576631454823703335097074182072198916507731774216672086083302849253696988026125377620646321785438290049901251185463977955019512797999520391954616494090350282439641681586340898134467777799748167013068731370345645840156442628012791803077370289528101608737183512600739134257802247259775856826122040227147340711058951589241775004702302935528083508167728207721191963306349126302357949559680853314973385616899559714672909987963550801871445027718577132573775874632034815792275712903815131308983925582622346567222540380739479176051343695043112498647229600252366033687958788316261436164355889498343863086179951524641427308741709905332840526111789431881962079403566917232001819338683611105927701192521531848381005159258164980631582645839837819665019965531905935830573339583198608535916048801726476168500900144477859857559613400548145009303731056986812326345241365022447072304147454198398947267902256620998145414036340626504191061758329897135160950539248406307858886226729334562361897806966160157930334202505972585555713386429326172663623880182669082713790727420707494895353803994527579073603716986492766454782121334769983816744796489054378253557959161969919233777548989640442077454822805505760895822917612733934535035587957210091458210284341822681440071314567036579754097168161803002293511680806173077103511906029391988444644444454364036637370334468939688800316764025526906702808725715838613897113888796579575100416754679175955552703278603301541758635951783251823360247418189067552137241560167427882526022062509531646425338747115286671890213231977537161993620315713006793640325928403913486753023618030600698625653279656679756231444831759104945079950560331493364145263405860855754506339633144122878400435181264533668507794680692306633629622188080438706271875013179114857036758711999963628971109895493129677103493133862195543457069273660397588811405556033272025793373753536533170816927123449174727321167542345741403442405886972169431537667594995787183284153786028024944307891712620553901529647259653595802370640177600223110725863243855860104621713665947752328560830882021361854436195644739057937690012671129013283548612868767403823468191386377354871364481920604740142789288068610450261068503888382005878532516118617201074423123568677030080021136029010478391551940494112313586216817297726442920749865331589851611949098213767537562586997947634074718661933517903069769692431166635218242087842975132861730077238897339054125927884834751244578731494620916700897345900236568009690800889775522826437987479328360479962846671296088038814015394309991745020037147865519000011607911047858023904461369357743299709682110032249669845447378160282197231232461244454531904107756491432464119133582557839942487612491500741228975986850474642396356862023047423879263483481558437954125726987334338981184019148723640396017617235088202305206587859440419512959102823527644743228883320022478474635925364640078595398724421345774197503654550022751029071595831014248636166843415749268659505374433908818679468641896390343070666568827334226261153052786626212017089111154159914922747635677707098267432698847173275852534040216176099841365376670798073438184660509478081230101468791760243230633231354671424428996539324094058247513057172427954341677206925118445621657088265457450798796847262116466319530382435624854044227344643662517048958893069085104585825407685627658891842545743519676718382442807333209901779258626103946543495605463088893509294762839435018673398617119497937579162514951895287592322191140733874405562012752322894613381503023565050442069686299250090989051196790718944485195899926796196213091264082983789923296005907660879994723594489209749302191140448656394873129940536918163074711583391705795992879770166586008355285050987757207244789994621041041660931102631556654205566228984387160660903013525821384629569322292576837171745764618858209464541621124619351381306846616847376335274472951851454649382711896320476450234388733503672077172112445199803292844644616733901100942320956791988362592071751699548753794171643234745809194333404865856562175810753669583542213806732192092143485819218399368976053343903103320711968053608777727834240545163925084215856349494902752454260857810714044348449215894579904771571699662958757505520073122878498236628282921565542223305584249456393003251779533227373508357930595947437540068476991998691768911157656459288664551136655555042161051601720062780237743512224513384727125432697525633637367460431298755182596095807960822235508466309906816447747539117928254620152512627792029512520609550390506627841775428017041599007336733934011820898823532287601576852976842579990454482291407688172815360700566016085325792078622709329572593698726325934769347189799612755758965297826121632624302909153373292964800989902727954143655227742047745463063146876133848664520409932603677409054409550127226878365291239697828227867352340750717274679055998055064981972344888887397650267657313120597866533667756708314894612096596438525088948586140308188011729315379703313340948614434941243669054053143230353374135257592021436622282922351963104216434557412303031915773786136537359950727502244828078363511187051254030901396614395497526595608376332639458292527400353145745138901051386603344865775450409068026308851083509481496182043071351473931487906971528242368764602465749161999066058521499511820269317095406133701668196032209851345565324000364947049350199025757446287473826963313494122504788515092059900175451426020713383266751728372446652977101111602883365744413115410977460301470583557086708603786319669760981241193104266863404711955211017871656560240184313007759051550281379375674051897037393615693357826976100979579744808951325022664237168977189419231539964808758853390873917160799645234832847329264259199707497620881889964534943063667625285801574989799497237739463548353803299695701221825127221913352556529890142029847708921032356993712728642672523568093985487433197233364687774646881542983067398563337743193085858910569012446697373908058598827292768665657029475501615797182772773242576195521369097396988443720349873348605826430616987415227665108736438358296269514283880215903995872126783566758242706590177921561740511404890629646889546867016423667156866647935645120171757742678858853981154168199126824136928686367458440943672711905879031202686616418340620908761965368575826606684610829340032529272663725990057201412691338173967881611053174576114331579696593732866219630290471682383474516881463762596282478799533548858531104427986349196087643276501807892422986023916264989709990044871957813306136981194277250089021229814693538677659265294709796435813660544483309104469319228747728328910180364433336767047380051675792270010660412553765520816930710541201635978695157074679112038263292222250160442382949337055850985361983541852054481910920560079687944426364214756690882732547177809455072631600192474508859384013050988720396259805308564615653646419394171827820603342793803778919744289684493756536560774219559916507257819787343063649412483477784086622839815110231315817250463494639048669097501653773012064747824832575363514647366709211794078523725661782505459286136534097973000439439590497880051511641634417708703089253354048213397441703356679664534905093770301139012054879493827926858783190681178431802500671918479882014991922378037314770926554127385737689587466462440574003805842172452871777681937541913490681212433475856725614579778716500100987223305103389145127366923790897763284825787792253988928875994620003697578473467405617346675480723449016081920379126667506056498493293284083667132370705089634408323216544629272913546743414991448064438578569119563170294293160857090099201811617526889438892697302463603893655204729286237143677735355177487648454376913894165650593862774898076197569127941907382279250020513479339944824469447889737279531686762019857305813318764203114236705916228550765231438112240596243110594880028196988593774078326376153819539603464128880201381773016229461963150054359697225547766737830124342709309741549151769218993417473550027416626072875747387106233303771488328261730246183915940097210045597915590403079613841113552163807609520635327182046935809784563954647321118506234136527606461057950396139093963405402653388389610943064808103736835982008731817643677663965788551115678594335951592784070043047727005311504432027779687885675704903697411318049478380164257690833398969257100881141856984970360377905816987296016856059488997345012602288151860820000318154107755157071708578519519879034080756125843463551523920876476746255871382318680418388884234993397383686368224005909769392946044532750632613255243872281636625135805117385379190840020635039228002056718458978921937671003471381702670498136449709530748285812675747386671034852218223721785900706657134644303498646855445473616506992973555246736621918967541668239635032434775977919295921628417369490681808590114714645876228176457512210458692870118156449517560322138211608210309752387103511174889309690814937728135622834337682480102740331929790533459989219042174539753642874006751822380573549377177802439454767800513528515790551870373418301157057303412777659089850295421236153073862117954062826181312988959488129568924528013712184855971142257759009249547230500274635262229096241378958137387080122520800931737900074249731578916269451249757604026623407260475909516100168313141408067085803925154719805434860798801647722241788912556889012161176119781385843951876808533232331671496117184811939375735956318431180595184826975089378320978508044037974831211198641529620870873108338175253390832708400677432026484547283171306058968971204790211991688849956433508512924244747529996587889988949044641971870355608264732511840842798023038003697330862811543134686391770537412131464589182700232149369322980214676546051412013334467680874582928847661127731460444466356282112331404374867541777733004216045003587046841113716623761772559417891240093917149801237219614759196895225802868436835767300721124496705766094671280462573571614781226567780138950105423298358591267752601330403637732434236292716080531231882049618809540531830654631948411887542363136742970306009196388213737869326826400267249393179616654889919088414200645360610671943839314359951253371395986757297090415806569265485039946555969286641452813565882489918424582083970652361478037962010325763569041840685098469093355681269083517334791214621498355244731759787012539951845512300451258532130300154394864701912574879099282703040933908833852418810213592410332891967350817420506464849871765350093191602500783464925560059686098342150935200322923371400114407843184713201762161901002115744838878746065264896161409478576106518438247755758471206137673927722450324668230088911767547400119352989044066341135076106233299976929609780964767377127362526771928843358241158732578683453993484511282858599526573245088805034407590640671029111087158318921084815996126760295600029981653438186434220330795858404519951667100341727458714938003470750615357177838546803370037720657264060100980971672866849883952251302236577552315330572832949419465475458207180339916926420896935628403385889732249763793399710258969614766208671636094366579982125061980555369784175440536186696780173660525242480199551285786451343384329083781175973257311094315321029849573778280988163195863824427249442727701982094180550576393092842475879503265045967209969472623947169954648685412108977259204616227524597054649972613845042040034530273333923283006697540269223053227473579457029817178997100098967556492666147550368515433266954047980112708523670398518194119184789367778441183200048317187677949279016846254240833479294308224526220888148185355096240718701697630516027899006149693887840503089117107885747659961158876952819929504051056004234207698970086699834834074296434301238888720185124698884835110594799452767426841219654526075793164770872965697439189925159461228961583286701529469060471426519573454322916401340156291997918069832294610316027434090826283907694098351487475575368531629105848508552417552812207077153865948526806304066367976754336223811217008875479562718235508068679333164845005553004160456915261219511452983599082418703150554114203288622875826706505841500947336414439950063693483707978277676670816620067098530746150249651726837037628553190740357401714680753260085943994523266335447724152669726904694613604968090075528797300787193300467425631487165950072190626338050367347629150564919095390562260855629860683312576012289966991096160100178801906891249455250537034493794198933888764063349207435155514412881945338389144945562548384998949827789847192727178790225271184460641005299534243891792669393698381337226238168963165428021799619688584894932548284001054876215497610875327753874650326239306948932706304032756818453603058968465498238493563020480565034642144425053146168417726399216879500472992214375300639158734635910094658667489960495979334602600612332732829416684332889440372365109111459483636703328040583079916984277812742352028927102324069724153923496565443138151732719146217004104421933149066515026995857371638492502985808928036504519227626635850834230997270002801649884472961750339222102983834370534298488812583549907501373746736061943290910245057869611020127253626603738901114682602810017569425804726530865233388089308784459387038277154192296817358573501314066873066762667150572885938185354655649889483687852537632496836769398609832398570513622506462136669464873529982185230379460046957632230594025828963224777162894328372863373214771858093378569145576775176600971185448639786738598769690790896211330856085973135498808775335136329325868173089950538751122780736012438872671439799474755389537812352559686038038126159211949918837156700073515020437023431716909632502128925067705284166935332203440697575610890725869794977808552172250053927914173709500967654871705673709694853655327336415787553062402199990254686495826225199698154633731534182245151598367018923845485784603166381013919760054478330116519820516133829852574421233937770103245168635404149790901345211962525272763712219871705550319439329318629243460176784744954126318424299476333051762198077020802098572477692616457087079474156466050258472235158459068607688991554219653651536868278965001589577313963110051805172245361651824380913794873402224345348835584309785019961887472145157857849611446491429444993909819124477188291000881550533170732577841807270595792809235883589900257088608634040599843238159164099883051464064423991435603381704087894994479016086115784515566760380436159188580441117617406796918772875252779652878296579666813636637116323271248252526904590323001865297839067751090790831436268891019007754569434759644662549236683773348091435022348177471844697379482104016122885871372928792651615393823007140084252156145046366800442893219775033931594705328031998121041600489462019912743596130735457210145361436533423549500182119106976393634719466381232560849951389787023475581761304322671872375799585075638719713421711242521914012098874968487031716462175426793063226373767433481113572383008737650650659048272690191922465708111643926652677458574440898483220308490779716483716332978711946030515509987101565991491606221405207209979086120425256255369635863574657512262664190020245036023094503823599458351962402086310790298134178418646969788085518903029285626768587359879517483446752104694121174003857583595262058207738966817293792756519151555486028330512071304883531572996412872261909084468643153253338736918108242575154357199311630870665610900857505729984184769828599678110285377509733423750518728283091114823883979696969991526133038799919851427314189798486469337158953863646136861388774395601534364073245756911637986507762895957540363964941464204308598569798962381957546936863967036974475926512036116521606541601176054617788748215387032337835533332270135549326214184347475006105503573401631919107319202871722462829219017215841269153408119070723173165037711319976971029409464116337333230073678264700628178098096835379178475104199301112465656481573733304440350752618180817891116605625274614685496562991860245477132948329707459594792560145213371257776944531306324656940109959113689193655076132486812233483258593381284292647345633174050525210327120920896812589168152219390472692986215442793850303854052751081899311180802452249078444218536126381419137867176436299687820888722383520330102842718700502482686035429615451378658516059668583442884149134707679379607360847963729156208448062303346429291727318266399047501278900317100296334386269376306723338936527233896403794129066727898155115049267208423021954562275027467688508721169906848704563579957689357827610061005393291633725001809853784244277047204979475848370229551995916366970620424214177923384382105652547217101650711116229331414189473373878687354238935281014401283739045760110648694027154603344536640234341702055679286041038616037223772509579104903886672677293230592780451822559946214790829039741090919053286918754099019458843756926774991931664667285614797297931617214142003177642215555654476459239501675039423971423007397380965721978725159672919497584267134565135320203921808758454775212479173401650255340359871657533361629278989965197877025515054256535792683898561052988624622184000629461641339702350026125873447726015199668348460709738490419485120181008697452241261829902957901700023837870517524970692068147534959004173498948347670258422929213231575359779960682130582944767772959414926498697764392477190034618492558434938033882645053695558902606779036333233556305698093230033594491936139166738498417871811355610438271977298134510787961125107609764013642857862302643591836919043976199552306770658303977746797822434851697156353912384159510996912293776623471621617301914841657823361769468732617512560916071283631624362995839842315795256935189484214049333397787408300759790864572898945892412328900916227257766730451174884318559233917626322587602427408899209536390431786920234163383100421545000126429463909682144594611958788057755626358609814167881717910612646216540490273309530937280531356713590885968892708043256306605666827331649282239791947366220694686451451680623422289997157446541553804974299925267683474543550696700258886606453875590426492208027899607455295813415181145674299340250258931832266869468413324011961581627415151063314551289170134643532866048645707918087281893219912844624579527388667340570348662634160300454237437218648438001994623500854017804933505320233525085850094848930726595930625601067048925259677083866185844081990228747957943155035002959975174972938524895407965681910176127314580925563240348037698959414923388048276099778463711990276751060795700671231699580372945695580363516774200936100392207463890272116510267577279640133508155042303715916934984988636802910379801810661862047461374541608839255225869759851212763636857394042772578657005122140488559909009778825396090024390844132758450851681688331386826083730301479592074242335387731109930491793711094843665690775214805475379208496722481702776045484932450633602665897980225855651993045483812981157807117408039165091456045104403994940877351812794625206776620262703372748660622301240851551078369227279304708619031172273407252328484511000123740640971623123655821882370102179090136816058289351532875948944140562551360252050774771557228444806236792798133626564367943982902152211580327189355694192912353606568092072394864465203630547875124572897928394923041522270526464933323896169484571698985139292523397230671165317820136270327920651469127811935377184320431046435905421176641548840856545215701276881532481294068896480629334101944358155334439042084424832154562113860417720267140229339581573888208577535388266977135377145063780720149146974186280723938892048606578734456366010769917930582371938138079433317766720916605265598327888230675624030463131934275873970960788667881224607120339696393256950398208140359597832087443055275983128918346257477397041303333270239257363079747862343138336033896039155929709774707104829158645491563184338549841803518389400992397382841668053420789920654493021418719579487498658840918374851729830390284595440289353461307896784585653069582739616777301603363938702827333164736672460098767596675567193861469815587688679907114634656620797598701890996221314397813870164571520617955463362217402200692304851190777107200257392499182492887329218929872015928463575231247036982986170841828930916362033003257851749155310532234739343274067787156184616212346418267156862884546397111854752512531285705696809490158494376902751868990880773238178203403185303253288347410467768109650113214952796082082873712781907210626213376088604358192983046621918583288100764059949123663782553160735047151246120487586479410072168633262521532029126076467103425769033801251286369263821260105838523274650165759592645986494093033580897870117315629527879349630193010131405376702906073895633275399250576228977721433055457360697610365887571939592807198738552371670457974830370775334166876294649775071308943898083466128445620105565488637537999532785221430873746469579658305669254670086678919202622093870153004411693324084901593824419480507483186303841901757471314818324305724951496926031066849218667319876918712370473888045100325817281311636302083834502604237757556195862769553516402803669516639546135024124885168442122534487620712069403818204142498176200964679694812319340340743571342205272993358543740092899188467510404275846296962053292565727162554399421245234149080345928691514998014807256211904454737617577115950861632080188447625500256956204256153979909167241743278246172660920794100403696038163007619773134339835144886246148104551895243464855142263869612488140266966076482598400023982772927922251435517102811969351666958109528372024784060120342523468365121477187780454434096495894825689683143912779955498025791421010000687966482708238510360464044855561405128312385245093358729540722924497230120404103864086900272225593786085996145845493188698788134467389383020280956398062995908783790537452760969842017545854840128976847696058106786492111989754905085450435403376773667935606275658097101717938755488385031191994319310466447367173360729324452997351819410052727202803947824011872283260459060554207722732139841298649536987314425847949123244081131646970834548071189365561541343036715495048412626087397182205451628969013318397421860275239791501474259689332277880267341362384750330777302284549882614418952724438113856225971165146854636237504280520052370143661482121848214874155511350096927673264346317350118988866182557520334448167371398986219868168680865217822710736856014580324220269359392999793002619579927913594933862544074396082560887722104959264104537625646478998299637591781634524518130765043308945646293732791858663871000961702395254200811138701593654645291903532394813313246077243354410224946097965546387203481947847984465343505323771312153216445600080872707405973257602596725916064352139353873477397506597506562677610188333618022821100852651715409831545843993311786183908148837427575327242948078233846107318488717259401931701797004508622095670713884370576127617098954430071817601518015174408128445032025767138779172138106286267065989060754361898796281959068679731862959468631544088677070670275534226894827033240925644277203005665837389119172716070687220214014690913010642768626017886832743443131295377976362336982131299951675909870976076575534916187124006305094157460030280488868950111935060354364203457571598317853132257206030785083520373946619015218241811120638916902738113813480007541282644335779159358873423238433837683784862680284070120800325514086293465221040389435031391233177060748978874088069081229058459637910519403037618757724573626386685505934960691145802764496430729117256196333251648662882873552211141997719173400853898074160886642852516189477634366314122350740911049920362140851827550214155646969413158737839401967633327908649208513919385391152356930414201500184680156681765215439466687850823265869646094052335749460206310727501594031992855837176641926019999870515453600436191184076124798542861353464377509177152701267551477808094218901159838847959091869293176377108172338182509353212571745972801101019029035636993672014496799771294743367468466653189186224665741656245466016370923101567150715657494118364299788769223328766384176209877600437352291343554195201714021951247587091207602363267051152611123359392615636734886302379824771177578173128410105765050382693855096896556368690807954040708295615963556714261843853038231595202518559041549077464850449695997099763504341299973861591647565170904439267200103889028662786534210506539857358049167666243960003011487371219504299323215058369564165573377764307851384597942878464826873133327026101357119554640770088059275710320536652867261638776765222512327083062889177764046320545874436594382251317708608353755707787434571638341124561649449375075693363076173618678837696580596039418011727894871730736803999869026136312948250952452257759223131003471918698760728278469933622502154740610994013393232218885234588029543856470319739427650057153192308244715733789464332605087669985366491898478758528985966386285081858361084466604708665886765057677897730951221834165472112674708472972061836003191377373054662116727756681967812685026723672250242304634309355893850734720562835181639587781792516157964893730241851482408934260949307323761169474487989513237585717651674826930040317157212145440499483472709589037692767896294788245095744021945715820243188726064509343907024358937694128481805486588992188088431502040492018142194013953804194489314110800733293864678062725368109839590878148539902108170002008301191959702022083884792468665391988707306909023185858920120855321620924575997516944137775739178406221542417229574487303344251517761360635776011655223933605742490669646736830353473201058943400241554064719563614287384199716488629535899292854024653851230868545711295896712602167086506265700641830840721576337784162228687590021540763455573790139558045289824445081997333279752601370516294563836091922788919824419141905666709126946880084124093946471254904417006722754026017366156798397581110682555233491456652566564596993320478502658199381333402247062747276735991146971170016860987850670691629677934875699745195955778233211843063632975114113088315113078890337371391832732874208453822807482616685508515701000085656496243027915153491309492900410902008088259003407173441772627849063319757177102818424623026376098845161443806841798496546426754850728508691631593558770027787288902493171873668384973064370150034067635577210272464703941524283649408274765906257348701082524357028701928543241037165978778589579994157858884631827293607483038739758569574992282930785846904076073843588216117631673966034849838085746218544811003215217796826579783789120910592969360840051271038783886255305749253999751157997033799545784803993366936643338163432334645629940748713817843842662672851105563309934247138126056234086385728471345000539257820715404087622651576456309538890351640230563413425451797942454235251343307995622918506619843247865451897160945533785770788127125585905774666244798179608517274812819338784396375576375128890385690238248510227962209637497257036226399144147918059367928233495113144378885505634585739436055880314695127946204706979046302207478931083388392669386079946386878974628559805395762642552875637148029778655048119273977763858601794565659320970976103227816630326463406524054942732554239413460088269242283282304460765293483989042807301345285366422552656714885910471527287102767761318257733493178650110587264101874170541089541326598291369779891293244717620065913502490537312628431923868768688410132218302563572834319039786553181581026370739646402939538377220849687691222788286175909434562943724197154872181970797264043906742755025198923778056154804463909180972831482006952947414223148798269479563029835070256822914399416112675493536071983486051168068210235185731653400805131005663682642998969782356832981396921570014982426300052110711399688081396108996981409697920195695094566862704374936009211830617613898639830382376184509028133814417305828764655928161620376717717960725520148083001987301246374600057015586069090815747214432948964318497572587972577655712157772939253989763021516219763116880583693332126080464009321862062815053813320356409062085917961012045091077042095344681756763875256786883652107687570979420465316913835488219459510188155948585315415217804156826628224804621265139015175797820767550400841176554603958339783048629300224266205235121858598213236613565017289042367840607668455514452528463763320760442231057909412439223469980448117827413350322367083126147213821001081474652121211615486696387273046322834720075783210994125393490074987347663059655575382253556213461965158576557401819534263751961216957114360678346644366511274965837680187897851585621263137471179723979393037639435349805162788547242940717645418552700822648872330918129093283136996662065341818137431513809769314904691599609016429646208501102682414093787177808263561126030300147575845733233709400677477500803532952783589116834666288995363453001095139583584559047299433839791871334790229018702942070555427639850610889678016497555675782500491941301711670034886275838551789432521482418095089288158961285429227256018772173566868235499089928606325328861730352945638846125454009757346132280388653608731310191885280863065137650065953408499363733255885931740541594154642041728139818710935129096692649325750446886513663769263814154872982322494724623152820070154086884166971155237546824871664818962961391479537212926654126595428361564973465062768830096856380924318160967764824132424353811534243751653520404424323831961004129072601072857110729988632042756997864229617400183688015541841418084975977505016877543605734036768931316100030797813550464805448860536430532033447357785568745327900313963135657232843225604473786433420702757804072528208398753015578132069696031331273967383393632518374772097622011544312962566459434619409920146993492933950795108851758710321268212801127502549067671109558391060545390985604822726168411658743615678860871287953016277634789817424822215686930034222937051897083339671313877463120284311977570867491583667986997384077667664529086287482041073650181270014529008646626472976469923643666950586813805122074761336796867727379099021089344078962492489609237829308095188340286605515512456959408421510370403928137524909804445738503010544244242476700352640727525713856754216498404966907593822832719436232682681959052411974204448306107403326164414183131794146589193290743616047352374819158758351359455445119340214869268009394050489007011889198982535956641269799234949137832889102316257510000925915749147696359971519883176598561060771377143968271384592088102923262149803130405568134396327799651975875507702863909069835982413351046810541709828236964862123479008359824263841369851609380506357546966882522218791005412205541044189652004523023954563783218757315323453541534534596403028579450743981786598356370016698525476310365739959154722595312119512039747553858468927176126553172447653356920756401258512271494365280689764218199282287243458390235636406577879592436237007338912772834479059386228534524841166687392091468395343053458676128011575623728089117552751043158959501261947927853930276061242422851167213862595050432203866734998542602221295782335276327045597432103263975632503236338803243883404543567213329106075496970990327473462459112549980613391890647264616977905077082934851453304903933540637297178927058212649289055156378175558088032941666826171834172506753741523399754500357970644554310336568029084800558744253907725545086006752073153320378216056790980221767390288704835601892944338737951868332777626062524498151775451392155182894796607243814471564671717926165332317779681796585627095112663754269485938474398751134005929808638701106614957971872851909118814901694028935933111744702006583399566496249512638685132629181189677861650449301184042240518057174244594438294912832640633948449095189450972337674946950076483419666278828237552741613121752149116392700375568637354916951836516919730737635728046508142807090294751713886869974635438120546033514866710616539510835050692497135414513390874562254901677102856284031003088843487585744730009906649439103312323684129970946554860377698089432336413008459307768731803407171278336416117877798442206290855575361749486707535555891216278004727296331187566861681399702474537783702707813299465200219501196199576085656706504416146847378873616417686402189452694133563959928792568919763292706135783367380875354481792973388630625984706561114956213767349996232202859263870264920534365821631067972840311582836171904155840825350231158263949104743267135213008361998494685413632759793601960059832880192711266317582808995959510605598131149050741261942561541701937777777107348799651940173282752908714370920330049456867952589203894138294756292256086400231772182773460507414009780727200594600275591060220015526415670515894699622459453895702898536569537712832590940720890204809357321630869909371339751709908229704710991385715336023327595256500716715554212181932439318962394736745616212975264847197728892709481556325770247668838539022897790095718283741132164366831066939777436774811613197029412316984023856665406217972493975657870947031810552601002098470043318024165686042522289489403855132182659158152803994438989879456734283780682028254229354277844956383014543053360844715806844728457038482377216795180837687623165559580530462976637024166024712722045888548093406939224780888844663389042650105392517238677798268678374201737969792550994019492960983568743090264460173348869076260044614428834701574310825470176864434214358332119826957911991864261201565691084080895023293244356671849403569943221027093425286396006156567992302088283775315754856657682880002911990251979668411807329604337601710856827230915274670007321099609996022948923712510850284340507141139572440616499377295481102957029066206216863894606854182087314371010043338867931728725660085305634736183010269703043422003031640199255517173651209928048437418989777537730116021158365945887325881644461825493103950204036891707891510991939429948974483817783131477768173099094332550661369314561394184669636745696384598310730651082546128298984524703905454011079546888509476216250478555882045749023255571215388735527857801242050033897538438975243225482796284002187720140916334869198932351898227665318799772186050015800054120105225875834003621866653230176518477338653018032290911482610272661504709276582790623178929769425678769256257596188411049443321378787009370551643498427088299299429493277687663153865766944256358398193869339889648771833460971428905381158251662728310247981246635602258302571433723540979691516392098706517215471024414125976778287667603297339792755139912315598825085926845723431706690587884322572297479741889063390024727097118105802111803861428643738406561851391764589782659810849552999670927775359042814478684108333317271294144652198909472396062924470032444048959885120771211552775930121905577516532615597215376778244802890157123636307003647921353016755434490250328315652389393256532783487087502016757299402072209581071850537340925261153851522230610810337588778271116276280805055601656466068843271306196811776379025359433406749041111743363792246571210237168658880659409460361682168037892648998797463096752405766510956955283097835596623899826896560549769790060812647862754605057396715108693670661968388122658496750641509288183472911338407010542418814211954670732839818588609453435138946145668517778739936304235365083845894406474626847768144801104674470404980255033326152003574890903432966124161872676667932629924781730815575544337422490800292355393789309046257103862066836715978252040249746648290126124130725612250276803168568687455406186627223379736249544737420174329130567613693920226812973077325973583353759803628500141976060300456027335342648634942384862270975441271506792348914627845154339360381280786883678930283457735088854364713413898608716671628474648905410837865153750774268423035605358909801574871775977287220706064640458993344409971600972203096912824485371089214595034989934182626233317067991617151142012064200472952421983380829490930691513355427083756848782537172068179345085044051691622825671743187328551722748428678440306741800590682845900487598506292129054403723598444750151082855502551411515951706804270669314051709267045812090491829173623852874904386197071814560675221429902243571710187837048923076173906440952836935481974881731670432997293033054200948731249094886621896000568455990509727035342744838447806463247342594910165217469290905967742926722992525614089294032568514712847635364682812097537806928127318025866649841018063585840115777643847706073181424537333905127312915954399970134457111779463792718316461639012597391244587473876028700807703852744111664399712177792359472199992394026174563962891339160037885872439286754118360278727007584481286869921640632216340274246283919545518118077937979832257033185644336168523214379450889928553725246992716827583992335804753393549058616352964640585719659606497945914059654678355992811446110220064897001236343566523228379564017537504841153120197196341358674181325929364990130428574359475434699772286320551643051150928951928709190430619774231050172839985139276308257323977996004445342879805088028712453674232482953502522727963928952023801415730897259361921983136365920239131567932085155949111882657979440407664530833472405128779228874217795497946639999642084393657163592197559514340115496503520257827566309865776805970255760845575160289072145283487315948051639415368000452345431623357086464105261044724539754978050250452628663134431844218421615682618354959732427402199054498214312647518078884847693853741261498667075341767781190877701162988550398624746950824671640030762898483353221690403421698564829235341515397879693243767401344432628481669355791604299977483043781807775511171004371636683031417208646725195094658004014207186040079585260266781441366230310273794842467094282798375812613138725972627730481761690501843633683890862040432150099384612306947670406820474552404483935959511745031029806727803830940450937618396656134014171458574364215318329213173294760918038808089282599104125921326866136401868764966919040425184034446050960415465393819310392949016767694498951351521994400749062653279515332744816527171674089027175866834978494867094276518090221870911977055580480499719191884606245025826836932636629474814629067014695179120299362243815783219247465123801049393736121303931170685328984083477862168695563996387214506883374939324562300754581591897713504721958326473440386960559177631813285198746415791170578984129746227615008545938181779913217369650365950433157702504099369473662804526281924754560983783687544124548337097739849019437577910204978673588754992174810674687159143079647392324725639889532054247890397898498452171619591600576429520188167890042654527389416112906405699603783520212865608809748283183136129105694383200187369082786608149956735477117903256934096009398915204076144647990766182535317160561319881126285956137036227582806473165430344752562359536847784053475037989453532766747010042657425244615701480123708931978174572481576003436440776363774759072777606905494468912817239641945512220796954243343601445664103559512615133539605175648329031761131808428005476999437307999443016490541772622292544254672243775585866288847399194739026750456946398315964535019149367850697393040542108918975456353831967019336090556838582203510998444811155570501564505822756603095595199017376962955282397814426756112401675627195920322326776511983126998260438124865828024809164433132177923750439268906481969361291192535208880806484294416500235636758505749535192853253728697365506780785962936369138329374614126549653962218352964758048470703433152260701013540428662263999088730160728015551864257162532255482070590182775397819483713191273127909047140728233568583063424490291510188981937491659586861278051729524138077190016950274070973011475617326574441369626952424747308497090084520692688133944853898296194492900398055539703881703973167275960223523431146874676529452819751757324597539729905571877162962076455617569932445024157701113973441983253178940076879144215193989013387631968247123524666511984513546427480899849257431039897376359987194751576521803360207134931180121501009100474383320952649151647690596527748587636515920168958521094081755733765311436124822753893107929785083360699843185947018461999220719837968424008525442774809869160600736884597652788954488656215963842595987789207181793621594752994300245148491689921979100822713660205072128769734584011663227749885992355144892966511819160988041104399678248416526144952279549737010201133372622673342162559923810651235224119133735364595966934121243551385870776804737178039859438895148037045616582846257791372194413046018854738652943796834590704204127709825767409481996848256634548381670006004498188648482345016908923668387526070044899164298801840297659050127695281735163906203025245916930512764337071803971092319987166123051274849233042471520997047300445526249014224702248129081307926821667359961185809029673239074683226292232825866897416592608233935133251875828780536714920334541221492185213859662355098806029896530688657980330247323177041439096176687876377786564514742912403106286078454499632052093067839824043981021348944788201643632427675543080351968930839760794351791682950363994671718981994009657215230311712158454307034418890848631561667657092290812360306039411066720685986275378263367098774458536677623912528358308336693496120964911170085868194442697898571000106379142892562163845435645311908309950458856402822467626764093238488271159807842208641330039557039265592028568215327894753081068048504394504655638653013946626177641202535085685589054421077966680233362793922782594940323054443669405238212491284966637425234911915190500040376077336410974175324741003693984031590931777302537050692766336469275745548309965251288786479236238780173078967058873555648516833477924571959316316681117801301810571588980677664328619750745222542512039524710000806147914219845643003059017999019844703896335531640552300607814848791178496550001268113777714649568620839074798290506150670570856999662349234070439682171810412457784797414109553480068955869030173488858099492854964797515721846123925991972458219653332201678865773387478130459213027890474403512229365082692792170900921349187387379660528826743962509187274433790658266927583872356443205904823019609581466669249698284477158397090760885486152538332024851229336238078648725934687796711402085992503066185906890587855371682936518223291257247965817707233342295066113635700690841177818296201367017135856218611483345709807259930698486851454257463929306355668328316947421993939329146920933542261346900148548949499328455571358747055792368534540701123788403579354342973750378725478301911122937766006955946411752310435882794824202038589513108466551781679709133684803485259300947276805851072615056360124211504776776637026245680559622108480902412252485794190408170948252224072768392660841472568996369481789863279335416506285265829430137548752083972812681328487190056983070199702353395797474220187443127157578667103443892775453778736782927731958552994501348055996631195998698133987553832048272632203541008577629096787545737511432677964464234103322136489454203250936924383504533924064141589074701469994790728529160254703240004278813006093249041437641579858240802014112429381056090546679370331966201151127765638763659066175613497725226767737506928130295447811689256012487137399964525886185707380743986212581084737455065883430251986933204822208137954292422393073739995193370336322888888440706695545181193895249226270602701669075350925824789371319249920705376277859885922705229725068240271057867364836634644518116243557185579770026138767608043904265436675358080448583861241911755026359516258327877332438677276227207559377601619622281954087782065295093585589624421337684237372527524901436137154383887083921016112688239453418843056485265163614532699489552608524204491463906181187900716689067086059070571157237556232181162688614943347921423802138400109346479315055830489019752095356850317176277136092403380877504506630086133014098292764425501883708421683806742900025950635819133725318986189499782336569775050707212432325955101429976781089026600108351953402088589875499992938864237601402752561508192002500580130055608938362033995643481648968662307625722455226135550038152093361056448315809026183817279633325930790769471378756338709819253266688216147643040229771003053864154290911525939773743531247403169570630069350403081479270431101587596058279218585984672519508963181428209572747954406910769643312218596584259352997521220231759419026932237736720150161740161817667599603716108625411932930331476087694628547866856784350924838994272933115141268707867403706864713694629661041168880353524840504219205196243483284629793426090840339630137700509191731034110757275120578503359805100035600547115132780110421609609807324284856546596991081290520227631642454354862215456059560586725204229116174051307944778822433151333752294644813310662466445803144746165374638077082905628186441905656882622962205697932827395073572043624364787713061514220741161732548247680314444776219746819854136478765606937901156483904960090455173830727480112281998628225350598686110775073603181994566927691911592832696319829412877156664133751825750144889183628423709299410377241489943167445283356671460682092390903292761525681730802734913613401141723203604670253485648439754641904134989497123255454007851843053663045834488430956649578223732998711046806301600751867710008399265215773509587901781121615732036645076526795122443629400774694141218090631432532509367702365608760044226517785716683694583354936817602656336201067661269414582345708720344502830882885018332569276424988994057768243591930439872160927866713654377046722248365520572089475644055580257084702864382404546629443859529944609067088476181527020810912260485790307308617478867671844148529814954044070792143863647540677993817741581028022378255446872127626706034592682652494502289948954463149629352542245967485623258702271764948560594078680947323439693944909905367855826165984121248827078119273466363538436537130580753109874049043864209533321431346883643047163312977427184306595023105902747181318510483054862007955335180801325713755977223798089575021573276800458853534208867171288895747834099791570885622696166479150455739194716340718552973479213832808962008942074941619683050504297873280680942246246141486680530396177146956970624944593578091753069264427239176381112027405459198338294946120291649481463899059749696557453373085094237886706938416906604911374834712184217143648834894867054459488280372625905108308134903394579818250054401008465844663468603362417953951401216087649073152180569721457322761339744612458894409372129063168319421612793936741984262938995400988273406893851115413591052553132134618553559759497190246331036552342449791891734130813855108074358126756442825329474725832879272372964199602874734805300923978708419213095505299397213357191064776582388512485783952496156847636711867255485132102113209461225884706863559254543856277870624666335902558900903644002682024517209586346371204054705318175271486889596006914938938198906910177967356782739022986917882986429140866131207836721282510091147655272233144179172400550378424958732702650054780151571680488075301557168250599133187223651004667285521983958450147993872006967844158609157182925034784314797345680707139193083434427360694354682611593780092393766828880862279109827867990107593346288019116264108636771989022467545479440319709779199371598994003029073112077185849733164351326480162350998313688419547392839591791449176795421041115690016893386311975411649542680523806929626442080182541680336657410565496692279462369226826362845876507173814051240319809937218608690161536662607910873546057679334959983308134443535644902481796407818078110558910495957456965308363237461630728086078259051628079094938105379430327855014668235395614156191141068156554362397165471132144457582077373782064604053741767250271560163145973910986630685154117723287028177558732004695168155259805253062837537927382559407612706099669315161207330985536542954880666048757303605337922882863070020178366690550580642266993400073161956033170178517175658492092007464159656179173797140497256417578692552233069383760726467001444878455421218753836613077802311014437372967439852719287223695511484412016389377429463557659538329665717402957001438375960046883905403258486221058583202170630176676945043083551353313689695595020185124200095810533539413428898861667711414021822290176163873604495247645813856909111853507769219536225426135240575371004661469044766607643507820118787227539131510408417317212676276668883402833790746040720365025712276948165993783860259117726096321056652870945016177694788968161667159226625021465509487243573519221192889930016863944986509582308900931538525855112689547725185779753253952075249200164871284846190034625313805433762520218731411893310539615962638731262452381531533805852188121974605304367195197974305591037668803039670842546743821271475674375346853324503697700844741446315743645544471986435256628407462293790471058936580997085808974009087361471425733330141468236734578082618295618990493256621372575907865919711307708871806790642807107651671770075406368484863802586480060727269857144463645392759859340775057363298986450087587138693625401322835323556254270416124037922495497231133537326802326888647584738411154971609962425347668247292673138010373505952122490536668283596443054753347551988690205624674248973380566945256983347000346488684387875068986062053933590931477295394793217599957485836589281525677704392822405810145161720656130274540937641338434450539656652236913766526138243484580668719741688525940411251797468456533949583915660051108970087621881629550339472784858722194673242969352602294398108963956318250649992037052523589547611375741446096819483839043889742003806355724269135335568444593070944479845254839230362156108341465386515755440200581104783473263537323104865484821763736074219836982182320496456094595216077794797835653497724390603411330502440073053345232927420600182944184147517170129028784116071573758969983505434107908540666459784858502593326034767365880227547040674783242669764986287270293157859333119817305398199097755606724509624922332573770485244901645824591402633763964795590490171323084709329851581992454971577805599288353686182305259130921848674256591471045309342188487171899736172841209651010660535359629498006399361748356401875162418342571510183781566201564570130003631070958723816068880703642404314630040992431033360602907564215343483180987801332437704981873821752261233196209203951777750244419275056717686361163544149468562417393344464133745799417587674936791663361299489498862423245511860320774253580626714810005468123073292594987364779626191831461919725091698894222399899208738729624703851062416962515493411811310099780735682979288758203664482040799783361559570469585005593085314607761516255672307541279987660141643135753738555941203377239635092468173400726924857654424833907015348828004849106021218795019994484818605542652355491267710533190708919988214462528657589140643448282564830825708791597183811438683013756161713548644222382098083807579276352834386655689132297833031362250636616009953646073232053600380468333497028806813146553632612804828834011859387323920856156368131607639060707911345627117857315005162648031624238628358496504163359270063988885399112799207840740487530094725051510734076169893906486320990042830257406047289202523087315071921826880157471348904216240108526373320904554772183863892012667738964455734615449186356523655742198725085145105735868470765188293880634100815267421830372157306501670426760683185020027675561218207407660969864022682375814577392489214350595178838329787997869430475338957943169376098723761910761358549211401255176551845835798435414935701584655548180115774172801548377673855473367071281378619468095261954960703509640802232611064120427273066130524454619812374842844501219127403825289652149200178655547656258167275390143337476968413538122333954972575597481075374111020161524768086240461991631392583215711964342547208029332811172705448560851070812306834728891762314364936651228399740071078763672568494446321922056275210278560990892288504668483361402823415632801813076751309198560383826847772402451081453832827079775615682813059998242135912736481413330043500981274564257789052402270020751529733965274459178472083448979348002441286903957986816516382021477949074100698696256140648429924014203862356084225492086655459053247159011425247417503136690224451976048426917119550496207404889277216838976861659084642712343884648468092223574541580672868651024523077757719988156222947877823026324721369775276174242538321423723483718883749252540035604611443264984677327070527196489970927671167973836352217054284283879115300573802421719908127382252615727443807136989342612886555214223492593818539656583078129235476828502662205696799479561687100932985843784968463281731533971995006767513763956685965362632723230078227577151444851297321655734325848168806724834034801818501243369097461754242802124733612729894783570140716434499294897953505118070332748126366866267133495263285120133001610418436442183596393772635668385926269877315133469390117959263644382311802712451022126495693602967304102539046243310514949799601225326396709992592481178583502394597827685913825471891310642822716911595623159798705614375952809481299465860587916642392409388756930033866752415260192815777907945738394248868581899133954651334870331653534347530922743644666323612999337419008976145379389358797301986491598813218290748299899527705323608062818657750763575582644593344097390672532222739125504940627883847165799808105422603644087473173523127102754245442579335313202790956019883131811288219412582367620079623517868963035947883909988109773046437042926704510112874985204358522036621025065382839295005193683089835075923201627473591513037218650371287285277642751170337026686960690998000025038575435134939798920626574002561576126076715755022690050239646634900947371005884943562879719629433397963449373850747015017604612847139883610285501882538185225735082623444809946576453906047813443252029500123741723352575203673869636530737894154574343686123757260068146854624058752342461279587254751496281412326588750226466051247680156600861227811927908958464426298345407478938870867337114450211480881980252336148641306720225662098451255898905126145686289521756423934099664440383098292336343984500063700787041241459999020484341266730957770466864776926582569931579657472432460846608652402805591107736182352210922919175948288416268634734308380560404373620695694558143697481753226741452778940683685114822892129219767099586220980944718201424153933956623091375049838318197025189877726587053683314600757749781944055411805872942542973470113926155215749021037142167020745125251352783476050655778590436742583814553330191673412207589519737110525117723443517253611715538495633564239376681143683155995257059677644404426314199565534884394531731756250508878621899807950367168273907831258632805246139984260787930399958319019429488750706234366140352358210000028356512527692654740713983160678429028492466025289007492524081247576713858617712491061287721589224376855837265936482855146860673260351514345668413732484105513577581948396859675042366017469393173316865768821909750455177287121903818163027929490106530800187844856339829139192805847550581817936440815787370967658172699495063083719786942964221069762812811041384123633136374383638013615989328430165483738270402756120303423942264301971951390121181869881831189982093455646207550621382228626900807912548799630796936776600750778148217579075057289992990710655891100753097033939174791883539349032916757036935326569116369868833605710163752329069421998496615849387775911173473751727615728365647496622516239010137877184546348600155463978238860792059727795360711593371920059141031194004048463786577811829920473101318878140001860507753420597059849582488181140645172642227391392861992300289140009125857969256738498173383599279399825704759547740516806926182831460384675434606729744745920609729107531117793046046796028882474992857797348068529167081278481130680088649769020446893862598276703973440718256223459080587404370243984677787862311138267768963408298581221454017595560602135850499299808273702445231354916260421283939644318300469947963116419013457014204720681213354185038583622045266166948708892278420905570069224660572155589828187530637534648611936163844370096885573218409573090120432913269555924706474659452326397460138235705117422789146670772800063684309727652800471114562139727340723637679130701707342233250828649856689294832892514815400429571102034803658088389694260762562569989659263224126778305368955156664903332175541244540801910922227131982361089336870876265790463900453419037252312020653165500581566283772728555165668377975923946250142344528655770514763428307216473569560048242592880956120140205654137755664473590942313742578958899916886116813977122280062979397153301232283724241299030412864308638006126475225329600806570440240140433229606657068071508213307088371829375944015434113772233921790572735688090195064174836509759074038871074614944095372587887308064535610929687824384905839882293353148874238074040838789702079111947675333861336438445927558578091264209753026816002182593173834557540607545830330549209949356288847460438218615318684354363931016724930051509818804791833064438925472815363356908101662320986404179371418751134837303051994079485421792317046840865436479228792291819519938561582080278420482072629064980001249796041320496006888499617601108344715513053267507745170215023679373993368952257882485956120102527445708488169013200476771190888614769954631473232175312945260209006912723279213813759222540132037506997666448467513806404208205614001590301814138116554553596384608777537935520529702318943330289582722432387187239724913956423138450241017110665115040986758799673728108897623128144510021395707870027613695193329056863031403377490492104358601046511239725924977959226781554169057377653964805523862835489250877638705678661647642422522844885020964886595638159227715160191577325418555174945591867862682482791060967200806267905268892548816551595379590676180840992539279963646228966882141460208021963769780464822466648326899960983794417616963656947117762250547732641280161836811204769128258970408702299199078894292757662219892448502932477653707655173380707176650454959215167239597685432686175689484196306085204888856168666144660942855188433465133802792984900009074122058075386709366586272145779085661550204958033323128419854820147070757752788135795972922257187949787621565917660965292104772785878741764249409366444801444731404014963870303715136895921260501028787931881188037050372812181570037997285524526286419572469066514378959471470491186963252212516815837646999017308338317924458404181702983363994778846831626828330771772712778663548151403785290927562134811706482821066686788143281661978034578880128750261835564833114494433088756753719661043708694163137949277842858820269156803158554476711135289843375852620500983849461572948997139894996127962581248931438363287037697444925405842272577671241931239772317192339863658278021699233890855197087311932376134658760885031265091359118455858465702636563421250406023913067296468077219466092106131668455923373354862030848968767731490066920330911038054612643938372826517879656219945237811885989434461495620891486853844825994862849093344469513844087074089842111607764318925373841860471712613367941271694037855265592574260381761432320481130994869712159575828336020465676182614259382546921954751498154556338961477355007612674331729655160482875911872136520514140674431779418086158741230630184171597451805974564103125130059034936462822334194029356016499576332668140901826988849927429603379972156395358748017149826482931352469422243051754922400926877810456074583270314095208989242530509475305953633942491944650144027579726365176543756813409146951715396507776163856580010182210164705974547478766582270155213626792849658390923695444077536284827727504811736101950685678834794768260720441210223501172104855185574464090903269619472487971436112000199266585711901809096647567036951300750616811754711923254493090437801243013245832195089745746045080479412656155276227683240403327842856300020488482404575241095223887668228528400659727781297172179159894129124179277311654965548169804056334461431446309284797346299177047114066699074466566231445931398269956770341372345052380294680675645828712096299224142566365754554600119387400895254482652694533596347718647533068811140699946422353170046023250298783888362976811555955243395634026148432707469414770334620885626217004249184584243792331546191297040375704465930607954497510950242127179645894285546912416654773394703515977343840946307195458584947580465930185395313078030174210928635645892168100479828820654658364817440350359067666363660915876580535478107481630190240004337314128363644229295125339928446422365695694451701142108527870071806152014290335985601194328331280739360380595972404358422943389562790051273870611722255789395310520894249313495583317624892011437070137084270469615922977939616928882133048962038419847944659701304964928867353333140916567507363950595271974325381615556748269104578276276572238347969655832970833402419144490076930231817724747152440877265104619740980147625417450067916353506881920757382539117126453790400199199461054524930555294745712923258808181962570166896953576835700139366128574764384546773146422578967253924109227007229677196245006233473808198921552808843012523200339687148299667414085102522822527078600417471248390129122287971134538781487279124495763877571976773771946047076896273935790262192830571409581938750870933044943879639767157503472118379617496823302193678852308895575757697711277656215179402893251670959986022725736349417132216933068432778117824409878182407268067614496279791285054115076322480597617002954055688099869089887128714419653804208792714355559959918966647922461730098493878341141077173810234528251128736423281067749792672426334880267094559010336540966870937313215304671942837864281102470126203105790940384548672925205065095947157587671026307227453949329041315101075170900645228280588062553222058895270553380029387334865310725495205683952031562703380739891123659212798671661669624486031308403221420907276571817223493574360033212279457852947288049456045010983698597194436519746736360226997151560617062657263321078599674260407402021732798741109657949680429619401009018082284416005135871825409297541113945967549078956480182687301447276064317349851023363106494713549823852672446629214865295737029198244723518508796681098885691094089472606974475394066791625301858072345257041302120896517991579128594592480965573876708654363557472340291010969420446812327129156991274899182440755881548186550689874326807115510575334309954286437444550646066618840013676552235036315751501487800174742718774370781993046785359464269421457983145729295388854595393729225651896740696271247007353772033402113470700208297945456448752052602710894850668278998730986319749332918771328416169136594144321378051646598967600465969818798593951931297885007552475368496451648559312900208205036964442946854613823019204409260238684870065234023337234851018091428543068432590038619020275731368496424870816081386434661741232656630864893422074946192424764856797216271184163803055734574321201638766254764815912036828304247954102298189124677928777443050922460528831652631230870587874399251258920940972062114047115113338444089325526362589025946540806400415572353638048207138435521988440483691136852956348778397830077813409729999755749379588016274314604113804230492034250809927913825707966264596143851517871102792132878014935772118067686126119688160527764472691141180283203265316620078767465725562533640782380588513638462209691005213046136673702319819344669038712531767112423604708901464083838477789049521555674452017988842490896014319278670096848733820418724209111562914046552178056466543492256185469904255978345123237802336822326925401461100392139794701191259162037570636414758624943654070525961303320918313388364129963578991432014264112125117353529070612056042619226790536770014998823429557649589391491978746844715273085947737699999401592601420251144007272787812442367466995384246958503360833019486055001075577997386577499582213732925383063513022093208153262184642465904702919738157111510343821995867825596177299222842334108945616836813034300693237756700474865184063564743777088316380350355477075390113969264753997866247263764208371273647982381954509253977062071916892066709015382102604144234098188226093329561023502744030334020309288819970355088133264174906747096889171071801532511064658858542504131568918828920380657404081483188602533016417480580374924314372833277320127756627015380471472577684518503075228087129828473800057969633727394163453777496263374348042316120072853493763001815283211885998782773499115108691300510056683971469675956197818610841725661805714732649147293356316414765111047082016754704047439326043925637152713219131750861529337010039150054818290931870108298374299034910052336474962318282141113636413671726548784816563664257506651672008313105912417447692613034274310441835727566824777897101440341387967199872164432706930149563259818586317141745990336104897623123665679459556887695910722926108995107278915341491654427733756247474911578772497213077358200252759906514050300732241580149929936111081698824503508063134894428397171061593800135644817417247989533847567500559872578371833848500304908595768862080829313915257995559390432973629102627244721837484981243066951632148116146870064654625771556779490944064916894312711081196959867672788452261133617216302052935035665973291726253796991575870298263398941970520620680380452817460545493965770076877611015660366800071469626340910377748719917844783824377348256753309006336142338192904637815397765164685862006123645409830011687082703192822402507540165906174359126829548207177588644127771540742248252356673838352442122911944726669470117829559701955113055956648559181850696116193027458195288604431486872403496161336822922393323839521510369262130021258918178855534511429158711434277999436074713784121275804564201176706309372136182787714139022042429657034736975037974283942637795788908242723238615179306429789594517660586796876304822020776607091835623370943279220098976514937983031776179054602888818757163762686178028929249895931463273259667048882177059072506190938330314304245106809272572626880540420250928196837265406792330666472343651754362105090391605226463963751465987518399133926459552001396381531960868939677185456307548956468376430545335897606936277023568563660891093348629176056441463141916027532667685194643909048903198874735283795461382269601823612474098654669304407355221032034448564205783148421353571360579414551160981460863847360769657903301149294329639628486736519866481140927438418577207890601371488309279685322283808699920214352873257873601478191828415753024598845927903894622340228542018068119367269501690879029085267632267507247591850218820483535195797347024286804539255764076048684416102668962231158667063154355954930822467292086653970671537473242081050800078571544092208136458224274899617558517645088180224605500590714851607526888794553554267844308416241260599202332573769868520629797069214390103159180527720405796967170873126276313642697329568706037977535944343091736583874899298568155296830104767347429342689009357332646687839101934012895253118575510200135103625738489721963531274425906030653990671347531513565250305185214673554564319654886437197477243885528435797813244819211143981061475153730692127155574511004320731265162415516553420584882597334038300828267170660348015203147285287442696474655976387688119140434872377469037959729802997840706488384084142064982163180327409693597737445127980671920642102523505480207243869230248678024195944650770380940625077649813647473979057248103806794230923248925451764023747691555048129616184025796916839863451916310050428615108761941429336608116996908104069507801482314651525805477392719639465232993570951802584374592176188527855348705470603424027794574081871677003535517424765317189466118583843612050895845137996675386568504300519830829231338222160422278861394407999436586732502981381947144255784964040501927343448640859518238267431508276472818069536104752835374269807592798260634559862716186369427510766756014008856260424680943796521786100878524885302719917600469164882438930329242920672898302408268887989740388215030415423350381135351684479566611014087587298052815231790117670699700543373793730618706577463855744245674050218828242396170861823619227089533238302908714962412668798843949534729552421162486138874725196535790149951935078868051161484799337838316964758323192699910994290458587430131381895421256495401978844606256706901063662020500026087922701473980648865264859857772749445019598642960406248209077270944639490939265281076364152522873438904736400410798080084963982721887977083281378454601361810868844565989173400202222899682148847101894308996201307737177451407320706267874960288773248077814656484087504721442327525507003424607422088390207769699338864063157147809324617759548939612752880420042515789380614373303562379986531213103213264982926568501230463656358832051066044973115342078875431597514743509373721612309753687792876772480501897649854355092510500811970506780887040082303536098876645040899304350953955370150694917331925588160575035443781347865286274755870637966792746525780051171044394145203699110472726063972051908731289547358052024452483924428674055697770846954891486046190411617034312502425789992424236548713593707182495835223223448765853403480280267370616181859756392204515555063376364388605250759033799256726671585237816517910618805774058041032349002174117686748426142613935254950305240739958090232246038965029034308159467448929586286943628630542894706521852826597192565292357807711369121255419190683861012967196871691559519311998034554434092304733990784226122535378913493876621056257499166287638509336131021883522210261182962150578578240783208189180271653323611685135530225878370303500371599612714398199567240373518536984702711032650489657803778011334675941369064698667066675229008701881989626605134907903674178182009779385431634802347139667978469229745586342473074089040734929275073313806937791660228587051444901263060029919299912932996908262594224551979590726935850053101006245581489339726459341105969396907116443713634949402668853678234986079200012758499814110593261171710395819905383302343845200855373346211787113994105486505040050919803869801265667519340601652099397544818633344468111074041034032682084154334102825532301838382551030869841218358811444525702950714867090305457172824817083664165410293171623019698300454675563918178344441048522214411081994489233840148015724651038343543831058386649789920156388755518846668062566223536673127367973227160268108072623072607901017937598000942499108531810171489712750098575263989761670268924543315980278560223375181153827084445282643076913201234773107088661792667726437828584473389046003939162592916992096292707093873476851164061665959206271844903065660072119510116703792484499917001400225640434059724326189310299352363465160765746622003630080353091492156169168948621182799833002311280442082577507607750005640014562297196990826654291310578910261451546877236869991401734048617645511603796121324690884113271004033549959790450353114291621060741222566448887798859639702468830229431838779768232867635234976351192404516042473781422684082267672944126900533207107905013732052727778593422995466758372000663770790530801144055720852698265097332008858970868726648810556767919743120090062113343083920101067715337592339557212764335828265016683220000067958412800081170264451213972228411455459192095677691237148171897719935006061856039606423169090142698945409013856699913067996291042303722846470777947842208507705397895725686173624940709476289391690546438292262100083270908151737547978729391663899052927032680709308851321326498216520184874294553332768875316803332055306066347716631562690949922192844350233264127897478071723587716063402295884539339291061510842725578790159442853098352110388661357564893627736952687629214272091881850043629653263415767368147200402489710307934740654905371013626560240288044414196003640631434838976510461524909364943197921389653290913735808626290568040378205843996349506137893515698633690749041835654472523597068731990545212840486515140502589684778869047111988513093446800395166881152501373734838518403583847097722902035985289804597572528842815775474418253642594224504508045007381246926200784063571093047864458871671773946260636512135988640525213668153382039791699311594569542465993496939092531159356375972820130851730536792784163157089175499341688479398768826933884180308633101217707059518917186130524542319830893194819282056974161886073287488925094096309529758528437899517397392341464606392364933047455572295811055286825702274016906895113381827716546232829331483158048162397781209962677544015007040117861143333253725836303891555756395378964511259544306493477940680260416791114086463590367430125575595860786472624726789068909556153715827124827764969140501308178744709101936012884790248213558547148761975964104832789678488697264824735090259527768362802161083780688709774835104391146697490838765761182982160130772897122275244624039906220619784558461368573675882860194851628754429848327532994501572881524409878812906360779938333672289251075741790281170095371437606287105559816519722497561975818404942235698372953543624093726466753080826267191543802810816691626556304173390625953298225543378626391946478112422607090663511184541377695209975943741938793813762312875349081900101389177063836045253823205881111701898926952569550569242119960932207545081096120076344197952309518794618276065659303970663796265468678661506912395765764665521934745270767020375632122636266143629386435764495991712677468883896316104295481667811514378462374796018600730404118560502427617967880871834413447633313628174196266000133483469202254506929868776069941920681301512418898586127929358867902163972428874572156077637576268174214137362962328878163272552669560595621754499716419528023624336045217375398961669337746946862655346184602870930146373169500200337844958047251324839800525519223219687082875892875751693893071384567383992058940709258746925837255336809378590382866510844284326226926279346040624312578921265447872875384580565231079838766898676276536737048307724431240330291317390072377097042311640192229470672404040962926897064138580985151998281853456940758693453232237033610101843249000169179102726240664613140056252047560148188695548610216040758022387037262224339447513104271341407818896882041777879025408478853041601038388068753323200099084079827889878721984221361871516021128149185219931108696332187634959648025603213404560673281776661861644115616756838488964625697752762096438091556545088107711690357235580280191537622291469117106822859160845030371676304161946783347366069704138163177363503139421380782242733055157401333457591221779475152860895490624855050602568475429019750306796290828052846315096330442598687220921216844962197302995436605323772385991555941375995944525023546206933412050733012454513202419759333076440272330050163878811771153136915926728462097076227711572413416734215119081789391727532009821897073767708395251045607374302038482623527838740362479418315638339047499295419261273714759347549924370003582635347954956932525590289466477098879681190416651570078514798828247812688478931785184575191811436777167565913053512542854139344837571899520160161999886582807855424519404021582192042175350914315682408445776653289107818086845257158605784252690977031065538897243108474418752381456476237102264641647873111853260139096277833897201416512157520022725382578417887764188533072265093802928508903988705390990566172886103174110081637859636623809805644940012488571996503903871846072259941199118824055054993587055587848562725231215993629606245501453588215388147689223989685858695075026333744800307746223800230324230935327648374757104543187921162270348240936641038458059237418941795183511279040570005018086882287533343876166254519192778642535370066791382005893194823516892509300501547882197340899453680402489429584568350116950808219708623761021610486594332166835765887046374764761075715442667534451429683390438297049331170589139324568049141029220205845486067571936604074654449855832630472332223978928491936076934617952195663980344814224204810840409746314106393201289654585853322126821413950602268152898298412752091516183969369443668773581000938474976042280781865522656421807664864316354721536910073341111878926129921362772522468151371248663443794546953762381567390503466942624213201709966812660929590285149064340808873475650869580848621054961140119206014368919465256688501159992122611943256883546639676635660875758247786093794154401342492970637695071222504026055224895773322256568097702942931334427660639613833517729376562736655721682135750399998401044579131336088107034562795872984221901629200333473776043951138711934370067814698960100699761038502099046548396292668714749769537276049808036287411309619754252701026440191448311022604973873898163890845036475770399562098997701221445779123590842495153026672516102483067144668858156266967730467299939673456410647871028863244087929924332828130297570113650021861559984044189368201149404122394448469205049680063120858274982733029787589603023764418261262497224793576885725243235685969698069032408964799713192408064696060757288715342149579783167906022777153372299732282258474676495991143484117459964866731383791460499832099163190894773204418123879608470205894057917407903636232852035919196059511687055943987942358610870280403849913676933846185249660044251588294147937464450994760816306941232380598007943416166097176170947803078858052722312773293028941082952566846707856885040396997476270196799946259478176987130883745827584704079644873211628837090205317914715096862532507667153260841816900905690879659285091862165423775875106279192347635549499937320762424574091675450114951930509752064069974521147298894059681975348783751329898073555602873138748188484548769498031115471385121258096082547417495140270168067181100246704168038209090404042735016670365114301001981265593627652056368035589922249696164253277042328445451288809779298250725165953710039166967191293764663544191612258581055470465689765630259463916007195648284373379329975399339539523683221258909096213404497308685035813579524500051364850442823189847398463144430362271813296154638169375031729073464359491598801498566070415864178071560853787435796226660576440241452932925081644195829519479868675516747039940419266957960195731848356983764943677599754316441146289623600153408260969661234350388046031690781080951275560251183100315126935707171547059548884286877339068787734692145533950754885152946743944563187150250001036318152759328113208672301494351176186278885459006410581372907204325027270168421188337725211138174112982615167500399348801570846201152338975507124529945125643896375198250691733842822039297869791796414169555877476315754453946888109539097481980684189152434178335068432442175753305437625665125452503456314864385488615180679163401282465379518969208058445813858445149642966428334131489153768286225476437663727415525141587135724899955730353142703072355500140777213340143581406114684754618589334913819923482177022328236531118430683421931343242295876960542378096441234765980881126989228011081504512282256826169378872214699164003496348000653152453270545773958183780137584423450438155170366514039066218606498332408230203434223963255180786272398470598589768468917150428016109985651017185303388338366074702316004239659560724181820267669287302739388397931585471492708027988345178943660688477771239595933095202988406056453728014416609589519242185937272389558024299933043600298876464703420954206133389687601926144447367958169578700707871419499250033982990390719478871888951272473954421880203872343920802542164927548983667121028012669546933240031635462966712232836737134446159153515613188028908887875204213922727104199336541357400474216605729730227427322341796996952528249690765758163765008228508716196192352119229398022480574244613532454360524710122258453484499625078547587052192024451910881582683717210010165617012886136463205200135515013435258885517100890636502765883067630748167017499279523976562279945727850818875257909437709379469660406914958481897252811473059912425594980526913868889260639054339868952948238656292810089487401277424057417805137816774356008254316633721718819679338674217689305927312588252034990311131201471687302794862952921604625730399826029292144811517039487296218484026322918675724591753468077887626388234276960515429081379860920068332582845525311284811513257051957487352500458722351880530527628288023891513452049134999188380177556973826952279663296901927566765988469861053535232745269789189295837759284991508191370078631651995170573675414868825144863614328228493171994947277909393456940983286230098313351076218714319050296086100420875030480419002687249557706369211577822238794992663211801167938337436778307125987455285327093276745822418155675004848727149064244444158733912235047401816955670340181688348098357996510830451856094690656422960976769424252636120898185977781026409285529872039404212683801766503837596481773134628228607560532144757656930551113689844257009796207789311289931258094277224754077776099651226810816802232639851255888001651689011532830105781908416626154139865067687183705220600140108111826542554828460422161743004357140957730473501546287238485557587607378567728607949499856307433137007766269145353400750644222741181194237490991227425854596072978905791753407403147707417749594999507215930492320069751191291200343715443281870765534722929159924597740269262535876890128250021664873129982113150935531715804651816706254423915029035552172377358520463423304270239664650939008715943291049030976868235109559186826465992807152088434361510177176785627091827227438371836143908147262063575999685019105455246876321587431607825292649001252863065916223610233781453448210414156978493308804963475089848384479753352075724830820919845487102221007774081268414868413379170744228727086641018522068441361084990324806531444499721501544763190846680564160126572025382337912402426582606853467419623502783819654001905909909006281719080140045702468996700812610002733421790559840310363508375779947750110478849819065488194392206181097511325692533763041952422573066300482397393654205470716704632246228210241468330088386676596409940942309589347526205901170493469702441082617894673038679731780298786083986494866618393201911908469336326864032500831591876008812491627464764044401959749472385682319768443193360976649162684924630839020216987511275345750573100243285146815634569349793252156541781380221091104820493201382310304391962873407882575503123565070087803127087098525245636891320782439023892914512576130419140999215361903977533975076985796613822557426849957369873227792271438487469937754525449035891188078176849534170726786653161624528960335813034542212102322410356859026007656348143101848863025918254757028190144073379640445720815558271762860682980570970953852281123825833390450919811180738007119199714315416759876637173647856506541618000580071272276053922331669463399194017824526883335746361303405306419656395262043357001063672555451442586468198722734014836499736761258241135139540114138632990273324839201853485141593319567754463221723088014556416863937765779758054934374460436000926869408309914960021003526973837029548718334224059101943540472428964119945679583024737805712006691676618295206694018382206239715950051630834129893940125793940524783855313146341677886639712170905869544481062943454307239431762598626388284618752009125505797529781257128695164412821849759991728708865862609567004830744514848523030507934270187912850303381300588944063008564370561697146049389457877083703675504085867380795134224352756396737453918548725289311842901015960475059600619848599569050131972926459560478382202739205446980681499289825645610385576461425205290749693316708267624708915478188267848924970961856461209279355277254096973194467900379345918076917800476918412983312275692053543608958003837090000001327959122579312177661278744992240749074730446786623218886057645626480993791897901035972949620630056835704569134027941165279666800041756695834783489449917705220133175465063624919038711041409551784457940099646403902295126938676789860896100963732936438011319828295827589614046837802587323878362122434727707423948089794916075556060095807171125752048638485454387953862867677019800025787353631395430478111213083446119743505886685098100598629442754383245616224588243526632967937152953711036730508920980092496587421507706661362347049361203163974737476757514860629552706856396320540166821038038637532573060252653409732659524753122797002487556747950772856345461265391319509856560461606625645974618380512444172956178560108860768963572171439116422985879972577062925880492390401127516874029662008207718866520584011451200436468158068984758604201576442559142650827231374942869492791507493934135963471539518210338610019225942671257037681269398936120070641027335599452516301672285748126664750599041286833459738216160378801823718173118457221802272834137677538080686497658708742283025661370888822009333136499849815977480425309580230518888566290131591850221919582161618817221308916483165738973562759598892072019862349658077224211163042867431371251694211038479962552890292089479019462586117959563650415142896700278207015199457546677589538458206230955571281098835391609872152346895118303919390681212582486160703945056560436073314652786413863445992015124698865612129026375125992935472303664530120246651750134224790789969069052985286683941516861801792734269117547307739893239718157820986763459071026916646810724599808846452674019757201681497277835530066900301466051018436041136190521826268660625689015008812716673220470798014493924057134357163836544758083804304291785960320327027888836173825680565810583912402854445943502112071726482441494289885417601564857204277964476476792677268550413779619352410826870218795941148285891559120290789823923252818519219551620250441565974274461984417353345146742522259567229832039308119346802413302638296914249022494724239009686928033879004032631475354966298647762350101801394700412430928141285561627942762228375623262378432960674565660930406358179567057981230412877834641418330623667952927882106896104227662289506216647257921579626255201710597927590977765201110763396323103088217216550931326061848666632173250243045407064879609100480336054280065736741810355220245646839178757656549072343229524044372400974356813099001261939731170901486243439227359920501281964566043285144422982458252583133070627293868472893309838279785340467945319328114459993941165428149808253284292938515204118868701694203706357078604981149780808933671939237547517907680848422531120397493392837458041903170808679883847945474340714209258964761800376264737324216103228613976919734833351775076520904694631986025481105148529445991157834848542642207362132378918470883986125892653405176750210483626679877188739870525376769590143499019313244098930496435228938640139529618202875379260320048506398637931380193814839646375104764624305187273351345404645710598101973035223684270179193433340486227589069506425728820577166870518496204130376768142578998258420146331263660862069480396143730401111343806453356555218725941968568705358368115214643533817264856311432041003806951148365658863719667743796325963845500611041544401864609964069795997141798079366219506334973638655561066852085791584434808956216671852921134731540373034775151136550665422484578064973091149583854334483764839266189940436452317581120890421777470038082778444467690477276792806044569634578518270996275669481434614413709281637533581556352026865503011425055922125733311313652856964101050644291728335408100292243760099264549956361796754545968931508072683183099433669096114544012085998884923860595516668287297094433613400080026649155284956927818661806765149897232093797211187425130104784582243443444765168231497831367891555534162579345138675454647474456443899987907992912325242190361335169559658704716328185443082904577132382086676764737890141963555414692076924716969144381981441847970066175871156076677908907024874362020003717636721130763845343156457744219795240200780997027529482189383005513128394715953009364735185207532979181601969717594113680548764731875705615261642026329616367942855210258480925316201246784487472390206686290783634108543950305062890202308997021725199037487697995697283415981055373075201215912632632969698331793424576076740691377853216821652005465035008091121569690839350588613102639653790714814743380315523923940589633900330205317785481088727381348685058002859722535546811194895226668200573466789938608103397901999071653076170778772254616094510475159448980542906784271863183400674419241136141898622823605351524232104886825794663859807839652333485677189377831157718872493982396766601044087457322863986990280231644905906355477284577568340934380100912867736816454426414977533000594129401715673325435433196463652631495570196735692447313454267903746883194799801977658119668149108771493538010373385145523022361942707851299246315671050203396722532300372572720820494926118519001813995689031526128151579596404553226899707227238105315219240408927422457244746538737917383735411702444871932202228074026383695524751992450996874954062437001870093995341786691389264426108511014099619238705226227759216446583180853078471141756977056451626669876785696455336693880183125635651544198347126542120140396258352494282117346162485108400097501447530922011551778491935934220892719298285485846685854824864395366842524473975016558130546324634409973961493898590467258394157619228549571698021796914164482004259548502211699128986217790325103585792261264650553453280387725545116985010787777963447881816878129219950695198246733100316336303435087481044451155894867060344296147752625565415432180246603720924319481825790667956610759298543670070948582387886870784181953795978831493184909623357369918988180270984143300825622242578255719413286477244106249413957037010452669001910407824688319300448130157372804435171237264422556033605017242396900029275700561641343385164918682810133090538376180274752118333252452941828793133538636587209108415413501117780706355113007656155439847135550990293128617602662198737226635988466785529968025888720099786955936681985301636551324978087474360403919865554134218461553530940578467291428126274352276078419094562649456903674165265139102285226682455792954951003350241553199770011863439961955817535866991771857282979143597194842546422806250149220849274421834580644360097486159661280519679714734574645384272984399947477216811157185297616244222542573257257978513483543645546869033409000364265659887110597768708025341848457386221581990391629612798820755062061851039842204267181936013079727593319506501942184407975982014055810662275475293214883433736651322625149687942347289226750730015945376576680566657489825959157070875967062074886923702889838687760365535007122643188814206574351818482159241452387565588994177153768895733521951697457334158614145980241468676349060018253716388142262462543876040752111623076363420258368988522103680513281998785921005698025237853065904155065547012197028778450506506002639932044729963740023957628633226088966865596296802721441514180315618885192577033882628958997397485153327092328372174914414526406990312674873596771576131694445195382177676045554311963858878169428687259840488846476739693195527770413592227539095498324643960046135319873541992503908353864375057434427227977944506245148994607894982167341443606357685246626009260803070196374616252726479808329378708728478647903978171585258616418187495398886257045527594099436715732276174637867196114761049300797865338823224438708855322210630429060862659653407314052468174475562763374248430916749707459751580919710159226129913582055980805584417468759255465513922335274549399575909514092760396885441582587907284989214135479195462508741227390129634020270580825765870907737187044891581152501844757164728771899441066747188737775991437032846042084382780368164575032371101503320415595050281243551208812293859858632218425341508405219883674408074024052002343817493105291907152027453799703062215338843711455369158406465744063336865734999882731359354253503416024371922471349297768226908591389954586540076291222538621754255302511349749338185054182113000792512573870312817783853795820039216167007416927797337741903358850737035379010315973201327141189056767816885490931027561969514216166151118747337662484966937580637265403080415752698561365684961088974574682328172395354417082209783404092980774271350007551974033623417282370379791946726238170543829911576024699502644549572364223411094362457486430111562874910905033580072748190996635736646996218397433420198002320690589055562387732706283800726854224310687279634652737716091628670016721461600983159462602654677443168689736096324953769826635041498892455824210428757685492829042064696587472585285203317463701377532767838619999517333276477168138400647969146860314348245302277495305136529627596597164356295289560183140690616267929294935855638954643249693028898996344022402755733563817880155228352926078885036444828488227982516324057351088534679270862244217262502254461797434206272359276641564734280077523203390980619349394048381861146689190604256159582368543581961512036722834145242522039283538218092917375376357544797510282576912175039075291927944040817695004490020527421229079321262434439120621200898172825652135763682788280445344389499359184653080549669725969268869787738565835916568278540108522777050724200274720365773044792098043456092524283799026817718297726528191759438582002802602632976086560097212619995896385580139206337657221536248396909277832960514248687727418129549832006308987123993317309039463355049387828550307688533846275463509831033175442238816788885390848069498698914169996066079438511818152558164841051050991941793983429498841154964194571458364629875162647615542507818983103239826862495980919066092267738487967620005921978536297333796372769246211924322307487471072000673262239114493671275091682905798524563752442499319504619331564533138268486733776034174440276323102022941413289160198336821259970689171372521603143245544370660701579399254675624172307870953740760417220002998898142529351714663559565296778652974397469780842565918083331724521952902182232820366074022739844406021057130537902384667088288969076102043344390217585301910235193881739896443876627254496931057018698413650569920158715291877166102915731004460530199283467908267902148705738037482403682596081493583496515821717045599984210326718446763857213687553183389360614954832384684389891519581297316320145657150388267142418830387682493429909243259815564342880161956248867026911164643690653896968427647243278958876133887091822323772337170658253252879272638167833839445742512010389760027935308350140551452959427256488157642153542842898302756036145974459395008699090633891395729800356205601856331456832145440050471787557950255643096263465876081222578788802238609487318090945884187708778295485267029134158758584191487492297015113392046553623709957964792509778688452380597612761607882779431156237941423455252891490743319902712661396356250751865081431697297966913250556534178742544194756040948109178952796096388335382988173518646442817645218437758569050768963802758854527738546666660047435149480762478445899652750959615783690273612710112916963503237175193675241716767211981170236336572762497646162978924989722343014488485870858909129585668973336550212440261854747331280822669754644309375976135305469706761388362195473451363051945928733032547640707038583952833672944807871669336605889898980360458785647225844650158003008821152605184939099900679056808647657281014528521104675025417529514607210733409665593400982505995247893663784143715411739922624008557548453287998350613346921099199927619616220780481365614968553507547665068740673243539720889369672711028419109359566922184778660445852290294745035896103360239118322676247250565588594522439928900941964073898499439152318728325540111071835500462783556009735698108662743932307091974366384051981240970869822687277834418182700179756190462260900703956103760773614445235589479495605007985102256450407934688681236351390442255664831127039160508775660216454621877253690788821798710810160263457505507607215793531070935370746474784193121340549554374913809343164767289014410858730870837434847260492542100293928825692033471269560862991748052529078514124933921075010718716192131985641570277197230355270051861555246813224839500923156905771625734244512297303645202106298488753134682715450214289412874181945012594567372174863146452778931348556373453722082435722403657995848915627329652628879010950722517413802138471827391502125595479396204469422365467824591009237647671166382572557689094825774930103950280366581121038179677000582660395738475693828765350160897355541827812262553117584205609705676735154449447702241590819463097056245128280133586504870392983400577294236939984388314168630335500189780405038362903264718606547867564252919396032080786838247257908215321639386024231559419945294073750885445518010031074987455405474029286489080578596853409778801030643357462873210206296730364171137469136051457910349572929139182178976493416518535715849451158158213126204640913235030500767706430407873584032484458988952103777970248493695338812448728959586234003262466275591250277985781671023078169184270509749947194018919150424644835567498195033535639798377930175731379366885091426588278098855405341736583125002004118090298147401976456469446579058475793133294792528484325347599796821603848588035685598733594705466389449804411454621398139460022446239973855938879615547428791752225429327690461681786356988560231263748415806093949305532484383052206633908977215978155003741095067989304751191656682312762161677645156435037669366624370200606688533866437171420145233994642575396315271081562760532659935962158230764110515368862747263041290194559043820529070906349008707912226988249899750061781319126871145973748187965484873257496704829968589490917484042501243586347712849215648392079149627404956702256001236530725698582005781572607575100863536582331315279218573688310432800516944938859857092695915530241873294472883863814005288683720213478410909604896573086521193966206117801449643678494340988077226356483492087996233576689032474553627675690890274460449545209089074484228897473577819441302680673500116211359574615090502947398339012347937093259858693192449206921604193311243017463522759891798972388266782599252077263487913798807045265603502283129019583760564963498624916077422355711481223978805994576040202940875161168219077344226594783786668724016666223240740760931324324851345842019018487886172851138414517955500239518468365816191553319407861494465493033582318164891714543801906046856436604490619900774768239961258830454768859316322262081191335890197380541399289249310484258523969304055838256181751931389588790255691374920910561008222938465323836526231057842911417371768314925752709547962280285523895272490293932225362937928604458324645013471105702382946343634034904593987870558500854981963158829783531733687482343959989578095291917989444820087315573764593537601628630750789485155622402768862257065281516558672591110100301587733686583706929563666865215874432073732821329771721862997874414336508960915235623101858381202684910790807196339129759453805160211215536343710028891463539247644629138654683287677808924354588849140773481679875222662288699529664188108112096136011336143233366086562380616306871351253517851115810022286977161236945051075396080219489699799825891807261259987402057611586313158857663010978239780687966676140827409538567603527132674677870828150826036908211607717971868087647664959632891893353505025273404340551154675422792351204098205344357588041191745033852910843489669055600806193142859331148118718953260334498650711210651809646708115844301320466478496745213843785880791538327654707634639838434218880541725184626438990968015811991945540188353759624346642156104485040147190028532742581934254635204150003320735742650358893206266238476347294326097132994693294678170180976859643394837611353688108543163404613678989076935269057840070805719677844981322065704468673331957984572542710947117493555475159783048700265334588559855056412538849736691237439637033846118272092716952054759832810125199332435728081894421198725397427907045829408594656211744373947854293018457206201341119715136318828777775070586462967918865568593886243713856917282153278701796346354057934676317686332613571993261425375308648184796033282164722619055849834785591379030864542605816413339674194027695202792103204320147539856150172314444485743985649328340547481288299881521528992222503716708054671693238738442307959466033334604697356864607317542726326048873208840068220736547185767155354151376021970919314519603474397194785685723533277802536360496493065602421426743149589193518877414520434253072725004735539711720697192995847389874475296784935054112422805314857563924635708167351387077679132765276326551561925063863817597209295790728105030714983286310354250640838459133916759654512404161028843566632842178031552154457827931984930864329537981746418487774920170541995976088911201571518812475371243632510135456873517802743009119987549396844967206859011978157102896108703553147364431179668661843699811983066999961285741553683988500706052074715182423368722830690002995770247464291746395444227517084905261678712296878471721631758485205372138686206877427776793017084393277638366022506672999992227714133555013809433522144156098919210858079422823063693320347979143413847882958976554459737436658899008750009563401705228139905503484036079928959658987882815384486243747076119492588808652505739510599630841989796670585987354647637508815083233619816093780116540294995515103950757830805477293263173752648586264094796632026274878391907937948248585586885519813527737134557382402195024602679808793781875329503371496581812129453801961583270419025132026890653564495583128010408855666649843416586258256261529133357564079834317131768325016098497748776875422396562522727539632754229942457104499316697805812680328412081263876842467884480716740150296727658802108593263228138222824809617932477054331343557910110457925057072166818387089882515355768919237826882699877039476176280293813195565757138244102249276978345664124901070926467484309123605211634772658864838254523139154332626981091864498181230142411270854683092228862311027134397398039708429556153895478026955215760686629172294991258682736422087718294557892030469738921105903020947976481956648875485504027869533506935507929381634365415875628872282748609166261379623391114601215707588287998134627948242359547153385842187200402925976342725033093539789786436344123642740258446914915118886649965739970405238433554601357144624223375042692656130939635373748786821076042260722003372365325759778787278257354387329290881789212806025025082045900330497139300312533583981113203045347374425065878488763455285866468529868927620400112672332775711970579532159018322002548010394463949401932128675442753853469018969531729412383311680524852155959650019749251175281174050445722877185500124586065129190517212236843750271790160594277144206658961802791910723885002213551833818808471186630697298516274140626468555989515611741836601231074749963430294425007647232612696590764539903054627163226356846930126901323146491101932673013099932135757092062415071425665037857061838895024201323093113880535228210870855421016507173159223325071780101166457014673517986221694540327576581354605045516263057429237019658172186667370520948075042846626428150206456376623006153907846835180629512744568310141318842190425508481229994276376331295090781444240615958528155005862569885483950973314949681523778689047161684023718020295795511138440170784610207360689675054647795221619216496450676283878882171857728690967480195867933266278789762384319460642704515091765985520187172588154331723358320849730305770419614194523989545588310203639028860467563911069500582965317583897439190473496297118376314721227068022204567238802294219840735113471456655589432130560835847269219763630750478576434035918255712460825159134443741665785693785116082349260334369409575854960842128375838212568781010574096409883283490709335239095621898538507833403380455817157665910389290026941221493062218021356476352045787179014968022114296756105443187818890251418754874597798573938314999368993582396472532575948328978034824346929954814188263082797438077213570639291233896471126470640723817249756230844020893470048927133076608119177135471557886768579886192995477416895130351796449919891434009330992205771804214720861707692178622523774955565745887013148235002303875195730765806768729202042036650880768788919489780371210740377547610777230876888414398050113700037997263858395389795560773395938605512737660129156206243727144558231698647094027700677393159510389547680446469611291761654981340982865846722814627185509475919040809469072659077914740339718525788656988561243457841164028532793660161391059708841234801975386277424262896286039429258128713905774545586861983043942195271741287535084586232503501333195000028588539492503898599944435507327938441723129660556602553541522084250011512273321881054051218575367110892607618458811625284459104717393905495740599985386717332512655636653929953032186064923576745349805350750200986134033703346909707648781658345538786536249346699472459198852157777272754940575337155631121267443395299162426747421957343814684319674642286227711981442535242735666677065544986668080874742618024236200806332378840953112549127544350305915350530321413416862436622979298972673967246734440907579312588329585276951346417558820398832326765299435727890506188074495849948133513875979810074687098217298481219727252794829095994227723350485687486900462454917718202291903901373661438276421540319923196813893090930730579949319888720265612767071170033164396060079083053213501671679779330688010970349060092279359290850462108966599085458529161537320187531874586133228402237329891840763581965586249778553299768482559877735490411327979198432037436068834807366225918056290981484455358500725012049885503701983564543989155922365791165353921292182557192549741459399814106066878331546456836636924673448359584711627967827560499582287179840936887582531002776970447038596476350986240449932520111781616388439044357198794353055892507730453450409807291649571633398996522401859416900371919278464406242835831383568626339397353295690207971403440921801301533427923763191768866526143210382937737768914114970732177243233783011242040521975356579792610052649747287756336727112457406914914627240257084633022907984717541415419930960739150998761147837936468678996965928651293104503778670281269549412094018428539868915445938307373254292199464829966067463543803023447352066032326226656358235103096623364985064964751813215717999762322213968876413715566750357126473811699738533867411467364853230117310210518068843581098690456250724116255277709018111051951987913503599660367278211248054510386961121052003714685867041173166560898365516562112310875026429669838117576812065455180028915619786459239884882286459152524670434875331068190505687234683788955504699048019584886546130657921131790614660954644587319377178675695572981280090696186215746752465727297828211848977745450695773636221172566579006450386318321566541907537347207642990634714817472064915804622697490013000752315791985126312550160377367167202638663160916097407859585579395685143697103055718886506326396061327611044172195129970528417283252373371641510820883981088869742957362680445535266551278138688975852933293712497904086313366700620869720692766302891565841285934996077220570082427217945763310655945665734507940990579721917094703789030296131601556262088055974239103023084730950206450847444203913195949525859569929227791019065542796848557917986399335109237602612423960352691933808085336188392004639568967605084053708581099570099497980003704819304613225222400707961134336777078268676414719211066134575318183042656189117621037867093459974553393677454494959775838232564823478822293332941725309924527623398085489149671290407575417289438475300065538970304994690484902759080730397787093135999495071425222776169760297332099512811510243444711553098506851111996648229494142167110393322408863245054537366725105193256592160074875724448880911374290598009525573584272046174374926859970271146775050201729779347750587995187341472466322603876320168408848142606114006506640359151104131562683882463159462788007291993434679109613460807199604778638326369321079214725731046355431159192807824063973436812886574443849393361083975555884611830588480004570081029593240404956088099286722153656099374701704515068695117038398025648310304676583739295698568693186057931591489636294739740707423008667345580653944665856704731651427386517657567045040896563307067215431023618307257904215534216380299451311044369955368717013721004004947076222880085899742835882363526018430498584067063699277425775004475998517736292456565055815533217171908396170391606912073738677684842374529433616413167336743956557380512121834459864068891552736520095445442344683917538283861331854533169437162977981390394095735996556051212622406337465683191600816993621370176622208000001280529439060877216054962022954498899664988853861936158368104079788128580844445561880634614438997222792715795626100885642875586720391766662311656361339322253942694248363902623778569312351402160952201906205247269037337951696358685554172133727335905632382109309026549933469408824929593399999371037692483676790646093875074936303871597357223404766856055217530271195209752248067449547454031539882280407854423239468256713926270087896491916591462585313617998579314666301453253543847967168735458517366557307146039664916378105611336282857515988262158553465985523147976894466328545254220118525796938441261268348158291098625401497162824622618838234679360797107016241334506431112376965249346186879841058954828100976990528516450794291475728390695030423207270633409254448641183725819191404851671309829161694392122891700209460974004205093456790134195184627117838365995094526458168557744946772810666342297336276939306622514991749215050231504493744165015028732129399203289799304959309999481720999139038326905001614112271631084748464335738442222626528368489530172808709958210664387193588014868359829296543596365403129699899834063028927391490470829625131287567586957598806114454522636270802375686401843688364112360961209598891341922344775197379216013502686083867820529086202686890346853328527002047408280287969037028915557150543285493251578984372743558163230022373838823001257905309729191272338442630425252814098206366766482279613070560560280940666036277168085348618133005162183662270284957282297385895473195999064774638304020183092001608320760989142568623838335267939544861820918198499887216474858069357295020632158487881116130726216131122978422964097120024408759754306027804864363987911278498657684283580732854323215928762018344425354063002898987762386838274384685979280496883746690292429776647999119019763628939618933672923790107677172449568104201091034020836906206967766080587705086536437739342936191585885606433458961928126579352117928397116883854667007940013984915873153192547655116142100562592567611642961458200763965136926387076486655173370994511226478911581002309246687844816823072457804198700331874051841361985361583202447117840228927205356760826204636320541757168416780669015314429291997052626740605544700510439388678073938534445795886393878039571377726792274091454972228898788195506537434574354966681273953202866587702035530052639929578858275462530433443498545026805659816778968516351616234244074288760818949861772546338421779036143378149208023775933726541680416480484371960746751054301785895465527229878745129376278016342646253349794118097679784088618501685534435561461552401788939513653822402258431330427564782059785392526807893744112299503839392675693038270788234081411319176161710550915178103820752071207763072642816729985583577526053411609407223799332214147273211585313376779034706468224855567718993224037883512999305928332305574771616203410329322613678320425385156504244485454412947056653962213115350669921504540289732376145617726715013827290544055531027965456314713966789161479430586238199246319180956556439868271257091878980956208001793476099933211940675630032041049611189644236181334867414804434017958335177325936015970660349532409468819272992653900121616863278817377828960156695828777090449633981583845075470503466143562686884057016571804636918979982605492320543074826400528653716788727594180587630062092594780055560141168323718095731890185011632949531734298000348331695548453227475586844037285863106379419026377638229671096079489873528005877978780958754729242779961675750202201376199426549001834789069796955577663166736819010441572302409111695776910827487595250744729344047180596723339839537370762252615239605543153555755849016370733227498894702695243735852458730312507708212597789359201636813725908108817440537380577302413527233787206079228413821217100167471823097675719958678920780966734753907834144653012106612933978793363704187333903044838708728208411421817539647230929351479293758079780911573567014146241462278724443684786153220650507109030164485222281494094056492049272334480626449213030032540948363017514087261689949719084739934054569557718228596108466730643481347353251583912966082912095851963605696927689101815864958489935468506100748768996292722214148884934672543430147070948992551630707311236837810051190367057253504926803346422673377786072508625122332254359356100936405416475417219196713507121032283657711831970469027804473361547703577564085702366005782075846603232624777322121414691224997687078355414675217831471890227832454405046220091675202403716044336346780287319422401185759213895561493794118604865818322877543480734933616880687455157500610076272705433473917982294390954958917951029631783330470139193601238549826456911738705836528449720118602756751114680089812184954833457304208303778782259813423709553563758455138272286720589610733615936278492937057963812928347605135856507321665965275751392976729207916016491617739084678745172087847529890791659037786891877457974458937230435418884173400954511724451327361635580537763405010257181366829057119461875145739935702893933443781503567601968027721869005611516159612216732482894644491975392788194737745482617467041806505757627762409188888826715391261140759658945429736694538746862398002811761714840869351799119967242879520370339457832488249984606158437550991500816051608258184968847112881740617854050072635546717278798744356646127476641112669778703366206601884493535937223663771895558355246021430547086166293459526961400894728095824466293042344765044006239649856263151760098302880911346655777252860156187170485111627341310525694658285607142396394770809545885433997028445557250738151958994997250264565558530671699090999139712464151193315537429701216232727563071399050290678642233247072509400772694385744155326283387997872951267704582114786174280603988435958857859224045257029504882017500854059450971794149941118516162015032788829165237588892679540640800596483013729665958807272899072145411410537390647561036227360063458320925760713666317480169667692489972528247183558359107914679960661127060397764757931207247434252902422214941028172497222952319803857341700767866853628063241586967012191379644432581182566889848942559926047219667467350439852590624700684626883553718606558823776424633598281702895006828781384465298441300380578680425731339751478080122244681049280320809873624357817743169030343265504254641886171110240527840644802326378817143082988569606791782221705482046332319530966491186541864008124190013564261871342992334965604295360849764067942180838959158269320091088355363866301540582872420669188007382170066661894073675399701739058857115589239735381993059073295978184173361023055983955591881468859634125449555681874623178051220298098371032321712425045769076345823233671784398531749263141626077533592612867869537507947134578354322504068570337819291965958932242952730600828410757639416516777179763710544556870890315877404932117032227587090283148237201736948453980539338190049451366731132311430736664511514072559120058925014381103835815187897276190035179800659005932624599834931396717545632434867836489275982567919103685106774857036003911780255381410880953221921056698024674113532892995142234856870724418616226450955476170152693465237866900793402020492051333747003044279829127335407150770730072375937767203591159103075408445380269064145083084666120168037345903716379151789801168301195197596783641938940317262710997810208344613000368553483084391810082491439796715976650316281432982247811920484168582226599772898021461175310005993799194244510821504492606145112401885628515358475058266964623307713985268735889523887876503244213866068650599290170656009657358283222198352541835711158645069897176088386695677754902192815277479597955931142423796468412078873578506291191551695385437290892640137051683293953132914314173516582419119785525017790729947257466444545348338008618696597731641977129345999823366811512360684675480983605419586040435057610531682998298707985416894621580467070491637355281618388628203276709077950303393396936904114380027132017344811075383436354407004885158355150791433287341924392469050684911740245007431138989636145358846817895581388885327017916414040546677013219194699595276927389631133127779970023350342855742666500017573789602828632063368062528145051458207451770910385712833122590498251198271388223214076774102612559618441914216676096671643740782989560994095973556433429097159721555274422900492775748508934428110687824567837746110124984473319198564217817050352060232777233903748926708473208472090365568031037413465654598762088177008224040103448297692468871021164678253064223619758441164407691885972029517105092087855384035427095843301700690825691448362616688668649604159808451602915675487754334850599955057031938936301069434776375099266057796283977362941502228123625619820391245744841585997465056075708629274387347667287061215490715021988235815308910705258926488136834553561692004639794289893598154216486708013742041364172804219349987387656982500983927911567615734156371664638992207400841836220614839539739159299147376319377936050637760582745401761075971245342772962169410279621148245335673029498729952144252133573571336815825030133517234324173656588626173218069226769800662634240364720347812886009510856501963121320549085253586846937355300858101158586852418972110164368070506509075531597785108754534356984769941125471858270475158360731876738374009120131375154220397761070972214633843727857145873598754409482086294725639374091961466050866197981166695658398540449474594568218636544380182278311610382889088572842498075007692444542936568991451911277369011914431305422922242012180372065269817214577879581731512660637283610270581837512668662196542580057989614881503637457527464954520944522802329197882526633898313466751278752381593539471580794310247080259990340361617552611654231732038345853554465652771340211699638819975560350017212778929799793230956096242655660044461592769481243792483699770702670752536002379740160937173669525504926154266636499799358198530012783039342137203198436457283134112211244629260929587609518779692699414271559203156696371205024230496761306774542627681546586087188083085866867873911508260484339166657853567109843756004652151711079381575247875498376605687888496652693468280882510944349574170372039628592506505413556736234160880450938213258047232958719906874123185087268466692537948705036653267109343954649280711790274953540021213085817743890367354283211683424300130334134118587141720912569921100975342811009132939763399653388648176853765919828911773993471638995573155514466292512232896906183426208866507139864015660136293538404730531997408024718729717733160330678784854803411858198265838410455319093509322272619076743241590300279184112671121217229986912769205978499990997294263467122373129538769469839328618374370833157918819695586347075221675615407566888645759914717211612013121015849032737822079558473556786988478884877075676003703087186021759600267519797987252249309488024265899261880193893931139547118846966733056543065750549605865501950750209993011234437600360659412862160202512913030677233509774158372438817604357076957886643104547992691117853881491430014677088382791505656786443476634240874879118697208098505820034924412432901746202513973698536219910111797847943490268280812132483762072542379950308138371169285466587979223388903150407553283323974647370273476781076700330352502716439231047888326575117498548855847670674889950085593015702033650170215066103353262405485213568119348406264498522758125835395896145079869394564519684047759803287311724281463770613723690901608501278080956940227697329755730231128197027272197489212796194819024530275578517656227955371987402108151007265890927825287000574872067609493743856462334314884579339028737412602281594717754376223857393488012948795579035751770638098735943338274247460991197244184150266332449804717048948797262476048264014601798377483612975459784860291664703174573180453852154781496548248495295144430115618262871575219204816997685908286908255318182214940765712835999646390255655150487587543875901400005690752336599536939614543966642230861242427068436466300393709707441758081186432011391383765442839268715450396416267317602786949105222600503184480137319882566782854306312511248012233787511878404247708772978962537496286169653827006027839740943445968341082230920581188785854088366589040515283382542064365298336251095499910665048301536426464802616091350945369692017673677232374109798507619132892696557823711234221805444917892261519661538957175986420850893707195291940168998488730116744166415197665744378661089177232573192420772404007654618300674170248076221016573677098264273867403323924134037873477233768764269362348427300468387246999880174019523886431341719608110426599818488840666368116148618320870413843569697237273268196632938985795032763911799928011538300068421739997051890229204676074008867283406370405324425351798551982267349728520038880566889014666349266767561064967983333508945770515151284636838922104880016536544507517389868718344322884921045366018399204066869221219543944658099004817086884550760979321095604841625241683283777521875744293117950891993397473798337499367977197992055784832078277396503605810146913198454796142040300480981176093590996189944803778851700746250438399853743807929357267949795474445684205717811334347150617369971540908112661261801551754732846205570232438471404434179831678439901720008113706878648381719547086482547836648826066467025443052380177122651031712529061454908523075565881921930526920788703999668087253882902023074765307254630257185111044470213606717628563223893508928014775998090271567751712348778128008373771551462890580428764502039047079646493590576080918551135549813351695009527726902158212524450850886555072000994132581540429240914756150418027742196855580400539806667480637776551821661847157876059173199196957715516945995307853804813964176550276320748680065718233720389937942645300698193197367978690900177806439499780465024247545930310447339767314951325623617865852152427942218092999129089219637261120212539744357868666929840342166929595655462995055733362293837598932551072853161673608388720652517622881876924146894276445411156857517476363650560827518695667714813235787440451333887204255470055424862699366675159905098977394819232827131844155595516614315114423292675502918945213794095342179776797217457425646574438593600932617294349520404466022443852886778944027678672894590592837363894448607462735064837159681155916093974356372221168668550227620385449823340142929225525274082520751331748107731442563379538741080150067287165716356595936051130938480292227678698018071233193808249101155022986271211831257112484343314595039902512105728458373635961502307101045776558294152897080403127568128392908241115246319925859153772147766808833467601573580110011339082377434595869594749517996757376331991129875547587683892910721625042123370104065969951278370073447335650257227775300880873581172524195503075517033301502204204682412988586290195523156006268329707889125543882077159551711547323031524830698715430264658104231490634885337145075461248309251839874505445759597375364563635706903407778988646331488554422291087276099479645224123412597214099124848924695284750316124921140621943582237586963399348698545563541403330725702009384033379135024831958447738332559959124027454155917102106952730419602660207609129799459392536263076678365851837266455085128569735800570670454667270844232317106279588561591231658584000886656436036502668084324584488246625269117341929247878134003189693549314059586343408334929322437842199746948124149518436845961751762682040362583470916575059511962360937612908202187983391719658669763395078922965639665124938244772206184637138169866976122630657203094627912953025587715338589218777866363262570513768516343470933227689847508928067330015337962720310321707544347368530314394987197676595839858683302711088137418442293106175183495314615128645882852662745546661087017104350254308651834464651287711291046145412155036648235135250587996840996040848477476980008391429828436787371175837912625014713697571864386942966174055029718698798743990519435781160262425302867377338724043783601516458698703836906143210659196936858087590264126182376782290556713208969689253293288221098291208162357771146632761457723810772488199323396045448916548376702605580024200275912970064125637581589495589509943126168684503922546424673836601263503623955731905533191745254066435844079225067518368028851388708615249980016438145446771378915875845827990791492003592286564133714065519548119635965596471220324533162602354309261369381895134245921265973174834923493360950487104340946775372446647421801921512698090280622235416662822295759309286529145547725905001444619363145963808017601448470289525617063326341458359183684576664726477736807618537528237532219103515570118487862384894584004053788972072595795648035915237143949315013378216078749320334579080818119720452639021086112487680224888013798994533846877120789348086587727141424329812132163603303249718468199152807627733333075280210295870178441966943197305917085347808608490566758378663092377703875852492795704441871438996068324267986680405153766664909967153970964475901309075127225089158426479380479359839552818326252667292830944264380557540823942617637727556365025597108426374478055539650463498429300932609214375739291244311860539867599985627981245469024919084367928468741130482477339007010623430670677335085846375870997817611519959398442031186110637790730877971001890918481563769432813308371683658563848560291435600532186167983213571317331097658328319278521990449251820727290857288732014583959530761151994610665714402265071031571287617542729707550510132232506397234521322235465494202560208985917501843088191643265469667737342181766494444365618754789180864882616810418038243166581197065527592491588020248484906199475656331603836921954481392449946628845359668759320265564307611849548425814053251175727135422066509076245753875573598006973277952656210367249407584337251224613111830912430157518957910239630336544669121222791477859430760141797263428329581558074107171410533390562578636956271762410775095489267569739764141580790224537238446435367355995248031067666895800476630439789660420676075146129614359879419957780736120248839578713670840288902962451675691859510404762132349460995975199955543345341724009770370425435487087293711619918360625552835755749539248678665355748035523714827776922033375744928397390619635218958434673362418116602462683712302554422085192102727057148132395762967210962738798789335027565195229229204921427751503003320387972393124476551765373423056504636213897695083720122258319616258706582565853214573158642050703518894846941635079735012242920127907986696897891914560969704884686215257016318782184975381407057541223248470650835613150837212049263878164312613616182844280007580380233857214067881896392400062684708548992750534379847811397190573685997550435081691170687202866580373602633312857733308483337777280351403824248118902425303918165306145581981575655782083015931296937058158310945148979026215621042642514462774671951432322610281557050350249980076950872015737672703010374155186236259173670297747832857441335084501529188761890588771653173173916241774337224495283402354930997157304678519094037322479401177836300286770393672875633267566875265025041170948395898611769091569491383767472918866234145086469595049070872764662560446710915669389048567854886024155968018222957464530182796829162218796255720989596076353817469364957698279158913361184483914218276086886908277643219427134574530664738582286248141814330637507864239917588666003118235853302802698353669374565546500106947995668347873077819984725704600310742540654848852970199180212173339921225221059545240145976334424686206860560700708243702354895469062766978556281962223548103776802653857020793328459639577915690041627540609311592358554756726900568166406049485242268179425170594035957796483438547743387627465899086413107585208698783385985814376062921355796512527299068316946618787941531758755884381494225986447173162614054170727725464911537878710553700677559534175941146779814623194900336602898757447967053652773241351481272108079320563640048646068311310642172180834256431448083468383509335371751801959576162531819760025191244435114131635102863441540317157371179766587004461032931519913141554846303244639153793918189930845681309624194807597522096904818997535530711893083536646352114510237144567334767492285273994133644114133035957409140775456883060373042558111749538936651945683535554086012566719935453787111702317229522859265177589785320722662791397360575177619265416275958896228590897634957955161902663001220036233738937052478507881797153029272410311898337755382288102162388338404410567165213405548805148378102165253602528333642490399369753557643479636456862611065006455773913538604464927127699160630921803031134420018551639946395869991988001312966984357489519909676456176389657996500165167274659846277444090290498587115412703105833897149994720387014568183549133634497496569082957801531718399086228948329360972195024340547514514462435540321689890634114459677311783134988071122920566317301293306066360196428793530657528459853204807932885007122634483687610149748777630145463607125391927718635460886366290714565491918618307892973860738101770453211011642247364003711396981748700056706475652678257635541944932677294986473792108481535793625943956043820735467116984990830361191935674092214419482127870676658785556074497635531158138898565732304424970955993883955758464120459552057432934221177564300395354468840908207966863267461287147445181088654566961408992393220901711367351457550227374394889482846107522613450761652713246856699075748503405319179228604270606851906753939890237728319658943903074729985072401218635138777971557879764728271946348233613999631774072829284363435931690263545768919548672800297043043530852664795914051869193639350932771091435906620358958250391944479517635322516615980623449313420049361826874642614127447455694636666979062830338955003202362527406493858638686793953651683945956545950937550955981647795180843376575888443217816211712586870254116659376776129424071429763574636911147882531004199164750045397385778397055759156382224875932458356290334688725467383534482014506761602798091683652921402005696070102332287857127310966689502792857107458776366366378611158970146119301560624463528194839322564982621137692109229800196721119046445061194908551138565098257947213234081117588575862949429916477545145355133128631621765697296242892151524591240122471897817837984291805704835621971498471569542721959053741106394348221803197434423597675695100721924899404371201854119776343669709330745855814531741656264033204462712179826649949638272573979439099180856480841618073773988842154162732275416420834971637253512374964294116444622217306515624257489563020677950354268434330471416736118672088340815799520974450589510114741883496514758736857033222276521009652165368314725617104570855313676667340871497498747484890233376462892396628624239549216645455545095991984110230046394423279929829209964828501788291347837221017453763295516284419051610668961968441187349306189210885389428836350438298134315024105992152958010856996307674156881543814762525035475063043040371928980460102711695094506157813268149981090678372609126717711723726419332422418685540330592918595683300999845344990128256103497625896741979533919404261404381668484853347512041274159484425887231705852355681081271227983072416900300833364163619264446575074031371631615741827409805055758747008776333088321770098063741888754686421926926870057597141193362703819089898951118952131199737458188192966199017455837677749638523135238177624092925342202049582162411496972704721375725704020929005916802787069720756630652957199738743097672465645448223371666230784153889475123395537443665228124683837504760402750678241421095878421253342497180198404261865879533775603916935786487183274814493012608926619273708627191255710850467964977910134114900514445713817789939604494812668333530648632132400298178452285794440319999966582933727133721467192419713757201643234604663385168001296287456996393510736320153232339504132684072788442329050431623477929835097377207162439740720860590594440916362389548083822509698592916583615307133499348501987841644454985352310033122015370220764981764296443362102055538865943797302897052647070048730831195397877968551255774297498385202656376531090080915944375198725087763113159560349359125397047034902582379606789301215234103606761996386817471759963740019777199853884700249236440165946471541278884596300933257543186868149052876788077614681266306152195355317684629847481712484821203603528430606889363263300108033342083365124710337443463471877125749629476278762607452974794604524171285500215234885916740199947235139493498104559170410583173434330264932591080683548063979979855791501967001801273041059289586940730390081007861831186526843360430981416940512239599932523336104092423407030220666781193481914182127995677456003983866535469471286893512162186186873540033878321121042093196709180819441882957058868709101647368144214576029800595803081037881740435200390028726879021922251646794626234313571533241146340147815931673304174447242975045115232504252706413936815321409682870699723044845981824918227222251766964808717622174491827542800930376057125514517045314113670538463398968522620425696335370727671633917633741340786530135515789991915945304602726446835331982576728471239009697956628751087025636569177192665294722403529160963307959705080237350107604119160252289870273499252385483800373252044062899423981720899317428560208464163489050299332382495957304441566441774521123589775971835137766005793018942768504844168879904127642783742832908212538866853140120620998092659140610385230029427651995642736582235530390232204817830024469708021301937268022066124742440220949585827671738759199808655626703268967086531513672450418383708101339063432092184283193301968254228249827637581918682361359712984188291988856983939482764208268052403995004553186389839591926912761525460376668320346075608794714070047275016193985042340687147234052293997312496918790637218795326598344655138408329490124661447384641449013074357248266838641751859636853623010291624986197924420599300412820377751317262894739939770278060088959639532392313306387134255642368041003368167338376522391225346729786414690253826651457463257138592937264272792604324153801543739414793391748080363788339289597185421544109551269613722330506961351968481151395305161127764958199190291243654728013537083054929554306381921903669585954335465490853424427517858364165143083517948673525912909880108962181365847798366909836984176880784508172580178455941079568414275382286840827395361821159320350776597081416483307192088935845875238577535707802536678436330009404964814588986401092667796509693785255142890731843974870361074342836088415016046066515657983582914161096943018633957244386732936991057703316087087717398863926734634814952981077925340095393667087287621024123075966005832895257222759068436948917223044964594496497892936092816633341801572808847948986040975070041014333340733922162561850752724288558355441863640860647982987885299052208094299183926256045600375356187177536699819541635473248313608141867379919462630070597484906368678639846741565304209509391999461069467215311602211279502418098739754714408823938501492456109498035738768080736151890020917112514144350955620472378966218420419881412064122463610908566418813354498870394559243025887542720198569443393240526071877210804299070162157625619690816495927010105613260073567799400419158833486917515441524088362086188970160705678256955957961041452384223094048700657506701707178792412114087289582671380855194692531439433561975352198012178539257033348682104204191916190055582432357526049531849236049950593304756604490990167777318559642374160817232822864432914181494681470171910324894361092423632757121619771911428722737792417989016461255535075497385864082051766303686985486797072612612676291151866563939028569666023248865648431160425897700266617994725726970240072272818685497867910339487895481190751517144216246695102465526698228214598279875489265098368695693163055108182968084517653829636018831399504283550379986872474285537020336592552463754717029354538379187514327255169147370825967884256989861076567299814756569491514104515630552104458872943338120712029859066452602006129361567824124380018640327617681288660037610333805426840974175375019961208737527017978626975827240207977150307630538848472799301454443511945565224332460553919706146233494068647238498994605503051535585701730309257263730826350166881702810056846093347764698483977568440829541585737659782211112527446182232831863543367528737116132462138463275588285317381750850814235067571141870580771450496556874114370254884094535384163270277394581074937544446865418423051059783273130865520382239940507263869241695469956951889432934459937793238985527746199481982094008979948660049425445661464020583288050721051038527676157207472320848825542039197219058112066973686630269894500131882649791380409267740376991509959536859359332764292118171635867629193617069886551372647655283946074061239962742809778345281336767009857711254988741906322595184975510669479368462487312770246409273339680202846961034523555718398799178241324285167033212432397354837778125858476981089158761782938318321978696948612555679821472482203734362255510103511053004898335221142639105705825909431467355515093723207607416096196914077983205460307492192976429413311274985798136583061572327114449384889479006162696692111206441845899096567458763305541394061958381806260130091699214846145327297052725739938108640598441145918990461763395882789234491311171360450421268400821463950067234404486143685728207877455266360307273687119353117051834451144845830692972467911607533719059841755135003592117007889405437795370311641573357696005130257887777413794890045432758404571684476214044971327972739286211784131271964224651064735057341035974915921705169235152566056339239637035909652934836327295320355504501568074264577006224944151988807129447618226326476315821416907575880783951016277077466142116373324600866221395240177426605865849846437170296819323412449621869118979880800347152542495249567834554892434630601962724551884352028604043799297884873524184883622776481543851500711431659182410076974416059971052682107254135189555699908897049975321797721654675834471573737098557755437851118763338226337463828796812864629510228046551962980954217112989636370237731923874957564421761582830679218087832374624310234375609192339557962415815444096473304237556355467054281759109602508000854263438853131847087208793117179123756823543271278927064868922492604632324055812803762551114711277711651721903602377874345230675513625541132679091985023697231916247714037624723556491668414508834911544587366621743787439768398710043366473127776751547000282248492070320845050583835424937142986665650584829818380285878025982510297073511811850902955665935114385727882528860532811874554294212749743482016643192007459510724737402567134377500006788671803382069344432143886102040551833041707299725363628748755017306008356132675357161437379990803069627122881014912211088423122035475057452067636169268062176045077311567627753453766269851047584346921511610019229590477409856818885766906927716619231297035636922960540735570985008325682865738564529629868685792566294053277165066423346139172837693585995092058845520545843211779850628065672318149001521393809894611750226782110411978826673750425044313757701233707856304373023956216736043759690695160017878205322116457817973973173374116672400091135599779089732936277307996825541944760548501387414180175207614153511022606762102516599606156484939682728921570269017426638465032323484988341256675499069743533757808052508372319977215789039663936219572595978783751562832130018490574271076200295753236481653642029190666710391186761577196442413886230392214746799318837635446814396710693826861331511462536528309982389057064036117628905777693390824078245540851771724410019822751261653920733960047811211622486452586562599643592778281715258229549679056124602554499540612347081413644341950125407023049490195577643504741930219505718502033119770015579833140538110453335945571368408477092410428334872881052100233275002728647748454747203223626830038075693527520415227948746110018545664872209843426135974106741394238217040022628228570862449284365473748755074517316714442166057212781044689524016218894069158362351024688510408310682791816020880487885588518151656804811360104453828147869565250775108357483954410964577057389791502711258359627547900638300860708620790293556197948753748171972873709750464846731549612525011490785429525468549203398520180889422949646971761416168506910224452038505072718114813768454423893891552185647937855944105532179511664759477363649593952614950179564274865273007598620189436993364898176589291747857143477066707181323985308566325688851815062854110877492321734221280004322149826166279944168337461903764329234869940368917530101024657669626330130539735020818713711950087838265983794321507021814426756119128518772265701128923169754361027228166397791465281986772434005246423129540357327728335002329285094108891348589984140146883397895281001295147769954400725096329221196562924025502358699009202961557450657441001356452161225956388059603507317494285249656442264377020870568212665900827393979300757956867485244614810967582144953715660373101907241585291107389041478525027241612161865593679132475621505020536800706332263472962569120109656103424999877599050098883457756931965014424320597428984452026222323176593465379788020108154536008387453291955658091214499498849299171324177007617225115429645829808348111802046623222649626341597108222561012133114141816425562628401996744669125483087390993590216819820235680214319804228118114099053467895986275334930312268771288622078900046728944869082041781100995959138388780922564281038861157197081563498360859097192186916005603095704804724144625577253165658288086595573412369704609543436241279494706598107318962637253125567429358021210025816832569097252848894323567884866876510418984380693004846207961967020152601815135926782390400367903428450001562868097901010519114303754877982889519932499426221518099311382566625969105949355826546910026088780849703034536578382500332199536419590816023002398743712502571809048025395377156481808288352586917363941947731065705336979959183311194607126751956699521276138273708010873238866245694787423039001916068409226943745011662611773736478301529527706394907142492187824447321450732059336687174379052660141203358130107466919820487617754562970556280995671469874399622018478425137205370819806677149849211927876477479029349593026958289871681041259362773672270431854637889763936472642277146428064292977950952033209806214823296592375377158849818457253965398593896735316096539016422020615065069547227413477953718830531231001389903012097820810634062260543525779794317900939070622537959348188100682478860322746813086000871052468272361550647502449041051335073548737050620232755071621441535674799390150311736196051931696629775222703466348682995218925533865081270408675562694821550635778786896849204048460047134867459698454827113180775706283576054037075061606021086313461468162414343876460791825249014907419711017502075420621807144107856858903286556041879091788393156770020476404511201985695649858599073749397498051674800974070395050094128592720103193415498519782264962018704926289634288227468563343619170092014832370692732160280297920713008963522951379164090798024078816929913608401889052666244882705453524549432237568757380030122682715100264771410108293687141389609289959220854877292488121934763003958216688289935620979411090327061766997380725111223890953458075207462205960345082998465677893299732285306516769706059451688763910336853191128589074598961781689289794515131946597936646728267553015377477733979574061104278310379628104786199431532489413866959317588651582006372388604317256657145350739528537109243298022301988421844075918149306996739466542081118981418163344273595465836962978763021200573629175184432033173133327551333414095377213148600494787540381113356620293245068660872373919250508619639027851743514895570503368416249273988385652892825297533729544729866643890331020347964164178881443117530512080999680796974874494003320575278173473639651465516609466452347166728350512153395015662466519890099703408102740420980702771553212021737441594791735657710816592409739400692593947289519998594889415834782522697804704478447453937356391160151871754598679381351654564547677799250604023166854895658426645597956465007440477668309393472651562186524286895931666804142189971904698722197670992934193526088470842533636095688520213126710769972834109347868477100293318480667074314562341693499163258068720478446119664846018502710236612386807182287059189435123111953204767991451087646959923275890784550492884213670046398071169046648408640602166061120206935053938596874350174432159469347012468354751523929281109376442582967917314061911693795107136128547290169842147476588407077878559687332500084121811094249532395640372586021707423469844609690525285705742644864462456429099521779369342165973100034039872168455671739024051103996854091204308294786125269420591829870129816610254420175441177705223796392591827514080279088204504612479733499382183845543256042409575560977649084992370689529840655176979943789239048305753003730833895214470009975769995477687682924539850172896767733993121734662833135158852260721334010158183883966564589436528825798529000963081205326044670662638122190651648684922392797707645738675872327926648658983199189159623431808105483083021110620569877085445335035447463217260865230624357008444307189883613246782669896003181268581175723621978469033215444229615848563704692791682936696168712614913370080308656080468475065407240751529043772593827976209138746184442041560809718422648446698226170135270236492861436667539110868624668103815187291071391617244578672076597260536947759096392863257569545531171538737949761573197420827228629896822309527431836061054247059932188153281612925999930360939052281138632338389251407788968487148753676244416058908222972523151684710962747130841798545219285479517436329816625851778407664600580126194683023163075756688405480759659921822511265360082079098183010426456702062489126396501966268960484352358198719199499090370130246807742773388763610883260317538226827038626248735355082952671923296950683823458418140616430977086728511876589723926353696688644210561790761364946301455958844819328192923452609548622352566433191498717983967175896271928444844663998467961554768953419598659020879773816023465835182075177199191761012197824990028585749395770795392654964504842463044233110816313536645219948974785861622112184424034467074549484385995285464949590920473345532399986492199134997867933543148775680751238456315594223521933799631789898318399345508468808828290695933154735223274404135864658374844836967805893209709575824683890818655146084518412190972081586259685941478071521248184632133496862907063568928035723391313889596694676314733123644284340053395008239492875144606216832806757719295816741504291258788631755998211743871123188229303775506496184035888382542334331532213554153162895588399514463469017976039845822489301048682411599936031678840876414481657229094168324542157209617776061246452083895656734474984432180447136495562628232521960848917912314350942045381066776110734871734792833494478342548670613162865477761376295163755095694690050183466907257736300515079135090199373630328522825871070449134192353024360794356509569341447323053641442234685086581685993658256159760240031431436465222600957249707832294714162586176574807214880087157356544569791530065495935337776634148393597300961456214307002931789161676530248078102260054820704717067984400040321715044125524871618207736433467551139543602544072219066031078945637599225767303279837211108565705521198218688549127521239536429368326229905690045947120003574117666220334284297707348872894091447207820760963450988238336779338826393550369551699452068698363075434218210622402211098170700668243190932624891307162093684966851395641158602686288091318577398430687142125783408411715063618533090523039043910703514200982961706924509251428939594696075735766059062031531411570564648602084565546335459447031765319628444744079838076307226087788267891069198523307417694346847468062835165450522720504102720408556350639062686781497708023173109664177615132041680476074680662622354549204688640331524206269135208043807299003791816054364189480267010962288996513354677543566413704280742040776023863077497767168155323917089751984457257556752439806147919577665852457348791234750725731737346349061002415795238277231791581196090619369740572194713949689546526786383978753471805687065894726158948731103909827141332708299078576832548707905903227207984611496887629243952982633776423769652904917071829886769739969613161191777919491603869937065081227726015353332133323764691131112714129841262623611378444535406884493091478286763518577746981049337081358869423387081872202981253806752373835604594449814825338668082434377935177308785852304831723172084567933729786802577498642146346565806125294757956509876108920621021293625940889424889569345311836896539408329767298134876263925167294068474855084957093443393361420534926484030592579012443387647076019782287506180220006550278681664146565490103790477208160988788933273780770780762735197182673688005207554704170545399437054531776223771100426677882113775695823605091821720591324568879802220133255168888578350578249890933548242418127436633900709726253125890823171613050595919363448942857368433749920645617112413368299288070160823051601074439989058344105565323690054027875827469333298960883480058107089049898734625275082368604217050079276759355281504790935969773336525891539178272539909196022921174112245636977490247063785261910410500017918497253397399738504222818291541384724873865810536853958456217100429077741145808622860404643220745121673049521145116740801516481201182418785706979417464178245890394488542852194597640749947682373253270815306756406079618016899907034368614104105107900735213229050304366028599320746557255363431684810681637914746608773545279652989328439834001349524712484072032191639443734871953293923976208428174188076873012171317528740367545906270442157303468800908030835177067197682396470533883675953764256090611821630228401483866303834142609815425281843674355816245742075489676729953697352113713725314478933216787260234540059720033740628727811383437840377388937837889613361596615437003309344189965733779018292046875272945343576556803851512246847007946693889008812265599421737900533086717374752439385313239538737242790503974761224456733115200412098165385952149232202625850938442507597582494608661328150445336359098892293037052971847018585662745401492292850456156134810802848572939057060920314773880165988536303312877487469628039950159354544285437673146015318489941447212376657879156241267342648807394893192450680613653937750700330397021438403001227313059823930869008573450734783089603072255289055181407285585941469691758563981424276161313605284321739611656218410679224859780558485858690186154101977952501537402199540208365216085232943177071255974936951968635737207459984600283886317962843303121651896975409999956892773315738225766078965042964768848103571154932714488520809561597417040523831153229364359571770511828664029414609537243752206383022733241083126338364837649670924596248811941328485844849758382577816155988204415462649139871815623623615922209754712489821416637303929922697048789919675448331976520678562899556273783540944281210688309775832867147426802244811491066876940494431594518041809809511451875358119284772708055960546353031846119992032364976745332130364752735815263377197044079209250089197629396751272213372200690737213204956544466482687544193589935186543267383639282143737432192613456859124235839182992488302713547875367023906192810883872904342738596105948443454079692857296787073188141574465618443142139468927281064757237112376179091554566079739020530143758124894538171309271395418619615613652738064750631274132089357443467684789016500236384147989722620103774650463133668629369163398498773594036490081868959754528202528220841285749098182996913583573319084877910083396947111430462722939508368730682597880032269903734515359168254036169199156266514694548162996759566201991903551267410929434435064283806118440908236215480107679348239579881788503649594565437020426437098101756637813857134813759964080851322424077343724917584185328179849169412012162764590337737001909779261592334906020848224435333860451028054359908234655048634726278920440491157780181884320978625472106931640476180072345977443365551877728760619917314600053462736702374110200405978617985028966442737117545773325321495070287137710140525933241099189262257470184665281061065950520913718380770236866933033947255350213476594551952856919878598496111590048186214432275766821219095120192580364461997861056113562698365076580163809674226961573115964239498569687656388689759885325892767941994849705667135432271190354004834436360114799430383018867577150045973328964333316326093970216233219615303403889484365795163928680884118408393429647798722010564476385646067558673771423453534268613135068909255063103280882725564769497605203781558984420946564304523042732194869596267394747576520435444468670585701196421819641862565052309350801617135434948227297858595892888648826040090787819123393735325928744103473073657801662639189564935065874030872557961410341219800719976058790982760972907537472749840607275686358301108336164665453302868120560252848998217914522733374296754266574369086226635105669377699507428158171423033556186393795089188325894693289934486746973710898609540843346894341399982246464522333846014704340242037779720661596229052963337176256066135322179906800769721719986053182870514662762498707007016225743795168058059470157617559562026646307067124484087699668560662737617774986658470208844020671504192097694215546216770901709387051074183543977071624290586983082034882624338798535091250611254864988532557991925443451222371314483956508093852822774390092184917991123748202884553662795937860303465309075126013754688024668355964716734218355771745024606250990767734561703881070114433412891624600766493867303695379376750854806051975713812284348313672628090411867629408523054017376172582356468533775362939516746784705096828550031078619817266440848760278251484704931013700094360187160136401699723612130599062186224304639949326108638128883707000131256507249616817314889607326738009828791282674514234762149891630902267371748258599605694243831774058730871459176084300023772304094017478202611878611951630911619934087351326177478080251473646740950348230415638531551749327040776971470234546010108341337210944150345333345693739221344989890157877230220037041404376109757504031466248893880290725613610852417682603151216967385808454411950845297108120206991595416675008296572985050050288379348858693226399496065905551842114232288818545981889988969965809360864055873423997178259107713183978514338834275342823769874052863501451612233861603504117454665037956680415044602980690463384724590515755555836579685090075031465602697933786757452220339966031244364097525862277736049476346062878132897653781552866232353688540434615260775767282354516056847052254372346298137624852211996694905985961544965450203311047515245035200101716849668514622292905058602476871435905137136858366527059416965824192116216733555709756469024318159396875535664192022847637143088029119608675758938420273089135608646851860578932410536369607791981635759740668615509756910870809240324305503374486265936218002041003565900151238601424524982069329517229084036462494023153014050656520843378878057647670396768405376573193052216722469502172091500951021662848505844729474143431236639019839296209128245322833236832365412259175754068265882784285179106878777401675221340460859625040469888625474080222346814173122811926799551986773828211720716636540395854363566138712400271710754032887722922824331682660491088927274508490518773242372033000534298587662782796638234838848187575650341077261360485343192759972815837399831651436478100280992813573045643908693135433311742279021926787109751527460857435734546642809002693085316575679069045810968119705804122639277933557100566880419976154239726862226771842348921233029680984077387718072556512758770269062805483438582474492261433564812549499201747105437036982996793424414319669799004400988301894158540411845301709451994158239330578931818007286522917329645652097835468724171319705032607881507783506788844048828229022268929750208491588020955977701339393794838712077094205673978561476301774909545877840835820629253800715633755677344827502150438482090155161783962745975915480849708457840086093298475946306476705885899790085240185234905415501945007628929943083328985536412220705459910219214805960928071549255964360569426288254169728156692904134742783757049638349645028943170047029583862768407810463053184428490922708107366092066120634502759939970614333605478873035433272157654017248657408336569454170674973788474004658588797257762859069124781396450908148460787375970725045291017857315888065939477744608320201823011156790379855687931474098520418589851391033120467980880209829007180286605983027339610187934550513765585412096760996628687914431983659277814301984249700984016067539613967802835395801625223106098493121143838917261447799116398327171166844530608093468641363071674174529974820569857551157657335710862004818930103039732350077250349627925851082505684859898664300013867216988497572870074032241117356855826540051225782281778075020555276603873075183523380071786448197518628097941030378712726705998802183502606576362918815199594559452975616627106315304938576014545843029032671793013657491460856872331940891811267958205638468851289866070217277510144488392835929594957788700490044040855505333408378335066271991685047284806526243317699126390705719528582548832984058006462727844986816528680244193280270702773070166917870001592714075753965073542112295939926696828528135413776092235950573812603801338528545874909475051447536052139468648237089807993430793319555660259734466925332801714093592131171634935821049594816624943556483653809646149452090923553944478348211739969869192971490270040977416820616700730916710117059722840209393196702684752879894108200938692719479062657982249200513616054691148420042113272827337596353208819034135772952103723479304466923711647576820593116398140647488206054785654229979744968363846930618702014380230806792169143397100307169691241252874863908558283244899457509651812711740523011618282073886223143553147000951011962518875024115051564209838825858903595059878818597805238531244083972898733901216423085557030992283091331113950789178190207548869140051420240954495523836699611414809339100218585125540229319431944352087406691336495020676826448228428465793221396814432245019136911810790992897501365508067879325473716111633159930858548752365588099619798966092837743082267438199079631464126490653929264964681162936430845522013966820958537898746322965512248040935417843166905525450504479940524266315588870151918193412048176685165837873432797379020036050333799612761529577650167812438593953550151478109031163471509647812023489580052452499105583153099729900813975882104673100976356898455866145788221154561201471307705079107846793044948187867980346404891138311211895573400215157386746519587148916856954063839904211354374632844622808815662824209101630689496205847970220677927442184229217100723865609500270907993230877416001335411994846423918691434946891484697009868248869086064400252291439561318231268119741149092790464946045995903180780407652574688106607168480308509717443428895837255437678149327047557258674419857362699075247058607346758358412214342220223434091168502441455202270386963807177573893453114140312382782866112252140614348722529460141686474742659817492566561228477054109952828718703958553133170282510355047174351914756178420638495127570510411183018051600119402725638865842067369412114717813352528382940950048275999009112389460938203021753678404490539377066369521986260389702453452178759359576160907710774306109202056827109530271090328685299849297523234219155602227603446772103851194455528842962194621105585470730970818574851187279555055365923424578464048124564711882232473557257728671569204781378855115710222421670130761518752433694065712899557902577253664421428877412719277660786210974378991347469791195831248651750903400249621437030571501803981176009647540601422599265510161930832033503754331561519404311193275009848747934410889774186063539623163829393218070043840170961531325647629843448319309539658402100529645816906152638577109399552156627320184859474314717605330247440954789169340369497397347714698876372242754978126040735624954877481633215602023132553913142014227453145886076942660514759869802106576706956762455732177333935597749473586881727927758997214785473055514134917955118493777225450627631277360591989771403532084427990147255999481849578233396143898058464470745131582597285157789979829021836148001256089903474024071884826442200871381812383888527090398585369940511534090696719484727197075532663513776123299536361987497500105522125102793834251323197883767389670185761829479774694796209977140537477113221273019547447568788281008598465737857735937267331926560272572481127256992951381265146784149339750878626385470234263332713443284907750402384213847175234077785713854140338415417163388972940497966305665054048652624629500714361996010506980492296722291598462070706471424067352605701465126577576244754254118244576675025250002350429919118531678964813284131152710209196455749800078533447342163829958396544295470538885910385621287859630630813853883869483281417884609645371920495613657417318751468573337888195466885953922717606341653918429883150007833235796551592937132854144595409075199651697144152323301686384283591670321403741177571195259973699468219791195004168035153746206061713009240699337409958498034931813104946978721187181496197045935871231753904929208214884696763491760475199128518203315037553670839691740291500778217592987399514146223532453936133383028657605609641821886198786342971460111171817509918697670897163453578084516580749743620523217074285007427181188220234219571488609330425019105502058481645025704400477404254105128705836574612068362203478776101724330083603845427614081589906916362338882073261950445134232169139768821296205873280661137801825481126715862116996137486573324271454604687361922114489385955416686217639498411392903516054233764743100848703086869342346615107312946716197759024058945589157954683506466254553275004405853087382544438636474621867148492682912711421016682230763079059778903540835656264922889786738600926448673986087414869947138155975429855793682437185027487263381602560348578276811746568434082348295772248340919375157832011775593901897214235450016312700000567476679695334626368741790535301664544780282237309882209809086879524058048234241002633361482369324623808194125100502098526041344878525740207340649734671754677839302534889680467312153170238238189946031919417285244235118423708370777975879678899077474478802218537864215768035571380751433203390241507970664470285788166659971073269791139222426574804638746382601493915759807677035948007820957055167686682674678242548527524486939701574591507471472203896763928830409406451433879536162885043583895437177235730437155070428732918204252364573733582165796585840173119505288027472772733440101285663527524347030503253223167145035008935209684236186590691594386585250572694578479063651275430992211724197976003754405292052778381363029611926529795282156158503583036883956624151459366384905411716164817731719758872176665026198457856918443553217029845410574369751581722763574720169103069717048921680043258967065499107035905801961860669176858014404944747615660178093387977391987927732179401118486171259980559332561131326224001669237892410149390422887833606428183230314262610584736428461579485008420680889964481892817575942214155959919012076023645815865740591061745019117974185214151087372528404530552667482499063795424498062521551738449650508829529261908405587137022018086394636852555842823515938569448943886132832083182023559954332963648877932833691849646702305374890034595356128633338175798372999246747141244318558128918139564055771693200732202606756124164508688992047411796640811943454739900627465521836635945573432825238116900410217913002467864185864853235345883418680950601162262798984350438885000752176241495561895269544223846552519926512466793534787021011778990215760991702455622327816864646737011439756686682512438387538078830027799525877869131927524052014656026837974530687943969445460470984005654064312203530432854030710930577921400608526858271404900342338157220445055124152160153956437846878752648177420985505472920335067621923389923805460310176841327331467619255129041832311720974311942720973435782406099175624017839012447491399760368092488530197758730205771979111360142152954353060630544051461364943493190671456258136783888346203142483536614116153297165036374547808991225854238618881014950001218597210041523778647918302641897565712828664891200465337001957505261467815106960829342253138407409203898414457023266919697122757831961490360974012130369648925447998456122382082979689602592223679973546973954872184593342589477886848231940401776456852401715055938716641306191173614567481953875284083073661307554616321531273487794616296302442816170425912823171880738695064497416532117949171631133043445017718334838438221836511318028429067440685746290265180312323791147625154302858102730770057370710147969423244323876774470021946280319364828270970233142710315154452476891884155118282351616844089212881368787122558626182218910417863454943651600418911144625278524126924628532472459699897835172030417221048913437614849086845236401267945245815501335872987934200158018584299355476090751707226759197633885992942829173188635057018262426878038229188308455897568701004246673110701934289719714336464042885695972842828687732842799555952696116767767392668381339063647079032286551474862105414958839409110814832993859168235431933921062967133784303254192088837688634269747737972642329246882591884760088206396736508604708653632567308559356512557884297333009331625574133549162997641653494793263854219914937800487840432778820053823385698657315589980542693663389143129472627304162897702933137243370185494509112323165229178711671792854185915918366398871842535798563173953325929702830704985033423117286374005337225157434596558922227121685425758077723273798924081190483741453707493023026556450532025145098827939313569580254024726355034156433986575871671402765780102604506959605108657027279703541962801401341712385553550878041755251024248976935772852923085196395777957608714038232637348138241062000503840572099345615000197089226463318405095111328749799685438588721174612509261204217591762537089131718777495247396108460861245447045675537339047165705156751575429709532190401837930596327048443955618373059651904888500986565389341724977974102995884754070801261623856812439571226390244215510571789108093704809904603058469178184902684255906452821603507976873814302914635790326885367437374904703608556607570735257610820106040796194985226834048524576841048227917585983141411870262429779495237839643843601765301754120418598588738556005582260384884496088406892801895736817156573850646512063939197303110788760542354313610739685473650333855110673182730499696257820954548543859912763480116623134459762179212954722238555123073978121207051869950753498962864063503872832649562536021708580419818584180189671074652130987943772063375720652637239034758133332562856038826583963808880518966825882273955015081990574866261084672668914205560555778331357850376410958516330480449758994588857229048743884579289430019905624090886516958906578654271089331247705814178579840044808621580018787974588950081598922955383351881119033114665109666042553669382616167074271515374565202362854070949303607829934609725299774768228713091840903498809842803109724636063675500163021825262069727371381531843056515602606843080235386672704133471356506447014702133101769691891009921492765914467125304507412190416352710200216994852846573183743528569529748468544246963010606998421219067230698535621203724515580211112738177255288865769131985101432051928777477966848001583119419803274149137444743169692357757783798578182694582239874747729523069961861511864806897898023074586241155970454961885889751258084213240199747600169706675353759646950500242740373429528041464950071945228601255720593169585619400838481852800176603077531170444705417643071722444846339246435920875545192896249416246236432261045804171578657808171482020382693771467559372507005591480319399676726381626744737374160984111103923188928711364610517671535530447171697748523413094353997812827850108524510795991358544796740166226869817837670897421700972001310916045239271432674236562576214279752534648043866550224076965783772405308859114448132927217861473014895718367022442003264999450009009729717522426644988316024230445082474275916668996211760325531324990308324231282448877698837485760431185486182088165654652213317154971852979085216316680233295287631883130189199742430834042966017904662583157915458944843919405862052701825005227603197490927505411281110586589932741382196082831902509015141333171782061753185921066663263930350313931135581896572050502527572674320274242225438575398144576868351758939688122945963310361901225607427890044963661993312909735177845007055224793081083515944450983430182475703557128640533910778330356147086553385570156732590501782445203743282088344906321849886133920801693114284496023921895163529902588465688985797992173928284624901624912097977158507091899048802766717969710624166915690772632166122307792707046948128189235928436341876215204218887173829669613581337271634262610585552997454959063544204665715049770731073059766552521647964479150586992295694699940629273024482773148163469364810190550364919234490129921003375089210460609377245881932726040701655763860553985793558353673379283623571623523800804999537340838103853293385763519849605991928378472588045992357427490603208973700971824624571675892259477262343191668200227842619556094332485403046015620483276448990601546951491754950159634815820213007226989772948249441195441402040859561783395507518789004700560489867463551910673240440608472968395816178970351206685303405163122360386563366625348749046758715103877375678690830357368622417437078990871699186760149156301629536886857688783546616729635933733000369890915204884455897157241325181577514582801010381504423508397990430069473565081982203969404427160890435229925335338828522497299747623480890294468106110047704978589987516816070631835895420351954269163853894879057162522142053869665057953488165254059720129664210759359620044914354288180947351219978270424520661708806059884206058282022944482937387200443543921918514031390556309811376737971583467340229841963371244499615467906282895241980318786942010269250613836842603348535229435443268015887890318197030418081151043173445624030876893431735587990904136841949029503248117558107428611341599421158297671298682146125753195102902404798972778381694754505342178238101111305327241820596043988383908079028170575225316855589681155781129101837915727510925734927499725383391360296332103454574520185815260422418276758418521445749011395832303989249243797672790034503981481736297692283389305077047955579785740455653642232426392506977279603481369053249047683298111479913139499096817225306901274828123320887496374525486224021320223348487312711979944709854704089968340169094003197285822804794849144051845916922681080674548256761272961377056865373066755223542754011321122377202251152352936277486173300057524137848441679750649842019790864468542193586777889896315154923144395442663491015928539383114668428251578524134655110724129780739109513404356584686626492188416350132104928397603091581552086548683436979643709249066263224052093500445622379487880620015070758977034968626244168561608237444973193727675057126667370751711119660084016933010271112564162641311749332052070728218766495480076942861032887032305228407380091425223277910256492293305354382593471010656329125441345831826832420055014693398807288147289079385144559276919828230178368008026978551472771430509671934944746313456434991183313543409170497829665492784623102699043276615987174789661489941510640495126996099415002310949527150156398585808936900306267613763707335883978167290356036872923867020941890132110543069573662712245980284178724500497403789211915099852435008703236877315618160900062222444866423520752862103781174729499572517436528930668103435622662053464976662028754722677664877590373078299677896769178133370777212221515014546306542421441032199596525656188569411128931430476194012635732637517325529516368624775160240297520983896483006059608309679273817745736750875922770433022654426425369909068047621660373084773803871794035142951986578742619314531070266179091713870312192685842866837190065462301959491560263231281449335465590641650284261791091571562844957791588027151678057371791529722598836360420621973387404620335275345796683342712144900007132525047343968843210007159234141230848513983714890615419871109259225156696417129295285357476722134380760562809520908366149798577744430384181979820367944096389928175574330738389630391808367422735965111536521399169700145824068581532033686800566688596434236355766881120865079729879955661349139474138944568057510204634023639073584841439078969927805019210030916077991086554509926427758349956967370918323448184106226344742105557601049818980808016864288857299662438009371477890824204231697816072053716580376424192261530758706225010393518511826274634114570337601738176914622910356418352439074023209652662417023857777725000408794949501214753047578422768595277831430024314613758076091146624488082830680464312011394234861843164700871250011506130648826877840470583328459003411278193280622166357726790422257831248017936836249195713834084192769376601782275882225187273280176597414917055229251534376456291194576117105986692535161381137003963600583509664186500564690857289471436749620250454291915297198616411587704247019110519533781371156554295192682723577181505388440729907511547092531023982336821577018127396104986350936898467776413649168575216450004093576622938143394159384705991364180287783561701627679100348109062582388757321318500798137407249371556762891235267397915523233498585666502625993732658256879646130638599611921817594395432881776349286824895800724178909881703626790399618678937599891085778863776620224575277679867413696961169894346252690289498394358457593431514051842445841276804007628993673638814673339211572696452132492714815961027129892964734544729053413340711313319084083081728860074099563966561000475618825694199451465219126306407023533029366237990533289880512533441079774116840888106155476320955451469057560653944377496677758134466691822300419625359705030145940953629757324021037600135337472982130307370849368906137412018210137109999287611932992513656530438007075074298079714024145909468766825365475224487774280071080947144176014253123386961151312327170741706952114623469480646662052339534312218092838127497179598628648246634385948221645735916485823420192167605925161569812783865471025878918535248612629603508303605624025772177583558194040120655008620046861020764357301966494155617699162279492786051853626533498863637536315110502415988757440377374449857192178657858866610018086276959592824821599383209178665033247101865080718080205763937499473765638103998143461094790892895018368176838033576618834942198836951361147738281957690704836377527407766771212508132174978521654975547362208690224798128152126824305199985174963250483239752207998313720222945571478999997349946970102459403809457087700600947137434061528730232483936510456856982183164247806532425926375663211771814114952979043424142881455756580695354116781035767410315638553007482857073472108136246207967572656610160792523241235245918600461163949248874096715305866912874749926512090705781197314150697686778426142140245363126699367032058860123653081599117433923713930554991117602020544961749578757005628018977002011088369119592588659538731189713334530611538335632994831536686203103578243686820880696662139532974571515986053730635948510490269117199921700247523855383640863707173377294494137315913377609370757134199171975125610963966545074266551358027502609364251825920471332999673732431971900191543172935918844363853003706203086092381090967416895440496665421552353972290419015342713316359778511276675922659418966214106071931977588083221725205732844345455788391813176230257392224973305421035881128434018735098086488170044159026740460968051648460664006922653663707460702603035600795453309977414684462550695313312176686914400364402641970426102091539075132388527620000089362547996828257461834667546536707254339992369559183047958733516700175437381369527125449464475664257369422030757210148775558000284417976440332661910485023576235147836887725751620823531482241710289082103683549278166815397500533740586685533395935911443600660342644664036208002752828879561552418140662190320155952302732134015530549629922142839588015853792244323848940518173921778609155904242016407573953262624399396028112586023952713541667318571036017574112382016866583864594693197115532575431964630414321020740812061551136368524034300242483935946298032576833221664268781287620040840894386780032549945217781318159507601123432119236436114576469103239884446987457533116136921678071679695442388520011182639832558858200851906628195009158722757245567595503346170889557982853941213748173177074554161392197758962491644094893861581533924898999144304290285059912199481708498138473628945565694709329363279676974448586544539793321178430120057714348131131312573182963251170013284484959556481018595179677907198237251800032825228566492157437209196457721361218976836022680227753917815793935050162486930823691735513006659532751142024592975216807396725591298108899933183273223380066487425427467072998523406857235882990788482091446726216000387483932805019758742841376828257502053564093636163466014170572157545505827014133448764756317478941732650939907921228019854620369818618509520983825217322196602843094014529793684281594079287018173750218155904014906172351758181709227042140695907213154210719931125742032775175523168038380155447758306920572393625117730681384999097182494383158285543326952899890967408633253419877903378777125890914525037267039953237377734601762205306424253288832744136227381452466643293813656606591264279375336669307214165406708195634596533662714643415950928299793155782695937167799509976996701145470534577971867196651445135168986520081828151679530268529936570575164112881683172013474648892875688113714022851258092482061269259684566892929516876440510170676341024796370292964489243587147537820195825600458217867153753123273416872722108179547525290131234752924073020938398706772299935558621466063555374163687998519499958717379670911332451448881853776834453735530776942355175722202230569380853703728729530265449487601724750375210247381385568431187036859836810619942898784805044692611492764944608622147632435131120556197421140138283659454189632973776925639719795361059840314069820978188456298934134790262753921305206118139905395470037061736194054814981009369099443046409831164653943070468411587718554636144374729249454395967846773724251379266261871972120061906794349491808867944051653079985945566444047476077544687379455979699021930224955225662963481939833644824328332477037152262127304359276218380135938604648361107721488229879027121815753868913865549409632424002954706568584719425126044176264272495405326195967547104308756415043200053011034918484364773850876808433604071802679578133908142415916746104674143978585852542492442193310336728447536657508641611391693690018520467787941485911076363068182254917977094597309902951940269632049334104770428276253277780831663618159987443738521251089079982194512761819472455528803440865121046409660327549713517285548113243713416866415436089597804230416737813418703963464734086080840754834596611940848532221997096922142525161788709172253883429726110599266936924097114608231640985984801622314163594649701919698339119581742962445285999048826384072479485663507284866122938609817869501301573867282533019428070383574593266749840189867915539855911350025516450100509832295321772444183022309796953046088432976948711509476853896726127471182337630941393145140182447219871199058997657384320563505530056168901362396943560765847151750734957568763598037455921573763697631413590824846363590019924840638510186395136957650183150206935221297482798787102659777265279970426945425525864124029779713044969796804175901049706693211671978359384825902554296221363618009171842695492853035973622189778910062000262837712653214314116362612708423501915521750818984602069145182288072834140542668743090507860301851396579927879366570180816344332411999586210133201727881958046086021402626969254337494374584936578207282372681959611461222016036466455405723645101807364455505505741408484004978734391503195767123795167252616743297487529827860863493463996478501655216300388197937673516387285607513842486487172270860086678932042042650188945036915405350197385369735326980163541910703035041040779461740197069353553874451534723783978042549997537512450405785860108140672178098956209204557263226852602127795233794939513527405951703416628083394989614809592973891890559637488399447039586175700014166725662473760880417091386196810455530906875721597419469198732404575865062618950949541129943136068697835517947804990652960492740816407045766386898461561479025718389020638811193518557976684526007426519045199802785421417252566328993467237141677407616601518616121776592639526417052637186405447269019926317618050610303828120006032302802408294156431849682341185642397170092394950319819058525725101610676282404458275943489585387464597950915723755732787070013968024103609754268653300511626597494922536680020957290002559880990548899777631167773019572424304770928827794989576553559677344879418316040618569695692731496382990670547778584268465984767834405041652603725706119200737247225280140962915996002559072223762580814935276192631722081925688809222517992215869398296027148402570452063142851270930232392562887143970621800014020282733164094680814396409089770407118454079576484129669834531746606281325969182533614347649795606501556318450163815286952351885668602185940243813747063485298213456203218800936104633009711422267486752596596175129704041086767551880226144273535488082715101945738766496566637835234348141785941757316893067259642454430531761972977116301823895194853453761608475758866635926728058442925751041553235751005031707292981097862419093119886099503513276617291367140539501779325185108270189732083084378980461211701216830318129970271884592991475568653280113486743949617021863822117827568439415755685005042051056967418662858379981538563824345927736123627996818708042530177567717439524974358078989125371993755622778808902494654810923731701709463634221333010788963866203618949180827484363539721751819352823245017423059231218211794106245757276561177056704607502794572096990808657298506437251047064273714657473586251766423239468071000354182738474306401908365866029947449743865087694401891589421364264295565898932767501287302784340325105576360921884410659080344755609297667561373162059977557160879820283339234927055212668740506928534625626067535269062604802584909222959640185446576462970340408434677043924866355118512339967887905926650119886965227030099186918266130549294670952245526635914939344437473078824986429937030821456806307395615051375306871076800278223744028835710452240849022458307933647786196526665735373649686451118203815860800638115577779754466345030552963910737232689000173177812960498005432305035814029814234877694779004109835943543657150580016301077016975454334353395095105219882477239810513695119093600827505158156177206837521508480549214685304123353430502735348538989272206901544532218647985743003878473659799486476203654134056350995407991817444515958734211670314825498083823810423902780334274318104922664540458953198989780656664811767964886316838616973385962835350915473147849227143862459359220059439015248519374628971239547614449884082912282883631748974578068315111798508566888893017774103711864859088652007076333667866468290276533424757432367880437798308629597792967602494082924377199758216801476133660911552935928011019678535976364124148518008641824412131492388987668237959616774356644145644476978339434796852887923474973044840998731104960902198926580622926927940173919053656760257122304966915973042032403152097698389076065192698069023550228098376487396460135057674746363957533078381377221173095139856582180176910994719257542762654984095759020242085406348753588567896680782900918319020467117417002110265750546107500643155811588010661519787108615619890224891884852408450171966973883068565789068930616429443743026756770932419050430919241750498165702561762531190881794441534191086852128543963278702884957078848783987062655148901102186935713187101827753876154649033693285392363410591632998184858691672909085814466712906632709700075900994128691037149823126154077055859688580747750471849646430894910437156004278429876654782185840166648606461254465855992175919578223865919271974151704216201139678770901533471443506671875658201350363123940087275920414327846171836417008676337230584585450823888672042778623468102479878400370627236616750340407916740624741117190127008204090710731437529712040491350521715770310468470325244456011896204629968946368517636574120352436987844023774305002935626719281526007961176105917035983998312257706469478173880039506948989034079224296067460854726181596655418606300514136421350598183634662096489322747147493890339207230746750545965053068160118992375614840143307043733191371061623962331993509243489626937830618670095075107386340277710284908359339506953239818362758909897888032714284231336482395299247958614881892790579292890932389960251952968643982617083540448063218942471500986033863017075008034194227104666913867758410875067957325871003828060337498243645770726401989811531092814851716836979523335464765237193243518357677702889330965019479503339946043232940671487047500291454606869294058558446268272564413488697835274569876140726624212320766109815806150638536957372256295788352465978564135295026216772789365855621915123801575717052810290042368306439131786928959088619969951768489146778229661035931749258718357656506964681553242511109748634996602737632035204871616848554816130846569194753501007031920841247260618232248113038160802205628683422665692756259994420783461792775004702217076356530427489033640862961712314539494397874825459917936075922819332302249841458132933784755627198126349272930095817466808150289951017306151216523049461214355599802943653665929273166296072878498417899382368460988049003733721152776913477354182107694202861877516586496689298833554880753320852330685930812048420502346698044212917778466973695864505354418744350623375758575349867655950425917273117822579970358035237344656564614120843508354913411665440094005832002932006807121065720202622677150112689825288578167057285225602369490217354311161268393929486853671910931465208028393456406713475725150564547948558886287830579540600951950879804201142389657029114011176078623781201325298235696727950505876288233643053952208476739920820852188762804819366699965350807629401466035495889536437329828169665490683157784513012493474132584358642801862090964179550795992586857282676599063790890825386363840725478579072613775758746769141228057651164728809270037312606381334092308464357571118512148252553492147339954845395962642721298205845000680076018751332998998421603769146611651981132468441197107116128571095499914213056837254219827305306158956975651880806719248180634508098490027938153412942768473439717782989975388148632681440814555133007597233453374916874904218675129619277363735715236069490467877310480527387646288121634083170882325592495246793108115168580838665640739394124965019415457469678457469773026259962093028825843582828243187726891133649009055571353119563261146709461294976497409300272048268379889265877882480274254183927674350738666002426575689361452768803335655231962535730690019815775140104224314810351527340348785476031487734462141517124614542781978841497011045262006398226252625659936499684202041438170237818661484003214453333334969799878994311903181179411011229183586259630709382042385546616221633164747009619475777174477645724826325172676888703205667670018070717992076935970224815388323274160094657983979391679735390807483552181871536293566966967637834554596579336705731506067872576441301140091038077335552859200647673308963770749185382687656613617330989971124234817363116775279265895982448381479779794131027547150246504850039384024831567906183562419371970032394433750246273218908320676444319780910827342260439609390775687163960676311406922243349421820317290639307130367269387734653943943364788324177964742343324537760451861315646723304612121269545073615498279268809362711123030874889320343940702312449409631443981764753382126336749039688202080707674776322675698991197378876518622897027500562437468062111918293200369532379454477811406978260317376138754451810866838232671750414909684343784106973035025981257976057152780275930111653991193537979915147774920899582948343237742206123425041466451268695971307871669476558286806284411701866829207598687309409173047258979918765182725362237160687374925417676801040274708293484780365070042810408459413226352974630030334999369628494598181380881781753693757540478179271642493789632207731364537353377708790133291066120201801661963712708814403659871271587285056401316807835802438345276842011305886861053999839037343075167966681193716845123033403368878723576488346546552169097829220223760928598381343691592492201912871564077714144605681440548142229138102640671518048052771674516007158899380215638902533057155106968290943984309257904618262279024996811453115878958223765029144187101203319593173778278130797065346376145939723736630875514540330505427316899049671018954471075931113605266158494562606740386720952324571566463120713488093465940708422468522706343693800987098492747205876982843630179874445323487741946028533981930484376548303849187360707104380037802689670912643714838596276562227256224668305810883953782016981437850150283775948452338349086579871768291187575075461408734621445155417357264266189734340851452612503134830956114366687700767028431441461601007586709736017648017724394283862962455673795885518071716099011705366831982524386706348852312634202405894840555065822437293298405143222932222380366649642718236596424093230737195369295903117614404940597782279066143685656749104267965142658932183725226193199358089870168989618092765484716091240306053887674249349811156564337877065173522725342758625699668498509878111239732692837656345079902480695648792881573240794777070677780852221744947744060538406154647711754270367553876894993752264875986538447774757176779909425933947313148119661413200783608385589420868625825947036518637642100222982567127500281023613914798592294693604194040488583063875428238830807946604176922457444198414225423357653754659169568354711350960275386173606125122706893648652289201551108877551025199470768772944422075816993952750893206027740917090027627656661739265186781900970196001917206760600535247180912509788317545144546781677266785176168413834448138969611912654966216716957686500092861932453384774163989980676662251314588793720315717610921667585799078538290820181988045586561099036100826337551963344032360130944644838685195610693767713650018868234702559410439347288496535878196932598625266998839507156935680717575593935420673084652268288212385887271221617312689359740518217951218239020971656589530593012303476189963931411369710721806135843378453406585439158446737498925977316363122738869634705442403114008834276631671675109304029619401660311238646285617621902993249744504219460427050560687676615732623510847053991420054043440615087120599152674678963859335699883730162325706097374995010449702923314135321997647466782125209598709863781425006070924608599938617877773133545755221811453724369275440183955228748343028038701498700693054320142102647236658508731733984356405198141011376825074732748183037332188105906050602650121836870786697942568956424385799545101281045217723890038179137136800741077881703852211195809518544477197054222674677932679804909337855051023688611647426225160255299432621524910886928398542239135432186620249594746071996268137789086698883153163196761483093439170190469444415478528725240705339245120106907692219064117200092414976752510740720085217174980696055547564180426486300082165786823558180373753915403420681256421850168384238178266263768978932631551359683705649473639058461002710704753828091494115240785332681194711688794921947941336480197167450224890217634770660682141411412751923122713112130825000682202133901490101658069393885554760828189428224589086973999924518506969125107636992045405685246465515366321859286655258043752421975802360017798094523469893812458415581981486684063286333655791019475031843648048959374266747427412607402797293665928942950837496392891282320179485045425134397093390619201611559382202008408036146213934070508450640045227921887033064617945357804106509772210824423969849425108720239339995678988358114211495588962923310883399554340547747789129900667489789265665488335882801686702342205952079109066958073808206180493975773082820524067342473736762979312295978781313987149970468673245968260080937244282833372377806337054481368356650478631108032494341429481825278690927504304109764791844035862907412422008095192165077356250833802400449510470099499731474483763750356227152000421486083569298169789029487975959072159413864516522270300504487292648329978345149867452556359256079146925776003905146280389736571908482959060469833353103501206444211241062134117013996257346318491262132018362377168709063231159453012570111551432481218984371470299832970918068056249340020674484577624097399901776322183984373872280490517848381070550130643643601229919437787234976670563120328509105177335108352526239502716267825038781438657893898207450686681101761129730385230976569767112917965914117722180981784066300041525295376280591696124385814353503865274495649375036495080649717518862352046477159425955853206181847683686195800563471151051836074482808056162343545012005127348165074034945908358236380520513632419619937998609146988915111529584809113680315591082208862831708730500081956951079658173296804943473565358542785932550377005991643640309539306773921093588220595271706236375126120104224050254503611370425373043013922107015106251911408891149597676329672265994553245703973092065438653043126590373168577291509815864776105181434921113497775641264001350816171711804498986612375508984356523253107880462505648265515920174251547963513976648363865233978867808501144993503570457545318667550388280130231827386381830380320725845522165324072164607010607032242588946537177745710942203305835771528163445030255508603633235562558239021097501727585128436375380898731082656920058411267925055993452318776564695593173396040109193254047751517156569679776764415169007562526444202874510292154973465273955725047606718041821161138138145360304421776285268658240858767409122945513364347449216740007052394566074867024001569884585554188837477342638691399930015713349307248486159494528258655054936692819807646794606509014743912197118895294648949630785170177355085206832392359708235883973546802319911044702761089083777076524194491388135665409376187093164208819047142706779852294913458550958600781292091146053417557193818285482117350878674063434533016730743024970585457797489245625704256373426791201481355618419823203341147732571834699623760530712899226172446184079834587068572706213205598871605187450348107989954378104747587334937686305020313608896253792941877256845723638167551605853074483214624225994788572742351700314426620892946597972123148333527642711286306084853485247806260181361739893133139808931104435609571631254890403796675422524276727689697700196396376109102683263209198445009915223950883761543876060846734995566856445771144634850871660206318007275953522740165073508017925343642910538112892107595414558612073575018634464818025787066450681898053249713641351297160123281323930385416944382316761025175867875877025087542237485186791525384041965423959706967693486477326872344566898820750320097874998467526528315857767354811737597072060018800691251750005778147591584487726256481968054802217068359986382581937925762657873165265981162203231192094055462098973935197277534759788545351980802984465847423917534733683124918123360407305162237569822164108190281155567618149443246418868054620772740367892025909528395600167945376951675786965828106402511928096051687130555068644109298398984228701526648578979762761610192533752992069286855194251961300368995805835665618565518846553335356913361978574947886547471432198935362505940017863212574295380447817454908348259048522892577764848571436779408899771829645903791243141887009104399186886420586759682552125210723171734821650226286269248604247016747005317711138072936387753558740727376280672624182773929283121868992185583793339533007896483133578877640037789468556038712750753121543456937310330986280158076879294705882804957190144362798145096674664014576707713815986358378849468058592158789501419251090867587833105225628756147295991002703895780057650625468644257565982309200616966612509596144120666215089324912347941326654951221309337316506173703715998114301178979733552713031856783063876039814176639563440262647347580429048580591640924308813915156211600508786822903825141471922791700840806939289598325717749707899014261358197921071794465825618960132434727719637906148675578914494625397879320376731509765024069149345629745734994270629237679162678057548001921440425763434001294782770348787447297149698704152047776317475746007145493337497647200132523207203967016051067509067932863771177735052650828143116615501786407316091754554974887833433361319384420784222550342850669865055749960403701986665526583074839800889459047421893640232483837769962115296984546364825631430637938300273829294062221693965481100392520952817449287549513393712243379019237027554076834095618089767200612206516108420883745835159043324123154004828753327065600709496980991389599696666148202012551058810242167496152997029634704045109845716843405484146859118854533140758702601583612580587490538374206777157440071075706971428782965269371292310521408612928564145325091126060891561858273140002368766032056988442926238680639551602256249573805152073369633771218139158644551690925054951263046510366667075290422603919215197077552800246120526796764096210586366885662475196664403257143539294739409789518634703295796076846437896213407192170104855803780002727991406173980831583658892443104706378749396915799415227632489623758680569999290417458128062198261341485335244653140095254110047513439283458138832584305697007275743792428272796218856199262256431364234573121104214209884528164031136447757758131628680888051365123895261247820541158867139506071802235671632102628562019493541111424190606723778867653772226362223422387441204743511346091328826437452348526922544109418926034520997450818179215466907172325588969916371300633510795005036227453753246079681294556283169018427008002393596801276819944317225856838515755013807884907650881607819396124192999916071714697279756077030014737447924360208934983473727916245673632238117149024654212437741238557272657698556403603730896639900886841449501905678940062050550861941174392210750887919243211778324047082945289774951340001469884419484028946686578372267996466656496119595998409559426485294022375865120016487193167353175309504311330244683984321654380822962324315238631337521607599275471329995589352550095260927556074697047262381256417564817487089972839667993655287184653169089536957507865225220072893035031848369967796212511452800572681252313684246009802669831641533472894577850433480963308766446249916859309498124493911457402727127459938929390254072423082862745453270598474826882189364192821220317086621835430291394144773937071874500228732118650085616157748705061755719140237904586034453677809231943996347789534388683056577565951400707884261212783025668534035457143396167506602850731360547416187989309500619661307339582069286666867259196836506762937216868147257510702625616217976495350416155028994995659311955842587185110248294366846241787546362596389591580291045012621621819299548206484761923287072756237903158986999280959473424397238032265441263061861605933934795520619355642897634965360117037557430096255922496018200556825397448627015196436262094385981068378819927171459519001233570451873614142412748222539558143587360616147135343791013396167346897868369555869894215740979143250123287331185579827948472289130554749573388734344513861565106681284847537514963256372046800444052990378650335360917277283134271337521134827959843244329399242407383221661054510238092598686018019985745372803972709158292396050334045677718471896153447255516454096093176855229467398331080534926990257842266882842365206931674278809257613557160974581014314216171604442872950802432188107878642799305007795198990268959216650126070700270900445213976928036302965905980397998794009428275964087405751602134016177498852763976272892211755831379156687317655844729003668028406483141491858943603839510824047658951014384364703225683563606415372346574467787083603309387561798599455503559326990403514991075679420252130039588451035715594149642799765685135931118093897786576329182044774240842558764899340668164770482175769106726130348530357061784858626553770618512171172503341478867944742450567132571078499140826800110262850753790238550144536390275175688743739056664458170495413685063260265150742708154896618914299646875127312395262761629935471366293288761733445677247525817156256344580370393720135567657505091828105322099558004885822474970393540733944511196649932300142964436418980421948905667340628410166900492356922534319990451189150972052310832541595620220321129760885614923630590949112669204398773313115303523773704735354150293594277944984792040568155210795217990736306142252098612080357056088684772145456314286154146679447319224191427099706273184355228350556638413561573763149493338527871188107909690423132554313267399492017520997592516053129559924370833422226883108873981560141228906356848526627195653057569797337396868810147586234929312079999941436290974205604157192716372935739833328086408974864940440857492392051317190079045664981051328481643770570698298546322415624762850820730544781246530221995875767395193963828265037432964274298057264629791366603751330649818482822491800589248614160355496497484421689422933484358561390208298163571180905220707840816939783281368029284667942493942943110153976895437858737253856539527936229481909422344537072589523964180680401038706180206251681828781491979826188765290262367627430640997316621747571659169487063486213727526337621864100649706494573539505033541796693136131716948851349599168460778777570082517404528731352196737102830269675430161497192963181245950226161979240445312023152000236493356857050282536895389840975192190718319393248058759677370366643404368589720201116071488734972692151035725680709228310241752635215794628588069678785864424302210961423250285591351502902410284664342492747061883006287099274249935399687808981119564960612547749658060845523850012122209788987252897325732565563355811105783327688097724935129469673452235519802747696483186652914167283407116895855192271646437782077625012651117754574068804194265755419992494217820390113845089250792164411281833975750141716521186914946167124105687290028716294784502233894355766579773580731658000563168521440753471419153256789180718302861947682764176672065246048701002269338047740605976793643456719609221139281209196013812159214938960152586627415904618249133397133616025740405817285038828063349260960335413915871240957608665803063010537184981678714102358379063476318996005716939272411172525025338603943358786075279505389423361144609221762632555838348870851755938739125733032454836747491883652261389156128594685694488274418638801868213565543074503036174444218321810572669169241144590463456553613416565349963118450775636139207609988928846714398820407920270706214098594531275790264921713976634870845814540708700362699960614529742924778235660924355131739458461417710517440941859673565091704707274938137511247120124989084005025332514998827974926539214378622059341151470134156620761690625757230922809493471727868179841913961157033086742028478321671086649120776378830775606001253697682557975446304503496919856569327940946804324096340836639831210821868778175202843065786827221832338380168600700897637945926339672282844912389982017373979512617919018077324885690445776750565667725123021095985407548596452570204355008462144346615474801307479398511658138863051987064440064126588405258795507301754077748300844079544218126336397928623265133693463600630555421425180777029208339677339668419908646922361946560833982638103219016567511076171418704434090371884550233626340089890293365183335490320594341830574197090081867674001225474982522210543167555468297185003256005590197061893493741106066194314876256929993155593143291870169231059948261011249724096022461564612759477134305089348585052856424552531518912554002263232142301622614763629295761507025686563694831900294127126154725094554967171338153165628703808159653468989574599492163551039643767376390707636918860397007176458004619037262794472251390191568055714190486320071746859487453138806104656943430642368259682931983455860539840152312008255749960496024179433673438649415431950381404834674764536015751920269193005714342402829462353583847626643722393142546958472575821193590405488233989786697996948212303288525492401341715302889892441737304105575700618181763661919338334040431352995889423742178304575420715694730759516792149062042872707534186717062123719008903489682260039452358293122941865964427411057597448076058959220422922956842800692986633555199155549436768019187241985991080403130607804714089275030875540361198182636066837336918999298932669300668524783773309089175245809655726458961468837860404701423808886412408320437376841988516328475783554280183387873718867661922219566745341361904246885712662627546725160821251648944352411094530859505052115695806258446093810287342061436811181729868761564067250607066150420794147705320044420967459528791746863318110465979641864604879459992955500948784346987136627910814033434396602883716210715087875631944037361612489043390172374181906069122717280750708304138738292049983247663719951811333011271045181300466734792430999925755231514870545942075351664797043658512252867510624573561708784167072660639193866846297766042925125304694060962528266686935196331507067021253886081965446938635362013305466734286405506502316832155040871691666467393968264420747293799960049904727646151765751219024128795241412649984007289623589570324810810281195989797462601116656451966416646285679665450164389321061518412437596215742639800474025427199916412021611604533094616636219448877536792501843040736122483703060441505187844260576749452632014740620658947830287716467587659243401244303767356481561802479137720326601091931923499153878566716930722965314613889573032265152913022976699456831292191972969143381763600877624913849446260787162907342295779945096915714378622293559852782081266305126783081909638937056939570923694628082984649030680689452248368800026348741440161382188277695219410012590381921842829867080361658194521202709368588790729211804359451284956839640252059353947744963687567882648722871653318610831326126134014630213422295778328917360492564308672350893079006498176464469585995408389760131901378449700652897431916300100603016071272861022822973716211660243538931191517485784072668865689555460629827665441514370976430223239829971439105301245978426842770586331101853004824494061527814743104961403115195052176402910158015422111117883560485089497094905512680087844682877734482493959428715051253170986901438755569452847295564468569218656324601485831491310908954994616327097527312038697145658725242163382690606967654384675607278732842888609986686543445367751423018801889773753316260892047947505291865536285935359976342279318677697856632929491909921897127684571403905247103532254493771733665483069941376276161695807298896520807859317372710562192651675021240841990854819454275413050798243080358565437950707302037799771223744686930649839539372951242276362944152114796629018298862713561876276618839200748228122691645696561723300249584149392614466453315870483023169734695297095412295732781232801287918648375591658561834412988687332293772100908331637892427130831873176859163559394410495433675333283609194736425388036494933471865358563073466123582115611106443533884819841807831658100071175244098919057992356744105128137002582183947064800750862973962206373188635713471144664440714083127145919073341480545476533587207424577961757464201531076765780721588425337438282638474645351152940248414477287529415714143293574729654390078789801888474712944050523785041751247692598773983998491218504661672876523040851332234083187560294347123189062162900231735686165781841824041657721967680153321797748071095734044348312349120264914412072057662083619002343440707527915279082859912308883986756060434492447973493603927534863329029784004161631588017667709360933725378385391869718648333633672605826597987442556330934897825313877919776637050431078363920964715215818438776496389918947061573312989635410125308680179447504317240192774751705593865277303794835451144109989736427128017694764458785778395272090507613533013844148715979358351735135665713296784655945846371781352726182972437336641602286451159954658403740634101041351962117489655523599716928623264283460587542100125177124151007798506048431635098226897657058024431261003646693882458612540952239045587872673717885287134030712709388234690950622260245117969875441047907549406280591820401378606834871336146478448655004008738010355845889958038679541887868761821674623518109532517612509703630806800570479430548018995691470902429306179342912655576828725321124513167162978817850703474757789990617470482537544942132948326483263815337574290511999215395485805424820694132303112266747870154059669107141973599087280923686042503603723952836267673383818209908125281527326672389766849273290577118153189995844970960302206015181757018744751346974567495515764411196350204001023498475307403482487148312094443686483845413148235671438730572864134532355350602114527430737022007245981314163289390857727695303956587206077890779459103952385036034466931865368208373189997519622928048630128292758111000166112340033307594355413105679998983522092853778852740233019978309131257809047340308065381215680931581945328358126319529349045608217640803348006805799819051786203461627946730100821821798726081237941625706230098160459255975802405033637355756784226708523966308138444427970962605270655766432804076596185626782877271312241799084053987156344816470211886682133573630435522864538490383978267835736605312992787210674906477914892131502757503925372350712987823999920261832330233468884952808080595958761277695429428783793238047318903782652943878876300516586727695469540402056955255100320642454096464607224976232852655393377338164023850794333338720025951028747964101308977300088585919257422541547294109674423653199524527714707970058519782699710308996723922631262390503637203129671172720805583462704268639809219811518362740882757499872712598426698050423507294743044950873198448804959401977852954820579490752966099094117725380243932611005902804192682480833384206482549234516307007371925797665177334103288669802316615581257050517221943995863062544558754138181746979030770313305747396513482735247533896694350470867322809367432327204881473484817038322780103704009369344738389551989330645354722203673606840052758326590792207235098928900197230879882614915589134171250696367236736853223930150365756212203627710300227822025311523867611818262176112162026186896307971875698219782931918813817983432212724144503222344267811750683156316650855684883602070734257682698975584605522352591005809093558099482925474513888348118438156261411143046549615405445926937803478930911371239304142024317838533976596714836925590856944392122849544018496561972095707123304768294552696467085052567187208215101511924147105476442396150757251777574937596694497873828889055607050007784979859679745381133529952986198517899899317816683002918646858318099938357660738585239060073066086351055536864148898495581344427168460419599011495929944943510325110881725815011241012635854156223415885308412634426672401742875825364628686871966081989568697608968586442145359504039770869453180521448355571325551531917940846876219309520601224876776039883575930326315287486674899210462558426183993500122543841463769834217237056516839871419639936399750260211803308001707444441241430401601666297726013261435638774341958073168416143500742590748957169027429963129588077868797472621621893542459367641511353464674187882922528563153369512947835987681079460253440483954514356833800466145820886085502585635026450573815891279783612531546819480673499065193144625459526998037236479684685793159018939807267317086996700554047232214824480808669543585784107137482543993075860361673412436109627995740268858000355463071835243527716689998734333304311912968029821515449149329152547146437012541153061109676680527997058893587343877682328888548803987401349753724591851549077949343077972798085741016086622525193838767604061991567356232503984775925430223765340302327080130666196750925453956047227145029592244095861455004773103248931764400210820907988873972431228371377468301690539556184102515057831061394373668198306781047309622585949723968965899961002850947465187057337578920088222924040564533906359402139959909757846327097044230573553713919901485102368673254565756537184629514086809235098955019915845609463203811821932349885190228280103872479851171246859053316337252487963245875890524079970771522381194657128525380180701573841412765054222795983805888757770057127985412955530500030834362423401138333210543153038409668185515926482494446481992724569770748019357892638424759439785313193868872338527698925350766942459004546411036577761354081855987583990212916733341621236841970402214975706404785497751339567945517429092989615622996575428133318750045259074581743948421550429718864496243670425808909567742517405292953364791272124563649415741684575167515737930045295646565676857111389229838800377487752730156884716679821384084863655368411750233561323139466555391714928660323405072086378377931396009882483181754041068543587720820760788174587922302164923899094344800746402893324528016494232679421691447829477973965232146978700516770139348495082005819977932769210742451930517401973005660520789966426675056149720236488857547027159098180717952231877888163360507694251330730604843881221538575439128138822369857931420175052933552500505865273469553704650717596799973845640186452987480885257160504367307963738635168020398683125356644545135655176755473594202341105500971752035334671595198201782035585649917030542499584014791040450348622398588575328133898574293839021426215972570988083237458095366116088637444292915813475524181990376579037439931742845888156715193699790185161189653139095166929144332203463394399634721846931105676221991104979001450859125805248843318202637715267700763445355413236497483844824722970013424272819021066950314473591449929573467141289781926297964253980208167680712685788210163194223271728911465128756733740637599610212667983374619637180582312523081268645246000086767181807970826137978943777357396072279051353110208619694637021970664825673254465838381470264591479391166750301016392471211913127243609832569156317708536307017632043286511979714957630664995483049085706858545066506510627443691819597895857440832050138458437438853757817229088300294799929076385406753026680286540862289731393628121057929031695006191979043968104843368496017372030420784425285811169878014137522240942876144080085226948639637034982959465454407109717035876057567840955078658100962721729375627188094499613133853380859866227512824478546856275130483676164922770337622711740044501436739903709844447368990282103596154489834626317851357023656709533051485497769222997205337112081357561545881287576582394993850423714078828985753971723835938368636213896519472697542591141953786137726330974952184081303012826861692794257309434141365329188350762231213619966624984369620392656622467333387569335347009823783383523985669585238248550925656128045809510247291882344672853891824147630468723217909415188004371452782722489124295178161430092258121176974393736249522494160088149999767270870711658661300557368580671153566548562469766366284305088478308104687421524493528953967343595055052678839191408611034358272377409928482152746637444969295115145567050118322974062182441118750912844985031639491160847019691078595955109866045067512026513559527329141847292289384668754477885928553025870405545685101252704548015225889925990550984207333677213522988671765837174943129806274792324051647347227441826973722192858800904458667317423501091490528563910309150858190977788511269259651318234449154335943744162672851933803884808989214834770586764735047105560466836332300161426701200207479793545234742530547173374706087975268995237554980087262269635016283281348223550675351192883297393486520176234123570368896824362479443530183947397228589911918643368340485291528445450969239251943479984196669038839199995664247711521301479771082062054328902123253587970478703940073489171651954472540956539615747285291867351218345314075702357958760312195261581093292222534093200591772426951764914439448692498038872826885069836197579264576781743353290716499666740979162718502996374424456266253884651390934584089610501027790228549783638234437740546971544627210476793898594364763992156091381725749508569994081026338192340689030400587610890486787691887268315032936520685015637065215662922522884593872563961116381073944562716452357394551756000176100023576848463175039700070036063558863706550415170594662068570773772570242836155581241613983878379514286411197865106418481085972351397368873384735386201443099133426324639883573798348306482721625151073361927192365381258707093131584010810709666456077883580322940526377225497182446229449575981629420424715890885160282743927853344438480877823670833200731814510314985143495188203486104560056067347077141542137454800744751571946848003352195842456642756409397907101645970489976445728203298720845846115082287786756874149891826042019939640630586645265501461303675953649982195094045408649719207290229987997475752858198232482654397975240010471601243400279200758600691666149526799522227409642110374579640313534712336616880285709636792097396985355047910015217412863674456923603685133378159943199043247176906670619310401268819087037092881003688227082416789113445344988870785754795149061113634443033182496144042382272280657239614335842132129815989489862787170020354375711619247318130423248547456349156628873642436657145580737397873922690196380027552643819319576345923476618653319798688807210274830693638926441914655076616234039484162356666076057139144524745520796371893020340282749117766584855629850784792389493037506114075534437246153990442881509215310196290100621382355956435590787326443301064791952794107886617916303062659922697106805962783679581012154912039665290460772490278864958981825935131221355685236615908258285393820589930792823455399217269370279119695602974517834433363173224370007097114254926990177051722283276952618936457364797578304917968818803611219570750942269846953536776651824144484587200247852279494358228543569168654171809985443865292533570897423471402829247413842836687827413133416944453583021107853047216423322626889234785503702443025369325864914272803576474877468604374839422018677235640535759103306229067327953099615888462276978048833736234984384254390929389415346896319438398667981979813861574153536344979411287991186342239977374436860208149573102669726939470721101641949666454911235957496234310569909650504938788268566999194518975585039146973772367100659640630246836988618941002488250047281037636626154549994506394053646371497082370028287478111765565480093113652473476023986219900361133298831041551256775061868907284504693106774742633216226514891367412800077737093497974354012197465840937147479621170589996597079199274543832347090698123155245535257477214834019867923208916015785207051680729792291128707020238379212856662980477813058415615734125593500962426968398906814764872486380474950775484903811387657386713567642220925806784673604436359696417292312650906410777454245797171841220081012695428498526142496048862072632162795192131927417053367605649854045446492399425687216106551039721553130975800179553091648059108696153420266048471310284786660612956931333739315240737918193387183805862931342622538238660767019104057931926030493482132320485194021033983366896450761979662918922872420504763964499878074429711876514275958632453150951914825450590709339235505018635353923081149921151684956472518616625572157375984536636790290533460973840448565312379723301270797485055637838334955303639738196504444651098137161480003355426238816784038490631686708804778900343705716145010977219947017992335289884293415544847730431259531714558958686997274604731955118359909495496276248541156566106427575898633785872432364277755840353276569116392935986859092068266946820012935770984824259344736711224016880302910397022560509979155154763215205430407477160509095508619679918859976804418908058521928822465871455793090211093533855535557604711826525005819653781089582952283529121845941997198863110702507376219884306291702424905436949007494132680008971512199041619114135660013095367194673566646352904597709127063111053297146027033280011196530458924684358376516500928407516925661270030670712961216712211400447646464986010467670212006296941332351065036825357098986493723754498633129728749441699915997891238863543592349049760394134717693109071921384719449178511616108626414806649143720296876590573458291697618129707827427162852966398722071367940139420879920160357979793566070955611276360404775600072623720111720034834775741101656136462633207032785951605864341632472005672017231785598792325904401151407517274733437431488295345262287806124426948462502953046151203078712309026366058523869475851030166265668610483204552302652994330946013690313121727798274271716161108135260829361686362572309513270946697741257747507282689078174665429895442737094805811470069144148218525263484105316900327496685477123377686656298608538661806286552267993867909353217163327163648987944436419399424986354546164700034399179728456914720675171158892517716063317987452660931124185227330438557976183067847482807698454938962167857729981072859657132070129146365076469634900326590891824152628488293210952028191810380059525789472631674319958742830639034795403966002924057515635995983576550199836711036256713298758407309601713379083066151879567560696165811682907746632783176838468022835292230080758448487607370212324762597639133017801693744933484036153525551831545686973947783821026192811196184081428500195180626574131876149096174968373868411798343508557328652628787079569758313663340560874552625850796152899131317376432107209803166177929321078688295925943827076121838477408689631662448704729460601119729877710184406795367444643760401375120014684176148104194816269032075301650800860194705940050254175216813431953476338962514360785406710524671068396039023384829313932793706371619904156169180771433922912576919228539184785661337082016729905608560669484145587809906517432423180493132187688525541439887130708098867256749555657360006745436629314952077958422751341824414336355326550056793356225010243465342497316839090951198666105398244029596130816343415827517436011317612583633758873221142359852812704473324111491926513571940865117253319067608505544723708098805082172344413441084765482746343883658434538775824058058736857980488453195858535492105502555313898855644062683255269750007283249688809367479529414447957273725561348277147306620445702519624394536360019020506412114618650115162390352907907865495998214759588189555024353644412799054934061966053203534282218199779921541962854873440115056304908678378550302983440658897352639687313358483776960497534008714021829167621586846692737879197160152280994595065311688678996337689333372991522644398681400952291666564903870853432516489450118914281381556085623194482226479591535785187220498711197257406811557469020178955734215394266165755705189872427222438439970780675517419262407404662165472694999233857528578567943923871150995031003232612277429614306763864714524018595830972429447841733086497434630167311617326429453992826496441326871383657194223786893366534548276768022177294084517281348047936364035777207081600024719341966141965033609730075160750820948595586106554895485944054657769819273699344089234525724525040493087174577319086952997789001784823370805892697624352650472745078246434491709349219799947110941514079801487138585614688671227326094316776606567996703814019119312891444296095616947550680792572913758434722222985062075301487930476318037271606453721707325048141008972801215837735234993806151321321978349294627104974677515551753009063782504031998677727885476062525229775362822796903662471748020936267414597489937361148658111410364042614419463336358224604341568700745504892011199270866867988811179422596426873167986414440816948300163513641116331236297435292569482152553567243745901634750275315189149232270009930523108777371416635841499142150303179253652077795023260119493841736154906785569261470058708599800157137332768873383016167545256550872084365262363414307436333048392972286641968856743454827867665430968145500569670549028257694819169824725069300862251418124087653780061766737914497692946080142653308177377142831662261839763299715079015740201305155955696581517061692597613260868116595442522240560072169091963053097357598466420581809186541801375949371544144951952467044798037771393742284513828813690636706352364606766512220032137789615224927350441342876318239530339634565141094037718917666238054954114428992598760592304458035501007614395725916601486298575532183777129994197482314722354722904784790749607058865090518695943350916809281718294820131024388818446834255037163416102356222338772956176375960525561211882244439836199324650957506710485132743418694592172513721156161027461580614247985348706796823664685671740933823162938416591671668518479035615289535965430618028473116895374544673693514915714460997394319546620126815229456105766630737778082246114164029443977122244212502759199436028241232396506915262953704034380164905234221845596313627518361362436940106500232007708935344022134755623749820384065714369509536156888206064129705148703624248013467299243876666183943806949724760206021416730104153679477618075058542638325629592952931087243153327483109979510088926341474854911756059999028395888168528677897655927205247137190101214074483410968475598782299511198777837039048697675630226925688597595698673624116508881898403332853796043518004285198313409075591442592257830952857847071352490259058274029116768558190347601256084246602809095751289620356153431375007775968680249140408429309012001433681416431048232809113090309254127034044797938991723832688820287380373776982282971341080818169059984252692681214738541893675824330542015173509203268114048399529904596698068277569702634088363657642764347601091515758749277902678492340378443604718372893266475374719046383726845188039219705740022395611103620817740235140719284839907583549303954991517198708351349477954353599721553677736166503131693111157741826772642856303579782624191048342239667939205696517272644038448269338011786121161220905209662626174515675134689358567229994038367063139578239279182819366193295200304882307180497834313130365818333555108293185675150225502100343638213478775464163387573335315753620398818734866333053246393667848388813543868712492240096028095954678003523638401789569094472935427879889723129810614785879560385935988790877924278157789479756729889756910033776561744722992895935565117409970100467921737005425267342218448370539539644014245111444333395537017731463593361737430867868009012766070770681812588085610851446701911789531267212037354641966195224582822243547156009170453514374970550293751977082149823132273249556960366107384988091070517893004810049783695683217125567064376809661487871348508670194301560924123471859813563204066813331988745072155973608388671538368023854680215726967983277747660343978288189894040045904425905345484533053165863953048969370875462434188252356639658540960517402157194877289906220333561319465602613931270604680714625926706100889695992547899720084592280273693439404148218244563733216294499410439154212128717642285261723729181846380511622362784619317428888521622154670607749641739344201968510625477704239816058002666530465079090745630866237485126919128815901307142411983914442064780858874072776159267113401979659455323608139518261228129213818400153819173844160499844320258587881737516376380042006829482355683051874802318529553174780876007687006983593047736095603093504098749737390480539608310010842407700984887187950437499458753514656114665735859611695141602912226998007663972941728198111999575143201162206348517665957462543323354070246266545397734583314676781248037495167067469936311864739722882548213861893466771314029098578393499838632237731001561614711840463738944870490799496085719078133780557978358143362954570861198727435794641342149353611331572895562759715034013828792409345113759743320613101904863714780253787552385055828033210548007409157973979953467562713517936179674312372307946021836900226970234049165504630838703166494607590525854521421678368264265912000059721372955598083506789953083608640948696682225769333000032824300433153115701295033100348873779973864333264526622245589290583519675773897589231090874190676242065593095157926522009357897069453813705443502734661726941950340655824164900496177911966635904561951940237578483335462997243761769971956148499932248798687516338427305674151269187026365271338988139383773655542409594652158934286667868142688131221240055476563626812216466983599318804940521416880797120989648625834913233493739613006321223458175051371830404387162059479751063884503723363643761771194327683187523102117024390667110386030850639319329353341644014938160273466072770026373967558106267177493394180286575604456915579235025085063289500982769038413282467027292327102321459357017705227936346367425476586694396702562491924862085172283288470947254042051303194031582329026504570491398693816327711858556444767998799699015105157027484568940229671770028405726471152945243711923851469392381817660094855693941238748480791578401520884219287357347867324827452890787177513275117711602381208023878370544635801424235171295795056158807290058531276229255193880727303389993102247958371951794024555374449115654602087606224351808527974135629322855980684549520860719939668607850186933033029733198544828153491217420134331153974998121605205049007181882607363325338533591719234242894673574114207861361921134908552959123533225410450484167538213268696423246963888770795936632505467764816786348974138188605182129209302617342873845080347002458836808771691700079279720960548784371233993691012914341035870326279339065815248119131839297264121993444521157382986671071160094966505894150084364904939071357262232387138810817497114480637585205110420544598671253976533718804309940118862300256360388275747374123908670069680233629525388542769542114923681485790555663869118952934047626595996300729498761005389486844544304895501123777351787695588129940326111618127373701390034587346931789144577717726727378312046928776464447444511507007781135547372011501882652769150958733289174913549352697337927071611816177686964567997431666319445913640046457937989757752907916681426380680856211134247717488154540077381829359299684525876415476952618819612265044382834488421470799315812514407656240714831291107503279634236153716012471345855586584042412748077850721310001258532222613423238348927687857573390242318008360723384038711657672847867347301022821932081152650238852047159047195956498336549099795451800926827160241762402548109901816828078512831595191485442982640768794579311746676008763953887349105777467860989742946905123180056556347083811379457718701944752228433144913314925283575704187212310481611088098702842867220591659504074758415234897881531715506281352451315640318068174299624565638163436571230523232513001246379420335710313436392864890258079242491432401712747067952653897959454238320130904234254323347286598295207758354787111216639517322304275647649799743936926736814984024492345946760760852629465276949467588543721192493395130395859547122622480534563198989503932254014134235447069337363308303477353497589746210959650139563775394283847071991696122603502313894810178808928487670032782842293711716746911132351261742864090950325713111184610622911058475341771543315856201188490472500605749928489689670594552270059912841977214387839114689760547160057285350433085879034001502912834278137254251278047268951727289014817027875338080880319672268448994073644450266571563175780385957145577676773670924571841849076651898932492190774021389682624188360356032392031793060896987526855275465939103214626235194588622731689192933461058357053976448437685200346944661134464686885897368553299811319885234545089323095535411188099107913366751880626324848899474783576075339558235065785219632966339450724479751988364122566884524366850116838645418940476240127283435538972126275325077294422993084144750804786074936731798741407869506209725443583877269687082981479371273122915814166133358357278684004189708281780711694927630376185110363429531888132537702516784367515841273598278917030504922795061709597309559230380077778080634239345416444733724524016354247024416264650220670829460787753062114628622248621238997428612639015263066128297343198415528994664171423809715577191389147279102257412518384232003019261477075540517666432800995915184578866265409305364184069658909633845770297062959668742561407302007334939461386135643683071794209166403653893354102483449255954934038425925619785100139087093084472004852283151038237943347635656971867673719104210610521518950403131883309451316680218910936379834941051379902235088586909407530529047739072518479969107688370902144064878407074500387301735093980384537073740131295904281838192328212234179362477817005873668458152947909590059642094318636809390016441301142383509933723293198085643637664356543411506372074953968209064312559391104415663210908661697171157602763722594863991579648323744321663533864338200986274548007175080748367747553080001400427343776948677439909940574270647224030633013797084323584014470483063002165410199740093005837668273695273158268705564514787550168409731134846248665290718963492890683489319692591975510766148680618350779125989684399494449928200562371178602714805984807916619115814956353488419755892672816202532930719616908511016966967395303517230817127868145738112064928466315847859959410101972438939893050101579746382450344980799141187478113976830711515973360517680852782077522783265103023988833384864379461274964831628120741395444660932753115489976661042968051233616661084208998843242608310373460001570650276510280162631437797621124329260673669017367240652954919449323838905147235754684726196408671465599226479981467746268538255619211322852368193842604385313372219471144178469428156676823712104555987382022620613379110896106599719998224934195730662037136131411934046496161249305636816803037588898307460367693642282352736580875422067517489873652450029189362897254499842191827957173289747740792131398290905148629061572350459107069558776636527273380852797133110086198738823180506662553863615185897585338448047091309774240857763505094191640495935802323449311028383289350304638825951854935403228688771650182085995525191187188715509269978714038115503641200007652390944098663075306653925001138041396388495652349122506773108743646218420195686076627790407582208348124212323384283814516077193665459170506554149841200099204152102544008981140288799604645973074610317189465595595902424319473860921969470826576996040781521969620992942542675411854273144016004537740457339833444697461162176595371251950072452085813685876109500135499520428469837004781841027614489899505377843096686807802428913960670449197303219374945046841170506943826546148474511855372446399258922861471474903266937254488043239550724158990626562972928262971588579368725319158525940931706240745971768285950250280513999031433660146103826830528098879785683152131399487331671362225210909071835347651383973876846450275887102517171156522136685368728306783841009824655084230644568858896987307363572681425577414358715627363676555637532680279805513278337310552893987608715764990590309278168077531189371251805375633780458059222926319403385595536910347102301153792643492319750191355647245858779855567974885984267854068489972869876089895325220955971987902268189994693369234297091555646530680905860184429008315963290168927447723331529852502951724256090020845627765606606503336641203970634654892786353488433757924725965849599944683018325163620277094335122679310768816059922032032497867341953316432397859386540298711100341415490672520846246833046858021491558181207371471082472916367737586547357692289836855336551796357397225767345726322544027062445852259604940986461551970611528491480601250937188619551995964721654411915383325793391647561872344414188490219524205638228428123932379770476618350073302277656011271080547231060041059916669311573724572759107193618909772078550132000471609386418342368110760913867298802631405246795944022165153058256790891149842288918003907541272108917679732244781415544164662325089633703551195816880759207102368026686211365268110443273687607367801696894908460770248694889252631927516049664258768879398294379338427057714470745233927284031307480375003887069860878967714956127518768749641311202455473170601369802002562222232712976456764089538566261172233258208114018615725774713188231153843405182233813373626669598005184629952314046299554234493684259595417053156817877249470939822714194649256236729109290959916760674695440674112821814917345513031811265620666485199386230920997518052004792911582059524423283377001833498049781388202584531121788853790971691820600140177305379550910087138783969902643310019526446948829656029128934590672937108756084638626048990362418046253127806940117523732027676105532281245314774951977425343664239224853131380778831621538429020881211004158678963734545635106329946588612174504777870234567554547486766455402614752299247293647042770307853075419134050456638214999091225803127272897336145267033849876483565993097555238156273481310031676109811385509676805147740022789334425665386898765212668978175314625904824678922368781942503653401760016534627619148425461374535576814343901737763678110943274272582570400218081056390175745149507818788566893368526184578511554752820124019520701086078311593498332519060010260331699632444791679642631148859456158895643904427553107013029474444857064962346318039554188306386195530827452480128646526104085456308845889114738183136762033289691570458891597516879305113888491265546742124063689216070597272855704595195521802643008332147271276116732448582492599134161625707966597444437288705749186883455753108954595015896564087114949642892428754623965775623729398492642965499777914309618485848392141320607973716205852879160849333682236500300519043595370183350138480923389733150795594997893260911957350059085137001576377278854208757807095290043080981053072158192975163461399773097074688697488756946013916354358314355096138875059217896638049274005942333226548713516509269034305464269468784233775617662485775866518052994699224289413996718564414378280415055139639037065163342016077534028502969503191463247843193631308721385486728242760614706139526104393449310618741321942869273023043611549146447764876703769141469094571892059471676068713376410663966324213484473937374883778291656604186603501527664759976248231694438670591294381902948620715468653186002710231278686445869315408256043416508731876171701305804376329051592526007378101010823418518306413973713462980721981775638719288609180725324844172539607961239804129713231024460761791659051527137341887996381059194479388938075964477997513781623845978588034712561009283181276366313717591138043311716322675879821816862416237985521604642948973898231165407800544198497075406172637347825805141465503451543755285869242867094824379229302106220346038673819952851883645251157072380645419996512975107298816154057754155320496185293064274647684198668574838366174526947315962617058569766512479321980563042131717434792782868945908690254103846819053859208346564858640773104101377624262798582876845311514195570837070861686909602445365372900385927168650933818369949232216973304205040766122280052988279413247524868617180393682301444270505869493377503640136844174266993769865309340398160222257914497132389017473369918468664504803738613615564824747077087729033603523031945936419358902245789943834043922947555522791773567714683315626032167970277466762852864592436227714623947951451770959393289354033885552195735318764727759715681167656617905771804231066122655321318124764850001691840090416436371235168841863991675778838173989672009850822790166396330371471452960399987045445860162679685921922325747478278285787765881328283661822762155658475072762541967588784730359765742401945164123908342313301540707088424699600539436219442614196437612587418529809510393005089834676330908289824663197358405696025891504797102285767032432902883678485511369833337299455094367761003260804078377076930388641686220644045882246118056138077787052166444740491784308479712243584121282796378110670135556707457560395789245729048468410260497989292831438529269990441281188792000226858976489340220602026945068612458654690879210798309802854666294233685920038965688649592989072656686182542773530625973841946292468111605066396713792277261663067164546062951982287287478964008658281015596615531112147091583108499983591551336524637149357134840148849785525594769860094477979876453200603639942979862986679718928693796337663942189398138198362107616588312600140635119083346142680975374621092060401484940012144049492331135747019927409328994187032729063646327281105205614519549521936803216829591721235044661283985099997481098792315383814897056233849572219923038049315436996170357703940655878964254087002461203789128180961781258117323449248248394412611201532624632870031389339322437353115056964113955094627488167783601272097965787599915018095690200163973086673631220835640189933865543110611290135641582871727414495562314882820035269139037847028946734808771226567105404996493847365797328881465512388717021456581388644248255800190856898800153352347605200111172793337105290626365559348564836106954383294259550792945707830481940983286176230507917310496459340790697459303680209583539328567438919024623164324574832491231116083216114786237985371916886031421212267103622204641428539109138559357697634430510089570582369271046598480130846637265707063356071401097358643389228052235504365566504417726712426490008329777015467781086183596689203772969282350275193680409313780622742144767581833275066708595150254335617686522895499366903959997140893943445291560309261952452128806349655084751472352754986261098995590501467562107880801545698922427163627484622241310791394508172909513307516868419799109799756005052575721369734176056883095834838066817544403890803400862225083298232442413631940125477920408109674785737163064304510526222784779990100196228772114127468998816085543444702475629167215815294599969014433279623273567367357881092227879674475297926638386766386791003767124587762627092680772080514501789117879482941052708673097233092151365607597909342070491330557914825030512714447832465407872111552223839171150885119924052190024626054395131050875256264365302037040528080766351214336990026094682551580638144456293262292990586456074528657579860887481605417194760644235172513008868512128253721459087222944054225619462151630763391429579059953294877796242903017002386142236920455109447662129564409429129609732703611585246865730068549967951927630394675588576621536274310904977427384480916888470827074192806169877617477302169120373516966408547288536002395846951954918945383432119981830001686838546565382487896847525148314281767529827553941897647330193308521973520461881238731912428127301582805016337134864629575588429955921505020066062622557189152003952131947305198440719228758181095483419920076548803760657298760418569963938891390931069143955589991898491661130315605890449183251700788869224426031699446740478786669337752262647092901978239096351872995949192685373337608136951686804315162852611386164633920724343896343723343032483928802356164702443984841879140718742367945040030566784299212057218846130499161914448008960413610013045015741373574199867390659471490522467286789017174712818075745196792819212022612439788932194854564751621621110360351570583478429901441322533944505044604737523410092454475318201744160551892228981993200488513157596847082698685515413137978460637432397838450874727806083374258007053001176402862143170505661545545149574289076214001741654514150226867620207769044577595782527063448660304459665953532307804256305210103965079178245506108442540728553809658268962621283695257267712664293483024311168058485826823408722037177743425837546547811066628383338019689112089988673678654630261163113706823989193765831770177244916035772634045389391185505746602010549053612500903886014933886737790434809810060106442391383772138538695916971318324556806235036411333065437102561113960643008503048609856686674122218004362148198070499687477843879771025508887137153225819016698385840021182947776379674714481291973467911191281273915363004294499673649181539403294601075562357136599247268822557013481208570831628593436863455943181016979261192868816270796458285587653705925492543877033915358903869226878786538642144890945333745462123981185822611949510613208757266747749011342907155697479328812112072471718667545284759330935973511276345663122958942466118083078657735607503593036320457817593862807258119399726351488208199924072445599189133877411013452139506735024495087528856695371822347325827920885854648016927212519934679057079301836535750470013725227980934767814549752345604908118932296971998558813369625906763155748160171794361918013046181747480444291120809635801409987211519274487032782123809001479190143191724636660992760261027089571100750288057021398323151991802999496386518070925223340096513002067460076367193410070574163307685153605203706172824026396981572698530412388438098560101690813132221506324936141893659417570627512648014470959393190326839578361725525890914884264493082573535224625192346864138317031323732399467781228888399952178343147855949950704797362543092364794019040815509494418669939613321629784426766967268554490227620710506509546170958263459445993287265797695932639461793450090191178698625431919026669666538865345960939605649776589994866436945143965965961957572155622265942334109777724126062690298114639992592463305046690575278386881159664869693193872683519585691337326889396247024674743849503335980103403417218400057858216400759335537052405276018249670825218328255991750791684455661479995329244008874443664570255248586181172051709683558074358028268855691650880202106637522516170530999624329395357938061081912875170280190993148531364342061587631902481183984156639692593165907593202185899496321601995940624440650287999892717532113981085849239068193284978932763521071305137816595040900089907189363022429046721737349042077207529688785866137241834668238733519105649647217298889121762520998509684560719686646711961566649169370209070539040414861704057909253397886373258932564348896736132967955008901508518225707337269380128309342795591681003049939785109158882505393104689424775748559363007547132042862465650253481665018832053995247238691306043933151904786836344733302764147405990427651359044497126244630542452419725801227630966579136784864642950394982631656935434852723517033246503350943225084209045399692859159905443509287899375999100286244583598880825815252673832468332782080984448884922920249969651573509256010615311090148959313827070118396309322555641259765061661356812266157246327384155490481962296160266863835399150463697650065706615919630899783452346294199869403996375851997794312707170332866254580577793087107632035875186993828726819930212909359881632958350724243952178551919745122590308737598670893371650459200453171155551314981583331852609307119586312800064194576287857587095014623509594319481482264866237855275473349414712396857970261176935915057107536876592561057836186614526181842714750996089808469524921971730668724034528729962143621330314746043804447149658768785870141197597062133669802831849899612461919547245126486828850791490418430842214232469239592821120297467537728169894292119324802560754146231167228872256089856504201860646617926845790280760990158428036146439905364607391411117726242446538539326341291268809800490391704171414167862146208110478860079339900087042357808448907238167425185433498160501371074197135175948356792201906895761639970187002250226840820928806512971493713370506636549106992016148239566555060975058761441787599213334211293051910002554979182681060295220638971770127305947240312521621391721841487299969481046462622741841455294175130990744741004146720827325303733510446350385216474582558305201932364758664269518733026134644646497811257719868592306658337438002713810205652768429696958720511948981408233280506382365219044277573641608866767764319666329014831471213431015452764859080855382923195541661016262534992154581411811982419032130464480197944627087814885454919859611959117462405389558717263790309978235432818456594690153156588422362434650473985115407607712225462946219337136491479430090402710886468347455095271568811284391403839202899719187009857793347391278790541041226576058317098550688338498075126188721136534682718597047040723317903126162764225483819012444017465065560645761000719784397065562608409108239039043695571072379594230967644736111249047711421436652284547336340027379659533440066069612498520483175028272849628472154882319037954922579513993380755015441725014095167862246209280095199975510862662071619020835321087118784889754157792045534718532068470034286853189548846860777603532031696150463783385433017040358566026430104986112250556834006131847812750020908565464766602662045048524938828962818786197028356870096488083248621403570438792524297306525662516513888115332098074963664559407264601639519014218698204495650379065638353454652051895241946262602996955452102574854871343916417766327680658906987682901606244779670014163739964904991282248166186758096253139764645459666173063020859763997933077391980677844554256652330790960466751996804852778011414352115623863949683026748671665554898250207730057237432874102230084884693021699905840362750238425528335891938334366700772733942178488714840186621426161133987291957009834315066883817427922210250701435404862173814487815355880680255266592236761681645263128399201861080593962294794429634886922766009480731316239242685371193690217675076020670448906325771694783872541967414465842575214162554403743773419225819582728569884386215871264445450851355040903989886581097846080880640748235678507844541231904329886151216893030148192779280823133119556950055481525401552030757856010923250052833601707879467680535583867390273143917525599120545054447121693239349609091226457722256744204074349223635441652624044970997323329769309073228915049898190023016491782168866346177265222455141523451376000103995238158489848425529764748878856354170835476491907697015906057784505353509499057450545010373175713277937140757187338467129565130732612441481055030719022187602820125761142047529400121483745120770929185768619029531944275153278255731145781773905273506418602244351043521112630799102122778438556419619735009088491145421702547720816665452692364312655375490465274589037902625270429089040090032851945895982557298242031092516598420499516109943061447993897864786273366092759776787323500947367364069543527128954462654753752042502021706515801950498187582953372834408153437582370957068120768508324620833992121607536920116711771497939008381825988285335750470941032489048835983364776374568958594236239514538158649146374729511310106970984200970651388741216479663318704279407037920714391959080741062421752823495039105045045548595494171789336975467555437416818127928265895168160530634024953310759679339529841281441126484085386456516366515117858822875256764365487208918852187278923186004856972831096309477841826207595051153872678623173835530098837928710214098719220890633945949137961338881325283337799699435453023764956866093056042046138477621704337643290044547748965666317890664386296704176238064369489635965678351667242068592177577810125314257194199431555190168467104499316701902958839872774923567575493691806100911084474190374694726190339762614615204366357214037372204962405690534674268910633341203775453951025146083501634969099638308374545887774168878281907451047827311094698964139117972627623163557882139274646574493276373619396168303444949019472154759951251137466013207925231218403676226756098837402078218731041777938941291637474599468712305607223959586843086990253179753679852457088233644237010593301929265468781848543097611027063687539344052407053155560402182501812411027955869542560745609179688153611434207081226955121170049941321604938472677235917042514412468712074891501853540320306135469213822234051839088370704820443140648919553519796589328388855383472671477612358914669548452603843213414177551907261594605371009460112756501439752968658477169642237572735977280883846335166263634746398106523112503595817088422423290380555631641376709555754491716742467075630467199814654952809690071329371644511413495731998690776281425308979604550053021012371748275750237571122730601061019936543179921713739318424283631449350431830536132263294575573986455116464464899304482248483153704066616429520335781967570362411176519766765628443389128163891337679965417158795931357613533538996058250631081214082252324154821692336991295823716975403240854668874424278428605686008293741739501551531921649464778046180476631788408730933684384744146687568736184517868359182385892196219198155819726947039966346362232455850688900357951865154580742872047471220192647768035310177834162500014766513135640736816332291462127655874137675280406097563176043792152256750837783724742363985134965003036282615414985486004010814235561063257191183351441235723714735992317664215484940865216875998434694225979823536056317424465607750513326809013101051387456285658513713065894296000012192732580596773061134374359492140751552124300092841466132031808536888990735073256498893269154079224122747306039431032182941088101761907626759693902551863149201497766480264954356901984892324736183147172037377557971473360046673938083619820199732101230108131361957513605103243025529592975022976791543022643866239120728430171680155986023358650788168425761556476939024749839701321212717673369172434969511380688471792304110505115178874924511541143080611620007478909435711920634300250720479247198673225320700083411455749105256301294419746309238324064117465905246553249469689731195745758139897248827602593633447691675299622690772660565743664009059860089180209895917728598052469518236121966494275998452129772698478463446889637478433792577166475992012024816552394688709404045459029304049073262351146672547564192198870274022734910590273293603601381318571567081114689845101055444418778513856915057013998109347984911095219934315942680809229770525217650131179176120460420799615285798751172250122341496266766211313205586858369335377762227033616203155174422200027021622120040094180172425319831507860702817048447235794258240662979926990875535786477755285066860761645620283633490170506699789526404746629816142163129577089775174208027868335011781113373742387622139647824829162126957852978799562273704584676996816020996859654395475371828853991660086053482937956717091974506192969275713751170376350079349978315268084862247658974232337810349333924779093541144405670806706776704765982852148631577086058092138820547806162007425615867520179353847658073695072330929675726050240666528716819081544244268755360480298908691022716067912071050318581152890639658492039013763984546568275624279759070101084935250052465927133215215685543197628025059743348953385443562349702940883834602957252460656621508558090364165380891709040478864961323088806066596137619859657536882509444593568245054207375891832572789825788095188526336859579167706666622309338140228537489219703342131429109106657730543597176174175784610597040967008673565499403591958325665279522558855132458039268384634206114055814602854787004234411478170169009497175332875601312862041208948091682037194377575375679062034147216034020878000499886591290438476326481188837831193133908374280386016147265192262705564797834267785317413996921843337060140880089779363523072027573564337484906733920781829889637360661164623803560276461446557317583879716235914517074673493039903788006981595583299855112135922066671181338658849452922835208215549337716178187825136651138567107155070128499753674933693821185264975184658471456940397744399031379041806114222737834865431207696551541264596115659869991636071726853964716154778970423394673998742935221121545717657583762404594756339982913300402385967075889170064119695918483166672579904970455010664469978790958994457081380895304809401974671695358705356762902728601879134044106779512697109017583037549584647955336711171361790036413622423341395554694903249646300607840992759529271617220899094430948777845773692747101646961033884060807191645941204897830074750762140693753326746307069042077801573665180558640210366367115690615119748129056578595729450850893584866925502856385622806147836904434065427351300966519096411289051520207400532712602888388200830687633207152618267020630156414156728067965532079294258530427488535202634519675296388775617877325577288136669911194882684941925364971254167960597710999853728495498270837631964043675130421553896945651626046977555189391826092064750560656523979673565725004237044563772093515317265994924266432025514903056517813036779094334877319926639091341356231797203515920899912334346759430105344845636288783845297084329191643358138231691203785478066983446518233665545643179305465867733534831717477856835310863514170392452047549376886534984632059682681709322789159950618234755122477016476903882418381896073850058591090815355799970045247451579215202314719559271555196911000493872470936387936860163566181845104978620557514277836651979788083415062429690463971908477663644901400381626479701942502478343334339352143765950749270808252630414661971434188992438590104784900902899809018680395025153136321344243105635009809726614114867014621631790328179956085970682013110516150228056314740034338896762289369986646394227813950703796807907224122295962901880565556491045240086755306886011092001599744063692962602592421539343420917944034343584409691867445505512406808033517056351523074940498838406073558177970672350133671958841466311311070551025615364248578062315624546259517344432216303848427614424244626036454092629287630136791709458568630885032894053614747573514486701043811761258612417789989859293329195124131085025066011011430108206413181561962807978069966457761735205904709085574942328135103655211812047078325105474768517885939446139279447112653949855487917108958148990102393061642866008217174355589120521622631295851215184683235462346323849981098103694831797033477430248343568951976099576198038909748597278502489657584781800010615121505512220265579120497436374789864587969098917329985113078326558244111634294486102576966604486235072579848878845308761111055181438709746760246568647343456326882947188199493123583682319575177023756473395716253840511467323170818887507082010989239515394279850363607263701412990172600355684444164419724344307946184618950978503122272856320623006846238048756298585178804340932517670504540181501383897737683747097308842645257976548480102035068117419121974568230685200890666959949012675368460562292020727742986210736716690433056907790105399796285105959090243127144383369606867604878756186609260095576019024076564092134217130110896605846943123659528736680349072502644121722834380258712462030743124918961037998458768634362280068249578489162426105751908589062446663044436604095190673665619646078649117192784846079178628712064287557673439236794182459613427685262394592238482322079200342981113563347303587853767858114119295696846522144919078468861635637751740110107275010826919197687354929099028830905244932070741006417036812463128428927092731790099764341337008832414266410075439920086796126146508922631564120859844142947861847712522391174303028944137118554288246670345935214826678790925750130808847823743336272501365669821496608875383983703772351453839028378729162255921406986322182889729226497662626892200067702983772891712484080937466553770788004835663252295273212584376727512859206855371567372574911212574646330191512280790828052911900775418763195694884897890893017473928856756487082571846598035954849034138226207071628310827941042256642489567665335674878987634152777862809468631581153764589376035087692850753254845447783926541292042292552483808431466446583822165169398495963145298159044622574171520340329944452156754905765276412357899840970625485417216795127733633116773583900012824093994187488676610896500826044480241066753684421030178538735450183462624813682673597782011854606796645269696044364963121696646662543824913607001654638239487352491740946242184404884982619912598355810326988548509996998902263729478033156890652417125564796639233699958277871255825097313275838646171213557245558793930142976808520994666617097371353079348989607887692080578880932237158126466808565279702337030205604568157879731796970584783889494086600123428969088868187001676969842323719192559552175623819168387763729383943193258959841894845018103668897093227829287848181415239716646592845451612951286935568481343668112725404727832631068565655382217293025731231803658339999923671387701268674514189703396297986538077893627251502288443868961651609928532363957354384596034310183735081579255880420624452777437395036248796429031570383892252079189418940021056052963848983934922665070769341647706858881790235482358779995289180888322807732842901020539835798590952080509685462282210819466876069416740815110175414913852559844786057000855764714050506075951117800191273228079475267757734276175418540379810950332515648498254641220161049440195287915538486178037833824586901486821582343608622083813313230365173669694990516132270509178196690861614796997701720556174489100533451887279109752476545381275846124384960661645955332099901376527496968444376480511719752014874159801998504622104686517090016473756008187958279101094304150175419802648588963551607673460453327805020879236896899623350909033469995722164236746137919542373416576569233004480137788268222919439319160452836490520760555634652359790774504334467452143038231936932828494719473584154956062427419871025814347268836080630260587759263118559656105557007465969706099087423426032326936862628649152231140867794552491015574323864078091989344255573600217722780169017989828749136376475248087941002335724601307477402740849411095659217060842512319709814850655638172161412161766059445781788750515750044865930636786754919551937936417174385438788387278014438269814299475498523757566097636138157673077404940062156436434052746076411696247988534172363321647813946117447010588696825185976619932281804260257618331127481481530790844800722714289533872457189563148695298833548634043368298856105906475409429009890497401558622928645018862196427706515453337950809765419480774756855637286470798677465451956775986706482464037424005471590615519008707225221947237723702417208677453264049096977838015988658963062766941557168225432799023009859446526924819572356926432155820653308127529233910906364361261064082035137533724868126579488144590315754099571358035983029382546928440590962347737726100169584903491446055808879851151930434021374563360068534511166371747485038784837659039204169783256047177694906850104379423033297956860958134195543006318458034755171115551710485096106195147242276928746873318290130822967229971985278539182434681501355344560116673677654267334327692442775564805206588749323634854956205951411762500676044745110636490469601191579271049646524747267002426543308976119022773389340729443160130664838777639022586292193588543585492104705337341145043845244964301039507262951104191374054949795696997504153276379680571501956188573700298899685679456005171531878112366256333372594359566781590228826785132872055691388456128780374409933921495158486452469858471161839261236070604422167906844003236053315563805698512188775011790148594883224661630895979260747227425302872966588777185481123511281632285587343618648092059392581260569721477451165244211670908658912366225189230837066165919120354748832408106661363080537726677886104034425054585894851595289533596055360886341421124841448709200548509879929324968003649209603180988398430823710871709994102972672774171655761459977623351502157969488630550685648701768037557241156491439603315173716447394314931301086762000613818625753797761177947351293737767815068412581505848956248294637222540206951905581127548308486576607976741895754493848724214988468947022490619629360679843892530899495520551146863749211909475883493854422962761254338547546692997039557092701614845325560623020003396783827925254432683284570918347508232938730929411530956978998527113452585251983279931721313920223180802457131797158606993754549933410539015747655632215014484750857845073205562487502302207314432725226287923746515404683456906320095232411411351184075138100196864554894176909601330128063065013650354048224502148250844390776946960512194193982994636260017980555123891912330550949794362795595045993747005631139148116984078626583366383895090616446747802741417038796013979439695738050586730942903606351622354571211259718973904392831623552592168322753782315702433811101629228047270612472718574386012937655245353717230573079541317063945913482992755993289298558456664369630690840509287878329923254525990209567253170509046578465398054443063547813538424020274686287878747473249948546095045344078656918490526911402248414316324005730230300876052395314446345441267229456462613251490815309930911988040772783850952668317042968223183431669025604832076185841106141719566120647565007327131393741230978838581437885475847255324084475907503818131180552790648389280373814238747850761533876204260583193955681819548775259913817958987815352428647062486781129341608643318988958843611672685128387597630894840698026142241500639498006699553076746598113351677276197986363283645075286963177201494122400117695255502614410956957041080025306466621884688367453184397121840372590190748263030245419345599186513071482561422227962164957581495697649266893478498308699856095635403532941085102191966938557994011977053459901528228792889877736639228554887798611914443285852984917332207606675293362479976173954834356373727398670449945984343272820022099998494125986923721525201828661179799387435574069793632513754307410990385071155580841961121581528021082597529545709637287722667668636944849169973693932636932963495229636139720001864798349737677706974924305670349254507128042571649969340291531356418269951781462296279722532188035161127845322132124664994184737000396055585631145475627774119619657716125016375703683196194934923994116366884415861945934291503295375002525572946537500262158881312514374031794920471414615704294582123789151915495594636326351050400463885946609945926201107231876925891559612147958163127064232034337447305922108490855819121840671149676027327949824678566532646559736646953712088269730652689173424488818339919494592024097267940351783143840782677753325186425117319269615841665211280656148902480531804365217074469433126559317038148700450627224921848673900894137422574287854888194790544861007857784599728603278883490111625019975819208504636294802969818634950552419330322578079238621657372590686085652085855312702497321773006285531480947519246916863678624489320050420970569547238831684494518436336412987629445845589123379501766405085567002858386175168960690789059367805941379733346740202245535057788519172179192561419181621866332895967349566794885150160377627626430142403567333275482608200137746957931358133585163100492193516366511820759745150029824957830329441932582225096923959125211568208715912157835656762242808609410181256023740268001974359498007845739462174250770541121130328764949914971559221181046063870703254383953898089367878340157666917200852117673827259609896705702300873281680877919726507515772006289095065552890388628770620311196177251082836477429843785821818771609032717480237701351649562740883991098974681383018656395352341738658250912585805375451825343285413806720292731641785354889085523433930045955097571970731127203304023441822424761379670899372364901472872488055744286360887662895947187774237790505424708033514778950128459449210541656143819882502631337694866136561529991391273310380044954560215219015925602578257409639533573109101818995569916599968254549743596329029393330157639779880674598800751062214456406584513981204876724859184962774220481143544907365532712088184337442655170487390394853689767917152587275820178747596109026989714888896402897642265807723612032546521078863285989632553877910346401327588108719204102382016036225996255350562852499239795947447974243784759727754032516001787612756469892342828607500652904975063691044302772606658316770342594576326249680716807539160914981085220910073617838350585625050820863307425894189772155039979353819588494887339497645103785797441919569180477067695855343897127911406660670074117942073220580366780072421066158319098681445874701506685129885300255137920893811717375219083995815370565795719092419881946431984834538194839615398257250479380988514796973932267134105971759219687950039449050526851283965745266173670244532866349451547527410506366532098813053306216521361197108152094028405684782083555883411116965165363000156092432480857423357682477859935818638637231968218965925117472688291984804811454362317723788650694478786111619823209304586181986210422730635710004553171904386472163915147033149143980458792828815710146280201054777096490663477996467872738629575464119330403685584587031651492795569433777721223806552957643950819340781517649085752194787381649987887912301222652024175219002572725740549935262369854338748199036944760382545009537732918073813709407305974677960937699683327105239029083260288313237332862163668167680605592471833868623973234450142610859606865058078134272257678750451423251352685930972259013079431460277750108465395782018103220544001418996768787332286473223420922468861624444453913209100354589610691341963109084457734143884749952921443810955041909772409587530264869345005015172310095931450447659646314876619045377145265018974084791215798862816530772930182017761807657664842247388436199402734680483345784866574508030038496617477366044505308392943175299248010775635561539136624563775105227638499347370516578067937293166112207534219833157143492422068335462983538112289391560830370893738395628988561403021688346193386080767377938612212710677919373924493457597566092751800786802060411392001551053972496289709775299130562469262830299028020554605773387973754146837424174469586115104353582170704820555848178235114114670768587239927717802114729065204793234613793507785030343366275136033966394528579920142980557916875595006673148660534688958512059816627773417729342438836037328702689856538387682460579845831749225145676469935745339670117808724965383630985870280968938474169611270329022757610832611412495116408852151057931152410777729199175056623230532899442824975068437046226646196846065699405172527283020539809377355321348013223477718061731056338211998622871846175617678801793626018038516498495219090667804932466439886699652326416024054467057472975383846839660848374723510436039602341650527868444536391713087160502010874244142618840766610969286460263106393992091951088464462796276159837053460537610722086478867775403255522190482831865672602424198872612694545610820550659971460909947955113846731817289402525084088200238969156788446179806520810486215284619199849872591927944603721792939113465665014052520539699222796064184605857304524653704920950103978880683574446555485561030387075402224535727973237986411484236993926911599989978979569912980253558048148149690576564925663749559939996715886439231834754926721962733993313803993973356657425373713677407599638373286624414472288889949009233016035429028388539188745672960590494222329211136119855880355213149496146177081320788144858420943727282344737306817971078653109177302970137197600968576475953698434352827034289934682407726527407027633114190184703628322416805377461199729369986270043890757431746834846915665730972771396483855796008443535159784811788325767129945375780799878737589099268648011624436708936216653543225359089201850383998774394646789000679485460031269421314985590852493287978193005953794853912618696252692529586461067663616761164185969925703909542228152970863868762412037882930843397724370118239648981541750042456464184253849836090120851006395325427280253832401190113851369847948703807548697134863819679150590309716674654380490086325698631566443567087198223301772271120135827380394124339663809508705005960225048484812520684546677874075303058377250642543542525393979808558389594554830365400143271972113785065168415363976852510164949053480678098450739380306524249286349780482827699241743719008519841652206671299796108570563519461254353599634668532531663659953959099252010333026034075037649631844939977519050373322536896631827631664601961717985547575031355025427957816163519223349824260988244406685179458691433175024337368229570566833332675346393265681435091173034058008081403371189392607771625875948583767609431062526535081920363609385006265749869629802722173702017580355897871766997726115044801847239301922515697436864797877279102309074024132085013886089622441821432849934042002867466108498221334994153741120486737397150165549832339100288289232749815766580800316482388443097753969489480476316788871581627103928157589646306979674195067932484040367185118566805298252547962865575037366461893658430770618440544190949816301329951548431018769633797047491026944594315365447165666537876725708769000563827793221949991680645334361185068455903086340930216370447127779304984464851988051715829989384548961799609042744504195151043547452920875654361746585297398895912721019174234954314471530016200708438572985362626625827467924025765355010043252717403461942712760279471296557383434529406077399268859688882935111138795859111477618368602418685720422178637418114250378685372449535207777850717003266660492722099808897786446229576287403270554623934784250429025725460866697398756493678147443360301098564070517183485333634531820029993318919642977533189270918758591798571487351210669189055231183668468104955864890886854867588103429789417817479063455681122982357564726249391962314012586414376936205430482235749687446946183597042527020622916311311731434437089835167406638590035475258060345867318221141947607829760068444739158043996771152483762117363532118933947449244170317676186261705255847840831301072840534823016469963167997547197911957366884742664171984073802315892536622143046058016394001714131751544487943075538898930925133903013059824277655625869443185401620377670714279850564569951986583422104527558465847509440256416885982472187641537994763876702840823499817050620238100839643132351840916497755730209904037486105482391652033226446296647009142422794865074452856884865588798105760907590793066466204993268192163357690001886199784437595824572413180443798893342290021239070739385409838823658113211425120908820292223710158858571264754112879604083671380749585532007194840501177017727171264260152803139113551033954244021796812727233027729634294287585892429063693284909366722769074142514059215773234237204533350570695080399924439469865277897117124206698138701359919214958284225440751714440060946432926382933845671218561927755111213359997994642564020672468619968939571518150945626918981222402271603331636539984773013707001375573092661325318840928594240307369475302377118799545537352694938602704763634706925037701997902094486501317500348659127239770447222663983481130469345512549460453970688816493352504098800149312120960993440319993840434485691429100996406195298109781455501829825855723861037483514218721008230105048737258746412815492589296526939382578662630671999961444830361254056514922121310837534579692959804500147097391288196066947951784347758184624015475643469522438380407805318629424836460607004161962231087696929155216120652414326379458496218375770013849653755912354379539284368483628394131798847153607806315580840595812710473984883710468350018059653251768770529453498260906902466330498130328756443034023898236907929337786097187482017364908038050609779471149520291710129688638056062662508000470285822364332483783955512474811229268353422252198671351227419934411872507275040367441547748956171507825920408702110277126397954826319228584656439975135038211283352179922306274107527505795074411462068211279498890939483712727988474864676159288114810388039893621428828237001946718575573102089812720289849054687490389345222922453557062815327860745070400948568159372414292687977123355449605859085379908923097557863841878048759619932084633011805483278966449932781301326051680915823759792370464920334330271842170918555687183018661574639083437612922295224117031238227540960306133273740050778539835196402817018419704252016960860288042474374828307005916257593745991302448257615965151557618717539399569973403179228281360902048986273152876603399131795645138384624720206607556833762514679996298114515543026730814156828149833766998501191881637878691350529641141385484940326135879616296261874935405188027669698222905134813298387751232819245811893507678241279221173416849922967666436509992970881081675606280217243957433965999504103591880466529980155696930624172810965387663027646877317786351059692901784658462428471428270505329932424203689420477804837824273290418931339593524012297642488478237748958885595771944562299863685092457717833993775926797523024559662525011201473304325042406967668705080178132807353562586436208131881505727060157612204048650778848709065364133381582972584023121507401121847934147389731858728201406791462817953156313403123523010823160697294037619142344205189358684528237972873097733169073740902225124141276314874547740141684867769210440967971878201183544674449274672389445373227859920315538250295505044247143129535312012590682435861217294836787762663633684196664468390061067061296220084401225397845297148590951422366927001493877048841912508676601588284399421744835938169554469957517873087630929853551903085539675680544268699951932885139857505782129437383723609089701570347386134056546977481200638608210293997940717087970416834006620846695586613687997220548807015796566297080390856010437402556224783563475744011486295956377245568894834246196611741495041079792310525691117579155649915859438364661760397561695764368049274643274044645652468293228586518468587337868280656800721926324234987065170744697940572391739789047517973743917983277106402767923429840862476107687407723289946737416951073247006672039159797244095889551883908197866005439508837137074252369099188154787969810012148315644514695102704568274246991696363692558185730458599676615083068678527693774931416780910740155080998343748418636775396811656815649057120986470434942984729653098976139204930409317691881140982032828243383658326984400591131070132157302131811344842780450475219038728080611068998535018774007187963279077490780602641203946021461676664317394850540998556323868688628626346411510025267505970992332647896288286879787353015309197361666284043340996162726640101050014741727752372844219850552696864764702225857422650281364138514465087313889991183001089339052626804811229432748321417414837890106682241108485210785354396604798891686808253395276412401897597605017406840408456195235954789569680560957468664463380119437216578696556522176770006173266753592584440322883464387164608527623915041170594881200946657642890560757811867372224099754585157668602194809826716505979425502389444717099566345385882113758755219942352917533813189174276899283370621970704656361809471984656948698320349020052433032076614518137296475073035861886136231265016556874150671036079649747149063837064713249047663457365654792322040256955958334875335449557834286008665902679079522743376598175198706911215290587839265145774813893680437794126071155891085249125501386439782876561949271768020717886777442954510785830820190057657073630777070106098605814466411113721051240410550425172119694450200913970599000144613873724212078664023932524920814771569768697566017264132586238854206736194366864309606482430570819239511506500982308450375599785167325488859659195185325810686339695645147008672636248087417343091012563599675484930674822675974395246931169230231082027064625658781864349822491140876572297396690878100035830905772719206789261610496841322431061706266089584752920481384411729410050746067103294581619115715034867932850229462608616133321603696207327868301962859581633112323738996680795903222229747411102123428123960238498929108432923678174828579822691056412986981887190276620174368494192768071783059217480152199881317991681104067194137758931586114142200484093409825466557287308948056431957171185422100128764163877466355070903159572107645569578908493403321428774442690570973663872161132046387127479175329007295378015469785352370438788589901015574168579600311973872687076665431842570753305700096182811939143987568211646049943091962976364950949179057507192682265471729050935598215201923394739300944578073266425897873482903332134442132301268166948828384217963264680576182254512171177277711258489484609421049232255201003344794977482719017266065806280812005963486240097634791548163819779198467464306696266854560295014846054640591774204465437519749811591795739196438767119732429418299429518550814129222735831967599017311135596344179276594673583898256994166963551188308227860582246360183850858761062836992951494073998486352783216315296460414486167129470995126801288918509004085011102184357710109740373208524761755113443477646642321688267660987215833064456509229657165167659933240433930206890191049204085805836459621996414480256945749688092099063903800756640154931369752747125206311972350961649478999524282797345510541509400562976510888701726505490781218938965926883971532324044907818816501961852690166410121003244330016631648848770670939687598514226451378835286578142950143297337839316744920098683301966971029903674602580409111394922715480055403527324491375139296094641065834474308852657381745293208788987545563383066352341832801238765933111460498574190632488514040855520390923326335132498878164241024789558778798996706962324607229838379841850187973087694245386120318743296769106974681836905185251860105707184455550473296948766298937337484812661352240551068455113412185115065794349578983065051350874240054492301119060805427965124655837466441311524154806021024021575254677403911517997414503454194527134410358686607176057240624381570954729425752077834315899037781578321073807967443685464608279416851905803756521901232536004773488368142953496606181784684941253892933045908343743629035955028897685731926847953412548734942523002814981767884486687721160317627858422057195849269216101564468957760781990604830760418405232000569387233959992112791821326637869399232070921845919892781576825266185630950152976309192550672983922484932268196676037605645218090278106377759228832301765390194374813303829639541042546482638409833558885148246817913120112040998887325654217615545688342844766126007130320790549331934938515679275591331031039375163005079393094368413120724269711151823871218072521988317558397127844329065496154025182119842289844532083135477310675666877138569546084282908978171816167539541638013498597146359532951090585465627849210075326079796989523388640304080665640011046033056046124729382375041396473019271682479547753338817967389490050536397271574014993830885168618474767886734943667881696140585558366313400299037826397653597665796788338485355735753246039759719959833373238299596597815935470466509015668862184852874077961111123016098843042141952602696621238786369976709478813534067535220936360891473030481567304138001524670646447723220969198353800807335960384670162854817684401211878459614797133473380779816389077071914497925352996659245370115784362111112065632436189933489071840082633180525175921032309456454530450862898108193194485143746727768381480684226615227611191907333015824575346562553696186058015915617147664764268031133679362955106119725333756779029672003170937354253877191413412467138142999167115600308584780906183706872900855655615627874968953463523224414374864886064892823989358725687070046156968030051145297030567184963532359515945369513505541666965498432708997051320728563468832805360331403658925944985256275646275574624194175261926091353551772503747613312423379165673291353265437033608661811572168303704193160951635101114954094706242326941720794241718362533707141044414725813963050202948163555062125899357728433744502122846930435385685404783123401847356358850313971955513641863742073201313864908113006182439583327253704174364233119760681363017970017097680371398378896002978814387615003333366625517087420709167019628134718854482725993263992853657191006395902134339802264242393618155213610809511147787787081268365540586790829019012705256806434361750899224874753107564749278275549264066322804997852460187908996798614036255824139764084869861397876382303346622048718044430055971818559185303079861543855298418766697342661320768940348540032509773206590107185502250693899093716226011418000631821272414701562945551545461390777462551548319763166808833277659295054203746885176227362352451800023227622402745902273303485157168260605943656193024178480831918040873138191202658906863193175279208328732513781828809626496149587344349529366607030804171801344293692878451102332292707200374466381003662919660818908808826380059250727472650938898107876421309733559353488947129652321615780561761182370561165313204510975265443617027424917949536417362868656487862091119208044949537387571689578547453659993917758987071819787650336524131631063380599724132188172542299319071736400582778159051495788129873029088896935541814691486860074605209174501987676303394581050302031661200355444586768289267659961823183269132907045312912573357642641733046057359687025814768486619999622244017587908778459634622276913048816117375738016569693180812657981391210578936883186592609200452714653210750436608403676346521611610655610642770559377615103800644594111170633534344593653369890049762400899807937773370807139347267565047504280065692567472930582384417417843669833105855750942534735075408073299346168499325573651022954920119853825814519482073544290485367951135392896938630926668840978465827114583859256279118258957185639168201545951316761848377500504763433432660077721624837990995797912290932491809964391604206078806716161715482561262745233822680277737949265064792970027362123236809047137305265470965191965810455552681780859052694866131002229880658655555006030515828633942888805251932103428340259698612082897043018938374131434795043676320449102733785941265115938620419139773645023093454339810733078621685855910402808746930154685803351203675152151993669201902095724715080951480504585811841735907955165659991985501657895517906063276140923686688784385913830476838114920344004898479118431149932479169641060512775730961463198993012808398558857367277555796661610025065418861659044330961808461075506269050191622327232871297349817232818592214876485972264603147475162443451837889755175314242339191317863202359644359374240065975485417307176173057277584650991051331774903039408193884084398665504388738562949114970521140408609766540809229216169942953126131562877233212408211180594388325509969522404917496669705287473185759646397803672855738882687718469705757161274626395380493182128245730712823207251271910951685338554784108950835230636546748996055462510474499289341647751596538750024296984248988192810148277117085382062990489831901911960275696737969900575318332989962925341849146767471117454361596070176519814918080594244891427102585550345088995285474019790107223670895376146031622534544464935374223334635018278162136098093598292847089247683413297226612907912199120712370408391156855534660066954176179398464854149828077860391358397080439154978289290485571943400708455492842123377687219941054647220930047442186047479015258154566019752564409321023374900098558031283124255230544017432107811058252952371156826138864094311239871830907319557681796549142296346586860360535614889750572155348621933546634716605986367078027592014740083127821240542340142694876060161509194321473719244811169924591896567253674795437310479163133964152641034364411980746136189584427952535536851346619966231092168889196250587661416569445535702148611651234173697143230618863354861663414017947122583943942932502030781253818870014136115570098613202003097678581730291689110323759951315668187807600645049943754393358057027565271815965802736174791994784641651454872965476380991731272467479814679667463779719721320660531477718030528761400644706509796583142088030390519764843372866304455519995205330468560868901849538231802401758509386930026434745705965454364020603951715148231381691537495544355316262597385612317819874090046202156915763125788936858245952819428778337232598314976449936033699743381750072145905519977190576147463075932737451145112688416430708565032462479650994585931552438665376330424192051699767800053443394539460689705484999927416608560760274054280420760021009616551139736466358279009708609358277374131774807450168777040768182920858949440020316628003197802086278753702143313262901042665448662158394056413374586352128807302563818199679204251102841637353427300834311999813457967004261656183444393574389325005085155510845366043625465893239570508611755656319453983642977557664183361558058280785084834816877535095120042594936321841653265845378561781336357122732110605653591026554849366211488523072731092974909698188550555071196274984374361145540461704607882822592415988149314342106396204911874852752701765852943970191425079476553682618714532935524730461680564156553823517740483811386125139029117985181713212540794556539439329941988076799053630956840973239262859920285728089842959504276985979897935438265471039696688342677646272484514635628117916022262979574624451104115941767101511705437618226581627097415447600470151659588135804036985533306023691567496650078062926538752967734717680749594815432944024262420291368492608908495123754198737276385454835061660838187066054331174755304010158715406427119430614522808191808166615419051916503879483802573168558483409071560816601765612520388798275410771905471055902286968931763868055765319968236014830396607012033863672849261102835000260959177011004978317068545302559949632476154867965078913671594794957583820555291143529128096859800959420692537623350374998415679544729943377918354565153875422182609867996290470257824085068421972099981640953183514014587986920930530282619538767328769592895156611466215040285205998127514807247746079711933949117160500252319739277004020797978862924367644807689996285050883305031878873800691480732861040158278656923629261709197225677118416591376390940143048801184926838082829217522612517823410896116110715470774691555830232983375532277495098876608615069570386139469816387080100856274421690102287538858590198889097097080673376030932607243010556246375753405812052274187597263343719059663342689892885492419070965257154702393032238637403494509615238662930848395760180565525888304105831082374086591086870168928584495257627227584691094105188946553127599130937442119518104340049086355119270047082394162723943291658338724373112835947909828895318806618501520886322209798989263876190928494295710773361802408471522873291173723009607520953849203903178731378817427156466404211673517518370553754060449813359401926202277904729856936626176486500408560471436103545682210015006951016830190036061614031725374933067908627397358550216149810744410050634178771060351225887684688223897778817062043283680642364830989540702538882074613514080160705039422296945324373010555395511762563456961209283074653864827782994037188234368989238959088640918060559346450934845378559665225706700039830478603239750170681875258803671374842849336979300573208240475983003617368938289365260660523500464491924504591549285672876137103611209581439493906106379171071265689301023285820084578473067227399115114358523289793104473852789047305956837550643182346765666208854722698555856689166227087387262974899060460729199647424526417457735390884669273842736795521998467293189185853093521188244126195841220540400928501574507935613828206563440917343848926452798115670200727944945899636568495104176003047511281770251318337302557599360939305210950516343322758681611594529758762920405953669092499645272298538826482937672062654054947416798826163252774004567538683047789068543507093993223309193029968546134996526457770321312001072102805939727688142932960925049536967261599634952909203741222915604733926126326700491069967019043427696086661162164463360361983627674361312264123988188268241551595959514924251591353129038047517858598751739240835626101237413908369176138219885124545445630708064289577162819755207867756960817366296672200518171521409597118766737777010108594321004501960145942906881217075535617755480685664016701780603451317901088651426144622169393334612423876569233141982329001421950264420237425740023119421243248342375588227915408805426040652187129937102773732777004778866096697535695621127175156142546169965991634521868231718660466254706238586868676656359430918516208891527019902446208268946013052224041390776636525579402849585020083127918168123677431459778809348989033660986493540120205884781329515570481957465997311700156948354506676610795458761080632938249743363639940665690412748069499615358652053769579533596278755475354527986250832767218168427339670648104295613840713827962637506929604526442638504362676326105571254637444993421798786886367718703190631062998828496372844874859244801131491891545483535403812348453593251337951757839013636228076635941011243287375473223985443814456949921100479360818925212542331148231398871723544606121253975983481256332672954100276910494337574967798609753176425304024534837895438446880086545865237016882480624079053623994859364532125582231365282009365929571820257040331741660285080588635710551999775722311486133850409810627383690927525754333311767501243578685326605475001234343789694824349354258280675076864634468354614243739691993077360164321648814504983285702830311871927734744275055930524794237626924898223575267675969474878756725043208078830392634579128797951488479120762681957991740981992641151708269761938397487103305508217097962137491220954369077127549522666120574032936746964581207627732288511666513248043891667935310889842010726580003242160234140733678324145292504107289479994155471553242098771850196621532221357026736679851862282995750169955424502386864585977490640055284331361050143821663153070558600916033681235201825589743017242117512085471227425301822137923905722394370869416928677160747892786498611707079722051171551218620082480131923175811550065001274637433429840364789766298810267557718653818025587230052530078025344587827403805663103706886943110094933138352199462815487058264475761797733745906749799208589335933052516333546176726139865162076824299902910584054696650590565222174102289090566416805899216576349434078994997951961690979708045154000475390686612731629469788531839110036290169567526149839756846101613145037359439332974241485800294243693849285675487683621080850153835055458581319885207383406168998535170707231964064874270625315539836103956492594696199268811075401777266358332354227212094143236916353522007071296701096910500526265384064444564193995423985686930514485875493521073047286608676814418235785952480893771472090515205533750226626996576821159066671361383922713663582727027147086897955721883347249023560409187077393065759819778931637352749895913665253454619526879651737892716181042456257412774873783528907790872630293585235886156662908920499665999017804861911632183576688375410991264426496990497714352080050925596910087266432358508396337228669748408995837864715079087423211962666713071753315817278731669243180860532563882561308871558123303491398628452236423007194349318930061695888693958537229266122722399971286649499239713813683138206275982309223292995840067506655418690765160104116886026173878771688951197677474933694832661611235888173119860799519143261618665737683598315357830385235383243140455113836413438422462895596766770949887391817169087174256567606326765312959980991196035615638408397052687310059347339303001921140402372161303996026239046790609907312215750435908048987577696296628408052786291810482630797875439937176229422938197008482723670855250510031806926324194980859303368029719347261125151026275733506384985806825726864658627228142890500380110892607431211140762537080202001935380352817506700929087123279641983198799797635061310849225019429181178142633608887499514170048939268478127282156381003080575264963331241313414112020919157535264172364482018228989541196944629492145924595771688062380661700561734362440467925809904210352964476646212278195085687219284147182095776337138652318348026659521006728238370216943372416056477136906907763424231711230440951172981182725139588646418161729850759175122694148613672262047808161174111573513481662072699708133183742478547390906131783811634546979364155110546299766232072356584995847786867333515026135788286551658688116053539074423508513930557149282945936496570408803424641474315262689382184863193668632893647230302068829135525761188735033796229245491115295341782268042665590299436095290563353742850395593283696450346051522653681596088738175919263617741564446364763861507115777933889545593412631985611052469271407116559204041607158617284327043311592631440405556007888144904165729150578921234597083190104528074148268356781808260277704676607890691646588146480338467542744785100596622240565545277388427328822891732302307564297588199732746846637677845835575380471775550468678449523672802414554778008596867647927208980620281042557162511821101998086131823232807172619804546858286157501837807232167488427704943097119882687978753845522320411334232218319253078348279166837111741205461576862079808856318457759269231262179036659553889321744524304857164804889664132100019723818376363953877482031507004896357511797827390607124018279884049259694200610839013999032457553015849436236164434033501971358383435000924040601315539896016643448990537627385317268919638340975117463222264279699852228003165552502194661639229149969499489222168688447697305279654265103709252474262210268115345613485814859864251122190063133326006683547334724610233560962181766608734978224652484695423988668125061958412218284595631868294325759094136887882251967825606647120194544205250161513087460483041515845962423883993444949686470258671234756569153722391568591088485127219087653576266173134530763486904874683034537590079167234690153574147622130951753253246378452016487845875714696627673920097703489863040185643199623612922860623262191789466489889396811067301493046011263914979528656733791723226631432873262401397108997620985791560098401136268023055181803302142812424915026259071745763102173232591979945624491745737355048778984865692495667292979484011956860844555638108666590948058225476103188772060864775533256676056833217384218779532842819646710753225837231840887568167703690565507041056596851258158346349269892020632933315624133390755432900605837042704076481567841330973297998635018830468295566055387523605570633455780634628524143465589363173545378682765176816771072674276770018875836104797009215310645639490038372654512423441952386115579673299579747886370527753947217838191874384917089338861099469328964369574990531062420468309124348275018316352175741291841918037555473666948746720148490837946757128747644926511593137890635224812673796232662644557165768692187605203377221674436054218378132103358816195477185427630959500807443289137513532574646962349940106005436260262385407121493726555327434660402805666599274809658332735990109332431374509205484440893295639096419827637667293584793661298365270313959716852666940057711865173276037711354140522555498828116916024053985489119061937443013622256666934067868721582891068012571654832918277673249355948116251876996568642726732329718094711137269444123828367783501720395097557658592777551297322583664894922624018877495641202202583411572072379721055963157501058422917564344476139700002530568460455349631222372902590506299765381979648779993989407151870255944562566011860758171721438223062004218689393689465801750493987135089181355033030468848325829008352106695405017400217760787155666108305421118792129322821395571019672817349593981251416408542810498362465863736876261070432103506492859052503085650190077390109790296892520264855472556852144039036459502388952336465356214539472229424557459898799128752237610890478530843059883818888787952698136836730663067962572414093332233697689437730421905791448214885850128042117785676397532680494873251648353732907548867208641059359053479818353490001525570654568372621177895403536906400456246951579822937713948307895754729217298693984989625575230347274804936622847551060295265450877625107865937938104998900704496810562577913700633191604595096496615215035394208050643330685391240602252512017050838902237908793367192084554985981459911344283636483102023952633571204248064584942401408725188387594788341576251286074060840609664227431996231546730844796472305345305673153191275062867886973768635876906442023160399536278242955558174577144300282919491113662080840063137875013007824228962267755332488150694442106321260622905946355087571156671321806641190706929120922866287505054273863325229999645117562319229354258440324092937261494347523610158913920161287355857190754501689542994557262301733984371281276345582856261480071991175874395315119765022994395885618592452194331071568059711511877500244751167468641999947861209039044178277064149045699729543774686950498402819283024580773602517984279029092840329684296155218106634172684151575688398078642826994309965272123077084602490875137869125177914093085711139715862136515110701884049146438762691423092087375127689917842083254977166425112270900439972431025628455950225907052540668825669052768876314502617635037812926692998808780518929325675424886234347474715823111394743120964021724175101452981586075375065611316013130210474058566518711710368692448037734470228792145238876551869050500726719155854986325747709508312758588663166860368560044443214379964103890550539011723711758980756808124683544505695836921349869970985837176791032218044314082637196276631587743821902611826848198204944285101291449459853362557639922960204160492249528561122227633653209186993548436445340189240550338839789061293130725843286222641055517959342757708059147939164389088922992827154684134028892263018682045286164488150030084399014346767210717930408524292610319712194353097437056480129663558879256794017261882893664721676038368614671618940014062076702972523806968997809516912242544537317907795773625339215447008730748606085345713906898598184914424605262433839054171950910698155328443417532705834829914074694468023405630847559818980596870822086335226430640305189874912805463528094782817577880043034117237751523587610944770276767125261270596428435147356352579866103338793694702782885435929603599852095220732377709698318717194696084968111321157379740995706073614695486870893148112281326526926655731507760215088247344651384657136334946812517386887770775997795991697201810771768606615893228677155426709787896034456157300823964758201738275091677622653328798961808744628708415416747490859394800047903076686794685396440194421680861541940373640168133219994093257170243789127629869904503362082965047852731061702769178149198835194980217343253309196547403782249152256810063766430737142752851777468961984443659529682586468062561189487173141963010796058216432602984962152946963250576190778852345158316726030168710710347847844109251476537177833362473994614105558987649430644500186244243665711455893041217585595874975206394284035481513614994864355917317084943146600214972454640946952029021366953977699080618802103433440724640146923333183218534433917105442168185455342139064238666984974156200540888327470720593516193591367296082783582670781400203165172866961346929250791903063874987284173901325669398619295103308587101212884931608645442199678731133653591099548885162134529866889984203670530656390921230653344861451696410042015350629646169091239968762294095978584732737092465460380069739555074149269501897441954213512977252413550041991395649742109841488298798482580452294040091882029627816260090335337227513811799639127240469871257705621772943967160630509526751775567418930462640731261347111277966853129241828139438379601180698623569182919337165777591921336905954673930381465250869410334266660661759261642045923761116213646027374469813002833854342671543767005240152594886422644250028007184839050302749030290021369034006917208458769817165625255549573741907944833142009918257530354661131093509838702637982348849179292774868502131903056727624646683676464719361110235477289482159938134504463418731133014161751680956349151426769475038907248242486799008537591074546261962766432780853798167497786310008860330747243510706430314079456298999903159869362511397383535274602637228934789446860805338832502351880574418957148959810218261917634596284067154706423576002256619853615167031073044139751225160841168476233111990045613991327989327158227276554803379004383186111937426927754977074937150819056870978193100855758184396209359169695339233504830744927480684549554706591073085741261794369317259552752982585949597658035507983246991277440838950811082791652720540710122520183338066316560383218439001900306803588032395522852768809898118397962512423064006207102845540022890998241984069214415029124992777851689317390271092838180418393225214561802207146983267889277684792616954738224802666185664448971319279564739611152072449681332314417846152774702464291523046521874572367093595452089971217385164367116919942226633275085770451622680620628611680374873344997030823662328097242659385004994862406572911226298615079481738273179742872667489558573474963777303240595597957673786208439927312732840462690189987340477821658576146711500329278847933588230819349147608566376161105237002983770620751084224463549241899494270935126072201733962925304986686498188268477639053491277276489370243814938625179421706125320327336016867752602946808164861274193583002703710490818558607787346540254377810916723083318483389811892966146132635993662780093747474241784826610210496958762876518375323682914400815529653993003114200089272661576456076937958622501587483216478966183856356277975594316914267099292047021141516638733115916654144139825494917073421326482248947302682902448449560378970225800412255104746030948582652734996878688478376858812307526749225159299178454701645815643594784062867135346757139454218902095646812405121940870060118385948178313047247248005014334577852541091061396172498184061539011467014881030680457585442786300108467229257944795720342332201182641091455360905694774132572565649623640702443765568630091550575790526701874034506040613946417294601675632735251799408807927425218265519942154343066682012240654224618252822027594801552917637463028911207865216497261919068251446122587580287458592757685859843065788028742009152057932905252474122396081676665909114540175444364229186241781411282963915933103531726619385086825967365228852571311825394595469923399104091851028219516698476995896827867019555878489270503052421463507050682843370913956249430708360914817844964300501689984680642849697490765396962429724471851786387873609138929760566905250872380751783498984522435696216595855826314413298436069999701949713892591105537045081691484725907360368517581869007835797068121518059555404954267712737266445822311990233053262793562000384725274344721285088324130313317679254665074142446361451094101580116678438971315944597330004693122888804224087681757224920257361500514663431594715952997073098154899337333131097688417485215534071288950304525330262612051063641943018661098522502117303608210427132299920399919201617222189641973100455657022136116245789524270739683705739738898169918621848065567435659159398296833054254644562781902054118719439976398791160295384242697614898620756916599744831003199456458412532558112798245980962465925701790230129428324523928443144948177869915877055708598853219932891632143957311612961789439121695146492449161333406097813728373652915565374540499756271181461864477941782283436150292557075930992148815232078192150246977393457000329582591067672597921380187118935621173157379579619881795164795577736995080257146463127760578654706935779707529866926229406195972696889844595527681335017526978665298554160395307256070014841794708970084084614668609464561713178450463345864206800698774141813093254013181277233825766168583613381915576004319378752287189253028779012832803274845995264269458817172604565591459046078370931654573900544074064423453287437443646545613803727218983056189838578156658439758386926812815367721641394601673116166370628646326577100479365379808349216797973045197931012431063843508428509534714594890228303512979118680170329350885982129135168390770486904703403776574077568954441526770612657522452370814270727530796761585388944562200470847139925496039365254708837406862790957041979301203441970737300808535175037516981574112110043586270499420711118453779941859587701233658882688688054817599448610845550284866940434799225965320332729849442534984195207437387267177714002133912016666421184698207477109535049119616606586928124998717401242301889176708901659749668746523567891969771643411499529604809553419566019211070956621356799443458233369786216738536586601315340115404192072490439709904157322028942790606050995007519937921309756727235653845794199029035897326884306606563503928965505854355796061979855303333183780507968450695076718374008048920890467050064432163059880016631259779281882624826284645906386099504375227661052052953362789358525522256016651807459914040836718970125502045502024087050497055638557761522543158282049683108457125084309526783781135330088843774237994505470153351372166208352819467313628576418730421605239970427396535294438328998813335631156406175356947170937490289055703794960171576341860451244280705945241607803376627907368392261593009088273050501250534973261722487775960766921449962738407137924017884559371346552733275993683551254721585749380589019568121674835076635123773539809518901959938399236643995532689009614792281673799416654167215661905343109074168852962654727136949694861973711930906107663266783779104138953587381648451234771002511326853123524033169989467671082675938586050191383915459222958943098230771040238426052570548791614512506861794201332593328064533447859330611822545180013460660059088007724097228371912957880820736117439976684669919042043989970146109955948669928044245727433039054835511487131431791129203616340678329015645735250683462284493078757052585466675888826851164769749097461891659235572877683489869388483739226099643407727596016887202999423344481654128713053140975890382593889893997918689451990499336963415220535567979624313590610958067219016466557175231665865193282097088592005541339938962607727911151217950101817324343987290033305219275282331531686233876561942410658595874874487747141174437031460555048785422612851714087138402567832145097625869889846125113273012516494028773153782213740399064358788586569704226104226566199645836121184032371405470011116336575917708926702044375987538014708187516705810300568913600479911357169425790797176524832329203735330771491951197262966761974717994693268354633148272120260058716239293161118222145797319957587150977846586403465331132365179699650840842982930566892331536713085488642658656861244980089622544906810267000192264723562089763734569330375719276777406007762912391249192988760633446238145971186536169803915508104074818700816935740578117612197637409923111543939891708599332592792193102659226219887054735108744937500566934447825349895798607265344232929748438996854661151176240724712680557616844206814097526794189479957466354528857374975348430361204722575449107232397863761589577306552998189162683406398962461923334181549085825114122095370777731323060814906299761116534655181203946472598766076247652791212873036305537041424993752001361251949510123971230225351669787392355581924303498236739940745720523564012421144397128682123836991600490656134443629600289827894842375030822939853853149720861438880223645825102980749449261009395687425748875587634273916504579681555282533285227560137930660250115689897393116962512124739298426830624959408313739421950001636384671256411979584698634682628453973761014478921911479919205369573766389742980162938791675314333177334466499603747328892252239518512795503788898399417605725946665108981731582918473007808914072432588198480514953511733053413825284723565917450111353666790156833109308960917174109833226987871608878573865649167997376618010499962495403212699196380890581934332020007813934326248336538412103944328123001858298969212122702263718793236337014420822492201018690011154632298298261547309505405398017988101976902212611970270006112332201304949582946532821462688333294101348372231149648870639765458046029023797370466451598083251856222386657592280545202684795434781669176790686169030123142187015241005996645189311375283494283785160212117063882629152713447792251265000506290861217738975912131581272854960814273008587104837061481422482525982634748865566521869829554195714563176572945289292216978570503481104559556359814863673455971654535172892483385885831272019509319387557159801236122086010748445412501431108307803486977650906241148605090225912618667126256258818408954336383110304246100323986784457228794585755219940487318258861252951626474198482699381836641504846598821875666187426230474330825441188571616284118430592900360620042516146069118350983538363001970488405669389249994340474155670073319542106585590840343010537368117922576088674604268191810306220006272423766163652843900907503160192636765648071797445655011582014532801508196607037880661545311265637379154657404728302476137993602270631590240302108421607449157627775601289708902363076210681751430347918865300327346711318990931625451972393005554811347368721012397112346515450289293068143238549696179648565405688843625646142168729758388947662548184986695396760633962742475903882299710218526421650767657725321428555847528979597665088149336302133871873796278476517013789279699294643627429532238251108646639643697730558357192148694209596049668151649178138947910331700507480624322100862183854582586516522463530341536864805739856864049355619903890196264485535408790614021101752199311975909378753996594945482635221878213312777971958567642182365712194933738650707844056830246270652692162748207335152376173172540556885956835421553316732350354533004636539103088914800985774945786195423852767507374610106601960431735676235109170597059183142217555820017077836627291701922311086164495018874118423508281649191050141842057784258790162834531985463755489167675617619828754479106651927376246652007911158764615456195561417867276590329607787846240632702974652989187271559863970231822873464832788343925152577013548786981097847531204517288649394916973873398360648361617885114333598128133830979407991344025565736611128329097436329785804158165764895462007626652780404455401552638035864119700637273127399597942731106366380453974766733003646963390176848233363049337492141420224447255871390392742173593088810640856677863691786941070960722821376653220058898761023183353731456485083529977121164478934939254640051749869029799391408533337479917222962640695493495144025777967304107504787853526272933156525717198639857767836850403193992933648258209987313314553048575729069992134594575276182141510008538606972146928517217855550425744267535176760473816743157650034796854845433861433242727221004500738762811442345788675695365458545348596988315823096017452866772460332347546320100971133184226678046889490696861170090062619801482483547623710950195608584413003022830636728276158621036336893957454090665475841567649053267447458640637789399902770513862112830692275733743161556988913613487184121639536377385523805051783881758924537547322294810287368140705629902182638195493747960469704829810742588968953010144630233509594103198354267406873851510758985162865118812383195040260928676926501920439067691609685689750555822556476359510502103479251000451488654859656012735909120115302948669554072862106023421287499334125610897144381849701044622039618453763423496104852949871717349415694642261135133662928246278493920922326926113800352226756980015261351623875361066064767989217303502638434265149508179181150790484792422140864268965895892556123991408015189771229664083179435843801920946603916403821331513318048212549409833385736379981224281180322844327163015978106594015846762096044620867946059648124456609993502275126601606319054220375418135555647341478986423855928375272828749601632105034631990277311455912604254273589593135849077655139290066133869664430054658135371014559483047741486433667233994934557148680694541432087828966373987013063389708931407325704701569794364043943440310918808252738687164117924431973381261983560263856618199913119620951932551176316539713514265477392737560264624998849319207503068164818985370218439994583987446060274465605395878682249793838724022329366265334856387796316933119319719117565425607569224141356435438694580806669793735734585162288188629070070800002181005413323850002068768836554911204567473348114724968244108092087302561904134185722088802883833044770496047322159186772232934164882982810760282672722763034443535796472459588869268066603353544806219290827280365576179651541040184174759894728348077073198492006411059394457633683220114674977607169830785574695448386804610049053746484029199821173303817781621200172233754760260737193705817012154944652355893261392556833870233280276876306283040018148249769971248310964364853467373936877089846557651304024227147361362075434836184281837594828287494989676493510736324942523964306917954878944174396067829468918026722792840885698133760996311243108371764903118222672826256420336474255214588081997946751447105362952793605399782299300812781904219678818439808357492200668539235971716639490287576854467052984199734207851044871591501953346447468393088797734540202223225344788451715664006800453224490936454199427623101208942943173003918889551889500756540309932040053548100545858808308362475457280350794836695715634000344152693605772130074241616461236256316111773125096500578371215366084483960235768937993047704105503550771739145345560077697252797502017271360400120648655513233834850965762068071869730341205170140743544503895304068029766296401194318272498198767728988616426963114407602223367008822717253716090163431023534649529702051055541809051592064373179105225760701168533431276615057082298910449969226780325576453626682906807835275158155443039590401990192915072593924518800993010713675884594234720327859950867074871184775831295568518725867493951790403823237079698993159240035160281675281255614976786629557025271578020393625606758270078440200051274867245493362059273368525849323344214452081664522445490030744985344861406400043629480964206135006717230066748364892544462069066237041614594387760899876829585092788685839061685172230080260599539631083578868060836379103857596733925885013367967411988942638577809779847220981627683540257329950892468475714095347374467322447167873094572209481551432200279778692950975264942738723505306665778932194769549366641243923622181559529973121466055062508558254604675218594844613517994539648406427072455833526009810802652185629393543684993170778906590453605284143664786309750224795434854221006327191794235437306068897305977337944629972407955549615627726711070123068827116033007072482839444784419193843388635360827516187938550593476264331824831617569241964882593990789833349093770256372899152236903296555671048759714587761947873526955023866515168715677156134951548085273656788773474861062906064046821556426961910186851299752965622290211247007035425478989334882712412320747484363597698636363889720001974086059000223365981990166323187322174547351538922101155940092784086999064635564303964041014696050253068264624477297860625613447937069172400226490659939732894500723764601643456229248279440728196466851814818271792415347379337866084259830590896398688941656409915464216257074531180322193389983538797713448034443434949058652692150073651290761924463777464427783370038357211902427918179605692813468467873071159746293430211340248893093232008414489554323251517648727351553708958097822282404872872092748641312539169626394537572406755329310741664072795675122009879222618546409390941230904458187181057364794150024747132470048282698377100668819689314879957316355719609066733360505732821011116427083218432165366658652409754700165595634254990216983930930950832335141467764419477361270827063395315055518795976148758818246336499669868853375782023048953556274189791849223672173718480965931253709396588561550466791423468379292821551095532145228887368216045433559093315037816758928475409879043935379867989703697741647344788727131076922926005647338186001755169359382740791046008157733370549379030317901169969042629764356959579620241730819245789429474315484247119934254241162141740457364877931622639547672089416399218638051082578831886934431921400976073496102798550274738010723095550746777482972954203671156732528327566065171499963514742399804662924650576121147601348261202799284863259050734609808739108148799054172194760703644927690272241330610648057017100814983264458450648733417342547514272379574523761210404362762023504801498344344381231536144697285551500900891270710908170882909259918794582799556468298707730994763806790951593924187245842415400067989692568651742814880287534120945996268510297678215655904447859890986386337308634218249128865179445896271012187597163395766403392834292184795291430176748776925698370592723335501520336740405624818210049228297606320243844754420822015702969703391254978188007959362358675480100984988664317726003812827494619207055466690908702715344115565133538871934382119784093387725989994086229308315684281099965050022175176004474075805689527067063013290644956569166199165613960575782182074330708234288634146415445409282773506222064571256838043588777944992793835686154558130354076603100058091478428749542524200823720021462073516273154971157958705294567899766916268631031378126309614039350170467585819459960891000541352912260675706380643912571758399419320284225292199886892848409790023231865917878474141209214082086843491431070971150601172212913976553344086447490881389996837292513157210378769694432254409441839499564814858185955995913298859700561947705045762334936267375329861598170850804423153513598115979422387177233929913451912702211041401655470592466743401201320983800947077761867755408976321955098444839814990565588006791176889654205471092184583959991297101530966151300848746988068142474166396756239510851489094548580073515151287632812369828420735648986612188320278685944151522820210404166977171537007295342886609936353769277822927196866314489315788281227205602531184465620699469266023855745860821482670294656729705342037880411461958242752671415586909525045386039088084076684707324221494155331217273015577172852686011728647794071833857964406416505589540470967185995718399895416131546095729458046172698469053778827849386070051088775914915324235449983775050335965222860571188118138866637293911618475739324343088733512970552547925829668827424492565862409217178968454537524734142183571263753132581218411144000472795591151082491190799002321078616766718468426972360883915141020988305538000266337535010647227225618718246739770122524418798443012221888032524452147879776666263030768624178183557513538226806729558496318798984956367137646604115635715834134267983950351047481498273751584658428448266409383079967994444585893362777797648009271678079852461179887991199322060043800417500426265100339584024245998306142134114759564745731126936834688234667614772314400457279702452051596346711323374916799313908892081612761547058422058333032761411465095683129690586082662240264779892842686769694609602471806024145771896559632280911540859570567778585945813779249381524494830344125263466471712204336975202293489510116619709536686827333397847991758647631018277742202926858726304206497465890423688433646361405123722693878426604233033656106295853665320345154342617968802281489971409979090704105381039351250938365057898112673279215460202617950905667834808177465016805023918174985324029825033973651281173538239676844670881274747472841916591414034144452390978720009261294798627519482375062684074731794514337292415796233590173710533668723340957082104021933562217900630386037571024721607434329743484916582122802977105452739774401357892232645436467392914010239570789900682804172544847937689202207536945630914841770648806766526179470860427664237195068424151544479247910677558561691517415661831223853180996493330188026325009235599705752734983569539003382438844368905118915083148308851401521994762015579455818516290861285519713630070956361872674421449032875570092124225733169085221282210888570867505793357552582488414530451986464523949939885110723582908973171325622772902828300529372772417337337458665410751307141487102359150341233060073739641124322491530382334775521888129532726481207744906630069275680960493192322141703088694822525785562297246738145913073445536402953322874067124891512015642064493726831808255560025338641743933796984640537453404114530144302539037416093644170646732188511484104580720413451707971971365015959135393534164885657736079905017371415139029230022958618741066796947786810338703452928756667894694056031208549787495502395733669758457610456524410374699651116478444867087960409457007987991947629742329309068411756120824589346345298764663599054956069817495310120343027161690424860526405937797205282250910354541036577762728013555496302470496874829528507454812457132304531116937440922847299989565138749002277129330762621195207736237291867531208345095774083781812195752321187810071880171402022143620340191211022016935924741648030828520880426955088551390159667358724158021287007671307693684461251213025265475788693013841356891843502489314793124699202491604337261279421597873384076049623744073771395591242074805128670305731235032336082405926808100048528322671822189033471236648581207304315877843769009019708503076167924776251906468134883083781321357876123231380880235419285685439463642040705909892864410464966711564357937742628884936988914389563555362895482745279912439146848780262974118968888280860074543043220378118097218105598136501121207863043586341644702513835355679021924939922783125206742903768558032744721500058300479083401857743360657898326097004831768160764757491697303331107911157419128185043352416618860030626616294494899797220758799791826387054994197828418012065753780921588794601424256378903305347146121274271781116332250030038032019912013277558526000650623334167248244941221548096418865329037444868187746658642271924935111432475841345853224305420000470160806010310302794582166923590799007424415074148485212551462886970710317186954276368822565002085441526965048140289288924697624397488877374351869555978369181810537536514377750904963751848684529053918880099691483330599202899821622308745940018870827518024946671636804376577418994395625510436375449420810521079081768165330418662041436316613202537977937017000269568645902261166113018298253079271711863084098642801463710380559858413239680214008524232976889629767099539343655243704755386282479591889784043611634455664017632088541938829535213219859261248593575898257173390615119959007537637694165511685222472981576568787829513911065834012514175804520936572455775207809233558499323827830419728629273465525966491471810614385040753976162579606010770683782856395750134924379295958663608183727478951935286273617072233672809938259789598354133490029409896143954907327605687527082141291442945719214661082698807481172360414345602386021880387975175977306878915391519087474655880437587381706459185423763056209091327920585189253855850901313077758664389197449873281305577339123700264231237841961464015842569434039758153518022642012275986226128180440743760723283177257480935592507169591496911471218780119951035284755160795502731287379607522823082206764090790012620191467256274584149018141750694489377355338618399820905320819391504692168680311222094103030612733347105610111496261432082718697208866981656264220133710263187747197077843081744428368477563705413717245739641984431739560835260232881044997729822846367043094237982302131684735595646903216330682707960412786220076325682759804870150897059751018524790543502457298081765180345535976388777473464580349317204779086830371255010250019070478727740427529076216747486007470525231602110273491343365683618006402614092705013104703949400467685055961944497353368449521073070488903830880947616004383439662006329546461718780492470255961842137770946191763223464519231308648684826848981727989274832052385933737980134661552215892740037495549081987559934462332370099227838104654594713280922904198153053509106249845829004031258202963553903097303896815697206804320358786605650432902553248152432632035499577339095232828988235794930030700867016304791396949126400712138745533709922078113818475283631154617505663786038065511652647693890179836352156686953453292769860125665445676393652591266971274057881086036886067448052315289984300359284401173739964379458555009618256833950789766988588701968577478427310531162080167189977991040379852218098796438313330771791002417900706829185852576107178507301584919183348139901109782334397512017680090643457712653489709495174261608851954466866253057633562520750868726095569959365162257871384114008758357750575469327436481174606871453190323635051162594392116852050436443468468090122419128454752850929179510995681544272627452522950742448521461020317758777140496285165340659675684976077895829184127240565792675545165018148895437964006217897084972336627778811396801561069842427162595564287116187192515739964902884236408775416149804270699639478880536974723551018102431129390727388252355405844155790882456776662434948986322827684362996231305512385962624639599527374962386824349831823907609736472851900565153413955122172601710892302625310737783507150579031362835525514289302262339220061144910742046336985324070293653807649748591203920781757546348661680245120926864853387315784321504339196680360856458328172257610468980802829751920822515843721046834888110037263629915027447585802658253898335055949608923039840305139324059254587749510095139916899221263839662245083382029825498256359771102290524113923961656058321312022695008407132298752432299734888679085746905766911411850065538611512664351848185032552929318841202277724250322048602959123140112758856815353027794175539566086744765320722924420284020126107834987339934808581037346018054185620658465323529704231718206351743784523918198317540990021866517193026529735326355932798842579563728138420316439534584263601387336702416149681274011542267496933356178356776193151614067493977476795308200919826110711076773824075751893513760456507662143131010133895196821742966442604732158828409845058305121680743161859113117379076921337216165967993902106336038038158360814807353511214294388294499998820865985738177272265107603426790584647128155644517131761458497032992885697265424324603768365858856618427570426065714091067133592216755908815256058464433389332281725496248569198461352053783247616745652824008718581471821616868975796515450843474821337836348060905362158460568613380153112558425934976794135486829199639801212203293011695653248137262552861602369694501891996369698518477400871487772301383648645713488221541430489490036244850433640319231432205283553931088939639861499173337925762612358102151136285439454802316854438413241272623126003668656369081399759887888540556645264881605276758418823938872621486356785029024133373834992165805182900484386673786992683161780930093217565815320726116542840809454596877825999780154924958341393753666965780680868404116443953740894866985990363267416388011965551031774753071303592929290090741685052681041005678945240455204986779647539858581828286013321913613801679532865821451200876744139496886836360490777778532631366060743072885219827681058396442318504246672161253696380984882300989825545063380970695395181015431323603126389110339229343862499880679178685130663918683871851505097178630787673304011963027303968199794473848885777544296597605580591932426159558478757693486681004164192880725694703597734390624995125997502241543479134834545856278147360864350829716014370308360885167834683311629227719261689106587227202859042155668699414167181926624698595933438163953706713260814122472588520277853799507231567176613974466786275263093333660517277749616076833451332399216379857692221717512575642758284601980027019196244139867191160532725045740057307168168495521893755470252977760077030832835549613832164797599548090026944990522979477475380641301320375187002746040359016192267016898453181742273272214575078228163716295941330943106205926662445915257127504844617005096306966034821660813094539236482251588932825541852578980008284733456902067235384627650647222828581728514504332752054359161727794373330057307723711676046795794625843371500642265494103439032488698047244747850897985370411131771572716091339848312638029174120513487969199376070617886791148465445750396924243250432818744744844239231048716359640095585850468877898138085825926808235013733659909326576234059420503177056859942878277638519016374106926328020772064216898428212332745560916619260820340532671859365684902051700375649782542622720597062215802541604491496632815099641272553920787053773654217951504755749703740105369434147806233278601467781441548071412512273804660486269520635925629340858311257397600022272364925649847535398841028317229309032273424961204042035813726620636182137860410243097230830957273861203243629429098979371822856360672179059683823127392456179643991282337469687974025532993628556067419908330484449247422125683005325377720763181082661883439735311391001211398291194586507378006180170055194134598133210318326992986681992086169617590060396646575153705334617885713898092934777406998128710299998745133489511172434526059889372618696036797273958989890176579947044192822609148527901618005186113830865487431170169110404993041932820517237968407103124085123512299567356801574725664051110364240909263533259636625407096873799699272944724495215869122356920124204433657756601032677583414523475911510468388689271804794275143635108958364381441601798805757739870671107263728114029383461041707062634936279229264611405900966288676578578282056845987028592569206328566712726457870457072109804263319734104435465756298478862459939157978163289697979807410955382580342922400499907305469329850188316279550186781011750112587191361102403799750025205766171408567275650929169545727634074484521805097015809453045960686695187660832333606712688016966182409685382624032077162347647931379121206865207553993434654984885733796722813167184405571264230905726522235254215753605219026644568828414630282936225192101726770488994558018544889240708336894493760818700016343016077537714439575908278951360495268405423484809412175346574039062621541935774639272169654502889160016950727344279487334629748402006416061637206148820938790481916714828165011369959769367989772987954284292390548638417226320608466878071018788970503532460117731476563884920069911883372501467212148205804099298333796567353573236052034556453031860245443229111454235130172344522020825270185957380936277983908829434844203609799734453319244956009007969639514823950090087427856875611525237094899949168242749313526754196654528678118469764406264132983682608330563162423536349152786038190569072309844157874703476608350742628440691766987903439588399608705693684138273743818114036447566814613611797029338076284570338482421191822903078332263226153278419138025237088889389301975028656964317598840193315457041508071914980445699219953928565342187889190827777901711779873710541239270729302045263241085440421704342633250811550327794167046782783236287830828153071422803351567862932030698048356823849406870809119888812730019202254527660754623277447412484152629661186582148994957661166539527385269347188058750382114832462996954031715232718450380848239118521786555233258757600856870626907184143084695994474866829040648237261886489300221301445725095580591454697601835032170064555791637855982506611851613687466207879396170617360138776326102389677245591582998101987180314703064267094397952895875759607621931415640911762280419951377476789188018283569646590416821666656816843592486353358463393395510844965821540735415369390628765946133996810676019697142311280731375136238198961335238083208454208508240347583840908220580671131325512208673212604267690483381742064996613623091444652288073829656860907990957588698022229833300038115714429945186920974483661836947687399974223144693858374822250809825506272440434419930569898374945980925679018670007888061210564744331481704480440942496930364190350962351491072180775725331034107829246049699220605284509031703170995504198426398507589315822740251928768850333829296333803763827720674533171879118903523154367587390488551700167029495969086675621929637683172848889592769477495008998363271248162690392991451519330440370761668689882000501245055714217960936883220711151781553562447298350217658079803899418593967709635039661757064764226274624581099802898915642603141597285587900610298073370465926305515715785656858492711398502665090680110310336044629611429629079779748934675261856694402998533973721920525943148567644504932555862114630947069766867340995824267025160754867200617532945520987972890175618469729951344502400909920896261668719659582951002398003225474273751804920421014807472349540991281585711422775290782160270645886951181156900490464001114902021587900418282817955106262742942405537489029143927420886148815739078389626921625698465996346436063949654488616839452594914946514954212142209975538293600270784571380374749900526281427963558589494773311214626138482127378184677089356148543357460938337184438191572858946258705210072198259945903172168339591709386926129165544490577019630935591239147465002773701003459721686902629495967071742909737963009048548041060358991225798359685382942801517472364491649213591370511283182116949818828801718448987897776648542377258348932297440561991647442710669494201458844297787405463362017201331384314343331357922959708019362892026003176779354746049097178719692352506093026616762508051368772764515875991920099568936853828188669702139019989198605639209011446669168151778354156109923741684581960478543027286911848430642789444515966918653364440232434563441688647738919230674611608796964561374346017075165170866721103763890653632054864585928551633432612193709279102780566296704823328661637532519499805748053964605383616253283926590002028688085388329476087481932068511027111139110151780037559791991294561877232619650553086056469579148336767488023354911169528135755221286062874585672950699974034935048025990081736030240762298113958389799748843603904465948626437917355890890771867859941662641319373197011071651913831321579300997497255810377792735180209435272027251884421539048218520010500966341508870408559851834910422305190685250411166207066365123010427083766811542520171895482117616095690949481206977877893867145533834202524299780800984656628065675344145770238658764876625341597099501250605665456307181434106438744760942082977252793817862091870550578473523908214701094109812933569464857694942536508014076485470114092866282797218242916939704138543417716600358389957049530876100643216383732314077077212833708782287560461082926343545242800916090236912037986101742194183474901168196061424038212552948346467215937038930477671984999673802323780559432386821343890087270102883850732160643607966357499669151612924892855967152871754534670970545064807721207385706096840444258283957686978049158125117669138055359355771409592325099027504636939616224892042485297034131207816872191872314841000911645669118804695979759070643214188867941255400314229228429535361463225482281766207560050040207963296228329860765635174788146996646867282996381507768645679450789799762592830935804325166321757081351643212272425565480505138928607075501797252293285872580189999735021720967470346414637934122926828285517146526018854300117589955169629753651940149052441378207503190663292897035221275478273420316551602369245119375607307844687158347399827740681834705622783850640156898587951474710297881752150192284300333139444543009157695730840827058332716343137161507784820714797720554965798763956834101151317531703322782804990855078776732666175555901698103193457005999167678791491077184194650978116143254897751477168580023656244846684926000654083802034664196699514573567547138278740956748478214981072243925726689933330615185943705264454870569144853914558847145355197682311426675825521881099995809765645362456617354730569486516443497197509052781587695996240543889445199511114253407641971994051008835896934659897435365190968283481612381836415895455055448471875673196876846629168209185619890924122677291930617558086270955318173950917637258496479266856414262592600962373946079151868571057511568840594948120303924966221006012150355578758689220016476897397386868833505903636631120587842719905800826796418044114899170684012475168372509813263793376005781403682576805776201172641641992075125617528107913506187975904814670897815168338700892605538315614212333698547501938231088211012046189110465476937694038246389672500079134513702336463412148657967642763021445983593690119786137148064830720504694732837862338978632448087527212063660304256639252941169773860739769468468649393071848251744245045411689535810509233902899442795497483535082858562806444498821958333728854666959971582230546021458104527422579026811798932179579435067467917721110230869758050810193816304017747258338435923446370201459870803431474042819376824691240657393395445666978589746073224466267820170431228652310854064182286479559595104909607821626167582977303537892059188188453956613172144350465274975764286603587516231991871733199733267940781791113727174614585791192418172309992727091067506517362927402433288381212679292611910641618111436186299716173205973795646145060640757029353065982021274451040689921634331786533980984053774252337499144215356881487722975505392004033077792138666123127064873538283562121456048375513175122030493173987743637299821481782545785931921114594307127431134049655122393354928562878438941890323688151143594723249102982063252792542570952005896041689065106279857509662875163455273467660608729699318049585568289446584469415711671994892596297091878402858006755432456704164047561866458258150950013966770210286043831512198952755481911403476449564301876514161334235259659258683572961198280565703858877473666450731398752756916217176236481757443430848136411002559516836820526288681352892245239285403835563738370911417181384468018976466825535368638383449008076403286701711220991195774000001055743147706400595955310289141278783773036076865181936941032638839879119715162313233452044665023956692598878828686004833422774179655392774877750938560066015832730354503211498966492625774266281987057153564436234232745024907693781227083134419142715784095863558517232240562784257563879498707491456965885561307716185767451389779731897612785156308207037570268591194419819366409317828116054188637823668673781920889690061700846909679971724200326381429423253941667360046986877987838418500827645329157340192022314192615474142702930286183418819964483710158565488625605278527210526115527680718625532947804706519181990073898927712722278607613706506160371009539526727983490712569017383214367045387935301219582808264897925144738489594544226312123018915009415592271742401431341372520274474061696527202732515537271210079627583179506790762197687578017604032607413789799995793206500777901956157681037798020032653831873614695153802353593178109946619637416909567233740224536667326419758540157566625507450109996694392801348506769555611083050586352203287436768145358230987340189801028546988006707691207661024521810304252389333049626289317243917830267235642204023952491877930215374583077174317949591673742682671701487865079685016375735702235443438662916321298728444590601344448464657199469609500150957231187921029121085246595753445902952755787310472959184837046555220889898823122094564939452279523363110943478912116675401788736936679884165377702096915969366374830470245865295709729430912698346393519151018946401795305201433383368334226168198602128579433014911538339321354728303859750441265170004585060440962118961415622142114310934723641704560558514094690975343034273108248742191737260849723661769955622337077337758139089119113399014551269165408787476324859217255066114245793756293046128000013797761428973844189193892631951329767244809439648186386908409338960592953900576246969307106645346659895059407079602156178926875811767253132824670267936752641744811776913838666081067385760508164553552488433717010336124080183735233643472713829293082176934466604624264729669608049277418769088350469482931099242160576953755281807986494238337328025202534920684329176659668003736509495801167365740768619413256345220199368457715088799776806542327137804382234875958046343833680956094550701778156932355222575432206531973095004215970376376934056273202273976817898080713476349657253749307535989503923933835331793059656687224232047838043325701931060604756409966253415981150851799572681699975370486253037025047074407480999239483022468713588633323397326349790779489503662494363068554803703507179639384175128460764895160558242310338461696559200483939730045549289123298598694189715509492147570794151775485070496802365509873985734015394339610841119449395507661294746777599884103697652715505245800738343543244757617208595392531180139653746771280456049317443806681751815989000130792704182889705844760793098204821702945993985540075977119158178249736298548375643798340781190516985758146244767659043856425612751820289894847236829200986895504539251784804800260026895431712911864283006775329827052106870928185898450077618998006713450947502492651407541201385371173104473262729455207873827462327248404087383305045269575905496802453910119463383733845350265513406767823971556600927608300649397187941996791387723352479517199088362753401179868324274464505177077062876328249501968384904863344406756491849077689453281884808683816888560308935476648404590224234187720586168294818431684136684624913182236377902124124094589461709951768211518178360125124610346447607321897824388638834098426033084730185689107424335655179975684098651062488952743768060136345689609744901675146820500423012472572528160323703377027503264455241996354428172704865342044271760379184457992512600314442993297835764689634672511756248509091682452241369244476438887159920286586111312571058884279515713771857724139012630724038246599277589626344376506563068612293202056169210939375258669040809888353647128798030217891575188918386810604626343658506206827360614598142690640342205509308211770820839029337049390595322928781412876692201874810239011812862970079146730982451746520997335621135050194346742393945584678042471789071572085202992698140461778845891109891471999258824090241041247652408462635854055856961083967180543957547832632437742608103144959181002488984500437277707687428317306148781460859363494336056132467545722157104447509261812880724649150983030418851964419992014233628323885306546172814112542212116393247057186658935110543409133293047655467405744588468049369065175744602658914488624360537980526457871147860477656370527340762008691570153101713933482699768789696415150959694915387692489908599065184651344911831973647412560702845164772576141273576038890721274244021951588012202329279951650847496248163470034344902261028820902644237731886838542594914295728086410690638981669368649149128392451862208827559490522990578784426930307303423035237298500393542090845697013320050850349514123196589734684054916986923308109705306813422846445750598460970716146992246451236041719893674694882581810495563105406956275011723330656541352565806924709921091903157839923814642004285536017414295562039178558446373150919953211769928227565313795513671539491707658261019774583126013822320534849859968966060821268230435816492511606807976338701599921843643021446386033698889752701464011589005472533137033582746499151947251608934324566661395811941917409327919637991401503467943334477901564104647816203029166577344685740993610450028024856972638835382029105768970698097885365062766414919269397409167167646377639226279039301011895282454000881214557476373221555311499567308441486035049414429733253597984062836779384209379404733448275230171294007633708617592257583322557704858053237661338689235595809152638515431903636237421805847414665740458432452631641081953453734548770946162844391793593159147069152428938404474848436700808247325011215803651381685287655352189557045860571898948208514979114908373839319246960802519968864934776145254487474086559470303712380462681093033979838810807914593623175553941570966367017762673853817126516714182284353684132408094653732332844698475253220059255786777614431960053318389995510946885158433610899595496529123484124172609522643092156854862029006958929337227948856251018534326871986553342120541824723923316991958333742193892848498951841833529032487448205658744335980722551442686980061145518336371874683683024974207775421281171333021814419053502878077742342869174921226033945845048747230303569782468775416113116860166804666752639867356972043838890570895025773542074378125964061876804321484365617709393224522855453388937542846110165734196137234442179762041848872999129577181482411237651341608189388662227930574205956938213777386863671158236350394352829217169054273547778326513309591495166210259632925457403820196618544590348367505923802926910971246780411460285181051232435683905864862595980736243520449798456492376221782812057773708079530559505966200960511518258085020887281348783945652062814274092932648890862634370571170280637573709678001524094945793747696077578461901918093764064459539445927481075824688209437073678088485225797740606003959827033897454463198880938697975409033047582848588883029984622307497841467848604865813333168716343019677138166621333055685405271572170565378574309309663911729387499888874113590402656480836537391529746632598152755706440490292777970219810628002011171507947377414656253312983008271283895518024311719994803320308913810797588371193144465914914485640128380770693337428783031670077545999483083599206864227767998921669653940694845319051527988424273535509159899302195104555721698088912343717598744910029783984317926383271499345764039779341466980790068852447017857210030732865041536974405854316162228169935376724443670034836189831321567112582008665772364560447334853986429122041434739843695710158545679602984469855102422220353324285083193341250666358518561238921592799373768201220172951650155950926182307271027896080542265021722051394210345337243019842515257589473136814067846488558733255203132681837722967465330935638245141203149462113934760342612587607627015718054866135827893797963641344998293838730634748551407030669666014408562602605993776126322069911350799402763271501778074254124267295047074447619274459996144669051745253761513084956498493300107116513567303262140855990021669586948639372441834491939541603531404957764500403294276630626221637858980923158335478198060054036726649576043734882073121363876995987232240260365130958720131840343591303501589239489358292265450710361520037900906468836504425916719909058234155624897263253157721954968693771207386912105992608908731292206673005367118359794980654389374294292937423342368374672687236637865578081974682782863851236512576064457394786901818121094944962552000947850668262587451321887648932213879000881702997581867654191600188934888844783720519361846278960160635841850327287687934206375477614320407050698128959469712482136402466384341774360037400151909532004459117518688373306832825677001917155802979983377268357161503319891924042829000315004826327127882178924947080882253964008989403005742919426302364296068427427148524872032783739281085696689169498757153801758245998055225761040082323067675731462410044964979989003296370143073816005859207421247344489675971374329010110404329268626170108869429655819996433987562054231019639723521638508645240976713651843117578476117377843401197671255421243459384667034477521095482016365487415655385179604595760116898928888341661031217212396209832153151421770047724557343655480041927809173280747298864205476647504851054083761738997900684061907460335635518612478326034349230824542898775443935769451719802151387093570690091789604187141891150076689923106617756069117084691736031442576848663860599475547179803203213073122630583791675276007462871905851575227789376466275900612110596111637543101673655758172184454746613971253688539259784324777904339182892952933710944308059844300732668702264876407132625117078968936679780414326749519968355206674342987609779297283280641304723019056101666719962414503514723498099877542847616767272179017048883879988072644761961345086715147724132179784732364313744445416057743046932638013766609241083842980571283960877035519969713039739802100771906796710943043408021239527696646548706048908213365996276856098730241570945101840220562462138110672907946823009694933210882025058314108695393041884843551955229616976301709349819979550472739010738297454570516234414005067071510899769755505159949133861330228330026752053605999776388675274196833419131634154658545678949689414237112117021156594688577295570358478426628194202338702718177393105325068102529847476254526887518447444326293117949400588923594986044094679322969537895998719423642953045215170441735209581694981682606048240183745238232352220532035662786026581245736334943824683684298503841799391312374111079726163485365626258732044051284093099870698278109832819480309343075948041192605211221386388908320557721190512719479230529511920566778112010792439952048425018516282275102326409552622492003442418516884715252370514614284951046805943289903393121569589266795871433674673152839508831753939207026517380644002297555577873357786457125621205307793555117796816321375775425974145307684372219748403471138873417744430740541936351316065536564559469161760315098321236697703629244793602469401263164134448169063381496770244453386581459669196113586826722279330675313091559902343437913882626832818839195845696026062448750116311620796198421687674589523152205855769650169556158447846830532675671839590210760177691772614001280754321705512224754035851717083223767753548931928278436333354329617976012807442945136707741543594584421702817872195708358700844389882737317488982912970545877880401869157751015522959419533786529584789862773251248660436238729235684787615166612582155098412664149208383264348359494628110477953313642735061190065060292483537037070969408867341458489818590945473870588887389545169573585359878434577963187790178673940987054289915511795329218606452323053871747681142784378904222485133244660145303204364040491952964851902275859475825175580588458645472740867788403691892833511960008082103121693822817955018108805373519499118641089190305936258015244423072685404465933043906958302166779255377179741215550246302544289283621842624192639199064888376931294916010061365116423040598980269918598497640830303671931949661539591995413745926432046571254496662386327921723825871734723468919225403810431980336794249174641875761195188937476256185554205054519759715145334067951395919156318321462958534090010906678400084857276404180199698355324799212677858369549585007988213881960286881250054798122525272647428822690198595830989042757813189793324968774770184777194681684447165560433422641051057213118510419563052726171988694341195675927717604373214131416021112856230876292710788289579394002683367765599917811916004189350957678634700490958388408506300259180283205548551263034071249725158942522487285801316559045278276952472176665520539353119349943317396490048346761167579158707077592692229855976527216846316469656030193052455446961126301022836464666072375875284994884035754923708142848848603807898194873001638150418057208364290805120541411558134170584974387530405320549501794008570478751531264747924157449164759212848836702781707945967193201912783636761990198326091675424308227168725636315087126359006368002060889835762507125257860271013557595030757335358170682895390538658629303241988393691753975778272744543502717954668760966105400167168989263781321976465176623298296654931269220078189050372550151316798251250812706071451823807135769170791622187799215882453790610994005518085831498284171523112201351241773740796674573080602160846792004693077512791128605610203105467463828483979786112146308344709314502192058548919445967778404876221337002471070224493611194504876640438061273722453909439009464282353319694698412770045113422757144858428914325212885300766759285699405590506157130905466720395955302128279983777763633266940264666340406702493903414663935031840321615631229648171726126286161653305971124147415767889804028007508283745057085344610703632033126873065987654990984179635370624433459706956941995461913390042372348740909506693421302371172188869186066726401401892033283860819815929187115539671333792601201468863306891920521783863195985292401689433178515181238520030579144585449359812188291833717978907172520221713276281067951305894711819075605326538406530765718822011128212756284197893169332717379860527420256109371315609191425798472860313921380660970317312484192474108548789522003704614801690764356045958668072022041889173978386368003278268381745114345072199297338872759261326520134967643106437784433598295884780812857478351828023272141715916119004792044165084495600610537658552801059623255812621722203146595330664793663928244576490054609464421162106521068259949081145717871257183506100390781538008223306783828909802377559272324292283551088081707111332524733484149522778687522491060303048512754969042203661166705657323217454732617692049779876459806640186810021089459579905787806382397958284600013373613905518190425483316588729293980930302193183460723995877085364507367433521019730744759085399864513357558703575518992274445598855193042035254944919783697414010828969915501959592662568830892977593966691528851089643186587068482916093642269923427851706974779924680976453930487548406490072793958609152713592252678116062510183136492878687670116314820812544083155890045333292107694459718388535688425484449875098043153477486779798413285989521550340511804674038176738387506303387861330402647036788361366665138336887437875753903433558937309887963771473429930536200575567108848762829134888444790873754826937543186690915601126828102235184838881711275019098578367343483093059312781243849115053431706693724246658047253026167685363927132389934321281933685902109631290617561092355882413796655833853001126367435907520486741058800594378325529864049192763264859203165205071993244064513061283532460974433685770798815504916998831927938737058347546094535514701661599660685550226374589539957540899018617935254840894883714947005897773578003857812695394403895357796935494805861757379712386739132225109078227192458019367899032541596345134860291755126800226727015260318495074676035052762833909247461200073516657793305090751691739617945688564475766056978381860293758054749357492404215252479757029987651984121127950188116002581470329677614271062684841179964094915979679287434702247485954360053028443996518831719411643274875368730809804098555058221019344876690774403204511866517296633590576282194794327660350656474377522829724489823150285483422677838891546696895676531737332459002902193659933406615396012660584964236718960739903693409496638868387634157706081849198649205855189175018534535707176139705104635397613397673239878762354898596501612543160841242952005921028694414763614634495037853130414515323037144086457922734126596155477632280382576915286335036748388725466806687948882695255251082653106851438234124979396246529987049570521521205563571290255492496869316743301544529443741111349507366214384447810664751701290211516537500484689276553174625911613547184650712709703895238510800395201517909958568510687843077198054204790057876043625249605255859669461980042260199465781312003093645337240474402933714267304113178097619209261362348884236440068282189469848069200480847927213482026417705732618224140773824643327305258062017240943263221801426420993069200577343454393450324607723731559130360148754308288949475685208856069044773972291737703137773273870355961472406809239678763240447806048261484345462656496167542901309586794692706104687286238455244410663850986400591562921000419334643077388631137963798777816925282468950775612601355705191124433889123203894060780110344452726362366097413676896187194408086047335908442523482940854261066471835045024029227576003187253083242058981268694108760884863585625053429071391833347319129099136934134450056897434347692506520888868960469495040318835670536509536371306880252789003825140882144116783505302029457875317510453344981814017615403052320441451232873586801945253155983703169543125582110449876769625322933132408857049698519728600839978814994958623354588456593891681979776367786979599191555268180890896540188965153990219182935195517466669590021312104473765827353189941595953905692307659140921030152237567472211425430245983244889283624411085365177245447566521851227737727533249071320376826615519500714360588784568788799563817686949280642129611693028619681768042032729491388837610197198568839312280652401428646322862213543219823987730037945420591360033603150853664806501342948697331558723826641070361181388004535750278927123678022009775238040135722548239189617851530020516227000202577833606620804286755717327973229337086968324151022776183225172132934825210209292591782492509687009872048687344743339451772833408401399049070715281869932604930059765927670870248187913619189479343471609204937053626925190496419050512604668571981938268063448232810283443041283519351085590949615132937352375308259628691868800239302386781067964534229285097861044544816251604400948701262779543601148274587848876259757578937074772919398102920012814715018129017886784745804462920205212859948484941754234965537536858664696705220209927100127399065665558718253070212279246810690200016407854279120984315116715664239936559309098302144011017830599636106466903327431587285731143722686464670282196711401035133485910963860341957934919456646313443297994176684325909301357280253556580668245027156723936090578552002881728933708274896662964920298776434506496304418724695288723183285117447792374134932842604965440394902551096080384537086120470127970807031140106444784377627648120271544715827305903008993655641162301601125194060349554021263999937420334937066258819573227407647407823820194630387351240318396265522760928626557991943304414679666038507701779920964939979320346050035564712762335422929361278711661809442899462170984135709399856713314321839532150328049287708830690697404293430596395820272229366469847182568262834704103261945998924457136703361600384836844622900189750969831756914186679555770549158003755380825362162058942829484272592938565973051627620301530905510196354662859901002920730769705244136863662858809073797653386750421450213330394406057860642483293814745672782083572337934523669031477907797011556985136243397381078694983967817731386084982450015247681495032544212429547303156207346079835236804238488183028696261701887710745026361608821900712782053551169092827369216125375789947094328494256169405005486898973272922591430429624518217686001505065233620736066471568742269886986037856487129198079102390106539989248693055364610133729471084110362670114289528052745933342890564958219706303186392141436026161882747267746060029020313968596818046126267898883921019806114488281627156043288463723557015507231500488753592097538840657145022719931006970139053866583983968063601264492863227816005837165658122301661589939495260116983753050042665157140462867665358242023954222280665460311223444758988408680496319848382045609194694955205499526255580008864801894642787627185523971012640356187783469015034613431637591539179619470943195524168335966711600909739191201846649253883177549163187771103599305748620567121326265899638457969653449079966377526829186460416641025404627036852848998075976512095194227404438067463248559175480791144256385521676260009561379652729014767683935549527174794467581170676389076438254272834978239403637386323832441690270069861775592825083879755129197985895109386741629661272326693212974569540265445677278080779996313751830032258306566193412478771440097255450156334980934038235086516267858446759196172223772583967581132709154346024509463832094405425932461171403264660742978972896299436105439703821028203211329693693471406347808005301463456255427037921369437418879947723060708593627868143167254876076357959463295971111932771249009189667241825061975851513812616547993315850708113549042416541450237877746407519156744984527024003913835896204971422064148040497226623848690471611341288881156491996786377365004977260771672705827859053136720838910859503931363117353365022444836095053498477702270638582072975292055088611968691018273910263582880338330180211499112832985337259899374358217436664432580402049282975556546977287529597563204924282648200345766324281150819331119425711890441529175807246020975736027152612091643254509059928142809118150477633603852675300419490193875806885464239819476046208142820233876669616428176776898747051773988318439013839120775362119620821315966977491305890389932875356920739679175198414170700432705819332759334554085711101801011128464637876044558644301974881721044287524039004099648244801001483304601938328015645428581724892055008986109195765253988595114323896557723617404512358763552336021447250200615086738120112235885571858548258819770843049771330753364277845361140348771353541959324870472065286422724460497299777013596046574416220299248921115069074799356313603536216044293625493034762382931980600254204646142202938030260854055076010233974453993739174745153594503597820401311484364654710293482904297303193366235252102652429507498757619011000354076016550862641425636529192480474886251184834034628146600294026816751788409284536961701967353044037366701509768221463255463565730596246798959943434781932507347151384232400019819455826800698428596981237750943075226734019287420577869281517625863345819128825302004363836790752840830226352622241701785642222268747678852374529518537603615473639318008913312154775851124561007155796035371522677817775654757242015402709331641415523209744069842887782467823578102258169019279742769932411978509568700597073816680689112008825217090282857600608518112764621236847405747128300158344843231422680073983240752362341826391537163917497352996890814926700167716564333928935713907043919323290045246203313069288495096263889197557773304517608279263145042993288619629528268097783008359833881880285082872496248049081309517862204160284614110675455925642373105028623093767182012493810352338978811310149010896723157107115699257023134630452911333879581701865737649838310697460849280686258317713844531577336692213481048452899884835752343570422544637159400317882806895248826757693234233875853112208204360078868088275862518069901940346112589201174791246045358802295130158686464207590156107789831079887156767517607369072170012474795222023844020263767717097526913576431448437087392158560297771529029803655014732209377906532697302596273003701077588990806380893383409318711299210907327463823822706275205803516915108590822373375444873400787734030372065885881188555177672175155369657989885605436294904447501352869107182742026900828166003264741476546195001519680945959023153569063486750088320487427700655998858158016548244856033741654751847059558718071541720642683540901374507836205425172050152105420205371679626117832045956932030733740530867597272699910662874284563431589440897579203102025319348083308437382840468551240656544175904662126841575864542575126161317355861174381215495728346602746925557667077066787036666356359150110877948078059713451611621744726586285532476909051044794450633718309557193938171695041672945336890845412885997226820745930282864373873187094644680318783187100604223618053182775576176548856348312296442343591157412646126816286885983734609959058838694301534949919695762106665747190410006860217653582959124267597765005030807727391021306426323369342303814422601080965140485399150761449720031739942975242665440981323639955558407071503061565535025125505635965961702731622770505065997306968244375394132058685161920008847079692527976339626647927074278222366133852714300549122573383654478192019482293004105554602357534338098552340225694717957238673187699659004737717906507759468958900574513134776554175748837056123394888710309549362545559334465547205623976398995460112538374939888486077412179855906507969443578111610125907889810873900260906557493007202348135131384769778692635871088432930542640671622133855992821465332061833721719043507823414722040790745282009310254138307597090102152643797167448329122486352866711297978760980337648158698938886696701395283231622902124727377342539799712473923743420493178577640298323910229898130252774444407220218724106611326632314292666862015367233602667662608251230402687241113064743263011938098083954755978809774655595447239449367728042961579613395547865977664239938101577961829076540735250159532534186090036233316182861861168282111370875264081240951305633163472944181487673983651329561906654513500714173663600968004505124440353269383925110456732417338132602267941660329390304108935797514186173058378630461284577963421294093321318337717116994736552461358064814340889792310757972873215068839003754391591389479435819142479014892490156503231020118316137780203754656750080100244408942768676134484484236536970125202094162424779063784845033170682336637851990298820769403242131151725577232110547463290750593522862085813334512612084895298580402600385009310223692342639076446293523247014183908671679635498301511115966226883323144651817920791089059395578314077196584600797542212668957755174173569522095939439444273514226367212128690099921754142838477146294029031128263903378957427907648510602491225395287687726857116420055086229482733370513808798201338877102576398157354378654187362316685711068324923678274585351251054252509077768793651313338787342627552914433235999559788969716992288040711852774376898066919756052485422183141715356381179072695168767799841655605260981600537169654531773852059019274342102510825180754127659985178871324303656540408685123458165901086792328092388593306553137479732713130330885094931544821629063187160983447868581779656297082650767660528735692238126043539330137933649157910369433903974787680595009343776157682832255862043976669618200918880112131045339181092031310730660827806670894706246660310126883039097194525222857082692771945746496047420525954299777358473444065974098254851745551728112701414877665727868386625993853586055676590817471971092011728353454469606830723258883158456360508325097455851616670939633045858086893837100715000456843723796215427449874155725666893237372095966518476100764843257551918947915811708438498084617400615744553315419461690128479196757751500113569200229639617787422030428581802100107539156455475244961825021905408156581681013369769366333140797371030321071156675519655117646615737713694745677552861666341670545710520381198987282944834700063731922271130798459365543899494121907622326509430113327617771124077427407858932467694057269509131427004207696345250458666998085309123792350413574189622786616327828992426040163354431825231246884425788379821613686579835762306167578642049147398169926514741050403911952128714175580745031136971183710271700806749893561683249656840106985159888882324867311817285337515209675901794327086059612776589216846296964624507061569791454648776788153876283515700411310764502003382371097863449490745332113934439196885849504913544091017379275909312286465523838212062621657530461038044145866447354520992937350532020750742477535013596063657400911478628824313966913343949540759778233954748781720038174001148159274725284335385616093594822853183786306949090952641921671525870797212337139668131004063508069077026664386530836414003143316108850618712869641008724097920586746000350041084338745938821306606230276851116646835235084512591482388706620623397956282674425101830726073183293683022858322868840138138804356982448780608610271739658535284918206303687945736226348896981252859771022673100470764590388214215798389983162006022195481623266626849038610459031487504163506922849014568179399303624134173473674636697311992514395821563228873421502186819926398219916365341914538571672031175490435897742526109440770901597099204970726705186799618611595149888461160220602113206932521268783203455577512712391541070931878568833446451349312697802945246185613563529270412903005545305354059265729428127754192525310824179880998772679109549179106761740658445727385986628557089678999949350253302597020166834144725623762225121009598162583347117622993107665434018382684725903373057959335232253352957139387907396376591643849696004029631599266797046906863270586827011957928633959532539437458226592182564941219459744122985826386388329147917158891164106396051703465035856866931085422653686128043985996466852658544164440742875910300197451823986340424422631400838716619160382882482828915554835287150645097835494455915614626161093745929374967046170572873600678314167820376950077018064377678517951887746893470199641616762763380143247695547477365251615529977291631354919995141480656397745327089907531245067136751603047475743921619761633143169357199079787540952556949178708718637447671970275464801912107829225075491856219866408581057139414050022938351385521838383083714841697869164792593577604276581617737891099379987792672021308801796431538167957361294686678617940109792187062863563126360021349205979675551197027708417874923027558398805170249972728893317167145410809446813544164427254851134165798718348439033639332139929848233262743481980536835395794891024920413961770054891206044940955686509677630921403970932697426790949604189973957652327700539869740872005391376578612682171075021581879331081085241049090888258316655990905988161514705931916938226228806460193230881715758036801286826128506691979914666505107749035754989560193114614792741182765808890058794927856939726157609521399253835670987541785454458449405382907316507460579876453644280723214492123208767381080314496601063788552450726315470157636003383131090972777430365359400170635444062030494553844471339197433330752296731154983780156593416500792634002748123204922476678020431138944775384254467427267592362653049980945784930112702070026178261374648275200740978983131665378247242582004065141051965073568693593033756298558774463557603839344419711159393132052699263650681014097102027164092982891018737468024563892726490704856921439248607583311888829572606039874906603193121547968906841933703925003490331181042041906923038989898629905481155525420615676347460795356906318821999926098571348636892765675538479179779254094669361834968359953464151003109156301711626323319434127047482056025301066357116880033935481850339726627180939376512524370063176286109681041496289738862379619097979465895353239068096322789006860796651186505021291416565968312163234117910071963392798219641905989124871674059333399468342890948701634851409274789073585504438902041177919087586558633128813611135675203375671565207471492221119028527491968654531728164848772752922470410214258098926160510643559142747874871659532816537742253266281052297743685200524371592529411854210601496780060720858808530889331036380997734933797154462465937885580261367104115181757357711106689701385641347204959335435646046013913993925371299610521861453717283975759806548610025462635267803676438369551523406272408542051636635895484613563344217471655878459386079684034014086628644849763812917330107978874670227570806896390667920573786283666441793955094428655450205049404520516995463410511867434742871952152903141456057512848095605379112269046403018295418951630819705749785072619947949974119911913004843376986094283745298069655970818765599246375400846076878223763495327435937609974998578749632792685735775945706729414576812389829680103798853111369712388244263334404806483646887380999343020530022984454255333419401510863812266908944314187939552719123144215535969803611239581960575045381637578545301179857485776071860352668560229388125417686400710936133226847151987118616021125536005375641651987448258511426979409046511701699949229930725795123971322330992587096519253811760910709299652663682667540949005259796078314214982677638635919456558960031416999850713013239836242975639424429652785523792223757995846705178647150992985302896293928322369495693663113749477739247960656764171471737121913724267117987473321512468852692304006981738991959166793177022735261382509511311241811061541646767424442940213137284824592688334761768579806257800867798036175857156680205969970410645944782881168660191842565418635385331271309993748421804605325338528483081483998715961470441680696886032571060114840314323712389145444429119513735211759150061511745569375089995302131346884714261937401616442312358535400350818511447431419968061874180117013567647120341835416594566635797858008636861828728783321375024853586435638816484521515382995374259421379263098834469942882810007196691249214230435344167190197673783226249264681480360168331083268292610999366964885632662558085955361405141556757393017824295141015155201576232498309042126310073645036138793830266584726457782929558114116766273956657223156493253972280780216837605801630375620891045090072104791181410678408126027712882334752470465858350159577973229436636643255294090892983290859596831276393518979365529514762125645814194786063152908456227311961544469544371427371783693804522789269863708135385862664835612750609032264540202908775883234879414235003201546078625165943797162287812120283747930524314352341711099608386117152308923709607797447142955958318046881608729513221822758364575200490109166942068347048911832871424971877657420820763652512655663963555272946351005724538363992306952066219470739958234251320650834582086808883868967647400678110491170198720641151286363578849784138006341942224880219182271398946260336873962044709455596929213086501057967872802929862955300178418243561169293392719330909359275434921916040352664600023334220458787580829844947639560001727606111490880751857828537040822199661048005239770317231092579129529284311974891572364830024720271575533270391149539272105748444975655756148228087819646212638452820258138553621600736396428575495193424564957777293906343837463885165952241122447590420972986818423463409677447360358821404446172926011806906930483967300415289030330797538819344747756181871472387937057786095076075448806561762218467709956253786929455314569909248763353224549445241055784666295271032670436924347907538842948415537204524475800302233249003982277213078456430667882237391539195364425790961180151171881126524969692837421717246971015205733839679237043118136777864801287656507614574264222824295257417986986984636300347589689327790686526545580337861466697513713187659416347679203122516613174471881585681865054097229949163785159697086929616792917489196099175872495284113139793370856141360551933790481856526568940785737812170938003417654956610592770256442539546507922558389739869992584697752261407133169804276080185944474517205356819293395283800476240273893047248639572369157308881764026881778986300839320852809469129877171222150257731670023440932870444411893289958584546612741002807344112476854815207826514488778872223835171269015559915685099110378022977542276433752155239976702241491032705798223319538224859997811958646015130242350407590983553278780052593073710340801319297938615642077158960698681589261312280023486475978930235455465495356454506269281048414507883934028055445922992399558886818388059582993579551581293527032069536850005337534019633388684364278779618597185069779107724036755726389966389667463863856075811299685970888035014307816473403450245272529213656627511273975012704588127964048850624345963308933199764124582211211117475817491445961757847110465316343861734152285429789297106494464907817461494694168273754200040841806506335245065927933606354556368853814110992560035588124155638193788663458605799202417846161162403934105071787281743127719425234030153030637818822942574529301054413389864990359312055594571265505469268362066862925632149312893407318664927163710987020818897370508050675768599511125353175331907667796913972392057890900024584276840068854290528797756438044147991338656744526990454771613385189726602652548312005356392127775133874778019940971478368220448864246352231203318440790083578798013871131579206102600815454835295775017316097785589530193482901298536833702984804761542832890873829238710942858779763672842282960370544048839795380707622146383445919740141247770371009961949181835110980343371192042418476240831960677410402629205795031911011515660917690586343189001673419414680100529624656262344869927258985844477905126646178618074394257094465924454177165661039740922252699969094710797919015670647291896922603949576882298746544426576699540827381523407335899250030633815621005616959362467020019151689710668053190673060304594572486256750305653315444300534808144624507086093970780568810983210132173872324053712645527228244190004612709976896725747226058161839129519091803152571007890880564710809734171814534687788819370335565276539828765245427704846484168855420887302910009639979566512346283134194925265921411984749864113811533742929935552974909475516739470501103520496837991440586177740024712266027499918629501727683628847072301856546679525888049734052400773370890760567708318552661119399602362889093809921072880275007596800037295990313307536305603024443709793379794399633840603083603644934274675218588906954317700623352691553267917136049872346178843245434102348826544889140123245039603865876614892786925686602366925470635571014510042683581569917570195270853665205582345476411884003511103128140880023651405026718263102912227492858465988391480360922670553530508823527472704476298274835890455510724658407559884090830320138054300349796929879098805845115007922174265278815179503254168706336869267751949025734770190180355198330673772873798973484382251933441994968177462017934296169318642959311881211130049139190928771555702483695193387620714742613444679566138629757955070013137200820129588176846028496189523015187008461351203844663712375233714469139782394653120196731841754653259543920197950416775806560675920728942746525894761810284011241659380525603389142453457720945788371827168933583058110377398385404628890797485407918302870004365238437955730136370634306977097476374902277012131935770438680101299959896212178854411252712943288739260365045863948806932066488069158671506728204889503886722561665747834880542221053832616266147672064560343416704998039988660541338896095330534666293235484538654294706649679074822072735791795988577620240209779418956577213848179416474698318230045316352865045795121905031835999956234717744989679324788635147806795962274712311544680067752326592144829671849068686923939027982267508624301466311346648651244913856523146958775068156338826883127085536954893440656900803642147980169510607484095979729892845168303076623053152705340091969127363513271205342183510161692112084481613042463979943583537466361182133419590316271560911858463704317312436147536461618321378393450090650675803940976787428469783663289117904163063801551361833676982392571176427463028849225772962074561082897814093926615041980284259241193341038223684356277766087262827816205015526794229406192745287818530549087605270470677122209042084304664801213827546929823243694984410610469870191324273676253648233544799171432701699446409708343471109206454051903257173693230393256542715371440436118828225218393966825433985579850495235945294132078886639777104179279289747873825859269116359077049923630731957061984584585440596490572510651510686901005489412250379632783870800055117822533342103388685369982397113581555960381066523197315360058396246475202243969330132238520356769091155650814627962741681206916872190312792259266642927924126178878443939384781525541610383096278550336169698101893183311737553197087211439772077116007299263227447059646753699439469977844021578137785965862919732270456010686630027602708552146033266224751958496594384822636323960477852635366713899975687343279559001675264841641849565222125934772073713963084197839532258264566550823776165118746131618725748141131163046977187006183415084071291787775439769180414202020770184784933661397223620181674506823596699507241373052026336668528496589887775325087704588843095604660463892240491291281299720376892194440395473002245068048690670289693251460298424300192670360754083906208432891605867413325843044219713806609768719241424343529922499429230157714286271320113477508770465341019730513024726706760365782287424848663105254734234872228304485306251840840898818616720456276565771981062260007948166749530736516683237029700417002543363176329074334264583660693229915260623521848010226358473719653643905080158818776257181620995981073985193652026322050611598400292103293574844630952789920405982078578393519204804325142307219612729938619315899398705157439547781670106401521297140105657076883820050565055981057348515475554984203307377887402316667258069957032639962132059917964467225225826378790573340313094328650537433065024191711324724898547590905102119263462422714197248146197838288330288591965541716655554362488094237646209205848168571137410414685911224982472649073278207067255335303784789165400357829842042054294785136998964782569274636966133494113234466834655656458180951753841587988715793339707579131234172465957734657438759454342974541558069035023654166302070205066960977047706743178597848698794536249701854908585791379579871469490915082064928885275155824438490473179264672341067064163766083046746292558064359877777314135875694706178319321149519834023743993580427853361365340074720228790704888207367542018653153912231742189476127053948088475955774389733029022596996533341323712661526748650335609175075593026266788501823871588837030976941764317834568540404169048220798403388244932320346377108923330907614534856494995618538769650887906115065828497075776679554934599467796010282559675008785813960648649616228644709225066471308298210963893322781111930068631131173046173901522309022300513921731432843468950163301729895363602852317388184973887190780167095774632989074149256916331456745017943716374218515079840089372207409895813821111122785883138132134854032428382059623385397658289113296369297598334923956781466632730131056847570616449820432596718844043699251840448283694378700477551610366708509724920390960981166585660048963924225507285235677872399159692184159633850582009447505679205813922626232356926760411922832456073030068682566894921887518672456603068721604638047495531480556741569751286851868950044949993897981712696610102162519035871421643889058640536804234094347897212766697323517622631278332695662837457942216456796340447247763411239076752067390050171159022089549799923782580328509242193550491796194665607096781795346682016452173322059187755707253273315425810548995368729795864928074678502351534432309965318186755034558202490851576681167579143338887130839505659473892386023750275998038014611774452992738950293008888572542342597802599680478861096532585739619206865567595206384853434461929043171890436531257971676869485623913492111577090126221273692628789146491494316927196177161474368278462703808777989425224115784627112991117002275414778657692148873733175783399743273630562962321623350190125529318078285080637168572116132598507404464507515297757432923770927229105374427146797959179743627650597140260028315062324099966693659873124521910869930509492730640768813236475871564312340346579576894024650574507539310061715449464482370460187400068529834030537501225655518358999764475656269536421527465876021411309182418504421896300426657569204241333105410269745545412950567167128642382744679819237888624255419292240108110048687716095415500581906197799344918886764354595816841045985963433030050011387590434487106486656886097611483584358964644043725440650726223739385062039511505282568365430301797329381616372307287929795955077030067731135331863046087388980914136219898276212577690314534149509656131140611397688744423005549239470265014701913729423907296399624195177850619002055341242725220431799470568153797587733416366940585761053479379615672072350999713560374469425675813388364535720693829791419866952521763525095014123913112506912874297764218208614900107879692275006127403947512741401076717736189754458905875075213545391591030367482167957841326293884973183105762172336368432244562989987746241324495573424614254348537096589816894390466246563755507973445325662783664864407901716425056320086491437729473182944504439333992960890763934607099947626443040471984134534134608895118847002366469824709220257635585958143268485581203138279377760432052710113137325265733167715798876410066047552325890415421269753141269516030626682809681655083918331207625957947839493981172953423523223783324786835159094593656471534986052406966049953976560025911429973354082180128065703773334071912201509488029563283599127788030311892175554917314818182434294667466798795868287308688188274960471004978737735620697082421441467457404344188430885906001190740119596392269220624880295556960030889758930893243496153886328942444135209472338340480865029567405397934838712817984710415931249704767683656292383692398765728778946701184708336991751648832772277404003249914139171654563920544738612152487385160451306401938356468914742890974364141768819892367032956246628261905938102879778762156045801612834067696994978761392391901945076021853462401628716452762999204640206273283359143972475509535212385454249603643574740580283214879478525775705601536131192081930983151691373733927288670939999753279653676009724376418701567864117688685367219178188493083663127158600703615205992942169614603050048163171750783661014465885665866619796426652540316714545705913147705197397467591804583578344350028035283233749249558977212593397811581277429110465325045106301608708637935794673226531871925388462747387913009058253617851571122047448125229345435839945761711781321986366612173828355470382537467881171381350624322599157893316496946267603803874189288613723579574982472976521581175096653574803611809918491925444339747537676642386985660666690570849064263536516919284131590950488159173255380586486981488718654763894638363750553911717246388490180703256858728937040804711079884568302165417602389292993861453648262110348070970974192153142097188218564013105701485314203201939259236919549583081488847830857732816877869101414627468628374486465332295410463640392308387445485199591666811081001698436521952212546068448990403268564801706753030604100029476124800689772403638238927656812157356772796630864981973199919030330669502490513067480008260192889395927476763498265015549524295661745559566506404512782207617999844699764568544485246974656323286531722535389949351118901162861273175098346433631232459558690901448610064273707108305043124526284417401024241648655046385275694974649012619656259537315906052455126108701502258046925891458610256744192069301607783204898146490512481475851030826504039768896241257708021237044178596383423201308277187814013935003368553927265270386709761309714486837996823862818738945215604705146649578435579206412207928332621558701829334469962888461977337434562870807289632360080996217620711184095693226725454030418856871959007963398340665197348204474370777115436781394233611839205939567969800423970654557304579087453653575906589304493166216316333606541332313233677334478718594849136081639861496066250105095846635900123293632312960227959443009005782507318970224492809230005865262079813456461094070386877993833859320671517558808956252676077314714827525754004421700759503977419571803951483976148876462975762670400758468208834662983184817041708111212133347773585324072256736620415554417486151796347287559970910415075308893166053789126366427321060993502763053263970771229039603000049387457816357605024251127621807220050416702695205257261507939006835751782619585905351244771014169538341024116831943933285320087085021145233666880449392002001586282510727843351691649914902232230633875788562439828025932702404329370151118829892289362130868623817766781572823609254964141727885465540986093847806911820915203648263821507285640631819437087789708708475416132945249984710568149860380537581340937563611262105779152685365356920586347768163439488974253912256929542585851482606026583371231024580682860655601235441259127533562514192680071558502980121210542043371978143646605682078698753185728614861678725420463108312945090927353142489482791792460741836042151837133545416886704814972985977597355023034454470524278439106794236516168411269394235710091127320055028816369264219002953187947990491783310796914993199134601226143173825898957074844293562346758469276803297037268884165144137789516467613054313630519296559762308342659240867351635196851989972001397021396526961145366811872701515074726061580411591550541521402467688152399368809510493290124184371691153694376877090769318155310554336890031953417137409149968969322632469887291040682838984199942247698766131143033480787853150761023822833890141821800515185016993870090484698522225545544804679361632351138693417417625208218357887612686510023678020262395685700217205315199641179839386744301783865665547257100738454205312872426020868188792183408540967134086449495068210821299010886852163154962482895794227849683892150212334893593337671463346497403558282414144196227584355486880289192337832924852295187132192588281449120120174148473885564787917575357131002978324236329525564482157818474376116617862887411414385518323953257528346412063978143634772676461157595141407250598364766370390185900907337279429526266579687698716473572586943234054840274253138299696141385955654201201720072462465878023207010938832023468234484529163664279819310940200316478446317906719966626360674633944405184342550262235222588841738552057388107991648779960073075480626423847844626006548830968383955708719297269088642159949007259155336031635753096220407487540042226158336611290498634787154693712329867943307451049715831358933745215976821672562233223544759732593832014125214223346141089003628294915804146741044690163873468082370877380761745117783834263553911587933453703932731041263231744880496057024152431186733460876754530779831923833506557771745733566029176932398725296136975878864176654153146816595840511402759247282020094368364222468533814519433483523210920246383584301398930750490205686919753578902312301017482586193958039799486126803070788408703009530712964721991903198831638434345125192542698169248272266606573215676135452633411102599587362999873244603490076354367088863476713933105041038194683514648448898286952010577316402749248597348956376542080444601896381097512922794926915986461855963062736461458722207211965634325674421705676682846730898477846833256325374210657375761854074532187678565359739209281050125500376620511400552416081028955967601302346452761896495808925412204575425278522477391244341453759911202304821562017347559659788346139374847878628275937333875642338726501750898284393831612095647161452677761616289385951862430814341843183079596800597295206926232735626004595616951296762298106145112710071562702704037919314097644750946538712019487742699902404812847563164742481932788170390043138015386328343361916347766069497794006497498405275844095316345351905740900795636929558853591521584747201685757776536051959786539450946483404619878848182423630181025684143220145616334188899981915846518903068661308339095885406877611437966986064119735757226182562689330506952395642224196237019432198489708840516148104907345370556829849387529821392420972583117631712115644630680746128035287743254448290859956450846202610363653319022172134603068519643853950192707598578023814707439531734144359767011554819573549120297668227795405161755845163433790207601086778693148020249026333317796219060841370016085994986837659404358641177772269180455308186434212504464392516888589189932125928029015241468731969888412301918091362860389344522688099560475004833493290800219113783022904377641274712807704099010777833017888069033453479648555919312504779889748643511358191400506234211934519905833926817660356574983590266580254269142270230434281066761202298505732057326610262570985911551272623079077966032655886762954373555613711268137015209586323362762959926235869246610354760231905206923939823464306106691508941237426216866349361920157227973960837213880620216948798061189766084527909686213926035051636883961658270818843211664653480310467681058961045548303423014025825612735513886887306182595854159934080476589415084411399422537877526940531964280756359175729175817953562483598676878636097452776960978335103585897597044269454096701701090273481174537704869923831890732552147174515299064164785664283245009988821698280220333790670670727200753239699400189655358816999061808184450079974117577066058592573391230683501205461190342255449333439479681020004554507010465867575639385711986594598994934294477966009126457468122429947239063829240132091406564239262612595417566766702023113125968353846556610542192952421896042657075197813406974846669999138206072304797948901091145046169864871698066198307941373929795034311047006991627040837340087074194107879889755598659410922559508672036334676618440663651515212553861840279433752370074710133649224960810038911568596583264904436767514150965159791498861649340430330049769060207111870031858849732907459436356093105365115938472578789516416467357598409185982215944520689778537145625836537973328281772072043772700186539847759984297116643279376066557807947314406052334293631319277204896296222602976341552791352022903183318122491621414635415493999478794735265878094396372594930617691243839262045746170559227075428487607405858173837374642127502420428324426545479396823053258349814427218626720733988312016256484928779471903281622246891479582670478018818305815667437350510758981637209686266229636398573093983665460123053979020324718019454766264958229615238626862506158420240748406119825691183551882440067452047508579920928478248314021848833253918039337799513207206559617070452735251447249161672918476880233667263412861857648199170908977491323319846818890324070737960812013016744268256713426288052521505607844490842195998090206548979864381875815934259009761839894355288007970657460795176542277114682510956250772960516788736318123806821340710716656003043929586412234156120865008782440804580117428946082063395213159716207919437207640136629928114585245370873310325728253363013514395062046485257494541038722068816780256965477189868638539519307093517331168315517111237272067408804673229205451123244838206739539962552134119588426214614830050512068562398122160797828501155935480915721461024997697831333068150316758351603771348953571830645278495636532471628705288883777235723823077229414904016777677019441161263438663648185001916024279856828256162875543453177890155007209270538848092764883841517048789598681105468075422445197102130890055358087516358721476090500846080690694375396908981851660784778393888098618128294319130982736740680666620748129388416431067346476433069966856058627277629908816705967383819677033499264540788156174591086485671567361337662504958476929865957620041613913283096557489241163946872174216722034574109581114503014543571295720056520794471252324277679706162965369797609736648835886844505389735096990629434637868559310760054375320858678917274488101246059560475662721122207830377986522911627787401635873896233803800502036397213210321270824627850431999493362753028518437156672118305196244829068964900262252724630786910495898991155659567655431213654659729130992050501946431424441998696652988436312671674417595755706630621871273799268218091179999669989114666744272689944583788266289224300602146497332689058198864102509899613222344262773090586481555205722483914021164498862593421217926987446908282551844165507203662699360754711602729292130891973569566533069030734267952682208738153587498817498367169710641333485096720717135998180563468122624340455491478961995902015562608218446453495859027323167516183251236499902028456493289600588681715565676425600136081577935383897099071815731774321216255164269043160589793699865684656955859439841000211370062799296347108075227205305076286633727417309771518938294598162846994667440418430181839509056857964432075736177817891440823989437033015610831579191846565927517675620400975471043989402390584982300966784638868264555671074669113871136288072426566051113964456653140037558557738520642668114323624814893358912996333948886831607820551562300035800661252606771841762199695188691018547381448755168853731984708986300982614015864102786539060094498119642366647510791188995496943320560003492507059051265586009792848111797797279272448317722779660833586881815862374341788884038225289272522093225104416561381922838411774335664787424237581223565669456510785780309356663240634671407957431266524599671214352875959898893567825465404658959023421658141353722141077788883971138022451368124073550326975776639079952919168433360547735811371817064996352026895983661845165892947676308863660350406744450090221420713229817282060505433641480455172159396375433034710715455675632706109753152936181990199972603644858506418848165570271026906812375553702902807515276691218237591285908881527360229360838112771580761798429760287441989773724923815203731403373682242059608260328953670183448073494581084894828077002801273726879260733121068923111971588187111353048063699827208247575364861190426560609149270288077225296196323131505153365616386115678757620782410269048878417910824642433043156125494710611919039453530630664067534719784328453153962717404691999336111818773990163087169387215017856537408462069308320388836911421513792479448803654031666610313747589884328227104827598385641957866146240617639936551314532701873712665137787604611405098838778856761113163685208605973421383971917682515911669289672024097978923577509333978412504787825549091098988837678024105912048529042451763630066198666093502425318800187482424470192580160772702582590718819267295259309168040777453671623419874080657817875552006724398065984026567268356956868966281475479742686082990235447213895289013456071300379505720291779349399067458201368795387233049192823855623464684493097140219648416114936367096118802208122253803458231292175420739807675240799416304033278355055801606731418723017947496853302378112971970191343600290539152946847744679610040610052914067639770240216326418043591034302386488530933399373769944149722953596624620338873791890076505083639760289170121873048764503541215837598134425290191321740363238496868817304818117374325734772025718284556643486442857033516253680054202767209226494006813644532398887970860123521233244426147229238798449022507177606736443483061025266829369715871283843280069173618604730958595476188903399431697570322378450567959892706733568948959201990933774591064524762720305692155087105289992791773631844086770364994909924254505503025729579666140507806032198511143654230848588031780153809196115300563862569448960220700850106538864829437868566720234131253939523098667455623412412611770557464972072279808849262651073199285582616251462063378174418635192681868000774938391316989248776921516063506205790172763469490168928756083016484081607774416421074414578639583393645159129655770502837204059443057102384620083441603212335998034428898429485054799199048357982229275858467666534270422530908798548619644626827501298179841647342708662531508934477990877264667213371916571803608093883028680597679571403979574152068522491657423216056695985337771975575906153291449422122282612618702022072579455619012913329067916854754275119654259709393690028260453562117063805219938858025470941107368410655104057596765563358907745439650808195948498995444135457072486171026945376999140727638545232561011091359239680024780923866905548775670198904941022214375734130664510774289614417345670571162065369658262101461033621785979544481800001306168512522307589884330650113600258411164582251464576176260867819228743702433105899636580566146749202100920744805497454865931198303385653131777361350405989955986375363054922106140379374023153654047337004227866503536962869732531797159875354857065790646026159964788420304489781729734074997438131742263338557771295875389849118514614109680933587846779651544828208978521689958025476213285268416347916594820390634119714581981608132445325663457457553414230087313272955484152257748529202899779025444461280789356566634410349459701036614662069770929543311790475483114645147141187841515263424757753959514261067705799405678397742574912994871666645563660571000017097505764177640436063087927055484226902193738838435753875556871544534944786923872458534996252545985731945755796107324696460952325544987984915370474058046756997145068750725198724839126323778946377819501693527367184039213309320761953934430478943736813690191974942809654060322166974358657519055438955377854030525994664125987816388733784889905280440392875344344025233415836739663242789754129484658231738436852771836381463714410518546236879602465523689654822961144756525612290806884340933781565091727183371409079133319845710654854523360901871458212262099640316172192768102642714200284588664472503064256159434088574620915886070480696807527621626873055581146336096396132329506700428106697297044103109654586669040806088436611691922661160632609911106347317543647494983449808617555971541622169932405274114372161777436438085911738694786141842800105421600884492091282177785447804669459003401694311355513603523131302526485532056370226165387456771406176941125598668562432290638594872555094052661884357004977550441259905865592388904235368498685617513964461741239175448340857671429050731244427717566455884798301220266044479692833032375173079213373788632526752324971238658621420619445963115606510305097517899742457092167911783466515070940515198704970298822586275272721197972309922083003763736109249174141291843446413524580551046230287301768250767660996697723899015980674351630012934501405091106469027931659744223824717980570161469447140081687425221665592842749167328389601017266225168746194937550153682024438313477231389440009622071665346517603908174901920205158582624309253911950631094809617199609476308971814278042575670149277054738372774210966088695683409722194521866047296577021829154179517045108915084582578346724015762082004280051591542676308886869144776809893416766581315458162232858894269043459958584210624997843902019782220191930761505910775746933946716781080725751914799640106824149549768963675622951694451049245829617199372948323804121513450883043982935347899975050358503619430904760282343902813337346864791688204158591162701921424324578719890843401862722240819791299046629524261787149640060130874449336184599304592823238716771261578345917854624089168645358410719835722446157753079464853740139464505380486802354865969536240862101658785548756524350053374811447558629751752402807703282001054720007223838102182666002757272180456624954340075736700683002597488090123436164635906803193603702556508651313523390457840027385818228492954240269826025221580866601390071887627521027036540031775177224535159511889021415825609196103369725311612793510253677405330746636753458874307928258483215918188532180396309741955623640829841076035839880249688743691472329285002397080087584355636329584220350027861002778156841512771496776056151470698104023553795515941178017216082036050690067387527391863937388359045892162344799152491505459036368851454525702601443438685849885174891362806811936378511359181725232080711233698568637238512426521219255149662248562074587287677891484105899949170157088287829809704806899287659326292983563485649697371844253253140984977980899829894277079277784701402353243583866197515644173716563090525138666708341900989347582515286760508532039333484003740075837411848429674323459126685530913034728416925980359966595647153570120858117581962307674188157079663640373300977781264867991014315040812041123193754401214941432803165654702671178898395037987921001049729742217673300208956447952722815766035545503961753506800910559857495366083389118848037295463663123532295341495802608806882131558358383874070570952561495764508308703249004442363973527958767802930156740363704432203350363540469004788024678743834943684180537360757452686911711447923506048925359583688759327147402147811954484156971799409237602044142403943193417100858712699006308237987939662699494800639112488307795158091164020990077749400415275649418217190432634262216167903121628443143939527058851808709222627910671242691304841643484242737441298871814882070653999348140428695835748822417564177092361121313559424447641643751257957837511288324473813787475950017471329888570180542543132816055476322598881297853417794404160577467671580705782277441359699262294795417361080318533946401178251918245731540408592162288264050266228371971258869389109041060809344071786692221350928977598796876874860080292476873642918622922062601414757905238259430840521280862556599447501618590392013737500008635015792201176056310665459867192589651353208573351807216942393256015807952197258460034841135097422138000872808465417625031650730404811051864485730700376137018978995215625924845170887066239977930701963468764648233315249148319252245972351253051421955987945186686103580306904261945588060735579481832027864262465081226521612385971188288135355260950413420564146366964582141047597689280980999751520076525280385793444210140016836375362596740638510365579976322806679898037938406410111571948234612263522472162825404287610439215646479623815940318278341126464165783972320741981143919521958830408099015070198684416668056156181831061955024313214669781483204430642307027754411103746053234926794918530393288345460498320275860981041671890579500527791091260238062121645078906275699213338626265133044114573314911671364051310950328316055639574304175605815520126260748801954760337431845675822300937374132568231406463219756479905364160464064024500030135580947505043026541534456641201966109607954569070559385541551472459616017899770339290724861152511738390182493150991992595175087459812625411632791975875331636850709253455420141992195354821842598351440081787006380725030312907535878287320104149642142424508963692896562131346125729153383706609047798313875061150135770278355656310962267280133751567092100924582363167029518392034730736278412014008706650570137108321681286975075545504896230272800585034989150864797114511728294928692107906192937623018339624886323053043802030093544220681082029704145436579682593583991295930669023470803506803348138617370393943737572019217525852729208508873046166264766795594568371686588054066904986242210315665451559951097903189727667172835355852310816071166198719021550214028865162718869812776924806936797068521062068935028948662794556342527209019070962420649762105698189047760659653271130019979454686996713304512455777544490225392120926668184123170694480044164703416548112241920377886182450950561269889713802696069566581531560848986193994640357783696821633972656787694406205615632856091637429262343430758131467972128539276550187991132622837255452903665566903778963775055086007548761573115921852634964172109598990208585703993361397124429148946236881016770073914754323269993156458398337362614352027323105837386594892021280887051931958269850040541407094036794721291100187394750377136421386179112728546239837466869504383420706625668199056059750739206766889941790881103850518405255273298884622449621419835299610934957392202328071569413547862799509628268226203004182980983951527536569253958711503354534969860462401576742162775380318239952857902740210246033824609885387402466947234906122499008169124893953537034659874260139066347513159390047354492166904991906267107048274455678693408958753017784754697045721115039457924042966153537773812978903673187242784576411142433069579600987657700232392583432355558857261201043425269226901565596683789773185134048432667955694894337176821383762027069004542369642225670281390268314682199131831268230904625316507449204314883871695249048177962543501544759335721003367481519273903258436819008506085257444263762478679773224765131397110289199241814438779580718152762808152373049766615096821142046081173257523688034204808036276226118117077862355550671409821448875585957789272537385810603422569595424353438250257906633150336886481561197932342993080817473550469341893720736475734639968818329197138663234009536999134163602457555095280054730454047560445945618947177981086267336600139092546052122893624391797708062274727713961248715411910853904142559472177962648784631770087472618814671936708064681290054719198579029377213516795260050043098004890152905924572172902857045259148130601806467032862839185565729009906213424909211417987583326530502608399057810249366854209009449484350504894441858094669339614184544283720433511243465718418380644188912863985786759354602760036324479678755936416407111709750481293533926299795070460884334171823597184822774524633754600221915703496065902298982074559109553670479187989123312306739864577804472766278526238805239191971952528825275774104346328474628287111247663611466287237010955283920921279482942125579688409251365464878414001980473466524243525494903115332512808497196468606890260793909903665478501852649000819522346688179954576642490091923625347869982451672291938836356300212998382798349952719405655678865654493008541523714124779357797897483250908367446664909145302930076418309442472332207126483631035699964194721604146820605743751086344182240100212279629958039525572353553070051177628469278771901861396067649003181024336263394099514193477348920710893651017801374119420784636536702083671710799607154695197208874494024653273805837650508505904461172231696710753612497654293950571531672786931205075364046861783131336267734429607603392988612617985798072917190975120387862675319883052490901726583052393261131829443162436441453390126418070014600446398437448200194193569973258615587172331486566155286632347062803160799604114700777769570018346112508817734988115385729806112235744050403085104345105767292380841071753917157757295374972092870712943641347069880162668962306416626490786959545447434973798641646827173847820331374174995233281152157930437672080818868783502377619916761498330829893112462518333634528859203975891675606291633377018774376109550206882469815906400226425899339983636222981218373522132133830156787441236281094332084235966592893537558596600212768498984095306640399192544261814552135722387734955553718995910293611182044983722818009501793897252497331846584473013441942702127127370824084552133212071623152492762804629926263299715041047952887844973717796684844473890886646391931591138327305233624893307708824434196447125094463955262458666356369981626896533857319411691674552785604384104553043428434133155185441859576373141777433229340413926396282293960308621481421206332338144064562926253243228034341656027384037102357447994797077314934949483348781554514389741005880060368055399103220766103948100127702052102076194548652157019921329927140983442427803751710474914004662892889735032714692464751444892096930770343863631747436563551108138837728134151726251468297146623484163112125094408115032972754327961518457050555386844138062959944389598665387207184958524452910486378021389314158594851332985227045147652453104124581059280288583139329369762015116608127844544029786400541225779105861875973327417308313257152074470710858527244496587992848399663305326517041048186743188206619395853210875777359334757517223547638545625252511481040287735881461055813037010833058877760225018217466635052544752535998426937408461543912101546923191346151357304224131525266053731531261313847204463823536706411506361215221001206883721377797441824861133244880255539228515475421829314717659961805469713018896854719811351811822501407418683402041991825967636690387712978513449418011382772583121218280622761815658615399893260375028834927956831314565728952208519495015143176927076944918257323402590295624164140340301788899270989104815834903719076030201444685953585632068327256603723654198964625689441309597772624613237643064267866428663984700696783639487766620817336946414136103562566733588145739317645406954122586909332406471183191779142228801913240442879164230738756252327393973886480976016972470329906212894716297716897771462662427211338617860202090761478740375198788291175350440840331306589703613711692078263135106766536900928037413742864188098667340404431540280482628174515949775494398603487582491386885099362156901823350715798085468927152388025134544640104817218398359749256212320830721600267764346579784399392124531971571491537336551200327308335021678561259596189167957785066098397423206045645623656095380507539156350044827303751722561043758582449876381869378263711430118328942391924152149208582629929016715373964104126784262885898739329649656649327109410259139123881520199692470728810382136440981953751174333723573127343754411934768322777593296650834660419895991667534709833891275620565226954482206217280924516288293757327903029403822560202208137228846109690029322134897906316040490781672847312028433312029502820328793923956437036005932071159373293053340611499869566612082263582500068202926481456287001470738241956591324477540897281748830339638201737551429290686559795583342609048999011954882672179964846807359796566308053585903106937437008496202296385250222927203446408645502759285612527153940855700133191151844122835276672107863763427644833212801851053270128164962910719675787212106538877261125363928434689897565831498004061722427371196722085998990441448181637329505322044992606806321979063643935475181109572570420487196570346924464130103076291857932781761260929513907083186510796268699701627052249180445206617343625271127502024941110195058271075044702801784715633884564556111881504149580464625882355650343944215179110949141732950510374553772591936407013778689605822007998394121444344845516083797252217300248319657915033615557896416236878536118408427796824582799121434947937259278635081010427545665256323454900313354076374673970754250099933706718834349654583562821437825838276780554469430036447935192052476949238595027414100098392419055519383553470278958379236417621170740375853424847245230797919866444642510098095623541265737534773193902332906795684631235805628528631833248448570445625392511774654428756364118797521422221845872813838055101836674998924936908839748605163985413829249926207446593902581185762177627984947633007042456488349644428630315639811377390884951178403639463073378146421890765594274409058644252662345880520143611267667381461585823638533079662059249512924056380563623119068706253093356577490571283810371189289112402885195078395010313605586527399893749660687215188627623641577068934416014810809028245694233847831161720533394100725718804957726920033615351066114794014163831021535081842224270048606469712987841486526792051888916987126508147900327126938915197192413885565866378426985323708440232402370916031775001257889652677153918558710429983538596784283342878623169826721405908503695429550502606667993353994499555991730358054126385159794582655171950109528019841663650661122722872108452006010147947205491886804804187954606876570783525697810739348191838759607277750421631751277757167114571392790912620738254738903164570188427498028025920315183687340817655101040370499811786261295877254437715375000881964163310647676788466076484732577991803163487751367918207192932827592313636287464283992367478680860434809098035431494706078828733280744322663769142047386947169092536883293438274081174323302356598979842319656996996315211252733884468135371498274605113086212661616504363824011572006093294252831821010458718925095105051727349109208626326421841748085339869950579691527351852273526758955956288830551406363955497239589991387305985337936836006239315133848025886284967454359388518297632997730545961039502875375546527991359003896245022361705619793092201685271222056332139072517351417611741978498813142727902068325407968281502738714309333918514895576614208181108309108065346005200561094358934012604515845528130146721860888024803981612609939469553544975879055506693049092875227817921042416475775700560524807251408089795870190803671124230808496892354177963970139154333819741282112853145688687701271743058067740384578728925579837801296832953023595605588456387637249710229972897345285021375549454713806212172163785049951883050032207205137251830404019371342730614017369024097768674692880125675932168274118008909094506885004155097204515624160898780496554641813763981230299548183647430052556761020422110150259487161552656756943349554360991154827116481661945564162790544567626034503329589912353210371429910095869261774003851232560747820338836538475096497610788852234406980412128161737199401233935351077998374916669415172087932341548217125120071824073750744510816606383444994870834814806120466126806020282609943630217672381814635480949511989932002448922248045457073217970313603800080486227570372610446891953198158151781000866630878052960185800041041139630693916242818406269913792780951235282361330569339953641091208072188033027912043114081933114631903326011569895358789047649075883714976246231900336106050218891935468456386557464744480506152094630062134447985207907241170520565414809662271000620519009873360164117137555990629988909555228359045486799443704679759919681608222952200718985611331101197956760089284689618682438596050381417795578947859461736820380388088250753801139574482534880438946436748799007904850113534747903266573681309510768187994721141860938221217807799629994891277304222017020172331312316685454833374072423977765731518100119881291024766541559658611121649488782497758784652097202297979485056054273651411918672474653913322222567653005675576070347611266826222083694542007412516726425309048576386770032583204571227512203540019996553575671431698068419085036625359659817084866919424626420032793051659071328210733385728294234399093749737999562260433897186155390275490706810827459253159765792010562710598483511579551434356985669284455247259380777456265327535861861551792292563356417564727132455422149871367557841887768719047490077562661633596018356043926222263862454098904723307463818906949141372081168851185874225597429644450164670964851269967561853980494054124437886384698427540103576970148663977898135834552908935255158000848966334602146111255726380286920406724563794102321623617037011056990879983138046285823002480128284057909483183652663280387618438820693413336713138568747055130644189312113457775188807503315124882112087371619096295921105000681661919411494325481042556683897021774354269008622953540104513738752268287374247694520961537890748004804966307140917537780446740743343830472422970544171980291185069175605013115634024409515814990570364050430944099232229090804358015903729820072132787193842973609971931669981581964464875582516213953618003834138891502351249660914188892247499034554675269916450616442919452793252003408294887030077954334779572243076201867943881544568409556014918727342211997465700768998044357159430508010281065849092044790900867960969379925904049401896967003516430508200425165939936219229615514232651098015573287264242663645481468856532203205185133811709793128576481292240878095395459664541170062036660061234513700381311464758229409598855934060337624301950094195694257860370730322883874534127477237161508225765206497003038505312315288932025240013880855528355160601430639491929259345101473815718837459520562026505594051566913836039228064203041476871506904448148354459633454171068566966744953993691116396387695322293763357746570764109926468453852905112557350105436721228876997501040067543057160521960340514439156068868124762693594561016126906170450593792744053591125343291356180307238813696160246835593114244384287241686938121983288878031986212756542034610548400989228356316266742622634600660423956689498691662349076143613155510990232496303722508148002645591434408550454563216671557336706701227306281899068406898084510585361782388638690941452021680329128927177939611793665241489690237749731611924705899204689773575648938364020602571092081592158082295715692369835433147997936610888499376392621641511019122057641795605916145341041184256912582439070753444576051626877159843064629419350914817932671109161426973558115326814695129356654323558994361953323569083429296419230100538223537136423945135035216444735599319255187404280361279236202275745299118145861751989696982239414820396694024562728755664967137181891207844714414364161716114020308197190717068575892342001555049642752484987901233647558458913859946066026945561268081686031365398294586607952457895246540471908920357488887770416156835133063709693071763556083407737077069676710984605939530650808428236809474359942526423541748044494530410200291158082998961281507916312581942297897694158579130933718581494416023391888026273224909426413596360857516543696844806469445841524901314208212204379149903733256852200933820212892352413316737717099955773893077707679122556539561913303357724348077878600922301501269789786395670796527931521106367340210129295257673578207928408512661197328616294930330337867955457487139552231122768423918716637969579600567562301302472003247192626799140039626768510574832972040279996663772310794511168804986932949638397644555389274282149894253606100853126437906978633734258857197279527912938104333757744678114242595268068284862624930418924537444044091303496208785943579767772358666160415136115574120298598496508561809287452828326386028288710514643208702517234046509027691232750747366775161966169294693409287780071059329128390299165246055492184734037319650193397445124592114102478387150828037686626276359843471369885576141885888268921764315911013605186218240174198123101629822249640091270018132621010867360605002561990626012816931708695377839135962601531776987965113139842218977353785511513254264752677999087626437399504996882666037200327774724222722453996761140681373702801031898800603838024534254204751631975692236561472780874721540747902720340114382974398739850301648913275739080281923544585681890296449859114209597736141718393711925086865762595522106442965148927845577429794653675558892067139460124170294501321843274068475904564003280470111876936496468509892382945529599128676270764116936781294502326418663511319394543995203698423918151765134828508478079121818288605294243244840646278435443917320988129006837617497042604249014239005011872544414159566499028067947781017000421548076636534745387131184337401249066682160798590542359245796780851179658505648297506185149056659812570998206424112753193979669415118915194689708387446478970880404006634894404291993627384566938524744359656514375439143061834313632589857959014389039837679346770033558665291643911382198488818007674315790409776236553965407979856128923028898734740289098550899019898962925303371453975557591193527940191258829136146445147484610790374985138315615199152554469797706526160029955791505788108802963176055302755943261725158071318291686830212733713402144774687389980822552611769077911832254559785233378077553049223890688814638677102372964618734227391767440236623407080845074793099539120750976878638997205679124881018900834974528886366506003928561732999407867726933570562908425656597222844494651134259474076436756788003783049002351320119208623418555730179215939854637944838838375768901316139053174771188808356057306179895669636290892096355155005223090787046861025030205492715096914183947517050126885073874200897983341214350180220710691040635928580628914625001372181244721430978067441741378855736478358701458892471256564046154700532160786662672698284407637301776383738904840822512197645662419529677261436347466160461914275136384538615568194103998372748985925438128974496491688248409774202449381200204576242761875269452847587500561092827150239738939800105442570935215069190691608885220944715738755260113269030792577392550134269572862043780403623370041557000262077806515833191628284596854129692302700515794490981084182343057069918223736068148593961870163628183172554609642961679161585440026629924265009972019176463107503262281898362478096281434882665964594848529888218273608498472633902114186152494014733594043831997589611544851580149422531749828118570087141085638235800793427950018520035851289284377773278486212584090085802800546980239496056058159454110441926712208480669731233552110773344571347191889491545766824556657727882748124569865597025867559825288206824437214237801896355254655354501938584884134670150848004489698820265915256008418819462146149311754840874709990830973424301376012982319368490440800688756780650452587780557706929222742486488739997406586012273277609643551013468998248465991624895422080228544472937999349286551406574869279885475102447260794427696708243673092866205704298522151807710213973951281200475646510071180790028147726477019978493116053103508882543511892744123997806112600907182341851814820414749810482922506442562767634673548372786914595126855671565724151623014391582405422795306631301296944505285315555669095908692102023340550788139963991713465912899011708730316507394191925871805198806788815636248058385670974320488571601634892767452261159660029442651827248639580675167544543907032625164938913956467373808686427532177288389266282000639608124481177127982599394219860659920248164591164279650899485374791897098517396540564385922759997995792535815837882424169717265902184284958503586971290058755649244651558429503381080279030173485677689930460788931716723761757586152954798346731222416456691959860684265514753319905535743742204618963066811288710031939467634974640281682209245442955417464608979920465180685779195901935216895610625669690066870543284276420162755751535254315778821494992831445570895565281531777221204987678900193333102819341183847726827798595066769617232458053861961536627193026252343783946860621799343078064745092279069119642353084237122275126687937474503534628652962409807617793784788234770305007531746389977876527829281499756813152002545283837671191703752258977649260608677828588791879582452278492732584091618635823241547969666527255023986160325779869242166019674873373637058781507460336938185692160903869536199195298736107425158720521684066969871292468475342854134200159457923904490995799899236120368205537791409900450669174288818576677647123693919003311024364214195140716073554054482370712227314066754856781737384796336661534014580344698063937364020408369747166063162761676265954452837328333137381125921031886484745667680433903660102795395203450969127409115476980886731567880688447896757832818957083994185077670977639709365464450566309509636502963136612871343098306127705347061899237029529708441206102065736706695175975189905779664248297145446227135319051512201210403503944993984159552151830369220400385357637990605001918400304722417812696685325445868376073065646318608242965105561700288906194485876839706214771649321133744953208080031498538017157820477894189875634776159988711583231098041136521872994576324744189460596469056890666634644585172248978558792476291878036620966688789734135122105180293593785440377231290250896130395681278678599150740817604156115739101458471632415270527754135433500072815637054251173893384511025442253122195601453228883366265066967999182378500377780298550069127913758342853408155605636292381406489147211308358431239864963170465920582717703865503876304265063281685626326045020857425854069455718723936456518062020981350049279435192463085516096487621976016532322643613207483359559112398784188551233811952895857682415579358930889392339762884117543132803970887617762065300315425962883479206661099728400139095142579833148733395904345841535345266617184611772679387546974415089219291942316883780692400883251784214850372727660332944201864599415931189658786567425583243968831394111205755659524352976274796789582410467940907903312502842493395437141474521908490192712096436103129258007314704156492881168415797576121512882078687165869469958240039411195370405214263199946986720973256146377948989318756950328744112462616436529799016773545951746978562566790309391924533278838153659765938325368133842549174260016011014388731092809214294226495876008194818427290788482983355239386631787218606219959629458990193021290140319453572309048349770782668078637365654212405873535419486212092021949001290510070295783932179289553359593928122035616092561660201731366612245376758521769108300003837311891322993209581790520972034034733370298480407133203164836469305619759058862830788941984388498808449379438512957260587764746966994966368800625300014806031589898860173132345996598671419917237840343690140537978204372181348879412840269584048959147673198391027970438513381331052632277486228366826788339722892184055642208090664456908810580148619011336113758202461458993858701878043444795192047799603814068819856229724597685481297725008285978931392070073361925938338522065019820512392105619183808249524953344944240771267170667386800181912118611383086030669017097243866089416347536679317343723476593073543109644037205144173996609402456387412078669114895344232073022495661418342951493329698691806750797477733194894568314429014336957218035128066146014657368314994058796370290882093113038763650718292985870465156025414050647662457726426157081836445930781473347558690746804408032079474772401039501868502400702675505311213507145745523375674297316244890664164087445384662597835626748049473263051271239515959038348403967016748992186184666372182694423716870764994326688859772719434475262192834269348476931299396531660856571602216728770633440264088982150118992062214275908177636745590443163653492453232501616954075203058082825570300789447235643420456528169344260906659601294421268676299901917956839415566212388214909621977965326701077179062533521070223853153034045598447387629529522411265448537509810128998233139930880308069010398491149941087801169706098419674659860456339058149985550039243059262871098736649213647298766714635719504811925303630384797725460521357966445398095013159155312728826105733062463022750727262641509524615807520872773495096900686157129014645088970162053579173830373579597727031662444386120997316219087305273033860159409989355135502338239083044956518582064823918809013392993100558221045760247565521350408303029138622103035933281324813024984539246460443481849986808857826425450945455065137635215010381098322758313551545670238074897655137375164803817222467870379511903578638898352135933000066029271092742107220996397427389405748949980029438271283757686333954034921568536943627311924180626967229331308997975477805633454261733492688485177082040900441199865525620350498755134321026441860766193118299460692406318788372036475451143846105676839876394911034429690228294915477513488249651151631674555646385537412778322931687885502394098015616392143209427334973564720431328787749963133569356592144197644515494409622904356281355476559717650328732302942359260717100807091222339298230286374391580863774517441776198430607779642555726913692371275633358918766415489913006037930262605039523789479733185485573514773653138329901087591118371638135303087710072323841251384423543332175426312733782538464204469430392476343715310281352359314226728581321429157182050538923560349491710615032314303237626896728938030878423604844228379498518376537040635947628086147165594966435232457870046796853550922350948008251657295124809360053051688448623660474229894922976214915365707597143647196261330375663881900215436421931881474692928073219767444115402052225824167305733118396177531065340934859822008088301813966319319973313156390397909912744801889761801148740180496206697371786690894558747308139012921674372910442822756641958138276713681955003067871313182126560058460284014106976445741594232200864261518219884561921244307525899722288786861686025556272009684542350843181526443056764787440222216420762267612059847034484055302586618137346433648743259888030246818338730447129367417678087866576592946005400283585517696570766261086135449539052931064481948618453722184345898615667660194201583850174717697498216555975966683113940369583477597908127352801062703499807581630252135215147269021272440425684419608220104027371839086188219212335590141833631517791702212810207086441184598876162052902275078094653921885691925740699949266316023653635602425149698511821887550794925488006900049971056278918897934066940038003902435707879007409254323612020991847798343929905383916040518142541660455230970241740462067365067550907269940048880604062911071079704098411499376138529659021693902856088074965262552771994041789514883961098061101631637799095587358739061593139959623484899048698902460029153809202860385624852020834619891196791791879434955977706379337849659808420876933579762836470123192627591839442684686417315506862243976251405870450596452554143775040326857777488863439165334440934038136119139436009087883368987952791772817958099419456073037425323930576381109818782242271586242159649422333615846476480422456870613269719470929837659577941452586906475069261580524469376006069819170227008195220165025958822635287173825112395949463795610682164138722225587236304171469253611047792577499134304353879879883445708742730067733668381925489187952612143692068201336254484009572734860600861471845110526875302983554521481408701138645082279371370319145819793003017387562482733825819118650498023551994184930518273950153913784835668538313246036611863450665289224515600702338901762237720750392972529405267918058709097798440594376282276440880446074339646770140531173241690016771255041568496102386770500202677912984583967276429133372293098412200489011703097394429527147224596303080729890052906243370627603428331687347905602102086161518351386645662459765773442620808957457562991381027393005682914952430389954363600124873330993192898525536447751353051811866298236369029131312161209377262965139640559159899760349431508235098859015541509819989744786715985512068519283163588433145538393795626740138894122027996779390952739488640689675790842892544117276634002409262231703383937682087571790766600527788084526391442872352643499958678974784981659056662458837240693556309409434255562708117273723703354895936914978840062777465460071369390560216608990232793073639267859307849909596117513872389251526367550621346118754188235228700849077778519539109965927648920663401724568947763293237042255239251198293107449429955605490603346910597866363321739204950787424525799517545688547455710952766798608527950380699496943896470218277481891593262527611262134026269817433383505214039326846424454586376170376764319351611874060035444742276172341099878623707796208083558734627207621861686669992962174666942593486698410542039348404766247013684733514261165398877485611776940661599513430234685707210627856642412638267435238130039923968785802283149438926136296632615851820273005071339025364231414596194636152461141413425738761995653505540902975440472010352037466464226427147476708349898523850126771028262966068056301756289188545089783586131484821189213145137868689571286227023571719015291688528628180307303820783840656675929372665932968510623575357354152014598261345626352658026328231033755225160486729682056947687735054268621340131465382463469751964808511151996443645379574273381140794721982156704442180244796648322770385475790189036909315619993192840435916082695757536042518337124949684319514275864394754701293047641473914428023213929248492351078246465237000870511566880799992796632318674748498809116341547690142427845286208122747066682129328283040326840635422486739641846322388978898395601072225694604987682492693498858379346987463377290267468202674766166636802961268778320228136330414785899978155291649271139883925679643625830332827817478086029058748660284897768690526487222124455309873041658249296393615539455966239300015069990842174912982604533310352487164835237129870480212912880969293990643091716882212999889061560898563059118512083774670996628171409109898386275302922201089987172962907752916476945914600356378847048375533919426527748062311056896979557369246446338888582087185654470678857746656166484602242753778154184774318373789891126995079776162441085224307230844627212390403461399496664437922841445282229011636210797483307271817647961725897994206290500294528858910855758640162211739764358146560205249736642092374728228858647280011675876045586078028699334323126268800414017448732774220547222714773083146753761967953708816303693911177656448942676506131744888127889121805331277958025620195331836976440779327940112596570418876833158349220494276885623163721967643835501055728122048734170724016138767426121189885639813806445648184569535150143497606649214116732283306156327575720864850000638068489349788229373515246717848502698681676176895070447367168652857857271127132867763609625064521596563813767799036694402553293115205029597944744405557800023516659097207078422463092728403859733270614830263705313907439713925457483747619660477034623218388669544872726821259228636722514319119727279811271472798833222419908858965801238566733473410954607832151532042140702364813993497144550859465074319701836817836510962366153974903566117305020928549980463114990202011423704847043913372479557767753351540171340038932537857796127521802388338798971705966857039234220164503580168313306621029180090754012212913706545971909713504374587459204070425745528055161254008630516509314101205231178245657175296460042976423760492714486731968518590134663929116926702048893028363550507193168559908030616859492756703901100988289679941156544567427278277136770028209661129090928549706498983131301057580877799973185281889831305899099821940446302401570837776437510574320808072337288294247724607957222271342026304448142437348281288275933049685779683456618500797668123153421788207408903879450839801886732116572228522412959000427699421826808995518920980001787629802185241486726000505683338272492365384463446529842583684171104830653897931891991467113911322212116703057153182446181498185408458904219566011903572390398339304155221318390223827738514654238929540511892860049709308002515954885316294932531041226922702991857634063889556575919290684376784886302307513787181575613953225669075813395602125321809251143861163418063206222016120432512912538730041174245349049796130823038091011746030377576243366897644381079047847994718445865241796711115935441795472376038543307706416176562128888092247014312036077623152578933926316938399528560815817269728924657080593214524888086266869948909196269450119687174161494274898094895414626618295945150107598273044775465264608437731982754485973563273609587927795421522839145285098433119967005650623304377016417309425589536071192336916492517925417685152059915667372707033026718718939795684225374287740494385048066980783604261437027153543040056876563861533474058011586190197175628429157947438447711899209843637281747878521557311431186269740816551822673975142543778195945089700466910994006562325770908322778693771217052747849334950857389151736349681166341125455650204751979746282980870962057206081561859820766523947091079728195103742325434118059638158094652611050751056884482368990248498408240864032417464819001027497546136022732614910701315198188968567829065526850787801399436286352383946380464969386562983869644476980562613449868438662699178811376689055898151657564920998002445433986284345766900047660443782280238785838172943831172507881168073258344195550967531836166464393771986689111824775787874649139525349113009960105547039640775064279660306141201587189967213039922047454910860983879188786181315646569279034569128076825807457292925796793645532297371521137360139380040602076610205760615931142896551526112974739061612727879306982724447652556958263390285525699018033772936453552595791706560831765556695654856378427543787388115559865996088483716774521589933463220691560351391603176581565267782329873073471825176472555750689707442866133129045310691876628868827140960211038660072542227155183086811709641955070357998198875756133265052492322311754970513450198997479721453476475685654768013787811788931650679110733746539285248453300815936478392892039903831887229181126926907568681259543186080014316903758668135752076849311287252088856527664920201669457372917938651478291645019291243379661946042513243112739275560782745228849965856374617265506198754951570644741293923772221882818480261017564001618281932723543854177269774279632346712516864426257342381264880568966315205071178266278200045512516367508454159913968852965164111472745694996371368343152443340262591447018391338067859362962856632010192562406968480808704420269384858587629683562371067093595151923218569202897109335550042848376053592748234866064785839480440613501013868367037337935206469989666985699718821981303113074207946976595751373737832590275153197859189407478649535787844545393703315431343581033477803832141304060562827180262955150550398825528453168315501569813029371593885926068646887335860516801743147497609433150503971217779934472031162063963888320350021074910661087590308814294161548204985099549700215368030615714846072716767192789929216439746855294277881792022473608748063826529311901635038858152006738603129839645336543639540165905013292618568137383015327788829996817355397656749842617558363082146304072389148914607804633900115734508216841328795095617330766253802539283278962621401282070421113543678194035977446316956948818483052964878432736711203984608112884208722633821869192074590826028560867181647260572380017746271635462320631845100220930569389783232379423085727428440554871847706454781061805153960229435029628713221224602643092681582299393071335284228408857691347572037180379010882613308796330823485698180392547861787802102316019152781187770919378110272271921329801643379231332646390471145567376281079227942449756525375852319099009567185259687167125199324499885789267603511225784734939598735216287195286449623750078350782031506004194653125873929114346636815022842070206975533448656668798832321397434416027386715518071141369014741676008171686906064328862786911560126057326155339910877012363016762162559933692202294025384235688749565308112547069179673210603002544715748478432475509065329709601090761786615597020006941997113928198385190595044384612598537608759419633945511188843757882106215635193588976785267144310829258341367172740310932134960417586028697783555052475339855443804399806232423314555371680162679049876888278105260668536580039080818769856601292159715690780845564815089014239461627449776099436356385328879257105201535962337484140815043134931854554572924192368327355898607808000629637608876263078404690897647835983519288879464658869756106250693283541704283884199002834689157369500367655950513594745880009491989139521284450979064709083812891749323929274096468958405042210879197822246011937454516534244935558372218903700171807688240179272141036951289131516883604879045187406691161601857191994423920943897082113827482541929304524761512026575332364966790128856179710845643922524740635752947648938584418755347018115779257464014937863102213151832629556696012025450121132729665374304405257930823788440596771146634997460397965708266772357533860573395375044939154900965940454780294872848872590065772641443474841449426401286086799974472747856080134002398916218616170916840978694409199985296832468252987941780152898760943681386140532615650521548542616372607061005173037488191379399651283619609032701710394982086894345539999548722074616204768518382987859699392289613899384826175379866917866198217137604743236282192442476933214848104200973357812543802787000880654942456662126629401552664828322365212174746536133832371322759700385750918653649542083984621613516325571965379866057260069121609777189054116945485383268152188107723090686363772667226055285537885258007225305162164726356092212289991971695065391757053310424143278928395973858540045972596848554422143882226673274281486018425152682043700614810114583171365415972226500349887435658246652338847164445725759595808298033217915988007915775106335685648597258999093964794708625052119132519821811769777074957395626843328964394103137122871619240830294025776793444632267384718647401617288691949379045048066032439894188562182718076145097270503639634701803138118137720663495387563823850156116908458641705855141215384717202552808254361723723772955023549734248853782479466222481889944237352791433017122322416309981715921667216818064132657071169063447114183770036214836094910656254747933325968780509229672332833108399384140481894296843315421083470065288718400518917162665250445993287680770669019594553671492486080806463160468120788866582467379966414220557483733504413274422833048821522085504535009632451861328826068673786763336595272088522017176115612134839394446359148002687823416822046110839846848071429600838350997137955853928343042076030509430770061125413909122044869084988297380969480365262488630736908560281241097331221085182712755122880504165867134110706894708576538721492529898392517070390068235079669351486104524111781461516293257306230815882916887030722025722884654218079832676592142583072006642154536001473574299095671921761946075673007576263763015804003079090499008413170814181084949862063337948262986025457219089765906234192802985218672708139001272752121997845970394586013365201202840719900075059071840984400329938245690333961086093995158429602481628142336393853721353080162236735027029960404859107232059600552662530854576894859205542960783805966737331900383226241515407036246947306910920906418198317976021013712252945753981934390740931815153041962690924520996540468700529497577215484925327166015608251242251829439293913457404602273291204414572150072913332317074604213392191114967709763663081538845686234916068920888675554700658994335438506757690604190181296178245978335581964407873118084482379306600278296127048555151860036016085284264513831109617441206457002350410027942377919668958902252771656352891397860321005789013164985226256308067889387941632969358964242299910470238264233542222075247976809078880669101983070876287306803555965137460228800701257531716415422284579248276110897490596393248218936663221186974961961600873355235219577554286965822733926541285103130345012345631568135284237807167700347395855868352035042366530555671277864507155300521999572126339044351614493215785594230218593717308828696181705513062054412042994219876593770639787115342386152480998223109091475079664242785920228719885462185971302057997933911261894767928727683345898364110843831314970064867663551373167114292681810884802259536756821616494408472505484434887577332610920027894892073701484459040254789282901203420527272573656756822022686824329102121236392721529993270835141539040895664811330279765636795439946249054263613095459369174492167232003259841199719649341606230991206250515606643523463185949825410195337895187815584819456702626638716648122229767307970613255915499680865661738568676895327718252369275831082538542482891076382290423713630246292789162494103659314713208946647734605930056988061598082980390456269374634153368287854801971934507707907305767881446522476230282155642453944139041229043411064118241546740387628562418079420404776144536836277605602304965856075972926068687142473528805897263025989097555825103665544139314293130202695464225348145618207421036532181493919691810135650928926343522472078230013578039702743435410064347432867826918598727387782828370547040393196950768535392212277726192970249380521380942359710003402894885142800184304379164748838210478486950082755052956022550671573068261240987827905703825222670711957166714916072891819092047890226327309513322504500164260018470522315835591747477989893906941041317249803672730687258335542586284173323179275353301348244130144236226116264902996553285556586802986781044675372880664237492000713416123237547220808259698533776511706199242954108541155724393528445329364316564094093549988760593836042144894598755327658739319198672305336147976474633301990245694764207307307566342956043165140938182677061077522242044715605990409471967478312584916817096195523041822811318545994258392813291304983311515513653229852965230314785896305235299343682812378437328778994296255378121791054565776036823138146159148385709870874559847190389890161800817207634673456554839276950088787497247739632651014177450877661856561215136455664772471627006378210165734671089149766846794476401059381544029409836737557911206070452037992079598024265408511846058912602092825255612573400949401295622829071963825367198822173439184788580938636682984106671539450823831085762168628497798015269537795876954490425060375176392819125796732851006683097876314082263499446701697752261609597334845941242592098639512679360677902899633293614708015633022652282155250402605555460751394774596582105463348721866530284296649380530990369368793651671679091993323652970006617319086130436936302506760494262042293494057778413854917056643944617228016127221942573729452805755450483114626850502235328464777926909355908690054186694586884997499423034686453667445815693439226266552440028987684927389782766537535456286636619130176334665149585312296168950537087882672648841201993104973909766038816780678608742109133356591841067704777939363402137161404079726434247583167570684158810480921418023156463482076705490751195884978270619942633576965546628318760299620136533242963589564388724877399933985987540261577742609191963111577383569444296110059224398410100124561494522123676259941381827974021075969624344464547185120588498858944786961063683729087389752457126718044532599309926432296476070073303708001605059573288073194818452195365094840915070490708197779832965596125578105828124247105465930388782911237085000046386958308250658122863517082650726315499434583108216099570607632058528220773286738209841916923498351850267936435823027645752131610970686022513738545242537416057376460169933020562634292198885283394708306530629959714729002028344171252163880049506513256498246137057752213587039675635087485250207808536360593749729682258206956007720199811704594652057139319796339520315220659893353335294591000586238774868954363867560629946255343534879735528792308208619025703993318154077168874553920860854738954859158404725221280159023852139118960711330195546695718245425093485928090453250056000859765463394958239905067144093614033004865596900773036050891526670420177331017484292952888743740401098303295375847176777321356848385662392344913167687623734784601887897528960375261064136445165914613916287515244396679698453761358473996833485830017339709252923142582925667666688011569419825990254594511613125729406673685187509867824424508873542808354205832952979907951617397181189110767347958337735473215793987074802405202487159474367234616566673340403699146567320181968771960409204880374962947290260254244820676910578587117680304141623754315027314528751977235162388789434312407641516601378903370045634226023959937495003874647987644239742889805680191653143134644927561346034836802521652968662909829005786403835998691730367080105167483187429479782823055096479000010298857863011523014687953462778613469378379904124597326572256460357420846915453484967653001874889985056984970130687403197318529849259506333775967045299741235803982310390010246522580051456652014421360401195980015941661125280147136304522486265809514739710059680651125911471402997600131179185857239198585797321770989744164025080484715923247456424954064852972097646618774920373445456410537260411842347995463212863534000988511890872701158504053199460803387901361547594165728708554970972630723212301317060748147214495836307139483171908028638775718180909497934266255158977180468410323057456037396952208488019065175280419711393829653581513858538300855147770645263075556881563865912410868793047699561663034820521498072329933314401077632726089979617577412584135407035986725068160029460806149803110970044797899067376580217447718190271484901550158792748795355584707437536662579804172196022802467343095455076499166287788121823912372811812602925840326098967227154807927996686418010332703082895788835307774717693790020208235888082145482632682640689071838297623838139577361660193244457157418366779540945089637529179765081267188434401553816298248657364693710241983298280113713644639161402727848614269386961697414068206151275460053173342027708762598046116282320258701689603307516156878318457862709200854729942823754987808155998817892117254936268296930423195880687442161989386969038659442963048199417900484195085564250315566201625297830000933154615652565912920549053964078248329952649496142113084006645738042163486995889490347699620917338535339567884694869906021358208970442867405374599921864222287369903410484310895666719840068252609103169005453530962499781550727989508317403367052709172059216001216168848771846199488415295787208626588260738454423121137384313936515725087582571577729253541500942715199879035939365250775657304898192713226466537735905495161090827208938191287032381434234407162263685554138481307172813644538314149045163463655625766109337919211905392267975474085174819519129710338911283622255968000781250210292262135838665536879014874795928775479828255863686148825313127390760440459165853848088422404660335339284615749507221494492134217225469376152694045042261314222577176997632321114209478559866627045610903587401300172033857857258881424082235647078363953805591399802463172302951328540194798545866887089627982421654632077054821676868269676957867967992390790192878616479959686514246135299854236415144730942057751422387235273279832321479890731506835741036572998513277985953892311252778411487808076509915766652943845126850559674023216861376537295141655672418283343860614212073323402269971517401941467609395285076839125632270604571279156741604336181448672209134833409212637427611081555917626380142526011723513156097950297279413326280259979256909886796663970571742841102006214678471314935777763265394704885366448703486676907731923110535202559488177136024194688831324468740323053060580631637382408318137137351363713324671086510275885725232403963897116105042146608586305086529227579902623084696862186043370699783497295760015626649399280753989073872344872942672650962481278852277505013977412420820139628336069532391677597838363598802348305629315701635148458683889890577674617708991986718973498918830935913221128982301740620923047111565658437097582460262557342853641216573374489584664977779735550732577653078980453371845856706835771867225564930912127108626334495457651260375371289006552302203637393242444570414899950769954815923581502895726983228041725573751340158013003212163013638376499428611637580532290551072893962517359259325677851633238357929453299485880525794659657072039348019223793418347159088743276570234500175021162322354978317713729781723964237030808602171882450880673895471491239315341019301338032904945952587975233158207768228816818110103148244330874931615961203877876687463685955136251254520182234115673014012944679661787341435752244705200456855031871815573094633669309955876138734684887260522791817345628862398618463641011623041403124516511720456288551092629985930074150832998123154356875357410864656293303602929446913190999680138650978111840908893970977230219443618311475336492992066578605374152951269016913380526750961820544301482628724825757647038671814927445168097394395904910026721110043708217173800297050413400517195050622342750374314206715480714371774419368688237764129481896117566392171033717082246348632772269013534465852879343100720262553779748339350932735449054079031311307181215534684874639288912845712719501346165182943381480993104683298485951381190073929813169306365647730533157379164867674265740821957540566155014686848804271943140791568025797966447799232936291876771498492864466264948332116744431560221564066644776242643476586954393048428040646432001020588816511218337719955464775987289051422788520494484149170742684258020338652337299934129606924576983806414996202963586465510498941479755762101493569679269507237722223054471213892512197008137725942734607185213108535869748869129668784035320883834065902390136191939908383469277434373379964042006092438333188206881674752551731911483499490745432378815934586174785028997409769200951633727550910051694927015345340194423757073322997620664707560541753695681938246185018093939153036421349605697017242624643532544877168429254974933341783222828410464191878903240836547989124452909692328681046212467334308175668703531839375963022499423789402257771543113323040530038053388715978267558253696673639281694741076878211280129355217967982023490948057816537977935000451561266222984597247188396935111488738771385134841581425404562720119919962575938690326801307975215768585094512600353250157310547137332148939845613836147768828618058356350005819900342830867886634898780819872926555593603980410092081730591157106661916249480605125211534977533492048095798324062512598432697672892073438902521637204524289458858320848282889866715644752222742048682421775138399629480541782507013943548064536554046035893906644141808263359827229677143965918103825420072801886292933004772936015122549932354539844363232026414348225851229133808761830810091574561516216193699695557224002209997103640731073085485966852550893668272853007276280201315784413831844825376673167225254250471194655710240983831494081763426825343413413772852467758777139321705416841996004136123120103879170877461763392279810147763760528012820866370247176469720768356759375140879173834618125570043674550627684353581352851538087311664741001167038939352469648544297445984330392922119396093843529701183131382835205418419225532301645578736197483003701043394908786198872876271385869161481894292983786537263502866855272552293084469754083728542061368501262395978224282603454107515271637481307748996449366722901324468511323101873385874157030696720346929539100163634836482816680929506424590562249198853592438476087764535621283716370209582416198688527201806357551898868822207223650670279000390407692632827704548341432959497643598563949477223770744928807576285875180897545725305194366704194176022816291419846070288240747368547897310481541873636247125930174674427548825727292659661117149037788468350214812859142429686317988791498817774677936501707291577713794644362218636275720835252280875316484178968771681827941605879424960037902364167750665725411902585027257491795358611005610503572555568519712360498638193123107522860981764926002170706258884734720987884535110157409048916561289442325399429978918615792242720433417961827222564795914586236868112865479511886856007178908604855996702870402749366476691713835189165705511699386936228813346496391786353920114700443135710427035681358690993387737092196615989687170026325547833284891750328302177627013495253875647909154944693919597134916832073201513362726514689293721144008337113036866360421816806417066666164420696144311918560220358391187613650198583041635424992178310677925435565621938122286573076798803041424765236951374306295760243843358413608288923752237593552802737353731860899912626663347727209427176295452106729918371092706768695276453614866220233331327537269228131036574428034553856377594182763457298193337186484252345711319198694780954652845514023176975095029249971627759019148276830782659791834453946484221952145573044531876314427486683809226165490041006296675433031826960666328647798606584738639015822788693641841262429117052292353261461878169545954908037594130396063984645544918146763590503331307319729409721182570548489740776206852248035116207161186556205935786319469179717563681156454010543616423708997757194509854508765057630428957209545811386641738563559342930355950511510139557071495371438927918595270620734269324998336618369049339185567519802830259306607063136266115616293696119321876129538332701892268602669786539410988704993966834539273786291003516075721166929415046925203635986153593209586606184744163982297844707291814879715250947820205652276344092942736495262661070523912993481066748675515094511515138385041809618969567188166032978952482195464364346861989851578663235867740044198601392675006355413312155822161205533749864730676500631271236635608355572127543010764012048091329851061109238084151513796995644243361238815006219486502248570009031873320670387039025808505521429268291295813628925840667885022303475219511749472339088141266423256489675874403099213967176605398328176171375646168540826101726374358484937419146138309959310974054081371202040935313413470534591913081284821599625820679090755582299740780860965897012794401632661988550687456635443931398678609342391451876382478570702920921402126111676810116904172386698980832072425670166225290402566144611515307117023789887448150985117991900315446546452962660816796768571809980704846429644711693709239954627247065074091297051281508208488743016825968740904263295868732662616423811694573570384417309699292860190674466734798108136181943064867157585249070814567628141540226886010781162525501727558913989874091178564683587753097296485990526053606873929409388416204877699723138220738893945646268487687966333857644312328503046041447486834257141868021390871904990484103889454901811728005968214001961530096323614560937903931097337800879312902679046734918120379683807481925204008854274535581491778733703763640907840179592202010853089937124223122903618194377184232569300783981288257038948449063793064469717973655157419572514046929291298687194798757741901652801741796313576772065929072419510228280740412765407898155373794061595901804058272993254853226429293188797983391960536764271191067501983074189229647801409119588380132649844832513436880652457643131778854369301574630053703214440009690080796767915417099949740695570824309300179433788844156469075385237070890726295211408304859565113228073939246373915787587701942663253568310713790881603872615782150674557405353544875874852074026099547558035105456170826735069792986547640162020807700169912675943220312138051219034699350454629256416692512529623302406812160802514767216910365327158366711122902851535323356422685540772751889629761544755988627780691236725956568320449329277178896810418874879488065469573136553373498565777977597160554160847976686132072973543552359268098807705914376004405408178352744031397542262178110727540656542169038437445764902740909197643030883290696836584463529812639423696038801694777225313429019607433628469710475493136896882701174952167021246983354373860584315372013565360530669871222421339759793302207295060439202855611991538020600998172363042356704431784937246910648794686250934562745410160222582377876108695912438284967985869281981243788308147045914621947435456761122174140088641851020772729448555511110409604138350794099947315883642667807984507507045803731253964149029843185257214820713521477517617367443735772548346218592675135436473859689067880329347317045744659447557982447233891975046386963480994367497604967971820864248350014118446177031638174947631054716704461998874472372558549265668204757424499560749276269978330400691720418591851475716715043669763799641515880823147905333939004996533236266177353698853330998423975707488740410941473344852468176714840806599055099110358592670640376978838994879599931810534252341440297256512580246262365002008598362903420202394195085608459406343582542562490595355278403371233790082958489635856132612448367877767447531375213180678959421220301406985972352788220623711390278975626108043339271801374654140478376981718207538007291795518563846145546504362092285367906753047243830779384707109573182625646950195185095548727124907173468836486346808688990135729536291105357050834703360789986960645042278305500385211438119829965945937560342978764061592486776191320467736211064568065944499524583565725514769812597426933729734212442531246735388494220816325975070798026821709279898214028273858469972712236423825339279385059516777565675149118084355789900673312970562638272187917398467610018123564873503861252695450614806037691515896072215955175751970929049267675422157064970723223732858793689436935585052561603836667884595562740761181219494773880104925926459190474792512634109526193550257497601050893195605142092740265756637676948874737343056649362334974404255461140123519074910010617578251536666976299752559922205516981849737217085049215410667943359498285405595997259262883825504594283664827474620793080679590755004789735946262631589772514147793477779957728147605464844958399718140400242738356203052326820499405212546651057650551087255286997688409114774221400033286970971922828743580647385409639568575702268853437299179751937211525056535461915899319484568547097083410292228156446144456073828144870998574444015619988262253457567233900654863839643347808488211528356483339197920039927290344265263914609315576741131975254544842607434667628011846478010113667256781621973704321873965966966026716780335182470822321895163604535981030389577918182163777020656065321330114456121983726435542722416532130852088373138623652351546323535440392363223778956087969601716310455016038858583403260314548049975905798569204113180811010885888756279823010326504596083907958087643088252282482023815646699796318941642001961619966163562673031773077204724159121266901870394799657300958712520773657118551050756844101396774625863258647786306391757768830660191844934375736645260415431250534538886595772636434122806760547302494735291425659348527041858670147578671392428141571515828138391105400423006817675634450265724743399428757777521352316255964940535080317579069024053489550903720166732856962662825972247593572266705445763234923851199519332020315577987751658452228190442282248275019734068974619557506955255939132894319445935113015010393195417332568879603586062421643935561984781849155761874849834503765674228267817356046013949238967086124643208481271953252837053634019677433239992016270858848889607619340551208129326156634988977625946199048664827963650580002300195096186847149820459186831978585032614913771220327020912712627950161200186588658917352553353682513422246151979530012036437344526458280026171649112487760083852637227473217564970104459039154477645919810428658324237105526186761723986493479629434485813011151817375872199711134070202592626075553541346029749390246746878957897730801240425724260021790845007350761424085166038676849293150222863336357056795978009338133821123876218590823907617356930550167995409837242738246191348692745197069279388031885832202663336413853804055497590385034527493414433609052385113815235383592352986171266384351328953959779700564142967737370987213694438593861866074905712592145170869321346417232604673264543831954896418895178748316344191309262893405283018421271409141268012542258300269978465410444547376618272161271115146894011469678232726607254671703779156366615193516995377295474345261177892511360103056507386894792878891695006536315373006560759097967521226711506731807361184064359472008440881724553252163351062151552320500493981811575303476575964161388982492307465105132136780009013023946042271002669189838168269888518686025170987698483376116376368463494954006501520569118451629282466369221234527541565370524602739408504070585582346201239069594321327856884400214116425909805349013571980540114227050862872377536397442717190778770587647595047823430003719008456122922245425377755121039697024165754518105246416113974795361108034866549260052175508901356359214039345256723261007537172404947341284532894131196872222937590886424134442938026816230715320241536379599897070210113569452579034172690943007509910320077968306669792420294412242792903544387891903702342270831739166827581403315323972619115852048191845644773680780226665508014428262537551504440478318303695201522966755790826494456672529593492852850179364341560793202015858873255472875342942963096071867072018072430308057998163402484520521150635152422022636202509269236726203712151076684055696551677505158775341842719845369016010203578813520391997470895906744737140932622281440031005261767011926501889475062314484189160654114789613493486492151530066957874005945091917450170211729219290352239461952553504158731199671021256360508264966477917184766936250773666401530533538784339527639601669153477832657964826904939632521921285191086522699871673890591199722343669150023537255659067728052705638239190238822221933765481883229409993253618939979885398421467621164427294205656163677059008988713945355626163517117901692677690068685513645290618000444751026619154930937248123532729808594132266914080654216084924136515835887986883394021851173926660870163356324724385531899445057010539945778735156925566463140642618936118602846638258797142688868932937586276609605919976104246569345716222094790676842152277053882057978758171249161322139987865371462026971869665732712327439060817738389422709841232051533451263857123204217945043562107949383388689560657202230458636629786059730726761771306085200888705504548459707999993943684013978008785961206438112870196476139739652016491737092696946210339644743825770501234998770035519309338026931904216954300337562740407370722076995626214844910641364562414422012474854030486260781451023392970532963882714789825370059120309774137435255157523078324529413033332695622343746041059570092203809226692927937078125818289397566338509245334236478301941472179987250032196467251721547009330617685604785619375330353361905527474833258543855704433097302355021837122262413234475846785744223796799416234069934451358074371266812381503607980016602595990249126008337336929144299618944489471039364255194388606481930598741141841752949124539181180704318934219693344142761497114909707820423531781300860524823291963687371258953486494953825978996862879632754272508663368701100537143566023003029199210729524388124260401342134508052204387856620435099760296235178410373534407692299934692116237427421397461113500065035796648213525524513491101993315196743731530802943260776521479315946653628521736017690191110612293951041775053511656872795175013115231451583516306222628929124787586379292947951985023625389153390530872276831490616085282554141949994495905378828528869092607821674179322517191447954222357549000395964994041960969092669692098483107598864814440121491807862113526728035938650092221443381633929681394952178705464138619436126387816227695206874849098259462802527541327180247515292106630995516429719182033495169260248304482956868661683920546440651609174655183720268702252087147856437804551820154209732658447759819142658109046277654748137821806290986692680338366347258251356220928577001237951668548959785509617990925734441511615354224131248921672377262324235178950755556090961953753466407605270119977925879299500647758898454496453227962438187171362600640229972131159268457095031423043089406100913834932469504618324745174306307144814640331495447199766434732447261526500903355841047946876448775495887640015833773764320792804287173585627886409924062257223051189849586004951909229283001675777636346513373767205282703527986639527947959754339475747307826744411261117621900042691874171313437922333205369170256390458084045719845558725086508903005062092589410492307707407942103866977872220757077761877170001985205608585384662923456005495574822023488151011172608506354949776048805638701255710032796710064835042863111887807902352340909292239549972571058239621841142142419171772742281655909915259106314027354595749251814997029418445378021919414049796942862719053674385258081974884718178504018661692147544567426055094422947566661468771706354062262004661907584462795788960011111883526990646448515406806782647374996726063154729836266886839043066927233521741269606953169181054009832121323770443708280945188544098080551879397336807584995162582336410076439763691422792860220563138338709306341610565541168888604813968583581422283205598156122357688371907845388176255015615004631149381884082668623888842083252245128775450170587802871920245391499927542575576213421439277031732287044131512190791924268130791059747116342223292304723343117105068926249851114327699672773111594510874133231388142244892180335730375046756237684684315142834600004222368371963056800190131887688137688101986720129797921822709476934822680968840536012777547889905104870457512201567234918191830390633709797685241793309747187344557128992542463961603249047773854208592136818855857531375500482963308917386759462239714345251284236545301217809666101475979079527296251587197203093237649332459455354480385718408505022898586064922016427585047194092308405609140126731684318316863991923605002965174699613391083531445934307312759999383883176094097706063257900545629895406637805871897701732391125331898120466714817916432477134146652880145479260630930839264076724923504226148057434978295631156878079429018032372411254595219606518842636106447720273348624136947219799395117051053403556120397771878761183310570198780995112382136459568208239543316986054341352197273505201858464056501551108654021542067076330545404447821289047948825791120011779314898132928660747501848826427064826458503856803698217238748097592441360724542654075369064179441592588039053545675121824200323418198056694423423955952629839804035956686070430831967402970559395034657365790321311946804385880281850253457636284974127084677939202085012697189644014729737620359301820969716516339803904160524004468521743343686416339334857495271855562291185859860930774359201832349462288959658535512583981531231194615503882001156910976440690822209655415070618065367167120883065580029498560910963311926596071797758670954069402061621716565384906963253265374337905543032588847434544220893007009444507172436580912242013862882165573705326644674032023284907219812839934564022072200254540013467027979634743424518334161485059426533402598058781604713965292987708716799614733096155686816821992597008126525346999277887223546449164282498819696263458426490552049432948240257672009229754203457112051597964958706638061462496300378590571763299293637151429794266588679916800498829682536332527046764304871450035493533727177560075336690937836788560192124036969115020056906495483008243974510700470584244469626630853150839692539884036733400585613874056817521870574997513844036131973067630406849608149525540441886935116180334804241616725447510404807788180344600989815742582251225239919701881104701210737856371339420326941348746866969002110438159817102920620747190561925581033802686847499027492474400557685161706636702101077963119247571788450486717790358996650585516101582128859961131289801660085296908203869788900447172710954947522424581988353385586804530190894636848454830207181319049385639275797337389917550488815029605439427831982227311633539789740950143096936687850083805637503239386915726735795165300263961609688914600685958262347540968881825736689917373401163269324730156155235071437792018738075828140215776092736607600078742207178539885654391667399567004986266183973518567007782384085217791262585720564161975338635991202485787087608265914036424862920873141081353720774232685847773956846649421983730298396311403120872046156351521335275498577693126642880718162615460838857349629562542579181235242469149976294485828496077999109106025245021991353978397912653446039547086392514831576030697063921497738924514392707478919234394660932317405220569011556969125016120317877521906160021754356150088013142985614600176772181619827179672223240025822058103022760910008022196490764862830697099553956211352703342152071742368495947133716150322550419437091646717306585191284190556972629636702633674537647533871376054479154378198755565030862732497655571679786751736611605793126659125435172799115196799138234356602730731693657555629000048018171987833045731327784197746531515865817613941535999143250792607230732213219851675818082738257785165734437409701286308730220803491894426879686458939178526777558780407010044673116930013867089777705446332411245511660386223505806861764246040643017014276363373263855921436212509145891073540471728272178846644428993307645203203366976518919228337125532507562058873727840744484744262911980872328493372198411175250171494442588122487811821679461509436567479177086274790474572000175401286950497137518831889045946939003493539067247529318108283311691749630159182941383893831791538934006885005222322147054397564034074865560227459350105850302204025476322737136909763982223038728503411582167202839453584987548858612230813226733256184176883180446166016247895221414028534840931087522528936538229382654187982242076567895791635083239706590550227747812551037615611446976666471694625199842941989679208462793622625578550487256726857507447550790513745651132649850013315373282423744333766386466142428256847267613492235177086465136434802631113260296272046342151158635106558536256347206495159930873177853556012995338103590705278801972823291009908072835894322892883300394242583371871732836186081391032488522289682916498140568056920824053917394723927321269417402740883196156614261574365596821964302672527299849141046554533118294396961849003159787757895531762618915557384861847294063489875892647032979389227386247573703816658341649178225541823015354825035724235726784858475911424000378953420990276372146444093274794534906607683989229220298174937511161293039355498045780594306496751941383580994728147052840635256929640350421143801273165108246577021767957805126259945573188906089208055258184028462928670431513665908937997747368940324546194530866393875133173185882139980254581820172812626450818053802463483040838268807557604960552612968901655264199927324473537486654824728793224797596574588075714726774555681705127228624929198236443181585919203234370225065707131591893923619439855778967228939193085664982387766135562322585997008972841337498426002139293195048342016907053878404294382357476789600182313985369344578957011363445574189042166413776919335855088604442685937653176443452671448925022101077737754948682674891643547873318783000914091133346933972886804907681273841117274865527922972734621822617264957773640008737602530903892545954683747836307312422494068305757939666686208387184378220825599225632055978746881350903643169610252570146960575797620642661685027435277009551908445212439344897415305484726605007164737047615210636268783590284117971119283657191206952008877836972745771968957658633352133901693252628845726067966165611352701256628777607668523328543110005268795344315321409090310134905502881015139705557337989538768620034206953727462923000204679995311430586759474453492427235596004635147831735802640499722951036185855577015986461176060144356201422238703013864587877277622373352388834910114292676547057537957140115362269065393581536816822891412281381593337435591031759122500630469384558796256963711501980754947014060515618133940506068924343494696922502968983730011718768659787306021913475688442369763583944222556393603789754632051657221804819619356078417604763237250811630046534905823675170713109757864961151076941364505240466674366117286628609261670563281748613185518822560330907031181584504847092200308910724294602806041190369165280058883836411458529579331020391066330347581801531494639984313852223517908745383050710679276815773579356639363450090849323670528816816176188035979835785037208584825713124824308696754893656542131366248374639079822334151081322221105986838138308409943537936453047958574866926813476469904820637940023998188094118897457570344380569033171669348613587324767717538467094767162870053916033351454892655018478247062281631828761465548789639148340921375271672436381164521289389860311917786997731151265993274301890021926616806741469640458798380309498736082875203127527765686024986603624336462405357608386600589967397339486793317569314048428467035041398291824444480426663520680649837629641892458371327925841733480790750861750818635105955453549034541849226833441763345154116729005756694093121067220335468988585742975152613993051058276810991218315102143329205898950242502210278601077923450419567382930781758858733693758456283510538348924180657666874816273620969523445148354305539214931833857138456374552831079589438342770331970868239218933300881232560588148524850374982891897000479681820551909448184582206100328975409045191660393738815419909889867240247470670033396988629009483942585778276379268138037521487611576331577597581545911188813965192098140720986055527063161643554126276890838795739143776910027860231270015615610501595810059733758108552567973445145215719296810499829378831632848160795567147948132617461180201934641251755218676660696868400892729556302142789924340968106343471681538985475678546336369135020404924293410283879827733085607458053299266512487348230012455052492566593587049861945813512132194894116952539357933667461686794989048919016517794660127480439035812257177499830723074343714923210996251683126561570771373207786180185447969861698471548421905458446921244641066791247447713875453415058797635067198624208858578231723040793905568730754455571864131514445000784186877727924298132709777610570685551492635528317670071582593737387151823744072494079974303187015103065560824212168961005361802276766033281434650662663695728020536343962677505781084065021856497682156015665836378320480738953630545802106006943574882985045680087639157316079021725868409053302368863911946693320238534849301376128974386740037569226097319902892605614878099353540361460898488003946994666488332284331757027788841150187158598659552999569666557397671059325439356493542888326541910823724553355923072202355292565883007373299279339479651873876460101684390755546146383233488583219951270588845853331873456547612471015829013948397875288140367237975810889799620770645231450993930953008672338592138709592920447873460440678030528404297054926385668008142703702396117795266707912612619879702661316146070931523572492864470863256277375370946716624157521057127632242723719738761034923983761636960313792930056061651808819618473796997585813950477664696584871039759592590079432500160393448241028907345036692021166120530946355891490827335005909548647870656435634088497284988320489636048375792742426643334646761204837853997017859128912574807633778276154161049197097367571525170583201802885934665900107310054416106019977882931448801062638377293152970238673707842351671825037689266128278693936164026455663180436332168732964039206609292137186702076966685104139839605703228774665540045423094809507831138056817179214401669371729558118728232615601860413859000407971531002249008408833073620674924971862352305802847589448335335931460188153597332039245924237185383576828494005780664228567327822351134495527808597662829146790707476311993862193920894597132017395933335467167732800122876062731304733553228860584205004777853615767805859601431857176840570371587712638680145116220797422268988835683291797369083770387262663463740985222874990211515219846243831432005149416937330569698178622493962057492510188358890903689720872642724244882570521638499321526661450258641099704446995409805597292165688638081575028715443894295941963228137884631492878654324983689361002165894639972695584144576416328052171404720695693767553909726835603835230559778732841704025411330106249332235484178520063010015346456766015958349036827041563932689961907318185569486403808775527159888578230291198350354667345786849117868943904175470774410924358432121580095986625626967875357158507270673795208186481600722795367042965935796869210674158201746318714739039509036541540850487482833650970792538286415974126974045348334790507480189879127639866659595709137142540363824312136186444853114126601252910224228367843942398967143576689759702726400920010704527034030230831463404331825927132161767739905968717357298977941292693909975710592482875688872485432511848071013177050984850022714657005170972258782422282423874101876610783126278916719628974401310713256266484071018949718948495800516096860142277022154725542584342126115403739744198147908098299033088746477156228193056171363618449720724760132367670983372327747940330588585802537767273778163209170692479956613428479158979473476188205083761051439466539470431337862941399426645199018507143809214983393421653691425090609881360000365779704739706273258003454596218545297558168856310445963254374914963744967023659106888602468509251628318711007083578152017582194920040851708594912279471044702984283114367963766642517251460243942176737254542007013915847722909424252632428187750354017289797136890575450573985755178714583232622946782112790679981323957219551680989347295885596112482469828058021076469138866386778908221037459573835333774634227349267287673222963949344314486486949002243146944803404476720938582977748737903164500631915147044439136795784412233203760369879379794616947787780573929583285286329338061764559410695710895153365921705549119082752014063802620708407771825077865747293279042769428711430011480566866826681373358408381322946890935919949145568268652162768893483062253414004371090207531986719908865269674331323670622633879309282057284736709942491533861836301315411841265363270517627151395478257533373635216149744937310889509786506557851489463274761155836822299091166136396126955107176187104728241664303718086917988814761565332979175294407754105383096966557753334328360073940862702116948268278039163845014243582778654377228956635475239486630315720893198055553762340587306640638284064509836764502106773187904694115080272921265104241851848208244694657466503844915815498580945892246740445826416159565604249326202254784666126906453325516478585610535609893980266496875352012715696196668394766768540585566831621681698060119303902061248380880870883898856796286702721466877440020187979731023148634543152269225720570365580529411366223465574934802808232070855749351304679445523398934971463099966940502540536898189479734816659245685918297222880653638969503808534123509520946274918880258661465275229142269184052338514804184128286233737820384458135781436258071985148501912919362130696818551846761234203874219254226919048207527349377271550402304014701981952545262484264363405801002931710815842538701761971347575269010494914755257015174805416919709217135390254008651310575185171366244612698965353178204857405151360899249300834597599005354230248403619157717665380399353632926350429540936459443113294334915605796764793826631689108881657980394088072057747899556729596922964831955343934084667382710556872267466506295906308677072039588126778562692186132771641045251881226461483490859448636092861180332380706739821792757990320745245116874503083814476210913125728231485290550115092485888165816484635312019843610880224054388940621078505345855336742959836889027417421148046296558905118083954452611640465192632869967585734786719413880884543810648515360571634504717392851818723681900314185994830847188155838395859898698593839573366200790309937952267163892926231872729002850503911539796396815166485278863133399370089990637937440159912523064716639404062581729342330730835590262706349715963214799252789100532562736269038664459647935568399645405413792119675472719587651365378489223421317129966022149271055574535773276559782526934642332245735894794353471024878595305617581160525022395821763940532550646085250899138798048735557263533186875012238772796635495246159290039975351216917029072602228698465737045261218420100618038060822984264905875982959495826223052899009512350834647843664103061555788450223362107906816101250781054576084263830432837844713279795305575648554774673428713744408156749119867773613657426479912409829593736401168666146680202880517913652148215504347312795776107245206488625033642153954013607511388527503945218543843287675660070723141545470211202574670933947042579437168387276091745640282593359543211376390520419576474930509996881952390975764497790545624792690763590212012616939297118476300002419073587757523244090012409753885684398731329365885353459013122433656558301173735590465911910244936509499691667855209969771174117375376862218248324762626403264149375760124967327406287614564283858806256440393781944499265247238304598009233868506015529619808867245487912792714736209019322596049398191592173093586232342039975895277276484447787676894741145578465294297046415501464250196304086663971062427494628918951011981782307323514631036572092540602500962891355347082478270878500107569053042354428093171499802183573849223345544525109301967190422107892309050269672578105344129493399977844881932332357077117445390244939397566312358064414273005505462581344314569886430480830702393083054150757958548503164528228341555582293029766180984366054216359848559164180702157465001740985593086799297318916557628432727155663526108637772881112042251749689366497265965131730621997671893372885115464979175542288638484831401647910037579606532702883090206394335513706212976476846977336452321456219405126394483415824241503124374724836947754395923938169244923426599912517444923237583564137701758280222550189075700557014128558239499983103158893056361347225517201047142916252195996841054103465950683081502635890608945789528053177813917887103940051623013569107207592363639019090824347320961440606130480489656396591038672225226347540195880377563154426350298541009561644837110233675459788421836591874502332887422630678697778844173529596864849936337586822908390950848970072485108302660603547102441968712715964469612312750899139613430187382907334239883330077293371277786031262585357538687590503862999947858830605888082770263555734982152506612382276401842051463896750315637168864124467998241985378232771817839238652505317029486065310649401136005349053815501659316081602592519982562975825712275118469761219426912528462995382499687140934422871573227296553423931275559067426401679909398193009014822705809485951288154756219717742950450934725380813475317964809430278243049870448638812483360626671110325509363724746851583858782636458790316684774700061263939675820396536706700241305931565209446251482016422379030122758924774330949206514556578055443865886370623775346568966674923309588703820362646441097108548476676449587217853236653109910100417128732445816385364282023977171427980039185259437277356886517018047119906318251511314713183419684526904890506865372275506842475679551226652835296521907722648978896985637718563012530039811888696699913831980608971059058688430972578339865966530551994498252445875679660107968192668529389181356915562507161937837423218617897822827409769594533260502971525633090247822586293986185794694349962565757559643767717339563462959450464534872326326589256976872238647810536859560645847420297653104422897158100770861268919232688455911298463602488392652663800092091406464323573818075009427773625114380070136746367233240430551684629096962751203436942229239909582295807589219309774210933788116548205066301973954529443365582574269044294073045499378292460683859135913603322459007228730188040278419684691950953570027601365849711251961206256228939341620329128419939971738128050037162661103264082770474696860801291545961879814562406449601972410538589225082942253403598113676437907067908416093845726224598164582942323148452813377027934235253381656265801128842142866020569153945019157074986096910003942370376267387788921058104215378573274580248130524804088039780195574929236890126636678068769481030463722163286064107879483726682998249651611134804351195747401248613259681435524372965117117094307436614147142406326132374361143955552861470007936791760444832088894416906236603407663403117256246889962478538818917836720922073475907113357702866070375743171627291044299479137094191310811797494094347845168556777576344372123485979541021571452156384835465290199273809485522470762370035194639478858547063612022487436608352766651636754044780475615462316641004487330842244641209050884608396318468358276332770111397486961259666136690142684879162267401994818864938194407142824441994589082260228271979382112470647445916566322343694860270885746005152571640212848468186681698521694893505764633129597867269494627665611718343768449706202569374543599716270536258824762633539321701034335643083967720177679474418410635742992535743434188624492936862297603888787975968496571648065928577110113271603843032065809294661588902540501944363327812141424481407037447607352208746448838722586442148592194333908472895636341029195458926182422664092614917263736512315049965696558263951794877356494314790698982592363282649554765854474234737206816487360242154686618771600186383087094915242793413160023886602693290178954862750152978355614758611178654874008899982674580748112381640445870719672023716823800891649096212717654229854210550788092958550419308138997075309441758418776597285727298812762542361210013875792385850113684279241437643564835772351465883309240983021457552890902819058360382182588083478234307264311674808007288750366423641403719267302016169397967078783258672789949646711450178051756271433378194237832043193056496117540718840490579366555651510428622325186309202693558697442044616075108377315980033066555042961239540061100832360506472673686601390459214992415801414381053874549147796108591550251039843642156137716384492038590964363102968072051423335140850228882140915625965933404500731517394493484681069826658790765934265403323761903902087933579985692617396588868172471209908802264960033330651941363662311247732987374965930828413208990926071597387685201945212433504366952042494655803401527633884676601640965347502059004659686508063471473904786774123680939846931997437637344739489679374633264069475558852384812692946144647396991903188780255337966470341151699138679540343380795380676573300503935341684523159253492767603303843658645741156305319088220398614787902523332219315143451183744860279749352286168596392259547890167523239506965449273195982548201724018268190362018656054921848937236593529750527038351849420709193795885112839179015182063462584910124242613186603049327520083333649404697330336155670800525920976024041403923625647576184487120835299423691590171104578851621561597514680517507324863876429441845653812166292887940267728969617819050428117458727916243869914100607990315042404421374655914835877241542735251132809909076490240882801379586259980176170539967976475905578598007603431695028270792052641365653080145471708212400304828032763809484704952489189234185655591785380105052877798929828684271150827343823919562328496961111289147455491288554696189143776691803108365933731257930385893523083078090783465542192514678646546806933140200170245798465167664570932097755306072195396743668752058228222632410689436154204290734897403694907150594490075494433613541124441541466114305110804459488814199154086723657495968444504242394004178873654284607712152297677208860575047887250171093351700495106562495881324221445886905952823033423920075737671988268030532042547088648735896478104124966065684320137541586295906025059633339016521735196219875661979504552377585595087406795656885658509741405409998189578664915807014981934501648062685322890640146286526424248259605616977694345343081173563519007829265789567683799904792315201828876735161886564135815728209831107107428647304538642449294322468722657052509693051735942678272116141267751806989153785294734523995588881147598047310153067750567845108326760259536845203430023386363204556810853439155138667539390417124617445954273091765012552145947674403298095476917756448049644624062458096706141534337437399330040648059357992988908399072466741063725739150298484374602417909159363797158765946870342781506987743367868297746371598286031237519653803545736393170735646173032871166314599830589595640364499699227722778291099648764705652290776169968152844785393670101603504608469062646094672065372709506839480692017560285293109273578688883227503966175817135324497233969153922232531438129479016018616235136317002368034337583604608688706538208617567176387068903741855912142917791241521883741726120995908613211101931551409292977429508698229647655114267960805043910385540280069954722600253224329080774916718449945799910066554903289871672682032110210086785712476795390789146450719187026708539231998408061709762432606956910296071120621450474292038349392993447007909194994930011818309933062537846100399010729760495456835689985889942818208128705759894692545204717798320744701151216218279604400915432684013944010464327867745307824272401116746340678958777974246797235199788939437016743053774787029860991692367324892667038820623179730207046365085351118780101197728415213003271432707339501968117231375460923046589338709246540470520290937574468363392242540130862458444835687217497119137353342974309635855123626538255406096482158118641159151547799473107825480250662649528827294165541397643702751708017147882432975747950870445759267437025557034681317362896243767930915857843484680407063123571203510222759084357060558021068544331211264899603903554408261773251084913176804351954869676273761287331327352789598353457750581404201273494915246601058811726982139226046545591530917447029588316932398247610448336090579761290490998802835119757754182269209170882595484537725096019837531854630674085155697420706597019868596392472127534500431557851569935537611008710425558528224393965728286958148352238876794525359828222729964712333202101180118475460926993816783141704430607562918878347526873543208844482192478319951158421255807276577944467788561856069859689693063102493574213408254596826197996974824024099907416406391940815702239459465105324692153169914551943745274531752859515338395403427799692672990489130867160440630302470226565913944602454502787932854906690401542375195478013622501231264181487736456446090817381712594692062178788722331166929178112095853492494020523668940089908774721217427386130650288055075553398893094474691907452682277357652842174090012095295553198491230492728122696126722023163587581015442346147791272488710626997204118941816850628695471389544567275374308495722199883203107586307273179962177947623912989161959337378169443958788576817348534628531567468345944705040806188296887793874724823363785162273265935886798547860129640371218226553224928600488109749547709851741644750438406483701843125135689214988254621373147854030633175898360046428214852066499895032419423292693179774959592266551617479435586272780294824774510784462095441574149463352157330519957481173848828752317910398795772551954045519544936889267037780523096816067597694798542233710352034591150827094844898175635097280878071825791251829152949500913922046693639307148883100877668318706679662002662265995157479258395822323853467836918698432322249781953376901291846932691415971328036196698705117365183781174693082531037744409491669882968782051526836574502899381739297209135218565616899056522392880672600862625460417167665671655707734840593094186241418100793646425594074141116691825262035905373681058742338919979143470895196043879360820406052551001149460303894630778966594921278363705329660858596817933277253489428211455580103112471079520743898265599195485675270360911241453208952646282800886313513168576553261553025029896395731610242807473481850250410953400565586665038705091814611663232283744004622972223399945262330823628798948276563555240671783514761963920917784543337706171192042256713354767902310073338036814747862516875722141013426917586113791994197679052314725797755807166526279727761790893220120120461072648934333650636159895847314487209523551342985068537036510212751590307681346322583987065343335284802940824635094694086207402828969525260209516744275673130129965553944703754027996534052583068173301736431768107063646213953969722435813383443094009830000493666425025118291996669090095864372919744528244490725644766484270029258863792357333887813915879523248247207496690700511633707711800743710362351670539477344109736401580761014858471239419942529134104548491004825927585671017354612643439209236587134655652265834237279147775173837253942456095686914655680692388752142641398787748988341752527018708563668901111854812880775497720304886998538573623220061783002990681421980570759412368366039220402904190194726946478340814731614614082415943671839739302999690106939580849045874286723004855504413092065453430721737590109851970609491862479138378202876724272170020136088752270317079862437453637018008207856394096054352358815345307035868177973092888520222378716513674697427257168150014511774132702741134988532917393288664733272943318366806029006444242632486602029397706503081873089831117623906418990217015549285363670253515853609597312222415442913314178832712618095847947053553410648155159070722060475677709390620112151520031340411880689953879875417143237010956931136347181995714034439563547656247706380383484077659853993357711893053714413779014597392232436091793728452165399531740651576676027037060861025945814164798990736775754184724482522205192121910808753747184782511120726719792068953151025703493464460916330970044651382174375401109481981932418712822671025328044643686589800849565590844737338389577962536556233651800337379270645926404831479752371650687049370270325666997056969123933503810025949356430359568762120123051202906223106595258406476972582195607288571025975165959978951144628872258772417534786018655451278253685041024546929133461262879778087828942261028009891848143969379526979866470115064279285560658800883832467315050222845304139956332027990889211122680067301478794874524037337676345172042167183059824968363939018169615219744824991142207255533669245487127437348592329406550730400562006662211484042786142082493308140335956465299919693549576513733542036797544688611218446309706369578010867667897383119829486196672171865400391519004367841660147497697496491793761378681334434400606804009587192908593083740817938802762387763735588361224647823410692860145008489765551962074211910779002160541016027752825129609539615754581095895542335769953415000621020872470602218480891548774021544979758293170667921202277232919025988635630298307054703152177121535188946328005513532492749223774537169477187476324631421740577303207519306144563218363672763040835221339375298062994443064110643794976799080950448685331180357200566850370700508839707155672073382495325990839469918185121324067639867198291835320835512262999372178313638615891137035528983716605157371116044779515882704003992625712030394885251105958450696849858925246405215528872595584441523437022657783224697181306631252607592545575746964792708014857861068003441472620810206531766714737044625276889546136834788166444936415730791731688999625591377527334879088672921679245607292838346195631111879561764935624574835453892438411641522463524800269344333983833465021827964279802562237467094809294336538849075045766587673541754619463240745252404103713858173118590315798882333386962768001152257428049601827798043001890565363619137450665046290919484447880067676252451895070700051140324446105027297867134032818812268603211362305712077357037198630324372642895796277843213451663984626683280277318258453909294403400337726520495907179987691305194107146845678920168527187252429169989064656639119301936621190422008807304784545527292725303775628105081337273683171609038028114218698434874884927350486344430991454406567830006542373902952726093287370818308373159596573925122881869347942507570088197044535105295045013224718185516956366371525426792092302770844763953776530764419860867205695547530830732346547180546897088734806087596589490825952332998636572068134522036202762618146214541157861542538395796501390180089222353416018708636085575711300963738045256392920687564430091166948201187320553386244855468966755947482327769042575901046398004421186961768702255296206751688670717443945482779770173552527551126483408272489599426265358442108068377442093002349576071299686470915628289707320989422818758000575975675311911706683856304176347620484792278540097498313999528317927075036578092618299180211314880662659018778778966669941146045337702112713586841302196008425349339342012364352362874540874591339984471161450413247926303043460470636110394819482048869200662638233308914734941069804320016197314345553169858312600834857005940156483118764196117180963148922198054487480620706592414519444292563144594078196570338922019080968930972446940492913025909026544546715184992698609784661640401323217106817442165576466525092064825098599487518850156336222924435246867258309435994198651092765094752045727054940729752532032424142580139287427680070994158683114256966260361922201086617483189118713055410693577982928505091233800161052770568327813016979593385694964629107825632938185411224620045000869179936983660677900472814786424184465952158877493859799506798656232793711716142493588177315653237439932941571204484252992939167456601575639377153688505489489434545769278050929485351973358728012017195364760074056127182417200715621003719429354418884485672702343168160868048477616976337035271469657739013048058033105518087434728485897981452084206459734650606115595535723363254242796244327668162758077261094482433887414009590909473903177833723637763562254422699126587135559437408335326072581939980647499227487826579719635821940384177668422542774926866684410477310041318519689097576472490775101548382661805606280742568485670052750050523396514268357747806122682093869168676013345163224872505780623189137906164993183581972391981969893883445869588516259889033568932202858000077563393058948628394038403063433646041656066366746668919818919983583885953178300981503948146544427681366133175373542352793914920505153693236123236228026667884886256028423187628685499471503933702702426726039516178242416458113303295933164050771037665167507620272358338237343780401580137708304880813206540236613858233241796353388459241642984596019241202656464545274180353473491669618189381849543357157352640968701877926066235883939509591313153929161093709383434487651486068065082980119641428196090206372955433931927467497484915480889103327230197607815847754096024703931318246258388975283815687836974599847510334605673938679496950001844485560665871949138077135274765645552915571413331248980475580578018077453795335941079002301572344316989735163753646187239754657883978459201232506402183676183657013130744736422212416227734293918199797756767744559877342494787312338376204244876947008530495293837188777044277955837051072072189204647863709738608271116294641389125381661079188781089777660787953768914546449173095249752123637938082450374541580687371515364628341179290788234128501738410674032327432264963437771192986780067173966100159733733726975859771802000914211632183552089624519320476355207416512197254991238834013281731680757903027864011133601179514770925471313496374946128404043486421040141862360736137122397023129314333074448655162502376607079119938568318891086559416505425207318522189814292203408312740397597277096436817124986984720517641488720249938658822058818982094470001300584859066744524544707128069325747075268310237389146663285668011203226078291468955929981131769203044226636099446069072813178965417929789522744318072048871136977542187860680245500682053074921092870151848789217220145280741247677194148643010641915161854327373734926250470896782070297330154707560875397775552572345934181738277151977300242340952084700623259385058255220755135082796287964269595422386613799646460881863007118729331125712976798729870384102745880665655977159006491236642911412565271827859446601029297411494191204068129034281255324232196449689221331101146854832059266182395700452922351670468897194679238816078321261934647140823974714790900790308963416626736694804529058437604318425655744631261685881336857147297230802484606709408893809389610092796165193624482689689236737095558533952638810180047732071565605973392628200850992680229436111475642850045877051483415294379075359431824187508158192448134211237846248324670158431340941591081104241775243880513429348665109123710376953107761141690064069010846180935271199559394780306347565259784539431029671774797169876963708431851039293298102288966798050207453135500965988438571658570478141792050034593948975450340417269427206577138332229716568284862530718302277600149783830840510410342197103100047914071358258573042542294878850596042133621462391493934392584167311020322497482257833727954037843397671110140120806693532592020241314236290531347613922952918797103194908441667438850560421652337222286642181770403207409281223326679486242824601850920930526713528864181697882679019213185476093110840195583972036812385095314305398721880604145171604811985262264856295201509892336168471133284593325389452728031086172175492204101177313241637800932959492822516957654457848437071157376870371672036718183391320207549492501262484133266446099904254088942108482475108079382282486766649151650221882911474571882532538299376281216318028390289748022490750222667792460400036623097015893710107305659727071002432160180603724641427971835911009128215751060201198130345676577735116885572235445035142166075007066104511692642880424880049556093424051064407638648680465966029624097256194978334610317348436328493872264141112672175147396450100822585250599313946285388166655772501374826915169232418893048240210894398259301773008387125670061582553139381190288990055107911690308837828645882530861514200417803062569133710267476539155390703790418973721634075434614529945299488320697439180170751863228378099535954646212921053293769856660594646339339245956326304774640526028332762819909907567217771557864565239559377127636938822867415836251016271250570304179430631863309632636193647244808673616239752607126725894572660777814347295868036218214757657059291590220918103330376106920878631264344092574525612414895225429749586102747986470654201043260712732094970649935781113104648299696969892982342816984882333540805982140347571860766774974863977356953057932037824094032915998792911606641102630468082451708813932797648066167899897877352325495441440764371109302145494463004632235956740530417372990928402955803090187795118636456428969759897239759316227012237488360900663743583107309201913973932249632595761122190942685502448538719470645283081864573205700119883994919006248040648782439854408065004022429732028091102984095036572387761704377125390754417629621670516721807235964705047637428526609464684790541405120145239353257365534937516231382300119493737557569357876052476831935383095912456622231531881654941456032939382684361775902359130734631754506907756857997135910875890476662329758100407971328106769854319737194668383700613546253293406420299445753974761502743810714953864144220357172431580310356765668727319696078180559542485931309273980247185240710488886885635328142179002548880973106531348121287637184825904971299589537205029297480374129284724603798903016968823395241060650681571676917856014747149326576625112593096659940686280347745495842243484180735127845494017848224398274480399111744353107871620868161661089948374498544659207343165862682634026496302814341061234771170191240379107255149864566713834435869662248303633850206782032109429851842942294923045302589413144522673345655603660063059402085944968233022262224742117715276283947503106566335771294227734457455763377524009951700989808184201228121132094699992784204528957659912112540129006902297565939365796232403663018399237524647535189371906601220248975379644117679670254415341154229769655075938224709564389349998997211046432718603621559179738946812970136432265214550157272221798974983458064271973779492451147649171693920802077532329282848804246614303634955873918277456050686189426004700894752192896975691467056359421179561906626762908502511417056250640807459820234438818139794788646568809460567136811940445281161918552107865819685030579636846587295454182750299256055448997300057036159831838035661216749121935726372726896967351540580916847176625729923256552023604845089066709161825601606931201301855351367158085165516352627000057825491652174892391258020793479543453714533409791382111578812646082612895755551986119341438970089335969940037664479640162043017732235056632166964292042538202725294221525925987885945836718468330956501387169721133707863051556151900012747251565383091345651955853653667958382047605573722891528437521409997769783655034876311424636217004397716057446965056776269339514588478926131658294492849453545255847235110610400700990663963275682110645441153630126486289022703464661809433131989924071509412767733034302404279622430722267072422134772992107535800673450777133419191645251200023234083223054808608423601708322319344172226199282683116779889858093354259676893415186355436751478430542865529166401917114571940201301572416298182293207166488089452443895625518093956701667219713423637410416141613663104656674697874990800276373736478779934876918055574231655952480196606161016184583809562522454331946317402488028951026768400995736614231635384119123859172320156756392667219055052142049047640003247888048417503858355349394768276672428730758374553364689883803652762895716246083226443951813171530792764309163740307336877742771912261753148440547345220430764621040353315495658318637822603139191968662201690382077548988250638468719264367073620921493158822527016612041054323631574627776149700250332748288933115731740112084178614951580162192353996131977234840812802814878848138919052619856175206211966890869718437038899986758854879065103835633112227285783977902658856334361566287875806477661006810392454610331563119830791904175300752883736444826199976262611875918209051339102283349440392146119416791475610061896052413250560397316875168647031645514018059158176770459170682695763034070007229511150388641680290169191182717522095138715684063936358748770010745074038278476417576462738479783246149401304355113259491581282879974444648602405389159103113631131791077345993846551154270495402385029461921177034046266693370987324805992380943068171145515131428648293611272839190890114050191917695102162144556270891571857841182193660806774738966402825711694731543323614202052596623328944665856489975103523635484450671228105470777444791446237807364893452162051325634469767697009607935224015156571114589812658911549797246083708413009964754282675993012141263742457352274604365774555279295770324929781500442728276880810366688564264202804037303520326256205927215091018835844747311099681509739864064729444223356196739630512797847458701624876132736814835551256721904421736956872577685467653591644703862521277090316620199900784559174171041866178885068674460762426741243451190389380359237911357463767169657451911281919430443809164523209867279239652719465163040133450931260476380303986422455428032771197033443863119522542797755020043726896591912074630808928581039811915197055882617040666176497757997541229962750429659452892789653063916741039913757682138124702609957460243563866562397385223361677447813079555302206648259973986419050339140098559504044772075503184619840213930358562852573831329452979371993567262821700592865011848109007818755290034364605936109190960438147081495307460995031965685880154227568990832945114323811341826871629066674528118407623104205541272386484857252404496533893665084799117566619506834663521578810058920732429601477708057709808846106331127890872561188748674453961464625985798512148339734559232574366900341915744670690059122120724153337173680077158533942252658781892162366454660305121349619039801797163845139836398186809100246194322442706262128842690936870196055246797114482599770800557708589473290131472110174255566832404748285206462920883717442627556869404306956357510046850149092343932506353541992316527861267066598711325116960591047813229559285617992135756769014001106309063369017417952275731021717990790502622272251697494794291853741706907341990107852205867255781349320076869046686413907027291415878570210766041711802747899637279676849280357028783526941780794809681873768226880977374494575912031420935092370088796159710800813822409305445421072371202337536839020140373337663407334227031710194324391638215424565075023679295900259787280758662081223608832915963802055186994422442384637804625499527562009524665574962807579915342197755807348076603874989170246900557850754250314342629818106069254688708686025426278361248173181360159276490296476830031631969225352589648138004492416208206449279374010149176910374427543847144828391447144255052450185296685172533954208232809624053179694810611441572879167997906194647448712879954452229865817128031737244458639132644474670443018566502089942375234604959754468509243165946730952131458499208352610000055574037989847614064624192905272795661612583177643693351903880028060767156741450197551645208668390501950690409393229676154013398316610956098461055481250615773169167841755084367166851740445102596275640917232923771358985055776745580162852821031041752240864962917991416713850905767729787487435732574106435904823394409096121983654267936024765265723407689870317364160615754444123927009600539382756691896284963497415369662440969041318992109850355456914477071556835055509845841290245175739273740510431242890206632295715651010641552695883738645733334706357902540297959553808645772799022330375632897369587216106736581362909856354565038652459982406727712275611581843092375793506496155837373320684031169619528473142417977601785133750577299894998302026192642410009798463235218353745787556885714341256364186874981868274034842528227529784239467580836543255702902196946987941814338192895608276347025128250720189562688636575771817407118349088227668706387801268495465092476008689822394428179641583832265379911076775096908804809971289127960234918884724715497997807213397575492122858774130494170660900310706652567045076886048183435565109606158137723888352050996971581517809501471388683355445440561021643025104487799290458995239952214272673907651280717944520744735961733483642713397195333620375203525044014711536568580148974850648015701233021148074577423201944415344736993913308493908674421047786394250815243378163610809175240275945120338599656506547329123846797744012511142191779348404755274246397066351499512890109527542544050308658627495701738215427785619362411809262120668591183579146396908498813845558804973598768565492825355564027436743932720850845112192862375421728639757587171378626020228986647339720495165379121448107466448277535092388886306476516966286618543348100541857980752030689412663080692514928168077161457879218887460027934811636599628505710748275597582249963828648784157728434339230257957291994941619521209892232223961871579873899384400796435364084081314871781961494942883390363262004043255434651690413969954983765191812404967799829267415113921502358231339182485009447878675910308068811359543179234996966072863229209562140160443770808008819157397592875014990597505283135917932349216250976696274670689276812619690485212055840624295697227402880829217032479172402070203928137616148650409862811496211114573471545528698686984029337287375488161772098072409466939021535443899206621384470320879790258690532288986615093002879044409366945172552826592191153398776435980273949819571341158161981956540342053085683449066269585934755933492508326295767795963205277950089068717960160803549591109313319415610722994778866799254934456491693602879701329710679042481694890489225415890623763633702669530084997972346397135704539939403362629962506693438370970179597171164429189442142159073121618719249059183912179483953261471393186177181889210895031563406118860529738673733816038055543674586711388570806817618254968778248940780492359233898737454413737592499241053629041224157797232399928208603868732224948846657470990051327524178705224148286058474726260293574967711040850096792919527370484987205889617816871278388630856793469257237437597958940220647523207148655868569762659223623598668219407891030698275214104855594797610709367535617006780420963454085911692274985621286628608780994902569932830792917004571992167680413800838136542481872156151126594925460792529450078185451972858473778451465866682021121270565814806281877104692605457188834664713354377543028198872138204146013124179688053400598644212125858287847207967876675974183825644183367587142807196066104721934625257872133614819342517536318860473799294895546039831235422881074628036106208301706715182146049150410591271762854222474488717704827199417821885245070050736171421193299391467685162574553672186034998465203262928015468225920040922561614706799976877913751737098954353810473794156341034265233988024328561909999856771518601585650689054659386928861210365284664841375522320145685146158097747874840016489386316726110859715281601487633077036240975785729083304455442609975508177325078148672406141123482938476589985131756246932738023882212844122976984984412805192278959120260459118774032300484681581157536631939088032973183945128130485171308587662206089663376600137585214808136239227862910787483175147231398265277192807519971671536550535011040074773638055963450556184812339220558272886996177489893881276166517139392015301829917193773202308636898545800539517108885219076185708719077401935144403857014716182982452158539615813070731311037468319265180129809579356260695018389854201572840030929310837251552477977665912748737764028896747604273120376807017122145138747614964945122287809485686534300741297701146467756486350841732889540189486791170291763564244018592934296208806992956098620306511945649085491115759769987849045724015010588220138658670000911739481619294958288412380396893640664930144818744729328452043088926489691581997610078810125118780490777284678781099571736992554068824297999641258790189380256844151512555586661703170111815074920426906282551967089859933537858905611435477742329485567342165344839798940138214228854531545294001268012435680316750302169710361382759483831152159415203434782839259421288025316065316783704132210089755788359051112489984374590809990714720995800159168140324433808751896128245770340673121469391910708546848753294303889267303466341965060141798849491962971178550467748718932503608384175345127593755307981479631417572013963972452431127020813115425585061496898723307909971168858178143676811165198625973369487195934058609393707029607771078579266735924664229446999026317084735739240824449559886171804358536985069247807136362387705872712563603993245868575107278333648675732195579072032560872453135050221098425509011807656427197588877903705572603632006899361460611032870880984300141759880011345989115261663022703329608326764138488069103265246166729051317150021181858989527609648072608984569513699655052581190814265252863640658374040209828320607468701673485901443116023596838413039475778028919857411277788641999143995264099091957573600145841657167890576589551348102856612290306433545508487368301070056261345034747586176073237415364160780464925853297160831886564539904731210592381433908521252607990230971291879330953548800211669498131821653373277695863441865527725574680806953169159631054890927222487480013959650990515478573566109155940306956660992193721505048423157331497333852450447995987502806784348835935451980604508295189514817883534017927235653710371691653404583254153252142001928772180854514789353096810818736090470856414225701811051352450553144079224841670053441278426853667293608301625535674565694842101708401400882905908536480195728661496311897399956476201482691584352041082352279978723456377921150555938293233435343113443740366032226701983774622029612670374477951428691101162812102263212046112399369570815255570551381544048038987561501272543956102379090693388765926932426305918726012093501022820497572474156893260855326365659768950341972391110029184678479854200183853591960724603647975866049586909538593381424240078472675307123905533194664016576004819135152209206305108670300239322560723467891968239331459082992568556516854743304724027446354184618859597999384233828234102758478933865448434186639877896030287053794032902585460550421552068778635373086151310950136756147407930109394664050622854193472698620573391041156440609506051518116081253605995464065382428648394350796242502810702959101485751828351537138264938308170737303989706368928524806386018628667921049247325340835857110630900798511826136111796795041049676207735861567373005229654612593998927428454524516503685604816692475683907236546813535637334094211365504073498307368284430211795962523247785837072219785986710027541338702630795719189210730299363131367719018557700265453747940712165728741947873695660145530543037758581679736784198809609584411315454301560292410152591079056667793445071580027743938115051367073294374859074067186882161280177506704723175380092209178012166778677270342845603265429280106291682693372344776278545597206499547235035590860430275026139425002294810264945000883460818855852255762985431367539292640404864834710707038620371532832883395384629175764493899147848731699959810346057252291879366858656392360712469196893625609642436387576663244422274354911115865064552552259269454200330112683388929053182763113228456262596756743734504102463891809897906031563442658059883710219973161032989136535125519133182561859333659134831222418735577857468733067777051049201045456865014349370660185579517082980169116590723040777026177022058265396244209884841956410289877954889989499420344447408201639736157936576575403722230070790370758685023096496350727726018079669508697001896601940231654385154601842788623501293391053341173413640005713389825856964320989137583236762425091892346742008368533929725299122537826481915446354423224422787700561549570514682144650469573135802906920473844511005150005497909310666872128469837779420078853537272191875718112127363401347737890311828402791284652133862842662977307424500924182266988174903738951523386664464759232842641534118120730658203573822300350429728152785808441032432636646147910546583535762479875685719789022223567844855677966831083303262549813652879654479504384408687116585695954923438491805630981320024926197312307178369141095395238101235586045235900427142303061846140504975631820195052456844573106234960995802818472099999467475058346480658624233531943146420025848980127135277077542347491401503770538775986533957073725456149791554032341781847635071891868754030748354118248301315711434119142682783713589573178332874077026839398471967238445156057460556175948320548032055488172798250938337684207354394676157219924845720080987008005008052456235436730241533124077737012064538481949047058919076074725545774100980925130055203520893599110174024139993073101327103393357642912997665954840550954735889830260517407604921326466679736969210838059234085947150308657521349481755096002599693479478627005514499654632080637306616750685334820865500043534037357329372607527496833614056586034790792208018602314054169965474725305625357889250102460025406917990825671292425789537231566115646268078214920546961390717336923838423875995035297985637749859951137161017008878655012295156875756452896219323445474228019916860989535958771431895171863926784060179656842238128387286199879447496668637210026347775775803608736865746774878185683584854822396875798051680649090119068812524517708933287501493499749495271496694117722222598226886751686571067367330969435228716405915776908502855616906914705325812110514185691267743721661885533633867973918069954300341692643362167103848177059303496958490929977285765077999920766189296031408008796390177069939887033652532315474497034236856547335723675963623900482051369179589743429862918405103732704541177437734755056332494190019631897244413762523183569798171168128426286489593389769156551795729363882146598314228536167506987730270038790119027864762594251473896386297766669933115965612235357454900424151723961929736960530650973045362010315728037464336121586740936470398960288664016597285756359270989148978857154630098057144137539458690944265046515650042196674697816931550476219508301141184418192287017301282127588428586531917662156298215252159291288858188310656289539479645857673564908084435761448024924954611572590343357560073195174662335512636013331952764685615174907402421871151596870992938677400060636911827914629660336029301882767694855216357944686628080487824829218186669372586519538313130079104930795036611464352480581453614106730743638306064260114710505694805344661543487758179606001059160603695538876184778547009160485457919634885872402268219573575065590456608618846573526597895303890748790710201044108249318254276407876901960181039569378178157697237796065546356004556400353366993977200319666904431856181478019814049992161261920685724719834188835354283403801985147418293867505430211033526281845128474193384128603726138507585166138971139272294469391278584419430124201931335241039895254075542662621902838004702546609149035417629036436172994035920696009182994862394721193082297000897836305270771764121348970410082093305800606014208397448274694602102900095027593379601391756360156160824363328962656498655012015432275662526372781552206334124347420275925614314695313518344114032295089500041549397778081453112597030124184563333889153121973540030605705393387302931445106833622977538813722489844735624180062673099594479301421310545064850150916530718616498866113605323298680143930346251254552025347342956996797070168211110619893280079973154455783353667149688014957833448856591796172479492461293710046924978236617529638470336815266694137209093211873773394306917628255801171569802543284590264428063146223119171703424004193578041625033228513288028807792720222945577632584563009722537869327061947272735105180229565635818679232208505819461104713512642246323633030537290807620426569258813672663295233910417984390535378969478596267761292740193022817022089063566121396587241657206924371002720825972492393731460217024670099107774802666212505586410280308471636652775601440890765756770980266228451651746907550871759120950012830711928758130045394474414862891296460792303988803979424856922426734692133672916594012329757824750530691496914890026564676489668029818506167562457527955437786498723536420035176117131778615955485595298172329790045437997897951622115472562672568367503447870543585595691726355067063780823937697677771692550661366704396866574775298060127654227526352439932001508334797625723739277435122974838473242250981414420663428675159801443481624186855103887399450357107124177032139103439941458372324796432075574680895038102711046325709003038774982943263633668322336338647019886723764298756326042484874698564537526996901091076109293701269484430202295055719106355657851408017096092004758380481029952156332770418561954806218704482761224675640182714810999459993100681549902811595187331782854356327691931894118361903323853863381163118577005336028557596623529805202167765390095949365100563054866846946800085088728560531896582831630172762034931950294155301812186396933224409183804074929492425156193884618208720387658735156647075255492854785884283926825675804001182819021366697144992608786698625827231633091383883534030800924884556777731740152105691807444667723246125746230468243064947883246117744515923083549312854299950099811350286809720876444884304055242496343323389572944147388424751132474224603390717703165477643300706405404885659773035397108357518457155569070344787618210556992382859173447074395777244952159177109618142886169729657476383082996308209989755257914439927267760158226679133876265699316909731500226127046300750943057927923536007116767858164871173825192073636707370989480579749000606317259446063696193950116030320611712858395684204144631475457220461225292182040594363668803928516890754072872323878682274599738078677798407040575582699497631854475655524219747725858877382744898342226123766626978094693174415216741699911194430633835575782374300850006880134050564651726804213815864804161644565729817725740056575119710367017870390700174590374706934253923573248528739663459086751833102606264925421922277037720589611113188184852799799965013729375496673786552410866158273156391486128185248592315015561956388293153446976970322921614452830022181934531948508612178632888582569351337955867953929512932140186199594815931335260439142403599055068509383870797907600674154212875319338395809698740400405010975391753949000947647095915854090458388884703340080472472365598484850883254073635141658451156624336558152263644722601930176564519070165399969711249328844286682724706903702024003863403416198817125016075534421039572729287423156209916954061767411199363821384435813218629737461386697582287322441643267758612936810196824748661647927156562371099138025618958209718696925818333170074117465357376000644699658423937220615961849451378303515772505335708308569136915859549357284891348625645413158310323067192800299766945575446238668378912502815132337970974457331963221593356198857151559638939417964255046828701213992229488487869745803177530615377488117004005743127405486037596869768208905691403279767129521103543428204701718518350898918179817098332779600746577730451459490915942141666672951277008445104792146270000291815249680374744221778843161729655017148858522706636015489193463940515701910277926442886161876196610863045296219248015037713682081735199320302415696606085511695438349651161945108246873713582378746308741877363728762782637202676387550049677555161790768057977378891906677798345206489293606114976314889085382236562341645436354651839326246008652267435442950965519428110985474107199969900951926125590691895767958042968673281931047442063412456438287461393181924876458452913771213746624986475484919455128917879253232126216357582464400593175430283814333016390564721817057162589090223570153212825483694508408833020813826036681570430330867616349598670824529811600467344412515645696402499501285963644647541141697999974908948476536353978099026274545356045662816554492816898279136201023977417254819964255673019237555325396916931897707741037250745585136429278815142817009097982475054280672230716261097862438437446400681436874198267079521096918214104471827032565444001458592474834678830474702960266537975912810952523016155482521799539595720730585416623923473514051759259198900666370787784906041686937708209799576058413567314065821822529892683193474128957615545209631591873117853576811638675225329611950709239874296322981439870422513533868554388820675466724384762495767523034020699651511491421828511953201642244862247434772125961852794539057151174836225462115747229036490501974958448053334845547271177535187138968735211929190337504405630147905358561884989886885535494418999575064336049968444329398433314885048533167523867907487500627896106501643870022157747060125833261312432409885194447443039020155699870477038118160434905551425865343213623438422673210227725124743055713280654587394821750239075684121996640753192988870361570195222966718207150346821173903718955486673515211707388509975679912969656964586508573308482504453390998016979628930154893761888208106572460033424639092289376951518763038418679536576451339235417931948119019384431462110528909322573470743558630456103580218045062345340635730063869429259577859565377380232617477555175169417694658558390424012454260336619345717486770939669806158840020106239687175312432320451980067822302613072285570687407457594180984518784406486948710309587664762086347581889979809722603142629640575716096050650741051026358687605063298125642280351992673624055813643737468796712324063580411549823677974214341163643157175774719126164641922655119321494344108018691194078325120807341039664069153504490232325014768511486052510134897584703637245423140930634874152292487801855306451480574231638342967391737881388987778309456931331445203884662298950268464676481175552868881005324273058615091001540481009991650587655504962195070969618047274784111314620881983897568226136573252046543792553804201294066286452665572358453846250169613235825811076741943531533858007001544417443352854241696963653936836531763898100518577489079715818959997872463095590338709764590419132895518825618208933716143185437371540121031483368886393404855486210084365209343794189566504093078411380298413933664438888675006625213326429184194409527707718032608759508872247621296231297844146152710369899529034441172223893818783685853508619336339416033595878221479781826222867186172995861195016345509203300483027420616270197754747657792169134900906715690502305468179824627779445869469533779895602783681976830517935847980302180409078114835270046936075827502219390402178341550497663817436033103108002344655528966074278522810149412177248278008064325051904581290301427884309248208581168727870105639688020093292453059311333019324158005069573981216483381993679528043029086591828276899566777129151328795645595416050673002437397916126918954934917594218461871342074247868079210667403160005553694268052271104962504597375744727786568022350541757893792693224222266257928023413434196981088127264264699814208227459227576739833512399784815999713100977852846541509083172072361840123158727584814869125366381836551059620176528915779017210021164241749765659505330718077347464565904146725265010367658409727537684759852196716656018892413467144351340834436435196432042739824029803803099520884892745653414331848615922110254680272146994212332345390919051434759434923550688415123968540479877010805254586200825366778351593879132237752588602946924069054674695710355022604377721836262956889721033925834727348492806541205830180237515754212249572635136567043293155514301463036716163852438288623350719544615616086344790217898714283072604864201103865347935889418096518561630224135583060354327625288238513407246104642375432655101726699576009994583631545024674668722440789787948950071474509340980264607030524743593375150626805376245784478636066346924381788250586041327047442950856070356180116736755408146661238897040338312726313946228843420537862508904445581904643807914241203144709065495762743157984820761954297620058093885388220479664328984600857674343320376601177928385035063198881310863234424758910150076896852405384471689515695806125185074284193823359014319676280901976944861524222827724432815265339200929502601932238507724709793867487741912107581637501406155371067921435273396758219198214425181092953253881320660486631123376582178459929268181722322044147689060177848013850447763736522085336804572042007632395288759034097632616138469128164655479528417394768653751924454987413181039590709917398765825411784411621265750835347225805326369751959954276890902251064118531429939535146535366135549842910435565701840484225413710505381967101404914293657173302162698779803852349492590883590039238272604091944635377904817311041145442047223522517602674020695874115510020796988113493888379816243844897568698539628433834278768415040350527067434472234242009355176534543969429825884651849875189888585101494786412122393301792973912314771174895075754582494534452807508772465485319725563625656667590421506975564058029595325053579794822531396622991084948692148447545831512601898145004185404235312837950324961865655719589926698024630808187571954145582806738933501562325088041419043272007982131523840351883187333526616320375462443548484093936715054515498540817824527254714583775088087390167958623082099272110599072533045805989178778158809207757561579221116547639040913370634158679783763718440983845280282427172387769902253976830682919374802888299021840887626890909298505282214327874749518237095664993609195014988955671082746782018656122094711214745095029468109507461119931919935122388061257727442020946783060369596432480943902989505687552447845117597995377352634961721133798046943896784149991273771922319070076794685995314007076282662726393443441746224745866835836018850770750926293319482546175352222063301928073091273429472465433529387992476654958326688641682231811073054298011507397538276644599004757112307039856775968358225317013466650491276460731466346876444124097079863754178149601026375702384301027030249530831931533573405798149640969384470556679534311746597595764552743977596324999139129372673969975247999472431042482015804417243540918054028488474993024331172499531589067715394368586870067538438747737746275569073401850825857327800958494523747222565884883364926240788657458727467300850704180649885038037021355259265487424609522284098607052024669437874549629974957242024228972940635493994231051388516067410434549506147703408322944694115365554320814847391021415027232769158602445233234949660535826073323931857167891670154525664389557614577221700048724532837212292719742990020226974399409038747090507594360786811571273454508251640944828351956633259103980255746179442758508761846343013994531176843845669010936458089277637309661813258526773094694259004364123531668002914219125330832060257714026646755029512785931191758035053494966855881649211954291244045362280868599857236048888736863184437726328401306881379314115933352429723634410561449355852055292685062703161215269947772850562644332141449505778397840698655205282350180296163495911995765023577044781477782804747350887693579735929544864341208608354605287722931717306824868249463072544410916750390345534119896431478639310789457816672649056566256162641742247168855744432177365222451163840555189159399802590895689979807619336118194065544587054939363496636592895441462039323974828632920612790922359973562500855366590213413408560867221092208284766333583887747822606782392707021715830476032582124265784257791281490270134321828088058666498931003892736303770767137095153086949027620701574337300429027736258236392691436072484644250968370083046945258124717029678036891813106029579985796941926420092877710327683228462304020513135313917871746998344626610434073600172671507095823252718745027555623191416216079349428582780403421694833821616284717888209514477764725596262631764670189703660219972208266589085527154356878379662045794246024185162149750069356789618375738142673680277576405669588978179326070760517920000163865870301183534402382145708035726835294884645189129762699676628759346008662364786697514351274828361693304753430642125454578301254294706184353664545069931939354752838355399620214379163797821009818005182568268933396867261438630523023951312892249390641890629486792422337997018763536534132847382869681503676641832715466103928901259637837286087455009077382195043725124385501386813086778162289376383191090259794416444559536288454003031595755901354988740271306176664784894042772238696548407156414925017718038534113187645783047903626893090746651024050298340296108801361907006722302540333171394380137435448581892337978722199430179565404876140518096156503728909165799674421809222978995384690092580320710803687350818529212314279542931653928987639425766212653410318076763820033621919582841134641189582676298956157054719231554111569547665837407720092759963322728881523132775460073132636618686706993342446317593917087592667867409377468885076181752757416263637332030349343300004929405768684932917854276787862128761685814536612254000240389836996474070860238638331550823960859912475098085929331587336925949797252727841490079369277434938676267961996705815462688081594708604467892176125093544206731917836361458656319717920233872779089207759281453261011320892314426418685639106968725476800367536026466873833633573278848223274547855795879326354134984801158149605531917142091818913150761036628667595967523882998634368680726160137781342917708340043085514322303926662174813337521416643371140527992899218346748434246889151057672573772669155464348081174392404927013054169555929014657871887875335671618885018470495063832591186729874648272940307683513743658869642900947448412034060760910428458485800040060574158865833747164761716411772760616537635841941840230893681240814540452044404358117510868287023339531188084826681623538848797052096487963068640957525811755551808842707325521039706906694024661206729049780922951313039399691187446975874643880004465498880961304537482270746799555624062568861849220267572004124715510897498772100305792082161170344784344618635208762677305847516232293043213347616577458065394706195087106506013405923110682970647484838044219120630356031990641818167068324387238066727290917564019863131183007634724865069190387104127434306313278159090652669460051891027737669465913293345536260541099376740530610836417456061040567622225361070359245603626332796214478794677039746452706444690742906481104540342767063800671926292812784023023012062576938123278908769844220038941107880485970626694029093093142737811626745065984079640581702618325104320284497926799998663189576603644278890758769598441273782862093027258107459808063631482276512385550278080392430906265888450527126165073697353813057162465696183613745145568234256357031371334570266668481467743368110480352063819878117252643496247638187666891889982020067288546177425524821556429514998214304375327493553745807076181709519962467999183956242083775283748762077361864912052067895257088801637331290723249543567688126783737475359909070441207245348406676478620592980843071072010663442378217537584066166870011959824404682195811322504178128055557872383619464403889327965568658803203640688733241382431055190608460472812595502355705475581121045780038625715105168469053708925128075768843071570669294595380679671888726214607064711144042329621038006085511451041966562661279108233881430954537155123499812937692548412818687622517216681040718655922185016769572855529924511329934550726554668150219769506863284826818826119357250886616074143064553705910353490843088705245205360461099882543348867836757122324815075129572319272998290741369848813953446472815451632753961305346480093573324970546626748804394641330748231509389225087110852491669602400218619395651835341100929965019557470926476308146400585387345268424594760871765558432594893354785811830672593698869548169877914392452689803282352809680875174394341486008073070902177449347126868149260011211472620779317660579515122118904057347777221047400136808516570836250094712811753582462929392687128373790464432177232097006255577640268382541711553339096309143689262396731613225075442120091275947042973267808911102647391183633488059125717317525696413574702686750136892236491255808056399348952731481558953472162915084719476623099928179953927943873305562630739459718508636574771867487455535178043895222838415617613094937382576536811133255379682673220534222519245477793985980981801746769963138445189890479295043123025212152125577183215684573528835478470882615117691673037304220674945434483745038208216324686538266776939362061176543425745008505609401196343765284532408993126014252174412668967874122866464496455667189400400902932798752480486934739110281787209445123471281670596959393033549687819399424411499637474748343560766938000800841968805460967618513409655872611958398486974568020821971522909646629970929688885594991859147024068386772525159671700489256469888757574157159395582720663125636696383997914201861597131038320167268802791178819572496502813642954636117310654791507742676724465179568544024998782570622851094055013467405484360882225013404268412672724601513788279668819980451805353327904076147096710940374061530375629522177991328983589739897999411660966157280254637951809395162486209447685888010839345691465394198775197250586708801036594760594242557850550857791899512808672301892880060702892733247961987639537815102556226585276501841514311310803621458779560534321134212555781218437615973729915509721262724912568718578179390056519604335033454516588043249899315069194792870218011526407356855090630251226170168474380938791057593645261814031915532724343965803346629624369073973836385960934303864780033201193748408822571902304738676950289831749606191301612642888059658156596910352914818858494652457725074899020625146623918491430383813029496784536066636696180088521675807249545674064284656720714092251982336371050156475508046580417289919450262295053700631145866905953954111634453316883055710523552852303064276185052410137546029314765267696744838441616178446582893394518137391416907335451200876613930632528872497829895129255654307171817301323231226789052871506145536292925502585739782903614487655907419331999165571690733696229607517817908057670991324094956970926801357249782580269873476115932032367276936942023694116396019824751244287883046248138906419814547564888701396172666141492872310503147011730565600611343681804210908082255369275690198616559386040047435244476307057182830205732693403587134647346847176579461355221879251538773657821767389119196050735247938188132692687345947323216803974169415528702262032286399422447721391416153807675665695498815894321709860722914592315232206849015065779348820902628475839994701286277939888700687843772669575404869864801381711581776151628933839467623796638592231471386953614926830043706545944948637618432462831216431898436384863124165590858993350712832679536932632974907314274173363652806611325209070463957372553741724044266488070531681557311777081127585625383298145283847142288178614508738267106782076093655308643358162719903802001427153223716293186787949197136098461293295027515730917020982028591871691810075881897680281962290272322748953193892106813026892653621615162920826541069474130235865783428864989262928455841356376764909333105008633812138333355419274290295972240562480885002209461063227256186922805044963638673199570473409160913905028701018489416787875273372140562578429600764397327301758631649626059858737359228210569403501472603778292844033077481665608667828770301167481030516655291486110990306209585422170914902477465332181845869555135250450102501559017448441976476721601064355068727750489767505560874672166819627337413846706483701475292206891928806637710982580246714934748852025743292971311589702786182042774796448058237256970452932397879435552207141151712414121449121446863082593222245694422242313119811969055752797170455017273268524301590392335949928474202690288982653295574126789254803462386734912470533134271829135661380419207613428318677168750902814173371496579880416019021704326907402794984411017092082454124947945206641263909415413077281608267303737827295099918326450183449217047629772318222085490241960001535013627556854884835748158217860990419338170892473549977414881759287537184459407341744182337142459864948810833276232377412796838179784790821876326426123731159989269252628246448637276725004081102129974779903555093102490241164256274706906492427764963665440330630044600328069036522041959005136741826378170365689358812052611745966272579608117817445338315275515579024126921223129436645888569167532895082404895985641990556351222669832290563341820901657747848076973172189269973904253631697830611788893902332254193599250910679705233720156862015190995997573411321654763641514936743579105742541343506278623735709372255672154690120018324430082064276926415760939218668273775826580946113295409864681389792882291974310207290258913811566666263247205600896327389646404748109951738738757817003254505364361186574408487402645515896231338458176903153544869548877168454338408824688047590990912964307584835656124638146314814727171253649513666734460595097042339158938945057525590614057661844207837305468329629839787798906921247033862978970624403085345072395456508845016857121024662789614058907339526746796922578075059097507439456293617535241521095915146652409228928561640955769259169627353442447585640902440963438421766421695424732371331633202194798249821655219552821993459218370758357930714503676352492689807421316419890987131841969106238902506553773877577581746016691390516224851620566552062630046605780152800557848018808398686227192514256996272087012358478344214214532342713424813365745644261137559466054644204441634630410925235744815771169019828931282096961657419176239890364561297005946088979187504693043229512224315528828211102627836393775786278464178215555252030331419084626340311077924200369989713746181825358159764475921863369298153830580679274785921812368487821972611076024769621649232180762211390389030657600376656257868577766199712929369840304500384495255977549731599573593326245530261718672917184618406191720598812915286948337520629041652009996486104773891971853881899891109587715625595286921259815327020688666214693501108503587500531345053535238661991815054698657989022194199855536630108428046343549730166859332008832800113548955321060227698502961414269717378306874472633936155111933343239054482614998001885627339065356417521399690649361069072967849748535241305071351035900653824058228074747733675309147053951798960139169079665338866007813369367984617156579740596451194579559287939186919977213014507560655694364474574618178648344666941968322748480382320017649113203946458312589758964930483264241632587023856843858520783026106044522084445998010800363805197009260597153848639949916497013049616931234125616747334515431997898728807689824414072972495173480112107845635193676915198777826509205471969615296353361704283695803768551519255564798627370654307455086613366377971676129855077800888304399756830988898388569625177619793187345732083915043570200759504666664115421520361566869213247041729845123517984159022084464202259115273185756481647598429287364277192609838102890995004739047542325082413170830546725625721796387319983996423751254284306200489758120203999486191622678999415113747872373385264994301232706602259814204471696928965225262986298688219931804150853574463367417774874702814628735553035099046681488980939626450261927469441060625514951777024121712718638662628053013226528127700543489319077638835674282455736834197266803440879359921286029749875670150813143837197621567936181841753269279439649899057134578986186119979088854988216209061962723060581176051681204660339868597074114174202327361056332058882972605489871565207020447968374945569768874294080125392423396897879110901600671178460939496380667027703031565857055444859793749959250345233110952868337673917048814365873867075082884430226343299106364268752916349567642076917919847908857677372421856468067181522744876626137287780059739761141998274729369404017382574318855153075029731654923813052345128035199472116236123017280244669736874954635691042450633848231448858382787432128401282450678103680081181512125124649498482577142681946915261647512451131860531400781085342818032636946374890210357402488248943097990063546108552041327819736687254535397550291748454155176527945553821192700375628192981278222444613460953553171563357491406800321973324986446865020739203013635491231848103696436414643016836403247884701930025610893787466177358690978620253996829553968401717302087689552025635717666261077030234548577650907079281578111695667555553084003985195316277636648039781069242964984286562902924228683107414984987710833215182846356512595042545001643190072932335619139694114180732356821656332972659244216240166113393535416665433866847030746675224514524423525090301304952247061648716911944182233930147578755345374501413375644674647341481808063290323693944245721388076357703044750237213411711751058006452158546709090375767861732858841035156370394030345189529106289423876360564044340288392914304116414591419692132787478433946962143713744843981534751414100038229346399623129733361907416433121605899822869439613851860123662315152107678554412511540086901410863623695075275344446394307753652035692788987835884033284504190986760749518611406794334460408758048571249201982948840080130442584144707489122289489515789808657602329976531665274039007228497345838484015067876127101421902260064914832018048176871709026112427080182654289750769094724354784003673736681013770396656308487453295056767561978562747598412205090743626498962938975665494245070564713763819853730904887022887827673973544988480253594313786110362159980601712652672872375668787963098196886824622388152809685411119335616535028439558960230683982906135537250959223008368605955791212132235460533746647945142166354644301736776199176690458841051273679614032711847272369726492746121653476799903364422879372711347199024426572708822114680519167896082779091244529213987418837054878404097413793090395118801109522175437512729232154825519335203313999380145938970209245073454694037939949573366371311663822058128622824567599909548550238382178677459943429658324406982578263839658645242126847958663449308695577644037728452248846648827865011670177220409588121589384209505177447618276831888226575946846413961382813215076643010015443246944919820613047574297842718197365689159150595853173582934645697796091257399270469841056770465844237378106907730694034507426148331661488280104550524231431607886079908482950978043792369046313833609608185845134600929568102358383717647124626249872138504551792905963674373268644820020261828924569678600951433642971428359617636224390045371045326175318604283326963815476897044761208584460313544067445570183775375739929912291739247710802774819466023706133056565873727549821543068879347119817297688001693429506204332611809305124196672450545854884789974734511067192869946148832500935555539613606189610105503421211657167770739785347582164468585531330156285645678128884748889469055568035939445058053732388342800214860051442087370050692960337629069039523774411618361518701873577141527158910548402628432381442675710274296613440657950470409205668686010361518014950554741876086690885519660793050033268221929272532875361129381907294103696867654826770407246555049925952402149657742609998624373244014877412360267580758895345895162324060068074835287685381643547465526297168808113444010392130837405656239805575490405833825760346844974036325097342900532790585443244927956996432146237910153377988110515091867606629229935377571638549071932178512418449300623459560638015681525807930478050001461460773541202572616115667802769829956180218828029759659993306096146415619483487498206767051849168861893992943592204862957175124778990597870513120732385944603912091637386665784709938488431987130926809548486216030907188389155399150743408965876751846291091019728624953748450234648524638864786435272217848577351023632653832268745236422813708389482156681838474492115595162483636859115992722701475652194630992322497045424411274153069442785206073206628875070065969769210101745798053023934318618893038215967429782559360718045478677616955152493418738627571303712372826205276752989293787925236268778274568903658757357829298161080145265443519987106575190392648134326812972496347324407833843151387196036219725519373869193307227285085685987942924383345792224182861437727498575059065537175734715692736146691617499331931533159253661698551090576537719545901840145756363311870131313967226103242923898277523705595333749544623846524903104634418750860804033876483570451914803350064764844808759068689721752131193667316458937493471080336407954816767454876172646949521108879059877473340738358206997671932930073400462480144971460864117382831840594122609529057202553730870001825938058215164706087178377970868915872599808580154128661992196901120666813027874809759453265516086664089701625590829551065643669505907859510662127997433471254037878042540597081981941941338996927456105700495473743526025339050314153019194991326830927448537710438732550811966313606441495013056373149457782139937356550439968186367253438301973513451949890435949477081469931528948476017804185613906576383793987360686362405075542707349891572774532724731466116385871838556857036056164258719343347528578896100323334256759067758002868902079315669175884870190813703914951679469134931341476072140305040620594466997293550124956921061774595242077996349524658788315073579296070033683165299338364308044232818671376109308423166662380987685867131828656123234964448620119689145732639986191159741467089940098885170749745320438957382382434948848927415489884200232254397123819646492181605853600289024009070835694149558938554213428578820059616137115789306606874494979323015985787312109033999825371650327922117065589774237594778563805853181624083395608863729943265210424568837237739264217345539998799299684115386590434385568123424789407574383285141564955501870751762996615291440891702828755413506085396577865315534623047097379595091527101008646995174704588194641569956189366702250378949047692198589458518226082257871424792305121514694909681497367107737594888473421994214665401203459436377599918185434143744386211519844283541430362670762576341051360552944600781336535187980876403697188147675229943957367299147524599851378752346150064771758768889471608115757846739033782466868665153928196582041185920602039754936594191853640562555740344105317153862077233500673429810574998949227825183110747560877271584323295585961701577262598946971835829075853194960135595104666627756770538446910818428706304361020340367668812054235475833561521256363788582273524204705021570677572136357850865163588910263026613671571803146158831053705315786505710477772807642454246089322682193294621278999478156648096731523724339800331401949617651737893798429483069407982123983280854889138094772514511371165526492686240792761491295288184178790002166148526759563988147922721428771849394640685124617509180308520438689662675911583880659722359821883177841770369555586828042448493086095479590635495721558510091949408224828372180584207300939571657986815191464080434997612495981548811697716137509409002506784662142663977545059961312602296376673264611005001209965981431225989469473821443714350774509953247949366392430952924346825676813790357369190356446771409752876989481773975703552168270304450948264912418539527803698231098447945116584893291225786538246461379206968973431550482182102715216572091777727806776788236463182457330966258128815651999249161923791748559483324295241708330213731432542768233857367701971431251800280821568219691144732201882548294020618497789618988027886293357635056167517532516198782936144397064991703046156005897661445873025989384267171459370295558516750436785746338567935451072203004691458842437403411816266609931694674035386439555873680773987704106734861993541583416767194203461825881464658465343898806699714560855241163771058772946911788605666489406952482801257781308992268128851385229989031238743213895897155417589344495937417915214279306387399106674451859148871045034268473264318431999916961709285483426237571949907682886567648901815392983378057105629504653573310075533841484460199884769402864999204286310660327103657040421590734587971367955561652113225349607757396872235564323136708401948433914433535245768320041075391414550584715952949635285181913318845188807258522047801244047065017739547191898762584586157050421223425205253490322249693577805985259516540559738268822215661074857988651212226602184539085543601782941875210488887492658728877332017512348844007341686881660454567546506530354048211738163278366833890252158136483080909469564549192467824081224541581199685748695522823140590844944736764181788644200209053948830132464410301892780224552896714568331007536253564109013691623441041612016272875759284764510643729180421646586694563027166444131182540609018568195772432194869415325004898921332368069121051293246778621360427732554081181342191762790039410344443718668863923445700196129132160949450013171802080785550580675186231700566796091290012769953014532358486740517116383261698018660116222934940085510972256611641659419647043019622139062029446740576533635602785858912220411475440571285610367659613490036843684873753581986972417894273197257268797890842994232103190769645936495754231057365478513901674408232667087030842176673224937220618655871448829575350700906225058374018027421171003532261489421714970107718048783779563166754863608004635331758987073559126945393379516144661559918650104423347719533148621523354196591562628543738797278860186050744589078479279390516906085591596849393158452995294042989837539329028704649709418408206095323983968414820199134898240023953892359864116135125383873341475395555074613828502759140889087155077680767757332164337546558925820129801688325057643073547850958248445203679256977199275665223240680408295665564002557599341636513472773301833507465724688311530498409151014569465515212824712144820364979533212828316785065997124926721447680208889607554216812982482084657452137061578828166791111839080558797488835235634201334994290980492292024642566515614602669872770127258111062951795324861337139172802147852640397740591528005243323799504885650528021069337636642773473251536718358611045695550274530709809062745315067670644527243162379298341774235545768921799207399939356128781619543616352141156705095553345087177086855677907318918414760456626141579386678048291272343752691139154466721493030582126549302670727778136463206412979710474719444559551015442752207454654448080794703961572247444728414111847397631502620760367365073724002995116641351965712665425441957041618807688374746521358309639188684259135631578373554439833310285110840328974027236388824175601070312479414554290064990332544660973622146643340161478878737481779132469190841673010224724661553747635644023968551443437601078369410198808534881100311545281473559339957230834421139575859486160238396386370107507130124749413235589970975004746730925179231812597635534487302550584968606391184212654105252812061005152648143714548673343098151629806014057579372114875020705110290271857348411195582097177077265938916814770077667983614787646997611961290199730022130214453540198905190099305669836725232923896021221783028322425748114216272265031936804805002675322306275833865377388549972100128117704371846875840884839832536029729579043139698921799871974641193062317200113826800367466758640795107203702228777234411538476136810225273539369892169270283607124474317041938553279172992158718874523229548397943070624436516163080684201129570453071926078303899519135588790761783915509307325637181683691639676104212345790327498830829119038838139275794000054269259988418941625769248663429160858500889114348012080674308335940500181074633595964915973847829323024693327084972165014008735688015876111238849342605827929568504579140213284004888004631992322171729022387132648465875139037059714636989532996209731035754621545617264517971325375710227085332638149180048771394356252605273686460038166366358309527777045455410129272905587299562364663811186807004033155940761164606978707487584150234663612796790465103845207015984291380108250357074484534401504940620884825066101029735268652873817228242423596291187212742296442392866506824098548599983711828778498960852009688046968737986003576781633954957104928907813498273553352177194913185771728425813032928506243929358938135422253952136913372806446621081349236267877344079012296894222756648357004182866511493643756190911024965131611684009991741442503906753963570464052724226073179721313287116283355073184923243138275362141708997939307020070540061069671440174809124615150076132530675942749148476991518822564664934379703280365320399658070007833146266226455901378935316675169657101618524091384435602110197853489576907036911691485762689840559404467035734882661934185133456478760077688840797653819946932738893653449380152125580708887641184639044102172511309730412898738411600489955501690641611768135709346381591288164696843221092969161962875276859532448267583620730974922671525153112543661768454973296330036062348781082740506177858008006566671147536412803770027880682815851485537936442041861483980914418883934694261913641058986063109919832879623862501985054687394382779832662399843516759730588121971672835245068900296579810123972813792943850089339115050821075704303637009372344783385171226650578455334530669353865971328433545060244836928323363125762240716592721444653167284628988450354511637184536424813255738796805557876122276534497666422193072885103880675171929724981555338057792934083213325890266420131135472035806170088945372052095065663327369786947702656454037480704142112674545324233366569581789690194035045635030123833438917328410042335057476529442414800859623958804065319597557481564037835961118903670769557224116245197202429722405800892286627476709739528326005991343123154903139041810531269930526512267621352096814102934919876360406798438697492333965667847014009498190826073375679052247999119280165235900327905607832064444506902459347514472901424085559841599325520497960187046822392784280192308268510693108689994037918429802079824257674571253628470994201189867959272660680959669103755444274066938884101250683740321070154548514844863546258935555654425959266659061672861740062725798114017853312286643056539095362794293586813351964777101742010012748423086094336347140489374271185562582486752205676790153795131292952318901836922441247947628799722653392605163015384672718747652600449042580110297721319788915452285758255477800841571876128929380831902300880821255337392633697192037338924920966814223307704111915706965629919777327857324028833725727164144030369406740736412873667553455350089829481486101379452121308427128683883852960197437924493241763894466320647837200001318227434730939723979056268473860909867897542752154139943877319898367993141790931737226296817022976598390350896516617176113399823505551500839783424049652363889565273843406867018504187216695768053761883778454428964504564071327151639650507820198049049610224270548983819932416354199605328434131494614199214283601854221842837615367742416332721358958623303552882394247798182732946241133611659126570713086355519374120262000430987188215757498843989935533390183667072548906464867624944899735011101361748608814902670724730773391521686461246889410666539478081460975298230022958526233133721114865314936042894966836714101046988634919341171514815309243562989820527662606242379831741237473454965417580305158110901678296224745843140409669982219010334868035519044761883976461005162132217427215330343770311613980307593768700257496951690248146683289506520032563935782484142485721028353183576990550941853501629479934075210265762958083094390440059438774214059074282187155350496003692880225656050850054629376340593090408096794228457732682155571130749908177934918440198419237262391037522659651752942837401914825409074216285819811591233773268177702086582996191219079129005300779813654340596615046964173232453956831860560843377416789387603396538792508572453169192533402081109228463462443299652120901500871781682305161220102910329699129402241538393182877874417041144686006029245506762971918494750980356271365056525815516558578135103395236474217152521248178715656124040228013645956096185320513722756371381548570205034060926469644905155610012231597135692776362800139675785219363661067839011208218193307712842384613394833383550020112791192562700314258469481369934583655218540617366713697998608955736341074813412321071037902620268181950809134802793904747035048834889974183047173968926233859207006231017941503642564647527102060101321915926731953773686550128596771475978692885674792790301993277734164332770485354635254544238725214042443110338026752126329329233164320412691415906484565929017769979297310240067450815990439212905414357276927318729151969675610903178593437090444612658319127952786610961464410385350743471705213620558219468927424986268533139632579279289525469267342740453925581528592364989899030296785632351588251181860215953825703661572779435020982211044667086034675492587624949363168819460730841347682297976670621211822333299861244589505836493249721358576807527733001564413875845068182701377045594713402128676942062802895450189812818019863024178846422999356490168360309252533033245651060750507942817947445179561524570014638040463698678338339326140966671977207271397827545381134291995525159340919719094737654203295634783895429137573535364005962755820708337537739968615661349923645446529940325485516093298288372617894453730162946417832626845937001543464655176937243346325016300313076271430389253254676570300786411955703930563966868939382433869069010663728682566216381428640683241782658694230871688787570138428022542153378793143360105611162277463675774477523059054663891196473956215474042025216769380906192698159050169032438709503869815169091007429045208887031275478255621643709785191991943496161601872267532109720931379560593429911092714366997930639883878161468469999438000023272239364178780476052605016023361435344808512344445922340817204961336634107087421325991110373276793716949146464613110886292204103527555847344560091022849685966771602180651316274004314446583802085351668318763457211040435499827875908868545325283637553784914344239893679399705179325018258163932277923817611001047172328114540031624160407503482416993464167670730091810949828340877814082003867569939787402522078836763033088606261769620696400345979564324253305530493165843600868270953106357616386464071749650911874562149244072759397275596910692371991255115716269474058176360011587529954489533651974497681778480156517113273964356307954411487974564691547274482993856724802945009832478585105343583676291475558742508264766201988880767993967097121784753017769607392112369298914677150503523202510367260369480038365885881469189550568961386762320397797875889891556550480449779219573847500489544466277142856350916947074710419019581519654539408309508784891054783561131213522813936052277464363948648229151173948224880910343132574982185364128005045871277158854863227762543010668327719483074590580003987814698014945271341728359989065625288592332450588602527431564620259428245198961075271049121569817057300783901826005458404773842977864234828050767687457656383582368546988216933814538107508091871480255284376360085643922280113270841646622930151966830776147522552286824387851070476237193736749380436509333744012453168800413832892617980212654466550633702377769257352309312624568583655082771831258520452038001599372548400397509103654681678936650648218666115496704588887364226457508110758977564984574789828354145221699495233031198416498584724567998841134505176357726340309913770289025390716221788642118992999432134716983743323734781183816941602552221587258000040790168782098945979621711416642879175328625674826209582617131210682994986266196421975105968319400745040270480214550150646638464512580041072953423496318768274353030748299231565407578051004955708126021919085392853217468910665145313652057784030281992782657341113357510247987059233326811605275748761314943208031613792312561282863557521754809579145351800419267650024836904544050285691702195224680534322480177686157095677027049949372124654068407411591075245288193166422112214353301706777540934523994835802422699783682313736600592362087236801618537201252650251262366742886959654362172322606546980619948672038183575360011992127939963890794976761822719537365979400624994680334108979210685537400167845775189653953781844164245293448138281737126795991350050224719699247050069627914210788743033175663016435474449472404011990869537400883442328531162575680927767611226430527341132847951678795944089211063794665111671614398333679838320669469437643602486839728350187408774157440254010931776818937514140192913854327881376357287790218842456906854012556327668056663605530090954136996738066435635815609077220034751223724607210387016973259013324769913701390402760570127903066103928416501215636991941420202703640578824295685098017321302220606002004771316628760296614036127343215194276495918617156667373958993293594120565116814638003317723124700746179674218136148879516978465301127171958511016849802226209050240430359921531557345595644869798971832065808730864967715002232176597056855573125558740275626801193380394781891320033721432754493798084989236713260061397544764082631924134763323997648726345913207014066702187346163762570124396209418315905149036747189373188992195319151828375478143677285683426235347852511178959924472145116605596175969357939432404296833253422478419808023459518362854566714264810224388614033201505413151092032255665501845124448452141618731369570566486875172284465487295766836498948541864160636542614321327851492941183693352439303020229359470134919169735843884920672724746544859593089787282949090746425726768687724423830692665488530979367232115894643655077818070491804352893463192555880777940462368947415268233174348542910409002770714002643103145248932000395151624035832589756128290151974522628358127945884446368456080214269566246638141882406688694835745345637688032575342207768353214350274437842678499505824073276026956946675566194535638586001289279445597555751821591683629164354667436190761898772523428159335301581691297601705053973272926797332542260205178578110382391098757793247275994368838525119453280793189841264819753694282042536434516951988692288171211898173550042327390032331545381398908537223007608812806536491676733424922633140195721860246248473084828972599986792325423982414379221280038740690162130648088250700104758951989063206606943152532203871378687590731315370985517077152775615835616445667878238405498987240626857606483833945085005154799002461637053617725731967642308245800899551559117900076402082152963034172631624131050213593001622992692421946735629791152039546814354069175768864181231069629324872837721404483217832379824304297322011240093887597256170284184916446546859559280921878022682206821131845132459644270485878495808283098626617983590557750776245336284841656173298275249868107023548243666430550816028724199809207433226345889058441937371044125512334382920960524590214512466705866732738993855692920708397795818331505850069082174851042207886686577595962201289243292027032606405902584118964209247023849629997781247112273038946900059432448072530812526133919175309420691978819249394285003032132674984773669846384366986309010854509997643272342017589420474670666491296900163203912596524796186783813902664528500363573745985535923375673196998664472324992885073428027237673912786734767978528049142258605786098679440699318934282612017685016512799467787559375729910975029567127705519277338146701401346212025128306886460083682166802062059882156674425788583751268073784950031872240053809748164776556812520557777818190450907410027597013601097743009147343478118045587111045122567612214772201133540915852957723565040995870738029439124558268146521244283757030745871204463761443058259890547663414536592066591705289762783841263242619799035981269393112366639451311680566570634719002080328658432055603482847880767731887311086133282183091550143118525793596784552043948865677138224276831607491908263220322984332772081418835687736655857325645815339945158975523517391564792110198075926042686724114566493035957339250458188103891928728609037830372114381427707009427185054259943771515937256985732976031571813226249671589754428640831978290153864759442612073559685104016890828634800988740040050314854957410362459522904314858626998360074402521264892972953423615341076987279935179980347515916737299183536635836992041779827430335680685637067106254886534274470628463792943741598621502360291089359982483092839834500788117653040597355579813538487131613229605418014207653778825911257736784869591022169476817937651860193507320897271923680503769052824977685238714981733999003970129256483886234011881411289457047167646350143709742541787723911743235275900845035380077760231075323051541285421754765453105459812387481492940442392361805464766465822239475596234250228793783472810366201422951889316649366168011774478775227760678409100026758881323722400291930683109185453682476172487661197248571157219248545450651839106468664331290749323836011517412807832220797232666472774203993554656095762291972635433134379656502711078506756388164879674522786197775379741864076422783719917303575129544312843268443667153325935063776299473839754389677056927110338135469580114715536040623025801828635355136080875137462009994680730579987351538301049348770549642637924574177803590595306703421462701605888723179089439348710826194822346782105180665532647969651581087272883323960314188497678399291491996697200403648392535039244977090389414481635647721467410121333224658363855500790276171134875170629660108397668520062362686893163037997663934146486113779106321794284185700059833061743442559168158144151512671010718255999478301620216222222153374636599349684987407586593007948588403379091549669030696754079997651648354994508458310436285558359755230096344623456924236207802427634198194143651578976333824221852800499373855988451673274092208665980804765796987742548111302704469412563715971857303335080877867625483390593602537500958182835032749587931024298629232148478954305556040490979071805562843420741106704331129794584591625659093768142744190473738657326447721788303142908661806182047540748264342202910125482289495566606100853703870686586262710930111399258408800478978345344336192506695750935238307520325311600466788373276971174661529926567231868114349609227038234055906178152258019355182004321261884762242628565957196716044898941894606274938220066846650966896470583388138513374573053355212290526548034182249352288427664093830370236370814718055357908821588106932345181520026273065487344138990467967288767249824874001467521888581729756544799770822661830452161838279078135966329601861479200580534160991394724281751429888294923250760221206950324538777925546300705900066896880541783281862322620698565845927916820414553156134098393729724158903928015610027764048603030993610614904570290222520781677494819412055072051992593507051254082762686272226299037189783403903930789290647002126653027976306705997509784311103400246837829338510114827680461890770518712041466426715018035620248075747513976888522933551347213821509211189383279126792252495755429233482657259099353034653805581913097398037392975961568489188219526053000032783729451900137024396682270681449792316109159619799736653049685996310243823386259774728729024129120670092815557322862892997983280813546124849389341107838771981577384929825028799653218402808379577584161161791668465251194725792504329379755346553967525364149134178754655258107860887864294355899326245215558048592213718121087094057899148145019433522677189182664380494429699731933741380848683165037094892523340909499929285763221665063601970192497161686763867511833062627146610067012003951952707368222172176281684962729705073738286251940358047146877726182251047399054736690540625331100166167446050065501838976083547498856452542396507010606537929570670394074149811371603843021403558096660829040095221294308436404638720267721387275891420624131148803941591481823175034399042264178909842208860905208488105373100244008219796334644045971677758339885695934829398962650128751114915489223700506580367049221855166617236367842467776682213636801820114765703986203208926864027766019930520075769109102173001438872627546995535383783268524409834730193452777306771380462058187852534432711445924739156013851420701754282730076090139035138786175687024077067003076106444087994270490435131165672846828178362831665749405065358104019332504374319786155424127492531560922567845488050186500355730037326440554846131788087299589765576857656342303830464971155702920702150595594587796071977833194169815826035120406836493125226385535309085528494483450329391671543044489670603769934407133896565020461369360129780017879395395988121425261356530943821473229756889566250634827612972611345285053421472534722132371469006058812417875071144813674797725255772585190651923783369198756209126021262300114761623692692582418077708723107414325008650836976398044068753586852720862263234534618391007830329474780124405620081159614188801399473165400032633018019879608997991019914251039267155251717987935623973652959074444928216526991219323382408136176681448527411314012552844316892989030297196957316281034343671134789082185524568652387207636602324288660521471198906474097921900698099282167422690786133869460706519019580597751940332094066054016066435009056688456677662074099054462533108463682246534672594072079207748998891912808819872901781264586887181472424755794894929510716287017489173778709648364958206302376516820065708526844427030864753253651849726679697555749056798523938574769244989508033649485491895096163044524990139805415377998232241930533050656752598613958717268511394347107577877706379931157939811874260203731956945407033007002877393893777463550664783893239884943782773001500241115684997094146120912473799576064337027847655834685782173877212566008466466569575192970745369519115717831702340032068948870015967034228323985074257576466293726080003959033032135623890134748880064545982026421488868151084050853382298151246817419332598984190188636670442160987437884640251460672660642308261178140141493408998823954345353156686070851996711902204799061185261535969005982141090054488245949307500314104524502459074807456440017038167612461821393293568976349647634249789326489230932355223345575956280371173261430283498733125333678178197585698057209286318972311308256368558209379322557934772720608943517495626803231430277222278300845319463189960308918957287178360867482033662485167857873408356594368336735859937839776765301725500582655163615091177833360363864065875072260344510962766785199270987483149140173781434522739263732868945334694484330121362595362795850062096637608244585676049939498443273227068805454874172326808648589328088905378141487447231446090173367092826021836492724159121267033702781294133534689711496502715260383106646028138828635188362446081823157611737669586572520629003120075603611393453512885578413134640087547669214449357290099787731354633232184041233567184918048394397725443056201663033344594553663657266478313277839520484040633054499225929276813540168193302048680175645947254909571863133946789943324109692340428870219111871984266920902777734046144454276868226158151708605785920933128206471333557408978474863583599571866842152327540607136434509080631478427605241002278610561070742409529011505343132612243234730837471225334930996355638394339543624864839056974467265617759784485893196368426187374986569334606122283288432349314547881916763658175219481153342712810038963264278487257044663416702527444369358809465085839393185568774475953194869099315833741381048666744634695856406304593746698064026295315903989544102721620536974068224158103882443821991656084334354586193282969935170433213191862343564201601635590930263577062924561494331494463347964900720122815888136778037302708097627588365193748693045417883671350284610080728787556041803683026011659278658186325843580457996691212487350993615761825288053377213546976840225584276950547336297591378156608853530293057643509765441614575417945822161585213755565833283663863169246569492346331338263862602269501501448525735745296840608092661668590288200915966741203772782161968429256098605787514160470131051668864019409288520173571338585884354499370352685489382215348653843823166747743414559049406274808955808003270043877101474497709491912024257755989704444784076458605101513858727478600021509748564859554079874849931714056519153574597094970187444659862650620994817527012491092673162165602835985882515024786657188333969806108238933298577181545243269301135178627386294446929089161834933297123056643740452578614425807102569656980163253205435240349835231637077662081545621077532902978288012358038943056351127417883342508496302511684706533176562619814416494340562060791620961519762696608674635848984610710823049808478968477564583419676899547011177558799409985040261581454002307378214543424607696063943773107371022657596289680647042272134081191769960210702752800855233467436177751961165358703358362789784852034766777900770800237868994647720602001205172458425022566821619731430685301164009681951643906303107386130606866121912879287742071353263966658306504739648361172423283982241486764744144725528689606607238686716928787198135753719683289459292505513421403894834182677833813536226878042837091617294561354974599362555202207534000692691408690949602216899118634220295012542845322093078127695563606004287104972794329862588487280372783244491330181530627665524293440622968950169387309550124839206063672339429392425937029445199147190856807407854677973729086625533152472360443979603481564779874002520363583571217483507225213678593301685574565959375080265575876002373019458919782063554085098357122623272393685557117894196886705279637256934815808541563534729060306791742122768760343480891985216419055125813336429645298640250397288906980728178492378441151469736864103785808429466252089701774057816885156929588421635375878855829661324769139744680160291567929362918812372419275365263835724645862882213292477234706555361876471336658110376428426410967621769705049442688156356408496899678762339938498779158639352058282599018892999374048336359834586765175876383119000740988232973927103591393631648969292673594301197179380306607089519155559873324948223316832688089726864862572331200255053115397755880885316592542494486729030994110474948611520330423396329447474886510321358397485854030653365100920787092032819160085592161921667673609976401158471071508970264444477932825338667094783355503248079542864940662600419261242993598184227855483997326563051829802399637628822961387069146900490026310624771671726513357141838142741523390787891712843243086528391909922060730078551731668687773533992192636337253059977537477956345655950014378583696772551067766547321476395343640468892707288818210570911990528101017588369803164268013423280125520114402757818321420668618938025842322559132079110987803395599970604657349894313469299895905488114671725018808034480203572740251130931237664933908383558916292008666846688249731302153500962767122659123424165933552826499404352838646393595756052538901252188616367503365282687441036269550678525960861018457259174400812556999576332086237094585541116002123447837865153334530873389692024805180850542062057481413855378869574359378373667882722982388999754473451295575884644239851807065646510476606767742796514524089092864810708295945241694133563285152865283555938653722982739510756391170491664247532948573727748955178763500611224860694533240368090480428862345559776190712797812881572466403124523101931567083848444007552996659582765314317693819801069122697152812934460009899120816516879322578893834242501865393724320818948297824576903262434115446291874289617785760479700217889389014454965254563603027081197464560733194075086570029395997267948876189361283929109325621324518282854981150678105555379238573891854396140214308981664859472212174003341059966385799884181303748195854561565990556328463861670730491493146541757645431083159860937491422009887099733674736224986574478062068614396791354939205474623824097705105523912026966334779114999940540334368458693237748503471520757759788154574121965885423379310918836936579986631612038819503384835523046216313915378054299312689451694867577160304923881899175219560255574252072133084000883839731419255067534709728938989297188948087518568868848603099704489518434372336759710036468710883613569006158020324118246862076423701524684363457511221256986226495444182571974377206608454074301919075429763703534706763356558975097561097391310308916490869773899478716024032993922256800768617125275549058999426999175327085642890287892998612078373436580492237763973878398415659132528631037902188496553927535356272473285475867298487545461014256530849901239658381832952321091742547144057264156720788071000011771259242541382569117282229398392614306181707044877912543655669898705664014304040752416479779049646997059321290128644954082109161041501796851774605137486900974115224904805491947677597934029830130140109471042193674904747538693440111950690047648664342745037460605799546911636427661534324767423799389821070631958284292726870189390826075455753313117445199786756956479866037844849841971072618721934491816524320020501046498504648402769557236682478187113195117416308193210181418734565152883916438766523928065697009471325893823336594672111662515834774160102816682729018995843591694622770981038042151784836323199556232606481770207131103673367999651124417338982708659479376857313269573988827804053669281713766387061484217216499225511220818817768349843043001670594268721079652084709865890538001414310346245941726688341954699167373706564793855870777855787377482924329652166518052469755876737596296668800200189320940984134521676868970836869537137206892345645998419432542364855547802188368165138222641351838637752629862615314775404567167606421949988571421064793194416636518108984774353329031400084311488950496448356400656554356718388114279314312358061978443921532857028202632933968204727258721904233754594578700165548799866856781931808236225916195240602567774949454609894485650333054797190405084054119099017332066406490302218200781301223395005959148392749505580090081676962919495710904111334339163014632482359627397274994088015836500180241507719015104200555926762203221247131357186643785445511132736982356192536943614789029957669743668565626412214710880000411521419931188059481004386334906548824732085974802811067392940913313568077098957245275323247822846042193520729668024152246583777440198808956246396655034070871559606187406337886990106732480736433789964782583833529112353888592317682378192820842656202994633659970600594855684667396470871783068793194474537986579691604701881494810935028625352361161158638854639232649805470939230177721775218813236786424566694009784646518734387203222649342914986926816580002547355264884706865832967476520597353899412638327069090084468766694591254951713519989957126453692930242687678087586281957971392948084093373049624213977162892262837911972552030338271823795909005410268434127985571110708084503183324367374820817870484233920213785920242466058235163288997798391840915521448499999556837765200469510395228543736510399253910893125799581554884989076990047370602662746304641360530641173767175094510885433066321910380588558234508648629179225342525325867802332360249860633988586637456819782235408209902369724817688310375155077818085182689260465931819821748524465920441662591581134816617004408310715571797459754847026790477866205804367644355849127354386516861592631309477352313920522633268108506999974909319852632637037625394573570531622863019922282081967971576940945355577570270841193592566369760943887567063932363837890828376038662365347949795496727381532349014778229433183567027852917713921466827478687414987408508455188985457583890925248897461052463622660658151145149199574098483776954488895838984640289782606861109494005744034771136956500715306285099700959820745786828204624945713844184963047362653654542689086594272108686449361047802458027204300818719637580747373265033913023272041946847600493963304367644856065322445171723611228531387649717321896278343711021793336636666377202201040267031104919290152492429895958452366726302056146851824400712492542624937632087835707979501455050806519904382061735564040243718249931752505961861722932438030958395154682417902161222130628629074188145437281304142876591386834977186692824371094177934532348669871157281757343638348012757545837326673577308627249754707127579084347526681779686804482665599133859181689202324605743145534150030988895377859227882327450284104766364498501295446905960317612625507507254704129360020038691908537061664125938581574063102984453463787388288803641537679619875293677647965371243134027195703855403422890372776949026793100111700136214771499930534432404944424887786070729091103768057854097269921278415057642122289502967190704928321133210732730399437514522169584432199787087489279482448600364221777772518007556400987616729744174317931281138774868927509782686407944150530366372786413729959280282991258048030080841378463592589815369563097042403542743147434405203873008727339425816837952040164960729594075630265061170096026033854811653032595710513266301986389942499121999698706435723607070540350881946556315260288612191439208905594734552805488779885107347060641050606781058593508336641044699054361794757526891907416240781652151548418092237369826955360165309073651665696636593249816469303762035494092705378648263282509116056744594309289264540733189300216954251155908658413326639057992125200449924153650287174925314406227575088020153869837029742806867281316949368448576175972898793552080204864978973387729417700568819868066928491267747188422813460808919118814971304741370303908452000868129871355809641175645072398229749581898720855606072120444294813329142621122116954716274339651128410701733920090151842375092475393447078521236053340673519470131693526593980858430642909216897071638635705633256496055941004153555817410385943245061372161921915626634397483288284775857385154767894928976579995254717016084201408734914960027582616166552690681924980974968960329898569578711147314843295073804945819216685886127996390550200141534013026550791600441377462918908981642567319974978038031038760660305911915742385417773158586571821255648768964363424520365448886047811583386491366195287240746787898150781548695253288209507195252778943015498645560802643466158786538902980971952150169431039023079997277772630466630471670073032169969710167931304802604311385220864994959595065119031803224467014784374340706014745579846686032933745674837977630072189513358429045935100884570755691226117026555385154720306120866998142979681512821757150505924704298517485667816034221489087645549588073504384840834345057129797528398200515350599524436634449379580762759537381650458791603162072012917805741985727553210479682788736941569578361038209367129706886326141099180575309074277417795623309850457675842101393811606817767418610669863837627194912287245941216158490897849158612977065412284140700407955990233896483415200946584712216540063597151512773444416709028470943195516542427252367796306112634961342312364864718628882197252915966696089848170751997466742521008127573104311355554309768630834010756615976085074521042593936862127433114812859414136611104599425495343509352939122149445461533611798509675171686955533101533815913783499171546853051932383151078037298591768353831440694782204937640203567022045984798643807514073206941329193962790735984277641988817654156909812222702115196724069856513830669745619494453608886619723373229186630847511297719328627612590825366806859731077160626452833035215353648735249194903615526844103172966094626261831130345785687412067559052177071977545730679861115087937815729147464103857354868022679862531193647280505120468805938899513353717888952943716184293237688000130793248451067917163892904068254167410657742444871153854068908558062425409802616721994494751920139687861726483808891745216810073374588898602935719889014892908843121867432041356046901347511476197200443324328991231321939409641868807070813534611593146881212500143016665497660004717193020155729544776677513406123656821826188861302967147524622439605149035077950030418461111493173834781011547028045981692998161878172509189291853380001391187553617336282187555086949403025598192823788006367762061513257287737424817339570415043183821279509972181592387051554858092249747109268498645092328976597761402548100173676700987425547771987728664136542613606214473549296107984957599244656103700070112469432632475440328760491318612451557628544793572352503073693339174917558396571191101783530254027227963563270566659900574988486476777711358506301816821595086411998380275228334392024984207986520288639811182266375603275956791928061738185862032931290725159359474464557557609744568101088535432043561648002994033563037792034837472858924868054839949588515105063991064927794337278647506582657420041338666923928427468358851818231918127004764989264041868868137660974496684718803533312900727208384275696424739516386726794368162643331035615082161051159438606040346138760262558574999455432912671158249149802561023670226618138993470949433689745861770923832550707482526157573299157175890484049990787926211683386358525039566412801742991325855252138363085803818118877698875281255661752326489033610312745300472447909629322399862518703679705121437262844433275770045947801187315533885201260583846658588488493274866193200520073869472641563471540368771973085399769311272381583308215604341073669561135189792219195009182273693937482462368190848939156596646614984140917239820201365345901614658484088662674294477010359904762783439138848025187703942526167356528137526920639677004100336232733936318931095853528480758084851172492619567377464251233775278968548660743261889657560810578417564844854162821259304924775148679810524657161089682860307309439809999226435807089071149196897221342982908849811877559046901705738169279521373448078720706880562826637719426842108810158905992691553409660509676779701241242156309459362513935110975469899682378041676805737634589053354032939771670110765050485614091712768594719288263284078559210439969684595521573357590695952340467899010351656340888723941842848852972657029180712769832120039870709846083704316672295111247336232873467862398429973249947249701887167095252115643330817899559859997127576959375959375520550702052170632394754099533047992312386564246354314331089747853943254067150250359433414408675072236250737156875352326645027076585040435267727993040489666213862176368094216523418253879787821656367003886699963079850630649582925441298589790089782409532057338845860417527083266587868527545238539162534892391861303235420378736800878362234583093589286948360167762225061360449426904332265463773072304677633458530074306381396170030032956510078454962576838206355610591906476912045286343495329700864517216433111403851363916079310986896350558577032322981019277124685207463766670052041657156967818533550224145540736626357664677782140874306538588145637459202999845132548832670058917746735693266060853536810045639186427862260926782980425157408203393842108237584556796741956123903047749439126404128008998134286833476780235660005967121016715338425206587799654165591063880982314926290921258834797462718202337588178810740505707061064195461339163753470974814412587198705531821404576282475404589228412413888088695171682250228395418216244145829038111780822816517423140161624642240413348472306543856660558453434957001986281653027449492370625361820300283472404869803638178426211913900602529757646348087685863476311825061028482227389138627089772242715131232536369832873573792458240577457556432731370918952068946001424943501322980451390262080250952710554286704224809765358332025298912031427642764278187583490053101238461730025174047630611991540753410336508181607105288636647469115176218003589205799770524233327224699493103455161868927358184047087537723842678997632741863131815923897663750220155709318587280738721313883294395546503458608369974041413890124267512247388649714400626601284717061388472506079936856359705123763992470918048810904729974142913020576791408917318536623132665686297561300054406647099853528300620147641101480111313703352535983934464854392473123529995809299430308502752571281010926231912883975318119007318764808652393985367526289273223279425503605445494447044605400404885346863711650093869765929113284994926514473478440005991354211860460311717260041715352135247431108577620191757154200466694390638909441125308958352712458716222778738993843451460423432543499340917053250962035754792576726418703161746918212972980669797931668130846723996085745744285699980977406846394110486325410965336335350915088304650310808858295036889451346910965376753095746626422976730750966660319395127484687192136928009463722639113717878290355694135381911347407382829701285178510100922768908423011368423381202860720324066312053327755714077780053743781237990785352430429410544848724846329971833310225231603408364115638060874660514742685027129188991061457067287341231178278644724216091989577551842677452282868379765996545357209502510207999130318375525732308670183739724277588010760717701368451508487501986539319514054753973072396951808321633198701939876972183957096042254874288901628338826029183243141004769957112503279579995144523568514456247628389143279171577043384915020164353019246647845018100922057219774596831931332001904070977190119088793668382407501543756746989336670500183711145388502478517579605512812479460432313253042173270965258384173630876170479291615074571041151903450537775459078713633704054260577611768054520533089097172267192555100737788425043485937799760620023800465048413697096364768974821910418945655065723870047347484141305245750642629596085006327198576339241730847242415438560298249955233281057933331087471210591431844765504762659453193325332994460334949789524795094826588991834234896147881672014062465930394874511768217791466620490787933948002889415097697260291466030184220466194706330209836382013521229398817645409361977254621568315676386916860120307395436765252660491628173072496448592916446302628510604286527718602193984490377587176972837721623965666505188545758793954150106007644189460644087074646521002520134928123887491523372786893711982026662440093400526588349112418900343079566270350932827171305705317212134416790513669701396189382526829452166067307229128449513511620791559692298523855421929098030339198482392460546987320309741279063224603874802845441747349249070436357707073373239805083611245770397113481373210428107350094138208460168448690257777838747535442415081917134213165590415165794072575507202706438998558525392023388425753959192866292570547742638662022821305861364461407054278885654684586925284661858674060970685335871637416428730847295901905176223567287111982430749738417182970933798121767531066033370897607007399407631621246683801430073291957136042472319784188959056549465059319371110746048963596148983798461976610130538898170721526996105133791275390660267809861482772394995086389583554047608733723224113335284961260821351954299806406994291812712743400019487812682126454821436120730663468427323579392988870417091332718212576302268052690826043241240538932529520079151886839365011032003218455954959044416480843577503857352719479243373511846700966380180865910256105309082567161605888045482674849680139824131483091196390681618101534595521542309311910917566593142473328568937249529306586048826795034724672795564297079097938782406631318345093117557967689240976090398782505814148921286078708929856119101762599557785819558784249015986409568362133995021949563818699515746933923661913240271290315841365617182604487554135686785999404908977908638448818749144547008844698846347937295175793940719132955248198746591637670929613586036585175367938622464686299555193698182424510516502570539412942167481810225519044156097608868866916186915231834533073005701903166621817950109464072419224754077294598327034252702412325161366916012169470057420444687817485929124671585401052451843715049404760980906166538277092826579159114452620457315300401899963730584245924998535051310359335149465162551367124292892563963075139642533229140190493713933500213648580446788819887429188224892312196811651118773184174831726388362950107521170279888701137164469020636563465816408653850803433500437407726146427140799124107067468391401398908484735134412866055373324798518328058155963442396193224960563444359395496977428152705298933722868171446329213749319515656795496453147717108086018966757289962771045218530783973739776727562386884252694104431487010139635171088125505057211036537257532955893062942582918792241166153776405982528747545433128343466910658487442632663337479137571072610794579568651292502640965888986936283506410502126027737067480444130517200405105177060775648472940351063305316211370935521074595067743731035432340233656686683093748686755462935871466410645963849023629041977284063063739032203064231226182777313638632215013689619144106334244276474685298261677589858360281840250006792573428039638220878984318633201698862709191096421752920879587498944706847839051016057585239043091028323311809907795268908509909871702970133501896190188876480582683710860106503978244862979156954547247223519557738181619973669622115254416352360326625264940258906448982670929790092561132114334647893893764791665756372120947107931712229047982156696634066289492685286694370984251519583076955547894765137858905048367545427041332477048068960053686254723937903894823423754712405553221569696881359466963619362574866732241050064735337069229898176462924847687647154603293793478555067192015020306498913482237074057266216563494521673041671152287197426457170633917789766125524289343511866878450272233487016329525290338733413755239518012454027380156776567076425994055160838368345373819780971700702065745652233416928646367261312332441734386212133497877406741633231081086951111807511055460425291163817642039584944838000383078534034067069682491156007209765360614364115320005503369401101815368664565413503508214720274788478406454605590727066604849573840128323168721458094303490929336418788185005703487811216437282264435360598684823476006212905514507410032258207622704892708089076152718791688885651599027324894676589909305253576690916188410171477489990059723418536859452452377061681421397844144203576527978939376892355295879601313751764239183012188054371470497303305998782286945544817933169252863510100770402147210202286072000114801569659004797976732344609045106781963364544854378217479007646023864544838844587951798931605673217589836043541555348702206779618364577053318526355493698264918777046132644844857348766846261054157183399079954798046169810183711732061476366250036025390349910519203129188092955823003785714717486782986656023470877908126259917016039081246150662092014216331046660108796734807147063060544319160999345916596466301895748515125170270510727900463272658683751879866913842193631922520821954416491507451451396524734434216441678187599293070198644326795121934264543474058675120637878043699081684268822659561156095059527120039444365867263930515328772244614790252800371219655878806939325754417570634729372984770969689627325806346801106659769342771294600101310992280642984169639486400959678945701471495698183462070903338029397356958518882727369889819309173581135809678843821120450570011570168657158159788452897200755812208279083643086782935796874242500563405654082173847104035847521061289613543869732382736652838962365515798425242042754338965015007158052352011800380936071409856943716522016680721649393679491445901807668111267556536281834129305663513100932350938831333987162080128163700098031084345967348839830606283640878291207069379399362829570876829434262188305331120264771291569452861406357230837923103731555213336280594614555706185936302495085486518011235653450735051754949216058353457061205753242475558412346759572353703871070984897003245139790705710261835032464656546944779525344117071737047568056216926761068300496291221944795596594162747784520607015037267108569918015900994564442792389912582391231561614656711638525183489640870835891430977961892328452407647794973873474032500611110697003994381998920660645127254874403100190133880174112566584380639170187035442874414754726312964222454193207508932687617877097130084293159677977031284867728256799472624005891840236204886683741375843317190825054881970086082366183374307117114828481311008093434557675357313495535582524876497824857934036943934314316264105897790598868681602021496895884056858026144992561731394691290666523494879975186003797082075265128373052740815568654178208573518489341007055503839728329155532130674860229070326097340242231447708356720789780673712504288175528038368979455840795485875587420272770112239261400224727106326338648045192584987968548218295007597376571457772115317169421324963914296712346181599017408290108442906560592648236570855497644946944191573596186957506128935955228980224272575168878373519653965260290792722512520909361516546759689357679477458453298635377546279923889536125429685146607719817614874528586082072413788424176437111228441442837630254692430532898375727170044452556785980247364565585582718405590661434692324745936386399371911290970663910033181775976884941124422110825614276312589572836063381468261337464981461669180155441705709779755493470522037078901131440876544768099183017770276920256582029053874353392149311012877999896751583146770662968254658657172453528107825883171716238350464324806176054158710698485845981301637571742357472483959799029373552523496071015642353696501394426689201761785016585439165631209166469277084233779951973934708014224285405325063572956972066384504697497415527666530633644635488340330630844516940175793757579307806918899940273557883326172659132450442605132086424319634161230593004685930573830371348079351712836572690159340668610549019570217238780130340624856749690838911147447967043570345445771296453573052750840997892819799814642484413318851972916207353326920455380403127604686272449768873971816628810651254874405727214716387602010827222643416035794488691709425315026339108819623289829409917382578132208228108647830391801917999735038487743021230543896089605751835883329280419320477346640660727566919472029061242101818518493237604710516672558279998322557951707881906511909429319688606097711933604643588905945625774384100500984790050603087462059255707651594286705602001588581139823578593027265154206006381551489756185066463962743995987011606754026466067072172003609567668422765959193682168619516565936653394551544408387236009858431736712018159577062299668674847045410085311540910858880463587139192897041260603108785298807070181070683944344426873316451306869314263818110170104560504572287748667949121076529996714378735294286765488314252044361440856280916157125714842934693256093954753820830315457117543705473734688239054306793967070531406981529219355997702705668526623244609012533165544675863882876501635190185515753748905999959109830043917420588160540306716848172058769925027767305477689510886818575613449371255303384623129354575805189374984672218792059360611575313728583948387935732564155016802736780612121956008842905997170480290806166162266327073575212284472867081653922310204439795953791660132369846834153483986524437533844873307509916125793393445634667635576586879992137504556572279548160218411556479991782525631409327752267611692077033772564474053254033103836791824845819963527222116920081015556741900808857326437779204440475406374513339630991637510913282727402588311199043767636470977030294028452317365212807012840832898710594566236136119236977585692879322333513138884011398855794345294486573213168445094465142447153847159317817801968329373772743066007339415452110861564404839214131612187311472674859366543328664031004528567122837480387939210943775816572267384707802212517064168819957107254980114220312124947430603468633133907221855523670561949199351043505966387721348981549176260535393232197048622202950425799735017520943925312926779093516885470761950429389264100403652190224369923786030400780264593413706826791763887472699550471902458095046040680634526526427496334731808633221066909920969254224078509650318757529807095241466740109711971053472496954629837272811199625888658018211912767107199476822115908196727942372919810714525015100619698279753088512199135198383795946790411478484178110823183371608856780099363996982492832214908956884479083389313525328131187231521406012282040328246327680489709058598895682022302085892227358131804532693336022063399556199594027767305007633711682444293865232999691483931364803600567718009553207183744479725692550780571587613556074188933304971015872338696277203769332032852352596825086683211994147676613451308806241720947695581642821452903115572925074064565097412969858978423619891942256352209981488695121029883271771906105366211954122289871319792511462529409431679845058959453842127490351260150547291479859098880472103786568373265289400124750882346403217238875892794068407541402180499826453181941323038253066713023997932486839883267431136950217641734347295244148178960638877520009586911677812383098227870937322820030335383957149978436025365438130679511561091140250387426560389935418009291767727594020616165295435425490644038942387258590247594182025959639508500250111665527278911400106291873625274042854549372183108591560059218307777916156681787415118294877162795568498732830820471215717855819723296409454282731961723852851488330736366470434155225271609881547531707028265434549447229388886267768669939994202194152202512494689212711805258188387031559187310178503607963940426364169971380233570280721372194265540727143068714864933753125628799029123752105490128307634308634922932859957897382230234013228250869948088484468044545835832235862020488802092181183881444600231203475029900438086926372139452863702967910310182170288513283810372838197161253127002722010583613920488702628927286220379007819473005886596939186332005251315381546612093778821104557337907702131918680890531807938774149050372681376999252546813433214796554441286900256935585436820887067272682915083172319465216294641358763270849778984630879636532994512918177959151526223038020951109164688956352021430476068039852287168496461955045485313181548909634034116072212179379800413173488936515280359508544917361260390806502338992264118833676880367560762737132220482480983560886997740976112933282903582584851902057147576715897558610953693873636031643842020361202606921313368797868348877207465242588986041948009302806786541524888436941909218073154864476536235143273910289569215312608771539635306362760502639257683817615492218827006448070393030313064926662726071962351753143002550713894437566690781512278444409559703517383311540981939658782838893557706238013400490666119608778426427264818009511276417954632050443310506776295938570577554017212062311072134592225382561017012797075378726867701836725629992685039103654027584335035105168453398216289539297200032495686460979500463679381402610427561852786064200464825670494729381494089255592660133615278944644950956496997398538495579201805756849175280114862102891122059721203546522494772105059988477972421114742563413099048410631616620887248905915255312292339780933524400640450134619437304090358446442472750936078957443019969415313025293045242218455145525757388176860003898085097784002854402687557603726010668081370912111313329367106489174439199288660300661429724322802313501486431040275717740776348639203985828895972627164612836309639786671070702786895920541256683392444167088791270168071018862298535128905983003997561506268246399285396812928821757794263917831665047648003858703712616284478917318138728063004635251760104113441660569973837180140671174304083392355351572917508788403934684611729887909245759185914468057683012729866796774140271463040912599532560101940269473382003816888916379430646736953005092177837666673761329416093590078231860350225448673658769291218376547968874488268012041548246936933586706037228746637534565540657204183654393665448208231690089326033293963756561080721448620932064908974491047147886955302158706059190514337654082124885485044982337101392628294442813512523812923075240033167047956686086295436581414612322030091372222151642378929165756538841576312524767354361736048689971500139219642530243743704783565802390467244615344210039303508216315010211110188747816535938479453394313598534245041498938375165519202198571488811889091165167187176874359096189160990093904203542616284737336755604721972656718733702499613784844961292712417073180005929170282044088327632780705586784972607674577396457000074209269265300009679278127035210417214083107974049344790985144456854186303510630101655384569145732319475528203672514231186014423219002264021465162800387855682066846800669368011513024519764000620242813721370369431327507380437393634278138385986531207513721596724561700849140154570996663647915297202776390717779407619761669962751917908967857085416898729907822867427047906401701975725229528518693074399066837182829705734121321625644964408103146494962538443936657340231174028063197781814444150158061141725926878401932030309595112631740123175640908164462285997784059980635803810654856839997209887550718892177626471466644408991660956965540629140637209913159862345536685415416168700884214174595913031862393908789577558983962416609295643614989992565231448863054839982082484980932701325790241780607981634026132866704568801364557058364527178394845449924700256843511816805034077742331973674721001155763651163451616186310595513627504376678689872943004635079408699666519151326699471043478753356644224166531241735259376397520325773420747505332793224572418561775431836774819586128581659905138172616657319232857645357928727155624706932315404032091958327819247280206344285957608356442406500880303384142025203689244352376927133654737987884293089247239591410755000087472108810196038526622948255837715851159460507305830748728596199171343977327320758098982199162835542078861144857127898378088683842523902043462918094503104597593651972436642835309214578870625818796579184069411646349920794969588949948969725054388114892914200566573194523160048911127927121101526839051093947950416997645922014154378842085333467796590763467459300805276300921671091360324935076446399731546886704614060247174174213832981750307926312875305975343257529762513744058967722830438591350997077689623798705824883551702269389037437589136640091844138603284170018817996754464357268208352985245005470177925423412507431922350660434165926536721882102801490383312585370020746235267220772981472846422284512458955736167744542188150088855936735948813450604768232033287277649891033396467857220045815608062988783412100460578551629153927965359735590112242209887550377522213469837446685908592727251910072921343613084335059959509369181185024682832619439001254148685853075968853877854553044516033337356159830008057469407921096250896443429380386077872236018707107612399117739632496197727779526651151357915483019054714374966367337632160623225014484111698334883546998566935708399255857081670806858425005178390349893528160033869071436095874188861285212686455671035655416775057463055580239854083170314904809785811240547309233883091635846429482542212694587504781416485159508779691208543468733679075204964302711173701667135294608505184113030820098561289339028258687942913728218464721773796976358753327874028978645726705608561250705608950708124288138510801946681082847349033532060755260913318322847523008608780011843226460437121667807406414716743550410193951503277141857450500053655232092043095009902375232987930065249736324393629705613139479005246130604942091972571545466110292770480837275507134296914308488544268762371555680876431034963548923579226972964823738394190564898531126289277957908193656226195126751412996351440697318802720084991483507678431451821447266237684990394959515252350787311101843428705071454641065691453430986708920935647908408478042877193955107001382962983474348965053949712791998335456728232719247891455192456363536768039142809348356743244876739532660687068118349008250612306776927247634572427332666368162646909492525478645337265598920841760210176204784004903314447508185140802171784805450942804040445963829554212556561960307256023461523427853402100992741473742149675408445453384069522318551324846930207517014685527858285298137058773407316333871421745977243201579062321639795329269438139391536208735663263078449627575470996749921123764788445950765758902296582988637874046163266430462065463269554414566414883776311447790726845153573773697983217012566457567420551744579440760597366202421301897131378725385406698189800732373161777385525052055903384933641104206372856078333572740173917468381930461530762963355255106878514238802672765110257402567502802716966463601856491037247473265473687995725997232068470970401214275891392615435949824563741059030503536623004283359980802311996694806980449846766834208041075939361434714241906805593027048209437292152651969335781002670264481699910021655397439114754619119042406431678923527672222801814698800038635566495545155200654208282411689653552443895951445680898310032361189504001059150373682859463487666752298390944131143553927653692440919725936817150799385955498083709296326668189481915858174457015468671484368029153757223225919429486760772621451630889208436186282049638871095630625191774156366299997603237723995925043370399389721831435348167111851966740153709185621842183758206026676307323618395246880462819871225042721183485349103364170692336351186234118911479291435514452682779397942176991090196287260796359704218805928299771598889383343540633598540794178349815113931496593012006355429233852886879298803193185165256205765666762504126044915257174959523709928252623403127418890792187439391408094072951948363621273322333121296963394879873006327012981608965878449532551515365336388605399640945753922378472619008038366827354512674996168920581667347346285541926152907874340246088639275715385850614607339300017117851168094808979761665694557477107631613836587321454571054811674347173728999505555691859380596802637815932919225525896118035464320199315771199449778314894183542516697709419913500297420843218199980459165192252805668586476158645010010618955690100773656357918036881573850811652640413304518689706603248919477703546484806050035545681010843671456535178471318164309380006331937583163428056307239028403071713663602109340947470380376889411963882174996968090563251292792098105279791449947232267451782863590028466660443570582559396500955615820446590000916089619952424327308355246329097716168264302491612907482854811817561248475130269578216983496711528308088016001972367774357766116876034987664621581054240446442731002539933887657958953833852813863317897466746417469713171072104671048615535676562243901612789738257138870377438499898931611004136729158095098118970319879120322523495854003475108913477941016071740398966551011179089229050959046673930548113588699377178246897179897267373104153292300058940971608361475163511347812158346328181218586996139745368699484700125193564280147012890157530321393206854287260314141936021273617330258356707375744207467494199813664273026406265580373553660389043085621543079764768570746766442865901050788382936344018309027538911928147152873847085995347567411186995664419902188421205833213255932031973804837340535543614752218894648377427645306589003866805293446463785806534001596362195225310460368989514168253431698869645472489885543642460057466186280491964556622028466174944634006764941513093240739022910451239005273874280732601417734597579086414577897070983353909336123354454747348339938674422160917874613451813461031678301030600740393891198849874292016972047239594164076296397773618069028270957835496857090472318849051056140049835561492291624819088913666950523471995612052273613960135255846922606665701863137777613505353472423532205352696773989113888313850624389383409402004939901222082119515818683595187099648381740174145906845098741137042714205629273176764904972619714966487779954922399587294478660961818108277010600854997420786240918906044944483939655730276767523435601575062188498876249417944571266425477209911846244280074126449076854460509807800660636950999308489835426011023338447056356531173104338783637455926514768292911063705559069171537218376025656876893001135777491046244268015925841638662537293211462094151036328060403063776471385883455737095120330733816864498542671039198040102688231163998406466219720635707862999807627094338895455223482066786612330415339586818176504376388123041158763136868953179136799853209708021835877588494770938314069623445390532636305460478990099730141354495857653548823678633869764744744072356064847590339661867966200616895152213616035775589207981687038281272077014968796218207091566231152230368790463373250965982527743927593144553530422301102353702531853801291944774491972487120692004171648679804457024919835032866399246620126392172829734183417241587445366913665078443629140906067910555210285450036679184525640250088410438387885513943420794986370371741480696875543350392660461637726212069397194720103374715761840180655338159840296731553216144247163714190563226176325644749249686003018680974610464970746466687557745400493598569921170549140054096898854260965975523166838508665179341576313841471957979972597743607707579668261045964252924520902105184631286165648615461658964386403486089709176335075627087902442444622771024483388565255835067210299706671586395190796261212256238406253787731404931955241962257413135526777863833464810944974167432727146590323521958969213478209609007704921168354861153429348662065125447691407218523148818550254002505092915170360598463447051355665260225264074157480493223829769492839060095795411499974572892794230478996480901488610750189483799451106830958369679390686093250285601335727414301156621760994296635298161460452126820190625462390813120763153913764828765974265679788801397270915264893022232138070348196662555945804746779880080444241961914857014103164143323439738599124126267704101457609380377429832175584717701446950650154867287163218238360468408967085189062337907932105745849793071954026955957358402443600777914439833579073202819736839944544216326104515793983254173868670634402019069617744033776635259310739598231831131774869558346344642144463753278139280102597114888773006745149463624130357738445497768725319916809606262498491749737673036805127072986447325740489292169341174417024638675788732453411790802175881987645553481141953003483103417649760629224734359295321825840683817159006256277899649263848114509184401546288310074933366536138337037540037384976397985435121387284977359865768206058111319628838721227003837608653277908902216312524939837595383031290341657585998459343126713944326552722731263236908338528366743769773817213200017024214756516999433336260620061438542729327619160925125648107426719238403890116715709525464342259542553678359366568332719258840939049592109556269880817548756777327329500348577000214128857962721900648051028219583043140111539398538901301838607132207799288994717837333797243002904217932238402592877543597476009404847363562590008084716719161359397423798415117923983510461121719933905993812409047198683571612072970351986402407150980550136018150427438933834400509704830484176531455653893402118417770657273384337034485736294013456223800902762278301448983295977697359552990563047499548396692674745106637507933495578251395158092819129163187932643481521991912689399737427252086540248093238581354043603688474779650757698498892025256278616175350056382432704794927763512642556023476285659138248113644949368651313493864935955432926749998635645941179939565665475957292026523802096865879339307317864251905465078620528722624560400845254080170459432685380692330809244706896444909396663196500839994297679506781429536434290736254195983460871964898539525026517216431340154809807839274444623675258806951403098787476960938700436735288330782062855941981572281789192754242172271528640342425397753165457233126628654688431780214129305459103979347521198689011513924992519247650552284043830094976364884976538805976220024727223481423469276188510097934835400688106876161591403265271668192935211385556219996654814483069286135468181885706713713134087662627904825970838539591972696192122538964546181190991212931919921974816017608433853973842340336663039630312346887568910610497583927522896325031342330572407839380529999120278631404033548761935798591695354069351530689502052647630077227853512039794205213730278237263890856988675303327213680234736083326476012360653975796383007724748716567108132166901391554537642449962666115823269470267803743744414596391255654266463171390257473744796091264370908986311173543053277521679533805127687991192931458075142950601365666465533882271166238688640643207188036706975588449318614353468963069693220771235134195490714624192264433053037563406255767072568517337792144780782433264451825014432416144703838213798979180951547616353072468565803526501971860524249925398696321922525094083105602114208036426681626258472088887998321654438000048134803641502231479180713561127722005100574508137186139483166562690961811941984620746974697832560227717675844251501871393126914537263664277661158289379140035013278119902250476277770830031610571367506548027649065470286605595226680983623798777049247578009567852825363963882708722797221821003989044504721158689900988721304259345054669340101794908346646705832774004044675270697504313171743005568852422085881473319523065191334778454038471640714850831377116083474295242887843233735620199961804291369678477132741602662144006556072224639971600228261415016704448615134639048674812936126306903412474488061164937102054244589935163380379284982412248529334690240626617256242880918080271159317490291992566789774030864396192357203819872531431489432625395695525582410085303056089936582938632996620963422288860873878428828796041127623213651906702484329823972153290777688627060975202340936896299780862383515694790620580809228421973084530856226829331813709004600903822631984685888621514306330457995701055114313510319599656065791971669975323245016500272888236200601099959725151053513574797011471537026069563112723869344297899596070504488867033458506782253833726778639099215572597902320858778522411481440930921092777593146496778456332419088535790468911703244691708246209889572788770751924409697804267242769460771478779651645221786588027114725234305650336797824458423629465391135288684731287897969053965774316484244424819228362940972096653732185127009887815744456301866896514674789231744225171325669924232493709109347404777543418860866260386867523179681272021495566094254679830532332262096171062365288674294421116559317785904019928268513077391862503413187977336925021153665969112125993452811937672615653699128940995265886973949539085180988748872961957112005985745268793787152260844661488965472222225718472005262306016316162246368848202744152050899835679230006959313074509245989665437956022574730365903165351899622852785895657537230022320433830395512613179159902536264863492177479010131949425745389182930310577324273004635276117814189169924934919264153656382535949231598938357678469450856022202964671135848321872348563987898011296464135761755859175981747769284829978256943091720699434159726837539219797222185567724758328643700744387709427604689063858736481849982646269484498861941628091926824398256685104483584584357127748698553882642943886903840250387774457442207783819418881894861121452539627108080003727581735067640512278895784096276930168664724940049732683677264199592490540728027199745448608757186961769694658606507559886764397578904096330886511277202852803296695555758023368536841856536421389093216362481684485041420370127215467493358571721038939387067092613735243238618118450237636873117763038870999201030098056588164095462378952202248600442892437486692363377848949649399266198914999285504493264124635681781506955768802457890616770040202693212465525384348722218768392779290758003894044196923533853635584593731048772258591104682728221035644531647491854308435689111152602944673006462899805760111153001088321358320798796471904201851004739342223692322740022061197983848275032852931582474735936347705844800289188452840833692909083593881075090538583701969452650221322501875343554659599494059047548855745357258177504712460385925772508976065432809565615787393707967677285306647354603965950370555788822119037004932929203096381917068149680305569389242357379351616561934956039820392246860181915715561787886337252744581427332891139298304931619264301413937290830266907074288774702307697734156426802606331569209721006723844927898880433045036651508236561441881771554220733331889651628548255228206794324911445362614673370967367103842140139592753258705893271316347105653371170795461882810839635949486646693670677213951554469943847750652322494669461233684178939538801966681944463225186117939215463158103710650127566703988355186318648943706995936363856118556155087758427407317135770062657767818145651416667256565692355892232029982982456757551676137711769137579913505174597339293584289100369324328568292868952246622808977430582498494155006965617063540745169907004526897013331541848234473851616658525545006582451887012345916435973140357646969134518146661842906324997306721244567698640452066624201938661125511099181618564081344220661935004855348678904801989556437210562629965125392281092078389429634707997000938686126392314159084181712036497451311597261071594313690755106655447789658620055809023551795650799132649215729539290330254635307032019541184035462697873182646920944943510956697383503152751966534796096493782510727183940145608463795150905035314923440478691054756742646350993399733765789528034962391118337732524758663167226512999617412604469073245188357583747618556636750485397655559556231956211146240735169538832392607495330757324591729682563278948268207731135682789920622338213758855266008344989698909777334825482123970846170691732536772024539451943496030723759720030299288762648046985200458966149107252043018372272017436992149998278451658943160728351730785326442571610768776936030089727483741024925390018487486993723770695649749281253396525522847094075259737953908510348733250783689915151221089828938689591848147456066082497183350456832928814189347085775797338474858802502628361789485018252073375079126065788309084668580868827799083958041507987215985631097259800986648745397239931556360057724802599135356812074085148250393200734083947815297931671209597473211180909215459693191773541378498133219515420855859071611369836228197428314149620428378181860330326423768009510955105905619920758639224787277235782510952841991337322755665624376046976885348055053515104506538275922912331466154069953418059329868626681096860349387453033836069715736559934547887776745949030561452294758796429750954228845941501664634661234928834089818891216619975736125775465231213873983358874187587352325343082579501320989614603591588623713735155304045249987918146759490589466135015325447929372536247128973801050558269330571263992162725922985060587984876442234860042186007636340375893017204751611492789478162736945039971832197570082016507297645308080244876747397567078566646231921689599358235684295915637596958364768807700767105627701331157492439178039050951223212395530735581939053695803137497167448615069958639629300648201946474351314067332795939404736476396142967495879988855592055437483266433002477480849010468154173018407426206935669037617524852542329452871382042400696954803595107620152410652068980186340138153397375262350255822015732659930735062220275674504938546708862014616491694089161650809770564190231787274000314823230408544674520777877165929178344513724438139981409260395204611648715462151782452892526125853378790706761142933813340675777206108364808514196445751754526591619770971324137940311056422835459575095318695412540336335978404009691117670795345790286175724085914759780377398436409046539483104375049533134732100090728234943515724050957647404195297263245728404230521696602081775824385691100545985439066348028853553268108391806909723784451624605174560702376692105596845713270897700512979982757676074624370378359131011586154006945155640239470455749714461215542030219737293854528109588319477798705815836867804125040309626816051481290806603590599407519739038415573319754356715009404219798433481794369964560650414193129267441090551300445780127109480106469246500101534524344797948208277253072887070511220138547376665114867522981699102411075838129012498988852263228273355183566517033435351535149608829279953766142488247920440041947444265799327335518919623594956566068713959918290127391067127108068421174439118085111086033807313397919574242613961947900979990872914712932794597086049002336855843915772372949209953555479794264882640264280572901003495995764878151936961731841221241635778066332532413365675961000551494782346942900401806312834314884815286933639112980625214597524071201048093225911026952060845830079364301086255093544698591044359924531710021186703507884422284161276523461732819711953324512498324869587899282828561108152732104284538590055107896055723378451981893230761897691200766395430236644745570617106154972147942952323338763532452194206520489779091921528815840308699196915641493859218632748210801148787517879162612618983121316625470585084104344092517083286524724620845221936669308376911154537021796047204622049315144988686882635836382641953989395406940223583626866325664368288535717157818633824083840579707133595399463359711763821606982930864374170895370339543392870321077673474878072945196985619683276945348971190828138484165489205655288237376938640075181309163806304787486955532935849972210547520151888732213249505892975772483116763316299744244454750184696848073401942907333490736973098733968981460843097192037017817151828408155846919186880250351913247627095068742597915002121313641117069131996927523460955714599415052776357206739035016711219071374363146679093779173407628128621280012908867640695838039756736620747585620431214595304408572077310999974488365168691376414272829592104876159039997155786329856947237707491018844841580583636686109094646880638914869668666578263139911109783920595356090057712697494620544748243525668938775428788492613415954514245343200686997988737989876336651432739165345151158082073740124838805489988744726945391215020401757193615808311685297455107168462788548706607035664538138266254863878206221004166510544397752423782681807322036161753569562700175135919584831925494417151171323619286971077795447605226865873396516328054304901727273940782928497969844925677108545602976318422186402148352984921872636676825138947249272902736191893474670391675122668068126916754103576073005959529410519213738930486908349957075386775009494659809750514148062634213722156998198385780935871002567149717031732516027954705060403152035293047653267791745647236121308788499210701811468376490474177311146719758041605581908112775438939576723654073548874785047145031055198653865071121506949102156007299025452918490800727590539910836263842552794984716565187463274024306492673581413275350985974272026195475769099042537584456242152412642900180782183370643292203589025010384067863442978405853399582179263626346785216325323774252323735195518787612860137775147571899719869763438795574488586290252689210791810813232246672953035678646629101235684569392570840809527743461197444933278737450594656322205780532960164531403806416200360234891633777937757962255338894323339600726743581722389629602296176437658346657432298645710451707380294696518959579457543809234930139214891875672794915861615913740359610558922236342471262828965502286036566819161325839524076657155197923574068067433179239542362515817412883853801227585531371648788359818017915410036753433676608587022277670072517831395439060403120049878154855360213325620861410390062516477226646956275985536166698186578022922106442366876182784016888450305462011687767378304305113909229256105194387575310064076788030169538223496573357036906553434472838227003049344551021133350298662251799085123556758311672477169583083552911965810612742605216273475975385754445855748098652222535372573684227947915988408243480329396282947470246932428313133770806444023498771682185194273524793305128479672293927347633318808277240409988849927769645591419039459668471062470629065810493498652744865563704209252656562048813028341740416966374569220662972036860261772156641722736735588668726116749070844754033673567914950455355745854979599780368341785069584380658985726660631603154246283790850552035639813160874622361228160335623301724612362986890841085914724042236336773339831810438067112378691183114238285274384260395619502925722165953108792028603810838394052288043727428568978315363682023663016571644294627938961011024114891452130641927025694027320236227662724401294334988874646022020475869217022788603102256720204449466355418639203909701488804753615430105415636813042293286543005027264956744883320869160909382215932599623996904727444924321782904590017661167308105874357153937071248634899544177595171418650700374498659886367812266101610308900511286395737328238683534513861607200076648142786755483809909759346862229123682962209080650376385168456020534422217094182273324659303948718440514760492643431759698656688308500591163299465158899178648307123108489508083358981242834080628420763072157248908229850942957827624060692721095084968660271515118600192049705887485530583651203995168457140731205830240824338788490441363336232648032996029364458080109952231870543179686893744929928844842911176530563377397019380727414530138202029193736677766491854958735818848766986544404609221510647120297380208099082501819940244371330619768864334555911391218095744812895209691694538913776024976340774288808296163672865583759164623576283707728037171302288961805025002407349299124897832006920845004647319770666559562703427308329425379001120781745990533576666747457292921373901445266374128480421729740058327209624297879475788997978578603192152976540027248061686362597691597876109537302336107109586469291409934016054721761309398812102928770328563443362926094684502644351935676629219552510284945028269898401912021220983995320607135127112752554347509379390714299461359570240795484256366831688535973796598961943398831943167245477531940597147519084802739790097247928296702596836144452669800246149115635957939036846634512478356828716463207405451102447970062773745261204361485021627398695510413785247395939979006896491837875116767109913914623067380945132609692509482513953678968213451899878526433299714136511741728483004558470401183665034979632323236855862758429228666038628630961801680135894785134753198728493335999693520023123998034887080600546904723883138233208601432164070355997327821577179141811224735183086802712871999193333889261750115687196729872269095844804349366576147226225279964727094967148846094420311787329130908794760448295413270766339047253111442134424205652079112268500687743065178985840878133151921000185316180961386597978493881677313332402974260989803841058368507599894822384842233250070870907557135914390357920820308692848061962936928992292372903367254394645160111426636347601596072618398520015845838571635188154834178432149457743149113515107396863647688854943349334267884695487000830274028504981892292729659130839855167412485910107655177183328914624651685337604437236120247510617624536596517537158423423327839282605336392044475102304598285573708332389096635013642721619478462964987661911522200630822027124782440035515224950435289528124307779942910399763220918672514467197334600690706875473578869420951264966073708293451429699078256270286273280802399648153494601749256984201917055844389486709693877554635030109341281518027021079847874646403807435069930664543999604968790509097016514857193967910136862341617540872127601294523291788688148597361176649037569963900585560921114109266312275946569821907607954951023072167569382444837175945435341229804210561727194892696785217131382634223447194235188491008703226439823867798780945274942644157518481512566117362263784407102078859598476731291727634620510302812878530180788518076291376100840260761389678090875049119059809083603628380140949278975101656361873370382522050458961580022214990283992348956247231646032263060563662193087101147796260703001440744085839801155101999880785800346376915629312372207165558555521578579133292339693475919403578608931375446360061345217633370203799344917103653575338814366494688318636476641867897319351224483114482577773413493953810204621317395473580559912760038926875643584739779939773557597361642999718305391626373035812463205159578991554313813042208277494677393136410264793816151681161053939364798950976730115929504159787055285528685008043994206445109095541912220292173352183480709131535794597088381948263426799104447713264523093378827162600579726257927879589242163350120509657764726129712138586493790414544115228748885437496997238453381614817038663276029763429358583572224284903741973534769939165770502208269574670102217892518917285254965845158044252813412535600395552220602631956914847863939717356925408149546713536261697591367903277131538754177294037379369080593704784181315465694225538077586988232899306478751130985385135887418500462451762774978108023355154193310534979897464455110900383042965206930559225139206245541773306065202622698662138859629726688862221538317763225317972965101294378346647189542765344480461424745596827358232317581574176753171901902553194754709844125658674232252795092066594844233562495900535155477396514834538385993590253422143627410309927549002080094074506537645377946803725163964333142741810793126124927765482162053979347474329862407418503297618270323742921072929380225624388768421275755995040956829830922551093361170738841791446240328034061164402320066003680638504195037580602914487059586306216540703656215037407764859124170664594158611019925966643083380198060309734185014903766068426961155569940018759634932538819532410168308399559810964940555352224917042414661322905635453563026845511347729766364928236892292482870789332595196624252501398160046752717977872805140569649991699714553070295386091399580651060128657997510453906034995615122609905770513858389809918162125697868903250888754601805194586605492972194627546261604120600370920697773415290797134482169264336312290343103400250633630018664797841668732806929704995630893290404970417882484689903174018163649904937199535477327963900890836420777683891106085785325364883659855996528479037584804277514274859600346542815833728578962482808157194425419683384909216702514428350378246399775627638365024893046148360838429574825249053140044625272185874799380290359283105588389787997596303023065421567048458757942790589794631408990027485815903899762935148056663747403372380311766598268555370261938960479104986633411346249762036949587617701194130879241829963320619396377054770262756008033911121721370608725487846262632024416116755154683527577274380110635643546077984369822998004554996511622236814368265127064413167896076435731437651803152298161493602633763688960990168761189153058836310963367277005948449885144974390942906008292069915379104392914667970594894842086111802762625401820912791256861549610307417942531578246625439152431040701400420667684779203263040679599468418910201058173769904271828843244611675450856540590745112018076303635933346421763558031913536334017364114971789831023585213944069130711102245104199592398342431412062235563024452794177904687001693702964786555036277458164697542099492862485692251198669117753274714396696684405254492488354015100377343977217281969896195463954074325523835229026116817580308261315287475260951946809249482669347292707405546404386504855630729650676163306722897742225049096140309684236503830346897438623339043094103809402274145236446897965600328918167578745107777016061367535322287825064539803889785421625429919841401993485720679549848034735285041563209210743845504022268722029081286259117737485839595190676621998580025518964288525596582069081458981227442683599960519599010472980192147966501011087686824736632582856408318258115606788696295237151694282202105864245349813330918373331201872935650354833455278673189374500111948054309812253786104663856322980301046121893674772632467294845923225392716573659033699556202758233643444821688975271417164290238609763401085659249531403659241506293588814666205734813418987819829403836899077576231055297037475448348427574831466367689911503173778857087783716292962471503947266990851706407796346619275997314817950881148830453267044057349499259951393241082875795171610107959719249774022364923514541691012021404616830147684913764029263403326024504844252372613099470542568466666468183861414266291364493728448478491794249932583114409191234143321306592217573559457520433129954325432003518765507982919029206278869860163336674596706624142083761690844721508563669656383172272516901226742911492924366088014693763496394165617519039078342259136208591679663245904589390570997281238738679445773189182774849338796836028735587227601030612459090100769121053826373005322573476425476256232567129389589958308954667061576835610330035782668114474016214456058244550178265420578048076808353542519008862169523673047603728406103527280961511064443078601527231946273956156878151439403159968845896491874432046127951834508715929235782438180033123742851430808247130743602210810802198079458949266610668775242959891603787471371126840966246529283765160232160432738103203579909336488636082397710776434120327248708829537492673266158668273702402880414572723611120136966172063020742057754431674612476985788073539748196257361118128633537529071093618827481540053667308597536572962335242315492086869927565715109260453251559731100807568556186257947415416375214097410846994046489866171014378265630048700317465436447250864428090317251906648401754603012699015877452051601952356949192792759527545273903904388954203841495436301672175957336370842808404725100901857898681466643149935443382558959925232732513737327114736110016688998833856664496751005602619046989426666853923822440914833265132023439914018064726117537549864832718552367639470692977925676820799098908378749326363809684748569394516336158814543587446867492127004609238117266172708024592155226939660665434552978568976432097595253885343606754336075762842083157703830110921257061789149285165674815170424306341421866630682619968934216928685502683843321236549019049422967210037766370923123093667629901254820744555799281176021156448451298251699598245670213234524704179282153578627588254718212584116839255658099258512469889233495574316879610137113520480186552403931285469254847671271419919998222066890312581074303339880415622028053248322948403416292513442888158893842443334091668953394398651209417416965738539128232847618734190451018448930725913237488099281634700973860223478477781281682335011524822989383235074338180426343052614448149932136174853931913315886762542164234027956531915070617610612737475488616708728805500585929941460523193059218806734057581504885613097247547981136372933907364991100345909258140989584105756206080270210375546785153206675332403409932592768785499810512593972105193175363246818643882129656884295767388953272348419915524311864186966791509507496358030913202395471030293352621726584796777677398684941767825729956293817372994792084544283764990293344373696411499486954486322161598494273672412243121813509594747108596932288283484155282859513030764136151923974542941029077592121645722663943413021797763978738167153579033055493507934839634740719054257430226882082482940919864323170201092322120419855604402203063274242133825567815920661014144784761055355355193348984711662641101070060359984356237765816509207918400360394036122286214351396452068305591775823647296029760417923042789742416779714541082326010658059840641356753887559904761174054078876460205564977199378863034106166223527148365954653150096065488037821082915416519801065457314095758088819606721787572994424347603272482204348153457720841441798021368658728686832640007696678429380771341853840184129525669735154399840160308592330247403311602915795081699010486543983249038497920642254617838855316102720392813648269516119869727887938862256267639449313234933960932051162848983278637930149698940674975799758244712446335724730726292444373861764439617232684278739361200793521623174734245950030626628053092124968068365551718787570876502917043102331184168583574483941652529375052803667455354706001591344176521123379151790622553372644962037312629454441278008081542708524608853100312366936222904995015601111117480282219306727552118122381044825954518801950451902625383780582071462843181191505888115196121460671731800335185015430429202198006270625375705994792776201663927605983204137921763661732780669282516966679576263754487325723422344647899263881679618626788718374251895590216620864873970979963627204177685748059597767296066800015688453655084671414754841868474632366059275687373089329182527421431180918891213174919321844976660576869733633719780035493691905184412021425525284731353437489478258595735840596464373125350645671756256640512011831736956800283605145532979019995489556674433621689895399647690701695006114370423584823252105986795193446399793565188498732327195936933555738010292838439722373803228660859689320011026792576387245877268908137496862101205797793359415504183153478023518197473807027672715986981876907097391793309603556700043148633808456151194483817777644137536044965922233369559141459705439356154042702260962516457347738247672853650041521001743115897055247860018163152398254710548327452391994903521550527371545709847913262260506717303132053820994640421493600139262029698760011298732052862602709913595896266175201223080427858321711071548362629339810052678393709454627536884706068851712848150840837432802785372075633898798649424102356573654461481113322008364172847164131487193577532602436570112055015189761896239629507285058503361692917903834493824147368089189043395928275393243036813788746479039871058871641969707723544474811357083804558460188683045934845310523298723614733329800680269825845354210692040012495436565552437193583668499216125855949552955604668426035979239366503911624091288382659517281752545451018972448712785080840435380182915043271613922212114919585292611830809683270024689339899045595500739061609046546513920925875935810576709452481058056607985292539283247798842808920190612663252944315799685216084941615734980741778581979537036142449409670611101093655626489282379987362604211629483845704832919358340987684326597149500961481127822664431358373660014143509360462933751291749316103533631517439932924803639053922222606717494684806308977252808112710889936746391582299689661174837226868986410103423857037488571927744029817877590262178447762549562567504099994233110682351597122232886853755867033961035517436953545947888689567887003330715408747605970229778600974300153674436468473688303929029679290600308716634244717039136221798588253125226454087896395144379581110909656095191613955941017749637650455188612662557380904583966566221855100286399060808765862891505631282780576074663083665104779837063995355409499775355001303508028417948350117304614196428060527689803442332948830621184297970174998806322419431051343974838800833851709307720793309711028698219359691740292691823012047592514191592154732262826811378499334434680561080523130022937891772258884567744705229735761524783524716251001359339990519773528603868350789286262803915749435353661311158804085546362090066497297777819763453809774489537802254213884844980709061222475369219041687397998890976525642852616077003064328317504857178256598899529617514199925702918611237013373771578664141217404672215724128059882209560561314643066537556964073996836757070145110366908026708921191416398537799527698587525876811799552195705727350832916687224385551390867220814736196102271445845080426407465336639292537470439523528272577029133374736712639203487041725807703165103730138228179595575112266836553297136567915253247405849792831320170859897429031252242984940658365728438725164512688237964601797605404101118323713595052605014119066608617298846207376188690256839068548346889094312007092403125506474656284400661975610215998140551436282951234406440973830103491952834485899352198987275422570995133033550109825377379936420389632045730603680010435462727695261704264469402734036171206893320414847437290656133548761001190820773865452725789454331903171095234933286873539108818343100353180826323986277896356055667948381204454309569220128409377464649046268995590012723902397432592784507175219017501017367351354650306914404272149102080175760115866964393829483576378931732271404696479635964700225893086326001288824093271912348397767054815321444475037749293903036905795600757322522039072627996556677284976093099630490446406545143682974865903824861619026180345596119006998947134203657110896315867222308608056564567982277687156546601748069798445158786271982962368499526908742040535692877148121929544347918263830693244982931689489288135658017299995409191010569627877175539606468753951759131071064777273390464189810818569812822984270311626916958684247413128598208759903629372917689468247375255672872496441257439234775118203819675486654760528584307893155050506032786405010862517564858907407820318483237117404570443459387973515485622281267834550692153899683999254740095604222765047704466227857592346121196502153589504361862710528118712450465689643219754585418403289910618542824203955236025787808674795389712477700783149844441326547291837966828176551938396889251694178031525112141236542695331212316999353329900239636870938398482867860399911606122798312314155045427307310859297738473657063075479315355013592766518854358683140739488109072265292947897737702551426731912868365128868856965580373460569977034841988462160225196665292766769399602753026216654194942244038021503790488572195334146517200207756997712160377989389784424867612433456073812439945827944101193886483875933707158536320946748987429500982615874234171195996025258842305287811801696289355228774857098651295133665197855141844590406950989784551361732293834063662493685931171387743532052796177633292506001964298694711469563858890815982112657748666224964253865867468231574846655140304074190993454013273348352166704651844730968421138932937890931455374667144737608188526979915141285053731888515981174356690935674019023593107643109186588094331058688448078582945217616372785552122196350848103075558629030468395827593568931912082356749530354130097211431933726845763809536787761455429374676601723054146245853556443316314403276843911799388279504529606161214386597327019241444788057189273929347902286665795095838504439081030444420003655827626340054964638759263370405510088076549771179682765593865107213846857538953831729546084340340186728995950585805828232360659754988405715368849412167071873232745395928156415839530721449506890145697123539333415431933356511310780468330791158639292692204618406013672004186330449972675677757538959781587045068609363455288211962750527723240269823142478189730809031966245131532394527588711804161135472675357297188050116111249391028393992954791104817941014628034121258640375141367528999634851557984189125912730117920775821611317061706020661597608243291357523707420128087547990421945735261718023295480673338324623945808833311958440492121004595254667809895949867975286823142567811707262747442610093559694795160236897660069673348044490649334047809703158028704384874801828402825358759989719533184193272488924560317623131543463050826286579457776327021677875099409895659819933855047369703167099703339226324075795030683879890666051438297179565107975015545122179276195694281389456585388453472588482328448659699198843549469584351569472905265061465512982770956404141878680385422188380540313836928239041708153833740468128695549144063975907660908549367521982191182916276098552355109664469421177829340134239556559054228875161169927744073941262408620723701031130534986644425043619701342822632978082342810203740947436998445955755945234224751696935046019403913211133439403332974981226701331672323953147709507746729878446140145453681091435552969235563876819514534291833548135533654064363689540675510056509625286003116135458696146120100215119579503718422642057257931620351471191425439511477591890069432963935027594698433956144492739497378826467238980382849001324225541428931072070124694332881454606173117805440347452701724481099405407403961207258749388571292765764449090878204426809345623303933906209392896572456545178186313586104363814836295780765116244420789172833611435507632567073385172026411227973728553967773964963506527687092839409409919343913111719093238595978984984773611574654570598325106441123751773124504429808648870259902961100596748179244133336359688783280544052019166162198985668877956353224812307287490397833597662417247379122973693188002476909188004251011325833507882161589085262517501619870886892562774001477778994326575480991522531968709847826054468539938556506930680137893590926776203378404214482769899469787416368966286771996117743865822735576554658785746233952951020619448968337432610868620260388001755586303328528091212747812534398988207376398851368384244234139299393062479045467425273722176755681967090125770686079627836457207407231854460921377901226903721321902435668395975741269191830218559365098041070323058476439344754659671186062865857404588658799309441926358001521292130086760456860331088532325147597168284299387989965494543233936347211413468645466531778137789339862312098729006662930855792576318247643963017784910271562417445642019235958204798634054108819756258822474727006129886412102437644688507198009752129452615530338364349892883643016563508663246089715075462630637939800187804565662479684566713885816220077082869970029989269824455509687008240570243291134774461952033078807656562107222071613187804190377737098727540587017703988134684146114519142671052919444028373126093032936186051675623430689262487238201926306074657165652335793817265622251303385190081759965061905330471933447761998956260723328751533283347459435162682934322107164165407412545804062064919776152051719367503236271791298819019488159657228259428775293753122382861754139819260739828009640704930742095429013947965447411163969173540768079824749592089961473580576886891916939020067069313751435319702912891629142639069682030816735702737882859259430537093342901339183543049847979133774762881318126040287829965136805678676623629702518375507079080884570157415949635336028675160141489252072882194768471123613075704200279677156622310127501798077544445546567320082643626506683640798695191484116797337344652935763543411966683073774834665943386253846495373691472758706950907815946582260999907069069501749516835508605103412864213047325720516162876225472808376448543760571422328087117160070485103996302336850221266901253877528044457472574529645376215137112361239467976676011799263264732624524481080099011834285617015726383685746124483676092002139881340021622711846969072749379099005626736623139479639658679216661878701521541907425262590347608898432062978997261277094187737915339799540411171418732817187669414227953561825373832850498651156338007209722663356782828682578168493750867699886194564697196930239673756527948572493841367398101546229745443661122855505321582818257986976163418058388080769734090725583668802299027731582666945517420270588790178875052540257285568503640481120024336011831176789625013109525200553246453729927319491468602556990333672853722860364672679651671210679043528638650193024976103846891656968366120640468955226270045776521899879096055028247853508417317105780029492498029581926997033553859183073502416644504078556902963015989527683233353059464167403992063271162681625444125323145286747429837337224339849087414543621332128614948420195794108428549980371130494094636331031629045735967070641212692173741938947011646421859727122257844777955501328531043983086675558243576881936305740765944851744585982830282207846824140118893363461452040491614381934924712145193007332678194492292831833958820548925480120573651719120952897254346363327408218846146015486015413849752941300617107232993019393180188024360847657961641936704924268579370150553589782712922276504195313179955939569908582945437255598349607599685807318500438280544600032501542030977160471955682424558703799955041583368385723947997488731990019521551490166294472836984242768327364988163025424262330494276761214855362381981662553534530908330165425614130700484314445494026148543747926938513069285930723054065834505064707575356746807511439677363623609596907923460459936622388154132358681726317696609722869726034280632400313907509153654055141494181069829920998829736019392479360399203867052290125080046003210271769302570884498713107072492123236764633076310934182350629434074911308343745176873808560534112014545944188562489708004640050433005500064036814943770842602124820324491436740978927908375247880453109945341914425012214409866326240859983154293418068079961175094041536929443209503073270198230601423846049001009026063658075385426733291342199188198994243937625098932218410399946890207009368817004914045938834484570021110392071765942132830410784273414633033185094026721420788528989042885601080629862050812490913446172390351733458571401829043380771751650343984234204029947731977241121476122735687441736880014236766441814514436225976582398466029856982751057122407985512061427537531892550817799344309138658779287387515983822008050883418201872844072497634731071170568749946640371844110860808587204236618547948583512126390317866669631002155126387339585000830913514521404571150760064585922723936955057353988842639810025134291076904414303253348574439262583677003802572849116754729679923820797953652232739058037149633087228639976742720747400209354518100691136158486557061186296850604830148592471763642727133611969286770692372510668960593321837577109282224686902635595880980807287506333790538368096454333954229944447964458933037801608132366632183848486542923981740835385463472516565217933883369834494618237039262706026392107344713087321040281251138415713570534435407223817958204313431352213014608061427543628210970517005590508341743561066166864412525209170868098418006883283299368549456622839529904973221222027676495705177866765371072661531385983478298669066400433045541144025960385390250493247868112944659888467150119355340657504041889237582736487400127927615450172878113424837024341848760322074972734424341773098282120154012790270850431402323567578950402079271349969470397813330344916511623039357233372722786277958235753693368988658130731479083273921236702425468687932922808149371934991027097452121923901644193111425739037943242876387048654533836552991449310435083448945160395426361074273754750150192254336335818529662322053559449824972939195132932834881329745516816443422423736435155022012458593359011352420656188142992676128915235164582356666633880326805855340617736823589445071892477448640487911362173473257599331983266421774598004832793680863004824045970026777352684823716567860777931792776066786417735464925009483830006913369666251128338483473315184260699912804899394673128729684958633881441269494352045803101236339083776110970546541967788390513053767844545513705619209116064094897382926685742895663198995645541379400275663415216991825092506648453829437775777269534423946014988778389214174076833220168359636595800692807946315778586222074135033520436573104861511551523728425271637951494927024458519859808490673808564768323985799717544944269487049584274606151725437613571868646970714712508132311785343794238646529217301068843900148077989789894891786264840896573288857463391858303201507140577168407495186681931767780934651299732093131766184570288358814788421838296720958539974947483047357995531454828960062325406727404034452290122452984747720673777423245724625796153460686318827705037723394216650459391403547486376424685225769669076886645166892549675610049349487294562243354158503913319636453084497087619242268841679312130591583264771829458487019388458040247973893062815615500338895141528045482545717322291364775488387647499161161047907628965012956856285685068090947228211041521397576930457326530767056487318213743618807930312860164232445883948051812168439510460653642011192840170187067154989206588295253224920075886432429168557343298908287200107422781351496779579019637381215322540051068004370681430716803112360928896908653644045398307603477596176107834754668894531788112200157049545115943534540581352440510014129342812138299096670426360233792124196677851236678744040382714092153008919794109832403504733019768967528321934942015744303218283579642525140725172858876729627442466396285142014368847013729589779584379353101388215485937939518378725368003178276333537804236799947780219781825757962548407926906813812615079392355687240673969435626686238694175193271075094736706938662079556038329790163087465131550245345112110159956077475584608972242279811650918845362300588738955230874593402596388691981662103779680451853624211030348593327700589753492263620415509814083776570558394070451318483946127326076561989258155438357376868398595828660872607597147888765348672964324324892326613551199438876047360656817828742530754526526394705783054712485891182201015132735869919670240828612266906645347475549669018955434227716719822667236839966943097715593138810092812883605138089396166877383887972226026039971117648779566650588465590044214341581383404437615854254931575089399006227001633500476435719755829039673887680546062999268634773425147585046944315880008655472663705750045808130463561703056576283472340034498941632850042515249034045766568295025636354609895804025689647790346501870220107952437152738685536581405998455583769287112649456607151553990451157304998136516688209025877527750983685391942180057175515286444877642963181652542016838531915462502460715063282212674079155373928451888620432109367533589068343457599498824591434950021064527465292609393488796239071184789166909558103888886062498498332137768420601885121199024478829146562610368112941398291862938095189656461541995527565742187955996078173954387661526497507188100024952352496005905971198382228473000156441153726423152767699978010438998436784457752528540817162080712453970939922740868931329796599235195632689620861745755403304872626046609215909587997140045608153057129858121469430132181848157528126471924291318618455340976965511405103288214961868886417570888950001663453723288914699642591944994360502816591498587193771896423917625403278082304858072763687051069272308711874230151638140158012300528157727643673472911509236579648909139454084587351240746315971705333705682046854526937025814713113453576924885222703589235761711275258750515999143610109120641026215445964081514205783811787583582992359798347374814288562611510773174949350894559965333780958875460648763385414194261734415744228187700039949359790634892827644039796399881050502423035998023441205150156009076631380515753871099149635555795930796741644607159831593902586208736942036871329064338174892358652015888448859462993388836097023388134016324221987659318996974198158379768406809758791182702325601206466430553293387831323220417546323803870971901275575602944369240821658407921175580662094779681500910909512174348229682088461611501911337385048554737158483128708105267701262203809948967223535246000863955192517643466315003774408534116582136966562623279513697841421554241092723311154745615350454257708666923875972140425573748467144173096014093874229601413411357409108540744900648657419104842778411665189435636179701355863432121772496400915543616890764870214583821970402887633319542686014779650677020798333720240465739188132895800309083914409154125027765669162550153276147423295614704414935585870285039045466010534056608216126839497108663769077765803910842157375643516528559038584971571939418850931002679433140079276531975123210924524550000044923972886286826098198439651270810144708896882450456209673041787221829958681321284863695515671028146083210741801965201135975301918584747436941740574352966530975977081826694556713874073087473482902564396109957005255441783430286469869416611848124443530278951182566642250201935236615871802183544253725721326230023112830045169436845367234567470222481719256713130152248880295749409242854028525770708592028506713059637754365000721420311458767388587970612796875525422595694671900337937415696604561224151015346393557018388753256672242867432430091581622953403536327279007562708720484220434092837212799395729111286148467956052374727576375569515611996626186548485311005865135215785780271584199526269162822565968616938526440737056103035922319259419876214587994391043348925508429300037414447549647154919753787649110976807908267466890446353561119795946264166310955834783449563891674787835863191925028690030056950435000862484505777514855135485547686198637728865060841206081853231281026067007398308307923804385110039007440287796402458547075526897016056837104630286000736962687873325875271861459348988240556277797392449069286157337467953244609982204169127653076090580406660176856372861351206310062293097333363641075713739242910214397929351936887423771116948977937189018618036447191444989450839184294049750018122950308775003898413228584274878628924301653117271565648856856893255028172925790646051943049387892893658425584128444180750850093678253924099114525902339481349455554884337287562568166563424903762967862856628835393492064658271897714906731839314184984474816719654373557569794011998799792299969217576735782783529503445422606684094893860129732366816689448797740205964101902071111486841362614871781932149550154863021713897338451988776291172218058895408673745506225110175059427137554372451841377259574018131543298323913886385884776474647259581974285578998965557694624264828358590285765442053705990356230198055432561309382345353564007336978411252471118644547929707256674760910356118766177482111313130164157412694237093660850859977524807405899257857570604945023835219159591063928965744096239296126129966963976565707849516071678412011407435858333688811085700121073292373235871879913832861437869158821272819585098776037015779907612706643728347581159189462376618719264383670220097127083714217759024298078930598731956667986516566675817664274894470783126321650582646976841159310518224385109358316214053418044961618367503785316402564437836770337016767984702311143753775604503329848657499915575664875376679360229437185704941406794190891045074390608141272846736609706579419644163090191754216284303637226063482938154626372270786723384323186219767523636199853974491391138185370273455664522204370780319572446002654095188456770259575723643411924564611702324933088417340603391684284443261788319189229189139821907129114167261673421485610689519678954601952687039712771293078209336673516817410892082536240426815504672703650387780675512867389760574908928689085048156097311946235302114783773733741505598403206022893021107036795584297616759184799835165444786028328813637524783266325040306800964351137423828344467124291584993850173841293170798078712460679615092863468577394219222469668318917531543437954864695510032818917423863344949869922611103572755346820640345487582192118620417217691292834136977527379874190485627137341522956435054805679894344684684658365473381701630328814804190395062200001155342081200794191377449526692849409959165419767498120335208314484024385034574624912323302276193526997275292704426893675863203819918092030151357463411639763878198536244596126831794431920721038485146656881190516372343636563217664516224383285228648549080415981326504025982889779308315252121491171841555660527582003658224403139396426609116199860113164778305778252881330279275629183436733028152816649960790339123507832639832191613526580641166872016042921742222896119732150937508683946209235976302766405798412709984336702896145283596144706986178950634201109295459960613001137717719817687303360672857750475488164323873808281086079651104795977000889077932179988566300571534791031445077261587349104963843446696905665031107739470828734812886413627164141796176056753240110218331465112430579361609083926866407936780668263707407404526060028743764538308473338055439175757711229517797764425809860898054008352826372984704287181139777959043800524003371334063849651740482267235371624717071053548745726115380670116337375865755834079462852489659753682658441545050474682310417163721283177249684090922481739422758388114352231464017990868485780680608964112932289289914926888382706257721771321097219443426952826343346844237102301049857177168785774834540406532773243125079032417441465445320850643442528044343296531651029550377124048317792190701448345596002169864982798311871555979750533084694410246163119660044273394983693307536551189781582573594804542916699817973935445897790131551683266874292198819862459066226283707934104769455581787539627666519306139793711266153231067909120718553297213128846326753705618034843739473182539861742947593275764551933515254717277157556336039192254763094139467770829976583267064913958113751775227310505481242005683226930124003560198313946098469566981827562712932373927727991791582228493229380106661295238807146540819765235556558794650672275023234037651888725006509401867753048607757181779541485189923111803583218612282397149618363984337492981370297582923591842973720173127669031002717474333809215959474514232390771904109255725232480046617532918718278190652353416627306877870641806185440628716668187845483793022105007265484312104446532879829353111105125382865117601223766232548015602492657345490291245188900582795013873486110673893890458666088046306337552484177280198510112025426686306999347978419338702339860002973511990268074800231324371444223324201471048584018697347902524877090016581127060464174093929749209306620200452285133075694791739783175731995658280183489341331488242181974968565657754768350358508375158082104671056481671608358135654171133523923688653486907639393399850605760289858968553123367491344863413292633080361769436494296805024921373982155336743836699095504005591597032300917477685493476596261730619866547036214347230310055944879756000781481424344936529606218492507828305153028243385534545102082183998565928296460248902268395797214126282972897674107782454621685610111642636028813433349134256772345926408551601105992045870336310644389873409402175769240891207561019508671109969760712833978267124671299440674462095308420460893940305815267619780918803002547826153421063368867688177901212202358441851328008885849459145721897289516175269297870307397237471154205836312299208252944885394359639468293232631321410861718687676709268468611857416781014678923643615250491871778268511815861248985495117714986656952959490568789498234136075803932901675285284319936148636067562910149696863425709351362952832447517648568260178265807284285023470147925705835248051732955815947455386364478288616354292508535481766650640790011840925405097987807032494722147809360198655195626152350629872844063052293390333842887761543673417457956721723357684059551777943545692062221894379290095570371062604677671771038475311606401916710979316129822759698654134909392914688572529698083414480387468758555837487096168731614039279883322836502094963209619061941380939360125680414337122654458832496047092547382287394130265722576881157653322143620023478752221973839930783350986381283183357414730006110214706283990255652766011622960708956724866686512647076316634973357093655139005443942174364988595999759678933578495389856419449752707820206281926131646064008729390284796716064128645880641277557376471666125445581829199820389039888137662929093735543571000035698025212608792397437148436272647841488104459665610382080129588532946157258236176820289086962176831913394503661759100771976898170068994818503512145553346307998634299673586739938514717596713537974719053284250559098758460954147944115538373772130286101090394291600139913530021657251319994567373538417083418241424472478512828001346785475973538239660558159282901056654863804650990330217094964580715682610751583500421891379747455273569651865333386622166525078218599509690630329520765537418041349766651708997227873482375649472306151471496516256594608911012174870819638517246997407786054357114730162414196926158730212186344199926759498677395069230452592112896659275566216366179530232859489271559749272290876287817701628070131969567270881491039249551937343659469314329039337231274826613634309388263285813718286775785171704063331212017742626523292081419775996718845122416722985715756490460208099276212686720422429056171520176437116999109152297994129181022556518643559306008216747339775186291883461454916754635096865254370275551320132876664047932597859154591524008338194175546678316883776042122786752168116183350554967140176632798486000920907495809151488637928129511520334245360706670877735949149643006122120020596237575288465213552060706595993085878213221485429026649943856192438043733137020333071481230061215785084616461132711893603324957933766589584808579506075075870472987772664438107742577534306883439123701727363901776477749467621129445080783676936013297534645394049450642652034389905442750821877857994992953379059649394310623728035845191741739730815657379227600416554329983577787219432998883431743926231744346325298456512420343225923848434247409983093443703295588603734376187642863340433689754670939610471051743961562210214854889813318324634130274016291912336144899315405741395112816735474741660817352348544600304588351967517044015844286080856107491119529524330093559630790110790280394783311672636707420073309356153316837352891844218973616933784642749803105806627338284679418149834326235362420485601588356072885587143931926106304072892022199442893733458448970207014833204270839474393037069636774860765120023691775712092043232866568087505366885459872043302251234463886514634392817800920901430036928960009843582822337156563822291972377218681613449909099879574476920134017885325165162716974873121992946774331052059402888880971426034424263717396865112607940469977194177384052940996508320428322574628700300207199078121383611273585084593993487735477467590410906166203901092223256623023713187126411696374011273112346018200099819188414103791610146885069656294234999485502264551231139780348699686394914573312833074689700676286333443518450681778202592855487087522011309402700434749680621494779817921526222054949349304023322437667187846653720270176464433044116091911829694980919461853002748744615309939163389436173339541796084697420244927622630238227414022241008044055128274726015447402233305109521598465292505127756419835149538286600041295901013954767422249795721366218848615874426281711163773190970393566171940111314600272098272488856815908226199879648848610520029677954640292930381822015100935068440011223477299512145359942728251286502115057182863091436794302102583601922611242966015213540637154054819520469985386328668035633330281285292977622242123675869371006767106257877509091882066771643995761090675985619613635994322327827320944408103360581272657644047515806020548955574528316948897261189352826487698875696622422999100516729558125763013137754704278695203955608297386582925480652804138863668852428156452779295653611939742620341693775720184638161410518026039361130009226983916924591156941485409384375387823193093880420664500286029316972679577215443736222256957611877294702121641565989129775939077421338919934328558537310811921397091047328661906596651179329801466243350101954898785894239712166347316914862620481528178696144856656565048127831307116440804074076297540581746776533896538403487681956370164780107291518584467461636665841039908271967216028032776050750263796599694696706391264222181412648995033134801691000445615847691734207312795585948452721108949103105229222065675538377789764236989936592797560621258078090508102974836663306071693567395211831361959980627343487281257611735170516371124675191000386719304835134589353880475906373649271533356353417034544072925712829906545025642770889117552171085648757380359140527973168016997459363348531687065303384597941551058978593033753767333875352499946100287739878878469454993851520702393077501358574056599424927593594935177343593550119047275403579253866180790913630371969588868541349003969797169309023084676211775268050985773855847886923917544952086379041621381080553854433495796603366210933428481791849530620173687422126982058830444150180223171812751240461947548769202652463993637792993394876350665039688097093978994545617676816234134652386597165000980488054711368887928574199519476736950072758269324503450942664644351864235901885729718952568175621841955940521880867936316843977898565081345190670999574479557857351330728493920134039144519380869211170773281180306664341540311362369456850963844370394924653420171482680507260329538495396565770302635389959805933896730854994335937689134315601251933483498656733791968542475800353051257118446931246995846941057754089474292636841657289522169510841363366606987244500638156205015587356288231118081402536947617689974926207181596172930460847528689561367948319474785168742782477871857264427607129518177134041837614709584971149547076407379786696051080667948652310791960105960365213556345194618266734912894219382143704667840560344305349085729996488534016466842462093821935600998847180047000557450185942414510291210734090250188924078520111016005241836049658447459102966889724734654542337062776506432913680356376711527726648077787671011013445932261341962740061795273639463305055498326490598122439111584512881044121558886905419845757157164999489424134557602781297000662867649495326767138236103030559395783103077008254964307156551116254596577687924309166440955661553841474669578824946995996788580187159652803585711458984276789379605547597118615920601774437845963341689564799125263330402709659764695327245597586890340289043525825196263032502371221772993118776869672416775529551561277317367174957250290953414908180351314021269431765746132305686718029838159187709512089775949724135724351911455698094677925969299973373245706835377805660328858346359066710083790530840682851463212734042141722277275245656175207123670656129145295415226801661501203465275673507429704781351899478720163019682358219743302147196077801254092901553447067424878311583685446104698358220622774126628105686493129909479382860758220367791071790009076069293901814128646271617382249588569383087044695153702203803648990766212250273107159394632930090047204030096861534510073423324257118361054344415713374984704858518149471345072186898032308930134746732023678973167699825345790678396070653294384179612617441444558084618742313763993752722912279981351777162331210253981971318223623889460190499677481874358460693172116811877348989761660660076735522202883498832785597976856287885809255597003221896066773185613490504866459073436048346327655854757606244974041582380934571718486388467858273105720433096208131376553097361569956393557298309999048412797122975117944045083113238273148800465611050142015444639776779311698457021791592958136866104108030527826567880293323496842306561687215916223709351891707283427310601404586470247721043160814912689038714342136081432955336161948038258531698196861951855636184405938480700786467056588420322007560994535915987128083674231731322078337143698957166349594087068786405886278564194990593479768041213567852945763309586139334266744411537282289769100187548646148756754410094825066607531896248322669265831143506240338775869466994071579201331684080969823312398721889322065988305303127084486943999882079265829917653402840867028878491896350367712950536788929354876451920252568610761906149011103405192594815074286937616453727705543162223829302598228706576223906898585495359048028437093044002205574969952331162904264660283865249269386114683055425541637428091433259971011497387739533928357996410926876116278516188017363173834314127583821559213222098694341297848118083960805201742141410055910060924560985211026224467103860344886580388125118957761520288914073519842784097985449343104387066469539342727619437572470880115361625226848606104593140554505848956137831879958435132382623202566116370269240112150927718638440898623060528100880278491089853162231719586391091860269588950023657674358325521367995400110242500288639646139247069475938068838573763543841980178238166957160651672938681461655342599767397738156322283211487585478843893423335121698804190632796388996847867672825837636740918861100671090374487952620499251199484621753120572317317721534700264741857798544581712173585096304602843597458646789324331210403299637956800790738915357997789895427737942633331224240820159991669448323182794537057075304090344281919587038850227061890715189358700858405207425435476616566938234090850152062287057570671068374256109134113662501503813465025244979015851105144939171236614663355631828856669719336049868648440364050368823455856546684564946357782536571169080362498240641634467775357038224247936645577604674845600525534035883239534499552752444479419242492269044604041046684885557045854538805019726706429468410543785928531430296127497902901826774467283764928983673195337371530409138156351915459981499316561745107348064738237757614402217837426357726155437997713574058864754329474246485897078221828147653679619906626011593060440496864033897605271845235446563054043864020809527204875562047064543194519529531486654771001292440199625450551248402387111332863591841884898064519823480569638393561828941697712282159466854865641332614270175629549982222727424345894128196029258737765322567397208746192675376588786397112954354946252853301820331004052058678721407979548062400936295431232026332868865548042716984106085417970468364353127911570030733983732435121653056414769146700257274163019569122923031217666379312103263878389717479084085741737358119428327183200203750971056685885560633714310274898659244394715637614740721579171920271489804924172107939084444390766792013836737711802118406586398782995492153622795303061164989559302973080383254496287224001229162974668266807268958628840571548956339512270233964031903140526644715258310238767512890023612141085500852297249407717343501345879884374184253938483355554333687951061896155540099307341673346437954566051949968454154574344002141585670328692835911849371742849573115894253836810663543888849833475386387272902183007185891036489714848086121673368848990170557003649672805982383568488059712059046566988454509304372859056867175731316152631604101068478759294894921037821069989844033538724154606906393943212139080787549487296490949875332851705036063184879296256887976866147412306138111838540342041357186607318340244553058503291563058723556481626991436858647474997820922484894383962376752386449103416400253420578448284140822461335959236602023218802162767750059648266905287969075160691496358254043256475181705900968314783976277535956604210837755098139798330533392143190695136177717727889856008029011741783051087846813983125441252415009881011501899126943429247372863166192411236665841316015114091401507602933317779025167054261158924277642244119819720106003341064433749228881101264591655225455793378463956970659523761885154769801395593266326254254320690477194988951510151448056849908586236048630685620272439850376167712226442314557939866580810200828487673253104662356314481913222467043635814563167058669338961422716816068186129149045472959491751375340561970442411201543187639724366799417615908136463727351883145134730974061424052808675449360622271908195635850987493367364834329797982924423768537535480159248832993749068975472786813855707416387746446244084982123468486651411841664636061918153406296982343903134957291185766139328981034078339661849275318683834313301369802283386869621518844345356313848716382528599779788541773888601246058239776949102936661880968603094328059970117295508960494273295120985321664208252560973557134810623054940912426814105997743476037296860073928166067570858582824803359468018318875423818722614622227333860042793366252047633515116610510414118504084911080403577271999656900956447446199187850384252559172829850006365942650596723976699412894622041806899262998344421645001610155683643345555611873418077580891208775847055293602735311821838571000360476460502541697354199841969381901174741026190669430960224566294043670191806846965624366764081981074566386428243737334281764798458439325389159725890839880947738986652152593191623138993436647243066699671209473287415823366925708769061043432371356966345565502266849123063685931839929098482522464852261838558538047791261258596283132188559924472160717710197440155474599909318469003127648241124615338585573586726159632752967845246030404741731650613671296907985434636988144371316166250565655594953430868870973368888981637011817114220903300298309859114010922484453499964966576685821929525519273849328389909841192130303724102881766235390733124051062135157009223432264365233908744302601509849140088624140520880808288894782459781036034720889976957672595841333752705056059412660134380651496537644440838620535716160151643909988931552547954828722914254840139283804327714113731902952198133232491468705005871993285934831775400078981621006741632392529190655452899845384322657520624299053393042092401131832626761582153566977313466345081624121388951344420588466861597717221769524717839449628779585643978791418846249242998945708594879361181781277122177594876376880814870769248783214725454100734673886317479931734010192036369933120780873542839026485044321059548106121918055251949522119205597252685804218836597636302996532706099128302575909570884936044077839806544077469857362259401179977741903577713111010856205857483706145949714881329227406888569265481605167873535165405933337866753337668044815459246727280190116608412369224684638920523252337524793066002127983973705855646019634286114388022869254073541857872372107838165173765567511250767400467374552407637753915259069004711597994930694225789016594521814612501856215767278877625448228007272127394073599938520326523324778463232128217179432168639337881045341646237152036140129248470440732519603100329288391780055623517651444200065604658639546893960231197853526416288321989600014145000108784721261697454913274851538135525861898213185732982998344513910594675782917553826220096608865211148498363305165906571038137764115034816719511879983512736601047550794770484111791795055559993387655641194664795013380493429660349506337855265305310379109400185037163331831135146113487459840155472937249288506542284014936515970104783680680964803539978474849525362630296231635610476568232904787583727069992410414035817098319355432433720558191511622409138669346812921436522046198114752472398052766238426889730113928381118853905828215446768332377240942496464135125074701583963679634580683542552429270518629009742103598859446783626464483471407586233392176677932084107670568312919466358757980449913806461049616806759915392288134218125156498254807540572373493748741061571305851964586095348457506625169365818509300269733266558278253776358395395085154017873802022866042079100999624136230660504444111624365195966256936112831036381295838456507554019375016405419360345597597562873526621923413462758133615339962865222285763036312332843781868090906202696334229151362525870930107959889155860267711103337249675679662153386576214424811406382724160024507224099543216303487601129595800061746085713399768074956276862618057072783852951067493271026133705481546138368554243507967132253022863409149696569428462421705375312721301091511900918069190425416167404717456539047043651247308320820663196549247932252698666431630346864711645395879675745148754155874468620639450222095458784691134322980581717724591267493741058519686005729791047127719341488960099197200151517680740722706678669750130390180387372728645234597092225085029509850450599459104421874337980517087721706631329428987741556589103299150738633140273096675917162269847841598096136755062726809797304473644103851286668811467498916681136460831280940202646971999364000527763729698285322560952760259601032950871468070290947271854245211855262012015510594204914554783372833692403902570334541522628049855121442989806276326811111512712273769682661265970663912624158049511718149996989915048422381234916289142246825492821805162027630437447968817125586288866654907325894587741715815760629492216000285723023420049099763344401594520442413520383740757067689238830505103843277413763709531171889863596419161857243320154617028068148956906592541144296145907908409277352731426789214546227463293293937765039665512168536105670266902736954080042018432341895869529664721978510971067139316971094277961077953334769235231870303591537043183241308094336414630501210722972359145352048244987807844585006475571223692968268786930359516668196628861204339311573923427706647327252264985521369811155202770617053790014850773975040816482477103028063751846123385296633036177945072390847050889316352866455538773155299524406592635424823159670099072659259671575355973933460865326915505033592301352739715710714559434689769713668349526409083586713525958767319398249148512671592694220317660771669567062357785925985205367966690575529727841509813318223582020488585470868313673365697530777651114657483519565382605436641750220340529926399725609062187565362626768745125673121164032124645602992271950487444692903509150058575545283608475053859894036608016254646261730210955557090831872837606286783311748100536165815774152534374037982346093775650188970848895716744246786831648066402758006936493902212357046714731737743659474099743021509807791682314102694125873970244998014217571307629870540896394088113863641785961757866011523939836190359858452040451946142947436606791063842191786540362009603348648604722594746255242261465992199479585970763365319469235804742717137334657636733869092168915487069853685706901841186672001581926550539204286343110355342985964371992557837176102264612105486237346487599514970932117794139859848672466064272796360087922740577602331463056024131713640321395402551291921589024990354752591009055726301863142892793132872682972556953383797732581420791860209195208638945361292302995203433917614177020663292125366180722197356733720869263422946961621772358401598656547564030739439884193948090654891053686607363835876480270471131753549134822467311374718572587593974510680834252305752231458948604465367229186094153872913712207824464088003837828278072989187706836625755954247410272616425436958571909791514050145535273901353869617724970596319077534107132791280104503919332784947536146337466796502870524067874451959012624443209217425790318834573213148336054704825456208745145897540701465587684892582050392071560368241806905569291797342485044722731319129104038763804677696660900473072693925657610892476739020187681174607218994650652914757949223133263758327584599732539959276431690287193596468619670021610074679136604781082263414746004674288701499138172343181810331108055550857530881071962696014311803139633244818624088770039774934396056466330570977796791222802750246012773570684271477213956247953573415334738462998358383229978814974525369217632398546238812130999947975477576058242772944464837652003090729522423773798933923632015726356447417957280764820555913004835115153865348421916637801869997595774625532166420465473723296380028684729102314757031476643743654241012248506772651929789165124641242850497279005357001173038047588288517540532064701312450209704467025314704649319941113127773214579395015926070269314371418210178002566484735482092669435801967661061048530539881476491142415092634692008294021062794037926725882688741779437255456973556465984541321855133622075290035377549574693719656054780340784668676358215815466303573712077825299799532839180590090827589980046170947697663586878467013026656383444149773456454778616168889773734483393237319678991083090139122364088193855748324590755545433501778221750647939900025368803418404241429985547944282398930608785548644064872468060838775188302823642611653748913095791289567518355861629585855436112260204306362315313153610543169338800645460157099275667274378847870716451440287800374706305552296779821812722928479155373434489119665910994912249512761214966983036773788035920424656731341684461124203734180331080945035502281985645499261971933235999399895739081484573348508647775073578620524964688205701104822740167963721797982653008470930066838375318955631868101367716787981417515647493791355496433426293002147729617616460471062631796509806486033711650224925442763169134589166136567292053242938496953742150548849145515344339312317595048123077807821304935815384461041803605054830813648101288039119375508319731106667245917902536856224711749226051947954433108557551519462074378811728390834968802715327723144687118228653127709901039994726887683750670292458400363551741020596383750897349854564152347280490943925110905013855571327284704811596834123924656295769518063386354569377348883178100175420205628149832285533316946688022801651548001350471957996237255846676534058571722534380921214790000173789543127818226957127495334045082042925057947872461195615665433382779362956472139622757491417827079811260538003224374058910947834741250848700900135759113796418552974426610408194159504345976861005302574481601496314281967842414510555270935627305892563806079321748771959950040812033473081586855081199597521297736011161610748481651444208863691747731134486654345993956995442360452811358917891553044199360932515290981627940725475433315832062683144669768254582184201605550542366897498125833732777930918805900372086777289356093300352332843556344478914729448191086105437572989794939498747292201295625234264140944252457099551767575507756795257946280296428744019405210513523730454719025106821434699157793389348498258666856243638245441028323715392969991913473751213939712599202479758673238977023571502169463548185639782473788741243770248758390526371144135242675825269761987373637677231327270969004935295752450490204573434957196894882527712634835711166471438287477932675796741006329628413563528340300687470517134174959996445533635154313475074310610366407553539646436467614254176193213339670482928031414502673516459934264356938875146544911632679175269756944214152999376517847721627256312460358280037576139522147624501133125792405572367044214726432839114354918932341082269662127161439305081638809708394819277249991464127089874499121318853546467675639862842360349506753806407868681062090615188817230974019371696834427130848452997640093838716583230093284485012676957061978694745540050479198188510355146642879224293761183998171614082107092073557935437275810869190178880966787811400685769063598529632077807308111917309140643167193038106785986669538137111842777739472968403441682302589932659428063230773360872364669662352029090747938272540746530314769211338612062326874435702169130688139925976195575640296053778464949173818119988288983443771963138743415755863868556041295780613651108439462843273456489584196296320600263290597042113582724596127826435392619776228789654549745250924062596010486679747253989478541540132104045052225435369162940001033436088980323873074059040608107067291862775962869581015028389279568276537160618054982052007625986781374479538249082162975197364722564770384342094988406989894769763675917362164326126142213795220587535627171783655546285313262285026614584991233596342321976499338490332708973264183859858916579546072679785464074790123152492356888388585624211351262538881208325519075376125337317433984421033732307546725797400484433398432008543287184792171079387272877167534046601821732614475391011522756731135580882161191262678656244896837184829677437731588185190736926066611622909669015021473048245998104312517893224453521455490461019487606307107380636387142325798592970548441368064138571968649984297451246118382677326534818716109985404979224158866025015967328358007497453361669113752231371019072058608465688894868104962830154353033612768777133585835137452693006591972959642919380584557486783824723389509210016217533201242607076615570744876215036232185435998753430486259446601436166214536243974307651061130042860856990174099586231527760471079445999676778419672068930059120255823569638489221610341773529023512848499368889810382858010266764667742818242117641581318910304801998971350473622561639696108501896296333905280772981670697296790950131849762129719889330083611782791922777763034066329516255315015021080402936805271887407653034136756851491503057365113884847446584302515386461897611445992490591876222046043263544294898779486926319859831923340785754156337335363111239288215453033216642766238897507386254590146407555401854079786902841426615197917116884479266454753389310824104776430272802193525710892851032974252763467018859078144861316197804600430782766018371343782131157944909728795650657443006759021004528889812125879569409073217424539195587395682128802976099504209133875658093174980217010247324740814737980224838823152035303854649045754319926537284905983506096430373390757613527568577830800560503143018287460929217509303931964872350093314228687875907193221822924144317868997719661222707734629092099401204706614336794213969540352147356615718063485731379509371631405199416731942772013850691446048554316463561763858119055609132166273002540746442844418434600160641866903938580957603712954636638301896527206674708741368737272580013207006632081885645429349102172135656478912266538906361081533359755525930013409297782359181197380756725291026877468567549515337902022550707708853949844273597018763832803809839479471958695200811546763127684551614767810611722094035383418182173096746404057292904716890210946967926577349187882108798698103051329976907166195622632483367376291605635223722332595577775464466062712792246512776103033541228177925359240286462295655131364332521475407110481263576210598335643745789908724926923236706575513746735533628085416345981596629273974006256393715930726310100060831568906089988966458324685593778702111253413167277292882183784613239943380437795153784923906014318391496541518389292619150337604430944849542589838340826089606903356637992002259854690710843583490007595212446612867694927167833008267868765284471373814355587304350398773095269566321128657876304596906721685149810895006046084963593408989605779951947409548920841017573090349823603115908931420948855514542637041206562753110940549945696487069678583168998811506233883693763019124448353743921108063172310654989693461847092411491133799553324002959789136930516046099890360317901430833083265227220482317369309288922963297527568494373424697555368947980209966225938401501980949668652568787362161505262564031398688210216546911114522452096812028285353160265451511177478022313159272927416174672539741934781492031094811150278669000662075427153020974961037252425292916623998759391442263962841609501243839395075939875654547057639284230133558189776424687540010844925846953753377743235929395985469536619030154608688128668771007152373875262249798927252201430609907490828784924497392509620109702430736474266776535168920156686867081693435960498919614828556133457480794025647157047054991625134534749483317096061636161174756415557192676623549682649373088513425733549966177365984261785518349926285883781153108575477744826064338226488209920537874582648585107620241809268854427709968513025245391741149106841832739683152342028042724270860112799250232304626496782005418225405905032111748446624958547935552924850579136078796675869834181635169392486133847716094122109918835029007308828007887281122434710762339443491622295273963086245662248714350026052671402699908808613752232126318732926503478134965759901664936519046803361594498222180620123385908796681859274751405547422441276031489960272270730183752234733184909246412453200452821643995113606673094633216702276831367754579014191743400183693621059307427282211419865398727013188422471494792532981238314683499409856162376679602525449985960965616456452039150956691223367997067003727931451777315120100734426767554884161707755070040723565526263709758186825415358924634643076137029226590311649735869456018870356473710956038993759093336910715238428342518505423327849872166527394311080150991033401194828626744891135961600965700399716188597670361837831474603966156229956409401754738434289454446966280065414059499717216022269574811566423709106957471870136208681720445346052207448942616397773928754938632853867997081476324861321815396919721084577679368551392357008951488329446214952290505856381854198738934499803081596267468959263710935842294977580132696689566214531737577623743801160077698007689939554520535924209120083570842617530125586597844477392578507807046335765452268523756817154134959303446560734374539075051634857107246789656009512830615147668795746309892339388965411977655464392512673137605155097871623326050386024877969830272411468661208827942236822501681273260819693825290440625457247396601743257491423522410520005838081089738816294996454183330478570920948601004098288206268255918785670769532457752607606422497917802790692524757438156834531696531716471293836870289875875754767551856501991097316797042620944794533015261466558507479037387446048357588602451806806735109908408978171982988483057241267057809954775027083633859047576407343261866809703367167616529016741762303005867900582668105219134572708196628802884295927187323792560950223735542019846702993493074132064525139480507174505610586412337691269590023031849908005791072280138609483599593772325211728751634952551556174993923404471355790124758587390725991818342963454245270218603785766405832337222739386980868795273872784419844307352380199443979857746907064404650238614145428876589439660524204591203067428349855583960288164638598487134668131945123460506758372338297163251295318989383107411244437843956187263575538138645815775077421777961686516057499598592482156852294347028279808000101366034567386477980316861591839219688166520965031820316157480811212620203626671830592597923338733031855763454365429862132188229760670310460060368457027029295123549642499494452773766906272591487477587679435596608973155763304662682784543242848579377607781186137047573647891774568824417411995078742569857219850434080043757064802047985159794504092725936043563666112282417151169372391307746897968878700753120238050768813536604714871368585740280057797783183461774273699632935958402478072786884106169056923517720814299372587444172998461957781908182849779213843380158130372427873101407130291263026067128356661132448677841784768480396161070764137648690398311293752055909191651564058684605134021139140013579411743149645637803067343587638446539141516385438699247410791021250396968677034878942042777405407092169575289989813238479834397639202309326014430748992148340149269486671079809196285455398784184731754449878407503555508745230540645075221825806230208443140152498548066782271242974985338932485632755345453970592055609027366261517931411718287745272061515356670954329787151027113883746391403450826673975137128583294175031495068242946357917190657715286620289992271716497388370328730800099874367640070389132225391813119026009447222887669204575093980927019112746392262096266182984600473723015985885758186066696194498842466478824428166549250612870377671477809253709198908531147754712904729523576398601024216092293039547908953421624490163898118811962816819385236558858550862708237339894694125354292425036788411803212063896797074999648777112576407764925468140219048994279283290961318984640386432803884197035699523825631600954955617107205246399450500134588257114442016945708242426765992620808308671859405979399400079341259965604013011995537317361360581125109467173125752313944037731088040902571789955548545630302806436989298435009985382940900326302111223221805994407524407284140932630617218265695576074440250642126614476438079027483640019103405229662401540636111820045865887986332220011613154205986572464617673053106072389519885570214355786341914420317148455912690778119701574639269326678204084687887194745449504023561799637727338915894915179463945087937954048382219937066323434821810234553357624743226387018910291805712296602477368585159728328486278599985974197782419836824033063284982338963232824601424893490774073510020786923594433378134378553179680350304869591736497589772873539025924606828081336609560615164414199860129791121522608314065397584349913421822130824552267973568986817835857649019757014871346955508999495393090522417307382602420918283302660585689461512015907373129982214395752155175753322997389584069825904438100339532835826873493379453752076327784672113697372607845348249385543761070865840507938616008219134647149463693795960141441104286458516752560870944114165177228585286180778081765325090530540927530424465494017628212428451697404434146019496333984660129009024658664154302643192194165847922711409739727745087147601401123233919977108478982753756890026566419455845083365334531316895752448878307536388550146544816417285386151692935597502479943986850476159046754544522412889739962657836234921054151157912375598823258487980133465039308491214611858606219268676046819223612330101389593195154802460830801299225121384226452946160669721841454783767272582793694872865888954963523944674030422885088068707509945854542163545332060979389734208240033351551837832529406271760992057907073338652756187529983728088981468479710263855525070306508953236426365272348098865389526546865613188195897470590799479418683421139579733377132497301402904511346498954930828674135450036159008647183888808434372607868833332522188312673732946550213501361352783475563599350094748953424893720744727872819788092154552925692359743105812511454057612756374314518416796129545218785843466777227488493972810134834911276848893541048363855692488760364183079795683522747911354797809769923389767158786900527722403782142088886781122420270230624811095098841178156551746809704331867879022929768749926947234449420934813736291125459790000335108833952139601661469291235000589713977259933669502684781962153978111599266482100347886815824322769389237642296863688860143263388557031269216498110642868677113946610502873568202666711574072850264694679662905039672539171562216244155291900066276752573882874114486892168564455007517623375371779480088591308276985628467568239517145335726739641794119040956682365660960239766874980546343522737448393350490848462889338180944553259037103699200246564206556051994087836392437143064106246078024302508782594876456822226359743835766246350665737366016961109545245148467066581327647057051181175730828411315030580828182513271996257847473495422813131420611066410057510294998664798341028990634588612457201373441589732526007878338217357825534952473508676179502547306752061045239477857122749721613037402526194289893650196727940434634552730394801036258596591066128849185104160786028904325599031529086062043965988626347486768947440191983055071057973591040700483903276445561014434660449596055624544082417988500544031407326499890193309118560015831414401228498288226732831409485490634538129811395099582098118455415448152233426599660507547698195911596074388514277511279722292649088430403765643226668146171464664250470150285775791088551062683976339117207936511302746404294868921116828008745338320631475668288230935679186957382515733436539165862618360872128881918518920771808676601060564076351719954741379429863894317398060231354823849983448026714331570924018861143402470345382838202653293244422648114468023345023097809086912173294683624168386011943408738528469080283388752254548981769148532499437138847962067540439330187464190869492871283789747314403861706696317475425533432329300613270866870248738560222206354566417786178263455513463029233833023861931894692026401434122495716587589925509781121852217660450821503666491967985157006231377032959411877467364266206701236295326008942478135962861644879439859459891096152507826096910068322769053754549420436060002681527009808138765652782505289829568118143419998522057588100000718916761675848515574798919152420673569734499718396780370878974666418445975683905456841526727180958402412425016947133804757437801820279776647034222950792869102690762754675531530541014964014081987703051035394329557810550199434204663385594550487007547598082760391729417101280580443216787569950243352136548961343240143116657720065814463820092311283846943078112141528774416401905004292236753212273592535095644437506844732099631833172661201539525993430116125824396171711438747218738496676297524206691760627350885632082177022077541357758650748997993546551478938171712642857048429579280484569292132747490940267705643504827133834767316175867114497679070649139042916622433896866481166589516580733207554163002133755805311849655189926427374235701144505751541215420060539380903611866395284336636050768692041726505807972711089092377562850025327764429907597932035948210096789831816608692393085791299050675456232843669291087376840051635116979255415331345696915460597999493282986119569873988117993613339337926251201729912635950618625657548126398557184102713025163045927886278022373659083272279333967303967474093985386183407920054410375927469231458002897446611572121347915346881459568939187016904378505914472311169810760149222072349453713885903581726949152842683119130729438378168996726914264524268477843575439589624450053514203493298432481828634160434892778676263318993196648766629550346159531431181077596009030411121786251908258878431845065440770897420740296795418101755103433490021442990683888197924611811439134096991779736590458845064760332337594284600156343396653477278236235130641566594820379532694381392265590071822274699289118023823929555697042715438240016368425868260517488431784802966941595643995736543390658843540384779321839393253325018108101840462210068174393759816653081089777066139084652800722145631140439968412630435032317716123442099576458161042133168733510586614020164648451035526862932622354170635869024708088569353310505315811545847469184814434316912372617870787074635252802337888819687200602590512360255679281883367596701671821228751896308856319206914229265840574810512363337290141957433674705116541832717454656475888305971077613105566643542972702261257535284916539048763992866912003751851781219708479033026492967283427877224867680584984135842242302968498614391522769664514037933596495539482639829127368158593835480915268525133821625337591838616933381377849510700644580555755589047281286588142906482247638817955524739624851398957627519326093653015493263756139608237181284082114630892036390622330165169546472117493355726631847141989790864530888734117630221094683742694865274192600628536140443999599447533224080845031020674741438823433331227930662538006652262264447834141348063851784076197360593760840527885024202681067055861034304184702148515404458828738711440377899622517037162754274925195640364026030657221276857314980192406527971331859101613535567666416733669904896876339006633876325069341550707302344217175601783992736705261785671092759838429578338032725485945590740295570610048969629588960300533765032942580566019699896152011612035296564105568417259941285502998863802283051804864394277539510831290209325516304885806451711359357421144451859853859509553432973588588986000170608344103144198579514693258150905672352214051923198102581095138772800122597595258163063828485759728254600182184418833561713352368874403665280651211338079625535698343243239881102474915455710112538445203464541019493521712753149600268692038175255328849178817742515664230501851355061539425652113913295614071028400787104147912975349248117622262782854852523547461892277762398918284065382585454835900395400003046770932927005404871074495757288650171205504688182576458666234400722885143049528680843201373246286342119622182830017433399641688229858522536385228978948770892922099289455802569165666651122670043475924220871785235914734345557651177345931886303776875998112349914010689445319239556331411795331666556444560857337312996240638935373061297974300788234971700706022286628485662848318323459446164677948740305778057324464126953852619456993217177558894528613183465630200837922001673724697758310091867985962852867917427915461374485545374637098200106019359697042642627966648439360995262374521580672038646927335584413618944084805188759243952076623259086399630208643731750803598090052065940483703567630984538107711048494454981508314029500302887513144761273936416257319647869907050216013214191319816459935379040260280255138202120010160730768827357572232219869463478092439520740546905858887349315970272518271163068400176729407235551511802591661183437684842405871597421558117110554831070442800359718947886978046301393978214251273098865108761021293849461703733898462360226978275668592301898817701962857760655619257819095647630106930129543532667116182394692081135293745854368946232572118786782757223568533535864498590839614399013958139670694915649071728645091237448275646475233202672094158237559526711929977915106113797680547442407992615728320903677881077108213009174691414523263457307370002425516825069308742692180561474331583193235545801555917764575076140209001062152009877295006048465403628716575947026035187320550151058187259686867949327839741383110167388338653808501337238504648932853392725479199010121360656020503283673966584231208703120077424595847148500886556196724811825148536758826234312373695659520755401992891934960901793073599133331874666127582595487595873692172641784852760219147828373535659507737443690426721612128261153672803066623537728522865945992725098907750763007358175101773964515893331605907750816738804165186709860936489550651404219476658519923231234965287646801006872842046469062716531266394351230259945024487071817452129246656311161149714672988797138424719722969121034596195477842256064366102658500050702668881055329384750303460834109771019700870459927489139556126723758664516662588679976619816513499239119002076270089619517806884620572374925180801759372815021021661774018900772659592347687586484964278944864160225951683590536690123203271490996299460390486819902725555025820946713126620562444424136440081036491359703636852188506550762811342759044324715005364229295741322800458206483862121341301578717547800305744535109986265738311317689471155914199634887796925952104635224762073846716703799661828199593816543242805146999679556057846610032838381862494465507277240686671688523454482012437140491616279030710113504905757387914210730038214985088110396659331747922595226141638894037516825902970785060135382001155316570609266254335864900575603688284411648224352153943067659705817237850568950334709491747373629550600043725667985274462397720651178868943184365838801595014302930091629455299455016668835360994225675118727616427055269425513909048236748068817564551796429343543571669847736826248932437086082962203032647228918125162312823993459824770433030288949573413956892215204666409650397972854858213502946294734211105774288068158700231242823544331543468187896934971853313764780577030713168805129293279982725164066727739493373330185664145110854458611449632019355882746228065385581967873595357705176024866810381753741617967800524048292763495988498748958381924594885988774905433114429667750359143689980163017448233719473559639802261620783272897174148664234409949924080960933608619954062378726493560780061873370542057606646397811793683791115739083320700091618248231676663257876107692495080333940792155729825835610446762020341037478258461555705433580565938452596617176448405381517563211881233308227497168812558058781663401719909451786579024064563822628321789061889248273521520501515978977638643993223171858917201375235020186715294058259343664862502096227252636116270836399725296300646063028355398904151503057114256322138091930984163135438923836256596952227631303064670596033453140266789287387211939390964894321251869519462791780957562032437834663626459187646729728120537940199466280160604869119422051501677735702945924637465549158446718643225440715892394403744649426052788155826512274041647221843675637853968472228885792640391966858137918271419681818805386536034831645639431512305754488415503716068518923085354508977337931097750937159577712277784263058161537571410238783168116587888371611994648518267874629350207349089167387094172217905238962752728875136431755279950382410660912913268820846398633796362192150726412427809809969960773096794237314479710064102312329149729488737646135077330764599783950959829660179416832175662101360105225657438084829773175156911094585050539837213097511506688061320113686740979366311407562286923970646379156284064784918617285971856746757524416463885335071496118410129853525563380081321262435182700017571905731440028515470379515583323206628960972472317721018695898819743113496004240818130412972837444544218498903336113052639345817844643160828099108074466511335105042665054953069811055827275202666058732125360184688614547673622682598283046272699509437741486576377001188228953263738922330422500631755708932410057733108821815514567637574313521383690307137770068699966603296375908080309361394646570748170204524530005516907897499978145482718691269159613278821664771516734331787157774729619327636890415949961040315934527073701084513396602612453706129989809707945671561035448328855637919336173370195242703669553411539437292967993682828637580492552511187230801221797297804857479656763900230063516462181307653147607643607854749098668655700963902690977114075723998115839648190725443572089918549313300463552650917991071218465328841496285497890338288659569809984496672995270114316026650667385099388388373205345450396644968794583768336355672220469692939937715666043460676256010341854320675328139245871207580705011762217342740763788045832278939090164667430859576238824452569272167626033758043939661523571714141708302871879757021891117779304115732151203342037174460260831199281569327029935295693360700303686693187081569787175611899945853795133544818782763629249583865952732467307335602845164041833865603559380162603026998172602094623711561073524966227478287677700794001508851910493172278492343566397952643694754342723059796416170989593169172569522022532151420758996952038925864318452478755226506985946049029424611946124054606908049725385817887399902105923931665391700940346253604342824387653698986819421091490002499603133701832733936001861446258061220939262908327383320176710548965632454830681245227226510725855674984664308599519618399929604233694159791691461112849516265802599636327295510274747114219803607032106053012470465555871902522505434142680474384087779972428648016893021305707104975860017203358307375706001728748190980123660247530779554310534744130718616420831352358207072179464001300584566171573185816159773472054691007573162684571073973928671205926908715977769564313165317187857576075917530036176878302188463205612492510030045199017740664508335159887801994549431426612102621857360169669759229368648806363022168340625926851953147876805901768394615402536934799635642619977067665883070291764305987198432236615710394298992758655879109782592539364890700687845377029572592630647335766553895018791505020109089362658113230055349833843653568483903999565725993110065695142206124823745019032456097576621668935888210130675832884832509859051915514709821623894434114302793113627868985703593264465376969691538260487437601493819673664702750992503646015583670335693550653318377081776485004390147734712584602525947277551779772639921259699131677151807239514364410257607086048536178048456900863828616814040120030119073104659174901919149239463063496968692311797960894954745723877821067809085976718056357588294829419435444489750924187654170047501669677717574165945097938526738822160779728863915691676967626959056929807307023858550249610141215075032450430180735598779097482117420266222699270339124043470280200952216733484257543505839033268007637808952378514105536955742801742911305130195197466766265230556146999514329534414859552633743033047461551793695955899384788048183709493774903842768898687644852290826100811777446332391997176260782531957312843633920093528020243723556595614615832282078970209931345182042991740613420177525808676666374493526622598337825456303092124915784238679430922962903460762872322607726514970046906362628120978247121137219785984204115747446540978811907593320859618293368322647979585708879005985439105285740591877214001888799983067045413821431000982183124326072741733057836390989754044126410969138798186349755837888894386843278214130608470982759102120580214150356488207949868573147055091185758656922522371971387153007512621994633687450694878249004293152788271149182864500931395498622438840342725259081822210426483279151993753058860061421440940141421563546247039590985664818389529174577489309577625963098450213399838201130503292328048310524895053820495850052868482777657163786307693246352540386715090894103235953109718840981512382116300801563179130227872447621289968534534068247319470464937817158346217468939083341709212754121894772163510222549563546315270778927663082657204333722326041543692358694066842784612166758990729376287496513515104836235676704491064919868497715626698866638576625586349289193041328227159179873216453245778964311826041138079472675429725742316597065631706985381806620983242442502776836161710909907055528836690670362081917099511782313633940589472196681179509759557448312393145685827133126126146102190142337269407547704056644206216036782428166113771351369438064598854468581279349267001060906388329441753305816252413031071102682673310606330592509223041272012586345608033079792155678708982679361418402871927567957791558753682117574653351351126444952925775962006183381384207861195254059899731804388647586266488763468825516969672246923495607771786226208567325718437723623573954014759988873753529822584354435833453115128917069111692497176163199194138746620290794261201440825424823164512854766609938251380608561551889787261437189914683372534914594510390458662585145425267579004646277595789154947103166297695965289291647949555928509398800796795656078802539352768944185983324422318317417679211031642032156513319874648474402863572019116561651428570356975317211321281306667250014133691489465139557216356692572954325800463777815721500010887997607641086152836076308657285954020011787640388031471841693641762030597179517867811239045712246725078819316348792777178720926070829965572508737795148894207894334813298217171368082047991008612930445112232763638946582433174194463948147129604357461928718460952457231564780961571652953546406670708091589658409460980487539874412505971121276016952536576128626937047588412280964436985863460446806523519262750897072393987709136818913326553385748752950195912932780166220757519946114330218893482175004691807395218833761161434530563339703387826383432470554267338825269394107989008814109607400953886407785865775455939914163629643656240218620923354390809161546629727115133193466165538723675790916288167536143329558816622508197580062916249056569356910123962500470172653273467711191543872242342923600732807584066231665346441201554315771451931736417322777737172787948105919608911441799273717029939104093480768343390583553382850044757540825318873792297509931821446198845509979791711692753460341140615916431713713857822898198934537117188966469703959510836489369716722982026285303685802776877216630369040189924168773868686585124057430282841105280137783603924482974191467909766901982647327277814887994117429878616526692701944769074200733759914537198028288908300320133751238268981848673739742915607828646867926803830717621586414134792942090053695069411606516262846562706968111581290559286879140552872443547295050607443147520948973476023402394041592656766194070354024877346260886309543898957177795707877259109573749606705266538746070641386686666907673772815143397223928765381379913832316154924119937234306627432879274495717470879736838576262165618271744917133278873625865921736602359947874622428862028102132836316152231007817511783292255951499097271983981574681900374484272965044839876548473722861521376173073322301516608223722259424766587131324028825613404087689169675761448883743964011458894768724441545904683000347333967194053764509770633080403466867696579451606087755725159334734778450607290930609260975565929849842634590892851715305501770851957560133738014393875174898962287301340874277848434382729213059427181439367646982991455233980967122759611056006339076735924105683583735804920405802497343980529591762414311001842401791956769041092963920209274578317218544860191998430837540782842444886939345585270468923717568008549049904845973286832868617360282286733876223537607948608877275059844317096314344220049908713762942185208169186764662741637023515829448312630730549101574950938408968953620676482576295966419257879298971416119498535501639465169420474166663243964732937885175524191152428800205053877085027505490859307789879578679785429998032728180102576974537461183812632944925425347284369036324180014841209278249307954892169786285339830359399618796976669830875777580064747859566964137047375242081805505800254579281593044689958183891227014894064871910813515393236197959351908017217365045131918199981585970367058125642945541984067880400496647495345096563828741074747476431410028116555970503950856228631657023016638374815635911199231715118383556105915484015280400238895611919514059948143125320330234645574905021076108908874640740827781336296857669396597240368153597067173781979468249380948449697983477142243447621961162390966248908230018037006678786008201569384856165170136781636173430975828865460562250170997825502586748413726614264362137371485464068583766348625587017556974173260471329084151359538217840856333083650389989499812545243586535084779160252219669205184159904511191396611306948508226649528887285108953259086556626158020353887795446691004171579628128235145446407653754140483693403920404452615508126030276747283399073615808680486106027913070586440067644076236479768909410705164435210618720460005114765414493184036458015473255968200020159091655891446304997703598084837277829278623609179059174568239776505272340445672596418108191069743410716619743582533890058058350217587676288044990762404437050810510915478340871379242617975783588922860898231488436331542486669775076290964395482073326862217820173242482095150460526853021436276995430081316551259112289826455890328947527584192116042453742334374949043331434541011116332022521505905685244539078073032190067287014547298981173932224624237648270562573309831901737447717060980666628372618271493354527867182005887610471043186765865595486728104827481410437959822619967369328454949523230036473886354467140448981795421298872379461580098679023487985005172620748855690234370882663820954452374586007497891396418153390234076969424634003726447096829124333316692681788827275668717781210985738276073736286372972305369996177363159601027187791882217385578839286750826950814883729646988987676417938847185899671308474103747389457738679902437601547670924036005090504420649882178154984440731916808585449700270855593722609353032531081687905151678907338846582337620096766988554647795960266262327487839490338152258220687532667814607596466387738525474039847602990656127537320475621633965691941734499440710762021514485683545151620305048934529971178528193196317671647236300785001417470188974178058206364530961615214845715615688554698314374726825416708862778630869795011401262829554886643753821552855273854871828609524644855578268181757704736543602324728947131252223998703536904516771661224890531884922988465929175428931805052753057527554576215454850583419745224524005097240311877245085840568848077042736822740267572670934574581194777742056221966275687986155644632302706901403059633169228092307294067418012523022746515969444980947918946449415996223854753368679660834574125038501930714512845347772174983701145200418328867290847172689706693403865709786299132672917496594215567919538874333811979345657451750568683554382781847280950154852837930076876852577054349609879348493571141850476234077317589379015961868169114722283780067857912241385293556530647590373152936888754080351703468572183490462483935134023488677836524700662483750863550072204213658467131310268855524017898439547598338083170008914950660847659197743350171988295038789206567823897121784959117246375969934070149275956147259975929549240649719049569242892446482850234248044585486629926960069488118157291714673529156599958517694081767370196354268891742104438281191191072231042748816961994439120112164747366544810604485263748855702339052451200733339880479058997558558904030104696272556732518512738553547729328990906222306891329800105685108327863385844118176454203039805065815309464396564338237572943023721192924751991872577061325108446595006861235038947632443622094313663086560871109908801055421309331557128488325055291093611217853727408325235930610691876712967461253361215471635985157413593157266459397928629420638037396722836573820634643861790786529474721787842784830615968333964781696735859275764669924404576216179663865714979474475568871608274886116328542912541379653636649267212153706000135474576522179250176836071828900298001324790683836232959291135636349049754716094693186419994607317046165878753381430938266809532335329270617979465548090480439519058488525574337925365972630107010363177011283814662976501246059178750709617164205732281151820058937778324302860541266690641671413907550663015201040739467300926702220453461445821926477756923462053768211704950009344319726193892489812199564311846485589170132075754351768340765532461160353601253905951535032894041826708066376466754297767900211695157524640662139181414806168508274947851168040581709807443065426759723677229401259240321088628643930707392633315055096989124859730861742633591976372590366598158647965246424212656865125714162470086446766923971981854908523950422249724090582905341286706215620300047737384627031716025411306864487862850317477180464874849534331704826336270862919957403936028041506947740443604786907261293244931998782072726895581845015444015449018534957395987659079103271031428330795366825984802752636554671132538789307514213724032832142122941101607329393171940004362055009732609247526394522680162486679050526332482414550827612376054755716806594017758145121828615153334857222836060334305357824871360690048793363006800449667340256222431043463243234526412279822093804845906261098348998967938892100613116114430526203034682405951822980663654542948748911574052087003808546529351501544125255750624553819897425142603741482909676469183139557992419551661640436117205363012718727620969812462265752760496635442601192898350345836344647534478588982756187577583281397884701277801479445340734638184695946006343271672898024766538944084447024491490170107231764055372361164402830754876705063063393690725340179359043158069622556278269916854016382782501533444308060220370899386546884440108921359145018145867911210225765088155883691983305144376652654545587146129187878309015299068294418815446008851770891367595112004231731318077618245337126146662719509397886689400470891744183527008274246623698615455407821697734671755204745637875638340443284973283949949091959790366680983423100629617510624878739874524777018956644699962638926238814855932047220332955725080630922418929665739301796151931781003567790737842073793292870843378255676603945937973133057934012079508547651859305176218707727308769023903873357316609216184954720346001660430141938768976599289413746714082925330585049992682673638103220361963873435712596563627501052361504465277267572884794600639565753827720774561799821227864481810519704000413113440976397759772073584599208658327346621888247531222123292872918055529587613931580291290578167376583203479739804247332632702645578580919753705992910604161694441356668687833336513082230771239471705101590170526980139602770798046848495775858613370978084349811891674836906643657393835732565907983921723005316122390328851965754749522511576100035983950604784170910058810765178452963307601171753142366126866892111307943238347891324982671960518262466022402182945656125406626872647944123719101567112761362498668077797946169440326237417633492258985040196465840786052989206846293290643517012768587591817961757027662718467060320856821893597865569955939287761044402468751834956907036614605789403877899511417929223224315468194832448338871612314936679308206965112027460013644970113293953450577227556397426650387812426403571281660864788009924818711695940825387116358214675676110453309745071698985628183933585461435137580557478436852883818008045268401536578410067532918643120959488117730797883483192522142796507582556940281661652769776919255282201804474753083889934977663566474928538655088991002787684848457442635701994733437312418289336071160759726790559785847219223821545809143399079512563987486196478605539427531749968174057080178185239043622052921915371770158673254903918634290085688290535078888794613988134645245972929210827393914280681521082109856986631962484323249221550147846349885512600954768542959363674583494122398397360461579465283203321407424371141097632012155846010904238046490030144795816127973167358973640664929782596596818356975398287782794711778089705133109861479460849177572855555738036704054045731782190700619926197469728446741848720806334841335348179164161530468932033001815263109253235954868456106024187910626752279525940604555051968225984239242293463368784487010537038251994149605249106814594201414145316278730556872744690656345878103840907128740953265943091613681757954983940986005508329192626427072119861289700223483051498578440942402286835165825012129887698460215516928856640268641950423225636518200007156856345224182395305006543344421376464732216754790455518487439623207633688143043780198006376049290062387208905563849202960597044059848229071165565644840345129145899762804551335100104382641986039281111638157613787191528029721117343950535428286859371123706941402500509027359521293971804732297574852611180102748183845688067882139830164830308753153206574362690350312334353779495062256675550216954174189730433242393069793784612284930737251673444858009505048558576269944636579182638544818116951394263341636240122532354077178868248613625769815604135611826312059698963038364314265258116154875323655956125716402448305518016266250436681260733195607144624514014829808063472068025019670633162050052571054808027253103141263605246131940678942747619084651281596057832178796713431029191560610071230979526535343074134568465637717998014948378265476999438506133547982668950089244860738726277422342471988484021616601501068195006520701560385674193761808438251480218582712789722205356019263063046794900028872400911788578182835621972801945943348031471885772317506369764917193493048353815847961002313813219861898369599600472249898805712987281670781775042901198833857686957820686704241165327814002095694487935934204389190695920534561255616123032482427753004480347813247736928269474829843069396881591605781969588738776420940020107455113440751467634425777748947674734322851751261255943659844476749406286129737026389200998675248509585478519928357982937594991599496600607178169257478962816900496517600588759050291402189516557002848405883512723806196683107231759455748610608222700977014550716894408182377784028094069064869652575071561651348116764262548457968135244581539046025039248528289223902246302224490358341911121796446385219406135504664061627516468109984349333869041979778603835954059001018415215272971116545862819616242941298595098358804408822781760983591881285482734669661102737051432349368410702135629200861252169599419145408498349721198808810615324158209778027194080369996261098665928181387725225949532908774285260621515104749751249011267358108204582675712348377327170567589277273762939730062585709684196649285998232807060112338456523135519387700515134733252418459638190191298311487274339756236828217243165106970188787399102914381189146407252952681444201268643420777163881358222259989436035105105945455483543682126224856659803095686763509067789996809981687570199881305055985582158155265998592773081427970628432459827169800508184973289999991443366416415871331527375920234317399463203541721284510763929325878417744170308347842701706742210688927068672406836154583403355294842157346498061019043706641785526507186507374346184223471968956435724585246239788425939922982121956202931420004986659541757356367977084691853155343004942454141173211532708927222268540711819881526586078067812657100889736677552236704782148560263190044996553058389944174208802862906885992051778406877027550655163086247945441693240041728344778326124687099326132529369354740365254097180054169212019669604290678653245582793994334532433529129794381183724419863819392523931380841807381831497265141459828668568085349531060159048606848046283697652867545689168177348568143936833320633793103493760718789521299086884991282764553056937353828941004309526913624924126451113649371161941734325498309428226316625457598264363776644965111665257156038015872575785293528472320625531702916914609413261789628708434064707601859843525007106943816747100482194811316253102043004827028646061538019525591363293469916811470057081295524858158885824483599917697905880591368247745288091677372775099142767957052582946140492146016267018193287562062823679736428617193932578608636005259050352813460991312185531066803034929149270436575493008055179447630364788970435100522587950935835690148009757345673565273377199054504132564752403999174913017405291308961410553198274198254693122882639485131877068164875279237344292307162224966448534346657140183326144332799132468006903834150462159082527129590467936028623423520668782787578935318778797456269457001761748763278942746452547860352762316891498347080375086053757773524535457923440108161316181475990648870030032575688267276068282124454084169488998034049984569407859448741074973366990606204783657824505911174413632627864432567732957382883765151000605550380575322754171114915735106582105455644103778362953286783963752408209854124447705236366544806558168414530964737013799953135167285675985515474283894789582924833363120530518391059455122954289217826003547808251457911848913597669267105962198511264189535757174239737056111104474583930141544451207012663185352055198703669906395854391567906829234410247037006922642686784232179245835905613011733572084038898000340640900976631607836850064634528229492541021621305445364902242250212403437141399994451270466120822705736378978979186570982637328253603004443324777462592590940180640369431687316693231140320751667057649506024561583174086290516147634503651529133302408879400556953830848920465487885816307636997317324831975868512571204313273827212785504648421271440916704510654398915925068666145299835392622435185317756498018560094823712209360290621962467570693186884481883723161294854335346505404197093342844163492385893661858148105617768330417423502105073346092996703464929321176417201738201337030013835696850467088673669127163004702354644375281478709507423145841949680249326502537311090715062587216828154735309861917718533661720117371783313251034185430289933844712941455829710499640185333795575171909466215953558193389413041330812059764893389839659685640898408588723733864768161344693843029815159072627399756889375437572236022313484777361375720492224820972570010868105483410402194732769488716507326279153758744440224270947757600953608645950371059283410414215158701295259675709095378662294827333827533086218991982356152399667767347293995123542851009143855479441361424942212683943001620598198792447697407668559881486444629662833785563805397829905242408749659706219768577954296652519836631497476305896053396557591001914691976305816262139799858932122358313446177928477435792967022796189936013771918365759531214387958579576954596578228867192743036653027147718251869482071151427413896447475436146394234585052204362866985959718365915835140878432701140770280545278487414063765142933506171105461526310261477043965012394586346787515583436773061588942378177059275511232736234971746491635245662515576299717420431771891484301546623584189419865883227491000993128935091967347614025656828783350265169492078845089425958031868349327265732168657086656439736374170052269267382769168565534390929114167303819663681017549207318895367577243852290606258394195245709337432569078594643912579210257053725238730872202145796372533808647860590635203305752223800218096278511174248880380024691858742130436896527670855017714282524404353134853887177747389605912600380399742082573704249081424761719988675589085273648318798860683327887360579617926788325894535424690827185653154156624557286670982483490493968854874766820185319077953105031815596256815713960097407847231390525223683615585762221123887914755887339993728414209835659025271152068395795392992078585694311375917838895161946467983110460467127519469134397029521517811743356817255067230167307859281239419615837836532388857846225014581521849737786031464096085725408494004105016117447452219309954388618509048077272950679865963054781685273825516986731659246137512345950660307804945723917910892504832517966073927388509039119680692164378530151625371428801225014245036312862091636438433218945329678518073661865820229538769917773437182447775418450534407649573300827244721820616341929371108194836315886341777720423127971545906267577961231160696077700292690886595326689489896862929620122215514029000015055239570631980928314594359661549935888484739090403758180406120401688232431571626126673892816883063795709589030359773284738775843563495377048334535407860958775099925853444303474108675965216797086211668248416360957142885411026139644632861236097039932766813714134435683587369041579119686339509857865424415310076711826394479100262344708433290206538468613465101555264797930186044999520532192975171802665673539298634478758372342756838212354771774937000446767302666521317326393972109680592956642623627070492581364123599489458725806960895027116110334743255205620894422743564981227548154144708092170736065261726153893220795688692855212359804763448652430545260642696074469307345662207574250327980138081113157413391442517882661443426948037592888433625712006977986146040770849116969180973457496223628109992914399075135161772737020948623239101561992229885392812635048192284887506313292996139831058810031427218133512398846563785252055244977551669846984939211263944372493007013570535687550005210107926942753801591377409974743827191658491801434285412577200167675450118711300950887712727854454958900581036883286196941908761761373167707234190561395897101591080222974755774859070263829628700279791141050707824646471903197428994962246623563272598118052669725245625376336548700873453777273198214851140417102311185515681369754307840786447836585265532608922045369790183537995379820736225894205379520155739922152504695674816373880973184747164940617155609422048409681491592587511470538033108397760515027976706749775400520499581191668840143588039764491717466974337282641821662193060336613674297886891482394582120631845928851981338743058914230056230977426860895151016899375227379120377509751343821266838172568698487722909731921543197936235490799660969376046239797146939120392808836093164042743929687024839789721596991720624873136484131177142750103494119757830208511907948137661336257488264249317350827175905895925355328045036005379565617656287111215015027605531553936095482533001350292586387628677878251584107390016475716415170177995436072223589960670795540384534579505411400735991545389299825149307320566385552155817901489727484986639461725919795606862328902869611712233340422491364110438990573997489028973770123680029893006361283501159151574899844584258708555567798581911732088978595740761198177406708343795193983025419715165577507953793714210307222037111251506776709131611165528051844753391717175590730108604727163592894719659361862087252322311446169141896752397813411911207185387242730389215382834333152873356840611894042231034426139050377580894997668988499487078568906689621615556080167875442917441304096335570433067918736425597308311367753527096043541880486587136887857138300218860867917773353067350133049459971879300728190505852448893489399537811581883749341788601029932286591584836396919214389896552133023736883426946523867166413233658904253004754265277010578786317811648966379955309657647503243968776642124012241418165820723671222453647443484125488898000619641412831253547487198807803946976595108048491791790488506671618390075305595490774641663806542333076776386693239778105273554954668836884437452323445576656595735750778916850014466400632972669751619082979754559411950411327426948383108183168106861819058249052043728773078493653010986522983634315169040286994500239833473039628012457757665464444756353632814466916119324447372232328580852780794000102125181242952026495685165539945541472422002899492289866217310750380154701950594575939484497879362890481347568005568817456369758136450222052578336309106510616762737097967693537844643503940057542561201361485108483961978087451507396711890935603209843950545335202554202205770028237785232032992080712277494387361143459077939322043451684762154716529728391771074261978945868336784830705147905932791592472719617341418368494665214613994150403264777069560410362229394103080423891331422970636095014445210139515271021194126297311516398105498211429613835270098814274584001995040170026275586881565435062125155936797856179017854645990534612748355992178791289793484997540951805206006696328185248788989580709143106821792234951587881364433542080573444255794225395786173365525100369313745303602913944803839201666834043510137802635670244160312316798045218892651644671259985111760081562113578582565061040607642659092468239366695952720902644696331571525079835854580655654386208452056217233439354399840057821236986691690582452109016026705067576092340335883076324876848823260236516498929964330777292816792891602178024399887767939343036887259958824536780210849508237563798977483605450771469756185573733623921933919114514423443013381301427416405973075527168019133880146043970980628629806864892372920809278463439470612061182330065671650539118943620454418539164275537326167218044424192287933592960746474188174903621172846358200005116355094965742359898178317687427968883159360341053811701711785463278780740604485857267740066737248192689168399310454293549645498391491249984434916853231342043620094832074820359974971709504426859189296560665892391353782014431442327395432895804412779971810948109099941660904062765201931928026011299373368302385143082896568120298070430019560040374997579817956958592089226560578896664425189098043762332609844956616941721733067224836558663164727631212338093703994448122899980743428998301665430440741404526108702212136376896059290547570937751176549750908438470124533977446013631928126715980723753394597085259531836627565020184350352995487659267926598312169244415872122482817357721844548845735672798871657448830863576473014331118618728686276620345979369444774991692955834838962495903334616457339675542411024879127106102138081639982422547985303213242984923525252693320587643013748665985150925453372924033812492463915528026044801267243967213388472185145924676600003282258145685138273447528610609622976331224722020252517197869768217610032814612606234628007022837246767162465684398276374203573387334151756217569235631889852894485522463800928118190260981490329833198789180442906659652340565172870978282809396102532096040817770523127514037413028885889930184075071067544305821930697717950057028789993710017904336431259348570227757551428877284063728770093360731251511185486132649026200160009578912963351095286769908795197098437359687764933570493726286063695383041536576010636852320854434865514189000395846368311404047380906767924075180563319493898367241659774588416856964413432920672643931779470810060900676994025902456398411735541471458244429078062703584926731878025681364580959157354053632115096185076126805004701752742786230194780187847192492511992936783513132305465375554626179115531037887031272452033766568745319633396345794228988522439473600256130373310615734364974185024478263926476416856203176917891302052734431562630125959396684193987836676625610952490170015638268261457416620942573603662452273192650658506339305189410040736073196206331080481564359702559264874624342285946762625794160078488509294226809921277446148964529870442239300165092474653393588153328706844453506124424431474886998017943492502344486384995841897280687918834543689548999785614585435211651634010510681547013187280750573417379369103596827775674950804083960001984771598509050102174485307174080294301416888277198052779967434435012450974938002144537295653206614388880996963179679160600703984221025223997465207759518224512540296054503127742908455737415163827092601351993357345249437929633303327048145037177897621307019953732278236719361048003661202936900979277832150680746417110665344111329868167687845769173954781767569472842706476816036945348232457516176007150819575666619350946313149750016200177472263157554662144629192187873181780353181095191206411418234032607791806790102096945048671370645639278910032444027296699127129749733184283469946246690668635360169406283344611311884882506263618611594415553547938559108110970263989768708936826440271063767224493732181720089575548685852397356216388851574332969583534933502606447107644549038482475460244686171276841826993479497697325054408350229858615314863038874883791104076842590195425011479926122555330158953141553585217606547345648950836226538290987848016256913975297105080531498867974527849621084139870726179350794611552798677898033236215638714835226189575229442684218842204022349442620260343346222345945257423011931281947876816044044819728777285157256144986298479023726398376627452368752898642689126915800445431493464345179566872108846266343801512374795166535913444472509204784997578571641984791050169026365500780871061703713196039181053869548869000224161750734502809345868432788094853441544640868401730264977517123056425128486819619584297390365634584580135725533107990950545056356182308366368738132185510648297289205502540508041746701022236803469711193347301577258267444025336287080023914773659070338842430284656124005895326815631273962071648931434919359539795392488580863757113794083867818346673204485884504964759735854520352445237811561124371175444144477783730300011655721758753830336101865827178314977427719604583690140721860424175117792231567301492297598452161922934454005518109250727813224352609878816990310966141982250646515072860084653202552827713373434002505414326202122693873762185390830366447060569070399539304207340113827388294140568714030021944974687538277041535766670155449250660853514260379752489711722994145857918724862358716878420269780303087881465180689624581045405477525060553436002817093178702354245303609517624498014556794213931606513644861517931426910280209147324355321601774203858792639524232930471634096780165025694045590691033030102605502435677318022884368591208104078713735846712354381240838532819393409848898126617467543314257769131224249205492697711611478533369557279732635755272781557029627275599236309138417009769053297352089496378908110554034396035418685496518081832173452472524477401408436874931438209976914546174939401378708272214391454455095945622206362293900244310846503669513828803118052990279960372464545309593343191905019181854511027524547621010653036078372365888538287634090582530701796973184004821544321016304063384762669932640356543774805245714665137209749050447555096304721559010288519847532088028746274022435937137695288249488356513237036416444860457162428337224223514715448872487154242281630197238573034241204019138934723033967636838367163512121623175368590909273365274492359239826740905620048790291146366949155621215949610905210148228537993328912209548298588749516075250064850970157505112221581277669230745256983533715209905868144607784191417900937869140286289553582311742390369763060511039292222215117035453041226259074236619404264606391662910753400309627335743359940086994748827091710315037305585257663080964660963644070003456553397063367686604190544308721913793311832904048607173797283040712666107755731901951907966329914107136764300106637449316440271693405251971178587604860782798230174611411280364866747836703174653917986846117080402028132004394508099595225312904370023923897431848692309808122568331546279398074277280372728035761059753151049672252570018888432876360834157420773044305040078083495707154080452207440808176892637371758366017722074202234305909065713134316361179139496387232462671969409547595178289912413399539999499100276292754581782424259746482639662092645512458748075963355139716196739900388612509168161142515687121090633303873428604859747833224080877369714278840256818589467206894139816920257647413181032409104365923933508834899768073901376701202444980999444678094901710676512300977806325201945783975407559284982963922624044488780881642991285171168577689857596468808625147235704536719651585160127574905220114079753194406369384328783529341425947806945019264693511305108987517294253672331532940263889899992655892683882244559920395182543194945092832627323820180562974911920886631490508914626664323477555901100431926512300763040949849893370022267520467924075020971829309900676144829492728689661299560305072393171378386058841511173320549163352980606084302365838898614057609585533238209297682673634713370701654055078058194009797900815129554371083163830127513435524616969080292444607724313053976356057963195453696951092374137754902113447917487935280746970739656270028197182363397284131909689569890974899333805275887543487165516885943039453835506974107732549392205086296449772634601865195557479703327621475589265846993178044693197783932700072449223069751302322404495987096678188481587949075328688880165981769416244451928500181623888918269356965767926078287792505149681799437554437341348882244535423494492677318661808741917745858292545935774226010374011308835091921227003661283584604925693358846797897075470042179289309313827921905860713226292737916788531278418134936006474548819768557711396932835186119486668671945951898066699150380079324110469497804581433005268115792236574162569665747582959011414926250399470507103896181407463400114367652381629429917055651500996409467938552940197926307245315556571525699367204393279058038970652545733656566442231628883059826845695478916580298785182039045006017258946707638120851186554409557181174800120644830468445725394764827586437312261908771780190235888648795553371928431517569847680356780120845613903274087212514165580973983744263192115117700175005684238827949665419964574270264194851595510342117419223105235754066849796629334465479694521034749483781572024591682669303144496843445464951729544735746185453931695022783365525055509647071789495577313591824629494045478471559149490043074467374953937989480276789395298964101486743047457722450936918094757059631478634050349127501400204215727906055385603757587224352355317026160441896770188158173690959550578235856815375543188097186982890815149378654368647714274162187457740639635704292874035390462701113868039350782159412867887413040802376343543221512230487079503728957485553097278037115775005323318280195158647658028738035013476904703572866831575742876650732078966584529376848400093916090768165617436797723373929827337523840436597065773189578231621603943698589041204039364761683467072436136466810353044380223499578507705744531601282779609312989008993071651962547857781647206558926171539771353460971205917176089530925992920421286773846827127885346813181313507345603822458147626226695018728895702374879866283223737213411477604619916546115840413499703918991385691408415746190657195224272043363325772785957523413660159114256656746598811038257940052688973436723907974606515979638164328653085906307190672572344539737098360250266386418174153642182624514720387298616887503071971229541562374439603918223380186738743147952403358782391898318605051152611397664979783089618338514983026490895483488626006509597205741699751636271234724078685024943696995231422955936162301019250228610160730450380590298484449444894686327580605389982612710893377227397080915881313999017769452108205965668355570614689758571646772504624082093663901556206903858888709324287401794375878497587786305561882766086859542229013301920909071317192715435559074231362161004195590705144217605432474819149799647440366586872810068340360336976104768864228095773981719019577615385800424428033118994218611809561425419985799100943776300214349536002067663723881519048980051874535468862194621440863377200337492401757838141919483920008778845950389986408069208439835392474413915391541856558697408757505945632440908758487211821704617738541219766447097203699219014616565247096642298175146364921429907046686272870711683632812251815254670561206688916657197079964219334510246876296262955096449427905556467987653550171613591955079102956975599343390718192280517619987160464855810579027199053278823723354504218061550196334311222645258594305796389225925367341338991588388741017560214890156449741451114078903919888421286772776242416302968103472788838865440116762741697674973201278975742651148493332443962979783380105389740654839995669414886970860140872111614072602703984006928822025824979887172384115880789111983628458314871489907625702609206292227047191729944734886213541390525415541752682644094995660449094466324011207174880484166587271388699540922264911026233868612552495531013552306765595339299502180236553300741728006697320126301087354922608888625918256381071055246924994460713347774643546619714900577439367131332618073712253628172564298479140162997287099356750572745107548860804838852940093124217761488198624918092867146375315188136323907581525166583153549874540712536905100698247013746567575846745153168323000674452228388709724272044913042607811294669911028405747413882703348428242281083222674779419222661914662380605666213755656281256092833671566214323939705467825257983642297435420746037259289870158950233039689050041997395772292803662981512238831942831487714806532745704409821956500294821272817375215672077578280525581464922089510930922946255631686052758853381332438559048980672005913603522004725438375986815775382083075700560546889665982129311541846221817955337373553409532261170450949681110629021662150612890170464777757642566430646539501232025750545309234227630285492937217794190796936898458130142041378164583972297258625244938874300693547433884934416664779091984903932544990174458939556831177178570001858075605438276966227403367731232400975021578078995932100752631714500953975038420107856082580298792779538550787104648044520858185286893199510775685262750047033718165258537903911657546657227517595431116070321507379796242133345027818660492007060216408254633213438879653614275806252382858936457192765534486826376094765656974644573848970742063068845205583156902751748918619916618470895938127881214263165062456984808996007460317988803929106462025973065044390159467169512480046731596471692547630781271160610619901449995425437064739701078442143652210475050135598196947413408947391203772812500613715861490445301450250296048633963699122130833047804621671961249191140122046884417417266913137553694581052188055707936489599526396514797494434064714387326859613344577937084023845233907901482515238026741595831477902049244921605603153389308419170274452896502248908835523077860307779249725908606687944506604899927762720755706743822287236225613726722468979815750929170785111880146325727285413385287397341397229228883705427040979508849124368520659653867959979418306315787524713543522909782386168802972667338010448393103949254161136291510836652935483247826844051515032483129597077708980232684840971450880497999663270009969361804587771488466990475773306273303863331172862233043683720619755195471068213337230630761605351373489596296654962562481635660099826522375426229904343383384404918755911101966737298031327945950452959697775732062548627759772841075992721132691923228308785993819371998425457462706405265841114369473494399816720212640280069427550582837601530582009922583216755226680451201082005364326212967714126917881620583695251828167882702580026469082216214892722958575673939237817199951723029027712058582230495152990591466643279595610263451275734776891188695802323679830704673780938299030063317853834794331767347342578683746212917423789954940129639224661314967799609964271496668642943208209984890200878353651322575440369641247895343350715926697555255869960424491450148428940489873296076726075576628924556520195725444700553722258146288715567228805036431559816776400881737171849853691963788292637739665124757666304355377221825303069343401667326515496174286841050644115869566530937741889378341971573541024179575446953239942277424133050397025704813268247253704271678522070768374617039252702542448999195690392249537778327527482004040609324403880292238657426480999759862364332031211102939645803627189281648143331333800320351946897702872933397063782265948264276967296876500196747465233824394088622164557837949804579560678098742317699523778738063800193656365954160182796139186733233597783797911411597001903971553148935648725097759434805217323280942194519246430156081844986031323139815726110087992705940596130683891452882564834714334145235341841033520340282394204509896905929095503987460286940078307591016897321607579530261470585859098207042259013749053913698284356898020513141354215078444889777360050592115126243467540684239359929682454261925969790739437621979153600575276105054588111522480399065375190082713273186647221377460615750599527091508493184926612580444028457976853469653368028848718863971678510182628425848041878979387518685616598200048109365229019432704722381346418565685303858484973463601065429611594091198151143828074343148812549204677822664076616301339243118373063491258540738709889980524766914074349049591752378559979838436458154280205364517134823151652675262998631287515231463557458429580166259272384738873312258320554607184577635920915397468947459044998206476208518801558217232145010371767455249288104146486160557966981101920770899099941119284396732219948623362368940584333728234875836035201236192013924139128139981654845358163179396123560665892258512481203633703059721015802466535783928600557072069853187035658322410257118582504701536716546121482415501925960001875797418036568307318867203297222830247485336253900857632458476259122186216490433401985440283305385868149087756239043253115218694794399144458389608525837116076378833008796520444973744805989639340593779771334068598621275710630834154331760968215387275407918969456182125354803775818561008432976205648495675261206984566555459093588240455492704509059240514419419882482206203466677857180085974397836053194293792553328034363365147658732590846987159951648821840564704626641027593404889685947941614895862776593872458461410177079031506971673767424723823441025369573246492236912136366583054610657333777965448701832602560469511478778212521794717147885299454069867641681981066329320573443872136561591650781157193842080716951167502826034377277005221090817374416229777417316947082474136057105492931654420255353443071817960458264270957167573247887208228638205134207404828140842919452026931426329567864482335346238721387053943640782233913103556236667253518105084122138891624824741420226958377958240965756880304885462572651919677834677430907577688142718696888950018373271407505872680081809388258366133334910720961491224865265768080626186202962749341475026649716975055519388527647508000000122126169769007601603129382713473921206381732257386957364147160001613513248121369055387979935487425455427884026352804117192445331028608155990561389018675579037832554800899216992628065805607173190754058258591374901880618867373453515071867366209040327935962416231587390323665976313437431012889978832466906114154633415096638175528825923668519942395306595507998607228533884023763830880868489133352435158268382371068629304257287843381981389984032819012525110535856993961638363737155978815040285074248114233411611496945712581917564021507543723804934451381802142850445053832396940992694176946631791398536574730348810951518724333502790845437432003349426204791365017462365121435072249356087162779414839634749298343341366350561297397277906253046233411455057899782778744464494556349903849639506081216363952311670842448465070892216390525306316491470917785755494314963664293396711590212961048873001940815420919179932433585562700950153673243905490528243789903129961519958440128342511115411842468468592309429707267128429674715861712734991687404396583753561962170592429590571031773172434603172197061280970854089981426652592964626982740110443087862276235991616702123157862384418663006002813697327653112031334593392158427252512919142644826011130819357960847456220537070646246136842248230429646613581868762921404478330074214985869176595917649076922364904501702811356786669647676466734908191557118552747600557996076073252748099297289967122940607089749330850553336425252676211559684907617907753380287699309036084174158651381233949331123727301881208929925454785682357461335033150828990250036798957556216721287058250885319087361342913870552151225646986328858635919447825615243397536566351105204725826485852549130966395272694325212821550118100281868552870322962759865504219588469047671224735933046619390692417924091562144858207267103951317846059703723366932846164133898944428341467334518921788972157810209289684568458788440406442301635327823017407489173449451212812354757435601042778471286439449711077598416460480348113260276615682001059221186317327913218379416005462855815243285937934906765149293798886091866296658143806979052322197914994838708313452726145034409897847945842743311051618518913849852190552246483599228439829477140902409453084424467499311054445637245126434471513929244392351225859569556995086634878769742315970212730160596127742333714132852548564139348846631605280798815173663171347869372810821341154733696701634918030764877636310771129881844695323267521452138952453561805953399095585598843144736898658862968073369164411211739381736833406087188287322221166372136199506163806945074676706992597577029346237970292018652836447688434697471391647252677734713165049773809473006192869343985040814517289986372005466398398543106994225242420241842188597284219097401016557302311122704087394321951011291864181742594622903612234047828005988604901788323306675859530497043409782119790642183216533125312110177450008689191387080599013932178773748105147364059445473953502520964588212125847592617943923019901143713729028299384931422662948734702858399707352728415376941192338936601718903988538460130691717438098542316960106922503312057642795937409687302135111281029988249120452696404906420204501684492760074760910047912245362621879132094555972256994211405292023682263454207335129718356271447340650431159416627205558050170508709640360033697050911223062807130413280427974765968908055257150872527079950935751599004383179644987684736478142938888208806769629693180050673386409367258429040531291141317853056912752741098728960114407869407120324136854392185999839635074391023313908311658170892737361728612484014404890661896357663272338260960207837097607841245928589939518916989023482806397795606663361019986620105862567854339379824622433553096544562930836826531846517320689085372675282116630534914483370067959197492438736446141821291968833849701305969942690326646197069197436608303334535435445740014916028483585543689599671110356013022754306346496830914788798827213253176712184129948992631336361755583694685190913259606907474485963663430391634530831566511299209151009355436122542225764977200085548332321314790597331385825175695993414123572771988413333031787266081814588770393242583446361950370910287744430834799731590714844115044705254611516453323033689229037864484456573307683610991147767585344377157522625006965986379266666454764906044247978540745183875950046125557672715902059374782778725671120626637706395276729179758725125878355684337961501804167821685105441814083747404402572679728910048209415990315999405419881533867615921432788698174875342351167292243487941033035178832568474834743745256659569088135015462146012552295072667186568539854988147686823689897365775565508254012214073683498371066894040405736459829624073470180385881174470516717419793068158791185598320452719222210801327958936251390029631798214829328593270725182892154514336465468447318716611615991820510772881515461659157610160147852970399481212972340817236618825874301921125280925717538852711893876126031723112577666676211045486645060634187290575466768362611845365831746507068058160747745899157200442619144507161685438476991111223681088124295471573590575295305733782458143528804542413532766744156042188685142199038847195215167959258049457743351073243101423491126259939642638285014863996001912850837863509388704613689267586299455287396247539131424232366951738151378892386145620147333534961679467399846414484527458517013696041071955683501974271409043757717794341820122114200110549961196019227991472680732866717916125334602267973361561442524515822682094288674305246433904843314215242018861389223161459562839703141988036159059764218695214558313864926707644644562933022186025909206932332924646715752908858009377596533290936237846595259890248392044381590853378586790524905389563098849894383419523270546421856924435308199377884137614369243108356442613553922536044524881351874830160378332023073039277774138774415773874116117504024137350521551286871192248023040460809342557869199558401529836087665292492898157266774777070610239992829359934219809787866472406852326775204638435733675207066207579883127462015288320246220910395919861636824688521421456754116139815568445651451630045532492369492008949424651143159168128136922304394386004297705980589382763628685339836141581195411655633662941069448765318260457622788881874681358084805256821890165953810584098073433540444668359399300631816321866583010035813861394348842174461880852287304388637604610891972007317839038090168453430998196608857324088656062711349059041188758828218897137228947221418986823316176398694841760660866478338054594871982882329822657916779177623326532728404309847093292745563334415452581921650169523594895482015404824342660983469907322075153700371541055944123882275469782929076449222192909815126137852143208264501471064339010808321224701787229203175526872446446458572433137049903863954609750304403722759880782829613882341444909850541448210310345041870939207635122319289312705626214852099788454461150061883843773829164326379002039532237837214161062741322169306734484664579259995864487995366967920282481582894427062237293002231316810830986878124465844108983705896150647510853647426688648942973265815791841387798866632964804105912387238190169466937916951058905641593221114647482072462366228585343577319858098468528869534571751011409751308515932736873035691020074000395495533511870569538542437248756567353755131590095755181715913745737957425296416855035583253966790985312721676994031027979220625585469935220917730249502105481636923960255293263735613552770922363916064519188039351483749352380986393442491090710609485812093739587281734418157309092082335155575703782544783834900832629806005628560047551627891748556976268740134890831694713764905893063635729075744026586980106543279574613265422343691418037127523006327781818059622083031489927579540459489888184411898900661422071694738435807571969595976473493439401860525539362598141850551397867956974126466468648428418135354971468914197055542633991221184621133885318805583558225465761339129545855293890245517136447959827248776781292871627360698388708425598390444584657889324793801682680269928814463505388599493354355557451584021761031467577151491378417528936504892326442531915484303318018676543003851959020656143128092529056879983982988591483363824116788524175859217884262600523855190293331711202808671041538526326562914946543132192641265158439688206214744826518798764279962240162788618515917084911097017082516420216059778658887499736439554570555139547915722656032917025260186183836947098588059839280544400990274011366039248976856842506819271244199611485164404861329473604282063986234622121727643574638990714196781421843873869008456110504755127938449165472703526401534870539045716526983485595396940419326470828266087799445368776945610751372075058625059083136999506155606595404252937700333311565364731557758619976564063575881715689311452502577623300632842795986580977148217899649811699626093667846172089093822816529667243740959319490059746299046296490799334306211141640688971059630005587068647829537204067869545500362938220250053938698383286051930225884991749000202042562041182332465659035297092888422751846822322152475499203412865606525690611979992047422426860414820048558412909208234688931087380720305406574290333573314468143840807174507862225960509699189490017114542435975685124270863500727186729919230793542783041468792844720346900589200699533654680609502351663217653043310751681766129287163948140945352908989398393300045140959764720748180471580255218652871938295883358005635505344694879182271505057088098264436865035752989389201913134797811720046988152805413334450989674839337256917638124810797060245394661695888972493415359432866102286434671166902951569726073422484167517436193912694178301873381067146209513371693436519908783663119317180412300511586976416300588083483660442300411516946932844848315608407184902802119552026302941673193610405925666883398124472469108526163962333140450069196155315251343369541419730849512613569660524822002549799066776913108550925024356098959176178126045154854511230880418531806753546605165850667809730593898932575431302533588919351126320370286109059760094573636398760269172234884047469375380229502568584211412998080577337763488681882995998293237840225099700707586553428597648226144410771091564430670402643430956204964174095875569115743980727235673023066397433236631737796386420263882233958371727631595710132881657738158780510947959603268409908971953075765023257143455556014465263168637630849357393760318087452657759596837560860292027045901156729644325668739905374027909486935362279860391084677624539811698401554571947364218814214035767064869240998460714691761273811179804337899294884828777170639762377024131830466436754034738181519039582226663962415631297721716299469879700548550817720635744859194093032350835041975249123481506299763920121509719319530519749964494878486801961787785957020849213708516664981654686942954488694369047498936766539500285809939687462762356192127270534138734516413334844922726213902074245182583535625921782416316261960561140619479487698243607702892915089266115719157474350425749216107184848653932307445898439955919229105125473652800649962069408928798446531951920136961028698390020309016619164368857841543181836044511056614226571071572011911269832898858595953417386237422278157400741549687585586173084397199379550878199940882841280043608236173417022033701858652990958960165535663282618852718040736411733521902944231755868512974145582458045794719842961222532758291434573853012102925613749690297628220395581728144656271334166401939251588085168929992521969157459264072521625383887758472219035342597977275083182496501834526683649721675396361595178227403058526958258612413511246404611283613064169868642490017616952738164710892245955001789326882330685302131700453978038698604362274178268975393337371578911585662763890296472737432362959674205087074761844451537455858909806494202984812026532554546175097653566679403919155657194681171670973909965583735257766214095224777140810371053544307676190757642689020748755213738354076800599289550986384895231276453103479948106176912542586974410715281441291837056173934445523014971216020692355225339397595744270497122481795008644482163537547080677883047915327796662418999628318835356771512777489811925604796134846104065273508068848076081908552749579287554821118236108815511694437662556357871554093833724946992930271728942384189649909755043035279165504893651064006717188536930004045409662399115187031837380210682991457026965970035554691951834675081115578319317390459863325412454069128366428841310478591857154842239625457224196779257880842724210224184772150875516356628300550563573711687270809778131515510221564126372923309112803695861835535656171410064849209147191410826071883399814215599068819660592420854268273628715239103155997136672966919119137055291571115500666579265527863714050832874996091294529576086588797422201828500470826783114753921991799704068369455385794715246406328836887182382531239998161663764217349187759977174406534124350988962437045102073962663441584378582301772881293716288836998958538343682918379390161104920691463880530187356027584731130968784769437448689590230075812874371706166052586872276444624521847175902479768221825349722967180191384567332129845674831332263282137227636121828713601455346494647072042941444153938397922582203187019260238988839516791095772010809200141933357244373366672546941356486091489588805529996541192997357591825222052768277125750615129990294292741532092933004486323113752661692987833341473674312436196174961676919149886999493964331295081067818843521507477071645828266897674559243489427706960852862952177694768480916557795509679773866446749726918747584928135601034138776395917139086485640859067833446218381391701367622822713846225209351351407593117365582622562763287384496451964915297661995747264492865144304856937689817827056517226843568802336967889536877727288678318389962984740458242128309702837169462125877408649688723123527819531555582715228221994473587443179040279014874966199813735431164091825290871637011599150743029650840186398577832486794479309687263558186988379904985163758478465483913497468233258553331158701761198893130232518140490111866935495596786043764934115298130746569316439159400546554207859084697344789092680562872734105730596025805234237369662458265880218984880266553506320832789269814498257624383236698703333869053955870997650095529274405214693123664714125175901106965839739360137409165528996008805466381091692492280953747312144105260959828394192614295538336603220600781307628970292862090582756011696588258345210838805356360550294212569475880883770269234523964516803205916984524505971123234700732345685408312246986436131900189525147194594208252979362925054720932146100041852340385859919640424988381760153438248815895775313815008626342407204014877526858958349659945556101346650848087476408550081289942480911867040370307057872010073775180394640526281940152604830217143651318754698478246953383740403593334809865320979719020390614816659470072889755491057525671112299294406279352444621127286037383087239472805711595904727583195454196580151347536410958438861001405555216651937698165161677012544807061614259297032699662358301769517971467236485464357683365205476250908849399674601291208208735931854518203705200711402254280877680494779714969897914146819526293340132154879279984807410188132535943650132109153036659796798115167221476724873008573185271367814534995464105597725608103083643956956156515121971912543855109452257078339377692308378516373571042866528243984442966779877110172817922409261522237854859081251286778288372479924193224943405532624874689775967549886585374039008466537956945951582685761902892263002837655469469912794943736254047464862424376493134984106898558176153388042273109801379902459130646984433489894308258452955827497302057787299637516449391010208202753782794355578978130231777928853655411377102328645982761725112807046762937549151477484516951016499414241843705496313772140683744301814552346725711631015057439234998287460289228674000594737066540531682166673998787778123968106545347440874958670537139071309956199478840791423335964926012639536428678751952653012300194490220283656904168814549968512745862532111992020613224629794665888002276809806071105501701458493342886499216154134435118818929472434031129082981869916358220030643239104056555089958659096833342992927705913241386155686973811894822191678832999491627806915274485546273196571565517270952927279686622143758943628765881779992903550865086504597384518714466156980216400682004384367179953600900962688640032374960208489062730423359886580413916622106165336145923602901482220169595529095286406797870995395410025122395282871039432557841552591531021949841583454261300405050650650631643099380405630921947867529667183947125365546378927124819547667262745181168986930430041658157028592635987672671083879901215678536741773193035575889937398422534988916079279429602558463295628945622870604542168340399873338350955963812666143767849179181163835841325638287169612950801563407189598345529146638892767879692087157630802377789274455286497273983203071404267961804981275518417980259266695177525189563847138302222758305729799479759571412217115810930040721426327716348041804301047605861687671767622941477065462286264516794521537090082899347919081435566840503385681603304748892032694695988243882116246896463244651532556790435471493761896649316374660654963755722729472639929469429338675642131802426367697597925735856738024763222881731567476858891830431964374252164274361091280720520952952926244170906852420253109885908791933743987425910561698855717781364352467397167349394563386240033770509735548183415932761664427587432228259769629979893745550873864316856143821541361689956842358393878045963170001979595818024944155967469995435014012199517874586604646667713670091561267566101900879169156258487959822455845426278626032312883710116343768403157737242405499728556334400662318533906563809280799453267408542445862878406152284779020335330848005060365974809690198064289829600639390980616090919179739131401589080396593385071714235948961621659282693356231999089626442810338346568048609442541066279568177248843311974057663483642870199974665723597128911972063421889633597541562394689742741660629912399819134967598560427286173853743484656803772519232731580768191403615194892437293684966470850793722081707446167871288650336536787849589128561639195817665036526353693105436909036920698489548689223782812024064429765126450917470922097911196830970171910163359866340385618811260852432426243932772620238630311338288218436007447265418315145640935756288745562648331619592141154655871147554729302270527780241174895152080602012488312612938815988936724430175472645301845596323183222569852074170134128915281157899136883775523120255206826174763953796866447984594313627629145759146912397872097743032954063594620905983336374440273665548355377227572133431895739781107878592679754790381668411131768105636437279631539584446180087938382207427279950980836673165448207687585471354507770821354786684979587654986853988014415441800077798004159065872704056235218462518901122746018126203657740511014329063229042760134695997886169903639905331004507151503226089859483210436922886490803270992276492970446800595205110929795753719481032585803304614988856173772560511070202576369460014858960587295209432099144533338781170264253861323761992866501792558725076861051662789886089226411461852351835689988975783014734732678246563139468700944761120095368882984738212722780129614308835313937730633955888287384440251365675078876574408139639925319095876591088830613335074485717614858452889000361171733951459954048865086214324914262585959633850246321289212976245897566846284826409227143017215906889735488977396922928053531897797818153688254853700942773472740358934917837564056426817843565888808400849719099426439700777896299223673486728416629499327566453376360254513101730101723053727763760100752603325515141768537009745453286851381414733277293465904526088272240030950262130876019478322342008454689214949546031153206603838107387724251445097459383525300408745175222590130757237509087196912739511320103283119677660156332297057512917612496892177417955291458774425240537226206491129642189437523596634699234065111526478275254146565948274123195840082074424773538333477748625589675694902778072534347693248574333525488080283718560655598726729421338305430950201313285852173215624874416624190971156996927508907267477438582868660983118382444149695913241936072483286796690933341646579374840384920752229479779980770218174575629604331166606657715084350525583665832363147522373921937156133819207769484836960474893146043349399838831492637033427495536200667151485579052344754700582418066072688979086664724367352072652407444117296587132798128869484976881599405793943677685235381957654604173627763448233691256731865986153583076026179257674881106682594037483190050557191382281606651114505364010344654704202205424244751463718460714348982652206901032615366023525223605850727647516770495609316576276604008620199947475594809600111344994721877986913393623775632023146599109076205989618171143116258146623643574002111150527317019589849895736811930605536875742080906230824102415298028697224070187935935958064622865370534821613926336127834607590159572908484857078397187175312370710151102708236778242768467233996716101494700644877527217105192914740008270891193808774213807250802671592949623461899974925124853282297184912529888092889241911367360864189468043077898593953762065743789160299343328367989587979616783866437435001894155042765441515151812241358661993819634720178825690700655168323198421780224086167789586995909022677055540816005030804599105621539966500593153773127435940879571776513061418969983950800620342324283610785675395827378843676620053084489058347448079503280057394361724202420501513224699680952303003792190135286444478290500255138793492500286084247255313375608750478962961176836716153870668502001175608466535942947873463217646620092906680726751628981478739256053719840028447125901044433034358689519130950219974309239578004110372774676575548772801957370853606279504749667627632047024213177298098011156591194118964099562274801197107847445134555118310990237110219762075037816863798364597389517249154939420981522720832395200983870977872662546871709055404109265048361334820925051568934961292293293469157257107107522372449409662491894498237209795583231134145408457080834348155172775341404869572857686331967110806012940070273239181497819485720488676724183321924556242035174574394430752143179166081647108905634058046219576929963291643135212613019757715326655257292333975415848582914875737606232263422891774812864270454999286715985302805296540615735876120136169290167616441353226076430814843639599570884394831014112908250740229791512746670969614390076857689003233063431264067717490718131481167127069135377009433468905003036895024687712258961650949665555888209305185424774986538184384304801906631878155578973121173325416567132459221936250870019400345437795680252359490291718026492095566751213263462152063513366986589972876919491688273993896283091593866659564590149650324812899079285733835984640157758551936631098482787674440474499589430128617943093122815384460151540013162955484810877285903868418053099450643048761255421769069810511971917388858903430952714292142227399189817939235138415672814897916167311988118927360967594331535606885892844305209808240425718043297950104638740604774776774317932164632587537306748089322065513013401043980671997005460043900864095179361064159686609531595442042496184451857649167875490532236283812116440489466684849212598150205824981565042516609648341336092220255328515157500194652781420528695695219308659010059252337553180263802980347482583498065877679718660973022873098691996620264656562992672824853620808777861709010542810043904727212276995948387561400200902902342243739770851409908057558983183550157933200192101512757389832691300361845967929136873499632735781802698580912359717790723641031843250972046252403848651869247980565468664749426179967615701854242810948423059808121259683210185282268946978996708404499659005511818841287014591120918450490144395995295673788327307668083273503538968403152571272385274291914728795423493339869407416899206860868832351926559566840811607237846052288785803806709931503183638941724131086808177502677736564770764373368154062689462970730795440043713535562020077938580271024164606002082476876334240469248976743928242438383460863375574365404008357515026745715168849812755410193666077173968525305260641101814585908772977544852328536172238286073789380132658729064828127442844619787263753911666651089538898468343426299241626343359927533307858838709046067497924714364964078336647996113203171771987732680396564969431884898533163200340779965086814703420033474628032584200734569178871241117915657405757309405636666620032731633638551213972897594804024988987778894301457763023896680172874988130969772955430007620972467989483650144858504207036164474286665671346409785671471546967225874079924484162626928659933071771506679770549168843780717772550219446162111696840670931033301178992952500120415971455880818662887105031292101743799396055029309962030867831230640055767702487372269402448324011604795521047554574400286510617284713260619451041637568335234884501889368486971394902329268030375833449322587511184991610981582421387871879050239271075402245587921641398945597818799805740313482983190908427051051814133069964589199867305724331792107794561576138593446962961246139431967378472840622038573738473704243046341761721048873775797598689549431802321163427721315232361707143495743680304688879042588935741972607869100744804499799455259432735234558996483999782424969834805732566339730854500576058573151168632170637487658008897552534762227153698876654252074285401444635054195517553856322467474671258069381859983440423270935286533297189227259684335096122387072670840075321988182272772268355883738577987807603757163591442195079954138596242334796888941807855153745064233084331415674313022083591933656326143906301424657932088441989172274789349509722288147050772865442235191033708646282548961783365486777992682736038229156363698104729693071217022972575806279208006616020593251736274130243450396883913957473087597038000083191140377158081870770583895629816992465541490587795564117794955881998130297552924855751727269851212280288114153302550033335120628966234945879638283352123429907467950871651450131423250384337319885204934637748986814455344708344959452296886560656540131699184062829766306968589303455201697196295551902564982947345153910478043675239132939306750316608723288116991616453959215388358309412218269513991420417009498011768343075378330346965704070414412739213451012009960234390221337058651160990441208841484084493233830251794598221555583143190317827448006726390600713890940165239421165258027887178859759420944527610771838465953318702742818444478663790064398980898350425073178060022243400126602316699855080761946858851560899115186510410757875425048315923781071419741631944315641096517547601485343887169855913511378217087942190415083373442863034454044237085412957056945381293178475239790480882071607875836560870625014036613785782940889660433594673459163758278526531533614268229427809193068867703532772427522085948192635939493058100303433482546978551253484345817672170163643676071650464247759984503761038525333873199321339984401988650070425448375632251418361103152719565640794806490974421157930070476742438148171403090060970054402841199910606764285683198768168405564411279283751964985501000936075433348000196442874287122956981528559495093560224278693792756165673710441994897189467550283553559896504989040326414267386761309117409215257199056440120348271402209312662457532067380074983521748377708140365705287690083390623088040602336679291291001614954132377337552332543537913949371592172788965082814793682740117824617916160336985409687930059537250439459396958381229063615291418837844248099268716757071573720197247654426515651710334656624893051922203288097518412291005940680720686771132390434040155909617901615251264715620103794265284870995716511099429818819111587036916870608056393184645241352619761907465559986275013353740519092823615471785405386535972849784599625715857413563102854036281272395650621455898863347954204537304392483663659423816441889825421980959731895643701273532755585577099198275491672755723920127613564752581345058521352435652118058152857839245767535294944615052335485736557619075345678218967731122706669798416484900182161671240731878336949735242937249715025100890028114413810720907854132863249345525347150578489250131751965209713504363645813293761887421784343336896998570283534777502565325556599049363409320927404732329960635128837738293337520940743409765222489237113131907989573972066137852390771450047711770916207701220024058481394121505728918216632317565820458085993976553751880643005299804423110024977828184975254904835392178803927523753727644625709185568937400461404764459080260510368688195078377740782472312989803096422963125798880540868234742296134891758089202594380858509777507407931621411433605447629851479496367293525086665048839519414173364338107822456103152357310510104973866329587807469632063494446981583354804401713607963426533487648187914242870715857791342423837767184265684297822242085145569655646572938312885410841525390643808653853346903228529239241729123435017896081366330597387010468817038870431800573558019376610329871083837783457609221698246945486002701078426400209942351872750931945431434341908722500377497230323233043902370805309537547587138450420573652513120641301353675826867393365891522512070551090896376486170897597651941721570731665914332648432296684703184522017758615982023951427294694668851546072813964290105159058932272390515979363537418991397461638272823153141108229052332562264625354974551840147984994389097913739423154727374919718285526305019176973974696154493913678077429852090848200129437323954749973815868933457623230550050355334730368351601938056409139976934642808831056588447621044339879506420136279060733362370027126243480995832516638040708743226345391006744709132777433070878749129478894688691658319269757224252465936213964079179125300861626527404560300616905751273725289950411780240573142006865341493561429613324838834978524381527160923699188043919271761868949934441716339117067375629609664751151312856198236481499410938556490395566936680375868155439573772547983007301337425824781429427011738251447389804038697527476091920286399513063336107063414585252625709116252423495455570876649069354058329031867480579792560930863922235875235918479851854111098407893898416908670774251618897375210031310797735682486333757395870627534214370609509106142480381152412833811754911641787709080677432843340755650747342999775605662436100478173531152754726248309844763968831028903145627071310953551450043840005655678125067225532700097220932165338658285594751183125824423154370584020052110399956983632683972262835690231153571224952960189364257082274985803654080985824260450013699847175820215364900163877764782239317514491984744979739442321676983763401924205820868454708565676196867452601242203769509219303164260624512505224569874006057425719857162474390736319437317538229664135447875735930470365907106848489372806276705362077293408355906545517432351672807992732333930736504075923691665433645766643266964901697400539286571903842895559912992979338646888926091140724182361525840070717689600413905148583290976441936575210617286305829541517176976071140525126981358475349593104326289048909538190196529663304494791065716083817497794883594484153604762137352736822126773547730262179837631813719080296919841140923556140306397380528171823100103253960624037094398056706279582565244049471612934149248890515616205499463804024643440887454105968393915066827341982312675963669940441102090870575543703487484740900797810702006317010053057001153315477659501150083283987881408561984457217314896226161400281102705637586631085687423876777595451310661317256310780199541860287716678343997261426710218540228848428425753114757521247482273478733713121613253836780419261965662629220798359066633173581055333560643529808756722233787676679885254275998235895990968689235592776758337668452519123490152550713116827230071078290667394858597232036681159189141447845550251460768217733248255234826849014150634460307672785348782711507198128117923869175445036713990709186429623949966712508287434010462571909355764463283223232234517216880814105133852717879373045560508870064185386002954666236529271252867945715289243500273838076825654892498925101880594518198238545091152590788697059323112823802244063742058930850795125526127527949254449426517984884527901404864319718427746128306326008909217319197644627080520265427255641998253586647663393675772706144172939126425253059366944981990637840028763211409984978211453181407055848774770787730730489924645351119898612786747572871752813918388437276246858632868199337558263083328432832232505005810514332711111731816238434786264683423111358423912298433217068576705700968788287098512929719331807343104704075302201175078553233639403776610798017362654177272412284789048461603175467693985734568744889607730884934136559178679508786722137107818336452968122149696942875812147248591049873795144305402547487223356090902392697272477201443332555928661431137711676276941606492878292252319905127635832013880835161856856197505685269468026803618019132095087594882811522280630230980437909183547834979376106264982417735864817792241911763520467286575707213508007118045885010619200891952559510534630930253152792846028735591542412507021922340525726938212502414241750784428346845263387856753269423931818030317307661428365091162290413154287711023807963574740994646357884181692011978724916264658353786101003239941962636708270608899232805453454050362272992811211313373397576980836008768463575107401744056066517257384650506031485783486662931708621199158988050420376813679384469625252311016178127024867516795834229668322138311281904736698362502748296134738573094966406229366160979646146358324897701314769356623992732769010208267732314698309707869221093189937474205107909400947344740233957063905504494375821652703956391598162040828685363236284159508226012864291613657217369182294706706732156846790910585674508530214459416132432007685533017862414311715338566496541686373803593527358330918816333578293230066105895675807531315910191172291000381451313638887975597725150020660029177471589010521096863668049532518004346132555769128435278412020998027847291234416979184396010129527974675886872698937195089676072543486130105170746755659112057924659779637677614897102977442917607204477029326102971770039472365855273380987011939176981975291949694290021674625205228942987041086998036882478552467474710533694200967245831509294175286601684968677375970795881087171502532404819449512113058857774161689431369840361136284941863114665446095900217900248563988439522571218158188917333994704697624252222141017506074457598027086647920487983388154166841140937549329098582394055300765184234621782659619274174666620326243234712197412914457948924927147083460198764291581997079219629897424884444508686220634191132090281755440854534454138521262149363503219968424578455019247410643540521890173230432874570370291546352949305814840668739276843140624587194187918224975370747490361494777148649493104776317243621867526937869793662310256420482000787076839594501010059928415283637806073683823374993159293683346991771010588446889046010900065464116785871378201065377824177755789908329998343816004193424248911958738632129201893256223749830558427226359965583765600921931830348914236559088407308814702856218335664084451997096538767713033493765156106046239312962016805616891269382217740604726766236942997593988225017656077825423755555148618382352467137852633904672462157738500338445311867375721422119014229782597171421206998843620662167731867116262025468052209329380195682865436384542968826908680461685172107197433633438004873821940236829365531155186566085344481582331098852303817768276301904220772415376288207418454127593847514223314888132006406134290398952083361819962474900131585167652412829547583566401565164629171831242595402416366137740223356036112662534703432685639462241884325846324668917820076179000654867906864345314994329034892517479151693903603799492195977675976790926080419131822904233573282674887973410100500627944292353817748239221184820074490498611557341509294521319948887887860348830284865058865744460694852754593045773212945188470597106454383308989640365041279933349458029977375934810495417903872499401052368610695512002986834276998031688976904720288599653379672637204073477500923707050748117161954553204117972567461454062968392867610911122806297664810840995408291462622725184129420151992463910308539941140484943303142009290554007316518673682969679942572142819461530581754960741912776794999765011516754142332492031994625231062663376770583339644296161430623385026056805724702945200615997869247614179760791469639143432181951409011201791712605343697171627663777377863610701264213581223359069187472523454420995088141701751852844346013544586008189877180920635938334710738458659316936901936585942605530171235695152258634516075137695759716508201629806299086440880811735313934504270638217178930311348139007984705435037192227730918894574098466893187416319431219522239831539408106116361194321129446894734420534015042432436076904793907345440426134837486615844915425331066029126750913171557971635988806297133370807482109492115715964381243233026172600597603171354210290798760770495448587714708457809217862365654777470006313595552687095875179671639657947445314809400480237582819104389901577734622947139369985811790173766995611944168535084640047592590234605549681834423765114230967260828596798968956566132361203970298070120840643921004184068485593302203592683450243263387688645119898553066077570374004731048656760638100313493672782474974576911710301021904194035350415325322832219384942603409214474446761753857559683258012200120671389262528462079538310585379835781412312158898831380428943526615207623904577767299500371064565761424028904231299000559950047561125448173372165642339234153801562833999027792677364805911535534612288349187803846735988629107594732270194187809331676452278630547469556604038532681939838655061929779862679058733349975681311312883585798644314281836783385158688988773209797280569641230012147130922007126441396823438514675799666467629742529597328010042265322076871841953616239883025141796971728262850962838967996565779605289126670031197286759199231847558092457794243077357287620195012316217427727354539273396207684854334075704095768073975934981096344970557242948461373281067629543502524376833501176379776382079716632630735907849795260593205993081442470850264042732565789715747769813314526679371558433008284558882679502426234151022783468647165286111278163866103350022040280359005785583862009703056861482255436004580431770702890608420344791830905582994582700125052339039371500708991394871243369097964095836753517378127794274017204645638876092154824317435070471881128743845045741417254537314651131281214130959484741393253010251337067401880244161034061963195666497850891151317427821246800049912605254005055213412320795389923450605246839015387861746158643634529580242021308959857534423014041701132332423158892878054452953436340074397828042300858566125483716095087080527368648615970676136444206478963549706193639018680556364680946619740814838400909527935122873711606224528495533352554947864891008396911347030471012274830781656428730640760599361661155315814792299726538935741210357126771439953214525185959907484758427532425276158357380476904694169412746799146103172209846362574181361323362183784585742943490809599516523646314842664334639426646897074105829492698887361990026122518094619658173363025368304287966094212918856479685813463171144835935458539859141690114753294120574826511106572812596313647893909358227930052921026024469316256276629192414585860016503553048651389188127400421873563722539543373338183870213362879226574186690415150791569850027262574260009887554431575446117442503715867999697435963324961296393949051226472028768165741757946776464760904053390458913243320409795803155372336295366296942442377340608056245492441141395478625790526239877369372450878245979373393564368457954559625531594587281892622194995958498192031821383559227848171509249286240636820154456676097522740718158121768916069995909492053001950130016423216443868920371787451871468238606307470929005527048252089211029742701667367499757623503956266998908960649241187415702264668444108545079251365637400125221301579386774663030163901793729655966546541640236113282419718957623818217928463938248881253107382758447789565125531810525383072245336786677957503997316325719695002316152303240705436630783466618512231997227494866990775057113531997148516479033223353787924557274252375345714171412689380850301324314740456087938165237066437988874214069619664504178943697071346622144092530115112185978132771248619543012436227431203762540887945151787179934773150246913145215769439960579632166059482689136798384030967472630663370879381495629410233662106664510636675804372757731323745708951503394216517401062174222732345376458420785211735923861816712408307568526721953067032966830487301876918118834068071902177551251785342266501427331759122970413903742565327058833437236616088627418777120983930954375810994835367039791687860252802786632498798569692517328858818389888709984991960794024314558709188096358502199998293162533972582499440196603934145119858095221811256939706894520981759227423692892152941930914314477290344887025537592024826994702653571156210232241378754767819840930955495483198334472019904624908665542074572340714933884597283859596198163589796717287809937738625835389093438230160152583460919817345266048786184090003283640548793261096230279894979254165692214647793684100612997701536268942840521168541800562745869188527634904638748905443947412884830128203023124046884456130078754140423373621554893984004842097922531212697885299915849353994429389639896014269043466015578361282475448847702689939475559701970689326004300197997201793101223270518661395291592657499382871257021936639340386604721324135171716374587342937751993485236735866258768170642124277476435145782063621407027315700483817498536875186495671267822314812520166261444207155244881107518446436143040515058223088195494045360771341150418542751923633797102670609868136542314709982438087726143634704313805269862789733311615522610857568588062269788297963489852561759022689780346494723409247138110628508623438621465091927797494830573041537441477201797731013058238102366861614256318418512396325573786862074065968420130920194860319660759026526567786842026299798669690249754083302410619020903774166827365555862504515738103631646244247642608525420328599615187533650530030546217970187633273153952641432583726710793231148138404127013052134628515169900303623179721834328412688959051823940496792064746630997892780172742946246123731408349742141935607973479722808413438142433429583991409061521936547043890903769020909194518328151232420255602777039728539264422868886427730119115954731514383315536126294892795157550586964163059722333230506062226520986714411119302246339923809382678200701255134152077600024431137206874902233818639862866216262447600389077199899724262393120558394396512459971246915656723852005523725369585692296832880876568301367009931827392035201710459745286597926942735191601575462621998260140707239373568761394313677066016956521663668008651615517983123657230077343965798984322005677255926694623621092601107971983245499190232106249595892044690263981700371979372380873408244364371938398092325394233504265072376137955944708158081748646123568296003988120476161297850702907844248590806885427767841330929889758458149403195843930618199349693458600506557776729717803561153018359034001198665032797088080340057383991004805095887254869546595724899882336048276433529038052202393543601297171114865943646601794357307231062377186512783241193323753233766523174390007234066234152384060361857133655222111959914449377467426409546002402691989142349593419876772387118647138469436627228951617581268495995010379969880714921943842568044000379529573807970612469044709572734808139821113752215806080526220863540103091087798925350225999333338169757709590107598881086605160787884565327715105250851771355546805468622741140259382777931167679174806015941030581653834338209796748948631531491067811547130021752871445781899078587996077368491966421597800590188553729247053871423702102173717893532953418064592690027788535358061611386517069652627791060049248055560820842113891194064729704396153001011145775174938710810857031698082175767726368500457341352892997040254988864092766830853819938640616381009897996837590911249229023630338912392422326484982447997285363334556053538711194709912092624804306518296171847657744831027906514267531154678311466137588264424773636445425292056855407819734709492968231176797880865850860057221172457651948793670086304505769609900239690458953742394364498740563047167808949139719608076574875330796352586338821225707409662177826194726068784887899284599782116545138291643868120707894257165410754031432601473988684650122835840461749750241336517530881592397585289006519065861502942341168897753234122001501869163430225307546492407959028657417262469090300269444594149201444103253824761926851917010563214290394865832708525757264329840688646051217481189061489184894876268954008617070110514476433690845656531400192977193543365435150271265987564583513678018477465576843891929268549160430480506658865838632486566792141037874484925642613296487493981044541241491157254822672508354908363879897773053455630885448655221400570938049606973475479778604325319135369382256815435737258032092134542617514769158075197291327976049869527351630626607702023339540193013171544772325965337834417553855293932686941068815438982451888076216478497052882608220317485894124663384322157230843649119134739291819410875595926172030132441898060745387725507354822197151043082192756868122939440932246401519704088234931355465765170412456284876779797805224089106254671920412778307169718582267147718589533323223114472076210723154291363473093823307135313222579615828577781522906776219351248617453809142815026253750161848487123110424931368356541758637384026282197490734471056394359472553116973379645006657051861150400731139443802806455312249195066275971718717360410179390439284528383922507550921220020766217619198392574134902990780049550923406967090905018456573050873967504032001864532509188355371587863405080663619963014408313915977726028212210495312736731232583703794932833544791306500981478584292315389281661468109458639241293555090179430290466824047836516025094704489800956415607471678444822057729557077388565870145597830157570181688990550226362519185566104983148539898953626138784992466787744087006490397163040937973997564974300375813831252838115225198548120713082251678670119349483135845924036356861631491784682896380140778540452571526416990290116971023781492388218927366079690638727596870228170596307869384260257360452783664566685268201776380871296745647992911413633987056722864525146014397537364849599451035933480686498201832511834672669557996840966845476312550264653672328020464959689602487067744679175412439406431495214630689050743036806327547692251653530908317913435555279313460200317555944890527021213648337681987386942826394868518637482225714873841712448751428839917997227520521680923471782200670166632022792251156099844119895081370925512763382276628593701591371961976229167827634785843103763434183923363129194058200695699040614752793103586184490548714365568640583695885558118296806829318144355212670784047132353380438340272641261306898519819048361444099482556901833433672180410135281049175226043552134417574491945584209520722314691955514382732357782332738191740702367409934345786123721888226558541521822108825920590902062092373613504537923650957018281187760602458341208572228860059133752998395249679606611981313163549086933436849648525333444171053617431770236748656523722727892126180655075674078678529901747290416120079362717739756833569956063080317760361365054779156572820832282261426033076703910850433445421573561510387566345795382748715075659394187641405427391319633091797642398442594834332305662170424010490454340465990466859361719655084367437040219008528608416004175447939388867742563955837409100156567624930582115738564659647155443271099707464251742539664795806798944115081251944952675899123722350795708535623491494788055534790465041078069238883656625604982014376054441794333954153243821556383100119625160440867394420554831843708159588927361731674730760097559998588964899615776461696226264834820352469723279874360411531869477073177967682443109425084637739107413412296739813521693047817907285666032887698503248124812174260054798831029616710745586487547397282841912907741502581347009552375885386023232234142644319236035391496861528891767611735712578949048667116196167738113179791041668707578953504575340787814396295274907552849871849674518003866956810909677889150771752895798805293277257796415072596032491093170683033550276151541809167397517925370427853623562518435288726477578928509014408995155835987059706929218952858250893017811255391363685560762665506788901630174852530702998335510599771598282350820910514721215392220751804118290905228459780892252451711890617847184669055270661379365753288645590577821348501631297982847941623249467790752776359759749455902408229297953744209464872762808488063565414136594918403001447611732730525443249835365122174267049405318496359635029582070527803852542717954454071267025084233511702842076035840554975983828678982068665866170851894834117928232169970111782276011074959384912089539539023328556185610244554546134317168709410339665480110064788753795392156837757880523930862204043139912722296600084010011699395004545451405239069193801330687928110462927920810308471168494613282345237416311737114803396429227776544205751273968981965683572226737355102130304589860680412762942580778774003203594237861376157747313390674573247211012638217624281159043375233005348947338372842193724206065984941173418178094056740643615053399275264207656801419171383070115743616697734798581699980073562076553917269977664416113566325806313149211422550618084740127716312945652288048176150389203772923638013420965371124561129269563135733186086167304083983112009953444711347472077970113916541581269178959917635873929030489055455959682465562741613931554002046709601197198007130485679514478209899477805176240158772402560934404436868509568051732798418652837470683812697159966440845575323490907381815557359362313539664882769394966790581556338181888540293786593990554128383667047088119937770320207504857911370182508403442104370747612237022877215176687573225099300548669983213047942077404082516736322881956730208031629984523159077400418251325029046370532033730326983594845642259677263127868516887904808370997782468069743001274527920896799692613333261928891944306065085120150272765748845640032943436330391857055854839730433425189442787556034276687124609656806978402866260627886299193798147135472505710961395347787273474820364735313010732229105367570165429514003281443467708474376769296151152242657665092153590546419332216592376751692251559996638878846875305371555322189796401409990274293228911836579907728882042991171497060514468123664592080257990149165590079502892342580005729599439548468978311424106510916305732321590814234478450114819019317241480388850300088347725476085475313839411743906984854877002010644572657860484573316500410077685567342218664577501427571639347284082706605658922821852452282590622544740515451549501086841604249837113512139006243096115284108989036110065704603991171059622831592718107952418212330961672936621874075818848489633730336391097585707006930872715474963268423992232816938615131286276439632251485648267100732212379790516014491072458988707791639014500254214987273148470595045401233074817208789283326464628025792226022827408166786272146206554530744793350804781103661941108432343369069927065852386764090576584756183589810111267725982740366300279660619641671016076476379590181518109610175213632344995736790514869069786304090828722791709177559561926310873675785922090886432825842162922464938570436890796765975026648805489974914476695883969300317161558961393573839642789370611050646129734012649264157964751628234414717678206869428794290716008421524484539135696021688663957469528904997302820485252582171170511887316842016428087698909976795681943315541194461989001433015551100932195740726222788201195857524293201940319306144166186714590157323081475168042564190166199290026622985824489584628344890077823491474326748356744303607018640733741095178788793508191936874274734614474226318477330683665774760391216958829476315703622891588088673166440452104246608091110473013921834323581555864337406953847439317682743381655134830539426011136375734425393201457206292853579714116104188067457907046301951591286909050525681988180656839095653627607686162417194228754388108863525161499238355528650823951009548557064439144383697788610310154328596414203152403464356009458814383454186108111793469587153552185843669435620597740040445917690051293710500359777661189384534959191606303532241870402038165524881366244508163916149115585949296669430354652745450953355788944825652351311074411513887564139033104426015612704622153098839483194418450280932136699465127201350077022563479295236350930319540764920995335630974701167161329138161337909927678117427080400788809616086467748417471314740816734862222607817672805147025544444574939147780610371327167863825667593147220624979430315319692280814994137013976251487371549720873785837950170996372913264178149683806957452486302154972103501402240140585577917393377639204989019472354604500388642866589574498703264006694299470196428840364188492690584139421211673662421457387106000222614135236914482824200368146547508050406727641341321425687600492012127177891909821697054212259193446071276235860075760546278521707542597491674866298688020099224724253738908283871009418347422139960890022323965618589143292369426447005140044854344662593004551312739514313890188721340488419898986097817763055807086400425690228347376030191009540688613226584841529972699435248856564135657415277583686049981858477899376644448783187973742941047668712457145769288731139563655583656118742608742742075650075745006318709325970202147261174983721674953249658827947480364545556565180626880148856336033127854969779900072898168999330635502618940235126406703753941073199233976241237738994671425395917922634521997246093733244770552483688327257872122671070401513778630543642318868531782793131977457569019067534946879713628194378894723923050094779442530265939832439131065769211839858502957213624455245116503195319154459828893661936060566846326783800905534101258086216160493694664941735007037607200124588395506932197161032797866841459293775124392019242138337592121569333118608466774689863992115380075337797208536569550008428264263590291667158085390483655256027056243772285962798377177417484610412489803919721637669942856831792045886376515534783408940425792852860764257305434326189566938918034308245344907609382208208318628799215477539401765584633504548508856451838041507216032284054125069643735796992363418038410039459740076336176187368536722620950419180807562485013607075494495559767092562704337385942540289024908252053725139724552109749645429930527484125943462939026428416258699979116043345787199981956133062792311675692987216210037734072044022638911045720795724146682645988445440134659219533174864348821502143773485596473095912837907132979615142635605935710577029686173661106212616173336300741917637249867315551080212190867035763604770973190830812192555722766095640740978788336462183126906189769469286060075681329943345270286755734616885421841678258828295939833911152851207006180080492121713965051036569886163535191709599608033748835875539221890174764105929608422128203927472801258573767942560327444625213606071241217841784566372404712001212671857571972264392767004380588995773251632159228180479892346064796880357214559812532846849340035236417200969243971727975190696388397070708453494330501685440896022078992493505102835684657617623771794152379660389170778067325224097261419925093548070137913976561959124202093143389534161969435405488904141584824215324665937528394503206945264381274648590237705115076389367356813783154302248019419222984974044420745693463519637378777798331154011488588498034814560932167355071857611042592633264034381370152308168132967839711814340965487046878087002653489622548974617611814576514583607800334961055295979673055410338233653166731428909561426538550241287145763847856794708835262967434185384432917215960702010076813516706770413695732070915253670764547669335807579103695686566767827140569479582684042481038578578772484025828307922945217427823419039230685431718109986520859314036963294029580176592266969919073507564446617383466960926793730114895120308921723651440079599673807283627142841064092042621494885566864343307881371062224365884413905077436422467605533145083796698223825024369868286590736594233006824915027403289399701115682861027245960818854730769721123124475531766419983626012371441386041793459210073926023071810681846964863316767788377005463816799524940108772318588328688038403176016569293992195637666068177488586811540767330408189197436418913237412504367933949495554677992542861131185952484834494950234808048655671440071875158872610596134421790706122746369386479132057417321335166300437212798568056600117252746168543586838046783319744870270351094137119948510482644723163522985650264962949142012752193428284271025682988504691792555678051106901102711441615453282157110719027849335769374882373473960700772925850427397824197254248789488288938978094294623102970377341883247481913334306860318920083919551177494425455555780659192820259143413167170488170157494766040085456549726090126379331883950419487691009429930268540168617614355428422679862364762404866718190791597611578305470992991345991167662554146450463259154829501713369973555847683633239712777443032640773024171200240866611671758018612039497740058941443446754312095641033100267786420092243787965738109837099185557003031059954774729915816414454431599281942580780159637890432435414067180617277157695505743208501678715675571293120052842849597482818990996179214467901900869971769406905295199391894684450393503295520390910926790081780024854349128620965002042473633043183251691057653643433387959785331854772521027802118811597983379394855977812152030890177601407737559216854252454785698919438474804631444739743656940846640596979714098486280408202929688920450166694415734202539828150049104854071647685270973052251923912253323381014944135081019224810070431454033747976624163500925298404755728159555367111343088429581736690842949184217351749302237839831021301264195912592136604915308247354590434875261662668400999666449512452515103272421430637778717332763519822295712519076099865068934679255942268860686251744334104239621716858206076843516331489425646066914696561322082982632382085337066838136510795362671364266926260858366893747870578916738543141010020958762549998773178919972596885080944100961103287487166592335472378922590488576517581701575915573479185125153319109257189058106218911790292994601598327006221278184276848822672821345299920657262122696625010452301815525207797702038087085338867053582927193177610297577844342580671453855403995714658894481578095395976332756725616083319564209790466228184570958085474676160830179308291884265120947457205211681768194113269914197620838924794340024151567265575839865000988240700430039976631558309499753537772591557126035405579305106584258193997956240149175190670216911308725666415578560194712448372956606453210408430712317890452860338087852305523586250720779013150152600365443062335615735864129724295146883283121692370538790625927662994885964355127466809853645965191240445892649138415938777633217431287009358862116013026346113573886624450282161498817079718135041843458926555563086127510749909709056438606432797450686046308452996476671767321050467177602273717914612574905064872406114581937438562470899935826358235065962451955230509670962541154760028063508012386780978849510762416002528947242889221943719342875141471339204150022876984784138493156781604363004271388345284713744431026996494305120621111734345599773517538367196022837559932452558387166266346519143283424054810814269943256351701575552835082568729177870052403847106845627131803463298781263252195877947934397167514091504751183972157845392614377543003184327431355956675757524344765966539350885784215395349701234706710270940618009506633614474798403764718433055156127832056739585821573421815010859662914136077257995532042232809019268423157139917453585793733593575627275180539716972622049457049092922155405487085139661529162097003019529852294543681489889973099289773302242455822788501755821269066509599477947581267920281159777610119337228607406474689776403028017899456823713772081505106683980066021352568138038422556915836887982937307943318003489105204442136826929936859769554065229642422552917742224178766186928524804372860538784898584616779764715784541220779500120458901098652135451857814030304562623945689085033285844041027611337782042577210492235766980492377371786204063182260807945808825420207377641513477633459893108178235137328437017739598454759961591048841030872259968472199342032073520292133559238873172081466752901577433910850444945479762935173730278230082172592187799391022572617790008938170436566981527926918371451829568433350669140966620872633076354075160050099805377464371844578049620748857068263018478875345313074418815074660289569121975946405080828586603913183358892908359344837114940395583969102577022105475072511241782310184858945433340627744628581884944828207987529323464186170845800754042575604559002982890690986837085942897796172130256845984917022710723119238912471629839944270252321018467110562389833515525758083291177860566652803842158042368248402788165540802082459537171173663697150167757523800005875877962522320349397879606973826804163262451983841063108289911192799668979096944863057008787775405215806905799302884106674308148513117221754321859791165765963386602821030630272091937505788941781171004908464267546317231043289331437997064705009428364297912288522573126374123873905058402226447824780428761839388321977353277099559257769021727568485872481968803218238686478489210555532641921506813498596894341898413295294748584180158277846588988485977236769650183191783968843094222144417487151515900730859175422494304359048412475437403365115843116915116369296002750242376686361581719967153337510586387628508553221754514498529090429163562884182630164048389274025976056426633575025321916084013814610400098296967377237704100802497909434798615205341370407133033531424202474925839227511601838863027275597362646251261109287366059900929775019114970198028300918284587450393115266107631866157093497596139277436860418237411714086857118757816458760007104750568481778700406464087289689029548565182678338937030295099700821805985781663771240894592400293069519415264579938145351563646284018846506681642477444521574289766953149518017299334016670923324747458253865645940046371454859543694200584987664889289098659600910601308533094395320919662172510547102466714631335316383870510415878359864534805229697517714104132386621317277627141419365495362408504430575855657653831111467086516403569721789723051287998070221377893214453473723601574049159408407330970119415202669191850382213617076546139283545487858754602303704845353297906695467858531728846603503408718417867841965506583568880601080807136355743005722898231290591169582609052743896771196564315660799335339229221707979907860454965733491854474721091328863295336229338643715515873743091076248132516493858965281600557538347968009162458610330773420779086789147539404716863566452560680353674330653079108413284642310970723601887684638397514579567714321116661522831687419617882992435470420557640913814478101600830111802854245387940636458032525909065145195642316790782730630085597530171206970324530202810183280599148895533312132395084335045032831863336289703275582226776603614092714276126093872943883760844371113715944364747126039329964137975301060900159776928125047443445991972228242629822451995706215263463967197143574389439015298841764000747721941265261179072830795081756313411953499169023187880739802248084239437708723389632185309029284547442384830928048088300515601246740100207466532826436490654639092929955794221896722810001985821788479410204144735040354551123972501058645680248628947802115341365179344499729283229958188655601099388367209598782557951132411821762046493739753776031236684305650795918572384490604704195523298522442674105420317290311830128829951788796465363738782180055107692617561453347666950968405152872534075083235042534523462542554327520925687708260903007456524804000591325494562380609106286142408203102362930596864674380511498881739311422644819660686127171033299922534751439244659118822706479055533094785853323183860494946061020246154071147206882256481163546827436453989552850970375931699475201970055618740982688878383434383035066486610176867881384504994157784712802214573542669232136179286238025276187495423652978666140225949548903504815913733058727944736617122324253141740845723554205127591742704263958508196578009117713254884122509671044390870044016192824498858705197135138560934716674994678401113677153693628703477401422158288101021856198526072781653922261919401819143429670716252714760115932021769263251953212033048527724781032936576691549688914427122183525094896689000333180113664119270243356359132042834434292781004995155343811683835363231260205130063189144261536527372274404921278224295238394043319519768763553527518411370076738756200964845604850727702900502984269537064340397442251733133800771183046653879325901979427568489945164889179571178318330325181564581008301433838337529325118217407629508969910672226981931760488067140040079949194962926945371640540847772365841438158426538690982606022730830473898007539935995760252969384280144618215399565593626976360330082285572811789644706412884311873725621735188919436498668945736760481740156975721356359033354038341171251573722912260796506629603272120277332691551348330582476039789754556181327941167337752823351791125611531554641760207992066711841227796715644546682545670717468615110853951420720194075172411519568616607716311712169250752185277761489588389861430695629842750003312331053298443677540340940283820310414743388014268021168427136708767028147930980538266586301632609075670261278033246202794473105143608406238051840823842805205440048157317442705440953431748354978694569073958594937194989776768024359519693948895713331724381841718250909668759481051628329196329982900767639203249635200366097417886709994976927425392679762813822386169515707207720025344658422530157171307130845611924779295236788154683867360606996008645447664679650855135419769911067035155968976847370126555789297867219635617321405897601271747959001906858804616785057168190123837792667878567689680962265986191947551690166464076835586687271958073582615730040443397064993874547395486468576844998500265651905133388417148558582423930827669135703821213681877200285798390584483938468337947416380918921362271766282698834772793236216450887039608437875535765428190519950211083119107377218492777297262835232623538619891681069847177263077022641234649769447794316407400953397044502808438437140402493240134002088446311097387012461782759401433188682940971412447694637215385866638406337127412617355338986558208047242525797727109064287735835001171836715159641778294206441288900483021526238412543551671073021429056273486220902631535747519936703967127415537382515233354486716154617490469686517014607040452839953687616099960019255507020816617311758707964258669877755183749205678275470870784842132106257109511433188104409682302013499738381584907677562768296568750674934937655575584784297179959769167710956970231769959399706944054667933623713834553800968074229201714850878733863674583568156324353253743499111831327082231909993361683675605964504547994311957048731616501125317654862549776036665605687226491287986156660586874291488083741443981387555209477804852426412113172662879292381969264845777219577549205050582556085415851199188327634075491732133436700034539001043669352571440861565948710919563357714543542110889892685053347282268229550028039152871383143504285005955437649081752803586277059354467668954765584499291226988303090286513103195593311624904385253275609534396115792492129801302482155397458212057866690365466397795206780924428226667175940506857909173250576430112204924333411959232820902150523668346800800876913483318519882469126553373993606657417970282868873647433467833435713464221235113892871336417200937996714050689539030709808973458116411162378047896218895785933212010360969765734516400624415586384165428212918336249193784389017356973179743672817945308757367008427763881454694985167654837854767477977344476353114626851832340992054156519588132266902702768255905541040772814252343943258196860988985631286379691189739772838955716143848540626123111668300809389909535974138340202570563193491447792741351021078384919897531816397277478997549266872563221143366442845828545877626472503730647806821327046474383296150401716817448382567839246039252538445494132025264862316869203084787048283192332174818323847749480307843894500387207553504098099853420900745448167188339337262555855376440039668769628516663140007100270552288385700832644683334146983103649507208876311562083952615782899783382975761195115861331290432729953059977066451124283408599790276637093747842877652353033842530438090161249626170102355861978931634615068623466920764474332787141567628956513572773997428532662464215450025237944440311724059314098816235200713378344798882491145525609567191043472721170642600728464140410918800868742927493790025908044127418137621008077143046919834318762668553404855620870071099123667383525866687760680420265000016435376056255559254078355028275342028146852510914531029278897460649232208378180574552801684485550265613781957340432737723932386016439655446450885999990972532070585842199056742631057220051012532605568691717502660318908506327214299551738902809360635294405118608930354028550207473891241997994201086655175679488279255851142456786333953523417524443813928857846677925722504411138691085408417085029230163173903210144691666075141557418638094530263531674832333129611672952646444544684257103667109543181996384982220341303961151527392513421273794420003822668322300166217604500211652011578715530323414733943484809517011481727504935477026796100528213300770562375392362922306712395088869425100837111855493714551449810129611914318767586606977502635860839470456769430600916032622442409024624809947018266668541926083221764071751653410161579508704434107603370863290921916518058417877679994140700269912681075138872695471803349121939845761501245089643726410783630878307211286800530671217998388704568270553383756380156464425367851842754452745027081722694043975130096907736273433624234466352405842541752807284238261162488672929971332735626065648463470489803054130512674614328900966789871034229264857389972171318190991938990786552871492280490466066413309789977642168063790331257267373147381430862409142820803188024914795136967279739280260146684038309239003889252620580112438140426124080539691382204119545831095951455931930110889570984663042133073362982877030629589441510646344100013668421467990705601840048098849446104349382595404336430388873676468303670410668900926027542690541726410287267894692258580383623333126276836520882716823158962573860699864910542586441455151339856937960908169468820104437328657299221423117437073302406123912759376343761162597350437853086940077326335514123775004966416714528470453827313606056592899650704598718399609998175590702979608284377084168350295332098794554251937608029278621142186772694113722097532945910342909598963591963724240728686245576795949585259240287843989461522641912450031215139138200920457255129391469518667977141272438926700256866045648990710079633805099270978085340505882598002884787544739577598783545701213935290940671393825823775565234592566119544068513802168713301422306444420230160853811324721345544942657394024586779086603180903272545184440468683180629311650527776588881178623076186678375394540510450055773804336377158005024249948366196687132980450686012866021078111339097034014747873325581780574786517782064052673031282156193245610259484606585398866626268976722636979894541055294142420810369514739062792093145351160622665665338951352043442969006665545489646654170303634306489299359329783373173647237553759551882368669113965150921347001259650656973721771065305842196878782739194950973994372870886246552555551611487871597183198413339034329683178917897362050811516366141901551796159842588625143223861852400500402077587604905788643480998227211017508343218597415922961252277101391744644677467250737929302847127398995475704500979185186609731131871950879673581656709087740014710993793134936824299451482721341723191884063025564937389220700859690548991268850764296950826871090914404707974828457457531194460982430080648304475086594777852316379512418914648159953013902842158986290937476198795969781000363814153855588821284443099323849797166420955755956074689190539499299105454541633973469124289456729932667013430092974351873063904173538629290133399830852322203396447185285038146458625050151202755489213469039135456895449404242881841598116528419770377326943369638607460039244969764203794371133193076345389924059220466978363425923122900104208439727972890608981267320553224462679864293450349085608051949829408257086569802583810514444165536036165593892765575432741287319675932957631389718134619142598331519867824225907793816943170398890549058431621613943051252260985161522071268667254157727504176287533617665147942858197069641654504532757397648678872876302130906337229954943063574533745804720279591973167207265906332225453853870986887147883898414639756103632756639265174960856035643412287092908579321130143642007067500573177456121386600884049753638765625833926161586427235054653767733131327183603833290910101561779399775862009632953135039641109985337286451149178025893205429302723791537780739791236291085821827983059140732982047512480770418682016483685796110632434971029009064175053872915582447238916800971995904858967185899789619591689820222757054743668724346972820064101021660255313123658360311096415855011125256313626799792969554231704914795991527688293637877433862212844952975194705619953004626839640699391345484111601007349073219058014411231591889519421240096980971959512560306963447169181128863339156202364942686643715971473337079544655833847018473185447619072921562174854002953133599256873018920609347472997303899694917765691986464373112795943322085803234469937103674963326927575709734173465740690465904825057855279402567290708755535375685578108648008934861120112113416554407688568442740712523885388313534232389292482171552911278590578771629285423723518315910981599453401097312824870341132214402041705279041108881635834774241749234234366775487245975306952178484259683624998158366384733041230978087586445413497828186644291642755187175666591075777830957480521045142305017093879077541272496957880426187385970491416917004252254799867311286609421510723264451832293408309504403933237634758422663014986505613600691406416900658719631750710004327834228697891444627543429075634840259427699528999363438603862805286691182859497921158698423359228204128843383658806447240347076677557561624700436699912747623496519289470042785206483779120715274953293059955253695357301080732142621552320906407288301680954915654317111352328395046781676040707063360405146077942867182977271968502705511780774541170815128312027959287094417145526189557782043948411062684215203851029408003534732207165651733561095052742375432649792261801953997654487620982532174873877578184854180726844141236735656164185731573776107827620312230889270705184523524122058206340638216393550488566778457659228278753423025699908472118671909919354723647920711842107905917849353445008653793264429006840692238562496920824143524878009664790012245299706522468282218393648396147216762113573554785646120159946186079599688409652856568346947056854813780698945845173173846034295438726082192134962196967407301935962098312724353555410463840276586981803574931482060208020913442616968597219505321776085684476993415043543166548359271010640109244444198232587423915737955427359262879318381251339470234140442524836777898899151932230451540873008379258908180321389808913823834665116850041706313345347718698226196836630689183048373845550023171460407262579692777037298797608134572911927401408521360574486195741112732031753218221909839240297076144756569096281796070534191976315232328572468017719941134132200036834943278716401927611379070623735536823741611449169012568080908654962769252071851990759722864609827051010417538243134946553473451933659994655138810610901219448630166750083986967673404994807959375065085514802958603935129085504185380648535567301205405422934027622421315996225325095060287785381299484155175344398351396235404327400718578123813505730611409603118006652493817739883247303511705474885744426284633944632032029878630093121875001611345348790667415913169474557224248349963938072959990079567094001461919739098990551167551508686317875429640561368005866299452226701850792614657330865411329556113923905954096912846391227509365113432335522067288995434878999805568997529422542842974838311206941557285842809314132625897306179063091605469245433884110331832600975668285012906185927018325943701433833587410420898502335811919829825446374117856109318323839334073956206713672335285176931942435787345636586019558191931625810019942909299121114225941435127204015705897592202170761633308967232929443548375511062477705166270744752601280496102918092554003502704362565905319751985820561240796628944756346630581731407287811410538690137863724505851073925956282804276190837643944206696463314074699320148182410874488726714306784326428508005618205601922630881620327476713372250025153197377436134499098262072651779951691443802764266240948305691555514286537074473992247247750087882960812266226071719596298929297540601065353161433357407161481121475898739675618774043834799803251511460392983209317757190862454058442365966256777450159546902150692225643425104837432325487730852889924448648187072617297606749583541731345259628466440788242386233382393345199985768358345780932294120377175542523868799619646195834730969974249849558908455956489064119726422510358852426553439101723394763726316763979719518108283651309896497522204455226653582615950073150178352298264231233663290701704466572333841088289973369292706412647252855416777676398529406326594632159474791958688414196333874817058244323921790975103111563978533706965848032432177848071512518556953393050439344491053453666832937190331435124413092703972213215237983663253043698070258816636579906444312939978429895490806442349553042382324419933994380179582279844843618001401258921791512982589571995151177457662608423436499803867945130183021822243596558684407392112693965747925787266831521511944496099243982553853084944605144536423904382740441062950640002381888047363716547238322476238289837765944675033297773611423984561592862483397933838435803126559668688847204742948222498485141212838704757967685115275448193203054188195596394842195775622847491214148736742418240549231564718605194626898405475176613491440696279906418325808228173448570938051744198728345674553019351991756669247894622482678339131538310391457264435180169740289153326150830808528503285071472933843376081044578396216711387438242034263360652170792587966006597610895013114170255909176539801053554734258529570896961954488354163466928593249679891273928198851816117565394692009643427089449027332797785150093153892657755824193027055930888339820505924064457300495767778896795167400949699754368339290857006174847664338381900226409255886917532239958354407122589011944960548813602668758928069062464289872800542773475826474844162257880978053953624542889400281329489542622446422920595881425896885922681324301289222211378539706425476446158476349768871858988303114676102727107942394649729328903526957964194989068821250564833619798701406401622167899703200624014032285071445398136884686103755052580151136578177112183732801337171728225940889297235987392050019397521203740625212528895545725914120050648735462507676398092669659772678314718868127957596829384304137239530635661331005834966326349504647680146661226985799121132228860365972353898639554675522342020025371686937256223246848755974075050133892157729798646799736463036898483617654013952504522371637666381770439429536705586832214753854910192391050085303714632302999926691232091344365710749996387972740321113861955667882106306610711879217083418927993931727525093023155103815474708721711332369994871538824126205898631697682421159923973113033314394522302582027055982465902203977779318345432224741833098994618314167848874761894704424273276509099965993296560306089149868555227075511215990169601068684029690646647194975955507387245173096033862241728314598558158737848194776224000558594566852466710121288905494933542645248972705746022254293829165764007728748269984448386408175457144637304763521033628582347025601933798182750740031530358908182228794417207522014149338399401328604636783174161688666795400229360282515626382127995448499990543597885833768700190658776255203978590956730865616064080447187809461019913772158585696047226560817237464758765554339411665529416609768732025347510349108416705204537849189028012012707842942308373377750082303104758522890317290292567506121917305493764363266503304227883471924477315591944892709315992276261801885600107099890328147363913065729914014949616796650613591202601993156419873146386307348113881457012263670564281626928997836939030606340623792396898611439430106136832856555473891521973941073079248806839642759457864185722679245782462790589774355374750487699176059447272477088423934402979476187332626834757447810229576056354731855144834279127424292903606370986336039388381014905553171420758766119430375862345103498307388485276533379612551456750362200523659912539743752482222273243774477916526951923121126884287547276241988652024025189361972874202369944350647961703142931059701532585621367305802505021935495882702987878459398268831284372894640346046367780196208985562193602882934153531269837645376473194621785452589562979803367799940568911708671907052387371980591873480085555162434490603503185684860927630030640307116534274524520808376068784822415137297451119459238550566174505003675952110246350218589833897450497118815742047557560435226318659137772768020363471221754786598102293535458531178287489260740480913054483017925652050286465707534648946338884492248217894560033209287093897157226466971962077916547473205889191134776014132132184229992901532381524889647009472998594368615502199597410454823366038168025801489190620699651092953485613020085241309653299413720384270230867931800761661146216249227671409500780861874368459766763354930564837333402554120903111720564422225324597431260185323504192471857254204815843952982253182238099325868651489595523758017068234827011148581384442985397725407838492684379094967103287840470546194176492354488345991755431526306138010125781723582735940649761523120558588010845107291299072396432364473773464975220404255122774424478264625018185027321326011464795770414200171946678042486079626830724156906734276523166797074115186376866699463545176139474008024957722582694762440103192089538832988884771088553871749127675116379234969303527629826803347572551642954626752993690672980360364500300022099573981249536951914468226694695621546574748031046020819346192222373590096732411530200838607881522014383864802675279187131388074825747210374300780002437092135460266188262476492004941569559318895613240507949003326203031242641720279348510633145237966727751567788638468297669853066336487813773674856849777625466669520432503616047051948952499509777894461595395716066359724071521359791021643804922195437355510768703212527146004306444560996022568349470205158027194530760481650612779505974911976476949755544527166425250244080632452519653025053846290204109533079364760703439750364207909261265049338466936077110935367771236872399763948215749807542670581566300596379664847156299173082201911558867441179604352745220830547036125229778106788378327718195389907892074524338052359280215486251756657019990671919997455491798592537017553720976026939772341798715184792158945650016447331209937751032853513366395613067930778680792519786199881633271975562197271360444192590346299667648511326786553274936485360276477643912886646137254438717247070224063358553636879573172287457779742552077502220480749519035736598091418172539487177333925187891943880921374501345514065906932560509203504384859801078519454248400457294481715044250369978438134730437468803067088566907312692287562435483916376442666856458010158881171605923660774281422021019579674363784165077705605717512517152799988742663292932891634479094156182872443577234558370834264727895067689314713462176168090398821574645265083228580414266217403077786478542523300678159701250477918425741436380417695031091896515577727849260713735594506208833574532212738117142011115974676101172657435483742611401249300947318222054953273646393857171084184410349643032496898143883972875209815913901003673112182773840084726107526661675843389359201310583096240200708700282937292131753050659251201114242163302029405821851191382038510882251928037718908816631826574710298364851794180391760393839426869341603880083233411046501000373069340069452837652840849857776397735755786288634266202872846359777920633063716847633376564839586188697000219330658978394165983922518831191593460809542863101886365549825819014153675345023752965265810867991465244657568894199389862507979574915964767091119465069873064207328298715017672709500288611037366994809081052317031452151477812132930267516970259016593004737267302002989861313364581118435686674103879161050786621607886152123352977481888295354800954071229584078268210557615060892218894150624101763949033464544031419846921936369498368431521031548059258922645604797476390436883895516339741153054354455161127902769381989310372268605367598163224402990005878246435221782145189222160085132625625015821321666621967707387842777079874780836070945802929526113914179115102524553822244137019852910129597176509813971360150092213428998972535220041729812959845399624912506591437985825081896888546488366082151737792953424826298265100126720081739448779111074681332193194412434794289518110702532494561698959105258714771342597028184830597665797905246041682573312678241201874851436157279716270099319663876983030152116182526871010147078059901906274109521108623471167959993445067129004948844808849773913730087231912180746562649578758552551653135858923745144169699863450216545193694857151658359217343593721281802469225569950689681738315544965266389030772089858093256222723802014661112053122656804640510363539243469816116865332806041135877575684150745223755447521349210467403127788772994404417321892403797343196648465847335846261433516852177258831056345951590924279051307956225425587319113558004511873714646632437574365185808843082558250009290291977057667329694541795402606312879831709678930682476246028556303997601888984919799551002675183177110619463127843807058224735351341201341041297504407053754631296009825787112146844661477844386118868192680446786961095945197163845019203503040962966262504890364824531672536518327543301236525005933818263815467685109031480517946607987697436682185805752341112772168048880523484840484710142580869045536408578791468696060939348913740054258161626654721481415110242113151520929082277939766213607916827309884595651948195443988208891716422320182388490047993185410678130390551556405377865808099839862558634956295953998848680427927293871119118591980781880531712158460766752857713515221733114037603485147554224725349859120844243301200235662229348837799124359558971096616717538951765396211792254981799443879655374272065672407402711085865303782859223245445278457233575830250189421320049474767866688536459982843046285273422734494346186941831037684151174985411510033139375436634969722798987924807164689658359789482848882672264071849417043255813247444877438090971416904816396930427793581731977639908576869662378319905008194223712043397117153687495882428264446918060226386068784003663580596416992379001157008666090114426748659872787193102554134073228706566634226057433611584962278332290973445016380028525233347576057335260354542540129059862447255291711562307309296852100114352993811808070328257621478049243681343363437456281809235752345476263391697005225309802592239537795129833048714726291110033673466556788925527098935341825925629607486715554576125912447042585754043738837369324678871934963000148427366584076055130899468543963461237723061102413999904122956139666358433634026382609767959309918901986651241424503797889770812225169254511042124883590912407896677660575560524080278308870242055610250367495622596723848282322558806859506731223176553195195840401488459458716038579311622764508708496459135177909818471008151172824792455704024688091394321660787724082117024050494465441949906373648174744573703967760123375654144942961197656434429613179120933636753850876403479128988879955154375250479290578723216901803851568252270727960573071487552973867169847716426852939526657003912757493271923556026787660948546492968802569994048967388391453970145375197166903600236616109491856441440961048200564009157463338873135797262706056207256879891876587196674497368389149395439867981539236271781385458343371941060465110352928456072861862077554825408092655396929403589380897685808943749300186355586355606021903635672404855193959563134775858791246528610069738098308367320629305746934663555371324176730333129895662216251491060052771209946562727428205905045374520055171178392478258371200546948580055720770190652670731525144443373513934201159753325884583537055278853271611024241832792946280809291050638709779911870194670277298351785878260144264576496620169298616845262688662066948067556432797469262065766812018151786335233787750827934211130080296579096388794906012662536223265557171622438567337057459645888849933056137243429322976478136795421196318618620873320224409946498230931293235874028869004439146906312223792576138180589319951722627023080227741023704741007311234238711067871182500860325912502980245176783289024621874782826353696011025256817111771806501270821068273406616758899026431747785011208702884766046489487218772037170386672053341832887521984630504485692029739913678561922693537892910475532240482717723268231135009657135963210867549266503094132551760775313866208402195684033153870221015125437667855398208025398867699219816773358519581975775051954170173873627531856533184548455786807948911835835974597589821999008411348094474581905464587992886807445681832967559922654303097859122395978887384977910352111013003958647716930204965632831810285591062964015278219474093527509656434951322756733625560955866738221489348104816286662748429615477774397928459322995608110257603398626436120748870847489165895996953948122165688023669799655853553384858363986409669530719845815238624415613868042669899245179333483716361285377280652193811179943002145036738371071525456995465762770032499713870213049503868947085653131804953165760138766928251476940544917698892423071998922765100758965680490628532163844902897493825324000388908670225782514547033636010092251408216516979466608874882503133884452373595872821452852648682916512153953657669770662465448628894686082831445984718230463193516840547152520926201076726842237361873078482639533303265256282131103721084835986849153897494838115569573219827943841124909248105865967034413077029432519709189418066792735646746187698528463453177943185419842556703039975288760042580799625395014918570224527802876509738855911473632793446240118102126721103985525201181433000349739497129907314279542537947526223706217716185957000828034519992895775647459986138520585376386440444160713187945037255396593837669291873399892064503612093922403816585882220419490103300549195799032322556402134949830728955275607081146434910954461777260296370255968536214599977501823625182948653066042126748748521724825256564711049783890943637148735326779109420876066600928822761638292274254761435227837013210869978140919853318364073981114544218067560799946348089184512550475326510270177804577855579798331207558530487670747518320221941408301712224709080322524910914762232016535527203847926788167974465199579354888370937692710451406678323188972900923907575256853283494453002893769852725421696240738346651156900029439481450635128563476059387888287517609498669169110286367555245946313931868498094379039504643339990886141463947905429933839082431339146429814135084335836776246316266713586316036188658449684801018002011272994698986135472781830785462050351147133167808037218708323558537922957229750316154182041621124167687121095405847896846475091963195565486003478327195896192827014432926757074536558932519434247638406901636649917742292704387897852997800574814120355983488890622475248014327113418142347155067561956128516266352118027455608435919964625315972283799631540776527944585013253270094895616960273229312901037245677215354376513827864607970258797034963360969278180920813383822121675814714221642716152525376791466308659005224339137568015939788747221275254336078210556071638709070573401012475702929687590765485922162314360328325471092648954414142470768614321914272061281354808597413501854625886070397896072978480638369497786363571168368582829789562577701972190336114316739759584779483422958879669183171213440809460693525566818354723343326106952367626277233453793809402048868340508969297213812679962832866678476234336425842026595310549780028659804288113552233020405305304555062260494966136681543155238305347580238100142063931858074202052302339615880029102641776244090099157623195899346519301672439561920236878283266167886157151364952400980096553437979286997115542812780427106017827664554834336870774011108613208001405019212552040288647679944321762680014824179984360286567041767518998424717515354935871581882075744061566696960993121583103199553016851223430433508222776571467670844691181582581681475284692588466353435467845912578234471745875848680291087740821316375897453581753040219022853886565691365624262774834776951180923099768048221886683008121634939909489503554271646850817933421592468690703701502731385699704454435101130820873627413790634868500884962240393310479060579608041109799710627226752411198161425560727295754253337302646194458931584943522782277418283393162161052256534300978316030289328427287837323668797169500488794742165456366044253765958585302810409856240318264776374435971029496291409768826690999868895365679400015883924362377054257480948760342284945807060306757742806151773483707078991290903392985512889872975483178079446086929435372353794687691975004827313795638975444883250325740169007941954783906045077052385023074215621183636506497748710135077507432288704747499634949800066297443461748234862137405087625850826197828580568637154142857900960239600123672544020191994192002139721752016937369688356519823521464940147525115556881130523137464051418482537596922039826463957094520507130166104709501396568155069781807839817580647371494185679351499906492633361114781993424042898110018414025044401098971176297763473926888021410366931546787000649946654120151096332542953328835122096267818315339799549289881832967898487383291219310068861405816026762032569939457299523910013404906562652995292538822492622519131200490014917089532002446251523413243259792549117693551994136571874519335552820836643555307138045176907287088287377381820143845727812571653280861285272397931361124766252570549948663939191945689588299304165449512732630023121556200219593020716406671880996179991623654453457883261798735811271716820158470412843035003675618463123101651449293849536903242131260188636175367848349940958809098539293872763283310954471405065113479313334843133644488142611402715391687468028790539640170931209048459780642735688957777716542347186510197189094448388685998987054143167488720837442877096859670565605433762822507596082107681529157699212439068438050853434142109906030384685043296672260162265063415488253065031795824641695708270125213008852793815101782578737340606489154299185326526769671980939278937823074288224637551150949770749436987571287713724303255975692649688876016704595660779976236089388015881858798709909719174241875004424717732075260158815699244739892795435653785041929926839521072076155554158678282307132513687969157367717005424478623245513454305954530777054131485345821166840600550888565844586912653072379959390250566255517622495617148932393553725008629270220669439754093121338496736421334036848054884501735509902226619747271183685963227812715453402511328856518425902957690500461075212936741414128035741729929839547318025170481413293883028965103943407739372090667536429574864470856037643748468786709399387780071656340981026222181043048757276159390234011570638970557727904413495371663260494823574687234424409667345204779640224814047476367646279879207478203857758364481156939379696096276180778889715870884446207880273981680496866451605714416091270964748413194181695461656709144933627328496498871842777811730730661362523678614258921930944338881214235282335538099147953801199914564524454657945758534727893155756992177141221351379514155413120632634287116977094169988986218533178306751728740450464832073952775837090100322246962461259102767089865698799593601279877614013075480073755619796759798740514915297932031981974984954678975463004239121405411942960387899717421993644527213655488668082895466813407899936638048050646802491507702589315744369270447646604776325962848069498554605913914299248150032921558418813031545988011565224780051243744899208939395454797341827955106025711896255915666608382236258220501419235028457154806704133325876223054811374471520859246082784192207124717392504898644746033846676963100246650610497847898257981267238408751029445043718816552836827916140557004449646457505306934540872915775099357290114969613936453246598922165393383669014048104764568840075752442358350182340750272079248621392003564820854559329958181502777949188583611691025108067018446395491666220309016392807854336369026068710119667110435257567358254255157849388112491092087707103716264345224617169687402983130874187289489117880271145686702926396809123646614955455782302482466075971653061872557911938392040706377036158039994613805150473463181763023207776092876079622393844591493384070353132561384318431099708790094888607190163739656132313937628029737023281835023127147635759713433128455924297338995780460204728217804624834185625058561642895810432989864315135645352379398026777468891500831264095794286908040706334507893850831731239389122886794974068016800666585419308973173931615023722565845542496479893711905084654146644295921841668520972766040161619133727163342284744642325488567541400928903250037464946660193091393538297175941479467060881785315967214298389357490891894845214913884684413707684818961233369715377927019996065718598093536189803683708110524870096241656518142893620380650523687741698573422240567617838064183862094509626542503698429394902521300493877629800598065549976913989408769511006636409312469331191447476177558994446473373617598773129114088400742252094002380068570942002396436201198004237174701261122488643541097967744838535506070718277929367766643701289576653831626710344413841423454636896393463347400793005621083716713587186453195910598857339633631819635631782315881849920380562018298940646366379027486405141005444492327545724068248284026379724929296258152653624698785948522602719150781553572468497917518406417713999469081766704670075810871365807937696631373688232649211998979298568066471922508237842043232371342723599617564749053345016953354271238781926962873328339460220798426301651330592004152861892772036506688151050327329111102411370809836306940858728030904450852700325166883391473292023169377011340486817395267898365409678781531789426251953938131845120424069633819587447268643438385053097754407677583810434751187813879126948074827377673854635880620319174173639845105866097467203010833304124120661227251290948278772540428590200470634014371210101558946556895232842705221335349050116382341481754728770962830909508250612226190818586249323377608022664526633336741776772998895507173056164573831868693857907119941056521286430706353648260749604528938733958254060340636218458693806275457715274667747120674300234974706661447895640664759661907255454123513427106069261779418945223455739895260800127080376093283215083801240483917711258882734003391986750909928372555387675838645948758783769946382963061408912817354952597623644624383503775077071818975352902161310378481521640198646477294767251129829383145829877488235198841655975908073635513519434002991858101918246194614962096557673037159659990405809729651566994635255033916883739391326056492258346564807473206621909336981754619299497002354152946153430806537853757041930051499499873007197098207870809660561566386153076962869621026088911362880019518654086318317690365916655435795831838105932826846508825481810398700361272241791429403343059425427068126161991021843624626664078965105400733031469599018113986786187666130867120713944771238434179549287602412685548392687320505562575316272497723755586485874658131548216149234397655209249449944377521871624987488730581957170477143484757898407365928971718313749128996221836080726557343844822262818896411101031923131653031191731834424103385444632663580036470468068845960048714242088386423197611093760176715447460820267552156626223743520473236938420921137702686848236476673443735604284714273750603802149764372255623198173112720701020781443087187874938351075893963561366671334090570546133855367655100363045733154777827320974182029053570817521293170688232447575234085120953054120991394492812430599683907343494788375528728981865881117553179198995760612898405363648350022914217857646802467659074784738508646432743894013922361718717744736141994341560031110018902522073608090949090528842512114212313699588526621646108412510642846510193730831355849858609401018182603745033510151515236449675130033424864885357005778320691669185077526065551691607351736072813098637631149034502065556042255633084794065651960319900147010660603853583972161306144431455261817170897626256917092223150992600119659788075639161408630220325033411589664880276400762359090669090760102424317545207001877690743752791936584265497116559791608856165320523528360400788073066324632374353187780416820049430462051750153531779283646342361440285869476276375867327239054875282220217150520155187916656255233569198467870870571990048277911542569817970153750033743877121826313453751463547752215519815044238077608803278968201771907356725726682839797889616321191902464137779855753572819433568696461557874027884030783899715937878823366428743730352965982918448460670703818496142002329660325636363436245737053584625074888589123015912713231706545097522524108141960692247808553552395786917539839209446898778773067519822817654715265748668988860712963825235302236087415364457469685740648100462770550922449130748989462231612487025517333079717148104722997502029152585874131906381730503679696033512718595254098173908584233959784493963386733454153151259481205790469891825291562088205730765373344581592977254414484285855738766332562056584366889606161052535144717253453198900591733173854785798055944421744303198860569397312640856390874082542808553499413647030636616153529469604578762698933626312970767357882550210684153610828410374108845880198148641040280845217041529586483486021385390266615404475394915289342409622831104607940528641570903748898487912107842512812905805349670706927759182461580123479371804636172351299219956129185040565432126895979596601023957862847810507758758429600905273517483986504273166103402314191329927968112153179209818673948545230900892279181924856019319300534551828120281196991846980898210071378780676520941815377452379595567766123692928783903991424136095450535994697009868299075197726952009997477142613753067538369025820685015045580401060478625480700672167600054412348201668218509768451531674170954290202648831632730431600181741848193711504553037150947266071207079474258475102626224456848815375556412831098273468136692143840846767536724607829207529467885929253677789295329305688930986256993360325683324666414433653311860615196837144703493666237325358054269273902106179021382730665358427786342049971938317936641705649640371213744177624826507300736966310957505745091544025252444857223317030078618194372735843071670581173733021444541276495451077176886146769690574034688450040941412327701159307472066720394723310095972018428134481672349963009987254051193042825742928528716177515885016187986784635174968234384403068754058994891641351052126336702372761779112208322361037378276090027324006244946066799855820900954017746802313157677282520406182138837665414284271447842665148064220848022548224399300455852361036387154039469304202920633547112846464363468474272198082600072741191693755643002956712197926966714591620850655911180303502215845607186207157544284782860248342578276327811057192342162389732069230218490657838998220292036903957485500261322365530807180603476901306656608777834660820013235292740658412933977032404844271500637060861555125146407250734782172612392565687869743743357915102877958129681401772291544187702097630110181380903024191039676109342803331947453618948109175816438216725376822701102928169327437887957131319357572801493920043911852525811054341905156823570148599310773254821631925109600570193261785005815558013881446209422679699482447547965759714453025595345940613697005547365328188980048105072846310635658868471238017953933082694489659884312896179608793630249986480857543842696016764681693585769454839504224394968890046820108306282514490670700871810675287570468948099979034860919989463120230448227197618913725444719576217799118620016686550811770976661047072383802600382220523735318777932219075690210017222606793992774328354084157606865692131167001764275693279901370983371884779688954265881394459579639141228268380074924980711733676455322902602029304695259610120466414265794549372805267751575480613481263840506088968890055609594447644511676777037074447796854787949793557851781772150983964056573118411661610461268969850481054039275392786462518544583284512724574173951180300906588447215200033679578571991724557274031296059933231665555411079493741639398898114654060061604301957071900103206476071755507885925227139891177791071244224871975891852110268384754118621498990656499386963902584599561804632310450557854458506236240213395976906441232848789882024940094166177389805909401623054707030288613095642706536931863410144747429240990369647430626112024337417612381307279055961637570571826661390414120357567007063871302303194350136449827309020075856683166231479559614219760462829842197932968500449509978093522320790400860560688589604565160511257463912446902200410396844971432418807630819072811645756015919345847513313177165606412457832045132060445176023925086111601795075483789186541559178420093516046090540949191344743750417557743469647133758341027230335570586482535877874402823226048085038256970735613769433904246748641107449821150381595901056046657631917895355798698540003080549704865963200007883352911542700979779587193233316322483000848227143640555800584081866660486541981441835912531246152638137608711912997675644852745684706399951963026283854874759291561081474907066836927310298950509623758376345431648261168775186188220320228235541195391859917284596317912671702179369733896643272755147755732109562415463741169860664955794421945714267797964772356769074938579888370427044803298206216431377607150669039408329249908016931604588449140769054732570174340452718334779101879090855869332270462237149969113845510013741906986292961002977099979905642951277797657673814905337072351615445698664354923597797670232808054081122623716178569131092018748839001611810773332937882516993476195967191142697741750408069480918722191098225161412966160010739912908741463282190332486929054225765063094599706031831131280147276998704117308671665434922815519442407429783130022374081415983175636933802127525826992696858554003659185275290377533998930613605056297312612302494097817958744402890119171995841925081065723186885730388997045924977784275707633283631954659366082518499696381754561562786957708371021762480106882747530576528493319744875281491916784387836951456163587893806830324436055439050780586568181798100120637487812397827113611741151400219887748657626411492123059443380678731051745945812461197924255860217498120747390583269020780513362341649056232601170794517888165809042464962897970746820922327487057524297861289303857655517749828603613558260889181603714862518387908621160425958511920692588977360081425879143607116640817156009133394718815116735929314111002495700466946766063945017485832828041146713876794627746313507782302032622532270236582631899432556764064946389442409139758378117512912868552592382626608158184239611230881554597235316169893807832687671080891857785949428616728440320311954755904129797508636255794298644938662984064236079104677038052032672651968903285255970627630624568693748072239779610111899469266057664278788222769002758009329226297400492906712492593679489237021851383578226727009821469785670182632632758176320118647064321388161527891582841784590366657520006625534046855663436063500148249183302092126904070556028482590538260243191912868648837551335476795814834626386239126372367639131787052338481292180475148013620907461000125704736845153059406264812693466270985786865199348386358397599461330209933226912377825770231344951252253683636821007103154362368673342875666154744186846685823822346774402845327520673907272715060927579650658671512690849464712329207296961537848347893037795795661975287506194238520520671223856089994900556801624405020577055669064601314080127853821933994237595054821297696171038186996879356873704623389179310354891249837320610999990874137889184310569326584845023106180107293503151211720600054876810077633375676016039266132393491689668226649119927559524007651156844041223811377021774437398672455511162274801879108180489047633583594902204120797538808969974322470698020505589145613916983891267209282346186918633364216394805021988931823593834740467140725667269189431406301535209480861415685415518790971552352572767027359267853508893380747689187342600010793127317707608227264765150813832569966345098757942215023670302733571113429061360008045659062056033085098210414807640190955951492430797785538054711492655444612978362970236242172724863576865323426838610016096835532169832424069264966207999981251463889951722179631370065387030949728955187693831085745964970061008254521076589785561873140053808073491151483201203879794716220455562774725085485202629096346991203247198198288275720419353335311313795137611567739781160653709639887650230777133844324012221642599264383030860794715364425645342542751540527596090768537011301133542789888163230499074671003203949895421399174182806857984945638315553302757194343357109021274073265529556925843712663441937354099980406455598122591163574366617025072436198508454145051818316722012546769060097768950856413701186824323074871136806707960704762125960486731676468260413407429442076745233964361878999022117313539926928353541537912029484018967300211260582887242039372630527704612207390007132216851647233986909841677505416767545076612539746650381591714179145059910743499794037501466592243016526691834557944232869687394566588633245900424136504963197115505737837175161136683701735750983119227430286323367869450580592637841164308807689999701529951236212917574777509837788241082625369554719808017784154374378673126827947158989954520532835091934805266630248013088348176631477665284928212158153162754419451079454605782303959132438268954573565542277744662350157391677037162108833163584851989843236072799369031880395424276327843339051767931863286756167884816217330882601196577523678524640609319350041955058733765351029472899532804816946572675327833421113872626283561925846210288700972389380414487321997649302882163828920273263467910791345065561999337672102372369693210439338137019178841350284965452613335343457701088603676179273288769560894324443173896733967660165741500881107695394496691977931645874425309747051345257106479490095199259394666255836287197223547962617134875191111545492767935931277841530616365424943108358670917727422331928163587779322987101921965025550241022761531539649072728421169933894543718117870928982382149653798591106830418734737889014559113281027456724704465704179768870848033854790098290815039549492729351076312571927749915609962994567789029871633645803432595033279846850086348077228456351294312836337763695425786118485791851411641397305876491995412905641259651667535881563012449533584249605891465189141870063847093253421342494032041276970137316480157052546154498254435755568379238500381633720683250949045045349055211540826487061402117584282568865853620297362306545148581095265009396471383357305551086573916088160640328740444791889049086003777243211579373032401661133080178869493960634604674481093381325203320617155697122041497948578898342342702158965484898097688251370409610005609248125181926183890783000697905244579148847846838387781967518999584139820825682946683540964927776544087271896115973994539790965407933484677946874347411291716821741014034462077556626334583127594643361283899764801941330643547778396980369638573150283838099170692630843923522309399046698463328410032021109425520563633686963273142111123006806694514172656318325693319248909543356057742829343281222007337877772958782461124176113472486201968243204318828008658690055109362351641914647032707755305909051198928229980083588000337095550790373187441254490929745892850740598251134127112257818483231876255572099976951348453353539749363948627611883072614824647841992941142865236097254455635186712450723860040442823574596765762500329803551006219186570710936713578499104671814399065198297471914687665092112208591912486374133643522670494283426257057281263062426889844435070513157984394590314978545061475598866704139949650159012431042119157789923193910485382396613946029106424218771371754187555946301706438813521524620612279718242640456375447212030865936554302407651831155004679548761939994777970143498443625484990807255886277158538244966778607013055917269824192260764320357917107313479004559786854046421582539310443524986755280124293902284413936785583259954226792326366669088826014290322652523312340685002979862676639528958252946164271203645415879969549751473386068325458444992090391332013304424623897760539538129068440504764423480292751890964994235978289418483247087488420528718794032764433881515072710236632544770633663332273634539246112944914659308701101221506746290405771477823525898552569706358041224384269707952480283897991589903013811599319266145302782797642584206999628778867339010136554224177732420579870736900143414116307051249529901704628669496006464470933009449579832791423051501573821100737532796368498467399804587799663615726029114909280165738700928794566197350306140446255092324376601294995788650240026338340610492886261058978711350860576602700400580915348726056963213420715218948872881542526991180948959436375891390284822114079406895633717606660607728173130376067273837499868003104324965889689272870788364740766555106385404551830018430877705657961454463001334309876669614383539268825001284559813965677790372351977217234735955821868834243638247304167647285660660834344807862999102993067680679206260138493202429841860174566290388731897576128930579767269891667068245465266689195055146365661993179307252170404843615705413744171620713882782987200915880080776272706613418348913115662231278614641726973378463340662795828692412166791467561273891878076978215145656944597796171877128014458873417703405514313500971847416126971280236026024378836496106842450243738259177743729495930078886235186292687439990846881253936197032303552999706786848170890463829267960840724954672641409984020157551547333750179391167786613122681459353340415126461216772192547050282756475789513590006939990027290680032590999499115284472438970286118975307468140004861347468711101410213069359124670870305839840758629253879802562380424019104150780367428716931870583426797167528076088914491219785015697858057540932744047403176891301542777849766920351265359309681174234503088549272714891932310477830196956240144557948220557212572971322114315944497871590847515595813817060711058783715633086838591141861652665457288494777890309230610167909110869576202286354949019374539672925202796826657200643765170317085624875418352746625321332099477479369641354571218737124695176644911568164878496704783261520977371183340686732551468644499359203629510508516729351182069794964201563498332599465438650895168022116818492085543510480395321954636316590015228386533447545530361889751807724985880211303904199560398398392414124645625023400699131324053821047828941949175524970654843577271611997626315405219636436246248728203592469734057038207714411106502441844606364519724313628507884550197985163292858862266913377650706666277973180775332267822297039035999676579884455405664748228936860273058320739222060971307602209863718678042812251259481846924397433062506630369654633388346450311015231999838411082109791660012981689995555536654843767861577713518162079552070791475180927132957915336054522209538887821137933380754168389607689039451244264365306254856869700680402945980773178880991309491592560725267739592043919708672048215182628720163906345029776467122772721745954912086579871406373309238702569057815726606196229382410559687984007218219211477127884681956892775173727356260384932630045705169561200538307349232356752312143271926940287125213637209738039012707813682569897800003242359074371305535386674967679927628030826550001097531414807730762504158381324618103049922775515949771431055447547969726094352337254319988862393738355222958124836642341411120513291721190469085918329153948919688851464078427149439240902087105553966794781211699367462464008806779931301535559469829202958217339088537049481274255614243495217499674124588352062223846409139864292514743965328503732366725379504027178040733614801894193565553472860641873080725504124471377946102138197555105472632014596073406795809994962241827032888278947362713831233993335863260028176536224339352745483322499241797178374132981846018708025199939887934538917640844424246190210009783057669664847027643614459575194339669976182493441757635481367743088278502444870288302212071744137809723737805007474123417962464894132170274819420150499687765281762783393386824554169840080047591224767272574238465889478753497332759422830076363460377216199779986983191453278486352829510841643517338989692827704278190184133914823171312211224979523143075330613452934061773671621940021552946790072154317367887532511398566416500373731665210737228156453022823007967069778755144624701079898561039360944981721065883957651792166559814403348409808512387232810938863208592626809619069807781684143598359768605803655015457382030970058718220646342177194242651069801843756856607345560817473565852878674407392071227973463784013857819579730265402290356185825008211726287578837892258996052322803505361760655040868916066328359923379952879948267328369308395091373336262840090283171193842154956599627488736948396150845130192738920109308255318640827550527644269720046482664184603703606149150120488349443720461674932518687699840626336712979977092429467487864431939860761664415937033598651886988090629315786547494878409806421575464752890309768761222240457745224444306467899032768309153619423894580863714356474271110980897753456789071170313301280468188134544488547758321027806566542436995906863239535055414748565369861436388413846148783335075221441600180758648597523115341986395186413978253715793145917897563965831957700369670416933677619243914656532961136034422836521663578463907386914955816014351733806038039153217807323434175394080228211288412904876549114696063761217487831376360602130949258498024916195366875363787703842162185416540166006470010920726855215667047706744437566317881790585048954670543756148493341726304272221722323421666254769654568351692737802433563136764036392728074575916629772240086937887791802147791834105917095944508601995716580621155866338669132787070632041488559306439375511481984843883949068722045835405306563589252660224858964529641686400347661752340281129192884489421534187659549586523420804076508701947860252012238481613920104118005616869427212337686027707332872080185141082161054815005827812530466747568393374386454159994156073248975636240394335506314869524787093832875703021334834313204434927876636401621876612778782549224287783258563678197687740923705922208693206023777803673570373679316955093768063890000305404996403202172774523751646789443405063965276698807025832854777678428491464204212069513005458976823190604927974650382275362164530539020789514684601532760907862146845127500597723130090212491494611140153443181408767680853748813721757950152727151171084486102076122281228949433208431432474800210278517855916188121550563039937556989173440906798139673435531453928052117852040145434207955497835501532667316158794644570394263806592893970621165900425103077464009561463045564343023823326172795172045726990656169628834383993306649434581818075449549523145127414551253787250333436304389297604842156282875763222633486457209643604217729972750954117546509700337140333641139922622813192489976007424167481384397205793344160304941177217412363208104764873375494328494666005730470717826861878934427275695623176011433895857465028381389824774486270695859755972131058353958634450816567259018655507055002002231425741969382470547235794854178931499493517918108696777404793573476257008520446805455155363755858133865794043449316733219796249993032046413446645724489806330184659667803009737072746642855170646580057001755871620490731032661520965698665748975585408651171946755476426944922775852731292267263722129144110633968740359109973035975758943551432751283991156811458996776976145163077948364517823118742109925831473036815782730831422469182967477498220314819604984908207635269201399870157467736125165687426937263604625928363903787387946212276831510769231807071682847355115309713656026601261075804253161355292396019111501549225245223973066498599663232220425407190287258292793613689086140610858539499590540643726574508284062881499827308152662308610536736406596032023610048118717516191848734857457854426271400844472030617175764485706662584629025772679805078005586822720605713367470693729537632755175625693389707437527686074613124316784000525169679649461026636144118543645866727477117141408068675628578370981392444607468766850510663737152794197058481286747350574789924652936136905905628141212448349429210460460451565986141730391281675718616722223192777329929610754557120374745735115980393273387610428285018362883906359634072328010189840441240206360803133956293330469153694282978290466446610593172560804380486768683239954380867863417816169450178260786839925274136609557549171399071183214022469528221811402956836688655108335652248992678851977001337163977673320141823767437155264664156442872460237501297703850339987982670183033595888251016347928845249875162521790871931123067993507513394280197251362730913075366557554954378631430686251785599665829389918102487604311678537780812580421632684383438938073218120798502349065350086659339578449087839771942485804028674926117467385808830166153959361653512247649043026232715277508431540720185835749636259847727830899949409149833649731048260631630473694362501745584780512918172479700866136783546513336887701723123004647412327098472408029530718652522425501440183270486490382447915381655946784020555788685815484426043209590506597706216853263302733110456323960710616980247470787937134097408837985768890272474434515174468197073138969730041753264074700959517160731956839675395907897362696150192009086812549177127984332264033551465416000180763929620942459230322371939101279617574041766314235598160233925599685873854666252987548157337803908891237858922837090343194066849986818570168072346443856931619329361678265944794483222604299062197735440043087642184085522553924273656800071085334204339010933085306699469249773067844006709400505014942068048140558040809391522670470956645867658791425344622264340827185152732495748574099529395875532809369959782545995432741665266168275366447937518971353027709393631242918695399984706181389631302232659792955959009894059615748614263685168716561014614291093995482484599490188481008105264269455695153878268347517613557406786795166056011520952169591710278627323165150042671015695143035294660936723229579547356748846009636552709845629911136634072148431953030307250607856564948243246278828301927765384869735189219535298081470322246146812699045787589271921968402897867937653665149612708396584061834469491278190086104192484984211337467839895793656686946253292691250359658638357921799842055553411877861283922011908663295842135853851594385172109656288845743510081150492776971524059540448389088400496804169603769132256024366377299354824416956466324164375507824402045253711305051433697293445334815502510641165803407457724489212190109176608182013900154006059144402812959023685194111956171823492908451437643443282160452371427806049812275318788502093385368126885327620427388616626527691981287862495286000743182884428712628246985913523298074048998366079874271904456792942467310265397506689800712944111205108207293585746655400252010426843826040308261961129970645037540010231185200642402257918657262782294733543767377574709509793880100277229319172994771083532362097634393591818342638498453901255106451025664926781832997305760301916677054076564341827206786596659872167496970234170106920612982457106468619513279934855111898638948824395151423172592482305516488288155529976009851011052474111633170788233088461591830851665694058336068384711522123787801336173333547388804422901358184688975099310057016698254656932639190149962628629278877981515930811164819778610353124547087025355406427144091808804699168868241993879071312297304992203620748543245790583213020161128532681355810702684561590572178130915527168453419244341840518484672115297714480911607302956992037950253215697375602388417839308246084616099407178497551036519091304741838609696763962837902300222272904859300487317257786411123163741449895248375614633918519678151009960525206835151158101035428987177201306120612383251029018368500292046377328517047154537141271128547006934649265559773814157595379009248127801488455001947306920396120936633055260786595147705092844900551981871101943463873209078981422202180947199731966312323888611973546644593685416044349989520371742373358995310775000947860278654518895213257419302916654421791157600952457119022093427964310680508251659316652157448803324664237203327434909754101702327201873032642806092141312220857950934917388498568975001702622521137546098409538559568273709081084431692668411544284775438399706907355060719374968328783793460028537024723961336780574543217739105572933577729657708899651596991403457492973598237781870887488401824771268180741203603693678770623929910850821754484462159232429717328532579173861044492961475955380168778398650472805112802929000994048741964997955718111459247311642998684070876698763395471371882747065481370646319820361248259490097739057087428291100223287307173515046514688969623880545777633144973762809158132043633435815543836054222301036808457921864876668474704393365326247333332185312339148054282242997946033571099337529591371961629246702174357907923028099407844684963528832363672972305598109519059218598164404597287170093992440281827386428342656907183379151629803225269407911557424787021170083182570422708022329041994016666883559369666013276505461240799272522758646446122532711347562863461588287642284578001826400581784599145899456915300713129761057016237766838370694727546726380823428086118855935038362389200792270182920548551424138667365162080734253938041923785145460279119263127903757285587954809107159632662721353267011996084500304988209405502000796573868399706884077155048373427314816271129577504075238270148250432485932764633941272756667213421897016556484476314464345858642311700448132207880146701687547406177010987225547149522364730219749001867888515389614677709757823896514720947844233820935323940959881882858506068118039819218585811233202952424711269835189032749845365156590992955181929867012124539785783580943945971444571659027017541127797818635414400616443706481523587858445790289605279259375549063594051347492197667327128950712447051958759399653700112678654657903452080590367372993497334375299301053304372248115160794916686521140908133417410640527016668188427582555991883175250091880843136710277776344590661131531166915705639124728396635201845080577676597629072646709103594775598535349530183386025810663131424420323620133642387730646416517095072273562233199113735296461089809837980273129594122276367699696031585702727844820424572942054279437626356774466667083468791087898996162553621921378197841642699007635192094507017361010696596034895689387980801938003766647855704728536145451230854241281572206722993581516078839656980818092145980553661466225811703469298253448934003356598131992128773806697789805070707819261049577174698470330860082916025950733288221123658625497982551109056168346131672091758656406083466982376086766128040894185013793857111555845726366348537386873203965041312455602522383420939448233738655565182926726131274188953745903947139062164584612176708029564793992151672902027476914471489026034861601780994887936967585695739094725884912864968961534013497430627492660206326348383896298239850681313334898949692382398434389442884374504511494660063712451290650478945359870900398128966444916638936336854441523295319854536804535585095694183801900039952915137675282306224117074803522731825816831523258536533597216908537261420703926312708696956213903176675582386842944982411002909019583033431498070222935063012668630742105554947785004098109383980587184601427050464387534715660689201673134310749522404892722493102496549529656624115791977298982592913999459068086728381572182903792629606261646554327632402585699580884510553833792125882084319307145319188917985363238353810465116741434030632203500263962054141455986570320655058236254311696414763113614660563407116117750718448309791409042418025726482402136341811019972981320018669809196269572595698648310063225078211656220586107031938398970495613244698539703722372860282435050785779938110791664599986144816869867965142210459084622736587235930562978953999031835973410064861276310053531133592005737867453544979581216629285247837165430020767535224707651436656367198190384033056592525873687267073071499232058429851692153292632369623504161997617529575273917299140007097229127650667765175312466842228500114458359259381553214460907419853716787818008263144988926474475343318693116631509071570031665734682987034362911616161549842344912346123403882104140225387084876230428346926807742335083925730991699760554729281810137042038421761054125597822802572194606682495481793261658119211364688408046775826242522732741001120347538441021233781608584020616721865439943668569001066035603611169611932080948345612872193811504053455250814569955577490291703759195190913901829113419068470678121836810808378457028014284704740591449789414611821681304571301722148624377402723896885758197588845195803120028103043200247027022799929067535697725757992462464359523696184262050312454756205371345376956339624574889728320663872224529923058431660591086763026724631060840676216710986928629901751628374725447848727421752644074446028318762436337529863185385568210186204301647179640706533472568481738885076693336817770648156308369716567069206147167155164575651356594022247956404697527739958564651432115597103518733298965225037696820007789178042784909337626356163910467482933443615456946335872020878725688727953273134056225413278322771554950465275251870718515233299806967321396370533408224555579628884699821706942170330909281176676879782395935632250891371278883492547220581792166751537342329490768485069773832732311068560155046409067054506532624017317156599567757277496115635806200890436844154673706505274571503412125222161261479679643521126513528801613492457226555422840038098267722950916909450539309438977876042724290257335626963509714183464095953096469201308982432428378957564529372859990107219351758137021811048091374998336479717206824894582242303524478694624900342178327919412295977948630938558080267542625065706081327916359902983997390830953185581245245909263889143823417279851514919121633752063595000107309762488461875396310875489702098379457927408574756298264726365671368978474507846613970508542603654182194567239614632653603474926846515701650558281038035138334323835846465743551661819415558119854105748518616909376667495817691193225109262052701741453507965854757423033798663109341101679530028765445419577262838384956558694569066376992112307521376602178158508709992446443980360762900696851255890426328083023632245448999909119205389237424935491579467644711914330543773497122019341111827983495813452979903029071320688444939808353096050912977802262709031033218414634769559808142851246018873720335896118713141259446379998286530230105094274803819214804001264450496145241355725682817716229612546189661946033982177683313326370137870383397260065007457477703470787328827855062117774869738562975904938217485239950352273562848318345085509337297722794274665441677338238340998419122480060027798391493919339413299669765021064305509240568066252981757126210446291874868308094695402979937571054229247278204207724884903051252954353092706091311627323118108260305721472834531254903467704832671929341961061805163755727351338357506669344958597771093991870014291098346757920008629111795078830011578048719172097973792952173711006186730086369378848294700398954745142300059774777986973003148311492828229811884962768508948296648976536366772871122188882897797724215108493314338736079231617963693202845039065560937585801492050989641308955511568574169778066259135975477424583276594920048017427742307921539620553885367487447200322549335702859043202248896187915900867819342371979108236161846621424595835766857737696452322002462996278048894326749952440229963371870559031344877212868219651455150525071828062286317306949846840744196108154410467526196017774126182141434175661163743876990512113950453318761401606303041196620741855091451663123148689560585071817126419234830913829750347904028711680722259364290433384874695422424815814172233803256646763927869724069314859578872237944114149866978500382422676029342173342851577529338507725296927756389644952685437102221696372624257028157731351054491362060862874481915747858435651699548580594373537733345519011381890204580674095199529036416673036801827167222295631268200603404632111935651396012275158794427945603777557519825092787609674212769503964634831874018801784579833926356316578403873973906129078411774814378293127502029547411494319438573351631786845146525767548157672574284490228806765547889795414687734831423448054787704493133632931374872603822437425105589636170318049427549805106247589967045521734476579498730769494090131837965498405394133518478901638011921175349050572145222079041338081088217288810413872688526731452669064013890602863991237331614925863848932075830254832007687942590549000700177828057438291119910917228385023748069271050452722481725358783247640441379387791751189575186449893522051751259287135118053423820630751932927320499780215376517256725904386787111870729077990306815235652519430475297397682038688739587727992843302624109558923297760267135844721440371609859144107253450999043897056915413250879818354511988444574175997601650126533778018973771825995232792486626202873220531587356817185125500586770833317821679053980892541236088949375444376514458044848811196917885827647243786434512647046358893034442403419014484417496012333878730002201069575107503221647346592305826886636823773224534337163618768251116152821855364170181975723519959004322708368008001689711772892698375964651058701510594468012602991365504650596734788011534682569257551189825960440099936702492632990276628078295796137846604171561630296919991118289980306673678274623816663915843045863425844175465259096342084598755893323969269202006357723004275106643968022470606981093515433472440812601847307450447996791872781320007614389891305625494831778181368112189825443429142244877294667434524512447842284878203045269488759520907270906969934030282693269398732297479638302491520818702485112088104031932030326595710559940110469963356932826350631561905604715467938288180251554628381678074751537304798941371441835566860624216662797365051451754797788427919082703596057049074117939109220602066899446497283612892392832019866203556474299908690915927027329900887476552373318544700116633060898914034415280987255354404873471753898626743439835604832801308524977186642296652674133403776287007758075366232999837143918449929520945113080434004622908143680354662589843330480120602766693229910468377699534538454396889161746944538223659916502271076398796597973686144132743634793296819544621482346102199172750076582888203804057636944627902067688575300530255505872545841322764297645656927737649023026759996879360191579221993097917751950560825657341448237905395962401148483614593292821126356480596399795591636733000171808212351440016696039561898200809271349809362939315368492900402430224804394770415252810459618392358847178315606920999170168931450944031020340140653045701539134764325832504746652750569865273624093459001167668205426670320276333142264729680423269552503336375866205296589592559022580069462306292425380138365827647632191171152759581141999150401881945893299783864083993568063325864073473006111305356336612485181976159616602360579418157562029333601720632554714053079846885047846463927036204825307928896833421254395726941162685461532131199871937853436081119169602984065926692853489581203031778091514507012964755310415917336585817034163972207001575838115651469223493456182566805596571607979014747881643039599870911318049792239982926929299781515080355883082227697858788470230240122121209673860858493931310249409972327824648659611546775861779942074901352578548876903064700263289215746765681590651700529651984519147982068416344303673888447137624656776461847956073466690556812102830960479434859142265711012619777783552268758355942018164137577027190723702538648519614702730133236752141383209847773611023406089269500192195349054809580983524153986009190383216324540921444259367368422652580412339014082936526396056993756168449142524599287713839537979316816159495571813669103909168197127089204793305407635344296066462467843609760839962665363515388150837489201486948340986775425578634853851087830603296110491397001057728022137302208016171322895457491444178336438896979856017622085462215932766191521521547834002250262712293870701920660400987206495691424478845116741208798237646359129492971641343687115708793380246071555381575614483828293706923817888758015805674613995092834255394845812089757761246137961516530277276977292890786091073904319457588323065658928045812722280048100212709287996714759964778475798617163043380405322058926189490146663033905439098845628498383183111343184196913138754823148873899996238863946644504791356487969894366094806597606539980825342072439050811962126827915062599219279603509039069435373312397777380280675972850390724280433188205888768353577480434789588457731278432395469222140127855990893391861514015232798674305084943990598318580609459589272556387356788282659863657321371850014226574815277795523234029810439721212141845906393071865286157775443196447800727902914814171606490373286785433186787483757978319711694469231172102940239785349172529328934662791025532812267044413844339363933207656613547933904718332889449625445533494782022587409261098707469290064863557129446925771395770640573740262276003833039140910730736526262436497702917036646189409794115552243036361318770129125864365622309746644251984818176102507085651784181852995597863660564760339203407907128547561970218923441629223060835780551739961952418824158855226024634901064687161755614061214339042224369926203345256941303494082062941549630326139702096081441823085829010696138092197175764626162533786894933189055582145092140367950713118932009459032376595231912376223331865612578074524985476447813920223036732989153777484810193459642238593283972415211499930433037739047502079818370664419368964220461510438750292233497790467069121447974038213709073323363310458663985259551873748926502996074110127475820586572587213295144840685445589689803374437376720351889762949050062102816333590087129732404217214707882929461813660924089799509822944970296212021984556639477572391472191854912993620972907006160788705448974042807942666279681763793391932233755834801048998992185659302992869196185384953706291464253937125633370387964796967686343263007364319507369424379856873978837044814809993454823504580613370008726711850897107500879745279564719544470060972103167840415192576516122125323257733338438657072420073184146815458573038917801635481010104918259784123025445884130645870829347989069228874810781907392256568048435063386566482018643736834100234164166256987090866223448603777401736914145862829364558734831008083932825164678099482479982065472345620203960472805809069826294719766758848906399139308825194540425508273649818366412433241009933911355391093667623182861201885396783728098745976697990756472884550752825307700511743047607126970458714119696326632525423451785755564730991692057187969479550992647374610347004183084816920936823769206002758236919390345585727886973114047903034584796710754582228481142676541662797806400168664330230148825301729739411867213245890890095588243622400698252842971305266718773234033090811112348447164616330025779931321837133053613056141824191990465837170883197542265958294921652273009266824785260730367670367581244138798659701298827383150931972773679970623230955462788826236096152942091666160190875727020607178072705466211626185993332946922631370220008564995923818520504190733675774567417908813891678936857358481366353674960882915492139228126555609388228379105396007513820854563148777797397244769099214619818741900664379214338981088179058276245527877289358890592385980645886854705458137549797682855866648808191049425685380528284597251828615477690458035164983953865587781034607511402259630324111194260056362308067270208353093686612931841632976398832072253032885112690605356576102919689470900556758629736941164600667891269499518467373140133638207796301731873294023103984118156896497986861801626147987706080382194576376081997199325712120943805813554251541905889513553837313148752091101387729417718840488690560737599104427443668580573973857872904739182250432804340763567378764299251277977887783708670426692826438189740822937263270116880759691977769859380831565899919044529787943538850496320284516664525608507405643633759970686753939518126569459948792704593679379317017944178863906417208576357635233164238453599966280245493569027010910890142353589205652010656479723846713839569571385352925759986447059409737933863097691240605756161881051634045895439487267176224800257679672025093593506213288857099596913708722488462177689505974681834607306932027805519808537394616422817328987580911086920821417057992237150866326854308001383538917931761812306082236529039993206254769041622619923287571973152824815034717118416087552690466773642075748775353341453605251780373257283386605918119286619479415795916811469205172733279650059078476662019758734595778237210635187330277056672249912784240163426610062296681347352709823009117647364230192560609074357786200546294767592041242101209844759243014862531735793229975895012574838477132468753162239670761632558085421781078308203649254912938157841811301128009161794885813317941229446448379629101847415188075889884048831576895529826296546253347722813569593246783250371067571874381619122527901489706015357479779411111596396058083062370399259591947115282053657163033874239721768789972678314389946545148693406891773466264475460108371660253882102375128759142651865556310975432560890501552814729480063384808570089554693363948952187860223224352063464037167370611237565426351313697677893183170123175927128503472988572280556655173437560255408061498323513551523087227257934530314409068636257230169405743985256626688876756836844539594798474701316618373705116505397364422501652150572931511814692868481154000643935573805474524556900003808903260603125514078085809985721739684115329911040379119575852460289457945141980835869723238028608513845378105872978704975956406290711182153006826646872532123708256921308125900301940590937615865952554039647359431066837801143691335223388290233118575742446527742408799295637728371509358806354852541288352399338359654299824143080978255776567738271431445760693743500049258056135550019102651065979570357545220382772866427077063301310527658530882864907324724838165585599010443527301773711635279691969980700704786828330042930058225431634080912771578024219998345370400010324927869660112142767248929849927337818746202679334445913895959695624252067042832835227210621396704429284372023791451905886851723615412330250119427790075503001400152875530527076545339326420293842314489148567491054099143615995837212940273923106365023245348594326960005547180364434608138493628989884597228096954030103754134894589616270908197538358756915930128573538550242025285774371130815667793170188022453965111070118652716202415484973187121017057114751184731379854637592768138124662643361664374357719535840284859312282091874643652475328415478099435024976305497901103664540000588638083048183390630248219093681187752087395838028108159787966685366843373191931368474545104467964323114396803247629138874707976840296496525308873035295924611683979747239062097799489260325580009953925217474454428929180704778182021289932813203809049808326293266639810479427731678242596866560577994596273051967047500871152118825649333450636146866598812464952675603607042521507073935172026378692538634059144203717249837100470624963262197286290169343795509131021573625199747008718144313801134823499671119300895022530321184466344887545698078417786719898650853446295600712809932070420114016534757360784576738373375829926418915321329578777232264469702383199727624523719886861916814113152860178977211340628332328661826005022849558338905881269618977839258972089645027828911305139933881730077278791058312180497622224203524325338438643790076438298658154594788267871716965765297026830435881177665635062168711582736159137069865552288500740987086493966462134855992982618995131052213758223666656414521833996273288824104418759086759604958877717252654618123272511784138807817560947834164538292196419595275629594241543589858165721351063303151507428651624743020186617640754149262471429227945796382976651567787825497056967109906616565508147370672854709992250408195817689748937026347671726184261534962948231555795085629513750766387390895732662514103971357923450812838436653099026294667848761737685066860576797419186478542604865024657290304903935683775616673031300480555533077293871994151685181688297329255102026121549179546150620392823119247003092098986661070960470402436791887908949886698183385245634306482946332412376252285438328248177647217154635229034847165576904557677672499439226773576491805692626815562725383126744932613042946430716870491073990469420592618338925500090300877406849196468446830914407597823991838248304032888197600240029195342696389437173358450670156692883785213683031195545711967104481342723902785688573611291517564194863778877988261979795644343276885744280445364707762744965678890743054887998741064631060890121971272824690956458047954658257187990022584709744517930995947347224215258054309452034213191090267003881139072197409922641080011245712130168430260797983513562407563031228020416367317719445045688959812298878268644235439941564098388877989531185147648840036829521928865173163787022155211231332697743504679475352726040756472971439290425015351295474209142408488113736626875621337508203330411138213746527240027580447657091953647012322013255470699104819155738931246744857402163990969152018353301486288071732207560666972085519988489082264038664529303373439683307078955806557651802844170977555418142401823345605809919139937290537856777082924346422678385886262868047378176019287507121756694334197233993778890140342491757586272372745345092182158081169122261160705173149032055616931773984806043261601335623977833777340751274975003139961886146943529007508433496976253642845910606479273870007843275528972160920196125346568199581687435463539672398482712216304611711426966954231710760942783481218609340302788809045817608375620673062230731155161621462579151131538942344788247773374750836057077335507957203932879089901536939434280620185654558287225945636195817424602023929823352753741543690490908122000669127826847000599041169169487140930285109284251944044832785112505617236645847303741844420779287701596078726789098480217862623171895599018135885341489636856763846053823498136116765456920621684261283058448705862158926775673021618454612752224601005095842965191227087555517627313401463749161129241655462783534678743291601909510165976215851546521899462069008463145957049655398494459005319306595430237188950401888344801362976963307310777422653950503098897197118244195221541471838697389131006459507779376506789010894538274426753873320451145744258842642779087808117952333435761763510506314531223268505006622578868702513511015732131453317762162514265560536851416884829046057923690319988603266184960573803038056781499695778232478914312402336282073363207474247274635219704702423289654959569919020674573258429953960079282795322990174556385739709037694975276706380331278802414814231035260587859999461087243118372343951566640448596785935724453243591108202319412429655172003958184669787916519211420802445418911864821736482650939610049419062917351368450403926857766844163679098986035889686569525734879249659695905189211222628770406972741957755676910433006801389654198179752359517487206098835074218920152825551139570458164038766123835730142647171366019186041601162907556199394087712829442096866484502409021751887736221064157558144842884186971358421097077817070603973158597974087371296444798711272465139944424632882033875054290369408024759481634436563640112721141672804786306686409158872876386879069536358502761544145655279162864473244526354856526855133601532287961814928746604518078546178550917521556738557869258732841999584628059323951744743280663094795058539386333093978265444820182682678459586050600921700694622309817916345602092522452828170354150319617028660208150927698610711045765884573767448620827707555533447212177997748249202203261302039896200660341744932373755242120922337495208381573903421537989660881248666621098403840511546311390652074210740098324611557498071327924688404911675811987570231917978708540427361884295389049718441383225017451414014362693334753626639213536203728680271652424147973133895825998895495322933923597689282977417328377462274917175629298416644606480757809516741140290730050308822401445246306719407767184737719158249562470145506487596984675381208351459117586496164082212910377239959327726957033344085775072963662049443474099572693690235295225383614080593348155311928171573801268246685826749717372675637713589983164151001386139897623886324501061092031939575056452683945395258091736494516318462256659767379170950544114122405782840864047328489832849974117558234586692302390015779331040543806458022787391035348847607403057222505772047597814357792573390276877160224507607703666447359800676046723763866426296370433599145720496153856769783720951934555809491702922242655405180653072162826783118338232257466435181883696742380849603198758457618344063760794229732829267634353973847058766945813196030165622519823687982801807579972776407498041210987665973392801122761131586406315908332877914262648038631020102250121610645767692738750414723624291517651044127491283399923383037852909796377143464378647804124633634831683834496914632770644784796115998686187285240060211772221914461719488135682381427543950214521262718042935450156495498979786040131044063467551597562678753122653839070002725493646398253090850883485886026980840592622987261709176538982130075810540476216987530702213679581280923409955500048534623908936517676440990362560320704641266824003545897568910515652397682597382369325301533838654963995144815658698137204552798425956684612401378822526498487818435639622280653072062557482748871729831953152342243066603648758455336694397665977947859040559043477784043839917261744330212685557350947927827714927523798785803951633308751961065752469331538557637768204896826452388375070643152616083522227287229574416215236936507749766633777704984143708866175503210305563591977190584495054815387351111325937013235993288296075669949929974062804185950353783209269640391885909772240826079370340297441886888902499483690748700019702758463327397092616851428345450463490847785089152937738686199936145868187925256176573760695427507607987312032820784252579107057800157552806526579903979853982390612890701981104020649753980772862749812435695860997767632351185168034820359736009917013917798756726742770754058852440077868777627395341708766416928845947130097396647397077967637371244673279897236979939285757423189987290126670292557356827190651912391792571484796680037071337929158644045259289483027676093614371659481881305467655816998754666414494338605642802369102237454201158307745357218846341598616155893191725241300492952823155531062777354240958709440639833141213268200437015640381431619747525981338690577938682937930619897189449625500734519565527104795010225457149173055446857924511234598566172397989883542601379966904343271827846914218543005390599691809820651156341667480043442726504723551093260215239090317861980756207360360345762905751379134646877362048822424033238014201172304745193995270482369377471650587783199314722002335629612681460158851521513375478796320889310704530909256438693968011495517330879324782901848733900654345622449774433250991054237504605141398494468886430716120052252091480182012338040808517770022867600288216878820027167423811601332575344555050727324876668170468594023083210953389442917590361682539665988697808010098572184869805787809735166026435928141734255691647743710687106110784456850154601493680716174205671791616893061302870766010104783274764302481811616889526062471338545153164799454536840314734460604069252194613844287590443467621247902317610035948515090204886796362664679813482800899896847553786085064662449102895201360676012863340828646910363339952905678618325472661733780825748238912753873055344071587827500254274081209276106237215750487380319190842115680584380221069195589332910340974212173248245058464574505222562116603812090197253448128481614869858588024254746722189368246688034084469167547460341372110529242726506800498766296216645294891685707696898486185707129158833304207892352673824812239072493602112833776572474742194991392113740260270242830033471413520216655713619868394774127037238426013499174417144980442011366567496548555691946744320024373443660161921136700865529903593453945663374458315899958346402344454487462190889584551259780316515524177226917678652716147227195985389057097812576528467820245876847533995499144732936690867289366188509286943122871366566067281811362632711753595664059322273354512867954738788230585266859476311725642049937809889417853871095816452869402435697718052793147451159343544816868691102305641779667198968272625866733463736636544091698435873059454769514070351395319884671650359427813420804773214035456838003058165843172977936644657353294590765444460429588341303158146416305573729658009500627735726257448317000594062745062335674341679158421766002459743047161374846179225458403132860236010098780082893161628964682811973496767281836755740145626396855386946738570814491994150985556817472017792888965564066861771651899824904024592371737300060295069959949328838839689847301638931863940642646269595106222972787741671907169754037708085683629016571431250029832994895407760544671699387593779064713961411632340981656800305726648317124748776189519825342426055922326878260628683424160828671167708626130813910723848413007196252238842471082605673150514513810549833391029396282476898342952173137172305578945394268388932385675416829185901412431096117963369085847279037866877634014240279397731339163325573737748905753585580598833156338874479688794286375451817503519657940260407938025986665927130046285357859941864034568670732280752636914313988367272862811307728193967537485083047813422772957669423346133706008828237400099649567692726755214728159034406742611556051561581501060228696455632746587482091945460234395799944734253001962570258415571061311018844501671594176659812292787887309541436455865185975022216056155221022088737913881337755393183390694324001850409188105103706586412141369391103572051085110040343424093652095830110166741955882899869611231684506836526379180383678397649023059530081610727644668208805893282382967125028750574142928419941505743761939518630730501688925291117824026232196553936620479716603840011918194511417343322431085442610099267214171325142826085398527780519383272581448759031750232308371527272176780414655342010164072418115551657854334762605689467469487596693286436976838131997433310924158969420606892255420935297943212030333632546281861272484152562206737247492420665103476645538005565449165222680236661615209666784112179410962949013814476593553323717292773047729368631892794537131133814448899483231510121604959183066343558788292773071232367805001029553080443859850052843517726818234049747587131457042335726354006165337188774245158686689920344463894766851895762291120595276551168284858969353811011499480037346922243027735037166330514884170411977235272400372202385554966999939266810269078337660796256652412625958476061737920544079255937783418056644925370472859424551139694146825652793957928680091547726485726011309277582059061417803897775144075920011792928267583455611812012877432922977295963347714587431212521055748213101857960616485296741463609265638349759240508295392926825492680909011694431976667638482467376110560148931744724584084127823310002387047044830106825266402961996242026829276102781509139350211251201227263744612607380314836015343687480692212950691647148296628775119339673596425984910106152560655235870980269250804574322872189156634134039222185967467426825574443350300577629563046887158916801952493843739438476994633079202554514002443671231308758671064071760077701538503763872575869502384643688354711930842820710365279614788261890630627936139670960563949157732312228686647970749669995305427442616220482538787648314346634021519380578804308691922498758611240306949937841948587640192117261329282668784376632192731170296261363532081179499026877188983031203305707027680058681228849822844184138475553907830512217040819310024095803441605727579128205567143477604709650810569575953322546007444188386068428098288904701920888306027837043884347581704246445168863347888053025671224869591057901242660571093527138277736228720170618747706869478190864049983250656341399023437501985385321836830764497565599697574192202009188363657019153413857080137581639246182433352340099362381299407978581074874911023483020386369650601505647459751664565672473634405116680267346662012557032687766828043006308217464331909757056562490514368377923201430304986225390821994821156954460746027763066615004601152490518530239182387538971771704216554525762697804360624990101724530378458842108825792280931976783112881486421134428482428478222262816856247763905009500961115655965798973923410953705953319499408207737838558719969226653025971305300527124714039005329325402722141413608946258392786542661831217674086217565031806454719347310507231567097306342492864200475117177523246522358452480672551856630521857558369405026652270576115664228275996728782941622295468148815151757136286261199240967050421392177876299101886305383241406849092385722103522250873154784600077485885796452586924240935978307176570445418209371365844640411800979229553666178774635457834195610642068404416402161736540703708579532244925083212964658741942217389846892411824127156945075497933908259091780727956686402382109374171750270551477549651932171982343964525619772708882151213306696468896293388809869662358246808787137525562026492929860134523901758730910277461448498231310823711292027477338883178201680689916450822490199571314601658757989461042153079256227816551318954853848255745772711096218122549648205669619128129280929273219586325473827182357450712995028248662132218274170515334334577681229650287252055669232802634211513188446939045536091295715599016259108983168820806477209955911128863657954911303944592605683882423027097623884073625695516207038397415923163856428426962517740318277201488723742050050370268094724405199011815268095094899738970201543523429847650837097306327106286102463773198056801370226158025325395481729957434520131537076061385325991789092538593760252373821717487558572894916912384557705213154042121204611965775572826920479167369129891979714930267883361811730387299666726578483651301804309964274261676745270589139560623880704506818094040971404061506422433056548586995267868434901495223416910565547401256030412268750595594202457838949253293367911072443552156447404290756473314979517501784233197336348848245789872213785115709815731120756283775658389264654661342064945060350731761112091876058140416025181553245641128845091249581180538004127389180117049129355380233016031009840072568194419664634079425965888427725824227145066591382173490010407753666171267843304545076601487347149405665262898961293752706489667279908376721924163201035772004770180585982365671354170581166393561094832562665744807122712034334644823365182146729546606970439313707271031549432312043047443410940722725205463579022189891263899215113463970861439979125519554398929701176441213281930659739337466439805807681143177392832806007070161955931118308024157594079864079918388632769013351042963226763405275292313303964345322865714694927704261182325741641446650315633866934979034607787009621327160749037804175904600426728505968548585743143002719530689149183255107663543316451224162471673588436854641600461426185863822883307808845483255030378991647732251148907077283584073685486792549997363544613855795822739453770525036695676135346502886911542828863541412212378166070894663658576332802788971793193792869268049953690347297723894575505036091452609913571559091402062569926584016556332950677406659620134092420706248802073202576737575622416602633669860199520083580610447370688663612397571815866356197233110333975738784221281145089065560564462314895299899739507495444760596390137657333743983471467806165982067316177961258448463898145876425593146178896630301056681699655738063212183910956694514199308416318186247447062603741489398249356369988040456147733499670884840623394803959740153768844387157206802293822303732538540007313148033856562720699987880571576613792291380582623890105268186324100770555576120547513554690923647685234083816836815839405159587225179445846913201542562973982365432371140118845709913423555086397869075093586859455484148185273536882276293961626477596005272727577745583683653751380895265037260396405062077788844924304324095065632630836222149890198211441197813708469698317529099397022845656405052337055313369028579558259586807873706787757372106983892530986552643537148622682091335324309881853044629680909347427873350791028585360188103528360340730794201078882212379259960881341662438910040262181534177267388058983722692725819384289114360002644176696338635217655414478653323958893947730289722153197043387577422343131153001671804526756783462708653076055242220369846483449038341715487032578900572425157330940108300202584513993289922010663757171163185579809912069941322085830560330495487294899329376961206629167878722006574182293184366080248503153786585976265648061558870358652361945386733297433111497027119888128295324114606498890231093139056484180797597610236166576129839152341223701496571693837477080703961408947853298156818095418338613169779623843665835463943016921416523359841229370223975628305876457263204965658492452725131769635499002454339165029563324295443318245023827808582593670128311992503921161084036975211721132071696096744951404983953636319377994165556962422413441388113626943468012149929255935807007762104939503643364168137125646700402667647846617295423553002469393919417432163468905250778888046543762561162309242896261420106478287818357485467784702792489294096854951891410867349158445495800230629852867867907131797899135526944943374206482188239378586892988669653715307316614451963982369865710413741950213035220579156131270695773305895520764464286546841625601281069725895373237715638717154233913003454288448181931361854842706533338950424757807318455465565510784906265810839205753340152502575665039443555749963217523989443188545590417063886968754451056597236590602518156952916374596684481874312525574045085504529308463995836004654030044570652295168695215266584319175295361164756274147971341837970931382717697600112375707365439383661972453204082115229599797904038811810836030559978810079686460292267491936553372326065590024430266932015530338220402173487462333462065514981425626343145404175019116550452028466570120897297063741633547355689886971374911023919909574751202482558171595192309726953331808752525693684757129784636475308307854897529209993578363012804068730346421482512334688446653755037301763738544911219784424841942516825616407107750263990018533076189304274990201904477410132544864230185783436054156168064301295806980570253937056516768483835919706493674672741351069139793776897617631012912350663360918472351661835793369251442870605470846830339404647885605705052321093486545843674426006216443696799344832635409517634568460561028999280486853628398998089634301330334043173056730518421817133033226215138845254653095471254286011971312119819092222749457008538288902483061371892302133712418078829707040597264646559567766115460087310570089413255157122520766399427806693131772421757041012292886131520629262716583841200770158486082461512583392700976735149516446972920672287040601214420090889624426814032116921756375168965503555658615357952776382531099150135889801347482648917767022540656119209533122832878319753564883118447450120823627209451900066881882175887513613964731127399092367838052228029981151586948402190353816987520152263935682028764396895784936969094600590257781344209521894775381439021645761126833223023868795906571845243647008080511415268522425864423745028348102417096812797060302551365778047859874225368060424049495727345131776905268194825123433129777562694911643789835015397533161375211030180119651371930768176952501698696165821659301104763440740034137505139923671669630140784571065935376328675880182168983146214051718343836005464137916675382617114962999396034803767348915877055508494532455733175675774943316317882388775159800419071991266886807843774436819043242774727660549387387248906984630354398077273103789253110373702195606411147511730039820957924643591949528572779842377943111008383268134545045340019872093165412129054265379192778259804158180092530667026907571158870979694089755855083051354932607887947973299665624280924840858757234600926701156904780791251972847128148105426501704532060183357049012329573173189473652999340917005449551545379405878963536290865835785376016548003920059802259815207296665952500054037649505098830625324189643568333059166995510484546685623134986988067189993230772216794449005995030567776247837132108734799984229821325490843940728556744021000685912528708793280333898686638362835800450204550976420462752875197532859620371191839213025140602293196575852609462754380925297236197116939023705221946286694145684664683118856694989120585913943993063379526072614338625061544027561746673862930513115387151152081260846607103423010364005652981227703555923682334149850369953066307794666519631587448153485803243986793436627375058847978530650285705742342453595911081206586496239150554341795849430079531582732251285150456916558303038436929859145704947071881779366110081825195498613588872166304142404598422387613212566885636708838525914956582223761967198085865291809827031360044292427600062731602970151904501551930804325448877722005518700665339153741097851022608805922308320658168266308067544402769647327333243779985172403499374766000825313742047552630859967904173719773655119061971846570624966816681498992079324761893718516332110523272044538296458383249112408952850591187140123129347843519420687112989955263131733319533946783010977021761795953359178616372553774615466525046943394785030601009968469260833084906983500896826394431168572577603731674942848031163214897509523293601458186424810059640507818659429787008614603526868012627076790750474937413782266309050147976635936003089670710161855773459243824986409948799911576653074965257923376439986848407209477125503439137226740610266597916099778031490126184288353591569827750400372681446772942032224132872601235071559342836888872577363348386664685955332180623332396076230664961814073960552705017299423519945184522663461447522947033754533523003169921717984269702053237458729312092940410717740606551462919015995077584395018751887451660929173715050238390673467681842265299662767755063178140647070094956474465562091594607529014014526686488071932400344657066886149607812232235134615984495003502026071864687054989577245991441225355074362024073910632461081761102897936859917019947302347234954062007944932845795635610485346901035721261908469458064024489763117596475562263278366467631417127287004918616279079891871563547500173837080834021162738673539447609882562781118150958840715567305345602026540221016145658064077581219651348527702073197326940473174507684036943751541877861451038855509972750347140438184503374050753819350368801949171289308209721938770704813848651209531781127731200614056871351118007521580164003220047845148317302833122353494784026552850511563879120206413611196987850687619061569594026650402453291694910288801807258906912120746726308089091763713092395207315015031699646995195214064915279908782391839930892812319465350965683891284993325469341253961988207947296847077062991637075844834246531026003118625878851746863578339706920442565140314749173620259109145891311787879042570408559372646413746341374954016519964330878180501959356668996597551351466894111616762465243067663993275736989779482069230613549739851513658833727765275781290721864924867004375717041526863673232722729318898860411976556702790900564340185861451534061591748828371910253992466594582008631356415346910281540146564330440771738091140307328621558184088134682258160701956939373173147671938396063258474082027173869393089738440777926110029005251538790411522218668529777612444893480860402926303256953172611555831276443059619718868236831156472775290457491517990261067486723057644863311312243144875233525470976659348190968456972854125616344965775076809342212411849577520927714363525773527978340882162869367975861531737268558440753304954540114963665818590651688054505804487658013554058339701261528192595054440472693360901004787481098402178549110706039107395712465516015689617250309557501702411175186388358832330420980151823719729797518753517652753993248550490853213346863588517068647625475205934338021563619579907216315133835531386951712696820150344454292755678141546973132686537000841994717872511062306362471442014932747721178909678924248608005547545917535223997723266134323598774524140458066469895218128081081643415480042410511121724137050462212276769054892166772660083918249674220116047613575402188929321560140090812958561212090954038702684684456447242775053599350139345306342918003943532108455156523412123544450229959068846412478868997841255274782305221113325583842563956213293385521767945547188713763434599811947618833276021102783537548938970308594343384584145797207294372613676705882543384303057069269974600565435183621437586922036201456578980262979107699716401249058597661264983148436292404621475514062024783482325033105129193858933393903613835030943787273000405389940230564266266512542991224543770118278455102544074966062217098027297066298839852104714519821389359153225415848523700764602048318022508058929372829283489517320461909408936093621326441708973722819801112330998857642273202272444295212346748751692044617304341807013913216446769115573266852811439721343603849287132567857048918074785051784485602124000837805179807882872645507015677113382443166924003420560959069825687774162357686200718212290984594011383217383679945238338476643613479956945595651898216567193150638265859121072202741111903633154754360485692193293161343467089925699834256914134767845417392144329667748776376723346033834518395172223139332763396833589141387080364663592131304415652155393238348390372376200160467256338372413487265168826886406865756302886388213735908527586148356013366806117894001344154430185641060000817303232934302762555193677115804066564259195101911411927041297524741736302668290097365760348769874435671223808952058920809575592341180534846351656438319605227707529275144854089075324729107573295168956896972393164829725546328674437956267617813205296708435516160713309507885085721864731970358057141570718722653134103904635230249481333577264353998128475502508999269441646267474522855342605232118734711484482224657596181652811105100192224963970442110577737799856769600894858830298056489827581875891262902600670342376103001843611183346149226485820843072884686870336147922544532996904079507698648982990739933541149394968783372734944309577962460636122253922159689502904539912672132629493309578127474265285891487189437270325480016601643333072525273527476544789401353550461933449571775025908350995502724229240784863257427866067915126555802180575667486005145716747224968793919597626029443130431351165144577277598098470049701208797124969984459275954677631393617161959645353139334081256508625748626523126677950126491746109127188741677394973666523636957621187228004528199874841793580101219264851401444829632391180030615856489793041526356698826568867734167922622755657169637010135860247332385666763853754542414057379799024060851535227599099429945383389994561408609723006285901207885131057105951773245641320925329597228037494123389610580051672355197800769309193836231078365959461227638348867945877726648321080745288433720477289492977332339935769757716587266698522703209606628068205632495436370083121371037600324565614124835339267159769194409391991318393877130918506769217015770139346816653250986863967795358157509709605321912477823877750887845240380473507122461997873652015825437440297716821778861483241833956775557978766856309868759466881819655771626896410615962686913369183078135311683905557245613481818144306752828648860747789126015558749440302588648125717278277394205173488563025808502272885609551288652076573432232160405126456892392459484895736161342575055256150887835326934282497328373144369972569267781407148053847459313664503470103909788370457174476145197460169890675237439069952441309444615159423541964667535963555444611978643083314062409457342642296523588453901019252819303705192850630056667527356254527121310228586278337781160523379628557961255521449304098331446956906385529270860340362685779376758522679963726901709610783808415518022454081048686650445838557096877350756500540781278311877275823402117369153608611476834557563968094409110194802634017093001900123983112657733032468652932210515166521178624220524798845857140324614021315200881680885640471900997561495910181229406656194812448815205142839512425618064459883865067871293243301733504256078762425483320211553864254108151330317900463473992876511761671985744762967217133641372846562744101796001439086628170880723789477471570575391668987078924705970605515728488310339469826994020050044996844418884925133831713089947066376596421145036446412138937635451379994434840627971419279922678596990972487191389041719396434849240759638760085705288071947847567396950150932535248573390345854903672946423455786321261215492561889216635536719640816570253566293853907071083670891165344797082854454612572340772732294356832583742109418621755259792193798157830476407921388431419326800280895457591775179783725573219840430402178521401685758715175231792666619833533108580133978449614210888684185228818913645324275885502253035567185554954897626910423139382382124871894701413614989734478982460079959078994164361856684324960482031673977290884100274749160752653597103655681118017879366308546115902108650500251359411533721542369064325287412245988714889317710250155020988553737445657272468501438929636324813445776084807526855515450798260225541238640241413109689705337764737245448610127345474247936203507968134850273090457581155751616096106736843779477300193389932858494716798752711622597990744588895399602924355917525776941131511227822968640422126468759957786237169471768179748146153576878472246786237974725019209177383180639966466310190555327359897661896733312957812242794190435605571461629968363240976556119761721370296449252734676337032852789596582983676109898485081506987094461053134075120621806987827826881926885046051249440256623867589914842035844143660963941837884038818736426712589237895206399418002569315651574724832588741468315088117610718440694738658977325624391129732664253931342324807302750052927898468151879150503149480337448057993599217111193208785692119198184196694595097819037008428031691611951924351482500725533090517697401987241707237293179294343058734086530100784123265319406925118778798642706763776492085912765179914185711980308861578464223184802561020578227350417174203635973737884141462937387972493801679359495871080746926648445016736270632147344551936061934193893885210851893808270056867224577097548993912613442874032141339602630044505540454641151347119200179621260987876857741132351767158315524149904665694903081032847523712750916320405472014699244987783127134995416563560522015524932469693971607717840014177753528089731460573574660000622299333833587546834542019116589803942225074886211937093436050984547742686348915850018883311841347212369179078881118364719534439320624743027809289490079688940269125558181356656442090611248625239322217167570157403796872672532207168803758883558822181568627240399495880142688500032744107664050165539699145346697432369129197247969049369448012177832447662304711131612779809487905892562923667234804560978443223591376094883278585426000538548907072331997921527299890837192739077882965072796835868880721838343172309742053776607189824657863890027750924007805537213601590520878352229574250968580087763290855695557071538131012785659497793792422275991559584858089522543297302027954358004881042549584568603780164978234193286817236549027016550416549474319751033540479964464271987199956784889290169324489875951421117238485949025950544550638295409404444983975456885792590966333508700641525486590495400830714172688985063891239525071379798750824747575049655499885181648743601917595005971529892281362147031567293102690494002166736998828404808666483722612454911554774620334842938701881664671444064884906747369493118535898836422841459884104667474442166747167336359141474669304883396346238242019701598480802540236439425340716043039531712782904334607201802990295599667624167231629154510145385398654107184189958851127817268267882068867049038955297993586017871116597701635061887056258472097057843815411668274504417833014398615609768545330020297224219758000902353320202194928056192604519083978627984944150138754464806869541832599896412399445271900552240162247179265739553518823660830055842018660393786086665387809203015554613422560202940455034184789721646680268586485679607548085422920914753435791147076128859170066031899998950228977179465829262908781230019208045266541296063045676916967030453897815388245606584745195261253929192034459677415916587776222742538671304317964913345070673016384124030128000379280148238191025593175449538533063307562315956769895781463486407392133668819213432399749891874113645706982890998740888266466982976722263392161284730022750345053798439963990209583761798253681643287315600903164278444689546847045498633479950712056964437053671632367203809344212250873410912941822314727696769583115582804403706000514333953464070420209686983883206419741346293385724406628151164315272947934652496920532803749644357592925593674064472081210230227248725179810905222539908924463305105914909568174212018946859846707100421535160579938736416812260348072866851809028254733234810318538152297799141754736000520341566595862282261987551153761230395206128925014303005189577265977290094315141007701035678543701056385205595531619160938886695156818499867282827547698690984636646435731580950499076906184235695043863327707804632228403370173495007885716597389279876090932553364882062951746047129943450872460801801446456700083903005264695329938324585164730382261861756560848400467238410308263950235066077881051444236417592906451702317370049227676752840463646038265625944698894747510965254195597167921121532011055154963836455859356853198952462255749293587957462115626931881874190865923977944140075286023510484222736481999534338230399921770812625292912128176584446509654316272374475238193245786445507856507003959065556170345386253038694908585207403104904448090184359981949680715479308191044067213950519647855655466380691053296345127976955410152484424906198070575620445618186727728982582383908703549617173563993064574459214346300406078664795759583861357638844494876386921651971351219591371282791652963819046214668656468853324253134274738755845068968866769118383805561586577212667780479625485558859467278907103281919175573345594338778749936422449729672240001703451259679830230864352463084135563915554871120952169357937004717999145966883531626526005441565199034573458494404352001893016652368918813353137444217563040331440384372119567456111548290566484606585992488656812231351126724969605899919422281872490990654586920079513443641534109453794132083730647677566221558762724526925222341385977584764589110963973212707721188154904930391943854291037978810381043356540664089226710558169852354591688950871780272142978179401897630976927711852545457283379393919924085895361807566937390435062783249293534609101870683771648091484179718012507502518054655873738436933911568168841177184407951857248011009650039720447869720892578315116220137512158506527330938275854934355198953334708014678767747404935006451543317355511155033150883099794893349265081221247402506987238530234068058594598113777601586055137737316004624618798831942891166922857088370499384159157353339830663168533484850775604758826364780013447898432623199013000608709932533203361764390441549239979610986796282516807114671095671666225359171048419455137901969741368840197402313439055107166350235310233544693572334625487702735427522595086314624023250794296593909124575973325320181253642008971286818129524666861270682747077267243984128103641332698520709111349904149969598404429851790055980537317295204242722449211024809298673617672417276320210040220239580005428154785875226650129211459307299230201724311258557862600423360297022867004431665291031452586377311132559178276440954032732283908750352577914346257223139431886943658801016760435356333827423056339622695519857529455998563851081189228997075926479228229792143650996566602348894434301264502767394662148842089115485475492779259122028692129202454986789800459852609381455823139293907705338935094390360832117028627817432329027844360718492544223736256784094058640243003619054886100827189191541434195241003805292956877329515806500858878623936544034608672744726847934722720085138764454035385461110331474181686861591948626441688756651735511508069162787138172614563985032037778761548875941002264509753419603256504789910809004162000415760702508978561110717390006945839818052309594234126246672219939248374627206886464644805446102333306031248406377525012514990491499789419157718297780636942757403657530350517041657243513272333156787918881747684511659968937201074894391970453360318362316886232446731539225317031026863309903820030472057584464836945139713564146191609275854707930307656302633329481566409192920881269886616968771918244886532170540200197329548624307409218612489328859017802573710461054888785886005667610265494157615110640680133514426935451959351096993325297686211310323085356479437355620681917315571118538966551999536784778395808798747752753489599006146742295735963200719460061433274248115908711757930119208440971349535626095039074043207335655744783067476137804886455859411426560271032493378616632048312895590457133255499261807128851409146153043201631319983767499707155864115678183312999593381389291536411861790111675744827880134516918874217462070656311119366031467232233603391969945015603156787815486087699562588255424153870726738052459276942033849481843132195373712902698246431465092325190590867935841645962292333172340012584704450045371873942859541022288961499893142067446634397162148807924772500893217964636847203145123803277489634522854286995612861252555542245025182886047107292291555312537341616329686323591098995104398960461837652747957330193014526613935650036027767157520419232842891380761957493621032055487782834601958651011822095879045345662604649171324852350025454426519948073346003901134463505244864811480641052970645077833594502070151598917741936709699278814451082995684336006681723883783696282421099697587761472670479992495377069416736404126892600114343253384038973630645659446969601843590663275197321948214811497504553908777452110203036810459996179478423340993268900303528977723410612768424249672239025055067411949738503087665947778071111290258304536229059633961570030851356945518547811099666333218406192980682276594934613937740704101372333521698070509622221098724224987336582089950275909279599009587066936401588150305698257689749320785276970125525431695924602154593610518776808053526225730341503844620874789156664177143886902841926221695508669381540215251952251873966167194360856381465286483955599327408571011967511978620370272973696510794599218224167003592032270062439122425843527884670120502466325423920434267242720167298183597324388409694449560897467532893867905034953608077121397356041893531149968652695861978398238542321546807698101453072616410982842616296513725054568482403457858945643965552312943480717180605324613030494012029406859428082779588808365258325207567677397137864706287041896500537773096779796589086375974770657129951273659862484327814231892721206845474294206045008943226715839123253732109907436532205973136816311093109050131923071497822915355594787393894658052999196609787283274583664208670330372282349168168765659325197600757123489921823592991819369058058031011119700814578346746951345209993547359617426269841863351070090690745830634320577255274112138466378981563330513403955216810848558754521409310731657552748861443458509327956870542186170324077656352330298033130992361283343225435259603770263671503013457645486803777855502639159233931433510174366237204729012240829543329470350528864081188678481447088192695656688784460003206332125264638715829480807002008057203017832943221721521669309945624452193631956243606551494763845520146020502781678393136407041710260239326304540302075188863136857214261239049248616640295457364972090466836092600624925271628946778963052434400313044406224205532795605790607615030602131083159382819758351213144377249994834254071739606434276498463887738384828443015335185711289565531962268303952128838586381531242537567894937826770000034248515194354295386623143547659992758756987267450158204843319134553452893835445258243088470679011806916310572418760159911773719766265177890334285930520140893026026810737217460864562666305443379254088206119034538886319995572552120234575845148923982139158488293671267404938393086870063649639142449128223413397140828967198626933339670470121014356119736233402012019854761150607594501239628232293695920340854192123381152926440082993260009003934110734356030586114744345635713181989539867804599448430317533689314176236987717487822420343081072082448772799501515347180755987186012499832743936531047696183806667335923646723480821422560369197127571910302014606692345892880843655434233391165975238992554150898610623006234736551172061352562778031061622718895437188398880096905196532487601395101969787081091784822418311724883330919158700277318445648463384910174285874880733554976669351093029791054615574308325275318797713870608660250311469835538576795407659397089493340608451887870055358653218475146463182671959903777486720366648878866595091266519992764457720098123083324472420080560321578067605288294553884462303513790358887003337863481989541965650552474388515053267558478955391127710554275436369526253675328745557542729003856557076827575130046042358928462084771679466390619027215486006073122244948377202262042105053806821435131213872808607165197699775294621782415181626372793195710338290630266314661413728834699325725625162053558603381864258394254915693681083354295378664020954163128933283235905122678681869330531873673851062195013753750423724283364933871152327438799353170602589947077821628583577724722703839679733827634742075231394901777776260546975828513400129069825185462717970941296243226276202017840820024773033966033733120911619463148789823306833907103811607056704799656851533556855262942218308196400865757143012323885746183428306804258148565229035514620622393836392197336283656637329230593658834888639872779692127929840141640472768061717522629734986665343674416738917600292433239591625692577686973367932334024064413155385608853567152340084252369304755672142626918866593809863435640477528936844769662560504945228010817937433598864819843266145873767461153211050465796036922310751367974035292177132175628426931134987408513303928989724771958358901064927587726329494041080751702202270642839195707259469109559592405662069055069838200225779281136837813535315778026836607114210784546638821945057142292107928282584318779293628902488057754408304559772710111283286032629990967988643347927824995951122901007824502665133949624343512577886978225348611971795516229155057882877631025626175980490423080035131314010688055009661699107480841251362579129585065174146089041590878157170520511775164291578276897973480888639541343001274097539307633332227539144144290164024171033594960598325488208964373979830260885541365301008445687252836806383040960914055628866378126253262112539429789210460557915635461949934301220169501864346239674509938564847922896276967430526588613518595464454536398722522494907037142786998226242413193454029614353614730435584132119648684114107444096544023357680852304938289433037134131372743910381063184292797192954459906173223716433768215141823953581845081485352694935700994424835550124670476137523470969919797923812110537076870038577359013201771576160269522668982990353138758022452138233121131097296191549496979881797527102857109081717255678488010320455470115171494564002019672859809613800233826178756562675796928649511483370166968303507927823856353717572876939192437939792453320502179129528989728122709670682232309949101023591463105811937946728541118910739170700057536387207398239836034387335155555394367377060565852375790527200481890661109392143978186251482858755558096831992006844715801458434283393092429336913838662262376031512320053663670058448170865369856402932487271388266049550402812658591663391768462272046041769514528940973664326879574871758916506545134235031720786485286767926249489939573143260016098889026105596444115826028196058310676950269601218254355753928640044595316037921030359092805473807826631219724008205150260407879107626294259768929171896240768078346684691545627622487015208539186026886854657625752183299109841375885361997965306284613515432490609002607193908360806850342208014212870404394833983951592281095926314277052222990875661427869019960774731531410911738389698037679642631833946013446864714276172543496942710819352751509839924088571247812359791840590385666108927565659292643837019070835799184401727659328748185650169248742686518138441634928343246697490410125973868658913441679797776717124419636833576825774911702582240152140233093804002360332093492566091424475258252138264210706414183824083250904515917020346917873899942130893294568052385830169909379137850442149007096453265113876576655108222276516571576498389756452959039867825286889535836671875863697881217004322603601200086719063226843042434494510448179350720959434806615347608136200159583025546342430864548938106153306946136570591215065001428560498753331349240710693829924036350248461587394485564713749477053586683898429759196470575758371761639562544841538784659197235188083235697807078891071569514203773211072772727405145509292918979354434615791341322455131160394694838273419486457722554563736114740597303799718048212689055806951167602698233118730001092336835437761921385116612548397468667597686786934886774440176050948452328031204805155170487853892397773945588640242424051047536734100234856301089926025755793683832402053889062956984647707042031742356133604093303575514976963499316880399530477526956201225123009006006551689853020103468710882558242914753471215518559341898945277955076040185005455662282796469792066478323166520905174812826159020236520373903687154190581564586775439581750639727495107927265011458632067940532479633689210518186325313822767232318072610106675968353961424333869764791609598381040625744294201253092480746925201031465527510841069705729217156870325183164718603696509380096484280141743133095347316102222136791062443882713742046542465384290050110710930161233736532312346214566792021597263795599410084700222268997288894795300652387366924569338894602516134002210590067851197035385070299034910301466978294238596445194418396274530535992655269874629862258776437766662137845267890071884661185509660630480018210357898614927018319651007715383064155289664438505477001685813436155987099401571159663192553079110540912123191580074760018948735127550896306518300706665823149100895366257764313568622330736446293594314914304104616318267749436714812316979273637206281630924783194706236677761540792716395726794827623445025991994623313744779696274930162637936092962155793939227593579314695896936174190480579621068329571163377399423278547521599647384217511738187561790856617600909409326249727666713531363091452321735568126684891975725082351778317879298488594609510901051179247184567678482026811392495967318023157012390213432749035316024749644986645516126173050292708893646910070050148689420534472489680947722531170138415098983440533199712305343425170176462422999973003683551507824502882094328424210645548340092185370898874914056807339091936773581329535480460355651131409148942015785792631622119783961909177631237449158793271084029413301838045508502752350675852511010148725309216293580879716977702600913130275812693945998427937683101125537206472894369664971063458293282771287783952246350383511216994048714561892178569385285881361173668434096008285873978258265079555331980732367056344932782246407427670955954609349239116849669113932207732264774783811048796745527438157648915352480949969928294628065692108110390203120895018435513595865789890292915191979964809757805242383592747355255395186070291967117455337136146328287732867379831679276035023785741097642794595448811977484730384834189202153420513288978298357511837915915943017882865609406650085696218060351069979226660221631697203609289937447283032372248654710109885375225105533272555197862029244537645048057024571019210871808606787067840128357760070946164803215930784788068721194937724397414777289126434234158117268840713655153364561093725520865839709359247507836617416640598569962729690074767699813420124243285925265922475003620898878798692238216219861657301789226656162140855593075056697352196009816396511368817324004446411025594593970132977102563387992625735429090138233884039006324252129061238481016585457678571777659290564397193670386415228333623487321550985959323447022834139258174349628590454046397332394519234876803823857997787993727056765639474989451673786087802003174591265844746146692436450859258793399596150755583341506338798120267618635268718438404339135453137622632125962598298040100344787190332963686278747292627718018237862015053184755032389361547156978443697118340512619533560700318251476915247879443261996655005716544519388609160999530064878947597072641301199633239410719240305306796651553105320924656104751407504577710447193057426470179906861863919481322616167280771331046578203539082774862637480835608721813258679785767478353156260003649465139874591280890224888641309839795339009278932286367000055742111155667115369812180140984325274178215655703556975014692654740158842155368298933076856706151768260384601503059388249549492317482470137556044326656398761929476436543341075771552642559920158682131789540454288224660638176779212952887272667033712297645688612086652710031109672083891184074313985904198861521450355517681900873358491786536708509202190439696853361321561126078146173303163497803397296155330619503128931703414538613608809215741908826129853845235454131453745741077774890149075433165615424205208975753469643941119624737756492855219534999054953152797733475213198676396259740291731806136320753545927057050503289243917691836349326497825922064613638444593217913889146906946820464043749368164485427506295711433671511440547645863488207180723617479511030069752585053039546038209202699869466134731777173506468220381174705689794806762440539046714863775996421171868297735934629058618234548297968588438512308694991134214050335659995356862584455800441462098789578883325467539560595258854206883762912492330952635939395681911107769301553715748425755353312612995261363345632204910998970421090216024849423217145378712785157144311572306805114495668858327915031693043808590405842549391389210709041953993795565971995732425084745958180873427448965452374144212797378420798135742772799691285883917685883553344560617936834177473911169957066129700373158834790598554981146105705286966296551378453353896573202994843629243140447874589486523161703023546838278446406810042972406549390201313146068109642869633915871270536694293281665917008097377519086546762926963035451888352422809775922487535787320445789797851185952374033523225569667877405122752452453915471182982435799864954762688360725994687907364688351152296775204269679251263062408175276814828880828950386874216747590244586374848392467850525964330044722643372280344704321816334573694412971467677526776111089885600595165021154073047502954789749690018749571713276715577502562168534221963686639698307177978377979110926420917803618305351061132981960534472010698527000891305585480026799707631353849656477025156983570453559375033814022922202447761830789484232236635443815549818342370362651315292104348688616671066074502986576324189466476120104454219179390802650427841906808308447867225380076922957461841800242345558283779986689213629187590522452221055938575939349435447107271848845283461307637568271250276643380544437678046942158396212992287296425015112399419278547254555818722687530182429399997438011275640953842380008338692983629387538928704259541753809856633911848276058375746154409757461305526298246207332500305675726102871016337276210045225147963128280018538927693814894766028643724618676372874555833045393688838368692863637931253397250935175949558648976702632970690584542808950520887265331278021745209447848261038562613359862282067159789347660855819501717936685695446306982034478210434535342291384141602350396492101704960921780418531550771396515371209161967091043746191610304036076219718261395989665101429191787224559682374976132116865151351783270809492325519319055544499631512734740081227929903297573360029480627059518532018197170793659958394991390273034994132274349983877558292447631447889832171551882975002932908863538946581772625479283808868192881331290638508114953337493773659240448418332428589489686973160053159948114729815955008052976812368322622867865291205477697913799114084731798587181575036364829576717576364880128596800705871989940988067954336799768281385759302564166574811247754678075931761345031497782476829379143979189405324410267548769858079014133896508026863277157439347579016004974170647941218427223685614907474401580332761612062185990468421375339529759985049461409098754332611316419503892145665401135168930468801075315140612894699926670605488305895700696803977843084664172644077328745844387876077709123282923468801398253619696387531173038208699712760132467751105627814682198334378540445449382120669067598392837287390137091355317494621096180621382954426352226049179356637893738823861771812950890997415719023907374739434712030973453416289261810546506115022391681143290579782020868564603803883742479295363764269681378035630208947340394705971220430746498503913600672220559383424819492296152683540451923674097671251900525275124400789750807697291292228575188226547336096506818687834495515438762091136317027893707096331141188507826464315865423108036437506514026206376853417007034607047500872893010799319369358542561040834851176785668109186171698042679239118366808672699829323909504740413029173477081593793187912779764446680073371756104016952881821805809658535999097556918551067087883392693546420192831379430037552044159151528665100438929008927181797242949037722243801384066524235414676874288610430871727766771775551544202029766107291183365048386589912280216900493997621831506225051372932776231121115336927695587081975175599108721995371956874566281885046657047884647050375531159894769551942441974014140983571443252895494783440965918133000442851418963650316599067951713052815250920533595098556067765402339227728061810172130112896088381235086461980710251286458128215134721741779720981587982853937884530892011756985025712516639786500325859190443796350632617488839001931750225816085233617039809869894046094732845002520726147764387569543606075358794229043386295347412637333826922442714648498028527021529099636522863000496449217580390749838798416949083643288013243128485945120318674533082231227233806686632591506269360313546783021170898498360804762827957818390795591780769858746338200729878338171714490732094912337646315654097415741174412003618671383818025545594999619495366235900306099447683134967728738444644450088149933283790299232712708993639558790057469080973780577353488748891727835896763347001297278810554887410742182782918357718544250785492653243578404412236311321196152827931607665466140277792904025872125345708645961759771947512655731222672348642078119624345293369022718310250323394094434818888844864469802037496665590601478163510468314137679617557800174619065789944432749264332507615122324261627107011656045957514680955612048690926118784434992926996086878686149836250076932962531182126965189787920137756026341806318579569200641612736248368125939157486081143484830872782894305450958886332143559735811061416169541829897170473096754246677555733412872194926350268985587072567573183493670364434325198921788594041853697893437070186098697353810940326317330834219474025674047312523804775434300571183449578778777233551077814631690631515348176402643718629382790209744403856357724580075425544285261809628738692951674537640577833590350990914525515189464602866569139582122408620450378733630628347171635557650829839219066423005220099626360904883534307678225637827172337454440444019977077585403332420636991986678033555309346387275817362450936456017355412431592264867190018187068014421234167512170568717253642870707577152761105639150472252294729976579385006379539784164915175578887512618229251202856711189695581958974078714967275093689432617529748210252662116837404824957125545391533300537305806445902530782728645902385630915428511234383405019416079981874095175229919353048626502797302709166102697995349747004905719150389877449363369970169780805584932538160520198440079868621319152593254941268200969392184716424153342582827355180077700365905615033342801735741642735228095475233547576756361461490239636130134731267648250567324183357156123587330877732706406474834007002392954169681596899474803614696964989889509285742931273324942554260827540272114175691643325827305155699387549984205238468849413762458196185864414604777674111171517907814227350303078929546381046635143056789898197900316745361115854091904016312412942813004451642716416145323269039007790872217254052983282486222617277943361544896944037092688989240295095109740512761618769950274883361447753273245634089593675433681338077163663881864586216800764447032854626984475799083643811757979511689770499099736619348262153900792882487759648266763762784378094236003520057013358548747421938966522601783733314190697137404709767768984106470933888197843972362041881018699152169509866515377016550238146535536833455747263357668769872419546373995148895056349100561304114287180279415319269487310301998817607015899859177152082335917689305176113779835711329319875163850817878881863609326396887930498281437473313970195356996910542918752017475537734398687875029771812208723978128614954733207150381989639177167398181548505399285237863703752159167434748434771891160533528522455428787576244987804897244508467699355093373970237239280728975420278995950193442606935956370888845557529097901102021858110217629280476263718018862460488346872767593045361000009503472009831824931204406354228683663527275160468651013388014323986740849277005169641446872237869245186311573794633655878727798623620999487979015923796445155148676822414134031406426965389983914354757658187189035228251671418469221846716032995458023779239347611460286119970283232367716421369162593128145215926953528303133101709656462022060389803799809068810733431079675573893176492648603049537341115355337371768837403686816052680697221589530318870296004443397121484123572542243484629271620206156033028199867096193266692532330788854540288763279410080175133889624827372028782307636646773194775609022793150427215256402135025029534376359371128607757746431612403943633091323031518965008957765049918806446393762321011262319414859341737375607261283546908571526069672808710784554103644822223092237926985015614120275939322265854057629907213019394691404847661037989840514381591707297272923031056441256846001786168390622138632814529593066290869298897851887083876269970736394935474752978193316644142579850833644714109913827738343634699665615062018157156214565094796402951706409871077230123293342514975522838665275548090428316304249138727166936996649737916381649577478829718868811286415416583469856715611912434262707362086638611288680718019078089087561062872225367590219361691446700251450196438963098067936784670206512711887335264812256177730143233313077492843357749212965623734552953857845843215560793838402039984973096211998813032840605883609980873140408932870226943686481911682802099701986937446326331150245605297101037802624768537496604328622017736675780058850909830360156424817107812486858098861606148019413836853855551538493945169184734444888138843177395856830192533313361346473702388328891239422043353783032509317509473403535089813956884588779315357517519964098602535796314900537829177763254536404221123552127942045131403280199740030867976776935266973902920780050124370490778858670073768138352899374844254853144659510160460638182696248240805531660447889189953955948448856765547985268542483744931114137278575425091411080388475982652783735127420501867646758472786581185497911839110135912163305906027424977818818263536293530957233448105351837345073021695860914282570379655117585585530506292831720746537682181000277499808607692950337892953484128336938645290015041522583210968358076330202880043291159707161394557422192341699402496554848261238566146201321432329955451208198455291538787604860244404594730448954370502249860676881356926651916519965635058895619158453646914311162633182716489362682576739941458799608844229442178849178416801879590755972590878430010791219977030745339976529959900677825674479392431170221658783731845257077618761698524060800631582882717637710032318455334437382568514833891228042776892999092956473426399226154928110431561329465449590439984959430495528920846143077814187473857327308566862036011312460106885745839950402512053552820654696099125136916443667293932080796709331635472016893292917511792533500456968485153853041664172424280444822684924729431883158028118593183791612613786160599436968376097220908141528321874964953602777741592629030653753098674859003059771863850416365360580790963279635297777155746357806575693518862031739163322294082623809453754842402228811491394457798023394418074203359603204038006046025159626268778859015993995229836334026756511698495917622221430115456343395177070323575985975410038350684851242740924999305771789390829839393340862312350158098872796715113123668767307583075138013265014291822743016279618236364064831838965630152085819715993020026148824857359292485118739967219908005993649213049887560995796787767543400804565683407086412527873236238323217113367512731501939483592321754458644958276416590834571482158551197898070646651123841768462972236914553952952782290453628163082192137901109796096429887327535543390424109734646791551227459020269078981248066859124399808843315028958767726035290486895754450542314936132290145041455499600466422692859601750669862836354062423934748020913460021089941584950884003993909897985554960133826631804724222690332358797308940816093988375627022791653717546529395575242669286112640714294130373176514367829395768981116480381668621006981741077247279880801804577669082306722952595129792028683422116631415116534987098265973576949159580136674365559321636884909830328152480743612901122976709151422857102098759507700740342798026794014327455231242547769047747858250561784058381243381322022357240337495686844794809121522512643305152798976327164147437994315262284841390280504972215790214701233258275069294962561158009593036369920061196571208317371986674398998815462111076440875924345613920628098249720420377218511732726117100662923411753024495613275883874998167091354886369791024197329773356586370352309328744756982534533699562033624763256287978860618225635823196150345823931690190175896529349373366246629119198675945173185519814947246791285562842030512453175330920728609258548655966604634438100003746453184161099736529331530806371734476116552633035025946525844277664380018566381954625742379818030332955368407984032089189008426486202346107704947604296478109531933408920748260978998380489598855246795425546262640243437961395677277296440119711564077350132702138312723044095617477542104390344481783096977869464478286833457188328959293666590254331872324793416474953206561023534072450218857456143089214690399205904748606627256859695798336476254732825485663492051924293454797094867711636249707069893621435392339717796021250126079203281143094033842329920183212622107786556013762944244354201791513921423301230364652077670642362529312659372383429592804696855177515575867165922760365645578422424312199563362037815866431866095873263902519923059840406995011517006006383458464424488972593565276942798224551721019764577695860868319769692030349011568160603317043530401318119949077962917626133673299700048377275985521002219869844545970088128166038801768835236184962819226915152577998229723340571037487073601123093685921479768578891854338794571080032488110634040142543244745584950800496782049515194762983871612167945401959656972652641999914896780703469396866776832030567516480183294482468028104734053700676912030210108704505670749035427608947550405007287412618228877488865720463335033608423803823178861410473546250165955395714479452673902758269123855671245487185421390523660521661610923649759051907240028655809037227916441764584396578231643179209124938126182701580863132746656310783612889967035251300338786202181973433634176750385508968441410484926781362107675313317331173716138537725915095836778850450716741617491187194550120148421368361732815875695708822503542358704680025388794517001632777657458934492079451680901957084464792399939004784959526688505839426017050332329108707902492104357461295154391832077920558580649526804143431820979161723271633262120646593456136958496048804872273849994061148020446031399481778179404344109336697476227834934056799356465311283740985564384040833681860761915416758589199212869714300728347831229897804327269606022048272246857783764138730503074783475916552994566763314509468915879043582876971617371296080453315676426668207852678561199026761593883268802584355717143788766751633686212371956395094133572007034770935194741994669403558292419695927779059183340144490325087006373616102330934428143680000082446946399762084768155695778281648119522435792637459346151394861414949816800937178036055150964023067840982766720435334097290655602809029983738359644743392832833320758643631722346323617786142976009273011148638535089706032915512873080735600621281460849411049504458552945908827666749733706310730077097186019957233706785517488500389168496052544149894372299085381027123131456449513938261077079015813102974087975427145133759088953320138041885364566352361332293831519487016115351005462147221790558145939892959039316823034113769470694420553302394880114979647944654365589585000626162073384747511119781962020997568887912047251598672582494250993330410938018175239307042146808297501652386448174835044209848426372346180067339462522973498633889681570351378231182841598890427716703794931019925460391243953678646438226347578491421263496208345488621890698759397105913519202340078095891169739374783188343984277300390341832611977120027921281063055858720559405378424432252153540310198193740744119799651209640878781082228440850896180548812420605248810194577248909087027288119743599813616884034364584993248526347220173896192224036748104341396100876505856697850429409809481061449656413222806004273439627280778517469349841219892670981730843599437804725301613908530657856980188539947605279621583441608146432635056419222167188633002600816669999487747244224839718577639683979297537059868761465480644020104780324749366870694246417156055575860104820793202159969821790382335332918054376135485230672042523335409146018421596961435480488706537687703201312128102201030849228225289447433601529378576090055982555554004722506640357342178056978791961977722680154005159222064067420076352781402303544521501916460453060741992065643282258222092422095398692571260139062530441711912096315798327206314660423894832936682713437100803349124003029173872420398274746017374378436694569708175952940207952195704489646046851354018328769455382546118669187267534468541081354900328203892679925513729354031529579894355656859913601875341771719171953407618418710262870203095637946704072892217105181208061795014391634744166339585135956152573256145578927421348000930566769757091097230892231411537606099004035535971439597910692698777382743627486951492911847681901483681825238682718881951581735093914128081194700036141194457533119932915258604546906986024740246171925630271719055164341748525573158044281483256270715598866466331723419132088506009553444059342400103181928354939088792034384500391337739697625141999733004107426024580846380148014737153614574631204596168203641227878068767069216980891991716785967830935681401888761254910339465629838300607504331757638639343170426750047859769005137393603593667899124999761920891790571950261198029796330799695566198710779348383329633081974487852190121641191915301088685911063345586769830598645301954403802556734390038893757929946314180599792832493257764027530532955935650841391732032866981157999788263617467851062215173416986636338681895653141522374583269454476721869568883950907491867571563210555581784968774545613313847768824178985154776780667049553123426877706111978044411591402645331251122764235767446789276785819792817496552812236977580532023028963750025617881359028385737559551915806382132236748287530145436816612726581097416237666254247525128904031821009786726200633475288050041219446054707257799041115824199084402719933879435759206175777079966364113826463683510066184046535646888197402146564054619565910362598845310233382882518391233912474114912848623159733960181072801636261504096424111445541138064309990105982515904459158175914736766608904077265863358131755194365427152817099205209242225306486283284109121019519781500304976898667291889814577310433270189755691495234380611020980063631764431054153347156659629095933236950364558648114811703739634159425561357691597519133249437462398420442943082707923302639401277053190574878417355287390323448617052936736937962350442118945206465623566510237972322333496875778610704718395337141905467272182805982313655196220057347868155553831263529066423053476062547133728033245777842770719029460770212341131415653694809225583311557367722466151873271575656749743144849981128167813920359482986396798311159610075149568197177179573086828205340026991007964102481890355760112449201050751281160427158372862960707670045006386102775880709546641163335213625889759267937754254557213535365237138599058750275898093648939266114950899555643573438408633956231968571584765052901357226021146734877134376793722814575763186014880662549447151042641954032965856275449577469997325037612894156267652915383034044375584893645754174052358794269053102242562858643086612841764847007939293339070607675305502775631375117342320720569074457551673416845928951710315216155872647724069683061870524745736367526630805790719846806464557035209276412654787026949712780464440148345608804684978320908560476048861130186107473905417969479228781437704921726147488389143171481657479782588593705857966668670202300824051080763703578840829812742352836490568093783393351899111814934896799081194142190166098261876387133357702689615772249576771095556808234008046461980608214410795442919902937991409031763102812815517340977696175472343548661169650357736493718036318780358871795847306656613793546939583289565068058777684227350797168770978664916811783613910383680950017570242837917890958147793464417748398890907828562835684972055267535358980498440662527050252975623160858470794804571157837966246268178781773038667785932340287959219627321378346590230392210561473252063117378845989206567921049810363611619002556265444820988607570014966571057578592732887874596786857329990120567648109182503275271203209693786327498847995541669746258376344037618554884844555798152918046337712728443830283711205680775411086091964157667391696664542385258492663957340740356131948897938306062957556339183878481562240388788474045843654885792328714828553161436891261300177072009157020068098287742081580425284979695454584790787850878930569158829120973190153605356378332872639402311586573997548131471249466246089784494739108493601179587772885304171015888407404028191689899418386691196224771556291394687846328271257201650936946497354732743943794963335178376074538839091358428366095146488684348619809905974444440155827445228342841329794445860975441246272836913570154196642770274769262101721660142874864322262479566298093645045088694704174319204149419013337114107058543462563692048857860535989361497636997758491174058799111083020279729044696156974235426634865415842168461484990147275697602882238877900146740298993150624396773709558471846804612300822147977731224349614218527293327939134999727879764536580605674364537799510118043841138215103467736677343474938895220541486087718769733331729678918121321464736965613994708242751684126706969295443861250196497811941679446980300737248267610424799945690827759249309047769652142659674887140394239579744721078533984847729332248058794104433982643607544888068963238679688587529200809698891252685377250355124201892709364665819227642611633691423971115046645836830229653788774736858470730666763895994815804871284004784624974714878506134177667375883744858578363128414392923509759560673024135445704210427227554480667624252981775367335948560544652941003370259362517847328799309179373659798215116457294716453339507274095410885114570944007196591944823435931739706771843330286528904694686704296094785192094253272412116243799243500010838242974923175678842687470358183365264504007120858358471568288547711876755293650662858344163345201980743035979403974428656931266828656108982814313867293295230490563026736697683138830008897045969197887347258624679547901939285495687089173897131611525174886317730171129132780346373633278531503542686886664738044225487765077390192380522448297932794639343914997981254653816013808986665462168447945646115338065765854595019083189451971497732198912076729538867820703556818980943144084935239453480964628127319222555248404924826716543074909651828146154572557010367862138933980471730903359360799007570173897051528229458031153304647871229284918084435872714892404175345118587549563034341346593917830523866506911388526480220441166269632576215120107241885137738078327349130955971078020321610409775602698048869191123623938986866239951265100895955219155196067268109429376677782363988629095174792980466110484007933317253817763279224351638122435536198918654902537709965888004763083508754510182155074340336128826632758313288024090574732540657519621134364992561850864259393667075644638713350988921737010706378779051257035813754765633111299866332123256132000216572858270527586958027945770958261693550773311884324620858338297118424886740893013490655958827052667298175664832698869732737995981758169021891691588843687036628699115813081930887172972232800616119122096408727761440541692378083652032119481442934622185945966142221322748821257093676397706738840274656879974320779185688257582605529972934201840777294581207355460247676387236074842603131847944422783960498549145362523436265477678294410305112053165524390396072911667979011092856857324597760494199008472939384413853643878338089502683591613731931301437262668473886000457316240993722955361619415489566831978598592617184936022562638255025034580568655287245996747782915761099691808882010169149044697550521040202330056321968445390003291983787510888526454159668607943726120158053141190052853069375443073616919951392798702027546909477275210931910672574424362968442997534128029902415193991415318281503821513030573989247902961528021108295498028999341760353243550996847607917279308277826790432491469290772854541744284305856965973613126953117363727416045609675018354194327813908484503375548033900081719450020660056636392030863144594665667624777763063939486486463258147993017026983178815553358756195406901161073698253237561073713256989145084459400592908129639479225900653036998214435553570279650936652823686975476536631788471521140938985944425986017477837192576973078572170772259605012951342361906986774167365485744405996760479928430657707677178678320254141886020038711053033974055615346561294267155698855249645719406356128104734029841158104274654290604110716466951229238858851948712752257608298604740582356481696002071296233674005659929263334645581275868623954795243544810199432738725189778972535984426170280164796965480113634085831043499449930359316460978648589160159663821739416769499472424047320563931665833813136124951098651904039168156130677921549827922256130217625215421950060695051287755492277957844386146275453831942759855413534311089549197979096539715686762476097524048208019181983384378261238220092342175037343072118398601157899206085088846814999249035231121230651905821017872147780776506826820540710588228486329086905771118750348398994943377520096411091074878053183044388043618748934346422361646497347412423927196915161283535042762961050052572786992650306339226985347057700972849402714345468957207731170402882273675803955444729953808284237426685649214739161703512169664521496632559145034740561657927287409362025853751003490312410877015276912001692875400304738499810498252499877665255932340894581722988612492881321440602633581613701735363143249319256583864615945180963740811218663152669511002568377206212800748790930116640875571158205617364681716316288045275666874767911647836475764172544080513739923866475007546876569389749889254235193562008870914561440863365647299399378185629405211993420431792094701705040184634128427767176044591755091068328029528597207282195142483699889508500470106115134423563240521182080285310526817888285171863914713496606089556501450983109540295443486887479653325837911406876809830124971931782304333154856194598131576273977409456009949344215735980047355665189640021746522071491469449906876828009871517734264142048198303321924311125135180351008029886220233380692630898737609669729879721993726696875199079130584230449799023597331185739013911879912204183087912185149276628415691226387669680509776848980522293045994247393729138883298861797290413940961080606730503482317236913192963027360865507281140214986903945536165975122972916278537915418133653648853883864008749035719627835434848221618869806665045152253318198707577086474936890354630359510727445439083404976578182545266392079678143178427827562348047731634963478548733373465483340194203023150408313741438099865377679124616361908570544195242542484837032824805175868325204741535723871551338056723766317293624177867744653409897208546315461264761951059685666063843685128372508735736141935666830951823956464930312425760553118034198530704321465773732443815092988490854863895949299422214185777152283885447177493153062399881971611157854474991771190486696201408627886069452281930685907936478713181097867978127859210325544828525910203637054330892739670267382685538820057833029344624756540384267733313292958727833489526277296670581096794815054567498262737095943545892523691076119170030326369859866215182682749225360574682705504690477713045080584770652928856651147546994373967942532210203929612158586230900526996238619484628998445724259673560518619100963530195774182633872188613959347914781352840925027657571269378171606054726090854897448624496422404360362597905493316323055388166727012407995377190266814607170497861645533270896829464920832863164829184511013179481468058135981776132883056435799696348642425283443663207650511118757366300658889819881726799274054374034628921623111578348167631862071428750876593196912101728108176433490959618744096650956162802260405608974729045812866262340038794815600256725096915924301010784953768451762494463042341333353724138477892969701489879107714871096013748779507235585215982878659745184174618118085442896496879729674158338149400711497075071486407936978978209296813752592084384706397895448851085357838874570995037276844457231677692971279547099929992264394905418133454258521727395819689845259150003082724958603893166052111776258219207523412489832765387771062173497551151899471793428611218113890394510530271424562929911935067166919277552138151473454175390355934513365680168407686527804482237076974451174633529566565810877656386245352937557836284706710171210688021844745617836874491656554693013455050541829638194221482298406865899598610266529690397693528118243252293966263421163370573490406507520803555840430580053226295653766508037727873387650222054124469776114474743408113141350602207945455098750262457444840967915403667428542394639670422745063047261474376074156536295827674285949324249104118129981152896007144615811517210377229755614409698449454485402332325375625891522752626920590690243116449913712475963819746134361437574994558221479587137046894100953545599317637525325702354878275034236205424823515938805971520746347125653892267318002542089942181133766471438804542646104093231846733392865571538254353960847340240437233753644612762511665109828554331194092530783841653982486695421898917962602163801299820752938317064375797401491235379721333962128807301279481712144577465649586632277263711207872963972136896714434598943430938780819922480976048070219431363062633771015277649431297083062166048069590904703760879346615613856857901691087739123220291834503047606193262398430862372403565892526067321938475525452449610343014933873486282001072777897145947236879824418461550092162400390304174466575379270720938702341296463932673555245572877228304632625089749996480116755339637292495446595024611779858401751978487873920464255529708375804748050653884745622061496396500994947268864163173357682282517570696503315243333015080674302956430433366669337362649634793525455459097423408279020523455566899562452961278258049353055382273127130113140908925557368679122603849651216600680386880321324787597752701476009165347051792609164498181061969018898620467814432450966275304877586325887705671791806409344925522107142304583230936589975523354267945074130583630592282585042841543135884999405026311873455705270560242739358690592104047289526381512192236938446645012048565654915104515657290491766915596929151876842376973050293109870035368578575044873109315924048893850719704386684294539204048324041752238550241528823734294349888144855593229874646957219412107162361058543378695424161540680120655796065247207358593620001933887362570130560413817011933878369043857740214391985691471406951469727771325785516151391742356928796428887523759393926361087116909850674848776723294942830023769531214135402218418416647578978825387581504773922521388069207169056624770964578585256156137021118640288019506678972987321385165171193336871947640184470100896827522080522620191543045154416166568152335127879257922703181289200082894061173994963225382998609391105173649459162969761221202138898886093383938245632890950073283023519868047777946178722706504424873180371514814650391857919994166400566040443642373298867405274801076558421951712473228845931817839557469882765067253145524864966116039395675327206157667875405033871789956913843709375937748660644715497999014730409182859061428701012807767408454225733543833403997977530903750003592264861073648855387177982744745091652046063584611163123357758583428135582350568402317164208679732045444719172330267933555988829991091709835996315437943621717542565009896536079647683296992783142480015339028968145394558378831578696458717409132842979637255274205362723545062143377483722474942962990411789847150115095555594836455954374054703322632844499908080097040518137779463794227798156137778106723840174251526326724024233997470927209181672369617400989373820887101986437358853370423762388008355056369812457786778487532261309343179636419680335985426401706731584630782177960740087659469846432050922390221735713719219488499942793963258967040750540365870560393816262286376314707666031225295195271211098264636330445968400408562240890861625007402447683784089095329466083935274314185797168867509261425673928082849907963617644255890183538210797948291737793263352017736282302757727183192499525369569269937090149264960215086833648912741771130438950489028168052047339590418916938022954120203436569857461046067481955853080439628893719719891656205782745878011914094535197873107638307332591343360551237682035429040034626411292387245273499976862727812534216022556020827239703830413467140043819194633644326292587028788496321018298583308094936202777439481418003843989517542959304826230249227054797144619428499730911640958427734356741335413558114885829149552231197473299672462398065817931527684791639990620420733309305338359274740837194757863503299738781055917737151924163543642668985834494276481015784343105277369569723526609568709932798114077950427618575211308815072822617090605902775865501297455681851620925017540914715518841067684645353274570574578034980721915610980814719283484881206744131142226177912442605391366996351513606244127038716422427247779576214111542279682357352332972343730218308609563336962633521031716386993672604587304600102846135157624912482544749511407887117590710180089800423078593106777352351038617148823182755132140535947132614787753575648989351159593465238709780304296316988722844731088166623312024341694817543371621091901380396622896392987520830448378089509362013375169950035830040701639576695589438137514309602248829563010973617380194157198007552655916651635085129279827950586156339272646780354084440607165616198054417328242850473332185652973645192098676881376176111266162690218017212478381045625865660934668771461490917563747025894131649904906620302465294121632529425237040075182349772672760452982643762451716145331667374867680833816108772409935941930528986291828515263445579156270564109807536900281176745111010642858511241613082082533468284558577924483834228483342814302797524150122965578459409806962194622903515010068466512258557906697771982669252344679641191859946995933029724637753061628469758038412245780431197892914237981530107922437577572337512726169655233217940709118320238730175441409901787438002933503735642788313008681624559760023794506434415261656209328508843974162573156064963517816935998679567202266266991407495232986724338617906991135174046500356459322297263713103768572825295904999400784601863603171808495308840731045847332799945129529355025063038771340079759158968479017013155655414681097676216711074600457657736824821852813203330690365882379479960456006599065136457311990939020694029255863580344595520519294127560681993871488852736219350786884894102208546311789955385929976965986643245144969855430787999915460319402356768054754303226142775899658740234908036098904037070994717569066832610037006444715094340054935853814382739535657341242926102144647543838267382854392680611138162748473235851092937263393780577509719758338985937771168817025903473574417752072897070934080642135063681249876973925662392545043224131538759596186607296901571950885456153189439365648653378758829500852117982986914601972683501591717929052181148834055938650473872861304439465561325775353690220169544713071289822304605302842561215642725616490771848687990395194392941234185835766586058433924959964585939437608113340388275853528219082787550559824468749593361806249621462940504741650478300376935408741576441602477637645213916979778225537940928540951482703421779284714286732642776620671036764054057387054359913066270364990347979138488684739387582470125370832015179814488476633453947515876963104877969247871139965285977189645815076066395980832772915769440167407808087337035694610346786695900880038035220844541418381358043597028551357805350320871699230762905672051738689653854255423457099047096139840427382976399309787658249645561136258821250260716814916412239054647963553871492320850273851124580636484349079010914303186087694783475129932405396780824820833151253504392989688653236523051442473372530662205131220702478046000447125173115255670448838008046119878646100540032934147241810351190678950169134729735446805151163561678708452806186639248179196688817612651236394288644305365427520012129753890082254803340218346584839297437883854810022309481403761107198097876368725147697016368293652960639230425756685587102637463018433398192254968320089498030348276569637634665244106932083626082634862042667411769058702526829714567865760177843165628010285403261913900578107727708055311648693314790925565998047013107968715311322110796633141155655033426632710238373008827411355337219077367254509000574282369610666700960871726823991603939312500157510443015129069509791890633364832593908910042700879342239103719737347109566745463147405227964273760313280007012252141113680640454024410108695406162858672026544465333620000918094830057388893922405725904649745445559049003396203516483055519903495137251156988804030883684574127477715907988049721314950015265886569896599983018061989950978222052224440631359262731282145758651512748663845473981708888038284249621909138608511306171514997558507476121275793028492829752355657399082308521491793506925154938175731238432108561445416235011795475278751050357401336781688888630989433228417153602797902215638097363528942033103057236254575320488510789538094305900340605463559612777614761599144241510326331730256564457696242526912440798663865664069824750553123367785408292491145311591867269071134723660594356985023600719392125194160796847560473084716155703894404849535256828085631529516590672508638209863921118889194675382293612569220677102207387408838278580573201585134637401409375538715659769379957564185320556074852851161006958839640148847004775308708776577044848351507452792463023275811336632261636102101928240362725197265236121897597607394029631166519075308797278549654559751933927904314116091919948582898168035594673895599377552701271703281015947992737679905297278614916336720698682539318119851563513997320961155723788909781516314106319269897108666768528652171897033478440506257865708710504248325828492802821332111338020482111272803418815421128628299305263873595089428995929686019163458572649833780241195978266424422535809606112265452848727113676511158042610746207809017757124307432509140904426500903815724633655428538340797233106673514018319246666955818601451521071090940963418123550249256633107700703018992237065239334358918437992197976761644445706637552221948291432304014948024879502191513378058627725418878619787531470913900979949601311868632706293773373398187074221952143626125945802849038091927358450625896011923855009937851360657376488739132254233582870537539756290390603724529283267070314586071887193770959984039147649547717215641994041495910212167961670074391122107454115434828679460819471671497807396695181296369165352374518561944325368352390533142539668390554791686369762741075319823899549371220398272935599833877918595253296289278002446796607736710089947016404105629532405922920561266771375207048580933362271580946499786428111471742218766713582321094216061065479314997519069767181044396313320478588014001494995284352503751480011019422147834574159165058076168770787990716725836082106203239129862674733314078108486524983903438323236798995614604150996997855237403955695800015710868975007006812432541144912067558759572784351588536902209462088973299674505943358364555256799916617294525353785923095128637578736993636861200529984927417269225057487059951660066896831164708018224559632953118802664987985036849244009038871824612358391379275702795591812825774336594278720623493587661296905574836314123998654023373476016745940811526560331531243117962860670459067321375624051469170973296584542759509508558189285227726385763241324008135285390879120054766532243760824680045095003818680362745451891402881108806203692471461821534390778910927107309945291001236619648471020358984318576841630715703762597754930860478720842631011450180843760103870452078409235979926494554592343521860821709332781311293130305225607227808744553102943040500537644111388164053318657661083597812346591752871013340978764136083955005154379801858948394646805833863221061578647420710689619982560380097533303326754828295386510914505257756832694343962931872358577231212123314297877538714440287974652223204204913717340498958670279638634823817114587766799814231676681930628784930345440888651510225171127534861920509730185928317573592694953134629592539807605099415318403802129095322465476945667902907951988334610938467248655422176968829234244825802255663717182146008879990335174750066962928065603577484489634053012846482836002189091497412029650195486064718137669541887169514424082537017458988237719241817194386233548684426579355912193660485096429664893653396343628335350580160081083425576193807523494235712945927873802369697638975499316926122852802768421339198161572346670815344728415283712907312757956586705049242783645020966209167434804467842831303908233121477097441733408238193319390966946080078723402282118749498317351681335357514317731612230272612173902601606259800382666382536810777443457225151604948748240030721515285151847923702198350012257287145146491175731630851480318058918818797763796858958148592161320535775162785784509420594036265033088390518521574887864321639666964899790831008208523587188205954612092493055394805572173567977454939158477616679242346655359431182898105540367854409696655310581424006990769694461118241694929549030273768082347463354899836777447943575915753606374879373492795596280269463463301235036606552467287227772712524172001817976307450438887388350137350065693765875495712370804437290193366266208673911694191672059620509776053723082688539476865990512217265678530112712012186682561728380273194010936490155761982060822548178585035401508387964158693759611063900689854717159888594270340567054826106287059961552600781853485531592968295102742506475736754156439421725680017471470430059308287280955392009983022196311438056469024451727197724586859605741316178819830251605941296196390577576524367816854035984799277756986686571418967843868415136903895795733135929289095733971254758959103631104757628053356824592886943602369982840128660028726946845208842377584835830246693055491568575107172063287869470486569295901336983852033029921254838961423695402248887436627939377320793415007072067680008425815044484983887085984347092409374406075873845789951476610755742412351063531161402668882687005091490127819194529924952588218796836528277166955502531261500903091648846555686825314104456857588005067340897987663225227155284141411791084416133930556121546215873573224346473970070734541321547914828361325751259510340868917142884675546367990079011471506193764281271217937484225977157787055582585835197711466913754827768948335137663678456195761151730868967732585931368463162563451799319765775032571645072981590221589481885606023887014690556340741587742780335777388778741851107757719467103145298369895556002595518842112962997641899887251147949412512355554596676284720803665142908570422416065391892693175315628241971017204538120634010591030065728520755961081077717992191494721756872795643607355037810602471926141089266651700496177121513775023626627567887072769560137540115606444694944484049807690728513047579189523097445719153843152862738946585399186266328155382839514617629747362318999351588554211197294457283227279277933025795160880513013051586065569891934819243090063022208056753157273277697156897667112972126174206837009129579258142926098258486321849981026188275345014890169039393282766282268556298398740168610885684705075009257168824398449177168851574470440315316107207918258946390433206011715846994590138764944670700978083985699921848511789490422139691518120963367691142203650711359265111101903715870721558520770521352595495964959288339395930540858752397204937052953078105760259084857190352749836353757297056909024882513193369634293919176709200937987083794812082686934122153107645913574443962403275045852138562578932560758416459753561475106838712784345067856800003770989640737608131070216638179233451696574113860192392813224467454493637072291801176204658752890136098957368474725932164850868655059133412253570136716239258226157680075787010000615885111978983692183655566713516376311561477845649681828525998448957068600399236712535342706988381829819223636885251345488330952588880999951043418240137614758236560790194418981879361452905307619561702127063293985706941192589224884047151750292695619014731690475252041552025327876269189004845652704810020618131813151120277101640886907320021613590911974449161476463576578047411826054182146664037439728890997429894397986504128433628482187925868118663221784302675733341664249864184382879512208071353572891295404509095216157828338261966674278795670721914004953251570886830934727966057888527269412237658685894012467047766886894883624012460348332296158807745301341631257243207176958612152190212426735545088045353059698075133638013972999069913872458494214677353442983584681140278946260640825778706482956671122570183156574837858864258269510595525590286058854214039401257942642503031685539778744724217496584843117135907853166604728355028194241163337083249981227221739053394939881886231429839724912721677482845262894703724901002906898668503662976890897984500672898387700965859236022641547882890047614539318834617458386310017377756793421346365189705678448041317580426199493876315039195618792586111167833485302021824041471150767433224935286754112603350296031464317295263874190730315290537782921947955738607378266319287282839973628288406897206366118739444719853296598136055974712872447743628532204092448876623704761779894732761829948102091552651555991814453834372621280688407689125047315915201287085012150737326913706506201325786811683447828879844458239041138977088329354693772500731368345802930642079806977159350051587338166423792430260084789633229578392580285796835743728452913804633174519479563286678721227329420066631523568936292667436641519329281002912122387577706937904402019419266172619986074895951150813925625546361983106266703592680198235080798682597802225030964912442041404051442848468829572098942249502277179688915379450294716598791458861130727801256702051539361475523466434902254943939546575757306806674098285281183299504951198680276570590446304385084198335230913717782761534588658343825682918909512112082591661549723899089683801880380260170853931803532937307800693719682296194105339763599221845861424173679620845278557595887190131884130683088788511575602048872681558173278296542138918911858809419737489515572550390246772466548969424909970424470884115990998990951524976515493199295755090669357852332808697282018644874999200968559583043785942471998767640478256636838633485115218414856048175293080334109960005304980844000336745275651234816412729054951493899399963735460969105779325208944596695335379239956503244114949585860573059179887233810228527278655934606821843048340815902057931937928645490369057079811772390940646335736351795138604476620005261557295739534050866917051253978104536303488124553744490115915650227642712137667646272718105876632570572567650108345570617093537337859070753817243580646315291539292127850594157903638771287779804978519479161942908342005956244779507051102508729876664652143637747008955810153530152182274516045747839509382929643047424226427670541005096545365948202488228063578943347886643694422578208068089126768859789870044672235643116721008883567992454886389974408823300550148325615793495064640387809689663335270236457176306201701173788193298541084984202503023930977272337822092236668079696698972869108867316011522062210897651120426263504216103251151701008663270331723311651620585290054936416654379601240495903504404694873400573951980695395320131597871503830819674341625910206100230039559451728298334439120503177428282687617830523500607625474131808488472971033089223404363431076827611215602929423072457529957909864043387658581724116144132321690564153597345048413364918029853041702548914790798086580489588488537513163308944764519560384804240577722086720040192526035010473345795985113612745218277503107566320070294082886968181688545156532434391251365274629462405633160525620470314736398073796429838837590509248810875824925380435524008072984568029302384085639766506695154335847301929971280735535964798671820779809938209219800077396393750623943679475793518223073863144639881209095631872335403931880466328095448364668098089053092123017463279307197600244648758596873716495489112102588768366473489583216398262824049778432761136245968030774045634956790766630886300444561789824465282295575060432898644945263110452429350656965147083729765543613096233450109983265498999238975124414118276010758363985742523396457251887233590157656656143881972232591693760801553893832747984317020443612631176875876191300868395006251749088100192204768416563680840496839519534202165797374796096889039412639746702089984951930888953607344154865972130742920308971650763380759683512087869163933638461758921130329795454581676335265006163884454074835631362739558587167576047113054073164465686140633869123360211931809544500746975926345540228298405677475876380617678600651430529181340436830135515875744185356558963004913182466793897236883595923881199314385027762707053596751690056990229229830396924481218219161051561892778865346331519131469308908698212499146138248697892871113970500851628321341737219350038520460919503119383960526505909173740114340268982663113359701854406004897914683341129376339699967928165121178715243921897400960630462006732761556709528007736882197188215263891482466900448994261581526686365901833646044561576773426814786214352714042931681539024593410831455864196325076242609652398940257068328964477215266503540373715954212613542252904260518430200062229134678960895758638918251258747146841103008697716553343815385594255154558690246143742260803033750764668232442470206783384406862581146376820558997539670016429285669858018467842324055670485365003255832522439464890153070157201818214104427635986579948524717168555109065557621397357384435182894323076141525378704942663076358039001445209814940477850274825465011634092397766530954989371994113484664393161847563989263947809784312455071678382438728691349602635760951325907408056232643796603238929761876909513355339048615830632320875516111591441024146778312622741837257165554114079750551095751940683451145623024622082521215816006198478426989077077162638050302321705336802603187952008339196391807616764614368501374167561263909655884305392385563953849596056173759218623697392787523660469130379950621170306408554396593852000728565066609706949837422016322174559455177333693344498417221856278558225369715472708158856581644178492254388116389952052498663834083096716717843034926511416258399242660413066002901465062814874996227183719551380272518199405339755708704422074276083063419481602502062760306093914746364647566293560359426670926162140492849019497813649256408043582063435930019786239304003624808377666973417392365788745760345979189216836733166964502506891942782185566838680446293204505313323934997913365561890649224343894568480152293924729108102131464005486033293458939696260423564680508916177493568665288378288734768548458925185534532414747874626392998459495790770582931366654327344821990353228813620086358556762518217208779000182006123584234488890082745914541297691892700334008779553278295174119851482109194668633100648730196750326267030559424482232536166801302950508433473338065557168308292894565089101842138199165491485449116060966853923484050778274649943593804420312032494241531850524537614756542790381984080695315125750553727532643454770246127359311198314952318444673560764158830174773425985681355093270613161718719155787418543416439018310927355753932636859287171825744053471401454245612824247903936209839874975660080770539164790788079434339226372243376319848374764609594924130952950996436953354284887257571813003516261870308246993066747660633936250936926646841033976930534972163379706151220810121430441818570595509635908148123357848543181601061875024681306137713105131265169684881378076444454723197770851822540004146947775601828009606967790353270612007863281683433200983545807415135579481661780472198702817070644677910993083799171427778326430124269049455957964306433879407437959618636419810246703262137614384427022868323648652400954955644916650738010557717111771774514032330400089898437226523786494532931348589731757774807785014825199783218964729433824425886880103937456892583565976043725110349986895381432343622059264948178366731411381559652675036644959469448185751720708447847739672778492202385191130139328403792972400557961476747858565309305177305094249684326595092025711399266781964473162678504143984021263959713117545279906378761083165912829091970375652018907468259802619532034133856609491583961036487224261070347019764095926898770266393736941426358244498287105547191630855639201640809334339274281934523285896616144404887695050644247908892755771457919578878024394398752579481046543371793513813131673443896939139253849210260613627147830354870615800778143031853235774890320067394306336504939316683637931691055080516835092514265334086321452692068868564504465903388606510607640479643752524947377821029144750640478707950317021665605856144980571220501710704948238242795950421168595249153496045305478201334168737264676096043785164175285879598091732556174274539711008027594123113159891806482660840526702048637601579552390026506048316257467199770053094651032266223502083709459790135687043648041639195100432356073691785593631625265386931121668765722001485369438006751822309574035453972205126529708711726272103181736634490266761417118343707587657050487857351374389741505624264245675795724627276056013850888917621540519632589725835111578812281896715761523816641592887724151044478912645494199656723875472139759564939537542889160682455886595174605086628858763843478394782946392962747424112834571042474608986617997858913210232463266092411256999807017368048798263179573089559601336970031725715215648478933661461396318974263484267707573590026040072499174985809000240378698302280424059630462796654650118272483887958733477047358846847167226111837528119220821396971809196620416192752004205379815254160913449178208869978411393437208737256522777471672167557371583239554453202750068170386777402487682489032386029802900386607123675475700277216600968919497293246173810110272034354404473373820761294439364543974325194659563372464079980053817217144459701882011476871277412339270216524803388462075888345737193723776685948781907420585843322630923562455148192183721510062433159204994524301400345573268057486688595730995768437867299749132323311679170895583221852489207137498262525692219949608553226492388308974758348262669949165330383276137308342131311693826460190953050102685012061493402135917226168403576300927397938359421090390893042172456935947336424352359053883771040520188282667718613757181125662197146241526554326061381660389922525996939929841739920854239890601481967984379660727817490334090525733571244901085705295340744954819572478189833152105447876300333351855626748360531598771608609064179615066595351758750018992976642455989996080304255580945609631596490140865698132744911886660541942574170207510248298832589912461423800019808389754977387166476352408370694747085442732413643748117154508710904902713595772409976821950826135828865689550098758927500470532839818441558842341750849551925945291383448445461657524137923045172266458301897965223520810993672580311966965872495689330419755821511465549892523236019829496032014884457440096075068578027289766097616265007832978279166842621051871749947894871749260898353524973239044720894101142520884156558474963842695877954640838907418779228028249338578460581776695853321622952546553775552871389170902821249344905351600114326721947502277628511795041237134549889075255040828784386392640948971285906559099062566784077651636275216503530695512109745995037292936709827807600724801813628582628374822672947807923281185100501810749160119275345416716042966420402405489205307844910332977964903967702433057041787542046508165713922572529391629464803044435688281211479634731483771609193567790307452931382564105302122696569226035716986617755177954443317846240606282017668593027092247276721668817583904406594797830029836271005109479681667565654555794824958363797479166747777450327200086672716129946419003754004291449597797156854797952156512141927560936793363400477417279002314854013909772307558775581719187954380271342088554813566513441170246855330058193264185093776333776498858805326331244737961389512270564940982670721630991036377944157593150552135363499071174786425222717702524756369429878223271060693953743533195993542168342562066586074352372139416759628715642006315567995983618930581917013158928962724218387904719066536155477263360366136431940427814193782206486634690556488429852363827212382821647827351803647570599161724170300670645507107364137138594061519214849921610053896724232740639876866032831615851303156536936862236269225204330566802693799420597296825292801276746468568529311796353901819522404824021315287971434158114391111054613895377146041497096594287166758968396409603559171013705878040052524956320492540095909682055481524671452448958820550067812695056162237397034394184005687979449919989547103206265576321833370540953696047590530190928170509678065306463152232219083836083184688226805393556028296086424939368878967065374416566111312120784057260997425258331297741842652437063189327668072596552704208998691383986297246100752001961930406364106041531092866920243540458278896665168461150273462750272746188524480956421461293010477000982614257463546127784373516987769609872061043510366723646158230404724671732337567428062975501033484936231942516236336275338831995306818126434663094013531911596943309912924499891577548530394490137980746071297017288000132389861842036754509134097837852477246775070949325640278073120743416639080134556118450126378144688280462988445234971287812103878349803175726651829403948219832132965501448358445185911750138973665656116211666029059104959055527361727348394160947572838727856001066841263276109118423818520453003735539860451168763122814836413804094085568314768456077976548103468092819608005103505645401253535198551126839710186248551054893653630108123919369596065440190127348856037087517575040522740585484437191112597493342864621265845076367629923726168165030074290823691086910245338602620923865121416555952483428448638814708308162644220117898351892473350778220085850465786282345871368057111302655894098219561401243896794468005461285372753107035120288593955347621365955136606103249171016604565212411625617969355208683506799937760169824489918328460661996905314852797465066856449640379807821337498431587830123519854933984847137386598223716367357011619265850558745472033780310867989863567516351319017004541336247091488978718771331452879162971682101913434074928665533803849746928893694983549862769807499481556898085188321249987301703915038123291976975622658461392651553684635904919925335884422892371792402742799937255147064752645781223194299916508777967016997550463449409111593462320041120963219303101841409405331277773360633592165726324512847184344057468508902963274536286148988541595086377278852340088128428903959323586259163328597824914955413803704579072324830814908606938699042547518960639478283100885055004356666798537763499614969168636925016392544239135023784411106245566061116134727602673063914133085374389310681478380974179223259473835532462411809130778987607664218572673125404950028290172891663060468967954308366154371372512977606788598422160495298619129814084680469633924914037873702634993555186268006645538193820153393383736909799659624780785337340657004934568386324441150753130608378991670335519918123561669388768377464322820968306185540463406051604005887354712036531045002739305897682772910649083404002292509119769163925491581911229074558173398477636093476226152951218594591241959167707750972150655847098251717586235214269799003353149228063133551655398981524158785564542853352294541478631912134967196183656114510354046998718424385168743230447296136417412304223849751511816985043007220012764860752627670305400855881267840572806150470582459555350675150444896468265941063799595289138535452237901364936426608054513780164545490499389604345403414544620996189134815227094529898286732424421756789333276838411893816132516932806155946252514749779978193087144166889599067077021213813852314735732766696815076173173514814606093372375177411314406710741646473549145569981790584043618799523402715402804419055568103310199614293466221691009894447693188119340419461647617008622096472260463074877774093513285714149798663288567005755754962442731034639297004439064207055847687288711380217786460293770328187531610178983156934268646437746848892322048907870575882293714871051177242772822593357825169643028367969683608211080458296145317276923891543798878732105651584161398167866297024723925940326602151902549916888477097208310881087553244799183021959992866911384356052305210497296708617112941572690958522176559248366349708039225152856051202081316893099652847034343069310166906370022324074373318553141408729274181071370322965534354533947489711328306712377376867584920287420071052757519179144858815041571124060749794811376383925633125393269220539550356516477965690634222181112125413369712899282329659963483480334593174127474909110275974111015178780444550633455700022363571785529679998537841659988404807330000811576555508402954008161005295721531946553196331503138719922975961167132022196370118343609880084516645472890565337606102364678505440686565742333464820621419769480602452721375110337804274879425883366066975048976053655424292553885310971236903153105808789510431876601406921990380357808527671704227377143538402098967559338150256537636094412209521486605962931441928322967699605054906750805274676608663336530743378206496061780331983876934819997014728880813325984874078605400184640793830546840415446388457211578372040094957842251764382274627376567464398843471747011522022954098653495022265138586800986311543341414402487993335062591832032985469439753323750740380737440118154610551449309893529205632072137862155470564053626674831255271586405404485596881537239399948818932199695733376984141289495979320390886856813798300121675324812744237192283397314224594019963271082327070501123403268511090353465930042972463768180184066538541001760116592601803085771890638461372290051445511593161865350080311928178524865556560215194744825656915309944010952011765138523632305421924266550809766626197635557915588130261979564013571194627984431493524580017801540889643987828327714246103492113791401902823068680655747195160602252963574129899298940549589511146907207663673706785106495708939541316881150779479335807221449782823336851713222665041417479086527944216966267346773054271521036356653252755888794364198154054746203425352701732698307838286722809013914907666267517804387198437218022568464466990454321108591164869644761265868856074779643049521396591198889016920319087665677951963584707428131831714958794170670741033519932112475061780805747557784412538346603434197214358590766308077040745094906639081398281823745124673153695843555950949416229694000060163250649006796661576441487455226734545470658214136622112496496399094457610653106949211397969823257939357153561413895848960735963352610520189034264568152542992657346357843073599677354728672835214356253284845424409300298953321914564677897189024081075461926207719944474562149905048209992493579764415449625950291603733239259540315804156752567377426136231475324804458830233113814264471742610345912746494915147925166176183597868585438944288937172319890499369627368871088308760832223568501784058405309271864831581830131436293815957617723491930089249605240679832979992206634907067363713469443075901585826872437303600889682003982216636976795063510918874195504229745763309288215320291633961535290489371493755064626615397829010840705772771949251574025499379315163903786566486381013799810226971363505860315262407646140358028185923781826152692630844239782505313143592504097696391754300124471684394630732222023880753141872996184508341300645594342200410037656578731558639073788461881037654624364510753242843321820242614459215180683451771167553618608387906287701182405640954892280204676567454293852643519072357762560363185619198110436262322131824495157453804883217982007296635295841566319710101054160556803502334474727515011311815129191893114299712838766813081223026469578758359851305220089115069538143185138435131113550322171678073739885206487504956298228546093832809115558424877817006474505759229294349028788041547301009684725470155553522790370618004219262126530684273480679367545371155208416925382262797357898446125811784851258742892225239011643743259950675114477075575992507919542534647142278800225006683372414223372809287959311876235928222246165548986649716564520085476799426043130204712901862248642075623988826015679049041037452853840140331793430125985252539112593526789973116989145465172847464362977941617682078028732821944003223615737649734868377696480264749771564292405031530679176336692443613525212672143049769481298812476300575951068739308027268262302762515095292687408429300778377033280270758760765526233045136054733876575113999320819631187323001673524261479043036290097753137064187982588150163275078310539011854842106400213555657036453823813048336310912509780891766186839191409158364916829304854150480652172795506431902994168293146109848459896969307121410510144626017233725397032438146228452931611996845235265489932412571512094556656731645314897489812387359790907928021252440524979394343304944570434912509031756266572772080892041491039475575818711092510508083838170518959954079432083192513449579342807034531165799060930998042802947726160784368518892485440656995607214208851031171261662021647708291814881439913139308673351945438175626373728583453321869508287988914057155276591798654656846161771092801453683323499515144922048747615483121084390424295372278614811753433711857626193753882117306992367303038638408747209222148632672817401804606936445848808408023094563320091594187693204376949392041572007788924606063540091361753250769765844768521235055066026071981351107934745326858200297326118636422690308276963669524238205666679977104851920342979271876820084557213625116094460890942973534555901194522747462411554526231442452964446341625991348270633940267393909725898380327082956507556602024356417757856945516955768405377626714133282861016674285748493961012828247149799198522742789630531656532570640733582264868869039954817428065232529426594511585922953355796062922281653198200626347954568362403827755954995910035898932093929652571938989869226288149409833021342309791701168493462428700814519551428889388347718449265399610645058209973765282335474857775604793581252158541462366149019344290220354259665185865013311916786223303121472322090877678979870402258244089266869574724423334259068142460646413777449088674972746670073127051717908762351384425412824388339634493336084046417308703779329317151389701818668837374400111995601218191143203573928401630798287641642532857650176340674195110400161177820383227887392130534077302588389788092205992429201493183644536339910879793820878526852467651418143740367769931059635873312116158900372028502310046418314467733092071154043038619070128738631714716503629750473869662276280364757117501936747547475767953548257939270580178154759944835283744112085341633904577757191603691005490501916176344604473970104395240170398642291709305657697324131272852842095213235167835483497461043378043014878469185179520708640865822071169679233328525888801519900160353666396102982554216125592672265732827962320579559868099006986852107583809832466525339755906770038188846281634335829730890505811859276847078385033202057070398802160181566936060712876362318519432337284601917419266160379510979476038316576229728217381850740293932209150841256002246107988916937801637341888009067847547053485903560550653670754417412366764769506572080997588708405997196308685481335677895915280007880114937815388410524804890146600951160876822223391305038508706783571746170008420412083373584937110835500457295021552065273082605616738356316432940581617319055302567833212310625116648578531911476649685543836212158408740433054194844628668639663331757604210756094733062189793610763576613255090284247647412004597921514786554114474613844488666945180204643470034820000002343352368138408069379930173324421945600685502866601357631321941100403728674365781181301673602944919487097670501419624979362555967020462193152010288845121392932768806044896094759171410605393312066805887371622051468772849686760971673354565767560581360513383238237211577767277076937679958006406489036609865679804601741782499767501715904931741858984618707812263302825529313228419380461108719631015367541241397814136949474584857926869375592996155558659381574555887481216092837230032516584233832759294245711237595038835547522984290528215864631836015258837408267290556998447484637480688800886459337862200808970650530533889769181820347150013421516817957881988545675797465087293783905733825584768797207737224179941453226710840495661057472319610626147584474903814119405238468638388427003109786623391942493761289394444891528639530950035511185902652568181245526490934980029363079204793767185810061707647775379937848928534879527380669075896060054064858154657817584249922946714392937707050821421228944254890966628996446598762961862336848108632323229841713914970271348480195207649811118571896618264328174828728573651083596969637086001163653708839142670149489658083287023629176007286689988928616577206166821180767917027762899008951209528796411501398645739174457360702272966098187011055804463577629487279213609122072170502230388040865153823322941472912424771028478205978537647361462205291378036480723550533780398761865605609783874961546579929031390591861064134694368018282174427391814931695475542873198762662098117514089762403577490119053051985941735898334882492211482592742220649591819013595686729824221550317680954976169541491465133532709589931225574965489437913355389358486942018428873761572671166887560172607583160856815627055864080965988070621050386032715092222140796801780816857019251024692520700189138955700359759054706542109136683697321986350417305946481595747955733330305447756951322672067557059162048718142378150846494558393708907493230624208515128150361773376331102923778783866912201812545244492889521509697747684916076418016353658206116347256414163086278133149949414678986145556938021887473192013567437676139303002356345634611510263538159031889429506655342194238887344665223840997171500218748879515655002143631566912073040765418973978757213479159235737364310508084130731038546336661140331189634577614777954945986364256020813842312858966089820529335920847632317059923112779513934841780809170940720742766550019255647359490168402035452219081644150322050330822497889323905547026382428918302147187057999535433534404992300625240892453655957771567514662766515715707986058350108181362160164868934845032792166565996104418853040900528306766171403241734909735846602486198968665548609523771075220914210448514682212261635848403862061899173583631521622865408380836152762998664355992896187415441671170185918672639289205503260356793165420443825591835708362550739722062700256386606910863016557558730359301128782844563464781387640325106937006811332053402578959763729952032219539638372548513658455485385816482158820910011929938879796389541900321292904070635346040945958471675547950388571077959116666828055008613785236473775367742124711351543675010823511817775302450555034773114864425679088420460072339619795661416427223433408662616850442521902775501369084939829535249777839441386468825600968581059675087472769234467790082689654424824307911485993899122794213534432363934679087817364404268681793996202005540170336759192105897907249405888756961083083599441479965390646108581421822454856954010566410314423257743759532655639253869871015554664805394999294651833897052122247621235658342705680480926416081452348206538108009684398832286911029632346083987471459564975423498780802582491550308499838200012204846659748327493464276768695471303382718780800519367061190818364101502373355459835445539254681493138900180728046444340555961487099578198042050282482700927477287379200146718847749720376449977594524796641967440094146438268898326956214767240262792749168144811496374305129240944366221126074235621750720154093948816463858591897311830824624881169417895842365081923253859924172961664592611635936891068366426747001889699378451095203969639414835449051805770342391192068036191373108264581751208094102567653956992931349142963827932454842752970894202900955797303465133173739747965278555695324718463905092184775048768532504535014854779952442054915848067151208949135462941373244897043184814307791198344930175872239723068333276732700906251317946465241471340017472350109787843286683953366309491671893729733036238488529385674261838215232515285913067036718429825901049968002477467150395698195400448131137495158933026005177668941979123123447223102073633451692152845031834681207825075150559513172960113572796566113957377300752275579952993898715408303597510967712211001168049829353663895048611269130593767024929544648426638732045192020355198968964798033134387151761093897437590908157842561556993596883536368664673175940497484779361482924838359629811809431894687537165382398985882104725098064199879304681263962585482144088142678885615659932056922654843561568183522252933603841380696491785092420899316763220481406438119918192219663760867380604277140154204152929978273749138743038176867732728266302438873933427933907499396637402700456059647823364737363612940125064807400267053890665976637346777274606218229419090017421731994303889476596670019528749063798186957521989046605686994590727131470476002736357874721935670266815272611067681268769876204487461491817134618391617880044006982615397793985841407569195940461239531611591584122344801185911470704324463002295000521920065496620949273182072694913748312490897478727355549612647847360954832351587664199168023762796823078797891323317772235915204875829679987595602327624430011823081435114476028584852045059518745469676925983374171138131006629247565363801045028560130650776997887152232018944505457226235119949738215269075241420791117578577578059235439208415832010692697589353076986023966477349577318480254949877542182585127373559178378183479532450839260577369551567986232118490159348552440332605406890076032209811577921550204819509267482760699468606449950583160706507726008594055384388680376962002970324698394218543587614039152117136609233405500480504466329339599204436974756751345380724967468028091540829310130171880192193591122333414113688310429662721580095729535229845059117061489848437842745876750805989097032371101881919464802714985851168360223531017668114516288459598890977522166661662725011077891264367426497944555188644752231742656492389442744040229499628919222992452623575141494715330156462741932538984962801619394578051065073962348466670911061493867207725006118738324374904752679433072420714771875892863212984637276123477568740469100485678432465319878292500733690773275731761245834680054158734220070158141373992586763714690840875325201093034780857071283784076243935409422151823405954107445062647700567056658053999654373739196387068402832634456360804304446786700615426958431715951975442605665245537088107487641742565767857809390598030495685014136775157567962276659057819075713921444904742686459287470622677963026752776800805838055572978973572110626173898534331912062449795462201493767459106331780349025766269130466599687442583092449273758158734972034866373113740030006628104810498893619109297525887947550462525661777401099722193650797640201305120871544602961905599385685878561463075767359723232961557400471799687695407063174094766466677432455331344298222451175073168682490387343822785683614532136498452468966755499100829987065178413697906962556355293281177308042347938980052486685586631282416329535172296875964628757370722285546893190403346886305984152114146193520509605652679019133504581721926810103457161340856968878126581359019675473389023302121218382952452307303420653886605961562987358435202698658524620354862718758019232186501133442788702341665369168127044647900034787161026942280262373023898962237371427507903741317728850591706649934274235093625653784889283869111624567634053971060754616053817242860768125665276787033127423839932510895660825211557336920328186116619120332917333162221894639493939596070722196534232320996346915292483162198435775736140357334027476220956184097269629879144436511116498759750242343976978515531146889510424077562243548137415855891578806828519356059583881639350970063241551065390946447716034459647327127606573351795901378178905779085896952576480885658201696086261938767437626333227274016700054965055418756341476442594756748574605922405636732869456252142147176043221434607398959516214342145032245624603340450987131924474111701836965887032210083815019976481777924346519317664420161960001122151030834493954747009722517777433881235619341968828281742507912431736878866015586858288724029934674896560167793948672170451721333114233875387230843387845709679565944135149980723247425650873964891497057170453559661399358102021778810548553910622350896101716536885734598381829248747913817195394067825062796796996781650901733738426284877701593401878863631608209105120374424338446235690843980940659079160411889438289997791228428818034402186695934125836138587742317340952499186147586454891999063114584616115374594370684757105749081906529838777984004083836878067375249497910091616368089696480933826956652467695537674296446436809762587590454109112987991505056439630992132593075855696927043839631704594289392253570370269796152991663406697667687560809611263959432248041490819292691428338494743564177631303458720512834936439589640346841256618502697951524035154443707581781620026330604635951532512330855602173267492026972880272931129224176221580238549776859999436383505075011970311679262135333638576743673478982447911302574849946679676810451482372685058191086646967465918885356474215299944631550180778753808568943540369303198729191403184826921014833445212759222954560818680884518785444002203646408419101165202007071329593849267442998944389826302994577959523006496100463674094694263673244164068910500738078539903938257718731998227602629554092871122607986384469621024818498730678297698390203584890681714450737640070414132398584017207232394878909425918698296285020508004250282478659618385568138413462457687650152852148886912665657078277111250143988540628039429883301508693567050802125529550568232134628526361701089671742738731834692176332982852108716429620575984721240796205512339280361671095903788224261707632666450478345271011680315347771244398118440645678571263810912157255712998739186857128761773287853838224945135429010189889065680970601844858045080286993037493485063081976034115987410309994512165817693336107003307133832065506653510758074719897606301632791765988179287892400310809434724645551503040414453965883842105753397392971278987121595387599714031507371985731533904373113278444123043123994496480035114412070239548940179157492621227446633979483970398480354829970186799644068974965870952427807363427312074084005188375139095964756069991690826006245209910601554481000077071071567539787878650426474383997576207106081584949697586755948082007268535587839376921651108087323088026247355539474956867427846942789468527368339350430754435632905008853539287540950499618594543411257460539702948421889042498119590151993375390680713392368894527511723218951428883302034240584731817379243952356407983212099818742137896838738076538742994108010617663492082938961213227617546441242995003294994184680879168702963889069622525469268773682136061933182613878118588948832785109828162315167717231512036584490755423542396900269961920648801273403827013335095157719278057281299386832302581308102550562903873595175665579912111536548486475530612367821008061576439881309042081155865039827956018726461849571292377939336818934629489239023247356628368187434073319622830976202431625388108297796680083003609144763779783899164650713749089875648998326651637764823838593411477962876590959607933775505711965744637439223487196870086936993163919828765942183972019520994433632390330150035664146058220809146919585833734741783027314796495184567581395170197088281524866410352501619631293159698040477225505734872195866853339380491302631916278512693722897378827853284975987247370599407049059118552859702026806003161575103903702010432965445296082669253055660300248520295566180597710381967159916609846884072323235243243572678309759055293679676658466489789087167586778242958301229118562128167296655892790599263570244460593520710631784413471312615482061672350750619364669974101866908043736568919412875707138396254371530075277061825952209522971021163846283516025068930309275715977882504319810244244681783430673908323336019288462122356560552777842160854008205429962611661508089603998509536924788069250359406701214115610087221499251110872699424711820882512527593877114220236665588101466663951878492167327703783058084300621261776339837002117138495934331305375729951214927482923016804033226252214530912657835947340985079528144583433463046584403838761617431379069051006895999825209520380817993010884736536998868523667157731051191633303124550246275949343619408875776439329243023138453806729765557406333354842414864372236575403702716344024938321162411187414940782378116920522375616125384433576737939993367059728472525107894413390027458299604812321864853492502369369844066186376770835465389839198437992084159901646430591745072560311890866022803357149372774574830357783145257892635467225162869492702239138541469580000860777226692319688452647567462225429767473786887578637236333211626727627492933103173776926807771540853147264858592019760976937659375794906868311075214876655846097038103823013640023860295511434227649193499312430162841894073901108252649509920157075853314271410535370474736878003888910702686062185541560727483689228906509681282147743911614358386471255523292546074985621392151562036092177384029739959099321990208023109647250887569038375800121985982078766626890932437587216036023977545566131824081367714886827114569337414470567215485869427054684596819986071353495639624259525846174330305324067424175111121548827266017525088286702189537574727344367740454091202083361761499686838870673897990609716213178583985213933611066886473324570561467604794947958170200225072152326279008289909295096448970320367829269440686043246779091724454331573376021115735805245922954245161816449567410740001758973900163924163442184680217695267862193298794728862266425549086666751145622620094535776046415323721060422930293797714867385337935856257550033262070774467272799576416990124667313123098836896911325268377171686705587500845609028772357042986468959933097793837105751404629431734730710734420399455261489058438927272537336452313362856879482128833756339974369757061170585646010235711564510192770822994384763096418609402748231081135441590526213734409826204653683376351655889695850052167002332641246615198963903037577695079265889079637643009837647855982053522230998911790240977069604973977941124333219217379813794971146774628921885553095459398173259927408115690654776481477832794138923781857675913606262900919028952514983177399889871386876857099221701042935476754535659725569372332947456760329468169486347341987088712624733278821098808538468243410760921464482962526010694410521230427343708132768682066616513344764531629799633718757811898049244728284875588877449191131079046331262712261205509495508871177729077164638378047882782562474518862089235057579241356355255793450004260696301105596594270634978763329781759799263725184544533879079555002595081185952136564265026195012231111708862261868766350161609470598365451124858468943150733214337938101602039112888337328504815850104710877892275023315548556856342552612040248519980984530265748321348470206506448886142055630148002667729876577795653330116683215724435815467164554297598954465056042776961935032974971697530471928600750210846051797917088927794737005954548831990401216475091168677933315086886047959445342959001461066653710361462982913238950627942397156194296406443526665118239386281472148231018944341711306546178340667429875661550674151601138468480587190461289652276455478750565451100542137388147396721246661824606285466892540115281095620028446413366280742651883982719586910688121060958742532104860568942230891474193774002223725352627434411621256385159324688547923580808201727180853957234007521933928326654254203484455708028462200100416375178933795052717180496114011029892468770883572975568745202484884151990577835529547952293507886903974699405542501721393055086486080379554777501414341427391240752882386963047901671847088681803092363928897965209492725374474728701093352405971879482146035304172544248625515822944330321156676443289497577603160351080339012921167494598374449714260810161675030868729569888831306466838287915288102347493823517346195786104274301771451598052407690208725245725276595484850945272518107160977753516876469177027617744477826008671364135392800717473083161455796723625649015923902944152862073374756269987171872245706340599005576642874242646958061129604337362281870637202855354311910313510272457318260299285980792223782472620862290460008262587996262017312807076646212822109249002892659767750494398930533485318302723225961655154621823742679171774830121086690186249827789423412380105927017108935734945347981342941433278651942677526055872659213110493942714436459202301472901746459319133821404983905623842922577850675897911397890074491412678490362602960316992208360111340133269995619160676541529695485875901030049169182622003628968802397376024985490247082048644868259543597823868145077671609097819417342519632023420356031107573819401325678430290224152179408502680205334447322619727724807387602090732739035301858456227254344233322207796166511790563731734748394315486139896460404948141670258199246146767687672361276349194680451992838336005109500577165860117439414974893856701230965327419339185737742061581805375394439596278343123714311018480058963888533820593484486873268530690225376512047789156498692347331798987364692305724125949268391278810069188451128119564178652840025870786253002161823947417834988894129490296858337014324386866944827887630651857866531126943391770005020140089284957986185104769619866178959285826859886185878728083584025644967783458199550338192803575692551411133713044724321883634643252290183117460724329552964130028548926087040893130678947209092359806658344630587784411622197524282838710806678846175887506215951898021791892775038690885492606895164207644083698908639502482793947570618639865925924947792006475184384892387833312573015720621721345916185407518092640743658804522734247669360198555336202571087068520799469765075251507623755666905222866659917284430695875682343669071454067855723706686834662110595249354830182836667155820216887974236296001053821712886289222408202525051589648881036684580435816074575602804875706606190018818335427010443257235671343838156670332439209528262828845294093241971863326738490300099370364415162300331113776067502456253742586769138115758942097045081596479997907733357141711641247324497311685076966306963842050895682674316693295710033381660135097824747692341211368954996708274386921899244532444169518977530727331035232655522320909959150351546206010447755469752061325739856900485198370631535498508531690425580431918925666427583618055854836274437722470264907525974330872064581077029433595556092278937403313061272141779173624596973555869961232060145713321210337550113501008781330670010139216276052417201141221925846753849963408564568237725664557188705236969168809122750439556698921506580810584664495194389541046257880314750652262281527899119088110666212498345973514438053109049351164855417440043849811269723518100977879615571420698531402901355112325160632056195730645248235332858496727026014247706319783305271352787643736988046849569486679255563774979165601787438208638486591874923419349895157243974953126803944932686732558910295109856230700993225077893820362726626794860131503149571158614497762049056154735708985611101452826166199309086869482616589422428890727059278060023776365064420110406208805327279420028633652876567298576186589782935799200219812943250087983366796272986161877948793946681039075997311066497133571186537109938433273761727070879775433203523574054947428206285651662079666530170322987776133669906779694029520019844171134687201789559737658506862745903558713165826993012065445646322282089627813622740324147582857269148174015451723953060949205357299083849645993990408096488621163758532140171980859562046851334956043022633215593990678733463833016505326803189673030989673280405796805885740380617245080060040326698959189555264716620671086681868393577797883589760764729637709005667729479786110880823446723683793540085358158227369170541395081106149026319688563360825782008421383769631700395822256095482950331023976098058510964319241267670563982372244250500079633520969686787346536236325765279026212409197282674311243415726291156821064848028407238272569313195790398749626937150274001734113589122977334802868114392443732002173028061797136177509870437624677910261917685348821465024361909186451453135705224548992765217484464122159612460938801254385414942507387231733059997095177472043119300476337098250401061312133240202853936051986658964656266078509443931723612996671886343246397534837264325781105741287885992575490931140935775629115106762092777550344534018056045187895374820043880980416477951147418659257818844354218872239660821146760547248479383907272794216708161902112294954639973089085152971296647775778045579655508408590457616291511859003021818508368488846986344938160595992417603901049734775584608527785101151667978469893053836700303299209388889853125359116037570206402806864610922948261595687461912389022505301514511040157749118305035215232178621412403191212499422014595106403315164646196361463011631670196980111058562508894356089696436135865833681591905476292166446923354530598974383221890041494026984622338886943966375869667217549039885711623104988804886469409681933808590259211753391376923471864091828101373541336333293118239081793377009187381577757083934616051457856471967344744513354413464946427287688237613336823505248729869720835788933262983486523441091621546111527783233549733120254534926234157284864004744371753749236560817677330373684860627903044417186243818452155087031390643030729839205597578809961126519231038146921625532547606735474624720367781232828959814091981187838857084951363895872356482988005205451290966772768692753862941306955766624024171171890074025782959621347333808236323390141445249592695654388938530523815572678006359046886075905222565066503206956049961382942556176172650450711316340139400603980903390478233104004290652549702146058373707778787512732781665825758890788188417028920420918735633166138699098689061279491616649545007230884950417663126434905205297819032532377870209438844303743802022307212581374790858859357068584683693718668035303073968216779975136096721969630953123533896453624943432463595739826265386807598955493570776522978782681142739642357331501143183395878243208859968185776594201457371242905173105939711358069929965246078799640636891004186562081869252490227729903403229815571182371135744847517740270479419207091294248729967566254671001530518861667455067364382456392160600405188546365702968904257079539073676637661067360645765704552636253285578179137642738855778425415489329136661801430641614131029652341383125946746445953208830590106402688306389068407161296811322834827443030326764006056350249456910687537065073866789307925918573853784606194142518899800000095469615953990998222718248687856361420785129587980412456287270803109005975752641189485840339247050459396808950335095692721536373839752017728239048971885387305642757008404587455803771810683125872933560813046373892066964745779594851374451227295889922120847675853375523831392938577103153441420557754326198740235044188991317090145010344189810507950383068213380702139574232802082418235551869379767314745841372515566928192156629008848543218262046579497449022631651562146397326851785405917682200774663020419612774822511256480426281877995078093063559192401527080092351667100810344068342641633054320836601166323822442600189618696233708355134234587447222822600028142538519137024952742572764970130346678795183433531779813512690996578035414784208176838076905233791957515120146343767020210397682192326358546530867254064244286828937461630951700246737563117888947254933666149759744604954386953136291028214141161235014915194007637497523942393865427373713990054171015801272159519156836274965647798560657305939617937386838783857031886867053883340965466831764001551479103994784783533605198812902263263970396326104563226684601890568831115531635276082679063818517090830030953856491054042435680354463520703485705840239455768844951759701882866865826190122323910392900946417664810874114665341581748243562115235858954641645172307488054335117471821690636424976169945326989895178274429107154738831537274993052519681465595074076487611230067205915575738410992231742006125325524280747572570036052566312853824614541874959158887174911361075545233449125359186138142463792252386900979451414475225871259248047417533639043814874532337400469750613443411015276933228294329077991413469927668333131842068717684680091374931370659584805635377193208679752006159221037993193222743784147909636070566556336911702163788530972643180849682775929556042484545581844221216374677586512533845172858492177439959460657334133078917807304310921031284052207018855112905312272127367381071545716536181562181823676711289228304482387517346098493278831753824402398147538575081056086420800028344820100954359086956942065223910386223409600425635287335094219025015522795909613083757378523369982471990344836310053505593642031672682276555586238097178783485883905974087272744216628818559014229517766399475783722922901528931894086043555623412109092714327456649175246348375118741769182831200893855791728096392464052961408044699850499135074842339202218378219990306795359853824195828698742886054146831544668513158289372756634471916372008444262625755493168483337153650027682854235217115429335579729092494990149107091392390214925409351714399314387469880330465890131988259925473618047791533704051449022159278252198657743719921868064011919595669284274992645658711093642081392224102717720365447594040148514867496471081790484606154405662145921490848651953225024219357595317736527525441301178810971377420716538638718702219498853664790030615216953522431237454802002421241319114593335239753410650492680647812871513063646310267539891601928386635492231200704071907204541711575971110484041710071042757464531324630036425709716202047463932601191099899716232531800346702645253557343755635939214853620105915475279578987365424072263166430243894900398153325280957159125082919823357927504610643313554013770961526956641558999775999404134747517890802741401778970322427532641866971821097709971219121625065366448132798619351973436431533393860208125023014936616302426950178173576265631048881519434730028106267120780871869875843540362445040485240421937540499723979399485751359117795287464942888371941849209789396352126304252052050055373585335501090255343014914972694208218826869998087550523152307838094499141454847190960537337674621706119405846021424408264755102857529269233352838053125618720093812727884718744415245557547802484252013184687377308185810410200490478184977594444582850910398830654641343274734281976071666682170074959116133110890171658841758596198240076973754928955169694542053443381439488050069698523872955122985106474725817272256830141326020990497503092379470497325764525739090143754506475906625227448811258100632661098043021502664719634940794414883586967516964230949841081354422255930616095347413364460623480958564581969862069149150743964153865758270705962916912242235361601288732979706131466776262418605349885998511895448414620129988384600798945545755915736959212548424076028783957137597426990005456887906106500005789263925881646849683379584039669493927987476232187235153681417282441378823951615420175461655884849154742938736695275421448539664859569615154009501572644915117283705464097852572105243703254427087706582147264419484191851410802385496826970153212142092716055536369887214688246155440688145591335172249657244932991102369193600803999652895965419571637368087799901590736156417084889316157286273839273069751491199299534643594902821035637895417914969782321966035722157855101097327567436066096172256227931723714406252843757260790515543437616767549643986676079143641249260764120747114596730669577828791058926172659475522385364615258945162477315590242214657910759893606112653485684927526142163382130669189193697343673326573826997300439389154615898133155633328096396158338317508051192863689563907735368421910177462170407579696532938986498302166244690545488593968595615281028630866009491514353481029387838874370634734530483467172320672761053236905616296327876778650010643441750911208996329856255519626964656455170287468170085413409264372200084519731099369426728271128501841917248723556324195512555073089869955082242243812549566045584125472597077780393253519190801701699206157211630695609247076174606667963392978824019424018202005044514314053298334288413766608335013334751836353379410637929510772181246660442063676420917434980431481124882084409877390628648550866795299777725584745491400650849637385327084472519964029593460782431854961665403566460149935670931345463477342625679369756126927292372790583272901290924824796164161475470574128483958413490830182555102461402648846617260780124387698601949784284539501868970825241131003742623003778797409860808710817753947123079896182794257275124751351105482062916803777985061845491697028308075241259761587212432389073137235187346677875803025779565576527455621191971257937102062876922668171812072583113116773439637911782303809285921210937837361710194939368722816851861631940406383769696254915991643327748091845638959018022205029100825894835663314274606792933450323381802803780684448367006892957426023711728790007029465153855980994662485999214411593894053977779636657609034463185171994629464357315910440649094434906135960510002793662734606480626427904241890133598119092791820071155073917891370686825741048764920659732536837794474750278047797992565186777722951523512341996178372976104323290942950899981811831199668472300260399586903349647778405203837476409106516988345539753813039416955890606648627324169976385565085192331238926969117428480508739643156350083868722358360308794661682858305152925072702271386121908570436556769632585644599739969072986299664743403457227663354940949604995824583700349508732054753501733156468808089898934001416405259047226957879890995333934860380205506652551240115267269495889513743601050892163949607572646854161987282340879261829359410114397522365652856280397762474176456925760507560535826262413917074554432525151450754010957504721000253569555867697386201775333815365968158403171155254748998980637631607352556537683710889759421503335822141092882285528169588128299936034525850892602913761766467805341663004124167195332366931356549103174599052333090942009134046481817917001669709584037100113591784458163642646288145402945138246983464805034992387145024273595916380951572997465275547518160447757425286614646913946192923517210953973689022609443748623387358812646505854450511864614418301309674169466915060926153532717572960627184887851696967818285469078280029899983935218166901682135558229250202205210653909384917674561178270131328289581201865922138138255063971080866496652146344879298651399425735757238814916298256708238201586218622464735053514537215442814742075922483297214906263329354510935768419562721930305940608884855499977079553209283684378367644293780871187131758633305207817564863119504804714742893967056972150303765304587076115079337765298328792588816359171633035244686335933479043498019449955411322106121747303002095709907004571914418600224973209197650378651826921681126730742288533210991446757905326003141972870479885389703390347868975321882849935894695339407453909744010025530780663920153251355174420487338855800996210265905774543988496670132369474962582049182142297916307034393376697264338484120831133999633408154948458375038102472924204131497431367401928146755611229113776603815204145079256975620498382713797678478220498142819090781733730521216723704383257443231828712231292296830284689211661985869316856628840398742778447011352695935628976860112428702904772391792796646300878497227519418124840980672725108231904331475691872813638264431914139692824965316550586656536305674836187081105005802458632185883199923718371010798606175652370211167801823206670578555669817068083658012105203941504560797156400521958884820028700497039731575823856773045266445709146026963031284889334774148943484953215101582598905633091076460535247238432947107310987864003206130834777700875476300459289401471034835598430269235963952689195151734850461304027438324167118756007427188446382221610713091210177634782601688044833493518135321206854806644252571067311753926945746851314624500587730681093935128129156229435302627934034260187816831816215364439640021172464125809208266614608553458442160592966169320220287843235316573432637164260112751530153933290429931390327498084505210764703308384479091225414046052926367031169520137175782692471295719770339572712620732095519625470550535691936970144973521775758260482491440413802701880974338373252773428255658354179011557506262715268498711691724459446350202221509665260716441623180589127883228312060515952719411873474554929169050547890884697267838813109378769811811512879831898684473845197967207557962608124042288275737635027138857599948013583319320904264237001605427843723832193345122999700076159985303043960459048329523485699652376497936672011141477137788140830514353746651471826430756979756438604560235209263521586034568974517936018250012044319599546719692831649054583110249739242615581358969504322255197739434915337666574418003285644443216261391878040762216997362537980107143288116874809519912923218718972915520167166529295167744233091554173837326721134059980970722044604451591439050725448365388197715925537917940298912903494254608484099529530983403082011938297519393429257672020892952396836998377325707180293404833902623027912029603030610193778308667350107228745973381353925964192432253351145182879244839958403248789367061940805860416891448210152565594601262020351614128461099320028269331948010480187235192733185220079298244477444682111222532505254857900775337796571742394212442904573865718150957598812951977229979481416180294880973112865038044754614633814228623544375834379141560633820011134091156807939205920804703225137338942367036528458218208836668569715191522083953708667016364750220310797279101358075870781052227340741977565753546330591563307942352554383099977128371489300610548940033799861130273227897796805794528491596582671372274467340502471418254318361310415716912965635052795591819782996335639838941879370282595195552994004577857154362152423989823043133145955654250549916230123995006735007577334536792310477034805084218011280099480055002043034008012675374395798491886881058679509196788858357813267585748058571831099754488209965910847278287624591239770384159189992634514219142386831211301024657838334049080610513635268286608721406301026576929852441507550399239226462111094238823305583009709158876763908195037711005396936126556342569900293950100066332957624957317965523793096496234599866029339388311758612636403214108653447604091660402863663444452052594593798242722812425702455014450141673041512561453796477032802918967579731766627738721076719098515109059042671028879527820022944859007662440428203489574905548457088569279524298053857923361181790219873621729069112632585818220948476531085339361025598483278554621614014552200196087249422368732553438602692406440420462876250471879939507573756344002644721636183394673403480868408535770856640603308514173456527968795707562036035348228087894201637908192195850743241317326418903717499701320200910484799202004548222060093235344922017577361423851947624486720765787139484829373658817806107447369338017182241550434646522699184662911471158564670193308181599769444599041577559188073942285674386181554177584010777759724305500090552869494404685313176202715090252215745066411006653987786924395181808299787640351733225969917353432614305429968580164907740206569200748044853710636390514313116165663761979878061307015527327261495003533132442842877932446939968530821312299264651263035396250050390886971014738859739763939171886057767739440560482660235438894650391784554079914694041905099820955565621199226488419318735031619160765067682854003747526401611310655304057279402173546285398432097744345123832399896225498243811046280803671609100694190378328882659630799537291264284254424704600757400019844007982740489089106786557124163618503548192597081330012248224461139503596893913984879071919250260122884649095852634140690078803294901272812493795429868081821090279446381947108971577976085992102635345442104813857448810683778113448066935124939026673482971810759668491208837242581266642405920384994438746801601541945558776506435177182873888237113645936665063643452576898494941970537647850616743845306770973726213295443698489986880715705365117855832052063600027729124794733771529917294493048308605749016256751016099149939684400610462832948303462704941116326261756468403734057396233334399658288622602872471989805676339630675861510959556582387134353928949110550780197284382619925274977488539385206802506912625729458864746198306920068490799465706061845366885300167101931176713988989024029437254902341088916254773360040553806058185948972449141388472643684016537681904323733702540083388298866102785289413295055407698545139738363648696565182761746374073767391216773189078273432388211260900067507457973237531181686732916796189742936612261696439323188896252910883684666275494482012041858541919889154948379634577113160494787315716185200081657962281963734540825158329218816868320619994513295594701342093446110344149058233954545864290235362112152632516806370213817643707702189573740237166634651121313189479263457370677815698641241054286733778297224344545579445807666642750644414695464614511018172311757360528507846045895948742989145493969494189570193283953985787692161460970659711504626155874929484854323806784162895249906565942133920749538860816520916056509492590164800992672420665213678807535824983842172750477325729753151960076569091877296818037116280901981366443685922382822772367190274415687902730520126122321967859940597404570358203845640305084640567626272292526873471762707995046900632588287462143784385526361254835235623475883312935146937009276671090426714877543419413039768509419163841759626740900895777318937043623438957110365945150367628515787487971567518838223377851926696083942762868998976864524694319223846361033249209371913955397670009960921153590948966611024161372293000324169604026015524095911361041833596802865850927718234780842649929556212427365030891512633343813019264065338105677551069148885532261360827247182539838226299555319393513474006950527596215767257898885241260694200678732720323244839844564829370514852842740533981594363094319845142199273300491162099639796723862982919734088310796864602580803542141025969122476755358581514856838914094601049354215691994771758505449238034851079675198407235593237572289133785670604662620494647900189119313801100518200596097686143879146584376340428134957083852795925620621225202252281582218817372470808534707656411066413258600773139508459344697467741960291030603073545591341347960172162038791616796515605546606687278375353315498195546089924477951846143430722800963394675301007193734912719874053146358271192220609386808973650695848156940980464976168199869377676995045658172875044570781908547681248164524288631608114403875679663602841140736909044727456650293845227353836807356715580081893117082533320129942716956153971471853176663274081103900471977388112687556604763083196015680261585097862878889925940608270355942693811070641098713541174254328579501401113848111818906958099683237092163056545310420182563385319505566538510438507872985854377053281354292820757567596531187982148090293750964864063381036262346221893156418424103351630200343285076091328075694486501409427735572456386616833714256812209846332567264755831182053871801210553388018849792932265246979288621351422686012056980995874306297375619639140683359799573766033834449783067215411061146393125742427222696571272524472933748484150780539224553647875543287829459160805008188265271043870833418467580222621536975995141580771413525106328452193145795603729887017994700381825657116352148106424705462992770291992701813423644333669496803041199405766026609053378894554593382012704940136451182132362127173671759613863982050576550841294378411005084819060040389050419250490964307304912297805095666489062577037023087516995635067102879620828267973086033254311643381040904606901721247561972571470815436274163847894234298594450909624528189113227360814225677600505177454711174072351755972227552829413163260225948457931665684409625580038346163090944456931093203874619332698089108516187552542636029038496882194420168935297775929512874263340003749385286460112611594320172615121088759131414541343354247276529207328078442806930883218624574966536114842466140840811230446604319313337066136666431103163663611012491302735673267565694975944645104375989911850142495759404676462003488000269879446239470487469455142330038374359030301290322167915824255133717570654178476490875675411781619226427823576855552875360373589166603008357615048089120717672662904989350323591623570258223679652094806951460539244117300218076025573765019623448888985791135574601816258495388492365703054914119573147750910534620514321465133501495824355475763817702119429167574639360803823684138532618769352254408652571449886734868696741131157634199572539095841106512030720348070695465461579382076788799450636085985089620748200800085305045540244041156518972564925340517620974299200055100121045599964424052122791631281200528452996850148435038079577135416093476325778094654442241688191388812547804187944431843027862168648044244923252884183839062901774914087498929190919925828934194764891091149274625547562143592801229301395514069934633750884260934418110839178736248744878789195465823095091647731895193032302207178618418095478232360812291513467137416319342640575726730476153559817604229353098065098852818352070798519492244536732234106917252046916986651659423443014932951315125448121217945505837884736186339162919581220243038705854636087401696016868300029025641961588876338281662839771889391289439428889099444618824848838439967914051152044462150519115483238176337080263447545089154404581186234282662545082337965643201437865197599005014355529297745973577954992730485968222558992956401262064204661848355700254429849072953333002041614458611793900724025042274520648294523608629449188039787190994961260613206630144378660171981897410838171899055613559643900168729388908705381764982175917927174035095870160181526191596305705752292712904715210983256722059530964217157761752430936500479673516257948998575599119060103439933781626365675012051826310865932046805213508922253380418608385872502602729982464515424620756366501215000480342181222111075049348628320719002690993064291073698455466545465905840587464117091911880890355113037425116175255729490557053189161038347435155223031723283897071998991506721934920293629013761558808753886948901155002802294849627748262037007083186297741114663900123359938458935240186407031310845856427084135247607059315209721283449354308799078611586119817194973744156294189039432410305392589122126606219131068953575904459052727461649948482876194262587069190993528725164813871429621562040489887026959650806007264177876393789078644773446207360128058815121105950579495985574723572482304834780295371019155968543333122165892414046273203903749144743006255683704247053213196091291043042554158577662945609293601058235289185299433810775363058841560139412804263705941020515500700402387697543547866776867452125567422268907030290220322737297053518228554314117228291898727860783890292901506806558548772698227006972661899043359134985124086642386245278193715342725172089698165499045258346737517839244711882960638835409065617651104894255220175873725093726149619104993640143076066306137014520568761652503754939045731122147812725990645276848211528842765246597118732307717764149884458900848668735629182238769192151582546458118971515895708293162345791898759457013519402313278406191261141094872702286894631384620989354071258011482915300271519855634913383783352675847279431095680054245865303008892808706698599685736905252373701013260015765990088096180027822934095323578242176487139629028772394034952264475272779484277317532700696754349793066510230451055440216122364091799443643693631409434516652828483678317310463655097903838536073521712662496150899999913231682810637550878309502976212745571418629635072939549402383834463518127913083611629223726674138327262717571290470221681604332786584183319799595461917935716731817458111183946248484964450368833183559295508511288728084359942624623446718693483396010897595326306228161591887670148056461140239801449247712093190776381878880010847868973507482305676473219090516416274039211598500528479386577547947373108737364378913731696759389146021271356973848282321495073075855289127301649857171220059558047016008758908341700972643120362965072999387679044147374632783407741537489496654450895493858493486646666447922045912304488803433869508400308714909088762141390739455001321530295847092146949802692905407892774123123982112197107837866709107142238096278333478725507255876776328402080861205686866338502443020551901593765048272898829280164802875598557040186823943910271026800379820765182866141847218277610725508359492011131569669799852708618898512247437951939883969163550961112752244931519672131510886400444926791229495944502733259029761018563992620576776351024060948098563118054235919479528546648029360666391810911686961538972289239210963383397500285126227851426479693528926460216686469443801284574443651262683170922476061902691531492080894222565433616607145490581383526775996921238740680056455969508767896047149805699083351354553312701127716816807966985276691145052135647048993474506965302605235081020645270421285678488240512451353478514451206968630712484831472812730280009826551105524550419741771680402223338654759998137020324589588281005666995672024493659938804436338909814761134233577427276893940441205238934798780556697543782987387664537190429821682621394186491994564657586183494232500612909906338733015422643032338859887891147602789887056098303786807800968975909785753885910223338176931572392933649427923722281884646219134978775427812102688957234237262528588064814732748710024823199289950076181222333946280668568689574750636288164221221097595847056657208489840125459501003033725713268482989906090115248398932936475858385563994328479188151238138622004306363496715903890014775794335173148825438034111044531914122570555646681721271477263269346163567568985528976958059480906776540444725759036190049079705923778454824987627333675571281633739539503653632497916799196919593541176076618719666171683053657988098113935099093592503112727150106661521226574407426571899917525283280954199094778061548673450650105263973148453562411866622167592934686851972222386040882866292205714010471330029373742768952547399187741846686254839014290214273461911720762693267869224929376800581820676132256412748024642647745120396736575732167838331796865043194626195905598811437100445642995587184561340785642751283128446541814817423637276167316421941950337169195868162140899182066509982811664737738128430192458802236567393631815773134300243051876672984993168981464775858148295848680444804822792084524725934859849475585575572391734337562582348389461510829154377638536862332683806651932201873870767485288611784042048605196601661447476746819320206731745756992584029546354907505421969868539269244815328895789775354069923660835057231327817635201744844312999972262302908914085315989888871203132289199399773836142001396159062539244164742391612878730960534093734855434611082300170958453002020621782737899043837613725331458267424707808171769304987983428096631143142180887945170765587488062162135040787882787776279690833773262411558842487365346118192895430977190919119589392112270746019796411604441868936495083090111131214089678364644983727370233879957298860508196217119592893708075265936837106155628581622832746355124985374573542075568491972073804779057278322442746580842218327172665893692841308030989878942963114364848872957914700166439557178897014304554746087189417732967745480510523297152360092443171042084839913828709710048790612527982621608692261170406579094695493098207528351537690035063063209337431923051842300413515241933717686722833037712841029148346099596008491533100769379609815572277200111415968698342986309111099237391086521250011304635385561071201633375350996655356704333024387637636541098625270773196744278682586556548286587133781261616101064069838770505192447000677360052798159470486664179091198502849467599892326747052073994778419949380071047342967248828364147378402075315120260111112618186732461286245067177668142342125442412793760425598086580867380316531328499038039195057470660043580950618235653820044404300514472989072120953377560763166156424668681782229212140538373355894491959833548051177804978823992375803010154487755871122760969462963648992741541937783345342831712953336129699500591205025507885243016722628834489218886909490304450512369153688898405420711616293169183135092015028215875592489398323828917863461957845548306272171136638616404927248446936944735070558037165791734759723671050256451851753872919361849396863577427607214960245953033058992418767396436701256374649273917415198991991492244291954844393355528650213309744195192574447169034981150953710058850752759199697058736821919736946377922029250260550100590722970963724453677816218718143609859724888108239671237659208099848517756501117538650648057259314586004853873979600742582156544659044737198018524627278084560598890002548527382232087673582540572671070671184825572296626722139871136940956630508152813312688281222300813178955634701232576729679854037903125406294932075952868118026223885037441454339465429450614833870542465416804258241214324491342192922948656163824283130801732130517827304675381674586694201124231354226441815096760922415454973749847386276005604294202580094493590355358495762824635147077414949933789617630333189318239408225163770234965369586903390933712749941883112163867084325532256245897364297343683676847205579272672714753657087494574835144836922895218258765704900603896640945101665247025418915226889269833727350241754084805631905341638520321363894020974101781697398156511344168024936275725143885162351802052928081832192275238384831275347742445075797452824612379341550909697344440033575235589490483817843137798138624656412834528910201298019353684295073085650212226975459341421651872426572905409278392398700099784327229940909416209105188222859875318320268901911028964344449933100712117045086023386488575777728252112563618711775926356121429786337007391953437261836131722672118807795905774178638233518022487154595887407329227926700357875066502143286768342301892335852939632922641322886454967495230692728878200370670503712075475206039657569344468589977391192107500570819697710172588444305117567784023815476070892003045023672631868008645583422114530287523859840794823012626743631845214331556209673449106081248381361438367046389208417822045671712905068317133565172484579578429334414883536662179413293838348656166195010089878220312013540678446315642284959208064013177383759072587462959044463982372598558042268162305085144921996307002021682350626223980219028580902390180598382956675537828720568956899755360514608186277581793322884720975877170015781625155806453637225370622693733942026994374493046824163105896389678609880274788562371883622482887115276410304805515497285433195207199016334088518465861862306626015795638333407339419388004661555486072704614156124736148636133008692598033465907052224872551246590954524252643747304007234356625797402811457469916333904170221686356009032709828501594079821793583385504427230126683347305703290495682244704923952989221037819147196933048846134945633024709463652901513728608517602748047857391174232960022689547102262205635700686499440403247354985251219680153773173140726297410624351971106894551106099577962630815093783068598986904110311263643473632431957338284075082555314727965990444362405857429464924999664789282037827757980317176399299479661711036903033020378022398699733214097539907979027332923729695148462202221819587109553127606782320402286027686034382927122127693050692397587806151087601513469389033067011005021689526707775271829973676237989604282952347087249568635094848014606270186326120638828932368529368590301516189930405311373106210935400680273102152254326774453182917957607341129976242717906018550534065567494472143768982004855157199980968066624783024203795389623758207435006615253536086882384854306132949237461196104912321935490313465299626731703272925704642203175501950842802275118042287527091880232507380289714267101617040838194807380349765553113835194145997930112621773689271859764459548550044004336035960523622091835186677033992487008520984358380178816590349198643478724499551424810023537081493927754989949378153672497438510677147837095701365608100463453008616243019127967514210956718028735671813756288433301906113387590873634331740057877127625703662808442544331066300505977761697512656959271080815437906720689689562714586592257656394444643608210476988725674470849099623856122966533153968865514188041187477681099721264816446196029544431849531633631697102960857773486019862725054417864559722675938866497169986303947689956737320110821397382489750350868201028960463017320256809843983031122335977773239081937571680177275450839440172945969626530936174983793109905561121844384088723060815850763472211272112940445837749185324036034444212811113831105213169836600989323634890494402013765093615075320164045507300583821149505833927092424155566713734213258199845098379344071279150950823246647289291817778596886329773573026672279742552577517780942307020158122565746946660485392925383773883431418533880959757632905315364125771085680929041168953543460856791039322135638878830453873062836590886212275742120664371214337083525421731885075628631014754255485592758911644800966445166056552022744534071879411326458851535155044009651658674492082732093589532056280265322694042943935543241068135128349901367495374308316206310050078696442714545791436226621542094991816700288821605638884983601754594588866627722211663469099955489344767604495708225480835480914430467852015146192438701032511589912881942959108863591721973326965604367727338768024501857140213319428602621683092652987665978220337262955038927518139616302177026082236598584711807995071160363085384769571256991621127552213145203794154853860507493650812862602647024381558785580338883661231261672099446726627286823559127279684634742120316629019793980720636727319399576553018679786429618308010906139177893910669835524364361433429758898798297563187029909593416657777107334616524936395039759761788987545445725455437915577924271004950146915853435324471755991817234620036371140291198960338758777012785048337666864973896737178561063993201542315922384938752403217050952888422789347170389257680666901182476910609451661144793144853619951511037948019466234278215218474748222132476182564024075581747736811066500938586057492211706579349544152956933542355824569497284240617190267477476555456500420619972685890662669377548875947674022730023076700115415898337819748776029333377457116191744228262915908638366508461982969984742495083480730454518465233382559891621448224082431437552038029394033293585639756997236449720985000464921010873447562068689928984515535120068804992213052454889563748150359136069894047927406499867012835231262076285786583530052112889957913426872217777749304625044993849029316350981396173575724019171778130566839658698914573567325570271517979524164866247153311482896237397087248952650455716723613052635170455289137025343828797517841136313380196497793447404501437762519498340207824900797274643741100306518722391211642928476610350222734638277625561687238461150348940650605519942340103356041963193449638554688040818926970704574559935575645613234174919813608108210680596696358688883208408871929858463616403861060165781592932709185142833035896985326133267730973875206003098178000124207091655758247890765477117165218838608126613316153066314385620738197546744835818765944277926288016422996808755107574541074235587638338600274526725055870084538248653509146214591721692415755331288887651280605794441038864353923698941928323543931709160979754077963639667227481382443906520951302591945947562337647567759542649065661251316268185514951763716490167578112828419470145909186423760054548431708998570532475496123666650823685655429865805015539879457013160259763447744574744789788692304077258401540537902398975063308796429353907841609316430555502899535579532113346196573507687431747246345815835182866187286256559569263980661929740390995918157059041402534238732454592967816511245600839834260209183582524873836799657514092078080544276743603921428244093214708101134687121021689406597261151337234452288591637561723772588183256200562640292392218075800992368613288240116078067197860837210838891933114008427328530708939370957698139476911234400395890573126274587745420931893595134058514305963030949650525799539530333912505119826634952571529114074988852315074213092250271013194632596769679182615614981008563957903319350482484661037380397363351973758288201795776173484649519477395319386634463184512812766262948880088372869777834870146697467586664439790646957968738862067377283872448493832984693245220291328783270167000383351357849423213623016028363245543844914950727220336747052078958610004807868348870208431375592556631677509526983372767076574570586835974022459479729858701399185478489689597185940648308975990658303710216779715130229299843203652840477991592614052340946914225079178921843383175413033374183745509163275558019511645495556758305369756421752181635842545127242497618176918248413881308989564906485840937882163568186925737443831685556156133539641454783981565549408637514219363702988458412682499990732600202120764037485246842620693148762248453496758123976183893370100979763885265352097834065629171901421987227183414760335352572830135427547887911838832803238618045476386350434394212354884440135818924667241287440805061236497980990765797575670987367807085768704273343190952670318178045291634767588337623456988961751189587381028089201098893682397417312151720461912000468443444911310403706421834376843428191635437496606862293955500792528334447120488076759100167818262703498475617010800685507446117532656444161343846512103145386102335638117871222751674140130158666658914300889548244970448813117145032174012353233612294435429939085087176840130469293293430864893982017232052103219906232836231058847844124825289954314093496656814361800385581181665379607214198883220693510504423816741150841936145270096925532415770899605749276443967281675930707591917768901735280786839048804974115848651059851458513635747804051110654404670534957791061285353515183460284906604624941413457809109889700614751825099146682409834915213409476893768264435042813137235867272886468697416792551442139333327797607857881702877120424062604562741495231850154894503389223075621799157612956956508277736320396533230496773149821083994374147766060903718639700137921792885148518211199390058955642767894523483613034895315894733938844431842001989438646953540539280994415541628531275419152095481985701597786642670334550964537265947272271761949292588485301540854318123205743641329332740175094257407103300962601897770963696047321895524494792439326231158247425751421466138311791343463575617634535025468400983256222977737688570371745933538400129625340424739807171980626519696102145861208501079651824209049331120043059843189370002804261700095255903299451793956766362394874966096697707820763331061763771142760613893277497544112597417540614616367433000250365878176540730170201496696969952231083601000868675160411941167682794760895929806063785682881550188561264002196571804173405212474159800823114893425904280910302568377590909110000935381176794850330873430076452316640630979753314033672391716733339436848255100159538942232934752568141435855576160615010749224002292277743952028363864454790528467903575402258150763900894421337155136001591519138547974742521703183081876477027592970829319316469238591865920423401573351817556272282200108641473517113048645295791716189386920148302738919252079218094668048766683497635672723578506453796909391254270719720484745008179739819225117906677433787441493912734620833479369609243140493154759716087736594036415638086069697409201056123745364138468967368561422284759243465040476684082736895350572877225714377159788862943504422548103387192431629805511370831923796520413144577695104380071367625117937466191645880844320492492433167786899858381933523414558348685380661971602342681154463720774135329467521598020330402475542100146531111522842307425617308276421662070637665279067401029309589915179638271510751367891427706155683970735271285124146601866580107582731632851565702570827661259656306444122160329997971737653487250261325070202085959023409884928413501936721997070891126315956379443736850070670436616747129695011387934505569093607758724390329117374923273985563211739151087388405998788902748304102503468324848509041440471642403560719215902484436048363679034529152159693660614915316076082488823398312587983762144229539282710921576580978160814573761430394560684009705573693692608031393253107064954314873816842438151408091550837385202290195162849689362693498349162298209628616275396473284571294144222928181027691559005077104416894857159954769608132845335450623413384004563852147548146964353399431592476047537592655107882563021336693990620110324668811509302469599593976105048387312471606174426912978061371549113555430313717491279547851375208134186069660112933698393727719761021826621962894546723736528543209779944909520114556870658498492085058953437270669668239822656316729967074608959613253195795913294943879372526554635072585996144826419061793136790456492732090452486584970072122564821118748119355045240886428674598301905234019731917606312746143527350451678884423535257081493405571581582212344716352012355288181801832326225101979239622651655944425411898247535007710792346426366748435381245883240824868046748072513706106210136672675538228822226813855703438936393904850528755190691233537546132504915689819622461657412720090876270150949890927738300920021160729303457309563132570145050956602764365263113809821949175232993239649446172915583275328759551924952244224132376503167495863090420917099606324756095177608480610953088629255813683528562526352779702066986814478702850808281602341958139227293554434137026161945352725203867607142867157010881331257032271012481857175340344140823661829061027529784506251005965365991915052174267905032481147949128758991753236101283052695964784378548017195437680359534004139482121661840300646983161962855062566920168130601935947732364602947227110761534674486005585352897829957615519439617197722240473925555600122358402634416793748766113820790838815970200413789409445582009381909921414988694770572571728835103413225082193064497465205783129390165968530128894833894820877809929099210214747640346269756289628282227594350641066710875409699471077826839823475489764166477259972535686175607407360679994039299189732708156110228782012591000270793084988592608364325059644601006198793734641926421578839196218326776461877086800936584120955764458612795761714835565131944935974458602554301928438015267500414980117104042581431057354714760699894141507022423361095665905437640262166376213666586535481811372800911029944225581924244611383260700203409921081657282170805926779737918126449358982212837772901667974926591453784141102058026918958178270657536054821316725088026556046022361778042571859756855736159576008246589444128604091029378446556779137122821660254580132195152342719587481437088598182255760680457620213417184070415314919838376194482930779504983473524762425934962274282995422745393906273995470906087054410108738349639923395561115537877569990741593636412121365475668823059246739342680108239203733958394459159085668162585066136222482671027835764384323900261219060740211122565180585793521145428997268513554881464312040336330914286133283270171207479080702951237982827205853554753628517282518293073686775385066965572535599453109619324362145463814001886974712656379483743359052746898028785695325261931341855697131923842568652693188015377291253561578162754486517846888015764370336674380388461349953917619859034044288433368824602435378345885381058143601996370731667673073353040817149165578458430326231342630636527567202156361726949833854601386787659720137591211311405374394396273807909909521290581697214885767072165480363058053612242947638765988487587685648132298622835305128989999624664007119250128233164719787930658073465497107773275594233693847009284399804148257221522182285545499740921947551470413757412101414681314873407942688465595054672787158008631438492304563609091160344829701380544525455731220004242995394556666926628022347844256952802488398329818614039444578172004603200817858063847144556325339132393945572278674401556270696446495893522582859071320763873513300412854887427875811486310207162292549054526251414795074104918323766729951684717571514235807241069670788779867376861904066222088515674320638416185894259283394904410850618685639477753841526353878282868119009702437078055361086337017968139382716407793350995782436775467454220413566217893605572012451084908373360680656434053072101293831557518095316329803031545746095404044947591949585338263172793036438701397971221282255774446259620273042987213345796100583617517028180352579554056061349847084833907242666062140586583686459773527101390141905580882084096345612259766440242379147275578473671805630967415748305383263837022553134926805741014986476695911818491159945965316706296751354931411101661636470024611248522221890748599289144661611890639690326330965519078777625099787221096927841819657583006435983899033664692587124329399046588979037432392622525405011857849785649837640999389469958805514257888582669793496150791117770245514175329873189728388015126745481647979683027748211581557549018218353752639461151138326646661069061875182216457487721235516333972988089372966324417371486806352026147071965810987985175880729782179300272025301512135565326598155607554362860097596513432028707295842008787215660897728675060316913050639961088376924939590562227631953847278683149680624221413665774645535082585552573473184199168944564873234711292515798473115007243192225819991409766447063725317995178854036794001890511088609058346784363832240347756126265944552874735014108369700155536850878451564059818505182807701416254485127954534778316679722629430228531453577780980634158208196039370126459721188443805939112057183904332671242284366080863574261453439109740958963832452546849303791046376761845538694726795883919450841501130794662013616310906205724852435960726225521254399074195165754889700381695273054945159051114507351435138446578045177021395966981287497048892008404973326472302458541578931114659211593457138521322647665281815867198865036378455887157711505592818122229917276791679824521859442013989591951867027980824904893328127517359862136000243179836196370060042681028151384401719950601770466672654677346466107800708989134399265048568108569007064617810512227566629072397371575636968479597919523303009797334572905435352732172502582889923786586149312948041877964865313418714025544386062804476034065201213169042015864427011430689223310826309380399787318479245738384751641269214798286773839775605144273886514155370568705404802087157243685683616396098943138888214173466835590502182548377538456484697903895774049716223331838216229587046859018131357950093284520795923859904930628115969409719791254974306630873564395604612053143403399724319996416278957121602038541658560773729896957447671331958660812379720669749179475211734828398774579953509568665657740381606332990148707399661629815096190653144358837482238641387514181247716570328334132853017621748919877107452082230116194905768707490206436492711047240095589806533667124949345538763594611691044355203465577340513387338886300844887582792972678869334337707311936101946089320194111058779183415622035259146087458344471655505146867426398961857338434761405836931016133251175194918753144960939823932385052758165764009973412580613805390629829108186036679335731877396700087753449975473315162557593525804939243685276089517149721580650833165566505969195549648595468322478565146981389324848138296553819029512574118904343272664958416085733522691091790686109095516633032943433620498137152257122037676694415185065616429156312194997002581802920734615100266589164336404627178174927679971277792969880076142165296583180308047858024093738524968844102844055504363729348649497332532417378936915138144789114544326169522057105638004640507989739962642819323115413889022533819690546174486248579950553775313594875293457635185259568813818531873131925623611273183460083485007565988776720314312539795587468231097529136482865321545736142223923984170766961602696380837399805561916480959390188192308476369539053579120847236539776675666716478280401564338410830107666298127426492661692606558254228557863314655043229590092175579159681456750919622595708834450860720894265224292612834602127581972592588843371293889833066790036874347926769818093172880913467968695399506678545974174766295873072663854136785038025638414472038125900500243197750878908902588149429588066180903908539809080998631709466655640402108364318381858170482192742734604404623292310795386036823748516421757016785845546689332989052563426535562390036766551772000736954613346306051815695332989760371078563588115056637838074936407760216503498504720654068236779883721471541527752020364287074713309008603820747775906670218938168693708303472296205321275497308330960877288705269514835029095572606748850902129508702877026160705772378365243315698995939550768630356990766857344863871281678453660033617491700716611404682588911246816387948295090633669913214078837757217418765719015749480530509803896338301078680727455123250142493405558768293621090430929953444540886368570436061458627122519438900404736220770204847741351014183973463808548188019719629167661401599999369600264930916218552452664409307776087552048297900292861048625870529537813023881075298161866533552102547491294729117479537966719942113501399286079186854436523618339443015995842516321193827300293437630300280731577617216644920529793015197766139424684428434250348815355768580496996250086117561485027192209420883452658301171939125107440068664652636735729282252642755249933447938156402782383189005411531181867884480893995887152638326340914126125960321845568067719849422377669642011480233561854181915042190561083261375410762812929383854069977796612680543842462289956569873238701069547540305131113986504869485845684691049809372299688926737114975155734009232171037171677889371106660917719594204687541271477550682156313336471386679423085831378603687111787407214065693693164789209834707750025447634828957768973075519880439358838704483312525432498923844697462402536422229900051066959137174517163567606329454075833199800417300837080093522768193311303340318204174691473067165081784922530641431748711374597020564740297178499212592295248454487674697522857423182107038837623979283391649840063363508289984502255528314294084193665518264125738124218242320945876640852461619060314204198502408307047067323746155742366534617817391656116871910077701473548524286089957555672060938216842746926792392049439099909649279546470649189380308364165100618521310272772400336638224836148232982332919638189842687904414072990904103016663000701676954869283114702972778568742040699597570080662629983854177001654774582681811147038186292208272321733219251981710506130024408468026918039274963890311301982208689462920519599877306416471982363118805827664591152390308348415493643613938679105143617638935042570203860503623603312262881014135562732107522910643657149824611578706120861147222052139129950700295721888221088799959685487414438023811666488005874013225214922750071187614641116513900195010663249759704750642153372096663697157601711263822235323403887332543517526441980939583440901761055906214759640723754321134228134635563688092400930971555459698413026036056131288816928519989788495853846248749572154888880565751782497974940589488720549668694244102025700876374693917829438223598533331234789621632030679577218163740008290689486593749611919344924796174577713803488494605082170835455761983150897187926322096427062017498373911848888144012425375102127399349195773627966480488439131318297278590847057603272533866495624349095421633867019867675635582710864881548869594876303144799344108358780698696851413943447114494714468133085304145614661297687517329814253168775761108877725838427496334147538587811000842778080967858041409012296147071771597026070062738266029797062138566057885930053691189913686087058004110848390092604404961479424630938399789219485703035089295070365806060912770492242343047892617956879195818808973009521218832865607660740982874137990870080026977784204470415152189924480688158485879003922177944143348805469236889738361044941830000586233228937724011150342148080258307173710784052269696878094201842300887554294734315915764150668717614721816210552924965109797210745854422304820533769991203181726656968921516681923073871628327866513462524182056101201651998822369191588596611201473453570914457333213060869414066761480680106140081732350893517932918427014743961639352168909954739790628681884285834127442913616464650728480369676918571217375344746554313875374578951253176121006744094636741222917937237174481648231771794821459742590257306373617582776105474948305306703836161230057402369403502335796914152860131400821308478388840506228230436616641291849390921327380647948634078285306710001103568970457641985618805878981653700032127857922182542635568491154277769122098514575084320522984540004012650598496252211235657432458570409145590884350644291530426277354870149661888077011611332390947574692920683070492651214465248663868902321998526652626775917901161571560620036847663261376826308566347903051101990456130817167002548240486493293041968906562595116964293267129674345064705008136537017137865059578067572920679790664021994447979808484412166584267715797684848877388852830442105650040157519909250943241876392971041801823495397175141879312039569701883452036902921936033631961532491217129211465234794022260420136321672122771213062082652113460131744388990911214387487901468554818710638887828519660989682179622514131188218635736675209567030273119887156813195735328179330379417486115176755215334781123075503008410999696593541978115009102950693032430896584876067251824602279881083597382119747644443533294665924585033958544516025991718573735340427429142783626633710905612662568313713176198733090148645417777260207127331281128616150367021121568456094288067821844443307982671008531645446648165038972918689225519720437135221811085957588756469846677606462006497240175725468353619271076299889168397197546934007415876164212654736629950548463746269919928523241332705381308989487839597318758759795825829533522661693863656570806761993954239736315506825510819169773170853484663101730927601355184555881961396564065138248446202608523758393806011909684609372651181189149461623732810290527569286092173943973678703156615572907905954948313702274911481002073729127366315068299107743112188777270004578942599323015388033345792188853606704000213302521615702682575330115791190164800006428139819571190217977036781812553962639728542095754931656301286813948399472149294498208346040280990904210714630183342128900742377906065734278488477421900008579641623265052712950418938223828473532310020005435261637607417530334257744647119920114614394867781616239809805084568770406865641363279013459135579719925584011213337223295607418799140642020922589517121231816706164893879317803417834455736998581008127833653624717451486676872433565874866646839947497962058167116212689330673584915957904372610446088261635619309643544838563839435735140978008804242204657368232335988934694007311512282557994936248943731709549708864432753039468570805594014108529718053424644506196021492508406502524488261189618517465728662732985369436182622878605434623223546803216365241733658599087424374498910892458483100562770263827827192637681936222592962188738227222381599769762141645805228835673602583299465168187364672087881925147855540301535025502507982287119834442693901841187517905363609058367554915171421230209304313357922967201836711474378430242202908521879332352768248546810998693982033569515567049919603847388294682787481458397849469273415346760210704516574878573489449053736115400234922514895271228654173173632703996604479238035524939151636473103044726180609529615420069042467432960281952862939922651576540780351975242254865106444376941151065839875298490352316166255953618801815776718116153525649359590378177642818868365887117933206903767125685468571331880645588545064854367557508987864546767517325506356113498918138058859762299802059124222617764664239139514693530455440459763319498276432155652936415905097426751456900605996306881991496404624005177308442976474478870290224923130998369948710924091068031890383586433989184153372812189993753062152407013718259085263870797238665180634821160990651617292984701799514667693789753793315377487147912173761440563328192538653287293768110699878161940879546458331658844885829106114659731593975094872208682353961209012125740583868513074228012535679873314432953126794624703967484731677722896104042412393553678791323944356219087993299568961539693447506978465914456706448388961456003221960939767331776658049391109421336913734710120293739251628874152221535651118457717389139259128048669800822699499001710597784602842166006522257543073359515607911228237540586318728984960916165125239575030034862134141397904600274444292098410200430604848739756083736133087155552943126373995619881881680719769430376708794120918140820464488848965998218233760319542374466484774182382139062426561516177026253053252265405554121903734753923722744963688487302671109687592534027696162114014975337426695850873301916345036873779693491368950281105866509230057756217006930090854392262167160800440098113997205543964057625422248039546924853123467079409686294363824786119863183200427657396517545670403843370652207503723312085910684938421602179244929040872273478533340542374554409926492999543919165669092234791146196334665291373348747736524449937192828369352564395776671795114533301267961466050984253035863780255563250010872433008442075263723198798220627660182749619681507952057941909004561992266926476936738230313300436338265560928684106294122205916476775029609624208032055532527855802175325610095411102143265405586672452440586367817016535423671838384109887469298682426116180673966492918785049476160663522499102447491295213210488404211880139264770544545833781735153408777792573666867189370884979003205592070026262381414400841631306124107325797568249737482031241932856819575815127471174097196686613262812538620825539830471777025698850709247312406015782222461553859193071621950378201220598411699389263891501447588243508614699138096447346649312618375523443654572164319847156094001488647503732468934616101723825634243829153270166427220718920165620390163930353074050788607527810907784922458212299680560630611423326993200504439446289619095282573779948102904111440630622879387817802372539500233101535267690936239127847365062407149022524728365609446202995205079398976871186322730073659228263962667610564723983175061028181877429606027733086733996111964024126182722439860926658003778954497071350671760750111224113737127685690125949212014396044932116621017505994516426744617311795874358316247105450915004705425793802955768511845704044480057219714659900117641129938472931728818648185729193942335991591984876815705991522330596331773553569023047557677615440197761603590365500047592994312302955949259322542931661610340590416022708584530825327867348754629830118856895371130473379557525607934245892903553286770216714326912767859232503309848072433036622205459317058082186709022568201311721179837438283748858528138275372871593837857749592044175499345882161505690707584065842814853458584588416532136695683322668700745414393547649504147611503269236640305919801173003249332225582077246854387652027393451248700806591930624303850870025346584671802917104086106864251689002385474399365317539188605821768306996110851854205320673413283765689618541635980215642437321251331621161594090789480376312452164016018054767926364576103688205172967574495945665076614059550984436420648232400348734659759160027186120653348077707620464044301220118784602197603333033319460553466401443288336773735631916029555355024825350747403547476376014074816123732606595438527416325505529413963891219263380229959472574226575371474465445896328712586216987389979319847850680029868016836663237904593393978798214159118796396864973059605520623886974304010522519513697041032973881248699386509221832947890986695719342682129305915106354933211390390226696533917428288896630368453051306581252404302124626516270468240002499556543101492187300175233684138174115490013207949903256509690667637711860457175101561644115092256171504302280983312112341771705128393326058938129231185602230416547882914054555190257686627682211338311038159904177726994090925734090620455646198521835606267539948641388202277262026261739532661901131219893811665501386460880451209793683369261556061401026447891970254369369633531971807954182542281522522144890156780708330803381326665610616957010340208720803321895117537719099097105540546434492699274208879710803156569499559088443005458632066483134120241561660729675581287554865402626621873388586050894791955748794456488731463560016854327719168889394374756228307592618888383457193683275336477263506331379943034117876809178738301289539197400326370576494040674883757539347522990352764824937577109365016268034426531398814670254094614027465296344043624741981297229683103025354216233919112161077403495119208094113375937953172880129475359415117508941715406976210643148073235060115918847373220402354882893025142099065878101338203122342076528082279731762374691904813582047058772194908198872642079749287407414091172679892773654366643957724965627614071074934602924306462508539561269111862915177826643021094624755939418931528128376391900460956134624514790492485903844888987865697846951926396699069477212479581819945756844450149422616494510933535618684649628844147766203618948667820949023265373941797654177081848795330057834064532276288942925370789420104672623735117655369271293406195378239355976881725827684661038879664473393418074789276639869096736143561683882796260776993261548834087265126100228464672589902823764645365306089902617817160501674345697956440808771566167744034781269904369568803361676136236300042329469141734773268095143003156993696478274185482377941276706736000291308137258563806177776845384609296734756023807776507942428729567146283895336007306650448152040626315439300628660444642160205802753555765897370692734233268701109116008115921685791560952365372050611861371770015975494302560803728937994935648675980588436389280084482495204551364049095602274413765834772892419514715446944909609428512219211379399437563425270359023242870597715901945172817400205600111337430409943820279914333654067984393856820103680985846364116710951521439973234743508852504723693843332403737228486550966947726021343248324182059015299518670038971348258514954541789582571016169441092617534197521834913216278664157327107583926652323291863094216019051069700742200696285157990019668298550253699226248432736338894683396191436908686379917099378516765934276235305482001978372898222176616596550914336759569854666847746906705251887736742448722294233843570751180896933435238020576030294947781475316591804403977114345345772839666180171344288535300725683858399576468619308485650141200300660925605389981364355686688544701387515057505046731001416124438842409637260124316646778580717400159856595711797549891630513692987695556199645974470725376194994443197331435465928684295720013966606611451030026862237392874480619623643108064806037336817700255528320921987950347231035701544041398399959894939536020294784682760486927010751527217920939105375812644733499883248038406583815381468365108950975441062628829224936572577759481170037509391237053463564164295316396692385899553089545422563884555566872118338883384701467284730536815923242019390607352970777889494089129262508843878869268638115828564984931307801654083336418557744668300597576346140437292461640560190080426356853156378887571443567903458489886568563120077886640972211648587098176173134657132967765190269487683673190018574760196847159376653273174688030825486887312818367876640491467942189894341513676202389716399680511925903854261206646953285657887302212067062957768228388610871076720259853419188558191123561806295513949403382666101374681266989770424212644955822298074895073877232434206392027594764613069090355269948953116635175286448028381959002890078564574728649554500299699283036072077684606294328366559969196439395975150661031526237841900498190240819637273392057557950397993781442284282813777275234745074568381979081728348851158675731597653734691722120316536789715980222703255129451755289700694709887718412930695450605608895736559570800385314331105135101829397842411308083756052772167583502730913266944872456729088149088572936692572484902097711234687241631932326549261168349044675572590428771550401893834116785604587822280776480017105965913188622341109759639767244820405801667661811856896855021477640167832173143044183666669466859024580527870670506856560748669017310021456881810670998695979092347088110725912256622933705434694633708869100769141922895894663491387994401663331364677789289538467192234516684200502074662660014547310968518925458342196823115993358653260704006504609741128026105155215554273125574442927188321151727720594934588217726873498370637245384059134132481592050352428326375380380024535389862786952024128134554261105010992456667782992713779863700873569495687242364775947662853807282106858412305398763617607069296363391988535838500683622510455122725759277381804772761975355044209481937269782411774474452888732605405162277578577385012309047141968173447888160960955248135509850468445013982322521820286549655621361094293606211967933321576328896875558341417912871371629261232788729861221583303411517033847494625282333598348776858651649072978097989499069707955622115273772029057530268794598600966466044277061956063080687421231837548834728968921773291744838592359809590452702361783590767498793620249061483585279712481810441465894981064507260775826056281559610813797301651154465919655505376939448143467288374775849013068856697357653609399787646319698430088696187607443944508938332790066227638189647540618101401627124901412325204833168359684793062132863956534279448226987716826509264455362047674124160085359499257434826147127261426677603083320511565775167602173606254075823802660455209152835042805898793066689592814327604937549787308376547507228086753637672364101864916061861030394392597800866487600812179904756953961077068918975317966319068072080038340128203872566763971711056704227951337810789019937689998827225175837694215497948957221845618846454322134886281555069541463287355150479381802080909283821411911854011465687626170195019696935334475790638644582899348053295428206570917549423304747200163613154619629880556106487147783111215617946807240723048356183570807368234869765560397885375120066332255303528843138520100831916292512739493303445976671548422423792613488532559256789307474090294630548944801823004367848203858850548911488545018979589567159578415631670678595479053109753611841991165971595446841732201411742586750537689425341846000469832945794112991270216024363030218344111185764387759213458297965838754622049435330657017666347976092759211719898234160610330617081742809074953301638935009994242813350130088040213920973107207631753124603467278574611773805803130240172138410028154493814397384909452976092531275579049922091884326732715198798015247036573300432977173592230337229100822275728365490928548584296672538007406996304947018172386295801209318857628035166203315449744208771255299911665722002900564614638236859051570505661079568017154124227221047618913605711450589283183412415115015029293691276462815524089573171248801324190666896901861205329316040357367204844270234739494387805278335011029134608298306086062516702703332320665933363701404762012675564236994965919319717958469416132045114962089569430969001000266455237695335228974727821887400294739416473515884503015969531038738859859208176870846156182651541668338133760698863763294449065293583334857518581522856974127668894550127663340968963113563278598483850301020768829110083831233884511837534593876640756230589128909408506535946361746304607508954246792516035486788598403456746339825926881106922613568543735319155289089136292470957590988743448660675782667451414355241527243962908385473087061754217768761571304501522545097270218851535773527622050640126868612574829906274447963704082921528428214580279846965615608079148772042689023084798669154247377422500195168741854838026876777879881916474674234585141325055250329684201382619287615550115829985037761832675152924669660994346286924415669497580390862345010648981018907088898775807315299165920069471596302305152005985084178888680124090785950252965266578125434962405378196778510016545420758694536440309792933913358356104125239565565534272600395867904837575023168258177881748635683154287375184098749798521226413980988682198895651690824681219225467897232356626360950167516692135648628851170791122458410572431325218250765487087238784775845574379674522114986905555544259843192399622581183959435654326233061721737329238313059697168942821435298393107508057254596111858877865698216572037783458696068391143715710590298039482499530887050652745948456575832486668623331764587568995090103049711708744152615057389626727517136351478219799225896578110787730627818563232659917337636877943278207701969418072959082663150872624002643508090770613481812012885032874236115525316457469090335481760627771347967395510671949565272245413298661166018107411483545904943938202497532744709130147706077994299902963007026798684528634859627230389149822983528481398435104704201832521610508630897562082075532245961812580280598032785015342022010091221616183150291170073771930363213774956869815236996206282269882079595531832652071407856363170786064143576090646086756417628225403998257847731629387949348088864579575070995132966582467974843432542416956532436582050059340226984740190955919359589815295782216711519233616244278070555214943994077751862991957934197690283095588414149726089008975126600663288021176383317070416536448193027868322347337686846893633344389292794015145855736668993525973399978296007266611765848686681340160131189820226167330743433584119999241602032090327553330070001221512070058386476313335844448399705951415647101694038808831292294050999771497199787891383610525771349865684288270168659513391598643057163753965035795016057429913384695405135037991163661527085398912432350765826861668302769748947237161401582710750416204391940521483055720301219658749996006089460893901505181726181112196621140476417059589856446446020249369152905792204861273358050960954949061794939134488098633222074905657253196302175251991895881658653512936461048699728847995477599536804620528256241082888004113162528998050974206072128123656706289747267974819759505756638262131919288801736985741470345837649433039581579725835196241682095001179588349137221083558433830288632057272382229998312518323982859084147596351152649435685528222583329151587848350308586161180626530093084438760130413553004925249737293129629937511468732781233543493859004150380917471023273394028250484795395944763978988530675644335747978710025296646685290144783547621924872548352231186681826857457886728407155087562739337868529809569893120472380426244506029658976992975197248332416938331792539519482665815695826595710148318316052686734969478685583873942744526614273791422838674064457678238053183328176364382024577325057615525286983229941747977166189033473718039112146661225248543690228142984101048329639850759763231758464150455580967165658058734323188931938221528782570386427482018440531037835774200538304054865102122222434684675516180094886532435747562787456345204685152302746209784851322888396806940919106592842842225958391027900267721078453142014775947879804274522737923838330886743416693074703565449404274978730755492838096995322254814246141513131396743425416445628283688428216520172379563187303282315998678134253694264449817801797234334064336824362533953024544680888503893485462381403895403905054440170561748759257756625999987126474143982892478555352681154871720269378589556890233687409815055619972136340454643161215016304678170197760804643801188984593765811640875721595714560029588415485137214850172959247525599588283532473434891702727098404446818738108824427477675145004502048110671209430348576715690261132638411162536709237955892509316164460737516582355701364636561707097755043223229153843264945340018647208115709814686408619512257571605208920758787769238130793807887437543141540975944074551561342510867187348833422341186674257293461459192134288020892155299751480846381778048549212851633505592380457749195855814891655272077066122634486805722399459044415722407799633028600353714798100482437802465028492203846499757513680969353211790206849625782303136861265048874616882544766703545352365374075241087394915338512845683120478329391204564113797228142071954272830217057807165772414401249731291645745167605378551423268735520351833648684301092490869596036503896856894021528971142924728895975117454478570172537253533918834699724577863221145714597147150066911060263817542191513824266687675644673929646296096597937275131432795553121363719076634283858749276054411653019136297343653807310220537400145579051732199247312241607266810545319657275400770110269920509018130852753925514453762016640565468907113411237830845448284199785938646356126533660561168526031529697181469005524031973532803125099657702422013182178192091430449768774319635393991788954130537861182374797999560650458073772280523447817186203898762742426794918894980337839700046982731001584795403616858740500729122740828820848636882250049490722696227704417974437706123946322534803532168954497841049747453399099910361210686212425738595460338961469829538334483563290398428253225024045514439551088510483120589167422516357337022212697688512147374726826932002075423657588948959423904681238281074257275242863637285172156493681175342360195572642006371890591138778879095713346846747799661676415743313740311823411565658418387142518904701383469817460476653252695425434158879015826004093507797010765975137768319760066670661965781849958597598682841199989241508120449004615373770936156275834937180428329558626910266667527424617460177016321113530482258233354201411665560783988565697395284485300906046822514608209417084077411357989042217215707995740231087308013140978166824314142340689981543365949721946262435558063453311012664760470731776977552079417243932049546231887761060950519640890304419192873153215902533799958925065621413126598120538539595419230944415691435845931605781816205012880576027463146229302734565158902038584378708934788261471181227112928845903574868621218643381025130717151861101280540751193184885634620813191754955638555838643615588203583980739382219551536412792663239172994375612673684804630978633706573216043035458933436432778764307337020946082148725061594092119665146521984400375338740920682718228628450261473321276593653711580216220751309812710732325210163331406342055566546149321806003979550142727255338617636051377282088359554758128261276487067626087772327277252852894951037161765735994411111967791700806161832152248801490275857472356481773896974696541988089305899595131571339526627501637563826641182409530589837173436273840211848228328407714028374105939711290941361036771348672615946432684128519000005204302264113250518128221650136325559899262783143350679172826856530165424392481109447033762714477087686242231411505347436772064158616054982900958620645608257612860276682203474154067762122782402498803805169827278390247764265020478963478149655301048074622424221176154672294674781809284184695533137416593762271263635096518722159979277083864701550439199561490674118104715222451905411757911306316356266555786697201544078446516365297902618243929862787660653988378601478417868400846154734363173456844336388107469374078126277740231659625592228649426725974711371753956212727389146167961781076099050327008279069761935715249781462674579508866618198612585463271786189604286317344364931051471935497628505482584933408139945125857025847079176263534328057537825805156341488638917685890297685447838765478360407768429117890965014985574643286567439609328043289279590528947436278274735409200485428140920252485434275333429556558434876637198287827207431831935719045692748491260651171760781877545908663691890348392385355043714199592496732893335885464218434972181360102026101866612200490267651874642682615216586972810967011589195023933516730911909454681810338321271644262482544209024800312127470248604136881996475442657966531365278015580853386611194187746528656388773786288065162302044639507139207721136606229886260672670926863075564144225266083709294207381238882316049325616665440916417536320290113533261861476380920431024502344180848843130448336680140978522181888218948928703742159464512533239174291508990087720623509556031269064968132183011087024350645590096517378704577227423976142557651890677905751999567943225757479434657171093190460167114527902852791314107995009858935079127296441332839409025976279033480702547310645328370551658698407499592918750827474751674326588262372035917276248518871292302183965947283212644841626655516335506861778279011037702523228481297480928786677437212304010228935408916307580660511203550103671331623824534490502437285241728908741465809777004698582967497446330430315192594807352298019625347590796138827758701739734153132335229713920699179104491103376659675277607009137919312549242552245668066559353565009746337876272859288253191161202203569499567359385586051125178763758951963166450129621382739260286903701318097515543891131261024075202792621987652512148083736149393887797351874548534886921178921753906861193315521089493519685106086718951418826942617751147629352210529644993922121073348829959804683812547679824631511584529524477639219220874004351772607953008042482785325372174279786486422132752506892844234393978407058485580376126213254977197885219510483402135769900817019857964522004227614600614055401359122548867718372686655714839525333978597064786536365099827287828471755422233456687062874733299733178861906095647567084884131896311305935160734909211055139160767496702068359460956820433331263277641927556047556361173151376339504257903137291324587812760728556394820205179479622817393006600904055566110342854337555193210045420295905938101917010468921671417639968438659917646925220079336480897608412217358379716595817064803112990159823869751273602635756036741644696826559475853111142020838227132317381220049541402984305927197561342069402130056823631612117549488165833064249307875943186913580540628925041558471448114829485199871320708438297971201322514768228428733530674474939009434123412025895774818696922523709720132607907068551292405909088295442732300338789348608582495930775570926716420480548830521710412070470061893909149087357282124308911210833502510922681301788006674704819261629522122269735539546670250184135477564069984125190860850451406247019644012998414541814769485451621077159053926365558825100072693116106497509742093435984787878655714221940444509881100035863891859702766661189584024995123334968127562519295605330108587464795359086715360961178017439926377100649983957020402446908206362237187607337757400213533133431238745859870446040797384690573914510126544490088014433019054765435670411953019978401657058523860721041157013079039629473773835138779698819425668589486172575688975337242820213012660241603353047758625456243428819048942077257712640469072963431292236103252895789653375591122657777318773408050598021198876929087479352946432136007003210628082764342925178604225035651046110985824376638748858288006519797898943503913990615947929722269807610311573321637390104512341640795546010714544552538410409450316558601039739454830230319245465518400228113994227897864113188128030629038757905307991636827171521486883659932394528656954040704413693433033041587694860878922974845707741036959042814314462452346637803961146044075137118432292631001568547487447318429195391599176917878551768246853883161050581340211409031661043300563771591203139842220158136578998246040615616732967058305445617297090325047889738699426545594058593705495912995415853470693658437582781069350073067253703719876764709303630699181050132908949409886428905986925203081652672544405394033166994891264904632777310469800106522494580718344304886979677870086518262016439631428435293593594065481786414061108886607551526032017641296656951087671141437349909850126062732912080308899487895601444250063088768408133063743572491436736827009825919532697430486053039758666984616486312945383318721188528180954545694105244881793173521711730652642158698338280359573898161803497999585621727911900025123176742099282351787161455778571330599608294809750542977813320279845465261523292479862828738114733667518650920868824900698795693593913403763200878726852380776080088503136165745502015325326711558350931532791392100727893732433245361538242789213746443058360064656711174597201707108807130620741913942300476325920976423677260382658578546516022192068456596721963722431162198888516866548429079271413654051215632988532916615058161446732918698771889147065924315022843319990367305911154200227335817063549644792083387747550395990411948521398798046691019226915157435224270088694038055961465061156154993826829456744001514322450584297356156630471379028738842806897224948385169432814649141826140762048673945507591490448014862745278504186534983202208823797116527608773775841609655439852471619293067065600540337032553330678239443277064341883605625214538748039969555610729220436557238776641729433708119718231686898036611464547404402006853166299783126894393805165233729341053766760856305622190215086582322304540943354064955427874294461988003310557502516533016251395579749286365187789678439830830844792617781374421477001151870758140492075956590941881837969240727823978849908147276557334976065635949046210811896940093676386029523068515712637432491187254058148707528506367513689158638713547708330012510137743701261225742341577196666071513538095717088595103489205956856925245050938302338092043016364288485606609624036124483376746659940316487031008762656076520151435483104746951297327930136415784556837827605337643729844928168244078423489309361858227528180534591296664582240690470323043867441251638898603398755430562909002043628996683918899841704576758312233886446764557174629617208741664160202779372554559843766120124479237570519029584004816910107866526296521552672992925590325747549797519158527062583700639304362880403303278139649627002606788246417509243335362579154606109403600129043718048939287147257897085219639618062685923925249547685424431868446225171215450772013640275826517860673295175301188711609746951130070384645868777288662453880015225956259868075072874223330258062599241751899586383748200218327254651493308243685915365612629858914254149983001781134067923955123139875402054634927201497234895515615737216829602065026388656289386105042232704045599236793268667483349441928114247553537706988401982831491959552650403920946026056336880591721086936451194688944303788897648815495202964073964114920992022688832841736790237159166885860345887244133819351550565924383122460866855776814535499207982336592725859731788555383424951850610830682538785783483966342928048588639719108423820312040759346612858080735967140149524824478899694393696977936422842599772808400777837235307154930040140115540095510108320875231570126997778804110384049942313706797443017448498670205317087359137339721777606601269768134863446826975729156949967059984615111715718088109821170301858588398355957521110011115417991495426963785011993129774066466575082299470851625535591691788545668019079527351815481205523008162220119159522950757927918759108626101316870716263475365175314579603639981738818078327762891567959745550679039275542809281278517766266896413826598524732391915436138967176400254873366725160985123217650138465298115186161948615066007344502103465128549114115630162165586684288605461217741740994541983749596606306206886072472671017683832596557344258932896200996845289193966469066207685131728606694203985192998325661357055093141625493434740339078427289043631115880003752636608568873874358865731952645889445165389365038183081225392892352499282599600527240028982474447113396176444019714100305112508366214217052866755339252613555069462545193856283777320782917749095682679795299996415512386926945742772686335365966890108701765856204410798568114316706022411239944673873582113494086503894934004421261651549449261650833437577375605478318811486959780601240047273412838918346294682879494277276938129043950084954340498376013784504678437649210214947522069891854191804347797193077890979604108767267941541199162837104325829001365033770690863861463902727186538897713010840616081335801861878141605492992904345100144784207843389921765443332061977122649573032685673400495636286950385246790436661593381322667141518338358579042792207277647667709875368598075218324806339311292621734444243221975736206115387110456093404115267814095124882905143864630181287207228348254888080094688540242746308032720377088952523860743997185125350943624322166318493036515346265203657405474003783065995924335943262102439474574176701307364511413365885226864855424278329379381786145563882040372125275415459783466467207410355948065782870316230278493056026436290488475338517770143834325073247591127085179493480926462648967070720644502942204554714521123325913345116240057592830581765459317147000466509486363564585776653171528700541208421730443857077531781889037526309242422851890715793191657226398328634870475336178245470867199269902224421780886635736967927239313501836031625566685454818700504818219291119997453155880816061365090567349570819140865488542033369811092827438495944229263282867551095178417689004285749345231245597724645976433652411891507463716443263104173919654031249909719423705377039021844827208074361426401082856211929247279818589922186913357800758415717809925291179400532737749513076545391183938883066389421342770178332470061140798321402331200245200174521041564257398214641357853646472946586579227209179194277737418494265154197885681869191568925607117176680830966209856833400791249784536741284036598521723778488352642447192816318909161784731044114847248947137749494935149095423398663930694909849132585855675246051228658121309436381707438885832093280051045207444567045424775436808277308377428259071283780400756829960888484957719249764490184302784922212647936455163649941870145457815312323398205639254536961317322141594840172456500322331943922651962878370540143655180089843114689065618941985934244237984692153928336431171137125691986788611147272279750715961027545859481028971422462800776677557917438930963904688799809476363873090504726291432849821913998096471305226994580215356122871598447649044331979189488367400670463305695841440769191573560261918084242303639715322664174708803075205285180842966542954783580842934618209246791362573296674335929011818708630409711405158280148104775511458439467228469653969516064173377683662910696015354324651232965624818705783036030347847619224710268028039050198800955856953844576005933301057996435069705858042613186149744805508585510184416366424874516647834697194647501575674714110078076748068208872054333836423504816671934022769757257263654873409897519922812146757471014822988124517528275982445048268994473981494926692893582601100763268160634749564613639627109850507417184550591383332881897835813190192532729829310402261432450740648345244524583556345258149847170869837032072152769220077790076263065353974628616819241114720061013656673527023521975634640824422382677494238540290650614210047467042349422233879899542508757479150923173937796822502202457339370603665916143484861190384869743909839851271738226246296830444668754753459373066826718602099268091092367132247802904310524920514963077282228534672361723092862009120430072362227774601327392642070930399970877580781891153902653943517569780978098448028117666493108703592638531889593643264793969905058524293677475469022838152056262525327015330747154667537753062574854421490347869772216806217656159051884745047810521410286855859212888221566601621081116859794119974215754218076473879021376970518657383405781588518133358423560715263490894090144967747099270656482176767099004501137424552971884350937958282661417702597572148398410042113881477415993680669810026010188007116017394680860665817712452623478382196143800057331195725438399044064718298416468276570086627857412902515548504774736593405694292100407606154127474304474940843512526942327857160732475634297708104031186842836396339217925026844737363479738123598346180418051469548606421016260335552795489841439673012845533071001544313881332807796445915856274760828000662817583501235399234263175457063196028958407495545571163262570010200567218111226317570599950015693597802971198993684839939100464669689814181596905996852717019052502914367906579302879218765036165626534509837848129863948015719670413825721402846643361518797201317246524465395029360809206649642121181812480434487229553176303107612377434929794681669755132919351748989953901116115166984366828271998156022981797127843149488412383181902077388370836248912089167202213225136994385296372429478667362685284715333858581147212953400533484340440677625760781371186146625670687935505840543711916067944201520906586789628399040563418465410384070599929734265950272918142599719302244674692422426598055244639342356976533619405611560557329962733005733997627225767635843139012427215465825741619515636096599840475877054857317059086579296241454801457715719903458693197385463002781353353362958941201263989189730072969403457182121518210417352402639650057206953670177067434534154864974439434481722890390495193074321922934098989417529944408706460017511277106577023412186009727182499820739601842223038590726526603775868068676071044210463807918731646587834615540749972844824237385087417154894674129405486877131198242916472469280081716322399685593444497477784959959473589345889712782485311083044282946226647225917154833425690709367922100037733222912810941922391493069990094749485136567715996348860221356671805156297160154438920795158992383743859004242327809504950430166975574102631123072151370039569797272657485052719331875650679227227795704463400234577201876814127440520688380042597522585654422089444551929125232824118998718558752202834168567589355952665076641477693168223990734490930348397421376004064196486085061320521705579308584230476767682654021693014657391312410127116115502617397594663140588050986551947608373142259088400198543331110145796720402461722945320681332532739987689264121271037162974577876180995126804701648324616075090430453659115456253694186447353098339600443168573521084557195834115951768214348846134163229765323070907103174518102737095796374779506288256573183220051924133817851995435208242162850728798318844172637701853478455821205934231737665746076428323915563713387882459482396334516831571263273776090862421217357205757198386236837338040841793485207673285364771729077934474636118734167617535534012234542878047302063904550512013633024489225920158647001341268861804679843535885815778468128853478730091277788222212947698643852629038752081914602938260783642738048213150376528540935065373455199081051632816584535921480358724380925126365230023516819476749199810754818147269043286946203968496157550789075127738284412800068143480986691181677199880898611211637953833420796358401224270483810460169958522868698380198276045981249062211923008746270280857372555086173923411060293927071234855849337224051014325382900965522789900249072144087482965284932067713225528612700893636437646709164890472050963927080259520770481514588480371451831371283498757218032992698133649131358854100963181665743372067758380927618621695424477757725471969920230809543932865339892416083014749506819006803827511608477978976065308929672324925199370667911742912868006716714870359557092340755749908589937241610196094017096972959558089447034322508260520869411026957090911909576343911877331001507023183916592807669011679292481351324003409653357544127297853362303786154727377705287734920396375412296718131305013102452983150752859124074357313943415350836347495500026145791744299138843367316060491911292690160729111629732953566321782676141110193103915500706695936232131019455612935306582873494763664618838416344813528549990355878290439668790465838813790879849585401156832916384345100967601263965192808920594646575076737018547816666076325757039366024705234270725958161686905747011559312610183544326274130891533276703827019373601190363409996181609345542771965922503262275289865518770869088331608376163386491513004838167603395724371121323048121313955483558146502587143537526885073221319939255463973548219779152405315568346300799680306595531788100713135178285590262801785888069897800157421916042318106054677320982518996359751567205419421772352700710092620964567079006718615586019797565572775737358687568136793968768599769660105343524231692582314581505151435026149630292105639362321352065578606669203059664474018234574407042440069359979985912934606123574628307554729019879283970508015665412164813491557072142659965319924427427772706528027690643196835413889454487504987776985634252305574477513273902771505657573503094158905777280608761818901300664342034470009546922013117208761525577340100898550478580513504617772951020696094423848460535903908256937619958882295195749936335012526657421262715776514428618840434412634295355538018823612475925931835631093097418989188853625629431242591669619104761080686177468470892246360297533276435732734323477748515252517250342423605499818032907435868628870235628999594990829994703547742055541723812748314513814227030252089714810818489362147091370611627850286432751604583996153803295489416860929921867809059960055737212698208037373660460480588635727961082502170613594257062601148504853464325782908122734724589903393104125593766546745446863745870756181734527425980963950445467250032330047607220224090524254357623610520566500570581152731193726180178368340438684310033111006273256036287186903547141783208728685190689229614148660960461156160676379144227030435774888977134878861883504624997874846407777193916219641678400713167079423227548209483208241112911756585276748938498996696804327946076015354470927416124568598197906930256485523545685504870618622298922334276222652394098897494518744643351834064595925714583906482803585553684955985158196299126740456508498040379528551597909673861225419566016052658512464081554813240169120354928203556313744170563468597840162601517729745641666864542140772347120921428203266949097727690241552641199888706948323732587931101239548230660938533972251670621167034997691077701936455667767548984047817617731511790078831101229985158067829453460589341091474300581914333139056256635625712770504797924575118912383576098202596263240654687451579316410688353255694638334042542672470889564800324358780138216615702066694471806079474732161584265560993449742571496541233211030326858554287490076540945345733360485420522817271614101821345265364448972319976819371301948348137496557936651648889201794984361033075235613010066313180747160042516270890713863108502743092434094238428431661272911805466575955709758248753267342537654405757567576921412860664276008735237109368550588326328755500407719445267564919449207067321738035265616336613377549344339674892350700297085119126869439221822710944031788509977980742004642366777621182059133703772712043172437305051113510606577850877042405299820788425886105494603649135892283510352402865139063913896081043619814634738415031879864644397732520196051076954738042620644020563696261366926979051960520635323635023641376082699324438802314370342319686915529538849977944120090639141411033789485726465026305963170947493654580905818368652053106100494851412836678219817790702722227569192683382873946987328474373057204143512519586275900322058167709774191277800618964097739607166919203253586610388086957835145236672626482137172574282738398241868858535012453482791624510829335858191432763357318235997123958833696569209762523633374146355900703907553573843193345758749874894968180476524426358156026298209732715153858979566283108501488991293470096026816491694933312446331119685180713788224223795082452203084318745595895419308358417921036046017200531082886639030183788548879240632089540161350368931966927582825326684686851278644523131717909468771334160340948996485743361434887909901402761507691686410830093832251613283403868920139583251005313771366232621807560697060798169993974108424177307485870071033586467953290164115288885992591205725956021969119254746590057568655821710021709635061635278375454930960379559634138875143613938959737504694205093224696502849513140405116137142448761100713080545341112578056299942944704094145413333348312425628760371280038341196815236286756149634676063358566393638320012646436745035738932533941912000726138887574909045470330391066668980239904601599695112346262068686535009882800252995540683507037359543461997225845728728633285979268059662042615527540741015160534687098836837439535255741283609027000541286900399486260919564594214739832842826447543073971253285339086148506755972515135783260196276122912084336391240577804624900146273802833705947626792111004569556532166706651236371048788186204573704798386676937790918374750963979752659721666366693379703846640914456096517135147326179431694943101163546034974406430812003398488449707811576185334219925805409535223657147996162959853886315190931526555341959960722248821040535242199845190283216838502398209375716834457893470388898223042527560960559708474464089633914205748967311139640827657945993793333447333653116390459458852437968826676673666087522499736707116312030755802156735788226446936426716338746835757526828264683726113729721940541684376266508972459281105845218403070751703096919386706110309996249800144695004511778396754513361275380127590215507410156819549550493491319245158494641819982045926983824664853696325992269480432162648030470711200907508566714431276057416905489826182060446662012330827323269437313613873620873861249513694110214161318283864611807504879821900791242724124414053304061498836676681352244427664010716857451435118199922211086187262104249345278349864986673182964549927843296242482682123256177752043236120095536877908129587806455030439420156967258368359919526927128825834051461114971736190721389896213321210065879273407708520951829642668057438769599451080966464530744836304357752307954536009791383556659112451437601792692768250862721477576629392830689390292614152897146108889836492211090734272216096682123395906243834823848030881420342511997818959164390719308549368652003141533622114703602184359426733688297126114708792433005496319274888745193000625845783452623416038887654286208434641498603147619881547798425061868860620815482245164432819413880669297902985660651185423049350647480851610841666391817104169516350655932780196602757647029058096214609442225449864113421031502599567427360776076193069876687275123714109058383607821960743103887104057541688684307245714594795145092629631685701784361919441993635334269691295059537623489655215503373720066492539223456223123706001484539122117689534960316795178795409186020035483369403371515769734057969233598898030097783552975792573944744593400553785359975017848780934118988686690810600115955383059772290159131557818902841564565171980483430595640564400261618818539262741051034305832742799840922043191009655162896197341418492248065577745477819689639253134080799740018586433446821499301470507172634301348494769496025117560689078382651380683959497618335297808931101816617809492417068806152557000072898257055551587381018504810564351708127788373047384114447786536718592983698738938687459196692761451430686429088027797743959669978801434785460273041323067760273209373521679062056300627389564876032157850063555964584358548726202946702743491780960160049734575348871001834039069684440730969043179384623410079573896052550529205540721032099523570268315165690418036216293144332512794639011543008863104511863074051017280329910166441835901486863570337276646626235330040023767326681702277740848309718905336848197032403216284710707123172124036745741218665790019440628158886163473272802595463483622428500528903367200912354207924807718781419661600280565702967671313803027201701208195116018505888462914563675999319536453402600644830833955919841631015933995535987117241976794709219200497693607838722218639194838307814113756657211912826876118419545201623470142355062586861311198810027153292680232026402319981717025955309902012605452113480708403159779947908949374383969257394590539881857704796669364020113855369042158322124187083117140964240192407122373768249989807417934407029986065372211991696503440062008392234689595909878543284666297102062534075891371513763377385437036140048636355958352001286062745496756504786843118010711408566104071604838198747014764158894058599229086256964890407024913997712800190621060275817961746587878455411948437756561322749592372011728596352391870026944037409217307046676732160685820503316417658225071258357674274280557706604585302214653332916912815194180311598127956807808113469925425849926748589900159118698118949709768437093072909437194447274981130853753748886007477889851000670123833514005715693787394918488412177782277564144122795007721443351309258852449597437162296470829871663393596616872865355272080684607978795691627655682734111974234355571787065674465580377807688154221379991830160933016534766075567377074049727787621893717360014770253020469104486216054946023401593267711580320324157949043583756611036451610400912903103854661665160707072422489461076260406418052414505250292811462041041728865042666048050541498212880357484112046418702908766750541481844123543570144045247778396085349970529113076650948507027205392226316135809136420088125720612192676010679023888715124463455971827274823834734494973704042669053485818603145182386920718709172860542442877285545088270951823493823340183386745477945074153829161843379913070756474135047616044985600791725805160893299824363679628393408178245542953422047395549640771678112247915953467451934952798099006634733665578499782756524565473511443700225975262969392676543530936678710577968817976923991915269271835159665946114896012356148086939561369799484955547488393275651622323751497705161160923363371936529891766921262103726523926630453472030089382006413204868241743566223341039364715343003887193712253358602018051882192197442399503947892987498887515059118093204742525006264337648815016778399055187688424995582274081255235419466274950279174640509927672948125331816968126124413315494728046978124028316523549902036690762275916009981685857128336301748363583464060673452424937196014894419261834762958916329532819095329813156922198756886356229759131872988279341442551219214409347538938597345742884693918651134563853648553840035738119883689365333725787049534682320655734186110988596338315299545500933992317419466837409766387236895545551451428758977931849477865694807146702679314386053000374415462566897614682646088520439750914942785374880108066745706397313984583120981312732651478332083727334018800019362602979094465642034008770565476870062289070102374760815000454327806428856432601603703700692294354252823553122809022205546228905664288885519006332557533808964102305140256702893701119370022735049398772858789535869717839255570377407647253514780783434855997981097574614803249279073522584006418178797315102090857310702955028458035688984833575654850845221706933332183023400416831906016265413075789425301637125594819452553812537927501566407927089903662434077802853120837040147064462853972619428341745543675515313714207212515528139205817979168446440357655262881438098011071774493416708145089948346647468764851932017317242207938730218280925270590626283959930697856499120098548686040754346132180860224880938116753982150177987886525832662480662387864443496422186078758141697428590357241066024925419611036288955365763341649247131280487296855772596912162074034769430645113525036523785619412120496279889630296223498730762165507622779477715735171587632707507669715363072191980525387191089848939637791143612123034462354081376206573210804898958279481306658475391472249894002266308815096374695176539538420632477715640442245203564563335675138237672684413793311424634555301965369433686961015040951658807854986853430331248102669357332703951386577421747508325332677461151465922130066427786611018634763721916273690601753691124018830026162288384487274525706377889937483523546041197121505457809024126895708565712950871130296140282995931630984858552209253738586728453134277435699600584069137906762330992771365540903407800158289538243269747833309736776236961211141153173076445137793921962447404395341804260953914618902738079504035308623873095398029932777213853047715496272492757479687196189185333822687648913006362808774310892654660260374268349502255389437867607068123861802704271099352590160097935441275348874613134177475523888131302328800422593667069737506658665417581060455808619785946441233219293370935564350257085940284505819761062693508057763066866694124033272576063174702362514145419305132726833149116693382040113226334896980736516972502326783520418804170961113185145973075988388448757201430060814259557531376557848527742883611325691534285513429003258007799964126437337007120492894217786050462474843990272972403103200222031702361995253760650581601903165736047400586982391736289402266565836378962512885731443328312554981511880364746095093975130031455228700537915186358233056397062909742115621268933748182696155172218366625338529957024314222697865410567191749968305000406804705938195388386942730972102266569076769791310434504871996485834366829815546111118932234541605944017785645800514374843263351219842476893257783442818633444952370284680517997396648029399666412873655125367125887957833649135611618460575683686934678952233732554742523870991617121844432886886067032877062927171453358283353535735232779756951308142426276012430324694815689828128578302502916321688672395865350238886117684884918111209882677635484521196277311283024581305586825286166188416607509629319130475663155483681524518719743753699091302539367758742142998952026128309483322601064126333432037153994583746043208172043112982768455187003719117113273050094900691227866605987362276825636595725707546461759340298426723734220477586651567685611943515883883810505589621453686817823969984323801033487702097509173140768040999885963779685351161845168289672943074574677612556095829300206126335450184827423033819905821247344357439939885242876809755932290601873700965256582538499650254053645962049570605686525797042568779921984880322380457516817987257811264104255457077336677938134787369325844455143536947110625855267489652382913822413193788435397214334826607290843968635535876248987500869751906502275749724660292343483672521948140912319581559689502596249227925861746698775311513239095078149181708972444121052804377714544253008327832511524709797411222689093181128717483552193869243051739854516563141896193454974345330917619219573175311569337359736390276347439579259067532827914617694928361712144796573365167923721123822311550678910770658813448835103179394513690185720748396766516956744355582199741902767777138433689874058309814876051394191945073755026429631147544758006426553969587524014213599504810762540295005435561925383334941514487443887107735923654948835240668080355455748936417835435182062562453087037915833365656982159137003707889331335531845905450702335486208565527075467765284736536203416904184193765406248423961599289831456263796642063863098078167343414547917741487091630791144208647860402345530941903454488175526043617150392566327908156573076939211080820247187166853639340407709754618881123726471048027326466834652372655199683871174613129839017797104638313413361997919437579938432413161101929326684715229139849237565153096700063214254410704947375371802908263401277031068751833895588311194095251276900800526974838487928635681225627988694947802243935672386870558176818797326543897519267655203935939240345499274787159926080505330814482406792055832769575428076270674609844422650264880584502218517671290300089269285809977283525632502076572376290296552050928524250520520784848036837005844996104453855925330965452081499945762217713196862804738891122243316669999752575163989785048748731181797906077172857867137782933573244873839814809543956019384556561856965419516361000299238909187494579131018999500655373491337977402886193640121596614246063199818420023629865044382022689930567944459065201197341262440961875034682148247444628102863427692990652978215295461435363383131278900287390712072315177266785004747314289453170142637567583978043661726357902569650209477709117189135787127093627983486170797742062963088483353893370075384510083588814891748194744172347546781743565814815664753218860303321004307437583537556631785804567776679225915310302360005284920376945340723102034466118107333973213198632214525891166771531343816907791852010562736150851200626684958726258466777892394507835056325111835755138551203652573393175997853816790288887284617447016536239169478070090014008968409544744006118339619232114829939493458733429683425283767738777572281601993344189021591692494698211175790341050840703010916784720447387735134159007349516662510345907221300124999906375936980030253274799599500323780661306653153251119919800742543051260973632706159866995327813558511396823835793458976353832748795721609616249864266486784807499645525306459969710778887114943021837144745126857085222900045068891822638245137261504040958784670947115910195848351312533412760174850943993107181532300996946110791201458867639646983715273552410849327398231827307678669520906611425051710615187619929085205257499157915133097981784800219566404567223863936735079201431170467369750069244642058328040444361155734267543444616243368052838504110472289106249918570839043923414313064193200836846957235197463871819857466886068719639387088165822896086401410100281885012107204179526094767017757661491341126228350530060028396724406898030169730765089408650800601254128042332158518035558931622131066080236421756208829547534061623643911409516839421542313692215807099663532748184310267571233756486905092291877913597155221645997581419124745639086676308462822229447479301510863903498737929098821355721178111512779927798362315019991349558086504081601373440547587309136184787909301476971328244338970511136734561171815296945995807637598834543672125033298280711460507745221510389088202966982974757404352193725930403146315943852517645287761713129798503016031968231765560991693369708062348924034521275905188501700740613647937543893940799816010109096315705822160775841954112986377492224882924350842404690498244897304421610658453201792752784013939417700061765571639040930796431020306040773118468292679632047491929071293297181193095667995567738172310149673503285808927848187746847629716514138001564819770561836564027664196305413054222062517397102673867666882554037140995916181593684960776057805417374321525816102823732320826506963780193514672889697054992812761835410380930178289026511150590714312215502510596073143582004428846397624060063484815423089155007571436904344303473725996135171531528973277476373223034836080767090832473453232708825700272222804018647365348306091921226924895735514565543946713509217899060757520488454868784402014878625628707639104772681202309510473703183148958653751754221727737016160233164274796631302596257814914664218375540259945523424545467629473974089473139783972543163967795799237052756256223644855991374639848189819202227383694735003343613919326156861751070481113589765131627589756063234586047858927181280321552448770656872259384578279791424758794770003538851786178769834032715322596865024691224583874365064601859420247289075228820687380405357218916182084840442719415942682360661840353819703216914696306317032062161004555216268759509634834971609420197233017782995981478100852223385273933669583919381675603580163268391814111222231123757587987725814937711400195218484547178742931354952975464851205880523149286354186647408466522830166637812942806354731797014937622631278008160201394626057575783929470724400497622389690241019583251469264414180493025034286602699675687400929013277866661553292468522359531407616346112864457085612193588816581968740902284595959331206576479836147422252351827204360160132743750397344557673407996107225839663888484823591839995848641749859571596576597325913836942865395435698979829923630185682655777430278838864225986162565262851139048548305339712196525935890813084469145072488648259698493167313478906351559543074702360677974436079570153640721277551950062866675469485555285839270376050945996188132461061774849233724720042428045774241828884493413450757821999286046416740571395398626825977402452624257598549425073879773299306852839164916909709521628413291032209717557078134915188984158503352429540420516918207381851671307338790776582950419277909041924699734614790189858500308730165485771823539636724050615553150210241341488496505391481504295549031718324748612575742998376864457371188206818203560995364427916338050681295027152243069116602033418343945216966120800359886692329336798354712687134587663284009681030006518715491539404422950928662070817190216224104920621142156268885803832263456098920402914994485613861755442076089701641749618274892622983639511368627046384956738262515422514203509795965851439373130068283977814303917517659791470040707681076568604090090859025665652129034360437433315021240944427068783639670520857271362653734223562561579945271392593747894864731723710403674272582978904024163651811488532238250218798410251499337244835298112106263854818025962882372562810792428433433223512160335476318018630941767342221641338846660075505851395644994412187253419695261599290241145864094710532269858143053326382318423291719468762486058823785748432272725820803319844794492276120802288978287978855629539067230422752915608894933850936632511085708217338669755657516579564946243746451988342902888881818556134113282070889968759644988374436045908054149355940237497654743261129441517118684946434915917195015136107724941146564821551770561543075672486184920506768292112987238067130683028735138746800148334666847428636419541946411843454401267679965255295174437725178001094102430800697914520757435079926268670523679903386054023653222528363690143536875812865665785326323550999807067960570228587056348070269671150690245299173920431656444281134278662612419190030895319107220631013607501388129719904607715743703235335057891863423198079114928294484344986017581824928037054291782947518465069763293362071312381391782510147102414071812416980891753085298733526821248248655000187509212495945319574151234472661674322959285862971702722353572418410049612159422900718832100753896634474255078193789629850886205645328639272541473742504263513230764683957080221976981778458415713864074634262557258504337851294993255723952816543778141490722549474548528117736095216460269361993647765353049824553331386392483566387561624322395050882379997540540459947385315490496318847463894503887647363288858323943046190834437588444543062379478053645857709388180141810639183023887740586979601760081807100780875643209877558410192706589625925409758944049417649679941442081520132312085621667401069541683438244553126323104514553152450364574414797881058532490155260334836539987483856354203475464202838473832527635190822803496356738783649961273294651637767630556090870788580749790886793812725066282332739792038818838587928043109690788515645189085604938683434597295606328224071085941331133070409351797321429387777897162726549532192014118642885514686210596091868265003122453115616633314700440963958635233767706960973517513001971379550446664925614554864282657367112539792742154325115786213533547853038511233137941911536448118589701447450000815110583515876857645671618676313469951820776940757178514509285624752249700313140640379665160613367070783141229001927613533369673646066226259711022211860872798748145341440253872941255526514315401421690544724977568018135938216341223435245121148469320123994774738814827038181619460584157138485470007781771644571222483721258232595213415765244618936281508648751059405206259621396238682343114865609495950113630120282884398806163395102830587739504192522208959194517837548298467725934876744037844425490353843627731760995396772331762158947104091792693387851363002513936175291530728829313075530545272960113822575453499080021571737842802712972524566023328277848502980450272717740562276179028633266514481418004313047066673309700977459815493109863056972815048549881688445262458472405239107800264473998874274988505337690366615983201556647941167585858662688507147969610907229640105340435769543553027764656294673311252583561662434647674030831601962294338072421721821264585984432307513841477471797437972222337703469899826142171928498524393849339626313887714556904300506125173724328814440303157596938126120389761107653028200363543198866005145573089102874847825193094544273179003604647135106843270873236690858772445032251317854864737745607138392226820929408923525590337608332381005776072332021193096266242886493128299004286683599241582808578508882695662396141425331194387940942348807063182334376156238187038307154869140338226746154710275118493409182973232761828124141013173090122558702627684980946035173369768381368386776242781558616252532437402551167372586421958515484378534222726483169291197032260646555314690534807516347246712865064625519409155843664410641138124259660179971580059763628869604651322407620829129917835175710741362641182411314533952218822425560643728061026023659114369851850025510421888164984599135125486422583318531901204054434975057617726694344106069864743513661704423272331554911662552123226401794647768697127334070587234582752106940026911961649516006985562055494617979406566986795140474774016061813940558293348003836628930706578367457862948795956677402653478366868541480596468765123816981719839070446727190293020769618477222941104818288942614979822628587742403094667916039850992508329789276522907209804904786495361019245010016025365746832781817507041733888220629597827143193135695776044419850149451625946384054457949454481608546803317723213428055017941571178617704332889472071664722446721879591059233072987974081347365884299057597844076919214227188209400930050601298971067338053957593633042796158846178425998895260323466273856768666276977116059642710255297204628515043042716143875825523058800029289848479834150361933308468804733686859350027465855054906295295776228984639944695758981917779517075695555732604766680806718623451696416892323731035590350475581226888436659010941185803520417784553575950139266492802013954116800904519415370360526495055997357638339481463450802156250784226848056364912911370423171022134648503524254519054838083905544080182127924845616869628326829696726497379905325999032449702525155379046473274579829651276033733048983663277615746793699093815102227704309149275232550117246278577912800579647699861834158964223323377986121557168039023086967416529481617112111237750053523746160033084810524183317993724202024643329087745877974606513762264283117089419363098110903995029313522276106021888838430841348908128117446557961098572521182240390874270670234338721243124118781451454202869486346492501698109470745298124247914162216401519407715305115918622872714917152606527740417172931174507375849359343106247109224752074631838620135750514853572681414726831017295333790202061285943368535652762948818864313962997918816746339533154103800946353647820330872576140986679639146048200377454684913197452429577456626377914604483205835249903324844381030303567417193698816676832318446195438344442136630851845036891800364858789375853401785353762403491191986963505086256616842850963234034414368301169921304316323206913414204110918004039134692385103167763055419159819632235977069537442252535802730372612209759254068846174971617170562364711063391496661277360958974061636097581022905158131833100948362221502249294098860680314017370749571823243036006069289849126466741755636424868654975445995188684817706083714692633927086393567553840455620691384057906863107371390134493515174808315843082951662231456380859206877372250164957114396467754783717068405861714259826310037497821190980607646845378022317956247980052095238694282984600722740049299812280936726732351942521634071213406155161897263627465910741041568185981434414588727476489646155148364211901177749203954266148123741238381944510723615930806435667524652186450673641395472242996460265455406865109764642332852897450764320476937049285965513735839012016626646514752936659624057159687372353264113143004110239064162406343465769180630594166791743461866155978624813741449337952071241663048211672661691793218505519818346432872078019088599816053125078618486542998356312062350753957492603920736089732247795922691049037477609003670730555768552143235248906819662297376895427650909164727881208298014345912039765062760749354110759327050894023274349056410631784316663655035864888059380381095512185432675992999040335341762617317469533466331746517128155110937331653095896645140721790822436691928832068033419946437124995875261756766178252662576015827389904365466522548037156740914830022564145499304780631684953286872246892304208891349374281011251914043265239271668992035054931503610399251309911037393535467031903142880589933040819796788220087159229404770320208382034685999884406100096686145781490851402027222116306376240264854888731436683710926441691802536102707147354538659218729823897168355312353957355657480724510034183376604418241377127109349534292832161588633471535490148166437872099792405433765414618684769521089734862310548967891410898382269017577497906021243190495402005019256873646110445082149632930231204752450576820538892426705056941294106720155091848668701330228068634884850186553469035237976212551221237766783237109008339313698191095534975397959772728799391423372505805641419448347903879087231517110588539101056885544698958433227403295096840997392987936646878293263251398185171113792923211636022743887566115000493173367149983673946286962441781891879179430173992629397539857013230706205100507101417516550982420068323579505094453819603580518387673278978071195219173646576016509988363991817814183770817202296243971906133456386037140199766679969650974216108547932486476904083113500480009440976205712119506600309306196034748778228332055449849464330058094641903808900320534940543575033890215009909767646331321601236923311070157996955094503912331151903680252160460354655096264348497104681184502899392614086906639262332426943531580228774742749382422948559679271775546698315339999472034117447404866489403027654113229635866697336505067897929768982657381356035680622663419975256020045649032340054478793552559183591606823749004639312094008642991234720208624644073303084524882314221043749672034585177391675719779667076636939034546201264033858353028452936010658289577393147012931605858216630199725549654069707621607137530312171960084107015569198180739749366736909284717184999373666576498735380773239540263323313171222584078064544912339497405444284145166731883983867704641277403581838337107357002660561428911768468267339757393474075514574016428033879255481376545820760569191383698877035442667250242921471493536761476908215176906272946405364173600109968781488634173854788987815282384995754774389596471549254805357192295658896301925281470858637418777706148074604290078066376836840774799274493088314181833310989788834395722671596826862014477103978903595498489469911876815393335711172247521689089238630674783321672276395446462608655756828318407249761955884936909032880909628430372394180587620890981161242720190726950868251517782358995771407770031079048886062806125330620809478579293038356434895344623562760402758315906841424928016222666453364309626640405168714579810144976752659978828290053705008789027286552351157329144938663248313999862072709385805368918628567214738139243545743860772138086020660526294139778003639899585614165547560040506942164442699071769862453326024556407653795378446561386890820635272031179522479324567809193359644645401545437132748004520291132425181581952433924620489129622284122713976860182970558364598691019315491608220470810773290502628091185449970697595192728794997465677057117421613387910513004014974258203612005594892095107727707452440474304925613272448327562873404695487713792366992323444653941368671723665779361727090421927983225216162762969535047644215897743759631342357407012356618510774446321286476333138365653465315055418948524268158164973154956457200889069839397606749754056934143041529594375589710669323281394486482801965417497973974848294647075929683825217569028846464421724958390455950463310946739183536776663793498627489423592242489507633263517537662416694684086948096874218341211889640628121596989743296485748024898335363807181849807682243092297988832459081165229253732935356243011177186743564960392790872934029634185443746739738683091401987936540326890990272532436525016455793976687305706888549577722524869718160880609245562388718208895952124299103049395387397334447085738078914263537310993868837665228245492734380373691279514268237906702107394061286524784485065358635036028429830515160596141818951315856021482956704171488285412780836477000684771086043782665283488747163451364810784630237264261520622905205136307892488296995951652698305993467868333259851559125716920311849766018348586760776544116199055042244746541489110660406034945617132593262588066801314667481222813042671984807229634701710046027689349358524433422318607555509678970997069969467410460068773442415272271551193372951222013609633788110253505543105780396760655270831611390061878542264603236626705527531731244866045470737732490106898312579099921176387246214133077894358719698389059375633106704041136911773749487103575392478072408452666486826544518796111264534453858603227347527461345613203301350764456477915276797135285924527535353204485240281867603520773150256178995593729960742582438814728914237732205072233624482626865007550217518738659601845727559297012959285971618671286629584104965408165974553468179312472527372535482491579623223971246780203441437546273640606288667294276888779023980038240175444017850619881239994013339900645858776788589167610877456225297079714784033103615084756524321110989122107611863534378844295275551404636226268381350332746825598483282516976323515466278886762292503422327916052517253821623751213617730128453794946350431348340624901165119698183045048355178402052316191103751793267429883257379924342738623333616010269443441069769949069927175593183971674445756199219090904069160134210013903330795739039654879149597627118870757846746164869454405275964186552219751162959548926205793808679551294171992865595016843906901065504867644393450861945621795249058911528356168779196169283534071538262984664350064677141825427266244530102753598041452667524430298210217838394027957193795678504779018940186030652283462909462382510328951132383502975696920002795739463183534496120586489788971782738755839668066908296513832224319934148301580188397028738326525126464512929723447068476723651774925578837764521461105211073486810722963387413128353786573234879207795705729566060746115772125015651433991082106284890472228045139824255522598394988776118912648004808216114701418893985178684490798011424994088428574915040975536893095389874749210965160337405269084467122994114339991629927283044366268879825609852370390389065195826023029689996559862724528080338508042201803524269912560564950816737048035194887689261613735387601070706159006252659861236284072901568967742362233373338760821833996352390278422686501360902400270001639346529164043249677605559230009426614638095821743727825264452823304113802976560234056827758168431775166904019889955347594585312077521811704073878920314451769045920922094430726757771552557241361998775692088976801969612659417398391841011839183075657400403911920157901300484669751416074727108482879619919999250187214994415943160132071572878433814554727511054413148914289521667373252034036757800031987237110853855050044649187080620268862962744127056736856339345261157927301419440896176808491292057423258789717101723785216206269027911310060052309884006840527777463679771184924114709120006347126590093165376361745154625024650542688234847784575746790070490548768314005380460827191831041184623633349669028849293048049693001446588140976617655279170942142894395002102464906545870476841116150827738249805393713951718256669862522722258075298043593051577901690523130912623972232214687866167439592778458106794339952881855785501057326393699119393675141010431983876242510683966273392459679922151350097840190030863402553549636154628358552397610905934338612149220212831274643197302396986487569306306464718176360770850657920044810660152728186878631511797464839480541343427435186289636179728887796474831724063896682430860277523318090282123809847165217281873958776324110067380457191413425726056787623715137453842252915399171758145494589989912378694238026202495216135154192785309781729620175294698776543357060593754850551643282227594570180790871053507680643434977525143182230458895999376954069490222809430007381778525179298302921161787108656819645765370868927525404192326928911890470987345499629516580020115150501918290209431784259112668236188829802290602722718842691231125262091681631249819482604452048138888011175554394703857044593536067135800799382804042071077129866972505871415622717105764292100117780169399270950237787810880398647148187304517249313959968666859508299287944347084499714868614588999996990862412841191490813193548450887048041739748085251565142334147570259485514798759094286073035946893695157841208419061395592977565380776659764838386472005291916911657881492056606101701134615438079449143997099381863047638727990804249597361453592067007337779576423841278775839022506191867459884199397525347068954194890968616104885384618011613342093621951679135593752969094686818374853139445498149049474453753133428145724040692037039068244345212001344025271168233269775172221366766550021623781295485288094690802925326144538992518363937810235764121928823824928147678131637616425098051428279800526862739837523014834268350315763226039393362738261157922870385691811796468724833675017336912433479335017351306592339588002800027947086450013247666557698341231685265234641333987669730113294216348422852866605108773844996628347958487012586814119257664609827609014818533527738286660060883052455027339461078914500240899433948638212313947785982937740238098890581776543658822832062885530221540307971035238446294509288395589521731637550959482631560056690688425170331547615557836569710921748072161980291059077178143712389098145126180612659584382233255908989860239307121205069119696871526760321863931627331555956084483274117448789522588746614321445076194961942010262651892220026339518212747207478225170920809096673141287516334501469291876199523471063604434142826210199426143801413729794132051186733919450980084258745345992830714968171967761516133451074563891791402725696205444722372064475818435772840037232128078839760934199743835590817740209796420990344509146392428436227937252922442098159520097771865705097779770701686689736013115901290820189269785163698849496941596864547363848110019394101650194002714673197224178749503979124667520834475193153396575550330418238374030857406948100176584406637253417976235552172433139992598043691956426859405153468659277229191761055318467130756274898796668083239179407471902995518250647889962595068414942821092923101540766826699204331824506683202166400519882037484129155944668014515911406595124997833204572140525481432830318594461443992830753992564892111414277523937715942065526590370830437528184922531483718988302782961287504764127461098950025666542964891996831235409075904992971899515844579210411459889698563188802642029259226483899623958872273210001855469872772582771102398261859951378958789911446835971254199284103379288369794543627083314849525898500355404613423591520775408484097647339123376987376984113741458284797871639138764406875533097179794800087425389899568881248658781556257497761677118060016934427900859199886249586095456175035786736131787381698502356677330160288595959312639625355961614206577637643869744199851169830531242551668585514568563084743292882601442662035662331109799181166610103451026405059614952161303506191640430114120622975251960675391100757504077303065705197182483940053644057752675674778245447743474506099550014202502433540760332735567753691481281005123976341599487723878735362859137054154385403031638272669647684572722419769186689125011547377127358439660351802358774545433550827409890873049552253967258491637401952414486439800461988571864075724320818440912549181341195798175742058335844262374247440243677079201561438724181720857056321347346871436911319807350626977287048049179745135279093972900137991358994976071984066509589279729286442362468564098855834615600612774629080559519800187102599660531359507377832251497234974572408496785205758060464748036460496363343631650898089471713658427809711439370044325977323886477905267838016746516558493191645320152430172668988820731619566283529497950315369128943413001116737080693391366360154671182372623520675701797008682457792005911485063812316244099623093049317387736830706419961380414821631943592749244795134977412673384916701121580560140322106956527040583991576625777343224651060037743193512471709043517418817715772772673384010905221448726428846284745795478938938679096151852550047218182350205911604088737341508380073209495979619318082582033211411274821950380810581231302158146931038323589443224059729227544542015723246508049900716160492294480040326954495446961631417873406231383655229312953443557409428933515564642557241064150140051109391450238199472054910929867524157587298440577382161184525463283822922672286687162751826619562962938108912025672399543065533110425576613147060226519453988958411896313274395230051333465485436283430249119796770742621775851540380817741148810181257056748837798109760741055912066964579962927056614793940029431096464459344937465694579664868265604540311904019409214379118953059855444989269333049591049529408701077208697912943239342331413637558648201302125328834643930287392823646966499506529358506688534254058424419346588551459011887705428655237572882494620476751330434440251518304543078194107757183917188132952263766436051611198171299034636702359456667115722085029949223049605853820034805150259473832483032194282888212143781149738965513432691219049867416733339427098693765877722547012053416286545287121943112078955322329357276181438074145496459849800364229797537883591326500830722118765371627912665760389958339883432854840864914883291621056172177829621326408933377985576086195115726705628748782870640525210580413103773631226323473843897215740213152566084710092362001254360411131845800565263969917952423747881324282237068724148209951073278434345261713149070104120738397656090793748921373253334598109369738875454369056801245706553603961223097707974475740510142832276271148096602233777718714342681765875231055925224921128049664356105993099728673811269746285148011201444250741401436265146051778076183333881250898563125074799101725010544364721725659916903134181479132504887548600201822553841131743737564507391874913798943930556601627142338326256850477126469151879543263039147583128912839444286695888049929807321886640287185942582880734636172549858942205464675801615862216982570341524774975085804722802649968805188463766977622337253912111665465392482771073069900296949246047587489734498585329314499184941862466471980904825667694152285673178602344614877103881829030536280147972850952198073530052759888682460164316751287490295217363988279925535528744373384493185002150940398326299109556626187497357755711781549725783480182653553888665715023533096375893645479348277551474320210303857482094506217167849975148373267076435288290973218250499170816586818594551254702858440835376691673339614497561196307563431357515077460094802430257495855711054070080361946854572000757425970565798921377736140175888363078651553602751221220362394956334899492808442333930486015307540708740835568339228387188810213393893938692491901243895860185436391502802757136535391148072323128574930950312863434771624369252331665213422224628315411105589864198669027900956964247096727433072209065643630887394855638023277874857770535631298430273698916121027306772318149196022192844579209143714545105196939943835201964920196655974227416121437918968371997120023309674546661412307632555817485615387699101664551789644297628184971745954685766210544002453908346209100726214118958028058600925540327580207644472818941761151834834286676694740297560344137434839808567849406806680351464525225364533434700747732902952745024370616953262550281634922323791743947356189003816441572783447353686350125369109777691207414245630552577628784893719082233570050834772259075270760287376107118336853993626717636604623188501901210971152188969780541312089061163465850594788576706691251163699516003226714795498805048688880880798941133546692178535149076632625570628690896606798899077496261350372117597927782744941762836531669290346705480460112155071117907868378821069176654491086116539429701518294703510829850674591680557054715037736860066162029652796717457511849381377003720841165801333440986026733042497234761100431837117801096201432988002849533295994112655323168568323971662961973377288633731158323854814657066504907900459361498703152711665919030560479542270287982836437827927883330269672388989181986127929649588473871617671537269682370013397237747680673268050524533347289414387727883572205563833983387816636682148812081106395718092174073286021569647223130023091783721728504234826161603966274100119191220456773230472627099355669029425524473635603511301789188898639384548183575769076859098367919279597184304134129564276603351096370507424635019544002038296413589358613136263471895193833423672593940595089739043458373064137705122892735758925405968263624763733236982768779019640676580138714263817836572527031005992780494309338031867854956975246986926780527361762771072014621818427684834549261547510046779112091653287835982562556665078219768305146687613707404766585386937468910277458749816799066999211653951687332169441877665192069162272141608264584045341041137440425814264971484076195560447293364308421108124460553109926286648397313770617542873178320283038595327256868511745615820318616479079883078842039852682470678233570917704493074118661752775928738779702572924587783370088915706499583663077902373366844900265960758684556660973360987820541243383438712353347302178115637645861894191165979526697476077651780319689017131677533118483281010057798113516021388655194169288220573273341680372651140357905546082348087325547194092834895981994145032642992109682335278179793235574858710482704669936727642964203778345277387596775050459484168797813254493693692094889654870606046728747196988111772720570610784340019921224061653539212659549987916073131784169845407448642328173590161373913232166082154998736261696186732747228954898392975828288688966255315665024699581620207957234983756150827211351942201165390593455228535580543472051897445085938435455865024435844819669669072630697719869583006634945027369581374639037380252925600781852666183284067288454136147667401777164997369742500771932095900301807275810270132281850028806245949190699338411267599749924415432122883534989663186316134199857108978197245293196104306644219470455880304734544997666404913560331874799272074054632717210519018793648207318552360739400186578106420942781878286471486178994812946016053150574102530173811514642789944305879202619447130869263896398655583854656875736931837481028433045158162646959231823287305578189890379470781448006108590982464577773643405442577437280666799716935997756074716773224142500478496961550263690286203767884445724970844027310309805375337321938971464800064567721789596064608454829439959267290539295209947730835175680099560228608080491594187966467575538584823711913213307297255186062842250679405822741838134582566983262438096783196176472474371074220971748561439985749675365351211400403012468960372320223713636408309377247156402623857678708522440707020747472334536444372076276669548619239223801167805863936701439747065487336391372571240752353682327499570562556274851441143469734463415140181967966005701133339644866889943663275703943651789902780993916491816320706471052135009302232183597962947967564317251874932354034258715124898866719584542482757868070741355800497996113822406899865190599399367034971956558340284400394346953062782982848007460776679125744493340173530477169617897332585363801964732973176519202156256893717638544852016326760327435363816246293075840841233381315916252373767645042082597554296295942242489209304587937400855868516154275014886531928296009780137717332613834739289695101204969003746959867212710413913537144710600536810575488765736115804435354033934898975215572483096791887010794696506767897413428605293210896312307086040619479176931021724406010100949246087480247506775787405126912071889521260286824701453435462787106653344668941331713414610424499631796389586315026742325269340881919150241192451173340360401343024534841867995520231560995924613900582145621032983843346925808121668174413339462350589425602158015253696235935132492312131190271359050441683013304898202956839188520407790517646030226100185495381983078200885324964276324286310102194804234987277632035521448862754268441082169284704871886904857865201130276376036729435821053194704022048637878137469480942045684844871778022614771737358695231342381948590244620183825963123517727193341035425567441764395768576491113903483191342052497273504426501843790761013628270341046858437637030165850838432824949255739488183889913184373002886507623401972738156434867407079772688120666836662518270601343805297014243386457117687340959060382169310436039380658769146847331304534120647895419205192262727413623864536567872390805631886432444328427995153866796911873956720794822950999697137429566087787972071357854602012862604579866594352292990058043769107262694322997945893281829780342008733543775220906063361740775427996792092436222607197176822268416375583824989877876881260766363897002581209818053253823226877515384459218783306198245538020490273494167375786873210229935363634233989683059080719604915207318328394880652167649382468802244359873477282976387187285551892123107447532966830252341721796215878021044136359341422420805377663745921697602945784235033465879628887917968631850128594448732351930804610574351748921515957150786266353900525005745965394596034064238007153467528843281514913408907763762529028417100685193529957402000936803633228794067574866840520562026901757648907918756328378561808842708784212052842740199933532710733227346659452610000085326619635106437030258471699329201285175692976718577368816889985778408796608877880911170188374960373884587904552212906404222523935224394785104882834107552629009865552743229507990109178244978719132695043976150566402570813020346730337132631640863489815521422722696983424497236106273072547567829255697830394219243466962528688461729026738172979831490359452537977961596662891476909847461846354754697107234587067375158802706521928210194451592444055734725846235732873166724497968670325384220877854450791525814772504124946827422428343527094676001965998230465523245370643537050531134273539253661302476832505813907949500520883768752304921343602074721691036867710611450673253771366265260151735202972383236788019560102370644412129127308020290796504259078682589480086538285330571005089813999566125973166950022366218298797967014649829599984792044433896002838223761243837314984213512641459786208798735416942208189682575622164211318800430854015001160108762912576898585097899789572817323001799324544556374803496135924346866847737444293417470395974045973463548981230837125566793307740734941679396626289975439085091822549747981773485920413791787170677104713404236914193564127636172930777861572928155135873968706289646972856211008416617274770370858151784903055450157073441094130427870681577728093889324526839813242217029511681359790710364425066584332141674391141232747782025363109023724273530139413378593941715097703682334677056010887794920451336575309169257005347079135986674283196519183699956900166882653997796350050832014495503228757233099277818743842722043869837913681789015759493043295552806041083674366481837086082097646820779857034597709084563674321382521944838027349178135634135784089232312161488780157869201699471085561997289213163416814694017551784390538343572175635548612364769749640862482379952573994967292932406387069271327104768209971367691255946311413612243900979863819773074314536055868435428112541852393216398873746119432404056083309731693048174664013625457750611885555021380710348353993563879247055437647591106943172447312281609234853027152219048294659994188051822145509191312295485769268187925002770565956544289508113970024946500351174920934812341249149657477890999721121847371243553539128324090228080298620547461069431215063197506176649336800250336996177439681897824673733994881145446365448559067307806515269926209423339009864701075093396913410131442025971437728573155137948459030451910641074433384476526321623237129775364256178180021451001775842955031838443467566483611159877949991755807535654899126396820493412708767686210195844645459438766806829905448962702507810724873007423166503305382302318498308485966775064640427415538606465443709136346886483803889961438818432979108794213673253370640398530604739271515305461558389875467572211839165195216306822944522840456515322071717124190054548245033354551532684290372303666733077333969487502272449455735033348286905317093164220915844766942748882029523173330301634997384990076083229500994458402524424935935291622655939518769516333213606362973310273749374424302270419603083229226300674717932257299873320390135963356100345355122743478223866919157970113891061351552143474248883810859183478796809761627356898569548968808181202603102949193521710701132548222607282470604792753726903973619576991944930014634729222630703483564518333265288493909130728212165264989929279952326410744268537699361471898987092665412199338631457647931130311271221535477303036944025860370805925401665188649128063896647373158492400477296535523761455977399907097635399188773397342203053159805433458192603540275167898099227516981339161641912846738854603373884276900344563202670750453677955799728606736152580015144429757849149333882167794321220967295402307015169431935095869378534016465358257843052292905950044908235182168795581296568632192172224053917948013109474068567222809023836890125836303952805038037715191296678763406928084479680796368786337983348861036852683669448080052535463411824377913169519542471581444138396053041009265341381910192562430102175990830812438318663371921533979322843138529356869586069891897771709616239138108318224671609649229984167536439934821698198745801853008773000976872448331689329524399251087406804475258398190457247172896869829361428684776529946415850013019586709300462648692479467511498951300163461840542209281802417613560859349432259535911813386407661319948276366439601585772493990647397300844543644127385139688995174313949615793578416583775242528945608326160522643392578420188497874113919003793449360285775731333654797198648962049572385034745907210812212887633152696512378037894653259744248308738681502877251862368891167319126157719926325916398244955079733095961827042338270043470505128380870055247925264283789997940085978930551816544251922763228398226639999167181189613079354238182773351501385476457510523509564938031069027793314980718982257172018055308127982328734902051471093116398906393449650640247500069562009165417302665306947054740063846786466266724488656074698850025935829390258007599132247944905572700850327602077197750962456178634190444997369597101612451797508682389145777435161900199749821419888630991795993629846311697419648830875402603278177946804026764392336472532616035817867751972501014940660165853048109887371010622746328690997976260153019607072815167957658512615142285214102195253369300453020638044374082309538893425069344649004995087391334572134793680875716809403272387004527304967741526141205463725586105533910471575519038566286619303849075676972661687702155681738409786656830197297651049435185941065046764581850393336699793735130162478278339405916947049723601855387025410334513458541707436804528684622291335544018485369607978849149910218666900682241268841607870372882324038522258540308174285315604198282261116503439740077259669567803035286800357119077949697191910294499977207080312393046686786929770100148940880501234214690526483576201105484825658052222805013124738253901428633509115863228915291582301787037276200452974067259872461500222820728344055207194128906967900384152013450642966533701845860421578918941254387955374087998918505654864528047645087856765907202559952027248897553113604613293322347250419852401777877024580839425375222999757220679001597628025425322527030183987633220230791462599851655468447392841692721902634507491425769368167676387536361889931846313353571575964529867865889666128553883303563127830355129656671615810377735554454071161006147604154618037167396807783406522801021046604380919971828618040949711957244503966148355307705465458530887797569521343953724451367298477284629557856606706231417406032021722469450386086009450719720365711298980654677366379723521257375965432721057347224360056629791164521829692709690386073617351123597569642752476105302591052990870968903735583135091355214956838020013814199067278069922030887868497158659767323509714954803265958106557640199307259641802059442182031704430402944995199477957614194188932178636465160636396339376078241086484788137049828993707739073568211386313044717800738957703856728206788947219894578553297539117226432502141834764232798335775772833020073761087024317705228206443547390755604280940482975398139429032477352550094607083291479309707474108061022886081262353902759908414638742272139233128727948639407241500512709511092009889479542320217056848084835448398365820554337215784422216152969436021529873017239288687476070348432526007033740565906453182020448194119105730758584970118307178394992385646460045991764049494502186776348005895414649625123296799818631267698296196657337527257699582249215065059088599149802350413922688094083068070174086345752465012155254695260640414580994993975451349647733404588313848409228015397595143406400212676062413084075176420683501418255201262661407176045854818470421715763567167270916157068355929435532640854805005779180026695587465848286601371983740210861505191968286667993735373295823987712397385495494834765406797695426736401418098084703564076805691305934183751634559598368954954731039833189895468606761772739379168225125596609895647944316857291763706583456751328503496664612019946861235981629578116653574268341129874094213856996847041046295076796127396166494743043890993550943936847676185872736154178598323802414858657154191690254622840637625263868789848555929567393474227558642967592248660109701850570391138881382758431662096411765587543009958294616651701727048041011033615992572425646575909319292422103688121321849672572690561815987441264243017509119703087004229993855010086257987169386461405503705224163749605933078366616367540414340608653991853647842476531814229104759283794773548198685953420657771878231589527438325480467273835102323942695978349821499159652810501937011312901747477822195681353460572479286351020719729025994201550823651944825897889926116511420999590458039708181825483639236582461299107038719527493666536288589558046052326768857235669723812833868953231828033094046836812904189084397820731328274224890176111302820230082318475895598783988301928525210409505374203740513708352311516651286282580678877143628992214133487018252141365645653734970326759677670043589169097028723022768109092215334106589231015289786230428641064149620654632464355657004121566057071054605791854987951862314955158300897086580611688557008068294913189547494047976006829017161568218411689359458059008748300169861509447476959738719361565693874435954484179771114047068706545850707302278986018433022237179595864433281589594912297142318356585343136704645876891981778407671613465872535179784395718816679687682390967415745413180611072496422869443176513701538641354690268276118702249802923116968406556512197058925556450560218566118677166276121752738368799594770504070244096561821033897920803586942906041246990749567683870939450670569515275405021036020205388314054179883229327841142191289410590705006521664269589766359878361507597136109903978835011430113165595235942447525394014247140892077753033148944679555130149294625178195800561586002672778798170300565061511024699467329024185125167387053036009754769987615666575665634211619585278051787843855410281705945303004303501730680425387622311381634141202596929784917918903449909176630365483857792995931035139088459145424396247707750753606174429918018303471830074189340322033177857384476492523596727047489019481391966274024117186649076037155406737931854315932605178965485937457181599161111664299193851734276275754192747488761802928153280518874372447279221077054205629708963599135912950874327651231912963253820401361179943541941149020368021113147071591107065493833525700430031116584501294730053458680252203028578052312571662717367010971879242927217318649151162084527504037756599260178424468620374350684314679386868558614705451397113750840913838842575465963586404633650341485968528824641264811434496783244877054851836181631693808180948236466704924413094368954849559971935558915972676148277367354811266481836438010111836877442310281696853078032482909079675546536851332887195340261599885187139041603302066430896319522615588766184492124083215544866500294447620213246126603145104704221028511574387974884769748959835688150124296349675947960482102796881375945171451697226632582136102547517364791393464981704226737054592027807523959589726015126214713330998288573902325074512575735021765010060823597530177213729301847297481918389847464278882337913131591568485587325397270363444946589370946989441550293048046794188804305409546559113799243468371763334455191279958162061750140939347766390590833321688363303140896131166838292386492178104850181893337310638422349234538439963097689930977011459719643373880199231090758699513239512024756155351299836633808314607079990438565779833346958524589276794853167216842174088428758834829349105695650899658339773537270333328713492660281717098329085902065069437400605645009359858226404233015612963879094844244076690428144352866993096105578185340322543558537817946306347127181185845236183562168199809408759446574004887418646587897850885766874978237952084895900881933944349035430857522621881753225300668491883129184170123180684187243014630755316302562319445366944905086746836907012988537542800076336814819242656041767210277693335298679132654564807271797763455074610166063386691544490331091655008793695813057737645858722129687578783214761882168386194572943759082712255793251506536660607807833474843157162489316373245451690275184814982960054422586414532007136528375172550923171278465445394311982416904762366331427648688479941675113870249884692168983291550344087531834888778772341779641941066043738317162146094443174663452722411692591779815959326383683420501650577271772125477858505059808453841460744627303272215815187287918191007448345121205248378263889569388477917398840555946065990138244756925771191929532551585762313216482216609464720564333437858240024934158094409104937694900574131922705871951111852164786198799816620170261617595482805383536295470783611234993311583454699737211223928610912306296442666212489399610209445094746742815921171035636342385926169137674623294173412340630292765389007870026075377313889831056105196178353525483635640419791537562222750824542595247677182552498288979571243879904474720111477002115930674876636288939103186778828916585999061233026195872940942718844462306788560301666425106411833587959978657185551077508140224516611355792398815456931882939591849573708780782344894128831571694006365208058376019245105648263000319276004947860822659057195987102685830142148281979604243881452808230423901236400116816600381465022859005115978424184320408209623183627198951900713381661586173288107116104611480059044393715447837032225754520232578483622030138574404401892978391397385748493402236321344042159911815631731777361832703947499798339714544400820038843863616953170623749465678067390522876009491427787225009183241344548417930785596734236041928388595561130318782537793470209299289716021591932909037101328240292794158568042841756132083947217401538850749100399236451016799138474702612299319419859254497880987529561780857190099139411145258738921606226588798094870996947449379159130611681142932080456748715310007504871211875498847228345109526823356366609294566329884533247897497941559554367235943494122689205983487368846512011267686910475027994449218010467113379738991358887063948337229617302659662961354452700186362452685841040925983503951419336943183343176241399753623023674129973717595195715299079627582532848056869782481154006107179194004820188326848347581917660010327734311607366345749270608054401327642365352437321429938087027869117241948251068552077496101535464024240057471499577658245481246629902069020914720092691239755911329312850533497495636627955123116497106226358556989156135510856227765362072041134635878649082600739700396221233745595474951667305292327715509193408846361602028067610704606717236424037787382688568911105940838035421145392383601988516622441535912419997012623940596929697468536675415810127479561604588727651764515842645618147494735638476924605982181493227782082002438138702892055642581363727338028079264351519924941963316582405140800042453845189507562082248048786167067864152348193476778362716981167639425714102919424101316259529251486941905986050077710175414941728996053987109631124115287586048104671359857015000264841340320000452677650179371265299919255648089709237815958027093976483204070074437787128199774521399682263296317557012440330823164842568587514885196691880411320824865305529050195357515871742665697118852553967221763152601715881876592091435349519290615576679966014427563550873504234945047768897398583085910356935425965442389781275142793077709873021284434896187868904725101797787855716051873740575737537731336611454353977259365373585654924250827779618121350646539281490599642278323369496985192242930684719527767303965318420991652987717050325093240050439679483606358124791468486462590750153637773501236849127046069329897130526614501277042861211742977211517310133969812188197616589550846060888719761241354057471381107987890302606859456276880534126173487057785262344179105947596541645122351766480329473581012140899860727525140728545615544583954988065595303471442759386640725508131610402305175545378058571600564236001692828673092897744125090163093547798176780981069526798934172899103581954587874060587282427014645223100991108916292148563366928739291418628157490986654347509840221546730535772910828633061737899479200002847036232817941279127106886057789991474950613060355942493595814917205636163694655159570103608012837858664899371974931069699303313834850274616374681234870146290047587136362320956635310707286063499138882739238403002307733068482573791617039906100801799478116935464204514993389076917215820640401733800175881774430545516452918657376497926273078548918970486576893852965251820616410555799454125979643264579490203464028853257716225241378970352084750010939344826313130471646613897692383991851292537084408739403145980876193156875701569928114379537972489955016581444516837616845432649944724931583810349592678783310815661407643544638875392405540911189979581241743817198485075421566044795109655711063252313514403153413337479999357002704223951463956181628259586769310607566732683885056495724865853712750681369905197910004461028359782408086342320601199137404715887855226046967358457348200476875855226129769426026123963242173468728139660340599270956866534581353131699038664911650394730953291231340771484656967242746523055471988837828833344738707404941519534676305598074288437147918581241128148277882069304869294423565198262991671589911413678390924441948049901600651856424554256989254295471045041478112705891150603338376051576720176874277302898654388480950932368085347014952433826172937705039846337670328840330256453540375123791247674158070717267718744902236277064758054470144739189943484867006905783950190372965600882193112956337401183472789042878411086435018770664346254498492307316239878616335215135316125342104004203780498278550715154111466718459034503072599870552437997677207622773930780918857989107455508499794828737168357562489778794512145141992491103019537659614431869431425292501327056686004463558039412287613077561716237595036629337965057967559637391503285785670711330900149228367067217650422361637394867950515301206721635504242535918631822194798861964464686141579343903942581650238962159049280581249513155789444898531232236830410161646045661825353305380753785547344975029874044425285284895016242465895512480228934504298901276562515074405055951139804833100111910597914871305453396087456612618509787321650333730639279865303545585895827275241841571441889090888041783908500020431795959881066825637833420266425591549740675319562620281803073322070271673812827239170076750480483992733998981966974717455993179342118521667536394139209309545290387218558561353713001691626762859926269155226440830734736193126023105326185746830489960462922738163261957373518737872911712303395331434445493124486949121895709323480968130414950807194110391783650878655479260869662454939271532996485203793715921059399765428451023069932805746819359298317417896475496957365525096449121396799513343428110700162218184961551367685237036473112871604638570881110217186218649752453096514024114647922875108685792247665365026698971867381010923107452475193334367516427215138674142843162165062796693418560486404905075674489371500087989887571748601080155599386621514665394873929950828962316828837864247729035868698458516963127240887382913966649328508186591460756414285011878624239227709201452744794447463616459672675333095147208310037913353639647950166734221911614890076871211063996653202935192492411634200737037028849247660219848401669566851685460584599217265690772134938835526551990314888018639613112500471224749421080302062205375837180929609753103318550052498130367746876602694495853669993842332315250199204860618438035907420376677668167847167400613261774916963132822702932131134909568728775156812493800963975401548515750173425290059537267209068745935764786351066867995131471061160586855124927493474615187613041768640786230636828844518522273954012063927628663766758502898580018510695600720379101298145561102356187206962107217439720109421337435946608572868070349540512179828688724580882154216600876617029637177024641341399990704353944111328797942625510221903106960314867594552915762665165178568068889138895766045500785176730707741362776044057990305617413330635878659446140532029860043664797936042498169347865753015495998237057942121533474662100861864462865949970726121695525936908276704224703841676397722868958991597541978414017195474249263634072608013874961122449678885858861370443931806256979493264457403310788429891320638903271395029373715641641525379099308785354818236166609542629790246968844152086504389647577159321686691613716539597603761491749803152903483203424723177637147597214974464801415562509959769407699242697753327012057415853494112277743946133023202833019741313040111121007399655688470264062070898908533490645941481776312806054816765973921394542215908049713498650766197279513989162848267456852383513456213112095728002142411726212214616282133196912854326754658459039740587785579302662383717920585200233360294364668539932630088578885689399258554311488232371178727142657389304838758630974762817767816907253155827141900707355389480150632255607902187657179058190232698303350992949284041836823322185862627288068647543280294042060594882239401273690466600102529812314411275335442090039452817229979847220889850629377586246285495534939177346675093681276566776565302375855472128741267707226591569730579148140925869456794040404072366013855898469889405520582587699133202704473493406026266288312468977784684745583155333315070404805697823594766969999918107278228889573373832103101991243229844664730325363622601294759462858893474684004281710999867665841000400926375925834935827240954547509792756504690846284657316358523123566408428613384724127558771126883309869873636223518500254566450527020473251904589568753360319426602732200876651321399978717188407863220984673155918604320666847027642757774220289495992201119887075413240661513975277034090215898009499742945821219457039293108388387173310424909993705347067161283089503172712498219395325841603108811413514583146698851134593414090041957621368144472032205718614452013390217929293749839195774395850472372385435310065005061333230677484848036790178751308963318273444696940069874655705608001478545208280878997975952433418319669021110180287653976671061412893959072999246096068138945661290102286788081271865725219515405436760567370538975429456990623125702619248957985851226643997031073602999225427305166070101681350391419165013036441107420552570548436405190699169261173302809457357813252493557419319999139994900412613750032970381017042769915116363298986468955316480548786479984147707021917000707122018144124895455029209271366298115467670114930551227475121721068579476830901279233795267510919660779510920218447594946470565959773338788186187597191255324067217500967791901293896931498056952895635273723188621132159807280057818892231099791526865866667149536790672279505215013483771627801989952214837349358135156179090490954296523450658938050687690023747206953431069725866366783717329964753412205210089940096294642426188162306403076604552625808200998168516968744725833825861506368345598462614431761395405325204791582481705378200825644140807218745715265876815448587478890815003834080516199046692774943070374634378337266022980336816551779100968062586656514037058200809204211053714170134670845803205646532816228937773652441458445133000708462265365624304851829865967830708075708647913105791905510357574814381632719805602128426930504200710554192301141731488696849950528836266978509783516734273279548561292734110566998222138941742184045611511176595212381769359000046159838959006813692178836586695372789357037773062912149856585245567444305150202420756173622316139228740436663828403492914763694658957662021382891163432202295111720959792969908203122695190981572861007265092976621326700905641634435281284053950906367946580338748772154773236500269048386145084270060644118745049414585540108374801331202582432692812711536736682478595889923245293865486584601895867310204118467251728259567223907073965279928518298529862627747454353137073373225055416955316896205970042000128122802994723352138540187194185630732103037974547115871708771071708264343886990205961123762455512526137508753292089247804695601232674850486613867620038547523777734433399166281658294001524469823178984801493931449142583584250747707381918750800824234979458709300929785708548367733978993873417369944435820045524592381717318605684979486789547822209818983319174823045866982846864055543997221934121832451683385266353037692109653061030056928472094735485619381995258701875857078008382481703756096378011125686897122084370631966525794330256885277300163141000517213196082036420802335180662352616078667597453371334386501417301444895185095349196015638712093758234793812594504092096214297481993398184169585937822204480830322554627775979389508094486235649890225411880214354228338787133469897088316307274542917453041600534865071437727964094236201697140513061997453792080157186237918592830924214599922003921547426418543888810680067893463533650543951467432491610329502270738484705450542572448316248943449897389820610930221354227589601855194533108881358001930158576644780311860569552794036202209978541156249268209041243950346496122502935862677859001266876993453477821558056804558104648177992916135468953092192314026575520184918226903769766423295452713300598831229429640885565146943170692680207367475541658459807975887120610432772930248815474708467714005390105326829903813327557289345263880846410637602180235486440513996082345634125485562644983230664013647560394002477640358157434002448710020393942255365820492642342916542628312878894739487670242857264786039650907942592104025657879855190588293889123857825538990842870506148309807898391059913427991808109009950359562772373735616256502927026001201246236589551401864759296033691440371891976789714170568109538867084796319952469033113028942270577253239892274529992012542527934607509001599870765568125848854112213451707109777609221340287981010376075694304017475598445488633041656840315077961378271279424451883170044203501111612568496285002577790887798365258701142707772317610987765381548514916625370390602240500949030327257808787258239280658002309149076573911460250908217819588646020690410609463521648782812687856691247111397114430599802191192641610001358034134518872782763230173543642688393044004704957792586279193052341145980237970854849009765771015056898868831477638774019919653664426030758257448167076903956166619026163489759897031281199854605864684380094854408218830605672034479166383221095114160758902146176339783131191556696422285970279085176339182538425952645721278985441149278751168348150168419215351737039211210032660016231573416039156609881084174617272635890239999281138418612849461875210923592954348817500980690022547503428245715370388794399404544071639013708897890983112073636757487835751304928945186672503530716116895014898317129988816726228723996039863522584241072627458533866680032437182575626917050410458127060017550231165810456941901700809658064375719595557145362009920310039200938312788514506418415913229481566110139080634402634763543244230004701793576933772999291824507104934292075765286293693408534730098469528282206018324919715726267671826361796651585710110624889202682376853203075603607065288467974657592137407126496312146715941461207027046059895575754779227441927388044582617829301112176171412283388273649040406745821362697750792253325640374484707110403208726442989513890922542813322899760636782335374380580912957584675870098433733852961826683240888220801971909364506296775662858634996935647015780768185396735159170272900265526956623538144059317081482592613927428340656667391724477391162990534545214412242258372882199321500965613831154445211153652499621999902644181105503319119224365578211221626635159175535878968021810641722478797450384015142320741207294038049649463264290403117962735367269182782091616559200519654199406039651188455676539461378971446729983114911623528040309871881081119610775601511659401486536196948843227348803387915623595745598206109405010889375858630255818436790970330452356512412450999314609688261692180993298355055186137984673852402643476147670576299562545103623539896710517171897565371536605942204919939900253562087362485352744406196394645718710985187075581839214825033588793114472347519715657965379536889127440506043847589632061199835199314632368774233009145715438959282294539571364568584649317741170350226019306831899053205654399221938777121688001242099316981771440891721132798107268572543105606607375618007849226307707256851805285544675483434051934575660546695666656264641918809410973330166661480311324903213226650004829397080993605146697409327081555761146799941019787896695820796557600441343533220088586342602992276880458335682415129492171331626861032602978799748785030812440442023098961164969807369952082269939394294580481552604753088494460957561528893487127394777309170341860692280534347360166790914409542843742004640531723694466817323085595582913242075607560415284694943224008790931891638623428677824973072913402206893686476301458140913678580927345664719880323398240811153466956676542549850150457826218412327233090601647851981341661607133211658224550567172665611934458748856258780024919602300800860037550907109835220904282017373496631574926463729335518506720547323224331025494199569616988586085898679290295742489284689463412766186655607685961507840440894924952839200321461923066099343244554099092022676958759700036299985946257959339370578654150357375994573562632473052541104069558137628458142239759188727752716981945014253947316778598133504100247614097745287218281608066687103257179298394426964399376667387593232857932629168055560760996256956575419420622537598671880142998701443426127047798790783984830217649549812785359970950320778563130541733759860369321121802679052090979590014885898288637958233749612681261677733699323600532947459830521487547871515616635742337750586674600153594421825766607297615223394146983300284968299656698466639393044634914782070476703811040464735690139912014785418344084302975537395842631399244178743141383771529220118695698652893195301032975353027182550399327961118128539309586796122823644917728686331659571815895471088430959736945903446876623793504842675978025861793658549564090765237000711231318101042073261284287375412903517590280656168010712355391236923239919297964572426946064386102604119121751856905574770976435533640433941253560610996223040789392313753920368952757608974684492217014590424678239660515007302465621242103985524564143609176908443231597141328819080952842996566652132008527809743912702094189415771545523105037867210454249803421239806274318312185555384586432032813030377831216218622939640400098328242479557731697543276416805484154552788077012378631985958754888895859962578518275717891768309486295479784319798548557892587015537466753995603562797609976113222966286825559189844372767858212798210621809965571008381917249941394403885295540988920735060947437387780161967840418858877266314937837394336033532075387497405697070191949232495738839448515116061127352276058741958241135796643497246037180209420206284684701215241600796017298118182551698482497743939766323634625704150724631425910029470437552795410001725823776286537515195657534513341714518256384063386079185304124304881533511126161130025753148315833480024893569983228735341928704216336610677657725470736735293788876871089698272368382865604793521752276088150529789906858661521153246325078511519383504240873992030731673981282493241638846023808024304197916864417491078500475778763613327971656453346504591092873918644890982235914929070296579637778677014265904601912870850453812536402401831627341478905352789231962225525048637255048559962762363066254105865161122256262285254490336244099050906678968358162470869019815248319817509634909748078940056095702254285951331120315032389912155489022337358068030512700410093049761955583007882643301352926479021202877259969656712459316171597406075494334330484553408474374804735784882867386238636637423207577777188102011140940203769625345392686304429249000386837988536339584556185126098072913265406876449716914241577081556429275162640255639573263686636870050844168025803283542757788396297819016497670472799233209192657426591231267836866357903301443356572051463556065552946329478122788067116934526932217869573450870709716588427079177662448318265758505928074871777916367024484011422565480274269519867865918494099773898842912353867979521291880795711093263425602411299491283113812830172108528838577054532219881474451056004886829411407310668184351592485273242968589627468225691557486520860006656858509765991434635348436672699070503917961180039731411878921370072559984001877565674214261205188618248752076894092873856876258860285866582579394429474726306702184252537674090918521939177653993361283590433922141093076587849130607410346589367142108753170426535382483131971912655281274336383536697389806271754455575436182272035426135416535409664156566973416295679229390654774524783412237002310236141652934052834589658580493527592856621075375734223880987736971134005707630785784775237275202866494116166564017769801926296264750951414381989704761420939042360154505671321359820656203737420233024371747247077806327782303709520191036972361756017671306577219534315635979285831051350330088559434898784083728298261687233233597578873647014875525389347133488957499229348667455829135191692389746934960195682996214495473450214450206456980762412163661732127595548267679614654045355489940107870329712650461268938533370342324300516189144904264146890606886539861663765162635723756641691427661495166386187186395999122633772189465514585159242639128737151016048277128274546723650995621372872326440749038777565675438629413857084239049557476198535852636975709376172979807909188020492235628883795691749688522202049425348574515811723619619048717082436074395946929617154000859554929005916630906928002185034662243906137115893335768061731367057896871562338679683175520684640613642256724746626267086565391892512892823542984588842744513662806979116297836826646532621822381191308659312052757441427457819392547343167025293429132734582344389562713454060166161276451146273154748264914437049789513285842299128817787625950113043451376031362873979654199362888474275910949172180246142203131882101192128629073381271051666612648229973963171261778164260173643071371872089817885522546134172418154531856469422081595058955224016500475061428252582361809201251420360851349306695122205486008102745512073459811217293015250509243348602266153592701244585120845664236742573615186621292737934676217324501698239798433702818180997757714109248004422400064915908225546601670868961811210301069500516256834900126494980419917719593529501359960930803421633005626722847033735096473902627338497611512258595321025821397913906364849889324456039269836526397580693753061320308557494490960043333460086271376800692239239127749509194376274312150179719192374554652846659507281375326229340794064688561140177213141506753050024151538510808210042074345783156939862118034543558091856956658777080025054646909213487566833172003254829158246855130595951269236583993576339655001386651604440753045654309981662578025044222335380231531079659611943080966026146501620905594039047873279105597086806328381628333914075242261948256902766042482254182294751364167939094682489064552685469085867205572234156435220927219965183853600536128995278093066462157450674369243661225313651304035321661035402808529257638633512216335086726700062100237342037778792312542538015615626279189438066287906732788358771836696395346389668802364230988800550409294725795107741484860379227264098098352701709370396008004037144328253337052218051934645155110340169519501373011504738458299599773801891980092431674371433301395828044294475880537350198108515759254744751868665298098836016334900112135990018689166143717605681517988268996702073873159720420955195651535602316853536320334836153770912664702481981630976420755525249908034479518490095851008426687868713625613591216017530401373097367029086989247730701921812445888748161794314240255096686954636670796434946301215235198902223023272037311647695367733576538558919021437746627207456785820092867597263023136890644367422006652362621886508904523702781340126150493531400255489069405349355273871287243952901906188546723235415294589794434240183701868821871538884389440214742594183923737604937594859299165227654863811129746201565731512281105541230633114738198470258790406643844096843785818355318554001533724545680973308130574998369468076904480459021947028286006340812946254748431228526184352620635099802380516832750479352467358414968631901824157358749063550220407096508558798258595181552286340492977221714224497464896780460947419948818632469204015854561288464090147588048149407310585013563220335327316223974833132671900471056848639439044344615808508354344974372150155972134093116001769462032370683170517317467659727467330342188565013850086259847466721991718821140714762919357119687012909851607209467957132050087218722381320921642841106236861365303592026613596801912825553329559329886013711858623571650083433068540910189349994022260200390648287855148629590665483649148975249213517972021845160811657097628392233509702135509558088189724541720519017516081098823569051530163211381651319520593105459986760888912642845872266806367580849220714008150259013406050519239820931394214269454456676866860160365460439189259819173661612086604229135754167253717146084115333034757353571897794186936795835935608156735344271483785452447801162510779588268530649845638813978398466513160232267038942961667235446132835284342566620309395765447054946411784070592629721384600486916257413347416178090405507680516568252034964611352222469805718951612480421581596365696219525761966338140751626784664580446455523010391237496510716729024493169357265253227010797153251237366780185623635775806317499474484883137103821911326207368905658651279533020837059978101893040268566515850911395303283782559017759362219475237745797088441470904617355364351238218394115718334468750369087151916593751364250827234376780473900817135297260669197583370684412266153542832886117496807074457969758911851372515795583555119676149693918205724877384723668755387404459721352618138803052325457562961792373487961206212330244086195314233416321907940217939036296360519788002175601930132295609763483544061368187573677923907266881318019144190828911177732457653788552543066104752403860319161602944400321918939855657896301224514352255610737716441315394526295499273111666748042298090665761468186900057092042307794855691965450218267394126175252161992936477335205383758953516980622966385528651851972004465359015685483367484884461931148143915104625567318566970628881972232318578156291776287292053136147788979147358809133679344910305018732867135672427615781910123426938902443250025284843157261415782840111887618562807304386385187866864970088841046658024511045071284336031084105595410202994181598665784275565334466437269500683564677178501483783047722966169156873847500743318428672305922245876295716768055350294589781443759948236240212871387594330208987087336196897261211817822463887735794113635586414053396369798675526635647251544180332164802915926505295731910202967500072538718047777709655330322617700238308653798424742948310560568763086483133027779479495234753411450376712471365635545072982181763305246648241534804987837430857664661954052190976565632028210558275366121788190024166934741781892590200851465657269490408856350877275688291893142422907836986594274029493332416958456967729420185607078601147115301038393114018681214230263438662465743909712504658405511770771592456611842788295146916679782632553747517716088545566877148217911834351878875099168152528917793418649756570389368641482845165009331944052427944634183840770624184044120961775661686260539922664802698698153869569628004426295597806453366887712690574236530531623686499320453017867192017009579455105429359701187659252839786098103681695626748662044122307463165094027046501742124544903792422932630901128914613093450673349583461065304119374890475736194589623520482553777539998982946652764719237415966341848769745521003879188140001125786053901121019408400396589828805214069106080300525249034360471052561153520431110086052020465285395333240904357149540066397322188511405631163301871194627591203909275214394279365443456697167499674257887452411009433024965660369123892780421574955869436724117616167744094312886730423661252581251982891373208201999329880914258745773243180170269642210958017270341443872549039898288131423980898026512676636667286584637561217668210123330824501087064082702588446586498736106465773641812206465623318949661797671758770417094769236254092546526508800207847317305686637611651462262731594977639301660342374585074199570462706805202459283892911900045674410554056418824360565107142754617177649638738679632547472995034709485680618236695298161472853003708698464814496465454709774724339408584223572914694024353195064397647430751078539765324086511525227120143316683029887690319890135786680788504726382695300323799006257146387942368070230606673089951202691322711976360841467421421538579948854017876942432453356196732501765825931541959727852216735815399407423591401273149765105650563781212950652691261197877230842517827574864321098974069861144792169131792009070485473908304233609928359336343802524743729353173783151954957091176832796636435116629573493528088732338607498187754644812794655577285379246747236964821769986591822375787131695587914050617356383708871351627842909667515698696735959419887809398748014326923876866619073223382941188691364119996640179705556040304286492737511367747247262971991475521916721337926423960409893580973629551297761795040739631861989463119896238371126405621142301943423071756806018474605956165671226725230109303202416874318452046355377164851527239440021081706494364519352895761122366954148662094104433103021897171096605666713413536430249124011436313136499540737809926514977419365711281935430970815152814635745153349909582280680469611243010612376402519549629134402116665026889049479538776810438547714617201052226831323103368014812048570187383900396772850411435971284892219465605638479054950470574638162509550506387756805060621045681700979657959571906318027051030398299824483316834405743892188953131856870599716746336647398540413096376005816989587226701177103544620549191608183190128416666134667878929594357692539636397079028726743147169778001883024695509438942789168245286473036546114188850637606562202314615318202502162752051354381134395767633883895498445486139722498654895878363011147280358402658184434594928644421488594532606436979418815870478779070689086504714930455342610145617931692642642970346173292751018355916391432390001270726332952776177591430006163110950148397187119738212634508112397072717277846884141119053408676437657512005391409295549075219597789366063174987347500879029298682380462660849855147807741474457456320932737482176441908638133733875039867452631372987791322987717123342807878372033348602205321088554878420121549844333179028200387714334252498293363385329715544847498570502740738372638861854535827796652130659346292373509886244323685025506598373204482496419244785844609976353929705986861879401535224545208932235272868641279328894609621659479098278599304940973090750225831670450536483912838160166376688416894283373455147011769387788374791430058567965027153034902720448715465390057298873285988749991970932943192614998496075161183024913738627771839620145987398831756508164145214969236639643537288280899013802038272686075538436972491801726676100214015413153319312838232224701253193367639732956460862144455727444212522798737975490541928793056260545830949197701461428745715346365596030158073148282394028565959509577067852567705090357890295707488176477076617453801183871514438301118401626690580092357679527489968526475210924658841229605102425791718527886394171064768815500710339902158810962153248411408965496908131161092952485300923284474947233166578506300431651888051693346976044504170415068318608593976962646064327960459655224069451456482113509643793805595109664149323543580177033960786987462699929358994040568742463360847885195947504930290277694249177156579929790268024839210470078114668604194762497258323385641537875310059795069402754419130169156262129333088069776076548287866810660915390103291708809661684388800191418863791946478153786861462584842290986463194639503026262653532050597472553838129102616197061640938898946519329698244712527586340092288995793674844238830148165425683562691412210313139895293482895581578547238175197057003474040463637685966360804591692290517772806689177152086067895278463280154487047334425986968384539759411106669701604723960085141499636422799281434597432059814521741150316991933074255098382774768999178882587772994537408685832713357874282238862625684107567611568805698608274653562848115909240677931713460846022823997960290516402753115280940216216569798469365095006499401158716266618160023017466412112945538963412978506714281235374456089805265058741278906908488858382980749058443022388688576491316603052404826126660611115073752933676696746170518470045567380131838068801992924963681097471458140531760366956034293667499565430182361587303743011901391442027666957603685255403750164026139917835230685762807596769042543935154514946401109492531279683771189861483878419888028248545311305165394519652934154527928230745875618555386114030953031329931260629572801890828773145708807853910956695682062650720370162545745685568276719503430301753614470645934185414594936616237909186018459756776509133256427288178715430124225714629593956177563126974938291487397163778188234946220321818970663638160646309072858023303860269082244482395670873304411881089600311332285728423251538574653414784867334560253767113639515580263397558516834185624460853092149874642515569442353365962334059377949461041754359998395914039856859130419463899520157307648249408783038956177067887245389368737928481075106815869196622860239955184641387788298398552993500621695725206283766584585059818752076586117913141264782104813893543223859373848516830741833572140366091799325137866021881224904726172048751824509170834190807480886293787505839813996287936285861613191221807237657119139282989979736032418628139860486459420810361948280494847056285022360959800087247815332999641626188055710237738915893809623660311701849466640031045561481065567988286581441784324825392130031508331576974180532695300638963148353771284272857674826009894542005518577333341871650132642648397361985678833834705035689885543173506893687994867311911010378556600599015094772278982692320119919990608232424230510124900406917632047661237755329086563011300401033732491394339909408549506212201825180262086349233025598518024211913963510595753520676948018018227979813714920187268868003976960470149110775704246089003524192682914141808517169467392710411169336869555683018588187033280474712371492324637906322233471878487396689991849788722744644200254968458817020272005484807326177242788519423344781334463157092107173218807659358935173347495533863985071651859050853711557068554478380185055397445955021254466477299324947330054964997153774009954942904769650182810981504966811856617912306472399868178914295729148447513435202340236678924831352777790471421730448478270778801457011315260023788023675375682136493352005688360747619322724077265349638162849124652136478161694156804744651549713939838714631967261065379056580162335559857681763405511299498634986941787353016276401053622415388833831139799650448482587366373969645680015267482578445511557947944380363451222759991469862831169810353272286196443944803705904158041776713063490719223463232940560385514553672716297281585146829451646854991435998363354732505312700630536698751776679971396676984288499514928535080601536830604234631159543920267607194804824033667593977687524956736750943262354381672982858442222994532484644693105727091589383462229170344994180390662844115853973143954944330888087411715409970328150591231994070714584528133912675979228446273399750295610281391447811097406137950479653408675018994995563059744034930442607590055741803644420349835069292317026443343264671708918263083711207131342894863206765022441790920978305743824930606262025299211863832420860934076988924352445032263506808301247984325656344540294945348707070927568415456568692608116988871699193798463030194641654675246850706554688705201978373115411940207124855662335758552771324274892299049884875047243836763773443456215525263896934601403109140030314667373489436529540613834379848988051765540661736168745604162893896776168499939308397239150416743909552324276736749775300422893205345680184554451182070005995777364939463066945468355599426796249120515631160853344131275450580112878798891923545698103497319954539630279343491169483679456220998657719932963246651860359589219953841173927353527794547353202534719288663478935492027229651793541621766824604824603059802872013023232849321121689203094121390649234395242458861706775453412384237850625463685533721741980624397501651316722588970712406935962048763843914780780702170014561951159608116526427311892924466512396892671370106923160159538038239767412269195215896370011646363743225691725647170813492220136879425290719719036187060036489859232330280543423083607584789456328068080170932960668357368831430994390241497829075243451948327432176461896333568293236029510154284345803919951064167438650435872996724272668427457551960383021097040035318643655782417535231909607694092792834147873571864713723196723852558941076963121886163920253994302330045844762928329760997014451893597012327232939746984332661057058587138422198636790075918668779025617862781313252738455476183381739125068268348067268554716649170899358839709555175729634739568512216369929139699531953415595994903706112969370362462687422374794694005609580462992978688132411107568303681702520116573198778002001871092391114119911755846966315685014129988173677961776558595871081110419147816960567149927428980516184598272472762136297652922207998825062190824812721021457887964356195242810569540318280324283095809738024517116805441554256706278510692784290369918677154356072258435142103962511746322618732234465108342836963295249022615250995822167741349848052198509746034161832623108665945369504523974172927803977956254286401745131425287686261981552367715047460272919407450102923685348337168172130522447386449229955536376230245588625808721950690578145009460490540338042107076676119473650684970992071809942016527178601043204391600668485682720464109198156031098745291853197421480106877463857233879485043297389209672479327203767578406271094625376673081823047543263572822279303663015019617917709488267701078059576826465713760578002589082979506106920790146245299876121158879772982246160150501801538864136268965669115980359797323571990182249260810461890816531789310023682386661532491260866359196093390137669100538386677007647540029836541957822446431557463211111462364736594913056728574061032730359171128779929810389877691496452693323140836395956413990251636190551992968255284655799387376077650997912698062819048348595598230909912059556489081804126364347750838123069638674943510500923593873542831181089397673357319726776669566407105564504493231906481754306010047300764817013316753480867716564252465188515588082388576528797659697760603690378672606813870457068466592424797525164171930552984234296415351555587364858970701180010567861479309180822267549828922449952858324619711665475420242643425193533227496378576209665041909301090169148650122325799777200075073390123108934804486174800530385076696375163296813493622729683677583083083215547435631966854142400764711650095675404528092350542224070605331127735280595968817021708338147249563669820884533962654497119318075901169141702838988970887281230333699001543869513663988775023082187697852314324594381020327657218707892228934605979959315406096069710952898412356784020962368663103070851657418736624292022512194138563670431800312336042114339627131037481958753671120497068208597283107786724823018592478170798340558183099370302365533550119589096135843960803757250441155793585487121242356306034311194222887005015886687298676776576936789365800018471976599606635901026690718087474555033140382973971811272122604074423654168611931801285389701804413830636450821119577149281982702538636814787289386414925095529791664701566717468501011942950962123958406473629895741692333156626968313280686077946019636805491597791375059249311201450114099802042843467256413652309986205689198952349350679556599361771909801795752196499545844328808103165095886380409391136894581660294941574823017829402911150579045819585172654355365361524424817261957937665376977394561568784753258625182019500710519274325700624188620277320100823720803902383852706830193568660502194218509774883723755997795259183581434936150169152397248751158953690150176982261950891328135905023824339588729391626784551546905527265160563608658892997129231721647051863977716657080508689508975758149730346497107712140669458390866922936417934447903513015148976206870232687065838197968576925654307747187317228666450350768003214783781092936156386050154410406298804872199635156386755339147205781098716110823870022289060870017579196880779724932471529427447964740570932996898267410098133698569880101897891619107510456608057818993034643799430211124033950945838772621099560957516080415745340424846740068377633456568952889626915399755693219110910694195922860032667898711496599341379899656697274609531008113001395774346882727819951207170287998821677671246396149172672658604883581169811352304198902972791509216962703847895651046658063983995345240826139363427358679528692100053718469914115165177057485125022785679954467128531170389618024307462007583930105712995382255598403853628894647940239299557441918086486962140500700313346699079200787354204100231693696239321861907679388058471378924571840072536822559130115212572632527743063913765187885384485177476784467348352928178893100061997709533539556068352193685379787362727057251159745224793888901346392860976334402968365818069109775673441187468258233585746442162969118841484785810260590594725003928719108223193917058092572575907264131078253974581769339368391430719698212189411191631327918812826771130637165747247494124013069344526417114697124865883148345403677092704849212840219452051634286865358153603337548668655094093957321678419458341869787794315026114075256894020402938513915764607077372002827240243347942587037235894250138349685248772588751710220038528111094997369348667939875200128268749023801271393727853660967088378862987316746915315054193088572243070603518529790303408011109605426865264743353046131346064703991735969784787112166452662826901362818993596949799460091184806550314326615408663168740702572236516223121168033982146822349608261778832898940570563330289542121499516206573955089687966111913977930746629723251933986529134136296775574845063500225066713218924546815952818617135947489175421717723655866300515906086766658742707867535869665189921970672002746380193035048247072743144561681227386076980671033459333429768609072577981423861361953580708215734232960055467031637968113781134647634479852098626074484982669978150189564102897677839061198870813688991329105099661218310701131544566878772401432287765453605563987513422070820796058932448024574905133585620637467098304464131958963998887980164423250915087957042022463143721267686788549379889342111843216110481012358789085762912560401479473139141337010661138935712418834299296455368649772774981819123254630557628645944991866277760791420006747311484594522452674135454639858078683620713689998995174565173148566390590953354159498367003323674360384447970209829426084946297808220788286776956863457589277574124167914710251282323177154755116061600158953036263752216880692710248698400528507606504705393253109488675585576027906552400977018345103054193598073697214385987387246395927245735184697618125433634691276905434845511770711995795133666353009231031130820516899463318227549135990783621449340869900757332417927889259364252915535619736768965071113723875446438629049471334892595940894768087420303863426205845920006806452345254146776473395060942511463706864377560800371384183818948170269065485089983157746810687818617118482254421109879807558972940113565971856776831627675780766689373070970966940268359826270577756351106511395781370148351376569430953413467638298191607335899611035502123978006935666160378615167671701495007324397095701997302806100060167422492488431799983956455259615876793893576318184378080317279091238988688196201631901899269016567455034907435521581134558814868947706249314372274751999696409363269750671143887619911628612175782797047928479551909484115063888846409874012307767799483160104296646830864861044229679900451166033124154336312791632998334147508947485597845817790785448372795055963148047795745177089005737822127765333875504439739074974295854416174194160613493465861999799208263320663419905096932934858645288049292045666020910416292272620506902245422641495276062750372188972797996613716403435023515221098668279619327413574675793840033110083566048466672350277153011450808272312446832112080370442771039054527671190908550382939976355314695955348005183433111322058737445583920099136723554694179610419007252897408856003806517938439205223599521877576248955500372612254043647457160752656163143606173171812375224475202184650345330016440986747730823466222812525461368032815707939729560148523539567935999598952813863446080781053803295742235469462078161787800648981819134233921687231472399054472717116233778964232751683098775075577109875152108871678396169025995133727195093286816306474592977372051206021773025370372887211113740264057177522824591970568258463927571193427094760817955040716281854693898981650298361852025774691242233316934190244365325326642750995637658722757201349454718393952689875672179989976672335506525329759221298810375267985199908714955001888641527364624735003158528997896578545870266196896839449166624094418289919416508162788812562807183285164147143481333653647899573756804897446079191951880867063242279816394398781758019763844990364744807910522451779566766667077631094850951520598047850451438936947344823394831085111808863019230654272325414690892146243653727683683639310623882195883255739274316971371367460011658789413783954491459585875241710538687849544203374481686521764866536551387259256068963278069349161423378427501885687998853501265069957843844263663930130479012107156422486765742637825086653830545572351484292194512031272188715219244309006208981021528454917138109485853706004131605128034732221097367862719017305215492648923373111943211721011751805591682175211152038852283151971088341172043987526080308493722609632496058569597838323955472697708621299995350317581256317350701648445275283249781228429364668344734106425105430075542540521720833014040305853188972609912758320194480936092558060669824432722798884609283964346455954383942048114511994199970365347736453789012620213014967664823150657152780262217403117045374053993895418129665699491253974162296552815417712123161266116736136345857962504413322212588423651433761189861016806323695784894634628517233180992107551919949947610743974736016889574978787619564021993131287380572566362235156153249996403234048520660755530551034831515425148170620845449727635062794236513724465438807030690135309222669008867879774575323934152118417781959334729547506176656803100084789476948273197768804308653867809428270022005258253451464177206446309463425075536166046401184260530498562016435120574086088946168088088149039381661866410594884437493822731553467901329364764288358083727315211918046293411609966036055728947314630653779965388245017877864404857136037114288137417856022791840491258014124968568782795864630122169763588579982328333343151699480524276846400280313516070773108846292292020068983258082403301338260827591669843241944797177791727746301790265881028836503931773184084465993672891619464421035981315821258354778687140447003844291275616393349466758640868119970364523401872892236172010668875666900898142570517470808640857095229213390970836861887181472589459754764616589891413701925621727268834602138649478029737432895423113881559187520486148297964236420093445411478237135766981972888711791707058527740781584361671971904481951723222454817164071918410445680225095695330411525631833359218704368044898252699978992264905453897287528961215307262182870136973693514504269040130222552196285640812647096310745882624592127160571816636982064904012810498389048297999716802290559441241362384924825401965019512464665705819620261528141139657890890740685231133485796844185489878232255583543834626580920518660807942840814152905502319893772391194783875873021411085613720201413612376373879232260674315260797774686556302743566834133664598160900771960455378356060339254335059972436794235845382718962115333670620593977992700355865327193761354477201104922629213613778636181575966422312350582580881953987418085511014324246580299886890714148030179979208147889467231143049352039437677322229578852147688688440283990736131108757967330290352152567797229148159002693511008510285559845589546222787925431126169403144697923679752999718012991300210512967890977055064032627640420379969455107682645871754993901004715652109603379076554742803360068765423835707260324056566681791601870433004573300469124861379245398109800905164097094151826442703153114380597125198326933000693416754335570335141460266302189160072603148537945700801698800671873346641680018435218908337924240935461778371709451877658809144955909786019185517278491687048117507721496106880779327275207168942372747892580972635807003359456367219714246766785469781717045518724926832967199115780041059899984119902675978607653321198544244336235817986369539841616332445457968799859638942309958567942758051287973262456400134509778592430047680065719225811546931586452022531220830295662009013059169437913825880729941277093769776827476341577168478356507846507705048250244532875904388418093946719299385770812241607490654483396796201906389145127170539467674034017584950767726603480002279404821320602002428545870544535398456458661470256169664645487958535898216899857015523243627760064590987097138430674616546046674798893486642073232687136598372342245231967924078819464374133383902122417305241571171434508030044915506839246281355023219349936897495531978221495898296455695531132232257889827489871987116170505832349014789843483439991038330471203403371756503676419030393279165214862021557747731061192645125215175069390567819355994348654875494467791279286326859091760754903690948900524609877092604672738968410193001262020585467698616621972516471273028270955723901805130202958120007850025017548725729435709491842259959631445741746499691981558005374399606050883912586596328935993825147991897706106258662778883321986350651673233880470624366265596152444858717493943785766429482552338599003561015329660434258078673280852305708839777964881469780756684587049310550014201694682413553392052065772437759858954634138290298217767696602406965248279273171650681383850482866912102505362717044149407948034391864955166742473031486463660989943978361232071820861909298139110416486711648118688192778031105975361688422926728275476095094739086782055827228304527095972350590089451323570436811838020872503647182335787355810186323992112849806608710315752354546328472521091478967968394137809070316973518027004047858521673964971065853839507233282688211005735048437291504036581301183141136268155612036387216062371470079009693441636458595520923364647512948970098676549037401897897751190852536172727943494750117031093954868004554922108129689276311796537876627466429347024288382573339204855025148460298676280786990711597729463568658067991325315897351924027044233383644353503268185438364781313805970024658753427596115396779190999166707019625926219595432894655397026114213628882956809008058096435668606703754374272003779929767574035570999694161828196894788309068482415084193595966057574912835570529586217962401661512734483673531563366724974538988227967782385259245041380588492328087461140871002872520815557339600821248250078945313621535882074225777304224637915164346598410759498508491678114567152316609330337994602471583395361328666084108302842419567680600458253805843022998668142270284191882645478850005979349570204994650989070228107510793114125262077884086004405166285687047418444308878906214615466655582208819329091585456578458168660670155006995786064638038863032358296398606042387534202940241455875593527855513131086804717421409304854088967557209289387659696331784379712937584847618518218483797080541682405842020104232757281668936650221147812086472965093385691026992951479110349226615108357138981375370427586617005648508655257143551257535860412104319275680512699558522953766044952505021083907173646445447260008389221857661728971809763606536042733040537100663932166703919960313250425042073322726006704583165862229007212180031989748022870599767255785546584379378716144883165235752869245396236910082978155165420769151857438627006147039019537094173777913087345121703555008353760260916331072723483392596403743042250807025964857530339187144945583703043268688534942898634913060919037708156015211566610989779862320334467526580812491076623444437369134169362060698836086155842565660342337883649026542675538034612862209343519936243252623018024818803660127680119579492881644724198183280735667631509424309532850716416927554760616558227858915062424515230686702947550544890486815090101319027238362540438358367150549952991079712678363577538672895859858036949332546623105909056114758142250975357708187817096224276549918853346119726407320801878412326787265010380029838457167975635631274642016742250956947699604610638089387275324321603829086282613174640008568001838535035809006966405760573202950630190166114130178878028893707215412729836752421381874839803411981969599288476805249421459254776078944555917076254696792900417910681941087628101743850240819839762028761173146221479006249847352550623935413119509607876511688402046925877582196225291102713563675159286183824718395820427608117844764885856207382731061424737217991102350835597291275188862789748817385934924471304896952360674677307174195354959114933641742418516762454794165497180077303749501371776638989137848099366841871164452819396234897568072751599819966230394189596111904499751683062139655131102225052581527332577185518538343563421633112594191041896495562623134091117362778188950691497604316591738801276724355034212833611979876250880172013013077595438949280901382730021064038022113096412284727708910869624371963668901571317784315990846979223087922057866798606052684943277457705872285973537005077589460775298273089794263322439514451668880121445097779116841543909151428835195261981242166213368174790087172362750166418983391214317371447766421500788337398096672215319939145839429173170351187482899598223683260204258795708670759884742065017805490953599958828988462601199429731586450667769364363840455831185354501797809772285999247455501748251847165778440635175915954392948345007269221327113920090402340059602226373672507401871681652753633337825628699229242856573551759766916126666362309491996187469513044252348538740414366872749993136815489839232709667040018232715084617132290865928133340998374796462307074110098302872503032723674737934523388474875789478262040142920837956369505038745570184455851479832323105791844603042467180054675344641572916061672815481940771085199744639845057715074482927966839904488677348030726216079644403433273958557585948595074603196145136328040234697366020813469037634771134920874987264089174434642061616650348417030962751288566155305675057941204136529908660702430587044021826437083377072221455582885261476151689475736455514892971504111805681965816256045994081412533540641105940366861807696165009602496556300986709671742762322206343725248839381611577201546366535351715748346162705552656403098981438076147001688249610671787884945991702810906364115316988211363264762662639708074951317515596357070638806701311525871717353591275816655253057041831404738348732638784375946628504245628182370945709778130996699087191586655901725807253724520401340354866613962808921329492571043881157845042343899375331551759287326717502849463035285623861373274315573366656502445073796106158652756969263546707255560676240754920914914369402497815679237282330882196962327465305512392740559019148603005435352226857714398611642130304249384197677696261327782409514788040264485679198249496399980916952883518540185904286536196448846921638648850625701635157807530840903401220441123874155241030699804945025220493660622720103353427201332598928454526926135912107936760724718660226000327137230457213845225557803422709332630392976114473140707698928668416484581724476786271870995386086334081120783381799331992987850079888090737039829516015398258485892090219922373124921553190966268087543093569232597264546942318030177041447291101506901244998590438338748401013362548873944851504044466985728557513068558478978937122983199713865802693261777974937582385591672230243707234222448153288519145023022750493004548490506534399669379306263014454274001775813183251913992795292858428677451032075299207279504802363529760823035967863347484405057602277546178615923596900295626552843432782098243833276013335102252855530893259095219753342830369938899960486146691941673557942647918827873022609187736760714760806900419958052757944184539168270074101023020267187747534143339070212522045394626433517463563902059563889560108767023376570819116800764930146084243000922662497208307408124537782530098353181278427858995963931692097089210569603275001612037902940206480180684827680116473709806657038852077023457199383841332468006265375791230420993515443093881154776409657831481670598623106530413468235392735682886336582708083840471560134878767806496929522984423065804351873428793329171608171648881279773128022768758976313894837666097838132443655383335176132949195304335590779489711129491030777794982131099522305881495638610911304817617063400536910328460005735229227971377592991213593811364686767658899502710978272596787278714964771964998344916510644221535151003932457377939953632633245400502930266199524911903150598920854081895860909871273839827563341954577983084641084266799604027479072645122542884642495960997387829725863114301526981205764407554350086671920200042040246855827272746700752015361648281792275849308061530190220809153179000566449732198923241543596488077249024337253382509560286905240365474762216298704007848967382671199967989428518197837633216765136891408863961993500814913576698941038347270413480257204704769419794874219320791954863718925490403439621987938911174038318827345687102525904393170902136131999354412374233094191631060138989565023443949120167176232965067068918867658804701097730867639686738744113107892673225416354671179742984302658875142927885105828437767697780801328176155481420341282532990009629568889128760656039535098299652359598192560780441192815010970476419800125003919204861281027961012264197248913644249671526378463523549197209742832941660717867950257344744045459958634781667025040022508278192238837703042539959793748290726224810397521661096508183239352802476217628063190467932922026074131038262595708904955101508261491092113311062815287178026341052220691848033466848247854718990573571760133135256897166078323862731041319549985773579431700649299552020707642519207972532080812828094242053013861189498226998362070418056100107856157380092571448846527474826309972518907649167788622208265887877718294129870016763227980716742744169870326936800132740036494011736264727512045871692122402913468140927540127008951615020498701765620835916871694129549570749732663440164386774320193419967065676857960983541182028519198492604760789596798640446162980034658270314711741138063491071386644168699049747490839876979248243208972778471646912742755033204012298534683174679265513041665136906556166235143399974443211969931706977831383315236378160278736505746324601213179610995969420677204896484026091274308429495423146275251622797908415103656007585452585770745876356178279713028069973732540384428686929557687722777266191569837796912003732400169700614420645765745152729146246586644180286026791335546678450205483755807512820888806457864959032694464860048440819690487338996195861519918672595785709656899244711259838779077573890424228879231237031721790312784794858884409724541650383015857961634090779759126990173806882634317271284454109713294478138994310224321406813960219142559216956041725524388546204946180201292313846769397902514655885082879600492892878224986817022100831078858005533258418222831809079888520781514008882555351950852361782223154189297303581308821887754746134801693685861470221252053412418439600823259720194228802108284230075490522904407895701543043306863136265744502937746585301519638062133172983533914693211202419063700020336284572409429971636337377048893103798437724110021790613447742174478529702354221855583093588351601837119503290767249930014009086831399231403697445509544868493237350846074032286464030013342278478126646614040259254921423580857137353808400293336356902775104221017866352990816759995648308634868663687898107428899799744114888471815894452608049816159498624734413249118060213629233543632872157354716367839622687286325615270952481981790820135281598889353597599903072016574032786143931757261211210575082380998642917802238678833180929401818343648986304032532334688643043306621609631964789587879505761899107694598054762782970260953072491849903771410244708503127969993820064183554053635961787884641726796139430333182175219017294905166582966967576092252576391799449103316043944034742906841951039772375116951108824232750754453610555479679525207221321226246562780326601547771991147049065848348520880754164821162370409792377130526756936618519551758202259097380391798871042598042685331310615163488472276804892409814728448529740784078894806378766514464679070099088495267481776530201073645731844867682207652578858369224141606136930308421570728058400450122704207869317909626694911530708948508732806703211553142382064907905716941601994912840547639598648930307601446516549903007558807518844565980914424251038309110642459743017238903919328969987227070678235339043895510260030283469638004239181415816127429627645766728367548723911237275640801077264308383702417190811301531135761350805541295689851206852471312946056977669768005182565390589333583961620687740744908298722604070617760500592841001376931192299175872073615213390212803607770915289257232944662269329330592976906168125436544056836777411969871635235666626018902699537002413904642831116663371228227156247086804796393841225647147971589955996232968452089924754637369369633338391570866701492897802763750917434098249346190608928397136875084960993358873455644260421541499111417765447568365980443543259399304559159190692967056927846633471403296342384476169176768366463355513935849935494955123623956972276046085378002083122216491759710003254183291661014525014179505725872294482002346794830351682970765886139953509658833620369332479838285723990961981790063584884052992703138613053637199141968166263472904234472014745162473280514261789376789133461712556135639621510177766783341255375625111585605935132118552418935252902679849804562649886346339375682355667188095378950843316904306153902715778497504691762677991999619006717104653422612858809204144615963535826983991940691274829726333614693924645133697860768709749204510171738889763768034953324714154507885844639622429411621063229243426072329873358821884989960442805335677507276079932831090640812400885139119364433472689479311531999325638924376782376889477525481401480767776322515931493930374233651539238978493227136053260653463421043399311587663276140332454021866996777659267410656588879326222189124421912458342527681286052103647107818379361873555241204253649312345560939997892600713463106815723764193611746995416734159204044901700806599509775046741303502530459016021874592424854063194435448874275220875882504736134876849382557500268340235452180441487696037173313773148168317566551596013774469711540434544381219103529285676219186494601201609951032879896320972996213546330875543704822864679794787528342907379034508866374133822192330386885112647722198093802282336402134240083246931309670922445475940628686991203698602784039576720181355830678805360361132868881099880982998462521938703197823926718282119262689084661896200979935829776852437868992969773106704472547968040496840490596631039507260269970341859613577243732481599658824993681603222338554024825605146455093430228978549112170727365412576973075804201617314336545636233514434274452218242193105125075690381501566221154014164721431703009147131976920687463792291077468337005832677926198255664349359535725272237395846542535123715523810524461305526140790222927323217671584299664350880851407676130888151068214708380738065037488138679991490801229684206816174109418927092682006662959119917205748458732402658663546344273829269404937758149034896554951130094896026304615108933430005602338095295600430383867385160629167390124350650802773829104730388956482026613191661815368480151951745544154815349239156723130068366395526645010658619024756539302828595210722885766953830614710534221877933272185294118841680283017033684635700413680439472577202767626147285118377478368137753205541004513551702119774163237721928156134639320101070718026227205189662129069040045082962142248641148327750409118238959338343932927636481825131954383112335814231089438147006413541093747837526141183773481644140630788483309277002211786299738337560660418837988098640168007505534371033822323522414635981824504523867364811901720049699672370510026823001689945714993328419760990879251198187201168963056701615239328682273293130601949772884084905251927694553274569974897982395268094462760753623787853076750201431566835108898855514878494096063460952012977046157895030884468766806344244237627091022599387823501164054727988055931349187365553773155054150487772385386055937004234393356617205639295072953932089553008648484898967541697106450255929836100175155463528573731323280235925213510664392089807109754369968461046667300465474934101381743513553007814825421382215791889843955338781801964961523794954371097949278262105923630473843586709245522914962728922314312263216377396239283486410986361613568617834234677083973386372121719594950142129673742775096118935767208036158869729107192397707734253603685152990137421765833779894870960033962272745221820363208155660391365217834022460172014896913608690340215762201029612549801472644099078057840707522761358245221206015073097806675795399467267132896020520321097236957062406599691746214681164436545158322973351653140203326763327888140903601748872843134545568300979775081870733642350539184012766982847756114424866080401383613780929806202215532048162959474316377457423686959100011271460631308733536082810752501023430031402968000936378193417772691727783351336911110038473559392014190931148862512761769830163822955682574374791822626240489240694004955803242794006351138806921648570649879571994872691403880825305597761613643044747202360677994434550715255071399662691538731858074250600249140494335185944154467867876379671511056374712202734696545868807975301950848838206701433736809777851180865824255431063178442920891604923457432264920143825109156256202870684837992797432680353933053970377720764420273217642110671815080236583550395389773348762511631379973359892755120981929486033124569725447176507010352216970041408395917761908300144812594622690958811797425755663313001150750426232098941071602589633295069655539332265714612268474753324718292816194699205115290679014772287465307251448747655752639832697339112393813601092700157460448982688581762351109532639736819751290553905939917438363594988807691847442331016840067124581414614373977839055706536890865801574266801937242247587791154089294166471144518376680796423198799207817436566577567757430085158988024658428846324630439554118118062703979109932677640312277517396053823532551605595559592220784278289217221736727004575022263557562198477851887355108828636211022882892559124478089059462342123070626304068068665476029492306059505252613080107910249673721959257276760845221871461338237102606887236124499695550152122512645119015550497365704709509666259749611564605626162378090929417616234958052006649064255535985992189537958314485594030745547308126299466555002817123962749434385854929442559071926443360775149698900877195582243117081221300013197815546210596391352193038096870293002183110690124478060638194562157116973777729951181752101401399563475820900244578184090500484080104207343160216919969024984517576434591159080100502359763923369066737280066463228036473287275912380791100996904395322905357917802036647102712782277896644417292519309661064522806489628921085966945981153353843939754379497286816743365719487412076079235437283313118782321499006479102551110994685476677310007911679071347856507089218587797223637019883643645892070601407067039318145888132702611645328349069538092196410605571719467905456427031009901081461955961931537037001681923619989085750446529665997648135381986988693607432566795656832299305287707603547250783219778933579354511598565770214941171034294046945613854520548814603571869751040054134209776818579811318685692826368822587590639773394535710043899373070184708349258257012301815430859177391173450707150062072234643631224447608192219523318192495874707385480863065482103598844720940054268570356132213058419898884173165870620741387980750697575217438828955464883480093432851136081845596591678027015179907025696503554457302251447317421144671185101542878534901380824337216270318058782567035114704194535579533279568262473816327425117031906665419784333417190522255429098605633130614866091370343200327118206371648552297204682322115788774711598299182510050855727066325744470634970781782187135901405172965319910265993840047118413885770765048131356053980221347718183287408847056569064068513506369835897958610619078085531958874028288548558972231017189867768264021705351785973920109054330836224772320604819922990098057056272794463932075765491399050526026274902204157315749787990787606240496401660427530040474815978105408410810516751359324068304731235876574898554347564344309671788371213932496370888444126007940641792393994542742955798942382189979457135871505970500499869459366893860587274490382656755361217878013926654449035582965343235820087722053440159902279714863529192712342574730568020128883793988927177182105513522856958654427278950651156952946855301213846419178159008701254049903744543820884104620531299144247744397568302506341429355022837483892653032383671633082751247614415220486498967639883310236691217074144403506312966694807740680382287151301167362317846260042335199948024349066793478400936529200193168512010798051873678307167606555464926648082429565088481725411202137465542629308717632585116636545445870187687966243636152601644613167287904580339576117899999493708365376646559517310701954279944285513724770429315946566556878980949639712684775818359845736683728188648236295254128399346634627178319323788639176438863292515497056674288127916789980197313409990246904083526208977396469675651186141527811119214428100847170398283311598339588257509063285811139342784655086087727026192236856441747993426563413345376081468337394901383911081709776921393668426444744166216152991058507844297491606111589347071197962058705599055556730335658144212078587576881288594761733682408589110373396661333382547710080019153904124605191824014936326001713381772018639754831858205622199851523431968279705759374402768790483256081479360534760508233618121437456386870094810404549661153526343971370269896772748398020621657159697127057150181435271464534352484231351166693112683909853433978271705414433484772674068660621993566848929522940714989938090702263726230438976438246284562683166997863276963872279192038370529264431133520820589407106526154088377083588549805898772351530384678549732951656771462530862804056104043781262705278155922844635377429507730373738390790592696516795836723505260062764748008100764737766252948852601139242467167592433322373598089670464746325940513536267454518464389770772060681772299539297362095261071224372012186374589542811712782825711139928915308808733232567794469196444339385905515567379024895601967507281353405037108149299750024928964965623563404260008984863517372584336224044096648497847450131074066408261155787523770874183820292944648750521897502775691247634198611575380814094809137979634378142161525053073555841584843056751506032418147334890750495433058212496342238060092594480033471209714675709398650729451833020376728263864325998231674918985426129748613687278670979750958339567007882470974519245977850192109264145969837655871720231199621178503547655192936139697668566115907090775173838584800447961503610709371227238903681854153951518913869085587588574072533719524664789808597681208317866889274224862114161081576137843709499445465249492228873879063740279015264198107138463566044670584239219078814473873690906482161337059620065981669734537796758410585209743047660755240542396153838434995453900938231191983718003712173473686068280492767957112720175036376718067893888597403040894091958259029530787086914548705867308758068109786220922029733973069775887277053937388871389616831495684295033853722690066285305604251407427633523464565113115965450412107600034813872839746997157764975951916365084055174717279120564171924300475128931142174062109968874872830910405665569247070478279347469247402822498006359737705716072345291417331908319390446756395289153753048941238406627112493607834204951444705887989519930869555021084658926243249181970464305745343180168502520864749161862818402686456800416376499027036597844438390629322687462735990770287850561956998693964078173197955560200330659968169168680587364528221211656722117642401170737510854550503985052916451559429619569595785211182496694059305968364969576626401166906413493522106789727023999979644968030999548212579633157230619443699537699166975034201664360772344375268099197413211258361458302557176709477577415506194540590420200323924670718791117683746097125207078528436747390758520214427279082465993894067938265917574740876319375202653455848624129022733178807177912788896764697302555670841009913886233913026968450129109660253737334842207385778726569235039129001644215872840053799691949447952380112802128442137441861475739223737728273107802753091543829584160566604293731996375657805152653126585865004320944192084046337488484470048226736049651940292537312159561524464812878191046438807721399299845057695049554776065091894895622989022775683980990473555825706357719903001730471549838696066347782154428036736815055687045833640870097260189494648132892511410700022003003282949932014256956661752762647822929940046305615645729225636491631096579629757058359484218041897674082371775163651778043763811968638126010622313951143956684049915498275914815037820830167166129054270069423320352883627505957945947861526619055907240784612008890925522629831747371998822118672741881647569609735765731276204301466149627875375694193995954396354958841993012956264862753044801878075561616800563371227636685569303704924780595548369228209747354460833272453399867117254609991865957781214681498505202902448351395898358474328066919827355755474989553402517738284136159011304421681142059825102002700394656186841486019126986550143403629205136202766648380569761448983160067778841582745253826702724508734684550447618303804051467353413532431530754063413238725112940581171285511970334623710799614260055422700234946341138553489076513817281273881352632394794508426450589489557434867002060709670872236586698862382089174556267883078280163492048134126979312471692931845174936790375735525861063363058595949015136685932046324211127109495408306348215463949372781082546906907443607193776653405119111204484116498581170236211407761100049662127106196440337942167227822015348089133141069219853923214291062853863539577511091459838345580386341618386623574997997553002850851769689207404010839197208147588340677254265665056153769666454175883016529104751093585113342605472973372324846198307423224696876294149998797799433835213630158271058183419312576004191895484749356169733399400509259096088033433373681157847469372129279649832987725216124644762652547128137649049800278028845013284187064532672242099513083585836500168601016465189632859491228481643495052491363416753249125355912170167309667307882357260213758633531327508587677138879841676686055287870483505632236828628490669650522110369165341021288716145276937936380344569040358206772297915140897850602866697109812972313023089274911566678334755465230572910991307263399923046441446278210754114510481233742885773137979761133743412285412807945834648734885408548891244593520762458146981481670249274914795640228606508193101020809495960678720597790466122072942124699524202792204627126759196302434021218027713674143738164693434345118328913781497918617689372988718554727875055400961527638466739043959082608768549604560754030207377002178273825370134709472624189115957846702337957807138658247768074401174888457881001779992272197392738316564386776059675599716619057951439602229829141887886063717849043671488391616575592841238997084259218886377548666240290214941074186477614789030609639318952382672833143783159060273828235345014755719728545869559160798969632392320317204927561887861859876403493620895039157682375828561463718010804290758547790678072103810421057138863798224871848220892954685479502653316329490788326440819769250350060934676774755252940537881316939211483970770979080533060493647781602471622155654762433948797216157799964085366345238435914706194458552790402142090268035951863118729300477395706566999692547375265196182065720817801977235756937002120932143499590193620182606456028018064776985241775927527415451626082745420576704242205971753069087922377284480445529289145088197705484523192987921451214249835119942848815010253897937286715900736388784254046539127996937084140742777993075669478656120117625460787496212186956387422691001142433242658426829409303029921189706008163288812116487885890379538676394761661787351164333080999221065821979245582063755305221507410069567291979941267244208031552814347672761372594834381513481054083274166500163319208876518364290139189750897246523320461073776452032666557029651795865330376415099560242433560784881577427069998613428032710129718825425349775753118937474129319025732572261023317997726704195466325963280208409053876255280560884557690921518881457470145685258598061700199091074841237045762485115561116104104027552182036417890736248635012545687235390260773300333775535281512553548397337807005236067448359381265229692351624375200477883513189483370291798306541796372757717795224807916644293222096182927143463008397533852845565854628490727764734309028191627820863806933466591097981611559459532886613101671369244569779804654516972050903711353394727177267438439251021093209999175832131518876022349076277976481551865869194735018226589968630549319784049476440802082858795826423168732983221092611010699619122595575641314939648049419445598883962390697696285767220961754990611903156947176842137052077270172951612907434824587016236815950889242847390823469730931467332676587978205158333470468651908371360925693796792819884454865204392188922185002013930568216123452476557958472768023939252605025947479592187147834977783748961559345650635342152165500960373715507210684424891465173255897814699320033313803520247298215112741988376485652034267295501698577679789700514789062432090514740898531741370001601716984083416760309486918333625583997949012661877236436245948548343493843320587287512721454167613373786275975236147256093255567726441493065158266427196749786062189001392302952470577444355690074047394332620591209277955016325544541097592438856922272544312879956018201924185626542643114382334219127502025864903908317472962583422119895435328699350573550018082057905495874464870911184945743854122043928376016848643398213229418918030112490879611396274452778317349721082531110723291938337313798214904040308385501944814252613348963507559606432397019216836905371364815101969050325393613837771697063215073457348431402826946537661285056089297469082365469264209767560167142181434090419030064343675789558812323725878918558357192511584820069125160494520144491123523538234728982003439858813426119185243457507809414601205058039265999013313485883883896325332571300313201443245960450643395887137288717656308926765574890711419632400433673236842969084679018568128401053694967437430468702507379011238791513907961959465463713134780684948329059670185277746366873299123776064380442874862996072344547288543448916067862018335124340202839416542954558113904314556823268828010584943606651128045158917716515397827799431742277482434956720789962561449371367344584750568764364797997292707143384910063248533597354469666827808694068131565273629443654323639358758828080912487901863232534110147609463949266770780647375565944122805942837699472648322037673933916471429235039934532889758563561355809512438051128907475770161202748734582061276028990634931286099920162364249752708282604997996023103000395456887445966918391077911997708126268167685642770127648573621400680653065565705427357723037306959448315762275764148664936159619508962258794016302772611029501562603121985131461468134408868913595937392222200586023914238072508379501289742095414993067702636276638215568137112399657966886387927368014147321195106955877505361799150263064941763769822166142493646481537752424746004088329614880319076846114271850499185313092053466732258034258540789703115112277497048037970418998212703456222100582606719441874905992902235796190482951324217766503202744808219054424281200403920241661292520794683309912396635848029338901553389174469489160255056808724120913929006085133123349315245062500045158520907739135748635522792169505787889989554119837144128621813266397416550358055623441134545378708547398318767341769509524171097558411482971115490338497592936606911120512210412208967815276286187959591360660140619931205011307681487888682767848654970647562174931373615438557641039284528625154254324944260082899758440672347412063656345826509287459353396551473316417372371691553811725308065327178309001670696291348136381180430206757279325031192520365794960631221233389747137130938465378313166660533036725616862222424076357357199783988089317226345768475423402078943709553749080213031535058351926789562650974539179584760093900976814864604024140140822986282933594394633839723847650470154727347387221180572888284639636833201752306151356791483129180743740726787811891369003820156845020685632166487653850061579464198458265398245987099320838188797521638636697153886027377712652755483284332823277385019891929463324964479612907256919947282410165248736134814649182121577085809210403394011437820998637677992516424177592379131164115597431680503305247871449474643017178223799135624139578197688815932066660548721546885427677242408304118069310456539491482164676349190413394802710513359149858112808939413534719971270567235949895543237131513954495504176116967846824310676427190846214962405273865557302954769257464462791537103501837304463361480518913339982855986973416756341619440029326073324413957593050703110583317298992562216021881877084015227940663235136239851175026806899172391952841972414390293127317992009364188225056125386988029520513468910401262457996477001610449693017086980077916096279225774711020665359954373359186981149342173757392990585856997029808688423856803535915205191981293524208621481259018949476179360681087673890969555184970104871222305662453383531254281265868335486226341085466153861028950870576194209466701779370884368523976454963642181315471854118846593673318613500683173446670710302329474299315581304240264561542586923435906552160121224653310962598328243406056215414453884403623786352918337447891987956676293660137109094121245098617305960240583140551120046936499472391065520092452395411288156240555577750511919280564483190292156068523065904024522741176649634586626381483419115803750330391501637304297585028282191659002264236631697572897994105339442277029570035015718653344078364103121647646842565480242999048617254527374629534338359240587283298451661401611405626139698863913253321519325615340092617498052552599758289137328571600942648891180401276493832308278579432690776152071014769625793029621630493911252245398219637336492454121719026417126457051486699038572984752361526936475749574124230857073210525199926228425251717751763253049961273310628962351369782234070078604490449999209789000127946890461841460700643565642396260656408110994700218743676225307035037925460482952314849477566306962421168271382838331083636934774550700783526338216200427426869459592537066080737001396063115249765844439761416534793411722375674581905210574888870486571772841541166097375922166501881592844332327122594800998213399141398782496550408906381211292573276185637389616257483883850369950680542379273203804961389711909586952095091449262831929813638741768492350614774951957990092528123004166556655506213781929447632282643726641057715683438886010679653873350727021428033531313307866918713461009379156851608519635469166808504034121808965378644049554563686482047788149089704759591345203374335052623111229902207388207666575469242322130194974041086658744146100931479848329865128012953415478938002790794402752780309398721831078255400031625764198353420900743847155498828441990103299006530348825498478115935975900759865304897381726800448084026679862777568955890407733886250972708542919495574878041758947477921599068334595663728370532038805690782233700871049340913362333876080440517077343107520304658953900461341364578115665094140331670859201111647546092645042926262677778820736311120453527680625907857533239575559644075443220717970684960117272721533687600574855176780923904171597882720820222875626645238553665883607455334889994692141798477373246942025681432245873603102765398708958385701068877749136667344349827041481345308598597791565539278027343329232604492735552118778623600304155701546986900093029826865356051859037752198782225404719590226284971210500779179711175682214244662586579771960137583413260969257247350014453235179488876115426630625616247924315642601819668374677409501473289427237583302234295017966888038556541349471706587631923604908945932646917669834580741703445176009099448072483562430574607871359234678073926974550524407832052924219333010827632219717200758804316971269973563142141379893321487752874061995781264095178592106321354555322129822272690847302798878646445095157029647159833350657812101469046411724870714958894570951091310667779639356623992322481904783816283030391479757934912755888162075228769976546720818760602161601528477904501253849166742253952008666906481205960089906394917547565775397403109924953546742277607373336721269942550782325997194415541383122381389413403944384246155041424441436437219378093003140244966002210640421987421217441727795560883929788634258116234658909888281627779080298352354585672704147067535343036553399658030339267600962290277848791665066686643419916100126302678755328216627675628669158071600571358601275678399787599292030574604627846567668265574061435128439897696072534663964609878798158594027540881034454733259085185508952339772940018850709416940639506344324094092299778115051230615622327982272510467001504714310981465799627575452910314782962524798687949111472628039725039370144642236558267397587134094408728248494928072564051044348879554441897877385446193544015496335865682293490425002303535928508227749569287016035874665772827404473005106780434783658095536001771760404266256421066331559788351550075972667883563618574152430431958082077473718507247609384256066290553670983481008760314552281832626561833682060874521754755512680163294924993584871723043362796965233404040980895307855624629365365011224052215454192138493624940268348558512577405434045003849174814917861988947435568959119669487911136412902494325906201237756051673693516280930017147551868792091494516892479929509463948492000658132868775450858459627674937242099319928721569548744527303809529576067672694920806572124895553995658439951511737117672370068198129959050560190436622388055677668627021019975011963856653937589572850921283337611090794280473042492053626891517238103947851725871772086076328369440172581500551654685011948742954844977631623176295820242823224929118447795439830747342679775746624742662131168642660379395420652342091503062428331796383226967034549122250027476121317473086830231593675500686951474456412829827114668512111144424662225983222020787916922457048900043305708773476755405741126501138243235137215089826073876526677370197142664460740132188824465549338415103933706843417264048849053634413713860900279871420033910787458031703938211025204577732687645612655344964639212707370119092580982583640263942216608056958096611654296613490491413929674882654658662811703222251061173477491247410653163753184341119994799093839784350789064890305568579637884928265826524894619281628135284712068481353129240177931348420061300905993117522829867138568304127435682858281996312101284618970702165911761085488686841722571849256010896413500345331688222367922925015160651490718940110983315103546917404180967084559245285223906764659813016810487948292974837784241866086279738733563105834378099698542558991618871486061096716089824110106990192153407886488681992555372341867073456590365349401128428069496157505220669777444171415657420900115776331877210522941023651062279389919435595183430712725051799891198433694456695948092213221844684679667323666858586625510749383044369887729706619950762890259751455697172897405382931915175646087948950255923660997842872615618352712469220133623808069942951345124915331779455248004998154475815698894924689918694356827470970880448130704298916080009382329694563923736774181690849040421267983871065839320974567726064940754055673576677256883898037080976087592102534486348161954861745975689988811416729126084055714899458005529836433280720159767857398691230672220070517637221225489119297023283801924570691559112031976888873549090224656213570358148635552704633687913023629370941095019224496797941173896133503138351012556705164244153038794429022513184446616748053118099965460246412482573403852557412854442387501797489180073274218868030708801094417688237938759296033071109433783487706094416022006004413114495190466833205445148232576847444094838841233881146071910936253696083761302015049366377167834731061844270693507791241530131864417716613563430448633004333483571476069059638472895194206426972203829191864674962552944265855488641917794204364291185757866411550184419473971566908662297091582153479314798283718170956893559537392177598692551370078245110154222326741673244550280264239124632695985824170627102234726164418828154431511290766740327287095690036622777137561519980888735615385814721088484712541974552113591029164007129047708245710303525591807468383782876978259977204048563350484032623022675412763558071821996617230717872253825691483298027202410674904675409341691373799017223860222111359400592305083452501147634091070008761804348243804972946443402297656577817009188605950908847444442019476167781225088940822147206410342187617819013282319401370288845420676591974527166761650990120859241737728174624542069335585842477400408174403183127567441591552617280851857131675992665809750580376569381409989963014859393667917948325640151081238486250663236053017235035960787758016891395302529186248874527980737360734974651086956111062176443114012310142934373646074222334687817572474398344440712183979728588956865459945177971618497396341482474693613561794382845140058532252335978097058936362949054235295279859785493836283634177053554698154073940950636557311824246568781386097562375685764495077450408373839501127294207203070701274232894284021725136648269567736546067575848205700475332188759342964037292589213882648212893966294395990090258945862786166120627889290174224743570132983354117524693444060919527297712404014666116968804966332145754171406706925665422175182617598775516837377255150769565622838441285303172711880494237436760011782294449298801300626821984810943517165049185427107009545424934467064488529256447803125731427643743485430960619704268953620421097001434552125152706587927360211368698640283042961875338126194203141293291152172117631771365487360718866139229382898396633040706808702086535951610902257282571322291376021779358129284335483172040291248256223163615643125257332284080674016902389769742726207532354246890032085866052196800066733384986059111400149779621399870522050418766139413153653323272355703428277293098640522822918050855016047659069797003279061339746218742055369592942198327093952413560166670737821626743488644754333124852201612143006112564542763928765434518177200027422349619961140560489654160098506539332679087276439819702413170430841484312031993306983641423262445621917539773001227340122302134655844968841793445243537099785346766439204008384613634554558898511489656046584757456192639264202594077264133596853074723745767964720112461834060380741444243379467841503990768612245542981170648339301096663745601258253805421684274722758644441007408510394203985562581751013835421091420824089250304381383953535656067930744287001532810369571527288752344163716243600493051903940265776615076102744140311141676977999262271769423359333517673638385768104278136947298532907041562504788572388426138474743070540197553943402194308087997598226463452841486009605630255030851017846960063284335967816037955685004868309952387289953334882129773563289714940162806515936996060916610871564166282520201172564515291408517068008951119931612329942781985283905542240104489389927839923853147024993899278479325311525389802929221788958616964239771171686788536710175740098141876202942117065707070248186330158448767537582898664478703118885433224852948727155970754038095272996047392044934505012334473646639879955586957062531789135409431841227180594359739237677879689274761375903792881021965528547122025007796983995298321826775823344755709242467221209619440715850392426501898675469400433153691205278895161271854860576622906184598230712612377307717719716125058575769015547792563082393862162911859238003521121368580207174902392093145123873248295005418690301543187614721772194476221424966833591177522701503578916831514173875748978281085526355152670965945866475740464952287015920563404443434633068342407275485713717643291594131715158242547582227849616567334266391300348003988303580210543397407406764024719025671019473603619270359059568385826111624578548633354000303655914429880353275814682612576036886119077955613079852838875335444017735987579023441981212657014971519901227624812209614510500259471741351529341527252822363441537350011115612343534956491375884461428873963777895753339478995230574056379999270922748396147875190897473001158536322067932228785917513613576039685587169585894259607321979082657893826000199298024355443107695765258917701660002417300076493941045262595286818532315597613846027217485532314571277301911692595687150201867716427198758594781358346703964802268364120774964419593669962667139696426008006628983394775959257018722727490987127639231333022746520148818715614963435480247144181651197465602675274576769577789839596256120077923438110260511020794506618961756198976361389470433637890152087718469094057573665721437240204161728886435223956183846003792114202206267712939159496408096126751856275900937219092092241912013678730308229211466001335346649102153302197997511811737811576788547000769716476154131995269574685724812119802327797390937843842561510324003367800481962530040410434902172076443690236874380235600115615890033086517550754046907922430914590788420095754973927812538708351110472154398018270211085177506289162058934229402193032588232746334883994187075770571448146705868678312340214102983355294669680434422830982274461001533908686532826160748852985192465455957405437961890100680797557670149477739888040212228662367416692673602349041027374491999860877336280386900262929366858802088921265932326158793571923495775824769403745393307225203776702479352706786105608887982088977998822423460549269006417751663568234844090219245864648993059459145581394161704014004615053560242221739084196564218013242920941020718473825176803248588868860433131303909626909477841423761606276420447129804443810648424107675246161327512786738284855010957101165863122788261896867607215784163473806472920191352079263930387741483792418490359570848037782683328009718076027738549545083061390256851601817181056721529432827568353553613897312784453656895073223375618274054990119675366609542877069924556091473753468058543267401798644902997570761839614393607933961513487327893536427995072144893011579801544431831559075537246955885588353993124093308132304182690118081821137412629928438119846542466134634411306431026594411226726447731130713386223386248085880982448047225968849174131026743037155954674210561259590570657468689221697176753326244537590676469142189741112683927151084279882415356343182773605728067429084658562868128623949774114738298964817294577591021944736944214548666397376683864871649097863166947336405274379693600240207999744980069094717594912478056509206335966650190330960813420476492426985558364191417657573056037969988950072198774884888160935528913936471411710773312231510031764567557025990923886694057122585894898847758597714603604287716238589513804116109709377195072253471908734043148897294905101425862949799841011594327840097358291655175814406563615887541354311858424878708248185405184906760142991356128997565663278635572772626673069672050015273255202450629134294953008447997085734460667887274070345941148115713150373331188819637080973635017890807457027512197753293056584888968073393826179149687625954456733526754368626879176666328249140720392511328724532792284098780313219682553722829608865533753114718201980935894649605528181947894086927382641744634913916362384872268488998966350683472323414773433634721462566096292248319970995274965323397333309680766833501840386595632241562064617114177572229428986053857487086187652266094307510940135208423059361911055467521998733124041969457319239310424565369432714709591326984879119138454650673509231773862609550309020317169723072532719188633878086614439703793788422696661349487675371658701251479703233033044643077944929963256585955978964772857678701415854250326865302659388508730149307070867273888452567126697594209980712487164377677087166462769629679298207851386460940295661709850996121227912544911699053657861030466806484643184545273409033124765816977466938354856821162235068302958292443139569702385126005486011682276523442969993583832423192560815929206106262158605813905636658480658254772700130140102947807733455211528883770338377460669966477915091548319517133670860396823331707622879982870913701909286703470548589188791765982045217732230938968453463952357420909715986669291238305195501616582621677913332631813263917308167491443701199214685715900991056056003880801280582036860103720968693760421614625446828981911257686543897772161457639224701720460431292337689496830206612112669010427524099823950289330247212340710402326689170506435050481603844431741811988087008492568246076881694012730061498817683020268245598734470332685634842974329029146759938652403609406999680250913787931933463266493911491322939925348275236331467309999559200507003747989237418401866098327027008962798846479661362833133853377669007697031587599188262627938984332238746850219638878958023628992352488940101624971074487972368893113131093171125622220376934719484417919384415530571024962635862271168067415727563696377192769175269640370136501449169671200046440660868508619135038871808969996517316142150669998307225252310904751379945399836604755168079055071264449752987359285693207278885428956515760086007738715719570010005167183880635375132318898836685701210175760469778303870113991498594857687778871886183719636400002725977002067207939390566910065668241185809174660647454043936975700861092421447976001578420732010081820957624416347901339786281695675700759806104554797016497382947352985668033289707937104490778647598044030915001016523908400076100855648930773338591543773237480094952456511223809344677482607082232329586798861076431144700763863444090767855321213851834381382471667131762172869374098832745716521106409751438518596087835459990198007925983557549354384349983588734090414672952100515355147854276432400857033068667565578665489787906635193173871998967279414195070759478126402171278232063619220813193142904188832490240189789265819641476026034683580366085462845755506615591239728449503971369009687515624686374799588252774309292617540111548963090930091819876392785233111388569391304313610298557920809592398349422894999553833004776160259179685531417038399093376626072587848110218958917068706967546618058234989802481601645543030756705770115042451912117835217530140253957520733533126750417451095981095815076890751367901208452056247590654764681210322458963895565915914883951990344785810651581208949785709453576146200866423937037191722019663979586089737505695113890748337775959551620910429895235993454291568832467504821863229908522619989741847965263102561416464959567056353923690357842299319601829771062751678293964968040912530792872916240137229073039972358996641827990422694015893189928479723645782504246392184074291018189394181075194174819135739856807430043044146343561224036298650311349591700139056520416957717569627863678982287884105535364772567665493318792277608493672118540188541712788454171558345792607418240092737777812917108931968565387182769742374585678228546359252370447186878520790034634220984872765205348284565444598090946371608869641625710625823488686271317152124821418070373012890321864146232101134088534839853502649928115983267543527402258000865679984299351215938203545154833822755735570987477171428238287824129991101150325723091097805868271824789694335175655747906855116488916831197446393548241965702111185766918044541438094018149474452291119922703593451081829603613843215475865836414165855199328203861285690344334742309298321506569914897901339078484203198804473421277575178683663571067177915594347950487887972321658008838103526106466155497630977411949655622241942986371758914263310834199813372621702429980019054288756754889557648316893975915569452273185792261897936992385212769932394811722261092382400858246991466395107837924846829309098616220017664833218834757852706899619589221046700721132864435478789606678182653543605776361834886218682693836919043416861606062604567962108370923815824990063834557978693774075730068094137480689665260073065895654658084259996969879664581640631424433447959049986531901655540263317133413107361290419315126007456522781627688232588231588533029427613955423418857770514083984900224165701111274980210476779052208288960279310818556811406121211341595985394513935737856111914501997409664769651343381564309786981690506671057258708209208194359209996977732465811181725605449580138158607552630158010885897007351727401572899712380562357420389808821865688398931618005654248942126193925374699181202451782207241680924219655368985948514363229267486198094066416965047674263596961058807947108253965846320354941931971195743528141831230044796245384503995153609288355070944296661780098574476556720600500152165328105774401834810334236621566745166214246352768528169323569881506646248127148248968541093779516806919036355794910111504042031390902632652763471027129512899812139917231717101284659799423851968568533722185361913276665198619205402395498460624340997403133485377398208172576355302322052864718966373757611871275646729748029528838689877633901542362818489990298276084846140963413093035780950202394286692806752333512561615241698705710761785969624782889177269539703850166880171773102655178972716077782681107433442641500316193466469677981608241203331034966205650992241605393458404011278509567666635864051794656151869364627201895568945777056965203659127336365610948220815414124108979353594090020355032318659736072860687204287477846879963603505860644379001168661473623406895842272979916598704405878781134314857885963149959505030362146670185543108304016924424179911309072982257861634361065112381531607276845312725300059296474782451757712207284621745082668254988322771126490532120720322920701770832987829188088108888093000070770596308455850796597572902328677843821808180068376804304572995809692198647881375144680013539685804373935447166339526405680890334051314746738241204032135487682760184599594542507200038072285935272378984219230810987423133659229003666556301345406038875355693245835686671916766168338009519351403809654497325306208837570493920810679281780045411710402800392578981989139608488756954232957603855691857006023857287498073661811066210647613818366216481826023055305468400458164034047610050804125861378859205322818691120493829814873283348218598484901399793977233087360767370960502058728553933418862903492127381937351022946808476089951440988334676330111858356314742363681712162105070716379679343491792493527347316649022923994262245798222160061661141228249758179608600036185747903794402533551824512547446206042255994922429629084407206939115494770112047840009402077923814468071867717533264556240894628562349009282430973725996085697411640938487175130635597606272678466182201700215987072268033022399161945206549510140407716622057065203419711579467345203599977219681024219942435785835692700140674004066091907102507063913256670536708652614725495698950824930380502348947013920006080427517206270542036699375692138371122530445612337255501710662748636394719338643456734582847571300756649530803162083870575839415904357365528220175124267749851915881933711189688607827853303211571151573853626737496337478394396509660681617712219526621861462131158841914540293504600955570788389026051890203503959243128004942850073020912454807672147291597918152022551811321390102480251882840914093444692878899931211809596302405826773946108265813933199626386636752580454558087225962521171219346492430301910925709618094501223414993180283775960547293920583761743815449414165887146697961613082916255868887360592708249157370040027646448128321667568199278338299290744975042495960900805539196185620879284036532271279474529877571088870175015793268317521058787708757232178878203821010462340052972851432490836933611170866301315000826024287482940005664379436825218430624330424052675592390193382836820141853394540566361953040248008975659085262126350870720635858965731866504933877876857072019227110016710405221830498550797116017666040989704580617486950541784230336451412820293891844862812433847043523156014960106519618771717373153304369591576187337798192753851788927368695499912051800668128437715032230766136184937907147418723090899278048721654150636963521112391153621546097159078261007587451211011459074971432986981136065144796597824057810724123906809829055512864737869197376271115449110454290947604586791362527074047464743218561513060702719449467966159533247005620704826301564426462395584205513245569726070286651975078642726886739663968948313153028855086151412023477770944281280387494750193083980323197788990313336766238032975331865796915101252164149938072014357993177047115700288881046710239099020646579776715151324873168006657359327424335159847861715668828030467796516198129762335357794765528307743767345121290677817792335590962552221328940411438285755568459630903216868898442491814604811179197875213467421228315409237636369584807095024025710281199481308610336144228640268247266639395050418809876380200734940015654902512337684371897185127918280771201949890410049718956163167368211339291044468489040641987693543379259788390238964355467680937064736170755674265484402338096302793439367691646907062697400600821514758510991666359061707100112105275217197852475756188454103741295739607529425743634995954673014078022615438071284571971913616330567094182455658523063879174867228098037080947317429692835301894915265440812039229668487292611787362477203140438350764335163150258580554561868719126332186624346359540008561748912395997898950590857036153591160699709483362338955488992926355890752756988850325682509017940860931559664825515916094849160178153613085322125686087810642707128987135234771732232124807963083124209841548071287252390646885268736039967535041087921639639115217346583488456750223417333693074777996230375085246907579051492485635479250863998498991639806670449440923890741615234760651537114120096114999677667233503303292500632498919833683770138972348719309703462256595775445067252441306669698192848799540045798102781703688280329201261311968833182170024419285143558367355839161590463119891503720231788920366624161488893474875553040450093328136418589601140929145255328169462609358452187318834839524196489912790031601910446777933566436022989354292554590154312149819862981355569383699629554182568674112218734446552169686122672987478097364785205578079448246908992046608522230964534229621652685082433796994594647881827864264820740004884817385199385674884395438301133642332180458094926089282765198405476331995220459266753698991283332060732937873243846467120554792916436329807540291004761689023735883728499537184557362293381163754827946216385710041498123620367289048868941873817777070533911651837634821951181488476652287922442606098073343447067164748717594930616144757201485016137349418405186046027469236357625401812612050860101860295485891509210061022030802034538155354723240988176438159498730799122610250912670877973789061391230063629636568382531644012067043457146114815932898764613388467906039901119394682974391998067805434261583485157431830218826293102181024508655214835966543261735101632794991263061563483378827734492610982201595381883982358809620321077230716456403379311285472098785571718289280395764446082770474342518858463899143558291760966533862800584092636904276188666115356718177016544023083663993600886755146729770709134911227439523419816726413468316946481668278640402191624614356487513864457707090956752392026394353036391767769948728662767939561123862963750404237196048875356432803369058747675634796894425126981114482297293570062387475984624546233548352788596668072043667987747794909390025466120172162858651942830932002657970981280789213054155718314989172731929876571433288462106563149174406728496018195114097190402967669676277636509747950457574005834602153650224177474011498533817286363172084169617638051821978830198990176609966940351477424925544191673389254976613099880878200367888705590573456992818154283930761816677240979846238900642335285330060499718386059928488716766936481146790229904313797483435442490433261587572529268851008012044409530716489965207554421213813747578562285661425638631803731360658155648748958148250760360491547271849019232617686925461378588779754138588294940936493260864111811952986369786397541130121644854994413631069861610929643788175103643668032573153216919733087958240620169653650268378335675155818435362596751666158708492542099006540125493188122207398497120474012590045426091957212432723440098135411881518864031319125562567650753605872466791062791665116510668972697621346153465883787309284983755915254598209564809491870902836138659578102213099480256461473607241702553646631061858238917349769011404684948518861956990102121587332111239465547150890554399642353810656467382919533206560466887878088626224263527059179301170941734493236111281447404087411643731032043321904705398747603492404248703905187951761186183485730833947656882830085145256092841667588941894681751427304982568051508094869524784392572931145553299043597156001185079252867980437461490376473414744777915743146949867248930912767960246799339790583196277030766908746004679583724232506711953821274290979066653867100693776133356503793468762258287731925792595335901714968959680018192788521918972725244323632356974992704864876691047781702570017237412679230813554953308048660165610494783598786810015349121802445902392503578665050118809014799195158562259591331486656660357152376458932358735394873717021438123272766703725211295797726398289247318872503495045045867895098167136077615746848190821078139205576600204547007550814168807654503131757253580969307743690555697856660553523648970143504132910469393892503565750266157759577095766429363669022647426873646002220704725297966904678531406224890491809453392241978832240133546310236343649934645950552989473041909885969768973157937335295278249040665792444555990221708623786779927405523480644350130843738449703211194876557611612233949775514426497446856913241868228483195996939101581044340972422917695702612772478949484347717229706473004292168210649347336238934963906770418333129751968632799920347737708368257997799972046889419330063906614019726630392426836192403041689544783934013128275802723453761766308581279496148064427297715470822252346623541653474807985987505109285873434880232901889864530872071811062138430516817913330670272754044857780540350969632807442263801118331134284551823899541891714433389552390261962720697597252749002955179609068436010904335308442380528394432376263859666042852016886960092870466959388860671357608798488677653758250981150343308950534045452150379296416858991212456313566042732484036891812806680622420575175665260613907086343379170024523498429891731462805777872171721567140674658177362940319687239709809674946184313021348221077779225328605240025283429140032528870291013018240809503672362298572908379891841296858248282225275634969483458565819457749859504828724717805206514302003707121638907157130042113992402492314028735361286597848823407731776036578181613437871153305751459729787713946377444948761212838723905857079600332739513394653543504150516744352187662878402736951130767369799368342198510862158386440008226848785270312440611422169024142065758708807828743489890706842902525417166695927629162213236403037681222082726053973228700141156567617078740054664162251188741174432249898326733371439867862466630593430693264567130867153173020499630999680239123033987606848753930118390568967257042020987204516328100583810645360681619823418151081851025918227465054493122815855524945612177555764704535946413620948398398771634281835110932789568239262244726935741998292768704659125156766135214875303839786651959357718085805237406223713983827344963734234526889763231888166887222943244276532742082460745355098441414356810610579694059979720954983517103551613747567765387701772920680227133880444087538887012001231095942897501528909963360112196084129149036753894867570930292196022612482798493739332664211130081590758678913301131921427854293620343082839613376602233155799401515645892552666633294716698357280283441349814244287333848086869578817384916946035874169881392108807475326186489877346028196253257693625782354520678718692908602265479812121335719960444299680206410583332580884600736873820241109954500081069482819495273542530402816273937004503019467650203423864894441341509485454933763799452142274095514930315067810016550569337324659281520232638273759404945745120061615815383776608903027624632193504253174162908204999818353151067210168846277708153850652276924238607660678951349413254195206437500356944563619455504571715932013707195107797859360622221466444499211076042627258736973412905332340218847596995838839145424529430288602765430741036035453893053718365467658724676491062397569793002855013383068750766010590578870238550509072719834436018336894218976128089755418847571819316063224352243566273627154169570272859021110941678835003031691064932745472544925962255813901110419356832460106552014490233490136492007813925052064771909860538153857697549204107237771778629629900301672674436051872207749643666062191437350141226681241814008432962818119116597467643926453653844364948026488998470728028926796944788902206071323927031004560836994346030268448745471617612889696300811426994575848728498221804059445447823431616205127552474866076169101451398065993068767771962814656072823866538776055968769297164063918577142806034795869261343427934518211028956294703829105957869449877404455635507406360266852785567685597572592722466960658803281248859263752162348808235500261093894452020576308844955111081644868112825178984237399830348405801152885418514480801908928246178951962767634637491593166708434230225371252742367837093385192343690409155250188501491971234262162807497796344796444224977980212342851095990376151452649924219794661452566193333639566572800938091742934932295299623655882588566317361075384291397917428640743888596520501407261123823530368382932379973757589879802631245245958826399652343348690321797879112562754678296616532404998775072860983711061394014265975266105061140102373192839987091044630997614142904322111851440241812356138772867192997497826619733685853617123985326865291467163231965872295763670813486607237880672011453355056945780535568348487343393644822082810113612800576353204305824956602876711598964145296119354235670583260544458220644955966506125775405195650832639954025461243503488244355820567301804706212945237605059306626423759980909547892808269781419966017624689230388781084830629914418129154951514177822435669490846463776293425593882592791654507274019430399599836891095956045944716513000396927306310350495239063867223419284342471691726669157628690559070694461671839224919528011606988830344439781402562499090203842935814052919752440880872089519083346593736188641206673514984789979801333132863107522060377156039704380708543190540746522429924910798208300653042313254987353750896026250119609476654758672880648117223206871873218108773104071073747904858193723907189533350190318921094931498441385845984186058155387569555601233070553307423773097776389693077903274351391991312738387409139648260102554065966567071974792258053570841462076675519658089056889205398327073059817454777950059172624326181955248584327136765593026284741230929134256518855801816801824782166249851642083965380802171787842192400865790520697358567189843588658896504455381317912108288873101779744399162914874981799862554179250904081898971102196685871734932946710589323560834170234465005552630586150885816282325934095579021269054338179011445072365032938636026691898002024467545815545606285499263179957119468599951192633949567048363825357690146915583003314515105584145354343717628718634716691826540438419991143303434577783966919363844118999261534878103149487615930723828646139729091436331227718571805610796788353990712959308429642549174385906765875969417718218543908978643612333681760592312481677072511300610725517238177244441367543307298796953942238425663726672603227245325443648407489799504212326452835904044392828201803420789671204027928822370889231641049238789241764947843849014625045632583716475518902999239130403759267525263846159668194883825215365024723102926098258015546939853936481609128535548651036120019243071160258890059192805715711497316593101837583817962902337130776741242930918316557708787735415819342965173850800945037608164147956601581219313286447148959939365003364989621130406328841227148905244915884440029209719791035638172670092003202057976982755284636247565160645379317894818400372007542662096387172656620837713848522411204624694452529749964738930622993326056697632614370154144406974710602383004716472687899479728898312872777288047288580965032329273509989818672831174029624649991691584877687725106033840979832963619463909554579735177142516639310799953109753053588313649177135891936708664385420541016487637971708477601240560728102928809947799628003915177301269766571571323172407937655620469318017508031857793653257675591228772245010864409449112265615752407356318842313207909728706528663480320511626890803632785502654523455596455409254464371412539172815851177439056771683526063842812809728352791586348481356904353293587108982595414037671076142905674176858263987126944286299976715325074626616306725718267132112469870989231313085657129309042882536878640321680318297217276217605374016787669393727303360500396199920951196014645244692735375363387275969641465541906464384725919302832930695606778257788528833063531801402362137075578686969679214738199989466408453567379185519621423115283331301421456892623674797281621237226730324876119635263393901150800841606230690641043831262441131550335490702216717536305899513974590699271412762168871340060817090303500331039419830236195326864293651147601713275176166004786570284545535988519563225676958430585001451228049475555759066727484174203444022695484363219100642076622580152186413931668512952579555800530487697312933367946158510528980406293964832904429748012207097598447566004837971827090811299964208694373399975523690490047838897674477860992201520469756032738159058419451545689666664294806103373255317795201910253595915488648945146874445132952695037075389849062357469973190168252863126029503936284968574510270719286234675071928061825493597766728969776881118605541818180670927442886761350037219671851699766910950140018721157209523993647486489593062643921289846138486032717096801203211753934757600632636090149979054112779695558300880808795392687664779263093429915695219954399234507397967336496187901845322024869514754541114472911041177175702749763511428522281954737278540453320461329380667773367647317520344098220822894945812707083647468668019635828410082794658241017658492627915156804268829146994056911354870173273188731874025389505066456482597680480707685870838576117604136397450376469831338985293710409583599385088965199000163254306024923200081555950468230267470336641805618816920435936898355372560083660728605723690376996168486697487320761418258242760698834030974483041394042917318157340303732309104920466016461535139192290501754357100235734849199908624427439051458556516129418865868964005153864006039361420637229985359310571300527544253730701906011888216030977728347658018982729391045869719083431924162875621732604339427788612489497976180677855472906860313775302462920011016965480869973615435014520157909276755199949664720490405425757195766588168151594313321085184339570634984246651913713167750611616173374385846915275215489567902450285150949521314054353113461341836290396027745738473442266366547981852414472449694278556202074764326663387711756803843340441018224087497873697490521590231203403116533523760838885799769957702526221627460908738705432525413008851129118038540396519318820314180203070833071554046057782787783401722035790701175424661363613321875639384409165870451595774250027402649707518167670886381097459821828955552539396594178429487806101885656667497873427574504600117517678646993386093177419753590459421908352075457944139739742648362890010772654540165785989944525723188528941404933839829496199282846013051070588319092813127672298721418576979000830298190045272609455897045485252688471995999962797659030220720068491384754165071689124676959918858877503479726729494828360300824538368844440513481528183622117354910569165077037836743451598991078658096292528773473718629522832824558123197970227759620293162582794534849422115473236724444119897093134297985237973403567362223229687594653705156539633626067119835460015805011382538968893217915561254904040111170236325066801210866508858035604871289474836838608880702778797320566900751737580710092179549479739108830463562590299337455363528368507232244688786206152596920186224120519904537342909916651595578401904542900045255791182255371180705486149123796618952275994217478394889925116604078637877115406835982022912695790554836873947047357145648984014238298620507711326155435380084947103366315530390617559739867323530592830794717238570994482524298478422139369057527901769270619026176993616490953217795373980420849134354352830402905213766818996986644313254241728595559596331490815212334302444890959753447734748871025101740275627370001153480622882662946175901194012304441227876613471442227901094853650529892085784997920667122567032870049662688205732970331684113406209458679901094960567476116746211762727452181838429690488632005330067228493762234686665096576298303906498977464128388236808565962760167900315494967373882794886351433671654564851449289541543207102979254225385531334436398573910018862923033715131467254392398374343148217411602689942435554705605371859965932884533134399466910009875890265366418553179934315605310416804535443386827414802144986629435783610412158035332754296287307397656139633992957866460396865666675799133453872373341946026691280459804686593647041903494953451800515844939853757456295586622648876962787994034074861146379242811514983876004060619779200267183994217863599983682328355750410126340171101060748939512484930476821423763679893877440879356619518429521535381430731366077774532275280791140301536602676915054718881273732568863480352742927177173544192264277630840679530716181474137216439037055339548130694607242716757819682051771683448919382428465719312867708694075558403940383186721911055396143683503127354932362182488327938123182633482915042162173274852457236281255942192997635918930356885964529750418842690549810253113253220319747830846839017213645548271136003363019829296865209052076174231145174270264332091156659284544445301734645537780984620657703528211383131609615286697768758633110041908271171549272050767853258651556296936755622327022229620310599923800189919422327932579938616656502871836283986887810043957349669773114645158250339101446244136499585230120089515571051792427364269853763720325411559343008511370444277803286451635642573603101756188463477223487107244776231820176250442487666212510638306017519198421288491462649031171187886718286244202014156496264208570794853537192161810319538783474355805083218877383910565178936690945055158054446087171950231382147821761926691270271690351139297949313626928368860227121781667844724100178756883665256408998871200429628605392859648307440628058430094064302839467329045417092069871265030739121512710549415634923830866247620334020042082484792718169998438256569757987104357044457946317440492781585971655904012285651812381891390697837433973337617139515255658118081144190625342982341021055471911667710162905029814622034030126034985366997065068065428099992711678049304355225568544804418697393392670141538068829045613061511597020374130544246612697265184444117587984263422012573231693698074807244503247166886507197989601357459119269559794733740276233227426051910794278545026028169699876760806019219910802004598382661649527537808142771896329513261857707462742768657842251887219702186966619207842498548716625886805027246588797753285466316060514875003639753684957159595256510537058540818915665465899642650742067810508519275809124504751438456686673111011346726926138596606940645624658747333384447318279373659775778557392332214375311809050206154358494304487046687701941615738133469666245112515885137535616864948885659057547212221141688908028258740512501517882827238064140431679862922743624080009953768990719153092801095223172141362642801315818787757167068372365168182173414102668059354812445263560193742764470375809751942573636865882101666402581865145698477863244838812583394304590825873498449783592665947559310564951634831749101704055704134501656182200287106571593032489609794180771637610192172552114511769915946032361212238824201629581727931551037359767180982433972552266364346239341897872013912715196036083900073615554817580227236919838656646506325653342089606712304469910609052918173481755496781501476510187845778556675486635166748449247887982139038643988348166811852984385156376734944090610419604773093582424229072308189837236961198574825536497059026262930357442776710377512196289043317436823106760762031172223673823418630259937850398711061399318939258146301247480748908504340786046116373781665208794471459546548260324749551550084112323611501606656580689850040336244059036707157120430896758064652881507259081936827442524807464814341925463814278890868067320504077750772374150641177501881665814315853275134803877320595154947393268664838845231334025753353611786491560545119152676451860366621061377464698768849827863230548000953957361630825489299918632907200405684259930256459235668745973207885531323048115022550517520722817854112208055649795238280541512616428134702681852617659260122940395891187154797329528308517797675179784431347652052656893416088321694689796765895893045124603118316058295279754241238142091296086199912740471389632951549536546474243191802936506612124860370712499213751793867224887303504436726675725114203598633623518769303248882209185692956099228933181627237981087450584848524925339538873222133950592050671232865144297741584091342326073118890659535210752914735393800024180279063856482634906573522294051167534539299084928727767249126504450869128946014791303580861617351681647036627292859353916574476692018383713896746394867204543853558955622334201679651203437349952751527694468470579051159544472608028527043472099611648061474840124141367575113150451850652074576471277695066422903341540130533368970111464746646406780146891395715008240452415137754424237455856613512949696245915222342668512344291303443641867367439774530764259394139810037227785159816563850303348946621991091710781705039831696445817621820571952954548116544539728884015574107093028019687412986681315923739235807764923100312384369644799861279214686078026785185330033217898319397998244541890288039795763409595552972057890433601606506630719420918323773094298983272143852800228358992129447617468614587141187647179987343934482338536995482156699864640027262313782096590712264715100414076677980332492907068852581111955437099590947209414624573563570630085846954406361330368653981540190205439708574015998245293971581978550648797535305497180739190588385666966411439700216188927418442834115991672617905604817056855562188783239853299886677223843946844545655128280076157240811431004944208807813402420188163350383246879778365683062095102081403210504155178775573702071095289759467946510411619831652081140441050265883081748165335652140574033279658853145186083426832538549543284245581976063225184954000828587535460510153206711776645763854386923674987832671290340355621311163530877392870208773770569519336051716983772532000178788270357564830444077217522680890501077205313389793436566898835345119726009795718869864163106642313045332252217165142833748624969719383580356700992149378507526238793524717255520650804313595118956949913351109077550851343609615476743677704028159168934562496496793043733393192854033278335701773023624420060728240611714274938215414376470510836035201632341997834288220995990206972807369904215820302257507205820075194721165160977610717474111457559791289131627463379266627338174679145753461742231317452669358022452409525662404793467349792569956401641466901277965500091942060996220606029138482834313445616404144960410585946190368475169753538036006393959215328624167525753472625691992127922592136166459517606703728231454472754465396758449574788169128650520599366422079889346389497964506373876684580364511766700226031654535680566508136024859840426596762483130537671879789948991754755627625602177307048751243676300006170954331426751957371853664562007347829355633641872773232975700747092491426364884625254058017017841569515937022218938701264484301396336472339045201205533888621290758838397328492205404401920477708699952394308446280667704067408757149044605090969172372179621732964850342297200007010371749559318819824135942228494520617581306026124296093567459526690702086499605230054130977835397097564302385397010648774617417321188610572742162525492424948218370379019591838197956478557200475961052570165472723624374551884120457720387452598192512127947624412187256798308617176377920548211501803888812007503471018314589486103229835768855392596573906448277175847413250910016515035928993757310560686592015438902739212908459080963314480644796982333105514009881470148718821505291978576320993034262690421789834589954226319505374629108600763519552151679016953660257472341272144764231359611301613902516944648231663548039478833817350047779469200132666969614098499152046922225221275954465591722938422741985250258317545722733688167124223039681736419427745991884264688216088345435088145566669856113790581113222715751356305803509317058920421933524899390998885866909924516719164185952753489416003258175349207427873800385394000297329723145103751719218529389997134348767256672789871303353436549203456189181047308067747355289490166607324680118718602403528552391086197731507530349144468262803662515232928320477004846095383640455052530970532524522767463214808294586986280853919861127255910103004401844883202907556475600727313692891476102566120407017029866788828651333829841842632579566339055838060589944555561664608163768141883631238074508073920641634711670201172190372352269731695330763373881309330832017509719454301166016278130196245918217275130487335548828245737647531725769276129809223789760437772623868518008972521602529873965497040808649160431502938406643188592765736815947848543606038861116224447287825310409272175808669561066065401175702161690854870020920247639914806333755376531104417960452239196356667319209817228705748170359080509746248937437330504275503172408621028244802382186766132439415157229518951140584170389682259960056324577204972740059615555183657317021491308825453668444177567251345955033188024187815593249280079986402736747459904082156422430281586751519197194986887542878822682573543556998749250554371330087518130214162270171891952088484574209795072167844007375288952714143000550052842730523837333854334172911126735608649970556098283232036714807934944934990578185479833432828838267178832495248621579441586078937326646021345840785673646445284429277977848221598671194825470428732792136077973753679951296042043914223147084856245514722156551845582711065876890611738780306054585904640301336984797600280523012125053185822045915679785322802617130881100765321142989595117454289960946124463687487932995188715544259296692515433339326015741755385115996323508730929453801173215061660767465732870597297224965883155459019867407447873797894044750089388963781050562160221139004919884398524485904966635597762004682233984944014658716337144822598188889702915732924459767573383720378706035720120900959021432666898456097293149438356989563789823647896149695008067491777403368193855912326712058058356523469317522213442469885660083611109862357863723241693354380764156309973292842671540051409713436380562896887800279453523177691127913707568299895039305331095592436778213936926747959672601808685688679853288949174845639052027642022285198291838739620796830016380570783989973255876779414212280568988255370465181864693020799350534107389166633769723398997541429306752587501599452177803699781220667309876375277911052510672058057401982265821827862053503182546204688977932748381875161475794743553439905700889108741770379277140507324013122675185234085122174452334550337515769627974657124013104313209156040019661342714804313825296458269442531626403735025497046093334258326812045852480923220381354858700058351071298731507620275860516427463688020709076807838768677322112021315618075857716001119220108566543536780713895166282702503448602334849701813434174169216818344820553860530476487753652275866711032915620815911609457203936014171237343152507518497891443857029727916847625765066034870295711103219573661080608655908229308734924908470179107418784960591601585685535080481864458452944954780396492661045503321442476239561445765423791912466660873047394072784689377336382686159703424379124847771220421921562608822897788059763011140290924624065747563302046140116927556055621476797737316153967480148174702038014258463168044658771331223991097503092270760326725934319388528131536957620121274704408379437331111795260205335046611457486296316125609924701030890376131637963827922422327226018865409733425849005523808823883980839912541038862951573965356392303959252528209126859699970255230403241366497528992905873087034845448417230502866563007206980351959919050088182887897389197991115072897268235965977674196084003542685951956836953152381997940736820588842432541801855036012681850820869333152581737770578165362845413481339995961015993642222617142364511524026916209553559435258826630627937082041501315629590154211885605849820499910612171819508215752709809068373429844949176468603533677027525167687673511807298975104561409401233260013866122691679378276315657956786136232784722332766871307665918975151716592245167231229579253406483661028187151231489532824063062178709649477020297661424549607421594363982556783516804124409290856319927285201978586814969534426848171756654205002872107386527942123425988307535482514995303159316940341230677828832661675395820587978301010504685658941533767076241818422834951771790013863198258801613149613496698987726409875280492113864176726182458587653877602319916030647956107118286425307001101857758503336056215723095892251041691530764361960402569789877844424221072317156597710225143700104920864582640878894273414106475472390706514905836071945089801127998982369760737254104409886330619079309936510128649385072584675251785202407036851222014227329375884876764493168672932708228062457215199786223344992105558083191256198825488831045992455593094621710438387828423999221420823046582432354667901228582694058290972106155533331905764097201803520424296033518592913048594865992270918957620840353811641097439084348782544653324398429686660592352214749292795736418651309563970131814286370176297801431982359488995624875061802851954628250503853065936103465406187869143738318581779555523741044660839702961589504919886913397006530937047332458723387540865962537145106843594885035283706759266170868810246673392009661679590306541802684971798255457446065005621864875881693753969682712147187598437659737096642294338273791972018729253419195830671268322925477402392862712247942670620593293737408211737916942956621264011011560222137213384401828370691821064820859753263405183926437472147644987384445865999336520424776090645013770531613570262707275618906512071544512700003350717736905259865336626987143332059097236650769626425019075942099597565114336745469142951382998273736719433310222458705372834424373277689420187654576150526597359523009117272001421792555573521455880573971021387191148447449373699205299699578401732690082481007375642996865671457692629452406276284027428690249840900830672372312816998143240032435959414325742510172291496752400027447230602644253440469835052839497632934944437459479356201130110229898718050683496902388563709416054912962218608247839493964027289781893856045414947681186276708803047484155339156329293728767093835788720265388900700592614855777091680009944147277243328686584294867606463497690400699400812564586529413422239189092692896886396938443151657954864474407124109105170849570061481919019272563140845334985575098410468886816745859288903213125436207500782269004178160505432511863873187965953824794428951939839696102228026442666223452796660645281126753368171208390253750010350169993024712251676917569991046860063761784050231209344330274737636934504103162553734215458395179912509742308599316201500205199307279030141100507226300930307371201675066448674984523411383147921362763782681485029021924105152131854829760504929043490548013118078109054646664498062064029797989265061892637474064494507121060048080857495743959139754149242061046941472047727243908371824855707678556838157922324833030346480940110884595277711008371795321605576337209965810840138151245240881946625523770795881735009255997943447274185912430032670756366772513222036769969443239551777390514617064816773056062691940878126085790683789384007607086997467851104235198707465824644429023986729470221646512915686779346126537776552505270308805083135523902703886788788983617425586088867458298548836182582567249949010447352713025786295193342423720288226603027046480658889640897909852270122297920960135770490150850080333736832559023999886787816782017364137325941805615399358072525425463735871359623172568733698234136585187502006195634206368485303209767242653938014318393470196514148895911417238769732783604340804404803593240704344217340692892543216183592946950618520531113135536638180246901063159335137404409808568160444868885131843374595791765441912264042018930685866932879138748671426314637543655515347103407791934044303079086105564984988002495129410179577499779622558587621167840141992207996518124994132786901867707399783089451117946485828701189784998762219410710727876088727753019189787155064284029325120870320752706080480836499767500534657336680316902866986561408727736892899180793924116412837259816121302344604639770455574779020190919993132085707047537185392130756686796099421969109032196264154103284554444323009823525906401787379571021035106365283237584418103039330218572672410571552546408223996734177555206297341621779057632356959393343627135016140500724871327988605378754888438454760964174694636309249586795331913354758201699988506059100948060619806381797005880308493928872469734930753657725339343997776938640506816023665346074488472874621532753330238479238533784806052631781899843197078069468069348257685745506042954090311789769412330221672127846823901344943760805223232993633875275926178822621924725478761141998915724957606271617936699871763888300120900488332979340053031595815803391887412943301853416935246437515923985974952687523632821491399386731821378334336741464003709125042675009998993146653924706656423646639140816621880406072294563020194012124129584845914441497385370202485054197690780866427635344015940941175918988189726496852904816213421301060192541092932823491037324642161470311175559387926834393499412366337840185273147032420345898712467587528050019342101223627924090343071125217041191963955731696685461380346094918925711897009393800252486942497663673808041827695166649118956549835288883043904422808314275650419155083083439163453189428241556522125685319560820127708396153227295702687832814002337503167295761608731598236915536202971232481164122142780570422390240000043412906686381261008677358480957561953755825303295793611793073838861354047351529844508593340013342978461607137776998346825172431980836898195715854597553105740645393747776056316958896848452380821052640633480509901504912372803907442336094332670383805928252245272459350977254524922252490471193961498503177575323424957019323205291221779628396680495908703631082707698193441328879138273029094026123344346251752490196244607109238353729682611900963673335076228624664315993782361951149504283689395534579027106400998696075478897232752303913147513573516488440073758090324666322813289370895717737461587657979677900357748886928909057081095560281336882852746728127130373323962042866718031731302856278887790456202791544233877738683161516656407929879645223264326837719475561487259801628856861806889831937591814705996106039406935467962242569773568291989515945171858525310884901184515815822461166607596896386825527237204933752307203618420565569551185382192664170311580727828256034986840918381244563207912340294741606976597223913748280329362687754364412354198137905460027575467353635336420128641169120487904368674257649900821186832406524972048652089509581729237325530588355267534461526693137588759912512465288353986815731109872543585629273773963783013165023008783336086600409283922638181351170819708039329412128283649441739754735511786922924491807707274935990531679910882073707114081631432091921210951087759408372548745690980507045579508060021185946078468935419727293749045055630216210733796277942788876680417528134695039654040411811285800659580508239103629740843897748130575860277352792469552481861049251737593617170138720804483291769899659078410975694603464201891101409802792704676957460153873372777656260216182274646939354153745054685683027283650770993669172171882713691939194135936780582611591894128694981126959716354636361179072228431308582607433290435733456875159873805783926378521530247206991548978136983067639016434808379067874405287090375063396290857493177843289397573778365171171510367828396671444926178884728478307060377498373735027624066603973017652866344168457422735378881310557036794715496325192688434424549139281300423100767829907225859301589890223349627678431816835607228601294098727020330178843559426275716704719587582831809274181851208057788384608213069455065414279292636286998908918099049398630533207116569600109002190853259595670957604370941626084695481923865957583470731598790602591790665547952549433744585796127433871008273061906291061624441906517060917524846367162998043833973316801232730566409543126343124094244732812346841496990738989231908594832974515317755690627072331157508242127851261510400547998271474946978358107014696621035441483189069693663366601185701840040894865946709037795875758703500302660878345527935048502524077604619064448499851997373344136818087838158288213866670058525929565567233886160402830943565768551359216829461819979456792819740527805214591623847466660462946528148348988336555566830797221017959693766569301585109947155464607084736650889152993810762086277234228543854664252600371524224237419151940191473441691362470008974827468810688038534377347292453475252139930300456045692765209163035358880200396913399846501531732188764398225826147324492890362384125624759467287335008311120236353351985691179706886616589434177648791821430924615549404904542379704632971059436978544118245043962231245965423010298863138749164070654815899262878959249964288157720926733180551076108819351746983240178664664532929772441927120687433837752454598029158628797316741066725466399988590991614080413479412637204207065342769915418965396350404649483738948199622495063175347599368103738960916124734810469960906596330463073469023231651437903277698938499943273644094454922982392550204643716134249363653566334797975586007913024614291117877408312617074889085030786823242438993114568859931996987865776111303141312948100173594847178456805004253645035799282836997691460620223051064269434869750237674717463160774774941959406292739137562416229171124851147625662929026070349465609394857078351490129605991281353198079284461791081970402754821628026484625753504457202186118849816919696414112133188717885253950275355254500660621928811163784696149430010946859413111891470931551065427755584565992326375408283541311373814613228141855293895787095240701639218752371779538063663712950186461956828277452625411023051469994751647594768450509508073683012483759800889179219488890651813409019108401842586949625997875248062093232255418297969915451171518788851311334105777398599836728820848264261904474970619961662691145731749704308714679579065920099332781387784005814074032591840671361501663732882845210573747460345002727402926819261300449675062723874412416132568011332989593413941686526695121196816718315472039837911966702560595508791239509074402568366769437804232917519918888967366074519441002933786951325002222039633044596509424411752833941606890741717389799859905314119375779464156676566311527189151800069995977273438012417011614122831520237435444151697903313308961586164070929468022007423878525854024713962594398964546772404391593436067481332584272811242663874690748836194175511997056602686097065820496754836796832180910317161943331004120919790772981670914129527201198419483784651202617511039703800861566636064763207852683978158092849318378159153025279634959915848816987093374942562341830809451675155619960987767465696523068102056212465773149930601460464260792928465587064182185240261651682470946232706296496502274271622125525741196423971189609933105870078527478729326011118642430866032473857020891712698480291204174499873468766223477397627377742384605502519558724575726820324493104203041787709126211069659429257906124301814098247280503367359359236376742438709077999770078672249022260895414187450115387244517220116042420392120716753549487508473701875606599201746285648825068309724862483988047158174213930924029360150637837261747263448662925692535512156243774291354063069567340306331050900444412971129658197814897573557538154313195600377007582436392616310668865068670039003795636633882468009865340101550316754548426857722505007156480879236632071103141167798669814087209865630761317412669998566406570024171994401110431169997294427878456152419341331384868338448657084188726178740975791455921629416242066112015548196985643805867251507056932930658761277521170395152026308545235664138133244400063891755030313339925064865459130928389578355961294784934256312438996213880906957164182273690246834488815020250752745746412538648743495391240375726835238287187838371601554311635537469978107926492318177353349225330866067733124756691957876390794251803274170991484311598397735026494649909174804811774859623879511655484935214469434185866495138193123405542206370910745565793468071927856019054979083853678686792320708460874445656875607431631455277214229511996235045000167317141877384396895021938834574957506421499336403352273338410166332546737226660733674655846629916007834849587988749189816546485021962076409579033923938225648937202750874013528594891632431492899914969211550558801749032496715673988794611361827309063182806497945964916346069169695268022600159328544146487547948636343554257780057069377810097983441439140603693322938005643013003340043608953854788319826160545763065099858104320013597697275457034916343142123749633443574664519805108308002612606791120864749732367383270578489204312193922419897559769719698613991288105977661904604760928098901518268678752088309177119210191378928928988017232845688669070342186577091440764496710722045720797537402274246701153009029526738791961235231093053023661173870115256627651805407163861098073552107412556150047132813084806808953671746421237224100966996970703202558939200944437098639631664363214842134790549773728821027689283153276187670393702588100173734282619602300642622369076896537569777486150776624385954927608663674141919708759714432669091682542482764123575775024575487744281858482378708095473351338510886493733631916281447331523587478888796692270753323761002767674646876981535242080159579482169085137385380116407295727290260144065239653788668166273325029024517684106666711337407911610115117451429424136252417098921748399958770532787120027453427906324275984953218406776215241934689606713414171419642180079056874850787863018500219776989403536298101376624542874429549555845850646794649137733068320249218572032603101667967952365137274972349403508313604242340329741248023908432518796606566346921153125832870149274795894211707786380524441650595716863464075357719370108260645389213502339786123363586330562016477429603338632021926766692720264159220394222813545557078569694036508726771875978500192087131436594670071688330761328308400142438771202379619007670345220170011119050739531185947242250570865503083184749666932773517862503642763693510666756017385923471480451282615364318543539056884058627349989133125537319468962527660910853327176615282890434951868330435495172461618925554113650372939123554714626311318155334673773854501244700374226858506659315298906439684245198497712638838297913580813775652570874027367262850650179646277882115759982543541624578809956748530424317600222347815545159607952974189016371359452693671585421875149351504778683624586027913954146319096823362040004439388554247041689397877703019794189909435993536077554138189325150801099007907751806935128573205413407797766259098771145336480363715375884566820356289553760517512164336123292917839541005254447087329926659292328344944225213443864318638765785312439119859668456428384693135687915579786991785656568896111680372784772653906367379594393188922720634750147680607810035406673168897840092130556588366179084273218279830154590907043930385725941824352697567227760127387073797387100465766804353116031013681230773031965982454237099389965264816772244523662615272007932943762956135101590272434700818614397288439947226558161644187557630851893538578951025199023693860262577407845032875734389290135408742786073703966609511627852380800097288268660864091037965121843524576836293072641081862468163083299016184105391410705422997868843329514545582698584204820749716632596924111104347541987007628202057268902819007400438022692249078837046227135142748025344159713552638587435331119576970959807207914313952204785568004859921531923755249850103408327892778876418905989293619404993764530433081652486592669528353572107374261277178180297091874353592216746026111668502228479504176780885274788985623008687982870580998915182739318191701069233238868581345119348172008554000492257131873797050411046126191034781929172947688902088423661829145499143050671827785102634398684482053390862274685779107989054624553306409243939969786906835048081372128394022385840645504415617247518653779324761601119571314202296134593051200151856694406853441242549294118564336655917336896443936869233842250635889611598958238773520712556151174689203832219482956595049816649756592691423530787545932802653054693557899525575035966121078570830538140496951102522684810094124192317287784990327286124733563171505041854315476310471214091750234643925098371299919203982662113460950494586623309793355897322541993388712363586405807941074565862278933906649602019059874801149067111371212649725926902009310894637235814977754568779340432540356702789091852602248841671663012684977969252557735343221421847329066272586099256834412503533611495023696016694092487276883878553345202428126505896461944140696132427855724592855163667180796343365901278916827736655155337140155939995135376866684654404475493489224372692044042010153724817143137169604013544692473907487606190771281156088976670776808002411352595796888219075070035965568444399697388487321892943510303660813847624012549622095697610005696485327564459714395042136350940942260451363425934859592584524238439200821587218170094387275111152904232951030710128027350808908347999180609948571550247196622901535900495771385568136989240306202402733726558127252650357798872605441042498745191909648751070522002781774624009199644408021686280178353724739564840384856398975070454709628340390213152339510280390760159449118534285937740363179441411363941551890165621124088932381663460448480851354889875706753703693754717053332592577575608394667835069371764647717120682238124194505623380880058757396915021949007525891447803999236255188922777882906717024351480031523337106732374515506228478457311995133469488738238279822263801867587372308934187797936674472781644302815662282552546554909857068734396534720330302720516840157171187180450916158846889845087615923385474621171373620625088702885933088823543277879494114331607061707453617186612931360533876991698038082344627925769816410394479611483594879762568064338130579298030589957728018367861413096592887713807820299948702873928952239407992194155322630948788178722204750359508289469760571823958080457327201446866373163874025522234788589974435110154854488983553758055028198941718876796801516148426680735459914843642118178444839261466872926976172420510280479373603813045335854601914669950712204148616756524430515375944984485137452000508641484699641714278545657868543209720651705638097221263076276058566459310333117588906705127425348099485234716312839582695303457901319958646227950212322064026888586053024486846581427110662926287681312480536398576731106010915103841646064493896681195881472436515861441753633326889426142942632824051541725384886448252863733993245857104502488254467503314802237650733783523391094014186804644775747124579753337780331424203373846612716454032236716116567957227520821238354099945078026965613619553867844925195076814773834708916307462483964395045334886977844692612496203050606462341903712705715159504273268547675564660960763225932171395585091502481551017713372033375536066125274403967161922423116210014689501080905539378625898785404477884787432957833441125155685977418427513845189165945653237135470988120457959583348047827587722075009521496741551144848428695585669299458846809019036170318587984737703083643139135525787183134031759308196528629741113428171228055819220871020777498338641194956507679751139367707922709677504166064028832735804999124363875151934020379392469647021946349312776612150282173016953396685933713947473339915303656825381170480349256290175765877015694141851046424526212337592397889048584658532028711061635834522328259789821554705061608898735358464533367060874435788801091276556410746532905249461145729854535970626844333679106245781202567568449730340947168754106818904504201036243664060429986374332130398388059333069329788067016027452284955491879948494997274723849558393132714764124687826168047015539781797798398214865381676883680416698728389090984198371375021009324545725549055945894527572499119449968366961963809848148731644906807144696161795083625452540966138238090734290782419778698636006087108204743766675037255788085129602896995576911933146029688743454587401141668235283753710019620699228823553902108633298425291877032051363400247281439334375345729603091308235775027592550514714257609006273094778869657643545478125905267247024997544109148468094256254818770184009136347828487444486445894665970062226259755084569127253342357403579644433591257281811824538530209534575576574300662688098524645935851530507543701649430304432722907366768567915326773875936003104260119594772984795461477541856133500310271756774076284380186099771304483657172112822531084125953587761042736801240168552080483600052733810926112869657452231848958112632211935084873338218612779348172883775906048254902003753510607876373818244009847029853157408887757905853590093125841741035765854851172787536661336565388891135514434155590530144525735807894757529111686703081598439068822929318016211792887556094228689153444618548866208477747825439666133378709254987411531843495651015283534709050865173671349424707258857146369152268230789363941631838187456960287903127767421532238654891272826100129504943276536834383117819330921712610475042395806860766503503820844940924483313036616068127911166461058666148462663884993589029550638083196260349793203553033325121623798101933543996192925550308506249204264286151257324758343032255968729515933092282597766806291341524372131881827450194412842226715904355063947528965071731951864453530803853929360820649278157706753757964496420259950233740943147811185489804343569806551705951402246242079042716962013736316648636713338092519859401963666254700734457887999723741003261539330955969084495527024024312879227357626003775244766153433182216519825240873765666458974038838656893785305548511650584220362450036465024691203773238981505118205464440353009400514396656409793332031530229763943881298250490898368942753186772731317538282177195152567240193508363336142678222802759549163416664493633535006698502338200890352982506989501792433871741013555623251610109053310422127201561881888605994386837334565888840935256865572495799549412609751512765515942148939040301223532490563812374933362692508524103931020857817267496698768130413888915262225337675794941814097945334316770602789407543532859512425429404328343938781610919271906005938947421535406173352409369082863336248250266877180968251732755675697744414115130314802646552518105135919470523769383329324171731906543627574638293560458434307926479594081487652017787718490444342321247581583254164957601940647367624390654996485898173552133142291585724499140819180220757413075895141144340899356293964872763713899282132030397566693481501891346328243953829867915612440918567914385724026119269865995229730658510884850979549040194277871476636875049438582605246955643738235360646157298508859940302379869440208989603566610112112610356503110113172295934705860660273529549181125668039553382696152386609327474443134094454542571626623744951988638893397786287052059608380911870919408145188358113290694975847918963511059043105737902472425441783564726187270219200063374942834274998256528292573343991245884355075825003879238722606394542132494007412215903658952408809804317790852429436381661151428312566929316344488989486601683450836707008044216810357685852030015939469826006620897473204398535981810013579303088471957737043539042194968863662322134088211337520168028877008309413598862435159500488349950468426420004232147510848985581547726386077995709026862586907116882515432512243327787652563021960012447913398684667576689716142593620018307572660956828255786494762791859370895956499639604045895300495863408603158784084899617080120842162106785613343119381148692297983532789043421900936779517203980640840970480200194396468457499638765476441190144902898635122491541762753278913342686938838468228491384279559446246168334072781515149002422534825373890571092640701412869304867659484502651552809291188740551233677625395466378444291500962052397086423425932147855778306489020434274168735013892916815492565492994054135862084356085566623165756509924392280333319106079344551079699774803105892065424926674363020357861033638665603751329286754779950193813044404302277343259447205855542409850265443262525148707157552228392967312783836476098151721552100756087007000494313948305584011885203989655046961924617168871649344920272839504096570681191830858010925577985355442053082220662165940216988047147098577236824413804620828256705714951575935538641405269933698394939364972948167302916982240631648094065423571097626829661041245364286519336771401514844907030548820014839297782362447876725257418041130890380634632869067086025642255418343460745349424526843995506420915218809579255537326787850928703019136894494174131566118872961066735733790464695610309880788401945442808193498079763820993104233755409635490748567614124374551705478324768348286047573408890040200195551410939526549424093054559534379166715794645960508175753768652864767611361360581675949267094577506446023007561234799946918823194422624475735403758571486619445120128133741350708170132656922189110331470699076396067328960105759515698859240622923727933310728473681616168140279934404990055392079863088795369159512969896112825989138342349134046523595130799273466035278637191701378988597177839377466031174362234849473787505798437451080472811309064874811327700990421324062297633633927657647648982627610562614913751451470773840180482707346888502849722729667092576812601296745766528110515692555684622603183063827467626224534860355091828491627477827518480481710389603653933994663882334924036581420821429890671036644003410997967734577403065523439658766821513975945585151699969419155464264337187935657460352681538371134093782667239902044002850308099302841437998437718221614234612173528916991073341694046864358419447063385650282560351222910403307165148198232970011358703252616140367393367649579400037530397112078104868930422594642967094491423501757599036336695428948560761417792366823083826606717920698981283135359877839380016331843132847023564319883138685748417573534527245943018409060213037956708092155477682522529416827837704546426843156014997651154417977912337536725541225085713992903894161103647416776310299891360004854556735715152326316453548843715361464366707854442326764061544425746245077946902005438067072821669564780052652031799682320966936798271194661188276687639589420800664415241093015763397671633849867976612869634237959590153002582330974248386675188308920880457979081114523276720088186535315812939576685654743658179841756413320111445168682819580638157796039469249033415410288802097683327685395574802041910003753577139369272413526563591396842722526370743999179747623700403959587699325381292601754656992680180163048164168117493542042611720555162839104096649248650965484422793896900177940886921230580331797176091833017695723555035138300673277621493269557726263981737975321061198847575663260835223578995244874518038210046237840811914179681164916589720442892362014152657466498392806383364296374020665955463275459755641779782285305008339039905306722298602539880542389355318430089769441468069300954283569042196618213630648220787165525509798131108890539907295407842015540500009937602166443531913961198440678562984978121653323182921065816719941682855537232700609321062116360184647743788236403181707057563726927179197005137235030276434810498060321277915223056164748958646518637166192046500717981073724349878714014384843781047724899686033324875724649923211491443509218635455773063743177772336874298917494088383261461153335795835043800924282469632571041453193869984963311977783351338743158279232538773002857261321613614074411722837687232079192926964846919927821067188051147770382140289401397652982560730144829315644584710338329715604066634982728387458140655652705963759443874064981621895557439023407439838427288324676024466985213046161536687484347303145751809013823855647975573879828954092025297216598192313752011721052867187851963394382906015694971038394638685752073090484533192026987853956382802600631982841676384580195044660456884223829603558149188104036492430931577088626359202137112569039533200331530014432353661845325475057949133204321132020625649497994816070758842166883150140319505205008821110034084953139409912848184151809400728748670401127285636335294015414064281552860593526544054582994375811184778340476439440000102507732406919155853607651349222905320666054385805890584443177756598915222896516518403149490592003226729862671360084581964219108635930151120171637762475855367541259792812009215342316748235799001117782330523289947140610788194695108435945145459984020997565455458539912911819674844271751255845897961436650405477576167342539785917112958023018490568185286899443289866292751572960990025692962860363785410419973709670549248016356353568760753582970229702894760210750223955037450779986746182777080232342235129291717386984855005716621129386572183677052480745610877495634812552278763468484672695146265511554835324291682476189310130938190905375352590780239427572955887936100912973586264074993558868073643628093759540056998079374330749715247582373515490320030365229741887711908004170013470765105933641927551322596053421142798297599374900432569201835425096779893320689733467652745293895390982721738349015413939309737258370546752328341469993751935347966231496030729284365216035769855343785068916304280189091846931052550521744102313285696858155568927356719039596336013402673308234170617771440864342150037699840669458298061418874979456112241222923951078947703739301331529207231328380650477811357757699535139894220809651255659052820063074706889395275979175443633590371944110710112321525690287009460953933563090990171302748811494553562844156393408091599694470868041777706966379765422676173726249819406842495020329759120753055702477368894879834847197503609226844116374555231766643490304230453059842829189431296118030709270407786837261049883000678299038124019923959927684208938361524836964382319745913522878606394494509818734304564330145597337726826589276228623082492324295868886284400772864968965428369651230290342226452954417177228184706984377041400020300309480437408171438944805417946344626159248000726020503122075268913927680987670332885735368876493585779067748124544606300259223745945819401564828396920707093622448294817798723339826863648812716439133884190661037265627347401138832537295381419034731123385457827234516398605563248066277967812306006136766190581828613152373993652891208704004759919089325083449304309536940516896046681728163046579224946609328817081739573870628680762301084288765929787135121446397835842116935409612254214138317731236229008746816017942687537668453826698225246248307099250389065100281605233026640372222559093264929475318712710844783329279334922679250486092039465973048263111649656037231683250344215422720487961313837052193032067697525102334578305839022042650120034155268296722590136230629092736326961733439487589462485764455323703259118626506809109403202692308189181051733583792249116021150546818683847265759905565616203679517103069602521319004044152262972088731087864846179904407774378540098584016670358889780674675083236503586389191602944170636252846482327895980896763028541457798632983704583270636688967424439318066390829937193923898150050060090846330510843420353337819964892756628273342276934189286024171415629080202703580392116284182091190534732536248539613226184893087342173050145499634341497243963586249246160877911602466615038130760275133147889694598452243072923255857019621878955580687048006563838875573908894054639108915064229497023177883300762628946921117461815756452050954166849650769560416020759557631668434101558814141596510159436682091484830918039909953813521701454583095525104997757654693124795521256108288817609948239631374278120686498122471234330593535805313154283518874012817190035725335032194678403265419246478877943716263626062629333745153927870602536612037381768732985547017723718424847514604271132122508264093963868970000463357092468544899000002958455154792252319150685611691213227882014660048705378686746134941394804630434733200056744700370741046034397974372150677348700373378604112730441325660307461883159041823663742392301847856074033012848797649679101504849324996724505605427270528051436572693306798559112527598740032645047287681851980120931768934142301170580569492097117765073026726106864486307511042690344732971035946830771386854963662000336467246505024328235398418078004042950755371813740783803721468327693269278282877973838220961826295156726068635096912938724503667235672639372976193218523784145732302827103703034188820408077663084793381084905600494212001896189136746423294613699477804766608115694533075096370482648836911857399541166117077649022527964493046441191769678172467819253526351737341018055520323219004192862517814410183787815532458171485375205022403858611755296282718358726857506761601192743988364380956245760906196769683413007461907184956164579061122365230393294670316025951941701860343141899119344936086584307973499364585769671627146618335272552570887758021049873215511176246955233136982120331486806368498850375101137706321696560764095671361587851096663316346052275538009357365027102892126521073697879484248301365668207757015701014251936298604986988732725024104444926666931095667551142577538285625258490728259417654028713673994931168212456060394164929380510671090923803781747189398353692386861506772780031546856214199945668191446455393330351588318672600795201411770166149776197428568520278899786760030081835968742389045342288661269082707715675344055945887717357487282661783893260477069371476907550387879728766720094217822495848481524479909397325216878287864311143213477067426646660967938757059410044000626798206639127774115032614377954566901480729359619392164421160522417532234606720442167287846888766117880605382214839431346642298111258607542872384263638973953000336590680392338008629681100065273651333419727810351547005990967183529614350048899953752494389856183279673503938859159338547944639531052612794940740647419123841451627516873234928177410950886968613877904274224289511494964350058630134458758598747180881785020129924486345957520389793298704910342992677414798641090869253959444213984597339308445938457604871386422174851588890689079814540362931266166480560256124505441975855631103520691032429600501361152371448191501421901796830432161538037284574979921134005742049115794952507696953093591609769113635143453804932458824776100645036253264251312412592065742521787364707479883707791426215934667757472302477932256712731967588272251632692010334548821852147249719511372865335963747108593356624383719620974897198302760965701415724026738838089357129158545680514038208371598988241798817102462163289774869649928233103916017350534698186372802506708862822249725496138747723740875191171311062453773260332380543965455762324410549844421795592670076053356618046226119768232721038742718988791176109337479612302041895537083109109547450175066222526310381375149007656964922883645832944115359095015694170723126924880898021267879992975666516836516348233897932318312405626512737604239247183874229215126436792158645728460938691399710523054580233672933534570887174607585636145178829368351634151493297168415277717580033192862385357850291925064347506159644377601890590664210208065547640810263343893718231434202182783703315929023832349660850134418547701946183923176525009234591517228346774495615246365509133475116656331031307947532892128507947548978102053007903762179244510563228959023492023695034953162113208645225743142735872387785631194545712918571397631986755590593619853861812211216309009747598831001811117359901118004520249873094909817903498749859771736631928998667647972485985065652505296671454859961714096365971733686768787648050350796999966276205995932674210714781830498541166133207249566713200627895445907814786925492850816979633535294785635129610742621594620011551146252938634718887880049303675620732008964630639895166149317873892555830654814126670931329950811713279616733112359714851158776918998980552084817208205438193155514356384257305589556703626839542243017228926128523288047222961340311866160337817339240284371196317412069298203350661225321844124934497450998916807524801859969846905898734182936298673240020807698896704904459158946585987626406847696974045426220432641062876288886301022611748213430484010754214925861881001793948828472746710596231521882316651559967906708461432519320449187462341566708499729350518215769875689177142041392415110750083519934012455009006372672453441966252346727835847246552668850638484196787849249969671762386675868414140691703189379742209564465202674161890622319217387063171135777051537784685891126827601216710525668832193670634467719349262118384502957858080742512905050392537121687964406795452138934496810223202485051372570513348377652783010145956971598524661689692925545858200423084530749003817912797889385962260942325455759207905305711553855984564790350855387166347091441244218502992244327395311007592414978970140845848757564291994980875357341124377732948244729672221564814363261494993965736529640062347310760200035462518478872403231694944171929708422703634193648832505006076565902897382689471651646953907627406190572613930268464366390267115851460396576334984173568078728114428171904660582372840222915986783319164351915224261814693860966239097524188598907262698064322155683597586879606458980311177988044205765768840447861471930395093357379083478078823543228033240146135529710192597692518588546943475663469517753468609954396226469338716664906841738381951157813340398120771054969759702133797845414603660293822952725364412778087034213681844113769613075186989590380526428189142341486998944933784572033725207948901048951169833068160540477060397422831655661722419546334680176017747513467050256171847882595829916403552539026039487584060307507853041959154276028919025912190597876536272131351114315279483793506486182073531366784014683809464216226854631145658872941716244229345640972009186935304435746560342310853071452780929970640052247215310835534149448220413223221355502251844465048527412500500473141536704981191935094582121107838185761386567783536290502955166242167220893000020710726853870370390346706527551354203872067363386177586875782675802403218271395554141314083453990364339927941362827660655826584244570518831478514580307265935770989249260613855881324161965700586342634517871919755318689753799328034123009872905030841291234908006880837868771970515213749096376524852420416113559544696213120636448098129225740412753783148987399689124015290308680874222010821061978239072840251528998576904837157437564083060462199248515744534583499093654337044339824492853829015185701591499626069600938033966241288655841565807404534568527375371779816922921495634888055035093082885634165410620446803454577377566535269994566574960334944164261637774083005494543422796901440624947028911977471697447336445057841519228461466124493470396956161079294960815148725181789970968304270598707047825520499971337464482646015712499563481267179850849896545746068743019660818776282295745723678246939946080893454081398308193182576494466602419284665993000538562571405204684032998931051431787120861889317123802859255593889837529970673066290588411384146570481614520121286219683101597763025246950880691324835433983417631785830805821130792748340524153824718272005195785305665040791996735912594035909192828434648017285676089695603814711223081520304708101431778752736184879375891119937040935114579141483705255064974348077099345787614367272336615680548882957273403147626409037235490702242988164700258101497354495095148136562136790093618086614573574687491320319397414208756261075229153111589338682670878323456223026448678188354806066221073717049134118066508288664158257168011107595569317976980686365389526655427040812301777689729658765859789605892545037902793818408598925165682803965082370075628830877823677627059305168460752742556035849308683732367905967329744658638103942084608175178106724335671928301196733348287514911942473926712813858249804572663195941845663934442330240918642377431729016237483599109750229239556790384313909247096428717390715174245723406355572547435740662266008955171270376036768484673852062316471542404516697717085510316052729333702184485464304683378101223148445962269827666737599886171298494151798206968219428021749205271162004307794548662873470893508085220139597401631307424905389061160718397521290596953368690262326451506791334054635328393727675275307574579282203727659361251104148767494521593739670172671616195755425261441281464132143524442157563339389150272979777113680168012977634649201447097408333010215533644123858103597009620262325994637018550789897290456743104653243925977642563416823122685785101870333644681057856961070441837239351665475295463582519500674333601216701317578488575053799610434410855383069881178969431962174153716681257179140912181948279581412914908416218205759738821729594099869042391660053684366857390420642590231759583555140110441123662751102522339354801519984238471538835689455533085138751746542779083953857909352270137726146696827229995078752784363927415801215570272626596779850233494494229153863126882450735881216054022378158612837229655783091856061032317621637063580988032677473150975127126898296656016585581751645591217157652450684354936091871425835453973266779311664978698662469657949761087792923386834911376741747322456581784601930226005281783326974993735188523147510873859853898215645856336616099173459635670058567474113593063334719659584778027959377380657812462375757427418774043000419098685173995056206455693962420946693827104821540502689711764925819399521050079455129859906900458797897733684055802561934076129207089757093603272273921469582010002595578168657810977078860437230985507800776570077336015287010970207608379682779622381777783909226731043136450837077769433587133311755255916492508993708443385457177488200177782031087704386003662225601608915262149647216525043708410884500315392334813906528154390915269957245737818146508752845786009779815327414996796755147709609387805942520508503459999327148137105728645632384540493750915825783079841760759466135439887333423103370440739784443507376247814475848841110566605259962901533852143811400026783474204575793708765382522900267712714536095159882868309021053523954808614177566524639956975825782838333487822373000394517110512930525084692726004462583977904184222376248675169167698113808388693349989037983391562276936515099650902002779002109216636250483644068214367520803567080418322225864335435200415985511181601203077962343726397576148894769738656771800491729585628978971279844101869288708575555183713443943726017589607567418074672556143501477332604253239734561368334221298415827672590613292607539940260057733541056578487674184351095818421429649186891311001600782688441958696725038899822966903148203698833821376521999801653153874490511891182251543387175245777078826620215167190256453140320324054350160467399206788612375603119815744268894954682398323821631167646819140971054093331739440184477997507734465877393785795185182255470286434184661714883997488972600679323574576463846181177946834990192929980028732104061221650468564234265031395541981650340926781800873638932022246262652756111883516678060954654553003863876612159134892496683338263570696535601217088505839221840170028628180368447575367143607102950637607398978837420919214439812848085650960315878208306986146995156389198192782986533555773506207952830847875436124545294113180772120811519021597032534704528856952623773241751629969192059043646017539876006307139293252465097329107943561192307879784009282726316477189345524619673907601495507907148011727026529997003268898106174583057712864394859063289467173059577796074438652564437357752607610356095439959758066104087185723599651656146782640839129181337206647568366710165312106430141938961279611661857287175156684200875305953410474480842124652222287489997060086121456494366959601022176910924040246657636582371140553786554431136454364753026230132622965397402863171958605416178304556798803949003826180965840197033983547201023375849876909754527897137862050471851040578604818237220800167667818492332612526676679192456108833091011595905178074503982138933011000483613730947179009035289774613416790432834538695390428654115118891996598589909730655816279478265236436964764735736066112845820296404985698903739910605551567083753968179676293469769285914368253806630426234557842654486575224802241540930690006813421210796348627423442420279651692332160518946900271933021293062375171013211287726061658722008630135530646268180000621576191287125289789016456481080934775031583385737058498871137168778783970081252330354625785036493509137508367709987005850221846345700850423822380002073774024544012105835246256835579793094099970673523763181316835001962566087124779767679989877341461963625591330962576857136155960356153406051222393783420905258272248073209823949680816568825736585857077613437933816463458847574902393275578193827474439861568596576256121689159268386563789659799266563857903932390422778333799468527852395541566972738554759774693491150917600252328326161406325091296121431105360644495563777408669297342113273477266785042907914398090086278427025532782831251035664894641028623445495497392559483072574217133518671642322825515495554381242756594449390694066016469319930557502957512217009719184812713076395493518575050054851609989874821445963150259530776854087511040360075591195626166711417452817947965722265411535476976463097075367757644851631345243771550659224832514411613189386291848166602637020496109288864447522532588500825422770883597444849914258766445007755556715695729007229501327116388241569360848841468220544344068549679212527586666332898216416832599124032391881804657675483924926435765500274251082965082554261213889348517116883677418266642279031740951518373352710024215280457842379598612600105770774620739409703546266468238108312745216113314945982772421886615580280403316259654477503764660257220627025607965364770256488947869144902349666448029067167722216188801397641988744700530055293295532912715352518164638470216366380613920884881185988451235005081091365825740227317744168384841521299625315342931078313795579642472730196371017125769667448174970098762486428729651742795136006490013148659885343771371922599662634664557272976300762397819116822550186122053339245261225402465977212470425227430678601524505970549553859112011803292895289598503561420936820952091085132809529106916001049212576853544575101653142522753270096277949270606248467054228490756360514437819762848983323946513057298774632173200745928395483017041292742547071973485275431074251964843112463523861018788731178432710573368266744866215373429667322611381111618595962237508949796351761365820922077853473459275502179977034628031122219840194302053352669385711110321581070848849581329963669347358376130465721682243167986254242023307966811681623591926156206823378123716401316267063561770092650257595288176031180116483857699839234018376622989601521039448823693794315163719779936398360244070696623060157507142272353040369927866337515337817926145029392345619911870420774695482406172576135648815769331957140727455545608149369865400864114024657972140743254134389176803619507809558397934729452682398363918236523207762567153129042366143023104765727114757020658887335663823158629438206441582019664438159640371259020049006590451272953304433381665636354640954357753664888734218048242624073869815114842587769875806430895497220868861281374001189598627081188578596716058305025181262713162669886749938982409205034994733742774296111774343817809598753971615659507965356082304778500341405131116895257691462811127372318520290253412638949934255546360580722664219443025693280624872051546313001470653300614239783481484565431116114241434181823276804312723218693935276587935999219062170809036636668879972510140396353508756327240899367691266550265627452369726880806953861203404220285449196500245546718255013247942964591618135734676200127439373957464709868084812861592985747715051006580238501981226564827459368966129597490481093940273539548654880464402599466275562808047169629954433719619521163060997363155890018432056138191871218476377384041311849697839992207604188134456793716437406601621461729418881814517774197020979559523649450900198856884197384669252145278723359985747113131350659487774428127695664182340109407283648777846853944182174285004142611657031373073324441240264290280996951737141050118841583874046741154259142253700973806740181610273206909853412446302174442520395098081533887546492874812624807870551264216760673756111346107973551702412526031012553280376987067621098634077392673704990783720930243695721464726892714278703691709690975214352034490782132660045657775242207550948690395896871884180286791668047224749126027912925704719885515017533134585533611519887307085347513690964795410842471774970042004260704006319284971261253307151957880707983219388884288726873238564276880950755980643492177810855130148518354425892577857088165373301039711421529509181795507302749807779983424778291017600766640144009847941553522277940185470517062070368089735515841170706357255448380023929960366875180071162847747245880386936688675639108946604303286854103483913726086302637420159205045649089535187290986828521625382636656906672286971131547360700429440501402898989459963806895109538435044109164400484995182843245299497229522333650525518228198212649279211965987226125347143306435015883410260875522054430071325204069288522794681061130168863332466262275467509225813982036234860484794760856794345295175941666400950793241324613885856091205138801721665455490889218975147752049061514405216890210859682871567578329147855655097324661317476130382060204992685280897250066729705627494431470333038727187493425355914129253033063531519033535283106155261860773894536899601914416934751698230220092208544209090924252608056954088559433306078229321174624176206052495180118298549871030708198351737197541889272554989960081237218301617716803819663571532411528078740663116801067357475036707974553400168383665476668917814403098549406066901589270037308482791085080880315407149871243668481112389134522401121394280418663667644178007539522702672727448555025346124019734963018629134813904406747982738224069986749415869090950051737497773169368110074336174629922978674416267385439149616282900231586753387073599556142074260529602329938378893268688792953810121037343591968156444362684644105563052050313232435061188436137963590378628127648372964689832060889983647339683192404965681147005029856662941117474442189779066545614270437067157435930502497081987695122169722040774708723340291284424113191651598864059412638096677653045237934308501199116143241188341728376045459675120155497077872516483469328511955548054505350097959762372148631245966002838109535825983028925282549382872110990939751859390349285267744741142524958263402347330952558850048956915768945498122748361287309290830805215320849191772190413937837261129567983464140948570839889155172347081901149161929966282005142230171835255581922227742906721180734398622235460548947592684994841739350735069363759041825354701725546695703306648139313060809778810689647494322613932331007750494125148455701810583062051705035987985748100151237082650998599742033136350829073157679951253152414445855775640766182951942733154156072551628003408489444611808048602089177955408946847751197816700833013061667074520380401365088162554222031586760935247933110918895578569302651518209399742201203567657853937250351485875404976973486283266761577284856114471227221263038434257196019317944905698608052612533373705437375932112227348097351471643239255479211346585883791749724524669843770460856105747520892047504853552610450003892062526913365427426433556877175577615393935152048125969189842280965316890169662522905597833016519091068379257426139006716387183008499030783022010646657434004177046255054891418363413551554483482193767243504748469507446201973494765172650254452517154092504046533554269349441804619365900252588762871984587336440670868940910078298264401557246496702309588129519678429720596630257576625977812335873048192208227765279891372957336228630230225337331696567012590581012517838169618875942038498224682466183859743334434335749878212582530548612869777566000594170437590735423152996668936102904204961611839721214971777061438319158057321292185119409995579966061023293566535944679597699716470964242262161228856233937653723794178557893909953437277437763954488529852269762273540951295586668331366834269223301459317678641828613660195804551597807284865462268661696644800564847739147061738202272841379187299558081435238502003996851037450849237978108095189750637221073002834164353569550317333464755496391754428949538279900626999841381315280140461650892948866017298491947903398677011091929146989594151361803122236385311853849084101519754670183923895206340002988355981106027787855598982355086781797024841955183603898672794815423486192711365911852310543876245170854652795336459608196351456513261016472063592407130787669714376104575789435233938442800863300311607456508859167769224307393318073708065017791024274560021333749042776019404883721192440305141256056912293616373769766262002777052660769141204858078276819400153559709762929116296074448973053511809146704824503770835481004854966613015651055986981002156945513782653019955981807663613342174051605929875810205542586445028366831554927200105282428978821036515864845806507578786753497945067993103097876396821092399475451053213701162886700755357790461080572591749706536209861900174267281337981194722773751480808278566879529121579386104025144083345216392181738969864384360663782660625340380775789321756232549425450596886786507995084834197790076156417383110196589539206933475153771631825250633942062569436729093385914185778303841967894995447547003859106208821545340129848294832474496471668156765845358630919539056763161882713240773812012515052851099799777575062871431352762918393277659803046819780223618815357152165244047276028703699087584835350813640515936625582997459324348185932584180958004276363118033778335792377129667156424225284793924244161846432292817802859054137474701977587169878963461642971464576780856354118394666627722357487666653344098790480225486376954950727176757166774601147960152505510966340377086361365287621507992462676094407461216339903732808382075792736107479478034702593939775523101865447979681189582090603574440173607080200528089863190765748133363310968786694923741577146610801269410555950454143316353250277705728175803002219358313404824250634759897122378957053868307031489213585712289172695771845704736448020940778084073309522820516886754292360426176542480674073087218771835156188216518465482124358826311714084433184638781004913964418658986049887469781117069629596563794185568003794623254523387237908787537232255724611065839342748099891218448441622510249498863965329372131673977733840054724521964644040524707253623324671589087671321669200551024886128975395828752870408230523920655246608537710620144482475729838924510980677259893905958722591233667546909430135570803099555192635108012078436911225861606261741102984695385654456753523527662664799185246077582320361573150285735804502865982741468365467459801847497782152177662490397989315987228094720670167111249670695692657515019234835766367324042365673654712645133334610242434415961605301877018806680163522607613765994197231104965904913502857091436124091399132498230070817937115115228959053112450423478337972658462918351338856188732427830619255823101149764959858515858888255626625950491078119956704384728112748569028191112074477474906606322452402332435200847408144634957306326388413153439510456037307121621590049673302113111473191507372600647836144095382020500974909184702740369183543571656288674187519498009747395789632644311012073138997698069803890286495173809528044054360435110299579744993207909498303272522318400710317576982720884102442353677580460553275382119157871385021244371161930793792799343721507327828119832285474275295808842463701991827377653430641217668591484046230479374207940343519113185400907725813670093331648349086756648945809314598775488020651327243690420315087987051612120116822404511306650472318059526936474423815733656670588916783188894012810762719600907371325672672185990967205588362735494172496161506747411121746180295451819837487227897019045809194762873416490510882442671060057575934961907603847661217017247441517622745117259529979527497048712977360161276662496552728791465260541475467031957146121098003309420243809536939292492134573018382736879697552664965083279055440529784883441042212879199975883696152455437916464867570621042248143944002340796782269622994730617022907073525576491376170206644415002747283115485525584750223513494795218232546591429812273683413230623062095920564636305491321623348108051602006958449757142901550623235431053301776690431970685501485248432031068039707683321373106503455493052120032897152391916960170992479911585677223945107635490023417474926936491911239426140063627926247303208397382922448967213208833737492211977873886770359899833357685491653760227673022525774136558054555310911155876124347146308495572017079678209797878077434677008871935618385709571582256274241048239844277858877379773166815555686188604736448426871595364703944718589650609990312134290670789173285596917364416176729764114922173354992598957653374213008339591310474529998192253439562008029624035085833411312542122185537570454967313794137092710484519690060480031440156389061978185619631840687106509447988102061677826778324734453521081011556756829367743822934431667378288725001066187550129025715562031885305374751918581889158766330806572407038023436709896931529031453536324798021469267464021783282991385178628726862180863950762471715135047091773684599656865441557652385966213532839486130563522937327329535679877670677264878171494965554318700830650837061122886701478189139107193346876681549423901503694099316439822396390366554731786633819896863910996515497059233950572839393579769951116656466753268600264826822275602087464439696445349882706728995643521883843821773569643205463433374241839617147236510317409207675868422063467285303695468968990938092803534284732699900852814891451605335144224170642392305432733324453122928346864692644974656220389794773852435741585128931345593468045724757729442890200235251572424029119936668515956649689596624409127075619671042448478006239742708252938947183401437527072966036141170781537980996024656360535426174647832188022289439509179594491926359044997622170800913534307762922219497926425726894397354619216699843455607984491193665357720090108862281279715126865089486258947132154340551173759581057422889942757484895498451967547339584027279323531565527104295309076452357241151874737659160801275590213633952960703647813156884957657697194733608910574062595083856251427552013906309260177209028431930535160990115504865920823895483794061494089785638648140077676499225878903754051536616815405583339977656154510203870182995443860850005160649221881811072037744194631138404657124423143243578795528487984869873983607536002722463843501612470069813750655328087146233732414304126177875923891936766126973107239318358208148477107099145704737402439184538615141489677499647096576499082997322085878716363544402416114177868901863198253773918951097027845344343618220800060901869928435193647933047575576984155148976105262171381969177070872164120676539719650086071064767857856268590871150141861980077877870816325176338093171710458751966166377337266550289638906966239884833134310058240967804125490907519890675822290026382688302076970817798146656374834049725639788109516003128094599307898096997520885191359155297086466160747513823139983639120986474241119427900814585518555435072684577787761711420042820811203608636508428756121414126173447655734729770024596391875308419170387019317309258129125158553572295501869951975586322137743462835114026122311202206333158938030548118602646059235571585663592397851751190029692550465448307534611586363731332802510953824770275581844601434318917241921303541142197360327848799508918338352009462803086851380459820376225903155753413935786306004264031491814106691649707582706562884996897027922399424565113021280771560954275940199018862705971288412165629551810958070622214573829251573554236444725729181950329135280548870571490911674334838047905643254104712026479267595190882391261709791247049493418419028836687736499820388600542089176772027087647957414705907232328534935951362136528707750467930630647510954148054742445755336465966194974972073687833662132723752982498155163175079427131803771357909573629241382614916187173528556129064072567996684243220014721154866019368937834971338862817098576444254587077627013901903778934600274514773454919084251440191995267520691109467300347461637412692507588514689486210545520995353669815298972095869828305881191446349862800957240337097202113083855344597967868030981800468966704011761237600042551186227218429773486577798784761065460071748099755688583827383537417719768075234876015826595657388425338680354129093997357974383170020497005860252697966447772065411634952929212678469156104702983853080005619174744534900646348909142334952650184756698305033538105210380049916658037262919070709370113840288397511864374447526606525545246972430200835602790077225744037102502397512066803166529709606084625832592672524902140399300730965896302185251709714111701982976082550279420173867010065464338647778893548318098670607220464224737542774504261385676569344422589779779252586423575014323798606193348908504202771666051208784466190051681779558996374818899147440892436354895098422500383030472395963284293327788292558942216488042182270924101385146577475208068087900906793447732193023914313412269748467826184656532143995269960741002975724604727240442317253070820238053883760368352029352328532573303055028300395596763408530613387115350325296483393770359944783631990294926077201006304373932791026608757495530203400045443225822512258064624010345276345751279561125214347318652297376942861936300411013555946271998623404144152141938733943085255874008577344248016709827926899636340813067328505101938078876403838491323819454452136162671748890159066681319367080823594472839683513288197605901065952143271848447788736438175895604388318664847037539164303280930716288872024640262712066598782353910432306185143185045510248739676502729056045961443686463654080920971988414202173042450957906674719207340061589851296857363648586776758732979247942054680993758344475937276870727755166132833756753606098206748117022286239552188659635161998877167421346396340851737347351339995887091365926630408250444203982090014743103730384454808948127173821965220364957918593933711065723623503361521372170630870044873467630066144825194832409721521158899444368651294598034517609030606598507477767016230526207184790110523581068994918665731830979611423692651999821928448950895405631485910821146401330688976343564116409259563442799985394799900584090815208753917741369816340016101503525919779013099775564946470641390451945093247796572778777542101204757950413833024297403347160154307468001623713532466592827576331524198371974275293847636376339097181424365895789808928009110944028094388387793297990330393580726916311483732291443869719217990715243687216927185845811759613179091121464591711148028318699221691431559205349180796471202455307898660747399726988997585816606415909677499699703618819874131044089891387188525115673531884070558499825161793298364210529342960804909778982624806041634919393796626476243245655448500057415366083832091794567212346220018995802623260923236862000162962357898372660737566124836345174607572494015673412896170585415500266833870943559435593272458420290757768486745281418455805075869028118958133453528505776799999944779271498334153496238316804228516175535569854904039443606836249992415162895916327643130330466477314106573491286075653343728278026353214106715694959575114783406427171201806759877876735994885262942075108388043395124046085972215689482793973050610233961472974731597825061877812329772412651610847942903699893745331268865426717017958136812784242605098009173724255533862509705030102508746740135368661553419967043164116248692172148202589331624605025158340584651359568964851475216459802848632212114998079518142847270292054448343311624707801786241744956244854088649556356242595307264259136624562057919765752402940915712276996336397542275840227799321052429050782361998367433873754569978750398291119474810281144963572412263810053963821651167136700233814370122221282207261744626567154460994371388068176531509030653736594824799145563408160475247225636353252844339582027230976161715844936707880194655156666857477227306569720413084622263102463022514977777917457933760119434068123982141015771467734859183965695010435655182111154715598389911837620722574413608264547667427964699392878046399011272296645106549325195947859298994227374323223156293276151644496488477823850423440729582705285736587388124447760428923065448756508647547221515932973751526626898993854721353982940635567467791257128253088990805519726799945958030568583995346531321074139725890592627784672923325939584312156924055787992205332050095611732031298607540815367947956898466976357169759845610765195678836468618896609576247266420600173702352809484531971590050881802205398375795191229112544737344497649709280139736695480035542994811895880359708914280630936227714484445210267858578229010418390652636367290600043028609991083283532749266498331037953548367350030254652439590115483875875167739324330007886118369758612650506674527585136840225830079695518185424279889901145217961557052654734830713344029427811665948999526934437426870349883069678230958534195147446321159367954525176092440797038195835179058975330779597516679811114191669820638042539062139135876152558642014787508965767427617947906100523364104386833219955542129506292717507382759444946956244710686785186833126520231706064231564012221491363576940661890423498168661489510006349025916411531744891631744279287707022168444624125825847986207555068760903879590699324985327320652673632410499946879217973278464717681056701661571560714933099265795636576800201530792869509827435632848927016048538393169210773593679324227898517182938362288637319809141002531422168835502624079583020877916136349120862160210788127273625819521920681307814443218619257571399615976471790843204116192965057446049703124127589784280980460881431773918123067854616981602687254815084109367236764931459442773199882543078860234710829854862837572255003826346066955440943678341843196869703937206958604123598367087489557086343429242553220365397315963577196914819059121157231038595816633517589192012891763496442108951106268092872243166424532008458224590915295177884959273190918815004991290861222185593181326554184383522287775216269276530345471892551535796951786396263426455963158492629043099665894337263589299265765068434688113374004417432263859844605781349451588140895924591660697388456224140524297434569972466205685367889471489811682727057900760367052085567750370226389661066925435129643747489199950335938883245819261771602943891397964656213538496145822890538828817991388967407548847812325569249313539642714017785896296103789382339046594474882272347055995047759213863642370474965999874801299225210234674150211291611788070943029479313492559418774586042209976529839314501224935105895881488661299939866063685390186952552271461263139120208644678522294788876700520093824881682862810235732063093219774201305986982820972888766138072145315705315819259242615738837434006084725838851582879366260958738829930088131392830386033208766312977569623315547686018469086058678669491788121800025458525765313363234850333481527956042949596086425313455794543215851943477814532080007523031440469306464840372844463671867398793966603696557720645672292995493897786608581730840885771329181937856936203972945993045801172131740409117069803930084177052591286450380580086652218370013448207063748924388388544407959006848069944789287688084240546273099845319015989226781856938388575874517912684494996502827993619012400474351690602141508354316997475715799425789402150568911494514332999560101779097238874860800696755519448511524586642716027881240090829164961165366681397522625963616174434496174780885289831643409351976535738163883461904349505630036632505293552173092242005208083522418790681331901023071636443241517934547544556790744390420244700907582241767117715873878700038855706728259497198292399181834816273590851089548130417714794147211171469740567287226455589400557847293279481963536787642280241723578742359039900194066360174397562931124330774682204496911513948921085860561291698549048460948329542327721052248188882585933468403244476068125364067386250462279746909564850527009598796041971970846349818091034207495794970424253072488688870361678683437106315358685129131772536309738396772365909294533352028185991925744115595928141595969221737404107376460651208513473861406713856144906095074953613194946724698347634715155954961682178077000917998912568596116889857126866710491874500787991069942159190960772668412819570303191735198892664344339508856878340018777173790258905624515933928915787163362765380720749365707964258061593576963778392902162054740502242723020319635952200977376642847870150681301331119063402958659711215843983939538670413541103533775258175693346301725156898074044011183954794282353780759431336195879155553547331092283847247769460466722509316948908878056438375443539968490970642923499380350749695481837410179333132075925855868735239274462905298304826578781050989071368566657012905898472281682909773314921580527829360895703799229968718308087583539836979874437820859426532739812289976469202645576119917161026682016085816478311726505457288218187907859615551547793389050076373815966351505761512158560349299101536628346022299164842940572850348567497288318808072025844787506141380252466243686136721197217278486522503340281328296509193182806078262860046277140254373588322981584260336763523838129491455888423092371517350633666327856445625090972132680255965345491793897067623732508512628305539729932124961461247472675487965196413094279196675830790264036468609182323617036807721365250866448958729502989716001720511013449035406718916947931788678462241160248199682808396914670011786585399416774046119340494555701809212770351821731490761643159424423630139595301490838540618012364098103231430695298048404211722073964710956080152352290884919529789621192794928983576968037253682938661747891021111059696796768757739813872689648630480880912121986448104540146731961478253973009543481383411449917060915699984678454667763385616055970232031243055101378868925438966702493168086340814824547256623049920107348378394981834218699503843101543241047280364598759215126243045353042749394177579064867281728348792082294666899151370659600113763363445933555296221609001888595491619215666540109498138725624157741998801407549823835139962965680430037016381722715344054275307227263044560476016236635324512547078962470131705275864893962853447963316949803539161626946565269448792917005467075111833872403111184356596346438925255406480458838415666916978439157337681998884519745507072778194759662594696012601382126566984561676796825620500567393329135048579319208766942974781235273450680874908233640636130602595642538557880062289237485554744772678684399606941040208982148307570515118423471973829818587664390064324954222544100837778051951381583052088097759271310562688170857083283833373521611582663804784434662337716037941132581673916307584193223062919180450000987848257888884133828214588740961460452500927293929328194384649723836892143923872715840252598838563518389378910779066202015761502744914042045261875094583502661173159875342353682839703982998005955248839721917133441736395861384406517465007524075479274873615541416743858625321653691369155140933423243051476829234955749958579932264112275314955100711231670571694522637962750176414199911321413919083959907863828316597728158276203512315737727994854464962385463313112856354033353048618362370981381397957618920846579237975877672059280803208202031242366923415005668966446370597943574236705769104665249295591755320234846561618434983947233826538317699160651759699656094939268900427247287924200268317925337634682741174117758400492476439532070114470114836260230436160607605185286641689455656144428454655841980725908978988670275327092718743576557030254493502811444702668210178053342697813348218644368979859790098870644443802344051011648171677584622788374591008767346329182330099612515465510386952700933865528950153833705431178349177739652483688630518098541424957594823183853450672361391977136684102627892199801057743735798751217257677772304128006197493927141549159171109349676812418247245840843179424613871904452374801373808601877456155428720806926458435112465405069953097861566355518783541072789024528770272386953464435633226776327514743913335124612064376028025258581696498183410352694953313889920722624426758770479497803988437734681928363038407223859873652349996278840946449143237650639123251617570870751872532727574641389028730296709457223487051065817802646520189938010482074607820377386487011833451750510117022102744703329263903903717354369157783854758261300293058507257033049497769178737333178382667335708242092385042490640561429561066192692474223133652441616923499148655917575854263343176183930915773019465542966502179648220409650283302379667809671510319743692849824052324137935766092016548659604302502353677835611345998405628115708627226220545255466589200332319775068642079018171051961940659200236329117896508021119209265305264840308558867680729827272305290104796847006660991552030804659996902931021140662072758200151363504762929194918425748773661798340284413289284448951507007407159092337350232419452942566927648656563870668058830004603722049150833743661559877932523962112972370532227884340016649040830422614618836638184583993431722764402964040297072968838057461328569001877965190566113468154550301996685934613870771941710625111200398173835858060110635751670937705128878696111204405314685840191032315129330158909063882989272422632687780338947639343463709488243246049217108006269565175904596604772635363639520723365608270229431598313393141419026453800670881288337251620812471484576739249589602659895188871048718901303034426724724963916704032596606532717159441287521798943324058659538622051423765889460988310160976485908998621386046872332577358748216422946489449350677720561281023081597668438824832724077711542309453594704328024522200545130870603363012892693523451289096841736135829032642972083496805614394575209838276808329457553751919056870889468735938260696746455641192756127996234949866953883353428214265023913490297258171526399460616404827429419308664830421047043154768057973164747610731860185983544112844386941839825688069119961725062863769114996197330852127092563021647875249644069522374161838066240353970260699013407842862847861030433111640098028381369471224781408699762448470550004389510974771989461045770666680046276768706129225973483254833947239665749210035528363678145943764207675601890211762711015480906003842712523496945145702712707607806204118301527881962351452947223963206482795415645268643599422102039126682474545363059087154690443164355816290243484574537167124894439306231165477195800010190699453706961627258408872526970256616440733826641564780960097957955769357475743852658333640550810317108154077610175429415021011873892832375977031877230058771084029821903978523222208662842973131482746692340141621423526395461729433148239270111704046566018643625202308107551837082313809477382618637130257131022301899146875276204676993278247401191687434752965145702146818995392930689261820823537657472084578314190738877122356203847019019009428281938081906354147657187461838092831153307887865644172903723424264957984444748099656871211719847965342683962534907014431441290206290396065537038582820687677999242643743045887478855929547041819527045993110205114323789668209201400095430517993411124752550703452507413568531309156164799111432819070278471681169534114351912976559115805128186377903482105100215801904070204046090082933473812789671036063843772945596623839419493658855529333819423507261402777149724552668036658979428683181269658124296758162028436077316158120855684217260245010864381661177225273848357833080828719917264686876582836192098631364422920624357760183135021648284394283939791521893539430160202339508617234841796129224732964438128585727025904315686375608737170933859294374971137436329485914765440471127330536744920051264353698751417674319727689041580939236855363346314628113831397272061127674292478556065689389450501206653606465871918526996428089647933912185371579099023019896556464958781035905562828530261407904962824333013613469685698291460369956308878467617184016773574717959449978081041697168372675921253415637053502580949812929583621913791346645897951888387150841386006505409216191372221244149192177562219415018402217659424946735947807285584312221848751070737886671997320830305288775459560287333974805923854908982144209699219057877847119914244239309025430989929820187140723975822858785723912559765253031020519429536966562845180051361651772027813224872210343852777326846830266104931124066359444357340602655506807635572978884249676821772877738305749992084621078096869943140325355967856386188132119222641341236439827152924435723464760022350224228070191037432362802962537969306508972099075609951849230987787203509183965567937077957733777659428598277493096283051386469013197771371951191402591986050184775947309493318929655426514942284671476416239734032642719476997813580921300620733120846739033323875150293061203312533331497250915995451159884859777739037619908546945294588451057124282648858314638719344494828931650909861325217453335407429999713035096474813585084248630363521731757883307424869640887830771884400879287905350318165608258498307537834685909477986356717146018606734443137235959823228021325305940012427971829200765902085161602829139363966481205598011494250013546870667750874076273592746838373143515623233564414078451289392750212502059213234148163659632960978954218323823215760134137596333664733512962331384557338322115281693995226044646544973248308969611138479464883265713275933270589077858879722079307596030662412680033453728330687684636824767255579323816741052161167247879214649055553645051739815624308200514271269838648440692159240146526365821477965475588984875594232958250625754282919011050277974565295526768440453918147725756872707556610614620635079827681504419637506748713038227187476817458673674560641364202439717697022266851935084615747538558337350864395920571069653915378687920305337148388515381193192818258715159275975315445271163612814687201010032251453865736507530758324126130824798358319475997711731594068764035708456146961978205490789144150977719110533626246420396427984035677539308281608772925122177903991797943130962577337612803972390888129020060236330217412836362505556352955495843774494866140863078269289307488534725241588295729565984484932795801616740120688117143891546602964309647984700096560636790475636968680437937810464260972451679242286410168927707137343545955347162928708473827718545640879537706880464847020560832817487798488442176838651143377061556468082162778197294469491351402588348699889468254191584764529441855211024095492845165599544829419905307567342711238689167879340155761484357914641436689822380285458947264168152197319780606904534284429313027243743457093106389185125191161997866750542230101705482460815034312429614029784601704474957675813974500246039360524514512529978758648417076412600816685613368072988049618629376938968162220067472338310331526595749067760113729667900633974062101971516145275705754438141124805383446519138261022373105920629162198031869180742034498113060516623902981971622456511729530982014226732782225790031397849460890920212049098992952098411786469023772909798247348588523265939390829757619622521834927154829188194999488102267959127325237490665119428708750326752219269945451050698137485912414222182846659952285168233937006168235413091981646252209676383529114763215437634144893951996563022598517364870818386518967626479826460259356805096457171933021173386681810951601937412002135351562989952391577812526126151438106256771552558728166504599440271369074158950311699258004865597628213970146985143359066907977488472007666005291106197107209920255591204029503284656088454776457328409178833713013382913802413655415740047420434908006610301783266278570617018384505182251247213937250442226318639952566035872601107087632497624909370556315938274894520916236499671735402959019655753047518323986349927791863469197041392499850651025544854062012922689213274688026446063857359593801687319802436485856885266729453602712062414404728260580894508078794215427866068520082370895777921059474722507039658696478839465976645290990598876152303171859120293624069620229408864860187630065264586319593465948197331518354807804379488835221028046708408882790344749901251263087812573149462030354559314539586471930127020282731611934516433658260474109941809686448612375772845984000595717993138697865202326866271223329868156845092419797127112365134202190215059185201719579908007851576918984285003351101250390586818310890850406324405647791229967245558490669068863684932230149310259312027380418994960525564761389085504370435729157904555933350412631865832641661709567794700220879236049111954000244809109106126742134764994193621888896531143526585082042483082073948652777772862057583720000326218214952213446678918584420315175613518035788358623491685709230482471218621448507367811569548316686063695133319772241532574822112962799690306006301483397265470024355389980731293083334679388157717082309828454517395114770818974245069219761921281592743543816522646133701025161997729477469039710062865212533240020241065816105397645202959725737546257741359886140697459004111130244795270148852043902666608676939815520276651882976050657231793116634998611013895310207524766164727629499342359493922365471139673487213722863308835683473614670319298974923921252089231526567922735083226737292199128915545658113738300737139994539959732937654587571199487860821434399157764008954670785735289249318308155126436910196907211545025387960787589850742966460838684998108736541023636545600862812307493344757525058710566512544387891466417046146809606752473376528912595022307809360832239964603088368835592652978486544097046303443529330297410213790891504932106544661615939066825501746779910786101548003861767146444377851922377971736429858076827396590544457019579251437325610649655489343402155899538091521618314739114777416552232250914146619792491779965568892149928655379630057179366275023164627266177647708372796911970089717045862637013833872256202306554679073429177849341136557353238452806305948712349119766161015875651940498508964085834864202239159590353296081998854708316609020518276411128739518131226725557885460233899314361151954798066632823259270147027218913539635073840630281665941908074519525507796978709928939102002347046342839543191208566933172461462772730553262504521165925074408575828152989309727324432361132216628991181170111550917188311030263669157110423541821385747795459080155587885321754112588464891953695910227679933986717986226254992661799271191339512622663261064288701528030219352124369447268641574757723951835620148254320502059039394392356617909387691196393854916027517961202054543340166242302407822010553165767999777997739315012935668520583386044341445982160985493989658029009982652064749404307835836712987870853088757299486886341613069519452442142155017453972276976602779319776230684241212359012443169304107526440289029188674685302977392775001033822881419924183894328533481257307901706119134187154204985331278242133152917823300963249688310205813283587108509914610164824235640723731937520105923328705813571023815909901041979004969108770984835799380388685415530451237632443900522766070277366245640905885522788288116019532917328135792549070624844135641460708357426538551967200920206311029612206570063399246425671169997729245909932235040846305636205994562071794270456890116790765072945482820582689433133584143226893093616938687146032113674597886348936721662324083712066354618610248075531414876731899960623150643969258469277883181181314899310395052703641110669726242330840552633724363889886936294439731672147444116800136057636185161123550845857827490140016883821440898754728823961088184061532430533253256993997665425901080023598593708193963958309045733078791225850142532720504795450485429277758288039708424765175640757603214815834058612604173881066528713283539288938119068173339143322292217976141361987174872408489371605938140119201714905753606883321907212886574207741321699795149793192539655056299014514391707686316680441095490882344344031847169973234980034373934123374738451969172120057154503124767543852442028771214125390654401250846410779146251226989390131714651412632243321028246220735569531649637623898082182126776791891464896358211869665302065108951326110742533825603579017886583692477336443146335716878671679024990004617510307324789616302519896311107089296944168956567202065477087185380041406587109232559270741227308772904799155874500705601393152643525410660385712429661718354464212672822456626811631898553534795865056574037771806713001388384472597151487167024668480709657643325482960926849949987382450512908277635632189730996925534337470546296280768662072471777502685352675118903992048708959458475711220048794737386100900349901702385694375344854641198024893268896281439779935296297715086055878002002596832691403378831462965192022145791012659372167127790531062710837794369726169240916670359824890046623736677559020515460806460317682392462486147958700833222914569735799396576185655198828431605128178495120473853121233922927132138763806737613739545477101158010734888937648195041505933225290824622644134265674941253610813095532566102192994266882144249650991567150839067481625610617571943285545576053049980779073114854686385688673424593376276011208254265287919543495729538321718282528996657766759273024003899016745505913440944737587377774499622899769756867412367748922944689187568517597693927201757720261442068716444312825995691406292017945962814729198355707360582839003557472896334982945793694024726970047175151878126046869195841507042716511063307133930822778329378184927734771154717543305373121544164193329731742740105280339667858657991300188398969963310477882115311228349298451762378620387687060074169770500052316901875163087736685561285759072401315204184969106942053127959877703317125894812434900346786629799668830162174736950726576485729255059121782392823624688421966690788646740634309288671014779359224862744280202443400954848737830175695161463388855514540470226212913328381565950293649148719158760515434981031741179908681786064427528428431740115983144412536484290527543827241867234822560961153193029351575310186652801313128712200784962337190817637760638198362426973722119741908392379166713098269161612826668278484340062643106795625400284710268717051627754623161584941074559460846121766314110775862239888937141398987035009012495040317965009618129709708702736513628593333965062205898197199087607233125087479831660423410893775289032824507529742468031692144759656111564349050952533308137143291548715314494375437299310566057385052116301132438779754511531342829394166616314151892630906856310111279530650429039531602416040520900116320117251474248602588519325676955255349985730437510298994613187027455409617871132613170332720931463916038935182731734715681245082527091117907374367853977728184299534958548443071817696243951129853413087647906898402904618912904049517080146203791572147322350971683595613059680091956459447979185397455403295467340779664849500500362965923203392709189576183584572973854619117276671473366293075067794140828946410441490404947335778043341788488080678239565757638312835678987797548580032322190210779058957938355601317087784309066089069092138888701475349888407236016657967732022756760533215178056321498356187346304456402226276586392355579498197077085581666306172956495521241906880573875432090007254336538106254643870102622964073970584456896915824021424341084238553289193665359077466359058075892687497709762125471563116766874913032153771923596110242837411898255791576355644199856264567922723644417251661630324853098382785723274439923989483203655065048066701978556192522626090290555488060018247022349346482269126083118878828553650047071850853955166609581613230796514630354207394287898839797808623528347101834235614606823770776593526911484671459437784557913976043692807290449732078601282013015690392498157844357287148667067396382126063154869003510077478541452909104287839018927170418556546971541160770481192533019682174522274011004277959244573271829131640782812675982530250731683641725683744858839636366012008639035431760291082813050546575258579333576131795375161960132068779234203891440021655993953405855826360609681830359613704440251671582694959522396769167335847004207531501049323865384981388001623553902913426077197414173218933471771865651314980844670632225327110375544195686693997974035074040948576102564272466682029117009009893099335928107836958685162608710254836246531865774388746444857515155607088807027341710707034492809929746055926540917917687507381952877071702969209315307231454401724847116856314301362805180201066102619972689638318746526120560991009284767043402693449087087677261486088104642137549405972734386674852724172311622017167111784210099983760386823658122725026735998235074124685795837758657611549467309110701873355745049097799309588771630707907415580794190887184603404440270198055342783454482974119447335095066171007227511109286382703603445403383112989323530552926929509911201413063568568693329517079405312762699020066834694164996640250741974121580581109926948744832289729971431915248304392523576310243176518182928348595458425202613603290835676026208677763255453155421456441691355841474379478820378301732568305974260311052076316681663816190329783561155886023379030799657378554810138972165908857076926546961332333695042642056345590710009126992877146025539384531341618325120069516212626894397479718485698632211177060514536340055903971276140627555272779181812350396716844607413231425162628070058321635468159862216629200001452680080150992900009609830446766287122728962406932617909467283943682321516816142915414415604303908249336355463008838968968680243204547232814397869408534181906909616670368554911376064589921476976075870120524758195951989268868955744589342292526610944655349303666885246856552134332174315275530645898232134278932193905316944177320456096606651268979956600914744425086797925044617057961303731931452283715455445646850233992666620205824553657766488267543004645639399373632610915850428853957020821415456816778723310375802025198530017460410382370483267347524551989130519991589304788029765706235216679346629410582706967626971201982667573374060826622115431335969541556981082311111657852891705311700868629993290841920247894419414888375482417243692166362387532392475104553398534055860688211495025784122128825546284710575809169371246633050206046294169581260453969672673218873919491283617904966350370903102186673872298724633154686409782495054951969500130707871285399091062466094446061628565588397065983811271264811600640074108725702650618821526396526485956864817325815280697585106285417072953346410866171879862562811280141245982128204115226217690476429760208468222456200971346703917875553172054888481197457070383014870623501243323565601674610532403466334076030376657277314527205786346870559812783504273904780139207729604683809325660232197866054876887035906821022489022703331823523527721390310290233906165821637848874835361656416090590808082351311208048410047373064093207189263769272188427243963457043530324143715942020432413412624073073819318559976734418001639665231839923428655274894516052357850490139734447438568813883584189884101616937724990167975981124215135668274995652433339019246865744321146248097067669283103887034801932550020187952867067344542522019565279973885973958659211599567134648263432788768967838281266661665436280191787354600673888848215370516859191161771288997398211866356182383286190820713826324595910506133174260758076344642070241800969532980490878542630603627448251705925119774299379919212060178095123955098696888153417837983140429131815284963101783899278269836078176160184308293608467226815862256129107879757586287082448461213960038140473649351626565608935333441153391039161563358166817813529948346808646479941498482692469625928559559348820502956074831035658276510679123555160815769932238456305062744306033992227850537318063274656590088130854604193942662914272992506104743157791170980779287130020080700458397429611654149022458403978675513928357894409756848621495707417913384071099191042626288759398471306736818775724161284397278022812466427554770961508458262719890003382395034449869708890254795067313337730179348140792926793670858325822103555190416251131736409587900509445853008072717282252107573767974008630841148119756659493903488614827424603436342239380171338625760438484862983201324867137593428916662845420906939805814105635807621970176102755482844437433604536783972647022180729010395205710328277051046155173553050002749273495984983100963740739907499258214894825402808311141075155958810975098389474763888752081583264389700143921543770207586918466102000090718456059960049024935012797003958049597509147519328666303709159893069149058487004656655028259143951302174156704960298473153194523331708112274811662595767224879786118417241976141662432628590039469544258810577785629663323513151489076857254817731948395847950776336061387749172902265659429084772479006351857499310187894455646837967626157917491692737524691624081525975335870804418398669258569493664290773288758611195055426814221530174609158811219485320619544232490555938629713708996445085348770843278931433659927986090672317441988917664300114010735594906963072119147510841497467532492974368902633959795170620680919725970254437214434614764121920443368560226001188746273605340808134161285150206468883652164222555735757899864735259317090287265111352957908837517976308587571781222242178241941916657711562780659000272739993986749591659527954723512575604753759052214833489373831823004275850169389738091055644951373040356689664595967819554617225330462363186974828011662851594711079606543311997410046178326409584216202913875924877637278984199073977228029831682950824556990838374898769732357037229147158743848095391338585598151838549984723846384780000195245949511258638373033110056087007981167692363149446375472481081955743771173631656419579314462770936914431840522769552487055769776369000448847330895166745213607332763498909916402107899520183087800343043447956055025411166233766170442353964105839145185509123783528298062991669107366854990007309811044459688371676285249955417123713243665678036581702055207116137980669867031078298932525631675895788353624292450917453290998928186407231505606223445696100065339454815197506805281416707790277262744980258244371015822508528340516165567373574582326155719409373659512466798995512932300125489303962491716541508373953016779651334046881840596065547842338631695286025212030871669537240488067668116911444066735574309421575203952440079528302875506061016310970236215681741162563380179098328403421916799110758255475011282966311439990863526666858963267897205890652643863669456432119097383426022614768421255804951447615772098171355782435298922841853308454476055297804948695961642483301269601484074232766596142009568066493573024716210076934784774176119244061113347038128812708386385574800071311372184633008674639546728231680130900619274519158933199792691460956412802951035958056771079140633498346717028234836545404832408782454939801975164707952049430840370288430309701385612566119517690281993267225433421454443704998700302898062507399581937257313947662717877882942548294451426570250026713013709093442773232819217377195266183385875886426148447386210103629088316222989043956290488758552718826468418401192740845175601567727905892068907023824930254663914274303263649572498160709336651083219408710370156386747651368364687864247282971195850873894331400111618644249923550119835474700602999430140936642650638664986827005684021555694151103191794920877349370038276573448300849476884732960288474762387753571792769212693081736060005453789148076375658109226923657046253193324446786514783424764209858563455538509773869494950688917586723748254537476898990112556858329384124559427703245585161319848282296277943047850152068162056373459324430540486753648715126777818747864523531539733544825732197956570740637153350922932168736263962029949984358938240795338045446012435661742681456132365068290932456454593719559476831177475247961478013777704282661341884822595656247849298382779616594652188321176364704467580229873582316760733092464156852840304066341682466377136928899069049926062207872320578820127203625124939719968047443853033683917170446657527717442580574053479736978232796749130669317586243090799288435638607646438602247752663075003767493562672799554688601587220383701914376454745138751279483889425851998803960878221922933029389918369220601783928708365460951617002693242366412470213449564057937751297568611185492410111785189687257133324344200112281071669656470072437224670365716308535751402843169486310645895959558793848178316504386898281114168169992141821574270839789301377069933965189173446914695565949150259204747980043763668805194457896561844637321034651881412829110033011228800495746158723262739290765044023882947568727738334971814114515564778561230747717453122713576038621769753925617783913653492729945594377028239904044134612273265587762081476838573330032924175131253744709462570351772962200781003487585011523937214842253906728055301429589919334138998642956779588238900068340307503517047137337142053996447298197583513953098796588664896300678330700626065797132858304678977428849469325813892170861719138216864157776380433112133663904502202589034614605764253752002206316930233924277730572543380958396177444016230225687291145281022714191546116052092268946398870463875400934837090269379473507699289738412349259679471725960593351632833522233857073201233487162469002630285386213230844459195483207912037545342776175380506862796650560739713136034480110618678576996632654798947760596515887877844941681827319086029943326869234714281947505611870396504574090732049393896081474056766597998691839961750065029339645492482507083338560080843938676153134363100979849634368039488228029942426229223790921520757252820791930757115858635428686151421026891566821630515531743948462803560836796601350948335850358094030394775106620913056194093617147582398457134108479375062993814135282616051233677975689902034557433357170167332773632968904401048565502727141957530582052142540392569826530788741129055502690669845787912386557426336032632645723116987788933979313591355584973714488485221372764496821658201250210880316430664801692063811228546760310831189808598064845219208944284169786157391958482288012275404189952804127433244057927526327852258905537559475451704350492588448498606908534848745739880112698349714273931782582724452452001551707098596176084498743733103176559602886849089002908122182733438003324576578717861506009214437764185517337357686209718782536290106449761439275254394775987936060022606702553538858155167169899307628671462128693573327942633658332294236571698707165905420033476411366741856571727650982049047194986108873186416467273341973063970316467522971456675872202963419141667936794589302114834276562557493594823529067258590367714636673998031748445159762686576284483501662790802214239911734756624617605029992924516274851890699880236413983495005214148966855373098058718904907636129908970097937428086439685989624969233423210583963115363833234110654745171974127810367266634300944303952426827018183669196547340049650717111679323608631968085260465394128115160396581187022200377235726708564773377384272703210009400331627951835021630695016758845599258308106316980396804100970758607589610004954218250407530668735877375012866173278217133184081062750390421776735519333621746004164110313206519753811208557790445146915885914747806890200906239797976936587980642792319893247703433989415401527845415537775144781629162856792132528447699863080412427284966546371987067800154630210604985301171316106252027129954400294664693255293494763825813394526222528945155655724453831872882470323406905786742850462054637138017848663674969448915391910950037753044628790489964627111388723705215025539381835806298682439029513368086339675015443434903201682903043810829786410806266255714618717148371428991771345932592614600716399030171793955696794076722441908169301897155064080072672591178940714154196586085594699789636754333480872809804065897807216856665652132679477432710317311130022038768937898909129994617591382926219908746058267057497068425271690258582501386697147714127989964322919981113643562941334461240812162880451234885260859970582157659916124242444987196056751237699262880632974843615208087212066661865027838940670517914184774724397590777901927895930961364082997237577118978642635939372926773630250478367406152006717617989618616522731120269838524020034628309134048698273091511366723242434944648448876201526562033579963480977234749251558550221571059577869655649943270487603772728092778228013970352570285050790239208049271658578491512678427163099581852712166581369603945232295169837337934869056430174214351886713816141030005992718693805231791503002629074596104176197987558813652889051834406446201447857496419685716860618512918144581821767210522209759167496781652064866064557577649785899676058902868466702168962275651779572614081168061796115146458283551489091042615548776623649033590517545523631960361542598477153710495195653480031453799247320720036046455505536073032244913073889904460601543262585569714978728369432159872724589665416096456691105255575738736207743077906160721163995564446597472027215528983050783034976507325544541206710089661893607567921662119366991697398814556288535786258662135280916003721269809053461897973394286635046673213717018575370610711551265105210591257147588290961079764730258582197863478042764010896432837975927233926481743133635361968067070309976757502848252471369636342526442625121952440171249955106474053239704810879916258192499739262898870378202428971396794510561173466712952318391649419316218720208569900973155884668462592870697330022213481358308876749832726829754680403983398262792741288392782599367889938072995207650014530071088120243898844393692630357973126439158049951490705876824164249650290936833391095344748331446535226300934654888582319004757560751769758443072741166810405060505291294266640794065269865867079007248824989389004525889221961909194389335658508974755644476516230520801184947827267112221017805664995800395851969434685090850160440877970679069458402570063527818572628731025080969937376548137825372552972592836622815533913487265806414338586001783002578663256709886290665723524340421076746243222733335518652401400703321884861474621148227073945533381847108799222504645438573811453378056989061253780094176872964836368400157197533008545927278661236833920470990091095144346276800822064401404265625507999264445263892701308860425438272971876142741237294388478684261034442773701347566384057322622658547301168670932650283606267486377653798398779556440293540704839972731851223789557954468362081288813092558602190230230982599951003379869587410047514467962104069002073072608300538337804635113236263330497107255126896683873216132422604029222061868288840034911941349069339206342818756458488980412603327154088922619864500863991479280408878792564093783020652646835978146509557191664752153523857284615564409799927136513775817499893783354985341571758455323599549188877035478223135544713869169803894537851879217889767751752732018201029067785280990290464168824856204194439306359980443892716170182362907820605499933809283015271101579018316249620966035966330374534627420468741509387894486224347843509812186959139460463060819957230379081368797514123506710126134427985542955300395709935306403530637520989873477648143474095235582572472550923158167697007312477128325420465118615777179913046251130515583905617398132426975166897788484309961883029291359376813983977598917676438737209340452922929873388079350072128232897291088857016515274532055060319522911622314442354896326190879210689818875987344356065859623980852249872923443447919679501508273270603735890388021168243328971285336805474183342379992091678375597923142150455306525163600720702492769047846076785611547950381416898886979266649338492098966275126201379271903221948897225968201566556725943668204016723321653539261499952889422179307128867297816090815087933433132021914427532855403572057009516368826329579350250481357019363972514813541020423326087694929137546388012809562339109522523426048646800291276150507570797006692382300184069261213432126554448978594850629769803586409677456916382210666056546217253034950785647854868333164141115861992681908581900610125259284053270552098878481398172347967588295043540509811832057612358896001101588761890515909960967445355693269881967606767795956758398144398745184920016700350188621058346667407022031259559744686757083215457104721932180537529267688571671921974920455393942756472053600190485939054233044830137907695038038559789052354719456455566668144450015901606074555699978303614867597913393369600437107594030070003619616121803894229955826316747143779501976250861929005223692646318862930260953870383806892289923986323344581266669419140182282355322279780480047516824901317619246537815542660124065016618812221847270845227420045838904068667123875836938748472283338861110415229569452335586144837621040781362268313798083514814262652955093477032664384920693144247815700381448229411015980693641948427107192004230780516948905562518162114425887389641541636020246368678451818027426720144306694251157905358770324111560033023981130653140707128819352797015305064251479958100782814885449748765802233134910635897130367131457262275401366219303118671918267435881978980058085071796168847739480735314596754214397293168464292361822294071096693737573707843003381669330394897513408776066397476677441388398112899342388339129558704737303279367527475009491731882385499125299935878685132534416109063253272768401283028219404682105171205311641161697639596555009733036759007920722467173177335273585790079880401640782364252109596899090331165271911980462667629027648091909804675866554759890538177322426013750935286507665928353492862592236171376513806789279167843034374301856166446570492304635871922592070029939710998620741811721748505350126264127537318185120359025372623986452251002626798852920754078681691381975991193079791837712018147356932464227694700329564721287857125101211311318865131183151287466480708132169775612149748416499353065362910678335136665652480705280924691676869512683341828491730405015884396762140446530652395626633777371812131734352908702276211153900040992659077877779883959342154935367211876998084605205789756318475265776757010598816924108928002540854068699483403394938319565184032580716265807416892740823886227778624504895069110758788775883636309888014244859606883686461546274333116923161104927843579334588993982214364883653727425956447040038375089169840752531205982058115011003445351198481352708686361648784806009199867724108685985968652688974477350338386776319210589808285429792222606610016435722719047531728586440548069224620349326993869285075647699161108026740428161515885722805974541737712991862726468351427337610037812867709626800115455741338858850817674559853639487203782563174201150312371445520860837434466794693540172827230096504905155184851502831838293254087936309869797905265776627759924418985820679158017270131068680929905164719634297802693822393515707865688982339294720432498178501488237023562149827932523665830509774579988916385204029804191891007718487817943553534320083626322907879564913805397846018997115979555346167872669391099953118396334403564589376538630251297613700539031425021078876235212367533830675194039325501988362656655416383646174819069121926691600966950932867745159862611045340317836494641857142585206048097694221529014688823453227817913321232200841408482872096268080112457252398887482822077993096846626133979754265867726452041597515270784205433419384215620715951283486251398007439779324433696078369615924172397025313841939118755296891001758532727299584574860440350023173115856665544797454386641794095890071169676890542889159148600281051514505473871920466687925761930962340583159267474442216816995308025224380310491999679322526193302124420443852524595778349963084315362549740173818510034650371260798659473928601549468641284827645704596053721644974736931724402315737795322225173108129016465963818660772556704447828978962053158728625630686259373055710091444697925731282302370626607059158284941482697050535162656365868462889406654725985964621421741346956193045331101912380968694769448215029309520703012200844803106263078440977225563169386381419408714391603934719762481131290838891151597640040795036907653422770355426812989648124600001467900713951851048804116367226279951423856439298385264129928232792256420820327790987511459356806544006254662029580465994414755615551029338645287704642103660741392262082111610765012961061619241849247982965480991205345395250614477771805946707333585423563779901175888296864648104620824774246035964429753992226567074151978401901138597493246045682843865124161268487338816844208629661794227545538777372213682704643924958532577446651830989413497576716269277891399316126575592770873825253603890066588165627857973400037505794205196585223563396540279122068367169688911539470394452535276388883273045465645459006937255356156984664687270085526588473961343244836704029671056234897348294815948263177147525745328656716024648507203499842629315471112843057006964345102789092797852214648193674390516213518446297192817137558763805406534349851450093737226044473457917540992775146740115912013850539944609888272366276961721491133864714930429193151499561478880059708356375749713770708043171985970010388001679201355629364610178410760068760319800509216956065046086777346998527487497091563542896361277240105647971738931166557094245593832347262264651709987481456055453879958018626510097006618039372799255590964414721472725458666120663398529493009668149015027864487498818965572019866470766583366334800175757081289807919678971896332498913858047144246523459021680973228159947259779660897906154376825808913753440046004157347089249504043795126645200424841900383517601074363635953629641762302427975768038394977565768768784804268501172631113557455739740572564505026715120954782212231158041692414518922121946074122089170414464009740932299094442516276577059893164052870889621168812490897890375632864240395407865362635309945819995307976020627291633574259636738407950063473980779037327691899790744713519739186990970994492535937125648195896804619224283769756683664731176001158296580200177997277161934303723372136753131137868114524269502937532863246525258375750071526282457859539202971990281903275635780487343442480268197795121645465275378227256848050846413579514743679391351623318086252538991376294515586467227761485724622792916516216325075812055214496471065760645592691596101343310249949746813137301261789221302239724903796950814710704974957645033425142347180810324841649511685494721013690579279853058470458697143868816137765989017791142844617169440508824709243474123848476174977975711206157483905693937820291325334094144625164459846236745943977826741519777070591534631436853054849596675572151631647156809559733308467020968563765086241762205636511963647605697921990856955341064980115808407985774467833489505954475607480702196126223833607901342709231933931048408633274122725191899964273724268524418568599166245444025083391914673663608177793907286776740892824823772003099416435040751808105624013453872339008258237196016655871455821705172760062329296071647233907393988201052693519861686624824415721111095784163932380646571670292780970059650833499962333047390187196408933294673333232426115851116326859997107105240074822065470003643867534749908993918472462753170632917117596318384508386695260627401333626710188107710442977987945346359571844054140069956531613239141548340820573080457822658638553384642214295593071741588402884410111350814423248799567327006333467971665847374388271816244797897687496004378584044891171931634296410942826880602255874007746376953709116362378483362010429434187241214124030132238243671325319701733640929924988848364887368067928715319388667824389182167165113627131717543860885968770228991563570369294758244121379198019033323903792808902227994155084644639448533081413064512804333695098738751294932446993628529134140809337553767284124730500828007312142766703489355760131182493054941639702272828860380424032686162118098879077843667415581716202661249307216129157757956564922324825471135176066812458595918720983389946039596605995736617433618057930312173807541310574210206061915426319895059205950298437057654767830781722297234271730670374672777354467013102307836460438919917773051522191004661737632841058206146017601006500160343056851921823989383901989236943005038412503895568558518891577155925226337001424088550497937423750930091782925954569081217918800247442729283863776849043868672570786485837748415284039212500823188427709544640359574547962288001035788722204936652385745186507301157352171769945158888914096586505596614650714735291180635836852899729969010321350163389322154822122530573038841374600412543167478442696209165938240174817221707244373428375806562868875189759174922758210010571603614111254345599490778551111289725797939810840127813121204557703878895942077739222592786777736467514871254066611687707890051875370108719936269574664622550420882737249725633898692923853199760651010945893214405761741166980788405401549341442445482888855670279936410397746660779729460276059895507097132275788096548190547750428740333257166747447363669708873409059608803498972741607277284771416560029518383559295354667477692858548633310691204201861221526340194822172520708563812902664959765534726328531402966656356880764471385180395077476146363514424158660253222234808026632439056279720413898351171513195232797823224972716058312571762168484569928254518484274042484454191218870525577718102322775645795468106047818524668295166177622389071444727235929768439914835299565431799434570155556791552154403522655622341296935444906425152283796004288525488929537216372820381345787922463163587300203136865211072705371330142333519850611217382005287512493184688301426390051297617691233915915113092377739335405280431898041538257067055247523868912759779848412331241672969141759330604751734124203402962759635249788963126305259146065507378222044484907964415527725125561926341743790143182692956792731114834358852084257832463907734718247050258391215937956529635040077778070947444848215850136076345047171558191721337833997624525774245788865391154419750890357959081252710975450889819234349174904395240427559057709692194105286791072555168345737859797466601404589971428370990743836182945300513908693734178028936631513924337780658799853815619391722832834041606636593378129184933929690136720484625695107510836855685559146140661504494739646310881050687561691185018843157373133681661299685911300863389205865304337605837107878411886682188896852740491541346413138225056163392789970036068613733655373148318771464265901363931284136329633324281987453159166709674937634672534837015403573883567109193837904707574650457620150581471708082793922807593916393512038616164819163636530750365980928871742623016125069284574370372787860237974866912974411450368696290117678619704086502119328134042496215910835831230544593917524102818753052578049225736631168222808241690095358567949905972004631800706889663173467183580985694762318787364069993501983375218011811080023360450662379716518740612739099827690558443982276186663785953439319230512569488306151792638807629007448767368680921908982676091158093852873615667469598191639105196382607853652180296789472239276742531362717344720402937094790213487561140764322825688438845600572456567363694947582509228305724677365318645666918177554082087854478973482832521723344741535958279130502920530183877957021110349461802133223365176249496375595401201757768801063099626720550953739784847280910123897263944754894320015870859609489058752713131788503488445174614757196099476466470442689554509268153491882108232626051917914729267225687098523241266243220857805104266804958960333536006708861297959219377631509185684857587953043479679285280077439067257662632994356590072633789076761548930981917989186441467913645161812804031335864370543757417452605205276060528263648439711604039080617138526464311273722562197582732302265241986471849319095443968814523633654641695016995841850575407185359166627056820960289462723121022967956122658435251053737334791766145517833958340376841079658393133538884421543913874777976496302764114947694773665025654582771616756641953693333250377243861165495858110832130819604091114760621692714597925419825309480156922164756564173306883324841374173117463425950946721276368018607225240737121141280226083370676308030141399918331374835972437425132398994209497350994593664527545623657336252392387355315662609210033469043703958461521987131171978754730692591885367632068070452393288101107723556888062182713732498593458468766817928932083725222257751471646815673345667390551887141035621154244772804679455158808030721985734417488987627659676985834017314212707026375506283635551649299066313467825010892995548615574930189347512841579341234739126706507178603211957269374640400764853403887414424682530554694210183359332106381017170876476163470413217047937040669051805840089173666789205119001716244119640135669947556901360060093050394756161175252747971466230024125662269796943505806775410324392369800196748481427726401059937553918566032932813796331435339289819191981670943370658168035347946988995038593699869015518213599457411186079777366017260179403033247907125538663130233768923062210382534316441478055406944647987942457729568139345856415171642139114478002728671612281675371707326041675078608454593948385769465957062199904483938808802847424094325184583974829761358594092916436146582650510116867326823609058837438816705889210629282137471054637192377545029695310563930994390470699136247070587417861981383288259765304662991751461335837442479952261550695562718374443373100862526810863340887206967577115393441695827698688647981126088056605744488648586460346990273419010541963142892706765175998079599850348538515375761059559098512029781659890126623211926371074151540048250424089249724917145705012340880992837667077358114999953364456382136079060370363542766900185949944906161354387093669698560426004438462778669271985588649720887372250823969838950050088178991031532286965475405043520092305987189010558006292977669372795598295841904466811442813404737069737187505494271219818634038050239685726543771060783623993286155594810147516711707337972205005762330228880668842325133687686265386516763421800704047793887921985559283246416558870056432849159894563558373735020470818911630237170852098553271957484007240883478624355972518476460298640767077401331073694779997679851414064541057489324712919908966755430299859150536642889209912160436385897364363079184427837550969633791170449852538734413195266719206355980430687634891299593756065477745464237047145177176955046967551904067936396760358165009640548583413635032214811219390005563622622478413147502395194458815820187311093400022000821962541568868494325674576825421404959769011725364811641153312745860928009877868455491917209402629558167870856494783307831103436585125708121932440369968646419195034677267803062598071593614348973748762570344341523053890165352022796100532436420125380949023166204932181420287793820658311156882612432437230662090328242351769657229215711889659531628733827931365649671751553461735057267928026825034530236337212951312914913602596579225624789652048429842625856998692700930182078378565597952109242565502042693836545163593612917586492259303616909282304502103507114271947722481265415738151777471231625017077156677202160884175320809879716619474435902514215831976836141369881542094188374237895968395078427850557681788225399222344116085134308798846034996022402555561418924746999923179305628106912591101381228037788040824023592803829424067149495262271921151357546128015256727182795369051554883303415611999916676626367868656576638096327121232472590318135846550439721414183097370379667900409571994088146975642269923818983261640480021317150539785229420472287132102076958379122404840432393036279952363602489508261569587267007965671967400156930542676516432545640396905492383950793724468431523438019067920181339685850985185477582599740188669341163190158447833706462926210273164382127350843553260610099928996695105628707911971904388002165575823159201547473353195656908306188278126306769418104518108685376974589309948940744893342795335378387769477258996920647055619848900565622881635058009550843253343597395817074075772937590578819845589152450841678421835715979788294954843772881937990177408680881309779520431609557945226736850886075385931441277693549788579618488742552305721106706516557092745660483376588405649029085320985828158923863016819586103514521909601156326671390228306216749957157925499232271492443364212387666889543856126738607519880568610557531515741369061494330810774547616336386339508353645880783857592550650140803027518725028478467676030477829371295849879022429342425496766664236059091559113282418312929428266781495143561567101360222106128901739329173482422403973153721376740887021082521641437690716384488407601965172854165489277173347647985061172746861312493635718504595891254196713560869092802110625064850527248687850815206199155431596318864005934439170127355760138249070661700225507626116941715783616170313167928789669500970846395722361819476446176508607076279117676559564940967839186424339639287405028099790218245804199635383016264875763667905265358319722606510472946541094313391557756007390161159921392012054118901111674940522949615662688545875031649777510711017619826946127415000724301640975173154989699254234161390682355187936037714970684918500262111131718527520400440835155591797243020302094243269644575239860035798620333262300384679944910571710946241721373484328358514645146653775065218059205894420016313202957921459981727743191278227423979233979578708377294472219283360163342868628880699442709590000602660685711510759260798725870351782995948321993962057694484822543467592540059963090847231964569533932012694342996758537086102762709024159215311713055755562436122219672145602855703983510706120396430159838635759040215162140905939582646924848541837879477419795506207410143293100173110970487153449934724405742070166970332306328040795850691432790081059862873449162159204071962638983365489351573281188425085716783453656057896105018219647001053399736164787332885995386505890699944389342121923132893751266720864040687112977588372479171002877597281784792881580418354075669589538837424389991103203524613163879448209837906156722158774720173506628032816722824987736240629448317882696085715074180693914852967154071927593259988591404485344385889641380551769164976144045391798650828760271121687901449038570640856693334977555405410149201908553256579236106723889179670180309194705179028864362564082893117686753149310807496928183164672427321750531608503584151494286037756435249192824330001079774888064019175048626595968921470491538095164849975453691656927735810095260010108690760264551293340454102878527748252139515744173635472097685638257820745484398912078957937861033464310545959111958919397357858526543570120996669389005225999595993309373149142895384112244434105959329518067821063508831276727035366033700446995251233879346446426252727376963358678649508754421246301812365655994886283774598857075244008988037757736364374256958032605831138820288916323049524093519731256344892731343209302948341642339832929168834421667699399042446091177648828302432943605653270686715060309655427428663964919770143083473967511435179274684395934278905426929242410270861882008212531652414584253258731600909441383452886179344421870356354063816127044812400491535023817299546736860830293005185121975915700160308054808826803843729723282763943197516359414644846821175390946715750951130627038114397686970874628892557817273822062748801389589628056083030324324868941281340103081440146262038466090760865272155890868531722504509147781454634453970398240492912393473546949506345693337260426087602262523886892999945931093884228827000358160658331693597245834668191500273210748966163351786590184521570711538101546107136715597866003972115034792937724631672201979579481869561502242950716260397651683024052571217347295943252600429170601938760713297897009208442389064049121783276362285230297082953839391958836490154034063869809628915306830378234408636210003841699989510102037825276272994603754997448026820999345166126277120455569191502600746588603049955103793949620893453836519006309374158973734067139167903188631018857942510118128945133494915632854731789830565614385711855731637761941974258473156010099606624226565102715711923328305338826479576027546968262871409955603322169657716625565679439561447834191505256066538158484251832808117271630277499149527244140690375364306051171711998721003874970853417560710690597394782124778210821704193004554320411056207457650862241277456603958039417969456829996505852755203877695319188513267205238740818097395274288632932517864613237540491255875572079772409133915673422308705777371654972236883171822857084227542392971879808910245596226246312716800314026962963652171234183729350174420415947594453976968592562388067737126324525568225613823085352188327670018160642807709737338390350602808188225062247568770138816133069857782624691193226751974614449330200560070132513195239481900659965798530261842974284700373184330248485755264883436640398048753590331111934290158151564182508025223257123388100981004448261601466113199854001390054232344286350841872083500313021120655416634090058076537627229909825794279579074971069982817031253045136211330219765723603944099589454532975870082279694284634889234073365728365269501846583023044011253420696935797547074202971461888556993727044078153299016009590460030460231138421478357618224336285875204372060582110127087965021775483452157516684501527201527739563685017777160706600748288358728030330561092066062478689145856993013920793729797382550270447605392638875721053387710288428475960273844802148605314236413074137338021938047561211240964869690034246316673225705662291566249031131536177207946774074967012448948562898914746053427100567843539320492981168768575984426900470312516496615363345663814204509365215270342276441059557182574832157143102586645525380774077186121402378569609515896658422693833228517480704743542821066940480187602619340497057010402730706210423171230410782247729202174424712870540782250270285058068634235564460343545895943979056860267529042242419759242704236399705057586016353044725801771452730029517459535698061800353598608130938209674754303565138292492120891713619085143205495939799884366950152249081074756916603493730053357452365209828645484631679172748865721651564813235535915196366285773816994795474644922754481022301398961396822772360931706172650207715631805534081912329678039133875670563895596936012244233837654283385238624877915545218208215656682479511002132238514914156212780179309192672135789876715135761477566807972812031935504287056170589338758452234325918630741125426210031979376075737858123473896961066740154006911771682464663673358337397013449654693050040126145045301458844863735713010616613837933935659687351039605938598418558723090110456117259046190629810291095969817956114957930747047074165411671113565200737870277782772707741022405731038918533299463812675108130975724034183396208063755387540750691480961248299923631591919076106299978122187247080469530195632823965274002345378624809065725664719583499812235311993011354648890909385190750210483238205740823109199061138968503009071676602225371156597747202038358482048294009087068016495617732857115637831426904835833496661045444616851151236224238398745332596759931013794755756895039879643963165528678516164579958550322843881274187459821134910516246230823520266113649764972167847188694707252114765349946149985781568838112423019214178587246705078112999121113144017418093574164548986570051445704122603822487752868267229808344711875103629020897088603314523483726852763021880525730860266752327599190227758578807551847561840240587247205586479942439198148451140088125488043604873389082423495709744322692039359440895002710501041757610356724960833581432086076891842023460872300545618836205861239108008974313729665719436435909539698999962111603806873687138882021872635134369222218965913166447992748923770988566270759901610135377664299503614111897019577555520023925078377961375552489298018373855119976566046236361167259162941063964620254582289993505546085683036300759561555413903201771444316488194378453770170014171498717426305143912014063088189104898131452795783688235783222449085279612069184782370160584626500108325967843340067980419607237490888728807653945011261932680326832333538344471997443222872130209447364885696478695950374468461872221012241629909554387065510767073870531702621422698192340702188089230148932214221207969903695235353888247406687841736367086908823617820285617789035943181138548332773561393679988395177269874074318658418969799396493804005326374931930674824867674770632031943603772515710490256929094565316267736994273108402608040322829110745874968194248207767927901483172859782330260896514477892555620892268726500656407807149102729202415009178098932823183863840765824491229773855806003369819237534591804339015257300597976219621935172672121367312234471291784447441335773262935786348753426045498493399520160033005715249755560890856641507628162947139268352311624333949774442590180091335870740969814973294235461279794455041259579613640417672059536372212565097859882890348269510186300004142985554452307847062916380456277086398746600319263259913360550802295015127134553061813018944809234316490288171067645932848897144281409387272478687432392496663902834118774965402529948054675356866282256759386752309474675577717302853908900572253687247480888147942807071664992236389225831535609865790468932857117998564796093556775818451438423831999598859243064165656474217866870660927207228602216325894093059841112361581436382204821078503071631753573601608153832753151741539780470189685048864437792255408956026468386610857212685636309979175051546755435515378846773053844120662089089537493937619515868528056836011898270989324908736408098504856007809568346981315580957736927167409691354238668287710333176978945684105518975380376815292622450827648063177148701980352421996276334820713543560587164214441570529714665156373130427261205491028164329908254413542246334764685478971798261649113592107292519196348479761885316998360731034885567523459914858817830943392927653824884603686003789938383546033847177436079070277936444750727400218793110127902008117496644186671031363199160922367513338050543434200426212674183680088493013431321095912924592069022262280310191163207876532710794235701510078846764047276771855976748331040504881152757670420646674154743689827194367194246824695170332859551172819253949323670080694170187853360543358355084449213656549500412877439429221738082053774204100116723251128452064885931180149572723999767296806886160292750458996422383044216357673592854614395164544455563730679551228959515915795269246352629553903783913674791481857872218902307372599371301327615808291742168559975862220100015708225857066334483019558797862374790349267552716131552873960183710331961416881759976595627186695025972833274938511130961514482642086222648394397009905826793649401615445374849884760036257976143844879653663254708348905941983047816470408881834714317488681020272388345827922118968713447026888193979191885238678576398134352738149213078498738532018720575144683907681095390411155094320455523001650335870717942937422649253529076344674408263528452031597701191350804029454954113948266677980017285317760946473697288093003888334527436474908854537249551108893834542708706265702916587235948327086145634580114231734741143834682583529487604383184098760475926065880893364810899616083907119816481202251188261581182115066782004986402558824585617103863273130625316964167673990328833613146787822099114015664641128958587979085531089771262369576411632106304653919938775580168375389588663712551023238407384655298760630497399526608231708802463877535063074076326142106110011043618298755415946532260300075583150155886158535652690639021223468443206295852821241473013177942296230917543221022247153031103171452308319915608889241603721549200811722587630719910588430463395124838111781424744304858393824494127180600996250576417476427175026439300484784995141630312171719390633175320281703507333595861129174644124977098225476321114186742249909822802652993772056369630903333206749809867898619125763978803471657496858263639770836123039404384846281440915886907834585204200937058845121145695749493398832833679487386548309804519140101401351712651534558574978472882698279229612052923860274247981084040970727317808518506978330194977543050692288036826398087028394064175502664958128781223012912589765387511917969682314426520097317896827006073092129353431696593891579225518888309832747595152382848737268890033092414921257147728374322243179464857546835071363494598569396882046312478482365208633539924174224123898339958492205812783741842221677072683492019753026452027671218569731034793900304185648799582791298931368032565867784553460174241461641911127511573942990611235609515914248806479345638363624483900842159619312203418580326134212597691641687582161410629266649088204555372194451895557815174505019028168731894663001280136019659075140904645350135676631669065745893710775910437266514204774336064487224977987228260178078691256274863480834638389332797202643093296197498547103536243495973435230146216023936506509784566327282943033580803114152239932132015502830175094483078485205863812142799420584025399434566090689220412702995756532924304839305814075524609391946706148416925235723377056150889063002885105326093651133252868055184934508904908761584990670697456760292831655694990401584635666743256865999356950724029233857385266090387179487081986782468660644238036909357788704305105329369750767856772481864571869848642329536457303348458644719475170389643430772225344455703994996945210874228109813317315437218545816279971259469668832082853671084461484960238033726169615764244870824364672581277829486056548194104282928194018046518069689089672275253723094664878331202556274263290964240227259984260575311578974218545829087342494046365663786641350788875884708244515742221485950404206057260256157384838035415569003116896924816350656870473918726143102806933359617140480502250005893869822164812525387167288281346463750763432815628090926678546762981102424916478407701772643274398214388748724961305776176026124855703809830227442641624473407149301458075982134372505758245477898696069934899416358231571830787516928174574197735404398113713247397037475271759771028341547881442960528861135745004004638525573077945607542528944276361377605437123325281408648719947040210363513708696202046961904861600600567618096850202531770044871977812572158945824425858643595337576991660430082339214230435157578886084122884977514048355091845501770877659759883154328084013549018393715225877673947194324532525815130697125231052075963670534848481393633462486985036801388813022347221153564320731382805045405117227511734790350030265815580382758347411140822067384084187469672043545772254699770569695118292914939132306588250192183722656073517198197925029514928910695829427733758128286538821770254323147950398331889900947719292753336546539598126857563109124752051248012584444602805933834836336574737311567572894367254577461957236499019636176649042696336798197322330936912905485287279770306147571528042641848428651832152427395735342876740114082487765513217487293416238943930461760934509560041477001270138713074792759129994038161264106470082362091470266250044771476576799101146322164315659153981283493897971496133330713468906679523852994759553947766271435631646373323885645699886825002860898840032383072500150121989710913945244871257588912703051985060944957922237598165556033948806935291714072178373717836822451615225797959439411338499384084535006699574637647510912626437371528877725269074593600013157899247529135030490636244227552605333744729016375459394387929099219479127720552869874479181447794822351379074898719888387066125173570898871656896076700528669757591065888429774843186178040649771221352269053541067738713811291292846993833192268870186123954025126874418665368054833853690331152194353672145274791049951970028286550957640934645853945401792919958185805729401779932112195057919200697746046541938432991858335140175139397724381359802631356988875107181381800849016806693992607524671239912455189582432179751286885608808449355829260928805742912939743380574589202342351957851272209052090950634360264048741891092244523486605934915302790775326813634375975954545356106396979184444173132565010991759958546927414082497288812355195944391385516881388934210878515306847493656734086359593351223111398179326798295384242567646569453073916420155111101950738606822115018943379157943061540017528925452620230950732285936065538780574886173932188238781547401873841513477819496449753377300119254848403336625598975480415585407679754228565511439548454740464675554886812774624956779855580360032729943917102238546567940905350864145639752876948221045210539928271990773851540186958102176763697541645448868938352919002910931429997926295791687036567730902354009766490702500581884670313775334888662415791879173350425550398864502530160425592490368247929909071279800095782235442255097165703646891069694645977153619711760807224517477972481185718159199407164178426077395094260602058566421725441170765390233265596841210440155181362879047872391305722170238847934290556048593303093597353861892670932656279385769361298470184789617190799256893811726359308245260571754224489439977243427032233593533252169715358012720673558255489019166841600577802643132961648866764579278446241503831818433716101333464078397657011339257014835359959100392371913790684540499433392062888328833376683335037229287071647654170003153275666439388284496863083738413992762689821040651856370821372865596594501617106633147800027503662068619107128677549053662466371696098321109008747823439592813601717612722242362492700545482569268327386487659388942307148673672623294095342638117840647458697600449073598250469640260581949413635461546428224713479364387039226030212642033317112969471124605707237152221470509453329724294557821570413034555576964059178061103848642429178844649160815664416915930382651761335469533489213319317029712055352271462859535597918681773487409223044002567278573072249011444922495184718356196562501380495677865758171244832065485432449955012652282762538223079886389932460068206049823804117587819587667886517812908909673104290030269075501973668260557309406544590683953098149995469246687797260449620144968116756961642495068160329576855075140788025180123443596985684355595950560219179011760858868212665123844183232036786484855021277230718362930507735741933810823579924116201722492304520509789655381602936446598857903092380295852207229547671395861755669899239700702409634045897125374588846654948761856511403553769276377612151252838452072624015967922526312828088864293003980580892099938566720572215431518639034063713768741561534631492285584240176022442412767836000552062683944729721015853159414689914291819206549442502919648463476829547429562126858473841829799433440804114966433875424700065912440460843414777093085272262048919305538257292230641840398618988479846812962062711366372689482580150194054672844857597854207103531780597378699263020621243041276751219817318616514286723696137562448692458496278912726344138260123881553150766973643806582613597053462003296857602290322980864575753397266152710816192549033255839630295902277937589682769541315628417021650286978728929980549673565536904181116638607373934664737700650052603631834236949084734688691065686304369986193671468598761239252357226819386961042874273395363205780143311451157254294805752441747503819986401915455523893570724225805760930527523231818211866202520471692807980955045959097578383089331842731306985030684621290442519112422231306572121638780917314660120710153596590425765112706051272443812699085945709559119959270668088639844642475715974905303205657869369115855403311172046354129039201262413834899007980793698604127022066252698609396909854026869236126474851723544843206499476530804954975024185306799822808099335066360597059515698716614761744826206346771848242660623903270649513677988342546426265260697862305766358640744554475386994755186182137461029948208918057856962511222901944748441941907513608999494191811059805482332453501649605763157388920209969594873755181171793536388351718316502215679822201204151044314579103182635561763431426082998509154704733757101159490021305501428212334824512555375947332159302003550670568576507095178824283133817802079960801915961937046422967381878572586529758956151384493198530111572699849260084622446588517077886687094824893556201975006047081774381912469532627309771461723100024083090413972084593875838450370176604370623793796584480542919972719704945189844956238610817448698007185577385762931240410471241606755834054667080480085112017498447657771567233209041237461783696418793766219130620688278594184581535059309802323055084499501165734000490981305477661502116433477122736831525186164810086982873549489334541053275947147361913218529592807758744922350176606912822291634145804438770889095262922216193086640860360460360764028731531022237108769577522693769162730361338669300689689898709854767304556494707632483649588597691214121753076904299784018543033742733888430407570274205528896686371458124358200445235794874116948831800442138145788474988949805864168763317314461457455165630424818565831520178348816387067271355797828591494957129516181331268863731194904797731200293779743654225757845689344793295497569441276662868568175302721513564819625981802185739297664185479170026398152819292885973130135576833432931129363080815059421366100349245504354732896297081333190924479742090612023084744775084986710496409407024519643048768842167262933807249386985004807419327580932423081536561826271496548867693727518927268178400280493054714422123364729657556748969625482327759261157671064858666831080199866014313219482341102575940006129625321854313510673206240944193898046581336302869730214331257917620026566932730007940866898538261464832975056840685434868790574295156981519818186470762882200021367420741138041339361897922406428441951624104808787668801977212807846955240333971348745716284896254440847655178406476916506566053214206112693350856241218469017080918673922149446275205811604077894442497668869127009659333537657030083928632262321296488534855150354784256111201644156844067337132825307740279893259900057703806793490316428748350138564462123356415832127918211899970513650371806738222585664247097391098626982144110660361130801360751088088416092275528857380755517048859142061135154612149674917931263508259892026523572269881616116793992771160274771666567271678437346069062722050186374944427280304243727874058807468388528734121057818076764818723450595598654376499518140086576301187590534639444676672709283587526197700870587819599910685791809277420471844211526699303891799017060164703391072555824813397084116426009432252762291765775481621672513225225571544855179439055412907923631342145787837141543562811958073669463877735316003467368336989901570416140958197351161100447406358616219340765851365820509573540096568954142394974983865349817856409356671298368838894681853488420365742224335485053121723741368008924713526609693346350279478179771789941280867898112442812591746981515613230271993899259797779378596384385992847535569333062569367554970128904103020359824941757091306877547565900155820803186805687901843243794364610647740169042332037674376242379040907926418999282742961243538276124767917273898127696622505789974089272397158227827822595937680766143718235578091910172656884823635638779408317545068247664402511330073934568983514609601835835590464177189478472798777729300211260643373134362085874798708399539249693392775555354871551878117055022323997872499443909560932478843901934374486928024251028604324199593128592765728446914438171422257807547940477641102567186652644932483414057633351337353096899826289264138440168478931757498852963651109868790263877925890918297326564826073877217071857167400551045282373164683998454341653479581054143109430604032212414417437077437508860155609523564998953322449952604437254467237250256604093429516495341772704817838426304351407517792481720436130697770606279263343843539829112801821307428194817314814636084808687925170324944669942308586371662077904875142307834433242396629370733646399456037470577816745056851037656658172810192395517040714106292406712166185692004176763008728507158294197282142599574934407686078992811248547773523370279605455961530847813298366242793336574882078423294743485978304172235565122012488041622719157581139367012414641717517803220345725864474221573678062753217754197078310229677511475595226492639581989365609902298950561261700103297073704904571894947651022931307597883598054007971638738177601531166184770859737383753228990165789187841438875191651549846881315714817876618896145895219135243574310559015068183262047425629956988950893776836425317970683744539388529851503706634632354205792554706974378670369047771639974311028165398173971500312664084362498438888035304345369725739531131316626519406653504887433495079682861441518154614787440812205412186657320975496931917412380284248900540591714119504544088528594840767323052439254015696160156355912606023147092371825490671137059164703687263145585466643657690330528195719775477232538770122751895195205419378761049484836399297438027920551219532646926128950150867169088835950091729633215665053802373957715662979108868490523225844723087808445921397319016857127183846682213159693670588510886807389337923768021402487722377330128251004027252183237862105089898962229093413428794219222396251117859354474907856935003752869647697295928666406545449730189354740272394917348229830731035335972288575466667560738063143679803447727548809981925115498856737409516347201609457193844348577792345524235957140424448889085610542468701040561877168526452863567408076230377687238377141558187409897445928842282784320123078945032256620664038888335507354506265022655582429658428816753100059151491397119206003723948668741695090536512371418980692314210229595857328370628420519594563103846151815813612667237965717222213419884580669098989712321347294988228434431069578531766914108206013875734979430076327223877652297030361563166935838988791809804867805844880273071911883667155055831752032432096000427412256533861375166507144053377880127946365332842601923909403491801067157415022247269726522655708166446253995975601933339366667500355225012087317597602656106873692539023802688821900493077436022181397466375748579322574508295447139616694093621182815360289622790904454363360235304251901322571858010738792711116081948713697901987296812619982356807331663985455764507731024279809065947769146623847343402504843201631358821404944855916299223706083391863087346873818118220744386566979259333516553046742867894364393701216180345266606420443565423996292998525485031553141463306883190105835596365869210508762343761683022048879087429602075623636450782091553060813582723788085807032733812787621293540094571289397186141660692756001012116664060755018521623916079396952681967640721527220097693271899745456063798954861004840523249611103901989655540020545511103726115101179907768114808612699560390917827735479855626755603102022327525092876566697969479552596764142823568214855248604636291531331395263437633337897778612804600125535768803375726069966154233265396813938510525055188071322602219678656703032915180839449844503799708623561365904675164882593458763885646636092973640519447274597711784488279499401202507512564797900489442898543851438678766577611827841446226384859235204211192339918140164821506829091461899423908244122466081250908009182840014077033628105539980668963191273895615851565157866544038550960134556543903867873947024407199018759914622191034217241847375526517515698126730823337038472074135385862602964348721185270582132794116934943492035269223730645390297237607741160436775971546353613779864610420390478700466091134803688269042999394716852527805197267359358194181155602926347670968298303556919703969622947262539441358010092405511882306363349712230827351175480926097059267974331830613480103035578902853550717683932609900637988636410251390832967230143180534100489894783747309251130255851658814955261297709109921245395406852822265667912114679373159795735687590082576037936067044597344400869466536420711044724484257599929945791518569698481931938058313341582888494946040304527607427595074315765633883614515454378198349902011721364113545648546107843258715383978609431027905088249615507594851595709438091564472022327468748990901790051558326746185746514331428767441469606630541864350317279166646961292110335896632616338855754649774692925126614021473371435577989967822364194070958272522862605814677528924504280988312259747389959990974461036912597043861780504199482376262681648958870451495001785675684203322032512208854501549489320314049547755643021276970920461554442185328427177629749078312384504579943641319848222431591590255488947585758595552031071839334752381498695440543624231634531504758045334322683953391685289979483380154518220971562687734143961599865568667200962789831544329473891834286808918432171728771639661196817274734791889549273124265787535019760001680185385289387752879951882917184265459907083628368925120551592004574918458313525507554344399470674330295767599690349810853769386447281290373890460534911546139833922379931313037875320367866387416635953494852798851832977897232107330446866329889041105777694980729748363539777911382493335107632426798972523428622490876980285315932459674957441109815400301457295239906169934551403386477430021060807595525290383714820753648884095430559144924812542339874459270304930318498648977679150467189918318697160761099874461986759426055928543606068278474678726931847132744684168660004631911073888803476437974318518735630111735646226725004678956620906100546786767277027256032349590756832634183412053323169585782202114254031895158864015416691981619653910457952675815562483235944497143040434284639207196181983860202010226874641150134208286447986947884614664579905967509737614977937511212978284796171984493210880089071224138293526288257952571868879862198645672291954966256163910544623785710497527278150481193468014050498857671329235608286271795563813536428393268539376405125258078128846552905752668203590443705912277924203233171466469432920516443922241452600850091642428476527509435991195874128117954019535853087696371853183729525103363090155811930435891223919864162596988241727024979442108841324768117343290048869814370776622414251316747526047760169228046412511566953154111207354409371872926668671021101476289356833843755428275198497502441165414235062226255299400275003202343096623559884089112634939541967175859454603264158176376913701272107034579290031582144391509043280713682593185016880727529004617268176519899952112258665984612479016727356775499026075183440133277578842073318092138832125577627700352484135937633649765539495854533101818453830738698041360333641369040886264403033451376695650897721750735683191435608952480915812169852339339163849784472468929407713079432700701181371746387362136602351501399653303844971902933805641571943533686080217136557409625490060426472141722546442229347812275115047599845578830303020309857915062693456509978933847994501309244762343377247007290406414203253855199272527325216683726415209628318419189641496528566346640703662876634888196839242462698354544360909676513342043522696246061134835334077649179687761336754263924067718440422402663237036003495245202601836659982685076093081701904641867196410724228116978000989816400166200050441364526589210065707920194676575915347498811608380258463473673912500825241508523473801389100600964897796348567743153714249971832777050285977126313252237365284898695293818312806389125101491769170877425133447764422612546463769234898877251319667080857032395880768659253069922960563706320956353337601614870640974973047136700164756035739055282378757127652136743455774221947957735829195672019031564060131344116470272840350624864497908984551083599711200826908629802665143434734492820292368751717559711036740896663265318723736106675814926757673748906807961316527314816949209489916192504028789865748199878229036631059659161324343769355556372893272378072956496429854808117472814518862160449281198744940029901198152134442816405131829383653119622217798345991897445388994247891756219938437652097350113250470565590807328103766437673159695457927372825136393954996110195245993368176573326331611616802496123720607813423054271760799879870451917600787352108770211514092251674576938989214217549348925155089285658964964447698477972152748766016821574480278831898505509546039292308507813928293156547168330150133673736885738736636322407492174499460796174991345104359638641303901305615544913087396867765938865324246790986311620997242557247382617347945527902528532509303626289441446380804367057642517057015728161016966511847466612828781623643510346110253705909936832201117645822940853454703838271187856400514484417985444709072727354615835617188652266025714399675248972621145222331098387259951226091915509242757735318425096723658595184286940591713904897243319614797026350369545119909878418383198694101070932863100309731195082974174395184518286894473862553549472895704000689358097574884003533713684790313531335493580462566678145392038995869937058550985157451362999507601795591409644987510701009078652091935718747923541484118076692898997555194357691869301149245021380416688362380665644519407522696036954406748645661625650993126036783665645596992735228093358478169390741891276160955414141048115983612467738405729745866375418891269284366936583944048000856501661151402442353016697223943962768099348459029696733916193062906276540284873652951784487937524548221054654387059377440468129202459673716268897538617169371466195219625440758460064517571666534210874201163581439293664134563940710334472361877620098386910271680142505796163750434359663529549838114996205633661374598744731476640766231857918301361354334074495916505479354903812139080959117822043703864707254373076583996040416704116564999193616313077444442029761835124812169152242338282080908263547401297073323130742918064251992968819463096512785391177622760505746852891289444525671387639832109329412755249501089057513352674905132457195370641983674368451089623599950772413296272677766818559083910043789354519611645253673896750433034922776701882798786227375688279061480007689754125171013406845201332941177815155047833797482887566045776374879710488846228723310449008615137904044680296310938626460302115675555581965078665912242938850437369913627868518975085258658756629032235180012486630211936593748573352104324699458439282182835952164037045222271505397472085574654967365194468124219827632508759544481197649285506409310409286593940587583065863830556534588749091591022373722451516689784107960492829414648310830733222945216731104095410302256840712901672793628114027963190156159248251833705977093949900119346535963085539204650185570803988756110008640698464074207551168186715374588554138101332426771434710772325498922115481911110182739032232225572007241768210495077785894272725403982871213629040072692479929877766017623617607864558026033961428931931513429542685768454495828526984319668232403943107534449149466303843074645323324736394470389734923284675094482562473044852519985894661406559087039362300761903090456380375980807401752262919798141352346433023147515039168135621076835965013387999709578630437120108789961203776477309220604542478916090647429452639931277913569994681529788283501489148277566605533885228823166150867918489889440499590554652673748267952858091735427602171175186142554738803873170885646257936898059174191015764984268503754301174821188964058314072448624756073703665266219259851996609253135674357752958484973441659426786258161053637307732815490958731098918572603517779159306268820628637355677977403985548394573852302193093530970212666266118163403102131613215360212961232953043776635709514328645276297307093664372128656077121201355123617036057034668282308644099574483146369101673314010578566771987081253225049667997498135955689073880720532663829726132299051084692501763092219407818057189734459031971370873468907961833978030665891884875639545880321882410196258715144744150264350916450805576309936640245830674651287951557403505758073370659083451119917430223556334338302596657264233716275747526667457292740168613322210451416854372552909929495046303315122596827305837098898415046619146736227943941832635491603368704599046867745537402297977297477854187168282606084123090083027002513580681609844385970634025833960594545100414495519049919613174484937667080193121380047910283454630385257943301153419355636896997070901783581866068551825748279790059254359455600493605646828198879678248369784134971954573003715970118492989146329361244426231813721617292181195617518051909779874742992888536155628092357010722915895487667113599499949542111966829150703485167849502141827181613178211914576555718387837787012072507419774837629883902260261769884248384764949232072394504015143501011580160528285389994441972143725111571798504513029254607454922948648135987011498530987620960824093293056012520819126492167510361889976097274182209978479002466835404747065720687619565886667186584272951818320596958065998513847605210886585147689180754364033727593830112499839244387391592492697889919753688391822402215576114022842268686849478036796384457200648622579287944757443395116490470025222442618731548755959315393516130106618872500136682163268430015497832910596807913521546538174180909797931345171982465571621174391764677720211628916118028499240823957534919255755170751167526267187471767968437958517931845557462612755448718320967278796703688278827054152468138469598075236207320253123750664576282310361573412618438668088355616864857590117247360566936919539050141315349725846313584906394032060697807387686786876979164663522521615789950330420898390805018354014282678142708150627466019917333370763626327965381577466305718680974883889172129382450839592040973120277592611231492324514646712883674857212010924199998044292365523517773304719314940000187155384679738256986412655811693819632174410645796248157328282628879941028894940150266694619910344904522193053542592398000441701249686241995655735079738703906630890357157578176750118540789971664628360291733426260203155890905009972287711103709672657044582118474135183636692070798837364778486151766200475872462448563611201539231447808077827275117838080067640109487502458899647305627793717228427304762316581221076823919472282478720957051878971757215975994953179620233301516889560939348721051407582490989070762461040365885597150019031332685957630753706650945364781779560194569529140401224204764971248807418587567101023659762706752674501157893252814906643086696318882020239056714981334102590701350144190096735431855975903597468173888610309121138182244575126388667930513999954084230800515795637968578915997213995000525126030951218967100995949336302175580254897306150332316824705717862030399286518310240050625657575014702755415294715995783807014355552050651435776878739544540593721186310914205680620333051561597612857950762870429808701033110176041798538191338309635989611275327193085153127918503862205816882979262422130271419794565205468559866038847103997301089676910468523333080205467958681848349338975737431868171396850084203256581120964426987037939389672767549768330492734858128579446074033165425811222860471078063820242812926971585817399237998873167366848921481396159787064162374266210985340558781685630322042021830748537020972925769237202703386266344426795822648303725516003392377567468609653911995823433493877819613483981347155806489841136978146947799533132056873348081851339669042173327321209837534368160721161708646762673714511625297255772962395225536561280764308706428241578944434973115930453321993502104919806949493500866397796626115354052944231286298508958340057037948674577665924739337519221091024628077644822446878309728948269052560792234974891988563300180871104863820865765160363245054890736373199298927571507368213120389271797980049594512150435851757015805075799700873019145140099990274990596412117818592943575571101394671539080479454923000091632944764258108163403999511431392208893395742074333664581804062052141120554962728267370023436843465615713238278225991736046386770369861589945837637804048941676704020293172858556622769119701855420659789467639426086469551970275806718126414641246164798028811618666893166611865568869594365183331130093464398043703998550158211938738084232403303341234094162205302060726806412440321739479727527860049805278290223952619746000845288104977365632807717988811072346761578529943352873576508432138752239336445814550258536792350469963682156961657918886042424025086163882424968247454308485555137009945274264260275962199784102285730461100843903749405286686974452229263605025951085387876034697840851265463820094114157439508129304686736899756000705351096090945360919968236061402786612745837036381536162796857902942342391359568316960956169763971317304216516925299804157691167453305056896139953031950815173135935846859939137216398577018418988520541043411559860367199059282554178153455524898610838520165704660820125203726730187092858862885486004411810161182804786077324143404567539352211844918361675957812430741138379868049662030595639879542361755664062399787223022506331914725469263693489998006036628890428529735158374868421135184637731282488156327254373729064793338437215375135874719051756004471731296329618748395913919227363225651638920641488384336498464261291442643653902837051208592374825470161381582567260101774918314360262753715901389988854501277926697351321720653897840942384756643044277559444671490794136829899421478831386025898639505078797949941507225970273896247472284565308289239104330343032567475693884739274209628770857957765328200847026479605242554269853001974774506875561922566848737760694509055395211653585149386044124322541613464022766390643173522674513667014677525103546237466476149543625677794800972615337830317542681066991009370506530914594117188494146723547772240245131903020127791228448637232290092758400897024722605713914462073648530117365100118242551337093769679395000619786167791649547210176133833147126910336539720340984350836355672597017040389968026680430983203413681079563633174296754536291196633763835193785671442619321248074781947697233840161975635024342595194550203394349822615010069480248664997547964765610071373655956145067269322994139448225836132431562481305337858583689274181798086479340017562265066354791405325351010448517349289363180389578790171768791783071749610234665829561840348841333736894506089335588424139906792941389362054830426605759187687065804971130050509897125368372515903412969209744951393874539223566164769689747193620243485661277923204263989538959413379854701737644517160871720771390813798470962872015676507682256800172570951956035144263926311148513801525393007235277437373183624658917356126177288017152712698699015693001744801473680952301145073929477554640689879264401146506580993516626663224563576657972987582056791575298948604845767962432582292725127537797281989289887162987156272399249370388586936093925774158323559042457942352012837716638440867382941195431442023652194675562813774833712594783192235033777940088558218531442085211066705187821674937452817888793611604960401092048759388911420246411667183211512337198797003629995195783724827241875227353377654740555183897833357114719647917798073065854492553577086505253069679069804829012534150691331393980889370542978097278502823995537686162029724115010796534884151647454925820137811523363266594857901359737982320529536993033476315023596244276173971418944879031822964905146587861696541815762768372049453755806011691887836664281923013368724282249657800492142837487748191077179261354950669297268074748460955051722421725164519133461435682183739940124266672884177812996828131762359762141439391356896168895942060015381361343481299420960774816684047298448972987281354255434382722249974218069827388402812218839914898443029501218559253174460429998242620505172454414591936473871172433526722283531201001659137963770580606037210394332748337349542359930193248456203306754423471620991478683168202929525629460524546934851107345614148727539884669165160338579150996793634413646237705320479977708588471380206390950428942985858192133429993153043718289723364869046715087960033615547774315659850006766047423970159593355728093814444983554634176055221684820350738818365519761925020983475492598927046539667519322482284217999617462816420827335733814355956480850669763182852606852032156239670785325140468835680223856506716428163965015796471470648658834816974150169872634611589955865190465640571002329902598652279633039232557272388090734555342649779852246194044697601339233136915592689545552835451899420329644842109301320166497160498017270489737901332180745364529321301513352908010709829041175569757286972649678449846738854446727994609371213468471950900220771134174508769363446202983064211182704076814979709402009291184533079035745811792534792025261253192697377459461767244024944868893382428562538981190217466906399981883163191269333666083476385528857082460239511662205748236015454754192660829044096687052461994372759518110456504371791095627967459010363651655876871231785327216054953265840161365994982013196968064050757287077855075836551114112623720456422271474650398348604008597902086159750153851048208574752292023412641922860238661831183720299952655011808791211122241662577375727636345461399321049136792226551279608070329558291282903982234058687337726760938682585474309843760693146650007538158460476515117637361572724615714996887491694934369099579117137592718383313237936597708166224796446217379910971204842488773924811599589574076719499917084936404958890686068731718000394678801989201915893488210086129838203898593827677336376178062384600387492289365170949157249814878968428068973499341938561779717818134209895132757345470569750408768938951079750217527963683635038382706763168551152966856795543055475157004825592359675236606128689394785819538772823455045139215212110182778051406518496850190375703719026604209957183633522253156866730671771889402468664513331328849521364994699978159254300591449226917497141520086627800477243822184975656932033461340932037795698065459784293974546646633001856968831345486383830947549489572796391968219703138926129368860349916140501372002835419764016888880323815764346664843763502278386825259237749795728614769468306311356360110214264452550387989279658060059117815167315023702168684618113387760257660675061003067641132878557899785266166934979942475331356045636469667206593487375277096798911273157278043842730986910722714801368557993492355516600092016230914111139954930001251417380992109745875778245592583887848373871588607717992989403570188528926445847252046290119711034860779170404048029524348145654702866056805729712903077054416830500074846211962851784732367863636283212731598829441582425755435881937217350689498405876446916462110953178257493132660678685955043332903468459489355898296131758203312663864912814345807423863313936277668240464664042775829103565280638159956137212002275933214103397941089488448817338196808901468202055573906240583641351924325522853586629328112361087621841503497994643777256744320235335881343550521066935683658674828039309106911154955168208398973622114378365030178581128298682892874524772053528695480560283675857280993875823458352276827629166909535731473324589618058015198674785182634651548211912655749234361382982601321348353308220626475391180505578376462234063288699308878037311169853286563153213140090957558761702771264199849464411631921051006751511165731314596213329899696066855660439811350410317745164642588870812234350491400438314701149495742633389795934286642762248956539200292526065505010679069136486215172460640668247304288345445795332967145806792753526594317851599339644297843091335249760042603688898928269915603154840806586962235013882385652327824590710152167753615522400608171404359515529383858662143437088343171013522587912143881337110687682731886837825688705652677900268983284677606069058841892316221904755045251326893751049774841971039832986744200779392450807883791655505283953832093941780918040834627658066111035344536364385235192823018850982236302849590633833230028556194708290376152248794345503072569113510000345095130353145292116293555142173823656174695008629259572566950900470983851605365907119294395018093589389183676462916187503766588486919932551260514996651513822554983002653836054919037776087596859997130378179090888659291662355723399792910022305135473795479238834238065430736646149954179041818764989484068455019851918830990031262994033842991792846624376666608503249855228232890571325231915082138994259399640593906691543477559667402826778602695833291144415429692201253962769221280057844791038505102555848651075346966777309227782149269695482668426349278896118895319647537525933583569101399439115861018475663506686056203747372776684701605593705051478494957147335087935784240776426441080533189869761457478848206713676492248146465014112588638135384706019623205048565931393250605236859217122172726985874131020670535809643121078873056752970232149361779042223436070576170514394387477275979650849053745115193036614959295295614163793202744755710292966171486332413727492917445383382263368742844192543631759137063320751578008427354780101103263431425956755529257095545915191989584055790629692137059392163519592905842941881766664566291263958918864606215281192417826827284837278670385425755199274078381788171686672411413016169324366043176506483276035762531159653335828621993877978352025710773904287791853328525119944527412006640734921371654379165850110134828244726244813700838023188986830650211029147472655367115512084672884907906993887944916281671316594812351605028542192541341702672705315199104849641536455177341509198936916744411805738014193179822780737518954153806399117698731824177819279463233629834250413398028687517690191359043490499245719999108734604218173796286839821208759824825610655118192246819825656077582648468128655699005010529247497791989472447437361657466925836792671512531480443064799178384134094026314910789655434075107399830007299673896828626583140688092583041250488467318436243633088884544696030901163022534715982776456102382142645670452124258596179479994258990433610921713155048207606241260921183219287070750982270787807981830560769135182741201537197597532951185594495799002037247383391693703943059615203644413269184912729471388814765272604742290200151155083861542003024535319930034772930694410394607480059338788869579534182299726944267982079850872919086214196447156653364832696332806975547911550101526692739917030748330266065886038688871927830124881326132595455966592046074240425329210395203968969123044642671929193733228460152474406406354792347459014091388989846519431265002205227356228730349897055395210118464795737021508500127457459190781044617355282122235673323157149837132706588466702159938191272628279449080272722541195073940226179585108979098440755358804133940366691936039817535936148533339844641198824719611637480531793849793629897361178253575319150498158273543682864151266981408548288713111603987012585090729654370874702086454591163775030424940587590344157763986099138219056456556181372947064411787167308696735436007190286239693097169403911449961353164099334883730571379471568929080754249481267314418027195127086479636262664757700452965268949995688955808036787342593111103872538727693541933626848862274491469672485927677982591291663956471723237893493067160296834125966033700008685840106484659593967463950342440012275190516397494304124792778309054903850058373753106133034245856948084871800048285328147880185319520698019976221042630319983112087676222730844951141433231941533481731881461623146603244531050424457085584994473830402866118400303413017616122206900536760131555809240772596812990330562271326089347387891579467803146916421675503081399324444902196692557671061309304972056505900594021509046465717352100146396580913090029485516519556918402916988977021516061354294314028477059256389205625401969551302746904123625651605084600662253995189796372229215088586741818204012223601881009816521410430189465609366367990615248179763677717068283568658153626731176345132514522936765561164367569883867867950000902032087934638032581036031956389073932858981397635142090772573866215955586507407410637492075088098789923605093109580057814568266339817959956906558386821911059181673582564902046934566011814307134038077951783507638883798418129770370568287184264460441441168959573117999589057128289261686195755122344356306020553944064349094635556323709761078823010823146432773215752813758822215454441105365681049115390310059321070691777206634417804020599736415517171076667909125980215624104805947460063216616476267935473101646026724351320252568843979615927935816900931322442682076740652563633662787468202582506550467697435308772905231767478990524936559172633116521463165223183985166596605649445975712158322612211519048597317379001661831491912411561040284992813340703197913646516066284141474591005511743237694744630552015227369041927356475578954084311655926491342472626259388855116346718553039557386974396625121777557755039024109055894009777061851373920202413768659151239926305149616465546141604038746306588795483300411368467626200335579441875320297477445462542402752773899386943196308229182089187171785946909966465406778389558285906755614288573890922658885672124460756239069847895754090098992581472477994901291486578520131514341030871125865323628048523332861525185550064538967104400168468399481096660926500640051535241785522904343801841104197494259852082607913093000880157822031821430939108407627522506406467225215071630066672658163647976446022319625272942080695796159976297925651599265663142133673031750827808409595174613477033306594636900333886906768473826892560482763163214123595360773024110143845232068303965775382474634572834213817414017054646061857643816805114940416824851763081277284060509293072160477323581083261539494218426619683675307393398550619613234475645216668665579870856860274871444344236975613152405760021128964990045990325685803601579291354543952548684648035985375280658052341270893393842395192012258678219811066092992962573052923555136236604579516703621833370652635218962623211104327341891477822956468158916808948612789639812255020411364779614282633325880913928856277838010179357633079928437314305829185335577976740886596424850290943670781828308645507711263791372743068739554869779313819242119829658371747105998996375168993545909009496559767186163503034514600004778038166899740606165361197251364317363966461522312106277910503859441476594358703999393271933927374516522656912181403526527640139284159113972270400816527887083058662218520676818554707200848188312647056468633469737780190200945706169542368494827240877772859898384915575922996851701136864102847300428545551092455011217699006157529872628000786585157048070921494017932452820281620174652641550049331007793309591057004276441612687944977990048821780406814950802345457928245588371577112625117450235479104083658940213102438517537548336045389952892021679663836390432191805711852830774331272596267420728292049279878460607001708450235737518357340369291419263804037270718259536265614164495831990552439100747198874590622300049576396301359983309839025813428806116353860507902021639554827192279894403125820843926477456965883337102674022002076658786163181479386632962920908434064885514899253399905560503630894980210101087166005142448325262477037722502477329007832933163603159676434113834047981996605634472254278661953181320300425460023928812496535127360345737706332343794486737424413430004982605064775531992746671711969612200004444026019971640395255842097752791074223854877253039210990604272570808057342720533352738359191892321979070514913005448439892291311315947301711730814223667845162612677864302067489044962719059616638033528157755517609607153968983625075648335520724436981617247401561109668650552319470008202635864298620696862147167940277049913356421918098521655885836293175993023506930649912969692915418628795857675718783435220031108867740684871698904564396881377117290648065269627768800949073269427655147830091720073529389280846813711586351869538247300104108639256318328930167852404163017072243179844965480006244533451741245893340053115008753491035162354872677738355069836769928285454465870893598935835223191415512478126072887739053892554448439615147986736921167371143210870145553427282686784597061567689726048246416209686746322288629713159382158730414974488832010705246923500511062095111485281680885921978151983776833626465920174449795151570108561610879827489377732518877558996804457841801294276117204611278909837833990716890192402383665909439154109800907318651014397193946593408386488009458165638214078035479327455228819216299742382773836882811079288613570492481825544144143452750182796461441024383992454628136874769241066697142767814472637706887681784047254643898179240575909479940287864580884572513566014172584608286676957215760963995087863269947381944992479779300825511923144305353832136954587602770081437836355027325095314008367480796467791245518305913373986066190997662475201270381309055201620749315267931057594586075069947095384383139581795964127875550612574382881490022348708873704265463161447515511543826207483531789636595839843503617462190563006361421335311281250701703866177257413754936515903967630255639882528241018566885454089433760532184413025358402557270110738400765847360492408945007394602911219388181251938509860577934297276342630156305074287361841144064791368479380287467033855359918856725648434545757222697491905305999487910895540298985592123394291538108441232165407784077819835212596903949177275119321133869398403637371126866309665043264917221816163709929732811694941537293055390434144861196742764001185876008509223636376935899680314112289045674737327547073809135634215503824877954575213630967099134619040108522253829622428742122345093048420116527198558851191999587334171761222066959621569484872365126217510686771206871345593297150468584335568341307995310634475961430857681096875306029460473272056261548757091188221870255811487471395293348396763979947044000756432845403164679212346729027899096135427658357907449036029099970086997127913029441969339685101625988620423548181456469712753478805289563323236869084268306801845684698282837310668525132760021367811940002485405883229972546529680234097943785000498378586425392503508039042424094673611983463449374261462709548915676260125328398946259688161488806846624626916670744308515537813908109620690086962038453549222884797322658429845766726066147144071273512647885619912969505090220611092604189032271803914145366138875906966197099932879743718069369653257189220262032045713647417955305544968077901383649048442096651250671643600472746793570194193444863718399002165925925054235220776333552673390505545913493255000982444149966939214810829928771493359475598017251916256707520373149535511226181153071798208322679420451814667593527511147901647148945339131121743502770335582627702400004773755751630753998561660848349614818721166395182861159407998400569329804256377349314312266429174781949058823885357902024157812508475834161589791283396067134820255969879378452247515677862768068166993282859273015262380476079178127039443053114064064948332089312665425844431533229400191657329943253966483736354430300998728552477457672789892823069033150778106142238154789013327454648331624304074948882203196894847513707631983785565497380134540485295542395592459565770453260694091981524345106768943904334905230445189289876571460864994211154120817759703522331563060632276644811939075946693323334549379194617490376633583129700570192162443781055715542152878899915389014434950932437740694799428333072013080243096993664460404192259737457399875438803470818719218217534210644031949393851537623664913296650318039641661305196942851425419972206354085999516496079561609513664958443282206478336810283594254227513146891716568627743323082293500590475186649755760411323467949064792289600573681308700335971263694307271511217685073362278996042292541941226434593311662998972441315376139279793778455096687679750748910803518205869356579451473175492538532627196448309548038368642595200703025877940696687289346392969397757842445628999520188711469362803391916918099530301933907214849740047398533554064982406004473296459413275656598203480629015875228508311512836323725709497611661764962344470438141722288821424746831657081146584911496358002406857578781425607844964074461233310421357221058247648639126955698392515040460809553985041412177079131805897250642762312095237487917460085443776086551646763713564009761564618589103179079939935846144775074880171865538348788250103745173334350803124760481046798731448526446522117703464036475189655640233519005161025709535032058965697458848570778387284443289141793344302095363939480683598181117361568028752899541116863196918817713337439200248113281754393657605930797160605745153086067753234198833627144464248360474208279301770256008159850786101652085154410398313458615557023253585858815438979414860466858967407613740248814532583592580875760359378312859728513692052830806428491812485637987228424689673414321360878507635183057807315871796863535097307299440806546742704647766570127584246218648477458720724057352841281481905681918883737401929551924934993448279280679317778184400642701089862085995014707136476701854253454049538978887092092318464589239309770139168304913602907793620203149829168667650337711249122071193233965609787339846500019133405538949416409767363714071892979606839006519973320975952211786607352528806111502418057220936322270550129100861285631479296600559710128627592173735235348271114212420594566392104167700868002524360803580225048341861240331611384723951323794103103493642056028277992703709896806723969214510836906948381674599952895138969187607361795472631487707640972558136517476539010335431091813900209910793502402075592616571596034187969972792812252926650088021560677518019673830066763034854045964608971543349285677319734919370057180339125494311721185282219877141091587828681959457165003562979010556234814231653782685752495711644243574826098679657462552683641310662615746514664078194542862149124996127508586378139593316223541164517917972482022805116952580890233978940218249279897436071467385944776923088058005969914013726618702627881101210921226143527850641531357208114961972757220425583757745275140866872455195048439624487137711823471039719702049236882111757202702739898190822644155982510675906929754923506630579330452815479057930818826821541442024640873915496448138692661819361681648247179932100668632521293903290541459880527820496699425741566662383832787889646196854695971682432042264625368287245296641390085517929449501887971425848689341663068634973935239405713475503755205047557700666256407921207953475738067354289765795829963171043687138904467245752988029648486746301657950321295945002964765142666807723260704759034328881374527035064594112393639061992486147397789958722108196209946730837104803646384031770936920080683800618078304680771172436969410623241716158602430478999817593760815059887448824864593830920046316606187883796526547757822091893995214856441939117169447518855308193637669191062459922790938266957705117908560411736672923876223511490100214191665601920391823210057518624408200011148751757766654772587723307571816661466737370377503456996890707531403305270437394094995759687822316066779724527197877912429831320290249930356384384378013432318325905433410243148467460393170834959393088769488101710935245641116295113075622879436914730257905213910209986297383666191506859083766423777460509865682939579526970331582189566020627125035248715960193266190646777237063554237547401445834978338919440102736359659116570503554506956992047005045844799478844418571574288465464383914097130606377357230904542376722086132269882031159899365987032721105760096295988846055422467323282236047191794095894860624452773009522108788623519830515693913542363792349391907140579331778313575367525605356724176706543356919345781075869550272962367190211297031295963689258031957634689195111994832263336776818536245697653605313731176438271490907178125829512381540270033214593692651951976868403355474532703483372784745165354976691632556053071535480614883373070187885026852870301835436049390102046410038951652147517166988133632152833980515377395161117157791969425170235079947140482771654396344876873229055719424169073519912571258593453829535062839309157694791020735269604724630208727831990760910199833653233742607241151156830569583876568657600767320911025342463589377097355061304076051761878026545650108854499135567886375719070429515083156306456592794131195497374414136433298053372463513450736004582034216854070956747616694000401038532360030102848992189682937799311106270766458833348368908233623181397852271774614581759077268241693369393214799166949950087802026150061619933105265832846646232415522586567133492558075817797007550254086560319472264044898113433790991132006374500496972675620000775296504022882220294662319499879679891870853821905325408174875639701495937097021217824336728774137660014875025212543199328863892001473855118271295250811792804261462697527394334489916311195997231698927805025046597544312548143034222483143315539862232089162461066679563662289872348941303841799822433176102318426628225610334287524145028402164773955403105163051614177513583965503033992536574097442970311678573822691417156176405416948624790374012322237282677393984089462238611541279597607696299631876289679981839745321869639679068630687411349595864853505458882667845482615489648940270561392517852652865788136861698045475875768059760907673235981269277792697199428739881766385410797138366460551655665103162562455796620239880166994514436639186334696732384978832452472838921567883792534462675294729883170668544719850340001586917486660541123878572398512601339794393670497206542358754909714095194641448981275625793674535614337485897779496422318249481826526676662788667224982520305914848462578935721143282703204420729052841040318769881989068121176082171373065967054408179315269496322786999350190883672587558414813887200734826744209012657003695049193689829776008104633551665550276033604460394321724251038446235343944394696053826935755624624363603436518193458380521476032816848001918113569263217512269010875716803930005907095757089830872553037345026095596946601728011459161600705294079935500059128922479982637350321216152034887246208105139365691701937174764395443048729624126036366521387800283552605543840012780481022150861531420233420428540284480830208790430017235283608290654825084586983159339142152918778482294939544144676713710562184366886428374749979118764865793810121123293166207072863026377832092699096684399170063765725371296434361929900266171853228059268411444231968779412116626919963220623990194648222000451977793874300968565594976006913503622716427943228094959189715247614007645083811205214244002176777611169902007708811407719641898289833727408137572255681893681672036061679414726845716557487286873247622144735353115925864385305768533046751525512502347262885456198438369948688775260337820863048282826286341187761838430449743050659997635315250913532516425149485303950657406423621315286911738126273233413682507681617815317591461739562093968688154510082323607869766129794682266310731468869740408437297275581900306409166924474834078826316395756038318536747991372972026995551144979015614395887836444167008081375550992034407217874845089007557661386932227938031237718647567975558190796269759491056439172199201369656551317640911767749473343149684139049553236375298548200736308688430903174979734844016592747870067849153818785200495666914663188726443089669293751808196308997806227033439079989122159924662701193981587891572042196423697939045748563357476479629555544174340159102923113974324225988719599153477453595083949124986703110698241261717104796750481537116147367841905118688746888487061349627248675407346677696480455326530948949148801679767366621008758016206733866267264324782842686272602424778917439895873300257529753874300930640856561747686523204009863382834949794198350324045599073015670375902520022778990663368673851397947602950843818858032208257807618224550704406691585639071387718706280607318778971097379372526668579917784721077564490083509548393466927411367993109909445330272241589057534652425610280308897221572843559786380820213549013435226970964351858431044784382688730004931686388385325032936571838418781447992850535151365784275461051115899924349670244221135711017291934546866936450149584198464633726212737648667645419715070324986496383391025606657604562943041727604562000868247297733122102904870712102998627511723779893974105080200916043184126051205784507036986341415186327390894004726788969209466530481900235956738644891588987628436825425062216588563643312189003017273977449681582279940102781357167719960683468842367470774179836530241176357620719483768552526925111408576582411462108807831979320917592475093021933545584513650375243486243716941750722361944037789103819359564058580051651553601179324706208701652409114419725212749672867907252058150489129673617561019404645601011842200858851653978311739677130030091230355531751359640917678106286258232572686441407979651554577966456128772073158971971912185142702981936260607870538655409167037587583742582360011633132943627114473689338461234540991684250073296937158736239366192082441380895924074319337774239185474692510882737855400856698898501975045416444809007874329016966157613840888878683129230789095886698071436891984754554855325304568755464284580839009741276561889667932825234512615863650813609227767012630578140356591763921828575848816385976402620820773277349121634961223906075474104049624784327017317889818546977307622847567597217382266965768275347925801828694490628548785590889943938902202896362370634768102943968013341619191862570309045311260997742103819558213233687012405572606531807432893251223259005131272655921708090324962155208464533598279903553682913942060091958044220716581202614050075666211308090318991422538780197786891759381865304633068124494220481208390195435020145870600453689385936624287758690034706572467718524366395242231606036493222013835504180547281769031493535011440769046740278409279754356354058808365566469844111504877111418525920378023943842987061373565748250364779703662345412351420657108621395499320803412585533549388036092833690338568876979414453355586311448318510091275069259554673496707853159860580142046389940924038820389028689865892742303626625776024394179229136477278807737332422767576765853014194243262947685843202277030196382655971824010437461036559578887868970417919147284481574598532436025351874581308305578954303420721990745530468201368093404211601475737806053592449691064806626272602858429897347462680208657671250446080416430500124695944081352194639690801625923115575969386896556282850654407139442449734591508008742962983849715626213703915705987805057932133209401397706184111025173370781420765689375351274495485837590703463023769076530735154403631378400690992965924513746520937394974945237242425656797221513050990328087778563222511417789789191371088325446187034919079058306044370104075997245727452450086121228275472289274289562847687336135271559689416870767044856870120853622320510697584278949002597079835240385511534324490514086304380282046655158470249629250603757605320009055309901889984441308694319064997923216126500658375918536051859431775294039035663114683465390898621314996872915503802491044220076882458431493063158025466512598422216650186034583196907502167945829269400271945054913477963867900050651620930287662375514088310302999676682594499421762537383313887255499599187804510925180968639090148961601580397833396967345223676156800236636191855065448045562062852856983372822604787472148447043061540793621926779446496235588382797989555407859757970771481025880951119209794289614709469180210812936358632443041036711513884365707483724077287145923140667709873260538095384519422997364578034047101032251890346385970972249712098365010272618621520442535322378920667724394489095627661262477178737864500582267448071184825623049605707708637628406776360358106920311185489667157664184748955570729749526462168711952794627740663865947566890833738142383538987485956733802937985610560945916297275717264413641144359342705435895036205328771612544659855268718571126149002245395155947434666781595666740251980615863963675985194664137760996474900144784489605122763646644250721598080334703962651928215791139083971776459529914460838259144609947521494443916631445465921808121269125876407612363048137059993105010386364562825453918568079764850799552277485980917297514887469714100369657866227560028601953449848985850346231971280592992726854192788146826420975035751631732966424643625334557854032021058402398367666917063623679220229825564304697863732364925529952936645726504504535655000202559653803516118642908526917270153461152255445440801731197293118426077021043697268250616998123511595691482772017904455297592715812655123545174443849724932282278808146848430854496594034126614145705942539749632166019861058130642288664167026544384277642024285872749668890197812730819513906193684386805580948816981115772695635754229677756645937506838287117200229524663635165374544492253107382306434971551786885066128623985542562932765988815575174931983956795549628217443872119691104539068263928653547197318706236790222538483451741587929012985144604929055402745485639683717554370150043714332542675558601724909567387817254591103196114822199832725126963273834779070691254411822107470145747495267875501166101412654068471854862900891083606990641043426285742643503207973482681074801236763799161959427518099125402707520180619816420285926328769708094093800476199296517643083732580509241834508060927288271506417929139279280163080103940279173975711016608097425035424859951239036125177716192518068029194922109039162257731615447084742922813639942451972858179135350896785792257248577890682597419713321015225355963895210145618426547774073694926544444217198302683145769033724677137603861013854865076583654755900262897537238778816607642686621341856263847585800164514262828926050902821325920544411964864957232377397892087012358067895787310436145027732072518297886953480567534087058817422543228009558244304816936911185522120797815078978532895447679211581272080914149924016103249374823833673401394231906174326075661141471192150553495714620367624657210674739989425934898650622268821860071659467515906583123511989004785305138216604249699120687778347800613404795537605514656221602695310186591638615200132272920642693061767279405865736690396999210105133754474344452920955316755169536297703287590814124899434888710024630385327408605866424241062572660268685367315733482500106619271552203811615390393345676759903242914977590327409127952413389244950149341242830872563663010993987623391921722511920717895088498665615862211694481600288850007193237283707276382875426291601381783512989272478176664573093176212034432274362462402039313514252557359067653565976497521838871502780110100419827473611422546288351465460619376931858002088165170392527403076948784471194155341456850029952790315677965925687071296822868530087513722319975101621852847916376756623702409439441515345095688426578141218425185748218403830359512047825396730251890065537069109637053804293250178341905990174194298869695535018740434375552535375378627644810865763044752257789522626605765051513754279254252693773412406452066678668473310783994928561831089056202476719339246987565092205513611516749685358229747943292283517302192174011852913531971044227094261561885044332065336266209636644695234563946108499555424228988008264213590116598059993524567453203219840369912919688844642581666770929559474361013157881220920739342614245589755813907918973037359669141193834399525919193431563579911321942344863517542332308963660143293852014012054824033858225946592382427755579445307390204155966918013279162689525206540222630154562443533314710974861551412363866890364349877339239150482892724206472672965508776818920298225783810248743551337350575642711149764716870280615398105109923289854977595511772394140883644159873435110730964132606631883649608818138752867195178251814198890361319701709554983205733279401417740643423517590557458378512823483498388916208109562294356805793603342687653173899717280407994388731404123067636422582384967051791960782161542064749368813561397213346351865435606794198300954634907722110618465050275746667226630456504302758289557571456314665419803402186917820990007278691517889746594129784417316642851457405451112535703203022977604420524421654831578199244294108748366337710054689558193731526895833802255740534931966732297163132208563975225487404520180053192475964657414598365871837781213807437246632850644097955890016706694697335275183536303526920237705398240520380946983194338975182913715322569354176544712549653779413448063244176993224586666400351795585647889442825807165817300579619007561056948907898287445373780323705887668526106745757761426115672918752062660273371380030388601858181483636573930629174732119659632845011524663621618718319368220438755476985201603155378560803671092798971821329317088961929260933095132614688194878098493845398616813691074379183093849070396596048608815672478189296591606627381122756095501866694936884306324401077537805184559482136128991148248998599373852220723250123978022785247174449028427476151851659370447974436226741594654923151819707679400373478737277993901843633298001146555605577557010649842138064142204466193847117543105936343475126567876380448856713858786727197963876066332260429028089903178692963395732241009874506727700305045638242111897982512979486579833658505848004940659470948757220392818303938605626722678255948347151506370148390508776767437686413658565963135049729577857092843435951535038005330357033070401900390319220254059516702686186992445158957653335516120216143819565574248622979598680328686268390453051124697919044729628169429121255909725901088305763395096874381894603948986813984558409919195921039375898561277697351412599510063222531238453559983513049967439061348147800635689363552507103468850908880575039062062311961813309383427254055056413877712358536541131640902437299269148408143424785188796638406268182770987689673812416920038689969426539205372999286939728584448019508081083070586883553319101430913199177356466594202197553324644871494633216266212850929238420720905839916606336887525735221052680863297137790947628603941925210531444370743860293823517369519444140635190634477058915613256159507829795804022780646098400548015740062030971361828879724119655715230743830208115592950243932332876131804276856932314767664938474298558529483436564906784744606151223930700691503316990534274422367165853595602315873720479806805011399413436815967432449904935941129152242653378799402651265456671748724991733262526355506810775366112684248082268410498281195287540607499265003163293464032549472111612244331305278876155393334053641432354396421683931973244718335861599496144442397388224665554170373177507177150112053073285750276185770306374561842919756278922057806838989428397365424123935341905563604796635226141538720155421318309088849050223554893810005831660548060692833637981621306820075751500769344863860023157427213438290292156288507641312298060348585853379363619029943312434921112509434486831407658326313088797602063958666542901930471750239883669860348956819689950365679541411394971659836912788247677860557250125469013038786916200926978993247358850321969883565440733305665675705605040989558779206836388026715874423028160782580048067513339139214297485828079831720277245151510165479683408460275650282876522152495740618701906202047326664826091691357410736951826410758307229705544484530126959735173287769461800893742299578086804657990985497382519244439970566772247108578959192232189682716929887585475024265058847415577015347348763122143370614255423139996960708345550882721809027910655165529433338339457085574234379485252313377282939069332424677072254401741438400879179611422275224638554236473412776437883719639075758216152499071460427045571750642075441019373780856282179326325233656068381220609848569868458935203578674440465312342479348426269788307414313539535129058874294647770994961741136204630632736405452953326102913828330069885092551058850214036645288418963019103007699917506417056177205773563156200203939830677459796782372532624733010479911778657439981097512486668514795718303664855093836752759694447218403632889564161878517733597566060228130754594250287516458923678898635378769465354592067810951839245843479835797442206318432415429083218412283316538256880956314536496107913787986635079469078548644393083064762016584222703205268913641654305469012427056857277827690910016896732753438704032291159813529027184070850689725658957550006897262781370798732965402513022100597814697190054908858504888729384179251798657436720718814644071761029794487632594706533289964633942322055698673758578880871694123380455740546018706608851700134035440141985599274075340407955321369004110703442721936582381980817419957471957109507333430902046964379538164504045237548641503502968360624421657650510326456951593142065639852297804172491221544499807503672646758869746623927723494272655521654176700526445532191725159237675717042228669580680492213855056246884260718668316908497984959313386972189941802826673771415937812889294086595950077826367214247199139672469500187914097929473294090988594612919444906583506675175479933786540468293098893979607897784054933384647818477694819770216928809942781121909174193810846708455347940605538719809306555721315219873084447016535251334747663950226185031875850552797803648323125019505372593965564032914033391158119803544025466463558584771224932673130648276654438099016272419520667064118903018109439299245462017166498206830255073409407388628209965966281767473854567391323076205492850143093882505570400068336349048617710093913596460642765663944180463444495936918270418445344057938126983254683506118074534067417439981375475963673335698046408491833686767314197619694451076693459418318082761454044289708702641647359034844731299682561811678007388467424526918539246551785326562689569311118106076370106350047921463197464039838734280267327938844256559245430102667366149365081340839973152724236063237995768521306448269330758342791270515246780874421963678660287944103303184348556951765516742113214423298153640816987046585967497751201979932315852193988292267679021310984352677171578573836948399496198039916682013586309060130669557862622395796466711833366623756939042257495239243892451115207375932544809344629179533823268413273527522939275849731646387106420351569778327348937042764738648683726359307609026669127627924618561137764845981298046972989517325814761928324566723632123016193522022556539173927433947844073234844999889498351023702926248177583377810920970471682469946784871299250064373958186564951161007306118748319526923658252849549038399875225202331554650608313378377097991205939749447851878876007324994092938440490593680636252835491438546496209872167437281861536317815837579986391526506934257572433523853924087821838374887703437282874374445076450513474240089679742926576427814756385845162391243265776856681785472133058609267803541161351421802286469182410531601304845046569243265978815881446850916050966961133804959910151741802893998065435877858814371218557273401168458311603083842603159950626934109866787530139901606255164530928049793258371826320226178279114154958723253450192300833290415619818931160637723748097762463187676268392508897214144461674427146156763280773244520842928054215919761215710128998027220363421005628751975773144569352965878946035518875825374091118422626570859047980138996297257741975690560516913676137768594180292150881054146674155410860908958929049525970716109238523755994569733883279721262203995598618075167954591228505828086656442799052659620022969355106209486856751981686730669753115513684077942328274039032222663338547726343946636856467833606602874426068200778095170876817126413446929233757586945780254348693810098096695022779085569564296097212885602022928265057837058978521538096574436508684893976416922625688552427462098094133392045285178447557852419842888929175706543439787783070161825448040794705351307676557618860918289456554397100935968732158812144782491430034956144112148001037426015721342434330022112645041876000440287506120252636064674843201818986257744798521633006222742893709376090655752935405982718375185049479850862336257652102409188713972463575668602712860490432310916776465654252608466296979515310276749075106190302753983366064037999873476446446646948465088922005754789220490233301835078586719663619994758838277716629678299126717783479789525601955303072782529813301666511110465995007045549077833836626590003889100352331849960810768570910529906929362125179608539544531691818304097119257088503341470720348859676974856776249220262954174873956201799827880808497892823139024364911435319146731779184575402628279626263290935382181038763563258620034771365255224829638421910001646332207395988170210429340456991935445641523692237772880232152363959463657944732417383994920908296806381596198198740291017443861161163342218519156045841911867569823682404259744162214366385413513763766869607262674119984536810291203061091859562525187998294607503589414579666604883904471117487558264117089748123216115431028195024217698509632168420165052730178288469942435500797166626664501820089256088400356186687835736626098669396023535578519723288854800844712168007368546269450836925315174083634536993985347512192689698635823422118877334793037186590147361331358500936410032159734299830710311760578630201618789940868028089758472054781841283249519338649010917554002199304998774190864466620499371611917593559708529849226355549943136137597272246513634945092495247376198808513250727010979063254957894081489765873123301476020730611327701932619238521489415708701795613987341832706634958198391981643269715036319078351385364218273165574291495031809909534643590796891320235099774521184545645925341536299059782478067464161563470683343166848924860614291999637047301581900416987447735370273264897877887845682305022875118161869262717426491603686767178931260961422763898336206758857339557861543713197350943331683471698224050161543999794826787934219801732231790402301948204557541720003147050935310087903281031746201892773315544100217166202816538376875196896037556751618611783847549537992843911663905329009523758443000111384836022473607590212240949033272881652800048517883472319114876982407861369420257989316548719136887663764284738412063684497866180948936050125930556150784418660972680933770376476955792124511551210360249293683178083771256494389869659967984065735890558899553988853831682350559011359155259872626675176052404011397522486854860636612097731607628572015406973307506607869123116777353148712051201199796133121652281480158851530867017747391334648172631704947965467748150626946089099788277252446293821691810665491724068103875742638847009154077016437504137295894865316457480860605729459431218168679857884162512506389411640094494531940494849730237689246764013824534212687389258271710113328298884246879305376408426380559281339640699322410470813966984029506358392328410297888601928594755662208760587728919824236820923918604240398811494037459921742238716041126537406318191933391397399325864476348672811059221925740240631069592208042899419707793606457756012431691802123287464105201724461524490906175875424550742290658006499988480881761104341571160954413202005883883965154990412540302484026959423729117060280361008800724420032539444958228027439556177442130175091727608918184999625298787501963947528947681894625339197545733117094643094391836051751586008117982750429056660326987725899071086845803813477680600744772364304947209518037066966449052844003840686921906096854625915667195339255398683040838301253942163959807709453516752536346435929959112288166603427464727521541889156297043047522476169974833760324853675982564471161615878677921190451090307316944806178984046252365248456285901700601277363749096305756665716842705974232292044173585458731205345747541043498582840719257732522091125439704661191572785801036903464540240661508844314668616376620621036591269327350579843770103585490021613745310492741004120766946867726775796857068706933184080281698699279983622799997932578165891535310035362285004290989903083144121646803734106187967270172138659081290258280202615520414349489835851142548479368649352158647306339101858708053180746283505523715513093199763389131264331127537149274650104562339329222619764712303134971776474142294174007944805781426363822049425323195828261220911435352410310467366689813673231503846147629337899060849946323103324259647893569793762770947133895891532241537942738760976348172480565029255467809151506680542219086393923145100448899681592010718143226575868431008121744179371406944888546124722306020326949328641522250962179152122452420026732444037937644287207942452819523704179771350948823556618726823994712661923557588233763027951590705283421935387879678221148000879747320398609813553973345623681920539948310460840338999837511589509042715195157254179591482306800114920989164358097243324950690047982930549427459775710760432960899877803778470646720947969345483268306755705652611731761376239828351955232234659469427156429183580633861262828818662375593391731311780467875719792635157927861254845521746987275534467982336745762780660682177750135926047008366278252119067089750702093473884446860777805413221333732273631738941132126514938115422644255651704191885046106365569400056123920600540346999458647338122078188946368728402990104029563758554142283419509042594903707296020038688861694478723317681743776655786681463734190902507425012367826203417332572116700523720790899723697237240424804519070817168869871842773267006699951456626800460986038874874232574064191894888328997150632155194793491095590036980046888938749209817294479513076869867162104338724885444760674962421407193608054795712752443989762914759790558645522832033580599149444125945629526892794100123743538704272223017484977147654324428275372807994421283884575847848976380005949695421049280627048891957426532038935578267956918128503092115459849755197013514994102816217164882562962422750840964351206079771511717338271470185791957934869358054670769011150885858339669954097934628891396339234784256882680890158442791991905467284469002926124063968768070586973621258537559718931856980116291290200891716290553824963282211443259941437177856192693290457828004862882964434415953760268721107559521599699467911606059777170501214460361987379488277174237551906088634165594935130595936761701015994252180252219424444684791387191491142091669821864616228494941475446044015382219367745695815044181864522276019160172282869420190412069619455239882884819904672688153034431704787820462937144334742080519914058104055384194257439401613095306329620172470753008568767867633488695459378369028363333286232231976671614490148950306738410755287965458293597753361249225017931272805031889386557576949737841644200856427096117357964240384103580467093202305267491017243541959373371007151995975482363069851030572558877393690377023961859671516111136599714897435626698599206791612165631254132720055657164108305872004631231294325906904244229436738888194730577274395128800719504016701422231455238328949052396016242425033009639107857918907673452878566921985591155862900864217233575692501809897166909144263969486911086131546209798446045043713358268163104155643487577412294034293237255584787456973278196099301852628039810298256971692337307173046343538980230339697896625252200858734976674052343496183574325896639689142200654966658232585681920016868573112892413472368605501094116749653576756106095357939990403527729730961762663904357286004383893815742365136163503164689842457090912506136548602119201682638114541083947611311048292610141632677791405021033611871666782070849321625582579937945605927526580004471650306315606780253085253506310340433963917822640365381716241478169456997546423025279660102562730762018462017556810941996446820053460753565317115540010391786576444929122047545398393518549278598679899090709702298810197352902136079836099262362752657530532629517506111662880817835517874407794530342042858237835012924384740183926299966477339283431009816220734417719437942419127273177101020640483973101445810205142585929304828104588529766634916876694399511589120121540712428957080644331723821865767889638301873574268933445525790631132645199570021806968717769544443624096174689510169152454591053005067078779752101727994590734763953387254417247835858412343455643630896665243480222049806695077197915656923836701660803335917822103790438455855501759324835140565275581295672003525531975887494108939235776002751488953119934615224507360154290933333443380499213855098097220001323695969763047165810140061636005311576409020440762292756132593342777753864455472998619351889634206438671632418223243785322071366338347727688919386566629088512665890346642758104565057421912421376706894359719345056470456104194661563493841876714257198594336346183890009717742738961125712240771557603044284032591467971661313315584999056664204091932827871050574232664830961830247355452860513091650268227064581628087112715479323753322798317397987093750635718650775450449882326602812451892029971406168133316018693952426591552240591378412943585240463785687569866076894637573491926409355622558087586530344918634015354681036385439307584463675043090178717874240112623249627468075175423174121274592796648699787136083540883237597287797338278377957121282237037595764101712309781213722869463054435240849026531302601952713727038224270459977144221626665153484173306244622658646040240918074900909554450147822396361493522751727507284557910924843278507113538225947434876430444407910779383734801641883377600213590726210652730073129336040542610662727262222497636644910714051395560619720205097789895414752437404015433750496629797164945090231003097733349741281913726652165157889444596731665926774002618126935729594677920145536953712554990448304405409729368151284212124098907537691232612208019788331260940734270689736539622999103835427604096748606792341665009945848790059393060636485280911352872354886652725045287103122497487400922494082106439048773285288841677711890001221108158084017578272787496084380875823057049519674407077884369476070103953945152553494267321677694590413931282465144235179032900965173885044666676901732184940173177321459004591381354111610376628354210393556999197068279955602638088977722609846463587449409231509556340861611894307580471143037706888118792744869730414009270169643728276713785679510216207624874858358248607171909008105353590200684863560464157198405301491094945210865608125264187845836049075326445299000657011631580990363941875041845831399171210102092238427762442576461007526909704764589841491896741939909769329583750732763917825131143395705504815858121700472637010672927687764499770090527029404441748043948662852336431360016582917722661312007482321004666917490626709685786362562783052168973421494373698833023083749494407931413457898491993498347109747547022871151854204497465404826787505165123202258334056251015622833840985259667806742175238610588295262351634089922419464808662367046566503841456648232985013200394217694695104150416847391727535426000803626313073789090729582352032230922530069351265591318457340365552027915264525214895566048933369741192919230583726625805214281135466877752661007941014876512998613048625048292015987281883926706555231851374317566257564661347764399432832526493315505037952683770047900611725439562561306883040549883367615874924306909150355092495545981335714418570359989331533308814705586402012063445472772625585163676153134561113188898856746808341780996182673244584450176621042008544963465004052772727918753038244465571401618973543611955566952872846327711178100606779927122143240999872816558850553991948704541544064993707790095502180346476323189559611630894166367366855365132191343895983636720746799738104549028287818733230306662584519904726048575594511532900434823473352544020340569267102148541812437697517072267643690893088212015813644188785780732214497299262792569107510393377305705623831936983690869701737649648894943860421347508772834963247118888190919849571180917143458634953752081635076029839224455260463273203134339695286604853838520368077450801886619791817022784132057340914860788184080835125123664081859769916240456809204129369418613131703665251870000304627761536234001061106172510698398821542512999638491946352287962400489247618548798130348958996562690566232911153574038715150953941960043063908695064707071803704327189976420054902274329874298167676801266041431300874577396568301094971501702310886113388940464887561622527917762238827934124421728233007057589402436552455368410498864843515661666623371041562865736010135780529601329486256907075044256304758300006286660762588218040115858969777423125927993344084023105839053612885521539732925306683829432876435823157618229257831069550613634551604721286368184621891855081909446810272541819615215011685555053803648590604382542215866652561732923922752310070435479133740949935038211135932499986180310142844529950310569014363211648464231050845428774732871588557851190648072087142170832633862612504374144871973039412243583326233723987583433635364472795727549783020235918125410110026823214862829694464196582644837800693477083682729540577373938021383867685588277487500482793064144769602912774666280856213969312955817778120038782927314506300335863802263555851104367483891476995995314821187226970410974830238939887645388914109715670059397504802216755350445855149939725641373899365452919031922429917295809563770843132452986572649565843647306394909471481953509426288435510468714060137179751736213604609798960843068426484971291835348148908097347453140335836665183413388537202974658230001098124927898540067731597431933408176346614266575585934931902548408559804243645353507272170759964141730358591765144771749796431325930417475227699251518460678947582150041700981695545550723244682927718325520384066734437281806939334112603130292805448200439077518515742332261612545600510122016718359714916202235433300149872858924294323821204058030007914354941552653201290811696974683406102926965295345620853600066332198642735928094842195287427900187880618216528906628367023863650165406698305946266079244273034769974107313749992578221322457987263696414028829398635500683640969752175258900331856504622637775271887531373575064495196968008727110881499022675595692374726148448006704499813730165901241294534304613055302908604113361899433698042491318733869083103881714558990117988138894612862820085669502020037960631874577573879140355279535940983378666030048741527903251386793145184061605696731359715584861060438026111647928283281418361568524800882798297207823033125112138299631435886080541956179510576855663991120770827739230712491170219187980756754948579587508382527135411662880077668389765696568955385247428641303187876107988593100669596137843124863497073199381261891163481321568324196994889794135240046792008237728580258322352539579969978078685299846912960315825151036612355424147457935494658013539375695707059805733198681931015589458429914284314813719238642673042771769193855633236408464967527994707643646044183074240580201903967625616079969720764390637545682844443258174697624929290375227458287016749701090847793472764223595709748130272559609272084060099327661482419581306538945385455030562549389876094302888561586343666910975826960523209543614223754633828382851172152297031765301116599166632219274723958981942525419376833414557523638883858174153923312618713571544845565174031635380929797444422742518500532560594406682430081053773081348965633921684451028583200659756497771091435652449982286567778275943201955614889805505944879954074658382500105136749994060419723087958225898900193685230583768634306373865866024746831539567823416801486218415011946350539256991778782516119597664148485170534838229015356003423053251385751307114617733227707438050387573392974297134505544170413863265545689086336138550054963826594079205144912380330911810385536962473541057742562403743019258520265725719532660923496786424090501781987256851195248916858852586422864728909329838556315001365665324552910285945000185680615452194579235602708717526797010921721241820769175307835747952896961129057934567431896721248977887298752590788627361717396514177748145558394591306355689523931397238516975076545635097007703508623215144645814419793558446147906511194847027878066976326912034516946294056589046214946708440209364238436637121998951775773009771306983479727227522823465662552308901905517136837181280289127004027427104552031917386717643773228334750216896033497813964198822771140972414618222362653393849161463597298648575526572033712609723499321389862362894251289737302603829706618478686932527683565355102357217425281734346276579178805454453298099471641159408798674504816818204275675507261695427103365442789414471485865893438141671883558998707674863098527910829450101707409291467612049319112340713818413145860938080744499225427395287489393721754492122722888184182695368770482542756874558339399423298019385794269033713868560728160078698248603718442169874280270313004600567349261890312519584370609845668437204889332244203857503380300255839317412456462281177957003874942503285439258179823945342802766708179322392815641307906920167907213564425190200816777577410406093552199517924861136793114653947003513082688874589928396444655223621457611074965203121720883625625155042851148183299491580225269545126768973455762229767477729550510923261390070691239578773308639375602461792883358061777334164431384550065782775049107139038842369976913693865150802640906930964254904822482344649391021330210932272832356867689093716810552381249750270467592909090326065922181566614758066221792178137464836114591054805889318121968931977564344223180693647135320777380886777851776579090171819850941192101153141616468621863238739865030674678850686413475354750783378610409275795246708351746175992365805317948496735855286063782360330251875700443471768579862275604716642744196132877603223350763422803681859668884353036393994409178110032587248472571520958287440579014852965832492482706206536509153766092435757091670838660290212809889847920678068227561788422485212024582870860246730692251192263297818617597862927388865976048216821954249074833877352301921455065673858345032392788174137174103960505516740890797150802364719513633481955626234556399992701368598230161107035134509384201268076318658420706390499792711516813208523767685398665923174976809203957211472493153759438869909096038855134678574023745434210480327573168463445761298708445018412529072267201357608650345499841450918637069507360394422563074106768028844971210339149563525764200649348639192916979061722744615088013963594510156587240194323943480986460700630039025256798468793957685434986632756433823044038200588123949304112319385024074498874455022841126915583489148384536753122942098293938067123355001515894091960380964317437071493239127990739669237896164909775029600559073411200058412494548139690622017841362541671996078104835787490316463682746639765883543941427913883683367832002847378749586712521446498746605434865262081259141881058529951830334858359522701336555268988093828176986039346155121207255625828946941866701101918910357325931432650491066315891891886339750011637653890460902437097288907743847742468424032820269490971890295158187880618469974100533800598299912789634524870654151436548241255394942902937021411792891467669441932222225693224078578445316805546903491172975507685649192823648533659831300018275102404143304528886169933121711776487794930091742213653481632386167534087763410702157476321896081704679540241482973529492733703202575593569571697009492824263019181742566292707471449601460781623760900665146170630484862821522807777245498560395086722102246980866499555978885128374514370250245300743616311919183518406246025175544684542024024192644770325456875194918322429413252456400168691844198661390080115586548095429521658168585356425053538012617542502054876695535809441684206716184223608182396932415212309740166016986435086628830102070436828355247468258193893947787214965334841208532707119359640976991533803501086617507570916876759001547903002777515183494710115775226854453888874635974853042160136200117283738003528738032878020055185415508347574315084898708164657138023897872669316562294783485256928235410400568773701095441744826932415770490979073355779274172172092102402333816299412296529429397260489217614999038595433025539006043074258672322837424592098305847455819306114217001415080616640417231893198182083853630626993437876271739320533788173926499724814120270708764534013054088497839307364173230265592209043095598403946040395753553093312143239540001138137007499502650060071833516779869585192351680898995127254729579591861609923870286735549008366503227773668417229904713281984871363867383816069726741742326867128836658468648057068202097976481824284685059218478024434061606215057757222337401876881270685392872574318740649118604300652834709738576508457650967651207202629943530191826366281343741667916282278032030230102669282588313349921320184977593680742863702620335770512618335348852678288365246315488417535930117156234328154566261004822423308908731828284221844736951119752608001035846805197246911973006414390244599898194394199103305197300648564001492765376800004387436820489057107792235736315696714793489369395198784112649952288329419558754095550412806857763244932003928762073929756174304502434687025772558318215298638252041536331515719917401604497179307381793486013303248407601014596702664928798903384535229600236925904417411331912109245111786577554214373142163455985612560137487287354170574680546620664323025593988255285687540981499526387190985265043982252525144172038482483241612169105054019189984975337164189957992575097391590257789502640734596505998687109889754910108157595095629709922466585946000300925095373748842410176666883067199546299689809010024527224164646119586576825455798218330515080656905247461643952616686783311788170574881146068076944489321588170557069005272079933442043816958270596636930613372017954036830536938919104818559807176524633521931749266967655060525773275522128521403698103560863947131540431528208755893499787393428854476658935021380543853763627309794634083888181697188213067341830006030413110226311769834396614752577453878579399795892170352265738967891250893301908832654055356579513240187243021641241335417819887198877979944341439263777946406275623765669433576895524593483910616390551331398213320922293051974445390682655578555802996087003991699800776988124134468741029376828872601451893766413042496888872300667804386275473042022792140657297799221039342414581067929588491546343425350149150958943343657909205139671583954890434737129159427673704627795961828876572762493677754653652107970597861401129979164459787578704058871713526677503510628413000050916863107617102026404255675805687047768268772044116297252065457712910812034505341793473040786847819029668883376145135450166500398857670742812461994391606349761489020043531257351681918210023692953099648868324326879355757141723338114864578200714523305299874304485938064902937727136816611121519107067275462005862107585555779919985454164299499911238890627156193991184319013084901523248260145558394340520708836182378541900828075538429471294518224960487710298720058815454230820948619077915169474483840376708269337148182324423464154170250517394058994850861218970212338313480806723798378463353325324503542785328016120230861756973687790171606689082494691670233232973267736883398283558126143748767382356287525227532980878456936728078217798301388741803783870496536692198998675212770036477264949601557951820876169183336001462046926406624574368528156330291257567351127372366699587078842439190302241347107505212979883096303635388127228214481571639667308263587801939364403363777943131398837503459888541085141499513909350910160733247531048096642432365235320691099371847797570567492014817156381345257194643885309062295749879599685278642728506901426877763709260094829491886250910126907912877710457157891847545875425667979924171524787531248835605256634171047331605253482149589337102607892623569622181705988918627117166211842504412343642407856897871978177974993463882730920377494825223566962630993452237790185405611948444931266830844015356778786580845562443119803236220291413328923955974599714896595313469293988144991347831481827956393604646740741448280756944190977653167289420068577196046992384082344629586160871244312303713355066439191487814494347914137102679155635229867576127335231534219881253591376671739664440949687632910150342617786482559615771581457843021945387348478206977119434653517187801331774054757388612652230219555996396510492381179653939674699592317150968499545669190452117682706459733815329242329192155745199873941387947816739251125823252076884302693247977494686137909552893922421563662866424243626141780104949830143232081622285395651107715235694761011131265781782546488162973294821384415527921685358109863139005061862454243313539270574185151004189004548496626420126239753319241565067724907766273377996924763144980085719636786178888410034983322222057794858507359370727471558641186836350812388394157461210983022300761483116146186438485601919483656844071866595439955471770442968190492005080405192653415494555318224288525392934750069739304213845419819488927437497587245387424974275454534046047122401227593576461164842027053813661695593870125625584876642625272501983080147488550675556838516803060089280636235393708044701994767838829308561749508979387313732359521143679674300671141362777303828968497208742216257852609970533776234355110334015325891342930757677537197242203744910575649084703255652136725917070306885233097533227120118134142131243725178534188436142084560715481649393725912449295668619451501346568897613530253274146633199368179090010707437127484501656160062584060056597751911609212290192289707881506754258044210833682612379230448770720404560527580940790770504331732365143863590551187234261001361016104863434495443662386749667033748779299417548691539229013704656411680730225794255092833936357079991014901333594858294340047041985154885831247425950259599979871593816611893788596915209267361973693067564515126961291208199915621204714634724390719882905253249679415486710774005372351457591993752055981932305715934707946023275821225083065407466910814615570284389170241200406406197402776710110312960190746505283491455944687187907137183802016517501091891306904473577298951650779194766062843909528270426757850304359485566019685617186258336947413489761916989305874825136163549101948515645926158945916923431264474067516456460715006250551882508556428483244989626881829456673942494785264351497117222305635130215567326891165792583927794651610266997240804139770325953983329793959248859684462230513006729372439906775645263862245737263277127353340063477717169085554150565212739024001272156738664559573175756225963825055069741720874186005262327669854640425552678244185173438323789078022599365962937850782982693194191791583400816149007094579874187796929961582494778331374051061661115603523092356717655897635306634592830990101749346961252558389221156157035980503942239936031897303088861203688432645495809192279774633197978754423917946234044011243227603373482031657424643048890499729811329976409368826037961114783938034133995866299191037986879830355460831883459889259071459521019877446504222306485710531817638672595136094086533966261840069013632689583345451951569704183361632096214176391161441176815670986547925791300330524561560689125498201880606616575148894427349987903861785369691651225187197543777180263571024622960886992875150596772010155587024365057400982775240201819425350636524266530431626998034813196201190754039878287985488422866901902102851986986244278764686972521668966775564127399510352614416666008914854706065162564428001075583638808809830240559434363409013464785344672666855194693756795317121115477209955393295327683756742598175532348541791898388590834803664612815820488569138231296924648069101416673186483245076536991800929454558413392352415026297738009591701190512767546046025651802367771682892497259402975160521987310957403000799041611550531452271885271535772676279917771332156473059779746176742469988231194753748215371276206700120343009572479285882058173319178647644774640306054665794349763812267566830641957664836461304891511522509412241481081123793181125193136686050240615569489949937836042970819279856143078636869049936923880263154259270006846937749329189960266884431976953613642857574872860881172385826286217729645604466563007519977813169271803829881278824736466119422142880039487380370022560166771571483625506046400697053373693256495554097044306098183189212026062588300187472558784411127977912733190811494859349138455525321127260186233607132814348019590990294121164978943991572618727127759702026308417762122248179396067335186703743988250602936373362733840547355202929987008940614128497733991836140546946206214770167803843476727759996632153847700052639126025007195480518265601690094213312466753021765843826742918098387160519003480066987825822518443844680021951382397930776179497863446525476183368309294607442550393726361590364807179660521332029786365235339291401890182562721955268757255849382444522680222610054569483584226072800533604865380900798694143574883157115429880904056619925179531484502472050132069226444266632723544706866311836414745544963343502661032573294451562935854797777096154361232426809875701754656972153831468062866057369922030832880015518426716422164862876952419177583934277896952235075551413899680000709646314315129959342905774458125431851859328139915307746259925586546352093242425080728677474878906679190212494511572389629435166969680648743824290468651728594485919649469608801841297817967676865190317434881979646790500414692094043668032795511130182763445157045676194977461033273441823539348522353200539233173297989710207783629875768430992686531655573109799397500647773883933339915123861677125279941763671544431864579045637639492679487402572436007903880627168857251844727088963663489550568944221629474531821004871142575573777870881335517519666425786302818959345973573639158833990489240838738999595071568792185640638290184512970283232368271699573577807463848797631284651285655043777893404289387620300989387704800962207485004072725317839673537646165898189750722217603983583409954458028313529581749493600171013355784297930792360756361687878507334781217826614227491038106935626193039032893456841122670060403019449861220592758357937104146198635196160097370277929568188009775640227451593984523959595689431719939817339305704072646546629206586106451785818683908688274196215285323549747351632361065421631196535807525770135671333500011340018432513636166564994266500459560559244087842660973921334206371325391131289753496905508799394546230538627861459235635279153542376868788811313045252271848878785585417308827907818598018779109969404364532897807082916803638387897070171652760457709593220284191124352934556682923801898856944225594782593768710811211077635626599297602141060381465318382480802026591421761551459252502895053271998406807642373972023982991435522134082082500478369639800260307743327530920844365237865799779673860684745406769051141658542954900811518101064179689868894309635352659180480964001519277988658044802210631910553925105136671924256215642707102150597753609078308048763295491274950220014967283100702305228565246192040904816054129053237514964028979568439976688497027971776454632757740588817120674512476933995850136401234836221480812860168536590696118794488738329778787816226797932678445323234426155358530847012306100568782636756510616351575586618416028038166708840815222149160744689702980803976539154053616311653067364432628232891768193271802075093779496255965979326982241981758121868292135734115323982759230985107830001391285686500814680035540095288307356403300644991449612883517040139843792175557433689942780046046262087085739419540434484609943332055714782608282161242739176379727938473724223246687518479682515908911312121085612275966638288967807474252893989828805917073878709740436729399964023091647845403445348553183644160632922798992759975396067865950941093288765859952547871191999100935482304809596667153167532657319957462351692689080216509459306191539898513043314783824663449160585190907545258762275044734091246152139718735442602790895996382249532441183231391902123053502042839430794074503342727534355303812622783308106816591062976850097815596222764004574282641202759156601966289778474403259032474574373493090065144700971300080263853929184675578333679225520866017611822940037146430373317317952495700335159574588063476915200727646943919775662182892491609397514845891655890900943188538151824656110872996979042095689001927736390454093022617344275663470931929859510118236697616791159833557082549096931875589114661394046940529538437910569620634019445783920321150253467089893096493946563589006214376616539254796396436460900978766197036152788611489568777535485683238043101670314501831225873868565206421606185435834405736499007842889525587800988968973207713582594118330077191844890807229830368348899891704373289740907743450653435675307538424912301679779491952559074731478340899260710701165779683470326123074607518503395163315689627402112565151836400320376967233989007824523604977447828158622816339437081574516450082249094213453042814857971791949563884658614664996174636992763677530488498594231449387937069461547940638764956457076973644566227810080254746948939744059188611396348966170918097880852537319540144382055699261926688093711167632245981513980071419426178406564720605720791250807659390172931343901865968758427815125835263353669490206037489550998116380805348460628855098890292672298559252669720795415983056808211800878017301648957862184670283160263206768494262422297500192554964702814280332434966227817197451654738108578388805429284837567075915531691538199032523822584664840267680503834005793625708719228697517997418850001094720138897072659828802983884821223382409702254178142231709552762947154802869896790686134449196214516217056885208817242390132398778712587938037763244354166302535689109006300918905660453974177703000969710304687347605514978830610272165350601127995325110217285530409576291453983287477872667414927454181492915865201321239273930575986628402963890029238452583313487194850310404364588973200685979274669206438416994408982602240009167472870176426626283766254116719426144661283065156614228007664423079029974317284225269298776366299440995853859448624155096593601645031570626596131666216255413543160248995083726053391894863980080600395453814462795652210174241190019236238255041891282740299894348964256106914157160805567001370436547063320943026928208540283146402997448471667796393124799624970343572155636153174024751386545139657222814310378530122612509824592319988644996892740357681280108734037941494601707917684379854019740196300880938533196845131249379634936847605504685794455059463130741011027058811155264202501929297292153812472555913377660206855215556408896672022746297435527431384946261753389062271275218629142071597356890063498236543292290607160249817764297724605442720716391472058360833788010975271383623648524804155160433686384430968253464187535424043102805157271249519650406843937448482129742486765247269385078864320654435704100127652569997232926035748698944673350163439116462146696877785056208932806242722506608717501818317490799565053872609860112342611217939429278539310108750849190218024310315767662205932476454338606043403475302717813392399003241595431031674694270287116377423004111176637123732044657153737775739320893221040257449667158199113224633743278997115281797861079222244170427863418095398330053164093167346036406736273226753334324672593463599120563374292432888363108372422611978265831969486757944242174962833019162787136796252984432692186631310757287720653359898043690257424574171885152322492970453493946431788414317602493264066256299564956232558819079109425894634622915246386139721564430313741412715742669205767276100011369621210521275440776195919718866068278949140970038586905057115051657057894122761425582507878905945014733838569174836702042700906609266861322182742165628932639029665279134486248443822303196814381019777353914895982778584931609493779464563091673594651351645723160526113419363521225588386802702435598994138447956619160078039458597763112640593661482107395068641207864983939752508751017731358243682123903933536693004071716610092938376591116386831407670298604339327989479757767419760230284474376274318788234538001494510595997295314914872532478131704979730375619134812196132843297365486526739736947421995073926695422488056886402423317117083457401382755614142235276115054048976387470142056132624137941628923044540544558100545547997482354218379481235423922351192599843314795212682943920020786448973005679460058972673459104938036505891458377950819827186519994895880014136346453420198351127913776319555315163483707448592937781181011970305661860890951444719351557925287777254354216558796315069771252190399141545304902557161127799865009627942394077508427124237647671071047119581433386657944185487934800469404188900882629240286919073770448557976090748217865077947052311305727804584395805334877538325455983717199569877618470624521094626166477715274841980656268411981245055108996063207382231842998864281146471355706877501567553644016991599248340277816068752152013576875281977774212732731193868822466169805201418979857305158785312078365565342082712683244725371932682731900367771814044512462730291764327263749563390144292301293712417587992228016300467899190083332925488047050710118499628008617960167554741475356715591934114248699779920238257225462195002997178972055517719076156258476590065117206029260023838560846397350338769744579364559616708065289493908490753473566976048016577972149433645732964572068789235982930916778585251320980940556997826589312954559662112130075105543324779281313385928551047466085251676068503455833991521736223660808964175436865906366193916669407944510646604422964877166181510826396593084941621516335851154470296689022969623929183241992609742146795506058964386657794039954536370365482952513140837140823338381743331442767037002417856784291240027549338698334239737495042385878458952277448407062967957741154574553309347647316500677173462467014419214979422916747516861222755992144221070565864491938808152233695933395229700628993842582860583031166617579052997681342885370005487956142929442425664053899730229329836074413905367565679503728155982854061505770469971947000973621990836724870105448593646945878307327033334664024128612975791781502025202713744404920355345606747437476590142609775734285378937045123473716336561678472757056241377892890087691030700010489781046485568779232124696295346025675973411675809518421824037758796301368650347416250836149675810995227178072922716731728218842985129989603148755804652078953776274885005706413301344096453074701025932613641441278919570047433613256165825137051438031781769797486691019145361669828062882733976647982122773620214011875756624245265689470728685592717233858689938336984896603846537062787576353498099978867020002724459364642002787452136878985557413420736339657583480285850168023763433974926825220572397701399357006928747933562651927816858620089815169850781879038302724357551831649331026009315052812332990376424584398876228477148322604923980291235124320593299648807029453103919627749635953451401004036754977526650370195108759824490216805650578735485996957446419589439058229209919756225026177632035997926643743452290289589359561667269958943891050877941584513989700479697395051999438374180266444549434017918308331770661657735616437355087865534458115457719883989247961541341154059172731136032676828920062948756728011460457693772595612002670105379873130277666015926175670544821546762896120127322911563841290036064825982989156209657317030091914539895981723732280283839863823037507284632075885976952719047594686643391821353003779165988854648459725153193061939330701292260413134928696701515695497955547949139198139857673030565626182491616711977751595601125498116173700398353880422991699817385725939965853614032114580859582950898085592439242046560701663600721790869678193998410543059262556797611893435288594050770994585723889077255900782852109690865869303880514841443708325472837452972245055225373492159211830945531505140688873011473200309679442240768321712019884232614363246253324588764363521158827542858394150849936063239334777698893025929559182778651612704978843862640818478720668391701242540836943597309838088794380764503200045615120453891201978956061935519610509904145967295635922618677724094616250919560920276277296447749399404526477393410901610099725748437229662359321507003047280883487263748641466371895189633457674589805379443532387586472085954981412379745136783507140919564761828774551263522134410905544297664633491273630694091896853101897432713694858286486387509246857651408643736861618476235082336724236526858803333141030178197072482689394068132535853674139976029067323811662932021527607066470687244017894209378904287240802430242095025192344975676966305521637203275376151452020200336008741982062544326031509079911505687213984448731352135160599287266915035641436201820522394923912284822721816607483925534539776333565951095576656201937657355756529707571090504183924726616004658930397312786498832864522329700934984282466611876215884979871321616073139231335471478072240188038731655936505633347214770745948980890378534545558856287897809313742509880049567139183568570116025435472178476683444281873658546469276361048451386621333797463050459096671972327549667099507764629293606976316597297670898813730395508720426770202618433806171194547340510985580060165452768488207058411714456544222660815299564919076081852529956863869462705416396543236997279932542696109855559320768981185856343141803032094500147865797917462342217811689361216960518524185353793031931754427308635774539544566879336258795068417413068437871506814618624442923939111321269921970798199942990563855774326559428737983102372520651923984659465271119305700060007124525096607225356608447555064065841630306640028187239706341292840678849315697605560235539779610848722601782224621393751903601474385161130767606035736595599249984380636966007108711526731427098273003229891678118271266734296909269537727075099399997608234980674167446053286423177539008963010402408493972853881513522460695867027256414836954734404365247858743786292518649372213763151842649241292855339957368481269974343908552689386282782063168982204817379886733576149486179658107948735201788251354343431661912574092440603686653381504677493493066701190467143292159456817537461388581840411238911624307167340914922476630405265077148617448279912281197241472367961742697176099741371665708268822530228623458582562137496221542065485525488523320469143658838156551683540294029710677814970522369015405337108072195165531459040678951924575554637503270332196477323390843592409425482112142368510151522347896873975465188419406651160387757443832111372273129721915425048302067496875897451030751541267293063698153267315416114996347365457890524458384436262665068503537456875747026991761660225857860229634249506231013257144365609673042222381286016188827743376138650320291779592545707306435773080993575021710595888251065953081020312772937136787378981789490592000420884146976020802485964176345301521958817401703983283910135059264059914992050346639924746295456179535368761890702498804344781266202893347439612289947890375535837488869388273497964354920609416071950586869813829649172873652455267266573703878947681521469267719839135030774414908451085764022322833045221051670463998503031214809904105715595525164211529762451881569019904594077430580881000471231660632126966447003643155738197326414630878940222992904374723177645563813039128730628841318564799379917656224623545467237846924740590487671825433012310868146385663571411695842721085225276801696806558613536740485131136085053932116356637535345140981031380009143549895308073070215935429340247495496876728568863761659515718657273604125076913015595542868816277690613701401391800832685262894592216098399431876670208813540862137302569882118576537025898445701500197024646153500732288421972108434149510161872156598270780319362223968086671200941950403495379744273898727656397279386402709132830626176509729461863462460090005008971630933451973587254520131577259320117082477901453832150737742482698003802386821769844322938361942105617546471942153178762086806658565388808495934191316336466781762153871034056494907700721518351637352474022659091205234623419457115392365180550573584395199300610020979620723042797383347503209306869600051471539414443533029111492655785431116020397593782406193831213488828363335764130157135060002783375951153060018099822733446176646251450175834098663968122222344448151540889106881485137658897406537764277597419999028709314831356633435098699363926707351348799053527807851699087867946403928293293873579539495093175275841933295191094847353945216031556277090527471291726791208490983590401867476730953265050972211638558980084257653974222607957680756886996498120543256140984151367713030999112091351123729036060637340841332541930890395012296714497076537253331616032232879345533687059307426332039682299436787161635522375835271239653480493366053858618889133822849613138971189612560749340689464949525872480418864341078488122740945086207126440451031012224642726328363092297642315724789985456074732924520691529173189453019520071043618996832611742027350578047240542716225265191990739636813437987603925636693425712362894903295649413311446233902841424830773614013633881539028568868539727336604111276867484481917480897323464058183451757210753109379219936772898975187096729231223675770923630635175714102827562257237726255624080665927340755658749189806058139528911913807715705778541279967543333360854802540519517625244805749727935449024487314358480047009464609377443712344848905124752606462442338851733809886997427438224247899938914542289798056564765734898903347772141385272873213761420670178904177978606261712486020735877408251104365600160738330234874777209303850200103601909205659847294320044889061183506696917378112947261120794776655954188005144451704203680374214874637583896177299631728596927327660100501526597951579210698342307157769506117401384618639085739699296214406295662578417052607222785850433797835080011548061264934841350213495635673485583881880925060310944187224923151845250000050054939591802784461163305047261523731760515355683444407219411089233262132075526888544847922721866811633833033831706312238901642294393124244094339159262762804308179647663308545018694228607935069973520140010833101824354087760833142399582117428841414684515178983623683097919003323445901995651506892417241139814202255090693060855185415215084320783765770392641069897837755503353653409816574492040785663845037573606132139036372280239721838245772796028685556661932744922131154185197667101309320720619641354505168350451333961659671879516855625173679668430786419327815992658102916277294621992284309459090947830533832261067851218768864908916292973869120634023765609623039324393039002504023233040086418067361303168196349459156083760502404843946123928767196889765571915488837480387211161455618982228682398398620963134631058343300028169482626323599608623621022503375495440099462644893201361712742259988950697174507358304652862989715074620527063649698607872808256942165118086047773889502504015379286499842508019801242182134576393250674547222522965053679299881282203231083759077077253980271973781951978516141111240927577023396010774278610893714871399731508424687875913963867833397420412158175808603860461381800887058946839945383434171633421348198224117968760018665625025518600722506753538918099089867596683596350157004957256546288796613683201777190075123514833267008338563473090819530020233740489549577865599078099137332386968237594301202417550441211047968572484279178361002327854499927616357153635333618231397577873754266667367599076820997497643827796383233869808705537857960399426282721030126515158747057793324128967438910904955287539126961778707014834089770571524997752818985938643302453512765738760206306663594417554137016712711880929539562348523855917715020094057519241901405972063773640464320490017329253153289147920996531719182438662305187156185471569577265339814215430383361944103513469403522803699686718521849574224815684010149244211779284290630928813776737282195203464801728386076313036323239411994192528925467754287426719530902704677913932726404249731705985408010644499175399182385953816494282922652548618223112575879846624487048379282022352057490408745268401739392969272978435167009156865855574158452612277898151330058716816089079695162097742121299683669650101499920080220868749130833782979430531326667402860756925392298438080424988780618127358556459621431707861682905505803290993167024350061669033256538487198674426184451392553527468543058995044989121195975827188854341851792306644478380544823809401437269803081438108965830378234998992570433625245973080255135232079001635661601328899143378922236852286594655347423276123126058427995254134511214427479148695991201038675898593040320079259691396029874782136099024343553256205166669493222848876316321401035384817196177858771511325865989152518300291794275978777780955911109976050253204699796136082074882647676532427775700990892872484306741394325819803065074930516307042915559489740155724848720016674130865292077875625070927254023965506579651095734685515137672830726986017657540131637906414468143074282799243116761421819392010079813939191236870407682188224545114398791394243351838894160769308507695754425735098116643047884563228021898732323963642892436264353547247535442767385096296463401764183344501663494466756594513749957248240974393538173707850881909180787482664460728572868007202219677077989544475559576464584649164750994690767000658492426325028446547246762230479810461062504950333824156481508680083057430635657655984815915631286677027332258305691239226206824985405612999795414829677188707330753692610059777565274098088852672712366939530447460985819784177489305518739210553691253388921008928849092840487540313134259485790541170859613165884801542520232101904264428637533397887713926362657561145232044484039007606331985130881465175249292264516696282080259577839138665767394119003498718013423972280427198853312801931865602683860955689742379711309527958036453468721743680012009673816236951283716829758914602836375649026822101547058954098131974770918290179126183771785621911526741288602192451363767437283719817389099233629642834956488703022054044067500777107422671905173877008278994874912852051587591578226276181738003546938686894442991726043629874411372515297058416068931750626254232403741138932600855227072110317123923721319227352489185880229405866633104564204542003176413074302686152607248766068129578549715147418624944580046366091688571985547090376485035939440869512930568552450531237361654300633417210411592728576834585877951027763357775117394147669736593948866245034689977752355170220138403618295742224481997194730605785369762278099120214388951961135783617325219428866203702299936234932607685306326583415963278651236874858190474214145504184326487360192435870932890703290204360782178041051885022659593435993576929037171682305564367560598970914311710036015004775337302608494311703135391259183299493431516799325967584831056764167678862306216616938668447451972836977169082030300144568987154024429679644349087548966875872661348626683433206451008587225584685976680843019340393840844151221192926503263003400615508522499875384428465569082705223351659739425459085439618678090794253189205457182934988869064295033580345924703967362001024541929004095720267504214969509281625558234217681142708142269203000173260673773477178069700524258000882992253626074402038540069921980167487013774898448532462672615081981626922554686429450179011277670145455363685654389980086059814510883415804294548068059514093062693228538468690238523594126637438826019078697255843197199048791868789248686682413335031317669046349526532139853591244940072509579934233662172840110726734916436219188330452711980936863939410804160269050111506463419079122758411622961403148458833548988341687732450565534736388715613041819434544943494192461253188982604373143332237902830178525855643583296032075958624454551436588027980480657513851140506885612115832680520736141450477417961839048777054242432214085306611810583124777925549095727253097999672006253445230077837473504154290361467483623996047457464717838672229388204573493776770054451252343103781022988910850166876241616491643812457734901088716346734041684917842374284706528275697513653415081513649776002697391823722089438053520440435866277904293780736832260759857647768513694929454039988750894793386205780750001215103038584318702209636951510835101271973720035969890430709621411067337795064846792240035816843276023538710380289489804858540294412355522910503716174156038323880556222541916260729158688975142948441511832307784902508490775808475041058680337423172434716023883123551253015493351465314299444590437358270119294386014697197198930842496667814355787342084654441282169255261966996784925009652780998183791573267708638170885724086262845644545150284546462523861092040283216025148255533789150847840244478349768131149760997321165314038929760573743759858783648069798338747690053987977329483866777327434678604316998311482101157669720757248622162248041385029881958898980143245356065522035741344314036996665797117498224689011162509201368104002178361571110474031342207520558201643159447165529561610079086682841356484103156142837850294251576364300146087045864522346058318413634467488847146244094660867488944969690936340327423186960193253971850067530809522200238971287490883237953661353625498205927005024752050900068664151582650924781541048424443814925265818389484898463874270533966564025850526101114604824505667964701329045348897093432045229735956430425877015701075531099517471857952706650816004839636517176163715820791861597932396208426472620169065916965447583296054336634756963283302278412987213252601388056934981075708332401047231297617158119470687150897243932843185625518936782781182422202930209648151180351681909424339776473191359557178795218771990922330001031992008488396621797341842988091872323407776926357632538795261358629245567051454212997599154737213594269628334199163912689033363797561912056773767675440805746092578613087007688200271917869214393098669151066996238106562845714117022753920391238008348025681182210829364137801423695135692842586710954310777803202856082007870017968654326875158466892904581055945299246411960568940890757861535553480557808667561090656561424365564463227479700014836783650615986907392207510649496863721066002974512832163982969062342323837254225313892772860729839531415514726571212065603916791294298346838765811466581805223060922161911647178645644898250431478466937552143221008223509820540749682855634284916380984039831707974262925800916051190081465924485399717308965102104657135101742014643548396322577127716083501839202999349406790357210728188252525230428121855743804764835902238429645310741304559459075930735739634079315407265102775421755782131348043885829757669924489759997283664865392742922819035563361531924806380691644910240884495879937380502661318341669445459786951963351419390949108196450592888417457701927381826489825622180810927053125464060249110232397315263901938514443362042393107686405159007198022365388291914250615998480378237885532186476873213729840001249705495291108347215556432096833445048470422332444911551185581391238984504899685780462225171543157073253723882250078089727092799034949857944318632165870952175190746417242759137452473792844298155598359825970980433817167196665931742479560820201274687046219167466722677870384940548312363461735245724802385668258818126919152211481228625172070029994464273471173365096114609920998602650561250874318214139950527233044649090984559226689648297907524062843367546058087567377192050762914804275009363214139671766086025264463891403025336212753639043638164215514233876635625920560976002260984684708394783748134094466196055453596064082429035831470410482493835459071383595935360284002455712493759585515562571194397103008527406209849303931402787620397265043163505356371843491030632477855365925419355275275077694405077256541115105951768941393207499692797820095895711411058344684871479478594438376641280845919968777351226875243172511627766599791123286391956203919619907062640758231009600631269970727139200931101346993278249400833653323342716888621207172319995050543822606688982219039869206445646590334796012638552084157062290253331715260390741973760481566388623172535858701986667622133674836767772619434385618799692599335322673437872938985472339505971514453914473333995563381479359479542092704909335478133551237995149900957739148978458085447578872198483300715899260576064100090014477521857386375837080702007577207297239765201738405682315210158887025892580204052708140686135738010681681011887987866288271380692199640534087014198514816696620109489288246840402634595376082651410121134177558632698795361497118166546859449218717618266770267744236159768146294820486644625058879042903811106349402227634677306576300802721504414206166443309572405909592627159767886064705336106887232615615791953778529228566705881473589453338939169685159994198817895012943491853861211651830291656954894896110350929730106628055355112140316085201177559015440916081732047065256913092589691229242172757924240405950695873076837109066803534338475524556580941135727387645428243895362678576585541636132705763677634088894658062596215057378065942597872181080999927850410351757564039685559892540540468642032320033982924911153285906299996479349624626128214899299158708644429860707084410448660131013162005484233564532798567799740326842096235056804101284244337554163100452305808052453025404213749024745957141854773979616969492346209661093590300873624849590497397973315408758061037589340398091998910103241989107458598703788439341998689297860566023561756637755591306091267853193031090937065980015489823622868858637898901802926973769968824266034160769222504523592966028137939898848053384169343122518184195936021149626944107548391315755810972018508567540461429128570562177517063686606363283682249158790649949910910804843016038427619166325565462679550474603112523936976409651711969769026248370950394978642150079449942557672664024397140476615206029333515502202343854935208782728902570886675541950778324789068703183196419041922461685161079866025445938087617263379946540326923362868703445968405413150926846626755045568048501331845157175086723709021578639892136968628078437229255868315157666487907944996863928192799944650355610695662465007414605200154763976131078558862597397829592397948903389848309337455297022874326211333584420133411711740144022334239640214973588623947456854136564588487821785002818936029859461248847913052972498549186346967079166026276836381204983090110576678812154385287980130061727057523079550944584526909417166307453000105965518754181081271424152917877160397700114344531480954784623232819366572442103092909370648828858407020280758490701873697795828670964823203670819384827409460208522073514019412518473790947191785917968746635952410416247082389632297587851344432909484348673053096488313405919897147497325483326526438662592462405535647304113079799845256346784981359086379214009595553188245877231671876363292215624790238366359332983533157089050158467387271129464528819893871354692533737316785209049707157030759248811665183486650067375829200881518786627554357302623889768007335857453613588339243939465549641386209849013018335884307302394554664136360234526037161074381863752819270642487440792523106664188354608742207738945164959474210774855226880218126485993064779833511921159228674522941795120768068480735720140064605894276829591126794266880325012633869831155000894857352719198225133229321843834066119207606268518228358243057931364298035520275777886691508538655932968687731942118009663368393862013215976478883136983017936059951532540249345515892151848319384356281420445532306170426372575518107272361360673349179298390062437127454389453363939422657003962711216395273508145884491413366651783642258165192448365437843224081826990983039205398008142453613167002872718322990352530906766638811686904256728348698426367791533289553073058467233741840393574802276548208071105805892433368511975252649183980635001742879657462183811912908159934220894691154683437432679625226421850158045342636207871511463196612613594671367178021894757467381949144559154501310343684283553118670945559383836502960742871562436333368928167830945788905890502118675178899306439700755465346510613128018970209198537546250439091321622214429949170659363754422303750392036164687158714580238065105606381227372100134510594191437804616304936356039255650351662288370371905672549049964678197525162917635138594051964450349081546326159549253684167317594135398139680794315559981611993675288016062548676850981625693245011288401873134773059183239144470604797223079770489859708372613965880771140238783700124094544831319247541772480175289496083951151282052065417968420482058952328585840113456432038376042990328253622303317159104376988700481256089329022817484845139236084547511180803340960038502522380594538655634363172140713156272823077515176639020729749127751028889957334746195545255473790064853512329631496783966910834410352554891438721389962565704269917274595014277839335882608266047354165508594241033111810134883279244299426233894557890508519478661790465405923407036444147030142301900944108914564922540783993170652174508737162963476894668700816565937887657529246766911309371968857351407257446784279983930588223201931059080392243551999940495845437329638498279360838392669953087740812462713081064609445834139304584458773670201178106710808082256342117408440797053792631063261724782068038847072949524667896379458481448981127236617831688144988951643619810572400455859452881061457064269175708462996429599409562481751593271050798577725983031788208305815586140364934460465992555061600754835098794861790975633585266710872056614386960406214856824078840412205934139054589076338391808912551736153055483485270383481489895691742255296568728575772728999148962827757125129560058076327182835859087507354058094479598273434954657726394712092076232199732287947097002251326337645120154249027464223070520277971469514697150263456791173460996347088232817791356822416901520435657840855923477920495365468906268227753096527020571617238510500019086943578638307584624914147892379407184819037523342050386465042179721294888504146919816634757631038462243288175664973745747468903815090495877732157505446427347484025947958813961524170473317089938674304762706391140307090047521847632118758851911982302533178371902211856594471496034694445770171564479537711597320280946876220677518012161408198578915911706685303267879634333888463000196999080428530128460208570072810267245890283192796010135381243072225171485945379567233627304449013720066077410816447649501257408428467502098083805233875037020738550473171699743620788415034275568352396290518879895331318568275436072059878893286624094307012272746339399202196966149061051512522927464400581669950344050916974098088016403578391140439294302463445973684911118923865134334210599900750763566693804304195906903551402622188351300796547539986600566523788325773273598870260118722432516273905714442542011947127785333966656924268010587390955846603643898862309812425931855749390833420005457566898146745675043490917200462217870604562773110032425238040827567739423208197022302991495688382179859040364116461837657372933514587036694961744120222849863317347932341650081399487191001335849395579418467866378244655341394392353538415291526888423272621972276407273737999078444269779895560352684410509563583432297942125273948508480073138053679607274188801553770980855102517787945559454366415617683372835280023207310294727985943939202818481691663722192466696316782111221471916069861528697699247265563838275849277751396233413313288778356030805522493600465955355146101461496424004062876175034913610774863204878189088967272443830805413691689903091714910515456275289604033039212263118109146316077010800592021918191190127462785268105779145781595846036445779800285578674403066118140118253040818757199253186134902199262839375784377666753665710738768716682850057066529179861437669752787555892533671912334877722827890536980686614036861298851509214045771588044999378470126891141234602193040066358420677953601086765846323437523165095457008685607850774321380895002173773301236071561668178243267427658257702347272875012681528764869970442027685767638229622935593139054305326825399940292968146359055445596791292358755332671521792271696604708243016369566739016397338348488316560742431472956754059241133195416510619139241532639085271979104032922591470551660583259176859463374262167266514378894061056568246644161002061157678190979871276443790889594888031028423148448501550970976677948862538223481851864637554038230028295460030915913656275709592428097509332378048187255237169760234792256681023507793127609808873452643581041173039168637086509441790053339585386929448465735150014884225267050204823642201981569500914951562139661548645326108109935401690083050497116554311152659669754574450862829872920906339413700139797534187165718064991607931765289219853344197218368088730294833710755230520184756032377259991546379005325762133674139873304355986523081563044957977614025477878258273243198745221190839626497738488426578718800431001584006339704263036823889079266309242573977264241576169959698596817386634341956567300991075836343068749270104278110463601128125570200002475175297533701286953169973649628508385797451860497255177567915054449725582829937094170029219705272129759502665959658332057279213090084726580443303784297884390330989212820567967322646670870097394700977850515274229492638380362389547044031748079665673019324456552551588543098416629327635656191419776982996622443601710703650687673495837848210370172022950480469817463318440737512116713364901761014670113515907984056099652071599344435431960157984580642092691276214455950937779419400965975699734346701597012828611571345977103559235968814495963193019828046572431953570611075016483305790471354960949949513072427142863698582678968450859872586387671868019319204141964537539196749448031525644736081581195644537771990688438807386027342851651645339640308060063865880744323586978652881089993100007775374975340569271099081083224421209487707409007897295353042311377399640062357955374785885854887615381813783143686860717356597098399330744308639144083164508033257704625888697797528871357279152552228394820739458158662085768496509389974760061958608123083426382313103205906396814754820964949501884788290983294219308813764573001009711137209362160931865521900744906278099852089941605462117256434414259933952235696056372975878645041103897634583099558818593855694910219148608425252678329234816863305252444487911020633581449048383076984128264838746685646592318941224261412653392691460892017541879593799057839509669410233380648069651577959300235924635168008502652593744571814182919902862037182995509117503573728107786820933131015084236986446864690475327253205459812798837250519732543776315780784228795949168427122730887513544794341632546599256661437655535162644311701499653896680558725102374849897739241078323397313399723406910631109317486872060180492527907649612912631628139116247860820317167004293920572879952354659937608734135371464151321284072492764420294795463857893455304401810872181630442250244862819748603587295179537670677019871198121068745356943129969531098458420871075592682937193504612757798338355518575951007084340427175829733387929451021105284778237765325124549795455995483958447218179621303407771107705442640699510954917653123003259790582789802517560760722772066382062467930009322601310263901064598478810422419476819180521313496618128811780469368922519551856857309752786227207901208892267708423996891357864277878774751324586703616178069252407022006196430643397414006235289232092677530605238000933608616850692139693782629729184535599533471631319023415417531998502479047483891581505170587998934365192112400052160415370420112073581399970524567092717969213915051864836441900859089899012103809693063275236414181352471081198508020450800915154461971356080345557275319888103371079933487194224681263185553602985442483828963664319601996088455824094589498517274456544549989757993849802105913422694637621045907906726671800335383482013597282191269904032264839195655060813466026772375615714776098425162181196407829633926471629895397045062180671237106355239858466789493440791897059537031385952842205784513548898562762795007106617853712231391440032063678159860996850884489776553958568929665840100089352056062083432095809143082509697327639854632325189523741787532761208935652569058926695204037570364666868307289762447619572453821125466492516682955959440745703325769783798003792279189742021510178628464490591220765641057560245033607022859079188783426261037417134938867116822379885674609449145861306192371083053140516017865495012276196413298565898306981292885986187109154547630789800571154381321883839341913301573199237496437337953134114540163154491149287670530917131344780007857853457064937893865163223784240812968210335131502222343561067475386771742786390544757855162299294937277009896900077835859133114565681799032471421988466037929516062844646175606537754777598275277408475073791355565854679408832732702625941217910627549237385109579890980975338351595763865188258408406828277887996455072488747946052409314824671299163515410275469550233633813428532487726338396659775029578056501349223934059735268721276643674105141804393700105363747116507490801348921706111065825880181180205811181769172269309792393542860476395023865872440284797045120247320971451498679644017854568572515671070121515791127736968056484165700771762910716641499271801549369491258764636118978551367942724764690495516023709276978239345942889019377868271288460270821945256125193932565076724661606274221619517623572994376044432050906581472890983845943412598705117372797368727894321665250144944835854704013633267182361651083235753061661019733416656350931992075616482230944412609327618385182793194778325874242381446410782980197380655693652686057113331561621023498750770457778005833530932464347003042164136189714881478886035221520520000812402573507688384361959372505643319161586356107697084229087085189206630343845628914792463523495792024167614948460111100926113092842705165698525206284332305762485444633921606134259461029985130629172154922522382469180103753329044440274572820631864430081059963405675062808026743010526013533380278823042838685096646453829970988513768122363279460969821111186365961309644635213374656524378887298430370146274107148330298907072228103407150118052840723552573287367163085587693968927251183516888546176490589451488757453810643068571154827449854509934497439821132340646985953170613327774816633589592359463932604500459604798080690875193572317645060181316071002040113692402720064760593870402606335328644402153080190255280114206829181775951207020890538198564241591144289271790093912406356297290941293909319692838269813405762661892183013387423296982994142394523586834400103573670339125000055750608802408494899091361518265232059276011743798261182796177786245219303185346734295977732432948939956813439142974060706606736663435010543143781055889909327813384863761476640094066030689071416366524855541789793073962243141072415487716610266727948670688833747295129993340701173236048539086597105478539719843443575972839341763222588350164961895073351839910554957367798132231441280286562115713355877531941500628820424779749756537078925458870040786777815188856489350599081335643176629777009777087132770021845886722727789032960366340028789323206920265568853469367195794828585800177241391204156828892850656232595909198506099761569673779208205381920785662409971643434109442096564858733878476209149802105775667570826423326548941464416617764219178992441274045326843091902396733683771881680719375923787202374718668919623892063630628419238427168749547913834711573657881804370843113075772007649405203573888001191268874677514877130135659907296201569842444113284640354635693619469103564384047843175539143115928736175361536095098749309892047543886014528376713662336345446523016565601862372681228156446312665651511066712466528162773734862605101074393702477187924819979636070496496265544945579693333766539792921682626411347218853827286174436149255305787086163977912059872696163209232348467792597189777999999990065352571465252229688566944893588043147358719808940947477979852142728840498446564376863689043962976859899467553204284623376204247169070428994132549363256683359879357632895183970340695768243980103755089087014461371673146859078896536802048559185373213892298188018384657376010696834879396662856789164860890973490713446921259953650249891104447510014973747809342263203504627269106364238991215517113443488321596243312090086680679728739028286113076028725965416676840992153537749639432561830267604878914413313232537193580943777481916154623513291696441806217655429367297275135128979795377708484442853522133547257840010496390247692608641218993015469759411919097618686846134337536263779983875618290113214160316972548162722616145221588921548829594951214438128063666062603998893389858893437664997062152251705645266965235861772701591250217556857085750478305415462159431685941604092219665538593337706378730211919619180045836303570128216047327833336792869897470008585308309332322625203398837074802485766455017529939005590210145179443857480714465624028016987552650245518267969425275199109498258176721453319042286660977634801217705071089283295506440657975521721757353859510118877447944024239228963104465576754603954896390817608901167129510132341806387894351127703017901357982420551208756237963224451981124966868616375113670287717359244795369808729938285756462086369379518176856856347586518698204638132572682629825007443070014536755435894150988185512515330588556581645818701945412018814241295150309141237172882721979751631628650235846097844006989309140282384190598779946827107365429424417859948708356380017476250662775058531749671859899797274007067738282931133928900910703761279790405761173122932850437952223968841304795030462766308398820091664548918887909798391162599427379621866246535885457415779553819601875177592755623992672040407462016837222189116691082504054652386494229540018296025482960524145665858170652424014693419841052005558720524905598161587549366158590885861305681041724398463946645954381764545557226683498236899367708551700198671168667077047568653165448105514481972994553405928500312887108126881395228421140947451822957643070864538841001288557817851384665547659634826883348575785028798043655129225232918656475513926912725043009926455977416870596770025597953657684031430376057459528495565524399814078352675310345344376658779923974993258194272715577799543215520835971056897040686197733994917805796254377215309900376385073013981262346106561300265312836135323320125573921231900285406131573177576751132773177010335613091906327374697370220743739220467139039436782070178405465977854632393807368964325638761546155946250976944975439196546522939206402267554227689700966666074343170759504198188604976328714538373102744988496863541614964385948630917902370511196382353790418927387349085226359183374748116069411957470665515559326873146252121713922154998005804645068878292235960675177300426753394747940460811454845848020542259625994751083483098498652937739516631970336088684697439851089645340891735343278224396649607720100338331693419033481934602652759840607395574122961649043897319629629967476190636997455514843842622081112349185223743533349033504000417863574205222694511052483395502442080987770557597174444183149723762302720540530644459240054272391730754574848498398658601474669648647163446297106532754226646265106401283717785936005392109614566002366879880416347517800480711315630618278918730068443092337314646834116672870798804163697965373942978292653606544489793741294215955641324068662552328077719710927011265293394554972945371734154820941355251013539620679863175086501724891438389690986420861516440771390130118908679652499522834708009172390518107395801433099318627108712641844934723387375613861844360708950332429784490762530621035280614991596772949917278082370101965157785816542522071556663482887065760810982012240120645263966617040466551499924870982236422838771825946077707584627416051595726002310864576039895133070238919396231976463555579395332664884122860949129213040735402445647120886833155664632822774728852254077821708881019225372433248100377056749862135388284315577133095288522232321646153176851461400601896779172630835481106038030940653541101912014823730823480504890491808387993853617841234300942068857157515897097406784851329901377639284686403446167999123023387603999381330186839290305624483483558427440277950105674601889461655253779291891062958314299988781629484150696069817143862318382149154491078145341469280569063762411512820220320636547223472314880328513860704437969598350216668591829574318050498226317166318823661997437748618372886780183814450534153039578094668868771552785831963289590218622960737359599159059708868569574551294883655425497546760239346277560408467422635401034927112502613339201714404986102881014886672203168734371099532348482171344536340045856420760573874236919367001537327068722048636129029809850554264501521254460305934666114672789386139163361679783490099409657795515233576052231606668120179958104365768412597791446251250665640258470686125441090983410144847197638155033705115703830881721101979098318221968963231140226905077065477095166420121714337089872124196574774875627643771394884823571676894259762249454408549726133766740891696484150007124132877567254859351516362515604056583482648096244684247896564677521387016975898736933314767379425645634855120817362097815906363450211622934241374619364277565992998443872820091554009649413512169050856149517346905456963194143201358598128912596579564466968222035384532878724838384724838826956916609998551969994217987708552665541023777815261762250292881692134999978725232932600685265196744051899746128164446461431646621739116757007027486931778948398486441607247061034403159036105372050162015964263624231998807549063124608565869415025531965112779850075772423226219589494243532577146925658138549086199088988317049983138485497900853322588965013863817119258215905018659923615663258784005519529932590094027877604918430454023567026235076397967705233692400346464086886384946583877572141594103345013376357210081111240990830866151935067466967687682401814333322735530515359250902753268074274039959889567179120304444311655821652469363212938502867269881378124758286475583281050235084126665245083320123300405623217974817567336654638754594533819551643669224767694866270717309394550806210755346262899673519518239352648708982202804529917993170027352243512384671910769998629088277886924796137061568805440370572368353424595992598770364262892988539669976688391769049519992293074515373174368265779302842188676325260211775787961897159543108687254084053967653876620996148429652922853278419756995006073362187519719385667303216538838177343864554621592721343042411037389223210750017833789153953546753835906918146911943290219208548726371443698298330604237941102048979989305224629317445070815660287712045223464577283651323127165682164161689803266004526537513934071194629768868440741767384475432523073056077950660076508370758117438543788785250417646835311567946762995267684217103235014055910344654432326622691587084620988851878156168163851328487906888367937036129674001735444817081392249781585873317482408087936750977813520843033860679272908898939943573734559082645483413210892584395765566470891610380255140857544871938751316442579430487437929022870727958105986894038245109671443216461156850782197049277434980015069595875789799668041115418697288992022918939064544533328445408257758705638308890447457847952522232976096440224250094424661961533803906580766734053040965322918233492049910617830353918451556460425026373791153020620314782121460073402440048421485208343598131601872240432763930054176277845798147174732226396224965406374369438826877527731707233274290989381562577907204804059488399360933034418958200407374725651910824023030826385612799758926478876586853399414859211944188445961919833386230743883282531240114717884670335192210597630130675563804210819524471094071685198854919645020979813222780093118368914983549942185688709380167605372488539151708738974640166839824839020485675348631285470370318340950076399239226149785613513228909176544345415243850279460962792605716323527229461721003780960293151691270313248282462415448729120764754857599904616090377424719529176630847391182556107982837914366000815573577257902130789789074695376154230894222258695250180105527086475960397071943355628150207181823392950222666492217034032728153056848139963728822697007314369674623278387945956802555955567010903068100407762260194880577744846683432540075284024492387648059443539691706629449052266683208796478225507373139370904874391401918216619207262793336448707569930996397555934118096651708016929765291427095225475980077374338660882488220001706108538053068663657289854713401265562613740061973091109776333776888213893675235397646239595505929639749056390648745819449302795314889999932896571118967689999094262537709243511504822778229287312953463955152253214132433012974744717126043021018213255968186999279958256564083705286124114987671235012791806650028956446745766540147572389960217073231080540423888774566509291400204002712735123941152208287034836438469011816159725764913561654215466375247233950758103258270093480483294813837978430078118162658932533947388248878008539671295110990769065294593420327372946513856736739123743992815183021745430665180667897675175892033097602863486364647788624235935689045922026696530681662716279064615759761427124145681800268072843500989740438890557548457659732945176177245588156078414670134537665711266118028579602806605120209979102696886510916841264124703751332208149522419648177353265284354084800812003661712022984190472496498097057961000636624880916305753186489789062768919506210641608737475175429550925231522713305855112805995685817333714591723712093239634931115992506285599450284842881531759261340196158990825357895531236432767530642784115057312544234457634089450751267772899201524333441957748364672026714587382378940599697523954313154746164797741628093159522339109337062927039456304181174004977437787439848110725186495372980051845427413041820513051238111407863832979318573245677841611381928994010937151078004394133623036737527597833982914905209506713028134072196675598419217252093142583478348123423040119057029444511239420202726033007508127417176104263438416000637771691908455313208087346341183486002798166326804422371580698563393963370305840316994756697797937327091576146188642358085350458583412745774003836873135798839994469353036219154701170974844827276817245013448864676176241093266597595764796203819034547802650540417871349479637872113823025368692627126411089013772990519129455012250020734157374043408852069078089401491008123083203399929620731906631001360656614828100780803529612931646198597913107205758469693227342377524523107258157403863867372307110301773334593941418071960192519958443874116428551463174345857094749177363025082630273640980378225357125033919385705938819250091469879041773032350797861868428387886766269601279481901139217929871396998021870613957437289528341054817115154300255797841869903747455945985907416310796724080693796271707211957414351969600131178075568102833605591351252402619335659510221575344260408433888706914431161051264732169161347696206306170655990036604506058654340673000478319432982280690171383016021107845953902958066992718319108862609829585517914337187232008341199644248795453656643635038379133674113625854561251276194910772737853618250398292635653369529267370468641781412522436820351693813963816927931925359523200783817740334365322027516407873098491004844895810418495575714965485626099483444944686494526768654114971417110249451929728275332630937375060571121147931034354214428874304588284108835159589799736224864903323428961545830931060684200146992996970912872658989915322588342797516094992638346715359942814177910037678227774145956903180922894886214470354961844127008334690272288703447923335588476071386744291308925571975367716377155884440694029567741615419051717066802669420124643488004340871368817110256525681025883696138498073621807912984534340688540334353694416601688897687367666169186899182810720062178679330369478421384350809539462717315850121307562931978904186993591904374958244647320123242599375242850150311797907264183676295460014788095502124940437726509482112601529519690380321757832205103435497529095237811335713780628490466089873280921272235126036192847795121655111839851103724767252288930543229605513810320601336125202924551745843156424332853113757409360887593436598175741304588100075291861657058255947677659641022351057380230491709516824518148230878583733298461338895963617988119508896704889102243863678844867711752040736672089663187401285044940082237646401982714397369636975195667398578644296231492345719446098159120403972216618509538706905999000538294727217674978128680218888187271986431008114090380147075923742443052668887499668835790276515147614231091596099436182858121845914600453013022082160594166188734080636741871402096775204540434409414629611187209654585437810223578951386654340883105419738898829343745191948459979937043428650867672586662868735126495569545273626899894408037900824663269017897549871920047011856435067341547562876627502157698457446490957385462227366948226825577298595932165042106715038364150553802821833492931820076672996048373481349728632511100700707735353985016367713635419430731962877187058568765187505846201205980138264441657544685443527958098890477728135044292730559063250607779478679466060845156393743097056409686240414269069090807580736678415562718190934798747321825208179132017872095514676641075886599642307875120909733764197051410133225469532567680959425688875858307644794393144061851893389303133297234638703957302310862920599639734433369241286992835870861439681332834001730279324108243609880505110060675519154961854000748835035005661320851291808214239337892469895878071743435324023254252043444573871847260293347317136041204803266887705123667410699578960015608532358440282429249846826631061207302472367170403854573492412244567807527404611509903356347669265002093569914923433284309010777914752636299649771968423888765222264525246345938801295121059068129612711276661264935020846080102522909776220639447946900982837933075927445765152653773158046454288658851036895972037878380282136631996587480693592559357068782427175319105755435257046568564812719107954024872553518622790482566942512772104676842362990116751417248682086596130112777890569260993666589717226604895598257429023869546197311128343032148544850879017478024187849124658384356896554569353584948428264437428697564054477947925676249097195142753225284875895779219019653077053510207439319864864125949013569301207165867505238688260614654127916224693576796263118347195673269225025610643266409118344825371438666685275798797679596233890138576210679843587163790083107726070313447905490742223147266885979492573281476843330878432875988956729611984159441753950666083962423278895097394354565374491732575965152298838554664818536338520139726725944438581683641466419605603946444210386933517135196934888166186503049576220297534595625328813757142452342780526657223684860536097373618471135751082503307349308409996154051371487840245838672976107492375410559158014215668562342425165366886850998735265951874428006302663433477578367434467283540635291116924836310907804403372660993634830547891164574892895316307728076657926563154680491582562191765749226431576572329216799060041247043306286113523473669602180277231317970768367931688823734508361251083027577423476662533005506444015613089409162586551777378225656080326107467567599034324134146254550140156796217749482874136210857905753095743380073839140022430842953855840276948367355551940239822886121092249403728914882688550885500611456661894957890461405867743386428794357113852952860765984658323485495203894921818585130250359124970959114483394346964858547232699100977096101864403647275647498040407071948374227295218801054620552504928822686908008728443911517041712723979657071952298652744621097626548078502949221795499532394901811060807446248293604352374945292584918081442801257575658647586421955858006495875576525041108970582009312542394876116165086223559758587206178260398576670281060960927996747181156436530004522790164064085580773441108136812034183920490899477681666278458279959910104400211102169879646998759143074824928985703319955887187085889178410094482287087456900918791471661552746582689658451718433472303979354225296156524135266746803759080543885111605641715002608881788980034418183020934705627739654288334071424510220410654451024888972801694877592789039267715731709743301396142284474264137920316586524235755911350006526489777732322427899809057588544458725443718777918497232897291519350139184450039031931760304197193238510904140768423347317446995362422551122753308298688614873961848384972938559930109905915204035665334360389248979406490002949086000949886058246413716597107314010446334158458697004052517848675783062044130329209718219385524314543281675860825572094002803172290150533739074658884671455762965278304030675846332299050552516406208900350921064554407636840370289819716802624151212516020366097527080953884375416184109707241889364296976003593948471554718476813202240135837055880144699667905820756568477034325283862148349736489799384101331827898453078540354712699151230731024673810456348756417489618369681981129241329335728287653755802493888989796704021557001689614896143786332164689767700500774070255051552030531822921621707161896195633942151513311042748492276963787801803621478742744168992945512663860699107762493733971939830425638349477252556352996315781965103103440866773423482344901516820287883261239418677244222729052213334619488697185842284491197256089585571009091215011003405679997340332084368766668040919547835258883571958373731395363838700385339184241406717047818344243023237025009973315490336592657261591575774588793510298970261616397192018178189507886986734554382213499981308834439102484698628947945101588581258607984130178802140107278512055407263752232622242287648318087252468065591501244555669264978513191445061003601714065238034740167181992115484124017153679573624739747181146090970683934460386792729639733904654604677160919275760152064140999182210100314173894688687915004287764180683389368763132317147828251439787960853736526007081286874455182033953324209122963760941027372110724768271103664038750583331150411490689470725268246586344200851642266419618757332402986518607422734187494688017378479487498128168411345132295256254887631911151596598459618377993479154766600879670276521234867575551769343915653697388515887402644707391943645428300273918972856246290569193817786286258184090477788032289442566256252622357043717328071537556845207301071928476136743714756482724109415964507600032258976069556903020971396543678156773149738340096214750840429953021401395839263834720952540361681998949673802578710991812696050906087479702161107683341198638996881881526017355107212446378563546010144654579887695232389866733093412118344018439185057660949194706275814800032764840739889762144564879170054842536053814790145538113194278530852982748332794840691434471398761703182404879288199029007653362737803989246778401859296179471139154135307182238125058662519586367906944382886120788432178276462405683208055990230684896675193513952381977108887125577534956483605612571264150297612676418098664432646260436143107693352531705182831988222026460480861694724369284131851359720499787917352911583991835692986989400330655049601867307682240221552696742718415154917329038798643066544303912460101556103059353606292803008773883104985608288297037201632856489818409088689733573321798671756623964086041324056626504707329284507354271995790317195719340846538016393310797869431294595949966183340880423334892471606034359981892742545982485965295815542410604966262867294538461247404270615074909853888880667613964378917127081566394656710019446197545101056185468147491784798520633752773996638824974334945887664565626492508899736046903627219302795664953184778308612263454617977799855170043653912280256840045623065487067391175251891660449740319232626044829227776481467355763927341654239910463866418423045031046779378483584331381371283367912859989176154100935272204321766976468373554054845945176026369015991086588118647180413491950896719360844884726428533245159945164082516322063924818654521770425908550808080711289782440693905582420184223009704346819311613243631775241285635265186027550595416960029159016276538127235088520358929028348203987349770184337282351018910774800433388803790612953970246071933245096368295807760402362924962525660609894629835274890460980226645992557585297998136706099543752802702602814884097381001212099006339993277947181523916858912622050998360387268349260019408306680407426562460445634495471270060176953110847371530494478492943371152768559635832114311357428903790325106181986356277260537215727087406536782169357585295511318018905313199337773348287951388362191031842116056599803502405785550273652809028149648806857243815076410051014535197640512213022083390731176313716666547746701485525516097081501303155495037628077514000062108652339186376905351174888169605709969201256487800026289657346584799835375919096264137361443368151877832270840261326576700661736296238350559698356920844460198982630908729119739777060990216216559108429969674658185994272231324824267126195368690586470725337409691984756252531679480719618007917630854394016605806914103202366980444800898206197979444942077823013787640810907890935551519636484627747829494370365672578612761261604856929963069804555779999293879325462705495674719396041466749582644003718454535310341210711614301230690176146849481846274834141701337563169306196933990371061323046757425124408044680508598570220277393185989109207794219194958650336945379160779339145970592474770775553236359266356510483638144921124973536304399316728463935078412086026979020948656854868432715197964711712289498305656528315481670609763546560193137556972005943226964043665203968114158174026256992117451213521886206774823382328948702021584841072323228646593197647733942410008468483346479046232216232718431194801004394628121463559146372538100419842094683165915678256137023983503542133286196074297492920737161745301870796124265652124401483874580926006136249766699607183002391272637384883950724350082677538253991341746943742764060508746266336652073216617735377481933691205550011239194444996824971464967384080262479887136147694487768014676464039397637124384323077813892437920773107466137976262512142795113929889360664503716802031602662141833274936885883305981921739926479062397521482759648419754406961823686845238206873356596310666256161749329267683301090666884848517702293643223955246821493525000750611044495407137640992566949922107941932691333400508582017036344760199262441665555365013690138339536700793218440783328253426803860960448895868917772475975359368034434198811305054883962328602552422919565635497101502486812185940514739936812614036777447740937795009691533778397007665750035486458015276458696119127901483819269473118607526540302516418610792775868904135033014973860279580344118197395298316401464508277273931408420535828032439796691532688780728070117410201211344628204440685941636326672178108168498661555432930054000184006113603487997015443115988134814172662289736386637057523815144026325150500501521552606295160224843391299380777713639567569239876157499158063857903647935767258979308709060453353104837123317449003664157791670841397378456350566161702340448651115933523221841940133830097465296125879887152946757634805062536339649368135857626152859237970947819299692292504740850703187816603297431896668016772289234892404971018070135058637371119299535445496012726745245740906287773014474737485845342500231727297917491320023084273987906840631078647633420227545758791198759393861112413601187279175529501917514453391582084238773401609116279793574568516941827388159867643109033274217425951010581318044484403557160170159414821861946365353458233479638205677755945411546835802965127567204097146257767374875289496584052105178717301244354638737986375123187930102228822201696514247482675608685382197058274306937023232121195765534785421721654833070355918846014556057138862496162989459431954830734067092333431399896147880536820211393648576146638561164147628223096722997184740650568833347326699885162037527662109852540458460313821017134923648649758907404647383556204659126321772564745480893405698089517470922124374588770610902108144738397528966488548106000080688703611288970700903183620900622699174366171965397389468453283263787076010189811812031665417400109396767255977116444714966203454405243395263608460128139576792394222203338151916782263671437693342496287146621357416124688602739488683554764986699343028276270714414614764804791419080452534089102209087020877752784556173763312105162003353139265039902240991645406963754195359029543526348582129320746493235043590931915728995283399089368799436395736654103410306968326547697529884958399040529610755590119528825824210876493642318271746305564557312330376523575621801040796024539431220811368126676986161619951561640334333369204143379112845425841609011371977910914897816115808292826966297833681973883686492172351128784886788276357575737009672578040615953243041158961868379088849257638888870246774921603337567610498162049570351548370433794775112260841187059083851809698391031514683925596873305349408713264960432357703092136334306402558035695250569925651423668669291295493790571217291188715622167912415442187150162181853259209065584513505265202363174151869821425489456310531169861481791364832983301380101049968835529161048288628684633827390591036587053566465335331573609904002238460970790522951237237457635037860945192939153651534690814677631664033721045617041552513930847838667229639971252706730862051543919133792660009599232403635073273271994968939730485324912938959543025451039712878719694403183672946933552569630509647299718462599544208585181815664664764901721063020992741938914500347432812504436299997063348364695370809244074797331738142577579000964743549277537550134776858140730585957522897341567396406783883553443156132422692975919905346768959555521338503828418213519891684606299150426305701438960751669433836854502793964139916810143416298706042664210601411049911187125806661364444938760729789167073210185900476077013628062784007186806424039202536695752188583804173387750604557544529389256159268562319222534867069753156148064559887711370853112286064724061028818286643330120406879303975134131161695294989509713029054056612902330104582258748931428421682986934990880423419253556944195657788534187411352008132188582297594329166440314246834948036369837067659954514045130805819343314150205516791194562424113902894430265358087214962088708731273828813824240572901226614308762089192967271689600861870242462164552616085715078780149435394227276056134776445621895923537676791721578362306203437130409514137608952541635426916875892766509218068544204694771290417181698373659428496906605847318845309233837488553485859454462310370199672193282781366823282178957660351268665188142365375488304477620609423078210127132000312336906954401003247597021991989046293898217478802181380157667355741436109114851695539737369381542014640146103864070499949700289020228263975663808700689970640476990405127332202046575527778094152363971623185301260566186746103243392719005609346697575491073119084529564112959467277067519844734107381894045859368217014018643245184522521848870216437830288920249577698281222565386435932972419904750165187746020245800485892374528937134392595564289134521107205201563028156156679132245505052239415533348353499933819275092036202983141360521790238061304678237056361508970355363210465988856427019644299446885011325616997286346423607842201862693905969325632579060153708301416465034454889806890546550843564043876351654940531934717925398006173682747340894208816553567232180466637868692764863751153359996637170651564247663646302376123564252613462126184678842122828301892234808216017923485466782609590690451042826552265516905937245065851463545485456394358841005119123967788882292982844219490453054424452736136136273872075204051395598170613468906879669446635174841627771383880992731314791128056948410564031681442146508097433397731348219774913407638088589736214665513048856997174310302029859485639374318546588048141212903549817929345270818831811166021675597378425931303547466927376489205732396991557943650074582924683424551644700768320048281770676760346964285737221489426117845770633340890158726887203076055817429420584760975684193833571204784996488765518031439917210821588619434633266899767774536860035260368172259804204487028446325049798325529805003948358991901323580342768225161160906872788420766834741917037286773726441969467671813386037465059198205698397357417317322471208153875539995683492565928520393865123738601986209575391101785239991226680555751429020501500966981023515420813049908418762566764534935595127559265846486032892413897876957602125991262409526861550992127734541249908414181763142478779473319358406857968738482040623106984633011622242308041165692233097884703193603518627510720865806342189428288382613352821391019631847716443208204958050606525322836359364822293659321739693917493676039388863210824781968155611856135794652824180736872926638320451833144110343384538564891662360608448226728489921001457134719090634074282369443988631338803099226954405513333948550293075223235535149935110977687845046747001435590769369519578982824083034934433235972836045947332243858576393017262673737898065186942694083916977314724063221381182371412277139305401300362873503441934554088431200838785793692522120400706484428985837539717870028675201394615167514510192641900467434589373764316350678082889955198713114851846678001955798760522689618835400527134986859076723439055163959395201720570481086908975484718807134178107399538908706731386088411130747971503429593253853801433435010962858765836331810645841366505556426604456036488240803018389686591510098781518129160651917402698038133091984696584059141230677997985326386889304408735750495182417154625565790692719733099924046266680689944183796286568712612219213539281268675976573084315580387592273955636299891123936009821122387962839040493028514665127183322969537703391491541275184320037776604057724212024335004211877541192606349361313569377290917770815388519017895691519077404418894852710541973683461650430237457927143355768089121981588185315842410740867461067353472840385159565854418781264371887983674397652515326377874964546588400602171992873344724377995655919081857150446282078108075111563781628871001462817643898503416678012355911879865480408704393826570627196465416499616198362089529734001004102788154852553577775150046936092370467613420511763056742480946847181873481435978559949938184801572592973559144097918990886077361037912810027455635467289995790431270650454880113342913112336798974384863024870952783294098681150284039441631240743551384755448260545198060023166761808612621071152648495041185166331633342439939620443516468004152594611502140338474671848845951283380620056353915871440879368653043558408900756007308283105552426904580673166779499336400237225338274624279660407706265388516923447280162023469746016901840121986865582518765667142633354452029671932127802177692175848263013318288420887413835024734176597412724366190674161017223223372000509536977967855924684478199222469472878537117622253940355208325961409047876344989404027930026328135859848128657521045096745678609378375370207080308084127973319600330110889063987732555589770941226890443478610669253280102145794866564661567830894025245921847094349256732670763376183671732964791404421749578133174943947610933392568267696657058698550541403447034578864371855353312569700073734230258448582788577985686457287290937784134784388045081939764791356151043603264670723196607399259122103263778546040066571392444381767162973758348019964225880627981686398957753065210952844163682276944932918849424878033959107642235543611524685825730665364931657274307183607538712093082021851658726522862990502194697108167306905083703722301048945379859262811378742831653912507243634424620154794673171060984106523590922340404264897905639670250854360299619768414471095527540526424499444633715560250772901873847857370841253247563470654280526602364424541333777081734766000508566738933951229070180822614096720686798276138526829180467233441980629934696316129289805992328441890360735972043574630695860606638681086629541737805405621260178934640193008957170458874317583118299384225284579466182961356322840685058956498087180562467495661380500629866719940991723175375231685341686693415739430253795652498290448468551552669515603767558747912609430124192041493463878542259940785599712154376078753009094029404708322547263269756424277369270296553842798069572797069565946370542484118725218430604702716795808128673347297862779721194463449367090695236316798176132243732407605081329301578262545086262112573122868360392384044468295309274740480455504317463436466307569106182948544415161603740171839003097564524829447602831644445570981411238310020081864806244474716007256798339972102727642976866328293790097099034582708277130512835282762318611929236687322832897635385033122381990092646224676417192610147322951831256394045259551414706036236309896343955851167153585827266406605158026965853961312630668838345289182314873735199636561051159442999450006176893111319643249346758282189115427407085137057837978903617666971414095341579733275282414732615860133097801202102955470984150955962584298006722588476396539824557948031781418944397129223144493233225721044986538765341000230328211519498875861955684890927943167952965261500419888186280659365558927410641004197831820789516467488844953813399232600949385595694627912796261766640456613885704771156011726839985988178015343172076219917901800961957597921578751483724253657414515038818319705866272751600093017003961218941441304580644503626081820241886557023645290676633243068140378669891411164460542858414440866509415145745576025617893693751442873527503786245906707448027993442734130019915248341706552504586200096248268888042428682610064997440586303878249483060311375968559830561672972954297006632835472919538139492915607881107406631384513461492058378241597660920655454979201286973585232243876099454061333304511277488397839486213034647431937150457193623825450348045815796063804533230778062916242389556989466897394905037967484008227285650795893442551524872600777192667569988085022932656476856924850987613261743896892073383366648809046175192380227312336464950241644320958551172135776760082155870519990682944441738003027180908470072408324938694056085852057483483122453110802909790833019192977932750471836945157357638219467011755071841987002647602151010705892293989284029099642580361698200774243379057382817402812354199629289836812847886811084221980863843363380916951546187491325128893232633074420886405738539281997385037657608437241885579456947663747242507199866160350247540107779436795322366066879379929464264240722087447975057414346769556077860914446593641440618056918529898477535795742222356829154862558323996079433910696040907933700540526137146570207486784460181681460379648800166737600112961486615217789898457640178645629859691710162367815187208716616625996012076626078102848360136794906034397834686049966166240931922296494346978909627391162722681718765275062605758098394910804373558270727048082845382485792931903261430557813961019405635616723965825124182613775800914534632636130381655407122786791259241013171499701270499648323545404479696878132601885310879117999193204517023082471121801544954427859072758020892426237827506821568689434730839481225777125149413429203636232407853307505507056907929741724376918926761215178677549822302705729640593585163688911202705696716437075656177244332878138051108354502562912034767929696557366198258548841662408498908692212989233998917560645354252696746891049363363222215207883067944314136662349814390825079157265670145729844461330253832653103664094807781446315570496456282305433452679607874275872512212753014715753516920946290894069014781875201404193035122214005403572789664997705209439163009490199915939037015566188982369463611946141774831423931336682910388644807617365056869134531486642521374079763933224731981720463890503777076376357464692012290775708368213982196157106395992178079711308098082140266662946925264091187905916813778722833959507350349515958104760045251439216445589548538815572390343643793856817429195197322757247707700044242957265456645136672724345148473538798670251957545774087071853826068771953453510540664720331131483165324957829388425380958979206530227081150956323279619686681637089333548371048330606231593802571465671603433559386592302927148451122876201735278056300810619315441956537865194846445113123644950081927967649325406043560666817234976837018778309997855817937123195033233459387001513924055197412595110281774417728040458408614110797895172673030051379131801610108049725947709570038281007620844372471587610560426508432875093708995164149625018491924909895085209757135647174233842785109254253849486484618944261353378476284370048249812468822744408902786927213904479071407420405857293566863231370691396612433147233484461165426351510861782956972229749412898032154022530866626317830746659101519848251970225171280237104659755708772783280544735383480887225686610487324264746359705163337680212891360493807644776741172622076816892689503376100196277494836421972116917535033001940138991874199896297835867968122693048624245931726026494097670266011533238921419058249812523665575057992066788348141881103298672296458999764042419387044355226198421344615203886144158666051758330284259706648858809455226280386106192967992300687802277902969380671061005762643417637945789539969032543199097836050961964275897237495910499524333386812716890933248297527182824212789877398116578086331777925019801258373673680010897730857456859621720170821679104794277892328989736870567000127868031676767778765874825776734364346171992153656888399160994946793038044862396249245880848912325492752064253055180873760691489204913547400771389141900809302694710759472676882718633605790293507726351657649410393889525772854492571739863313458995475744399037500706604967853374658047201995654491906622548791763032505858009999288995480627952273420665322819665675349353240221446857636396711621250411151478710195946582579354375144447714636242475681533551857326689598897093981495009350901105202347182890947789013866800187264192716507399237541346929988224121755720814072647414215897107291691552675930356415931551619172835331905773316423588530009264075579786999125456954862723417506978875242983785285436601863291236491428527378642340467851040987493021061751478403454984635784439295557503768552010447804815127478405976486803735982546790497424879017372462609752895695119473979903477439116358679487717088771943194791382846388436381278007089747113043759573628550128632973978612343447844888951665867552236459317876118451368276481650707012761586490989565559811577782908653838410461399722173558905576042850480722314498686427273050910555752964805464318607948360660132686939142943882390945487211816709669107301465157566388866877268371621815747449090918558652189695599111584074702264788163738173386047198233316108718867915832185847457764973452971260068211415245540575449428150508886117090502497990795887325531260834319875161911262339474716580944739287322077563695452156148227656251117612450190790440725879258010719841235614543016366269817435775969373927252407826205191821128554524399360868552456430055029175122577712892575721927160254822904319158624749639848677587251109581147315689186502426475083704292415331164792615050977155976716580151781256035164377081264866647363557405402748696469413983233332245305131437835187757466026063822705395057591576745198453673615219790257117851094496308471748093637947462923012950778915469558101259024501607413885436796746896750994508158614292052888812527338772799608054007091405307743271203653427062767462717576315311960552602914025565771482076370967726381696194650816149371035358415654086159078534093825996238854767605993499077261712634683606681030624714090840157368705693574037250622976871493427697871163043995819381303029045499156455939163549630450594619150329440011762759513882576655727237137906208376741827089335576499583195092396612966605698100039468758624520092739191758547752829542966810644135667547433263558551568452633413934030818419674405682673125466770909831182063938867387250728356793583954036505860272779474973744229268345281627025968844029507121668393119176074241159475228691914377991989284937301742514868528174682132367365093309856991906540547643635154183954548311042284503604923334357827771777802350361294113482063091761059992666483824081639225907560198054641505371222743490937765770595719499457017249133076180990139088865567973544360715702022852135596697391904290503914349447972464837214656315304039664690595267318451038445621971555117790336003074876726298313219325575568734611923755689152005564485257777251579888551845711116858915180878552888416287465874056394198968762985626097980792951031064836070610897518584017389368573940677717020374482137886660317535423942081750515484134240286776366226415518329427997307239355791089278936942025701115368942440370894951459332170708134665249147223571734110992410684870335747926285703174552227599859849258874166685084776251268029330416846365390651494896149835411670164502624119202438378642547902486401462144843949934627025657032147827535096667261190953653533188315821923265269245967667887395808662631159407487312360264312789475200749438348015607068963625343687483427687716222784741393868444377956576955989977542504646978410655537054608380625019272503464365066192484688609367610922913412244585262343195098445280763468764426263996241784921192208576314727573476212208830466195383349677486248707786734901456622895738337602306850467214248432858673751717369479230558407609803302124098215058562094464922347602033154269984985643164757574414869443588596991806534784926693040919912013152862553150367268028677764869491353591018473580267735552851132435978602482613006291329374938785857343441819848584093162497193062678057299698772017062837200756625217576444421005381010706537264511243547271500652768742617324318761504759526902758293826045477449284055129957887902136516986712476505787438732733974117647862040005300705106286189766116557093227122421905330047388921674209744190195224972456828995615007024337241622399711569917297609594243079269658794409468277179483726484680068986721659913191366928824589394376039316681925918603009439641938268600747722815181861620688190960396406482228781887913532359215728389982729305883481281221635625327245087105489939091672015824194367019640448217722788019611884480070687088580385875384572058276744202346363549433671936866679545550726706317912994640791519961693697971819824558386774414118068200042461365293767571118899192697498780826776719237817800384013792330514241225909888287898785857883477271091402890710191964416308751110810183926519587223138566486513778943151425876576963471386651430092782303291123144119697858842485467862939258752712269466583939377008204347021886197215111108796651750368683929065171191609252817724406310571053882443134282761741657886404231144724918207368136333424787151163188887913121857627961188981984492902378177259287930555281234668592743863475740266879007188938011831932546949477133511270631228276195456081575399590573881812094531968084887278041341693945430573805696433923020754862866213064620032173526484567497365420568814961136949283895425971448773051041361039383525652614336061198817627533638702367899173671593511284538686917890995475434384924815924391353222170845019815716976144555227194291874041520612697455579094467750328688202474585678187788986317655440899829572221022268130192206206411792364867544630848852125634761468468543828666963386305619006299446779861940149038565434512922861170833780831761159387463690296833437292695390965584254552498717313098596595288315380276599964205301918615579623536405140243153413066801782394913473765166154519400597465267550829087600507268458626402051107504170732342738740411556616688258613664762603577203214538390421489019929972482518399314291844936792273431802100401078690399591725273533900031989519808246648780310366373405099251034966533552547937532951484899305190377196244304233709763063561914772626252585435478549774361225618712425732972272244432294748496113251119942236328149161044940675443571804502519604315220707669385095979375029788665496119052087014742732413940255541615980717832114974228668776568608232251352879546428609377269798814051160076543121341335938070402847956259047557105405735613013834310652262527327930642680212128176559675516182771012430250406984796165041051836262404499510399989208366043212515008546396420457925521734675478729740580690363381275931283131103268374534587867073774878501836564345382900195680441463177993568801994063279658553593849605136399023624807560207135088111685310328392809932310073241368130667491263966324765006380359607262713231794103787446433356230431480923590699544474467979609810311178270545158611566664057296217350090347129269979418477668849631595927192202198364738206362911498288202568403808199041683064376681496872254168389890852824180820114876823426569515441407799118760742318617016094297232721599949986026258680271083998995820183546755599322569299115571661712908395611261179526741083340849274226497098168206960909766492038961926602827617651991300905372008727431388350845524201408877210448101737075775305881310103873422941177430839967255712562965227340062937762213716035502019625834095958144909461081895838691577812535766206378531510982210039242098349738017546956503593673474140934264299291839330117662003111553776938235147342083989198328367980890114379432183548534875738953125879251660781550467646592797972751119881259301956717488876477556770942216531276160890823530273228598212745949424828056103012415243300693950113307630112098965521699425741534977725031864412883054798256726237589856425376827188292039021930803178821867417246124860300133725311110684900824090497385037875419735589319632295277686574171270749972206810038847633234641508889973100425654436202169204832718470601679805237819234493099516956686346028032893341869482642313618893266249886666887379885432388210879082823088749321452769932279020503230533458876901154389105174965705510268554431965499378485939911377095913874038661732156913841725999180586787125124131872585843562416574389454505399932201659573761887826431113113513682274231994096304390760987772497072381493738682990441591240558354500664079160104791562363738886975980766955290592579555541186109571082647552591620655167340353466031065056434686344414810228692983425940005804548810958069809363430293767721071500484800697050425414548501534111870092809134295997182274432563815151128727936482871189980481528430854622730817671717127742314729527560794472548550788466269867334553512712350859249790959768540760695439296998348883455526044902455903547672731313040535129512559596750218836997880632436545225750579979599037264608249774329227191404932351355964049163222632443755097867595462063057712377865213756033311990415854492980525189134243830426556832963210592055791571938124116934386267164273265503897422789646054806384889482792090436872389868586944564182939435225522763403564425367439774243827173320907557177993844065390398966619469344307328721912486793918434572383353756057481851167046094958551482716669139844989823567231273469550915032187774404339953558648645785909635644631838115316136577969986755637617716528018592897984051029123005464599345589371007080427668244676150288121702174162316958793499660333380702317914791788347623254743739634377914798998211973702118065230299378661775729839382199902931461287369565113389459372677138444182518212958533342889429706492453563358524930761678449808394791574330079570149982179080151667596662492442711193668888547104131840710545072799610117550335484054900814230103665601862866731521751702285934208982797601687547906322429113092091344771368962387764839651864229663618106100331240037173548970378300619065877692221172571856644524824915560172772383089805558937890138336887945918507942979187193211785034219948550104952993215074690983289198257320080831495086089055301581833479048365318543765526526848363423580354044203245892934074204420073073697203845230579893159779794525354884330704626657875660915836102173696961638128329741644980697049080371157553872121637848566329947509442229804789382360816292857358523078914022334917974979045546603447217828586603513657167075948669362559494188657162146408748522174093906231740915748384348856183644407762885392449257510412770595418914196564269698358903446320454420047970604823780226345072401834257640426379981374147929962234197615189832833510743109991357200805359773119560311462142934991405721781535347415574555684687613488338522655477904121987224318757930019602676378213081730327103694482099149014155466628367124786889487908928038668286758929232629748820232819095390066790522752539746748741992609878368910202317418270045524593608582030384766780864709580754653399453227203824217078833411033938705169504244956309558615268208735561176763403515580628457363114787988567869620563355296445023118303688126051223615634894875566340675092800371393489469112874515459986631886683967306838750884409483349393974193894405922310730025041528849427138854817007788948541517589472357143550996949421288330397132264766316851709764017142306556495461916777541837999117903657154977740945833047208148578829890733176615151138463195870382072606238244380644595080421573661783080384303005800682010033810980955478193868971443619955547523570988276224135434737082557292434410193967637304823096350257645175020974181546048815792927992452511919891145291679058015067511171804904788854645910681068796045972179029919358213649437570204371064156860586002406576022380067866165778739354455332050195988383690635351770531706889393178285873588925066992772761851076285964146772588311134766895076092545558598425146139801703455268258422478752257377536861990132215676244188722007503513634469674089997000261496849644063865453935509223707504164135450720377883424378863072776998526547978066340418259460826906620254504695456695822951007044336431144115056062561150502354265636617732524076803135344802957040434861964301401982427683240120669942060547626773608930865775445319573893833760485925628097662609496295318784905807208416777077478596989087513042104764140360400213460872058643074041063048697422959102095668325401354962861310201261510605625917422146880316666754787560418807218692918843514823072385173258507437201730558229373629146937805001179951023911659696236215971572899533568752598849259189026683831217904930468791843456389308997925369936800031339071796085964983735992374428457189875155806308659492548047301626202897347305500550032130841404608873198782237511625354830395776208154743769505326778385114439629598768521722063323967835956618041243033890320293525199663709003192937945379093617965710460620400770776492293602120862378334714706753330888754922316416848970271086254681548616045156885096090643968458031943217377778030400798942267195911203329734172605947657888181375608963440500131206911325562400272175011466158015928694959788170516067041974023414695211665675382571455917889839469118096596993179391578707551266317924932243305056139288612379404849720160760611348937874757296118432936750927495753532368812654958330841966229360058674774236482600797185310669072184673738494897062343505976032205667533812393513873605463098513768009362548592521621152462831866616502787659053990182379622624184794400905619343282893481676673835488895877599446405574543157381525028401605652611190201830261991610506373209361603867064949546621582162045483075825084618195953213426142582479929988207010782064288537322919934457180406624995303757795940637872516694410811219265742975651500250087146400969876085797742249990508622606545283336945264654255554458641632640649838740538346439147700379761483693661282923227272990652869242839745182778059543344949887210139808023559278174893282164823742631263526540237138037867914856543108224540627840276780723375928288939904148645176805592205005449092856588415620380755465719294816961108892507861742043324544125443019083967164720732039272170467014815609198660997318084028654749286958485361095867781515727797228770676535407973454687827373443382545958619084173320709104921234745366312328292613763725177723588859909744820424569976257940144890513555888338659911725075911184997024333307249889794541612620657555898486056158140969906041903279607214707494778156504756595793788927850928291140020103539254020899381206543699089997493865446404235293059660167628331869396311254205066566727947977533956323790629621883299702067643262699123405095633997514841452824411878872784514039310219323071197826634028949724689426567437502833998677232224850199721314375509618748635237199135824310760218260490456511276758084628085680720761024677707885402306444862642568217293356862610911554276026743926381963336643854485465528992370503020442590850692687931806415769112116740635382787716388351019774389596941540728707539666162046561298480511967054073428087112863216347020170364770801691613434049575435508247795471423131288421834976827539852851554766625151364834017280525757832145252927736539732597071828895021319244507895687485988246555974758076523352894453671539646895623804989621875453877590740857672914683168568042478880351962319899248876926805158520486588891255532795801041104055888384260507281440696563811951241573370760995549106598080197520005949487454865764926900290214762172795959090216199387342023352177146249814528231576176607582954979135211427210644963370031949524381763864419635305092660093832092178270654328709059160911410558425229584088105503830466264172489626724652483645250850269099211008997642643207099778406226274124568071977097573126437692158789906783034983097452154391589694133029518623605635100113275778873307137832724462558430591745853025621787239532390531101019427754939724509988177636705894307559658954186165683809863084817722504761449511939371777683180897999411150442079683440770454532726605444073916166851868849630402404661580792177250893456159776705208331429157614356864356366259431696672536491367019779777696180808045972832168246917741269400655404088156046292928424807457757842810415988032150783630642729323398402619221027434252357873247672421052881533604404152608364734318513754494317908887222660359128465376882145130392091921879923720307814833523621773398406092368053726274792093454304735535175295769103167323899312098898063156884844443774285116323624054805721960214642161681558519191916943413841347970338428925929901404105989563068766396353295981261192358952665513485044190748266266062836480914045328153871082837837879748498271477940972569735163631103070196010286794300897199962970662864973812922527125816313795702827372762403698278548926858746943341546821462528806940209382581418392950830909082102468900585940401317835283705122698199249129515647690990544507424897957805833790462919568541452164243581003692065567714167763214813524462760752644712636599101522536851399011072804216490524008188105499954535288814601574554273873981403897963196431270161876298167285019075001387931383090404995199371195468466916689747619349985208120925046385232118156487521037707312483701466176428367203753515899069739221958312410032718829234969875547595241868088796133368893773557868661838757108790233110740177499410242011416991567645169409243464042691595602750497095624169130190106319883178553631953901550727855360039223586000322780454343471262801155395334457560168156465419800299022062449956861273292390802520183348658789773009956809338088719171189023375962640962024441244508318610525701810425437305856316955834904380026096919807478872395491481784792458719786585355509110154898934021964575006831303953273610181265751171868585161138001388375274134819658016393507272938274395427385264100804771980195615896667439855538440718354814630441378739502043931134894001420165270666516763041008316161155394417655326104955778100013277624983525918265992459185270103716256562292324834783977277422135126926938522807759475890774358538856285003340146967231160439967196928369226836832386973174057502933359505378297163125828080850507911937515513151562075386665856928127696255065550356526846146207747002712697882576788099024700502041144934896314614962685372628229441591930375203284596552107228595162772004862264743954961949219386234149725891995451715969084800844407210891565906698155673065709022477948661603741174630474662641853870823457797020710273802773327455446116215374684711823680611959669309798785533527297301526576349045562425007712700943685311160025160299528455547786158540612034317695368896491335627719251692531715103690548264425558434764227755052479302915135172667755248935420319812784716466110099777261770639127169455636923370332593918254637648496027151954154928478694691572248964987056346675480798487930018701147873196546413710676958921815674191163941676013669190836309019545766850488612778464663687367245684264304727646236264132627987363932629627703754435652224928364491916861917352782204736822512398700619870002173338381036522921297942908071339373083755064863473938678804725139506023929642302669315221831651966155869064166926249640920464288930496927592444699636492886723026919277502241608119593695556368032917060694901508651213117852400138232942175192912791043780589215575392852934877713308760434610373617846987275726914768128743363960685088714428894382431679352596349703299239313394727575290333529288699146390949707101732737135435525269932551303747653776738926696020650282854457616530712915918427361454276721803886085051513938269274362148092936942876584990592070139468459919078575828204132295197365257238562302599032736453019432881751983427393703148090153689442390627500889575884480152578113138214770896055627517066458166753005201013030127783886348028927142837652819558572592907027690085841620458000883357928411702196379022158493368915605989757775183833423291853154042196712559879954462294048062223629149998566830058167996470042858698711755081795631085339152653825864619654364887074994573594490821245985833882542668498667871448462436266257774583331544267214226595718763770866192584034135557579944867189363599798966741771812807829937060124697854276987896507284867860864964572499334968472088236242741853115301191490355156383640028003545827604833566341300970535491919309978679428622621333950998152956949686015336685699833993107788201681233436474795700730961320155116299757386424360325216619642030635718117500188017326366656550440512857147493726954504141362704330979612215296638223226313944282930745060152941489434424942152781086775866686121708062850983319548832933448940565550756799075843348664758610477919347251931655272217229918246674426310753429082515537820083485863011991251705547254466066544250708955651606709306144930745866873982421907948639460229843193381131500066416091216007641684337960545511291144930208271220692488185370354771803085398952056699750664214858016554834110826124187705719634057140246048450562510965672945629831227198669339592960379869675583184018870755981455206951182071954838316499321036321524499175383305291732246673382967803419974248811707059696533542510126633334495259580294098730959884461991798604172222685096918362323626175273521239622162088007643408362990035132480733985832808566852382365607275724724160933633631188457966795186943490919389564231435110992799150787210263468160263210420182631396459710918659680742460519626474958559360999892021729074666453926263261537703509149625077669748100757594175412436035546328467530246179934768464302871857294963020212535895565252756717068963129850562687731779006019484389995722479492269120159630852306643745566947317233272233454190843708875955184497721580784809506566732975632265015284496822288922962612612962748236531536721500568529116977828175462239508697010201211979150444953811946036127066137817032956634975466151618358572161225431897538204555779514630246537027102082699521795840159134280553967047517034795520207939672165643775361136606349005337373333342325751212666047926404656337844160274458200243126540808403516958978813450114117993593484955871666607096896714413362886056568791462189643098144609295980195681090525718854002931115374785156986182267971376114368873775933770215453915698919339194750584975126963146190747430614601210394692750799991540033522966616141290974844380608990771873650589667232981539784243006093417979092890820989842349856512703285246218557029676897045680608319806000001837930854649248235317256921858456320528947726136563469702053004894087403566731977813121400673769349220754472495050042110027513078747003277953163208948067449160469786002454578652020264581569889471307023289407306660268888375357666329037307897299457926218228385079380470215807566417480104223550842232010008661711197773844197015823328958882969453377096662252140524364407367397544354932395507256063781259877234872268486649234294126387819423441319093712140729376197533002930703412474104844194740638348694574604851896393810966354963360390600980314951870860266844815474511041024385628192568595664175274887738377928957245666273636272900420721508801172155673312562617651024940620580334016559650462087406164594004435993342760616793799885678212248165776809461867104274876710146742110441434533427894265979395303654817512416669479987950599858969648807549459455792287791425550307186556842580626843654854524803056233360767478558377785458352320404267549727872102492547675808613017591445000120185372187942480972388533620861867238181914216749990198990817698239484579297945468560521856641052671676580735726623390960120712604107223600753504180010956904596348204681055126082653964777777602899349172044356201917134148064805249221412586834518293203023940346503806186764592250803029808251329553979963066072132695831264091285959371380712596097334045029854192787152641527454202336273869996341569590242941310319214263689013348303702044710906235613254087823233203815214241895971290180997145638428919217224587022075174167761105631931865506043672444326149693553480086967996865565728880532476679108386815958429375205602280256593471091587202714933128390896588601296825384291940540307205568345010854116912331037765918878395272218369239525212260698431483300009507659161047602409261650729760904191369407857472333709916410685046087675371831491023243819448469280703491366525980437462269740358040757332308244216802403558863092307721201817320310090806204856223345811346139918304430766143165092331927234653495990233943580666520948870333427835067977090673643439119902367146806567464933780937671742767698149650082915267503592759683442641961230599107126780281867878824710758058890126668698009719763934413568032470750619523513159686608043413742441350410555153010519085669313445809609114124948298757440102356446678403045628775595135909200495109624448380524921580896865125318726185152519465753061691921871920017062873154925307045928777531133625720739795096538192980009729259270181017105454173088959235442410208763778040661561283548230044816497338757121547141647274273508025852714206677008629644343611884202958221551004227906333652706141462040344885743713264381126986812465927182682671673312477627113456610503038035219826866580305620748338365740858930816990123593094911052496796825050894905625857409003826586657845026359149020510944570436495325266784666563632402754502241554714541483691125615743066839385447852529564124994375206965662904780644919731323593372411348145612023958683986875570102323937771721320996887984372760766130321735752093223378187530416170214482425789375317722852260207054416591337336340592716703123032293162790077350018022756655005271919447637509395410206027374465286724147409483959697283623460891605612058340546338400548369494296320789778973090247904547465666527513254574393411360608722427881221042968518855531129591101362194029467420448742223190544328003741115567599974355255791531699094330312313860101558956345624693196111364592456547088864852970444621628410723884736142309991534470062000206668882890055879060302580287284656829899318736358815660495666516222702458955527160717394056172649225890206330016822040060080458837022426293044020613748713873486515847153456816039590682909059974749032924662299868828321171093112537568005444815970616941324373540158453350615289217307167596686401815889306027456452045044005167930490365295302003894528251381142678702001727154832632330775212888956602530911705589614476415409717031496292408739765543687043181135232568732208443649892363326413238435832554170983564899950583526372556399855056049270619860721174223999157994154464751162382553642677391256761559406664512217984490776861710475523784732013413654585137423211579289840120073802794674915761249469968024866362690501872333558840889255677520339459319549358246666376569099355620170016674386414210381860597477565064633349051655096859089180320049509116907755838951233169828751989963568356630037521757801836540589132896523270076840045544724565018618964618572917719013548824308023252397085726787156060665459886718184006304566573541133612936380729887858234634528363047483950636565044425219662799879603460540176403948954947549021479749140818603946988557054929140873442472310473343258714306950243552474074234178658360381970909357450209542972739864411935407196415939534051091972279356648402895812509187075258346024267885770575752339426353512869294572663214321947576277108531947385544206293923173148371597079854557930658063838118656992355987835961153945153475380052653111233253939189631461014268540933564794687046406097901193395207513898298802656052581830614787124502936091981605993488855339283471087478109975099988151685266310694565194326674913069747635295388338250941965081195042281861050516595558933108679692391351013525447559557276604971597448930154292289235596738779526048629792487758134291155260561760063537081801437895420567518028714661942117793939888112930826779576842769649149469500173297745278430299826229556605962710673669796855363510291955807260383792424460812793567133741079421669167207975252445649445855674251579944373646042989167068673990108076267041350678543564524850604450573611086721035263216524938501949370969652182080919692239404940245469922757144187522494860488521094218640030351452131350976295660434825631164383034838391713631431056789306432083921817369450102362413827398875825918493247215348049515172683904933170151057968591783979773920510298208319277254195452510798068830577279641418886504024413622968113787894710314644979958087455059317374546009817760141891391706685841677641110878048244413919907144441825459706535697059001373024205739419195265676724197687697241189087788347482478212319289622011786652217387781933926008390587263477861984348355735996151850636687290593206433810271188937223279648349326326773137676732737106872157097902016450746644497924733375177303971568796431692058863668314612915668407453624599369892047151627130202117439583394701066040976862237635859267514796635909563035464537335276769600889658314290473188579350443275984098810078216795076265666168043537167524675869792388075389688878549544616497432344753048425454835558083189726469570550241043201813769484560577550766249281799305404919357939442024004595051027744314807987221241037382761901545567288156312666244851100490674749624526502015975309429766211340509857278120381848401264911780651806957603873706732350903126098718438950540313856570211949355494273318561141858699657216488855051643140291484760894595052233741961223884034244564504346605836051838527337325575797917432083076869594718363389145446065304670038583914900566643318050811437385300282564076932787297867396059924471853736831082655981360069710187782843152627939241560996244405230719115510751533709264993456864751326642540892247498283174368792464893665835725208923370949565620317317008733329308132605136227745878854282905330601097588906243715834919500880827042599055826523413139575057411298830556416484176969505537411097138329008428119567912226901291473246717670520444416123463032099266203122684671380018462465953167153373428785832710503847727204915420276591285800222229168844444530055074900415799233586588227949767192653255377325071577400461193717557896632760322521011713751527523606487719790930610700617261652972131529618493734543583643686068358447215761338860239665275505269864453566548125664354119031880908437462978439052916385252599037955547019342763897651122247017439266804775235128942630300642915760599606296040111835766558977099579754841107767548459706822392206703276255876473702954801421153589175107533627470025424061072675444935055401274349534198418416024210347584477495763400071579643814692638072787935438030266368117978988756301580060828487455901640786974502505247359257624683718792654971979869995527687472907661718999219867318261489555165517448400776127154033945626895389243437957740223762990225315675842888311720233133996070840132846448970944923188334640825344567947473122618389891456565262622642904466331836276615638406313291723129508137346054248053579999436126132522474027455930717154339398555911875711599826948547941986723897357097134733117026361643932240574676095679629266836686804564619624533581298271382446975094438669113272416233847070473027127365778028786125085987883458862464913441029552982428192554020254193451092362851789896828545210403585878582745242606625178803634138489505427374216028824109905006725791092071017856144033983062631388606821263274736104977584427773155472484979652542677551919083439785467278959668540557120118970041904724168659744456031159470209845160001502832830583755024405471572765963053945224878528909996385978254985690277232736921572840703061694130376856733161691864787039281713551444062881620220224658120960370739444023077371724204828508690818095583999893150058684320594958767780207216444012808730811832092203910680867014053406529654025171482508394114395946691686687314192240828703505982684717459698358307583016785342879516119827468205067869278742071352664483592902929340671609183916189555604086744234290539925542808500918845616402215688231076814752995616839392632633382445423636537002024812222838084801358627663512302548923704930757640466976091116114462996738065076135468303112069268979122224996876134454849801811996835208721897156828549529512681063608718699726726160040232297922638541138818080992714091924724777003444707691131812730142103698948765987616467595837616456128070022243312252483553270187574098116653735549656209865452489515750764644965852960292475995670017305941658104894787410874057163369349560538234426292683601618915298361828716698627525231757226777936582655612522532300346780133500060401110136763965049615789177366063144876037050399329070687398694120953663683604071789653155042556749318313281966407244795804036142120360852747940768324977145860125225353888635075302074145564919486771717064522106095034778331941678509757222635910897807500191484319096606292457406979408838288216509219660448402363013820322602815176356156653538725914019199297099260655952598077551258964801867058270481506316951229348860112288374908295705516167461914372013779731823096429132873196134695316372157153596669683387226404299874438989944602425920841301897667058891043490746600012091646476908698239180435395722713740741541879098601079527468212974567966727040425327601489331067643626835021866157915661908534997935932161038117082220129018147340639721086215119366018528160788345533647436584840267210471621831242552024985824315751668177610194914014586714402558385246241378483238471794480181575571463919820437448035725654384484653505451627808753357551500829760002174471196323225871440471729326495561046781711249280305721915066923610408107199338887075547245346614989725708479135817062792873051533095755121771526556924540378245522817698039739152414576085529160471884288648233308006696428495808914597354832764995330853701082558856987058536657001990224885925277574284470986531500156938908197421150595047033976489136969319250691981555067914948848472613058170418779182276673368899901199013268748338601576518962133263782119890137869581338890801102559042422349656591579401437369508290499921488391515091544651815293449313415451119087035263691542231130434265451483149014142518572665518830025128005695792553133893297277570077346272272276294858451839121136852479904929899176978400581620142731735503216163009153119315496790267289448466137485496887971827651504863993781148664815506870696689283703087621574670501177122550908248766776470299407816925487146210695301297342315017887414339789310708815038508870083684119353467328400548166383083279925027006237129351722994602859537848288085208781084807065557813426851708233324025169029071948833019889695601028344834858514968477436162621287604084387297283918885072585217810603181571036922920722916209024763540974602461485376218239798741198581474715459282350525243602789972104493987086484271284533592765961053256201479618332493289847575545787521671514755676135933359056966943490869841298881926033356739435571983572856237570204202632554004632424621968193455580274474255752886062144817680458486186700293510910165400869783780495708570524626859296846643766457599386881412297784295790635589995642046228657191588558157827899708699192407153673359570178431714696749409914923482838793298827729126002992798788884991557905898315682888197699186300130905507857110623054295745185699238974760651239060672810344525846395119923295415726232441734724695786782094275910422654170327092717225844112962157003814592488794884602743948563304169813476788745858852317802886513573681874389957534485263497127353234718847802502823339606924316876710968571850160376132705669871187112557560992521791271596022639765105131962987678769538638917769497856987208913410554376208983996962830240807949699821126402478414918038951297484266830177564939331845459018450662213346181131899468216730739023152168106551674526702908127090960612456243011168874964624662106878031578199750145009312076398584709860190321800068005746592534389306228411322204186148584495166404367888111278334569340343773722046928304026996039900619962206566642366423666288705377150766289051706163925317158906531305956519698404457638541029083048767410850904087965685206552090602185480547801450885309978794312572217361449537045969522825170880083468666304779532780737997620460535076589062248324827600341176194118527916236460292701844553379017477159887132856250443805564717180815275669471766806339447085716805555807282490591604321789900796551866824844134810811379692261664379007859115172388542298832576196874332205404808374694775172097682147106055663782457694139702038430098186322449276515540988501121209362792532787361812862487467107789217643558018728777539998105990467585511281388510969409195914938646014051255043918576335651551850805528427385476161478908532627586921361912177441751687146899512985265863349569703565627042036313364193731957006729635814807557140999629969102050716232460373984634962630619794643217248724451225598466558180639382651314029431808031669638494967000573875755909698371652264179642092876131147830754044617869287202271918079357582325526615978140704398623813128306169435101171647011178151687573140879943078151601666111862289994214675319305770799636930837141724706426887660345079621904026104052944779945727196319083675171915861077623831329816667956427421832380242874232041861057208277501690513580898244063129437379049593388355872642325484497865999944520343128495703413457171900675419766550412897319561121197059635973361655386248457185029054783851414806579261264292817081094848996997577952796620328603642265826211888854478851774315339322748868271923686875024055685838736226184433918005527076573052150507319815614007030107419858217810052811674100893519307022478330617603318727619633457940927296920648674024544080584984161798876138154276126681547976814076535489787328423791837711514509048650096263115171417876549942000079824119940176761798719609942570701687886373983368976139054310132080796942672290006366145590513092867974916136045860507040601751800064137042341522264054083517199374817548512975794153531591054432692483990555794886386359459963006644117764480914485325238338125623728988805462285898740786787051237163197435373890269218876030899665308517863352716226593030264691529563739020348986995324528849261191524904795485742363889062151161289741608200168906585049599677131385376714977228144379741154004313798609529792032392291347557044911211699785900948901974632088946478216175022132779835601057445747289248973938049281611337710300937198346215867772191546297667114053511436229040564999925196991536525892427356971320101383076335438690322450403142639970822830931215477878038318469205090666975867323872094699468265190212697994617775430123101886209781380521677843485740970070204741478191493145544735702086169342141077807862876901526904047549272984236607859771362252545818072779309430385904387503462669195229638998850176838548649177509976616483976634746217498364651111561568899912213949511022687131480387402228232848698584368397488167063456472788508127283201466050015127578909568753860684499435899092111652099229847568533954211395412551681599738542340430994232694648579724328568415454739497298689097662165801809599361304587527568677983639585490822388176863922562735953306237615182514637556113176432647440683826044017406930852084106572443889229278767310202911674042400183124388547806204250894942073669159457502711866044169148004154077215642057655228329293833868120235519288902118778476156882784515935822496419175683537012609358609490512793026760287415244525511724363332941414448174542073752659425381965805900604974895268799494785417805837933131402765848036059861741366301745347831788243854395042332399515513359053075061796852454797441366006311069371879201256686861319070111808736571647154708508936786169891772543196403532852966939100080758458349519716775561678277505647318615485136295304985191518938062362016100368206383030940030694114316412151192242331998158365394100411292984508372487296109045979993210755605097095281771247379597278999858321107245436017899447949077868241405213984563082449390916835748443392450842779840454649190065653495683190768778388045895219159140785436385644591506870541700825631816551228109375740948437646077520460931541971445881545145938829604028166147766521947941079205466493989810105637691416857844263795268040446496820792171951059672030846787309699252097628880402387846534445075153251141401256705887504019475604900608843675326632521257756061188056207473903658412790771072971972719834640970002581936283947786367363369537701680667254290352213319507016910763006374473480372515511938758820515082973505060437706780356703404484431243628525140594954273086435704964832133998320737595165851201431156994254044880936035402008704802397974775988521987508356561363293222760758720888326144883565355097009270565645082237871637174752794170329256575458536327338312176965176111193058103856115944941722638194991585513396329928224527346221373609585857897957500771187484940822192880332321268338873422262305275155834946801290037465052392217041433989068246120289452603453623434873306721819814364292177484671923535346602190834138426585122255453112021561025972387586893126076284907217594840244972753029603306134234612738433901133401298306446005591661796333555451489520128682928239075476191765532677540863011355588324907115831987744136250485470278823378264066899632289081319572101204784921300133741769395389634861979842821407180952177422643891213504467676283113302780570107411292546114778013598865467387615550108916447554191448912525643227288008741339138786923197641210674451693797509957196752311710079968571854766612302149996889138237194760892406162895895424753433284225285900113459375199161816988440320005874294614099021433062670458264970665084635167343852346240432528333737110005881765466567324594184551733145758637971679736974098593936496329347456842296259870959223529207415462304780289784563063603087118029698171017134885281804575454034243378569931570516371864685873303344368913734415324259542808983803490078961402873039635816992693992339051900352097578704644462234665149143676850279184024822239118148928129853950435372503447041447733744549076523833901620757423072184714345887822488330342249843936498092500525628830397285201276840908714476458921411963840187661526730798255882387045668388017281628360605442051449573056079266337315271686743971409172063002693829361575447694432481666511057552934878151808286942755127735982675944409917842402605712007495939655146129267605008646289769104420513144062174703392311890682891566785918099059123579848495163818564318991321067333323490618415709153365409456662214951031754157891674897826732117597132857340787035504057257395397617066010304549069912672992062500897446386817698053537420146468399144161713980883812562656286568028487098520831464936455541541111213026819306812557980216445030388365794116281008161809596171573605406794427246807389948793959789822438721672814897728201181966389382828369802034612518348477581049362135716934208901360174365881372384432131225317607759833069411103459757166841857591255124344159438343640392586154441552389880361984780811170638775206022811151518685145577046605227158817558068929409509717342516637056908719972290768663625969861622612527744749995780102687467069867488078268564390509396117495797767545103806785943176248569998164386066471200583125921556339555558085496239593074392013311480567531941692495941121322058872738893887744799634928715536142878989800578140956259740710950729023811077453426593689886306504924421616804362158709356088966269941332445368610227584727602063087621257783606990274285167187931173036993075248279332329778021028982140368849405309860239698627579439472061156758588669383242426038878924780765357074936281486112597558425798773789313508377041335022252176539669264277944736845713006756203830474429661535054320123140114864536808002834087418098834881422620290235974738098321991449007727642109705061571393117320229332975830212814481012908675094490912118342599007398662868235484674479820221993634006514521061304951196230157251853966229327905130721348538195975661456402204450659839806568458612903284967327832170609522463885019153255022006616187772114757958827201564780776459062280099704678559894732873184104671356353570425929535376273284070581270559295493525629563562980774411564032277443471361106694610635894963072086297532951643360272022917331308002492849184366793451671590403857561161594963876000187973065609812887284358810874344226254991902627751286288394108384671484228921081246369548450824383540758697270716619164262597035472265474970711930585668129955847634957449673413457767221752089157133268400883276679713647773415333537275390503164999417952026870032284853723411161514087309964042790957983206249953456886982553105828662223435419589804620349975768139598742351456192895663074389835873990897266296954464429354321655797043067512535760502163196817355160924256768354388628569207548413977215897409260493187917926503516654131377421096867794593087732124801944503651564128398582100260828810970968171211074079619064576438164508708004591290074401813332135726146232297857104429493085993005214698113370073823869258347597398102770004737168672366713502646274265541287728252797334015644270426704030908669690752328342996877134445495065967801086345410223580620081094688606385114718804300221929035780969711223459432037933879532169637962577193862251164403215656956989036081581880687137734677797708100199652530606182334317792630175696129986052727036714477750227503518890751050599506666889522284290517638422607429624527043282090578874255089932714312054865490489202480440657626819140017099195239830760122337151243631640531402978947338440063298135522901627945525699671019712765517114929213161558648633927542017309131714593307076346233747318159315808879545590348590224018316408919389584897411261054856507762974216729653633642339577894932483991361607479999476713038467053416673563642092718990369605927508629931254660751644124661269480034239531218662948092000617416839338260419227428448254146551737870131727747213686798139448298875233306729340760120228984274477497320062321935258702634209102895168698277564427405528635855443475280968566324899234909177793246779435523990385448761900976439778508009066610042091982601492524444921761673049065810162503882672360778463307988645953390302706809371482862516834084523014174624145675800668388843252129312960540069537304252605774028251670431619059108255275627688194579148016477426380580005339193594903897502886811396014166889678554198949162860114862166697872586096079572045957298111143674834860563910598382432359078250826211826245515682499228837007304658574882786166029825146267653982965014423990896697843550400822302726882121212270141432656400656853923132480167199058456753441944148566373796979125911872408538161435712436794577991097058844260257077827727913595781500279905210404740480528547417436297662989448530188142292656405140575325067808690270852467959425275442234838761537586934233965013245635901505056192003194702029898352593560702855512708841815225831613891297659139663486121018915960427985414328945588332274328676262004015111477070483404306644255128374870332618820151148399114058146245819140538449175658025592354203542355308925027818082461139322840032019540566332383645796730964214375938848843480701582044232215552017088235342777488566102044116779370291295880574393547498449363397207498934091911226186315574330997453839128649727989820844545551288757134501972892610011330846343855942804954623708966211281900145972195152453212946190939216951903023909426769905563139545606525488914818513539057615962011047665954706970588180162546133742384542120169438436828950025445888858732951889427296145928711299932314308773693846474603886647784504907501203378190101996285772024974040710527940941288363074654240606618112570987428026925874978317918647233946708498139404589149323833443040864601714216644674144675487567011993369023477148070640339818691592642186481267129848914245898600865774571612574181498067154044762156089618903783509196753528425459274168250500420898484562728791757957819504024442701312165804693285016733636579961188110434580585934728223396759661583074324877834005716758472131854643763726083939191944128999480575492322737106613471051099151274399099483071017281118785277771115561263254594228326443623787823043269896940422875464548867688007412857490769930042956748602928919718344680288345804496960713961680216049772428848178592996777238801134374529321354473935828260287962983004455445594834338160397293543049100593765185403586455893157001632871659237788338187729587122597885830013785284491457793808528388298041687557765467868786002505959265251161048809038063910279865494637923343155520903387602526578656060858833319589648436018421390486842172174448788987133717450533458013542090705256647228409098369945500837447194852881886668940576543694609940647423106795178509242069411600283270648400502318456804246139241683904849729501561835581662410600901498430058133827926984346897383355133678330637339503862876597525922134682218417730382543712926892191314903120495192397907074125728380568795807960041326695147536675684814898620123871182712975807783342782048343913718585472753252668081996284064976300594127423114947815289070839412962967657981035034046285667078356796060285097084350379748667332408687953260868140655446759065569767591837383489383478696776957854691146228260604566522517026061912499914149537082157112324305780540677871410633375577140611983893568508927908108166072140173365252509150177977669593523120643366017791113016179714245491614203425189647712167045900015336607721796912522679280929608447771366825841614224710239109591801495260380056408642717826168550180519474733690398387315487066445703923310813006708053279525498760781855759562545552400723397684278034041188562381197031376728930356887917914541276244724777905326196432089337644405415104112909132949080863028850325388608925183336517464386630741655346747480262071603190693139147109378776154063463237022760340662166862488811697825555042235178972196677392439736963305532385544354029740379999489369861886717331903400191626505564608286523852195227629521291343299923252714233093660832567546700095989786826498306763037123253214778129987935235130012840454336480855457176216486486527054445309297755116978121340416744346773251783144309351843203469878912751010062802806419713306944766243683798939443793046199186903596986535765139944739897520249940932733519106976774986427786565684741730456100707440934016983536119830313888823872271235572533345219065340376393418056922258643547445432807276453845910399277711129066084718671136840893869839026141357095831012646946128969810965874724816339212205024576619700610513966103336803362509926303921926254199705181576414465816135848456441127457487080204401437414998899353016308548561178085983631981247564533958376688434158495423484617233629026457672260451814499646850386622113290114483119633071646288504416509977367968449317281944203378699715890965259409368228737111054038115737999653987330730243426308181431761829712544690543678524543792842813434593724358040388472931716360109653506890507730115588019969557765345323131933920917978747688530818712696649658583138603897005606806285326470419183606412667993851812552442784197728933834065938610092204617634943556252724852880997249519585260860418508762498541268500808277639112391307190899040716875065179550855093466530858818213871503525665404556622247802599214977817254153166520369602017178560778657941497585877720196561373219786422458664094323907520532395243131227004235614466896055896944003780689439112878448376578057019395231868949818619060335496544714139186041468803447498011513696257385516757153863096599601183380672820757513610314883934518811976534003360656569470028474217786582804671373225094225479540924061504104186123147612603192692227575171036531307553570588247038632269086650695505398752291389014767394701354421280556361724649079143884820017170696034265682374631004258709661196354922496620197599755456492202915825061267101735394796811335560727690940809064772838621412397739760515710758909506951422968545768602021632398104891859395842514086000369664298131973286465792374409156567116926327438980480569043314306815373087315708364450044229847083105343674524446061306939512284168882030933474986405844580327126470455280028707221112239448941529361909776817434549066730704254787938052664598797068985779356421108790587267548243549381326043943636368270520252141353892014712585208164326125337035356777561550012811403092092289514405167553790679056289932264318341476815276798529015002092846526022741086732143839916277310311767394785935698285648447277017806015748736842805895894453568320086772454045733306468853742630467830953053270486422137166483171870255689327972742647735961107313450215921357764793968007635868475404532809905878654384720431379875572834309895441342423209381037521572797059304309323411086060145880735175222597212266906205697828908847193748366859216740599470983561463504114012640310406040778573567237192503788246891061437466261830167045066172632447048648342024820915076601828410301361037750874501609333638555101397417524671038348860146163951581674292852299859742100012383267494380609636006974236060185665376699042195273898243001777101674496806509118623069524918766168984955828310479147483005188109973233398172544546281867496912393606262393279626343312833965037046411532964274255338722203782914920503974291635380164835580755152960651039450582076401746350811090792524597799777568464099740940166076423313185757646730802674326659915778980644017157898894183758390385435249521975122085886307925696592044285655700749229623744340570783547107396982908827271058850617912048518689671711531748462366784272349942685254007600745513382126843002908853098291252501953304861957661139307893035647428386731812830987202199702208853452268415984999627593991443605273390520279574440984142525017530050085376559830126022254613078112474414113526863677626420815705909233068645770185767513059239206033177286652619774821258831925337883467301830651961380912211301626345885875672994255156952308895502796408855878058379170208845305635561583609275906533359982498391614027435273889573917160050412376720059131024945159734585270145092539849754841842814411737863956168790361612952628875917122549531181562605244724084333392411671162160318082519192464825235894333321551353402678006011495149454842435451337870568554468748732797542901322795830825355413927658652067786018056849330510554966698346566662850308772360563501420237596483264184885487937948059794783449434124096243116667910712011254760589347658278668651712985581666057271293968951312851376034491551974037273907224501631528380335509318396093152898837082648250756479096714671952657327237680925483801650267186844162597534569874446336875993137609386601509196753429441174599332425731513694968639940210845203510298362910016441339658527425058720904698917110546994867040138811923025630270093410595373184765676476027932979805721411212747785417859326485994018713781276570757460536103999097395729399726760016398936613409049945508856723108652619525953856880352553172159582299308336227844820212806236364563484999767142913452847777966479733155115927447851654393294512818921544824450006430661160902045892328004410097165020997672157476438616894155532057608476597984657629704403859345809808015621893339976012314014174877752527808114462955986657866562313311788079586125598117122774081918092010868484539992698681876763433978742516978316535659139581943088673932973674512452697715497356273390898808293822367673586637284799722520905603006097804665304030305301787270811313626240960186972395571373565535574149836078534169194294516981385064573196440916028842663912624992395530019746416106601542973753168105901676775516904444687470065205351133799701477776071157655844515796552774236585334747104229781153878419091715886934298398594727321794056296600498664778097767034192140772456900821414927317207599380038329355133618319559091802958100376266857572458609452627965452909507007824279110299521877620443406330919252307429465545146702227611655294743293057630762195627089466496951924155561161034986636265735838648375272354129494391783926712003889829133254233251764997588986048887589240619660969425770672963631560544777820376448442440848639030585150102575707904990818558366361614048650814029912441554306429201935494105541146185634774387886912681115528949601452820051326496717374475768966078411828881057140055274028216484674907925695012810059836654631039741018859686977164124417868190519273686233412472587147357169930272175066001435776791475767541410736473794440772876358685532300456544480318420112037662326868795240370169270045526905193537658704591392944493581517090564648574628751631315155188683776671299451481530540383572470724892079542396442735816221267002903722092759358463866852620921114532858445866579477402115840481067360084817779006295404036046386366913241213324035943766420243567454908889013000368240496369178450130384457355893912572508337760609752308450375149152295678465695350336187358168310472655486924055253826663977259623467491656961141873779778753780150652792918562765363803306017792056612211188405177131440958600544581327358423750700086594396067318153073765569249300930763745446626615356233951527770068436796085914774353217286828317490877710323048801235181714953662786260755051296950860193963902640024364003795597162356002909678216987525524813667064109527182863127942705774450052847977316565166306407671862128443643321047736028947324678829765050121201098309686546705577599443869862198547457063561726493561037801440090640595060358283481814291247485000208233606944969917831225266160835504643334525824795911706745309893617320070590491655080487732153515450658740258806124322745100545017354397993123341484985298990504010455880787107696477118192396125377399715190439594230015687358515131598297875949682029234594670905755224681761358573743491455067898855072349791502468693375360500380842097751516331558777865493554336178730924603488846352423591558126721908812836845673207118211399649871927124240565919773613793938883373810015158932236124166444468528964543230443477791145116066020546161402788056649660216286725298747165148070270017302282883468319241047762128432441066816225214769593583047989848174979234432514803243344277197169036430249103135914679662898759165836653258034379418378836303229911996428075913583052946758747734974607289546102923995822433266133693232108830595509247546611673950736216351178217874333416290178975573363961935085434373214320528687109465242606189543439922002431783187183905824818855774360334080503835298141018206715111843789896120849052732430663898094764179065475888563833388164223404039859510529066731186655978581951517828640745567114525292219121874822998034246387265600716872092959962405581363846909593178555030268826423053075157604384572142280208844855640868052108640302254531016962050561419846741112644545923810266473507875078434596395812961625099198216142890545184873672851978935871796459823341433398893734935737045999533665350058096156574262868633398126003404161112075249305595770960877992297792619891989016524036791458857824677939000308131356638992740664785477587386070061635637471729433754681648804020958405132230563574912798736564431011027174993194797723366335221457432579553443057776257139619701334840234307742138912000194555617743668418209340174015542765528495915334056059681115802618579567187872854434298844756404170218666519024058466751599200000466080513760002075169911210098010974151159650114033262068452405317417736084139624744185059367140414353134752197845696596981755485983879061121104428763615661915748287656888259613138147520646953201959351224595648622500474975497911660200612791487138226378162628093554385463755338141644863243322196491577032077113979701954488368101958407705957030088155390713629451828269155222873790187571148975745179486892120533196330883486772727353948122748909135395717372384828680854304413000423767292919404675914201038091058465820620129669628076247763063777326396625801683678746433723302970660981716893155665412539648847347153323490131278156301251445952048601116486812483792904577126220608309106381392203699788159471216759192152508037429747302500396360022801408927978863750655487609218434879648033748813409824084881634685230789878923497437411855367183007477848240942314166603691121880440040143748749832770757329336822450623412814671529115522213275075829821280530474534426233601376388162128634214295176608798885499349421528593681389095130666185917610078870007387450348021911722978762974849144358563129401932687613015810771622428513302258901739744761118696474916199615935710089439973518224327715674598696381626566440502954940966375498966865044932866958240810293105452816425949561453987641297907736709440112927435764269159961991746671996968616317832406159878714228285393590077575343639813628218043606273464657288353945854468754519401321413337716113518100336900573838183212561532970892063597213615707555572625813575128939917190138767106784138751905003322989731326720400504239666783780043998414046581990425884880180011412201042218064691158173740567383717402903438253988486239500257084362440367118014268004046240360164937231337910648056533904035438118307040588169389728022846447554478428663394036258739184438101724705388055398325749160817506229836371472886619297598588734896905566447950798964498518095987046568119022708402840145176029455091471758373016708419467068976695581716694818300256891582600379772989740786825433974602403644638651027847464781433416515275338021348229434671199403595867010973297440197140674373530363193502674637936447239992298550002914795419056945721987387869464376487158665525223492041070444386335892015099408707123213941609751079346544893185770616886669783941864162880625630616544050383477725685281898216440607668360695827994088376001238630578306338402130121177950935270190887270374226541756179287206764452616562653690650961445894427738481339986465084054888695322770696088488430044269595505379148421239793233604481925223325278418975120645477897154377246783668416626141745741388856676813318925532548384742081957646099940179511577438107872513066295094634056863663873258714228033444131166323563048855414902215954310848396098523954715960671858347441509083689845962316219970154583188586182540571625804002591415138710490905573565105132956042485507992726349802569131915654095121483570384951971410649992894916929120301775721099405536352935253953652019410212937567872180678359691080839934771168373395102524351528131969581875612971667166844906556114927007181838554766093795884962190147325380711520588470708705220684117558876406157888854633791235533828859548454475856420345728857364818670968310579635528778825289663391278421228472132025572956744918146797908776238219223175166358431102020535637260157279310622019449783431199370530036253969557533622053172764385260248957671976959703889247932686832562026447898564607075058286998184507969358393120077026474519400713505037215481983074348140116955218851282838582786703690728350057571767632905645031859128978430986884360466181418508742022406094064288241216476627602963791882462431081603358859399291554110455195310956432781103534438262406458308271515859199317042129019170978533214220762585750933888098690469240812841269685593429109854935213669695462261590742966459570478552700467064866961656167044709342715590797685561820939175102030938643739546413925315306971927248364171486682625312561813891558837769457083317104363497569577077113313951856678241815489292801291675555901769698409868299373994283049277619350337918766513728679785723950869500185821707300525037445933704605402483629930416825032866518679046699082051648049101678289992271416015948245836908917263792426383080640085684771007669255076727413918480938268753446445046643673366838122297772733973544908816234884553186206131944387482618107810888449544171073306051006292448104989352987828786874482175791320679187722090862307939210283499247909417142881020732453240348541332859037197261429785777836877138415982349660606274844712896853125428413991029975755432345687638994453772884431558067900896741231305491378052305147783110749502054630442194313693356140121569901383983479804022546044234233226170114354409602483076671668916740074732971522876843069752106481742682087129940926726785002240691423074524852671829668801249289174894292962055107100554211146419455364682239275538773270417913751462668565256349770489725131434985310397626083025495587151266978250779274859176783570889640897089401231784630772101184984222315047959089229301206422519480606718186957561622350012488466022159106170681805940314742282555633460853764846174510553428058351636042044716979485760985390810366002703797277822834050204086429339126650136065208821216129047750976783094858632958782262404071013212975831031946251112871929362329894178133045851359843416130059896615540095852591588592487069479262786707663716712614342879490296810837409635057254169829102174672546184939160062283431224248208037395415213275945637908324697571274803453452808101732179485736198082275055024815937557912276661103321553269311821971128259572255080982487721355167946549581932118644678747591805324414445836799379621788617695992843644209819772332119231993372554420970480939947741127762287306251545129059610573014663629481784119059671116436245292017795422406630817725310951254575980840652379802840187719781937073839088041473185904240897920692535827701494576137491088734823550414410415032360151556131176154044168846304997534335798087878028636329757528432982024017220646817180649422909781523068694302923855206909424661060366263147743747879489098343535359553493184645602469440846561478839876024694486025654154135579207180320960388561371181886650235194687912688043494906901424657968054028050358871633016771621848863078478364505566296924536894029711690562780361358388795142211042846219839658972892110479375767376775540093605435045601228829863936836938551758957967260606387939106912285607822501062796087074601132268787887591145613002539923920530070928763137237227449068545924898770997489664773404101042575094117219638393539736740662358743108641962614667409892874940865812996707576757509970203101171050166344989083632042563751033709734607617282994403347568839730594110064056093965463609508208376905109976894705051364934331606639312912183627235811474126868081683376675263379592699843862973480769180511288885133126945039657042576651719277922197362105020026743132756099326482615845555755583150107083091895665511156139896645840636273404205606971680381086100729433527907024044502756523711804936792274283536438498108976511335626678296728059479564001505163008908009702782042593923294931689953846373910131537107933329580720750571387831474069431190197097278084291052749709570532665086989794238012666870957264398239763575595066748766022607543875396402624582295949175038417804180185937679306305094607673001150497248318267003332792130555058662965185406702758619813770774452331826015847839924932419663684372806438711379507964346020454597152767773762584484607957667963937015194954155777801622758226821206492189827169043885296019754536508813071227379246289512335174925185104606518971337959757921134067155551135903215263801265406679441018272159948749136767138723454958622408436802947674263064374569382290997484857723782100553608237391218106319631773728698292331182057807792285719193599798891692619869116248464982795599261586891065786359990625984190451745373764185875115616029838843610780600173912068051258905381986925086646490484123141706409728365347693197385775722755765669938747468037567913348696408610832331891618184253418764328484078287338066626857834072513144638546670700082978883095577443729206346402568577511895312082543827298579333296409398151453951451962718336529868484527178782668503832625313622389566516436738919728191149002459863251351161729524364508142366866651534185920287869764689098233510640504839456832036278481365981404644857326690563173721898441192167368561430800814696320641527125279609172533830688358751254289309835989464678367882975190973452704080487535351890610735386838995357485990483959322321129032361482235929320776786492395997058326180928864109746172587166204710899087776877411548245645954727840311590778228121376129487157105705650601231399803659929686437922346106752919093304997252606366756375319240804986373881100708936095143606202325829751595483155877744958894330646100004540399560789211226525612316243045064881822744053401284027239455107727330728753777465683330424963559409958362852319511173842021328032072256632583810621251082369265424363786407559193646666368562486480228365715850078999322437111363816878160798295603537858874047175239158304624289893540780954400081751662313083076412789071673367130759438664651299750102435896568973470673248845589718984822121912155407876165753512158941851129023098607361249613676586235732291568584181514857142549532852106353691264015806979804086721386958826647003715421377211970411731584899823467226698179538451250488775567710438233487002487620508383141210837298410577356187827989317143261419686374304224662690666411039725798928152581171242306803275564786822949174455890393370035845367687353596958107762649919716232787176920241536080274174338515600444543924914015292549999559708278294730153895926754097078916755602618998513550770505910088519322566776798097423514746868169109390579185593536150587679076591491693815539352291612883209576374898491206858144826515948513023921269217049561608411845616252030372506261214878184806949606836814187156696248259816818523052020195533672235138403832677941971265140016044509367899593820168383449186125394770498313423422682590650318790320800151900277357241684207379678619483824112728681168426439940536128562228921916023984903788316865404520938297630711955147746022499808515923927402313389042436322174663205754973124681285267570914403648739813316010846016752724660263165139195894659735670168740005920219297588364615978685654352840149564521093675544631867761125100536530891146323149315050813113792408614195888667730163293955497585621851805842301974743609236895931650585074964501216782815273645828589461132604624609350291264777409232500596920106425734090474199696554475220861271212553512527783150785102113622242287040517267259524114856930338657037304957484925734958395470516186308875384546514657335488519927408105446981068690984712306063680050944322836471137253323919183009121075828082812839538130762417021563687815882090253149687067079164209623324671661674899450029813138919655145860109327509242677991983585949782285629549004979836660597482742426201146110281138493963576526468028097491521955985277775698150538029399253903201180257044213793492336242168206407543839176057604656280874680188113521361650275634529244169335895730186672192421959415587315061082437959440935093191063263593603708255056117158584232716200501544758611942838973762007176579379773082200639072256340648189985909885219085514103978719573557444161564510253200636560855944748184753964238015935581067824034046133191962527046800112134850706284398984304441344842896276994522791129350086417069992258198843806799850283368265102783909566261308819673716936909623840258825170688678663459222232968697262567264601423851070718501294714141431699620320716003653657382207419863927969039504914155479563987879959000722213889727139776661376702116757491850023015954945367596461684037941828786999462287641764669488998563428697257189978893339718092856869542707852184925844389103242555844330845831980402036080489764105055902525696238429617564303554766885201856939149993387952714747397087425010880852314361924318508933261022115793079595504069735668896156078877382472534321776699667107546382597690227115978051775525102742841001984194660528666164788215967543003122074085796125548403228617707180389124504353992262622478118664945661170341578248223338841522634903508428237341028648521355309838943807403742056520690663645230764037459723712097195458612320197137356943833964168814584957145046181198002034771023301392008192656740785957471696658354551618750807413290775510664240367714322646987615784165861416412572344875929363594072746443581843104929985141200438995585533114840950068194543954746172236972367129970433492608535767123478945600313201274934408628949481956471830139961095148739414054057411130799642347632937353232945180997930261874209598921805730503071282969467578729784387857190795870748527464304385607891983895640735084214549076903582282462368062070210440656332032835327419588070321947048721751110668144774809125565559137746152803168394057179585599989230219622379944722179833369748387872475603148776670214778483636522539768443755280630665068944944814224519468319981438466148225162594221000779107768440829095649243257349333654924791752454795414027812296709951125084348547875790743477974121905213297587107759779480731944641421121240700198076157009328487911282569792696376313296654257716885409193108424652659667502598818305294435450871570954207852788289476022446978437122345883177123144541355909518422175101073628797373793592411832646514564628624911011549792063961303951736331181256438584477662903299199713433681007859482942524933961596270950407407130172405081928339261982592072590819851164564479991453338678283751466421230173400035410518324697939231235236593804915524818824693011737123346804614467851527717028506635725920389798878574415799613368412354332590409481243660863797052652321100155568771025083766318571109218250992324595835136081110384944612642689682828303599425064437602255116616577050631110443603589494710541661072128943814044095806795276541091413316585823529680098938731060075857376366810665440609181559261967590256706415541792517250408685478766908408486649522965893497757373686799251120109415978239110959124361380809612852647246429422356671456705319389476461811093078892943065131897737543698517287523958109721385698120061556611149360104220932340888989263709203973260131230124113424792183220120600833875362931424735183032488490581847703579800784545343593625724851031632204537408950450473257943252251315405638634152018473184062008365534249329975568430519513398043641601676618028955064485478645923298154848608050788012926793332870268633506248782334997505651391113715210953960596239537950414975735468982614286123351938325213824234310822254441170563335142068525548197422022107431631167150673132988545023127825570781286047450024319123031574208488105059743372722699541506966897312805166994337481899175292073106479127229130895230516463013138897276823940248914262503164067057835147418619771351548666357238459483806933815283453937967471424986180551037493363565382609189829004364792451214712152786251921395923233200211250245463480193325121436787038176950006914026552760585079921823782168029828757848602999946466073413057028879208614507509878188560589738143839422311533775181526478245515223023411121648225546624805066078437220352316783184266576688822156746313635726250648193657395113539933189770162609675253219714591500141404663392819479843243052329697072180680227369901506893030517167663533281888573812888161678484006537233843796159200446618453694886107289780725258426532351071877816075398567712375575811476672946474012124884208687476536956691494794999394643766871756374747568358115342893195802358701831706180472806346402956944107520140608100284898570649412758293976128599464689041182648769743455052987185038267490774598153295900706704763689705965337395314329913553241676278783461801295987351564849221059896394901313033708165764441457522321937561479458195569835880109076167666123055031529850280549145141776894573984725549214758347927699190957547591745198441858177752072809514608021821226498971915574978840387411593517833620470344490285261242346724728338949425794171542259554703850771650464504788928310884037980368909956403520818024809837707725320860658172756885531609728729925483268418855298167602001191984944407292338547704164167818124937160946531760676169810182655720203464258233218194530435478901835183031150145640998000417141948540440788450641025547486565261640923457422233305565092356610803047974425948380846948975563803432227039856155536213172374382118293537115160863287385328301544317105676854423396827310661863937699369452499711876701489083647683829809699725587560591318886339939343003378971879080438463361352581543936800892333592652259085494507562872011272102662283941237343167788940731013927183427961868964731319928400129423079025706118138627056941001661903011564518993431725469706686201824417065359963623062835668791804539924300889017793652799737850139892665210046206976260565996096454990543739598108911667165637187584631685025279504310778392261520822293906780997796393505462947251353526098642201193868235101039316246858026729082270606311083331507549072569659384722669198561778019984132742836501590660779979861324705569347760690064740987325944653598000147183010795320540045263593742516831994114288601329728512310451020991345225005134827940615652779107258051828458905887784380276058823869019729950299504279529497124287298860811652516643000956630034208442811402350207116418303301482757902031523904247728880280677345746719023907891719928817248084488533959705771015683656690177116029528000788078189764842795443736120185452588349903595644690508724599535579626621192470549455035817259142998546654649320350846790942724272608652575271831658189162225928320699074327810634474459056170251798796826183826792538042131205244136768352064652181297766684402953550716449046285897769020571065684747599987513647260207076046357553350226295968493846560690608438747520522988759856326863937470298178997849810478718241945192638445895124664308313125177681707170548550435901170832865928623575396192967993860667807756058898823466528786978668927100805181496392466112301038465066841808700367649972381502786336895729650702447016398663665880365840833674931914614031791918172755705012245120225528622942449387175034885053349550358648974767138963532240719480795775219256163829487802213233930870382102265653405139294546765428374352215073110284437096295772601961839126512217991177475210668574623233360232895308199302440929902989567356775372931610126492220770051975095643873760300013162425387508526327861636255919441040043365646751362886147243384270082525916211098565022252269470005601737189807022908880917321424138076412756920974616681397091621348865603139591781937879450148008465664724970650478737994127648138858121861764281861111951747554046747273602842359939729774596475160561013764220170870527117477033597231383400725156430166745906518892452770986060571514031851661081383631050083674757477636041478945899788863369946412203647216681911164990914975126922270132101365023975136486020155283193567153624052287819982537165934380532671145469273645476004238922813367554443582053280105105291033983065875594270301488558877971253952484130316657511664710243269298308518412097752752660218819024535294568010158927770293116197485290132890089045004358960087339219765424163307893317346045455025012307344250777715116118488673151495191311429628096918672465077907868463914980135115321165846940126577718219207633444515220613438083382998236437516829613876309910000169054217717976975624658349486741477171080451707776806875503890642122991448436165874457607954893925738835935344065356892752457755150077634801025701159771059902372362629997230915516230021350247184796393962131410537134631412015138941376039806551353866287016975669669932364992381452306860824767956718634462546702037438947392131726898516242430444196940923328687934532584129925847180431608977034917458659193808657513209771681128040368404844670381383899130800538117537163159230925565798806822272394232310453424805655266256231504346582394767918700621817226896266792923961199889150883533124215170618316406587386454241912142099077819075784400295507184623393760848262403707405208338528031404119014638275883201955337030275350995731078705644475134779903544363336128458362533625617641284129076168489937290831355956708285698678836603160244671859152079806611643591750032868008224857281930695905142180088216942040032743821862163535155657744640012997352268958210017501296321131039061457103718929305536308657062094212158834162869462113021119990929067121158363688511438316301033839061620496551367760439920011487384190374497336165492726068401828876861638026941861608954235410696865895401321977768103345690287790878339066212473827728773594285328786138897067252971797588545368048375377300828816765105178244247960760082327940589577915079097331096030900421467121798388788395856679089229884084914119750499057689197521638242610986854836659672766238261993320843638878849846581782639211040422489677396948397392062763096121817683087940236583375993820094708412302231722083751432186361429389271273752961793522321438386157064940510087567302075474067909597443317145978824051364659165113747338077955084861574100978238940982778320034264643116105903832901376363153907210717193893047225940238007954182740467738312089755070468311538951639290241314598502036627035667844702887105044256654106644836573128464718173544034173964127729563473198029444557068024092261463778062970723224512705551097189693678405730076795154864382432675721243026597152564166934621427802557737759068550509651755804592544492022048113762750473512843214959980882986266205263645309031492653416511796349018536741455744311942627157108622905762339547047770609326243862873061652537777514261438580130805320389197574598247025046733442865940519889394640732186451431907231788599917391766214896520743030377654336957428989524714025516630576127326837822191301070859412523054529394930602172397519073182936871902537736578212412096786342793264150629910374629834142197652253774223816326921318124195361227191470088337268787718388175185613577241096827225868864638529015732878489120629818111834847163101105905585062443782383145892654757364766778009228121530638589345635111988770871165413421485230370348505652463100388058706894263652558213955594207796155885308904086147162722836626858860818476425158161131384094652157763664227038014159652599537317448775724042742688222290573499992118111805341973842144287540899683451103916274571490300341459595640916988405510724655726568557753309066264766677839848522867740430205209371049421027727262853992643916278016312741570857132427402441358286798532854226899504394934680283334468112257533003110201811873062145642967034955710158527736510371095726581896009772043551694511993253005130157221258264791328037858911814520901193799929738927056929933893198043985130533018620990033495437085542082081460217831754476375651304413227720992052913460613542014151372407576452722811680317032494280690009164617493907260065626466675318123281027280950416187659338547053813919035499200162326024157449986533399736007521930006183408960539652468718430961833087739428237978471929891629541555879346647538480666257365722121591571066666806765034203005318492599093766079145014826455582542942682986558456063633987484448353435684736064084667267573342507803897994932564504805046098738994745847012974606651437061400295683098094763053554834329390864189600658602018262465033718202958611348507940649150617210746420045877790821386505219429909149565939277579575060237498406388533523749637990632329191487301875017722152100609594342582117276653582468059431654652165422117856502373894528340465249485357775077919765926194377468848581006420578472687157700106131879370672967534990817514988225616942686225102874521592847593938018654826236158335089760988878314156865753688514406962028101922649231590108518275954655646129861352991954440997267890592744645866475098360608216304154112856267021478204539901031111309232750751292290114114174213134514076775420343060296714387752969841932708587394371612008554105952587528176592979743529957334331477850423475899340185551834799484758582452468093274038690653181996139228241615120754596476677129872427041609737792077482165631760102276516823752324298658549036178805460651375896698121459177704221785308213053795357278729380285150864323212350915660459326678747007550184738260531896254405429678117162760918396538314558407934599409260976912269362500846255187392081904010284074892928761233233835448738410754875257931010600744169472927721581690273850225566363523514023941561277290293458022534813845964507704508617934620174134592522574366407725516359866645359562852047922054079091379158668172424529051979110280801677010261686688372876976547735034549735041762938073031576488133637149108188596647165560662941139699404071507218560617103537086605212368628567286073535539867562442943268490256360226468063964600770151993117066786015533519781753053540968152020005189699484093440494633571701583120080794384572707588580135966662233983814812412886918187350248827533523299822677753015668424252784649312976506512495616682692985173317324595464048857780253871887908364525648028792303501700581830294138325828720334720332348742598685124718274985028813775680880339886449346791261120400580201943767439251480837298009091205292077063557277457215038357749696135262891997378322968978497528884110819783668735104079287543906882215496851040927683158628776564005060077578576312252961784675528346177884757567368041850137847024983528196868920515709567544601990121907959601413176145904697035341808787125501515760468675693696250906363933724493900870073939739528544208299783337454340217888286834230811130383151124033718849927111023129161097334042043695187487810713618419071797638256434949598835907050884883169929497105426199822596270290797451653928011080157114081089657873152138609944503607566381301851795348214782985241659972998476085413715180224665107488226959767703146017548241209794069085404770219770224850547908580867814518980395022724392897250223200655498376476810883446216304851116008815261639034678862267868427855708394501450500475438072079251295050140968526443841838057884196178694370191149938510320583821143858627742211462775530811286349733586646516442056019977999104474210419614433806083208607272488200698584210993818527091704328233369912944032407309577080170654680844006585035385977055628215084754355038209563050514904271396105687696443758491550613632750931383151624561152216671082380926130704526500416851584321138614257754968944816308408909174076865636474886711929173192090973449151962676661931823838141004390921113292405283429863626451995721429951712029970920114519794070422462469182147114056833450094663252287301754057675066925692106924509255462004598862641772089287564003800907190463187630926068144345618865786471673591441329215368476292005342390988358907461090130299446127668637907042217870877810348454521253139100198110068976101153476568840369539106861516926933659655153391145102425557531464166403353010745094884322275215194543605826704063056661791485829394563944174968815551777914722091118788677023133853572850831109835967768302111102293742454343181832945400791226370193289594115982854459289034455831627694725559072729695418137255921213208792252913724120282585487354754456613834825208870272574781035470250114200248905772521729138062807312691799321914855044789325419976127389370671104079697794863517508402810692283745405930903011209323629167253676832701190717583363982742384615970381714222465489027446566258562683390515411725440448994384884947729282884600648480226428595444978740888775528237951222453006784609121703746422605327109256365507893475434682692742646519013203392989024523305310011937141937486707255241006773510747918180865018557816463043199179360961197738789324762269769894825115707333341221975874960428670036278508165420619950628830430919657718013944147595743323382105112917398600721016594972205702489385339622743286986776688239956258278785440094038339178688789162752161273688567632402593830192331399822634657546551730692911688944323421420305085113308650432938360192163438311073869371698386409448096005724146104062230193489594413802781678204515445736577735577161809777398221945366367766025199558532911436351560948521231425101329456228718171914934373671764178337605304590985127630732656800272395392958258922849326684703064703632497169975112172419929193280690331039296250657006977316833209443044439257100752785103740819211231969529325917961396131785249436192501481719394094115267178579201337990626353344587496288247659167324277442645727744550557363756922775888397753059078628010950845309720092025773073553143382047019694926394735932691726657107547554611172180530038564069348793791181109829839840996334669045981666246494559979505012509147248060812284721032916389951295515439531883422396017983423394814783537868204848704696404371086753033723608098716835613722287346778511920798592325953116727343817079578871815052981709888955049745600277505886254822257689366844853835489828694433227788425238824503222301929049983439140101738458835159186944799565790693310626944166433698357283411632003277042499554821138691241823817257836457224614490326271713721522072257027518278787090859278949545030598662869036998428897845566150051376015061607190156903427557096194239805183907462449652817978831920733608818558688135885927311853930479638170074344720542746449034754562589271861070052332302016641959911116958439113727229579903919470247310815396971570999749451546287322866009751256726350698263619371858791146255144268019468306497169742109695808385703088321235716482004947334857480483115625668368183099208763656551307639192689750734940525348040619798029660153463810824039106639529979374080900497951029718753360077027198489415434918332241493584595721228445782044850612546466040202524388666266960745540650717839783174534451076403227201810265651560231787608012648926629945008226154421736727182466043653945514355043341901312254597483938690828766367007352240946503713824996200706692237256226855826279511011395343015209312725448031332646338291344267023050626374129008720825084298693347483796367258668160790437735721971263209034435410043146786734317741521193866800157813129375100293808177318405998505113873360707582818426451054947803716530079219659602494292667089588017206647527943170339241815733680076903394501959680348643910192191453374120157790932852681264321288390765771603487503494420206690235081246652822885374109973499696740319920585006874964670344058323189022493002150211770182658675235293859676333497986149697282427346067024449897005078104140447685140881173129836565273757430834129888107163266633428092425952876281682831171840345511032544351346028767905500230632716615755034329586750189945514908952004226397221060636073535129017714090947560592059623845599234631869955546446214946625702975090635504370724119732810735430579501774303172303788912575581983663570615692344664227652655401441588974242342108588638663757021839136060991967079575282298357434479690381687440124182160268359097632563856836410695712478636570673267497377519222324634728401340597444871129561741707525892609629289192556980927435273687080853336356451164954438867455651140833076426696088411884981049396901805246870171615575446244902317005524184440646200840594472929919272124439575153976177920352768921637303623258064301243530546771270153266863993884385617872868513045150782089960045781228350348596954735946252623422852172791040284666384029310188198062331318253494476440804272922658674418503486632754186107674453261762051897226451638458462040263008073722176496775309643536108419843087864915870082811811358992661088827965508675455752953299019535725055037776496396164609292050125046622882504909448292809800012473333745939610751508304479145433695044892033533935323987476752280636111005136765504136344199902103119807259971118051001107316453825868693073970945149206446609570548355266293284318719853890815883907866568305260992016198959901404377553533930655931799819042271765635310347537615686942766318047431079565883223576396163183245045466522327358351410500731768606465889551959617222297298804941304473055844778295158695851421817958233080596743833384353892194204968407762542241060573348920016625875187378751875879476506224373220540546027998732361738237833761966617956708230627229117500703442448160536978689598099998346581119125689246054910528965133240681512312480395659203757838370684608629750689817463129397117885234132267830652641160883758405028957225654527739842467142284630910421002773363819877395424066277929834922269494337791670394660234087503279580951286654914539806150386699974880760739888691910850901704451408908821235793734880050290974967456151656098302281199666256959543115268625755356222802619526504493049417521474348273112101723860827998631557424263815286752453249794100471434143288861572092477195657973868359437193891222596675725310435937468525454438058336220716753838284415388653626688054206448468262334401829156625866496443259350022715107223000813804551579983593591717229747592986474595048435749379943114001190384939872779628092454129837200694367873699032092632201629939606101814416951891361938685072651191037828705512686528747844724230128919497732468669332871160019812622453169759593480128597886836299694741261247851681222955815166909383193278354081541230358659013529613540253651062483763957921171682482471282601274043839510596594070392229685142808071182984322072868458658848375035912335295226320027761932721203180489956421506276787768438976165556734449094538330894473203442037012612517355228370210226135458455740232072641185485445228262411032872680489563547824247790964372180881904201551453878927174025128099564566923422785550184058126486312488293091747450689057469973241837631935266673997977534364408333264602130241280886605774323001005777181440693012405676016549338454952289635780998533184215212994506429934520319155976162925930419781127024270415024593048207925401230847147562427242507835706993297370407610912744938554159709643855017248334558422184292939682003394631381643282354446797350131864077341260890813740440795797275536811515117625361823256448830649134635869165595181901774489009084349826795295362668830016164103459985524189179075645965622159447797781835586258792852773049559350040425513880673647889468312067377749053583303414490755967106964134022148787437105297014342640728642204369502132213569302187323733910554058447751416295930822788161756162821993126134794601972173282675649606042977426413695166095985498394688385604698391816740907547807431452319617390859005309035017036865214130522878332426146431128406879831964202810425080519941163761429522864808637506113420143278169606040910234150843995292536724167673697207837966907857638432869641721873911651996265118687707468431495708843507715144100761933523594770957529661242164822382670884431408085076553384381338754763765795980903125457031250234097678018789625181682349108471688606851087563371243083859689516644405383308263299074014301747356105102706983677122119286257477621880675010387661989387296658849327754335374023437617399941514042602016791856082274785208174236370354487787444860763558526908895686866141743978416862569271483381115351389935184190304394574178751278770537138937918951553653707860503320472204999245423450418598815991388447050585044187697301261877056002532228550514983120980303195294493546497734481371636502959658674639630304161591383426885655784598974037541456914481120059229151201386307918226578480145081663455137696911492710395826254108195468721523143084700479384755571588037331431517408197409131667707319555684193240729161227026732185867093704818831797735269726112784171141773426478432659077478463643981498281413228991585215176081903450082963936855741189756697164989396094557438932746267377965896095940074668988381607991756038214791060629938870956256370774632201042862964418329040364144976642110012031785141419099208469929502096063532767503535689321161969078759976786789969100502004385714061421562853730731306454397505630542736078062607150680890434762083676395289888999011502595868753742091527722107154090419167003172815349442229642116966938561703456911871013577439059930413340728652950416699425093012983904806035019715200917520762300296393873044631416386544454491006328704804005331542686474181810162061222910527966639911320323320569039961792604596301268077154002705515645719630061410602068299939618880056974623581778246600867828704378433968532610665199402411870449729644199140019254965087650188162436292902192043033286956740291715936996260197197163855340639171595479471810495349308512783400974919751506883201147756416240792341329936175594927722101079629030396689978384034492984224537358243047148314594346193464507580601135670542222406527923211859291712346392342200069685086625020116005155035066512186021983946337971317321890047367150059071161868770795831258010172699843509453341575101952860543194604597563407027702716100144122370197603001189065864210231710945046344483987681614312904595559380485116096532690677034433956730657039633483499058478806911219736698685595383324153093025094126237294124723349135106445453539797425513298299875052954407226952253257190926829415034188227262274634522519594644931383442982742238936408076170730988517444686394875560627347835968305269216629005456643468349560562657826182838962029365066859156434964752952263101898389604175902149634130335004405189723593045135560753885257354523753533661525806501447217793098249379701355816903500185654632278649451286346384241824933221194127653624451564175633781344022260365015864371594476364412914206937762593568271634796059252379560153793321911707899415777986160024113222007689048749580737088270613012425174842865397631381987784822091174617984418277557541445949664210770385267200108018497604142682278425946177087041824840019952452660603118745002746214554906712889619791458173461219234279655029264591672388918325201197565745316958458050025772562839696454535302886309257507540396834127199546263195807840573493540797540638370811814744984520981324619723385910758389290159596787424963842252747471254044858968333271997552876741828846997551613169950871094569547752110517974846653745096237115001766478077663645707380317506168390888655622730751828174606476026751940659809025569006150570751966285021956931927040484911367880848541844586812460958977894738607912461954238248101425775379692063492673416207389983751214944608696211678533835599531145601370752776140444882450653849188939131300180989153886980735203441756776075831042553603811895912965550735030840976102609435144942979226018024182856665162080331516700596675614926117923134127063765067178274977260797748396878861225031752966845417607092129475830341471458590267868709367259093493792107934550685959205622608011707099802661096466723845833161256965591098427070699709757935641101694827655534159651899798180203028038190584847099564530781946404840821103517463476220082736939691681697097565939076692817903068939550580528655037912409231830841888993032669752616719174795269113614124670270040796544571489540436424836872235573797350639343841839799430363383053224205783688826211816871208539108614549666222637238618431887636184211879570182994043165099207255658009634830869828820757308499721645997776872303694939220787564359021693534345006163626613207327400031773336475876041699826718665548528814776523478747192757884939925441484204835438858377986681103657515597778784278441254087149482312404191375121070173869922133720888858184304640373658140055051623013131015054177622018179609444132790728473367393351853445382021616807209766000702654024417645883167017801266646909117440772807111786365831092201880396797751622567418956878568014120842431789014507838722860259883010123872470953341865978984000082899131341464515087698828530852126745647611911076273967786227494805453620088698149523794784382792425758273682465819406552176693424743555120835410872162562183027242839224147775737275078677934724700976919080542945094720592725444707145904567151335042190194535855814468383858868788472788726953145786577625090978398484839148306649210093542244136884369839535091719319952527879017336415766206598138577709390546282675681653652015817163300950532601190049025255799224289070575006562710207411167301148919398705629184678489073745106841070937396038068686878444631440667065320793290800745633745514592176534666942552445400861408571324580648386294476098698078149984694862035959671925778211421125006026610197182667780780992978518349142578004165602411056945982090265535183903412615245572722074704376588473138279934578177108894407623874276932328193425302395927426308068721582417757687158118903684004797665991204191758544392673420977634134056723382382329036722726745495883746561582998161876445367595340275312690644296410562445943438465949289426729994917274827507924983479509408761476844169589379424894468534231483303451232333883446078005576156117462259276078570389296344798647210598206209907371298938807325077445219108014798621889602595388748076405324192986016996760189924238422585023224228873556403619330756236290484460100078089167246558595444961415751729874166082096469772547220454719757502205044063418189299073269234491240177680931820087478625034588895507345640179038112816092194090294518204821049527407079280797118141189004282698238270949491111113452749322705134393218290904872205493830728447381355919914804045879080546159646859940165807632120591704225941713248793390931427278449767014447978060982338118196711295266184655050714115067387660787086920876393558293508262750216367880378045210163006573822007285442801937153326667238988469591215520076311965070047120988113855873182468214618802919726644571467752859753584205237999123740771691489311849540971185029589359302937062993453177116518549989288694289879460869585696330543704958495411904354882243279304561765920321826503942580202829916447243750182215644847408822489727124779814210467794566641118572016724240310254517155297614384815936751700218184684185369388764743117842197315703297106232855383114876762243379675193239036105293032886929589496643370018720690555556633541331022698285843134374246384984736478536195013183799539583590292460574081017780070239260537161081687987576288083083124107407254890366722675391340392714580958958724486042400253835081757879146012296389074070433354366259086505274505623319029189658632703967433563155120056701276235926369077651988602048636486615708248991220580744215655764608229751272813507525260442875484950653073599320026212010185149558173169273759565028217201233103813088355209011624378939167450516555674249549617265838022076340931998716097467359161685885580091968221106841441086384957416044535012648064024454861585502249468510421668998243486733995349203281224817586358523619067731672755443961610001767702970005864108010916013658816864639695968333691045485289297017769220320372550780957369727464444462285162540841005347409687142194919402331941661635119516766627078144918114142829039006923838541128588008522474874190073882615844806464363343186774674545828545901313449022810760498346734136719270907575474140042541542308527198914429640423538097439291914308192586039372325016829612531124199905216505290938214108794292563078057732023398189695549765559642379921799440177363131706035227686915747041144201789065214084141904926921608841657630921631092689635972620438945920125781867752526483080881529319501606139582410326586260014834208244782466368302042554427766069517488787127737946972943300623550080864737202062860738635099089083998195718871065706264264027890319030018747810715677671824899867055096509549837469133381265386217066162182584534867007058881819696389128492419278477997394339560548211373509292123879408844491718183409859798233856743617555140603119118935249431455575425215310642828492938331732575902432034864219646741019793512056265585430494988008244949112777376298650925507167630014747729899595492897735023751895183711874882228546708319530500635517241100043913558867414226388610821402324579846940165286309701303371590315045368142947030701404102350465625467965980056815222039722785984621031238571258316465563423101946319983692978774415798163079472846390390342975962988397494506502945275323113704623405451961530322555449847567982166303538002250834867564833217171155374553630149207835828952335535028785487297675680668792471701547499197931005910598927098426194578796376086711011010149438515652509400643478083578062734719035414862577033614006807191826624305633270676600404279717555814052029216285282970882126636916262009279932217463379546247201445192484162073071473860817940304204818942426206100090249165290557023561267261880582990378441636545923261408093882637937137012805457774953894210843131318360752133583405709054534960240645939391300330341866021025426008635896624889027755381356197323213982298872549697334678011624639331568147197693318295207415194833369132537381062105391218024885132093923758184893617893015165922659952350178921063032649372747845969939473565198014964448311119449367569189261054375820254162624481192598396234830240663829223489133245646495399277054542338030026915705994116041188015154742906283280791948688113918871468360700165440620192022850770761394843079140068787078873913094839392987214226570690829140744318517378643937831137052471194726543015520245659988407323832686533492064584867671729263090180033729427696620995277933784191836514283549722227553860018513443389643886460171846741449885362819922074649496199568385753323864152050435808008184710735877858526059906020929698685836276914068941828206832370134104393072428754001358595620089388093466966155991535677935355403150123363040368283817692967292382024364639268079780985177306938936829638176996777971426581769287312529560936417652810551270532587478467481567620349733710547939237294291399383675582893081296891691267815871450562153039311958728690391179973196027920099828873299565376948384755679533881232084026453195576857973667048275461371507770787742629946174807852818314724098605801911950203542696084049335613003307426509987534687304955427088676540314469219749996786683296970999596902333347852981539443685074329206217106294529617341139534360153694911447064823617111692077186134904760648636629569562579429104829914564719657723849197875835336580012595878444871558135810879706330245263091067457750603564837922282639554639641760281629756493799347510480878365627148660019031149077562346863978851919043776817461067959854261972368474492098717921591101896245585082947898617550815696628667944618510285106195343453547815016027497925911818099297369495690100534348385707693228147488391840240431156019662312679371929498067749575949970598881309283634899355421595173877483182218842618417571705926738159262965001426775298717766507222464674434596187643581208046511505321590951312082770689893105440875262291303524541042715537406169521262779901991176462785534305960356880860136409378113224927364221455457422730305329492712172150417415733656213777100899600182862549161939354179079673972601481947541014241847804294419628258883535907837177865536080351805957194414841938955100944580813219822455609607454432000900348324886712618898306884210637401071769721606553711248616266860099216128141893097690798337758747494088945750987395718706664193860625328574792796370614360379602792864181161318464302005406193670801635109284617542139315093095011712471609966503465571255140744732554909641085644760119981235919438125641665779884381069411910930834823468042679929695031486275886843240692307449017959412033748206913394432366039775175265369974405417052785679643066230927032679966258990391605329246027458068561611126537511362203325711558284378305515092363694062351063579724272904553711187774716294872254367462680200843495930431877388000708076600073226234971391547606799354874774512582061085696903405345366908831981222998712640987634209252791913428275222407159991536460848537770942856865489848244718689545648562457704476205394908959515872839353945374691346525995145227190714384625299094823008611781830913199768938500348675100274028300194283461682738660811128000094146108503586314191318890974018929979783337155911103574173548526428041421390057221982637687271930619241492841951168144659694352903000544546336164581230904321647772423228222949810597907762343915994525377870440820516595214661727860181871379371940432671240924679647867569635402046818964585519986843045920450505360753402166302005994208070705361559636658680894728251917964109465114499694839671266469245501091935503056833541237011409638200078456197253346343027860594301510155787472801680555279590569405839923701368757954548139378460736314413173037696359876973313264998812604738379764642268411764575201662649697016745699612273886433934563240140133238772564448950593160612128803798724975533976994597292559151425085848396660354920476111741586390961116155763866580155817121115691200889250627151847526240444972710254732926571127473532539599836122069665507080766672212631942580441109077934547777033651823912647234065985603745460139500088655854840436344335086538800453975510290513198388276469214414977852691287367307393870211860156102025618300935890004244218148944930607751737993923968258264050266682053542381627260373148634632365190709395176602747670848646438900705981263909743839166677021220707039974129158559107761763756115476191552448485376538613068324656754794362283706640925317249866547159278889136730850022256267706014735404336176150577662781872424532515566798637066967651376830359373882527946444941501438505684115732912303467206605236829756056683457167732920485654064586045681994683888257298505800429926873692411688144642392317178927341699959403797541601745183988777867481618795790364306188208213311609064775354446145455380693246483403150790728397160278810147278230650360291956987933807564337692364255862075983951286929886992961124304133172853276184870684964834040636704061816613715068888302226565198356524082015003204243635124933876439525796973616848430421489068138651173810213055210299209478339897181193100817332797955891417882436481473479016942337747258344129003243047695025488445161050820129189491691125128605351055538740061507637837676651108184859371233244947416234893821003207995474990088562823639864311487784215571760872414729580303821140661943346931212257346895708659422660346709200122856065221053797385452516007946386552951367546225991602364700117577649801486925085019718640927864469384694985098012049299107317438597047901806240514927625398093184881722030775420724745564585288211167093820545949812817053540766091255133321661688838383349031291219354518723350749618042106378982335777147619396442862424937588439157282456264873305527101806369691651751128389035789080448796618684477472810945204660748275199473601234545012836707068514809053731180162192639259533208010546500796348269968317753583520438433348134091756053478902866402112091894655588532853401815610572395824269995308169015655773339530058661548841887329553463539693830298126841029753012280980230956817031264931738489607886016720647482244744684840458181658070822068860260040725359745104297759028766512830307526543405367221371988179942048632829584328752033573885253549175931709234324257292742713787309566554627742648087186974546090441354974595855588630309685945554398057221877396556582085757589012450911972764711980149753250152345361781861272493400473512208249716520820095470223805728825413492144708131558494722691550874196248808872353148201861404957125786940312677385195815320357050389007304000043844237705614460619673228346572986947581614770369688444293746757127547051924005563984053696490468657310496944439862883473880537589802217794460141490526466530092114794944752045474900983692458106211047223267521664257243036035894968258481819963601807838372265531463326573956630989527661339391546805907743307148345934735054369711853301554329843381989508932456931277442769050177818895869635552623021549870503590500287847667071986582640640875399438495773810090771477025964704219121432830892358842674044704273579955272286909342110029428523700639371635742551046877085483660061685044575639280318222916352098483264789386282456731739833810193769819309950895624386288032240809906871494814373965829987321532415117196611827849337522079573262298077257444213070094754312290290977213663691475326487903605695427491692192285724862069760109260413505058668570752819710988656275823422024167533821658515744191019815698835862262718256009206694163873835051131035829066570282983249710773921890346452342701922913515656749118205278085883590606804252302222076796250132348910183231340778197731643115257765243286914538153319127086227971624613253964939278790267199955002967074116536141998544211754197079527836923324110362505351573180993823378454609166547752406228065268585972497593813658633585823018526538858573530788063586596239890175571700482940994398705622276412436629896838820902716975158705449018017923819037098356310030539819963616547966033684429233879353730774246850405560673156224745504619169049747546451905333945297182696152977553758371681626142379442704060647599728052190597286869019188225762045154299783604029210044120656883208937149089312537131526909093021264010880153746691411915096977217568114959383585180641184453765288688136165218505631128248202915671366208557596864055652299208486310948868238575119296278851792089189204098907828719680654694072338774870837143850786534967743273539218683672301978425411611129633404830855251413335185390885350809379513929037166544704901304767097246051486544249757428278216748897084045390849526837596962860389808180440577352494193517180432842927102691068118239760136410015847717664545813860841666344168950507214406456554764548742021876514591495540915731368630246107119267984938949708483732220659543411756872809878473571911830161469754488119216308344334243048757635397835772383444788370725892273385798831015935924501171141039409702026007382845113551922748180673087624754194427962292045673415006572545141964543174216458170399926227670115519864659832287415354726305158624478305833440472612110661672811600929397507240798326800337227996444777300816020904859943455865266822507634774891090513023574917564649548468412036246936116933392321232826666852097203761533025611587676801959879797894219266426083924326663696418689429164811522822603531172640784144989327882581482446411351294256488238858040986354044667867461715070552297917950603776351830079970772720900481907938285418266601123906902066904373244283367620623246898022010253259950828778449303088059858994236886719504225616451783701047340205770486018058697794224680305164067088109018442058710476857756821161878254422925054409500172548528872066648433213506979039823712474260437659436539078655363465775039754076377514025377109491316348231196630640262500467083903657408928231943461069398445212621318284719932200468537484983631117609737010342042534779686158308804886266508826151776505382923927948053168098157429152271037898064675541766830834823213779313507292726841331668126575191232191534987062317159433182596351168396941716070371663141825813951120805960291797792989004927101879941513089257958188897108943213389849854343781482838077841998490274319276090914665641996102404212097243629535639173594894206899551062308073587363388531999392319693989735996307836764095873867172625782029601688935499521178921264949794906428167473312943393843117720023291922290603412109284705456615649644054635048207802636039485883686900518582465953285244572681332878922850669530071444646247906994419966167503038834790125787189382269578415821681383302128588202898646640910328009638496733491048202552584916087871198951038903208884105011213609052512637644928720207616488843027435793406964851105646498922960105113996873871631326536298809569427157739384572002146406586504679033451125510793806760310002069469577478925788637255211702420454690188732393926398588608375203123142217479075593691742874995745724994432745400467858609836647608189292296519423630955728110900982319399175416545269229195318191285287449203367647927604133508125207737672820836697242903825202601232629132267409363101652346022409838097696325943926202300049403703727107520892496197116273278251869273767777076691463349105493108110048525961728599536596099434614806973333197232804152004685050370271408583661143578904482994104092189637805974011010380602880735932085048083957381287021585407876865477053368060940708166890666911163677627425269777058110769016134516547985015033165503780161141165853437934598250465618732921695798159060129202655557768788057091327239618341248849395644580884192175152668506183413284236295340911418013451149667301299537099871735783314483022485494814706335600519300627505538683383604587133534040519466504437378636861887297036543136083038230641209926168506952382493816097439827556262861054771036799519508568385893563533973880186848891453610799002684116289225557328120246222684688307532239948625148401458916313214898216891550540142680285127769559419431345829403512904367419803859867887385543612203318453875277751621733899097565516213062692764354741653139551404178021411513426592654602967763195206517439892371952775971741903373289316942100590296708198910503367166808309719506366921585517536649354098910301573807837376673846062069533514251939555100349817317318071375538107870663885407986851381929898499682751030644475246499111868724691208925259973436079718076549740723109117288196787283210404768002534050169941322875673843639978379376292846851231470791777937167635416184000073562601355421591639519677027143168386795740489350414803708623174088871914585160130927858321839884554147347320224137997068834584233283848338542708460027851977310035674071187910238142160864182104636383157063055310282473626336304847134773004136859296199452299882354754874179482354875005756999666144984793621536035310017751341350065532105636254035097447551878579267135494265702318492573754591382933506688775196721027379513972087801117867242748215063922501696698442178872756016869977483592222704267316019821276971286278907023673020136129992174714619121988912022481918452022025042092999412590060126741459968188323817599750763379864048584256579479879999738110579506902623826503212391825339408560370486220549989946682577138649594018578212321869821665465002668654956991961053343877342056375556139489827472706683284359310738773760383504447542568408557696761217303876520041974586703354138514978873080493381889903862680737761726521601918796711974084865645327995544932481255829120122451460191909062906078992635874866672965174898371671834970101350046064077890344006133112444977225675565376582825194193051342158518868178164048482565549229785010051384979331301507616824503863206586382782608191911006028423283633509736308810741773010616261491790904277519880866425459935723573113401878664734281959206308547326964252311686908585567702708386152459953518461943086257262275970537833925286309235444069461635156872430788438333478501340558496133780238019091283046977426192032599347064373258520698995294787125753882043273527073877444873857519825062699008597246082940759707764867951251194822377882743716019571913669070127887831323217242544457357568040887384074192085833979402260419148981295688404884150734423591669756460959228109613994546732097865643956471520042112924276417656376184193528187504728150253011347693074314222420467282036394893882889227937801719517941707081998108189207028392540644706543468157227910566186710107665430882847601351551379821941579295472751462102062126890141725439298712197735280684669934888421674922904897984113687082909666309741823862412318814334820922734877876131981111986079508768325402582152963452377615475947691558731487217628252683553364958734228389202823312086670726519224077624702904103085831867984475736363361312608089488650069060551568521545171480227242341011510262071300095495317072312412209263858715676235463612256242866208589935084473868754955124269356099095328275859123335633141448665730787848981420729977563779929873596966516911530685715442512840130690283017905432915114254515328933120637231798894772664642739481512404322849762451308262925159493567058200592430918917776100824893559451374813495379293120466764292915798714374801533970345808210457050795145915671647621984266024450897311866756896328801659940926349876779033301873314324299496973340147712866309870910824116399627676804781076511007846905375286805995780695320861180909785866284024238250683656805017279133906325555978915809257812885927103290601155708267983775816807003107904515593777538906464483030932900428201456657092756035399928492476828079863839149974483332757049285577157986431245461685320957386525860935368475598454618001391744580000683890287522777446173305794838820341937646051401812251159105928357825612795843270879427821150988242638301282017035488290021066854274182144674168106053922181201939561113495694485815552473130816340616540685719643259819678024154042473866283948703412746690446188468677044121054004665195784769106750252747667044851244676220139614598602822389798692815097912852768107582013273664997932527837201263623659583638121117060974409556604871068222804489086336403649701932865117614205574207912826740980638861524891255925749921799607835441287849372967036361457376317657222381733366829708931538865892118082337718645414992894139307021321450452664946765869356335633708444021837730124548203731166234329372719260351464489829169529564406716992461410587962390626967813180783502481459760085893670742797059963336598271882168353754460212730373942406238628515610337500184838932755779254741856822613042608257129907498067805024157283536227605832835479292807086251213776627607997365160963192726063691004509976210798120593988715727449550257576309811479454283409815961453807405534687808217104618385543299935094620166253730895674541203986200996965063228032075510254598602821514669513764113974877638171518301483919105702921440278041622691149626875687388314588328359574148207158407785304205035166989766855123945295926036759459492022840829397148072078130815061296247983993553519934937916264556473583724339889278837201270984770041879335960239412551703238681170186983043186215894935632246331802667323956053899088972688268590605540591062929433069533703585476844974821572624264226376236446643356110468933956034811299359596244684944906990066846892221958928477117322853697134159831329636734665906805697225392596354423573273946274191233093088479803971272448698656081473696463664810442150421759333956952183698392978588769318561566746640152945012421529984361844849126431204835169659604831331878212023478434062341087592665182277016276718441216126950805570179717550312796576828278090237270549032767800989745073776933436203937124720023970318314193162110671115439898672737696583088311899621381320845332718478213971809004102741244207838324190247201514282835893464061141773950242738543793101532880268861636131713965234943362210531064064566789873152097077484442460830521120006262091512060614360051295677792276501821189630237172445749386659544748358198872436227489605112562475077716921426603049831190195459281370073288977317227433919373514824701490905125099256347591343690882090191422960632324554297240396776300927962729686514192749327567945739683103272205908812325339616090872815566814077186150474369634870894100810883543054959171219029722689725937118039907334995445378903093323620950284640584255005978885099503696312129710049988224084460372748701586409145339209337678670165717026313497350893495967834153365469376775771289449942484351545902481034828009465611825129625149664847986509417950551137338334225964646572293984934305402249593631527270867867880102037744560173173904426748092201096141579980236976992984931172783451773680058301148281129533692282584090135828933479721694911284691084466989355339501612166768629029100220165766967705351725997336193416452749888094567982132599501810493054488116579574495158221724915124656499025887134985262728624516843651391603584616955878601897060749301440259336461731505464368096946276526382585665410930310574966129610214948679108137763695795900621377577526208653152430214481180646138681504397641073182975307081409451607176338301696952622105537799895752477487285070364045119451210310806502517152772768896589728058827649345157523934355677266066132139788896509333589593152656208093034268185535175926886400730842387179142495800671069135894201863378580200233352275844929814282055470872960008313557738659032116237580203967432135141262103716896866544240288454366942000561888862371592605670979609853244488243170264756541652366006495252325429998428277523279884688035373005660241226740461879758515364919655624194575614724439265846074387056733823462326072797455484551875748048266650898881369484546740262088131275521435905959789845684939412798211757855663665694104315668593698703746148771732438842996126248558830725139050615208141668367459594203822547068780025751497673377404899647301654371787260317057445078642680855398779072561466244757847861574739817425213295319408409368658581121043757929536399466518022897740704658244808286747118552580761053967060669055562383080688630670023412270838729211313022452963958098125886071064252235913485644705048674329242818793374535275036155599424670329844264392834207393442158945312773938311852393939927118299295002374355669504984408630233449814673889399925429441615220448776999080576818002887330810216146895914535007975301291757688077323829881726169489434228796989459348792690301167456354079655009515699014139122091548082436327191229355368233992919067982279107249949074744809924442828793500699285849967481138558246723369458978846988986317399003987059792737518977333259576584059745774348264926546587859017780711228440016895538632317850643247586842748330910483392886495198340207906428035386371116327173569016018775581755244334990330706008502466209806512926196209318685285705647891239490143166892947391715939065914765013110242609361521693195887016231871318073142430236766323121341599371130718986991968921292960085009563957490260738035765083228352190206913156534992085851590651947728173266919672817951246268418280806376456874978232998913405953756735017469950617543947379888851222803761945929448900741736613470400837005662084785398329799780572746728725098078205238412718001561114878565611757405477150710620129059489278027332270002939881702075728695311072616783163404907485238623630619394727082240677128810873866645689420290383749654674930358226864393461725539146958525839986056134943231932339033046054660259914619062075744982025988725288379860105391962849597242683309520806562722585370311563747053080356136817269573275514881487624047611625651459585010733806508559531965856350361182421909426948008011071204362935622638642315670155015103797313264450008044033829437414914968344275549916607719123057985650129281181593280204169809095521062390717488150600177309227436190783104737355258638286811071584904505086713217417232900593187413017186788317329315972161146083688419086526201401063932025698120243730324641054305931671919069815263130268383336756976358916748756709095089137615282999177046716094860512207066689673138641308027489938959673996101226830143940909446112556970779018057784376484082580206009489420673417333532904433182800403900466012423665726334403005319302335020064802293561781104073307082402110988793400309023174560951564487339213751264339608187488404861012901838294541858762102378691181821339103458022461508105400913033932993075525156714194546271657810327817363690251588660092045244171723464869396483458116909108307824536496962147468966146485300086304102598388638696749108936525494366411609514376165782984765112665722102191557498610573748817001907017200456541692510143244698917099559409563096879763592409420569537505126301674060374854705029530986250382442936023553587855293119788532459695705670451241847453985373681582227822625053669953159896382714867278474405245380528927249019461417506654997216981656546555457062868871783927295629799630487851597249045442309448403121517891708276251528312742270982585477402033353251244345498126414084698351647575675850766404534161764819362133653149649180949664410487041270823947040301406707911408363940602113391521125010494419036942989805010697099595672941523011442105572922744184495646329737252182932300801965129482903255324712849499159726787163440998892425516102829107178895647109782450240372078794010836614847150781472937139437833649208617149573201018520353151466303809905180775681348180519412476525501411847399457062930599601661549834860157091530913484601242622902807067622410255351551679319478155564228922311272153180195304266243842506979537200893002908233352130729449460281664395598567279403268736067455924704185389774467173539042414837889315163240961693447896654949793369187212561075401492938266321236394568436152742334071811543801244640062393966566969739008579664598845800034695067948427734525051666544558923846784893876475209509206073345616016225087541470147261213685888287004008920060445245682259928550242320981681048856859122866105292782178717450964325755234292508609452715467958821764476598044611126541873612602539123664876338763132837502219681304028349073886502492098479326348207208199098291991639851182294969787902930593113662405372201383825504546058121596047431660685591891546223742694378745925943947955696446441112448788594171410265796373196399416574877264365003571596660137939545385359614423350709332460896405382423528685958845663090194658291468220796848761769227904660087295662397218094924834612369532965880999128796255160864395370000116374881729882731988932365641377700905588466305324973767341551236715449204580715797418393076018562024870292949767729879430226458321725396898492912984439712848931190594861335613951970578721234210048996969242840407931756547575100925452303916988741394338271445527916936109758876299465099937037775274026183793536802091543424126649332914280897361019410221372663550157287066190340518058642439342405117654468342091459297691809790939117201531687802914467334491344197558136018337797010388828380162900812536837938009670145106040203246753586421705442730396928204056022795759980388657807598613640365734339907023754877879394659591353347086040100272757948789152074703475810119741940482162351040388307870376806657180376120262851974167517098092374985611148957740893735222997590396700498948319913802684863277971341440614303159961947865328207100642227630094267310448154719082636984806695673814869815669635844351068382231160335401193726985072157850779397425680408694500939023341517642282206360866627761692959607843259813965884470464926216109872750432020937409658600150158258998530291927299891324900091605962589562558904026475911508293402052716311045212208923220215419705643209906024317695388292958635936143117362496282906134543865818132336227270443583574558566848264771836782235513467770403968787324455218137276061594905605160818653777276685841985161941508160486779666402773327875862812526386600145902694376476510347153676413430475562616308891172031143730199336807909597938341970904324520353612981016316189339337379067880319573185542985851678236585899471925927763514410579497949646837934350040056530692813405877426829993613478538766986992337571888512911609162954642922907269270543934884139583813894625694521999097101858234846343621047290957918879304125010134313457022423971318683598412651544307151707401739706383236697312863272229358999771978940942077202185244653849284727787451181654229055782876279034303230946498331593195890587400497646417660293784193185359746955979775821203857064931006373519622443841198370498541694368044103241032318904931522860471486139639926865870877833569982818514116253302052970643690848937743385992662887237134503534889735033197366576573614223758234115166021833254273158945084845861782474238542488754321053764550070673556839785234515414803936626998116138617194752486964759359995078634528496880863369291003498490224195605673246089250978569954978089863583788482005802061563912172481608831833842059098519384797496713833901502535138537053279874457466081616828682691395072298154281973602574406175555331909606561932166268681734231738132136463395769638955155980381698605350481967856783934887867195599569169135640827870050799999150291416080741782301493371884091302377536197725724965846222999738019558256350264612785114630037259961538087713396290180344388665395044596527176007209248190294562886878795777845750201074580115070649214877316610629210766397380062240505754736907285501308044941122296140599339401081184611080646441098827967450123237728487530478748390010640451581240302657295194703900958944208151018291094393584157618029574717726819820926664040845883410797373823652683835017408516519768428574456189464479343992285822873746591431542424387285105234821781644963851623082272100227584328212363337380471197190508789484748331697940259003670339965945612221851169873484002285924360087888104042685586427209477818011025397456238946073108832053713328315482742952573110702093092156081199449888813068305842134771843395156737393455767169320751199610924131060078170105992621897105912974710714923852645464085746530764300683100738035654760507803634204401254424608989766514485767848703305907341682842217588943605318162027118452246090288788460192265663980718855565975740900435485175740028125067385228589954694689668048632774482754449605464568349612905211646433434805093611880024173327706519296732326223345981222089336495479293473345627985880716567020663166877136394005981130190851036846299165126900652091104061828524337195951075286131932859831347963353377051457066493695577674722666389898007267543967700039339769627767357385256127307040405586663036794445766934397614741636099101087237513590219334878888393811835657051028545670454137877788024230552213164237816518571288904196429634688433950961037669216452690923995108143953293343214883178624577413044501356903021227451718776503066692398370769320901619972174711216826190140085108577471735534398944322026154343893594621754105523352229392468431734609066834245762786895311627637930446699677979621885773210543095864414950912327904707968144344607292377255927603368326856202711016537869763912323718620627136440826634461164464337459488527821044384991671896347455198199445720200094509066906127479278835583733030058902469734961516913652918571818860593312406304894935028466952317156930748890085742343903734725480843129284529843219957792603125719625816118953064878609370175625675673915490308442483604936641303799727487706765731410175569856848392246035739455219581975154109596300637158362177209828496222597224948373050705173135553627477378208047446306139389374845544181572073260955394458512055245659468827654718750818710271869395327480406529702016678232626727435188979835071737324915151057658405869057972467941883771468427439730242332079228937617957943552355660222898376228593475039231355416399804778413075538672283119338949156045563717510488397357350406144711002190066959734748358206241798680773708423491446771505441950264877015459260575904080313214975741199061240831543712973012578291970416532386416073239660947415655357487101144225012643060392778876814760128891405245107845724630625259120061871892044091937457877703705104052244398007433908072386755728210646558695804330669495949043306211813948359603403392618936511463096182442598288255020337846364826022297197590940553827631723291021244670619574134890312107887534363388177482328581624660282595755312550192285293643226142619388673939631879915493473269550710325337905028495187626049944326398810293742489629098753649187842717354113235105762539473543236848222386214112044605201880326126895126173456699802252457878500366454393925364948804011784413020018026919097069180350188432774459453146956750240969416583756833181169693904069823157789219617889905545233449764653284141633491210863856317560854568459546815391483557851327623920622407588504737709983412851587959229920877236551389305604259223997979506746516297694013623503953193344670252124655812281495422577390112405949511665277388020820851822742122328024326231630371858592079286089633986560896553323958401996658090945811447631050480217830539081885698168363383085390762976817484845268913095093314545650435685418152426334365101928985498920684502173720156467265226975293720770754713719710889962601368951540206319626258335083398194949017276129300672676109204523755910960875790074705598779639200738452133859979133303768385242981421298280601440062580690931639259318268886867755962917701651426154469367892501971532816005116155036180490324540324244149823213005694860015018681196389154233490118553838965817902399926733039832823824271322728920743685054653969845623794803924214730755560037780192543820934818115998118799550220361162055384674465467871179814135891509730393501253399842406853378931971155350533889097229165770237881807198128617916727203156989158091073081044330730525502118653276096533550630977468879264985521234118446263818620034887554474537974367240551709436735103456067945330372652844007885071745088575782281511545751236143207165415325937547762418401871488160163672226379524114757421540276156366878246689898083196441125329968586585506558650848668229484985754688589056617689630017893510254631263654280898593606751883825120521279228525577828603055725194897430032162365139612593806384158612016328767080631321236196988526507123765683475130157009375087649112794510556126592081602866291292533816378506547010161258881796078464872591781112396325764203187474372729307727274607089304314378594732848425333401188396842005230558606403633931044522021708160006456150136324232713132614008780090529811415941190023323748139907496383100149349540812614127604964665091676872204437414255044489563917451914778014436638807256028613982060665052644574217550261536991576781400785347092425601208069316584827143410203907272691339760924911231383635149382680870002040046183272022892825223565961553105064994491511242184831181374624394221541617890264315264174562842004910621296592851498371937029708883159880057165391800648989508132825477177966845215123809465028197177050418851876743179841928151129653402281224986719342739741871042050682974027763138594746879957618699743835618632962977093322619703517607015020332982762371027906313756177751881069812156662779043250835065706964077759271133264288222680927859085238118015763924163110401483089687914730287549151395551952889575311327977478773044734105935185505056732820067498738378199566259681484856709200816220863011573762789463710198778228863819673645546419859540575641505406233200422119156503371065627123446506605441856415658551827619849847092211051713349749476199175740120347282647668834359289098548586081134689735010423448181888002836349293604197074084742674774661104220358554420920136656708400081926643726019594936237160825240019329243244882880640016641031606297955483149374889606268659024861793314415539716521678267494171824088703092246185261920618364619881872405225573915904270242642096086678121314382514591889384657391272354039675682200413936904102860389141495236598148562683256414731308129562904821811090182124022185082626740830475043002395764372361027885420514412329564403837330892359464226265994196760869679415038703830655468888092549856140465721061332869467785567392480981638659754513972282660052217843477212683737034201469354125458911459925798492668025473987880880435615818157686022214917579292901852767066928195957578754960276823557678904454227331670034824677895431319206273332593135341868975979024325463516151746651957318748991852254794240482749622718454629256464146029791725034098495350048048625814867668589438422692903480758788826219463331167509578926753172442165064166026905215407098604894014185382767772145024648222555782373884325161961393477502377565245961153853011230270987887032097611576705694962989448964609155597076296719054071065617157734173573390904763398035947269439871131304526716845550831816317464904364761646144101121032124469670740935535105896154671321245664391800662337894644263399608760548041311424869967595495584934183620826216293444454755267538208274993699857421595985301999256936829400776622539627752486158211118874671740359939113178433926295646876985946567869285061566159025931849116444157691450334404223873069228912952603359168195380754940051758422614716648963885998971899688674225665514468785298243223074935990511328037795833231757678619039612729911713003962263961562895873018075014857919510803590893786972325399223848680356311642461980028000915253035255724917130245903483154369740682692404234370317548168548259036403661141267392762259758250844846559985068707655411393688477920436940351726529403835390569215700979209177941217136075275584551432006668635458090812973439796772987474832189021088351156472892878352964178318628523450486904246584616882378683377550675156332744621441673643200718028800472132145254046503565372973557344691778161694933264841374997642427455089306026895090130790560673331257880922775539552308543644377191722710183010071970067016987312189551430267275228897383963046820828398446605973664305760173153206633158649916149372184382697640867005082890089312445208677668084744756372890026865889047123572978781277073006932145739642241728668451710669021834905779585115706440410495930697233233334936010781412337008157887809416078954086671687476413606881893307243025446332319462626605101871037719627588343960435350275056527495097688146673091458749168934336094548941299280048317992420809567082154038762618893043841428966776139237067266361326675780202135518836807637595393635297961351691619125209507582795585434633716422932908028607854054220432425206839201870121745517946521146423395205851959407740341389380459267438030590897729281621040988654958732592982819605404835702596079482289087400755925251845026430562394985455958963098466898788142643790045489405992749680044084161108430073810232191955069109413643879492922642964687108180820934534025221561862890882884971216464301149686569925891561370069800569381319602765587685693434955266217893238096154575736295071329273784371240764608235608596707155321272256705838023597186607477710659545590607356369568335596090192894856237040802876161230107635871587702637382818589945620154021561804273983999688522894333694293700243749866610273551996959129690814588724744366538021791357570387686691305860504804850016441286669868049585242368168944303824176239333061210290192036228237228509797313074086112619425702520425177880925051302699387273097447565854002112610699604735875846821894944029384050536583841801256759753211602774963883488880331975232351653914121250167483751651887851478866657148232834328937116552838812614506997183955842201009670647911295212357621118770946267584141310143562444652555973922802012909020830268423070400861959240912302407686216166035493931193292073168519322322069803974152568411720079818944656621728517379207969551813230200769609195874862531885282526225754829716440400524035688154223966159959684700285800956145433652585488049770496134909106310652104478004152800754738489382601091570935617827439493196938952098913574618153716940638438171870519344593615148527831259442242700504379572645023820284364807510000091929284925740653531294580646197100177224712516159411531798072355095690110512198442064040351454776133235384299504198119410347648643853883194146935950194605042464322077277759293890333814057107146310271435929474509837110808203794799658773210039368831305571944276537052351210246845648712094876068428800206088983427302637410489605876043812992655818147982927180084855872878275071483610873198106192031814092481705819419298908048497836586702669121218623638090173039216699342159186333813076970227056763264798711012911930397442424911243164774441216316859549855975965765953648053124389717613367236709914068972383125247614510282782812819933247913141847967831464442650145307566264323300866183258368555987586546871791634432771179555514099356256023511911445201761169780230343755565711171865030185128671541471238142668866428970298990093571276918824399626763901882695834093654353673808918992903500951072297987667639105534382114508502377229784540191302093166750389107972882112800281443193645341950337773502242266830662928397320156268751319450943760950757158281654261844900258814506038263413251311826384928317851635491017519071311769337247796527880242563838523607653047479336702565501463122715499943494290221753722481157125670511380553632605666575092279801615092573275829782201230530255738760349871607302031732838840112079919828822050717958756475584188676710415850510676921002522566082294331693183065843278253003692579024242671989799615738620802212075397394701368350592622622595861122775239672761601054024966544897387576133844859914581105197150151666025482665590937493528602075424723496220464103318013659761559565563180597673015207577024720353794247273811757981524952684687039911331014103841158759547023556582941307522330912867048644390787157304303581650424573744921528065875575939685029198492147770701648910780703490521270621662681323583227593351380836310243636226902825888801941523242712882548170484250894246564858488227877478635589750409873606215710651069236077974054430258100968828193903013840914622315597835640530841785246764156772127471792489882272688747450232239740628408772028049294075212746128167893319713601797405366921934607043141920525245799043547224363770477728813116018469678579090039504059027422067763477639305183760290162619617672848120615861821537476714405088297845040985246021508164439239209970683591464285223817980189187139918227934762723745235251055333994787512555259120407134177839858987220008516308934494420818278075075565775052337903081332881286779888641536919613832633180735913296042855803356007297595708865407430369885986926078944968192419063911804662317967190348793296961386249236133060358603835773117370342194841388016918203886238844113001863699038472689436146502869397801776925171666066715253667004967264510220261113491533124396187107787289269696491453653450439961881465258784434068171351950760923298516862922104828964482256138604311659647057162082060313181043421587203515492999888146397650516949605253724622360105640659013620878262749686121399649389474904078932111295443581188027333759646356397349470557238704026553765406126368839166368892719670469211853543969487339824823707997553690844396280027567725268320595536116919437254349443317165447566034143807809362082549214540426744984151153689855384991884438889210100612187369291115293797947515950043000687874485569872068029307861694655582756342819393157381133054135282325199542876160309162823192028333494949273428000755602218565443807923875684678218003525960180829108878749002349850572253582252693774990739887884906113436477554111645678653948407901323189451490045401495205854201469044086786259056648652714920013666833380732068335984417465556052480391092747744582448905877428431556777021847764024056554566096728375491913961246840458105824593457538241713750354383465218690818994091242649963046726144110690094023393914677872933484877451368269544215361770724499860094134801069096588699313918646217119187665237089032154696087007861315643577189472547363336988133128842198276759704694924407398957827056915271681157064275336625471531501010303483347713968491705786370771537081213478160529989613075299120183359172880879439789086170591452087046859547066574527158058047095809346214606356059683952999684356010246226668007908896732342631392538036565491413374930891365135317281214164818500278838281220346998120614910375674830881390675677233117651839510867813674859752543705173585017513930300452434547228786037632788611917703879854341540917587048208859613257253061156204094672332377741027718446704781421267563814381235285301487134918118588626064355416419693947811480550271399536993278388031135917415182771562041339548001701859311039223787684028884014469430201101081008222160904232724048481952421544561656613343916956734106195221836160025903868861657149186670327591633453005362180339891511199985043408486224521042141850154456038280808957485769874289486514868500182306715352754817612648011201227957148881891572149786273388605806608175640576331481536194727670699907829972038623290940450839956952303181502733228580049980651584788733538643816081221838898506220907443437219547794657487140027799371971676711145072492862648341995605757369238949900707803449438744526343464089523507217889675040243219677990109493288950449138579086291795646706753366784505548549660737624526269275399591604722420690459160157550904528221986092965730696937259951865040460534489585954797495556327535966488895290776559844313758411658132781779633729256528395316658693490029059650330150818385814555567065795159261755407914494167665310426006080049818268757815869788347716905558712109593429506313651827801399012529329839253926632564946252788670959150860000575565111909864084637227581380533103356626654033657453389057091624455970209031386432020598738137240162962001320159526894665889225419324322885110359230281084488531144220787045153589023727401279619572729185153927727887489087735935171694441825383330655102361091762561090414326604970985053184228081702352559743507973484666601938855567340519152542306257283766723190620231703795711531912177717498378865454038208404521859292908638480443473191724001341705440948709734573841604127135698750766957729248157528364137975253605905606638217349023740340644934481573784248362643930520953773097171733658421686048725788915237265268813804814539805768580986577461089668978100535346252948213116130826874692805455784862988039784098098663965681196681968659237590285932852556468429515826125226139097826322916455154315808202640491235602429622261306834980525624792324656986288819317626221306150790837464127900436002955249116563135050902696073241995971824579099963361866822366635982479641326715104833278457782371576575839654236347143741099103803338667242216905987589979715236111565835857590409972726937100698917972879673586613665761485396043283007743095250098292722962210423403030282959757488901366634241741212664534994299332636741524907630463252217886043326612964664563665688437876508418628382179725814744961033436293419796209575703205364258008765082999826475209883827823263195423120266748101278377120207124941246294534880124625620037780441112762409399866235397885655527915783679762808354562280640589994578535078741065997086593105244625356261855711162618200049878970355423905427851244905261012421848655230580710247553185946688633471740709989020987293495285276876955536180648271585746685884503094809133395500349379536192209473501668887368033669003756620255041996790111383046377815846045715219800451875583309357983530950094371839777926976435059714731220490762378780370922972261530233319469130763831408231486398162555572373186108443779104414011823501568918575234557231548835549858042972454233244896470816633657349264111518131569893590507930154416904128285395176148681774141462066369548489422914660829705348691317707288179298983214904063737536281483074504434061400557745420180168610164845400000824515571838481130252612237467383215467853062146108178738581071018866640391595765476378240221445665567556677311674816560005825719484446605806273840870770165997975146657992679526030519982589439458314313523257406391340653999001771460695178018036939376466845635204568993512241874301150719454750481699993451780063968446702504968106031156972875499510796761839949663876841176827593275934320570156779693861783301707066080188919325287723977966088545205679556684109559284176787803069440571934473479709378223860369621808560603901858341258314501729344718504267946425019429074410347877681839848574445339303178556882658427058442041170117570052662486680716673350506726711113608659133498149712271189958241091282229145325222983075773251027746701171387787577756106361976836106629096583965853981437644543978776901882558450268118048813116399572256128496881012696720457172799205744164425676690699352992388988605520496420517268814478194135607097882677682518691773139500408959706588108894842819472742428186703289878415792536291065394802503577492483006726882735136486150809492221633124444918300306658283340171832054217089784385927221457973775253722713111483040828633947876203794901794217338148143685138424199018096598565194486764821524987247163158590572515136949014291630252861674347262487989171030792137817768940405031085014903165574601042796098929453662626653658041227675874002483070676483419513724110669652150096140362902336327447481434169230103986319450512380382996987082657953705890349661831632873820894110329022830005838307975604943583997464044337750835513292361059602781274192189983848538809130811244310416650037231392664348544402794851082510663014074546202144360803814197841156758275037708581355134614403184974209551915683196635942959113713052134405016205655851241546682362130100198202240668152193559065945092915432749234189346660068434898844320987357074060256974098372035642144996969293293416507044495502372718828692314793206335379759669338809397459656412106914573347982345960196212340894478922545286961977985580231686608819353810555631815115198272416736187006475748496398603437354131937611644838409989501175562325343753804080139279627677359885347035224896489188867060974557281385232334609773844338247564995723748960535971452257511575745765003785148294457288855461911645333577672429608320063615584381358155859899650988666720367090877320149814518762136530691968808539644770692562986996806181137129948012768605170163392884464820706456065098734754314722267898292225106445634891764461991204534656167282189947094311344193621320971163030619261121092865839029551989309812068983287086293476384223939560139383242549642733494157441741284527857389232999146742786853849769949650185516558487476012214778840634958553636457556961963787638553985154747076140334550151635097485792945857449234533658183957782081568388774578227363600213408386694845098406157811811270282561916707501774828288579930909845014382293199129875666790357409988565014415020813160543764255028892154899518776511022922664615698927943676912190707039017670937401570868080000678732048740502082468157524076626825776928057028331271558880954368958156336999238947751788058679035175414451318535743992958187316248597873534578195004757549822999288676358645949554477466661642384049803877037968458414347578095401541120189682266586258304448021296067805514926881017800573771034167268351893173435754232803482870826244051613412436036189081482409232244674623340894269461025093556148641230167377596613706348630436549128387800137643614324245543213846532058063348862857674585138526820464084839707830445788440302832544990454986016198913375827361590085810159437405440333532465860319378596613579075547094578967041280598768993047865464964136302597108003425662290448869505140876388010044901326290785528296324532633578797472378841167797345181280596162803449307738678387546006986823692551483351851908769316571693987008449061747407981146186647156343600322896990478784613266626018445023194626237980287963401405072412478167299682825663985227659311350454251008668878976733820741522971838734114852551274686901400436712432703510744163045254424973063856408961228935587207834919810784065155355730737405158308055673170352737471535446412775299610842898639574679475974070335691158324795250679479895251076144619277493106012936406246528102612983813374139659840816770117071849454724950373424313017122571111721592570646323354745036118729728047076329799351745331192520674961135570971906211062859051176379232126039005674228630562979691577738763160865214753268873275441509379907420381343191407004878047151829273868990034338025336761310505728035172060972090875593754366108237507839256371079699302409182196238395745061007731427613834319056849689036542903922021999388600834313044283799144232866431811038391203208440953780773539108685894304965658221415327578721842712448570544019103369619457297874579248938665950550862494064035703027495152112665677209931195119660758124783366257587264522551229670271210828659055993973839443582713179116189009525225120696261110008318215561271613971056210524764747990804233964039231340932176280064319383364818235738340095456885090952966884035325763182482522476016649397860588553229400213756937613157058632803709260786666621948053366518378982755789378763286887257892332836201936149128377686365465334027680127638526868521623860163220085552522233552698592099316552393555927244362723689684577286722289539174115935406145085226325918701858541623992907874259100936078071040688153866355545816797212816194991404839702286360658313512777748565914961654926803273795894835407209095407719237986518254450356722443111623667925744773743092681479880490988971751940359370387030311641338693684919981803576458023508302187857191600505367523388232541815620315719457333212244658016964324362911299093042826043804562688655026774053471783555281495783438343822409735212727963738088790548237175489506316858418348372115325916521263096024746411871119456156177148189893641050995577613969173278438887587157654610985204798601420049470477005441992520945574622592026274363579324291388482794730176223636010966354969230497852615690254424283218484524559381953858558169071909810322314122868350009064658999948599619132094112007513605043677523301553526871997886390776594489368989979825740846451704212984228042144919644421110760134947575376125965293837195876247583135526279319990842331645153692334221071645884303013639285089880612399484406369884317882350980406953623750889426179959858885673845495028890311408904081163564429225237031229879212097581305231048064022532099920845111618698165555221744538350127003888798225491551840958671364933318882241815538879171764776097799264384922205598036604081116252585107507325225252299826632920083833595618681050686044965208890109804633644868243803429064543806231185630840411494900087815700950851236935174973642345895014631890272891622041549810122835725155592869942386206374027169101094833686968953286015705068684721919763984285734568094845551076568914123385238917536360885641785428693809508456963753218059300007736208895982374605330694747450801330665934514790798497226427390479292768481782011693745941605527104371671994758305598001148504928784976345978823924628852175397746138459100122122888027098145866286298577059552919580471384989594429695632007422858532399036353758804943522461493268900376133087519534562897484735037271150807677739365189317380940076595731332487142942252422200024550101469023452499479449276837373184548403590645200934076609534595147654703428044445219039065051236265278356621123377623330306386795006446703753275517031497047311730009304608115133176572073306742825034830665348584883814717614009905432424864131588948286951374364782360738974167034310116245129366455037131247326983752517294158926222791393629237044461778206411212690789759850552098615876167827413283270900753257186363881437565562358706942842573721080106794193638349587955599148471779630982184115834760882734233359551449213425254880827477787914905703062656004734574146343353578502126000773735303460912274895646769756487410529789543016241824483983380636574543938789072201964424444153220334167107592919267647609043777954700677179931174436565022106572418410617715795443504374545989082233895628788314276399351400012505378367381602759799590666025638252606851657886642872953823763298283102665443521060521772698744048934859816118693064894220417487873366706290260060199423402420230908888858028214794586643167990614295487854256731902079884591715852523509786342077364384156385769885052841034708827341481219230312185757359564793398025207678933101661607844159260374804691314482389750807406612672897016530822015899602733090724508133482955329552175223995756642994842465538644010005804378557219196480012202466666346790516167001866537330785198558942985097564427659858108354073387968535483373790096712623085708772972260388920790246737521107451477304698226550161601693380256521930568321976911801843668772727470905242882983207017662431785380918822725317636619655163572445196774822469676187372547892635482732557815129488898608541356674670906907171695589823358806511912205774995525732998000410878814403233147782627359073428864325614097637865573905832695751430241725234990675388923226497479842857663370333237420060873262393605429760485350363353644865540545321130307288187428699024617823287028067654014473386949534748820640486754181849235870158675513052015635807984445580002772748352287602777011979186410426854922551462218604911775245080873224281955333521393062147245801931520134530396944538768747606909881669970116529411080982780575923212431907091656370047602835828297102836692275727704012004224220006004559417997896444341251765164813130924335718728450729992558845898939480327886363403249482012384507087618550970683035080173084067527059305262481622325946450364627294825544914221015817037479465097415601388296927393104953566805486693550089377721663700534604047128699073948788705589839253574682127345712564368017840993256658728987548076382035448588453740925619650029188570464529902151073829837651651040743780807505150253752975941240603771033788153846667328827662377236975778848260026486941927115585187470601756755820503154086444557972070608696178194859498703605510995549396603510118497969077540265684270611703391787053410349348078865584770819561310147891783772750217900856942785908002262146516856421388040923080430912940725002563044976866598495059452582273422880598419623500197311191138637150981051125576603147343757189296667395772996345548440049745890634542996055390565121158854610808347386270774344831095197480383693915919564950183041331921961764865409500440733787915791520902450756944793378067593740575885424307463893229641580993514420972970011619882691082067470572564862858269642346791711914767389662184714266005003610844847316786724290064540159820809686101000384158092713205714191732991028787922502301447547980147940632675197054962691125559348775043920041179771425979985664135786992525455832516976268874355573736445005334396525988041786931022441843522737479541143839811634404050322483847751369585486891706290427513952158819666941761776384354605482153247471832608889721229696331347168144234312062779043724687830894721288344986489394969137129695608468446124678280857106098297698116811815345717892456866872052971362653228277206810090762002141209217071149118849402777300834187098670942647576093825436760607317403744267790209644742622752629881169247290938116670693358782908671467570422610825422728775108438066740610953226761296699218657125586561071983108435599835505436570996513734807693941715649724598391836478647097588648003448344278120283257669824815178838639478251105626103642129432077738525153994955386969444911066879501440052975391231607329393031665775563810857171777402136978194682930576730975499397812151718498917528412266027341116158326081878396795927991383633807266991828554246235326436753502876429543144259116707325719852760871705756467625525304141651802229988269877931759025285206346626637306248085007662116929080541474815143656504598989726710054356739987445501574507682365028517669227708558802399754340910571923604925180402301486324510592017082189952779995182262609412936988222873256270012832746508123055234999836166281330561396268123188132509225088472784075279359335875265835715165881175495602328254313978954235659690265112942009237876405074464353179543733567742647638053077931883675325318734129387003473210991781756485176802154703919732474256738350891132233380071612364999186026348787150862170893735189929152054663318176543839682188967747723711771025058903053123443867972026443289850802210232109147691528242872478257933546391628941382065620829678358064445305666456815231226704991589799392543976423177796111266152124894144417525969916641734452610916835752452431206023644088824417711472272627076530247222963950524239204508730052163930447148252160389780560082046915604410075868184867747247395322258024314579311552485015909293168113234039498335957211850936739844948306190058373874484853321279567947311435083420389969186683828826384316542100234789646465528655306163813972698805101615688023209358516039055201063751948081204012162689821862429210373865376936310374104715449389551612872146401691420534401847422717634136877133297262180645585667435677591981352420420477089209827223797673943296014889855969324858294076319556239606978242933122352150735131248578977612365551739490498046343560605942827486262199250507295637914497674387059037286873282207072548671379314789593594064438791632379772292514219202225187475613645459370793890480427692028586264137443023798909298913587422823110937153289755043435881037987809596644075124098558656687167067131561419057419539925168298177221118777165443960854873174145338790204162893773885739684350975529301787677862407354669299053539677547594295311735155302638821420654708636505958770349897455914996425569192349960278240577472691732852376997478448228245988586797829721850490249167045976320717733912487000290764685560443724453738773335370314307963197261310530774356946655571551921783859476567664215502356745919250002487578059455153417841127746494423094144315901522347517955193525709454949273522085192875764455917160137672854904421211927147173379386868412503731658137929695747964126786886652401767815294978754074595574341484801608678931840598403629460489627608138944402118322568275091120785920010166503939991490425140997442639136649968964955948433448215971243083691503259338282421895592023057969366919771064205667994509475092940645278488954120211128733011960654758957628917416797422950610895440522938660974595474234699279862555578085001725464831644882333572110325589420324313503805625592330492420364297890868672380093875496216598542449929694369184481381720098252892951941403973211176912646695742344116084778916617145272134869251612670569577445855194909508526844363721383148073890108404571565151594930748399793094446035938513908007855002685283468362199525339690409596476102399480272605888835240397572183983779403883162565715835449957337143607969748230246970662504537327981160158860571324119888150212722593249951338402074065447862952142843709736265322762392776371556053574208107380027440362166559341713599980062330325802793943218116765937157973895791203232871202876922181708750168851518685355539987277606930362291445799443712304823069132373132548527042500424400381521850986461633455948391412957239964781819450489248505345657477619835758653335762196514975984041413430736138937788526076688786654641427778394504877027705232697987471872422130609183209900475847951208404471829918655327515342357555754785952726106220032661071789947112983909326630184652201114609790447535080432673279240879988305601987887631082259084593277321718646671586413474338824714732298695099707373183377920462448797206769991471648511146634195980426425421605106708892088917038122501666508094636327380148921832339871904378254797643398297790170062783740320230535624192814364445290426208493971985552723196111560220575497351973694434091758240807681174192780388771376084092438411932726655181865636677064532273677768635693530064214915522129971705054693108828593529700907625249624200237432093936111282401803931308536884330704639849405720075717165785784415568875219069868364979049698773071624179245590514592856558440725131775637691569351731648033046871477830034640250166949144801024538759930412914360761575997167631945910750589887201088358555177362810655877654709474920348284460084912928682391195254581923664264009204447796738366012398981443348253088669293063654401724603765994585957513156944286030156481438471440635795618006611217530903197174152579097394923488519667090613706189026975676245851448020086786364867721737415933725380830325372647930796209285762844183763515800918598789057649448559868769301847489417442506913250436978146621967882509101383107141049297885862477128666033395597818103280005167520132290794911175865155909467397108292649344998413677277257676960101578514291084423551701466465017732326233715192514693750119949843030728368934259782380261268578459676248265766437967972865106785080896028202972923145982960821942374083545542296395384284451241906692112273882923602606792865715010589635175938987628760095269611201513933716762026090073020326997762056866046965885039351776729321886837250767668417898950801265173239408764335817447475210824071994653458257223036654393226230850935163986109534998429160619489578631447249699051770424137136453944226388167635900941549819678341753936489666761649736698836546761152049217069805246758629105986394252048873984323858975302772894556862150839181356934724703314835826943220064357869744839457442400959879918920574476043937386445474135285443058162777372553385942616374026943085597424914472073428725004667265471346425332038568733970962295374115849760617941134732500393007221466692220314608665858262277369799172836844478081279670749059539078274599968879140605482886354784777605301695388904922660200165616944391830509602731277076749001343841947118289597683947021072899667664034254906504268914959745079882693292143805363378892670818581183291653852865128570141938734142336309240873723507814480184327411822723498674537685158608720460074447388749667127905250674530629459707350716399510502773005510980181861537792432386162391778970913507626167269607351435084146021643872089459573310152580704133680149821360904542879466806888349201669980664946394051398959757558564317372278478978221790756922008996763301178477926636717019815589551573850314004439758269764239427909587121064105540301065997552094463319804095043198532619339714359342513626566773182439528396575311539034220409167703911958836024542014165833560637444055407754108848483553537381369159789308811316395824485813260636008082365511501931314703390403890771821634458044315897977875981286813571753896999366909222490869207179024780073467202357343835136143033731419301121050530462104812839547276806871850462749521180880047891631024014258055798159051707971279859687863863070213930782007916233041926554555117168441574942448374460385253455271921340370884618029897981295489479076680328543648295030900897919431728900341954847314354202486413609227922196851346814695388416257308312037554788303858900272316361585069177940594682243499239521661172310510130383223571335536768620907575394269722854518992558529629102164523036715277066194735295261446336231926662920581145309634776094410099598095096683663022126430790067899047429655680010510348509776288643608567792504885079133859864677309918990742382226952103237308205013257700095636487208259310080508002905854380508583638785679725209849080473105152839457572736819530737176626313220876455003171305753462398528841617954582709751082647997819391927552629884401453492708769022464932875038848543621155699809945814431804069299351546796087472754898304985296864438928195234793972353272947375699876860267065374470574724708381754784654529833205846576840353702017456797195295236355406201432667673558216758512557206395438964189864617788188517378353512949117601662546234452989025268433924448853364476724300530143084789976371571910082197609334046182432435322460898376126039904994604822615956719841235631758750146384200168880350659700306989098833189766968694150815316782894203130594268432348253461876449104316327887296673437447701724769497995415867781763758199515996486425126259374708547549510554248472192996899325320333561591820489364401065870495243465809791694478867166271602631344428702996752346579325805179558346277521122146778845617484270885681110794977209568629383380515759069968007822344894596044326835693103696924293603974989167341902944628337341510807294709813677275397780945029679958493693646234767736064872572715118027637579103448587979367285760271311182790222499538203042810978106609623908739357605837023394761527867267447861744776392718267583746983338503053903343742112894686718376365286261736848711518905616338278022330692081705771960311044015224556108722856327561123178606449885975135090241278639852816051460658739650491506247588825224744446791368001158654265925819230276507744839666380974200436154930321651146778650752325084235370306781213758320282674638470043565871014065640511693830311830198256773301490664083042699672616668104898419307608313767653961103582348432227430315257508845661191714920707761997677329958705629505973303173514701629692238114718279097045081547444249119964187185971777175520025247386254126490214907531958504342791413017254973079423294023719143346858343395169583764003059772107594669337875538889525054568268387925893720497876205234055670495786843922107347669029406722196586073933855683057209112051926438340102942957655629049048160009815438810952304816999588743315030013088761261213726857311050920396655011274983836799935719559610761192653392213915324225112243768808737852123063149955228700795293081179072609892503147341891373067075700938209151541971289358958506820511106714545058388907494572499665530529576418677600555489919252757228988447447191287286216981868060865262183452551091072027831118559134663118376649956053107339379366351554674666347942389827429615281041691520443299258888644171211723914007502715492142148882592680789263708825534329489604759042603140556437589881437536261461907636479095545905334639178542580318296816938541954673710705481110627907973761061018801026501920385950500998305060218258399155600967287527687865644594906024986098911685768535342685012867118399574459026307875120960771358925733319787233836075532694729403932588761978681968928144243021331126737197844572670085544769559656185406916386028474261598157679660561648525590040308797651344645129717003603857240619839400601608724251305890637741881498159124965151234546527478206147933505398391348532297695718926552699743012428032949961000737870275563289221181247554845703937736188558000854899740358562054237422544444668876265230224478524310549706767016880764274561435235675425108181791133410553160284753389511298196917759358543617784865413970620323436943631344731643689696587219813647608203752248496338456967352419942070322404092039396963052492379963189407304662972686695771195617386097404260494961547308060610982509246461392788696883207659964914995846540941120284384404673824862809200798396672298666775402755661766224723949990125160268263464297932835396455220179658069086846727549267793793887964835312759391859587534968844460149512486686187164269514345643576382604001108960687118363314949377661799815568988129732379590241867333564115990613439760466033894980084203093809163329168893416177660372181997103248619153651674805700100286804030152183880458229030838314622094131574319311634250278783512746552225605193276330525564520094122521149088312925010830168560295851642715378462125721177304372030340353219946840937305522468072908256303201485130044654078515212775929716503384244414782130860446694462810758140496413990924794944928085250255496374637883177117817881279965672126265452193210303796307176923228302554242618625994794994108318208611944330580906037283664199364801282230262791207794009110545953017339933774514315998866904132748262486978893190098134042130302534288379966678964055403958771657680630819109472453246232584518796189327822007258525381623059564472478481243583120589425825216645367591889300489967958874351962390528722468257016639873990684266668185866947552732217029596738773673530091015365053832933615152538418742495790458338896543786821231531266362791988788569437670578546249684682159281549959858254787827698289939487516966639281037014478301794777345553030259853388643300869320207395820895275767973554398489065455169011387747388755413440427336936293485160291858030923239158336757385888887854564116912952109563564018871986842053689925371913997175217257345869783676822368834420971862800138513929436141526217371662626128873124490655872163995400300005973043892043802445666554224887245715556719585854723334169861100127345582179689846266938075803689059189192444358273499432497356754356180520147572691220202223422738210398579995904400810651064960946921600642067490906575683503719640427518184868087229141258313041589828833303566595657450000430088928023323364020807726758712898117487443913410175978491878029589767528951834716796326402719924118034609217175662879765820003148947171549487373913715969025782356073692761270663050028240500771598200997725440637341321292055176912146845574660566652933886455070339521316528632514659161891451493528395395721417631078108919268748602798561464601925922974385886869889310322678788912121524075566587540139428117470064781893568841836538314280846659254806666070455034562994353948854040819201938315528146539462135686893131593455082541932967100602677801569197111313374149956041022736273482545803471011318926642292149113252452760311690963790098330292387776440578666661053751711314929436264733072790645446722047638121596859189890554234177486616790906030378770287097057119966154935128569804483841628061361750053328786070187674373214268165992405834887960613664685104147328930225103727995282736577458225600486692449693421874437970811481608556008529343508160653024690834200788944470996744469827999404550560458067565390404050869019706264928347298295724994119136809275157485091547107976934925371434846017889278408890582310413149923406378742511362779296039817220581838676042424559216001819855564251730632529661814819805528139542388357955162284957583196142498279870273069411130046156902421851548660111418454001465080825275382586492009829823737980232958649925361801943658387011106938585789217544078898660710803966472075424208079284712795785454779873653599759855645231020789953577022321878332255354375606816700632302936718166324543751779402169217770617460549711971270990886818827735672795639492482183477477997896462445329687391522239592706635376483849257073141105619986770223231873020753158380450531104883013099858859775669468365888259961914474415495768164487665812149512425964651596468582362800982384200465726948281627210508941086453625089546754204084618841243891818020910816273480257676254332420637602150010781600643020188503546271002255056313818881507791030828303514160092850734889553339448473482969216378545176286780785990873157877302335750636843397915125004704400403349865463205186076744167204102632203030278302926292488379016021732504292991679632455782690877566948511158123032503384868532482188803473102783988814229912791535253714110051789856272814029415797403582283793835991032397560929777023618491464180163561911725700044205393448036214712456130153891225496374972752873632556358259088670128305130514177350045491405568091277373923897250301299564745553204580237723154140833982887043123506682186272292491513675069877832276345980479661308461344260082998291120757605104691707849004839796812413363960312033966588356526160523219444315007786156913083117909608994808047518548960734929540516118203850479662022458913168670596292503756238606156268973750056620502804595881530651483905769805348735819099314703254520482508514410961149640736690337427475771594167665389851171080984470940915714709555816700054715892221647292402743326511379309566040126348632971517428468541170801255858174783219640573813566371501928683987299510394782554748258527981905372683364825025711399591459036161329094187335577534558633417406267635720831641869120597590117383777074908299646844205310457333245372704446301335971610303842728608191309182689896296335977539467330178841531944093139829669644327733708287484929170334541461311926294414253266516022754213479989509562075931983907259673348089051167678364435672438698105297121832912021244258208964994795006565641324746097758082154011117391397594875407761171748869367761508064373413458535175633243597400178581307280448572387642717545086509611107520129548714449581716818085035549073234889651397652506997359850275242526026429209639541840477550592709309117683890164330377643001151183573259042228659403997840116261116628653606385321527587503314743237044800365030916905952643398871136764506157528386878094222316556477945536842760426048172790393401873051410665017989059763987196883630174900472585100248539756295408796221643933491558018328467513756840013203438264812226678299965998897507573683998182512552421214346990518321429686136796974110465934570766709396843918065156838634295295352380914704049699883314862022270553303127936262906230843513809250573402987694814824119669511887580566098708861400373227329329157803676586265180257947373803684340902456709265515723099637774010634620550204860437795557087679486844745791637534802711356712036333725556006374092043344468528158254876366604601822557031878733700861662370651809782815906777859422646726834130738576549347200742772735376601268734403211885756318957485737802695494450697212922921524571787990732365520062261575670576334162847673484476857713524501220275866899470280048118446948344108823945077037153107398037655859141011555470052510142647598660226527628616162981853122823736346709440065849103895787615942833039409252091697276279120374954788391837854164800347329909950776585397602965015481465631538713418108269099210828885595541411204318259775333854557528432126794126645160049615857243563716307751237381955832767225846464039866220204867700686935978185424422602418362846124325518108752037002042129032126495111485863710757395334014096550477483615643963976302961032349156628049235581680383877181822711139455456124357945226621796224020260201915331175765749342849791443071682295437542164354554461673281602113264363088222968964969929823887423455271456524325029369649390912453927806842973673951157105215040396274177245962951871883320257332271326124076254363744334137177171840622903086588020826303734861287068465944553632479591270476973859606002578130971028736889420539664031556107822839387926459251199290562692237193363325188951452926525661252619304058826173506047032102322539011860386309159872292349923077014573686568504165664822662109640904331562778254689178872224082939145329184457955473734976058686528476725058965540059055901566986193137882175399278435566357092834644047577221963785415721397951733732708587212405214969947638442268118339858774635266308062096983525371827249342024806385168260486338905633397708293265155281537237901926389068888110870958922373389844102429883422081430680661798114649941539380820278289705606989974776976716578584427944535306096312173111818210067193704300162454879750005501495096552683102613478086092223940478667039229441871262185890975682185976321413098945678616477611016874619683887535525933562526131431537825231968748984047273661820021837677471202148561713045280019344465314115368737785054352162269663218788279849603395656620493815104111689265898593137098396454592074917833583939856273538911969681388499806640434144556645715796966806377297008196091462332421987417412716950358648222915822717366524217710485773631361361380558043956907111301641659444724296587693701330121237992692688487799262266257562102359124072217175868745265072383329199822664357333153808973047203996625939748409472861825500591481422905225260226423100783831171134257007045640789226052944513099205483587625810657606301118013528211830595471031232591464934657191789043847803214935606044609711894884719896232072928374686741062540954746811683706769613774674342126856995003701963458285158532447453886514278216178757965333567192716439775232934380346760144389285167131653828608737338421627611336616256733200321479760688027848622873805682615525474474827633300203157229860768912624639453916062667061290627577933482928313962311607458562557026263138331160855624289758006267480748832115949316935184381238395420716369062369233679756165936354434905258399042177475909644646795017614400295342659033570814819159842479258099885766625142711844565442858997779828394838077847162658462456138738058854635966348313016863626785316448043512359501271463071138302331506843055420092983816797590026590177655816516963066114181835332842061027187828500489110828410053793943968753024116419032736298367735185152507020084597181523550400861268053064946173843734763664316687094640706592576341401636610530638470378145028794223586500279270036225780830659761551691204912854770919349974485266752902713531244692731129728315144747579751259286688332180359062711508839186233857398051135297186797347626821582279142034339002854148995295815632707057293935815922307620270698379526538511321600315364774013343866596180303831298918532494346295989819031404612402571033179217403575826893312905901613160519097357079789747624139238453799867191111391055649120731951016593865954129843775759074015894992849402201535068697811969851604684377738712131564980824658960764077684285290574180611458728764123462182682815900219183811416045343280487027760624571450242873827052274802464084403027966284392563100426032459393412488412876241482327473957004860604557337374746310223766389981826678079868738617390164432316283623625965716833937063158497448260958546944244148416393916549815546640041962828169485400980711622701279453260507839011795819832086899146973795731760823574079900796341118519499319867465672374033015259022905614229626732336106907270515369699322905309515379329649343701201399014222490927436181623030368812130859761637059106012179991242207280989987182924604507768874550292962519763467515386119288801033041597947543415235416594734211920914007014234011801226799467268128853547929943646707759763396994811025686722127173630809487597072683316186267311991692908494043791012054993417801257428361303323484291781451045405539913971697084476047314050319289987869590379053195315984538367333735619124172412800544256085235358913844308059867676119483222919181358527840557119067803191266735743731564747929375255012296176519697435909251005893958064814825793133655778613535210436845796303024081689337801920087521878609230519786670971644424647874692876294095481658085780477681438180738558336126329944237206995907435536605380926842187709667964600110231701035541919083952192877202608083811408732518989209147567764596680239924775751119267019105255841682933957281379529118052187735713897367782364030855884405284592319030961984671210382281021892996868239402001553657534935389490867616062953335359358650672772977517978700391482208096393328654755227548360738177208018572420382948377723229176827005975653588632464096893026091139722155000610562037280925936282132208042790793701914899096756262978785836735775541313599783341100546648187435121065421005843859964174129826640634319411785701551464950641389378153691963205379735092889437067932240009223857829942054275771524151522786299013360005748185774480701901981507511823408185939649720960587091331688898069837835218943363114998350854520330156422316292777654515993212069997870273313579078870658389009681492312998499570801915566978833203931105506844142739163528155686578695663012175293918476256957305972119567635019562291621063141439901113620894456415480734390209199025159099360809432074110958183787243202564572248189701525272597036397901356629602094596201673494870685990311261608298851735803872687161760756418743899556671936372027513664485575754123956824386019042130784571640357510052711826135327578383334338247552149034248463686316299127076776506244226908360142474081275550294549064361875452755707963047797402909743181582042058812453824507834796549510548973777673396628891007266598412389500170718472476719318009004877849918403294460171547599596539167950952348140476210664362500765330405393852055083587365961827176283104786224541293031319498772581294739069063927928892602444038297594058706329926466079738175025174297276124939728109531162185459317967886008972652291460196521312561075815308677164327384226596218954975116611684277476820070066097733784221058549041029115614015082631432008219529357771085608261258257049321825310072282235420487995136212815337692726912519200247448565000235067198453472547019328887139616445871043687137609500264439077823751997974358188703591367190080432658296710610565951434643178802525574513392056166162511128582827628801569871966138804764208075507856614264728039255995576916189803674540098915959705474841276059884910317227915956091233910440265365247678121189790661063925495797715985785534503081941186724104610170438020677007435847893134686583896849207446030618956236699000042650017477962696257863044507745335399852721863248728989523095909433493255975735869944969300805936871286412224511895597752748043052884341184818020103864769868558898501294036058957870522259897291268028815258752974050317049831951282773155160994226842620454410200925895270287789607736650659553222211943339799064311026665619813550883544764833504465327745856079096999307462695276866676516177327611823120207002389329709589562701718796500258801755095000535284663627878553228563864658356251999377476189964778269624951189316724154795263039955575853356520986459216183985127363270054658063800349342913914433927378888925434316928649141582506806751088611233287773752038445639884224650040124724372445498898583614126055787820779529660893926667614052808582379772049497414711262461644863855248481334820453212958227428735427526257765528460286999441183816280904963399946902632992738411539252670980008401935986319596153254221335602124135033038779121453102913789216328468682264789896244395556715747926295170962862909320778764020913849479996593536783465786344020944969875202488741769595176745349369995709721043731763601292302242524674691543107797418433791628103800578317012858983345313723770001302907110368671169672970666884970976567410309799214125710608442684917253912824851517633374794018872639898395893984079104000512282209617123157035349071424145908134230668795990924513770139183235751808483912165301502420739760492684614646231555406080177257473831324197346172162025743466132539099420942201028714560687683906819924019116074075434437149953721098064848135968703948716901357679072908750120410494217956060852799810616614494804727061368453761708696919745262215812933387677373661101387360116576950106786983296631127254528006337347432795283550527317243156742487628478668453267493906379366153276742883466997328269105072176038977934838354697883558730003075754958618852230221585236779315469299714832925116015284839156752709063678866619257096664028742703669315144579837963600296404887652453301716669276590728679335587065154098083789445363994878258477452435318834476611899407871153785708101309116607457559064910382168454906960529657714151699205614686861203579483654576754742368503378110341202133431266238670569126427417222022102925962394326307385128701670876628558269647722924864531109613526101854003482401814416096942637707268044622250219169440700983716769738636871855126445136931518777399396579196522896841033183529839558343843635267955320335146173821120920476510540640051725861203636142450048333008980709043045088636805819826498908811428333026707618774106036181997562662187599533477568914243013023385198008506689788109812318102667879711263060108853540105696122173755124752255716465194210560289227388668721441444410627982713369798223423476306837961829088817207393450612860836917813046679693723200453945016737955598278978990173317870417676927035858794806285736189125435750368349297583915058104838477118550349486819060191265191580886376310585087031137257971153671134663254180985668007781888633544621185846519106012799949032469326131747450546567405540076269640343161372038369495501364856501479932349106515318827406006140694100930862784836642914510585760754869573643584238053767952702093672114575141555279080076865448450106015790776570206622415585486099369929557059567576061590636180706756758893076874186137804567314659369781955066571910906637252942391439984502978598565159642438185070965086067391197709788267144700575106604941284599153333214564800164885762652829884839512832585455752506128835196920385800045694527402176040759446853091770220930667276024072228516064667803376430673041051088687935615825524603752689727055647127630515754639599578022274808785794392826242169096330546101432594334414926507583486648599734963937424649184403014501832475507311705877384049306605242932960817009370869924606340335747671402391756496267709846135910561956736938476736099842511020371563047232992914684009200215484446025153400383540201048500484713247178844139838820424128276792411999086523160023807117904937683732809039976865922943268805572583453871582479446228371838045880883378157014714503514184399242928859320838131514352260381650249388497549694024429981714332062683821780610951184982513956047585221298767800454488864217893991947379555249973656556999458395561075149634440886086830212693613938867083088476271529360111127700585633670636834887709408401435598882111290508709062520666586145656060946653392311529498936680530033806068072882533641230187002147425381215203089590591536238488498143756821883610919170937499015224608256053026080607601289257315167015591817984571332716472823553127322155008521993499049353596737218979803907487101184442056879762391075521914777016739583197578041747498198673716249977840995828189956298504675531283780466825853289686263570166737170372648074933822600925903262094371070156448547036920085414470574553550596417237027119980842841349239877373838972452932840144696711403759860993998557403876253036482669758785118727287180911972341134066670307263825537461894723587712542555894331802091474078150883323616165617253697496129881056007555595504192611912877497819808774414279442520830363055417619582571770135938296150284117584384196703563696398758581318973849058951722818333057480139524911815111020301320733019364692566442681261445788701579452120975388724752704100067923643345756847330446518305764826845911670497637747809097495657428979997581144912103559465169979162678171311056701879335133701578577929304696675225345917462940875257726432758494701709165220943308886821205217110358354753350976084230858988169950579459956853932464080185917334139348955083438774083364177394392234369899227295070502263017116225690990017999088391592995796072795472559947078930704046369867688916140347441223089237914052624658163502703236765305688160703695689560108692808158289467511764861393087613986601604259470973175697737450606508367411467898711274166863857148896686799441709056892150364715042121650538891006972477155133528395658721531336832127771468504699585700069448613731573467527636732874796073858900898355284710784463179288310043536925511937063446581509816556969486358111754809609921522937255702536587759438245214842396075016917898366909769720716401944106804176558266872380260314434010034609796531531094183567417776152007692519861519345129716615053071966271590198778730974844492248403603721023548766089586396675975000545556479117071769294968440686931932674671123951220821227141204910432077599034068553694905984716190416131921944832624580022004140242297139365047244279911083492828129373138838036345986449124849683428851859760252452613719863477297083961495103269989155003346721236829853310037014294241315784783960223112915144133935518558680358968254932558845736233587540339030388526024478992899985596597359533685829886802248357235345886986379822090014069251267720009426693247897865441312790695439015696850144352648619590819053229025908674301022395497494988908685164661954802718921356728800534126319452670088868693911827191352737134452180456260345092496102727706374256817200135742024181097366754445174253645923739114496724279353894562509148156188209887291306295979049269361467683215715470758253019094261177764668643585572863847170406637616460708985865584896659326719782647263583450642339916221125463617329606086162466645255487777155889060506968976255639946165411764149684808908349493725864217259636198349094626212157293851807885388377544392988266015784312748045585502087459077144465976621901835408696850959037181628346186478494398231845929431407516891299799714367809540984963410397352301109369560340238556277541554187574020699754532754408625091027430635314059586081187935384802964979945154134545520862754497692665432465690973651806489117991029575355480025549671868111834616671050226973942596235781577339582825566673904977290153728761652703212245641630796342959380693509920060550178805253159453759775437122594248717180928455386524696056609475366579434578352459147796621592397853193311839257657071997870598194216430220041957817544355822626847512459770153586203445724229048057830123835081470754130718134300865776109790931120760303231561002974373895859109644648984506573123834082139483835711821798226207711134498144489347097157631133101597354933027629943859095388508159630039127839380816347478293587946433308914775776800851111623983691636116518891921665147590462099683553425781264815762943583269101173841090272195298621180776042917670346010525829721984374441956387369636119704597887317848485866807599164167337310136292526234971117332460129660795744724417352816103708967092510728579266584409394549974320154092243693906276005326951904431083480235083935016015407506063704198084006611960142969754403734856434989055741525332667192069632837751142297347151156270551063213437813054892195057223162843474893356176603910339757886754799838478984669089269717082592488482448224387365686629745381333997023337035335946318019325213380573741339505376693171485935180143470474147874019874211048949633336019624263016048054729575849655037718421921961145140953042200659932269670794203349174346265626479410876043057789393407873130145242156571271637561914472790854652952194624651539077853786521010381545176967429461628602545958222539139500481890548762094281835824878195190127396368048792167504860104215004179500123517558375407548983978131401300864077198872348131228288590890032621410309116599672559100069813352847912826739778029640497801595769736502175485420196475739210713119276053713185673483785835030853709797858851648316203564973213815734952158532172904200431975547408365653027616622929433339736398907635436477754020799140601772698265695197643364376510929964836734189441162970913304971038370031447810573806308474651715774717173353519949852156495025411314303211719575662640403698534088375582249675475753065574584537218146755187224214317755198011055549490549291321273377884825861556856891462081781167351698606325611653857660332494009332267745236442779250759228668980326769632636522798181514499815920928653453539941337120480907662316597261293888003797665789735976329720922856502263506781568491180670780402303955288773973401764542631131657542960940134872045197053496776748852436161107002906287642810996273382611068436949782647898482891062522044231698395337758931687983825795655700853529488464623730846090153406050615318043807296332827818266944652709412142378152907816631548423787740441562087639598505498998074846305146086788181855136039225715636813082777222998765110069836197898689028589752814865832494145284180960199223116403176301497699626657283093231105630932381441646508526208334080780346458029660087578169943540364984839159982322321691845256800352116759723483984229389357947364690593920776556211681784499307812661660993473596493876277845020913708283678564829841516583987098280234646213164027937122527679584295216727717335782455039234402752007684344205163766518746505370931983700919912002265910793576248986570658960265059019299838014918495676198224465428582473953490908380851121719181870517222340417936044519794140401418023730377964441786874017058887921034443552648971087321185175015197671907914072693514099551544092400761608739784411935833808610751709615197130553551107835740612441919823645443583634703830369088472282278066205120541376071196034438657237783501193017080982503165841188000722229377621283087750574357556098919054462755186992512464132391628001071043656176735745815116783766379490304521985189018159801898369526641318862474742417920263740748690520090751897355113543955486882259230583983421010674335287263723228567997511370038783819716686260281547572916171229873767441291203597767626490339464267949100795635327264362259048935958517128881359671441768171575415199455598447765029726447913073327465844751828838899075144726727571073811115454769794116528505022536497425706183686881135181449627603252961574456027202447052402340255970473995012296383688728607544287341973441369262889896812710667324701209246366739125379121473349615092744419949453784749392059450736327463134694452914539761046284759621528170305632062613411520218300060338580381866723452264655004576480201396474514464063596751906278864538174726714062196406179218758561837407841027163815176647163840951323868119842090053711754368171947916801881400247869227658136140375495955976177309542164593557790127431414187537573145863677587030515868152609835116041540803250544017714442895702532619675090485300541310371728511158574094004931783353305915302548749538647740307843214934169218462596747837206037249102789359383495348180626142260262613761716410585715444943804811584347807414452892320089480846258376669367309913462242781410023711748674641469208007668193155514432936105262954998513126469412281282051802906076987051287021944359488478721188307294402013718256174430322796717206739209073733234155529086019791320942721411122656121270434242963360531857566663906681559152647585339641446861246584814311075077169711917018661844867669128867748354875391876846437711271884377300085526996970350227350308656966498136054970613412688923968476591574815992661635972016947566487301969988365814157955455038364931297392805997632640213669687491679759267998485926858934960089996819926956016622220895545552154598679866632500453050128787754328464286209292956441796113226364847462845956254764931960457081655898416648319471124808451935392227531276931923571104342226199402458469379145063027718626694956906110819278399375416523302216591678352618785753275529583358904734714096133583471602917445447332573828802133269620414093521598939692071652140510897111925057009919382765595573744807837251404105831755568659986776672592989747049285702420261501547900680872108385187395538967232625488343848261149756268196416609399423395197789837445060027063291454619819013498161916422636761601627402301455421273100099116441820527767139922295917550771246796698209820900075632903745706419575561340993924556516280851229201865227395645528623959842581577609606458005522611943083706120219092442111081134778442295577380550458122817647399020535315919311905114672053607800869776725822864889919817599988957412947083036981247947814060220235212339689562900037246854275313729837008481586068937167654416197245122364327946101514416398913546342017612462950387864902183057417163861388369748780243316261386658681884772537143905970455145123005397622381147533730793637206177518229914837471758601677298029616251450323169889360027433205482779759589798933053507261612524781029960864456067048365145178470782076126429548997836347774066261286012142307874945453935482933570202651192137388953337225011492899459469153208795078443257586058918225781902232315750904341721306439012343183612340415850528403544851725238610697965502444633569615231914928322519549368765199187989309296886593334942695206813174768154268237053192914890484469945153473760569022114760667175484723750007107332080595070933776598121062501252357033676701791021807722513886916217951399899644132172100993187214637641114135608576235909249337344256699486013648855515021894513622951946263022724665236091085669389274492945055847784297821799489494813817475423706427514028905750324336716749282634117969828017662066344424321042359556972674443117082995882066026804919920282102473164781624543139365754238890510293820145035079024088143191618895892558292744112036726046866799558409157259610078025625621900166187119540156927428213934847161604468742069459157034345279727989012363634633761620542431593169690955763674231444114201524786522162883165819376092893293876465136976573203274266409272020519523974288707360036491255230970922794491630958095405067144723858760958509562426140593807404029491426355287124235503063399370005585569023206195847695067071602360453834757207935178433400243627801373866224109958089504308392587474102630694384895322877881650879429948429466617658494757165580357879335094840877204219447174701839242979654594583911748558363316844722059468453089644374768322259984758857149992766624297883285719596137111420285757379009447821248728488833889076671037562386944982191790275288687628362363795793694833441979488729347385151885037019402904751622539965522422139369555899615749948983044663077658460442437424033355002213410978640293124861038196927153302008869270521966215342967584317268169190268579977203422493238558978902419530001551289317151802053070990951901972851055894339374270724054750070550769839159386529029318713174426399026106308651434259600602240313723031946899210264267888648342234641726239742221644644271188494501836454120586793726702445041342087480802364149923784097321013685109237540560644858335913751772241499151954014535041494439136599271370298439167583895409548248668201999904264348921997049261999929018703750097365358395541414903636713524105766983551556270776554813530642366299880068330558498678661007842923700835905573019395055112327998326048161601842869176588123726288454425904787527885920794702034481980916425914412617865625177048779386494341467364759018884432032875046116730255961119527199772919484416986807983238293482650429275579972571662359166683297034809548635332108411614624081920547560447862707409693537984431856539279995896024124955306182496084052627450747433435783088981678860518550748411785597195415618412249888968586466825533479057405361475647113499238205348598095438525855948672744085190826480309942542666330634107131373545486700916474577115780343943880847860224214432048858589812164150265099772525562489494239895014183713484310212233584668408910614844113744937481554004055244611637706634467086326385180899993823348835575708579973684087758655081894170720556252437727217696583209277014262456486024495397700986529003550080585904085487951112039043840749327952409033962242740076006926805212430781727989800999070745243523728214910799909895701038839481882331025220661539064845860950757847234366167613457907797140225807787796017829811513870805757751410720708666867894269174924716426566330869516915564408995909938410377376849284005167328073112570249812803416281486399343497427270884004732821722415129635161623402558366579921044019581016133291879264094858530592379068694039672150349334631211899757578788094990979743014578803899209229433111566475923520327987698662253894549997230414327466133758365213843007010033687331198708688536882998691214872897213421417633783588599827744448284494068947537334340199316768791885358562777601228301944433634050155680020603612138556085240599919479194382540093037261092284602805831223278613876405623361347543836956610462911677985887845553718024555675649053481097026064094779142842604719364888551414250680648636936253188610920344727950402986778044650288108590892655206383310611772328563388275535061067142554598835702227139799918992990855623945178150841117711700520620444999333614551602942258401066220355002230247225218664070807645197423775354510818185312364354005057654293950570814446454180696335062806308313179308147020187428778555116049292113281112419719903351331456229609271478296602245519720657783489615065206199474141101245958251620956758410610908575398634910374035828821319163085380916516951037904001384932417202917446855630673533319660423905420737558390670116999626967845815116570432135239852349162168170858481584494468612826362306984514215926358248814773554691226589492764337565299336398173289522987358746758749907846238720616292254936447895107050295131211492635943809188811187160227323845812464455610838966531367542350111637601432404222433624402454917349371652145890439334655786244394629545651461192555850934883100940220674131701069250328987127223793764049100132530071675711395293097234834187297646559489706867059284828999225000162173614082468204724225377337121681930985234459499556624827300885259086611076239290241751370251708922150870500715049646325503527272326561646490847595806781568329150221210418297728633924155651258943043651129619311890344617699452608380727257443099632726596807095367700267349913981706164740334732492088784264569126550175437486713013049782139228490993279558807122776144520602357483261876302855783085242866801516616245580654314267244335268031553179974558465661903256233357396492250173614099414324107951523785040741441895929434903362233324762936577621749481759919816812235250052607022851528671645804201489841503138083140274329084010774399210706505100747564270141541686840076430839109291288199706464174748734575440016785154026052761993682613515633999073073803921763662936596829977091640106539817750274205326720046063397667618599406028250280884329387931635772118359060471686262820391262739658288534953695767367951481185100682284602413296692856252222105174773337328522160418332098761654262464237381998914612264655358399264908371183066987992192558730083685949458221061688990816620913797519510248845239062730976096351817187766793960960272261952763298471567872112240335655930673030735949696643869088663358350485243425037002490979072445032566363107187261413881405774158558624132590328143713725497312712744684522410561007311711149178164882652674158823049286152301323895894522122388883375379370954270912203174313770027713498397654261729987709561811327488326942165999222837212131688475763259005106731551537711173101113525830134320160028737774055589798200356924049570815198044964172512667371071902979038897561426867749939099924380045512469570710507998701957561707008487660800915549992941238938737772272523796717001837490180430381318325725237070712747022761294642297610449060009202775811317913038932883376859954871153839958957973887846205680417990828008086957608471266298743740118383638934718696428137828013507401207265855093450646877194445525747545694338670995296543949376081679605826160326384705514800462993738968586145152021957578446995123564158910947116296732921516427699800286655256961443934787382992135586854640192142876104443232406293360533309096726689972547908199112919174682493137859919552510492375528769198527003455796380570513946826236285958191051631124629002788109094297729752293480837122056791807465864857145644246077036853394586238609082549062720247622075147140863181894818391529910218911081447106319789588185783554443640752693687536635151753037242864437034656105376806467239326484447615777552897730509461809906444291083906061043426883210060941552542215811147044098887248330998467201814416652153718958908988114524966880372019006349399844361722336773383037836749960567413396176412280271883037504270778338772734332682249354193410468191054511383012270581891462605942360008907611051207841934312513769101171735095027466858604179904128883492276950474859749552861636936475179470722615244903046037602610938487193680695227408668484676842866862792847499852740424516084030381264091881990608327038374974375818550877295566825369257078879599351773046359612480144508780445661950495899708892593946107591998965806068293585628934340111262598201843399453090705350633843457111663768522207558067018167403908362979353000840177846956897234846070385139468833472047091775017500960510586300767389050963972412751250636936442033547048223193965014536052025793216953285402313654205279973101527046808738717138260199382363688708833303818495554704048682081984896384499286307678127726802474440894042129865029970293284040658278507394940044953229394582693357561077526735587594762169940153867106682985144046877400727618154864523467915306384656989119123870715546509620708442692926950244614323410006156700138353470524012026945978902333339762834612661211517208992998475194873540057378451497078779929179298421004444254885613639040083796334208517790267143767936227828063190815433841960649932418522216135362940240024134218803285665967246252909196368415476579616799889020591228233964206054139719137888265249691862791508608775968381332394725605975855949697473110229195897464081397810011487524563796530709222904510237520353319513941541625954786929625401526151609303994450199351830735316405313803372936619971069368922808909517090914756231272764508906214136157122713297487523524007663975841785719348217986594847552639869820166260991249520307022485100455497810014575780341207690686660469144854619712557427869631154438852031442651679555398258610881284723232287937246042968342607096417802419289748279777630344136962307745941686991014859199936256845485674608861753394843017051597257151125680671836134182735552142213155539410430634477796030481916113662358021038090411585356359026436168119351613730136291547852556215061309217856952453815507178256756448067458767453847802100815940325515945463257045345963605227024700353462223478706089764173673895432803680062180959159001699023805522825989687401795160343520034755031014659840167179547671137706506050879207989005901310215280325722027466106318412202733203336566334771775322303172311135803795517957501431166803971718888078235620437064629761804734794625439397869167603678157365471695905545902310059719410783798521853536166085653655080878690266479583625931317841234981649184003711002224737575567222821668701205987653006985857699233358741647516310652173555393408167766984099747831889503023947223490150037220099896944853470858838208017875709789326094531508803281493745446849711185099333562337285396886669562491270214031125580984012974995538080260469323400083949182361531047868452326292432774799583343119023048065440071752614862951494846178121876382066660967209618122170358342245685981418045119556597372848621644273006112907826449673712591828256743891487213172952509348978430517903472526176938536829957860468412384734012836445680501709503480113554618090212397857455060139763666659360981890249749132962952943878469638017136570757740914848309796677568270692527506775393904095849784894864039708069819271028825630030230025107876352237322261848223157105427565961569224478364960522769926990998844192487289468857375666380292684472689013385052766341009971219384126435342660997024451700506604727309966212307985061420345857665355054278206930891997606594852784011233219265434142307417698459524511225945545533903191429077608751039134165219823287645667917256921946401617169377630961825675804623720155670023898752829412974902270580055840611418856448671459601087335343684739973952202696560965076275259661722375581212497888372498436581226759822851971599148218480938664661196988826001926823577623786580362860821515872794274776017165282137282838798661668267072166024093284958742294714683003403919397075670660246771504326851561078394710463493970833529494028287352884477858207337640789256272614013420699433839317102261528054142202110817367369400169052933760402058248832801901762537170262400216669195956508630491390124268922370998928084833548132482609617442438140913755034896666017055058436320651579879230103361600830545993763699971188317113721432680135763123741769785291316542436958029211863356259958788463886976943127396495674928615095971555992478392767882172416586772990826496197259871343136341349626228508895635707757762850626785067255884399607279304295107539293260227036926528256044910928530880809103712073642296660369013965119607102553581280919118181148221316684998121806146024781331197056735837299083765111618411143296294678778046687481740507251235927281110780017351684679423577431504108759753010351759402823792004131916024700816026385090335183773719478986034340042530402349167298615275887531073904925589981146021565260848331387169816641460463858318245912638389559418251326509906241929411708396269367052351917373303224019199834321335701934833790280161019087723041798479197609219688966482681995160791261185606273840605415892329299527334998476511344970332779705350780066908553277588754462564521850365085823796138288662306745320441528251855204107436422915729485723724595254284592333026573431706920926819571550128009276658540657846541788898953794327994396767559513076669000326798222017975417654021535501029468810174529071480622748008911498283896049129164994351690722571799089993457708260911102564870093239125522646951931539808569961130917798544398603199160625517092574076140946794568280845483725019199025845387954479315701674689533850619390262435676959323672939240169807268405181788702952925132289860146938754334453576886067737457252066647135567658445870428674749009388165237580171121645217041824325214165173359780184982243531696212444060174795051219585302194697601248042642191362377792187384689172206805240202721246923551007343665764088782393534934120591154670823147121001970151526975685500904783257459532687622614682526891005800111370983348497412543452072921998424455678146227649051619934481087693285342997475230351176877689728014110197993316015852370926625351238981274998747394177653848576232904548161110024973128006429803887506392013114674078817480403441550951748952003195020722774499512930559108353151558376422625796282108549167767320671884071369828191014797376015831419703309824551797791669131648894164410086867946852595461466553820784518184694827680758444070301385287904342554705939131132031649804870503918794544578501270211090998146874377128580352713110850577320655734265084959641724477233483836716987030965832597990254136126231895904382483498125073428556119685950071691954509864560933506994380785727337793989533069014595257089446167376378131497463524032497079453997408599500859133917976009377526116903457273188413320353141187720864493365078092676786634970096901664319457971540529372324314749448057034344938822978390572049558850620435635038400028549027492751075549682323605421885363949605965707234455116972905945632252181379711866213969815810946267851927291281656243761148857654112345725533989227693219393540479627767078512638752720769118062306595786223962888756464420050035829014989567393418862318674909289117128572152051424950625480495231668390092680985879810779918706681541296062577717174428031600528999882374692416335433766535300779944911836324944126317525859591655378479872448120420805923503142290551077315517864626056593293742175416796312276970215389043742119712677967026832686824726453090887224301134802229790389964871058743763522063343973142603224934654255481106840459050739328227438643004479398362282543656976005251190802157212936413305313937178381126335583450204307061402471640130285712673496675866520726997662834588772288039857812622465329564144018798038403655730073891151989581943787292731508602778401427909557858216906367476375128349377307754094446613586244644578401445235122927060639639698578370089979557171084070285364450611273114917734599218076191887625321738510550473657454624311035091892966847516674618615217046012787874246513335736952044231050797219113626089030702281134173471008648519442358077735976002603433744552802592978063711156727802392835398109866793824114813972635591546135588017887831228759048890975904190239025135202016370372030771014452454386230062789338182890281442469577804572926211714728486962328553411981510085849564566831924628322651119396846280014675431743384508721803230084360713363741554394733806023505232529932608051932742926582211221981166034205745466432185584428568254252471454165114933496889330308687209359587903457873936134106015224767532685185832656743907226464778953147373742554245169462299658049257844986898841669741014641400082333025586920197058282934361952833147527915127294654325805358210287387848808767459874044887112055858293104954106549312718545196791431474550910177831585511316999854081675200295022825892122988886961343221185975431234801093351744449441291159075042424518501816605413657149509333612263663357275862663196022319771091096669352837640797438931355884935659136210286486125046213923718699305445236834501318633912988974449333478317897800614031949068483110226868843304356103168048437697124747828196884590598129080623983695198283635223293598942387023230753182523885695986765651607118969809341390469970050081565629817405849146383476691657739373365056927852345518247281312543789886152688153065058062829223554049828450613612257540878673075723477538747374818193844729949551681452542890312303002878740926011334912083980161703766445741006024899004550040144838501216983146207087463739575293597604741515367139032583754273747664072152582792826789473060223921961895025047276036171950719545455725830719101867296410778725985667589452659284535770953830871288621958547991276718128926639926393795721237416889547690036867491003715406018065199317700671094878579416635125838301391964002213403275485844051408251253136414920142871933303459201508205320533561546723465453447665910888588932655470392313576147958259052004286629150333136584055210379037860949705340515025690290448227957828795552633254723693923764541021369637456226635882420629286341032888268599630829370770872167910977638941133520356008695176352495039669127522211409216739271894339914301390836267011579397940278581705786609927829750754489930828838742184739019736297691195960021641090716033796714255306211200643179510418415111585531129430416428674447984518478535641059129270823038026150118831658991575482430818994417914056242034496072698353079663137083562101187451908179473105351477341740191890041276986615303474595833402331876917495841187232153440790411355460515195171082110080485389153847228574154836689038839586443946170576060531029151810199243598880019487984999766715638857288280386181414486771660285315373662668007354421654815534899179619661725394057073320018767968320520232232284840704469351360964254599747964526871996632677189009264842570176813565629916571267343120683612512016952723375364308479868804635693068435766799148837183232822871563530429814140990567712857140561831100773817081924102940212891492092202624263937791053178767505446662002459358144868625947807642199643761760122334135013736096877530143730549318621383263809316062344452720084613717934574658582920765684779239720416267287488456991719466535015310153206962713359546608977260179083019540221479211644911277851924598465822252604449666269768391918858522263465854377139940327126564293576481655031544903447578368912930906491213434158448349798777486611531386417083864738855681676272823151836650084862350675549773798842132915799097370782904773242410613036342501899516377445434656903763030021155347551497483300586104776540508719579029644884650938525197381124886814014250547551507851291555549938958554461858615177539957232975499850552507952168669246792716280098966356801465020596503511033431480575560106896699391135001259651122197919400187443730801409023495997491773887958509254508700045950806223801071530255716876725806828512827427549392295568263080279298820554757972945577959756883605411946659942396758142671822981620024687540690160433018767213096387883942612932172169923043714966548303386663388559596044745236098477670486143983945409155419121316543655422560477291892251123959494279933111512868860718374035455725710991602586988909418026980262371876087667434340361600435399513553018804718631648830547825229351309042361444484991563912038481881503333654075415850450238032974431914874530456242674952536931011886706672436219415885435471711755721338506997953708330416470967758462447065580165956453602575268736817917462505699452012277108818867715422777517952088929256326035421691633067523305935478138132660899456128546232392314921626315837976619677024468439738007275375927654513624674401297900043366614107860949784069318053432075683377778282508731458318588726475597346119837792104474057353290128161951557130076602306127920036395533052423193113864973808051148468908851042965166987631402069002350608394190510972882983217084586376498885859312042277533203733959962984570629374082127354474290262680766560967439107051766115641813450897274611586065132280655811139417611027710742765213696698258243419789332395376879267675327645021751102866623725850783542724194751153954957777400627329403724975567346899024657234926491599623551480430581390764363697216191970748933093925751141158389041339066514201013631140960486131850159434739629833940663695917922522892651860331262549894111250435077139780815223711608510503499608669423274892407803681931688696985925089791115692266498375972759849126747291193586882458603476136963736278425505549965143019983106892918417920314060570517982513965075561794101044487808129420439344338352093308059360909198476858759387345802441590654802619801437100414487620579674444889583377704622957451974266970484108763193676350886246801812906293653193955641124337995638659259889196274773606503550065612772521002948289156867098014549452531663456524546500101405434022948805634789296144301333063062710736875643184944199847479508149987893801108678717648091226958962795541381137176689582026444492543820631332015578843378195011258217410830295224583257772791431523593218809324086796876138421897825612871077538157020411884039230976958865921080975352961794942001648124303720431855634000059731691772452299253484247252289480596966660277792133809986848995738232185712152988105546169409966901242251482067454461753644992383789549279480476596874827360325839567762743815735020187666750070377377296506836158487816400549796411297477327036783638804397082823705183547775963069422645861875847829353074518881873654088726645009805937404082986070117677226192361649416691562383054392922042014853059823268248117719426294531636912085775621153783435143450949948474595119695417013042200576099892789849127237450419439842851621908194449660240727563955044099899738563524209543587969244553302722035284253925760508762640133420679624240225637151393390799636436140436856755154979575693744396003838488070512507488267746290578229203418909992720054605089046090330934899257310792206940550695079656477722973619576222249136465427781012815604922943062907912878382273941384630307071911839139259264619169490092306513846037749354785751393544052821120795133158483429647351540424386335754601301387366183841783795265457929663875981714674211090678094567188301762518018053786082046814817931926201491047391899649305956319646587962250436559060006511214813458146833338630337367117830261296187053000065870385676506978840978782552672288097828856387366497172084462272041058377481292449113185111614752770757773489636103057095013557106226699395354431397294877020732592979691082291219406913000638096885962287015910463302670129224090117030827161740377903714359603532439535562886107048733727335333308602642090383303145354887145495825041916723759598589061244767335595615780334116460852378617092777221054298245511699296934816379771209775451943742610818524407925165851924006131634604568734850037269629973473818530565521403051918355347208381643588411819248837159371793868918551080026544790420483477611917139744554231803893338171439919458511745539934395658527587626323879995792557300587501856289186487597692188448359502969981583315078673850602282901826647927912903883549232795411231000544581176829581489031309874607464240458396557058239936936814746016446772715192992674297075856390692850858315803710176741197437535208818243926350738754778328502089799175933640474316637727188542670937459367462573679722009110597664986326300423115791764472149747180028338761528372131140999407613023696541671379761181944020638759565164846937533432890655339832236613525413716294224631591543566868047980873187725702822971023775645923964013338507688525616643115048016790050358870550505743425131212852503983004042909968975619712796067974754094763750496484686227743913098447762071325646529042551299613590662218158016397970963927557999807947892722667357116626751470506117473339448776741862027876688953002315106668051617262019439442489359300619429385362791643510716518166032796488141456805896981662219983790355555424076568869378616428353127947932796931354735107740990194208221249321980003335900548022033180296054088414642396501741461737370911933415684397109877864427862191499223127802949269060172491137406870956875842838027755420939398077049163670203977618857073828862227806840669092388091503849744512625476233879276020454115379608534911523452798066480532787506006349559104583400253360057913192832173919653436471035219874355393537422837816834276665711461272128020311409692540299257434511278603503244383544140161415208230832416354555512715146276225044588634126075887475453184616894149039104440874325053341299067496408823194610231305497911395540868385361686471273476661117526082546622737807789843748264187737193999546194207528960811948233571038643920775689601003564078906027814573292105266290511557009304064860596232031856593000374848340777486197794979739731533833948268526167340846491142528774276600123246678341145086969225077524998011859847945265483333447880138629060711867495353508430213056843357658626152999742402929724274174897611053081655356115688637041605459156612246103053301172729047401768409720577514100038515315683653754605939771210316196710862270181961066080291987570667155682879749787016152854204488912965906677431358196429260453966731744697068760122883330266789021454249285847723399131611594811198548590416792440097561115910983216340229255761924247898214145333820690489257390847564556573716744668518801699752632259551781386097905142213672745103473830441039919124173454909932742966039753706418724842812573742511473847370411752120734320336107087900163362605179636058409862271030892630181649110941945223630131213398258622301391959206415063300421254481487417586198718822849214330794748714334775941789860449928818279976303474601160280785752444443742168172223519727854412446516303550849577879244552616861308649637465555259960576546532065807896011509754553080617673353395075827690046986772418134355068646474053780304630275340216143953075108165629712827610242694176935748004283826553238908270904788194900730662757279690491247916683416542114514514313750860170995862216279203963115667565803759991533051588035970183915961337625269925462917227077912832686028737105891734467954679246608381073257626942842886944957956092720198016959388082189742750656578428829891992716257889648657910336986899297455510456572173820669540191026172796628468048538014363597991312338319447119228505393763536448215885386242574809723880310437454576705276845712114177290128009126678842560046327827435429231167561811185640462831713103980689849152734390703325598546237027316098178509961573187310296967737584074408336116138583027713382694187874193599259854022767014572208144505286415617631213295985953699593510454029564253657057167025476097616506056591681404951120363852217319953221711753301592314404439041167141049169710951280132098467284421610650026786971039169761013981346940418647187202831179487030089597249558071152734949501386479067272882347197622352449519831918026879119731472017684229417309559221426272260170498669915170789097345098562347660291457265408128994747478520038088420723866216618363697735934743990828744509119873628307975287429979807804992506203217216603944592267186538692297884923435050244380355532466621152966848150676732589540368485747271646483946967053052716737887267076850504109355822680736556603078866231936899507519245415988873290641882802258441084475883264650126698497482480708094301104121541000508898081570026348407878363768633243621277326101899473621044814355570315257019176548834377486324168980200501033258409216177981091101379755617122785407948401294261434051116058422601518348916681572034757348298189958876247099224024478396561344697478822051450640537885483649791809746956462590142516562032775435870482094281533880355723656738361250100425704786817811517614576117402519194952140613919340195003385710275311075376529319490280342221256306197915253808229126509858735171593462219746879270273780596250803151378623941596946998245741829858615502719458150481391227127907282197988742054383349398594827967990959037291190343808986806754680422541758330460295963731662331346291911851915989576185560966569297782482757396308145506121076403113927543642048887758573976795234937860421764262927755822601280740784700454025497552018456914567469730513598213577134557268250029903241232464037389123012137505848187193829004899719668676898458230544749676258779551116363973449912716777244010825537794018747616347286925082610326108156654208070359706252306550843221084774502914699962427681983573086510144506345780672916232428138970583207495538723729553340818420079147757887007281067684038713963277611842340287735222982556897828841796768625946802635911804509198252381145471823192208457389088352101251019732138607471716366399075186593261744896412948529187316583189970003378352344836651757946053016982664187589067530329099512711103430380972727412680518469102517434930960936076319440704814002391391780657645537279346025633425755609443550906093490802739054006627826253348391095833568404458822446735077784275755704094074461480889431731178363653653133889620568342565137570481958084776881374464717882784684147360647369065871399984867217794156765019506385788200491848355362317032841648136001234884186430622087062505090217189144406146796625302136083909720327328647580019722685949522005755788386123359615836684869588569613961775436138790719352282465160057713922781806533156385395169715305518362108590342101909863610433110937032996687211078888773814946959839244458710065349605503043201104632951645335570068044878406901118311999325080982174820074236415467067733579277513246289298120319833410665998608602253987229235141553459075672752395861679899374576929291992659873513541319486317147681676585220785703449523410498337875281480262498990667753206191402773246055593671349638450566739016418251896420187220853055155451357660241560217154075121224131779505803440197167829276563067112316745802944991769372873208346238172020784271239264916969008557973914169346855864338206540551707822369314132764466571678004683401551144531063416032416367143831232697232427237118342291789476464751642759236911486880052214325965568922799814197438757565839999327782172043059147065235299842163694609140030264402908062018463841673946421090669120080937631833458427661435741769842201236504467890021297355356009371300014315558246154224081250963910819737307749883669265033002174039500736383707119795619207214723659295025399659758192484183110557577019363964103829707230173057446259564250849575055262353306310163405879119342116460792713454169369341478718261505817932291939356101505565996199230021144032090003000159602818250969669344437353209604824430257509288601136108067580029813635654780567141248099813562378374336347360350672777737990022820211230770946074420447072087932050225012547962036094356482084346278959549072956625328389702852553870663335266654750627039704278847518324757035929110205767410794772022121882697385043817362406112117899743422479699625988388635977922693313598489171930597097536137306912728230962457060506403752676869602013980918053554428343670792639977040224484299660478989697492507849160857611089677573276700510145677758563415112994247926693299102265278669320966361456347236530473074483073624162208806770339156626288873843150772886672698552402455486302765592559077645092957622351625869019124085230406661993548688181170910716304942841303147651729767613739630816017072347846153327819010833502792569928465149149107192102907951816067531881059466291406154130177568894355434363229002468142083433360515336074091675974015490920689296197499929649437145021578483741209003856418569090955414366909300276137676491039638937413574435707927181906144653775397133493008358225677925636278747405282814060330129529735526884591352264422344135882745836558619803593850679334015839665924526930727715844903705718991173101604587640484564349132838116782972955066012195393069792807054223755925018547941838795963864740228298932705446294401657557110333837125149827020658405315549633754326502744191626340225976159935222806428996846929153386032214922041086186472636411893948254267687298604671252886245857203744456819669749176223765895690424180596002866534260942337639490904083288066370911277238029431882164676177008049611470160772442257430501603410654466293284792921173756335966620158359180346794889383961086447809966285317440038278276367107813113362524115348974810412535661104609568553198284365566861874701071666598363398221984158192532337503567834300306594458355912556738583949653745575982034095518475355654779651042409819926264295674202729951615873445617627834144587754419944101430614227157658335804148707058432927240572987093986302453913322608501999419267047569742668051976084105182852023599501004846832095552135121748178669988166445995048281845426055055936088629880761002867075228822436748733475356110882956454223215038197338540282575888427952205069563639491270955741590168598128990170349134439960969326846152988668873646345679548370124410872790548662165064124139558648733933593880025374892266229795098029701432126581391047093460004406218642229935614596522408977098959807523695354661950257388426721695111885899792270211133714550166086350648502842681583695099270717953420303160955676778101518715590273594749704697576498340798623951009480857217808080834757314145903256592093396743383852668636453909595757697984173012194164485133879063116183284953089995995581242732756290972106641998003382296426064346517370812990817902790261338884576025720350013950616140756163619398338183281454740161442442299061373411431316186911620329713772164333199126487131677038751094220018599454823215533682464205308713671504996226790874979784735436746585025499402957183853965617176999191525042444983559080810886998723436233549745344486064263322364983513539542581166745812105899795020284326181906242087264628846307225112406499707252020817979918787017363136304870250718311594185877712859854818529732340071951487224733578630671411327543893653934619290271283111027445728299070933513502456083653517670595150307926053779223383074788540884707185279686131745716071431541672015242964142245296323973539346747121858123436988048957837178560919780405569926083873791672640614618430202626866500790892730512435979177692977062159739771380638832935351473180328973402927911518349431861053898651912708323768632658999340453240439917998484553056934860172160211598065345857663367121476677962073726592127185509403878383696856928407659906816948506796972441071812011065351616627369281241702948236059582259404999167001913598865918712138335783834850763856720547661558039442221396037829987406549939932767543315036871556236065293568445661619511715915430070911937703633940753880109667809523062256566617158845129245222735674584948986537597651678698872656458554731016864514916293746702885970964376846220212652552757327292934540668335309467764901120282426079990507927352829117923867904119537008369947005996267768767519846581963546710829403168989121543919246184266460905070015650514623878411502777225636605215492187334374555744522553557758129121412669400943226419361525640481620121064351421829533806900067558586854561215251678673674478971918244755596951044319661870039716129428419357843531530484768376156685736715301173867993771022320334430970214980309995077473710800853108933269515640140507805974489614686960340824841115006768129037111933246460749309535688642271889930808913719886583820139105565948479458412865172732657245574484382980644077753504311194539806825963799908405719268807301043463228999070305400882826557064638927452995665386168124137010223147209043642115348940625074915452546470527668649632113151326866253507283044829742794201228866624267249332925471114364878617508643465024311811858709599586638465762643740756309345030965469863387790520991584387888604800147474679975453459366088100387180569687835057738045879320512921830835690858845325003215539970194816192172716815797299023568722395139458001959859253653372137665212209996871358838060283793358303388096551687961927010727942579414839886539316922241295138718980138264463097525758356084337602687444592612572880771039726570642604748609698609876362857144178508884137978280362814126819211300615005404710026384912500948418732827220800184205138174270614859279912674618313863071064434127063823251393242303178086408925659215462185410187657520308380727667642783845333658627135140456034698596079312314739176251992496196376085245517552476871906147216364815031150791542185775087983528368180178123635117094349108476837664877778555543344731736199326302557641975761776608240686172292018810026492649678865975771516423397397265674601801078702503231796617800165343383716329984160552403194575675201551063534961700139461694987670116071908058979869463448930829096447544827608600202797505558237562361462525277241394589355335826929637657430711963104043539057181045284358959704507269240661581969418194983169773429739820221598923863634838461487053334711089028697043905897593931271092950190750819736048396084689618483912029947260325515027291688497982900735457445514918208676762310530002985048674592131095020467399200376835703098221004868466161737442448177310173591705407586306441739580873798378198383367689246274637976213021163027847367322501361847360844886886853515140063470422355344429708078562898690713749373779828072968644744820815948177309655727858765267564780531384988445507713304193362184089437020757812756319223601193382221364125571066589575912129476475123262258905101049544429433614184003880469090927980799817669601427640556285373855375851218692807837385678544723192235405268270779670409957474629673519987365019368540438431287348255141809787734873136792747215966299152051646296584536640286016104706102350438387499827315842817136033569644868257910334967047751878377308440995064645628663555926163808396071676303601209714605877471383048318581113106023899714596702619065663452407760287839681765598979823886184216282620146322232727950518103580549483737989860713763990968373334204723299640338282499442776784494095881745570794042430678611056782789666216292411943171860027411117429603424577399255593185090997259206446124699948285049442339260797536457175854925289683640130252871033660901752328929747552693391147918055699326826775798597459062697462045982301200997644236386288155861911535459284751951077319039580435071185838488133691965675942465187556840212817500008991002816774203478725407982640507928113731172201257117855872988859799621288086874436140430128904852928231000182353225975899372006403716322920306895533131644890447265170953302723505562253806859826345421352977309489259553550195615948578487237921345596333043577238223850859678824923827636683203781806353665937271861656604567384568416582501526173229530914776005616693743781834725733803170090976462207733382389560678074416336953348053146265404685450414397278348758278178742131255693622695941514239075993822290831662299083208189293147453833197221124117653416668897169299765569108830582789404491906786257552482630958183337335936293442708771351126432842646006205418119472028259834034022099828934069830342506093575148745758149020859013098732220938253163535128426749598587207763830719657214905670234460565885023995418195913311942232773674200330505905832181143575736162907110770495763045666149694544570458149374539708591067779562680380965959830913071475165912425084816244591561264301507308130776509332749171032630018009591581668705320154989166710679565282591997620031791855242797948349940120835779639233057473449094699774139596634539529787532163748514396602849687582647831239147696772500917105292857620721920832897586425139038248722905373061845947172648093619645100891672206866848893517130247311430522808811320328971285846807779209447657814619893749343255806361028111486840164027175556359904517054700392254463136994634242496715327416253415000629060897390821364644870993527686949135090247815126997582413311769722742748419932944458497023256376203144734907799420639607288861822837878249554146276362566985449197898260795823577525331172847748999402107136905901484238983484138331043268761444502459307818565814774769002076429056197514677229137168789047708969571408876191833609882306200886780667842654340760545115189101941202957866119116771083032354586006584379797387287407515864535025983565860634282676573162397132371615218552244751040027886260589894341500885104052951258616521897978760390765017601376896669264223177586844338869076607696985842440144417686225547643387028969569575466311537877348293098181661625596142831497803313840064737666803511730028579922009305464411322272413920303257207667977279888830630779168418607817069381202147498623138872499498494233893479158706487907114200391885243296169398227472899870717856850831770663109219620925602086541111829434746305755755809045622895371601366748007652199932589835213977486350950388244631831368220554318265710643248957093160369388680461633376119532392077977275905172341821090060195205178064740636040129276372909413864028095079237460391560853565842725988421165236200261433819260629660224039930078687164115907690895857680822177423677784500702579038479198904879324754616589359724679699522959233087520987603494895904039220245556669642221708059673427690684171139649437432313762020644359245910425800142072670802059424111574138590398553454924425131198108571175932364568169292946091344097148689959316453950257536449341316746897164174786153549246159691411430522949366945457617739292068162468290309252645658095392290413213267768544080020748884332074929594480770158034463773199607046925489250068034214771872886756234433656434155228091294114349805986034328117427851798601079261135778910512006159768204415712232594658349272887868147967733538721747153470340981474529972463094898735596821331029597030924416215018704098827996163426884810414238121435417627685881692830048507758706216118378442809057427033106841550936320133339548115877099914480127458013419187478756175412537072436784793845851097977561497417699312863259895119076654887252632641404025560314677620608793686191049415216895462416728735602753468200423494684671260004770455693482705976274396888812495888117107718449729846152248613895688392419960213275053761198539952758422304813986274176844350297336414874661132119471672804118936212682018175058105675988629471749379023621775474983946154860262954667502962327952450862411896195174522906060085756503918505933492115151527146315047772687492761523162420013810365359534202452055754904603996863075446524453532265057724842537517382701776429648055927973953392698879285138974434619089220109865364127495113969416668231834469268854492758556573222310209642521029087468459604359750632233703784114298882230596710516601555457470326092164899532439300410701640951651516458269780894691605966703534107497757647681341516469805776574424633891589793639995081889300174570063143423968183155686558626030151610859267085973569950653425173030994927472883968554417641492127782581089992808713230638073807448278984386504948787464459189093826105660393668397421172020484389762715426833445061582554485846077197993448479228583854674067361861241302066765467240270710285131628292742524539857350976803127797715478319228260826583651662230996222441904026689906192253839927819835745343205189018878238084303232682509605716551767192286030103524414823293264836912548229013577262141544421327485014012214010229111530678878491244099502204898061702660782565319900528566285779390180339580255244058673308741878210948552330153087189270872901128196471102291922647145680715569314947162573635380950383685405031522072944707526537533932725581338231297863527117570799357484668941464264967072989535995374100888825173475280501752295678122140983636306699663746731487585714910668581603949102451946322553849227326095443516797787455124342573749918522025284705987069040384816848423702973390989959284800730229707306635369478527402025865737446740470471386172963333693374064578401997017343450359178084149772807725147504287390736516848060583568896241416276351882534468536275918068968556032054080878792802341604130613444967187032007117225450204760853637534664640817223011439680715991929513900400474125623860943103817079948626093111671091532856445877879672909720478454319795945173671890880623676097639903563412123232541591491969524337416019113031022153355982268343500025518754366429033968975129587996207316019066407303301299730050404532731968755114323461211672922469926116694425919930324863802727760487146018513376953862531206438565732664208803073375014785786940924169927621483214337000076062911052823341650614970596211315993741452552809859640785498808960173696336146687711684462980701374971733603512804993176350604196759011820640633284041560348862919082569030053878743325793227124999839476778364728816757631802313773319405972971081540319401156183879528504889979975667768454727863043544769278497184991785620135648430499575276969933065741086258275780784521777299556477220296795273254252521988142076727320447995831098311449717472972074269087747703962420234634879226715523528061438818406478837302790523866984756422955396489370846161811793377025469686400653475831732501748783200201806840794482940992812621926325033637669343571072859301893078882054119535025783397598573990129356951589392188578692363963481334997511339635363321914108429813926970007053708834071031388363450047945898098321089758954450276629850005123922467814508608454620484211477254228210219743461320511034746142327502359083340116319187588334127061584851190098391209010997980341819705089651668636033039420839072611831305904153996999642201505344771413955078162432167104912949660887403258658882876662131958304287441588211788214287480713743921205263701313278313146507771694101864320550010082882513400219522906443237263190936101522586169611922713947353757417429720992586525219820384162624071862654850131980301249695026718470359723946184370359408145401418144454225759346569846902403918903725640106272894283303529392814205238146131447717534039485988070669592536585154651416872058516332071705842544657409161316138294771383020046507959415290863740186359350428344105986190017041802648315301782977122372509831220621987482209277897840990634543430452200639739150841825291964484131893466613069236187860627328709338317703722610911606727297059744196867747836042675138726191689781642694711483121186788233193727374546371051366210214411522060932613908246722776613848349915955413305817604908467124627207010937417587371588239597878639051959773967289915568411804127496536207912045123334257145834230480589417601632417863985820176575418377609875775218240859208167961415991444871039014100043883643890103559275674090027599711770450057121802388251298165649455389385432286868649670111482078082256055587642933920630834781301377650430603701595269161269070764475220270878529022231415405979359550105915526980977687447609778630972602415970752749813106514029790959734545763287321740754696864222320326843451567108247146318732419910257452461947468165632410753266694440403500396197922371101928461505937099743517807570937824486090480253233633885954008748017748522482617625750325220329686728977305546579619133087163388109041347880784307751859383426931139667697695335570737773434260684554487183081558743014207952226173159186820405853115283632692153804273383114092429919303753264604973344161453290158602920457377789931903062658514983613446507761576412516615158342405552962556295780368895062486156920150205371283334941304815748370832979346521326706191473325051316533030245794934819237382075671199520312849629151278294163390200794252185046608441935995355667065447854838327857971457799012963716645011367746786615834160878570353906553491451669330093491961925589237563390750809779347984476510081133544303213907510040655457816071489238158217414955329314405980094152362991262729844818622125889640842865623493015342089424603922784207508026428336950766795610284923317096763613768941731873663495041229485664478441569377757464846578913891091475611667073169010980235399988039617475482441905443532937370112618443811233343504661286892664497264473209850219142110342286415713545502525898187515589003749196128302985039378669827273308509267618684777599174795815933819545955028947463883657550130306205142448519381542610468540509237397263498324847649635675993426326240561991903959462013155411224587549546842953945142737486783176080244941587280913612190045063317312744986978197148205599571335006906597200396404044104279345654565835929325909419222081940909106331677884964465890331753561091695144949576854883683645439979480657161409561588273173193814512935243023197611357423202207067524175769918612912478511036157781579100795387789131570953898464615876796973537288817530003062080558888992435298898140372181959230320674428232768890571768280294693136505423689260008495726934716113418931063061325300450511934374613291962207438472972339684353035762853383487964988377471972443180488768812859670838257483970626243614936772950836889490730035130856023285721428288907010107833896643169964383158605136727878518347017119645954471808566929320719245370435773768164105319782896175674789079497775034248420018225013680898943327392047868556255688430700314233642330132287790752566643827595971484667208519214038459172879148925791915766102513123014519082200355837615863416481330327183593093814203412968367894355385796582751851574471049549394509867152915248924567997375296641452038219765614829497598375749714085585460471615682858713709831916460402167941059468587669580228604895549130763389773219455241110071607106110896899253838358185676640567755238776868281193237754050301916264101587411251773733437760109214547995435492933445380802580902988450702614842354679376404100626348064876410725218549497442389957121600690420854805430218937911707550405130659657738517668053483799814295140011126623531411428530426023185924927441809041782747584528205488249406241185606366939940334349597736135541122079189159506650829291425453275701563030243018405270214117644579947552519399129043334462545477017312986618348357487588320978502675321816673218746298006486374985880231503447689516550126150882690089799988351834110112921658025797685067289746008135504341852554408127958329638620579265639236711210066704194326199920354284094571377678822936933848950061800772601876889619921646653600320991125536654013595004465451790480056542381412069067254170168654056765404505304924795986997980347970946223612764239029913737382263203710521049239694450441722766711445017317358210896080824671816031440785402934331375568055977709966757309977722453195828566049290425529544909099142148331492762192168296214612008993581715326108681283508150834392399656789891661342208522977505912799141027575364943550854820464575380739420728868862328379649483744460830661004374121613183416228882944090289467400924336860536046546135218653558268772871496346990827340600435890476485739321637300905750585792015124054007223297916499430987619877063032115118955915380799654849470570511020777227985895956740648891454003168924819270276843487496438743100336305489269619524554119986486030535717298049095373075235140167440780503334614741004177055948188039475002575709212339957069814528177934165380118175860586242719480822575380095306073268628433591202251570926177462940817457327756594307461849975816758257724751940153491097771068434590781245398402931959943664340872405915720484307604221347393775215662421235316989395104651343707093089355246496404231599634653511242377693157280031144126049187331166420912586313636943146771359242564495228715763853778720562754770347768297851871890958039329249904193794618810807890383328905775175149719505859988383483438878889611350041765678025929077868932281919953575610265563679478066547170960311778847681361818429044048985707343822543224191495425513921524909500336516224630289257139058400650777139185538854728606807477772237979589986678472616697950106840379094866706855353992556465464866305170871431661567188894913950533059865606649597752545813205943265152545373320427010290091988689883984084692570445219924759094816292642077431829918467824136954524630582990747064069217852610826658113815423469021765508824959747676738318775754646155194619926436961191289928450371750527171640054152402845129042470976372188416459571666130567509766381062602085756948194797230896078823888809720230687476543700990516941811080549530698581049758777323790994116544971117143409000384694106587702742238153362145288088877187933325762769993557399786667563429841089911037921743860912224811026933049132043306834900754650448179504502613585756926823950044327259853036767882806761686292930735203889001636418634941597211292444457996483552752628424198518249928629435780070317748874231729168983023596783642551634093805450190135170751757477929276376775540695548492471398441860126530618867580393679668392512983462921704802795661826183987362002370488910112302877715134312005750933185482805426788513660590485738314444012687830644656362363858367020215572613560215635081132557601040108212981208541586615548575952432099255405660337122306802555262157349700472182287582489465446757739313134324063871560929724162911663874355318418561393192127683650921675864711780010858593193400898595281610223663257084582399392192898878382405175982716306833793137038324303380093380780620739569705620112602638425896765054831813147457057258348158411239106468395102802284509402538005255981412919426209849364768870865946620704875610470195231275286139944188983274047494964795017519187193820248153206173894649344500898668435060736871295361353467604463629231272587847081641540505933560629662549162233202448095520267395599472163579921828641219674637640543149541273785481418841046765977590832998141118725718413157255452370014158605915800163103243935257240477015787591312820001766360846309235946962566941323620342046329287878125003762088251638405189710790551981833260739068434092151615790484213964785399006977490190726286246708650889790401370609235586205208906454773802919426731757653857753969617004159525527264471285885936708779249951788192523263812896722267197889871214719699355896489318517648349298734513092550706756924268477871605548042480450332198187091035397279138651567892615921835031562958723262915644871422349719535481885693177362056591874774190998311572637379387739064589910390925923481947033834568422089721774327370471870050196303928290425442776056578946635017131047801194522354913538923079998957091367597195130301770074286117041523963242032857000884848534201609704446084354561749920837170729667620372350742437912509527415168121437822795790621360703178383004484981074651987569853475296413838357199524887180815803753873072630655798530428524560911448317974655596184237826798402986228755173094780792061754607714048313683445157465269579104555792693311168730624828918296374348172698327908203542391324742858774354024547534626600131293133079397852839219684479391605909425944943670894497805595377375725523128823710421524293019658246866615273551250969907423040874176635252718760067344464686516621433082623932199177962467431813634726247489542345724926405456930501962739495233020416485661186657528219676674967953240183178845772177465069480445070974895482260678250294992833057284232507112043825128400585176112383617908392734782796334083760490989708528815168175925982336350974105632582741256766122137079003819271608737061942169125788037620459153138074971505844718262884158749202404506451454284103315433613675913916053181016320677072306751809737664122015311528299394931215757963147107406585983166213935252887920718497657634226437475958937891329410887694799315854630270803729861303891013156814659127676380123856332673366497571620425748722946402479235496470021290734067100585928608347826990845230525294604982369766476121061410109504524565220573568136104562546774022543566621628167327304050119454890900452948225177231524925574799566502584347526455795559264524219198255982723172251113272661626247911405249789542955004541485017273078184681081147491738212849702752172137474279200840662663047096416468676525854968949077787629431139315435334730074702962519684266788422266984507833077363393209496110661234554400325179103510861902095590286066544584837580364596908674976931732792962059948776301597560331257620778092932231140026933330843166292606377596412492400310197192231467614960730548813849578316618019714733727764402897924919561851679472375416593242158351692641518606415756461850400891041705982374476387624130125119217634937784118977346807571818297602753623460658744393487956904781641382058060590643124936093926646842682729314219790972746849857399436024367694951509370052708151976264328066959668473320541822205137869691422219721314015263345478357478442868830214646492073941331449408313327558472233804344966819662022287596831524406951561359775353578710258945683016689742849397307487821255000998683837994272285503699819404863234020101163880009709505096404703133949233074847529648931284664501685527793445465105168282049337570102266444551441864736553542732648155909358254637747789262912776999556047453794096970175057319130023157454308356728730983871726494447250093588501352230551838571932699486500086784741292665353349480983657473883451675240660305415901726939644648487109794464361801575393003742482480141094270553853430019847917487529560743035639682932751115939104494590135346994023069277974429618839296253023664986000602780273153297250929024840450561802020228614481285152762204649889746629800676661492546531930752182873015356022251560522068748748174225703851057412509104606772136201303432551625381752948246297362905390794130131359922613150751225610791597837583344865089986607583141839989377474198870788737004544875242851218159479059931456090658909337952906073799224487628503184411348436815326443266032789042776440262972124464907963032288918166375880514589309880888945762475178682126558566476291735192640333073175740199838416564323457061824427254165778238722200637218473596156212240236234311116287673751382532394047737506911066387144724795757361871207429663879334167981733566011714960382958854468671004725196282289332757200412500271933608077545353934401422239023643811733728245532060956998231376544642670068039846761541773249362183367230526326069434137645777592462913005740493049642450180397917525398223918045031746312631739325789552081359481556165754897394601692877990006717466851124535455254755478929545663646081490292718228155329247929711936173184937182737225115732106853781747201488246598712136089978567129147729272938422487543426258506103823089694988625706850855914073496834562263536581005894762952551441580827297783500841633150638855471429623939284946792868854970345678309149440333958581667289563381684095410024809517433431097432314384159548817316939761490474853311902947360515529563457409434634128953510346586366603269629951991764649532642177425336710499681964842928355421163651127723547952350959932546910812879266865829246302342706082526231817666495058277197124500477525478205374953627458938556427439053170048805893988200795733791898733494723444684758197120240688679698664756643479431024028729017340785700924033301583081744112614977459095485128270039183061177289743693508048849895638187870345915975691477199445828532863444787892743573844892606301120781771434402727893874932198139967211341058747125571790651810975303907663711394564415796718896452129512346900390875360171809083889318601271365409319342112613825824201596611009591780046175326354293222809120889697025570445439749944424649592080641078266001594876543954609208149167307429765776692693980871813627700552351477004145188211899132599031315098278720531128229338844233090213063939891512996343395255324708150299049316857179611020560517603052669484236209886977266533046297777958297068154151572157403889367892238418620682776148705926708691760239472712212611024619119138284321926115234520775735634893025400955368709770346891606006492639913498847616777818532497919314985461689003518725754169201955376240827379843747386449890132439314068906186785166659600475148112991067933768197825172886927831529336885856593394428629440613523378763510166388627523136098609484540502816784668554662803819644253616050945254215523698219683484440681442947060436693958377745684334011853567819353483958573482582353130980952859962847918573916700438346854938871766891398982366975359056651921885804416887045457623956051552194652619755873827921848124913708248193676245211508635473030377596329650086352346187561317117797869130681501967780762705527947928520410597870132872492405070663142509111246671638829851621217760054865637218554027547398966310872485946520947554662953664144987852834486365577435574646712654061902471744697526874413102652295873094020811657083298157802912040832824298411618369541970380156222797839134419542556503699358892738152390656318968592837028715467757636279672270237249521793638087614393440752119994440343153742449141632156682360909849484502097358682948965282083137841269128320014492066318499536136663449847283053181382017238827762471012867660793229671956745379048606360468908886496678306327315018098356903291943201292867569458407083387535714673883595908457106785504062854323572342841013906421405798888632517652509672695552245905889840366868531177515891670999931376660638080959939763086863050724038471300912626454300583456418202592712639730656110484607946033965352324049798722039109506255048925932336935520360108674679080038166360316225619790858744007893020270410985011869695099468349863726180186097346298787333713595371129156211427850419939473663692977063249357502329059744239046405892867761700208199392269765614546181899693205168343819057292180818271948841892125032445636330205855739099850089254816263005746686716626868622599588795652640165276286371841186878591130117198026822143344346139536574553108673824647838965414776567400850944989902982379325733491547924646153291821168531058589588623247245239181195514923328008215714160010724922437581469497503218379083915706873874142846542480898715375211913496242647605500898248420256069850198426330186222053200196059671039011924538168107008665757245558020662499895834638433073454154322348641575393604993625203792365158998711036114369866595662035481438599731912230855121112079235912975872482902745181379570749286414941070361227956472774445484817158538925723885778487925305345609464356875896646795812267724007230185571631360747855967906732108521162287188172591877594700518651757121562679241778336492263346491301045793304899053199102418276089030420889590728256992791266586993871959710438984778881931529035955331590167186565394869653731414328756677400461044881220762371632340547822561104788504016712057911787993585429967325908110640506161475976779497190191912969174992708215349262158966692354721311846945485147502820329860165047321654512471610805868820521642987316533520495721651150099332806453504952684709947896218758064575366216195276432404708207233339212759248764338462349922421388550677405756219569383599929850363592684236548529646064517125694726123937977030119902316383772489715277825563242247685215142414078338684219094415749269894333387557737585903289211264008511495312853319338317106924703274348256563905512416582104764262823996006940576299551271795674932284204322919850592864028355654090979480993534091561183268163198198613208266435830213351226978400559649425419952720794918907844431639626220047351434251185567392782994759896913607662283697197375438082025828519096699448314298328148137734624691386448621231722455621718416078863481733919583785127687590644448654918605007138865654546020674200561555091157313864883685411443716549881592678125203617179905383702699159571300429998759055754687750847679965949196698539502700168689048188018386076835161467605402172120999830097580306289411092926757466472044028799158236460935743970154042188240090603902601551681429666646434596810702674926197661347156765983310553722114148854287355850267080562737564939953214794854861329851744913035169072011255026172609135057680847767530285189851674124147356743432996677121154970949257261533834688045714009343100228144243230126491928337889654238761027990094824701829245958188257955268752715574016907002233629593131412716342490591624600492295224814926642691246829253441820310936120582960360144661127579158243909859243880055702001261364548074215676049396919846281618314704800570639705673704017557844887206730695891762525453379267739217302091675689540175889895527146783151776625736786882481925199136972086999373247395455094314102753403946993859682952355216698123751958192256332708509092092649826820031502997759798099565311071248485069928003297816986582008196553867405880392545443086424024560019120169514759237817657660971496162271403997434669190933138227234518756032456020406567534548240271304008709581414929109613554910896259901525015338551325064734336292845237253987610527736526402522382321429242550664422099519739417202864783185114629729912113821418742104263605972660293599811009265385888982005498754994024412883077881838551249028299742639399819029707662836729527527164520494540250606050670672907348835346249394365928220077625596822637518698095991941817290383890884242501910311038182105276084348920080988042808150253996267750690590376941267893946003886527522797785170382147154077978508685520744094825512611962979365137541903847086534309471288319571274726962369721560541366246227700999088350983661764883220439461743515644113951395867205525375934417251284258699210807929151949609934543148848071962552394962338431842303271666075196561567541620441482606455574111902992363191974312704390378015406807509283767803685856724698510447966303469349111917433986575200707827616135739808232209216416917505655917213649642114473160112580055770030185474975589972623773823083244816054298763279082926872697603454482904739571864631382089519453654562346152448456588173796551345946728554344141148894091864724718704891695684111470204526841003948436702991963292881642367555209227697983654250342298574404953462782627577571317714377164549233186640828749850917419598034471797016626289297388202006504981956811725035647550488515177228292811655289703877930211329052753705018349717265030210523534659715267695793228739008516927588851242032706403093702148157954595519460753358878577526353373887521282318181930859591712578794804151004759550202858634364193809531127831332711063693166967732013182417401461972702610662979629947998778560927905972393974186612433555660998287830777219701133675777387399923710045503837871763360906304812394989260772269268624669802563020586043062659666811008010789343134779244746302723973752186299274634592984751294269368465445825165178380899247758392584046296350364415607934541140289675338707821297424918380556029961717551393531734202947196166613905351363822092970081061857437332353850918183728385831775952117946255888416839703389323418409493673873609164494859989719302483385301306126494668328920820263424758340921343436078544362142066757354297480942728583295938537513931031746808374481347173898870271507960866879930863459863907567519549466258942016106230247367966944011636013517545718182560099478508981028936758914443445974403412592104894439095792202811775913684253123559780928540363830475559834282716362894225647433248393802013265052811447378294559542201246302510021921056235454640391370614931688495583001565810375792374469739318166006063719343683295419309873054549167008564379270881506852440470016355038240022514616195109951753433406422093083978980666329585989308129403390877628446318842150407566996674593517644802429533348601060732857930501877860629370039472658009639771348287749924330927363818785483062912438379752477708396931959091558508886658579601081069573571699247103159948483947154372471216268259550571821840532332007506103203989143073552540382324491501143979207306817125903750693348887430585076177502564221372629394121522744743584522603315064850002404562475691156805605507474439655555290788179321315449958415882759303072588313927437029906615849504117503190620524718664778873149651395812993851238672078048085353474165627360696659826282868767030690897610381164597506300752711931949493565426007245226117328342039497247789766056120899665778514417271692149722408610465464963525522520149597255241286204243330414740851841469316954359513947826222184103145762145287116801149485998228231118382110855308793842509668312619299386852943491010840629251987324781108677693496706127187173781796564901850605767900189524546933195494076897130277345598933510062848378606245191060055131337531966974665818946314377670617130434818403938119736470539709840794336472213408420519303399988364261482299256505337980907986810140296509967876130797743441525406608581829557247783238387871118418852861557370245215263663189258784017351313222371445664927870777084331181084400482977072117222427002787795404178244355356773333217917490929889646803744724772885735972814078800707233164902638517281150211225289311484800633968141917275058222111474325614814404280054232004824151312712625719615670178319104607269155709776415371231565145294214406014526951229283349021508561936875370981853752193219657030729441370992832072210286969337718922410044073220073994216932727929740223082377015616304030496024288663434494158630747373801580713451448275043919909310277644520171230956936099976364562698626142870960790326393759305470837784823013427906299420182817401897897571094118241802077153862315302480326745719396685731870603249977603919386522726560585663731738556627853164419045128107709583370170492303773231364610225463319883617697878400906422649579569604152798871180318975265394547397496332739924932558975820096101623885211682744723942410580392379046041974304894495781310146353446235808762026638981001012938154073717932623499361003097436487247159452073104791178222688212672125654279928590496831934507298143966609507440792524119074587555821629267069250654458822074379535251971714166957649718803179784000745811809434422470828171418334784040466882041519721426604273058193149550498846128052154352556552809575516536852079401824283636636890750992126868572640284617837438011524788382156533959758631138921203563274655471879011227204035974031511317749795582153576257451870674359292954050119183165449133085237460633544405434092505995943813481839910727853653481384772332992214139506421302661138141936772942813643759074690569912496740314098077140029092623596559638989807820177162160763195373075198777899123410037689844188870018956587406262984720784844559570674465829568806856317957204801665610253069976965429461947694822881069606914234437143905142310918735542458706619647321450077199959284117104222549353616684977335528138246151557796101783210329751028709184326809201493508513802815498390798260429061746388822163201817272232528713789657969570219362378032543637125255788206125351641293193338675701020061452496466353699160201386558823662737489223034025370504108411756714175448569913902444279656635170301022916282082789903049560101386547478180482308682240833693443552366719665148770627541652096555507985814946698131066679989850636228376120063400561325429974170240367963340248668499941042036601542003426738300734621773022894210625830525173007798101771142509603551255064123217505904627762175783530707765980927548776776636316047614684275147663993358686987799172446235151013867392825415970082042728028717074980305572818412325946278389142236778409708236774259303751839297098771314320832838708468922092643516812235515538470388767640153744927553408887017704999096165123112878356549859287173204342850085955552903286225807988568524248693230929688265649682445887597755174152920471235900505899865612769955412591717307671830937151248129328027922994974692420025593015929324640425002469148800443277265462968816003166785252647171253976451565935678101577537359626835245131068390594980369891145465537973084512091677194394594421233478024850006243408058887509126652006056859217091216922654172969097326645841251107777167641216427282407422299674503547059489575742184308562791717521387202204034170750909398319226524118842978412715538323124832377948087580132259527074596560261679762630729640288749795149104190927344117863062594039506147418381493768405214858984073452925835781061043444205903399179816422616207956489705119014386069018601339537232834130727319387492887807227781368513856048417334786630783858810764219965675785673179019769918006210324369675095530672534198612038215902268704571541802669467956591766207588800529041673005348641301539572380811682192883180873370647641617303119811476296452394021500166875744759866268746825216429835636124401344170291859842295731420585349442641605636083124168240202284202032107600239261686996645835605547605945412689942764432855736479902941073610249711162302068463415058971544187024377751745153411633289648160542866775199323498733130170382029683484160723194646647999037873232950477231596539947748009099385349199015887209098137808088725835395738201580673740054356449273188857762239421122353790588923100408287565346938111477329890838411125888641281302065033378170368024998570051590004002133489239219310581972628985365136276860558978550543776197514072661536984101765594070577035786747076819706525343849883875883316327653876603680257403259340204840032950369552649166599063217235306921607085816743436553084987871446874299631220193247980074011856636902835060407333547502938377042101738869915211910320251971957364272587772010458892945476480545910082734339504306953321325665855186770609539125689694151738571725161074457876517335062819144644597451429821244011915032154946338470442486231372557554104811431696012746727854645867438798373040934259515779867738045486577211830206322254824098991471368970487667705805006865522352944050507759942495431781108769964037905201914616481920117765018602189152347499050293236491221263849204102442926179641300693798532033109014336441589751348891248664285757752777552839768255639500575611362683285473421252862845223960114984714051412704854008068616037089617283082679812566724055299128722371512222286175306361845560424864397541877941968102272679063570569188293842294626204830639865606140445258727921742740119266574786711131031786661235440934093794849721743288933414498370111743568783793709935620074622837128764393833716462766096074352647491529407637733395369675421874709768926727190830058312786567484942095997984304986277154360564254852311142712579109830039990095462999613572923076469067614675400258655145888974781905962960442606958235072988730469911025486948150512319968179908588264424432533402207038290573102147616398264036375391249631208551643046340966823136956376024941961068755366331763910771897860231798870453068543610357874903070391990482079331405211387581071009480595128017444462688271158621148867948816219696088986497098917265526759861974379171296115873989142376910537578386972260951057009471269867432122164089976401334885584641955661563923833511288113899358653235803217965330481774184764770893264534017086003836046487121425417775282235083433026865414328921446029871192110209966030110499906149265167124769022599431361161452989630139202676534066102546374045713792410511914665159257203317658125567163877065505748543059139523600983408831011580614087420448711439324202538060324327982923470716124903246556888349907361815231557907093292405201818003244480386949651029175688240316013472909027783416995002339994260604850678517886014210363728121232201656674776245366180356036922253259222014727860474984713442415029503548578880148159350433871492364582497913973219346084189747588496324682508403134127812730322055639391260619107969493498074781648905615452248212888078999088268100449974806937481386074781296022156635471541120248920620148513564668642759591065853715466253345781791334242242495454161927875577599073595305368827619155377567653532077571471044906003791041021727070266732819277927181660641180267465491242690822587547401817275576294381978108833010104138802580596159583062253201519833032364704304731154896664447415984947053191946704577044017018744151557180229901902089700855851385987360505612634384310543589421063914338037509962421704292814910991927684918090267866860460663556110743106471705741447489591455168754797823243481164015003438858239453447292427393540071782001608154137892844281560069984230565005368798546644865047983869363570137096434052489738503313774447601288701384218255144246063346890975209974680880085962820907666359140725618480470541678155628562989462496133006481690911330046266570050509044204039377173105418474832301552090961889688567955385503227705293595964813167308659546955666092149927260094052571529911625876811670363529595368951614317179978675544752707962631531641073340602036663718462023721648778008307172721615612204824351975983680483920968141213138372377143771150253804862240792987814777561938540246356711125799244701761631735526037375544262159516863740261158365342562313863597894370913984871514620770813746259253072082862418260161547007011972250160183485354660799633111432741434553037366486216204186787732901156449426950399222992158860073687792737489544517275512787344720656627515492416437069229458506942491703279928093338049828473463109281503237529098981732725851564804468929623738557129101800815955299260610742642152102831903401930403300531457767112937510529644516949369885224302166410504990713082535209835004775966993499471198626675149515970138390814191483362187213789600052483676604241040561638376200408503519087828957958092044549282022657532836672257860622673466325613471779648847689409245399743002480705897936216952236776574726153333570089789949746933981690429843590654650613477645282790676809591240271013304977811254107023819104633739452784614726152492404568876642187245528474869706912301595386226674643324383550812252201831120455143691838108025767927278802436995144955237929858210173885838844514373011743760428076157845583968906533271846769429133127775639341979981024073265725862451764209311008863124220578953167354024371397521189080499624138898238992490207743771071612765706227556448145580950615474284289910657885361933468672744857955811518130287418316959042795435202149811047172553923283993425304809282739444464057475934010544114340331235304217108824206628020607731635102308826014442675002157261686919088535751029374180827515226104406919401383898961117387376241323255546328696143085002625214173406726907858705222085537513503798401068283502925702892288013274353200312920959534675039042230405543929038601616821803852661234825810322338052436648969840798394588548603099536281129001162064714163523870039081207686940326250063776016225507135896988109215204230466737060336272070971283590210248069739855515525575440221978488380685641045139125575848069003663454656178972713856881537691101080392323425089727193654058065410653931512376396859293515693077652673870159247510686527125221273414409380768708263201961127893492215533260688147771435228120013962003026691261825587546219386429808750284226823060762875836393751416284743892445713539757903860332733866118229198325171633388512212351433527945101405100895277111287925365607919433348805380210860543850091116533431887981118338121249730151275940240274927456647949390276540416420249429259707468548604740530697014266687391614162872550134767904335880783228556399585152426740787918032494406063805683948432339900849306094378968247483808379172577828109326870349198621498442063289198439582259733294997536676805921330639813682228590343973323075163220215691608686303722298761570262622612679885265177193513483864558067784785850947782106462217228929074281917746253816819501022849600030239899017955621325258140762078100582277799807777907994908763638160384251323571146833048787320951381457100856565625839449677440620846636307490763371609774800358398415835374233580221885593984502121658540240231419361048482116293474261480843906190172105672014611129505340357893197001546059016468973455414406716759656634402820550595079148996427738716435496811639748828318015049834344228774948508397743491534323749400238020929350867958400859703960525747168607480604046915611875436161171158156798521251973955089266655314280965407254163733603440803025788114082133912441267510695114939655157988871723848842689142786602522393506581449161783542123744729576770579077638948580505248523630092418499810930968243200406223287848083762165619019663196664767655494919353755187649006376063463612358958489077822804244638853770923984963544871352698684782684172173407064069352257919970874772413397014897880612794952875409087046903338884316720322978237849576233418612089700109708156652648508010658254610845096687660291869998080682160221921620548622966632336409708529341399478899119268127701463067599198087280515991755304345648361035291179481565304841037367050368760146278791793419880342352475726633029098095909080002024057642224922926778974685198324363738013268854295357422471502925128037554435910371156182834486776194870435086785867430814300528560862450245067265367496234547476990786181389680819847163293755413836446038116484005666442348682365037402186455373154534240725913479460478244189248357505522518050950880364167415542372964684775117767768950600441361023909853281707691614457111905550111441612183792715397795560254826655448705799383897406827848409977944765432787673338295544722617066389132435666441684382540005409043387198098743576599076085536953206094426875042935333451327218344751693536194072334502371839364027518178123594944384186537685721157696079128617624268016198532515310007168786152570072680642994257486686812607023779422003374847357479920576536987892448997018782174130516362322200780551795786000343311101716926230384835570692257976039061827779657228618887560763801715950393657006886555355096570511040381911099081287264464160118597016925436967691463119004134496031197291626832882247367401502389745588231071740040677991565578930047973154659270188434285428564588003475012157200953007043704188257454096619365869074465564186800949500870391395522370518050108578846108108827868479297043957846510328020802258726681700193706392841194691968013349131980815578091623458489615261945864757455215914096090248067565001978887208504497346514241428994805494680987314714558988172804181144547855325520343515630866268767173179259745722417467283534216316190725723641115908313090114737486394459960941308585567312833234970161147925132547408619530653543412639061869486104775699115964876132851654332345620166774596634383282926837120506509965038918655682218068874203667764136121450518908264191032398299788893806929876492899606701555324530186275478344406304793753465890118632143318361155964939371717001346706413315864369309312296681153460865392833309078413764898859971415616696050540883516469101848667703536336737178965422400004148055152361256059090722703917587365781644896527971039580922783409436501679089068590682130366697367983554186745466127436088804987743797040603328553659105639851368074481867443332298163352925539407096884820849495719411932842239779638462514019022065211046201153690705396871060468328180918807254302546471281994100050363282344035188228278983932631005916036377544031864459985124226271465837100058808424938657063856957192414604791237404056245389160889007180813732798848430227587601931610674291363002189317320242063222873124122062426205953802935833630445281753438031880995451383750597234972846203563107120974250142909335069278337332527164900731238204173362666689227060844194457525539453200086358770537602803000970785792568004164668550676269233927811368571221692865287568848003132857365173679758217422802915640351947856178287547688898472198292104176044579375077376531923035742945431681782751884821948055871803339303604850366357569103602691630497788823988526058630872971908727057296365895892413465175852011786490792945034467654698251568763411896041988947623108982489104594217091793044547545581170166469440818826732358893111380836186097122642778145097489669195819970399451032206284420656492255083678172232320573288438651787306144793644464404388743192591118734016045749265301228245052114123336904628242897701085406436705812233531459251466876849722535686269064446002845234992009900740656559678604450629718774466341750830393432621734864706105799525628277235767063490215320657074627139154493739350435583637777746511885402222049527424769737044801880659647164130663532291067991860263271064886382131730824738615622056700158996746127805703638247895155043619208192931515831435937114661562171692232151382881436218874887310736377078854694912574952983209029392377158585582133156861605592244697709502934374289940532730815945595989095149358960576974055816157277868520846812832018924302899923174745073108489138100975930047925742569549189744858002766917519847951047600737081017199632258423574564581579916059841505747429704745532248292951269626313017625030347993057539259434876279830252441728460103746818518872864936732118291223900149753063412664921478857799147596478929391749022032803817622664597870589060294309171946880395236781255014691316360788335183470529506625984490719871032761616333518141122007121947075882406847610635729398957904793297997258322259223386925776012449217519475737084548810896809994802435219687574201199085402128052526943827453167356246901290326538735536846819055686739369212780743307706657287275845400398147205831442056451607431561006442651587071257511257348372724793690856698396537915553182985875975353947856643916640208608729199045696653841572221018427413483825867873810782961205348759195409112066316114318689387954067407377460200925568898660854487998933129026089040725811919944843049346824820965143675613665610631995381095087756880043914710542402192460701311379830245103326883783116546868453288755632041168518232878706576799398400390310070798291910964757261161003405558517715965419311676619301478354834213596080602198978467863113080993060216634474933868396396672046064370468883265488251314675197853986457279821047356126367519140675194170675119251104446455757141447188355982794601977591150224547001933464076066511978431276394658142583079287605077583855472073686616221095290002972386192307636789560511819354266342723468692720397778105557518906657207527733708059012104961350204314807614922458446046638386385746389997230824717057430183742119616946779153914649704398170911565261454957252764949656804610729512421212815470759128751475546616027895582960033567690222599633769958243202488719533592959986761982709135718479609745803801732947957136630886297465713819423481676551374872505820308106961735766443909921360788783519494963535628102211713847795556252120265553963566686450676277818236161642761421230249073734437171879648345093960709611815796935300247009596197436122580965241820426918685722973174115919733072147290318457724689005326964862713324844751339429611347593627967707148235795106652362638052688522781153474360482344706248994298634142289411078640021336339438064753542888672945566236493937909064181544716454388154853376311719092686454320721830064431061865193011203611233085814343004025722642604004049646007275225170874154468163799566848513406853654835932235228264906024805042738005994750161669107938216728386616215664282859528744966230680346897266392694955534357702520391708312411665406805583383905935211370866545592868441978929336245115059160655092878495671426802678497901353699787543688346419200842745855380960315467505503720870558519483067279882831307081396528468490238768938954679011870780601259084432076614642565614900903385623892277233683107253754849392762315432174531725601924499013411941542545816852577960614628763955664755500203270634528752194542557944064043793832839206364715695452388157575990284532130850706612314439702573073013297246617431731218847075081570975900104417302592800486095710038938989093574581907411139587031070074518733621350973440006182980934563493112624798922871434489481662200886169013140194508826765839546177480683288259574466673185364347505604259196043560566524741126793705304313640469616739926601854288818975039715498875435029451738556666902664181818838131484886764599108623505080645252227340011916350416001271989027603754948007594367096531792743251398192948109564169625222719449231329728994909195480320965476649580843412277927662227689690733118090066047209738396388533617613989279611455786849587998002447245609217681822571020677129457688070898570342147170745523478000055444287603809070264135909062866258209399875837890699789638378992813679829745333288017096752885008097828072925400603372618587751581129154341975229493899908216488036907751160019719462706934327017035857194271484122844143536728495126925276185199601711001050309068685891421942117831422092744101036294378537161067706443899793067803370000835502132173353781477973864705197979365328090976159269488401021519970937915036042635865090110404086294382722656523316298036917275622849204155570451641931141427165149479580447633216118242139242893827414650485425596303234646611560467982232703106142500361426258326966890415822966577740141697014621993810915739151199995231526862550864221275728985041071672039107505745429454065045058390055550138793650920873659347288378251700691611476176171283669408261833123080621681780044800832044871395432216187462362181705714264619065081065961494875865939837677414265964066902081701743834513801240973459559652044248314810916244474645733547907483380251576300521867253280940347362666318596219657504918965586501752698502113117095468962941903381013466510463469199621070655829420485600529496806718091838015810142142484784430826013501040022846521991733054350575437346936451908271213452659709524856763119521376257425779281664311406859059817515798085854772603863300328561894359583894874271802538479971583711306469908708378814347042186730900050231832347585290602804079521154524229026196505601654315693797816143178115887220682765289903620758793045527944518528525099978801461278443415322081540012641138059134431210541745916920008611646413002190205901949844885472599088373070532627897937883219113588841729808701876645995675468429460547908343059037180300290498835249060038986546327979181631895177956167722934214695196758960889527317447316121457428821267990268911280615108056690581280974828750734894857867763619696177119233786456354333639228353337451643060599782094909122723488749633177463831032739051609836966129686887040437583846714035082957918844714288610158740137136018712901228137651786507924255041808621261253045247789518757842134980844475984560159451934349280471643980720384768144185987285205625560330300964139474578340437480274364965894978002045012860929881030541102011009179532322228705669187426832274528263660513670955833898246451045072936170628675668139353792800434441708966765437538500139844905300288398838005249476326827627855147605309282207038698502196074824899419574315089972762622484214298263145261762272253668313231508957277528153707274164650731710329353225711703700889971679633968409213462390884045745494241266708583444515405676426727369955898711390861584360867087853102408818391878354558590278434725726805507500547649429234383316920253384924020585449154340909106892461661820837120554996452141590292995630051682987834225038216294836498765316851228708488353279298262831066499757027715043286950353667811419984567415943221030667341153342068764916032142805896597788572996779309090136472099415066244794820779541139849156314175542606388234810042993167606424957550152575286211171711273856954183447204440925944912828068577425702171887636839954558721279679080286051111189646001700274118207046637913766395339509227221044423478432583656590669464023804421044807899999265766167869504961484450051732564338008319266877478763844423313217088464448373346920180202436021420827375630396553460966685971880193330532601180975674906406961529287792430543731922733438497509101572222677051086754993727213306707620711290176007148874352788537728748605557774210789985372333749251915425997570593914058919952132382663672670759883342620611005039663398412677954135631137102026720458766027821428656936963962478826482016918482726360926081384536216046798718067884158062621299304891060065150234993259066000648656384879445879783583835260762290198718722465322005267442033487584409228077242434640396067520797183650668794711350218352114764775365466383847865995371043339967214203179935748383817739625038756310058601359401879723308394305761246772009083418546696263485549667822566432086687035954256379663582667373243436826731253316152443947353171460462208617378170000562015948562675111208909870949106221404900243526504452976809932270927472249187526172795248034098963216722599164024575942931219382667748430923636618080902434148985970035965107726620061560391054590470186439999831546008471018068560451960772032489868173014863747617837838969923025101636934708636906798468501428821179282661607946194670810172372666888856155938789015777643364703384012970121451176277548728748359065032751008305485454951651126727744275260899794819128136799562369476424316964090882529820904169118198857411348409582890514718660913644507450401847455807438618119349211038964481613189625645298159128953292721630923308597862850317513351600722919007262203390543808696603217120054394422943449052119141087961229995410087299385197913066110710300495897404934026554378093686729400037193835513832064319030032177455179275827513653320938560050896164329164022726434780501243146016404373588068772325299117259122964330303039124927454960125660084629984384572126099455311806641899168265205955422872261375661515907672915446295703715161896883186108673139717568496285285995355007092830175453409127355679782009067439163414760191113670095247192126675304764033557639262554256544411870862303843126288250096155423919990622133491236301107071782530714051005783623400514027655559373957540422356818746923117018490635109201551171807874623913684998838993134873015841441419995782614129958760123010378399563033444791694760482321678088049980459845655443115659334956369771586311828152012344595684777098504355425247757210659398399734797574334388899603276278001854306767180653365429244189781734835439943708939103878251895356845060838517796825263151903216541460442015640753463063575307931802160138430929997847570877009877042372204122647671608244331141944250577073765650223568869101431108280149544117170377355624355389634425626622306565032039411327071970635711525245243318917852337423945378406086912412113419011868814323757715856109704110165926614821464178879380654935873409009926253354052110397767340387888667622597581506001423559990957681027890704093797902152601473824827497904937802170941785324049231059519155781660968099162137235296960582272508440248014020596440035559517089760648804631421474823923782711213184069826977300320990401038033374595065725946344563249402320123413833111952673139924753030379724651363462149291782085341964306863833075746918870395508344892414445689567118146449861391214178763447484509547792359075685550117842295729942424187555285249484373031610111025005673519300652088677849575158379041409153171832147866676129713676440486661048675499632996357701819048847444832510171207766298043308155003715989317942328563021374602688109525938783597522449471972487934866470226352150486648599524290943050438895337430039166877589345250323934793747911154113368611774563647361152537664337070643965143711642228337892966973459463975234556087182947490132839520577044720176009383461475886208577312105057011491174335623958425250945142298828131407690435278083435701392616219801868630848031968315251102953111194263619568378961979639738885865462988118852086106055348534585173231945121665219299710863230876893060736797487251216304424690950678435761941316270668540713706356639810399824074909709763769159654139516322538328722619717417402582858059338187927294683410382863052118309891200488062319991151730094013075484059934058090637533394223485943556132080148960252665730892653207151236929756699191981105883801090206122846387708958036464058307704250414487989447970987141294192902056966824669378785178148968318703845480861625106538835624712504268623849943545559562930755742633478781205441648426637721976373672902087925816101772425382585981043663954069098106450305069685964155915404168539353390775816265163032494288058343587335459498330097962631648099774695370120552095890390582399447293914333929496069407507605706156153554715881126115334096876693418549708838031834878868085931950815530067325970122229544417114419887602295672213061481280982272825410345030262857497585946149929205005412406786377354116237791673883490112129411103783004144249799097466066312902372644290528176564754695977388641340201522877340406432891223917746536601834476111475995616427414567156010730567368703068709893607330762362222536317416885356219558631366624940023908303287707991924963773436768440337021325744495017996098679072039087940793837081392229148095075439650842140117755046743602424095285716018788984812025357404267669155044178828254851419853932223580223131512978291359807443878593588450935026228023132078668722846555024563792312654041493673506076008110008406437778030949587562255724450190648993096381961823574187037556604521569437943228314883586072625045639087151619810841820469901108602316572326041344889140179331101480604136294711439401423894172389027339566065516858857028104052281590786844525745903935248160173636688084051313981670970810043491730864799547951985752222744420927837358737787954041351433741238945509903666985676643826934605055405961504799335434911949920122396920679523979063472029711640964235101747657194701019859051910277535308809352163806011280395864120297505346104687890550871102847056005190844192257450211506503910741311603738529463824672740637175232782939946189627436502778509421764815886625009551374376171747085690376423355915953774679732938215556749744297010142439314070120774399421757092214448724538665590589198631010232015119666323537339420045464653090645595321256671683134158593153779748103900899486684887846560924391636860569315131377329469802915353372849266109832396785100805563400127296170188249893096286483832627366024986679140128661287184973269770169081159961892390843142512135207472670576246898194489922670859237041597012947810188276148004097367323548794174393268355622961782529655827658477996570463427838535471429211162368661228820715875451338166613476976959856753858771608854623200900614514739807712363677569194419058154665817165898086039470458120729749156148202400455642296909876685269301332309387810717897181676473087070603487008958012654219278191949916769677273844484349311401776826867532716810383394743769581657638369784318024349563268149526580796217838942372089451462633924716429017498592303615944622769138861874405298972644057543661187458688218049018107778007263276186078156400288478571623984063793904634203160914180847846093545314284930315996783955425186900040861301305454513204946863951419067507255824029558554254360404878326190057696119740208364796207249259797849474328410190425852074514778615376555715961273075499354370702449385078979339625018829679023731211122760261368770825386860114460719734238126608740508816582883654758655056019198412869919062849647246693812748785484631902344349537660026326980599640785311243898122883570394434560268630076912525145346962715800865864670160214873174141755889233973917775210316448231059971955331795816111057524489300296681333182437181915497586744180974219437524561413242158229696478071233140602981178158858286460222527511802797259025580283829268742540757269181098216580898666137379173213810862632970347570406727589471943283577029103986103326014115941870140986106663681690948531035681897860354976690626404895512424758757295441065728699084630203636938207495766315427278502078610566375525796234117201924308028333545492361910696705826510323590463559809192840833221853572896983460257881733796709124842808581890613580440512036126877537293508644155144698473126747594888239663998096374770291608421575759678924065280098004417695561199205675725753566861172620684441337149609085462082044204991338419491371836014855407755494168217248833242773787204147497460172620749647789150235316554263341784877277969901238395386881625620371164179254438354938082730182302741563658631171231976833042388354223010084153089174464295413348175701919588671792584686752901639094322229084416498701617689379439889219480855259318971147581218273344868532698654948844081331850633155913129046560101416538145748987127999334499891857884459583323303190240399389544622450353128153236950861463133761321660630660295952187167607866336787576645932052040373041035562805186816669735464121016386817214220616961194374131721161274035562013507469934536382311754230318813270642100967243025860756544393269447461440813778858184563802642767294500732045731237100177749625502450224353792655655241778869602894379479674944663341966452968604331254880549647405202566884031255145827540119837629221692941319475823661273573049471452398149755984003363338739106644129967090799334368300357063734045980796068868408697391592589444333697348724758475897414376707673609952340729078112087006582588395380211303815136847137971078003428102270408107371936074102117052517901375267842919481283292230300269444414332605594704912220775125317066432504130415301773132451422613334939867779679952581170303198703448711886232662316526454638609331903751455077571490885907287125270358718786986054136472178910303285286769819538586031754743358902376055165853811236063182382464198124316165736842085069087176564819485790334579206105499400859697307969275901502604691827368769016837488928037132028215795358404213037799992506210210023572702926193172350733869354688745762398263159105273995511953092669866995411205304612874799874164389956106051605262485561586012291898805804382607290590574971558429163967463404517348198633758666736439419458400106409096830236743960699625304455208556500026393893376928113683659373136537282263418202541845292785830065980362422968741991068872493857073796768281403420434115657725968344433119523242127966907068164789509445312263681073594226160447052463856677319372080214853342750280466858759084248216422969457828849074409412697421467760608015019149485469997614808932220460159229759061609469447738484216281744484272024324822749552315163956918540296322555226728379683998908939613834495268477622386085027016119305377240537036041488737563969536697425772331642223451500530407416548312568835670389920524690929505230434215137554217590663628309368431516324293097409980361323383224057846808715767161464735403635471505350648487865776990442356438328929227029893281515875889598068443334439625959167477245199162111200029613814709964332484655548732851331992492332315532249232444404306263447775850907086492477866366549135199392042875936452762122320655083206882014424380597194013417966125079731229152862333766814691353208284645037959075386434100624202221708417970393557213807898562895395186725645646283678213734712289739877369547742650029685255682268869815293249958641290636761339627673599951315517872876940690629263452505135384817629247424778161211546661078091047358513815836087086269221707423599398602454632838088634706625174349556497480914962484768143710353894185146377442503294675502547364681089307018387584396772059981006437272379169149034637528691479477916235566455577540400605850715505381706361271370992986820720694688974268829418760678797991223938395330020254858186885198659241343849069250635409765587182526655792706621955843901156402882507701382388657748359293284967905444971636222577351825176098473447099916167266244610863389533721062239844618520476171282134997057273037352914783923540308231127456533321448472476825787868607403443503194052098022068891675299180036873930671384162244294383936220802245816977284202962978364317901364716641334531234040508999468292706878241650711754458945704641516075264720233379981485412322044927127442958943928372605903036262751734437600356915063488231742681960653600123995849535623000194103753192838128849349394757616409116819403933935940439091143037584381778906010007408381719743226113077438095934856746695647999509315599451858064199294181673689970083531826548673058521268690427276591009985807028030622273058497993032326127059622270982201275348935243522266747259137782938972528149956444541794156086320033920067765825218579297568011540003103748202461129982221610366146586565230191029591171229123960587818822815941425772103708427895088444487299348876361163444412070911859692173024416168472066065942350160027731816679254732015109233169267783310332049414945520868928399342839241686421461574894506029719841728781196460110830310367721256223282043959669555304025963717835568326093391070135451582395216313088110883826057214901657195012063223853433925711281044649023105580967331973077346609958313286377106929897513297878261092225671724123210535323825917076743245429020852563748923704468631574562522791094982128332225267861992022124482966054454845002505140235798049867393958472210945564432816463304407218247071295922018493553853830906445725796065277105968668765340406709098304327256846000544528835227948985239579983518590214133350574736016800676632989621140672351855646930694749190639227060968924281418564742237535277389619929957086544663595175199792060414733741424645564613484806816649035014911469206578931744254922750886348461462658029410334022934262729321240176681328404034885625513149249232710302364612818353681924272710291540425196612677904634488144491218330269892557134969079887062889037999264644414331416990257813942831876838541747690151743724861324100479160162702931592188564192021062142763657526285640299147032324713214301566104035440281255507837645689731896552393826671197098914400155017567628130672001786697752138252726246375037001053212323343806281463014193977169719758910322281825627173654632782103962339933286118301430773958982879439255242121593194659712198288220412708237720190507766243221463625534928339668272505372652531202732454186990403254797854457944137662418643890408293742251078776987576693650288864363461655651407420820870850522837219050377087997850342254480098745030337390266526349568652878103109112994975404861186327533618001722986248680542606625707426050985477477027357881964138941419835464549323457888222937721357979860950765834603153226517078331293631592114042872207789332549559015094361481587798411776468068015858729873665687242151607910454386536721302156423749060431548592820148867971616558807231847647029173155150060822541642641595417518192039684233848264600564762920565969880152193492739872538345003792572391474977794180927744668918151134189369770445885714231721246823978544208678031966873953362396833454762260839369876118771608158114818040104620082048711035056802066649204924798684847666742597323477006081113500548795602478568362739544356360412120967470674247410795652638538862271930064394354874168691615750282062864768399717284070450822730242997676560075699292856630988494591012713994873589785622167565296080888139934250410675516227036229854685619101810823514743768622043944330954490521106897401153123356840528193429838412453942244982012516713459715114217012222805855163952554347888628691596205227041682685010929868008226842951397729802719347478328821018468908686346105447517206942122901616759524863658738551014705949237320555476269075584209983904435315813170597307784394783484558762415788286393052758888004699624095787422593650993243070722318475237609009101781671884261229420881281677699294957505188661484134139844242017785080169701464149774954016621474972445039485390917076369386391099511435721221509438813211805679549083698572848368291729172989597886537300034373903584375705961867570763371174780970156367848698686914838775568411848474892346677737622111036542247980324456853007567527269320847151839597705407564525067214932093000015654932601894758629283711168281636908089715647772363748427450548661176659568711981081645993568490615718076537919124398750094640178504754572934569839157923085129298703740834470633377906537277047845227691827283710948514482750743399829058385748250299598630908303096214307180076436335171813140873086357909433984615308515056822984088570382787483485703074840075631584844476457672616538816716616557207812137727704188687153119193026808743301992020043083620019162832207357013859437642285916710950096031777932362292848518316192450617820289800770304623319442757070210632138732698214861624144804597668974177115392135635320859165704741765797642178101833595985755691825458714410795656623179733838175569880406955641435689091414532627132039820697328149813646399134499450498182519125905504839624601451829490193176537584602376314198769986725667682479398471736045668135987145067583054401854342425363549502277356759821875313023780512185565717425631426298173622681368231735201271066916956678955875457127929761777769700583928377146044508370329199367126987396711734486727267666831287832438305888180446043169629444997917112534487539338395495832845615413119857298205300936199557545532120246436852212154443022043306574944911962028776495428000048632076188824671116619568511946132767778176492866525934837103332030933767315425837965391932278922805555159983599340422160681185150552842920194861260214485608113141991594098682279520503429072045230339467652736295148280512486707452169313188197397909128104705631591102976142361080739040186972055625249703778814271022410928976292049412257162118765431473831828602073448165752144069140937195528888586099207552047613019385779487887971585362000704240136955554136800156516639594974113437668381022394298169657763426091070486749033158025481288194989601911599219099441629565325198097046226571875365501420712983830958950792013969023750356582816665591019320531542752108036933852221367772858323916556232339979500392205756248312002628483728614936633705799017085463693589282812003666159362333480486498938617462921839071499713642450787331076924627620152236249824133108127230480280419725290622387048577149212320583519088901184758144087920090111142808231991039121916017497810871658080783102209679612362597164781860380615872616045672699748132441933809355468916437505314500858806079900935411771213914373759550183792141873199689221353681413456178848131666478051724239175430815643627142563150137540811432900030871997652155392486221937493735728143208769815541807653203121322503464894464565884510512896095094391530974859799154709288038473414053591949344273550415360243226718091796907695217987223079464899261063592697979920326284672403275196975445743287053585543517891084339932335937654487143651308909846774244434087991076208375941371469811578080497289249937156783399691809229830307009719966799383571578506058957255948616307396846242537427334225995381508511760380489971147854603072146928673969351953675973118240101090579136879730222409317456296114626506956818894872023831110570201974297451971595835758631671414884798243650898522859396789855106526695913300294640755893761032462568480443156265035053902632143885060572782450602344085528264279551588390575950343475079817234677625896493441161553463764019702650652988388957384078604209949861479554775150887656718668458409763707127012680292354093264417346077688864566721305933214173772340448567997822974070416596965537308355239955131197273460646801713490984375728920249222809688770783055784809557569887757496050574630599216515443649113633929345791780695601126576676469520269442023287741679148982575276758620057545577502206295330679720046304161594102097526008152485817008900418277792507766987392628392520863485666257613889582482845525842641112932153983667859023782375988533140932893334837584686990921446530574619672833216878749271504804110320928010113177840893955614747904812887112814141220412757838275901345713301685204002964008141314047360443816331270665099727016469712038182331299379706877667837890716676030676661605623447746385455050254025296469677534029459636874530814813905664886951531798358534214713493953069101736147214076414318026428982274852262270220492746015261785411291104560580672045562523757340918371870255078206682180406442395060639207206354629842739296714256973797956295169910104708080758616343798282306510312619856263593239589428489928832631213655486416773332782810591341132765163827397413229920329093167914107231462832395748064657261397896821173215321007664913841575881325022547503417302264791567299267926738395203741773204270561626597084910435611701108325978731897689953567107864491593828786750825678004912284646879526389575436232838477939783878100176056104619577047056956279662827364133962361552591882126292720687917395505950334203523883596825065501629342467093520758699439634294576498324222568694091358256926021983690014086125276887865701550972631320968535104841091283321622870971551784591211323958586665987871636944455677792584557214558599335504949299779911221878677671109676722075133740065097398455727546295067097665272377873155354841121784353628562718005491730490252225920465057351676306003612433487763307157249705635561022799618272069817738960360057519017911241537333356556245547461309980919135631933266366630419383174894486094014239201641789580229095855736149233791547803149105178392471720476579691006035533490285888891035129742231363567729038577198958485419707191734743694148344938804620454387900064061542730110249440846073856663386767145799671128172671976721724001236011370540474599534150643698214784454951015231776315325071452252768434837533949268959547565024277452746416613045278899500775805628929869068690250635680868268682234014791046167275564867695006304778977141031881078320284383379038764629056812608775130418777850102534439130077614473262729165165431372064926569545288535772459699596697096234374361357999485611792823270364712894296726280391975072428214441472980449495797325725415150208839941050016875867402468226042280978567678067092859459205518145958080969806726066184137584004143095113967186029950034879027725898388483794914911834133825576637065168646800223311226794336876907878754187227456281035031474909251649120756951095190163132778958287793094917231723851228801358752721578228759040448644282026226824309175613176635320675778300520872460090046347938879956412744353971054519737698662019021061008856235538650475622749696064750475304506048319028181761464572081082782699796453727715392583946318569730348170974431370638088768261588555925681191416568764117585181393156510910068193954977828123741429090902986770593619442833760136852865270551743381465497082022242992705003863119937972863506889986654467998637765332822520846295055144885987135796799646592887685351059781597954793092637480449862445035492020487131392557631165817390322440242644622253184833478822276866781638443752737555820487568091311014583635872345723130764856235265488671725188087029915587493693981151368251386854338150481158773574679464818389654680860794362653886622868651386762518368776971921501863185010870136675712899795022099474580883909902713186952830988274996254839594231457911816203642711533062749990305571339163514379690082885503142265261337795044436101678549859972280136761800570835267478333541807483021657864643203807245789579071405101632447057397195287561127372631843404032437683940685613507392441958694801759299145590573975190922459002386619971632609585076036014965309370091306248981555248352816072359272227222456698550468120988361597878432897423864398684227577878676950210042437517456383616992351002275971910016839118171062671183122897734092890396545761067839521462425356681890656945649959916622132656383084068979660991160457747556657925758446659544435798970962185625295317414876813909704656141987952456897296120385764724364991935057230769931178780864632051121343288874405171703615843218630752839069210848121510220424474939444234141254594711717866093582147226798539210283604705811188861432168376825346587875712477418523719166143781158894229733073698794770569114212286773164922164131453485853640023888353774341518323658335732261048010647617343993406451162751525879414486527828705014470709368109448337005668982086371515278007729517627357513954507258850177791876134010916277948205552923857197341003541790295266427181236886409326113104860118454858679170482465973895227620564567011360270158179782757931351015502732232752477461077532174897470675691391314468306362627726864815125483960584838116801755474622310146811850420600749396710544428476703367144365261001948922528475246110262693500358158902700398991061891573685197030855274251851602837517852124279717302247396259191322293263279489185827003190470688033160717189098724033605014438848645537573144970741227596784689648012843602565305734165140366989956198413368815583121431809367335028132305731977672775811741050090473855940804444087400519544434218678244636049360298656485454579995309339634154669592356690095938839183192616424778122556726339905313883459229417915299948254447792357965120341561664406860987851188176468961348287375515791009314274388278585417611558292324747461093413903220578140431950729947681221232020911297618002462245172137043681241224553785355690777264444603478071774740774240394298921458523322349047391391126393259743994167740110221806996676904846468218182730629325782917275438879280970510773361602969722464327296177871119248177624096343215875634226892415746431062263583459778195746757491869552613543827286565396326913475524635950655752267657211378754570720935485387728161059967691330942795189202580299746438741044052100061030623194813149377110802309525959001273490260326735980237577307931671476022296598847822116866679921691654961898005154381734379714734304115976661896860267982296280940682101823690994003709667985859726735509766558066070748077610201686916897393743949713922250943249885197530711317149228183303201316499882640263645440054104279550911311944796702348804033253524866465728159827631023357205312844020620319204846990047852503669529027384517159616732069674815519350114282449523551535760342976391603495225189859786958499755032098283635703201194755204207900943608910009481094810665962444460113952307298450506370784852235531762711157218020843714583444487673977232490774129812949433586823411095171931463296653521041511094315585972536962037637117335063921906266941786356508431286744744793673639162963119618100553564612183105965908108662533392496222266593661507893913978750534262022929935228653907244457159403361105924815300057467562402608803560405409031173001924230223143921424533089218524343841041924498088958322707163184619469049564070261955121120598132084474544412731262791507459904676852657164799814892625601432746756043467146291533332779961451962797648595913724590540942143903039447901892633009117892883264436797787328230960072112589112626068869515886699406273053318879254418714490387151440044886857285545930744221420890233047310091121388928870122874075318404197791256133389783814104244751619008800369761840799689540309605703359487958990043208983113092027703470218274314338672183941987999458563697846163895505485835815835644681116130933047184033604781538015183557196602466306211493531360427895469529302657515418012164567476545183573874168498039247562067811058517951116603771600069507113145391272888317836921378234197928522700040056432160075752495979422510689628811243095836912108251407157226601397846091018252624420517873541818354578501629002015505620365866761099103975100220276780313961308524570768594358165425695888458429064359123559072897343594976501445161881349345924017329049805859253939630596783536900590559102059356137199867410309097458725961799468290900275207944728680184395320665573915016376077411139616573580017042100342000377724877878274123911285044135939763329915302127479358487512462235810480667126323969659534416446877586395025476578619443832482350577412289454201764352327426514428103327083952345835058651294313977004447888977375033097559718281520717798829369847728044742996586823971635923748310244145102192652764037785853190945026117244003215633914978546943224767736359673117832664059059390627644789831233562697122241447765770681531955098895405120104068629043116094181253341829097777742411577004112232978992527202862640868402704003046184332497953505852848004500598951100851885974001790593390967638420618770679384933544501665351664919446211864667611967844721314906689129944862901564052097015053752933809954783914890003144155126613284523951256668802643471882069909312088240182724237745198127736198122311028934633223074585059315620983176635667550775678295812232628804897799560357139830124961123114488241868660540462084499936177192905784477664434953223402613189827982425511527845423331219109472450399241191786132088837669896046209129280472334602494625541480679046953122446783638901783993013829593008609184789227378124355452692279215148948851132838506944016522044100148999595664756987736834503876050617269459047194862023522172197630657057404145796984150296808360130160589824964779079659393437373572007821677695561020554962047180300221857383378399601423259864569652764982130324876522521544436438522635112459712425362959303352862834658681512800107703081979161282632529605695775376251061358779168963499178392687612893241457496407052080067609732154294932358290002942839990864415210686980161455288023387457549950667072151294487123951767789210646440369462611728848115642565520523415924607385966028792967856078467349702647131565476440905023102023882990492508686230490947883056241423839699659684024058079538083384731961152103688469900710766803609481805629010174565750995373102318307599324743368213954542135147618618495789744408041622456829943345239558372310551220704176317347690005818535170973052985480501602252447185680966288547907728498422981751393048175469540182712240417352248323697206584723925302920684680169916322653531554504020723450496264418853295922314849960991540350095356410353823825853319807092441302076694510806459791587262555346836372412406260246353209842788704090785474626477310858715993798943590420299731594086380370693655412548879100494872439566504254980614260910949890462450984773325468068454672130895915700994868048796121744087134621739730427019886927245665583390067323730835289108982152443223306592899613996194861569187476863711981624184105024153929340206628838110332165970597039474428769624444527329585783256108152659470509169572347041330943800904464613737102932278152881281574337930013624780189385398074702843092122852420283627192493734984994503940165120336497680485020745024341108756567404056504276177331712406085619422991060380373050899524773448195538457322637923752182413267753022039394513111408888610287566074994669644089445129550206497948689646330084974763086012626874738250592230702633093233085164885728060808186021953406153851138094964662548074602734585321230395835093009431529088196557520970853141165954936630779327427242089159100556369640541679344254592895005236302500060973816367053842504044381747282827578653597683236058382223050910142912363246053100539824925052822854523460637682404552535850578089887755587424611792878007711253655721391532934176939188557297024095120676043132139232842857168587235226290537360717737046610507479376712618198998278921231607023026784285830787483349265947601894861149813112261914208055296229401540769579071141819217069604988775144214602680540652140182313395797517911526263282178022139529298114494620791478158125220709858040620059789015736638321469927584754856685960550771836302598971642712861818516815728596442838584714959469882460168712508757324774197743113373893835360767616119269927442988389650593684612555802068974665929893497597734598707584126330973881901841072454392062088127447949040213129343800513042299208706172385597594487778111301793073402214505758899743747353485544325169636591928965055266109817692452133223264273973953223435618320104818740681924508577282093067027368224611685437776448374964378337298358847712711172256512501987004950351805142076269085488268281591867974424137467369987284376964416714730606395287788227241451134360367334542425577811495700419971957708084293631465653529606595249434146693369181123774462330627077824682020295514362301153808405314335327280541742874608719646099175530786667766026842385084293793577127906798183898863953868692672235266628948091866614711234532024835467707520418577997668280472200058758484063347366750202856267714574930652794495068409557247737004505911425105728097720792650329464020198828196188726064003876222741453173188999553145237352353583826585938232571312591583250894991980493326437589961931204469317012461074108411445984643729610708847406253085296405790289005423520290807850776773867945336014248027816485788519269537400279455819751280269304439514045372535635647101125208767523366208464357985976318845769946317720183177310810922084143458789474459946638468598930453011732582607770261287413474204174790921921247456937940591865337848593290678355214250010076889601276859451570565123440067692455286750412031738847740092919227837651176140490430821850083601754856473999821555172944445694642080174398150510471679079215539724569520301964811107093814546758084325937555226115595952296292462070233750186778918013875993186831631294991468479265165212262357600325547271058906818130840727079831276129026439431882838120709037568905433274926328788750721435229089112747420698180397162718112706930606925491508702416455393355016050432674390107172192696243998865786128371170894408142191018757617775117741977902525564004338712500653501186675812725219620757173154209268055080029092289802875592699057049459377941617972811073482004855085288742943041194033504676120717780488532916417117371410383366841381616516298096429807015461449456927140279785457145549751104098040212078649391761780443933893876236327286061350582668070556836828430192990564310211028266801649359141284564566588238390408405850600131983029641958463337621278870925705091232064101009223128703665857121527576143092586660639600495073909500286806464320837765217190313499975399918611601217113230486347807942443170794072181355218471076596706901855931966433884686855508133305576172752881372014978964255493937747680846740590828387528101033333317642209771474394904584141772254687108086254399600672080496717315192965646285137446278708378605401641720706740535804780726548678170141341351480946165266735893945787344814516636025197696419725680161093931260738123213980867032396260323181567662418437484570489704809290339870427305529763997307769649028539460155215344586935210933553374077668649664128495914997414107602201919716706133239180429176156758425206342352054814418829655536254559248293132487936176316373268029673353399942755651848985898196391281436537069725049151550761493972226737199675032475593952523638507312064945380519084715153061602622137260464955922828562922373803913451841358902619196417234280955474504552674532552257325066973471345286074351212578013815936782783396588342611878293551305382473785363924223783245728255334503164895531591355671589122536795834013697319999045531942638645141952827695677636855211204201692580358335684931057294769900871314530350200755226541499537742644662219697544561228898572623431623649869654800150246593110925533518593247947352787399413880998366770234313264695178311022070112209167935052462782457245185216120029599704516693422306692699683377926580480887422492346713073902491693933022572323359155307740159516338091601567400880226675527840437267890517715463005516971611757726378089256526827589112544273032187778881253267092781930489534004090906062017382385171786362193351204095721942688119801332719684057140322888765558804307794778996854548250752065975038763714578411033301620835268163669118284628188410826029757320997881520645902115562090613664194033542260239788529860069715372877370328700447484516195567897229654344994351083488852591938782074687166377539795785606853504134685148378854870833667681390506767971095737362984604926727278490910802067328988615723599463322846545053066320500180957287186953500616552109827974908701214309531139363495784796220743762869970547547522121465751662770608981091250399850243186158146805549161337067353470182726206639373612226056494386513324626891936181293716373100138330035825365039917689913220330113803336466027294431615826071454407168354439087954391620348602458209980889411955992271238049097732763142213327986277828463500187748857255629758206671825013093730766441157828993160297140525158471841412668420739812569033194508591294709641004985702763960917209356892391148534348501367508263125882368693802738390264810950640755459307965223206691660633979921963711395079148317384217237485772902002508610352596641446388940315140410120713246581321033859876956111558695471429055977450108165831183637991840171495075852404425332795090114719319649754862042482621162773488674614000940157067508009476030500176699378576630983407567820483795987309108665326712640647460284103516910271318428538978764872764831130921924510250429533661953759999113019829225270477648820672097816358849836850953318529261478457418645124839446839572813992559748071897296542078472404279093627991804041378208470048444842513438356055148396301711517063208773938318623841511257652493942746780279184413305681666190587763329942980577368869086286599644897162518748040486161253244356287377574184597027615356094728082708605699302318613657114473827967278450082348739659722640961210007412128137245525477351215740284721365793762220735534765450842587125046176347210049947465831792195145413676281630162310772015119404379692203775916179344046278799281929924041914402716949124274654657399778291577063694553852028772291210603789227717523238140554511529098474703555185330677954637033464430907365218001418245189985574556440383763576568621048086408909794027382212290531879996819520393841207773854114655327633596058297934835326310454523512422666822060881730385010998523969648221583667614408992556484690470162053879676964087203688125799497803002870349443656773718387520424264579591580508014693321220576296374953502765097401734408508186715972825317292102893610282893998338503248572646698403914503116767292978826018454303305135464490081193246146905877428361640123435482810205372234400159051361560932271463530193028684922805963853606976722135128672581262141908882942676238295848677122744406035469985113909594097912116779433288870043695352306248397635584611635372644860821499785961548203726500545446159607585395455779042222450191001846106641505720022939624669134252755151267121770083224161090711174708767780325676963788320132605994713631603783020801544328054839210110420753633302205017520618251488625763387538866806362511246302429946890876754282213843757491232883250047574157201388503589580695777912214125425245809132369693212995333562362224108980182987994483235966879971207259933976231342855516463037771233043330566520902714866198140386298494879402272158766030022041817195826930185391387525890349416320780056955695173693381471905728778554447268618552635134339094593633877265537749911733502714757349508688776989421155276590652269792765744880490959686909407514536879667385867559813373388051883262108139323451832461733552179012538698127616474307083674002321276763799313091653330457463323157307065550977813579261803268459207520067025625684094167298063006376534935324614581639289408265053547156989534610801491245939151399924132999540115085540139739842050765501126857629075657997944739632543160723866468969103112367345564883660002007050266150365330782407632178394168953034484894280708878338153713923679477749314498912884946057304522179679361359408782489906257572035198003684808416590118468516590328083751899815146331587202515180115332701364106975433595621470630931313769929722722711058463309341607634077981326934343846719787909247172567935386085581123291061813125377116551447523721126298703162680603769996849927913159078037250903005728605275094416437614085434740651531740360625795406695569437818413630214080412832902270893861370600678805752532611328621352447007579152110669216938868090924328830854851735240251091744633711797382024327628037837866370415619958578999773278046836209807405928883451927661733924444529573269200430900637550324379986443180925241140659911442228716583213695468332745695570819223057809074207158032613903781290464247164098526487105368123996309258571136434577745917702503672040229183712878510806160616757525481754931559262898910390070156648846509391928314373499497124228922153458781467945755476771648332938015587905987292864219432469488811414884303841400927489866039172046519244933084839650170507468779764235506673234413021589687553620562303765641733777372332940626315408088021192020269077647763610137914696975918794031394107215827522913479740045178459986887292330578921609529866645536149748738311358483635602896935033635054645559488843189440421612931180410776548473494584427273683506693130555338010963248047816431516991150009343212357675188251391542640483042198169297950357030588231128964175111602654001224905208385736570872209029090984812345637757109841847522727592311887487003702597653710825168082869743348018157871497578249980906475688743132412679174530122660640649412985998928160393551876470977668022739564662463728896214957290535264281664760431246916704915855641516519631830954065653032375131870788904043110425388708819524043383804670587494120874940413851379500055604873565090275471862112334347518421764802470177597518201800427275503345670435406308553411582915319836642548856069331676040393297105559885281527043619919689083616732810704784441429966768982579670984505989061902835718688617699849435328210579715108494280925709037009665343583173476185421441143083177579147031194237212211638925808019608981939392835271912430073489648707140556983023385284700862413298179498026608895564316382926400607322316341501207561729350507284658517593225436542513882009400283975507221592778562705015408262332047778541106809771411336792389061002440968532734309934521994965649497655896446057610762008381996199539290954244046463190144650558235301964660718467885156852317991565870969959841602863702355139275048129132061601151067066671448305819773749084674377089448758557016342177150634197328406073107320152408505377730515862907979040097818943639623318627461246252316536510686010942922155647234917583542605370943481563729588387727356254701687459837787496560752837356662346504066122892031011522448858631756449466155440433149412926679028878045952058291347356104003817274853504593738163035527074037344701131039634987090100781894475638008345811349989387411957368198112543546931262327559588028644503050437942623704849674452729003493092849486414757913790354630276489651187275682894027428435948494625360210194503030531876482803161681238087601082450092990483600548158428925554727738488018329286843912717634331456017345741162172193732086153293515494639138668216791691349272101057526875596359667166043019614339754532092334301059153947500594597667794255912262220202563311238180898501963519809189887011102226351181272871552678193997127339601196278039517562045128144945806001327082026795617001948798260786443039496319997210136883588023458985567839917030514628806403952212567824110927732403980484721843431497875037483070641867332150621306204188457761513419135125694779540853968806880253146620582544398723462520259659046799135559585293515559306260316653688525467579509503562042017866239893391953799558763480855993809973407409985660625147921047726321810982693988315684445300693401518184914269238638380112626440475551447882559944511261717758822259011141113902183134374882693876329652508558437860998655415410705421695797783638020882918574626078401991465433525671651672450416017430549872342004196513604328910461192720426237896291644601828691894296597236621058470199948946399664205245513144861150354219905935697907009772282810578635152787270779330955442335194151253736091516184229843418872029527356919683160725644693596000018281275023375244118823958138570820487588047517370940519650345848175102227387216340101654181830387541926948482422698315544430351187855083603272518933181734839426980293343295114332270480864430036637522877652801716229122458492757444430252223655298018987788445015518718730689372015141731890225578701050017453207299843999284574936930107967119288756963724279578539645678306149086304906653000502994557181560927609363738846489994597566505682354279327462109154169211279935998602293517966232796798694663242995423553581065912966979648679972078869979298994339281792184705991769926753537478740497216769783493268155695226326782226335623807851282290063870133857411932951248672472285707281237774626713812250535849021329502982976096839716120216173217666065039426503101371419259890868901958637296886744642498693374086056824466174666662071701448721928226722587232103622433717525690331587839248114433368932889323304081646787177316765197586387243289353926244437305464674249583442956428336558076111673324616321703876767813382499261834221513185931122590759912998842909277329986380282428348010620620829737445697589449821568312788764389903638268688452195918992065588743511417675945956296967701401110205286950678692506804304059912787313694455964447324798741492641716984446687451680602230637687983660072316234536254734964969091481493449039149200188033981661057034323227128288529386561915909612499290577663684749701974729063262713891091872523538559979623332366031389544678847599442607298346378882354758846030318490798413402404338761284881319295040248609255984511098716918061053466188004561195726145090068686863306810527439049312792743879004818821686261267142829979255970457859064004031334860115084168114698899508210448456567140527797580857195152555086783399385686732080417764168567556847872311761885837415334414974259552193239793744413016697372090235488960001813400721925997074430849798824794531226046772766254891854264915575740546849153510623606015302290785886624597127447494502579742798228437422943202206648067578434686678484905930213488471123390805544623603037184627586051225762589270102275600047584336228701685678851490261794369725105257635705487632317732165880691234615332577555481069630989971535607474744496329028648963290070830274053292424387728691098329151947595684187699533672429681735718161171021388746751981196141553348305483297362905483396402789157128149761336934002490975603109515204902864487422269272490828469764695388826258008009633807496162224949194404118187673855201849851139343369958493443927776497713414118760200342139929969501532039998631183067050134191355406920017855608613051966771750804071750066993991378359923417300633691812684719133140314140965620530754503321355634916053422675158105586004070367637534022684944977286782019312486710978661913123392631104509450075763393786439722154564842606850726169603065875136557537982820455308654246676749009841105726912056033975054264513127351283892306519728095577002343596019401165553235922045722524039992210327917026900462873876210391358279710760786003609536761010582571163017534425683220797840344647874966439915678152555237740139854269720324463233408512027669914544471677571137219437538478721544559250520574969339452168090611838762911582175601286433535210306033793827221833965811375625035162621306857071392793913339061188260982357384182615554150125215014380284824011897640156046152764476198993829096106487864694743809280645298245112178269340519974314479162294592637850132727470780956024316723489750201419600365735954235459083809723285656355586606199108998718889140383969919516817161397138258543311459302505242969009363493999693784583447174450580723693909310174125938016606873698675436409812399644208548827598167893365503858685198624989102457108888523999990403599344811152906035803680083379679236383989748959868006002609569224923052717084811551060725487217713298409872230425338531278505810689513786404331263098620399566465828420805654699142257559534712863974097269793042638918861274757164128037335238642170097705104527210285146153992697669793558635115901920178434575941734166820281198720273685090898220100968694595939335437602230389059039754254098007154285306566657265327732549382167239631583557717129113336967799751764544683758553996272281767002375421047931355774322405655711110337995267576598135188638491585871189932095254196289651037222502547733222932525486357840804258938809929344714109214894828047402468171459800797041300308237537345378657864181361153596959078278159206686674866565616213339677420592588137323816968865842075274448252545262315213960608005768569576238088682201297527889740981332730522956595347699854656989555745660098694159752402315018486727336723932576568552801981352076407340175377666070694918217224719862076704422451649156264005510926687225252800575035097606136367590782877833732558884339127480588194347118327478009830986266356100851559174332044097607363814628166802086696325049701714796316345860260926740213572367452737404303702837605899079225610802877895951795917073888886679168717503004889978286412342477804462298377806900306398250259548318307500645974553991194335869823529542545645334806963635535636831595827471289672196048039154396779444378871386370616234492857969821211779992835883225164603966878870926880369170521218787067134823332020118572269008607220945018019991193130506623971917018398417400881069932774642321210692812320390442249900995714224913338471003215253237579544128070517587321820732113469585483319416367488862292258919326662691287513579389398288632765603363707801663041696089703398002128086179239196138681565571815892974286710770266167279925940065227780490130782549445104794566494601830054183793983039516511436166720493967195408699362314639545450669806963884512362490274473827270489460695287128036299138096404112925767760544769094590717966132287089738386147238949503628422314516625619641020293597084896738282568849425798756597069587884022177521897639489348485024628018728554300386897175789821179516791316706666166294429354405051387967157473014020846294432132807795338908296503252146772660702973572988154386044298479132714792109049221663916979768027722891804356838220166377127056232571313690150605307356021921113354707378833716960150655335349835866560336735142831011510478103505010274412409803734915090628468355683277603548046811732870402556398063300661919964353479513949750587277910087815475688636562766879664718312353755047216345417879232161493809358722471983788560145621162763332326165751708628526205622395317300178892076410570373527910309035715782365058639456080606457791063806560654542553398994055877693993138670983212604895849095349560623703768097583252236962568548801273476296127470505612948952903952151177539713308796460422231630985281772294039703994920679095539601908320041000707054554291275311829572810559852571753571304007188060119582855793882116624814752099972953775582852876083062054006228487713330118708696853614470095962809204056482220512428503515374775953987753731740676379670421618435639517881431858598556356180238807871363483865765346031608449826137956470689698099982770012623036145055526600777740474453085708700735729181849906141037357758970055804910516494216986283847145776930996092509943422904383035694232120894313239012845248952306941486530310596804863604294883503929842186764732979391404693306042426125511923748748673294367925753661394247294250953964679292547536625176164016531165602102825223617574738109880225960008992069164123124202036903738660544200188476270199636155711086472377679629283217854900649022105529034364402336375638250145947351935249463486660520143066735278596966431486071672375034505819044729863252613683919358956212173310511734793594324355981126512995834022967476538885707697604476367226432994991265498932855439670010104517023222517354323888367350484439733129623363933663561117452334920855241619681259603325874580560843941709687441464890131846815416780048773358078860943778709813776262036428942406378264314347316343048056812337005341343332668806734996733536272415996856153357834470056646714326595339536686542098683256251423605906314801387440075279509810838672653676553240131497288036150244490344444480707784255046662726260109408897347962861458343048530529209997198176816054932835274997272924338928514276282850097075578280893741715776845307811288119578855944998790144287597051882826964117429129708923702625897822526280686440503934165347489448054171133949266788103226916452514059186877439741249261541434708766338254833743244187650737363474001587821218981214873006404961821813870484021757921158330761988427231333449193181273022295343553404718618927022526599890215034180936609304412202776734154294705597031718650938892444060124096791762707520231537114074805473536070752210115254446559632995950745500978480592020534524673162069572358119158454093433083762665970224671393734889500495971032456460719803060813247491449857577784932122585291348799292919134995326493649311101280562498262008614442642595406832555783144062377969717081757344101986672406093803376832887650602003221998602202057636787648260440481413437528705800414506101901095392688122075360149255758699243911083478409544191767901063186241758452664523821837769423525889415981204747567627949485389100112612642257221735282469496154396292501533928481365123234985193365349755234063236419617001638768514064170729643281436669073651728647225183981061068855895462264683415441350631520513863807350921160054995801000203403986984869592691214232174803487837256584024389064277943756628026192570185598737899652409239330987981426041026743817616560891840617035547384340806880456737969075197236533610142068273906519581576623757279751177815733963993308408722008169251471489465435453873881391486409696453194424920124286755562083277808171492003495943873396933414888020268481003147330723850045182461393620081639190016872413709579763056876424243625718048378886920004466787850916466027455163151341474947163830716225103465722831643667622690511249425285354977477630395907918116782359005143266141844271111629551966882188485458706111977830739697202951525449095260114428636732020585505145407072186012740157583214180096955214557343374912956119681980822335481947466679944256601299114794732512521481400381199835734304941748369629184294856927677933765101886735383308560142262008258786397932499133020712976989124002652984506247750893812577275477692177820307034118373129059078816176372245872686441590111241779473647043827742654782577065207892981532628972127366768360061370050406767529865437425093309900561906061801742762097065336487849629066597714808995688696360811423377320062135850812588452744543284023993235815704096131742739382147280174839613253137038323558757424067225720882546627881983088457822866086447688822991163777322698541217742294220190968635227821830664961512370157646791970681190641016819696701114375120777775976292516041375014816795767289816326852480289441063927541276638228131529276766610212992744209118132005458477280674645409110984188102623354425033529294821497220832359072522441139247268148654958072674326480319457566832283656713299049553785269668662300745948689317864582326736519317206916500915090168015872359453870683030514015914106080523504118454364992419349270509045899956877091376102480189775382469137486643331060466401374169791493413806437902093477974147726583302273056926455788682506234072834639408149067893074809503512134774895116950739183526906217679545246147781045738987655814332565886210024728007763987836804562950197005349690767376145332920906137136774583225482644847771311156089975911389308061528893628687165481580113072560807603122713068477506846884143813055928254421932635897557787959312680267566538115469777428846192036145178526242476957178692668782121654188707777941576026602483693161728242083975818744183495098552940513906021494427766462385126919351891739392154903653115363297924258768090662744254230127663410532323011433576968791993144593576351503641038499752746036799858086719513256888557515798495171095934067593785196765821722094060411593137492773279328743397290168389380066729122082200461624605649910097422143829665559948781504252406266781399410677261787456502659561651061967995195407724717168485354498746642426475961292269881255582510917020152105094057027566325205996683741620541944847971202529092179835063855945607795427355332937599647068197355562012050058772108378578114229088241160805102324422267141114618668061191559150181849920755604402399534224674577691153540324782256389767114047586533973475230281802642117592114869338364145935424238342882629951038425071763383714422572057194721351235459386479298376448643468469985634324276810048728922884190563150015061062016601564866827985386439090853083547989949262787460232030068490179982698905416499517190042925894269346987224320071306494979648384554035650922246642225518789246377453182565015287280928183357103768058954749397196931254123690406764281407288348845110317290389622544232327506703447819804062649775271357924756484129440800108938844873588661481685978015955558338265693934233797260385763938246425587598293031895061621261387699061180537453570060744386679926605823360466311656029616392404070965488269985975510043022219560255172711743996032744570292926711888530805106226136725675066015780510289781419734588439197995196729702139336066706629308273775418405242765580973257808357703131428244687081375832083474788828441523462794624892144108114687295269947969568806850268885708297835928284641918242488385183077964222398703462358690766364412219339776088844181056941714892695759380188615025531232387961941789680957116194858502689017676594009313988514503757832484889017228803155626674510023073413525690048471545287362489321569608325241625571722764395965786099472250059753268256815257361109539245712728910799088080399267625704118362626047290636022787705929238256152324507236825106110139809367779021514839971179878172401093084806700806831251377386540351076783159916134984982678276824903195492420054915277208740928469420327958361795353402091169669312297661002045120532347956195408849835950566842807549934682682498674237687826452503088463247480603334130077573184698908379030241266419649460175405040323333147220422380801329134792224084719080551939407345111206126118288462611807304642172403826360205647815196098790355684804262185785131287035310337057142527919332003269377727375103060014079922559076245142451537434970887800112391645290771799182429191046464432515066638950849594205496470776789292045873596538961662082919145418392814641478545806503203226661496614425081107455814338284238994472690663908605741028247980668069977980991664494823909980824889231441454427178518220344556090082437028214210032637986081240645617521037384581844323795736390196896323026044560216504212880293168081665569160949415150395719810263347662463814788760057000802137009603902948583651042841237200701037975410014883413090375669728157189033905475521879681649742486821107456658792479275141470340992215467983639645600028522068442289351471656503653326325448763805852221800511237856125078214525809802892152497546195948998706508696005558717287972722192222652836603582439377191825324494196124786975397102441480233225312977209959427595163597723670852318685040577544001945284465584403505124602602250081342905488834761120883895864093079474337651520445904982056956350871778179793299614818973277219259047560418853980602304269145099833346066467429013687015312376493578089547957995957463499923950844540731170793757926672770790242783530879627824868854495354055373010175969131000472633853167567175296453532779415302835969431202147881087653016409925551159522752337130114953879999161866271252620307765673007041280126232436824947193518763371790191227820582023717720412749162590595120806256632237505824521018101968981276883083907694551898948063969441664203498581360815119905783382371263526524237163411386200941953270295677890501189031512231343720887271991938303871311876888649966919806848559817155503644193950779182319629774767020685572794241056756380892200230186273499299238134055459623414815584983647319570349891899986256515754188758505108807896713438409956414276203572314877600052221483413801983452217797417633009547261713796573823431558027633093602381932920419883368161651754311684083605138891539184687345078454748172778394854757560717153025306031005193098244824295843396170100044264945534363064690619635667040930282507048965203893426132261712007704422580103887916802318340280740854004574506151452112045491599844747713189883717582049141599691596719382959367440735858146296779074768942593789310986476591281091427506929011069538647689644813548180144880704525912834724766038352003542364976646187667857715924370735558189287873545428693842441397942569751293279524152954751393459219971911080059310565307921491301368092411717252528687856853535893207011556414952944900880441556302808384868462692543232146481966583152735343144080105812426239944629430464896294333298249726458411648939181420787574057207524587313361886968135400715560968895814412446473827412985628244195545107966496410427339841513298952583636695615901954628486043887770892053202579546128416158376443552229635800400667218309172123707654562687987417962734746173431102257659144017574952622523196203590219177948703850802224838691855188664920508347396262532700999165823967115449304286238132424086529585991286334475867832160942304510569518280695850718537225332914712038415224142989081890308151869596433790373541070891240394693416440641133667302137900022180128434896535075050262507653388018287240682530735629845287961959412808699787819558131071604709893179794549671049015612498108132898344907095684438813048618453792507166007647865599831863244555256741053361247167007145070097334250680819517743528565375392025076980066972311054004808223131086851368727341662242067711326081272759485423224560681217384897950120192877032233457316360039053700381298484564928477507032254797038266118350519708755194862421121234170932299781660181385535329374265041840177996879792180610408714341781638137725345123583615317489700896168171782661587340639116392805384845528676771870219929723355142759304745551469808971444696166163382127881887700111424035500322070805389080601749784966291693440349678990254296589782530230053146574921994377313169833592676170297576209783541256784068048098673994396856369552062748355828235257767995446805531315407320283355819989844080764686893094008866575050136838912720450710873928017417080752676184465734325423588673395237700482893769488186335210698523363966028468592968243432242880463673706153685529586643104806061503925724475889599079941232246002901870166522372682002416184034644808922713008347215504242757802455794641400479831937096313972891510330867542343481810381941013477385500277944931111670334173365600032884850579412288212042848230293897487504875727205024454060010170039593097778863163799930983549330867847016799066257566168934560680552965652465243644063625803955856810166941765863989105096535146944929977353664254002540116938598277055815487187986300062829080304934715443603244099799324099881123906977730470197723860066827101211600364349285266447268815365854656223899407878997685345220341993460923962539765025009987738624712493917403350245054406085328094723690030380672024508044625228325040713882549185465047655091525630372750339412633267093369360186500549874371352327012327829852919962825831841863934194541099552322244744096258887975270376990414993918524986352716708159365901246388538517234013144538803329427170623686938566164685732398798756492881023303643856278766440374544255002357093874365670015242982016965218160806684437467536855459270213173487040804389220555821533384726658156944978155833450484999434138701553505437248864961562413478577253987574866404102743006369942836529528204783928014575266540410890227960380867725047022789446966564376265845854324636493134710830192133382127961303046983404053048132654297143570441117667234025436840442734179582869075141455555475182691862794211681016643929330777669214535410115663020642361907165211686045118256882491302165178315575335518120544021661247207882068763977335696566388480537106598199813464309138489307879733618518859973192023642899052807453775429969581032949667522873767542475924131726255415275344010119221557142724537443758666227939565127231507341245391730084498420778002066353015435332422471770075257865043644545371809345100302871403610813959491427145921552021945125424058997226142215457326457604144486777998766438261222759240478881081909710942923025604094875596292289778655519268514264740658818692702816254988240712169996118735325056499044078619036054024234196479796230289661565970539503071606398680146975760159501284768868684549495972101106897603908689053319142338819062188750167153281302131577648215144672885969465873214709544122623750771504720019759378562080427571348451855102011352491686186842053308661301028103640971860402098634500683815851335966888472755600198317916729680327482050978216484068802635579083655255097259898146794904778946907990501237807091172894382961742416668913015225733357623455686243780334806588530002826610282718932744047160470014076103338243751257559896823726296305554962014267002195604924152137794323324965533431940985097038056044427426036538121799795937245422986167788618575073649204738722517388424142407039829596542344609300821913990340752919314546804579318862262065135544820699922679582502014782378380529396648480784099180592189416111200291392120895101222046613867530994114164681473350726381526770107391263021799908974438313148274409118756675081977416526852225849818724822773212404035295748888300894529296871450946997842578760153330488304052303020857287742299006624656121312604776227129804278423224290288982287818062130240226239821144907419569386769812649454247503642253561411651137832525683488204379257992413044183534269352929477637570463420744732303116963520256662257981870531825412276819513509801686047293196139074473137355654593275446123591697939418401482917039477517220610471046144663978442435918722903354859838628005590487592817889305058401538700294064472566736927587608390208777805157233741163830927448492683343742529236273227433686337871219242625048692291065092564208382866533308592484757988623815203263925970223696559885923584950456884870331853875967969245380200964250786718753865292726412059440213032514430523486222005535648928695222527146767066600398710254129127114952196855113060215863553715220221456077854254100296354525086995178662061764303495537353525891691437130454950070975463916204135497492242126158543663677823952823487305621965622402292636738244046928052111084954979933218653930758563052991798371941033428572907586928634394150563903447184890327799047838120724609588063770962114221028975679995146945689881421454428400273052697873718042499737301354189789718946588671815761198184168475291661890307228840368860869820017190776941168116167543676119386210929276146662565952264496029950823898625790491541694005500228114548242675014774232964996188639627352922581043802933384613467653185668144375683503695319991892499129833006742314580142440225561760703473226609772580973702882960384073991701433313538176844796529559636068441716816510070066596213802640699031204979868151245958189666260017667448791588035010047553293439797394978294467341032895723034679848109641188467332795450240567642926356050441328407061003286975704297873318732307515286656607781297380091374950827721364189376363567290880489844782912080186093500561176788424730537040080619860278334971106575290213509119345396812164267061494274180308016439936994899935979798067081794310825607212713424655551962852135574495408457531501011482994944443208499735980983157683061793679760028327515059596779082560911460016248549497515535291770046988145663194200511481122396306228031862486661616819067330918491681073180563404119058369837386779983423948486647437669466478347568996545797889730509086254847017046955699582988961269274209600826345865337714788401927755104904278832271238494637851544939311540771211839448626117560316410342490683639914209252174303210890862212471501818301951376385277784191143788366448193662833300033886899762089298877437895760252575314267130350928802111689355860180714480506296211935721823780181515319490322339427138641677984113067323180587135588479813191790790113169640197634437972730293293328890862570852698245393000535006955955747260636641145442827742894408619831347135318970523320371927087962038085606637044753523899925205846188890482188632578203993899284905418153555503668946048738020170191174609730976447847511931291621601454417805507743351850509737067770605962975216702950856717440417350827293296767938089318240549216878330319822683159184713611727060845764722745262939731107959432832818953899169916392945288425375376707151073636132457244131391502410107540661741863489313713627189552320036911476373564135024089455011066808601397945258655420900503268970743131315070334223799960066972930500109875976735997441280148481597292376426190066405411248172791915674469119250277455972950807231288252129560052877921961979465245363529973744718837973709478325381809123827343751144467488719807809686062809595269487400949589048828805955677831958142391475615472229518086116069733117260901153165668842599911791242619969826912497139541181709835797922062367966109633958695389422229184426409498261481748897593029074407837549215920204265217564419081961918084639622848214756200314905802268246486781208979018057548541582244220051477383790005752574357083975688460224420374562535611050981538210005204913266963389453309270908272144801705372146375504331017255015107002279530114563839289113794932755620950635376696723967429378875155174165889951437254530713050248230966763856966966296223181726249163584871097702179432676611356800051492279901150224905458468310666606316357838356238474966049231187033681712502705185814154521275111845354432232734672834482713375887431342903165698577730643705308789684792459763338138565692286799790838968180591796712789566791621208697751627202928529088526735618799636179165070828774088731770999853922526581708211577549132766794616258546564394789423787022354361244759863733816841196667432135280174196313410729087655331378602066401437806204620873470030749014668375762223632955012764004041123465765211620838762263351900801403956433532503055357084825705008364065324830877885511628669822931804791387455097932881383242206775695333089058503030846161914833439419763884518390829233516164343040477468227629653062443792338050435534264895681308888399102243350509416707699895153233140094755103875686319298793720789705241473211880970350546058824929593631776139623317815335092871091967379450235727883630341609577267349541057641152671697230011037284699277681530364220158587155017819495776420436966116737544437848944029923324363264473084020474220941415674193073976811906607789296401824927558444171501600807091386156080173497678926827191202729652248411901929506879636397186571820981200679848343485854012529384108053494465966102632263513689723663244467430110371328807238973482884786943206512992335440035846673520927198897544486902304545829655628602300556519124598538176847009649612270991033687333563452517881761569073323571260043465069856478831491143970906194146082235119762178843494415025000641716134234262384830273025647796031316182293892219805205911067387974922114257953913740481650841262677683738989485445626968417131346028158215932872629210011139606239269690925585954512812309774541386524976041237836740594535989259004264071764940713983327059323389071062024235580611920538539873478772334780439548203326708386836352826258305430976015208650678819829346783007613310236977208095786639604524593429927845253921575676278794613922299250845292565188193830305716205900920218041702874636912891201104738987567064828384487783005814212581482888847153323370977758281396921789954594296618039049769839113954200925751420905476625720645471831320935224044685120474253325914264106515613988689555162677667214927068791910916182145096959444477165197358920429105283640095038160356540835820325453824434153790672541508700183621727763644115195358567785671083878498007042273946040605054232468044888715944692191510206928213986915545553813814303785252916987736544093940206432376493875611401554081826678411362952587457668757119202448706606039804084979628532193319571710712809599210059089862426280120166885271897379111821202983868517300633403799714161950081930139929816687074664055054825437291376185415110569866447878857262565342333888687518126476349284126931852246431959843059997157112278350077523182417362738765265941756042395014566258460911362705276728451893781595819870028474057599854098702903075671932957108581550837557129405627190507723938692229360955438678544508056417049585686736989301870668939585750541816635245471985294927707551496775709125164375061525738751499683754459044548399975735376992136993857978476173757246246015298851391825630348305395017020578752429749015182281556262156600166696621344760101623427531632440510887995288466787216550057578096137309146915284438972683934472117580838141840591928699940879700232847356698995250402241708188887902677334199536681733968430694929053391687679250485657454584859852031869120943539429321381084244949973760594868799905373475377878772364683282054021773003431050315997642329773850218837048871384832405770714273657708880319345092166120069410920789880916049215495237877312247920742080657750126249573873231411009474254846229221523231673004210932613255156879971726760257012129028671532982517519265217907908357083969777919669113992499399175181240449073525275274190322833483103889134218689826079315438211354143506119897512782201016859420530471456861665895722978914321748673794571279554296720983814066844107361226559032666446507655124452740191020348717612953030473409828798952026850202659800756359617034250363083162290700236958362242064961062326530433122569932390016051445324327022517344782779923076470555830292735901239715526359293019238547955295446663910175285299884183883184264480163161656010482732012835680943168721661503674695749187118871576434988550896999397998419088781343778148873928159794620260872460325794263387576481314905658885829352182267855739831221957054895614182843060960896529054468668037953392590063209455061608599383978187913298007084758367096304933917802289969286357350519269672545385222123240848802342523359210075248931337954967077191857678014770931181732307560752493668571974633756692258043018549246044650923938880981162105819408245393145578413082847236260651580765626134454482452649684181264049064028854867069820917969281528814606870627721069616159412365227448536816277158391051924374448454130465714023225705836656675999964628649916661587122549031425784381871560565889861277174205728404104845456373020477149863455844861305124591390203086781753245205450389727487066807176054065648792076653040800803510854351077899177298182791002098682452610379660583719896029045308793731181524994042270207415585475530644600805553951174244813045716852808534084762530603583816581471356820390672853420640307517311865350769161432041294251082910954818554863317585157279593414634661461388774776363693915239403207734298193047834457894848860643683895651473325517515335830251248139295145240481134128197663360723804959074369154555797139355389523749417704418830889695196778550147816845849273742374855836381219332756692149021534571836465170209279954777810945669828037134331920887464028927553732647029928137994660839552229118818015164521283022687481425819647711630763469507235898505841014845358578077785489269940284221198441185501528490774195579590125809480446708296256658785678095310590262916416770108640752152693383402253095910110486423888700832973136042054088617526445750736858050752864214430335740085020107787918540045404643864916330533714220034301334843178238499871480489348516066611570543155887240714306509503174066758273807456673922460735871584155328837555639534272563967219260739093816490560631986023771205317322299693477887750131300169220809249360838524529487805575068194623018573054746013631910380439204373623928683411170533022006553046598721753843776253060557541330415513965151040841700651905368314780171489082380845034064401433874494062238415331225663136423247390463474575569653990182211938271817986360143228362548343223880204472374029247387067779900412543100182586219368249235327740878477646595465456802552217055449472958226221649129147480709754283431695599946713908972675298756995284786615010181384794871989378215407525710043932322809861591453357914064745358028538777719931894143524930066657478028240806674543550993699673668348248718481477155481349328062690316759758278817732042566232619286576804176832738629363530734342758661912965813844862622951451489299365948403788732557725573521431936530094441220420100835317177730242008616970820455818401985469322637779013823364690466564647190793799435935974679648100879497046063149517590988634804225222026185478912510371178641016876865271521059757078820510239184432334799561438940446404119892968888174897041001081998377163213734335011757026348029805644750636155869020725124831219341691286337611525242664171886615814617777923916209976940699265402170134723113089847507414562987582263781754573439185059031410916936284471593651870607058375850396612981416472376131223734801914433355834704236174402832160435475524340286367550945564398887242966614696206069321850661435726925823907545811022900102939756778117024411780431913882172480451822076521484978613946387361111659336816498242056279395254529364248140927413324126073959808379235769506186778242161422039251257139561157446170172891231180798944032733390957720820260294792708027939980299091817565329764143804000661897400732568026393075635705469667949616788774612773448509941044122279359573684115048625715910691384597842833846618653551560552318879510567220367663565799893739876327494260880528352056547469023551896603351034423982649800094211484900410424743427417532198775923537903286138916705914318667149582609598701763389338337797750338657106612494004016859213209290537548480291169231764896118143146118093901718977154272130810551319810211258880595505839338244867275969771541272788935887134746651071487071043957092982911662149541448154527421479822096092204841571618079765951876412151215136180741324652464980066210956488997263292942583414246293010730590421353534182912329408561600395954645146214261787809156129311220880583675599292836027506675032229078824732819033605106616261919833502214221104583306689736543540029006324964357787215744321669904824030412475996820458385797599009375480934069956563908550465708731199404789036447247100420059348565248788585097328269980434923584749904570562914254314752452975833773548905394286597378573725958795693649995241962821443630174084304965323116119469677438793084092407987351095250565711933886603690835561815091478309503498612292585101080621801411847512857208711342373203876738475309153794996849917205002243689658074921075091000435724622779454370611328453459517696480930604857769094095497868207128930027688013348466384802408091212391903607363051236455677094037429779332397093716131170964057886816408023247083010031188818779821919742952528916824594133299109718808084207007084859723119432930245451981011249063296570215234745386745213330399962822980030880623467861308901373521839409822862236343804411624858901720256496730667772959539880275205966107694329974620115813987439500646444690742267682901062612900183320218395313136572152869176747218562511562891050093322720814446342853852446719507165160022567028331198394673421879766573299396804419638226284274665267291482042009610580071473517057738975244528933044211820326651577688864739272173010199131687028699041113484012769672676224792187156229253470408003747786034399987446166089338647108531167594681301562689453480475181838801607268580618715346963384405786617427252513185954319783904256335596262986894765363657730647266487498272924119522823321996336382843163986453162460171931474000979153604605393048066160360067547864598707541166703132299250931672999807382624355109324160810591381385993365974090914926558963469626401992709097820739187415761564093717454083916278946588362436987695819519925765657878032049863619543623080881699213477902068918111798204773018171391474211376206279167487485203990654061005480780699716683154328874113188046968482229841611193062289788835231694536335893228321366638990522364333308555077347829202640989351800877713479478820971414692012410786889394444314660319577974295906044668476963069443422036055352531228313712273928736170215811872780422025657955648774443904096171466354137484026517663628342044675136666482384076837685624486595454272954229316323989375504828590803413584151374119381999312144041594086693011255967661558542809911554931150216477919781298087400109617565443274460428585854223818526094323328752800269008083586304615608892077812966205914317787220673630795490102356314933427112498784665455485194095581135073010720637302905560028598342233792996496641241141244623168363256373767387142377293883633944276262948360495459278259181382776671389667088165977493904834417128439601734546669903081344110349654610353395100301191183014212589046952782457008952698952196007184061735483828293816188225948896228138597427821444726112184733678460075922885552513603404569720092892890713040035459194905919554723220731292687993810293369105388152833117349894752941290328652909009829497156933507556682350061324345276993534832761631753689363007214845851987802432561080563860950165966307798183694177450694532145681383664783769539525613973422920833523870145768444553497633321315016443108161049924393388039893894804485496395766953221689730051505222046117853210484511121751741266371844503235735718219665777690163144349968175748775294740470260152227306112401494471314402212497108828715083838498770296837603414234201488529845661387938636191747455484817700354041565002649427860216935369614221778239170305396700852740973400534581169476576275730283650535664597738627753259239928991101418582597014839644248638827296067875911339475403123792905799427316213359783720434534117840931297055467513209231541687389467852937988663401456834742134259916496753837267596258084327991787335451483045744364060307118911521968737546126262095967373434345206024948116632810104278446967140081310154379865215766524479500402991532741678112690738680265845371522337416197963025860442603632097838922402202336888675622075150313329398665688125476650877666989154524606477762641667559412004078735081043078312845756182593863584594223857349177843790051654535396768745297132834676296078174764005206795719205054627809867973261087418320984248881166749934191958435190337643663948637981621740020311066559780112575283922147022897153977027272975378227808993364473577627155052503549649147956583759068975343425691770438906344104432719410548237511140174367256974491132197754103340884897661172727234168514313385982143605168091412996986684848184239242960878040998373535227248736801150291148813030528081329913093802301046221237076209123491917007044437854633346084421744872601935863598005734994320090180688301218569314111133342149839208191859708957425702143957113890283426713091305343617602975967352502376014993892768106679210377845410791362466513437910635860612947863909156195056455986852936195776990592268438430255394510307791852464074238041354626547143035332015993437243857840438682999113848091703102598418584878060280093837997238614194674367577369645145716948476876218362254137216724254109880747003439806616000823035446331693332683393817040340703568617140451259669208093201871170739331356577562772688739621819263264309670001789601563253217421728351931559392954241052927490489123985434939955081848193287345411291075982316833835222495464845232220541795685929841099025881079831934428374337084987432801739666691349576973483246061828987970868677456670997797550326474342648952050727120173942497302902502563450404319860286534827663429349367299509092445658617173129294279574920146189098766828694430677835637905156509913588399239807709848231050483304422413084917128606548160097021088517861201163020702050129278823339873311928617302879335664168165583329373468626538371632569901794072095655849109012094935739585503585833988570503143608187208435595577723517373260639185244451689206677335487924710699236670676669493290347674485996470788453779162678111517351023772622350869179965807963344851606624979051035369440412738651316092405592102190568415172574894345032678252102696548030780219458124330097795302764072733395051637378535637397172047305650349392297161711786667382379453858480953525053157625845569301822178691853690950425694336692315869793806397243719512807964860444917361681313071792407883750835514957580640559004042958427926144602850620715958503659725792077604019694862659935606200743102500487715749983920916524096426160084294978007081787262392017422148714316208688681100479593955949286839975096473739114090859024748141490497598156643340729608123392110758798340546738395080416569907073933189926749635075502606997502271510079033005222807501131491576098425039268035737397835850860983185362401875794722084907027919066561567481540964395640441711931001569873937400050393344673634429390900553885451456324904907854155206776326400170676478655776138747956712628298896656251059593486622784227083660493562968122220036543717032144783705328092025701502563607794379067968888538456926959307791594787142471853333842192790175485320472779550695397813250710863270369889605562226186860783700527211987940519349428299930292208833886936018347661329961979129007923972876136255060349117113935155766724861014454920827423187460539266841556764812494078321288890224493397968532074974695375987933292092721892528081574920915965237352538295672172708402950372160292950020162062853242163381994932930059144849421538562302616008465517057335523784328836423812656584977677388155021641833664217713186491296482993310511130243723393725054461873122131388223039040517216531648412603562614191647909065052676554795520326183551503903064818930924807694863918550753559445703920526607512729766508175618946821555670712777179148936702675162342741940376361490428079276975397500441005869254828327336776741049260231497798590572325707598636218455003087800044386927431476882735433111827826058454366880888163838989300208151777599980854592747667595379838771424879788322676614465338237351632118012321339871612169422320542485934061244829916125856225344999338782316350482614263548432598376852892687616894383605279220193105535968789390156075932167124264974301185541272284438960171049607014419182769595973749418861476660911950506489254088667084621402028484086176322033342508629865117306768866784928331969021816883564324850773569650313237940366509128763582902099195223385434293699014286502516967395666740224172201041965198747926234747463120749655176417144107387626618433595601866636465289954030691083173125253539906579106235166363299105701362979442762984070500934299277858238660452174754769714645694482073224070579671852426291871323995479807843875102256867465881699134906274083280934119765419000072015733616703239082237162581398400530674770397335860162948006889956854031435566281658674854393731853923741387519442111898367227639275933613031560452507197651591774896304038761880365907910273993115699173759832844246531479933020333210717297547046433350238560767831305024428445146802366145201181670101238890332626993870789581258889531688803978264885538100105507049309140457790544906482446400035286180474332605305110333512559932763100070701732510448206487037059077362484309841537698266212541808953137267298893662408198282696344607865118872755947422278410626109137321407697516663510612333049327268136858715148285656077534465722137904122468752423472695367360245668633401513427954742384176480406011170625787290395010762182293642730777555383238689227170229433550114292682138627843535147963629174690546640828637735428719595392163223495075385223425578763274569492500233272289635714253867549758750255077822075741100263707282545281295097580075414332412691276242775521809847519818942919068151093121274435188876690697961053762992549434619764675243435264482172241645400846586943548211801222135319618759560395331002887061816990243087243138310515208848891550053084381079685526678856244745666097114598706498484713406908525828160382345737131108811829885070662993232666800641942900984550702987727400350667085011309801337891892063777312051244894958737503799659939284371986945979576551082312019033099713790855859425217429942806279927233948812435865639550261673910995704600077277345206949818899358604524142792186792125501789700925567491578303172948072704572082281328071832756979742831754524858874923978973898505539740035300487633699515697497426122140088097504616216049307564498048437454176800933744155914037156215227355849492709056063655975515652753314539249734310667157184347844357726435754259714921732119883411502454304204642705717771935052872190196983980454172309976049933637816868331660986827571233569079031731433523436598760749449089094445833759162705550016525328338795277239905354326396899389341178106015702464247716835361187413029390884047689254005442758003446421257711657525866354087642291518165304277524078392165409157236630410077403869109893023479480582613909026955846175423162303092117853601546794957017830167275415448760073562776539688632387410970596593431460575991723738381537371791769935656161494572806382264705051422621431721197968412074996537110590414843183034504372042943133808039192888820914078788662949734572751328794147920366586003747442449224452604543603169685414330755587159313541310237278338116273430303769132423857624673645549146837038891576024204241991541527747613230757652772860410119062275440240323947464128560802122982215206485290550792973206007401045502730765954947116555789130406373326453999637723612816526746808607882349007950299406166139253474787757091417403425482930321157881843251016737986999856028112069472955839787682940322526627437110383442009185923566744708860773269798484290908773874156356565149223399616711058678353196393025204259044420521147888885322322289738040916561910396879239534401225216357383866093590790611120835773155572172198785749283397142366255453878287115165308185118218402551090525025887951790445732669426627017123750193154819519560166234707528621855014424803582484476086589180308887756192951897989377576003975896067366343373731181752664991068497904312917219424071415122553015402634169014429441213652482525687482294076206034473335383953590749696493746708629573004291772052643594905617809546890084326531261827496430778311524975858374988590548600253119541589140411278879855773511951465491276682214027970306963035551642037781321647057754356579181940977767679116756846164826934807149207386055278526641891402304002264028700378322743992434451404241505785731987156987485433301892249421453733424367112465923849911333643420977659778833670096150839492912962145830991138911131422294146829500795283027390403465756913791016240506351824840004024600069144866377498598758355883596201840409411585687722425220845463124339233083260802371184279143726843264715105426150572132676363169220101596218311983394170228887951498903669148433493217275617126372334192687560638716855793646365528264198616248053119800490376501225935939922665681326726957377872358160025916339321778299696341053610065070342103565652346132464166022129878404250867840311255865914343328265222356525890308380853075696947754475639115813526192229809488423973710168928616742734438373814583589636984464979003918853747450012274341984230780595464891243088156041698621767103792853380196348165031299993002586728504892970681564883320542872481993242091465556870004989253138403478427844091617143801954792572633301005873714494780019446322925136987885739365923811570382484570310715972573971696462017587313798314025946223351240051131656945848538145377237960257828238032997641798780240755070326193717688621364749997892331890114081001380430934389821364481392284622585913162705605009233288240984214844939865356223947575222955221506776616362464734341079883970506729361068451963491897493550962327297678723082282778911642320712132254662881968671601018175916041819403977341066569389420127182099231304161928918839468729043780995910705073116602820412901439061987404681285370772147906282841220405363482943508199633314554108281697342713399956605589477035002036991354460871544660234537108330785444821366228630195573377888028824143422932252328543425624103169361817510651894741502123854062071731620604390511003624716477907393323183554108023121320335229420165920454262965750877690500624307031211223113019967388779197745837504037888013081231549759140394142295009667826171350458093034094647497379318151976569325585927220784692449446482878769419799235269757449333099347342018109859749075945118791002181705601226057187083311253036101729022940580762848762727874144388024849968997422535801427703608116850738740592238530496053421435882462838179563680260129083687710589271871849308145022961819259000530232012526065427133406802807628055383977772404179598764536982512169254667325060666662107486122389347597244997200441397639741842654245018220242386282350482035530656250826014760649828927582870178493153945345805667295401314859443141251486536598934368890435916776706669532946940897341616764162062516370374814134510584529114080635513298696951956598159017505636210109443756193605490883743980503614021808853499610802118430106059663691582887794613175007869386664529572624884648448797756560840990232511877699932939218249177240532312738063894902996518341624414460264574827823238358849111339748674069456603866082086357263050339385158256726892423728209266790903512027508644548987391297941818496130073900856420524955983879996689552562048375254673918790632120387798134272980456368478984566875349635920686238616674473492709647238542477647400606665937740812755204348959666781256438215635455216868572178189768871784154441035177194524265495943484579966769363088353717161653064627735791895904226657920037113865286757015604438450379126496995795656987593239425806036164440085814009673519673218639008049545645354820090890360693903445863935221927081781022750817383133749306757446991495376643397676383320865132555079541499954874309104380466041212417063404455380236638299318669196860494143476899663786884984250589142166391803240403897869098850767579034512506279749753903222666689220201162424772569852799605436555379461652437688947619836976229945508397543014527379927865848817013470734724815338070398530758482648997871121136717735277848199160755397850149944046845060369825124235973425124180934542410724792931836702330414463156948634320841762608218748295793037689777763778672170251641589782529066944130262964832057272699761319864657151175752603830518334961700061287798600496213144855720791253610631485201650069012781291644162035931260265247939575363442983287263984185969116311387363320084670175429525093680851342390330503778082168483503775595992403040987425813729959917976506406485248480153155173227946554321201463982728303471417309795168001186350938913379159227941653849298037934380135379472970241028875078304004690053081121953266039434268243671412786110925321067102996765765338130809167815495156098179838701820184708545171888723671921569182547293359394025876699048691657897761903370998994702038335488197822705693183087868574893677045463294035468206662375942755079083879462828965157136880577226234423093257812564522488495490805221982020072011874771319846088862996305138222881109779865394235684234257078972400122382409325352896284334289677638665320841680811457191651900227459534797209766229538852134323159225573969297711384904342232486397304924655751896329770896044256305201835093433310330049643162717781119762695912919263849461031149813807610838290202450664642066695056266292554431149764464993363382507511385756040713744184832794945996532269008529222105422952240899712478096360052629225944687083958474940801428717024101936071020537436797442589279631064311581513606753456807518947129858476866756271118414864385430030234793724802598174963883705606047739668972785335641235976130437255049739605454127774686959868638467351019980227676985316960638664492510529330347678406356084263743922818154959034572019879045269541762570517770807753100162186085150287852533214589892171128852619976580189086907813927515619533362566711319331881339270453424171472513290082803547369408720504038500044812128481039747698747725509029183870306023173277683425039549380810237163492576168687439760286909259125422458811695998672210037699553854842460472893966140506366803978996565973654752234471980602033364004487197579427985427368206670715674846052574789900933491128885004158851279745777623947964043674584731028589690710619610903371076170872252867203911807906897913131961518286463904188619066659148441033320186492091562152646269216877093855470793232159168582700848754177432507668505972582055714612796405610170381709656929890876627888063781588968747883826507921695257493538958468138295241646544172177233414320525579831490065220446169172634042329075290766788574221487209624065581192787006540006071293990858150271667235356052914585536330767092919021764626217220987381243531089496768778037628604317773456747558626153165099528968203207806231128919208925099536663037717920178865173246705686376289446530962685761642049876728723604639232514627018867866984559322444179840398773172029393936892287611758526049637474296885400463142713008665378426003076400336261544787868492108063845395058307512569982494377745192613052180663592053836307301670864370863298710893466842315599919696312154330918789996018187576517795924225803020012094109554168746032560341095887731920314706246126100710191857680461500365260958868101159961598798441225420045844166703270343958432665168201912230548509724453356480445318413785591474062330898904365309584930892706862111686227309333292858575012692042546074295921111187230711992403629228260578401056728157340096380192905632431764191577670031381481263959933440065480410056476724605721254059453082722023246344411143039429445880503487830671234484165549224144097312410332539764310901644842686187809409841076181554884468489354436951936432408049361323307591789080809064090006743842095487326259053757414170661362420275208850198942267693856907233474632321737522382206451755647886107977058469396287561652001642547204774825620156850062521628000510139746433240289789736827020993692905102567869393669769877143178929011171659505596247180042786651966453259678103119325545304343694359009670162600972209113977532317915558202484043118787692959664160340792742832340136882381102285492768257931128460499406611002253205134096062578757489385968514112275679948226464669773105079288668389547889024892176504605836764198389719223534258094334686177684943570808562198932159688404351801787970809101025100130761193380135935056500638552199350490675273148576793862415337361907269386932760987547480232627879286782721339731020012199626165286030269205656800075466292209653599596829356386405336520550162414628948896293800245064959229801182443353699718158083719706078641349923478875239090874936465269068267619285783858775499345864334663703041864629872916881265100284725201180000407502415384301954533788374230064033825662255248432488220086660992183096827273183461331212162460192122019187818477019357947249092938709261654884135929601892517316680269001946912748137621006219924574225590226582165435594029654625261774547829867801434937788233759901129824510481528046090653271060268516054542924205585533568777183424914048340037865522624995617131326153529377968949994403638255515568690229042748014392018447715741830783756010421235112100628969463500056392767741743388080670774631859072987452702474277458387218977781602383446523694551541579586434505420271326915053789511218184682517712406422601993342920054353473603706897605681878816337432279535959620751435826555607961221602342631896511187414724457466889071399987895790781292004408172863634051101548392466924423800881779056290909886593718766849080769412240030672266564168234305193733783591777932722671667822237388901482192000873259687966147538902671697558988148058910818082717706364643373149675206753117412908807087504969025299433130847187970182822769724971174237106406670149500562898772495107274382358094067166551108207729288534178335837557566874198832379428774880518489147936767046185848836285120751344893524871828421842951966953233036912012903006567884671873176382534328743679524494919298332474650316840077125703503831092359335636531872439253312191906087546888582754500230213461716309434415234207189756492995205029432865441547648004401245982825809723689247203831765245501865347106076505419420808378369299581533661388252156109290568499152796427447641133156693389934240865292351490050658551389866550282619199708386312724162005146975499442361000785378355740121160877464112249712744540473619377801973748211000346739946460507445573662024335845495028958300630233577395164613376351423782407142967466873374910445808829692578920176079363240683878735763303903338950701733459780689527631354054874116178179471345757308521021505308128770788380457635818482811039712309195804811960698985143256675081564939114474312448327335848865637628532621992994000078344384746304464718198744919070525293161428663454033340026376956948672485632541196862161622932647845807891717159011892744320107482919135471475783592128561709262228673766823546562421059060824013083813175915488089665445020323687279320417515655544898630576866806171063924242227502256744451936065934462973573089857400964709973877665465303945511942524278069547557896409642419774233554730596926090455664904037609562529282219668142265276775661437050154368116187967411364399740848881756257446096982381440838083952573144692974995077659088643821886873057491923711454321126213985186805377934027398348818326243298595738169877235874092903272474856032915495331295030152009019131449650090722645738781048872697851495511738795631556542076503291883813381580395579630930107615747531554514693251818005768300235204079521279923394577633311253674183443503971952640079513466038117859909410426476252357389212501989431798385663195251130257256585813820955116155417133492550714037657162245279758035409022297102451869168968875734471115364012420737594801867870160214307696261972542683567507421710589986866320697141189330287710028823188309875423873920341440319954681367212648458075943451050129985648998364110532847290040404977953598561817274800168063627856921700355919216906346096492165900935885312402012237797625272093455774976338497207378370029539558492954670488821379343695797053371002734435344206190354975150923979751578713122066400026331651021958800174849607564470612870164782363789061162026262810429090524462556590428384350208816471467550996005737760364157500528313249016538817475187417036040759100179036847656394350791378426776735745981951469815055028079972707904567644900662683580740714072290338877330555153407177252393953700120522653118917852649903112895371441998239174876562433397798961610948244026327280450232884031899624573098874161033675035790969416395423064554119847731594315172317581420565706267017982565157093669290768475621875722883593480431830579044530928722913218532130009343219462275810517112900071990050324460488339459554621719138830425472238986157931800447859160909415749831893673828686193361038650317999100622143413994833536091023420090798166279966411454334247793195496969602388565445385406715952060792025514573553202725573202497190755267611781287134370898216989096751250013573947500345180294565040635654265057042611647730627214199002895536651869154414662846777191727345391550998890058913735615941512520363459228734317189712642979313788981533061805980476108153470175368975501997448654464646540356741008819396375304187771043494214896425806786833734926911860462863110068679790829999706495897868865562471703897577666458346083641429917472455743890426621496400249586365327940096030928789559603332075299508430565122464191312760547260615999377954318647667168651889663535838036733934157617054580174501524697660671194037889433313953664937114082731868522223362969671007373853943744019856492530994237527510245422479328947921502678502596358282845161843147527488585995581221999165069472966464789257541309811875074378364256136815845195556501405634547929441952397168727946886217498621654905430615512245611282635613696832244635362799089308238691589753589795829507161138561277958774234825661791319696970614257834213773930245195761594759052043119436641632109750562746098648161243102480186293628786802867067882697841218200272781539630908357191361630065455860269925972478653492808361615952987468310216838731869241585633267035977388307371083515225209516477927658091886654451889522264641367591462158423867069246418654328601875437288420391790181618562957090639590798983953008586232307734761178463685110276491785338367936906746272024292437701473642575856600071692709521040622929609538270835257521075301323706925077065307985180104465090032493087318265789466509253405659297362507549151872034228918015307853627793312117101707393036518296720432497940024832834988173518110125706153642678267959809497797530270261514626958381540089228882716468779699561701817356466620595313804266346969200249668542420952912799693374544008135238073065710241026514801478663030353332659664818728565951329452424685578935397127167455015142296110854566094773745725686364102818611706323039744529977901188780264981911487191225381309805557771832279653005491563989301622674752867940795290093843089052021722317394725531866079632869542154469068398835735913031325107431789332195937349958657875910010262125409303543706490374385441392007346421747042695505780219412167880912737163757889803673383047272409084201377600521121241369027979537912730506001230989216567069089215591885537845668840326416363095801872781977764366387341106068439359923333154836911123781090090543092525714149214448064853332015649089745608454947379478403215600822680994915277875761807586552930393796514322183839470235343840032389607749804431105455286991574503247980275074749338072337349168064688145440716123332708045485980357752538205933386462029259922281973364857776479636461512059486935613201239902390002358781898673321372923530682116555067867336049502934360052295256197080453906956810416357669278205724585641502230238644160313666188817051247995073757627271071055083609133647651753267395692623846781250415601330526871141624151000833640344930061076728479346520302978883783616592431181255638544713420600211507942705711955414879765551223236887119070397338934921857901284839513094710200827462121361862472744939901008170471595534846256015127023448700776869863215268000472681882040999932841380102873803339342809236843004163909406653637023200579118245657890758388234075262868197034707593761139330940672952263361486212721182518300442513267934023208572054974542091302640185396604580571271154533589467520517641012997280264395012452914863552291784498022782201365993671318137970244593362096929151471786146343819184055217577952314617343862930558096307031758409848648341971703186100865576872462127544358895235711386334335314608017019740363563693249033194969803131623062903477026244216640394474834827354384127991495750925254548521640675477570663699671706668095566211854240463992697430751051767368897287118011180765585990174668685802135554352201376089243102699471919668477500489318129663538831283170422521918036287184191765736349578639425472680940803927636977532101449653899749825814676457056057640558753384267097266349711809901255566749609054946442054688566530289878800492564018137483157918209501431459610781622858949144574472065415205767160349557319943453462183342989054538544416312634924512045753432406727483660883554377751236148384402567977408141099619663996114297912661020167936703817357578750688417985765475697707607224139980576680704612804030885818554652183274775078449554883937020529009212515638106900805791422908781174162966565150222506806574930303949573638890999144090511073669996417600506540492761722242879257057389262326827024920786772305005988279299145003076095672605898222627388640550060960445936558352614897941883151943319179628633281520378319674887759873092730448244487396685717991148134940763741326340832694178774745849608003833408080486830469830608213694865565544145373491032738691889268413535788888199209374935343136669693345488143994529007210975281435218948961855265275175161348517644609673242096438760596779257805534422591197954997124541664771642250627456036223706453043419323131030675803645113470176130246757209038611692165947222227925505139475528825321110932788373256639017906611808097511777655994692787431072478220118362954869458757013216817115032605746273462999351063516597577101338271208510343951700567840136684011222802832103417677582563367490609450662769507231883469342986318152096664411693428798046316037126020646752340228634946698412322024327210320616797193663734031114626245304775616310778016178038672580876102364323218343051979877492099925592022679601149319497449161941185122759810428406230942999061385807799279630323998300489809958957035733144320676129303836113245082803299747263316953315209555923618805177602976318252723198640127216390675346774552675884941856312638357522856890095512186137507991064969634344135283825899119189667111566783083007703930587975756394255856466759693231619489097233801658809218098393808568585429474150133921913054045785372716248137977715883108219258527451251577653091868356143731942830162334805896222941657135664195798677703761853066652088696566171617061291449643291131147487544539971918989080053684188111406744351585027215579772232917783332240822649302873863392988424061833434685907259823664375662464923285673190813046956261884808074737944579177729934048798667677173245226304215413567359486963847450640400346643459230894985120335113556401229751187795982459258599077957655652117866657229261522950008537660206899291174029923469567111804177137706822057063820281575493651533252135314929425219736268740124354379752430225084399914842139458666693063052038180277818797014332080275586840864699220272416721001121586165739347623543806675987870397735450678737504768208374160097907142703824926708582053382506797495498997891671418271877187433176200187020569365876817078883725557079772250844098011421454026989840953943357945681679218750992693276028671440426985183415120409575647259615137686731694140221841246036216636539789106778360508491179049795542304817476388117085391513411657622975208908301192028182002223253249116286342503584131421675412812860228950887518590996159992957950895301488239040554257081182553374394818823365653540862470575305088813427654700251385216445393270813935964689534512280800489750814014831405155412335433968340393340990729685419884301079188981372130913444812396610402647974355620367531675586342430994777609905368867051006114617991240205121502875577632332650951999592473890113137405433710700292700899684640627653168633194310224367688628971221398659389802513431276963049579492918552315544631000446770459816818044003978186909370962674255232357657824183527143351947125708955997091238184295565932901888202561434649268558354123608092529244672374388349999736035580895571477660041123166460917382178443529038839038432863423745848145738064229473396011025951389207190742879894829619191774009910549904909448037818511228450840221366013523930594202928318356137500626479555901577672480964799956546952608277640024269689453868543634265429257607033801359680587921322945656771866420896016177442731663910275039339720472034083237124517804528996554913116736264665258424824808867663562171697690642024377330764082029088203968421562293746981472229494761839696481587516829545597501646670558650929199254420982083524134103998075348729704279516983906789236711111944393210804757677948856183680348334004388658035184908004230535336937739771645329145314110041382049291263753035609119225037138388443343766468464929772483765150730842775845813954574576601374584157891371354980817658835481328501489616638898975630910061106548053279177219181699831967952632669635321725345640577110200374557944309152043933687966123862441539829424686699492898186549040861425673732560537766662200158657999359589805342428679160428906692463091344976671531823115378987682689582531524611266822759751468376178254464281667837104782122434926922086369365094053426907224698753315663972347504234883356542178036020680348711969944399875394716265607955659815106835217342455581818610966958750101816853146547271420918191117176904193862151476094121235698002979686583655293934320166211494127192862448637491591836442463833765446529882428851769399899404981028261636142590495409741555523177718416107613212081145754665335279960831620078296768906287133321226881265590823522289694839110404806209390026198228565294828107320050945169527872188381660054959889230118486174873278483918512544510607468504517991373587421671247755405812551243182838109040615442400299186739505502876262737625418265467852741254854902499917960515308920255256600159994734810281414235932638295591954299718820450068188405151585549213303474540626214087896568440091157276241410006769166501866513602232779830503850354369354630138142132650866892504163983033555678712099862808161587566336324799944800225408983524691333567123358802269091239452799278482826321384631380352665724017986565995371619530173968951723542592301518203670769213707599375966682684030507955411225229995219630918116207965478325805205793745914410906071487069912630253166954717016425252001647325613026191650941228116350198556861271561381606253982199878438457963847671614839050621611241502306965340577783744703574853829589800009327974805635797836283065890012962430548409898098376424582230700505099367556328380088304474146005524727592492251985162213146364509468324998990763834412289763104472451727103177934972460997484266342480599380783162595269391689280872676566865410207472240988421197669416372887647192091672960393531899084235441704830090374875730634933357282100815185014871787854377687345809357344525252638928035138695508249563668923007354663251875972125217999412832690919611717082621014495145247895040458985893530212843078311497019691079629161558720540709165352864192249827915385852590288363393627654009034490692652958012405511544158862183584361080296700383012266217411653437127220953485011586575167640587319798705708542013580963685669420571010882880010945422188091031346408597257439496704183119097651339864815900809108098525340280717981256721833383345878621742227517915647271868883825481342454673426535951794690664854832606906010791043034047592906179251012554064328563330257523776350490936174661053408400152355735836839052463718109941370105759277550920435371196814079923675841015133414344085623250698458741108375024928085779490265153192656156974020986644610797055391937510773767956443339003410085543951195133764415136643500185606806600244518401299614780225854851914772601401670564127750817802248746075803590316018184426606293312946521127199149913883363545117801000620758060244203804533300615604630859090840041999024302089856339121277841838586232028191110972455399648078105389163704623257027789904432196231631846724835085716686570679595997115235131724292366327861908560739079153711086497528374993013345698707283771516495886547086987323077209163529865909576560111764229896237992015752973169063501806723549927330481755964834818295121377058969033110249462984670679686839503781351469748040684000283234122745238408382428423867551261893129808172593291726318052315569245409059554732982375415338185341550486094516930820456115276136881096341361226955475422171663503573087774115725833549780515937880910960403155392557184767951487283756814040324409903118200852813252386326666918282106557632609252664504767600935772411565312160905764094317021674066851917916766306021628177280962413023091451412766623868049415194952288069251814097517177735621176018862900718787385099160706555847479191942438936503386531046901875905110098213554270135423511134204646665425576272732888825633468066891142700171249185886126772348363753014001296462770710699157615738139450180330751321818839261298163898779357563382181737315857071563846600749815573444317135910903309865431624610770247885047667449160598092461997200205456945069943405045760230173700035433408915196305967570307129222817853896339025797036748790532561662436027763551714138238456454731889715926988150323107820602432296920611215001308271808473425007969174199347289582769210948185604743110640260723574413166274282263858098944335604370837363695762115908138036680581326632534905321062670307290803577063449621280916587734803633145017159067520062437272957846813915108827476897717348526472262204388570840319690773947289399026974378402949337169632356377439162828717672125173128418588640138102590797076570914491949160711798510403571667460716558532168370481905769635065356508082337286279217252142745059675183411965045301862164749133788561510530176000540085525535378515202851035884995780951113138930126446026661810543116641002130151199682426670386020834207901660075207084229697717959671207201089339477032794211322404109341893892669638278860634391134996314075341694679642489146340443217498543112780931676936684664987032942124040723909343052316889944959253635376341150805387445594956233557869965720977171394408435215451435632651805941286666686386484883823018896654271577318680675055354054858560300084412801943178133187218711503258750539226435408375859309205126964790079330353339043364858855597930917547687695872060284599991324329399937301299350150458428338110878154265342088896278818104238296993524002172136851267231553263126270680957122536637161078456323400490942653608915653294462974842758674812602292168148329322804887888917493364856109885195794915104574717615482096172998799421903804770410472589864777774479258295115606105244173613369332387064625235389026344952946914511516778379346408338695837812213067902580492155813967233309314268001637769031681268071595087607837042487011342468694687373883259920804238015180427332118225095450412708236435704646004589462621408223011563424327285317322729708449723196986354526058451836301062433251630253719923127016108716300685224688360451985730860851901082578761163351911922334034126683151789487820517041669981243003572005136359245484775287980962870220544213615371133272552234272376000230009395323941575611390022110661906823842307602345306372631777312493041096463937042105854639584592194546942253955966560455360603930106834144060285073753678140562030070406444725979165017472182044061454748448592611584135957890856489658632796994705813767120648989769375147860901274893588312943354581957742874824937917608153652396066223812034101601723583823676274412955225758896122208220002291002136204026527195721296472755320921647173772210842333532109785048259170401653213376952264121307770853666385910633711273928308418298776302625973530717222377466563730706553477689701859250680592106969730869272738104109194870351633913073548209737803013530410772822620013012399415101668329411724396614984904967516433461226020525067008077878500262382748168623297937380368714505640606287247514837935449483043497666234897478287601342719148998906902898709582509597596895965794988673691575066123421016663917435925373980077878794859857225257175031190550538046373577297386872414960763097007461933447962398966843671595124715153174948299318178093660498077480731498815157197774190785829403202684460260185472216898244744020748515803056836481141819403073135654796961847244726129172891523401991172529898106869374068976607186104520239471591307097994001525920096423518275952592396132596949333848484797992215379328187486837603557166337058511752744375077309648355417300114626504167190699158438565235655000318017840845791933563592662694829007807814083663082967124368969742518426275951157988569146899969512369124758287077211096679611785841715914925688752710832262192364145349103874095756858354827710620538038813282499688507908857028033330162568795821659301242957841757032864770001776750260831547945295992043599439968736839962740713647184430833933797823867591939470332056280672655803973359662032518184792460335621850252494331332431079892117728664437659681617822653321516127182495095758039817837074017149342611168675993088777053694879858109435396193289037735542389608176489971266984988065334090961791532151120256832525448629330149255011176773469441825541159201063126064484459386462590104074890047313541768564853053702527336366901649945256596976937455522105185241802038106546253372132609849230862234864876454809482972528088339284097817322483536697650030287852510209883851312674969032267456805104615864930413778373724341368860351574782242940277539183776711602605410685631359809463431141124642884523597239951786750861546431403344270914813045807539159294226110314424727284747461641559753444812760926780338956106881138065897294277175375875268229855536232442521372981915400354342167445595747510143003375032144315755650094402682747374387524590073156572684430166959459608568051851760009852321710625199592537599553396805765579360959557278361977144144384678166650670658061740220778468565664446433797609726479658275117242153857505508334818394977519260068699152086148807599747356198200720597408079874014445938346711049175921606975483938560545176471494241524372138996763296565643961515019274930492085710456804093567790114850154693534638650515864341194705700400834098580891610251429100895458288199163412011569337367975815616054397775819307381294294892851585266572191552483034434822819718886649931762718896122646623841971800321689545452806815540877396251224422651453258045680517132084912745869169073949901211869920503875589089506102780379554010814940589079981518149859298056190041723204332876242984140763819648005839096429826338638266138054963409321596245633276247471613292110771699137091896056469753587461394935212537290325865518408954612126442648995403515364559901838867469579228923063689513809427208518456006725178770487227790316711708616832774533011553626097950809194172898694771678237692322608242410143791186433648463941541796745878286242070789101902205956549616039686754137086038159376012576137670349167711277065554512723563615099616609316910127726509819175771600795856377265316382039008802313378903478140590534719893437063468588734905816551127656343767607025205610096690691988382034734162409245824746019448468518592077032099513851225320347040023245203671687898516845625199149387174044872126493669367318231434264175039957710921812704134619980617607495511454218160367377993458516926197644562623358947380859513275510902544392571609886936770505566475609655044683445444997470368128949736170444264102293691681201481033658083391161050527638253706455076092403030394183155967136758870335211362017823309098546733752657660058719081170586992013332723596108733847898739318661362533375482266834290812261182891170813271285695261029009827847214105719004284561809047035699254979507780994842723445091074754203717208367156073728694775309269561320412028001247762002864738863349756447563526006781327222603313627584100207857820101394231179498759579818246841097963778798610862715085220875258727160081852578241968182978764065571799732949000598623694169709144363216048586112079988138335798808154772084039633209453571939810336334455743740665106935685706975884402462639550708843880672514966324206581553216162631226428061564680821210526917286137293705910283521514993411369264735236707173648092974487869837857527750896382613358900829189030090081731425369784741231337537117366132771546260370090733011467752771936956642189391019798984841376144778201582011723124712601543399061854819294950854421326663692160773727079988274268693636716831476324252946220786279574381285826006277109175775778196755234802690006532556028884651479476633141711075837250914179538207135930656060810443382814400225802222635441217489602706093655572674517468729610483268784807230946129642490001601222602432574229228488652458909185988083572462181850960800276861676625667175827219884703270080264594464444405171984299257508857321921539388140109403523177353459594559853010939506044220774699168777495739461184811384580645211771685651993101300930602458230282569292121487036877281438989001131675031786610592818039785573477499266600898171271764601008577149922798919556279146189693565003737096118759042813932507137554142702320181456695121539004504468747719251873398976484701238377389025325793777173697739765289389716200326550005983850648636603891903444709277330868032002992115098618037848841701356365240721542383616599153476390193159447935891382365139143733316220088608789562285999265767645751849795208497389440146480295016924526492605459665728091949948338300182153584603378066876484464148252923166856289425586050744292786407436911601782719858628480466296848277773836790367831239667881058522813836750591102471756007783941849680203684535258456572979799084210223801750324820420617215521200534118716779054332958348305249675466770573199014398492910809604753901596146436466852777366221590569858744539426641699559415902715307884957852439561256335164423131866335186110091669325639026999477597871912185137279639021018714912708995232838745989646880089590676474467349806578175127993546063263878457323845737720734834452453503361078699248692637027460587252164781463503882609348180756690477831728874787625725992619656287448208224254402479991216234411463545562767786135193146780119510813988110883024855643564586153191917533211769183681880241733587165593021397219532391389930335357909194424525058211155999904116507606434795205590287131281798115346189513597572751234269480394785807038371900180876073051686729617004066218669509563587101686697805568384159635719593787731135058425227400752516214947471367171862678203194678725168226101541667793109768312372549721485266408592590142990122465840729917677735359859263363689928652589064142426466350913055235873684576899381993158734460260075523432276239673100759207378563761407466112044683371070542697220759136494644467683062657144601165964204099723123562899578923150761520603130833046597298401442556092707580620281358789315794517017852893518185144187162256481613532212609188139046575709713502412189395051333982713753392288899164840764988145852202114615094954608614935615361497400706389647494465391335362277566876173837145732920186860715378287076314528043459812713224828459423192373080812591139037993220613758225447517886497343165158913531445602723286629621452163250251326399825013035487196686365779034675375993142394578721751531922641007350094511371978142654944086105637373507004424718761299282690282222397249194007874451697876381244282834560715415110940055964544241084966548150892847049399551026894756873893572647480186307015029382389614205114484135983648249759241562829333962615266239851902293082037167849690198746187659089461367759190800649910304073201069532938954507881345285692969439372417242817067501495834797671370395308685327259778058641328458372412760084537518349403491193487636608547600859838590604895318884701303188823623605229307081602895981768473710077121197590849143495293450594347730248984148704635081822670831019241301615720118329682694731789731930539766003426344960619665175664082371624826925481787277787039058816175789173139087394742958294270273008222383467279023976160603503804637629688112926681482515505898846033702093516278227124353305150039417583018924997734898319771529124444780178184686905430873394496539600978000661124908614522452659170530603834248147656255645619529730218832641433072692273474937016619502792327975668998404771852270670504049831611963578669631437534188488094667285409200015507580944303751567616537440645728058571237706014555294030014486033851046844182054852329405875886677317875066666206612595352403264202238422798484445689598035575917099701957315181510475318863635909848586934493158244752901707304739873482731808331670975231182358264462411189365009614744445433530564232767911317702059165571023049546865000560251818796398411141375953415112653042861906080499299414394365669945466111184479281778494632242965818029113966867880468803345403404984342027229466240763972191677963475980249865101052930720806490531348624829265586351303132832353962985915223095565166312176201030122977354862509630554253706351106115326899716792166836144666121397759158146269301628791864247748618709280873174609992500669543761590686828040608266934007214428182076637650474256739279369171010472018973975148849927646055446895029111190372415471800034572350207533181169311157625734339994386196159999808558073025157396464710515845345214061732716034252539340250928102259037500168069042895814137326695184247785066454668832507720050858657025688425892224573264057523306198775076658481887232997114677462985564028612778730780732021330082544899081646721386869866524106717327761499702029381173204319023252897729231930825716835390424284142520467514583287005575236654425500551394296938178005160258308148242843826382619611643523599217009183456871387685206990743536456302449269920406451061269151963910393168943772686652540587876918195575806787708357051031205018931551450425322985594804254879284602436072871418732814809893735275776040066519375190700594044144781705929450473321256269875798724082482189676443756332677683262182651178609901272619979286185125798106618189585395840642370163006995213820400991107095595019598132688307908253887553260643253950132336504207972607447272941331168504305913696945030675094422667649919269502698607406523083698385018378400973084459044056359929580525104914484831436477325108286081289971200200441391495961146487707683742100052356080350541769595897781115916310066444858138754014190832218892055130654240665285692383724750563187870216490672598370190491254518520706401712254600183035554157614572566777118924644580580980618161325241880737406696523331048876067432028627525450217413690364778109481639730762337408665747391400732842682893442511126089665697444931859947452639405933739539412165764134383950019493237942174498585855180720011372677902331289557090040068072633423555925483354410674731169862136589021178558666746727830689097377374954061062821278188294202170139748281988211437822903133452875827490609526034410441049899497216870855205958449960006269590674119803498547610776604354648391086980460418462264674670140540400169625645857150751813886793360400149081824505526715100798824202194344503023840715588733214726152258688326107740320229273370977052125608130301616935320587512228525793759628989552785226399065887707202661656392846217944721964285312123815393008551607539262473911628750920466579615347981085382932778589969796709691943631171716360063688997369877208507729877695350546602258065191340529409598715670784777080511162458228516463342923541780199597030689906488138733660080752110354802205142406930109243229492879016120953299954938685813382371603240621982802004374486980181319790639864769081014307017011005599859589437399815695741246357593395297620630403196627240663762039812702795378590156271626289037626995140960423622566155246838257605785048218638123596815622237320372071198231716838344896704582927716203647628692473783117261693151116476393253207080612821707668403778780070084626479931062208379747555181550441913348349416413679053903854567008082239494318025150422798060809615270769678644270145527175046349590991253984142418227259147055352794602811875110525235908745044793554023851791088239669929167660907430353958272367151865554095798273353066578241945520640518628092713660718221409181800522767960828268950310998173128814474813487179260150568778392159476513181612704738448346822412903334877255811909555926093343547368435151919259807891993775948311897313316171806554519557895557650912093230482757044007896582020972410049705144352752572036421682897940826627869651370772738314871990354952893088984257317423904649116056695778025052488182018492838169052120117146984298993009771914572449429645711880184989567793015131190618342816284473411085491250246040130648846055162136011643376049817911950827555139197328885079968449963051699748102041400348787598129692026964824240185391486896516976484439262870581712653513882863974180477735321727409418407524644123197515644108946899782530168390194310358118245120072185880944844820512704224331488209345782754941485122716773588657680572486616922826986137782531649266524383116545749261648600526575992411149062192962034532859217294959390644747795012129231283210284629607214539669554229587150079862329713546168976256977373311379727084687785846133588974886179289127728757880909992183980565224200810138141458346255033730590294716640780387264955687199172349344032772564172887045922485562863475678786466247378842703191847096913627299659968727803828757802988767930423479622693515151965723922140340437561240230284755445485897187875749582584856511439548466384233831345454981660663091283350149951695218265030027642432667334937137028939747810875145763556818403991072013279826902132779265825086239773058000396954868494308920070229937246245921698449758452764875680262892254083081049591148230869476697635317754854808095763410616759937161489977440229002097747292035653415243573073598473362250560363822104351691064366772244383818451330181634759495792376920485636274517759151817127654774423649483433278155096019685063052155025096539977127180398104279686669793291888808969929330026828428892556218006671707624276834190306927840743581482214339176975591797332871492054789392623316934755206739244203311464414400864801667415631897142043247127271359313047503465997291366984668607358282963792646144313980018742780506867634029102944353232688048395998374155862933138223879721400182927927871802011031158150169820872393429888326750979993626586738094690405918135949395216386984787667907775705148504256335488666752632862566388928428352109868178900905535567661020293484966728985315797455230355856542099123738244344476801892406402760900751850921395069758033219163143472461942358774661713718309140926499297598184284336564921809285288140710371689005116378001919074683667694573606841477367640318062372007625203615176088691293913670428442260958213904601405029368681905009229584819539283479483316737300003112870477367019923630144572407300771351106217110953001000194148980261388699138878449132278409487124138263758015774995246537634305997924593113068544074336747893145369423429122577342908724097325686965802955656843724451655284043980887073093233010874935565123888223830878809653736487559126263907608250411455193920968419651978031436863768744114026622414058106196040101845413618201663334607529225671586132696311976940494129524962474774231252679609052874612467166849789882936986756632121154769509588913960553131813216458457022710313574683997289898529197177075938355082494334928098668878609373974549332153912706844175070917124314511005253327352649517705127253764830898980637972409556147061300726598556392963753303835263073693290051022113209474013818393202223199806984252976773561896526805830446922265711656751382475961499910554647800991081717505389622661630435630954115361192894989963804893060085412278274090043832877777455741929396837781031004818154525047789577364260421140115162190106629239166857239458039898480734708184401973923946575183835877338006824812988932214477160878702374703843621628235084377844677221793365004958807943355357639733243005500064473821526710470724753949269502571008071971958663438164122120540459943916777941912030678141355217605510865816028131784799381630729341192853348061257743269045213864885319127247239537720606187395762465259682024599293285134318933295334268972242507869331937701999179178154468729627826804342531531658298854122468127601602548137033114590347055855176527391365590934849352932174105350401336889558715251298070935873488329648211688682101250460736299409470900936520712930989492443746266961109575322965088715466684373721649560983001406574971989607133024066985083014155522608353319328765814794163712279956015076712601591837889606811369295001824469162554986271021114474799642052858426710568249207440611994053569124113041242240597395095052511650557262758213265141394438576074121758904848020906852763948662266016180574959640111980940280378433338787026484625193378470816578400200529217538153487622711388770533274518108721160927293173411892586350136676393253260445821975006096525738535522890593914405248822767781100769934926933899060252487259911669944142309811610133182254891514662514785727638299118451886565392822359405031063163373597164529039626575018938431662707945891307706179334545272207129631102295117081412054447463885874792614356787109363833848864296197430231066191171841858199881591299150112465659210716124475097522934311367046986174576282805775925799407833293975308354459644260951329831657544857784651720429280710179996667094257102294776030475629219087146431464744686504594446466810433032775615223087470280645917233994166440240818677296112846879325811922626269197125000815469931471672788582059927274346570383277836478655619525020009781700753642045828334786525569167554783723769423213988344743249937304717518887980226429993691775538030905694565303759338954933219704278755988170390404018135284608539881381732040168465518844128023128043700164989868967520560549489214580363835220411793287128643321075429409563378987363650505862422406272074363513275408006340343316703548882466736128061632560274357140614686092302131341723193889020192158801742859208291498644175419335714773989439157553978650195149758880312003384287398721477295760281291528685670408295367927919060742896766650102178537285898880092571922284512895939999956266888123603940605488230592157719884024837077942426638195173489824593781791637921317474977420698693456245609693986197456568553563368326028579563153717864971306155185526596114940902698731443513143885179374353779233088675103334915099713629649273864188288577763441559993723819332423766332482399890420488330590970155704740406643445680156772300289057418865245718037756115963514623288617657762555227177560909679886585742367085530392594724881227824359535682509046256872207733195286381379116025254993041505188348712753879286305994691108723235184565025412008837469914707416626633075711543805586112461396888397202531953044926047995998829356478210584504044143350296275309567694150343020933390137417822070766198611439307139536994626560858499694965324742516151314496367174575376886815842052772161977120537527773238017836949976572273647213582969329207967639170629336173799443552254094386974631669659236315736871917723145301081854202295346684609660290504762439078969320073104091989153043114743819532619465110628273412821791793242864311969384566892857038237865582609112320544218059731020818637478502184783349691163670436124327092021511529792402683081554105505443769063488863510363023063020813226044909091667334384200261219543228627521101950047851850477024426293426523944575708782827274048649968581651666308103462924437676340475986572866552584391751780168127768260060238012602074729563947821518820412829600908307831970475392350943561436486779590574973430590834553484124984207924905460273179676742391727219661237537668901849731020785245728198244090569264715318022352416157076227595686523053115526557311169064547058075854826402603723182970021068266560093297697853278600708212169044898865865041555582545156024164048586371307908586051263907379373672783961354456848244902006286888723709008337635918654016407489870012217063178293495688689077081502401463835153507701015291533556190190327799880793137193721420655736165067274637679010567855104421616145096461132374917002407650414596237015116547706125222737551364301497419601221012880452706504174451160642625831025343889750789361739852683339338461491986905372970405063786789509344040396293548067024673108225175051763052763112133006047970159315230438538471382294984970970788911552909086767906287773360015667031924565623484410902838767768867809911171818885119913846263333148224844956665437281980129748232843077122481197402114398459408996688657674455004508250080965418439890883082289151256098972552217204094001949017586793619519430835805580920071629194085972787327299333454747892831348671453293548405318972709320868101768270695929463386320191468509610973645533895328083543036586705024607379474237454173900991357790502878216546733605944292922697999064016692622216480625518612215457139986753701732374157562164013353974568316162053488284479834222003805874641967920837448710112885383978115598344000754097079110281842660543605179433066932486501503725288316274517889000441091894607382013075409457611816341683698420054591890496014516377694488833598087443829255311154932511346761201870041192328573613141638894539378362761338337844761110780955001020743028855565254389962523610703793548932938328860674117412805301595281526836242456018516141434021250530123221359198323238965325357990231693952278098924639254189491864783614092508679067751733558040497246176624844620862510239107493555670341377884964726485914491452376715919908729239267549730407332526655502521771693524984081327319335184493658809470910828611427506903603525649691205148866618427987124389794377474475633563374019358719736401488562410171147402760530838685591705551800707582047924120479784660226349891517942259480868355725944553996252171754961032493012420131482450897195480293257785459801289561470104619296400851631713746705108642893194869515032285567803523405158932829488665363541052590712758199372721966577172256005757292700686577325013566237581035231141940093331771040279717280330457069996236698416739130078853153966643381752387534897550660154306008724404196459169823434885187320454301145277548774655915379367227325803419899088269953427508973433148410733654624387300807836147123604087860583365415612352704669546268743186583928826253257939303343952115762673085024974693039142258666779859866712027047595476236859713115265085135657942813679659643761598541487826476459486121671704579478407528257265526805392869111336684954013341639322046411604012205118964343445431195806729012626509299541366823998069062382519606161057628246851059066262928639753418186352167846573770408444619190800386538289394344447753291357380901372892513232652559821408875120616399619240743908788783063390603365259174901424639790681767331030905284939825620669452531635182669556501648993966636489529050700360066763042863455463475420855338420203095669039623835234022910977069405589496402055700292038152198802875650850056564386320368648991816036125802681008976358126373448131084077552402453356155145269775792909620691773895445572788407979853767824675803490032819228820936610502114757554292909413307101338170154937612195969594759807905543766489798423438790262008845674725674606515380051972328924534848807972271167236677212455278810251376973761228833689570467032407307251262704609532393665923909244004803069948198680617502971909104937131716846454112631906666445224577523220018586974906582711603387606680123022682896436038020360037892014068939758025251523094242034599183611026825086025271771109955922368467947545542540347397927000668148326735470020114514009055535126758420315601368311400723053202143086479449081605414987315421208011176089538144306254118763570469230762187565787230489463036630186039338764978483972760589082277735321533405384334507551078719560220153922852470291266880450554473323467705567090201659891226471623505657201378129715877717069035635259432289874899904458400557381531372862502808084325961907483154110208204205238357810392262835817926011841229487600777971113214602002278572015817890406487486615435859092445357063308966565773435094876135531231720374368627381727974276537447820984590142350445608734994877166621916270835598681483665059620910501738889873859192996125808814920234470973564323812774443884860963088590177836487156654545522086901187702086466521158088902750749238542101956083077067584739022818103342491910715829573182940083151048744548758902161849378614295199004096643966534670052941053110383544055209963314794375874546561944897629010888259347333099875629175447383783111408031076987371744095311692185160334645688576671970689623795529768494122768998832988883391529397545179955699250881384865954415456206382527573145837145925796761695465069730251573025853385394599382558727619018547378987581742256753815317990880943372861887268990370234996828523171156995750900445799224912268196442456830416144357408337168763660360918454037556582339062259526308115545555465666508439208494059865150146974103402028159143758482291109081641973706821596127595433199064992234921486515878712458607349327975796932805133119740699465664173233106048779169514666058209463095798972887282245111449606733275326390500927913672352591428444506216177507478724651448918437510464505888979981837129892773240509729935251838568344545390526179802796480688505263786692391822014181639567559800954348730424706072281152685870367981636128705663999236579459748836596757003738609079311857531779897122078566618552499533048090636627040822043666410273501460131144640209672167116337781642490624730749061150642641454833174325786401228490466543555371015487308749623290167067798229522945733802544141301605191243778943176312894825160347785141763561075039646935513448377326998712296509777227145202003240602953438258365792593977752220302516738121447308806575677558113649997195566707240651942145508578705950817323192214562688169334768824729264746336418252122476756718703353349748599642654605468714724483284301020259024605338458431874111428334039458285907943355245900948622808811834317785267710950541848408309964885173012015432980474631724570582918199717147418093537534696497523141491596171170136032209061313369959870051679248481123999690330122398399941531041018743244230763242169268525461269321113013555020571057529037160246102124907731324459081711406864083476520721478559102567020007445210931038112121637680795737560738130685292161099706364406729483773555268872337762894055577882807720856902201937213574500963490128535565177584275128815814217488589974212370800101729275991008127126286099458091976331048316395173414177202289244939091568578633440880656152055945337431009082809888941339234551650034787234714733812087825093549570826217892161852783268811423678196490283912700870187897694783561674783956469817491152016927398091871921045643326172614510202239042029173534880567407789199219370545992282490305825836912585684577832858269795790077435476778132957724059292845339417818861981900798056633218502288422790642255993732677973154891787177363303527308327914240653765752058467613456387413682794121415208048241929663388078800570924321669257769237456605414478658190532935477464612044507031918012432534481670986406327294652198627836688292491120966340709321870476928168405241042360235286224323962033420955669929259980680308715665106432936712076718846851592420009486162356641149526997365737415556926093069554381130951547892678245152754075528749300330619567980788519605788880476295104657901457075337966515903775888999579606467567972139156851737838624199109530452680768972444024783058597187232429593306136089307000279258937483600043219543717179875972477100871078243998224722044296640937644845231464067429156219032094728470464751628342356098160539044283898261238189655753152698564044487568243614595688284340988267505318897125947803599745170085083270436925566772037826060734840324044894265962232577829625946854856399136635551800359716220513291430518993571428222589654342197917332069643760310211760721069265821804760350163346106792446941925131265769687153983865076281420686541463835804021738938717911223919139350289302908397445080341071147642067494090223455637675957143500406557056333784258452422427556816203483049530462528495700037190186018720870758950372352369604080642178982778710916938533960744267032839984755425005459755506836735980001816442268234728508625655327287475278312585177383439848724204120495728135520451371700448807719825566817214269603809746896081601658069974989470016217969946629447098427923036299779277222676200584017066572311796057091006708158116293580646563215054734555439987848508033026322072969053676525524696443070323110504435226471623481440771838223914108168881209153952979933751660507494955697974563066579961620041762528103794658523825245648147577224110891413965782113022454378851074133217673308850149974181215918489901332848628556430789450523751181423461151565393958309732337091042708396348396369849572494356230869963356049642234722895200987578334962266196877120955397918300953103575515360229910061993219558821463376327149482759834596075694917042046825787165873130164497759254237230549846258928994452541736685317455211537129318722305344817765401173653263944330696916963788433038065228841185957977916539206811277504523538840913628746502750900148789281695351251070472001817652330344711223365896570967760629645186215391897057350472687657501199355503619667004382598866365688717611081463138115739007380580843143759716997343376320467950155939319222046374863933073469501722608777216437891976155003655005061975077301026863097374023861628278106365667167210305536823383935951525537764978858853112714904427666251634125601591489847874142486657499852810859352185310792582662861881449244409669577596678796246612085850369381269129103978246016505067506895884549659819410647120549725640496529765495476014870586870565238757567281963127946957652333397529690661585477642130087791661491525505833812762404007688632084327093874543488917438052756386186810334079144707309304249757563045435832337929915254321778439837296557821668178703953159327117305794347123239277956577237522163602149095035289149493714559832134362278421345755969081903166535315716851299344884750615183832294490224176515364545258028951093894593913045889303101454319723255668135102045298998453951751129333397791931037648448840125033768308584315866861880884296131210408552008439514122073016142153574536955544309176947178761807997734779719363764795103666226569796253443552183097792485909431786534743849932315815858634946414781073429926622295023383328936295197093984882645480387013936606439260514511233429287324213835296989830806437179281748318251625917826785113645265685516648474588382348884226015946044780456760985528199229004665973512395525475216858927650490275259859257480724745236114671198334110031801815856345277288082538130711785323142322962723876429747212652104875204346429564269869717153565693986671261961562990056646752435881419788120976947185005930360933174592056470075126955490816963566235162037043780641511502768927071833087886932452312463500528279673100680724495676625891641360250785195003010502973432366207983110090866957859306434244504787565200682079042018768987701949724629515083220555238980753404209758182511421462877367012887478860440421327578125199970845355111322310942099122812610665773605331369772130902120148584141567665380585617359284728870360165584833390934647010964646255888990665618164075026533403061413221880997927289977260793173451095762798644823557163476025371256207934923394483623855719361082777852025685781560922234838518591434516612702993261815810035056809899923314363576620108319146104727527915509917780784891406095830967248662300526015223143642208136765192227169560868533487166031669057962173134901043129006451189822566807639678858906870985090126921339644433310524569222429785013821497075208856881582243368625314196261799010697185521017316298782101051713733236942625867253629442930626817903583982083182599136689524106332778143505384489063896346518856380120254285420659092558938694200207105584141461903106866441973563656920820203661380407809489214997438289064898793703148676379773980146498518756655507971056014571029149365707744063263613543202876413160504940120752694659524696618338903224083996882815824252381359648258027912756276202251073681497464182560223040150161866664084164121007262917665969881731683898892064506388093471672965799866998465064609695889147046635652466476091602907978379826538583754491060011139105456751880632725789156618853615996438069269560960337262783796140659811035986922634747643048366805078115771246851050266862936604295033506568362127137999627853803344958532953434135643443861858518322447797970266705995457385358359782905492609411164738063478705786779921322824830939214824710823429768360905326565024721689191700011699156376861149505973327069171574607907785607925710227117743285015309757184324540171483047053807650611645768922714207573815043338156440019832372284599374536276189881899810274142303958609984231063398559952797591119461801042149819272142208098361727304491117680937771315268419958939092579478607206257553322930821821381425482562220975393124362569692861136513316867296733717782039511573381512410099393475286236656915227016158115865559258615632958983143013920522246797831566971868941266747248497766415399969962753660056883495872472558927967791214709967038038846905474834668684263473921514481908910505591729367401533918510312366826470991756216892128465808247053039532926443412320309855299021118820672708476627096171807382928014144795234281515737508042726048228620205841050322692469065591409775316834072172716070020680302892567994927335692831760073247913201825655257692361748899278980396999885343119109322580141431902333694357587748403951685581208998687624516581263650824365829394354647528393579076485010707134092599777397536084260007510127109196637922327486494719289764766770978058063893660592953157834073722883274427351935914049664356349574478091876049826677693788099823799585797337537086833337528755560745668358288895932538478192718754963845889424182735339860352607600485741645853335655351143111351894009610484707870737584075716291533131373293700811939419099316028744493697733213760350633763296299639769313952562356558500084401363669070806376419249696903523282235820414706877171262564668643724849286684666808041737641204844148307892178083017815130279209544371754391217750239682278136778544059241000514290451364900190564671429160798013735860009419261012436964171471443787803368111481048878971818558674083321887339799137753839928578764261431804547900391275901256412144431042800959049434753908156106529317159433858065226439927848068430757517768175361385318660192582400746854554376053779346107798694179423678082822164714649814527084076491532729580799794426203584931578017413916340667673079489746951643800572808233217010160735626130528853011072405483743396828269498616651742853708095766203246978847904995206931617811751717769429065399820056440919787941607881170077202877264168911145307119164087125169620431167481433501765215172083192600042632527983362747689189411591449943255308111654496174405718354688796858635800861833348291824652493930255279442255605548984843137334061804904255784778367871885790954746892996635325610325593241121776162470069012679373849352532555918791727260932666000386240347447181773612546403104158427207983626023979587114177417421379865027560341470484119756209275645080902659194031828807741346678961517079653624233717300940549670429250380063810875407057193178914289504283459579918039839517760992373812741846968425249330202047948471984456809303194437470492927461725962225754595522248024251616854693492203882311210972485666749574313220359436411920954741599929698350439878512516497262152786647981558568696801821237679741977499440910229757254248091537095578545386719759243367716982112988308064502443485741171417376505810003266841862376249110781776900393945008539801591515712594786547151248691695064329125525935858780831385951419577357047159417931125851122626747112616118627421953560240698353742609365181412534333661520895722114593708826385771269948368310336834885418470464886997640995944301657687607141389665953151095786320864697429761182989869728016287447755283302246659578499284514629373376796566930275589130615833885481265115326593764950559726045081459338139561555342660395608664660794080249656213981683397522923455127853838079782420921118187671257770676904460494767505537780411723110662338430306034627575708351524743343471346586416840524474155759205105043015007051264267515767089184490482221580789101557270216625745555432751324136928924217361011546213825347733033953095878288196870436284808178200663930294905113221192148999028442231896185164938072083387259134152605226805678193684134123233424995148681589073716787156108749745104460531983636908218945724842813135478170560049475374300052547365329635057130784515437948553129036606873406989148233033978930429643271852020077964437929191094972229333188168347837863969458735995783078495928683216121160103101354866680620523171478995391532941124307299747285091935238319407356939269254241411941900543753920303552879118092509403628598477141983997550627566996458017537357210805095247745609846476959835355773015917733703263295706594322606286357442505010975272747650638351432610382414353967657642904365628131850388108031262974176675910886156616164388723682657750700785738766513889834372787356747098921289379676485409012916677865066759175158060209680859649752632657524048037824065225197758139656392552036777719541540792569321510758497218447060528658649081927459877238980911849474929784298045305735051332084318356525255196057403997944884376360424115139013737425271870252966700300521532302419599381099004304505130351830097227795245321666560306224555059363178080589909743550204136162017520706452747335956527988271199558335678412890675159246217386543271888386247089776156476397561269033266822802164636497648776397583516070353973992481975095027326225611304688387859869212150020203769585476114312008684673858991834815990688512422420460174809694747666539061672585230315670410100050775115213827725318020128268040118915357138434909984072472809004591216763970012822460757306743784056619856353666865112483342745766841238102077146025494439352607559775344973632988996573606609910959997760385371276182973532765841426948475585558905095967876038584917210079806962823485457068470702404044513150352851863368533699521822328611708515780091283967205135669430890263366595014968372960249870064129403009697486423417464505995344436270544505697108007828195407185530675925476423188546850724461871430389622791824749684790020727392277624701713589835994630741711984993592177282027912872604438957981185852273389561289885009232112934912096140095441178082594882166895774291731765350577913444906071306935810914782090422577872958043798712123679174167512446405590917320165572798343528459736914437916205500178783548093523178077536556578788959279749597759999002999727937146985701411638211100788710683635680222824852632691451290696322953018417504988815069562040607364502423802253790571725923239103014784960422521711029054461509693376459520842831251703236500205519545999954489493561781538090244390057477175023532360446702150820805887687341431474723804951665563729887155149266484284649316479764187539164819797253481111516721465310572162610629569602583566487763652284185353403069038281804986230302182587640313548324577363735008661366682823449401915609805025086845004222653077203229240063188431759210183471250971670353493210322895450193650353345994619103797348232466454353222553230476872025282287743841217977380482373084125863583511579784550744522781309859540654444265377305115083198146582834252261242365615701656889965398698967145386297464732860297074403834984043461456679056178413232206642929165101346174763129918437153973676254613137024105520988086034250220488876679980682181175003218476910389303741525560596925387450407256753654809744953846777657783497797999339868492470277806055938710822877252067008973511456112646734234833566572473754920632616250852726262534278370484978524051487875608543975380759266313163886827691348769581693841041687087386255517652058237867010380858453071991782512729812829595995406935593378770345763502340127104960962134352484550209141548746346072916706921774440695045996875032390750939194337007963957217404618481308843688767184402331649999757002808247423659573955700967502909200483138462468867875343863265987472487169973092957435063241209643656761290361978573255007521575769003612745997639726407841047247734433723723665580309232399520820680860121959164627722513188868279470491658652583435971056950821736840991063842646353408303706746333892503415958396302505130518107234147037229075927058923948880449241881465037746502957017142709325831324742488128342568256525138829027892117354324812253226979734304536715711647363729822931853619970370269588932781407392711975961408419223344243096240225873580278988667879791703312564838407718418981142230653076107383206719482599054128903707144600025700026723837253250543937627614105731410286174612736832275516457876613923085537315525351445559604430158900090517394066974538427107294887548847167481630294889735656114025398674603726331095129335197558310271096768154552167565892306241312517299921617282143019787361324031098666350399967784072192428485833760765099880902758744930593295385149256487222039907516157614666937179844309896650391913714305111223606701346903817088212760485502670447060726780111559559544946914307932192112489715759407713948622229567488702483624203401840551361908775551183952599610474316218245232782735599247591608761812570302192913101729778323969762161535284077481613423770713519123387534320756625053329620613263557357376648504856754050552235308254662487987931618417795806170642707652707216801162476784289766656443479731042886680480475213452432441665074495104044529031896053607710611080895662481061567640145946284669060923771112955118068644065566877939356807361024773012834117266860356914783540423713203622991752659730190772701342739758780915315710950683038489252906104212421533548538748396806076620322778265052537231265809538905386652133031080106362563414068878616084667580057119655494183232799769869017103275452283922995074111686968336150782907640695702598007677308748205952047190418231163833280602423048026222126894642232180738248280726899977897325293249409581911524845082566257464773739168356379570164582314591802194851811421974038277484079651238065174206438543337212929663428118038505015080916206287625063231544828490566843629024850797495312469209998168754527945986660467378826301756954308674142670291677620088673492195130224427060532716388613855771399562403068103907452115042828834901016574658430792897139412473280376565029756793829523488239409157626230086094828190366045671515269366558209067965805886985577899784230559980401413578238585237573528204145754260507112507856102858694645970485295693353374403741515068471725481537608988216331640294474054439540368414899310115895442614152788305066619199612405081337890515576934754696138415604438198536606168022216531050853062286593955481777574488827162092099096308417033250994849329999012557709454861672140478103421754465900309582602711295143271249914803630105122722499668725887417292388688261927503403238499704965994638326576942557153529618908106280418309922624654697015561831301544068423527950637833117366848006217158955504570139986824886341263032717853063537735461302334799822543420617516522251373806914650682495097848797753528509159374366338398001777879451491984215842316812506650020534531576684135587885160029455155919900586062122944279457427177663523473077438241339666597342644890985255087204676444488986595517779921671237043375342182410520236426818809440002098684964291321321971521235057709222199534060074886473421074590372935677545927124078308100050824034424288711816200994219398302909308681107588445518255872706919563110964995997951204910788834551615629509119042783316535836998685814365041163528026438519069701680440392735875297213350993175470836710729917036992547891848195000630098538090899028998793875460373496512753698527808354098070918313909946520094221177761883004520380846141082122280218139140766553269335207862664264159846363231268104811654464887661704857515033373835833840599202155208672323224556061637522744958756464503331159387388735549648813332540785284360991925338193916947253593378624401432210763317753160195442559761948303074866265512991472924505819277127904015622441942091225596291053494636615802447719436199030084896302304685655929996514828587980631943065054285071693139401774866225523375153942090703091567238612509333456988641993587697188776535109063079364106417371724773586825275643278901278441631858068615021950124106487268733897534646973009119204635703621186176969734689670778007200330523435756996860016485292479312531629025506876772797156934165696353486454301823908590444003471502332063608512052812884094731276354770651100580790773532495509231688941351610680204749665421271365576201296729864966169210351028752932569778799154587221452891698088958889977018819662935865327976494698407977383034197314546220594096204384359728347036421916803288742559342682045658441977630977516665532533483193112438226891842419359416861772257890471597845226891498030277162017955658768596179176903815207151597719422211105748405328566311524506435293362152656139966241576517966252116710906981427381369244165310120957968574958022803656231768940231147606228568612140285067364427358879428862391212775849211090215032533888976292622453652414280512085366900081375762756435373163188638573059215421637820610888568784870742211627371603340364417314173927918055176839750646931309040084548517720659734399203997415171848085131312401280961440403743957563229640201697054634552548698058558040426510334954297242980663118184494820357760831259258999968171131767962087579804287840939413277533830507862943671648544795699271580342060578692553019988246891562028364414111092297044009657343723766250129472064426149258522340830641989512940059165941642911768717213888108998934615216962311928766806719689308188230199838015281793846195493455409575236209586842138148430054605014455094572987268967731706605153671321074560548491618831924163530363780359547631187016486116082814172118151944543367352887903495848739905092606078445582210787171842918643503082756804425157939907946917596822311089784179803703422709610786308770963580504928190065422831335996312008430988757931153771064298134266543813292387220884739111159480715023818191586853105947762354546091547099901578814288572430012830935534144126228391868346077708855682915006390985019554635640335051684675113357962695572418045642093745461933566492034487998963563911376739529034350873903084994835389749378667350802592328215365192430937337775463803891758041324703677761428171624646965465095240206271317319413135062631017228248590388176833991580863988540229266731966422327821009546847745850719769755199159529881911181442279648882399362160513399388197429001640156856238988420734166164602723138263079458442720606738057454298936222584735917336249341352712061214739279099753308942708555611204703855816890338714639731329870465489148928714233543957189731481321887498910079136020401509026902334858505451282200887300363455839890399348769510566972618672911604235052584599425025593107070046641474832354954004300820695323636578893361977243513108581573826017867421649033614833013949449151863489357441720987513600499291140178018473773679860414600463770855901002070491339368469967631402320341640941735779273160228588869092128718945724025377987234187599433146355611031292487977197798467244334757477503255731140659997352809845973596359362441475032457014500593982147241267382546635592702361608489229189399548439345773308087835152117797921311053655955450231309629090723790913164534232332509986874967913495033563063318218964701339219811580076217825277698862879043327010234956123406818999241837263708469374964982660611166988641887392733702118748076579526726474566373804706776909438422448801216236500928797260420871883330765921211284825211222493363261827179497801719329523286726260418803458332321840965624793794631310785546721136471829052811103895249811630254119534814960935518827970077738415058501011940849061645653740858795228261915648029769802409800787295389096575004948120356775363216845326821807129534784977007320797570366047656356666651963869257473282758727387949792305401087227550707859863845213981136150180033650659629187672506785596886695387654104455508588496485384357586331325035713763624842835130453282176961806759650579712943216209773506022350197325958119575064196377935518583744725165484082324464544963920719280866683344810187886819808404511133056970209166407902296753305607579317582004630183767360076601867467077837422362549912967373198289829366663952359049693385643510253389072540640434444047509002618273849909960720689257365803473023974108748545001754764582284836501576767663965650480832600225998846843078440077128445508351608963590396102358600126296766242972160954800368824426427107577291127044277684806383921962073908263591142237324146163656695006154828408323579386946082716139949804941043278396945222634737735853982766794157798069149044034990947229976867259746914410117661531433373118103180850201172139416998555434634928629761651371539792038425009137144752166201313381515456204611911631077020294719732717121835517632705813289033668588838699062596155728370922948724673536139085854954790830668631621387936779704071721492372671892272212757270911130417277468750837461422108868240708632363815423001799408135097141879885393957256209071830287648390360076821097523021802749937072948184084471563560938460879185693901280453582735202658147928641181967516030966780927757627623722444966652995748202075942579059340193489251058084865534723417957671756638587421130071732742298295673228367025424706522972596931510930325554424859541018976630627974684605766253006865269861772954252602107042043415707141816886776717888659923833958799612618025714299115072700365610979743868840964474030560790508268332102682356418686800862126967991033682140537411267748667526845270171025527202627900566027789334236452635797376918751161200074821734775809985433292340083660204241520110346117588656118652315464755368606758097894921878925414948143305506236702757115438374064109321431746575403884080808674311632458123564309625859642250265308530273445722541983982307805527196885660207284042132146022928595560274885659939499689202753588277424304401824818813478573190412206945368705980070617079872060860526913661744691339510974516757140456787480520356237845173063001218003440532255567615337968077280975304920864807218834413401047241685173043556753734049065897901472018675174714042718085821044860945698570405471564714403739408703048301613963258654683412749596553975973708394586603615619509561809445191684047019638357516213290686572111525343128811652240938039949912445535650800554198769773725540655478853831983040815921996186758696548302040342796484448875635049705944463803267056522149396372885953959436142592266859778188404860430452702218496625386647351626759761841590186843732386505442020078721234271568885873237166582137089469891593323578211161283450365604482358615699669893072203390864792333516766332064538627922213038453442289600973503275357429416871199827949781491057351564067024371495543469225059966354654202831880444901271340299877820134941016311978798007648990473685912762133982194224481983824489692568744528196970022204913767851968668516453475905629403795211990887996406587535112401296128443330599122349276181349685961396149962453995328011590921722701668497649434635577934353821838792079872661264316508420248814965270016875677493916885871889068849289160356334986121508024691773476370955400841452027674744060008284860136101846894269331185749149252596444055841078793742981651623747180715996502212902231139960657801173732994817348721880660780839879576394234341873522467322618969454590481943048964856696451467391805268257675490032361504203206601072467901013377459255343519899999972479025302275674016637763173185043592263248282581639732338979268960407806966710190184287827378554512844366278858137371584601334502876368110899897526955860744004040088366256104292595836281561950361397380035170993969146618899818350087983873880970624423143367326421154068596961179751391426140243111324338925299122337152774607622958569785583735963494491622379288063192771062044907639257267103988997996372572132771426719123960465590124544709533255592939609170592407910623974654010105100044719309042549589272628020607591993964556835268541264452237217277075461315886593802706878203594074434993216950295976205910271399332051085520956851547240421731099204681689119408389391099875385320332823188013859500187697988369311945860447494378675551427576725996069470073906174018040523568346302036832650025079551550984247251005940507164140434183380810951035896242723154452083450307275448952749497137023901659756152759614642578806884704727692625007137231604625065146618260622690575234928009795365935020496094230495977055505942269577547136657512939759940681854579877492704792311026686521904292223097334870178264474756078116574478064684734650803008895295260647340499271341404046575674809423008239090037732335164202749907120875625512533435242465343961247781703769057227158036838027161054009309007390227290538661651799372880889818155581592343550401736525977819156407029629876323767103148122105295909989799772987418087319552848164281135908864566915024621429184347868471486034803943114831955301499931704803193101104699952909303515275912984969023662110875003188351635263919213180111398586031382378298514898091505663179770708481244767170235548192259643141093453534119515281139278288537951985033641493417617578749900136258455711139512716281916126477677018716284960484897610324386354892887301446092665141017197577516952659444501388890771091833285834490956469815335107396738163005203179439837415214778730520348548822374368436583179307883812300261043206654359181982819326845033746950745383221585233583287429514469602554810646495600706398205155824725123168368748070205803468208793058340135079510295265915357715510908245526062103859868571210256509039765701637202111313319907516359920047470654836668174300017452817663123495604454184219118544886959422334934427123611422643266101540713713913656373120476336377402053077626549298330440619990506667581124785284630521417552372004584301175743142421869743697816567576268666030094646899515714695894272333833091988756527611232599485534224230420916830969582160940461404361129262266735777434683558423810953045916815744647501613991613437991376455189199156844310538599641120633351543398165239126446131060561761605500361863601591996035213060616667769286543922706885022082849182227285186660684020615680580111154128164332345380138708336605168612185596264641340987442931165106271756698717371039416280510292202049375234760290359375849721246887028630178313465934270343869820877738429180814605685999846863890075288078830579694268779114357021586280197486388223048063026163467855993190171034156695664380104238904869320347115613896345132564570184435282253565624533593045473961448961081885698575388849780348199458792684616290528949794856666442012828189123739887981543626132772707861240984645159710418263466581774220084619207309032701314362465853180197019918578590024202459602664455618169874273661831371190437880843619949913238651305860583445976139485344614772688326582706354506075460598505108052204390579943713370021627917339497097479107114023228605780134530400230751865080585058208079568079278940145393063903859451660180912569149451729597210244573358153044515338259195026418870908401749146142041545706111594127629267399103830253783050588982171040826415040310005505174820553557926176924398277476893821557187943254074361605198101865381383054311781639290982433792773273175172653816419261525087986212787315342587590033550651711088120840255110271307008949813910159904704474440061591660443581127680485863819868879601248862932671621477606185196807171307512293373456173711891169944962211719566817352060774937998914336206281827391170468146970429096086260754010823446871460462678831964249296915033929910060586940275984062491738925968469871646669182741052149196173478391669256560719486527935295295574867756371979705286688550029180220741049711802013633024473761280422746415570584113219921108821168240021217862273737691320436956767040187314552814727475166891998562053401903693260630539217899977274091651381391633542884000817640384567722877164751653554593138427330325392972767004854261277271421775027304993749828458980377518342798473602522678558927065337190916195275975724732395204682358674285263858222991716275886014229917656685435943235370125551011643253833704563854515127256884222116765528458781571629861375024797032794102244540009018361669986153544343591884398339842971595331835169180911526649016533784998264581575885882478557402156473544284766592820081678635185642237789522372590244687740258030097960903041597358772690165870184575291397175245765998006463716976886484379474895765038900183167828311922091834766130553467684046984039300307201535318626912705888541325075798720227862416741008422506624304407858237969910006557437196210393359313240602193841293426802805587517731778798411423891820734252814474756241768259218115156123064690146236557505629365020225374580059139929481020985977596617651106799071176639264518184238455058793158971557505295048262845395529532760754521490476094991669608566882824564910448679234663962139190360803687288097944809305803403157306564476375012137295402530345587797676724044911595722744657132533288749069234404943142648800825694575689104001871215845473892919877265260827052818018529527916630096952218952226288137479594673958941301092930134195326618444905596453277504086416406829040459006538288995439333167790279408638648709694674934059189297766260977866892506416655698306550920666692630335070911922945710117391065247036431703216378142309595078303847055300113158904404631249533349924844630131754050870993720412109682220175655161438590013041101904026331562179748675458280154542621749426516293099866452924398252993622682819912588112893105475455892119114002005965064106803973479347590055440622360696692552117861461971732008359627051305044275435363551244936599031434640752959217034874972331047908975892636187037067439791951307080407746363104238172981147519006022754562968890037025631440472181544735269462619508639862804095080196660650036757753824197700920301935485542496819892052751555272224145815502998587764016601841615819024352912461932381440052447493157981609044439979284371455845183907782796627265489034858749251345932220426367948142758835993477167826458631425088060357303640426133398829296100823927933354728486796457726523661826995822078434715066057476080341115978860918059094776619732414636544702925413543554863294990095199901084644234414587142893579568260132435851740885210981496400215556630291791381471329936563049755889102182507900075459608343811572941261376640423269669902244945858896130090828145219173116984100975769271713139881174600066732847813244776669543667314313948683956739811957798630780435011545927799278123778999887212549956957202678991906752720999279375702319624686277326102625714592590245402403391046034637813409181338417027590088490013320564951030898909918520294470791611645361246872455264044675440521938052795159197787724652362054199637131518726808399396408046286211923369670147477433383765386142517794823778453068795676162932841256438200296508342006303860270444070951462427417522127243155575343029110306902053442028756389304568492857843993856313803364022320532784157933495190795592923849159834705543866553333680840682481391710167392373935128674712727356371102709781529829504026169917504554231209214718024994017561148259670579538976414955507838281541237768178041787540687756924361408594910613001922860355749389144407705467312980677893512576172238012744131412414019087360309250248102188615593623417144604993733808704014134529767095259232936701211892441651736401341806611242533476053444636215346949275443102687466542598706324675372037333602525089541877788122757927724542880153158170649192207015529819278712128220770574659285564790142403351208480005529196914373938714581304122696291930777710580360373820494370187065658376569823358071599325025843059676112224797082801644553907574021647767072847929451767094876557146813870107805121869222483352719052960356291260896136606891550588906937322730171148343003681316178284725219329087707334509329901090630953503152025935530729302635512809881217290082934765297836846181736818417174207374028164817200363140769573338961933797087262635070914355943126746068699040073907834225349711832797876119182550915536136284135265866109293830048678986597144185941239135724698907789845725337087809380613152075294908349703181442010355903265086642277891758871931175221956025965941002444205165563858806526035635276674707899667654390474464847112930348572598221719234235942983547927634733278002086020677364445689781415645241689294540994011928613862428804701226035586419669140447908268538696601067883662382858453989593405058393028552544858563139314189736476393386658151260253600466129233145600868352882392815907008312310274022838115104562008795491458117400178810054241893601786850439506678702670572460323414104893027820788291383275939279389410020366946527145732597833066888833249273881482895552499600378923748910773167699174312540731013068051637221597384404580268177540994049466268943988118252177839658853324798598687230147268272272895256431953232688926391575431177478116511087287613997378387487730258155681352280113928569583279265315590940401700495125465608726624918126897737525837422636182565042738539180156195844334073904990230826189413968365226167156204614115329291339603140382811913863228257778582581330967025578138456437659215243324226835399793627028459312369028636003738657511253162874457365481822828862137486929053436486594407264241452164963986809496208245708181577702840524256029570492301844115474745647403320908291585734205792136145067352321157672693122434429655575244111129951420465861321586516449853234646911134343783085428243350893643695989432053506824615323581256796056624890922860455647182013955896928931009120831261997713267303750207836773767888094437354637735547227725530403446400816570514787452792950587959214383341696001918566686798850255929129855365268164143010379704275280359977896034455175976640941238239730661870406452706363708148106424513927122717158037775754227615942220204628160265940911785108462624303766153592597014036674216751713475601761571438262160438658918921955120376308859485980345156186419229341690097646251470522194331138089062487383050837648556664522753544943394259716590392960374158883327416772050493301333947691595558489647920606681887025021197263557476783881606094016412244552197334116677984698493995515073019978205406136745933735808465033764634631975481780299738172264485690670839367278721006681209490802205282801637002414408034984146529325369062090226085059710590154700444435969443536562105409709709849650863017594748729618297426403203991288480405771942807698651586824136462448595371181867692977859661178760237824433170834452670678811122414132473178689266094806654565973993964200647547907083217006046288954942880744152006556642926757641573909838915449509515398151405094490128314042085490683501591554053546703974792940547728057541396282997605003039152471715176334414807980069797173376104426818716453657247019077529784921152930032209181865129940573919196222586104994226130797628857734968374139899908551692893364709472075533398995682072065818591950150619654269431362645355491241040083252310056177610052673187804475674981074334765083726643941035405000774762395503664629120595545965729113306365955047542922558187852228428298522244860716657833202953740908475076299293947099712911196211459624909505605310279803782112283530656455276690744094116162384793908578811699846816997035932980278413603923092829077201693640452201304553689576430719094961134190426168462469983306128987620337439036583149200711553938769242285672372057869172939134722539471332344418745905864276443495086307001670406829825930531648692025243452091201063594143291775445709925181523622016728690058687214619791174003368754575532856308754416289778569378677576767359298243999344234647437914739381469293193685517202162966713434875315997978542203435378250204584973331095406234627418721795062794433915958852121685121043223347157777914048815681107728652416159930216868754011074828885782807747126318110461885678070794583748319724797276115754885314530381971326314055844018314445334869254624873177408490524483925407838541620911624663055000411949222096971292565200948924089742174894350890292399294736603052755158735667076203279613435226017597333400616489601128199718882970643806046178415425057617454636984955218623109589771482803115826615580207028754193720684101917909215606036453576348037544784110270260921061608964482652770527925465846984905565408069056927628138999171819981973068338850250204143009314740031752716376178702665215233332506640446010430452672025157534293684114227653149202851804457561425116739765080837664299954283316442747336376253560165092733344811072864098044158498021293030194690777629718939337616887193621326545908184645803927110315745836979616626813694778564473965141751187758036156652358706282074288746448523041451944346896353284575451026367788245109143268243619036282516191721300371525568851521882022460827058781876524444895150092114372373579848271375732073173315999457033029925716685334068964632737484851970329034444578015445334473815494195442826416118320817318742528317270678802504264161445521154192171350163953572407253821535459597573661314219013194398121564192627439559373371610912237771749569794468268711291132494619308813350965220689597067201151986781142700681618186449516781306829112685672791254387614992798893829827020946133107534120982640582777332906256550815054741213110690974369234679861036786984701113312698072543041274662255107735779917305110674204740159976026855571341812239929591040418207192158661981528071361549650434193881214526743435906383817340241055797388037469719691712210093041141395409371502804142820161093892809865549218244275468890206608241970704697749685755234673087218738429081556396926881761594304053295577334456739865281541126432884848974861478482931098488892470264690928943614771776872620776321294748872911166510991298792459247863244102644808561175131747854764205453301981809119907259035951770252021353805146299346503086596837363892420417797505000455770827023227289649040838774186344061141433241672768515015978553562083437750908053123848611077088541143335002015705338803731235765244079635287845097852472634018108603516550895032563147130746278455424263671563341709620633274506861735342236269597559256165220354412407237098276016472249196313699081666375925869456262400356782207203342126092898664879929353716735449634244106656444552036135928858206559675251683205494475757334669718104668118257672819325405168899729701361236842308195716771134372562495525576955842051285637477881826604626050882816599412928943939864382026597206085831447997220679586611522927684036465479438716693154049890415516720281596210974000087202201620381971213856114563155513982899906535479274425729893340711871456200208038200801844824818969831742186553526375300094731935830344542193376080979568806437820597656636322312352551953021465652312314479509866764640330324560674117145314728247386629233612886674606642552188773033754113755003480168025040701962941722078706370249187063644242276481101598017942921562254624108269483331602729359128164757280423005179795561420858373253999928497407737767013505355881560755035998327168006885422339509562012003680236474209417669097441269899540491434064249733100803210252285682152696726239901945559190825554237641422538281701352433144115762415642118341927613695634914846152753223928488290856978288800942926232934735671838117964471474393982151995039647407310707263157687623462134498793016706105905315236196565809398701756427816696572087621182859786550299175111633427532981101558625954160064028507072078567991740019690302655759130654943442629851470444693765661331644147439260223389084700083471324811015422019332919417363998324979977458923821415307598209315047308268838401691891170106032015854284458392328835597326397470144482731189854885213191365521753186323617846120494895602915337871415122323616340198643763885212115536055831656688275089940735598554764426839720099446921597438150420053986033131181447840266801846237504235778630381775280316294569439516208811178771079379078149206799868859612994377392762411021401743961273605474033946715818303821420254459741398661655473540477923496240115308496517134206614141079591102572595571172380806796266377160877493629558307793503346229958872051607635424742229763791639613626343845617219056816695131287908260130582036499115172081778408277433875249236331367422239200070698734983980001821697827018067710037298618587475709015424612497016176905349092467603805568529897553094775299199754939308081261013877653970086624768597744199064803183928152290422689043554274632276707062359076652902305045920940447545600314858269566021065243738786911950650204619663451010216725509761401522223263769786259020292903446579150620798021494620228784114595298699910090248676095134063647723486474479796911976928373641276624668080564264885177935249044512997643322595959943175630581895152770191705969059193246914813014176911535755225133178163404729775127754899349743929627911135289337060431943162231587630947512190717358081016305877971831367534070354709944697585202812510086697228056089823332278563082872037443126757650244921200206954292373589304582809984765638569786801768217416237727263521190525987392334006668354854555569237037168222241760614419278676968501236111507687872343532499004577756695190164143474855386903465867943045039297946500126985224279325034502419345741653662820506925996322052829014465294748321768670573538425367203963791029595009645051823590431960971944135925241768106382648314074209015555960455362667287146596286302927484690836780151355577322689177937223112962338149695262004904716219273713417399784053673893550619128751739439395780619700400875890451423305042902273434806616358718653894210555723014004628484417539182306040247922718959138527388749965075709477210427365006579828089176212696594497587465337797058542229774478633883232803108885086038875501221920456617873663353917043182026060057030446200120599997865358481521361617605350065444713376044350303290402007862211253750757474585559097964761527356056714781240249482496715204540632680255257169563408972916636583266936462202857728781656250195077730137865189253046459253986881910566120826036973216861347619637301490488745265735352453002067664304536353643881213218318780258686511794104617638638280711350406622547659321760628699795139830179386704827414026116103132510447824274351502285234467409808804667611375247841523083385012565926847844608620184931296207347864449111583965514918311731366243790461863179025248501505853981578134946697109029109913145697032344109657853618211152958603450081446444188391944785861396371870785501056211978461849429904239909570771924416649947431972195361445458274419143170181967103537326433048764529438503837057069978419506080249942747090621208866136012663242513839810559411761735530321812669440103167736338794575491301404335412191451783130048368796978546075797445672966162446304488655086301816140398536090945826718555416817277530356164258302388024156122334923838046920400264572044080779154221354059513928384986090723940679005570485319760345680070471186993302674962867086497333961019021698737734757541430573925643725182509709271150967090282127322046783126377734615540642765541107062227947301801053028581288441394887225198593147520033476749619444847380265601618880190597741404989383803194537502701253047545737976652474605549483429105245988389203664522852246086273715317628166286640860673654852233118454406046634254432704036323886759814285985056045133410363293590856808722553847057878577575540883704260696280612653753256246637572537272339932588803429932408562046670134208997311378405094609512994320099534777094413715919504545108576924535061985941452396933665995340626996342435417683650653313113764231493563623177354763856075852073794089430027219510885689315182864359638573893621585109257892614173006452049421044621987945800651034648313731340300808985794219158583465827556522104010610955662864004941931053168771322492236718056773654847871761370221769082035167855669873398890996548961953118397879477567571973504968916197485864946396734949000636748965952873758036731561311366235979904037879447666318516970917697218685386857337149124140835302308220161728626384814867373221421337925140989187184888439564227840390473465297759072460292957885171824470633044295213350789441591700533422741203770576842434803447439176176840128559515506528892240981996255620507645993125864647852558095168012554127593325043434047540340898511424601860581372114381075768063869341248669363320869510816976592782740126001185931584978277541841383331924165145292607358910782025748498186672155541275343773799474981153702187800301749748884679255206193698931947242627724540984287418101182080983122711777568871509348801767182429048237450970190160623768464460467388394355705420172064890263039593354336199982940766559140581492453271461547718237343367892248174914797127652242306384759560052869361218462886637267846710040242317397347930461045523606514062626827799589654372498830841856094537216797495122252885621152271198154600933653254815950684063943787220217228044203551006707462310117738814584047391589732200124612585115327226540708650491557393152028332007340865074176323170196262038205311403890351505228917682951058018224636630462721486738568794375117929085823173088634113094148526311666737101236757986725368266837830056352147758663637662417383391692020969992760550471609299258673101415039528038962941150436271331861824088870913538681347445716685339901260051315142856721213975239437402715501829596421241001495856825555850782532209309391349059335422339149586814631368879836546120491581624725827926320190932679765010564276504799191407020047492781416957309033765121612359986302738596383299129474496329449552459886275453543189310593710492820057458908220649650006610155833358174790330252830645745172602974729321398747569336422645437522691488486269720669330682489350475084475173654592024223011480526365084336320373533109224500195951211853711919861670366453019669418322547652798037426453475940685062607619991809772841734971720929713857752894406460332317247509569173220544015010965193174451002131689651951989826123044864541287065381812809734427868216028512672784865036167168870650579165488802712733503502929633487471530551537445513252834236170940168646291953632369541907718104363272966038023104800373297151325900075051988429025570796151056600319558708441057246285243000841121962830963573723791220459847525936938025597816927304246806308457284548050194798402094562559910652770258079362643131912518012671647704114615667592417428180537020411495699990906105225371111524910872555875020405718273131690448418711739873035627766667331345523296508673235757093721383627225919937618336889567858998639136248506365822730645015372812712322312133145317253448995333973881068023047281362484860591888895649671439821359822677189835468524526965505105110382472485901040163922391968640552225017745338318322788150182860848603551006372415800672375411355948601870688850318570342810642314788758544594917829592775924157812139195947592272886392028795921247387751756324226533781864024910060897932029315445162843095146694387115673226446824568848975792193995673391725309242247238275140795669890918714890921405458531063583466495039576533363684619331619086123796188991914666715007118551068092004166156199945592573885555100412932376593988293061963504063819989558479025324091436152662612548901144705854323663096198244993935279698679701342735285454614181194284521431935765389550427252839205499840840535914021898975169159570953407093229403719244752885532920402334871114857546659365314087642086805404300806796548547667206491668534452831849403387193877567613434531545306972228912586424126927153438826247980313429463906980131531611744144794443807010309302991594051190507404257537717457070263950928600781475096514375375643583694028494272860338278952028210783128717066107732606952338808244296723428360161526741364825339407761593283773588878012235036664228669091169896237720657111856856624418371972911026185692072245509231683592026027939980040051970824159626851837620613803295243924551098709426256010697723999369799946380280131462357449992738551346796107511794382516232635852604774156947296017106572221815645060306572041788580779156440670804406003960069826943379937301171415631667219284293045265614947073889864861657044206125350129031867240796549684496203408123297022228128438972061538696284329247138597810355278208168078166278781820213657427878063199953361335661185487475544830793028691306373640997102346069268802428015823479887873799544938933252008082477583105366578497958212585285080510523752930512829242873243288365666616035040533988847486508904539989949408055305143177816145131060738879649771390740019506409441434406851742094007703903114768176835828882941215461012876378186537824888248012597377618591970744753324825557788564945641259184030884962304352036907528340400807871801866557665951574829511099548306003156285945580285583007694706738814866134573823772227402084144014173364242007460022291218885371312436495244668986040039580466153954289891751287075691630877225037344058461329827287212550030958447707751200126509226681815784353788739558401317378752001054666573810895098053922672042880954666638324903064180968551903967146913821879939424780769970094757707357101707526926668205641800701930519377742380071025433859051649174292266346448880731171900881036755677831747492671519473999068719175251463151998872953982084030314524377797818410193562696230838346760998286726468011339730664397778575769987373333065467996370305912821588640936413152322558544835353472498533026620194787600210789869349890413962744378919391315377952518611775079649004818305165522736368356133120862467658686545327951836935452206419909571333493945484149139948525472291030893305226890068244963535440474362861081084580013963288925055316365263868573067438647241360962602718773363554428570556585303212469226796369871287243898914395550859215762900464460076795349265484291168202565044457266344042136348902731874239911370132926149222957141883132879605098737174551175578311450044617307679829293850297079337414961458501284041567764277066711591876269682471322699524768151452528906194483066759449202475882079572552551875832635672733083846069865865397117477049011427372945508915191436432213562206737903592807631838949021821856009443531948008861432107004515314118844413161979555857056309723443193918357012916430138729357265425217668594427471704982087595001231169871634671622303200195288304472320607321419373155438368254822632812933549857250974286846415800544614266880493990169106432301948209481795486790039787334414660832392298083409222682028975724987798895742209475264307462314756227962623252448850341627884141276428434283626387983156196873422934187298359723367978549129833850748428991752690902472058863442518520788497601353266022844685175289533132801925144241598958774972346927786463453450978804380047425625163184293023947290448265701250187016519495906670701256367569508307060786433783888237638748143012904355492109974871736362906557953134104898913746801495961982579641641443888614045029498968759283393797711347889853389778623768987843403291939533301144707070245524497581680112971255186684461650941032542790897280963781236797251654501646426806379324396792005322151350504834281351884548271300247071293218003850302365933470317595635530000495607190224141843983872783534479935937287195748880292762345333096041124471671984930249070698268692314173793687681324107754265334199177101359019462466750363375874447167852568358956319604010332459406534210246115488900477463247732787122352416165590922305371733468604369994092505794560231203249087210839759749244814232662608051159171787275851882855142926437121671656967531720771597397108316774259782713337511791846562640589832057243275204803492562441172674414568687933000432526022930384670565784677971360896951841241951619488249775850988736494396477828810802658665729492030705314069843990646879596749826357516186140812085162078829360618442834503073433803293284939604845563886040162983045085044104974641857003616630683501112287767331756123618387024332160437965504987998296647348545915021373810820488614752999699186950742574123777318789876391732480689590101874786646360795793054407588773722781362214088298057943420816957421502337373248135373272054972457192462071501496789870731990992957579676921951327562798031999062619676899006120502123714307984681115824182853811693906337249818843194712284070050935088333441553331996248111732782888884671058292753792597275261201783471676621170259627659449856285819449588244316374365968955428009517769507140636505265940568416756513784246051838033755478248602546139356259298194175353236362931125622083357746288682472758067508443692115211820366686727261636689678057251037761813396326170303962057016582265978290591369066206400868470071375139047012719292807998922862206778263972442683024040408385316777032309198326883347139511560526487018815156807868559597583095129818485905684789412427028350116349193999085796797522804417469646869903001990449996793574963635985055369291616692025872736974645330972917399428794217076671604650003245134958884609579124752968272656177763737707271460073244886344632114244867225547236729987922382965003787097939332190075004242180369005688039842037191360152504305037833868224817217029172371549748178054406840847391979416873294503842061271812341024561340166373115005434708856409018080601155683859282651040144108319214520649745250929470375230788851137487039302513237590257714472645787558223512707124505917839466104227563999546581713256405966197907621565266033048430357759248047803901710679667201594286581258995593652728114385632745258920619326965553806757526843595396987303045824067206467712722008205635781408037009552987565781051334533678058239522027895091168315737461565050164217967653485412139345886750993864432418643265529027973318118412534828262825619225520225072124410834087007425540981592189517158348519803709260001188786047910448215724680364868380348118115592922564653837189097320090046978409834041125511867036634437285254042909158254275714989502057865459100235051806500780110999666057860347454826696940334741831790402486038705654227824927805599956049685640546257466856983146218686745555192822087790818003704063514979575745780646915570864855979686327235215410197909622479397754350231641542381612220487917807105480973600398419243200702924237488698390854981952649557735145024573801768515133104294686715698189654185656351983593810408297560037941455018992369286510081417672942066109239064766702586928768223711321562375934322080952772011682639941081914816625977688182126419943739582900441039990715088097489971531913666730657544925105972307261604272361975574133112820270781491745279140023011035272573151602798698300102424333438595100909629801226040750950019518797987095223994619507863643347019706915189091788734759412950548997499166492425001349261036753786980189526652131295575340550999191029975290661251773849129863620729908059356096371362910055374434559548715151487002852430878059789439818287458149616274489125985488006914575164309064394062348690592941126295443346361019421429966746204392358849603505356051994991031634155847479665030464717880527391093510359899543470805260099864040057091333227110589521731833756115430597215223707424469208763595500373830754281401399961664140787102856011150334197141732445340746318488527748994446621158506478900313720447519341582930231443081304605267797274624195261598229454203975272682987565447949143165767021740241894743275001182789496009286926057890193115824593703720807574230374790569491703308975717694967284459468262972899533250795667296112338641413770780631461466476088683190474545773826112857330919863695144028789760895572747082635210092911519282841485587366871994056093551990946212555617798096588033791471460016256287617484276645892955629014904454563403759096058666815243807370914025555171978863537728679003692084037123972642041574479953576072797749369655171587922492873018051517346110912050344179498535634175449634450136236681720202330774190380247494126273639278674510681914795287213986509765288310245312084963739929643657784797879671615929601469305749336621155580958360176736322465796513333015324602144062583893701142143217958926424494824535324927869934317074950511528280605549878760828463028128354752330522949587072043407796196517400963321922786579930280346477814260918874636769247325545450917084504326193803164616171475150978976628514027592832233338936518798150549423722786231009428845576586979001948007077668603783732607111011880903217566490469325603560885788038679310180656781192437027475735712943007380368727771072525004708484480131920025031206471194076263154707029001792702063956481009828182222671026632473956285690399143402227393733073899400805061483628246892618945012854900358738091162541553341203421952677057385165423955237567926989688662517929765534096529018291844021998065536110140794796902799478183218654341253726255640903092909635727247829051250849851944796880577560374884145775561450346952078044530574672328626793900132584262313562719954757121751042090918782267908982680888054751337508563497104351197500396193443057277925268911291059934744257332649886078672689400979588506120238926669391940076514683344475920421967655778622931277433974411595613265365887432807050405867194348629822041177334773612215244727280254341183984982560403885507917490702239765642639234705158147146377115136784088932025121309120266965323494446526826942615870084071270138930735812874673301300114913557046002293001226869792774185739100436585592638053670139380830981345274877183906383188060387331204001001306113354928299898043832666354719930347978660547478605782925247054090558746346648782385939432528063532433740716905754181399255675268298842336770311832778418608823784849521941315063098387231204906902042721005224028792461819549297655201599510328845776439012572495132840760487824819950877780630638279620403095182116210679462766643945590425415630314180627339946058086868472733381692331364195170334863301008709279009050889025145555795213435359835927669218127256326883962779493834946659750915943032103651180409985253105789032513725085949078521641133147820704919027246488343242935915442673001607342137845249146795083999612419090937782691730724150456908882412809281112395309449124150496038676793991751830224271594261369139413759362231397216325138157041199523207533444826822202208658336421183065134262858904555071392574458789212837728071978249336730618596739330294295018970185964614179246894459409089809344633208592905980790725678893284680841023850056372464345830211601748632301330256951034505504839001601443920580718955009394717072111736643083220301577429847584619723065079837791518103674081503284948533417347794532576894823623957907866118881634206342287265291824450169743056552918566592679974439938805337680857907408682685958868325151877093332389770012634112193957428464689877769374614287965553578325050247124844307535660982689364871126856374672581379677134519094710507807591921450719853661879378623566291578373521535827610756647873778981020316901770779887014479107169143804858023531208216441387940800761494052682002167516345741321462976567840784720620100601935929370757418044160118596872109180990863001580239945350947597809831044639682970077228706937080716720664957360939322009147249915523408678486920414996756538519584998629098923300507823534067543532056266932371097056665400491751430819975913198607006526546603833704342472553739975317313678132028690750761031021517721688551831480186278501446887549287802543213203500828949982240387284509988260943922875817094356076639983952835288328172613168205319282141026588558787524949460931206560908816425208100763559989946869837387439957923143961664530221437040177370130414756646327894898609812182977645386158144338231937705371410634387353820205429360094878252549394400178849514924867453419204638968220161522411452099097533651823243883311688248022432180174067487584867502261458459520119808278220710344039381732561933921555977892103741409837838169512856323951617531610561602688175810818061045823551400692426460528200009115297120269514023167085582333202698824361823049098409525322740005144723606594372688697094414447559057682951240211188250040952351005664182556976220240005288452221187359523033320883518185875696292831995284126610955072630950603221761554477829791935396191285323652407018718234073258619200016313298357626218934527389663242180138516854396633859800918268683244874898134024637181508475743012092137601546559267736207107198416931725483931656346974560482708967015570272252534475037665985444095191741765816546501169582611252198621500559262400512237761773717289754673027744122361472574070573114385243884942346133837899576984884815689392314174815726587768981375339152044026764528519315787882191913658071228072624468949119050933352664947319414758754936511129671594690246843167484751548800268574616917968548222297670847173851420961806312321761379103263334354620617233979203334720207262781856429442965994016195575942191628734838343541945521699344183706126318803635708526821725855792717406339141566256779404053858672142501873823295032709695800769858889658535300159148058411013973558452904648759129813541805567167933478472451367726558284463565704068580683343293013114188477038522547654029975789347440259244006788476585707130869913348378654821742337628693382674431097904170193333070316986420357295704251625870869845444201082348540527843374487087698384469198178357599063178437883853083833588631946857727094284359395719411532474829972535540790575070814751559708844675433570619114573196519647313485713879469042273680742238423777480442356249440542721295606413726235189350260457283429205143376121712143243276640155386712757313457185410046535827623254926383822113194101128544501809545829925763971895574486253526122948946795371984538502476521822974052368654275331534809199998780297221452393561231437526810658592061634993221799387619848706659238456356735005008291621410904113788521199586911849146183076884725406119339468549335517114637218946032287056701513294098585995876447819709941666241696216948019180217114140290279969252481530898756503182792796816292936131167931963391109548305215872341323827801616766784362854908021466328555165539122141891939046343155996666981642303490657074396231469004846072801756826616198229557587534211123084832053439706780571997442960685292989537349468994432819742324620581968705691476491218762218044271700777115670179152189515325989194989356584025840460932237423700092071564419165618382342491695864582288079243496536277863795648476867536229073514296056624452626139985518173946192434547688968016749918591296694914198985791166746006238201937207155601755119225563788720543330908524512979009975734537492202380512810773703185153422211205719720841765805944903952245650016813589215355727182830990573523853449240803786576252402847942554682305086189782738208035854012742789200162868762752864515777979589178961783363963126541405771674164509537979078389736024526419532796857590315847433841646167193600714476979866198920775389323557043802688805302227682359114840460569348354872944594265491323930770837524720996735398510957086503434106783549686639792321696696045398804169252408810661032595547008877333472123768608394289396864739353736496748058981551427393476152546841611721361131977634505637692295894736923738904102563472288683544958895985956255073562277031902608394056019876006784857743483887911107868489039761497915921451002709449984296618649510358043299418928058923533617235517865759069338893015344607814131701393678064676706799997911380964488617126130890369126701723387868895316259262041238366094799768977092425487923290506434782934127296305061253638553691416830373477076535918127048221434297124720719396182501651307390483268573939029083035647501624199885300170785763005600281098844859676169595084773275283567018928882057597475572765225271357309069833326414760053176419681169840333982882736337468841096072210899868365453731644506605932529083223146552638140849288193618199524985203339472042533140424589493483768444730358412449502611463281311749446581459444626912830686675487107306321004061188854457259218908721591976643280564526340215861078637749437703474604709347786639470672925105138693496193008971625383237968473877800163420300232752359524063756385920926175325893171153728965258984257042869702109791024037395212310240857647119230325745250759874259941109864888225497020091954925570876579195895502033510558067871515749234002472083535235259191331541829652366363956439202885018230624110724556844563878157164615347649980750287655369070123043561208243269974926202790980775974390747975643422754274360972502677691680997986387820651611844654824679642726574538834854630015587885275537036566810249066204384399527289929330351950434603201132767287694491357233887759501766354928166068391124868677600758096021092490190919307442001682976860743683799161501175329699144069158237912040544561108947147566732988430851455695271858198100060898349786022564520895030765072730892713374978727366670972593599055152632725009104169986732469818774581071292140386288305312515875262621485399125950768295205212652753371051727181050391965706685080408213433367483816798308036662578035109606272777719594666671340070228465662416661961862183935357636325597316994970790205814460497981606400656086439949767506284202934734167147914786563739773414807998792498525354633604567684267402015575379340756913822953954338634952580817437754831727262851755759333514996876472626041592753969737394185354981057252053726204718293892164516878481093926160804582572761839636981517282878815976908406879443422760453366630960634882681482799990804070408345608159995552358082193910877523052892315758710269635828808933103836293973564559567648359476768304653631192824067927884516543338427800016887310598203987023528152696007002963364781133412186684873296418190631954147409243293728776414654599854223377040888150693702465039624026553953990594819578850191746990826525691285162674896463968929047597832901813789183023021756101739119352875398097396106108496300524137281809610271115355084237654403686123299698202481614700484890371466078815513849860512713877758870498117223820148150597316398270836594118846328659238500833384552091903368540226341545293095456237172388317807010212643737445970845225946566590424641417228110801867730440824319244407376031832158932703562590083223451958371132594704920892741444303020546935387662985128990577151900880156720690410427673323415490900408218685590149166028443216539943446525569266761687303775170962123087143885599027894422666000676251002091107675599435781184816561570140281687196688532118797952995534309348441125859438114577908072189473262884094528679739287929695032258149677953548904581254734132486029333308238711545877575449979755049378505450497814049382491439579020173872375345523774712302510028049416528612341440650201584700329440112628360466585651903173747227027253302408262465152187561893063042029184558433509282266536220982547779261201423017684235273860079256871371976529217406739278916993303131735853974397257260305860645226738206649273482629879135513384780942568816720833291725321365957930541590786122625727755579376188474647811834403488297407069727794979593689521886100200122299592157616099424588579605432432558154377558597641954496662183527501024680207402693428797441860145303968692259635871633563625634898694239194822025599913991709802943282267794021185899276309335212941710028250424560555753403854884063555416497777668127541776176076551876009018361236231708152335838633467788109120067987437209713069656058504786955980050299664146968319598268288749617603922465347141431402036610893146289762132422034105654086740376036922719398882849090494720258247769796714670536427056797247060323882195791127496238486974975220161884669717518400750548668541814892813537635916400703019433403055215696342509939607723407671304597382043969946916830127992997265090076967563053239540454941810589699347906457106020505465409005040091787393572717856965606984985593438641154526657643842125040046997281451440577008395697265322371324070228625405052158069918910799113471384210859492427582511886605011860802332575831456199675194956638222195718031990143891376331552560738687544393963601543227917628872009271289779027136379696358659305367970850859446637642333024948337506193207135463360959256075573576322837284576843163261922627715685356131309537127937287047779031972806184579811954376184109510981842218769396430750307187065145379692214292418070905106822076040441131038937245290398372189967481788272615658460320983098898978395321226491503485475994572379201527539669248758045944598296409611030759079804641834694163799054272750823806045725505104091636768824750685772130177058378371138655783174061318412000031818061119670479385077349953252316658362230734933540023055579501203151087811193647342567586968652674628708988427833577479775052339043512377854636352610868947418724866109005540339746895480803130876245787859157805867940811861354792408263982483312323724695225195033014618540412142314866470665952878272645719996182357993373351899405840385444035126589534019147080364395252687310061402070735970634672693758529887322976362752511556843328661859037426329373273308116039917678387675674003521975339746365944824089563465092192744271108202209541071212016025800183849058631555763764465913416505421901900788191681450375687048097125258048912439935159241616409872443705855564131988547009522607782332894982711607676165987258605784190152051663916174386071630254032291490132615809072736253677076428593925848141631111275854734154832648850623640890410315208765829746846900765215583101064862919350229695183277461975814338768605727473325215910122996772030013665723506163218848612050693271888076156047754823138769001364676626093654349272762341814601474057152936909127967521498315683456100236046331739534717021733489494120211707883673707898647095330965869401820070439903296836787145772306726263549837652624365772386295835738648582541829321601745844997736414758669438782162610846439554353145977170395686353210659394492327905801677954404671663166773610561458951842757795394257179586747527072956098347013571351441655782054126594576012035710368285119382920071883385335897757184572753428635017244443462288984848587005209340757155299403441041917975973108633040075124436639642848558056061146138531817103253426187177325738477820321870878330732628421195299238647364901668095876590588733325557544620508138545035455633491276563342613857256167176114940760961639786323195035839057030865992186451189437592570777709824280008740369119218803384733897455827173088939214132818480659205065524706213484817636359575546106844217992070254620756022586884336307577150376500118653927285148363488827484943266927975702372258809891634768881661479749871497469748162926495349707809003287588292649086834906739689391622365712656562238352695525424839248668840566804451167583028793167202244301418697926866694417716952757461862821832848159525582510657077935898448426932363852630419095931714383733594750880616241720946147155087716960167980407565828491966188954143843085361870072973955438213182757383607139476484960506419496797678989817838462987479951945831630447237817785429627029520608721158399200557095542856483872133251245829050425210441308906328171129228860611450098521868695287405855774969352577317932142614643430943621897913849867461964761050490933577184814497820038051847001758965073475560606580544966138424157418882713582456157158516133695489611715514554106848377693339328636301386143825816196225118637577665357387369549495324118378939860685120049067687060443931185136231209024994187672622868622762267648412556271770531358556184145623148580709735511591235458692008353204900714676758165508311595507058469635162563889892478809059888982517620030462196782470287528576596776656879581204901518982081818106871583579157250644735624636200504322081029352508421268464921754802025057362012482071217865273507405395424056427838574068739409629663220965053160909649598697916974014403419456653482760779435203795384300061169154284085610472325547087150926386613972836120262282553308848526187393595895320079359856783307426830619008506512344313244252429634216074434095097895103306648568713704809490202954698996302719348630625454711173969623189083915968639522477461412128485623267837778850711470787015667327087579523481170201648659994173997051235277556821271758070333412097856573811860395314688543443475024608470255296703225607417915017796028874945814330626010565582294608560161149779499223649081812251234460499436628705823266781151799957142625450536086500824317328568620374507342172244625201553354196981052190174097632181509769973301613545854842354205536725780710512273571720578781152287194284723506252554574896866888437152318100510588957221366370262126564736865885440131761363012809786478729050582855390496580337930805897671972266038799698754716118505245412025659715921782907221770816157991521888312974133845302188559245618659658388516751309327254506082747648581478709447300778692189049583107827890800303414543341976317438403303821292813714223254704835842709328461567158618555944941033095733468498340727676803341131743118061141024469436156835452021941117164940886025552840307890818267216751407038624077203635189272416648055697390938472344379244802808317890377796867238831793587582943352456499286688387841227875356435460210964884940614538195883428723146275530449034668520795810079203762421816932667107024237324897520468900889477629155700607773454072412961748106021786580751597524507247393722022987246498596423533831881259869002524157164047057619789740560872162083811585479067273929518659468426445931435619310406187069289999174261866800770449687748866870037537151458074238119793005029190958693553134273315908081309143074173448784754105473260741486489888574160973141047952381992852306765313149801380227005670753538688578961402372236159789969916425752283571269212473989375616025745419835225848743686157416846620319248893183091525350362628896692735387307415298297227599588507945620809245020646193611195699328730355288722431136168409149701008787216304330907090823794323986408309723367715377567824107256432033446046785633150689260331755168076952329918131364515563952301231870100125830661924291135286776274056840158878013927078830518218802587782159539913255801414640470281067119963495520214210444197361771082015288885608979332513905185107971115397847203813904543161727652690795269236230791995119550917915789082016211785367731670917009553405517236883470448016853135638896159783755284600502116414337976748450051555086192044072995842968659723362724276075493646408505339793897551783760055936729705189235256661885244122607921696998395502953181653851329956988176303692434900899924496554009168804154105706733994086853861463795307886652275714500457973833795973417594240651650726656991915767031161407179104672453476084132082695064269825505275909831652826976448548271532170400619602678730910022743005738967924969863790422458981103089602112573470881052553151527593433125027815846656500432192459759429325893918298868921686216909203072457558891696786800423732059969739713226222422431070482169622991278543480772209638277998554837097115912897980563295231935714952241739631883797257991281561998269098898383757049583179781901607299697985504973070376437524878497814333425959967059936160793563077210700060680499726644815927646079669279638818940320679589685401238423518300337537819833579924806076591283516133088552629577431220187094431848094705095953950051090510039159122121696758300535503642574991705915254780088742164047396209161015908656013177890266367555568278150820011227626415524698063077423480843262637353326954069000091168535619549208550586979387721067630553687947084719506045881445809146528146644520910537809500247054252733288693029261787419969310559526016387261056329623524930752848109459090240381692742663007396727247785987266793581315101050014224151350040680163015957138143561698142485381793030257344437619912681345582336662939910860931149043779835627749639845756200198118394878617755943914942845088207811276458017959429593412879815222870775442815593259336161533599048618329377271948938345582915408431391180514566158942656645579309957203592831047679534872525796074836811585189625867218205564244346080178632723803267418682883810801417134715447317193656090423750044544431510920535672286290739056531281556974995778719402761056740379912812509919243036521401657365667539433280696897723002426339246168863018217959441576233379343134706440011469665673607910826470042714539801235992890004541756663768635829509017648603535369066700193290923024048864900879254439936515816829050856137816526888017849305450112401043553799172229576700335836367811405589731306548864043418048634734547626601408653654576933227805392992245352166888350838812279952313111686290917903320019258230889506696753598354506277069732530822100383199449222469929720785776469678457371537010110071483863845497839148710402664680002794757825291191615574017897842426633993007823890962285217756519488898884621180708423512103561997865162882008289089228742199418195416333546230165816646516483791411349979681892327650384765324625752084297905060126783289168223701459213925560561534902370818554384751384941402979143527872588470543644204994540374273562700098401534594405887291440008225260530204748202217802160704493672640826174069600974276750758623871962629434897723095651269736264490495755874317385480532834187465358261046416186997884782348884580604828959729781090059309920283935296961886663689560476530711506382529386729848063423759632744491318081426464096400516391032550384231736725021003072206532217003344411967962946302360585898844167220148945932249073818480314208401459284682589291425746548887783533355033975112860392433810567027781328406739580987276624152302476941595340469207435720839202690467614390819346920748116599792796920912676795330513314015993613753151480355668405026915830063694362190084422186751024468256004001241894125230281936029029722412591293961509183697145927719368953950520089457613264132572451761874501184771357450940895798941935315671973958471331309254890884980455335370638916221528874359440635739308664081032454484085754932215283718953194606968586659535835262886426839434649097855684579520118036655166132397052005294117120826557274380244061594637709950147060874063786121387617763725924033121074472118078233190425908059260971763987834801688414399947775301153105630548540901097998935296888365394973952435082548859383889174603418154729414432235912185040114465568282155651039818083882057046352626633877285206136625147353071645072896752953627595855680485768681065035472984742928731318704515351598174386816043791003373850653522313116198002964665808055672781755500121676429959424805688577346191606182026696168054270220609787508232157618810577137575918830782220715586183380199138309050336322777000371221156447815654966872931866383997603413908622498640846298110382480227409299218926379429283265043253277517778541933802591508745235434094177578650565589657801179762181914677830353360327431784805585120704094926204384577946105993004155096752214194991450154067448977067673878790481844346143024265385985079850273299553813451666142240718492551716853032488958480348984259345391375460854943640734581143928125449230244681564618931416289847038807364457137494096625556639865987328805364679346933551212887178236396138728168039069283517225198674393002116287644015735415073673716082987440030011354322451176434181428193575571802404095043070122567256566929477530621457828685509004277002036517426227115486551115106792935873024963947871844383630063305050138114780790744435898562265142499821594942477706237878531319882522882764697610731136631991190691669555554892443583593985636379762717717989220380464137320967826971309198329952926075001270333579330245956081278737721673199327635802570204460153726892424838813206259275491980566640036222447460258647951551140304409267411308405683702117636339935917781788781861208502807744092645540453307835085165402737238852722151596433828792738509326076210771018155437286506211423005213604730565519123270212901566583563273081709609593918241919857455621728506076402083193177701549383095623736789847685055394859223298696464244875324471846045437452575322683011795118284580338767256241627126095799130709030157684228322170330623016356800668504439173993170351717743492035418523666915574504070372340556411462579984187382679652475369981219178272771431534289707483534002776422382342518716441648543600596084841519863184348282759891164714327606087522743283411857516588753434486615532477534252110784725267707418410270048513499914412068622453743954048262698542472132189429414485836342503356549565209257386931385770146398333791754362508351927816852904264502898227669163711185383161680535986769720624708011944154126288439184620945079765786325497244042298542734254807411671052943693114289799620407890694424647309512304066993990036212252075702079020903038286732784436432181901630913702226772845674984783719846700825512621880124342234911563270221964226315986979396672143035334457550041061458304017640613577504801811041956940305319899249824019116019202965272836079043413079233442296195435793208049002838412503847983638809346567416388634196352063272640837799447045439472166202610090544745569850286191028268705143470384717543366069779855678824603246504499807508808453171462117562982041827759506046954890495989213820408869400908974114710839249608943882369358171470230826994236228779277608015772879027500861759292105988603930944336822349093989968365619287589305053090814366854285237943618249188051127429024707247620943496177770130450939298674614830222513626864767779800280342817106244868966342908436175542336033150563293033095349069679072875825382530295541990710270735534683337036085681224951249733482788667138757143136928777362488664956624176519651552315960614285680755110585413751671751570651462460591015589913059388408694387992344176076913771381510705670552788214128471284332907513146858204142121918306566783537442092037475836651114512656314607565215780260864361795347380451087943836317843548450272625426822614939853350510113855083270390381720682365857233682289226368012083800724280084547928348876480983513789123168164322544587965670407430347875324341593003301180617752665349069634239480910066242597988819805013712248857468998282875334296236833306924674241340795310118377351252243410122490621428769674696181718063957893809221407826100570321939432891535608135111923976313481316968753148926413012045568621485062112549952875587755474396965639045648987328859319522921850863824774415677255267511051777706164815480204413100160258462146996061795653491059922452520121517015335231761648691715654227023024302639505623051175458094992512874366043444096436247924644954709922989643737358476607892358382081659416127840886210347100977395559480238716282788706008488958719427749055992122544003412829503383231007428687364201052100286500853224362273847431446507326056577417012464520873249461490159262868730052789453694087948271794343100228507472991454203843843462412991129229888333138609861507385173213035642944255527686133342556296184900126716306723203093394414565242379953339574684397250829862413902525044410290444880723734298359381259783202372539451655781320715744570286145375620102947406825092386498639517923265728961533997771619812973887121928351518327336699684907952319431093603506210173236965281886309696520590968168853308311688728537806306651964813472100419513262628848032722382951564603048208304919555876339527231608304800186244630846117550010549564411520439646699799537116533979792408370307038998837447465311544757557117437732636802238760941977918000997022801626611082905905013258136801093599037184769153080633409593417770170466618167981670557502768092503952839749165610432128236279938885679640081837479962514012125639152054065160778110379265749216324464242257261899837505575734709742429155934987105922212857664792159203401215137128227620902884921534183050099994750332097151665879069774605672501139517286943489290990519403240733850474092491695822198944462359353589134306247495788610324861557585561705903915641547027306769358931407121076398484888829501332603014465736182293611488535499558760542235149667562128071694172213337781290814631928706639927517093280390860762337704958877957817931927592874154767166981635471702114937591889136102872531354437543185748151629104260783822552953054107712158664215017506298517769410931929179741124429854702303649397947838441160151448265812728408958603997433952040401694475432430411475890490771522839676532121616244514889265711445915138699293490189135324215946785502867932990735956046155192923597684302285549886444611872310373743836735981582867988080305549716962328857881032044322525762122752039495796211490979029521632713370598763130107565056305119247601675665879607075312667212976548252257081002094343141669050990757069049775078929946976203126615435156863746989157557632096365060764615968193600098592801985433625686934229275185995682785360773014646900979621948452282867777255797671265107790971816982350852962106518694155164256629298677420487834902425851198504120591423878912415315378490429397689664578897178116335672994553096646202622792285634123287266262647927971593074316490565947956447832580719300458437219437927065737997663578123602180307903574519975456498715469627018837352627583984936157092895347723704221997366817839828344032632804041774802493824957914404098953265615903672607023537676812669453941147359818989292237184899451825125661270369783199754225192896122457718879111767598874069809439264818247495597910668989097568174417991524670478968611839616366332666921649404573447122065464725859189483701799315906277687774680022229885975791738376604101279811934592629755515619894427082960525413915013878843437357516690343346140428433218217977992259299176290816461273588289350371522721320645630549706867715957470287534629418669755200846520866850489575778001478848714403909816059556546707246344108691621034511527792720403330281192214883759511176003397118868810876349662598114278467969851553577164708889601864689613999532377246661175717918009624868783164242235262473551309946214135585533804203270632227475012020524816511801489765066864493536772078046577259392964212865490808312143139895361372513895316673810709686259000828568294294581819820621144496535631002380760001293520794802686779393011944112919970512830441368867893722834226415520160657305730258549724904494721118675699853059699853819496523406475207859544832343198800749374146418956332793691469782781802508624719751159307476463682395464359383906307370880085486318903201496737111640261934696948736170046252749993833993248400827757519930832359312895428532007426045530055129760604975019281373668352417535699930822076477242398283188815554569301079576182980563849773903068069664277578617847533944322119297577380797111756402278093536704887816836397917140478076916666184792788731157200910406677592757225205609556143722607677625816583403462110252977067299989025736394280405688275582767664950019387672796214797970332635036734504138974820896784320344350558839916151765036707081378060166185702137528064896589111350294261796782324828751831667957558129840298584344091822006153172975532418965714808145944112407513255743473672266730433775561937120133501809426906226788531805908339766408843500143282863545158037356938710042209949499015977011490699133977581925426613591707204905558480700449637401293696017103699813667115265842361781701379036636237499559318722106676026356608755061913633579349224821183780883393220640791188805978947387882265271891654493232061460770533220445161793818972054174636960273122842736903149126154136076544273597140838207740824110438227633345368696248077133594974013774244199695181002419019761913850824036948706477086093309598911361504440731734646631884687470654644973053272997800937809349152130814611330174888233921921541901018254664735692813955137265680825271510573264818337123778319173621081901301605175746790840014233843782684020393961440722345796174109027327109306996618830448347415635281633909543373546903960020631476652159834163948829962256228112701176378673326009278637636497092013983426315832228795399861683271291804430756509845141374218521562877012792273284782228844820799053351343326016419835125913724158091529829433026296557911691408222133226151572536510190632659689980781175803830700205095483948308383561739324285877920126266136433284938087574108441292693981681379821977748106848374884846046389553103794971601524618579874496397576963911592656960354746535641301440610930945028329751529492513334795978489532329223124862197746769076317486752054336893426877208307756533181858356878181200214447564623100004781608095726822538131755622345278612697954422187386514438290320688043316617993768819526766963153248389528647863544519017524715350015841832535178014361047505170802760280336904155934017866559757254629320327129313950623503818235639757897885766846178764219483534655813241735477182232989959099341556110199158654580304587202347280966813832169981105508159523292169517459351451691499639171127380594372148626942044437925425037710682153841315793007765722213325421031790049936598359323561871286592246087796303662660374441731693539630195770671776339374937121863037244613645853540815000359396702753476803754250178405992464703657414333592210438110508878595736947434347833788123196867033196758090141417594838012726793918608080999597385011529792989962792784567358722308290367625349789391625842271088290316448511269971120497863258232181847607822435366805893365037894109763589789449076307095050890647400846505960909708771843834631917907071902101089172031457722717389677207526830514219084100753537887615367330385539081856921127962549817579228844825571263778168111046709802227688891264125607558465424485985731353003582592971211421385316055284999710702628688694021442754681798697648844596061882866299899278115109892464808623667502844739664640251784559723707858114470358004680860016774245419201149649227136131733255505998038504434279572510080800076172692647430175690598427429157098887939156563805651364680089402086441086396200301348045088775210957022262012545536772873018258543556241422539251670318946771553402409172187839082903007000037360981611438037847608860463928772078965043217591421373471295386449144978676576611914610357063404946078185212910351400264055517305803948450741707860617109828905370159840185242113551978364345439239619250149686078434422826724988550914619554394896237816344847307574090074744782216667576785651974316051786065714299121949105547002345963210648947127453764534728721773144204226081488884626035455181300745178507598089744025425165608611099637198459724786432372500524863538963118314846954423050900848327951743427107331520660760358304127690027668344136994089956017412527696510699342975221073368792971344401289153096975077194904424487474538678434307238124494620366012752301280479963880972284257440360890923196860791935858909335734383854254232041831445012148073749312091864148763863408849732342171051284310969074702881537190602780586915075876078746927382267270715949554309103453467096294474283099647497416079443442062759795838319213985113906618748770298750626863363335143566756048941317990407994910465766799158937723664051868020950721957787807968749177156823317162356002877041773592561522672335717893944279098661912845434363181718610042750210264667144417539566724770744172849503212190579870403110789260059748585266321097200236368764205475117630164849941374912623462822082581020149292494773036053240474593574106117773706956774257615639085371359156846479394651995984045957415497893682732240579543275612669418886342036723164438590185876100959162145188924267075470159465998477270090379345000158310361828496249390485007720027664401403704786865800827789713300938676273726222392416227126307010455204459920790765432100130361787501321767221075536358101578547116681510778406853606302072374412709155980297734951486164443825208085861070801755796007518451537570143702051340563928012943296852730267156851633640520520257613760565953825733581278965130515837337076197896647923186908626968292591548075919888346974976253317427829103460106247716825069724308233796613108860677156256661616807885234413027982426934884319563312745132350522127301605728968980767911050751212514962319361816794007851027444655218829928210041522910614770350907907755474194103742912803902930411497667365570225179790302416411862555337766661204076581465561507253733551767439363878396100779955448948393326301629447471628884338502877389180443043703365533587011609374594991978540284781984829566984554746614713060844904254582664132492849625855254142307243018369244336432891746955324034458607463647657133857270748807322086695864018037990139275520916120867495554578966606610993022869293705210726813546485542818754619407264603634506834758978632324713032140655058505466011351293110581161903824165453126557532735632129815178858967532575789831928107363243160958110009936756450145517926717754110247555790332740170283396540184186468480215826586958892371906532368876565665532836529560056140678641164468645679071615870120685604483894673986443024167915721092719765369724811497947454548612959279182970019166540212292763787045870716709344311182374310634444234726280572906164577316158703585884151340545500867365233054530595371468717561663645964740767852019681944425410270661378887229023987884554251397599771590838494109198677106120085135327922041668837837002522902785476922862116107645931478723224683030741511566093797752747829470173021470884862468205175346577981585981312950663567137083225920031315618087576350102810352499475349105984701339919635512021934717625718201309339347553059655487593112804257768700819091729153806280370463817573715706294202117581303741307016571283747507546140447310572821546082852206635117765146041580078206386284722851675536115412195129695812943413502477495883123258001910143988981997506485843166220868600834836262735092580528193167324728714146148561846597218211231778721369563092936074727704108873258343817100970267503819583890029620070314679231284068136538436274623790716974662562114218848093361799725472100259080475800340153341442834990800781120516782404584900862642538372898239575117653486871108104338129783183099768147140338499275980445364359081479901725719614068344669191844744157108237365725142987542899203959750625831576979823421871335007681858061292339017511169532909799819583095453175948692072452169186838248285664082596437390224362888095513861292068256940561819220521035108297129313249684216142449834675464022942181357262728457812623674804533759654507753145905646355131824330760566591413433231738395854411985362516425043381015761920271858750329210065335030291838042731229869924876127835006364272385051907995665537677553284563748700659436143719411205215166468583571015241988317334267917954320901481045010982699292002645014695922148350447791860489461447108352110611850537407490735870699667696558978024358196185420124695394073676190881930405259213205636308465048945539004686868614740950637512654211171435213105071724018009696207062584742906067585138048112057130530753984401721064265548753804006111777474425173344097280894387091635178055755361137747924525374813493362947041208650837147696435761932657836096651596202024519168941295554151261918443542727597527018910629602708356647860933576800798458470989600073727706783891620245367845198460534416428794768543961957166302965069432476432466047866805142328600903603233292106584749877730590244177797149111012478186506962410544069789030942648051075927807771794911333493962701495240038190264456405013576272636816302068547376285152493175419575311198414424774706984306297982994255471157505013366101392575645127601584696524368316301599792051206164474084029265970082433840247154628270060932576916056458525566634702243041899938116223797005613648589139820902343327247430828555277231234953774404528030647329327934438411187195117488682891593908672136008635596794275177695789462957162364309706365972193300889765146170698204896924316424288021110882436811028108246294254091307174521910955275128833111313354359656122711025517255159815398825966117660472149108627678960117657148920448401920186964042333413395997782977646428604902091350292500709944029855503111303850529211454648566692136702353505289427886023900908585021297380313093285350414246231942751635408867009715166855693851876157865245620103953479983363423069634473405820312257636567588109395816833850027063987688392249086548510906145661555244928413441988229738450870325139744877328086520486753845013914223800471089051471880791701078203721023861184284659276871468386179233345969198439216546840713863675337483782696703838610661933023904200933794911326229559909099104753782131880912613272289259244691869290730874530840914084235051764834801224382287310593469562344551302244347726630236958492735768516531597278914422693082643546570795381454603956030610572814081234351975786951673736645446036319441729369292922959642764336272344329329828328814323919872668995824351287908112421575919582563553425816466430788786847205702161094291280471070712006417464877593502240296398560752729506732353317318944557030477139891230886497565129098803028105765311647432482181182065342556913468368149259637491331735686053025234627258042404797584180142590077101722227126498837166771501409356669634554806255937478454048749301397076246629494142591412984826778876100317267019654658686707944041674679735880912818912412725024276795702330508399435026138705201547829447021526910326234925020908857929082928506101783713252001918446025497240829873217318545101672248320802272668164324881486671495505638885483160329510552286128056325825269362986748685227022745587695347038304496591449868476190769820583533068056189952075057651320299013756316077378751823483295601874266835713658121933283116259081781729597583364185986522210555272741408690812572665764460900619501944782160101809097515788059943827069654336226856599490609898781137495035042614954249251497183043824219873072620199762120034181542671894838146883149227535184810138845896145768665033176387244250927958222827178124067602677379917677474153904826454949394138007107150704156081788555681835199651954815340934682258437437411955825252246002237447774115339328195825699067712000116223210943369416850356031819392032577407913486638148566856437683959169900223765325540638668137890289796029718882526253693053821292322903505855990254526889703673473467237376148312965108088833851669073100008691834919250378979687213419969035031410255793791185502448628354780557435271138152609428324860507677955317873639748637425076428589242496143673901086179792626659973824228210645190972088534598887115509250760341951598661291558883186073202896501179014101092106042390161882046152919299233884549695758545394551260450618836163389629584958895532169631447069866349479955977993627129916788562338997383875119472039702284501882589865785777123840297818794816047616383128016441133192245276253781873953022439678734727289618338360148541490292439710359325343252904240822540671640852611314532107581671196109063678322301391967382495385979917923567380336847992767512764124459602847069478072980040824157796136975517987193763226221947764007931631877176268302088966813067103160877534359662651710511793148091397860560661727075541677917649974099199175852484083072105761347974548395827934085198021709009000025181299896264675491566964517831671264771258461825491823281113938054071773286947700080682664460338133481810564501808050478301880393950203934981174719010728298306532343601374799606794047785509815837839198504149962820722097673034412382301430649834519191856568846563025025016787856899186534613290484555926380406696286522321693374275330982877881633851183784903019694883817826648738823097785111123721517679343735671848690664906653744143332348378322636006806468787911970201819602800703163707356874961750938716146880327323691013260115324112006007221790149041973241727111244015793859948302218202285398820203434985825553893314632675677551191119894679896564632567075922136190147927383779640407595853151771872756335463809470609604797987137145505360725542712436154823727679063662374266361566055524069146060894940375164464377379175828728034770341267779009963372727777718653049370089943782032754844158012911515171426263657515568100130456560983942272175558074800983554477872199690220479577858903511463045777749870426829546567079376340975349772645803244598329972597314590312030471395345199250306017625434011344172441700977636991421143246051972458425143765283081481302964314020743842985989886986269557483190857659329817690392662445454087728430958870006174162307131645045763717279439224326327970231610486323816602863238905206661717405705693211509063871430627877200305367804161754185472663498092639803388482412711305463653227834143812643870798736144681156697750320684574856650597714526503058627987212149468692050336955444512788112768389262176338957878283939493417198420054193963978059114696967053860904987592076642228057440878617353889485947885942064377531016738843508610527279981999346420276020811710557633431717683359293754196007140987925176007046122978345666531258002224627606518946465101715643581224134002228849237094473297451878293453252427774902562960688144387821818924576045071819834618812371675827888076349101059988363452026385706916338294750914986326997184983954492837107439735023538642611145770000643594795691520575610734519549311543277558831861096300694701824072880153331598633839410534291412170329788801320269178153233133255988793319086382400857103955595184044883826734316727854161419498687052330329067238322876485459545955075914576559489883893948961107794153555474102431195655478490262558306879006840349956842376515887316471037774880942261649058740439199446310616080030787449552012803713446690619066190126612674885099583688282133314539378896893706613136008988340023803335318896701092357116888096234226531875956114202648686229780733925484864394260783721538277452664585006903781311043507915310723230821702343320585427944289547534226693554840229436255506245126929902794757329029913995474931165374827401788300427526985327443169578027180689343660070811727661365007546816199870062808121745426582207978821223912404873712962523479624466302685334193705071979407273465180166002893465584358799254666097904366758746596782952338386831008001028093069764374714314686571834399179565346749164050268906867153801389100135615981387950392949354054448529845662482155199614802843970164392956585626220810158192769978686649026847104211760482373605411911898141003558632428820285010215860936881207595659658318846859123087407366983867780747104666691751623191112888050146693315745759973623039220962184367564808270660922825139978443350145627027605969492717553524949266317206553729613454799336704603751573687224365963508556462755218165601245779649433157638250922355927275657983374888362330675064310875705221743677696106830581016452467264477606443941477317665360246493882385870278419622717229266194214854555357219858329585139979079796609648393532410233060849989916861522188769257501286805586389851448931112122409254597587470973416135906118283719244931706346494245334679401674186470574081372459664536060216983949033648897079684212153987555176349917902129186767251808209629036262485624873939871284570097715597460276430988024387409118677100395953977321171617705112576203200400314066028884442975843824587550111420072402062973244991188340098286268658260667384982954220135598138363327470087183332464638566469355934575445704158863816544578013314218507526253644583115372432351423056500116938263194005910910258689000491476757894294590686753593688228075430384212596751780545520206965245743111872741114750372466238737944756186231737381371781901894434678762844894346899678818275761954971194421919315946047163079221225540455870921978346964125285807613356181680905632372178235194544032894253738265456911597075327795456616046539269633267659527573775830425971956561772389433214499531556478191744932677599260945862242534241259459854794401946491598735055061785341588167881452853324741813365712673143552902877238803608044837538033306939463877256283706961600868324372043308467475400487343088030290122469751810227105176766550128904942811347280143214047747301494457627188250186838750654497355573385398339075801034402801506995864889879209901075213173717573631547622517201336975717175419738750621404216922809278867010377640804592369633541993711511514344015236871712946915114154144014649057450490719008124158048140753599461581877724150753164373399827947548355866966922753808439095459246588232858287344405586583327879829662608158492513539350632061180513456606908548698584172445295804428898824208384541715381021400156646291040887661830169989684332862544279269331129385946437832515639357124643317274700329877868009895629157405068077593281455112433960677418111584758511430720339028798029759917309957820883437303325467529187457553164926441484280621235175630019709454436948241378017245172118635818833495466164872429909453436294406407882747214466009243480132914574334090437333896830422980048123165563704892003270204538463423400667335787424727641524969871032239194543670993424700512076795432984921111390643999421148956662902153026801575274984255085442772203604356097378759980073422654745218431682409746983391902616917240720360952269049714038695065551298936634263101523384605182066349109200357007980791055371510325485216263185349365484736606020176240838032408585456188495073092462845849785332421350950017390721352256483375147162101461267963208140268116223376609737206767912743277400607308567038757350825995815005914434455599841519794323223840483016874936810059067388545165357597140592665236094142082655835752742299862880844073303623212399973874732361857162585637338761726957736041721580097892434650420153105280695770542101281008169868419048249513288671470738212107695212942216456125287879868278860875720456957983807599747910888012089952328656122044769634687504001055903434757763402548789289698779152950607331583506500158830417336428914222231162353606845824863198833546226147047170657674155147123654810872819433460254863551230652428109094001593135204765774357408859038084277234670175376468789610877162834096518173943018789001916811580167567700601704654010743891302668698554526052300233058280317503507128979832869701349865066879737444201632570412121690106530024377109582344137683691871697215153116092957623023541729922500920565244111414053313109263609920739745032917982175967545172966361807424882896414209671761417834974071164668174435547076352258388549923357722885238890214764871545880093800418195083719841330579340218254764578518972499200406427312701580095551746231781530222952860530434499905780048410211662036366532739318299104063543508402182831814995610206017588596771187558905731704561719777200048917048174349147814613551067779930659794923983393029370854814796755796905644651752704834738615607352356561306577247817798410159505907249961858490039629974479223281067565222390078444405267637623938203252981894928922271693218118128214613640158665944418485525169823945913959284386367947063302134913573772959413555467942644876760720248760635262128355442883750127618829402974730403286707320891027999001050448517720364270961904230100430440940463184066315647390109595609763740865321160957332644991574977818839219867018909818055364757552904729310730971293878378245099654489719241370479730139577499644272921579439941539483012889086927089846535276839426285401774192524713085110592288049598213787025153771719431911831808812549465922161796983602672961631257968833119105153555509642023401041442455164589970626093866187983638353660586489568394559377751205531685907218813912224406822916283017091823285270874005904682673230108894720097824632613339850132688216405638661614419564880866245408599736682628923942620206353790259545891955696819911511867315574497293177552501517082770857118552922432108268128563942983883823979953541056653052732360620685968311344832989819972243556311517674415606083572437194864675674329419299375369954019955466977582608899138666274479007973148281184750775586365282657002677441979045109235278626241621430806782003754512950263722411742286169790016277952133065290684083583694390607564123241071098682778944868395585568926214321724849060086363694441362930222662769664060441875789784253887673890912421964985473398215327274593209826121468882486299531745711154814646441000654406088386590753532298377639538870135202497601238890634244389554543116511333824964123667484835929883275503820730913522891663813908192335878385705929350921257647863376584793962410714063629531023601696320947426134157881545393470287320226652464225113871981697860870136349329669615331783554901698741801415326698592672163584087791065835888996681565939560992481349435924237945718678643556083033610956069577216116404963809207888594030160151231996091998710424185078340809974359884012175044262132370587884556228994394697234122879375052239115379249703852052085557292520076067872154256609776023214213210477646049588090254165738449999328892583630596358619023525426352065682258308370567922085159965567534887445499951040761077064465071066551233264271342983402243840923788914756820879131898470926279995321790982915603689562784721500794623092225022705682602978334573511791215942223092940529636558172837776323260917585805068631048891432779395830312943692729265040258935890040838280019860433460326261555607467248645985941844484223668150886364206711260232182876770402548029921198325422737815418147275695876370843526625342844301276110807086758757904605957285338342262832876130956356836435559706735763438623318713316737099398883270033283514272818831656388328634885105378742547715380567747909089278600078152770388206096427141438253826827391688330890483824498406063209715558898189170587450558669537638717978197985707349593381456546848026298527632136580330073067705024858620398877456081301770652803774556630883713444279360985416666278388903080356735979074429018913200351288596790076357737444593476096216966838322054393546470283955718756982227156267115984441931058786931324560401909244083327650068625450594423288562021855322338850601327460331249239654200479176740418485769898005516329061609132510233967446169996904023954211612868915008596441724035732810229210501492473027617759924212465346926577104291577325503004617144041730868701057299904533863916229580707736441779453653358854227115814995716900543967965535456108820962641069680589485237865390850007609193120865860724524626243916876968542626251684223343556976475138183495222330637393849041048929637506724037785839831691393555371879981620026890256113255973987181107798729919194190581602854501779451831134188338220120937649673339152110447117033249182016279576844016048048521503647810447060031832097000821363899198552245477774694098310710501605322808883301573773801379661410230534693092395724487888541889981233021491532981955483255478547317442101256295918840755838403176531573636398262429150046723328418595579654390434203631137214095135617820505199735235413433085263459338252118392131321152507498797093359893022702368484126304085339711473406307116641690679750707948432216226832710438643551026471277615540091522509262286602270003975658663477534309905942182254741943119619059078475006731790451249562665995810703524272204307327710826263848721087500028716744114271225680093387010741853924097721316750004007764188217192789303302672151327987684804335457231200063938278546212803663865663478645194077094602723213626584444697017731847617532807281529383258643924281061638299221193184813982380245156874972969293418764375540601213321696931879122460310864662827696550092701065408893135787309198708466813410710482544093780457504079697340675486372047445991703995021709476455801060533909001853567437264339695907703704031211920071293621776025853772724251656828224882554690661101836662396862405912108194342487279369455483871188914597249231108958022565852141218382937832686047959970751167676421587140846498388637288004791200840385335390678411100874268382240167391001771254708264554176405445023198295541629130507681257759660331665227524395883807247744884909696473695549919965475624893526406356223157574963490792320533071235594667007828925283319697329785744286741208418084268819225734287939655696779996730751809197474933037946386100247943709370878245552168314917571281670463704097659203418379386970522506773690984601341298500382839773829244873809733704234015151311314171613171455253120166747153731301799644314305473595637384976743744859384255348163401924834403428127485186046936861861631192768527022020216529627764384443826492266707346261750143558172296673114889177564954652983708358809912903815804832185820256170868070569121481460304988693936493048120878081084405141739976091895961545008656062354221452026074285687959461804642783067885161209209114295677189939543876997894652949120174618130543065525064764174228231873250494886871657252346807467316840461097100194494476982022914944258705815306612522116252434731374341742507572363751472450691690582002963771902607970132177084649519228599079855699034277426911402484176556796895949016925145539122120525059589028901087336871736381883558877777191633768765167094913878156548066092468040485081914037274244978954130369276507805317231853078827548063513029587946084351288309448543635598602955805323627535683752132887647551088434827866863703870429575669666326795451124499659466719653017187204626348501015969598263431366584648001437655949160128629344061168786694223562368474776941947297296506531355766679747598412611517686938675295958424547873111572941873971879265206414037238624928520166924683985294568769541158705254765023992390998635483194408605683631763783854132790530475687030897507123806734403795008963678138561607508622534337188240795887534235318815860323681513397027433438303093934624921453354535490034434819382327456425179236543028914799414097867894057265427790103661028164732818362233961507024936959813618596634454495553166551556676553514834381068802920006786455421932237444739726216129415529697985134564083675050220020480499802429657221514887563850887472606699132415134822088900277091429109702530591787287707222069678139354436831932645730532755225279796109197999117751265772543630794609237704105620914787423982537112810762253343574941056312343000874405402695773507797295544373021284568019202233734242992298397578765896999765836335085989524648277169016824855547976893152348105633584872424034215464160958441739090280132049460614127898131080187646543003892509126969939357709819135560246365821397282845993630393792204827910876147936085279513595614432504637253579553620937269992576625567512943611143318951864616957887509968752555982770179774458471387877669351713824985181051674352763765372658510709688186540044409355420479792276795366787439926760863559274982657669100667943179129489059707641749282253701084168237086255534082704592453797592676209206117200187249908008092604178443565699889174234405820653350221060864220003469088553073200409584140739672089934741164559424232665769793961015528455771030378865893743943220580542977117162025238385414139229283358895927850876884689313182067166534954482755446616294990882570648935790954811521707863760264492028569648778033579073360561830878866415985796639323186405755058350433598066248074790114579425291831259652676830681079093676293639202285947798079527674297416007765130846411129669285510031572022505295587560304597570757877589469015331088845976203011980729698369530741430229538036052270442029884796440425872781114804187772768094599050354198411939213163842876394495301957684839425874951021474766824640441989130228383210648631781267443808319246708791655671952210898281029016122580128116013344449074924785711559357026272739753964890930977675119778772905368326089891917629723928749588554284670479460515255545525467886485500991984000616838706273279489005971801013889418342064044590687926663580967005807460449668786639847682610312386094654733954687411089689691720181637439446522961565597860330019903311139027077587620753668438322096015996630198363991598832729439275273826838136090178219738537536467289402269178449962926240482108046907459128651912316471941100258740181785757270828143176745365608430552267579440693938738146233206757555938766541513953558581020090821489243800860447730965459319683468519806210539095068828095220293027849699886361228605396257667205414592430854128894375916041067623583461665765325399224691931743706850951402787901121566666767140095801623813901177893355185775407371461082873424886031841732945338651961546636073324488249357275601853688175935804828628928880954132131098634692489561290095829089905383196502785622508744150752847449606142167090743699469661787712037073197261872941605799869895131787563696469002577040798541604383637598310771957699453578936795688500145811405297184173253597945749177956607065038054654019416343309314329321056972089211025315414772791011167139335977249671351939292545663940514292088332444411959592350692904830371031653608128304449187873483707348197577625581848426177149553027988894332228323739507841604752668638243901791340130386729896138027422130352656824874139603063729621604535524422223806085148123177500557092594027548871997128837268053240589866630332765526544796011736010758247230895708059429025319503415289779372755633402678677021747919253190582798576305844967401382267698398066237397297203440335662330369067298004163316637944316994762486464553096213414282201267909505943027946765419346330796445337012422540916395649027291356018177730687861142327558830795391153263769128281968502200553780943550460050196009216247603706425361440289272460876037827132283854621556789916053885152399437459531734704295273821389309065833327972049325564690233460267633025417100944549868732642606105528759716642026024625411387948990904616764142277899078363484489996415902181665214082961011868088324197341581711176161113323016080441148319317917436715807157645545886367215417598152955153882282901774258138517626646998577621784913092987253306292659908547751902211064825466453176944433157084175505476240817667550853745099397991822187201650420139468111122744241744486609114881915014328899747099883137742906019289410382635202614768846762077260891276516729064113594208503208353330050869538745526082958272900425232910632512645444144673859437245664354083448240142825843920036773336768032268970519847340971961770989248896364230827904745084237102716802125287920438931530388188561046841078104826130778800134437153476083784145464364270440481245044823545395701595184166487572645205804051493112262739213365811332384612480531588739449848090059191967760537099866170587775712477441857141173154926181871920275946810191274356125797310247917195068282801504188787795854172783220544151209752962734276335477937236631368320130285689444067618434731884012953635487845228914535712718154093514135144590387831844713451234728328550323535817907824022383056107271206057372437142830357625499500303366627190186891696135819529053490723715752081113398837748564235374524507020084785261415413674230789171730110031239395489525345306733707434207146958206764085186119817729765219714920913491915884196707084396607790509101380212218542112059513640680778508889091192634869983606440333705824020924536741379385318884915526405974746894439595977398105265935504648039058233138515628211812367365634603297730861146448155391281926214217822845493809158200793985855978007703620141984178022176121023025118626105287985205197139397125339045329626471503125362611420479285119461730312675641804302485971164589591654879100225193914060588000453645056887028436690393095419707285129420438779281725194356781530146211205911945247862152609565617561675444863696204325761029751136628384013678710007356756484507384716212924449738793788185337430924698640672908688895889260388818947206415121351812812361257884180417117523850002467974532605872341181708951467248708942523341639593729303348087000253766728749293108480730468634123725728382029039220612932376933304171532328070853392047147918715895641671375075029640683058697193831664467837478145783976856254072266812239487972660488082702893747503540035300953183649239448161636016273029024536405693171328631697121126834569635756097400435988828336128547177866612516402752354492635563342364257399247285402674857570781837212699455570218110625705825901021435760221987206792816189543005006232989197831447552024765436398717325551148810711491924375932123834742918816943927703581972004313903766976425956932604991820949740452067613492545026731955457721315073399253463420004794501596071535677957542638212829883904911117653891920244307901532996525418822520174269710697143154901303723707281418801213406955534609786534100463532176255282836983716159350261525695305489104710921713698618709219583225243758567032486924143017694409963986562140797916961512030221017687666347147245996279249222012950132499344302177445907492055471416894701240704057116479620172512020608104321968707733307238351988418754881818952610023219134905272366145377495317226551122023507184626801205213799459423113486169163643505605248706583798083902801884973835032554260633191866629960991375950666344569224532035725395404783828537998660032631391287965657328106096913802863232994241453873069014386579606721403199708307756316790007971970931910279893221488397208454084125179645976816778310133769595157965661987848379702891495780943418921984149020789009696294425827421369673483903989871409108137786298602458303468192361147418576199939843141044004670099399106518093060278234295388829788626397628557453027217965716560943149776364530438161405597340240176582925649799624341489356599842180904892284346390766248638452239152298528182248675488383988440474830910771073316010154611340301481465040540733954463900958498459577923169728152035446055086809508143988198940950868837296590479907346193971671692757664051198296576668277490929909597593724893812480937968060217273741256753215178736137887025311956999088268167925926039523944032694533751624365801640282756670526212472207248861088546538391295233382228053167838721049981292479925449644604716895830096028446739456540604345455749000487516956065893877666755005930934383856160480593750618736805246935472715386970344033791635746694022560345070518223377759081999431889959802498198034835384401849325944254815265700628917707100002702361658724646172387339246045309800670930404322343420501333662239247564515818460748212706087296828176430518026360070452797168986924561090929157258406538279504669420595262830408539838129756316799235747614797371919068954496991950586910048591873928160878030543333371377915712532071493616465936385576440011045230843540468097991739193580112545648986477599175891403554079271904517211269023163582774355731047508368456440242815564124835042737182213354816861171358854646733102426455870908726611695742515759207674448199255520274820123053052535948848209417367017724308659239671018879584152759284463590242600091373088115238079499629621761971075240499482171159550948177713681038846861702374353422375384058377663641089042240885893370703770835870344878522597734847308865311055812581432821524507548394747498296368656037148938115057753306816422182195472290957543894138461430053800118890972863544407907163840163591082294997281966733890517786325997376274261600135926984303450468549751851255322123077318351497124830966100418642812145064867372284037528791881782646759731209905760550113032658189919012986498334987002604066812245126268661208774057772547134655188526247209657780550951225567327215249385143542621501585090179467406256951264882501770680724247156418694245025467176969990356523711868932942006784518603245869464578591685077139517893226824131274943864719750652727320041894179961266090734519739286061547751147552377564085387507938301613155621800492882891233376602532404251833739349980915943340026727086547833828987018797881285025629548271089002536369746070138866590416271682482680376608006304577891313824763165619021232794478336928734874133067758976525727008057105347114927649121301977104038773216393511220686836470939944409899985775171966771161524605262830535850299490891443265753511735073862999823139199849685213829180172375510731898341191353131757134979851127465457844481945143257138559240224587231099646761706964428364946537743002024221205990945511718457527274829746790802470283442269403793595858755134845846502305940300328328019725056702694308930855851648194636073300291204769633776675813856705129930703431664082714880845856872336462566189948066791912107264609030894401700022794802755436364257284800744064941883895358950615009033830792799235935217149445727145294750930826400083767714932132903340163982591329884003794180943803639876780842561418293959622767169124611858208351767221175421249724193955372744747974959599860995003237389803702243843444843522345630470333725674834180746357014927181290376852466710816853670295782839233255166690269294483698954138051741025233863261631380537701854164696832039964778736357923790067487811449423936657637526342128821290737883554439116250661229285916199139002926040336317959277883697269383763257902868366955519981900312798970818099725588549616528084259390071775994330752544499793208274671251808381853496887260959028185181976127224311434078743479151062201343202351241865261524109442328175018391688450988966970835981734675412630277233437954681165665026220588994433864806016509155107609994553296886443427805425467844766536983889627108802065170332631051557990482527299675353569603097025006338049086404535513689977632145291747876773576399578969775432652858524742787868053751491304589254591743055989108566403848880808865579294253081893173774310961006254488827591785462324822673884102249840151248314018977659460448139674577896919332963259064811266714132315882359725099485621675594169006439175357449046437453933192071640949284479427725947774392545246584863419879664845240308427936694086058128111456693843257358081873571055541566974903633312520253842384510498059605192573877089560557786833236412005107940916459456591970178080639306867819298657198315048003896624569674182491106009350739206412615840371686789418616739879637277316504643123858818650767940831400703436012212152372293297760003430411602208338399799148174890906739847600792906684916319525306706635539051900742964666130816909856708365145607187571358789412771580797679129160838615438320249980955518792892112259173951033712901373646418024454684219570767297696665860788410771651604280658759520589891607697834330939715300294843541816834549756976394554367637882127680994986330523553228987964647263444712718385733763497325707845916123448368357306118587617358062069245759390210712669178492972518700362349443728388588340228466036170798261105145999484852477999332670402599103473596641757598026506899726382820018662484320648374235609124503908213948943860793987156432871294482984272850385076369307729410314388601865069444487751817210724557309980150799649907865123162235874361185648544690725777913923657669323990175821564981074685535542067468092846164319749028501354158916169323421308138106142300296907509686036041241741702118547284707466667024515829370627966858807103431984083723175985008827632450265282302405851302087592687309635826513001943973692001699782448249426594261866576713778485331714258876866904266339207376656077013894282842548694970205056517235248714738577970943889778080588500227304881754880189943854539883355028848895191734605606289369935187682494264479664975649228237951995615877239769562845818790119323565264554037697044568948985875827050923723577364194154616371230805282805205194791045120962656373603644620058239947324293939046002798964988187639413852926634804482209164946107589297469437921837863860846899078973248861408432393719322004175599064676819120995892886820429081737465860129969239685488401212268537933259449603679021031097995010572625257322876628281378375001024662202130243477552083258150443987953537640552640383976992286286433257365987684060472981424189608660228597192652366087455029302568104142964949124773891768667565782885276108460263140474101521299439862660999805675264350536554086443336767096844122754284376798441686037732062055306194022020752529260717742406042613197448070220457237105491805250159646972375619846139345272244245232548106697422612789969396804442768021085133016332685579940648489795237404055955462372424204535304408597234443017576032386918020619243441497737685663255321283968813834962320666681897458934640289001431529737823050096997068033289899264228357947830559635684585889906781389543184140360878309721551840079483223131431157703388120249142025513959450523750513531208555774730007975714501829284185219201553835256826063739020086409762180225163475128054725092960638933191797019889748654256046425341681264996999974439221483302713067107790740090932010882070343235660691773371382223796144175857811454793783470063324481557038462179735469792347546426946418866956461900668142404550130653609925014115559752468049400415150457414327706779471411877740525807265425507140592926858391119777316585089690112735916109636922556153685112572880366622398159932197419511017848628101557349482847223281129521533917935603436157951002348480370070282996945529629735742383618303379838828002556747651582991342069189371779674133270057439529937783828983833046793072384409409860897411546829268839183669711044330895310910971011457115779331078407879069536417503359005097705614379112432472388389443790782723777439991189495869137939676117917175057664939980328017289376599014403215273649002012178814814182356300889764563275990313437914566669893117915448044718554713925351020296063730306330374860449333971000357734906679390238958951054515492407201627546486926199035800805574148145602227101284283817367757342191331714996031490690137530677599375320011345255734941433988445006022460271526669901314882876689112695314940893744032224462132042471974007831066485573517422991705131579952599185110181627010721616180794909923756793162670183461061352710543624698771540056866925071110592181889707469213925342456069211922462869592045929337839761364320760336287723336617278395473173590862081209864429910833666022057051421121800614092017739016392970667215854231765452189666789130760597596389525009718702943789793735964980636947528414048156530597497541628502940391903761773576102952935720641348651653536429829255433038647710170277918365082590965151078988084043529780158688738599827086631701783653108202232352542231740869275032781421685881709454122567659920659589164159188164997271409293233255417130719759084834304137206671849247838899545509154424751192188832381741324371539336872190998015968160044541120970062153118624557983534499324419093431957211212004811925338747446566880576151216950949938327730396827887981382142234829232575325368023783482611020373162390943794710451301699484310043977736814590672686508226627468695926711680368958462707349069208164651739012644346882468546947260353267200494626796879159842258110261989485799600791153574532946898671383269822615045790408862975136139540390370230275306318403288305821073280900773019373138321166219855946643178004739477122450971321506628142148457097164192841948001218063216978238988531085334469878719074385741245623969518707524857968306600008336595854266125187766266119655268316765546651909004285225758661872854273954349707719113788716431720868862004768402224613318203126248425867018863286238032993987327742065375851769839475815425993181099324936803297500333874582566735169461052786343905311317187328531881724931491332326395499301524758761757357849384704765727236766868943292431563328933035944761884178886701141812087338333227717352174248490256041009533656490987126488445273378067591700193105701384955195160442529123999787539391926301867998450386424070383367500367910929537401917846666029247923672344475646332129535120983704089716071049337330299705693221167376939429380619986149615955869787045592526972259984946757272495432097592944058500698895871540332075986140925801197573108585472719778178839780593588013350117417680449137667274896031868469823810114013727330403375086439775383910019700287537799850312578465563597903383455638227961811091386240377968777266853006481690286027440915756855095715400109761927079980083365450886649880325731745398668770972590245508051985158586187293958062026273057831357355719827349851119086155771049774016450653035452746544901596687542806692256884662735712379771915151244288728781299828531114315894014841071096120838962082415349222603604465850736797014390006149861311785087839890592882397651286042129950072412559917441191150289142710876299289475127403705371579342975325901730613317869358014213523603704457056465089291364448390586174208201079333863242353515806904343668829325251725824802162520305373457079348177423086630958387791090911834869350905623246060939921314704647524885853866443563858846212455358082088296781797063342269897861076724447155807079693997760163365737805220075269129858116943644551783347625999592337889802317932231113407480141553639302141929586708416357239718832713142053193470125904897861085560453050040448781685610948506767414405881597797192867942861059737360116722178949219769659823771290317822753662839872145977158703435609015685134516138701113715504846060284867325490496558925830235118486657772183320400580081137660579091472227922306754519033277636836055581320758268924848500887839069508372478308261827378807289403400337223036008968022047680019665260074178300269198186704259183173832885704909709810651104844754748474283654888476699375150225734713043890286750903435509140959583150549730232158885048045554092221389822479763367058421425977524735502296530242026937900732018142140711783445373604707928681546947231347136450532873976469477791814462230142270939013396117254999648246388741882930472162836151318731936504050275826943780340313724892741468884637949887621386948502678155039617687271036410532894473414102425982353595351190857865335619890160312448145320177000368224236816362577681987253453976195749272458162455736667227927096272711648230908999925652043363585579089653558116038509552446550447466085490853737379419149617732060416781692368115958043806730932357862309439413341236575315401019836383646967105257388558583896247597048765724580188688860973009386980604732707621993625288319439339030161192696645686067534069775566613066652928998958499848572925764630007966411481405721729047721734615519092592771358397371231897451393830768897209550142141929822105767426752663049145062259630446122690907552238514523957206799794173799078062009025864629022129052046078181796548755038619875028016076373425177417888032861108662997229871843669680990070656922589290795723023808221831358711713140667854920584144447840115469907409041865505557561681539370663326743363991584420474513471314752262337224401941039725027481325074212543036208593067832563703325660611621262863195710886605762117132852493890782981358368643497910957846124994383907000654279811013644063095013700548931328616715893529296968577353835143802775477538440422873029535536407277929286068282773107537481992278722185394871799554819789437305855885351495317609846299342752297763334397063743775471318502880638614614790639707860194379886886944826125141030181540935880158599838871051632870391002147945650241364656163470440286062820075410313279123400038504692017079730510818685368802911147337800506194003019131836014797797932842099948967919167370473725496032022901417095804137336964073785088195054608886468827776814862343833432050151004107931068501555978068834967743825816157713600845839810098362717948119455529847387473861229752444205837543024800158706023446652938644291409985977032063565217336633263397143922381021672903604456232367252508998431482352246201008446028219540476387301778462872241786383986010079810727043392694154930957096271333978522623446725076570318219062402648273127895673027724996738555667982159661461065904272919148023012750937561190525303630474625759025695321298234485985404714938395716417624388542404836952954199726729370075184593592043476352153503440452210997113431081434363067835653953402031910523812827761485499090221618551718601578303485922048513320836341460859372079971918546001686431967705738030103971716603892308070663619656149906083763369231861283960805066084530824322349599214886204041083142444709585970598057111596344890663336180978039256156413654465421224402229673422069100402143020869420939237645142873536285256905767941614137743748404715490925241831842468055640196581059354347640501920546269173571749336078641310328552077186243555057640731691553091404464830500016380332283168394531065911264356679214191737883487892870136917928785235669425618601183455655089914524801258718317350899161370703215223404856630402880795474997962571834342936693341160884747840868611326134694175307344416352399692437463645867654178012980889171268474222264349052596782092025305022547145206748407359830221369354949918275019713544484331479136713957666741862353993257656540679688347093421142433988707392806401278345607378699383389949188321290611974710228686721977870629452014501772616985031176528723611499249975512473131736238960221436897702836138692417355815009274802973694058961788800322905091342464049416262211639009705155546254401994501678505508796995811789138497398851479632748732684205228519126524935302340854689024386095805592278653551967522097320113750011011880723331757070807945259601422753508990024101736256895828896933940274517594769829309273897135805239693813729803336333995110234478770008326555254474000929165003864194815625884644097270719028221223181104130558186928075984991353815010661980191743755086159818440881239919911608144450413846497433192052536472802391311672254341157659137177416778826915272269193214138207602576277346355660309963452498590843934127311917875207476544459636580449970852135458195420050925818169338695252582943374255773277537947690196287848522542739479864341537995360063485244100722072920677794502629152811830629472906427306746264836882596697791543280306098981721580022974830910526252866706595837708202622838682581942448556369788385666630817684895498892619279889541202103312310698687804790207949206341874192435541487380898015327746127847209972900747227144362395641495706870916274291778148748106247550354036800370012674491731999463981087900897078397828647556717368521625565264069655738446724229139379682147025948878093577551003791333551309783576369837012509875137989343885286674812560835075341586360729393865211476006820218576567059548264359277085656299476830451901439610237128847967649860280162471539310846487700052671847012804046951420858730406669612368795952089895803426721970022768656024113990287207828301428942033318348048070011892818728769049903549378093207067612199159943749991680672122550429824881137762290123299810195354717557800272602732828459267856920120441002748711266985449598704807176882821830681150642631990629410505478954831773761350547477101096609109392812652770252502550487399947485131268251359911163977327947331286066339757619081578743217704371828897385512665354307040083969387692602004814999632166673650553717660801893713915152147040862514514151395870866055963182949959038191670220268923903372701231111093866440340062025323385909450538816272701425204185608616331539406419726678385121459771913239026456627197633649735600939127575687849197783787863504476822882410718637867104441137757564335943746330333323648855861202410860889627139707122752012854426451619875290779762411363669261734173389974753615362338045131911452379811617509024320791876614047775218859922132176437641186826429260548054351499622036034462397776166063370908905336689302939154965117042162149765426893458105003480493700066091450934293031065646740239820596394056650590376857828250750389711416721246135115530883347346296830735029931251472299390809521649969261828047386166885387263891327197095648774786637358691324878612696057942287159552856934896010188377681007764005054086229850190795454088208147640609603869148923556427384536237608517065520502493829886415442163558649148233451928502055279864215522783875818365561311694031720711525769150388121378372901373960054170388995528969595459649503962371814091263570371318220351633681115311582783504382645753946887073912857941140975117432407090557628360132335013249352828699574593991796910323587145127379852697828891777133892307575365945397922113746723177860171849516580258679526519262470555774402814393306466650001191289020260741300280304570885142346805114355842363960133574908545204854666167231667895879873258974673614134823531588681281752705322048052223536168362842089755147836160538207325618062218713997837526889921921151617042364614551699013026813690202939634958801297333397980906046792395897141747359930396720956700805291763789629159720764746365409616557452470673275715754883098282752654291501534448538666095793497961902879984695602116581189450099712147304923047397412580152168635094361425979210767613793867743502019504573778150099875126623670878209448745783510663212122995632083330996082812940267531298979884421669747585309709361492750270384950576519116065486178824711429307811668689920303555288908056356281028748418029915762155196918901849656812369484849121578981633037880537465039663384984059384006314487348070248471092141216682458444997471315720872204573983239892637523443063391753509987971499653436960983712558376795846829414375374259948940160420085909819960214442306388965540095954016977567412086376429466379616087595440045234477385980826317880729547272716215460214062808557484554419856604864268746389783821180013237570066410075111349569518438222274068474589416760612713722810874593977610742953953827382069353135045645884382157235814310513685834691475726580601968676369324829907987393040621312801188015226377406488036306364702877697719804420831482901198261751010922657363978901743452074055589747986709387078454951174281570808412081761202740585053849204131063378680750207137144662399674458897657645725263947686327577308182348983983797675710552680427578933978095913994512383245392282369201934096244019625267158615948317157191610507274450881820056621041316300667012848908425285360855321648956569723165900016277982317640558337440893758857973622599420736505221335289948056472919381757742270097662296780440882853115414520948046183907901266946856473948253096165642623669245847409827417827442017454061795697684327913620355383616230055866351403935055050915610056210376402442642271050176573996080466945518251088743621277001695309206122392265386480472274131163933751155316910882711463175938384161864127440131148262638242529593842196755740810529754069051088114249550182181354661541521598089253712349706617987089347363571077829039582561306642910755663774785836071350044420753722502822513944513976649174048179183870745821037526868772787963891819471929001142682780703698579145571847280841097080350204859690335243363247961087601643226794747995921437130977162634176336898088723832780888126422407702329680549584340132856134056296510207711176120751253865621641969196158027662644184854696114983869676337744678456958433582386733564462709900498622201681666893883955511777572810487263183264595363850199514131831842016120284147365001095765502865285819205929402155178840743904057670741270978176720554810892144110727905926468879186230795805575747585988878300753873261837105892993277273007152391694995278437523325482141725911898763578693281187691342806566286445675627917661240742931626075721796200555866510313610668757104805756245334253666621269269029981852285096515939327919917725340873050035804325947797898585233105246192531448522979135734540458475412819571859297141319473624096090978520597124933898536257783357910428051920474661269753360564112000496040352611525122766626228492486083881122789537496351026615282593873907919868670998147434531762650674423407998448467715860045627843344460907727070644547951404846835748957566465996384582223135105405796229460440868861157428110132623034384007113509203608480653807250377119324154521171070591160382497539127810269101065282647220529742518944498933058191513901778154971090550641913028145848048068650570972333862878485317912971103539469872339781281250332566232664624055118118677996064641397417955060045046155251152703305781408068331428407074999056870480327801278783526956599681190115440025142446123653574320749846126660885398957794179790993893410284534395405079284947998226917468572491288868372319273837443153535159892935238396680930533430516507370229597085806627184077929968230318523388620126446173694497712462306787338993948097829558606672146783113804642554444587577925676545705644790181958939100956553046759658503435886759674494860767082987779836764995031549679737611189563190975765049315655925243853715282100338039478534438198472181414250284148920944074484372818218707779469187650032365518998371201900417136149284491083838452168356117584475613657970509421014283054791411641363719496000817708285380247500410190900252991768507377417780862404806910929350376212608766024581368700450167008516568487316057922044255102268544948679795711850673071677157404947091540660874608903163202252091759923260073393227264792026934478199621321735773678221650564205820263844315486919447084263877814344414366010290164397669828182224411355508479009684439506481815711836526741520842185069147566863844285670220012451939069528413173051205797651490497264654314417275344934778840038392196053741480251866041319831816341429277500859296888901790973827290075943388979194527327040696283371452353909024408028881223044394284811299818478574021930456751849646027120621120496568826303581236793770471970013741008950680036856999954089663830796472338868766221850139611424973602138646384117049402882811269505871021223194089085446999641037942731244996552189463364834890877165355837042069564401248915548158872113800526462523994126333539105184134334740508808516558471707953252961001301255404020747900433798670635598552069373711471843512646893883767902811624347582230942245046930712353466055856946293107814694122880678011068037016993057542390204243434397597315355810975115641306581903498595987680630461603508873059025566839558837385432067071927032116168832089958105758918198399368413067102727532862431144966269335743990274726728843484266847260922564639387518013251262794961610124737009140586590061355625812666821943595981684230755006454408720340275028761013106776121727506271686585904887290933899911245388002628768457274486864368016021147310354080955876857775034403738744162623880691419313945043079101969637462538814255973406956466142767009098513733476194794073307630316855264635279644904286175489499211890072681426655509664804778202490813422369754419443871862164987617112293014694077343992127894034335343357479902912476137456691771645466231441514829559115942861066115178603959600154969767590540129228534749264585465984301594939660665642089595857498965911724024461940201987047815863623812571745141322199723495101225984188773356256758442105831174231952213242735441142653890874684385592566143763115553452479329777432856711312341820588781390675906281813814813434448248449910641683112294916477918034944444476878975065042658003418670486453767101789406582813856782624761187117601748527778451489978441855831408316480635709617499219363963876416298503596544815168730445438392180658105333818984056813064619211882460957140068518962586076173940837872972394432795870796429981611899067970575148758770368471535786485633249443798917196277585215490093217734615680206252265502918950357588250748988903668232413531329900442267554548860215751542342068699738452495317858469955246748275588981381590974781864988418140625568719146446233239748231262247234295084746157198454960784498162599739145970472477265109639023871211542268401086741125490543733887283027517400624719429584734155402766542743445253843761081297321592811220668930241438473504178845799696045053770812036677024199072384638236916678181965005880658014083218683520802975393224216135284690121322381930673886943293331782207636782751223372916637652659566154999195804333885568986726826252489867230206884349823429080321517026486104078899327565136328858211828260164984703358644742456260756963397678346886900739176168443592516532442608411948052036513398079048610183956165472531381250225926156723599359437173592030374750101262300793067655389094719843992293352629459790749894799118662779202847085627878484765061111269893929615886394076244031613275843847967563191773138249494257232947507797925467601348956950410079193203822148912601291044629831213979120052755485900433760377047417878606725272444635204148162060151065752036342639285177552429738571093955858318139095303500912888568334097309048023328872996501398640974481018674255288165491558643720309256653096839809631855853464384636335031447686538747341216511849975386066809223078633383193587732187113366193784905882390282350655752621354742063761473415405331345217991020539375676247699587942925237226234970970248312234967947379967117647178376067334952180437071897331567915877220252166087322869324898657007305899828423399680490340615430482432763575276044273767884895294402207897406767639573402457231915241876733937939712536874333072833640996049016987178360426269245287815289793431020381979284972461925883185650080685603945520661496193809214679475028958150262239833524629164904701623486245829125336598558418369564640906774143157893374151518464318533987283240990488835187908514328348019687440968134443357062469535937623885605261686280163876656223002673318148861386494773874355512165341734473234782541391795557556632680653332088589689259922362011497050422461077830526174280516811615536693533834668549363315430879646117618056850366373103936676536927870297326739593027348741370542820491200309101582025323674550871848160464690824979164185682362364665810085747735678742124139458185625986080300340830754410999917205458878422915582777692409413330477461558774485505078717807604617998154712941819187849241486076038440168996050079779715322061460776091446378130624834357872183330546411861897951035995028297927932786533880867073791208878273605882692720476044169110101922916576957173762314803470676002643966506124182373898157023899435133515751208718676946851869052978901549889758498948051588928175698785880513112794191847134669083788393326531942211952378983166600932369133225046855636011000621250450308956851259923249695471632993428466784095504228735524039042900480879557084422554162390872141919931405824382637312650876447496341545344985882055396309412283219764095139618171034986367427859497067009621076951163065078645936313848073038412363420193003022030886305018822428917233902720349725665425789228652160117828733222503569490924060918426869713050097780054186910804548919834727969275739450936254228712917989666433047499018080481659288553358146990346833478740319472571777689855717568477412306105384050790582209049772212404608125427984616948049705280742270813677369714023423377189057720690457336821151728457021595756191297590863852933353090438454338291340231375637592814935704098701221233107932013140488430461942955163082016514516987166057635448556841389971330779229645742953856113649128973566353070494261975463440532506422745719043366071839504947955247294717008533530758377888587099225638244505536164819678629007012623416809297407482655266080365311487450686819295701622363762286482723070736989356671081207685240763233459875981296876301747226724665457183341568667210774116134431214764248980798475475183777483692225210975759854738889079607887183734672518019458770344622048465353353833783258074449630872283498405458092322949648149592990599576395796789652164582132881662550696878737992432272264487574609286999965662433467075659885328805087809176222807457398709179835075487712855248969885480872014625509258963603937643159981289877534728358083178406456917138187845077648203242952790421069709401392691866131044664182730524786333077002272995663929798274454797282599901756763492450738799632944436084389423022133994710006628465581011315967492391623891556547323099235667771064831181476251370256576655642054541495129081895732898738214090981310229417517895455038261871584115235416131798974241902763765994793913179439490202548081664592966746923437060529299187327158927422304673415357989560182625049763086507085659839894370920812913192635886114108648082816919917574702729950299591607869760706170717382419706813532191554494040339828909214884983712870183827930788003441672578694407076879124673858242602719796684319628889712593904456283554776572995434744038123581756373652690831802391639818119869995545096372927185329918788756572984323226592002304636874997418469957855133638163375458615421888016550913248572391309728116780543084466840220294316293614622615842251567723515580383308712183796584650877714867455108633872061759164160390944140380344173536802076381418087011080309258968029306636970611680627440209760168102823371626279236609121206238295045189819755772140816524365934754037921275320898052496635318576003490190586698192903359067537507299786036581938062148781780155652134224487255669925025319834184678117236552392724801182043859203362484444494271271505720702256568952772405411168050386593394599623261637750345427880320659546832163728553332550884180563521982636836619900849714908109207195625586212520249818985485349131053018482091014063698889346665466468546163943037092906950260522420106262128673392024316534714221487532573215413864823466801037792627497146993637518410257812176769919560465519708719365726168899259312711646220222073608572950752029173183098359165321344986342853953185023699648950690946106622219772489069196894184227367955485858837603456628147069320366559658287717628352493114735786483136957436361080852553608234454392500661369467734369458172102275950255267952464844692108996229557889027014153648739967228314200766258607903680251910269245951062681376363235079936254858640126847799432690014964181736228703119256248931810952635981623547664215543334824056382166801451806588198783503701006226763869382481524499518436048184431633236417886067625884179024594968397693759625911670967773556049700346455253827694113102109479297670984143776720479438295192942881640935001827371588573383536195908940835885659405163751017389746245107492387500526366949552363794952054011586062765501801542577402486092495831837289338625773401085284795191814214607649103858934083636206297755778714518219335579595182662083316439732774886462061718516495225338278800723156989186550817413141917321956754195368018959781168229763692321433428608985724929289624997967927058900377971863955874643118919338852713478602373738210237660484741694812881378401153541445718897253898063876392992688075493542021441660786724219294956672940494364763767638895581953513460880771026071419161239455351182400806573030347243451779153382815779831404279242012292699277693831311174993102013906337089943191286681736482625731896517917098737461104162348615426059597038149932221091940307542671325928170742154057987964632087780966733523570619443656337601266100336739050443256798743728450013199105574425263263072752361397677844092276321672930496344566604293341288586594513126298232873600293301870921156978333214307743602644045998910061686520417213016889456030478826292470812765278571687902409328164518176367901299691869181671015007260605306229755218197656997035693437308966374257218905213970502495235316158491121457566481463032999689405553725712100077101466386210136092770283451134319729153354192090707113221555616942014907503561519438956478274364002883175814155783970599058105994723524791562287276703071026091611827639925187847914759355285872109576662757564389401224836994259878319075216445517581339134608934360976296695198993591006079433057676246794634697169931684958245092517006484935549053778090168242887521353429393999684122216853907695228847168532794912120942902079788151342579006738498750911367249841904919612691719501245674567034036435064642651697333681397466494897140823404717329400281582988103054266915283675674509089714281084723280504010363453913244847267673265607153216081999969544514459004998305157101971272540384276950198289030622376967877405416552779485216506939176585824444737395791238142869157388046332176408679369440309836643269818818124307755325750345788473643995623180103041272514234558133676101807476264581574066868750248165340413398157007014838009523395892298607992598505495689206341411019639507696689165201991514268226106328323388128224514407993315933989831339115417535514117557268730303894703419795535361882689453282100407728848850255466529538604041604573475034355058409866166411185433328606411665520943549817090102733938798228729074200021777750490343790197238812558647521875496293059945364099713914222719692565497019641153032249385691537709335053911484156530666107501490774733196229523063427349714962515775601007338298674754568490438833613626149553388964929410623532690023555850324699405568020331448790471132091828503142291632976866512672238987779898992720879636489355433477522747428605479085391451541904137613989008608280323554941440336212675566152169184961103059172767018040557558160901468695826381118945321048247403996513533122853661929343997589135422921491270569394379299583424006393727362669584272379157392956917453986858571476709424148904431408509204629524793787282544993696859805452818545776580121256771103919245747719760214994142682280084436592116138987535148629745547296409653989574746243585011261938499247499434733170561038005189839776900316145884282957384537183019609962290710096020510884176086612282536537584317922372526871740529835028872309626496988337540786989516490064319112531995036555298630161099594947065325812088006330984762079672066892249793608161288398262053279499506452125942561295900902198587291047303103949929064202791507331559287889033919033212168743819690558280790819701476474363864148655015763018984901125888813434789751867602071945720045242727317220566809737295474072648408188455907153654718260685369264242172738065882609387419987700485415296228179864470342466975051573912211851965749732478796544752376223424704080419626394076748406227753872747866923312875759967106394893374604415562823839175848378111504133440938010973674675863177937009235585451064963029133227231968937228829587599878403427408391309179433449752562434574433813059294642591248253983670869557363449707922754844959352952738317184389188723117439462854626952790065445305604561044489435178552283915933694986284332323849990531178907075190404487005253821664730256732425302178198205680521511832331383337522739672372797751613493157715705141459842054742810132827752484208840744129964900619578183857966362657024404887662886937778211613738238576536177421889112902221548317126357480846196345969076151245067364906913609625715129371291626475485663674620208465249966891038697006295467995655274994103318909950434775365369756367339145391727284482360954914200104799175363171042964793548188824853277541869652377108348871607704569914183431909834082418753557345637258289835711769149116784039643250319623021231643263828826421732802952227965144030048864366404357718988768294980218362787231192379512571460893760771172956257818868848091288500998110371696615431342287661849661907565257004322912165783336443712892565275796894455417599049389026500724108247344309033894958783086570925673515060356950190927734572392215795316483822257532204071553785810525878487283910290494460171781476774405176578447497076315706454553469499005739341712901630892999532977059045550235614658057355423127229048183156920934735163742590963740387312805053339204473178924086782728107032391911136808456656683306471493643076769982686002716142196989999108976962688800566037000552077053912704965222998167399878688630208218191206534282792416836637531305119914740384830280275290190908449005049534016881964092287575549721973319520385403444783359318858208923637711478924085534336632586844220639501523109245273380727609914551153311853902942787366672615705020027832209952273509643207478056895639790170637294128560433879963159695753169700768655051925645618984646123140087733171272882481691038994787918717161019153522036690933690357416479686581046683933614167087103342815747874959003812175235422960071223402645146366051041437654681468745260314818791019940801722211693020321251917579374192917411869855865097327391255278995546081695923324734638439363250749677820068387531863777032235546419660294546674555238924170946627540254873717327330666856870816352931515984836241373777940114468257657843685276616282038320462355456529608790974570203918357767754655788932172090318907056144353847833770280644400306739825914268943430079706892780360085542656674222800946632823114054555139073662612034767305663899737807365019996201103763523980996306211644337299772145081927288817082268746491569617088001436981638590597029104518354531048156763399723966982655569243050905013058130711996346543585834160257837591074048242458347447019274357522480422544228335162949203504768777276991955183778765824464874417787595538253449275033769673299282930617090657213743829463266915317589329886649163672448054501570898408671125762697216938972577710835235607553906687790775722838716178013998031014794751171426408720348407222117378845473776969388076185582239943260617577570692279274229969784936336802038062009277406476287217203111377496219505201107568264780965858862919204752123032981826382837522237765695360396444481678530456761075532111276070731347725694846498704647522100738430348219902255445621046946621757800337377633267243139759635507639150850846482969695146445608770273168790885179665112174173565284399855986142452602280024258888895859676132358561396862181232418913363508737621900193011124861441956685756320790202162040304478315297728832882756381298686109260116338348078018725840478231101508984204994203418832128408276981884485929657486707602114069652288238767183598037733453061000721404089746880756984232703962469375159784597090278330166746968339052274238762574603362637656957644525433764661591103316873069889218188673272571871359303452373336107967609773666305961957109288129964240969657278105049086888229220790899400981753130051232110677137137506972773850900362266373677919486099138953370785619859187532361326712806998887510464207663269028428587542011674816262015868173062381064322821198417738058597004290624032670125302181527126248406090465240608995825973366612504350766334210030373943490471141885038103719669205568110785105094454240398437392612931044299143658049736911186203949227720825971627498346122888525623132109504452863938093378389583520126811029478544624006338544658499715058406099034268361772092044772770185882579197202306078902666834063153727889565871041990211244231677175338336636052645521053128481750597655991359419023904935985355853515726866889433664097526202061046329406346265824041896483220547312284893320067920119311369211754192301335940704255182930686939901809864730358803944268558492601620704542691944308514872386038148585689753367985911943059146265314766472083287073288034546978024708056352422821674822215747359160116849970280224896271434353963894092389127800664066147666522019116717698008420942695058873268540398705666035393028782318080453690402976851055057644752582738801879629653781360823446369478377101109608777573592002003862060628047512370150454304394576344091021168753924148772112724032607488400370962635487600188803841171154603805700040459014036226035832453214045669009857403711551849906748547377108028300569701776803368600290143875161614517141301895179797143121291284827740410550711481628887470568278586649644139195608284963017468974814257206386994606828251826636672623585061396050594281964605191309265946711393612143348780510084449953102383258894396621900711393213142924003216438273106233482509738528062634652699224150163806759938261805342242597435627609728827672212569122982208318554563808485430660835878119335645443327145683853445419365078887767883213917763219940915895328588002470649882946923009851857876242257144567644004559476784424863333180181167429733078629311919160416758607459052552997355840911782152302409991254642367253127221912314086300360129090377136956386208742379674651047438721084703185912111936830250741550968881713074306257293220347058445721681392914006354800465815919796399397564013611468256971673524359255269518787464924777707865028458894963439293419173648029784361128101824838634314389157024936980599141881922117101974305892342611441891655344726591288647019432249157044745532806194887469158843284843482526344905039844717947182525175291894084881061123927777984040182560085808341295402725046837289690447064720718486805263304619942325144370993766097015834805193347088942204956391358052925226840807500811709872882536134356476100747931404577396261582361713086590118245180744399340698388273859644649026595746204818353594884467533368067435300257172462374045660537910445007005332387870081531235301389556536345553856134700159870124687736346369245716695753671137768236969596121027482410670459981207232836173319575081636960179931624986579164604725418025029140579187449942733704297601208481447610113147129137017988684684279684985143525786817007456389039589482668611606319191410212202405142914981570644783416754261667160573197384285346129134863610594080517321499425485478323571158240990096829210375474967775997244796840518737710967863607988111317494795489702921325114046063321901771681120844293347032643115054494538973438640658905891864486562168591491440241277570993843908029130759051777815943024198869652067531786342835013958134788983661331644119776930679928660819736313959152613451914178459738847000983887761995180783316135924764156919216800827253449735081999408774141250128841188292426492597514054277097691719407074942381820496630618799948866621062151252814561661031362397580063874397097494953786610840901424311475827997403094802256188884168450767166416357174884285009462497519069506896173352092331349413817537574994530500119211563909956209317886107884500894691596411157087222487131467346499475911445274903503205660997375963018107264862596172168127344338280904595443187086127837054642839398577239604266455530537381193688880047321813016504572050898248902759745987375702289306362685971709666647473980032146045315410515764446880525442194767015410375379419272282581717662159975530612872536803115981199540309040237184879669260534371269107248778472055217377257801804090621347876141956925208710898054930906015204495739743885674131180525371343025606559242973905857010437601820264933348015563032835826244088900733422475188589439696540691678667434748597370499562914210790612062660504770997882382974148076465377787239339799496205189831677988349811827684319786159409594845418984774177825660640972858297228446786514440568709749637970001002530145687027453235867243634985376706501296795580991824285876745101096259047034040234032544021781523972410332797937533533988379760269851149395732703560104282494107200780004305638932416199357681496998772676104746679930153743474996196924319199885362708887178361488946269191561691685333501525329203281888068035941903901250487856076215688925219865287439484885761317518994601543020445281040553192246269137678280011771875337257554441286005432240656844169232591011517624895411553458946300705062226864253797393341890225125759764266924625336832511103137700673321841734631214142873115784193353938010420429358140209952938997563052268353433649184827501792375876288784995972064990391210119765304425197772702786643505284822864780192871614869082833470786857510052411521429966869933961842251057258500123983573703083118241441957905437517226531631914390839598863406912171301830459007633877931493453545694457450056763292206773830869179011268966618308151757760887904444067954449348880296301268157938139964548147005226170998704616491236921823851810841129765574322056489834795366645706853306773427812892510311066565035719293779834136556683818989049451292915891806299179881457605592368161550854501395255737290334770161130490414752479900974871645858865707230387816419177175591145868008671036946635369449526909109895236212454653762062546836245776081388042645516511018552341288557336043253027201820961338969813505619067450808867060647494114574255246444699290315155597908315518264111717780823526838165610477152182446638235571456521596039197612677636346903588036726380221234222009660208737186699007889129572426223050270563475059961298023659652818538485399206985907171921584408822704800930424521142043885109203463153353136508468155048867956948609025615280643887639614680010678356476257118463809592946374901025146390138075375082201930723545228196640589964780132605907546622656381765249298157844801406947350969570812621886623423058674251705440247572878746188128725559331928116374115998042420931261802866903196180379069555177995668028647841618057553947372045879566466769299747188291489861808948328914059061526014497525029855960706643579117379106276769173150486603810790810042728888701817657202408822298813417615399101046969668487723987286885337740083155427540648519789874686606758757944177619609004078055699765571918804104235292389690940936298297136767041284883000845675850169569973415358699463046842056240824033206724758712486510837136187596870657360016767716359734243729405328281538726175405210183322761867955054483579637232373943705879734682667407724034962370566224777444630195902123517475167585682296534209829350065010227466184950513233684214562547746915849449935048826963348423164782057176354139363636777388925432521642183051289620884802049709691097510405526017555633282141846093697927261956397886233446604678513330403978721737859039099751028866065976548089800909987188617111140342665364653726276077004340430366502400942448492679814355171186401720021657105680273705420411034648830476661437520739589608886430308690758057433233789948217124290862136247013238402314933945859372042156645775630239236074201598148014959766470443983192901406375892406538509956660267521383902061269811851506742523513269708750753578293665023734214432778475043831398811449563303204537699193697516618472133410362260897119290096532750874375675590166878880107202261443992697680935449275798336165504148770158869396635982728765995182397547836170045760618357065037002392233220407547258270372100337207509314788339766363546192850303407875317033821546637890733750517402011730045073802433351131753448848509165825286812028882169862787748194394587638688407659307577180627153103508419716802416446624772141196402528993037365009845626814758322500854433408170090938399427649083019433329713599495253910835731137363586394250714561886531514775704898733414583203142705763565137960399757923973947234509732439857092074267388544160910419111275416898989807614706573276882968192639740164154717195927947711305563118788343584439026492868026661434379080773063149584443543445136166391777677741246674422680054299153712281109073658063985793455626058254746110306913761467796127038797858018754855607219648485625277946836753127744143004641733734944005612204588565132137186566062739966057773095421812777262422476329812193658388818995515047594861353968124509073247180666007781011288790649316313353950893429685406126744455955042370335108897549531181580532637866626634280090174580798471152850543555189479872561081297048478169656655100796531313422019399543650714453235302724081932256105822522588386145865413744269892678695199142946584514221182043791335692844662251936740107057030944651634259757426231746030671451045947979224273405405222822972162432661284704492709521678477214034752773564942957674147030420932349690840179780877304539676222878299187134210182684851387100337063134362046399810670410096121872562767120685874049861917474581116287866434012159921984541935536456664974555210864802084654718195525152194879140824152947189568984211966142668955022897030005540052455874294153328318686185329947304066316425725558797148405784655123923907528289844006569555679390555255147759599762051211866238085127039463696418160578037038261203107039238125477841309830534738881058559895727305825458299907171842170347174022707517357827581455475349667845889324921197362858709421838915481221455265466569823296741003630474703903346250143347667538658569666194298703138037251171524041888370160110801374664013990808433947989550763278721296045784684511041287368874610700786208695061860455685361811270651486450298674576301558181546908788867358737853282487511303165199072689386723845158307613375681390183989851890780155790083394982804577253518333567656814679082840797926191612722680247060452689778291926512580459117813650967229902378683219860557137953878056439855428781845873433546530194135660431872984458839873872605442652449575941016811014415663201881379911865749571441056076758725682352178704747961237078181745818554608584752892950912859522790904662685959121559824072967375252682349101707633966616491597438957547749453039303545357102319134227074041028128516061985089322532198975923374792289437590361678539728585123554876590832953765909003328589596801652423655553311249318926774020206814467518461708583743115223360640698726299701587766019209533368606680943922230341066084011207966655740701646189847640130527497603050585784898214814383834244053380440230672669576011989755260416764331311969006269951517531894570585541394713518604713609214880213998794772800752943743090180765875460440731657486650905979930917073627010389919528784629141991093553567844840498349171769232738274007798117994505658380402070640906367755229306112655819322483077722862682262002640597144266108553438558253654221559554328344125463587807878977461552092693957741493595434630961036795433379686574345367122475390381254321907255336572626463702598903145056243629862110875938812077709644622166115554655423200032931320743909850406406976976469222275921725174928804868610284008183704331400984323173508601439617426219900810675690539251598560229667718810339926454507198990441533582126285763617996138799977535917959140527100825682100337229902361790031035491132592002188442988144044028928983285244686826165219589776251143407334273137842187069849269185780526031593162681258933351051908579881446370701672697347659083147207814243470616850061962819531504196134280709294400616856328925226408599126382979845451131139571411802383779385288293485377489663674686194236595919940840838768533555891990705101836797991177330695908732450244858193757876073938436207072904643482593787436157081620365486867250572610351236915675762894000227159822545588630279304623254328459189119644626305814145821914761092256094835996267503812058190436908906822033041665277319883473328129732906244663594819358574244187169424990945102095331031217015399541236319403748178899997389964851081262388078204873024582934431399664200048936709830027248369600942141165465290841401198764386016463201416942741666805122261707335440751689053014894996523611086076261409909810974883729284164861819194370317456213304907760914243899541107243633993743599589179769209818944188415653059373695724815037554339027967586534353413933003313122494188085690979837510702436448063810039573254617284196484337259604062865587327512642366342785119025406717387384389013700455482059024222269104084825250160309415468059601967467739254899884074250909360622755419434237350431988786885224144537663899994689233706191219546975851021570686080532552713921097987460201201448196377234411397343644741850449646328290269896101792064148054962057178793778069515983025044102645423243086300818740446361556287559248493394510870703856577338040942857349351446791107844246901012149894917768117127385705901583375550555959396709644608209048696626138588500600738883110352930860703347472560787735596088977297026264889382420999254665849841814659289680729685028397608611444972541027828767097687357155981934978754585656904992545433178923469412967736161659037399077285856096428471169999766632883178977383493315256044207431702299530521989617258451532106531505839732707386020856685615515566913988478720850821368745638412344522524801965111658813232788849733985869860840763270871958130186949165881644795689797201444935346637327228686591987494114673019453417169257672012936341975666129431936620440254497498238048664064015789547630658525439841494162155607588470444573771977123045908802309206778854579259051762684706080128423125951573289725727390390954078991230822568812836619616410597222461550659442692343753288690041768075489683307487274945899912778700995885901566180610756476446317000109762518875849495348363934594454647122893045212664529863346434242258279012210585808810315091124228503986558730421087987992041400275563914639900202762973231553049847681840569903250883379726293570759858564700501192524026612597005610524176100925764222720643463851578709783224418460675333834040931283836424684871847502796588047698008092277265648703846529485495804730031782946592064683130431525334236428167002199964771550275677351420126038907770098805296763590947742729466541682528085777600346081772650316074506196046367150214912389261349733042930360073836674578546647290487937243233371015687132413187628064244658456022555556853047186237830556926533184412571691280795618176218669658869517013412429008224959389871940329086087224376131240180689589133939708075664994297803240625095423339091815639184044520116417170694731590171763897168053443667236998316243186541830405177692149928223767211129330062552150244476783241621687335668131027136651028404716389091475093206935019583279365050192242833736376091011977265085012146207273685970525588692522583803057182898513024278068484343451325604932501391830612491519695224530414583916012052164017996558923416333741028000367936395524712860095629267445633360904058595445953877829758630485452510860068972758264178660923805464856419336628573687272492317753873341763119065872570543454900644615851729139051142123800882464174605473699362404962950622881008677912756278396644999717624644299432390332789395328006341017165551863642101314541473644324528758444324517035972004797809567089252067265037648146607258622519555805844989557241887028188477275346402879516707225835369134797615691823530130921308641870888658281790671078969134420507587426136829391058401998196350646373878031300790630668586576537045845727950068221449562146680179271634020593950974552068858822531974414404967029560345553063245681333893886856917190767038765775223634178332395564467482956647657218046053341205755542272696489711161220860925838866441646042439982892689188518057513180589390346252815055894467964053222190944553301166328101959334690084468901475804110590707479670700972930316881240375776993710505079821416889736276530880430916007675096951062549096118538942270626045642639428206370892156332248389820717533195196613622659069847638018162449016015486015966077814452354257110040970584970407450771555781989936037590066856037788907049339246784316883613787811371029799855442451853843192067685838750715597088809704073230356375063906345516603910621764028566312117363588206786783241751677433264949895307307116073258502080584768322877848397154897839123610578162171908526839514120878633606173484306889379172154315628303304886791765999658231476362174899584179719805059190136795569882577419999740965558883020382629128704899872171886183015960848200732444400877073549509071479238919850012134014799568506361613391956534626858338048622587042352892870402043734265855065876788059938625889022532729601067938448771247614270464017101265107203159489502450955535142395170672927079570283618039851593554444662871288291428591876709803321408303252085309079550418557350177352757144862825311499862425623196564668480823633920968140129627064695359151477096983054375920520625205403596117075952800681980848801650250036014178561629279995945132159700047398006623307988243353662845333902484487983207271309321298382232700659805040830393701563627462493374809123138011162119547592767967319650764074455120288154089208368816888902326551732967428879742648562027565424160864262227932377442541731344470394322396994988235266809167757647855162622127278473470316534076333939122587332832168676634670841088055075655813589979635025067816000289439829303028929068156075402851695508459112051484395509847905735907909367039352696584614839597715495131268796076664073341075440706254991992086099668576237766542744372415114368406321773001641502401171488210392481340746260975545731463738183281581398574804746303321633927777555982350921913707472004457717248850554076264298818816469582528024977055451882765928779626087647513475997583135622993553161227943491407466509667393719390878103037930974752977917799160090243762315739463615190080652033734042406715868850125367224624437694002061211557367235073967135714836770186974092403566413460168181163699608462872944525451012635785154910427445508727218068158636236836898428508330805620244377557613946820430903758613308883175317360970587001721164181426490827980524884647148883879470898008338309620698113314857558907863065267572080751779700687040718545198748162829405732113389980894765286807482390767297831138219639443096641546532042502297250378448276137295409472869274884774441329092249862157721761843693196345055445787259479042288501730859757707809029167099471924546283217611460983405704349444255337333758503518236991506191760733408483879075302931449673145764551338577477001119492914870091568166488530098104066585955886947949146961025222395941378108386871538956216924686699209010485281785733288544540374035661825525951485020257873919418739874458787308634341151113351470529553625907685493230480529876639205286665210423183315628753044569227739596330698782245655502961647736015097868243759527848787782137687217028483113039181592529428412381573830898478128824275863397839234184487910598827994872237965980458198376945991257705888946299521720080194651285071282314420518364762941962396099907520518749238368045446506886201495300780518765050740048964020342352957677686269631963407184076934231680992746002010865993072921633466085761491620726782349690565774026968176327180950478974540024366076039779994932025162965995160057617204402164476971112843230036747690236429345162485531061116758260107373271842326146661315533715867812928454136802621716049839966205005265414910623964629381034204040053910199086086412182855677135058748847747936572779015189443796037140186799710749194490243166723608890094431849216260655234911935757678113828589498626038130171591934292336202781928962468758209501234572808862057672563867169365878609990413555155652558623260094005398396529644743284838829631721880234799559934016809069342281563408012293167389540861574032098764682207022312797276362733621835779188824000838291791861435601014728176560048357212299435267730618764803476809939357786052173500153790225491053329641728823946299056642708485550700885360343011555704117097242813039941011542241440319727520538191133361966721181885736867280715552018077381694933566582637009212882609102440449838111524369149632160365807456466826163289038571493246436966093398083033125263654051773176109711048737324309227687148610168392777820347588770247055217315222395355937703133698382533800011140187747988607043064360952785107487748531334233454703203128268581613199255962057678276293003726766112195589397264292245408398816860232809933873704052644864273396220382248555618101605660486283135973754816402582709695636503765422822485634721544330641995028814404475695504032609566199307438794675081429356272948660567999309211233594020109450771493838769586951470238802594782952127449079896478783139832122413102565561339962415942226436864719207688850709155225422257588075435156821577849417379733771541555660127627880513514286460323526097331142642651984601111546807024913651596657534868354127914394224866188230837761890905750689591975562387934413405545157660287523602065090710569857680342356759842545783461303284330885266973004525759786122611168029672453044212443506517478175726267370620573564870579339382527676623760527513395899657924490513149662214809909831156672127080276345447765724009920292470873825519285298723490132505394294639185117182313005522410921985292500721022725221032063935220819395134341709272719076330546967955729194725788777509066405740999674490152552550046136474706970375901360034765215613297789814640097913764801951224563623906840811108269330451955236781870617726560619385117743151822559940215354410826934926174811149526529018532155435746974994417195617663927353232453399578817456398758930552244475261189818226353616930254739050779278262291659407310402239308948542481412529894255615270204489496777873386133143572153171896328383848899120563329477248919338778300383696607659330267605062207766452819244201654655625433096850031363112691692239299270413206898767290270628029177533883188150819785937365691608824671728101963589036639131893778524526242090282677573830288264523187238661277158765580948790542146766892367952235589988187636136286982928559986042498680828261390709540612326306837172682671966205761992434182765217843168518263602213265861344587008172371849241468007497507372150818784782335395487404067988148311313640994920830612646380448057384955712365550447523226594030405491361405211031037817578365903418149272119874456777079558097017511519944217443999593461538163541866461263216249039234281954087303143217894340860603838309703240418773872787911804405639266321691093939527998546001949633129521837756257336765774236927155194798827667599870750534409102104900898500118809091244959916499369382681274604032783666048768066612949255653282168150075201688534821542925951144661563151113097027466706456743924028144816852309703085339295266631014022722546853881188846054178516013778814994012387798762415329510818099570150428781515721845085204796850558070826666929867289803721646702923456220732485450775935238132067756663956438897100917614173341726968926478682696258961027792178627765278264511101080109241974090257501885219277174576768634616647851710619590596819908084621578925602320678613349492854918216024476791970399791060505497582187942776403328456317669894393003065787281187666940160168639938340184019150771595265453838351994086843711136453147442825146632039018209693339286874284829566960594697383340271541569812039195741765806785604652087234040033463169793786157598364861598668546662662441572376826478542258535475627684226646934966047940526534197632076389403079542346658359792530304514132103221128186208739610781567623108051925088205632548767229555783119658189737788891167175080224350691387110032678337306844124106594854996048683207891255086263333873501870435446571892914589890899759564028270897377808631785027181209544697086484625828137362605847643072247698239701758481167816303384509862303303216987390151704148322337862500711806613054701183863220906440469258312845937227568130850490489396984461952515284919068715488493019632912923657878785618394362790533904887499152221380352398453077128295736114564207767439765330461491085065403833240153827056567264801444822975459438862826517913365318386244470910178405247874677151841015032032672296723419735643857930038065444017984543860745471364610711463436110031967840395626492542499063285468004591072198261060857009397839072598274853648123354627656391885476905530835262133985229755799949588121206041149904959503336809280767360681718913487226885334394595504752863213053122916297802548066268615553149733192998694003750359912856316431513733733677566394961210180359143578018071073857004466187514726697834748140514862716284652546932674239991645903789344191496430857748130861804366964013120207276330527732647490641624850456944375332386247390311060654733608095788821942948123859142617560635574920000517726651764020344493528864138718760445525644826445945216002207857615388114729682968304306580363932365312584571431636679634362218280848171546443659587929622385012484935179181097619907856906122624824009297258495302722613650434163474417527789306421552464829305192693118195369961848530610142644686734235885644468820518472484826086896680348815633795114915280239778631506990371475164495319364382772972821362793913342618954970609748727384127709220952351129780524747796468894911471460001060276363666510401079236726447163040954811965151727030022344185771977014630377399388825936113537922575919712714196127795619003225742988900951165083714456098371520559617707924198416296993785562765902184901950179903455914144075214225117817133641728221487861789317126943943439330574250377457803652423114285135427755739411784604606200043442993808588517394461001193078613550338726327055131241337385872464327574492452588787252634434336464196555514036146041771409476597236139570387229699198045246523055655568536150498045329118554634433716875512005704711708986311119578955415655500284970262594440999924711993886799625787125988061326174405973618461904329573730535641118959047154455639957859404034837864395937829880228173622580549258056654845490018459380401539880579144795298156936778732056449940776444666945480919818524708030914838532515752682307263987916325012115934065830375918209362212170092040528598578124808513098470468608693980421325405301945438751752997798043016197908979360761971960419851231634818737696181302569408868630415188360251172363609383717969005561012260857765660361937841832885523345780543138423647872540709187799095655720845159631323578675991200141765388910852527502316016725093105006037024720203309230932818062253564814672726868975186343950115012843195888013386236647386667577525491370182508342670185087401427779572681099872115188092178683985767797208088878971776300875710583496926162941872974761094435657430882776094672671155979050639968079311044594124773109305774587377696261836874419947482090569170559926915416552650896358510215910239803304964977488449896403025794571434572528355700596512335566181338975440200640623901660460830334253784126274989923241953762469771797007244696338315507545250323017190434474127572412483808075084939836558003142911475754546967923501645872687397970638923890211196538495160893700460467063858110729518815207084084386383145383270739155154156827593325472367051535856785222155367717261832221386572018172817426669451263075922485236062480358388783424361744236527405959074654769480956738665668789702294384085240593034135749074558307867061828903656704975464721378631304086665684916047611633412669342579447665775670857691703156563603394894679258831166208260968775831858904408487321673697212021438732456676733984426125083856138930071016079771985118231065375736943705984488958469514914806054250939164059990290161584617506993386109103881892387581306869608103162206144947181622976977126572372393692324002700625863009508329422896565398123038968629572900723305106983079622224369473920405473153951078259829395085823194304637452919369863741997525516538307462194645623071547779513026739317839229005441011467647368146142151089313941448375415566513263195673575289461712349226115370932421552911666927336858778617741968156010877211038866952597601734823353651010635878787428359853526539118446541462697733678173495113317769795413056297638109421412164537943780886540392316352957140378469563467328894889447437381389309192169060371889010485073968210333918071118557410108395368363477705957569438494093783805719410058169367271825247967114967245401726363606905096612405026537525798330638395827842028811438173061732740199598945937234049657676677502375753197333921479836502238998112748497627955642703367372301122563160338339895050661644137888281247362346114306113168355683965850461355593703087432775241793568535297556064174560149138525165098398099848692135241459440685967238629923137932909247119056384673055192494473605356158762804164235585127563681468196700295564260656272735587795927011309893162092947615255523063160442594439449347549299779276214129448825575632209428942660506231390067505691719805363481590452784641728486121150184967637643012789028387607009260718205781030128378158983293366805435693466116717859349452696004165337583699637844505651873886524188128386240330672644419867274785276435012775083370031507562200403910111825565809536242974617574998509809816128164769595519841508934147819046332866649823277508870154921037762524008360463140456590915903750046528656427332499771914683546117105413784659099747877199125457315968680222595872105925305019410926126833966613965312052399641055350316501341953854997502855005667162036305903111697281299637613488204537978016896987429811524642912090223401409248949711211988489305150431800937428679440574446614639052282361040878660906235374341924619933316891260874966208217091712848952286245368247375766780440836253249367917532426288169008170973750087226184775808529696709803381420459283419525196702465825981930078399101331650742719642848911260250552548592585228954157529785906026834418913007082785180059453938278202574759273143243423946637031822482560986105817037675908082888842722685330335372815545801859877457500053984643711977799666556303038005844792930316792818244543629758688884025153480869509885381652079990572708289613840841249612868887852522271638611065364014743104710202742803068561934409339001406507072521427168132814661681471853534747039866810857526747313023370028202005802055155163214981358643998313025164897980161332257331174624440553920937539920797907070177979013876119697028874606204436514565438572300049663275169381148125578723221729291287011099212703512697865306670939494510076496996955344597834476119377540798688862860063259854498141660852486715071771423547162586291486442284913427018545429657774471832540557380860439690336119729908746817495939673582424752404441386052833878559560486195143900629346739560540903482343648646890024138507232072046738432364056869405989528993050291708951285863971977405263608765144123644360270681630437167372028954439723496301437437961888697231332796498897550437568895631021203213154196854417036608385488202200539976528867834481983429579047621693772636636605245920623099782334980323178756903234006169125355433201963932026038635700390499671844789877202190756752505897740567876672416807263145265634080057869935581829977256411176095916963394609415425277637681472376470753835878810128290252805523342377106015335642404548078223281448871511595491354156773552555207489162728201215847973380727937328656356155542284021851833498544711968205127115557063225627385530903102167468748435000801755900799439182554331490907445450282585493912210560998295242509962518512412033271008792098314133167665732778169599381782007656929241394341511760473132860776765483556709314897066659924566044151152634222415830211215197575676981065541543220721600795225507084187910321468442857307244720315291726864658985679844269607707036568193845893626243878686302170769645680534015044546719910519169083844022669575746488112193697185300917047119296739671570300182223488093872345382072053171273609336072753918799260325178580249851322075979938608096241718620850532550081848684801545558180642781040479064152335761124943084943747130144889262849861566218096838169866061203534978257688004604730063444655693251795652711150205485719614012956444629584709624555748901364211230188166736745808228533763017499552291122369444130487235449765457707157933336084034705276988430463841747085760332000172009424828242352175260944668750567482777629966081507348689740193942362177653913567614268720046150869843098177098433967881675540142977103228250296436520056711129654388905659123943034344742721750645808106017486034073199224777571012161894862636097617342742253457802751547829321814356316225491337410731034664571891415456387045263630199551703942652961921378427028865483053121289704313045809648030554305538959865016652403546250544032318878986133224342151935972089702480820848000518945775878962506138590208692029768125891497416419832212845441125457247155546719184179504764643956745584150365986355194855357637721786733676182224789454850329436798381852325764905931875017343905443892057074016179912545035157100259056878139738157516023138991981229177910945207834221619813545585903801122696192708221945954882323948061405117621064129401425518259449090502875350424095018820764513111799970409500992233182454883953542955887234166032221192954395272522620629420690127488008412817791852778852783192720718412537357388536976967022884314332790352785025420244204826112533304987240514423105537571822940596307214820007580174160088375732508075162410379858878493131977410323695010627047487429592250037680613211843336449864455161533583524844382509752571950230293963420977245968592821195602781599376452072338486061428951214095563505283630306169975527805060433953648838565429588227480399905061991257462258622357329421572562957743987453535347795533184275975298391233282452855979501280182728810866205213605622739272886229685245386725813027043124843454294887297927870225825561957070929790275709449909458642172539053397496007120613482832604300636026080277598937119447873820156055994175943053619844625590320011667589983610427396363938950447718930204678498432879143733124133676345545252979913153514977489058667770491363861644088151745195786969757398431551354197550270124228091444515181263788441408457553666019826957433714691987899662132032821387233329901390223985435631945134745167605308397231428993398780541872496076921601007273908327330485770263680754340901386468398568955133165809805299907789219368566778052709643316652169883415947631714617003707786559996433561796691573234803293602043516424311661202226764644668546979615495381684256748013415911499618464708657610088758982048118134966759990835580897103886786696970503200614989111539066738855297821023533482636873663714623914035984007082813943148467193228367716830742201692616844684975948354042317868230872447779719718004343186060426444178678833230643148360252740214465978892336214454452203515192607794946776813642932270627022892873527832897673173166863907562360727654664190300517287655488891341046859126979388522065658197019061328705458404280142762842436005511538411682885471018230517717618268892282416491718956087351058226959744630479780647859567338094661382898686617436240908738457206879791431347642513979608335308032817085994036070461658092359722153417587882616689201886037645931264202196767652787114105616691832186298453914328030544579612522439495867725371834428492266224374526267233287631369611436410972502824176399163739080849027230013615788198603666452562950628074090490707972893037903196150899200174515297175020202083300999520163221039937069640557596984831649557219649527992952783776341261695622428931513024794854561132605351082235611341333707994329203739900055167568189955936907329767069559359636590251771165659879719430180647082663722283762254207879612514325156473029467779394440793551169406271709955466829161612810333367181759932393109349240391336388707031781357101376496920571724544207476200130899808041527230426978572350202385474362163710253473926567615462951313716420494686170154354818240772031654873196075158451579949406498184068045563738184917780172398050568598031540764389026595929792370523945022197502441544496762391765204732850179313444357330195613645500813227037758088427093183636901767599910662766900696737806958531858866395392612900604000820407730339676363212375209014585062479011120285180958165141561994611684266364278698056060166151184860572692530664160916514101629332424885535927206633565657520437512669938450247138369907521532217270570192737835652448068473922336968935270720128314090141621083252201620008671130028926600537219139464969355860104557973183318655833256017601448961418083051068334662437439031619492177605401756517757119807659218928319966069112788036041912657790163834941473370777274963418435687721684580420190911702189228108246048553927850664559973537211443859682859038047582938570923472687735854275134256297458918397306619109848646886270827185388911445484932451894952725236758637311837937497282872656324173613016681360721831200083029249842217213652785633275985480029663191966143295125948508506732618593683460420156775779753385879537408625092989633886105335327885038895468304512626764198387050148985555548309678115241347879148035848162972790875319881175435030150776031256756088156635158169465871598099289447890741917246517325429587703579098234844908264017927653733669020651005961665414976860475031402781935538795197813923276494128655487742286155809062643836610491089201447047840420798617127408295137637746453935411425850026732854862559043565677438879078022838004006579207380735213045307120527070347315367129713817998298732922610294383996311755969147763524225396973991598427864958815250099745135625705636222249450765321559017816846026343957518471826719988154970526389511184266960858335188859146794137245310906524109898821663633857311317769486684746904491735118619160000405726376564040172588269923246548626101714943604609464349564054524108427626369922305496622719586380284114432042715862760734601616576011513204375046384508810462670577413776805247948338401307069164870217758616449443527603256009928445029960891748620775587872080620804992030327110003557703129846789576766541029502453692488071711546403819496822954029610894724324682173232555322004768589609811612245342563715649370307251709653149255806685705888612296391294658425973599662388116164796915098294299575483715779723124927938606559414898388138970363448692539603528994570360741412876358813631901199512753864848545975492551771458339580959765835562861263986658982303971409954056460283243476192549666708295071571534137212303967445251941019725567279918408632792055246723047925543447403491024271245850883915456672040427379975155222760279499635324161037096628694430670156989439436594996386353032965196841745453161483939230562992495896076661640573200742570190193037388564716559908034558043277429151066090995458998764089345813275595866319575644557723579704640561991876555565004585941333025770274179679620444657749856169269096793524929373437933257279700586798512608543101115060121890519263034232469967195683432645119606437338739346833815685526428454115640796261140805514782204549034117631584048189581236321462153405148407607464902534065156762619201614815866972942691750373797648176068094752035793302824405254511760889505183530223881380681792338320858286316763151984125240768834597468594168032706518269498338219632623141006706497014780487741634260979474888596885276154753079475503149333574463934259509740262319156650755171225888644347892746344106382294314463807044211268952094872232126054038625054623845934045988662580552577891142520381144082642836611786082245466361779735124648541712688516109854834283951268638466259086861849217222972447569148475372213316834151806838194932000399794920491893209459254227073550815923950885287309960622010703706173889975113207250824484210898582363050714485637223399209179250309466670684917898597212235770007622938826412738142268775593252913780519314647702334380489282243757147577677537277360527144167076178322515414617008085729295682002722252765209560154995452787509532131148888537466385330446188961286502757528848666424784357979886946574850941862854221514975085788619005609655863186714478602317241961539620104789200035642565617315721836874426553364910411482416650926347745916492279527713853038396020293829488919932361513784761038344190585533704158726465237236204185498766000494758936119273333966433567249272063159452612290680328490599211732758169594859221818285918194448427745696872479333538030533562374180912423979034910177894295374463777281659265958082304847205730083503463417296513868712633230576677093236752440873061262312956909807701189874153103552119961092315401142437013880370591233432795492834579813893284922253533592402071410198560573503638275734806185569823982449198489763223115023842292442308186149416707787119945889312112579814211708055529743588284205558012655311110889495247240792116273444889836675354222214822526578476630270497266903208723667058216355076447757299422286652147442129246802174522963994984150952919326841735417254428374466011590243121031013183486672358369661102046943436829021538636356453888070961884877750966902933400731598556324639038645474996116252575536971050886136839463210890673533846728028567694689082998878186019585728727881559497882652376139471144444276573253058464414089436556095851099824628746481943545061909655895790890188285038563323221800096114855778877913505257345291493028730946950399993852294839772589650536652412590277860658850025472933952297018703247083850395357458178874498729255438741176678126267623972686871639862361771336871190917542528897265245106129658178281511298598841799649715068837177458098918480324487575992325712293473943850382263158987790617145605054814019785060178983044223484797885848995566600626998988436027125254828797224311196573083049368522507382049770428152205496750584810374887770725954107570348414405578070420694527182147292456598022589409740920493020909464638151912690520948052948163001713882039788899149182557509472833442473890375404039174971822899326126416851693823354423607964843746491136289350215559157996792622815579113226100283284973047070409545230766901130704479612992428070711801190017602929489938096673186301449613488653864532704456336740235675924008608104642746205172937694767186892556843302003392127579647266461389416893051576735540868355635011045326076783476617751037827434240585464168340838614832932340519646825785349234723096441228647220621641429480298576323718243794560932710353669295483466892934731588491252733855586653934075355382796669526754291792905397316312868538644629501654197253682659058373965465216426935569474964069510398731837453953452051715919261894266592522341910095693603782005660151915980285121308961017628573829790167993080611838625777461711672281304053888911148476557269377249423786317839256106398506398533421123043603163232340636650524571609716646449527619290144268280054144453263285674917670001220641461226212450425836210502514242311385931516075814630837142701857929113259177823521219799691220300589700770948126076989521514805835777617351243403225788524628001828570848069831937327528511866689705045872233907582952991523037499079504274546216274144316521817142263642599282926390869779992210165931762124686592316959029193736059542791822385304796963765985939751549381387869029018498512740924231417664338811861997736680401827439648943506257607498273608921212701695425004694296424634453530130172488027358227811844896071468685361045178928267106293367495030653902876970684081440634743372533720314164436525739570141622666547523264169380398034762480169674667546618474707005165027073180805777782412155938392449161558536591276503875706734453102847173982043834864927237863190248611927175077772449495892022491047978292923818742833574661297495566357613310442614646945241235592491038652579552559094112289002456138311983627143568859270709432982415976225994413523925030119946658976876291361037344821058775763650859500231391967941768834819795844411132336097039885116597701421032851964858016371110731051414858005595307083684648667163310079713612271205445888462426887173926061012475695078625168763610140757629950293240236406482611526086211838229980149719347824614858946130490769630983801072431956444967485715385661567544506774573873266237860865603812056056266114611014032594491774212742009213402223285629497189816005167552330149162870661139641709336863295366930635205520787256831581771916106927867421920652633454991897907727166468210339293263173270130483027604185301530548342934901554660369662729730093088584387328783424219087214422848014881914483117886781909932592894117706574110360931444431775597731729267959999441734734595879794287650452244019399832201442104379187503585728310081994796883251086675487957251209631209337535499021672774463211567826075278539114223069799820179382753681839269497893618943523060339531848203837237800845292874118384853793776103085941018303202910523160862294601000671954770556304137465764969430191060694045003877868688342771294680441909226870914814189001039612208556274614409477822062222405417369559113410342140940123222774925462575262540631877565132486698211688798986347380614909962806843320702889374464800280300924086650674184534898619331760224237199026382879353875513430541073015177550794085698521739377393195954244583987678148104118653028219011200826529743581400228303194944164985319706448830824596131841108100461463594551622360010365553716719611133381817311756760527987141015261000423513476354572000740479672254998736194977770827721960439538983310869212124396241596800740774501883833090362672514103081872728233991032228423551139933903991723250470647635437212740433580590194024826663766863829087036556333142027494331659102904826096450839930932108805159523642943984819221357814253099174992694828053965403316758225493911711791843120532464640206496587951950004908638887951219790865508754410796240459427889250523799645717715836840245673627914539492594498434699258080088881669402124404736646398779590732857112539543328870847699151287454427666587137344811765029702502753977371203286492104206812214737039972829903458695539157802231736556482592807954115240963805630035688541264140632721315433128346206683320932691182163560795850062747786685495479698850464243453456030975510854680801601465727796154079916234706521913483312465040768789250750458116294483907306315920279596886784627272263389989891276499772727222419143200116934903414166822175147678554228099758173611088696474555918312899192035874234911346202486352763092211394840140593346939212783696786796943220258888291276486743443975753029670377400335715570686652464796862709049705629248833132845828929138266405307060747626202386663182294450284483578295330575732474974040957949489849838863734964084874818869146504331431453261596274173000487719289470907374624877108215221672613625005169045985788698301416819026074443951528633154004065443600610794612904400215213889051573166425242401359281129002116051841909647925638604777584840603242989464588148153957940643431017275641554358040669140546235337967971835344311465795019238312203111959968559720099600176508674420264849314184331742407602308335309580881669367737717653521778886565424910098753750780973872411239691550197790736666621851315959924715168294488216962665361344054309372149864090267018528890203320566767219838249263880621013752731228620210257632189764937959118830092130704527325040439903644757804974203204152353557676046573561377350086690036085086227932508453583624762122789387248172820415526099758471053795844699666196048843057784145256234407664369881308833818604612772810687167967416058744184527446413154239588109911201096720057148086012504653947956003757361668379849060665991358555862753284909359945407180315252764560177984877265902629031865941306305015106762841896220463487938945741589920568307001281941990074172007962989740796206543131763278334724365478983261855840024472146976508002585203291456591517125104779902755671445531206614343331591042228606555466644239526566690445432152016780948457091688682259605256375852110391121201757261485518944711208107853531591867592091932462509451532877185241217011138630010639168816544046825502931897840149594947151077985117845521519595859431325606940266425848601749615258110329232856720573337673208505392992566125403712379676701645103789308331820397084249703095271185886616683162830657064022881747886457764629912757579092503323199847188694912831195164162620382661856380359770821157365029260111853540904552942614587686117304960770761302621536523347762908130555214637204427441918549200168410001921282575350397749089530746753915990303860468677413900189045757157767346061771379412195984416780323706075593329156997072276977158882543641764509315918065913464736659998403375521414570880902930783370433185431763908993460507941423397228615236587373477229058717796927052424972016910961827681926077463717174915399792282407818844481229952015000352888842311072208563118845169144277718179201085935838208097014674994914686951722377194779508688940200793895097308019456428641356442386907026802411277430647290792023052342626188164476224342860739250489140596479540435005322696610478694014919819872966342379108046619170158446696419096865172053133392176763431139508956812889972966268272714030957299628307654062299865277709417685327741015759148167624418329591017394325534862665006258296816808946685026665968692622474160807678877103479350439500869041417028711834305574618502104570377850266637506050967132443186340781878274592296932063211564825043300573541903781176467417885584518086900800724735928695182002756644385814889325675082847066133296030034469742102247588126247636464492638255071732869001299461369089871167951947028719594332296261060443327471379208984162120896398576658796841195877292119271414976685350037809846634565617631423378318679737643247977614350105833259830958084929063800201123406693374112667304373831895574639640415860840796813793875630208761500454811507593042670377946385586047542214277196167326461628667801220260004754121369765045026681982588215532209874754043689862543395512964277479221670503172089806908843845130654448430618628994607608549248908238738819324862140050633233510719742264495237908445459918853548539669865909805442589162168094471314993357673152622086289726727075641868937520595190831667359395253137872662120612010917177752738480697534226500106077501635044085493335635313030344061778686522857580854805581727838184113541977910671921703497107464205155843127346387379507044761205880547690690418318557635852350020610852130634892570482857391900547679728379934004698888426185146201880389331728597541377430710680048412808630074871339494089013151987225081212220996455398386479598724302761290963162020612886354267835691849564019046432609162184370687282776712028699699700177389593748808848206472920909444608144984530331745254368289563674141087005827077233890083083253637137717564429093258669297487635376891513815287093523941016771682990938486543583291160705124529514952968563087217414418974088341016269602295694764603114093004513650043708220620003326645724435829090355551211389566127354937910606743999731100174883348966101407794359389818752237176845970032131465796376944461378358455962990579622623915162979500956134116636810955081678056926557683565556942831448706947590503323629854422998984888548893975839822016509439084329571089628468073104580600043338322858344352712693867936182916117161513163596859831931639175861424839407285997442594710781354033984828341345251727752816052383404059652368425557963881419456909063507667524210380260426187361821867465008156855030997550899589712061370177015057731698214401056760345035587142823754843549373408495000979590709801426080865971122977634864569833261682750625334856456682460709303316569781754333768288060493188254727461653035944569408699297283440860808179774916892713762286077940829479276694926391174132665542365183126373639072346197649238928759535199603261944746613048188487269209996114903850516321626104242576047460814202357704819810009977277622600142492054118294054678768400343289020462939228876519444361204204646824393865964067926622128686133311148284717913243827050482927839047776965054885552818438647189798776846421311595936766605882280327036677943351480351484923835796640472681361855274000689793312731364909729252019197518350585733476971502906029765585559660037531424829099907002001214165015408430394468931631082078359612439915550816374841883490050875091012150560702318530099778697511867168634903469622063129992297564368073988891677325505713578601295227742658286414090980842514110528397824139643021068897540425883449781049822443142057724432593044436679381970256874893173842300079285396545125411507811465390554120440274632913709227028888926336537298197608566597306002500440700810511038126156885587244874114296866085850417116230644318830799661405293906019703580870809026918165590165427337281367809983952932797251143492699111268809310497028959428218819297783651046370919129841759783755388647823574672478000830571619969273979957331683698038783698458338261984488150160673722580347056188677821211699916599599942609131943779259287467590826475124392916181844431347706251607346676338520029826346845837193625320263008288297087021790443436110261214231646928584382442023714500720942482812220096081173983701609671722838889377856153948033680740317462202221661308788491559143128419473623110855020800141301927281361862937586615758639708780439408616832341459418614580681734136078214165582681205941331350491861807902322131519423495317946978128130456889088047976337220487479011681724987435673668220379419169746787588319840233168739445754866411690758823267507763711262049321597916315395562748041856145036141861161306960602956572423355753664905200306781265196165266668224431217286176302477416086984047958216931591808259448081929635694438485610327399368050723152758391118609936082096648603517584761873088563286170359932466956574355821970880152161038207326759554119370927736977276828380551576409218050270930314784080170178566349746540642116374991811217664125236610586036163806930687038896557606345493384094755614656663638591013122532623271001042065836214656639254071214444301627435107305065262534893677192991475843478339424918442433601406276083823283130606470622383239572227022529284238749783570970125034250867638277343140552740250336370879286741556475533352358127624724931457855565146460679332196685050310413077938085628621540385045711372751608808506813551005761500711131544838662347278092854885333124854001132150609732369295543370591136986267712346681773155660263777432076374931971177410196341497982219059485952169092792600454443897181920970551482659925296201687296317433663949269110217564408104467179523864957158969397799275817944811263635967123158623371328687765245757932928874317119523798564480200831233885009699188843679024438818542845434744186482507812772324451273490750059116672681233884683755624352829508573082192957733035453640623498563495913440605068766702631837130999806403844193139213666190804143532604453308201146626841428817823775448899493047770553214007338784433044033223474915686857891502771589725621725787152273826620707482110500685413883943594577673752657337239026217050176730547022150302926663334743681733628327887245060573195716871130748300763795137034984536876782767263559105912890645640883474472249749908522028359146584922195745746762274285003168786337170042835426061810507675718077366885898267656922398367850917610616661881039782572365010725491360609751486736675030188770384614369464524633274263552054173964675946326265790462275789740736501832202362002950226634874243764774684861611692219780255064376682691617301996419348292814409168811525086199621581176710912684686282691958193650128831860409474439507409343709613050667521496854635208513924634936794333100646320534458152836931814990019200155006480705971737631594634399449278688858949898651993578329885752294187625930304055435343409069398511073075280275937697760912362236477865428719528435849871909739758025651396452340232486336550791778394863094543462373850572989640849145726788887984956170141457017737318690030362611763663178244946260317424080417900749869326790010720840121025392184044393359605893350974498878492680605463829100380362759053750248647005598565333544915449372887107618185925127745130708028546893783860641914273388764210933209978281728695550160719177657874509157330941314488409249795136292528919190509721573051443814599604708316953258251156048798079106493849568671658454143606591181140814539838289290587732462524913519569091250384062752592581836536101472338890581589880877103901364705936345152975923619582265267317560485146309690244236216644998440540467504757270992183445456054342449409829298923110002276785754067513154202615312780714408351258551066473985694389850598390162250307556895578827476971374615958317423061639291941442512668274256534951329236748799834871385696737019175464191269929321930393815946389199702865370975996559069903740753108044591767189414600720325094670775912864868788477386565417812861394218179033605331081586338673805710551537910115735074724753096503831199458844759317938019727767508233150325020506269437753816706631693799928592106922337006703674284274062497676838486458749333102413731897852241269301216679877436993468864490880625611504668369761282295446732375016927347930746727127190496520693867781118949614068966683709734119771452830679028759888190415530692572009782890935403273832727505739746730551517851960526698867771373981472848824047123072690770261979553448061462646024522808293169170269118861028667109624893406136294567061415446315501245895369448215079776789193601612127167699339253578617058173738761687064002668714418542108082323221170229346533998788275761457197055708876421415381754116940354179712701923971590869938518531904515931470403861132599648521378885383626780157594078714696425930319494393747173975044262310830787108474087535255256745080527032454224086549438443308457275616020612164755958098833447292262042387397552966238925140733139905954135935167099959339687742152663765586434813505021501213164874356634517569923064470389464783676621298258521627045178721820681547173504797902770185486172662350962433488933216198721063171711341840638359648866652738231841737072440650809811118023716878482855665820660111230284607762493391718137431648509646738128370132307383615445587816663294748309677523500283612712552001426312663237854998933301459748909964456294306287926707138541032369724993360401198131775370496746666306511679306708751179718285131261895566069849593537715119964918585109933587060297973493348753625330288557274998235401203677945912196463372972790622755178910853167321284933659114558492003579976591524530387568390663664036285036287657930729384126747588465276261337179682270146737903772887002613429471799765868390430227388306595793161565931439899537190033926201705837832888733252211048698608920939435443311516282973736611877705197923919942714478936356415334858012640606150305191149623534875686841801544898635488755962970695989079733545639497986496410887766984211950876935705704840286400999171891176500810778851079110489464578914977852394333367216035224237278772222824212343037723447931733121995185093306332245911002577307356266207935045850506945408172043672068735193418719659488336152978153971537260412662971117738401369829246191829207718700409991146629468988886411693596990464715877536866054357318542369486813354303135964191901716345669781185379191652819439419001600775066708674566636698807849046832813294096303604832065562120993781326838750608281270660783377210315507959943592330609586358358576086695043863250593419222813868129499123951731736664913527768377412569495051386400284019475130275969714284090634406390829074307656123316620353062541268284477384334180114153966519573451948162689697689005756775296712104598448441561706978982503395499678036783610639242562018844397594660849952279381848040289405959445716440056159634047734500093984039296633813421945642317093866431439228998389637650432445475861252064386367758559121067456777651659316559743023884145954810096373662633862531962650099139895183860943960908574933459965133507635044172519704503116648892545307871822541644413617296332236509150733852330827364227414704990933473313009749401461510945219012775389276111735096982280488619734868297254850619704910504435253063937902662355614207501884803488517050559943290098330826315696037745492513780608635898281767179150183108461674779950987715200852170875699621191770253244788427826572093511044838980284036678308706737607818420761247354478486685178884638832084489240073274069380839839773958583371880698709382078108633520591581512412126865490117542533761841308069578914303728727991286264757904174902984081797685885686763381540345409005965961122774259258529085825411835737744031764137975704233859945422257873200706205891632059294450651407262152960266633351371484518312460813764487198730408512492828438635738552558785812381688444487954136787695208635990838057639448731889873479534596327774065179932787303403189190131733049574825353554899615913709491271051744019853121199399862521382265905982079239281269061466331233207067199437268974278150391504219674701774860070961332781760176367630856517577900256872844735595236650311350254558875485843229847444645148335099019733339309378953922138687151715869107404598507399097051081545869939795276992065343661815900655175656710154389207853214794089146136487627181835612546328090596631450722606968699105477795893760149134780233021747766947129234087005670141129865076104789163167864936697785330967369126077827268769330352894353349609423490140325277600670443060940720050578852569728006261085609620760144622574120490440634741095523553137901227721257618840220792692203249016478273084329587712053139186486459525584470503642030115393180402255648183502568652702607259484735504121662378914200167361151672828525941209860146253689779616003540187569900492944844165373318214048047448380996908453907513013183266113098389017903240786611656530575987865789706156977909939846145949535960137150970400651435396249615655201674784592487238087430894728342563995671623041167688643518286158675475256932754900838679674549453832303656155953301856450321948662997158248339668018695603021184161078827697661510341206737136932156231406391209916662597238690782441338826611735832424086943266812068295837328114352414149969131243194389571727995800368725921650389964716897343848150080546265024128617536538314382862907645347920859522554219953801263118943015079215352906915490030597743575184857960551131483645235841567445260748622867940671426823239744629032785179775913852409577804484673821896414168529432637885330237945913346668931437572218616317526874478425522573143690444641878488993229316959197359539974938271620421244968642739390794690526472532401566045708080622904691044953483259731418440085847806793441372567251526318236241958593480145869238170546925008572916003741429435957038667247161633665069629036689966448460745799881000653817269580372210870227503924051078331549985969173622715627760227238905380920335716533992763714551247076937698844160837719303541296527265808463706141055560946829302959694238905385631216946001074441801988704074178626187569471113038762543152972968622752899836750860856920174356356291807143024990251560431685347458639021152614823793741087758665869267692042391034515933982488261706650603825161820235338138337153090982099003753973801657375163693272198394885859858182467458963875599998825654700142081452852974457753681808791362700962057402642279644988967472212395853645185897986040850935245271431696201687467517490145880018264200249759187625529541360787736349770780280226479433396625583894556601628565262661353698290601461265910931341667466977190154794759001751391035220655415436909273103087736494020860977517824246523227521078491525729667794477357553721942696135493825580766854280462483525453545990251494062402639501413482606180468873670812137761037152459016812479194907263994779091137725926309934814526664962818649826642380641277906142905928601038644499643717325319484786408537059618115903575454974552907948055931054121690410385002441242542425412337922300869562889693973965385125269594087354308899268409650054436801372327653126590714414590866141449746120313700288292590985235390137534543197650064068292173465106851110885174083499898859361364194786041860933267904368153564667922283304123612756024591703281223179879832335052182400847347974176674090652003098626071914051472341233337416039888509798251260658360847288724649177871487580498061671304717697655808720857457121397161282297950191583985734271437732821268165226209050792501977829937504027022337880832926432877433734682054746400683217714463426584860314529975591664756246210996114199229135741020599925339925001075649950549822813464054611686113336791662994720149013214221948286517638727182565782600922610581052274502504049705953633448097031743644950864861453922980802129176853428722415157229861519824260177350116284839039269750651808127760740125507044898801771357090086019878655691122059707944691091376179819618603502627953230143992977050668868108736853258666616214274461804324407528127032930101628975441256355664771039464218595774926801979307635604104870875738588531263130947456433208094889821150879003638967889698464279661424694056862962462731204988221414446235327712149231410586100472195271502712293819400546693040301230784535408122963651370902810778178270391522694775292506984131969809563409094174187694943725788096762240610003534218076516918170992255196425114720815286535387462995776585217302956943648079109857976879731774924731892028026062426511318132268005086746273632296768760934118963078621858939159670303116798919249333137557708964336645805473593050862035831823927370598607651677127613462485697799438385038715893824867587801750795609590857925675658020783718876936956846846655753828020439130838493867578200073769418783488838645360331408647888588786120544402755173215979639139415373745176896534572141950946456180933696452294171353891966511298360910482564556442233048445294061470008836721304713712908131092655014516272864661260127072088668996413340414356350659904707589912624638717228323268083572988193918031172875236372585310230232921019932697896685496060640625622488973596772713316342290637301579263779516869699446398486494728732558557063083189276669590636172936664532715258688117020177879155319026376104531354534898508102397976933896309321650239063316619500643987794065701155127251375064222145318852599061814179299683380517269601524480046280951882836066336461631427768076555662443099401757803846680843836938626605369980233051643715278516886292808818325027768538050634822889376725879409162682459410222455259904650838510986163991853415218169353473513385002756263008214816143773308586692325942839018304662186980802219865268112589343868418062517640389342592917173251527802370920583724340063275848374502238231507697017786871897264328723465108779733059054199450972252658972934361939749530071627819593939319175843124498952470658460394498562151177474098890812491925147126958548810527618589141991241356861958442031645511225923953576736077431012456136707993529915821229283345510889274602351284582310718592822941499121156382641636915058137603025593868423155531746278709240291087233356580616750600432223646024804199036505861837597841739938403719140467551900452073414603209522782331091704713912516275958372343470614939305498283948248850190392939043574442917084373078748112099149339602049198369575029563598952172830636774188263567429102317946780303018452293927195092866732296292571228986960893613728358654060941450940315155765885632826378876739112680782041512825143074904194686305938469607526464692885768846394403223569705216676945321972587421933726680249718218111811921853521482079520211807964836704009227024037543954501322526866079158485827203733956695391368092292298557166922221545719264090976663367792466745465710001569337468593548112862890855663104260418825179982420527394190090243710833481069292021344413147468040145467241813764204317332085495685791776212534476024306361949097984921139692431528999640950545222032751187883499046938900889113413932458176640311767940027322942223776943530898278776189244692087741505822326334332774044439840784707586264410489654132014849620653250488362501775211485267347288344390007159090081793618200788205265160320625427509680165806571284256080498737518504643356565691353792322981270961990940332432947902877178097441611151335590263061887028942980508048029589513313819060023659301324573598104096600720438676261472308689160209114993385786145554160608247573205047076103115572826020853712581858215732670465148589834313560954824217802941583061456659089598380118145440129471814838712524292441940668716238006518125040786999577933619709891866065982130819064369491230012547410938917432072953242946898033801345695512348601625363729957326402250808306131161440507377876768964356019920317422830025169096216497084547216139414979344697332195584260033010836020208632903742258821203361261560417302764573364468804811419947609293407808865786723843820919396600665397829042983710560663894721257709329365669626304271397091293170813160875891770046706088779404863844891251724634502502987757033950888479498018112736230451294839810154544942435307934726916836826708383211056117442905284024303245461509140319792842313371010227083075116599089048258212265973257715295374253841769546977059343996671834611633261584869053654825229484428073481812103807614139850551061349411437814604678082939519874411206939888672461339226289134336759247642935032364913525278552684914076043155365760458537389873834173448555842876109816442927612744591925034385662162888175558778321649572432489929402133731231148387637124718085544294407261878084000949328187967066777752591229033739867888562305097920226144315298773680995519622796525627820921852577640378514057212467498856856434345337497816451025764410969929330227285050315475649581636820790039100785100728329543262318367748406865593625864951461638028043464939992666171141918984808691807529991746272230517559268779469486641138609837487534993920048699862610203227543703379709856507265911980598391991167872210985165462563328901949440900466224752678294434060033615258552586016743368457391109187044172872261675752813904892698348228303718897127038568357231554903966677844427669195011626479329213528581647555190157602793412748738487667618450986535248274130070213819131763289896823809778493252434548159653046202884446148265563515229877523780847082509533229766291475729465231672589557915319564643192684602921112432971996008398507378538641195463057691460827547442236150460964441632545428871108198215863885508055350811741859945017873717670100089902950938861136755288042524005167412949543029105351202026745319144761109917696446519239723751547629042356428049872464367777778698119710048118071566429949758892403888419602954137779446119116126632642547601418648739448544074689441257070895264480872638655949367565194459588733938202293222752699795919454202822349870702067502814355825806783421943699495871642446901459473233708498381287030229594216636138460983572846841277820059695284999150778713450069104637787651339645416376626658753647232448739729801814549102637872883180211080195779234595262522200619710071397236647519159604844814081537282857703357458455458583731440108526211986235519030108040736486275702991102944799200035665370488986655557634585177153578204023773647690828286958506422994681244394139167959591004115407436294674373782191208455630358982310701274174316257159470146030051792913530706074759854937356195288477361026451389727816137176035808967654555833137963962759437806336970686497267216758239180786872716696652844153999638408757895483072596624876682723903584662320409616142788355831238171948767579814785018166407049171876953595041318791668434846862142328489943764730918193054435530178070404875818796211237827963926407009854303854186990585695746959684259023922967831730794977221734395295625478164969374253019537598902938536004380607959078858229738807940104980697589285927542139367111848486457746765467922939744095377723772329789108318962754254444450802466379751345862963110373601035118886697718314137996128149327264276772201604555354964731882067580940316125778164013767955194716992787844965507939880050258429664054508982159987286299756905564367508159177946529972803844466606449301559088731754068224449101495252972272407022119190293950529733356274977230464759133392664586603832051860260528137299620400952571169435947290639816157828518748346173499287797776880786122535437835088710882726180099482986863818881929903237408744321702688857806908427976476416494218892971742236757814590503486422138771629396151466566098237714717085657339182324379616743343748077800199870628089086819699615469186059094362222331528223370071016498433497085713510495566967916879644257927362120583938829488323319405379894445751060297524197981604168370297995080631794452855022343506260725561235219074707123384406537221027383360473420935244493638096190837849532656351662228223602639547714951432965838770299110145060959383963561531228771330617846216945896970591938654747445238782283339063254582727351290639691291194037690591247517236355724639533031470372829995261689960352308771420851286841527196025238429275931467379418859559107495943103960970531239212731810432300949194373666769068826436188869602353443922521503135003005090381035305618179569645494926615266337816629202681561111682605608098246952707103740608250884673084939547847029224392406623504246619546060430947823156095336999492134176592466642745844159146211084511471289905534663915147503824662462948347619427938768330552056808922471597845490868007489339916818246887847267049467509775058080953661077472471024592714823418541300273703079509095572527101281944029973451528481050091625515606979326651671788891869124018180332182032099570272018112810673540812979140355699081680912765484877160970740266331741463026757292873923637287359352032826922522052246143242546188052400418906768713752782142321081294197321917153714576509205965085056402505140423320947461454249018615805880765589704957311864417247638833754929649191954611689590056689846951756038701402757952037902429981531913770944743592156533203603464083579079711069404859030771479502977203095881662098843774034416125903150058007612094587018146873270959338669428692198138362149620873612346073114937444586022973542601236237533133186306385707055427842931599528164571862928221573640526172060069620664487685037177426772120429742435601532467831773053044280680476436917625264084676148715918085262123968193914265282259351548038464410835718171146708779920459710002779514883771565135246878519670038935164467512763733320633790569642808446093427427913130151032612426639946092180683910004588502325067693493795546492480872071997721938651806245863429970010989295092625882270812503505996806438921759966047826234244954352921710852761584411221027386232105551615534833315386364858369235593257577649608722464205972307085538167748566699623147752019356344311084634797085843656427743913941174056877167980289799398223180455289879160677883019036485653091450978685009696899092364080043250540996876636254722696803254418312305539278754849943987592545388739909400238594183416064517141783064289402460979662439421374706115994814452889178552753439434105924741402456399633341464090900224425422813672672885168213701420897354489061528755427835044954527488086072621620979884222257657327187987360394328484151469238156096546127226471022869978928724180274314249858614940372817958237937954559073439299844631029998456827625613553108151469582891426643986093145840551204333175618012706757106181694527129588505056088789216514772793005173389257689092114815335178382870384312180410105676878719275385819855154740053182081647802170207955048665549568981046470741429066748660603993025393494312434487117423659429744936051616977008334540568269599677139942237345283654204456444617998607726946333293120361701109629532128584849504368038756065561231811767870517217798393873175211348934759812409913853731191901765293037670666203713035815218487598366834213520408015455267151573377807548792211615335226909920888266182734666467881123530883942134058191290383697201399419324952542670957612002936663275276273084021233599849017046899596678920844505736324252624234062717702979435272069126855972955461058609212710222879569182528117168484547531116197649283719540298052003592961867466052894006862293937853949166025890071025488890406820532744485473077666744593123136331077027435117760056040443635827561247498295570363828977035242475635267342379138605341386914737207361509623687606607891653190775153186254005845657079267369045123969876073393228704521224725754195293032618053632284541272485649823242804292281851395701273591375805232583317612355423174817183212951030060710700233870580522227089853310599948446193092453752238518190586636332784523363475098457705593230577268649313395173215285358706478818394915678754755641810684601199028878981266226419822759859748839742877426252558833392371721690047580636107093451476445778229828259203105029216208842611073652916383767623711557461175461310838469079866112921758730988114509432176680135608632571368398855274518702394189854118004260715414035230041340911071381889204151290013588005692996551721400799527221294433962587306819352989432909384196507010367218258788268146059597837587018699395520238364389059147219965215079092465818633001924440762522683785165631753257389258131951382040652246939042485865459002781744037093601942029984645700783563007498783718312772862004518540614325869634238431716918475782348818622137635836200117968092009459925121452339440593291772037724079888565525943865767697804087021250943406203588220761948318462020096202750594964415709019832442828409810054341434141833368548825768960577705386182791274314006461301984768720300206582710350654235715471865631209061642618044875983796843470608945327773197993936385357913285929256518078502776916371608297193112222893181301376470891517255669729853757422503892767070380294137953917525188541241878339636460395156034410024921814070206932379236336463770001585666247450026928056474143374385078082350047142162754576685883424090464017069269830331895723419954208887594608134693073920229042400116418838597202861278670179018658232226473733511405794018667935747059373030783975132500622657523386307452591711315007763198685425358601149145513114390525726011927443227719442171560630567172651645467234154217492205778413332739324836943227478032765737522186474114120787095627503263565361129803938226872070289655849271470596192847897187876510386668842591369527201561272209307548970316772323573308150294649937571414783250521192392050510232813345246559481091931031548237771261478277472174878674734447675680774056496749336574692355688190012453317738552016894179249562510581179944742613163290989506694165877426236231633673607106400427740250664265452079373219489424550349082702164231091389422474415111296386034153082185194761989792905862496221419308239823859906488688065565632163446326817220794199026360850157642716249514734830261454346611267289379400729400016887744131505127978807900689213842150725806960044098191170328164086402837570385003984785327791323905074823287657572229511411990537082604557143764587271233613649745550915029085239597992094546888426438448529780153743847445979961917163937404515955011329026286424777838962637593683498612200744139253842674120589625302699508973292630323162247311307003304732595015685649242515792546576971842668536777381422816474163476643314279441347927383237790828694336451258461037162351963708680431889795265629566355161603875681453580445417555514045527115907066138368226711114423205593190915790887518218522489607333689675145604963016171520010704801582942907000793318512590350432960840865122012406633500914429015534377966219740457383889277113573574281724360622413227948646833739763758426279266382829468416753896580913402193461004548574242676586850642686519893626824564314702792383232406947046509238774812655016584629467687610349602584156293726888035131104234350986346681068091666247860633132596012647636009450290045444764280013411249874699804373134853567596019242202234697746055144399465600103950573274594532558066687658510097673502248624153302929454803273784623883430885464269432794423856921346121844194660054751520320016208983919232462758048987368103139943038390341989577822374189995680386837510946407356668452031178767723403426634161730016241436662593024011229207507183333449242614586104925656879505064746093927753518761910080352554620588445912651027430163217740522704490622204023912732972837310970760708188982306527725941485435427033468622540368160544809401753758754194116430394014021215529041051190230439248079496236952119974103666996218342689711689829223020759282127977477361334665841638008854096371605993448527712603338953985833940218246822447734897718680571762934930852944324727131945736192545468006409677672636823892188604793960518991930337754622049521637565871109745561043264236628729635374186334953581581722948393596358906820031009627157226556624266055388806054999291582136241641001001210033209094693320327598151775890360231421398417867542992969684221528611679361882833790472815940649834355098972286109541020837587089010488619996784108696711142699107424202941273264233430385508972309563821390186925361483479932040764316579535779101945106089511960391061577749213911017090304410418657307749858788061562581118197372595118428385131762870317989690037362578060058938267968809116262446502754269226531790530195813093738319137855095190118559857825042499830825499482476256043864524303062524009543864210557391485806505253920453454438957077687058406837379510660187250026765977954945263458636264028040887116263929084476375801676203476213088301369342269896451618325330923391323009798287566845566571701439012788867477501458712465053896159000851176317401980262016506358040587667572160112081049742499726159311839236326849709449902614860102644800632750357349184216044019129909614734444812009048004613053547577387872330221368401772303732358552300112809108736764376896275740862015368357867588998010432185692800115493640137627312042998377737802383601637583886380970884869604811701488698866712634126801642726315031911305238006864390145622842073238604195268343370691177700184480511022343762872368652317322803482914034590565178266241119573908925700268347607363179105003627763986033894539623419042449025613127842741037833880709986415396686443948662546532382056806970342953676593216859422252098839206080177365604572258313603723786974614104482993283004489343491186206772589249723609799246859412213240984186452040505993612051965741614732710526202270812638069604672465010236149774400335781647637577817834901398968208247269659580884866178066632276898707967306082179581179241749261853039890032474145512960689823831527751048291324376399320014692075096039715342778908694303118454170964601994041837074989795350370422151399647067372927875236340275092226331601731363257971640507062907264238771467582934224948465305577688116899377403332949289059844673829820334523302606793817865841750825106727117687115853439184967348824066243696956589585706247291672079429910289085120764333333589712232486924798295463818455430181364846493281868755993097800939399978630661199911656747020291769617978103589233017338204520781361710066537524966080078628828583400220208381864377526931653162966000242713122145401321562218059316314049347515850779383684733757885675107983051308861505029686931611234759893976711235155051916204427464623434439573779108995034969213890550024315594496991735805886371107035125706869663299995604505264571542672396867807313389271535478909339641752722631356014096432756003004429974805930168622372000679167539388858614309263885517922242043107871656306991913561971123653154991713826394068496084944661301072824049132824292319186241295387797629995869870729194427570064991781877483551203402046948139532176083351024350416568363340306752195950303971696079826859008280692942236212604177720007798901863070527676232084411297938593888361836519910011410249500568923004081530230241415590882559567949744308038218022561867497647401591288695784708850356554740490321996229010021858763640876674762616955104858848393530760533976772928711789420058139558176740112129402199481265172295406998719565966145713921294524188951471672518652196717629251375043241689048732161083006859106432489579213416143930107910913614258667081534762637520190003370242346482146863808676450996141732753975066930631561691373101617913807999944672532392865266125853562356428159406422630621093064978762130426224227890780610951929036294831772691427015732080196549601674971317419369261676243503499049330065867001747610571537533566523611029540878579303697604209509595627214022541374502291855194565854625149475017947284786718149686200817600343476561922707144371835412165290714748892332277442364333683500913479009784628702317875190231022570572556841027784803571091821073109323414477534735698315641712176180943198605873521659690345007441169966650678921234586323974424865489303113210010576608092040513304858255861378736611057652205560183318621859424809212777981576605459695070342435105102798015597578690734022520555939094039247277011101546672898900485759645152399000395288442714420535260869709535429604059876179260273048060493431271762209697532448318840218866960796006765333856128561851630230229714351256991367159599086551330806903852536893972341818462182398500157113791548932493256706458364378100727410855879701250200945606950077741168080438072059138828264595556969947185903110617133147706412310571795432241247675972684109064368468863783160594913826182739708821547227839774339745224792843824498329387883386517786358056175437031747687593108220981996243879639701368712277816273592464445900698136967450424844611036760262015823845710759129736330730218461807566082447490240582882839533126684599326864620662320267482807542089886339267715739214748159795307061811051063557722465640656367744406849061160706891153455153914773600697718775326335344964948167999855907567762852774777022661776118069654305721568440897283932818540767698064526830283353230846697841079465081983392106443940940044568752578027442166200238494664383591897179535466167932503062955228079175185303392062079482164021051698627866395776936859567427190685844943847800715611887991476569641648171130705779961022135602977417818757002016188884193228033150660174434987950743885708611120013718076121573908866512337069162638867194187038780001251987735076332467408938498205126016955855513698923800871029460656914973280889701625599095230339163784271291402703489106006429049221039652532102346587725862600141062437514083036888352461624229798806987581138175782472960849522456406881831246042156186951318476828273211531213396254304214356162223541835811549318290002778447976705113640372022959651560714217863522414894761563806548504599611479962295333895616146471915492734408891975349661244494056962685431144021570457470436414873786252651965526241497835908131033915758260565222856320724171284736773134977106591433234988832294615368716389120425101799460241374325921056436893839436014600376324531810230087534420911211525625347244832443686646119499115618505826914271264424047967850344473236920019659269945523195354672204045031873948721031541362903246199410717228699171485312526027966062670199845549104530673925802826102194350300466023234446960427444452622096978417377487938952108133542514058460311447936295368306704755651199430840933728387815737548060438231319663025499885578273756788368601343113139273708858117693544358457188069156290868030783654448665232796969940230368457997231842666158376489443861008372919663906929366428956843738788538280993332455717657989896110967985377669084008088290129956122465634190002116150312910633831034899949451891630547669024415324229386955282519101336368566523318348784693546113944666740682777188677681474401115054958591435600929982870809069503703813199239824831813003354287425040087732760278815152646291626899264009315929537900771133848996800031433497974359868205273971423346114289963748577014833682595055789429546874816006131274621660783245974872809483760286237886768213696749968062647574602788042863206231215230220379154170291251051750030185061313555189112407656042489005477912606769277577625294146579881989789507427069546398472395973193362630248610719782835743612741092149968936910784011728534026980759386254083228848067381482869158826956366141389554578975520048720428226934367491131295566044118137078457368652312765279954918099971746992532788801744950095478441572011581912095141892519539624170659614257551592545960059681200964578856476754299232970532975617135074474363239936684508612003144391682031193808910533611140401142939547906434300784075657213654684614859997002391599543811989073767867475217690559593833554849871325551865031921779846964373180923599819539221085265298936423787569350639703905349778972013218020445435931727028395214902177052264470105698267284710913706311086485296274878848625839549585214786596365709773171963717710422627342356745433521020896540135127502153475036397777446717556046977458313236123459235224824054787413977448272283230390264923646084242337383041567957303551088743112191167832366199653063893477160159885564059014559429236696402839285254764452597895589471804601622024062898868222542318540068155775851422528678832095482987340081832175267755582727683821225223195258499074348741331173548737024216807258266669238910651767142610121829152121971488757285352430949738180081095683135483502757501362764889488954631237732109013691556197116407302639459016446898429682980831343142150332912803939455775559689212775524067620557620828299710916677038437375848557832345410989051322759032302570605216227670574150635625586490899632028488279574876482614436527085145126308434893730422139815426062589270462495136329070039924004291175086812085603028722947788730765457406697881980195763079078541276309698227769137241670052803870586593319601715432900423255974683682355766628956322646131629342967920329284007296868857536136837521394572787227482028744467219912635522499949715333241017137921600332098990001159398517236753303625195271865969348577335461683141836377964944805194528010746971620384150144845822396660710743713902611589553943208145735464577144901585654543906513703253814703815334450859318146581094065884486071768863544435137625214990095038846447609728168654626377950375606354946019503776248327996647493623065701664599356557720717249990684842758885031254059853186413585294712624515785101766453791021686713622598554901481344404910403933688790754948572064629595531541280409454284239135981521016212623040053118646971564947938404953725518607052267384019418140707901407311152393301524236941493013668611027100462470242594886254762265955254595544913950693429489995240628440855635511460213428316632677155184047412923803106724127950298981536326371655801693460606598495609151135672720147294260994929443533173515044639040964311980940433138006588194727007808260989661289255964737139411296323634160026223443224505547959681699151653568556007544126881623607801295844681541927546031288693963630536918810363417375825944379054598354937933525945664539256427017990767079336245288313020307633883361541523350621113383512416359812376224830203913468268037537909985728909731549529514605400764357974710970907991338073350062229801890827277114625623200326623362977281183653131911780506194405976733439519967999754133398954615313820590610657698182096138424816687948707505585876360663029984507408509387733388470168614603333816358456054490808529887822578036417365417082139711391350324066360362852498241384627437217499533862711815287748712559895426866178369089266426093704157856580543318775411124948066078189729032552547263884693546809158536529178730892661026276685795884831098130832971136786206135274404494959647317735917012160926100896227844118579414855047734261641933672184945473914771161330546805751168163185715973432326960625581621824797558648626889140180213497533233840538365873962870884663568148879288393646894959301886811662405717752121086340804149526460602042440832658000483289978633894338159674485822521653364618051482095215554901051196188113573383488785865249264629005095955183675279793471128249960454671413699922654479998484348976959815998653528083031691123463013064815904900610750671778644923267411623038036958046278166791078385407482328782242072698170565912607344148687202750745656570682102053069958575182015495359843393846093180996719688703492075409248203487337899529030478400354234556841146886840676056318956009904247871591496896440864350313438796540607761989705240268025849411567965239462769180530355310815993616293565586463311893612266502481924272197994041529395167332713998118579720196906577618602990346397809976448925956023608942301516631636937815209053186106295130616725180470086816778660212871860001467602854071303227303613846475409179209861836044013287303141366708488302192001612349813132039465142130692320180664155386259519961667259988506048302309720547169483327984555488453772018390660149659435712287774937238788272871537019569303820120024369525511384164164604453555886948970321981568561100932720956127815197414890868923994296091928335041337727293880377671322019772647898442016295469912382042398110533383238900587720366362149492819882145599270517234729568436435165756277915295668092858647053018817406308650507021760798000411055151153527204328713009694179301638840749538691059853894292285196738009156132726866649463802376959260488977207826292924741275178789252051000828265264579920862374094488952202084363451072628351064427177884073849557095723470627459411719793148973852442268178153730343342653182783642692660255710947994092074910610570514076677278926255914646671506090590612185967646955292355443230674630748535826599085329305297704733432706562833394703925933827024856486516457074341822462191972371222996824847322366675402080984654245105227482228622115083929510865076350292976882549576216122909664198890236790264656673626134419576420135422276354146922149163999984281317430208470508117295018206045379658120943381333769310820936090792689241456078494650837410956441822906746719213843329919395172578744854073522667797890370719401652839727014174873146125641298211700745783443340325542266114914188454022956372687779989477984933464489273663732270264615874962606864397592451804030814026095183436860962344022909435607020737376375586775420613706142266724799284237482365529294987383916028800588645918575983233749902839550982734202293525340248979200105066109624377813304474493392473026744635062110864678934859309140347488184201125030252207596139722787312463469951263444049522442547002854165381528787745936395888910865158866840268986208295017688269639047820929825666262670679302150443522605981284467497725146566786577016872446068731049402754609977185465505172561455573392695367585078019865865695740591199654615048512495735994185143623514146000023420368376605611416365451916813615752706505176370366239467917107484900090228457868673631046409635533377376562365303329712777518793901838848013707783972459330145393182566165927423782222439627617977442018150454107985248099796672621531943188928083664718486242312407260215355153924433242517661821103885705729005103831389155631119840659816277002548113248757711486702633530976999314775932608764643580231622703918740729403676315455423570975503631307584119049476088875452126896430032976287389042079081904791112284956209147293371175066007463986099047325703908422037175096995835288469534747835421723308598324995248200067238420160924584831822541203635582019938719405378962446842362709704181431589107088490570553765815167838654538548130811531878115251693676378779066100718393104486309188410093793874307376723100142074619989885021298842870866916573522792511905469864693903409197803535379758261225944704092631685558035072664942732029673287704668351122156011642610854114173538345859172270037895567548761222689144326245477422350797287965661087324246698147893595122056507274234944056287795394798332361390949216486931678944931851111986446147418306501025884424732532728238367126773482219516337263861522906370969151774314591797706678722607239287336286164553072911304441192024077874910540174952796451482518591131998686920532878863611877183243408466165504475014979065857644784049355381448677600753322256420666808069063044057351330390213768239845645153874070354925220991682498131954126846163865595143989469702422623959067191863589585597939092099195695625532387882564535314163377648152220125576719206230982302359526219714210799937618516042518503590181452991562971216071645216550101494140866783066161454221638916798134796329417483677275663430258937998327351639222392953998055058733467294739230640476914781852421925012102443483489325203731542554520835504205182844420560342845338322848890573356164350395052693436553498448980526627381097899120300117571390246497043415528116195219883202133620898319127899215137061689315784441636380071378507924112042777168195664203936098179059000480694339870102292063971854961725935184273404203281420904077766948531332634474294532460384266064278474203795942811318039242225755416024478084306895345443141671425086241839921622569663035679636762177680597511065320791080077676543650565660336277811987886348944215737328769990874309995471308925532086256022206128260493042466041507375212895759515623163748908349243356550753743248364300566213427755598656633353064370017669086366380367589426167669949011488338857874002922820057064880547946361392213951422236348118599490462630991910629487695263677210590938402142324240978011957609925692458314033810711046724307224532577391487379663105182136965874419238761659116638953425261076630646966827096223714071435300930249939166946401990842031255806272634280335819002617360253569165553002681454695202424839110967276740154105854858027282534757115933030028761937314400709561258286212815959131579837075672324399328809876767838187557354731644162525944700031974863557387138318388485819346916798239274475922207320706504796080733361642934524499289018085782446294653190425887577180725775632907918220526171316737150366723609168780380960716482326311122849692097951177451298822050191793613264251158787796720608857935545909714974982203141149073167387753353667570890403164395311655859674290065748388570051040193141209847660744752989919112748618417065470586068691186974816521862434887129945807091181010765813066033247722741437447280128301446435475553629502546901923890358698734864010454622777099881666472030960102464546372354429471566213902761539687571530547784266932471977467378278489641453774700360893391636216267523125365435763863495536031728017562005323304345403346566166027766289749412764853067945248568968929616974844317154394811826348483786792348359879103779939523296176388334898745475569497441473875470866614614035326773740506206644076181541545927413593760858075313425802176029652479857099772264290728272452087159063768811770842889140805623975168808881779357939202721254252560545847334626175476360908576537449471721143523977056162099340275946491623344940047914101398529248596589059664101119790258919320887434938857200065255094845061346881750788560415501826100380926934891854697024483711053541719641606786453793811909707514863157803281742522751139051840888614501712559814261011589908215343013713518312865304596078200240147174993867768563957152549797252821411778464692246473399206657460457735175307763653649179553079147053988693116075722157403856745901028057916352329003196564265816609112480352045995450424212039451603355007396358487172332518448995327674751266049512274632553476628940641065997999641844448690171940632652307515200953231553181413984523627273692258499043184132689929496128681199234194788366957127372004165936930027457212859537676388542232397074318455325904056073086295961641928426829363190117446886853574290289648021666028203888369975905806707245464899573421195140752977876763139934220165813162712668665979392158875173027335759591854632094508368571078630467430189956250690008587410228082176488742881664006208330229429233974529576085411124233722455368634863423355608022152725287169000349847207772710485919559386599088406406002817941835132295545315371712860583343270787471208294310910729457540550255848968359119130529507794593764852271230630814273112777698156360786899000304683114710173765856824783810326232190450598165327624906261293159857167514632927190060483017820454277536200657774024989702076694863354345126120990129725299304434128594687657391652605397969944573914039599241524604684492044425221851768108229773136205089351611536569417783101092338074035831420009043720606489270940646741587173176277854607844827185235156756074965867294030833310182396485080406434815412708084746234696168854540505814397394399837487513671551443770908988332070704966983319854109503088246976107318306105047389328580962813274558864553959928594760218073327206899366045355720209947002931813008638450008797173065610851384282916380135915772633291650140883831218031877241343310352042941026692945988211468423177608746339342208818384394680187806949915340442746681414344581333943812761151811091463181638559344536866886987481031112974059440524958672854361729563780698756935551269012869545727269779102000803017403792403565661288661072644923577663847560149267603417912810713823873801811508900180652847983513405191219232161818949616891147171213698115348820295421393144265062886427295984658558965566407801318577233033610375481449255962775154888097426835302689584200705727082145051880263017138658188052932531006178519743212728671872183735112654347358165035975838143353323069556721092329813711280215361723437573609298834749349845940901751744055939876454858383376839237659331957405734719973063160808518987390857149659798768771223259350777236474267777891075662491683434335017195817873988129452709126918551842492799426507426786165775409723990705583928893724579714433406130403853703521823586987347959708646865155145424862603216467091557912464237084381919504077844400151268790307761142283344399401308003174050990524920736238654899272130992355540814456169322081469218872450826173427846331856048672262525297875694238357835480761571590073345368976299584281385719886158703519382878628670455860433744081664244491666381122594860681720376167177962549339614669697027801759632985808501609628814143181183554383956957153416778359999987392569619172751950658250233102776669254348634957240384342630929363431042467225680952790587927237796351867676620977706128705160819628214927064203639492668095605684501808042963867569715412193230512097909466295889495576409715773819345986834808769278734354058371477344896257200392754601851328304864870461795098949144409560240351440793285595650678069519704689543453210131418659383169739716540261232676205404659180160145371137505840062695507866845633744174414010317444422875507260322072240490506046976686123888819090130709148395754463985215612440857422994952223112951069743750074718796499774821030619414674479025923608321360226113644731042520446693266109416759880954551885199181687466584133364405213778511305216983032856116884844169099753134112757734160810451398867893738875056380374795189261592275342056918269800074144099172947923961371035594512093022957240819002939130302042623936404040238058405535264276638406566151670017019200262159868692650456101060651053627629245533001956285394960693527787202686944429811547299081354936916346982991822547031470790767824576321146833792188270022590451816608016277609297748327515409162414070712377841072228536334714780161970743850931326517285030640398919720628267226540525814661756066725936894691324791594406196424510298798845341929819767810343883367090185247456839071738332902499027328248434106242901165701087483027089027454044515791353807252469026079551376958034088381198727177114699761512047973748768846426248059709486962398569821460826558199274482411220845123448509835290432156058445746863611302260759440463052963492633976276056120394739038209151192643416446876387130864639563963069686141713827828782653444561926988505172649006887846173769588691806768189091838890849010428186520904691736004236814962754396000266818502815750387432321572642296746985704992011666642842652358493801873891586006122729764737751524897140047688091017495605605217092571211098992802609481145475973912754541417573732081017573078873409720601465317909717330699963625278804669249629418530997274248302244265231623093107382610077580873270823540416198456538525825437537177988682057441523835955408253895070265596810006704434097909993669386704683825824144550247623267234279235262085010300853710601870020279055241993448473027484950668909299195783441797920482695695096226144363751264247074780726701285949502886487187684067751008114710753693525237377643191224006000735906335554757440550746502933266456001835551096345121600104087024553238683245746868398283285016025595366853055595684693407583749440545497149089590856197047289344823906948193755538161363646280257428114341986152948491236606437553542466077762860697129039412096564163930476095785921050653008553158861309841220540627636169644536291718618266378040288810288418781137857588473107999293050272988801599506672938632842968056818547168748895573202223498448808784680269740274344353786200377637004134096250111892839729006754011784276105693828622966877066361628867766101170825537846355988955332622888707262178035207627457595806018652532176612283830305626695531937416598469570279825587371915731345594512861669343939337966994391300967622946884358438007333331899589117464830909500856073394335905536450286717042430974466227078339038420349050554298998904747172827701805227305477189002145061417760980074301083930274690890559920576540404746186774263320075213161591446624744619197761030539655429410021454379494587616653121411391899042987930378316807417489902060160560109615818967897414031815664011492665675318775785492376518316730101100040444209990000703881378775624339686928564277831987209173326463530703909693952485005291126674553562703808399195982429777897997964017843758152639523662901485404954985235853016991282879117423624453016355269348137564093811590694343817293752912020937078351922257473380172172916257640425962721597304209199841888385670136041688309183059371961931020928808739453160846465074793903469698892157084864848931058376980083055190685552035868050582862938013088299770170820473173991071536197954772475041276817735234124044459113944410479562169742507636005657361086354964921437702358933977450298378858431023450767992171430546230211312866450368714423573814398505078919797034266337247926910403340412040309420159540769946798410515950085654978058452134078993512657997693123540859329488771715214733871296116409346807943016154811698584127176071549805491866994865312108720731081573056674723312126814184051185836198610565788989861071751381656962472280397308515455370825623699947997270100946285134706327325247487692511841600168593123510227345065470834183899222604652647633896419157087139109972738303393644107275317896901063094484817716289960717378549085528979669223885428244595178781692447870467986361839562139092511862934253670066162893950320116955399657614227101547779081116604262614832573389117007333539572365226110241816655314791783951796569403214046962398213860953288319980784460881505912893490839603921711421895949432134213199606113282890421130492241296763131284761622876057254180084258081540475909251027432491552587379688692522662699879150466602532833791625930237646738342831706159428389340684501851443611593640950590677656452070294951844237055962834591342562517442480668048917839693864132742746756672963222773043195539224736099850967865238163670063171293955841051900512350997024403666457403791278402052769647330691500726312766718334993961418751832290050114244275162800714415202347876337691248162370477899737546433443566617100102199423782456356179232368251593067328602786573592301271359743037531155955626042357351126846873708376290343044250799886231487526876069046677742414217356420505305895878093945309812200479881014175534556940674087638676004116187991552368227863112481246692124965118717978618179287920902558349293632579417865962953645745367051583049263053838548460080183024558432849909125923992102808524559027562244548978958790864948792626128143414138283700723168547332977950661916828183810538024149275701140368712551103346711874329768891968306582984023014870211858534127027604905306588997210347548232115749768311989761046122465505070389288600788074895844416751170200407114109894318534709383269737535317130524755900957870606420024402815449930800423754033557049720336221043380256446407050079601065979023897697303723751227027634950615567541945959413557967689285708365604855660279367206787028969362656046817974364577216854151198476610866760217864629725176710665331893509192598442913618574789718660959706714504092005794538223786020261393920754712221190542825623456884316846235407684895856689174599073470452178747296506781871624257073272788683177306087749475610430834493513064541438296099434695288536980230970392341831407378179058332982061363770144793791446636612622020998555536495746320527590364069620406579758018681598764720165681747620512211092201204614659542841117766590920305126405596086144051142840962116581869004298815848248565248720848763748718539249740480376142289321621360428170908783849228212691541120105709345020690605528337065063336088368991235118436611156108837091128950910627798887258988628394362015179699302753045244223003587512301691836040492869620491012381257831212734644506311815891504654304802181971855571913663072585019381152411271134628575727358745233740986362416419341578879554815434537227379187268884321162908750467812783851935792915073671743756316785647207214714029047361658935076968061008473058097301320277100879207201966716955381876897007866292752831997605303956552526618665603742507996274439836566424042483476468057398740666595939749139094543009679240034005657588325991439875904982827370178639063731083996319048461362712722023990747045118475360706600126451035556138078657271789850087899496237693598172244130569975279586957864580515424120498014198109648944408599822611667625464655212764105747859920742457677429263978001959281836774598025451590869324069275029192023980004749118369377768477695846451048030628640554397410612407112491861118002178894703909628512141226840957336315652224230951748109999307855278433253212712788030359108909588731798205303077666769675718613493192228574871891418006619772092193887137185175577305697899384818737050000819266184902701004164719673107882752881210573998878115419799147833251737242800449803356793727658438812477013488217066497347167534960534680673562530252249291411047819897027612316069916677821598593345755874959009106740764130404665797763666437855383907648739294049810753080444247734451528787732403700588245847986905707407452429124335036803967232888051736745025798397240122886911485071178978536884252439091730508930667221899046416830100173938148972683995688304552662071880960731811823064770170545778741475376154503731412156887039370619215118307499693170409209241502444015983817491121773710116813229733893592665267249964008281087074395835472633023865788607529944919737274789746801856565394150915685742861059352794354426042719867361504866073400098781493939930427597671864197347595306412680579531408245252435153784658064337010766057687190269426213622723353828363537453757488842125998595672113638649470013627036731950235036037535311691132476022430487716702248169702451430302361413749386434681208562467123842182622998803818539233011631054648970745434172738759406248482921735816456950230389675521244799179609217180432604674482250802244972632243914198579046925410243009853193483371277389037981467329406418521139777466773000480204452086016701573701424712506376084399970678884332393475713955662250570798375839195804523648899011834506115834477482787865755158423476920311909512320908466813443097464110314789900922268456201022780389441514089944402885633283937267250884936693986626792763203048628584736946126699107678840888762643043757344333255753294466871930394314699010600317742510167250282704324779665711204337018212744427165990957037106232217269775970523269041452711450641453610881072365581605105268478970341516456997215892799852108505811842519018541349023859985235335780732111568698802794607692968472510447575302275277358888124669004865977864928866805068459987450405325995473197322494526810389491504405210132102895286397668995063526446043097615227810363946063606090423331440521394859925465007182268292633671013902588451848029260090325489645399972723131826431447166768940382184155762627514015632518916522058496526906796008255397261699469535097020902309751561723599311738706275209100637275443726276843655527578987885153193413361915592980189317733110327840974861186763598160165525265188831126163035688232404748619879368226165968136869151713714984750383868763360605826231007882635532927267587027129986127228835732062253452239750672281434183273105138578106296356921130673383313232863601817578522400039556595331169838740650475727354023925574302506366432723038887101095299632808879385069596920056735763419252844588854528819867359929334132000938171249017123791182534725335746662785926484326607594765412218030156882954499351573883360482208722446160276838830357511138203155537140859734731456304312752970737410387881233878146006979630679925565675999939387277634819697196600006853483132405109488603597344686801448096771099817178678366743733307924729692803307722918268419952838575512346576235920593802981255535088716189112798957308427715081914971550281241974589682866968021718743395645026231121192433887113930580867375661146449103651386081359921671368253778461813889064325620684304847695117115031661823913861209949854811678955115471430724990705514076709992262590327209256142763529917210980723760780180056493900453996000444941893161707586930210235072438605118571105322078657341618633275363276862620813689582095455521989719524179732486628133398499727676583506011656612301498851823475162476291670079098104816211601731790886890679128916202346154731034945225153246337165779841171355401730532795410218550302544579109040479118508271111095781108493903439515368708983599462760004847129675508566167684672354428503180962403504078673444083363834834002006546866207866927215628992586883338321149062716313586627811074133891287613445518403426300063166114972399248108706424736107917757843599357776940423432389529699401948164810956897234796423720676646210615569705719328724602658955694794231226899112144179496869077215294428744696924647184456237488219492226992768482909522178288504861414344118721894545628828946840567363290986059497940648315429644366754110709100279561566036841965667743361890218961790492406124614258220852090631048675101404455419063283088520236562895372973737712405961855888342632862635077537335331232732242155931461745854101110090784508300851944495499718930331554386628241214649171143899395516277552274082435252414352707173993780329574931502472326760458819143614316681514647204426018476461305965729689937366301823391539187256488930748313217062043898757024693164446127637557095869001043925082412471815716153486297853948959819331300471423907408655207040849757760980324870584386691158464052366720409369183083153998473045844779835729588296876782483613576109104544941224940844368964196109633959414645434701364279232443948195244351567764439836975938760067178677191488148537605489811393544412889511816392366955664573688700860359205082914158666579532314266663026506903768672253643607725442288655552985393083427610905449197306620420311902402539821989849562027731103134400335188128937712474016567086913916088188012501414096657087734977867917399192637195070247347546102254332914289622367014820956734329635655419829410424810177255633737287403984255212958627460772486247521020708686864919333714189085818733434541469526809121987578423804705268549534628589695088829773195880802036548279921757732832528887279117813376599205452357939482932098898610447186450757847010021843487627027223612154570261954983498125170062179209525757635182114810968398897356524318753334347528866854589233826970485603747497984280303646988475085623250235489720446250779497211002418341923641366957203429835316173335571753250252389965473093299578506802881388342209552642422746830531167243212686840083669550460178870371613490308726479313780821693727503897898330543564156260476357298987902117008593808639346811697168289319240685740372320949860568876384128971883074139145679712317464038243834269706345717815748032045013100383225827535476617367965525435172957789650939605924634837512496877604837450586868670193474505748692582737898193550859550833364661435988492332070432721770871708768488797097883176006887628587489292806055629127063252616097343678409657722251660012809459392091689328115891917979368398837934736363394760883436453133604663379179627671525453382090448595229100144402486528403571374151869772506167084577772339496419038986594248211855435839203022248884975557557505860024370844195912270862319315320662472314788549268537497858690289555014173393149714253904562554526798514744456734381336375731023317823650966110959572473089329482712272077123396320363008175352561827157639753681363267277864130882307768776621183086645025861160559866718158325508485192592902068924304426581762809917759885541824457603020312559784189609912043456905445135489944730846829183731475270523104143180127311917278362263004094811560886168854115058753915741186467129193179373851231453412056930734309321336051091936814686792245895501968332466940669750010478174519982243228476800286534900439166803769316060846835312985121255132554876273418076204128947341678532080810329325954610006437646224662201455767387611576258392661166679897085069223440186545752153032424550074467362658069870613910803990295642517329551396641994946200903040470279258110701625566428441207272372363837711261396825682921240280457777556821163283723101834002014390278094861170852855987930724772311175957287557130902695189194860986221035055591947724960105589233640265436021570497672833083156681945946653571223701153580865650138556683107909241505420622535022272869206214033835029844507421715210424105735695765346403701036509848013466706007747849492179891902456121386260153932798654787103545422593205300842292245748664847652864934307084064867509826162550599062784427300725977948484659890697212055228645433347153155650680055043756655545850447126047324993499147700712065196570823647144049030762711683103976407361199023606880708219737222056087206149397405293391487032181301717708165528783242854801435836692826210786237983013520165216172905243728301289452776199187655212600461224759901696800852117573938813988192822454880040625336324187621884565067025486538641303596728420909619319506008900458930827527740917319073956054508155311191212594187921826053346556757649864335388428656171962897192920170907875548139066875054521814724458480172591677382490144102228013781879727828557284672098076678905076927853102950888566425807346552754540729814072110676481771079747097843728340077586918251751512826268208864001063284785700905321958228138018928669498753151549797110734800242689675049444541368456117311217663733552183408440423394786167998631028377451408650637624369991978308515258148765442786409852191590344437914930521276982127785935457010087823345753177081274796624573177493600626456011896180828440278275559786419124241772492171877072827767235024581450374225248462290675823955410485656990300278301080352890474757486470531262550575043647350408189084882537967460437044668745759760325439592367479853874078490553289103239554215270676002442393546806266394821758997789349997664188492261281181829216617381126893396807573112320853152097569160238756339031608660761469030854679519023322759850947996948730318336116290773557483509258157923169482606115652230894210123608123409369838445420125512891672792100467782115939610598022887749665254875393095758081802423718425238462845387928340647171517003938889315746224842231211174490140353981764525806721030059716848087210327908018837472054211590012342009446438753970791893167531260728935732546188630214262470594740454271070187512786555703504322395221560560284825048205347887427155829386054689339209464153567949743695380059750935378304724425011440983651831716898253084131998668660996907886349809920072794398162275787370800448684643617595320266233106840492714699544580587343265051905275632773988170121849259432546493254751304656683676209934029198093004942231609002934680401944723218865680896779920263502296231929977328682069573856009259297983662429365100576593422500087548115994193594023995737595024742193944461789801756538181984373755596448744441146706940478338223235839099110073269935851613169349540056560021171403179738061181815039063213602274230824528213403789811387931898635085539106198534078366413704321647584338319459473109225321182504686601401824221855197364927532504658513151756046041654821322890420543012380972805194596821310237558519580492284328124879945590426853182097293273165919561918048378731415894016131126136380352020687243864274782799952032908172633835931559569378635101799237303574218708045765903991467308226989232399046530219032131962373570919047943127273218877303269154352943943445702427975317159984005716542238715874566227399259117135962482145342264806239035083224079863127432800421576474819717845434936054648098924428597020942355270328446286089737409695647112755018644559640649030273282878319497312891018601411485957106418302370321344805145932949450478686419648161943150559495821727227180161924504953610419320440417505681886712983195916736281845308721409835662030861447616724256086413135298189346103855954045164380587406942375052526697115212020186722068598430023305168601280655620973804632978806607932862070616607647967292386329922051040224281628236194897276907003586725323997874792169143629330743886164759181654491620729039547381593775855878441501475171928412391518095349308137681585054590887503930973197047207125083146139507752108851867957417306618260580995897780525402640716062736031906013426708249167029304426867102830666349424270729795037432211306266363068781089941940033493519455421067961581236364720367797046922409654794331326370065449717692941928932234228194118761817799733175318118163274399544108908558014597961729414024660141111423747114248192465040543281241099106215900321264130142769394478729256631883504443776992947096755940646451002837030434335767492282244920427620376302538580198231846893756885712745895807973858198438732286474817861113463593653970116344267649774262809254591919819519084852961167042197260644123023039039968080041925034961407854218355483324150292386212787397361881076464449366757996483208404818769572388425475062611713623617418077559436860330745545723289784706865492741186991947914494300414990655795736453593841062801961009799097430981189921482162125168706687213635358582384461176729369334807187288238130724575569442835786002253123908392031297582164518168115981276991448943685184171983772281899058708453870567430567006873816636582281729101702918621789045336520123169620243950260673912431378242512670966633422397720104768970777459354723134641767635276663051712342979734794963728190978932894032638930900503240665590068255028433135962373811051974952575028596745333835904274928073869249783116746371093606572839703849155607898518778894770542677210933031926512519675144915776897640405155471652624548926034850989357676445790904936655672767640419477116490364164756549706132727202327759128930428844972209058718169835450341161671747787632696982679633307226889033630444509213812002406979130796680138321965692522080917796330103590622654088267060019631631306808961605041856416056963522541556415571204036962207635225121171186351173999813029989214075198741843459613144811223048680445257237910323524536434813087636367653089958483525949002872668432034200011189096403544843951045986652500032910431871335973144411657849642937587839742880246533746255668794301565014732021952994730239509889885403581082298372246991929646782330731354235102503252389661897741679121069078563557709231537318014976630204666648764883192229278873169694498114837406787215283538039110556200710479410196186191341526673198355622660966211536852163344387684958214070726354992361261509311491183100494434841501228824336998162748139096041948070059507821178165435365587069621561050714934095815235327661655268188534753181928688752485824458914285193815665518127074568127653853920330264334827913522393666104202879981828317752932020019634945532072558027399592782340362261900697852837776332024543202004728612319234567605322695413435305269537476071338655688411040706727564257318996282116635004681034244235598334461977085414603923415008494125694952765866607951063130342844357991335008111505349730559606740074664132846690646714913721148690671580787257153803253743239223262985140976279472809291138683088612973620406343722050795837720217611586824026792040388723111080493608661344824973181659083438809258884883893697483488726846992375531284807806420819368698569328485563510848536207471310664550723409273046207795828584259900315881348698873820781354928810589746388612031871810947946392994078822198372575427463194622732064107968196612790588699068941594341731370013268038524180763243078275836271994040302853990097719463509804420165692984792618300697629633817673526556353343237718057076160058846483525546266551635229447611943597344255251823817562557263462401859077436227304201208257808294185422156020725431966950989838579008218101525493046009717909398276945266774649798024040133389893391838198384674514874452813167637633144609910295442427595047408731712349920961006295291570316756952326252995683836481089226353352824206201393417506794843478432560502097191854363598451334157969704658901257032061852562919010072399014248787552794246766618414102619088981119205886280281227472314196438133336447056921647305269613829175196122522038990518448969751771210527371818589426093857408795808156423323199986550406672965530316334370300002584305754435869329154347503615742374318935770533278751038084269822735417150003355039136293916172915373017161142568666147870219540051857486062239406220193529114647697668577734169437154260941915959539354979843504235179556657799235444642828346424569817829442180381692761626007632907627493628662166886127870834493596266093912682372020046654993418298399812440901856774024304062579495599898630731936912203530443167697247259515376169934868571157820617333855667961280425780014384822890793776231950310289136090804194296104262125419058508009247851600869456653943900862983854341453129344509638020870031837759190649776488931446884086861698417069320736197565007534283153179349571336898344252983097580393769043277617000697079429778879228523397924942056015151814473050362102440214684160748315103615428957066590959962899236030213888575838678171793845845411745808470690051824098596247743239572241261298197214558829258887903856362137490594266746650216438313913639438108847339317627107252875390076233778812586080573177427918837790724350685273422675232348236240337758080465701746172834338455096652469865924143804410658577724326803332806315037787073884038214052922332726270800879304719627210836610626591736372391473402319099783696369391292189243095988062337362558779393343574691509228499848845421872746003562611797558600407816733008211764707453938467492727416910937194437304163005623368166087724572130180000183137602463882151012958747223312932314920098777791820290232051821804102298713020416318020308837546466850282138897410482693842075903421366796022954101440843603303759045145336442941029710882736559046212925692623854088159694575337032983321399836675419403977695872977777819243039607604670024067582099258289858197937535610206128242301904020413191628535765553230811730632891352314757343596777446637320914981115093560500787560945531175676830060796418358691283590752108087970260282772955798557993691112747476518146657090674669164127792562830367948792849146596271329894094072482524912358246284924037276679616267174794328725681785598248448630292170238897113220266435355825413451261434714712063726301699483938596789544224796563552627652714766617669943425966391080978035047707158934110155112099512752347371628497367058398133092876389013929914231207064698326610605049354868862090530289765990161236513892103011306041466547473340486749715122908577579940404465248225037441123869515118753423648354000575491258464406278969761729529354243779571091851495751438390253419585161884358276049450926608933094979927004728869922244525611674959998962027227677680046885978667049008519069085047792660658973841299916705855011695005660501639572138655992535781880244414884777273881799209692029777456495502557715493866184796427863696829110519263319106103197419295637078164242487815446780983227092596593866843153607207130029103455707552957504495791299150668049944245051439204688281891172800593275330569288557124927994870544617222673619094529123329756343483848020141825370169552020328618213497024619338884616733042856461866689621779680043036331161528285944243660721330379303221052319035219382237195197676328517473824185095720394271674670442148272742390852911071983903886118723976058317320581095599094396875907173794760743105153806108959804519623345926166721877697295744230075767105206312543202796254476387034035572116966209505573791395722443601470491465399226823768066204921505982701806168787767015346712104015958259237907412064094775449913750932940401466697556363062191762512400518566361738063103970436618632621210739915798339754439795706982042634834916074536268988208137005309676222128226617184601985620213282407687675637803222555721838888295776687592238577859407844172205538728367211874433175318874423645479831943821864075733580516895700812321373787947107595699215428688933474568356071056329290735095234455303674349928112390082075394300106455645971500615604745418035355290041242309630648984758523012028103644899249376726028757118691794585386874155868082159595607780609695372138973271323160862475858015458737558840619009381338359520631366054096742797162852724261309509560600155009646737749139829402661903199889191770340008277026617074229614017540056214287198392259819839532727934044841385835835026364876079700385997085443975287280442397804929657575492336522379347977032902041670573434562185337061773804295036464788043553491115381636845856108283011667716138960350098268053815964588118232928694857886731643792028834756520126901316621425626182580109231589407633571285912825327364550027311557784464467718928941185661097704733986062675502689659741677859941689566642601508208233264370455404028773897736992485589690297230151927958810870005960831725340083255228867503330567036044184813666641642370346360706758283694472008821729146178984617689953414856177430285638659768231290506387168777147564965106739264145870767608451385953811609323658599591822618529571081699369202536242284377492612063794868654873008371866913108611671811612424044218506428405119116841191154758185591083481117948489562902319110607972258276367368729957687110170518335333880147115273035339190720981487934276874868670101129998277179167102522184785379065847565057734218784874529572704099362453832596882008074232301868587255620927804555569401972434876834749295857518632427970889684030783086723527514122311614856651464718362402746520906363872160377298328188274798709790583665080911444774955537320654006444600914918524102858738847529892505507952555830141645629768994249361360992271369147272386560354690819251026472942477446589224929635254072024014680141463354073407833933231720829989636839742838745866108781740769859748220639469480912978944933364632727483929212631772361499958263978928032351496373219750365875715561062913485449859349711881989240097881472694296389192942109209169963430129501627056151017940584917383153271861573852579701260594877185466972531769750288110115983377850699053418290334184643290782757171625090918386822527016834824776037112912649337992862863406938178600943100000071487408110285092877667779650927593737716395338681387086432071356027007220191043563077518198662199696538955640702963459185712191287978511440953788549567719124878602218225301590521611997811343351410372118332987815114552125915000201854869299023891105357836320299470474741723561999721446953126208024617814181804156431133075175124646483622826704327295552391270927078274010778265295372185901532010491957872171803372607203085696977092527604313634616701138857398887702036080942900901707670180234309754831567977489518487456147798594899654559989186124044530382538948983596566097521076813295242402179889398660737165651565610792645559845452785328271954980131008376886338783400320641524668553183065941787709044340817186404737087776944307781485213079042531773180464672465881939921313019032127899751547707284599582053458080343414083088836741333598768933912681993967447064243709318405061703352643491053173292122664767994805665435713536970303444335217853223355111684647990279205066894195205573084456459556271469346565607286661149248092702081187677584224504230816312814446783227066746694535739203624107731465537880478338650121245492499112167993964785841867523388407133456662505576184002641091292048868028224108112879445889185086988829492224153309027398919493713131003618794953804174576573125665452402496545915134396639647208468189168836937229241150335611643047858923617680435900206330832166366714851856319945872792455463472200225015974078273387478093466330661322273437296106297154149655277469819109077049484795819367221953634980804615095922351068988187536847909688295165380374035131222279494040018272556435329641798581576778638964365377550472357155566541419868038908805117280965669659180513024335696933925054390916920647501552189408741804676304412684557676493582619272205835308983079160899041990264667907099025704376017825108489804822889059417308740678034690522993342354703402907358909361342122433507723441790509183045339742866932306989830391751518880410421746410947129524456365345815398831327038296153817315330383945883536957984341626924077462639113846959767444535791845153071077601743776274189039356259343465252161431589614615153382390247365903845334029793942366497347937191310169803280069612015461630821101371731603589358558627113695198337379056796958292171161556018565940979761489309782252282809623163020798245124704938505033110608653795783255282671051159548402847313469764702632841459289960493663343396646629490910663556858751997382949347851407960486616010619274427715960916063547122469414716865338879736705271713583106095216977568020426789342087435593814329673674652779084240426544232576001929367276901691125671921559466581170866429686288489509227303495428788774276384605442354019186533206588282592361400837012658227379707083939999687157162702476114571911278213104421584842374865381521644530368249741313532937481907705829906929934414306191501354897495378330548084473634199478493231654137155724680701278728268220176871337425247319796884621688446604677756397843211792120043210550620254927327717533708873519836109814685913210782976588038380772875861763825729862827404840892962802316903741300436160831760930282484784490861160509242148862127283099006511999949851610316834306969557211930593737538989925720293607765300010408276218574955498413578472200407073473359358763308773052757290299634583535350882786632366724922006184437713536014158818143808604236736808231088891615742477227106176992061316721364904348916185569475718680257061358088173139025454560320784400048508210929676751375102400563984514881873610130507477326092441608622829200895398056770079027403280039443652403269171032705718998502801578507072100102279715009635216967350505077676506389145424209554885668536224358824378312944946196645327707482676124860512607744667561562615042420949629753967300315941103218839057977709376499644108527615709488733050440097593039242254267843908853251158582463288963819655578042856829641842381961754755942980210599224745426618572890740107172395947594400800662480466056232757539876707052295397431141651280349305511390468030798320899277940037388082878307461594857884684326911961986341950714533668577357494093707764480058456888565052297189361581648748685115753411155510358689704840345211659414161151297029471951184700298909884703144891528948828317863397541936600959226030623189841997167580600488535865172880859622272970370715682573921726664341513500305687188210412206227636349489895437557945183963171930648685573803732200852504883869968186895782136840766250451832126879509997180520420790727941250530306778518242206923078281546864278723336416016338831473147078511678089291019009865107755942919106810946687873840813651421667078062166172571380702388671486845239489703695878647396750585106384884813165990888418788358225269767074382025421931485250729401751470146856881342049033531695702140943345708356801547708655636866962737918372453164416711081113743585260018102387987095425737529985272524874132337110744264342920973198650519696865597836005211868871360862624333295864981924547165583278746680900002308876033725676416878626312246481377008543443368626023471843285178719120371526984845127100914546344192371859754177172461781615578373226743312171943410405793294801570324666895904722699326849210706414749177438614933439922724085923124297525907784487261858205795285147475339464088072917455068606129768340624382052838969820019689645432716296751293785848427606406839760451548869410190992393979817414485029196667101251932601065301315570070728065237202887086241491182180191784925589813196508187921743959511273035095032387052983658268427388381210295007822680268343204797284108684419636661077376033596953191261806477843729257655398375230985834301972842222976404273786447176758039592829639667651236936365577158425078359581542146019139447361779433156411372284489847420235017791488802835881071855476547162257216118943100371770907998635869389908129138894468078644730541388643323475217936237149043579834202191778774667445702702081199003274888955647516910774550265738603292287140052748909559938046358803441727537495803478167296212724661706499873592614470938390741595777415153372728319368995369614550335422062340913314192123592298706827787507498108521667231927655398804812713741578807589845862522824758558903886335818204941334943144916574022438429533346361204666930827030913534333874285331601732473049656325734264027741712481943593921960464404258929156853242081750424460956575637726562652331226933660146214212471299973488364407173564688634478452099664132768856000322078398518781013893650728490707486565803466257765083248712824321465272515956203116307841969713266055950699241489098198402128288762790978584270113303873231051638036366892859154103963841630462928439698611769891460739170185649922075901713372852002061483236883439153216042227018535787054145852717202782941049006452678221365461854289281545330917980264678328372663790031939962158160213175887193783187459707782410807202387206829759675183706001049458552457388057212018381480984352157967756545987377230917393803189698505825199908190847387445536871907854177510248437775585008476259032880964992186548635223577545238670985186295248900916935449720942557518372021024883555392731202196160442505835504626834474908640241177692757891052757929935973071932142577453322324756823779060257580303205887988865004248171433323829991645639045314353821031232003573392854596023975991720950634851747418970888534203467837867839976201454826616896618862191166021752035618287817431233281193198790614525257962331942773007464752419991071291187880469431453518814839335654189119656086431769085209094495471298055420473523268247335081614167627868166946737148054945720937599990405849699846760913855110744546939148698813994721609650208880995090891390663051626319127395523456497420908321168176436979713701982539584102428460967051873812829234723884617067382805727335592807778153893603766437324024796369066515234990543448609023147562331552425072744598441434308481371752621696015907087716710487584730820673618544061157424139305035837454045219791252621855428722623832908495939868836082097097893074531067430863948951186905323406845040803098348216380952557206048819704081400050347792511121849433391333750355856358470766215503143625777062166860502890097004218778563976894198401460572985437350429927803866471144932973903677866261736163705837521573171842872988584300702672308127176712826865615448991847401580409418276710702717280904273586343337466022806251701329107214207900635680286195627571215449026924303954998300994334733258279396686650917127241926371534656690230589418844349929477856622683155090325728379798098872118890627895985145302193357758984381572631811527650578882977086419941272446770512327013764075787449192709193549673156567635916646647736760556960430844087265256089776226932618070761964908212285601340736837279853281394136103627712483134237887072167229867400446341898815309606880951476567319446613943689542968684210591648156748974514850558559382518486288833258863340809114051335365185391240900649638187730581452812911699583313179600586638971979296012401826167696584236393358746600428958372810511047488754819699658829299604908972497024889923075300946793298371095876553358142426819212814834924333694372276130407642070210035286650246491883667735063243598413438204828739653319898180524537691425009792928265892974881609132631380350072621406191049465776122021831826332671819051114591488889503509032233230500492869990733318830609952843318263966116510227343655257802490768588932599997506143544506257777976033383137222090678797934447453849023811961322007730748070981006188334739273416281220467685611216377559670773120656160539468799999425608580663952300288651263599153118814704600089637292712012548506979000848637718675277858221993427244457550031870750388325573410052205685755520043369527880218444900305518579997245445481271201629361028086404251074282976873902435809638745958180899760865396240023637615845412520992584661450592683110919616292741547166352801781607346168272392516586619056654199722439992793819827507747993112224583375089218596907097926223570592050765668932880251592615162423514227802523458700907633230843113401226084251565114542485643976324266297481387241499277733979075284194390150610884595515541487863341540536873474679653410410690857126591139570508729199353747310618365875987943608587056944511489096171484613831239048172362823533671822726572851266663460530618679097792410704800396486406343326045598143263318997412340410828037147485798314175211036208001983594634504186440607211767428314096625727119584595894211345714799485678130691264890603132779201048567721259883282273493763261799599419698602162262258617912761580744559771504319010629806323603304400846411799015208751229995548160780572773208724364657745090517697567046506736588723812095589113947405890012660847775931433447295998695535632407702258241507859190363666733880246254866503570846214578312685276650765315364106257759270114686554695920300480454529631130059891227916558904543448186691500480751116731023972142890406850212212219030727590884405601834481839566966666082611284530353629621194856473085742471045623165710879224951076314680675420769495285156166666029311951768287056511593558433058173182122851039390032545241292789055541485506053354627132480449265252666252808771734372778393453766165880174337347775890692828286991441822040542872780914578529058666090898576635984359466394677131728607079633871810139613454412394539808005505089618178174069965941015762252887623525427090860155011255888036269499716942091084511764538733012650184151142499976360950961938041568653626652593141047261543054276168589947499842964955232836647691839681568531288232937125200267980699643725113147430204080992852400740523553505564657024099474433713363740853775254147844675479631568747750554990726297409247995522308315765546087094099120278031442356225048604377121025472145768956637533975126733003944404270812660453347493352180924349498926036585532606536837878486635909272979619030059606095597974685874370672570720556963479522993353870921956004578110873324347856107700584975124267053067961446682689377895109077047916269465043718611043350655052803894334591838736127203286114508320715592761874713011148295399514877273960528694369767905087881818829128135083559806664155573273111284587532104611993224208148597829677225698753556377760506248891420418441585757637318247232696165409642383956525673507335756496095527563430638641638938514956441216404638413106624437110560552829898135523297103296536814048086177398263888828245748643910094210908835038669934150551520724609009333057576526074229872524219037322828765494230689469454505263959194851683730397782453954193884083737980284040911693797087408298570760994656427801811010234463229169671127701296189524030364933496282534527784519978835067965775130625814341521881998467071339802391269076821175774828647465633959945682059725176692759220141322972595505371329053318772942344830704534516114209064708304695551333376223574658669820355101097590534940592242110002127047142484592568377343011875531389235834857378018895776236412294730675522581731046508052759439563904834440314379167317194801237257259590443880380385459266248645414477160094291695755330962669579030191380906298940103298046285233359650299175974793371596097439510878380136305571467129553112252887221853485280350393874759680193893751524558379694984648939965522884192661978591955970196959408160423210658931378606006442900096173958077158470768016817306886443316082415823459443159669167471086362350290963537879348975686232312086084416702579815522724696236644351949354951938780128280614494415185027196621339591320557702099034874885064947477185557311837909872723324692032151257944478739243221537995023763160462496363976661270813506540990079113633490670207109337484412754764905663581525732968290967116041087080801031151539075259038475565960165101349842336443054127987989164801446636952229773273511178671338482445130956766355037914400388491390350879728541909416653262708475314942794527379968678568608972628341292514011735705190676241119964108619687071168874072001390738741098360313109383498050678970112149148312166177921705155576696111905357524332256949506678882493892591604748752188819983544448140055442456654382997956768432843332395175899476834670127305444650616679707689696829425485976361547338820779831859862414424045921194963917502885623987550883752323129082144614333042011427048259765392506607911226694891180996333339942349767773149887361377501654020899337910832639434329815510686713814807513712267888164293918183434815075864901457796102076972036292978299046973860843358931642739963430523343158508015693304430740612287023633003861055407415212240150626491931599616422558139427446724806144779002868392561225306741069615317886576011516727707577528993762429510170614098981303286386868047089777461408137832501630425690317640511996288874428548127546878800652255041385193194478636418747390252399336041102466897538457802815107416906089686664659014538692661671868638489749990247560524074009930637899612916933777271638381813852319355044341798510568302919702879070134922159307619198386442314550363675470116888699630932063538248596282262272674487924337133902642417455447936842939125837597248893050708811455783853687515681951084372512112619431237433654262555672441434730450424494696222298899106263225410362862895006325253425589727672009864770547219022462107897685166867916468292961399158625633570021018680908649563117727974289687911586313646215206289817136778923946517474975039426326132341633557743707820393934056454928694757984088284719923466523832509372896519539843689038383353568182810466177088332688704584166577992919343213560360651424042137397034921213618947895090896373989252686666504210546754181990575831529341093101636718861186267309235281312467670127262922024521492193038402510371283525319299551008923288072956133871060458469167105028009291735071738245850623208072215288107821130347229380857513335782130095607671075349116072742773156236752714338258053130513093031514910142408365635119884453072034023031365194786051235082481047324441630015293718648337059635824066017398341146414293799017664110006626065977309650214733232620872091244566869392808652469376296465857411524608182938787318680138367932588201788962718794078350880403866292000105024809462933038461227865517845740247638897311682466198206748387977702611503035297895880207065469124894435129235353598751231116546216211991359977075207129489355195297169882657465518493860775391150851676696266663543525944611621205953068415618912392571589422192002537136811423468722355186996383494337793989525089094870000915028505838495485093900665977929748770292354222488937182809568366589153813098495961539126868993622287111031200175647969818665442175951845160800483261644565224748661586096182769974245888414183160864277522559905883037037922956025975500690410596429354195732705878702897131036432414967238690730842518107283678424530003649735743658419586324206604038890035252925457981308355759765099237463223993231468103077326890817600806815349609574594654889030271850974999478945416838331279817840771220637125147023163852504272834280282627804395704453978259594370193588029258153683685938300597564408323711333744188128369702404192016949672265546087055455723943012106809393752714905271820620509165541888536893942466197809462597468512991897343084810718335990024683521676503439485366609920318135431723542971162182376501943400036583818226576455796048505211670914421650922909110339569909225630751793080996940653104851790967062297080043289028701481664604385657880266798852535455790269833603545421340493405665938371735487603303968009919097840870135646472045273300806629789555572640929360723772835447727487798305957738904593443939757714717980483326946070898565101759033826327459914507419049944574610541463951133363567382854635752929421936446063705397401119579048712290131368446492171877342757421728247382646068687322528136620926560222088860062961042485735979445524119354230537538269139458716374163673354406062050873287912863024002226839399754769688008041496293639636373480659078613461487191553770667003499462344724624232971552682653012822551919612325913113750354467336403597428064565943916286038405584507784269565262765441135089891653957278056304973879828386892068666640079864765944027755208373784576702710460829539372798605444373717961153537484171684342896062618907779526171836964819258084639605443135664313584650869467425838306522208643286491124355435309865068778631539153178615296126994561272859326060391154017490157290158380826638771875513302032934671893709177133426065968469349650468580874853630338243043720144505890560311944592388567548409577115327402296863093720224069633421422224079333567837398481504874656527744439313112322990598245823071673409845714855216700831222875051830537536144362783452769492181514791170844455246755832228171683678620436855424990473205902514375576353886067107238895904273361688593077984190686754004389918426689134860294876928917973177350003512809810608638488471361972315458239136635096957461402842529389690097770059110649473250345476290453496605346311480944890229698397779190098294337699933190695002047155055643680703406963872524869818479031205826663611975552257215948676579485601595685804550548923123592315498132369955427563544584360265696188774661248424792762103745900092620905341957313775282007096440631667716136564426228097800971115142830916930524812218933042354266186936285562013390430607962602168440195252026665256261125015326781257286480201744123145617032918785160044268141664008773334742828229296779967699341078552926031370307919744510224591889690910480967960783053510416164108653007079960859837771662350295335117089394444740306429214427231827996546750553069910891132267241993151211039961859506629852061576294627325465475367041624761269444521573769417452351383739234718360224941405132064437313089223888241431685644745637453377494157324455245963069484150294463447264074651531242664571909623733287250407623649207713309274648928754502168729771052704453269006846654155187374315618131017703684162346281610916932780475223395448161601112833382429145056929336080783441256644889758572758206617949742907898332772598313106981472264524414104385295877916327699503596993286616295201231921436874235738554679598557705929072431695613443810120078005776508163397350265157871985443230291545157610036632104913402913001495726347381289747760619352833289474436074556075475824017439728348705923872279664645861976608099881951943894242945088342404336851683145699619459580973502519607096276752368501971411023476285920223556837415237415783441848533790198425040681588342629223811057890752244053194974247867059354439371591622093074818242940601690071199206955735970008418474835213375800720118047470244024862253961776231057571333214097416045228838939646132830832613728084604798377125503471939811996739292320019797833939534978975001839019333519576339071261860642068725660728925027419264961099051765526567567166790460915306090067954412537592767383087613081373580644851702041763755296512134045281021018365693771863370258874850232985124566544875341030086304997431675854570929032497527625983838436541498827024344441519094412242063970706927124774806817137435234835839035888853235478337627948743521206220167863245579543129901003310448970058898374553032647165392329221531494271501432430507285725602911803082609756671162368358648333955744329951192705437789383566807129164498662028693212481445764944175285718918419041212187350996330386964921114991078712390035617973393986672425797470322749855335745038240852415002734161818163358302441168463994832584267948010403397205548327088197857095624966614254061830850335157162799973768013886979234014699559974678930801878671136081842125752918362918780858570368252527915223593665501991502240391066960803966078340349818930494449340590022554613960975400286555944609137417243834694597431785282898472437765979665711477021032459508100772330271640145666897636126799730616941549172778586538756651372508932630814155091844112126339431048710538772806321172976813210678289686794432449946509981904574950847507484874285766323124844162342007234472650386875421825692400370873102148637223120914180055768180503939753723713053101982050051708734140587964841265008912751366842682575619403279774086810448949463518233855388384461371134661979070924912163588654666930912491889187692632371354293060538470251946443473459826191751426404284318029539524724654961579920275596147472257212133797292853128732897327417029089214181457824990815685934442208120130533199628295097462439984557663459495270487561764538403081596721664544031922760176598036990849092481154689811338988052448908645489655482362087033228454215350504667041677222966634093035210424200156503594595309797789234920052494741460060423441805352480464935351093234132500262167217074024377558829948179647589177848717173957909096990914653182295531124306424229533837909094918904942376742801846186762125758025187105359733493309275164785410283878548151065086126389766594286718450579267905722209556835441146979696149032481126149562128934371929554314153978905820408382364926423195928635539965217009740919292258936113762393131579368413075781312086062647942060679513695606609168845316255395053596159423261021220815355565683008815729092782405512794497109434503140014590289776905645573533380806378648092903651437770464234551309382769854844632821692215572621084817485431575849610312033858924555948769496659264022917880574638315951966266300384824976426712596132671157386244507539738867390314219166492950044083916596565386420788810301543163066128491603596212643312546760723230431387268864865979199270328756152603138549985235554225759313186890473229057282562123681717526042815950865420002212812891406859554938005387044809511920574057438447815268639001150515312068856228889051708452148325450024021176100255701711011415702014033467226373687396053164645904731894827469554833348251278887086177154969262337484373198303704791336994212225745543119295665014241867386240402847501400800526478388417271280065045113350587613839266900213349178933439898264367328157600163513270473927627336780212957370701614450074470717781958608645887817576378531589882355010469591270141393431972873977620519329193866730811791756829655983174744310008041053904072136473609779560874519592343467634977321021774466349564615250603556823361677779663300278521108926925948379582733594614280978353971736525967297010589377360053262149815721621849004493892740204340562999084341285740544103090761627713050345661439761528823594243094570749858056037372539334999267308647052415301839721347809524668698452984469739854972522315218262035122538881801589880448203103819178432368765113664466141687267554372984014071732661159559355921326453968845402511215015123558777556789444127232006228227448241828144527038762584791592904725952582651938932496881407600525329184070621298871823255891154878225780670916123514903714470589955822273959567380697428172230302239004384928183690757677837265575638650782993307647912624816744096486745506605122487766777007461974640779851134747894858536768464861734019841246979547881606716707141138371166843405625771713990811345304020720548488897377551770856694958507842939798631764828713627051021377464622572553242832623630767682429890126502017211520566381999587720308763444459133368277635800085770992691378389787145287970865550205891985592408777027820782093830368458573137341479351294980897619830251172856733029599662308273077268683885550185016427655185591380271767776449971720287455155082837270723085343095463085904510731078444267824021758455695915525147859862462805384955721295126053741242061274238667535960712152813643033148295650598153038803373827750989159613515537837688108880307711853483285545357754483385076022426308168631174851261258602985256901496169839990806950793586402535593141490064725819613527176269252941697246956494694036058045984393550812868474559333062244150663057069158039341391453175111922626600928155713344456153382533880433025145752601721083443200387532636425890380828014307743522797198760733366378471941629890183685251423673120390401977804085424097376903197688027839206814428154553521707295413662174818758252941846628297441681503885963630387193902852256396435043377101922542747921026179571455671832285543962140762077493876867026522702350391540683469975625697841190901007123649381366203014675138359613024805264279496286095644316054000524442672295290552382303254869300698944079905058744627472453072442584523870823117917046316963171246516268688787926848340740352192146379603005592119752886461653379041292083690614253877275938893146652590222712761873015624845102335403795600580682545099457894082892897886531535248644300550246427053561692079672961879661708493664988413184215255075478288300518805531293323413991425086514313548444602779794030888763115117219967091645470344341565230308844984779335051879564688439547781623015549681055756432825197725132800125240478447891268148620121854682191558041790608296585181771324007679609458689002098465070879506176480528885891615546619571490740317917743144653424335918635205100100969593587652325073546435785183564626185238905487593296823550301296362250446282931648171313209643709211900625437814582501226918128270528178012233731318062897706656212381175171359747270521840647803582898170020113924419189515870637288472376767963367551413243407901392358373583699425953711934482346599756119955708662727747858643056622117861857407520597857603686425591174126415573911077559809985231093696465688974957498813719560745960685961338238996792574634969224858994975147380044075464804458642439500037788652230469921859295430400948718975880002099417163949862349240861646131040794596761632170154205983933654084192133732986607135884384947084961356971991435091876724582407620253429465455807327449028530975392095582958015022668613677390814354882437674243386625265792662316026722458164878187082049276432950820275692859774119751055962018780628862087236817237538368703937089544353981387329119121658265993766970749207823946533742738881153427939223312710919121801940873398221641810174773811313950018035147972000638727367155980245846780654808098975846158765475953618584104159747867746374178554101721902740424824348835946288709147804847397603256805417849704543991160902338835924705079695446217636656946247573509215012230769630188177499302439410806802680854966807929574452680387240531951358382383604635071880281488126186138248977267592927878844661232274162266826512336729710102978190206017187977061611963119827117780929547892031040882748622801958618376371207181173714895872575783335700390023694668530546319897583169435277679690232653138671342148980035504878938405865069103960925512966854581993048035962811403181901567924577332212954385959698375291255701199393239326746170691956302326434977610622732673829592676220688023625427743247921577940989987741066187461800278323475138332747849379770103584144062496198025827529120414332570409608494546731500837025105601657936631122455573139162389254293166370353123351908889523143909640785567880186156194396347635390225060964658163455473585524763636229825549087983586147214877918493097528775832132802922623151476331218294102814758056390733460054746836576757453323192188868453134184259747749523701945330326598810345072449968341855878175544857044213415121658240560031819945739678705045348340604045662911975833720142879603652240920889460431352263580515461297378594131938609336633602187408769804285252513757157109810765227859346498795578813050904516968927451730737695754291848959052958281155713657601515623402811521174644024000109795061882497303747607182828594585952070870576941409114416249214285705107657517121750663786125499423718536703878155378822474841371071473041901597600045473098184882584845606619823753477067961264864403126366042958341941158242647593149487863572071069124095180798334715470008782738746577196290507155319796200730831611399662660127575028676245919095822916140482315338061552164444583913674123171935389725730525549025105617920682216201452929358430148194056904208485107674269099231963982676095027362509267502784290839355265525207713707531450086089675820452672258308409979933070632176312437288804056692742694680927918867377781099089892817534940755896165256555115574324459801271488920955710641686468512828327340920424315205197616057120494302461334061494119324979825391209260368649187672837723490885579079433209473789452573243354285319506814312341090117042936112755792660124716327531578078208162798642425036965670484329392461493387756780812615878853380562836994918507533205464514176985332236221715391810838268410520822639913732249893835296992593037861420308072051785483290229803984402044399866257387262200199293036544704314342669864800302974910020480915662089091185338530393887624018559226287007578709750005940971657342540730824597021953334833172210099440296162140528546150731668930240825527086273330245003246215193636436262648012665590882475921052958089144618595421101535417138564049352377550393495941506330465709064907581328483001765901046504605561624498913197036714663013894518343964015132774754692667513513402626901958022141126966357853153553040235238508818114277586829845085072552618153457667061639401207732210720126046843513765940141592297312664106029336893211184359569936717776826541178663373310693327380151911125748067036364413249352906308788654004845105700180960569887416447693568978727674440417234800761613335536709314283893325455157608885792815084677414244565524314151334335866067561574163253480267460636062472047440258937498811225109563037569462135995174114985533820114450422285834260014137796313139154681847729167948831779056383019747985208190184325470024840099532116569442156907676516371969641363067978762355233088002805390982302832600540038456108489458410078281840254065791660719984964230989812013645748792445547353948984287786304473378112376540257379690156391015630721989214849938720471349251353317502356093073185782045991461476629165281950524291615185791264518839364018062389844447414237293847735665596285818361167130595453872815794595078235710158735339166636236360240753197161164387816573765844451418373915131730078004793135389904254707248128153764679479188031355080377119598259223353150429958438401972033098320029128816604377903128674491342450943118177140076952703191750163565482352122003845138137831570616825987190993191082205368107662162178222688166897989998849961549934493168178702137770186772326098881787981843285361755550530732059953284694354728537660609656965017665579071788182067674038299138537438857062155226806693601660693775962947948753302613446117077107935467586959633040794787443292892113818841050234782612975426581732170933136148066007726683684901413851409760525735219701952058392170116701147351339918712175234212505800242749573100609467048879335208731257824375044617712967730912363892292337977964070183782387789559343641743699569769280560963519312382362407316544476890698421051361189212788702331070013916555658158222309545049603115927985142910757637605291258595617589715503812571874232219798278161787619168030252850702495741704936990144722628942419948361341268352111381877182651368838430272807612337873524275209588741318537008776249026810486731092195598209289902691890428755440323567632224921407849177914029175587933432501952534441825398338110589416820263140023538585467016822998960765593643532450611187019453182197914728158633626294279985205114505719479334633245784863926165792288476772627456034998131598565873369878372499548483187549672246609739019791762683505377779102977107126418547025764924605152094960734774520976676330531296621202403974139505855038954437678950461740078076257367937080975109496369348971255735241572314893281416460969234562500359531004558341631464174642900228754234532924654596052571337108140649547545707464355733619828704829022593635801102940975696192950648083620226412456192481463020297712239326262754514306653941989504231723597620061345478970509714902879728454883018473533539504612249677748546059976242171049931796955443376743022265777131694051048717713103987629908699587940707380944081225342232988661972586682427058307866411452179962511157266921288793291264432666351273324602889328323785855736058269384953178052794928115261870648203382163849050310652764273068987159864786284977893212463376391390113881184230087445756412460636856648806637886824830888190099206263974229614442855171999404325358047775776168148863250873976556821880301681667149650672805923768323076583594355295215416983311920593052285385729509055507697804941182935266119483205464374946910459596250946258408297498265503466743908490851088539315758676408218026180708984980897061560435256283045106900191152077391483952562130732807532954735320283456587457733660296542124932880948154701880529773594236674882694411561900094209759573862399129468066000875819158434826167696155257931897834273542002546593045440167939578808321609417428040267445298450104518928975259795816360419447436850692813956334130258762258864775571743103458668665340440227977092865637577703006175089685533941668777323354114878623985150205590883300061508276405450943984951481631206465164545054594018112048398736753995699777299497961700627463348187004260191671112312901215645238269476714863432971876813561263272549399553592667874999363304736809862495413678604217811981690364863579971501225913157827057860821981883442603034861864679545422874007711083479462873553435959248088743506250055500830543000680274148765695776026444536223393724409701151851569423844173228736082789276698769554231269991465997955489342784552795542998250204616341828288895178181800874484266428967541415048981167101993487085849937761508831674429168789045163785388621980878158165401099787963138095680369081482309815091511811125674120756884133327981868094145808314429716131500978183218403539731442680987901227428248662435771087855354102908020625001698000171841438679682757670141928788543302593267872770621650112162939381109270127674966482615757434277921457813898378744728252435818405563096780473009341246905848245668639664957451108521115550351896077279292240275140205601940176928324576706799958188738384277400539361159846205494679335453613656879753785754384133392100398044720915347297399381649456519251328580635968643993981936432072342537380906190506200523411743962064927008859229648029525443391254762785152741143129453661081752277473850938052505524334710640740101471218585212483452521365427790927145243314114319919565262354372606152172593414317910588221133386479579654073875864195004600251710244714720911455614112694091208765626052476379321071582263773401227646341306761805560197526821185414828996961635935269674361160398779179547331633086976917305613092688974966035261260726332133646182443771222436580388443744092106486318110184469144810852986951312086389579979849783959866453176571787541575939258337444701839390724292902244949109975628135344745128095788321916223146788493926627701125761229491491122254136017568572226689615920774511804242490637767625475753274124968402205778753867941127105129076115907386263106884339060915859194493612843908218228477654402860905151309936313970540659622984099156007310830009128406876748406547557118532305808708694397855158662816034958410646389820115030159815018654179086724625878178761999462888971851117016332072181503390754539554701146023241132170631226481584380498160875937559419859819359723600401465323479914671861255182449752330969231747367122614075933449517584444812411838938024310855985554423636501125452085963227340097384611219565128801365347093969201722414335040002799887381723610973195166770099738283476059429570401506645985175534134542499177427680870413322962303414141029459545671689754822864628938512187058892262965466644794170970930612272878838144831231334716465184885877328732717658686024295518730743732285480562527438029429988486999288789742159615890689554153875151550466140460919153943926146935514277680592803489303470148051794333595408240585884357216342763992450788379418843541625197715183549591754999912521312827017022854189617941999943788060042956535945262710874167456909738310750165543062873232979979544189146551206835401608184010331184987930241605872007062505179138611488719018028633582828378987098842867542558841244200557012184007631993802340193505274792703902012034759202888364069858781338049918350127448896246907463605726431869435604069837191589390885659971208002829009916560223762321453043259297508761946446540125485053456400688142904302562204347906981667928036231653653179516624612714364408770336301463741300439252242640426337946771001519011812827648096591353773431213492405733474593352341433524958652677832795168603006711111365461834073760151860936765713431114703167974829624011622398189838394817520015336065366815884780116303738179302501677430396259149915340244764197207927822447846891227392749464704349780783419009792217847149435745183879183184470995949499549937390469797585817320524713082421980900077837748868177400136690108648428385018680355270231275090873642713027923195818148595351674788624749489418028555653888128056620016017155589964879031548863762083763494533962388519026820803508257819901958244568555345464917601646018646944530336467250032434958519626295570657114226688191300518098020254995351545143150967494033437107835621518696868387506382102511475013092958423906834359863678741984315569863861775576572201574769201769383112038899227584085205541516727470429979770042137723285767851492337680290681688672593133610502487221680238689579443075127442907483939181356119399224120008349198029947005353340044757534802029829866546015208198539140369218773882573993259433596233959033917517923606524406130501577155136400611357192138338893900251096411706746535390370308073557156614465154356754828881574018047696737211203723597895820628199948735342942711710896224164967159001805630634473072111557959134332418477989989819533742671562931645808225861157365067991591297044933358284958118610902708610935556637246796969356219966175750270361266370870200875565158348092519291585422592319084648692224046294529064101233308625385833468255259285061212967994156300859189859713310488928386260828586987692403938009675991143520426877651980827245367492720976127919973973198557089844072580541041382377623931237326751280661030641536179200861659658206128233076127967301755204529479390270624783088450173679624056590181353831603068165786819273597265031203445397002041151020418318602566260672629928243533074023523647844483915601420131702971207154605380622027323069030566111975625151220972374678321014639754503924038091215169223573529440368949889908620719330569135811815733735638684680149406576940218827221130930437597972477734689559776498100241229729870762989055189407618308611874777508515111633345993127515282903653726226290967356180401764718979113144046927723668887743918450490247916335158306069874540631888253856892966019646731224571004975125270183671724431312187074788190226312394699745008923213287601035756287311660190683955465818352476159811647004987622126911889009450482047134370622259194454616630648387764687356510015839001002121385452285325207784557126554461151378021236515290394928143405401437619299383828063018231507392737002590143702336956413331335970834171585817297607668017927369892401224340286361688318494489667784121972216606006526207420383090347640819248184252237308934217639318634044497813320758853022417267416125439792343994112275384246932850700349103087619788916479260917528557782087236396639607102466812378137873594429534364334750194567714473440220009621718275047990211580131507272943153040085870220746529731593404451617868863524645054478548471638124989317656931090417624367095996757572717152161365494887101023448256295588612973609767243336789945643628076927763540857566344496744097494826143228776024055864337693701505628941756286714150498487760121446229501520969461138179157731880860171122744594675145032218300900184160466207478892818504393529418503224543610443256427651672742700258953279147866534459680389343960543372440752821518170153409346712500725716350066716387242925549745865662503061614198225136113343211218963633021789397014777563896491156152743411634626723353480438719076007493347915838334943406407150721798697562006782145632930821145984693375130427393994387936140729267362716817517519744690043782379869166975816110762634687317684566654957625113333715572203895396345648752226755505760471870216856792062220447446779095231967957710782909564686369774924254102910127510251935106782097429223008281877457563839386899697766641761891706830670263933193943247211276736399558199637706305644909499144854920261326198390562322612226083155598571839977405134586539125141993515722572909850822706677297624592716419605574940592132054889740392279762187784561534790169343455493254939354938075507557635898416487636172384746402391651795659874406333589136521102438527666450584740992258408725242629938155403839549854654832655272427829336685877285030078353902806197191484836269355016247211905997005565379231408386080864399563270770125537450620482595835404857162336068487178058902003411036221400607453352158522753754813217414221096420310421621262252885205229939146420342149368669006353058903831523569501861520542622844417647404165739629532737767275658016914530789414200708400865290874679339201873636291577750867791289358816450348384665319922118548937922914608688226588062205854531880166862656091674904262286626308346980687306397621244222893072931790795289045117436817099856703059406613358726387682305924745281987605439937461485399600022299776506300025060073710212875056012300737112185777357333703961857642085134434976315647486906119219701861143924230198273114362497561753898859844158335735940020103633609718766300351917087289076242214464892561823753866822665714194687742434147599005302054035261472811100935132799772602125890056273627540879127642827884896244981663478700398363739467722544652039077782309159106887021526526242924161088939616210558657170452650959632096608913585800957064655834914477056378554045198424221008475962629219303483639432881498748202948079127245095752041360295143237882601583039961118354265476477619452733645700897217119374338106150689165171224421442257968157414936378882736903375750591791842623943727240001230969480553516692870000591767865610145305205129978779361932413735624499674695825099278292342963800414807885097436217557695733376609948675040961416438503984685166398801883832698719552911728687142131929667175428947057719831774743673375163127510520192971464517273980801864236072739678351327675470180248323981558779697561225372376624517591191487346548444014508118142683007938193741363377908528264858399506773303606763893695650802361120812419875796427993917974805605973046742412963470843764778798933379329227360056830867925784694970038501257893008004217698182635126941359658745325715047418542524933980472878926492056020210778564945973719916958001087920429480839621467529225701457949708292225311130851224854348021274270749005512658370434954864903865342518506422977947731965090622567063928891845713022170493677114098558175509709307848968121136384606010325342025366248217104950760784210850784713032746941453475178109782511816117323984241227508797614307502485387090817324580994912714155762691481343361532123840258274839909953862536698561370552751103858395579636540438141861682449320891155313822972840564494499322746640211744261328107978022934029838662440227316769354630562761083281030737664036985038579451905882887255139791039291963899804502884892609027110332429301275678070933011185349204412060559258409473934256274936113093306383277675083894438206732915306962169992271776034856378675754136519828179073260542224889501312647406342758356873628161698770122734040491669745914709349251504501428171709142317890749456420996613286206583603954114866720751764354529888294288037963617832312842534532072308315499017149643187077413242952330582125578332005480707990061032301615651631818117782661070910770628193941585628544209229804376235410136592640391809762279243579754687624979241991123500229511260881498351756702421913076436580356571588637668394928563316334074909207501035142954154139357800115333663033149813844179733643172230169253360069189021411809658504227188616394186201539097567384786373059442556793018727937218488039469632979243953813390984562274253511524204644563822713300105583583359310168692678748923085406900526450461995566823741827028426792056356496620429624257665830210320373392257860977966588009471769028459602762017547601432705630970377460310555235206646772158087420852648035185753657265949608078626796147863155052089726514358995852887507035775446870215970775310880287319017272309770796677166653434280246612991679340459128918471833110582297206985216162658455216751945230806458135335160087328558450769425224373374720546390741629125098737728658546687827493613898062548488397834839514322552537936209152854116993670143032282373813656944915875214337247468302821729246050860865248100606687082727947803253980127961442145743031247163053679223929577523622701994723505048800762541594726857993460407206070570652643961978914520260488738084263187491229546330590675302416017488865495376232496415535538803485206375530048726085078292685321564074523619160169217623925902071535965827044931625237844336958734323981270528524217468515184379641739963679671820469170471508700954474768854208108182993379831374319816018678711583200177339089945073162355741755913297019490880272738526871775853612223288982227105567939315361425924176263317534916257829891126922411882718450192500565232873272288532755098511899238302820674465790023663026635950514105075548849761768853274262892362788427633136474326997670655759732822275586086657055873271760680441236862688355360576619861750247673299854065082474896345806755005386033129210332419191562184450615566664541850385295916595628548875280769580382443377061115334183004320169446068981540875654628139665913920616835841582200545362365868892766192003316825558737014009473727476523442185870463706667773880187684785750625399572700245587597279003120912710005281532446791115455300472164516964026583926911717012094514760749313474898402548498876479506353489747590446315743281631653753003324413629889734365345060460688751525766578297644166959879820465983643394314519548361181478615577619573809428687475057751007621497798921442557876251535564055586410796715390432015560488145772758026618665205094138983293437997123385471968212444690009187415399852297373603876265863017862044677015896799284681418373726034007135073131095324070790526768466029457437793714235400292960555429881213040897540569843159026853559597896152436010880958604087613265693060204755299050346353851113903973330267226126435983681903983104153855911654900985529563292625669491565919985943388479652964247596563472651597461401601271349227615673979918271646601259834697508669864477010195760120556601195947852250677674238802199188792108497885358652951034649197192591980728128266189120407131733538135959052837676596608112849919865308937131253215265497805700082630010535128248799053562869016303547525319828947875419730718642321467993778563765567985663606182734726698593287630986182591780188082534218589784846184724580899738375819025172645259412497861835706727610930437482207899540536609797257609236593838874632597351925456784947162043737669407007496791269541979812861976987706520068180173937648422068890743023813531567242414108346289439559615039554357577259738812410237155020967138034677222385041261128192236348489124847643053581631206918051531564946603162544875291307936751557289693277156841894586843291781568740146040692292480996927502993809947125983310690714521780953108429478346085884449183555042020694475260600015469984683729962989981113973531550515781021545503539643485917409162409823225261113505311737605445162247380578290244205333767783222373701776685681867711293975172465762277410973671835704279581599446983766969837972781616754407276390177421198054086307562313322789541836630920301894883872835254695892674976276587453201162563071819256576100821532575901426311092465243444816987610543751606733243885720460851476554672270197055677980677156253335044127706674015053911905258221814368486895218933206587963901828509604275292640816019407840315563931728419522323225595343550576944604067023232298842944067255165877333931101872950754955887188842456618338964367358356692422436425834793920098814968390493507653317619519578363536652536397432062287847906142451819621013762955988989172090677366959692329219110623256343842759290146523863275899127113815714189953583325575750835874447488437601717896489212750598323500225852554461346182647897912996297708289198391025308709399732429465335387014847642733431527605781140162856419333999026640175493251945722070974744703961851602889109602749593054062843982342460955635661219122446048350361164455516645966333587856056053507215171239835734416344848867261154782716616205814103849216011204936771643455672369623247731855588054731956165785616202575871682503250955116575425786348435124936710011094432627379455603116258136890328071178266850438335511305305383238881603516702665014997260559270905189421194935738714042161561591057005645788227090116136938778810191707788665665685927555955839226411059628993771890156922116988208459447955502595358282173334218768141118560157966109678767453483040153081239975691596060106135033491791194885112702929466257239166934103023970480795661352701743700482434718218511599238011911355593611773481011326911136510206534211788100453540059212776866595370283227460545472522606512676162149027448185935561061810242318735782389627613540462108948887805371609806309870719474671316044005260128506986767023002615828720548229773894438384424424655541857194014843360366264818852547128093341849130301884366187588318803195885356478381366458236526556635242949400745121312802422779239647420280044121153801518581274952001454615356967997625698849427121976517535602216335744354103714342892207550416892274841682876432121262809589480892678161559135879851845737406259592380612219344078858639642676378497123663335210455786505739685632706318266071626540939179150288619445946944278309296150259678438005300344946405165152880623544933271838017551002622071366771361530091955888894589657020714416451816150945826670061713470944555465548155321414166691524681822105767408793584223955996145988476838111858710611992287407515212382473696820460116148314205915865632520915536267208137150016963717059880875758137076489036506735664029719990979930633578410188229669595604943147389951100382299281704120117065427448141143794443267588544709925146416039517410280094860251418660253845800960284029613529262157390707768059084874245893930983076064774151583225355118546147736209220415567553100135528664680331109832574598769766606570403166555535697966288935137079375328431073634810169407365904472772485507935805575259070776531254555040302076646656739357310109430508115605823886513188005922365120991049994936062960187994867812158765891806185567751218095362090554034542347481428945060046327035283882216185529932183542775631902848589842149340817396173157112271651523246780749402957399504643331256895619266438361765827840927188234931101180280064337481059671227396537455921793258102488641688472786208504579807145710076067712544504656113993212185986204665166542564798971118830027147896227537765412911355061762844656532141131457779350084099456278659691126363487074255003571509880392399364728350557747401239220975040594704846768592710773353778842244554869490651382633094326924603945740470586286721027301544998579051048485594944831164542064270780094848353218239220638022259951953155777749531070991019539845928092483479752884320842346965990763223613372692186678181521191837664471882737081861271017577679906995442061244389966117497708978921331144076235465142829274131114956928260017664136945396391010761447546637652050784908998554621389231780449553039947159703880096632642801492122551575312988001171347616232521460747133677516671372661000246682550669256979184879372018348925488178890650655994125541263850117882265966642028599920622332319504830617769231068011178150168287670952210222482816200940502995655308626269914111360676322419599267919142085442987415927774133934698684517891921815547468159983004065852499313061988660172226031171452964638550687737019185283969984407446919792438646644793024536737720532237887301233805940950989076407206885223582121203921162936119705071282340582045722552217230095379752683178365077962470228314111101097344168651739884487421703049596746858398354546450258620567624814671741939146865368234657574894474810156276180579644831328771724959183808310468932066330613029628713332168893018100488433461039913393062087346397732639127749076252238440932581316850350490303530944118237454213672594452660593422772867836023670035943630038390855775845240592560697690825549908402492683413786620096810985897612203935482960619340965048602402084298516643768464265897892892322685059500058683818450829714822554583890465789011260010233115976790951910334402309747839826374582667373993135149027251282566231518133012898202954645298303806733017754797579364426165901351103202978783693878362091730128615026242946701332848592242354249976969838518309403935433630276028256007265365718063460108408138284158065997806823955078931315986008229594441331532934732927326826787129328694349106936542640407791342202240117273851798081100714418283470232919089539582732741503904648065015157964493165457696209269410329802899077807067209357640450753459889384441336889743007930966173814977881700466610478641122324144045485015635357373628565001064674223085893471707197684338429918795191674318128396724244767307865319586784964503835527658729709512846415918612699842464577801698199632799998642719369183127698137145739854637665436702778315585297103545816652687819603644895232792036200346578890865703410858299049625636178007575014375385634913289132860842306101513869097506583870062122753737572431967949769473176978228378538990713338306090154231519785523739407089194802332807202541401146594255933190888018994239081246034119824833572423395945680847437896046695845422102720305708507436714749857844421460179611493323584623957494221005875563191197978623998524762448229810209914431351482686486449076834232208690721011136701013928662146099217392039339363618264370546210529370900770497668527635453198089799281623137175152244652980450357864210086050252293787650480041587791858842612714469893298540642190702023408064692859484670761358265245147950494871573900151357427798218686750454913981001014595794576889423444709983348425382097632051227284866382560927404156381296741672488787458912658734448134245860953772758761310892509106909644229027706568648446609517683419083196692162100745508528122951447973295105216129893810522863435186852724223934958679643956126657658783815967378010994903123285424527224895070751789452825102950627111881315429836378943143131479137581982548258040947284972919298297862206733001034047247316772748292277273742424013740272059683408188030720588012611605111184620737112488817706485845953421656577273552271938825074470516521470460275644028168397082253852731818125864109775893838144868792634492215712402761698209170626566168187762369710140808272645888430792453760939310200390700254243435987788077405348844957701693175259034208199506180705246669429654560984380070670697026586321844121516830292228631138975389039076102310834387706260590002983698431320747315425583791604840351681674441500703263891325768027013877579163998128985217923840715575541196175483513809660859263119024705146472834552238855526640106454617036067452698677064374683987907823095625319587346464729833659004639887477846127875419503683316354388733379861706700430907827359882500231692515502993330030556591251393916444862058103031272552832456021687765658368283972377672897937382109894092441545479540398089905114189264773635370565915394833464893493332815915937218160697547819713309278332771203554065366468384880962042990901191386011209447448967440425220275762487099617564780830220030422961177801304827039085985932831960935793785023051714260948581397059680623731616760996550114112981172393948584409474999847217792854174010755944511071101378807547030906377418487489075289894616948140099504225962017192551995421834309046029713893250693042424753709923877168075145010287299235481232790657353809852548047190860021105055293944440622020355488339613367515041838898935944360673027496256582729292978531711222203064983978683327095361760729511087694225068515070858832915612155333229923168413691189189891791306920218983222421296530189941955026209774131344143821260049939204435984477334210427126818489100395346634452466094777350361384188938437569530619880117351574704565499923986108222832308048724442285915622040860020554962891720264110629769261652670932669459253444659797481924837283318429359483491610024310844222546743064851251305677317548230591070863547038490894777512969297727868495892700528416536026223667877125295203103825110122887372794431793423475019445880411228400058405519874211110397923845566659471657077195485414489736760713727145484777445350066656687667279259839397968301226721531620241509161770777703485113585931796684267393737117509739873459501195829310017939718770355123468040226367137979564023635721458878614128480183826467838319228489643699992077044120551241500814980074081194341875185383877981112211024865697831344083792033823533062635664123605119040540745974375393505423060269923776077198161410718692317934830819913923251024658819845569997037135461856032012989588924447477610311442244180636160410641001049188013504717480296045682526339184514635737555140715756567380276358942973263105138413672031826644497952895628594379580124675688246866183773934333925537949406646559898607288271790684451179503340831993025715610544987135203851567958214456684722509852904708867282354012481995169593093681470972510868466175519114708926149152405444663795244154460867581115228092673896575641000948279591434460518005660218667946825892169711937711161469507230617014420611677945543569053532577666634811297047291691735469439234716004684376035573561111690446485425635003910892332859482810018923103088044595833823194301884873652415183543227372232151123934601424875916532334541448929260360092723293513827826155643275344960699265488764583562577336012066418379609570489280074214049512760136292744008503286718937267745746791629704097154671691297750348839653887743145058190476797035579641452566275084080102102349693221192516002920832857984163966106122929171681277598657281052893148618289934599232131809045204076938253295987855030050411149845624329559773041493079326012409949814205743874029327939211926767081628207643649805298706818673014905995965667688154277912179772195467781063344900706767256469043918960383875459495579122451253403139120534068458685449356164719553989414431300503889146312067509009796449829312613540884383601273686205966643500292155450363814704996029531099379031221604220987427688085754421069128001701976884970880872469399062121436032149296977907232315681384256687583969433237662248691735499530626831313086612907837027086847643461653172448739246688525741448817326640317134040560114026280798083911126869288845250523866875776668050745400716337575331789402329496343637715489642582305428613824003004245485975932864419280398482029827026073530869060930278348746576527751394896706831118471146959047681741779637108012441058382948669478507197394087055137096216185247830124184240881365629925561552597825089781299816984556420920614791650907344505468405914600727771859286687320651501310496775681818164548540808238387929844160846299557342111345807534295640912879998652275286782530512457835674519060857556039437545322068582598945493968463052733132796325940786354638291195951002218503812911141814598607759422878272531832781889365065242167472957667491821985110541925739503502689886723535084589794771510365396622063665467866818227819263511370269104652042746184029552496221234063801130179316300171367061028263797039503237582030059375603850972435739003876950047539009064597527126404616055071107556885689714487478680860861270343363031759340991508198011786544517278350203742945494443799172680353707452568197678038065306864956873120551626217177793007958086044187405678946367685402622096425679765230508712067731606222556349535828403722900885600722138149228455793609083610894942250362577607872401459037597139665895022703595031225803268269302753049834265723613703178810420631413508652080484478943263584069420367045615748892104417324360807043849139629245365841177529808592202258088297041448522137765286020141967894754578951433669641733025574844231511463946469157916065034539778866719856191475432810425645612177876723703749181846939697605425663244642128010409989301571372768078216036677209495811941769687981018082711467622822837183854224400264562885323987797206171279085284197966647903409547627772765976481250592415027673050751470839733644965226343791865759831187479862883609069903016045220347029068213479159402876256289810348420460295636115631308837759499936056019654978325034516487354202277262466905487916067167816486973310570154153363023036601442840512594291236620675143264981899911055225762993920347737665012039019637244393723870848432870186683768589618573851245430850778090569876589519201183520611501077097337427983256990831861116044403548153449236421821185267876831020891317600158696562651518591738473507243875485811164964001926676828687501645580068878048252267732162807858833676490309417102123813869219940203318024878643232001012124426824061909986104967842892801631122471556221851628027246935510651649364757052961025444108401912167220680575160730474513560333702771786973342094369794909955841763143305599767045114248807908489925434219736076074193332572815781592325281686934689833702372415810997816740170144698357944802569709863207431058271327048588531965836403210009702713369620295184913117846314156793772565915267315876846019836826318890158970919866517706391940985292393995707299279944229541612445206403235174388665320729266519667324619432455305911470061137460686305034735890821603832247440832047430757077908038900678895320390177453539820798415994581920090670404468043522992575877572984517511909007859805585656549020636838436592412567067701465161715453642653441562022308725275667013866680821924994463482210740624329322390504562489891167558162153355027058364956425999607439351009440662256503396904805832666595396065762461638725110352854998069428517231649654583061599139416088447817891240434530854638402353255513641696293949682942964074285502340038214533238274720861270837272690931490682447537369583911749588676322386126486586802075507329504619722698320515986263266891854218843873955144024114103586377821459987798794234256294763524970167942908921354316987965244346752819208109760654089144636340600376786469618241394313574959054875777482728973881549570365206570573566308659682650031925959264811850247557211567497754943216291057718894376576572788204481541044651880172766201381337445320679987997459450280101185237994355378441857540962222569792990413226663943975461063560611369603319841400938351248060260689353780566282452293746255952727460093897064746131552964106698005839057727879488176654814096176372303239257067043041321870417400650620117865824302639802157502131450095820812043442412161960116175053154233588658574159362149821156864119734908845858083480469295748946885206719573625135417923034804933854593664740002492539645298980609248921291771161294765522701959077591988726452835164076645690589051171425734806975711791440681443681746401545993980527533082528917450147628756982413605934422356381168248732711033789159977654164463525518650163499520557060101823884333067331093382417312943007569367996442805279160680379272008300671836821796611759580860822146181125692976740489516046311784665905560870793655065313802335377144250727237700540038642395923625308368497772551865561054553285182890319101971641485234628296195699749620094586016920485594538660187050214816643001832758462501844576263712397898889996656103988035262006132061775674059295359398093752594828298770869463252749470606946033459796208064337303793132422007210880978318955745183822033123877153097117643666583733336543749676799909417659694245235340078811850936097845571300077021182016567608192200112652418897657575555922440132377339304211007177209314911293008294275725330809337543525864685297199378182274291545494771566299044838667092853178390362519480247958084061022836050686576307913848400053615467063257381869908854711235581113427950769201356224688559824554949542507077729954026309004504039035902742587448639408275669524744973904458418204990128903460728628110063615158906637551622001662889290185218742283195618079017022717768624160897912241927938219272984981721678011518959509702506458730522930053439304310418333400159410013049161695499450071263597168483635140389184178135981291058525861010497742531775635906472877261934732134185108161989478367155656419501928278789278187978407172587232885085373647030705984498302700082429835425796733375157725364571647869231084272899790254578757838962876370133872187984447557826183040534727495422797739925986285090881250604816723993611458483166262059882700899960525841929270023471915415429105329656936856690963645536502785276158700368207792558495670339948548421252817356786898811508026096702584694702546855646453396193434982314590834978036171129417610405645372795278090073594483677822971570861894841232713157047074082562169054265726280731085423708809039160540420953225080444143087080744438682573981008951082745859555461334127280544499164659106671035485050951815746045143750780984640751213822454451137428549787401377127969567656568893327189969824276257268247637052811398697279968564074045691436755209519717829701405602719135747126979336501580990207120200659160525421804174439821344821805789299603635894020437803359818585941582190458076392969873696106326816777320748318977601905386536931485696961764314910176119589718318962000432900171914535494588512413583857536336613157643015813937785971358752501303900446054041007755768332099460084249241303249085137497503471531077893298315169050232346695456896371826525668925544636507333904909685438473037887415356561374615311473721825145595261783431246420639487754442920538846436844415974273282959878747414839420479708030186064509088172096554525720198402081423899938575496512072974111082391771322527421852537840220590217526043437475017037411543449226920874402929852916898340666857513683633216034720225592580018798984596217783546718347726885952314176936590155732683638915927762977847200124731862926916505109975177672608254112098357651139684647587191603799781951136232719769309025993882586411652664509874169895253337004872061550667779588092376356081179610834376599299444801397660480281596088503634187858208610843989316455752983492169645221715694783972284950098652867542725360697703468687997835415438917160251686178669847373893880068894483562202876327407458590076736528120158291687835176298512747433053798492488636950469942923461969405910817860970644502130765908707142683598276830202336615845516891114323652190728725484423224082943744760298752102161996458075229403176401028348111888870459153501466246311213983866904040735747653776837123167350873691624857528578600497453206221214561875993097747178011727912814704150531743075177645459233942027111733839470801289644128307983765895233522810154974095036841126808583372190652393263854654123888117326089540632001663168302191359666518041270417127740482054071116213611137809776328547434310470353657020461274325147091392068525188019945984358484124086087420546704435607689791507478849405908633491872942197899717731354751974329168620405316072746637328684100751759915687281894032461001021674470801166050243859726933599445305550361970586620185166617655681344941062767996329570076665679751055304982940120561968915786444464474742265910006860198760823901184578929712446192609328003719008121156540882067778625565717648392218474385654051375263209785714456641174328530471702714478489661813665192685350160940306044672256055068771698815898166810182150221416322891890288884552234174281273608226885403145434465632980124819159183401752383485594247236817250306626967671061504523331454044642501352359423111446972977889374153471852871821865425348340549857862773729815404344877177142988312348438514529977287960455429996010272921950125165063261737374893731360614606646860112804868040252674095439405704597834387604077737075702600173959227813937250340295119673638813829930931287244317601500387694413941714721962512087718513739096297543305136177002992221088239278884957230692050869065759365615179224693217759073394902808911178116462875547939230300776045134051152967038455805759735312551266461307768535570187210891526484029019230289258006773883951850468388852126805150400447254196720132464760563334926018075805669293973278315020733168288107677955615234330259723852216550605435722981389503598012045461265086093352771735764617677283451783065248960515462820480405176960238347011737763914192205713866787199253337077643341529766907985395762696672301295174988287054501829583567302516702862474269023844856120658875725712590402588228990651984720280423014384367882510721639941392582068635162204712331978903362881523493672331970453095594583798903477805615034620429036958372006890589557041182851414382187237553931347771587826866398357166539588087197094492213508854170260081512657600399751984490495836282390883442541719576133983735330508913589039659401073110317948674151342778420332964921069202213471034189194970711542750217030879004826763802940404020078921075325269831178891838829918100035650387767715184139879708568566150552514133509253903161649475635198707957589046073304844138334765722734176066167557223667670637469995064026994551013292194984838902463923841136331837586366832095672252973014533819080871637006916458276339226249113416354243125469614315908454213340997010927280593378663857275884782881713200534349185659365403680973909856659469423821344458778690164097517664897143550010407412643932892370424352390527528934146143112764967552145197301847656469023437979050587104463361444087872015038356892981373065763583714750938420875904116342521857149913166365391772885357247125468258733694774371556960494420182347929273825026318734010993814103270105705849542151362439664978556697970355019770849056559900982580571039870129117007020781680722474287902647766944818954384371698626166056405036268754660763561066395274010265433165633638162189328548670677445447246190870992663082433264252327932397718030702376417961458202706614144025428633832753054198020621613795162346078056480575534495680692330723966981232395678146938425703819986598010683109746040732782763582124585388057535763817297125816449145864672156851925858179813945887369918179395522199882587303907541461562060472901258566453977048083695018901184511738282660402375256792159900279476119868265392696279647587390016345726096412353215811462527201371554789245044526132035858859290339580094803156939938104668128975282603978158249972468350819806417295190092116448765845380099206117531117003148242367019447766629254590036472393332098847017770391036499127143977845290933544884657731864972659015672184174677792045012062098713423032537187260950215192301692844977209412929376188045177011948555758654575022779095159181303622415627799874078482281324718872457911596418669665210872868629550614157466697690532756122393886953974422214629191099163513791055002747958695830624619295941206280060408186948978122013658460378867107881786496128149878636531178318966640065389201713101063187745330444068283618056866619055513605357257925064798216843408138275914289974891516290444077655795040965844251967516108874395577380639643774957837033476271448725613741137540466276842356409471364623293885429336436536856960236543662312630532132209034050053477683023655285512399320958999197899997858055805608538273387387104349876657136461681447526753759060523049697180679162865986855564107029139372738059451641073354810644749258299379297926414312726215268783903155985465091202671939966648084949477950413109276619777546805045830659342333409019350182619676846672625712637595905614849350684305458526679494968154561762347214669881817337331623525846580891976936870574437248222803889532266296769737675903006189508978348194304886401245341986622081354899020078163464129175017234170076787908005979933267834905964468234112597943534668926648363239018316633779445724920392110318991010744398600266331928136865661923788875787055870684593485114373812618747216486696306684544417239446058383303874420684591114274337583775280925100179985554712941869975566213275545044940207932896442380637904788118248354748210283900335746752640453088747012459038143050732327089808905222077398639357782768785090024601480025490067938267472879995658628746683743709322497123734504200458856820457757627851153774482096191844254414909446602907727142563781479822399996297245002468946346727278443521258199310510594866778834185885584620385763406887870054154250353680122933459676531162618114274447964747901542968482091555247076902690573712937119204624943528041547165152391345934057200222189036462612101355063649788728302092621894821375344509261488157179334876109859517729026174902099640742926126226270548559103573167641555515202932373478094586709613996990445459067838352763373749474409293184781421954595913728077156302777339709122053376144344733770075334674723156922123683534419951086338771247158169302081871524180808826090978456168654186265453875384086659142366064434422936191016177564894395031739718603668491065537191021981600932837504642008421735691586937893201690550954342612972916491649500366166304239146963682246901992778376536468563361153459658353625426078163014544937133143802750598529009432344982952049775528569571144001026908671864779083372731852983332906441533116444056210659427409102321004831656808060443741928443555973922660253069439423334415070960785203570175638915760445294469713283468217117579758523155508627514888362261462918651788436446812600866718216755496841029616221576542650711656306150258047317376217347420977756135365809043884537768188490394065661616186368745506248860145375421235059150658863849801597385345624008017714740945164776140336520723512045330485943120592356293251867927702341739975472937251940265795595146812571605387231722705453342599220835229128848587559314807671548701018759254720952144977902018115546122987658717475207044392755596779443627216795935367814927601162446940853798344100202403965831378025164606343936124850944861352840488252538544807440747401468603396000688666427401582548313217430603708274483723270377288471948172361393651693481748028603681682350929514747874011122715880373906325582074746709884782177853751664064294548697387074005155404675717940742688253668593127917826756318005146042213386115966717786613919199836029185925162151478407907560160892711825272641335727070430225614594042683211953890111026170968718126803576027815023131866577005047372972145497830566148403489708413791711020288436551376978590500388515639702976294091843227774671228503574852803288794283074357664200803598729106836129734025904006974968617949744863754914959917882618481404701479250655171093103131205966342928937981899232941604797919412866194723184891392423104461252513715616660780483396770815314806082334584462139632055014746136323708184055452924851789766679036305939180932921544348671435102398617378998819385023184661507236635646785820620149696457273946867674729650429398766424309493565917896753103784290966712938511231353722484799102982952438217248850270644463419727106928202381778666378083754334436674994241883396769500566664941399699508362831251444088040940066088193786593527796524651558130728252323715162436002797846950769050267173156374214080781920270487775519443903715820060545945333147575827006285211733622338836511869505753090004516557007440108525716177737837932543289256850999367317923547076913502201086320047655846267109569858505870944322566883919001661225301428424575458734717126777790288836227523967388293490896603701158157463595646077091636978802058805389808965003436353467367211173042290024728192719896596596947169215135543726858248702444772703170979546929164488450568020240428478757677777617688210688250601662064092353976311327807841510364790465014486424731591981904182160403953745626839376592574598114535500332060043549793285463791392307208412383113573412255753067899308561759013966664868140188979008486381309969571468700936990450945254724736323904318067990783748676009626497270288069991784590921610186206130067557416863327845735647471798992938820756571008906836799931909785282128929092692740456913583897765778413170431636151803974412553169619750269022046370043579522819772721114134760399386858179388616560484719604851456968085831314056458372843299199007774348518000452540257259048402182637102115756709489780726200495507255233933575039463081260780116786215795911203684201451812748124977203796659421972838295719374244774985899726439040424476707965045830439793111518590428792778663820580945333617434283890860279082392524079457338980227710464593277334782686417375350532645851884753349419126316586444880493610032787601419323965391150503221542639774953514871194588731603899361080251992664245553671998290307768961660533360533242984564142637468475439181611046235252015617325177357588948587785039569900411211712528666224912362726169602948738702739222219475813389857017093957381288607839353132111618726791805694497897911162683225126135751390469429439241306114728104354483625670308927624772061523030824338361858994935401106532478942054608264140753362664840269613345770150338093850925108689556299144862801478953219960365816511442607796820928347933184687144915598682577709989878407577202813177273703049571153781393602398786465333634214384401049814507048694334382212468579292534477041483331674405379247329110303103682661983580123478501071847963997954247790708703010335030350382162482639776502257248445568184122381331072796943370489882607109144266337147474579859997417942517242924333341162082036092446383383521244835711800754823765686801902262292681074209114688068519932485744290709713316621742933415026265918438745152221398188652329545029924980570168013741770310463141688822980182803614566362276646984227556239239277217402341859776415682987631484376170150520787982762237033992093672321267639502294251865162446540358749899434480650027468428389163775223687196710086920826542960001692308092742267880362266451363682054206520477241983978342094125217188115104446692121265198911081480355957930797726689718573939504532855906313720047563691185072926054275793816971479816356155310293191788532954566933084344026566719586925640906624109290578264424315833942883210140337006414627415830993576120184879075941382124098670012314547054774032994916360147488345325631180219027273131631965823578044026150669541049964807061067614147195190101732113555638997503411257478211454976554503012945761265921990074906021685700854349797042317503264134979906088836372136102332821910397582008750632254532743722977543058522461895904597938607952585489906511040719360140987121321869890183816279900878416126204143293799026969153587926372396914968290154535301848081494924106378943674211877120671458968509267346548203032898164625899720050391367187880810281935824802845268279211023274834830153383768895670140726129193338193230757114359681938023663343494790904271172617636691974481896657401107447364570893911788249397125567282752071570515347357249047662567470346226576586437485110416142533582784435341985253445721191101102377710821397958311976202411364802091775779931255452699302262100256669923164468490666318170136595139943417259163326808829380081371183469389699667255085341411480676169583599018400939876107487274295566473752151040456200701112671945147736766928038649426656663450845044491426645674079057737152212849641511907464980019969289239727620794554171416795111669762074121189481915286912625454122697975855347038232366265208248407463498150280287332531437918605869475748986067559016830889837084884395471933520291218377565747328581857866433041380456414449852492451659914878923841284626179535521915525160614188509711435795664349627745369362609118931950597966873477828918902341517792845701496831497541069272436147634562208265351941347907189119148539504833179159930570157608491568139158228080834590431588689663572762247741790665890069131317804522246510968207201323500047386558953727788178830503566736213764656809885222436911667797394577308418308286766104351967800751911218773994648230435088142688948359617127338088136198322320048903028678344293692315978116490277628205105206722606303707015727421985297787230437915901956037113366044902772005035007590500756977083823850826962710896405761742557783448053853969121954484196137485990922897047678138691729407836244073117820270452730414170944874718087896803746239752421697594287210104216048872659930779641992484320282784771488134314558735254663285223026397541883415257559868656896724598786576969209536548294788961540978948119338694475342139263146038268254001365804032383974807904341225444928162335351509847360674709186222200240927706540015554874397225453299200085114851052001789243491590146464624086077017903915754453215369570284578966527316191184748670335458801019647347805862749033518502597366625031389301152797692867060599057677016696207586178599551913368629738294093436955761258536378633502049799818172361463772579823937689026169871582289532178379361073684691524483501820002062407718749003870579353141820710076402791588026309977286159086240201149618977006554981979553332926060337600332658064544549022354933616919173091377275979518161999606588414351558456960590092049301685232458170579595041224260267187866700080955315924575652746182308427749157270968735344144489530121011393642825087451958255864658959274910613361767717527521286164380332587958376881488247100457101693313210334273897116399755680124632414856767912607035427755360164456137157801465035993243575722129496588572814695071286367884922186828352274422130769769604062467740070771129361985905869681848134266465160700816008147739563326697371639312007067316254741816530106646974594369665037906180636066432340314842608686397077633790322774094623227061607962270780702016900772979144920199510351127465808695194490934598682414096446161433144077945423633838638878645612489782104710379238373480372388364227546450215605100050991390311139199104035000862533898566377217408883965052892136296139962007649898609186296399434691069242043862736917688994372299893835984097778236580497966625629954989633747728927468732854592281598013936484909454037543527027563775216936239325456676106004450639004802879317534993183457896252831521340373597143234262411989761380751836200764413235177967539213898560499382178331771814251462045349831736014749601296924906118440131220706759504624572727920007559083693428126701102345488395235134206712609394524704861366863544816379676990886766101027618920683680776242856225460690241054612789372560446733506385581602013693446224444367788946661159803030852648658066253582808391048921475679808582926286782860637116904347720778125558677125270825835948435005662806036133464825314643478933298213897236802908986130111848700287065680557549471345270744802156484659776509754562310670996830181609807036293040332062951815327312809267806285861361057008400411846350037416109199669529183891968697273775137737654855392410650360866832613162556521127071635012139671809954264614402335138248934293244148553438781511287360496088999602135916566874481184231632909962826005087734586565834513381981913475299294542758155179790374709041543259325933402275913295481842311606851887457663656944348789923116626139963662648779854329424932278152310296664620526067791590556492925521319072223171459036826965913674466862706787925643624610936866429082699997637515225434905790271697190861755628432583598876247406312035169504310926014672855616232329919821705441592862287884227179852525041583905961987676492678755132442826031132781558536770207469559600251955147324306482840068534607132438700519177836749162391304745996345308295896984661816925367413184950233003773327279464043336306953254337459221208476737761345511362040182170021882466256606040742468846516755717131792698483129999968150418427887741623478056019253945654022388486862345987994137125461121759108955995483978152894909689325818234984358745906204781242517521686763089507297369617269465683076316225225959839311160424456392564889699609517547804210200774414234137115519523162424457572685396380847750510031575483046096297358528706676884594173830006230047025356153729909823268718629482929804626488769135565204228910986935948619627959640488338350448290304070379081888595976649733604789606369094573145143140274875186253088049502585470194557774353527938529770778856360163238518392800582963837534519130166288525236710747153636417830596289145097792376377919163226643027749284090863716741142357795319352512121151106379717128507465527680218098720864402419972176970321014205217480806639775041491611409974176903735365822478213919525711105129969864787543385575085863768633120432701671835591553940364125120590067012194416701633092446875548241962208288275857306524928364395314454716361934751714290817308234882642974633841796405679787683272574871789604361163207557018592055656063457775407323975352073868096834153768070088568420336517028146568277609174746413348094908567378672149897945457849690834027179885067171019358875510144527462191768042142184133562274491015418609590171673794472445603197571314968643239197874349902068854512907250464701268136711915632151870427455569503831290407752419120990859793301658374848523156464906179335874859500087447577545338224529130739519784599898230112669472139120615384379121158768594770792285142114368602624481389335651981713372470444593618690068132022150021172076364008185954890630349555978699815036537430957571365852756148303427182334387911985516222220221864516656792684369663104852733925387644689831709732005856182664276754327916127596728843412077770138718257075186209872099279180591304078295304413251844146503348526943296345712267056700224333513911452428879036003140328155883188475467362312266894221076805974802948931620902578758491114090228494250170101583853210972501633325078883652474821138589189746846963114564651202849960419754173138851598467517025574319376483967432271510627959021925827602405032057452478669337476073914435566559677736343446491174164372931747244161144062184709973932728881793685735089667015194713350547136335034926153351314935149667554657567012303403921168949168602918787041248878906705950136851110001601155649731858394840661165642359919716791870788558418242619075485569865814360674096812963864201272903755033409801476966179225013226091148353497861053738038091633878374816260189014208217927120524868696888183860485901331410176743686007362244464474911328531336939716961206885328674672636577949071852690201027237799369953816327195200288832737872194170141173566293738542857924124522419486264444548751162024940364838576539420626005596086019630761442865583072588747307025963069041669437277684514240638485386172352513274890693510394441359550169929887698550788256234418105585783263252633647028720743309496647329290523798662929987361543893319662566814458130818221564865991004855419070927024850938995347277239409798607074861825772813752810801550002167275918183174798426760771897468966817002587880106491228756077489189895515921513171243878728567486257249899344000227832791850010752868387396843158769262879101924828687904033330582287703945081243075529685788036069125141061918336121000385564357366054749682564450031232595504163841075991800258444484680219094644907517326165938944937995959047116084233267286029836370217782454808310863464037858012043838004459869160921150825126614991668268824889382217776145143489175535791408040272381246276344598591126315524305523610346826941644517661690462057035669976218081634451595521594214937931142973078957122802256690313441943249609065990601329961542964647250644855948364425690026247755286731306126502409283065914991658336405393680558711379707896242842315478723698235488526765192474797298577740230282961817057731878336654514556238566968047064858145747539793813726259333238518310747052856464589273617449004642843912720628794149984459114019089296464774900430786464581221336273311638072508885625632654527884281608636604456379793383890373757652469138271614589584158890676534019034271339925086826750520714902543524234214443445275061517222174969396652047354323588640749733540614949449569469688978755792107007330889180173645201288229795765377164077764464557853291311483542757021150754569119737739271797682113067961877200423104445226375532876993782130562633181397620728906537226596940378729824389821956874397187282755936639792593276464600841151501141212589414396931944610113719638511528616830257703056169442306331007730695000062616488547462406616514941601965870097686906536556282736495973323895818684055991883390554151553828883404409138048578557571039853953713627576535233679097203989850318903538802526471492970300294497569942501032337879467908589162963128866245537509892340991859344887898306411652992769446000168296793007377110647316813537874600336114642788358667306169741738882926814451044384585404221437399439658112968785992469536888332955355016635566223499568851404180479514570897948750350524493378940559566306280323640463541913975779825023193621175526199650634676030129952368680423013564671533379969939366025639582310414753199391149014269696139471548746176618665313157125081142803142347451054888986247984871653930254254410217116657286452499607431296664771223042630108400363677657779437723830955125333054690186493756553640594887716372502392561758482602936194881219332877243111094895367031314998609837831396898323440205580189756082700233154810054675423968114709865234479904859824586166260682218225240063063845821265609608252236760918760374126635955801466885480329704621139878889353259013051958124155024112106667641180530635299752799228462236830036190748171404965344616502851861707275558651236616905585176141489110205977539918173415838826591389400965154071583321287816891070748726200090290056819215754684049423878314989502510077444718246319743797017456668859930646096038220948313121185863642333090607100353056693067092171529721974239872545296053599662322357557427454448730886785636202790945894478234878525672350372652422547865326248061825230396305664137830853673364206065249711491514018803286233163369797073272845677792313978907590296154656011486079480313952587902773250451529001103909410303870263380159099001153714672693590111542940801782667932671221192928370870756183399975155165997547905491700089058701732314921831093745168331664866359914079296768465138739218890331634098513257987915452396127629402982592570476149571107340863629193654523006874897070769204883441138687618154595418058734485234984354587766477009915393396290072330716115728930189060595450519182720976230919383644459738178563131040639927451750965356180341359795728888900841333181788404076410903228285075903700635493060606271372128561170497962989477318240155408816709786052539851191433376384180866165302161706640204952616886445051060834015619326722676074264484972585936530293862302251368482804232966108768002282853054920439692375521748897259879288689127839818638873482109677958088102349673854082413324163956165093360433271399981170698190944468029188872441547723223240238692779203546001539228222703395956331063302324021903854915644435566110829624865757801467437819735857617508403276466421023443137572257518762115459983687851237141655938317413515029534902226751023843419984140135431692553692703928991839156910349854572786260888440985476374346915801068813696649520356031241601563412792858113214096016949868829568110674668537583019646976425942777894290362118799767361611823912839116261154107923111861214344730516549113493739979214139228008932205077524488163683418744659456960905569648907488741902157062054131869269125148664633356244920895288218897790077117853332579777119676959617200148565839988553432690992539623369416708097926933756570652195846270352781013470431258477475309368831702744563185170621841461066331256289975987887924582501316270100133169228258700239535627596779551642071752502302492945583444728971271522916883487516189294089158806904666287915381556110116517270774759362682672297351723453056563932000710128830602380999135949650988886180295736656757894795120560427180166774608004289068013642542576813022109852578733668560451025819548907003326038311176670763304863654898437144522144782679168064146847338272266727888163040524766546350998870947749833329077328609819476984400493940291860575120347684826555430939637643542808454719035505543689359407705956034191019173531463119524501131549526329231487256847120085828174574504114979006845705989466595251709521758184577915989547718144076674511394044090696891655448917003588898274858061281445654771679647476472411576218514984327612382675239887618920010268274776818136199461791899213324847809665185236130689549891695529752849718499472080869838240833219807673847001600411952639348812061413280811144617386541326633466071445690345433556402565961875501842646621025009530267964333632609767281587439944122384316293134666311010486879710474381500169807562058946105999175781009351744700240520573163946260657352496416464605264691611012417395325836643550774932750002916660965469816995082766180976806152858963034389010675340412415511125872414776299111306401106723320177886649718893153623183199025115726900843378191737718748499556376793729455420467557965610515393171871095150351341555469104806630956904357464716486065384616555550210021190332050365497563352961379832283166073811701485471045840177080463981144816920604233048696705416392077467331965701783029328095854494923116602930578220561813248042387112793712036554966545253488452929261579854857702751483361172317819723772879396725665890796208468890054370512545870312104267962403111411316073834153641710941634751426995427466312419141682287231045139567165846592809107647283850102645053300167421961530576623221838124614666512771879931568081480496259533269585691840092273550896333788046856363745297653205248054625148965565321671848213662909738182465830546338490242714058730794324198813355612728204987858983441410761102422306297062025035966512796585532398610123615267015201242126247691595401672806234180188467485200660342615659730574552515789066780320941792620409430617628139506803136525414182069295337364243296324605192816355053872593392233934202941541608638652971057328293857704928001115534103234557591808513659768027313023721287485183204641691317181499535738142377583965989987305943300550139399017064230631673878510257768147818931374227417829912838045989747572553743674302592879991509015858421329056287852879771707756990797113249943982869124782491560287317772587987686221923742595586314577833534846351810636067172289654878440283938376330259551454117797359889098761790745304336368201996744107555897771061237567231190895751815193964350523027732757755955403111801127786784964632249361246403568955128570555449916640156491818526986140504117387345064457138953362024776902677093704860516631948063473069695297397986340523161457095624413274977243246825341873036136532576759697865212612469484946769058254697362910904665788692976778082541249128565298967759983874158254534354757983505575697568175515896271486027743995660078661239157397811696973678956198916964428950537680798810690248722521733171832983187803409126422301767947987451005526482060074673397183808242706619102088541387390702027968856391862957837588765288056097940777177722167772978003965281153395952003039340460361661167257050752423589634177584602733008867706987265108929989615504298774506197027534785963280970148583624425156190632416257803736145605376361641383914506038919555444715587710305343669141527899302107042241239847907626274864326507133255994239229201893530837539045878258606138493387296663347529677633980061517741441831812623713820846709432644446155516887019162290754697393560921974104816210127301984624937013906169086613141216916325538944767295444013058999555884180515323091315761557603766265945538403616851073192590801862267617968910806316175083322452346638741734062510404900247312414582885227022124172632078419559318616850821975571590125085129093090817003206467368272550944735159125557931757729642805045927838650489141505750623583619364579843681289386780191586402174918618886756071389498693716842691218865166358681838867748689056478292172251288628858381792410572854750063493205835874037782573273747224519916244774752180258351065023321004583069112847154482765383976739201454538672795073038859855810669369353544425422439598599593600369172735746566379072790650722332775840192214423326217626171910031018557425350357488631934269743758562271692209557682224457990225626247712613534027235753906269526716892768314825533268669592815174792277414033507936300455701480362888889109078169466814060152257626447432510758508863645269745069912263513943903337083681619337011496243533150709488229556091770287646583507198012694092728394573096635613108014660988783292797242437291548387022686116381609929237830973789567253812009724769223004822797504501601502673444930297426963369037826777718540363804435555624042746868484034275729017908543091334541011886252259889765229593336939785217026394471410234563956028941491552609848859782501915700715777983204328908484548847276500328188218507969045897407411235565691300037810932534346684405012096729393549770915055348587023825329403391478719437723215895626116369729680111877590032599734086200453977345832123902981245514429606021736467022822332388492777695730383836676961634040275632288218399843173520265484468123027807806915270627338453276553874586797654254876325391735733777971148466746109265908791742206617457015688472370836894931469597121750923475223191216345538226486232493837587956850366527667006141763554377733709114673877054884068003140376256462775439991810585573051351110768642091539680355750242072813124870544211794685914302452647408058423988728152670843885277621479536986652850843378942887631321762602054776797472669755965603592832823094833955902015818561160960977611950359599625380864786734295769600480630836365176230125730754023809480291213358187130951589122173318266490423089438841206451281924751925719284385696679368362214279579114984577295784954773544443334448896855699283552117892013387560917215459080397586529783424941057861540271952942241381841577177035294068298593702694237093685059922294309094027590228816614995366080963807420725967799257286417525668719533320934714233805720752817220608428131615989811912785869615312388647518552945352300484167033566255585958134106271299140767306034556881545195646142469455730392329826182011395444167799815289957031426133997558823827646454947673733452451170914167178497792907364592823645302101976340800664832232077365261965105915192110036569206929519447981003834621829634189926603007028580568435751772049392609905944645168859211670816930837737016409713273013319057430696501870318693696312075741734536159366327759909822538224353266485253703751579562751564583435488217134758349031048811513444983345479649334565179344901201477590697911144532026883732680880179019935643329863016774505948913153923311140094817483291331877426730357045719641714113685812165425562088929807101253969724622904096200669438823363829462174350856273705138843709218469437572701050518001376671198971983878740385592650842030311230498271971274792120927934389257571999023899586642268648946474302613735674139662063021282404992798389114148086089209274826967035545105547237945082772560500558985422811392381977673231239590195267605252792584624595987542051850761407867284578431075282964965386182465446221109476129059446539327861884259359840622961022120601199551842639906279127345788793483366728285655188291052241153159392618403685271557789869065290887155274294551282882369637604220175014804632657071448647839782337378071523358861004254974925237269091566405642323649307951249003784407295574426067806707548348748272420185932555716538430830472944928959556755647713999221850252436441957977199712653724454148897820434163084120709744543580169340834389185353864391073627759275169394986725716439904574331078368031608318287083428139725165093144573738323932043648027072757512484068247577621731514200730480318467382837321190211007302310789111517401375870859202216476728075689956767859781077377774471682746014361473605348753667819118150709016686855754185529663624421768391362908159708907044257875736496557577473432932720783301134717546886693141060946957610331093508822891169707005216827445210364127510845440286258088845520887331220205711783951534952079831358782763145870844621966009520298687391766684831682630707834511696555616581217408353781478170794567802379702825667678440403286744325061541171116555096095064770238440955592124601117748766284316570388069094596355461243190838038926648152394161827290323485594836286629337832677925253986013346154487180989360641986110114961442871194921885948746717808281207819276760565751492055405923746926823362318942528053926686595536154112482245066888272627520231129877367702253987892612135613900364353725312477571807621557613734978364354249138896294716921901381633459010955473808441699423209691834752550158273853346539364557239707716526254159914590051370226682287689161693203417424091656550851883018140712494230636155160938069219444751646717048188104908391443923198887797837073485726531765028038659312187212070028577947987871491869603496118539177814602223031782470636934751182868019293876413235318449109951146177210787016183789185078087536841836118782862859914634651252779274730505174228087286436812249143241088109979163146234667407746997637923297487022225379173567737893085965096676325486744661206246556521431594551611728114337974214238169829591101825608909017307419784704162816484424750357784910434329103573720742999264646827201640686227788946684699055722844371478999534839877599793199530441228745473032838211938666590553938084078172270438159973258002369730135017806852712464928579413391565699878793254888039086543845637263292863572608680009234523700868923369473494343223956491678455781144506686674870766465004857432309466189609536539279251851821122969321197376201926814704427870655085518053463923289848993759058085811897467222247597792467765762767162457661352771613179304149656355240409661931154484604146122290345413711616194012966099044398372312511277826063096295377970645109662013653573261716054018240497271512829373370488068501271220543094263457337805582277671179949428604384761643206867524172806897137361555055762221137184448925037879910963829173776142273581294850915369878976863721418643742020474245466788818498405361063064515260203343069120267661869666579251329934436471586624731309501268793439506937720123777303204206137428041822808972972806539962261912882059193509171533537452470098385480243043187676704509083123404055398953348369580363698638165727698606593776374539010885518061968212139678867462112784348947437219497470829006242663280916208591739146403161791675481463034410048378768598536338809024399010675589532521248034635284901329173382074047617169447394971796649900457470307294786371188649901898717993682521023309560634356679839013234297577855134389714330853648442575917563063231991264005862616888605324647995785974317826105732434898627503968367881062553725349660181925037429778552154075097163112791874253315837741394979178373180838622337637376318321216773893359330622702055151197279526318749052484047991075172406836212875238756519427845527215465962120391007412089396402093026961737010703260450432650341712702391436052954925690896324305491019616470817846864406728835183335919705316139944636135907007684756951713716013506833770500342926796994595555217022839241022105428214158294672975120664799081943969042748211956643545570396079179532495980484181222809966229322978391825733422105057197647615929788642189666710061588525672700923800564485795564414917918635391893488527670345088738041697788898564276052616796158920670470354792789841139962549031888306555041905110365295421310907149830624644792416797729409076867613447635663068827301806886984498581149224070874762340155825528440320864208017378468998248689991669816558493769340642961099225366174286134020739515708910304462697551501897589872620882084050365151050348387492846984098660926679896585482161685119247636222942715956357378306566080233042824527162703898947391263478650884794992809157576344308514380431650102983479806708432501120169950353367756640359233524706641695541005190036427897546630285317614988095116935728325372389666171367070617789300056215786206206171203436109702571217414696830160998317423653716203508529081330894063404127338942184913581718015224512042077435356522938813830696150371087496398975144611251608391010770337395663461625509839321242861385399145747821316095621668483085800995348892025853505639907867434036410578916210578028711500671013397512691396070516486325848159616078362999600061270741532040576891421703223367829625195786529687039564238331544325357523298811105470480446741842846005933111354158499710703968137855286105404532869597828048647963091053712570820995231375495191231382787774973928816099303581320874646676909145067716789241233288943781501394432368211155548895141736776904698918177984100571177015626012077335191903809424895033543296005988212625116684548027509515299961221921073999506294563252515638988604351141658725066373460667729069642581833683882514931611453033343196479510396432092343308503200780287940309098703881592592826827324234450313199110295502890439117550974725020304098200763230194742985420957029070482612705506479981762441850129014649172986452749832298703343896161467129136959205441413334786769949569133874052473871401746083495676732420795480755957796674239866401326960017335790156546604869888170745910626873700282535557330125055567863068731787359286179447017070961526841365625484225624277367965335735441029197784178313065291812248258596769497793804321584733679457817231384300198532313552467613292002973598565356717302736525646992331079958863650102946559851033665141143479636776499527465496009846847850634522474314572531308959576696851704480777869763704595741632989011803891599132219575967755601834747255786629032428957663691571370278324370151502160307473688470347906365569496047174748372887669118126352892544995403075725720360829818492986993762772577112320598122133923289517086158429320230384165231895378088995577575709930456857050931456711100041786907585296365867217408040611874877908704138429369312671125245731078724381301792948902910622915905116877257318080886598777785980221505622384719486925522947171895295735290591651048479308240849668157611254457746496910907907044040639178544896848742085458149315660128083142014042853211763929414517074743726694184327421823377277940186483911672870923214275302091482350463504060647315280019158834832608667486208729468527786965705982104836764447100905332300834659372369409025167531952928057966618003436682414811201022115673207479523059932267067344912507225113082737928273145414103245029093499419077528550217063718087329771452390619082405262553666695838342953021736505508074808464864833912516681011509740078992603987458367503754485964626103141413109279847130054614538303165040666850627151408926052234927183252898185043565892147715062103449409384510881148047701112005074804439830015116307015466407092632326690759210442584568193227530885244883285017776091230618682576436270690517448124143261454123007759724980659118793349580148536938412062102602957755851526909752876134045978426086580362142912599164288814846223843630739852910782543070986614236524941808803548676382782591151740535393901084133168618488190589319584115345244768293003979684150277618316666777565422317086799798876960339424570735578414230476076312673981971669894196822694584124198240277526299367676459737500447950405308019661797642490993659087320282021323042895355606374868676181024800147141196862352895085635745120299848837315590636922239074060112321931793716996302470156856611847390113878091849718580216957479615839132655062367510667630792768230121097898529479771086945550859933501375607912144464627515342710684763621988727323202031730818906140750487205178927657541459624379305729159430132664006055592893330246612728675049979198279826705680732476914822728463776646651997823165762610817543265693030112977014437268626257034854406817858175889488935069359133882884170015298043053212125158905494483307864925668788149429074708902000131676019616795554682337592664985963231391208647053089654978445743468000714032523132166450599980228649504499336488236730310191231186632784914421516477588620840355932054865898961667360373833438781292409629409202466360914847726776806994995700254723403554998643453256774748931390504953499971088342286693950823029963186312044161454645644163004357586729501582471959273989508740376392818559989889137802984234975330339901046783741359926929982598554860850194005137475354534191885159673660632239725261818795732945654322914976927535573758240745662672706387825702952089929914786950625021815784473034790369480984539908834036653791598193826456593475749019129736554014747578765347473905886746932106895868429174794881328281104605496848189549506858224635009442729029705237625454088898562528100535905357584298001133241288053037842201876318530754453928371695083182985330887544113195766111821840450431909389055921378395447912407480541404301603938516952149998868188906885173777479924532476634287078256833843334674553507777133715757800313237621791331152915330949518014381522719017757205520735664013745433863541899991171882994781207547742827878570982600737101748320713489717262427482444439623606680810652465795858079666789403067196347005207540751189123473064260845774595525162220444449267373467581159984320318121556103052479623451901830957892430611894184295779581995736788219897329810579808217438919765688244230586510702724022940814852112709730849078716100320455144975133468548765726056673047841122749651589477305379199813125741607572714453135429290643475099263711095441646885877081113235977255580831995178518829239291997266982492508643131503526814176886987720670852289741339988863065754919332381444190861702260160081086832069849969567019078005454285552296900799392696709218182222216481237819838471629525247141399047336335132962868452902687225715850295488073899970162007152820977208803853547525901140172173668283224297795367850005030115199479624563118618942396488447733271553332000639147115955328066771919239181292647535852309825038129679606893979198871500219070740415194861726276698812394726580921281818421774751553263519488960416628517736736784918370029989598624272120430870897978234245421365600861721632563024636321095691059209989372704229611182114256169499023799943473998718927827227385577163701594020394610323566565139087471694758021477732354191700050982823943076535458031707599061354034034255532431229500960407318775074016445344365159391083021188140116462850999952383754258674162732674377796432747551444442329794353445735352584418133357687468088838475867847805975837119927430103329441220966212656457363212056148477317546246030098720909985938555182507233621145405936803312741061580733642550035760529982997735806086085097722435152599354502476076825805013552606485678032966773458183553692176853295743114196549240141958421076538052036889282279584435672595763159016778973669217321624383027742015590046540544398761820356609160856855814392915216691066076532511567864881636756765113823954729420841148064930250880440911816908886384411114812028836925355648760060239635288912942015891630235076414375372827288166912044792880352710346380227085175723507331488261340223081787842387933768748034887393578276425428095130333776464828716706490536022789189175065235542867364770758510221934868610835147231719379151741076455059073762258304906864297570442865333402630798402749381219884618165437944464202829336680441444925927400674864754652856296754811405336096509779628833477610088457871204600833646493355024480239486069253143600480499022819847134458086650223723466214063303752588739807993704539304447595650619406001678163749227890909486863169009919208968745209338013096677453140739350615172008529213913637672086858437733349871121828091083439437428903783770857465137230023202446962105801454219559298041744440756691581140946463598980196658732123278253994473320041244730250543628954334416169671101333868787888200571501360821160244701713075962312498954919706936103135405732848076450730806929138535395349099358771702463529008350328548821845950303218798515266450115484824913157630276559823625773525402667703054051275526574815705649641860621853541614110708630788380233444351081480936758244810707005839278605547613737392634562835685236302609957580621304752603255351299960156167582055627185287192819980265134689019669416894428594351302269123794309405313149579407952881842503284575733642815988743179713995615128473022692945273265233507868454130507373007262124775025684008462812731750716329687091005559873301914891617498688060230242788101257578642143784871528515695698310050778438831091036131405261188036376886423453431931744550518171787644144994832614524511559720710727515301020194843394978316127309467543198423113238841293244539776819675964726870630464435544518465147141637082135269794635060172241257115959030327888969902723271309840864003177040665075934598546596680225883744614435420634850950691528957754277150682264320253052287344320834234569534316430501289247757427864993682683444776073564233196544406891083891974562491609643194854462939072703478932787262126739042806773728426690486738199670023939170562432694799007710662541345716331784961438562634581338568192959582538518521357368386234773867042340212969202642608405738831419899926159889032417009395706638571211673577591611646234714215506857793670649307257901395916850566345176560435099288174662064537365454180059181206560874361552669405655833623842105187637121501731270481714448079192892220640819244845992322941929678183700560111838940232611391312611810762034846319709584723463516593208561977492489192795700972994928953753059692222605451868608881593441373412771951141773203475401994295194494942685583461244756128335298920089901602080205998965656990282458736112536509334305312195570867766397016860702078196411162379351617549909085554498443773522823542654836061743697381175432681147837513831696189235398051039963090079464247801192057116371844135636924597157753218988220388572625477040356524217224797823949126527423395117108468921159505727383636561635870016859054588839337812842201474411900664790459595170820427657082461221033275166898427989989014864714355590650367772202044831166219395475683373129280052624464744959543470241622872966995676230606460338788517088125000531915534145380031222369371822244967921536687155246316515143912275324503895807487790127445032581696104163277731663176117465096597696930394796984746661534953983850407282697904438613556895000374884029340777263313245052900007222175482415088672345779781099131390729322562253411110368452082526182167620345408624960106032250932232035329966069398792100096544942123401202955827666666113676936148858059547129139796041326214900015537384209928629859504437235880698617552247832464834610257524409102580154535794770506202727992655201353952403854345198238288195114383438838066014368889608984628762209206620338714189535005347413185556217244442951335234121832434671720693889550587168242336301740258471360925040162797430585550114091317382219956920530701008410785950841772675746926440412701076784622481503056436041072518189708067219207111105036728744774340647224916522717750487555692155187186656811818995383671545650131798616444889977918066976214686668197664447173493952857606212328370224762547640199451551047748606960087616363989714815624633485163627907634783964808879845800064354592094382030112093040785022065242526129417466486832812493084773029539853426066764803648515625732915160307941458484001979838675151282336633435428212271204639806413378361011697396851848033228568711800924632945904951836065091020622298262404028497523228315482285945247984637114095608462136850724378451436862379930652605574037874875178557980995899737995426617740509928385039360246771553746498479815007519365567222711143078339605300974295507480957812925688314054830630661700182849031916378151383628603537324597777771315828445099394599603931317916175627675955693704833059201703966382689637100126885150783990087352863651319812754960408367497496924769733604175549481226760271644417332808787647412233219981633396426074543811074684190887798269221242014770175872109454576180615122416561873078315100197605005836713638402077683458660469008447049491706647742498350724232107472956483425624285015639827322274032937751625096980317712690461491679723858953230458371659942231022699032255474537886433679876797568664533873114172765660115789018272182548835286310988982363439927426172331968240629648628669983366178696660048214107379674290294572648840297615021238581860774328997284660031260145074142053814041047505676410455821450330880289635907607596425684686452820901532951425041986784824567867193559794698640570456807033304503719250861239550740172971262187458027863550249435976231260695671624155056938765513965294712951169603614454090991307461783772075968833331216910070609864370734919782903868848437695406085664558584129040605692593102950395862126396875512253365447072512712180420792787147992826175328605032613012035989475671960051291589871956287755080736813373549509894489780069092371300049041171105791259406209950087454359977810734580522092704764429619297442625136226818156189316817780619042551722060242532155690583747130865420052222288596307565721698352228997837511234388626592318152372158134344541555709398806726230843578553982118903479141616901778296692631927458488648200413611840179533059450680363955015232500218617191477124312272564376068074711628778741669699263829804249251214726599422097889537155190277141668644024056296179884590453920761829491336602343839908246912358244679614794080868213854008998326563206168516536469780560369354316921657942755352123887537358478818338969862082449794845452352309340654818904808369567800571499301315613551030537749128118540899486212467018569970954391321005395289626748574939394083281175949571261392037850645076054619297187253809363829992432109711312797447134964540383883752470641213837468055927208934870464815565621237202899529794389854735888924890783297069362804923048262653313948692921692827703668730858152700243070996379450343528943090019027484601139747083210420749999055680331498791826481889798966393265096236398020508679189523117295700589228297649272956661904722085432467265831976732553824894082786561783465902771072466147019643807466551047663526356092950017135722448591755798790581955020202035028986529516178899523482314501247450589881551767481865008538716871733093170881823802666669313010937060324841968199904078541314273041025844465806248662788193764600197249524852352659823023952546307888048026192476499570884727055778912774219040297475640167911261094573003545700532161974905581414668437913445787285846214707352527414395452473736695641634051266402091584941047336793892652587422505781072581014199130876336153024305131822931144907211212715395065189752641961111621342902762363065606060547533220396742311412489814001967613492553766931861410963455585866967298417308710105023807320570066041318668463458618519364424420893000889943227090388448324066190934534422454120750492350839456602255502211661659181747621260232993491850260139845283907279948827743311428063960669589878735858885881864025199050060448969845296638811477791664312030912560602382295732674729524465766610441644861252964175539059636304850612559425165846290330631711523643227053736970549020695022288802147126157652454019726001348533410153365593368125251996510010548554436808588769230164664794474241774518080576618695195948438342257916987665692862677066622347473718171151505527184226882434551810788189105709976322470204466563311123246111134295448275407404718279427189596514528779095050553113588785651439306216260550527224437105708975508257333226152893531983982629192756687773497899351573000091354537493659045443477244608826623902489434566633189910601744223021510463830012649056968380389396918126204638152406099114359765966723847670332858110676584228440391777272137884078505419997329963201020848544922795425810296061984102578186744481229311003711512656983421556827386221413054613296975937106716840950365294549920462578975849044383164735413999010254970365969591405171531742341794309621056062767655766780089773869267618434462248562744647444412690762589430529305646668947025110315296125395798091666740915851061189787120361943967057054744206009503102602473393594371118449111187419540304299566885326880282789210398825022528370577617828557601833759668417268390793833228009940256728394978546888399210020532063310296660860062198126601508902180920590562891704709634378638456318428619793674594806663927473790400806284551533060769575984275586387689674502900284198993183689989056011867446343473320221437437070337077679508195282838006630952345823748465743075247523514513938467994155666931950118931606333126160011462538375254217936256977564433260590937848815854661770102383763440585549808412475688379104364375156059269091873214884497623386927379978187688875329286821683007081808737115163654912160767948480178205997933201910523265899822064442588164611720893492681710185676912783020322467010437921791216007070049727715198457615533656992604063456584816442140764370129469893644320548800617366312622455306927229696784612630106720534364147820564003373550021127654640996968528698013596353617861680084668099890649394459648286327465702151967599985986970196802818910028371959938664633923187364282808003314032069460981665134121478297934461905139537643071144988180136538165960334501734255767099985107231467055501092440193307425168677010173296039458588946759673757792691983702142046890558091560762008050485141808123981703073476943484812451781452115819465015850249331707136171937789043971248735333312266232910688566476733646230796520318669387786637699141216981419567369242892611193641464912766454687309082975524857787062016247232041704619815430548720113682832812934004857362976790386127007313986439806359170388920790727995670664069180118623339898979436351310743140264882522775539350229196088090270962962103596663070200558202560790472776774774615409019414066301778320917616008303515120744091455250131055850408905929726914790407894062966559423966932195650633644663482953151076766451264908835746051515037385221946636260976943922556432421886423111023306296414594615421172484545338937659493373671252519347069294052234624271762359961439533634849963036352256608332857926249910755283800303046932619589706124896032322794477038805227592702984193926116257657446764083246258199853651165672348424481269398305298979925494622810153173850275894458498668166268636107499519504833041807373465152766089761784910388210651622722670902911122762400258697317065427984210076002830447641997093848615924751646011161123228318545080391567953154094139814810996508277322748891410930208453009616803159932944630763307927671549024560754159225415843856081795815288801346993806904231776792821718856584857375106420885653966478702810326280208052578613737795658865415698444582726452893391431393906184027789277497509943991780038708145364433892687673670122026586235708147210040085600932849936207353162259409557340814507775035071201717780085446268479472682594308307028760454199163388508914620348071003966401993909020900405777901279370092880476444372259742268129745492610186014661678697640690574207071886715118190457773629818939848499468380413463924060382335361655287986722826158698809438909575934339910621891741343027070418911179995488722349362154348707474778363583439737851416482183223393256931708681259415108034927072881599216606788742076812100617974740731295925926392462196923628333525582840666590559249463672300626611666616745235801056096376987967648494288623262982528949304838377273412000365049256735194716198834620581367246046734076728482052117376779912055645904322593927339076836873721958080454360579833138010830961853670954003741414739379127136464077478635184267035498407908846969489184393347279221108779832263497642078510629865853771601733577685337945394517763072425680722919198209743972354810215225025713194030820527309445238112139586969178912711615923927840679967835358363007824198642696136227673788568115217613597488092292765878164241327229052239819429606779733284357246968287693575952649279103740250074021387643602152742847857960904132028689634898151633996317510845116315856496768080011279996154696636063405013444372923864472375341426733700953658171316318024363431518665673839818828676453485791144027691057911575614811300667169582917394908668116250442893129736419707753256704333134705579954032112650983099986344459951561646186683623942781729996124181346040532464615264149035711378870496430308675062320148243277330752319693843291342619759284598204050339779489122639841047722172279841252456833866618423011764646899647014473788484426863271607232409841529963203037098641346090768699728999351776600095092199431572319184310810137840855982884789401797573314413338424106729118102526624279095708007607467487658291027853555634293937551424106726793046267377344741321713809738799916314417470962721486735769293498351148498862968131771223460969130782250138547081378088902613983655449787332348656671538148098650404608021804616065236783016998528947312994878194420248994018355724297190822039033957361607116157386029761964705026248562930632486700386327555051682080500363859277462046215813296012672513529439614416860605591453965321591902895681160868921502573164700536289234673267164205280062276354453393614768236639372606732036690445340300482753190751180289283535494999795988458254856218134276744687830308030599175943187649456012820291084212299562890398183437210996761352919588744009630708601032238202814575054771073687126295052561949935147837870197715704022339720936028955646580986957361517677836552611922666281575841620865006258737267748314455798923345121482754453969533718841174297155522650595419605781966049583487874624732579759941389158729981664585428929078750398636343616835209867311596473156871489221361833298018961615887352215289595126846589813474486002984035123779783098337136829986785780998436691928617167769789494231321658304720958190537416676832040960002647533615880787799935673800542238804991861193083046089532657286483609453644815591862442671159389939924081206343388520319766078870758404400293408211982569602960444310691612027203348902257905891423800148087967315558276561105399628073392629070537228060308529003430798385781190433123392705210323106146346863815099019037831762202098746254433988487159983156556995257899159406277610264315102145055770987961149262761941259351811956434769484494404484716690261372983685428796922545409477896561024173033248653380643630227135322560645056900704858741671601862941602885978189174037689861812406540216776943269235448951499846381243471608390003415081468698786653236109361310230858835916489237846744609364346697369594657071652752129047753815159438824626249113937729271580045988859420007995015682209116562412014092362900135774935219641593903063600636131250466534011138305529734578708777892388694989531648082711839220311052010660106305160646682201263932538243944210567664934282782897574779317520994632817735257793551196831807202770480116402249018868352916691720468146517792558894462992515646973186983029676128052461764926028164299750902925527245719374989452966359314913879102279761513555989489585931428847922174987984041979092598328916851582476872388998896577540247882783782214779238419765225031507126907134009523187982879828042140618650781664215638435255233319499073483214481137552472542895656224455350116947317601809688570800866462409082673782268639804532660002565371823661136252257138415328039913550680831087798007329802939153350513626452490408953421939607383560477865584846310255743580697399746522378036590179203224918682831228227973375900746529344230534079020066407724642701844397061656722774453039126493209637673174682396288454148111070462322706054142626717388395545681071766722731271808365513888571508200848618369498061175673301331395502778182062220984546228840554616506940096968735186422689162665571386821305655565149242971583786184585465302372578009186878905279553779234151221757363495654364733646668517756194899165689285062427871092166897531965034692605473640999761778041720042402722728213062252968112482811804370454750999498756447509421016191603965378218012787997396149936294747296926263789710448582294115851072741057083218954824920333425564935092715206133869787396181614576126295065566478530444534899932756098226161016182587200136194048112508255774280575787576581012958900118158917728052391814569504222953942240917269581741492089243420124896134967393331844378186333038837039984267617555381218038808898067065316619178000258055246200190745466485623924567315070149059492487841086554161251077682468822632373292487575327599752973359890855180079829784214410472331753180461224096331300441048639387898505198356433781812738488658581247686009665204928576139827016659638927472640275903686578230866516670984906519642242356475924143224080991756593284354041146857138421997542454949622810394064241933031241435637256322877986675793419534532773819799849044754658800970130719861476960059067331274100753159417935427468498213726222570232953378840643410364062674530006415552215523522755169315390067253193693686684561877387188841957841720313428445086686650592755628002588673405365578069585937741858737509274411380963573153651993269252132415438982610202909734003448194717548055851087776334292226829393256715497067643035191418179810210321766756222747946654679072436641406878659011762139013496446336761318208042392653225010274328664258118609244874198725497511298722269671576556822247928295171916391307352714557289635186331825980412512999999808386461400788767603570704329817552109845624628651076971282872284274910406922556702644645471693569942577103504385802333401934578265955900194471273465942000000130807465543956071135137138475279795912486670597922276003818618968959845041906482791308251076486163478082312437142696863403837745959282037427542457654553815920300019420202424558840274979068702673248922725825214616728377415049194475769314293232533084370862432194063399050186891944987352020543458886039637801874347490626482007872274927174177886198751023366203597862104254443845699669805180974275697369928402382397518707846533750889603692273896834710306515873637095485585634605743065550018804436743362730321021738998664021000720204422130199801385639580505004020553794521003378982535323350124274859170583494716924356849519187182185801931661337368924186031451680335461886674623773164497947322317664267203294110876246494576020937551743703498068939875021553958240507385022992060721272815304861905300121654674075814628562218893989569402141844208470577060025412291009077268562147049977890672474233815079915490380512778721526668600596776255168641468763499326110606263979447651111903957064133422859291261942620423704474158007753410410857823547003407304402369166924011601976295247671961618877694405560237492026387724443858999740538268970488657813863798892648316226325440251546407466561775721872641574151956283371413051219524270611964911025941257606772850646643314028222953910822830579121663962349915039000957616578005275300017550590161793965916562780119648207991574832063401547609526535249562909674386407380804501170374303981985940285716130458146729504630242985913434746288425270297822338027254198824424444572103346222601589213165742114895104599037033689852862491225896835434434583496451662441404856807857562654752679757601511635400211711975234500240504899860456951244986404845381057646899165657838182933599093222907327991735442512134085850291861104289244455544552167208680296990246135432190712860978715165113964150278516545446317432398870361458087893573247287351763800867850416820188945101567342707959713893217407251040136921942395704165363543940784224822052357426737143140326540787698985613161776479706947849296890776091789920900179685363979783499112721650810378137460274405894706460759541101260438995915585195355685366301978491076252902982976380656738040034437957388413327508189563453758429897701309468207841919849590012255757357099918410618816454725771965894961812521525660704972522330620259299257737928101176792028316182597614541903359167179104364543457919338913595073517751053231692397459953516292105648430653710487403173040205967895464948091503527306647706867540371392666635609601805205343682881650408397475089081031674973523933348266517573092820955305019378191271910198213589544383169514607102296520721011625123384728522288811732577359215594099623088657748598727195849109903341529018939709492560561083568662200614721214541210911591723555131540292990864358609114220653229827017627856082247503736415923676993370519976016797597304884431228192194544936984264398760871988842811636011976594549262331130741468007185219818823377867762405948589397291142427565077729775002915848808984252603678589165122964198197207150138248137982720247476257614602983032877457605780411420586762337634358654420452268097742275410051239317570074275296957752477285595609097742816408415518133190258091635912596018333844934310074182724228861922250473168318249222475769864102108999693447929832544949087738289478626491230198013405221320784123369799047405141636244615770018017751443282322706661692114455693714012218254627893656698701632083727804616699868755632130837063415356776648466914244717422469355562349764356882513060939341947038401535853977525270567577622029906324250362799146512681405354224215321946048761080750699526609387938616759385031550576258326365143343812807387555403779767963201602412482874653556414093732872653280782995544129894096991589256329735134464934022725563377764885405517304069954164302734911305997774463273851362340281307457516710565289468847238412466049692236247083210979229061374005515023685269901678954916841067413444240114272381575493809955603503605003903024161471188357105450932847580046935616422653217633698465185271658431143394264782029741187307558618508400664399974117448914739558238812756152747929002540362932400838931980161604742011627323724419498028221458209884740350054649781723596641078400216677947820186228356177779278854162385302574224634998670578770418470642377727585780439502702637832019675668433845690243030723803295213932272850686988652253212945995200100889650119552236275883112412244081566264060923013947281374681906368433781707737686582803008766479204426179052644104123253057199338998273511976121005755302749065644610413979557096993241256757484905429558511380747907233471082681091695618735089412874659418580440560131697689045405763779730056939846295017158487396933752040778630241670635416192470618436815133768493480098521143292087306245460416446538355155036313593010749120291539956864532418619511313332335949031674191545217733600483864186768530728982049185678291471969934018598874870097467945005402055380792229422107304912547048551753594367366690128839381645384534729776623385000368229027285182776596885371389396133857246736948137848249409817488945676561478353365685578171770740239016595307509594360994429936418745347877281162407217257285772863616963895197437441335488255384118757880213135920481938611727750889118394447083288015396663284759639623021521416842215237337528283290560068198379000662156367539517148895404151234441686273333643838088758836916089125940376855103833321208981011009394062611011699388798982359852584916100076941930746709837245950188141069045807022674524677624692677449124471420037098339162620608282022363985993075582581367431657098197705231478733955473892718809864441952207664414916990911064448536649901330541871431855157087199270484249161800821610485845455468902916515001751664299751196599116603040599526548837210461336132802202391382741273878020417306130249389379713993724956612280663421617314500587480247377029656305924175332446678466224464312154566865973254010672636569098013600450766116253699618076398585984116959190410338530553215177766477982147159497434859868843900671009018242495160579267644039593166560845396564761232093246642241069882974395767761658963697329875272139870672796938766384890167886184570746002773569082837380150844001705032770423712009332529804836928691405388665730438814236105330975276570556422432171269635315711512436564840345560937155402281016156194825761543813132728252341072669150682433245454764826417216016930964750700829416729126397322288412783616908765355366615904413544411104296031473073051532012974314634702689581487347654108151830244177796701351685492367103657195922875550170487887879357593502842678485280550457107187416282221991923302550883529676918277108168111153812209905708909759574880571795962893804294301731069017499420618046033673415329544813603331724750291311703304606389549787674343433404744388269797883640968874551395795075363258711150810821292007780542580621061793232952803346061993381642648336686377399017188334538080715619956656578478200969131856318260632838741164453416257176454426932996565421458547869628245771285912662177315892741229837822897259758236096798092761229955219867806680775865345362858302310679066204899364411238730122311322017269294930058478369888522519571687027748135489452063979629262571205429216266130313583835966122823013822124339715303706988094550138512674310933784472163570079119651601357779625910512253894960175263432378490615767026875212575946721125050840444345656409009064966135797414383043155523788701099919346717921203672216457479970364488700966993521735284102632895669111800293253363120820723716063633887248777810861138336411880168524219803767462132721811889638631687338202692555919743679967145597933017595019149470625680492967852363507760227323316631258265008037621947688470599493191619163453957628232032925133881961853628907238131795581135546928420595656887262449904697735381089425324330702892119513547995971286491113566282528767446255041434239626721078578352021751614551000052044945264794962771831613917344373412286940320692695083642390180810329322555130019697747518232755783613897059970386439220720335884562894837189740749047214516801276529114354757938523276654054699700943918767608961910817690864621252533507277793549152908710263037892279713085375531734522386749825386751152046952009381444015180463102993611916226497339510084577299900024194787687891766433645558148062058921484017018481066711188511600109981260166034620398597756850837816796059601682972465745730456954940077156345882886981271908767098661698296883537498403646949300472860079412948574191434382174902764969869271584663151632514187443956552753677418282117109646168909006408393869832455234891564087433047468283535631232176943314396463807840964472097500078207939730423718815512677968383921611462513532403482740283552883316368669586862012358181912017286656532498973253839111037562259364990891020639426042983583881370296870658785590867941066213884908840682923587806119545610295448050611851840710317031625841006355819954981139921341281551808274314128274649760010072538260357826249654685161172207781914393579621204832717999068962691755019438492701274028271028979445746287429159501554183231720491101940447823900580264962715203084317900434856890082421471924864452869342419117878015498448642333439671773558387153094517898690033165005387661281660327723884701018795940649350855788731005160660324191172136665612554855732700210870781591652563220889489093571248344746050275112829610150801338787154076281462564859827075842784934657239877700192890440311102529649757687540652949754561132305147388583686748679008674866446786735269119001488280279252079819720881680070306377772672774114314493293633723281130192056824216570612755446208700160712185536122207823882367966006054717579282445209259236934527203069063088595059834808829476360445160468585666093666305336600179496162407604718926970002322899996336017859085137336278807892067515849978598721834625284814323221337826786183821472739169928436766091721204619899730357873107033359655119332826085965115998796095991849749516688593006530283082656579677015558037626399804768892353585807155456306972104120189459147867989584628466494644857953592230787648403294061561545635190819994144105857717450240639471576676188129434953139967185023976511131739731342221313900577240362502954012451373133995206324163660943567147088432637702963019128255042291315135716307379651957005059318689604519286726769240106553733593795878714489250505846371195134309177106165942426667117037297626331747944258837005810573571855652111177752426425515819456568602826014729795702225706898339921376446928204082355637884338523964359450593819835499865595769514346157816162901002621691521395680237455617807160512007950693227281965929327401658096929822101960579754286949868558292023815172340901821720440898864838863097605403649293872507414243055418626584200081099500615051487731849473290808725280309660849033932768322341234970400546003984159305896919732480786662830313586108665441339005160698316120263069087648228430256711393792607292692753332631152011626297149862019962199772963774757108710203553488931065722321290102422335109709851519000582602064943473771550876519493259980252762109843807286368918119761599140081042246625346567931419207044951484995364146353873185020772641964732113451386814146483077074727857654058202424795285781198232188689010555222004958379709668090934086508226030074164270887154284611821106550166525274254581399894151241100070436068301030040212575419681043500511673610109946220027032285906771038336898236240734147547539075970029411339884536152954058316529522604272119495693719000081127102646944960169572313422226620951613475377250783265646764909830878581897454967108876329593482214752286610203389371484327040652305407693598566816752753541335938984761553346615185273987045207469100318435642534163586924631543114960771254661417390184996152091364988911260366389841408865736196755494668492446905127001025639642373898474144202087404739598644417947423106257848210468618972035974624002261377338761554619353734577666405638931846336160462086489603859762078269468190371545506546479968778254313226590537479087382089415740337251510417110622786155765916013473821213894384820041934854120954147812880943751233471018477760793287067136869339638705261878327452826020584974665084469150588743784950963492663168247671795857951178623026616241283200421498749565369233314828899175770675499156329588524030803496434801421382668987325927415347071529381828261494404015979944167824959108722511056144093457503016532997677984677548514481646442459548688505365443323376928333121505225224961411542795103966782222114664634656666119097694361460204828267535174609922651097780180651855683919034372876271254428246414777148034121336061450269567152483289006957361612371248433841582516687993538855221214742073963284892362007583433372238123472266418220101321433591615645873090195276688924303926000417919084471252813324206623795142574774235706337928137766025157647436637173866095798341273724097716711026573294314128175930055340538963885053096564567694135831244673612474236466461972128703280502400984314390307122232721612730442514170424980757980816222073281647700832645035439221164665511061511490480386515807978367694090563537008886765358119611846032428139727693314725726066714696614752912790782046092076966190668779573621047629211953654553309851788011660693631784392146907817715519007510823153773334155728343376844331861705676592452909553115288604137241150159664934224954912607484695983160589963771926210602119250969990319864800968435130165962897759541344042008567506416127814735664638697292747448132183662656168991304935062537089560016824936566920709023471007507344649734280661461129320962124058511061362384709138864228421975446218148999951948450476727958939027427596776041124532344479024885380883656228022340953870456509901849375569551824837591295631105250393891178942645051359329269231734879438969825785280554811069206847365697161058941829449157658236067126988048580197063955354832267552480494657413038131688581987906573584477487152001194673411974564124192195065386158871231733346011007892596928062496391907485543033484298044286973423529796010635385638923801585091421510287155625609855553308049180746317481635015293311255194693752025292768355273773481103160758842275649819689571621216806704499761629672228659510621699559284672297210189457946258920647155313096353211590567675563725021039731543526331677207468473569116564581619115431520451453898581251810358440654864497873033186221485263456887522526429959752459344251840776429143536352675602788662743966607800544304280184495439077720549773833941407079714178088850566439981445229937844826272238033297476045427648196105655127581491759984279341207890110859229385507044517851120089153548912068932179670342362805235553271885219598477795247560327279449935557101553024045174432640761260566067174028428499207479540230816725594682490865817572156540232646178248204726698262685525869238670736012580635334835067082574290266775037050229140362748824259091790183551171723261408269779991053673183739466679341528444708011207970254853442288378129934463270234233900113920618977068796823599251965327104194627341803434216442628149945474893532791605904607044477603263538427561660638282709050655140420703108149103130916176023713202686124209775426815210143217738752821028313682392196416888049369685186587325930424727218359119873209007542577653112611268200576570027992559665735677927947777591725811155931954815480595021892196402510468832489587312685627982698577279906430561434541933022119712709921304808529381775501355929436166491653601542808778952608905655035163581936247876952804175451685531403463441777259024457665418017051950036983869100558146652875522165764274925107725858354286440292802195651847042624064119237014807283803040549751205192853323554842992179026194958546917637469427710038284654295120272135638356475210044628930020633978324996210027117536623374843047732288554521098523416684600427395328784967736473258415870285495713853341031959753717786253059797848578805577751924926051486648230596194947061439012041091721792498629836904081611063824419116704448599271685557162588897420375256775379493816032655474876539615753488919331074327398336967619084754193477846923491346812651601632961591997766065341993403108339466615607661148789868685930659960327070684336588056266223886486847768290295564931745832785144983069452822499839869219892495009895837476499162241830462987119179001044150194079524511775513424641539859370478122151077921320290591756353462072406970031306902687888369810058997501607420145088281915026517484582975553768095103038407388910131461574944469323673705029226744669239305030518278747180848278383121350569631548371827179604021991906498927517610195626091248784857613167334652651785703081890540933382920380296192870365757501935139652778066626009011909019839204100975125521217487575921303043749070910842358392066466581349692160817214409534896532615077942007340550735491259237779161686439084870121051002693381234878229074363674125224062141935300162175675093175243229080668025800564942341798692031498024462233014288850540456008186991882550776161390940319152436059677350598784106321784479576462679943233836382931522139919702641718201238015965339149873580740025670596849800894636603728314726475552278923181256581462884034347142478260220367857920499698282018479842106058996126952356873924097103573019095961730928584523797484831172735843518624284322829197603533257520604721171715165449427877478100250258443621145049212403546389994068725215441650332060198702297168893768505572853539185649725541378264446552114134833164348141011432890927817436681139785686477472248527985609752086984437356839751403632373310442678845486933216617191541883373170197837559028300694950135682042324604504466132341743965586040732881952639002472869739508413141344803918442826730642049027541071329806293591593131699154707255047374914868099721019305962151226326907371010063370916559685654339925454596775041395140463916730990796317609211617461308384039749724124666064462897592134247515207916167409906407588220603012672657812863777091386607067427317422368482961527877201718053106533289073301370125339851037244467153993088896122362426009316988777783580448606598612207652718908653807511269590903913080076518624494930198858082795008542505282724845550618189819373173431406458850568891312325386977171915996673567233971338607726984761166686605932040360931257116456408972066413539712222600282214875585358520385304831988561933922267704219042813809491728160025014942471377791386360610728000200577964923634540168752697712216121462305086920463267731977698681807759874808860306981132000449361838940200337308100079035473768584825752044121085346000158402663657858172889519579209532629203820000079034986698465648500530229928247131591990369218858308410175785476540688582914523137669087552573430016987350717674466803491820644214872945951209180519797398294515837969053541016373616130435872197016570637237040010788978319575362218864128969615587053994588177471366994251158965372267393913771733806546216227158778838704981137265876645841310800552320281376889122992389084941278170309920935635779483584155771296705219115758868770790495986015528686096555825282705125647740291522789971951016346220817277595046824287316424421710729755946826018488037774635568953288213849189720308276767305491867180427345710430449897194477442942591308147135978769746255467699151534472271488439808426946692483364705131868946342228466635332478665142099954877608868425829841992938700897771830112559393518866810078871712149099936863337632407441681679843654230293136820411341181299155507601742523057334806757852098010582046053392707634675401002760963504942729629111989198954553674561537889599715592021470578466471253153041854306850936469453392989172291260983399398110208391361561810500190025167080658139941351657729424448104002266353618313587222222220981268070097995815076057488544104892117417998789000584205514281082275141794496091368567824393920988532734105918182725383530733949482170798470280812867245340779739406159350676084947834990406291540920203697445741408050795181229820513688900674961759911181255664773174344725038536741873558553840603864743677019405986761493633516833944400683160960840949108293059515232995290179744941564856939329032685461271549422204577247340977193849136025154320930685321280383915002071240362740308768722721611075085273103770507346349243692653739170530957425611154526341011102109605383548892281008966231954290950338716353261668265224513522750764640370639187089512768711359369974894463395853139939476998851893591161453552322943723123929424686144157192720245529051640196893281832721466383285000628558877710669082745520701275833179041521210716208131104545854833975760450048092211395784298839172188545622596612067064505674008028610641375127809782276032004624968172397816127048204342363019563165889176682227087276434074265607771284743773396806281593405882669479604610351208090515014801733909162183710022169375618442871045424459624222451727590081833145383211709471729084600494028250395618852985640742040393843387574200635807944097077411236378529727894960326404797465176239939374011021411196426923835920871881127946356346851148884102336161962257440126908304205128930564593152572700093118574312277877234347491854360723568749435012563747669564779680831966296742226096665818131251261849937081903551723711397391148530064827214421406045135798021242708486983566301057424294379979089873924135051008163961330664073484387811993317035691820757410838931180682382271142337072335982552784334652938300857506039984943844850092955692022915769378902407477699840188404311044846283778673933788307469232672557332864993439439499739054440280745512604374785095333426779838029517617357925205921372304446998511470721780532933518241060852347216707567142000694282953988432625684087821353485311955709004156505608863876522409857897797655496488787798681098653084060568388060946417762940131742349725943144528721382173432508710221121660840653143346397772531192715593619632434883680905805567690118057837152493026983051272203646323841821124313680181246060855027524583569329879314421879538735036372974070117336779941951914499185847227006363711436942795304104863076477608263995348412459983852900558048300168631818044191396843753972008025692730464475110468514562241602618002746171872300522522071716892910948514831693310240337855313217343332355865068258053216555655761260590411199127125631156614253127021720845402174025783677671441944202902401891450497176660395151551072510259556402217040722898621515434737341046343973282796413748822486018041906855792589462276939405608262988146836762838730569724305508068876689644237643733012425965742716795213368398016468951309543671501477159923529840690442694922347177655649222869042891583076371945024459773282144762518018809691512153847244232936900681061056505787870125057747821195634949449150041065664367085956350221991454144250883662119858499055667616511446960231457971470065635887587117832462458232795799604672776810219438870513327822178909370167620911724519643134110971323389920024607616982027045251337691721273063127689844056754016110660350584909068813631840026135913921544885174386998844498055680528087893837324680815468042200298689846052226239326633206508685470567524450092220298600554592366605839301431850551838658542467426182113579433574913648291835319979722213872452532788678245660498493654411407314339452194340653864206017704248988490762328790548206391865264953917231109464433596972813559576793549825597911246790086331256618389384998653476601528394964204302471289904118170974026252753142256129595245057349452404388816153235107768726538854579320520986530172435782424784877787874901886312705746480628458460382368958185502756526348653141121787684905722047103848160173470073606023478175092197351073064252681306663922386984981102790056563225829870744720527975735332778189555264038108300499663806847157264313444293864811944604140896332707227379660603603412494772796161659322187452004975950055729247567643507669561906710365125790058641606399568242341856232023649255489432544921532113637173486829358579658515817728941374963057770362230663423613431173322357553763835762933768334949582147657584573185182037627690577602847037660099004888721199055445788038479694274025993767235465528219299229196259314907400973345491517347504207763776831582157818283467896021750159887163900062266133092984033138797701195729793131744624386014336422417324300546401442662795310639639846813748715569735415592053549987876031627408834854951173047136930691504361010348174230203143446284665791150156140736012833987592519544016709649864510396295958337826526745259665149128651474182962163187768121203413095194361915700163334945452122948434102046693730445159133176151370551137326454495217738636456480867769910303389441179028035875645986718565158828524751658978485446968357192450095455299281486489851706992214781187443078284296512785326710106189752468950346663638064398443444707363005939263411402346331394008764558304617829103942066451369672060342310784955838475643553357254907114714495485509453662919100835126699364255632076293806027445740641512387908232507268180764677788999436701482550616482159569865935648874481399203882558898563238987253493495204976545705252272651485697379392769727131939388974453201755271552260291228077526252159263961712408550195023309707949395169424893888420311793905405427048020797108239320205120440414092023356363944368997159188006516988235671784084043617790709051423300111136248741701031401149386456565270063005275331082260857175232313038395800276537454683813687988825263141908580547051552125913904324930102722045630215062793412206185830310252141289343869174003274509258992507090635922347972446628678607833083668295881406825368047335842684741866911320961650534625381543027208061470913858960183481281351152620712472732445820476725763813133916138580484022693557623799716885992978384211493330732518357646049189742235523872995286981690549704000565137635049264411006439108149199622151264477482486176238290419095601922355352979871345025384821335011094832133412869349712906847316502910360653357685622891455536958620274436835966433804975482433625774250505358749550562108427844582841952630791706239977265090802818125728601105126499411071723983839486658028109693572086199818095889171656624948773498132531599176420292866087511491689849479364553872758970632647846605134744769748465405178919249706263561138445042475758557103444434399909773823185168460191965692415173778509496745377572875744653351500041327027178040259540893814193272904646501092928367880115492374279912714897790320879427247284799120564484798525033216371572801624513626449919249736246573534313649835486752307932095636684921325272389848238268477609899666835647185648503098962462764392897853021406257493754917096728776220452290471610805893090614146091155583349718783262675592308089216819027345112410665609388265077724874244364690532692704248270767645504248173654344332047581784304337459170634951845589443180659638518977380965528435715907614071144623667232481561770629359030949450637117655888902280622475475656424188610273572975470410752249555759996945751621660726533356325895212399707607097793351014589503225983795723695746112120355029067624322668161653625035847056193285389650858432935653076581888459597559875987907676471372703837569587306403593467919851319022242021946607700060487696662613418080544653582748441621974204325034379999990361269009229006188566342594608275472330019000293714726659857045189893199852124370941475274761090820960314425672367917208184719505307479819974048169095223105343872198790235416390035448429803694021909876312166720250309115414973783417497575115350852054669862169829154363252726534976536875285016979937386077172571929183398495137994585329983233498770323065035889335039449033741302356614843796105824174242599196846346919709306489676503027293157837773846926137810170066059383675766513580012074516008964768098767432024741933224276403324705834179831012822350182044741971590377259323378439240735699147659335586660999675169814147145409432404844805065428928985417570209321006189387352480960926051950816848909710632718124153436467440945293648547118475383745255565752935131815643990697149883873599997811387341131778712938417767994400111851647473903807135239483974400655084347986848422655616100243782290675117206444227494175074471116515780373851092909437443232648441617024767626652549307985750651568968024877897580979348383809167018364438032927445476727424653261975694048614392509873385167912853634319859919535501614442424861841391038467517867438957977576240068648154776366965857463884815565752615853686543677148269252173708022135610501056921774911571048473530611391071430273368407724535395552644919915280456945151994401084785966645732137762700840275670087351906179302989077105963559047708632206464227655457428480428533017083298192138356458932289981928392326938810578169124240493231034955769978806584921312880354575867034214539665027156414101667571021671264718381624505268603160022225520661655614130613887463266971284012841876753343663140107895240784739544595601238694664439742193281050793056801629255418434772378917069880493382070773452446009817680696913209004523030211989651972641394611931113586190506979847071087518601435527163213338624460183086385859027449821275656759737201085380655923613875171498299783739858149051998265240622631195405969538318993881324978949881915108802275165686738490552926169297119229474652769368424149823733496551336247269720340172946446803212703950178547608586426866220256116028174703162156197697147409545841117350836811053191137104088042607771647930794306304619132761140804872655375114817673642707685357216400131985478876315462513595261577969006403042582224214270635658660979269102703077720405284817761142715889446628483813034258517402679098117652053166597866701751421741488203339593399709366524270507206579732840603514053075213541824211867362244956052955929823665009151133312713007944829237965157495157130827464641325142020068187502725162672386729765989516866809547701627442893625689628052393022090002674385149381830503391069619776528551954679276448433764778851795215176442239399934854256274345152198693626306079220300123392495658487949920559292454777540343435144525496930792500903703548264283880064584707960243263672813809199867328036020476982082749525960531006168293438348164913662797808246680980803688874525386821155393646912810165218525212168591262308677979199941897247504688067044548734850667480715240987289821055369370170379926726959326450723764043568221814096456061604068165990839881223977030851266231684992564329703125950958841558441314051327346947330731292377364036588411410169188512741773405849215570616117368280777751958979134542842945155842585603572497266923709179164840660046758079475537747495250809020520203088258239543433651333984472415805944782674897775697170975467655221553987523724267973536638345401693757460888972399437920259380859061085585098415453913851503178840595569393971745973695607118019005322347386583974152388610508511461655475819607071316744373244208906136350495034953359975152944047160112175962065902892354229394755150527149063929264433535578548759798208611853355365594967462348648323055139715365321371457942196736691147307679236745627719322597317594067668257629683788946105857124970783376126480724359242062072816531496384419124162633741871510457054478371969004372902216825141688619177311878885775838078775223856758260338049968641732308081985802005413863760979377057730208765449285842682392520271148859896844115212860844120494138196365239610904981021484732652306029091444243016293183506230847319437620002031669604125884786141679233472005385544866492459762758119815184574797640293007390072398672078457884169202423803189293254295737918327037149645952415744378955424216144118591871429310473823002967255035303371671612172135249074981862796328004958216925200187218742283715198119526137909434992443012815576350208231174207313828797930445980088146341192239228537522245690551431368482557012756176201087114093546030952335349615515232988997989412350351351243157725639620119009550694421515008266919633140573348133488388514116357620983589657506714682105103922912834047358692975381972247801041136333331739167034877225251890249111234944324145263353132367738767217716125183853219752649989388018284373093901335617072287035026048481804219862004322115179930536843408388480790474412188013392338637958293018160030156649731247191539696424853269267747108488661145837524981153532492604101816569001858034059097247205291800386001366365764813018315385525365807463724937042736496085074037653647356453338553631213032402018824549578209601862770579459912435969813315384663235125389716661704645116580630704860988111327109157131715394969552725181748416322171317224798110283593157674922389862321587898310117884729375442892634071418486966677183723296902734429870531291611595437974746742488662066535898231633433915660313649046763498910127589407592554658569497181552698976320765938287105046427998614480918338817469200555473732889329758784371537584818669030947202827434110129868345338434092880804314393366733254307343466676188748793435550103957281195777930363907318983299176910583429800981066383307647340459887165948449666391438918380820992660890224549237156868350463260012299013775707495462046280699708518815344914698904516968862751734842329533842921560582309136787116646796950784539623583503609429246394876419173892359162410233357281447327349655084649859902882939166954873700093508196221836165750977000658031938944017716651676657877594000761265369208416408585305093242130612461657060769106843653981459222697936366782963166615994373602413744108282578069981482031915518010351892589288068935696594490590674461260991134715759984636873163285904322553252497890040344196482267668394147067616893459866044633802726710103698909104703505122673708195294800270685105429655772890654898285964361962756345044788416748059211546886167830373184637754883478156949585381579530806139223594602290479414226179284078043119075294618945613447325692450212873653104108921793779841176785369201751947666186466714580964270675482300585586772292698285601886488677779613659931871991968388302830541980193192524466976892289898874809435402963708868650810357761976789920774937551975799633376233701551666993025965482472650956498201454316478930178628017731006113135777302369933487683525819080606783770072346126000824097074037428284732307373972062546265724451585118120904462059897190138795409428607663166461189066730198834047074750151245822639130033765417561780595926577757130908309287066257102262604415243213138818344319142323462413545623808104863061112098057796403820752164490975988742777737080178189284152658851911471703880702050374595412736039536831261880666024830389972598611185070833177515404273027308172857281781000001397689298162372761151184740763217936754873063360126952991029373889998159066188059715327691392309602957695955759829166079572127969682170374920995692248148101109491371797080373207472416035009222709800322951911485002657611235516663955261385777097115763760802367004172008508679067871533450561366351225340733811311030066268930198573070983107762380807777531673674020376682812658278250968835234458571043294680416347199186648977717717792679789225319834326446711329611567025828983057310888028720438687010000321934218049266056104816254708819233269340749166183937897878360191453483113763736375415995068119206112625876487168558532258534079879769601747213670954641204334975553633596929464972790530600959337371863669481181458085876491142299525498837626740855623162537251642823148020255233906306580994519239061176301479405378993732256727288948732543889322014495983283296934092972622511156294585809639343398558493859765400460152373967929570084209004917691904029984309743539118900366356409499371092873975604772266697524295694498140798225840189026266577815208628345948174477539175212311760123564745572282089796916342537301420456753522787127661013340183946985733121666505210771406151820325518411689558150993820789668874304226204841851824857314495355874587416234218456997531823537447571475268960961605905725923007569358348118527358383316775556563741614396229255074187447979345735352118429727264638066626033830169549656383340318976965567419594572470328670414702449851881223491619487290269789554154786704856675697146408087605143421575584464415669183756494042510157893905897824656332837460452375877800683222623374122685552315234541702546506654058922398931285213126829636992803719116454200033646032524343099134971014494579805446360549836372559674775684412615639174383116187491402248914908965217708943561740727473189905230373046777623823455558329185258700362876452941779352922991739222097397155324601032833835580166996515685202057604255422298383947215964229181058129676790421725812662741668330109575769092778868235189812728147156956415557517681592927462680226888248772772980230419120316700374773749529233702684232111588272280936412272910031751597135647465098670520433639980242633261365643765204796609900020233037503762733857823920350114473926746228502661921400718956565849005851576726652784264361749434744641174329977552056684999657460787352692798821949813307808270943487474595867387768401965962915271284223658506233644745170213138761178195416325805004888154997964020984758815579566002847779824054373045678811658146058302556449072483821993832486914075611131891951319181416599723071952424488054983605973378329921477372528142589270206692208093001603309349053751060130229505427797977919488977157761660797655045032269494483178196276179775952301203393558707924528553739562068787074595993231269076158737637770449673109868679329951783217524903966372133229729993484998699471742199881460074707643270953563566730583118523043155643623490664648521566383729125266295332809400452906567332878397995295621617042845269409688079726192876240297879142215568612588466310586640441063080381594064458490560666192087741128046101035921896917029991496459218375284397280540304179971681970455170427559890707899998103635413943141157316785054148235687880921779570378715970280283028398453741101180901741945077217319320384389726022179319992924682542201478435379310004540481596412768168038396002593598040146476192953182120315312229270164752429445190275598642185780489705799106736620897961311617040117346746451774951750431401740975156940542325050405924349225453330735470219521232059792624687701420744443831190974964161442380719798208938711648181195356313328420861661037114609068697859414676064416767275273216783156546535321991418979344144187095967979253001605808485068849254664901146547945898614148546547057195746715862759301105097254677187645688928273951096385635505083590558425366072890753780026360908969244197707596814416459830847963385820247111699039137892341916745790804872327616487987981769160388648291135145573518117466451030559928151119165822370944146394996341660037347221925879113612116265756727589924346253339932607398684536790819891926327011951179530056004504350609693247856163809088748276903455996491760132721704655698542303061084044715854095351361598486966704551902674462145624629636811724957189811115517634438208734408096795701083225628307653118744177855103094748570049774858874394362696559722747128304673588784473778653838191563335281400741722794069530340341071338230075027546187027270120138884385130656345112159320543650102589903363953955043125096102953689496836437292226455134267662881156144391389447280370377545238479705120678943259060939109591257777702250338389930741034161125401269260053601175220081519938551256176667800321672579089090208693637311750119951322297362809825993231301563616282171346632506824012887580149732806790297086984086386626649785149332803029468965238167583211297625379221278686400025852320568331701966938859664615090756070740446900317350938935987846593229806731651370996221926658323533733856184118697960084189987553048947613934632539736539012446921224146690211021783351771117921435223546340155632498494629072006219423767391085177469859610850855030309375506122441743101952424300255123372673486884361925279951638925706306209904893610950189077282489060757194212501378494177029529951394306833115753424853713831414132879371766946391314220503734503769208548401397523770092472643053195458756146108392071333303221779966151244828020936493172341138504148635169345760984673483790242541977600234899301639790846581882131807170131541465662603924218319175275154244309981582366179846939979551414020060858396862955210045187783257782296653971002936177341494082277482259722304411860798138778185641413555005824577681510751648459961812754482817317601629373000205210625973361314250368705701402631832711375768992005894949294058756788036326905934760704539291978341893416262437217189116381306938767028196173981166283612759681057363716991501199397816135627542533764963987617662530512601228938098459032818118095437162026476432438253599674355326836772591511054585164159558562663054837812955119107779106581223704167416194906440320017665877160085864077218704861639579106457349576045254940424359279250656725239820233063674104118360274480285146665755041208714270459059028715883610520724203969468977141949862284198564347977603158772076950879510746274453366010769337188617497874336505234356630330917952136024861403049767114531716460550024734204255994565559886372972880015442809991194866884083290832168695340577205785566664764567898955168255609161644091108321174587457395700531350418721075249759646905507445056431372102634845771098832555306503065461396244386260651144619379698200446404099972243503462434708432505244803672866195733060681556860619043926514508918865189590341246728698685991128472845011528616563880166370225841030401189301753564211561335998959967149538547330091385458618706619230237766033871730408681359018101059736800573380272161379211179410204065234634933162187127581892105660303409810909596425313807442103846145892119124313205840863301645738937453104113326325549022418841093281208910918240321011864166423773502471089451411507095372576516961855093799065530137772137442411987783591248329918441925226883549397720876897651324558501835861582536438916075402838946358510143810676244484153352312158280256948813050872741196694237239679239340858613612156150285107464477226193990284749646719260555770828056998420697675636532082767729788923446724265185255546386828864174276499439127928192758600970910394878572062644841011792178718464179245125760052717363945290391342017001444562818266414198379213333527593168436286523715448168009579990524253607316349391199377598716117278711903110384883468301468713183928289628529409218835556520081818259274762517027398847800774629910937068292864777337959542794365375244875367055956388605124082443126683261273604389795865207180923093953428590875324266108284425154049959102406535664866362383238651658790148625845502041444874748465797091164224669828700792375674045295253209336115134104804848602970509056783910658171508611754247887386641570344941793150246428026761277200871619050025194332998181410453080082608531843989893452840486729302003264198234607845662789936961336684622839646973938427320692058925219677345931122478404957205825534453790373300164838400154903271078034246401106035615276754974332234430563717325815190535777388990187269179473450909795259727886993314793589278341002523289970763253347787286376135644971462467383863053837275348648298224590162998048552160518036006222362394736965249848601531148470977208418889509476224238665407908037110184318061424904689252964787128948794363742410885080589319592882123716327280366375667104906604691044112255546066371669930830133065589836593360066827648225668302607589921395463670307920125049847752323625802393685350283963766426753110708204208518526320092761735526147124728995758211736007301555895238052647233953172738585843737451486465637215518777352257777170811487946530821193321117337734635067009335898606334642820675455702886811240182216946571589133843361042765790922818281593046237562858172102912684996188985526868682599934120533950221963430896716835784779986629586981083452760131856954797665233463523150774217562840584214038981274073540573388166208219203902645150266140144205894245022016451476053389922263736699421126384003482374491875247614235505383531356358646881481829315524768848353329445305237321013579819396638549438513200663434766262786030447865998183153646168304700151146464276664689048041712760209105136640564722963312641307443071609930564877810966113668391153853083288297205713383179061485804944284147970971177910316657935163511325679582803635530885911413067141325821939971860779254705961246265184356121909420053913601958665301644213580731050485850922690018037648463983903633644739239782486666398840091923037253716447424867230066023688939737184772545399345826384456384974927086854944571780931645084990230836530170220381473790514794993574802272285108356486755632750565035667229871465269813445285848205489734252869967371038502804998071162628949487009777504043222781058160788734394938619570657642405269408099770216803379591664827583928944639829547057867107358503661698207126502979554086957962859302315224144762862954165372302523931664504684450277574012159523530538961106669625684655714000772417932006215408338680657484647520172744729426029364528204721721670497232726570323900054900630618165156870741891895172196371080965215275940205226043496373348975819916764662069909560467989584463846343066157667326569240103989339942408872525379516022386107586545261457572875111360140847051504116502848198010749549704121973576257275695065049138571045611226000722202338628672070853580986400830404622330703057425704661907426062881831670524779647076873734061005802594413462713490419799288725183813031212847153128065605472189911249177885002935306675683095384643883311672416841333829450412930964369253618207013937506137844423145406953246289648559689550046850162278589075968002307869317129259011635629310215856046746720855087193062215201487471281379260646235861299842073825470949284057908103822407144290391500275130341427706334307439661379848767327939738171427933588001728761627566213482274868941317814442409302929385822274104498695982330315813478363909812927096710801398293241966186728897293733187368505969891238245554859866660514173625368424033390355198315398312938054279415026005774355345671337746877812668480017448074821195118862506131399484899910918663426148410814709317283632207584216039681799177675032325784216399320171414293154969887857304778705109132173658805210438765903766935371553386589467045231955741490513088563188884873102556284204470552649604040960396519181549144912437811889247960212595956886131278733673115689494082405993335625739852136952336324200818979324866293731313590603439602735346572152124566083368076864340262300373001372661904985504510941520426690398000284001007596670441373947496216738405945340034817701529286101250618829004228970209867347107749511629273908419172588486596520484275893286925790201229872732271218294667673364479465214942133771186557876429280875801275457102207615779076534992753515490735799357588283438819189226039526668428721120472326828729875935868367468729922353128670163746470099088310288884192445086050889204896222214030287773104045385654221222901368986617278532175451200494497271830969028456072628058617425784071813320749224813979004048781997430765462396738132864741232803299365473309920927879763075979186057300382401559183881828795351176794500619224812695201329464599973970448375136127564241746211523090633987592688706729251768137212584558985621697330302018220343208479367273994192420956425624989122200979190889560839878920725157637852591771350925614717364687398943133693321194992133691142861050319232876481687095879606720443404531385380603383479175732088684627710305514233535833783491310282657045428587017005637653343605641441931410860442837069789868742308883476051324783683473792016142605489212185057381401302583320769157666864875888677970313926605039386443580313419583305344939948781718419840992825906380647728369725202703234000555492181749457745739261321749148292955869726694720568568080974975306478605456884139544402647479147907779582398295685288558470628769299512622500491513499065653707873479598615994968925597110950044937250827981882064818661043682654827824561191897102878446069298467098505803927762871617709490116744045349585033413362933332692526901066688197234367331295067370529343094708876036772069269182412238468143205574758930518535998946073291220935408011668899141309139681415865012551018547220099865404060382885188072638607517886394831612495023864302316759247635723369555017285845192442549525634813828324779869088780887505869153364208620788657166197105352203422850243296256928233481477060668909292742884268006926129941557335852501003519648215084008626837845222744325333646517136534912847268405407306240857929071108642242438846807994422989822438400969664865312162803502049348238352888832130451187511981570653767475297548366510843878144852968090650660805882061558424908133140464607501868508419722330909966194012237831245090696836379614414688112293326423069159631757226043128149338634329292870730713940539389388824970607936023820687628220714930482321819896400345930874976346239735288486147499081865858044779608206470276197671085367019076782486857204612782784938467483489863802893766248878854920546294115850127971616704385242382920199742970417937901539679618144964798073238486063726271912379753274648203985158521123050258492969607864784027227248134871975632098716384365815226302994419474665137852667582865708139310095435971025938300850249162475037660701483998672779899764690271954638069305983119865942198305358217593904550582696452523728455602282754807419386853983862470073920805972252562614269575016222876842251545879336062281744233909320318813235324902145002434778320476186249639817605481318288110280543184738491523476965606085393804841439005427255205254256373958279899446273006842090807405823273649318058113930920726562277518352054252840496723761490511159006206604089981951091318092047745205554864422476521209463113651000148328737786186605663191296449564311766367826849148381786946181277611707331710623925010339800501269290184479158950227569645144983081769049139408352386928198202476146869175279094331756902615612174536301095239603375484621869666455544637619853183618005229265135120523631779272282098002413477704988322807316574278735664274884800479431292800226657399355265540210092058558801348174682457857152577596671333580135642473626447088809681654556936005696103263060409295273110074947234768529451232815422061772874627957960560950511976231374891492826058885354335890496478136259964238987165810914374984092479685896743185217255015294486008339010953821096098868833683807492669256635893975494189936199570358092528904706709958418383838238479209196499146071015342306350155460862355708974010906651312807350487362685961180010257000702222699101368384716985282008597159531162656264616646168303354833538334959608901449045593373459200301162578987815976137827899076436990171185374564856580185365668642033327724317766822038573475967380523506847401778960588948034923105893365704870632756333429257473470752109858015027154237173887478312234564634410102145442658454432317134449033170662375591212265246154724460222491063529246163281331691920172798165057428351673603840215244315822826680391104972247252670948899777004346702406881992188588470275431305683841995094302886369256139202736035871363977272369962932121676427430702452994761950059915306302761837945826313771068234987918889355140046005432242741265549412285871502763464306362037756297237652339792172552110428046353005059658014804557627238038778408004199173076597881186846719566245435377129944936811502828802140192932040864053628329655579694184421230809977129962295153355240606135518107113388795252723622965984138926601366638334377748644166614319545871978302822194542392082573039037267408562904370873226268369052291472432969239787566555803006307533056871614275992451652638331873486412989221490261318982976187688924700725092539502617172897476020325354107491569373335513390418296532267807211818397472480660821736306622462269443634906065803861925156613021412233944949727152513543367312684230082187483315275552047639318400432594837581215615913609491222606514650983645777251464755177716034661794121895911158621153867145701913643096154084033459588233626386632773725159449484766341295652782618742373571718844836417942089635942969724472536844521725325432774495533137606133862415456472914874453343538579500710802902750624972500100541567129959492848175993979730219829750488442942698404345388927635542170063753480296026155156941807615518067997543759303487488111354897820476560925322462191611761386750115242316427324291544626609480521525696456158702100014566903678218464150516266061462608683039626179849469809730963534416656187986805361279538151954584749877331687878772977367684156072387990819926957806552124779260674570473802997158713435773942945512454555886915702632931690985708608598482721391955803163561959383102724893598017305692372777721915735691913865285834312550291140214698249630467052490654347292506705559283586010952707156288369660600016791756595932712766993667150480744900169543861697546959812559405978208947253209085933187238670149535326592657709159310715032513415481165237298956132893751203694988997833890271197181019322796319071031438058428516748050899102564208185308631325044315096494956836285466883003310285390084383302388198168487114244642976341022200790886154502728186583743176524842924169781542108311566308859927942673419524463948038867120015148181811112531550484447167283035213314849158457830070972663487148626214469784235191371034358936287671404199385766025214757422715657885902907439791854784167112765967564586759270978083554211629431965716809392981388129966317426817038099947921909529172696239357887971879032635974289763320899100000489896252939936924621178465231665031426654478683426699595915522286690581421639278519532725216132897919656561890633479742631627308876162244193037644598697531301420236942527118440602832348160040351528011885229802370314174240269160142218389785552189385980931621266120986595550410530821425091020935853269649336954118282758333129249176729053589805974501409308458683429070314328319447466775362494797074379663028966599114544128219386071445313835349808262107496825515839400073503203144117048434960070166501214524134479276601939220383632108712711504047699671945250287318209625269769574209048434772277875700162949989126053995794125224840077263967770012952816537397003924771791162541538327050947742349246538653423643907130322164506847716863642334350712455205717296666579507985298977422314106392600233120956330317457296662223755856036528255555652012750286897384701391784873837241467126091043234443868044330268287220755791382495452445680452027090613414126887713580089052393375858225582036977830793502667530930902930222402896195574297852347020116978536890214291945471491999099089615136382447762819881931331155027610143617944565514004016538069240760048188753184146300696148158585430287014699441999372939499768244853306716908344029004914488473168256349855329235797206815346390003028794251100120413976782655810991688625221067537049434864804379818408025984765583345299366522460670993279760303786427791128025844637339651701636550237281646818123129153371155330609224930836103077359105985678521570419146255189221142234166618348978493583584595625681512951019256476254988520116642671294391816611995457135792762980723070297624325399387585363152020707473157670258547130738175997613833808802434124437458660945253866196045409259853157770031186793123842322097219221475527633163736196109156784501505172799053122002805100733347972885306930770964998201730063466932645124839600280865212908056207964969970007633176172135001085215368212409284413639394765765911229086845817836323090651011186822696302263292168550160999787810165381701472016692823655356413474952765617154436120764935654696853152583112599084631035675995272307870129588361757227838758601056059149463130622031290045355565875407810572043664091125023525123256155271029363626616655361399747756853166392554268720531967525404813571460789933344128604707547938164744813397489999890484654862379137279287800520683992290746856416619110541723181955832462755717542975211423158299585121979335457937593225811442454068647137562824650148513002103385796708078063474825409974254498331479006748538568188704103253891684219488657095239394910274329909453578645590114166991164390287636112004545824592960483798188494979433638262180660078002065740983473701000922421973054660951510363279210004110521166334515092983788015143482644383253155492516596511392339052518620544804983366591577912053023088580221499068468450240843033755556727997517977980414878455973994842038054804722651139300739203301269010053788152022065908777971540402989633139685686455125644814603864792465609997224616959152336549882556908971053168169984386190812829657669103490151717028353709596220538963944290597883266609260755316462396683421591221993797027079931917824473405173813814064197866455494539180061572045939276059996261556579402594678822584954367783984228053016241655893143896371219681904598345945387892867800908578583737631387942188703858652209152287143197733075114974277667166933435455386449781370922667295306876905743452510145078628712085877492523899379084071236452045791048486325876848267790380578941085269396144382937813104852127479847429487941450199017386897307793058652874789344178113095358795999047493490241814209104312772709833107903355513919969061582922294657503138396714612114876452785775884435386804620496898651239053334469005133824293598207950965983695519987425636617619964587520131249979247649092955516005760185255409791170500525253098261587115175516769218091574198306953497545887466892316269592652491884951958721932152149303752209504421632382123087258238817305681239760094094387609813017481378219023692642755983458018256922651352073755887321828718990220674247500960657432883461853452929160632035190077275412725647519766834209369592462361579163993970940238845414381590813388357327842600040730627467183808529449688723993434924402824164127392485037011289689218412558929606318846284695139264225722524726768703681564646135385370511409623064987433157549335133349055730877592108067921393295998336196964995028772969858438564356211053733686789767404394158065851805204575964586626442008688684717582655653937020470828886062476812845317432194896981444363836893671823483449009626130962959383357998436723093823796816195670660985208319498883604770308951806572002931179019179113932827533255948857225853940704915798722078435190224142233189521938540806324595130730915369949339746280529532293161083942101779862479293576553814500008888835065417617040075086755530668960708761113668025475685970639461004447727263055133968922090320997662810028708080986046292245744376210138247666473709395650506985128999381288926225354161182757643273265381359590774815183236722100309425348793540483964197180789420657377105780479177185910128163481232720986277150666979942627445655642734274464192748136390087921151260141842026470776033165528203318931431846096568334831622415371533416849490586728561791344524146700789297836267201029276433045778611512354297331969580044475504369221660819520795223628111048119523024658409763348152935889737935605200573553770684357459177687118852687991582372311426280566046452909170743839498444350592818267872706075870860857411829256244942523689881001273334634803030247858728446230056271039694067901067477132597118638400976947433345647725389229217861779373680951293555412906081627689687859181037369159493426662619504553252380554078671742903381588009213415664731500680990346810380698918980800475493375359052598687564981324217060113537265767335983209588551363064634450837713261650235985374465077181500511363431630412855070622189982779976661965163003097483581398498929721744332317898524255651081656391085942460394045721203225717919397750155613559226916660330419951000420047906698008627284636366358746148567887347402087288041770151385407354666840465898909378914230948501271770080159581460500590695970012976800326619759304276498793377684167800736603933143990762392475919508035240004026906052587867916888182338033468650024291315357287654100240933361560946683515796659055429533404448749150444712552418108329120431782684519818148716554632696990711505081997264410243130720563560698864442240984859268620744606109033292917657681244872206739236629041664221325698658102733617055542967470270949420418474586647671555380576569445534055563523134264056093701264706873623898458460778230746022631771670699619723740545921238772622023327999803254092697121907790866740526578420135014323327825149022545999143141907224393228879937652538284594553330334485424550161975208788111295758691239596121335965875068431100161915944589922413646446388629554304926877834892840137465162780271994331901829415830160721500798045780577700250885748476980656309011918200572562251026882826022570559897595499662481459738078977927828270892933722084335865422668666161447941789131866337904025258368589213004258517431702688831670526800984854826207320561355324562486311611570365520913212403651354706366583109899434629160197386249026058853692569711673457771615302632953723489257961083903228950917413299358060344913958796416122328714277443949077434271109482604947969474742383895327770602356816063266567047643487429414834571992088142722192201707579463927259815449267630472527548367038596016310205503989166565438705945096453335100601146921769294052470934353331548838918363874892163478569859286041649047894002620273130528122870675171745121251273206485097161632427390676605524712315133299276063512493095157306159287468541554188298083427374154894888542011992034176790575072716547158575498775378690863675338473366802229845621565135644966910929177995623182014152325831295785150537781165816647935743437171385201418147269277532852138748656503334925504378355826720436342333489353361973306359719148181861915157547813794888323091540807889559860716914764400816372561945465933332279170322641029724790905941375079383018800404303230135308059148301929418539016190503735385852098055214326020037348548448222865387209451209169382798744014401928975877025299435851864196068268759627932052169907204666213589903883938730840228218706926428507195517092368049840482802223653448047003213449996108934227516773081636048953984980804524556675607261796186551289189498884893421816708007331678065030469067793203651198575629297043117926124734659211262922150648717231422389932250887624081754697877290564038214566056668598651910083363909688980135136727166711431266678074896096717045278435068923533711406249944581494885386647259619242889538506906161582676820227634154734272424487025003074160899883158857175924483543855760853929618950398362487879963809237014659936793988150778237633300182886591316587516470634561763839492979401957310738788712802264278516416484718667174766520261021122614062380602649228553117623203640236274010645180023526538221826658806398423907920142713620098133432408719145938350135466947438351666721012667108232991363571537965936561058663118370777951140315163219361173342619104796012990971819713248616041874832053312869734685232606044464449415406889418306577372977706263738111253844665521772078090484667045365494976558407798257624748829893425745716460913578059095111225387042011408047292008266567059118685063255000458107032905237271361374379026375559624021206419774083531603110875391719903898810882837926839226779014094469440684049865837360025029198714318150395686056973111716675851830242923976624185753271329339138241650991084663760677716903412627003737667423525733276155225338737670398670307620094054077739012196305077043316641667775029293917443612153692238223085440736938513328489871883222077482852991839739734585024190663530627640410279802854016824423149317119746514436984248641961009282620487300332060848018137202323871117894295123176066353903791314460816057811324159394371879909073949758500017203947879390953941901343567862055573957984561324977336945947647193481443408001070631142829777102515069837251074404354095443343282037074640830731798330720621461276416054775713046923681394490849848590450337174152863340726664979060308570468532611489308814236561667832876083524017712821571590921975515046128118187531219676676878416836593097191667763127237333854740674213630348786955628416591126735506777586620474436931690965819974559077514748894237876116754484968750204872282698058928918262726795416959338783257574806083346267457054388557879452793988806608477147476047019894187724805858428659241561742777972738878809725251757766373912236781729843803448177367111705306111731966660676858341067298029557908306404191466939437348081435253147494982896895582780501620458747669492148476812650236637860261804805884891430759513062796093023594177533858140201203622211487978411122922098948161658698285805947857147046483512766057551891434173708277040345329207752487386046969148916282118953585037746383425423761167635438246847498611551371342967245109842689152292689683142124250813401387164806082889759784255307534150690448090011491199778002789817771285628924892552015573758657161036101878687032571650112581945456060776947481992362471471378646189832579949610140999025289345659661519740225605990920629733214192000902913842677973747756417441977105234755621687345535529658473859420782325074605944464654956692843496732046717167901023800323473626528022503081958568855792557639659871689420499955425451341874553011462757339533433393075019900465603188548804332091944365555441166275389189103958303148087670790709899891689900626309939396553719080511514755314671931135835313059685312513420744735559221020902014985608104363336089713712994522369016749154002521991603323797130935785585500022844251715167392057641420249373757157400429825251220969736935528841726337721926256444503739775679200089835977044571902058271705952446658632312685703132859444544223576549278817947589926556879729269367383110663387988409426138946781327042537483318623827616762202741034535287384710865601805539319170171848358489645918847404832997898290113036992389215922181988448002405857621977262336163254559907827730546470470112742367475926546813988006750808445069942676049948343917968942591679988407269825093193556448256364498869382161010333159910283821076842010277603209295458902300634972429268237569398039781367608299637250355559207765440145530938898808020764652098906898535968664368848130975665273031991533446418601960444357839998421318366930215866208597405708763751940173500739084133284405428006684643798910626531823830584408377527508255238039375085343752186848524696715174444093464532539799996993012557785734278773121065337279678688428826516981200688879706869446341387570920704579224337587386612747700974513691220300234265651449373475438127959378620662504066327129958290571800382061563554908142669266998698500165501528291651409469441346717081780931488958522216233214702427313359706042074757293105204202957753867242658788202720065255303088832002160755091262657854565680779009600790890171863985005929174189488252731982038724027292898445321482235505310382765714846114683003018394090758083505272089717595225566837831840794396536104628731351446468743392626499320732297921793484589329531412032008450970308261418153928402216481596818036323725710374179331808163103861240407736728217189852914020922153188293487649229338332061220706303535517299078840869972488054038415373094845522007714834264975785201834041478138899134481448139712155991446016069953697046589180728729306123979959279950258668179083665260650165955356317775211004640315673993400305329593010416646765564846224744241248081020572541364311283584977608617704235738745787865103377507814654416489158579631817980210377019226776270008905213580299976998190972020954538371193874929966557401474301051372115822981992366908910563010144795591404469619355604248363990950774291147359481947126814486528433929763497875225305138518534891243233073104471019172334358514983048858178685660933443955980936732432679751178068487212417371547658729239225340295103840571779673625536901773134876892806092880840685278185522600045145254308061077429707217080574055786736995777723968748594546459959037736690236737380246501837550225231692949876611086948309462083539565445483298524835269899606874839572341744894530657378829996339843260910366564473399581578376125699811747213698139262292569840321898251686959238916610219310070033626853336195519420410969773168334065120176084857552465589224561552990467809936664683537953706574062400405434468597640952754215234985049296378217913866158940819271854530494170420726810819110731516535039618287657181007463744472824638878434617213057527802774395271827649538939740368187122833083663689273076758212044021161789883154697899296342879295233786841173659670185618553794025635742933613105642530001587095729703531377703595254941477907657419174596797872886425637506720947485978821516850604125840180802453604399797322401734426602550768029223352048303945605133861191566688843472217542974975207955861353401709496125972443679767032039438835793675254035753331697103006000945808840232378104919335995486755299619264204205544034089047172089385994135256620112079400689268590026356341907850062379529079916879082979616465906742301509960906309130741562211804446465863134388884916267281779015954479280981250926004555017492804789790665364320800725953510815757257333451918994571321728076516802752846557302669777705079854535846268186737767640791074896115712882302313021638808722006536966808508144884194339100101757368093309620404355552266934929851686101323426043435572213333145841420952382537416707837291192995906550508290922832068426846035613195856612568850331754296313841489905374983500852960031092144923688199328785741242564024636940459261362731191682154260028953390690729762800182459547300671684734357353695312173514062811271560083284873827377226725824106946081263888562687615382855860127132299320154475115632786861580574359949502930796034667880496066087229808092650024840691705221504333689141227548252520981966379615878243759160749784415731843647287614872062210805297522226050768198479548365142124607676708171629590796732828768450415965183063951859942068828658516256380120223124852497880827451081601887987519307327848442715502173883803486959785919742239229654329681487986785248286011643533212101890672089870796255323364136972569261503073056117271961295249174888567533312340672517940127022414498564936156692943606402376806412292933901329036083047036667572431721228344335177345497786551712742257577743486412752585475262310707465757835186250656450271057675931613329761900310483574871057465651118772113998264907294446438659820510985052889420594258537508207581859685616724951876042846790690050265133680491964607802176399964797122898892858685138984404060764145680801093231689486600366761840128032772548593318942597022906502314429122379911371315706353675509269310431856192281959927260465664238859567682277993359538253642869705463364376286651945529661404039717260207175900735253791006719165610427951762773412326145068064623703078992053873277539754150759621422628148653378545645197895763883822957060862476329526077565770505803741007482342845202141192114622796241714044486110693859084132872985092955666281396762484138059127783401507280166980745610514363457693301273873562249664362619470992025082870524586088019829004343230084956539439376101876149692420858199409312426031260277245810338657125663246379223165028712037243917433377294901308417350981440878106267734926541715240680075328051037115471071969582775499636891200497681104821994820836465719279266958285902600561767993646105501216855716952679951266923912156612030488605971157812092866732229840531099204811119785232616567152130414391406089325699854349895077112955523857742168570781567143914726246800437989172328899338114060376308024445972790306424160440690885026440614687083096797102827094830166418881786141713314556629652139429543943525641452865301835502411643818213828375580818882915968658647296448117189467050754827106431640678641016698780981124805827138094027090266637324231972882836208933672973742165252752859724676062548186191159179907732818023998324079039992428121353843737673987366923034132479071533849466710182468133598163557683226085504860976656600812795442832312147885178235361962350608091081343549090884758048006120171631550679665666379358447166271167228225934937114921137207941914195339562013394063239518227158603671002915973493842703417634054380799555126410468535053770273000188243807962755879701575112155730714322774894808759417617228887446149548385792554545873166277828894544467020692960323447560391281246266369581017926318354749195098155620773089452121547149422597504872731516571391231882571450592063067847294438341700187557106980901435687571565528643446431191163222894330431237441482976249484666374149539432168231704971251724170837121516336457783890474605087162912747042187217839475368679487414127666325079246722996694207271867604303743219506819989199253127076778890094108651603009408266902348920136968244581818275782505934380398339666179811716577355090143575516231056776343506990290370201351961442616876939434237587737833966048548651376084583752931309376110869491758045284621486139544886479998915012493801341854778547071301367581613692851841946563679363444383888548148343120987238071539110893943363714035699255081690665686161249758968986410009741412343604691603048021679108967505061426539425671927374169231171260152462706219214033661882963189229150907032767444887296564605316080968732059172842136819032041207493367925366741826571746920682837592089315159721068222303082872073421596112492080995879889906103253711852867500946987779175355503270818897816238631212104260109696053516255064030862593082163386125654479768737664122179585512808907579488154869657397361355194731337582202903018530815277742076952158424975987312495857159163429246757148769654117918263756547448297971435750452236479652760129431461721342682014348276710148449524818826224524249812650045265620877531262098879561186301971911197995943071321482907255148178623932608418744620643151301619824954999190735862559292622007939602026894434591545739813854754094750646128687156824053730542408874183784680161660475037420819533349777382870453335533081623323960347864448003656088518750166995962494751998226449786921870614032920536686637462747821936135051754891886609796415146100862092108340220021469910155980724045771162371468623298168375188273756896685215390316335319044723564635743571850511877902872231731280884285144146816140401013697417078677935850932613451730815511964659227414245869168406554744203971339600960036496999077096869912499780620022053406908255338845074684479695613557146677059854614151157795773049232055014554390104445135994455501410397654434733678422063383844904373891123142474390139550966029879848557678653486470309678748634258459105652831659871040832336604370954981737103286582915975135892215184591022891128958446073203424618288767911986156138466328113955564229569830381694803565915129625948067203941592135264801103630712072214004500986575100907773429586653707488285308475050465330604696867456196536193641604336831544483763403703458337293399017663229526704719847447605244169352637878123596373577890122174134480777412770573152300204956651200129775405595591473018331767304677211885972419422419890089308517969609886869591690198437348636161141972514037967147374010752179777930819247023867950450532942222801995842747695701413908846628728656300825777712046001416161403125467669906249614333759449624734120577727509644181945016198010286394293477769437865221124022567250648536094458014961940457833188428356659691434005261501948101309191355105020741521723732288329802866155146054764841332022474412381532503211096149280869888457147670733494247817214942793996206799880572508504819083552127116499253024930105711714978656904315260408291778626061953013533822673629806578834489664726136460718934321950223860270558151039238341856684953632854523568641299515990338807685387940675890072141627575449937742682173620397263047893923491003457217267303975438625345796882002544717850240509594088687494566672181437234057708901054277607156557221516052337328295563398352293829547625332987998002344155927120738751104960601908433286324706145012108999890872020284905762528006870719197402586505098290543487294405748843938792865808449629583229242251929276273149058463740877426688271931844640204256768379143926877637597491577161616543560773201179566739263540316105445512481945362975281853081244327270721913581454269012460781939275015404946933811175812250269253087808042034621690115786762402467505302312197665294367713383943637127064684062073287771919979267134916608487176067424737113669159569490739483582541781614771755572855400307482297522418462020288496246241254421555126308201100705067330774220805822952934273589547506101069378851892358461214791584761605520461512683628544881597760812399543943727081579743089668849991552248413638758833480773667780552120016067850266231568594784338948260187582901791931361132852362705210075432826203769467197786096975583408315898051107613309014000208169914007809864976485047699823199792996045086224666848828354095459217671161169838326639303634684508891755189290461837797709994986130605854061969473755049743179616474674058234654996706332267516385602080285107983609851950018464408505146994157099840004570199820606760786866232325108818791812675609234434544975651195689381354889775285531618256677581224268412294921860059773742686715448691161812025614319575606835004618937753623379758968447367237381376080053153937424813492257135299668916648362627203330992954268178040138496727449273828517383439858307181425134718267277411557362627692714777469211143846180788141719815699998654269741450199556041499032712708651719378508949443904992860919977044777600217087987295540579369000421415762275125898015488220885720642797895974599709390064362480289863013236782328062875673565831099650057719712335127714505400760549870610780261436471094031281648552635287033974880348154250378044226657394565548220353143087380568767115379297832905353332708638555883349742160460485451936018177196796335256545161227726190734348860436582794216090072929328209858020241833979156343556010670774948377528400307371049312249733331861295336869651635648245294987236661275085378485116936369325460860929176259217525455440323929601556997373327482411064763104529136663704569805337203068356344631520863892858415303231149974764409245044983093932286960730417740344453356843535003279147523409964761617462167122345325870474076637060798426249493483422122508310816461208681361767888465449789882230407960400795875112736948801925703599143696291907656651487195329694670898889342411090574895661430215838010017072720499586185707910775595457820922559457825443486599092787926452042647823900202013715322464440492519383010551663705673300886089801173728765745221532053422835539809093508147400390653164750940887565723940555650975795528813139321183604227535807042423079732244098645645077711794815526987355609983777733283236237869472542609103113205051630436035293979361025637950428433699084983294401692231083515528490919690638680869045396124601999103806215360164262603447915411760921739605907813537985501268912823902348808365728067115338200569687367085001185068759275957782634373463533349368431722709103870694427539956272605837611693767322420537515364667384409949144350874693479711187703946639801468889771460704891626945494454192553531735698928379228400212016389780442301592599383717693961919738046718829257533193689568451062547167545075522433208303374702410709680269119394131103186246857940121620175592593136860074486092482865640461365753803465202415820128357949877339045427768834961559404780032537973927371771016927286094664297503869803415671983009029057994170812025316941349220229596232737743199684789581384651890910842139912593037129298576849754897764514706595094704593967470793006473625433016314151231903330432870207450830318535293628188650846757486516055609820769046421194637139235704810147268132632198212651826394668655712911344065506842951243159487025085106080347752053014913254718483567082400817017112717545137131655827155648389318442508807561939792838396069388025243652753095355359413733398414619460231559651190788652650651084189897011428739030684478676130486453132054541346207288479774159844158190556856323244644888511446549939415173342454499130959384281137480084693251527832789799716096624656908825781706516475216484242513363143979162823126100191473575618820500533542996883276224235863102351478555823889380925455110382697986731471219805795647708564993300242252273865616308265079053851672714136385246091786344954651889516995610873591118960182777979615007416051564861443205698546046011365878753116906683492131552281370671646141361759780743510119333623372033652756950863749346509447970663881084108757385650990130328637040976210917359126188059381408417365145009673314631158446974989476594970859160568125555054967398571281792437346000481419717521363551532714761945166570454794216679701633288101664211848681791888859994478386512904451690497979664588348656071779552992093246535573419878093527353721665425078979620211327849120908095865790478308874024878056912998756329070229938220258106289605942650646670645679936511573842559991908910772081346537030626613565191403321389108538875536450065855773334551434640885580410241416770463408363071073145182814757857815720751822807919915261567406109594573572747509349248605461710812705605677753771734713240271983645619149117407372128253677029295395708580156005341673293087491877598519262474310885041906242355629459683573470482843809485014057127771081350150829940002560891271567027287598039046433369408577760496886688854005916650985574695491486280879406544313012115185503302064773182541952202898272208821305364412295186218405828390917479840368282240608941829729933611976116081382490991595550203528483958726083462700070838007252107327596485121310419209265090847014145335896965936053673989568198501978909925260821451003052950670060834403999534689017940085560706317210936213019480760390332663242080736401420843125257628562129149318344525117723724404954588090771603040863848450850748205744633880251619631002591307515980797507605174796956678128706028276884685729689347691613190995547511766954031215754157425613697141507233508024013633576480036984636547632039738267789207944152472631246678726288260574318207918078744735192243136690840642562089275500943915153582301469462761562449411112161731801331665907644421405527530317709485123907496407821853197174660866063905940876571840740527382387541858240524162729768398190753083251676936247799932823688055844862990959008145459177170405190059332257898278650226676771727775909415751281657670402622150450724422266211577624500371929089804026425049269520821228627457593438537272033974455999249271810090115565199818742373836630070485673566223563168342936637362947055545776574954258249398860107295044397991817986337335770673678406594372546031946379602775543832592334054696627369073262710356725808699230518670494369145258504373058160178343688409340280438627946389062695820762713568341051925404202416453283266459584630624316875341350682065923312741723285537139150244042639080447981960417875700327702132062900691664946306190894156704005891286293980674399143990380389808595701565417469133975862075061355566708428272105989839528225574854457812981189940139004093951470053520280171001328589013273346313245134488043342522757654581105217066262176228346371134107675911048352010557391756456389194318725326158110948392103431197680167026094994851051545425874217580024819767431868010010228505064771111234033635205133369831183477681403172562256152111565740411123317495636524106059996005891589750040177400581821420008215166555727824033996084065326585942545829481158482347498323030356056366189841494725582389020073334313418791210891943626272156457289090216380100120599786054511598223918402875846191150245213141562881360932054659596580432789995682859715763591344802702951824397141216544279768746685710233461152661735704498626606154972838978833000758727548640792243747921032771864114097812264127312245091129042600558170588502799100420598459998674402772498405257384949680299125901355864927756580135202242648132554880619825924326133096874992660530974891077300564356596711800602179082181086985197005632430493427785713639895594683312685046303286016723502257906834806213189908631984203888849062895267735116090029147506758455177324582561183268188119485524496609488149258241829596314053795601314902548331344762725972362116496245666522096003566341809340234109618643098558815505203720684474631655605050579682574519376639588011218833855258569453270153505097240034811881285625781542726160897903520228010321016002253801012947869182503649965936471774659947743338656367390093016393521386924501471893519495623538117328799309676405588666402672630440377963009673536870252569675735456293492682382892670902454368512942960286513530898310129402915392781937200589460609288592962449722812783832019904814169143818868231968570694696940711382495911077316564556520413346113731054369172811783248075923139929350910518755746902011308495656268477627325374459768503039420837883933310258226160424864344682671001684322015907274099746480671634086652947574599403271437024966817489345977864549209088458089616019915993572739627284999706872999252918485000264464621938198568560441378901033443120430920432340045284857661228702344014692643963506305645532293262023353983366325722846469514070494914341765785943870476635436595378628182814885474638040830146622442401512838556451798523389416577845285929162540581319651242806058704814256908850312062955222600490407955315662542359846837980790301729961255483771300665104067737980984023583482838346928088204746128069122784587389859841099480201982900605978710768139934948103494101205150557986898600546851469677602384040801748046288074386583251260285626892435900253031943219121490865897971245747433730909769012122386722882321504366350092622582459786141436835536902690050036278707747879004065990388642555047181093335220715752687893483565359152992464736108625273820213562349798150206909558903562642546291558781938805503634719283964016912028826942615677865164425441892983661209769798068299409781776109860454764624556560713942679034854448194951070871389542914582186835083322246028118066299970661170060283475517094532631355247024275033980813066891510229157705921580789466270370972554280593892331287275596779079723585978124709586182925211869546976061674180735456707931979760627805246075391267529721484243342142303673732614537964204031377130986424173872275957345925901672522616335872330349311103267083608916877490838104924787460652697312989018840692561354031461313091073804223154863730344801025961644666695625715370343973251851707241817123668995452206052299639598951399452527846375715922788851938363387873528604571894791118284476861532429262875085106194344822858311378231849476047430272767077350052862825861349759947706600174505964468451349196477841494265836252825296806559908148801120863503795543115595185462531666442694049632107852801092402559983921128251607988115877919668596886941135837482065958539778900208241974218197461292727891029657713140394336502129492808445824801036598094002355716666864207210276821469164256573589254204737248748781286975567453385036576973403565044309133431377438773421624426492560289268623027837250061569071637896039878015524625184119698464059261982306213726762468119430391294626026330973425308273878647342125474244861036749413189950837817135981944978084952205755323961820918730645998455846706077893982354886815312037516999137843240832260473890969560761930915083522705681265890284892588027799768958184865575740349025859524540747173517551756539700153384711036609312302348854654176133312778102251201618466015877831845639523365179471456751836021975814530624570331576279890983095724420756254847390803590061969230936107716180839145666737636291756469256231983383236481149022219772224511377650579335169670079576579231513825646283171031605935526127340940970973796024543479043435730306329435796138864902860959633737462947923467993066726207171788803944410584963456844266357860180015522181552955181567386668594442478650799031705490885646642472382562196071685856966428929227615954104432815100062366852218929835750972792137730147341680496203049680305566321495801347379552328699296959111788543516125994226657754265332673983206946112537508598914993564912268245488404544176505618202451903787610665619287610603086614329328462974492701189750009637055754804017039724790204310225462607537446647384196241266685599707560829587630117519324999836024146644309412624566412116757589514004955571495182286430331577298163464332304460441178698970429757810940414250080642839775103974733696172696888404121499500233955298231823857268768808529732301844192543723492630224905605956131854600397651103423452144603855546496721204331525450115844652630405101508699826690691508647996661914750979170804640517831371143992844218282385380328968120108783658446876755414738140426987627770038797562248456195750346798947368019778284522475298745900054113689093079813328377471771121612047305104751174862526431890656015160856840522966057290581299550661987816643581753106521944726914753263784086444099122799175496628396307073516220339052103780393251068330149785242235624810647603441823004274999377596559716310575057753100937914351694222097397243510779520760424033464118231973884522031126639701652840673400179390514072826696164047424347828267384315250830569202533672697017292020653836665374461038972365984631735544752765918949358583722089311433925618109513079630589436492480899393163038918019493717498728501133975216016247519807503493730718301403797890078614382913035108585765659000031663122834566238214760022968144615312412709983864558989405528415900182992600081514580360498373768616972765031853446676270952256383381546072776248566614046606410913337716445552816356886993712443631334530261770238642707081729353910013373941346189874534218603789280487427722085565986287325051785548900064899666299465794597576226028692766970779324146628995910510385894477941177500285508976118108820746395841326966861243036951412518357997781215717495552953685224017859845814508231940361952069872876399415272124359825628941513392491067468617360818810420279466027063325907118624294714997777097827749893718922087598405470832504195256185182380549628624235513886720494525459722250211170828212882925731516374604203258976421796767510984597375689439229394152734831133167486699631539947509049094075429786147230002366512854468095424518434844252952625033044005958962802286371471937122170761187451706469718700537652869422263947453543577696024495237752860071457192793341864005102850990788525649050562588236160033707834209818833986060752283370307375999145905014881899029718988175941499093227541202713503161408821301626304792446729280680444540229440695056903812115545345288489699375000577392835859077956994452252106747499185327105099152688897009198371055999313056897794372088201389756822767837097769336148258719128992176072839869609035918938383359886177282394740043402697114031452288497239773459534328906840555087262671165987474020169637792441697477196800029589449043067218641042702728323046716712161992439432465656322444751890033867052067632804727862313850759117352187550423936393546498531276469712053170536334728610194482298212148710596435571641764469864159164794704517602335648491956204130443442257834159842928627231352946920037510488456529809747750005076606237762704444987212187141853929445720257417087541031724731542677702113328419139656880010774355090171788204361673544238603472512491224988960797071987953770429761150162587132408713236502640112309238604863982008239148120230973110437449551098921056496068386848997254109651831711146537122837044926659590238330733257846644997016954639330354550207527210092778234707150027064547653984464889387366614622001768906988555527926609881514039267042406007543744952864737060402840702470413048698727891066722132663178356089690730537875547543371072113003126814583668769674116859666252282526613173795033528134269435022955728445814742757559939974756957120751703805496285572189162396103375225189118447554800568741983073853149791696367451207212195454838314340614303517783442535113486535754101594468570244170650877864280816613998889572363241338542872655031581097696460783872087876211966675184805262846901964164086668849863598280281521572395124756267553486451553485911945957008481048057267248561296192914639261297440622739370011866551668484909907215086569387145712909234542740095313954545567081433841570447260671317233222906947287542994148662375943396318101412061949900882310829525899359904752783684445696685459763345466689211794796388869531118488559250300140316285078365756438096315808740589250647896679694325501957069400432190951247602434861899482891671720092810414463971324839455491596016267621002646254842358452114777055557656244924519872883974129172174208400744216171468474547862849719445508618182286946150789476037218329522708757811870491966522871427715302667348184775052462166396302864511724598744948331268195010048419906373117725691462975803981882047077159335890016222017595488539598599086282137946266428712967690668531107864837904622450551028539196070194852003393564783462437107653877510408668943314314941259007865658875612578133392496323840582718290107286803449612973694941422581169093604889991816621521104912217246942181139824306985693509259053774371791717487451589635699654717545320724612772226010592437712773786694646182174961873178130355321347373005063795976764904103685984136041115341779505448314851896995054053225756109912271894868122038459523506442763375211401501631014030859020962969897644141244810826770494744873407079839676505963036202310963393556616157048203588406142388935455670139424545798032366032389946368937938115099892814034759204649563866220702893506968879183986266620704517553478423697149291769435784280896205713415854244740905289100504657348400066536659550532119054892153385313304359276965864277153304548299116270563485992366134255766821387123972449116767273517803704271064008979073224224254753717927211709540909977586650741010033901973807719839237170874713307965148165621009374664669703123117285156283206360183146625476974658194492365595452045584469101820062355569628466859179446174408486413879044748187849033044804773637700199085175105109904854212565534735656981467333122751577861229511259762709598718545453927205605498387903729667555479385431852200969029597189236986748816990495861189233480414910012097515219873026550150208015151049197632727582660026854104797285817726916660603959342362334745434981073968442478504394888870038530481250638690473197738817326424587430865440827143244481464782543212911828340040888094370332423924087394253344983626148710248646661188464936868166316870180731572577747386920815812937651072722513498324120949534813251476338952715405936986473250398118717665510515635144989751302621764778506827205432990360011598767469893543901951162620116828728660561566849588983244806739350516499972618843426684580998785387866218490201331549243220882026120573099853528890853309533077367605712168546724691651844366611152478727940878617497715961610937066886588990330543104432118101887510470121703320343903146118374043446983315927502899172170160253453122762060125521560968317762842482807310893081200337467973205969264562709455989617329746439720247917435783222849758413986405076412032529452460522987320551424339061058539923131362686897918383965145137666202408965281374758664896172345792601613417896466167872103263254488253886056268879274762420057109720655975387066505453857527672138757248281431506550281206096241314516696432144739990498978462374142673009588097239720546296112089340509051909590342386283284135710209687661457336721018525229162733174835344663711907100136705809481399414209920584549197833782353469657791428848904088339513226928209776361249792623592480403286263680469655969123219376069193432687591099643768436894441406416762661751252976245543371559832884776004617361319629518009758571034249759591871457735404984230814383550481259637620538452584985342149788930391858035315328332605187477135106018355041499885672694199344542851653262257927066935800017560034572359948779867513782103516136317373744071741755202515084511074181211448456250260098849361874818279787004260016382131425250157990884828179750472034858779517646307071076852346319888292181230094156902085718247264599327971783189955000505203983386493962548807815040999140355660001247828811262759435421358573757413781722514410372239794954379168396753197005944835237200936238595726327337646057831808783101095612019036097682809141998391558540317317542775130993080396398440327285159083751852336473214094833944718278722860617075100846605110951770420854598352243643168374335919252867723012802257182045210518463613572664172873210596222948428003782365172370344237775863290782950034133830980806066865590644126747919271458151492858276925990185499122267391987304714290074412752772259172243440086027328285191756196553737010739735099333967943053723885818957599631640083103194377051026861984802636857475789645041667093169857621176611226536868686699241922424379422600720422362019821394010495867620148726925909817885788808249022263519976282092386139253161109438904895394587656945963384935833881196114878108123959853878106561465374771384287193407857948878882411919900642760069394163383239630109517193342946752156328502014725641213927991416703600975469223769266679229999310644595257781381559142177282370331310345636020871055792505816459260760738368878577533737550346421969846607399507247263233368822743802493473038215222037366682481442468251309349493602172577675438733731862058466100948176817616581335532553922210003151135701207702308583642029491131886292122639902904871669540527567242531135002131061881211064523999500782965201824940415223192196881800633747348498178270575216538394139775394679710554718911211677628342104090105954117058395885063829888471922627742594874342456571105201656607595665905153567253158835411640079765355850143481653224268864617365148187276563950224408391060560373582255616518932061697211453326695350561901956536452198310226059587110065014456618440989659805229783667886774680535683584974595430950271532660775464949473365228306778983712902116694931230321064047937389076515881007298608158740771336458995939889653331341844791803724091151136487164898500105954556257224949416112439412710728355520740194659130500010277211058340373665173395550994318355818270289348603229132538820245086096062876469728553108227403547644291628911223868708098486601800509472649408212158776059175541508390298750772602358106520987800718907753966116098916404682479061828316635866751396633947850836620580468491516528799748580204595356508029520341515967337701523761780863738743253885048793399012013073193004034080414323471603920176962209759506169117694225027530335397320044354872198765116572528276001870266177158365527410107812930456218946653324726395733190605152116570764909055660614801208210942975080067292013250536191981877746236177125074526591141551279830114245944342262876540905074118165391413732071596393511522535932178813975301711739640015150298607941783464065884020660350982994977414492532298366639956580557247745136118313838693261796630729943821939831199821802361271855002692933577150661314702058412456241534105197646012686730093106620239515848068159009310526408159012619390759354323590585966733950077254582279123488127144592221018385373337560618824290236846499934151440718941186991337112397937384665758648272391712094544302215678782263778933454865398490746522129245299774772242641462541798696173206038294821937167160165430904879894791607673621532169551220251944067753566735076044828051024084559771355436676212186255670735990999828062430135022793429268604234978842405301213247357440020623095152737066394110104042932217224425950520421031404022668631653731630568392475273354514510367896160243141570316926495382100835806191470345471553025966740216743502623748854462650303888542489536640745870170372701165229000636939076851973426785675523666538838688191479868932117738948507730584909828155728625418686700748889574484891083291661599827586410152511379824370025642176410864842236028143570218257202785473365049859343006905116847268922355826134534168099710965662887132897281360249079228609641826914088314637966275956050599462426971654607922046639873018259451547329146114096273084824510807560634942913575282973869651368398833817745463966729508304165337458780734010606810143490823273024990680558884771474541718185094071891540598045384619390076328463629917319030317202312332360450655826145174117472082662588777484508710734929632595099709537740043310969322768351269682999054852095875084596772400478635714084256585063885526844892526035355421371519787364682600314617360323485176718405465621135833402987289228900436459374724477631630312256122332032198698303387246238149385669865557071440525969395034176127452268357488514490741310175789651263899765313624069792693347673794519945425802087091161585670468805176615724711604199725958876512291697373816385179312994548742032335038629243739428299911208235884990273224562213959537789784162444276814484688354794972604368512527689803422569453485786646581520274734749170403880229826817308506607905057608551887061619044359111798807253156510267241757871463068735929842118482459111623836875882477929448575677226822659296825056630655207875248049679619675022918980942546682990303797799645200858294190446541016120392078347139149747529718993348429899050646984022653301122289263903558725719363706459073343567035244099806103678489751164438432454552294209651228149722178790660471881451391487504021157198955152979405127059491737050421054189636228325171902948600967899741407141364656140925968105533710575169791871010003172265634753649387663320604243231476216552840938539343051681869333118721001787060304128574375910399577203318403745548974558156280950068837150437709122424551581354829905601319286801006658122050492308203234175528774848399016392898168454118283443802186289354809021284448692549897591459328262533803272454939258925012268978157330422914572244893247667264368215229821934316504263806824516735426533816420562023153525682496171342828085827879654256871228521051879086180352725320674569656550979211133835883624726815867438408331532321979112541874900501905095416863529325355306247098864778573710720660502159554533680492555891200154707945916867999260720851452478775799742031654774138200862159769923197397667880045544350152860205828540540550400305414171925177725560396963868386208146468975502639606615435530751573994431583254718747260805574152741944314821492863283063654127457425521748044462751741636661963806080736317320312755609321310483083509713470895138973493008322573291423138374764539960806922711758084623018127696471603196659218744660065763445980459836156858467195816944394862573255677712873157135330048430509138042803529281257255250062359024439917467214707015990472139742589856803839462062833157203166464350269186152962071903010370620938020558868425931585447650710192864779024027243388348488640515923182863554135727450614756190631783573980694426397744495645053980936062915005028596742033280686948187903336215371454764465933876211013485719928840249133637717522387299725619115720751150152522787088679276259113422620768589138188542924079878672204790685593109971916464170462160714887870949034041811357090534984446030552197941681156221907662868571770167731778319021169188136777923119491767794082857702496653759947939548170573126466206068452241591228263817051471917927823037915780935591890533771946633983131854293481041452600706361463170934107016578151231695101811196652528569735027301402763172426239639637876764526037746340531865303475248007981355037850073813133290113434817588546848138015975870917143623041390315648656657944946519996061191754783726335566847888799370770859377316682336743015863940385144911509129693845385098854283436887359598501079088235593577291025330311149413963765894515588941745376071817353119751935758754392315746401916266295380501133380401145798275822336577081204144400961356967961998424914003589189722338882770693771435835005823743701961364669982133929840714344428767644062654000444651335985600821760047682027263512710583001373438893696984062256745826979397107632391592944402763713992816691650974096444590657302923127713374095063105428420329680999905420351697582353980455076682465051218422793845283668805691635176945279778975851450189380629051729493287979464267327562025590085197908766005711958706803108008496191389576064615813683804855921803516998485810059939724860279778202866543552522633846006035546123814103811021624464704922840588653978203309923013297703928383304550430977492401113763249935033270608121729527405607698322058340661773352938130928289408187471226202693836590683531814789571601648168896640949006570080062084929021515366909500222080740962346965574401280696699730709192125397486024104809554190522904275699528403558275117049948923864990969067891387662387639104774625172918415730036986515923450981170656383792934277585694171648139131483285217622131634192590352426174763224902427578851035439179706946092781199520458686490902274356694784115963499254326147142171192689722466996836438091051423713045870802792827609683539044041157040210978925083156372421616989632608050447159006925690924389597170242837350223701252274192087473473277693585081192207034906521673216911516256054477471296030567423254355974679689058099807973838004062905003279975997256446152226087131148508888296617959260091541368498566083542745302599723829923748582740480284636614511973354446930984997977905102066032689532028373249873500114473374319155138371453468815701786201217236499272712419870267891110070264549850211400375123783175636890577795573267655728751722867029442683134256943111323613721796536655692792598462880138720255932696882775004544534281697659398618314904017543530201082819700160409301321263753151482624365171773047301879461584043626278582057676062837826580838375728684446150219328197690677568590373932860935084308535231721466554677632395071645764658296596254196079640656139976847035782939944226699945655545934254647354611280457699334481350353824618021073606606113012078965800426065636220017222177593686414392410393273103196506599437462908195018957496425635173136592503218784116568010612781400724575412992788106953078038423388033668336852830761748666172468115834846579301692891880212983372549595619737692780738861560067305696593529030748583934888034742531287401325363070969499780515098891914847063021493644341257018831546891860194771483126605023070558444341020823602205627358956903980526750584026787436494223310593565748661118023031109492497365605039534652203182729425011411045097744317386576957777965570443847092151854089074041730818067386531638961265507768892865560921069993911031316139517887576654232774615724503822359903312713920629776888900524066048839856648859417141279186028564202801256919087703877951426230888639015296719230789024172021214611354904225113020131418934815473092292580571670196310916204741858873818971961014241169327961281765859084577270708354922001271555845844346330042117698914082800669886691016312081258007663815060566796599158147292448772384335638189635514668477964417129842361423843675716582985310358416864173246629475627703368629847722185256927417140928863591753054608815160739179385112879682827122069932035674979321795735085148312221576277315395033397347938495850664846375988619800256609638083149271929277584116078277449797471644461597976012620722608282227491627415411264464256545377030047804157613660810325584978797192950366439338948978718984664307718083131357554976555920514434025851326749514015679016761326600818414866950323332016452410263710914794081192331044740864115048083802560974236330497273918780021876224034602831506513139271143139300212911282717002047427351360014126842259247666292018873053173336188709202688943071958761790738458344924173542934348080434509115082001525077327204195763245801966340676739024242496276547781673288077269234773587273597933612895231153304591722889923195829471422027078412045395591079960231008913988032035186352645825068591517459741652933646253473147991906364906979772610778435824169711535686062374224901669862829749158943284431757650164279913955025438971417074499362172931594135149852429801675472091904912229809739325875215740477273384652340593244367399779624164655611700828010572616717578071114916470050452235420626132484522782552305085406123597345731768206111099637499527299918729284564163786085484356041513250689507864360591955607477545413108078634899627887910657966986202054147374905530045707880165800560581697241484243305214002125150480487191489519800925304895724973233306744410145353632233813846753435202365790234892370268222331187103161550293069876868563214639798155409384866051210938951823650621400882141752704500370826665995500991635649732515057059229282182369178709119326937608363786206164970018492341762310319663284721999558411565545891941851937024151506808636742041994194816653359818705422729919484722247582422717869759066032111059057375057609141584845412036619295787928674411569132230420809951583732093942135205047073427165964107464475977771699785364981637504051412146860104195842818137497942993343014886932710460896228635156914734522241872144988015029170097835375056283278581693107168834045022221106930907009337974877856838505149822139452496562208313567987149140730178223405932072973216165140012038808468334641661034925193853044719343762535915683973141442984064494625185646144136642597879276521435187224449845257381049097781607705600831335793157017186656401232507532020069097100775551923157132826618083368845357739678911685902540130522804146035429842858616974243354835158042477064817504663031096164092121868333355576854784292166443787577731184094110298404239435707463856349175741560020291503394528335795943373763521966624203748055558050087501423402560806933397064530953716438784631718993789594629107721358130292459565104047464936752414222739550682905550754857144855377852731497811788521685832543536935277347554687558639014638563377384041708448991191523088243190082601605858426269251283369476000303499024319717696441589761185469550754098741702100180320317331499534673206783271037249201463748059058518218910408785991009816277523331989243266828812156479489350691081347147888966420074941632894540334344741672929053039054099804272428338936897118141983577109867480375533366804561546291250346344687134247262558338827706282371491055086500540514570073872282507459687857525769780913126521031830837680426730952535057728786844563084096388361394247683902734569448064925464023321584165389470746722787804601108897385049476550887677101074495098740694893792937716484658244788234439859233800251231630906747026939991646864642609241659633603676035474546463033035253552645933747687315027669656033918937617648520102255038776748277644601127805045398095766668365975905639557447173253631422431205838496175431064297288442789064933919156879788829565651472202022715339715915446676178682196785987502938735839043869689078420852788704932861267541403815986937427535679617097686016851064453120157927373682876825771054534994261543876743860982267713244785918007498165518554308869515722154771731419482830018053963264413122951729223403191518973751587658785830304030493061676386529833733351905010244816616893057544502924822878720460893147219032130511220270604756091018262395839683529154813026919913422049714908525564558469814193496304046782431617883070941869249380513194718097556688268744567259451672695179747475360185175296420704958475791214737631751001372749949891948893832526842994888186723426468718564821657548685214434381662011664680412994828002249801010815954752894974928879139211286661671597537715234791196728945683757118748992165122089691871539983644071528526348814549143108700590915675668250388524523386062628670777682297075997466777467384671427999074518914150723366638159877843524629290149487480855335847849911119851240944329082995996963580942573320414965196643688050895324926426363929322777187804061454627499220822019930251509199192235002189624267220162449527856355230583308099355215599494131312161824338271988488232975450259345164406487240093284973611399048078319529297630583321412795189342195070747756105332790385558359755936816274840078983537023407080949520466187159904032564846343707026703208611765761159434320643156388603712200336159709358871821620779459118241053841706257967383815727706918044666710835009643437804157389825436419233085704505198617035972617222849129532947805167306166864190125584312346695711042419099031471453040103518312287721574297074283693390665914284321549323570167082696808680195465940646490850466004569345130167974125169254691353811897695750042621249884684328385841194934910202274990089313902968839193925367608849272259587470628601122055502532029084159465707375396819875307193319443131890761416740654856526604836754281295972560102523463678559352119954512834610597719165488719271827163439362202309322731252708858175979275739404218383882669086418424673730291669931568709522708610532307982700938125704001851270805898158910779656644598314427012479306379270503692492633128351861197080174793776639920301428003590223558523578360792180873830818947719827275364037561530842858836361291532789088397983643025182970235479624323404797054434902974808701492581607474549537653438000857394278779678909473054264161146194334292743542284512168856249822358890979010823374415012677854399786615247621761913298390878675185259539577641086063125220722742388751958956698199016202300734440351739582342218410855822451178014109447984399469883281123451930221133212734866614736457463196257437147589022137355653003301961620704067834809861926865218880559667673035367948168117110568945265847390882827400894898362461615282985360676249965554428379973898985021533219611546720244497692297258156140081473484834043600195201450786209215651205150165402599047134195826974622350452037132287677371258080049291116148130844276527595138341497102488843739610394500323532163101611006662849167803403240048375508913628728442673715927521171647559147036193133202945931111519364013786346355779285624429897885811504546578548478805473979210627197840041588440148165210167377968115878328303206513367394366602727218149138563927877609218003749640337617351673524164994852161064515705543205847044963290247295362557108796097171023228076435851784463429015310367303074231880221880518717550008135677677966103590130347241435047264693688106002340492094692884270715571147703091726282808445221150966751594185748860550960941461219613201594479731275011195948668119009065744759922519463116513363454174362922347410598800982741190448308722306612578430196006472558374598923365879122951081735796081448076416346377364895320909471017762783774219112486677860971645495752541992525403630911946672886594380111388790745453754322612134689590402672561453353614999180765005330735482766505248351504088382490281021737125947432273075173891618835497080117479975066936242603423816503567086153966692254104123945455721006462782561708233189984068640604051118996512986696689354647274709704433871647621003181794805856759071774360391347224452108207719341646162557725737052565593455719931932087697262556682562484736086567458957502597257827670639195067577541913169767966718961910379844961834538047014220767507828848987542098292878925865192219206330114858890842551084088642588971763924401091841874130476719703261795187344487453945087944027698522053231399942650486334626567240510570792031885768340707328080895334767115096519417794739286148628058301354456673672471675810121670289276200211932616886490382165191667859892006744814057844504531525266794842181382486176611720926616212887252706303215501217819953213102997120899199685510361484736824779718854907962999030210322479925595246004649842923496009230533606728503354903810277501233945071045413350285082395473187777599943859071410848456617044999089112704912975503724417752561240267781015039751079905101274244473701700668553606068056261585270997372091625566119982930386155929497434690640979352889468643857020372171933882534762506771958389247638908236848501284755598857167623816260586990410246945305136027117394581826872470741044470889940561886918159522883175115442442773844568149514582190799380522492719426283771455433993984301907136292245880227994413599653510869882138853601622772217704473750585358335680164718031019524232253630841809904222507163814155732575121484920618659784871323260852140598612994988607140219938506316272254828952226610433089402003929702794693866525680245970167782407313477060098802639494826381664699874300628358439385229165338813752487373656387645332589053250743507701743639981393079816807087965439726567219345071669923117365043514632469049497264692068415647676529239137479031105827883968659204716365168792247428740987111196491983334536978416097794435537306948713776768900176566097155975545387207549169546549454453086350599217985082988656911894568166669656357242713639733626415931385033485327244360710682567442574642227989016066249420076594042952606779096527888756642012899952209810396086184282891547909511725692422864517773302615619561430743277596733690344023337322007659641817462849263538216719900092036450631847623173097262089355672957135134745866740238951195925540147216676114964247027314768754220137471582226096870048923761086124730887308329673264219294535392924139009827468255338863835028420201462965480053804768691366862992520853311538886612649676328534966145663093408585546537683752679003590837001641038137145437203140352763931511488837729680596795081822827085042114881974922016468606407776920648495440166940619297663372073880371725106582513470851068316253154692214168768352466146274874323559632115478306332783923442223353457267882185784593228522987817891904150188710171108837971060023771703040922253681418140615863650224881618776840703324480831677120471842822604936320540804339791913212817187386384652214473063331702044520201083944076184053065891757462148379481800550507084398980053226907457518368664688449234132866770347805762942602957959503692980829952655880548360283166103248580169128186863038490044852561575081010954192694944729717818361329160966428306469530169063323519735145221574714159647355797356945727910768750671706693506308655733596503013199358201488003373174660679531883677580770066428126696210739276037683354341056493407436658556894005945170570422868992982416463046264988078544332229092347974030896187751531424207040258750777749108624788629489813780296478909980062757870614384495434479457793768426147205142022786076428812144494199883687309989929104772029993209031542682766630246214435536888110926190300980261870959150988448833532302010788234596221398777208263938192260110646889968473372088087344673923015016414881460897791933419632941415417642917791374392850277901265127544110773765289943058699610194846889726426966238951645179015058671528655542194163651630025920320137680660998634231632740455925238407443392111681151099608064709299407985972858332187987385688831838151383256527380059144467105248751793232191758963143186268928675445136868045098403072144737617791901183883198221361435980868448460139180866753005039433932295838257410430019917359726499631781464148259230442914148910466012014695828370241999778934105324681552446746570134112798413842728418362715651822939469583959001521515338881442828823829869231809495104576733637525304613031661308255733283672506002902539305196677016094126334274524206208506696873838029591302183519829780524643626161700103038596973382054916274800185312010563104594514305861883499281570714786954145617635506314846431863581442223479822665453550169864937768396943052556505578181034054381609501786721481020024761054768255364137322556781047396358748363132252943332841914773640128722656126892912705612144600786341194301534699193751558928321219861344294962384195501140350303884498302517956818676982924278596576251952973379146435636480122862859091398030582947883447256543928075804650043519093045625988985402455361021140612932825932679994182958581019132985054154946766214465672297674160764267116793163573371119738722764261734649691233990735058082179055052056942474504624274360397654120459258009338833199989918244861973058183218523804143713834385838247249574063533827412144300033257352861971683993664415905193101464346506127635920189439600934876682049599520944287647603369901392890917963199098686271506646327673510298274238304533728358032677725985093415436733438227057564222874277999260721642301574747540131318937111919062937435365466799011932792547786474258725018856151868650357827741473211264981725145194198222698454958737921961800901271610534557839182226154920053792216422256494121649088976369911153236943968378400116942150484746177613103020150616810465206709955728210045950442564880210606354984958687802897373773920852945492031136024323181883485443869145766858012750880153900896364120240792935033723065639751219793462023606001705701844771907690006756675519461265238981556657182454828916120194399624538491250689887262931093034443773704353471153144491702662156219117304078948186201045842143558308304534669923876838349450467098073980382430768905341499425120468225980558929166009177651571908807685727631262692499590819546918982118519068287214199059347675359755730576624941793527017227648022595400668522111115533485820034060458026972986575585647123289065364054110260609723197448121349385246833844858454582041937178850270746000993077688413349437583742716182302475717125920179342469338452655232203074823997051085777333413019347280236088462411539104679151432249782096819872382242847174506123432359268907619182327389563211084015824354820446016009668678827161708998662171773657071388314677138251997985934018121601329661650687998014436920411746739224496754661190926590161079164486119903435665482765781394103452166755629391719110152283119293696512540522890804555716895770878975033904182951726252479201311467286076910798213754231430724824956228333003098924630895388364394139529691155315042568436074066293659615021598648506005533595947225007142710487298200625418385135953877631100108849204262021021836209507684076661398300815960873636615146849667282754066609704661017759431336590503436584950221402264936030494394573001403940459461579303765336470667774817108398760624959632490608942209345370063601793895034481871908467443321603657957581407968383743307659772008815723682355371844246971726136440674165727299855303967796491451306867327296283024309246018865063402981383476807622343128758247666310768691576019333711085761648968365279171268787633206680676859354135453452002723159890932262124179107039647297017750859408257719084337280425280141950892733835897101423962692517447213798148299137766483813603194287479423458372469809640110266244156985679120101878665737213776987278226214248420485120404739193421509620472140001866003285567823864313931413554643800163525368930955083578061923191079281243540986421943879631074496422800710414489598723050167581152320623487528343237821632072587200596611652195362998706543771183245036422145842552570263525165006154441161814996204324019315859128580560350974535842332302824414923855774844185019690607574119962371712642594635133145587691071916018509682798149790301417704011951528801262781560265834803549787555902308790726117365609497115339920794446330878951021454784425192091882746485247477977855314448920162016907047334620918618239879187894342995981120591340489237570469044678296564720222250864286967761808623094131894203871452793420674661156126447839007108271221963660822623302176917313699740507896367643983257677460611116206247476601697742890148382245322573331861294819733117706490441718153239331139693906446015858085026501553647580414873341997651840661335754509144229331307892640900762803529935376731538255548285987478625641411863765349298844484861524036798752767014088248483107391080547697405021001197005009218756590848997321708800016347101732892789177025171819195714679355264961541646243526172813234696719858896714816208167467753734930902344234216767653629527092576639183770431854543214745340716240196645198451089680269580256892666730141425100735806152665119875679805322663545877969300088589475147084125752311368539844987724817021844107969658823967691295121323590782942236921962466313890957657884096527019144810099534952423775541035351930861142038413866749282529197519789016168610683360667362685052937795163387050284717127564192578232487489282210156884319497847680449092215009905909537660411126917953285158192951423521025679003264623775300798178125363480028292546288328100237709108484071237016641610122939101386279327573260060777424954653982708024554234372457889037133324462243365495995133109049590201934909438881770908865726877192382168704971498803861250726644353781695287976409704119623102837375553055071617753093604199968060648455004144378718434599603959015517373038759296930104609515662191235661071437627449464996686300314776217831250992519347845355815113848053423941066451264480468988245444836909150666526261891912427063706809247947101132318153913683620157263950937117655331302000228555388835824059071105282362652163354229991657504448304047381084141054175868939123977248449299534430745930027013212992467609833322745616506190707487962559999361838828584466818446136297893142525526070065015456563680842044903610955826445223639797592614795931415528442012642892136212456916481824827280811339875618401396999421661708839248340469754018338682602883055016305636640816558971291207115488301843353190556144443148608919632552618846375770958158283904707253815124197303903546266578232463169135114957085008791340637557429922042704853059905993349828757324520270487819514208862129543281934467906545978407268735909169722366467074945231696679548586196575393176995616492873345777762060510921573036769393404077321262484930104987477127162686795277694058278296728516539595386058337530061507330510100397221580392084130454775154010021748777219008064919882047291710892419535272217765515407560795903049008027713655905494359456509247525306320164194430387422910887091832859722078258635227067603959376510548464583937849448167402959964337905444997928036753282570180504326204391332147867587763521913112766116317582630272467054938057235680854605256426446121060011921627596508802787931289177042581369440972202126250111690947041807908416076765785355295191161495897759738368789752055941830077326161905155942143636564917149954447611474559180339490504574688034949584333211480921341833715405267778321275435131434611714107572960316630272651111487354327662045711833467925991830190506076003395616020850000268584280142562731524770275614326838050502849097992767939849816002368946096268935537444990217506628835325458444336921294124496284589347362360408209920992245429531523378481868319292163332698139983564250984250170324431295895581835892618615756330756739040654726354802411681544657496913296118220184109959577359512990487933412645720466592881182390937498879945241663858064942740676473470960564854559354800671015256342100528485213493538994329594446006311505334460506600817414392736567646770634260473876405836020087663881785107283574182806555389027640176025571510971763632870915899424586996017063048473727168792523791996193524445405881780154213013664134966512624475216488211972162072760150263205662409083721936608759408740217223914677026828552386145565309175570220031895953972685690831364511025750513929897644278597292452233776977775884355492877260321823438458456409383051608439737617451431573629915051801300022620651667838198788495435596938668257602664845146594659797843907035940198291386702670763964867438942957426557711660833689191436463641370912732354318199119512944698686540471907693651979692857903797525000201791134242344119929002754509789753107688928088003156671430651221674751437004963012068089284063626127930474189503466073977575265736653542522017244857381344814835774334640828736736257028165964945745840136690328080740504600512287305568153207196006062350277653432662316204183875635315355723389952200764661183840793157205766780054987287362168700477884706643089216851812012183658220299226198808146762299907541334753837237006065638071523269835427348846184336560623270812079995131342052943372811152961494822490413081855930814761408842530946112471665309840812919807162488680375482749978780684914269669391697901077596676996249969942827315887636797412906255567394732131472484870893782083694033859320979343729752830219372234656498171948011798449823144069797022699644765867571580767659761466135636800472121562236417275764074153292053993571371146196100263234446318428722286702343226200368343767647510788278073576635681220438410740601168247204904628462843731449457759312814504547265616251582678047346678427757546456209982677221126107243072271940202413716945551916989448732028438633731400878848172241981325942550487533014211647187872798835300602840477977791617103427081738657100109639341214766394084695612478530473722503280459380150665661235061234932281175808830377677031166146078707099944554607995595936802702737903789959846044562519634854881727538452752855303598675966629675613304864619671047164312819583872500413996141631605603436677936502492243057994129845766868244870109209624503483264612570188719618560864590742383301757783266021494143860800524218188995360903131928681074838865786883359152526448006458808108269007597260262684536696039253156108716745456551887947030386015425152958797482622510962455412539192176382961275676921648187965189214067089635532134455512459049636571455206809901969677632364735620421493392285162355301542228867524940881688117787238948301327916685131558468365615935020114969240274857715387072048972950863081774985996897265917000997105103302584826530780584588037469067530849927021494876757799668980969435286533373039306135259006775727562905321325982816794458756312753172102318367443775765150473851671589490936197524096710711848364815603160769768126267643051126540283753475228214049953229222372885347576951015932353055826664764415722219204118083420783285936245446799089344581055799966870094284403290383869345613828850343864442234577948964109110869712983433155719484991076871697553121246178563969740772688901106402173266295143092790309393529699372557621032620462558304509935218224149352333131305325630112240430511620415727743608649737294668589517633741327189464476472096462423663224305107243761701667810921366166238715321245819981304130189607112191833599978222664611516528700387622955471051335716720991963986941285435112485246301724105175797483501564515063134537252888259389175778369354555034017242706896813848386209454563172496028536120171123959322261274534020964274343939444226490372979641698363582942378119043482324385741663362891305482474056740847694394965304979534400841210819349960376021315979509580776528013982486170822919080821420804921565424246117968107460454862442932686227866504145958248275812717282126050484108818470909774324569977608945314121140014252896450885455479648463808171845230030571359583532812974356092437883266475255317854942848913494597515808342674345233216628979041601272730187372377124060220905409045620247732392628926200722848700118106399415532226158968416553739905402650127153627787105645996854717825289392483281521739785047632269586586887207385490928007270878708899936653968996219351113563048569038483976330658986609695281132768569428882614612146218479744440230313124716167830050961351879856522639498066953051788880013800965669008104270267398652775744247420035270669281873386491918654664192167693852203256924209875568998404790913924183020450505031326732324756798552250737478472700703916844943898777487817899846184335561233228827407535888091834905085990673641704493228287771585165276133040474825917272780866005116157918982393352786462935019174851611012583410013528544175848674709664606183735769351437902117740156304863661991126054310449501400907658813698768785651495353622062701571309579566202967045872291423629660805570328306086295300623380398349130482468945962221317938101042388507108181467420401570082549453521627854905357366814948757490541604932529140491636012454934594309566108599540022324096314940966372486656492189810480592530362387723187787271327484704402277849426525728715046281718858093957212433813291985583522586168859138992661244809588450516200036319858332250324439054550606656889830483736762480496955132844007763276230877686247772235254905254918998341144327822884651122798281286679472658773528278749222196688434050701201371051241649369114769335289312343088571056017379125790426004823474972682416688922254404022183483555649817191718368117216908415877967747124263808137700680482536555905456197291987688163560722665349504527679963090667528037747766407274370264875198382122495604293466617646294123183480109994579652976042981149981578325875861612715459091417718045803775727826995671276557172776754127277590210521101867534338181536757338475364803004768101137777144548980364850635754003141815619968393526527785635510574017325859237356531792447110431257771850396320920897025213256607885594801395785065577031666722100895849178597231922811294751899235010142207571355654551216127674073419018916990462315787843339252453765597769813459329790146438968677866482353965628242361747471796387855148833169470931999839020444095869826530334376715812588468145120970966771453376343289749477495159311034467792235681050769880328752624825065274100759945979312331472167797665895902768084887346036521757813412228825452360649128998706319189547536593117316203418771373848392160022275209174434716073993965234441582641609103137539328531222541156304856077002040797615449473079322621784151052404753512927374363300636076722614983376208328987601309209683334233381786618214580747178350074191546638157516963910301009939186735501020331798001027741001068015880466490116608280855235617951772801367952496513490894156060847969701578105013330186960781925928459260296478927350755140688525031014073327347807473462172402989135157422959076884307304844176179767838909557736304497715957241396617067200066207865744970775695534127708556353985539488424947564693640465173894036207760897719250481283753577816301542265142006849445526226092230083576849212349683479454402113550482877189720972971188237532376499461369181606388461058071653797035094154493644385450903231732466831788106932569803504717047286350711992604099074895051903127142338824587394349022429345062251986642481859396233237190773832936118341253400347783708966898672081017312108085922699061874375857003677771860184078990363521688713123969435041385955386395157427557391195385472587815580702632463876038936661580478137065086852382690840269497444577432371783423055843055807894554271150758239006904134007416329282078088782376244201237302362561925601063985277741896151234982312697703960953443810448359223261496534126486401718219072976536218782477995514238046470469285082901575921421279129157824359728667034151352119369587630395981658346293111930495564203433165944658597770638673920035999708322250325436815053612076883618532064252380559647691447473127756561079196313638504334775229783633725927265126658719922789044732792669745455273827380148096768906899825795903069658815959563264079649669619263826588804014373130925668193685189222066664419055816559924496184780379620288946902353191055838080298657954062515683461386164035872845606391760907693598158817939445710901808862314394583123998112555812552003149834144656563817323916811299872177500418660475119317998426577258787205813212282535544657301731751026034584543499850355013950248790525591800321037384081952487421940301281178699870990899134326527481714026778172366191502774780118132066253786444138686410915264140987162877052432767263496153889632157818749136449518382180298640022254292244502441794295095848667652547503035848667600322087934559309838480696913585472980413625921765165092990021356341258174931659232722443303967520753687060345541733631464890176456133130454552368299612859335644426557938668075513743003333592370551261451032122186495402728230212357323051042745409794859153946134405801748824079410717042026172951337275139706470945635531502269232593535392791146364298989851588446906254612039610593095327781911113928362015033027616700542386472712511791708593516575422956649446253204301940931922455535702752938182859512087655866728385495530987406172558530738053416256256181540714552900492375378760463536288844999611474631931162080957617010922431721887203194371330324918062405459275739835746756080834323510785216713873418728927759267377011304035336819522987644296270379739655601805248722634310032340075561399391467214422992389129915856511976466399898020493781904330705111997248426183234529944140719685655468236666427586024689265644849535949669535557796000910327035701221349227271432065817933718903702835349877290169725913881716544292727935365303484436002249893538777264512284964377883267568318230334273753579880766781779505913364561048642076218907593199967907249980056639241657084907382692273854719379678777979007614935471351523920515954176526716440707478978498920940321009978856674219459452019648923896255709414515482587582632661802246581209743420318895077885572108798318618594553820237967845322968233216907484931476657344164723406669724856075424120007786234059478524722656464935170037490781599330723297307209880427153168766470846586257698748334201234066258229662380123001836129773074705305846228951773473473972027875734134022488089052190142055553183227216020372999142868161924095837271123383426788773334947707838912646266917171903482204558832353527615228063535641390958392812322261978418282644218148089138200039100674571647896442423353872905186056116134220114244221329511032982190696961101294296330574677054698795938425605101311376347018759827086323121617446723204963558017874457358461280241120383070281886641655714653601537057815845622043664210478275183638295503068338086978978778501629711989824104518829076023015491199489738723144191503002456523968296687982390038228916038129268187099761932246244834760809830580479891585837277160902616541105961797694304799167575644413930770851283589554138952623804390115362536395788362272234656135038096907886017177996095347316081366259026567190742460795258128049623226989489725660075014815139864450601556748736196555163362018532323637766136626834441030808839085062505993152990306628524932330368782964369088419716191119276957105683961302032981821346291694518078442428660924326720697727879502661331151141656148908004745126086487023654092862445399322596990968756561528921640284708931356918021606704057982186313906431130602759707761139032457621012976489094698870714274234364998240905093720022633965475311450519536400525214888771811093975816082264256032098423611742649796020060636833308845601125695807914185916198782972954753572776991757088148158956743415994145212336872973375891303442606573447925497478307056547358730866069151247821532559289206036301628199857485082103852135750489987299079215168487468554138840326337727193664072421237683073015207700814756381059423762148291568926082864821967904356913135292850512327913827115278542736114979696733293610629014745146460620219412525746344580434119556375193031419187176746655495261103298733716190646003489208667068656663319271527255741184552981727671833954965257807339052687045587343580078290020042552150197014852964908282917224369775387439692215112649666823066583399145915570996673694439090403274595126425100350202837416421485270317348603381769565061406830311534953160019924563934164582106904765236712508819173675678765375088987519875204694286387389239361697069878792815398619743261822786679572298898884493736899118015800669360359282419238459416539666544590710231003175637954567132787194377458667860681109141365672712229030937368417181633274578513348309134947945747912780251319011489257323101352158357663433424822315252748768955431933902805800808200923776308399387792657547500888064757288191436538634934131832307099656446987857856492943494424424082680182489047436903553973826519219759083333395466370207505216966858763637651271804359924594418493426002747870888463106187282212067758244610489070427892120675754274293189477693556409208078134670540111633499619894640399386616765375525183313586502263603964717560233410916683197221774980486119750062340733933708197463437262125582192130592297204627564741300957696248869282204688424578510455835791300517020825190802982990052880013984606100163998133382020753327399427126235519837919312721118607854868865253727550794390202807583041162826921524891370503352736353381203617166148075677730622990165251815886318610456023144861514015291493003244247509626388207102586520892713531594550439344571166078366868870704623239533103724286249228439765317448190461816873051366632861378500371281837352337578086690570466919147916491929676529914435667442025488961730141090977325927711730708723338106715437814001357973814601842356530617710773648849588164424058401002993466634565781943818296853333567886894729407606057855083135492715741771447113968800077534401374215315049467299291803270062017653505789488979546783169872319729860166141845832007799206945764668204784057546767677167215905919001963041366290453709293461562535662328253585777024719343229514361314684938574087105839206425092107425135484391927363567185432154543293152484175504636660824178755335459729050394374501399681690740380187862856690717246884542837388721972016328137813459529878346753728592815641021009475626723458468740667399348199733156319916675694250148008722492887327755448921041316676950251281852534760521304916110123440872620858473138464395578460284878657198980178571260498678226839600059869126139991443218303577650910458885830920867931391490618937142243655309104745256961856782011909989673455058032744534510396605377685020554404788543034903203952266350612546888934586887129515462865469472724551761000270627353534553683810599892492627635131399996120599456461791715161546477060869355408212131555781051069252649797417277103847645681011323013336414974306183136002562418309037921126875170012386895199227891697935120741689391037138850835746017240164334860762616779543838332204255374488691992343506790995193436090562462576856979126840686668109618489712790527957933049686881278484576447095285205640996681631962837891812975018537220915476526543011210730172144391743121126552965710702537615329672768808463429856009564826380183811270407304561372850073530066535100081375516171350445078637899324711227039623868489134529065325011391791979936330968107946628921946404754251294149224188886909379785451314583345917344220182354463395019871346889932103665900464251937183482087365766769124193965320958330729424359285663908369064953958083118679675377374317013382032532087063825899567842542152998601920554889399732414066355568060517015918354808010971319023592708086689801165700823398270010369382629852540043227957904851411594567586776688628719095742801032782764944360810284807847951255357081402729718538410820784541475805561687190191787012073543324501867324340930131385141291537867050381695636439995600694938860599102859138881747706324094804060081145987649852258809137618057134493824004608461128405408181205951555900972797650825063513925404394150198434072897426107612259662494420141725989474522088682319798752222779998416768840751751889209291502007358283310722821082070050715932036649559725253650230399341999470855362791987329931819355323506334331225718928497740563049041761288828179722767896961222905300897584286602970366874020824456760016580741762262379697317207703313555088048420915375700066845166429429744307079562970700072804489328970075599091458499137076469661139541149884307483083604283124847457470777930128976621207987763019585985515697391553909554591242573412801454798765543400820078370804867403145787412302394879252620856918681399002392761481464859840729656383211239699866812142212175648628978020912893114616028482359470931375447400888619547562799942459507070492512280862136123087348672273530170436181249746229038726044981063634210374060996080389808469554404034468127678100010248181805713456826934419223824785439550268379035367707789651576121743034807556155688459114619821956666357412868249565647516854976202330699093181250257126743716652137066947258655040665020295996831808937323177567508630941643266775250101036943587503248255911213503663191407310846491161226942195553784581625521783702095111928411545582107938195558129533950369840564994940706006064145777944311307626109910560531652946478026704330620157573867185860393174238046799708149944645235274944013670481047166180741154803168991479460208201305121863823533657160419182970170842006699245102479251936605305524920797903445175577277749314535944994592465770408976480115457657840457795618270911323009328435720651361503589086719284783773406333758224098294006529506266553531291408185891342656644251504296855515881717002047371222374799275698538843259725932954032864872407242551108913781481705709906966834962574590459173661232975580896217262276315593177729099436432809318707812369152624373891309454843393707174844127914447136204687341965320283382909358215683215166816124787818810984852807244302167197806467444575984069040292054889958812044484232373732354095214441656916638303495136206297290378229797106862096361525343547754093805574826803726795601523732564281092046211771261188300229374643637418037392857182566331975093277815606228436846385586508180064215066111447359318369651169175709663688591800572391970919045517512272142865412495839114179251636257154937533552356762985390638257033467021852335455394057005265815089102247878906582526576960027994630556599513128011011062210044021619006113832910139139454482022559534063247929324452631665540197065138243052421457207138371445162082995886000355700006956066171796178182746509891096662960767509127196865801413268781675993480653992177764475675456284786683869312740416084073020174380782250164637369940061460598124187682695069218624852161308775022130484751778871835630925531403279709667419238127476495909420879497287487741424092924925768331324571215531371974520477297790267340464287994317320305758376501556626933854125872172475228398542491270503887689971228915249420668824217531976297947070507411918544455114162949940451816735341966392360787635024713288090604307287250524979438871198113109188771096529503249877832597470312166027645061808434961082846669459945099937209469359860613017873923665085854532071415330899107900174273613347651993053661800774476726049201981727963510969098999292508959115134691552912169580977766742367491349420816818012708550168943014019296069710701498906410692059539900864075714525767695242256094932316276998232443806169208515277743988245640626457328761816747872656649372147666994494854477840443720450658183074948187824513231588872512178547744941906740574509727198147989548468236500026732461380022417073726310631426945020311286847227303084858924527894410053135105242792445560853948895323470792600750398033675733812182377169598424127265436035636791484306168030933722265154459461321098642342321514436827524221314942951220953303714206060160036941448221191637492130821911398893758961829177959059537360283834911998428217639270571261157541541268226106326310834279739454093918200237162110949395040107470494065168457882405624941905424773120636559776060176882912072806501036099427215554635159630210897645036142223711806053996665398025757857001136543496159917040053802404037991152201490136319773817597251772998000446023864357340852841989559223367572735093955588840150432725278272969915158996485759356055751745825008504979706766573187615390036222777049659035197649746575481546441166853937782190605324451995061144932129616405017559769456547244806518135714817449760869870824995147419146645022716572752445045393199481119858669771543602447254358544992261566888932411010076667966198735794195701769680745175251366309099560412963264495471074612111696432501798602073128632320780236969663867969338299772010659096560687514821022633287085623893497980089696209120929169681674537129247058383011573753118701182602083573833009929843489787723685215564773899699564981989866398573374241614032476832311415441390981031846397903987370136162943578967431524319826677676971002483392693316649648264562058901666221203690163662666975184763708444827408161428995785707961526657434858493568985463175285942624548737974878884668497799593877832579945040844726700325453377332610571273362129317004567577009467348847985214713668790473490104714220325176091131741261567240505749908694773403373203055188211976858606119989988295668499639126996825375638067577895589238854711648794560261054042681390233564375185865656913396858119320909959856388567119819071376043039379273991353229077729845700491708522275584787303007109288189207679337770283446420622691873610728663992356122207515097388658243601794340499213257724792132710418626796025400466726323767737902459810114128747270900426493702328316939137297438282206237393130990945668272555037691464584888107370601120288478130079810253462652092579038004754885246586126834582576590500175113298131907235830603694623996266669141263646958051350766090268653482862327824521460742455032707104009701022637811145686528851347213857466792003484038281823188653945880660096191177103965241422510033607256379152878389614538603666008224804191166727571249367480689156500944963466300480793735020665379269803910177711744902874161060867515095890589217736470075981858213407025758292669160782121015042623821496071406885606733029561170545678949660078923382337922615085793890262915438350175320798528377755645468264625164738232078372817245398065295921098742543030756482613504763556580091733438114279747615523469425981028642945620676039524658122224924772906041145121619867148447774204517954931572250899979483553113659772149122844805453717157546868521034800959540783827153194603656425723338050917494710374471169303389791798289833829596562159500483076660668883159567839509536091346032081670927010390675961583868818018925121892228229410534107521658886106835328584330760091961457631695931259329058695274724195141431866511098502035322189745278880793337168456282156091856752507220326488030380687363784185234659792535279265718720173153387002127303785837598791411680763699891241919021035421993965125359357984881204662623783965944823417299766861200386816494125047692911581863874865940370193613635842294624291374820646905589066958166692986909693217810436951352663255086332143810008140120269332530803197316342630882548142376043091972440446164709261876554758674014814785148555739654611474806713082295425597092633976158759294252649479684747550886700533925587526369260585003739440175419756484684416760210249563378776341546543928643145112497870941130457103715826091838383104042568323304115550937777662905835892852643659217396275067173613263440039896176764435298552197184865450511072751089945462276036665549069880589011246707119147529408464776075052904322903450243859194050503854896288896791714961079158148597957826634467005659305852722764194613132038118313427112097390696298905557030918132215915700512041328638615403676641942922771387766907412709588198315708718354715327613676498243919749956245408664942615025596708690920073891718433220963209935486133748808895864092896349584494007362094954095230571093258807928313013330016014308032958596462254662295790166685107892444445676809951840548827724007215903803421440335077036662941391592462090428718051323514688561023451435598965678058277588606869105733053770241137559772866147192405277899426698901350218777767972800017177012850885538483752516965110626436171613621144125432136356754687818935254485147649863734259052231053343892062871587086167435510949606028135006700914790328232251726000749214203292519431118988962637167861723597566176856191806347659483727237637063005725611660790275148652889102829046543873462032572525589404696343416270284036622447804268445751697585950161691885408548969326760235377074012699535691863000888186572688820314269445587753666506767741085510054778684563934910681735432799543178855088316716729636036812667435341167667021111002331429853228166716864212209558532173303238753419513202497410637678164450726461811072604120389731117045941441582152915105909640099721989923736172788759648529605415922789966144844305063500257312631076115510966952403486338869648631327942465863907348299702911757978659303137888708609262704917994554599323125776867634196713479794416014106937904883832647077298608492374087189002188749429861982369192885284432213966798422076792418645989220196220153911028419873251398952659139446108955714906540853678952183786295408686934579317765090682632814168079487457934976890649606062507340530378559590619091833186897177611081513059284543662208357658406767071565240036277702692431036649232949779267431078340222721900462266842904783523529914897688961452584727113552717647511250373851916379743844477409315093724786186283800901287035417399835842344010943198102682408973333943764659299290811314462485653377005141094054224631576676275159446848794807456657039947748506096371035177832690099420675493228200924918565736774427476599311169203900875115089424804146938665649332305441260463230407933598778796929130462569188763433741153173961055340742091027577764103912072366181080816818418089799064324389281065689064359990662238124316274238323110413146350281776194844786982306745881327320910270906450733938639693721690216967733822382402519884364640455961378550503805360415242614508165072624656691152265560472842017288640283117749243693177307783342773554854740748541546861978756399365554438177851839367109606096665980447698041812488142105494149234334877179320225309624361818683731525620229643838141857374800335565832862712190972451684651995840548992849195969670049041420846737569391122550174518757689265036282593489681100278108167379097355943264202631239184509780889441857855021352792656992520657472993765792392923508348577457472247043814071359170022188588330614308171144098054068737321242414445259313353351138404422834943054480746245504225157597318909619244822088723847464921086403536297122121320834360357226906283195625370873656841403965519013443194233431101548984733541061480757334003482551665054239975476862395117381308634136426593458091298179835350007961907743360768561817637730086765454047221677581033799674883039701768637162767146386389876071671275558036151030982162155404003599230413191816700122733986058240825747719670993540244794580353959980185565085454468713326884910302315076951855106548172746839709861167168658008423110138756881092715120810478642454731484218354337877864711701334491162346265388233294156996231802211012683884609197275372586643942702462751725561293409837903062849428692304800723134051663071356409295243808396576487101426224733822828690810921440571898714476819429088129785058117327081548123045025903649621702107124490639497009740106903194788343736579997554729253914094987691136546244367219317922222059601505839791865092854818663341713188069996215095385163962514365735510767977272468749443801135036706104719399509269664060248455239116265293018493188506479019048524915807759550821665448545032732606130413602166693364921058410195175303022924916234739977767756933276560247052610612442599592537131406146314020835422021029656781235755674241505196314352284111779495130666908875321723392617169029434718813666826106540948262318945332200830326147672005099969921374546943893071061940433007809726580499011145232427153010322764890870236337385241217594630724097588920111130850627419947395513797845605310840708502682239220182391252463175009455515701245257340406122599608212155571288087112427500275972935908530758824258750379418440369380226833263166188470551030261558191410072453954620822838504126179971798125982096209736626987078999666930544365231394415076916325411292040447903946771073128748068382145513471063939089955767989091935869579067032577781088896218173361758523907096768168929421318186279703642782064598730560135411348099158857744657787381001917563898099479561461058846546344588680845245741948114242015676617951650755910769427239696254950246288499615865689987345686693301083776230957364906086166184192714306603969447008599197873945812548156352690757973878826618078252694991506725257995507755638145125454039281732511868692589708186436216529306183689187955788507840746764993744909962513979410207191603748069161098153725852074444803279154522199888665265008899341036824223209421173284622739626516090830634200053074075514852633042121972561410883540302583100448624668581274561218397057511261632885783682410754600708228399854829875298178616216977093813361891082197005918391009898070179871640018478419529351649146651728262713720255451204151433401380606351137886985601553987156961245674973148226096646338570920297848759335327290060200664840743559576015130939011383456681612328103332882096752831731828893203623392350997487974422362168725971781863996568175825522474838778766393140144983854020118085440257667428887021816542726031967877590156503649673230709632255569195392672136023498355070188969623764942963544877840076300673961023290619048676680742712346298689832307862473112224239778014819431630885951577388543161288829143451946113393172134573396937865730140625145757214763303240647214730537526946252527735895244787759781007197648925618137166990494774788751380446160557866795902110846873781826620201860689034036962877453969769719505004327924138101815724761056840189149053889442804708095649969034968034655409091111303764628087276544332609025541571196622015249164793502619582545838530813066859878654803580898206302698608526141451707397958650588485285617935776107433781062981270479504583331504268474145900903728998134636452371004033685077172778083057011296141613731357399524738769745998434548870421254438593265229892820715028807545388181817357723838027724565961448350040966466125740795625137602891147312765125937008110744766007349987354297580960261358067843162200539924810498733825230104828112399911591729400068730335631865904684038270314639885760136994641291635267849842672136714894599350806975934941863877887098855387547793940216010659246948811884214145491358146868717570311658512053605369891118509080609595506497978397599980509807247846246842049008800169103840309607810024336166896941842024979078149549605868094513767417885685702844757140773752153759084341927262056076298922339953594657170685930847593410131636716372543254990703333325010870082496094726966678199831193370124575369407126201046048855312417557277335824750433957690513538998719784784169801225069455811428210452631964083518239828682180199987476028340848782643642641083839514727596616313794702263567625269432873170085658283618230969504448613833941213606870020513958540626642406340079407989282291650560861044725914777693542042051910247108719684319411075453391609714014081821643034283070787287791504107849789515604963473858189834182194768001382940574519175133026193594532871738957531012144795050299624165207083398736013118480840038857999936420391463939282254008135266828701250362261617187254495431092067283494986171803092180672948962205007096522735157082009806083871283817064921341493110647279595267575652317571283015012778138881616973546286047472572326335029256735237774119503423492458771425344621099853233839301147266899364317546485517615738477933824500955633880602898489973260994628842150348725546591549128639410344002489089615968164916635114472963121010739720357581359684844628443629495795736569065410971304739863022611533942942029058819863765851529634768031822107809425279759769038515105117707663501182289742404527173290519362558363258717170173143041492584283128839941816807547275172240479323375536073496578402329717651886857442742811431382643775404065562962148879729986935963345590670106533155782399822762163793593401265085596580242305766385474783214862398640165022280044707012519091615630029796185597528918379134319834585619582018618405313842989145254150874452496117271443394586989479539310266868309189336589052446217176362659780761771887923437675757518895791982221416856532869871416575950357659367015311112700447830970605408457541647294075355982507088914379946650557534023118743482683142235175753519862544644014194724513859293657969956465917314954886589508662701449581416898396803718632971060814362340398428484855224458973914816133035606020016724888953812810695588209670535668401417474678327379445003125627320790904969996424953637424090710568722667213215479281217984062418509573924661036974990950574713508129897616401571860812483525542450779115638793611550302089487540198201702136775478422976632574512280775129763805134204402176887816582803689602146478035749451384098701079518518565046669428853488885965964771304204976286575430916071980718121016688321513362505963947303211779571616244278764614714231046751190479439800205859939328612223071179221790502144983569518302913801842041672413885554480676889190934214183093230185944603599324738262250450929121044926281885841246131089770195215768299064071710279891534268767116648495396113608260365007028278273999106101566870470468196265094942942805635291271540527739353085400410403553401348350798635474144750728949066653405875756303773330526331421730929117335998429678815652823543622387313181200299543580862997773813785746989520296130840419701046395371269636971340662027713582148571825388601188614284850758271878353811597182347049211189574794621018056291293729173384647428599210982359600336965518511542199555010272334894447726282395911563428356385319288743807210626911861798339660711302656821680449037852284634805226143064906606358328852318595974304258811524468708685774012679001456483946736666052266318520089156393240190235372433072158692327729366220277187060401346408995685512109550579757647219843334621271826405347935643184503644154773886723971789719243339040932722352396071863892158818666907222907620592782583287053925059594537134745269843357559896234098689887493446174666597402813319436696882824187703553737234271886579104011355966382552872365606788089423875177944234260847384210829628338565484680001836760350754511921847699487139816314096344595797666805055526325576324530811352485355844827029713161787804703082289116531131527969753096844755937119526593692497229860634341161697276913011726328809589451768216177026057209910638857194531233943875446356681882783772132409355854917342661153580302987468583901068102382316210292585106003217286368706148147275058167555044633848894169749332802191512252805034319047261877758310578579031039984075897804976560268158362405232527514622077636265227976385820271686281573013823195273568832951054068422367969723313852851813357368085334558303323474858877256450740672306421290446946893129907964761068557574776562820406687387965587256751856634691745356260349753987590370406937094422519681764791253740260078152140967349625711152524397597827103748517658122308782190721454878937863585341459873977683356622817562768114019830929877629284649495750476428740088311764854417663809777255584323941933841575809743196179207465888907894865072900127836659177790314347934150421371184665486924902140021970661378557682727822849552937568181686826796954777241890817672436169928273893246423407100391652028091227153251355198614500162557203221426308705694783759721487674675794049505569291638444784130920618845814681146474328802004048878687422400005266780925839535909991063393084078322146855659973562545297514751546416713789105241077019325482484701191227169373882646385111841537061177228627659028100398341961124524922945612575095377826030816142205744940815325561931902712831405415740870605639467474167770846107334574535870186922330757113598072890954204015933043605329423181043924170810742354850412108335426926692575092104484075882197759795357886042955846328568967901909394026507483287583082151787240566831549988242536374603632615967348170463779710058292755142968987877655562745474364991143304989220750544443726717717283447385484440075372314019265381643880969015250281583435257694883339146971022397410943174559914792636433122736552920693641958888911471883447750631575536513079890690275556062181652819588337256537408781409244974449429748189429965439163993452962596105333828171218680079135026986051754447354137548068024573827965957694690344513205711738815681131185490702310984483570399558424209870670776859766347946706345191296704519693262716577266538480162486320670227578392670933195137767678858228109990951651238541476734642208775623973236869725510038029891528590125142427177057913195201170111632159121566885286642245753432148005022057036794271812588978010591384238880714328505409991186018020071681925767188933124505082721914254766342817255020289083373978766462601345413206110336794551365311305410599426956291899178991891195114566601093872121628888530998928717027781882531044403595606137413388851407028285957061736099435867850072893948007680941500163543406136610717602810841001893584413443391110822094719512518825034974576826426448541807769288644081745355644754271960392622183349849814447468492007071971360679811256113049014971532838127897516397440786869506681625267494689951408898407854764560474532867443347627874548292829351930488178648297781125623472033280109460501947383058308506963252693546095738526632117399613714096161825379213342546804961443766946584685051901501577203352921181576688932010980336953655245861800924600540921553049592238798960071306589187557638674020828757278638004595264403725817018388387279171172581274877942897403449690858910935529584359237872585991754817922240816869901673485590125008518297618828527220275921470654039701064277593610678227207040736395985633284153067496825634937220435346597817415062201541037941703342052911513519048672333757097811683990639058559193195076129479024640820964522561602412920992013915223900689027302466232127921083225885033251299641815516518096424257780300896684400276481306936033368241685497162451726471661736613137084345323056935540118674989218651204969212486789708340708583382181816314825864495465195343184112155186307729968043513538958461664558824520626451328594504534902714665332244894648955973774693376211123169348969678952670358170806358643027181131838749341958961646826486900432858564139904970508193473726720769901520778212017551858474605200024123731944149757864510733598125988318741613430183841089711132096500804966299804698651602093023923467954282313774987011198496865311947501025026756934804881142144272189296372876819144594438260541804139793453040414613505524117757988800272048404864812093237819521321332623150567770900440157186720581595185502189229740939351432556834978008734737450425508548968613196582902203496060985351084088927693242047211473612940063811810813183339431221412869517032894361833371625733523121906940471417716646666093932541982966637727069652577961565965276556296329337540320317561464346861624805546861585158371997045664579823469956599856270587368194385554870669975960202003566599536799632428487251173930384420944304235324576038777883728972007783871821387942813900293546409057939097546992462915200651409743490210058762966156661181458595619923898897756681219968276313132076353047380088843673183944635069239197496302074037308542054000355202774390770262867605494769473149890721158458301896732502400888228264357286817146882791071569920127924190889191057314988132900599267207367004415677921789602717056245235020917272726250652755049265296378522841982891702450048831051803294606707555943336532237991300075131001277442963753947513576036442032888721682415000645095084685468794334115324096566964089197659117377142538720963528411056362322213306493023635423450860709531830229368273066823716594645350625669876140510748319942553218079476223805487860409731717654726710284386402840060584699995169955113762550004884954301127754412791721341186455853743969058314352895440479590751673518305557330165963676121475183954805067604704980196895045390137199176186548842434521283199694866716392862723266100469162836608813441615181037368702829131791299619702818760431941062872665788132303381040986974039946725219622532970972120298956553526234953590379917743234547471349651436225330802439526515721208115124418090272368093992854728897927924056220550207197324402110004629951903704857651669525727916342766785695753457569859369994823464159618142642729854951291226797435343253609414978506623632402799699009465928028297686599839921643367375768774895169923912002989253500935760835947497626397930109941590656276933647683737176057949971975657636711760581960910003305980847576390061019408819506057357643430116717317880535236294324047155596679280786563479913875335489072283894543587432116537919637985698524981957403223612923636632203979621149954614798877780432289942311569720386621411735663728940774540799279723764289813545178529894841091534305095310987108109462784120976238965218618710474137315021892204146256837965091379640588306530668888111397020015485192925605900476180097139224690784516544594059461139051916263006276061949890529557725188252799012029921645482496298546300886484764570304364156253985747010563951255479063487943971597816282116282953232277600427244184073585264525776625341874140651498013837508400034213347997169732724003005193133254229328346659454561707253629694267978218097080440802559182241496406548849729538366785063779942450582148276999569186227428620012704938975947841403779422348964812309276344330229601264644627880679613926874886730119146805010562593260867268020619486436100061426686321199161890118864072472794660510276641448066210919955310117525578149156292678736008548665450900387014932977551446284138843349375128300788079488735013398800044818761375570775282688878410647034756918637605057655747740442059260021932375996542884510910020476745536787074362631326519963322616646000698880422713524215033944836922219139232071634837663993700059176124256511635005635397187252693759085116566073266728880613742195976220044906437788152249456882953740674754051711934274926980668645718730286290665132298078464105763509309191548917899214165858852896862772947272545227809034656566382041573238906091167615282796228332055571033259626720120676263663141823462765282196851938255158695949020859044364629945246230995986845098538600031501619040295615681416603732346140560480136773325422759263789262180162827911599546224749422636679032123449693750630432067564763932564577467009976058498850849213824026657438489823010573085736909249360760796527451278042762972895528035289996278030998494134865437798177370941288054839140983002836887664942962836948005395716037592988505743088100360529256759785541783482353839250946730194055785512188827940664796958560640701600096670732749690016047430406236881942461410146709040252754884916141735247335720720425920423933411244382591845392466696546411272391268027898626481705131324688268333330151372116654581276409270808037291810991140918360494313726688667873588894445551830956258251475827312687812164649786914469870857439945247935646736940283612664662992300631400169392038037726072955544280860039199303381177034996364837499802146938623881260770450617088514531510312488621197799426779980418972116665068973256539689536521346297768203280758736642084809217735927673749565035691532686668893102502007726020311258434280990672122055227573340719416780802943388273705678139225191993928693515576846432993832642035275477542205482275978784746142321324737463690538716133606975749281268865397263009343844320795492142834819534022056262196264893593397931815005662084214125750484815654280545008392008303003869314354519904743132301740180805073881866267079161075009677289471757346144040487696696255276076725726071903683234959551704647930388317770707121490916631179863452180511472690706257733757525321045106707210094418550928661922116410040954462192089767067288201469511613628322678381617701757877877390282279811149657578669867641014511806766442324643447793056985299671823449085979936213694752208766285695265581169137043957963761855625072943220600203470218757256568022090145964834910934283247588942604732803446692055457031823953375551080526688837540784242741113443799373908276398520987759754158906813338382841638359824324301657820336664843748068118869559855824929424469864038008158611227003439033928317537457414118603967136984897064268632614761984868458402401521437136727190241499238966932542623349613034075736842334926215855554868084306914696930564979439985738892305016374174583083634281654592932484244726465603599403592481056107436819266541704899322314558001396932331256947364319872655096866223662219643901165852523140377237549827943739323078933932951573109444616466650200829616194585944448460043303050636662216932946291426369241771604268469789462391383757676534128086325026587074720232762440397317815102235436995912689383569004056967280677946731353719354750434592701860360874825370145981439856525900157048654462371458329469714452149657662948178815359947492886725534355392251863662921335483223271866479115432605345250066225384624103672758397981103793746917836578651349111771279730578521263935189301437520442960711750458989818972534318796190706144821005037457749249770411863864112497542395647275451668593937429934932352669840379797906713346574991900964096367086825755331855276469654488121521061853220988090054375231204449930171201484423886982421798184122984058690521188737161208859291140533350378119972917753048346050791280272828185751859041986816115512664145895344881696304190793321469340392873576017098464780469384245508501321852219434250004646937677156936233189023673573076652182862663531932660382051339699148871120446413530481147928041777402206349109341611923894493285092465600151708840159431517819275570547518988565412577840734172496773969597207633070031899136859445666479814408791777418037896438898378711476938715194709352443442758419437655795322872611338790949132234137726364107432606171203958225459426388314412605442265735395162338072951171342694485293807410063828282809443243298603756332481671637223855184830114660637320407934166030997001478883239177570922249770028855057071497906623521480749061432978646618144175806454651244549485011604634392098588451611442217678765347576008254700419413402178089376639613421473399782592106572316630427406298447566880693943495379089003154100801275792269691585968798468351967512654719327576084566846960572568072858707567205255381109681412260741811781079863868730118805853273685649212676936953708316754979430204963608721338742282696695968256347874719481150097613420926261547509721921622357231457401870069644449524268608485524487038513738837985643046183744839203546520406464868238864313562746331387316711153116347658344821752031858298436884384932050419814556413183370592787044112834952731866795456974786820598121953193299691479394960297454618367415753575964335629512296831606461584052476766732619017394472477340395992728872808977337774678858431154242714272758045043397859838633552400032271675147344465439449045371047878756468445407517953368545721159086982943708590402673405714247195804626877576213624853248176625604075353447375108806387541213765540228823580821967924948128400060623214859065469871602570324962090091316274737083083796712728062513827566161730506379314596881810823470757014783688072906747859283568611721255606494792789640965950147314011349926152546032001232697725759437633706718981200817182723580919754264505621344791735756151988113237191445722541792795876466977722771456596105860654876730192152411929740257298376197639487717502658083608196212116582524784785791076245971727095480913892159685625345489113148639815672747865351923333908702352292166836550234748462459295356777652108330362195894628520483942389160012612454851445824181810189074087501027598086226460448932213255815474145619376762840026348963110205333529819546130324498887816180057351836758547966866975552968711893182540403520339159964136680444137806405595412107040434305861902492872633928410126505488456029170049266447126969431314721886850897715382372089931834695498285854622358496791262324270875866213552077539182807802829350495079178508244564017720433237752205205087920136392387553051941599227145145851545810764152261267471115214050925193399701854964120046830741532759580910231324711837136465937938069555113471142958226144357307536149390843583875315676142516396688903271175773919712967935076446483382712863024773650476433456489627061411544338986718521599858212399879385417418050990920788327441078200467391237085282875333148766108300968671433681812505015697479867943662553593506876224847744309790844131055300210181579776132475786989031873758695040999115761292432781290743701506745444967333098434301585788739860205654325394952616625819749918978863175920995936822110647138633376021940369411634744391029998464562222942116436046916786906672777042386692724785412860508366820358783822327720246065064438641864027418149580394265605175835035284836105753358719313846143869614557893130031653624799720111853270548184696551425030852001468423579224903061091108802158681171010662918478860199223875033461542928440862542900958938006267748437605160632683863813643037487812781332303955661057490466069417343702005657233876844905837822014744120650994997964137670943907299311123148258249250343598519113690341573034288536842130426271191776810096802238998632577529226899215953063502867883328468687718907211187434391731835415112435418292803641812590665871312114985511434159489477313165917149352886635287327634856113530644899427117877813741794614102320770557152441476481988548047327890107087253958471026211912491289818593074587150007255500432909384628212087515615030658117537200709016361424024588125663318284576874723631586031926448349397421656389237478365570496069422859523189932876308862435145530839890814159793115375544347070189644087226415275440193617962019603146633125184223115989369674600482818747458020189805967489314116228950165965889274020527841981916237789652111000524626192683806947407076056586872313198888744683934533520316141767183057712101574000270830368409068977820591883913115552826504270799043666990873667349152650837713459028493016729697262196718989968276511155040297977783232681672774694050803728708949246228983613843585882819636166380815454142692968235011109189136441659184955415942322296980725466901689016655154167435489753601481588501353949711352171727236933228622804131688377457941495549357870151073919193250835394041165431130539748009797119457070132065590493301650438228106591113542945276776432851898353094956764676941127780182222501799862222530134605071960722303566401116937097604398631569845914972763419286811385686961967808572106608261341510680825460336958123862112769854336111419080724226915329386425966145003103187414845324338091667239777320355856381030891152857255432776611585936019912230543996258852857259211576002874571969563840718323656898191718332632241325803470481416598112046762373795888895140253102802566425601606650034749603405272321670568449256454288469806675068386529511757214109607540814712065566909581541955533190134047961858477992780921139221095085862348721511282122950310537873124004705749102280326873860087554163857767029748724253708176523613695303476696657075928281452421944926015931752143572380406130481487206588284660230706307210900590670753809132419203954985264241125737515881177794771508918689539206814641026644654331499948913665309301029199358407860322509330814502894018653701114647892311683171689376848004523531261326643485797495371956656947901309726513808543466335708619143585123554368740876813205102249721844574051194299271190919276614861826493054894047593708967566911720883544837982654699879046621140508475022060916835936061922977486950436609893052971556227052234839534027478138036734119701586573127013133149135599187019167695100242421035865811589880627861772828221680649094700781760346906266993475898202211330549837723880527128476748101757293233794928372351940738612471327818406141928696595848319240577626395578508649863219419165870316837075743043976018295669518077359803533323035926037962225157942691380323170632773071898642149112618655741997859752228901797654837236119478093316528063774186763219513628163431859392964166425039852199285894861514753022000813835166370491466373648824613664205152065835944401576823509396301192426278454317566253747946194823246030873034951116775929141671515882846311662525381622259621979329642849493718241772808590772866262935757554911623492191018638990592483892428802946013048003702957200919948803328499042371612200433845586240965358052041338155338314878358185080271767220574997105321000347967001389984895766853617522801351740506683348680913151881687408209435407760276976417937165914265807374109941827788286595074751030369041228871245096364705317963543299781991888011183181084054073284780112450184540765644293805337027178326117410545647560720998088394776202839384916575979501310711597176051760476743602045022109217063848883842351464367018026777579446075258394958642370696364955195997670461932665589151173430851010383068738811984505844895314839655999508984414041260911959640847614339663145000280212671486793743586745379768005733911549900279047634417133575426219622827780227894572412898634415987611165183822482484910948019670776443085397427578793341010475990205285613927356916214981838510166054423669108364717666660688893935331343718938586229763050977189571134016373068740023034252849839046164043302420704689231083095669968730028518067755797837298032345254202638206163452957357046788211979289767558208322960864164328308341595510485770044245099521779994478753544502912824720155301915026643053364864720476400998999591334141808742738734958309555734568353465388461132485367909136535612232043908801657735836080288990656682463421139035933619179261229047988727061492174100200956807221140585492425970593058267499765577930140247300519928784143518468883162111701978257880555170361015734402964509787955365255527690245245292141802638196897982647227669568935300782564725360660980578796274843962503424605336567720514248763165701940694553735503459919958236240300546841858689983205906977170136388935871006597372307795388497671312715235255303292923834863713368604531765954660055857022520599381862293449891638303938978384923071579167739378764613671634958500000478390374357659109243462458097065266245908779495545874178946725397787291851089053838876758752672533037991738957708902405255980254462094304934380303946084366458921490017175015586548526333502782072136873166554585006346719149437453767342498550702371339375666566038258439562012616826841674397876911667621738869109764241918638369878137962757646043861848689011061448103329277736434496301169065236305190620440021451993860457136696499378659274460515872241386725361864442738043737761269603749180304872440094320530747337615523329584786822107510610228441748900765806911390164487225513603848154154886814275328600054118740131401680786394260020787294798041512004116979501941851575791037297727318425301537978281122109739257603566523499920615847003950494831052172935657062078197139186476664635223982029990211323533370566835020492973997765578863696592063721022769932905848097618323214731150047563623515917770673104040998770095375235960643661575223040259746399365876210337456142625154639296662282763880546982813901039548468898512002985850626983842443267290286047725576131509200950844372265743746308707140028388145198154211333154869882780813579594240515191679910922826946370447329096848297815425116722309349934727848391432975888596847185605381708626319270367868186044448637094797929326505439936065470755101719265378256767029133064357136489595786729054777556942430339858861728189782148307889997501229009888310673535539647752638705295270164705301047842947453722029984185990218001667481283922616053846746987714325172321503067878554371256598498192620818017946624948827061358478560807787117143956032739951977577144317030639263827788893366742209577829389416933299817122631212849878309503874194681963407048986518113514074933359924984746232594450575227904335674063471810440642286111060938201844329218621049690095569714192254119917761038906787811835991305541302523114852739084730715551445364941033915490011956878250765613757375471190105179699758833402164897604021185824218929192545032387975847021768434646952703330025932157443935089044185850128326994043798429817869860635891149843167014752518758977726106339084372257138538034444992406873619774588993429171508877249804870542056520132975960028816219018286824550798383104716965523258630380723289760721018221830591929761879661878946032638959757216065812886151003604648737732839940772304263269506437296980039217554177200901020244174163896685088147156560880441214854450083950133539587056766581597564082659526139467263473660744889094007450662081798567758691239408296482642016602240086319097613895325806422323957027196632108746685589534967455873250687667587328044012091555051609938723491154001428620593120917179921038919651801977309761057998148736107748417449622369201232063916665634662302836445167336561326433836175493577227493396031332086746562474740572943291268146477313836080342125159346820557470738534003870014287950634153520337773653045493261258056858195739928046597403521530052255385222802837808861953372639080637678091990039501007969874820075181463252168216092214314201417719163735977460651147394875225849935092839730284382543139717923186716904062055697046468800224267989254894361503476820848946285686528226881152768537378698781019380725448992256283543729529868027991328516743038831214176103383926842446178026301486573274160520317874215475448467559135099231577590960866983933394941642328357671616173932983746317427409391327544905054235519464577248121123335356657410089416956502511943883085093101642667458704113400614045055851997517785677443448344855797964311637679687684979731690122784595913515190377866306695579374635722184647966213456918021279657377583442142996998728389365365261628981160752853424593810188228271141486936099849278883862009009530402714534733377854496362919285939885196743299011622190580964467980904355083398305374441782824733361943895050594900342394977068134766645941779884007509719266942661559364583435490944652934165957394755294519663303900182652825327704002173295364895400603985436384688931249392899674379656911830782693825833477521409097787235140116594337592715993105949654133819883940821454851160479929967638741107660903664444961588294693605630894128514969988543031451717973001905302112291647512121583388510144654083718973746666380401299715036056285844980731027418649597220679677990567885219524882434179248938884431606325585534501862449765467096587089147705673426139609961850177475971968733672686128944324746162097833797633842620081517795297799461372076652463078329507059444354501121792312806312485480287030784533923871701185248946101797464505082783598804551675700540948043836169375407389079274480962555271547379057151320355447407527361080570702533853413521391491295555806798737516319768572098803466815841788367058735992663730398617470857109653664900781386804445678151123749344746069097054138751893711452376375631278161171427658356121969058408202568346604074337416373067524801699520425694845933620690906130154553286877946664742593174314645025641996282925833151898697567270776336472666737321387120697358737082413431550690037404117584660643975029631985453870729996598820257165854681494101553218316996894345306950577413776994336042165084595982983397561990734320973687995221853380116285074121145768676838953304318099049741136529476872619365912937785377435513210416272942376143687562562568622770828517915710356184986853558631562940764534584580524710118679034572057975765710517778209109049978962568812802078519529829565423723839642692956112586288974806918838224003269043782182143897610442559542256091651055807103579577423300700309972274382206365122323053976312588901459690517748658656853356948286023027810823647384371829185677146093875841217499835487423129474802186937943602614365737911044966741942155537151297048195109950407358661968260884119268120301227212720559455766473230629027656414836117523747031766753858757201612867093607144167849589003675154204769246856493517843449592078445480359316926721154406723725285421836548203910445872178062078172272831418929709377418992150419788866633540700044193766084537426598749174636603132246781473046887213718219687195826839928219462164516537279212068669277539564146837023293193083414421401253109597032425219511681814843369964303008583225250761908925565441523141033701508295083020840994443491872035513655985647923815474080201535357570352417176730382413440069501905935609920148706605476791058280334790241360948520946046850338618710102773331841606810617085064579871270684046154640560532915817955857058059976954531756821815406667258478102174256650170503773650044438165421626480447216387128233160205945439147646125237244859777986980900326993525602802468265530113890161933950575438193591529999476439995081127243156781475361026722502341636826786758711632781028178517221934318510431275772493785313106641492917891176254102723971249006031485543532886770417048651316992557010873671616893200966970509338827531620526597551440575661710752577549793909719319573709521384039296201736238373401196515480128565942927714114827760289182458528046093379292395333007342260294181596286425635428600279042935422708767038723088275914302712401830818933520075124181804844812370852797461453539518680612747098624601842866712182294600998750554452903395807609582033454603025738910033100668239616004688046189642521602006458834101694223802037727925750792275338568357198893560433019174774789526746690809165402318165437888957728447440165842541881061929577118978909416386803610831788786644143289376870081222394779267247792826901529980164207334105711393635166853976016481916285660229509252461204497197916692829699689900204445715767427872295837183365268823105833678792763743120657105726029106532366809540140929458513057397673852464655481910335769027423139653842595940611544109894169566658218895389082854684310198709939341316846461551295336093233978571984218178528057552556444549200173679302486390341447290781586507369310129940870725442059936784842017515922534053021196316577665939323911864323308269819492410881462067813251325623594142024681826729187155941375698359584713883441600156640275782113026041165344287854547398983508458249987281688463479270124258243344174330368352568984619675931385596414790228167719869631071714586484775979643268061645140634664111132631321315423455126987203679561327841613422602326762599916244854214662406668824558372661438168626952649634733521118541951614103400956832454891924131980349932007030651628126922672850738553410664083377334455976320287998475585296289596257970685383086296288793150790006094051741711830884978389941640107355659417778097776857465827706705709309691412054726883549147814701320688574977247981310901809932456244112783671144077815645000756832109101002975438284984756955648498982159246195348884916950604282023475698980230338335660172693830384741606941616768025183586855679494036067865121650365264580255893130498225848745744281822957902165435672588953856333045598549797514630463013907011660119845896629364599390611415147575534105736460272857505375848096909297037163922848286249511070457024332358685978175726894716604568458278906027132692525554825493637939850635384849917310201568378250409627026142821136840617620785827876498636452931659373635998635385955680403015674544396360025038454470085389564821608799834485445638196804853958891401052521342915224644019222938373539750777204569232338979098440243307093467661471864721003522983136541357582678143358232311181198614866451683647145412971316692400574943441699866711735893454210514933244759141596004845308715934036096915051022027569659357670150536405575405783538457564860067336601449137980593110084134044256891393048643713047845370394536938948453251339388332777337892563656182051604403569682362113621386374784559546306392897853479369994173780365229768542721587874163739738646495995963128782090739372366348303153089701693506387597931908346408998641270241163842369726942645284087452475494106179978444485723488101809734087041990280342407695031795208990631235144857365716796587895596196484542583811904198692471021123993674066977136522889353498912590871553610027346262006871117649607161390864707393897600416161024724350487109787273554705238367028148732810630499621103520056600153331993495706806386072193997987088397421207244022424707135050923178061507967946783002226202860852608954673776210753813119169565598192704427578254601121611161978981105706910923094265598451895030754606067919969248233524395219600210717321532658704213099130834370849051753613295847181378987601909270000533660969849378829305561671131558326843039216790164915961056760105327281942625808218434916886996455049454548166532414705419563955656710404559855219803431250116025240406730833188853406523941151009273249742058491680195125445082960891211481932779558023159537088802864789691402009060604047849364831624278014739753132129140364656693894487856700576546403395804291237770188915510782996383196209007806241678842560198242163949681770014290766899069480246998058269071892445837599019316763120717469549212356338418113603224637626634226824026402181827900902454374027752427548089672742393808838841597170048952411434695286313112164644264120572701547536317567649447178858235464136969275853137264036141004931548876305940102529036806841275907307143925509763143294821099430623345467467004101020051937742471959605387156840857204809772185274222106408640324659811478004853213350295505730022360883853627289538493067935739502734826620318934196367286749880173496241673839010370127416667110005432938987220926372958619155718821009324506215151830343210447063977159689177903291471055901733812104141798559616425804464176858859501853982989075504891300354785973506269862972073631926634785877771290568208883931678558636841290642623391072521720931257248761283927681527477421105588998855530690734123068835789145364934646611021701713863515148694550291657631215707560773112331558478223058841313927722903947467531748112929276664202968274280703303438596778895245865789037121829716496002965890625758334442345819039530504953511582151490498608456511701854488088302162751451432581464090694264545106053278281988578968847605930915503145203473112773666893549418686570158840187698912619473777426218103306138681270221902115728841910660791323439996171451361264262771034639140916231267836195082648353044038330577421332876033976029687951020218212784826292877259696798536997568251769057198721544431956858218972154353017511652408829414378384015789844567238910129835272779746920123310642992070740169393995140540719649230588160962991556282654238780199968015839615292955957514027881885189721011216512354213503375540053453306645125497405349520012051457667123646265617369616776911799433636070178934007550034802381559687322524202435623625849620902626517618345160052911889605570586741881312422522621924130461779536419674793044739892718305684787299922157812880270859889857800571894871562229746557715963766487451411910674386934997206583564911594322918456743812455499054134024801726392364555770351407827094493485891007872972264769953915152998640855057586049127071093345215355947037562387303224146993265385121674378055287322135915124987201131183326668346443890591263281073090818525958162452571946125185841631183149256003025518154840093362295819468334019653763377979499310957815765292694201374552343211004844518650682069560618286221004233404552642330361192011801135534468345009908226750041381016292452011236411148649364737123917516590306307722542566495715300811702334463534164519725871011649562954266529579936289675859221781694531369029457665457860469661075756683994144615238708644663576370469332785334573569542350835003070569765976755129961839382473847090295166561356375423208507660437956514572795349592399827840669162845144812960749966636416456953756631458501918108583411298339699557128518557853022750009921871424533581587741230840757478609179601536492843877276682102798517845971365335658672594880197566832217960469157803196053059145856629564736167201932669147872211159748978550373937656544679239885549278312334517516675287190077567942667915059965777596613048512792975211557533168557509251169062766531337302634135732631672605233964849924831234534301664059092626766562132227690447010462052567840144309548066701563416702927668803186789341708054415878721519562163157978907838879333877839346078831298363987251326002557077837029020485553299472368134995027666479110729135234835040057782546633391636926650430935798258205366137737945443079169605105145991973764122283605515632968275509794322119638208976300088177154306105867674843529211680558851359319653051048447842025888818963149537710985153755177269805700121955450362857669165090069716333605112668419884292607549491905155383196522416195529847098441306803222809297787213934460308105655911613669858187988622810956931694021370752779090755847122187553559902759170554424587776654726343397661327762432531180676783282470967853709616148977396147257863345719533334509524204722057451521691308522311092322655494710209381177710118200170442113809907117808060736177141515497878844399845544479657816058887818909192825000435685920597102494469631249468001740840324794362562319948319268505155677476559023900857462296048957096049173172493774266914949091364360757662577221351055113330201805346386615761482825904451782432671036470575554050062736305752113388479498555464560428216877246046433135980930197062822693356502374098602544952892896240696993236694225573197435328400659708862534835828566474791814850151911917760897235892435571641475924175098084496078330633141627761003430302423165425095566148697126596181818904381647490394473134804974621470654330568308738638575106483540951078938778871104864252104061722328630993916877330516549304110045622627380438908364358232329745358632758886560633825222524271295307389101612335376371530521990854296385659980450202484501499444535532904926772124384945846323030680984692766475329276757440043583662306651448626968326353031778281128782711867911750674468209955796111730543449138847605431029166741484389467010643194858537179697112366624597357997637663547303834483907258836590227695486831924035074482007920556989609597645935898083607586562190283265420635936518900677669674254410670635169180624202636099110702080246894081446279465141926816916496357631723824490969362208526178670645091541242177250831721609507694990723055758296415336492840414914059570082745005949484302604742453532882551650710546910660873948475549878553938314999274082400786922895316659658952946332855902209079834278936759594081566742918457072230325329797536336725724898802329036587240123599584581484743004256601233865079990706400720659876021262999941013892541314866342328321146142966700989487131518714728500783453315087543849501967495756687797711820179446478752839741281589141524571905113039000225743197648077732451165336108739892418109330865987778920104050400028430438204841374298408184805531030164668475858350712469002167169197145172344414904792331029955672741760756720118431017679172919863414080668103752511661749433961763344297954952118328518925147274681316082007705294274929215040581991998871539657125240024673617239210648542646444382480777561925025663994716285668202101652067042930659429817442079145029376231371253161808721877578069612200398225438859516580312246339823935809299366736287502616966093037578569469271574753350600526452586128339036570687167716533979925308735926237800825944972839971991605899503119259732957104573706403190117317354136298145093460056908205672662262973603659474159971455671517181377372367872674705365942870217982109831614421043341431287398284880262341642889150838358436828356578908317158084560847928592976902142677007672595138959076782088196623736481959752878693788036434971927001864355955086690613262334216164782099839142996134511079011452495520278310009843804071465906521472838151782612103621614720091184646287295572421385316130120181470340242547299504768574121598786071547295642573923420035008637476924888050281048936818199427002197511284773596632050197008345594476554549616295740846018738118751931076086572724672866633045864648808677543653798645610527955134121818270204953000058018924560494088284819283424172537578019751484707058483230942553131525923736186324896363385847022969413316962667353533606038087804541585116169842477652004378301395402088775801136646820619999192202810416318375116437160371114483532536305031026982963232431863287895607342070795765232313535491482759590963622296378181605213307636950946520149562494564422421934621614953696685919699276102565359367526746530335067802415237591510196758310915729658893645037732621781737586641654316007109154275039966611656457796672600254229349986443996483542890564576794956801550307913383429080550352894467944926019964898576808421918818527651041908326527944665487583976185168813119756900585784407950324651470406894555980489903312129079723316408608179699402985343952004935535687878100716542230832212103571535988192551687209129613511772519134336430260573290763764469301319745922511456658947286837466302762307626131207290216285466113810558686974174888952675524425135888758137952777821387665688406064481313242777383748261402929339703562205213144122757378204040837548054698495570097457206883856850009290067110513245160161343172335238958830672239850481931980061488132421909909650332538425445714877217827163057449199923634863739896485676012554917406001181747405848650327258753342168343717096896799489621571569810344407219838524622826793414860724866103739261755693710267982483493933187306901707942533317236006506884979604027878809552761542573784793226547464408041438236512937004642707265947321021426913659866536070102866249260693866352674007658882639301757157486948848218419481917953962372862643733806593284350602507057541427919351816820923210266067551255726179902620114296014103418763477996597397394769695743873614243421273934016578113725658498382806197776821203328125746218562926277449500422841611315304128548383463562110461488387447129526471174176674738706347157630408086004312139172987383761512061776260056897704834757632305891200024629336749413533031847979076354240019063909354314856055292357071070593281848374499498894623407478631609552504736470794621284137195481595397654958248503834888611864414273134364972069489455174179138825859138505898867410687058059180589501313837131302425533145455014088034339659559602904186312345016527773711199184301209664569106941615596607051338526106984273132153971327209379487716931669582240366929016210841718633457730260975487611011022399721649443005249741133748912997225157740876151416914171635951040418907028750048959217299849894867839089949932419461907136945515080726162643466751196833625969438590759961113752383961942415069024006935274927753518896802364983944036358055157601217972927629987882052884147120241170115244704584751103202068233962485284195319793155644191425779600935877244016098862647353051767072193574030425021599628949088643721004842704114069610233730178219606859446403988406295509183054885219339953989902419045789384198130721456176311824577203007598226519346406485278102127089400382207857673934872736897742821156232384638456320158657203786444535293890896172844117674697964306407916306283093042648817553787721103315772690686166504931998401607622490639018323439050935884931482719105940736479992407217845858107856761961373500791618243236732315220362405608430260794131012233938202680129590250212157342631792811784879458076589973402491894618545515186522341278787685301241848743033425572505429642551938217113398826164832143422887383606605331166242807969663693735690915671887039974353362793574329869755512812780833055458645297265685126293808806158294252621397532019130784482100077533243261583861837299813661782716994022005649623935085755918490447803477023931403948924767815630548604845120881838906478983384619020088388173677234794662991553661753407159721214684114996450569276480537419182684513064012017576258224407135285474384552861037814921441081622607078462560212646728899503837052629219306562600615809782765765366291454395492415628372470545650280453086662393208597222912857961727113500918469653847962267122581361722079441186626145832677035808609118272591848704003114145555214093865906502335658673127813421561805642929463392472096866653037730713326683598762549247860858159079001483160785423244110431988729879317917412601118652439070662057276181599518891882941670460844736378910348095663270996039231429613698708038375207477702612221009120800869699610621926359096245548103623162544366774771097142016417906489372795573909608458579776296231218219742893305069331346555003236301059181446965941783213394523141395877689706469818791167376668143047864850655374123793573955808057670410866316474558663469458056524136231367243333391761637466120713983492641757486190625049248911225395575954207137938248048073632119107668907243985112325828475454398227792200306043639689449826494736993727631011846737680970614372201707180589592091072405602926517430847008455158356322330565378318355389619759269440627999100300143346908632812953046106419641898574476232160549483387214564022653159402414877164674083962404363639562443395601655129349296743403374610447423086028088326805172490370051926577944593454885159310130705374293999426235171316556817477706322254846378802468441385635056065792656075860146726957165895910169522235354515896425010141009052683204829043310650904765620517235918498941556688288422843770873019355253350448837290523386149944739761460030277658695462980682526615292848566364905605424102713517091912855591751539721689447189669985192260934017765883521313845930629883878721890727828868399988284605189626775155078617073428334380411275213607346082864860771763227154793384153797439544220671162271317195743418541461203956689496074272550932424778411007693142408019388563386537190108372746015432603494400918634413948758236530225037881185416339763295447959674406239907974673685626915973538937903999324759084075746035810569695345075428299712936780173663168221885861484832601602309603289714408373701265043143343395023617682900510357447593894498299158723288561791509660774616361914327324575528123805913815311066247307308132773274987924414202032402292862300533452560163774075514969094934800344833076002993516077491124973210486513204944756587132479583126173397105227092828840393936996247606283475295949272156350476145422271157378372513784461736700387003591072569056441779843998798825861221053507425133533415342879047235418608072184232051940918045891536444499199628164588649158442938759734116302351362163270654682428531106020745985899000987403220314695776560441597048563789301265068117937593500860317134567168403218061688435921729401973327383863028530955956698093866463891178991259694385197366177282308558398458512668949527258882577030327194360690554882450779558280592461638087197061303710518425594992822233750755764212182691613828011881056782333670350372612487968651962452751236835700824138682248672018679126483732232798083689930565906136247692086607666596801654153490343552062886556631380391363122108858960808947551232340188805249378479122625284077627217872642855818823509462422328801571633757408010655761125827768802266172960881697781057455616034512809470641793433182633287246429364393979690732819493129346239786272702593132879962433334058045190199388863491437667175525904247780556436745676729842864070157783148795448261355124105691634026815003165135626020208633139439902187976877546725686395910076193010247302497526507894159249985822327878130235773735305863312243703138062874691110400055469999694704314588361126921340843390552719098812997134775171155563371261172704082296792401668247652114614293017791669650169347911806756804385586812302513157492233743061566804000238660903995688348734015212507372067696753937840069050266017484056940499333178617889689651904905054216457971153771427229528576135160120698632845773958653524201784212910844766402254227525966994224287233824636332133578835351973383963145169209308222467196320084498388352046888135137664263862755579163141235538752634342582332054464204475820164369405626713703657588988852243020811090494421466078025728674931366078336258829857285957981490739396566350402411332609491798176533611116398896215411048727141381104822990617129422409276975911798092524229596554196760293081507188258337593050402292510079439566655452926564419070848741475631263831557606879189228069294954350886644134017474429448340996842813940440910851032070221984436157997406693628701906722824390454093750234029971561425015572512393665279586863492774433160676641628591648390388799231988736278164361167615672722607814178977903327319704563556800285585875066250949052330103408889670543212172149573207550450876946552466340075028103711540044123302339025081443290557593330638379747467485935874236116595370194373200923156518295965368155003917567350915912249834654308012486162712486762380730686275887877093290801845978094444448325733639478929803755927340677078168931118055988120483756773473697655899495808655715689138464691108231784015037261068380594835362767000196052431509230655910168626615112039656376711046458997487394264464666477662629241266551428027000484519251074137891890428834541430460672662791965469795499933767819421607653785882305180272473160972089224348668610664954538062575585522442676071910608832344307865865408695537465813876656303158012737824042956565260446966332774892429053845408527071373203444999678318978249684898987624072871065780214263038266277702648876356500208766711413473092430830171899655124462055807045776101047708189510762351028059732519066160436252721575425326500616016515406678018575118000417997829987292801145712693141743328175561250705836880244209190907647590592079725684716293336513728590420349589823676753459003722271375631100445000235902937203682287233662171607232104523632364902428836249041881539908756682433785441131845325095068952235401300616045675001796071491065365840078929473162144640440857814322250323255505307038437508674771899225628600652322134252782958459220739935541180724059651182704434399149515198624689069839970692633791480633966318329925874948709702537284600698526266690534951856783429118009853029663226443943333747770989587040164220831682080688779904609605760690806537521161351529778890939309030395095689223766220250028241060006478244133306067742894222713076797392388802552625674218562308483524243806753698823041431947030685863614547087001385650756638321656425687181197063917996879650926149077302773003380383121944653857056798833323302642825708185541434565556660564505879716642137398680125733474806844345323144475187320747108613037499933128553470962842035896333686368472779516583119307186245803727927389854461777797087109526827474287537527620939407338393875015530232280261016648845378393191399121550536370867338088515250535912287341413804620703633016146885970761855342599488805745568150219441451941531452651298154550396215920870399528135056739056230717381950205939380002433673060208920235720839454547034535183080812227117684301700641109444983280449166391636136672394008288261945038516218397470811016237088857161901336400713680415187943822081043559073190944864233399000016139850479202258400993407176800940281001297587904302709620705231419474624980380457401491927216230303857899147839503543904165699841112376140011606697184968858565987824818947427929143318522435267967069111164061813184684526329045663478196929538295927578389262818020337297009271935718908422128076279016474719634580518516795489891334298804604460166224141381771813766145084331023699209667804628379947710716218645573164921827027593841822133664882610669298236302765460751701166817385116738085352007143652511409369959728282500659680583997385270056297290773069212325418926934939653482067774599390912053078477138466273223445596195040242855900741499937185232037119673519039118913318585783254334430053803015637122747203280342840286305668922004209280277652039161249194499710431713217879788441436300836521504008651111967289457661364980236166121490760650678421074363980592896063611894090121177025329873946386078855200479023930473033089836376967923705137340702671628745420129816631124137697683097112802977451601099994247456773542018323101322096191145490840997694968205777864417241029275841685779854070472775835004578846949165100595660498912178943907814788370255210281752751518555535071107430067436159353344029420984357133391277843654915085512593611079129431582084777621948015401186684310823701641487685981557165744707624152346753779005910624713443986198363956151384962608752872823796928782519440850078971863871281861096303654641313758864414898443614554832561044885776976030606189272755418378052436567933998600070703625188613792380485487635558330862265416996215996776119886321465375430020920554868326893297230341860484199041765362085346682255836419648106582411849250976208334198650669296213034042962078170759678600393692138142978776925380951239420245460979820677557585019930218973275722138297513011815716217228156478739399496525537396435253425420751927502387909448857217207950486543983065763794004458035900456344648798359138161580945444921569819537297116780445957209343535689827218288606985858427128161738954911544333641956836786342081508406899786013382713770943731716322003612992762218332513701795765799203403220326072807870291816842951352825257104672515058632973552582601635345325246201758807340957560292959809655759044375637434152170312008390294330175049468872152274165869770824788113633697801097704079466003632891934644733552680309539331007130496309441437910745670945012778155188358830767128327890638494218040992412802302927754257989258722759235758264488943448690354879178242334846434628608550105161980446474774906333737446206559574594432798222417015871316750071805356271749628319092333609243640879537832754950748284651005358283517622066968197623573380354514528510622284824052146677483684710640301319943520297915665406229567959925005127265151691765001197969639781117267806903527498244073032403147983142926811189531744872570227965188777444446332851202101585029244538196046823994532191325992829472359040640322950695169041283885514852083436747422669219644179375542454756026372631093554977905564089349365349991205520103828500831072594527440180295053258028686756055331728613201072057398383622266615589968651884478831457788229463447617228096353779388409799479987300657600687165016922534115367658991480054342698170475278847486206765534652553482073821108335755700844699577715783262184512518617661588425589440556424279668553916586584072869827633417768674544842276251544972371385397006514480094960910081777233139270761533819883918703805156107054914218258131636731922749488643659021658204570819425745907631469093184444903748352799981114751934052077734473958306449502651353357583793426671254529880697903019732252745061997951370324287639454657798363237315443812890700249249277333186157308902462352043288130343911067244816613971625987749406858464622721406642240841735201454594532917351217423416020953677487717064313870519371012980870636857000546409891546146002874322299492378755122972885009269734856431679495973602980693068598372335238893091590366860327406240662187806183292364122983152706384329046631961312591196458168192149724088466780858819761371189350557248110895233516656473364829060110896024377668552767816748693796442970686154697627749924436580496127815800326859222018208635429755395730383539421204351651484947383636379784989731363580385070904381213152012015626571734387924877912515673748540978657548746843255530886504413837431001235688334864493109795937976121411456861486023383543835493526901332960905708013161784822660468635015871218445824159124101570289996168760004416982271025537728784816468343563707555701870928600035721048300837973770593072891199909972363887197201972770875254131133844470080525885731325657036806012644235849671649970334971238633220781326986951408404294449649293871199237380470129847394931597390960846135624338842264643387068396605441527822745621487211439070553147543610230399655051167163204477443853545183607940806157972107355474792108619117256647795283539481239700084003579743238228223643239750419412115576599778841453670369296196760314950742836454908055309342832345730208314324196334974423362211207630801299054251905212209542323839212978060158186513253980653909896895366791385234091066825411539227941593284813570919018080910653783205269147413005282229473839010458962223334361886936993902185120073393871319127591694323407650486118646728825864256847946790966477072497005145019878596205635178367138249486610685610061892159900396702074562485795067350755548458705300910932080641036149790739153330279161686314680638504114620065987854859395492689106949452506590549286991982366515731230227993919161980061914205017385573559489864727436956217689965830925903149190048363211440729949624642829318652336455405351663134168948379120027407784563048901011053940779733123182390905940130408644981421325617688557023783812756917686339261645801955919901284746294155873697769289115164867794177889892517537088637726029091142280794277355060770366459468160084123908866176887386180755189701762057312129487950713923647252007453857668569382301569136229339811454182100245792409317714653314366745897518054430800487800283108536313990778863433339430125197348771928633760239011365403614501814943708281083678468299326378513104346694146763466499630173232443238768705795035427167932041000980210612625676204203757980038828497094107804055922877647446015607393232502618222695066780238941971044768217024682970145248398591015758752155810466379860590368252895915885129272107547554057366452930595031275915161629370112964294810457119077371785482443383577973301184936683011867232376798563239426533162600030630831211677173457247099621282727026208595388696446964523957727471979017267847646670580306447307014442335090561922355730996115554358379542534256198049648029945028963261910928469477638562837167178339379404713547289888040328087492010007196977906304431721456722908676864359640417806509500840084247822124051549545495365114602608953959081961670476055748656494360758343589404610888082929506903517224103402157314288570829978264798189862364803925080245853109051972327485296263627048233206471049039990962855063557157098998502301942756132275981298016248355094240530160948088829519586795882636328054262660606446073148000141694566238940194143081595465930246986869157417232183980736949511803911995155447761684945972279383958405889128082207074602041531165888435580457677923121714672347247490088095436138712069240256790782502308301217588404579707168349496050885652365035265338901438353213507574403463089426835550291563670941141925298995940118454537822659998292228649082269437397857792957790089343964312707813234982747907374321090467402954207350850274847779944342525574424132380942220571606540680518726093692701293590600549517513164524487270704594426076186521474029815019804738788406218910912251663450310817404343462856303242887840364168807708104196712902129316249278652621793727496697706541229320566494340434207684989493060886841464232041277812107556842178202542079096982495924687905716983834031500508298851129553325050929912619237232182164134842383106813798865062438783470053544601040745102570271824724946124193251335559190954198796434508124088446237470687547453693208371897920197034892434997707437211460158274089926357100467650147107099747075220929716549338315929817408723049040630795876375835277239036204771086424669053355242177128212409359117683280432055786379520655297324677336427918517210618343584661949514915738311015553938163885720519449674212517455337303455432591844503534151869895172673479372469534177842672032227506906578259174633259620990188330101131079666063139496093789168660163670567956257516365434043526713613368683787133249795045535858639993427392161973462742429956784446206833466031993259349770370761975582924453299770746814235277632768757177252762836503218629370799804345749365429128713584822696586829746660095024676110455834343434616368925312554705886712192296798746960860879683904474667572603787021079091387257895881283380626266633856017173418311997971178339833513007791250337741167890679441187032719788347533290549008296494861162047603122943403713032069788878756916386777561354103738964977353803913336803225096197376095044800426869450859617867944705515160146112991817740656651994156538225669307439129586158627950651039435255710953301781408472092329608207423158458455815123863767875686488667151969811404150200478759011991659121812499819327706281589039127744526597628364119204503187246354921231072729889872409908606332162753913369494057864155423975719590799969988446378662030848424674831480387790972037376332411426407994628500840352562001544446103576418805748618933061106042399751128917051741515744116904032396775745094718855385841199317172652867239412503642055177400358259137671700036763778038039524216011470590430277358518487137739782286430336811993720272363123187180057606357477306017424640298049232052190504063385966546478643645689099956855596951755983062022986770461665621400587506335581426496713571572577026310637493439074053342726046589158644378082933128887524360300351521607062077560784995094361112717537784624037639687492324399191707575579613105823598476706616156706622631420182742351814690268383444732080114657708107502397903018445560102581725307318455829437604129736784587122069749010653132475080452543265727400028414451177164092974405386626025371571779162961849887046755402960726271823711353620924211682794349877044053241359147967687413687177846233507085293476650840273038276115278591020805433237806048675900588085145415271249851947120661941177801625909465195312636852665322640368653175234149752611165618979644993309130219326923041628619830559250254169632347018445480024771137473246988434179892857834702484734496562450490008670342448252829848887012436358665451014523808855463478711778662823093170915482780281236785121767042735779707688653178019434944047818987980319455749796674931810228570020914299336442687601631334144852903820158124825608202263748082225369970478120292608175209437486647293153167766216566267433274070395746854095612387196402255862145453239920361752386510673552655752762991813692381537411961612185692474761674589388575498774550632024022055830287488247377577275534746945323845593702188528861175094312312946278209947357604373114035180886732158096216656000779079698092278808977737510882895401900322064587996530469105719689016049725684805153959080407637433001568450156796842069505883477940188885003325336272895094954176442818746229281370250100123575151406802791670850063877918156068661645917726832211542707472208822528809308910250784327323732011762064141286514201901556198783313475839712748451001301890415454516446359716849101578209397640664315924044575963534473966066795971537124002304098760021251815452714218128679166541881818165561008172293859303569943020081252540204424892883154503516550957502138284855483379061153763670262856543439487627699251612790750012348633735777027514189307905281655347488812195362334863406348954132412285449677685072553702280741969988162406073636985950704159297634333889770077469570833595820374853378181878999452720316342296592485224178545700664151256595874459718179039072616535127897962117109555689141391191169965110632827765067361897898117641294468385047590406138896093297817848698150050807555742283195600899933633917251605929740127269993239315321871225160971424222266710261186559692951461141800775412057513203892594831560410432520543969824509740251949789389198933979174991605844599144148885406549261880358325905986243193810064302615627322317584182126835539798366096457753633059904073500145373937705771382528067907559588546794034360003343562607232381194905213489450722522170848551029501940558502903401342744974517685969846844560267032540641350450817687800215679479520196274731675996002820354465914210205173891282569244436533783296016867635981144212729133058264590472436059382932871842921941166166465437069712579814146761248794072892567161712319483199840294408654062947697581564487801130984607184324860453398499885398070676190697247109403230139152416300551399662315972375524711521252698411641952633909811125552016005983500515016307348665437333498448428771248942810973887174218520949127630489102756908232421110131220974511218556519411526428958205365435270779820590606768514657257486465780814449097057282826862910544613614427391887471211365332205014128093880024522796945751160550771951334262683560428991942274321674801578290321519487298630111167799668230071644682077075373766076624533095240845534104343795884291199369834732789514413398003964345477873766553669154818819826662659487641949510277573418170590696625558131199187649394809409650171606964237084506011835689119826284449305322624708797870617124594971626303647235191717478676468298370498541403900048470728669959685067441894763179966150872134851613245001384833627443184735681103208296326005528827273624911476435158793327890680469016245143427188139069963643430311935905389286025936487618412037104678409386415147335319350499374976884237524541154297968295891210066991909768209990335138668131446193102367980188612482696518494621290281331373947036731195896874148769030849019001998299398975920152194588274838618766558875655528479608610456586826229707951940350794495853184653114244284463852983324198899467948480646255040931827740586334476839692069126778991131415120261559783750902637342392300552268639614412630754940604392959668639247249080082386391739804856046069574260548790664471345291184519733291424054268309979179905883511702980716378813659083167556683242450358580054627585125914791362267141568997522611835601726114659707703929289113033725469440650589239743865772902702675831646249191075938440965546340854381307078924691447250927514169202201235655212057068719249387794091304139946213770930211218963158923188218264908048494890522659448630810792234659668266062213630783818900931954179884161904051317620514917295583977444881750193882362417140948163788491450660896818969425577908154229466518173518131225944884632437387712525618045152974737193651015381697038104970355338778458503559230063894739326671830982501742170085092948790515922335462421095866535484109674131672807443151119352677228618545154193444703687087536716704675350608633658274341955529620390213445958429995467297582064968611260800924431261345879241333286977383988402734927083942744787655712445860450724885037348051601370387752596490708832351339372866507499114929532099506465926799154340928363282446500942788120122314838469074569027385217907184336449625511127645831646914571855333120392507259636310225154337412631792588915521207291767269926942939237645470007449532703356959015499333043506998687847166329368162044805121013275032301391716773007424377288620761976205818206363006014655600674655411067145123483260103839968072047763248327871691702261944947734342545978271497485865639268120597145245156335639006058133340012117432546801167044327973067512114114526815301564458236278831447479987465962629082344300753950204993248022146696084535850790885186106756066727118655761804914810025736738919366124846098017520355108179190227723409809909359459173246928924929752780694007234178706872243925604426064479869570806312264879433103000648040760203955436435714660104524320822508661989116543323425610284543498641468302413333020135649962858078538289197186201744700120105400183708048440919338785664328818747968894577741612985696427984615577350448929046856759657833325720135148409644768844057776094753497879394073971559646044044606463722095644569316296952777979311276840321083773042118329049219547553378824234521655462902204862295350526166901418837240424979810478176614512651821536453050670923732833053839116339293799071528934524129241003174544146289758697247316542359101165245225210793444533371647107940357824706734744617761720100956825973316490703353050049750321651334194303019693004911106422665797966807125362139028992904719791635509950144723306684684714633764749318471266106795949574252137391743958410487621324056761727863751060063460830226905278223918702832885389590285425316702321894982223294597981461051130672512490986493183617082147074206301939844748253441315803825187283734341354109107728204998260394328105672504172993339838961784008644155345293723656262698524037653905876981529529956517874258885185297904645725686592162422586143011013368148312981150425524787242884859336264180107563952890762340379575353028127997415320706916056593105276806626441650175305850985364724391200825916752841647573171946753671385005501244114459371283811049180278637826762792242349564933431403049642426483846302466596128312578515840747284100599435347238471009264567005328001309588346277457826797213716412123319606445376782802004419843211070901230564877439508824522978265154772314885149944376475984512113563677270784402951182526449135405922729850404922787970600707142957707658048760891918164303201748793775294507277380847250872222390574088427386572174493067179310706336808015725707012457091317428314077268182569446380931526478643340559784250335723985074340200379150153661601794818246891436619159642523124422051526302312225469683060375310203632788251590474515428598886404378357715466496479358887516116689890958743986851154338875032671720168326486496792579277882019993642922091272523522947993601239662776863040996464308285990133125756926365723497443651615478497245653366677978865136751250291052416070210500723149417285167572148217772659222812518354591560236175669831956140392723474070048677317914583180470297034637565811698594797560510220486949841281254116754158885545546443721951447891642850314101615107894114852960772225338281458663058465642197511793435095289777066858213367819091599901507843448523265942502995035839244835768141224337065977092553547019211357030645108670981067101086724169711942947503765145793393717323032596280693586470885993207906920208292229520283317705510856002986590287618562071242175521724558436727393288241222545100692250155005865858326042291471645128363045008921843506780723773350665331609634344827015085287525422623863339007512321853545028960368691962311951487121636370373798626049813897157070194230653988414345337081657397316365938263460898702031401921808296430719395606821288102648591581213040558062775741356886201677607526386159228436203043808895167381149633516862547599047507070721771194003441059296536849950751932460264922397319695357748720107935021653944431738241665028923150107589078893388357434248252241599710954792249311686737881174592019932940221202784834242547288281510794154153140309916439393714518401991822180159297743673988067625699269671985877816964944957272718890913069551188281310050774604634144907212945769068195949725894596127397705586889834043660092330089029619501897830198356956144173864852366247928123623199807956848743653969546168381964420997033115901785520254280771379919052410537170471844383460158844505146770613729760047799820027354884091666993231029027740429182251994832832426954951544432707075501771767093209645438680305201482550601060041994264945258956689105488162229279583609709058562498029656356251563741384425054949788196003667635284204101805004015558903548527448370391690758217338851514759687444984279663796405057258266809581493803629877440355409787939819048898269126564720421621433967842244852592875712034228311798259912812919657688573155227630882756955555759064999487356692851317585247823221949327415710119903985793653568066060029067979159728417161622103439830840117057619812205032347689733986629922703690475448666845348683345015705384010846668748752415069992170405619331649912974562418837596350770742382009285963292254336125389233976577670876709775470983209891839050036444969033119197404561115043500592891732190202827937765275488451024695197411800752008300208670037030107730865470481372846230324710077544589447910348965367017355666355578770450002529448403740118939786465300338070257956311431800738673583730362167561320007240636573326907526622583567473470752241792300237326552771585549234930965334048240226012335101113874087978692273821938913117564259124642324035966063894516014356679717615318625666334929572488724796912003719959288178315626888382879875472556918707526684136860091252103907742556202350625713414266128309447053924383350770089729929193961025523504834999384940896548175397320509266809914196105269309255794821555054888681782223635644425139039083360741176499551504467202640481688398378209383822328233371816907659945747001337280345569420197894942050516434724504579612861912968398214932660100450780430380571872235316788222696704568586341439885566886836317881335748530114811243302470176099071051605159031876069994585148341016567851876219950181620129452160119562885843319859006095418952291810817432918303842330131836039212791568779918766690837872729008317526627924100797923431385434518771934729042371653172885761821609034954794069360109772761875009428995568365089018454900566127383836351815500669696898646088126139822292511712813237335005187622412491506917956766595971926223964959816111441244564457161471532175815372674097138673697499114022903563745410706694153632490918194384677295749111949884764613962071041332799837037573473302422453137746906593707506881245724358342181160909951091092166131841348267769773598680873515653381544033575418292998644804706595934797660481508875991727888038387984632721678533653863813812971980451538078925874479126813024411447200482361521612164397033623007438862236622941040257498438044597623931029661795139064481487343925259900148643509754626889521680555799184433869594778012170197823907979749875770323202758954900616276300725726538625317399525933393831521534209886387699112189862581502618718037076370751207784468304369078142463499986024713543125736465656998086768648678840128292615099371299221445824413636565869753121129350664612332106866639467712832312767696901250795223547292976801720708284034402143837904802168238803614248881933299654578804931755466956473417245386852931255665051413549016885026296134826659635775828422569277817781989707164611818695643323553928532554661397026934176280708666348868379514298113608120316112934876046298195085197997883315678870223019053304375573912892004416434907294592026675641117994052908995763918112544346510550213743978194789733520754666221884860383310440136114404407493005629987139891069875256350708435258215363542686447623904740104357497412977112438030684292560219196148157408454783241197548359809183511410509133832625147126175431747106529801733690572260811414346928254808917056793292324364419853381455342407477526054147916267727502099446341068458763325876550193704839158714995088743255624774718351989023169959432281999939494483164876115738547631903050752916264545513926601371326414060823762341664723077741106819089270834263255801931408664805895761450004472669720406023446760044068593671672738625971369965354156018093587418081348331032956824008354300297897278320591578121320266340290162074874568539896624866708406933675054878780600260533399996182128363078441075908870094597681738032868813692088508470601526844322122527216799965813294273137723308906539275100246614198728975171789191903272437494630788693352285409694185117093792503752128674137653477169345195114062714166187784676138418620478299887393111189823918613052541177174511412673529355104790443378194342024071418493377838959415614646830971052862295887418508402166669812524278128144613872140847585563249465353341409563635638764775584903421029607490656071022734994857001842920859282570996932638267659768806524264240340985299992131789100697966395737618777426505735183106266462339770021810185550130074963932015480373577291510659999164905165034835311829556373687238059693308740945020499644477829407992289125955531857994797876835912827880580235542922858598275091333856507454992887170444236046044912183164583474221533702332230364519467011358482930766035882662315124673109250417564202423447066499956004563606089500968086051672676139969146222110012156244728602364182642088043214182282336120521610882092481920888171315276990677851217461124500947472774644962128076497006339156105253344015455389664081318990526416192507261585352778881612023315462064398515890834144097720930316592182823113748206571328793705011577155793201651702197890498676254509580495743579805382907565562161119000033232118541715678808462199036943802741049616611700631015858756153846895413246266139346369513487175225839564833204791669290610706219724178764776172138050639267411257852763922427378640090598912349950353212521019857779306329547639318765273696252316647862301617599281862718900234121443523609145150261483164516223745989654030046179113756877632613222767364545912054929411012369646920422266854481664176400495068847724554291048936832504977899245660534809617049492637813471258822847103022757627326094278361607168292016184801306264740867525756301643352644539378988773428699090768844797251612741390485244958815113300561225076461969323619712111075680435385812527713294173488575275925372869255798515643054642630932331520630128702437566478746140417581306393937053058751253879774669811027954759885641204443186952875229261452537147833171421724816366021280996055745977565035716303770633647208782881683566613468689325530178978705136850446379919836374858720357846781277740803564895551233653907935470175214322361460892097170910273842297061503628026107464964309885491586087004137184297102393866984297985184596155048044534225126366924855670254395179364979806629733848358791924614270372315334147515789129673655236888349803876316819080866869253629569778843803775094328973069230936083953689778172938667542541827676887184829836421763633841604265068912012914580849044954561848491033107615382227117389731755950582685031807058762381645837560441024735444619707304579053693944666521406448915754826998448944697583945312544547187574460755801997063817716482855568859956435740862904055599235488599132326625120477739739449192853884662453086399711940488711125017022117300174092730928488916627007092672677538976444024254450906111444096241458186454674677110992953977113408698313084606058040096548422931821696778173929327500469498317971625910810795430137661400107204524473400927525813053895496769272275713819453004492332018257495648641297501967478930738232106208546383543786151478717534754092985946470523726160182187574389677017918158147720941234982327086956082987477668835504150873531272078130395847302726436741399820522137877489646963509612467520266409199365905942003766960981430478341570246208330883624163274432430564622796398644968176225652410732764390113120156521946326085731303335852162613190320418947024553152812770062275827307081551262751337385009409913085238903878038423876606114844144624741733216183484526137922523011637594061316068038684400402033667828636041335134048954085583355595082722469811700762012516762492122705457729903573149184073658039258409409852888931772506605958222039515598397703598193021657624240023518518139128894711422289077223740095810737769884759703136278606617270903739052399602662294408887952262806504996227442072475332773283275774909458569269967728037541909657053329608356756156802783901382860330466066284631324543422456606855028226676565309158920644830345312304051248761823642684290193091476374486517631336487541854738821997510274242794486437067398781829269595912392186458044408321045381636502697655119796977893886564562810130592029536824552359872783200248153212547021814688196550175284668569868311709116434729542998992357379350788579694658440076424864424146867070655256070084451959600472401278343248430792102926623649171691580910774478658255493480351894564009254021648443079879584486685773110632193391525308948677698288167572179622463489760439038055474352975032943526442470140590190610293965312142594469319797183888068105417383228620608400900539305448113148192307541497670477553271179666470974550836197464554510667185833317588783760195141771235898473202764663536662663295283368102423680273425369019327093730564159294714690377760340640432750474644819198517462756592415980129210300278141670684506757851968203114502089965378302067985272648350284985065749346934619756351858311626158484673341243813975313474295882705354807916423377133885836866039274056953204790602377628173893992539418281942173830331317321893306072327864529752463630141459570706305680181908480886790906134117728049863125829436320761958492877359833914397671990291807770810384674450600315038012418285012458084216599451272579926418539878022455025993882650613258069241377003312663513274203927662635090814588010941727334455752261103615538522815286015569031110440565287805277944053927926547512359441063565907930597387650866187437493207484605291212410980708095553777545197827454313761419012906735674315496153164710837932653714842698531598440199685773229396311297617176622257673572770431389333948625998958001529858330706267667983905843194514936512721403400846509462607357320987441657455415717979532451723016707724833212934475298698387790669567418056694934050544298758307360666383836538015657631604180012195484478564090546854044930304985376442938631326420558142683255043412048561304189254525156847098320696418153158108545954858115875530950468500948500989347706803455024241855737780380289771261574904448815017387692001130185153529527798591865303886400507407113290807665311688865087626705708773252357638128631283440579449057412093826626796088796114340416074597214314545710427792481998339710212573450307810830934281347889143427718011045180084723204625029833526370155232427626650111107191975224825731293253207913595018643368950863629755320917854997684913202242473602429803427596600014708465816739839744115275312325266494008183937329125184880570021628714526898681927941309912555492641099272794347251583145040194094924181851440666398448136191844894970618761097806789297192412134516596322144013992888138839364845362410900654350863527692318179034890418548805001396450507220330042298876100405942475107552660407237910659882315848234000382956409150285547344615619698965638749003152982491165983128337222187416564066313738829024319639713305085555327122969046481188094087138682487071853472603997355739015975699104288869401692129088276263595836609031202141323287868164522481420070758212177943680147000965980321080891766077201926864414799699214939045930780035678168237714500736618655211923499740688604551698817249866054146601600162269674801353457674648423302704913235594209471025914408349918502339656489378439590611594762908076163816734359923143931454326220089212862443184344458792124014825884831553471735357525304805930332703863942991792960229232987256222767327229224536357474511906199894654261232505533903661069600290468403534590742426086613688127192420990420331076062634974859034140538542855485596933545535103786781208253249608567715682181888914306167914301066196859242863113614037014995189526750186590547891357452654567773343178552128197679019612717173755693113277102661778752574897629793414785171891498859631135560951489085657183581293635641407727496242312734937459089499920631156419714089920673791307620381566853828408061734114301698875481276505210193036392928529930900411538677192388082915080945652044532550125971743977061052052008259229630808270060632386876144718634177609210060466565601119861809567801483150120560007177786838308811183575443186283621226116813413340448093795261151257317143738415289009902308320791003565571894343916516363470440778785039778292014720434770938804213660092305348771665534454054951592083926705662521873480280720410135817502517203838758773241145397097807863168872953100296042659495064461566258299618509997386963388037715867811106864464855184306469968008351640634104083084804802921833822496181305083177478234855641121885341934405718820014412769669328519140056957193747603578475053408751904505934689597222415242889726785706083209505136614362964424004101625357824236761974336393738193776937968797889935405864721422692266011287410085356496622806268428529622802416300939718643704097698159685226919192096167673771893274483816659632402745808932423337139983701817544629891290278617938561175100103869139617939557418820192640664528680944835057184551164738068906113439959416756985442403271411117020173631927210204017309657047047587894691273585616244461782222364481508805885667349180854965100860009569438780718050272277069421684018143545611926159361128176590037240195948430442416070710251400086316091814528186334843658030235301539091738403860593819071741603294144832329660767066031236602993975864015676269874817595472608847525978752041861634540151560195049247216681523920745642397020219478536284604178101636246351713133351727905535036573594338158167632968907354487324740114979226164830362971331097618064015413487904049280950691227866817194029404519154578212555786415648413822468012390658708924554050474680762348889709690659243292799280617084748170555724927578111685998888513368481121996505504005730999143734520294774098559915758418181575192384995772008511970994673066888695295619554915963571517144034497804452906573178508710547450159942301709626609339199152141704037330077411856261937694206881928116462564655522942725055290136117050206885359528519163974203800640311262854958530773169976611130346960401809295935000776224565798390989442182303439509617084439353177213486047535674106813487548735848206130803923938768397103741644764048641925453731521425706435517062339380673306904566547058221803027279598268279925763968868372307930552884272661864436516896031620059767593836060430645917272019988749015579891981719698556949096281388032210067051122415164167220532378941330071219221583385673141735762770449685838387468121252938716217957235891009590165818999043034554780492928412228876519103919307763609833918847197364899025391891043440442589923464010862670217960117881773645231097485846912192377595462047305663885761621293071310457962301129829813708755628943913208394022673708042836362131648690687490606972115985296279890774001184610170887319826203682751378683787835437196033948688374489706872642065661368336788740959747879638044214438465573285254740382291375634426740548232136348466232159038661831731734110407461775534302969679333407259510685552980550282813334450979478069434478324078142257626582893774280332966729848792980806588218524401318899777992632069212301400239787769489395927517312739956764702414304886832951265252871901275482120982773800956533817232811702097484948066919049460199714678836597771863039509817956551236032133582977338659812565800149552841507090865821244299517328399968266854205305769551960538717003073066320576275906014315121427499021187614217696592008617914096427940871783970814584458529636974219985404543767736025640386294483907270815459482928727503556082186587886281209119676709425177695757876264726494579546687962406404831036220595502765524909886428055217134149296821627050375122907112818066662938859264030212027029975451687722679578462303563676454864869859473802195124455796092402629833757584993862847701580970599265915942204327681832879129708306396943146305858403904713680715707221497933170264288452534128491726509562011034283010578100955928474002409530157273049290213085747530601691953058404123833366762310480316096361270310700395149105779064642133517629160881171232454237427782889809819834765103288782397744408440398664933402127727943393170021595093244303256771135436371606704469722512344286852726175575185194454313299140563959397765557221044862042465908359442537802946760481042256937349992440385787940537599406846039175537447465122027651031261414502689269075646663589530733529452468105529039965090086821914572549599803668642636535624821098972585042159041803801774581693132244913819624027931484322490538468574204012363641464445269900916821581832475282451458416182223076058565593512559618365898204563917185463681441226067982194810921734884940961524845808096225601197572472553885513664550696378205168585329144052992792992816923661566992614912269737621755610292359237350096682693556582056437713612898741170205485059777213366150687838585370632913751882369502511701228243235083751890988240770634088175497886859744052761732643491619980808895248241906846062396672018401761880628907311654035445570434255578937162393489384364688876395153986221317373834177640210720733603775628119898965162451722178842585010330739983970760119689949996261089946864912626174144502509566927428984885826151979828838983281247354891084739204419407656125434171083550947950244295265265382081798777167237002884412027706371017563621806340499129123570644662998004574271047638475216444626142248306101053878387088350012695684543325373697945118953727991947287633738315546697433556467593454441299919406737689614325892528019464432834151162423369846118935432388458664103982270110505733527319135007929208447251569067548543428068713463016193422155131458356922339071599777292859707286054666406037852212789795696633055757512876132326015043876504375169479552336790308245079379393536164939185253907105199891030115070531684272193001263700684033186957596915294370492338317155872664748706155190048328321675994774176179764717371872778228079125218870149539606784674919367050679512693273459281011990856883208390530716557383367802167836518988085541116953643485374162836626625821599056102196754186214972600105862798132887887706767624074521999759703051035946447124327256383374666681664995570308207523662422516238202019067619756492955215584401025310332185206611447365532385975006942170280639450612423877033724970359698935956152861653006111790190988824258984731621613530140984350451444596473897041702537765660489083677266103360438872661560611053329556947404777062703350581030421607861906789335450538464602332496073333283710418702885797980498715755674614210017467027117717681140013318976916644156288325172855618373027796304656178285418709485752857025730695755670915048346185769331112560413620802891129035037955129243549195470952012540866314567912945631253615985110063550869959685064127746505079929375532477378957760852929025154192160822245900806760706066651743284758808241769520344819649300724660358892042347874895773842340280493712209740231353252205779304752878626442544235259921853391006159755029276594949041178301473275876390649772519122465349625727104731485169249436227210849925720641505800439399844790981990056703229003254560261301018672653148558403651338271847948789486075379649471282083643604308310234002053286812421918293292196088993665043177080249544866622652330742814563746739598325744994961166216797700042375011643852740926913513423079156310923904000490862303917608701955489437548141169679952753357045278094554495095631860821509101543036349249354699979960600567337931795673717775421798870486013850956748987905332536358254907738567018424375268705931298130397808156567439176570929202967020839750194975065079078446216642556310584448863497373961076983560066530720407505055114338769976010909612918879038563112013307519158079217257667655124811787396795292104124219232225009890658420608140065840115583917643543615681152620048571111079453323943646300877416799554504564794784383952174036440734118488484624535555928511106273960682984188783458177547559957968432100734806931971221311076304788932724651223137940844017503251816525022502977248873885647682948293879750176320289566726514469947530351170508109597751236126696369226536379620257694845059562057584790534180690899316334355168539044031348507243765885472141497387973007411122223505942803135004974785762428321301411496789237652174785431262102706759745308917342125013767963872537206653380325646916150016233314426781092613780935396058760737254669646708900687579443094199589458006787875116533770448100113730148514363993375935149503210774312446251561883642263441017272118100843528071431781326583935962722321716272560872165283493827663697185658273258070423794450401968311767375032189226538001946585682253226502917815265704642648946447574198878916570023352550839696035087138626816576601219413003117847751790777719781074177837649538656669405660413515325504709148290300508322575436519577563520180714188647473354950716858362849324563727709588221024655824286267878910694845422768311705984636258343610416001174613448828585693294051365943882503044146234659740680716695706332785214713275907395527002749019955853429375600955320866349618563198801366985087020355148069520915739687363927716983896638460868643312001124517768632977968468502344309362761105807049197041059476792478327422409898600867244019702508110520292809340173729863426922372271771047869990630982226667975375824836598497521954017901837887512196807198753570494010219235915096825948220675436790444190740304625955822891288021439019168874094284110941273481782133009429679776966406654085380584387848181341607465615138896843495182508972146102540341081423699410304242361958038311585799611149496584143881900538806002470334626868860786514808887184734837089871367846440916787546503136286358723794213876502563586834330381556323318827855615868058471932960260714393491693041675575675599121424297148407003420707207973249707830417238812146402971233930434705821175238437110157714868859923873336353737208537507601744993260891494661714650035614125847693824827537990587649897721770127947117247899785012107521666814902244274496457464253952012813541536688330044384811627900350265844557333154428407423070893953577507233545821377440306916768873632016335381677885708311085229221270514497250656348719226688483874297884045152303177865452915556404205078634055765736736282149424757518947416557594700427295039168844161479924425459607094446051736900589732578952491013869864334798410807650757638221168311645196519849786255738466500672490580838841986216468042573296828249730256978542548880624178088324019484286038319183606147638929240944273143376596823700932205952913144095367403104186453619372436023466102418612341482289018019239215804830752585634229790014885910234161912734137123608263164389367751330321985525242644191537704394549000235885214525424565006577486335204873885541870205711334106992177497124967307745458651869536916347865309994998339890631977680935989316595711984109516181635175639949404987189284470601962075377667719263466966082622167449619500436402012635329602512113608331927103235936340485487263306681540124345417929261973224970005904916191507758138620806589313129719469161119655000055837763555862790030758590380790124951618035797841375671165001085016241136897094405532499972912273613093144924142374101090284590657327110536782908755283207761181666040462887072048518161975371307309834065994319334699345594695746673133150920141896466654424401102053708372246303378029534580894993911196998901286101212159688031196625121307354011364631595692773757634831859887006065932387562717126794168646997512480051482680349319694123877678414481514283465603553817771922432324930947787538201101940672595498587316127146739067386855183201193243003852868353142336629704372726462488612541935609612716674644437104877256425896862317129161272307687332543356960024797958964248657338579462688478670115459682833450564371884185362350844106919029523827376831113689764551592853095132680460466985666319839828429007359408494513344383654203877380524228631613952216050480414705718273641899220257469409678800518780102027859685170932902870007245536254172571144525307817118790396735666396491597231372792515375978970164566408043197316688167543115790718607250156375319150797770475417374928951167218621378802718225505362332007760258738708414798703192883821672894493962369634666041785974873298111461747174548019678521843330408127531814823385814316313540218911807710987742947070903181302803242543061945867011053508293969411995358737667683944306761991047850513552625356447290970737084941073970074912681285088123335559209658202352706657091777800164290130567922108247228876529817962230764019323715778337582792182012674716457072208630355186529097484520435692458057367730718085189132458356087142212278452102946828160841954445348729273004905454504423036601064770238754773533507534589659502652645936203876052003628179812012511673309733438768001490094377482741566114974461022765639535016892162033606444405589634454219774274642271552614255488115819939721192502149164981686528516004322133219684440090763094530234967838141703213575510254352725487883340550534311884374209682696202603951275951765842768820882389947828323817032254424866694228809059384793622473017607383954992403150833554323710045474809685437221672413543698903894114625881287753025457135427059912458860285701336565458187690451152357600174217396611814079101593224434436305943495110084227842082307137695269826848771593785467859912164896920507944373601627583657344215972237204838658638607022381596605417802352200944865048839794713663332603872167593235665242678467499546297807198287278159241787124215176276056035148658773913752798511278189306121906564223781395180306561471416069652200884444432626304293699066362298046190624394907650814374443717400169649401583138572911235005875448892917309719829860650653740207025442235845047823572660121012342200845020991577158556116169495146653496433403181506188968952541325351556619862215536701026288858354465055144526523750934935641213704935947284067869382193171686752248621277202729176160304753036230329979153268765017071993218236857919683636647749630018918539594182426139000366541860469864385712775951137043669182059796475348572157132132703476261317375143222550394121250229284635412503107830315109439289459788420719419807233731425164582699629142268671008582227193600191972772766639695585449139839319761332546175543258109516086969316487007333591680269293811685871918835206091040587181777134978076544030794802439801468822834348326632667606870731027404687066381734122904862012398517200517535156252439665911021479537694377809359692271178355763068189993695930720035899835914654135784249306793855712704599645506362005169696727993580608113153416766928159413809703854053506808771581760751127617468583655924085838906697877780771462439726242031928037261369114127680065955194050686653114948073107456738385790757293594716703310234121286425300431411369596104921025479517913904590159879362998307821209538622508451067097158559212959153089163316492522976462946215357218633629088633877984675775523388300176296447128904372484723911395511677170515624019136252002785322425878803110855045897401832196750929848201966036407819842489287041158443383435372477411638885338431141802874476244761723324159250437148667523365428992495751103467177761978760664208464626890995928678948636756852528659843066661403080187606210737426075972783430018220591356722822181430889056034942711028851440134716777716261414070483457358853799984312454364374507177051697948896961433929515262060338951125782898642256947011792092346473363707873217500150721073315684806356734745943195597088594362011897260376254089384054829408842694058986668750192809733229905675453877411202261592509376309066459568316468726757880378754883742165507730274763102811251827751022863862993377578624432840114645159590790052565931762950455057749557925084208534945276974433553166722541281997565441958454966460072011025800938624817271472018208855582622432642174876491173690675484317214205934470265983392495623383105168546281698371950359735510431102461658040304879486282799701651170060272943557281791983622338543065786126112466585026152163542424031610584520051616409389813739986429786126725133315774255679478125941159515369138755047283563118279601865188422241687384805738638849504645842764730657537020657387448121835589875890060167861586520306274588776032891586812699124015617088137801032894302428704068177853835726479928372437782053167141065441755290113812991694040242660491315620763151873687961519368666525735710299617137645658240539952543732008517862339436121665795222970794904082662520059840415638604229907790773554145750975357215783058724388346144092013646729813264480067790574904273827538344178378144068690658991951328584582599069441874679696402275435947070816862490711175440108669372751481960833348055396850808581725759935481919883730882258062455977716032908867938544707299296180228745394067460620279081267202107236553017166424165091898148787624674674059856499832317209175098923627505279929884261466224204731672153001982456093551907154854792924881678523571939283610855033485514267975402038622936107170712673518384675550958871569332495879890571448687360141918844964340537358756844349529487180449992204976814194026794184255088298489579067860560848681339251250610107970996248773860785842868946974071546029215921709704983516591192343665230327719727543108723961792566562362831006013776791950031209705915424687861269060521765393643208777413003673951643754241486122986840628349176346820778081808607127040799197387818427016575240449566971295861216350783686085414779990755035437157749370291913329202900763373938883854354157554976897442640630497398830429237906561876725062830534594141336385947854995363904730193722450528003158424662779583945934574876210490579823249443904548726067467579025039178029020639676884915983553391854863432174203569967660864868665743636512258098681945333404905989349403284259431113485988724145405469469503542308567890885017483891531393135936878004009487369336472826326255345575788781299907908595550050584678979637468656526321725885341384815901367773031968512986279103129427490732600152595795532784025740060225792626119507805329886474616852250995204439232865645649236569696225847968475950450085198629307287187768729052835023518390308571124571369707381505704758316429093776148136145836292327476561953620713410892934324961697417411463106578926102116253173599858118246457748293580974437829102668859539034921670879404912043666747044436477768112715730343320812899848694751954655074332110484678795495076225027572134116648487586856074955588272866022174185604248153987828089466937421955717821759521796923964015690831897113647205863569349569631045776811344345398166722774604866717600305753762275772173387962248085743512390101933600499960156374168597617164060171019367078039261810117846748229542751538440579168366686003368578977624586058370386075545954679905348817865482207400067068210586128360257662519484419562770929099931377541383220089157802887897572629030468625247616896299478745603586590966628248506201625409508270741665333419235313332561722264412997314123028930436559793444945259346539352369572603006142963431017747036659644583956210573681996026988759028433376072408083331081593730881498104104119117098348973048564609769033676902646725488219203606173350553243587462873964326879010681098490615950444520513909806957919381118340913552687917608320912124397380290145229170610940790073170322806229257534182527457463780853318928909844712338848456047502343670377773420259544411219068649157281784527762745701876477409538386102724941270193570829361801006846416170796906466005570703189594287876392744477984801998709452204992525891770016628984764614618007573053411267118033639773808018598082061619960165369907681550691971871627099426072123404986131812527126852876012240340780853844330700575729538037145641275439660127172059011503286659207161002954610033234851706489948508986881555626666924536516027035155926502842975822052696562263568925719912821630569832313977728044394767149068268388991006591836926139202642549575682611711252057626405820256847729694412041986118517415418074616241589541714857894085224448111182004577808445520356380718877670866183015107997290763531019164112169835645699003519429451377346455206931546908108179195860333436015380251856328113500446393769528217913935760286943422676679326070597840280720205884521351688944461179597808671970796385172724852453964705686187189475633554627045180500716806094505901698035671407110447954923215758132220139247467836162442181819350718338441798039334798775998379493937852115953784527217725249981873069742046672819742098371016619032840022433273345874616859192566370631442772935872230703139656841024668315239651667274443360505196023540839203671360056610145109172745707074523816148209567035722113846548160561162964731969937280805288867628132138188300469246809821589140121446519063719913502761887964853931114118420291616432351077487741328835718555894724123635508610439754250104660942269622557539957800524422325544486391780246123727616664360423300779292954280089430582553833575344861484521842945649182405707501217167306481526249040556946341811159673340450069339393023618757010087723792853732561500502625015302426495739030109296450100483316620442846092694432079143512711762367139955525605826302814321204564660134254636475099649290664698003443763947770781193076296294550881959463723922651848344603338010760738136954011426976528960284904995630781440518334944160950315217854404520158022464099651179577261717948562057980399846103367935493738389414126654994617167807535437953544912107585410786038516744393890160343831181349644333189879878994490094081218036981597313158571038307456690248322977982421413759437819117126188847147313561969639878657710519664579356291063919852610545386430839468900351509312595590090609371141137670472666703133184825818211336978875520660692907028355920463676009654739617597571073295770229212054545245692671546279077689303612045034407544416574586097445306468302538763859689912281005670781188165868711731678614320322571228093613961185128055194593182978535236409425089778379228484630661057793167776081737524215666770269522702475645160572689579073228364378674692119750235678503724223089266454999024254255183220242002967676385283460378964741900565091887672204932620249062036694599987650241033924169764628849508308946976000064295599562087407271385205275905933278931427918467580880744116451583161912905866509334327412500722274341302192402443689097473086449977892826637003672995352511347819964375529420263483760694818660899263097367452610405988951390435687328484488877377684071192331059454321760407387869714413226662166180017797551786037530699629003878385612201770326343262307387518816167455919337223719558096636045604907355769628666418111156998417644639916367752254954976211999142350106478894182323678610977707140845156692239040841366326086905951669311339378283265965495647745496731308057349997505637572498264680808716410102913338177572622193818432149302467778925478904676368370134665322892882830352585241489010641852306776373973596582040684894211318419870612755105276705370481935039184530886593128140179080952756049538942704702769692888016875930360347765215914679069907500578448323895147820751728115963908754571023112112185568203860015310661629043087308022896146788680860552949459264635054161165286034256011175725216533952610968273422256414485682888058672277473483708945088660900895356997155762757464805422622681946116836409578229532918411012653246603375425903585588150865263788868666858903234151284093818869562440691620455801717968280467937473665259728489023699508612240942946061723382325191495479636112957588428475870429698121731766559336913654104871171766167134902593547502243171015452852620893280647618197996480649959185921911868096681849397266790633908359603656027642395606341453923394034893100939258686970150704268719463657290255172269544892134526003476239223976373096304006794969698878880233410079284485648863498416504099066859718835820159329281564060238947444806475134763496242017297355113255426136957995679732503089711838331057767421849347730377735022227297348451053958914630668515748238071589472253285712183396426806452063360913328378545392318275587708076630765543467643097829814595150346516008900006331381939204479545547120556006012289909231880669043028667138150988405326837718710280912905350489741548065964176601071664059676899000439316454218713670689819246353944473001133135224375767046655699788955286501879225368558639535543073047108034468383996443497214803778934508899818467151346689318346882808667554965386019505345643226211120829680545334614476668867548897715939612112404346893442202526859472610792536362254107299031498778574092135286864883965876087561211570998431773078142680645400544056820421772265709679710968223736229133962973127302197758181560615142939132826962184631464511676007493665474371077067516458219784405027871019269206159591897449312499921936083396858224755118948529205183278540795991905493868175057282810263428046780262388666756846644217199402225078757905285488745783021608893643324866425119780628046844791343418754296692839707870381586522309988782383805956355060310435031395833066832217105133857886236156766783549898534279920892987489781667176974548007319177339530944661780283232654925242931593497961714132975923673075156980885952378491329110033866479536271853183049501328046735104847731287004784939167034708511787756026824989435936424769650272730035765557753682040373224987155812311346703641239072348684493948697772690221555019404254925419003465767627605719398644024973413099805129303729731030980643639505627727851990386010444911426222678949545857536326491782593959136007817661581262328542180300818407479979406730647567484222634227970190026343668012312199000195958507510568566575832621540419825391910772709780238300028816353225166419998839159047164576208750477006388882535550282649082666593961904640755852831258723759392870957207439628181109792939689471939705737225113795395524661151876273742529473813779728960462934768296256731356040133246074872442792866780825948227131377961296823900536956446773443490780092943272118210782055379639398784971441078316158325935234580660912100048432324816531770227645256605657654661827480789019332914919545664323313139471903338355755626943722463165625303412516706283294526024351342756364732861445941156865053308144764120040952288636717688959707186797205590237741366280846154014075428555807070507970592850284017266722898128695150802912050219572958831404365024367454869882556602227407639348436704982468512439073220652363643493236162247610587371378575861518239146707655407323080745826964939629233073821926012497335228392554913146803721966203308176449832558431176172115998450652304469167562088216026066637292364546591432743822873233238851486797614345176409741412316853495403685486554388165932358704916460616824639645548344888255357945792470473528078161607233670724979265304445084821633637904280271304030654127893792611918706253578226873545419889384727368107974531746822615333269800515378496298601714376031028782362424099211811127076849357176225566685525806627316498073631050943947095366142825666088694384244484584772165431666732435228918943228029288791847155156277197870541617025743106737303679906984816434483012420478322687198301498056392197189426604093261090424747794249734845285830679832393102815654677305493472230052533936866592844041969630419524495436656447655533206941395560672329151667309751222895596731464509321274751177628838335535200681980269423252566209017159692129958242748676290435605513565089752567230847398780509014255176669193954592690086851090557541661881407416007974848874699840636187693413903864231659172159205119181887135941180459637216646750930995900581430205959545822439659506908351120272278841431311896704803424268777181994019038709425213925869676279928844902908873491592331291978054881985096382143097597250700308611334730526291296752665629537742686582327710970447614806097822759475974872555472138183428112427496064389702646050632290249577393063019527636362589381336649971874966328843708677424003348114947906765313808818243798600764208498256099323608665084829536970772317013512369570492121889935758346358525669231911593680814846327139392112545234892463063895339332301184340314019120309853805288854643873620227027861760544378455992068358058484399625669194867317631194429876774918814507886607437159358028054797420668346099164029863862196236195966064404657895494970470135707769804350695740743193297588047685229727191766947299800472706597184174991269685320542131448790900054760243555474295346385721018062977504141612155836212233391605681995448618511136377307067498899033407219120252331455360731199764133682410729662702987675628311005020030887330645555485319522581626999211511180032395985659928175607664325612554418746048794001140834222036757002428363372319904317428519672588724229457528344884126153159949136989995921844533634825968208635896472706209757081955079935554446102434354590760821274203720306342888029210223019625177450349608124460504097248733112889984629297516726296849269735248761389929491279749858099606853702317557536511733506166972548700040175546182189035741046542752302193307007924699312207846583104215067532040495524470025891220826987130643778712837448902349456518429635906151220009329946418742547156166563652807514430274905960504418109128973400608892016463333221299019712581111015559452282726996939513183924128819306647142074005009315424825883660499706928554605053344867729903260346875073222073733235900335987606340741550541085517459429424484098593793283087708822289107233405437725497325673360105067417795181299744420254879599937378300530770611972909783503788621374029340102337098181861407084216048314360481725185594051185578864049681160063939212153779596131857779442564108576911694825640559574949202621056008632494034544293423825828489758228646798261039103958113291022634369070612613691752733521886487901062751664650699649867792493705550813247706081411397760431659739575810384084616186663539743228392527070234978712662820975620120522473138526643045883870386549113724400992106662198636636983930172807927277583725782747522304037772486453965331377764747889041053156770433947219600926402826283650927177908358224733002888488015732431872953795984797340706921943676721566693045860630748683354226005038765518486373455930896250964306413756393051511398374039379435949460346611274892566852713524822066478111022083571308678794453693212788602232133393061877707634566513915544149339972741963023273697664368322538386024822836354324582003938602569541410077472011807427957588482256225896624261638842368516552888388504371132991829497620050877792693051728086988785582519850217358892276440439437752227716245351632866078818720244335364466929255905102926440940810712898924735104333104361720586441283254376135291685618733440565599093012664107747932925483198055920180590440041444974378912995939299259147198169223635986299885153904114411923088407620267658999003974298426507269038715198270940116315156907817711499543340048720557474665342387255272787882057281850702009418500964389716757226396928748972117055149284845659038633082578936091265981222562291357985794369057733170285894085579904912725857113157495277202030982764711015145350606409565881227956320367880582198442048340542319008885380375099569718586889005252231796554946906638382910719225037423449434252728095334268235131478165713536433166681695152923209605433676606780847646806281774780162258759074168931376172519527108521262504582230430677531860353060179889311353102922610146064712125961691908908566418018907346729341453825802881690572639790745786860659042016629441572821055157825594573623611373766528797236008553701839832132846982542149718678468716591325298836501661921161881041207674439538277922819583441882347249459184660866283800557997435681453806781034900656808639808325230561595210643766782783666409679215749083063248535997988253832040383153242450696384973185273898004007920204062119167684223703574613707146718270969126225245753314271168897646413972455031517747409248360918737453413399639766982123466630967944526485439929101430318517491918027876115015790316595692601455741839567642808663037097985457286574844274143726025005668183596576407413036151801769761584198382670671503098908219601949503806268421560718489905808277414265370285722450961351137974791905776210905893235022728041161047971626229317467128886635076669052093076449508135694246302747267770186093019446743828158695806959343919248170604641156393084784606872265066080837707787507293064171848519902150630474882481413134791795623990282779806054608572431763799239883948304364579543142124921405574861134470112629842845124812983882341503684384949011474682549103945390825079312834821363604470531238196113339147207761431745807322541319337686216674848032070188377710667936507667391815788808678616746941632458942537035841725658198555076826400119023387404955224597474251405957673027900834291059726324318653965143168163993524234648752559384346010581272925294468618454334204308595045211598631187924305105546733429215844955645878468649108175228508900705460839629454302855881764458824655562980162295990618073433406370212162725710794905712390799327117893175947432818607578059639560754813440102641492146288638611563071958297350402010763276754321529532110364278876718368832038701361391974141769352807032303130353614200548996094601617967646962095123032523365103292974289288620266912542358912407314988133438642094175733455534137530372792133809074624677614799993734244872079775159095792720623280055799454300625639328196024538215430164565507406074426760201330223842019871956664264684358036352995775586337487614515881026697102582022874131318630458675796962682205018530772795942726214601720897424190688598057830409162826971511547900862009504561463866409091215756402137275586740548881808584269537012794527756510894764340188788472261420395589348934366005599178762593887092251180872996643878255914579964038549355445141210251031218179204909369215171004947287298075830108025518027472400289040550645885071921880960005073820691749163849687819307064689450027099728012005754403716381505649122967249837872334566520669503323946162061877760304416914831922621781671789830159658343731386096505700644286669072886211019930415424461627722142726030008257565052874124941918384651310358790709884454051923529931517353526152806516215354251121728893804591207091221751734219486942711413278081127351702396903899589950804191160286125142401295545465343787606879557632835725423201118888692233140920931461332255122613705081992293174155104544704000949989008180107926899815120507437493821204653652296426718915856744275418564607865530225353543927938969547691951919710009933127405701884775578227266628730525478157126253807419710100517418641916124106019213720301598887580072091968169209375295742610462615571249222229438970909214871759551076210417717381078633974596542150864151422414951512290464181450298152513379415969726550730581578076421106470586043069607866979525817307341387585373230762951363692154206247825379191522478674338876714227535032540439063495993947015065442659190211850876771482512855348424565918346040236558299010525188877754784888184077375572367286511276724985154632173339431674972100545884428169925543294316834140207148595401362838143862295483969921808431855755651261904301852104221423136745504078808792503885921167126828135588565712231076587817466720461697210643004245088243160724694143753044907380443257592918227637734127993273914098032357060998133547644167256416480378360692256416432622732216147844797015871542894631348086926255348450430580690052937588768923384449557907673680480083787142213974699787244967592506452928528347211308372699929589009392637572391146933429763749958984459693922014062427191032836618765242417157374157241624453908325220423029952131315249096341638701028659062293476344934611245258838505994919947149620773354903821538170965367118710964302403544142235597762596300420241803556929000895009895219418398957251198505285923420399371276051568015020952712179476902978794060813284678905061841679280279487331610738269551111026127554832159516032136212593559156315576041899972039524439535824926828895509166740822644115414277300186468232979395043322146421234886319039545729874381886206064211572948280881142202518919404821276416696792102964695008496717912404086626525101558436300925759572534953847815103898271369696832741031301699388340415424134990631022407145478042234823003750286399606083826078991008812257011467543280478279861899842592192264325637944933226503435418315712965382021364246993866872640079535217432700609937876288906145851895817863800879868266647746440871166011249096098094087178755526710905287071217888307744911093861438219696739707257570517410954813277510222528722058918686208622490507522380735911570626526830182886227451576315431851951081916698348309317651843082675843948253190071261533296172821863039019973010559761259009984753986786122349396988881309972474602663593261241963695901441413239014804874162791035317783476429892091606596794684739002544119016856681862656614241385710533139766537327649893643612903573041390319352216349784653963054322809059453105736560670963802262257497154853375682834389667681514328851207227509284323284332375839935117060340398294587707381158647575407003975808156231917294783353749631048107108999459023198987124547278108648112079028744313014262944413360251998766034479927099871101928655797601620255227940827969228227953770423106781781973692837575540773167284287195705567380752408470338523730183702355688248156242843790206246176075362244591477818990449085647119864921571292480191451885295105533867290739396422848508037704747395272728601519853644363849026767276663794636884962053368746390755599011689221793753240790438604153115875072528636924313642747155931611066239981802694595029234278267537256064815369575845488510329282804826994816017496816018627178609703372394552100152208799582319762932547526368754796838415667514784614568678157601116687712106684447943578824172559159688371667447411281107422798451037326342053368061884549483660270707174633463105216596889739763582979171744983135711488768421704050149380430843049943481217973856810026506113796518082242692140310344091892117644857169230712911002053978962204526574420569567047327079959013374662660201108760352489971570696641498552405468786282864873337386061550810613872592973427509788908122768347221310865982630528340918376906221422317817043243492407767407937743556784848284387845522178412245174657851859503816047519450692888539721660286224411663224589413720382225513134145908287810650131163280652096510542203093790831121630402443914550570572946825035026741747854207039397106836743097368154825254322027716645945137005780936990133543841086966374623068082082869293550058929251834903939725170915356727301819856892333063915517555307409354936433261483756997034933741745270848827475101038559502899773050632477891801039461467510018365312764474574792112255187260199005206820321865377017503228565567543687098672744956781432692685809179278490427056679972861101306680495855376177718321237816630576537650321022803402841835021423233553733731427110611380254355611393966279848379652745731013806062382217640751800109124970078027718600324575677727696745637271077899546062456782387024883071848853626870635846403612808301442324557748712583676347164158241142428455468472371312546927075285955068750162838922199059982433685722905062285123935528214338233334109892905806215878640755478091112287784681974833953107542545425736920324688006247318662966625212768104110265765895048134350032580460747099898620877755994149948572955012373849408958537023663313518915085865044467547151785071305143789125562916353877424798175796876738302971885561050822900659269975591171519741578395538135390948318788569984472973623085906238054818164647247588168066071672649211905724693590334377293487586515314330036529032213528864835613993173521081004877017492047811911560635747556701430525093184013481479556289566823231458732135678503868020433845896226230175528347677641914290244645280425693250226676924846023479886741274688096259482791730426031379813039341817894353989668864358973028864990973981359190915123860726951647831585978974308715010627100244590809742651240044586839276569018229565013032883568520511594862647454354799281261009185101949603617879539356596015623416252712686175835788397750979459339330713585554483877281767087823153903553530872744772213837898393368531362878414152832599479489720854138424918517654357305144544928940668013002548094319472301398993583303784729971152065031454139334055650072443083604431860964694525910911604930242869969779623446838951665568981677626776382282225883039099483006200347083072448691363222311615588352659058137082251021073446235007373965629564256235239147675872460587012209192191895863033328730728100917655495880824948243788420480699361783673819606811479604987727979139250298088707417908522687559810703922303483276263867808734670793091853454820396461879930663645610293409625096386752056415103063532112604549063854557414754171379747409597050991657733243862162087836341729139870573908765806600678781193623615805662259660854717850345275146543720217786840279361982568863046110550780138406120319820791424584126510448472373311070482991690646807153636221956780784738657535503293755271756906978244438638621971443380666995354667789429232168062478503559040151901771093909737097970218253405797682123912213543252828381484871601052442488880558615539478623948979210950729174716261324224009785978621649367060648550443223519618869019267872206567536668538121561443212284835841197504622262728190235501921816433131982870454022883440461932202674824674006462543770157194513957108851577683355160244835705385449713004859381292015393888857532148683686269788916067323855119885835069205239451083738433253981246062931421123198394942471435766979265115588002784796689873988200702847832527438855258750733957667234912401954894635213482199555995070176849143571400717369882891261078669534684785010832019593008448870213438540263786549181712338041873046750336956519006500533420378555127498427527992838414589004911459475879008090931887067441176919218000013054023028600773316991920552355646488660247951195025984936243770057672824878476105778318916429461200265293778190608570723548873942166349930435684405133379037640985024054952179981798347051116019384455111567077288966310335855916688783304644715666220294450115702273257023433901188973112389399048189567740912374859928646895436409175830119675171200929910763634628364600796905169494195336855362527123082009547778949469149317442836099586977729074896395903523748995046601813669042013629613817558964884378671094896406885427498725111131149833065339380525182062691915400970482390926381791881250727248821605771239551204119454877307667241940632323736811278157063179140263001084511504983829847631575126023837440798102387987753594696709355640918193066783173461191520929627203508481236786829932962424369371183513169289108243686009588425972308664738972158908218918177658496548660630199174502198004179325185695056838313568278211599424083091567031644726764574804911462975701236666173056663347059967394244712555309513931251140882853557692957462104604858087594337985633764663944661557242420600144906680253713277507355046408555505521971491360127848324140202813137140827557819489610138881912130477525563372170033006945832390872876013498945549488069938352863880857214283552884220313972008885712957641342267072392647431567115401994581426254823365008174807629071999549687637519462432649016011315420650080381630252140408059866455884680199726263216860014292296626071373119788128098648516420027685779169566660985715447347766407512378206089496867890881581254337551548003662392115951631441004524531315071038469666134917248905756411421481117517020853191127894951244952000939106758513304008497202097152334589252555318034325422809334248432769891636775966077343649088539457694970613071207392071491556355951004459435020252111393694845209393114107693313511764293449419801558473374275866082502245361650951889172903026842005368763886941561167284917043100642713750001371194435949814822385866582750563674878972068573806804485943582287415978934231118372596428161013292737919218929260862847247071926977097569394454161638308776326505194657403573534078041244429563281901044287927871599774942759516629325859746537230403415785599113926016560019153920685236071039881689488140830767634697073042705128937970941889203974468258500026122834394320918291767380649516631939188200539567717788285362769432048517867622937918500744068828528311634337390505076877275488080957088919493706396583695456041831456001038466315148380597682773590646497176601050694311479245158529454303957056813016874490680168654680220248226850106075847077139143203989123647027610030003627550096549766414127425341020258990036507198293126960968834729066736275443001695359086729075947777197906694228890553675278230852030855960093277007298284361626086831933799473157968497401321085003042310153174426328186828335821525728386363618561280925915556199098099418391368240076394355454919972765948073932071704425317330359627988165559412583992509643433046326712338378992305846448895578428121726725506624805991273034661230711440712014307691640824358969852414847136251346524315956508613329190311182610881918553789834980734836690865830294691213524192659256155473088152621249494689348888312409954000794520879995239655221948858280603097138366416552830908635227938185856529379396076188250249651084908277075956340669715173323928840598081646105731069509780531999679687010667162337609302824920369892288422800186691632664262203814184354597279835017296811393432620247106979879118692034212215265760642074582601888306631352453133767310645705418250606475620218197659269836317594616165441772369353194617216273911158995269807940587632416595521554149554004496764461302576196380663108203173674150808048061804199008373609217264804400512154945149554183257349608311680595568816252730885146263919859644124321850550846906819715108225333153862630987601381466313964102663149278075262476004769856055524208700168278801539700071886203908931582128865845841980132881128246792410039111978171277293773880436683314776018525190642118417958816572270233867136315397025185997387525462390109017678578144318664945562495047104877706976447960480137299161815397833887367163102746587738995303596803207033463173295589884971651901713804235340325358053860264905802705134156547448992443413070550163399134250971477523449728737697363643318410922129466943569727122845888228959637995733631105840918141069152085911531348046299758849645209308812327959125040501178020898758935815548275949140895551452178383518689985559392952156731575572061910143027072624741496828197551213391692953217952362741559255054122920758371092213076125475880345695214030174839169495396747392629617874017049158653478677973470595285268606533321552704004850244372019822088199955737599642496727687426901670997752594256399302914672666297944973506838421015454609322429967665784460623785979335011048484828053900337814687548700216200011557120363095641297511232544697301707634945830942552182456381086783267144776136040768231493150202375549494388497687295750504164790652539817563299639807743668826387454315766052389531707910686026767776831688404456467461893461285340243136973344339264335530564660208251981720241469399934963893884434783294796946608250204408042868734000267644394289529843088542247615851347899001439669744470034790325842658219585821750313537639941218183616800219235180517345396457026918094953972004113943057422068578976773607842532821323718738048507014676949518592030704241077607110416803749148274155165469489820624950851577786662277396295413923977306027798082048981845948301026778794012751319950478686700383804763953561654824132265372834504509564810120085924223373049092976144567210183037824666036985689749400779964902672541792465306397279781465821024179017313227334560963788326229888612594730848763343236535142930877316966149652804684582855298800761750397190328251255830191523353148060495712891586964274059185298565095569636856551981588415065612056022578518308666381603652722778622277476788897826765332284580589247383703438393362142946261964188091658443980623525590879262291606884995831224361264501563191040877309287016887041077663731223547721619968826781150714047482991526667364166746924458278690206092343971067506983578037614981200637042838573781739452542407055644339400705345845673941359109933193667848938299438045990790336998340218582045897398173310820855183406440202871015168125217048437657633547364148111505207691719007391152403311529408614871440944638274359075891675477240317779539236446092364187272756978477565297681489975723165679142383849659152928893805152232434549945560136851383505019316280988929629417008525784442179646959998049340049596125885927043619174132577967328658787044458767498785422673070864096156830089000208245987263440834695075593941874039770420807125285888523335199518014184224529517271075598682038389560940676889349650585754119579011226360899895614604071678056456611776184533466284394443417975769465908709370931755319653072771573616700205401192139238730236818078238634345276154936563291005995502002941381639233947639890484633533517883517714052647810292682643141825910697283799514899075784859282515925538314933756527515448491841264720452022889904871525698691260046301532651707773672019253356677264718455804245133192939545978640738572274056564672420318103122498065188002699620048449474534658883217252013040975558744546804393462471739295877220546205759995823936454713234786714567695655592103840174138628747876475395418646391706287323943706492382757445645001375290938366523307528714777437673246258382793723675970579374113301671067095147044645960758597901040538760704202496654279821774504643664936204000124210987025793249716300879515021688642738458576604703709435796408749523486163132400475709628590669184150792325547925738411698997890865696635729822545657395519815154171803389925599511923575414439897820489489078954265700523807711994263682746163065846191640010945845027712302016069337959105606856145969881389125449068805529510915276561542177017361929495915328040110730196592198800909177134779557476943431623699405903459205076584590533340079895230166316208435492415542670491275445168436542304664111242279916068028622279633828558779846758349127446001752067395315409632110201496229179091843192575223966032852689682777501821592440161234082796663713094572654735008551074260821441408149322085539345931777360317373803299516157226526939965522375947002533684619108147195134868655165950171470001289705138114469425277245187412171317138795388528742087959392782308140013108977244292532382644734272323963892577798749453980399716267813412056958966381324760764312800024492859387140454112591393033305488222550957081560227862159502168776780113587374255105814003937829440242264859756306589511536452085390737996362094499229364905134534708703171135939605881413719565442984991634747039472865091428982913191909708876827636771803046742208341594428954018795133219766543245150387171683045297218772487339512022713988664779866060215103895451639261267354339128937781752304274915308268176444775231823029224352715372167005528671094675187554339204471198050593632696784322561879712298161822319168346417205748884746280629078864874173971740713639815323891135897193697570048082957537177080447103632993372988975749603330559634838563445902636936285184080418023892955356666508294082439469602685448441917619928280690180921275209187392123491140172100909966134385030745611465916604642668752226913037840195466448201925944678054494996629408057642533799174114157573774957219118766048547736300270956672407559363010642154464473141776757395716972877043568409292634145550160837730853621190090789463029058953019236341788629376928372353728896623400739820480052679644442284584847351248374535250451908651663391170345378540570124431962885748124931859913716520527628805563812856096899512162012131143513528329444541874608966983176873553395922681664191755812410257974698376787683372815564982283864303548385334270855679938145480472140025203318690301003874762594518922509382582837155949266738956901803375745483078952338330455146602718295435638225423081973962312620664542662843123175925555882895335437947951956398455774835516404853598967197325013642389000006807902179823541674344982443529513235785680869809133791910009910658821395415529808787176747688204148572443923720676860830953458209715220620098472821171839479164575319320931354984501946376050633921114994269617660940285625501901773467709366392444467053042691859589573932152709225136052766065064068042515187608989502439421333911795350243839015656104878509558410732522030460263523650747679480057761097526021863560155948359203994789631037141570027397406895451369223622481546384756511665878884438478788346976703245972459510651740655560828810542995909354055292042817330157547726078446511324475536562788787397522756063347577743329342255695423571663332010788618501434045846240492413224804603468824609940398123917907873876705753302116360143884307184418481587759148821675313104857110677935749690611202627353554422958786689516544351737486969513582346418525784061690492057743553488032916621056761702050723643524495210170865477786526273942765980378077263692086522253865782727086671618455205262680206032872716807429187309574200940189284433135220879383393962033049565920575058833588990660082016845026989192519000758642520523809562999416291802636542836610946151066400880750238181222617073932121811767968719881121443876170507536123535023840057879765254004943883143088416697993423333734181213741001776356095159536818431871229852481164736719728266587790325364621293714586179968975485786012921779783473654440075625812967799461405650913116477578836642184996743215764324505556196076725191130548822965132753597086768110428816487973544976794392940538084133917156472745378040190663278067322717189702148321035524434265675120748080590740161245364568593570038430827631222819333462178844767974875387374048102060064038571123703309259695738705185290442807485950510220412474580155766057153172328252816228573177570868244813078297228579053723697048493684633466474745980001324179635666462116861350601294573979547134897904227254290032886776854997160629752170120751225165664373426624285204612993398328255831621148653353987201655858576272870508285406412520939599229136211988242628615794610931102455979866871417395612406586985938998537612637849427834024329508387748155519693885286742536772842069212912026718822471205583660200494534648627576341266349813318842982495415348295708332400036580779499492446167200936285826061280844472052360669525104414719749574504003002441931850589519154300568195997162307816638595841578916779328594820690680298031077431576553308151983819679204553598419624563028229582084018477667062455084242869903745531929329837475436776875765225361620417474117513219220264328323244225142395872187656214488361605539336046983233283267842625653340653285710222506065860395711963178830750291367289517167440887690621089609099122215028875661201918329558811530231512000869422464894707157019172297496129200236045406737189640390999742624205547713686246065235408289894291947887222223876152208998225856673941168068181250844752193316053478744370834075173235923054528504111939209016600466253122922480231127550603698121078291830731345238100693650208446713156162250229592170062918767228201548994842787948814725421806163489211145977991234376188512212199156234322440741225221883991037123223467927312819524156082436122604937425572260515368070862958445502619889882168093695373705395220464409249977172049015828857458952600682223384701815187154425808440801010669575439665633223510772355128049591719428541994142683849027196044557278022647179724568325216657191634647424011111463809308323488191295402159332625167574735827240931021533482866572314385249954575821288034784462960969438199207759110491675259979466439247566829222135185314562182122505443046986212132747179889999938534720575117472460904952072572153078566003830464929272572985406850533909245059711092489360474669733086444757071432631044177415989980842938505857636626222931445024740936337375320436331748960599025389201486659982339302609306104155456335044622456215530835219770616244554188722206465924539877384379465319330355498796307342945248469823710814715742235279143709876345119505016557655736804366251352768075434355090300528644543986642864175015445942219774018973068005637508069899243568563441996904532076713503612236129977567172035488749439035232231395724624871250684805531191718674499173699026230054081532652090864031156228124942524962432214365530650135417596049541906666334104150945106065659017237653304818455728253219092999412092449060679898667083251390012296580802141183441613043241718872668431846828548117739391839465665422066343441539131876395906979319732124150600212221731124058132567408550064043560884348884049970985066698759804006175077020864131114671298604463799329814575882531166902906526267107223380713269287050908466042121631219653208547276771574371244383165963913066348097199606154970673740991472647159912082341731139712399911800475320426906621111181341022728155207550056804644852705572133175202030941973726414895260800347007085726505326843841152310087168107189287203303070089280947558095805457869077310579932686522828105172389171312604477409682070934626732167228517603061576869907712712761639468460220911794731958959654534566049698179583663667921834581232392101254504163419289363350716842119101983335691389754600073664919880845362707505106309152651321019083323277566968599653714238461461222003287232354265653595069363903387514660878733737284177634791938914795139371806579306574787332391688750393446624934452165774675443012871983863300153084305298698195664829257986350555085827833591228421003077724651336086929792300819287806792657052385811761792621128381631114257578926991685492225137450726958599226361707416153014320825405564475233002748796421430844137551680768458322203768676899023526860551614333481255715652084488491900588896804234368740261074070786929970153918475903301222415233648238074822339152732292418811388836312773678282269960988947832748991441048427377305398597434192663304924239355584446540620510279237437773245040018009545060740374739705261696625300185151802262566871372856509815542844414303576664681071046862993728739823055541516646371019960599250591208804328753604648296385867991020043121220313325825305154182222602045009584280809329982278759582160102207688703273660064724115075651990809037213545699943025864898421207435150299029258336942380446677220433653275528687580693505248976512750897444378548208957476261556355995515972561148495180915702875581051174457213160993836360273222712294189270758620330968137084492508697510284161478976856382346532688993937728555295666541788115948820085655347776121763115318302222386246696821709044007816635152259943597537596878182503387001355425364219544211411787418596318342374638593041038966230240913011654481314382078688575762389873712304412276666134292792862177814160730361707232696487411769711458628288476403197492162513040349589000111811788526045417648661477379232918371610785813204846314286952015134482583914865089464180861583219571882141388321319455938029869038342835651003914659532450267263488525564270623560218398078796557984715921379868743521507137083415416123177938926099111048963268256413910504692508041174821003909004241484663738618252596306707816356780920070595623815129027049824506160992182007656671408599648753423738171841801247331606096465446075434038866145104835224645105679691308995835660891952185799134815025594863376362764633041148321497678118787918845813491531942106866993346228112816207406024104546246966177105496904448867300489846448618551286776478759780073001654083864144325424050232169766555845922549437662098902879981038839574828110312058762037742677966083769965997199112978181434924086726623345052718245197569846797000322713789427604914891595482835595615510720528102701776237200629329527278007727119067349194686862082299992503018852239831411518528712778147641789607282284302498469019359852709708034156816344421306316950242233632399947068061638787954527738911718982695914221780063927042278119260269991153077037688610683693854371063599969272967180260382120319685277965252226616307518101000867463222691236750307306958357635918720284576857315491642650329666210845179252290213036372555348327289479051415024137687212645345824022252231632893346571839986067868741727682528133147376569372049212219342818160517418777512542767865431204855787333542470191195378642039257243849887934202197202535580157019768466009427632973068011726824965887106689786352175469347771575351293373757933466459399210149551788256824883840645623841524122622197487797300042075205727759500143255879399668980508448153161418516994804382222077136153689564173230771033072407263332789505588219874802738255145223862641032391509193872905912667527623355173441244446410900423585574873209412438757269390452896986336342614771080137095147136207484592872718424782075118707745513765511655152413757832522281907293254835443857207418228993805361565491733105064146540037753137427985802001222944949415704272927282681138901593414818741546489574324305273833055725389263953570620382118410347744932509886079361452187472876536787492382760924293905676268597591348658910352825965428371251313735563261453383518982782749663200242048638979760765915319757795597476508952017588617015696229033588784185665063758031015302581838272896670053173570022248251007035943082434584615091297124963361053400805706358575612359182266073950142328742311201872208218957267684569415976792078204299093369089052006404054121197556571100878390557078402452747093426397761645733922915905020776812242827051854701283654513131467671206673955104670087007123357492327529330110690491135019667820664453704083370657546847125466971242165230548070784326780922100799633940435461876614805512984499914339605292401692492079528849422603068507624601708746686750599556014654207584021758015501103756559260002232574348239033605997048920207695908214732326074727548696255375769979058338382258693184903060453787963910450115441061986156473933059701260983869344832186955952313673149755583197199973425207938378056975984003133620373030153813503665876610803530278097486148874139032130696413009752095095484287767501420743025721231657122179136786356690254629513816438538163284927905533460054893649132067390342096366846590183403845492371288276878428245178186762978593076432286726719221596368252034954424099666672903766236680405805898412900985234011593269708370019687378704930353867409884935222350460651330720595421085071391225851964502116061915459086246762199040432475565999390711517153730010111304950714861376859486750332306966825374214881523685038612866099648774704123817392334082959484562149790982479914760765403746696700031448479738813441945675093705243971508321042722672848419765488621502486935213189775485877484129082286269941034218256278917286101117455385825929705137898963844479317888249603965276073818184491354084995895862303660570614302301110775061494578238582151279418792553544949268601625335199611478788077236113470195294093560905671687610727462732211926033676360631266827037536100981774033162283164596579240779538621677935386564426916027368576529546212314527572354609571764415648844628944051792102604246574328751318618148182800436101833631320822278808274396881939891313341581709382466469724234077807691313509821383839658404125847547240163414103009633413788817606592955939502493807120962517641229721355474941843226352730743507924448518831055202554228383312830076292699996336808453495117127059468590330254136550791430779830336685399262908783102334736638846990099197763740467273554193033453120026753887452352135669639931982143874737054655635630467955986647097421061090364954510386218485594881598046528951008389472837079173505077471246129865908370633080812546861006849923979709443848451597016927925098184889321229322612487803405578412564789596039966262420270500259133698554814099668702008652801493996854241172648638701136169407933645701707675331652535168441075908878598107179003006908835701976381397020101798485846388954664221538120560831609987433949863386993736424993799513583389702524664365930125715522687709364697308987308108065045085056740074652288583554604446954345485982142811121294204315089174571113104188010606095098917854416648933920221248068622612430122934917116735212934973202016655261775978098365099849019007661321793827215227198064665683391021800043643540783443043478950891927883281636941237244894862391871272007238439007862148594929717269674414317651554065581190922072171796859701045479352349756916054933471450546940822889536442449047987988471673977072386499967800214632743930831651788517279234921990264679448942532088166281947258837497327968829268906380734846045622064481781540124472347079583679225315750258328914350919552448929217751546265434708164202366276435715157635154279939549989586346315747207111446531852857844848990247861904895535508540450215437357430086064568472944719903431959952524980140621699848461765774565079236808316589705256303053517108368464089198249181281912599470301304202227503786410460342583747516918018766083900106649029072013245778819764679482314327590304629561038810642236322093087430038874167108708287104297419261431480460566453066950093246688291206450393100382616100036294809819211176862607445736668414086998798015536741824460298839750232079427616815387291282193340140109367045600349543306543522826759850060677290484032788793373412951603274020126541931333272775758706418499746411644728658837237512189776367249268326081111701471753124249976449046143577284371816358909441112985719267719010221804268227362988754930414278656491692933107065201289598268761025893678333640959902236768991993497000998465222483394583071432092726602761079747493669169550242860128574098045276010640481114008748335508928687125942205574858448030627947863358703396180665315289269677646467852901629162194888198378387068129001503028956402478573948449269618791247183812912743092854405104495429312281610848689622389933905999396627293138087592627279215077586753026015740418319828004079539236122609939555628253796766388543590346394205819047683435866432645389853834862870044340612605765687107943990276719850189632521955240506158798045316775137281362140655772055701717381317762866209401891392975796917786643759803333648314045268889908217441441535743271702942536361474484250726054254268086853812024325473515683729203030273629853246512342432698815410563087403759965669825882667102427700727622512652587541626634622243723862609880470607875135607424840353330835338571654705693572876284070411597921288624868801131334612686803682515848113909607927675246053746002394552985069245337783300553841878999633021702267891517414669892353551694381313385749151679061000551141580469804941066744245935407885140460487828847311402116196861111541565120587428192679357111908771304637668396652375730003253400028379088224475538373184878583482079121224261517744032941441584753593359456030855439795880953610354728327205124564439462523438123648105833587792977036485777286821928952607722084416634110283009731988693183894577427327434330388839610391110788041315368517418056550528093418498459262544536035561782029705133430646890546624230190492783956442928070683836799877956285770266775533252105859932548011394057660158652391813840582746177289252148767716627907247867124795229177066042934074075529958588894353648635292155595640949442069837252745974149595476842218969904694111309366949494320736369501032944716952026406367577955865503119159547670658149241151348490151829811554751215056196375882488265271535576733529044246934675041614657441416168869023929652155828904461534130614635822837511582527885078000218237823585246121349437663316298642103604254998068773234350656766698526555753308560914845221061449086197750339718894636199182796664587840086843588824379960816084090629112902052484009203450065349334125910727476552619850797261644465071147333741575789125596785511067570582552178594396385222493007510987347640056442086011463551258594884909619962292484265262032188379993498584865958975607849890433412367927401326150435307929200027406677824398265080145526032424009934706061998230404697823700804268476011972625266195541462265671321512464146037168497276065554935105535501688871221436473906522233899350304917439626613783107451786057502932773090357481949252162927734800268991666990349398168469196652178248979211404385191677350462752658989401218520521700008173428437228649520092156338888908801848513434772599672279499194650256886068721387812205005707637533894670157933782266016859254800882273338522997545420737318085190356794483359500308171247205269167008691707082405794732206603744091989157835111692106101355980194681581895120794136950888281523323255056941212975585044866173698411544186792086455755016854291879108364234588221630713233603505175378582756028646216215654729917820924904098648314431419820766020441742332360959476193927453303605767094154444092853369314431143714319239026316611974343405076954183043447314105009650304173867050390782766572088170410931886183115501966711056949177001865097618953668202425965236277363396623099778732973496419735446435208687489094798753777258609416450148698563627483912985144952816604874734597246090434638693932985820515191695433826554296814112366712114209784954075215931297145228185140426100233383119271742922134929966975521514138273556118502246660537426329032676977925353277855843642475221116728298479693833780762816412228838267879213573197148033143827296367608410298271232687929870051486042131536452252983971088535272679683288223263609877046543335902112493476631229883276478632874187323169373295892168068545515828289841152050016310579352556147615158704271098620957806198892544770337677493485949001973028211255793824062599309658396569541738081681784458602612202170429192000109623929766307590036293175590479775480991481013217932153040186574234268808201176831956218591194720090295313956101424917270875740527532385412717464838191099542621017337291918142987247102244377823735202237478779896522141462162331127748408100296655737919919496631807940855035959137629665521759110712138739201968746959419918776133827843643640203134986901105506165123663388480745113884346842466830214389980791028652847722758891630753838528988823527233591698582037615476234891177915657231267337708318797980102665611856570265030097091191084038260227708158046418323463277660591673075496198551179834876635073093943584941008817413595387384721239908998868787116994441725138670503582838184658736099127086005274098381171782483623113684290844729784303295682987238667940079684007628502525672012204846467160095828579271545102196104325631145114089730772754603193340926909626163266943920700022203416665717023663650025446005652670303825300742866384072606635661514583717184676637537560075191544897315591531051739414014503709278631570410478023184188838122978445106009071538601369945740168269680331773379507201191285836651089140656994960353206535044636398246971960294899592137634069126907619301466635095774819795755489431802652274818209983555480117881519986604880166331931147782868244871527921389403052564633247322965851991364198808283723792730142507863397938167255976078590691769403341051429335194734376939562557070425456587647205955892980347209469266176544414297653386620481367653862553268262061830514637250563014760308243411101569071315751330790419625591144046778429863277233187416994493324719748791470244433972648030773440272587937372346819423993509316598243000105926953879799051565723158678634420206017652030704126123114577461861468601418558938707776272900622846826693238153107264537566850685359077271209766075136949143860514535968651658839412699135868929448875761169070680816892288729102365655672651804221410667977473079186621535934081804868154278477265206633950946792085669870304531024383177114612225110565773563054545862754594604545883780592732698621606566793362839388004288855571374539549951164757351486192085341947298387790387083360470040152045353641097310210508807494152562230204325860065718972529555252368307987537876394837076440435942588203942558089545964977506320633492065421945622177034706338451723105559992910386090429838652359058645683815296116537510209746052241639870051263300566114412168632006338416736952413046751251040496045912871631422263157018226974227250074315614198469562540663955262762956659323490209662660481163816859270399678073299333853961135010947253672886467996306742995503757654081758905869797306155538669760176794791109160341027080926021070162100715187092893499198176283961768226876942822617185326811397973591509851623753672193688321702291476065284635653128449236731909159029068670243201816980313678353775103501812747668140478375612325873290483963018776958498487320152126438841979040766160258544791272255829004638863272138179845526773209365864172423812281281417763177494779402555384390674193069304211242170724155335837249502829090681978288104335513276704231881174285073457176759482558782042514884062244186254484736891220501727144666892648199747539248168685586048197782683113793657491000377461791687383438893432592589020583940823223439187409675770339289885373115423539161357422808706604428803030928993137903466931329022318038312228594591266357999720059509726637936461875461104644629880577536848581837618624910965155598448135697596669980650372286888691854074635117985685036913715317391608291465921071996250080076624240119509439889834842111235178510145152147770515439908675170505615829157574791945823202277737766186627111850059320689893355692466900617642869810432800699365451969694453072640149596545920496518735411384509578386752117060278970944298630593298478718160051261593330291878106320482761361575083762399629558169057570575698888874674118490003635593357644805653509536832081831361011858796771258492867943251180098276399177310706716159088054219253804351857472871588465602643454516905805262891819773593415889317225649893796355257356450359873259161653530083174136665390136107963795890589875506665133215355059484831834165239400175684876967007046429135585191776974632294323845109090523204027507878388975535394308358294878213238031512646296245054516397912059714872219147719042207307652606241864783711221920125654277458970325140243856882721284596354234967637726677220018992899751823030571235729948730431404994983270295827645069175477386140578604059177999252086195565913482053927323467406629599893687263358896357359870054577756948080050152994055996042283304320799033198287488089977190816612378021623647842197819999961163132073896754385561786090440906536956951875911260655362520423126953476703204861239201562126072670214693413841002953624029834286741214605312785429859235436288498457700339267684848008664535937511364782929028464147466601500279113851152252051732247152780530063912693561449989270238556032433102834109714076627851590628528361176686474795275120139862928924366044847801549968087182465997426169041754167854137781894329611084750518006462743340268586097144133553852375382904462650181065264027409077050376911779786366468960749476384705653556427966840391614802745947474482125885704211121158870408377503406985285790514007103766492291235052899013887555063009459423213024394945489983886812994618679463746562592638593217449028870132152876194630847514765713748845590015010234845074718248515396408957431794909794492052956102953917640311792983497355125298861305594391134194030279498121270435301733438527931741806364206146089679590401738289760194030971654175509035077918067450786642627292559277590888090706368681153416895698979139091027292762593139417886899032955903048017730432447088323468270898323953862243584676534154192318194066260272817431282284813025120221540181768171084662505889914813627435563619692635174980017902500199118959018093235063760449131197434121054686058612302840162511619720828267309044675977530277111535072289138868710073776450021001314903624688039147704495150514737593152921045955608985939674558240085434018396455211207328052858376270280686792043596096466703409357755689969782646289589964907452158377372873867080558071728238152166619875696643347544842177308186085314197345435052963320842990923052286922176468249703878683808157403588864708556973722251772500917651027303000772651169417992820309770660082790828202371339806446439768375528306318708316204004429125411814683922870470833994031312750884837818630186924370194228085790532490272778235110176028201543691657052930360429363478175998387921772398895593121212019014483936957537104750136387149418142246577733811791338597719512515763516142955366670644335230654385782986720111489033731361484654288487468684794028764694922268312624168624180075544457257680313985743866343683149989235135818383167087717574492207923489398748467761182800863338090305641813731826179264012840762076931492843919720484176492628414745639367120782042641255097823667350796874011192304137945195500803053006704783192705693442678289116870333071531360785640517419393235535057753895860391380521769220073264631330933903761822624765490801038695138336112862105886716079017559701855842402450137230772958297217660977326064309110888879894023440103525256434224265512553588608659381214203062278786493885134358955632157513756406839838517647170642247360028182081926519084988436099743598184266814079570446083232318570943914107072092867690964721660353818946021782907247806953558479304251323966166603534663269011839637971745044581888585436059825412455373822522619267795406983865529491390317315751164482945237534485274259310953411854411426171496460456675942057798830109396748311167462386545935220205806826906473851199897342514781863941517739823237082517877317449063357002356771197477749159523431819806944088689561602551422067860912716237996274896557296865594806365957183528610799088364966167241565010002846078138430864812893930540307828328439400804453670041226185098615642338321257832484423569399695692353428166524962400791913914586155319007750469825079650355462495628754874476354302605347658178266907387205952959467769373252513184191879047025535011854773098579826385068349200609041821212325577543297671948828951253093366961465923560686516995160494498088265761196804775727684842336263319743360390766883527165926655758484375206439458787702251538420389090529510488445173785624587166233664903494193771854642005378290920962279398340011974635954745204996124445233575036997752683709937613519762562504222352787881074276687466770400257563805801451770698632436797258450280070140149363158427955327859279018123975118476868798056429149311237736716963004355556530150396893966308797146763894694632246806014119107277007513835381451475378936806704112802201852695003462918080754874155154685162638347179590736704226232440566191689896315434776309427072955641600999285417094022590380883909022309924808755308933702759056123250272841229397116369668134080795456855314439753595059857642592116038581264636694553270892611401086128165372861446362069507316974228719216224586184362875213658843503886724396559243495237720003273594410044866493240954095169738795739549278380022022628571285206457000195839597020361695949646876281266629321808415471713802501088475870587280613275908036474221867785466812736503106275375738630346652296498198889856420599350422336292676631243206629011080351563442921794120109147469935093739529395390048740587070454227238753717466821942361691248065018680230306093619716486499109540871694468282024945877124053832765137088712251292003269454582109921320643604813688390702262869318539242191673319259686821975592749501169339703518095816385364216701838855978042518958117329471167403551404647544318054000602297878356553147569814276408254034677706031079682287487443780072017224616967341732550212471720180813631658773719833270454402675168164585852849775360739402810938247285790035180698661842739913692864903728214722330485561898170252903185368151011158252689410498799410121871256008644308308574110404574194341793787324166059705947694084838805679316270083260619093867755773742352792946584776095662492330959229148142505450552355112541971024914031118426351370905795320938324691435502020168007939708416703105201678854159659518932110401165151433514430331460186088331651321590968852483570018984636337922808189043973270761283545039491491511747682688501538977953928784534158414126209107188380158691436401247260858713421054695667387807559968391133074104417199379302904700806364881150534189581608516031532637500898349666294628406086975125966018733902225999495221308672073413257109448702155718155955661398434267984468448591776856432239336696329278296592999582729152186379583757701230448122372105724093439954520816965994134237672525313402643118600904003082365490078418065755253210264924384753039548128180319129173553738968839134902463829889420756434904340281500364250265410256319720632688761626384230614945177207469236458203361853845367474643251569271647364405395389001540667801210706672054514379468016737484900120307106306738432401295584832845647459674018283634818768625860418367554807987310681999484888444784918999997749756932295415857225682552900464152858658797617769586441428833848451562180835878146254479237453506843115171059971382505529771428439950004372671028821797158706374920335313523991543443124673516003044776172608100465626720007870033923254386819512705233355251774110207778443132447763012722017094233215425211257023518343860687780926330652378902172543110555900433265255005577055089211953905211010375767138438941311347782687975107076082754432965487277688792074622718830582202299081916960450323208064548411929447996068748446890871817769012049672662554204916752577488055370762073890942331686373593509806345411431417836829287494398386090249395042491014973286157679209422025034130269784532033237503796416465984129330509368511764371341427986198411404738199432429063325941165436350220828108466078039238900930305151691121335025755815996794200376058953875683934788572958879995946712271064039585355181761031123986718404327992034032028459954253352168752909203831802651943113170921926138655794645079416440530364514353881887467425433560018351728592146200558957799735960843697074366055392346743930937648094467991089610751951021236845910913324124301214416537795880852750875199287541041131191333896542322822370881376209003890990578826017090581276049925666808743185145673592945237765277709961600576533739221864708159643559753487839314094697129781905287644101023618258709165956521158286486928855830529743406069880705760547915537136429023843055222126841765531775785012633168309613473896837420642224812169926998722006538442702129850592460977273261135686423497663731774928104340104361711652790555379168897956408601918303745889668236621256823764737359347010932461517544114488363469770726692843084681001467075171624215816275850302881288244185240382903431066792938459650429367647881136822619466660280483615829173538508837552210355227607591434604920504165833610415334960112379490973404470697126354837912520141737745917051873895361935608325029320104508248789127717681764176410086907691065631299361555674878662907657639143789057584378735838579824175427440774245202155465106975385132406794350816892052589890011153117964747736368935277618525528487588450495762385307773931775554262192534608737884499633124621292599685763810452846828311186726686646099444487087149745304806074962861512917183729737777621072533879619864531937294396146539183751264636157543422420978000044174645007322657937610116516807928341241718453016082087896257378788078229813045513886704457686478622496587076045000690160864137839190311024882033590811195714956792957190570800764298659722641859628458415481882287891321741344274618987775790246563888420499848915937321457347741494130419273467896209556750913183622654000765534726416696796928729305960832345597914887214174088317563374268040098755821843597233868863958436869080273264571022651111765250066273697886038349735417748912123626383193475464868894440657207980495208912835304154431670253104637954471604200637149256395659423128609405976713764275617831016046017307052914308694561795760479048336580802592795904730665393268366409555108788723652846649729997898434630774376408592855546471180352366456927390369752886542095759356202759400722988494495831188104554926900490393194194393207240718109929639164931643474774899141847776907037372231376847559364273337994037633149837346349174440679485148379948251466352180736428880257332814077469105686791238132535385333603999737399657771531870889916248800160398663026564298081074349110481841720158423311716590753927615213828373718491685885639547875313160426911155767229210537103243489008579908640229980909529064970501180199877561011059769900511754564897193013643209246884458077285711846143368331677997858584561000811075929076081372958083633541626795846840736476932856863246180674202781198322349967105698648799266967481182444085586588220352348031749798706701906172315190248587967122350973394302860450496230017026967052985243365846909934436652775362055353529996001652966326740543468365681852599329424738919550333221019871053522642320729019618225125920882194555009422531948677186370001643145867200276877990082123280379301506425325517456721712542806703971535584275093816077780709493890053693973176394735715953695933930942653466525896171542204798311274665623945979776239096250737930860998019161618981047850438595613588770562998976749112104905460860099780662507994601408213498852895344719282291776962190753316455707577755879118595048785498194847245744209016768750032930244114257471044610152377087598935074848507883259779170836625826329416930873670677206438753402321541978729603383553022354759121015404247425902444300891524944087081889068423629449188883606593425511497935391528800880035100592604811744554087647162831777800467314106349674522760084556302795189502386645928942916882673289488020526822574849035814379353605652721026519710817574945964075101589338910300638542846423979873659179755694786273437388123156110565276493391383207653060289036555978239049738279782148492915686456857231062494930349504592032343738199133431555998109252205215597784347729979532095707911188729251721820402295318340512128550815153099168980785375804880621294499054472167826932297511727453064336451557010612844622606898933614403909499745399885336798589028082077515109320074257957882371875206247622049548540635907050953808322255028689343235442435206784298620671857305632387117147630474082849346371095784749736338740611286345821656114284175167745106134085674504716835808570733680778478263794117073755677659212120387851847833801353319917313863865602667705359044522224844607977180657119246572176039097984371418238821174890991369718139963642609279950040796282531635517689326634876994471423013857643432107937933030916945553335984255708059727302881483242113536604632880516132838193674018702481349574085493776755848820178207392427883343983791341921271661794504771232259839302893532252172219530291752361287581168900962802834185984354493338708713350013401903320694238057071976439325533754321724389103087157176661808083245425253171748273463834434937530876356909842345498195190741337818347835951818979513321416575793107425366017755579943835691465738479270383758822379166911460551470141494800910006193201938839165214434183145556063090541986217232992038169596758395790614608673904150991948409932890423621405814587767011542275874491466775423820034264882242865108289244723618964981302227488354822734148388005377498528072509400660517362943733632571072573323125420537642746327985986037093816191290702120864036856372265032484956211149415614006479057753439988071429365241932259872229645780741084457607246482635299121601028578878313668522493924200546906147760146526048031208800845382713379653824556291946118966707357689276118170543540852855961867558913631984138470577999739294770926010785463034802434062975396190086445274272951191075876783002987693263252358360575305731939372868501508836806398605841944396996473331915952933059554698223177530319424988364965216394065694378335957441320012975433021270580385926753020066348645135113032966063512548788750636856793836610085370590495672966486659728609276120046084289351714895583768032173530124892363492826982216497544090175442068358735005422190517802387684587866727478976744991455838444859003514683351087342030281342339278457243173936035865085457380283476673815573577935446005975248102781755217398168537665833924687512610083186187363506794244342827597152535132399502479415073202330426836307874908173445703223817068491774614215345546003324146999166060755112718746006106820151855300757343202281825324338380167587906825108480718060744691614005007942520229500490008369053869636597808118062083101824680836820725845085742245104024499853048412232737697584138030667011097466603781595827949674036307474457913899400410755944810996520185125645928673528618577222871251400369618554892820556407811537626428111614243162311216888020894452355075474746117266171055342103024219438146615908202712629568001863738619305035554749390705739939374105651701300460223160946685287532234470014410270134491338834638973542205015780807677581945655803881623138651587378281340140102958022714007310579151759603564578658271253034953927535671868542849612333201772767205913736518006668883882771423042365232507782938238384772570317971097248784755779282420293137239956085462343422814294065625933661073648623361567012635777648177428454287638684330415864040063273489595016443912873903949093539754620491884018281413267659184342350629612969361138535472243827639464416356387452386554779167851682234406819252044875368175470704350369374193432802936391618936383625921625987273486015260141316642949753778078921161408372023047761338125063697799692973152229929580430556846946319544185908046148495698138785021886612674479057915144811345714191997673260020369207538763581164662161637819364216500272994820215173662502521270970430439974493399118087165478193264644113227885755768197818068717585776816689164618260243806797764852243775511868702695081669647501519752058072172538103343024105747025124603619435248111079847141019692672109081555969362566245638155487162111442794180910669352980551926346453982549527088528686098052489478080150002784007298750666242408855714668881296362617184683767476302221914443931565661248945733541001311083693127411999484957967174069647189575284431509715309229318404569428330432652939453256687684018393345554850120952739155514013388641806535155656890114041737091980855270669687338272894832251994284413390174072434861360403097624964226524288671182792326775653505711312599466804693257713520317839929386186638453616928767463835286029213190255831232996840543903667309004468137059978804540076679598513396788220321716997623674266807013582113039978236073701896978630289104784056412105495248375823058397627835623259206372336467719191983962470275884382762157146334644032426346677983430176681810984176961089877871700453617874802811253581186295523530646959686973599619922365037998543514804299023992565405376824356435256700688126509292660999027866192833122929428084937682408269015363287933178877072985688632157511068115412687453821233343809790871555380371645338090383395097428885738897306710911879546979264799427625010966531332442949822423450583069773137101966904833316735940816208648786998597204884995913351975165449139191323828694641875421568569965833790223149097993958029452615917580597408820540939032566819071957178393778233204502974221491760979727420507827062693730266766381777964411157339335121313961659469070638960400441119609045178523181634775638160497747942935363047092889049446308008210422498447982761455138332110891891289815572197689470176864559985514357087355461255798070027995390447289719966728995078428616632168659811654311608264133612618798051037781463114232459095119559721367957165804831613190118916719043304666067027738457592180220589472470433432184717154831098901084417827720188532137375911890706505365628692854374109299146454832322719936790767742005539983424848871049785412804226828229019151137358170369448359221396418864094494264501065892822117842843880644029863051111294349988489370987309004931184083304062559499480017607196174252065140822035580851246687128114458987334904574670272415478940090901816037517530426662118945956976750586707269068455126886584703405029394481389698605692340446001836074080188238045714330345946797356891381061079022584051107238937138183802384689440266467178904137127470371174965798675073379121854011376812589717987465088311789789876765549736765872460280841908390694516610368870900712790470127386062990508339518687846795573901243458543861091763639421584951427362305926006173489175921407620765548676092677611574387999269199883255039811856620479827757493214625280895155509735527431419769724126751340737088675067232793172265892432468756948261633162722972870742856447981557363018140889448855806264874137476780877145661969043376171179069242055442113469823463058320525709422827553865522800960251256411611591336851382071293558228126756712254408093651385931255881417763081665829494064944758346972317979124082530066120742084120790368204775968055459247845776495336928266049942444042439130261063278386031955156632543222677823753390670077878632047960484868564783673904537886305628167842544384634946335027472806475861633032920679939626846304987230748759489098353293345822241902751700569964538329814525913868182349593391006393992001886688880476046015351724514412955756429447510437578030657042111945289845388168924676922449144318963774329648743367130928162950305417419433785416641448408252164401923043184933792206816057002157205694535201121521900041987680822174192142392210755562609598066753867641853441605571529435486230073898661049305675900976457675536076217706633233742311129903538752996750856937305221285680838092280584324748383938427315699583331057812758501843455430989487303174831385538051590621886191804015496360062122656070125798630212258803129754553562269067473644959438559937389930681256954950006122093148540218964797601344455659029174356377935151592129176085672107027854482605872821275785485919494985357462188610490428997093264380987916836835593287593850993610759729756816288297840818470552133565715581395172246331390824854641361875438930161264737753984692296899395026989351356916713434133224076651435366047337229233963465433510141863678473114128549664743117666800862863356833869408128681544282335554350028580821230332867657962561476601700250908380820535435143789462297025456674781703583894999475284568184744318497201752234790355242388193987958591286538451550012515590063979128434946059876170737330673768349609841263846190573070961644430721823237619772778995477010325896671809762513121387511714534196660070575774309373790224420419330129353910867514841518575657548458761154614659363640858371216594229099111909308969874268837347017898685093786174270532847051666240940524317072792672134996093279405527232576605197813048602671154534436172565081030196703205774534953598649982682949671777793552959260883330001371515305162193972604128874524474630780376679740004409895361506735272299666585252588969238048719734424914085288140571713770813376688806739537627651003683102397949214936492975191928053883893983444190362624660910330176952788354988160389465104702766012393457219011620104123024656495429106480240369335784761619950048528822259451417162723092163644055530347058266203783083588995219577102512561038147926942028970673004011963222434343880268178521972902571816148662596298085119151675561344362904884653671232726718606907438154667119459578708196140501278752514742110358790616059058789186502936393632954101284694460773775909900310056038520249231358684915569223441734368392450565190250270135137723793077660153554710103210568498502878935440462530583853909592795090201550309642568391360781918513094094224006162562462497778469827273994941213328538907044611183319878446661079196416073665157077597970380095370284072007790187549272822560130856383030535748009633968507925818326282546066389667437996262571527700752461070455493438602989523531474240697776327827231832787132562214231906071270565070516947039722357828373945762059224708558093834040115154629125981848856199011342492940212209555526528590563577764652106938495856562916339137606261608726802689950412401980624034779116534216849950056389611059998904305764179457131828186653398563131880376163492171678836612804159147865467448989412376788483374172740379754234814969645720246152718015136287997982937418249405094244352787048752591421693201309685527873490048927023450031493039339904376807497606971253828229169492562988307027369414583548016988454541512448533946108272363911793994621963242160111449756122171382088385474587896720672143836591396710753624826377881545437634519289446095237755086945776902402510934412925242033941446226211073873215258680982105763487247457421961682962370349210376922387289174402007007680265449845738712301777182108891537135105577081928917442858103184121682571584697798329847492581389584120461056476646534271118888642160579697488604686122466752856212805510287310761993924814128601166604686293790704504190788517609635596315463540437561577673546053697950180374218398794114798165467308440945764847002137343330765922092878484317231265186055062420737659458737322980753425727974599476523374662379757670987547013010693192065639490729065651304960942773762030699754366911077946055996473108343278623631395592287603925572046889804259190739946885806429877419048708849589867849033334160037218504455390056490313777458085737375657204396385414780547364838921608295300324840785671498699344467877961741952094430078841075237873930230261906308880734955710896865090766050887294004974087016470227745143454304059483543545299778608276679165943575839205281858845993045154274959147067810351782475299166410476522044135231558520260450409107211486853780502962183749273345980770575104221893934047493740539294229338543594124187078248504596872249395910690841337601232104709416132623287486601175058790660635283427201264686325047223249763176075321470045537488274999857705454647599712412174919390586103989453210573799230746718362519884487964308060030157013224986979283015889102217947122735155172494996170016182411040002912398622425032149370440284170009752310309127187576093201461382352198363270662624071375965684092415200733249831845916401601556811491820898983721840399734945830573465187634651904375105347709940276832539488985512145584650027262362677103240177084917549574850729468042866064293201534899577672100806655597236749953270212495992148506373986381349135658340651801557143459559834914583070702619551498336883146999516730573242267878638830925045709260281809102705431947947036243534311715910451096521562968002481386169085632990944883493130829834867606336719916074284413323045617062882432625216843504457449722360967081011262369694265483670123258517012812311296302128525049052938167670085723973228253874403324416786199186562880659083974607915204078483045336570077606813974605216978778572872373702869237865450479303849607226003975439524065406685663232933772205174640660562815352663260601872678106993267636354477344262532031734911835089464700076813312197068911969317012284706078585674532382471707965345176592795315214106650134799621119209001804891969919361927446289577756801276962167184223219930094315240381025499638451239480680880403351077122972468078055568521495738910621361943347912458865330358384779604978264472086072945590552211779183317476415125391483343202282056080641197336883638055716950369790707764962658495061127036074238266591979213058441439158254949310634764398285761354003688723661937196300033130516911765036231144834979670305583321843867789421062174880619987771211883159117902146011029944377443269684702090104336659670531008633802105476936397938840206838733918608949713188636218333947385167055970023660060782328200172939451114634566893654472068235098458203225317135148271406014690200224972624573828778902171090855166757273867000350283527404419300093810532029164831747305511799437275535885848137655044690481633034275919208591169140609288027883860306429465698773612995971354687811476591817883519954474414973010198596993191081962455075906195808766329198569271549344449722607006641176691576495642327401016164261252437162394834284382902492961942657330685570670118686137114960675352776218662625502981560508292642614425168370043028184016284238904198259429775241486758355227710498817795493271563488448196757446018030532469036367028665034649619491532810486882254181274338203710162232544155185653932037073122608385875887127396083509237776126266944111756686235252091776981677613461507434223691559083803537096950376937491457780617524990732425316313574705015063478407469727420410694986490441493332694766386017777459868633690140808361434982252606924839209742424383543810319264436610463331122345479773548290132451634530439526623956231836055235344622711498650848721277308246970625851576471423719127240132670506578404242067215551219589014911437158715753230528397831365693941847007283116543628458891563642409574757930004818354941044866787014886338769885107392514374048453936722122787717908504293247161618467848983298916963800331866129160990249604365057282217020037407031242982152663244814119576840175950424726865641473843334868729405048327824848497719382726310621768831102314472455207113448451921226885543307171126486449941131845170151991488645790497177539677972468243695024083623550044874887252191570621887274638741756472726099915760179107718501227935246876189918119297054652895046980258783287744759579771455062073417750936597802145367666544782863645468869112729563937342160643980518213216668466712437688059275930381921422491119442912080582651140149002222207728794622464767556360887387195893286381287195537703398849233800437930146194336929499254910714094507787584609739790971550380334842701625320024110167724085391220920888528404760413692462126501089914870359902437887096808742203851230795472753023383937299194061607642026614121697837307726091123185358030948011601729193056291696058322609402540919770815321583902406521631526396656653981940437248280917922153041212510518028161794233233081169142686247044810488672380146674643044341659841355712069075417714842204178434229455131423074732150613763619693726043474909067157271972965051575568567954926045975020700267535399543874962153996831010503208501747745654800377041239983050669854589594014291725609351152113575483396225480313068824280581190498738028187477883287843458423298252531978658356862936894319989334728842544913466406900755909858465174679312699928037426777653429759332893778660801943685459095542783520842446749277850521277495041991876365507622692786621934680621018194162582318021307661725099370827732602276597210595652742948281010038813516969095559226162305741098681138616707181844547395391502967404851580633803415207009731247886285072255210761611189698749762253191744377877145920523807057474323349479806908368201143499998306678121099350814778602172166030456375942614510310361108198840754525124706276165100321966348690558836862085547078339462645662825620136324667872639681304281448320408999618179483944531201313021249791675326667150716651938225703954456450228603290387266149923350533902969511282015547880718708836981923639846629392007415980630514846394484668693525244184949432308846221300269760784858716793176214656565413267216713566636795004767557073766777056852207554990020918297979108330738854807409704544182662149355156987694933143029136024707709380156967600051305745057714449520406718419673822699120809591440404338848264500456555600810049184382132800836607460485219119102539823955503426623281757248467052246151262608847733702527452220380272715261895608000271220619772581528520057118912384398393417020098653395570227300892272690958772005482178927982020247150324793635685814653943104641060382953015382228947163601266883260471253088413639792025644350869234928645482912498604125947628608917589476867311155367181100083907618061421861346780489913299844441635889343754107668689291868209418735168534778899068519404764704583568755780455351100589169145944683947101200329730671826159047332726344774154731095928458105562603070991726092922805752972891380459483398317111948054084288915439553057606814582822838427302282629807994029728446056344986359792080758722814872745002836294460779011484707447887906692344166606513082475604072587446993075967944402456649018918845617198581948268800511587208697966130120282381041293451022508990614620248504533814780351887907980139672414689364219879697875310276912376522553876736294219909793933680676746165348222787812428295867263424431749168203635187597761284624687639330105967268622428368024136873637338338047783912514410684257609593024994239397362786701676113196735009953183762984704109959456516860674475464267846182001971651999832217323487030439375005723213412300980225352601432952972073908420429143422760590125652038524046578326527563064106247466857751778246515316069361233040591235342940614734196269831162408059935787239814756493898293411627937174382418725138034964861579723207511315969139054888296770539351573281098563800381200101061100024297425533575988773306007988662635182780899133663835446690130703951835426095682950796376638321398255036797297209561703782718047075911851773530731375718025470232812838781683040165743706771426741329574702288221612932480052327966401062160302411919774239923291001900879176927913661001284356182533553119084397306323221912061153285418149815586286592231877870774078349866865940753407183585094808955489762239382260678785956411721054912428210884843176716606437377376876078672707691016528157654227467123691005273136789733346330462042599854716015977667053351353878085581106293295140739355558580144324148941629275044854745289663755609141869068955549893329860826385414435227795145561690678981516247404213661072698981747045525667084996050931381567440348155816691322693334536554877745725206857403199489738839714131512227120733259250411889906679275595696521938670412679114413351198247237691003509594368816970237656601745997589076575000604066894502765710455264128594346489866796715635045413212349423186183803992376990516073132795414915957660675147590374347053835353910103686344944723664364781555407615967122748528696924427116926024707204762702813402456113080729754549211972115667483257946033407945966967357362634271042736680225616181169788741841701207575371312324073113148077811853759780854375780776254320282274188689959560903868398224214535778740851582833950687474156936611880367050713860887062543307105237448076600907631425346150115940549284955548249155923078589994108484087456683057695522656346478914693752911493781971441420339344047007421848921230370144537994153204388633622805086837530556111944773828751600399343342921980303847827967091092686034523669500964272402708227438396226428946959421718235081566896785011892778771280883650180535234352998454281051501544662547282838903592611925970551826333097879602810409905965402543534558340235979073605658735043075856971465365597608871127043049540313408627628183387296042676484142162811029834844502716633901106601281621385939193404241354650803735115108693512274411048519841247402721978453038155337336460278328474068128263277645422557807679405870831821321533128980090821245906955950732367752175816245506824133822882541002320217388501241125683939188567807583250284121988028399630440244337020005330676852192963368342055483757684072014373492470984643663368213699991920408150278597170613692214192175156887821712299013017030266453809092672862546208456363694235692813846547016368919200371159750140064471069591012265873950604377528988330745903349290473410777073027056382047271766584433094359095928650872866242644226312063084899648252555395660708577376991749234321706778931687552391069748937161298500274739787271312839697251401436599730215692847106484821300002632138989114931094888413830720700322455945896432385619870832216203596542928907542472269090185170749913551084730236673673252967055155134801787288520275980192818083971541686146938699399715183970712882492113236332309017442301285965981159243441277591888195027269609466849809167705554275795986050552895276861132407315989792446664611824006795636438512229364157043609240399618279061155980172692585435088794832499581596992779357173543010212096126720573020541039698401223245907011399337072126076158178882227200187417425746546589141390822132561648989176992722316261398253219388748849847918605447251749621695295172603269050240161072890196795402130827473851637133907128641051767909632932395783954828757969580464880596812765037959290750362930643911083878932137470657475874431903526215980017325812108412376928423475603632724850650289294442332374648543765733735684910926719795206259843642064846136485387975291733093821905966402356183136643688198463360083954083003627292525931450569619690612497718698634440096151701834498747990606459201188541295341171885678154818675651803561575644858564835035431128799476074738749730105187420397030702909782975341334482438429976865248944766716862872287845991251912538057951519331852342975357878727479269271519239170974249445523280022658540451043319516782473703097299577109011954095881145184539186923347138493420164500742147418594794473745877125224826463824836503010238897463358816737131447432270352438513573758686286685944667162777548667871067730760669610564482952335593216931068167407638089257589362057752217053812593025870179960467854372082902203611199034106766965153649286800741371261366311911491859309220365255708238128035334029852108725376170336533754323097083452956590913172338661451862117924581171994391664686938412721624257564977668385601277938300428162537495015618685908733341826836823112538941986297674791696352944516462108791834966358907231400821118178756731949372328486981526790344930056207020472383291459322859882349215451208006137767932457790557961499210883254253904893920623745432867016417330302996927576761525131994191650869059546151281576763059617672223987475613495429457326294072349861971630738259582254487863166963044565767642490838108811245806216517445810033847538172402616634849530064523601136591499052857446531777601625191339906631287741541974259340861988596758731425833342905034078724741826204673241430049694668858349797927832354303005892109529547120501142935667347891392761571062997189477499471068424561114893453269557088110645094604911111779337806884763466919245027988559149295551526090297954124766662879001994290763458247919446465213580817164210429698324513602713190123428699210949999721747991521847672623168619316464266394315910564460775056459968799733825742949345473764187306215893084272232335163764069448472429698853663485084521396971514493222904069661138035605103474222065316830289096245099640030888095032414628778243517237594377152295420858335898632638467781618460876739854358535762872543661865730206109238858941768550949594148365548121085120306003975141116521546025457611459416114574701897465449041960885336497475873529464689684348425775819862470544425445468337146591205637147116905256460790402154629789724851256128400749162544949334025162041134087004904328878529064878022401995760148949130589753409838545306052108693474556800327225693325795266032351739840743091881770623092947440138383329957490488016636711635867610997742684603840140201444490767011520286799429600144723242739416818667148196392181493884914624651379495587886465893808192170163079864914244830430340584851009809877615900467209768793235528907138400857158805577987573420029268880641549483544777170826988863584589041584741811858525441877714948795428966521406709400630965637988825863981096909633092416309994041116087199321308738732119911229053183147933349458930490629779995056816560569212211637687720167785449092064392628260647364966182275464190227151952436634875770351933326350359504906075008383492364221194338417185887042837910416594958328473829897814972177980474913760028673306497292660931650252447845430965063163962086757190923375586259368392034957495548795612334824043766970270768948802325093749128950409974108792367993287149956939266750357045842606110346434711724788895804114049798566904848748117684179239388681309810184816088912328379216100840368805534111830233005031528968142682823418740884465878319910906682289678801767062448617894766795660925268691480122345957615880390371825229425431238305061256930022353221163886665521329842785528344317762801171372977155271136709823039566206108987318653059286724006700278576511277777416272570974479794293080141515617501313425618718300875347502378872278656499895398395869643984274761776802308726220831878406455565385821148858864266023657762089370997555250656094980842700807436115050095977609153769558753505598452393546501763607816969954798629063668061019610860272126584422105527810913509012698434759130231636447559693190415133639653685116064418126204609993220259512012786561288135221378340479091924613658838055477956201356186936859075096727060559320231875313087410182645687597538235443988363980801268243857527783261610934424592962014478727869836199943525300548733720578395800148036526457468885234930722852463797448456202509716681468512856813201555823821588197090468542009907378618049005043598514609653856346408000682845242086623063745627267028393268161516970689294941486054748512159668160241763129685070489853397948010405469087936149873845822398591523697787984020914489931478020245671364426850031350421330354554932292821539414159604157117819552451587983294146198414301762316105710668064149228335810435723298348970485000587945885851188799536583447836553585888733880752505587189177875252756610943718290919068487483495124432110272129391086229363402861335447199098875824892439218622302765812524915384563610223973255217172652503894530458398283189067953103903437733298012982773573353381029910763569033784338390721983666153991635919433977368618920907826203423118302386106879870142203248349019173327190060956381773104915110478503397197470693068091440762759268250439375022424124404481707167027624064489522142841242071885404391001822470194009343466557923540013317346764337824828920373871461415772492116610996102369875368471045928749659373957887780319365960794185025198303661884498655728674567543168914116356254200027302407303090139441053477061237961781016268877606534232820201644034447305898467179680159995198177946179752687774852763811848000037775517193991242091337057337415414813332956793233349167890457657654200913717164826520204457765734653042250558108569229476825383733497821936867759769681076362708427149261296861158551060272282176862930926414157290946359264907707920438799939752051835259888491273781262065322740298369752087134606290274768215368181539529793807489141962743128728394962217407527296696934938413056937570678781012520433970409243649151933378372947221878657233092080031766310135396210221281381085815727433930582885089228830664955906739305870750308402207722575669736392280262404450334065310181206982837092335377676690860777951590065764551654683383247405169169775211332896731197782251315119961478937016606141758327375590962571698681516043306617598997198437315300223022543951788143324669792563579244346454057641594363416838710961838755398615361354387288846305073519916163004991720886951967664946783043407353805366713404474735678961006561236997480578967132355393276964846957561743598509039522444115099415441750804606630352861487314251751405124955897420655401985728628159825498433622667425115489176895374557376913182891089542851951207893049480592876159788890473925800150766484607361996486364906491354261919862518251363118579327310469725834224556369195744447902926600061463571949782372559165982019727486205649297857787642814819653790778279369850643462678800783662311876019858115460039940555220549139741272535663099982323193354316537543156889386652409168916775636515188990424046578480834483151971956284035314419523878474665166322131568836010347629914031675079906447738079972503936787645868173562299109216258722597271524172617757617763862482424654013392357257682823589325298496299651426278470201612282579921856531052363331224199403877574463329703497416149268587977042027428371484987385438728933656867255738030457832002222679911163330107781242356149858098877701359563047106723251694895584665465606234163501705256062885632118363631951312443768566357572517832357397267088303414049491738984989742081913943396031503810948358839841030432999348325318306357275947823975868836770952892574443932211449931059600762030352302006634419433528350893755821115885451194734033823320518378685883596837844118785180444312040843760299480636115710177323137223450652843612469266190581635257253961373060789612938929488916850357747339976968584225155611480781240061912508089378720058725604121029385564320439697423406548652741830323192854223511106819914245917541303045567810573649516039093323257797459765035734875691668874538778063960134964942421407848024392983968059387293530519846854897786508526261082179683167129126873265011049426184227405237263965621531396860324869125062316165166856476646051910918481556634678694506801051798564068008955940644947869638710012994866298159368232123375870168815219731273884919409504264242291645052290376134174857888721105101540949307096678853809150535668939039709956754367309518652054322511839213306651398490752737457612873677875069285327269604402540660084696424614587605807226853309850869341050205919545360423766319051989059008145342578107508413277915536315706095830266096776369877758286364224577486893670807244264234364381365302913191542508241864239222766708894815059658891052906598147610025985720925827550834412255871212343502234559727365386828145937621942610624933748128433750657611778210851195847215517435932681811790223771452592641583233042508346242457661526607615399664029392844757323218152876722304671310669722339180968743692506798260931690551114001892267308789535215014754368952182592935354480024010408974636718797809676181603817619098194793149424052207388405573934305176876319501076834050756495359232049624164216140600745759057777484359371241550131016180608750561636429580212223143123251088511938335625069000469373670454939298830795379510742662097591782942458062699833402493981684061998020674763878825447118726104330597994891277991349344256083945703824212989142521297118340207094068553568409863457170962647167566354572692580830051493011186240588732701844683131778359732711894091157880875362671067097958895947926693063968350966654873862889419211878775765697356426638588619007715456664328971757324908969674713083632514729122843400148232949316459615351432797329841602523130947394389150107514700500430305976179899670621702610676289089061893624593132495459465298236826127472446483298973166553689468825159810005662225985360692851762426174326757507396137086415510745915802401695014449993443105690938911635747602989293821682879789973042440948830402350898413357474093742767802343734780105479437761888537605874931916179079872002679114154376441172419096798795959186075045934756218949173961115154339305523916506864383619952267484057224077068764164189453011101744985437464215767767842219731540600950937980531090222207593653856075953292076259543943840640335971433779757699497925003269029554224690694826430938950277332768965528463070624241694142957122837882881811488959618631519133197126986332571611254479366307647971903881806006759208092144483909280625461711598287055271430223122133771343584259726525384702059564571591772342850970174462535553323944481816558799147578886518166399121826796904244875960417090360450866748080158642892883497998449959912029632847660708703890686117280365536986390113590597698563971736889038312750474401698482597893823107048400880724970099817090133643171651273564419647140015611367715917288512772155428434376503967222008927876409462000544059073325055916016485896712888334933703893617267427257364011251322990144464672913290838456521213809315504198063641747723069771418978126090984524067665080939140930235110355958787027255425051910637601110715471496792406424790630852120027884191122039040498620340051048059274466335079520224048385367336273601203608417454537306924794841388385357179608343533217750984123128515946505025065350946661976708656118365710710203157040977938311594225589959383826245275990010452093577522432930478368430537914822875878855074312897828140237947623621517953789585269046093622421418100698367673016191191171769507516370116981410962748942930332529869437652440138052822633742160516756704940530716652729497385334806073524515190596410336057252098651696584487677659528947409245658556606692374426067007812265480606338837442028498663280204439626762777988611774813257031613950613569378635580973885292142444488886776603747677900793156496852008849031214357989750608860026214333986960384333544950297381605445656288013324415846004188613684285908598334308996708497430151198976578246865579692867082361384499191921959208417717631081570713596099188817876427672013479359111582017924758339755384539090365751997966612864619729025017238464260832247848998954888223538221357002324254617358559667972877952427947429880266196598704618509427663230297734811531779189744028952090427813890747790724555836638272182126523289192166563646618285061026635790564516613024456088212196593878316958933940956941687265689645602477961212366610129981277004334993846490459180964217297989190982601803169864037688082260817599713445974787179032814959384337978499143092345143079334929634692649188100654808556676652307320022411776808066745917833833154796419396012169293092611862537767455942597562388933937439662902629886573833611803335155445329845614083544721940542364107601796040369847548305632706491473694765666247277050744269271038582650411109800923737447163002778258663592973994872546673582411111410386596666177359606499641674247859662861936848206227932193347533063725066372011472590046487365009889139127295106794610189316209727465328833484746948378034614322745999478897484404320191642621012546769749569063991981780603046634329146052166823666358074581002004385527183545728777480498750428767421427272208296148932557387459483848968789216691533013144436099504184198511494123670463992619157843137078572543714671914011991733289783982298506654834515718032663411627487838244111826840339214607108328483777957984435234147056631514494768537472431397130372771808901269718931888579986538461087555373907573908388349678853940790155577779047229620190627510550582714098257503115513278523590569943227295390895299239725909786339113556926533524604300214823737977828946798846958881410600271111899573952660148711834605152451941436062655840505798988295552089966681589204884754028372172338495762737613689642721227633086332910188918227569238210866052138595977792308797394773660572054912087744195124971820246437650824088005894263078926104892887607937833507113413304827256468473995197003455452570996893932134397439676494183137546911507443797651785559373485928936874357127551805216212123119654233334983178910396970012443811924175087850477334330453401309433639652937222890442895329036923902442148132611263004887522902692339101965327140362235927107863026635913951145931017660930540138430913386687619219635235853679669783789523965249468203269854980089996749156400082555891201287053839643019161490029000854048295999740858683909634753243636214741050301690103766053946960070669908359526842199715136820017335497512822299594328664941770794210875617377694756922329908274379916496463291863775213815490800306824594895644472311950636517394574864535112626657532174371930610075640043760942508099606519253987033972898174509503357623093890193075269096885526877210990553297322974258763706497302420010760459728015828274092453511922349960200662421805419424445023823940719506386061730669954671434620158049049056141207715636023448279967423233870067890210377003297178778217589620447091809560700021412682472468382298319530225488666524734389126050562314792331529199951655124804178007677644276897679817840943240208273536827342062651656814307985415975250293884787292248691635743795176629340815894924709370533871880182689681011317955832172982748175765591252143348561135642673143475848370621568140876918597478470154950503255140673146484063703416199561627895336123606690419814457536176410260316244152017800099562139494163381886023209661815972765434785374539058976132422397749602782690003774895144050665851032580596858454062570783856426432319341418117074227254875426733385695519033304582822853775725481936233519424728275471137785199385102838446620800476247187355221285466592758783731317494880612218177199449417109959091327281640623557190985079601198626128105798091130551004476319240456013177200197223489700701444401829434904087072019026296545408161372636506567400226130037723240465800535161097152719854502232069183565531319860175307567126973556563782990089953711059474877739792835654470419920103498911229495745600371887749304327015189746246920340426327905105539121263193090905317259198432176021075268665971199911403599448673226253412448153900318493992079146770052786340551695706061035097070504754599843975113159438095266394782023432383768066317694185536580728867218306992929642620985211353731871093012430666699656759283485288190396034562173942942801668435426236702876850065026237215651647005561905286319099589253769004620109317776597605827510305688005474687765017361846934403587079276116070216387150017180248878073353688605269401412132448620850698156020270571680241449289569176789302778123157565135132125380411527326853548064992990747161895600492213296719702635102430431234917677030472284155775846845675811590669388534489044177829935362870506628136733084834387865284490918882158832223829598846859395787753952691257502415642106237540058846543515037188374922508876503631638824177517087299104800245624752002063665142624222597132231764235783035736294857944361850449495402114109429042901758579654929261984870721830233954923721039753637110768715677223510628862736092542893719928978778124860411768660740947010270473023047755590745863745129444164197615135877520633791643886980030782475357664843991972121941255356365392848977012965450730780609287752765747677124785393560274698763923915177223929771084208220091338339647371039656010793345824681386165619593991527612542417594519924896639028102708676635800746177033386521142942249567441207244441631570508274217902692976158132320665370212071473673653999228560686132730135593896578331114913599758648560958209298583640178047630394225521532450425440105764523951000773628879813656845117922839182747801507649774808975496005159357394631472762604853743976084454272708693859383941323962334782798680910306541441162478274999711136234649080790990424385415919832218448496236838204987707847062029017276353569995435812349584961199595437247965349112043791303683324508955951457851446555114771963874786517006171424666587852182094028137745079875302008759093383086841735426240022520565626919979347153992436355154914236617918447806413205944178726930139337372757058104342697614325924844413898335133323819715039042795162294095231902513277365138582813071509310694141674012016012830163106223141804971737663440788435227069404969531606131831849698980716650216262886076962629386611514889891005460229025505763128176287869532366036373711807144224268438682789958760961198596232961352217739702662237631139619277908781774091110400277060762055311544311233380522425313763309065032814109984863624979109190180953756048176335107879909942700877669826695669495040911545202311167258111164650433535726782214587253760523894093082784227038225766447610881654620148905698292125729876566143122507566663461469946864259760492601251754799099137488942047166053459857018502583356619686910828345289664170737142249225176344681142186242359628819314131511735508615794659137269250202813605467413723409080226104072217883395469127042000751194961982524621541754599976723033824884668767172983178226631371972845974409829859724532550063364271085823063946685175837487847112745943716603327505460491444999525848856830968014447740779923794922712133549287802379015244774831094809429375014522422044453002467775962624656715630586860254707585714459525280025885098275751957349880115182877564292942283366407767733264674101705519357089720795650075072934154414630636512553805787617655525647105582757243860483539231485729600282934293077052912778197699758801344502269107222291547338527045396673174779588456450587423687358572178599106908073727718446734445361600363717520629504215104888250375841514038033967445836080203734564613425217341912543416905371554718682753795167382578466948457607297001633496243348100226433751322378019987885579160698646906841536588635844549829501537744456198095180678638320997281458406336942996728551075165992305448510655763154858820277220995261995456105001118501581084735913103306007411077129210740532356936468227508268091469836564285857759982788627121386917056111847146867484158249728741461522076972160466390204926777526924241571025977199729375360911398530196782188967925687009350347229864254716115774752457162826399961556068975454229080610237131523172746777314271643932725526124262830667222423259899955116892896317936477763996556717611646619307064452414181362626286523102751675250832210361780442165916246667720327661570598912852751707216139594067345070640832567412217350139238792941812311493669326923914723619807861873046775263756037804403415152872246169743157662849804261490985573905151481722724540790019539989013065944393339904734682643257757170065720767633807712630364186017087049286350117915005043597645832097939598612751620233549325305344933850605517539218782503600970780658509381769047510273067482441108187516755535401568671692368314217680580401312214461693086426782732468860640253712354458598239495327872716770903704295154159262278519820866939477853299522058920710993609936996631311056260388565206158944108940756902850024671102983492818396529305281099257301131155744173361862742044763661066723789955641200995591513111471858205587574032239344092277132433625458417122234062370824643311874186602984249172602183412334918903229462856777985295699180036101298468155164231454975491952657402814823079284823309937178268962251477280121211951563677735324349891901698463507363283043191902437689953720613747204896148118893515693416531025561962599452054584164243664430633098007677299221590549875702504966617486145157836898262251997443649793984060964594806756454912769877320134778584212397862545173312689093866076588989484599189250656262553373705741263403671253834578814126131292800566046465377029425584416982261634023580191257837240177215876142668179671812669725947160394767242158863900940013216318405993594951700098402268875505247810039545320235037279551271298526517968466482856326092049690966088405588690221501473809201394804433151983707259580373819189511711890685521315983334979963793980119600942561697456785646323083634186347108388427247153324500358328959519251638944586908916686099599790143775937724287191039177069485944935568101709112668012943680460869696333298073487552896384955748033088943418615989672896660948199361671051987537169181508902544922893257162244135106833700816901697337250578798687983804908776974025771609619343283455618813806948431379007926719266587713113815142075656929486994183377786384292844229789300263267051199771590787984867041386728879968649451728597614785510900239741092821305348281326801155194042095808306502122177849876095683740433093199510896689984677017338671437947814101839888042755365926391092173440744465536372397637250483278207753695601272192089766922467775958627732751586313098743738717885909221506366549143277098626877022784102616689608343426988583919557112379826653591071777285242015735660579338853087591359552692520705605094617266973491911065190384691755886117202571698275438940342911436724650754449154680041063379823991775432229637594771516965192567893091727207066715643571110018507991513102125129006504873158713989234907852647290665188699561006951795486370940124823777298791145162196478551741140745846666391807301484514300409862043054682802371854672863330510728899397628621910172827652702249883491355554110245215313237658418153904841738696975332783198312606567583793267650529796438342364858323069987828282980896251225875459469147506321163100570217402698497537771272412085488829374778235096522483552724014898627658886692312370189911242240120522457334967649672861047611922459065868851511355573615605790401921576052076919086600658144011487469664979818885907409071755030956603748834268556718408606527304733510255695879872747720200929067211671842747106264957352796091409870744712877614250499117198045260243319037591127027663486734398265615918122258933397983153566022539103913524171149047804810634588818939642474398036223872582957415034377130304182665696697408060581437983272568309147773076496439253774699671460721092785644569226758861493243940425287300765487710736759536208595267955226399987270381126489497332040872747586004280179228893298673919583701380198420270681137250873691361088132176028271053122946215985180519546856426913910964912154787496907649947005393143324182555557879094960375475188154342123625290986252668639190989751652797945070554635724191285279458489954393389997523983980270497022104336696958382515407337308998071230424437758236795500192434021386387327739104439617579452301713060147343092503173465936696946408660451636902465963165248824879034160927920242292201962152842304354026983618526046025212906808659732550098323768609283133699916374428351938939418601616855425147885033631952021809905851528891308413270431082003891723667277979295858928960781131709637943454657269948482967769788481729083239493488211417700236966897794365352992337559162639032174431983775937746181725801187209407731926090532424507550808630581562598669669408110246928192314028613401443695451053524968783061928395827240524494542245936298006955308376052243075939797614331117727839859317064062589671023454752160956431498200278862496192722010100513529933782918396163876296840316925753530139379432282027325034391285549279365916320997520905388658014680212740242712823844288747783807889286208727733148555943038661616921312464240230881853311481923639636151047569836729846056431298918050224669979688584973258799059372104978602507755530387011544372814711900109029676804733180805995536109599466372806705219782631171213662523952573233547128161344325600472950103597005982577491380429883999390626079918516222053967846857244149845535264950454830803281480235766774256364013739211499266404108489286668322251197556673085463275037058802553645871922758077702375080200556197091063079665918592320299288943573263517089603432846355524007844442432894783755781640706616359195908138868163039456795816646935395922354076895996288430040195053387099833951837240572131104192051563679852653559749690582942249518164753031864823817234128165647148069220425830342158321067062745912816335227286718357182959838199130468125729573400520207310534604341173522385592696579150203140475011917085847971990497669251182463584962843624046447827424832034011693406992342406282536752060206365179007578632175339153635337358089071429725396569670600345941303457467332674131985334311293993612371663644888779958936224347144417905352874834288670339461171025853503005666313898476942139936739665255340506853651538979252236858926552561128839781258276982452543733057801728556830575134135500160816970241285381908814188430831144782306833618260895246335986050803527152150093251177762061870541783574612995470561638670776840224727677623390495861365571140117725160180861641197150678390200716048374479910803516797828357714176513056367402976315883591310273087066025359004576360617165669882250913156044968532034189147113066865351081283160668771145179080633542644144714096474013104343832960532390845645362509169802516871923953338100134307592957994460530776332538670012916680281359270879741018216661865669033432750506911711936561593951491555941391740329290754505277017984798134569852767204913805695111553875236481647978981998796974525006009111883182488647230287959222983420634340676531273504850987029817170595112884436977958229199339836277352218217975043431215414646146127816106630049867270018416199456804639092649718061545566136080138957550544469549020529715653231712348893029769635306371451612881815981203803748649206541153351221534300651838329562940644296811939924437497638608077166956618264204006062821236679783836699124988626910143767726906500839219833590075170464114015364510006149719232513401943844454803015499500286587250061055897794472597479781435876637059940903637640503536554232191992738326698051062210580457951663130778011016903175812442474688372732622772525673687508451517528207651867638742242943797561919404968387478475721162127649513135887621078953159758592870950784238914446684108719697211237876570618823144165298541118541639660496893904360506240398353775112523903379145264657481823145246973892601932546350399530790742458609432942972842872901835101248239548098417957066651551079075556828049710775493227739046681626477325720707483293230894286409198837209729843091524954164310431940975587155778004180147712453592284721112438396967436362711078403338816507777497804912484037381668938977941535527737067664313978298745603318954861210080712087157312269349206760177799048638905655515765077320895673389250411008226269291005747403502610189932983377257725839262236774286235499151610595601092799336564417012625765597012447808538444559608024962279094651398853900439262857507333696717101219240063029356262000457594714315642518177689520722761200413400398169443464712556797578995829377199475876456864626507031470698693627437342355530531948710498860011097653567596566568148849154350144560853479840793469946988130843552646227590693823443243888503631051103878306399101622392035571641939910263199021429619970592066446387609610507004045208181994091034617228169980164313662624380832279990099107979551729774232237030175344505226214229763190855215867207817937132503287679054691979770593034980810010786203982368845517079890078209530649053502045705671502438184012855219359768030622140528361709748106908637925423993029662671401190176561429559202560994163968608398184905937763945060143488835964810770775266356825073718909774784075275649143393652587876952541520716864975084133166314152383013547184886177571873413994137499237424917408095595831457347897127919187369835237647902493796647748167290947502500258509950212005136845768823283954610190747583436872715696675203565720534246151603123789330885260520158480674785826955594489875788409708385407145901404087513151993376646209501700256403761180321952887350677389158877772422651877593058057645707810506074131662467538274974922152758844272461491243289602961925852769361319405189485189640197589700241325811124984794145410231815472347254969929794233791342262412882848715182667725369164081329510188354373628876133702065369202518651157937429827233838051348662991277697283484288976719542199760806166493868886942852928377412486788578544835483071384647033465843320304496722520307893160386102443430321075726791323032995901669892583835509317228902220083198739243812263553032244953059619906109888983025215843147282313103479974933083030026643388073758446393801793516609207834385415836957912785339455845900798685651454931119165564105326488757853159536666737362762694532571735714728513596257188857489719020636550676672928293535804384433983160428821038121729478667759661638776048953196400134929166371183382307661902135046242073961235509610972630276002480713001092381608834938871312775451749216812911029655576533547007543932706108987140293269520293182121288085862575190002107573846215745443306830838986092302238430629895759217074519186162366150239625487563658659200909931988090487800332267121986073707156708004146863482500005252009912471091196786446028020861341840844098279567118658580426576466996847142226859884915937220072966135961203135147573170103382500672193947885327964455001409309349134407619024192389056894167400280443476485098535064595291114581536087365382227414335850422803024893049541233826145138760259781533045001908119001270120650272759421219706988782794656996107546331861544205414375790934716749573538529439445798396475993125380154154194700058088032436095339038535466842193798812344211460610031895238653802227655330174269423754802073906781673116494902100799744485287290840440515095054914770934351581798635342964791170019124448521747723222034130269848908944456340665390937331064824080188097260162298875761045675268613306610113081484476315910847959029923692801358323644679495707052479508428186775387949432925021586943141211347413780573475698541620077705720986260494303797593938323449061407869031511667776378456849884412886180728068181694378871160480674248322566851095968569979827790896719416002095758797876224326983514681063360582230947624333920063744966316038626006834362224770435894369492854010744452291058695317646925330966606272834385496036999133780154411416010456279731327894921676878126596058428142845758146505530562314296815392055393986844315191991376607368791208327571869089990011204313072795594338862411516906368229117393373563892639418267356859537828530510446775877037822340858356062625232971777007418846410525410405397859476779375278132942418785114766193301842283553991695279437302827532090300939623619035471766134210981014476343046690901689611758847931606790490217742981996568200112374119639136012821653440331628339518534878356012996876991305156308718000215281178989052157127181674825472805318219919910796454054160212452507835276782270566846212981767130750114354039880056012877115551355713957713912823887815900475054614392292954163611971794511568180043672750138857379401020080801895912129468848458083001029863099253523292924645685970018504846657803452636046093999713462037755335392112232781708193148440229232810888553186637401032981430070168219184407812290458711866069161078935545871028595885806294772776087091309600605292493575768850726209602911991204125047059886031096765878670025649088320363477122727981034747276146651455012325730536513490338251276933538310443741025727783406277325173899331909380662102216432406115882307567012841203613791460225215264689372320283702727837878299344889660112367284933850420221442993346196494657025990543871638134315062156170433041461483735301279989211759595834008009243708567606041081237986796658376746263586434528696433330152227290135142866882682909201221675509096037371341948810008907708198619070075023319510881735628188032175578812109529011206551083758973987488701907880189864593470511029054595822586158121256968122506721089560641083265839383705261020231474826159591370830985473520090499873710027517453126789543904915509677455234987128989890993671350135227699023787493723794589247795321618170133293119941048356090619934681942962273195872878927950131494764539558021336793920664201107294177283756660592370304382210401835832515054378846394917588119202999025521337774128524577795248464539993826321789461780773016125445047474707771726027009989099130518612531554719933875781861399644572929812658893891235052025406424136453872952478457043369917300336161300303982064591960016928436269373754254908008836123087943729242386976063437680444357383632768547061792780419286681755685164915912483833501192763863356203625741954999959091488069500660086336947517755540257016604104142268507231156073916902558150024888918005818113991822952335671987570049217657678533726460495205561951219248624580506450730080673562972349943020608111264739385327834013748269888086218028023516653338078877112534336412817573328916484630266534391602158867118594469064334329629826975456710039967719693778767781474981020042021197942626370430209370969004358006090409905743952774953950977802023088607666277844713399637097680054965600819509508708859754243122297744524166307902783771747310639249115928392284930139481471829461590609194113507755086480322052520155347370745021120236945373373393293143531787214258081286046099285071325814704972889525779973658495321725128486999360700939068604735515074890123833832045014113462977362589054739845000088746281428226197908638661263206746577247266530843426159010584415036920715484436430099809112391898803950560672278324513630553768828667848800601834769321713986499810397691431163408177809209884983839992691090993828593536774773949805396561658172909500054120190963659549683950575954906231363667753849360434069689831775585304310250267839024237764489296413926169454288288135732108392633405309058991410622904801399553897253104860654015720095394611387395927744941274784504490753805366434955468120235356901406452461730396991627752518321430581874036771942687714837320909500156836735031937445749033937843214944503300328914221067120314781128795276906842340522784341450720141626994152006003471952853550766710434812119089797090758380056098542068720409236024089692405932233223453539077326716654023281042105740556740980121021559307462273288919565831675481020774922220779069782355071745425838456141869682878084866566388685452803825832379166833610816641043949582874271381809222040676108515208697841326855837484188775088343458401303899762151147589345415983435909658669652901839937287419125038363967943093192814670707307959030080986357583947114931886514529807195508027269424842928600996282155469067921829184033572026164381191827735643425879548453600209805478504293650292390630672151361087197433901989128996609377368997695491429641928336512707575978618096347937086181537579279116555912365414678297182727415452214891110651633382170947779556776578646292702006247088441884433271597204727485908463472945741870509637391176532466231235648414750933382177045984414649672931255144993214176698930656320242796599286097781888016363068307069487277451593936324568555454157743075565687091863439924267017627608647235356286051615959912348219095207923560543952152399732003090214850773794776983459816450330718308703711628290055998978854978969484412464019296650255291653997940582225175647413094578310142660778203669453386975410639837684564844584807509457092354317264929477440932265804488093848195029392981482642777391355939850151519879190636643155366376632193414328063284252182386366083887991352333263239799867660902311770200902900365654741339282227136676203032011799777505460411617573199825149312112564231836739226677599468724430851331036839019347097107867855656102995987642633052174404636202524718460034274501904856446358909687610757966100365849491119215491137059678413765188860552695823471591732458931418775634218924262092832403425566278525662494306066335280669230639458379022983521733280644056052658439777567484801139786353818151764069964231497816661620057805323432386511785075242593704945680864423566320906656101636650023044778318422648390702918166780524135904277452863470547957539938354763229717390548651557949326147452790638362491984882628313221259448291230017694327780711465004182044036117136249387693486628676501599925853873152726000063439149702883532013823374106850339145224689843992292761724149772830408295002852282330233243472694082989022798513201966709141697256050675642564109135939328626353691680077462578509907176377689730012886883072574724380640333903664625101364058610308696452967144627916899408160401706581720307037356963588477022305556441876908309054600734510104739890774832891420111475471393831761438296971451792960728172474931550165289948318431874415349124212267056232568284431561605012299561858048568697072000871606470394010909376413020883112762424403129150510753407087041475913311551679939210986439421856439290142930221369071520965150347204156013855304996144391291578831298273279134075665764090187735380943519874457299494441181899482719872801709199022730407832382064123941131528603311394383640452796663712049269340195764112879593171696620494002200251304134104896413249225411096682883378504258919428169110887721873874399794970842325744376813485916410476396234573944343844779036461552573955107331548267078876600491196534949078823872042226851146510964833283460945208679512080163317808343637140329391529824129899770978049349631710626659694655161855734190407419961785411180516649840814237058628548224753959853037727997191951038708923685335358450793352218063598173601221295352899821624761357505216405998631800585069227655224463289348103579886231712948970601349021127379110066226911442768447637094674340419707661826288873709638656961677752452669953470738627701367177170032020839169998524162641534931772791590415809195842357539520854186350826384864714350785207579004755226750342460321677336238419694416158943261986246619987897981587484654440591390668119665372016499563876727889418810828058427342719119322186055831130275289601202507386357230055814915004680338722144756030389518173598442344280994304282648435883284028442909161030010289836504731726175096140915383568471391845782680002869796278163090822472716141154428478618589939594907583023330265620081665254959896225545973920612131215868612929778672960486767454039124185560328650764736898031598612477314019751638832007389944020370201122744069435613617101560646131342588554550789157215865265635833636044640116711254539117808108829331787477609377688945366008402979566372371424867891181596934888576234306926213616330139899165473141343511036620713987429927769231351461183672155069293915762383491365228719440876709735380054563628355040505383645746891433140439412602360547574631714511571392135638999567718760085263720773683002060634698333302805262119726618463495525772476204519527117151464448794262522484916072553049794568508616572414110759679096188485795968592120710676288480576453012584126456442024916147969792633591028935371178358899323521767844328877283202586847763956826357030157991482747539024453840441158639193433743326730324985138599608619069698005603209999416691486985011545495976385944344435016316384655745112202258701477531457747812996222678442206283032935640296427385393247309239229779751747084913463608504991374375655570060476259402223974517975875789297516675053763118616669457737683180130295036463958490188591873965509425206103429409797380165237899301377500730974109753169355039877203863634708990069488532052996821198231496399130921814389525604935826479901527037230604405327993102257627533230391911192513431914834935829513397862606806094231305549667259386850998216330630259662466063579181596926063994261328494700939523689253680771533936548488610705506051730606078431858545104284588111412107032479118876937995076052375683008596054296826554154524851122013139739266554319044380581187919059791977961539706846375205582573224497061762936591879460797085507120941474292028641830886717988520996075429667912534160684673021593397263210620054091176224892575605863959145235853972340424647991909391282682297382241216656001249525672278913708891165325919502902736170949888531992548282419509662782668659208688505772668254133360195705515311292014824392297453894417666896594692513543151796524501809203883855142629848136611482203242680906391942594978474224601470341737609731974615651041079580628441872434893248205327653346612500792842436005518721047268285521046599331468876186210027171658363507533247465660063606239027062035539632873646594741546650916272964208634149491028678838909352347626758304329228020117999574487835895313764087087299294375690856464162761349192518682975539098168581338875223474355502213605178262895942585989646954358744757823274922147319360653459194933759167780378508434293837618760892655412205942418630711174852240747761116573510740246276418886908247555263974939893703769573749771394878597352046009461399408253427204893543978349617614028961061822295904629555867174033841119878423152572967767038000317871104343264535302159974347599014448906279089479670843889823598000839251775752180001946872856740451677031926921496293037278250387875070838454390121348770510233128820634736589319393971499599558674818074504083976759749572480636044961749906917738938323687460438927368153582312326026077702066617787590415578538242248816419187440039347583589515677077469088337147438301707903363597924384307472886547397010901334846906442689710281570890990880693564865698742058405584642121894170901776553356017321518827810600532660819306858903160781416753622790816691489539775943644091049048217808378031329861796549787078865824508642240605392767888233478490487751444013173168884282949221220855926497378856739557763406073716608530868674203942697727825538205922440967065882033136426327463741790550389874066198927824907204243635060336880106038983771209475829898861467177863577424310675951375324799791612291002394070848744395014232258210639488429087596818639843932894586970962059600667467028634239364971858080291958358027908124073292524844546554383971520133257731959566260577745474601218968107494077871739061882026539772945679243479450574005742889607710012945332964834378535634538694885703833888668167401693881216937911831512283117266087034657851035738686091157162509657203888912247415865180278214404919383235347158698181663403150327992576510858528650297620576140202104627893428149425156207341961131560354260276859242805050795724700653512229890203633425686827764659347855534504268196734520013405179933496738924804059330052125964745971102709331160074508349860323814662230054025458327017441370241655896548929085860558647446469370620249590650483264665824921606687040193669217305237950625717167154643381525334372364959080043741522588082436335803772736091085126146643734181816868170984133747628350386495315130180933879254385146186075640145546967972675164449905105383173194091480190198477757559836660761510984305283494766387368097869763540501883600525393715937971258808503300853604152061725626816837281046526232504844634503054896661193298324405520025970088023717879517643506799472871871233496486243835620978943881355559959160192177837218419875099444621174378956167544307514565855002475344269492903367588728663161743992527732439387581251376894912423493293012871628451383828954604271919281544253044585565379118064854430556035717275424249908592130125974424708746052889206896003814286676517690805932178915571431435832949698620734161334732163612963171829890009886548644463499194732060188577443161829493941106562832209478313872063692876266340035849859174385810127318113833568184017860056192900774493652178104171960667141013701689723538906574282639334138694439277152639923821152579601555072904413074920052529572525968404827807598611509959922252193582924938125258368153396386680711732762512788359423834287497860502325369246011315327041839592636516476403117979045328218369207281469496492259807814158057634426806655496273378309237358646171649367419773925739801763472420098597787271948941202413874226281464482314376234811882827235247293532723752901553534911687221570283299541334167055343716149715965487444108300482312930004533783646912110775112367675208698830324888798616378786460987592713203945279803447752409121809711005205668994115183908179146288460330053984324957024596205732758547265014663246215663417581416572054693293017070732864186380500091533580239841078938765769447870047879163834033650287609824920214239569212890957892476185938406908664179637134979025217740399927437933663931567753732679320345263217048332740902131072913271075353436307140488358745939692171362559259215015431396897472637369299570550033541767637333680068665611609381999134440553752184261417143135621108666599867561111101407516145350283214328133623130406801362176352180948963851560225703176636494769212687965144945524078725365507794200739590300867147943664906611845412773930044923631067702108705260075707759106233449940787813379675336460751877329918009087116592559060933289426016667798028484561741920978669234784160201884331777684664730952847778052988157645156549473441363455299531602594222693946762434245750937261910663881864504725420862256276013683557096500602609029992333379991509309326343236980385397381357887063682224277272644864885903197690011660200031752452692381063336649669989125134606885862389926765282130237736956995938452014373425541280030916427935196733862064909188470746088520630167628464551661079316720629010159175531297446380790815260019548513507939247754862295712669300688164041595141726463027799399486917830712572044650414611089513882803384523542194907251501804354449417116329949159529729662614129514416969856186833348018088581580142042324723391321797072144556679349320926158917358092770346581120256130631034718937622719207803897695768277085797002341101983362661891071105502388632622781428166558126291147801014695930024781742192236868922431076122262656477524795879486881742743270592354076547732324223673254196193091327950111561011238457336533929438967776409418275344773488026094749978633035469969453193922507508921207376273880100858002446221792621366726798011939934873189824727435397095100210973571993427379135672878926396413342973560476721395868920985308703301469934161573173463713477576241919004344788236378652188521701172172299528026289304370401040156776171123513605818874442686288696615668612952931043547559516328323059343084323711235506158562672462272330228625331879880957293464178456454968705723895005395639072155900921580191301889324698891855806392312054632669926830932672232102649846277678011191511649376292245340210325963358416765592837929484230440533322432705639935906152883324488388786915510547273782547072444932062809827023920224663783449693304066158326982824285020471308084744368460614382151113074649777224003640748473905062092375497809895297438811750446361365678446379080817041204057018809773631963914305782321023644210298596967517958048467652725040266902138894993810168714048460503868602831713920714389252006651711141862282825369844691972902377652410912006027281532085732337466092203313511350336852311239837975503764896175218837017160726441124311417492549097156398443187668198324666058889320480369441591928934291439352935089194702509860390863195187404298620832646713170940413665661073180944268886654883004253331287327679874217071231519085134585142695247208205197631942527338069321254823107908502536767808160727246111591323399365019877915236919963338790176315386878803055936160194544047228544167210717337816325926008219009866779971164151751738464854270582230773722586226663586219719367614037443967350294139972090261112585970339023425934477902541791525840144904968589041048405600665677425236967701763298837173232425246680974343960687023273583001558348749624528589956618975421363671127980087910241435240450190807159217541223936557379350242355850114738303163064349634429921136852817589051185102383961250595437802954915753423265130140817987445038724596255163202557206505018444170344082343927158013890353532193249884301101577471926076065370462475480330374062280849935576128732480211275882449137159250953815007427196702922729374941130035057234901198826184461197619964669204038561226209734699798129858108850682069316484439376849355302739528570434745723961925583213748090854344924184906681988122706192385439288279274525399568672932513473734469343844567248357247387668950102835482694911169234423665714477722855636917068119287149968126801732361923693380573728782250186212297025818618362617453454727627204789664500022402869169535608519993346338722435201322389711009068915989379571642068235183130250102209847060614751533427684558471960546196309734730388932769934645482984153570444013642183920218160679309084315154092678640447581775834209748616689329656912951606587452132645878961489298658792363395756864583522209753338214607679039277709317011281089054868409521568544375745493050437219458335333276714463482834695742263549971909197102623259958570434093598109364703802938908555742932074722860857201820815482338992588269748024717485434304196604128795992775303264566023714713001343384324501520670591716774181949785958216488574078986021348003405559804581547134834456236869739945529934190711772491559568153466336799362304197123615926401394047544337874969021179089891741069663290606360611544450273505062146803488642827191208848047411763599934914901822668073652697166659214358601330206260771898079460959207633067046399175340953661193082179487557055400115874606137116149767120571952194696571040492830365382452683202512084624055365785045611538078437659648670167151486790714733496342862285230726135523559981805287089186397028537691308413261398985439943970431602883593997545152957029117575195005878525103447278790780243317957015035958572518682285800512368117696217789784593498223230721003649807294239189233841562598933365586951654748609094923029444278327583395867265498151214969027789573930152344282034632285433966232731263318409368277523110720311041425290774566910402138578996912854022251657731724049663811671636915708875898525359578403793672762520444479506710720546234723336044119022152829478819114920349988861863573988907410838998539330294542091703778206930451638016573437488600777994208152770908402754874966554993277955714871562602098678996418037400453898658228671311890041894726269673238015109680995447020238807122649003797071241823354809926288446980321538008090929949077157983957769702514005409858877041585630734699837811303488674520174286094020388869658084858283105107077718234493081451003222882282922239901637012048245679701591511808820015344043358565506747646555826637483588573806395351391356327104470522336890084472380333929947456784873451181454209217088103702029607068608281574862629209083705891069165973281615790293126889991895243486812814857647558566486822504620085252962553769486296610375023441861374880687806423030190980774541059014748081426410234037573725890493432906055614477288062322226497823551417166600928369877259035356688387010729553608544928341491993111534464175403854543124370069135078874459128961577830475903748808664950117511404721867175897825643680775175047913591066691349498400531708743760252820723729390545014097095132991151386653897601937381762307722642280240925212557282411760578892296126882780384316263252750891279199040530797602717553761018815460229438451703634341192170547400443941445870286011239849222607510399765405017454466065871199140516942331625374972418690160967823177376445204543297075714253173207913859490819752343153179383797056134663032048139756706212228518610144653861085219636919262672616404008913543423592855543813463863031061053500971414073863757615597250557114839015756543913602011434022832376842780116023053215190948366325368389404487033843337465084332923060314051076525022114956926804392078060236974836173964775545306812266903657514387648458798304008004715945330573949932096112345616142004554918396279189544547228190299642170542284888327631150749444868032990260262229253051294938800816755029518030407879586308249034232520038264585682279892491154215149220890939322999847131818641352428176971651650463217453263270992219090503944466140862197561270560427187083091301336155965908201940349198593909013418832189762433786677174553936926947438615751675524082182589791833057487286115821895897930980370299403709331112570121525078233665495200959404888361308091684341265579022212075003102612714112986228529438002092863685207179740174974031327002228157319030886919281152698507753546851957161125467356213510769938950796075191004956633802057356264949127741707588281837595759555233943856048722399857169160517039531247499824324385631184696454353151100088915879276593464414748289272723697204006159995982665655659142740205521524312423238395786522877558921848590673188206624720758584841719600436208767089561589464247715091598351611048257699965195774662841591779359829799974514058784638407005928968512452423362657913720338606071674058675612767007113057078388555168557521558056505483708493330575994404178899066056122731883003635051999827252955620557832335789941376232047785321396807702649132434569955133598814517596061064995312596783981132842474430553186105831797972867964571873718064240109047063073460947886226213771712535361562149983494479079916957523192396877499899101160131761518702398849447880593200028037595744448917335530955724326631936872779505279018286831873930087014656764964094678504480867444879009288136496956743531083936121079535080202946261810488137750784264880644241803163916399852349108681510036892839411258118383672970879857925696325005941773905975067001659116010925737699675803697709421748359325681170992103412307502026019046515599919247591274338834547558615105675292474389230020429902838548986684422635047193198842979243894761499080249286128999459438126684257255369598360760676310447352021482451667774274366884695596540799724453552397642305226434530627370002982437240132786956365321262725275788031502931401525664121408020399344672900755763749952487339932594643688152808268782196496312567960785585583771672924141584861969056724453975646457447887347985970995808287270286030311924184643747884449435433412590573279587107301084719748966894152331300850953626728000406545717683227812466380719712800820937923449678611643000013458203006315922229449987404050865048448503382153955761863998303651811125298526993624296057685095656955469799352331319073422650405681126955513733753199156114774587996640103847956447102944391525498053636384401923122982623734079990324572448663245299182573134917701723812632938671787267013980839335210520083779977630618122979210496341278313988666285419502028032820939854045074627031760445428762867914975560758767787515437486612975972197216758988482256621284398874423334385128225174774463078067074593210352394335785655575922849228662177045695295522973980203786516892245257110381468290931965588021680253238120805363432244166835530313676883282703599237841274085300248740694339441230233279024134724477836299832801227021842168580888986487217645300564750787687161308318003221084167716244088099136395775645758379411618009259406961492117230952818646812514382642209196835313642839598279420758122101547144722885717021578226550784561321028717393471873763900765127122907359388256196009784009191913199098184463261122625773784372600314073510372886104959992411670331091412910442121672307561652769814540554829164796448286214040271596349370478939167300169387792590598199292681282421568217356909538932446949798941415095011012175927964092269140515854983350088581767590028660391596190519675921284431079796291565728167767479706132476621578421468772561666244789016990275555230421741797720313271957501606325371634835051575015249888288225294435383104461648300121613671667524180162808101690740250232541684059041040792623205481442989335777205140233332480222668138008030587670801039231619704010518567444788395903669582822534002690102944264336746878240708917897120469663291450802795176560113873741933704352794716732945802074755584098150148690850985305737879120296970009854877425944233965280298229491861355175037038245636177428706433146525875917752904439960225841433225033127956020826034075025684245736530226868776149008563316193122740793546763475905325180841053729577746049691818221744932762869504484902566886107507727577375995824446360120239147032711497286886818035665947422047465328951078918877514826703105413585787688720616191565536135649272757279995498376071426014892686154970284861659841704416624845740320117987472549396064438067727039425035366082322900022876511660035948775192759525961668391543913089497785833208008141134376399475733145810901820150770422203480486197079784401258618603848526403832483967991326903669532635705321994946717308053050017591076117624179380978864144257936680546794066026045234824142670743923266544616869361973331582829428510097419188418710519928711793754406327442457180256811452548198421675511282957486016733525142836946642648431979285556928112590876054847618006242841544834328325775712150901363997841328896302298405017665898368635078048369068712365517970740157596300637465525467658797904978747228371715954904072833970257889246270929802751591158899219472773528698487852706231283445231208664585935539554074503262545982811154815076933747785098322464187335862012644973127879891689228354178391308274542497750981873674029640172680969461973549294298432089616889230629320330145173093780933581380401978778297804752321044567273949751560121622890428537704567474003927502173840389352009606177838028638466743185214761521898571064196419115458146506834813806200541555488456399526059365724323945326042763547462271632825480571101274025131436278998717613953144890908677908110097173722119911966451472202478854732547426830861264847549781684403970410725811771440483511293347574710772168099415139221161601531832271322393098577429797903844831294043822144851265503634601095564161999235316996250643334728460078165318973208330083602829083274875645090319702597814883091669551054986880342485009632527318798789645328477679455084022746619134799968379311690960086957753111090840245514842678429479018168366075188276326492714661862100032926092040357267836040657469715559836960655584922967273098671035759768077269714140539157107648870886903533507590891044474200613477954000605770272679013556284955655715835120135525317663080099972898678901432933366756507972182501302824863580919456107992125294554683568134369912966553611152895586180630988091522483308506990299031443791075046618296676524005294906645895255340799410513886439406079037446651731031629814521403033280743580663336546205225497085439768483165536907640223717060568342385206088222427446449824786222314296382102782034990529797768656470076301433502121602405053848615477050841726324255000344629040277658066201008028420320643608727019510661243525083621292813006542622517748816321671208891040038206872344536487110216547611209856449619993395306822813157734647090129958786470536473018249179360000576220179143957671959763163882235017410078589804214589067303291947966274017776379339954344910044110823431344440050683157786148006959879367375976839325956801420438580238932691500193416654895098668464419262462970734187033007465259498920529689722755528048645449098145286578404905007540005211960090500491179165505373660691370383446282117956794436031770868535056984493336718206421120311213891828486718405842112987980583072531088012878618685164893078143129830653008213312329303863468764147366776598521382804268306606626437576835686177536834135331160122590418342167517920608676733448157833757478461776150085511322877305082605274708897051727075829012615856902211568104756170536961238206174534671842727599734138322218958085002076194806565426109985758158534920185507029856578012500640697528596636167983517437718599729625695286128331828030910895427574998290492739194731713346522027965978415066005759627786905897838246016642717565231625901986482683588194098297871355368590171268505132741378516709100915380815579512157400193775926866157372111983312919792076140811305495481760554450968072267451668235127116265203765313146268019103652967801479552546910007344379084223222267871764490046288213864908364292209541264820831293906803660484172960260411272262328547075490940872657352079817845898822750071274738199759189369811997748402799336485326463391715070263180974701218869319802368611957576803266328397643009071475876665275723716997360419421060670875677281111248052000268023590542519626715916699368796108189538376833744075604763415818860434589502235743173866483280204913060595218332825507826499379748914018029464332263212128762343688176113879206420056280119214646102819529063845161386996756817401085359681939003815929193189743083753096447430739558190469952301961795970459924967906537005276684803479081011593133149124340867206418762793462347171687412616311877328847759014190518693199374034413904811926229014141411327972872949740139492401800452792167405648374059186382133841498208295986816312925495394717480355429337973239797866191761032461742279942969846691058729842158094284702756279482840297432327594855499618979686123637082349694365861953651962246941842891315566570034809328765383832236459318838918343226038817608542248069086565882635803499275229825790921056495627521569437075750602020134385126921052098515949932060003447923086636749180718361416459174806972913050860153294290023981262469946681530468041012322988844348944701156791958186329518231299444202985957732855108246335794645939737895212162148805959739163130645209023151565038037790414997669543535285694963087186600203575976555912795290744975437574368835843762710953456681013279236005256551483247700714380529828383556296803757330046881624956296931155555311999045254976366952255846066135582747838021499742856091670052544479787562882391498040079804919466852675020702332092336359035445805807130003895096203235788876461934718766805957868653005137739609509187000125199757981114883214835866027830129400043617237956247382118316907424210289545835688799765195133957640914773408093281993079653277356833196849749402897751956540999777556827269231457363035242254669397236492543993424342312160028933427415273592098551321224104646845756952291861061866621086916918751911087881006482259035694776689698852712648184873351775619756465444209518835395043650881180684368609030368445352470931205950272270776755887621786609705620199173315376482134166781275136255361055985060352041079160566633811812764012082011149322893822840206964390864080610436833645426819144092393311096108843688312496324170358557196266691196855123067314271108677734126027465284520532482095357201676589188145298766490623279947310890135505374904453748698576912877406300056828941899589259463219318884224390760022702121964775211828520759735874484813327033252830965124137202823838415996632910102827211063323658331185971837031386662824649276050389125518334661542846452950764066510029751679162445329595497023236077521088880992966740876563940550819620140435560217039005185000013185714989312286311383934839489025914420201891844480436762286406458682435626458718425502360556922221046078054662424368305903237742054009462921170843897181945323721672061010526685359252863628112274551050289962019740982566847335907902936907200137150139886658797534012297748813525530013512135824815902807313144089434459119521948946555102474038948106145761244773681778732154621365104441348295999607091052891520212422831091944174248168226938577289603987582930446021022404319639591272582952370011854446408873705514840103828769641038340359423835099933543938436354134898228686447770910558023337593954731600439992337510212398524622814042376490213016106659410110458053159611067180133672630721050333214062410466409603037371631677469764376442900490923277522621948145169408860574305300808911793869856118040449878846369015345525648556181317026707831880928355207807086739146973720742624950214251785854954260728422757811041657214041907699198693977639691008626835826678814398443293403378730207872499156547512771090732719352989436822154511615635990485081697486451994384757516620675973240430792900766557749148999104705752428033277494451512307322517725099270247317737035886532662163677001124776462757568780724633574818458057454473705730197285324573594418646894087179107385797126790469677324078378117750262937312626402995020970594179289612441596275843055444010341247023222018805284742188496175177019202976290953114582791412468212423260374091577864124171229506542316856705693457147522894210077927559980095940276611664006915114856485146694622192956722392346414748263610668422790212208667594481189621292248016889261277709036779283194637082440988569821966400066231681576863743607745330200923421692725979505912813824091458357147127322999089721146037067787031888166724784698024020968636620970816870316488711064770147498284014720941845122866502750053759913059778882345022238008591957129554084417799717082947764969630269459855646287451791927540542394989618445249453435631430071708038935096976202538471160056669565062462514099184566173699897778497238142523477014454535561458263280773308428248807823595995966664409910670592244096931712253934718392096932781510676745306081079692835103826474006474689246794239157201644761431450989267385116968602846164654936879640197154097551060361155895403022687114025611309936484386716284475644831709754302295401852937087025547760972141074836151491280387925303283625942709844425956417953012121099953157016899500416908024279491977906476200862533221164292220734800945986137414290024153702743689444196323556859102228712119148555967193768673529252130234800648705768235295496829189521079850187321835951801595360122859003116241270570383654141050225695008404254341473154995049712323076652969528077910753666079172579173117754567873064523256492690192584393953105887589652087155951461307097656222528367006996184878824142681252767350331527754847171352151979776225865080319670610802927102769354280724891212733420453792062777831307760703175982762404144935570283837050677745227381551138648324811354052633005484495326729182163571536946178625804432037392418320049792703175961416019877358541844436986011245830691969073700693236937108182874369148519778174522023833339252839594377978469295450768588071242975305488126839770935288133615309328193585013057676737555922738073375449999408762067584787679971380978250954765259516330814270904837486385373600557270457253525870713248027756207765099002247825998105556812142653563949577913595219815281969587406998261211429842946170461464510642554875953492990591972921478164167305085739404671136419446960170764287185738884951483982405866090709843363119793619459237819337592859153372601981211070069139630097804969271773439732760479696973624329970171286897140283142162889057506328826963946717748952601189015079971535950982178765141559260351324418920008810039802340500099622040205784393430132535284902388585274619383194990845532207809828683484065223699794230742765734539216189218669144374343148496993276746679428884315945219813526994313280873032006086889716386011267935218831968194717602592054008686438729808682326548499363976667629467301857440683504081638682527450952594001561320181728425830295352359272714289581007180036538146433905808237638047657738855208161637422733259709975688175444893522555794610436348566992993605896724585265560120427912986834079451867516872526454540423258485379662936014377161283415159732192373824970777753200229228415526041685456263965024449622712124901609346115172626161452106689134278253942208861164255096456922947066060277109303820321658107930951698620037248718032070935121478977754393605448830100893316502669928763455875007858551034175892411971698643432118856244910734100960701457465458414676487327977588599697089440197497667949530979723407510644991578736868821446323392193499212161536458216553843529033521137298130585072227592773139648496147607414245792363843095030157481056035637918700677281026383741316743382986440070188107194840019307222579623617781411315440987342031264289446741025573296945913843566282847551211204110100236782382864026088276032058924024556255035714329039247105090255557059114525013418464613369891174717549747409527174776361252239002441573457099847573599956947186918726473451216227979098361647102826774606005261360599949430328208288311585865814972922278606254257374997319176450796444354307173894182159660426268420312056323649157084722518424634525310696236852007604290955378036256125351253929792040881823553731234547173273826782397853698468919294039855559409629081862536869114204899827127182480003484231158675725571885039721762582467469933286729981630388524562734116021174593361251557842601608967349714526019202002770390436343172324711147431820281306674430258944052082082726003302311705791594173196366902973027650146482147146980216253441311109812771898830039823304384968527273062202107009662433673988670215539471685103075150701657448991757318768736534227713288465353361775242836252213044119807016242816435934796501149104798512478441462701396582885730161158596361024964871815376245297938125853335618416345085799466552932195123645805317848380997215263872711417244293845002101733383652850551316689505191383427976619617135221416769006199001433380409782140448915127322515426185351854199724972519397897782264304143400655808616543536958742998925979426809281121686021503284936216286046029013048378967874961977870266110431077636532019157152012856087771626576068110123011902391296787112436659063285218097860665651373559939820063804495985907460795186432185838510804248805926542315699408879661949399636313800089358320944473440628025593590134466877161659306461870698734627939341809000435360340848864029359872716646147932387729528920641691870784043101312274336056259142236799650847673119673357984783414240342344975061133936184919463335469555482794974750281565791307484429925925202826390456239848562582693778987395279939422626836629753209144417250384102151921011326576947425729707354380160856094368266587450489932087715860594963478878068770846157484420929375947990971643390652811218309429537781545998065762902055568942072191802231187888113258970192426612570979756185866773584302524017856224107240584087313559435773465337506403001897199344436915258371578115587018655207429107513385080136521767484297383138686861296691334463228706418533192160585267858935261116220177533073345135591503412795925417709714497486108060278505547669084424647094050421518585277459321484570106529658986959749342391428160454695405806438385404218936657477068826369486608051478901424282827561234780294181119389226214065770193551517843648318416078642395495798956807489365103760410780111401463125310940182309184819773132410255627328572000987987176829714692152613420583783327749127092439666326056248001904422490659125159347585417356142940152412270362599182201873407525262215985551542141799620475089263903175937845614294937491716105108994175589717394651676180123972119158563262167934872238202432108384397909069741660118411975508103288061017831197467684246157711770662643141841867259559984418882112324554345916739938781066307870007021656823463764867061753340824181713467000885341702011769132682825732464048352941916299680465343572763569076930401921150871293017014977421134613410077104449830255910737251079595316190439678227520877286558529882279118652264549675513544897817735772566994342463990320555613178942299798507053369294892950638463400191898325346394458159550262325323099177854348269619431873767425376399803896963415771036707529854216055738650790848594777732584872175459074525490975452755474076941615651408219154908196338234222663272947173773578441761964844223637890430772542647936208661248040347970587936751492771477465702857042899329459781635301167387658374840068615358540722414270606443971622836799014611191757932206525285805363698037991738416501853867440042339707295560914171956347220839185200522582108906224793763211838291195597014701467665330804583686961292899479332457918660450335072725802977424514401345850376093540240960123160079588886489063944445062072856777235135454153698634175683581512959227818765309314075658635378404222417414185521133530677473766713158745949666336022813290843848046976098768624531804294539315153017788774130702170432979640672572040150715231474014658704392437160516874228921879652939579569234085611913955898806515601659526430103631105013895870326889794556186376114281797501634061153228918278791139741093987842525187256572605606852957533798211288759852293269987470566164006443080824248701262141353292385431407306154898263105554535509182556152597263393092487480889736422508882347550027929620010267036336089471858113933372885379634738713728224417828530336231580186418512242479456698797126998147473362098022352769015354269129922114938623262076752095699414529995471712521581263809351242009146223002331737244840524639310554992330453507405135282926899707188729916275439511321597543588485011997356767770354509446794285059399416822007164200211675396921619781216424123821679210777866431460083039943746812121305208553402668687030862430184630806016934574994027321811691840096336513590520759727082912011748435591690679679745406927906035879287530040546268833391258645858748800407665659491755919953341781089843898644519451330933359079944287340272690772864576941066300665114889234681932292733885796140609958133852717815423649569742357690114452462500314814375524124097656709893170314201216783047577558548101272786942974987123707383013312284445788795713357278018367610251961332003236075872335478644487882682832964046814847165895900112298719755749962752043532062046003141706185413399409002347349067922090648234139552227228698233690458857840914289669250988557535768529977611184725132896371372875836082505816984828611802421655213680663177423517209624026529826684073846751935781919359963287921386084403949360346389351838001297196363198246033049860203947506158875972912449712489490100244708796338044523146354459926142940722332368916994734242429941462873569407647880709895038504376548789804405241364616310488148586795219301795365732647300298397671597922693558528274849531688246243419707406528493311866625812586099303670944508876699214730912010802067154257044754475840495873661476823210534626322403280881238160927215620005701030055556869756478072042961391879019020394538679413038287933913843809744242118028069542427008555219160541539484174320483445444401373803560857709520113531709059495234822671812888047691695586611409698212863351761491708808625729392621670762430076929199239809999814311275445981292555224407292461591814704456466827270577738654804612538563885939367285201391112839439696713738415371302238222191572687446055966376292996968926603336625351864429768024386243625146376032513116706962169764500986852576337568381269630672690472277429134490944364578755984474587622042805358579525610965774772105771248323050943548164092140955436179936723350412927528683682240245334917215309389805367829459526859887667586386425309728908754015960560089843866236599130627929341063274193405803478903104288304330759605710665755241642790891833020161919048819162816522063459642872942387422140707497964996601640571356693296156471916435730427446238561479224338630304289266097040105993452954511853568602046886324537636638936478667900914467800155046839722193591741028791024282882898423096575214040051289932568872899114616823914592582665278355860123374939388296761464916900501551689032877328466164025932051239075584996211722068243274860305853405480715944181133273976036464869083351822874336042667931910658661396329223170394666179089966460744490167467581415504283587398919431834160590835793596526213996673062495158714340611423948822232441574640234656721741603209727391295532643892444950037686820158283197223927393856650281756648907690093877835014146500250914791114398956360636545020243048156817126441915574779480594580403851026991817468152980605160988722369527579585805022534586524668720589777032687579532014079877728718072448513379713630907561824552721735066551943098161177785873137687685138903891146168984875135491807433345968865586558654814894972942493698722241556638655934643060769375356357846416294133711701688732550363100632690024575196151686788241474685005055017990591032169788501498091631079533423677788850186310815176796205659305810740448519380166984690574055820890179634289787984895341349188587555718835497834182650353588372235560973757277491964456931903912767713946167442786523880523936681587331944714455960480061929087701274650425499789552781443781005660674112415597335792862670225917597523479234355285964835253825335779641478841771488019165103358108364970750440881418734135878393330172246178955757351212974238320328950161928634350363659046230647372139148448050472036666293620180173428984475426936718440626444911493677706144662390374196016536658521996562296382958855570899682544128076153548580526028128072980316851025638610711261881709804385705798722223579221927225198960388658240335677661297209402130844799945994091105278230346116883293014101673056538487145098546978899308840303350675844141694311041820250831878733172089411466456786721249115250006922537468650545068231273161602210763793718550844689236907620945303238917067425082043561208790039854383934083506619476485826140597345700893423498881828899794975730830149057085336782335111311732673578521860242557400824808020870853471186654784489381100144736193553444409219202686969295928753696565562436430238317530955520173718574190046028822026838444831878923828365988657675353681928390533675846522357147551056966693280358518622084301613584508241967863298997223841952643684800504077205103374906359154911487051461656036218610304094365497722667641221922947031245738138265385903942105993529522056093174221023076570872387595388679936892301586894732961344135189761339409232677907385677978032631144101087212953892105894029044719686597445097979717531425057126830328302571856486992633874715247333439282386968337082581264846729753034049889075018306306177059897697910382234602769030655542097810702141258606385529628809740793130617341048729846475120153388086974586618645923705887840624363758898430835619125648086892460538226009657144564323851876248153500634926516340536957008254634044308395806717057812606142078216308975890287383764153667947176013798310734350513450110834858350084387285447751414953736925103392175140469652897129653311641974180671568632060775620394130036932399399195352973718932870711097689996167406860327557380401126869935984243587476801597565951294991089814469361496569594674097270648344289498578346775277675327772444429527268778986097018175109838671800056671470736626192290459866133190358146219627392172740886047329404409615516895476057787364807170847429571743715403768756333068795184947931189479833350446411864068101696558994541110301214714912741412436542029745841338293772072625815424193312278161446759469366201922485140009647882924487600414071710226990931983045219756620883423600256790716111027474762645579872097362460492146182506115581216372718175761382677761070490848352537617488002813847451392640725794900017933090997576492760976392650918598183334862344881740044408946826840519881385501790361825700284415029830380857574110581481565401920863402755272146566865423881787215654353732955964905666028816499405568020665338997494310891492654919210518834603398578122117898175034597987305590373141553198812400625545415980551606593364130237199399648471569404113752235605070119114357401876623925072847391419414894177144817434207603247484933194225470127675932536330291990357031904309718180758998557565526072173662789164313605647949633241169638474439391840675632351767593677965970985151013043135115099889794965564334599549200495094907369529302383643814067850119558539027915211363126335946458815998076080967424427043987188246259365186741411351177745017163418297462117294235931167308231987667651769950011343585193664713106411943573458778447404444482640360499975827229334106913634858222725617557386761460889870522982236283567286543935894145734260583882026749197512424448106822665859209907210298450789218521143909948309144085210324657588059142769953434397437360145338391207278029663357675228929843212940414475862729080016378431713234702866244241187978172510217238108864591049414998241256298518456460344602965048077686828757951414776395572230307336856394085944566979665097248295506197948534892541421058980619942703639069348260640493001352809525162327336522872278539326893843770288881612957316472805236717711575040740815119999423264068820062822451119210841214504182285635547602720354333220920242496484544162456573890217815908509092134039566725955788554071725320911283167649999978781350703727367473331107221300910530296788650361366487968622876731751972514710982296315228316555864203691580366058592024837117065139611518553839789516796755043945142662334821188982895339241657133820721968835880155333297240648204374309518511388561102162225828968910466915394205176601049692352760282665371672969464823785446101931492391232728874687564658951773209183428848673455806976635129781709093711556715731351865842425779287979828704533243502359681143651985840656955863073538272750324988649076380671588632923760897750810675679195547728547737196038708974936705298913762926612710984621083395750440157953590804679184572037603037776028781349856667061537739275488741764661811196140376619873312143418477481901444281043222706673640604893994876693944244099946198099714764222484675692877596331332547374632613384682778239174965953100952188002190232419915272736977329956909728220152522968673279651564039565460013442244347221100261900496294490288908129043533579073084547936715164827524403649644539829513145461932421639737436107107422615786202680340754174244891520582760149493430981567922689603190783186364924444030245259521216307863971114092458545908476395068416721733601365263328413377097675034394245064861534761863184146499473924168487459842631727627562453174050638795772625958293997475665723172135254959813305954260576957578065517293510554760227348652012070086542893800725501127522238799399293336846707490072252327899348348453089843207504827733985559204662494049556676378489986395257255377642362338581317390540395546972004498062831095375345722266367116067953268084106670318670129331610637452102042964914633147471691321801165939153818738093462228406756624766542743877080097193003849804025415880046184835347179728434520856111320294105524739112031918964650492108351653744337142616147075096799215259822912519178959512576455921392661295278143538511638181781743073176786866764042327527458645184013856461725216331778894333291003433029121481737213482525320265872653154850725210328379071448202445562784098046645103517141193859531194159018399259589115568763402638718873201086310446636584951039033043050039253421090839490285435456515465359197567905512777321413691141557313129662198408960935012270321878435472161996519871884673319931538030103807025095316962969980480364282314154747017613029638495811490914560893620759792640118988759360501310551966113052734794611264260309272322488376254489509574082188636382910819063242680042597347881547135082994073678214814298253285876377497633638586402278343375100314344442754896433748556972392587108661044208729882243715524299302991653111184347478953373612065389562278484951215193228191505932117919881442383249837894086860163231826237293169245125212773614552770282079342245802241536559804217949830083002508781681223690836546244264347507963339722182968436636813629329063971911116997788529614881804134580629434331992211201823780456001510931295983233934299338136402593182460053186808860363910017287269809857673534291698064697212347376003397901944767866626705938583852479880931883634836490291335661148895033248456145581887316273047202418293263061267130630512946635220489731319143173537229879757204611312428038858535262774215323685347326923582569954195821052913981408895169074656895886867624205856614916929165643951899021908294876796363508040316515174031979703760586493711310919587680701476638769382890332060499824034368484172446294950201267821528580545191445349060521299424065398614280815667423343494828421141230267407134600786943190478243355083391483669018178533884414118794428579657334329345401098899724477193290052813861586341433382107645170428960483066490766745060978798936415125623960557667459750216288542287632317487441727592893932512831880557829450528035272539739558345801973854560774181495693364768041215389531217534079667165193497779268376309440003309612596099126727000324173104616876105558123699445498981705254889536653165480701123947796653922577309212836522564570110410382932396514346670233145387611114968054401357121863631637817842041127389385091318532168972194549045328452763766086909328163643019486278378953284457398356916417523854844153780354606895773639834280255148991460163618325639704292703863927299164842881068551620479811749364383651277330778007745373894412577680586533895131678560983573625065981894301672737443463946784240090228149432231203121911915822859574557436190569044435760349125454046062032625944764033625565559213442754455896891415902455552653482658052556640436328615341805614640506306482711207858524653377137770500083728875140560177498393763907300282005188110460552177530959732597199831486941645779699908931437483260010602238557668010571336612518368214552287452665186388093692491725815165176146607777270967318885693800513871670743516920679469737621765551149956195552041657166168842947351061843466071740845678903234555042773037213877188939454025162979031167598531332519590819107132099150910764883144272156681432913140034212607243703222762904987870711519835336970165379958842561352676751574420548396403588373852540687577521166725957403684769164007923475413903167011766106832357807476428775177874159712660984593473507475533027732339733567903800324284221601176548972767969973097906655523261435636232332074765216440740458009011649395949612229533428304507704664049247068692483096958104059824461084680288262214010923746480897070186403826707423949099234721201642170798581230533862086792227010557429399163721529708452456961838704343391219597119978002141650659923142379920944519493861360461785919073608430156103698137371611323177268836855051794566622512396218416928548643972225193434637061676470379938948571055953970887729095881182837758759415016419002570076595970508548504930997509283040535444537015251260226511776657049228807990238720827594796852531844361509999376513012216496956154333744212264577229414887105393691941808427089176800255497580778751045943726726554435466988848215688774041660900628470971154537325320295354945314385807852608244953074107783128635923719199078031465717118790578207759289652405689628196141411053492109599524814688595391709480416507275722565991572391723945245088907911618541095666822225778076259895012595068638651598332279833190832281034300573658228889125388234027737528364186197750053776965865203824685095424694551690493118488170438953102546243034393729198391005002888043154645245897126973478132669033567860251896318667730965365911801595987666947136662746319151170732263176240574234337800854630049653204663931778187186073062811716363991901974068462807035588904111565803178060544789286805183204473377677640121410244319868583985824191211370702139746271109596614497535705218348193131802820268003474272720035447263658183637703443951275637670194803866264211028073027477474830369764113625828352272574887843703597372524309312640704267130167555048076964043693525492082911059423776335433192818187003477727174949078052103384151705310839821052972594658581574030365553789679988016730025859902968554294969251492354790074797726293134608929711812051943126982588223571633220661713532384603628771097565520651144563085485369807963670238510575609640751782269586021234113311335721301174543008521523110317520996811099844450614451321977900949656682466820466525500803767829405695357079123192836501570208769165439973445234271828363950445803705158346349168782776746651711172124356214823918921184575985705722761577816278445522055197877930846197158744938777934438486023121932722876406543220985426375699893512587263860130766330328412502583746471039520678113714253012501306086598297375065406513556482733397207907447319194201436097463612987166208887855850536649512687774475139035026869961953691213223248083703755594366970528465703346356595629280617235926288827456137509284883013586159907566611531522250262608087208467783230233106050922163536612324582701780259738943996401480665302248145245765173481219901842512925644114521295420393264083264417837438615205078426815773876211052704851828033363134955931792708923329556576095317166965298328420024328098755061152977301769622880499993815696996109975912126309638439263531246023351744751073881650452787878668933686677509317100596286572386045638260299018272614319164887809232481678112266503940710103828057133086848729774576635540863078888270715056758448548044914655438236409058850696002749797818473318553778130685389079361968900960944670851987561952207375094798511861575818060483348651723406356946956453300574747420766530406442224945986234145932793095841913285140918081126434943846350950445942159273370711050238965896655372075311522294117349783419038730683037779548872850780228327033009054146203085281238431711407784449948042232694980984159993979281475020746622755254133336016005922523083512516232022390982790663674516075686223162955909485875967867306385451229691534370475391320027406862154674716308527676380983902449312824190266469184695718649753715554748430605046351715826247858435747363883810191783517035800308669261180082179766068378621899975128693625126542126834458288501706587386076961446791354965936295942617050239844498606761326763912583506119319576456870147614147231730695671853266691996005810071083982089907625824431767395851584693807499423666177304705527353194605441971588359772256032828784782205843960607647100634766898826193323986039920215575802291821938188891935379587765353035052771518062913933473105267869395949879554267395622306887713228492792438838048517649782067154760972036284461517309295709629860108981617089444572071922748466996120213305484850268641036446116454657336418950167995861672623466315956545837942752169293946720960824194422330730483253388289899834843420409774839897941713268813443890147332699420902772215425884408615130378760809992836135581754611828844622735144236026580064337779916311377135135084017305684809868286869907352255211078034496184826637013281704645493688598973184187371792266117998457929899916564349176599057085423313946346657159225192382511989038209884703605409329357363519687934576080197924565178849520779425458879224027891502547833798227810055148397116095037272164478010716904407592317337125998085078718637551764187587074870717158376670409425564216012657459908743826361678217711018428519917567228893722011434172784134113139885589565099042113916628894014158667497809564719726996371018724428067095069041224975830729250526852347295432592090918165431133038497635039635703112765688768937664860609956034425950242874146203465016548598642114326635917516178993576368813673228304959012637104499600644963168834141861235543565231490072769430492782377530210016954130574477701246389667123174617242475907349229469184376202506522539509100724082407989410909614696094941229572578227554548868822397606755756514341762459834990851429289427689669945817644905322946796349151876907248681835251007383530153254008514055098078294264278520851139300643496386728684012402034478478178886382046214700363121666421963481189722383807030594711982608380685924001960013734573632113867046321464165179752928131869569226961451068464392461302874484602397946695666273252982217036895195072377724602370919612400710951422006830584425145132231780491921858948929234737855378115609749009567052204503009441061445212642308150304864724191497566081075866699901688760248343214433367932106228820292488302508999897045257234049733074273348242080799528777445424190286397099474194693257957636183173484637671231008794967531103781421644544582148923385562241132189933356280404576360054066143654710970951229175969054644075428614332035562985487753517638441985439988473143117018055300522313215461460512417722801197573095835291390211556360642934190971217155480183532343360296746598289466666334211961381124767393773834262805635530366914861843202738462689289096919613050920475828811703710302823421103868687133334790361350044530898768342914124390765426695202059088185063015315872211631484346987982183680729413516866284606444681718201580586362802707648294480471921968758999122684464343314374430627515329441201620201876573323389799184767927160110695628175567342121046425001962082113963899463180056626315203211645096492429753282270116648615019428781047671210655347766608559101285736255589224912072632862133381097015399878784503439146433700728704123964001848371350749469292465639008340100525809595009135819551673956971454849653888013485912012352341909584937774581431520774871750571646833608514087916006445894540645701835939606623950877649628588171709953193782319218424806954904642036081444154647221124473299957497702824409392988774471397967448784628808657392914593415992698077469172352468851116425235668124371552234841355897358844387207505495134920322530950553563355834836041133492303435927464192617621564652045483488090101378076170747837906008300029816173049180732875702877218501370651866292670292343777470553654320984659527967843665669405718155166517933918923656837348682718807506969050307287222264077001960011956413711101045484880895883462416436403984695723092224022055624426518045443367035728053791176677900330078338369441465168814012213863418375147532376927938291388221866295900054036324585659047382339747475359620217918273804376234839985880491753735724315370947748690987369307833457801963981754188495661752260771914927020387505225140336320935900192705071290437310660316906168732848526762728337101629571138316081857398535717151930048060815324706035299698853411768874431963821885057617052087197937405555557712259350771175886203655987736954752189185324237945754953922954283994387610449454617344979576987525718069564397143636879287505936902355897970528084378566702581108548779271198828482898840296574941843208855632488234848724212988151057478550603971929183510782252615718237983872211319459331835969240229504359047498904826215157669516280729816032061173141330276018151416330821327036455025412001794076240568830032435896262029055441694570823503825516037102160249609839971761797430029179098508914305251442784345212926043467552232874841658243624290571498700579135212705432189639340910910253178890504385920503725315854923120552671719054300037704266474356883172643790411000818066644420845241954842045952851631682982773400011822528471923204126970470697211995001788911656581800112724200560366272817305618612329573256406613449214935009780746028643711581776976146774523295111322301570863712086895730962140327262300134977090795403879740011906922669466701500477063980272840285106785658914162518541998517943098996006113153721309775048908274652530981963822025990656083905099594238501404756082465287345760753885850344712152544472411036864589906312410226245001962548901412205114330374598129009474171934231907736771713258026264609028371548222562762629579295104868787228445493749283111074440364197095619181667843034966577484089865353414865736895669893717583332444890055714172430056389617961031798238168681363575598271027118481978012063798956584137925265613088355586817445714018673577635675030167658118456219535429163103611346332428224526238770889560254498504698274144163377294580395834973118925738641342864158313884567394719153562562398000443532367748757975622894268888909639147083505917300049724879884637437654571562228255751036999884061748376977185373579917886785660763954396726947200072007854151528049098764403594102658371738989702964446921862679662401290759500355129186588849585762131074292896254395334698217342173189780278232272548870550062950222015210679498284185264337242124131716887301777035778959615777730260355074921781389041228670927316142815857050554394406957969566899926621269424578931115958539695167730758032743523610611037700406912847079203772857387572509865699951201949280206699405023192388129411239239380430143239985389333297224623378093802795448779716009463506591428374147830041188568795718115084110347545568460173362340666368746514695646369969824664769340085047903072758812805971862766788071290615919407392817836734154142242690160657449979219949843240436153157427706556206033819584377644801303866786073486030651271348585906785480634884134938507740990862693617519582329992002583672790876711572117978046512243873025527575936698176084150311621824307145660083103821139251972462088650041085167771257669475663286436052479899912038406666393630853154932800958493562426050171340403966120940736896820676694864423276118385749446492162563189626742509609099062973842168705598078025893356664897121275484414217324533594376832597126880823027186654916425976443937431600044470124619928902779551172662079255038207620364830053818075421487061389024716766383836184219333444098343625423753109758008770057298363648898016028427031888528808403327048569880196640113260604823276909088784207354218713600594493883437652339754091661429845057538576708007644247427712944741528494394414798491708193464692835253454466641180350237083086522733588311722124049939027906506116259079730198677128147086834017757743752395038931501742130535745778694998317033564883641801402031149247331786000855752514935056200471928964755182066167540694615987564589673885698814641105709129987950362609167369242419739016394926929022653162410818625491479915463562305698748795536160523783214149342050651144922659845391652528555889015469857074890637188315489027701028660949462084041746225397026609886587663092904124413357994327718613648677648359712999703444954069794146867694092233980294390998223379361597896298892111290419239704396404413037682664480672714574876755880310522217394944410973626231921788240337363659458646631241500355146032713587256148291431376428177457819979917849533048782132424593015040688386318974063137345408537795457889777787040111129712904211103723185014906067670808876475375798339094733140948973056322169626276624058186137953597612805751713959465642056803822134771215484374815166978362897291362772505745459860937239729492500543852095159925239921823938654296790696870195414318738115813050926886058928373762434911006197293096605765104425937635219994991392718346780468014757789288060431734848316026343477858936512661386368027943566955961696671929880234902496576645397560167793708243508675435056012374456389033246806987090491698569326335576751957594155014958771567518890250537319406210672951455546885462221598965546577355079938990933551091052798126114793357925048713462540766381971755872906179014492196777870974734688707811665440116123578819119068599084727250931883329207514650041476104703578038549466248646811930267052763080390075998789081270079245545252874944502063663920525310963238196408826355274204689133961585419078774331461644930474153712597876868253204907990583745890686665325963120954659663944786771376456150879302856504594520604114161020433407624656284187417270536526774739490033414444849092787574071300320017921488695594835557418000687067720034325469812122354981114426193977067930238648779263531376441777000067264892017850696881544074109741976777194177413350973674828814545282420905249761034501741097889182188683994543891690741254403700773098335860575613342443750025452725728592818065696991854966650094231432978495088991674484689738496140391983036819225159826696475486240561116645041296178820710005752831054365823917315883780860915258890730581062585416821066429419116711081523931307778843640230331511595310003019055903055785953864179724743143742211341709093169832180475708119952460074113013954578729882931103371183587974370055887772810158641917111163305786667497386990670444160434949695381399100790460427097470197966257364822366476806495548644875377244926201413739866110296776902411373876230644667636614727817847588418435719453106926620776539605997676553491539551936284030445561223045065871704302035784214145251183887622211742770878357294689830690466129673352235339466379690516360811557902945203973885596683449167784793216706041631019786689931549282847256287288426137647574966878244432587824145083767889477527422229665267956371958691683024817228732782465853403298209360906702684876642788413739827358744750381727609162052164069962805679659990969808078136769156806333566185120663966779342521376502375697720003382870541759416768512299698379219062110532567347820738288110787976293407797088897979748674109565337243538381778524284643736257914304750685288251304971104350662189156210135380210301379070938383845753984919308127398677930307866900686547111401566910645911559147111623407864494127238856736179651585501130994656268403650460281972540067790254016557861303939697824619468914324160851734330027762141090499572782722229953809973029332237301737238771057312410191632928637930282636761935568823530223310974905904881331511098822855723910534251051024362546058738828905826906044950606406101212432649459344651781601521365747415250822146782711517935833767205198294810101659072186679669850121370536854043776202349944548207226321042580544137292056564328834886441263956922185704359146339658447893921413345553624687380557608686064488189657279501153678792242930138745993790931131925122238278576638177209809816312402927958562937946714841025952957518174950172895215258673985952945117821122678689584959975547133123632442175736722195206175623350784337571747649837419968229489372657283428779988826210767483981023798527530536770530336024111889023411504666482959557622897376647251878415546050148614179896103645073346339709634724750524463037434059170030525329957576521137285053234230735910208126085882128446846144168903683233813312668742103686300085239633605683781502582149093318621864256250379516230787552463604616588385122577295620823973470829706867364852035755975776221725385734741631198737199560559733589408532420427721417119134250796794895617517120894691413482798922651862238455335101400862810790945192138681820089088376238497383362082495973604792567224201901265179175290523800513953826742230565395288253727377990062997237883102530090895823002980849364473886112892538050876978925066315642588129448186330700579434962113471439506781898984359248819007132383026448959530142734571634101398342691776191911148624669098245493343237575065578026528679111998686154659609330180084276499247262656090183969016804784202529824612661173302811141802422110681961118559602486160494773458009296253939076814449856251984287935436983354563573556841813608433216837423458701801342254758706052720407529370997416575199417523381119463243273082848360897970762239648000766638446083393555252302403236312832002679092074614433313857985472552015053288745402280791062043120226103447913503093193431941256487356069692678679859193308416679924649132882850218060876517896946603738288589622761966489335835061735401839727515527371574596351632553570480440198934028680365305804029402490894895267796750910209802880036424059167028897398248704051762774978032271421440557629413931836472815594559210607243469406580818631622603107359332144295615398308071239942201177983976464029126561491002853202481977517459155797934745780190722007829882613945362600377255072990098683575420939742844148296324396163172986543153788572251197597634330770154905895456186235064337792363505582987040228341289034951525457967082505104711662555039208301400783935259670417908405341104747904021250398584600618978615178643185149396655890120524748599625985108155705805057401256816730612977658152724921394725647996485659399941722312774191810892269593320497033565483151263342354742366517053840302475044820648703547653719950392507608002039071713133150471170532835213143558024803165230652500165639820804349458785064764283343157337987808919961849555158151714935569459950056423086034690436856733578709108349268307186881935539333738046941532297951249062678456134220435653034032211921961631846337974459572455072364592912147244723607215701848702712397811383832119659667568796441364278153258813551486949403340808262636562009739391109808065817024252362329965869960478592786570224244375102771897295268593215264656039591243669136140058441328670406836722312924243138075835991777868179532600215238697808366526586437261665615261370495596823742128349842732661675290886215991662386134703817260350468485244807409398619897327304246028823579562862122850818712353365791797262203938145925329205386765289309724583273009101616380222289652027411184406642324370379094332386201248914342813967709179184406774165342388121407868360551411529721602692447434762215799906854112002787545733732782742204181623889378887013245584757990265900882781783049761885728054907426195791836582900716604402635884818406342892279627384747801140729459975020367459412708365470431405989304618868243237400480833320553376832698741428783077734874953439793323753308626177612388781710913924770839829506795113548095114051814163744917753651800761676693932784376763196282719772227203575071868238756765068304318815649466700762458161323023450120672808272583778676942337233252944305170989959884878539061651017662210930343029655747119874079790317446374654889930379756977376832482611470697747922679774530575383091974128907974938326617468695404413362810253575465731948191004805094433469640490677300319786566021472792343721080489204603651718101137899846284586226114843299401365134581384827988589907231741828374310985984994151610183297988210390280666022050388060294451329861853800024627162548309870062810038920083105946880676267114077713930828644835933915397248035732100262446109360368746024312251442281205898798921647377825976092273116395932188044708419015720319622386877257017408279045859061643062372517502376900991144117094334403792867421900028157694676275650421535136706124524853242914122968574369327832209947631758059484881485589128988762032752127450894401459000105321350897222152201108774354518542983145466010677275522688116972265704126113796802681867899329658049361419127314451215721642464545407513485011405627384435366875643544705970439422537347839102015077383792216446984874348083837311769440138555874740581586176032819382997809133731526459673793551913211195624920719066374111056465539804622003846540494336288756691175432012180007452975274795371582886010463431451632789743236536278791539453437491816363032667430626363250483357059017898731909042028142722075049424787605311347631374268897460432560153425291756721233177763051708172159888365811437902444705078591148317770353790432416716896139554539039173677454170811603101953535318508875097609777840961941366893459530570704863113725835532607391911473603903322102157560064033761364156928989273308894951118172549037583185894442991333315308803586240127494858109429196975403664004658023215450258183806926143649218229346501809243279892169923872129428491592711563549626877048015501647409314577032761297532708591109480928490822706706444209439783025816484370906034673438457023305089828418002209771383691516468419318299236168887332434914304535944188139012537038668423920443842941351810022645426881141778799074918737705575778160050039673518749290224780450113576610305463460815329616862325812144391765357626309062759427982273845938639047100026770149119445860701186046664795164429828127644298119613237213996186406926392794544080172096128738448788191451226045872405058059924680395697268497143160788633492271640401622179598078688690412386957289139161551130243329221103190971904919015223241815795423358922633931809880515194577181195999533495657238883000884149900792178558139840750127917654875367724240822813187807346797903170077813424284217139394216857596166649183081672371614027527280763050340176846378444731981773696983093941291943327994368895031411341521873691683165828197525130632947615046942844184114342814895119548767837000315881177467283115604331648465786977328001407822193061247675733997105020189877961846153801017598660912134284717570552050662081966738452032647025699993290303559812134688226091746536990927413779271095468134494368311963330724193447139718654264008345784526163337121312821350578221500396215132653952319708810750090482879511414508162967727184053415139587233097284936779382602738890331578718215108998446940077089007222350701455119917932483504089004861300310509568010162561711664114484238414872882162098461135806305873510098389958199446431434364027259917172084728426893049747802607308056021056070059947539743019484776004931419080676158154584146563501636572637159291062683977668025076324148468208826509322269250715839871395359794331977810481277980610239241848754919775685607223511446420644816629242172656401875092002681701433890037945610763673009191545340184103922789781790025986578928814407643569318459723898948161332467478135113607137822844643513139142880379731503287089759838525449468592430604306450791074217661565743008561346683868883045276806658038192767374466491371416072291166650498262525544818581290827583166782713440476308346695604805652483945931632375259770600414240114499073537385176750172885433012910676825725730566888105984610799999488256578163630243749621940233766302949676105015270720131339533756388750444634258033219668166718698109890259419805932576395146022801412126940829626616303220781612382564859561429019001063413090957667297284569478811709781600747757811659128306772633548594933004433367245388843011713902487579403985308400206320239150583988099233157781111386138150547118340713890374949229169353530303847493194396766483908915770170121339208883623948748806944706578866996835834961926291787847221437265911549825706963182054310756485550599850588278740363844330917976405262143022027841515728629303325113342409820117932424111171338348827227953846319455491725424246132364823028652546477777804582049863300790684830947607314576522031189635797869316999449887260635837253827149446034625562887268641600432543137373003875823238247301924533991317765421205239488285004439715567322562463727530443218451274141697223840545773364136581803462007021668431258251812178553382960591554636198849313320903497021200693241120922491127627698691895761920551255438882853701267527882694990229854350913714966792887853904452817402986071942525152444426449862433530405549821441503186551703111882302749871550492396430989329712115178822681018904716486953918939448935147057819125319066207424535610178938821375416567392345540371282660527001265206402407002179391707795531145351094412494601174839017536203441530702651627180619702575215758041885613897875079682323941574653034329192887380479645722695404523225672467593055463320401596499775844404664775206631502642594137026179608652896277859526479920489376605647023568428040645041879067518797526326833049683561235317576100002645662033302382123829787607409966339520704108260234524967255158335496580901116320653525805688738270365929769804542916367384599811033187541238490001934665488828952530160847399968267499859134729777040472353474588530892536517912539339701865845419236556309387786385599532922988940268726008152314004417798222100513682934023812008812337597310784710503057270412126226537361816346585680050411117154537473663797902216475101030271215883022199419508868837125198815259525012401119116128334438335818396797519208568053169720945606291974088010037900381959108045975876981363747982119090416595327309533493218514059693883355402282509863651031640917378940001116694600014594476171685162070388516640135126697458224081651070043116980021113277929215798362497484927743026936578260778256580946806900395468387784981571878780037194068135862469301340682909117297194501208816694494591202939888657321127814793223467192763987336387410940059451612650676463513177850116982168924765431580762516925061154307147490458516883731212604486860814072767756396629386104432568312341166260128191714143630899517590225744371663866260674272923606925697272874878279028652318432770233182151572995953041059435849947046110749817379014954541869283040194357821721027701217493485251857342057950866712142727721479770209640329466196041149445303353812617311660592925792752086335265425021785752977947288098794772420390606490386879999573178964177161366166576127015315365353218495140408725800941221383783036454788723122503242385958667118612071056904651282069964761709155865628835030767759425673572548678375611016214656284494527686528632266238719913468654023472898377355594781733103044283734675028273169803317978502622693886518512934100532424034093620801889551551218118716890717956228841398892303005850653490839511289701688831939249679377857482073072675244527876742989839097861341828568752034283839006536234927744989736897343082018492778213454388353381495446812070642016119994622758367722134629311626554432783212089955080073987138044580893338934281210583228804893372213759038649847757137896679050013278926507971589659757488915646603638286010956778664953823796658746986764147176488928877346277304675371229883080175008574053124097111639836599112974966937677193284980479731325478003763041068508575319994664714970425481080758882156794077148006269814176214108419553427886408836899228114859700655500356152685900931036551224094228673189128833254676747094698002747363726313579097690123160051082931354885093044167367934956816286711453181111413068296425862892918092999291541875686002534792923912805302074277993898653684720527571659363401268440180518687498015855080645137881028546567956465226155025322578466565668588860200290091842692793255488841962758869501622290839635451518621895204390345182888658488831150971415152145383877204338395763408256922540817264703852712484027457994391383090196577372895118702324687666336908005230839608420079747185454532748398618527611980752761506471291269628540112822168761757171206652264373856280839246696605505070504132283797557985280104914352712512082306983447086280531648344053997042644613744659221996077267174339206606933259258777511403681392965150811138411327712667171857720141845125125547586802964173452292938652187951212576863290590837143428068857454165146426436686450468610335445753286099953850374906391597303904827169870157245169970621083727755914952697641635260440596223517013825972001342359278357833926086959388652821517734960131859676130946492321238213172275060492452054882580645274714303264254300005584033578907587813482715490658748391180378990108245678560558508902195111543251462488950869147134122045704727331895654531669081993960078220665753352650089937597639681286217375376348263846774471016294306432955858443393225430582860672696690624132135578166181020405267796976818625981611269813691098071547981974401593118651199403185655357795804956541825260617046342436464861678252641003355972832260103128193039281963472221525959221553113075926833557548630917011058763614279476407879332171171673400420960957463603946023030435626113103075443745522299064728856590973810250951056772972397421413721651235208234681894199629674319733048831492409304404219553653452834204537888357012259439532819853305522790201198420983382992623476191763650919288527985260979130135063051939958240416541476479080338232181741193551741730469960820810302724328450905608666950266027882384436682513407807204743459430362237485083374172543442729894972248128898579535205198837219625672712874476339196559779431871041130478110914185486238865298115415930913966408641869401593939125432068413102765213946424499097200229804921357160042847027846740822199522422417299631757797115286442914105713282903617991149889433467638834200121917428229069964245689181885727156928950191190719816048811642896065524144814369912827299205327688610906293141299294778356257234287086088789684923621383598162656654293975991157505382136681212618793871999785349831190200451315935698206466425391198135608465071960789606254165939556799839201169031255275727245570867793830486409718730190699677594497610285294548852783474762146571800161106544577059968352038941399632630183821354666893434106644530976352491212590282414801577421187132325107030092792011697427954296566747301997088416224467330402986409674002526889877724488402682768371903701222485796495826392986088604004217017869874678800200305065153653053667358711530320926466246148472012725034964596674066970637634882054003589844233888750893677646772315283650791398627242145680926089102656881244810906480234407913636519536193869975585888717576785062481281483514167624637306854478098062123006817653203341114922159083843841530939699459516240066094450095283753651158610612740293570796970052937689056566625170633404364333217845732785207508086704878380338592413043820239671099408810409347328092528969501099837213042628674088659335448810235905223246877179291989216664894439091977415569119352458890314481518115960172490305185190608029251702092054459130935021750728143881276305365197858652713253244039727975835890879694155026171013864976289211356311353276110956690246485587705730125004356450722206045763472899663564808573851269243886059359166638021738970922090876513576395280739652272272551418310182503948422237445324178491479705090599633296044427135885915639831161576290283885189650565646443848041499495505400622370624282839628845847490186585937437675249547303005056026912948661901770896032029134475559333342636902248122331274786966166904736756126688437418596075814532205554188079854278061668238709003672536590350757419540093433503195387967843379060643560143557650192622201765451620229638129160155943738475106730212646205732108008929884802019197674451698393353721158134034346001400900056448551380634045354504716748314358569284015217154171782937035902272409796106371274101612940816782336132639985459428802830022685612644126177705570822738885645194565699771483984651829238163950335887650312734592626872339621935406797411399667821384759794821698358615194986461490462858141504549300342921575222812452587760749333116046950963644353142827495909336696081501592497254562678667871500586538196712091058642019978298041523890125680895801929144368704126717973082303677565756183211434271252927002054310265642068068667489269656806348854342734974863445363418195727474644757169312509043770157224306223369831280569134766049204349413326286899942687256723412257025805307963968789279868230650913047082030625887804719439226662199805984783580009156599296991278294571263387414672477341758955032294181512693902192563030000252770880166137579584587320442696501400283358102655489648634611084686133694409445219369882825528077847299645793821647723297182264780139068272695342787562363027073115013699251874961415367609728146948367914947463833270892401615759547423357946734981723000405802025531502452227645444954343445736674620443270102165372302026195118058697730619953647920050546935156735535051640646623150952363171740870140165270334025120024012988860846793485377197207953462257453557899892653210222130831548266831542464618392952290842935682979847547963477742611763032224476921882226653806931319017332253406906350721758349500721841077556708196132801016651189769396962584033311474870216262939737370263431157690315438746971711298814774041068524076804322471696197147624522020272481947158032893515108103924740417063655834367377697327166313577348249597574423335233859315377926620429333941485909499111949306060445789184233399922588076427640805457488066964158706682071935606033873326720136463392707636866250395657920085595816938619755121837585693891630558458057130946080586430705496285636134237781652740438019572493449203734688913154715396369002600885413941670119445744772338428751025054547567979108889333632788104189762292573139321784381988532287280536380856216649182604893253821412459366229677785098280603380366787830246422322238233469796788816034823524720398199872339649347663645253311033062676751940934992187762745218692350052998568308677397173803642228117246163801707870237096978631627963348531425831274555415550199117976003493151059205753221672910643870503699311542523246556391220475593976220082319066087357915708117350403096009126747511339732436950073937098173683526911946752819471701842756366128675879962808787175971851896399603737351289405131077365326089103099358481115947323620283232738263815190464933104041320417898217199796388946188292231462678907071968820174183021938225877799927229115725546349078753284375354777298247560636444029921140011609324116204086055467541082357036478202816043414522620402171383587617238381978134432303132159114497826126102953936209756631717272519030953666821838334123487901017006180283802333672883574952207304891729984337508693592851064446042759348472382135385159340793789893500985900225965804032839589956939436755389366809145757460628938608725694125347667107720860397042247104661097660561132216960822437464173459690023170758296557521209577685555058152075488047991813038194222219194793515519994034431271014102656207750090233269478107808976574017963629581004965072200400715896262415829473314256461473337988492777626740581874637238805191248373848187299116453097432253999030418789149451546050937459372808999307577478834138143023489932426659238753255601534064085944394312416390585028101956320345875023945616531568257173385178169017540079689876111278494606510743043239150398235552023087774817915266489472285217975391518392811684047464007593028739299252830564630695665352698903489767833306149943075974650194346678670643562085494651726288065864714657459522922624767226086583922810116637713722680476208270280810914377357542756646104908010927574550173538737093765696739582988696088659855754381920637671082517123048684161864271785064988747059174882158591887671028922496023277723735610649166139718523857740301779839865762296628766006337622525163586834556014432731535545321805404779293345179404513108358714375438241864495490326288367651958209050498007215131383312005890936792933546590829998634548026111356538482520069892413127877131997284995357203458281895848313302410578488507180463109363474527365231903775406882917140240268327331935611763031802901076965762256998423425341332000094823154488055819095966906973675098157846321277015608286553490735843159827876756612998964493227274527188717944352040821836788494199280683838757974269661554873333719927042583624287887014246802566516359894856046881492849793353155758031087353026563353066083499928577673686822608914425844053861077487155334114450429427041540529228680571735200444427783097633313850969813396778357300691606003348562376006014710119379855093265700926848997026253312708790408376481113592176392006744587982368602818127971763396404271611061157646896949364913153493223992400238691226570178163954843284837146188367243302965067603772631824165159611940855561111053801426183640809138530128236241484184219833750050087108692792803518630530718310967294528939932081509847191904039786643047366244777177479295200224054515848967423544751581269081873789198705843334561440602640937202710308920316791686990782722776491572449817271465964116741159544188868347475907297048221838176465295329118437098922610786791290453199174733301699795398214719988184781810276352346372737308776190395138304042460757609650957694966785253345053334263863965773852339545992336443728726352666990894842142652431276799154317094244341468193803546158333190745074142971381494760494951022616239415647586008952423872457587219651462763706624796769113671845088382623524743907107960499772686797819652385493040188207752043580814009889706933558453865272123857495113062159106034568320057765420217643636399223077385543742417052977945651235084242948642314317581210827916458227987657575937214782855812128828606649911732870699653777657746623491850046802644097843410150116509850146829527194869915132555183392562922475329564763598400700424177709575124670658139144941946259418001215430624394549327301392837718214692892621651619773167865939067643030332497955863593778254501924963393143794779255311363064305713460747768956038406185489875064249267263025515748786796089946441753504297463984749065934531950113962641838162025018320928070142111778442495642342891148742738264311943693354450527244461609446002522082120280352502865159607035698535258357104299437382973225689479144413271700067743511166786829034726338732656018288380461713465287487611754088162280634847845906425127785898593639505235546381223812901657858416408707761642818908708207892019239293474651570955728619993954569533497229063250555508441067991493574786909195155956240697087014699333420926960940366109942317922042531895077217214152128895026249269778028278535344328795482795633244551827360606186258222214915000860625558878169444558629227649935338639186297491422601843513032797400499249135610124646184679144396750699287287574756438898309343670339463525045567504798862295309539217754704461356093943806713285642325711113188544245438985470823626744968845715440222273092994516043447853314440006958436288193365324869316158283777832902418100858179228761173099023610733377066203622659121901233178651657353793189683555589488795143132398322043576140665342079861563116439597100817907246386044266786117766365392017924636378259054527738642553023922172289805420058149862596924866108388491581346845933025389404524937909023462210357237436365473485500461359589447726215323967147433928656785672623516034494662900215245534707943269788380032151888334557963106180657760410603468968889957208046924973303922240668854164211862355614654562436263256916292054310908796455067794798470103362837261669983886622218510651735030609872975545448293819362370548832835413998950804467491058796618872816765162585734549996510804949543096405767707528982691301869321630609287739060641863320503548505870318572723274218060305985351114885909340532521746515815688640217805904735280525219180247985647178806833202628750553938880427863002926350138795885161416644757045038959526680810428051479481523351896216623808097815902285899123835814217688069896764600911210140360263633880210704137502870111592624196514175998928216925880959748855263692532997982928233813191044099000150890052043408267614160728661986957383095233839679371082086772653913494347156220373017008471809449248716850193088086826886905781585289679294831702873890639758279059565623846207945658650174636800799015855409564816508804592378196882497563358048041120873580285408175849377576049070449468086539358865338178784194309802345528175800914662612223415473117270043034280489059593744664534778751896847797584475385228951965911750555165260955999227200770035072533143077499173324268558951646128515023374184811185653243856818383749735437463843738043892401882210862452472783758862127259870796852629004935693040137755251410929396579473635891898978417198607606236673882953237847106252414848358099589619880223822354250193983872226782010173910219799551726236488625729732576304782910138679225835381579462120537421291657389911618244008258236779669677107024078196257158843072198148464541688893188950776558280064414514960737761450887231602911073110156792581886523329726660308832343385496386313519865619468158273259611320360071084752418702240736333371352275189728044431273603073095816465802806167679471655826075353356338384546421040133618713884626513603185683213618626195435436194411265164643517206606545030799829814578604902773710045074038089264238171146452920127743893438711885232279532739847979364279592285777378749908175281726632132877207535651006287519828693984482753699844983876532470156596707858044563145337032004486551465757131287563262652730249518172057735225641871495838448592059434172607035752094092438677277620016216783955535483162890619550021521947953847363364348105484563914193645765510998913505162063869745746030342864570254795169621402741157752237088270857847158109184149801100935710255596810991186523919082521837050171862080807189067509904072443052477545970867088025193294123564889678102193923567908897560750082354090504229463500192130165022008643190819131004920009761829448265155539991946139238961861980690164686541218612741059897856326759982663639778590050308065669502391165316550892829625587310657308576524837593214913016101525412762139943958420141587351367481781014967590938563425698432580132940143542098018124578043731240130629838718843161598340354787313442539766222722821386771697545605204821822603246272795031017562547442996677907393636003558354361401159372902874649055980959667328500766359122255509049124838445382268047212855044732325149292342129735689123106114764307470522727146308418053800516031067582361416215821686524731223617994531830612978053479138603814240721524678263858672895217887693619416427691718383380082193582128342076030381800378318124894536502577377245136413770352743645222614266285253508142891701720467388456256843252498793658122377394757273541879048019159713622294309457048832632348568422114345038006383764767924107176564504499194931124225341466731703512406018988883456544879019385742515124542161692455023137512822124759968004894501270704116499041607880481247848595350005623251625852434116371502934820802205677808398838446624735197166648194293526157163164025109627303097957320466369142455287930250454373106398498753791757079200804157158948866440886233737257929766548270721573838551666402534418630918381865885662920180509857854831192242657942239975675538402799381123612262126932648264078081708459075612252635644047307611945186446866071374230434220357134185387907219760344824995277699348231379862104264347870232506960627383518551001844697775393036690172781713941981273035693877550164723620739931945987082436967544545953848817645420441233441886856460704708977382407981983499952553981332381344948925520272223403025334854938951640024639045222294321388428469300276862481018466354735650738060151298893631890647420894727784669985164885366634506698751650421672519249906147189575447478378633096313376619995593461522789878271947580348357536436619171150942665852413029146595048287975433095468126534759069505633720225710205557671976973613268528426803233165564383586353303666521774084210359129482160508949019235027888711180044790159070674162956884436396842662592812094959024583974392170089741680067057917418961413366667536883586784355961923482745117931811526357955649467556552999844023000316551920520697619266928790725365866177819705125206893010354000447787162819601512688906658304389941622517931758878960327695856346720189142895246084464717512993547660442782187816418970039246948552695424977083016614132903175862295844939516921756438048185081130679167610244374164673911331500268960657976317291949337629942123157784917984655082560498528984094939400752871000191136092964201453379929164459496445201599915299886198266326598778892654300907146562060681324551505062999794969581539066411637062730248938719140836777828626637024282871973393119665879147121698865171137592874066180623600800185514337448954687944805232712867012226296628804612433857673788314485206650236535348772455633272668768107823721616679840253008686502095887310288612720293453204677745095300872693412071996189868118500405108926678053216715452861559367439246243399453244996416106503736857481164700082328301328304949855354587914217674440795478714343447534377827610556603266888927234565782160106082964965172397210720136176944215634636649317586171459713321849254968943470793637193422971443798262590432445366151487219592018007285972025078869975348776323822841548271481762601656664103665642163656671358444309687762704280626220364656994222491688965370041224984811506555335221620078875308582121020718996034921184700672113264300880838953924834111923941441823735650939935579356632230665466777441608314281534134919662611395343721064569112516661626745671408606117818255832963679449533158271940226428883057459318938361442213689351056290417981447891359337844193201861309581284271515826194763221558910839252980556455221942579795509046619164420902750643510244237850464449045315134558624241488278161631959586981041782858424048745506219605861181263079279333998077192577457391660645927749949620054082994373328566872049505569567460379736593765762678269609828615079021478205135692717737746460035738801522874650907310437225871770491785967199666755447121756615570419262195035056533747349819599291256905388509318090975797988539994205526063248144244826619256042809878336680637837527490643737359823705025040165197674912529481581246872585742719173398532229840497613471122067120458296894582391542894384711921159729476764722118697170658366386520074120663919064376720635330125265148457411801435170982284329988911423906036385186899645788258180030675953588524803736559003314704335747409778820007533098283493043764703606467645795426621605545030721333842879228576250330942977865558595876211980583705675926321997448280386534824437429994739894665598287677200381158043954488305564988364425268867794487081939721300145544182655121521676989971050669462757298069365774029378274083894818452566482139501753367344422828961856060044362635273122370548423502399891487377241610822021744390881113603071834566278990124232521502060974538254070099029752968129186812670874766699229515215316280106262452570825285806364904443699324967169260441143345553114021755475319128529853745416007863436429611927496971554679424257269036149291222214889988127842653307526162096659212038120187928513996646905753161149106856903543555621475590858829623464829918370714460467241205023675242338828430326861263776901886704637341312631655841758367054833639972029388217450428670973059622913506436025519413254168260025593973928900874169133470967707183141875856254845282534851082027474049846736011365230046107396180331042297764714089552590622197253698058826437203176407292524446767869844582602948970302541222527788562617614524441541245681008015715939408502516185467315770669201085179072533523147438187397975564218266916624309407377641157140407718830398595915089803093580722380819133138412268500529137411151964971228025514171655253664174689150628400507602851882856841635443595007897582753397208086046112714590982971387097667341616713373809049772832957316642253304863006069029277701354814967621922139955763480948419520674321430229264353257212873229848157080563761081137995879141139419496631436456282857490692373744520642702321547404143027634655442395413624274426510299757313633182775679514997330774798364092795739926433224290249090766580548462532855751197046974826927449564154498565996797206796780785630040862900919472141193115619140662922531777722613623575787836071362579460155712305723033042272841293757411127300885621670150753046298079244597743554230581264285289665587355964921938417511848754772068904150987356937968712867978849226177869037521454249501613784892219336906202504067839040841003734064791662197881736443410053377547178632980367257488893290122951906435393029288352752180898849511489097876851470156813157329720649497989092143906689883677516092167962230037959322973433845231537019896498057225775648834436191317401465661680143595557840871559007784652782404051354759737320210432655663019047080539480844799739027390378020369720431001603987320108455904601051747617267232680555564791699873214895100204397458405200554739342973527744649530733920673060039640317111446037726746107985465167002707526468164805868711878530330164195375116668388535937622942998539065996314027403575631909581017088370701200940016519394317344079535043343926366684918759181150332096947854675100591251443585281505800018985734357780193673435670295858458148273555263237776465967570082560886158096023374821048548773892884573939217730819402349913541585621634215101400050620584583492406794900890909387928300414477938654630916804797093818653022951439006681241553028606325723750692563367291015000065950475349469286080403514862133551598140952185423524838583129147617286478582684836062727564144622265505641053604468731501333857590464304053764900282865741527681676306970262760821591128991930598496566161011616734845976354535636376814725811757679122389710229865780348250722722149568721541334673566890273819668038701232708075751699036785968470519529836495367269725664906240826454417481518561967835764459452985758614734665312014319320011965993118687513099211567250506247071605182225446212934519933040946745245771681623631755806552938867026711718814882462095750364645363670508132935343291055644598061626715455463004481265588296003624401709261277460091011543662561455830930542370380793418603934352196967270778371256856599386674247697209363869203883463348283581465515307844949537822909596831409747158933962375733169692309228699290878634227948641310289231280551015445326309658148410134009419333345776378828686589383782850862399971737222303989310338205056154224181598528998464288527046505595156334483776373004822209631971661695118057583357942921283596040242985427028704239399541916219316424088018497474601965310398887594030948272042850690689572877191338871679211962456877816632346746221518869389483014778400354354200636034202561502761749018440306263828548770144153309629033720874503606051668615918744439409137802461858997665410717605026055316753660804466464434945777837540431457860631947813234142317256227815928739166712683965360800305657121445835628335777407045615427785545378172592481436582398584885631918486891797441563624863886434828966595842294500777297722037977471162826200137533949932607118181811994089432083391466294508453003349866106556447786119980377193593791114986115033584961112447251941246404210064219161181236745616820505564780269552836095580959558493801901005385943115712262680645124005270305800962403565322437802273604426043912412026048123508904214724460720644937249116235146877152949369359854784679187576375330094371517714922476118213621275827675142105406427058723492007369941235082464781222526138229107227385881828413789740083954587368701159533021161484032341392211512091521034352851998332176590568053687217489645759509867274897052843164576777505336344131570483879088953672575967902893965193789125439234472348035364129766254028456633589788091692255099790057734307386875633271229183395109028275855827906196582716396345666125992186328742855119860985041086676999544123669553987879636929508752117753491530192747809481428507218722668009394476317222906797576989723032837823356212377868984527011244649489845629622491312414951821060964366969619101816786019945472970013591385123604938472738411843625704542299191593252498268037445187924612909657673193495025088601573819274504273421890527979666657830008745365338433088091748368140912506492262822303734607868490395804780818525684816161276640932179186566705617993961565268458347664430386609528565943984477632486602684392915689081087672100968440353322426975949015960232876318848330510918534168295422259037748887716085811859639855584436376528246429414736634705878421547843107918767500514582132795920985461552438299483328547431952499566610327137364649054384038352551956525524188153662531687165086239684126818543308225423335179539287416226176403557325388886708259231892481649796916136667991284260211177134723408764509162903715770595443219135361376573620210917456923062718123111093414317351446110332200350969384463178938430633925701927583806869107287168235055188043611521819260491397814929079583875060719929702763171609600186179672864926241918067885857793792449437885529794922131877413725660139835829759046683014342799638116912250723895702687212951604541293929764879228765928910160407695639022592461244257546866573662824588233012525645179200641874806362793221453545982149289641201377958027816514114171197205921186057360989887991919281385536111451925671538354952956038413093824667609348780107746506510605063320490333616705484707373007476613817163530233421545074778391982361139140562674335147290895770597329321862094464963494505694100209762538072674885288338871822029025642194090220971621258756538156034660168602328391916770442880790754606099930473794157920963839939307532417406306944080637413086027163434316004004101080577328648978406747340589844999293001659025377222314300650267825369447235171247668399655824387446286567636894781369640587071907022647067274734810480937310015320855666838199067444291544440379966753899137379560197297786617144995729934103403864570488418445831846403268510116671136653148240243837331674818842781722092421775826149460842908546853193531644147081667134439689574525276516927147589315021118890267351929535789068893610524614546289372024746687135601848361011744625099572530350384072861790456086121930062961222621517629181480951519544123583006585035167615065658526525419582648704087037951287172580966180989077304005789205945275794568984613374873661019070237373230495375227537781062013338344174489452193864318211174410744097338766780672293515835460792866788719678860689266992134286718551337185655619376822791035232181950418850414443917410375460978357203179439003638955314693135061100967008007695913992477287853069689157757563374682312546269352999354984734429476923581639111114673077475622324769403691632349954459290395618691992040238364094519207827145324537254557793605903398541215629070092464489696945753245160788156768106464321731081998444863579901334351818964401897210225230500526486520390408701893563346277125026485482413683601963439928468293647945868053118105622812884820539642173542573306762707126378997859582302742131242892214051573056052642852642096812994054285667959859041725824548148264719567002233670108649830002309585110671362076718239460722559064615461419146718440734577270189356551912950571791043673240123295725409750028436154504201215136550984927687208995872017837948464244918346431935673689840475410422626738612805948261595417825680855152439240620614703775393278976091734938576631122886179629924646804685845328746234959753875412138936795947290363348531551597543034946491429730952333596524387563206493351121908467775368404623494215679031913259091989178568804770067959397096224793690117393393177910473832365950233337408103342456285354970936205345784542404587382411154521627757748068338776647235047780228800689853155507256123402579092802028738556321886303634497631844128882562535655027190841357812228179671673133577046673835838002373000747569702254446803566709915107448542964171781335159513399173770580408520402235306448674237197820956355330599197825953438662291697884648854707708025303861914962318422908148354811101417259715540787354994602340216307134784432723290200837447661135167108172884891433250107860666896841149921912338431530531741183741923309638682902458411905059822973388950797103075177552980537564634801103680152561052376573534055235383419833178473256412424406206037304491035115303981571173490897390827858120334761592355626330630279741096923021440284569984690570716288829110414319325576577172497833680003515876503592988731410094913577205988467082436816686144764058587184492386884227363626474206684267237615748231135792696024030435965351478500407594778591402647857400191486780149101105501415211964915428775755340381785017448448003209149899106550071418440495714352505551068139251693093569365077756677524903964253778286832688382215375607253079419044567501458073584577400376892147504419274500804580736605995049058402885812025940390376296625995272055011627723575931039300682901513612878706401410286057245882979076992541974453073080626932998065628578653703696157976060957200731359178145107590752783466645901090378894949036751266426368313392738258097578544525489601244532845557923027166931523677387035292285531227340118358102079260330282118204437676786527346916599769150986190332183234501261866220359386184108885679852940107592922155566102138214521166149537338617897008267481497294620751205674868490040726962412037580955637339512953102265698049549777787481759450162394420377684923248269861894067285390889312376240774607106336445825841280596986577334322518146071843597302102921665895808725212565422489334699949336064389555541307779589540443218043775493447629355501251715724369409855803724873323136452753508864427292068938519134643456339932441309893900826067178403118573588435632677718116020356553255925548471431382482476199917990166401720298544157656799118647125137093799958928378138219291027788332645854463708547364127944760013700993622023851283259384053460061415586558099624825033762188504882885556546636805480625917374223069112156742284242935104546959398930599130987350059670622817976319081600471123822518112230760992255732400660208122222081808802686198556034729124581302509586310427139459624636998946705356906371699883237968830561664237994493225831293092068260374761293598271036259654214919470597773663424647405648492989565911306943814511670772561735212071906796998687742557117376966060446854499559217827201726817091231667283788790041499498034332706851959549111658776049354962441951965417543746055591232534840143789660880599699716744792139271971622493775899586959980324911203080057112105884893333886763934628251307214736949316587411102690253220654088068585396137520356797031934981517420061886332404111792415327192042822498053118532566268784716316870756348819302933194507336796932294627750949061929463146197820498857964894955057846382392062527685816723364135895616734490322571359823482013910636969555639800680554456990450947475091885736293257152666234195791003188276228636008464966239718516171555105808916011000099007670437743400883236395971964710923696065584095339176314333054966249721701986637212840131925508805514453434624685515488522584268074915695145932003062669351545389599113370658194951804609885032053172291769880459094069471685053020871063086410512423403835847103638472085863503195056730187217922950528624082463740071304556616509527208266913020855696391762468291305281098380642479176672138961759919423337937655174510926386352626697163997856769285049330543471401377398900738525380067666119841064948286468494959061455743610790352029688412425505427033684244205030834608075689839294899848360591447027172514441878324211244838326536096643081685750632209144757181654493115898303809151403848039773405419436110454672307121081102670298645906650453006613706038445563164593691707673675714328978979512073942881106483283516436445746888296629250332728131539722573155468833608447083094671230533235040580265065987844205033645120471216664812725297854206628254312784026738795583768866130830297294181202514793105620434146320362369650654947913770655400868660000389968971613552126600184847003882104111930676068674149392399727945786320292267110232720672965089827828429586129337737473192337782723405651131913047223742353950589762272666356137519978023575596705941720624898384485843847765463013549781484524885087846519810128240872718965538573644452270430172482403382413333089703233175549402037598240920080982339872187700036944439730493944096395461329408390024809530689206931330877838670188403158904860782732266171099023089888299298419030770065965141236808173579778129744134530406501823220580392331570912527790171374522993246398920301448982193926843179398413348893718975985512482849357083864614918777214912104790416646882950605646984692779554221801631519885404277737733991494655934436532221509092996373408554767423688007314963482077336363672414019425833587415106319260301980971994808135427203640605090604081604532521951502183118056708140517264696133357955897722038142225095193277200604524204835490596050287353104215200841780594745520969020418373300707070440309094140005226935130388127945567552347701178433203413620730069794234889356434681878786640307677944274027746670432863236819033291394142648533903212857737839520469472236445711264102321650027671110054490648845092037401193543943200115712739616254839749896439686983457504777970212209132744799383440514294240878286173735189121940392967360977849057314387319535889088023704922642530189432135987422721692145733744853329517986178092739034033707156895435630408462902066757098394790474315378869166868543014631109524634690979564485718660349820468273637735598707594813022151132064608159756468608002761185479253397936018457247922500987832848108382210644145976530741632585047549539875754360828586124185159092573650518024165784608460689530523994020522233874535672634906817649401348587142146804509488495447391552634876304894373280648759787012142605748547044499806461050075050749534510384985874313940254816728362781206895961424048618578933540747932088962359198104156631928960845007385957931568082062958763935750238447150657898789136259590324886381102610676700072498279003224261564288213722366733155767572418834172642717283385888811550427466164324231087093795350126038538698053274419267188721255472661132811703030865148132857743527654478866239654837664143326033614681337221175411539388739567231485385247574219892781598260528964600670324988752417555691814183772823959794032818802036153598200850464702088779909055417290221425960622201576869414540078172924651599288189655045931122237345829378300981384321859071298745951705876034729247996731531245311124492633139630159688567201693952967716027799648479227320599948923590092860335580295431730734881953850455372361645591804049057680436094927428209142289066871953045301743936344526240916961041877259335708523519518000424572197950710944993584609985482804046612402501899446217618291116762597990679772336439668029536979078495553001653084168900125483142038983051416029821003743321258945175286475316496615070854490789514492426018175484031150696663430481796569672896678947363586913671552025293106375891730908772452816108075352024145693331362017700258814881367071278023924472067286007966943252823445280296501159135506587107059788156157734980276553812920462431695459634002832448842374138111048651854961214263474823402026929024166607828504478525353826580634844627274489718088664423352856304231308564206605437368946180803993084671881639509524817138241894094223207216607055664860409425561664736063877188205881839862131739676769435423580600671972890770516366419615449380384068891904081172096339915102025689878886748882084767067843038722164261941198452778205385050409576214908602063311331243638819836261872843011429221968299447222599510813565318719508534125576566794805658513317587015921931807735955220082313631929480092246907847634165536101383831529288396854771572102092291030684686950744603572801080162758887964049909301166443263849736234034684216086689339117117695666729550299156431681037661961000024903942693619147726836994023763922109427529328794092498991144241111800207223427518083629799579649772733810054342825443538879634920165968874327022072640536626184378304057110476957722771908935477491752432382046775069768864025121336436393528191451712690956461184286385728000822958413089845251791606960380229819368849816684495596321299638731991958831989732677611752241239711184836826261795088528115774384111327354520393026072852574705263739464353925802828108536856811273767438714171982578110068966003771775290607079072602637903167456087088692540470015038448265347167549967170482395405008778283832573904222937546701027620316598154972307812702022484025178664823595276448512647448104064223961603835820299855399438620971600933047578647554609719183659663793790843433497953690596487811119981747594374000677568457762198648157064292534211366179007159580131052793821541500959074268125832885375560873480652981530346511721305177423935201534114787758948541566194975647181456868002982868998445768860223232071652356690198826114005308569651607822794668538615407216047616771753106266103488865519106668877516911474791367407083361037038175679302042079516557059992420467677968648066454220312386992514907647209107316264606389511582232158017278008633999966967828896434732590085836661123675191324824122770927445503301482624378989237298218501322412919548198846519019921955316942945938851276406742813846439479898136963744820129239706083792107384636741219337912621459772767918793458376508874645381255979721037618195630310925286268519121269339201530713676709103588476683313097770554423728385098641358787830110682638459242329087792614260784257352816587797541804174000964852958372913076758895347794873809148514630660344449838504314883134354924180750582243490214412425166710355426183178462195063553572547783459273528016342241311515650153629254673310793006933159746349843556195797817427905153493490133893590620426656307995181239622980053740086877232463732580290982556412485987767224640343386678065199290914458832299170313339039101461523438655246780539153019250483770126949922788252183239352557381569128048940777856674930386001579941249652362359162858215830215864237695170465710203410764974692754406231846914977120691368075846657875542927823288005763161337116306311269380769669001535350332069395268417249327387943438647249758261835476223966450404044477528029031409615081864783885010762150252938393479004312997034994255579887528091948728832344875234040922935876029596480293047483668952468906257920310150807522921984025143112733404068877865198824456045907715603030395986207116566995106327729801990536420003644258635794595037502262109639347016287930829269027346720203519629759369840172551894364115005502148639889424715894193772928156552701482540943544725597195096765545769573465432386641103857130718540383325717397696028740427100979895028526364245305623658852208065926100916693045075176273212899496784127090948491446050159515101884531068557527387003714194528658929170056302597103210284759177548233580202322528159183225783929427020087298954698761968751541439708940249410926584386563377107240563333147093546194352362134364739025971657657032429188843653319179280978453223557341202773434436330637708017019000066584954394042042467947504895030649665619495969046304478715167887011681162767332349889141146103272286700085739284071445727578648490600111517994458241721035857512936754530961325366516910725772983390006026831181365747496214667822360779579931711411140362478937808103408766168228155387137041136107010538997205368352224925790539128851258983715813953538562695622465168569979842834278349814543586111593442412661577463137982654552839112539946184806205544479427537832788414463744346901502994603889326293107808438391043072831538024496599036082898912794704139944088999711428184024204854338263105589985639905485550449958130111826466312516526112009342232999285537892992620160779387446845279232542134313543383183026663532895049782215449128210080941156708817162339586186055217635470329087161746788013699168798113947455549894139834376400502160260822712245456342113473320585789719335721137182849299423976116507986481938845057381653521936689067683747057043045003446947216148271733668285364020295916394998015373180560978589892391912649101538795125980964691671097501466620441639195514026078717750325939918949647484555237611271581622827200198819181170870552741805037141058977761097767904411355349852234362358248188898448390551735036942691951171611140391278520568797445883441163490882273445380499509302292612573286192933084982464688372241621867949323469644271992741207045040179031535254979078300219091607051482440270316237754579583291486786338794731903758697485143997841311824772502198086392974812545691645909847543074831668051230309881958701592467719848132161924803120159602134448741005959795726655135688550367468670313537395311799517293019727831276525160930160199808057368929303533904534687204020382436578261420494780550106892363816787187930245524945008356361352676226877187109301079050359742762502689654121054856006230352504072493008552606753235244375874302228968276297108836644899900443283580783033379624450350482453255657507028535169765394976871763097729970911490167442241946239424141575171640431918589917732178031388535899302019499756074517466535457541626034119059174478160916951432493329903208884597013058740323360179810312296264965207450048738874366477833866404631825628838320361293190527085247724097943660610540973837330495399021739202759101866089946364298040792512729684179161034713997773300830795512743180155425787676214321797898631651586530190387331853143742170596956838112532184516023439776750822884189781911992441917090139560137176309848256102745687186327786786574404127983291595517075328934493659274898198901077426072818451526587372183504913097603287463188479038615848973135628223115242535968969122124896395780340006266224344241006238836511632281148142347069206627595961957150224016110244007001707053466126852432987182397013710185752555502507405829324128114150891819222898781516419229941141464106728757711124618870545849539619922864261167227417357339650981473783366327020410982005516777782476044177485547479057032224412320025044707349407574845106306506206341871391220510374566798572796526400802918221558575136444821059734354312153514261163922483671048552604302778364360033391585761956763148290599954100125788972221093429286431173798404821637385494032266684063989570982664284472910209987737558583719166017382767120511833535542724896890905591785340643003330857020518543891683085729236918855002784542976235768788412337904045317968280047460820627430423738053098795827551364494090799784450414032360658655864366270205596618712058132399280098875638506673093251274834248769978743267965754282479284082035595976623395145783027201656147265114525268865256335605126473348253891502542477062508318810896837019551227951149697580256427828177039220843970032724724650986007599408698658675409129862555492510096840960646125006225943354700644710602590823584129259788144355941671747869302285501278114228567908305800898547035812022898466552875404033372464625076239065837908276896405450391182671889275709357608722643789789656986904540078038436614695903005851165542864960497279212252681635368623352978811918565812587380321114459647939107998098008978060223116667190200193235082310298729811335012743494867481628720513979163102983969160751435993940692666590056712813347570718137610672783541804760444882152444112683547048131328234413692824507115637101507566576678649107941006130861539120353822845130241231490244449138356809049698747195888059858685320010855385368577909747097831318163959353810797727098082541370121286415100576534451414937720470022755735232927168100356444457547302948775572332171473519600732725176839828475765129566334363516754951170398963642299820476882579241237264525225009677224286501921997147368074528484805922011944807468647149762232335996687877456015562530017140648180206776664809167078573303699137239557029284286652097614617241609457642997984250828982246897319298391847687867508039339542474738120632792074197881878988319564775119845425662670927147686285539539350753543376498873623427253324343093949450513122317503481365413635182560306647920052516706975426380224631093935903739742345142608621761814609250214919795192046422165924647963576193092854253979838357008628058762890889944042307542822383616364144612387279419983618680392964268136193073697400942781378752035326594183464819985419628256679033569236872236333278179920499341489234456939834711241218836589592001835691565975915149086292529088564021381212400403379253874720601185120856212060361444745971836199591109885745724667382482500198108376038068306820570308259744412976883092288424437968039258276808138413372078661631663863792104271754924232377142541177980247971455077340128872673347209961985338931413376572080790583268861581457700843091893296488447179352704047377384450298916228628994217452925227528907963965649394843695035700342554851101331102335552397291924665301701520075834473857298798195286404979642038138283560594100131390014101201651390062852825731380564023645706011566055202528546300664644063894764342969280567038218531648237245491305591440648673946961155828325577447672666452140033777272804791973517584124223935214109258039905679401497546877500093055589080478559415547911598946050589192223893975401742807630820763011883916979778775635481183195201225059651559623000755003131181671707961006568954930650648517740274170765386051023410271046255866852933391995209803202605792769297139277631435413193300780054623246206046777634649305605130605481425874938913529513611490974586044469964934264468899866397514442476415870690986988688003075110316156195375844741645139449808737205865089201374974309295150573175577605368110217088145223023304331021124434123212447885432702356230475858458739925319445561054984858194555436325554062337363306882522189917353731809970127534304860380926129498093117052546175991060218042456093334799874240553167949957826186529541675007059707414295812773052737804168169203277590812998282483975010784973566569363015455309164159563344250281883636219006159093224067590937765093456789498401070076627022909482014817892692526042488156122306736352391298969380484639504375555626654207500308209692967368492775056627060155115080451841832515691232241779722099934326625963997088784220857431431260538706568481855830251485625033312326314814017930556105949326510645206767093372405763716396695977500655353632882756562427614839013663351935408319511583029962749865531029976653240806081308731989695503913974933210255494272972187566224965648472739708246972594613902572090335374725005917908647283857039011429475956222077969896452924623709650789731918471995040462552376763200831316743194370623531592893715611965614002329826628439816218221117774263075268324807333555774496119706860537982506288310799046761184326587720301946463364193120205264165834421802911526791503836038701214732544811121768318318655843070470395763776752492393365682147872236456779445561242923230808686759876521461512302684342226892225099359792181712678237482650988595558911777455773236948396593530223880058355879871301773467189384700586738092381268979814548226647016887394104673578974568128826673041259415931411731348410674916332827670695898378361213410145103753219129760462761700041949289968067767515040674981261899196188358353438007134328040522582991009487192411434735750720225726690113836910559308132742407967858019464344161943509768577162580392082017029759679785647052412603878640813328581083775497059222263742226735566456393803013574492550696152527644003507829724502915429831400249799215132346085394941701589353282217073915570235027303117030365322673114121128573705666216061261184231701001568873805664026709944843946124071212846964243228962736428189477073899376235685628404820853389771953630659239344603745414864859955693563637812143737838536619886719782546133157153893732608401454019613020845409055691661420944053404100437377845012372969330597213319669772486458483826383234234721821321834838187199075288840101266814625486455036226362546945335370276025385123789947847716743815738317488922709974638918488228086601523676445676965148297764966323348181036070872602846771646790097124883059906406389551924471941326520489905838287328242744993948361313559692649649562492182855385283286391144064642311446863025466841397333799862348435543626873423848555852651401249901756287546975759477115641072913941591251677449755980446421524521029355161428400980180009819375991014787013908928761494408302749011985251335779967710312027869429915679214062171072577115876813452349938713328816346200335277123278150077611510502594747910577731786799387904961045940721564785836343023807850688308236409496725379783994307413934604414306848435521359652429134240774194653018403158986695414603118525326913584768333521239031627839749723319187837937241765658347082118163620802243886520219973379773786139158628071015264543010772001596791728094239016588632462901895796351437700697428129912398201389174800735728911382844103899713833956187848583725099231977232343838556891760343201498123806043523886766242021403041537128118646136428129285827474706527866561847123178129538651184774734713313482382038379533185381631988686031740473296012203370765341133893738254283448767342205244821714045759134499134233880940929528569110541129104326574723579246068945430912808797544123565719872055070838258626983977297254149990470800375839600904133194646215677678041186809002271971583358116004622663697340953669007490908927741336731387379134355912825999307246237145417161844386290966041823943637337886658620891955854989654298034316333597296775679488867064335579291100876345246687849084032053104389421537865946566514660642939659202949455540838044084475446178751743549391701408042027211336793967593410233351017682745874153459712677297034467586734170307828172780491136025053329682261538047136714625153228912911157080945475754803820857838495398901352784190465442931682245167629012821033373019201187842699591795651714319536158524078699124225279593174335232069365418915766286296135279778421446823705293381389041740018901948736739446487055012022765958403078078976147057606156496441277366554576086689876301162902352150252517199187061993921847332072369438301113956389789520901972832955185626361829866010507544317173145364923586353452336133975559014273966417921978711110713548754974889782620378511961008529536977494964795386937132472202733808334286578416361002272933269665641833975463763657225801051731973776999502708288507732193299581720754165720337247584069002730518348433984780712849453802892875210211982665428542792355267536694464869551484584636877866139877628136912891819915367568860530241817693912146522531155053355126375111617590327222878788179784370844669824039908677766588356071559501391719562433699159482167284099971803017734378166328825186042350690722956827220251579409780190133048605852238913758047254291342073483601023018593318327567426244260763647723902945076078231893720490822566750916876761715621441014717585536125970152817228279520404087796677663389936890889439658605239266404815302306268902504209130365201762839536546397175814759837521601732736092043654248018991704688476493048576704790309660793722322968328666885281835525077914123569138038678753950337317137891978973644456151680396205328859026157384743083796343955321488431766479555837543197387632599437856638225085149518124342464806055265679544926950819140794357621985935422654560344411269990503078486057384620196464814467614480306645018165803797677437665086868141940296434066671793126644691613045499259584471316015406302279916840237842672736757158644772896940238929938697292839899524372061183963265118283073655390672828237109183131175565784413275064204719498819586436578653205343417738402930157916497593969078435302162980250716055693404123110090240616731281227917738296433745204448511242585835237397153272344343789472131454713032554747264323477214527780538560725094315286683143678496449418344265320972034955670360290380112111060137344673049520812625115176246917933427638380012563975406169186000229771091196976529703674728161076310538327830352505749861940365513065845396511527195503387790949077571826616109225404383579941630710400867333918432751562415917596968695597303463577472257491551662679919924824883303511356303245751881819763519420991606574591512682517236933756963547017464786395491689524120156655444500948794275512657033733680824569918312051187978357062542224784100082405839788512070203550717695053478926190987064571711653066651446641348648337808039534368274018769072869763878881769112459194057193362227380001148924640057894786393987100226881118246154393180243015766219534374781840763866042015808674828354143012855779306405306192048253236329182436892513714723246993187362709435093741185443792350483591831403274344593891640828901686541662128802031380710355487444090067752562572550405725445168857712140539475519880650037068418925972163188755193195197276028895385570322201038080740780759139437151114109377941331016831170227438049549882069591599977549344733684755557430731033752098956661821630885587671859921934495113518375097869007201704585141749856228189660239255151316594702094243010966289262469519967560682414517069186016295501254155721382440173643710794231216772230729733334348158382044188958757852305421773364204662426797969669367716669415674888585666314211906671166108037169410502220626136814957943379851243466585230637383944950970655013249650827229357674984862995032546984222253179508940396954195053185588893892663229572529271009770089224664738464929091060125608165927061561743128863222028643129329293204060647782264531317318057069543076143000420563701234850407269161570237611100404393095628038661980284094518028719533434112033147644218940813460696076035754818016043486049446790928866428154033261917953821977611623872150325936575847341761924858183397333981797818226273560075774673316216215074623523472363506218766035420618145177918203936271825813530877262672481030601648730110286747882043613817361582313681255055241071975967129296876262932140659913624366055986619772151188494075115388364425622032437813766354222872004213218258055909398424230911739564710798878938423172054922558707810459510902542191263464345158485698860947247651651592086223187285195418033339868408304164513598610997162080345655594637972509344569778996980723294217196852588573037627599354553771031132726331710930793866083703130556061417631889990852813324431060166181031045737992793345049814674513963199878026030026325250960190553443989512092519611773568217372228656432685783511915861770624158231738696002860200180894607918128054849775502788476225850409689470726727466480409434818832780204014633854545770271884937448071550494490003358306022959261275139286030528528586482692483486149827579970651911687099212348917147352439242934732260934770927298125507689010050301809456428967842770040387284607217125112229868744440746767566455548692038697813053212666105174552864510798446182356967797082463599760821359869044206953955385158114952403769616390517779991170939657130146446210916987447208568046005970151808920318078807522878920418373662625657641192534028444014555378496156122049909099985014302846641798121050821454505444129989403742499713284699007369578837788034060853695715530015510552153382469042219104206138708526892925663247615426312313917245065314086320389170469276305585793201332321065879066364383739301754212854188640241244066501276634161961510120211153448962102572982856745868396243956908988773676183544965988594147232195166552891230549652197572112272183262288612821431791034012104083565026700323755039055385878208127203047835424817181761880167338516019809082024614161836222719359442468471502063252770975094024163062738412307934360147740120475965212349013852230283506366989156810696503359414443522186896985865665098217381526671386848997810661392995226084273367228640723728079638310796136941446326450935744809818283340579014864442453824241348176536925902710495551865475519478145263549908116488051866731831267375213731522402728489955769532755379061126564743727094616859103584418083429439272784244391668828511773297678287215335174933244908611197654574848363160365251461869556152885478478026926526965846093578497030437636395321050330595217436113895880166691316662868289446762877124124072582410660409496676638183023927308805463365931042040494450734456510217095496821937456416402334407725099893432590424076343925618809751963433764936377596511304556263736354839342213140328585286765383909429326220884917884460366505859548219415121659199257222501761240888322949806189325002206528923484878737109995104051001173160525666101627524400847477270112376707237290878956532195886685310479409596207722127275784760588164714001272223101832183906119310539603047442266176317266060864536877175782553574077789098909391499454510705255293484333848459245768101436940201018704865623417263708983819308392596204029480155868722947414755440844374913210223368876031082757027162651843152037361194139629960559997026634334981555911944336064537058999033819256250585959730747574188660749434416318853596771852682966728429263131603587212701722479223773978168007068247985416994255116808243502733317893014824325529201883503731708249611637828290134901308039574809007828024854017897347612619487140587223078332502618259326448765894155062386302677497016603313692763154768989231567550166268966656413483012583204042821420210179421900519342163809242909235916184968679336756282791445050249264429937182401944486212750871391671402963754608832042201138778710125523987183997355579891413853197458790327369234475654657222071262238813031322907229931293731789587314032166404081517316092707088046559420024518232531139638228969087494586156420855052648729811867819454932593159633841978513856356937217471476864036098445953328091621261578783728796010735452285240466562436556074827939288176327932525566905602161153843804205511403736160890446817146806450319990673244441366695620613758000465991358083554765949618266251033480308926709877783921106549791090692496211627934887665337786619037654339716153619068457677657798636801487295565128082522636424116205885842036937753822782394627867967171375994935869660492267167290782444418626533675675111928769472435685278370429686032849877683396244286429189041258254513162407669642672031278101110417024761362104091194048748757954375235680490602822539836462956590453800894313232962947749087215077756101747842413322263781336272558627752014883214634224236740542106860982617784982958698755327271189280668836159594194885580571792707555143464724078266087662995873234505496497699169132589739904404691744419945458139884774651640239296856382813221055688976437680079026511693657373466362018023897464826459720742496850484750440200600159012789520863816905074556690733328776640833161147447089390141626420287438930404634602209303461874010121285923249752245828431100896258512010700396717478640098946124227203370306807305839450311693757127054507437854272424306346981079607073031696861384817439472675160861848816339869937792489501845189750116317214401249165143080680331474711810515551755245941851800739802638383159428917951936928911226568996668050680284803580604004514391714747073196085289294958010140093071376324974855052075468148499199908421637888646506245663833561616150138616457327289013905630193117830174427833335595720345529976609495440860692260194990120260614083109299941104555809475709141422672309348608961267801623341020446017012671273520997384170203299629757655793095888739724235873321131970646187907406894533316476398497452304582268998563464515797085739055673416868699241514198961788955838233370195806869236624158588233705332391586763034845161826744071890586477520968620078014398703219574688321319130954493274254441539605959838274885246035458334994556959257497622753825027031097374497307888640512028528806081755522282807251342814060673980295313026835709739992386041034743677155441067594971647264086146603134763788572521869311098980087001187360245026482067759402995033950036984758925138426744406484722494200323670459924194335841832720559375840779480321099565890295082459365994003313243703491697819126895818296649695329936406416926301270070995492647014407430984726497687124939318843916821843150718493179394299140155889960893178920845392040142642323959259176908493430096496119521082372212114760814964413169277716231872416102357984994636897381000293187019767747298400661780223334910772144269574475557168914248421490844851991319447634841950471192174279513875025226998662238972443218396525442181506117280478143604394184350689434881968330840008111657960598129417465390479372016449502273759143717238259824517359308296884352325281010315556453361707048119553048404957842886363846122670235292218030981241539254220300648459101968202495321807131416714519189455606012266331615496805676739507667258141505684205633912033600150898909522349239819751741315993138337203076027258245181558486243394329739562206330175013402040381775113664180827106712883391538705804097510444276012784717275003542751226518291624703567176133481892122849934378715186667785510624782469754487484688326461856836743782499846048746730122882551363853604832148131238359359606946870461519002497937432740916300995462612196095341185875373864166492451078690686724914517931324982656291099784424288901669776583468098648389826354218693519832158168255331761999877011139396684361851073258115774004640134191147853029489101618075372555431085513719883086052109973597355899955351983350179373796875839795890399927817842141178195320937502192641257756173144565036814199139942932122933305874208826991468658496763057705517771712752420114627346671194970332427487096465631250202485514445944451957762615278360121080014280105256655476614382740691101353111121499514314730834910245279275458434524956528054687647781746559634879622314659047373328765845807841309882121361564372816026418580148767210855893177534258254064491469972856797008809329305014418714687304640584198398255010489736391471753398829536579695650376674448917695507039101127006102623638429103940351983513948679369326367621042831462799480410030999402948582017275579372531416090404100298222141331425540429163170984135536507503706291786373249737862543457220992059926493221314886704052168781890425336327467892719269357202550933541282084824494212905977930738421117501471161285203981310164981651867727229713020372481831874458310136758083915848797525480156382628629516919139308628433321410579132180429423112035447046974984017775114431970768995122353351235149467762627931645166896030145629809472465422982889429573774055394619634552676539677713233282120445095251191420172666390671262750317132257875053526192315715341765039309480202129631225876507565049996630225368833248927217063683012249040904314363419145007503829626483522112005973934697640165154811518865613618694341373697025783221230489267836920638863023004982488232130583643563638669928234873944120978182489312152522685297715444064094662814634872063133061676774158107421721026502578328451152398405764631613973871523355789330002928627287212064512940424182876069048564217451361201673298107621441968379440492119968918216592219338795855337585916954261854649769969254777354672283507485565248159023966490436527669081634461766995176662122832608443200022497322631512944770983858896085573505628731244780331137132433924820173153986923164623559820670124992375031283175968165352178621859303031485973425736532252255023151567383076893332403734218330069495273223096834267814833223395634890058282654960001933504339929336294624946304694720773448739442643480979431196377525701312404693969550524436204140529694112041484032134122628581669911709417155512899298566545543934931240502018396628073923946715098288402643013379500512180106408823546293982032371806297803151552818762322732208017719701504920213966707084802491078141181106950696969596850238378981407939535121782208251444142343437158328995904609949379236492952625952893255724634687461231891058536649113843370359112675950113886974538138605481495512179198569524188472923128217399928560964254895120708027870728617681854276560110321582832009025169136611826376120759705121877125831440984611974476274277282199592018818855547477797711314140681630763570202887419639606495817083514690605621176871289960895621908354564742786861267141267286565222109688129942178317585742925195034184453849977421266043461686793876702419177742808138782194415129358724262996417830338930767146331577220409818168505957208147942174141165293786890856301004393510343456192583321191342898096116877025847425612081944923414961582783797244299128574939035532507806411509430886833757412236328030676436491246453508010746462066440026019286661253017673939888379233028964837928287865320040109474805062608965755912985941360233955719907410438925631474274391827200450504159827863773973734179651718922608409521303307191938734639786633765806389461076456003138446928549901537399858841899282805628913836798855826136872694073350457244324676314488517785259484476443581441283646891354465203193789601708954279307421985355636276722125274682567247242362217796071192422791975857568115846345938711922753237845962198138824360510316259978396767164959149564530681714171717347617795835541192403712676004602843943462109764041792616822317688559291230034448615078269896198446727763077676010121838872038288704434447225609645345317692938900078842278991890621337219166092819911041709686708481079448749198073637000768947866686848274968463758957003052806702657125863667311165133625476171431684057898873596827008464854394816746110340805088837674305356189798930748383058663532145925284221712813925743810017941219888008175392976771398979942859097515612755366961959492033472802436518607219876974284472387629770733073216368781553423634900779027846084068056999197741666870299910954430141563360655397895151175153456595057490119980535305717232517195346732196099946869742622864330318314491663652003325540985537405004618701523461921963721869288481045370799377842673376810429090872545936484666582132168257223647644855862753850526026279595112023251685247822017890054793135086995186404851923751423835632078457339694544214648552017593942073345170733572604019844214933668152661412511792426832889907074051576703734807601385095618460662484472493785499435374269722395000352387696988868749556887609929018480595906260347607222484905440619815769779264831406661177326513603080913616407210363799796524343461100520861330407017059361048278102041384767868290815473005550626398950990598724248822966167214194312655361408584919206031004081090868817421517851140120481252955037048719211359194663618105465654875278832282628067617438860904600012802298273758715245560912700236260492993135664320292300533897383414233504191834558102297239566739265412256826083121998090939371019995098710983103024156535420177703231472114487118789702873047636372037429877033664407339462268313835560051819957895012353211052938730861752998117610872108612372726554135241111696203321188327206081754488250053921007512863014253520343390674862660218924600280602094259720842787353088383258948366307957419751741293477798519726233751796216632201598556827112820794061087170941941480495389916688605136485278935844483683124658206134052717551341039461343729855409458237743707398713875259832642398912419595800454219351119075184780878334260632132595446927618253100080683364692316821377200138629864509858190434474658141003830589458871874390436565631409114915901801076826144434117404512744249297005965445532529513723793429591790099281399281534768865090269112095475017174882083842494120347022995472223711659954636630384845069973416964536502739444055759191269199953305714269503706634435261543259827051701994957584810082277723720515521257196475924334869493000740092466362789325712983833140887837708074123982682841720338754304608441812013464737815724387638005366319324237965961115269937537363126845883331345997412224600977788092633793362476620657505017741486579980634716509188638397934381285908990223986883878492958205093191014482757111106561224168904287440535581915911036581061416700285890778006967789172404558687510857656677733869962796860569496131316355335773513190526701224684983824923769693967904260089485558217217149774471990852831783339975679227795202454087743027890795565116520087519030214626705788275526073733114032043605538661267702403667410406031717664511958998231462173255718059911699266397757134363386137807662830032858533490532617539426363083240517257934824752203230686160925989746611021811459561782405570640180609770677051406780685061764686948651532307750455683772565292017570301724709517392785806487357210158352896444933957694755340851177406228177272425486997093230987151466466987602199700275000719555317594349881164918751528515872928077939655610949076459038427683684086548237570360505558950738090265666797218622299204317281958178650489184492220189497192475144181018932073439279880798176618304651695613062009717752500104664950834349049659296461578545853854179868028164992019774132232073672415291251934051608831376385718976667628165346086073296234542673481283413142365980690698620773108855163814440231836093548695979876957113779508863597830143399338093195530900610346350981198977719943978459030702646022837170815518466623351114953399672122221028669231159206395121058588489715885705282684549791502347602460564157509646107271916291881159367009444834540045061915224525794157292460074071726069608893277983084369949935833698477067618187876319981078705604944902036416100675702813106451053696499215683814523746665280550678249766268624028262012279834524296648513828382348315212345589844226006242947550665243150458884029857813817306939091066159796922567176794957503212763857160126884123979164414325408567793716334554117510984172533847423776966855270672570472741490368939965258750377024254205875611084033934062386195257648764099844156152300686602308831544936489797369545020699035964163905851430489299252333942871145334964940304948244547085069759576902267119511386311795318789913077089410484299170908834322365989453950960241370884390357967153072053265000117754705483007304273040905803144872083778736321312895970346992427484334532664036406070710546496023254068821639015121225354305254364971765632076698300329216839326614293834653210439758607584744375305719158878035430470353384016507943445993057803715637630853224017378264797183089158237025345079370804391796294251185534769520864415178822400301580971270407449605844715373154716143470191918243633419104773638654430513332615748410428031372835889550826267553336831758351710934432846591072800573662785035226492230366899366515779538033062680454933205480993197106664623521469338096332240347071376374636620752606602878674397854291895328129189261812059934424932369210138952998009899963201157280869933432585583262318294464027088305675023590933486561999860813209269059807395083398230586947922594687548218988889221299575224773206924335510774591010956947564111087823027402530408474723522875033642975972799180267504155132883631818533772865043886587577976642367707489360896371650371053338068653230982951644058424643892976094579685130528912375642468088509676730420340014606701875917736240947819335286485842803724423324978372822538339127130061878075475585551018490924633487559546450320051364316983193827386085049003458643519145867735991020939632960070748047940383561242191924410102347584257305968238496839924805706246490464460500580943344199252438219859735900972945007064203377680646887029114858741745226326954287238784452310292033473832869949480208525769092777054012689676888235617992028711332193065055014319038874272565639071511337635894153986911843759375158004738498448101487538513759699306781274327146417643551546199895668530883636428058748516105229901516525706819424867566503435853565580924742661855743093485376049141645438591829952844728211056526399998754404752877694488766826867419304467772118258393618494224471899882700543275386812563214980796290988649019071788343059156530552490774855554694723548054769416186974178944486404015796477906736320987668359150280378346434302732703387042916414934808352684919113836237872024691272900695380149184421720824545860234731074515303915549568371645640197337854502845365618180611075064008641832708822378587400356636321847613767211949196408239693259283453758324145212709685216317981002871775601794300533648686360331412764772623884219642178891178357343157198117314245364548347910888723314451140640853330359339046554975989309732103121270692278240461828720010423443153553456207932122186433570937715594830771786164902601710323414632428243123103252596316606565597765872645932043960911005990015371097654949977947624092420336998700779603879104430540130065829070795582598935849463639698314511483778971419753005711089516951638664395961724407841489230017336034537883725760197281208106981170408646448897565540153669600161160067092122938721607058746383670929321226194794042404346671885234000340172412871684012486211139284818455974363800834682230635609693988688407486502956962755188108525627646612671067686456562433530387107450728565936571366917952588318668556024589297146548178243727392546666669335427142006338281064268309562735513712862250382776895779354481544310505354301730042860530712602467074499856828106114739493554411509218868195194173211026193368054420310148762055446913846714923361273958123967778314725516499887555243192854912378377466151989076639033665713240511429521193543391184656731826127493935089054491442732395430064688106006105567284733031852051056757091324395176899602210747010982614340159229360587902645913410724948103868782968690678392217236804144853639384174249063770032288471357190006701272201814077242700114218682989940134274426357547242061477270001272961320308283594328577865171709785544827750239319593405543392231836273639858136086880180925184235329982427665331564197028809737779710794873330925291763213958819251250155150799585555693129912797219247835019311038707911934449029232645349596705524055955893724174010222025360079953645916404064447540649006159029665445705192634864343414317696215040942749180229559955589078678619011651460043798254387439081250518829916482738788463193352814645309557795052227072497533621025036879070410807320449955141267243915882212600477435871256809206299781125097426769888391173007051179494247272014743708690075668660143094712255114423591208879510207016454679524453926005455290375765443996969916107146563538670252187215132097397926336088640179150543930319852803849567043098562277126155548156528013685151467577738264504816927782776002819141513610253234399349645589994765658883576182382846139180123871937360627653757553852849817175727515512322581221575747702617780060534834399114136949101593125953430024770553636140591765100656483926696736256354098677913256685071349363544863624628882074451599537259370295033406438995851371996191598565927534933923544926706467199780836054243113122453326667684408804823328415563023134610924772938106808871545515449162892183268179126774669373702470354819919618915035536839756510664245911849522276481665745621735003827312147321935755531261949604716414505671886376895597851985398568943698609554701552628470340876789406119892345332246243572008138873472408060462562757831579624662249174075679729523175080099856512450916727188441020183634057096264874123859477269485822237705686160212366650119595875884149728010981327116203512740025771817312275226682339472161280583347586983522066282079514347098728837953579646635139480492796222445618659037497283224266821665725041631322193497493072781118374424185075964020150828594477984190999181785342978213451850924227415396548651695598509530726142730643738953890337305048112092182961407912520046170303339321247364065119698922036937330744130845824700542628964302760826253240325893851302152987355351164097675903467623898632507802504021652448688950353857237814116649738455627693288132992374220053175759462817600411584586288700375255710196471088575854844882117132298788532025892788951390692049685835856804542810388564440272548936860356638233215417693124951256578067944784889707303391017472611845872608288443141517636699924476005322057387679423688880687408500824925751524863541409330551063726261443522474259025222989982245606520875617775806609598153873525122358766485315613933119643783918738201655221560808091160142065220765762053780677168296953466009281756735471511384982804310122974504872783061530859360512036463638209254434193828151453870055410002178904448687304103764615692111222384137202583264445095869622930872892967133164537730852203936671731187244281644453471861583664852860685328928430664759719421825577103476144451725591879036107140698864804918376358231405412018193777157034989461848301492829005911507907330415245173596125309609994944181421906457460847300345070651937376685613305573097112590094269628204509972567640678572618879259910025418792236711518799648904295333507531190782272747385374405100987116838397844613856468356269786553289723275628133425878533164449090436328496415795671650722974525866257648096325910212994004191207960103803020765223011540606536150169846784943754813925303681687441238827450823794379682640841683419887333906030026718967816309184310315437107373644360202099628319315379018628065308401285199607627306461490021928379307626895135327458429238084085795062075646739843642969971554401165463597483746021790329121299594340703794053676985910493571569157405665310648403166889672481924566026822629084625008943427519569733858751332427353960102556452338089808190356829596108531078101495220981048317347487142376584197710668207854335469453273639602327632039450278478827083189673584260759809518401328492799555221732510931254598914337858693007480258186953514103450213262256727298549205044302725341867777215903145215333574888058733352796123526577678693556086578295189810138690199947084137189968842586015649193677945382910438106566785733509577070376652934313365922825614629755740858328014469172419878875604537997416189446658960106401524512190851969312908840979005521049510173957033303514410445625694478017667163466552649641932792704600962793569915364488880849532636117097741154715878432989701534383476791971886651275918857650418237040956649795239847844924443743852183549604339983610170250100684596822044094820569329788783095055160291413744560538510256303453100415050947026312590119860211584300497964979796980671033212181731511132010986831324207279214401855180017389802427384844661694508985553774621593617603534682676577307921415441949924301842860798600924231878253814223698205561437564581143910411076204161449356100316652059412679514823764452453245055552343368544626452579998858322918581489009341373777586433605730818819404599352028110182028955930493679285936078455640823431559375689261184757201199380246296424887368013769436561761524453988073146397233357007271687651538021072075597743914652405802717945412573177582410255266921616669645610512946688246437093919357683393682808433995441751113365272286619173712171033752870263386487376260220425473375225312950546919833814342072021571540822756612382390281934034650764503963631181993942112966239279324898473277321563747771221670417981179674875251475696095859150875669280299158185400837184075741866095338847467269663834576206454094202022748430806826500536656192175954741189396622085135170229308247305734772968848500948308681059837780868793271456651378176392308719736707100582657031166973067356114782236284058484403733183345770578756793954951040884953386214823610740580664206896174403058292752715667490176517578887593843780319249405784791566783951490064130264882231496204652900086619049883002797716212527011014267892941984270446871288470070513480064398541833021658112436601197783293720065611869197494051620865434922848203284554855860300547783082457648651470970113677838742891869606458164687086557038401818901692110643249827620785845816925201783424502222682054169656624864906709806066637839040545172936574658021266286994855153696651928739714361476444887804855430929744813067729422395101076194625193138597143810680754029305078440197433527333185724658531274565979357099518113697857060425872061577502015537477070198292694501436265734448739506141402429970566065738409287922175806556376484718354832776181061605950180879795547717360785974745213282419430502517614553105474832905947132177467921138777678582472129900779817208695964127045923914176005288901131109752736625432680665598445446189431529351416985663655696268335136891529798263637359253212033649527042626157743315148770585492997370114432140268073585444506477255496076658098984520338950405033622621232910236463604525838311168831493509318476971038082429014714305148097875027272729654357586667659627244198192809935009857140122386024699122084954441591087079448059048307433340183665923988289740835006271308807761279877728192612564077143573507409766840945175986113762247042153460423561722515810514955283785031393524490045455667241488956464997868405388984396541753778375436096820115533502018870882073579259124670653661077235756564869149929215079135460642460710956269030606330055594515569370282477522515679371685841563722202677087224009145268806270620353020991108623808096435564406897439986539379442607126244058279393327751664346846833560019597766726315589228018270193260577915502963211069699157644342473306995552852348482684888139203740248146595162539739007018196764056179042233371570715542527080206573548230817472233841506769299266840094317896704179734603435690287043467677485129069609406670747412471930645284422439682096533835560417713973075710755025126829565907868770646992101474816551967325479023819569072465980419268605202312084153726404131745377862666639548486738882491511328658498896065582923915585164553352111987667706336448972533599084335090178671430092043767179962396065246138581926103330232773270610576983466801987651621090793652908405111938183909286164638687913879036367849599970895034455963910473983119161199041732489636522014618405850893276614209042645104264524902669891216442024420335519281701912754270899310675400577703744641626916006860327035545793624887360632060171985578993580937571110966230984327361535690727682229828340659355708839210196260894965249338110350981871183340820112929264333192012605077075745757276269291611457522645741360123741361749016826549028407350584690927002073964434703442003116881512553223904118587611397010706472189238629627080872620049360778010477483216413968502936625159406827494348849928229225719647618560507198906136427406557985599063564833194090480810789857997968863934280179856121574646333075560873211209469214261697586218882814943557855962608948033596059061747609273904332964841054518208109697080404012475286668759544018571496944188681451358714837813494831588887489130826443417875794305443170615550134022601795137007333728840842938286433092591101886646143347825919459249499372696303441415424367948884172107245676021592908548436314884888516246821976302467768909824031935292876080962700740816074516871300812218775763574263562767793674671556483776088784463992352122073805924662305038282861486492103226951804638904302735078036403262685268554612440414758145079493508273903507703860342927438188225975290866349840056774852067299700538203495433591084601729618971305643258954970022732997828142920901485813329589851958554867167798148022390718200955271617639752955901453896536547699323750688935684698293318699510823813913664425324209072519736064232662761300977401313222665898102477882504080417880518227875839569431715050315234093538542498873876844375289331332477003634671469542415585830953045584655205344284402651817693499096088753199032259852554082062933153061538179557548725953930517352589008218613544738757765499547006099731782237644630264021011381057796142701490120328277564414014506565771420349237876135618664255124225863893570557398278792516587197971795100641799840376236289840922882565926233532334215384722201430634419801942923814697562102324769461404889621962158293810087825977072980427587970551703201491427588380503906670859631508275600977874558739293605315852919461813022535855672772649033042492878829691453552000029701618110581441932393608911131714259148090257137009903763119127359763215664338307175368429828655874595420796635821068836720940579181079999236309723652784650236492364298141058208681167410842283494205127754697317824729576998507886310449236422051470285133534991226994998609230187433242771625445065032834834118449264812835072866383916151810579187726310184955365641811304626044176697273799196624828568625366680303032835209850780506159492010118025539848187528047171065108069862780851356556429265789973883288838680566548792579455179338276024264949802450559590711895687856464396996794604016243056620566601648290139277934466136430022746910519547154008253955023807123970623253040991666305963876826561572089091598642622622442320484879319080731739899071688309790933994658741775839217395935512445027458904084534712208234282535086941749685365764324444263353425407838791200777849307772274366679162374194628861157334903263435420497596505713318967712828906960459553374937217720474719712911251842435261778609609261213011708189733755504216192844148589208795046150603371547175781239187799989685016949985672587670884798170947462722929478787874972808012804962561932517275529968374636804695359703455042256802959515667352341169320695134009824668738947818903773840709729939305958826032473962258609297719735253494113635682769889616890423759829883420383258523750928015749382182607033225908015095199143592715894147298340118542118572384404381876515229558184472380152426473104272338619008900447392218179839208192080673449522484297543154957764334154463984193819544329599931772060392495759049419680389379282716939199656220898273298154164545187974160454505313572871934863719814163790676432593981805200012666151366925415138302981859743602858159377109011924053058617405245593012954672591407693404512184027098746751061959083070005059023843240654252680215383990937762289153380354083161231278604958045402420602877214310281857424270594159637589403361043846965999961612748712955563657970765075133618088501135236362092638200867384291045315076188282330259058454768459226213902562187145533216440274726349598291430023647630371401659576966616794004323659849213908946691516096832459837286566138820998468318779873966968860005664675539733929753918868172096610560268770104619918473302634667379981778565541814167960442673325337606730143195545948004075639258361338992875115850507370247104979454004606465000302887343214812562386298464782190981310784159762652055455884728165758890579071402096163428114366253092231758505021266864392857713220130550335007648351693916117797480433255188945538019034470716832644147332954101000753388004261199599997241900801800262266915456416716907892737925915672016338549292225791623788050135039288505356836770184347648870829519868731564900060271631774668465908738396704957258339039702226352483958989774013342108053127651840718109289230682442779379936413239025408110640028047664434774935764135644904399558644879747195727253543211788457627274838091921902393136398973574986921756950422273670617670487814382117812071499693213173813123543532437294961548729223662576259871722131390514776040809980551047080037637866449507153516249207248078215558513934984210555279189857008565425483083213514007412944844558555566193816384178070423110605233611210669297786441916004146749060398814222458136398696361466613279953704856008781435539362897998301900809942206263571935179443315767297821366167562312479239881280755210646491299293947018049127319439275077358005222402478330260856325974508450451830089606216438233020098394852693740988799235204881622780428638520113826136099301242865250171145405810335741432986878648304827180162899023521008070818144826354797989780270092506026102070306891490164049655966557210900243314079030833834007265457292221392318464953472530422176040888060602812695184525546471975889880021168742823336458015502306674463481250991267050381184909551130696727662712845511971613119274646131070732022159648579744437962948540775715476599852840701572686386523174321434206219592256234035161166399624141312056591558934130532221297484799988886262450743067574347692948317246924180916331642127711787352910426909769187764864006443997541873145904343413086416457184246459070696167829770551462612745104300924296451313081514777877094724360038433143201548355604046425924918282822414748981671845038613846977552880494118913355545961197236214972549630627550018742779056762922303450177226227968925200059950728408237349027531710422787959387984656483526074541623666161776124624328420359213015191359777045630422326197702928795115963129937497937363251678235451321292994738090729982924140568146410446483595723019867656380923799221318862814856937474568426076470603981541987035478944172615973518593957837533745498941316967058279068652721855515670233260142891751560842851326605186692710402552976567766471652581448004473692106530580139114375913027768131765030604534368569617983766945971639337532464532922971326131523658175845332547155952009900526249487365353289189248117262059333791035217336586408694215499446769933376482111849058542662568898079004359731051850434263541292999977752980158523253234255280698104585877166579985905942786613210297035514187864585699838639502226646642141342487720356134343868287810884773836542635287908661577961527776252638602994707193954350905222576387525877141786608637565700420676699460186202856042877764495417125994833879409219574542018441160732365049645125354052822973737712495537990443169313766580084336232137940003090137422922999699013188639834091964523004418485288739310707766803776495465407088829149016177139635683528899212097187210907044268549457630540397779373316848124843959029591884059440257752492311850048105373894512434454446223115283702037006510943859158933496390415991926600938170398278635387160966267949183844132493046804120839764967119947831508904357010581896176311216671600278954556133317162976974782391831347637956657635026953197725776997153917937975662429559348753846291292443213441834414833329871203516970808973799813770469836604773147267691986266767800561897031181873816920275446822159002246051447116446114230584614930958133003813678435166985036832802082442472328606702930085380752031458374611495824643586331072188749758455709408798191882994369537273764818164436943499814467045243937250002723668535184586638545170913225431460025119408142033947964517300660683421659332156502445815722902988766181345576773192012700158175445932980364798119365349971488293326652531308868700702901052741414358707306777050778705975799299957537000872601426944297647570825121162749503035775554614927539600360595028444713932360489440490218589823643935659890336852824486479232463159092518156322273234736603310525694848182129743136513938515425329687224753333682201085691664763496839208274948177962816549804890662550561478451425625657354016237348910244226554868975150525963584214798047362143745302457122307344528342457144489557985567255795485502453437651162413310618130621778574922026410963871106990341611589281541728247308984491878937225757351095488302356320627709734069606104105365357153044488120716133398923298753632499474720436524747567157547718133421854934370403856586342450502707045415807474381950538134371592569808537144513027624675042589628759254631065268849317412584414383314408899245814586978389475479274400765113449505449537272401570791284320161663504205060857437703399401351138051514809487741392020805367940046540216323172446804382232313143626080190423448555323430586812828756447901863390727526529818468578597809953977839762012918341544252193758319336683233427408368881934237182103369996723308352928400998927351908870379208872069877010166410934967413946757157844187676703895510657646387866778616058903381599407233859958108403063101593876563804440255820354921809177003037434237757880017327557891074204122797117368040916044699066066321392468017723733134789425117108835440481930378185057178786787461529345092622715281693706373676193170914152958062746617675966808431056397923815756645714043501107447919687029154772326503923851695040120726604968205279560948676152799171044857344701425697239981989541921898077738440396957467850076672259062299689901456448301413737317169401423893341053720492187235494530629412499300250914114891934603930787875100160669632845687390106427457124189037287889686993897972606857327150765086990349996738135965340463998291383723888335921583098459526059107239526780051893596350152744969807452439307009734739792330055803292914107093130817642631846627868255877453372406937232230410803164084510816331672528534119179004735728296691932982874999725060496606726486988760007488922308554004506538038405994636805248247033345436638357045483398838169206194836421981595777535100647408387839890109941613877870088660485579601923549329900574804638237498593065442271891818060518636989489455432768826548972032907392632521483573634241128656387584556740457632632408754573806806845736929869755696168582805831956175296052252286039992960891175555623733867503373923886223882754909695574176190393143774607572279617064060707630709199357048547742290377137422962063170155973321081035613356916859904119507693777995025179588298549643065274778055532816825914245757036043488138776771411530318175154343256115374169888375552327189313859807533403000051269757108710756001024169020342929718222247522133103761617708646272083551605913627493982296280607090449294920679277354307108882736714890396458512370965134382823350299379999339993611832616414298089013925091201349130086728177997949549967758297187879181300165223971154042252667666665708470820539504699508516183150785079230269629081117304911565505031174043359212312218481867766231619938905769718991240765029031095345824897889023846674247970005716768089342822652383934846764752031201855282516063588229707020958790219262122251320953582696734514311663843405673762071735912649008086228000160368194558085245692754079672174159919404777074750369462329394969292060712150703587687392197921017915573446599312492685540059982507769869473526853091613144776639343801765414153496003853163380089406486395300568857323076616079076386281622220743715765234736325904005903457527714887445471537067581790754597153137951197635798290957050536842210180916650262135248150334821884967519704668421457349210552045416567585021892052514811345812315358134911635340148083228741239989533054827833332170816947269502385658446937646096727173553463501445882715521600939369770382721774897608097927658573131142438683988163526782334849735188095348683203102618737982981645415142069329858128889000451555435824714589693811044649325261233638117687379279702537064818992877562854934794672458563067347836464270842490286599430684306129535221280352918095037653133051613930812617381316834831697502636456216861768852610199967074704883612580943382956118139873506369896024661666528573832275626780530789618476682512150510977317626597157541423305259065162920626706347733265906838441941153180507697503087649339325717273149704513309427686447893697004017831877283085786449817590122000925210200317994515243459246518787391767270676011266926136581098341714378993589816496017473575911716414088923148461508102411182772697752839274682644651781189674693244068512948816025324634583427827908750782910529219584090053491870437386293730477888068948398030518849520931685016879046226310779136101977972013866403424858129060556682194304310008577802976009600707814969589812936574397792818792022900955020888222160864294997440520242391562052965900100475069579890005520701794180459045492185503364221053705906967137315579936035651471920676044096762573837145799589815507398757606543083170332456395947199396666582445212265071139759442565620893456290234682811257189445774805732849622597473871796005797517029107363661243531893549549094410190533730958999306548964367856482753655171281733295519374062535307170449403304198689230621765243799714144233511093765367417376900243538862203699609649847548844098015363622681749471939462941477078381577184520506483950886516618174765454902299983573271984098009478543130116916866242175804338040124265683432634912288614007935136373420718207849910132437559943030042411366104802251086571208096556396117561877958996687564468525477164157862371988238292620129611992974103930864086566629497897876829529617455529119539876764733267721561421485645467327983422941783582052014716070794864155519250059675149789014379484964647252713259269184961847354767475139292603130179517417238669668671836755233313880632052806400558652019701107349325867558091336573860606063381633112569027062419920002386447081717668563662397970968417458698690344111688236023906506553536914076971117145799195691116825631817135066698538867656390409167310968944922642135307297934838030106589989113657332681669191157352584375834268830246685168579448331537880784557194314854031612188326576663012236995262433581307449460405292761089997649260987921667415031096389992794040097284793386929875188628658854038321014628776452233781863474936972399069392656218766973103750246776297763416597409464307607711842538227362650501424560402301877063271259468329085774248239724957969785620118895845635379780635940555081935144216461489950473998799096947274722807505948338087913890320757768738066399152552745817456175553528268543031852587599774589173120988685462416879176237255789361722461113969872210805678325753846112699419029235567518363604329125944051515728036240802623746229525110676271001184575541192375508811878560748842377197635606286961886598541196440267310933928974728616015483945617117317942900621724213400630232131508559126479106983873753051178387596106836036840883104335415742513625533154967366386350370963515349315918917697604253395933080402861750892381248053048329584917153823923337594772407115247820077461043412119697481409182150405104664997150154022054603733375319219896908109524994273456064982998343281432509579282865471940987552812604435514292302096670289364831776935406510456065365211809648908046748404547193991229023205851581228219727753604583778268180355391602422997002870831117421106738192498476722217108545081118600807186469669441810954139911041565736429193688960374480672706725183915739730360028943902086518118745061921454001747015806477632700206016777724697892724829375306906862664300181671151578165400428590842257182273182371083332755690701706246912901368315364631798669729548575663085013851808816227456569448486122212657374401655596029927221498317512429321902984401077050071876970854362765481187809764229072674111799846338635901099833861663342181715260918284435828533471167819033052103782438418233465851907040825328000169002575799583619699624150563431054082358423535987381254500902441886081909178163725215420602666325812139228093106818286144165258929089666208088797903817088653026951789776347592948933597948324380691561196453403110415806210133979193897028099453633375889447981540380663068181187620714438544403130686611772845280342437497906243933909637752208771859975850426259723378666640971481422188105845382034012588255245986842264013488279541621508241056880035701866492824330187907378905033394388950125156662728580163683415801277337630902577742375295244237210673478562483067284094825294503204689273943969174981968133057945049839804260944906044221304265114746158226860177760763026677892587105933552085938225214229299774987200618038107976139568689458313720928027054334126171096745679283710804002272951436485254049553258039169379823383007509539178333739871931738858874442308301520527019935884176575133901815482716980549701483220802231833021756373677923788826534113813608182575629232128611755851415050579797239109767085568797350665986942158552639958281594026181030449170214242324195219345286154053300680170865940661440883826063821074438670036852370440954911144419353010642086221495976932457305875908153354511696367303777414310180801843532925630713946206075394146112113882847589583661854260815115073895430957526624119924408994179479485450357803835077276204659586171018840422680952132608961423733374711494700007330565620973393677589108435185247624719548047119808647890514329916130970056600256892885549231467577225380439819782889353811555891938757028204266188273833704644074977435085487639546026062376779143882823415333767760176354262815340797913454484833665798770757487645864674394932378418623093131283939440642891528867255299508600217996147393662909036789180412156874535314878804990863105329550899151489653868202139958435385364936934210494603303042733280136996566408025791708268390490986077301364137754306272529746524126333714148445613297529043510339189623500873698552060550830981118792865036409217181339864399456834500010936343773688814503180486061188822132135397308994312214071635197476937110785574544372262237090630546624868848585455701287729168268474502277564937516263495042611417272832345308511246393906128914861339873673382438611619128499663152097520366984753927822469814577867412528698931613617854492555925669274844179097365439007110709492203847007322020178350304538899321163752278536887879496017324528061461324868625082957331312996036953148624289868205868578774989631505262459276245010528577052229820364428483715004188210492638332182209021103286201120399762955461096924023247649249081021489724396176995452735204474105781351869636949990828073047660278346404490894591438289675175748906645726651915270081667165389771880999119567328269991120900599851913193188049734450133328378049969209888887334989447244211248375813410316959136286358484464445825166213033977097261090125920214864319439124130905016142979637711367348662358877378559065649885524042499585644991475158368174531964124713252947362994866589180315062049208305443280460362512433143251404477760651811454868737308492905216776438798934775119231165543964842729606775033212346654655723879673123459124225027637005207320517778405985680564043315785971107034264063822349682530171824093156074088488558098785556716415600178482991499939633541182860021320743845773370033701642259136922828015152096449699635159313177180655265435723488459889336427401506945013936497066364718477258646093404057505246450423120490210633058811986264342481718764560676367414010578920210533131793589681377380014948558021679027644178595143018124519954033006509596323406932367456832403530387166725245679156599748432786287558589686683657970935771565812675681240576383699576532877681266449092074032644277518125486547718609700119377823350361046474237512160540218408327079494614967153874387189169136116374618958471115011684642665680815911842136565572443793675666129123071284379875060517794403614442162222672316758697295278581527813860346704059145761031015304555705568876962826462576753919138899983342603646727101032084780141392112727739465552914525015501246432598274045907049513657722169040237931724722297585718572746646757509270641442265204298172921188388724433052755649062568073643097703365787776090422966370322368249753218971211497987366058460586851230253838639095276218865726019536230923977985942026126231386148046442525626919482596756721834162602269983764097241320860533329093912770465208846579377954088238557710344817422250897179064810309223465020279122987246437155080387995882089862321321742964893138058322797505059845292472072835435234650470681943427061522741648228839665034357131828233322385871679166384312915989261681968029509216940604061151230225561053253589309686898207724656523181399816865851201466861260632326490771116527683003277133368604738500817767926221258735601340103204878104563110744270567692129265051374892218127783081858945263432331352675549746527302468058575248884560182474573253586436010261420911133733741308364359186679483053877137894805648406213032994695420009359715249103060537065676750809362015529319608687665901563135316701828824593825374098040949598061653072261836708592636254718758242581724381176408994677227512947625932224151930821693809863002443944835210218798732877780099807700880661135289071399095257523195372506713176010028509603974242476273934991011725992787626102612341997825813758698724453556444450141645836256502427219112685209429226230987804218348023894134101113199259207194609336628331660960611796161317150727335311861007685027707205281796815265074892552193754609311269536321078916149085597199530402578871694340542257148387866236807712343995016073803748905576800997317670803390034905316418953751814318926101012850703997637277095387543788566129627473545142319820037288962046869581845979296602192066654514283298630934570830201388933663442604146434991356790181003453686184094530655032270620809494576529824309532387961820113732728083759161514612844274379732237318514009627260610962696844171548889538065859067153446472311078289875128232094382211033276880410379877963541014013611080302513918230641053327030587311509979015226161618336416034207622971509093673315544396685043013135796946945622871128460479960717288622904630372005958918268711281817403478727091036586460959454071745820835299794373788189568974371408271949985697463220399358630827942913242722337118116214033529562396752429895157620357962049994895230344309976070908476871757295017404462144547665088819091728189903337334085382657273957881835122049114999599697748495639335276292613633825335066853643739061790468161179289247192325634964685810840420226144943545677694972927087830280199308137011179316280572066360593988224231703650720172094624673923692246106454237390563595633773552334452783634235540261217698826463464817881773240678331975711117179862228600446783669484328170085404275163121010524070686532285304150654184753654587523122574710764293650932890441341513951975818006469334542248356110967481345465835553482428457418151665189309223891655718642551238241040743008478815872029458203825570085934812430782731084985572999844036596593326865452669002714258503414739921026923934906976917210416450638125926300126935546069074181958872409290986011536411721306779390985904234511865297509799471076569592667349195233172035483529195347392019568177051244556813692637792234694433991616830847904213974509414462733610819560062434012195810129049641676738951021995734139616386757946019501270993952747319705869519015261022018942804067142451357380218513451210209917231673688811405360499788315026313241962007899073329814431326492630403590906381760750167344524377512010008933057520110611862929255318633979284357895207572815380229837039119159852163916781454661228883871777809833806029808782154659238835524479820166174933004531850085532085886011871938633014215633763550403180051663711760978458524984464930504171468264218936362231412046338485462204690264876292546671781496796402977671107817295868581782978650510748028477083676417984220614977058338553599805517568823594622571964770152949409671143263635499922409624865492131679407211499174008859475709965247962822863598324617348675717957082986921326713677093126634287851543313005945406999835223054894082659106010143191841309529991146562945039196712611892542948292009915637995579047085649002043553906570175385117182284530173356230328362025348534926345550158653077881042918406934479765923003325428865627577316683014714835856991975506173375653493406890743638271069739515420332962058339773166165329574197579875692232653561028026849036790316209462804152502338297007185049364896142837877850042695027024588753841658756780992561280802934145319850424423508116047509607559314034727458742001234817542689457812953030566966391394136061246093170643413461624168018144948435083995981572483805349698999876173290923816330274369360761135161045965845396776388184013355887452226374285549735395765090645165816130604723136978228631032069050488491303423040272362064750397524865140156357860211629283157234559912404517413833950854814871628879320541934021439730852523981587559619115515663223599186053862856461174391613362703511860436930466480291768598142730629395195385231638211822582781468985281026675914961432659231261043885789832921304163133926997923821257214354718563063885090568166022612522143578354700437126648076864508257789800537949744221315836929261999883727825304666678761679779095939171915885181791009438258224137648340643451881395945419883718020944343885347793509279740611249375920950087960605122461131078364922488772912479042731348385364822804997718041211503482294390295187400931415990487637047722332488147605134047709332928657595711845059771778168628179978055503736326843894128375297865431562814478238323730029857175468482366822901281476532041282572874501476129999174941147544403773099941950711846479395416237595318593724159272328195381756031530242813167510190738639811351930757183494968864696629493472718508216989791903238878567754036991430296106740331629337633335589796854955889311476228916106011250559093710186599734600541635833156238629573018418619440247175536823485752815309241806264331842057546600133418752555274447850151882881450226613761886402366004140062505113106034006106285348819349224734016683128369445511015158701964816982839811278376302294413628042804588980895499601290237233835532950058253090277349811025888629441662921244694765972894630307126046483873496176571956436480128200633405921575732722959752217208502222943462206071470152876061781149785246377627710867916367199186611440811326911293043337441927006068913835779990008436740134129111400331774073487919488629027972061391273285513087920122501781611818275233714974932167783636340784744188849361379852020724510059102876483054903308284863752883227403477570040151620445359126094850978415366326593566415839412126040477937587397359376990977548229809048011531952969012070751524539820636516074450964125241762963337833914652608501483844532136108518365066637832888697751538178937120164710302894590127042058752479934346337125014828220388583939628047056153768963584754391306780224307008857533201750031043351729449265504051633322407624888230488311883095466015604969926843940078459391471178234980252567330156283229467458938929982655064503287079416821769213947915602672362598011104557392967769006866584546238215786068846766695101999742128374055966480564796881068817827180251423482108265414098070803763051921254464960293784635563318446941452924759256613304480892376295973651993143132915241464591268430034076601021716484386595865145398131266236816655330179088666605033647807393605291489833127619834112755219348511776469968774497787407581252757175623855841179505245121588086953861299582266725728290599804297457376291184025989588663314694732348943990729765004173063658465691353909246299963042760102448729633290264416893299065948278699832798892461316710296711062232351862215475172876341990305468528052842276525253873318824999641498390859739211236608976193402252982426877147654008415493069523852653584353457113899098134236670838617795833669133187781496333674034531235644642892225046562439222111439019502315951369255075576033175096493953370879447728652923294789086102560511460669136651367054082348001136294308918220546758720410585259148958672291152206711160997361969507055710115469810803056606907309328690298747314662486673429425924710106825799210142712157966161073365242866994749033109273348426267310644313738408699265778634337787096762352490995367633079092782580348668488390115553873484284163051919159763865908033146798881523583247192061064177181521484030576270095968671331787884319960199405781194792208104214390295133203195851163797382374153272830851965056107476406750447294189049368163447868479173886320071007557368491002896309574157592337103056400918222040480061771756405867489130055389898844709300228923515381346404311982673162240460495079985754990017599326558467136301630588082904551654915128902893179983748202130446613842947106763870019768491499865906965721051802186544076160410943795324908103507558693273391643713946096518711384695343798028761840769370612770779584921097383557490410442073088341736886657173835992226169895301694687915498184244676299276304955335952056054098473615581317921581700805180198278198096654640908987373004649186364720407519947124179438883596699677069303015361102703505046540669680011828892060721843295513513373124751815093965922748284893477571276860713023695725128343082793705991695781545970150342136450583968812803247268438105803382563071514184760278578559895238204527764504882543680913176916846823589993349775531780926239036473201522182047879005881573585222768667691169852062584087714835662173176821834375857793580230318253251662460402779607505124383616211847660587878942703101854635257736934329720884873616518455265378706823414636326989670723337911236889129927807786728376190771118536634811484078676648932917849904441304755661904930816004191716939792355608544082567198875939691854308611162358254070501321576359705667611573444637064201183686229368660082367482672677807374772284885229363862353886139546148045820295315651310784868291700146032238213716702232921207125677878010339003818624614660058611505238099679644390013098575807328995987634148925665102743284357191589901100813800775316714844995197059151876860474285600166030290775191255219682488891125419541965249825763026887340951366549597894892330546105045955283346983893901925117707117744649861653268195805537827390751316449981566054188349820035726119433866345177516318677712233657393115726349237717597061731158360852197608979173044350422986645718953059848569131626205610194640610060882548435064369129139942719029699914772858097818633403786475315648097918490872565493948388736098452053385953208958737980593122051091273960136342250245657310451371914936150455937992506592906637988773586307894311393756482211927393908131096433109912712318742955352738956511869917763433369944249916229980841712193219486038584605360592793833730735982478855274802528632020056650646889314733586820287248169336504628336597564648080176787978547600947382856991595516028110298544814469376000874690753510480215195198055685237178766459865082428948044822307633517293976648798086769245559509437401148923269962115978204975589610791795254248503218370304749277374149258578222234986936757284722597063760479494976731677183533497756275286347078327811912838862493856290242321690109050084639090744549965160827903805452512537745536524933691646650763063809521221530749767758609617599800459535397666896640708005258621561226698913144981294358186910574439351820667841236899735196172285330617216580254050331320586644923382494772107943497441221372042336677661084703159713788312212797698852133858205260031220603061301122612078242392001010102801185444925110980973138029228548634984583057367301699254750066419730392840987869948226996372711699130552783677594762603000347763872253998488166134207906294333094590166831967734927729457751503290752374702473574312339011713607088431568452599717503737158432240299658398890505175176560746934356701679286750639222199962494034444743773138729058944311140852942264505872648031810282996646865062707812349990309225290513915030056882535237971124025800215499256420274513980299656581202559741034037595604474637629399410955710324315206101829908870548956476232998259433011071626305209183664559755781107511546535234291319520112132692236843008600245884394496700723003842617932052052522986763223834985110400421270517131617258370184794785573032419328470110879335569717099146164579232211224459299118745757254013892363512793884106818159111928241515704741476347992864431997548260312152095927720207545409218319358159667692894910700842163193791484278223972864166409534299150401400275176156433142399343808836844464525969051732087819459672512470871830194058730192224501277351311006980672621833564066630978346812181337858857267933617466969438938313766497694995475109377838324750033401469073352372927996424801905747775946310910378374947559819634424587224800564983697130194395811267968906307683293967245884152354676994214308211438798057068278633929132820191157550071679452616202944253088078149999014725190587126775517555790411045868750835236914695066200778339158072006307699368374916432076163180139770727190471315549898917867361537204598022401782502752593936211038997102884056665714420381147961854719180150261225539325209945575598150213447245989322114995189554247979557091557649095438441759425191860503982812809325141030339973980084920076657411995745735552898866540543831290823921988104179246464284771080412032624445863918411413979999493145437633005914594371947333429757377865135873783738549554398453402536339290698283920321934441316741711529048838706781686085249409939461002293854840527453772793863692766253268993128780961156457430948409390032227065539905999164432748844192169086864877040338862444261248817797311691863137586057869429201272876521420198951249521938494455917282779409191407723208942962170125137204465269713608654857179392667583027176392724431928870207139398171993926977333870081179508386186295571487164159029859033664943110352271031317150288386699033111032132700482271930533137233936937242398009269990858551666501184144686837860960157213685251616957710030142307070180897978333927144372693111779119857781737246810651408818873303223774569368202367734635942305085655663571753899035399254736172216506784716686814336754286720905626995295155218784460433624388559448406557712271235276469313649286915423079472952118148823008498696314093965773623476796372812097580931729520645529368150835678960097434333045979199829621248500825214024731370093544161547950071169216485994272931115372832726517242488814245795778456910984134565411740534558642685622165563948231694844905793431696436272756232660116181042797827009436592156099477273256455852593649720377813164687159047144839697640610985061164752897811167084778587647063428685566580616677914608440650954131239001910947104499907190755334526864306875997943074300057956449579241673257225927168303848651953382393953572166882897085289695349851564000442544610128841154671519060419070992368454747840291703902711683650774367532264320097963038170456140163927601889755141232956186079341123129161171113310904567440754198999812234412006805876510358446051699184367995952459517912886508301365697959496625505048148552017087067081834569340267922187241532048092269456527982773937288111851061062990387904313148404559289555290091647551012868573748771589311960741765151732531345160454016008828904803359914915591986772213603576121263905179944158695820370003455888617829760404174289370476792706610680273192219464222831714973670662762664642559013712116792057371031474287728265883032047613954758724682687683322232640314731791415455039088266661752530235686483258355657338234438048504682394154990580222937636376825354544969759954121814210253811074534163418803460915991775367646857755369625037860431215725091576222405250247920897776772065954363079724727414211705783880090573341928003204053227680124793147124664688570451851113021820657856275000430445845981130157584972957981069433630390956359174834158151361542806952672069486276895652850219132173212342080543058730473251343550585223529830334258090200844985907582556319117352770511870695659092357443606296813638009555876134922986795953595281643219387319473053485047236039004875335208865700121969336381461103094569069920141674091723560738834823223202099260853271836269124036541791630233809884362680268440395629042047329624842937549776610231181547369119428778980547094909968935474581502619898011872348101803835296765527206569925786253419030700057308940349775251678791345449438616420051659330458900839473337520864135957604300963470230951459723441007345126345314959085270062677921369344883410569152031368909331853768791819216960903520515731532086523560941674856904971546728287523068752315339401639286826762509152833836157368552133958701319827364536615009923885518233348674685902049270056494518114176361371358059475705610121299974393098830804168373644894340006229545921055754603300278861122705694465681502683357885148716680960917515428628977816912556801970364399485261242621983502030012964959057539094452652076233994176793773726044728654214172322523963661221540272168409592200407579015365233746709824529727776897135795992437855232784779665068105404241950961189627860767295526239616142395826486603013069497283095027174736572203038238479105220616864904574895335194113621336106084428921555604199048387985761164380202621458380743529841436269672707498248944752379486220437867206437925505920734422040966304435940393022974139169801418032546388704920378065388397555700046749444521424435871427086521277059987238285171497194254224132152074166056642828024813472247502026350734704374701156296529826413914665602023862393310375093364077983303808392280917048167785197113909619338512839460916995183080241976471804659975931282341077156799685403023374149170673063011045996361461129554308523042541865324812696271238158097980948682508713064061640432509160135345415636143452076606302577439722559930212497076089572144906862991035811966600628992103987260553964079402670527064057012459914497149667712731040304855562681283020365929610385878892425676890340278261782329961398998098419374709563897319609482127934744306967981782189479077651520599511780374953737935823121121781005934899696851468597868139241285156621404846568526796769132526500685537568147173685500516948461986788825500670934404662831394261896481069999646856288850521682224637815776804961667304015980573226973044007828812875346537774039046936832608610826794505408933483773263366159162664630370123565377692034299384387809612655205329198328511889337089183803184324948232151563532456023552117187756815550109713185051621477330483462447583110622761703768261145241678055341726109055803424709558132844549909832524478071403153829929013738523173076654970173339781065776091925392079814975442280832601130181952038569827968531458714147236910463302814557772782977854885342738946888821822629076251513104699273601352655823549429516043198415229654131976241333189339419972738327249312134320491355605911973932839715134557152525760689211598472573004718275052098250811095405961594563068091613115054179136520864467013002719003433275236912182596431030139395691478707540070172644792880645477478008336775972267322858669301641810579118955307931024527715731231167302114338325812999039547987915523517960120480898248596021580084088346976046628584112872174738557996252275133221564567995580681210233928729202521363397004046672806226322210689884900412858566427083313511580966178919834573320728725405710540647330548438433866143877792037615870884817492675805279833817073267637761602952581175455643127585338293806384105301532705628538419723181075404524436511749984870912009327579528889288546888282800555679196278071438805557951478933406149401989050085491541590596366491751501245112197259198188916611147025305262761042337046363729950935330299248434788926535336642773855102602346304765610088838782128427348614642433034925865075880089725840274076893567208869899183842790658857621206803543010476278796353071016102729319354902464756367001096490501739404049479565918655509903110922988930780464258181649608651752412244908493710153405075328316500309093517893829534475994213822958368108354103894852913169972090451585688846514582541911890675375706765267847807772065554574357131136703706772119080079660787813672695452858990341076107316623783459682562123259424629731706775957785461016130506085014329089165458854756555428546838592898605388151566040975665038202841921191274228282938473921340192414845200540615772491803201748586341692260123694935226752810591474778761479481497863558218474563140872184573127078643970494775538097969946619081246413488514699661676473109247309607167508947069009615983375871744896790160631973081652829590621523173523175768653263502813323697963324646523067689727627721966025897857545695715679841689343223744305714806422253790960039914859821017309350528693470332670610570065990411117074870238385945140111009437380002816379392229503708589533692542498604918927803615383155196872318727022521904698044675223568753399071584765487654516210763612184222315821615880259370018080377182082792579852397552807345311975809036538441470041671955738153137260410773548181203737320176577932090806056315942878399376907734059284977005524153887908723119369759567480265865352873958391304822165549072752768744843922171567838125197066324574781255571560287497019993011965631441088082033906515174594125782089861714073493037571599516176134819753378203939748475829441691855176666585270602858057780649097347692279647262108736228951087863664545122599185683766262008280587644297851361501288385782191203394642713773460963184986041762735495651853915313222735984801895225909594562399315893037690022499000537071837160408939120629248540075594086069023736357691036446591690874524963274065163707437665807064164529838713443644598966866342247313519944281207671494227703146297295540612551854288411303646109069091813577763506151593585155787810765835567436547886312104356074647887581248331110153466259556366410487144576703941014779773112296710998685908147552836066535521547538551165950024404416835680933115098239064546411885468852872213665873843603026180505786009964973584023988117000582392267982129690084800193485251255708472785450627845899593488288846831223487661297088706864429491138629070307062858005813875503732823225025583979713862424376898353105153674267476810980507959805495622829447681768107825475079459242374162810039098670253896433269230581235319805712035397081497022836647752665347841465489958868602385490693216265952569834595344391220908698499421099093651262116960645006468171049741770164221316294380745897445620452227272837018697980126332780932441324931654845224910137856517557907060267762613532973254417455145113067873791387349151693486901057030000040884037153719485422474385279908033603014735339914637572485186961588173807050950043325365119954759668474053754080385761336929983000191587688869487872604560205501779913520451534807041078799824482889323710696552284217180689293937123248120599731602626327217256842051965247942893364971903821672452850019451753907615501973633457799916607807656701018882125374063832037397995330643964989261639091173930832293795202277902486106335882401826492467221506448147824753552016504095202969423969367548216207230741462828166044754930084235525719145288715073367399132737390351823542612606989919891081021910243303812125419803206435330995443646604233390448490439493403728938755644461745285658156801657568694178464571332218639960396339724112723111802803747882092928592515134045665535320765279819538494832217943197790049755198502458920464082997218781225267174957022614284796210473582176123424911790243976140639605576756148617256572394629468062972216613474488509537692390519062603421213863195526820375116322593649140089461316890667145214819899654612605620348173841398904763296472781331946000445660914382259493576957093069562931103208499259387049867124031132410321247235411764928738085774339087578220875744232799621478823852075033176114649417388580642916936508760242889184240531653886300171420003645082010025613956319818267784350949304451777149803584598326563798383412144916939988834918048440134802445278687632698941710800473776002094142623580951942804132664105391683763850613502263457624660520742504281043092992746901340411669064226510774550473944096368961090353352884298340965526238080593349955246903000537526105785153602200850941513742646426008312487140823542839735597662248898633941584250347142832510199989788817383269071912243512805613839102769344518350540288233697832245565311356428851228564762928388026065483733469096832296162951675247288094015902316480923744296265133843238912219262008823031926383231998542842917121039782089379975241623158061353813106372656906124447921519032574216787810571042624896726481238470357898025168351720472603134186837373494393234032899502842028021061380549434376109880536229183051991466905399600041658901548977080501461956468485354074325880059615036370963039741580116939700306980227203075319134375603910483693541734379386954926958306897341387876244744342526250116670001626757524750879191681380710819806738663899573952903384821041846019174863947470012186562448628612340435841791450129657515941351574799615095350396774126945756719010396219415944932963593466628362823021525865824140866952564426526866179963658822331349157759343400771949354863932334252431975553638588364937263766872162009473438848905672682149304177966969162895947487782031854714049531575099971555801826596739684806035787894548205351966308726883942881141066237839392582129840085826984715464724669713537945185424953076317907730037042978995783587368568361740536829125707222010887762514186087268598287070908418773125841953121916704131768531144395012445247400103832069521778123249754089093101793101319896421206783498063227943101044888219123404438195524632844278382851087015311240774835014148326515468631562302136835508307316719557296724896292844206898793218427592586102735628658810360753086849283192879725247898171884877151587421874012031621509262591767933401044352783005129925034270549991388197371574807754911466693627448044122090851348594478428352373350932137518215253093675581956509195510195612450748168775899213451240154213026290129509367736669391612595643856190170640696029353948004723890282214714851426152267843869213896119711291129124990668769565519618177165824872761963253051134144228311369470562269268869734543212232711904597053299188585042907142730849480341017274662973121949811381231267136292673939651377156997686785803578286809533704345280681044111602951748935477422306317939812438155494047313889951379968532789352581339181135851587000206590843505369142439397827342866128695765838662022133043688116565825272554893252754314770571650843560201403218852534950147407458305063950745132157484131339682857322550022677499409170436041764131906909603815288005766125916617602230983243020211468270756382958780093560944844503561383166256570518577307220208359324378035334075667782689820516361818796455502545239055634203027215569672246798313898326367260399603421896930847910303692193422258948464570636927201649668340865339176285184979268786404879825773036577956925049228843282905719374492426976600423173301898430359393375951429055117466030544940757388903485318992506016342650990407758491574907090954619470633412600352649170381150669688942334395045254539554223039124538591855375053067592636398007681486217835036068147173526476844200265074120916284267409076897795698020143879879245516632478201725122777524370492183431557493419555732605834832145451516832652431222757351782035492872371866430909666703993102929193508118038430726583742338069474782709945101841636917196518532836071723289801920389347217092288987495725798552297366535577105056019200711125828536050627527973268298279290135407024225843872305028000128296832226719171939518468443672245815723446154760439438408410393712488322592478951719295039996080760700722729728949120447531645453151721608304867002647756446745960584672812324299387591783736461803845288819009500075450311085672549287449615882586448139086651913533785049402400497715057680127883882608107070342831931172553747150996184276649864011355232989992255068084618422115477706676138451333127903343415166770688791674000257421192009338769966993076426654543926827768237195374921105279416343764537142199132135508600517965319567862374101735372755205932523097445251283400669654416092582283585339535412330458464251154475687184487584235525189741057530563725051865217088210744369959196298387660486404697722434596157869267608972710437537105836826247273581296891541604221348972954615499046438383032640215205403532937269326670639137588878036125283879499859797813681741519619793111481290865740239814524837598672671407386288983724411526787018240207637046563183493389696478489127083764835697773735710427168042450146088552268089090664544494321412202908251352276005056549244945944096358516543387562412586236752474528342504043769787418645112406164017446869478813085052861835351148345688788944059866395071582310000383819947144464133885833006562217869622111283750213603769999743244533691332195610210649179984346284156410242216760165239624953566148512421586029405779350977574467759744694914557539916939740909432148081310165115584302792353855916910453632253572049154863941937920860229669838752158471883076833110488243669500677159145956894512880108646420411584084308986934335954360136284236632256194746719053055906548890243816869110918372950765982750334944416530675461335485643869944098310470151279314888849447714010896039938549837664975776631820946837925071978510619325374690597563361962043281358655082153152101649880504725929026924469446079439720458052974402000022206718876426374943266977045598054563567347266537824247834103735432673743369456177486585210017160958963726797761686910880461459370716637423105417208545843744796279305263091883991383618373810838363817717704236293372377479214663936226816683547057631619964335742045060341009146775409555532966709219343819131751309266672808734151507726049849772857096388757682443766127327329360773529365224334279274549187584963727324430960851170513912370818063082577045787802944435527011600227886010401531698397246731150021998146896723806798516405952634950110779622725540065937815625241065810369456954077819070680587213130644937229313715740536047906033660127349534810343476995982341299306888331366190909804263553149928546569392357040975695535342504603294063966284284309805718586287067721523045753856892368542694084741069113080292203082857028628008385738533257962098155481399282399159813614976118389584652171560934296200375935033962804479287570240255604928768996932351700577311189438249297530743748575082719620348602177577078347589706946045266704307769681122263912473717129032896649902429409666142395561122590093168584091970311413668242976516463245573088857353210600113451932887249086965982475498324354850508382426201999168522738850736363517115056313374024647184975521940237402065375145043688670119240019606693862681757283495930866302309905187851192370829250478273024439614105686828856622625466990476294249948080489964303929066853166709240173042155222322042739206370367557887625989318327523251128656692105205226692714418926083302497139308731169591953912689547768103490187967526223739818482585928415157316807763699968326682187733753424683753551490388310486658102081372102513149520519339278869618159935731060087200846768597709439695592116388983016093650884204488309457522475249753768154689817633216884239293725888394515060957856400910787575961224156259168892166343439242758616635813088098805690971130863858132176549176058418386347251923493382231087095250775894822725447335498702978500354413373236335658346893476369910069759167608333072797781396262964864742464487341819337693063762539079455811526193659550800175357246490987261563031545100234940835362699370254810715577224091972551704505183268287063899707118984224473107978652027736399820510166244224132040256016042860636598951912298682474050286208558985925223915707665998839948333697493147260485224476904058409489055629969859252304863469351185962301195448178071992752076280964480505090919867483700908587352728594471771213787300068321710698920357893146942290071969783110464413061610441053614943152602236004156302835396045495790175354040093436735061567199570258870210583806956866281983622980950287484817288651377967322393735980129252747151605875412177571660569457048397590557189027456493226983896696260335542891270728504339892697565593242469572709316312230051027974479265933636071993370783396975122741592653378889384842226104468888098486609110969378006914619415459019028324159211406205075186598703293516539295408045393298529950098734000327155111612182840830353914331630852807685015774560124576996816975507343815284461168944397914053394931770794826102742307440601298128988500847266302088323728742897392543132585089984163334722436064898422935723508647550003262301501765993491205634743978180001421751615519189589989899832401346266946150352003228434205490511057718628165609028086055860158328903311313380259927304949522419676374777237249285274568423872648449700899979613457350492016096464233354382939516274507028766760492968578037177860721494628361221479361079308636873102193878358657154017250291554558378986643658607902023081336631916196164036638000137284576822247359721806176313607678987660825230306879170369810566786813912092820270537116193010492098154375220764069480782370485656550232262135847069746795122089415436272210897357267070681244495796707985700582055433940715997645411567378997366402877820649902635325992169909212094208950975501350114239066105506255957497911272529598922160715494225042886118864838471889677769959052550679339147816121182794889426438869415916713356048756477640142121035398823930511017437154410746615751234928646377937927600690474525657806008578583422052134278064814984724089602929585994324194072319555183194104303743975075939406091448440216463531327509548097051163665826910308807840681811519506142829020640533038684452884180635930584951979543360573800890462228508970748280142751698782127256657742794969327517247526762211734237741407491967961693533961142542203889912422844108745673761479764710916804795999017042853073005142691654954242460837395150818967439937035587629461370402652755805599341509367393328761152268873673739136031166025358887323260986748602752060397148284643043445064547409168993972427572689711436549295385000030128193641864236874124411210765183812923401155596765520386800370358552745763737898435700687183315159202006364562757037544412275261804765797254872909348158516542653530872899067251538730959337293069225550558264478966153869518505317612729869567231911032219891611522127972995018167659140699866921728916512015139733747124813828747511193629806219586501932248602571488146432549768151803881668711994061642361546757381000054669943502215642764595251058917483716205023046411016110369388999266158538854879973457074803848698901812001471867816154176954789528661999568393511765833523873137627513676292278390081571990849235440926547682374039582414096188170463423204169059778825428033429326800577927912391080539964088410898866338928462461295758644701073567627627217819461535230438352970425107465863260683714222959976874547247955224101820712232273010503555518941950453037289520338846717226819514258946290107333011695044310976317037781527886095310364719218112690730652100759107869432924994126008302444498329814499400357559297820258681716555376844489436347905112107285607442463448209153796294688118339353436392702722152591099757019507944196958959827690738895337333912817902038419330843266378871465090848663004411298052129155884130004502155731053308648648882184019765783198652208375760491713984415877447943504552633444571020218570927429519085635041849312571737973225571633207458852769233175786789764505520752568961673828171716303455582657692575934071218782730713208856124672811662305509976530492410207734522210723327936328876025864149542270000790078394815182266342736278126569457048517309682558535113467280738520867139220020575461541740443256277735137410357594858428588326335223712704376779800353627504858919343243518911119734420460384508367703880610143943945169015094470613118921882165781750123435459099353014160880415993912002585792614253442682432739264969112175248996780043134703467204096695259451879567087685440704339486215587541791032594970402029657612626488170057888746938701521623367702738979617497551708928173681366241511275040512448251683179394644613831972670829249587403897020927275556712965484287793493039893455264819715319006603042826506901012124100647441405949546043022928416987633314770566051081707539670181958244229405458021500442722823361228084468565380788130997681128145414403072526384600192337173548386107679458044504319012661585689716479145904967807892144591011052183373688227243613265263149939584549111525719796618510718826155843183915548323944191155502876245095568562463116079838161488637345127588952704893594083072020106355752973615182563260052570738028525521194763021986998242138693573143341406636350315130993596108074624540951965338045788761817662062877005162854208134022514963867403312339770925086685115421891098333746426341376654330378976301298125109963837061221835892499627483807498290871142090363895778310235199127332341059480181055837983886581190112788029450881696459322765134640934224225178477794798976379539372942535660831980213003706983718658122183330498386126102039995651692369748064157778700744963955467476460334097934960225163833781450342645489197793291091038857385280000262398915677015603911775463868307221679952111944527294697401807073887779603620501347722074152478086876192525423235905884922684854897800562643849262451950152980463533882664412020647045642683978920303251474645703483013267154859705789071849462124729866966065478342495317794898854813813748536028714657980648386254941401955831463923983467871960702633437839511270751561514248921342099048183469899887843377331090232296102548530250252018499466818337803112785857941812852362728913427525580816472503140782739651499361366275434430600970473756632456239868714527554045310911574889057201917867087181808536782127903227620044473843966913414277965068487553114807722540180218022523629627842175332341630121690797318203393963827614707449308701646773839565905921599198545992670052595745892740834031310191323487013820763313661243993958826436529459850835981987341815137436908958001073629253879077478366874741920603154199749069994226514891018020953655182177782623934648509581658771057403202895740829081548770017603760457319821577225793684464632593396606518676462759482035893188717625346981582355013416015382124487064054892928321977062769847062267619804044349671647016783261953324807312784862117042986695444547612324313009351233007761721078338629234212212446153939518854221177472677761842980115236649232945619836751392080617778590010951824625969980548063743947077001182598146054482082061644759008578033804218717658511932772241830676936376019686190952967205800930296650386512905447478547260879270380333658711902182116296392145214203201540413276483631881947780467475211982748428807495820628290405893865511408369224351901554993019672707360717168376117558533409712648049925860102375613076379799322905832842369304463135578211013531106398452446905340495841267302619116388119467109926684861349611205570779503319315905117206444531660694812135192440648361179851929783367767260084827992583063156668329624643177935352026677608706744476425803317599068736446557198324009009074941489883858615153986715401273586085215442631748930762902134585160057846745022805116518928049451770157083955275054036980743125991175040206078173601209792511180964250573848595657871613557471685795939314534234428514504735635595291201504166975061435552730585968314183145928682994477442512365310118850563856623732244108893363511580782483771620025992965821113679764999810429037738963776697268654215130570922683699938814104171132434924571085446938525100533957266543757560821074457408919557478770839002735269037591361685664486700865027806735324350362087772720064343779631120488989894985158005536065179716264122695109947152054489264243463418067520434721263488098712124187307321264988720261883617483434150932502612214184947925703570316473065631373413910892545596124693210670442706544018881599294618280903427220534890347869009223037439511212640088106911264039729714005386598926587888183409814672745006516797888817860591233858687938649838793043498133295575922678692565911374045566027118077205331178288652002316043908425717614298367205648005038301165532427706870324922787122099022746408222605883121140728334964345433732218419385234260582977147309337889114688174390621489924310492712259108089079516189380361393144627078775344659439601432639184836434055367555372407796467298297281088460624286937792431117593330153775551993425967743446176363070172184739600996246459289234963113915187897946523810372945068459725792500531301117302283532932568509101986421246467915361902323410335725295158329574716063634758280060145861563801578552895678800940789482800155302248179629411694949488029159368557608741923537387839274947331593283887106242536198289602882143180766386950873387063258134464800571303794601527729968604468438497784348201893315300856192211320514544759638211571512626130517277134268333543479291109695438592531402293267873290669596488531422377748395074089786946010494490243984216597673930626482519071446535348185030745498531885429149667977583884003902354494310325819990390352256837207730595507421775856927066253585804225551050634060942080173637904968168738158192763879175417006748430880096423070546169901435745939755867447338893832670139053468914588682362373265499870268863138414468063596914841938065230662885388160624383784941994054668073858867545939682889226386740309533456296705948183734361107421674147091850452333715233639357139656478068801713754766998060007028058637699735554253919805218852873672092681392937271118580843291566262372532700183324027616367214462161335937625265014706830030719720456711436849506325101380988329765208328353180308735989698138607369906753462569682866607168993946777240923340344351068038331234608355350197421407120657854174585340549973006929609849741115404393857728934996850879286899479185174966879178361471071126541778130829083230013293811048445297227842141621092732067187872084862045165896594913042848989922833912309547585677775029226285160109291554780349573725326047498056487186494702837189396890788666961903723055500501302447595922738720394013048796468244526538134950021020152212598903372352206322153195652977564063426984037907142607267118971353144399713338542530466961701174921890780865610848469337697991503052504961400349691617684872649460098418604238907775780562957584585819597925643465632287088910263531360537531542402847984307644888708987319978556937099061929011210189351910880152832930640754857769853630839541359129175816830221605146681013886398299179045686229096647130046170053043620551357946616956594136209219205420688029648453284868667589743721423328395146881716480989883333552600706294200050535087957422194750267919031293903595237270830742027779024941845116774716264629204192116534963282903304214385123873613406314427391056467622405924026900111478068299678664698746901936467734788695126648182349696358820338916783002765614052343687548215638506282843612120205089460471695816532077880791664904964586399476018508617174941057476570054137389650130718411659855641244070489619789727569418003796683136868990482823084023880596378285479389297752653943981303486089112371448307412346009265111329631397082886940185726354903429568586063052657555722643930410425806355351580104594132243830730012604952800014498593723944604997519280807065385145884381972818145585544120693466991011965360755052778336675022425718528096435306585266091240865227868020046339757693253746193113580767971555439574512348539246780569512134920130545091006804906440054089925533935145587355260847689600079068754692097452262889482417334021569568670427822081457913692263487020222304508376682134754735004466550151221139244878859143478247284991132805881122072908947185268947749662675746582807982119352711094945565894855301838174756393151771801625360140753345886582417153809902770711314011028499682079817389179661991929849798707774884564645276436198031460470150147005105470140688894297331184425509860667409482047456234849055702511945468590989610082913388886810290801710359443941675680744078496665620639909768233279886270274423799275207137662482697034220377910738752015746351070458409818077602876855258265358104814106235461553902838247807112042537879731718921141663334351365149076319198666157628929899991760530521128703402548362113898660744999958435298398589024747707530573772768147098183645630215781538762694927830436733844305520605768461206381484276288956674520723611784955817114802236977937512813854844322921265209575841451996386624361119670438026364507677581523229671877544031288064480286062004689901322069025938523210860925662949800295450101568606272294733855671328490460054946201335046804378690583783454426727247309203395190282520379475275172919927047713843281160466155814553621633742807212100061713334149318173575866280558633475943191886962435848694523328590407166334643054627679216352814516849241643343298365096051589306711083181076986813010415002797165349571534266607542626233660604168514163453343017407926896133360522085767018320309039249450493170374783765879590591949138589704682183436649743017003045910241584858776980250971573358308762433155729787232398933090635632058402187992416535531915723309444858399576308046897291323040926539884190434050791527696806972098191486852496631359590568849544615940030059246979600468254327488434809886039256815214826362059870699217920341303528406336625489852946039878252201320982749778812202009570510190919214058552728041764885068415323709220936204242048839295953622701722459444789186692576743208507143032588775975248846919428051869716220136584844955201806171336330042398751244151722986001914843302355130420741070813889573916532284712507485076810501383517801972195151095462696105097060957243459883293319014675723653769200971630176942160899891367559512720833824720885991086172551981648842998775447540525080815156577677045150164729183777395644462539084161497067377439085083417775681843945994819410288148333347499223044062471380765271383574965000402756425603415336466257763770459672045001625817894737867218141585063061837189637853996054029324476521349553220787101713243648536797954675998855749913810550401943071830858791463410668036397897936974285047628235838335990608472713708533458586276974856066354962428284187145892125200652074366650546747477411981366065451907093122857250664848410373593483801151731886877084117821377819343221233369280697668415482987438749967406554517805360288372805229169219829499456808140833260370397538328624141890121793887113591191919553166972016884808924158214696942859570352629723508966964665868750466677672883988071928019172495011816893010763034877047892673161109157496395200141454039324271461884590622310486779971094775228486737845182783522984733678820046579995546300906199358269046675291749260933957483104877210209286735814975749676127186619198913507204040096424969121917636376864937458497391074523394698686573158853959945028472498844942546344865223527249900078257878687897838575271213966783810190789142116511819454366143562605348233064802653730844910192988334215391874293396824636332142802747584397673145804937879087240275321618364667762812366355401438166256012051041683201056849226930351085186200851272095032722819047298073171539792640430213373835595370572225751209536724116487861750970617883071205263120699163438523911398983662800093168837535370458190736352425308799683962843974827629105637898902541895957921262380045437923875136831606189999281530525589965138995729530119587388905767639297693347347209446479991366992045542939624599078769483544179108825790005648321186399736457170480768113475546676526060699834046209190270630613349023696508565406123148481967043573116145327179771593420078125036918190597958681073619246024052886951177308747108088511524019315975065248161487303135879729446316437472000252239576354498354278796413444419830998655234435118066428880586993518123920401943912510138225462702433006823342849055890853433747442639457671887079506687507927008664101947451062194913433968424161520279378975920887879657138943161565090068965141347094893610225792295878727060392698935009846986660437542137704385336383039986861572793887346233292949011514933031023994318817016545225260850863130137102837965475117189261555891606477126214830042202113606735300991319146913561215531820198393048452935773038266640708208469646682544070892439328272704988655955564819934352072531953242987132762261853104654638007978255786841875620412074849549802721259795135879880821036130010810248857436162253347141190321915865990503604434673815374528967404753954317095964275435760547094734668678026432859767795443937385389044100538269870939127466676188424837542646944689503167750328423399091124132480233206574390372130056606887696152619977319015295420562467797419203210277251064078579504009112664713552974812898434529748430999877183077361251369133764370329599234147860814377590582423894923554113550163530586734330372839981483058467634257535869015523882921741306313598417755879752692963728349689905720263088080852752120699976522173457230486091087277481625275107143795793984803268612396807453277874215875684527756229619557653186381682882630939846847389147778284574305729100073662193841105293986635511472356012284962870785398498929028232053551370323022979806303421508228536024180371343959093240122317169170636733401942240163841378199951532526497868408989725442330467468799282312380039031313550736651477002577098595541276671569411226740581927863252514121905099058842357345362595975357966635797001717417616079049549163502126189111453004059254170364458366711035677039447568064856531535983840513533835012096077611851826078416512482469282485915383146056569636927932963584063029198819974594931249513846557638977310054903270826194587947272171321521345225927204875025556943978949706560169712021311208088222111619784628883962752176285372073305899525096631806333626758585838329791024982619009489527723860724336541681155881378310837749267838419395806983912966941399415804843946561940502872052753577787053435137974695678411097794901905375009321200234880350340766823865199764065593151848640907526817472993772938552618429176675999454075012925170823673110328904732375044192156293401204191556911207647413183895272130137165529056608248457948726839628462522312838837141825441066701722685499832462258558198246242966844327174847253979683373149151054506857323965300291545530325346343948943685554629352996504521781316724191565572026369386824449834174454779234577504883866842847149109378707094826792904315740647290527005146616435169189111787083620092316916021460029666433163551587234028208541125039717470353970407181896335983335974350321140485893476994354761422225031640919834339047763747864908890452245254376448718044193563028473634523009072421415017601672162869769432623458898531377067798495799661984046901719275773345152401633974530686641110410986657635730808726652967669195271676337046845876802503516012913202853730559767523678870078822073372606312883334880506376390820820465398564187460696535836588637372072569189425746863964375569564275679207736735367569624329603552758240839457272887664304412570833754010495740594055531192453100337705938091324586633762811044971811492989774206142757367281769167205988087015983981192244682425333133880214989963459022862096042905428802957393637182598700967626168718958080882490719887095887155162558614635425123777851623554832075050207952986607497737465272299380712184335018555196708415524594847117754381273756356006492560048709204728301436292924322693125923901390379739941788814833622778986010508440430837229048011583905413203653125905020324413534930156951063865602002254777187474881057553003881060874167823114861497491154036497291839648873487037950904672810932049617315792596798258589030782779804451682002216848577499543917951064468691118617913388591470136990593072971707003842705637916341246081303160058650792794285623620301695952361616376914427873504437940754632490911792874707918257657368740464227216499713822366299618360927818696371545271719702425331255966059933984159943410565001779179876809885238932782091950063559621894543864102353351817199791536389698508771077582346607471575783124954112116168967316969369299617257947684187577400982213868793882894691815075999428845624448419718729492775103224265952536355214373229236129389300035325398324600042081830796829984317484560127596030693945853288894232013942253145510875454226166383837934146795039624622978323104902535582066672471896286438449597824922622351589636261364631808208081405404396072670117425925609961443074810542238963349474478107958672973190902694306615405797825634007373521708595210452533427095374855984063299969374571778772477041544504267299570009783206766985874734464678267711498262416048440311801835707146442374373627950941860767112382122251382530706833790279424738857416264317978052848851490398329452237335412101443919663209283324921895986006931925591853674894097869730421090495161123069670653052287411574483556421720802527556849652601860676638614320220292637699488921512197654719528637900208090668166005440599913041559167472565575109651761680331599678120333622084522426001990121318582619360963557830040818306669594281230296016558750690776576427942707180787377559970428219132414687360784707484829775836926717329623364682771170198668806468130571929082994042606117897075002556877676326642107771603647283134122557947053593367132649679115166336425613062205820032225017061014347111654197929512424670268511504242759073031693162683480275541351814414806651521802967225326140682131853027017937158782058071375984493532573184210502626962453809635160384702656427350200916042588901130052381246141074722857590663099458437048373322431143856618952521845483575069088778442056925512576995968358730407653479642411702263784034227447487948527860351073348362326950508489673626380054572913122670157042676704118165302223818188563393603953850725168023334690501131715168517269589146638722801115886387268809613714970461521019539798276915952437758228666890930054500074627885205831611436601081953236259685795835203062431482126089673601386761406173214097294157852003411291311010804463922417860189179399235773405622899910771562533234878649719893978091461793132486058225675738532123619650752519437515702919046143676141576392377780835264421280899390008247726817216407681752012425462336275729400402328864324332764378336772417878494728424616875021463001688092238678664188557422656712702603486407372198482802283538420046910361173368750063543340703712492464303791477797775661192896992360428677142524021702269693401202852766861269423209734991701719511895425415939010480909636987502731985450879736952433292230029660311157694697217197494205224792090698286613950897587775086663250295193794274299053618623202406150679880177932971171945781981942281899155421792768273294529559541360770397417112674764938194003828929575452443795847022523720998782969541401328112160041788597642826246386840779437022036277102814797450293429077776706273846835065336841881256152650722058679254083875264180312326879036510048607902569338383989869724838892088029475984060551584068114056393587720173280518108062156282177444894085436151956722290597620319157414298687227239481719194622446131761461715264384497166676230248894819452698282915197179060528240804760967424637471341089393083228697028283327040458153329243295734894906568598040724032515145989073088443823577026234821845146909588287196889452786201988045800080969136411340501469502355700597495310161154148274846679113106176903345327564783499956247501991538080651987142620655133673327234750611546687742518724838109398971477976257599636794263441835748940679122377217306618192658541836103509569580445509569312553049204956562115751071867482810563364640203457918492032604631946391047964493925674787170363266567062621687547672299640386964227315735189568560512361332683290293616845037539206318131713572910459096718202555876809992108640859358333986585627487634556740183437351247712215310611592099917764000560440318860768197782702299178142879542469623964466856532023207540208056691646175807504312412296207726193025150281546948149203837357717552054774734159821122598793143013174794198443695768246966190303944104513791847812797592505914395119730760897401282086274826968479183683703094434166816405461282342971059400137483890020684475741157491969695561020306389747301368223220968923800808196533665531292710827414422368720946097791509822950101782314518686710389264535710612243732169862654510833468623255699697166772325045552841052482613032067866735555539510736563365726208249176719875704278288476249608152253673385914556256524352097036869307295454093060600753450220446595078533649761708611783735701462839765282134040853552929900890065540468871448635069705872812621138277144688451891465740596043821007394201139706544059114757360862153994048255889480083591266647634450758552385623629822972314282660476920168414254921896760865959408662140646044198016278649367379019565158147119649419401291735910241679350960666861301811758279442153290546802954861011871280715829057919425492464099765364759896084988036035899659939931077235237737651738216836443133916303262587614268331860460372051301785224013460596421689011282090754805698090981395242602040576376937443627196898100509684434943016593180900749288074878110487583784614527766535694880772135448085648834552966779796148578059175309824750912440186206480238618818798384685198220767997191481203037452551625563170156395120555110740624226128634812935482391433797229293547556240839006810840206536078487043061590964639727522662914828323585643213008976788461377805753494315279385644247183968199101562157406495696795471085628641542238758233827419565817295857412348208585408811992420059645530820816668430160147433671793940874842745914697059351650870531183766863124107914673370574100351739749363711741250392951158827762888101105688997572141088785623578176992008549279735120599371825423475484600215563273486016534433767946034024026712472315227309605194782383672900415112358913361060326261258510719393090644753125878271986790510907171465169854207892594926784301125829849666185983610152220329979987955709863794007227636715591614374762496478310523485900665098726641370945408835792476465311687361864064714260468749558955616787093012712359363304874223553917917990281923700711594704487085706904442597985255587686832078167349856806188855071317052758851066965668069220506098246118655742260246764247185325580995584980166056980187373040335342039604908323408504938324347641576657065192811818847325387631166022713068865240319729945995493962368483555166247449237812752573097093424233510222467936789883444077796165209249647792814423480576893010712377947961469940365747144172948391557306557382279946286754407728145674148314460488971032722647762045541177780906846930483988571143159429471843149197761858372081324315513134440802185552054472075755450257777874819441630911993139151537018424064410136489675651412580300981206197447870088987210831601103692081569464231124851663114700714505981240106409615541486678387191499536471105402521954237918634060925662640096050966785823211065515530922655984772250027135107171307427746821768482640510188475257606272375753443474787119647055953329391818102099864632226840905445980995527082810196361046800612397090857915568023270299153209125780587317461703730256217725024986452867046454755778407640524338448110583757768185167177554839900009610109590907166119155186885403680338440281272715401277903585406559227739101623860897408974310481740588630381241997730236927443371672775628873579665746227273277836750956965169619266777512252902637163381435078456008099782102183484784285951507420867021192922961435143411994171126999907987494613410313486298540692548398394345003361574750470604161761409307590647641721411449153505622811543163456791697346435974896549833463544886273725858679701087220619013125910741970098384179031304281453175596032771577736027910753474039941512608510473920932583927695001895750643758725409184286085273147187752613911542883170946754387873340142474926805450430970885157471477265447591928011616498986198621785534172520522264158303125502542049769856331975357208514379804634393760092062905612026928761090480227598918182857705316551572819998421636668849974115853016448107681470724613668174336687535326849465532709569973749229557372122005784420095584331603093587691658439523367981134339980431201850365432282668003583611135660693084792452740331277914075977927496975780154299750935842839639615460029397278675164344904219177758777512822554690167978112876389038932278702962147659748578613058372649475711507645711683420648275500633844819302780732394423246432836479242435449504375662174309730407385249921191463158413732961978665386105028674745047878325988838740846471093206412410500403434138172875544651739598948360406723479253155867674521240896255114317421898706095350741479014738333939836707684331147797040940848772715327399317069350522755847664005298282901490997706547507835211001883843537931827494030629894902250365405677373920129112122279211357837141127074844595154389831289807270760690663505090820267491468997027390686879715731709792665677633615894126469602091748183978979807959922625434093142191933089941759088439927151336639757527007511180380951580133472533297498154436969533410727160486215720020545307921254192472714502022812306997383880173038201041790128811651657316619300118892109829550821113871238069283349914647610014611391040226589416747798455091872523355822710191786321942157807044451918039227787843921788346374602881174258831405910619161557699043125370063953463974859935652761738019773720962367476281203640510296781426754538077596033027082103814634690413945226187908293870450545399760272295131684977227569058460551545611440794964120931917263874066764731090229756403464012037570899674620543112723342533480617112946885715056537820563840660686767684063466742874240633868900353800766616720562379722146736581776133244642634261059846358309119796730688228123423706891405078638360470576614169277294531802740531253806962748326541991000337269268106921240038273872772358864909366160569352674594492407482689713214180802567481170640142488337559627243964011838377587026090802642625841595631054517534813644775272855939561788727497991614351052051107880445626567614360771846939630388700176686311653364963591187593657352622687080794188127771278861822978986334639214905476803257809699956388327529967999722981772615353373351239623064668837354376598941120069778636538086794325123911693527221954376923395704513522632568291292993082917559762042878452428407082043697563208156678570979979046289309864487111590216185517481738868969422647834689634355393908596177702168205568014477264497799433130027328088518677443722399334156402944405284372321425837337950940447676846451465441564869001756114277526962776486492912145116612641204591438445727989452318564633673447858899518663379079757936406211934298052060441088904479141574194235989266378403435634804256942369150636717103895170448227178990964606325500268704514342916805973257927547261677931622716052541303668464107791821722907769904441600471447281271323038813463723785230082138194880651734585024636034620793568563502850392402510431613193429774314387291447603685343434825104335470583850356393612319874228901285605943011659979566416237809203382815693132276081252768290992177139248662405222913148319239664406908313479906145612636471655815400294411372808763722588808852785334225133007347406124504770975700022157462106221656541736858100403929331471044027469623890649176479525898024592244850301924230993658996357683835265136614479646054867246737221607741965342474812168139362192031309896716900503568411386453465945402030225789027261107663708642158919789602789497984094276447222901596906267835115758369225512589334312405976243888234981101405191866403760628911443652508350563282398413923735902746124601158984805267440005463958704557264003961089025420654165042754551379065589127842720315687827648465072428677254113971557237850215264907067126146237544180847183743446846860573323229843949486343673124483255798072179037098477096453143043137207065846246179710230232379232237995203599937292521247656060999589447267070100715265132510169771848229334215196291890952580124576471150024455140896468734491824800561247482225653721583194195525443001217671258147066824537761677398193211142313647395991490054459498202299847828158961782228762768184940051498069566760706569811116530167667590064225703828093540156360208858930071763137612742086818516819637967311126052519410477658837788150705345339613207104916984442668989351436013834878812785585939390299705449989669122523725825288865349290228715432974397836293661699942875677780168794565581099070030623900300649996250995544587786362713408927485972582966554125138562803702831082174041069176414435144498961275800197462368001517288190603253593300027840044935835085636999030988397771101366631624198557665949707708746971708441403479925682994581990731646620547460239117810153889529209582424357219301140160604437831320108080750596259353960933887203889619194504197696078503358683851619501377488556272868465410090058005758586812901350114626928955414005548691985605604186089062421143882484464688546914194351648471792903838411058009583238493630900207648660237271832876665423417498714250281786058879788928445338149264648860239038705506043579992815455545036147278352974305601384948245435555230001123905838506644528026968920372382601636884854815807417931261488901428668401833651665146100507866272721674698086374330696883084682961297049889348947618493542000239236720748068304203200627428219617638067611876528997769884472742686004827829331473175777871904695318783389451888314657581279990270567587459587437092071124882933423488505634614625194699180373325224237301199940428684254225903909667789356661703715999798272678408875939588187498825852850010799522833600594049978185908025387745566166803850757547926078216872330286768258767400066755330075890543084069183662876018327297210984176588408759594378828251382153180567454523457336822495613314432519942354874207869551412428081386255783724473015652071025163156629902686861771581304443574111880123134936215059728620118033765481261909027367736615013600928097544459727205094267409231411292457589509958651946983868117383023954195803370814113994276454486112992478221368646130210020862876110014646166616204977062775307884032041280494641042032545138074078896988818779020338060101719663609596758485625397883887015556107615942059920415407486232452208299262017647315987003355202490489566414874944435277365117931397732797264525825082850609222779274345628291896790736955365703194599622296537723659815057526453993738288830337008840650820969523546971728056648928718520962236296589009443475270072043579276464302986520376710259892772772242751992781921356860616143602554790330414800555406889285646311272239960555793465937678032070828217574511304000731795773795810995100437631504327683812939669045603692376078738899415835891877034911939485187966366168214812684975387785373126055810626679419858579356297672333974439139426574273365558594252284113037431462171746105740693219983913768070435587889425701728425468956146253469313611827940227502787906989846416107560964889521463902117988393689026162752140499392039346723838731474575350087183900465841783395206903606232076733331639799523546728192368322439217394971395716541110032745697648953156187922673943076252447133334752560309178078389644387101765056070189087054985967416604190048744764076877021033538120918960809573978901903971838108685170636956052506337997376834588545667719437406169193000340953153197619165201682077894771850124532276669498709006698081184831989476129112251859856348493529506415611926047558175889944345611731991616269585088695511562281948401140077599704058888458343253787815547827322695081777675855161316364807821920961038980836166552935312649373516095889726762563388649553272332635934517114552421502056305610967738775222460256754714549380496192290111707465082273893713724167447868989685195198797710263153073858113670702506692349588834540086251906991138700957879644500220554491143964583485817406781722221627486377495289051151701757895006512863626118133797778842774989986035761763002011142164308526701266977974192410513214321038884055029027186331517116451813720619507864900948010858569387057632789350488904293981861611838923330917876014208130003199381314381491658881238294615623821581005746062158612551487506019838628126519212742769626034008978882341814670116841858605988707477999906793164167796845993906939034722383740967527555837170882869702940697616697731226837035214347286950503492582118807566720150296924285851180783730273020595069062923162662565966909179108189308802731101031661309528315163459063474927756849389481488232049535424483809974420395035456929291516206915984457150554830592537524532769086062226483356390228987592358695825141628586745487902851083314083728520614130620166396643454097190546023916717912068478316630732473947209812695295536146203422261596462376021700842893432346994585096610541165981194639421103724722558033238177495221468497645476899255557127165289034367134598936379307722394168109618607497183371145715320625197229653059660397636366216523574320434439280865302734950349659418126252402700583385865817745815177239060207091150777534049301264229347351845970776612109198528286530078190099628126818784523871303299848603444926998988553493343056741601560422600904316835808881029235765097229674973409338269343413861394972078320975386132392342871336565294980602499760189308501522963725587238997283093034354128830569230284094825722055603009352499088091043627506942062349245189748442773144768058431495515821004342626590187754353001810317587971463812386351764377152187442310409220552513314565505510716206774851106532480727129784027991959122111747188722509261303958199488343552056431552122455519863193224218867323659711233219690872377195224389702150044592761720375747781725008558236735717008831421674187729568815094023966829874715586683994366035961569874312645943755066551686511298523374673350247461029464418186598957644886325869310392706018086559432963112008893677423060245324341744140744107345975109848274007106799052540106052048939902554238371553752950227934514664519409765801205318458067072337852995122042225373211092196184717364110695452981225314910068677253757904020022048870791375021741120853111577348743765572027977906256514485795508150903982095552173099924198755993239721619557922119508958330047165871889318941921290810022048191207872873210651607357537057437625411324183763271031710369717849216721254366341907900248014258185623352419448430947639034199188728509732962059709823233681399534211682787932059700921052050887480700526445365109703832379754700399684384910730299208349116023535338659660857470537126191590312769864201930811595358162662455450566652533442937178988933543938621259660147242695336687684722350538073389997879739926019723945686536590989045609198032007277136688775293256102582408279588981788437292904731474629628421245254059357153245539409310644360088613904051273311326799346552493197343193229907336531942113720167637273826318976376491001970202943513943165897080131561638840786790232994014845251027908181190902148868105134948083713498300455092804751688066804746454212489822138256292384264875205551946565202823146765675187031351150366928486849126083177461395041360916024756286901772765265618959037574127036988923460557221413527444851780268232521275702187542939477265497972273171360051496952466383220935010642650054926282360242815787348706663530810191189751324390941705776294601811578889335558895629783157411687921723359901735049919573281929353240240832069983460288464248229169713628847633509831483008555106012654216471127208086087845977311075465838783966102259446131002685595438124049941835469152954659843223655527376560147153484084279186231673870516620372392288112975731244607617874766724210768904052111266195581803863432384910562871734976717158130944739286662486841405775796854836084012995449894189039676301890100824927501435907401524391142724072762452410494202489727157100442453964135311272324232569183518866325762237888070672602430420641768419781491863930410655396753773698289116022552962214710408877588882662525435855673826533898197084219899348794999418446482909495921641158356175852361765931741114826794277312478018854944946101075306343704221269316749486439452549420982887425343319183930609975860086051934485273978789961100712186661638615425232876522760243376364506360188011141096839355451485258346263925716263238229430309704665374431672708314678595128129863497910847456228876545694804911987184923390509219668305568855108963313238100536053096078588328054603036646492708730396328986214116373426378415092237512604156701378127983832300512692123472830282444536876623482547585003335491283771883407907767841768551949484748554048916715437407599876098709232815072195288178601227089921680066754794174559682911833026810968527543306876096431554121136071399859570316450346155356404066105066199711547142287837124706424093640402451694637686408774236908345523266898450809477199230141450465682894433560003723387180720205840447477006246432987234569683465189144648667576227962742677432005132315189078491049597974535387212553180424789766330805296745145520086614630192140892050668621871295881464654986470216379945818915660322706661905844974279009152311286846273454748389528655954814318352514345581531606168083048419030905697425364972726980889708590535709314811794511320639642544481073411080251958236130176439082896485027840728715063900422397272648439702810614635260445152961184572562583508534758740525720958817264466006714132081334587715916472114235565075353621953279305136971500888777267968856107342897607086728712933217455449958000637550918927180868970366434147976309909979976944124307016152764233039735681891022568510974362886147579074445603941975980025890273519753592863955156565830902923095065520485651558000189491911744607957170053040828307854247432644715768817583222673725047251423235710086574334002999128921970502973463838058589487512866852676086451048654329377455323450957382125023116265252580584418281254758079297568835535209689408724656657032508085573480616487617441639155772963072061457591953981518009915048119947722308893630508574221044138054701328310817824886205231580224105132595472171106260967003624997881151792258840532538419067266350438177241033523608179073108496634463831547672372409410106018693749534058420640766624075923048533423088698536590520227623757281431515520420554404936089221347889855508562501208862320731709902566049184664491793448603633820437067282808418650742812736138223314994804631563044253194112082964577598448663686525470279029631151272121330003961540054754012514950899299872195581874229658563793844499823029592749970303102192354274039014838365275225576532120516447729725876621001471686531263241709173287448520274691171563962500293607816388558222919629067453690323895154097614033720658713660840970106004958895330029070825142079242436797558200246106817026617180567105388228829603878056590423235713072833310589103151197495046821317731235227435096330657384701660950072526592127050233043819141533295555101411871761000114724749933171154368252392473766167277282361733791399022148861436663888000800049868338489243339137796618912794465351114421921668673500249730440704749743973581265923080979055189280638464406767925209933358028936476126955404485344685635897488236100940140853739240514456454359016545070492428918430041679625333474742303226735072149450219787647078087669875361247321265306615336717636754901995548719227299467580521382749633834310120345738710153231835239612496890742274310435597309834926013582263865588584934874715783393464277271361763687969810288293286574690241757175273847085646583363079705060441709483602813451445661165120380769718952137170333265102854601202146856813642447073166979134304129329653610560113030335354832815864936276537112924553216658500446036502878491703169233379728688161158045593961369031627489516675272959509897987755883819039569224392197080858169136253723826641143165928210740324896274617083500518636564211359699580035860142898633322648488713515561036518960928663141922772294815526046887712230203795775908376042832778868994040422661685224988070156780243309029455909488942600215481266036097414351208763707233769585101571160225459253259905209915580243773365578512104421708502483378747973284650301010226844857965262860397494103639767283972945626379290865124065676342032971340934344115748067444721634452563459768849598487163468764527805563704027877018564820813248430656852536716699692152373344177227214947308085544935228301949744903775249116258614206273820276777175590648988014654671730418957121263839445873702538710952705632948006926842281587293013781430492403843308338484353714925467303017902543477978779487194454415916629196075751002426703513800481518227154136437231848099304913707518672047759210330011136058653746090410185994710101319081854612692401205858594195908223930995859327011446540048734316213545605494912289586081443516183812186376984344904068539933693219285487219501508833305005145605925886066902908114113973463415245089226399029928897659479713630920240674682423445320588113231514508403613425682667717687750500213682934513179128769546554359867991386107213756405519092511612391290357482030874057824122858789302701507665326686768042888141459144005881209099172130989805998515573288250363767091902156262968203312367596695005781972245011169518579590159626916108306571568444823894016017750223230051168679640390292020944516663786742937502303115747361910905705400641410943506884021434528446940711999327689073769576994497634034202621671270032782241757991202553438803995314934630050598000362011680982326417511289955254589823050671058593050750617038457592006367730176708530163188951288563031143779447769298801264840768412826020572549500122795786675199787970878470718531394074144848547172419296502875435709330241431214046367251532460854223391112348718398690884401922725697480804161123443495805837701720005312881395104004988866770885293422370085212548808446745086393755228994891737271703576448409457378672372434368698593538774845124034878025796389669593241491134559226488844292279872874169226867560383575921381635723178410083084548934487514635019277155162234986400184962510567981149305310476704192493563003087693666149160708957199968327448288810256787923105421315244688023265555650640195330948615217665283615363224954777903671486186186671859213155654318237322009194138755426364468171266310556115703238946949609912357252162896300610402490042037266113078774542144320655407260839518892038300798476243862693847076941171752337433450742301267296860364410088203377043930374423326958750726673292292895456043524623669915617241525698510623805937554324732551073342625669514790994881337301882439588643753651536749663638336165269815633734714064859363729585760189814351605805752956225600687862197831561382574688232742134053284732046984788763123765047598891485621256837318663203343530350757844740278293869689397362899730880733169439335991176192164294821281930148378387025239470513671296830695242621013359167434696256883680639437096991120972661391045817364955460883066493173473505789756531317588801711726009001428406906558576894389191490496387642106063043707237102371846765173942359082648161766803279251603373118850493545906979712467898882913874260237911854345753192958072693277379932185402115447940791992650870892852862159606803677707433273372346931542144113315052994374245881126803334655206551346279961759455398049742361114700373717311952581809319391099491697145792860052391465103717498012310856834814949750791369192998528905165228076466522388230884305781692416646440604208770660458652827800462343351818544322420845916599384659416188646833211897617919921290710031850813149775248351636456605734491908192003502718627466246228493717388372734665933543803405457333565821625132231932303588175732248175400366662183453637687389562854882808647233371602014473114932923037892451068302204958189635523902816616862068093172785209221634982995651314298203671383410916507002867790610940681287053344472049685225997694396100706356692191989422918201247599947212818359611673651342093198267477653989078449597751945013507114849104071517511249018565195774065544024170899020876518544164614918505119876109523748271100476973665231510028335438203779012884422187325187596869778389103060847554073268368186377095038501663726946911763823774435812764545554033818965855447238708254874247220033226077141209962747509625081264522909361633272462518037339728992276205659006012680471978071794503406355275306413827095721423522566107752294864052871853443531136134962179468427869480695224687580268421599849637566883864928438339121956543072344520454254047633093921743315393351900756213670184106364842405951687759064051662620749812939020230442419979776719473843454280422612873329233903451973486429714844876079086563554528393168622623897591452767860875749397864582341857847633567181380182059987763130731241071093757423348666263505053386976187368562344515005995517723558821235478381319498764228428793433942295264593646945599073404137520113938819758679521109368615681485651799024958293517379271818563402707751237461939824203515185140018849878712014353376128758216783063559459545515413619520307426802366073852444257802041807632356016092225343175545646614779355306625391333148169692747381533406896785226909417849460329727054731321884840474382660740404684766978382467533699666610026464505705616877153210684519492843259655378263110004247788653680516169757181570922877970093380250412127264296865612562520104729002821020973503182115078269071040077159324257016238534161349161471678032902555179018769524543850359074204798843626332490562687695032215150580343037417424510201755712540371481028421510314764888360616672414034125526621463982375302109353353063294188036451669368786307111471006698905444018036174002970920089767872124608080689095851942112654354487543480870492404060585526125395062916713913239114233844868752214870677999439402119659931112256316708815392727344666807639211145722234422212843788401949302083116449155732729585241152272443164925096631380107123832587164395999678879411893441917012775239200666829813228272822755638526482359476510979525237594444048717716786209402650829582833776005990072606396360877234322320680776541158522495978493884431684705082595219534657397495862156261313099995670848509222022723419347848333731782900757860819571417525664544795518901359877797397346088634475723245749703459990226002154863796979397858233696816128801202237940894036292977870589812385975604536771818228321485539213760296040001422907182760149142393452368045269313383277929464023633036660934810924716660724802094752441432331890402493223363603476321883420367535169488362440594741706367363442236569233671368913363603211721442328913931333413057507358684725138044219871783222971703211044348077109014733590948410952517067252630545103406045816400460503086233501848662042352250641086966139509335369637483629014352825498087317347961815738031946574300166744113106304149967417284599984235861950224304494838550647362939698665862822615943757245024456142896776226252508412102118429428180961654017856284761168437526483189931384040809826210288227702006326884583565677129057119727685971213089951555791917863932846480452265551515325859956495655850151514387874067718041884067786484546265500274360394583897297198201462119806303151980633684187483087314079964777074484951432990158575508238893342165738507259703197339001716277939292613398410581615460108073486650601506049470151131876873747436491780571633885289940125854185993776288251195874200315451540967960384140019531014063069253257831987516860662276889883386032292552560155133435925113776201450622095835108389281719412456397824166210038699098524179864336094880006096482605631750280100450337393429881879427867362890884403821029113046864840471289570666589134165621845991432268016368727360711973837503061221062879121665807972116166995000572220059861085485134425692826095518847465423694225623137658131113300939106733465264528169527574363543199556645405198127731335580702097130045283392564836856461399494234434634685439958694343266366317568680707725994354033658683769169148077092976895645408311384145787677904738188792031355881390251876302236115409458797880543717486496000148254926903558325534262754699457123746740624709820555896465532818973076897207999508918644446680659020506665157880833225572730927775821389414154640238893119985579374881971675667693502511248529683422125957733022117545990667675807548767349924968281883289161303438253169529141719890635459300718628776547044465039212995357385535004952269029503169938721592293367300273646744260537129230475958069679220047769393977209507662345684213476901953009036439555525096298020822738774573732180836822665014164752564857758810021133396722330664835444116903412162644124339292390990324209413843329481806127752117432448125244767775897587883177477126987320851389944307538116370297848821121809888657567436527256609025614066431022255068941453698183752108165530779641167472653892760588004506881628338608235590376582330450128301183474057410180091182460746608328514750110543386991181581869758519410319407424970642133240640844059054385135784795856965855411606370840115539022143706425665952057564518703622963347913369997101468701913539672703013981405759116812500655580345915574344285204744804773266398559768493619589919041401441284467980941338328358703635441961692140179609843929651698260057804472267958566594178178913949357514166123462129444743512545151132927220830148058403104649854151263318752182678749571929840752744952709495129039237395718201686557771740276562429390376970534768681479934148745876008261512752976894249349453546350353679206435993962116571139412047517680468759717861274989938527836173823293120111756890304653705492124770575509937353449915121005701196050573319205888238023092311985924881552194615743623258588673391381989911011524297778478743450908984145738373812945157491625130606221849906866214133176676733546671270971748867480139322676974878781879518757911012561489474178425522754770467794736308708230837897539941737999934312946409057073648168545142004306050866795376567807176413661379985991657071339317564742472058709739702909261612560005099304450430961551443991416958549162752660880073374585512766622428150914651988397867273911952918400647531957047117807988681930058640338567698695200400091853072507873492232518581801426217530949538895806586808756845684330096097078511433693348388706673554588812099343026677639706678430963103019582139833253060293086314459292700475720753893245114220764186876532801442712862222452016489076321233686396414219289647679838983224443096954052953580078303380441145189484654268537172924886493800100181260964966564232872482578434285112314088240995707122105786353140547897345902477012233443238915262795131274255846158412721080873783525183426181675673419899955531055788133966837344224840708894084556217955713152137520967506016777177516064222493627792842059019275179865198681884890220865479592727355246508583164252143534956611652595926681449839599136900055801378127183646407501717290654054299037242519617656458187718067049240709287912438271441409652838584904329890764854782814186907558874218606786670033656119867114849399392316712170860540936857957076140521604864893852725696293474054066139285672151632191903863662534698463872020271725100816173369571461808834779528824617202564971789398770077231846694793366627422447906176211634051702898488825208508127142896541952010549905946687580533769901965087100113767498527798212908546574955959117866414217434819643756828558174892748224427725164388956168526993566187708663459963476976329947736134063150561605744051664850213497967043281979662869866669696153512744987319577603560735216951308415723759877032709852207679558915102973423951938081517874514793731432825094617650792691146256074123283662638867935114333966040927239940649427422317361620847948044060355105117331109337530651280607893665564925891707858894726035919816642649567232184969904368354598897774965154520565090249788150026257291006515076631374349337622307535380025367766381720620660443578196926598749125681846782130537410887216527050826284584158015440920088767606314507815783819102335331593997455638793873909369935309676397873704302751429277451371573401767783062968561078673620989445904806263763786008314068565776303601855609561675510671767702120644778242148425445641333338302774586469989688667162828519245998357862198441816273605377677040204222043594064712575480438585506246412830769934449315851073809908236341008728252770124857562823779452672758787362892713878358836068830345497464755359254954529917139093514475813624805290356836566480846281322853599463230153043014896449125872074029622684361728856854420286641837193529312923603276745155595533024787269539046058941673412775693126304152135003685415971780846324416667619053473461637296212240183007024949578508159023698583411106620973902274028806532812633164137714062338023863307591486594573935876976734125545813613007487021581494397134966827657723079152546439604741234484345411508297713921015378489443430842584477092902906576625556841934192745510023569132066120021306895666406825779269415661392182702086114443202478427938437711745842662258077042582211285408267941955155525509222705047254916329094975079876252131259759567118686999532134821926794627070320174537967665320378211498482464226914839140984092513552503975668730755392944966480575036293876465330639450437085963038669359235522979621221359988783365803470826448105811129824887290465855738701693366854331980090385294613382888745996443226638668051530399121855335991449257286085778158294793005779253435776289952191602341379013160237539143170143542946448630116613293197969047890309699440975820480756573993366779915470156877932018895934580915589129780817534397855537438249628798041772702568221307992000065371986279839496113757208275544881961505021977690941622409282455899124743964429854835103021726791520569648833742592852399680713355117044292950150477099052656310056918194804835335050290202502963327569663581923714981518973794150228141887556822713975486002434636174870012384429699104888926840378908327445244170882247878336563686624414781404982811394642663596362439615046935421504252097024555710665263957346533522774646982644496670954671722209325817524905592003773187476963226300933814947710321254781203015212413108486777546871443939438877209290475189030345280958933213613774492699152277643403489237488128329151102062914042602697664266521679166304258098174860874917092419706664989185215411098887196075340140202546717391649991447192831349202859740068051946202874653775706786378051898536255262858036131412663954994713342235735693543516633764523870056356121113004600988782330459226716807573603755936063993666301956737220636586807666420313125054491357934455401119791768737346771854924650301361369980812583960707120460335757762887810459869266331119845212005970097022699393055464806713526231167698855873454151282578188230958075059984634603702569933452632352496151041591374028510500850335107995181287573573467643302131924329471987367772261160156344133238874812455658847178662656804028172847891375243141922990663248647513490782513113697350557228709223036081106148090905978935102950373118842365315447142472708337854557481757323063839430338935644029729521465823969808922457686051818155923480528545210752834909682634473737829436781714464737882218791925240521510706345721545092372750910636176431242941939601060550588403047733809984482847710054882477864016725184986440793141472405077639369609443750341052950875253717835366635116787369963918377797858474981793033937789463604717912813684509118715092339383853990465937013383233727460416788685927801710653689704483734874635485624438795100155299044021318251438702447317334387349866496374724193238165486690479755359450773986433420585876395131273111693965574563858180901387849479887826236695566894493861020000271634238871231790173742398354302268510254545531802239566689503874582492353022798628864723613611194487691925549819900144529000451692867988279011706412712282790241936878808527806535374550190053685271705151360204064163914711287971363376824199389234453722880508561068931256019051403464378263982892309560323864967376122745943002371547750720009172088382524537538442901183305390085909872021819588399819159876300904859304758215925741431575943193213856834090934820997648520087053832968719985596707975391492225064958117477266837587279535486607183220540315377017777759413578499273772746916005048950882540084255103850851958359122169530382786361063064394600255412847636942311020167285778322417432404960538956861772736783476036358818823371754316112938511149641182701893759378508281637226595427907352025827271385379810436367366019111437085952541868372901473231044355638567889788333517550020087485506361013990893835439016489519314062186572486162435918801946341791038366097467689860954017292811548107433957326601988583522318392733376390084792720664104996998808391294148332537654978939009355206369686607678663758894299360106723694912341052447625457693506151723164444984285695526597479802595925556902808790594049688411801080999685186395461539266102673798090396785953732812810531169342792640136279966369108911508966190194234958629075510981531927835645556569284707764752692020093628192659559016739711178624070240063358956118463994282081582750457207629018582006854980089520293509008858037083366560679003728821337426891509604695979340075818304404377422139764727179413926080906477420299343965996481881891571611897302511167406582434647624876380798698484948922273947725895305615722204467924192565156498783121835995015933608710450831953867498248928146575851981024198076084190660835989089606616705655080552182613757068155037579986872506377118982881904899522812679983028043149257729034635486098625236814871108655828253492065818436830339930568259043124093509125626467474960144559338601616065730320252580380438575909499926248198975286517904038600611881850017374086140796663274914544474884113395676690430042309654046920736192128258890845411559050624586866133027065666865702938538788325335556342930054352710463260720970294926566439123438016805165393397500226049756260152810001376974761089204801499210890659773297720533334086562485445427652953238165652504458951613295388398341936878302052464505948844416060107442148000582189180693407260590962710543941815709686843805759474946579921540657186770838827391568146358228448556676275001414396307103641212703130660716948513199265207545637731118328107606018722734641945974419787806103417601290506842489123284968931291301691465833298697456237116858802505255331185129269740266650138796754552532309995535905798607234735608582289029204755904375123706859287836636176725805604816204554734398287306091250228080398390004458707667913519911094599944886119370385305231452581695981801002030753716236368487815729474937958252845009770097076063881536460223682711758092346249585535103013200909522440588018733558650052463419817197726517244330385248108438017703086357214209842635512305677391926074360081257164958289833831197176161639520503729387231995883727209942890053998671366761660305096029479885028174200706679531825923032991550431491094378426083545030753649933879846449056084101662466327664930554277912696960054481585100867933513043991870199820420521119421698690861027758466877151258413050367875501373613173473026524699456974715060325744911296273691925811297360690338640732258050906857182695678028480085450537805973228897034718590868232869229744102515084414515193741584963862987996402468146205953842080642604602668172483601481820860669267991540486212871321216045414188685088546923456561803972522463345785367307406689248638984568890466523392130215804656701135533978124973351005206695678219097169070903197418677989768265428903123439028563629626338971134416163722322275142434955379063316262187049531121680825341622149172993492702394406523266858192927552629354257711366071211155360804232491228560958314101199693391303331035591484312640922857826048150703183845829579493633383135988608591989521586153537424093622587197592122179075200224477599520502132847856666117972136697854728639879922239165606560401112371641581392519386453522423241526346555365272912626753333455854538316568253496438664248329771178727497980502967902695668310189005964812754268094122096273999699719173190394541447578410645160167826808995327847502922702144452207415032396869833485929884233137306410378400868477313660221079039884849777056679793516723684972608122479927748021165979014935225834256373497801911838701356383400039786244380670929690131141211995084487573945571329757622171444967536531360706699362025349621078478832877846907974649018673036785924311093933801222775829645562611563814462199819567604131372121686387917268687551118008557298616747140295689387084238747335256006196226496210430854947933588378710793505502444939752368756700338510372278128089101393851619434299416545967309910504593645189209167769170044876798392627475614093792918185110801785823369544370498791799432601108991270092265976894490466827963961805324263755477515009914610133648658092422739854226516136374864700061506198927671249797438026259103447035785688765795096292625157365583454263161310456646135410404016718492852050903436304814197123889458373126927271440380797431603912052992396797392341831451186776521853993984972445201672028565259346858375494937008161887993869476541071134718034813054772294621269748966056865427273082196111428186779127935330474695220741509880162884721752123724792631482357794116796482867881714242756293531303737301383551485569754224224977056672966361376172606504721815587086143617172925327998961278624109682934847198647896317129110261218680420440302442609149913845697620235258947353307911555733832111967940947311059265354680611101329671558183101165713188732885198005506360091365354659347759225471508841522664697994284658485804545392750353302389081242758221834845388931722574296874658746779599053875667327870514548006852303800386616799857802527269686072788112218831803089969507225394544536892725057098782308795212092961535344581719755676713437735039108133448166489603478283578498220532959324778660376069325820576773357892463216003142878907998988000634091540052086990326544582383518303624629220682049005305365200189662861478166482649313834107265983088107464424600436773313748108684351457430381770708530047698923899317981968040074213658646618529604937829256555357209586552190053907063981784506568454051639388890960386286554926160247048679743711236483678637066300480209057373632789947973281073243072966045506448141324274763798494724333789277132141177061549950448709017804041400744247309635445283709360572035331110034647103253660088648177879318537205762655517802823831181814585855177355952926918376295056247138743667726611596747954809830316755790916937506527393061815988455042132798389017283660127130131951790531839751615892778164976025012013341045098470920378709985534613910250772963502155208350959719877954399838438212500394778782972292421811230639434912081983280224838827607442455352666373919801992299785622207978259912167732945443575571255984658080359132054284510677626420537659627347499650866139217128100925768816169539683285749361066975726357576684650945374885845420675040796160668790676263794438595199301416810701384121306419183237872425492230155571414266141721904908827600067450914455411653700168791963291153575675794206220262442899134533507303867779423889046460531910524564341371804936082878380738578011016143740520704568837218585001212408392123250914178378014414077358991022205004257675360634650732123822261349944186275731942632964404698255562477976030435263550283254730182609698716487330193074808564473864914372863511455748906558269289840182991476753183265201492484214923911829343384965771694424039961070693277617791160717851496592195028332724280941649879271669604583040334260025162853130629930316331255265596873693790528881760889903385439545993858117471989709927601748059244391401812755538888668031310539475364975614464556288571640985842423765620597484220651524433170672111664261995604009013150107165387422233197950788493073800737302821926961241292201347242393976450790326808517441106037571670545743399446616630568133589150822399061876410345337113387021838196919984635135366596232686328875190513418006568544855927008544843388604383880151377918189441267801043394832088267813912248890835044096968252924732740998229954038621539396918253045131170421921468183346387907831367211202912368622968048420872108624355610159463203913449489077704898740906939478431901578780870417799835935744649724289029136120149206531080509718736140824921329778158702258725727980271695004884221801993517241145404498074531139151319462123936864648081695789672579768919580155148570200934558516775416577699546479886853580453268891510646449032676666080483621529609356910135602888597517802561499206214018512181789527447380575986386211398114188117541300770468605615268441117227476690110151815638874655059664655949006030998993871381987748699740290097753715009678133842351143650283823585478615865252773506100490996988476484937210014339605917007041678526476871498837932215484668456271356479291538419768757413431378204566311044503806838916653292449352940242059939907703713615860748076058534737349541624841229005772551679165300029152460507712322973064225614135657636584961259376389965163772523230570915749032728697442549014146381167399464517547995184018874649665523823650362687647421230981082455579523291988785007864005375837843757910760147304023652445245963798010042393132420939245202445356893384278480768025695719048196053444157083978984606108862910024603688370489828461740260354619689420634453911947885732518933600314569754209284056095662178052623352102336407767662986219233029869786966165197109005177321766006915560308827589125429446860559192678405669788891552869988802758767965856151014713105118536415548127945151144055307689777214985771053381476168357450213360336051856487989759446019554851278621239087671708711985535396870809201248556480718896353541040984340137934720067942778623858234571006646562806311082176478101728126794496665998398596094530114709044733988266329569912450599440193113102877250735119775829697788970173189438756682898010929424808200299864137507790282658227149335236113205913910384559990640797192668207417307531246621106127849940527483700924832963048506450174173999574480056886886480269992381827648861334628233582766128734684470536902182415143719101183122094097124367473322365786843653528219142237080810483674263616373415354894428054409656553586062186926947008520476232233638849973737415881989841086919106016747177040175071919313737897942421816211375083285351699345929447006733553589190778424887887597866539976202176390105339124241737365321509964640131236947433698767307059309720763807797607506637984152161974944404776938536917080427814218800798418113766966533067303897041333064783970159387823965998710599830803438708694719276721605113543963176907830761424883282600839835792830782222184474384934713792318816041523155987673666407385220016108301524520360540550417679565298621515599599849390798006452771785662512064588262696254735703582307516791449188947613453560852502860766044614107865366815878796496539986011383065571712561667158447840029714231037598750949464038689778657150468715143718460201046533842104123898396800463548391026789901983291807467194239389075999866936030891952214159360644970399100632419815389816587168042309855261344170823430199480993677759507348745070048142902407240437326058971168349800747675167784329882229895705583732727301179540684459660455775974652378261632275913151445299142792266556929209931076221176641893528990816958344141872131545997813985368812884031946737587211427478006640814905808019865469884462175851784446165114854798581723866757519090925640234349161038562516889389725631516950992735426257580344109359417852420079228414739392466861889413187390154564403996627253492609943748299202482471476446486620758913001945433632480456857900509654307655540557187728270706951315690886347854955823361127850373352507874578030990849900239123514698936604729998685987799373462948143692550333620356938722255874659003415553479330285684318729335078083056942528471119690331978241859603900235757605842063774866134505577494031108325341513254059950163982595001732619948419064644346022019715695824673452776046590217258056704259334789228708328007819263742141706809705574588249748114805748392643549438741575281902007247659460953463442297161764763715111380386019647581647929064749429260271184233308743033971825980453873652102814128546488607980906140264949113280094893784397715264512009263043351938280031255198484328228209405756801819325002715978662188519900838602593472578517842377008850951861297244928003463028773444254427944292966465200570689224902786501113225913607348868930980104120708362825954295699087166554000209816332514508654032027078738179626300483130556253609987316619303985711365122189585576815315227590465714958285759616387352612148506279323788876736915979636063636325910685903705786218621900697600982194079843173536659918421159978729773193862371557993223579724918754547131613556856660249328090931385450998863012296193536435858950106796270467609514402608462712097590632520575462574042384164736378797370994139522716760586774984773287451653402488784936295337226778823585441215675514813227250207089567839035907742462212750514744913512381515228421151096234429945632936019012498184668386550636306950879250155309132706344174107726893415351295706118203336197074315876393272900098181420996405140563328069398417145066859635337492856643588932526726329851059628313442082953041379992107752186035018522450391388452564926819808551445025306621700095817454971942227324652011544945838131985734220245053989164505324239005120268658269306272402428779771852683804606489076838861534664511870974341539564460595615672715389368142265669773819166764684181278296004903985682485793854160485161477558587513470715853739518139411284013034916091218648027396983422250480350771220557896804903989216627237637424585312285839172402101058576271863848907065174778156793614576650364680656755420008751858442006412560640319710673844007074108439622079931072784537597943749794604249017952982288610723748988891750430174744975658682052713914282560307868776723797998792766421947791598005583813327805751792212372248895093765933740965112918349463465712913117241832145966466640161940012746518999490164306809623516835951231765038552614152262841142867338793488951689184669255526523774883172792013396189290267845105467038180040736422371405083346824101679155573915178217082342219571821541781857234020326208982275593363903580610143801633236532765022058204640579690162200346237867197183978540039839660050474614293719615059892041168598513879936893721795366239221250829093233603350899779873240701197723013391292539116563654132994708200793747391735779749649944216284143778982483220672398704597048843908669833492774448116309784116148241453149018200590970110607884158492223154327645388762489265726815879202553708728972950703326699788101913612094453450702658886049838989937955680665643420359132218645025630941054885339661885639937101568392999925074234953446752653650935691988334824023975806743463259730791681859537720356503393437386790188542263190702074940146148390892207572995886122879473581945626543075635836906531755831943373862795805622148451040401985460537485287835930722118742174570901228618163034384936733810683107290774766981721544049863147342033508110717382525334702146431458460989831259703647270818460167503427496853341647967427880285118873804944013630237734142239653849761298250806613822094429346753845981615135649372939047607478638236566622776489515955665041361131618389917150679231234936815338266220124654049302837847486049088040319232003379188799202989214477106667383434621480162004682758315370990816253428476132998618993854165022781953894316422005080762160369150058635437092621347247000500969593217983824146520376600267595221496701431021706143413259376695256660723478331900797522385265945692008771771656565105000207500061558534784209984243699837032788193405981182117090198664182439482011518622770390219884519771664330312347185926049556929938294631775251939379102024446654613387022861812441915268005053737005715076249903538205169270920523600638818114935741416681703179694722260956697923285543316553258716332450723016936769014272760427316453343524505232286636814689296484904161487866374943729513436192001479048800944362311048703824521816089187380756991687955690606571932253723963543309033406228641268235723170928541118060741013451475282430014256037317892687073278470048678308395046263737867764664445100719937529549768353312444656817556856802695132071775105357182645551427947804075645950437589519533853301354330294463016077461892700177783823475181438508186530646432421392195270806423769803580665616466323695248397926542690292141491478550037906241162945038770475937413419416281934316984694416086331934836412462418561611085069916802853352393766302345582099935047937213812559632921948599151112306047454550739525903633432897894029425539285848644978590310017416479486697436629955884631057490782094509888038541104702619502997465583946463463922359121061875803810003254856713007707919764840088708657261700306803812178894053680618939964682229701787882053994561162246317604050642610483091274814908316690926836959691667165379267112329077116027850837721890385348615570816460461315082368206496407729743653217412146727234873840123007880563483483345512337812014626707425597931228451456438842325474267837122550923071459270011237187676838987209697550739040505457388084432393304861421827986263766222939642167179160858840413886792967179716013542278760451484405586616202510188071543272556173948360452213495932050800552761062749077089722800244424107199796107625838434571557929264552671927228319198539745985449330564287817731435907747006878176240027964464502795943018886957568668926373760555824617595609593326251257441223280236980673365908355960206899942068758397996464336757904269989083297414867731535795475501111384877184429559489799219716886665686050243806348437345854108153171800184137643129732514173934911049832831617465123775234723359934750331284780543831631870920092438157009767293982559991859015691492871577136473591496474210400052270851584338581827315619092411034489169248833790552734690329502556246875801377603985039937624766904109367026292666325350265888888727547140280352494282667197883931347725220952011116467966954535016252455168116210074538122281209929270177491900950544627524044172239535972982576742748638031062535112124520784490383035745980001308180491306617106823566187128443095989463808075661934240857230832661267083621062506030429209135273911999100003523933665402207109299881655835420831984379603136415793486402446666860919865940926328162831555457656568609828085575373174225812954879199719740958227747318855726285401785645820624635184156321618223958761431439013137094098046091107862747720837419886579969236275964984903413050288207813443393795301979338925948324546107980053563783488468055372167534066723763393659131900015925875574553502392307567280555258468237582811400977268035047008098484565001615890055037755252344631240671352365101377898038780950837052446186204242540671045768470557887891333253997332970618821217253540270923066048785806175002859605053549281464871161157693956851112721805590380915897976044861927957133133272202240456779424914212037448800008315051874073546958936645124299677324715994728489035033840558082219320406316769142756664603143847634488013508357971708258871194254165544220155781606893730780957111063480842662992827451925197211843216187404056816494414960082729639147570931012712474821293904090365406712692072931624504945910747119369463768221219767389394897890872247459512070429724055941884289060599911513589172474912298008886347355785153289174402251464765084230042345245128290919790745282134443216377522383783232369369848108714586644928164047917273282846616024514567490180268576595481425958118908453669098140567316914025673606097384214014952370554328761795504147459652044461731215768984173559693955546501492666124537484132258578386138398656174726955763840218000564135612928711459564864929242606086479307383248461394612142600080859934349493560131117937357713836324060861310379414467581605574411087336596987283201758267576359740866478595172459329037974042803175313650731625504810146670831662118320394133041680456147862558874825378145777727921087885179708324845103299620127039675955105578130699897794336091897227382112402807235573130486425415532598931965342289243084794604795252057721372168286771225971062986010540469196546560327912100501973126705614861881049585765610810557746903647442929370423577578952334558594769473524256292037698618243131106529939914291484615754236555911840723824763008807333644869589556547962343727310974449544327383955363524221081913694019160675101607396006629099635681858210245260464814700249252115280324432215732792146103967062132420276082517047000515287448565329610295795199349093591052308335314753457522581426334104622747864202124260210669290577203944871538816396810782260024661781552848317327016393383662854298136692851285134779875732412076050285251275450726947559542742102571416297305304123819375760958003760948287639630332840282199902773148785969588059226169334516007190662919973807001717958070004707879494857170820427351738008484317946824278440885589718933002352459687217099731116589679924144795236745229322618712112031660105962549926773839506743696030763058255842010999441554721302874688926987839460473022449703666212642066025543749470549414160249339104692542780328644581233175165291597400166180371011087867424187788974440070617590593557191761103086921473486376940856801758276618298207789423055817907612289642637293087004353161251919750806245049442382434445710250527726951484718350046226339308003499416137536717344416715280187717808202085300468467699731304794422619874069083842126727685922028220697889455906725096458107965072090388912341693654789939946208909787668831775362480988985006446292634146634001012449858014809208830775775966518638437378718791923591425637385207740162209259327082285769762616958045763070014890344673079004596804237961944355702451245074823994066959356679214187234401527916559388177510021395766192039066976150998341856873444084136500067733943144008386516609502471595489315720831793369510557326108684948541082955318168899494665168148028342754347294286757488708875485992626490215439564890523125065134266344440321477010849466197918707307190300460604148267942294063814029829040326226449769271485633931965841546171603026123663735712446397037015062690941603395865808335864611462977433403765063574231063010554390684423448249955804115453932994318324450693034755871153633759271251420331845130917004345617276412758743352233142056675599531410107040576549719038111755138809842621918337990907136439122382298823058805998118223437052361231252742047204263156183773215444174163995963868264221069664835276269493769618351297653404879998709530605499637700935800757011834153150567238723764091237607047549870203653128572523448689721555795088035579798597270324112280434591383998316596927268015450613933583867330724850725288447915003782792534783843782607203112639617559118601585690636968983362170514895772567927522527303618561849045768822652221479729832431375403720683304674511502218666038595381482424396735526819591494911265049605477560311279955665462470084500471133913092878528863684089603525639617357627916650318148350325854405859417527015049221254476870362961359428104230131071343082011413022391493811025942252559281158842343060986962104142949758742347232444011065867187827617683064787058050985660866126559467282088495863135098282695330969190649013474719053826298819193319967291002860666762379349592852362144280128495662225738017230232395828747521217162649554482991710993945086015877112769980585307646560741870980430172568575060881309486582809914846034046586037223583268259872553468746709404544744778454406868708387579511654531574439917466794350483896674562513100063852613835886789656543687169167806765486836004675272954360246849919776959818336963495657198568742627544217160058702951433604616003018636263054836778340401589217000854635896476447668355221931032241847231695900882541088281115494340976612490768593662156570928746088559836127925891498526938940999218828430623143566559988052892793889037160645467926193854074690640291738361394064434433334200710024771317011361510185490856024457390555821414459987777770518400505626574176258947852469038980719748986105607650884467150912155555486655975807843255123221556124082884849723110093607561181895009307507194874970744311402226474831077752838363230330249384931879410530955092895517957474591321609238359520899633620775440305063177467774879021989094926889118243115540133439553018547021752215698794805537422482042731764625061578593902256993409130597718364467733261515878567920430036595862073381622759856891844753412434354035971063649172147705326793403306988209517398608834751581020916138030181971632882491714438943175137390108443273867888356158375769571317261671164110476749290361622497452610667042964496522925053277541425355568413822536013558546576478991755570604528900250742097020200235362460964687699278233360488580757934155832665906608657761617986441051533593132623493849168776592457723918960338873300822650022947120952640402908670033573786360262816895152937974931747772062016962611535828525224906667429215018328096555047065452888662111414417581930228332405021821388647117616366091297470066263632391684929169650032667668288442937919210308727800386726102030391073980404308332950793683712168828525544938764755023793765926907459319964879661656797892836645595358548091183380588628590179711968069904770897788003355787251133846696332963455387463934879004094663862641326179918341521876148326449524309954000595380453191952128586232530099138641399771709756886024913473011061637972218723257149091565658890320953281809747406799172488127205236903687723091127212974199365335626952373908609339327611288962869509124864317612179456035333858238597006707091766439322309323083880005281153784515714451372679773961634826675837533252534885878406497302037037353363699121701880029677216624364450764057693938416364013215261890773366147223260771464943351865642890601616094663525430026041204573973719425903866150896004756494889633288188859166472050024015858347648014337914725532885330048499499803702034656772848253811032997017191222609185477591137255503660623690960633832597470167135471369435406740932211635531967895810103659177845871361569283094836115662075924269721595316369739593165643667490047197186730130058161795041576251176230576619540111902622613040131458770014504536813084962643824269545359494626511025781348805593201686411607064273949423932493190766688452043222181316125642996656873826560884476759770373191961720379220441734799749312861645874702974518327351150211899319760234716385305636132254235176612047728453667669607271413571532177962985103911612446499671084933312741870361297366525399783181824475086143989351846735949720403558244441977599284966104021104545152031968960443566609971890540358221558181666311769821044680931863717911108037848219600590992943168783199411582687034678683329402067160723951329515327112755897997910903833872272300586215754433305325784170692183873192161839395180990347253676064747275426006704439259582941577291842015053089678571336514078805714574139641070882397755636840331036774372123179142946088224823581330209722578547408254980548962013492615990031978187111840534807111348008720805059077918046070291040546707379785492980059753349583457652860801033854739860836961654460013686753014582762131483481089888107977996221978745354027484783163909285942773079645720880177972039615725042933534398441857765661643131358157652664379231595823309380135560558983961458797755067225007922866417780504053758321533248315594331881151303084508720437094534391695202785299560779006257321313586165288165978558461726242267208727473743418413023152223069226381826753306011814176973746897458115671704791734514858613356267239433459067083088609597286563788205403904857992067940405779333444996250425135445989681205105488510966554255915091786241411291117689668684816808756841550986084925317932347809884967034843197009296717006758048928607490528464965149706699754643875838661129015315403730542731757479469604039020365258336147762436125753670083693480861661547012354657572397122446995427827793586419325122957483339163602996055065575053230204748577311716040693043441117424590053995502745884748072733452810704861334971304310649508976152420120444104034735257904992416418782597641174300685658913139800106270257492938507716946011114364067167882387644619975143246484242479053851858483189657728505248247576214360358113174807298843906259561693940555281149463404534033039315529688603092342078411109972312619215813751422003001331482960180247698893660149633894422776733821788801595017862669647769561393300378963906947303902489346982999368650327763862060197675340822728750671885116195870706736984578811526045168427893458154250830083130884474159999242842884574082928391254501378255209918395349870572546283497331284924535104611986073813005240777269960802532559935653722855738861741355813420999167446067304700039605341533621004195913787129260278581953928531620318926126445730483328544930519148710982757155077827767332644201868625318772295534635585702215471021018402481446882335564948411920508827873832333621514846135686934304132070853777440152028761735308203823964381421907497075468699962428265739220015013082215271247655629280630226535163497062488263679943197150013364783945341452264623796875932307420060593703107888966092500546613668240817470069533802049041178598015417465697869178749955938380126294646111117646169555165102933115148661590453449194292971978060294670564013513146565033346056527634571132988511743602011033082178867004630491209858551678288137495032649627926283926275470731963783157630790095627531776427071049260665352520342629236256553382875888900178399384217960815934296345439017931485174061869435502164970183516374865056617584732876000042668955215446905221213805503301155711464763700651635080219459396637607761958661248365842823092643958465269479773202326443489614912245182966091864120302700784499614518158257732548833998212741765901647440752913067707519531952662095275799073323684885324059491440461970520914054550972615111141255309988255083295846731838226809190408210780413906358111133388780483729783871511250949034502469199683554802552139023760552338978188474008936628420963466363499356322237290173400525970420323497954038219654018126435439058244618980468402884375046187207531348696199004073650279091338068410434682736567724050930678368953272571489125905739634921250262176022254590559097891679706390792504236634245119618596316068510554345981458585786711826051620107533956568752576839580760689057741061732337677016387894604675725358918345037741092208886405659595579353862918211218073571046378528374807135341736668743445362856047738420800186839593078773707744824664010334316899420038795905629659432085201956770297981042955359030099489400638447430594926534638719887546399698046224127664054887527404313793075557457232011133638010771446279583888216355637533703233336936206276127314338254119771741997157124388050035679772783938046368840896890941583345662183003296773571012204209104105439305288757109414774928783296297095777507686371142675968023703930418755612599675082072038233220515471941895370627089583451429568507999796280283840843668381142067488392725001558497455532907849329166586787271903021507347794690236745046676435844512894695133417370575413715317585959179698049599908829298115104119360430921311433813349463302623757226161693135822391852119752317008152689697311630946852122499856224065622002309279439539881145488920721271998875266140574807494481431305437277346929877380155349473341416902076812180145270786532820729539380972227834817281702780201000978462870687262656934192045392253479953233209586393611680490509337030157532131623337749488208150671517503550556121329813522323022872293933095310051556215924729725476488731034308602515365575174697367288974858899158695772452285642107725569244680472006901638382418113875761482670380026472543119165391441013475788639032436657682403627893151764282435781734710099080723739389900929182863913326688663275539821238662970055113601527117615326690727080180349390143951905735820643789102574422306181928896654712211945643599915803011879711905024468513407558356704195327206398567264776515774431604804414873801446601005865801843343067996812370587883217742360167693967028019529570638416813387494850424910979445619345558107886086812903639942295211618479790049176753651310037913404955443686649082026206510502106083286442790155893169394573220166137335679351062664374945096265868152359303457748421308080600341410408566471770423220049788498132350434378906489046997415855921547730758536575129898400982008910973109117558148181373934443084535264719790933643593915680522491768292177226853576193689725969824684382028504086410642864505342908156987969068022171079891046159955603079456749996157258109079220094053924511116138486402823150436264569190860109347983935661100454332748522673355933611950532045707774733644981439761787297264895160059528876685902689554672865170888907768797777196458559305995489357221142085878953499781379454153742095692371480394815164872423317889571743903270262747681695883020137804343280325251577710465485060347267823181376241869144013998282762206569180426144471660975943693357023047052952528961579877567594257908919572519846636110213364499548143298658547283054701353528113643599424785889698463262301892498949349368101936837800760332297563663051331615241037131069116521562633877802384471950129246474016608876108881331251327298775957224889231401386954050313626556466637423301038633236791660520369791398892729184338046112082164754483990358102737052653217486149479674455582882623353819770980820548912137497583274224756419944780606030994639915607776196665997259171695562476332507799093142817838938677291309181462101314398304376892660081797626381664924067074149805932974451092917616945838207556497500277160730607145246805053268048068734388936827680044559664103958248141916337808745155163024858759706202770762829138865428715077082506201119558420237175286458772292582893972732318394564761966328794769873819552523265238640075710936353294797299458113709351584968238797848706454740679637179253592041220648649821961489399939951638646707614410106167333523346630821545025198642825394929169668314302151577154370706356107930798170954045280153567176929137419989546688442158121029219659221942490973278917019629011618793909796374239199872219015136991278818092895089884196144737859395695790399040416556455513161732584806283278318308725070322551096974717216033373870561693374108061639142819253715431206949449029455460008498945750286426719444609677994090500634267149370477638940290677030369976246854539801739788002711396095703656515976446497798588730254073700897919137983802208942488219392958340742576933995153114068237056206684892367239863870097088464933059290915415154668056002953278313321049859791902618988824611396671607794183846910754172661149955894788131848805724868667417225444776911155049800257928471718202207966028772273434290957836853695091917800743756952451975640568049258281371860388243580661482296775651769573174081063195303290587901684128097742138448042501352554569362510434381538851775127803159680079452872076218145422957944365786561308938008314047937915265964199603781523843504948193924937271961188631297579220248735073277135279214245917940189455399991740189964074915029054366568580406342477357005557121111772890156876947719705676807118301293587722681263370970812004009912987503797126132382993247301591661057037560762098114435722978762476452042715228891683709973317688374816552682864743356254378457972078390448877419154252259671386112792561499160736663662890608043637707981288355666120813043007054977144761259620414606578425913969526424747526759395097777116286172365907803086720545724800889786835439275335492429898902607105554037873388021617171285225089684089189280634947141593077792666734310714490576781082405129045351747814484893991450765307514726394777741512561835520784090295229002577345454280582117671298576644518848406080867998233966249475099508598371819383820092887990068551788751833733358083729608424883416494296611049306136406677998974600172949041745301259494981425254853984284399013421185039188560277005532502269595572544338279394021077509357819282564749092289196140697025327487963083753035636484409369592078562104430211716343399383173489680018748121751763863079347245611484320602236407822741114148007449246529897341391939254977272165563447919818424615037336168718633165388245099013634069173417871296081221876183278777341686325978163093204583170562363415910703929809101286335081170490330614581910811211445756977775929924174755398107217529417724968258753107431317298403837933860780680335392835735210316541729172414685552587246694569872859034889404242779482150338498378165904560711529263765105487414344188326454876433814401288019779417593876247403789640451692687523697879995995203704257407407214140225978769611482934534100168955039873677769283414003387160789971734861794465135856151365019551823792877557532577896518965206049310752308110510101558122648418730919145180458085832633073762295021788021563598080157897260801897617884743311843199102226960271226554841854756826325615847595424522263652921541906575866037160730394445851848317125711385859851859448616491958935419848119865971453088617885685291541950367309752034140228789175373151238929887508351714998604122302250143917743197518294296800615842170945417067935437026414921645763241097890230841327578401944949579146579947610936749070137128181938665066101970635873132028709834319490807971305284524210013197952830571206372043352015028845947607018489077172353161760639969039822648340590513751549437431313509118408796640476677546170809372397525682045649648768180870860422090426301635005357703744826275456186952064346334096696894940848855946809845104964000811751456325094459288046494201787725038127483747664445705921686002889072850875926786902395261608296380539783830191417327394367045997426664480719362295525828274424221446981757807137552894522707583605409499303296650727552124855379226925927337869888276818079118598666512601444347408873972228522972674756179938920956148448488345116452687884893949391595859701473208478231631915791040600207317064195658240227247443675423341055425228775355596242188382968985451444972554335353321829297766852494299688562428262678573163658809364098201518544260458483638772607879424620255573036937232151711456289123199827866512895974888836921945112694785256357473087998999558243507783603407452680216707857019863116928034257826422012302100431739070825863469000864276795126763704195582737195504035766811209515030830685086031421403552732003907193642165665949825779813720690985090499191926622205353530744551776747364883039092740459463573347678855577531890547547251721834499190485727963179859542617526099846246421483035526982654052122954490609147769456903152899820492559344843070619794007404557079512240966609608721664506928864588356810014708093789909228852738935444441243364050587500729788631646814620834535169761053585282749446066736311403889964400736033937844184410502875250739203257443861334134471359258812259141997976356381812848203068065835078335418521578873635332593406964923233881096360749356756265353163564812214868530063592179804723311164344336666600138765808303567106651775516142844469601591490654706755845747671493381450045306648215068201529208281214905884289044355308807689007653575733563198437718328423808673202256903613958019847740272521646837606557937453696651509211762315571113838981874882151238103246986810526188372634654032759382763873394450114328694825093750823113615635612366754669428146370493388876200289452838396176984439152763410454955032776484626950988215963545619698920777399477823074191361565912524325995273033709914751812229744856051343278652738742935275516659183225962939895683431048332075604708955720754102813234635131756092232862345505445449676273276347374650925475245956963714362353274070668437187754491118553979584522363942661898596110660952513352202017009795848354980526049246018010767108871192050981620338603571184966926774472010217886596878186912892267627773226618727173121948899667102824482105621026734421897266294734285361778570301332782297882618744142799439847114267959430992226245205002745669095982109805237003800033728027050170231041008961671830281152428501412772104289903204699281949508109944475328012362283479589259606423496717217931119406957076329521846164437186562836696573403385477155876462350841316241142804865327026457550582413177209988829382775437004136247833273549561661765353933633592143861345186813159252449551729953038460543554113353688134098910301041432086614337329005956949267973137961719790518756034102037455488489654155837022855221807608101979303474851245469628268714255844357472856875230616651492256236397058792329837513952561572542124514624355247550823412124606343687001588141775665717092388252233656737949943953715245766658877085420155107173304178192733913914408198369280811262393943340728698468976582038934240977313274835980590983472679328600198782304924980522091472161244780944155881147864362179090818946891873221322234571506670525447553754318115896123633447696750982883523188570277195224688208093727350541463875965974774737857057152932716109167154662492941657173476087133654419743372183147444065495162476583048204925773795991625628968603576158310082656782111316092295214777704894594341067913118401316155739932731907393171816258751886110853166381171107862620622450240149981556682644229520527209705237003675123069017565510089295838003781345142735132936939698883475181313145463401307795882154982902531583124994668421623702379704080414349061837292319836251390938949071305063683879717744159443969918808143942325470675743872402838527678874895672250905065727866781349009616366965386478035652934385832097711886647344936669192723036961558832058727980586170323939275250088778671402515847663820459397350123322544825871871551875565685366144231095322032332588494586650078808021451045604241898849301570543893901665493892703884361366590832588107754350847926967669574181498458955696325425895877292240450407285384039273132911022736098935854243061358274361347322742513646625071320710181502201807197161973698507057280699862348773922528548498842100117464639542925227150637822723192529065357756984176063892907988232117395284152470597321998782105692460694145916472262388392168408436408730293229202349352366370818007264190245060519141769937972197242266437412056326737149300450064246010422480138776463024675901651720936572429847247887480562818037510387806256748069519741935150865663554088474376558129787050438679145958767656454751414283623174821618526335393060461336785161379626148816023556151417725783505789620583131642382696994484018074586050727787815025217993166450566948115546176599575980361807977249920277974530802465761903538286305104058767509385530124233900217456915853722049105362158287647275553172341886357577516663758707274372843236368474912174688898692641154676877045940667223844147898387542073351706140592846413174836176261049142641836664231407344086656137272931377769812709013525291991868650138225886792872190498170532725397261813886813201980611288195560379393618136312494453328300432794496638332333369795662290121018365452481816944350018213706628444112059429716660304469080084203299502664545567893972446074103196918106844825542079197630753642574024957973221553983018403405923756764875542036103428929339516043566678922968510520532673822461527462239235716059351121317897372688827713759872591740019495286525198321611275616484063567827439926872734122246095155948613701081034972668755770103845469107496713019890075278573982713675338514495189493112260070473718353837343276868739414061585942651821568832056759141273988197124906081710037632754715392428944140113478883702246353025610170950319266560931820643464472994147200467310978648397770453799265586541459938884483399308942864877815189392760012727610414180418872294311689262472492039390755165896590319947240733843939494698592111556824645589469810237318648893123277838851855891539670295288624903128455865400083541406340319334193313517076571217449759807001265715611853007555928968254776676360121240042221017651964522885020680675667723963251042994627853847976031123332415701919187761614752876196722463576522112157861773463767425167137306940742113412455569155381210909663819530784320398698848256445907577210978566726568334179181399049668443516298218753868050646691432643784319749750431351191971895021913073643601409464499402185794210942034633333871164433318484501581850709980614634647320402333676583276649960969044265332756664449865640081803130170078241380960689293999415918632952562091470414562634429132394931016413665359895589501209702311358649266040951093787715422473611542272782625597690696883900958278877683520612356582972605218345824116022399987746903476943521195564745666994238631500072998722215012208034937123278394382688684766941645310512903661477364702891079931769847021554407691436476298230084997448829035914351007622984208125100356380747498201016182853038141319910280988209901194275401036650271473478407115216308571316937777657705111506019218677822992661610848425970195385253696836413532952441729334826281548886994192803455128728044588697523539370516706454499825038358070132964496061578472859402089444169086703455651903614264027337293493587809757846070096853855715340284617714123200258178673829091184149654790998416586426043985590092077632977517824019342833338288458732012171069087903254311763143071351135874268005212025142004574712481544777567620873222881021213573739848135496800362291537981453592668965946779947421682615040532980343332751469856340320852049552431789932295821166667375137433129197566928601182377080064170338201243864011110302101008218954972960660450490109834615064272796612151348796979238192166758886461719455100659086318129427267470359635442059401000575361661545858658971502993394451816211889500919144546310548232781547743319624079713816489786890360094794435015219116062902590022281163420123052053138214039837034228550070668268906038723050243664299998048790924553070407472306512778274602574391717268828364500565253355039046608357740763163353670604619011437976118303967118902622139872541859968681735601447064443572600391049089340173815451150530265619691448211401694485435104851041406524391872328668855946883894851952083868273742650122985723108723181461678270655437773751287398919976922777622928536377093165375083893900898123381410414100590478754458367438923504472642345916499653084691557590052730591767109710781938715445971317917841163445254624663385551355051255484406635503262538754647512179764657562632965269386558263646352424984694213983745495879560981602058001818438117754659896184095842051490093662708002366693419387576987634741428366786496838969059506121245629622322658474004964836304564229828846281308759791835677568562298466557294546138958206487436476993292630636641458054864053395318852122907788651293991899076483197385939970241558546670535114194024018048195362383856080767713124889711896697679541587289207749056641014176534311960712645357766222922877366077058477106344047359381309385252610270133257989923530070124008748854430564653628745372981013692314479301921808712441800715512670244023692088230756937615406203533020758008539292780308334272508390067585268726798905412624425877124925253017697908476457367147914500242217106016122668934514925688788267785196725934026348329901113192569358118508832888497968391461245752162237677238467264128598876573929772815231511980899437936270651601802211936606548018306300631007053732828240316814152893349805342138651537370703330770872869383949231233677224868503000086975885710348352712964087258895910697404365229860047646684999623644293143922482380605036950323711924574326391934750532982809486992372878015211301435498852555823430719964716748533972383731831553039619543764501491594823304634163999112042221717731724190427077705033638148449785769546747339242355979404885709363461645328362775698647992762854545050445490353270550947632038447078305131817234331643693510708274262803499320743291430202883972024711979887352395631842403413480280105495152348513576580064036068763388640223831887425883601130647231584914366854720372688561866556040670254995714676152325340681756648944040154140284326587095723160905741776827083300450093765205649735834856615721777498669835607982579206177110843665002397347787775781838647467124770907591842011988697660463150040547089656045160532259607449811266986541991515512425719689495318152877180886604810119367661217864070697277085121597107877644135974315735694370859685358549737869370133106296521047189038182838856262762104806946878235306922686762256285917415153018028420514490026763082854010811729082619143098143221759886426468291416852774501916788249718180431642215989674636621323682357388090936023901769988779582209125931783149788821403031447536997468956684756412859448018789897410828018031156290130116128389076238255655760505349272753246712925853624713252864362325983993312550189095803766052006853109158876422627666405408188860542975341366892531126450798941236867520148139409828326428971583768649818473304302745578564100767044338495075025402668905732700540380066176925726380894749449810438839843313314085733990450924515171718609095534163016222275291779851509556371544047859729897556176544494997020027735363111294754167317017382167614020320343326017680103702938369579112635018718739565900900332165780486509215056541805049085755972327233494744959998681649380260224804196718020420137491360984663632997850167117907134374438348514350213124104959040379963530508464203502470867004483252814811598394049089948709701509602916666756991318001263679979297842749144623759541728927801353682869765536101074060877240817093738482244995817644649090575475231266362072379575253742620042583996146124639765193590763586980857961075639314064209617747432883143882919869369971471499173896631529898544485784461886832874175908138404559552087284847527352022949557074639511076917649564388721023723606180627088833559990307478087446724508532678667153893764267867497637007765314472713243990835998079095174609052135519080875973168725501931281748093243023468961425483740836317306710922034862556998960389360324278647088064107559113552610418407193542626221196583528758819319313198324869862192888404566749222856807209015863472460355279198255886179696269180889743748441939985920186632788728122466131085847870954481106761311351562599900523983135055557387528576468840569012442516038620128930650463802401478672178487030969607441422162460106138222618362246015559529350744939904308299041835694343348290429957487220089294151303448674895504735941421958391404811822710554078107505301240118676507352966678438610329085067001202337348357171277326654364879667049270075613792633111041747547884667300403546514885965095833678487695902687636640663234870823071473823527160054677597289354096956950936252880523789851028112298965485583441917743578505475600424456906905008423660670862340399814499894250915394064371159016910714673950287287940571672472385101821643618757019985486368884522711863541048931282465066294735312445661716679213904886370017073506209533270106774420969552599544623462049863625244372252273457832773777573324801793793046711672269518401783672063543503811539422965258750827691404532300833333914459361976079568619676643488759544536570150161746021952431164418702111131763992362549104415811169037365123001874156884407974106572463869879561947159757443832422032394164836970961119520268264633267387052809415824886286083931147481114103676207094730854476177963673295123303037173771600669771929627506209058881138318198135143729831625716777618728954641227776129855637666620729012570277355324216845481173961828300993761959246579072107816132159695374570887096260865486479882567016747003711716604222747690897552383340567563473341640460198208225633678604317321423010611153804104254810047564596475778095589758736596589288825617581815131056364218529371826173587251210511207104844348794715873162397328556850251897134257944384341540511756874163821009286119005895048919732726488494104785815083639324326731000467756122391783823996151007046140128380150957298534750886065148579136237641501815164671018516379327394480381600002250750075265747519236062974086763862047212826591754802634851168169961005357276543561635639554175340156152876450301692480456768699095792497872293085750654764469083811366031739212195202767758625398992059905803700552882558845101429720476595276394245464073101709426081703849722538008350659686969354780246181834770217352201787420310372663885880312631947462046701127565311215039014155432051664712234702132702818250253501819426647771519700826392486052065856692998547301142280318671600820437462877570465042835719051013950556256830230055552244257061193487457170068810364569452300644251655675447217558808529745749855502424369616707712633360732089747837891782156492444869441186120979798007530577352565617495340252318588401687086054951885806359370719182267784927420585149434600405747097604991264383852640243899455188846786143621573672303552242702056636819964668647228807961068670868333174537983795912209380040761834100349138010370543550867791366175973116884424570842411462611306282950371182607989885211212037664599089939982384354775336343710434684661189258415282593735889576962703074186070035392013694128731372808443825347128826546502340077294447430713698634582836869304568551250373019398012171776742678233974401303585327118612016627887909599089509584053397991441405897905295797954088918792818168765352736489725464787382671947475520819758545820816247756035544880863980593578120442960186912512826049781896785647734552104181950269929035983220620009044235596096751419219007626899121325245745599349993890893242119770036023322305482383783306131903859073935558376858255467744667536378729486849392218425875731385654980499771773321643251312295654047652695664675269732327456246907093894339681569149798674484091539432265191546900870718835620075592017079347097208557340715849621043224360290885920751616693248173649725626601985262248768014933701185968234476827017054543438229961364978569306539405242052260912564987843199026132952745449472021311434269293363357254039046007598631254622786980400080996301991710899597628308839153561165212773867471355626565510383802412288112265386115847592234680668336591674749260415409941198870631769150778474345526298771091965608724703979940597832811151063131258287704518182494898727452193184598716042260235426768668442792123179167729657076565981552392790912093141726932666840012273711264542991166343993098253119303767966007888987680526714076010650360592259275435456970056819752553686800956099400907579162833590686216114328128369004914102587195901213895577296430914363271879863781815432212980198435578381249754191437029629452884531855356176553316732424484699600781411256949795596186334083073796726878778178398154923070588489233710987752190955359783471136725220225414276007399067135292677567791985870244487082386481185135674286281933316596753181236550017621579565247762089087724710336481436680817169121527897628165323458770602538964799333025969612806581444083375599487502952524873767601694832844795966321264525709499192547475144725254402565309733013871305941239766992789381065023406661956161004201140780314023152967181129580824703657781475729253990847097861535485026623753763669084215613626954136901666029212476895972475094808726458756818105326989763270406499261984589934990056114162260977358690684243084667012827045821199859299855432094332405932853190547677717987371905862373224932052605159349701852934529261886658885345426128283777333746596897728211320218539963810857666628924801747286926925749634592168654632358122110642230745450006663659738191609420149197518207165536395800577379379961289613524644899175546188231503172007810081909449064212426299424784938654869479379677499554108388958507975730434129473967641006400230396753666301966064111215248977156274033989812204460753550586960556922104383463254067980873169028083073512379592484228539005765592127233258503291866602960656210148274132438699773500035610848471653588834861526195881959420914235813703669020738985895248781733291396076769078973871041720674252629811829313584159718496994550319122471429816792876178257159314702827412029789336764130365692166539698378986732800295591383203148979263553667912727812289108983681769014228914219192176952702322147392246002857263757331208887694115816117131650977522550196505043204189842530160828353289336249007851396129600741823098417414673064871039290049227042082098634067877292130551848122071522113056594611530728750332123958487906969967223419907688646685726841224749269504222709310209890138139050636076106737530480920709459492391138079420817160738157424486333139591490201926991688408667961039733780909065614538217534090469891885012131524070010729424388984747944801398081518939698166039603292251645551681340176872530453786977552196647295644676628771234819127757503037591158268529253070985230012535532467162244140009887141411809187121886855666792418958657673129900723987288268315708470413522426404443279572785458118217057152246833977762582311075396911362431063619010850536918398810079134685366306862245872577781734241511529924573725563840603924724695286379498755224473369508159198105578633017518523270132926346421412379056051424037892282858595440965758446717212310270859294558136157381601550344477543939807823161919592390417060723631080060184452185541842405903231088830318320796296570222357181030950382741954305974058087404152338576047351704223414627544054673111026841463004476391319395730140671135131620248945176553004426270292501201699741644026053962397745576963290258194788979790739258284764921839547443385004805840624206777844093944898538932726801986569536154446934533990887332649674988025897037106432271163302466932903254572553993133082516628792459760966945135616339802913693410772645206781590602419847844088097506839902650104218989788474499755286605414583708989698764945432748541613736537913580352063306799580064019804619193702193867078372923480731274223171970482357373473002504889424977745941469770109637788908043927312374546452213009056616794043995939020011046253088960441092988376255649556897983617948051028173708762476084890455611089188234918570359579145605366861519986056732754706343242417888722553072646864454212576003839993065918191855663623429071235648169621201776225584553740080512061620460098279739323082854444899192174325887372680625571316942514245971068679485298595720240821019424097495539815701366343718171578470415358226396556568237178560874044492262552265873344319130211788046370833365367322966753881290110459473861949016121229110343926400774012243855877878420754981296972661936583477103873554846824085130418181253855198568777090771383733919593118167189359186440430134379135260986749813662597533546994517545159453691540638415886591024806776059649481133954656765410088288182581025140089473769330401040173342018504558977131456211670401819541566757379014487835773508133173237814762743649268923602748562452192833985990246598742248885848708242687442520904812143805030681962282293538409828259407369628684414437969327969894908253264283169137565739167656974395009229329924780237030386748137614627911270970982838389583994393091222874577153785196069604180014458543625959700377904444166118855879637461255921996861172089788410751979438140149839890810102561352377034466081244920566121246060861124733710170902420429212953744195568499720541042971137741280456110356836788933745718943862051171438835337511667817115633117549763183248560070861060017619998258934248826286417166425382344045970536180318086361687730833033496215404341424337604365236882958193258242702017665482779003264094489969216671758938544231698831054066670009860896641534267013588422258036928180154186881955904644269682813423231245184595589204292699157895004887214319069926150725161987616327335878594767298147812454887434284004779607732048973771731414905417321366605245913421569877841744306499341640247119038828117905721715782156290578005503903398453044711379063930807269423205216333858127503353303499004936094953925354490547324390293312031312838165773403458615565493836026371375959929324663111343660287376436719741908352714947179633395737859999149152351614785191090285973544660655604842031336964750187455179586240472295800833639558647601937235698672322929100875207981673846465952564658489000603344971446524181449427964682339091295404458486279693331822530428686834662086329243579915475130599588170273191464117713369044223946257863193276901819847935903966455283798794481152753892091455199898344933721155975419202266937728483669108452042802800912486787713697135382034531576515980784878312867319742457599236568176571298426701743846746916860778358541567884454178300022047448902814760758007706368529155468776287771065400344259844462034487208281365949232596892309542249888491074282433851824019194113379604922065928397223315493559604789584749379141993056424685883847929342700141375925250363257425895487535560710797119600878043028483999580893253805698163207884811177671938166211016740043773078517921136038866316743843600600417306111627433485742161351325658918415122296257504008895587411368709697906240724325351994210680119094054236250622132799189746882150235420676273013936864029221967483867962150854112606247670343221535826100865876324326719778382035870370498217336436096399265418065243072080987990562615260028508177433336298973404705838121510525601957581988165661510110408180162172862871709268550114169746207365164543455685257175635493190056292158076323128656471604328295823695305476703491949845760294400022547152681079485353156181499742444971738538033818234056798623778039836293912650031302283162266814141372664191985557824804501700592771356940762921211035111201678019614527144078425000480988376267804409694634615275841410657315452438783651806146313072847757031550474026324802835880845204535950547221970840238882351453638298771541690586895012340849162821937264857192695495227754685598947884130483684066900279124124513703388685830788215680097960272902430431289134355494494108319550250753032474719766229796614649428798027718944666893335461390365086897673263959036565331488051895533802664950174243775705172502702735869448175327845791835388126780947961231646124153149819357320899215494766472686259856529190401224987955689549663608638575374417829049494040344378904572033100512756851892378667742926689363036181599118034260412870490672112950010698313746584003900210174923775033205348109520983400786600254531631557739618153170198767010973034973401478098793945740597530426322877288886968892721113026426723300071195885013563155084290050021191840201471489094828939660757748371984107851998962035230288300138780325376541179518904096872487937289402142808238822129538230071031945852462794243359853082541438317824950952110466123431004452459422276584905287442776952075881859227773017233842013042323984760882017262549814312668744309730972928747460105868112634949296787820015811676201975681825473398914587041115246008112459990715554989765450690592209254453887618270646165965262322228674193893509955864484050850169480723638308248362110374808449198284001306160013312692568038811957684172443600413740128126984617718986090355882240669914639078320583217192070142458183236129108773576089437364273441527375812190681727604586332282002248126254313624483664384362102255387332437929399109208684335940869915060252357167701657725820223256480244719674584374836701814055420213667460750160046567457582289099810268924867101560023352471067994565688167807935014086932296251530556264290867129709871717748551289169947272142093062027453594240091026133059430666389689799077191195847276777814074233685616932974813807254018035119857344694814255545102467271476491197738658119203044950446563651545491797661764883021737465555835014963623293623166110967841451652712536104680976478905501061298007793419397837438037613150083042187346916565509661082700531351491981766072912420986210266767249849083795448894861611146463654754294589331679117479605548514616542061074176484562924774831093288917730335304398640301439702436464890802678529341057906936451190770488860868790874067090505240671226680471405529302183265883885735990302312967718288911433736781043151293845049582624086350298550242083051437617079900096751085985054360598040388771768804600861078400557497308478181644369729379909577045448978080943494051374396528257311562440773632829240295912899031145229439410050128620481898667688709817535656844900757593385785284726561251391762068340830372493454073706068235103185678839367474842163767040814545270613060269502512442329883427371236960444225124257654642574523270028128676003089688648332098147720320819877012194848336501786786140793454204646165162837231609806062639497162031227633035981065971352511563309874300103862354870455324556323173311344533502240574672664174486615161736170317653865847290492934370599696006117411351447466517476940159969231952441350556755670045460439933002715104994591469868275935447438672969210861665484833768053687711231740421555113199787398645623580868230071144090729139868457427888586231785215715334681890360636939141243371847155231896986988779608811354902261422380468719599165314914795973921327127693799479431338589356981821326115576769927211323552039757947173700397043327873483137986729187983543629492999227442233139382318383674565546305441420148797897001235734793599860924436864039946397872441415931719840416489353439888745746076241061416650494088927782056243559036104639170560648403313137016528710025658757615021811930600265317682547676081249545349753452803805380306956113245562193893313789687670291008506437971547082095879230773612621145791397794642414826181065765085212421412274386814687176278673758665594849764954617907637900348308185123957543301438457624050749717110772048829730286392882451895758699899807963228857927938633780156182572440549551317163702403741853327812040223318183688551824484692234150622914462940067538843449723952856974288030091917352676228454375224111605081408272453257759031689560095334099457978421309478684281941032030067825963605598125376595491709925988113416787409026752821894286605587444599596076266755184157447336849289987109216825378147098803581906276444984161289173597230146272020296413671078672532304331623848518315543087713173833003236218208236118709770010457100192072893484240894377215242185391334567370515920826468411475920247924105725166987425225383499952123849604871346034630350360086872031826811064732284205572651169352724859925874316239372926789357892298883752803143253224098714734174577980813274411852456069630670587772386936009956844968181004266959626501300584310500282999625872465574177515895451759551886788848707132034601768759530621704673216856186236455276908026331443557531725929079368396557461784668674604805292804309129043464960851693060472039004843159188526620263879450841159335380876837590526206515466357463880501037855900593023004522836525938284412306633086864342031400270582909509850853982892795229896182653123951274818171828069775790836269832607773753447553014670972015795636600077686433329915230193881022828541908965212342642664784221738889689815526430717935073923479074468223717389321368558628113499773509446635948800808337126577744081931040770175427730850283725927023754345755013884629767693550143308132319976321882982530698554299696817686471120665654500295723310091366702876325820182910373943603660301300262986473795210252254588219642631391624573632563947155994564412339554343385216350939704508701161647261210133778001807639879679548947210348165259257846525500280214594972453585264773357443230884168622516702128033759329091307332098386999228998788377119638328016732154309908001042139307643781693098079156279100378429654976972279043405437100017135863716520707711031271154978584754008046350745026015819892351959381425455013803359395907727078264635465482378833338493858779505216248049726116190619511162551807221917213347351925150122598345543639259028027675900538581940890243128494517636740692394455069225164980763972535975688893581784223316069263952784837487013883078986016264715317578225007068140827015002738850123515112557125727727421494907440944445115315947795450544774566342290032508098272362580784405526751245712047547551834684952806908606831417575618770919224892211876032500738133442262598328126698919402938676136838284815944783421766258840174644668971402327287935713438975847860363151360635627706730210392223713517504405020246886595422720431895741847502173505501210238395338065293692622286344395935732442473432682499652638398744014161685264765077240554336575095559699919890881921988354232935711591910417854374857941574326152130978300256441457448682462586509566585173675271543471433587025643118271419374532451489735454626676895441539965560481853790006560227751496234293664834880112363607820229917366843900366264327774858568187065031863457735594546140489027411388494886945431398913621926252186465377257377764979367986365967532341184152151603969025753191387532578307205389632965176193517341209412378020624456386406243354867789395516982191072390866963199880232439751455033496475727536755992713269582061662160914189729069097967517704152089889033661406486250878482468807273241530035787713338866851009668733327829960306001927535424454302820758665208701812442693544288303555751900540758747635214128922383209633801283179924643242929737195173343386131031374307546279445413322815747996429705643823433106021149765998706673517879810100887635893739945006521186823379065719654450912345134644314944841164438667140808986165983237123063578698263963187105332000297201373316703206093434804503420371815129800309841072322111816680590485146677332906604116387528543426042684691093008394569496095986191098880810569719177302035831897575338946798097856993536376519730845045812979553109749161916812306544531991954958533224557350188782650407626531227003227966732865374685164884958281142448401449524267870544270712634044186656265808072104212313059255503218671080196869584162725301848636299741098630057500823041082055103872620379066390952972527549354331260248726467373088259344269071563830383582531008395579454041929529058376925916984685411339138245966525502649873175432734566364212236630846643917104198576745048166562059315259190963851487863645148391117541498962447989957445826505481920514449288841028160141536401144860617195387749928234961290089910504180282541231394553966982656197591899522458183328785562083537458518971520935939072329422193963135096663258838974874692580713846855625343659301441707832934528263501919668716459238796166001294880759497134187734836702614610592134808022205898145994141511424842800940444539918984871398539036775092507166848734471318563810576101542949528294770244379606826602645618130695385076517747926881689473193560221956668762857534814120462276645583776466852272719686538697187080551288845476425455933213936567806621154371663919376300350620485801649082279779981815351113236066364939300832755832101501251205022165723856364970908539981368482900084851839326472745434460111137944948757422248020687927239782811960295454927317824567770411605604985358505990086974554843621127567473876183521421163088049966228484349084284975620411736377474870048546502365550419315085449672629892235027955125705575541503156220694413007282264096313751354843973688038723847075764557938372595789795865224622661232626402683395870965772339846400722950982027375705359833219290426109980185430945280292843427319647639783259256618529838495945759817584904032191291010226178269780883228450814936724752077695730064215843018196948867485451759181819554535224719021963801068504568369659146322696516950342930948165936581223098716461925658199601946176771093507499840231251019809378118940822328798146756762933274050955804554590704658787821631475704513188194287314726896161798776256256311357865272726846717877550912800814607339614419151716059815549462234428605215779522951563720789358961107749318813570453554061709805482081757920986496649697682074756143022762072705467037704592269780074942116014916259062674853347612730460416182467950544676842177849003966636579244112199980992249540333873823627817194040695521419417538273338586854567903767279971474251979723146917651348520582149160205573939093153885410862192352351571312469737299248859034706313552300758491858882663813672886394792781109810220845334570479562625095280688088238688664822924069008867673031626570553614021519215224764743410636331435375870066775077550335581853866622910441398531939853068450364921923756396889343200220001733662632751689758204552775813801882633493479596342904484132293277389547770404256798060791558400779330498157249907486319737667664197846891074520612861660826511952180347503937574051427183576363994251493585285492579746930467540249500790112781692750822467452291470404298453867710256496689190863212570556859747154463305538421435186696406222714493805650370498996978598315574501258567328301619103679168823510910493790879810416636017587905581538086347682423507148930952297814331822061270340962028733901295312660703155822638960726126529838829181322624327734712360732428110293660972278473445246227441448844029155545913867476716885958300965100332224819070788493597026037847560521620592482776991081128706318990542388233603120888882871049896872809334315341307882593441075667753165888133898844254822474529938556220157710702487474295901597571819111222192851717698087234636071895578008300416285853045473157925534932031902364595538244213901659077318594449071193955131486476540026653410030226507006107335412277078512851394049334114200781704873901476306757414031508219956299903315786789886280254281570856767573155939622799269842285577804851871746576537018217041480824011950768798662947836149253115855766795102239940851623365009799273097318462358554716661501021421736366665793486037238823148898084846064650264986327595254319189333695773862376421760375262075767799476520607728122594303320796083477525365211100560784218507881553458258347679126175759269112829787593460924097400780187780219434603281038608000204473910838694065111595166139597479468895363574847801985058248337420024856121815650434560221897969492027949302438024746362146116969663723793014747245753554030870477535904614008849484384226523750277922074691019393568973699454742780692587630544222207570888173514706491140632718098157002790035840644891130120059323560878147501271162084272153610788849031264372943665090984607670788098363620540810641153236109254064725264265408654848787531793958946664866624203767319654489196819944589794568608705392548969334164532457324023994464779583303154473393000102637118281455881349618036754500412721060583044326287857806889764038439742376182479892693037997883676441424551739816233639558625503100286229568754363734530603756380674602267986383096881427261687271949610635349643305781960918822872336535424365781244712579894416208044674674636335664887767275962364529179444439617689231268973118668456931088502059313657359869922344352862801137629276433606962475935051007844350252502348888578234946276193137564477157018926813418728058624268813134179687649053404163990690789998297830667352263584925844908530602904997630593604776829737113527272303209771886548012769749276532574892478315904994270287038932071867756460189051274286832974192763627728866579676165873399633857019674413260322104879692080627970435406273750003630688041205371493992566846309919163216106242075449765241564191313910009855330762490308303299472812105359894611802449319092833301954390384679341953492533627369883819214953778563726007517615551068670078421057472029092223019817606176989503198443588762514065357732821481821809916520649712323456431013856091399323205583823294908217567058576100494813786868279350558309905012882011341055690649641717246391690030606689926203828350865871952384692163554692890827758705036679874554564975910346863772106649910036185159423970468188344374804762171376582624522254004151140200497369100444699788161671423418251425445038212793378669404169058744781734477811925602359656460211190394911028842325164854622950364522809364971416491758262960253480620869051832842292262088077155192182202678710941366448383293213309202408111080596253079098089174549675343262949071664029590588543131681853266871039419069513130810260150240974893663072183449348077158503027806067180040005684326438545634300521879277731589083191954775794691981249508525712201347485163768461412327159529427958371852991820412642411246077895787521398267510201901202426645308707588030772515014654093230684642347456494993667756275725359331848578985260751749726945400135559453244541856255603050333578370011920784306865541457463914795823360194015889979288658709852730710336721256584810354721414085526451815940910964883495462586591930013148498473455998388647886993279784346789700510645416915641606730910402769293712525964513559705394475152400504864193420108724034112068451421021888438505427224847282017952028749756174033389185748358678233343919685180806927287005972584552039511992713550400780332763671889031841169133836752788858047989606756827231854466830004330158670614567622523271446312165888019292425350426188346088660276678851944710918473020266869198913733588176746070319567696595894164235254776544389372166628719993030885684299036316710737223691507319237300696674870159416454357068431535760507978566296998407351581374700166066008463811724576753332878999681697346747153478476415037426328055906249677559729179684432403483183353279541616415121012973726436604906281380026224275130529116729728327929790267812366927695806582331244486332624921655883971596771591142592101678880264412128906107619064413694537505281343060492222050754501069550717032272591229228589272293282622695683113532675194823224014369072508757927103258724493367832413660270642261784444671112915210852440209352500324996479086617865345511983792330439203345109585594666633571910622920091586062625987743409280190408634649399748550782004470448660526989746619706841456816361582276815462861988402110308555381479690213363191478137072649990141759713794517281282241253574673993083489117819358562967891816274810603267341962063486956779925805845762135890275726722740446110205592403054640956275791048297004400161334886381244810612113444708185118535762072363025385716907861421738405583849532360372734421983175543969778106004503202407046889594053265905951251715781243786950667260907026888472600186353675160663219179169621691874626844341981054514069729340278336452761977658194519508813494886535072455453572193352909978371145373869250257355013224629356047909075267235875981781781390019608272739382210332230109927877114630712963576070976592029918852006352411334970829151034640406159529450946345605981106756362292957974237815761178921689185591770183614250780792591341048797573786374560984738026429051994978713591860079710723604136781335446331132330627760564117155682750154860001797520972306976544814750036550610713390713791927388559801708068363243987012352399534102513856776037943085029396724610376022589126681264685413333065210171144151407807717343375668485942234289992111143969976581032812552927411470386739027879345799596856463215821856395959294415699050412424202013524169689531754488730693094036604615397569496708132779130078121809875972568115952585295199304733510555223702858995925528114044296514878108728899271559240012327308839039209092450239819268911160991173825272992066973567754754141115478753244371776762897350236210973852120386377944478634762802268631622643575463773415571919021259277944276738152038572325224577196490129354800717290520170869820855158553714289271782237052306220029057512027325888593235124285220418439816648969728184155645908567086029589116362700540071506188282411706013566365219464424243708739495406163395122922592121197696342007645574680914610663147595680328475867024463226882314664437723999190636921585712087412149240351386185678078317362370006464096541427292517063713955734871814816655864989483878611164338996815602070682966068925199493596910112985416506832905727564537770502176698878023757818658752322579660864667722933797002445694207785320685143179488471563075387972177040344611496839273301352644214422750693830357132999838700707661690687652265900811294809566328680308165152861335129146460051441893095294307269467190327273900336677634540106401954486748932330153978313832854285178384375330069827309319369262922665214197975130433759818788747261853310455684979306346259029401053501635771456778074968649460393883823327085745749731928754238382935985937113125709699502970324148852139456237727103932666088217114155277048832877552847928416451679062134922191115548211641637719298655739495992594660557934022614853919649971708557676158130742416925043764747992448738423841930296012191659848782048884317897111493786115286421949412827176639740337522966729306474903922863097112346834825154294101605302263738525181897938410649394707802597211100876069612680341487214543559448737530744669431988570969070686000244825357450624387903999807748814050043898833910107706985804902147701161720742727928232909075754755789447878441535337735651213474460310136950234480726064668812153314775467905050580809932227056560279614375007218430324721816931623179466892990471826586274197568499891339032945724699159716548997040208275068694169477006643313753203062990389317739633162592682417094161419906521544706819225136735392509496628539353035069159346775370420029573724865227231629941534530433313679073434688205792756503536238987276579846696716021448316709815974078367235536045259725623860622373780496349383161462119932834449764248471337571330392114838420442851461554171998616007080253163093892054222848787823582783446480285674838860013562155354055731382851463324021747467460846963998690847519199275378410235381992913375991275193201251391860380894801913161241377995337300354104874429764904596616244784235893278958413192935166457707293112419633054795976287211094961209473389126444609029026368868046300532498982191368410810761192406350575592918683385011141269970562513063203782343093385183583048922607928807241233326824607836102815771815140811717917606102613284807935988302762228443121738791144974801708976770780302750284651448642982463746179424611350444806262598659775917639244071452901397022851099541346451309350066952365907057373366594260312360017246996279622364219397482222654910472387291107596566450529101771530250969760282278327559790947862396229559873179895519275073461283583921864267592619965853274351040107098109838543438108214866203346563809099582383173209361706171639460154027579399049161579151173984708900031347916694953244756757148307393457915542616885519781837374733303556838514913125172305470354961086600424280713350621550082075408900163863877292123062983589396920367290195641111763859354601953120973338918409295667470210021855565871416454827561768790353146725240672403463593971345103253939029694003667198815896078159436530118799624215005734065410957790645741647011750224518764471811909777360351195797971651578514528369948663717577955722884421001875674310938314532560209898219534893495141331364726052856202360984710815930122548757075699477245702063617338606508060754750340864860303208558368861006427626660343036567542874172988464545603050419594891153305801173979289835043452723819281724140485608087979340335130636949090109303132672853033953464915362975729508155030702640598499700711514502105912066885655174407360723043029770137145070076247533835823960330593615103616597444580045050223677298450883265907469590297879066861090997122731800680114775275084271098143641294564096837208339665490604159105542349382000351413245589746070074188863328209401201544564663044234756315032655456991023918180701833656119544474708956639770629389777019408052625928410822040611313166564084084177140523249576839667320156260435179380208041331606604036879275079382486396980997834892792882258115904272540627226664307467804943183327828843495775581014459719019952356189358065501556017363134819156923255417845536578573842170389524506115100835150559722992826833202555621481177359927592806912528532419758478166254741217975942188572865763111193426773456929970472329585011717762574208519863199748452715043554110953759357973514356757299369747778364920784864637753928811597643407183091184098200425185576982804317220899913325208986015134557077012850052895420399701467990834544763221943155934410239569722242986867213768421780094222077765293337086411354049881187845180216082424638794899781845247211229350333324588324258128260652874807389317551396980120330017576441236914347676802803505906964685707080062201486505334030912363145579127657131052479049576668204970230619016735801616600913940078362182070522179963794620260948505302124629599307541428545973068764094794839381467124902286293562016654890136312148004186842555321851666867482659042032693590510874870279279067517066950021111317864082001149675536425992032205382394974603660357334801122977900419902799032907556262552195674634908419881365319888141135616807256077895673339235137295207711995887241318020857624574091718744142601238104307011686809616020465023496720516801052459054427610956401475761668541979492228294767312687432552430472378650480967358153266381643831076249448899393468930725445154233572344733449686073166754668498041837983086464003888079720074738987015646905208680790213832419791378123060836537193088063048367572973926968814407683583137531689705927565644778562210496686833187065713018844789210811561687702905192673962767192538655938779908913376971167212438808657923608682000034505364778896538320983081854219815855295457572114228308155494166879129549177987170288345096984390278795012262402223680534378130191745398651824522632081745959189475506490288378669369414460001418556226719253593629789571387714624109618259807300004262095102315253982849350390990167023771416340623214636535317735123300639258049427052849059073747680485463930232817693890857958472005496535416541492689728023536853159826157694245295999616830227851495446831697841397411396038972599550314201685016148350567381624204808762629083050794084588383917557684359286580395890243119777812327688677691383240807535297870561355929150138027045755325292413494749364679652348665708329466270792218496748554533556329075395029832477312102849814866011125617522663539937437454283305892900719224385501326380790738372043526188027129885987504590543468647164083627068244709790391402376262373444185207132155607434096969925446294489532231845059708381559829291295678898373770960225794409307880014623297535399357384715989435919697260298092537825888375227049675432219987526728688524857054916327913607594825975545470666337717341473442751050277969654801903536785009535202576933922786026905910662092560811550134005462162991768220512385132512455556871869925273513246744005975142118464893740530984683807383748408557504833530313236692952668705405440079501444656748266782427454771328263545635333681302619813300562170609915800980556883302753231176553942598606244114930799685660732716207937853077025929069208348238239850126383687089950418488537827218289623407462246786220764677709368932992901569912113062551235307529968332126446295312252078409040766216724453219682950451728213040308422782557467919788333223073012411785937310224689255140000412965045140644875102701718558343574716147518239779036865234646461399990439099947065581960375873235145275873225677000874727211737071022752732911131442308940915706552791676167069862941834133548501672533590039959053099369861984829054497371962414323918400110634117883727904080029298868922236293416136433364886402156335938519968226533038850051287618119300542060997423626999294033337791431950951646286073027049778566079806885728369210149180565878193079420163355998151704450183543720927314102670007085322703231327175097863935614362953956552951702204887037480357450763564173061639753530559018017200687031212845735453929123620008459380867452635166319925351298784778455031883732144700249992363031972872814425008258845817563958792104165971159399788070526006612252310789994150829424343593571635525467916616297023127085565882314857884840148561431760206847592865315974041615690480734374713624484117677121578416116668354585916864209497300143631559559099181375753857908517777912106445916334834110444602154468144695189985225722391650093109105229015601789005395087902572903811437291218999731923712958447008173679789066028666813152172763839357131934196149840461922317381101816865189012928534448012255385526685107170390742361176793476175243683767804964629231029750611801520319142134000597448241081932465374207185984163236507256648519394985392041610946567955533129116973329163670616094216006043206990581944658961760147746465466333242850361835955328680399878981991409343460266201391777683714654704940515371979713031911298526294386507115071868519711404010477648813497724164492535188492450700703684567730210635867139230409955537691114494612220995371320405664560719504261430942504199487014321606243489712128179051357847953920019268486215821883252719427095610649466953817566822444830371286517633575366319102938368378409830440651198720444255258427239063303922441876048354732179618448226383987167294393078436448150445265652428463142284696897487504936407015128290306337219949491898898849146204155939417713772629312263449602751029741245678180206145462647514056462804223835919707223589699440865732783811274591987587525539461116768615261471521816422738569256941974683795160490250093082061949896319226472702156303804850427690630049876526749017767234571100044778895593817372638113368197180359778965956464724765642046654879509710589197054294363051500065097094502046308141083052262222631289191386806993071972563748131197721630282646321635152859792199592661850913940094309360937801547471571755758156820063609177569931506152992624829870853017249573365099357047211507206941552110180028802321825968604893140318205612465145437735763320579529515339187717540949642491153305935346943404949002446352692492924817466471692910404231567422524129753190124488151549201460274883844860207746025032867235612601307022732326647064933125441820850554977466989921948887267813516141759244663519004191650650090590085003407496227220982737773503181562533650074853552346783203164538003434714194591414856607646999690146571640063906184817381830732396920882009588296955180354646096632971300616263400885704680552702490079394461846230854824086684021242349577321749854401813768894471558930673952194354936475690476165116359748209226553989943575388982386795376807062832863036932445261441963245671271552109625440973565116781204512573304750065972679142374884757648980171030727698917561892136084915679787158380223641010414484288785139787741666423003077191634773411596166399446921350855323506322347713079109521057876595112330970327210299455608443649744620023930276358191330388908048424576606890461536503597979285625812914532269060618559081490156252997076924003934727362315025410923556496006968426192045378393270058068850916341970947891158438210969793468736180371556535931968296807675324915433492458509692691144512040038337736865090977113357604728831037915133194449939478505945723193616269118841170374965091155322290009916888975184085621697733107726075748935276273942424364395988065946611793433103623941058237837452042942240122968986557147682963831418492969078815656633830666446691638516484316697562977172956720123710141058953056520840663483514106095158794095834218580629100148962543707224627534970556287069997688121325340003819882703032489554560195794462150169521798725265559531805397569050423207882736540135047548646243080703331465809394098489613774564246343917913778750923392745993794826742919708377633642374222545073648535775367729684410633070322396297814177449496912210376377040589686415690364477680750645126753172015785147677436545692186888303017846077463816633272175487788361323050589045520617848317976029329693923776029499683231089329550821261846329385924145877268322334818536028851077277130087094335490208554362447493698014214550253780778476629267975578385567278288117079415705307163202460368753852435789324737294524583109809236990615319921451348965663958951033449064493420269064172693097377799999905049622255079660887653287402682121916406967162419604708261464231362682639309816921376058202982780128831953541863907656537521278592975201635623919342707447559011825362135879993749658281364124476125711818579178242933085043279956145791231180824385493140041381530896374177220573893318232371909595062424312885650485773149784066524586852779558405310423537496336808408446870326344856205464978013990400309487244758282170262758635594709002343012736834116035823517051196388303462919213216984097264818558484165463616488462368415868206923223426121797305862737472781823657322747147586042217145237276107553220260024664073940268262756869075092736653004238146725969606119077467646105775862365465257160346864007945440259625190845716665331044500079531871251757170593149341566140566861844699822460041860523975866149870863459694505623740850212023582087074134137767945359094980767669890830357003214925260730498681758223219775192819350045188576908239708282562746979725556223121199780809656213539811027710715244730799781944564916323482720053947926839829103892922933904488444074530713870674710533574778459019679775722174222013807264956006068053697956948084474296562207949558951265706252087970304088655453386584090482447591791416158271724851692798469856166463248239070080052561088169975949660700970368564592845985240541956904529703818756755229358731639771607410514033554191328224688230711049521264145113878388379716721555508328667061835043115379573501993649820710651599164332336870159058677799850762833602535604772969450467269726554189865355403109802037675534727184193122848632848733918398707616441806039446873205615803421980737169873568477525646110312448559441245325231226718488068491787872006606536682419382052710426541632784311355269533091264253449187455717656472066540003182217127792695897669117522643780877624677581084551493769173692133560331630064932803303462559726467099955310006499090575045659723414223383406766210703737601236512766329940872964542535746265691055938284666083103363759274151947856240430555223475465204393539713917242418457490670628651531417442910830815024211507964839652807650323301875495036996036597876614878407387036737269724810146235617671035506537535227073997945138154311125046116795167651490351158263522919159334238891502886110556562898564327634056160080996861496712980051221837174151665124644072267945733278896010334077226992376713424951960931804684199065068098209589567812774143834349545505451118325241842886677522595810068016748528526676462448342988289180073976611021195242192311265996045448721626981926962366393647922158250610878562707319249560858940602839656583061627952105556806618098216436972176415528107520346744241490354546712553288860395997446760391075297190084543494513088655277273645811241115527550842733031320407667245757745584538833913093865028635670155698796002674496396887818500238720762299161062630679731939246777617550517234207963181503550240396006799963070829268366250245095648546251993112925030024526446969746286466980431227894805859319841804805418881777028957121111641668106854699905065267112001949491536315772543980233570987259020885753015191450017432369349717748309909775252591493883623514604057521756815580431510448181197965602674489677546403918249778497010784711773852146097639762704182092096989465871301922051762755081829959520678905864627007214426182815541754837181817023328518996620957312010913422793725441620854220095669934553724399600828176165143828931548801346818163046298865043834135019869564792461747243173036614176337874686082100657396015148559236143524770365670969210583961054461462057154727061490917222335573587121094732471383878685730931238908778814930776079186052277532303806349962531980861977853510832442062586261782881110054520119926135916908162855588004490121091146876810395420004063553152211142865340568996002582962076678212839376502691171287753368642811848615824898726135358386920905088447553457635729308423406338109377554147556728806074527528186509173052134002883713844715231604385648633682773436278091631205747377372941936002262089562083844458818588810120095719864121718807375802974266884660068654313941721940830002428061156019508386543876966938786081650793858775172871667228938319410169738603611370696315738994653467439739348817249539058715681996630596319467980174495442439678919971114737510175699014145212575669617901143166880439313663510359340540961079935494660220989398740964695360029881542888355028106698450379018408765034097926017182699336077726273514407765667858960541488053375035991657563885029240233733597730129764167512182173858161114851645461665686990784129115188232243128351408816119346486133963965589813851943873711749069980865970864464799262013485142916294427653506355044385206784466637951700395458090657577917686642417507960438778084940064115292273903761759901096791137606501919226810308380799896015794025785588717798722438267229884348563416336358035289583074724074417085866653906439013074832999742743884631687129313723830268880371319139817338113240824127580179470615386336238819504009419119291682258647360100538233000449008052767040018638646920917141523431287425570534035355279330500428489810042423724146668085497676469574858549255960913451543229780133940990239073359396441503885060937572097782767333721917897000527749981303233846110415380487007647366208814466902882937979836390567412769587287183993567612965353659073438614286002444042679461283292029795292537756006868512397934410870949468933189014106416461791806417158828687823920935005324066669068304635903740888709089363554049637041211584871364306683896413592054984100426698709206788304415828875094579885940057515298750134770684395539027757192706156820748117790234341524726277358463313394966573162412575469941791423209498343756050838198207162552537073830890079729479782505308855063522963155008365222716525857414523500810541487422376802091594164027415324014784817929805082099160836225658590297452889411675372893716269696954064339847865735100735820632596760957435576267893074988910460703343397501427938817801900322855776362063901404184222119634957977975246942320703014958282744782368597747471881570661924794063354427825539566486086084921655042385052450304102287952477524795419174142883162100283805186080481920334296756020797255419802608082856890651990884080685124952561423528618869377432180234354591405210322934212168010852898063579163705375914584748923621258114331010015598432723061182062200302704226552580472394080207276750550221186983809766343159518103389868645335786930494063812768479736061526516903314566673598506895542400825451186648637261107039618934465058955192764910427742349708843078338337739621491343448738516496893614902580203865068318535607443194793061489908453465911871866661565879558732007149979546568551376081944520887669248743731288535024661500313067544162194448193606001805142780140525217844480729156887622683002588538514013076107983833089954630152414901891162587547638060411294314700078399397714511184710068485439082339703763720978761361373940978383080871715969022776466598190080090238933196532310540882048769221893980375345824423532829309988608772992292632440717960208177157440383723085896201801894213610923725819868424008764266177065366526841930070110456062131676454773630259105404407544538187684865490501708339081484459767654879954461298617031968813521537770523421199175816691455204734584148900047252382151803246610767422585051779955576554701432882613422490883499653184651083856048322510243550364052868306245393270652155573312319260711492510738128894958874800712871283051337664048521689911780024811967364340679467764634553869564221109628220563624130045108680835677672073404393271075122254379424074153813563229518666190693265062637063328479644137378835062529711070923488253967776132769231335193534697143400829083999727425753424361343396585492917654827033969639915365848630861710485761975915831301951876500477081882456392364422795707408647789895636963407429778052836215925665001840151128660593217449808674187639113292567872696647992541454469746595283960962511210775942811902078145592307062076648128064956070811456841970012794297194722132474392993611683243436090193696660804848675928009235374506206051338137159868611305369159834976378581385768787881992999920768009263268257351627810353317816859637820502237682306082283798912919811064036751908413544653270733257908697113227591137922477685820700345360603851706848035168803569487622711634031185787937139610509830854058209770107725554693045897333012414879266063818439710223530746240291007899828755819190279895076718821741934266194061104692596942724698285209679138751841242352738652742302076637331117756876993669726085679681877007782957210297819569444248273060528117236310622816726589072586275294043769128463398980739756791944645398496319079481814420055924673323706111951936952960654206734261826239936065748307614519979464859021088039390920377753480362635997457611306567063378019008021757458743588753968153608789595808276729261161826995933583577637960336241790186190465290147599462449472697222674800769776045339939917346441416691757066424246051658985161639404106392818335048258184010383719998657143295385475736683491991568825239505005928837518758221136289813961612631629503205535360618738014812387445037901210356842840885595116094143741922334887514294663489659999131422763031068692358449441029781665584078330125069301268562017221264945823173263456820677451514581686546647624467145240416025530863446597591845280459309625576364455333168450175422941925886201725340574936842265474748738110478509180435737461638802852992288948097636835636246749481192071807781733078084545516028325133493644899509372373674546280124192953588337245539837779620646071955089984050307003647491939178930715169104141056573206482031773370036844806324179424129486553589735180015825325901226528648588359342135473519657772552182899440997958544673750258016162359062590416598571295526210843853263752533217003656519146585723550378644254500071982853979067977478942692914768791085071429058573352270404729090058583390195534241687982044556109891164723730119110723073142379775003474287704029493722051164405205423927213141464780809683938754390803067652950369561296780669424189098077201096008918136935826566611389096945735593678506973162597596573229319765784842095262905063697275677032628896435207663324502623895006642089195910707808200315585338881016167050042346724953325559067654435226041213169985170162726017608792116508484376243913898029002825711663334237628434982422864180857986902859210887434256497020076562228906699479162673378795316049756265875263532794052238248493028469327910544072037936620425337771348465967359691396403781222201005027502591903171656105861678894850780716421088870191324041978331532707276676564857249438905631926913159673856610686712732141268397950633078024954284674853720647759910481443112842143955058602636783909489291461316697613111604934380164306269423682947970549345271384345198597036211550107949863934710617801464959523483106454601145279049430013878099679715524158627654302645482966965227938603961953942211688411168583955307702103306264797984004673422954962327789049388220214975816341296233289471832706056829562707297569012219524763000398042071981851779862827134944648810752173815923583128346454158348706395035540277272633064760135075665946839038988838636270793882208055733521533296007791256545601111262317962043158131435675431537143259250434647257969376389992044993651696759906987484446753873413789882687610722103139559308643768023483153574900695939427229552287532476893639558525088038414026853643787539175422439273920707917675790005753125017983451726489971424981362518432888255785523006149064686313661060627725044086495644631325421976194641652487779866798440928641481668424482200359127823308416224661949757419677501089477928243888896732727443235784042738027303437316820965420512161490057336442262328007677686957258200956805405484628943197010569896309719952337790764036151037699000666372192013724561368545156126540966968916420725962226573167683393577331700529994137622302762451344371154580818683922950543157160753589655694149065829721959619347132496423861157323988765033261791151517328924920584105414131382117924805874990961770801270316131794022915328630546712345024758154902912925764512266004510758675417452360971196483533582301530860026215358299858274881457418127936398941573627658202769503585475949098499335912856186241565227734517295740534520778389754893203532495731138671271640448585086407923187005779493931232694055561370398087042973195072248322574439310618721432421360613212631256603595231011474568745302353548298493684893536760559182305229280471970041042227618925711533638072934074794475630952682389602083050127783608240941089426315747170007813476843772184673555325392550730565358079101525995898757763687636721399140177623189840002702553273984908622274382686196606471841273267282476697957040474164702342986443116507521524656060561826869787011566437434275578716749730926732154788399061042386412151430235266716762682989554269240813283640515059409734072936420438104877095157615735065631336263277078445940314678576542128685149559622884287689297567182869853862832208852527161129038265903318358051830101865884734968161800212178930745413259358215247107063375658902831731089324260558723683462538417082454127346293332031454968084721101257253560003109688100675354559805730042324674632707619163200887395312772588978425449272344674855212505321142648214065791590255120443664527491419523614782434709712683265986918973866275567698987557024208702271998089549331379076048242818058175185691842572014959744595577074996435140875993551488047839283352360291723980523520007419921454525380912981354455487193811430930844829688851867373321843918892293964658089792059746242693306989857575856383720567568863115146656160922181175445905458197634575811411719194630051379786819121665175034443722556988040379461036233330581009139906613756743086236010055326049557141011433073941914726415644871883236773256345480464713622164510104117444558714555837010673698829008760835920440893581056885466837596609891318838205599241427077344776270436012331832246067550678664460097584770728697445282282694256090761025467688603357555562748289528288009985080835038636092582091412893324310449254080158326614281082483067061919119893550143101838587629128177684372957714949149642979586427355634991633866538803568604053573952387323296076743678869307782226341770314835636835827108915987952307870270972041851152615472033912991814982246609442037090858235489620811179883351908547663348117760382001579636098525003261162476987492095929651960291035935148243186542099859564121072391595818562755584221805784795250611087318874750253456571729226687955905730686414893298167017675331130613700423502714277804822828665887592900059805678396896361021763797056248284355120367537988298076400304610800558068096048223622715674794423420955263763829371708803444732132903716997788401105824483602300042863016189733616111518626001489766960977573133343632805805350200979590114574874675135755998054832591937513120082680251344016166350605569366160787409608593393235343971498092766339053205485949356332646490740810334657969885117895845380530641707705838705609803306558073392694859744077743854499648998698116816355404115244115478590458135561097585162914619392212337564965999451728847514231678290271680943489526527040221041015254337104134490069022915661208728489754177499256373410118895579032793219222447538268945915828373411246817852737264561115538960842972105454750755947362709973315213645151326642311895310762871543741989528091847392751717567569464543463323178631964951238403699175743083684267462773553956054621427946314953384756434144376038090424632619947669898931612476461909617990274534756474957148540304435330541817507081152094368992421231712331602735037146964663608498249502868034684841981711513213155344802881099249729065458765023885381431759906524746772256514561398124063787546001139415911738032755230073000002602914847806417041275429752586513952334029095739257942172023325979974896898541666433423901513724387717208880086487359228489434020436913093836084829737702622137039036689910302402840282166743774249016573085159446209629905539057389902363609292468618789765309381225124216022454521521551974317823468246867023514214647926326566542672824187280716100230058089208636949228755746484138048410367163892021118078851423612229274653823512424170029929830228331186562996417510871131076433903875957556689286264489271095836758510706257888781920998030179508609580991328588305203443710232038396911363168781848592415257376175089032269564068322443659849041712449963444435786493550851877876315401843833059045488693742420402798609964686989486867132865074185152739794266625790583792191907006000141637982680719586368699066167643162577903424391209061396172448659648254495514039549047768515909298121143520010955241785476789992917712058975899821446194000818356087901095740092438221470802143175470393403967850536743054463703757580638995293055110969038327411293902055952541066023506560405925071976644606389860669226106069853977780655920365187552324964869053482841866079639952524310780318571690322589822673874813850868618042527935540125080072883947100305658477971380589165158504563027702490680128323083055131565101910171559779506570955982209422672654033187124072898522626142896811508768097397356477473013678650026112770889349006719163180566020413492716866234316869774214281268836983533877648070102462720828980481028815648827941026977129321925645540154216710106204756916577864638589699686276793332214941358679984997910115828511253189619206621569184183822617423461279625880386159220186577326460286299090023250764793886142204756044188962881461762314967881936323971519091794572255660009525371103123663878801217415909269876583710635880228532587247399390364922292440327046615656129363303055647198971298637494580283134897105936700309548979033442937773249221970846324342028676225242793897334036678342164730723845339748843271854761678345335613496742420548147969486344909908685183577098935031076989532831245337362446061024385808035614096484458497103058208813159299368846554367618095155624610622422239362216023722694362175748694367876671369343640618280060344443633118170831707264558613049814098538699039239021132097227308983331129852346082994949808905800443330768232641108407034947754181789782165353456961274521865504296341515325856423622188746238481600049304593826409781472219989695657105128336370859585863531263931372943124607934765687034157752515563401357861155304591395610721561668097441756942965031814778739674595681097606482203208611387942800013926768767933430626486424587607299063059123266662742116706847868551808141753132196306893663034890495647905559424448630813238951161975345098184877104221763848376547947165396420388128057082233989140107949074353098447423938871457220192643136251550779633812276522087267654161219415776225610287674721402024899887228519252435172130435985822011183658119272799213534982399292626702871177732710995707619985457447772498837011584339151158655761726874887309713711355409355340736715302698822189351739089525481851218746745451409452551675251177160190803646191205560683591900413539724338899378705196396837955853793987831778963292491001441193538546238356201317288652808699903100184418885468268061187517879974285782208887326481082685034990763121578694543869708984653035754955876759042137370287225013035020297008942934826356666549468070602164372871522802396008444162061078869500532747630686115754658103851658106872091847738973873730512579400783931040959766896501926537974759908262517548226449704140893447541993056767186811194975590846177296245247908096660995249577289586895777657340619225251873121708156323104380234875757540526837855519060845032409054277710570599846962422148228369638249274336075549820068281321399814019226870734394310790267589156436899304065494283699122741627175964964892573584300061825240003694802250533059601258394224765907564313743307409738658909062156111980398196646517167408193853828575503192883012292407338707804990834817836904256944387605130729427276212383287494540294072541399222885778461547611299161329682253863354489648659153858551884970338093634134699542242589972757288650277432782607580054965362763683727540866007150743222838795354598797245047890455803548512231371302946339207558810650889187531671281538294066806245295712731200010322879469823678917652521116566523872502777443992383221175466698397598381388342407212287719918122515788588130950163228632068973209071975396136321832577847585840786496540760283474821984967804694627663294447427634346051145614359180450044577065118510071814391876461854077379276782313594060480853847749763119480751426646700770468431027213072779428974065433704654846879416132740569418640553408574069805362347370145315324409571372571907418937045971057257985343161352009282124089978556634288607879576938928976120205706384753387901313708941348533887276963031149283750400414462995208550618682493027954148553073966680020843640145586152915087495956772811135814383740302330681436735939259913483721360480638883497854904182967474001438455114413981650235284438558824961501084114348919294228083438901109935580681700784611332977358420706702466955390404279962971667109546082300323818270315785225663771921936971564125111090304590048464412528477420308459268992142871484030628686467171170576045648807740048172464458299146497991081989407465825681863503059007075248008608165582390528710337196155972693194299280671267451344855606543572641596614327958454367735174036684406932133731402935065459401694298997745581447305920049662197634537887098054971442533321520508673830081224207452342362773367371410823206221578941149401073256242340628860964160148257161388137097508390646426217492437732520452716018116421079618949992243153324395216700310006177274509260157011359610689871526359717982002548697390288197314715679621051533279240282762444950710413976990229478044651630957596837703649352758326551412470461803857033477372891292618582515007761922611707022957510155053177557763349575986348135856911147683894440393083407082748863145797471389983946944628027367886650232895456682542163568365663675402589260728523906340795698000976752414460043239401886654464912317238934203071279723357022408998968868188084721245720990429407582867964303832709985515220563666125776836401037197719496979900794338866414997944816716436074144527938693650569394493065982464771944184604276168960982645711065274351557830337401367942129770960367599850993355006444700311769431437904392798585545365310612745348303973229904927237940774931323204455724641821576471849103395155339943678914515367161062707517781826702042066177636192411895182482612578975148882502488927735249271631819933857588324754831728091143321893807352930759971322890055942910588281246728433035927278941751129762144122427865033587110414822080972048849003370093156512211122516748996756778223959784501591074290172218325207841160072753081466831354045484447451889095153902185460215114771073692922620085481154254211114969850517183181283296745483234272306416324490402155649003074621474869054193977769047248893465892116221143514273547246552066795608584517153960103041014760476583436140922767866587802869103459617063321461663318722711801395935934911073182955166766593365235756849882468085539692557768406045156683126110319855275592312693803740159390934345507339809561889690137073044824721779139181306614144477126314980998932417228687080698481467755469538462627585726180432551263167535772226968206238176842026087649484491887858352150135079872690108113579038707441017080986230168343051315730218742391019897984671239103993131222931926284098555183879272242752229950175406173755192074677895388560355555639254419825984539846872616145412084586512143236587509426743745626724505704322876993980157021752261418761468086191092096315498100704480984404737935592049399875229975041165915488161850167737840595239822342421117656975604919526826084904851792020133331557859118260696105437808098511357575651607902188714869481267162968146045550282123391750181026804733941018217127050342064815042585897956284329342641445850456727580287837988470013896762986401716689986088100264956735228774066756109896085999852456230059863209133745054927025792617088455191275494792578650034543049014266023183093746032745314676641334808276286479211632132575606239942010735965312680215739577680728975863659392653661788404658707477506418051506341045755394771845980914891078444491761204271668000424222231197092326544755667624445014475482026674478301472752780328028678844372234909882615716724522659285424649388076220751156146296983804986280664191967730571450594289679683169740379937369914744305723338879766084974364643029425750827969069364566835383261826699112537989155179915903016077601127357787814144057271363443728896114585411233809383111940164009482298843971778477138943914249795640614668412897307539102119672112445685144847484572354166579448225309092790185934530670116663836248784911178527534552493644306974096885861095000758223186911108138992662331145199945493069780242817052490509764680190894660296218935346257889238047715887228688815711789369026299329617048661023074054857108959587478895241566632273423010483134402712312078369754351600463812244167805254681845775267662083946226251145726952890025504744845065432565647796296401356170687002953429598252424913322293611278961102423190984210427817827027702134075095451698441946393009581336467622583554279712734451992761153448239731128638081079627015100098013856722903515274209806230991101653626811070267537497456094594758364615438366624637009231632808376076265202876007775717821328349595760062785569820166905058274122809751732448415000652341095798755913328993669654702973773440101982312324311267116735243353685078715387677039918676713777073453072597239871710444902254349342016979911746100428729818714897768150182769255538537189354385049877100318758012956968519769756772336994664358806049711375386501047701052065392504713481083983324313015372851849804484422668603624959985566109785274470488540816607395829062884248469211719855232166027534970540987555485947668708351542599528807093104105853063989875183775852684670871990317237084397432512917768616359974817450994824828394602519777491076333298526851362870317065941604386808790792894854853007550490692704536647577807988257719849381041086667357205432660826865115498604644422890551607601428959210388848474230649482199333411123301179034246405005266587635558360774426676782381011262517554355870070736550444536479561278154436854546358397060213534551377493946408351122759379526785955063475265125584763001214183467456629488041636300093810017778877360827306096594684684020834150216848275605057468343183709651285849850864192331113535115344020674225222682859983740662482530228883111309348170833309648722956360779861163017701248408997552173561240866532694595086321905539158105115329829243106901795243906149393475318311526438532844562000732110278357834633502070491154156442575643196196606701395415556146238020098553661735425189176374877156056321002729884232506936749490432218121588300512330526946839045949145111929631649864419741992820752353334844053121403069664687474136039006318857717392734392347105104392425148488607517551793755445803670489814431893493744789924162594340808942486232323369476034624848025652166677216060446551658826671338585582012530586339081291274667513062152020580706811834465239979252803137187720597940427242832483320488148009642376980972907386833228829086177606687704675964709083072802316323317783844519984557330521487610533683660754121000183590356681583863159789266330216476887638592084535589754826064848166950745985529413586400965543359333129089618798155117084949189805207287091616024843041233703825647045105506109951116977795981692363721312269712707058324901580581771988740586400196500895547726120180655512284382983741256895651119415003973686574591637244785938639930170911236951335951036978884472117878483562021798773556949367650183199485915325900834636236024034374611668826040553803935386323847817837080253131245028963566607705076963567165043852700013385185967749330914654029440249778264687264459090499939211251251651892351351093140393957571343211452124321614422978440239902079019053918039269918607569898901966089471017843758204217163431606950084514340934858839544016495516368238649360666900540200767152227249010257656665723414724581945419993322345094488591380093805527531334853333184614559978796441020269971966072584708989271083878720929230386320518893615750982601718375645733845166644904043021237778090033858243900212657433084642104738752629297583616057123759663522768582935268712352400142687873712285466704486310991811303494308312292263647242090381758244995618613759712468466723761413571699242226654623947095814806190290907511677078169377865265567746690069329083517969894521190566997356678965101494766374602254702223058373479190567193724644455220015968656159797231179949377271290275019661513338244650897203757696751034511067698254214048638199017873160062669086496007525585528707207331707174616267580712163524506068911386919713369811827397157862519687491348101662073507651663290443072101936991444708023109945688555042274605920957662725354378201919416643537362126356241475375882445949051524362850505785152040817158575752755892526205818000139064881320734155169748656354697973412689723554707129105530778502061591799330311160679357731240211808128898268511464059548997871622861132748127188607785938720599425939998875749060914721586803754808371806417042008471537222482951074733955527272898697664101309644255723203588932486751746811643641153678418521367742076232956793299311211249202272367087546529004442337052945291877054404155554744953695640683112834310273919994085928020059205139000612624438023120262292670474111245344560871992617683312947679440280626987518128941101988995936124268511517216611262460166715600583605388304917774559534257018094404331018666210098092956854933450494925624092867719032871694312668360205788955478169484308240881636011216397278803964502564319488359734740528549709801608092616861982695039153969477166726469730318575876753928620867066297358360557640428370316554626422788421082061568393378735195860056224088019049070037781304682073724794459890520237488559100930241818863996978349473544852487821198863253282830258378719546757520805095564328366496339298013175087508532304126873456793305871483534069296439068893768970462789116412626792602493313733749270153365005191104000332051375041751749280488465666811028413200451796727541485934431739719390702797084614458085395386733491195996640958499825877216872982479754747181076168189970574394958117853976290043048067407121455125550005077969479853215108876531163139868186257328745068764426573169855739419764598771494511016255175485329641602518828475812606911402749215397051376042373770421484679214872079496075004860931293588707856409736749463287597047081389859257912777027418460310095859371020948438643383150068175142698574212109027227777062976419751145541650237896536901730964419018557504724805460913584449295408967117340464054276465735104494741057853853415503753686566986389365772459615546223518022339686630477051977476347135374856741103372221866817530971307472454909335467317463123062938773856026707853726920013883567806839911476996744200736187290245955047790868676454617340614252818664093865953622423462461513409088129897554407264961197181711736161682294239115064105483804767225577850955946661808996900600688949878334084618456428220738894867897621989204854718179116380799146133908840544865288403287108014587322966793549472850917534600506609886934533500580764699764483126407440693565716301873475236332461386729531431753157735463653313738920150694108717448750399244100447671746881272231100996984620049813428969132579995649657689318864608009264692803932070187699106730036022799193791383840831353692519098466623424036693473404220248582667502498099264645060395823628930670069779093719661485323924972827528754107269819888045313972506306271424912667782566234382531742338931191850434018201129207942650598191920317214478595202195351538638232326181688671358159865561301505172879403447804031896951572586306694858424645199191466420454018922063535953081948449367050129521173221765586238934360849714193927791648880247924446308428708023542761618051370003263249213847546349544690108358935991087898867919783222304849170320529441189448725925431733987271979905553457914155892368647099207187254427247829197709122320197389538864429908339391885635179867958492965694534823128962919071097596634541835936016018425987690316719496296718549422887825855606666015083202564514196167947902799627369580455861436812473304774972869956537963952738248408455871586651024494137431014830786753415071559550009446225544325011940233062072118748150436247870246271330682449103467538257938090789922755494530055640555573157637183465108595944894153144637881010130107948974993108754219732475632743155301083399955822819769928859906380510207844095961359055713294469123643277744543256432178250685082551209552885429522866255949926201167439952747798059045028817953651716849064189219987587552894718318257174815566054367706865045587069022112257235114899300753347618361322399649397150523246074997936681877640909015528707947386451416057971528266637545067058804886432450469283061641684433857142113635348349585809678757716545704252460441202494550513661055837996205939412565727483914838683128404987397991601405503351405888243929451236106929222782828912522983758209203928859102659217534541998850285482696531243102670591663461970971333886869839819253346264246255283783984088125888356593036209888437607532292353913344629208856995258207928921205851639682473421550344189600681252059053777063288115219391786754136013674445530860572401582822418434266602103232105100354716640012971635439614585696857795731756829524355089341724138833437859711035509793612069954039181097285463384356898566864913461665852619336734181721324989524308452837933017697392657646012155036137735276828158325305799551622544502141822873506569845032072525027464999392223891716053043719299758214714584395142217159819537330906179407846918900053365368329160039089726018224029045494753085741450568570926713436139179605520911843474457255046461139410919570125856929824074459768053191757524309857811306082837401788648662487511382986997689331280929082226901710735932948581592211774834372932700210931198784676218539657242515658999009078948438953521010458352013853976141011023344641861719470841150332660173078407217411550271251903204076749784518937266755216173205439842343387665530870428805466536256398653311385810058620524254343856858081552711173475603969254786113593547647099354094907848314036251468023994050178975804839686575337690871706901641838537913070257707253202532501916545901551349177707949885784646157634968866426327111647603551512287948207116527614877262854693682855316476936971653860486758888926302791154396948380882179997470197017402219326998434102292074635254437113889841701659554990918690479319895321701199298168459811738231772307879167652775112090316257024740472471162182601606271604326203133361608992506673869593939312968039947097304708649491835943265261151416755140176641933126141732040879117053011112307472403336731603907177421417517026429960582824991899036779187218942107912056997730363691785110045340713451969807634573183247776925532709781714030935503930785378197423728606498494828184060499039369330141899636712570441747925072502430957591741552603857699123263524296038389525014794714815614892953359861777324597200837187142938611776858321255074012957828775003266149486664130662239575909917957484033241879605057271603611000898175649284099490634052438037342236707023156869684430575673140590405106691599497794328857047501296557445130944730199806581344725984120145393697916355737277894600058912483720828441795965434408309701755678102269375707067059182388120266471528636692426020370785865434887496601861193333435924496215241341197963563744106499753148712695703269284671518682929499522749505078354120857871995398672888944088098505036791685666382008207178727992888874079821083147371097080042175065590406689119598348083606496427993616393633390688372828520221053428477584164928547177459841952155536698654259893934938584614454337004135548415340987857463257244165183106094634126261491813713953501575755267088975932911162516698384532487238583329984751681317899725744009945834321088233263797278810172592846992572404667246134767398953822910517333928662225131103047704816378729051525419467313344636891971892968676846183172507036295961156423122430513041660328931278270256778638834980103931787627520425545262302838540356738157964197527921450077079311196050843658354371616066124530825709316503782193027498424785115098276108056972305966841900695971376032564255852510083717179672813445102176574783913208838306017726506690851717104523002782901188539844146906427647872885446163453816574283069176607629177725316434214960517188283537273864593173087526427538855654276059850786577065244997384481208852187948081951949971829164655214256486785443982951755014370959343718262232819048501782958269240421686876279562640640523856014460262939108230008111681565176593536278575895814985343456491116735586931530010562381891480257286634359181077563952674392128247769799941442146482577622351342398972542124047462446036670732839230712052862040365673264372759873590037477458114941488209325195438681278553741576743985015982770251032054170711691388583369612734727049867824182032176409175359914512012190868369592519417524503712863726446206972699474090913753487645075528195290061351373782974276425253422168395893796301772002245287501264797297447028403227645731315180229439605531922866726162466844704161465783350489258295429145091951114751861796568518805643168633542122797056081311464408618055127669144092588691121111004224109474095269939490829803726174984735449962037058834748894831069773123539285867099789901421026791929501806009966083472523355547105566125991595079432555818498656094484842076954896945623709417119806668406512745644301497778364966331129862778617589685083739146764003820670186985559170677705707779526778252937195544057334466031925986064702973947787130142690998343715777175283414207698428343315290086016170510623956586773171146197342351318195929426955065160267528728208197025675374218583796837727903900191249842648112372164130094873634849362678785149989909894987174637590288891026329484107738741744214043249558650665873186484383328283771174470593448454763753866739979032399809115279479334141596154825164893833888851177086546911361646574310341288285444811902452097878507346650714501705752112266272399492013613280766669816463854307301234130820306644229004380497328684757574217602387256083200734390628016117210085658182109458215956812314528742984231244577040363409697799185364670830042955383764809172641304783060540739173286485954859424428405592201752479490854962241072300241001025640445638692162393725338440675893193096220932588104453020960121573590533629206211506555126129832003485199402055921328693799590594864104272089318695955226990076378638343770138343510137685805501030206594858276179958764826218960878676036947804658810562878969856545202892871033199464232251687450789759734953851307416248721206014589490236852398265138966233686520604644706117003958755667313692517177546861543742877945737553196660428317180025171863832132723388762597648653364248112658084718737817820997760188647305331398912031336357435038691863966226612822152155079127952957099535521373919737191182220454807505897380494293845268898570012574849089296103711055308378646130893529687760747343123228516436044262579838440142451636786552556884467266586548223616116396408482385619158612304530121541665052871863592804057995861283877039270577231358746655428945071920656995946680961326139858395963228957330758835411601120444886420001845536550243120588801060048947310199085137735629030295294150205428014287740414980793633470813589209624825876909344528115324555076190474940415646444323123473508154982628487363359453738874932777535778535679051604036016377928748450305715566876266552349623314175746775714890898148820584380901127356810595642255373901924155073029905890455318799998901477230451475993511275285411996810454006118546222446644095050122481145269664017706248621108314743270579462453586113520333703067076059007163127874093537304481623793458265182094922986543745555541169526153339583941807968005008368773893924060633516180878958489819261903994949087282493007869324549440136456899271269355825747911797255160245778090570371459312066988081814273197431238806602999340822593895296096601064580535198155233295319461069437170832800272182134229929497820575823710594466107328581672550249844948500229310222135936186779100653454826088705244765617541237027713329627608376956845377015376972858291523464993426562487093429705139456191936547926890821028650602155524912256553693608264408282083656519076762578379647167395602015668857152831163048135464116654776287418633559448570177392615630202453749458252784087129674946899294093018558090265501213926631564134468028410314808480236944624393133391031142329597002044453036684041027885448228221392567459448031116329559687764051873847826247966340953089954130057496221894965753808384970264179493773444965320844155993253060948634669270254956401034759810539457864620200255875464444939795544721605580406045613090558138071110103595950018113779975631898532512689971735635403317909268878378401604373143201237106754074981695827611904939568121294053320654190268920397291602204702074595625626485008485714176025682477853725961026092349227879108222154851230708388714735168722286673426072585441104467517497932085948964736508613329680392484044524552078281060533171680089204552933996149316376660827511909652698521716777580883646074764541694432746688729322271992274480925499852286584641940304957306578694672739868043641178746084058532557694455832903946498526224589819454304781650136722262515005757054343341034818730835181535828229687239479533059550711980738483800886833410472192008721400991545502870519602860383170972943897244174782126904556490454868175223385947132400738562879866232860283345494382710775620041666771177040168254106933034623662856535575059620083383656028214983716412490881312265755065395999983462485421910787279915474014569833928257154544314019554221319493878736085519616417543234867902222686576853000392493380209165342591897264042689273073798073843321028086885712659662286328948756688856698845883370920164340337833635085331368567376944107551563961578310107532690156414343770657277043112260878423048500070975656368196929673945742095666773637252967514361818621620147070372412127017242624479359484269414706342313611819419333816925826419907372552054111950664119338005413152244066551872840958810886993377742565498554818692606473802845834645279091065022432177473381087825982479660141359170286849457391638484912806529984885801446287390357020418186621090434648635240315598243777575275894929890682420516580420395586302007804596993604415754104083807600658244498411095201810121839745426192830630140949445246925911565729623777057253550306173862386755082066589200140277185389190857311803611210209384432157488317585696515062438555717193634285735357266227815152184954338584092693919431536620139901632564146366376292310271768955519299520401199810659188172742252759469420440806056732348283221752251679004342213052004257437455355382013065285736132941375494043899529303081099265927863912534852216219761496399324558955131141617757409399493425467719696183026046003182737925290885946876531276061219228619150834177218332966936639466409850531521586675796995635191738194875922871608050504965307034731135380096194749434060924838339836222672709184903860679071234285763887753080035636310270337944533691908109720412274964100894961194046610032092495038086644701715409256130709187310338367437254449333623729854747414191815753234465620425298452276308664865001793341325223761703058453406766518404265212898296356581846777891560173116281652176663310805366944256835307538088002287337957226615028276602415823570176961195195781140034592183518039343888425874268929259518756413998409661400618671870261005353354485558326265867887912880739298763642904846529362872962700305325465176588978674599805232213167591845034054632140080948455289555929662723290054687006816825597636522141291783260672663781992726603836584483327803798546136171847087158185131472310301394943513308471316320146763961542319172769805727237013479868274492418230951316856282606154739506708641785094666629760741945799423612024921570004619104406397870116716799418868301520080657548264331014422979683844444853142549701654911151138998595847770707875843937403133787184718498624518222018079716956916250160186071305367959999618723068849569642401910014948710009125268672624124078219727563212347969264171437256469920349527391694722044171927845037612416267940302445213014875573230104410939615387602275782391953191403691031683418715715212779536774733952521135078623602649363451926111356788842815987432477416872687364284385129519340103670957628911256675489705928698944140161822827111379876605738000941524286971109246974718209692522022519952976970009545177648189367624316994930949518758660272822172894211182051866302778620027475184024036256504500956466955363284683870041671200050644347622605651523922934563391701480339582007893354729875721897324110231571511255023270056861453475644576671867441835008824937214632613472376946325947233726200687841427317380919687569783858901528053137428385247410655055223710747569318006111235685959108076650347769008409286406231302699310920528023502391718743227325310589981247906414278508115314347674003100208399454340200673609889833619465533156616494899653951273449793737223702943728264152956004368756618201881609748417674968473274480330714551376091495105547125524710759279108264448704320091984254451657865211447283211061138355250417914801422592360717285518064235842305260753347610899604421424563650824411523811413726771336977898075480202965252917954319939769751878811954041174281942415195988474598081207308134617147933837764206172616061428217523995102081060898231494960414404437202574630426941845160950002888847420772723314542751534248083326268238083724993414840049784314699310078008372239719983325032318546872734465372176102635079917702815755334623507441791331658657083325408845049479602719430230294910515501512750370933215085575789169504060213831918719394984963746633595198019687747933027939309632300819046652188692678040729313711463767114702646496361296424476955441597617693664896787633617979914918505142428537725176625069452580506071665836542794666457717247013306864226983210719563544719207715682849403472641594967615765461026740665867997244831247645152804940288802442281042416523603133967625704811599662251011442649899747019875888188913983636474384793573087723770404530785176269346055567102323469544394570959141717422718764419324142672691475894311167566231846770089225922504466466244053525111512769455065535320826015900836465349239042630602660293999009636443418017465621940129670952098104676718782586011171033277262750756939088848919143346358500215280559015577047074410662086827104566196458726149028727216924585082195644060900625915363017627113447263486269099164915740639746657233875073297656971949164563328559524842228889919951724923436998713531050712142031588503447747819806009184220842511031961967337640628164521718315149519538903369990381263444423277365941886629711384567601072218458854966698711036818185520547140497608938997957645230505402162041558848141534391863380505874220772047049600758754682035807441448998680788016533098073428704461977165839136850127786556529731141624252136774021054422062205769688088180684625463826415546573249569354346734028416452764299524767594667031583825104823809054046385129671697384070071385081674716214793936888705450135622535275109835295279241623038346171617354222458987657790059805792179874069467692021687465043747575535628854420881787635228365615187936415824164513001998711789752479140638693479075874796077943786082091471782668709198819709866555475614571485380842028934700220354241590458165429270603600016514723012721525333096269700199695448168049359507290001046357995627206599144644997229373935307174785437667087912581228910971994580426028658224662109651507736547811860861471887105934950620074639852542676648041836055223393783598293495612083239363694172089630395931515097524993442596375663456373813172875975687995346440847877641925794237998941904014250500234085133136404131713689274167476201027523738950546463596900688326330399296971681706853165599632777359554346408401430107601093990514962716638674771628916525680808994328624100866765173107601663767810219651989025187176983426991532626834150474810018662312065592578708050452336249518999738662864917674782969540875762939187510653507026756563142254691729350253644537725157777264801865072561357758090627327393696949026225075518683171451504939088195161409390282068719372360986528457653524747536443094325861501839034642581535139703687356523789550161458300143384767374758861569193982454382234143083177791426982818006917782124537612543105789244282560719432730574416568201904653011891355504648196690888535893321034243390940333272483479212808665614580184219785491389388893339482831650018899098359799686673576286792538639436986639354661850071208134464882698596747512201497195257043834106190915556168835184123075875019525769997487824696381715584698375126133777359227930375673191756425919613746310427001325789564396720289390260315220568435251964299845802396989447294014291420039198313837221359729878792835389403838831549617093745324465468109498860242093555949177997242095194433277263250587244387937033912056160804044753410660600256540072552915526989162139900170494576321199750153682629428143383630636932725159918042524704159080157025620135696464583801692164404070740165809496765413814372144333186197318424188302221609310510790896067360962663533311039587843046506570806793392414733405564218465793988126305133093905501499290322064460751743130380959991230495344668808120173452902300495602104425515194192261183598875418363623412630801913044097642784725918023823417776766521368773061098155530033201016293788463610653460563612138054952041096398751627035100722284054509875554475809057608962381870847588316334635625359244457787115463230694054821784505435484934546673124227670339516443110203116562090635884601944551595940586083554401600871661190020561643835866980671644405129935248829621202151609451032871949035772046097459145183318305477449898910543045372102265445442861206340990007739629680491240239963882348499058579048061370403655067907215201975403377250718987587009985166654235984594700828320715772074599683970610914871734856060173301226000690095263434958945927202431867810331623263559344954702880674030955970436328968497018117002433169978802504452924518179542941836212180711383957380736020499967627358675835744292732556243575096136081759638498707122223568591322007809311653326789248380727179878342194743419690386100981789461713156112032789584331120166486218547954420868681387516551195132040355376107993117897048374094241046688775184907566176225342620424989016998130438172636662858939464584835483806200543612853907422590580876275553513105123128194662028396551891242321096283475124725388673688550435238479193768358384978593277152117535121224849792514347636903126688523045032528667585100003661884369876728886500016942131488083383240766798722647373409645756936206296185311283230023719071995954312185511708572204108553570008087500953064167222441855058832815359568793940210560885045956156701881015868033581710944037562654319012502000188646639938271702820178645764073717217041371671744050958774869036411834662495565502685053575675290998714214214787290748471096333177442487199443333341330456132036446976839739599005442108816802793726205469745050501896538308341167728175707816870304335114094798427604715730343500037857099595092893867810838533032313844926680512653527485521979393114535918159068186199493578271039966743107566966973489877010784274370740944521533871674520654160555359456038136048296677019095299613072816846172921788126395568846945390754909969440126956200410736378805054224644375663186094477005372565244076753888762307367170962057723160740602590751531458512471538283292614525673434518232447547029078546327887209834163190559395608046898320705810639559550589147696044464420614843530526474807518675590602452357872386738474382800138769633408641719998425520439634539087112538811799493500147752615882000011056076590871766501553260212765603377676831210934183761915382763208947975818469636156708018327823136924973240160057447055405653874756882026709428720420598219530787359370980788591425762204177969697372828909977196222716524965500047678516842659993786521323902227582983834942023868312888764049884740346942369560821678558320040406923759211507658427234782243342677569638628792565681105031459560212162370617980546944896406181163768513722010624369311237140145533560886256016278029700159727459622426161487139647535143058865299485994770572914364561807065024315127032939945602580889077124292565953267306259977064829073748376433549356633319215416572571720107384738477051661619089143882271348411646206654981528493401656304180293651512254777795903129062044307190113040273408973970835742071364824600915723845950536697333058058387507580910414613389659098233941641813079885087358021979281804416120252173680584965354084872645176101336931816715497520252472962855547973716523908789593249420110757379558466389438469669486672031014683754713047991423426888329152288997257945941509018288032456663904937740383756966684118563268849809861468860193351133994327964647242039231316376077418317560796158373204887652452278460909021496685103036725865645592462471953252837309989141277037371147642853555514061376801462052362212937216382437765780803621844474438002450513037800479467558470191981285894173996269853007030999491133664880181711684243258729584806758000518135435909530840721239828412483017291436386988469124683170065406882942639854964323636148958850962317999396802807179461994008979037821637834631130514525473057547346279329008432617084254029426926100404576927387993948630567409918495687925025863885614302572037069473548027107802288037396106420598878782899150378314637558643059924904265256458399905821795795647764725137964480788391511129647865940475559481823785644563385613893780621955888485636809465105450274134993868071803253048567592343137723516556594454187946010786643891433856380527022213211724964893278592355039026051999570122612317835200228542863276961251372105885244920337152879533853694380010183168249517049253112609271099127305761012411672679345370921436916311916326660728645922634162848437009241400834990373084582467172331040049791396795656679720012373039368795126974637953322404913963006561963815119745927608417454359104432990834408608605543138385287019365464533280686016752204239631660258932356052242306801629944719518545462899570057253510056056740043560024047960660993427268140069034997123336069270558077312148330597877704830359813982968842361680625634882569156776781961209672308044088357609041961058879444119434901462586765025612778073302403312500875522363455506644070968694435936079220713513244666615279455067778406019603773092781648095852195161362224850883059282485311530484538319757934318856087822090469739881312236349329181668523637465181571537135637465692965519713051525337856612572306233484390153186837554135789496386488402135350843736680157767972087692115278204947524724199281178325373542491105295539240218397052049335959986629822555144865712239578294073604629787835087660161208964576605944809827095085117249623125406437797608656862572766319661910347456481727018844791974394711983943485801132435695705507042889802251709397217370487053464235005884287430337014705347911332875751365809652734937319336301613625850837748346022725986733665158624537555482911030148973258568532755733270539978961325942011544425956666404261925310460624832954955912697369865820005477865825791746918300477093957149575076618656284034563341104122774024177758991334020960297465719162033094120243589185671712947435812265287677267678503373140595902813423284459788494215522552330640127685932406371642096213036108796209445954522456552726783544039307111301897178671058079045040008247418331050309219065592448385502112251013924764594124463333254943300802002687903328392604320563656617867175232861641525196680868337908340788842609026465384109005661026128622336007137146754411530701372094300042796941829854332604162680961174646711753102799268296570924033937062697180320972435798843094844704420702629097405759035397864221699174149757528566264594618419631797055823655126108386949337924008088757179635977851048995170367396293379405861735397871192952638941896989883425237686976756358465061257820029690618448097226070087025485813721289828199372867750262030549349729914764119053401909520675281587281264914830991145920057699941934377505536681757376962456816706845753868162766381113557985756744324793046219734590005140278052385401866747276943610390401027671877636198562426326088242704738541192714782526081166966120197627740594989807293606049969072939250789909226572958983071356143628062860242919800349267516675090324470284095798524369347850729524119571475904378084285465441338283821062501987419496060842726038815383242904368486665420440143980759436807723882803889161890741087578869050666124367690435262805237157131485946231395528345936051674964966504937389422167207674565598339242813770289304840197717361999713677144333505008704047259417640422444748341674913235403016172566081832638545648813319032425823647488385487158935715808226966193707837672355495193823103747585515485977922559648067486710113678012267538655728306330329154616512277171078307733300620758316088315914483860677886191040418414094216743636026091964600550638422249174779060144272844231098778098846750125971639798623854356865526048397578958184461341043890784538963020506062626217552925853483907783848268479994469096613746000734957580086250973979881339390659414697036249299926957481483954167708467712068932774795283065725415993364185470967396191682386036873538088315535293841024979527603699554060249036399298213980793873125218353602420106942602131792631026286032136330386556520009657661216860253074288482422447290883810389266918017645576706961008116795694605642129643607352016359522251900163259481523787823705623701815743656888920407777166115062659099662254259004386668275540818926145353872005132641125115046373244596859390340666574750583828753733168888131038855101501294801277200341284135409272870545820024275093613435835581689737796844690199772186737511328006447838292556071940844793830763384247480977701349028643844269977045648050892388226123757223156489871038370594589256362545090454807818576964203106672892136513897226345228079988219094614027304773256291378431262326052243185833528265769711750337450108818530192931896493407896450370842950480919588245241813331226686399704845466957300978338925384903660836595016435608284659810129743100606760220742258444747625263776282379975947303187583676110157046354172954064753516903129788306478749630221562876020555387281432817924829346712917156796297649580027573407394865340316387352662051605674263955576583727283446321177367537520116656827966781962625709837342448974859503534024956782882025892564713098296229670580158815891536940879077111398422140884766498109091714281925270873790302165379030873449548513197522618426441550330023948662511263090739647492037623642366272303245670779342829514175858906443382881018284905624229932825586926554998579621953185148789088042810056151321820082250503596628757348565004618880151432225650126007948147581461786686500261472240716436230190355490024847703247452978407786010910543680400000158323048122387689019591208145366309019648698120844562014268940874491161271400646750942529459465092111130318466012733841608499058694134413853657764765435054937703961608485354932138164577563732062381900900508258067098969135244446361221132579395471733685084308202997979771691322521333687498732463729015695686291286036163978812281370440303183666925648865019131728752439454486256050628403659532023862908937987472339432924915641958371058497826440446016641031203674671152934338762183002853920156699744190272210418687225825206840789169433210092128201260320244648081069071532292756420122508978020193308934024798725200568387179918293468604262419952424326946938375646701715406974916962082089993843639766385399046834481173479994938950194291655508599500300368651076798817420125230103158716235064630639930966571248908951315386633616328832308273694385621923941547239079999674728322937049472856479590335357230774295665572054815137924624884093695653183901925058247779699270616024164815640838685392560968960514346177368328187131350004406892648092083667245920540915728659378743863855042896229440043463999542815588002463866647079410331383659448000357120521571621124165195030809447208311270132902870767901854455515699891270703599955041122690654478422568874174469479572280554226238195503844541922716209175363389929093253952123752418892886773531569378774598331875801747895117708519798935191258200181950756386217097094795457562280880306256478625703645916494092673499198006346767338414818411180963460390386649478169274469421398049204770861613169054044594011901185796583230018210745903342211044646152149972603774123506499040120547178450801347343592612230400428349470309791266126095089330498705183755303398007419252936217729020415763810816091919140279148077179711145126121723464708828654100199895646556173499901321221188547461337258275333921928361957631595297143438423354538161863533133925589555613228975797230229113433685256790642078688229972355797676486039478508009022541327289806044251852079537910337197172017896027428705262842377633653830936917510406639337364916614986907677188261529106350429575941690387359616264697541202215015160653632754993284201042020102605181455411801686312979162950469182150430753215304910683497039649602760497849975654479859297894407500867546443419684391997397283417783277802559979038162202415219636242591469847131843383843680111890059747420275627301859289861479512762417317542476783195795818910656747076248727226461154448644809054762050009726179798716698736866870365112561812971468075065102089218944086887661658860322876468230503270103284922911632222075041575080849698835089424370594939048994004545572296229752170130639757919954323306422389942909074592933598152625666297350125232156455818214406656780456080734244217711566226107143933151498463528391371564443606003524515082212601417427383427641025528257558113848877918494725595875006193646367177687631884258068258541229885075737364038394925740846075319955545834868707455288605100180589505473674202875509348552315235780997569085864465743542438272036635713863583681015125202899044640122702361247765245640178946571590861654947443029800190051858938636091323186362937212144977167694548797660139042185161937830392338543174594459429327117734105432786325414929091904419348071501071924059349261791369331284753057559467021038234001752864030106951276688174624140995745931567970818397543127506113473808847736952824914678659697911189146816164816824707877956021222864791901711719825057304181841926493027215797744876768196726512499792182366338621686152554874079656077654104331222555724041233408324007402060821728174255894470195900143766707107257302555334479432074187777824499488474569093545814569127399693590292826242972212280968095987615956120748401813220333177108464985449105608523465736965930933595773329865674421954366330640217038566988102851025084108680572182273282519354864199286948751551107031876700173450564477078254094512802895057207585282815058928273796872989063581863844449999968437850918118045855613256751128756466030771298448502558987755556676335323505322749279190738067450000612389016336401534901610711210900469808437356776526407540179374588063779884126988784860292350928116071346114096273619702013629399500817382876301657971613132991285654333164474300919836544788636504267921264079140137082719608629785470162221631685401439433381883455090964341737115370750873273329311097615291990790065811568116463751970247918954441608756239755461630556569952628559378081906575460972651629677061773023326450050384307975583417781848150226394380152557860723776481124833722805439067795583882920478507170154597630827977871086095831104911524281473812993561230954308586763643987358329794058732471770115564664655873385631161507083897923804403172936262625625610327276079151737880074796922278279059433018860658444693904567762268800253300948249329134145061337931901672866426839020901048404079457038684395186057166904758685504737558680658320166106820868163700555599172937976528519077430062934036226797379569164093028719608764782446731873136968481984563512508105530491793635447247764435949536676369458381559300004510457767072850955797064036449749720178606437829636279398138083530317644928684586401481042228629948482053688847226534017387267753844119215392900074423694133904059314737380722008800545399673761813097361439268669007798486949534296151524015199553564790656107683413503696312087398768458243564137545353869592210395969731946818177542356670244447090430482894416138663982056247656902168473979802917408883732693143839434284647313680041468504877040477485527428976781497337172933010057176439716137095333635496934748834266203327603246782564857833884037185638931613210380800508541427099807003736318078868202854108497013271521305305242943676332411982330423772814746843894968358474336223803491169412546446961718288316025789708373563255794046933016088066731793210658087871971469171529880304121555092208930277925802590057646209997771440429264741342625112107153758503486285551772059850007793225608536089072250933086549185773983107788997683417713021260358973835778144467584057202640930199662130187472549459581722974096600870070786110203234636572011421251611873444845578782106743929097722150330296295515866058978629132434818769999266610169808087537498233676779707963475424644779941184373796849115918723435453312232904981364761746552138745767301197965248180582453885647589527955820010319232520822388561158093723937451355012315865520403637975517581194769827643184223790364360459380346342538772983872192972635891814902943173795277082855008377642500268076516811344698922685176316938674597755908908827379626646622295200149716595289236563239640803089954029954327435590407261802686299906145405872437430992642819697801775546715065725438932184624879421624767672241629420244337149651565830325285019966455953699273167256432044232984073545852446098695249278702019296492967652582529393084338519110530580217737423675573485899084863358596202411463298947287223734493855431955278318944828773064108928054634670487508517102053321843822289603244746801233246059754727326919966113520585065954725710978978381795438230091144060271465383336578952939357790576697050041899422186075933293717486687256943512503428071868181086223442679247596692740031181721586278730133453495349490057443910358470919662532764868874456784011668901117229453650833852515191975572018866964322390742039864141670790796265739860468344783961304792609541609473548076703450174673101120116303123407287815795128471915238027645925257918940050497058648385268999236878037819155830225858086818357184822226516431297639050668923687481275196796568895347048595980989901109552119960764448623485026884520000635128646186272751869766182011324334135726948938723709138218742659942812413194460283297941188235051949215968851601197255563251512518833034512678422464426378249564044930117121713422825102204623673125841727873604186191870599611857736582911677927026398553378453694956717197856087738108603629910616483614916551457661646336969434542082408150251043826260420987880985570676902977335975407787701980797698842791759706329503319998986505557007776802250871663212284977566583361559666284312457693460747703567685343625645610260880571659831924882320242542522904680716936166851107055058245104505362713770321555799411869050778120665042091844277439826574536694160323385670449965599059330427804512521680060865685913277239981002448020711248195164878537153249817160135175497347807381491634288454602865956186283757455786840083716712807884245772914507119856176232134080241016740078616069096130301451017072405458229534690453861124185232398875308581329426826920000505809503502921129952354008912213295997627946872566805820231786875572331684957809885380941308285704557417158119762701505676858876165220306555491417794523896990031325118379317733193960870661427963877840759880302969138802562111043178082463117936618694039478991233794816109374183007560869807458631369692150019739630339730208385668802416271435739360060437840692472488864642373362445059882708569753627864946074810659212771802321782638605759455823925734102253818559264353508322640537553918514126460489674843151534714444484962634378508879983462535915482365030328099952903388215516824256114761499749326766870893356967263504931567566233605799695907068411607863403969580750918695212974260811267417015053166355282160064767928299965787719568107596255971826509919600477752010115156929287842368487995813319062527227815407686475373936142373188470225916229885311087466240485187130719570004626128512420232908750089215734595031977362563633108573194789052786876874386624103847605900484467663569918672891701171878125082139899181749122897483202295411761662127611364790563461771577155817929346366708283085871669569527742463277680738317632721906317688439960334181159765097874357760092361514876473742330923037795369806084148530440459806302599286025157586718853061932235366792924234500158872406954951575800849139395949119641664794933413050083964432998504424859037283226111340352285887940725744754675929781886691935527320168341682502989723527878569794760074490149787489981570121489853992071276797469253865810902313871561874803090909481735657330946813843487279247259879466375340662103307445816404904998226023855669857808952081615037899672726388408242886735544803580270502433324963073701545700237338458023359703472360030271986674479492388876906475509910692581007315540814433201075888100991782880969468875324770706020147103355800961929829782237705997549226684965602233554621863730565187913808375766639112249382051972907615556086732787484845523705772919251823788331360835436939794473586122849297237908190626702398688313491195144549637998988975772041046077497599638095915792261493255353396715167190405568666773759754325399074320049764026300198049576439209772931339404791197411629380282139900813140779237250710043055670318154825338333438855863865709094795871021709772507341807028999626659236863816301467238323522204430534749319027575144333063530355335890986198936179648850053191303592927020453063412931019542096699935634239505016361093065741174991654929944411685524279567216815704690323296193886842441639103299105232727636095240570410766196851600126167948144270854330640951184163375512954610888905529819664037618818493166393115121547888551694281514562545982276322288944278969066074694747122029413596652546322026285206763901712755372676930986425081374141821681606525806410665491834156047373163664730530518364233866205008579812255487522414541580843632465970489057041471611700128493714982609652129330395681299776912637575202357759115576604502461445646973442013941344217797062848230316528083859907451517695519627202782208700467272923392139867552534252841278178923515540773905882588035761180229377111097902723545350252324638367548881308026059985257183913613376434469127625104826697392240709620202542724304174206229804998211541246874941875381158308203815685971559030739545055096302879512101082801952516346366672703701776960925154510204828348901666202680478260930727010669156756969320912004549321539848978551514983432054209890929847479037390384245004157688179762727071045345838902145150751773092620277979782735219686986657684730952886074934162047712697397384874443210702748593723466611966543868141691351781837218669889890873967977564972768861155017488429162447449235915530937405518992486839412813237263035135419739489121296469542577070775179342430683576288809173091761521430109981935836968218013328141798622540935468807385992555449063765636857700174821588110222840213186384431734035393627207526968189786008148174720222520136548774439023455544900645141824201749900001088611830679138072094391971927967719852303061825189568565018803623218783619066335597485673021113969545817053217310223940396772865751301033895916574436540791907915827317198143687718024691444481576306452428299938456924279278917229659286111010041997138224101780817899278611918885446704679100895681267508396347083772868472005814594294488677994772822312444355798923900366329599151976703301865347166248856477052807314436055495424137488660560611222266129243156695821452922466840511876852273897272773615558535816211984880150414909212015259626154049265429455777583118163089495943868761972956109134338104119985060945912593871465350128102476796714627000242108959143400821150692924251994914625641020507501436540542078001656092506940803953310367765369577809388986811947665409750335829021335515450229718924774996165735567387834136551131832027485199839966900118663675497659692744678920221415386113909367435315578189669396561150565734147962552163006343510426753479113887356073811036683377023295299444683385917718759889372061459117312212992632109676305869659113657458108604211494154389703088854180778250393525995861489974540186138016354551103763023972553169261720352995006756898348512198289817797600553944923443249090730314309607049235419571317520143479741087644711852238928875034324164911351415710977388143826523693768962012383407799024257287805254414533018444585870660773575131793369602095097402963289731849193208101906877206159652504176494521180013445923134119642206795345906848561253754867866736699944154451753376707642549892263867523833388948195586498140420379989084872107828179969970142405825395160395517908780806267685709056735719812931616365295857972205324160671580770743136865411782919868672935375020403531700226471575344370007131834213511832280966700804639207085791546685455830538866822290372938971415071083406172066437044216002793428593573151603356023217533241372543692249133649070131591368941193594352495292729503717421230436312502404636305483259193415730377308332254387919547531101195626490147416190317830069353177153737525177427553781223757415027082024611028150615578062044815422346404734393434791874606242578251101208744678137131861299236053943470162546105035863913089698750586798606364950977436537979513474926946792257304731334108317105071268003121197725024721470751927923325850343271540701376372115387923292003689343311649777101069708678131976622475910496698570839281779333258159450041154789052517910986895787125677044908213901929370614326168932357237181261187744856488468690136053407852922891927514611443729584700041752000011417651723302054681388731332140545061843097866269323460489702268930092292329442906025007470682607172841596377913967929583735912227605899086097656215072439724489978381719861086432691243978515493011672578336896045136296634685470954881123672376780182196496135236523744054924265993320585121723559853796379596723727901528917501569550867224765274331674750192841453392945002825411031574865387279560119143803925243359628546472915773623268861823366066456825981253058796381901614012588120484459947458751173951289659228750892685080978098750001002761398339495520136509403233594778555031445309048818791645079693617549721429214556056533537460122513000934066902235935456198341141249590402897213675575521402126602437052792767336847838766864080085082095720933818495989336762584296613072983894623564141885125060906830042869920416982275923854075791894916579673713683328963230267348771063941891964286749796605091646767601120655593669614997253081592905554225509810993255317678765237626196925512853987621172355239568952544831320224025016588579637880428420944473314133965300574703330217801074582717104805444626779785308615629277742588899293947008059276858045910678867145774653671729325151004133964606506718525442714315639341391793298572551529658971811183805274765387693910798262854117913856805599933071855652254907832221283802319081163213746003974823890969719652699498820272915071716729037769448955632929090048461157512029170232944682248979364282090542238504336474323383367624439820131917585333784585920789761889085386417885807328856256088774069748133278786001299012238135052150078930144233465183949608292014632322931948637463285116801522529928446826749331515313942832437460158273399570286172183505215844801462869720080089860769909634253363422634301989839008507454820176574774434806453328333827172871153920491263502684483843341432523449590214808535992949125083237238368716268451087082508731707050461277640101425513901846801060404932336381872425753524845205474008323250181438056249148101103355000730501426675077893324027633189737425290884583783050099392443565678591433701213447703404000384080030759849436691262664741874246758551023390935133650348739098135237405366727596947400624227312960173607464897899611347421805229336717851407871292820089363250158983476886172808107438352554884573559336873694740353107737078436492543942062990847323878304060404278941922317025640514811654255050955784970793634584703751371729148567663707222589984451418167549859277677943360038828537253777403357445964386510658248955709351860658457584052341504321246450666489551683763520572375897929223648154174919540662572840210781979170069850429145286537435744833854416324660925796754196124004230788019359940612888198772144505807314995352083239828438500351123984994398538296595501859107682609809615066171886257373948966352801970424152491943484131363490827689718169381956873774156356657421072222656660041646639831932722824012051734183998115980220474114370740561421029639659234598827475469021638903987248016306337111775328106519900623787255900782481079401735646102639238044063487887784540834556873164842318169516056021948577495957792773118330798874033320747629998132851228989427353860727175543330543119284798089178418682745667631608205722489560626541432384212638032731285779615690556650157866583485433610958227989421392473038917444907229832769376399351379537262382202758917987967544010912535799969936365912063410064544273783540410520736619205510797381933560090210250332099630815531814845310169843173875025548046006254839918951760112229611212278855862967704503913772935525496116855160715916309027546702306466778290136066364521869241403894132501001002749361057851282374436419125844318659682770121787338355199066313036196736794727699480868886705849096687254746685753576857943790797965662628081738481382240697580474203726680267460457793175453731038814875188753187118459374334288059161009001317040049537844705109936464227120214831795834476662426032190405391611711806950741463465556530495579310870921730314195034646838586206736923305204788660594201156932542709791812401629724816590421540528007271943966529098803684523233371367223247469101206710209308809542716197852887508946320357125789092929148079811156490105639958580821842084792512973979873782007985100577757232122058478905177822790304185590114465859644181838032595045390751277865416494418293901250584712587853862260816013037457214126304150910828079933615588898368452448870640446518338631947318100848708381396855255571060421590816707757223673015954952288293934220867789915043471541390236434879809877525858004709263997947194297651558229733713892450293875461659636367216860563315061697713998889036248517704354519387970572804741929204479637292209135166655814893642787154211132628437738714670067457814552958994448636075707093816114573979280701717906738606038154435610505458907932788026689889163063557563641408956245363685062862123185758001332388695315494756121074530421278310360574702344565789645605649482100165632227979405506633467383175730977542714947498669920635309420849803969760356984777356507646135193004009812613558450844335155744728660548033688242690141320368779051097999114347405100687978058618490739273149917537721548623279722783398577631491647781475052826916050878396640360794989565297995559218348610688933987613377374499969777701322953932448458200989506709204586495243895713191429766335653621088895732500953639489387924630179294321765674285208751060965591556700418228801569048487287106959639241686687170027603617365578405555302831815336779535641257522755822236496315014858144594453735815218656751527558279712055814883259355407102273274952230494164532272743949292110602556915008560040929200301235845254525792452550533771506854077152922396667198687953647697121040757867281875763874918625152179187740321382658763434778071628271733493359990988181770132000079923799661880805926163876662534377587629171799888554691239887720903534377232923062972570461980266650928510263736824595701620756769351441009131047551244578908608866409068858109083308523073641291902725543877925799442173704217780709268233656546027072750738693008814948274923162877445121515034698596566221388774555636969949271399242554987533377004087389639845346415491142211620472091333943623702978131705893758935264585830334905410422669741487628506336836790288876580508781700258999879008160970320961657470263192146974278056762047803821044588541025879321350500908598402039406547071679768785022608995608838292322149196808528982368535178938952178245085822303823887470625026759809183275755901433264051151551011432254135625209458780715160411571517261359148653791466443105794951994189325625815217623640425483735198386760726772376192112619647529792611162601933238179030564675757386861758739181075791986358531446333693559747282255176845490454722954745350232655133317520365057011816336593405433145911368209822841471622042842329707300280090742845925718018969005272622392773718327764941912280907413100115243747831306862834154738371941699168947192576677647410688167348029147411417580813897511430335019721656521431516136896787224212923003432666939708177717325513848723908919902977553342543890089482108239688120914843249166967970086933557761886274020086503619693151280086506156734679085969799011443993986102167777539720865975494489981439221595340519979219209504923872045083183236508278275286909599730523224538275453392825000896838380935048005003387644502212853461636059478990532300424284680208209239427347674284795195132472167730829209290894763922035623291666515417728360157980899044534489186282521414238553005092636101115160572442810728571912688033875388330043114348376490453264565778942827189244385689335259114594883850164315023749185134312683763733355143957241325774671524864276173058612621116376650083514604008910411941149681316191053946421331751798186832027006447752525828882743997158824169440326736320106914363068372557913146089566209900146329700408058521947517251909941979763226079908124803174048872051130814474155478473256539711663837819053297802366699935864568523627640490352185286364725400389271875136440277720937901252496495173127532215032044255983399272443492271839692498694224672925110916675844572506768924812517472271818931295443970934506565448498037466493574619216082489103371486740375123658823067161758845988698349281589914234084612751288728911900328140025446658614996094344225036926763254171964409437271186091489052635280814950729297019247975091600965037732587790426487187948360488986753115614941224153535991219772525694457841845719805615300386951037439254672981833781871933645730037074567625081729629207302241581654061048033274194594142739758439366911552969631898095581940615923035728037602929190109145340503139705638324501345928942801166283812006792070301640703011440030678996411318651920269944172302308922186664494801340358883725712732014505217044713824400656117563754055346740492062151233192165934170283968303608911055552314100449886919723991529147558104267405381038158909230110506080908153585636734496203890497490487124823225446535775238629926248386735432764566169133802552725935868980308299510052432013604013111984286734573185316517443960029822009525933935061976013646559619234081912193248873318176561229586742181592653622179869633957614381129283328803429566724280438159459822823747519162461012381027268334821930323740836311895558583726766575276712911528433792944491693700764604848533205754793470328053379894186202341567084020812170364083328418529576217626456510333393891237591870320199106290230253778749343664252346591068303699604543095186902034224936797650390746937373384403388796494251213121941905644141434785184415940462932138119466888044921633054260051748861305266198719760977849249649578017267696355464639722864206157041427471169466437901942159144963262896779113644670514787072873229766386919012403894141415519529929298137666231366871660296294600235402777439476263848525899939059567480864653904436442197616115422773960035753671154805756137155071604110451386749264262318211862564397225991601846731726161855013158241074122420761377746067865033048533833265806050639619485405966333936051021007363345254851935659687017138656021054109865082847414800727479123925189727636730404180687121272181406836758015611548649396317740160498179827229232406481425055049387130002571607253513753439553434265723099133930877736143923228800472761949388518316769337484392075333295591873177702194299467254578164294654542272397871702113638528391073736465157111284850076668321353427686281922969212687399333886748440799749242674031753942401570622907908175047534366105498949357832318589333014707541480076694412840935330535728356037175397514096075451220073499152376866001982870264866093661499738128609191912165360059514806541283914118164414471022998484760196256722579394066244930198222992819203211181945942774280367701562861217913014038421754848664407310209489216603815521454590616140068102527516984795447718031209604342831232989543507068681542920973441501405800230100038849702097930925941535988347803570887966205944406798260389044298402330908083711248145146278395297349193374235302039899189861024670219342322994145845536143248416385130051997180329361060937669069598383948851233591577378580433495099829634621238206033262169496320124649486549281462946852896302943237007164579813618756286797412379373760206911681142681273570231666619994463325006593966033210568615425333267162058356395225975038038555829007650474437793525264210603632393288375805357400980482697587213655481641056264099091179169073369465940874179907437893430297472503673885015585981877292677167070073414160279824993148337822823558523268691155411480275114109038432134386474386216773715143860846910666844525084820735507773204008053303843103604194531674688392075658564229136725951879469369887853076596706154724482120140978665962509908630982788313365392066318469154507855324940381562707744927599097888793002262215157937387215583614240827941459465807503285648385173330101811451982186719762801573169328527205521769467015530904335374827164092375866714453179738482314440202878197377080457519340198354127219923504676778976192439736415140844702976742831032163804862307592296693971486125637728417870658142113635509584184352839302673004341752441641257141368459626807307241905249472798034711545673847599861876159208103093967538757640220748800931941581531731690569648264772494427448509293445972071720274715303170982594448627808231630486631815686335005889714931374714158299453959532669623771481242053082382842837123867455250641577807066568779401208140891208205084884979774509080552079863767688651248670219630759818466733154685085072742611887449395811793078259823590987158636666058319773936107946578166943483424884431284224744147350706150027475095781835448963404924452375508570599807453805519502937203973221732854735726720684423211376325254095653895344233797563285517221075291619312364834390533157980505456150238304029543090282124977116682219547897226337375878985100407298480606385486020039242911232446112589662368901447921798536516451264908539014082456807539576678219456152067521406287780788964739714736549480464044542444928823616999589879475812854502014627890688049932348546734473928559062740490400830103116358825240184458632556432823554189299546505211719984765817907899764970156955521120510832482615465514927336724732137092005278630279054953907113445144213318688552329838625087532410989426410866839365636852366636086244104411116166048937472639847908582557822477919565308286240925636588956163279024291716601460424690198158533467920095858304310378368560137725670677614173555169951195470993883758133943251844105036137641595030695286919111960866678857620229119397691389138784264258367287142978964630059449795787136088942664567345999508535037123718404760296637331779474582038672224335434335756667355633183800954829690300284181626642955953099143649331086109179523028016286793593816280122155180379716085538230359691753833701917733053570413008159845115508926631964653451912788824836537687480728969824017941667153935592106916433987287844074481995186094828542009953006483837865137037942680926748627233517254398272654266295260984299818240291875388887651851020807243391430721397214036817383491621714506647457981138211720461400209630763769438403793425297536853277132101042295020059697421249934854855804451118932686677458278117333933848399956992786431568963800770293336919595795502318966105329033506885856825301895816701917341080101382601631201745352631017842264066271591166687123267517405472767969877795782921483669965054772658165662316492028539390153349074040382215431620329040576392123722938220581078674703288645245675678978928947602137455180849748270197823942578556611667748414353125037925929133761012047335267584295622202736920066878403652408381337356072900142194160049551456499272227380525748169342553063434139462043953179725026879021456411190683480094020538929707659487402527147513791748032826607043875969784874104046385532945511191063590926583200713884784196292986461202179893496103027129614166672295073264250333991109474344911187100345528356382035916542637842659067583688782963691350416402785014581408631097579053658403718267762650279345848105642898145862850701954240023246717660352505685664649717536259590994622183364109919910674953928924734214970247143688186366436266281462765956060656146888620515367075783228316542750243585076736586307234671686092936266712371070574754986290329459495243154095332064289313425010778109630603135761464911985382373840509595483512319620477748719066368424709567268577694648095838078398421886201450491076298787691555209773923142272058186227183966405095660539641069925337951036702483241955650508803930436050091715543462461210440856288006807541435864017881748410900465962919133997099207818031809679923239815858431309624688969749580075462483134546879905779544701390665621695328608946035697411660079433128641872744804275878089521502195502369363371912002827513670325311153912004585944724368188005805154137261760756173878472065746486597460351083500875721084696028741670632487736435524446939236104561400118409820934045847419020416358284881088812110390347519334364619936506323564954518483392062376648296806312544543594937556176539926867205680310175069717630351277006339483127956550862397684173060442113453137126683053986454385178783837444964621156010624047348620091170470822834714621828957843524443487670389321840810497565133127470952096642086460736346336218765946321174249595852440671352335049184656182754949569977605006321999439711667243038985930728326510559549700427675832311240810138100988444333595725262882055263440972845495335857378760201788069314114506195847122837788099202113809538621805873923749655245779329012124796354983298152525427698818224694124036328576984382266540900184875524850909217551490418168051207568076206561441361088111241023008672071332876211937483782453748991686393593445299376916954740905861625431542641442891674432070313392614314825630366936685310096901589429123995169017533199862199173442316942779533419234800580028282203078127057817021901548824045094730821637072946333544482905338191208167895558061579151822983952027809944167324398109488176997535585049881285283885723284732520117972532702404694635176721150784552649545324296219855572286699770501546220415666162505575671010318252977366063808768211432080298201092548454759547234630843502287380636057942086109068695762611700313283605192282175373698059392194025732847263528297305449068032199250366354148217988266807796182620929959867998414558582923525650031464431046848947036655539451312640475716482551190243491603217996890803843210504686565557924526186899983360549450918551460790236963407785637258395685749170091554932443736707710109189476105302063638732687725383965241700376078657197105146024462559273564439307734922068308745990554119578233041065511735592430359459495661102743768649673632611840807974105627511894144970513371614086202160523179381314357188712776059163005514458885792737119781178371769768952534845991523923309984678552817531144820405603407787506718801360422439225977153778082660769265289695263013342859807057762288588733926451848118562493464643825256879370936979815937728200684360653560140145322278496974644905324231393862052324744803012700840653857633409516571006208512334804642804528898393443066778195404810765967380874999610154610294699951606576775795756797174669532851412869804794946267683773710830129075652460145048937779741019928100443201636796981486390786353443835734462855858302583349875893444148459135554474142891313005314009589181569233870342896074332360570942076949695903787054546581247429253552083861126527853667612660233857114732969213910863563241208405479149680491497546909825614985445085003626331018635580940410892049355380727849930593845055053189841928909871463033442972623827302801885370031667809672648140069955304604685262645663584038150729246551832635430713952645588290896101522220650093729346882014744736372042564922885695780757508503285294354188634744556607595292263892002580655899424253031945306287177063265099860450176145885166005323900438638670076675034349065137236279855966051362622581438520312256743254912952063690951837466259714665571364767191790505991748775434494384005156565756600161715841549580006526121988944912745975092871559390778306024027452709645970092972248768470904994935158783830672487251552696555559927661881357882411523236687677370209342288990513725261633216793429524814077052467454431872559396683332906839924318621548327490461537549751379675127605773877935503977101167481386532972644928096914255757345763678457645230403415725543914018430331104489633875320920064288854380942883338878512019099013579041703475996023397614210366478727275643793747785095590246658717705552565009365361675184728269934154435865072321263264951605175570725031620513528557583379713911512185775894626695733240473826892477813212127557733905301468432872073536995595995828147719404829483151403888547307392867324994163996610251937578867793791705712383342799839780214163928041320493207824750035902381767580158673407430481093120944498215531200586967199593747884293507891530946225541189674780955227462367951891084204390682135972131105825592023773926642662555430943222482766083718629648449555314597242555154483467489514432429629478398300602961373970023940361187459593552473274250265463996516287349071206666763327241311584695193096174548311470417185825300002318096297376981504616909906823280890846874490543072218656619503660216068239762900917388847693617392946205655491335740233808903707549411745956706350723378062233501529891880430176206077613443827311114502027811792187457190731900749583849363465055608791895392092299324450178445906382755780274361091910589036905533355354296913395645174745297721759901421604049023554446266002714664552685718875329051878543378644631658568881717785743075071202757581746804971887105466709342236034409599636037738207334273969511664480340386912261768062941611026812595175759172225697249139057500113035406406116100891789933357939997510491078053256122650167720037240312861641903440641256170970529642228445043957431859147280281121226442769774210608631297000574976732032282130295220487196299817101988093097534977158189262636814556145626666808522183432091231215042218565693559716419740263978081492530898514723115016553889040706495806338501176645258718368253222489506423804818258556542227299334186441205597937080683784281477650890153452877368986862855846039705561393762326782237752081791342570986479311949334558603604303548775562052099262744378601555751458603428240914213877481172533499670624407487510582575910244600260182423463398557808556053067096276374465071752074719504239629988365951238564191587935530299008823471786781900971601904885379367815315407593686400658482766186952208638257825765110837994088822156243998533375247997531296188067722838222353670924399613016195342234926728143353973615760584976853590363548845189077676931402774703673472660214173944303319974872429039270306737812353214096822961609426415866082494509556077948424512969166094150430819039169655917199261827037982043234508317977967524379281706242575407208168566750971007898469111572504772529063728154329464484503049710702567499174808087099108245201012791607241165850938796323535112445050031788210542219283258810737806174782484994738761294665224569676098097531138485887261773218079924438023604051922262650296907148802741322860277234201983928162871718813538523703743477759710108431053598558720706222170935448401898145043906683814607808651749320755557638248278744909131922841104442017488979938759327694326065731364556016177290746756412198154514933729081055834363829013631276286395155416208825711823660260346765242679138997544400610308439584435469663761741898287593723073246796628020184704587835462358140086337165092057116123725532749445675971619307505627231951047730727964450910067108136424229891164008513968791675900483318143915976458967321921827519210335099322345062678706592597056424491470360216480204111220083453236938699540131852276059056466751070149639700632905587402249952843012875834688439843992798141970440122923606604696738515597619289763635024562360580757839733380517454704363027715759605380454299289411120314056835588012883406969033174653086865997138675627272728882141320583327983946856893130768057912378993236132149016099113864224978171044272799494817934610958969572997847442845212311591253942566064129043747486731944980338633503058264314897228331868361943043945514246902710597008820630878649732651475046195660595914638832979986169176262283866813544857990041128796443355028973806270216203187666366890949214576713805883576007385120673676641605196282606213832777145598000687786000643451347271783287285942209228186753979761293892034206261924116148385172155497463652833214592093442591683371797510481617452809132321393255142664838898068729400303720129373696356702521819281538004533170679021398131567648587503753931390181475456032470790445605781038847500853789130866661871523704972075653821960167293767630724430843115932709799496993134925736012279202729561713961000820259997137630180590191189252562668212483774478065281558221427946923676474427868219941942144883453667190667691340686009912084544503657923182048400374917152952409049078347383244354485114398847085128766359638009440584157025747368985726801911330029064004055846503523981695642500810725317063969921569045906978762999257253797744378074254255345142964125618195052823010723732983912379164330887633312416346306440439447367819122291448605001100098899864884040853808967595014342874127053099110514240252614750615386920339745031340781338594033230460245941884480053441942195267018978661595598449357466532824624741039455706484246792957889683594647349480282476846160849194273299231882350956583022137132612324868658302216642016573403678432711098179773125490667348019685009324275349955088572779171736656219810146505663688656863954401591267004128354986172414039999319835387326097770018049285245739237438810399856977515107956190055992384640644863323644768825167624886797822022624496047910971037659771366332729494148400694110439050587273577858345476023054078467887474907668091193664082205584979317052254379369764270262286645236125258080329746123591982212133261092275479650678576137555013648927532587053094001786386294147511540743274014101735483092653404967961508665927249174192909229454857603560436134338870384946082367777770867440396043413896430598431469299813769563465270661347958288141342794384651834873450223569014197302532318185133533762617628781864295666942382540431226820913396164370588342446696783435669026833870040619246947575584115095270864279065698016668532741406352213543007624196718609578846030828434545108966720252728422880563149140697002859366117756944137011483313180407192962541727961868850746995895310036298878482925636473347262252404463987601849129531041742929244479897825873998940384112357096772772415978907637429103056368207955725000599957846001813570281658563807551792832354455894459701943463323146972169483319086387387599729481865523380722664178515661880633401784069434769134329314912585978112626865577480800578854984355210475725259197038913816558637924035510182071700477521283627442397392716975236232167682237115843765856605066993790221030865195931697029929316534709951371930970749353465159338041620482804365806503277480715293397724581846473408275521183164831450719901216003063555556683526098184847375276656695426055369378456058211212884585229713054317216012577824768244219608215450772020077904255524733258664238352655041027902214906745991743811300721320770907523200230117325514396393841798987652337867764751976033165597637874644405762183215202057081430847656120270897788917927934405567340580783305199934458122327665840560631402544111199646502094477301852519305381712751568905083509551240298776230145367532888127796909304678751196344774960234907183782570018906852338242854407842533811592072585202555478694124556090460961487573949528129650652120886380455852722211841059990190702133461473411444777179793894178386516985621386717829624452156286992135191871158739666140562010108190136305041150261488745664515513903162752954758233225784860681527397322560791842559167455373442432899887754088222597391689498058701409734461106045822756964342287725815003632518690629199496787860775683678726764030871437298760437274787798240964404851694395042729503773695196335018031507316986659758565819500008748244253788542711459456954573460578581784637869404452050376978987563699287028856886247647626754901847770266232626231438468807403493381307069941235809058076864667594734016202324133439583691181936295202756172511005427558718710583743766777141683649313041444261131427280981103547518181226558728610226595894394067032680145141947589556133353931183637008554283561461595171995938664395332059653702397741744115906408965767749242820590532577965093377016246690652945114152654612661303392221783425667908515588098539674531908701657009741799644198447881468454016341190464347378725139582152311558062992645399327704270593867788155523397259337088326105792943935224712232018801361578387873032186803280149697188568362314669005517823183022866931041029007138391414678520513576361193030366054047269594961073267248698624364392983274773927817555967455968315872974907871636786748749340827374589525847092968636768663785499813170993436065621910388223148966539805979803173687919673111170007093917029124046902585090233002727306869250310586991704699891201529980693625001262692434244522679040259976723393629543368165133575778256194395702652223661639803170641796732254468361449331125183963701233642494821917149575943922027624474627125793198546070322092444279693861755100567303525535108697800433227309096379842426258718726412288379574490119050454187832708220858705133780851264217684361172877087568393332483832062492298031198571852775655859412628086746728750000081487272042605305288467570165013508702017633480154419078404196416165308631021082966919113343725132610623974649416761894895323999915329494096821392689797698624741490089977487069393350418705844576331428938301642233922230346656007701381090803396302488467239854000444268380289493388695187653707845720293708090847890509742295388253297075619876550710357538460408055800051253591417190243915925872249155879895075455072330105203809553065833992594187712549201161310905156952994189010933884163568549191786459498585958361469927887093710958885829330127044634648600610673595108453661589854768979218794898548370661616285754154619946146366504188339329998984657462111521320489327844196758256349315886943553623407895901739320991770663915546445438986832955941878134409676655425060344545154888975088822790905824330273774837233505754665236579706837774184537891396365179549871572082610088660253272733533044553479588493836199824610965006948343505046121587351330524066443216232451064426914020579926895911666322046175218209964556708730358894155976450446374973480782260331787828182159133915965983102915301576133032500765779918284567193491267141275238617683622801742020896173767886794393741858106613830013548380183808175193357505704201451124080104785688079663175365986624455864867108654669862709045430654055573226184058364910389213613896794982932393127721252955821760467975530671689525388004100814199146437015465235689995450344695805362233540900441119538894897428457476035290229046932929984413519672095637130632541421156100321029484514227362647148361514770170325733465192608525899981463147086833585127455668811757564335380043327530177537980425691797854366160441931960466341744289393192100521978303538776459099104712327209497486740568719886938285132667129411634933889523581163970985458565660530573525053835923278400805980088049844976285039285623735454281908320052273315332762354698278260854867770440890203233174569612714708489912761038124835593346534379675746520417841540381071955337401093066093117137501281181417396727085386239370362626642308017924474910549339845726178759407455111419259649455712682528834976517122380599502036734277744830674778410149037245182907622309055918861831925860252405002153365738436807862888892225323953668250861120030926587227750025967042614766799367107749935598006662377739455594793227331510024857151834034705134544793926945086249748542893159767609667838517773579433953358382364517904719658797713068419055555134879936372752148989976843768696215374852213277565979380421117415700345550862446669239800694227583273487411212725269559892593796724953682127542673804248403466113118407419987931162542938867861725217328453142553142618384974838898403954033167407537383690305054309747587140574604302101627171465329353038616963429655558503712249607705436128481541921521330613566474127883282684700123180529844572803090026341984978571729036373806064904871041070696727215519931677736084663627396937614292023067905510600225009385622096804576322110636653352028654676493198839760524413039258798014377558160219552453476791254416290961264686144338286699691903799654677310300200023113256145632068171976822904593468705590644586794548293895181756809329829253630521579157683292365222802170841106408863228067700892078355008532879280648798550696902641987685953014919603589458462154229223693128717426026502609196369237214961318474148607209722720092430379575023046505056920872155340128080806648502489255156745279325696499141262527376069612400551897351870634961774414637616399767218655188073730244995329930739214923722003284782810001937284387803123543095522272494885500196854045844983208806915118315889019611124687496916777668764462914546893727868207786900554534696740865601571842013423091087385142945280215881471583363562052108915835584807081402569691242875903537613318477243798469422218525060638884415827846988136184439353907984126901562835205672642540497874786139854674302160742308871621522865326203012869533897676027934880374873534490320905211674080755328850053996817364256503063599777440844591173609053608394567808417035641103530949294664928681809945969945468276439691401397533600529479805123414150188971665712452622133380011617816944544723934368437756455359289207332677881979599698413910004298890988886175402724911174679164177578598224600921504174101594137677286412176319598173873932419513564137724320504827422219838659098710841534982596106931968630761331848313875631939162145593234380223332828276847994977585434123188654618737960453886517280861091483450289675223407561834002962157067695910442266476415119103453078758582281767464585465989400387041730315308948165906911197572338342246927209851230210859064843638071123819588767251719891125803206239124417543156703193290159696442183467294730342267552798166278693774706627730571082059088446012126240718349295093802295639017581933403790295975852608469260481111002145456494799771424162153255359832254753246993404495975700141653507667649102668323907141364046154873842127810840240081400813436838849165746376128206005814700841575541748627588071991149567548085732720963345733208041024557400271948819691928137542452709155688426762744963259981934888412798907257598939597373580706464007711026849188525392210498340068335224374808447839810984881845950694058423509343687771607243610469169515501929374839220275563009548859135663188945495519286744284410198736278565143764596297241103068294661471897250523112284687570889074044922636829992689247509366500041376536569567165128734889308166266332133647617681333456614170693283560995736487275134032637999838463251069027886752577274172292203700743121653564063284833211502102938305174677609591000328392451295158950219334302357280733981705238063013736005984952887397128458334016308498065184653695830071593480124018897387992835646543112808752755341489874853658961071588923681805995040878423661977641514897650775509803903043338755846002291145555516526110328717770556754122622582442695305092674501956714377321895413478469776846009010620808800609582186657443828040023422599400350114604322834412501436952245894394872128071480307005108807800822913448655142924041049093582451717854663986999015998186927375999270532442927065750062236516598056841969379361126052835530438223075350110444576389073544040468156331795975284799769208711976921409823342567324563794410722147062177425790939307496491363525719209929777647760655665963583920792135761964996754048955510724092020059783710583829519944128530516485314326701739193382924006428527225425886744399995210178708658121002214607261418277984640537951817339785479210398839721322686894940022822265433510996272383830947334711741995457459657366069185888876569835252357595298897179416696271561490273906399494140012427947151792589235933925256662096825731768835692876049525005677342694720258666044927634354395421826912297565729900961780367616868689578193181278218439094385557603016173529285822146583211097311353237701437531464184182741326917501903308155858817572220071839931739366513430735157386445215318315146647906002388262763682420233490634859248376904445653756940664447914177256915477330839353932799949923804675225095497790448305297051245151293725048444945998683946729761678987354556631020764830308090585763469186255438894631646857355515176807854957019095775684469119678923742789589131832185224949981842310323102456395204234288816777619575835844857892968187486667500749241200260030045648011465085914062187855686944673502547139498330739791860408454907070859069606325482494615818004973456524047223198476541639032123571261219440570419180266027074209024813808080116582203614254998759269478763963248485548703762436893634276972750660597010983238412282995394493850567008600363903519049744813931362935100065647232114428512459864190678306504162530061931172784179620953249087605241841683465867595944584193330463751592217605911863249753204060627573679389059072806095516894024920940429420932279113220747254531091469045424242408598722890352516922325383514586680020937450030683581947791495398443855107241530912305974391376016692648091039703452387969540096707916609736364508730315364548961085974961020148239030723716486679853598465955506958666789268853969905883092933007092205366842843151241729423458967504835957440039979978036792138812592396885077465905653168205370069746467027765228642526489983627379844458752242580852188127410988428260405676229993998412381244128155935094384189168904520409267695622866087618971244297665139068960805342658684225825905138048006511123570305263682571204297647508314154952741086567368512993281304130185139353105094030001747352415245786795780722247371647790187494943429646064554482246059255860037431338104611473240472214397590600760114493210520180005027573424137228135162468883146371325936844230773273605859359125421082752124278048537811219154522181991691801352929293099371730080770083011836987476421978161341954248082204588330383780381433259614100335375031876014723124398217575039031931660728634466275645238811929585941934174750184738867247903144692636801688761172134660976415859138752119555954609038639225607975515694166907477744229529931589780988195275146730910171716935179477540078567588534773785977495610517901039504586076863511415020703618523386330541727205971653003190993054191189226735418348848793360614137637590196947774278958333033579451235328533224724564082490644769641204806457034773773250734547436179033054129412412524269666235604968651901586099946864898727415555171797918397896830494693543366786939385081609322062910338468759234879272902324507305432044097558752465271962275480618927758041759744630417880109520322029324607325627268437962783465616264393329616822358023154558182867865515346362844676806209444083703903551875186896971034064294285646771179497065018814119952135953729312687695956563771777627869960892067681786655363720036038740375415295698705251121789455922500406547210150532027382188701706725990017318250542325584278178563300140767906375582145837100815976343308888891956858376252520071432795813433824585980247133033661516355004419811109866369871919818206322905340680523451657136980604840053588745330649074112723350514810075047116473354159518896049480078220575883629402108197489019171539049359308998521509060971468755686321872100752948185696536557160019057311125158405786780300661493302884428846166455765693184382542856719615004030232261106449731642300139325482630090936027046729577266800735470524408234980610669382803391688298453041023336350884019371349071981697196021713979678831146554126370977372302034866272643529547097748207982466985425823608469233027147167834544439215342753366390943133720017722269112064946905159568395085533191231264360471464537165735972943342437763382999668933188825182414536184225004196601766879578446830155952557113016356856465932114105008103594143608955227738027368200025848158445452595935095972962056214328083230965681743714745124857714295029792322714335532041485910317509083866858029707090859407434840571532280082696311584485530420969682572113719924946357635466606272947329045562722470030632077696469554229991869201018908959930042323345469691562028052205288050603662279651965182793247174894995681177179766043596436795981667124133913954442316531038911094797490230844961068533434186512921954645322049589386271494845000793626087857944782593880438154998879347621312225505790670424057026825631586709524262562624313152034068274902080047195376532932907167786325075079006926237354408867530154622144929930621598831153980409307011129667168410325877299260863567596175673924323319738771319844075818965091110251397976438317116215610454656975332843650660787846037300653477809743737771261683812453173315417721262796752056570055345288009594398698654804271985397484037945073026112940977737366398721225071795969252772245948820118369405988631416555495137154354024760832756875745690104184309628655058621284640832077814419388795511500858757614394172229179591250239017084822766888604641922054559970469080799320263296377906328410827942480144812728999889860568924761388554081358410683359364377045943038446833756894574480874755034020682640046601246252010925982509412589531046593581515269132627696317603772452184381049574666450153285609539981276427637785251545066408469101834565618438864119611983361674778968365797776139419612646522547611955944988670442678436441015435274222605527592512594057476334588756483553199227748467854060099974596609208980358911403833877091262552273648595078917282666873954356187081230180549162556735142968664564497159202447708773072053404398465338364423525124120809498770125139028911884815572248080073709586299635113917594047001285208597601393321920508501948847228893477347035255358623330115269738329191925487499055277224592883862513763259699872169687888703647931610658883643526216166659061528947360191876204562845065997925800873490473076543007319361439269278567954917142832459526824941946884098285969404699611876032795112828749662343133165491754372897985883458504410137072913390818744155338664443159214565207380960781353623845218400082539140149744130730576871393442041339368724909045525485313694458563861362667813593021829209627702706692965117588853358020668526486522231718408054021647443802262986448308364847489672365542039290432051852826821820457919442566931777507180808025931311101496122666611935452584099173520491211783646025081495275682414023188092499107840071342107740351337691459419292884128475250046351811825470649947996061241811452937935015989490678503676998659800786483295317644621679394406373337103036960657884645487133151414760938188133594425648678141452409983970349357052107504449602890952751347897656628075834276584281559809183983586283971306102528218194124511030312901983137372834482155875187105357271138466416654370426711600654678428696676973697042758038571905911020888179520187831594247847136259969959575835905722918018897102748987551245182972272961276753531293991626851575511535082180768628028862297786261978168811810310226698965407125895089119757896901215605787441837543436510907680726051973514993950517348919361973347326424180243211329610327748771731872323803624037933191439384596303146724302552898242591666532502966722227030724950939673740092736722443184369977188545056065861588729953393808420812078587309101879854214884889908898036402190970706960937311014294530751585857868900363768145226715352083701652123172023401655548917841734327472693361568235404226302086608771969711512662279572758226025250463090234137965468292552402677274182623997385014649297634839454835102199564291450541929921439103364086894721136778930599124431636027933356735736691510539525106850442532375062289088668500566593306863813875040386907708336622581379966118345807158763095889843782318485381242822195837191026902149427816787686831478513425375931646589981074136780983255172025893380684335208107526268812953457248763117311868516742949678906181860085670205979955918375419861973099089860713088180575684975997093971647291363551476462964160494920900940341698899601687489878839672799045491984849171915000218467198274221981324185142023102372499936406523797878925375173182480196250270526675636247859020075825767563674790885145247545454917792363649310133007532368830585860837978835640794475382325821567317629456919748368694796429683087973684437600757876609501855900283528094478508368984215256048746778110485205718422267852736146359980068217573791973090491712449997481604736773016706022439792815585409053772240187611385750274847117851752357487131700196263229189330797918926072947129380208895013475543907142724550234170524189452913120606216914641832007644306543731870127460679857746661080676542272699350205364808902629182430127004444289735561357073451450043213149677919135061103506149927313604674636332419768591758694255887748370599639804159721661691067199065765600695121943122231557458222179639638720980786841774131221123900424267109072017697068292190194896469928425913920494858921619231334366223186226795209424804266081887382967189614292561460679685815512365112958332871383989417818322397340487269004948585306793515336110164193152901412270334771796548330674906933078416686692947783874347110270245987390271098738448428011614966880557600164198801265046968374042572736297049519894282721509146325893389359916164582706803717383320378287805796410480298428882280857111029279851880389620250902274974340871229242314550429143750358291716280959026734518815244579427824718145635736033241699356672438357382667745190045719222303555103560206663757575579722935357930200441735157944004978343430623920458907054682877708498073552767093734975554118092204308546318194506335936497711599080099456028576854150812512013970468356861361560148008695783113541278112957787921355819846617404868144759002500461747551030047807289873899463933800895499062383782789718522956396282433484349187038517602823280630615477998017530827638105313066341334234634726024775044100729615248492589971151972080605704708140322734191219245465677232280027060750498387576541989321117948656147648445218569962388737389730696964961903707047664009606379115073528058294589948525105038128888378513981582195344175943939335136352969693506084417535891462044790296398659042484392761765352155029328330118767673356416474873778341469827103631139507463707625051265880536288681047125336933801985668188962390998967507646592639682114465881502414842040082226038202772063504947469091683857424758355600546532223656998468418108494131849323360471860695352808860399882689309036456226474784943071546334079732217463095296652517145593543601957240056492493258098508070851426897407158113681088986955343584691692823005322830921807902449956488050449503336560533064005984101901661231533228305091167196240909073124892566613604269708153451613274964325795388171193298205757509215135003431902431892114063456326604587020850582165151655231080498485759588955955872905353214007329963255180247677777793846844538928458896629628675577349808060268287210110031879558335189865523695523005229707009362960195451778917522999144050578753838799596354311271673950236012074187064427713770718909321830860307892735472334430929559097514647403680251050399352765666470200123052207766669147385319588876096787968178625765033034123175069207443442806601495873052178917605140407260705823747031202743714689912732393265824656533718189649910666582965702826520754770004214287528962043427684287035515987485963019327736551280487808823202840590557146693200684741907987181657858317737834448026870382494417595307722794941360804158603437228236021987725550632431884791648588063310094159829208724270106989590722724040466440198103439565776696230260913946648529985653887675780472712136989945107889313580013657163924429821712981893671949439488571450714785315238482634942770985355848704150140581525193592652795924034479442162170667614023722741899018808620089713900032497963239716672159381826409338109677190818118325267001591763864861749927422842178078353313703852187497604301086150160931941139579424998947307734415633196924179091338018050015364312785861914750511502183207133627172640507716695128566333721758784969806642459550815784548135482897039104557767071071221948883030111274934859007904942261474113619287949119806474514203895284753228877986564798920779114319106091301542393694562042755322776547881613977207437759486907768737336910005372193736185085076411885284592769844865219411773652013286175667239355893041831823226135691463416291394103278184098011749221778084672467606819454679014388428165644472202943408168766427630160300950392124701373433087939951702029082412194845343328352856979039922189357378232291657653811374213329444901519078032407200584780474495881958561399004372417928091204961087975236523164274698278226900306000515102504190933194093789660537559385573591690129078121673882122240480271566701116793109129951689712870779059447293835383198057367717412055616148810456859454426209422058432461453380249010184751544527825876051704670995627561555973712217010888529317075184988841654552213461353079060512553206996085099229355673843114557732908949976926856762971552521654227319092932625549866604495700105567938641500469359832355396631739759158436509725811248961584152666668658976143839435261188182367142755734391756997392450268572611475214610646667367400606757854392911332034369243323905904528512264610833142704093439274040480960216611942248225733937291737723732452364594347845245126232246468109500496069955047017195049170950446232437951735442168058133845431382593870317173337748217791109933163551442535550363444526691420881528300339040348926309077827162954059710017932337256632172229251332214661301206558385246611735955449861022510085901608112968130134871621309790518302289170139014333399346273519764288714206470046790530001493566402544100259938031560628236996323119039472584631447944630157559179527235056460840816103405800909218850289815189940423032137649260666123087359046268221659201223755178641300095852978723105477057340092982290186425453350919171787545223414252722728808782395908384310076650279400195677327687212927406013141127553316911786908554846089536076006844431194162541999438538178570063345349630557731461536855752994488731003955712907720626594496613832526705020284554311098365508868137468410322151361680831327216229526589707100230206462076737251092350732996959237918485312036652741163009707152164659282834317329069004218163608383229209805271750617115417063358560651929328982146621114388684565017506842279076745729161739842055120024766505839561175408006520646013757439349323131620658907934209911930013640584242172629549419071753093207334806601617991670331447941493602180705401172908115817441112996961014489021514834017259335685374840896265724221393934290720974447584120912735101084098622771582772021456433698978636105872864863467782217759141598536414380296662064876566333298138525346362886851544421348958080079930494913035684686577394760905665308127640584750147217497049471118427620171948012089338859530677007107362378301012827348777036498353741874544164931903883471058588242413529823581443335213094643587836720277077805753787312662288198363837611955493023873859640510734397737249464608677534804629772877325900700577281035665720483924689167559228415091881336672724196264381934947409478756795204808008015201391197409429039592976203292679275435168399853291608634207155209903040654467719006313842624463589410558432834672274671468132276188259104865194774638371773695849871085194805295139845285844306060164353069622153453276969207591770888067335577332462673055337302064352388190435501730595866572189654073934907805787371374481744865970509427968178414093776826782266771441764807532624132589821036187423104867542041477621373886077339535558691126055934989704149046052803192018806408941215259208894566929272816234579413287852886495022978008651108886370782835592473965342808506040953342045457289206850645153500521091744408152039450537848664183760253397288689781133424792598478213389160249580099265841682635972199974599175267507386139993028965185181594634805732691215742989906346681893130655348608954080794406920660006326272825613454404155767231710363586379482496098033606181798430695309142299404950406685884366909388397614935698056677776371980723809167305166658048196025260283008766661042063113673433178194440920707116078239645156318912326017070106901974023952066170927839277902023745398767416481590191563821457303402159192410207177498102830761216969684760056559134464903177149950375934985994537092197025703813527968309158300502771706307509725627471380191222059029146663287036259891249183431290240555489175962989968226744290132830320206220196343525717593359909801076549119735973347439303942353325007379319725535113825841732303853849711363407372146489009953565641415718514903728506907999652065620768172258896297778942624034077093090701664606025165371708202321626757318721124964904694006155706771831160492782865291481741811093593059600009789185936486325704448205150632752677503712800211653699731912271877402684758031514393522796311545936202094422638776919690386721406884261168771506830250551865352207480115319739421979371830009595937317192156130171690309039683663683463023598380238217855928192025304508673524844014660558195711015153957913107290771703579701364828290558786963129904609485055916484679750889442152477748583081208656171746588706049118725150425994696196880758415151196828563411933222431764245481991072069836267419804289751284926266574283096352966024999768951249297220597342333048166643904687849463642637484255216271881612607660596015428781289159494034071838801811574159831485188775994927310102019774916385071221932506661839037231326260261114224219341559180807895533456425748372662269027257149967522359460675169892310955196979382064868219043340554159707598162248145086306629504047065567420894340950188310057143360098664019227357464614805416451295930591261018153126367963850877550881497112920055451518832113764669858719014015940638798503378600167187767473130566910420420298323958507146586764580960540252633575068734619263792160697733993302525447004232572264936279204438367503793420448023462507780835133469626242689332502710664338141572943044647149663006748886244378263567488255262862573331792593478507642030369277637096132842297397579414017021769635015651748643652847714913269571592405557299632536032619559951829386786000993673977448844426923954048957723687053091754486955800240742330511241664607470175825008606329609734986999676880649917266069416932163536089595286396288575598493199796953476653655677302453147010757942245762041834363442943090067197066188306691740566105429781829469691723175065481542931540406140709576268649047116075792187814128990393411448910818485758069645855400363516098307650100362375698598428599920780598929683733815888167634803131897395516921867636347247633093757510859127111668449665406071381920963578301956520570181186957455490932591331891045701191228331545144573555246291696493742271837886091158102215943857056447652125020238173283524045511902516177933844027704212915844836923100844834329505862992716766319977326549472124051458273677449551009456219209940602108288014840009727985754686227367131438573204270568312076544525469306092899931221368300600956444855674045550274101458098160770875541709380912711575807753110339597992922926177430288502622163987797699670752140856124613871086630348853796162442972129458976088717577897294352721521583444323930095035202441053691549716670023372412972132731970977820736797572091231152847983753221147492535414284467883936841399124413313486309303270134724672501738440930793831628606298948693778673746720252987680678516384591043815525478890169118994307629077905165639728097498938908194400103580888341983427856784365715420781328349470874511766515513646989822199919909158360468303931254064543875541943624274357901364008803864021384997665046959870340337344779113264815142401146654059376198595487053022910065611577863359441987676697648450245983243342183274307912258632930189919085009073025108802870486015144449041387904293877255964361034374938648125047911655368303632492828369500494243491250188665140102029967074839418200077763803399074100840546260840532223097151430124904993560257971730459022366911321846603292421381584589649912391593589634762349932860259923501808830643615606972315451293770833264039251262021790998236494947767780931595590059252269133357886297307836699795305860851351652979518183001501705270825973079464794512869879326071520576699785297297602662953209681133005533098839870607471834969318958899130860072206347279767774285734347927357377305356566244870984191780136895721946972932298737314088099275771457638838618597006742769043699779102312759749746085126846954067356791511789655491326178723053892466750255669275324200663972757652492694804226728442844107378244660264131151090198455939688881064070687594490555594965605558874932745338337560929385540442846575153075425461400590707541415212221843551695415086619029047866428670286163214570302452948040031958815132009027120193260529496472079459152218339001939489779410505357128424153522758507099388716865999122431377475435173365782591882886979730113851761483791056166364143040259300877516672602941100002968632831203443446535756097237524596569574684009344842469776359520244957078591609636412890136526585694231586242407984746910104307248366410703213504230169666982499595647705353300018928131076082130076211109995342510618576627848976889228366306261900821833851354703750689692967703914596599783445698892217442857735424663364224592044606079104536955517179604262477378194890172053968292592304872790829769042534865518476737912456326122531842002265418889041441486582002538617971233002541825666233975986726503593947794067099523921316012547447225590492247482915225133575550443720466038102785414372314533336127056409755028585632049456199268376795925922911313478838501886006738442322643275259006906159903676204542896205902095016884934681921146137307530521101557915860000479948133723086123560388726476159995901995115216401057420380776909216357604736743958097041838311450966939001034682873801857598195310613851075271832102316551073083447579908913978430994898205537594842576053423977566344384784266016620781516245905404331852530665235550980089109877637325568128781710563486777543080039659400922761846490488790050364338081655286858148684589609589444228541101775200379902804641579029318622887488035533433678978676220898232513879794359628131692711089875290544399985841897611792971561395640033440272342055093246700712764161379160812398709639648893760848143822336672746949828456622247646816882266952274118131951733056519998302965122055086198082833905680202325602599596710263241696255524699713531736415308410359361251239627164490601003081214006691628647247897217389967564084161057605303512701517644401483432438246166309426927215040086365943285964821087276896700723456629604112629838567966284316485223120877471150373124874893718616855142568184360363884521035664003902047541996227642302459733852727263527801208631998798005725322443035741744824683514134787382070759779620581915961736526035860033876756688681025707731777716545532290494962860331463876932560509627398034534964771020827214306597949190364224332224860333489938131512370480616969554089443569311933064943523651081951659009334865112163661768198047792321718476781738907212596773476890672193918822964787863998317804905916335406087249470589398697841620599008705683514059729965240180189820180875969903882855686476976264782792882156311336395547277450156226731109002183003613150623227297202203265589548763188964174463556773295254378970267602900260323866956247357479283203896253435459026351402243845023533627263351182170713929840142756611999633140038080748021331066103319039711862205039240510827155185312775923798177768075868271994100656790486730625517651701030002505290767019567063769237072043629798890620265113248998415324920408182932023787754572448118531125919291409560627077011264149960638539459901474078928564031439274020421049945444937932475978853643332110984015918452916266589526212278167809194098560089255281421074149880481568718303648259423369238441398423514298410606930447744789518668633556431294817298311155887255866292725660268471941965099918936275223568379842062891120121624518256653335828711584695487831077712070082617374881168989895627909223946768355000202425122164425179707789743159944974944851164382507893780777657818686997811871024611900901947676422438860760021989946739317933811776837440662971506287962249988577102445149676106039952966926559836547182309297516491102633558570973088163591108490274128363355107324487233286263556298469495763327017883314871626260602920035633343888345579618050233033037095285867683397940595731717105826035672635514237313614753149830135417442584105920427159628968730343884242594468398294800954619414695044608098600960237852195435432709782407690286983171823209132602392510536096208086665682286220001328801325354490982164169850460692741152356514472255770034308129612363551222199094522323564695307952559094182552151617040568839323982025963546135220747051473593056064534392198035899772626657743872841772011990785474578713219848766335903442094269506221070765364694050093051541217665362174828276892659468382084540670346244276914072803479529987950305830508360311725676824338218015279283623716889157342486041595377974492847191741728873655423221915345418350284748730074721546589488503242098349762918614624270903315342156860663111280664384728530837130431719446572973255304109473498572912001835909240709333819188505318667982698445210388316632825300627802892443220116556096748683399263145285271907305758651487330446606659274233851416048519380261171989648746005787613117677474450330585932400886200041149108396106706830391259262334067076268686071201360049646145161556735509801769128854886403749916008102064684071232649122412802025389658212962166084380826893548734140527411037853595736245946163512169216741909428787222926183010810069292645231017121954845040192938974424532960006038771006245837315381372321130054488973404513528724644411450689832679184254756047111640859886065986430324719699223780514051189505654956718185509023308651688713366043791313992589565031785377029278182429022540673916300305068444442984078650664568215847848666195389784674794198354845405012159478355373097035544476810764197584457289528296697062715155010390527254249116653232504217190044571001851716584815986659867473701879196627876833293659458961201418664942405005770704694557622698087170432704002704500542253016239475031107794254283703209605317573474702484698016143613691736884996550635489740808390524808652708753638402572086432723946493359068377773989087587801924158404539395817588326262916923018115711418434826132793248474573133557301040584440601516033643487391344823684320967839916943955494633871388017219305437349893000060538373754742628629047255134890193431525761785328873872184499847573860679127280707102078590759584683239783964852876252936530589817783706947274829448722404798404118710768587114458034981386262631998346583444304340581401144872629765352576583940179558094228930995233921310531814100389091398465575743568568734875728293484838927066584903452389590468275351136101066812687369623692006903757925800452625350525692786097138589947551544328118063854701318148839191377809330473319862236835677996567487860488316442711288640427787320350849030193852924511730069921447445663830103982683612517311326816981647182118852081781725607818671427734430809758574901560163390323110049436139112279377452512992225961026324440199740268456479849224101021961334983437749274178583245577333909346824279093678579441878125787304205080562602485130369814751321503528608061562745128197845090225563058156938033081854486425995821321803094524572290980774596224870111249545449139288023033647350252706141577409207237330642136712172578167302458033515790131652232540909700340294989465126216514632421675493114570262741368615160547364977580984451701033010576663858544493343692526817741838009472393605921163952145543425289234891962994957669480949388216286909310023593355153072644232466186258085355183807325422593042659742903172867451543276849608639331049427962414689406652710611330141992700211458126737114633004145283679734027267607535940752135735471052619188664306347283604150998113938395611824511687605335277278422271197872139909791451050062632427352938217831052345663525404027306278539624240208860430537255659169938783078014814268397536282349936004784004862288627331012539233372333035682007173527557554300650898658264440087550565562616139083358926057539595812566047759157132889426150027417099813267997480328285456359039755971696226307500589966563596716092143959268172662972574485479527475560452921210828837137975214838367627555065371647796138725913701900056395105669814642436619813474875374511694976087325876987954410040223745582203569671626281931028080715437320494061215141595223654565897748393926410498396762749513183657114417333344379296149778437220413204494405251777236702875566124057356544104492403163284921397955922198635732849530138502802202778550065586062348584166931653301175425956709125827700375739441497448475234087555190329370862892352384648242196783396569231529044030075744511584387261070409713039928858163488372126897874571222976799849816989665196516493041786371166831409744362228086250179132179465374667003042444081393723699648932385978521130558914598995951515082089133410207893516256730640970449337160806724672751112212969502076257646974507151390418150730927831074739205655328052703837834075868795636213341242783573544893688579878320459830603194440930356032055639817569915313600858004856055586572957056760024869847670891676581742486442512544180465735937824519537502832928742959025655552885229762382141040452382385130167292008514578832704938659486456395626039786819280424755702883820914978565138179209050245879767558859851614633752564086613827594298743602255648214644313007606330529100133071346602392307162071630435689278787571952946586424903316619641581652773777500819433056736325641785406131522611905366429256429868362657146307502306710971744602418248405147179283922356350577604735525377783615700062470588396938935946275214571173530180663558219641218999798579124483090040148074257415069676375104591852105590853124383416419918026002626893311829340616887117334078609460959081729980896658930023725585106998799217624887616257916611991383151404852054681208511754710623713228569081864949129797745826037413166072857300426195966053960307101253451008962722441659060075766967642245026026695399312031377168407790878977109984393997608300475952998544487436137816633662883264450996704867028977400209483642367342778869455500156159557718024013663373606343000322531004249683440435018539770111355649600834039128822368881182680761502012710902770346833546192923622037106140076053731171552812902255262331846487482446874586612387489497103487085687182522802237067111399542958627990012898336303243783282461791346600601491466056736328519325294749166333074660243204346188050064373499139554855015649515363471328311364062472370476978692390772473232920883584148302881823285902735555361428958822273983467940368554751584821425018033311534967439605085801831690093027591399243850517463253234432895583477453846364896718567342399239538224269714734683432099176953386095409906183274808502257889372853680872363195171177645069460182634990758830979097415405698523647395734948358949123500946672194063199982950109750607239301746273861467613545224145686065774693161349891220945918671063815204451660386214499060570751853806682187876683925312043600225813693400863059854658642766125126717094193841122610412973538201528565064311408240267920378385915252032294435585150948732683751964594808130395566682600977749226857223807768777043462297434698649522015444234064486576199322839597057157978050624683377868470658593056562364498336823204757400807198604669251693384060954469972270686266531022811288893426424519823383235862610187246746528729992903918674184836730156929606685056481824403768882129527738931660000462993817649368250561114938221160758358975615909400979986829951781872489679287571837735386407341252297964764950014642957580106014571466172720630867083160513247688077377185767805387940004826414926419491327558321320812395899133417996411812803260357551726445894402133957777417305764386151169771591268234815099039359900991007211131395836854809376770753630061569478259756068816877601959634706404611339334246290929508378661217188805972378345061276773863953219506246263897905500517304147763799824281242986649407851574331639499398468301362403367274095597654567657289239949517422630493311083532909379905360753958714163408831455108142283521800485853412468025967817197194012111618637762922129621328029115530460479629339708555859020803024642804173350555883510293935016401043816179139881592648104319361349058541999371640805212270680712728805370735541820355672297837696107058516304453836637018112678320632368273096289136320505803615841681923607897279625011963920709564106889198182229397130980280785980255492684362920699523168735223502859730616844883124443556389230819572114402875879370789344913262727889504729101765012553171491636279723882064105481606838947444444333192828199962268745393617367260156188082925286185095739246723295938018034945586189373091359911708263690725836437648207183844614332673748210727790546663922535495684803406793378733482365020134542870335736119169820230190438411898570885353890392790273101228989517477330025539566771968264525764860888721591931978764081889577422034000086852640213601533798091797450212971179326786313199403367376872235032125719468779936389387747076038425081708862554287143729914437474825145433057614814535209709258261306245498489516928583960407538063385626250136951755058296379720026876914100186045867180938466367030680670418258620947413533836992378631871363441212081914946591620853182742690106420983489323637452710405694634301184388265949497027506986854465397614048947449149195096118797293528832806147999417280501416514411716954415158004324708059271206870593889718633479557362576556595925514368450565002330424893814237711605369705262645048252592453871616077157169378955264350749462957390014809152160000298174062586401622067918593942278991619636955443634552463164831947108739180590553980526259447949646420958830632372955267621428698221966501023982726652885706214296396013468483231589251169618943703491305384454071287908270719159275782747766752630429562248108480021103069966196270181635409825287593830302756520866494743250130454142935180630728334808310293613866994194851285687392281998691007267553957489136107785483696000051170731831803533405324152526405304854147210639060036835754511041549191688582110339552955231376803730712140593889997783653876838575570083571777684682159946624723159343308638058877694053398770071386771098132959084287843096636658583810676665405291162344471590141849504829632174915706829759436217098112094431695193668338405418465754128178548390843700540133610656827502504265925347432292734756549437431886243846402611233704884339867122637138579430446222994546699139751054570142043470105953813432815241810671076229500081759472225308041321596900755924941159990318548647332726587891504892704116137180816160529952159677673581593802951611725550703192246861221862943610401623254679307529717285375362587188979515643817023986175194459895057857052474630156313479793168466465186935207564726001111732576414536972493204671716544280377100712644241105303525617145039642370609159524295048489200129221524999212535408998525338005984848549472937635274041110903989037595407634072905020551333442023174562621960924150975289840451899980362472208760576558940809514776975406190516957760581556954793092563970850718643221634266493714293240005183488889439839942655930798030583750595698527419430513801625239937182673085491090850809640886814101987229722518864635473294811201044263505760321404663770356270256946458329771859267774287948032341758315991583321547435859659200601246922882410234920392656994298148188525692814605738246763705732154234111389915827981096074080945252206171129628612501298370533897825047589749865244719240802783929966804370663147223173783374258022319983232636034650018932797873786656395576465098781380971877390312796850634043938497685050292483416361582365525320811273809579460630045479638690105980700401480023447614311345666299566036508660572669658330881393838013334159828561702445125962954699266898520014461157309184628228061047456845000978597970238309112284812997523537783624933857705010502824381759775340350909943471851073763830253315443075144122245973668068838409856756921884596733751261280115295398576304167910480157453105229383554737948890437527265649112737819767664845484718565204984014774252680151284843903148541441053295851502671796774506689866992290015435415942848217395974604759828014434837044007892397427225788855709756867558379173914138631419441519566285704028483294716686209892722558886009613180423176385815649696060238072978202352997157121359258323660027095407212035116360818734604600861608226564925194751201790479218086713298262818889177750581554182282482804596105858006995640079823323055106950173383640643934474138518046492149102906702225925662516846764038264898464272624431551567739293071186580704755546583205438195241061743218322804379160779544072672134694896634847829065121354034348827799480078993191674059270253907876370716733237119700109427829013611074617442152970506489897771161316243499821184092413585910805449474387745005913170809122472176422573277274914481177938615363061745076213224973534239879815161456114001654332881501242591928935318973054313781543536886279718898674673405343254049243506156442256353777299376030008187111973016067517360687463920241668128594664172907074303068085326611226380316394846458101034620957907940092157257949411569899679691342973133695008050383478823806586195458560641122231015130736961086543319012088992194960940141373263534646851188521398525256114415631518886142324484291882908393543330138648305492534448114248101064616112143571679962152396557663673459510231338284259454496497436886905913856474574736691915131700533723193040335765679684167989937534768799489202967571230242968693376910315847003177021380967739993367204467597001586071449724682683482759273573357306625199861469809189089737959222400660360190292061428155532826404044050137789079068993010549239944231565267364377789771225677895280989821395211873597310901775600814571483276616684307375642345610807334185563421546878614786488874787868572015782414262240118440735570761249761150697330721330605788289083265806096076129846842783463168151410836636294346432164390334561183841152198623130929122989823243422870801304755153566431586969893396577732513583887787310681996764568912834416277306704766286342365910097106171112691993629100170092774349181337973631277629421476304868603676527110896718751629346867512397477554099391757266686474409213238821400352801916767228182658848897503765828550336187564577254765136595587198199119199353422389928311245655423747778853564283113329450016212722846017458980767292570153923783705319386029010233201364380587420952995383479504940917295521539991187287115669626148940231898829064144731015119663298873839281647802777793622953720329356283879885395051296147857591169230179023413105762221131117039666498611162675849036654585241743641475206662815706290769629078376842364135760737610388210472198939982050585286645144660199513973629666222591784099700950379734673949885968511440813955631298848715616660872884249541173447643421879335772179280673587846714025169247722273698498032634796034353847721298603256241666221015269921281660216559879941672825672200242312368500959194268734655779030583905442574485403410433730911624195261393721363615208290771906366269694935442728624707720869693691977313258500368366437708208126952257934169383653728193334658811905660186943978379052363796147555205914632947587006467131914493636027096809398543575930623196983305602329297497098507907505547277192745342031726668555562782850993842712694599000386988457343733913551233222009339330730307530506208236452202885499910108150548922182583016245908807862812014679667565813957027546802978505331833047221082413946639052293133128379287545235127603664023432195131685664851361386403515992473090696647247817072911679217748950896218619254283610048818873979980237378033582143840359636980421307045301117268026303586641647450959423768217550941488678958583721413696731999869094221672313589011554012602273846148691297054230763783206237117268335375217664561701026098362054686373532957496040170287140980866031883161730700843620463471085864283177729983347219224342624150150429051676090558498093253084460849650993831074502323542229015767585102242107126101130189061438997335483899681547534223919724184133085718211300635890438725523826661330489678818027213717029880237709010811379972006760231860204078602956721210899374242348526663026462592887189073258506303813654463150494903115551814775417194758793063214920514152352350262563934559258020670329947704990833739874160805796131775595060971107146570946320113702644874308970795501124381495422830815232058118999093967006080214947341622509961982042289669822064131721925072099574183058688623167569715540004509416042398947754270637603611968341679071816805081287868854254873683842619167067907375950692720643116883350191924569628331634904042678477551398931060643156757686298169763363321893136933424142872978744340884669103052444128676598063479761531847548286371239154814120498929420093652576535838799463656252226624436266704060828828722949264418728581130009778778877712332193815121152467012974350147383738030642599574812063180905853656777229156249272300533081518882726017055207532964499828050888915544487575941591411085363992035232193291262466212849939819054634216526839200880743401365688622126927016347572702944575147026242135013923268510179792291873751529764493941840466040626164082145902674996935439479768209513857797334656835573254649014975452857080186103841250716576251552993373724112115672153242049492234829870958715050766497767709048980628364461346744589532708372866728421219633109975685165057590151082375361556782799368912572369147686979900422710045118140449928778123289706796494538646054303824657972687055139400316339235346960416105277384860795393078467848949723394995910086679769451345734539313785129619922098614023860498588201294037511627101626435655505826011103393818399313737411748828471446251260587503703126369614108719894193898105505439404085676056850267349035333278373128335144418706538998447102250773926350416055715551216585820460736425365098697938351706244803681061705448978984421000075426616410552459746628327225109799407373412688989161750784131999514007874548360670124250696742271363943981532853153732779162251373869820012123959131233438432758327263584000877913626428014160154445137611012916888147234201842636065747911535077406542893587537337509395604471659253997380447665750765843919027793996211866049851024030225835983840826394525208694345403743752042663651022097183660579839569875696721469553882443995424621774444677800198998665116937185472579285058375014720003865006365466890213825359514585587682595174177654928888370611756950070849785629793675474814708899536790459370414259240657074468324526135780981247890859724165310818515413798292016601068455397725491125576752503313708202237264841199153388366913745614538836887321686338238889659777073825078836947580366998806355029087931858069764836828223932182571152651472535291516094265383479917436460615205819677572720098769370365990857664578886450039037275691914796557259828730596876144785375376925764829677484048270956510589289569215579261371203452776049750955472434863447225484298219921073066908623780023458802509230912660578394489334247659065452336690523471619353335675438965646941432748650483057404251900973636226920543262663200458710190536301110634083162994139026526111463535464593179811620251154092385204742192385256518450231554404312926066257717371715539216167178941862254158407711614785641439452120818665417936342478339196860017245366288791541386755567504805382281710847763491448600331483003593311641888463438647012893516451388655020197394370029671144490720022781326165054994923833332346150275446192081454847567641828558776432328804786953140226052059333545614524237214200522448024177134531547570356160478709150278574348771520484570978037416818272397805897932123955649344755305176452484295899253236565511709465371671639603064603324660320890164068380232723785500844876021287157184524534254498294523015328958592025458492209361006859736878984189046125760291566632257912333676063653531492141258479421280343717305780467439957812465062271675261589508261102766452785475502602399575747941846298167583064422540193827732890235593522479100707923716396035370016745309750645170752287419297130118190115227317094449433132923489077232626094959253099303401927127138182689759491227276949867504840654116698397832679775616343712970096722464871695703347312903787839526033458277768952021187502453738775195049540074907287305788285756009365834475810279738606347474676599284875013194807720349984984838149323623110059879001797562798646622174554353144775177392029317370164563998096138230498961930621333094997639081551731486421178741458904689073983066803671489923253502896084658648755119490605725063745335391102454494881274342359794146703627223686771214086257536609552211045182874794227702713765885766693475153824955130230619753379028326846424196720721361562949518712961723279507226633393213797847724319798516545280347868853524860022891844746499699227402646125470263415007598880288890495099643513747464236888801270030182607591743087788178419114095214864739219167621578310912041213837897206901328811438017056082299167584349076998175686474794308930397489805309940887784151879176764540554644109470933482740988009463792617413033876936628390795586549653199471429274417708432154890929576922357309034613359023913961809112078244042830727516588401458044432305407374568177082094046131238600245093970613442393473438301318103248345824654891055702473118772532356410521515893566186753847804858958450437941663357063747778539138042846959285948990794414960957411591843870250203404021828815123181467959809749664417529100136652632460295845718336021512993588948391942354311666562556512501522192432379379928861244214344877586532061111088289376699705246603487877392820759857295319790600112030003532841666994058793510898454781671323906302749545439670949643639613952697751970624427071441445573694330810324534795765038226242561593370520212372709946899374508938183169960645259309246905796034657567332552057518983545994137514073423950544871276967891544419946126668200873134519804704850480576397862368144101912958989964672228469384776661882393322823388576606098171683967731890369594430934714916370552915649531337083754140961502333363757084919673792751405266744674312685052948060178404546013016255049324843243295714907795737122589647059797339717976680386476982221317610245902799760627188094772564502676116320030084554222937514980997460084534005109571180074618412988589769368174914699697337524193195829593102815450616903586602627304467838446407155708882170730329688050584945994182611364503337193350746435153879912140964466600402907610714556689651167953813481706465453863895022489440250432667413200751203076662019392190833839383813612118060409632193530954864781013835837394348565068642702834882084631304138683230305091531115109038148422038830460543848834641103529519858160185171790836377052545455862232066965178089963302557808939685048726356866769407974307216173810680546712919931228683962788447723351035144340283051241273177960345311700818776827556187005803185411154319508865124239028890210324355050579762629224471568916213807638187933621859303281645459604876943750479182400962492078034472830363090459487922644272700316334635489751546950244528246807523537002726864764205773595810847587898588871201996646277069940107899514658927142967430560978343508283831700543064820091643553470698804525102028147658847585931612390248562917119641485305176222140901827333268051119349254993542009307801758046284864251955881875887471455735277832808512165579706141274699537652023529570995498485758132737857752927194668231819236458980796296044969636562175955480203995540611873415500937256774998778203979626029674567019218304449006735062859245179679816893182894134293562969550099165731966365785175051896649669964362025042457797226433743409836091144120750019908533582076349597849396251441577634878780475125608135129605173396989401936679319077202756034427272697858566054037515969613567143634388862257626785605090553456359974921876307572620652442814902669705334325753469395117701109457210990600055645086957266072324913109459635479184585212666013692692431237626859672632348856729338198470876451026940734556036969760885455676751000599785065952434048099454052952352469944687657685556391591889319491301492902920395553000317719467889070450613607112695965998076894753886291664840382389686477681417029231673691121587841065751514099534644231265382328911133557451462741918382649677389356234324576707084563088568266796976718666724943393686656869416356319931556101241190108867554875317196705343151833554973091309010006819965658944847138899080526649809172683643781020812249794055238017632602716080970292518959011528341397484595457003662161621289534898402752656482274933227126751617439267419712124327240262738882759669590655857352767459963253249334312530213781409926366360184049692567282805459709850581238662926409018450834879836733781855887303589523636335640513165426801642528068920575093315644107344689903517552902882818697320088035740781045560862516012225030538313160991961536808257559614121985592929324677497569996432503177598151330051356505842061621867434357049929970289596342740348783595978394398124602348091430910076864069970669553460140583603320101762103855324941403085125510784529845220858090206725788622606751123495837117246930273690328480277588653276293702520568297218888711992133178741261511344132579550634158669404952161921615443168163042996662472657285724237583046599442439667926317864710796580961291359876614235785410732688278004599905945932693033415082834666072650646017507473708522628463417885999695070705706697081671319031367405615357828268436853866196981996358854601206212070342767036819208039710883220133337948900953001685508342189861495689004650826071430088613533069450354831699817286031146705931577646977411765027526185352815673163074018104625392827525098483277736230781303284679044073456425414061235697201830676281613891554403671698469144381861472184036363052934735220132096224555848117702496384019520644909798023416859616008397447877599200132152536959033688031338685721028067679563883582983839412639149077436012551850166926221960781026725139615058763618733210132070485650156545947715875296232762166384800292392736988163572279518733417797442653045941576966286235899247740576108180404682157721883608498844321704291250162401831424962359917006947045486686220889688905949243041597241621724973861408602352325075383884321279868734576849545093793650558275021558251799009466498532828060274207599180523843411997707002665447111450886122421277390954585189739728971572902862387719084608079968541402502772904808094533384496058237664305025374779411062435532044558390432115844487981120767805915805030127743124788117898748705895436070794272916977561903766032983448179594724241326838466750809283850783209333136124910241628387173494822117262011094782629295897514112063549469320996362395096751797472694846144198303354133432358831637505699922829072967404815077223586481806737264705483371431543741458129322734204153877502796431950534396741887733322232970239795324264130982938031576280097761045224116379880356114072480438688027292631300560982505352622610248408259717082572663365281437455983069939064733831716821748692328498028895720732729710717425718605224534755549019423647699729189612394109467371985970740765894165143101432387326578740233269317343082485112376960162621004178025802562911234137890529102326757825609721226993277300564888388619381015536190889820048776350099886217690138348251974447107015564611899848612408423184537920175076702986440810899030861772535958127457507209455265674071647041785247543114232842010139285854701728260348252097540722974220318636855066907464121840085905843913191105223077620950688350194702509815266016382071829423635179189670388675401578467160663455534803871637326949907746482010105036430584484321173779495667106653451492104732336409607383907833378594434326256469501640992958110911180303156408021773316410432583291744919415896320768267126180010632226387210972953280863040290348604049110606949990598315779142090206279162490783074449865170754563778685239581690603459124132589544852095455105161027618088476751494840827875197459010308591181894252626857804533729380209034476161686716555935772026055624425285529670916617564691891122629580664046378643584094701850692444860248650936535397150460289153147675142839680218513971683881568570697904070666425227355251585895833000993508883198974424709834389122060672277210002419361360833009438286389186233575381410049898064012718098079631301104009225783436915922774590080561867596728160684026292569259781572558749759448430223169612846299632326134021846463744064837626051254611926884101731749023470985543124712622083421882387744123294281330371631267494837341100312573632804440510252433363253477747392474576250817518783661617533407950509295924772380529799718539341129146270535331705322727341991415428056554614008660051559060604615778167459954046562198963784911831258220119003519814436192503555565026756508994438405791619181158929680067753545074970429923032912409416160225153665162349631957324662969372882383634689015238953658177112781737022307476515994009192699261365896199622880893626003300363637436216880816173231617996190984113587282682805883618884220319857337552405181663922437450458487752137235143961851196940576576534933316869503922242990212602923502130366004004613049490718595713839568072575974425200220109376846955511704067832735829862580852177460435422000579956227435053769948351566020515804322122669339908426375362229042050224686405565968234062745904539849226127512263760211947524791932817154513287279273664189427029147630574480181308268256109215589314285608557136155026205997219295265837431963377552627941468060237600357113682976769405127986202765537491122895006851808499910422522805971336855988441059856210971619690472822667015361487660581702626825595575170770835630963232003087762039605419523405374602972774730756896963181583361861083288912067962422680545473560228434919148086414409317383219876204762026291747731069325953351264955101436800089737822041247565024775434026570219548100329222374485603536244456015882699281011726297852132545043404750157948433391162187038250370648636071085796700705786978371268927783533605754666615502091470832770748750293104409562862739638391139632103873097759805566023139140151869504397633146730737149420409993791199315138912517153271619307731150029372691190624017096604421551176041800792576874347332641740417013732363864309697708229179805041172233800535400241844969548114974300297939065640217335840671190007602207858981327042576171926716491309597162916837849676514026579433969792986324282075387950643199575054283027761992972015389667675896097108720222565961969973822425347755763344213914715914053498419457557559543102966901048914056081030840609455331474653355172764468404320592123024253102267464491992413945596541465778934718883024071406604699722179815290522947414718424705935126908925954582731750270130356049582584092828898251464520902774033528890182170935468950617120675847311546610208506980661635931375965739128296668066065579125381739478910117696160804399425348797768246698241642862469587576688506888814519893714312073923205140935781857812283419279047866680088199213171372104255251776333963475456138199901544365832038262269041092070636300754100623845692333598292809178206265904340409284359540021879399062243655022737856704212692270620113336258252724772895473921799687516225375541371940469424485521506054721028804922675692487760829317949041599097757375840700754251512577791926697085311817195820531850237101228931758492476786579693333856084226572092452444080183854262524868808236170115158199746018435843812242902325148609199083454374362690334081239997735509876618250398114418627681631599806603610337818574687606998336157645682848871897228216921310436554650651178937654070564252004669264392767866785717070496523969783433307856483940872485886537598007071302669276193220054555541899900805592726652416673709716181294996393619732181368786358293447366723030270702359523684516123136777448865962063336511528527250787684339845399017173841146928949507609784175986703576326640557682605082842329689803531959287648828927092380140812773248629871615123046777959918479661149813605083650648068411628749296928504774520062664274443073319684266379865100481343917992043183589357886377866541886263096692998459953539960574014860298516986717902729540758218144950044912491741263528659606329682480053526356440497047240197708651871336643525330975701886536081583223741092167853185552776383879136246742833318597531114175456655559916491559790431991370275151240721427171861017736058532682011482564470434253854036514109295515916639707126319300354959759409362479469599644458519463013640705595793958994967233388549570053194972452728232214167450417684474218996016080488761383456875140351415607709685616190375825518942100679768084644725418908083678986947262045083116842285671079305583380704472367531922347126274245773780109086195486655823671409286615150776472131645253555507166639868112301602061301847049641255997361542848075672281902569722646203146169591763119932929907167408769644037347041390707452801894245405046570820999048949857384105628154271725649676870123849097088887658508002353306195568822370569868085665527402092918893719539137105148559118093638461551103814295582282210062157124037880032406012496108473481466176820789857961096610444323175910034007651065623311988784884318131206266417296187393733077401368740331332955608272907954484991507925569884777182827461463129675271239505651262145366228255064149364783371050414939050928154812037078689874763841969880165272842859207521070529827004244988369635913960299307207682538038005829598362096621912860848423233746004264630960116323827449182268070693869755226817406758105691466857382926891767319227515487790302242320567643800827649306603505866291390299485185700682348728447381018694674169471478708582580375977088004900592525591781303571532806740865291506349608414849485685228225382457354222992954403526173703041914607347097365175522366059312013282394555094133888117067926634714380630839781953436455782183934736004965081401990229264884433380659792962597838821447867107677185005105240754988519360554286715147798223345529111455085106694224703895091409733844414661129583570843130565147517559024433662153472401748936028193396590373960035655281077579543175102622460600885327191118469811635248525711673542970849730224155963062734999246638640002590136614944128119076710518832010323538917841650609856412149788719745320319577522878438164210651265740859170804369314803328607392511892262776521380904505491545699289568044961868714985907950300906544561323573783163293511562482171627639081548762749156386143337943886526531285719678167588278289515179697918234950656338407127322546767613261634314270360478751633885097305171388846166329380025142128265798641553490763319309950452014175251343262411722320168069809036398544879519820775706621773753753037551827319403464084158638301373122332397832610845868951889135769725956513550184878656196011509707139531420206503585492962241174009266199210833563977049582128519421264675649218972477597473252740829384912185963879584371971845064699149051699873198467928031480610027687872036310924284001436010045446734399382952799887998411331824732403964660085959979520363153460006869406656813883251427758491987219951379797559481012043521411850700214287016103462180619080053528448908039731614819303374681825795848860256957000203313183069688068412588722536269859011581871425753337090034417886503104846943375383129487689659733174442150685821975356256174045805898708198155859478082335949238167677146869278732645160425377954932225429691573191646207932736761760036371433561428308590364436947343507308715928535918809492677962652944157932483832566560028506925111456663180258492991607501143716632675090049857848812397469761629424972602132097698363566381804405645182399769830028967785092561929973476069329715947201803535830536931279049279495273151178268795696795280800892869842594389703246710064183433935805024790891276798393674533688809220708604574879119561134239127711886690836883845900893667818124353482403026728043177890958255775247923776982011632243103003270663989365975366537838801653850715647508872331836609190237120480908640376382576804413640178518323674326981630201585503357540048074617295746114598850265097194426685448069845409461511472736412694421626418448288201445720107385951480596835688518330965836481397848383453044022417194296190003523025538817299380499069201156761053147584918318950260575985885558874708772706021669538040955220625237536361066153249809739174948138740920316844340442261433184953702989184808060746350910348779649533506939990377183452918642961268703792675386973475322670159747734441616867683748062548106894904382005600721172885823029726171744403893356839817381529923560287059710013017019850680326680548881230423810713056116994160313035557383691354453742253622845462559246692531808896218167062420059239120243680367682881273829375173385397469846504719419710683040886786433285144690436433241680104902968285770013559952488273313086137189707380393489407037628866359259799183230127296004281596823190700745627450226339455372784950696507913933271238375631115187742880802550634718000286775096946973142947589315684014428027419565050769441187925832908332487047621139965575038362501456322851218160532063644402718121092316683579410710718904739833722899700857953253788311848550758985447191856286140031488731465125990266284758751306841612572443024085480104236880425389154709032389390024784926521708612858497008468965866939726550823511611285580389485566133375916759352516003549377715519584077131437540295125971079264393784257824449519385407040654688815836605882710968115677267811491868935263427381849173973352684979376542642037559708085592452419686743154417755135033382579796045935584338067018431206106938863343420220991741067195493741109232014277756248949692435291083610708932119217283756230751913262757900139266472243799999714602665346061774969548893458901825381510496872133842080647276638760710891493692341067335318032150047429562554823942074221929267287515339702814618723630325890742837638142282247884193900985989147526277704695221249444972262574895929503252553866079899568792812344188077970515035279993801548426723511505771616720553634962441393118827678972680141457865994260445446631042360151128290287423274449673548511559177553037588782385445530409267747780863148800076411948990132054434016698679264079032123669480881391285095240139818216216108723708521742779959034011244421301910781358062400131120218887942514312976604416106231595483224828836389911705225998864281557078546653952894838787351201864532548918588658931929754400985967009941513382425782406948818211043884271487766622890727880831001183054803403386552461061380861385964029385761390716318150359353837414314706267302986595975000572323593381605567612505070625116394654747289073007145096792789574059324442546066372571338777278642840286746320236339633419641727219421525118585342864202870486561278199586822939534132346426524073705649974541145357097829950273003343910077235511006518527968880730831015033739262644058207795051584287046567241976327384172135383651799144641113092567675778536944351609061710554941709186370141196713518958987300940679182722538288420148851570507785626900558748043136081614925258389081351734215521022608635827585478134728769149558129066184413399992075008186835278188511198774883092504067164903953886851207471847080916502339443330301215294339251199949807408609135314544646640217425432095757267459104283129218560412681831544019723509506918802674181738902494334078711783372719725556464246841880389467323068606144294597081746136827307479671944428908104702435786867114142511836662274400287712479582401038152234841583807782458132444963916020808767119290945848663342134764204591359032152786973140002007901412991105593582572566159777535453024928849229732597425076940704236029281288534438669597945783366896386918958413778403415157532824662691359120727391415372047896655309423191987282904356041286596842621585181261866722292241571223770013975733932486348003049500116746015080968856033224324121915736753247514747321285443966289412182663244169009067274454744558541397652184433339200242354917061462037543104769376523278602891558867438844155506069860828645815212601787226031960689597057630081583044102877588882443491729796328125878476692186857689568924520740921106398175115728058483843336189240799472408700345110674134607975063755172318447575593384279859221087205341715057061089529068002531564514679909422400694215872686454260720246917994461050669460301513087862740196479652624833661176289809564058997930948624862361503205304680939961440415949994946004010431342612887508102404535885171342891484566138477896164883709895562588439528906868433647679022976039654177293935964687591026714906132359881032867139406893381197868585052628837464922126169525550896200139893548433234345984761388444085013640498725277894214171439696624789178748011053645311347791757500303678524138924246020826528417342980007063575149388341341716976256702511580946564675455810373428187041023031763996719130976184249117565128260354355617174935256835326441796314496912688440333667110705725188711662643658194753821750081549841924517345347883895610348654376684703965417327084299729484759364981193377385204443301836459954659731707441671281162515439319148186265009610362104759007373276556639225034586880829587930099867314090116092899125183175975423753483474544586340282952073714694832885206965622714911039668639110133708005975683262709223141084735287664134156967131642950610757134825581502372040930971780077858384443158630561225199805195942007140659125183652896603394816800273403895655913324226380784747806113551593313212969481549667277701839419240483103500362133163014099022514938877280403288741026076550688330681863571926336043090603386641715758567653892598752012382813114504467370412507187497205850963085890408561044923677629644158641273634691899809460558889109361071260179134768630644963998374216150127336178302374197300023812294231886278550534340661544823484405758621909167395976221261580890637468802125111638797103372479078625145619165720836527109992491220029174617245834150271805486203633953975738804439109974380329483005242677618137052370924341621075692281207522509558450967224825474631397229043938975581811877000814224071762819085503543491051042977668620201943807828031818723727812936898179266172208950177934695194327452303035670599501466480777294508194106087736326885597689736723246278557615407549893895696923033580799982261147550833291324113694623181137458381608500535750129570876697625707366120547185407475432923014311654711463387445639105245700156164671039588207893579079135765012716800513350867070735700833884946355367242925573937387353874704598160391507184293558313781821797314393709726353607066146968545259336660884978656453729029196050449186091061500287766300467673562134607769004224019720704994039966265410111093735258505320578301128718024637946488864249256348202802879240663700654233176259159503304336477469574841099486337862534597507048429166345521666017289929182190150398701817693470890488730834544841273351584929121120197612621062187047141621626803259882443025082046003600940507649682405348014447905978643585411686943227395564520166567694589444098752510985258454541368089429480677702072147786681543531366498342146324408154264563289676708108179892281141928625142182925331459019389732687746105338271372459759473994655075609130898333208494218389635018153308360738987321386008686242915198669678720833737065732383460203373040880948123847054986862143538760428550081814115674708119785529308587218125039090417268981756870129269784229080969246820206912901668238163587145701546413345478318245164405934997128426876154646537545309989697975131950026864690715113687417553676945709893216546746156013009803073283665787270822617692586184854435490306928491932055575208392226090796455157674687594581040393336871331692442735340469103310070733101102925707952476050215464707067590980143510369332459110169716369489187501207170936288951113995177665717406888144384957074867728518012096697296950487777510786418157838153964354381284253111332948113074959703487411980054562641279457674465735058607806429969382121382687041604098376532665732761797007584377604537353690577710461175021183987089192747863060559030852084527265900260156772083490636149796925612997090358018122738070982657999826673209824762880584839455317134311384151795971557689050998269327749715104501559361205542773727026444694526986892465104878001199295714667093141280671324454512521817673733206114725735273548940996400187104699163204218065529353002528419395053867199415026532892814876050623130953075645624864762647797005362508270940893449386114383767168931661133262670475144849373045761294171952987862774881475064090186916518686676955570294661162273910336778055972437117952468708916314047659784265410535926931732408036977920597409653289769203821398383299404728288160475029086227096303416951754339559791126798749301582558620104055510222775312603084789428136793731091771518153910490188068504190438658486130683352884912498657773560460427551212234736694469679537465704841101919780949752855517058912051670426149286292022996303362152948573003791814789564069358952087499518687309048297817173054337133093900732559118598094156719737844267392863183905269056436781897841892040121371631125485894799659308623827628230009683606496101166543040195023925339398262966372874521056617358220941241310322869147527922914848238781463491490259433930556310733213700620922897336110151426871610706407005303197100551096121813189879748063111954235779007957101134942889408272624606311366809234017252370426376072623774504611405839006392470260378532979191164325379907928350094546722352181148001406911785829202495924092443122709653675864847008387911157452841976499830977719440794995005818824456446350755891377420498995822752972810840192107126124956547912947191025483801132224166319553500407467029270606814052696039592275121168583774298959552911552094241736492828248305819653175792537813401576668830986189605772780937280269595084316586101951312558176873237817787579981258665820032122150012871353080683153199967291429648835028135964991062112120268862391862381828494394802824112260568300269395467779708216011291422397518502227651930191871518481321794191702447247315229321287097598132636361234735621004840689881961671578896544460527146960563710810272405078071492110724094415678959390050594536310648590752562303978883604601214269374415356370307240144322623321800780028281447159732334896885490717051896672728235540131698740001088417459267466417205914949820037475327953537916699128526164062289746484729772122356473471814463617652795296185458635298305027367980626924762151463122172925414136842890828217097705141458753797417069269841802776202229457806120054307415299640528398846443676148753761867793866360861866577532106812349564744811837094592396893977138733477499368402032297593394086740211240929531258584958570048487132691159614945143275826606248218295487164514968996408906652481251126660447363995662686164955247488377200488527887456894335617515637908307402206225802543225029301972047552460989880797276823121508787807832133907961852316167974669920441307518345731186696300804468415358874627977052629418132720629184134249903599065110105773630220894162875298106568302141154332750803003967094357986949684197365222349269618326403160597550097105991705175031768296605097270933659023461954092563380163942691818112625816061728149872056150127777427497181756374385306999209035671076953676689508864129139413946539719774821560821194759843282415126277860395605448624596900810653255298028997388896459325563056651745208207389175192689641873315055428817274822990843194933464193372084636262599829224208109967806442222177640091438829070586780477383133242697454063045020697583812851610423827767234596500193503606054001940642764785428484126509426910411113876406353675128830289342084364257199430702314273488433492926452501432496457016022933234011375404510659309910910996444703364459695012498812200053228504584619533583970818601126039755039862311252168108600283459883636678758548236747382719177520445506835164106691088201601978426777282706245355651484688897906781311569152338296994055964078649772373857392663379031483811956556162165880562273888183083157203952843035452103486546706856101877242872241794552241159023065160076995630803742480685614441714496407699187028961731667432266451526089118204490897451563832901565464590666639416606685198992620303743236885178534717631033105404103341015482019119749607583784056242555331486517236166439764640733625410210144655085225502911458182860364459065828714366512065846612443480310836829039558988590650763021394190993008584956176007725036925219918820465281218835961279072280779029088489623850178898528391792433020766216158954573562589037462685399319965616899646550174905326832367066825247930022870934832049780212231212126833152372892983016317259831272966344155268485764697751232614256106332908951806273662399795416635615792277134277012391896475357555316420730683964713343418854349261742820226454384430221063077776603034637294479641825687052343602274658953108097344915444546174983688301897584065414763883060286533893815258383884487468996503714373469711270653166563937711777008171791683066577622143003370072651173688247625313355037387538805840838516092336294840024805872965220832579598208022665757377515865206648716675128691643093015589781967490907194659511355938180538682839541232904505922791285469184834661256630259787049216241432084569768071903555647901360467170082475803007250061088716638368675961802508717684410177986485312811361496312655881534330758682889879673665429445068543738992492972025903604322908967909578259697179937475194041158936631224162747234113056945164078569846442850140534722786674835992008541756514510233584795325472321440254883613656985331970653654436822278323086436340419924996964025108149764314231235797354243762665026301143107783845234865118971105670926649835770802663962790041071313642519038330749414348061086693169350037390904608286353221359554610339514365927160468456398571413542824280606742572135610552458216563031252957871215972542719637271897943053900907001732288880543735057213646161195022591893725604704429485269524978038229833560989019744053920556937124953545249745338962173297374128466491435605282990909579413439607434559233277388028376664630769447613107834483081180783126074625786853683497725790902491351910430156963226918715954472911998303212533797309406260338073703743575453823714463574036909967106483809818678738239868551017999886913051915537111477818631019798382922686255871215641512916429803254947348251221570020955349590132787272749213031781786994879188607192839294707159337710910165160889084618623696587566186522242604503087303859190991002401582514303470650111647224825623070507476073885048899936425840015185457733328262457263884849932306997585720753801760851138509560865595279734845352667126005782331253340961647903195020519434139786671460025958883308087963592676601511613095481697025494490364457218055363796364827245231777017286671960054719912177239537238054491898243343108290803664657506409627038167917010319071430294047055462051223093479607076305413920082342669391674599799514762610291546508512172622123129996132731175516348033967455147401048729950676850565276078518848890616404268810575800984481723719053534416295402575047455319975475634109828117408594776334975156635518101226395893893785381344598395844091717865310607890242621838317486683680884770536213357320830219446603173142651471682225445298561915539744409717681876661563006741316117932977221624273297361974217055862447189040383176438045576554486396606225728354918268238802529891200816522755931735847691253517386595587345773721117108705281998363531370221569908795318438870318626356071568534866387709253188900409572128356694800760329628560624297179183981340942413723628635855266739621513067806843891480852018801511443496530230124191998827774345054552463760741295690268051322309422000125381869449795560812785728853167021285330744132458566348948760662371390537064800457626248899708901203599928530976250236389125106892431290426732902908059899977832222830017528640376154711731991972742504704531073282596842065259356068505004864143279148997831711536612623470410746122315407385110086637277377005333081921721608162995857785400853455522135073266097271159799924060351589796022724393382050237200718100206246772264970609271126016813746214769683598629072568312526181897860608716366676297870437891020969790475542096799340799146156813567671063530685738415843167922154021345894334645498106157920423745490823103658326587084631847442559120786968269833691989368423323191884971767367201853053500984880025265153250970751136082626606732901728386711457097150249773520462873360007637524815001528437358568144732981937968706169174366821140996743472067984866359515479131555004428787254230784760660063308361962644523442750530853132525157727638592191711029450534330942146157782747749352204832466515251582574473571093251222665067320740726036574233889568359621606454529369943910001869343053744093799461624234643963097918339110684181878604929146149694261641155672613672896040481374854825767811206712846438084151783940813320356458091613145400542663261549072559623795247565446657548543545610311883130646000818049355588237373154419468534770667016489303693092128991856532490506380304071194803944068435827891625444799466314925829833040471237630956659326603037590668782050912164188773042840892913483570335676704886046449725867307323821660795302511146173846301421982553045159187984027272973310772923922376234849528138426068329788182968175734152362063863327998091032283837294859366373914752670199635988086052276634073428519924944125255859170427305763328875369306174002272452492781589325316143104878146181277957161106989347918969599913940680068079701226129294163291773018546865418065844374060178681902658945421198125929873860093734996600732851156640168459405422208485944223454159731936471729919298297970424293256854738764026338699209500002377400142886321392880809940372869050834291697304181320663477075781889264986983751236558626370186504733059332275826955505181364800172208310816751110872246626365418064348885962993961324518287823894186857193737588710271779739738350892267302046646603441637400687422394847100404760725565390081892989639074868133387201133292611784439840678590312019716127050581670231124928616491766705118352584010417856527540772538432937725060812200048764138834655457071507201045050662996693780589423424251824068732842827044719848826685776970694736567764972303068368313279794937465950393158520210420138539348012339448934561571556521412880404245775053544073835521855592831001548177262297022935433801477267877893334960754772684445965359757184012666973371776315161861514962440427341380503246592164166863243173348888880812265115783578133882610460789221976317846516133780450468841510012266626485263914826756324867762191185323743369288176431103116230348130191844079556776438159948155167727601983727186511620659317098102383013722561987200920453706699563976696737874145147929461529077328983710057229895098016456149087075537786468403131582557532399846391734362873100189810775575599566473056010742658285230856394835016483495733722289513881252689899453084882308367408948144822923629648316538966011882728557648825251829648771803888820197138527584765816387874007268313568486098012474246718920283118090466868020955693487638240303894960029143421443085351643817719702369422294891605023354717684406317142912970812031881587895941684375139579515064949465011912197852346839700898257980863388114070333924324848228145137668356651306183397494042067538384327162780566541459549942659224017529743230190366458362802032777658321041489753038742195781625623441636969289847141494770400252247206287278618566148371363264596861899386291269574610810671503291188031317241646386631525590681527319330806810566999117108226159869283680258011891070079988862849395394637438529137144813658576163577714945171616461947568777609448052927992853390999201883385229649442443513072904456220867343664790591853899737005100453644263611767219091162261255205025381936629441586152134658731906648419254859547608818557221671373264451949122082992517085710406203838918979555700570497804916531768003042821138731395345458609142000553767790694178700578044732372557925049084570241961547968031239465928693910078996032640067783620484279315470759464658824848702661095709440748038835796656377526189644125323085485424607540953990045148112781701183273021210738141063235910333876822011600571679379134601265852330650860444544278813311460991258962851265796765238693590617949591919129357006343754297836692780115468752079351673003977620747134304997165748943974287099758365707769238914533244371513268841215815489677358951499483928382452938249222641026974706992243936274211039951373269658470954424606913617070348449967686259021241292092891571773652372508258705727137841277116706546434690911320060728830442551737246136640868211093859781955972944188959302631702733365822718447903348025007262331394210396104111254889513999581544006520276981869232959857461795055427586692732971709092881972827652435321758953115218706666810179624478254633700025882766039105196280790694371427381600435905543416026152445611209615660405222872327495952378675338124085422962446857448739133196423399441340443035024468998278247562753006918700579773747858366880501018726941599714426079475561564864590653584124925447163557008956668737710658072118775603262722668433352394616743086992871954734491778055405914416061290121266436314906639830021977691287504172255708300515772749196287249210016247374803338378354327897625700499763365333850997373606145349614760396659672750499659957146069054005770763791910196060916334375970394203696204731273735600354318602650012435987858679831309761227354365420415262038583292073944799277814786059751457045456828829107464807012876174120941077213314412070333012409871659872489293479188477488074828190279132415079570446184745455468529422758228810644789763822392016646098917111162596690530614684193974838049355296447264570420230993448819358179136582881128215930687334624710491273094781996585350658814133382281963733433917354599434766609089880365387806896795497925418043321438927538288801343829725159229001948788156341467973201580544677614376336651311338736337825914749387858451876599813262917427938168036075207028768315253554471830901004485512547494526774010507523387810343754285433803522240231830192442524991915035367936713580230774607669783027024995518217463744038685048268927765687611907010695613468385071673228966209534522357837239666479955318383729961704372164705771601312322889555314015803042312316602218112689058173019834072111130736197983253829274404326983151341362990893750512586913090422712382028362043480637935162883980545428678484901940927934807558391810298315376965440481050156991738288668079410329118903813994210812503090677631238455203878706182547829774987610175369213384868744927088275167987107618908810795615469234913398026104617013875980187047761478592378690833266783784767840888496790156407397146117054217147688786765825725982180794987734752434571229452115432068896258637393432780771602091519348620181971019719880352899498141803132294404267455546290521156611916564393035438934060841024250885979297565255052954659139960917972477202579872250390716288068820488346453065021900667560303207152369331989897766715147509771405782785090571899945238074651767459260905941954576767389096718754255496439358906323898841914466647358351662394286463890265507670079567132250267743298907061293246992645139735685356112117702474185261641423091716175765271217297063364363344258246173042252564870137756542200927896442545926156274735219697348452885253081120592856280404526429593141615839146662352445064258486881886299009735553205064092086906096119375510666428844938587179271111051354186548327434753278822197038561955211074551473552150558189235994064047012737112663011465028000917063590151845196516661273901377867514381193115905450451428666580936589204916499622454271412862006951916115838399000617572182842392487690852990129289569152686267565040864273844526447994960952790566852480077696742651434550358003485061060193783522664388872235600572692278737085259113388134744184085202577398434056326089534786498366937168955882043625282497043192883482701657330818773223823016490286864839708799406139314811668149974309141517909870925797147375165589885985596754904056919483655396439221359649094275646011915776039146297404227774155725676173406417394682775813055235582745549319453806386682937465136782260689779854905577053355308266416604457960161078637798332216315856609767245180963947936675135897571910842706452040221398442836515363024802647986873615366888190676472073231637610382543766147906324596073271421417026889919444516077233317900880324582461228181239380815291469842825902922850218616821527858176266173422049732987862114395511920261600024488622937674847427210898435582876788977518244053744503491446451591625563793098776422498568561136437069725666981974918428519518216144082022005244930704460519021670890203164008412313208626592915234657992365898457381729755373765096486489070577840850360937454391875395119583752938735558635226627118501637223507437975255097486608716166778331944849223246932726045262058338478152789881793754852382092922187740655761465461612741492790538005116469942480411073972813709471752357660441266970822386628213183097028223257541380874140324744215857675121605136995034889113758886464928210696964443938075054083277350348405810242309013132930519541669379514103810488739217785668054346176004191441935563218541967836641728295325474848867810271057091204389072429085771483946513085521362690229121592142047788747070394449554570795067347445852552722731655416456137434092242751670591677838367449329565200766617003862979088270995155829233748293562292292577230560493081086209831189174176181211733725213571759147447352324303559671145935588198724578638101470508103868053848096642484800583379574142743431880500633618653241673472485979807583368298354938800110122896774991699995968961776566548880726010022973053517298383452633292559724485880038944296422216070531543630574902971956656969749221233066633917056758085174432031801694955767601734323803822578786555012973925242200868674755608863582433360623781583608005448447481794803072363929146584068854033274339689938456334239266683043423101195114361335598315605842748961358055562938457327521924264465398323847194772728073657859901565434206538985739471142420477109455630778320106378846980789460111035137587124374137936549430122805107510713219859844155892451362126866875900956324911390383726104470408915923481389537081363044665752085936611619746803861003371962014127282239258197072879665864859980164385536875081779227921922346761617240587139713351549311648992344616445225502680254876517740665354537042180416347065798310398212907059664807486292750234536407531448789436578300524635067886120755597707178619603264563081812684100630381245048490309614590047074577499975379703534644614309811138131118289077481355657265416650301455785916606015323398421330873307019992896277157037635917714639688044907492877598193918279272327199803374321370484651168790308101978815320756160726946085325737001252250885547647018040949551599814487685107658240964067828004953057522168097119955136286795699531287781272553559415472490290067916494313396462068695000679147000361322228939779776360179301171970663596167065552011870917540825791793153612931890097978701983494040471923546316593907114089681181195710508405438330873855581292388802373582634091103770241099412597379279549059593841315970082809562392828613747696927848005479144150433960036111191256915812816932280849517117405248053307606653987737611493480352592644399439010684209737042218245114700575837081451232283031615627528746074008242093058594913781473967923219413883130844376781013426713563036800725967092354033544819130541860059549643517264973920138383799347712783850224009925175846650677171064707632341493669402327827412744996514130164731583646701481197168678126928195739294159769666627809224623945441819540851693862165689577248339234168566817483872959120673282224104345895530861505038853863240592419293115627635727965107966981250869298016413073989436609003677786373294083646199578888010346319829729709085319271654692852601584755839923711461208449645167142456211218802597153787660378863179026758569340576616539456282044623635259330122308340811355345016440042298379524588383642286936419618259547807791728979029549868774589640275989332352826583105377298361515463341713256056826652066693600804440854125967989968599219165976269755869353898934847783516471064918598843984788693241855792811848192854259454754689373567370339693911628573083587649411445268360069407799256314464564055658879531296594164449279002652953691559299138741843068454758315501249735326076751854972032684716913394044458700861097966876181755234000734659127720404853997545790467052369325775744153312271112026132426068280066438154061619850448978643336065659666476076008732391297206949991777170898671736442703847778551463155504676584361076315441381821997539125959867829670599746542067610806229609595398720853249568623557758941804910765081871135639144862318202345945619943309164823400315350950285709863796390068655458599376173779706431790459708487466145395452593215324774348509700339727414159756288551091240231165174362088270687044581841313425733610997660065645816659866632651996110747812907896861999924195424711102509001294408661727649585112786444791743923696504539385418120577549793667123729348880095969579162307796766419710230223324484169027394706117125654772609243728316740592312221371968194121023361894175548366969253080895094100512400906902864218645952137882209187942713286679527101182873383686808422681118690915948012584896311516985814888608957993936783513771306600728437016569301227410697297835692538206503915812810600989551650870032477761033272298053577248743540322130421763014811068714374874322937512395036654035082910347168921767483270805114152153031476661123564298387322943257539361863330432131859446324663130256259742473014859866618890767399319492552182334869360925622016918950953334349330413908827838555540199674828343960657349081091406499175356277553381197946316191040015947739781824683045346267355768851270339708142888978521005456073188406604321899108322508487320028074107349915189384883314174849576391770585912137221239012625792830872663632500960824067975044033928573880334162731364407616506531238418494008543160814722045949437891650613475028554993997323534867040106680329388459235246274905855667014904666349978175508227488331461176257507085823816876204487621612008610482097198691868643537420324737766070837830449229022058276127705691787896217902245324989160135838088130217496302526128423921302903532496866588346108020880344563460690847087983616346475026481413213511064900045344164497058644201382116185430157317912483763691927641991352754703788321972905753322665837434042779917682667248389791340895294618170369492883518648469024838471331250661492525016450853643005487231618621640279194420892224237759193165965773459198499913943692588012778857476819788978413115368191400143919320249617965145241864743333013635652680279916970959366924356697287332973252486824955283520406371039567104245613807433569513177641555849574011727201958120049720962070400157571134524246396102461706745603169388755870167566414113642710321585282235848292981015740548798075947330892191496890155975945939022634906992720050508789708234045715837483980423200304233453151870716831425828115478207155276656748970454283239296977845843426002762645013320816037243101165214648885686268889507782873977282543056488957808987594403659366597235005142470159526494186182533410761985774887393480033922829465402579193466736656060881216447134497580478085322603388934104443205224121225962976050151334492546328175445108228858526680036833960110423266600586140259304284278091684084190111423074934392923428114316304194005768821044977658439234365980725116908776431299183714994311291582371052358590645262228173926420253701413864524377480103532901590457142306945598226897274242704684918897600925092982956158200884635733425066348556596154376097592828223657339784457880489369135622807681317794572119193553067604610385441885405735766165348638852737947496544587449539183886828220418042196514267987988235610858406112078303539312080367051504255587960646911774920587443204655575298067250773498534506628900716749148110661388526817411419882303411414203780283437752215659507374288189828784911127954162224337650452033716649179324960420775539044559599184440409575325137131513187222170198734453732168192391049903936729859360570498023046305117304733560931970283194186178571767774597973446069359761896190853937314482463988182117966824106661353610772172990762471066636019631513794014275453628243362961723361835705067016281062267236102592371252699433150494114187037593940983273737555372963353560865240243014555801997366579864187487996423640596163466499855723970802161796559913737824854647326804431334177275087800517381900099038367095052459313766430164747467787631487991871556610160141659580112488645259924561857929303990503247946095313490930115723704204102563292825788476304769356494210650518816054692286129788352438228034634030992905020677849869609378412006462416873191231300278510848994007392500095898286615116225916161702069785849980964071127891549349400990607407218363294863133418554053676344535585864887232969663644298332992451578538513949894076665339097467128220508208530041669755142960917853655680204071672949792795050404695481865944916788118389657118037751119185921492761114351303769332279700737188271424914978633799297501358654504350753858818582708411818636347984689336587186638152372220925241462179769509439290346963296576266237177938982734974612145715402995152990564425841205993342376106883413883856131316126734137120947468028922166600408518783985781802903874279508184550210926721008430811081847129224480340116857964175597975686724116270478656650382228860384482515561085728757155246391669513140627127004355590095571187016242755786078109551162304227691761895156826334646879398467642866272841509151939946917759209118888382721871102679717589302550072406387016248583317730185733329524111505721726164989504993780728288126122079751036850785808800331260392852138577822574548812093586182944030876389758923919500897143720850198844037113946347573279020998594184600477220802216510223132942760473737717076860698329814821296258684719273679703883264605188972538422986155993591685178333052286380967900751230231828909329099276255304873741700472964177012620665982828335420044993454210270935463828414416834393133522981365284976721619655936437988217374716224995806603801622280445565002790245497184031153474510921493852001501078859547218148921030405904200355657127209565272981849002100585010424410437987404043306644649102858081157057775952992200617742713812044471842914516948992351602685900921384634760353222946724166962947909735084207936966985085434328377495313405307197939972465711228142720588010617929934357146798391335340544833912613547410951772011278543668195449856609678817329912942510360625951902467518984710594666430530876023195924139085309352264783186786459698095941629570866299381654633918705453730406637131127252598611464921894439688589281542659709317506244296664826611402329818608535889011045273840498651335513435757733432254556326333241619875163859298682014301095291229436567321085289353294459975356796099880458841569393329117682932884868050837403017605154950166194394335284850910408001475427399829641084925719029357426173579812564952490803861298295597720118771515167974067843538464171507615658850605356629448431408423382081326411260351573326693069551100956418643535044518326894797218022422879309197617351258567212046489864858854908232642620132683849238490684506069453938987010431567206108662038660683537329630420754945973684515620201923946484751944256811709364374068960811961247487596257584332231744429137372012389472035307942571792267517602284196031810112539369976573248178060474067385502555372492631753384326194058430842515950863533140579314518025020372577412377880116069592002838414750254548390988497643857321769629907122016474146894798528778783809742260519466556082051705606599961858284748925162467114198811505762887580607576381252449740197163495356045811754164296907687653153268970361206793786987210691016641260923934582496246889501353574761498041319009669719016163530007978250826379382081065777365795092192715285625489793643078485188063224144776282228058647900021615120380151937862234525754157865248708570994664091963909982097299958849878049504937930553972837061005847358797457919069395085854190985694723260201253304532555756732121534959597086251830082067046910476328894703979828798301539534192372115848313132537361718642659956933611633783692798766046471909897851382815024500354504297913309775018652590284129833339323768646479175481120396483291411241773070327937356822476609164990061536858621755100910887400810174728231965823788264678494167497222569889968307688766950828994894041686895191653695023869938451926942735390463724263520964032949937436954491693258458530800976032295777316473456988438720473234920962186965813275838140354544671164050731770629880736718903760962658260698722123068977587615187696917712165911516522893981984164985945187186447887055381383943357417266734015857711233282069868806175591725343405109067492968444334110991265549882909879086946304535209309516983295995873679202401421743257871946681715738238388848506742580302022810583332584933375713294542910109260835108367972956484574940241425123476496772958177093593455348260374580022252150072095758425667739004394309096692868721053703814778029785562073339551961600125763154705443109939275285276649038002791879494188294846854184205885510616282815265155008301205409376552784448182812470315862379576352221599453072329169614477085435021228817264759461858805303946495977872163638265354082007233272549458254297267011464972278472064663079398172464864272217875820081370464474338937405184296234620408248979518764617884294894568708873003368325522947605644097911699399256302667696344743197139271247605811771996775024330895572345644427614127279181923922190794003307219597684028385326175419454152582178602766846850855908637068736671333310681272708583207638182968544720341777436866847616298887089027057209115623911834499375795955576547040158638524752163364552532272019253477345730948475383039851959028180151069511314612475993764332261748033367841125853319177964723965480233785579817232108852196342730804219518096079891178373832388628342200975417717571519046870703945390643441276490241707822347675178172309668250787127378933413656167913581413952933264303833106840504105214167348364951380778806319203563217431418845452569502259183427059484558481115110373326872522552492260353216758971926137275117303123073558369408978832155004937965182614411448201474903419811754900993226763241543694881809709083397310920863685628385562921041966579603059768575984786163479979174173096184161413459021901738392017286282512512959973964237189665863596703368410020594740928131523754457306539276118744995747262434503114314241839390200488513714568423285689008542237541200337557260433085980867574870631613478685130150302729745778866877999161751966940448204150238007745144468084977336361163598571730628953724804763084071336861689436221082748995060859069334765231201988695281862679244192973625641057734030636479793534732231728230255694932871144904212798379086610509478972169326088553361174123307434388264201702110269653737003543408395423698961146078878303721429492660647357226750018037726020105620070392072304807663172395884865881191735178032649939115067596217761559015638636159509924654010393555299369509201366389652298108234963450965748500057173232948200360539016140907639947957746453875379864855600935905135594824275828291883690018671900324501256640006090846322163872203890085571230127362221290742759859572904073933664568085245255225843332739358180155524536297403061700216328540037293785995010213298782817975886148441986581651063493275952524584512509062020592583967297105893109717517014671074402006032118721322504724488791947804573421710371434488097848014573793675416742141470801877774325867430639802357180622307944900440283238049072060580900948749169002662693784350661077184705733306999742033344392019441440478625603022351343871192933639961354888857916427237223038544812393329270860452292856581025904793876979000112466619653860291336069076893390655001574597647950444810731412906667612630485707491819777326719091214203621036860277143842900054053766340138815481825399696045332712299524023240322588135698229220941195679313644471926380280414108659342487737320988048574020698012215331809444216857681935110954648113829326279007934074037015187795452861309657175191443483437991063990392466164126808756029181851794752198622797036966037039030725708433980350210103982607082739524182587085330910180750687622796889726769791635223187534449875239199248481528660397854157149029778310119202146965640146491052596769110957905973496452401088229307125236405994072532920309511048880120729455156585651728867570421546565289901065585220210570744100304482061067641996326244212291382292337722658519006221380673760934130520742501655703672666542545082093548605078050390549581781908761977483349611517876509056265826832274202571618325608544275359798557959533444563450658553202899357022101211058122196628020502726359292193264056913987509725154885954518333698612781896438417828940320590989780966671671067955485464755378812175182456113064057243326553288189158326800199853923775752928682359766640686806783781749366409543154225419548250720781507576453532761422751197308396689484386867893520796219754421804586223521895633041628467456851406090495473113098753882857414585383185120811795276556949933879264089624295069410377330503189107273357988401495415402081283693474571810234080436749955626772481077248418656786790053673294634608351264374374661512321461281129696914411247173464543417202757393191909727818106801442977683873856724218130836863402272166363510157187146668211551844609385351325366058104693940966924295856537249900919333099689407661849759369697700638874000564425175805485994829037739444864305500244899834923903851972620942772878827840539781532067048169371079647261971570009853415524763299785000206246145041781060544267723687581147000222297753635643411883124078694444328200546337679302231698280711005779724908106782117346832525089619379298325959502006913894882504582033410974953423879692488081857342836872427735930120463585964526223766813119758249158764603150137073619890545111534003898574490753760294459245384180893041903773631976965201874962548326358429600493225847898305539336200729597222299800710514876021281069943049003101823159046324390601822969970335612870596294212151431680054154807563504465227108462807845203237293322065662099132227520413550993451595046211527690829384726176403814657608406512058706569033559917573144994505240147345778690867589294306173743015393774086443171131011502233324686898511074492215010470533577385756617575513480961989574449294962263862020597800739361195758393617067941491116008857046654807188816609464898136400150641536063612987631227323372845229958262899886876267045984171757963094814696294712038388701123535947958193876682902129921628156097127882086263055253988241427075473423267198709094956736886947125213016078854676710342479344883704928056907518527494076378198641482314247052477379466599177724211469236102346098881614376645470089368418415842349275832581210699899697720135404274827153430186167681685665945065497815956152488826035423016514194497518414212245274015950025499517991624879364427710089665731312814285423280418233923583280251710790641300559003826004582016282017055354716065717753613039784653311206719491029452624046104608696543016417446228847423267423044355332256046321085415992205639714876408041321634121738753146344291290726494272395712241398295487456498752674141945196664090974373144414956847442555411855185478309006761784615097672553757766574437469362547074107122885589671893134353321122554735576153944929645575795207334892509170270895352928414546645499715190940559457598341992459799046788317730458490308412442247767090477331905802438068983267948112801668845791518010906941128130465165587157406161378251319934568252653669457760981693446701477178586327786238079557489820069279471957563194132577543708090877114580959588768667222435861529044105356957728175386655266429786216653816401958691230406758896069394612226441817666557707292259696254533849496427015513625521336793757510738215548516615608916792111749207623203481294397840319034959103537186490970493304331473532929364795912213242950210474633811209451658601093116154118967278425373764941321437210019509577848471617046579253023131306969731266508031964769355502803714297483514740331217649288133661719190624765244506565178760856826222935058427516041868451445093113214839340413027859294141141348980266930740587560479625916080348142038769271178117412150033729467115363598601461571368709937956383343943196534489810420198072587555905637538220365666015115809056432668486609790860143925858778592697693327572052167872079192457040389405809951313001204318856322361331750833596800378958511951622331103355351642744508371331219049284390173319240898761018923736334495940936165020291244181109487693250695059431736002147123784812451368501148400145874755754844878250164775535297716157781147430507717553091769211615701915466677873258397923040460332352324045536109429608033702580374942548367556171448433194479217453824733043905772941664681787205151598139219459374415590800395491403452993239719047643692653472916959548568921787335317844681687788580501384654168995079554563817221642117900618172068334467940704549557387989106872585698416009014146231936825347820703459820594704416836900375530232318489983511738741441553656122797737510929469675969843907709050345534699711098956158362264731201219981014557009382323636801865326815325245724662840595572286701209911612796648713917830497597641530995106242808118192173698798052435516166543242898733847081959408949554746926589576735557412245725609542984133673262184734671247928590083011292003691334501499493370964120512777773152258635316119371305347445528759154903519217839565579301655633982067261172530057822894482288606065423232922816791844153996046802506021535497420029418879057079785635848223748689325592328633677561567938573378304112472319549067902574141754771920772012312087927009028978059554464582785199850355334589984239746599986551971691148143347586262210696916593927510596239683204428235897217770416789553522555971617940643310630259131297824064350901592122736171539555575321564947939063987889695646668781974419681419502227388188934882508254419405686331962274159878665523807405579725143537707799015526635129554312821052633199760216039863275265012485233368617424575676445378405300294514870847558559565806769096200527563494081600737164646328577358773435764071111379950514374882878259030147949637129282638901151526742946607150877028576956913927588649707573436346497855048132212418667212114330954499651415113276294149616859966861605483497405580475760861658862418491712154542411566913711740392213846332921842198450734846763079180679598153326976135652863161262398437030599578944303794474794250496171099999017753745211450748644265025426448228511054599698823640994282634626495351189650242439733961316144940770737445974425291460142826572634718710433267105955614893859391362283305573193824354556772200974973731612184816888400591640687648323786356673358868753026527973058404374390508059046681215600880836066366865696902208660407572723894250047411647651338635176267388650992389901619754467407939202821619061409600632703246235073836237081911857425495813247722086138753251274004264540758499474559724454800422642069894051330415285172113636687374425693000269895649639391432897707681468503687775192480268292205903743264018090057159831541613041092921460196143559629140481900422435578384050643760819788381048329778010730944656738859127901842769616243265397466802994615398610923829128337918278170962312082575741782300763213190136916481128089158755636782946054972779855686142468118105619260959732850142164864136140362296326900255116022014227627244012287424889042276442790613431148850203531656394527352218355946101435353631229813868959890974715423769943738755708776117524122795712152933058864602195641853671094507419538480894122434258506239122796401009531916186154825327173888479729296763191129765769074865249098508336343707563928048457499591939876335531243788725864096503989070723038424393894156545697110546373274992484455532868339208031650645565027026611479585223759748380197538782893569482354173289605192249666665587552306236571913905443376937712043015165444107604606801022172433719602391254013678155315587498377004917601428971069752373942144432425852916719876013798327904227348584521506529545878429017780322184276375036742781320898976757048165707885031013070641031112027784394465472654152877445795325342888831077110451397524164077454566510857191194623484519559743412378962010228723721708407654240531769974788148400905126226512451639866660711503290549569490928105069382250899080942678026724337417848117296515734104048402060098291253565242262208007515808007278636710415999023649476028814863995784251305315259873848393097584073885547258978093005204062825978475992075014381266540515437588386363278027509799276812832702094718447313525138901056324866569535307052174861843741866273650512212868394644394557146050867142190377109257334270124355763276968214026927604697739349834272003911655371866418347313774076822007525428266840761882138984011792224148486137961992549358463538202278767537768894954534703298921415234132695835046450636691933167099477737000131467842161876902432194785558724097635605289398689489716976742243443795554019291306832141996699578056083083290839171750501306343115715320171683375708727392115971656971688173823023460268990932095835435129484132827516873600275155750442362353642816458412359835102319898792537556654588387341640824720514430069908831531141808300503767572731839035496310497330975918928934523518640264238209499817563246719770303039950816704914257336015971399425189273381153976207742671921282428039667656153457986592489143443035908905831470276727058445959857537732651002995886533166850701975672461475110538305811704562529926958526016237452770723813949546167355767531038062722990783162388194946390141341790895420516361802410265648530454305945243582998632108356845132213526144088768806979938737734212415808284097985836805860627875617436622056200613615724755087362407222096190212364495912755660914322319235315962742593608667698353702686354440998088161272114648128664701359327243968316414793755070419854948138629432158253272550242028091345322195924321880808456280540558722183395568863110723422195649012076592810242145407857307969837615873646716671074794436234229413107479590050300792378690289571446700402117780712733877928413320530510766464245432661611985776788086022457918100276024248182859032515837577350651312079402024578721832202571171970930477270611231889031345193427317619113419889702035490281411337319277259987904595628331317192485659072881312441810033004013667713096906958418389948761392103065544652193251310231152674197849418255568696213538042274525187217609330597946870480104954705257325911199847663503077922243481066843580337232551227421143156831960103075911853902943972994053769092232246839602870592829583117479611815480536818784667526578877397776272012937837378884563216836284765579235975803541198020475400628350613752753543445514562494578285255358248916945156923782248573227495541380983081700435389298604200834961524284493969978888885561753170083761693004472805942405953672180143102198949549500122180272472547471546586374916698653595312083008406084022529944045675478940555875320587739716574537705177433532657073161960552995037927462536526568622648103041385602609217352179144074492884654670435468083958396254663569661766615988388740505705691220103315189582066820140960893134213592294679699503913554708960070307652555809795069335882957961482129825863405396762350812717993384629622864863537220585643872619402640966550406845662117459189695074676573924294542877690265112205610434252277011651952921537040531841624376393239223955946665157781024306119486853370949012510458233232408416018515468288264353320167044278520975460026964836614555736230120390517937258677242001323554684808510702538114111713271401707713058157256560800577472964790305855944979894043945774494177913974859757077528672550578043430555718159922596055759262063564322614483318721433962959374791029076504154284952628923768518317610089803479519297997006530032556190083359940810533783783944734296082256878588095732129067408211402883720861922225594032145835432383035569516345776843115726881020122212808488076240103685808143543798030917168015024007598930303691037196150523548156181281205897547639252926719457937745363063302643630679934273603182427569482598243533014893460575435015835044140346238558111496114361451972205789202649348230967365171068752721883733270418343817761990751310084783200042101882484580389892656800996491421558058270123921261084781351519028886740774000007524310255814999517826368633322374340097706294787785694809291634967716617047887178982520403378619635609579057994824000842409633907734381160290834841380729256865217340831036920859653189230306695547924815992720694160042841909025892751495722303018227172988494999368287272481286360734460544081621678210814737950245638058115066565786868482210364922877357000073132068072035928457725919201697845713456163422188029423440420815566798403753126001620959558406783905763740869412253995494945115319967223203105823277768877107746098177331967520628076331603583781776259256978827806032904896326480397512853765915275252470020509558396989964912228448308291356549273573365091958514529713422179823866348327334863112871704734932003468498445190243957334117287751793382654864713776943108230707111463476110819239627303337299203500201509705945447541853419759141716533462691537495544421579791887030333329402260453076772338667521676746712104784906749401625671228052815723937174465479887557133340772450716888755240327788430789632263929225217374962262321273438607573861151607763395316537010237482273982472026850278145239523359454076993284196737355513309689794946967570951813079613966612658336194599402350153353517832263409775502653305228073701517583381073257294291058466656914597856863009326421698157137741500435973346682033486875250790340870721615263124703384670039273625183687838867116507466216868645047926401631699554230166643970363307051090552285549048067445550169484087417703320852759848145504891824786434090450725145094040820521622543144245849987141121909565356451796983176415307848336961356420257399278734796524036751793203733989855510392852548860166634150596545796893728779858678147607917034020540476054780583950850327223885481510782873792630883093174302713682365752553723211172147525044645708333505607269453000519526230629357275636742495602315000620405955697260785686559948687671419049824484205293619163274885352980054715547309220661417743896198580593335079233208864902663430968840193666223679708946858038561243721526320548244431437033056821135515300040791723252541139647581562962867731152354566505956321499540195809228115820166847055665551925109408056625295131835230007967018005218606706006162612558479064935825930211136742500895236593930246170843966646058868193747280509860968151846439876315015091828875713940157126541080318261257474058033363812954328525773207508015876059431315533785406560530321515851188136143247255263286216640803498199687274135100756286581468857263445533482125258663256248139197759099830007852901798246689196446524036690221668505850104053833837119368055692817807012283817790431204760244152452561868782423589684525510224814547563162517912604179720852629180293535586533154249890220704526417675488966380792300212911591884020562306706766000003029812312363743123970296885677680151781745470887549973296128625477508815122613220951173870164779886209645656165502270717161020389961057169355017054994624005238738910082641792280810685891720145067948390924755030113816280995213532099541982242972871420472790912792321545518550564292443458019915643601052356130826792219446777409851459766634067545012707888563610329403574697752454218831016016493182980310043261354488154548853733799505088717450534505603070638979789104072963403048511425660845105625050703913885865650015462011409434233620455504680000243825297623404949831769499233937253602647993630859524462607717885718798112214521096332159838732809353690010927202565348233984248975331828476580912438827031760978525064146912492176460610062306512283316397773055550207383280863035066757604036590193544996195357503419347145780540915447317506349194914228986797001861396334631061059289800187144134262182576734987888613102866448151010670231229825207880718175510225741802554176111256502375745146810642671042639301018616783405559202480682257739671376204100998172439531223789606193298114515767696331828466290076835367897975545926650485433788755499370281614094188475969370910867770019775428644753733806932013174181726972464555247044192181787167315167498889719258742137536811118547984186755559691786255313778338233858947591387985479579394367926246822001658490916081695978213778502593558433884798162623334794054205817366195426018674956912406785812646444597381385302529075444059952223476838465657232578491253584235335881068072507249890191730494187660825651908514585016621780622858370168731843797974176311184448422775400606929423406153306465734106729292327744295928460099190982744371725009638385557701920636011988357960097756534934782825191121653780155729062137024708271655284384713981586872685792563811503428373062532056628241169507477284699306598081747944018437742057671642106628351265095753155309515828357615873147083196061968494713966412617223160421637460280530846123564136293374923599265094211143139630795872114028919212622972754127231550732205002304071581708594547417090522727264104577420202580388150365371716375424923736410090209238580553768822344592564208262850051279117803625388610596131994138717182016997357175862278293187282261048372626938064403292186052981643917446539567013807325340958827600086351146514316350176927436960881395547560255429378652147480997239383333568408134673938985233501226522961408585509991723409146067691682447242621696600656755644107861648980295698473467275326602589355389777879544655790125305115275492664936415413541474126654949859394244617645019029588085213864059440678112256695664642608114907490861371038579976945787979540488162148159331282175423266995273531520104155625225181122801491364658009328465487569266871058614580822777796636143542515615798457047618009362830460343646888595676802961903148732512274302347207361377672943506627726519395124680447797049341139027291226708448604757726512994732569049974572845603771260960260172945778290564520110849205605234471229150094594137168982496646752899664269066794970929505481628034852017804773173728409100036086389307065764081163990135455519437096408045445915772544287306663515589673930743831959071100613358022555855045329202906704208990228888388115782249973660865120560683807303985897760578800053262774904854653820538881250620750727232810784200667676929583361383629292438161063983939931167389079160868307592048958361448373498910971848899968219691113411330148471900123705869738556055410988272932762691471680371616460696093636891014399359661315174019939186019995723952355733476880333000841132007195558855558244351734560986542853660500183848958797263842394029352684699417183294692784977950742850471010883468571925130930845813041760589605994516497603423143872832957522175431545832782799133986974512576334462954200237386027357654734893812884319114782407224689013828852516856206105733448960618788699124850353109293144348089804059343424360615014170859471929358981422252557888522804723764479153899904274883196366005975180224241813672027100647611366477039539750595942539262034603485342061569332398281270573699492478744071064755244110645991150603142426060472105678098718381954077559134779825380001356039594465643403184566575928259817040382438719548730141678277006997317631656222355041906766255618632884449272175319480666654554386521103901409221761263712378260296301612816024964635392371651076090116034114387693501490345317569744476688851147689032206174518255272729412173335694886830641070109679787419963352462653536068550134549958527780405775344886679456106084577484870490958338065482410775414521404109126645179497140936936342976145315581416347101906084320165122376456457948035606553884365866874583234181513725727579765661993439392372745438751062285578247738248736788061995552766639989792447872914272816389417530009851299531575522987240685023399482510879097301055056690804329442723017515926966266122136336555095463558096735473928200227250157846744983554333619189603720368526580967710170691983038737047303962025291921519098693480191319402759442188309747750929820447583399170978347940540849624999131672277793130895621700760594449615964347603714085746401463101510846617526570748129161787252190957797116016141357754678452024976570811185198818949869248348557730154848384168952933352109180028317995175753398874397651009673438427661642163706476951060560045037962635211530410599737669633127208595873073142407183904608261777597886809536689131716898184259830695286293001129874602447746244088781746078627637255528854968531802832350473328302995285216227027924740896779096656487720243307250887458970812451439596299282148711111755250387764429972897308595092163811794785619791686037939382227493837961292659178145117993738926098738744521309049728059064090526308294546592971054357453108470082396557302564391011044291010205961427208841063247078913963265020262081894084888541797336553766494255904048207153771939093792115446102695097663379088535214646949020110236363498468308314942755419034448400732386493383970859361694150629476933293203167839978271549359436618652670498618124308373390524408943607764673624281601933424187521933557996452397958933308665923385491786250745904460159240257565270745479702003375705800958904900824952219240231402772949817164951028720526977369110667682445289226714637392341043412932111397639595139093224014645904978557001199410753436187365924399062934898450477188439488141902707391317957367137704429400950114867246539488748640662514381610387544349813739969857607474521989058145722167283183502278055049337027274357083921620877032712282194932911461032022394544320751628272773251681183208516719715196441298647444252636051049652333285611032927510937213304802709829212267282733620349793304454409905969035207906001604150598328173014017122189743750299610035181245772592756300604276065557621672648995616656015048880132056972945023479469015739592540001480838207726950374574924684924267603258888956584069929625578731321419365647731403720761577096103841443598377346641909534033269016130998483905647485152823924897350828829757941346129870039314163676129239036818039811805678311191473907906379026406185583134884751254985684977841268504321108268208060876886623147251712154823514516920536352196967075373092352402358161103893827080495314725936383641545784466486339890146675470668093304354876633601322061021771778043224382805531416590458140303713184227324774180198875891661023772466475358113542265695010857905161343752639591240459972702869672649506076482075235160029208870436515543831767683486323401246361908070301848825196741986781194765931297558509410521337840486767281566788878522654434990862277516390616443803061567156312390664377576218882547977958486541863403634184842616928931217328525301511626272559370161353720153757523386781970121705404002976918644117832155144396106160407787280610944092698840313200373096899773734054239184580441524630524423790139705805171379566015311822326627159016923826300075389018872011585639861539299784096425650525153261626088370395399915948561372156738824482250663794890422198218732501788626285632696866570509504548409697273237104574323858222244050437746430248130233246055803022207577971498136972575659406411736171722944776933030380161713819516300703521900504764179332192200551137766314816808988544854750637476029673972638105329379192480801764177057947592833774695259085978694343021197305029971857151447540045019164363725475941692016480615331526775470900569995488931055508696517510456330422963806140182869294909638779401736215507349774047841591959315496969777969073065654797020242831290091127752627772312553342220515912366636767392855541946881026801639955783459075509235377328125147558537511606853703858401403886268555509147838875653723353019838909904938861496138901624419937867124452208618479049195618471998578737896662833287448344785409635770447718041464711868083474673940335833502767163494989450785681250353126192208785507003567713897835198577991152015240298622316475675295802911164961614047336370276564479596398909412162729869200708883134156169455859786147771300249671782009514003582023869821904399685578144175528403405008035727223593414108854127004406338772005949807674450138873120155993949854125323168508314539501189883121252289197823281006033548524321011518726541622342211861815150630407894981380749224920285014457076339045803894836613594760798698394720477099336581192697636251865678468992729263245469877640201871758354161516133280326860478768694212835684060220823024040452585550420367014872188055265480041405517345537585286034311926735555590163816158304851891397288168553635867506611387861160144111821106484676918300481036174348302313574703392360833017773038979317692285694151835613537939525879648814690533101703227268545111284738427265046717164954906068185460492042377284656873641828756288725891963463177660787601406634937529413832582354443272125877932263265339382667059747576643276189007353075776096624089917890586139493675245729921469301646544534391206774799145534380833109003668720024073424274358476109451019199163032577485998217306330388717247363657585384596734821914264527305541465472079226300153434937780533150794651108244830979189985756873221160842702109067598116219161515620447668545636913026141753369875190959316437981432443110126245655404824778012760263331122839190043023755772899380873199357372551590036235346437417176456286748330352122970222305314109381747888204971320999676542160240261898089845107483305126236305311040134505452106247803149398105828629261144710261613494243363952968923298291166823377764406509323620943751086072558754055690845715258572369009515378086392407833517313943794226445903698380195984479986304154231834446230582235940986930326721954108407968466575828839686675141889126410449355371520022340952272703138731792370555979313999342033755640867165983396889935851685200368694578443596442394215252144763689869325387610782029397226594831441080345703050942755637636467474817909963699739561483716847234782528291191759031362425129762369330543412668077808025041147928494374871857373005373022581804811344447882987394713313068446329604957487134677771406933882844190392264317036718128491742146150728870389465617398637605113007512868624578637146080934784206697002033770428235395790316016957871956383988035399706900751025980617709508202096559600537718145647409120347464445042241744922503784454862751451170451529851533444568412837674450723745565741675808029246819003598027123210487408365280902625569816704171829535282066737682333882433882088133049408166886161551341509519530039185668191715372582907558508464976047799052905021825562356127621500311415140001639904026228110676835444668909671591789909294385334850096298355795328663287913507011193130958199661883217186590978922710618232283899794671565578457010438723061250089703116482599330224635262361036435622299245677050543766326510794898058659773265414778588395364073970465762179146851540373938085553980637807483501724528035207678945442796827040584445272189300003982138207154719231456006116162860717259303275620703379698394215831386507513929417241878527422702782048108103589303554281809215338306791532758391225086034320835737074022113259379793280629384730637515080580153367359058071807000888308883280915230229476800790544752748720988851325973957856957474355004534304931295966528935944732129315456698713075134170983709912433832519828890064988638670732644297791194901628782202523878856121954323300729215563189413727425263653094174780512579082927928340637434857151957791313675151901230576740898315874816542814715628466443181633673472652918573147058004886683845755104414892222499387370283166597723462717572128941672572960272710714966491420545140808920990550695683433451962785531046105314929837655948499744935614898349034643276299427285026001463850893818961293150370196862253047749435007774187488273794754629342785230642555709991610927165481481740583628480586331896623383536580139174605725686405592769431921381549871584469437213012759884575374402857582861071940074916146776263394858625842076773205815484024527788245524061897750571335080637755676855868865800260781950798196219002795077815427092381819866681845478120041385772195609467585543135512817542506544909684588003380271870439108576068541844895453781851584402715722972226682045379671290812477784186662757168854690827044796683357657832670173991319824987486917876830457768984382298485164803588166861438722454675549510383770218356875738451588579260913374216682436074255698328126969306853964378851722601300604370821275052505935729831946750549670690894931857249921992940679086037648802338623103812067440992790225526840444795454159869870759759655752900684769294698048840995853945015254887437408278925736072852617165686118781715779503329297007186371605378126134799899960336955717143499824728895821517090813766812054890566492410041028652070810138458105284584612503239184521528370583653673912859045121086861150426313023115822101937707963082428300206239643924239431979893000125482428356105125350704149725057941071680374451223575355542497339759219033834738771854610508867348858254408617566557974492124238260991112407828342873652610611259834434063359889550163827190828351774202164058431933209386623302177427553537790389746598305888199921515377705335618205066706346350225990163684154931661411642829558903979389986514339671389137050170198985117888402453941973706199802698674080489293287020539622177526248303266857424846273151179441722293451152487648891473117762736558831389466394480880759131684145942422400336327743982873290580933385271225900722876810571357937871716303345828648453852570076094294162609670850305587945615356606100811967906194986481182090842936358188709610610557511841002898438085069230378748627888483316999135035418784463567140419421543505496738217250609880221918910775278277484665946941518065727423739727606970706777840182609406547459149551397910967927181906170605124283868888652651568699544428244611581826525835491914664920178872697136693656974796238964263141530747803047410310122358320063493782103599203591279572489303684629561015798864392606104575826678538990550974566972826212948237856819549559543226675169553883669280152827248665599867252551534610575089545769751966426498221569371910876598615903566742700150705961671362301378998717838512552693206383546227601237161873939306325823838822167669723130626238514838393616219349443150167252102410973318818498739980679632418591835720984818912810929344623764126061172807466039117928322754151655961085535744480873785845683028339612823604846963189478556643367196400444101982551320167938650290785915666905920699489423689722001734807092298874522060635250587025483470539158737659987511880705045570651965512593683396627767922630684297747619180644891514622718405687442555971493587215778414701375503905844932703544104605849572196081532463208128271433592843931913565434699081111977600305505671753174212149686776375232491078749411304448990732257741893166801585247925291514384698755814859008214299512163321667958002834537917396417790372545364194861954477005405086637382980731937355782210812588049377302500919169059917038625871539914251652793914238502719954844747278061797058715629325721530814813565708900990325667546963988791354991532498390085399609254341634269470215152042042422449414950952109069668614288385412760511226182367582559886191220319004971169836449246318727161305171793655515567275713430569809128897613653995169552762865572225309865755053539212701109635845068893083781458420878861015614961852759547685072844509272725355615128058576000239500229253659406791137953800229153794218705154334665446004214508234256712853489695699667952245226927880439475396638418263244642365748291400469821441798234946258545391460278267329621343724483502417047455815161619116540704609994301954209349194636628959776035644392211349498453154593795645622312802298629345827650440412473063238594349892251300421661091213560548177447953722870802552011952590100742644732333254673503216648804448336529071581007656066949022978895496700475547689550077037502402392092213391557123261872836128699946198387766710868438904108686324635428232457480503851717849310730180265881304209389789789653369377854907029318979656333589165232040688874072216569242767143897252246419785141732276122985557693279490483777369242463867796591489742503938340165597021743321256381929390229166800323698243888371123060008359148779676581465765647118272641439523078285044745236688962092526436243805051470867513212228060778253672941270960032756782105227707255755716091878069005174178234623538471152514018906970829563305362295142186242807803986647770778745002878938021326831027963066100426774652803302707205779029220964504103735877295680687775970825740356427486355470863996972136017008575193448901465083185735682595681461111331104830407652226433548678193914093742491932608567673252107377593502850873522031863017996167902893050795473435867044505327003756848437197563224627064988495841510420667117599795085120020169281174450031927208216296656595997605984658996512208529355309327601749623439791881653238674112437618577820803849728276911994862582989935224808315645308695193046840515265229684742037279550950168985251656575207805058289535237535861405952534997892894136215945516530894414077168192927047505546701415671060919537111753916694643642515427099301408313819722293750451234519685594598297683324443228037041108291841434204265167270417503739013184086444575150236375270896766892049024736594172527295498684618238520465884131736368748132017232393605744917626422679405928389970763002929842941717933131394035760049298376329871447703593847251986657320652299820948423972894517494125812826293993162963144251302458942187515689627635059099954005498568395296578139136567044211000455484944640499610437315569068997852406332826304874010223784144761254934565121447323741458599077469078196549861009175259095553298274752002629916408692067441343462880292133739092950406626302737543906689874293768749657363162150496333458170313417807630661493572275446004059711301979698104131427919831822327728569570750413824892524862090623641829789636477107056579576720840459174893591028739131679031149603761700881224721888473823427736932118067936699837676887401418955638627435434653559178654220234427082770149400806230425338602986717231146394279095621516625482598325487526246162234141800874158282565249416863637469896198743712850497238784016040906845913820212988025438519847710478179668530928593470084999898113102761237918169835897368055285939901663168551145342502675832004444318118354499215230187177411861849157255433997830131453452937444866478937656985976844287915677222909879725509089735400129188850193764242499517802608506053718095010231784984145909829577644281609400189862999143368206797061872895621813687666812696445758875460048850840073379290242924393470868940810460520832141795596238168015078242419019789247761219939469068623589580223995239753101103491226111919723341896783094070270617791801232145652481312442189171385342240823745047619910008359318578720502757464839560967012756603437399369779161736212322862090457882349772878769000139841434030056226901151933767213232567252186541344229035485733185280013074202459620510797779034068568176192430389596493619644285584555963884459425089985794262694052096713714058007161944676188287419989741664222450345694488748082321781973150716119934036918172104220172351535317281435007413861477494889298227414203042848033692526566252964582181724418303846967651558460687889130763742064140216485545740860853364740700001276638187922266844921374914083079999188321632935192564890649124368621486939957009372893415219332157664739035267612765436991015122987609934661028645368955863058119386732741678092905448444199846572941260748775271132548373984163322886877748653014245182786071125943048784954840959662247573676342103195510927407988394497024775422922469261805219397618002820738874975160875320345696144117909758955724021887067381936687285634944133051868189112194912253236148276312809505467913448198413596455889648743457101292787384598316974099736527823869522808801119390363735873815192119132031598428730233180520066143053715481566964851745608643710741031275438626391609417467113632346269539302104506504555345723099954402568447076629697294750966897954265189698931976135726656712109212141486454154099075719245266251332546403672985033479016534156033009655944182592365496726013148572673133507927400853699212625818484969011191763469037913535360785333705740499171757697967320411916191835911341550617653735909593597618184534689122279681183202864158223698644357547522639590741678433203543132166019586981471862059247878971994969688780540432344852952316749125691748407765696299858329685900859173406862514717152722457405782783512740859176281704160194609378736507657120998407501924216541294370534639251381901006107972361492326740321837898036258474213734873664510245059556734539608822543358393195406064827191735825284140039952045997111004031395911877468163231719827275488992555766109180199543149255305077135709381643996372938547367049572192572964681075106321770897030890280715345388398684365228293869773133096637210625911724346700236601839900585644078973617634335997254599603129953964549971430561149716962546737563655547180525472764201702826229391577649441443275827935053627657637472116533940273852049351735164379815874604548257007889797531626318831505637051329001596888163303406424080106156375281378816087394866044286016991079580494540150628746795046095491873596157993617598567794763681601376283523381078321131476749843477559453375630217195156275115061617450497310708421908115062124812187950074801274156905078924123980775064753062318304008704226510560312020172714914181072852694795045288927915188166562650688279156895320482499355789991143326675967009351280178211341632088446456048312444382276329974487894715466766564925174427722616614200423139543430331439311658662772143079856714603448499628625116464185658775719962448498573184161952562222543519439427210266983141397160669623430459537892893646610501856682253483431476138676521858270924893335736371927674658116275803040848415694235673950570284470213780542725081398353629968391290254930731294880402646281490193192760975019647368574135677127154144737230454308515091688551748163641694689554483997560626377576060246154221907244207564580150628187532699947167614525192885264151520363278140560992393308324894517918081819168570371929252426010041773303019851221129588910304817256272239824403715261799541342231697330776007754081925071771509744591480054032400517599517996297491390580119956469791735742323714794440414911424937172020802817222650731236292944428949699965179888216393716721721163013783990449937722719266917042291620221141528089993431006292154155941244017866654250152441056264589203427555001777859684540104802482481599495049559048570099963044330958096078510400969870143518605032949862824614443839898047112314843761969008761658311152242236405061463812273904400909802792962327294030164219920377044968736451291046981487167196925973480092528620758499828292997399013079397245827116861321981648335017712088670854970504257651886928437006749916977367420422475338279049084998323457465239524541497232727344365068769422264096947245469556743530801873596781224890371029280102551101428236541610230662036032129778282717323919556621099033431474096285871837840278079929114326964205536445330561418479958991151821795888538202923485928647583091117259965377160670672898694769061494312021858842681480379613395481889588111334968147685527144905488204035139894165687791373480346624649580982805218300573327496248568665616115711526756083198582849233624143173174296127635335598361635261248990621749931546238341930617969975625484155170037007230342245474596415810907173400743865521797323086612533344785050820340909521478222463470489879173109976747523044867378080494539139812922139709748788515582845179072675610572701820564002166942274191612840152440558139865270222348566860262113696797627419202316100914108482711064115275170162011085986137993360688289354188006769656775539314949672596618383770636376245338286689791312436844428043716131463099824097111820581131065099664593718899951316751560426040234293529508454374674074399261961285890299452900374141249546309758997633735294686600813768139784496474493794696954368062790849748702948080623989148706922707990307265554941314119949938777970560594212388505275713987929436644937476790827565141575330571989026201725860241551229563837525678505941655342025646391243199700254527753027658882277902383743476799129746639681095218084600482650113696262381747486928924599636654616368386606556022950325049102783336214344717485179024502986103251651316014811840514910432130945366109939113603580657640048821162748651120856089359550610880878498512849574227747003475867896634920404611647080580014229216462850059838961957045075775737223625287256272800852314120937879710747912077786608408620855139313163622660116370774255895269232516286617430283732701486357573941128624056990695950728858761968490202107398541196790615583930329817781951112705734439814807853001879446374952147833115178853524378359737998745413884078415203069595019146110980917811939001468919370935811540254811361927317046383078040564224907110377246682383553343651818643502699371700140936534196822749675827113778295021201804138260939006278756773668541009408039268481112133573442640950647018915963983730012256164704554927584225280844919158244719718254392890401505723869191044190044055825801046721110436310648972373622126029459323774457847963179982843869612302320643968983381904638903983668260669695918987689058974844327894469405920479097178249363983601091863627986984090820706453897505160921900891217997191864567586024767760967591881743555308236289098021101504543784487086578092379772460145223430479295689739023677238303517618786575411433084737107671830253773032438851652785011114301387316064686517241963598051378142528424959692041397472229138615442015818684750058421223405091214284439032917028072314054195452526348246428279876478196652803432032942634086415225619959059025660494973148261842183112676565680415550142802014011095034484549638732336561865058952021235013396983844578636510275653782637313377725489390764281779809437250318913649906490962896620803426081819697431145399034423821876046119067642869430533805847870076751021372607126255249021940506553347187561996028934870665616309684945893187687974528674610218454907189005904372463968440116102246312211174008033181537488133424550756800406564236616425277406146296512877565229821299503751839469985070319103231974672229788991661154517389639055165841837252370312729396534296028730760229703090873281562508704777607477633284571500872095057001247498689073906221484786783008298505036166306786316294534605812476261879304021806087282976833379909559451428105117168582928714652183894730098623480119494237559464801937221175804605308656653477498546383359207321389436114341086417541735875917763462484305132721639411619592231691905838387208481940424275076702284962023265010395613824609914777541230059471450130785815842434056153122943208400724026065483001374868432295021432545166688824199338286131190594194180867173400272584864566665235839019879797938844397186113649165004159324610113701698068840443071893736157240255101110827774068891400323082278241654531791156488150078594608809733479627270088949277010556415941235382471475729166091086940615808862022953333351495808223736138119656997916220011905076033513323437085955280122352057536982596498342749278350760804160881354778319532096340674860166788455261023088957180385670328359626795761983903095297246402925388151451697069773083168848671288880297602232581853014549651485965845887367921536293900824543387223154740250289416223572673597413694268798980956221240785201310512230947233977176771937329580103073488629947581246321410884106397156494208837461298601860012674450521323045081080610483426409591580989445147619755585992074527699190693790915319546714109026728410264370452846167172802559582485766024232797306448378078081653712662943636401780735423404425263261380139191785184811780183480554228445101698334235898910705172959148978314921420790254092337920209148356806914104795641692909135218701699068924279943322251932873161893862758204928587728044324705531898884105489675489380314630027638219150842847941468901260627733627963097593261572604267392340757782843222937159728807962075854780622468540761252323647935727491078547073786600001190863580568205107255003513889244049456150249292813043034564852183484067873948194080096879423359033951727350713603430862006628380952992397550719140724496806354981229893981273921198702510441630142112310999497318340613735624638932169117860247941492462412602109339305298329461534130798967711816996556652066037816336139766516513822231179319102698717064308505442751683777284591098186346608239875435921184646720239819810521388969117329883268133136699094031854701370414555061819581992297439223654236286184124416017491243952049113426319223795197306201594561464267697624469370277737242728707690100181127356326024971608427320338936056852092732390688001066662224804880018190783895977044359445856170234118384681060386491921924597972305997238537692220546212634415024882291840785809219374410033683243294591395625213433884295734451024722438613095240889592639408091839245145233677991474075148850864754303625878201371004797057932399038350406980241969929678525451906783081178946317487136039960758085306560110576158525825094009203470848970055722227040539963793713804231724249094572342293064739939424125012227378326915074710867830818358095984144658263098682399602216178933263167289778824041599715502467272908267495472877265313177611397376844565019571817619800356518169081841706153722215451848061049811177084741547378785541489904537627431675257602194553167497235133658029761488857476792030449427298518340101642093462434477068273041156894893452017722533692618232799784259310099749155340466277936693888545819322920226988609609241212345336642977358508146331655305918072463781800760133216826432270143252253297319222149133893748739960447848997233459727512538035769569015860806572207486525443167226950544981373955962612954441271597489912510362961260528426077912159137476089196994815129654645719495309106267344409611926200991246618680304385705570236328288201435447231164867991410030624888955572950398371592293336556821069360577170747887800046409962952513443884265841989764282231837900150355543526997532394070297743484057791155676304233827757615923965624909732552927106028006675867621807432419165175709976314173828855154169912342571082423058157405306426298950303228432310826169619410630366081351087389569405563608293205553722608939560772453466904893218892424472234140369961167459644555253909553077545693051291241119470885775231249506206650318863987062951516795266028353946976615653684745745864308311892320618731804563074171754905676386277313444896093043209507414805747210651781582997423698411404009864483936100667888115811476121251378765105894096444404727965630009735927763506829122067406189941145638306673851440773689462978467687076282285676783748791639174782036148990855491005392274222668873400735220512979048988078284320659031501438650245465127442359581166738050034323417997954073274169908640103352866428252242530688891745938994332929889581057224648173946058726511009097933454028262840260053409816767728627118680077900384306164885507206700879861577935371694917426087725729980466220435818557013819808674171029980586562514276169100707829831938931828331392833503918194239963887337925093601573249777721447625148954150061090473056825232179405489111669728463955112326769763381303717275509013761623367483782247487806663674600636464608351070853295297264002073583899146712605526079286417623187781870399695682951933766641371954663124452264477301675585792645781445581195551470433628150902927083139298900923502434066357291052432630797160548682945782864927926344691425073355094103703779297037075478904489618498172944623982150976801591218804510391406992105730006146587416925777026768493915941293847749640416537936941562716170493981531428554993462547223478257978146883426968563347014303042256929685060349305329865695672446318150983813959337591850245728930576948384790208517183328593319821397199772482564890098162278693911668118760453061380706852618232967496355567685964080320596081593131656262901726339599832544054820601546635658796560825772415639082336509695952323038377208930076394696526543160730210708177738750109985565570997843872212830474239467672209447917794531867042720738169865832464691469876789857650084296307590490690411228764308088526731445636422687079861405074822839418964920110330738829942849956644530828852046803157211422258390377441249929830590223810048077267473714417887951472456606774573985357597525822254686214883366317832905129319725263083695367578733030133094975330511316013098802436021474970112630099760080741267265824704016480814090375723998087584175261912639569177461553292444535397205583008513689779400220049555795040627399409051122097502040541903596191580318437663776961246238423937676483956529971201498004887140782019556782471731293195692509077100283853885419321560732898252822440592562670663622468795002534360703247990325463343376683015072369031494618190648743038552991467852648829503191047693277698467372095573358558035801909225094537723412640844552918222963318090164702466821366150536333926813855310751527421214601568992483404983278183533002168921605551654213752469319591024848111025493595553197308548109742759681189822190322883620386042060749085506315551514463487808220022733209284354039371538043556010873900245778830227891761674279228892369250144203237928731096307686753656998401116566330516988354992285537371114916066963507856995293520578733768015902579521711878783149597422294050119840149523490055979026860789292463981568929813982394908752152413468161941367519262805593422766753510726150082156567737097559731687424673669309405544326737470252001704695150537197135886426510079627654776709121365112601037600047913204113686840477079383986054806105914737607408373219726944177270310507344627673053553658835977040312816029176898030422678969307636218853731965842295255114502892421131934631888400289527906108185347369940802222179965273616425184737119487063972117515429387195158539153137663121214123139223609920180689754194262864127067512838474353333446246359996066350275916143874970257508613864572007078756656446475567230443802647755181163229058939005691860601930915577227658828638006547048327525705395977302968830217706977137107634808261060298393391804751977616590790849145140172192558642371251008148905595361074741013483483434873388464862818469168179294189214629031333155140827573048529419243129506330465440286805472091553793237598095194262147906776324908754254413502264629425505078779242046388317971529377053184820429283525640902987339217149820686057100953718728773379724619148953387827342315368368810018919702588551458485058009228440858684991556721284953667423393498985883343630260832386037433687363283357360712958233974223503918012815962346357815381758515159851901856724165116703889352287991311806385380484992305161485398039225264559077981321964379668809474202032468750161057239267551677063855296600353712110510166486646599518116753740558938680782979946537440794114914640242100255040238747137577564866057439929035689581131622107621703986653477696137749880555724342143868952764499518334384169459012610081390822076754685063944996363613726065480639651744809801870805178141604734999847638388206390046655076887151301014309710571128278959727950271885993704794228451045416050486531293964848949460599478882102926533216616197392597651059670983356723034563884044812475849840591522145927429598907544811077955368172864079727948012400062676692325504877402736174450196318833152317384516231817583063151938289516488259948564267692939022128361320958206693002078539261554527102826153340602093508674244563065385914321208604893574362089587773111338293481827597048649346443901725312921884061576897994936091416028118294413826642270431384722005005944182554793967017115288917788869316195853042542012292029413547399401496168323590438715555815891606116022414155425319899075257432641958148633412996592317766636215655596513769579472971667599941631385324499778105696976923844336054040859322771951929327158144820011207810209399724919203892213906291440326755572523059106486034219094897267664690993392818104753057366787462598740609716652116854788366277025850010943611227258642970847212188903328779489831271023595767999123087765236705612552191363414546135010555825086865607615827933553547905262994105497371058193642349414457081732827878930387661997894414869762085736372382536654273710622310627065768751669575875431029644184935028847692970174362426143841768109695366189422752780905980960551555549727644598201065816252416318669106685653273530245974261141491127466392562997083213306625178075831623054117610152300240314487904396434413425707016280968314937564799209989560243486290753873814076195434810652949092146342853301241318837978358258484620448606082254362887946925058260410780610532637009187237468355067012251261164276676863641735677536401610604323511908205115358432255359321515806025323298892924647509671427079111383749794960317760803656782284761576638463138155817243884276302375976998746316972157649815489003389929862021941934455267988560359669107438647539208654846249009733792140389720106851154205720895058317650720700252691178144412177146210940718136326031316292697875786418400257232161429998339513718533569142248072128956189864986581108709483111392098367259162552922071632959549334724440485868864487620861261464496331730769791785356732987246640737721528610874585906840842303900968834487068387355341050982671449277605600135926594268477697320419018053561825354047083355962312166093881123561834107087416723334993193450701935844437629767273618513640719865718712095310201066840946975878210725064565496350265506980883048817811042182637177135963071476365747498696369162019288774485803311990613242359844730855946142765776723956183965700296765051012913884460217276180757708255852742155881761610676727731990480074204342459526560602062815137976549527496930624562118714242540422478048303084145471065866517345895397685332807531761810939935223873112681366715897468014495321341928230909148771498421853903657133939821105354329236511568191649016319729420360694713887682188998040057599827468784931547086430611307924368288297972235678060232337791481652539015296334092192231340625347775831478292717147752121660246175579408210274721541456983740106079427514740860693433199794704958948959244724049448871531458000140689203778386912821842399202037119108159690228042243619565026478491704278533855431237206510536425826286053561466864577687447554481411789190505423947246691415584519019085074735802734604083792564289035386429031637038359962501930313304182775844256327510673684711016391545366697241192518983831818321146560688444285918551116325201587383202359865071163862338603836893068146595124877668506016769751697266106476104793972320748232649938229576435699526344179774243236455660629980671990301056012252341885571205527149627122238343275956906940563178781729292157567999243890589968956349497280972442593598199066400787259316808392441527552647292758391443327651529180437930650373201462131910340190878091774666137030452980714903792799287732875576406287831284935134655485497252437703157558676620599489917441082847541460961854007064330976660861947492449494916657319584500755707907939411241427315408858274970661208500874088013646600068274700232951785588412269010146370840895104203120917722946708419906474808540849653568738761078880118985665566136207389512056278035927273943908531463211770122736172913027676375500856566520222678960539839182953113693450598493488981618531116642913172216821700854152483425786023960403981646275327600468878763101583591614909524164734060415321450812970323864020260904988951114322458379494472020011634171590730299285316185705271830463127678525555293383616582322517560146021841057443256680620524618614876177709377428886460371556234189557233482760478517570239179623800930480170661776945333202017743874685765319174478896968730722238470041131743837347446540266477871392950780185261661652827952879834122799547509316609234209807097149632190156096505231484638453877258750498466195450046744881874932376907104398633409582355644000715802322710128159769399598461087140743342934954228669181120916608748522681135364113264405914409821600871154267796899228842272727975268351987654959544043330521313777756249657594302537587858131270757274266924863747625158020488950997377605940080243496589861828326952760534715257190282390919088372818217903171986758839167914603053756290167084161878419318339352528370723669453655143118116417164875872939409198107694563684172478343513082835415386861224491508117044131779918974840346969002387039114876666280006387663333151898004014817137876991044599064208164941599146792557569373058329691633183165198353694625737109147918482965533398688131339852286629141863579077121323478558142712064339522405608618586039487946347658761243959694015873077359360560354776742298274647320489405777533862448469000954898534811251445783079017251141403535405526146993815641095674921556841778244849062416283759467399573681178849072643651168308444190441978534119045841871932572035160260805585818085238220409423969654119541006943811853033838053008019658351325919679340354540500013002278247480495542900719275540353940921312919551556444669582087254775503028485990683020502643648169647642120911206629308851488988296387968630220152972720096877821634361964304818342177309405814264653167702436866403222499515503980825998360334453242411691304896751436598149731315889287910184624450293549306879389671185472699880604966837071793522069833369449820107068793130901302814350306171576866400031011216882616281948458598322618508592796131714510015730134193121479269913185458300356913023072374851080028168667165306296487924007542346120406085156180074332846886269550532304946343001855087503656826225486720724032776144062784865744732581070893264315268752239212991245740502333291048340801038594646980702696074642579705168255759907989110259715603209591388281691750053845930111135618821312229007644761162857496668990713652433325637920600340739783370159376681469740787658120139597593158029602879597877994780930148927932814866328655677473205864016452974159891808856965388495205503921283609934890157663286771676888290226150034453073414886168635978400923418741944138864434100602990143214373932409768629165534674578326452683272852049453302962465061220787154160157313899631946110699290891632967681369252693508346091105395581463733851069774171127798340483826223086370882899180446126181624434542251568984902956762970009635424039106341651655035025064768519897739162264928948948587175775714633095668704335335498577719077739764195986091214828665072100720629051337319015088516690043338000275951813489247665972130427328764250751886665938372012260200465716021502164842999538555151588165538284787727088829782839714694540684332947546640312732646826235187786694794285911668893095252316439484949350400262174556892759381081144340222164075773331368407883071169729221701601943968200112028829787703803201263521665533473005929598799354120423162887903081246824951326573364706131415406976841045258833159491001108843876762649812697475709401178633711900407002899937294481549476196041733853477498423194107722155553327191749051678443942954832813825533845246334068430253283477639221596702683664552595155573825153196114232032928850618628976616336993868907758832151047249349264500399021209712945148413681313504477138724267785238813304221631538428094756361477073390327420864789394948206520881602751275460391902333831939937877890709154535622817007158354338264487775603978493272307794032507639434900989918865277841904703303096164581348641873498328429178449113064801321131191466090503060872073061593332726975367767656181347732618755399130997337515270498729395050050580582926925212810806147674143803267947338033903264642762562594447566596412465984931504113257759258388324375192127983213852416592065298856766017421622427381549515650396730737143672989449506728734829207340751616126898632337615466300628646746881070401084394151322044864747263655079121539034165143003391718776585703858728132280034723974846299810424498776366585143236530814176874979208920117934469073568763085815520454515495522453299279569238142160967142066508230299931164565560811774260924623221944518182229940822600892402415586541099123982395708845215825985697911636837539520159064237441193900823247446739870190028465530924501844974972176495591782833643860971980499649313560769209099533209134043803113966917257803189645982407865865438868092982593709709778496456603437478580068875886112365120090091471788224440804437236833092653275536590603872601696187377326888780376812400141821399791473021107699676834116633286880861595331189178620983089342008533547367078882714323456518053928258919545383031602812479743553479353467753146978235468896446126748668555720363261248212292422344488787342728660571802571267335051080214280669132307192182512966942839380814541784540826852133843098520967016111339247015169588463430176533106891937278988932352459084220444853903862112348689594781023452923107410092246480794687712415549027045062543148318049572595026114217662227555444930380375420441634583200652926511240513596429525258064249729376905521439759930578296396781087399754719721252021719220496717895364170449207954939281257296665959767358790637378149384229257881539086713656381861145684516312163276643776870290690494160501315442900655233774779707803520133778605289452646254112993828974587580844254842186702421117783158937901710342522006396707221791630976192475856365333202317741116420976444206205158063840594529141264645072915786290468927514468461652558404879558262552818699956486201415038960855233923814195044465177751432648581718469968749882950072003994023927858740702492638915706638064290168023129883668630468016609189795671679389940654046542976823348688193866279479191965807768276577270315755994162915223421774373719655202964313804144857426568221915687663325407493567044694595585768003492427672334286197707750727360329974219444099952752150305244202775017489487360510344280553891289507097093683178399759116679779718638178185458494881273241089809340949955906318722158131890574806158759006406568547356208591818722325103675366371191100611058979069459397626243521057271034844553862125403429855928627738503845824417627570960342707149456450902756992796783904868374673268367276905182013405305396436899289052615729700911529015551528766235144647877890360730461423480135501234477143611766121958111997282449200067529156894663896026159110916538719332724114837938334776109982529185783763796689857266023502422770637439004723138050950013907032365370333088738632815073958424650489846901764440594569810313602162251015601150937827377174519345051961982861067312205709379872648612157643097654916516378357853297050554499885666101607117886523244619953874589166951620404034415501561621694923951361827287568283320850156472858804106994387201118050020648896847163127295155419344726535458999094958707374288335761140915179036513235112931384787031734262398704976126708660489534410772163223733191873349632341458297846476231343371411318301557715335638952657353171585269651305572725242079386097028782280721647575642021399844900263232073412961380685173861553361690897998538107512305014626652091425025908699126042706643674484421048627552606407499686564567053872160407895957081178322580759234095575658337090489313399408715857800210318381526812094868986502206142725282552941003023529249640659013494249843680183667469191926918577790393530329290129005660154583451105711627988523873896844438236978481472664877685740705621303639591839853676821629521833413532830891577934176863257361204841964981609854906332203460976469725319970234531583820377871810442332985770210256009774700760055246150510637824047550072048818388767757039717122353810792273280358628396135300978186154633826899370590949519930159603949919434900591509534352251158262971694988322621953332988378466573478380450771544482226648740118882316969700064297781282355865456287886131289682990506888868742283272919860606775744302404700145855823327197009748554081080882090545676148148698130314426588650658699783367767996785512799870132620064093668006422075366182694668548786570443800258942228618638475993517238339945159252375767458338796330518817044093330313863570804345264432687543385163861344494574100513850728307372830837065105016866705402754634387673986933114238798298775387711730455558151690196384997493981310868002906414443128318157808085885163593175106041833306267914502332368277327507335042767696832016016070699997476203979621879489874849392485707574019571589080063652726981933443880282120515402973908708993988379399264037381195488032624723142889608475331356143334152148466585144192761998079852594498363283947521355185771256009933341210072103517088932073018171571054741732519205703109275974630481075776889032934185380458620610168237998539965827438685755537469673209852621825861269139750289150769382202638331919191869655117199423544662568322082023588190159558484303732753466454607930081104402918746044489732282145291114382661183274826384463479418250038349317897039962346859957889039625042244862666086790047396797173980266155892669911911233096237185138198961409816573597651627053494112590756186447995758541427176400528714911163371390690723733295472206704242687970737409901355281868333809560824027683200716816498945221900248039681617700701664117629552763707530444842040765222692002675437347912531022440924092607817472383910932540127764875695634132505149553819225212780587787018881257047880658600311852744459440638117480738493636382361588895240299759814199435530642812477141201452044327757668844747322223386093952418280091648977214063277739404621652065040586366998724271367139036567970621480435590838601779031284446280718117869066646764351598792826288760925560144638555279750285205119899429230839171356842079862459545759403416373837991508232437547856364775321973046851144868522532388086728459253055690053838164013501435142834941847254769084778039382218801948746512954049578082409253124601657353455199316246346384678199923851239975025594205343706622475861728359045609347341231419038703377073534800606391424832143702149854258375302291647991260320972123698900201891613608175372533946441175694101313652749442935812711426599967791646857530039324795623256404865090330206232896008421320773504003604703836101684613615243694172868534568531023192150559521345186712548510678656268652244114992878561413677299999460718806050501253696270618996877081745464250968883632577912592053912564450179226948961863977183546541955528867691808889088347085614209871785216316199807702759807617332921655808040769855638843336290998447270775012182327824478031352653441076756088530970295732120779435526900188183662259965195864198881658465961010516193034164670519804857466375002299688428986752449123244583274794017158900874360385585459478191521970262881607579057805452881455896374380568888193219097550904770885571653146730053316216269539065303184731848427416127371003594364034094500699692133822743977247741393074391684735219457964634256750101741124477549615044571084796937986246434186204332115727592533232128473417047369111647483947860916722021437530183978460742641964365697166615964196472648219753180874613970841136160139316295499285191775244995002967986826942760975635187393836007116454540936883259883439350194542967238735521640114047512642638295720352018005452715449326679402386942856579759876175085112574266808030761410329126805122146578475161302410739879474157038200251886122969251772306883162176575687143558800131650295030562168344092767856295890621301382065095753119668830188413469133569285456322073640277953782070076657888562393979728464190518821810401799253492698439929751060910643303093245642820628920976826448473853455364896195139212527503961506742320314151435030258638848954151763638591763602828536704675796889563861856322889087041404702800714894053576550218089117565987662752856467152097785040869201632711422369594254551583457567412946425495855625014231661432403486741875058646060788519350356700796435651291720357046104616285247871900098846888641753983631929887060872741756040055940749706376068030328984623532510620480778621171693572451694062833303924306776562719906324721311673722661480056536150860757570094858699023277422735757249710423871183961545686754911047415099897510209333883554206794685944210029003083405262322836744730564869366858019764756020497492954938994429443531863456792967318973334946189702094258924323421373477141782822711928073391201539426311993995094011773391224718658753944080025066855690041528513957440494112752782771153311636063080045201227851023689958954567225684627581520887377145983695360278827347378268649895667902542932943245292699564974194283903382231765737010471310928445078671714165739964928450989986687410035156241992304512110673107139265013068485373504526599466336265965578367868067850065860378820571746843925015520986950065573002254512074389329702806894311474899911667793820207332259447266163985110040398022850290335525008692611729773814327793903561062304609512666649966376087563873036513946122001272720457454220998412786132819480206649859415082794186535230455020348222588148520225835270374416929210621204205992515145369645551437896719674841424430382595336600952658384872863711930618994645300893238326635269271212276101785161860697565138062935306190993860293575563616041143102888342499618092421075445890027950399576398426742212151434603575501096623529626021819669774898005352681050364129830766404537719570395056960603307342877298316745113473482225881188516441699957326629954812388217678080525263014727678560971665226616882448599694734279879234166254747558126405336993638103173854732792605517317188273818743057495062330647496943946340189960136421511225615481783804627947452787802726329229641629232947446159709215912668208544190894256527369637705615406027870031864710244099184377708977575593769640235787534119945269489716947910129221867638011272866414776421666659813116795573636276733610405727299592469381982028568370931556418354961946641517274878469865756889742310851313886358451825048739625086589755791899962084945649213719270891384365794933327356819820046533639800335370931855447914850948824461013931553821786778674601628902575903216872020622378441483997963312746693104550150125264615803806980689080302483808003996262586970395139984588197234898775035846957982633171808349834378943938123479165948581398986343007154586614981616673312123129304932451415557620971898588419430007494497585334937920571971570467194402825075873285400744917541869839646746031555865408023706149304158058875363200463128416198587680764012932689004052867352184871098168522396033449279008616936201755083603709514288251854068807972259879489319759327124755932805194904234926977911636438009528648618311497183907998495244178579020717518801890573874094091696954114370835627704549411840659757272054378684020137161032652423672718061150170029142492656827879086749461860458947357689199108185354927732337218822178409255245969167773432376631102947503180311812609258221115982291558252256997024925970254800853084077512497185942619954663910656645303568591945983717931117787781726064470061096533281480745371111160966732808129748628889579727128424223599648439562032444230274367066336443927340682957065138466381459584294860544056136636928798670141447745330985357455996943333072795114556026840063983640271572057362356461099035901226102083005278088394899313398426153485815848818888811804475609275035282629246115497428859003736719372144683517202132326220745927132141973320501049094582209109629362838761445133521138877531559567357687556277232099274998012450531324821855366132210877939021670901359161086144083775979151859064895304222811844538540681922275751067003472455452852656977112535746332034681294119834970683143651692933635266798598876062315872645239461863844263441742564762871051192693159628135676124736360657294659011963155143915457456869857652612269616158443042408660108157538240589500443608737249254743831162017590175747789785918469956579378039225235472652408673334616835802208785826880664244381037812779028095152574765501566842671046280904213410004221447846656128877030879189202948582415247184882953580264325639646387366041970824581660430512372979856928085682936048149833552743787020176864946512265182564021339525418131953751388545987237922178722615194025244972043112895779283588991614650468889078092099810299685651297497580689190365420685724204709749855101983753597732590919022303088665843027020578999110104920756515982475034801287886571426973747782600627226747973217100170367504178856417824783227453540174465770824451163231065049996275358029993465037363940530960183722705734040680107152565437382870873358975264767479253636238201144762137590036516299156970908616498079407794522105426341614358502654666450360760735486428797181922372508311432976229490501610576856275716931891288888200194059534875340155206058326149568426832825539142526500242858412323249798192428937901448688705762779807276110063422199915658000278086307878160420867748032651380999828482868773882861992631465758214530676147323351651880983796226748269586744723993106162513767679452388902749073711779512642450947246207319336735353172344289677562013180630614864499954094906495614706914573740024988225929614802955318768829097916450834911328912884853189990345982569957212865027341071048858536325030397494925012088501902795260042643462384196874805357055949666726619785208539493004619035297561861675411539277139853090465450047885386787823201753707085189810097103548747693301703411851382354236902269025423242604298637532602457540593173441750248083983351482163574661571413418460511382175031720724868340247089160463452743304698683698746643723432796726853219748053907565714458389888217486077910464613945932957137345349059534577433903978536198995614191045185387862745887266779950368215539781967765211712472794953628534325289856389251117399597427043956461883389137724815430857348727988278995492496628798954662131640519151489426583405846976880735007055215927195946295241745460428291118292875378294449252364117617085796012958243763427010286746456468517222126904398007531560367732596888084602945953168732776434384487822763518574179505120315253890317029644711710488364346898315895656991307246158065588342811098454920163592036791602580585933313284200542302043668744417048882170645003800412051232730713448533329897102256500161822491843567048138483448321261944726076513952758838695033306025590559837551781893824977932673304293270540158421415297818079292253302398561644901934996303412732395816318734653875519661316826928297202652704574493206107388086753555490420098117518827068758471646255896366707095398258609588914998157055155253388909753767861838501662539796885642731382713952352640053373752098208633177487817547491516442223532075599856882580251950858920772738553731634917556125589849232103506483113663667546068104422958667752330842995740887476648910376399294808209847934449253868574178515264877396463162130334015538318821221446399298032158653451398481700169504873665125554545226970268784086147314913139294570423421433027646191195065159801928778024589083573791820126751236965232871714376524559015152032123805190535150300236576224826486373301966987028032612249460693887820810232392730634449688469071521762160213558809330952423733162870452368145973406483624728376798274411983975690132497075012827000325552745494631512990899283723587300911950871420403157298533668847173044994995694634781132672184485931361240180966389337363551852491261046919658843079944561855782253931232011601857476979926265153901093885794299515248160408549221150509890632295548092561586364406945319672459070547321229536413982460112766500387036508711159305300897117761810170352640101903258702696165482902939581940054020740424691179448106721828302512590634376474864152531563949768340424762009852030522774157907741745378759335517461907299593403126603201644697301930600981711303321204033719624673935366667768069244895689111095904955061893323982425458202837050682494176452682362949541856142979937983284710463078610452110130140049998776336796538435920349578559678224661919690107820898248529784995590937673842523236612311359517230568713119264509651792056521119680931702366525174213202378992564101825712652782241773365805084285164905942747830596959937146699862465690660489283461919558733578218244707678998376293293457930930376947548589814708326391244632386261576062873281561413796255300225235802707695925369937331459298512562788553537999562249035539262704096011253726617391303922464035804116963243698514395423868128099328904672924500621553212160138266327525936892969069931182497663594273866250574305439636245191271643450228684843748889324260410614828308441448804503133212470118680930112242663980370382507503328979659761404498419499993612346762309950152029364330879177835085077318352738305594323472617478365586618618378936235872996482446575842383011876031789688342926946604956206796587728611037471527750981109262975239866223698233777930619838516247649620231446691157992784104570357920205905115333007337389620508387088354409622860513873966239262910971128243615041572249279850468102050255926189002553451130014162687143324127655639444735554715509252615491504120216995393360178562788825269879013542134379660203560213913797876491480045144596887222455947072274513741091145623822240199531345996310668867126013616251209294965901485730067309532260800389914841135620019452772226247332489301029528434534280349733439413746305083148994128182799359066832119311054767835402090727359513808717110488811728488006836718318890058276372262928972795101505758923489791921681459267422998369472594032929118054223468005310313189635017502118099364348361539318806829652864188687384536797922021061009716971122136429524128044634837219132425874635018820918761276905717097451921329444448817882321003657510020836591900063422556764770296138314761730628443251318096223295312371888161925605816711338193935627322164172133588678219302666449927837674421080179593791225579476720172352615715859968758798256053585250742870190920172314760880836032055385551439045532201624064274228434230313381188582705069124122349978002504991725352374314525849456908699147692310981516640182213906697954909190008684543811523198119710917870839591093790569221969531490646135893792514184263836647286207656444255993228855135038126339931910760266299341009180853024438050793885241966781654674438696521737269415440738552995679583429750936600815467365654315216651260797152487343407246682873089126745693025540682255795938935541907827296392969846643877008847421007248251762859156486137588680211478560101600433516653492534143661175470626566438382104334110071532687316727113134908113455073713482856844419629906578153841393138797697293573608469210990402391822699066023991623448039400142122886930737843288856369521063148672858916189543839238881010990709503623625745435204537163658300296383365371274284712185421183115239573369099972704939943625614626472019864320178494169434009888612098694603916191134055142897785986452936036528420419165918508616020378765470421291819035555385745822484854284941712368639779358146085413186657393459037155096821332961581280018156500450310532891177585679674339975228186388189447608386196740654735819288673981211859819746469623118400894343402283305996471401113097340711093026193266260532634310347750966864030820658764786922282203148619991940769964301462222409877482667893779427344586304799447759212510143338809567541367951214528060802431064880644080360933637780756914825046760237686029104051846684237292320148487286585109621021782728725173936867740360537158264671095200870232784560638463692428111616793714662416921072560529560754762207395755265674758509575636041625480119028893273542521038715562640025564483945418897677790724417255963544162654429804620044094294040208167327221569208182200658636440931119172162719359593340720053290350160048427020106025426245760744819447081398041633797520317197179348753380566992595414457148640541190210523094838814412117840149728484290032318338066371920915157824190940802493728090888240793633823797104930206869133580483814817634831683138541114232435747177495132164198625403159232411432109007998923953421600805041832065819914874615708492371119431089981413326437498763296053855436389938727446113931712394903915541945962888890228610228343704217412430260249524118184791224193314882598944539433001242817060504319787299041480432265017459776095628277269752746689954921435551706075044813751390569928572662681120363133226192579222702905759704822618655949752988121860418573744622938519975060621895367395053758629355046735151170618171227217085726258698907321851714750784864743446642650799032405878825484627751854626216947317706093845294974954051028524801031501880731231346578354101923872523596394161790421677780386417867036489636061550064748410598506648459966384379223723125676602267628046468120430626890950888752514983870126928078056695091421611714004559265144993582789010655534390760366364857811950061901370342067800224680712276474090530381300088479123520249919180515798573665342348853068892702872546213555584695107008793647362463551131613204589634016445655867997239149859949246264660867841929428095730313200835594699191857520389620602659124659203097284517992281570576138096321202462793933664435833240271121128799007067102550334858261714221433669785716787191389566156205839842275718621468301069042844355998136912659317498601245906089247421416678686747418022956029010138296111326117959972335127848736015599468461128811872787916663802267143641513608569191023399084554757122571905100051695568461900007632013280117352318646676094171156959230760982196239981197067585438079273835087800034237086075472746827344203707932971370916636848415397000993736873198888451890953079756525309949051533793476814357131540507981955340629367978435703506662565618017082395260498917883915602450616228755753685622399147295092226096805044590076128269724430517882723285110972272124905215589933383947654551413294394730694171587275849995778847470845124498730069028257530611786172908894891137730587460929709843075258366307799934839015435371929325759728314445790906361864351218612364377631379308805288650371586103603689445629489184910363775029801564574710355376329625809558314358644670577478587993063262727976850706906759652072914619964811469831186645249025401026400635614012040038704817079841211591840214629410374284141443845168869098364436144023617984060052052234732685297371051833774894469525185526477252838597605203857327729611983492910647905461990644531065488159752943974466813250987615350537940078587118458803029707123359185354892001038919328657397341079596419999699358026246573929028077455662835131070233156081169540753876481904366797211463994173502844419321812462266266114087288832184358441223096876414400901468830275886033281453578011811491283767941927208575484436090876761781873660133230246090217215561944406790721867984091800622691847573389620944395659325454374426235025020998679987232631987782640340379525649403815792798893257843256129531526365076317759748344653761668768334025119533166094289692391993968894792820780414899408355739215507747701895692181927885877438111790847441380734923820736409703940874065555834766248067178356866941914728199393361843303489754270950318017363365511382367092622173454917009014939265285348165952135025883212421306051847935015707880462801782981733039095737682947615245945372819620032739544530772370201631072030807354545294815322831135319554419110429122411491945589097685641643804109473465350006968016394596219951970352662939226666532990548684879885509148060912400074893315185972323931223114523780414655527845391125449338972311943995525612508004736911772764417103816833234513092832423291323598820398764774349335435034403083868045611989513395626248042705324833388722170852435231633721773436968298596095181900528700477770183550889446996824790801338941667925605230572779842434847247985804912732231730263760263271208254293588548136705385428223515206104079814370634738304581289197665480185551479089429074823777658344549300465480358617682458796106424366674266697750768466933053898723048458395067539628262954614271177877361387400181382238731414807119942639597586103649748939137766594860182406252729729643001520790294542630011157332707686547634400941058172802100537918370682655830002659696919168524095725574469994789227198050223474454659130676248441712889699588138453860888948181346504778189602287002302824463769930064760214348436435910296491268101613599309038652685628579315323917795170458982696791895349387220966811448156640850904982729390836145516901771934530295179147704809626569386939920489031840675707053327336801010034488423307610382687899225920330601291724377970304694151336405317158344125111893503886003008423527365493792795347556066440629471396574017709801260079808271120392419092837357925977422893136969191070194765787439471100686322207607701069350648623536552797904190548801620801741028603465742238744859968843245722108419286957772776985010920230730463078535405903334640953507688824184026900170947199373354922637830036571561154961452043255429185497932939868955627791117342536456905078456078564000948292630815541789610542216787573464057442487245041615181768972859229987504922417322002875767067067901495288323868526958152138448201561223350954113183582331798589172105273974716623557461355097827185183651334451563932016377633154780768196396845847064574738829025496082786016868121030363930446147108907770219379900601415934916046409821994526857377521867801268795696976225720929611059379100705829419011457339851301939590617345756298482277535335560983387095212862374067733167670492391328153683907131054040890653881376190000896189546332738487012675315082819700154225132749278025925297866486091758741931716463274192835321311927092353982159838269654640287017859616216833082092636140275837503333244226981739231495779051438214212427502832866429265536493640199590159490720180462605070146552347382460073532905890979806591689858632534996188361470391728215891637692778538766144908747971856574355714344147447924933249626695121480214483253208166639943257598057373910080938102840746742164409760172186485977472302866555283146124610620819645185703325592997533705854219900231090895468671595128359307001492139053617208311928591646239162682338167670735076721545543016648837651088805538131577776095967808263020737009772698647961513998660876589524888986389577465323149313789555506507355127493711790316064488276951697410663286436309988474119953673287555336843721620872299339737864496098630574155511357015309717545133728363587369129847782602366600864128088780091583366081700825098021121647886637742448144383653899856168749555156738036976955640287585944535433775533052827948318686333038105523307291662391194289116938295059785532275282226326859138542568056182561732206736755728220881623998144812288978650892430034511755806427524699962486026960912955577004981387005937072580615492696186523141159100252458436032588227827493942342947462374369981211649330559261334041496798380302759092253609424544726882951340911350822772688697925018827195629225941251458286514491487166478919828676761345534524455293025570285232303487145613145068842741036892178185751431046106666105878415565071980952975151789763764857490165427480811584044305845400026182582862451969025513597493673942708803705468630652542952211441962017892593149976368218539599722946832951755796008273999319181426505726255355172762412587356423423394396025508322035989707391583065124736712097274080120441737509484704833513186770875539793429628415169890751819669825200854175205693818389602855189623017674349553336671257107250405763125864912730804048999173046075903951315144676213797932924329986644520773448545477034561168245128789683272988408932780595877465104902665635723022902778305265769887999947428700634535145437538777768352370936624404303313361573969830324083468009553485447115411511076015940151313691248900511633270961030100532124679506195969001990971977086874132139902695275234175869861636730160602920567978420861773061445113440873886463185717111123346328818855709301838044491414994094328231141312757691016629719453064497577566541527352075118342260141096797123838948976880909908919415300402161181349641887143135274252504221302976838105515510468995096799164469315692709779865585636685641745895061001161378756511797503961919368076561285082483329528849119645502102986590798447283415881488227725203871664423422073496602856890932463816968355463796365350324557330855357439949584454989891575120175146592162677435103910499503781992050015079739187577643131335037071638978624807207092811393589165697262303857467127496173286362401911724499609403528644709521980286197202056518584024858028881707349462662451815735174930640363532087377482704995441581426260674532511353008966423320116953834043839632985855938169672060061522323757898832433731696888224419073903216300341294635323308408149920039474809633503676783778546641955851431507341784413530166208561545588946563216722616677567861536750108621679894046004655937401407059859376514335305213547518752017159374576361354549870637213048705506670333870639936223693521366881693842177542997832813618256921564435141287901191271158843998952725604101116423033334428579488324978436285307782639012518604743110533426367702320290113157113928620433930198874238200236012868349994724785852025707947722775511585483092022726610127533190382920455254941448600395479751466605301526702225433592934424639232564020125003296172182138620344388355679085580371864981352114223922806661427942091633635542468820858553086926241455442752887481622552656710279840475837665582236090308317463014557389010211793265382355389200443600254201652621405203614891687298338557522406323170320841552827679646904930089888205402353028828114097238539429718438543510311236485514464615655567911602467299768744162083423486671035367444168962674887091468536545840281568691920898383299278648921152061033272645278603859167673234301319248007395945002611498327127401900474596107706565610098965646078694274845979418210943516373517706659892386846151749152937687745645214077623518487534391179274801064296791873319419936722550614433268216255864757748900895754568071741646592221578116725872984243464624191780191258102304088348929026024396664698356159034928309353105008317257428200893895713411257272870488118989536590997502651988354124268984485000762216469069685381564051944073236928128363391558419102506664872427844878405341883710514240981437225010689734303666845194111990888768960569888561051192062949024436395994559000357868699677259854336155219385224181838481150934017482666127587447391623227498281250904738066944669901815264310120197845922261241058601306128804294896957161402407926044204965010975396908864658680027005288200893923471111500628565232446751119493983872326546783899222199875569062058216557641992511715471965199228045922505805667035859217021900225630895275013436186570747934723123455600913750420572956000116641203680405593349291398209796387393411583601400794915828778709986658825357396283368529620019165323472257180520277268524567817048735899896640013212538367373497264601232069676504191559900552417154913721197021444852122806803216136141296403300570606232680791447104214538044534200919988680331775550534151802000269801138004605252754917945993587316162007899590074144700295218777275831667641530024892398720569267359380808030426059852939615257204907248860940862824127498441103960648596569875865097898455843358406226121087194430040986765528642033513702069866515594479172411313882450294345716364337450577881807167999950043174881277934184084182618802449804170041420665293229948738489763133016609988694513045718345521746556796906539059821543712264515261748055237463602778320189344870603301571138271014697912078340757586927715648160623340741677690069071221323011506146598599606515262536434185463787892485811969211847002937187103918548689701195208280898656363563521363969290297963184253847620068857468938889103017873660787841536191300796981492736452616230877944105029114529870677028084961449715979592276420837314273908440439526046694506223646642596505924044890261561492389008956404346803087060334638236535201795419284723610695894530662533620499004774168558886887093114746671773497078787847138492874407951520437591953522591648890610353304688999583599134410829248125408914482327298319571318592246420268308158128553961469230001847314774736479921464323891555591497788646301719629110488327513411723989635501656290990149680648983580802610379124464656247324827394061372344931604255474113177934540138388862704951978856709967405558413240049369544235085890390890681908134116721724422708222452960228427544174117723897089285447109257514620703898909934743586220325713810946807776316520388993546811821129439374814656670692257510573582713679994885244225101960573673628026499176183071113187172403404033567821023343636522055522643744288692665878233556018779694242097223347361965880589279863693781424916811491206778193815588060054046038846562797482003272203150295282857581896136206529677842909616305571690294444401872003572043107217498781794749108696222548498000792013680484006952296453647415428295323104183172264461383087367679413016379200570287420649014523609132443582879315912692678568072138912677391964356645321923786827906156490708408041330150744585923884844437913071998396907965300924063954821268056931279569429669439112335740414931768159609234555356448519717048214970440176288342487002699861223293277364005040936067377578772377582208198758895222176531305395703034961625811765319719858548964096834285188311067747014912523166494933431053375564601698757926093048684715934691404153662891642670455089580466965149454274237119271982337018235108958815817375933185225888477365083615112081921702992028354377859608659202551256457615417900472439330671680816523165717083762962730126091182131376411400388680365353327400923645145858500784966680940579311048959072403484014550767483950928313724991051228757423614909826797857634253141472069917371165431427459239431417161438611050945600533146377056506196585500709340215964252738351148517435643998574992768612634391097147575157402687089926979822332705595945296243957291729151409432140855156678310679303623846250601902190278754680021095472140343444782777954400292335366135785997029463673193993622953589751617910888467721711750803185032806285047883218494357340256555130117002856129402773772352793038376833960411601255105020760941120424732585335011554919295693140807109068304931299807268747706175667260220298127624181179377565009584868355543177865088486454658762973503787080180388381800773057339989822637524456782616366071115375089276548323573838190336543401927092869330127532403081333139017305188997541392289134162239956787042982970415049476699146971081063430322012080803374969227636912688998083487731312337844415810164087887125565491344526275567651023454894960362904439844222873606473328012769829692163977546953621952814261674610904122826490399562303988362916312078368946354175931955265375015918660533243862981700103101714926471727336086412951816206021276384719192612459434928026671893316378817333104899569303924669279013308701949639515073830713259337785014369547383698543664090370759559322525889610566479275564182335322031133566717774169206730259419478762463173829667902492844821598756522399227159523220318347633229009573737961101648426208902733975778385684734617264603935737951709425916491454625539362037120478336340046368549737939673478470649926427159326284727178060313277834601436788122365335849187313087576791050804245170150588041888440074443278382472378363600337523354327376948869312673407818575926684988244381304735525543535107991164338147623715869951162895081369014482950131102978575623066588155629489376653203482091388017678428758575629141501738902138188019569599797173863336683868040088147581760488550447867187833222953701870709429965904239125066582067134227689123545873131947143584583167061546584035524856899502957524092062373337265135045116768977679082813016344483625245697394001825550946445055441626253473984156511476098286341422250443387488553317464983403845626426963601650830752318307203186151539266172266155898007901234628506189089640604875475997522563204353407331294960890577642198344086408117990935496981574307938046222822258388409886829429894889296616897110383992038185141592072947364690418077139527121580436438530481623610810471348996448552071114177665086999783252557426525365959685310927109810430300021487617200099695491310210928086733095383684273035820987241866570649086463109793643188478271874085517187023181807378095819559885527603984508972319286499677188329911457851974394530555556121824171542217791685029957704505571377744935910118735886825246143980151773009068131161224155523802017961661818798644597726650421334396970190472297394491844950274787115570787804686194774191609221674218613534482827367889860173002231754262714870808556987116650867751260904731480939184425661404135242585755703631887626663330681402423198854047409228267076666811472560720576409855975162747373988250539358682417344065367115897374325504684450040271283384812536403091488145828910478926835766104335537850368325080372820063969256257381204255326837556752992956232517978848708636829055322512289645599649563405062353416966655592428169278372080383240019788083759435443744904422590343070431056170357533251339947169294904548466850028349887241087997005973273926328749874709323741263255078385817823491751170011613091563705616073685582102768744728011880343686770086912971096669707056222380437296756958203249341007295849819054570469526627053047085741317347728312487775906486549204862030979592562713889959061289313641895322743837250513871800276976868644485706816408065862122968952717265690073917422759786709411008712125700178149016052398742760905413068159890866536914826528720329523767817517838879085184153297043337112054965066763086184563523776587666044094483217504446103715948856077983451467652705068122417956312747081264162864035944696585112114673577365611851813495312941270658023339013564681302663141226379836239387470566410606209016317434939885375075760173464611665945901728080133366668467540977030904204945830749880373881499774564230902336373918567618141518038483508323966425074896052724342812790991261378583044453676783136544803136788706373701743323121253907124098849360927404938411662806644583543582369718048672342823359234154092525684768400615814757640740819970163460286530078100256981726676197664628143057755587378533654195880383243546049076931127546963101810413656674259296410441004211576310882135598642732191512940151395941633331865274299742976136892826974104852001431566092684886648201741023873965179796918216948980902273040828058196209707412924782701981450668851640537044002900715475704513533277476064258048048625061897336254500178063036215785485848442187727203404089210402545475609462969402488055225349516738363083450031995941700560301029976208365309363150720407958706960954008660488969544007551226434201458850864869661041063928005305055770533806082667724170148825408942283353470195397796073629325205241870876350441961569457437152191944710317967636087826314861944006874644564366521171716098611606715128862750303035030952364613199940643587956766211430029716866320422583960696870450609531996821135828157068281493509337013453578684683139953878507713705549503466658841293891060059686386103104575465063608822209008567954067228840036166413570562833032597020771385162047681441992048136616994587235709906996482101810253799875428099780362614476856565757977434393363615244862366615769376491613805276802948088595551873719907413332058257969674540407847462239760957974599838072918299750892970468856435232085150934667491328293185656845069236698296500060832903866238265756921683861415693261758761834700965030860597925527006068274450266638557649801989048256896435782564886996932003535336830958857975370526055757821438862275424330157571115062595637545651232501349941114379381202460087615080527866227520850399836232134974774973911362610574976585634169724279049375089241602276588859484491611528181847882896653422728855226297216318272608026573163369882935926722833045845206537077204113775873560571319029545002090262170663749680876037710034173250058304462360896453178860675865035167055993383295911628204954670815732811846837560800062619694007796991802019729273193255680182247865731756077954617205607623616337286309838874140475698147985488306121278798375497303067206221826226238798610240844275214922709868507055774141165271940832146419568146974890297142080740983196329634849809012834277390731719601366812043801728085622293837687782269356862647673181584462265693429844415291478013983679764437558149628316400098596170814348071973252404076955089057891899298234994766005788855597046510124529323052972065562036556512769156727709836518742762939343469953819767565637033278273216120312626299697126472521629408533256212037623157344922788665397617986275016978058069411847086795721704230447224011244381771700817773805805676432109695213207588039870069889208381588933697675095710809992549504876548574650826563887331498922298501846294525076456324993499355999403178437129305616766597492995824467541307760859043237127874408690936794659475919581941078545857827445814800789243395706802427818956378802967764360197991477084509364017124282001487469692785851419955573336566358067952785255079929516945024522280191666302269000816830193940819755337027342574441329833806059161395616584977953208586311756846506611214735604493380910314306196862611570149356345307726731170292823720429173029006973844469198274082496482276315779578739072558834346826686584848950239342228347434192604819330220593595954139499931310797279341691947900313869950914199393899304767161239365707576817416242711030877120758636510190183053281687856614766082673013464419026845497345623366627283530055294534688881895078541668067291255253509276071729527871225722551199808723360984348378436176772072017423011497902158093947462178715085192943428725346440131474356264650089446383767453007035587292060993754510184389726232224082765679574726393754651008921350809553295234555497649160254648007929739414681512966345825001606038951619233617774527254634213085853740935872134812545831306299235147657462988117457497758536071150581082314160851465224039952265554141511702907920629481631145467250976144463289421809877384840524277547883413685161763362904489139627980006508166043076268748017349594704270835331680989883449524359217598025032231339023984096882232876841806580582054869845935790460823613874972220843496024205113401535807800135536483370938168601674684689364596775061061448416951386790513192118849711612126717233059360306571377545119810210218754749500442707664759510977549880544797483356318860908691037518359738755340660856316897901856128627894220052394603659718959346909181349883061003341680174322506495853104052983058303467047307459834495058141205556042861802571578621451928182071566129272908966146927513180299003892894811405035557843769084993361532671804954234017264679282722534399548452751353392429108747866484122715586942319595564738312655511281385027543029484876840612757422538004811821769187323098125428907823507817852671112000251646292671794736370412760333303738125322926689836248721155387706941027242379701208890696901132636418921847688828817398035935116593932317482073244282418957084728155758808761983439742123203749460528554199432530008016940468043725241646076737521515998729854884582297567822284665420715228719178768827273880700332072436917811336181504297165924576979458032691441018013982162132473665921322368528047871876578532387173485448178171785353010955774246241259088546687923932942176837579956533576114596964297137893749313915736013320335378393696813358248047935339314875931033705615451345881502531439739153393549375006199834417150860854569119516581058603937777694577993678193106552084297187723420238033829612907773032356447792771399633835203996746978834265434987100092811907914308887943287499504469586224357717060467461049474426667535051338577143997492787775979326505261754207250252092635647393961219659211352296611421330534262486271381658780327778909911621650631619475242613387064246415093224219027514338169013916454444250603011770801854354662799562012746449767433851542264995665781154150078708312642680988402953172526306699469484266047464306314243319889549442956701367477077491552006277285283904359891345812979819669405284126129699613069198006452568533842270801194902499862388348294843599677117159396417328617721672319612504342454149251530098490902237541266648456543940953709398696975806111702379167760296450900021209291552256360919691907414603079523144596354578958132684033250787643226224279769747565529287994580984999473588601567550070309340490315367099354335477570426142415544000573204675601403336569067647498645918072744719935593270712903544650153179785233902112204911134571837973237204188381094125093707095558214098115422857458720635483007310682736199222280748596841987388405103043374936705323358277890515171285007358517628081397307779048792268172054918887073217963053610246957531560625881934850657255694608747565321465191631604201714468741899588583222816602711243758517762259665299615796113511746821173672780361016395870794416795350118724224203512555947486160567997522508477348125719033489645930163551886132712293828728521969188947473231573876958135582025158218153014771724823435301433838956162209899043363705959643721670023721631839746280743979223098931240288267036461243197338790284014166718965484087848566891773860257611735855913689767015734890236383637824498563615259386919053366874134934491778659395574035467465919932619472983265216646135336941571690999143537960486763606882354982162956450807747936073146395493979412361090670090397399260074704698382674682295425113193002440352476266657198447397481023987038982322834960603994043015314989950656989458650805049813602294670364150676686787476589327747405772312454074427181799183925779454922362137252722046948683116142016278196829674666163078687086442717715168389075781717553210390130341918493711598965304001905112202922875251494222858047499217892804488090850233909332792425245234059297582646638368208276421760780852033945431601446392468669453300637185148412532053960434203839113727444193473026293674978554268656837805165447657631289538301015795613216986869103860741344845725579993548889062287749949161471109963647158103720908442595917013270360577053521125085958394295363997687128345785770593153164289381424070287957552905407777719781824867017757332852665090521020919649317993460849497855042718009543256505828871993788601015253614327636386091014940915974455328331207967246651311149476194925966094312851965876464750860843265431339596719328345096655075114981049428636164385991776183457122551249151202712050421979211286568967249863977753500109928677091025624624132637015403499476980670361238489466757623247602230757597678148518136258461770901877863447352458973521755003590863221393155698634516913960967767063234263977353516854470068697724890813704255578760570549869109761623004475645504887457717646659573585336376872382932653363634579938257229828224810895482164567334055834443308094798613391737062988221632781654645604428157473005782251835221308644292620659611782797839713440195648377890618916647404846613809933897414307251966878869499179672240989940878315582432602608519311701052618900109865857855886106238905288003479355994939073285375689216651227754491510484573753816392165448801637550414732209404796530189839180090228474758681631183738790198951557167022330395145370397232947214938907373552329628186413570254970607787996481491392798889297619061998863903665151675439584985597318287177471426396864419775264392287621320244191840243252405579787031727138806562646294189692456847325051066444703261912021258863657055394031561456981715307390882852800341630445090609127529313822993900484505602501948861096317501818027156213142397795005619409638543524701336538422092286743133237550000877619767966754884351665741627784416512734244411185318672036113009510090722174694023717950050288484489701172068684657478218315621942551795004916790457626517414877102183943761798793010080882015596785000858354507840260606255605711076906444353767287124591990979394132006160456339639339736519437069171945658058036286644438461867968687994249928544374464581881798357541634368143673319289012676717915983539241426567752745841462558845382415051089824281186580544273541457460735348194280718350583139107054677525490252872003195733306507775729843531783208471833272335835400021106692340545120992899875329378099294798909022909417868235360074166607095939980110490122689757859835931101846990771831647358247089264194058519596378487874000890954142731905334833243462083857578769616676856540169839129115180895138335232636323795472147114330302444055647475604893911156294991288268250799896709579850178532770387467594357824868378885583058623641420264464227029758903242505063125523474418816228474373838659095558391024671767668996050661897021318430091752864654151024331581322112179488735042422231028220749748556765105283443071642245815495885911361197991371827060793080149861737464670696618749052678108282394678882022129497243353040582027551463986719636957015595197605826000596684361212950861412117302402877290649860141678585723880906481389765246689184935223460717574961253975157901129332876722758105296521217472509380881056064747142548273625471849061286194196622282472593724147751363519593676573292138743769533088908772067757701892162371531770965099158432282042792216343496614189177736251798736472786267713108802707645845576800802570614828038821861142369289354273665073218450438464374658946568112343879490494037065809965434403183846326890390676707438310805734521753506529505403322320519858496662440373180109382124368566262768964856078357265777491939776036770277740509812272702614919856566853223176410131780315343066925847892478357074388282824171527432057874780081286303950505464046190775240430269764637508586254389158229021099229443312623898989294336702691367428943278663365163518684874916885682000781613567380659592889145226898716382246486378728306438761060821319683772624256493036184474375832935110997386487616834705911318413285050081831423567425942322053006538260861796877074120689721135467194425193108789158109547184275177719925608556323214148342661688002902251457397818061303246985477180191981189618203681300788562241620825782823496220640201607488004103296972495269058969546883427072922068366108188594816699901481136415359134637528714725226459120013585729772781016426285001252171877879407263447846334697069221706091601288324374594736038641456397433344577473434405149170393512504170096126736199597501512116288914601663547610175604474511282215872162404758589543878471013695123584609896857161574081583542207701223297990653729565900767196672414224128438043419023943580190459178240324396929795747073965876469285747853240795285783196675855911883215392393557836104187605739495378678598067914614257024936139985567138545203075758669380681810790994231742774439154612811008551187680787659005175681868196174439945187941643655137348540072628865957190038377748971524908074666001494525944376805459045070346693176881736474191634192288268894319306717611232976951692686953013668110055579138588962741401455505829512548151317065935569660869207936309866494799348233853889085448489308861533633643150677449133786277494095119217903389244439584836245335791262371008403737957756920674611445008829630892587403480355082283497747721950744050526317832844475428651553907033822255597918359300038800573676651787165355250423883305251579503463233691458858014246722531726391195272944773531369287837076401112336959020803703168749828151762361181780870625883690959796944883638139547981020337876684692923720171984147849307149625400530264714119139696592039604758998676843232123215189894131661651649263940119577465108773616291141318910035488569544135243213584947904339675003177959448816765897864261611230620165739903661053967587308306421168639303594359387366190490106503169753183725928166833711617730959959746637116086885912227952358763406759598218264431101113617947509575914085081457104418564717532814380763312213742572425812381432173098493681135314730061535054617273471323515493439421592943604535237011878657567134175994161957338494259420444167599946490552039656767699317938162872783158284542847060628288996699129257812709999642530774181202216535410947349465722694191944431490102304491521149713897485226106333575580465692288905659109339471852983834373406810881390894306230438658387630803410587587301106107951079503763600196050468258155804705904416534871429812763595605902070105488196503846295258311173096695237529016691537567859549372883229515606689948286318710637848957698046951710777459140638186566433028306811101467463670321780484314506251285330101257660553597243277548155750657024241508166178251377890255350013234263051748637878704804234378921094718062205416702153925559548252792528982841987874781410418911918581449010968603965386686672451926113417307973936945744515263774002092522975879795293952791507101220864584926635555842354312518846093685970795904330901005132786423900476906432896767892015373310625583590842455931704274739541371063576056799995769567002507207341627376281866784426720715698315654612341218656551912159635760278464700161258875493773987005788537733809074664629986085240806430841104612583101906441506595660767823357858804722352248278120975707922792838690526985212654225994211932126010168981064923890087892869622244014660374723261705358044743306331368517479693133864418657570097395053179945829994484352803211728214229018786969643548237770255047617725150876154207947632949507211916037450028211677303572289900336926111825111913680008213033602477368878447392764106628036379137920652279480720389070345604209440875503202239343629008986756255987195035235494216505295694235202891008015557064987002411438735466288062037206925307996460553485581478817255892923146485530757683554607297286319098515428453216950767192066850918692112760534087142586890357955718104266366036205198217448010421208137769953429772470660033165755921386468995604122426485037442138134030537913742348910883384092473796380127636402439837060865877708278638629535555964261796982140740432321475807712741331711911273333251196622657936803200478772101474297468956974158130240588743253592598822687711865016830549706519983206366128189248388003054730585877218122679585182750775497857740347288559556652259787402753932425135811961757594569192422625751251168148072223130385912081098651126088422130618748678761713085807952522127743477051960230178579602795099074106168301812768735007944609001952338356195356698105922022568160056008199827313458385988722705727127103155274682892328641561579696475386134611489503763810547274319543101110695391500067471435314671492872897700666404057291590012938830711601279525990324797021992804922965977067573117706692938680172235031221094955293307546702113841473753609235722945398944052792628218204263462862811527724036944083811991734562866344777102886719246002491583062326360852846124293236750789580498023986506454167479739946388154465888704675963263914874260389647751641934429578920708416917976104280241537659095440776070064550927200665676300715308018295276155383659888771779665940203898204916164539781035369570741111537841494555201526531976132613546803322819686547288631072949747386886696197104793783297143490389878901456767480981410665038396612249843065732919166521137026254909633345430504573818858779900405987786583257735143797768520099493031549831882461963948660345158504468014001425972029942230354986486256405861716077802935286076567457308223184725059045812501043823013564710566564921567302985894747046435757971054543830054570035837643843586316479097434657595648492837103854807108818633302449743799621812213831963690812111851448443882353581506948687963797215641140320229868997776110867326351507206149433383998339091720582193766257048003140292231626687063437103150000641547932364689386515861707418124204765396311260115474204002171393440409248765559981098255387207826897902386277695126825107188097566817252648156615966109993319226282305993225246837923991577339180420627759378838011228178209591338538325542057319914320780272756294714221484432908829548091211664976194733830998096746508245020417169402978272535592179014720885029699920267580017993416031228136803219108945686966811234718217341571766166294752690654682003071341503543566771867533392259141699837795211256390823197874186932530774788819397587456613605525998788510956124951217562676446132523744271299756933299500088145547082730334129890771471518246098264383739006180235607184889036786584528086696401043230000072732243575315854246703827918098540610306383305046255276965794452307970693958036740853813617052194145297987490698044450523998201322708811252993375187104566663837462638640395433592096615345062761549546122239403394653105092270147986040149712958657992559429873768164153029980894942461661763872165240832593808761937178622459367865314016884346320959392085643296831384126532860737882481973892289321751822722818094268277068544511592191581011833597611005243305863996268390832510778743809561128065331699235472074523092482560970983019091342303326358947431353976223852364673422590573624053028413792100080760985618510142769202844374385949235556173882777842223222561376835884322793483386216104986645541983710634317213788810131470710713903117572620698211681269589694199643285761782828967402935183143543177853542010838721577477199640737588641794288696428707966473586956704506093687636189040614983820452575366956170263337360988218217021814883208084436889832102839621429854057516223349708028065474033247814432695565956162147870158654940892325271458775729048347879565897850197512618431642692598246070689094723932234830706287372814432105734674363873217339520401702226761251029457959794473531113631016610298887284175439273566772895980876247884394386699798276742219696386694920572482303147354179708584009218172747357108314147288313142144824095263517488268312341188942397824934380949977638438940996394608608986969763222868236197958375702911279014542210166630743612815298864478883014786809600727533851030339304641016902526166356616869036440105304383435338856841839926760357593998283973414043547653869125129338884017044756310374599879996036159931773873337731958984089645440248653259721768057651764246416382455794332725682327308814716884446993707018027880257602257928852666909461463066272706805529272949032504368949458651011073977432987525001153243611946796474850147054891632252426421964183550267861448589939442314148732504512822057039184078912314421728482009040894169186033349766540891661545153940158599445233283967334017201280575624428473249658345303783159528777909740604953144301459541330864966447492734421783797338706341787854392036301988716307437728838404393499031297850926881159408689319696520656049469149159632102167024057036586491076363021150332564122614640001046512953932318413348342843812214601346913485835314788687625549309761962871429290320323011417895268008666027543771945970480028373597474706541206110460847374581356262336672537512701716874578941884785446698264418533665833881319888049612995408593864775836917070305669662296514841550704428671854416176318644690361993942692151609860743163659195206523998301111631608947757980550330512144138499143957437322125742738754689890520960720823980707197639837795385559333486295386493952920528057664656236463489182335203994712389134509375509585359579607097261433250739625520781091430772371508882037992219808582060416843417043479077895326243309992514008426918950533517944702310688560768870057331847467373301620614180168840692608327983309317759940315974554841508480897869966608268248108054740984250457485081720030922094261061432421771080328566659664219750259414508697132508544371524862771841082523529524794029431820263663074692563890639107556440953830762189513031691529859874232895853089840025101824315261620639227006628755420138830951114471055774899861867604137618694713079875720011010640610274111274895338000233702131295011889974596685517090736475877715874297913136470982566280441964867337701347407900654872625003181911350508435770929205571750123929228541545684058755935497497450434573506152509841042813103751605885568048875341828468366861431349289887689890977085705580714350899344792357563550915726016187903179845839212730145303675111377727532823240158113560724897716244347789354603639065490700926013440742838857460134208669309075949099239341880644308290616706410252858430250442274654707230230069621131315520933040970218163485736389656001355058272160505686899250755171472923928360040114206462950385556381022534210691918364481002788829415755364098286107192589252808975973191860610561322391235018665459089434502776171070777952341539252602563042330143935145650301802342176184679506453527390511438468335550329309321286678530519173757813131539255809575552455647845047895730450624935393339841822149749715104588758506308038908142378283751035616547836789321174768018107875025734405492988216859717626134818009212729396061609678362817443887421677124896621654337363317747666231327362454521191913149474543566304946126200658754971286647468467179694203270424185914902894894862932364076260919735871289523110727066933025803954703007209541987708918834788285178044089887861435594647634745550197993257325712931561056844007223807995315298342735523736366500561181138891801367505771092498194403242668479785726602267851882109873119792536117724092670077770192725072450681765437812071735397999654382336620232305287633485159514952897112278598555652041328510346282617776337766246842762904656569082397381037683514113595998488522272794229113659280444265564491070501787304924966759354999421590261798159220303728609593699716363748800455379899273371457613337191516959854728733891781468396220024974365289288013054432188780274096712409353104990247038310580516818605957281662989338083732822318138942249648423975678886757715552840985595381045794821209111010675012284715916408196717238444865574607655282975712273871426151022920086352234614333572447729428314175836580797043308066926848651456328268949578645111055210648517374827220433085220521991511435947757442847116445503930329416355708890636270931382877833974256824694828648558436379956548814704753802308246572685100710580534690439776023000545957712145500799990386600655247732046621111707779155955302084462779290612716502064470842998239957586902218684319705216839462664484550031414446053107379063432894625566950964571408531748233861875394401178530199973911842400044376118685260988072796976319803985750901029846067831041260443547413893857431893788000271789199317974368495257143895201643785650781606251109851556048515082418120427977085972891873005582846017649706656175333538451025084197136968497048823261390944875203069420361699804801056770998458505911807885698199286971796943408879833342363548019629146597069171560917943114315130049482668141288104181791358537542024556512435990544654895061528847329354334155297075940436147863899692646061635127097912052255680382598667716361993157982891463779272954867857285880810336296948941415949191181775848615644345303995511709421099036386542466982054332383769142431581082511594910931306809413503380544596470615348743128831019252961584900854958260266794035646351688943167016324090642256993188039860283876141506777404936326469544904988573736805584575927011103122980909075629153090969419715091249310426996935274941380342009693009349903118460849876680844461676749391374583953503850069066325100242966977137043659800214138604057670796047502663268423111781108422709597994651150511512848337135935269037610663590348144414385810024309425185737830570779480652410375975881120998923290614835964416935426074788674902473013184323235692438962070117166605122862472639324416041692608397893134087555793572901216921110833676700574342128241062729989291116678753700694421609422394195827864623885555804098648070131003497556270243091142886067244835624991783525241589423828652893517586771674815717757183458992947669693906347728949177808266149898956583393885631105170429047431785698945507155955688622727998887412591319795682516273813373821571229803612075754325852333981192462909820501844449219609473578711973092162595371571581233172932239654598042213030726791514456378662442894796359675866838029659410170141009709761346350054444930182159554410239586721090707768251610688206390079348045428107470585566092398768264967749198906700399737918624020161349047583202675435388992825373366347984895408146818778817168408506878973849939812784922117841518098553805737903340390362083817699545841422710220337623327267930855489091798769625197409118439113102964809641775033834172240803603585277928126696060005237063331877090569677649341497471193484095702015420399614758310318899503692343087172384157007675419126898813366465965161018629548147927949747103916202487050061249696116679605782803190219641443635910633185060502457682498218977524850855767009398371769874029720585659189800771941354266100224467134325458590471867704594098226576893264393227609658679596211940708522812650144357675407151858530570959342922570843911330637359798834491977215882446604965367204001495747265164647688520713914289168880458666335362716394352943605214628417490906358439289588318505615132866071933450193714809796652829468900025162961199832016926594013018234670976821986665890391369254401300412566303867863286611744936647537120753746932201382242387426856202647866714144357069687182986436530810653487241698856789415355434542559170737469497588762786242304641162969157842556048399817587915962870395415234206685080553436469263269159435465849643283500061322729438443577430352246916980164423061465309719967010965260360540682278209049720690507883620229197656852787576138026329501983107706299280451093296046303549671854444235159830437266615535299042030943789153768331161179634980978407882480031533573708678682298937752462238202498171364756022520881416729681863809508925561653921662677263489573266465346188688191856246506231039137051660134185830764574399191858272240473744567966636946143936634671798754977906815293843897909992963913368749925114480607950130943201280099023159912283087657893150219105892952814697937538664316136028528553164747599650990561374015459129136747155822361222280284355470018380354225538868854074285061890965924587845536569653285546222640774653729396071685149810028633237114403617751890022006991276683865604272156144389226434009540814551424237126946646031818744381032035583517079973337645041003055040834003860637405725312807448452280538761196560722849777922413464290872757768874221823772430825468895251576664630784465031413108641647059981072906399934320442792684534310690773745067611437335261169386067491712205313420908482739931969784346191118887626860514843342155002060510507308162244246392564035537813874933094892930350853947225275732111455169744918926421900145549681580489567873322686066247837167692943861724060345342635511151229841837320482446318269642966014664596438885982391082938134370087495117527413205856506619916571067544933419078077920074210169309409084874644123676578346787950196418357691680020621742973352833305011640295145632676045112366839555336171673580809408780343130551062078069457068941357775053575404321214171665356081915392208546872391317670362565752293096994927041751285160569983085388475274820181001773413719715724666168263978297328034736953059892039922940879518827134034197774777739979832882860035017242234818908670344276268464266207828954394261152062362425818070002328131005793475813342966752190768217999086993378896629880406550597207656267747945594339666885001082184393986460214006924817911438893978801514991319442156923065150691054533338679146332871213527386517643233014784367949571707134981894807485347375724932261513198032980599982754464123446716559250072157287701618448277924902211232343856968440183767042993954955056715353623037715792512143147682577863473969320631978819640389679692636946470959295392607387187800935253785851907835934156212957962507493515656069569141379734643991813133816261408665223602516308061867401502663379080598334756589166691791108339655729039458428910932569072510549182993557868640285432014104662677415164182701372710650682343803571493314631550034087958079107225656749682637396523835322159528685381812421107683108217166340624226840924404535829568170880651361482968383161533605712573927968129212730552811909938024717951544480065881224813880358676871308561615788714017043519696803974922337770626226153952606684606584431643849946294067002285648406906946397972161976920505591644917458072745124582215860806851340648730503192308705539201889495000249845394930489128707248652045135050109985260491446656220354520592893109124777843186569334096614454988351232366483176260773335890729774008233045818585956410842811113333468555566334453911054032194229990254583700388411013683229338865072935813661162872316537511590876851243244700692533458423950562455816061168932189719657925925031448983629582920574934896875338649305870775898244185258960121358846557825640574588865866763999265375439647308009261200748235054162351561256195041650980612520250643741393692884439881141933862986919739401248504945262017633088195810996527650780453797509216285792370669910900969844700390642970194684444665974793953628078238502768688509882270986313855684650112290396752327329707247914492772473722959309375042195785486995436482031008400199092616076095008922881127166548887453193876388314397623860015122674723798444420243336092393756414050075023221991078876425217782474556319926506636221952806767039738913516358770787992649289121688721609329107867515483271994938610588929704202184667430533737151030238386703796697852047773060134819147580762250438469552267573617996898809095484549956955730280513023046121211854872195775940784676199667245214930814511652538548927176150974718472708984694814463130376110016063808321260917683809874265387674063529310964346700929070250385160544841789072703165937582907964162109696936304356989526804173299187016779076266271811455950809010782756393845932719424040747359830475029941074957618391175641299727333702106774567197833559013465927818079061346565109239791483835823215770534307391552747662176822305136239526530481705984252995587645562341274335046226619089407292417884825888875898206332313104485144061050629438729987412019380813289072752001553651606591216941907191589798202336370952509431082119911259992812641019521445235945868615171339705994154173877114283965572282321800974977966338987593760578475435679911106459912659791896331996416812812013370270409104306531170106467029398247489507401101099338962346580712752969072564685992609407301857562369687044410361951013950373630337818631062006087449006864289493615947904728948948260306404123558932281904509344782618696533744113346928166603581522368930352573984652646585446058110793943037773008516069800643018834095261743236746316789765895979751027644044320389962055874642074494447440317905054045209478741351159654748635536047043541140973391808792633067982231959073200372311215788839921921498235213102102116015031424912751700704423876490351549666670050641975908569992333363013694983363200528520381251831180704411116707645273618970859000784415878571540935861238690892316404871560108184359514337409935364969194800026405627053251074896333967391393944121232109413142052822661221766294695124345921106289132881651132899273988188620257306518052225430491654661859430253129884877437493648115191416146471635932087069860958511954850946429772424674394137070564628212858785601423529617760719317135376139231058352117115448791893965764009038840921721675506948373681229372773391997998581494178655178294736490678955360930975681550167076830114417382191690290186020432462353909525220188778081294930874791329903382394777346586144204333293930815862773912444304866454960112811595663286347598944427272627898420118095953127714596533621186586528973849267366059712746786615347486815890888423428589900609403725894403961432513580064866575273919384698738913162944539071214913769854295761521999383255095296321622226829056391936158856751023894306312839856351204542468647437411089876764127033051435660234225253710230885479195271756234927859150276642142480673410713584515878282782508165608190015603069532625713103805379388466487586409673536450224694480182081664251401401503565725618136584081025432294042536763336057946475986776906369943880065126544623395898402296213214499999826671825497718100296674328682727695134172876885216559915574015332810104917340597992051710168630776348000416377285399032377368929986065118525825342980864111675926813556623382005065999679399966008204664292016736855440131098873458470065099827714823870436558670144337394217650329934628721244471559901521400193379506804288637083144720227147824657061696601690019239543621744642112282626822805666079417041070174314736379419042539434127784481964814248104728973788785946533166833716570798262447086019700457484589418050020038978210956178385435840319339283247987243792116523725762295274982643670141105754213397956030944713112063913604401186765161171973267329096171889812741297824780143660575159278768606032999624179889543663895130490224052554160045699282367814034350379476630821515255020150569134769220687702779391572847549798259174954651964596117789004088193209622833032700383012562782662495302313896903399776958597367288503777971861210836454883690638697754654808615639007064317720535732098457584878597305839968686359881073166651821421237434045166261822044898747743465093897717410759976700545082539198276787849725366385978195531634904503680596515779970894590394092315129211714597523343206904953251024872108175985552293245107647309961417621662683606667673729058269493164012137610944683363466572243245593373357715034767097237394697799058076236076127819228022768593464269873977931226171981756209095978572804482995631718154607197291617862235957022186651137515697571177839148609248854549098605052185875450088153737850446610066060043756692441029014083767145923694629431726209316340592242481194264039623376138543096593314180957098738575706996789367040723371736685084735220675612865792680417726793898908976590948872071758488683678801559829347521668103171568792003515092828308673084885381394785114962551403173358656489029665678851316221200689874911353988678504578835455540112984276954940802097046892920752694370100798309568318879447578041853849841240299476614470165299558979384110024746748952015504537886552763474221976843520737429926715385386578278059242386586915251839786849695987666301300771086695536710512935483279607492802975082150847108977625995661207675136966693224982663575493168770028648494613777238476563659676860664656602508271643426756810846408207586204026617354312517229462608589438031078295686538251881976682099475339045893341134148590769485134223548231777273303657981375136847845797422983147714042963208585650835411611696802170538798784745116831261486611047065415115541507507929425673678062821422094517254381506958333176740487561457595220609894136270771942229805600445252242681363882292260426664566667700957679369495170471983495195128326751840450504879556409450849400025206739597881893729319403324635937809772318932317140095702001165442167130325985235219435386284197228706170239351781774371832774472118371095358175801818183938486993108931655581202163130711887608314753725979861733013423654145608753613894094688902696015410280994876151259139859754410932672738921188992921894831479694432106488408593461024398361305623910260983041537051290247669758470165119034828274858527928459232658890929336969895953766906959251635097739592127257899729954354721439859231642951255947913356158264470728391981114025780623839189680863147296330923096889481968950467454071201237414419956544491134615944914474037145590092324498754203503826348894068720657701645093303585834125921145519881026395276007283400855449748463477017555507872886957960135822819768838362683300320045002780115838372165177380030338824334212471003690290229428351871522077500238088607959134642613576694174771980887709055164579382398941677953515474209332111580042324754533003975325385245831905185085015526388147506280854696588639708050397949055116647116207747954367360651895973808381135545041536285765311245777544738963596197979348294104968688690514486371523704396575407600461042461745615978334591981928824806897393450334520243973747221830151063549437901581402241152520322498128192106503725906431543655840105184306045710342968238111566140021489879435248680677378760231209268017762827299773254319169319147002496577533835423828556779581120171558212756729411539146671448396008406135623222764273086612799761740625552113669024423239623996637037210554016458427047109003295778513451251446669921755545144316079762179193310474976871708712141280017084268773592628754788168325701847199280247616476812485757342465676313918398349884628174417521257763289764686063635748686883395569333825397484619314941804407515798768945714090035122174835481966012932408188064772240270532361990051895521692830384376906549056257880033372934638563584010751615110561485067294442496041905180179901811551106423975793581534608987775488941021116186227616402849365060387998675650773671670331923135202313613883578101611147066944469746205597621463353133815954552030464974787015721688626404896868760218201534580176294346478135527450749197736658959023774966437275446655559201026250091926865970027489611295293000957922180703267556885226398287833616114878538863579174039469978724617048863094540462318710312165368188566748289958157805383602893167371456625018600643065214772044579067166916362990523273241058990838129237855541148549245574116630141482758493096860603387320185119927047901750025217753241428392424648314330060911210857456084067002163178165832283956970818122044936885800496748995620343404287191226418635594947509907445877586305872527338864150211376930951256023709128798372405511420912689673414032787824538695674388337550387960258181871922868252672213842324760318343067916289716275567481249504642690449975275671643052836099454454128087464789059716585701798289943614773816330899656966346919041996446011584118717636478001910259971082100172061625562945473270721427597550593832797292636815134429043279841801318590303320887225538219542448891564280533419613608058896832737762510208884099840707829251083589743678390263507082090664213837397367385839821960363029977344171520609172698798453280784698423274447487431334659585274423041917364066514846898287015431782767213315781053636073194269194654184657883828974304645668319792276750922846635092640834926317419700020667883196054104610344798811513767025147915976187749740692514221088945536612597303263749410960426000689407451928041780099093407569660818615719153375679624358226509087066803736554732303823334393713515805664781052594844808223527942840616509627992946419560628180541390646742493343714507092208649282907288427570094399018539086991811700063520581216947474170935611749801634598676210449360173489356775519436429926884746294982163214113368516269149743615351218755216629912188421313830417277607676889143967312307868684137671742020611435163160015783096811390711931171833383809886588141585451762468951751814874718621567544390152157943483857568022473925126721351149516693882736844558460017633817651557242226570660409110919648285623232716683208278196374713288181544483520734186845885446726844252940899953483368751601992114677099915356400237261393466369174528293897854526067433191548034826436395486295112671636508719582922584837846970584014899804725756572728175310892370486658446876349458317642335989473943987626178254076978650480428710838646576943540468632969256268015583484813964186626430458159924664142667092315412041242140721200865119945163746245505292591934164943918497230639796458357787610821733000384814828824382375862126541384299574654908294892136736138548685217666894479909480230942347620254819576902713660717123997158136514225920658008607700122331241562275343656056421713600802791204984802061768700707658703692369302821336902510091021749792279203461493589594037491276936198662194097018709357431169712403757739475045532687973306831374447706973449168496373331091553138738782960536866796572694050970722006763722196595933437371292912035450006655781987417963508458620850858873143011482272791556917815113758314849951214619431628287329217961666894040864689014733903714415586090371097507363824634322409868608169371503536328249712151696522471256600214629346468337530992808724060758275465155455197182461092652271654595225545947874003685410300471183874856733342477149756142072308109189457217912223017255220455333470119768592951449090244369641414992705724586025888769561944816598133163352948087444476103185803730415510779484232853773710522825466500343992066093429023693256291059626625686614018301103956452083109653500990375394041565224744439444697940603613916945060975281749131615571914910529724580373740046051178364081506501791924812267327863234594725321020930583678729256417061859300326703824076323707785577559604119453497242031566301024577321353598584995469076615478101524516654171840130552243183478862671503432448896817047220578039882371334768743620783087567624572062772631123107223019352601063409276410178276028429674519676067932748496588283696887969080187903134382782499976535165149694604559293484380657423145335931259643142664737245699120084726576048629675680863931747488282795214321419034156599740212604394216860216321949932336617566270925430662991093151656130074680683474941624590235813023458348299531353152963400265537082511155176897834527170221636487681426530256217961716376460036696432605623655513330049943569827878890260774211337352796102471158685281147334247970455335334828374231554348828726771681245812849619237920943066911319300400014784359232132130895301349107924050033275284920767118228686217160341772470243861454210202066063595822384081752644594342835755218826700140859355093368028132333732094848063114982283014024094316000545167270914951965326367403125027493005995328261702642413880779184123774355993277915003278877686639006118066899740124337746980912555674455874718215993517276890132927176582873908446283301375516346117925453362062800555697915387662262177752613310152956977476867111950773980448459667455338123597275620082257167688088613104797212141601299930961141097593292931633446135583502160396140657357637923679018428457172047370559702413712471734625794460461300635282697469461666042160631162055197910192010090917607657478227151002126964624752088029305447432904718299692643582562805150304027078905791310766809908643357776607958330194603467181016703003100730694146768105359487650713696368080402558778933480928455512388143979492746159454095212505208260753075049293079801475452150431642055623493957309447110598131377386492449653816496680440329030543353288886971334802180124411384342854650159100054331623255228501938293427467636866127324181245016280243788781431200048966873191061700507164274805634427355731389231343504299598138337931447459778248172984244629247361606489056959026372144633409267948449596635921114958851545259337017338700672426482387947898426832624763514201854632016322682299538340271726412630617940372741399791711320195798961169698669871681682365660287923305099605900266053018295486153441099929929266047097709318443291849926972995988204223239495333456507346368541859080693431622446849292709471469880314268207185519695409968330203954553473283004066273756409126391546718409281466926516176830355857276435555181096612023484541808616259453842883064883213323968651104376396504378861305897878779463668810575898041136650226933342730613781857129276217420308757680395562541179874521308671300612965866047415081560322023747767636402843750803679985394340142667079170007377660150201631820864416116559180534288913101255462647279098861708955039272563237649265178354572581900634000488894442827601279333496594129384981180772146264728125017858198836798319824132836216737249944928468896468570937428332645113868899546712933046904367656756935320793953682875529051318206458154239412635358787615311477390786469560123045290036813077437981657858552084938796413259536448864980204449444875038965897026237565726395686445649030126227467189268144445647876808193845949930218411932558749902067370365105579355854400668677301141976490473603438152573580835423201466656141403119118672926735170447917451306921026272844626771579430511168497442855239229060643908293080268709667356845260748394562418117527205298222679358937202683952255217824337321395450279766160014079115029862774316507974809006542238432755792461538855061228910178754369733092357234457118518874466118034872188934199778927691169277601664319858363299786372358651203046673778329694515582196384940312067466581856847116295116554092510645055359354511697196554083073732206959870189054987933157670467776268342858085415105567097615111100595061865767655917123063881070933468650150208609653023691373278839115508534265081971750269211406853764892573605877502187260757635156369651482497434775501227629456186226919231846452640971060518800119133137055737707779023926573059896394205053327828550696068995791272612458590595425279253891757047990308091314799645700205574097736168798026071107625588366458944640683669830616308794111256726774062984176573372171274209648327203155265178628356126342772808676927514965025305661758318364583222076097434109373102201263408501002665433685069408366076525542093707936068062201854129203806343649798974000952203444340331749520210618050754449721125810276990226097395853840886954176167944106379128943938292657066659128357212007704358599516475321645813742018524606563474183650444521888889154425431385705305023499630301359818332398969170982559250081823682713803093490312508526702417698349239184716638145923198763156286288107911812786779238692060239807749777040250537857565519405342647083229025821931344543886466855312862544547053130835269233759502159154839801477927061592050029497180262948424920289932378340165786391674078042412715253076868509326202744662439020075361124600627331685446183042120548928584232491520252329386791088044762758710137275517747330984576689901372083102102818277515917021206982362769525420042982923484706363326316497502243818988590475743209066830814084767982794683381519357675686592499549548711343799975744118142532220844438507990338628244840985492637982868703224326182790436195360467330441523775916180508722009142985753318847306581602258521831742701324645156197926709932303000832939546923991184688974662951674431085077370934951871311694509881014340263581879181600798609321468662271085747923946976490225672140716336921807625808754780958279928291914026435204978496818520661508161977776495491054302053249262061492726637210152927157128591613913215363029416138915773330480485817465726280485216433063622118349231747029308800798105017289368352868535589167902392786123972228768507835422954600014464020951525883293667151897292117392913092098008582609573320416242358294130051677047486644673434885650141408649134121801787262404197975348321222975097993352270693224369275063690564618031653152107172933284886158437495845362055337288931043900561589107115450452121706453958253373717977751850173136868729721347693038748128174890208226516991119198104178000568664251187092003966540037236410090239329114568810831770442477964260529942693305310844986960289104405422657653799188454175580462631018856585108041413030683842540244168748998382567639189465241077129277503829542119516127453902696162535983192607224473276347146388475587433704370901818901195809279348320467424923869851849978856486106320025897182800676747102081669236689605311041959380862834730038740439633586107666165292129844641646050808286326661894353080280425285780083403970209994372571154722780634912070477261239780435474125982630743515143148466781238186777684696848364104064007044367423414303345910253528490235834289636056085810123694872019743874973953216345612768263277392755984946465231323632704817091734394194969886041213279862234192482639060188247062923406654679527267947160552242641995412123673550227339321173960750338357636411373859938534414793723305468379783789659411060133190023942414965614444515900254949432776229391141678470432392998667914825275958564782117202049294037165691971387837369991748689679202633274821456192719128751828125328217737377274677768026345639014483688815237882518927979419521269386980464535611980057720586376213795752155026160289791782360646172150977681636685343240423252545492067825039919771288407813624235869020783246609545268160067626734710224121170028474126150762595848450339556682560930598738450681041878644803871764361886523718966701659067414219153043648408917265533774205585519898730265591237116455545609858976705606959183611301703293065614250951119079722662688238359082362000813745935410975390663793975151153590484210016210970991152146299048454796363855912641672369245943465456203365846113539779673843499703950194872053683530781214270483601280877746741980881645228455826939628527004854717051092986813048854156124863200360499592310327909193984026087365777810382212766233787194185695939723032833988221260481053727469544411756014964459768511007530856432880097698763436270332224331916475459453879787554564504784009312681134449767904380672897887378014461662899176770000804117193935484591470186212193087543917078986249293099947279494610117735350053823901075410524940283917075323482538200616855659007775963964777790478593881654813610081773797460542748128267014010828669704658629821996075746302849055311974928129249122637315930140968011823628084476972105202981688299905882211796583490322385533913713098402105968373554848188184256761352945287642722568310848338316165460718836637859497326429182653231387522474861544697255398967829157468201444186653497728948424553102818229924729444533147939983313312267425895370899180020235659811220095506203639545638482316492569618019077200873663167194759480996065479783882312135141091645464338005605170268451411447727115778481089940771097211682204719772447380323948513364996441383780759518966169666235535712525416562872823542580209849408611672407253185994318435984961851827238983258636370704201235619334649617012571223639601283262298425746688676072398241392766281770070174544699288979208857952519268497505909348596909298118582170495571172815458277028267824675789118455882955494866651012464469546769892571956046895713098201284719147270758924961691782876177439503692938963200182414845721178940964363464934473101754497873861574569711870754452330323579572197512543276441691250435874692550020485633810907975847204666014508885293306511917773206721181671530502183460781998047213267805166512238285123501285935455289293886403172872398439488777836709195505639487158457520518277420212837296668997708611368275415383774344438836230439124890440755191169652120125746327876985299647411330966655262765256543737587941759094204497454509983483868578811704634310557615892459395843532950398945310832789381951183531928703954213058922694801810008519682007462967892678211195727152785919156604621695742972446331440401590357148026897831990725990183130627001506332336656737066358536976690467438069075660494522870646121978957596619935050293262593896071447823386311800251978678368358808937139871837619597771807044331090614282297566396303303013304513515640448440423575467530885702023268444235996321248918078056319342838933295292725600630555856422431501400751495475648803473005239342051278479496392884347865680959287196571007908172331277855968717927320696499864805048756564846017449683311058108900819816210447998630652994463938045647181215844707687637019473044158474744490848223306266744818477901029272850779143096274749466750323525399792203559313211349521580795874659849034295195916662445016048107771590287382128627123499206157267473114879574303925432321605338290363003437633976068625155000339764690253704382719940039465198085289253214616946622671997272686410345974552472627935999441201955506645689364142222647560029601337568200656476804314516605238296671222217119708420386894550559947261458318838735124218651530487164339362258155183773921245120234074940028930580514933482261605911357011661164559338244774694057939335954675435767193680170713583357683542870615613138348268665056470947348559050563698892719820127976628500251528750517098005816203915102070435031640265543454408367086186811585121737740764775164585998023192856246150214818004435059321752166569138739936243367756262846197633730956934260857881923089875564777394395118376714797562059713283002313910207364473356104115566891831018028102366819068081753215598673179948801351151638967683678329087919446757142220246029820766388396053391284839695247669062420813613576295425657464267234278633135090940654613857330670665570546668449654147113700208862756442490265387861136633021106888586287629223897868118719567189114263080017462187247119175503057461202590331991579096328746879230812785175819278585831744490146597057396721774310322020734932473553486547983566971363336213879196393514679884953135208289429152673167152895925540579120476988654098362680174861658738190604487141297410718798428302120310431144206120869346135754005238219230304395271002424547879972180085692728540858121787245481804514210576820610739769199023190903235726705571654092510704295572848689736764566820685200641059098809003250754364325700335198353046924515648089847970058564242149489799915434831437459223685093073605922003046347682473516691485690301166622633671285198134881864999380946932025115106793034553306849980733674986606225109252367877279257378241565170932448485336530628333447315080739614961471289414775441917571080441834147801456845240676779890855612725759546102595753916556180220304557747242056836672419866108243525306372653482036273183922259656534058043606727145275596717410288843734287926693829313225250108918476207828596598411695160714418723227272700915878155630814696225568428938802137209635063000947522563470582597336366971789223245834312436183608494263061887591656161188548697321235478300149867181211115539390616792363955763778838976919394178880173178286716558883966975474307890592498178619497684700240681219452136528443142930710303197685094588453236505724528780258296426493798826984335259264928753333645217180793486738381099871996433572804670597886898514433887154073488305066252726257984739293806040392002318392275851590470531077222148207102703301292432245670207067024102269824849707923749972636925092059263713840909331434818681869304139036186527290495481777826407613192307834427258082925944313365836642416278872059210733857589270674972361555433129660605351469171637685330062414400547588796403170459632089829645794376501016539700192496867298404473705464859719500401976147447738702204251259779509043270587294629595703551368642429707947372135678137999806402983717350444973601192536790224625282225563124463978887619805469628518679407544735132606138870525716900619541841070050491816398311828043838604514008657932598659458583808627512248081551344784435349384885549344277440706435058844704516948027461594966137376373861893310671807309672742243999618848873679168040158824081062698877240120521702368198535978132112672785426402465915387822919852901570423618263493128442438272569497895340826069983018182194301820377991692687239287987311635624238523737948930511069982996538279724304068733912621906371170863500358583238815322407767043416404228432258074354476287106523543031087968868843973428926241908172249988368974602197658127754470388919885910658501571716393340731694508683215547912890274724156412086430099779103373575666641348586996709427787823049735871985430398915042646239645680226860435482475736762324088349362187042083626212511101788981258236452592059871864769422563159950827297239932012668135656259385487660152373455939191244450967150528370852377905874479134103718707364568723314377201627479103673133198239638405652022214126256202679961299754421610858310378446934805481655073507826054928495201930573532030749675564805397588060741261373023653350239253925135001610592966043113613036772024118151025389202375748034860213930778517768848572028003157801678989114696009715713675850947926105417989475218291670697567643904439409995453815526886965633890570371117045037457021704593375111324481875301870471627695087542873226190034992504148759681877238319165595482690109985006899344465261273310583692312318754650196524660185038045591460622750507088197943723756143349024119798958323573049287049064051603227155901967067605503319825408501629567407137309930572909098125656485001480380773435089185089899640542307376383538998477128485885227856727219886658519363330099003983504998539974006450759579786358197664864282052545182409980812638135092153229476708261227510312860600328077246594779729001017017566351931478884330821129284007112984125563733127092706501551887504469973759726210748170163307826611685484609290549037939822869037662532382065121512364416957780381927324860327914347874757919328789180578669447426148235042087605363039261166362391046770125768386547669961849419567112069193665119306056643648898319288875767463544418247653858886641250548031819809713684909950648594460857434008675549628091788630832036495562799882872720503291814467064227343525474184817288391210010308961093782482260294758704541485638356236566851839378721692359636807959586189556582109789076374722371921863405509738733028705763202109560385355720891286246106979781183305058494098027513688833126851300689639847901811877704807553972645466022024166468320902127030706208262065088803789432637377263556099901039946122037823741699158884592382430170466190740033488251586610512702604598776437118796064176138557273958087875835880482162010094712175245932169800307138613237618920927234534168454169918751014459499818779080684732587409694406616477480606173712992629594147367111167391111911806905264862100004638273323149988608157395880946448352766113260537612062237455528062470952024841621247771787779079878099573974290167053670468253737783308582182407901613819302811772192936196639618221496280433770597188720084485591575434227004256230012313682870950959114306765178820041777277753438957211539622091990919754455615890556260309903202379142683060842266697915407692293872199004231607053263459172182674293710385517937353195901327183444238195226415599560570430120228109215823400420404238575702266878575375229395329915548025168762618396587121901931477439506965234795864611137600614335285722950573867928318476855179886876543915948756044302334645128484987323641417892901740774771386739463216088573586632013728008472908685817499502027713529822602080169554087255198576945400464514731581261480654085592407855723930084196756724802965530579816508634213156193797896959500943071810266273345371995984320927338909808716573791845760274255626984234977963814290406057328839972786610171978238331049449659533841227551731924975342548915378690947270591061971530414132649424626842711862924249502348068729813135414447187790439675928879041368930477649367141339515238719704238834961579739877991981364479250940211147317527102812379820460433697124897037612609761246826141225131286567989611631674701418481266368911974407908249705374354900846495736850511567865768558545887138591380673999609741590649427189453472518800690329615508031052142802582028453208065677003438984540951198379884581752006353593158047866521253212777934646697029021729543570493118807930582490018681164128178217350538561172810367707463000546822317845595951645881545191873459380151221235247621262574388404869098241623041188739047720727341430351371744048229461184524786971374140644105815781428157611534272530972021750688545504566181513328965069443376519113773140760737071606626369391009857148424757230382553584310383943010521899769696673418840742022017700504040932284352823673065693137042677765298985003359164759173488697527185006334011485858727585176958910801669619660236972910062105789601604780013663664309656779822975640069237220042515616403455110763410744746129977214814129219677022497023575482917711950414999610302829730464059750523160380710109603663153574290703357884879876547959139992565723570595460380438039309646119619378255679008188790462049119616711077604525365600976726142522586968619337491837659176770102390983355744851701691286315394802826166245273129134153498498981216097967410709782828291448930609994075973694935254731132406755740875458455627703981657922432582463908285102617798912525513980125544258211291714418458093192984232489027490007017316968625417920544620132167195538139474839193610699592362325306042811254513121106597806056695461160209588754132458089006014760009604612808953187473507622108279708554930366543867748432898734953652365866536455903977947619952046571252280727224407484947555244767136968283180366756374256536379369855884180802583236954128957302763440849847500349031244369543025791555200095453029624380948846583782448547724737589780601146306247887656050885617792562657836323201384373308186718850201227720688597003020245598030791454296410497325141734951637062413663594867035098377724363330999187321847190828323538251917939965450749292254163399221987388872032772119662279096084499363484844797856078980924964719825765632240309703592312851648091452859524532688911231101612412758004663614990609021209983797885783519354864351351191652149978881819931746963532387193051188972396714114047615489659831715248725117559528570287392672990498269837004224937257090922975285478045747010107410931659012858013591684321750113420195254106619592275778553876240511377544765666754497901546707643854500675190264504817185732368653243441843327295188945482998662812708744738587204720070618811551166551547110949841532546727074324139590534572557499036314377800432140310024880154060953795662308274745809166599369873498428905779178970548674546012376358259503338768870761013368232707984480779713157189729441149016041145411018652903548360231161176205505100913601424696437033606025013723845723522046881609583226631220123478564011987003495627422887588325599164171841970590500362868746111279645230895716192462429293941931477833452405841297740528896663323655203125612314585205129035598513460746323513458575271877826962040234254546325478331170619951846563097321654790095226056257038279268346652366324757365768970501808689258577659606034331392062928845122671769484479009077439675698018640502303524664154522736834425194836921796146685119320599865950353745880196682764282976796530392878331111789348344332580248071066939105900636696141089966227491368371009172349876726350754091515462008186931741295648867595765660565096328850270845113282543106351655528454484985995653412356900367966158700954635494156209980905265283095825011956735392447491795716059983079435663459167334925517086583935976313768855949481127510964952167835696827280425243336007237242839656081501584073131331923741331023881775604465489083839396336643932782163764498218619841824836197405620436469186196495709748824815950173545979875198428579380761475307826370222225526120094655193763074625310086961800686984442866677132110903408186979772395879151274915252516706244168888914617056419635990019830282217880841236632894179100031155625681230082609333468441403768478468972898185286844046345187493510470714955900718674325438366608516680654080985034076367650979111034002341719564684734996692632934359321670970248260161281519290146177882282235604077206593814632833543403437896377085170611641090717764798353589621562527445682330296609868565640206897798854093921713658743903140220840424676908279372137058063276930101083132559892850193082278400861630910982273279724146154821355242985513898856263535663545565364355037732339085646471188500981969165233807658630296255626801872320779601394676742816434128790830749068798036267423573779645233713988334845348624431901627806912965726023773080634023830699114738051783850796119224322614981505371078634568062275764811500586549931692803838867537960014641865835691607333416427316612642532270265651262862479717411171881385450336942667641051472840884377513939150119179727429278428258862788100533816598753079114346278083196825501199190440432171183307799990421957630667689908862162279296388257163898236592282142333523506409123735817508637456655464044028042868482426720251095562438991920475941916332178386754280108338097966875803358002858040338490585006306253367610135260114237633084003930121102375006792009914224699947527769325109140384450720509756552888090028758562740911003382430336931414533598173429059339104405884438892294593480988397947748161001954149934870871640129316737966312650300341178429050591734564032565347286678856301779423628900905501649540812113220338030903162805998994104933664085426992733670094578514422074349599234513080705454934325216702119918482264373538814218404205382261531138805824110665915802252853593286777916296066503628920641378699969207650807115227945044082968027732669085934547937061858902320854832865033020735187830100770901318823391352350179245763112880800542929346673796395558001017427807781518389283074062121780900918595866735347757608403574042844316098948395524494597070679737839280954919611199131546482156809773943380725149376020680563214377008739930944574727006840383877678218473726500582694680774977212444874862875851932242100772882529171623242023821271320841719431263386433846187491017026073927154136701475666949766572877918825841027756046580815695721478950268235944220031690326634610071385909600301045435373102858885422074495646909368293726680027952551788960170076860273987502248221356341432828585018625327027442153931031077502968550401014886536014622100462382045952782477793818491624826512687637295864301335679991539466503829339093965796187176862482886813235410571377374384872151346332960424681465783474621288952893316444138341661339624891345596321972363159997809011632962192782101992401260496800135990052885491555335288050793163921379929546760989674447683288663970893680693252912225685095935653140949050756709780728584685559219090991786747161311335103720774445760771785723041285693021063675785930960021735287775040440682634029568054444715962607742397864089085466780174145452427436197443309676138272018409111833974566585921174885037857285169435009128649253841895145741311153267003719761330187109854568039041446511243789590736548498769215088788050006441773069292615692189805706846158784289782461887303413255956354809673359336847470348137582041133599409628997534944034425323520689729365940544271775965451338235815623507520024636388353212119754085408116210622754843631882740978923662840710206704622813068120058374629009673499463742779975610605882498382718218298909243584278838350007097861205993805585912806838038201808689451115774232560974097633448706406839234160794279870898037770308644586828564674828658441567116697273010470268746729825282568143955987322104308211960860972679004469129730709759722773213348959761153460637470707191083346815930244982304288423275425436904131423530983726429053066783796334056607459403292304963684083401503490632285211928084329994623601812211432116977617690540932662380023565283386071520548027257089315600129759314620016971691674260361033459027704665279082962284661247722405219109386479476078417744803671633608499796954533451702487396596453198503796395446682141629482142427219833203337402252077716237714998313208200632089816719908658249932998544177622645041776634008022639871472980919051327706897275929768807496048308551179585927063051833687954608653182871163187644929144004790220142210991821084641536951511178027766724666073289023976445211702385628868154907692091763356704970162094246814283319635871582157871426919916438227731044321628322241089500855847250850477255152341150815220182260627945710803544789143437069439962969317975821699411489530226354310291899460114425256683781861412151656673376576779595162112835174130576406478106688490172975620180382597267289446048971416626134863473193091401855677336509465990522490515277286995398316151937504150466274181130633464119627210471481811090748877610925744936611501409616277479496253955625497645694971965262797065435605286874695520854934771021542874583966621206412363154334936862336666779183431644282399108771080617609117398446079951909396399762290783985924841044273571495941617327469658610527093275012065947258277410887105155494182958175209191761707899117372252355951380670523532889744748249883530928839011789329283048280167289587476572405229290603841619821508442093449298578477179964983733164687320544476182676691806897199145003806974603206335133257565941627989751351616067400586550479982862414787650536925488278214968580400210827226965471611445856337034050464390148724101957409415528929618434975975605926862241558923195748698376436341308588011059989238222883989057175759469805317636271830065328888567596579562380645154360443843179166404330267380009065142374155015316868468214750861549585371094053123788576090912469818607542809728863828065819526844648963465981360967518747684331491907815539601863600483960167396161339527574821070570139297651684530849051718493063691048775323472566158399588586248188848311441055854183564661660658574085828288859045619332784847262033199344802779814857418242621238531296247318110332658648986111796755893801186236188602192777502512145717649091618456722441364496091725936924969911283892188687634407996785598123513718035835677037627950592539763840385257732893358809866570368723780283893644583800972581855758525646342856119045383612778253454921405484658899631184842121238400039095330830186079718055134048480205956696788544487511359919971781261106698980784751825622152001211947929024675029196260951473809424995597350094871238217213367785444524015319316106540160611792554639751411411809264723222354725502674401224681107340223694839878747832137630217146238398840538972426524559540307467296910985475758865749890871476669000727707912431494126816075197378056540005569877656186325005115919778062419738886918089097345829209289587692019813819738327491681877230501437884294893468485105853321080046370976995956765922200095678728623042323115902435430416988907644529752138336483837057492098445920253083946329843414197997648536377855835301190399565394215935698514114010785805309114649570170005364296064247101093786249094613301641293007174449985598177584685504024609869824900943704662861843026461253080021587702274983820780338844332438586663680314563351714034201672612258791312133231242705894432960647572078252372653801705618954730637780893976664688282023637368859832082830442183949463310132641314732241594141422889075317378015074082964107146641165494876510404075284820940458717192081372515263491967020752028565524207542760211629301864270140165396182232722394605236811415017680352462044921730928631258207710940140466684248386763734935658926341288320380396303075752205672634584435744244202460962389704163523653188204735104406726795565810541056838426204073161477089073551936200626708094447909939301083459088283147842196170413021017106440200101606884780666539137030553098810284344984005180818794780466415796165644416037534099656707902294262218071573158240162533371599301361201799344898131168639214360894974371249790923037032853770332858022777887876389794683156314274009305937838529847935089682473410972966048663669792440719624931952044804525032066220158200251126344426448464741590233405305094204958349138541797809731006501034842607747799362780269328067558171885392024064670595879769874040423852874157902018261744062325494963588173468755240481503224110949979090600268790653758727560016894143068699849339205942146612137955864844974091579843168724374684964050624659488254174435286387797979054440356439570197136086205764710828559023763916858782497130474972774379250680343482970623572045476296991217737059048989947084474476620822758688162993535747885457197788279403950992866883309944108571671175476794584770505625266635900553434210993033748483182667330251540043323267792922505999418896731342915956952858286556398626246683103426996428366152358415513236948465639738797913800608852082816514469979325720661547652177811426557000447506723171000370872209521900345011405184958665840566851808878103491223034598716424678988449424812973407227274293431422908819799901488911685021352521109435080024741412627887526623508657425838718985744050513830306841750905841931178032819745408052573506702872461993673354822267637982940627332648004904159316002844606606972512305326089870513078918339860125228662686951978546555347465497227241124630081397460529037135167289085112964673192792755669382840811017319216064593339846500073897931277510787684842774189644043127570215316431592532084654625483943663019112415737033467960892939225860654213331846517133335316339436285891522077902475488982046702668197294603038647552412168680504232707276193367929042722466113761491030755230092536546730236078737741765588947912491252282603300527634866433006059639299683045501509897922598598137397393697407282749225917516316792204395786376407687518929603866649500631339299741514824344484451513965161498517904568840584875932735864900333805341571679632768518711559811724711389899585191297750440373593162228903943687367116629381375782043724910421782679706724149976334584710702555499044435485073899918471029904853612519598131917983041516476781914884036792845653520660140311204004576498227960594932244951854024052942517647133971178709690716667776469460489183523160737357042560431862691914219224356657752185334784348590918109008703645858542956777676331960603755152777647717650037092313984705718450005839529064053473185499888541648292854835849709965325854454694230771850436378086411583198495795906523569779691457053474324649754038625480011311522459148843520558665059299479410502215829098531507551969740511115111514130918325315691344254196276454455166345447042663145440545201767544782671863377565633595236735365135400461409009194118661267451397840713508082793997854760202640973723172582753217588720537163776476239456844357142409692521270979328333654705356289609785560127070014855589198868679295509472166084462916670544596839144166542145789859628527012295263781640477462679255776395687900484259344659415445745799194637615910650010257447660268070893421022652928160341779892079790026338688114226587613813523217438882915292979057809676849870607864910953425660726658411010131481474236280586974183681729811978235250869420747799882838699443051283746119937849238420998685214238855010360228331682161645666179712116538077775362436528873637516137474281541037180493904385186942048186500318896091965468552453401490569028780455645188182030085035699388368522056396409339632684218808096803787359116630764016674185304390753420594956556681969565431126610482067556223575516124595650259439505087082305979440763686154781531764742207263066460453127603797066062090146746698367304416940669530271788833511650724937826285070131374425834522438258391073771644315396414855564624174399841246797185799304139737183510770577110138952336899714938585403990698514087010189576044121558396345244329424041765961376029877585743579977347535010063267137708610057419016450686953702658339300012968561603203890621276445762896091590495017559772019741958690642169220232070064156205298650812888110577162617791957295587680761871456894463407773270036710359314573686556346056125161285471158580565443657865958962230739396075889257117267341309717610799947249227622545299031703478444961553268784229985481440350660771826705886549459806969964603190355433729809119935855219704849304421690870066785250035567761432757634996859938452978672046439124694021403190121992182315299450023380652232060279585625250341390941669304421948446393783292052978979754908362096931613602912975976447201635636252080533189306865196954939911498767669810136362153692060325974069140437956830231826241473972422095019039105452147599982551363579070233732740926645203503063651995729515262872688935896045815927441129835495548842337445209477564086843633701942443590209232457120949903370969630080411759412077464947426368674245132803559007070614836345930723041613564229293039489213851810882109368199364625611274687906332125215119306748456611316885152830373112895006229768026376372832049296848776375110552073787771364759614181479663097592258379221159986157944653116771496894336953664841239630928657607060479548490980237529727028163310003634220967172021466290063168916307920032712672865329157350904666321303787555410612793496341140949749790852730835433150894325199787653989194041075231476723238828142369645528374067423480641187268760972608686278256198842114711457682421014534630020804052166973756710789741112567099915972728490028715778383589863385244221716726784557055787302133586184478377353813304448089201987275792744657515273210359258159110105146865122951768192474514214766999663486421072283267918719577188564313470141671937823755077787504403131244098888862826640422684992741980889993672741752703255295270140841156332280059695323531758111999280542657056511155104408689056226869127194989942014976576581566193731944474755369533043871908895102399861554037830449082331196568656934523612812974296007529382097171971671493229258276087567726089511224353262297679180807773859979462867320795237489993763242790712387358695330682515817068190123028389788653384109844048330676039434150647656407977048834424789931531393746508595602266697063989352291877802504636542295506918180753481154299984636130089826268743261338104958507207212523614689799302472558844370680716762006783542810520876988858168138469752181721753390710130570490146378710752938255503924744924347764633515776505203278177157742165415756755079700538082298619013984419767838854237462656655779863740570162489273326292105067138266386097746145580882350678342435383320973122268392092763860737047590631254867075314437235998158020529843623089926035839034805802700645171781775276427031834191549867569605920365802588879468817557714344406022190402487970544064333121372600620039872320462756415526359964996539342565906483290943928082535694142284691675319931249746734837156246053045697083847456816991759381881286847908198823849892157167382641269335170654337439749268371391601595780709354003606195575334405302380744673401744942555188748568634514780654489004030304363559356453911300699667403749247985670596384855247420522931597261576629452717383357770472996033748684291686766450216286115869099780150394784740922421163304145240141534090662620195432504540069415150892208267843990510982323836414841718493449377863774581826504709515148004820453627542360979923728604091006088323124794535438133703189730117039022680402001681195615819322072394373171377373541521926488816640031930207345255543410974514501901337438588159362134776711516723567162061570577985908312646836949709642109751436673349406063157317085599949712141343609011822377743721324898187880821381300894324959650308607132438552348329790979758834250140588124117324885513442342715683043884505670387748508072468228434453989885955209104559918594396269313908941736431814759201365723031121660266740888609618599998930093239042730581791784797982315248413092344518921834359363584988083926814546181199541651833004017416202256893690554470715587649537568205533706655654736830138803432553179490862253081660854572053980273264827609647174958046588939752770527592257086049717366485542849292020059943401931402218529188476740662492708041016135473318553224756182126833988577437120490678709552238916106676114124152959890021276073331296630685749828983884197020144453168393749747608418773562044700147411879008915532770215803243066894047561082999035421207845622569575094353436735214291351187836187209156880868173326624156220246074257211348382339413176427305833946448177628734097135999587828813652064662664083600394514315130624924657700451392535564924080258627782558716340310461721628209509560126815055276522239551622002912670544743199617793396433885996470563932712201102345331557475155740849353593630647422881218296577709733690016080747568437869208845764760378828193757638055974138423059807530267395982676159840296969475786801925170714319660414139163349976552085893155805301760895155357259339233994228995713089723320104913645920732583294674987816609437364153473531852241724866663905711220722398749773405435939745608280204865818005085021413142435744347798643415318550837361564103620104286764961198812745086700040735157856245992758626271637727640422255265100786427439552892964591465374636102333449364606810183926574407309604175513261995766331421604792029336949320779299510407743787413895796819934540751867799614312196650675067580466862540047869448720693852305818899004463436391763342072313286265457974582673905976487245900986114108151439132299058014592219895740049343970288974491348669074248483820594022988427737655944525664395071120908237429692198599117364702928802472441433752972184747180049814180344449767955958114161956794101014200306474974377273870034597109605619464020004995208292526261100286601571521702415492942501952418787518450307466389346314945057308531257082735580477521761747776560348461660537200649393033593522222358152300078719976595009787519066860259738052720975216446547920748970440028348584852037448736425900506795552775822276528194656588570489518436891195743280676927467364889683864478066895759865931045592775035143918273109985779042440523723520396737998109842372459674862575200666274544674733070445732973169480556679528059690481390623815373121545168697067647949576913062297212727936406705320546028073841711826676467586156049671511302051658211544266429297100321894379780145233955172679002751337101438307940513643773837522451024484809900638737223830042385063065107724418064910797718471591899317279987464814867244037504279019833601040266832694950618289111098968232892252231404196293699610154791112217623457517305862482455493929175968736288400230668337991135617165476427620086346049949429185648325761077128394333129532638162634221181986789319550167437211110275419611110966988431394855759204146623463785320122431217776130053565632719988361284274369194985178825092203246640768043897887575843362306357161183902737015038269185787903633391044306010332816582620986049348535267882500940496886483656566841814243333039791712690964733772576698425743141310707194649876013118651937384283432472400899249145065479839466720050631374053405080478178187398078228798358729179423701977105569865851635043156577383231035835757197307148934390389649841110584758165715946561484196257287872581397925320414968702483755535527892301835117606250245297810759018342458959027662758921118134195255049947971092569994130440390500666417607720777872769881387131789040137527039903151626285787368647352496767486501922207512790379948803513840639720698087816940189210531650748080608923571772173524577864506335803750855377713345560655870871928966758763202547466533480350768119821909599796697057033622660615441182124217270620822330626082704513678823417740856266051016591344253585424191441142500316316194155592172140118973706471078174981803009022709417683756752649819327418025726707989753513002909123104568359700040058277012788657676162678259117667495552674882610426415978950555831946636680261488853200198391704619989207283731202216912835333340334136768841216335689730480469547386848264155993951207223846040551119947538983351350039448877749120956573065674357511529770113838746481914371029300506197248803910732874423090702515434317480183738823114889840927013193800111204011018160041420430270864786245510202267485123862599475694388661600315779405770457911447123962731043934233697166523150755787434735247802355281408447256264974398854567574526946014687696676780389382516888147231221327610946118593334593830690283959474913896342386460936761339962559339952736672508501755605032902182960821903032350724387062845052947620709766409340374668203397224462867019521059089993151981672561897079726674204101482075294266174732700985008391979907408765423563953043137235846148153901524791059218027768071001816860437062052409576543846812969563181062697572916255342726659386640942785627633642970171244132833562231636926023841153106763877604438247648114354707831255047270759922511121478353986601388299692339883430818595786654348545328728587956016993273329388175647239421700478956786002586394771123944241367336397878026158241028551036103975816898790261368911493688790804557082607571532222706293461037612581498106536879131172288243756713588713235045399976169880596910864666299548586172404888844248141890374662013803542397856798792047264837004765083431315707657306210083420748317903178127325244212352740017062229824296728123083259825353470740440609657953252820300937372600138963733683982533572034159422142327896224791342006266896213683464164037983726514230162325658653242926923704820142069867419685623058901636799335545406178298043643276276693921130725416088270114173435770394605781674581525342916137987861570732992797940779560948526886024143957788668979145501614388015490613191544685534977078963401372360374612869967723682097967954886249842742015381385222654848092901493181679190193479934666222313400150363822586956023558656749499631825926024935891803496926013443658235354156047059081519690405610798250141923048170405974233902316883525182507276291570864612836377540856966325480470035562708295939689969620227465429611866015826252438336009625480408584346243157097411433265564208634485517834801378346328133900905942113164312675958979263877660157954730254161084277515941689513742592737501592297595317662655697526803888061763065853865606861131025761949370013051245342208764459148481336593786562896370635775037109194954968006610588108318876908219669231228075040064434296182599702811895555785309788201402092944676440225558031556147465088140198408389524232983016430267827182657816118435970653216911746579355362460879876214740266462020679224604444264422595343407169314076486665254935437696760449781837098621168783552534374614327801410724195884246944953641932447394714673798905783694006781647029368045619111090420712752085531142585729827998362859733697361723122791121991743870530376002084402933554646999781913720910603559124473190762562497276607565395174254866049558501806971026411454623231790806090355364946967164018204896431153624954044033644416433334014838095934754008437298522186990494999931739183317771828091355052759276593477202180283480930785885572476277676716971066403359916619624323229159849995679138767153167410761397417971567248751398181965304493845962037416453804427071047219945025977511227556170766093614579645827801987346109396754643665792689188105434259740037747566543284063983267339569562202451660272681047848876518378065930374924944429326116111872980941341796344260609855009432102730872560741873837015527634938702035950009130623249077167798728549245931347251023086652552725815737456038153759611803784713077771467908333572741156115858039067860635945229116086404120996537415072685772161237896237269008135885216628968064863620504370511438548050118006900687251071521830659661898823682041476554732437447632057370714241274959639618226046851181157999270750459239883533662441504984338484119888811184989904321484948056043936330101493404205649935453611436140539413516782969203131700938639996785875490799332926080114760708389750419016163508203700882985935449588476053711689126790990111777378727714979390198151020336846847147498901532848698234708269643929015051955449691538402337166111757287048740355740698946934813806919047262744857976216844197772655245358316390105753495881196790484961629693342730104064893402952503034933977340891199930705213907929040154508508075049702575609437563997497826495279093815551132333047454284618706628737771247989557331284951955946865267992497787030001382436159163099023959411193417458804360382033150341622813236202482566474839207655768120434406369893538220827076716865464031345651512959848695469817208113410482178329055664640164382188878445620771847855943306267429096680964652900776819254431845041234219352262994175311256290885103489393995463926962427516554827451848047282676257967327699780283091812988425407073196986460731780249836643467174300414606475495416241702772449891118948904072694641340680454091731599416236692415650624123661925361031509285560967975874720918924980481825484171900755541041870607254290477190226632672066188047632375771533011551411311658575790574659744194421941747159881588240674005292517837389027044118549868308050842589088748590893890189924689561626168600434000807842200575107934030101960553319785259315768087460070650941015013239876564635855326410515204927024452207201729053058074739388399421135424749910954449186676538620585379876872512083877528902180000796765928643331995561166226376185980125323227295628894141290081709424883092212867521265993159458085148817238986943076652855526241287537542879233529978332964276018953489898965826537871716801823137615803051445508778591998577606540988288527045359974780026159937911420834685265965174750773223971090471741846499590513946678434325108624039165835184806678456650234882576589099030156567324332140277195738033081224682068704755523784939578591282193973597497451648962146888693742725503603174468310563197086607819789147609532036332050279306741726720233078525499436054823735402355440472130440365491989906511926558387779971642174486908574560907266849188782366403198605960000356620590548437253184120410565563678730404291123516730769717981361444266695951511405262553362130699881394392712026142022791692838980561408429795697211268351819104138397420974711188743810210921209932315276349649185199125471189583202344838504369780947168366837253214484382414373135502171523030234627982729198907113595071082132281780113506001888300656205108085379802270390466436767309704750874298648203892494615418348026869719143332955108145369098027958850982894087066798943897069284652448640891671433560020589048267141007320585487980719717864510766280706910460744304467375668963288490941284389251008384599415192222723801267581154010221030075580483185160044808487353941087811200538527545423183535624163851369183815284805280937251311599320785719350138224117466619501771270065717761657666329237925713795429272215417793415485751984424442131197060260885581757221156515817239313309923271324138201163934116112600765540062925618617197858626588019013271725452945917809950463966738464227614114150596061412519209825796157468585900070977630978326380143275453468498788561703238259132508957340099518693657549881308025354348537843862030337075677129042512367575430645738833512856629687244170195551325965178037887648894323159136156787235357489221578347628362376548377158204164198958124231388994602929275239471115786285546498777066658300743678315737133744862474013636757598981963008868000295829106664085398802122848215572922045956672033607286925563528409411831308795909165593523973220501564757389628365317269289381893294670424474055264586169622996587403467299213431126676006671847421186278499648545006941414875996163000917636219192991370675261213273070732536935880358729206279297617557527011024508903827245966076873660296198039865758831047882156200382495256652814058137341105607634977178271176698896448062214480544281425296239224557211360668930935048605597322029812834119597072069220456175876407279298532802423993328722565072537241293925766772873353600628455905194513445913431565747095605525917630417978723481838944552674483722588480281607124026813727570012693314749039845674516445578906963004295396917817176047947862695016494484316251701883636147167689287159006945350875519606893492029377262937766592413944855705310730447110992304545106138644390843056335510226438042673505693055991150654283110700953999986886970096177052319130613413000291250748559396785657401667663033077506964152015516270623570811107047341760411610971609574217712419739187474143264806212771768183170933548016829125317603144612235966906175119033005792193261621322150287161287835787100286752975503022984206264119348400471672951565951371863668102203028244148233417277554415174159961065618905711108808080550575369874127728169888275208544295414370922257157916489099812509184734206809806135084561819139336414849212540480572515682142750677512410266865408470860994710207472001493050437826310928553370584444054369909355588594767749640482336879164470247847212833779886902845713548192356569982848413882971943416729095209733712294410755438825065891295737512086402680797483313332086950368459456234797334572532388641525667116965135388602720940100336918009850449272963990054157018075863164771938458447408923305123737387818525710464681898094449706600828450636729878710850649980564165361979830661873522559247978918441942256162543202663284282211374259274709813003106785326342892329655095861960685785135132913514643096670403885313584057214036422572492250786526778244249188937163303628548054964931347492346871818271961054141456311058582569983732697914296017661981545575486632314751300966221111965774526041926628251495343421410785211467144571435017661575598559491831112301273552378459348003144983637900396607871081555611517982218538285607744178269716192443551518284608637818585165743561057629882258814287466789886478759228126196686549226769976943701933985024321934509802478534023253654394534349745533398169089816221883619073259929912545193869612539842806318872302266181481752428576941116565124990752784431238307625473648996361096896042212795344160998658678152766048796340911954006920654216453470041966431773070114202069143002888763848056050110764372215149192968490564669358158097356764951863131066040331558718312031888045641390554150969118239859648957755751172791969657422154998613512301734864375045624192638354786711495591747530157582518093714090633615298490435943289557091583476652065121047201349837456786157079229474685949312932185442250752343410972434686758071368505357999443064807311085362126207078651832459516403118116927966772947755742159442821458059900539656277211823737478627189171866194639992211852743518833389063343484340292465192441606725369313131825395004867708663072391611220388768433133958406220231020023129363399423438368762195176357029617998186584095432535023896220414945896333916870012716659263635818216141570479709655767386121806694585275637080030624650513852254936853565704131777011836412397435269272201184933525245576292965430224992904296978417776139898896867104769408054536334917043722362432067053246874935819576393534679608480266700020241413000500077540732016821018204889243962022129520039430707427777510578343831883918547441242157491092224345273521807527067087920849960110442697894897150917172669396673843348419881155464543023512761735485038503709369558843404661555761607701340847368661528279268437262878403963615852125254078727295618174205936261306904657148573618916674867879152210699297020140728405150665853920460630670389650484056674064732453170860414234597402541377054966955503920323556978219244725988908304645597110648616682962780871085734373331947018491878048426550637984245728756258507759600945725213355710969372306258977525470608912024827094932864366491519410864040618279545132959259297624340735777389594316005328122248311367519425946307472552961641898549904928239716964745108689587216497163287624169210621237830024035114022923885575675045166630160047867638093031026074003831766636750260505797766099957697671253767046616146316199507487349162449875898349568278353119201579895317030107232180875630951981659033263415141211533170632867257738081898249103476316922469682878509877188599614041212682546949094874953709022467393874397396517189532294838279757419973063751513907041250749014436427290068684193586465529481290354068956730006307866113477953045220885260311507725251678799344813417291537093107567542016651060299806842075635770863447222621568808810104412384327354974807778850476086640993228986123719534691309855640051413132853332939611963672673612776683767001048461939065339393567690574263185059749785227794809347650590946548776564384076701560518711342812774708351890516179127466816398243553628372420070701930748290548415250556744023951171273846870980757601060414634745264062151437704870751938522683294022147037344078560799149932190367789996145487660747987438103814242839661151806862379281859790413335489942424222069680181893219760095824164028908680958236136298087533408087588539535819512810311420830725630481049584046283354875898867901329466181020333745876950271124635035096515516168548835678573993813313706393643373119240021519253446945446295148807475136336511286247900258265925493194823178286705218278023445272392099854517313990997781207729541285512857611340530617829714537563348057519437067863058081117559962467682139120378706747931576047031115648401719179661097252704309855010305379306458676737010353971638060487530644503088410150523917139993264893934293229454022234228770955124088515401706379897159828863552498637074684517440303578028899186078318798856827625451055266951230252458088484871840370774648745406247023934017699239562466634524318907969530511431190009792544644050014040003604625151544743900349981833710329913065110784372121517932546854462096366183763700284173941634248734905771119119262805637511210123452670221818136020739959265152231315560010624322583897369365109042816364251580461937272658977438661125203991354581046992184893755174888402864997394346431385179287674315531611484776594003489540696874358026263551995775236189066248473988478458279749184571749673357064058547214095113218328050427933044619278770468614831598500968792053818619159688195084073943956036020971498594066229214172626540023039406209643520451945602763704181658470504253406251160472881743805847007613353087998138390831854373359651413645529143453248777185676910199775295443650006104030864819431776490866711962457982399660757187765345733348194398650553009826438252492055235890813979100893853388377905324094376823244527869394049408349711593744652026563772821271205254019373095654646399063495142418228874311366624591104186917936739741453664343896586409755065880400536848105102170153270173463060431754769980582525769067635531043737958761291025856799080426610046648614381516987186268218553215506813188116980541030537533389698831015481900985740887798336204846387630595060453557720569671602549215034579952500529543301223240572927571837016622612501397407678072135205923217718224266691472302127469153892385539716698883867676697144454140079901569348882668322881551132517013696214925214822545444456264075714359821970242973029503304040025902998157885081379039307930348518827841706156525309042804462747977994771048452693236592145887721294373077701590866327165431080746914269669293784711790697924015995934029274412105283780164217472175127249413957923539811543482146038349588695469941339666935495961408379242667276338179955009956254902727635940252811356559310105259190448235581137146181171696153028638690463273100845934628119489248607589006682012322650356612126025597232031197846719265852673440863812034113211454715388365108599577432720072130903832407671040783248439296523718694409983402113041422080123586167974869557681118705206253943362468898536823508704686949607938687204171610623343926243549064640901145182364009072151358148499853652429214371139871295153958133178444797325644424881235258492182780298113888444977643406333599888648859984964627039304383814649835915454486178351913047106878545308236969275551588496987405169366125803345699333586190525399478641463902448407626228639836445430902177173555731233134207412107717761225819952942070381128571001102169279470112609822574512893175974125083789129644012749599922356935162124889309330945189606034934080877468752065760820186360403346847445139809809180002676997346804544059790703511526675235178928209070620467079524399166929952275036810222592599531495227004869187285390958578635124396752620447028165704642378088186975382983164954697974338546612634077087210740919553225254874478104186970262198532245203006099604652697770185768647039723312259264780120165187076889359023068410898923163216795067946616434879069781218939806105692836307110186868854318084254801978670531383460230798070435276413357715503468319319812356559837662944740143224188088240817500558826684617047762514098869225420629771885508984643958413273550049596963284935040800979872877703261692424737739042572459085192947595691163097818145301540634214329085199025462099609423116763319092677084952928532194110695679175534189116455758102469326529224372455043640647108237366310408786465758806947965310190323363288876185400583302090265570247557806181870012063791687420030430784742858575652632462664069083763093130504669402605402309645079244111749388640482861148327890697145789716294636581865229879670708110316805809419650510552485304474460082391911305147328322563603703221766785380163437129975630765477187151539328197853139298796585113558275109929851908643421036126578428733695550630960050740279697149012489502911955381899823694206973213675508143543515624474282062132983718727401408844902996065235589815007182139911716733830992309439927328371938786030216683590387503909914042969622235258907196868239101217183011155241998237977215461114828753229232580362098957926039232403069506848153646871830125415698982356771240151603140658963187115416298065714644196053052596997581452428447485712127262548289400669865747431839029897559105660714676072622605125585151637712647989047628214739192611212516562971608455770885245739173309846997001459169749783834553721113306897963791259776877126437999267570660590497945876323205648372344138904585391455058413699257076048707084271905112447271669957539263115108751882382363075389797986138181673506980041940332699481473537799901518348834071854860271657906191039890436304414511023918718016473711476589616690485360205879988148965248092078204305963266625813392441775739236585079986983889619114128117831195196729521349883794772155278596735217694262249753999840353021557566441335199024128234922643856093588890641429832510156297338106253819116005180539228481517270231398020666700796918547064062429818339564801415816475109621494380047221868692672263712331564393601530955946506135613311117322341646250152642727954061693963313104537339613151280078543209107901307280713515168594460458306618845792922245514323945360098756927573833875656519480020305431257842400719547731468246667712168578495553571875552679210461056981055163078075527383709251709773602107968379847930165399474495252181972278479459950859742957103823565841792803103299088890686752656222627316442333873798819996898001555995772848634649373725254638223118479780666345626464830046150113936622877088661462265031005857217653204427137737885440686017129377176001872566859132862385750065505082333277690618811139647985220472518821057473043004758586028155629117451886167803548773519545055501663034781621287103513568973415901766391250462072553773402039673524987995433844433289781092433451300492096077032188996542650659843767234437960660805534269206942540422605967351707091442784231817280682726344494398548426642565072258825896939743602540749939770333093629727730517355173354419284689317567410565710426505093592393229632595145697494733886303407083602666004705473309346887837961996471064968074387986717112497806114009654837825845829111420590396718936659047376056946782834294119269116915273702539809793151671261607313324011077253876838826524916608531760801518589411086490362821148622087061999528708922555030711757107918584244296951544540348189523376708306239256977969166019707272723611753966382837955594058379820698709869880291720498092329814711517419269441659244245645947929713556081599080535834577759389636881631712602442452846264961522032435654577433709398692098196487255055217500869389482291959215707475298856994797285019396795721809387239255146686224432555444171759467308503670798605796139180614949313739669536510795413276475369714182925225297176612459343496165231886647874795725893324187610839942339914546737024657830935260267712380077315306262832352801070478881338408136555250316703943788347269939340924204237184736703962151083246147855753250915481783867433228185827855260058358167427501591242655663198761900194821553730411739065128758454664670648980360889191080467354903697955500009475874362860699513323941570558589812795098420306728452678375778253026106229683736910192904459998495917140428784341505293065621386331882732713156286214201938199810551208722536595834282221907036669619061496991609166480318173334311462291610843328101752652325701861686906444089507765861955873286698858224107703247940244498545229808916618274777847663233683947305837517854518463928438802201002847206764948537445352467754032963953644764884560380751653606786203441787743671723331840193105571105730584826396658058145214289774343191740044617031724568336897608300362761145031028447878070253841595416072404759970062512338039997277257275159920956103131839956554887988588655420305081224405724534874854724392595291431592898921495524130058695655975664588601100016217376251805715184014540687403479198170725550292984374311085623092163638328152834138764691874454476478770282527515402845104008715353986111225902672677104101995426314825013310963315096602383833870018917930268250889312566649479924829973364253886273865930236069062837239425330717012375029805221431569355897334704262122248346969663859064509495497832800672565386490220776409677593258514339227916249433099014859181882219292005715492253824724300547760537286427462064993297428172313498683038237888959003266405703239010007884792233004888105686351605694169870948136515301700597826306939855550992971132727954615528139015562009407882476039096336545853636008945593563798866905553084891654206164390132500985756397046933546460189900425310714674038791482917688404249792205838164890673197719413319379594513962533642496019061362810203011520306317770358308832037881459876496670473914362113218128088497904982783711588372729096287946671906295381920815144119790022106076197474476213205587506827449121688032232293314898884649240936627946716153691172262436487757969699261467575050517213555598356019869389619990932333935371253288526131314838442978909412726842555977077322679700759672844616403742273848714188437026554072296779123376655702759444679325988651709596877481297484566241893822316032339403547402992150932279401328648327476539110573703418860059227193847040283422141333431149738632061870620636129395286416224574923660793234498856412190460723134730487784094420625080816592052333449077800303611235595448698969518091527107593971916887603637404330530325305157046342062555408217289364780196112664077506658333289837624717062484230185465560214717923652360289509963269472110341207437300464226022388056630247582905298132844175187310405516604067833986882168263621988761256828206279178230689774108285310702016025770615460711874867150491559263629030608193899076334678058270657779733282363247233501879958357153471300261676294329601556215320893469671650490280674354663641003490479243562196020547425648027664346061569345531077909497581286441451428826915538547685888604211331610919609404413984822609799102885055464942828295756724718097464820996577654459019426352758524847920853686559463603011167620798238077889089276872523365460162833953224349028102134729382881529406417998083840532170061021748198702723584410460370793204166963388356709528114815400614251547829951682523829186981165017676462538563384714756493012709238944033523225242631124783157877677536845481604557889707555341531424627271959960947582281768265984452494925762468323679956280425843865091100797986222858972486469002547868401726100003073142652550487068149609932148419382014983866502894268623900259866762377297267097034542405301025615347192417962061879666135368662106951903472995640617079119377425567870397621650949213545702222322207670808442017065840393452156211454425879052189281155657347809807118315857545786119161719184468188531746033117863038274856713275257460035816994379709992030361472860731319691997521661589430876618742553973641214191700658147630352352320517904824645605462257799709144418766083133314772830177391222779708618132257544417980409650697629539322415552536571211040799544946826789870108922224521249489069343002569950015781335693922373273058434937167445243730045850920643769601879266743781430931781923570439358824536661423497610987556242651749044822185179463658314269861281722106531415272959631977968397569949466907599340133303758141545243146007418229252666954966008403459624517622153488153291402428748737331022786689806923163937087089726411643280261469446135977973621904964872841857416134605972049115399387901241377063385669017219886962672852252364860790833509936659049312641112500149565894701417556914897158233470042191263766116887912623843023766543984739622406488807925530268196777511518536767916226116100879599777703927520622255190511866918173868397595442227388138907662747753768253543700904843551920240016364265453541870228000030970101977064059472958992466242935141062292308452168314521330431909565950126648572750036765322774710849214582579187828309638502811520477278059673352176439516363980516677422987966072449439503769949568252225705116645534925844755503902003061773173374300259304940731451231777171721977721823827213587535422806886362585819493713107750313391724387242719531885597733555431519261317499501244700198418663572675323461486248455225906013585680684628099765437073291367771542707187283895453729995664745033662289523767898886100222197087103973026947710721326416102363177536342345037039401685159094048782689457273285010927390219353955232382302503139147987192072839847111405965160933412712031332563543165302756663908086640690254127544203712846597478399010703181537237595941639256892682674996748680890340623617441446992715372418213686661916856963336235203410642924492256337585117185923906493137952952559544720969144257280224531235122403771274164494084800805770067811264581819340727065879331570342286889583202856922415235806072760992676119934401541082292063229988891988922377036842946369286329518241292260583908761195274160779659813669766904373773265979373005533319336557263683206641994508734167568606330953223035722765347126280789711629146547263004735811025427987762205066100446221407068409865817805052645380743571431554072614078334040072841751407293612640064881627603838777006402686049280388896331216847660180380328815376639604409233621031132345778038555982873217168371312169253394760946835581483876849037879828917454209596615016594372101639550220107816411735962224576503963856638097467501367965776358080919296274742250473869342791163152910311854218655778391939602946710369689447356050532780705591654430026077086734155447480731072300174251163454338768593415314593612734963330494724838966027536328489249087410850395142967032901346738218304389732530783903710239379514093582660678455671831355165513015039578710549997399229199263465380002328484381392209235780649438409115193024670518477791732578046439327935563139899200036031215430818306850983179403002259109580805786783433589081125357798142783659662972451456915579790723097565447257929170344066104675046940583987978679215280867432802989443317607155557303418465795731853021165312119007262317180330088304923505682677769776660371345075426388491340555365183247966473674350032976968616558344927320479301692677808284203721234338164181427061416485843378663999757391316279492683819791282065162381764968401367071727202302708121995001327499104813575333250836190320572431174831288705318393322637142345079548973686777718170105990613694670863431984064644493247196046201947971262220494411337959229835410484442349934176077604751325568567683797352198012899645967443935424949379835390335982531868827026015592731153553994543464522784302300472287722240844942300724678220867591327330267297941596861099910314232844546902525804366135226064548183454549125819014325993706767963921253208417630108368797521967117535184653255808432864005692406538093321016009823561780221383307656027090026296542192177343703708558621420557177696636762652431118530943680103555060875936215265565078184470195265479751759197004335231429439308366836968697976266956186191195824823208119961266238768813880171759318697567454618827623339642859877586080043919718961229045712432178298566447153413072081725352582019064723026216253563785492549277359364048384591044363496651592437496838009808884690337862761616526230874766726187793743408669222422060762953084411237324916476300376829621415841350334280737378718132202392598215942737170286137782466315492146479777770518064365741538943707066411459323933829247621183020640011159533237418511903785601161858672882885276694017078059456068271121260423142382144388327896239141384161127096324467492731026289771126049765255884680597937944203423478108670997216711928957930522776479507066299726579873855413638258596226882865382611302294521794493704817129498741077600941219862207440871547333466385653236013337016829246690267167561476690798756347870189571407530895275061205443486947276505806160219783708864223338015410737647575588669806121547641133522613708868241632965819765108504821344767185283467778935032994079248703141003519989001665100265777014265949949665782458545864184697748984922053777798302507956022400171223856567210906376954231086361271918634422538398923910010490135549735383577454353606755789256384179412326734878870625942512520997173271721934361516631313850716747169959548184770232399393088814211342504771234971601655342883067366651596497872407057223289768657503975477342773153203350804311934621024134239781698461762596229374300978761912205677493693303701136625215593684735864091605046279004572073981176487106800432394935519195237060042382078770339801091904473488068436909506125052225211918217777667018539532578998786465505501883603173316203790724141284207514105900653986027484719729109584616656866672272484827840992227256495857432030920895823118682927319031008085661656108599021423206384816109041287227039339982617754976267803159583923982148632357047841420347499111241920759037783203900473658624327699057183970727323433442351479927866785442991684408213892558226939856154459942769954332893865928083091061817470880711016113056686152096058611138868365376827054737612999909456762014127921107728917670924848859139806407414485671023825466159562135652426962642902468754651669221364443155512387740211952489307554730284208176338069049951912507514683834652701281946763328179046088962720766166617463292242183989622743927749541104498552097974592207008491821244631295427891440060255611313701219337954065229110415534959641481460579304345886226094273421733869705743241441456436504413658996266285634690574799493819082311259875383313176688715238436576706917389105444327940929152215869315971111677302893156201167154251719347977885931328171374852867125239369919745205659681952537294793311230458481601820385541029472788052100226050419679560333422822088332679117583267841032805573508735844093905420323888274888046726176030880422880462937056085386459435731623807129049272574984413719864126855297471844081341932213432235502211699893870833566906525205225009691794017436613229716350188981532339153560488217296403716328563015274373542124860318158755024296046282321230072082710847807280885847978281126544684188535639952191783518625144178879855914722270748095021021580271174676069709327562742044722633707284845193475748706414644446955794311694910791894816921729784117764340525863263794132468102583950679463518060853155509252071755422410223783228495531970709911684750520446856319580905117770198885869610385977031515503369074603997115294378466455038479095859146872711606322684113460665405442302624810776583920288422293006788629724792577555918089872255925160068252473855190809139195623544119469155769765790449994101947250202659611473722247702044500308917282546530828472309859250083880599893176760106370037461081305878205001373557120927890151653306457534010772283575229970092111100568343066029673034354834687550878136441009446846646681395794293342630748072234994918287307946718395482291471581275711538949174755728979096802359795068709855287321149824374747354711114253959239584623506395310469311571569701400705241308862731296495499061058355307177724971069298775318698011908634757218632254329352993965513694788577554911000330760789519382728074735864974813094928762536512556499011296643184975345998835868474607792075480520543503839784371326868063650714115692516594192200277979940018239930007032523757273741212563085082320967787520014334701760621986178411428334473146917693674273859484541826087595787084393855582995189487265100955833255082023213289064912037427941534976261998946914481753051287248719934382869076632694501944550878298800886273326966742471825146462462507965649738672963336590817615387151813437746254857302722908049226599657246833731108070791403690327321433205657822434010601881489298241022750970673400451260233767451075043422846049594507020739543033468121449364565006107651917937704448193670720980037612735708318556816296012622593214617265160467171099065247760940649082195972045820124911509244515491464441130265248932367283073882536362878012696967988191905078179098126967093879269687508586132920408706092677792845894996990714893935894442972111726684298797272452870447921263852273264747749877773779461166790361169728738681621255175449685961177905012379117655381456341463901662552329969243015793225353768008478724537434682075486827463718917800152151294909118384373269322436949041918909044160967096404840511775246974788943851515188691986565094055417931037251146665492667310251525276259433999048809194444154420879182246692364742742121203329322724404176712428202998435170086662610381196636335999496165491712091977041069662597656153715209125064165445888663075055015519847747326319901933741121529007377560348698172586859164592835218170736031927343177490889583316355889982749583235574138317410129802341839928865301662017656085793064169356991252238816911250161044158670231025738026193615909603040384765866403751770134317920469608362985429181607000100359611065199350401974291207300281394688624294204038235341486077880305833215574708271382170980964716948774119270474692449143976009632371989749788946180335695981297727240734940618682684677989051995017631039370656326704571031941919796346276361273097518368254200322780012605511142398712765543425656987313973336959306321080785404049358628072141759425789304936141216996933615882381125400986077755511341674894268017107259250987478550610262403514852236077343673683566591750781519139388397186143267749135999302561356658312690645839739878109469855929559299106180599746419108998926158334318283021590430303343114729485162397452588139043702093046069259510678744331774197555343065974656652335301629918082721891042055029046324302704192789804677250163913242991022872242415207159872271398573674320163288856646042395563221956356192501201799784872414697109999727422681548337664055815354122461663852016028387900252457088791018054393076443107526257889349161388681048868245009925777489955256876376922184521943897941483875935411775370610087422120004931446536557539619840305457720756153507919116622710259122256223224519433146777853991134877681802820117755672358262679958909540787744919434074307195955969973434060088040675174930495879175558306328372518058780157941790190039146152413829460337227878699205075856088917820849891512406956895706264814800597403751348926704909562142172255115713504557178673013134203717840542778522937503465250942048586803706643915632884243774393268675146942109716233945249368017857193109228848834968888244092774762068946650352551721346970277345931695081009081975707646384646739708545251918140827941658253729315356849510338582891384416376846016820431450590571796582367406557572264571729149410442765701459425462689611595538323915590340905930580738135163657856060651387393872840033611247097189688000352470530054200141550407367709803946347477622336501755451494676716457861870624848369373061793812267846361165261901316885548688672411400913892340504941757649248393551903197434478613785761790019734284757491679783991712165155896805022183938659270802359975339609254881049506875706013699696764264557074035251521882626508130391878731684187000928922139383536706808878753640831574850422998686442414431785295470865151336581957336541316386805297942994220186976734625796176067957541513187992754961775073542281499942580859879377786779539138706441483557530354202725760449151784597565392930611467807549708626628171590366399610012332511475564864873464104691210086382862677590613706564903253596135248559887524134949859385046899351423600846499786571412180227677694597758100255874415103321354996420021085631077253070969351112858714267237299331185933782608945371542005499075509618061541067916768728187623328903131071120393628986789015900556810270213419358852922058955740161318064483528243287830958883191592506569749952860514744908338166302006500409717288171534208165162960031164662558183144416806221522617873088168474193254110933213842689438429731145250353460583126069636950524460116701523931000168785048098616089328655600051968238836606389910095442943433138934060231689357780210358139126274514452399254849262573887564743850763866156773299688850650781143276358827944063124657089435592919656553831125939781242715820045622261127485234930343989105429482396011139135488719505232524774494453314020988311799899493501435304428444292135441313797176670443503866649345380554425962692557802445812385611018164102129059948065901171306025955092504097476231616872612253129512743131646108579720802043428853658643069167488072437517142418028016868799696756908493085974413848489318023673194528651766272032951646797272166329651728960889714391903567877971608050855026978076853444082333618269645823560610962365812632276325324049715017206717541886056513212018160780492361068675774103644053936469210164840150683806148512732969946068476430274969900843109235297483079654331817372216971121937686048192394093996385299453829045466414610295879571004487049585089634376526720947744742776399497318187314340508291090049780612276510014022096330958066965640399770889366597826860336233575302016937382932444096663360666805764568930062226549296329209625505155253587877722856637203994587452939515114657670718866741213289706220575959449383510522353903835788194815417351160530774919307201766507592573552821505272748381917679815513529203940104546101224754909543592425303370481447258513390932333077813157801932868277774610476542261434861555742884518694356369633223322717169216608279826769024019517925939959932479061620759298592338809032957416105856262821938580460524176635192669460533253582444389529366154649237073860435455215931631549524745278894635546428205046190279631676629481033767530268275441439840474320528451789661168509718025677405603616809392020560242407159746782860588696695301400787594551364333121492965210515201297759038098021892882811469810115502426777072404425296631136759437489888379968518210094594913129744203737351417656509613984971025819193898781374213778932538555912703619683688543345331448387275018308228806185485689454846426758046257570357689404490541800797398509075128714589063617328393798441602424102659471544307523586661561698317372485347488913931459701481311521646698453069484325311028345054710083151877611930452547820508359380853881790938874550112986548756854179034355870992778033988212377116397843602640231615255620273644739219866547209093899410737921261777972501746838136435752610028956251523703366383126382474225896865511759469759246681060088065419632085884098301993759105364542169377017699495451378769228552238901654968119127089284810775031936505977157498980130349746955505266086869701577890619575802055641986567866517717718053906881094516442548581808346217656791961455497780144045308557297895643280162428982494070030415135260139006206022708428464429468172088506773545413616936885348381396925754064439759061702571481153987941051743563389789834056343745776903757285699104034244726656858838060642214031232649277844243081182115735063524937826752229696675156150240670296015622226365064055178605361837826744603523260605601451351237417231762929342505861153662115982196170431736476804896635316901464674148608495134625582857068399170017893749919168760103827989702709654457595264836604928621158573819597782873961983174911436998070404016267592330591516558302180513579011512667651731623168633279092311883556308916269100590518453461713773628000788717791920412503382904382046072028409678857289592496155762277690608751021513061241955272539335852194396568791457517018768967027468902257296179056695738775751665522966259145644648887423815837604352918470698387435014318463232619559900671146564271220082632319770241104281042408869030014975712074145587598286263555846102214180547599475093241529490456709567435743892814990108727268981136573920594770684895270387386429140823159892568901065441571775722679548540012856258435511165479799770733808835692493775820302990388452217489771371270630964331436202895952281658005690245549164094165168337418787038939678642208088083408029449581801454117611949592593558104050666327531273279668023048786395976115077123112683763412661908059732853953083340856534499686665200160918166126484447705707705887816918115535158474387376926015794517582853664685465543964621400975828822047085966708182073366612650533490289010191222123375656694173886043280204890552553476975910653712244688261916899890100643156159113437636820454140018254578361308442738598040117432836624194775280908156105172709502902904541060689393134024291995442604939434288034328177409319081073339526758254890297002692272927079046919545773783568136398369468674291558512938088576734605083283405132400863497514764412659668586531631683247611982547148111043298977384266090316648068670947071068328300928031547474965057101082389442165010941393206067124450279196863949448366713880848829157772702455573385670917279523908561038897535603148423893781967432478283340124171616598079611826880488700788696526010551073677413143724151033921844974163392479308966915638108936715017283572922282630597065064096988711179549180525528826583881853057382470477213527049955320445152900671589799830308728085273249785101180442370649242730699388320480991954341288414813206224548644658034305435872362532967858212235534606646573974176407027226118953664596104364024699679801686981450925438408868364909787042933993727726254202587284817595894983585095613763984996658987737619070707487965022752300357166403392954036014123901383066653995829031221434700266651490595546260413832307445204921785953510340574372078474607217797141552470205695283766537826020359499699279225649737035921632653265070201131898502382635951807984596243650446075607636554706281953633379182703993318107890969809087575295312030938872132238811086735934480899691330635342063481498103921732060962587143952425302144435015164640102873050192760394642953590904660583333188479948605109335899582973957567311844071580175772833329837881831574412417445000183556289731600023788686798451517230463631226749698709085518374613691963255010060432437385151126955267588212435639252140280484923329525885861304792611119334727127426857371979423789765432880061889745281784248276308192580675492636281752914724417486027457693569534429562143456085970509639465611713442959105122977739870850728129378726891725101711506913828001563101877024164247918837998613519149824000319094881278195859560564117173259640815373009968874046061619352204596634945496453141711063607588993944401214889722921350057443140406192697437345844397048098912662799953803868698805621766966277932097709720412683089951542226242645679602258159654040931650128028892774324825936788700127863173633395660055717573648501952231625632040232358621864385434623286840540582593497712794933063773532181892359233880894914713856694578602296768013373571473446883628493184658693411711310029049164886403637430156515670792491987167067909430032281480830924665546288673776034806459603417411482790641130005634768150462845431978532511350886107274027459997643175865315218114873781639186759639437228207834604080644703512031181371155300278119889003761623769835474085714256323263792786051381287375947800722096946396713800885032087093272543380026800412118537870195560292549231053894458121446839288903520840198920117574599941045326090629144709341571388761837335180779419111704794595711918356757430139425398119103698938163529154537922708962222443649400020089699562032111175534663852140030114649565893121385729492762431163510523283274716326138954463619986985524115758669976835464461200041486703241946149403728524235544137610824252344470411619437891610222644520942636783359769808452647825109376298027536929353590525199655900134188962109518764545596683615710850233134636438097091643311515423715107257938278816235411642423939935931819516126959974215915690862263699901639302036086579497239379227938953546960769559168764974248321860593116844163759705755926042110798090820660851818809107919960603165741543680338396327391493454459536029811575879603425330269882924337182737737632297051397434984529052098094552163997450716153000936787660910563090978545175669169377426618911606262123796286259478798548861518298544497397191034667268089502916608954639917034667830502677139889481354284820660864414828179255036195352115932850691017052700496275807762809494515473138031210727632815995655008562359628920886344994823479426293178874813052820646862817310082950662475519117361594958411959783642696081731234125428452570230161737624697731925180884074657113575360782475007592999253806822083105394931610584817674431080009250553795619313887501563490204804380139056641533303104349501612349352817101915892908981226783360119987432657561951748178207836432343211104331910800472590503795201625156252148509985047704480508671130432451691935461848597756401120917189015198774766521869449105582200652870907220366765383019739805456750771011376616602119036931126014982705308375666320370119425780751836672668635010109119365509872500070381754505687032387945007297104287887249418183090391794282603735498378514117998645271978913381881331125165675483486601155788362670308010557942450914959917747855627777092948203765319847991655677712018039788930438423196357084262420610448218634645807684275745243331291407830977636682386719684531718795074182405955619222760586812524974224730192463047471906242340797268617432576452917375898856782021735062764428904157842513037316571393245489285538106953695244938769515776183460217209323939022185843174672646475772143571463660427854423617846337399840613919998879314577610996695399757336155809537157114658435437163176941628811383639548537495683122870910572005067274902872757485244554932279702334597024735411982229876879713011862204923765398274477409209839343007839346326086829686007831260611988512680248031628007265565395777904396670366257021119482908663629987715285147852379421863253010729302338877409936827295950832761159543182398744087047224506479397919687676280608581379744627079998204351978104860002916728533627436002557150352616120877293781801463231723563241262096033809538054171203773181251333974229653765750725984179817809487797969932467105777823618444787878013370663949699128958366319197009035656543636074250769373182164609247233703685722056349672374374589899656394762567157723281344415303968191460179106994423478473630373182787469895962932569692918862414046921384689756423159901866033437281550208533512692286267248779704448712213025090127850400628783789094693662016213382438794952425453151909685693092687377541621569716856650956443545807803049610874504781248604566941336641071122274969949826751578898186582616523216635603805096246121927818351649999935400891859056507202903776368777076581564551832473964804651361607274893663073034950109583269905560659830535568676932754426433426178285087291322538676719339390419582948417083909776493169413027258263455413679312811445010031056499277861767854102911486325329309137136388825132017812326684111260945072185213795118004212145121819756492440881325412330601138818834072245844573290090411610956319395719908215072315856243438777569543146417669927677948916536448100866754516145233653668226402064712191206669477111167995198332861150718598407816092422963381372934363042484729960268373778769425778314839922201662811418755584808960628575532492448231976690462086335966678923440868895759617802995226833425585896087734754859251870676834206310546783527567595603105618986534933199587540048076188007895248805053746473691606811160531932321598421642578960358414937075637964714200506497472179640851268447605688630471679263784183217589187596696882267591075232961833562981264052022795516745299357363949548494093175492891857544441476678579667366315984541335603608447838985090481738742777740204225523676778196342203702661325270170901830161711583277482959924726097238027754946918413150843746013912141836529748788382307080995897912676262342438950549561026568551622308146538679620254192106524816353350931491327511768637871676989682537323468221428272443846938900938204412399817573632552497008997470529933412395971464300215567324382975910487026673170605281596760622034048349980023751139526038060232087142024479780588379552690563410874284132417609739900712448544435967572992297676016386360044235273163667019997747314901081839318305673279645838012006839047359471336778643476534897882108907197863310777774047136485951993280106112734413380677494089702126405800387877615430963454419421291879506783154424509951229529401279533995553102878374931585351362325012362571443461923202343225769714933702487459094337501453817960689443302876916519992893213891089632212278865318254540187920088782713195996304186320123599012002517711094288159661194578215227699452899570007098372745029063859835287580301741738957932753310182656654473390561333934038560279735119089716186640990598697101964401501761360906818962884345658083218761417795695973843692077199177852110879258846048132943985546569063916229153127887302414034312491376014301216440352248629208005682846323744001445329713360459095770532636552186719498469294722739303590886383893034550704496802677251134915302708167804764731579185737971771619335795700271325559382155751421427247078690291284413751456763345774474471186902238338371536425687895086834110546020119948684604720202205734967260586972733808115216076940138690963049063409565057372046684054245531510754653767727173602884902092111727335367243960224102640766646716007495356627244979392783465474685129067141476160342064153910584608789504364990774668878533228818331515178748375470124730966607461801217314064662847621475061994735183585702175539076259410972915622135879028800648981033400276297040861791751092165830578441316774504797974091443640964236794690703640294078694256214562505839026228101018749324205010597343176144349997178297135040064582039461081603611274053760155459667646932426572828838699356005531823237980205559380755557496760825122589851985444619169860010927377381247866527541873038668563282148827432146534548116772615858984410651095069992699400149619573347332348403560244369334521426318783609423774723318890952733379121963977611084425756893394001318314902848132634756217460377562863438525302604825537874724172834445891470243405759005616764119205752942434166255717035680852831328425836286047711411093647132649796028314081615288560970602932254785515174835543019344396720705188440558427139832012059868996859555576628489682424360112896965217015757463669115122931151966167184117736907377502839151273751784203880230106403895298918733056792429657030450659761292001021800506008140602895472336547074508086736793180330401208290186878842358283881377455100605219712577622667528567886974452288555916146352717579462981279025503864964280430766504176308401116373135108531324140014328990312159216434679516566051801103563482919170081105139021594666090510458637852988483501438396863980805165405761108348530912569669791629694623579861833856673346904235559102835461395240376218584920899991594104989015839520381981645532219437309246009364089330364074054147211267052161796100741246705185685785134133003232188847034750395336527337908947589852960415737392622542188844032268140369818588012826858020277549267393810745026562527409211565572218800917984037909958188937715498684610696674140192710301646786318466691545868020164474245254211562226774849977616787355327495889321180839367140327971068433333545034169278026819221001346469660043942668215853694815751382934522561019874392575614376742181349374822697338471223366352889806289122149327199434324319539428766512346840740283205785219836078620558974011543820782625160819781929833827792417104491894426663224385274663359874505245647384544646534634542986245543156589455842919805049078237163391875500048709696309866491781890368240878625886370603779747252879468799220088751025947810824133382907258103258817913045230409298006350891970232642307802665454555771666209241080972876822055819270688407535777058554659043973802348738447809393008271270932134654091703662170257014922454213409513307187164164978271712943946795059571782068252951429154681235746132013572996014200344601283799340209120583609466148558754679341978959509145047958749255385358193857917722765713794766642202538051853495731337235951930178579957169048733135004897997943123755680875163028841860482417056935846203258223578484640491191436343958953489883153197707369905149851451271875014639057570435068398034457449033729045759885032283059903398740260036411705102839238627742356567499258136931279494267441681156675902552996029515726988541442403619018424115837816076577207176749002588426655857363442860324371212065678809056291477285631208941760179060620426878858787199964942874414663138499598971971202812288990100753113162914410638666921002173419629888176760877615903947299362441259466634763290711289322575365474767303832360803963066685008609195245138860533839139337404271911933313997736586507971937252674766285360618604515133365114357391355007226109075752631227632969138659079356162308599040962707844599683751081444825376036537015091269543123985490181314749423079553937386348440493176219983907197443125372845230509306037861008243033039529832532279669670282144629000293156847252489100404368638383695949597953346175255913431935323048049238496413132600934209097339565458460765916350184974053790989708042027693126538227537640718372759046028577573735556936959865623210439302103472833642942437930840564015945038350284208739413189591207371827406718974560414386922709030877278964621428283338259309260846684124677194130970410453103933056083940713207240436797790369214121313210913546462333868182440206767523912980958518534395677254739406630366802859891588075933647349622779211442536052575525390692153875011685340051060837148149620991565538899406360247496981164952867386976778752336682275084630568821814895022371778927152165888956546972273098228874988526421240914623331239774323391990497376042108817211720373462618202643880674688330845019529777346426970868347354531545807994065923357234394719631870351046038929386337928669231684848486393596542644041520824847810471773525279595792110017478124686537430974108150939703956212432269797983961072081129097421157548742249064755119172275790329222478803300862821685430160825130736844228586155571679626215575676037049244701926172260404584181753731290150922085707566363776374162543508133567628576395887539705612517527862334514501912906747848539354629767082116678972948624068958479657678088888403739303840137419377419554308643919650264981289492993273667744885694963366199749264786641071767808064703314211580905778526711298651283264942933592036790687306575777841930613382144968570720956440080786332535896914723279487473911852204529732595144624744948455758357149406629546885334531897125210711363781102096908054488978162746822522865549905082511200242210305639207750527937930430061433926459144918373827638009851992224920703883228172557648347205651651862785405348109929192515765532996132920853682197218190088693471349116204134842223115544476373176180552151741193260770410840800758188378308626656464888622940064737293673233155811915429763900119868253741051727481683956097730546914432874461837944445190704885147312560769027219219200834531933983077828523288047386491038087803246476200875456827222651861021323929634363868558445858203063888245929073696639199035709549547548965179469305957797913114965450076043492655293114567803991059183140823797886086349127522748642717078444152368990420543429664115067711023560559901925293965609515834049258988585603369630845771723390387436609732319920285406735943762422574217360477843617926697552245775496394816244000774092351765166337681542571355491493207370665921222173661061584786792391420103686034414389498389329498603124889280066368736273261747885992195772920217360946848483654073803748461963096016739965829650272664501132489718924756145533977499293913928891966117723500291843035380408380837216711658457495211194612905712234659906382687307454183272502539565776286953418565210098640198216043384230943625722652820096365087491700638644500204715497710474638351279724282067869845583396362738162780128521555011499284926795069182050939215014985958952439723090343067674763062337202203546721270436637088511012923610774002598394037895980666717116157267789879179240475756752757057397072161422781116235140698460945276007096158618279224277260394872367727571297735833352739739127338499945572577892147381471072716907900356690460466998117411199256874547992445710771611340423222702731884786188991743499249927955106862259493773716975566754523511136684379813141016170755411971762472446038677514439867732230302307773682948655935321583062131487861197784267139584753804532027353565053824064907170854613464439566231895272071194795486256997354378832253903142917525383515340463559322900992573527976898641780843889392628111289575444396594029771026114323152415207023090400613922967888883657939444815376834640350376120761392919007747992806243819006073441646221899327837078030526919446806067364521939457575195357324430513020191070316211185918034068466015121545703178888845379890478925844353577627404037962721718135865133802205385109481086750716089432490669372880919873020108279793414678715109879110314807645549057986121008872205902940874398728619160483973496009803114330908251597247550964544205247412808994561203052029648673989218861547136109969430615859205604039075797581388463259646627859466848926011892779401727852858281148171639123202310859123111834704771391518102620947484829946744707077945362181805135629610186415791410028621753061566131063969602159397190343376892886652682973140054862687815773941084689288936820221691664510142393697163554802096944427685173823368471206553102798955121632196428796828676017985114150554891917387431110452267033629289082786784593211321258026714482464934150811305730967126043397199967437173167284158925449979906924238868117111738567001438051072404549991778836144512927306872961793039032012730366866770739019028414358348886945950146658294703867530595426593452725682107364409738317776150363070158950491000057984751315242825302039701288858057920020965426580580270537996890712078762793427975678630059642478413822724040202176145981576239821139807683192198446569575646532149389909083812409734045576106566480208810871861986701389418177245743456355580799585774963637577350653186792030092375648504433508604355128727245823453456138896389336616083889137621024812155422716191276230671738325734640272857167412962988127486597472010804185487982550705753014235534239311942458185624655022035466087876100382964159777258041143724024203557686782145740628200377205453828025068732510543919773889312748215110044132011410346127427667886393303318845230232236705898074522515401899248737661322464048590821829853214106005160559218817002034546670451306126204968822308258581840757524792163621949963851033694549029123731547750464315255087816034277583499993299951440260649097117100359558946636200683278884545943999985601029236944128141202660615093572671940687285372467913197121446583732351368023324941650597628144031496656390581896378803415685912365296094366278880237775228929511057055245500388234996141049213057529491166969919389351690743410805837330865710843540507387130495177567232960308693996534767045683841670132357593987080107374638040447001153977646496433090986839382396886025408491416187398204267870504836425488976559252141044419205976945911004657685063549986540709279995469462813871759792726632569112278276120590607838516955613809800043542420558957426328195475358959600419656913745343612866077538453362879956222812346008356471513809581881530675895331343088206992724700443474419287608896616341739975231936245854850474507005927774071147126905496328763058952075455639921268783817926440572340462520207920717802469449488505668842900576885937243324324147539952504269981675026450836109134957021907812526440166321176693439220797980696732079260486755971440789502947878018986524264048787674014330016939329157103077732521453515720911490287173396435272087756212598918534285316248951343059679939704778179930258906229357032784869154487258618034661481969742849610420547002110056463434142523244194609129994162025930260663316981965228789856702294127013633720741640934804091830228685858409849878946575333851044403827899119298799544283307708645775935811490380807416314017113186507581413028306949964364051983080058224119530621035554906841205848816806228629689936295224314107084551638026456214534854051055133108672015457721855726690919734678659091623001727717111954099340208340027356530797180844857822148580156399269525892614667403106055124298685080691000115507698045239775757400977565032851772276522819869029200194424782225607760952343411478758231262679750415050027849288820930808588120203742464201832875338725899371528214546778003018373937774997298626028739587328467086697527628870230925188918901098619231735921692458636113271161946062844495188949332658268401477313999356497773812133241797276401123187179269492543831681189711412352494346346288512566221129880113167553524029054143343557029839709000114080090669806505072218003369878707833166092744503911335028074568519070592041012968533450422935445554713416767811774809933706981792079380235052161813256230023757703976974537162033328812764963188099926386607405864677583923960002991024733318853378266479180175061786365352720713537701503393619977895375345636659686852661353821033950342001239605745959512394624894786391615866447520754328782076898816822198380727850964997116177844516054623411371703106401329395739939262698751850373664667544779347840996831019831130726404211112767236041545493481723012617848399942036589509758754815980709947760735786197556738007323423930197430053632162698235815283516821483144364349854810498288416567449173709636436822652408713088691463693470793090345968904437475756166469994404453747096779393396532077325907166301825473669902354675565196993159534713947224881876195921561662132450186312513058251364725121053416351969250630706042709902431724415399977318867203016666027030326932453517516746739066590284496371623409843750880267934387676217937522670196417702131090200685763177832195768614846277279979080947066528321323590258377393143235103103221509272732762527522771220241126909935272754675235574448985752453656179797853472370859010071990098492521328437355981772262532764519461108966282364343905470020433165787350766536145902830075333313205966250416493151228264124835369452089267532344411518125402171805697315835433612981102094876924211796164044006356949950407892909754312758963381784984427796635462540341245988005981547203393417724502337747717881496548410125684996482201421436617430077736897589822989462539223878532432858350863665578541395313425539570118568150457752663316966173903640731099168427624153126829699939621594959854366045275635342909580622588504462262216283662717882695890905690811940517217084294490777792639419613047710696234636451418185651207827447081825345304862068032375245254622521316582863282812121430928837039052574530333410716402337871256341578900726004635297469883155412700940751380154495764201695429641121135271720919926025327314844288103833310296570103763947870906168397928650766961826650138110922535653569078549501497584825791835744026868429906805075950945490367737129569689000598812893433879102158484071375624721420383644765732286465601025659358487365131403320397525501501304201791683042021104123863156985879646039060598012535410601152119093535650954786375630888055107585459483642167766990949528654966156211125976726530300013117746363275258149338134594497255093220804931457239517492430666015915916388868658367655088124748644985147109851900845819515622165872220451022330137667147089897431426846932750529859147860002531660092945884377343849745103179448148775934517961284178933056852130670972706934574814699949624316056981011560227964572728106017499683329558847279617094105245499357698825120931040437501017731203784487569743157903591756900932865169682285913829129472220308838649648810641018147767129890410258329887213024268355985312970590158793034040323526736620883938820011805208151942651266230048267968259148632127004424974005095442410637867255312001405504852799132233149021133694464112255267773578701648554946635912160120122948967067245966148055129909436433701297388443187224108278932898823659887112501330243294195703392846346210577778014026276940471883697937885640115102416907210290693000651215343780825038662979247768127663091887524315698652812008025202394134005117442813495377869029887713807926229986476206890373083206639514276723772257108481818556056573383098157513412386793368220949341229668804743037229343228845884917017246084361810641567378683543551292728847531890735154185302081663816906683994236602783350040102352512645511804222072601833001208034330680796159681413311362947887943349447306048956977147736286824405307442592893552912018433860895027070889633216539314137915390667889048066816219446882426460201305955589079005206350106510806857370705594272658397375734507050322017723816677519640346124229188388170793718213198653307781552131694791076110669158176905559022000098914580509111491859207280575435946076109005533612013261516642953385432278336596301886357383373746332612671875062104220834988935672025083343679263141843209872940831898408518397360526217662650690908236095627476658002585006943870797858632111150076157024254491587017587823007681975165728362605482687192261402910720964293671566734253659875127508105640449002978322874605087955988716147098199049881933794995900720986872164223233212773062307785680734293187696986088171962426948545965138516346344400798639566623532259793869032845016538997244080419665094323331592056411464869284701170752533884941014640222334646507095408296718475772087608287592035423119185260519393569858699691163844793006320057649885206757295484194093782669780526247620652035599685806421677509106983469589167931721270844324341458509360744319307819743134226417482900303722586075655901848257413056608162875521621587606744576731863916688470043998625934789464123395746303352344894493385956699326297397761192612513564937002374571193222774667085491816705962585842995779068196814396600987887954980014471626585508603052203380207909244738698875937936005373595811732666467808053300100144562115765229698267726108940131300249136852701269625755505087873641202115608517707915488315720889506919576072540166464886129307370089409037830572300342397094860819290098372009894543829598674522013010221022810240986679364280329732551729462050623293077839186360986202851762768013339673548188913290321806975016709786598236516366380204027875904517342844782859361844519119654126520184661860062405482963749718050524558182360278264997988866581031170688207887371333239998027406696017046672419959674507558569841815978132311220239394236007018982358070519825132237532682543081518101037845612088001117204046835756822845696814704744369134438529835618837529806089503742142641610550297051709345307080265044332088700179439559362098963305413139910873422997562322371869161989644502481716514122630422454811581211428478680724244826273466904356907125058711474042378694776447374744993851049128491876939039540483953457475291426218914523469681088450061525939809798890496824961735400628064094490547455420312069765736351740412441417977522340025234477180100053629863233707480352916297951560696132128027683650080149910253991187302984092016316430045247354901330934421343923424643893335913554343110459085418589898797869546488406084318067694614869877284690809369836962554990205827266251457033514786640968723934304677117198021047237083814980454728527058085959659238656663124172962092114827682372806580088932417446634886627231738457915369908369640896579986896790474697023406061817313246390287487726110099615864567576601885740836963623986287207244468802028630756008959448654631807750673817385513359051559941289425838641783784342085291051061436980146570124168489986904420198128588893172016823797529874946795081500996135574232096528704246822092709970544104546385599965212051736202648198958383311700855755268246749617947347837853116694552174123745863160122467392961150113757159020803739022961644665617360744024355978932516489565744265816388475919398978178884723765089231930393943831023625392209913759684849235352688273598815825390951119104602046782932867021513880889053570780836756064903268240040492671758402302453329116456581445639772024609837944027926280980025852138013058598554264186857229465133390083914871194529613225715309176962038222449496765944471822194187174806149158035867709840306127451165485195728755290448660453204789843477263692299536096542602487255735898363660500914990107187462172148804870785408301958597767588787873976396233728174786688824160505737486663471224993874255877795014839335911419905744283356316828189440907078750368634523890555182493242570421313571160501153295729889506883134481231953626356964170085273699732270181047157190449124954821971649789209085200546338990579510061416759020508865624621115875029070094454609422115972677498907681852119740993988752556492394932860547691619686765974424127844407127743458506518149596463912669639974773063219093868297671399574740519030375754038292496171066800238642624833841935549822614449915396674059397661671718736785684965370198201549519087156818428918366162526672457758710578073551091610660621497555062175529104308441614956036811801962095605017906952311971199376378824433903594801889360169561186945668237386566051127285406128184354492214201720871147311848538732937616653248199449739574870268529688629554177765788464931611749655978210930692235186931765331357615537107746333328033887768368964791978957550568385066149380573703175015633272557663033580676239322223488957178193631645344253497030618001501465536678421992294286909996120374118844001121879258294175408668061417511494382117563651764714210731989357007983538263096174417953871764330737600640112793219867553837599941390853023063923983012784062088998259629135146365724103387236390785163574481247962397664531274733344952304033063120681037235348927632633752986730044229617565293258463597369962752788060620093719403673553188259234589525913648402818290084321315323556620656233695729540172020952400481196619403171947927719725809354432092529696431063385554987652893399804448741648270667112093083900982959555526293989820064611938698761771124685460897795393962580936792582287023836942392096485913764178799310445329922565835637283515734435152318921766805490665592104813426874180518646276035700298329703990371863520390087841760704688984099877436423841058835028087556314339092885975280330568333087212155982278148447784196879082149042868541449247745308672247717354182119393184625286843228731039026072662406952271581099424487912916229650274996982262479549093742367328080085263228482356925125060771837074242744878500583375656950671689368766028898106210850848397746381661772833198309868271771693455928006660263427429333613283648048116127118508013902216315501445728509735170573832796876092591699972084829540342585966030599508604564018044872781784617143257900907197065077701104619354014181812268440521276971884548606614417575295638206984306545881413593653740276782292396438981053169769694466630542719533279193433640457816486504027446358365049832355733564486733903324241607807714274309987392903742100894386227112383041908953423419856878350830991052403347359674022451413363303389467665369862392697919928994095576633638253831066956012645267017705991497406748703338070657200739520811616839164267108261291451024685327276799867911067089150709020035860796481532838903498571984623124532761602356511622907464082022016197080026830707967498715568457870032076623842229328052365557791355587871611090077431627083325453359139638424274176884485398292284197716205469650306859164976215347116429409983907227421662658565739445138503100860986869531328191618454058153857865032749569393475807297454915291224026982365966804527202195627010427188834465204176968353222108872676575381451798960883180435971009386226613903879710085787017354846545141013762330238844966363422282705882556730506134842500950623068676218640870801540010775479049327878797581436957311167980393651804777529503570595653597723202587119764243288098929936890536281551535299172850279335888625237461373372400169773526164753066878197369061637963341023325056500226321059947244885804108403176716578117325027497415073017134119229854683575464662002818502391046199096879634727275068240507074493818104355438923111658356101896074959656166482818981242426365307093603181437624522563414256138715796409385303140675786741909903972770668408903694212429542422541988864775293642538121642563478072338210395059957668775365385798404044889442587122612432297308848520057352732859666906890875151315137075979277293142268010618998945253235404325072605802588520005988541462399013558129051656378383694537146093034548651716485433137846734634489721360438893897819968995906532870544386782752861471074899349228571025511200071045803227126829293790726323031890608150935614214167113804961986100046205732483631480397984927567393227462541849598402935037147932273378489158783134106791120572893288454321654755645026269876707971624762685768275852845453344018673947980185161100657160530690282142819045751355178229369853389967150695381259211786134950988276597046201321285319398089116691196981079285255195306932813070981999382923007799455680173320682869226327774330458955666028605173334757594032262036771216902382748584160052132395429364554690999570200348290622298802934217750151925188358460876915046197794654716796998268131327199382760201042932379557208281994547362329532689063680733097344754393322076407152201949875539114618688854869977964046777492412949809465033091222546330012104503131728689125424814326035294004516051035593163074687713003080946325650209801517578443406619078669184191007788566118332405265480452067020584270015680301924553890817367311934607860385775553025980108130296120610377773362865731152781502771459245666644349760362820454946414357327268198769548794813262839196048858049168664761564404276032632446309006262403132623819991518186086798538126787733923397622970884364553676374945141375961531658694749355482450001529875840729757939159826624966273466356781523958453624856129113237336160088672346339707279051609823924247688848208045253385216031529091319011540091566456141942931852223654647830664055516506833862543031634494027008686732795877922331702723679674639256941905987569156542951934249200744213186942775917022010212886964152887973043569253078617269382136390234651988493927983541358175515008135781297156521470933850623826623333971927970427644217637872456790944979461688319539941231173066607920720631880606955694524232562344199390387057436552374638816050676698783217389043304487305246989124472287964285263736879447110497726932151289112533149626764667121069039839333604635994671778317307928940684356321634844153732477908010458173236549054990612633765139305786960139549349807639309702769779976761791078343606351929709159511766560157367720874026669700826881916459954363603362047867826046583268974701715619209995050829354876154364110752848988279284077059479057467456387709659909302613302493266582871665648436919694554511389821394996720303124096220042151056563446281920629929955563879444219679672383572926352366354991348868072973781535486426884555416089531515671430028567428802516354513056228275952373858277250414203065984761089005532394544836131517346920608113790501198352666372102085461345921149499964334708757978476110856430154251640611442476037041097655645575124705729510180349063688533047658746536850243657038712744999053778773848246801965321418660738409463843478657897736619853878279500883742289142733472881726116160446921462044724616842088985830029006685689259786535050482375613393708507838270377101115883928158023525825060743024923827346709911015150346573952744120170332280190433123061837461099814974555650779620452623741251027320170517761144776502284892569004719873039813012813477341871168868751632367605225806097378311162942122416908889955789223615051065593931326917877384013268941768582778049410349442025367041746755394846826108017609219492678392646281576269984955496444619602056449387424735539774272684465047257057753197091943053129434622332904251421251410590732271099680985807441259346193994508028630533910362546326213959122622230869037366119408163821730898567781308139265517907728708285350791912313612257445092218755403216577459206908420656790274092585934789970464381902083993258228117953706114350908659948215137089599582375877155382273859782482956970591829533203464524303995247689590682569989053867210624177434083040596981462953744399826076761102072562778175012489111021042089979708470504705035115415665624383945897285597786206635383921837997283201958153835867185321943757236592067551424418228035295613062313961915856345516380546198155648113124598427594838780046496637786198027918443642680063290291964639770805399801566346244452000801847966912850072680755598775678842595884919412507027006121236835318015723949347833849796925003747762565581438847141926520921625242211363394999149589870945116958796863244163373097394266589306973996495395955473496244518520510449985419337637469984361807474412127569305389977734820064096836838835141127877442414576414788951743822019518345002650927432551633704627874511909708631097492211673449950512503249169939936925865908287347630417992544695167857084285400458725966926383751335831279912290929411009011153944843945134784937837678829844880705624430270712927389710355059325129695471756115314850928528060310759808124752292447069159299767155669654165317569406919855870842493657342587556069177428017879882010379928100753896906033363926221561374598047421019602019638822603821728827623582871121515783345711944456059568554135925084548128850901903231544014714652924500292927369230207797465414892838465614565832577091780400956091840317520625518787833308202705726629816567083327191240212375802730193053910128768048716705226917405685685900326945417391610921140412755798315475575029210205821155908195958241256116556933291897330804311213651091650582633417559894051097549911749258389824943707215012747367809316933369927580552622691700604306952849483663561911257033017454405272828378856429910721627316235058792239324015161445870944904353452675470520149350065971210194460304708971773352815320481179875165487067532294448860820408204111946403192846872681579561044862989582309162103352188938466410219523717479960234323988211356955690099627410045821161170049531213599245913871606552857943624182427208773809890308809080759902807442021273989022101752294819663324396543053569136080090558599314683976470565946897539197092320082340580332312364862790105513188839974410692307040066727741412150897859503260594758971794697627661356246031884320463602261099316577322322748999000456226309516417434313107076331980868369458532664104244950741076686078491585922377281908800244817127981382481035678002752852497772730445881869655662605790024086921709058276371347607374206362648068449151814301894270281831567263126375015373444138849720680659855600965480016072927380247459212764349518712189239685282152434946867469515567520854382659413257844710218183730029830591478245071879266872341296657518517529873530191282602358816500424311766556043172910457992192294241036544238577276482658999221083975219990550077598983784947284913997598447540083497077127424443012418107862803821926634906757769210649062092399671230822456931146800649476483408897198065177701504592992064361210165976874995601941570175046161574428240810708036104187049852719200373532033681265181256390957190277669228488912249618399429824353758104639173685953191047002737107247583693484016424818865947383049406231523480328907572200381892730862140284605512402435655898991041735911278374617982031667806506671980927141483912897484037915435798468097804452672516357807201564062200546747670449473985655019480084309832931802302409679401819515280034279084709593409107656193127821535941237054091577687389474121597676171981032529476437101476099373266095387250369205115949012202086018687300521772848413421545999476099978206605069270311293886143497290063288070132303846235140679830598371408570412968632362739665580584396959402930730494578917525751701538505633139326208327084525461526402248992169046698179188568177361321394590415279049711336386550720315857642881534455171907707444025751550840778632961780136794248350425684009672391006210465742451377621754078281039566266076818503796695460432432690568911580237166750926195589185247417333850953723634599214945439086210521460270016907411635379901738217947173926548207808991977064014919892515289262356979332297789986323986881231203065429156824133420813120933366386606963426197914240587299481760262309055575602682102489679379134396870517272636162665966838747401348381956698929644715962813259355079401871840083555439639020983355646475592374823195854910101365796296991681202984275698129295560500469247007001466390626627031321880558424303548309237741430158941683960742563847419182944484928601752864751209854688039635109727673080731685922484841843450674321815989937892626533526855609748599714864341718793970395217674583833919870203742931652551739995703035969381151277356150716684098498217228480032658389194602842536537635726244200175936896486641872811823927198278109065660067617587018816209881999625448934979146307829391447066184591782254361533241564170832477377601970400421033732874525313822758550971619091908077192438204684657435441174770676934909965173524226688323116209843001895416025237669146676515861088647856460572249498373355406242718685465800716215747219191401633649715749418666186351124837140362684125003639215688240997135874031092413755806182584237379133914529391252217751782918792991661366245528566317703960569852112414204299577317086863333936398020107755334321240086350515318959758335370907828687822850265863832218110459953936317821999273488209159363470415114714897252762561796921372779955385948110067735108673254908062109403453557824630794481281859386485819138583084430351280318909505344754149172699354034647930034405446949664155807329241144218072692013981398522790576067207937836122042081382491667402943031571541168625654036179180597191787437356739295264881395142408542476385604408322095584241199657447361581813580625012601024980288968264004859828592919721358278735204730532774712048271839032633119446963971617674863960864759035697599496041241930457253058649407612743365285665121351438047473063056984763921107030514766913622133448529749839824573811071233239676727012334610612948581051268424416967127833961296039646404651230445067837867902442522072532637146577483791067186447087539634789078819465592121399439529338854921568038422951196618781100965281991225777545593422373122122644181621415362037156749217698921327510531940969853470375698794668970468242633235688714164770349971366103838357781462819229442540660795927433279600327326066597995422620783863058561400285127224265244032356538427639765580011494397482333899565825808937892113057379300005265376782350717271196114792970439829879642317565236606775325802861674021029068998364813733114808550165182939105501128331077147409247258921233882557821652596531765833675056975493346248690733443226398751066293749818190732755957678979350900219283860700291303405702665495826482671330425514849570923223054263463708736468627292076462983925795922078556154386178361890796932617030690720144281460291731898403901752836111174749519113136438234192442980670295678753479661796504345189673840498414559818306044633340659791838528450377679801470967459598558187152292160406866990437983131939290037187567600876027486128435310644376246168616655646361400944847251333023249390814599005517322807462479221747443865758472441524843054016303435715775285040949563241066188181478153475420157708375526226588600117443385951846200216914689995585986319709140161789418222283511240491286751553200973642619882687887087570873726644323212444907317001324108267512616833692602995254071547289317150232716011601111694147879325297178285031780590657172670833063051541949392086196652813303899073759730692798227828523667007799729106251526585492113170525559981217354138686561219178992561323768759121073570847978017080476226019461929933000416009016008292214854858994074139151305338937435522357283045762892018079207828794001518687273573242156395792370403709942995604639985766810418963237187789323453835560760279483666646413953973960442725863014789704678042291870886015923774759858158410595390266145143924710538250779573490837543273684655623618078876762845584367789439694428483414637020151692681527741446933980048534046080745729079435065265541624190557001962984837360359018235313386524856033782507097877991021549568413328035174280701624726756255262393079605848739423717458864204417568399743832952182808987450633090522631948331839906189917863543073136258032065881960375949049948473119196231713218540478707118905946168862231263197448206143925887261549708605872806028862004578906456858281668699215734455769641571883118217980579793439974453922989400909651424475542241211759421113882900379565681169524883373679383672485180765099291658840894607029789283197770693753174485109089510148939685085819727312803522163392068346977083580775863126984573267368983379042960511560631621433444615667123072377781017361806886038732009483462767581920202787008105892257997771606170922982517954859545791052136935840152401606918863205432682626437790150856266984032618132638297861099559217089585776806731375841461172122866767667951286494190329854589809183441729786328641111435092402553000284853101224725382589832630784715773633271176741453145482772346212601588524006014018844522150885161312177414177591145251812249518622708648566453946697720148890951774325276502219748040671716991584268208333489477198870154764984234004336591332771084519678206032555698190710978319602141943171142094323803808901408210372447813118066471935806381382184563216155595894192673646327501511679195618927232786218651210340848093022343978817276992373213782216038635117212319853857917340858595090831747940044206953492500010364742797294721419038263071658633233964814663070893887704362671332716842805799635148847543756171110593881409609937056753148151008622886226020473111757467426356718323554626559299582245543618166980712578621444280414706652060477071356175290385568607316937475870464447245794273456930653594222414749996516150364716988975625957240432135006016569505759388831561062888178152798137619410109796093304759344537771186620946536436628909177197101068342681134882137310106459637452721610768711672003411747566530200466909600757064886217759640884715808193007974744559008858293879196077356478624377510290310245430478627048100002639372762591729509225002915814623273851238937057810150777183715060040520123510727677520279362110064161900333732549486145204733029421435712945517720264275225008441440804952833486434798331080376880367180679311060330677480318375977620718973469298153691364102577324424598757558218374745332251435972131116113477171884329196327431253218413094783808411124068010779417094233887653404076842152864611762233602930044753241140772265611466018594223135904213997578749878603646532475789161797358844810854525451558223460074459618139124330420924875181668901073932314811758065546868103260438967764402555913580723354047779911154042450904853463242474079919731575180954061888590010949560465829718436348652313708407497132451467301953310587066205249684389583635767732268222402045452883028406296387943589786347951229664592851307834578177711206766275125321547809489970227402564136282931964828791528877062115757797692696523081052388538290133292344059351404170252818129234406740733202353630632740806917977086533939689813278457804708404116972098691409987762409228986896586959488809980125775274985079609751048379919473990999455068729262563867091423790067543307408229794431218537580207732956077644023174799389265889987028202487601181446387341028668453515225882231479873754923384736965253064641745757942775273196561402509650305580818379974117928799473951411441341386038555553203729863416591954257705995649653825906926022892121649198516620540935304967565047932818949654588508012357963206286503041250502406349099243442107622129410103672183045612724096053416626090634878828177225381781234118977746392234714372405352853765671259603350749304692116249078644239971320902346873755756663446888083675355007312286735454360283895442601790234598256511893483164672134385447075146661936185533867442670641315613167311381956812170064335536671507371320825233568992453219870697276145089992313160878982647803643753177845468696118634945989168693901871448949194453698387140116214854314659042372713912608473750570154637214125822184896136026625513121882662390656307689455960302011981115859879200179586707506319044720054245842260243024479894731449290687924088667487412659280815163525102348502857423967254858863669916149337043612703778489308139516541148602650271856961603469871100997886971503972444505269382143014270483527794889216683902059480187217858165262641111921641861815756268009522259199867425970774480240886611911882827242265557490424360765581516753852257609904316554845033705331625784190654104373511887859971843275187755737384160763469985501039176167105506241646271047729113161780595895034662625149796840580195902592634498847392556414485437845796800016635106138071470521533305838584033441590062042057531539790054897723995404288892317205417015145368755477966137590188688096122337491405417975361924642328683684082249984671806651204073337737764190678683710503348304813870757695252819439207370201674362553104021052799307723892516677075262580860760201626599761425768517582963182351554674603008030836623427604694218971236271123359188271811539760643814894647473391695821777693335263097277659017327942114862600865567925630443485374591773988804739478017715211079698512579015401942849575956306073828130003517545841315916657157973487410763583083324261316945367561301066694031875204337179594659298835960779130849242969889967351466693560787620707119562775461187489841363331890801997199087045731646564491417835902284690895784016323697612794020659632200772997921312089940453381394526501062435255797628536092089463850671901290469021753926464210142222936353459276195794698951303811217699684214533834018023381372551874045233695691532549635569815295925934127957342318735283986352325495908289942792427445155862235281967930574840134839204244590140675711763271232757838543367149078844754274406214679391970353507409008343688978352483574277068840083354840699560608398256376119559785918812480380512910620072419115068576572859684339127055496896061299772990881989084461753727537093694380752413488478203145461677168949827519298136857028472597310004549255544569933954316056891103944992738585773202352721471151983120732242607446812314731226562465594585260720876413357390578552902129595632236666957572386962425236361756404640297821880091222139055229814038470058071283833754410830480996453785295559609275787371861173764061766666447009555463941110656679479261737701265188066261855360860875918387889114758482555282590256708987914643665293831199768282483851376096865418380843386277076985529974116029920236825002977419279383735249567783683023053942373638466476882694702257036986479687282165750050636790079716620603575384289480532540777060004982882062566110682447316906064023740340767486985004227760319103157465889563829799790925336620362190862907010238136693259838283803395881560826120573145166370315542493377296611164772830984044225741041168830042779327256254843769062812122603802047847239804509931778117965379684169944754371210263159532685102775791486485633512406526853954889212456014892438330435395085626317805024025754873574115412731886410404413259411217391234513295185532779247063915217863008840276255891528978558789355431850246760683687808156904500196667021909334508838463352514142809485271328442694537468553624983034533372951218305234770240027042274880933388528172350537054838577188545404665225641635857654918350228937632106879001667525856003292619696309909966965428396334225745985688650581852076828819320186813630108373060430879279460650024521974014879688581645117427833672090684435193552834761910444446898324876623753674253332667191025418687511810170604124923888151674816522079861411429397641418610711053721793151823967721756953762217988262866789140250985795662358434949844935138697000667264766252658804001747336236163435816936423519927706084362191296528075451766518136752474925217743510853374663153610524894549435762682909418342873099184531459723270790373570796795601311458601290744608775359991738420847510683465288119092341835362284573889419397904594025309805675989259738917674109029251708855613760429470657626506237593294317168472649304686709801203710206128055794300554093788111176512931357024663897029097110778935760121265765590181553113316104845594772156953712605394584029282627677993210828352543665162406260207355525603088522859575779422559160049294310018634144665823347239870181569528911305322579851654583945525937842824584370590336005582270731266929399338748238812073637487017987210361672877848297601589310389097895156766127216720864094752632055777059726751133471447169045606126561990607956754882839085017715107749228631681111580511270813466259269145343899091604841872579071806976818949065629871789891061068045650291116669415299211787798164599599572977290157991996616787348986910042425170675425442069319371992036405034206553613479400333818065721804606359769215535149174715530831823714567880530198607793129268930671148288990151202227490630209780688292844106260706544743154655958204477633396515804145929436890606693519579452483269766087260991292454031804913050276801883697524195622905294046427121926784635618269278680360858334333636790990595057578712869608728312861554968315517993744541230001374482009607488103733702538626859814102871167836720345559453520242339329374215542340582953941704463351657600097666576485472996528489774773183247900815028298190610970372189643278204248002669273342842615987553738913575069154937435318751392777261243690531869923419076192783351169443471396986574081842032495818855827525522538817016056508395738703451295940621690743885335274352847587786878075557488887467159042931215621279790732748810487602757311964803216046462058370949646460117097677080793587891106672978153587591063545346392592678052155357699454842713827519850079492845143240974777748752054944537019957887942866362870123781665958390121675154233266506159965240936684149043936551259813602167601674680424408759831953164177051095868676240312086145424526581475521044979297810559604036618886201280896317862530371176130816128676262970311784533497338572463157903689072376494424497203341834920356627368652759297156674398206743160055340519472782095639302389753323587110775034082943941570127049876297935195614166519282490479530667361283375185134553300899328241924462609624359612972010096209195506576683057032576686685868283099550826673006759257909270324290168997145193133068752799609764088569570614467151131189712666928029807898563939658982042857544228201367849176192498283887258196655594868788705583109725733689483604375035905785635829802762972645500691722030147212800106595170753929563011977489582820121223229846799299117216063473081384833714813400501979755350561495718912361631009624297027715268523028381826966998011649395794692605620959818836278075269093742116425229105817062627188815768181499848002579046035160078564351629547079554252385412772871181046254032614749223208942646509158125419147209880395799859207668362566421375522490952574325628467328919213800436183955894354201526794189599480444096817561901808376362449594784242765179107615903053914306590266036435194424646668843463838511376933569339055728592336955574229538565866314275753294397539837835869620565928561746032263020773646566280127767202006547293694493908451728234361570542318635409519492745299581745056774422251751770775927494600262838442423574730184480112701468561878854647279440571712494141971981028705636014164120299035096662992203862395199199747294215871596790626310486218266885431238127691579419774926080802112503200437530938084828322933543439722617792549840213939113236696177558080746320063909363085781925428657046793218069798057211273106890545303188277024631530163976641152771480420984493349753213981240442528740788850014530192855661206100650101803031580977808231956646640212060954293049308171082201196301351919880049663593206969771740595148758404880998194022422580671400396624271032795860978520796402020830081851880192942120529732331134511486546551165979579745920115804957200260448113895558059002656068242283954737081383726096418568488737481711561766983537485792144494184713021188436761584117290263578177515931840556145146262922472338386327850939915642283600891943504125090804313038591719924176103044821216520288981866695376575771570818466288491646230388179008679464575634885950151797649487366337876030699725626566087734709457879190115646701098190136273487043586128404630530004137933674534802650566784948492206060065180942605930524666041881376665776845796181039806557042661468595720707693289572344975209208307538151199899240140802476280089727474260909907103744046501798646573276446203979189027613667584277516910862023246771298936617089589319893082710768765269341796116123619993494917901948967753401878359883867179870925157813417902292359989459522683618660763343741003923007928687601091638104584085075832725855658084960102159898339325618646059194657598892908397363173527952135264214647094188149334559939818691773648203215863432879341899716269329563789827602883057942989526884980393623570232276445467468310240268462199344733734071436351308741214598090990859230200725315638536973795354290255396582617254788428180051284823989533011897578382761586207804740823189191877561446656446274132268512115518029438829994119880894354517031183788691330117727474975917791412218845778431292349613072207353959048383184996779349529510954110689353968703386400346786687696101874777618063244931831491615257784630234863657906407922484192837643371266824055577872007594008012412543655050911814163231351581655156978959116818739704256404302482378321129804848334043662326473962977714550368584956009977446341029176487432562400063170580749715159087342564588823041565490707728498792764424015262148957199654577040364574785107202225276108606385146901186136230791927417013955936661355886940465333677432485353735755721639561274100919412389569177423298156991516328296188039749664986836271989272498194052940441790164921084565436825045340761740450713875881722510302303979108737528337056583104729689039137558912409107987814960609819940116725798840304787691996576313556938513824153813782253500922053581019195476063387025324090815446832512096357393179613489717341454958528668639863506858198385875083274297227292176911892703283195073699515381249586810763701372562650273142253994742788291915672221370380960559625679501016973691588489394941779342074683718927731633496259574561607625046266984073933132301763780395428080964194798180404041278121790895608285056528485971932551691415554565683008288934407292813417787673195291778303572998049540544912399175181672273181563494773368002456647571032448908726795773881473810790729609641999402744225180975649253526412951868031793711506653517451768825218861185690470497072720631162363452990208126019638911439291245758198001779044459929588870309440538758060083478929461833804956004504280631601036259450916088996989198588237124208764668503137345181541670507758774029171208899226082272241176691405537607718684517551586347469443972398176442984968447645867538231618281083395828372053975358066494668454842732728632454456290339739030659699331976788410195001946953703318177880003460788827871716083157750577455229817760998048221150810014446064508613505404278348889450728751363992315173085317768951891993306284218439943185678608727457071694970322351097404088244266193361545101303740932843885397774333630034654076323576376933136227990735693861549268667844406423785285897257823711594481080898987190594476169192230225765581174312362786649748916534292137011259712245233708188573217032608778445702427790772691566825235759648302030727037190212024706525876867333607740654119676807664672440021992081400800163588671254474751292516115348342508792897615716298295074707314217023690003432336845515743727097189961495607551175320844196586820520805895859692279060581132038889733623646806310750745056980348442618386041618333856302976892638358798781986163045752640535532321878340759442657856867659426909210273388054179062046422507145821958433710975807556439250468197841298855955106414226796721515111671478549475269860078915447617865097921498226371755898707466282658477801228744581792358877594786900874449009556922374044148565960541117701950773018266809698400577059241328989547784485229557397305239443729644392617770168030741401749235465979098067980023623169384078379571071617901522267283103867162970589543596499875692871613016743902119792517622421681905564394257162723389716797212755074739281390370636247851699884310019461002955443314235501423941680523780704479739263711639196347027296551309421272391169766542245487787825928646290123137281899875231717775529630215937010030017622983147334067563948756816815889120284861258802124082347759828374157460903695962150651549980507969002892659651983101380405020244607086419051188729718379943196271349070632860544157207408045997402744974845901010764048325119701357299992271915423698613615541336504057016677104280251149179170171429216107419296131564294816432139612295427697516902294290927488395395907375857701500662023426110072244566945539740089899663965809610176602470025432491842862180943342136627176002930821950515163796245808550545244990586383746500878079940743739432849842777945373544059372119325424803304810200855674069458621848237062519199426555828630295072800766069766840905462758219320244853063605781430450875476648303535668424694126612811654609608087260334108605329607244698906264680572755876724885732432120361370127219221794199491083197361215285938620052915216021906528610034562724740233433218306669680912084908185932150106594459767104421252921545655020376170507759027495673140984053951814364220939358632973388087101349521207918798517549812745861013304482267014563874274716316200452575422963834734181151194995352163506670697334988533417606203949814999301125347776518241171721684604130762842631140973850965770999201261993052352034604213808205268851400757662769268234850039292785443822353565997896752971252071238499928516650809770115436027526837590924360015629271660276653510671408784591516597494636519944256061835506404138932912494273168000697245214435286691976540711297314534567297816542966706883677803554077268024253311051880017236462023933976270902576694791854914371408356414124680202720491215471996343847674125600327812787125875588895573579275079286309659733288701957733792620593613487328198927506926967622177708275629767618844506959084958242142581196381627076212398816074068624898298468091667627069213017420376061085281224965404467018572387855423836808772673227095162392183948082765793562718814296304849636020707576057651650044592596672661562858209640395357868090921099543677836937813503824198863351312816729983394381694612336386299923778900489836704932194942701822472403645483115647805524882577545629111071497063098177920507993259427777852899022847869528404679295194671900903691543512946583184896169171921184095512366544420178516200814685716939422429883063981197175158733630459348547920253646218140869342575191112560996860039586266531324144048383508782277878617535410788051996902682783615172127892636673612017779900053316463103701543059326693387329091210528400556342147110138457927712272833101399395138337682779190911450302839578197948650679817158601253157108749233444301656666666803381743591835097649577598634233479713216854342597127647021688951157524079079428260982093973484416370584266032536345423598310098669662324150096933430136187732242998227200969821527639449780202204990923483435496975745321040904502364500566750011052437295231189573752812915581232939076639028083419230323646946475789615812848844749802413558328993905686988506167391635803444969548780614703650510886103410921717237380241577793357586376186752145726954148570159724814807512964255963338258649557070309941256412665301782810219439836530296830637144339771779886821766381865340059193675554724525099868447159958034021341090835547168402020868479874365441827526551585722236249130461281843842961716098483696076013210015291352635553562805165009108312296252180632581824943815866700167408146974867556053540553242876375329974555902385562115111588089970426599576410408939935486880790459806929664081531698639803735943801395972941104960216097201077404225999437346215724209925356756014749247609150122134092851193917508332988234250337621401800605182649159585988530122021182630353429132207461581312688588558531770944203315560473302624113568097884435953551073777717226753996950665749721172820449891633843658748639974835344104584603911367804035590141445383157528896476719067752363954296375226852772357471110745205374574278491013670582769551794869140081109123903490027854567649004434108879909099301540002851863930226104106770538522469795472773287223777041655812724024048668104796301118286772397841750583697053563588641029969984249107968258388971756994977306615029412621164065433628169549497993427073271775183453302105192008261634131506590235359899015270336098763430266798092428820360698021606346372530777520560543908529050596766651088075843859085917562975419436571768940992797650355841296848685401931498490814163949594584546592075988737524450399751207453197465612589043988164387642804450093908540386886100241839180498870095422220852339453020636101422763139970292448988628826989265041178529923014502752925802306399374681509460375812317836550915140486210953803936213316184365291165586924347635526640593374592104611716311196632247832886396790744783820237753717791758631914850277373813944597071799142784522674202851061207846319006359206841897468828703171148846560193676088593344450538310665184833249263432528623678455020140865994540275875478743276140763019244175866796101568451720440722718977726128935598527220519965426141468705814164147416839573181871751908476042210349598834236618679716239370746913301471531675148741621027132325290787669034289900658645277439311359306569388913083789483373336020193127915388091346354704654855305448845665414076360995658654786799762144897059112595693765362950909815628747497543444302239045166822267341735270975479208935577074473217395465933965883222315923114091240676855848237532863392834824181776681987924695553342851368452074567430513366532453186174286072958525360495344494135035714334531090862864920719375385856267497544610983719022130927344508084220716102241158385259192136644047424709223534953317138046936727001229850152230554820873173993599631008420467989669284571602889869516872268515236887833480024060034575428962039687193838582537288134695026635414901890687866971824994284941150263746224251310663882707764830562891070876289704743920906558048073849422966568293831042520088054234090475094660171087787646076111520155737668428354934452878821431728612423751919567939746820665737385188008665790058209851210016550025231046177232677994948610054590449495923017078621262744600885123713828998136558544048911739050026568531664781696519129118893311055974759764345219630068967786781929563780386939206623081361336704696787761147250156123743039494261753555176952096061281266083351297628573586993908522870745506600158424809738977783287179441438074239781064888443846101065592591405198305350082097684962541885795193128869547742473059344159043582114990188522315769667366302207353702110939544017954855023637369393247915912601364406931840622739406762346475132332611417492408209944279071099950901685726202358844553375875473714424105875095628126245671936795940171156045145572265847644687970401231773119547318819070176184981971292438431100127763718317584178193442489631405011331155926540846608439810753796915139855025198486049794387175362215166855179220245680319975551401851527417783844151890467282895882546200996509263850039419478486362579005258692803838911798789759847711966266735284037845069685704645210672870439403061314306198486585794704291852370530458714215135913465875381897282551690009672315624917714175675193643818777154865859999193258397696181404827158108226262204279952189483908366865575648033399830169969914819485230601548050113734078949308538922596313058379597768400472291545614544789874260143593240972343500912124322455417119951969404566122860536261110173506228728647919526124220808441288268959982341029473685531237523033573784072732573556992859741167358286698071899449106409478344315784140154190706049367339946235408248043030179580907035414608094816922460208189236753941267692523849732454623355779444811547516326428813607873764020797877215515364874011911359724921481135462631426852812472151610708018251840361446220305926901360721416082113441714810464549723957374291498968166291045657121324309698972443451138364456367776055622798874969488529481923480397419298548272021286431223165553150298265580032919499589460816458220924645355843891945571752012528149480537982603487863911195398057042941925464925878959096654071475027434291803094326411281033308490452059512402224392969587370687773918997810315920277307058812739625445572562105825463025823310733733707694043403811673495479153260083400671883332222744820345369106810488983348713225044693624984660303970627923543960652419857525228697422490334174649983718352109197878295032977112574024667464948380173682335753176929056451095016786586436834221202618441793526513561422633079854606294567183292275456382392211861402354752993422020836634540617963492686763952205572651754666162635718281678192866366561304671162141178669115165137963079890704916273878484560986413638004771420425606321544473009005787027865397127484972969651679075219921608349465514407895077921694739013968007111297498094919896467836243849272833420520241207956659817495704244913534072295523260392875201580559496918522442030753302641505575739222192181174842722464994409829571040393468435279454834128675423247474596521477372386864816544864841480884334803760000754998997973270156298204057896008750111649071693446517698835678397222991466416162320338267413542187608584304666725975251576565007452480063091483403932818202557774160452325517123523619600786240444623874366680264177209439448751397780092981936952206539582420469670319829037355551513532696765363347815589785108117449830404734125470881663642640645362834043544944652451119812059313144673701756487824891771400357485337812695226216740005231466881257395345950936132467899423510616794845847517917189093257178567952231298653790240902128786300761198907541174538500751687664312960772793103292629112527024818635833316557898167267170171166095045797078455393993995587765790938325991940092760393117321956363810580667221093165072156360320858746924247125588033128613323851452712430183151566468513418464696835382329518458179560725783752240538959627918133935184961507480631620298717254273841941629449925376888867058648049440490304565671261365089523201513774076221385888067210064666690007255626277863864581804816927148934761324414099948604430670386328352182547609284837769572181445830333785249371582201338331730260605456279464756044549650953710370651493355478100268105808302133602701438561010229567298460470619184895093419900690170405071341654032668682313840663115634218235708441135074383232099971815676725290640107107839691025022357339405183248437103023694394576810482259173143266675671509613487213868280042324409369548379443994944707431853971844683250821322173841208359878742771236211067233780239164790691308508976597872903057148078838132025067314005080295262439167667036775343999580880851736782382704172389042363366299281280413652577748914007140804810016467719628286168332355085502280984794759317129448988532206037922851936481915404567248672145024478557383982342249729788371818428970660268791093389087382976608581603299052947775908644681841917952205732548241433763466168091005231791681214404899533502826705582904382853008173918858764682912237993590449531513483969217470532258998290675656950652085257975416250403331968538401362927856481165134528119858778640027794262988189565962255057033830924312859944899585093961914886774870300564679036744268005022343411361902759652253949404246856238755408178523115751911177541386299163445697986885306621412213987959920072181182478384082220519884139884426697207778084761911285775729528422107365489666463697884219506254130191053673264264512445306133224268574596040517683293958138917568302440728826039052499749216024474851851036030644396084608752375666083409094789901157634868682191685536582775575281635638412420774866696351500091950365568215090416522445689303231958239777068140241977685810225334100113287353407274524335549860541535913163961726321104822430498387455794575325903698513874476572222076325578979908206991316487848642500800483777384646539709496875642435505474062981031066126947098098624393158669544890215796375457634746796940209076772269041888543720663853132595744548738872125461709814324053074116969231738050853031840935552920156891455067150441394749810584684278683042853803748222120424288102872765852586065104055277289811848605454893586926878854901814492292236149898610818144750855958727701809492747146526561253177758370606025595078007076524072394919070157294283035246250458390258613619647743833833653252285353578593279611351954112503150371380416590227433981430905150901083770504765264573904558411145178461472487286022950173678792336077143112617953254992389717247867883769725326987050446633607091381116710778770587060341820513833082756646358175320345148350225064089596511286911935829045538516818388378793094016804147937684034895467928735236607041004641659342670361097326157824856052005443148362349390298022373841002987932699989414014107388331095425297932512843319485930472945249343633677179308624687022473379873723406765993104953995489195756820306301240028130274091754079695950797067068565140043154630370173910990109934272712411339181745264399531610296931423472091015842299824598579078499620448640388019540129829802845592978197154723460567501427706339661980549911117683094475559711129682157376024613583628223666563668669726985063069835861558264438111919105820430223390355227553178878552105971483741096274334566974580531804683789223958131386727235686028660543138229650248935007429484694539494167827789755716418083121368082809625804414214556589507513652116244473576726586525287269264467906117358154694850055990605033308722116994585067146692681286016013121798841824772226930801264015097888842533416362155714211160609100134795160413325078810081786527091928640719603366796931222010300073497949134132442629835157784005257449485508267690803900373965197749659421435805230480645471439545180501640460720360418824476321500099366191343435776611314157279456737754265971624504946061370635638641480116933689139643803830714968943206898606612671793047810786623649192752840530944312994853338271113449784231687987229888214433152948301052298708985597113479632409784315805691282528575387673088000898546644907772207614759695101521528777497893865480326652133684946267979810547628093004573228750260960942496696430363373751948900511289890614095540338144803141662126943289078780867084340346365102209055223297149052353011327153573680367031582270519512750333048291586479245969727628628655819897281630681578289031511818571195121577416150519699828041128478452096170018954655446336158281517860156465572741394367513260155783725975206789987824541224785829991628644866986650199301684506694708701328546903433730383363100698454611622062562320556325380033836635106850298419660425985029157958191140380143447382947668139898164974270583814442572244834539024461543891875825965744593191486911678439337404963095344001021069992431481929901394987010004273358073326584153346253861677156105623651473057622032512205714157130422711663728502162993243186351667231137975118927094957420771559917691430735746681189642280242287666874581494224100526238938641827142382268483668838728628522493358643314476216247441804044656586697822682546552725357061467410912910255484640598423136253180428078920822950205670091388027913627267037688915447753106497251832455955087257067705382360465923641474679756917726681111915063495358643110262735046855843407676203843423045615027113335874371585773637683618266051237841350903233748409266929483331124911547580524141492163565908934953071715952710381545356342080120809486756752213243033379124339697571401219495910520420003477105333649185276967151721459160177830179515401188129879634039708511928442718584281231125457031463368862364862253686994911548674732478378394757923157057658699758471770017497070508502870690090334896058617499558813639600348470742490863246404728422622422667745514367836466642252880440781271012288442364715158168114760886965427156005771616895828827399302756668762485661809591717204679223720257871768506927146987126146861477378439225541494283808851244090939842616226702357652460967775109623446192582604660488813046110472825448646807634172995104143625968711252225351116231433518942621850751379586978255581388004048161156823891709938219799187550480406585797107139419327681654371347270567138853146173668666335161607633474870956947255310817629559208792065450892070820622068717893677284682860187212677054926789974305492944357963081569034434361606497808194474701486248643889075440525301555817033536040451938777118651956268762927080616906812662469640476326134617116052921519774647106195173744580611114132998217227675283577448722299098331894721469037245050688871195793552146129444256837354352277295143528504001462712541075677176566685747218424850068439309775342087597014387281900579269971921537836770349992039175204234448631522049765315438633660207841659810309556442602498108582930987530682925904401174363942671011673923446197487416929034961369494627315246086104629745064358390241042640094065388821584344964987358610109623732174867953225811685914536266505065169618314955162731605714323847616472603376792363056087805042416994936464445696642380355140055429780579802585558568646027917658014106389546060804317247562394084808254793758181162650434581383629178131842328069670622592683432871650298976937238476719512964449111681778046606260801714405715604184147052416205229146231096650977800446422477472375816827513920521528459142495447332450250464256212461995509209340577030152574622674825759794591655229430460274930051778622100092552983521232523919581964931771477574786661747770852689953665127953448805036269148493503230853937597267101824515537687211439312067726826482376033370263247428379734216422058446236415906506660044995296097713932615543502030480735107189978230308502692780272256316622709577696074208398804318785731611835451980880044672200973578901723609262235999040627500746955494086897431696830724955333829271424584290129534746540293618091030531496460051483448041929637274186012481732883021453374879995883859296882031117760284163895733938464303428411030199890770062081291593085670605731385181220463784627493319953416646429177336138307596730767153754635065774093524259300278296445291296353962939486837594141177447440305509454489388432593263585398777974264762886159186523072414536296829759677910302144973208321854402059251634933233864125765853959165560674148518813724784211900394648927776388328800482330893983620639226300554871256159804828107809269075617987972840380563753478508900958462161812074131119607514277626215854548345624881680508571424734975894165273178236048940081405483384846303644319500142266583529068342024707961966008140364357435740561419132043073015587395905118117582797807778134168484947982035721735876526363995271727767107437744570448302287099475221247160561538180598196968442253237853106122051537745844319998271328149452425259173885935960553141348551153056568581595096383421049668126701551443029175990591627684663607390790101023648616030635704812054936044190204079420112652966477820182536740153514952041473085449817011534084482561459386638690584011673718736403666439467364148221826438266540190771530852237002366097830200097652218110837080424333735647495174818043886019718438479609858766712473210667111568289849742627549863844679552899490646140505685108397730680534398456912800549696504125512016800242274312431461727498563934773312379723703864339142615141946709421592279084852768831742605851054135858690721795612124050881276076410826697007689038685160867464633489894089007401678698387505196691034884471984777236015611563386651495805669750950610865275133738266326958350379790426708032779962087947056395629288206473405717025191140836930185689583918239135949738699206323654829635890566616018788105987784955397167033363823171420575936144994485296140370272978622298571356890395837468447136630893743654382882741562918815921448445584658196065154521812753460018993453029766354517396767259743336318289520928825717049989446980723679858114620866071993713142540144532504926926033604604901617292830234810963356471310388218910754829964194698122866799325162717990431926667176621088287030336486089259925013884818858255912824106174044293675464595164822335602557925577515868932508083037702785716923494689732419823293305292604307532212993755293010373959021694083963716804077588832351971819137349270842774423091682527260993223543639310551753359714123896168298642215742461916981614438930416345247781402644728928494614371569088313579584194806584470504686403808637662550896821569519000889868915618437824484649050723216088327469255882815113206435429758090904658776375638458302795590648180666487314988297100370794064163540322652046128972734533628590482996482564412090191636876791030121951695933520135698707021450328179778268581163096634902475678843706874299331061343838029747733020739530970685378692850622845232214693439463879360020021259632583698433727471670678994212891146846161174938437507676108726804389884337265516159508774853774928260669688293171884544263029313872795654515965299547831994398259736523066712143319065219890443904169958665479826517889474185158620582491337139570853712720735940294302025313338925981621400298158132261849137557126380765484332755957109394954185567848406229370476020305446988174605673815475470854484789933587777612107350612726436957846435048848729078522828104338510413744276260589302236167048787507163209822794899860108350231303873188564080969553170052377038673366903723965217790260443034044648417809980317889831664724937091846073931079897018784703736287295077723147900262685564727552194823294493667772461169092937424801380433001863637476765808020176671373304440301768659477390953313883247153625351905715434627755642030035948749422088439912576559643083880266870672708542672417360538430338368504478072522446592164346591680432729131533148813184371741495062254592214671307831727439045970061094606961895132458634515780991653970661938071549846162033441235220402032174677363850215410695669748594448395739376965014367848281992330884452530172844610162827169545485803925472638945629240301795540136860783486876233953683918309527903582047030253615096852063504934897876983447537220960104503408011205419075331990494634042500993025093125422225342977781692335913360244301144576687723234867936500565408047290147490961395371231689536848609836147129153164722576471673417422812363431050997230428558393470753223419764784078923843774021113401434471725678804232858364124287201843560061650277561018309264376481133658579355915227224670890407848690881621576231333374041103382612392647965053371535497076927381902977282574549626026006325628083480762045671763507938101884368434792703502902759902878055374984851666124440490557458099845123363466808367576907990715331959356424391938949293122307538279468363217834966215101234192570723323954243340010773285771216345438815604611176244328815955768459479684720873175917063620804946310191731360409380769418926951545443833375039079895202801709006379781178595316973912677088347140599983763610729550359088273933981715530948344459973526115841754697873723657575650287353642139858539671111804158965345088343294555628005171940864554913947179107983353657283716441701884410548012752286278048581882864566505258016920385747295749708698383404614177117215139279854041932408988903358419032208984345383670852901609499602073494408131068823995254457423071830634703032331963459196510964419042288586458354772626378257893070498793322905616514313982327666278821559458947389838159957893909825544716973373990942536158679959155981980534989998297163249532134892817713927947871250927782714422327583031764092350464358305090982551797476615601767564604576137230456662036313762379015758014261884490344713324803393568298055900511507157650319903856368636696162301540955020428471112124278908464046743527274912299032187556720506556827575888165518387110819870356231023759073186699223798237690441972480411808135232923960912888982524792842806133977302298376817909579391837774006582877204230885569959996849685598489440950835290636777834766585457594635827131472429075838615767081089840673318875728891081459451590186831941572502568060562645195843737816325760965523352737277424438646476710241070945840088263975617856837579386641362504919731742798443546492803426441815920463544582154441308864726526090555957959214851051606182103786407671344191845775183980736185911059789008089865521041857846810427778630180687242759999602131822600675763462969192953182918154298132166207505924072833136245364254974606244080681631512245079507330583445635680509746839958373419256205976476617314356728800113755278417270396010241998299597871083985474133827123851657285219497526711494106398616878900481043572603261939116985217036352853371372413762944150031689744760253328295074196254824891384223997447625186917457121978359559736119160944314471682954331570335311384397237147857333890633610771313546747256041099708346533524354928499911256781016783647196803829836393143960152304137051908425881076809884531403633949589835401002042335812173417326506195106515317575697128097291766805738024975904300008322857482353877368726294090165932357557110292990178457869450365285379774656235121905571752218545037414536706589458545983459603720695939890738733055363555827086224548100679939326683000985593369694270509132359864371639619295118615222131413018037440480025527146038591981793313452707241037078303186858444409144238000544907993227891026517846228342258285129415606026916601227683848711067969526668824520268003802001611544605110680743757524871523682554893442270441930212317802484043009289805240219421864852394949775684541624474944037699528743700549851272077963901927810728640999932798354704679438161816880055066411906193987902547032063288788350133528076452216701288596952817349842408677116799919521223125787707253537134527863509441525492189533399013292788878619386472002703539188900214959094060447796039006942185261992508666711466281558883145756977252143309898638465342274360719587343631643202566574547799458745454674191117829390486407745705453514972253825533576721771709985210832856515449490029723298812557276533519685165450277730195021312303780906017367248059321913473342014539000236626122748219695221200656155766348117578848540061957331679789476421040876997427370348177102948924858657135252863287232398498641486305759874431240098600055947274311667238011399820621297965685054339505194464554292181348516981148270042639499450877240510920045917798289795402990945349188965202936754511929611653247304643788555408309347424067279465244317113986032988106623162863834124743953915787914360537539961659907530737870781219267785414969877478592853294839603059745179495162403947280587190837451583708312275602377038608272313772499660435770453532068324053647307466390410998443644081674625181812229276827034686103088638809983063931058234348738900363500707877444248690395835727658883767420183113099375214037910186085166233550007535151102697859564095841605210931173041720153483254320107248560966185909727414397873530983626606055076010707315786883857827953618710976574782450278734843179079745360449076072536187158820563462125592003961941924417998234354638586258698393353403821627646204489168568695970031527860815956226783209916322600727026435989931680175963020180420457406651567552738905823321180225242972075097737203932869398454677867818949555213291819382021536143705298635483645012880966585086444270567341321145652267946886089715107077742300778191013442537840649919554273807907916829568954945788082184658550488741104442858236014757643258892598762784373960838789784820051471820455930995388342588614747527329830839344077494977730680381339250687306629680705583820790805768649536445871969446328698930660976759575085982093896201661342088558230292265456873664277079295485241916652386308366352912933830510084075665380455231639636502463342108796800581085330381740172174460826976815866858007172170566959408812454952643635410100217851998232642930612835043546109907597053073402390964550014860069707565716977582671240956089579980242537569683940494895280940091517056003980969097865611848178501093099557923173403125111286887004091817072393893276464009901542532444285623176656535667855597688402769527812951423691216687401174610802182077897174567476481144909552996803938931107139203614297606221217121426619999817491238318428136846568732807008784160173671356362120971910098752371149063992863564744948740965233372072518854550861783488262222374295813321192424034833872575898455937069850385823263870011244388018998059814384601340125464466842768584787801289188180280772844067349523239605597989407646949597553235326606637181138241134260414111280800649095455104023969897442254476251942890685236768412114662696661318312199782145470718903240311418667119656019182455929119722162261508651165481914632927590880307273855247385714909999921612482760492935636774813821826255178706192050619378389053864562710057824453117363515221714622188004794252410300567613548582192896801979990948055085155038283803644377143553868790388447141879423134584938965210102070360903707352581899148911327684462618435511240497192473677816360315592720371165752011468025910461938877285831180339262898016576128151208277007995504133426321332996036841177954777562841158696891985842769604765181814067307430740173310547940795100145021325200327042973865378641314083843961456698999727276035753933649831254557702649411282634044809271352666609506475715623704861374341958253489219807471103360907656372051594440778935923372842329137584904889393683435868055465673917339648626355742868624123238324142492864161087599522631148023361067341604817415042870728517349142853303558218675560897661829029565563141215050880312106641424902224094778797809923180250513041207080208613541027191333478043515675196777178240902583450737013177960189908534051675826228156954435003920888144180674803803534105261692328240994396814692486362663891605652513381273897031460197494493704853653358402419779765282900694519903940989926116155989529722864173637076207409523845359168608957565463607475088798660894585840332350411367128360710809892414489644774454286178203611792867671749651881986071521575661761630126253635736293656255716627567516545254016412625060968931746310770267904168762094444909551216390488386930511119427099107953568599608787270851731957875566630440159496196439921913461565717606817772590023630725551216868700836506044822875695757358031062085332591332643453643109749156262519899948908811615180738357969236419919564305054841790691016203084616136608397858573760335321465593191821757195718388319548617046183496195900536621550837309313633879216518537039489985765818745975297569716648454490424934802369489578913463210889897164209329767363485152495464286970457164452554080894420131763080220596702931907974430511319544968265292988499495576666422577547573489464561734557560694339536031999741243136311627741488255542475869752216293136093730269159308985409626800669895867840053364091544533516636461258306067952939407663986861426219688996773817377712360618505625725937822062456392698252101843438305701327789630599351775217202898530976996756723219793239637995026087428661957428424864376611963166674084104145553740504018066783493876074844359125032768980995282888944418270224908666102956797902060696842133396752350005681418331411096427652538076546043186698828838881403016878133556782031949963763232148533770841888557552882645998845762500572620051655692901059405396406635926935847562054922816388596440205682098652953056778837349301912657785806152313210412301901119716725053648165236328565090917803200765278054627924731775748409502860135709832635802731113145966511734538308836862797904406035103203432270904698612023372956763317608095712826293263328508724849592089943596406356654135763774314959393932458920954772882272081828602393811095714156460845251858205519165072710481905911633230712103164741397233353455704944526919807963773711216090816388610990462938048279904105082300159626371355380438439590494819111250301677429595380695972068770675218536330821255340034225665959786194483226143661500179581388205225536733076679921740573403770393324385142512528240394983355184908433758700115422533661672364623844711863976483477353323846595587250362510236915345336657767343915456088287157042906417882751629382709936379833192118775107823243007505711744326781818059647750784669892494661291334452526399628586247995549445816827626269244143075967753410141028742611151321860836356601702739487775564406288845488609282754837310230892572558875752391795600775961982909224528776482748278289486298241835508571198800072708485781984391026636295249872984969565331257158765933430897341917235824013440503717326599920408312030486903861722066244694297707042580843337479475123650208465970797878856551061248870213082073395494313967015241201245296398847281220586362650240980766098047532949596719225214174271086993654349836277296569917531288249105603942000153388441652264196518819292785113587636356495852118163610242726841381236607277475426750654125113308988153394083220045177979703460411201202342468315075380444199723830193760704127790285269604029026616350367020851089959656269592176614639002385543050145277430852027102962727036990538848339858869618472896667676158655627570502016329624538489449110385944126665170974892727633427670709614867407373680536193552789668862490898047031280584995878460911165902987154104340402099534807060563976955603666246303850703383132225564280440131182062592513266637818913228214999625236975833986774517570004730702884115237811255743132132847690562028822811644510807146580606370000122996712264510878139614198659329046932639418645876070561632640106197808546121790152134189618229525252633577829566879094128934443814698401790540815936994561960026617414015474928219271718947229213901404693429451279517053528374904743929487507953986880217290066644713834185800576326684915431071308254446879637030212512329113350741243959610451766331217945250208304768289558142412666392438969102319827393378180838842368726604348683459438076809300669289703580628394973807379832247093860817327318285892727232441465199793365111835187363910754280262058504641503903885058319298706033313116366084096728216954735522183299042740413789597701226176793680927139808949428611263917844683685499096991311494386840286269082134263913041225126952019096153268223403847318110026101956970810637348263731776714122413759141538181891321051816991538325027686870587039991775686643571511162827417780447918493795545335631955152679799370377790266972726201787726589719975068425273295610971372473255866558062591249528503728035658723689417934852927773659135840900633682160337451191772337808301470041342288247442154316097587586213561932884128600828572572561955567915774041234344900934105679174942228349673603244208410189887802193279986005576087026289079401365396140096242499741303047499485324917185741085039051564546963620162190285024183675926770160532410597578282866928364216470937819691937555094860502006981017111470728449083573416227615953837447616854490163632680622066759981883514888013286275490539409323485789965633569817045642026665708086935733527769781265033865904982641702372512490048232392226899738793409861758345409704577591830326661234270558832071443978048592959729656211474532895702373759351769867509615921076861397937382333330724547260765284173133529262270780074788193778279741783519202831919246055371633735146075871462913766853545548945029110096196955205312084880034197032278279314079009829971047622704086911597648687586390591460862057288343173378729457163738679320520451612479781179814808180070347115513539597094170206542134685437434778987418841730617564471559545961755191666030553118036480097116328958530901937477739719753066379684140631436377017732552884111365154537418188689092535727565623617896463356239656984512033475936855917690827172577685565050889082989754833342643556901009655835054655750211217227586855133207605403417684060270775586239968750297879812148506168356138269634118292021274026811353808243001090179318053725941177742872735952707182870610086050282869802808370850436991297858436970293998504033450593985859020876039990403262868742878350356484627778325862386302365672925657609740186767029780885968720399738539298010953861224623220211056649238371679872607810964085615388907744259274135326057746911042703983939012102299423515498476439840669370689725372617900435630332881393995730585700471991000504746127496300687908240674270808665310583533967674692149912112235974977382216839757392193071867700583279325890177901383698487311831949034131502379202979760082069715601616601319143130497217415381069214363831213832283000657041276338554471783358304495943459137307886650878486894955586228199290626227559285163766434848423516006589960425320458261158304128374581002915995159362770995941354737672097355492901625513483108660727019973656933960904207280191602215378843282932766404797855630679958366771655197961944854455828164075378188514863910965945467715621321117032365788158597162861837846077853379608221191195441356905972453541038505189649152305793798399620342004551115679787373657537344568054416938375695432848505676150748536769540334557934042277888020133227450775095918946007318621061438867261681186997393938620614174699645773425374057183005507574226936950479198150500026852975127874862608858919853113254700444029012817800039769570817311472719939767543651600392372981822243147332994601504892738208816085810074762647973089473664093191187014234018772534686801535963799848977916112975394426369808101285718872739743227801855945860772560124952877818222597135284005649890714697021363303591705872045093690568075683548967895383469311594123643126253127927737397977523769585948933457735531030813053331127083624346242382419863980199259870440243878616693861536864940296588465630632423935878818059877379233218112856597522017613044043808510719587445498620256059406709513130525304200257340119086759715028293697508696934920298348357981394536562661761908182493547016691929180896888191416410479582638556619216004951989469603600254994407801324476727883105041481362525276715916822381136254503632023464519224993097001760587356563822670848994184013269869604467034489125437675762882720540651935599341037284116169292940867797109310255086895775403049640148256407503177541113177547963163123754658776602183694160254751811015787970974372019677000894627512994790872857233699653313370574971642347455194485245531964567036035169501119580848678607862775724388338509398457498123322779371062972897149024832160210456013081138732073653252729962107928996519310733886493451779123235791299049146420104094534800062197731563430207027737766776082694419292682912850100685218827830173131638662709133753116241785318197417237275862024573606529694916144423543612009642208106428672101064095068290163508815515760107465863559538735329708491717309833615263533633492210449180790730862439954797830625656448582290208952172516340372392565825235793496524405278159455467516828062356758874954450424638048061030989417417955733435321441984375040873145185588296431327409612587570505566184792350363959406045615774711622958538139326660013020519665376522280854147810664145625309119847543768278136051644243025477123711648704639937548258514525189060958367721335322441175232303376679584205588827327523575805294660938659760163965894539221203894115864988844278377345092227867921795572479647817686535377623274799177072703946641212786942070321132331417428023005165194028699927217451930823493667032632361282505635668841821951547042402438592038298579146498282483980882476312247652308035370744679459718349355822713645731716106763369266681023542128738037811857677787687122002899742202231566082319690375179781792903147901496106065165772090263787635080257314154035555305941783109441042874365823117551745321377333374922483772139637117753165423808710440771387518140891814235416441873583362224851537466184667527483933976899497237447009959584467725331652823218260879568367525735752261500579357801789827603913860341336558569782427348748421729317995889784918356349487023415511605979891146877987443594301977853213019670630363473423795637428350137933344004448831690550320116946756736283312410972456395002500371688506183317879603231563954059080773026661110809410994208523562670510873962245416902801526557871337935051500262463476679182805850342926171759002295718011078020461717185690144496488854335791414518110223683742971452798441059432901331540095371308964862821907813506227572532066367730838587337685341070103955633641076283985496322140916851272205752270758891847928699020235074700313687499541908519388394962631948828854076691864225554318856025540381370909271087636062405175632180396721906212457365930646929677155473251635051894976612278685991535826054551415255577708106651292595773561715901398226199219720796111576963747733899915982275581582199775304929542370219325399759564769495702432588510781230583947883702955264800229649082189943276509150439529022579640728994383802762016333219213986922370881521569815165742653225146200406104458503394536027775985010956689319839557471036632539457812073198352433231952218688331290275479189144430667913152383654462455142177067366193961275379682782090342351019000592614616161320139735350039526465869389023466168703191253911557028591772299248030697282311404138381225195617850636286168311361220793055093793586041707078143346081863600808641486780381496065028083488512116510322963150993934660532342790399337146401548152778419182145244647227070737044979368152330099552816268220708133136428802827881991906840680001933511440263923226896226189541019756541204691384121896785233235890371415560836359067468416593200037996912526576679053148443882069917612801174677506432363194626282408958480301257761174591941945163587112473159917595831862322870179718219606736419576408686427038798271401419719956248975179101253170705803038280155671985586348019081908167360727817864054650520421612616710011466210367803555608411451445784961333809015029747039418283767312865852600691278798486475681269353176521618112654986248438748946157734870966778197573657690872344414838832514551614298446759682376178903040686925536154376535571009770050722221821738729214479551190028067050880585713068255003855402223724625324459519816980459892370921906618636900640001066509410561347723666366369882865463403272300216617031845777226030885991961809889856515904714501490707166083666794112512803030924980544199279862300376383709910050872962848060727060174520961413158128913207931558606854992008759061803549984722271218578371208355427417949458562355555233861195997257874567688252128538811346805656634805989576732200277102022793355686311837969215897161107398580983789118069188535693832567819925547671736502222352534773107475165644582469522345005165861642969773361893065297725718414471827961536796625599309809461207884997230555939707613408102808176679899832159310681942416821485671088001738512028692685891384018846784599253108978513211503899080966066660521401825510024700486049842481016872077751696690190190936051631506998678216439146771034946661669061218962567945330167716470331154522565628510110398336047309905980636165228759776506613843651911639377361764873437351902321263836573063669711856827180852335267051167474816918235817909893732486693392234359394058339878227930474086388714666257959499745969556758104553662585824563632212890332259844729276318525159692355969996189719804272706865243271796832791462357111876761800957555420431705590695870364564111164562134738372634892376620576127265039378421707976585240224787181457744693442193631661451208047492426375068142530704994759466284459099232947186155195627995549841696482556321146927734650890841517746710082952843453167155093402235718558683506609020526727705454078762618088142388848960606539741569190543539308928743980606099457887432791005653233003115185326048941200879367822085183674576606973307280761584704327421375015181924842527990126283544974207797280940189056153901019801584311652526907980099424965949367566387447948138728862912105225756861302002983899816983375906172603291990267963954560988063556823941346095680408098182211275458637021349563618999219887663082913425694072710513068712308186857526623057217781489726592238752082784141243346734180986561372482925307350200912548125931376389102086124182783802787139113025180979210280334250546091167617717843397944566330225018521524915667146866661838458463543082444470676357278429634494633561822964933337607361040922610910443861547102857804067136916839932216916438094923090929789667975861308905797429180414079240358908816104752031470058657129166347376659813563282067566133592433832795627900774404539973411241640124967077183824211748024455613918881852040238064815453972433483875750018058565060362791904415970784792781972246742879987067979745074752126784599355290690241885426829181397347908732521946691936134317908988061325169412906394687208951993353133722899754450023021174681365623241479482453304975093429164454611106065645076437058794074571810583283887149996281078962022118322466269970114623974279328351552064164656624857573275280109700790997519149451542721657218228746117223111234363144105357783838799091819251370268166451058030911131647155510957421720244358079528859160423379121667699537063995563188608008553114463663076934552337205013826035184202727071450287965397600330921066525377855188609704658550031608930898351033268481903138508209530729585790411950118320399038474360316487262821624112074159043902780244148284228863445006727235765853083328681436237291213079238719017923716354729620483003506088627821640573616739047895608291586073544055674918477712997655622634230451493586449633303187446179430999082223754202680663488555223818928817427950576891350936908199093576801260123716762718920778796296136498280014390003634605977031687012532703136383265498165909112523039983438869692940750332706455418302557080062931991602151987373396631671867364556480991484616050688932325710446340707661971227295944739637483101041781141763832600522101232841840777331567571358154816134343705687786062766943517364074382364984731482818675794771039148464532800214078711480718744255216245311080105884868301952414669503033654701166513827159323933917387500609651422635208683665791279728777250531952474146119927286718291280108081529594949644711339644392668801935733064931409147356803920476191691126026796673578703088422188020153435229608637150345422928763957587005896646748566323009164822945547790194500916517643307650558092118746557072552949340659698516068500945248109689257373421583713608335643900063019852847076883903052543209453216789183589578852671763062463545373895632126601935275470725008890456283934809745813965194097594244193858838027178798886656618548622052019675314052403648374506164765873255061882887923850693145618864356397462523813955479645301773097357891850287138645244271677936023992311337524833431050544576696506103263738027242376467464572903948565131648143164808265974972280493321964981959656959056230779452463084616412862687159817887905132801997593214919890033167788953202816977601625232820342950560423969180529734357519639769697883296629178393121173974056619304814807770116603493091024165497229025678150705989388453733992223097663859633783320833814850804860841762491316934955953137963743886758495738260963465745382037167337419771409062276500126801636289291485408752144391209279669715826226219452117421987145246920285914550607613997731698377250885530674461910206906730808123291671416545273444718190757173687826540764860095949140243979077039434300788574287507226620492081513132528842428125664603688604275463945980228958866417353966245850653670063756362676174285461805966551528669808382736905323853180003591400959457181266486007991046710840704559280916065589091432964223967671756214141435927536779448416184907677985484277920708557516003898165729027843830417308283209208057809726834913465919851548119687735091175769565194868764045078079882652608349398790725972875843129412567134857472937974311893864036220040634198465437894191502296099908217754210365421055693091700374782641130549019753710721452897358025801983402858292680681339042156774573327085407634415704603760665777104470169126605176551870435117909664691781873660503150543769620847382661497878948699071804172577079870610156518700454469677811531022907069190894262227245625445269517762431655432815563866486621231570251389360202359035483549445997260400032631737339113396059108956221193847356815252762415084371006515916408415546336425855826675587290545433243375508774000413335655775765577200309501382421482040304712552023827086848223661678822120639030368833489189168089410112738099268315623352447487764949407500378322535617640355918126087951273405156392324533002699918371590527337323643805089976316268534685961116409677780523020736851033225601869133295386796166038914963010971697721879048818023623463825186621737824115382123202871067843451417638683624990931397183435510789150424522240491783236434838155653023559685232034410755089793240217761116209496495223481551242803253999920712425821119863198371454717865365495850225950419026415403391798105809112288845561635490642384446600818328163826261044952330836708764446413364496859758172177319157220339060472427314032666335676743658324061121650217280759157553618145722483247931486971074121738700179829127241552301293844926608719324602949075726350956433798387832297544335964197953675060736973015316746939158425855269953680910850335347725208498475484525103689144143804475612828578972070511172435089775385185045414920083257585568466848493424465163039792936275678365148178278186932342474492641002757241900072171461243272266087626727700415114443013680664386755528908298881981092624416175014446147318390649619555954956420186126864092651386663585394177951451092858054195282054935806969388314717793889843325213699227109119017305605186594773414463243030668604399723469360810666297234020442495287571037273852036421529532176971834400559397175482235369450841234057303065694585707981531786497672583171074455216236278351403454814364448088999378301401402159512921484229963047331757029168168326786212054365302390495092612539625673420402504863651575710773392262207993806549737076967870296090622953793059247063529534837851620854859246116312779289403387876967877098943538783075071660782696992300831107714034115730209315132135356364043517741041124076520415731230686482583230942567796986589765576208279871375604384849311814056056894874093186002229651347365705644178814690148764506494762861443908715730255545543912947592471475898780701704266854379999350930513396869282100444101955920153660931204741670405861231401974102926184130115894760853133781769751163467768045829689530005527475226337566906586517818997857548013765811050789720670309644538513604205855737151169319381775628841531528721807543423170210769507484730238570279084104037697610368066566460033570290556372453549378268875603309497156636928791493079023917873504433055221462685274042987287026558805050526012338861885167906274156642185292544390537372339562617616523593910744072604848323592311630137939704331334859571380251063896592926481422392235742072490164076580417383703207645829362877887660760282000339393053809552859964673506535260175828226109152077003855801710820693408143077016724442053823767058995131428205552263869456149044639118815100867532944878439014389503966656958241130664995972451653198598561209678732759831238299524216851842349891615137069531439015343971687217159379504260754615255017218021081150191855281253588459760327931386358645025284411382577312355757728712599801578142319135296272333640524910650711195292260898917104792118614647732507755866619875355723987946157673501203285341760937396812734732246907243407224553743397975790975213000324647173047834540886495417656401439238615627166536795288636323419312728553491857327731332255418866824248314197515897610913995588345125205492377047404952140098640140177726042334580281891858240078777338831585173257247871044118589556840095708750451858162694681681866809190530665757579992513296630487690083884304223750204867616726593296679025718246952763536732955409254574731096021228166962372419559305678449518452618504182898915245797435434045369648715926161039198001090420883103720302400222101138995088064409361855643244036512180501832100753097422239291511770580665680357118609943086471181962281840118276454157006567151252378685769873825651912997389603192737018916223335639860277054262296912433804245989582132731518628337620972601526937781307876596541958822932883265031565730966475734333343897048614598241032090548443438451795618420550676277094994236755426849969309725531778288804690458105301402142782524095656446735094225327183469539046079242208915501711909222329731275140749439850696409400434973298764419995616533800936793444440914283334131930107871976197135537650473302819696941348436941336331208232038097479743699907655570629064844424477088784867368669220399141981199643058489454623415528506903374290921051363878959699242416330261335470932191288727108003526017426728139032641132790550324976352917527315416105310968313735218178199671122458318228610898891010983554916723031791334490634460026565102546072697483318060382612742353498158121767724788301984144340323490211474446204807245107446623738195041011958899410562352525711082807765601040891429889979083083602252827480736422804991957395817292842362135361595303782331899361512981415912189447134604972460231558470832524117869613276493937021337460941506980007588018600977544366240086566928403726028276848833650412569945800757186094451217745810348384577821428092212175039570149924865271269163378520160942301803393814395787854292942263117588826301657283609874062113336100950833390330240813408930579519207508167753508842644889527723486186477877148402603690721863798104969856511693222088139942745046027582568470904950474198637067585268782447699877822765782389262799510898054934448574137890228328996832951531511980399949777756261596925949025461809668037580865529621482934107237611376400574433700221234353064458346910886741187140510712093920882080060948111237294718221099820064988691149145776258197742578003952016173113380472154800800242573208852004697550625823193210377702621037941898263120601364636698663607306155854988075759383064504475216508518394208077679017337272417955785538475184188020839373778446392476733814866343220413829652362857525852083307497767375189733503499786412783372008487754381942639045483509675155164200298758399928514209500710590698832503388529434063605742608130214342967620770898115070663328319095601195858765679973132477626371275455326354126092705352034680824948921453842916265728710847031531651291406683621754536334410225286181922508949376404678447603859088353389771866159702688579680430120892685766710493673200361253551475467022447669086851578871556553970570411474482429444399686741692845372573917297104949228799447307679917644486735929601825788221545652411216488406881219517138238005462511978550253675878158505821928102490187852130809051718642328964993479730568059800095559584286692891732794739314757608725525337492750642621729068920254631059363197535102031247362241862229062567003088893963585905895722339153441304255958999179796838751926547871884451315676362388281130765835480145555760997265590323220237232020227945564936687422908263477711507084111320440589924947977943029045353994489334902628552098639990317815324124305217787532975393772266661096011339116857875262662620587806197825623602323732332334040622226780992797212778437375866107526190947229924267763527671619346246509164267118601192672360310217895590572077450250812684444025073367539022761768819259306859269504065761098456034579586120387071740341765295431374028264375178748139895288548923908119451481078627105675926485743917046822336039086567125834242844999972181468466167714845290114155220018201213117243275328886122492303046148680107007133647284376520426196221656030369228362886303718660333955805801263152344646390416210710569576686652570639962939795666873294324037628251992121347245246805363178964398901112308552324698813711455402225150143021496579105304801483212200062022888460772855010172876707217826030902475567000485712614866344841249746346486695859204649555923528860696179878604743336572897144962673661487366335230972237059191261934784314289673004632569505010572843652107561070618364123515483138445970471078681210897452352085115081598083025381901106768791680009577138388026121329986589135158162020437501068393335553397131639698169049857377101306167388693850720517579948781350854050874025659936645074086595214068059829986052621337349983292427137876622646195263411428639309882376605969688850189543983223956727517190722564262164600283171966103634574400649313520897630126353065648093697101978871449781124277145178517427066019176586010535278584188374436106914768264482463001167810006282274304073226889802878348493543710332976123931352171431935122142111658218203175885630270889420295393778697387004360638512723606614921043503452074471034812857564736444492436750183704917437873709073271840776876917353006800183434746346300963592437303404273821319716452532110043173508720682894518725137667975480756359803037219386145777321485345710655071205428475027002712961331793954994882927975889958587441932786066414323900575253125983471804578292129121871352196344654187510164208409742672133792678522785568834939932430196933128687632446887485919574612767996473310287487396497478938658720117710796475568642692510530343707279443992148828740867193591109020187934756630246006169510166079348377674969769271382736754426269560615155336617211396585506746983016881097280939434199753787840765877234663775054827615153148670894135334438913004964129619239366299323754448351585682573292533206339422117756776306599252746608411696693495627269285228157666361197343568886112091844627652987944598965782011001854074218228375887606867604195371598898777635340568943158222119358316622418108529570510852655188298435815904694556433201949626219838244405544755228242391310991139536016062215939565963311285690739942340149940898017118309448400673516807293621240420438317206011908435474704744758515557803079601300547514193592356811418955710510599110088981312779399392035013216909213737127189445341630353154776902063178554878093969666120038233819287166006956951241159320123633061715622513075050357395131205034593956454960053443955518804534679880971177809184799355093697524657117202018308138541842882798889605788251743944872723157267113999146601257133351841898479632398665847532993713335309065136200637968619414248942427302060536220154064809439992206701310070141641995028068357307412533822864048723739129314260934663985766829842089012669124220752942822062093409012571107694840130542539302803502597858862849944519663539404276835033998723928591023498715816898054961873327723919934065576469253292490775898621831856009694214703590225907616935714927269104199027121716254699378311530413554966471736601937193502762644251258137710900424670029201871729594128890577157801056233330769270352830894933673416367759392311340222395683026866376607882243289599588988379852674399704211916042091437736520556866389116450692084158109444621189724746512134570712285203386375589472400178910997331555302284434886749664379422744725630081391601591911423713597581294540847511373839545681204797287726992003637399701249892547732291896771917751030742250817966141649834617673374156624360533329596902535274482425186991394443141295302193226711567940989439275326814412036671137585661294420457384413250951497376854746962750110459843143311873868732859637878156669596821961178146398299277554743971583349822239439986492112303284107982375886606632779530746480022571981956671196214995005466710305797214573100805448527175983098885834424428833011596195475962302823316715178380982984931822039033942661765663189247061262083939892616501577138146793630212311752584784380185337550211489121746981883374126386025951894891187045095616162061917769658141223265285239183125613141865590178041344777645251139698519491645264920984780964957769387658808222866114784918095973762573266520668209372270189027570600407341947464726631210779015417092871628669398561611161880448361079564103487953518104029715810782143228330576871363003120428910387748481394924483256675217634062844082547619385232784762161057136955694432408077640606664013950270546071127392657393997473951961873973232290385315944363460443128405757851334501629141488046276171919217850507973476684336974645934977023980636694200712732172174015915878685931724869665185182525298138176757975284538492003190664889351852162613467841128049862257591960098199334968230917911142928025356829643494804010127478935096058511846842643250137336574421958104373617804767857511656943044934038654417927240811098052371141414175703716774498915739472816206406015305257306592364234493042741695786355176898206849306810895777091664917067694091953910519306196515005594566927581306982269166816283843182013414362672777794873526834654593644166935044369165706166386735388297901168003240563187081415390792474875421733375737425067425266877627483662633884352066572209614472042695169317033205627133980969275678124279168269326566907148749499343161373773875348732926022517642451421074316548408681068138084789287259304092722633991170538863746370156403501363475430120998032293213204025931974948470197911083635963839202743086358723719441979201380116448184237024514344562347516059108330075494443211277678424991345145703342901451554493046996391928557747104701538481847416302267322831453984477619419791682878599513552543590796033582878500285127912068992152279269139098883949966226226279833492251768590907830417974376097744799967309473905034570018638401501254288907114002366730831266881960817507564639073378469141205600381032978482289562265113697725698301681261859877581826694593341529129491562999288464987906330264703846932843864652854881681510169402158442745372475421223831952204339031860162047882334325612738898107012072538967691839971250756447889071787499251621111060637165748875288375465724962745441927452013644302226473584259239564308927941295073269587419688607258015367212809394950022449941212464087551188985520081173131703432631507996303667949777881510990241256379222559644041165387578609141423112580191873279277375140038799341240430430491427032163160086193104366961117563588360108467095085919311923310202275613448143899224521202449301788449378829032615832072234118787416790448949470061973809140270694005176673154381279035794146636907662150277336558516056543099147353089051935460452979166369469303408616764847704164710134631143523185159998463332167299807656590561289144341225070791372753220624689047412157979537354022447909512862232709014819289981210031247617310406743178240409192278268386171129664808225954463789134375242341185692096181647835191787667804020368101781638043240767405067135006518634292504981062888946544162936024364051052300968431275460671165034123732535901685349570186161524056704365999875684442864789094744001981850063680343717365664543099570728042044127595081905865185000056894138483575686185106685010941001837799222766366084413955937337824369895080750020106560986656727380435570087357292908517089011293643347104289262844595905818934671122786105071022600869859513364169434214001382658260739543717903764961500501230059970267243512102870993465951433717311970279400564641586665929042808839076052692113952274806423875996389538446571309611472059739098799374205860011967453488714968617580289106842877275347767434944110424549118420979238628538615538188737336289042672213568397982840252187772207712884218137788794140957804837504734180915631062480826754749006807515724659424899227868749860580450704808180437338462972994231328624458934078333553635431480922299135338043327422030618867830042716798986655928987476940877583866443496472881866988448516510521380306699506446858100703663790215073983100013645382754927058860476164741255872084477883927841186497335764550516660986070070859753929214019674861662204711963621312485423373644901775178034882635644985477861041649725720675994071542411626303297735805141509731090996037137188000988607671795574927492136681424663338302902455259428195669552175872861707603130937135337469370396932972301490715675556342556817105609154997138950770806538684008886913770652069655998249302662129918725259072453816977608873786586679335477159859142981823371218080025793546935108725858216398958145913057854777360659569616355044402452385600785249943890942124088324620579411229776618266582423036489809652390227566533095924517993148542689552935235450394923576838459986526314480384798224893502422092613249384979456857360941921438354936228140299975049072776077064326801790536293744795778225619972469486833606878833861325434351520720903661266416792607989743834191292299212679357700359232127954140541769950057191367188202662918778610087862148488353707490982593240853636368243436931164362203122742950327366541253897686830870998527521131927842526951383925972579237236829466238463192133160092040856629990780127355510692571391948306195596384693615019867726920662699482307535442801528215112790579173770883261621875400842488988472983549694120127867516298665401061855143356836085937361678852917890605281750048051346698738935289499983608914423134041420099235045462309522474301426046495284301102432992790519396599791483789843464567500501903646277111211710828940490443727780582759849426829682247034647466355651662956187798876361459104591316651481199127694278836934943202859946064502588292738749053342560194860847714998824119847631648590068575996808646572587326497386466316451978865631556670547427428388155132883808261379094401525247567148666980236945762222477315746239367835738350694235030320634351915093406678716535597782857021934032908503384358199419424631409422353810351996275048630087196527021441695221131164009638079579711707406027529681943370009723623123198889062147279040343625145110874085078068761022777245411164924513092301936156056313394963048216343009699897291360257352382115921798659707719718572702069201370577577459652547049622772654156065361144593161746905281314680244679063658876062905028048408916273963096582433561539551760580482508654752314697529543719236929813043824485957740644596090385173927434362330093770845453770353407594530911448603992376015116056738053632101646336750607556590514784923537163030526983904128575528417926057553068925859715861575861076738569285315592070799439713647853440865034959524177800539006732551273668074675924670785722557980566129435735702988867052914446737730667015845889488653377217885745781049299620303851421901111524088271596409700623740239896531697143734001706231206737222776851072206998265083764243843602846815556647663436387201068563076629383120654098909824376403559388938312471709648124278127947627834871888402363499036383421065151629808993255818181394069127124184621011022735274537050008227801863883921624410306483123309215906637872144110841050801491316546720952709159595726334654337035541670408796709364178542921317398305056353946390422423277758100205487055301084235580149616751682506077191929023107525703892026894042988228463567350639966946643897483264843446178270551287993335758094384071154510905964404264629998664876043411217969983035975670715082881983225244496046306850372648261662777353731453489104834777580666681296650536908213769652775279749430613493905680281205971710236785092761466190147319443680764520053506506680685434813978340067145141011778537989903277120404092238156434625930997839780785950940210164646101719451357662152721338912774302676160478210258364398471891228266968312023847687508586734407129786198883219366933851963935150677884140570747434258749845117591028421833364142089032173247298248830229545574888461119572657654506337753051678980687900813103757606958653418639299017197384866020686628719472422973815216004633908262566426621534173002629936035963820141154340141652498743553018816546738520332237329434031539485822660803962803154389652827598014576829011126737841515466834820311970082090188021212064141833823656779569516392742919879829526412928710959936522566612769797881730927673552523495696860215225271887258373221528382943787758151970419343126888912446038073815796292643735952734941872582901446121296601695750831619908817721608980874784558322415905801155579587889339328108862674700046756834391950962032951140879109690722703798688961951380675618744349310971871332780824144624910680827508318064909435946238502001191301953242837768038569355261445996364251032572932890902110266603981306855184484472669985690102493273919236781110334457409660238760234283911751714987063301530520457610093365952584334536731181787157691156234702145763293370665592514161408574742725405368514448871065463985479429512756668227618853598282017188595251707059208872562753073039964982312951014935394709975837849825213836304400034914873835636803486466252520107365171693907453305499367774506685126689442774397032304855520996697993588748843211800073163795804761923523655282243876336161289784392558084409770167420972310069353103764336471923843892959820456703998849261116205605894079812008457405379375889465885706292373805749116800977991217890097855831220972738660176293969794573324861589539080722849067565799150674486240847280072976831727653190982027146475650299691050537468806852518288826045415131520716171238539575814869775326342138176359179687381342130348921297587422952290639063236879246697697793357559662132983576335771050949488352704304216091990523860932980814102705766600714732806461214342893115682295302997585598915751019381856406705166317021966252778154457676343895184419260101090508066853227125405841473648234480324449917140691250605010908798235892441668014063581221197424043548356598972508934158291394511043565779779947184325154832641379080019643943058669704061489746599728994854840113040436139900029819724261163057492638320176395034002583012185416766948528791020952209880513262165176341548154145774277809851883613341659628400143300918718479724324425575273978205549496808960877906329355586155921184714743275027006369439048165778414061343219835694427804218612091634431721987735428451848310193023874911865397731698976140206101171223038150243918510301664973853616925143335748549098255381893492125549228274001945903249687189436420373485965078849542510105128904788660156350037673024875674237244102731818552731006693343051087479224977599393924457377345955245147903005618105988031204402231720313833717464718361526105765931574778222531494527889538486243375902902902299044842847129911904944644719732844076838598805387345240700878113970108010671842829731858409373760962718274731005646141459005065785565880448581245930504296209873150790001034440057554285646949206255318058814388368308151159139755333963328126443097457275952515595937261595063234136638805465276221659702764285359031684163642720927654215557374663952945456779195362765502222450460377837425787064049434177987543768140911159753855019872942958523630628595780133600792130541760991234996815916996023857992491964981204497089688873604129633728706573139260130304516117514815243815529440401062092576656020317359131233809545878888629676229414794308369024079580453338002460110673522777057554353424364811612527991383827500625310054339525834449336604168020438637179900627676599406316879564286789225563615418898426673032812212840355283886168159170638587742659979580659791256178970978326886142006307149427886869098837186287401023875533807756291370238570973626692270443148752363688717698384469702750627185444200492004831016450921515389415584478445753336601398647632361756704757644007489192092746953506839402849287838342353253708708048260224729156480300080105017625885382083165669631933584290100512481416789036636589881100043846577020475355206304513732727407785208464607864640581159071937472719892343276339956922684027622266268762976518998102088192081166647421740205309316248178436786320513751959941398301170742313464638542539244640221100492256731417999403452429723181769719732995871833618957489918356723209802049090779918669229007445118613327097565755575331751512957754395584564085183116120990059381973162620694764124512511738663433097819000542638075020079909301601812517625447350669266546724024994961474389524284705728463249856266072580460670111040728962566882137389416273109319509206209022799193441954957054731660235889106113829971776342816343815211500428638608977508680088678174073630644928397799650444465287875870914676602119070225731511253526000208889081097894199359817335354777291701913803953380289754694535773897794037162208630255088523777181243890635018435975614715748344493118252067909354830534792572890436193184156972291361589118250968008748206437433262146955201680799318660044156815992535812564929494551115572767499528272010922075372401148836314996059946961844642702922398069110056069685466629968010721263614653857077924121848321957460130516381487558088457812842771834076699801279969685298153874348972438767519767468259214381103703155018570350598779888246965603514491186926114764613163721215905665824556729588841515829824581046288271115117213163394583126027384850990885506238574537861735520479778618617309234565885494410354755901893089341846312132359064271944723670728519746235751963090092131280034924244004399583099342761124142483814973358296350493990771909283615149967394948236736216406337693312490683733094879056221460905795874637800983677075983397124997658897128153381117077975649058661607777971585749237840674232255081072141513122145190731310326765739518656529177577626828009520189950205047360679370678130736274595212356059164715568519463003195932458059768683973302610661820771730630452614988673986300307741524564958006404821308099194145162631848178611350597832255412602672890519170708973560030873501413930508446242296941360266535222257964982679755839650860662293902200693420111503883710063021379400077854936175678013902349902721278925495120766237932762119607349330679049208158033065035955538912469182943849642387088083350629310431055242962196618634926200722799727198124661804062315081306862178288655686428222243350126484121301980717790500007868670331680504429826815721281516164357168726806703049096327112615688321374770014362874155282970005240552296907544313952753606417092762678598476961458771906866559119527701638800791382286242885939893279746418376311369459933513787253674540441345673905867531280084314576851042890457787242966774431880831623334693552565920570771537445794756240302705058541599551081814722224969017849684474687878408837021429169118191155085949394808921536533478150761015490156382702700488921274651604858363014267851538421995835462660338961446374520571999476906561065488391187365467246955314280656522555948625954790231138784355888776913953800736564906291006494486022099264565317687947241379780305150054857194119207037665908899408100323717443968143296701809629491560057438012561192634073626955936090289712034713793719776992113203003779586134126169829919612788433887957079875852415284560273555650053046809531843301567128835525496276771974412039154137049244375002867605721664953666984362405233842255556628284972150570397139948632674335652769548674819936500981848321988560884890643334256722517808802861473074848000357724013122830399772317755997098593666777304297482533677382178500649240528298747469550724314761592305426340619132962704677852334116556213108598761026590686032927929459749759115549795418212607817372880986411967318737191093435916892221026942747820677253490009145745696773806233104534191907032227326305025654008264723345475243389096355316213560250608639639425840961711180349445210039104139119239996880202673436438045363516716594471093112122223876045366304524439580441227104592840746640858438899182175353103466564468731974561124130188729116602063803988394392921870421580460202186939771073993190085638361193003005129197251796924861130017131679894446759572750451902198219396253679400415916543225742625437447958627974475180915796480564408008436822480189848365888793496946232020814663412604546647289536295339284882185929807298310383181711677252359728411796527658774483500840618399532190888762557998712772418070882148891894789055964543363391610498105125877077463790414227103945584317755350956532194380890745156340590139736790308106268561927951628361568490834837822719026649570609564085400068408566039709932130531515192883291858303094924082416364804604636008736556528392327529681337641652567433374590144572707143753820930148217116497565407394900762859051482132253270603054449188881905320349567856788236781037579547426329153284962654791284514837158229783900965233303662277764650031141041473265832828130414656571191768143747016661387238807440026585392496554808236186620633869266131971938173585194153921331750719076245264444628404828778641537966010501864226355995253664723670850793964731046196315335033741028901805552856755937748524548403051077879339108163846794811589111514979682344748777860766945247082240087810491015766397620001766242231164025857146546537597860477912811342708387158614032314560241242435867339174614957853628095216627424160996633354736059115096520478520247334058044090891262908720893066762102315667408379198205437785342492803636578467268429777545834121782895284347409142898230647370765992217698077996094628541511617886344876229035133028480810589413336480526624055839843816108359873654589451593654385848997712288853934560349817155763321545504902915279600315187044671064241370289564806115676428952980362158941512136493160073036243186392748362686208159616565245400233355220253180952472308159476618119694806482377927046603483950805705905914234320019134354497317537506594304373012081281285537487649407891119186326525379700072118788959956066234265562422140235083681174499948126361053893412226628735350129221395347310143489533432720219711592441070856609942086728620880998864927486895322053002628159457055111855059236324081732638658138916636784469683115122031499731530289493616783636198061977655372046924089813276989934582761957900760048208054470013841995303803910618743546165519066877865455577471972143828598776594545366881141626406398032480229448440981362637361433922626596243476792809563876296258194117733238971235560854671107799927555928404868935900908157111407624123281540390825827506391846064598836788933351923566490682302256717778300205384474085244103119261137478862937061028389986303788276864885071597002350980003786948931447262978350068363495831514773840194335756347773545705743980376716435874128038634695482646345902486066599847321814689653965877962588742323173305624673587541173257698786306781097538746904984160101986532412050937544741626620572839129108402006831440476064926355036611954761468372888322481250717479096544799869367768310930918078831652405177065294249462952595505012263944968327002567308994443140736884187871527386697560565499083861469487771663481643526151508090825953630489284539941778227407951168361906833250782485098024506605927347589725908270151312636154642718946803342590929421079093979613268510840878698268433924169982628162268295790118296331317562181792151392149453819196536949513230239868779789816843325554320268477423925842768713193347681827017934373576805597478746287618060136259912118869036984796431005473760545838084262732195132477557924473362780767694494723295983883445547770357868860935793885639793208747989484687400335633389267633604784983267007723750078762691757874048454554565704720370485781443740122970865157004544161151887508663725581576251799139787430493969816797503605242718850564289654201349079149140058414185613132585685703999812772989505676585333333018245389413873721663501502113047157167886408194710956474426000307156033100940189879780063208633727479840734517859115122793871631411858415318768383597673152819539530062349051229714930788451926174396809141787724941219938777400728417879218790416711498705839623633358935720631459608660696550063853515554511949780056328214947077705446942477618835919960313773393428825048414302897978868554199289155694000790266560615240018475125596635782513557684035438187004667666388707199822710099946427498283904698922900107642603982152729714457349371053252353673017955843172098648870907201217763603998884818824385171490232963630600044221087709059688113617145686449962751003196366612584928245111484631855120170198310189933362248389265842794650990873746363571140812498711346478027709783311366903447598811469093803178153387449377019136456972433763368190208815002981984944943128486752671434532049706622699941506544221234786294799928353809869342845426967866607540289429305891528198727462259890391440412148059495285006889045931931677861727474947825581867938546565941933519629012202781327453780342444508550449762854862197825799737389198389976632626425332275814699035248729665458848706716974690990316398938573538534606539657236245030079566894997796573494303850643423298344358657751067327198386215086563318916633747548714191455297795977613275361414119437003985529647517380114077919743796576812764810870200638671065742019202982021471689343813727860910496612018647638934785077837629847186291871308357890702365431030556089489435245798313468578909929957618617211207458299327466981482188020811100579003260845202223630770103019254044153436267647788263974090720621995800783595778666910589447299928250514077828384688103403789739384689660147923495018357172992999234418974916764719356368490043959413254236901485143587479601018342056216978253790388995218899245071351117889411895563971084155390211168833948805180778388393446724866096944289797963391263572792736159320047818443548068878851299719003891472073901379305429934842967947529270209385595268833144216127593028840121085724463562938877272123797522245217920382823239558721589061522595270222143636935692432458979279376958496276066115445336852912922624457408799865596722832147317007978235992601306048315393579540059655356709229679039488297689532285728236050421006279539667966223366868338427316636116280823897036828373039878355542653216714275089113905777725942439275755993119030981982377990237200626223912475546778291779866101113650015661325519296180881927309805301483514765657505701456841659150185826078663200179770313841422661588893118203774524026662740766689927900057903456218514495264320665945987263414906879199399228320934401035856831107674867994804019010647128511670476023969250838459883438653657517217341766376653658904376998605436312583470081193527146121214648707964991929720742111562370229125541902933209669289680895610561749280284660950819641408329362940469158878273457279683544973234941991841390988733547284668381600711297843566965860699053683199183824543509630154600195869588913141021032593066049810723784727561461830997125599872675213990123537849068973545151418395096603746956532142352185829817561039041040621155617393774069647754928357728928208957418666167143736984184938653577212248626733429752193287318688905316997405086429471496259880668913488088030779580808787734492452357948155941190108164474720542452667691373418055784904595674248691650917990127063813703541169879729558416747481385829623289690275701514538698165986377949025144770146607566537465992413096394985277201817197140555972024186296777176394425185311791224445733001304131686847152216355601036461465269013303472224094096374306930560729139317381216527817903826480659496729401618017010379391844479972671473633927331728090089166813963529283328614206329048383565605135872741036381422553174704157259842739774212204502351731046471070182234225407467516591324882599332174302217159321546963608326320744565586348892130244746877389898282401650087333239797180534166526913625593968786942651957986851095783649852449970892074769826949462397834476075164963093677701119694425871812000747360359325626091169500416988272958968404703330722059116365944827750840655978752240746258548059705701012349759659081581197467610442157645932813682184375436015076795174474945926584635124500360735763383159477009263228531571464376793093110875741433363161281411452146757020675393119476479709434216230689776378218491666307276439878840417714398690493460670235478757154810054911605402122747023859508521937300570770887402321321113309278606380587089463602900679239412936375278068084497924704813256976313849483005717352024021785983444178961695378623903525541164998877286990678169484907918294845585176659518486552807104812633407657638938224997972493542277230316054085944003298257336252469499238190342138209322760273212313947962964683206360711772535596461229959895460730046792522598217042868368647821343950724973182362856516992424209304164499232533681750992315934096756629842813178706962427336211617475229636029287407042998940689972918755643241493198232474761030763524109495702781656949910083223259731579602312827283006084895022880831852180759620071600263972938923433567010833634750919497268620756897598982862900095312165990146939615422084621251667618563460322988713415918219556271467428945229817771094243588952674169420715173391663638390820189647913008698081755445265099942718130087773437946419551513206866508267921666934957731726786715558903728938100371075249833338948360483948232159704723525646139176558625044857683661350422407336785684298717729944784206151202629763893511561018603785440189152083988296011361323006117658146774070706233065279205256811485554437815131140766833482886339513218565660585255876963424829652504118177974738716978472701428850448739024131581463920822202103393588603004031715474026012496445947947107352294960765528466333429922289328670013537657513007539516477580516305031452118483448784196686829480502945846752373227013869360120425818775224233760968052768450424707685228962799043233870168450133837919817035104551080978008878662067141809253342511292477054964438765713372172405299633586057391052003836044456410993738568014137303005323463701084353700606605110360245006910935373003374910932769837018533121064970610035079881609693917395404279344021632878474301755597923913453772635373228642896064838584505753737545857708339987990609510218845779724702912734064736915975559700931961384453155383452652951749331053089882195201480883341491526374678113184961304093801035741439048423393054042011170945021973462754580766067674513686120283910210720004467812914748076749419830384217410352454536188371656043681025040949484572219756460788069421233080110379385641906871284021953780537844792040129348245475401134841338239329729495363322741359940004766722078104813161564529564037000755829872995099744227003611358655293987056306821327422808623424451306094381004748416268279443620363686576255750916291894429851745583603115704521677880556810147359310798333830920149468655830928725925924830603782300266576905165655380587571853487998254959589956517696057627844401441547730018956028393692824135287828610284971494502670036494659057861680658129105181462958402979845906768437642289218066235718213285524345735527180269699236655956126929112350991868860802091775143985283164054508313624722120644227691133119321741742989158317207496284807787893614827553612353683136808465219092363289224034802417619797551681612376922340602313616598553886568393156244412667130274828760545159619089758824296476083834478083385270272393568004557687358156559286588059390543472325002485951699600092558548322507859186929847728108671511673683712995050462778773263519082948561029766765116438661013075247163429030797040343783518957784583519938386371195363296038370675151729592911542454454843101616362503414399445178076285013685453319130877154612017740648797168226610862876375216405005678004425587383911382131285430089558619109198898177990429654025123790878971206655973304704007619199487547327387814444264093989223720600810948866373530665696080147899894880825015375287211321084869310164108199914868078710810082630447134177846709977798946130255567893578644238227741258226268092313907560352573346282977187001283499963666310675129330897866634130548977520059522543213373250532720564399463406367478927327404394873613077957316172188941019642142254129723276135711874712260190310368726824619487250619986761852393357446150272959982334669032776312939903361954593449301619853535738204406567545971411815704111372416168638390348447071686495767870357581922526207575944490420961931273609052308469409097219515831656905348273244697254082765873737801470058529520964793518918417475518925060573212016794898270121295440078548961054871226726246014727264887842902596767793054041252546924848272304446315745411790035745351358620150545170025627060059083834860699393450798812706271435619764631502407500485529067626758053978364759372462649423239848000085028834187286643590227381238171929363629210097975993792525164809878381237217176811048295886394171136702596067807455187988190014573066740326137962133901078842655360665492204172207902298052560251673649799420897896031062075884509890637485798082798804989420106655694173792453694929380669236588637535796915565962780567613309168216592463972519698947664311992377176266630236020878284133418424702617998821631875851702755317873842553245146172077186382240699697150468074723549519809717833663806524819755140448937650430283045230099882305773158935909559614987711020621651037597663591574828153335206874069695524513244069586404149417374480422009890560367484173020302569655948382025290895794642274953670930070573801785272615606033187251285853368391194610503088115777055096940385976736960204710319722013826046246829804922612523332837239476492241251476430531390027079190859969491101542113496229185289537343001407315892705343122046370674187637463936311804759087395098807952015632609778999178327042453803841613318431364026834990433226615147501830799884926383694484051256294935549760894127432589903261795285448187348236740090596959733747203958010103756677614410466407165943211103141767042013740165428284136176098585289502929849558420728046434600217707385940944786970362540863036197578143237988587276950182405879301846702580262594836929137875962135465693466548081203687220334293994183448939657498110423818436745777463585745354939869078787318380380142994689650611884460635780126125406144164028218520449677775325894773254171369969727471163740911572743538894891426015381489593131033875925063757223244854969718746312615906516855857490363717084970496991551270027084495090904491844269685929313613589374841327458822500540034160010184420097394610646068893829676831763637469555009109911756209361233633587711472595151020674790912956176313496400876516573930954814407071825363578476766465811624930928807184857123514384177391650586171615654581807294501733287083691430147163594941570887246889948225624068066559747104724623158791234132808863507926765692430099500657014314133824893302885928036239647031510871064574062041578111941594687448932087165411706312948010414668830195739281557474964190408583924324902881957341028910711464397233152224209003148976319166176170030356160134520258084526746886319973358071815281086160395837316666216164367346347983486045738249552356292438184798268440480786343168775212743476729881200883937363425025722183864486533899955839458145634745946122587716052952567126897672726500956998366359976920360656500639533905548207937644185106652273384508635697332525129344826516000588999213688595984045604297725861292195931923862611616045775871730793027576372354294260796635003464435360077198888576992272071453860205995924076264266674473043289762872329706065756548535187962171255582874676806315589309059181299372993634619537659985701418405369104022148215352506299781021982593593470924938978871713677876157987534067049520357929524402315645101831457416754192072427008809963108058523412745347246339890928221887976700202107485324970877364390659154836974105983217746291855215685124551588508438617674241600293336066214355148305881544004473297652414672649026570398690527519883026626278252698672660944462080098663356618000232311689083251640250864385893592772257632659408078190561879985323685009162072117053643285191252747637805368859170024587392589960034883966292669555987335836787125465757638942131610277278202641178848122305575325115491468291814937571255188839059453490511040345390870439911119446478510094640365079631057002238296029104395631673699233464246271073011621648053169172366254885273347657603507500443064983481123056073701498287895716252965340788678608457386279549944847404253299822954918053284136535410047946946196717896239048878630215283933654212630259501673063728210702276009663808048653333690614985501808416213861182576276247029330866747521349693422412572587315539789434358994692053991360886667925928233333116280721511359054708076029441547332106110686053234502489589796018860720807425840432397845996797669777410367677510248565385480736104469163200487180218423292517257731431602891181224854948112354861273104499125814784401559561875814548197306582767033159817136976021349941255621177169603590118522144737205258500606102647654011916376845561430876465941712963185459405638297992274533069373284438717846821911471047138416654888809745879979312929056561108539927014461313962666344057311243491573100644028809573064659550911331219358432148634350976629031670183724290999201435284287726148464936543184299831382077600773187096217371928716853537956198050541200727952551132599553650335816292059867003425229593953805154988592160069340813255851053219716504408331893426953658962735342979354437512220872312592188792642943848816507530832648161297991361546248839772512977363781192672339926503868879540940291509104015457148947398225168557417611808149482802529173673419046422953941340678333515666059624023870902728306095822690049181461426000872969367972662834050152770941367892569025647138172506021377021358291418151666157888296485435659538543299966784169898766475205578770701295262914780396124628645206624422927155729069513654640386643515853425535117659116936065354059990040156286970960919506971471360231825000015436238462022481381936461098897516665207337024638660330429494711752699469058351189228864124620854092897902729952697623254585049856321135838904011635564311652691551558936220269532224797629284454119050040633579595718222195152096264309281831539670896323769357046593986347557053469729975488981607948787895063531979942650082454252282953626257705350924541114713700626561126119357144054845003790458714101149905918422295090577697240283229871976390382302246691084594034489893800765767423376640665973878228304826717188724057075643825717102708156739101884016643711593411469697156295597979019196105655773553964381819900868594888224559787520409600040980041236056523535707534774371687555971844122744237366223545620628504385899399049525542515927184339239808037146646198022562405279932177573912194745770742104871556473610195603974723448289400607834427779657409404523661335250657761209099829460016821006646966145323385204837760891040775657284518672569771380139031027410298916511098210092541968223857024156391766495703340618135549351374793274666362740646666227596640572494934934759390917247195032049903293875992236083989187526396184892819643682356585746881464560610238224677366814424061105486215091659204647336171664223106234520659207798632633116656535350632959602136270513113606577379388588133783347283175692283092667777024022913987582077255471862476031675315422326616965128103927200367295637813918938107116473578670860348161189681417221689892463547867912560118256587172792977742424393685018264106565713207701119289682507725861803085861147026004911945619279534827363975479662790531150629982936773887122041458513047522914453871871793067106850169409329234880851664826128037107946353318510242229406330875128607325963080943159612409299335971684417207107866885572963420064860258205554023264401408975189417645714886053059873450321849215306396580389418814738375775729427719855162020982095150958955614535441262380411631072159824046710623269591729735119411057634497000799289731127609480034340583607578219920343664674194481660123761667442497475722391314783938807828953330036163791949626962324368663054033667179914526693325755391541022070063535056823010695982360638884819371543922806685262190624493451625228210409019382432891783535386270583043933881874015194428894986058276396413699312291913097478229387816582325372530039463646629692210981847597259118318273035931071396612625387064098088037744953190226407088723027586843084664759956381237875526792319658621193941288767998137097112097906703393805311531094419245724083051287560316562094689802351222100909971051362566079186332658849792098866523553100586489653350430213123469624755716115363959383826741698542513048803179021494077411558778411441823817290905266628925504907133891668340379571933193497936800457982162235185295875063170044005584764099513571911650046347510460977250117464335218795435391836172694893190363479236168017730507312878387771406951053524770907083690597469631526229648470131320996770250442439316682432560134369703220506098812707894385975170813221787486214758477193239624896056563347907268687525786149599684542531004514018141818946613118074994225551972467156983934302768461245587152822911047004771954481730176402259789630553551131170163144765930448964263215737690796825125338777980932657871959948954534051919550068443933961199491599881840768565139809981676740818737021215076427356799295945014049555522217017026326311738895917634537736638598924755540375362772376628008331840566703023071123886528551373240021597281734970434409274438100558570843289012837148013191556082026570091554603988927727179645016647439752705367632708136530357856660902263094072692176852738040685497993966723426661265338335534239017652204513083833085042597739053717194351189838943394859739738305797553772571882633310354917308731912194055605094779598314246343157130252927799244182736083246599092896639124027763269014605242217185004148679201780875140678472795190637236459173439062668880466085723784803082438280201068882574949271956853540227995585863120713937227054666912206931253488032403888373938003899537087424593331657814381835864891793625560956460598076679864452853622056179032937530224577263104642094021546408605084505289237436456706421596542441038515338864662073265013777144552508519296930589859903545684746182142553574451148417115937073946842613631263753310085120809785448199449499837728173921087701779842149339007762770313938761793668818926312404934377564763364137865308893610395176090052034327174398610572836884385096288076232791764269383651485546918428349814673623349760196740910791742790958138185407183949126215097850330183864269579003238138639769514939368629828959376149697203254839367959522724538837183339814671525750358123252242809016851139844264970729276974037880241507140262316236629279551000181142151621948147909949411178175229953798979110132494094907486605477881630307648683051943947422446101959926114082341276293831481049920973562616882310181363802092637055837192268708581488691603225757528419154362062754072305819558418012023327588142573163317977267843647950383112064067354414940300957709607459082726851271010750474690943417103652068143674269357132161863363297610781458770911082070827784521206589126621683375636403534553992120618447107499013715545966299987417170283649498978582663747699792447194113640487477194404679536463182812442190186655565990185780828347028606569016730501021163339963425570585096129136979897970830877900080956808838440227630836455527720675073867149727578907269833736843077627396075330384353395337094741010593742413013806914363768190375167685371753933788074519110848157918622902634770314466912487130927772609210731338947392019002501470646246879330193247489304198085200265679188021961415511368983739273060124287260105202109768100761639297176613379219622711015070092075157428502068527687878695285697603719075412878183050319720250819585652537449904988411856095951540172970459909247162816337177765510326781335941894455260608731588151991647428822822887765612555798307894751102249479578931899492219042202022420244842701540891138061642309439346005172389792063063110940191907587662783570219553245124484534310847408161003464905481367942326555155939196986247279181530195051922807144275603811494347549996594539717249213438106004238306730457093167564239022057561787221174651459833501536559413462222816415474037785404921516057518288245680965772531391065050335400281025600518371324909913626909770786971954790102904275491105234665453113008147768065591843812780376298432981869443577242446220338422285584669150388129222446061439808098323842817250496385831671058396265303252043125693568249751128071309717230647444243978245701913971671553867714212018593320603331288835563840080607757140023347325758416498629151720326743872380120467245972874895165709603125883528398706686224551166911120301025487875874767168104247975444142334139490336282164208120410322013217123079719877391669193759312357697521142503995819061676910252253075087971390087993176488686488857110763250905445524513042328781552342546727125976681696749423379111171861907112455344012292418074424177291959537515705081050781724474751855216037832618687861532742729292463669377438899343323088548094040851604797338930168491503594108761964023282753695022903167297091841659419663438775407943408915871635982731843967593459752234891199204574780496055152562553189748995330961314656313828990315615823614337518079897537465964951124427902501197725550233690550573734573893759838098926312559617527702664257725543548227834358321372808100998016627661652112283471207601516619625653282575900621918845470651750068718331264404436356051357624808980060064874092253298479764420216597974288442914996647253293943130074564289493538072052346389007812258665715816528700945508531131004580086975676537270752579611822002038626277005754238138910188961286368236728057964211406157456904949656449482132712338768912537728767711512541187905160080905534184975394536937784837070849907663269787781085193620747336902209454464582027735252053270151940699757925331803258781962687822196137906759273175410768584623179676125706922021885295329399654151935455884367880203476824804570408894700892820820217463106216459032300547470775889683704489078562837898211298620820768740328277449625699886241540236537667216217007001102021542804059641203486738243761405019646666881212749963523919270042747278286887713339861909947742222010050884312520955006947380276911975153652065048233270468708792352280273416122862940191396245065088071758440721720073746379237405153033601319752553850522885071737136140734256505700267963376167927131169889199885779779865894389837943647847171025281795691289966947708669393388062014797272512992850881897861810274396416735484207375556892639377519292715646877085631218887910596951864306705468840203073018994613009237567410667986772938088014346560210601009801733463345167478243466868758194045577942188833886858471665480536296231012343180602140762973825600108348198003570496886886089342201341683171200862385645379721411939339121284353090870430733173429604316794877098079887808472483322070740226132767632297576779494908621209373355608254685065001765307117474520512299905611052457303624167118865077924774859491168144734757720479607719282158994052385922724531038443028817508001552355372388633191426314897499139800448615852763503069302046389372654586557067634884901266523657859455604629022222867528748834363083390066812778191080376171229884284918623620843560398117343429651736675777880983359328903236133362830990190166883163470870336881583164905098003344733662820703051429497869485564567335306969041585595759180420919600275450750193788561501818229530126830979116752553207139589093328486339441641937387209264972807762472735220943166668676599983601398423134972366623222720138327826992199597536441829097735784377346659047856806696836046837383617588173012519530760263679980863277751093128799322800603129219168746743108152737168014933746361609237744201552824784098530500495672221088475806908094707987265519089610384222190397113803334026120856553780592495637903732471882902752835955784266870288384089472733833838916175698285914963914689414383501849781055678159514244710444107411626254297610160039938183615105751560301264093727879745235480213268889755393341354538005491480859668891011829385420590875457386624832729207487719738643078563339971008077825626833961285860400036333335929607720202447193265953291888301654563201374087410531212401916552047695805977758629684018040259542248643216918783935378272028208914499937022201630347847184941707368495485917449133246910901809551524613570067845461725601490964403657715115177349825126240711872220771573679504931708793049129485135779087441373510195423588240822503967521944211172597306880404346167229794060835440588929699586782590028171488346497289073993912576970630149512684150480313609091869524609480552520296530741167365350351572311905044267891543225365160455248969796680074321456054194705531674664737272688809629182678840428056239455594456722734412504595899054130694029668856462446214948027575222395010442370666576773734980086327199866690936597465790973279668638380335513086989995941193728116126433737147312052265947688092313113652205165304094717855950253114313559977525213180213502861418803920372373960554775072707889498109359506476138471058627825659930002376199701723171780755526762001136039617087454958312426962308403027112890002718258369345754495887490759780845751599278636133428690813057220054421651789446402342650611437400975767267222119971683624726853442176601287527404967205403013093136873285002135580574290715595518327461086441153951544276056897246534036898587104664634193711027083691163763101576717347850331058682117035081709903918487731244138773139792241237756896232689440278614968225404257488799182749571920761002407367771554749501318030742391512284772775648209546827208848502601441947437444192623336270756827724621675531641866585083359419155614326272628702775473242989585053433121283354070852188296798005663496021399936777164291289244066070336584127911509688130196559374590190708805867039273978213990169545106643083565119715379775945551535023096583819404160407869686755700724356546773946402769524903282574681947273773783796682826094318630446974081063288499884221566250020026670791324801406219597953470880478463777342456601558931477926785890466019099567672751551895247959439769588042725215995276429187201343130252724989513852010718411647600261700837994933905334218436741936580965760752329318833242534864672014991493227880259489963743437398945573797253140952505411519365649125003985636961490511849512456055641314704510944835256982710407642949773760387800758178589495813628832614025160444096564254468811624368527559284062351412106397928428365302919019669437463344268801332122386617156523722516938407185447620838015392593761742334453463801458185028361259050508489831859489179613412519527358584275331934313644586236193130405370576239074288095952631124466581934958653357583115654109127914935799210021838836759620622088210693361933565351375179076303386084528109397490228698641077403686509422517768345470521343003719841008174524295619421189262124962743131198567827738814544460914741034281751515313475225687930246562683651571467536295640813704648336867664896944460284528789652107677014718446658141600360960457414561293506803628580487794873997362306799618228522598448686844522079998079225777741276276566107410284941789164474271889067297859071198374096011233216534208919558869548165781758724856774263328641261622343675761195969107415692969680166021977660967043484342083291928898261340267893470830188303950784159157254793112383806066393708916627584889897047113679395248745104594819538402321556034945135690785554171499829667072746451440210333850599853712809516191897382134577066193783068892338803955730840281484354834171390244613148170916687596076269205571387826307759590172623748229235503613324255886572072332149355353100360734030487763499907458917310141332468220390927611969046857065482467691339213653733686457000963952467718658783339208981132542788882604362711254422868177987620120610390072581181132504611564719067858513944010407484193416436182335632067505622685120404459654329701736551745031450810339550858750889366327735916703444703954779362829871016482406298631517981989309888154040733899869751683368980147236122013295617319157680046699500912024042782775404750636166640645032923397861552980306291545372306851267011873267027109609753623621991329444653207237914733444210970660837336824701711893558851670509196573818946241096413571537931697406250700657595126768386094646214462140247368502690587254991916333154198127757139555940313680997118538330954380862842144022891347324091223725501860290756776917746146860919247980523789192602025096051974832055846529472163226483370937851589717464977117459964245972074680036931303280134905650346122383824982870487570685610569784374829377302910731096480494031333292597953543736863880113813253285694755224735026186321345754953307303084738348698264084125123043333061461040208036947998597414126421056451630655128733057217175903729549531741686706583309209656488799896021942775586796682378836606347391306109462966122220311818917905503071550041030474946345869052408759067982276128369380160781338141516138650249183812704363048120037261054080867713422409652712889769644641069734362157940222416447868108423245770993727986648220117851220492184722838633686541117510325935125733680526110849372619685106891010243966056897376357915367529362411997749999644515201171697014391420145570772375608580054075411087696110176892585339817422144128872996077265978434921232919124476901296131386405982422948102347119685401269379030536044619987206250185920791010346210545766547758808376603686765282886678326875805991752787530545320320060972235153713643205985410498336192745285969457716075334455673279270761925540453647610446761248305766904416700501509991559377441803433921850337381308415910049925287981619424642766692167440725070867276243682549204401945895562024005696789210336033483702897817433072530671946948115697554308900220715270654045402238695910447655511073863560442856045925994459174789327076536397535417915858281857961694168636314158080308655810499146332108672040910353729938885033250703941082866086538812828904470609342493735956748077430561382376673634538710758778784617865646540130126852073303056660917995977790561582485608427787355175391818779285953072364490110889980350967738112168546152054154620589790042785907633935976269334709885830425926173792475299990449273327722837850347923684700611602140185978868722435213914488585706766147802742364720436438973618089891461631317609199436560286487353548578253805066135989689505551731996363421067040213541119867027127106321585487795584967717821040928534311304174237720163310239289296133757843380340601079461599459301342670500384302909335620092696127043814507053228572857385228484724064007476916725816532195767712987077751844200255936593281691415220201667664749954194876783200235825413922067536055693678845857056593481348159316325274089597146567901959069683156382687740611244868585842526897350777321522672173827678471139087548466659498152506430371093736923197241357441825028607625492053987078538375314126610685069866372487867790338217153619316061517777286274874124694617961634331087373947231127071886582663192947370535844069401520218452702162961170225728662360479670792247112221501979125780027776671913367945743849345420238080352774134813220065016303547438359488289347181432082927768953847235174768763982815117654799389503782155458512820591630453361621678882925513227006587356306421545806779918895720335201637975190857710501548711562553239611612403737582846526115308670084853536977747674199023672882765398174017634108561326616218090650545267022725177654081398972350443921436567664815671289827656554812605179676598720624325277048005423882092576932669101779857683033922262128802085989608513342113067417533038268513861372222637698222577483693572235546112970614823485036762602970277313995896590481745411051852023945006538614590652358877609051568138002415708683103649441649668402607031089170752071257456608131532171242633621565544395667768612566998704508255092888293071686255486113765199552742194073831839833457240956549244373543173865801716291225133525452567455485020760698249406952578261609610233310987989884024748944803239756457675753019103516872892018209288941709024271509416091917518891360722504147976213553501722570990641201680051964003865915262237151944650070660518248007708892842019860830266520390584269396454655365600563295716029662984714052548274988612587045128953230178816807422514649096129019816494243288612871394250597164525817497797559852939162783263168568837183501765082204781427395993037620798870550234700429963187472841365567733008213596905422630258461072180912550349580331118003789889742748185054664197447370740851808833480487035973529734081392808566444123664402393889759566688313550934711221746870986324797922733418930283237982368216073934995110268934461358394252587432210054677566002992154175299367597689044216035394638547662926515939102571188818660281597065243620634874157937621582390983437297753727188272265552858619231850902278968265760385826306078742814021071667871255282903584871274016668389763960280031204171213753490482227770621534929604237373766419633585967041278459795630461596312502157976985959831311057293056729443519079143127905093895834758525141098894973869951817423449722017119414322617254168881328567161048584352284201342235078583970102863840430790086256166726046963692733627177070952235248275536051741685787486006287389384336542129099032684886751279193455416517996549407027125956847774520783973634597104972852302019577037668156774634160432314585268775072438704763986453218991367026815481868631496987589119263867908423579242277978243757604733922770811099134682302059394857014360485941746598597046172981646437022963407812399239012394891997597934870387589642087345399751254732490869600696919842783259316755934331938599701531496987959563487344256275025282326594730537387543155532113255081419372518167296039956560299176584819837408504581844642880834727388931647254097439716897310387507789490299190029025239464392784106576500612272670871779806779213507836568804400776794780475847693970839906825844883714819287182425216328287338261697493552256000718645839933126911921098595429786295468729220124617909742311588734717621538646032481881626646412413991141520941606938276417146625168725050154240431836957093234908534805776451122521740874762770459057803242692460731182634724035425392695642185843255041436974253909332133209602192214589440255732284563846185540688162511523365814796310885493000511089571060908257492714241858914980899559258893736832151031617067996454838727187000022681643695185544343947963677904891361493884195954676914058683487621750857607272426976878808420572126688022653713486431408080756858167871502327088598848847000445007008993961704163630613186828842581960125045814204446835922680517917904927523006818639817443763086023482160567969627487994102909491448200475759648014231362973478218348791788564881412949802727928931851921250590617393702122567190090758072661561712932378092074797126068404944723164351409790003900472842491728857915837857985979240061229365694881739640606507909667729195249019391219977705256832057674152997726296379791421749209020205068210604973591683129651778433145444113409916269957338468706134078916222589965823168992837379326020878434668808055693528278095617695550948605833802102188875149814860236117851411053669401651716876865941775145277000565901698926282602746880874949830789837923535055759148754897857979621188005177612844661187105383303103674370770486519070498410948656180946221023779918648877843132191119153768410353394347472803035719583273738562776687782399115802735695673116139400374596997574787998599655529984306249104819464054533658596793826074793452797394658533687804724614470258448609688259218933824909229265394771387312346952061417170367925778691535788142314719556640082464449736225108925143066809839084686273464033103880751439002542377673718849639348484767983139144224790616350070557531406301309912082555469191991866956942672366019108243654764579215972098765297505204279691975605689365228468579832198493727647532739108232108419633095042142247371256276203454495166629037848761856913487250850975771854592513440669324297161889527038510679266959184184743286847888609670223579020074728586655053633289416261495174389838291006928094983500017132510490272197339972678042607489842089875736936017268987058072344265206249797435236787043369988370603525325643463829901092088878292339415097578607763340734187724502839398397898724222907720010158740961146721088555211355047604771213067975216116596319162474496049158298671593601281363298747115566963649049342070969654477750627003399323513470955615911949219286944140424604808508079531587292864052760887584016706350799060830049082756372175321845559005998004367585689128238279143016307432341784101296083908220814453447031912132681102989915075013999644693003961631446540332667815134205573753405389822968662102535332015043650408800521798415109310438972814949223082587410689679495376295618047926139400088938216240485417181682293462841057174957279456520009969535398675224675945853158223237201632652784017847684267303091059226104719509220156088278551113952689150204632881831061507500965717910004548187396751749108169200062880933674143744375917730262490977431873849259905949243076719150914111475862311112844075726392441514739240849464421771916574363396822833371481389912757938906267496509365974049033996551289176367489735048361743070180459770467603958600059392928215579105205959745924008315010043475163291917165862651013871983113190027711771542669885050014131986135942633237797389916946451318176702998555731232355283855580203854544996359621954528861919416469061030404705508327820670997767174482686520469021457969199712167402725921296527005789871515117711950161843787248243623935280335000228681625665679917625770618408095803098163763038860787544181299586235264541489774251447971160786239545162286071128420635293376664977724772729000712659096112883592815571448823217319555297497029270740610126823904511570460718605185488327533941693835021265726979407560214736202710290488743100160004822296815470912798840577795273400429906466014961473732913999928418311555358040942260070277471976727764968250061179418606577759627512486317032192134427939264179352368902754329282934125426317924838753113052469024814438483308289095124484309183294296525441776356867739381351780963695386442635551472909216826338129272716672856287805171576213143987055422322476169284832795512819837402091784657443742748133089939679518793516667052188880463074431775937276439304937118039482809867644421208283612866302577274377773256130700575727169750341858895485580744084424386894215982391520921650964125501718604742588510696892528683877806862547645426832956668255341499240229491052191248683724442272550938369360286758110789542937613099806893036749409548114355266496157494405619169091142373304870701672054742634999668606353945928223780840909633934723844894189108010889440982951429512638600701087059778510008113233141355104521753323709173321877029623109107853555570926858413071163551420238601872283264383112040568519077730375490953994703515746158079420123231222751477784598147361471407018694455944903563423509587893507706705161309143960175243640547049412342906613546216952433554735698204748318475519466016560609704276501521302329682824779357362313734333425157809123958648606027472248131914864412414667220897058838385868940455864285596385381685636185928543227070055662515429653248778835607461211278392199267239334585199165998671921543224269202374941428754487859678126038869646544016898717719930734565742851780657841662793862586878812196015728332689245931170169835795543379107852604678178099853218264761945297899976669890107396382412670248523095982916553452710994950441429256947596169108806964100556557568778297075654215308628966306661344702385006597221097066367621734888893370265694638045502145385398400218261983799693658795561285052863220391479380260750371740489595870256447840922659291040360808867956709090144384824446439243500486881742951779470055093683295123055006673151535017222437520623724579471036128980504053168146605005851436659199437997267053314246906401338738551348289318099106151001571976483120696231934273868729099763786864153852437236251315149895884825168626104969821740415339208484904372414548082992469882176415350146997599798125810972264229577345714356427600533370184749249140497999189980095309869410180793733278529490592812915692809053560287665185041347440668569796418756487652073715486314224322491813671256154002612029950454251060092073943961146006684746790652973111292540903653464728126637982950713755807540721834685323278964786270680497951648159466554772177217634554780138764272041331194938814589869646208154925289096824217048104543672335469697074149315710753802141017989123202574998317745455369614066118099151658035471930782939938578683991638597405432997534904086453551309124779902568368149504439319597667057798573033852721555969943292039861726793989826741510028411307163204481432308199011528379681484432345460881422290379315963390039144186628603662982169807470027460252626109921963666292713973547904681689647063194477711906249329986039371621275283750633444146223555290252129682476186775164483508011856576765074034890084143780992893721520641066556283965611753938250778938719588430536023937035867224412568420731227169451884356816734844685365955015166098505011123983448169663907366368775881353575447044746692486166835318122923406398192493961480253512976017388171910442113691302133387561565228211331166733112724265751522447524877231715104163339530621409733150866092707562727547882379174108455668429286602705272560109665285828021013730061614871004586018754217848939311376634844695744375536888432456474181095987617147654790359928172217744944593949274221333004128429712801751000574173349163062279188178439006418495243197476953477046645675857965980758242717159170150999771634718683278774471455985237015391193949909650433212130778742560956272603178370588061374790428418616424490235041666606517783672132426255636161412004033812565581500309478050260342004147778622022679502243083278888324977622183409907415655424646380078452708163968546790797919608749030469665529720108342688541927609623525711621118005371137501146172668506388426768052510535295037691242884684304772169969255185390885645990079135879035070320670477376860012533395542647920974500936558352735535112451312293062797841323959649701135085322676221835468091670685822225054776865987808810724997745246605738701968924894991630847946198623797613965865976540358037893585038916108746500682973111365845764504933658658897928754153251368453682387823761197493219315291733690746560459425476064832008465034175303666429482277389439399191750441329893003419274349246353765213746477537453398148186797845285229813971298587031087363800485505529347882132578022131545194120151655654946978016350877732524530829712423688191705325606613624167315063183430287696317412048805393481304646919155930114424373284879746446356955129965363948020492957690151531934377998632709514894318848920920216359853575272803931217306876170962365138703196260946634511523336232450666462923766582894050479642644615778760824749603206279432594449908234029955817708460944964552795609590883756853814189665606174050653598496429084797426041573385774012817199725571041576370738890063390982087900950720143509822872979661638828101382750753012495085124852880067493888065511418874497109051845786965908393473483553486673589661530335433529708380214593223086239058038300509376940213931524391819800555591605261346927511374266796066548564590451518846656580729523237718274904447191167750817357219159352369215764099243369516769138885582958610725157466739439049294142953767218001583314558725016659640688893380531645031212987033742959112664579312214493927441247476331004439182634109009138562533709253178124209047624687356262175024201171654270994045477170333266295931445482505171297527945564404791615067910955248519748455383585305045949114265792820650000342355115311784727720487838735740320531217282529217746891518799978472895872925355986765472098273284818556571369935030953445187145862353775214149788048074707060132579063975651694473017309309013107367902707636200958913054687573339173115884406591251376137736343463898898599473276468265392074245981117627401660813589944344788219637608435040994444144585115291478983896432069523852074213788186153126052657703402747997809530116320571496526935188390610991213727978111048530891026063793538459383937456197597462203600046193952876556048272816890329602988680998725085954550711303360887472530344826720172369949575055387234953822471826649626577535035531583385652078726136479914390622331990214007779321948229238499617185183295094953328690735560397036260358372090169748181322527033275812773243128364732972908724372826906852871455195729243174658242784079813851932319494087576615516265679714937732219253717846774163071241561747482579904103826720692879712084435855720403204829963602181506874783973817431736107647423467927041779911153214266643881819829371796316908402980220221966740852404722724477157307110456450873960839803564124468266448255413796608063544787379611707265587499851460563786061863146596897887520259132874393500262069755964470963147126839102614150723365212878757233199825758796663979787166793545812676266343688290460696946011455753188589543094807114117316094189104189820579119574387393339319618040028140214337590861326467784866478195038629430421540800926569421187378727619092803999103012269024669271622812973836736695239815863946683031452632403712678716312728781968840133290898968602853647804676481633580274320228372800381765569880855327388981193627985076633409971053103724756857664386037182490239830821129503094128700018386328091517860241563522661532929514418912294115135770068831335111805479371729035402510754192026016866054858425946620226471240280079915857697141947960062104640309132783587586069479576517960933952202601200189139524973268687715792341543533007446431892770801036330592956139124750117109546462376859584795196080694011857795820566108147931866010191016031441091399438913428441637746465730866858200754154728664811960878095040122828710558687771034923741203737876066821830676917363117277655343656277041736800795931908254214875757673545099089729630670114270398918018475214250139283366358126330837858253482898453519632920608319523645749179875310337145144544469252943637919467434472563679521387809377941539919644663538243553503809708178674517008953951841073818453759801166540766054529405547969282552444264474701171922180570268137254856757739620108024349247441789497552039163592932941585701716232384157352421709260374065181164620212826637041452977668735064157203173311748867786268371492444442845936613056874564335358895787112512397451391728540116079131519953110463337319736032681280353212904393325845354810010719759656609049992944183800536410127998556154619031038334056245274249246533958714972591020778290704096369683002806736894939596528865982429959618025409070014288080416892670557661071001842412613309094302049780460612465822595006930991611042070253014268063951649664235831417088084665889271244775131516149236213374933731495816006510650588082755269571991117684569672413282537331335328361892806195959424589097355421370034870393848229359297524755531232566220682337953280918619165547405255846774253496607073518589765426514016120366791592011922452945755531375131978110595729556063533631365510724032206304347558918891597060616039966228274583869323464279333972350862188228292287823939885734358821222965052069568180008510072013381834682704595057962327011070514782423969479639491205261077982753788648752114823553274882600763839322665938124640809636868633975207949807613511077774068018696849791159484554933933259317193254207650242152705306010900319782955057930711032195537213113134259432412025198479354775445332666428467673703506358517271035967827490485462725310297029498684736686544334179933967430961360363340204302238144068955828132004102555490437512910730738725651123418862196669175761246170736634778797693937161516684122693509085431774980282135954139876061105924261511185686034087152344956909381933232967565404517543022285599744757195599120088516368691654023069274442976797460954976045303186226845747842666211590584474409011282845058389259746325722898817400877861587562973317145670395805022810690984856897467801846850841193613646260464826422876462445256820244790693289926271455303305727587049718905256104920414386578205834397240001074815375518617995244928123297032585477309951617134332966011105248977425045175956044091042189787497239536172671013348791375235133558569334518050051118850915087518954799673204250274400711027862414595178327309270792563448097174377460015024948267019774585581199444344285206400920973725481043453464967142243975344921908914454952764539900176651668043241402116647329892288582341422553808395807483156093173644004002534041840172910026512221982529547126302885758896898800996849865978063210883711250752651495276241099505648537754897062948548012242248504765720505524715749622783299459442003293285286079849095081733858062823955168500442342000808146133132959491936479824742707725041709016957019108724743567868072881759390167190229826550547636053417160174718664187323327856961262612920605233495485039007669872650520046164919527722643312452289995687231428128470250716824789789800137830206842922371180710077640071931006347971587234035975094739237587181089160343401760528482184849886782582469891249151783949038356290898270167373246219407045137577238309075847074281776688833411094843674353979298855094901972509821805034574152022192781153967168098986939559625471424615024141683080337424918497743263815167647208178483140886241306231650785496973053380693966116618536491204520357730065486577565505963455500018253148651776956823966478364979549812840055086378777267999961950459611825114211395601858392451883822358951787129397584184445852037279258734267965724505063826101893616573349968794953681020973532467857186151415150318793385291875998718403672660284381322890988186930259597418666528375041006081068272630847714841523880283897262017805309113372075323013229944608816824821664538291381159717490448077362518459928984603504904751518580166262044608130994225334077351161291934983709751195394005133609177475197862903612191755609902602290745815077283339649911046183133602766485865808329251003577539190149075717378977807069963029325306270443947365468543043249022690448035490438596087158169028287716502594566189206819695270066453408817622593014940533075078412198229431851613616741358539663937733157132385084330382892663847837543739899853808047327769595630289939575104803937419814448661982486160606825712247538841118470383222111215164267128760337095922413072376633636245187394088747064028746324420197979828466501249750590051757283114776929681429634742033740326482335842259726024870924340093840255405134215791326178037213574698669027480530455600820829901568934761599868707023222197486033221224428193088514209462455718444746933722616341020394265733147679446369747972701804293004911111035545766138478078070100910180753818441381291780997093424355879650418013920670824010742960592018080932766418743291402371552926660374985097366118938907315332832460660522716130130498270849835268483368467999174805705189768245810623766208698120674648291095762785953226581368741257195068209343383382578309274982087754708204308030683663001285770364236165661949367774203588822695507016691258115989356489632415880922914776970259951024403260604760675786761679757220940381694989281308751112292382072482936140465291203355995799322359487097488406396897388472253917548168888853267141390541988761127166401887660545557164133647821636474072687808290237546954289358454986942935737752352919689107626610712576874815248444336917765863998560299719790716376638577630116016807389244187540719139153137357153541538255974306865774551942918411452611314182376425267142452085622842938467976791693290623397715824726485506553406709781039855521116011985526908363403233681691630642112111383761049631731694846395677117119786296537840928193163426255900729524566963119711092913338488614319335746119639148666321072859240784953290462530809698729629435319146165298773618688566457345930948936957747080736748931045065220527081299365122135310055932368264796052362884783561324022911998981727684928056888916602939929503537675462677019469242027025388674007499859777756229492006150570120983109529210523352394755671532597788200086856345204672598393016053817640922865737187716245934839007909448828334263092796225935606365720957019807318315587332254231611700968063281203668006529359840451783886203002252403638526656203975111627701796374802751080546475261325583795811028303151329800615717830961585825434975692661024968162791969778586429499431166780100410657105488287103492137262109344846890395559183475800677626864584414919510853044545514188668696954019387504358614423317592550617840233579217051777552249486579993798465044318361576112386818648498009456078572431252477633946911172060521165389597630576799733152900171628355899561538602239536524931460254482119780112032964300824073251563822076850698521273221244220940969177386084155756677697045341616122780232977344606833492396972542739017458452596198539254210815893611110926178616826256201873817827734594747790084506086392512340605852296212305222998791405663018840675480182125477188382259923090338385272718997003240416876544679482841601573443538276900409053771551439170667368193315252845108339256577764577472445113426252232189832149651923136341735786100041430848022541784116306084814633344214310839163643105310103476810670367311607310906299214747839787391823079246183507604498178811085039069924824892266798973376756750049666219379134206873304314611945313967777485674340975825440349563152221186852985643558510890539801558004797932710311896293475863195471749411695408630261850384893184523998877432800797807715940208332594650566466101411467679654369526740761975036532325280201634310007158260452871612780613533876813202137328495573300582526843829807785694240801503677161749353308073272461902862430281250751350425495593506782002731398206406266368543572925080241710315336286727513309592419190545902913213304544100173698489987982287210765818184485666884368940848301254690808418233023805020989515810130033996135059967262296047729431793305618365132857060786185982353292644502573680698929791794957903797775991230413328665686784484020936038481914354026210971741963050608743879106554976646988081443664189650877318495898403859598563078535698311339371677052291658933585011823315532239380779819323198627616796383253104300510546856663021419711958613359458982511092784715662484709011815393860405977544192043796420211689168150081645330666888186494751438439961214962288076641154845263030100466915580005684401399213625652472863149134881429927550512016076303016660540885169712109019855222204674767098781111922422420001405991638391763423939580903439464490146823624198215807524850117834115413359423758013484727286905278714942203400706952608509882496637200288493005130238213420063251400283340091731917844100029338837657373559478813202716669551162775896227376276925703989152872832742596537078864696726420262254844783674979446075418652941983418089791438653102116023388958365376312102907001624481046739854612022524699935932346008644985359124527069098226011872817955089405559680684389076189310787128426963610702410479501940115603123065169155085842665061316382559821665048811110682872285064604800812849157543539557644392222422711931613192437575044723235764239277601012351255502303304776387298895762640592586520501119042495409927297033769628920941302504631351230872944618963653184596140240202432807845425494696123202690808013609586508634384354858350651933505548098840219174132818503440405423226261483603292575761654266062101967265497966387924183029270505242703872602853908236344600824425727036675678490461071134284665159305024318040896786360745818866008370606103128679860669091545768089338621290630203725691390468059049617091006491421829777552555902120359036425176783531254043571139491007172440020969338255137345719502402141541048822872932824634712875256776728302382310236702085053551760967670871844700345299583620791503339911617279215523827274989702734333342851348425691218010669112904346408038286674612702580808107169958203634718723832503332166314399575149931649484474591064579356959771980801190554939588585479019148742122299141832678541650121394657237890557560834314620284039360484876656118602161935940891891763276948200450384618001484630881779062400883506185212213377714667285929975898683010323834669171260164194595706350974874015247918927374869167671563406231834778421596574639948972039570784031700003568697752374926845293976365250327055419946549480915716369605562487735011231080002392071484189923912075351187749269751913485698968006063883124685471225592918095495114598714452083351792519968577395998168562189056766327935141917634786133743928302964828410390725092341107739355378712409943744991189806622163325449699238511578978160818566877239452175442549541623448820688705500992805129352095501077910756088304898268747770097609359118896083393597618124216851368214201453298999832077076717383436311439174679352473174161790067776871662298507345617927050449369288670048968315487786822776009376921064755190465696470098023190553813120607156914260693037259033179177095586425158429351064714652103827715828947248317100195789007624809063976169580913883077715479977401495475585895871804031362460202117002435603632138591762236343056872518481921920162681218682173567653094712973221622136549881572117049842028626167244384788770611901341130590496637168830194958526691718923287315393447320948712278991315342023987551276031144144134378563582489404594260222411514731490056509300116461465073887496638809845162996400032019396493204223090980120692932853062266767365641865649502716654869133715003029606710247875650699231135991476960109876741778607481405095514943972743799700916423846437317565090437544196795649300480746901160158504230506429613213894423495268433024087289404050262033356774471463950536392080047214694865366033024471730596324969901625826630440553225513459275271981471084139524100308107567007950897760430407981168498615891069707578774139499990476266618703367667399535161422140260625532528486362486838011298759569165665452722856676242608299527122436605110482717175134124683946832061150964060809141274278977909549150463424793885382564919986810538822640953269710072610331033116096637175264800841485834138392981194302589184319650793840936085075780207991655206850124272611413296126719157642162479067880970450601062310986659878219894224748184090298185028744530331686609360976937404684726636183282202306471615625368570622971690258116413228304874426027761863064542149340189891131642719099105181864013292791937675327010242094430566740008098492987383378371363709123875853882033413177160413695824413355212266091042158692462456853132989296166895156310644440730035525321434229410358321267755720309161212521549644349734278818460228917827935789506772782706037503451490108481192842674728334876913914396018883385957795400994694757824035125473604032651157205267518636548258851232779823550454702277076949998085767853171539764202158014526975331102093694620117139962721874574708039632934675160467943554819566655940098874155625764975572446033854820433837100551715525838861809935414333141147143355795984413788023803846043065771662524661909677102524468109774365214415729920523200857117032184685438375580879509984529924536248640699651322759852164956349043948463488172967335942363906017562917856316708143095658140080915327503644017738653710790106336685474325630156385202387017312181699787641189263852582012962829141283750531651640326513146496094776685254360721872125746582478953155122994609728494911200441811686187554882567048769033606777751150068625970587155482280286596765443739281593659840302182643041976032799132568326189215501460219360955873210824346380610203783899168754203497636388441996105821725307415536732339681713559072174019932217844853979242511156082174459788909014162799771733538829236115668078297715854484694623142266104351134058969266315355676292530892708942454932422046432592383223564952227487387087098790705414594896981359456050524829722959119159023709807636227577751011520020360372391103792884816038669188279088759597716000619515338545595889592968153510387433281259534228012784658922940483486698661071759587956497153318201472870056537625282531091076920875908512986344112889409634612554296422753312773842080130403580654660303479380843349259731230349085462729417341889874316559753738126422028199570386318097809580384047542854404695731303887498943724679666836729009970109440397249860129429183000179619591439411711791011764788416800618443945994006059070841276885129759622540740938581612484263424976290133339642585459010104107411518232995314735507720064673947625355050767962567254237805343284488201920491347547908418752869680738895999569992557153971991605439747107454074919348172976776785748937200805360060221773200268918584654338592048571771979573788875861207022165627030680455350535633389464347496330262785397574779269231831843218111798917588262604089180960710988526753018488661705932455056854461100841651603828538099168504310978152292386528775523688462891047466016327204564840154923301457476728069880304128441763387528065797072109508166115239343972518965022197773090636470953944320854369828861641793324684329355491450405138331541090669032313485035896583136177198293140110558609437465916517830256112701614905273505359841121131642437342571878748264933106759175806914888857675722485699904593545289823916853757211200178654460583831285928779892890799942170583774671130360032058242163489483930735097262363707575078013020896621288157699822119934006624536784971543801661436952002839081117704076231385300801568920304537862367641837895983256205940609862827704158051560600616656270921455545458040522924707619842508043501499277210902739978093884943114885944808867475769673839818735364808183875293079478364285831392959567139887218641563526194098915869228052323984605707111953096650920171470389036242832253540124635906763214397060317059655251867069698870621987307235692795649909324407271018357358898440915440409126590974496719791008919385532731531104771254623966212065738017600246192903282745777834563960790715288474086511284819946760254843399798136290438886404174154103370776951457787805864829274402581985256432878035698790546743933987394795977261085289091353188364789153160621657909989804293594694137660699897329361652011426702323692551792017294963633643982216437175174183618756435581890959188456992873713818626670004319381898388049134724870295567423924635007092408121743120719809715338229539386075046162688341840161189091576328222094366010848089710449066656440495893486485802479488131889658990445592506987263217572364325394479794727012156583304521300496015661720935696675518814578138031800143531368387035818400899039130612366848000834299785323544970747970076625730157093588008424250356755595996988152082005940902669664726147462995950239097405696872781382356601261341670644766174800207729103201625585792427858337936345409090979252140950455932733083423040106625963106597471747346611523836405335792445139500343683864072764922787688895071655478158326424055739080399442188549626306750638434927992050131556182712188200527439607330590166079134872714278115424344571200374494526243843405257416111117437928588008734132834904436969347013795138179949391062989814024818301968883741847901804771983817850761722723301151134379545839855506635112711634233849110753161264042000712582131211239241045048495988494985189853442821778680933921916735740771171200413637344060363286886802975793930699353383532220412934297954808874706874623048910242791139592947375801836678235283661511500117325344987471806135104356186323585423081012333022199165221226606348947260097046974126074623107248113481073395384248151385102714894154145736046342679329085998855610286048021589274207459791436862239454529755486737119322738633135593691296193366120241209600053971357143801935075024916715377982798295848115222157120504063806691443217955520911725762370468253017726893653010703870661376570152220100022478180283051026405176347613392737756661561919022289893653782572464492778185757609755853480712812668840239568656682104127602271515349313111007849576528498591217244565599292662281700127583815479261930814622410739547782154465760860094097910358214689590895849879262078648123592352677927682249574897766108801121797967146126014321106444357025065631782417627851971934300308521487366012170650209831613736428292482450338956983379304090688075158199601354521544016669691817421135106427198727883511843957741263152047751100945500541756347353884917114888071815546803945319933281427730238910150911859747651299335105665886594971982863926036849461497468158560266821045945940225751511872836783686565777323901209557079931899385805463441325393599489173588209163883204534828886086506664782890593124591042149852635679352432681758269921304451211730402639826992358982363466423908784462525191219364996340849157289657224343331547650484248084183838582403486564594860710100617911253985006127920382252081282371882020732232094931750547451051124011757596708867217029390550510611279208415255541187862371283949872804551860093259233325620583756584965681134140835101147637241719136735413061655972956847379148999745829272773043462468214622144707798760689323074748817813967509187184210998379187619271014699145269905398039427286603739865177203286151513420530514360002150491220284875358946559778051216061053626419616779476115220501861966929337039229510369235767251149547514343298850458362696382255261194266208458196845951609830274178078772260163808892254570012254528110690572755598605921366245908900146061261370153354088245926286566427506806017185897345975299885716499955203881749614815301451683367746280843818033172734368313978144919232897779266196566273254382469714050129306842890612483236290900221128295107042659979739363703835513895880232393785846324765022726620521709341057703341819614334725330639920730481485218614023595889910334072714475785472242086299626802751041256516301134070156883602175815928288220466354334931743617913221099610137452398358786820011097227816279164197440933889939117043689713419359544528063781411688133185043852597769104168586088282994120817120540708324165974860973894572606664280981455933487303712203124161913014298610577234669037179183992027943678764963918804636159493994699396535856598791962240188841650597589322264296097126147498512161041145032454155680758117613366084885661116982934179632414403296127633808953459915646435136194009327663942654836446752466913626121929798474141589601965402585437170077502516056515299580864809652876913942190019904785179940335400005788902884175250820053424688147489418049222608491292196987571691337471058494031859678814158764160978000404143333112623443881627520433820317586709505957117644031470108377258198092693754293231124617363483612429172699303586171967125170427235514636063140516322890148683552158595554691657968286219380126529596623644287476405192873358259977678575771668102356444935980163372979773771648001024687607032417955694243235052986171465588445258215807561869294267387283108364697945148046047114866686980143828156511134392950338631625600352840430955227256670851854428785791605673485152976819133686182132848631656424046205911179029710669843962238159161868436674088565655120932927813751727200965273402453110002804072193418467197031003770565033009849740542295385250916599152496563505934412455941172913052371338104261198204427825415299953068295082622519809095558615833981606626725091112626528434706466945962905359479373353852754160978047076287588444110492052072104720744594170064876495790871805346991742763919144106274235567868504375504267830510431303500367672131933921174470619852598846967068440909557363743932642103248291362280826700425287261811379871657255668976792133833603890845475259410823828265710822880377639645097848335249876820044358514876218305593652228959389075869412830957750259866583040551372111398969886952356694771956415720325861577265916203242057624082667804216033376285222316523612000424375807204613953339008030012422809494784123932633134982518913622077364791756168668256058562399000467169257562092212882802773670825316060720617496237128857366032798125868797826844300196772990143473577312236884058890304317658072496486572791158311874093565125424587786753563491083828082756826805893074044576312251549068106782868952199948852398953794244689774165012899948122073408642156399528109504721762083953702386741376756275148422401222134248154478050922625849721747567327447732036858138606311306577203811356549888164894134197578608282419672018409690402979931269864216864659783781591793270123450679913117582236960352641122034383400461757204207609033245249517918882840158697790188116943743915010917743117506667338349016047783085253708443576032226008676014602472714132190641032607073205985420904270857466857572310445385185643274610618847850728431849766035952946847803070561890522107932439380444411624605634699471192971014536949686055149082302301430805996966548643200029869664786311901127788804900204682138049977498060092564246986571995089660345850955695501634649550539391958753067665498864672293351584520295336905060161631943909566609586613017222897221266209138747918228207876981797584131234005487907282399022658870577743535071946799048332597632243525605426271614922115921150650084071487062776779889137239963340128853822760290218760687504795421530174908981297662329782483837756127551870090576693991957489653026812207175242596078180803897838569783411395063336545315231166703622913600124045912326019128073676131446848267909798745390505346980800383641317667593724763094704796893649626174988205341078241662191435624429944055559983953826010052866590063446533728883624217234352400704278402330973067700682881826487597852531799242861804823482680605525637436446209448591789575008360234487351868453907804733395106026625281365493345758752036044198838997108734797557661583910704179207113843777272864744135705362165664060920237128852927022627074010190108284357464991283299092966422324977746121007068257450503615674226438513149033404651265130508483927560870781136844292008529268202695433389176402977270427824531761912727905159684084860432439916761492029410061340641814051033933596546300476840285743979895904755769072543459174719508768895873038985433497621625254231197293492702971526925902382314020254695236790328134797246369484049658423480273027624006286950373152819847868807663996631807246186141332592631508000014187439996322410989597553550969377904901377118254811990832098499094855846744023859429214254155363547447274107754564557856599397332370030709394612555440066314932071206426498957946475394540651611025985053456070637017608150577937099762024591462346067819421936828989327577466823196700440669989320800765777370545367512255893867911300509073662118511894873842443867440174558594637021205439269124332825537921710818092212198012835624211681986520850972329844066449915834521993083682852920194223421830465283585482538435875488233217558564801401317760000650888435762307607529936956906380936224925032423244340164641668998359742615443779185881753527414674243753483364090596169066421224545546646055266450735454791839941150700110089828863574783787087270704849841739348747191617306707181730005489875106930524919714474903565456200081479140051279566742566607872079218655033590521847104925801013503513351627259425167187181913254260995523111026811155291183005222340229918649175986195405019429986626007041470330679081832579360798265298965937948792705535065816417257029045214294353343850376637912571139735183416202014005799063502251787927626679036279606016916011811280954626483888792520601540158823106467997039604694292427329381068055049719377137020283887058950891734424692725115100418527788988787142157378394243424423139131344158982460517545259100922822780968808744175396191607908576570623041497997382979427073507570635117878122559641819028178188783795251320914565798524215023494504267231897076398191229580201967759249046694042785527128977596682977180923605950050463513330546343874615889962856614239526438165784645344665003812521848225008883999959357045540143154939398345049472062287129888471338071696889819295498370324136749641348905294679844849184764326948888196025447105829780237926677232337522270925385155135175459239149673473806420212733637501020555830713774525917124854541071184764222799965802024547322740856913491166249928944264050516964712160301761727707732910574422672845591030057014698320319134113942844197322150987979498792492592643683890896333619546784677986126869066414588359491241536119180128631049087161795708777428947639354151960542908257288262182015910601908712208916995572533360589517097803711033245526533005378846134671589005931864006379386518590674479377444223300013168746236101753280445836167288477044117131157848267988827523240209649984472040899522387419089460622988377278781689936162341993261139756173698275475127390979255240615504260555394531606528066535131787030656719816242265962250469568125151690597850723671762030265483690065603582032100513440777244768475158577918334271713656056988295685061829300601941958365162649670665143747083242922218245425024685842747573411348202025783205791739196414094326042429081017218390540510153680148760352281220019835261744916410535266381623900305126170449721875165026331750241335699813651513499267166228520980415308237004436829476407393006008414910329466963078889796277632079614662645802400875796771247566427510726127688163284621026021004101681754310741506723264122921025330178391288576276861803389426481253438566742715648930240392993865697234847651180997881755891667535131010125891458580847074136654807987568627330270440959258905881296524953762787613617896801598924271509809929822826965394477973894228073326580802685027926620616997296244790821558005847948379500550419451621619259858389448318001446552270075762978569913734981425348661168202110755859178482502917813650962572907941558069791547301676990910328472358879969039852713502491292316676224501348147376518958396720663640833562800383238891215503333411531051599508774267516532289030571443248964685208745978222595827330094625616325736944758575787937276216433086333769719687602691295611269490877103096155347849303861569557531152708544667993896343091545535185325546916075904438306994972850111361599588755317661603294610888398528188516684580496241678728657857394453267421104137082885843515930566557467683269751948701943214763934948740043614208247120297892889233529013814389852386716856162250443136347087730978412238155373140506810315602354841439000891329637065885611498779346385117919768253570401607381931225537947935018560751220031918083753184123750760695733559581134734083524901564526191033469523123449368340333137928782026543688890908863497342706335472812008545951304669119956309363493163056706153073159793970985810564564462191793205559012045882544454340739184681846936214603837063703893376461072565949113504673347929674356659537663421085559330857411364786876923643890524965898951363296033017523713336506573256011099902034468316428514876025549254992291899048545042683438254480199993273017039020950012912440079094105431497329733345252763161455049535583537133429899505379243160082122393846966522375098331016904003956342137369889354483498083972981545365717972007586485529176601023636227550475721054556352221470253797762001774123982951345058416874940140078486508094771671221236042958515096772172880484761577349379962970624986509289896118174412392100401489855940621354840509925060709377118449768939769985320230828013973895663464729587843748200429713809543856717671325290030637885082930269577817048033492805361562548501964481800292368667863509422361046754394561828985351704225947436597014090635557100823316301686896136299556531220302054313495227625332652487977027146759521101873331279072211843914467599329738703786333254309071711748005298237134157975812006807675776780568516522128141864754356073856381292589959949669478826610384352980347210931295829387754847084299331197964383901314002842159439770384683517111476371971638487204980594556609780687581291685895618675203762714786626438914497332925675534532465663884905079197796008353546996793790428911110875574592354596020395149362444276583955451965962098293473487571742358866124238022919843879177550657219219797449036928259510459764098774401113929220158850878505287631552938200700338491046318846595924889933210948643666697192360890147565935797504098817385156160869892972093744216341227071451977571659948665347838335777998181098865999889227795734614839281972040563208803106205882921321187874043391207283763414452878055613379350972895230025006171787109579039299087713786784249453771233095062665172168323991484020167329999246342844385680692781261980844014550454080588044038722908438210005815644848927135836175819614405045538805556467488337017647167580456776942356444776694524126228301001882454744528083594417138160464908755312467045799491536714196406064421753093158788909581264056088141854592702173917293107895293008909144835711494690745214260175874968443489326202727969489705145703731035759060242551186129667601869813140392544124406111701141840864004302834717889437858821929101376361068595529705126277252748782513214727765134824134568785655413882770754743370763940675229702491542287726300448580969737973312311154884924600143320966116352004490832407497931783527053860656876114825003824453473762094532693805264967526715857484986385870038501844304278920776477220247449197670418462552379497928278488343242940729342034233643688172675768380380613782933780234183609538624834918368148583875730069242991334665586366198395821147939444073881034446328813470132934199415615203842987600274929333391444607789176461364277642925396741090750363692809985206603444555471691729349045979142873269121908920189033334041941028662360232906581837324034613997990536554734041070042536552216593333419602554037568854010703486943613301278552283348322833996226789364877908576244897969529716853167395288414898133066508039775068778331659432095276739269947792990281426672907901107685310089718262304697385029561832031187458215098658733083626532476695541746327429666070438710896131242852950148378137734910315783940367911125368655105095721936409154136534921921738117587674750216629813888015449053442103473115170222247641743486519955696330732109358511896069958495789844733351194136342462747292613084962396817907911065007596326123657816095493507115815367704088405939984023293251609819157247816528806414972307217453570937857309965932414054552825260724587985955891517699707634160252017045233471470201450368605564196316002965424614427764700470930559574039457017915203330839850850624545108810415983532947628274965777604120596972619885111188563745881415854006834155801342676639772004369336929619628474972917935344439916401406275516187201248343883505698771502456131517761596997657481560891008257074400907754798052337339397920479298863008749234734371933253844759558314323270672639197128272713431645079745123941278912955589728903395419753355168169311503435194065124399174678026569739094609925441610380152516456040711780322206846528423301133607204394529217595717166670052417049107714300076534864362259431956621508577903306407354816628179746472867058366152020909151368364752780680862581094470263022950459834879959432591228772420215557989200163362562484236393532811503308139883189966552953330600574719641801145505240828544037586504215946268786753846616100160275439092712564297544196900840426669519943769285058254372883986532415189794042181418353353253258989614853745706306950781421164575141824736844037610597762459276201243101766418442604585628203194738207203396553934403698701581007581736268952252044206482328351551758653863083476277172558972851839184475354077064947611672798480798380341559185917646777017041238934797903371418281855049884365571157747133714598225482083445262639627317509284543396315604367237790454254595873330664878588197313241334983773877067073647817668826582871762463370642528048041579802109038727798861921001696745410749171578582297089991923068803411323389130184396162424814398822225996239634358809789987565211887997783812412296179416620572267281347771465235341092577499874244464203810200537960978571845968536418747137164547203849382797380242809918832186798010895938912317384409016530582441481290386593721215738610489109452313946229264222077709953726473527104287352703856511453648981688779109693946391387316932968602367345116345913830882495795658553309175954750563044941078063131024997909539089696618790156771554145962485793632127564286501719804677823608391186296700215088761260935908344989761469690675712807845557318938525891940028806697664832122442028449032387470488098024563131070657890069688288157139325535579760928598709732660505574946717814671817156673231162970941780268187091418048136651538302420258898564046064069760359731122677014023929070998245968787505067644847207643630100143746238092506325066192672233613097453000124239724428173771635309373779203235048037290690825188828064891283030518930068548001376059860658673937709142702846703669211836020439483724227631231182825445374448301238559115128748087094258998564315449027561904721422564852321984911361379724537097622739310573187950587685383415411780638764558375905947692939323460617737805409744494463450142338510246439229445337776208398521367447421690757916505626232959425427196039155785801188581147929776627695090571813091129755804791589878360777458511156297295643455076839586635141012546276724567482346147064907753073930917798150128205244434717829212365733978789947701241343047626668166543917099769090528594122848955666134240135299142782854050212745978912428817458991357309157853625548741798001306902065110849830052031321265751194077227392172090634503393340395329077618759171731672767496829056550523227089695934956119897367638965833502472844735955380230451823145418138894583760993148819976605440207798247928041023445362578888507855299239746165638139052654867065733804142535229667690208173151803758679652680540790509042286823643529430281512984435865688133466991687259181364443574626262460509057072243237818456993803879070683476725665735288823170668346248556189020726157619347822333328128021349657079691805396700136296175513847940662555478072588620505155094141204008288985335927395810597143828568395669358320376148016269759181442013870732096039426498439284298961042179281807927217936125079020310851717882327337071411575756849901911251593485698793175566490735326359327575066710703364711721846426337412993626679430704229913468554027193461435890783690509249282880466172078598534018667120172361763669970039310725638126610491026434216808966475343293250900678346081833788781176391011070371623142435621362717675284232328179665839951309385402767380147930426946669201332755904219739054200860030561928012662785124255264316062285209589627958696336052994037016062687085100704885358238220194317341274138784927085650936417005579022501070675301486172286046314820133758988401081619666967691151932803321368311933687986225878402632411464652703180802048717931697715054966056560915650684446375141179422746194007203770599428912491408292810486977545520515157524145085324004712503382083868703245475702495882104103495662893338406588693246412987925241230388030676809402694469756408006961148250446867700017610210323944635353258790589913010525961908042541005655653912361014133565781009014833522857633717150530053311080339545141064270562776859739059213319917608381228908241881329758618860800845945114929782556426892186664987084692851205478844273443778419215404807006862517835792737223702932379678035474495160407841453323158921538469531104118906580910899424363791543078594367025879014951850624865704933547620636619360776749984779792773432364719177380240459751895019364785957238905846119110437304408975002100550337411273350652890092368085102249806475974154135644811228609213193541369184818325830789952918623952599590525884311090297034871398349381832200848848520307460844777012319700636351551904392425432343697249109412075086718279955408714698905069337277630047169348620300212504932358817076768591077164573802659083751258479151042483535715956787666746343338880229118451393133028877565157867119912076727384657827669674031319993560152043393980421287972957532406854848834588299172505884514728129100815024458769637452982659475534668889688987534660825242357965015865657788025103032647730569269782716883661921818823596690086885398508364015449543676220578208377755011234540766748166297190862186112190729402956708915480041774565554631319895099364976150457236300762915250063402945472144015979422615435787261157110497856407244242637441974088786549091094077800848618372386352788752500385767368486915622084223104138695990409786577463234873314887002019353799536230840526593520431110796668437504260518377515370318201418093213927006830171799588865908857283412338531939434462302059728504023116449998047672874139836957367294535299977290011368410248417785085683297745924840043853907609884672250375656790933386732418529216286859977651023748093795640881092378097024825127835985300354959201300682098097972261853308274126408996937257544008959031399157424401041965058541916984750006021048375653274710531189070938566923528679821917577060279592548217542190318197335587270210362330502089083426822833852002723828515022018673250432096525591373139249263481005374291510391114128143635506984074905521249040854440529448912651288308470114487477222502729091569254536228926858453721521017469205766561182482073830968946418606010683417564332619437478894900309504206216321693668277381985696249968142008657611078673654799435431252094030241860364344846570826822355905061316142344246156161913199428878126295222839321777836241054663309306925693673120198452885113252841795992147299450679142097947114256839693730602450435013015866383645720030576207003287277481952567391017334024376226104408436250995413312433297840467395647860739278577056084991751893528806119243071021421274672082789279780110343144069591510154410641713765732393293323389419389580610878682062317065090776145601377628712536631550573756346049025299209422293226012737568122154371536709693273805935269703349625332254317775647596148177118894446282006553102767686044537856469788771742397707377649748150321106787223582034031566313600670199339941013858411736012138749801046200101357373656533134084189167636200610239786574960632543784638458139218121483633412162174988623280459638948011790568196832168117806654450241068228311382011750648742977608217596062008740278286304123706031022921062084632823415997556066792963852238974360836948973938211016590824661156898776908325032743077897656909699840499309530761463632470539500280510130991977523039161336448169343019667145755978553003159208837587262108013170531656614985940133566422641504267821845275412722458550640698554368435846543850510666364215780681591870297101003229452132695812316331691688083914972625696485130237564455714997132742855901076763984666971091915380926157500766641857734394897658607030430273229734320296156230973393344472725817534199471996967018339473461471662237551507695314327298397946017349377507032437373503964996186569463562608078136094831848800517707668590567987181866516543552419460559936230881368579136587394913417590160118793753943899881667309505118207842585044431458500225063776443638616300212816959205424914137921010095924419418908435904958161466590979983358570204642169803294848160609146095388135413684549297906296519567457978082812554486179579170790605090870063995317397900148952454462200290011337596111838996864099674015573803016254479834494003900082769234218961247382385599366557368711876574814623052164554893746262356722502522006634868491308157285653549742463997090420635080628371872538326821101634370894488965725959266091272171745595256132036765754805865553717927295571953515552404001101028932380545437455201267755145381208411524374359360324054673493792404113214507629500145116245277212335872129650485476252766220580064649236143563927954628337828106935511280702924731126669699468390991041178831709420323536815424900607256847098514752337454764792230990155718333659413053236551427745043301822839373183381332745864339150996990377304951538073649712904763189070894151607409225919033947124287612562917863446809733702714060411500533035898640331524154613524021817414638533856467443623771316951965638655835239401463684658678785867228858970439245051272894862844326963456977146142540057374872631843460927757811291577987857969932743267046506297256636521714114074907724370428413889318404385776292663588343396909196288457444845620835811495715624641088641808423201026225053849200259041912108564260592257147541299829353805884877019682763433233653541074539786548742320002851700673687149587200116710859139318132602939934889798211949367698798732896838926547975063974292845686836736448133326926055941291916409816953428960486528138922350165853818429867176198046132647501843292028845126587342085073303131557031589613571268708746464293280260815804286642031500904781897125544801294578240311284110595652735070562987323622770961830337205227134717961594565937561922417419733783170565989984523185670475822456171778785063718241219814655461900903994812318782715361920302307802601234758186246008067099576001877729613758872139800119724063880823775008278097271400377240536818884639657550980981630500222513828727416373319923230846050530055841092616661106368780994792292446230622548603483579061795613815014191831476483289505685135144878982466415262520746783065847129854701401940177342659774896015301796280869032160778808498460048424293619591825414528592871780978442651779335309783644039205138631437329457107401970102573182222832869163543096882750502155050290929969002478949036149156527106286580392251801474736766514043343217673820632126421355546529196817998783112042956545301453500266999306871690653235626765899184520889648656365601986305302970604476756540931701833650293636913145158642831372129955812735698701433106838389289073720341664014149699099773961190303592754253312645622407328563679845643792685440503911078504758018988017316413407227716414135423595615289709652625428270997694430247277190903803461629411867635014817598302194360838154387196208606943977998827096113256287778716859904795266859608202785492361756796947502845491423928316789434523306857222232512067555186560678213773997144338021494431318265643919012535650437867117673073971265270476187083937859208048730826010154526880768235254422066475708418065888236933276534222414590358837333066667148016627117765325287188300703800060265691027323429222502686820786161281461192255197348019975147773070005270934530065993769070519383866350676790786819307001000712467806915685960030178271718702061901048816745672429118711550041459688060025188541231434191724003363039667621391895319829703593068547130917385041545709866374244081072189859596092738245799689317767436601291050715686924666814620440132494759634778240573579538589750154296573989235859311062634088846517892582254408734544872966623086016547884285191149696148618321920970368650186372926387294900357146092299639317959863471446147682715937676983189070245963846079666240562706259182909817695859432305798888421409596528800653740350455077134341907542801151667780395155172864810402745440766069987093754775076138464643919116608420943554724872076755544506263004802287702324632843410602753146654365433290609687437072097495155857673700217214795426153974692557016881932131696811479673451576962700323711067997199714527515811583744031873070233408480156578835019859554825943375663564644141382705507060456687333523018469363092647115917561079624829973171546725011876848901366832063578798327645118908046939642039769689506462346772390535263845845470334432794456244368600597249672431441336756076285195296616643996687633374976060538515689551004915015373422645256531549946748416584572060544102774772310325195700158407248607327390589975266786285482359268482236174263173908194680970121665671716083375723772295565345597484938734261868101831714847860114451088515510830130579159358175767574313184835392360488554476064234730575926542892528588427426587640912957407986582822164975940072917146944192284829140614324901745478771128700833241050024118394527849576160038346686202707995007989139596111898836594295289128444509748174521423576360359947929775933615404444756711326133165893529507375379872386669093741424492351705868676891919493638529314107758383452611419482293050739005794677003497485391698894926471014285973707925980127803861038677777279695843479197937685288745083685212533012968418426685227901746613046659261895160568683367367787102832825094911451102888324585412418794279684440541398176509472865025859540601567861413147686991165078984329612335286677587135111624972165014274126364690544735113507927318448075137289912413831336461819548039503823023385280595741760542948041171937414502693205282194275823584090963005369676098037059514422339255857158774838675009561026918191997484186313200491896469003601131026041292333729936033818651918027649854369882961824253817824884238823226508947001195925630863761376641958031229052860117752265969313731552280960846853558803877176193650720307453996561861391194886840005652736934948408878047099467059141432208428768194763132746975123712477371481767881501471777414660720468180340411007287879366506762044183604628956506661585689760220195631097749933723345845305631094706781612658149063732383989841719432469435175459748633474754479532407855338424725992293863148285664898376312886287964113151148999373778086570501505895444427970925464486352585477655185810664598040276396845563791515663297841586643858981504981863578268160954725432521498849526294264154947167482200569207936922083649848402218718562397003623058023381209048861312833112705389412965641506415042533302135766673621046783392434626061021613615603989818082445494133716793734779573497889517755869491620190895594983826455806971988368205721310874084708213645735068323826723636369301650088940012754602032194617529490938296453394912559034982990032559177830488572982705436004025881257635511370664384264004379622323632186184400492279230094409487818819600818732587738464392188194889004043269546523902528005396418959372764414217988511466348088728460171701329210631944183740748069765073377014445384537069984409361823318870298441114393922513617545221579871983425238198326271863677054287181597880803893977360028421200730993002193292285055327756953003894847723223170867768968869383941192978729267086907421210446293685764579902455197294592249152251634219568878265035828060616973641182453938266548592304107517118840240352778467354941787266978442156464009656323931308954087059179225361074591948495353582601131095272140213917844584162790611737069849159990282611788097175727232616036002264607381755071052218665894054571226298099825279650824353553464021939246892091719898717889841078212167499230631184766092174715553689931326523726646231028417691796238429206779880319654298614960429538430070673020289166064836501651100271783731505482561314666073581959749719404106670596932098936790148971059515769810356300105165450507526096261942754261799246991799254520111494192580726662441551101905899511129478336220135789271403919061120628177132675211382249653367745035743840012040370674765946094167512059556427396304132681939797969641419797198272259647795048958723410380555017308092246751808368831975245083998106015188986062875276867652073223081797333911470182273118563712816557630947612318507480489827750218051307488562086276101611318048553722106709179185130306564996421082782505721766614429324352788224026063691127123010120292220638310646556889609738609319349414336120776929937216251182487738969804486974335238736631866930138708620403911533658891631508261775245681589374418387471519374119510280241578634756112736906530918516262546692664290128237575251278046215850456834324171754307608669625888987748558362220944514208942013770299548413309789979088403364261581967243627386324207196477158529953715152614143605286146772376076180214485747797980867030477164952154949130533355179856209151959103007175857419459919794683577699080299039410630538966856618507593863173992593868482511241952628717924651816366514481262428764173404832860499920253010741237198556018469256175150295765886564595872671724988277259518453987585952930592807578075275020367526433807106875550071833773353363264918923030721797842611150559447343349271369285968416136716050598305344737910601938883213270184370537573765272831409111054402790782757717417629465590956228789742104538349212562071497245531030365837531923964937513786849488918618730268192893057559878657682625992502435073912610370668139464458488241143429172952051408722782039718449540196972415266612467691967113262116996944755736174215088892547222854507174238688482854007099927404664421092854299037068656755998127861183360809090508503077088539810759352521139916917486340924521720009488826530590445065162921366216844271776549153117784667805212198132927035766558328253050468712605748529584115243635374388340923025574885360342179431983566908595809544747544380016857742246046510493811135301277534583008923559602119601389914467478866041698235999897538635826312846802584673865299326231131953383990545867638576797466796096124179353247076000593362042921131983428979168427924137360515203459692636034312453528118659194011819218855219865585025374421207725496017431153726372619761741499548363040025812904494098032824083275458422874332013419471430322104659071996901188784970470051452306392339698258544840248532365673145494660659572101554709167472910120484157254239707037640848824564146720642516528524526542113360902412811181148852800198978487432038046131042998985567084430350479797020557989048692953698491339546055475444543012856557155319867386368821054167531653284359050955711641269647144827252029467614422713661014735555948243318904262510980971972374070012395203329619358199757006433495329928833624980491798555513542339214633317572415074129754811122341619927842983242181262444909378675909974734366971053458678463341486339584665820721499172078436155860607099001691178325561817583581992363060142507052468587761733492428584294383904767947724260475061132866308879491161921722924747126502814630855648174938175985509507520652827045966886428153217694562859107084041903649279744810703913402505895012198761225152036665769356506492085520046233657986581439750211349538807131990245374741187403707787332731943580196827483212857586943047453018147788527760061790049037949758296345167736365210222395135177536496221134655253208303115209801231907621689866127183769414107639300102149433028650259167155067848524225641165250359795015904721661761820326573013097198383227992300943429322229205479554949353549548425710186028350614899656855770147290808847240594107212016874282369711243270327066441427816110120236925349632017555404377775545672380204925290408987714598200772036817629883001544299772875172131219004294160846445842569914256235485483713917612006133834266848232704526052851499965836192257730622751457494253009913040229091766656643674067296296990275420971617932570664320583038503427146876155423455875570652895831976460397412793351881430695746899112801010097110492604008690297094444071099636007136268746719048153847099582956229757603943955358955998983897741396147207824853230069703938512388106472750682409331273974212389097879493792491460384788326876585475858529943548794397745969569843999328681364539017828099656024744916102192646903695914407027566619023765967456003511311268977542678814923922231299692350820476781634007198429069133544159517467933620756175571336084959937089946276623292038787617009814331568282346223737686632105654766186625895099046563026916422964615403051566519501335244349163335958950575477972022480153609340403687192618849773204606893500815863167895458562215864700313997851109251490533497634692096828502738673133067650585810616818352114132698337749298638220669667107031562999486678181295627361675895428227667716356900574069191928544577471873654621563097317934564685955924723619749253867134874360461487697375544621756386754225961425604019499878338336532025011080866218700215942284730477677857789499438299992540869455700554333696007690546241960523556772740622193536539775620642398027104197254730340907744653041965864965384368253200491053193415284798131599147290202338428336161334058690236962402957089896505166189970821109627273322273741515890788077143470168104257827458650449808904129115407505330330247455644959192632078085459761620240540250668157804718760908018617020319533234115323884283896817677468573129110988130914188142481156796187200087384917531372436851734291923991299128040172539112986933282092513603452389011047963632692388047456412007887060877115761136004189526230442005653337213810767848538827964168877897244346241108032339226008636295701468634691992435900171038086458053009985208308107195482571098322946612676401062818482159684639791156346713567500430716271329012510670984512352107052440750885387199192538865635728090735980166244788790068726042823063954476943750516186855080329110335663831724705014464800029557530099670226142522088388229535547066875144209585503611139981591716333838084734693241486036628225033147110878662669977796008943658210178065847749538796899318780010558711588684513569458500705085920844997952349848163032926741467331034447092724827584213860585270609535681455550818478516197457844184347387190046273934887953748135054158777989416580891745979220582413459987624892704643097062719273600924672338579510680561978307703324781329508737197394563818391576283669008779016382920919013977430645516312582259538727481546424499499849765390795890186466416489314493739521599768102804387844404250076955166518118761818156227415763026408761569384025671522125211371335393271844644631781891418597513060039885940974260411042763816238909294960835772199324832107318109605987041036736239989744805048929252809330010070685152542029200409143503143173977289208615271083939828684944186700954212022869940073535274734170951330216806582677242140609047039025496244178905137541925443454535797282859240741731992017009296437186758815133636393909801473933377683265838073271166649144732165038498682428651594540330684154731804107827223385862169680778185070132464409883267114301210987177192650213753961436240215353502198609485504630844070846154581415655897856800410829731430362598839462034571070016502504882720191291883069239478510118805229815440307793737167292747884069167638969534840225387651760307610083693620966552721880577382160060193872825244186634652757190292591195073333398367593596804645046805751847669823033714826844828175824189729351853552021186066498184048546887715289739801249092982318443121204803900615821586936561603002097782926992337398965513398726945507159965174468000730709458046858898355687068189277541856625955629416504140207842603687597936142772997688833384411831588674947257502657150123872898424798784109260967002832496803813560165042505304171437890373508653967796207581753751778696016331576925782250276669312643610827090449839316138782921070391090971147507241780205288097701594223768881881970240570136607367321246109497672837268582993275704331517657721861043698721620387990236949249117268437563152775880153407167456826106269675775676894530681808515228906280882576968870639831023411968058587744014342634343530713316459018226261496785858665615303688396472392638344060495207959141897650503145027690018362537768117596433011913412250143366425419837683055115941623711029281183603597594185942026698966200468380961172393133812005936044094556527779906364913147079454153983182377615270100315544441744689303381321751796130447886188482621893802274107877266040917833176734800819979908894154228139346451871926930396340055936942590868850471477559055623049728569015533075080925517389477070948294551167891153169889476259145487052729611555431966622374597659674131380686060452864621746928391456232519532740044685924616015208052807622430352945283100426862175773541055914863749411266587270137731840869909130732327840230478441786919714643296112746711850844494074624059512190831571248566202446738735387494548189043545402258232588500213105106871169204834155219370667373980640002176802531218563399629710123118269741030019672725284218216652018613855173962474855228039700105452554585190743578220612143799456963132601252287381239936448911087170062819477783672553869457919403164621271478180518530148785273120192529908681354432532846491887267756104004430524196255931435216668776399226401154812925566757425611593863699605245979120072619487200167640035920715113459352955030099642359425509158166458159106356769182086964802960549977592906091491810183143996324307793789217573322104426123184410646819503444929048792255660611096521228534614364358260416789750847587739897062265290566800975311702710904686082190922434660211268571572442749190400463361373644710981653920188898796257697391524382816172786369403742068386813157735710778470105501538928585174098280015015974707946121396247565075789469527632186574009196038718326139380965936193767123728459026196265143639483351525600590767009686626346828118702737575219315445801911929571626927068268458871777195285737517904413930540593816552980348163029065278696890225368892892324936274899144963297530614422427660298993436875652540598814113394160167798408479293023993557154656872691986908874393017174509555139414000979578494175093440632231631526788792537944450876655705123059605675777429820441027702078022746760756665420496351200735417564309022001376188626931619104789407994989660013617951229696663372971259812359460431962964272116330275277405412581980496247370441667012573051259613430936243981075447107852233511728777804418319508243548809921652598529018239579129682326925276055648715472748012790959497477552710513189215771343245880049737146159903893673711392624248639372525417172936579272932972315011685365140055472288589927389953019771949927537251886132203956357983528299513712463720521288535696044492490794265274306398918957635573182989465173926297943813507009335760322803033423512683213355794314701435623565509323081096199311263021286833972783936783560188453495393802558649570322914954471930288409110747856788181123734676488880019667169490985402571524162821926787815446605586483542864704245517157169970408935108761732945957310006258728468178455648131222423058749574976840584298892959248515568933598600669256628387454663284623111758824384129922750170117748463484977002277747300357899972789034930780451877277145827154714254108130239680096147803191801364682964167271083428554371779277673179450591999304398530031491232749606316165399374420364510260043788970645102622184707077790064567918221163320482545235764989440013060527595925372224489951151606503901592815409159864047239008896133749418943741681292208328119538536559884287994525182327109147509413895229778208122550013732476460615308888649875733064859042626465554469303737941173062013931306420181427012247753810150997623121716321283876477055678062966464252058070796523932562576317753583428234696417013552762436352120362296476545438801571074487955039782853705162174934577115362747280239317157959052138105802375131859155814554686898923669712779754862244008328865714743826120835195442323748608177745985105714265793786012870178074173339196132495288816839134164487188109125170472059010322078743042471270945217125814284502602117414022027549770401499217188841948892460615561238088446191514002648219957309331443654111815412304693775820952595937374280692708016683059918450787748867523423522882259293233436734059037444041999756335641734021028409559296120968247166845923045119599520484683010500426263066083499111738556960655158821481543933284652834458907966542584125047319185356800342506951465457367881203097267894207876595680701347059779958798584458205721299167683792144559979330865646010815920626876414629381297805308565587761249995223537983058334269835021038150894237311746877820260255807038653873137346769194900725625585498707830475230344078292766687848331997509419907736393311232846151278549625108191963792876031687193562256795998027050977133559267130694849442859837015783241270049083608200203253393138802743352110128884638175788092614717747801874146464041526228323350555280182529591986385970244685498442439424596736291661068747931291215972502362415672997183423863980661407226272595321648373271901725457689161551671640564973660146111738505675235601505052258660880843513737686990706048021793749642436429871903434750678091129813632178461563233340589477918809725380769429508320723040897835073635349127224083654807100592746389168450487719610977531971674771557884913647500333407097037873274994388039078015292219741342124497945976216211069564574712625871465015605475003249789925410101504166868062584553444232578895230612200051693494930972011695701225522236025851160393870106539181701185889735424884484240485716192471373942102803973431639819926047874197788796419163988123249697270795830281086365287308079764765640553482655424225320262110199429519408049833709181396110590671301482726937783163606545450717954097247330277080379517282345532019011729079884959076212073757894381052304980396257207153795817008388150551307922704077501833009983850101188723446072870914249331115067504845971338536835676744711768133909842761916941904835821260467058968215574938796092429437606114358691399039286471448219170852419651290345416272623845287780002338135361544932822580381864246430138314284472531252555910775532148901681792716723634676269480800341664645661035057749279241238977334493297397916847921048280749881788733683051939509856349442577641348165210825113535426824352557286719068523962169716222286222293399959867155631047709485957020882625822661953658542225806407755830226867390707776540580782842587877932916582138824957892834474288082962067720600924186837195719279642949671546486793305631296497189491570324761516864481704942226498808589965680605956582720058696965946293397265316432938302963930504262089390516958845987840497876436467475385402624633301192368833539544195932714149445743698387723882783717169281847073548804282734135481992701939346854568579778450156471758481492445602855824610690015844954921817231617752933603663144996081042161790528335221978157693505263571417862537064255494371485514515380355604659459243003901390959019011326002706947437318524531840222686522227262932116139720781940352833680260554197855904755121229882390696653039839845271520158174454111582810081608644602291379646330081394735842345544686060358599198649529809846562916921573383576629042110731294694043493632178052223076353479367560336756740497301750863839575544442440147304756475316003142816134600480752548258446655790830268697106013049413037326633766365644611860965925411060990651384429271957337734022346325634224476689011369079956446384696327458887550744580449694762437328302273832071977385391950743319353149484786959582791510756727141545616968357766728924888683028626338888489985216079869678442359433278941620340664671971527035101907152265259081761764069902917533336509797361553105222497118072079132817477142420378816345246272129195225337054274659156186094255949670613206125025835868376313367736462307428846496929228013208882405672473839015416558591187165988435984382029641580953115023264584038422678538226874129035975470156734611182764292469426301096309008899054189207835233872321760452514708521657657821534705121976389666219592059935529007346943309072988297058275712120110068349749877396396672836921952182043787756554168094781389145995840934600218833790896010622573384328325002723907010216498890430583844854701556402930827104855182925623832313086364493966486480491106555185878493436482909179239581788563780419855548233062493512895429385252054116256666853357362633809888839626583604131755479351124542639416070812722453779423298459526808090490251403789916111115960397301826756539043459522794356240233121708243256701574757368635327734451497761644879437245041652312192737805778711848921116557167251870211232455737565006619154432774835159921345234874117714192410065484229381532425933756307892266518251604819997923219944191114604836975936169681532879910141456947635369634279334889908234139545386131492481606366990074263187800156543751157545055819754027435623535508886202227482134238195407533871931729829849357781576181900799340276892165688717506737552496021540594723593807926356941398736165451431228391188381500066775794160148625409531957942593826927034045396567455060817044405682044031807931901689719626496049446941389200859486500486141330733059239659114829560051222085426275024904271025182053124348405760514669742240071521524679660406824858754196063873159763403183230246150938292458938474610370717689806943257880798919555045354902136259635803306673221168114300186816381907959721189175205564898520485554099628408723346057552540516950400527664227446080813000392475424688922895818371760736620686791741185829350456444733453046194351364863912674193820106516867493423073317531236731812058316300267138828383913078164832855590427786223605356102479868852524318914909429602404873659312098981018358516122316800080912491542080865923366508607051586611239497144552019297719903745204216540431081676198876689866631295420788188747535559901720400505619984004079210538331767989332921548262734645300663111615259046097993251220327416374230955204860126035394808820098524417562492634289369152969864509964368889544074760081749047994131848364364035510775151381358972739525065064307301765566248568478695156525951535623806434742602559990706121327467868670488957171685727581948541659089724400233524188689622092381870038012516924957429080645751028801777456078766742024020278744204813916887881691566180037144394889452268743294125496409215303591667362245667723005660850039541579513178169147559153364307806398580328107725040905724447002747776812925073672964773456356259592636602582464706389591255618627274492879835126583906480392623053677207228392635813134434816545010421259013000813356608600297490942016829805086512891582336230773502075294280249377889110848372050608336200991858706757442576268262678987726630319330701571671488313370178351827797329212215011707162542495465148953583436760471393683253152995111076167118134831987072934461539960340873188713201635179996109338519414704500807759499291555965994623717994185910041002037895007143956727508924805253168801567400485662386313029069335387591857902150782249498278867393490603941284281852317631652192540045001247607953984351242770413867314459179349898718219317702277414578341345091015459716722779763270080936185638735197309155823041935145407118899894171193523596176652311756257696747213651384150616491871143245074625904960490657758292503810939257474258616018418572276931505851303526931286519588819955892961570330437376116009047836187761331709570068660620054001600511406788484460610905983395944338623955695378582284053098815809441389819118908232141755311765914517952067741876308793763378464489505454684021743422863040849809899577161652673742350705973250615503333848630403399114417704555596349003673968625344202737279243418162768067492807337466530554069362296598278585787543471778311490836708664647170091623124190655952104041071735179484199895815670727675963128737043558946679383371550210527933760460290088451809981560609773100058523729489584881310886727033743553753390012120009143756934519411329183757510660484420106183649090370384591465800373005316047935192458043846172694772614935804093015458248151055996067526282457545079779821144529887465375128724030802212773861334433554097022802829220615419300070904543974217032327234978023296706058347221471084900213728816817418290218648024626714411694233121462750737705583546113519978967563318120196534038323174481024021156599903960514424146684779085449639808091980564703991862209527567661499935081384744858898702395515487823791439808208047250701434847933624172557977793143094779979518588335598555252387663562417192925708946761170886355622440109165508107108078856931970719723536324137856304666053422923333370623025736294731232952007292897788283525984807392755814068592366091690953490302734505225835058340272503625661845309090327144564205599187403211654693973691065112613696037211207034946333597828361172016515489470222009665214068950474314319103335016820217561141138592907375474497030414375693191782282537170342453413650569578976520947430083952859266443450214494889741554008943404772139254642100540967645140705197272951907612835071360562416433420152977495190854809580482879559495874117217936126339622081644790649359755528743467315688136496133128257731091519280437537984497845103024021394436740953889289444207231451861476635993981541435165136074175909553558457068431851681503624422263168775324027787454159064470956208496210194820308859284067817249616592594467082959100692847155110790567251124317244746631372499986158623569412939481799339335957649638622362424186751672776033765619077584678972309553264287178088039777966246287663207959798798605401472356678109071142426689654763417761657567052727782660566674632916681826287318906812668467304680152738062433318355347562554035230421512409565953452863088678486772377140144280438387045328741844041824785037058863826729559539939840309597829326770192208133944025934507498919762226322023218816714622511417991036879136206869468863040501633234724930202376674627899011534022921562773351413954973448806374805249456333529250728394689555532022853111232607593551562215338959389956345101781510454494352413394357511236880709018178355668091764494359472818260668251084678520236914368353174231466987534702810287892993882947017200672317477598752212636511178874010674838024628377977117213903223909773159424450843670146159494892544039576208183964083191970722473868118671479830274800487497660794122446791274816188381309921518014843068827565098952488003635504908105402607826036532416405334664768423218670326557539788164596372056928458049118030082971640376009309574180296522254496718268726706467243181353392658559136478880971948186856231221091947981350606622717872732048528108937076771849040665122865900564793387841631245119579614360051170131603727740243677979200639782239310382619465174181033752673260322758377566884514206476386349330542537388590658680605568810297316500441143172569664728158476115605552937765844788290203838015860304714917293074333264031770392213918975896648124670258685668855745222859476249557203540045271372195631982645435269734817785341916344990442456143213103701036795430396120652478551505584503149615938363229932066269276952689040852860657425595226711885400765438863051127556329500790692237353289322566362520493423041611638135307006051724783228285689354216294474131237054753712624249485709902474166764229316423794956867643375542546197340780441365767446095820065053280873644190599314614992627727430132242220867224910381512509144510201244368002820731000311792253184727775461611967056943734402491617509675374121891849097253440084352581233644115783920042846518285281822698920998112140796612394263003701521327152806758714011268835170082829856972632775194849119922692505274547610204615972533400215521803258920698202083255097417599230478768736155808849303538574109585354715342139875642606543099771752964613656674613845832420937449543491612239890814217696551313101852766652612761869972180416587967920231292464428015486552009984000038741852689118070586140826347612149093778166803556956705936288655521412905539746258985608196470753119642511634418323358547289242335417111057851954230349246978588928644253852272272607854636107193942677549797090021274891046001945334473302354423985608695335407135782776799412237643184688360841055263557474462165092384375205585465859020418910730250787034383623482239694391395210584217487945426934728506058517100794291532879706180509158710670349431354058384635897384721714824964795240401149789466878532679630561290975205005502271753145478600619184080892224418021214013053787336900035451847559697475678825411397446703185781144901997183554002389767517068899523913887910883018094270494105343987841527344579063369804787912556965220955448700007450543002182540022569627558241924187439204822700766380916885270225072518054957689535200940376404210705791790328920354965390347560415423100750781077294348559705727828537231311417429392535097759354335313617020431504103789150224737238493539920140430452782988116860835813827595908633741395485886178842848597791173130060185229587165151705323445288171626513072379634638112566384543890228011043598974832871787384535769064125442377994563771786313174437928339496421292981416070465319293577720869501079247859271016924829209720953479552343627185788773687830254969897909930170816339256508603560082620104831576285314593893781729801958666738646836880258899291388443086857114088084293188414270454630364935682876060057399256327366637528648954625354279256994883925740947120114705426842056626521941316614338859524809399692932201491821941350765374369669532568607547277336316364245401943513221990393502894001884242130549598602872104234269364335724371934716067082927665271704499575562594410908529905431274448333693786818240828059695628401786777984178875775062408708540120003975557522947035469964079439804284751084042914763915248846431697085017064357989987374256164448410300902105071188442856228972908852208492528468432598138479337780477894663077966035414948850661115473440093522841281198372493473752061074869405476254298982842427620542313406096136833467248958989358610065638815020137684976871042718829572114032807613017555663687974550652804896387922217300984086855928296791350191752575871887670743974275465871961359449645248113508669423226716778506574783103859521823647452542256094852329904234305199735181857389598483516729773340498154354251029412850259308314233020303001533607252851496192967114738448385543058532960930664463424771188756286047869079860393246110136368658900941565178617986018108852000081050266687454520437406382678919795972724604463787673111911215450899553489656217717723432573080863515765962114683454690392466737270156663016748152101169771523137701333379732252328705270938627271026830788836184091731971978752276738860850230079912910272771917075414888133640644075632743109408959847239619401343856446843849477689405039152244604110966145498578474156670071716170903885103304785837845002495721852817789543308911643711128039222882995424275437032549932928674255365883249358822326688439529049810066261433030064374974673421301032702822212966943923914450039567472010074555481473422200358874071615246000339525939994260631138512909084988992241849418690960790853257636059815250243610022648044335615276923825747844947138400336343516639018361160264467039717228321973341493475501083734036063979726632786123038398799080497425012215403822768998168587943421867962477566595272200013172046035446243737576949772596699817752791620221224214072533303851097847349999810523527247709869580904830771968478673922725669533811052133516974975589524548483150172937796705549112588930944053518693996078468092275116873524305804335035111809078192485061061046879883089958138870723963941842951595288471974853951692945814836507880056092075594674254488012106217516985874322625821521078808983526481567249707162171520934675170542014414322918452231467532785905669854143620095179611752578744296159818746827705866624487058866971492579505812240202425856535297415208695205251859936854591489635209674650248853809721719991726396514919915682360183345977248243721200492770898022539256105154073272067470897598855140287133262018822008931859531643659213444359868555775017037976116241506090830672479280334513551668844363336505283000637629004613004881029708588352351176590309307999939122244328138956698605666178181813586334907747578920387932932668633290930684015724384875239474922549780401037698231947892926940038136917303362639598541390827813389542435139946410529789269351258670952963569575502869690824086243175892333887272129039385929155770338009993988019421336301223396005191363441291627023431490398603209268014005415136806431479319709660317406912882839340355665743607173658731520493980911948689208985673129053708605364546460088764789544707522558810945310324099427364181075423967646714103628997128032354989377846680078565957640288430064854731748315371791568814688962060405771882085861749675892194391803510635781679409074566636588510458316609760285031093001814954085809620334790290137452788377721479687632529623669464384030135173864748940402464755063024002180988819408120948282862293133406718787498893405727751082835948746019340927922415534650704265162083049231657650120413714628360648166050199274972996942640571038243617549809692449128112975908326222180514906062326849256914535781437721348926413816989201719494815187086320706610100842404745798636755497635512760922811181333878421637134390034821751433926877714127708570349166958683254783341903727485784985230975674564243836231603310625435173824701661710091792496527622244922313356215202015462259988167017789288748101810170577118477479399313430740458368302827696511474371026579297473428303943814156280280344458826822786261125764271481575829407451736776235627447777480459162732863547661956542605454126551309238631011034927575202779041392216924358637783139264665822510049330511385028499922438249352316768568494673392296683444904166339837874242465597477005439673736494936012203890084341087674506852146263159798218715276481806309246536890724797144450148578778921920099435107366278229708498397181123728633334393063554769703741027699746155820551015887225182653872620365398012911499799161623539543794422464443195879931910864836835821502153911432087932521057915311763344235239517153759143651192713903910983322232271074810603654289869387430885692036622548762612536202248197268752530968933083085994582989435312048530983833269428190680099162356235094566856902710339091522765914817801165894173908761437324852551630090556972396154894948099100116542756112608657893048035521106191721856609904731842862574969331144292280418643852332621470069453044863125259086855583344247735204710822402431382044172557862889289905562986377490853842982451109315960388867941565075423645945720406552750717753111360517772711551750688230590563500118791863031082591858919479289399165358825472908106673198409962604538650050557860286652541129021876600862466706313246387520822795337090703195060617640917662138866112417843012366590783629184138115450944471367308833532638067005747549661493751987065916123834140001165793286442978083821014542284197704064998933442175811264805845785346156540554360950278917338138304394575531039735487664942787067236323913315265558915861586968021880953175255339355862451726516578491952681594557187781774283769168337713222871370281568398550108638312871122875172411453481941608928632655801831628105756926526457223010642448889970389233959644809221109090724432817890808297033560383294306221303319614572016860177964175478022140780367471284037727285260576947836720340406209056943330365259642599916168082062493521038329483836399065525587267467567815883827487443010015480292396271061939691070537464103130778010833551284222697783055892629276938567176880954865853476249063750677978389217100504685103991221686987380695634584709095438728891119000705575244483902390288529665785864162726891226530149620017662077921882047507226402457164896955073250705250731699495302499114231958332116108937598750074119666754712343825239082011003107596584693199623595617820530202000915571084320961168188083612361665022780682138816875111074120061590324462129444343148984751161139709927929985511085604904854700569220604732241475804657206000935198977068294236508322915870398206486386594645805300800893388168916691742568203377357613162375178883413673935581728007696125212511568559237818880300138852514605925835620167146526158360222010074828826769474491094973310607540335927242528239539595650979459397522592809645083391654655897127266342730764423400683786563669070686929952209470166238769288666221531817237761432116987356679081483814220257011650911833610231393244043840202424042460983316808550485257891738483728384783276734636850132199463066015587523261258337294808434681281934380232559372087692816275673956568779921842392165812743831628242507496760655580872618787710304877551802135970583489798455071599388458296051818377436762630042998728722893192713449765034200600058447680883316983667945122454924709311655992216691001245536133013808556416434618623973831406710264694793163224432095393438161770823308977046211175123954147078438477211331087121128527102001561365398325928077006606070649204262875727488723979957604945242946629576844221290485639143473729535701701279054320006679164719730871639686655849815326766063200488488769500485480858084510248459789668266687584479931959134117084916051733979698795702160233385928188110721860071211626322217398897524505983205286278258049313894216457629816575461021962239117686087049251083048008813577423232028558929213868918397964886449886273304546664062012788041281957302856350670422096376937125723953620302524034029284203281519061416360590955288666035463612828296822234547588190080801178586755878343500984865439451992465500466874788581813002150440316164448041112930943004458770089325456591004279076196987109400402333400595990377500253597319195855643197006789017919656572264648046735259686771320565974045631716981830130139076959524374017533110906704791200414404224983117941227431803739524510369237327308584194999072520363877777697506240421919124047459809360600808274894814652194057008550672716685441384366517419204107466636043876222617424291462334295825395834482321246928661526572353978109450429586155690018803534844687785095785801700477692412568183822984645793264824071196251590248841299683026128199910270731597955773112056488544072240516185612769398591821369050599526136967803839823673354224028737726057063412398036802362133980931787898547599254445512896115257740770720769528942083217776847368572896206464978795393006178927706770698210648274663891292996443717338293383975598172440158978784098202468479238469774605522311439894783161242496220918386165594897379774110861653283222517943795798404951421756109233468012986935833880300600141782786463417135915894449963447133206857896842330615737605887250468051377408824114869083356961092980421436501809143316503999977062101994357511350016975996330951864803581751051298691908563182152462321329311417255696341372448294270698509418410051238872909015422375542954725576690681653903042784257111736756944697693082108569722675486377740711943632284699238545986994067906391917620306404520027915239559700174265875989276392970785387071836023764697485895505817041278170258575059693812453855280897636396261759797309629528230195913918067107698295830576800910441205736765697343214145069832467789076484153393213548023177035505021656465631830194126057562788436068633965901711621327778438917901216238921503885227335972319554708993636568004439814906355227824003915179541539243090314080016031419708952729489988241539881566166910155529290501645405914506861975470016361224307557414419804308505145067758519325781261946204897914482842353908234791526384833185895845645279794307218789031346755880938482131207208543047206999380091834886044764714507228806319996830777340476612914119361081049216303584414427944230839338382167670322657391785727417379255227740267708769745231492000340005993382167642642238310906099457488143455051594387736347962363682051995340824138717809798738178425844339733805577644881024212005149686929665416677202117329187842285641176475413863505625413188758535434218851464299192292523940132676694704731451844855431566421222194980187747538865269612468773875550684966669776883168984524004460260766082143806360110940563108087925278217320447118242329192466068266453838275979696496565192202430670789015322954869372358021517678238556679985910664585091663672124899233781732912278163833016783200405167172039480549574948187441297579452653962607654222097546202950837160946919529606906747894157863471726500441889124680797854902700527331026368520711810972273813968605001118382905277563630635589159791877072921330208397917438164730998165466443624378647361745319490591387571821792678417217235862001926327110914991781015242688577323747538714814843376007023717920762302637081766901930919564618123583858547042815117549393722893496620753338599991117161216103558621537332274344438939425680556409657576254543454491434035139094040116361721059331322847754901388079504772457582387687802015506029829515320518444734867743653164477706987473807472263850243560869341255113988824098053699702202583711834568340894260393318803712685417766783216532500709788951533312181545528634372037858853511631180359124601488934183310389864848002388702285163329087243548813936203315230642890104365603365169423976762112035326030878552722944701662743914199210981270211136058769216124104275516382957618923919244061593596849449457747619769164581286170259498385265374188928947642641247675207166345356442316340286440235646477323465717960583630690009887236432038568095336575672695334967450064751356961907550187467924363198889627745048648947120958285384338110562481217493389661501921904533896595098523082760252122457715819461415029631422873627439970129679872401495554823017410734582272581262464034431484840884628316569380792855840838176921220242867629624696792330401824655856112543123542014870342947188354306189310857277182483195440879174720992366394039204663645063172063396161898485841122201000227448194292041777472920024665633499153320258874205417649104900628663737602009329493589557570969730230107172129170220812599724631756171038458942013018190296514041396817548262701680908178380821157732196462083203349409886230695649223551053007824282184589593837818676820066760586701075885205781034746891380768542917377274388905010226762678968984324225254271009495726665920075521971160975488729333165232387965375164036762612042786414297493446999307966398241764748787794211749233062472154151310017208187880357841456883679473872343592537441374067075963588987909316387659000413270710874523680121224290712410775096084534130800808040601809634071596342146898958539363708455018745363058226471555572098258647721990153893683215345532762023838490999076500157892439375528054690680958531559368770914056424426980065916792708798690770370212255589548058911339099908410671033840139129961267186072358510481755490092612116883362883221206904498030782264785940422753768309552246398204984515259113588921271399233586988549748198733308135232128784276371866994022047448778048230013967375832073082933804051835399738045363319888070088616419406339377249073102710268907294937870803779998645342082370778335151507143630845945396881076464160639018444455689551207153070284405133821769814195716071278599474817541536061824029327362965445362016321722704970121061114746465458726492587031019225710623519716694168104838085630241850780168792066927781637970496095310017981590843682404889645555989975476112457746025481738024223669900260622797409322617369255994893209798697340504066564453028376995570029152280132596113477192692552963002628596992495522892008822217103105392112564224417410517961805709678440625494301358248203149096439583650324346751704196089629353911339688320050429628885448430032032577793322154622424010335580910479615352278712382630291954266201606540310183373196628596790739853398531040651198049851350478540109020514676469136592807912405410497050127168951118001771661167998870431873811831073148876600622986702059271996267077874168374948218494437716689900271530702861618835664803825479336528593054046457118632347839339661219869322965796590931011655941513434311090179455433024517501974986249011646757937441061096238410792763329824437290187170630396907836356456008109678882372307133288614151176691717705977179586115163738501196388820243343549805831025971235768939663016735837043947507899226401248122367491544598973608651766206112471253030464273180428837347842188182790698503279240416378449549901141865760801417184043533159304021026095531716058079814167948798203701152868717246329143512316989024822375155743470046867211004168082963221303519142558385790657076400685033388771210520522747284985337132390925609500444173561122937153808921381858036324657873113276304162003660195667749942590173315197741263807285428799336715277754068864354119903168801586196529352292823700617422937682208677360773379140265040222933070218143225000424121439237461852495614538533733275880132748467690917655864318805058191363206849584224728068207726032888197666208152941797467236751821729273562174738021751022601914124362792680743317194045273512637123264200053817072763478725706677557345833949189046503322726873903547003676900965569072999017394907549880830463002684253223372759168500261594593880584139784626151345142820728140850860694405191886450297099880628636129888349932971729887816670103614295664453803125294452873242327304589761044891386721448822245538388780307368357995576100603703229742582279477641788174003366005283198707862654437432889329946060416600049445614576796520210482025721178709029397624690804259971549667517462657493445508343358363483947155710138940323926911329122514923219610533240974211145826448823581759578330254604674884334801599722685220994951738863575035123937781836510014756659439351083584587322275310415477959635263476514128614635851305631011748402721160950945831524216595167134843487201798544918555569382900169249340820410625049141275415416714626699249207905032542561241525758846536281681636599767798395615098654413727209822424178632886723581167471564548517734974267122873561353989466653170600058709499338352953646729888631127998722742665143016207034282002668280668470903316234654147409432790616984306077804080525460812857625329114213269538083831468195745210480284161620297203328690583493974608772173756715903832887318242227455298550698076526471226602069767224408094449396413536477593136144306440724510641245036616548642472916460839516577890865272910614872977346994127704318830468416231376786868867285610595164297259132844863439547625501067627555246526991888108066218279808269894041022482253327947763253346493978129743594833646201270689596034764260210786050553283875835905048158187359035607981311665313054343484450188715199316248258042729256362747561635872465465710582700602034954563367859184037931914070128364947732822736304075933670773190821099148793912402960670289390357113808820506371822630427352561450912915357328195970529650902739790729837532047507074046432844535022695708727941493171889671141014055911414336450180559234280128321438950879898265971013207819662329219649923224770389200591663826445251089286805658139665366414531890982590081385327847560218330142720203171910397844402907306964332984873689542594999847394847395893382724377627414589694421327541203211640824428880851438920841021274409231665538836341397820996955857226766625446015082889468344377237788428357121246509255188606365865929825472035918896994290609153528508437866157298057497437214366080128167894680309201560228468115171289945005873338630048383525000546109597536491195289147815005420599974817529909511627925909937516406181503612355264025870286896684738906869587614489073376248018036648157397464619215243119403384173163897683790821187498299110677837391035055898501294474741807431962420895903281348285479926148955845281829040771892722507022958125369679183737596429668141260540247114702541699716012694479070334846501345145175376460522914123129989832349971451022570476688234342994706620887836129783145514017651036468297892368353180655342283335547306379893746632628228733600426601923279016175028870589845101165607008359428076441794862998163128777680811711752319127300070459098442917742130255317694581660600754057718523306222395608847808576462218494456620376199921599226074411351134864676958271091683562323474643952964733516275217145699848218854357564329359268536305684861574522332353993352650718807477841698539809297921556851909976506432004397176743520104067802050209791007940355824619316066447307677415080497512422281975293085882485947045408597950062864158665697245440516790616199015297366985110232002131217752095656757303127813800176758593907368005505937717257287204288169976735750631767264640525916582821272520713834893124482457947392792203224738393883431131113142948868843556959065262173551495853402856691580121521996188667684742193461185126416832482414931691701555084602724714069932235697897708414099605828050893843798518258162420785108814931770927145724199001401668126615164427722552855696711151591193506405841140399858065343289665033766058891479909974660259289070310092743772588950207496638838206599165858007805885676388572532539096919619559303710430982140432176047932383063374660313041131396373515634620002509918814148285660684613729556272872687071069173951564988525709239268831968528909432506958304742752250538912441089645971428563835395126136126883613685129559094652213127680309885439009069173043208511201969927934786157013193812998995238732844582215690780861570052625623783741263726181604716970902526646320224323876694359458400445731537084530801267534993971241138782675325763759901827943551527167649098408609158158896436318504475136338020051659400465082755019546716137124969814789992575151429381050791411001486202449793324059982919368505001639916249297035182877925654430353916007397941337572228613191830154817266795589599446623431629269908006475712792126224648331553867860486089205174695147181706312527278799074808523007312331504490454297145084677238508624660830460787750487920648893430085321441036804793343347455776804102620747192896093678297404466564191325885435747497755730246443883419456973952783338720423671371156359053108949769123263295852309683767419902451611724870263071346182853793249370461945836242332245999051848890686970153034300901766982424208421631176718019273350866959984424574262375640039200515091537064657754249089517734482787772557780268140193133006532950977906660855913146907172427801613814262037582649365405970186786307589310411473599464109681655472759424940381684003774016217081140618996017134330601683892038370234579073147951834463144994274028146573978920685415268418562708716090629690565174613090195688923098373659036497332118707274399290053627288007100666022531091011592899159912999832868947216892798275520980474882197871312005541409166214446866350004614451639530534943106171507810523702742422753086277739765947238293844798701661309399590744041061454793953861685356495699568353652130542289385778052654609364693051702975960026923549103525576013629331294195054538957544001122490001056313290564539077733766524336738169861986197243232370432591550715791062826528363215169536239453556144519889655647293892180913606573952314119933184873739919012457218623142232669604819300368953190124510524028646318060177875281224146655322668258955547681454115134009708855765029540668871445558828691006310846920749263280136566075354783653805355824711835659362756951026887045677161730453914493623715127387114168776611498053964362837193021627377552834461222088610188686123723278020016900345161669873221586587192411904693654911336683621782289332102390707255035937469503702495091822268699777303442842311222449619173807687841428139800647770937614629199319201975673752394686017995040702511590211451213020134147140626719341756667546799938419603550072912669805572991068809083495079205499369000178893064528825419599098338512584530093346725680798191023616690323065844844162908455720416513088466282221127678561825813117858763012039831579264158446913049565387974157529255682397381608486617026998912109956009822637774617634232674283733426109549747002264242315744391709465759623528852766630995332900093385959202526477233206268169692438818841656079626398317116406567891875884788306682370214730290162893280078242844989660660695531617781978314144045991931161050593577164900748105034947308133022744393667968953851036356548019486064330081805067747175619204332688837220211312214145195786500743033410928583686593096709252268578861080511157115201163781930554997705815770893476247230364341927549824149044555823687051384361359635251745214168696464358012290342906462025826129475596974456688965834963772817421016648555422759965128769641716833040061888671005542091866155775403470959235309703128516540471415000796198485008497833783176030528218083661280579227993337585871029916375522139212787801717718648131686070298465528228845506000328801958524839968384471668068857284681377071613923476010813290960859402947884605635225863205920651676272976154471839013979015619893933562125932129105527845260425764875114378826555800925054395438938700932158387151341013864931294812503641278629380345044851919953220554656168998438447939392218671558761589938690799424411718760027351157479195735331356755608299224986005977978301345268208874438179227813715022104725054146775322658649958256339551438738488641497569530347092619243979750371305387085541737842623824337235924986289340424326711759101115447515883866844604419118342409985504051167490180934505116243776885217105246117541404749393975245811858552131672455346169507015580846712489553538319557119130807501148272333390959410094599217603902975023223372198384186960565659993559128828302615050973866253446134262962662589951435226037803929003614339450814400377880135389774225453737888468004965350350116655424399094070853722435495229185681112550646744649818705134812415783489642140048538755696542808113902555017213750345433334946867643921963957428239213047324508203820255000715166075354991504658976911173492179480902180147959986952496081373354354944455527185536226698728314056689952713932683457820771775432306407648705605863604571390276734210674026236327221192465485440107797371849390187848067038881141743010065035265577651763170102624758477888014482597127250516464573851890252859551598287719483393477046639967625893448456101816431204846144245237641046789724576338332367561183590820331424368131859911114969640495466601955995012743932714970775992195070554440118427211978577117496086860931146568196615525078284165477386134038519623578458541521765799594281319219580937917861665371687192631406500679940358933889524837203134774710057118760633601052697678314064719627583975614653943902813284891762862089895147218775958224945658239903780592061068799635612660325796888579129047717236170478011496450268290699974868553187744579573383226627250598204499967083294022493505294876173845455989651745929265187228536769436148396103153478270252839158731149560011808966290701278945460727233162384574243123706471393492771002412250564845568066974827671735842134496775136738833807631254410589538687485418353252087365563058105808246277180916315503443749307498919819920618641967453283931823862733580319087803532202610034616513518163118957859251039702666346789704283115952945369754713240157953420174825447428914779233861929165104148014050737502873818258853273216604116709144130076201345700711679120668970349991349649176135611701306274177519310524733030060941928082046057875236380796574307627260200640680700759362526410832542997696491404469082182071110214220099780086591693156528687105976767965161292336990321008840024709474622507123304160079890533093583442721626712311492135256468792836500998285100504464827703159925988277573351825375093132684141014673850272806538777703462976539687425344734777863092052794410916142200941574274737731693930834246840338252809325147858517931942293840095421845608693770982741072663072265563270582669691223846713503629129776345958100186754382307508028890408254936840420069839368139398946243121718269118403182975169949874994615768386084045545060288022576578597296078219006366385053161556700935318462054893574480267031016832547204129669781367476366817455792937816915434890759635842871703893382261509705851803856330654811719222317827338103187212862982085027190589064406724518791581350388764000673629121320508675443958724675028721494754105880639239287164442699986716557795856530871940460042772611623158416634979362187109739863200863721677849835578561530773804071061065482782738886245025359783080414298972150053723277067231843571983620721533036624622038683178892590410353544829419990890440684882796753575830811256408863046626282147891413304273484022804733513768311392325517478514231742251771146926884629470406959430807302847338335613199111846434267587094734731082137689533445202846606664360800185870639225531141758964107630836287672660891176688498270021378873674383882604073527808496491630872270253797707723150376683487873413696055602007463444147065849392557814525060920785790855538952698777358235022761013726245392640455552268493772747676717998302034993844881558533464393830218261073592240960903462725464971940276020224163381042684288645865834623682507277395821215990757815397274533064493124673468893631391313258914282495633731005868447231541565944702225407377185038318699330277342401090614407759373158324362580909499163072661003139190176676463449524299270466867205395914502120119749442453620556004130701292965910679915010260130606928311100804570155315318583784666548617738003200657741559405844385340439305013946420239882439359438428152533475865723011131755960367311879223693774775236218905772083605896862746715064665063613660274902927162006471377534063555685944602604272415031726476559256336176477228119472350341140186493143318128159438471191650635665562791375825480080808119940877588560589613126423981643963951324967300091229294678286113401333276488457112261113621071167302770707546011685886083043749089343344467133614742676752621049328525480970627075216068229484866829858367013486435731607687717277833443585062582307504809826013979945617160336486418954817352104401850771086551293499942330229988028840322489830427006626617358538912249375448006314635186641719423259249356327830319796572499329608799648470370445202311888254107012879502615825442284330574763539113269659273331742518382550777416848003923947946279889669356890751281859545295981203407681034949743982157902974847294889559678408821514882162161449336477866049709218132147391435548582121623039357784330454807644753895018422594972708781352962409368248515941416607095666124017185485616431946481411473086171842705161326676583065379544416395645048780453964253713890472151114216233769908279881717121121891861614333037174704162692677627693631060404724362396741879513467230571697816035727813343162075446580184167065550680132753006166446466212170687086545849086845785684465915772280402718130365892527256698665985816226674182819222671242934735228943723864145872572014575643881804089203548402788563674320723808102948622098723827357229908380250405939481600431856081810634234440927870731280398778986998125229153464917371376937538821876469889797634235906831630626659114155523645847188935818453998422469201466716243259379017591296109230434826100716417492806680849287126496271947731328608988870522619201074459011034239708610214496874813639333855784461273981107095578319277507509091368941971194875374763502775416112162171920762909224932582441590245021978825846419229769624128051037957833153075453564845018657546993040415585183725549799924693569273313835820088645431935278016026884728049617320318092029930570110809460038121297186980635180402207627340017442091252242758269268657044027712756772118111326065377073220802398025180902478003024765606152399230903054870964882387132471488925653324598591457429516330291189721771997579549560416165136191140764127532274766731393246246012368580104466096773333011492441719753858406130197692492776799567433256290716397863906347730014903501526956610497688368993576427587196589666982909994616177554747242294452473735209111904484958175525322571921915039112018237695927634721266025222384527225035760165243366491199617071940944288077123011859700488628608000284084567052763095755797760989808444751815193982753496995652506548812064872011036591645815920816357950527140278284128801664682121453563314896545035546599553162818051551656502296480368049735728698986153183222515669331928508753930466348407373213352511933943953894056282893927708837647956441865031386621539937650898275558086943353766180456957240570954609460363083820473427992302498885419941174567674506322403192472279701681125885053585256076795818651572109179927983616979372738549355064373364311478093359140733160039398692681894184459237617402680170282301523497035685835408234842682886534110344237389203816733256460077304997528162296402263458732970934226519671189080924361471857678739326251924255309058510443730465297081613255820627774292074633825727319783592271632104832239566687503618285349064058858430112028960703200578325892430604701859329987137643941409460339200755237779792287748950086792901804858670641810120775806362988417621138637920929624837522107369583940230392251535764860797244785771139741422249404391427594588115388054245527260845096275462586899194006009776922311420142289840393495488040609032177232337032233117317448439552951518933441799681358837964005577039526135601790558687961381341199863618349528262518342675419483485026094874374803138096239969043773848734538575302785250014878374349439407034540745521753727445968706290459085903614691946510792008653202989013078997896588434404201779034475151824087149213600777214831515118416067350057153336648069488243907425739694545129560123986560553857790367637943847331733374936551100098940952136229620160067647360389325645183669854983649387280042682387061383658180257985429942006674262415261160360208981869363095971845836398502483410778318921879745589206241386779507850867108995011896774581078120115295377300474752547847468684777815116911574358952650060849631481461156595533887877738180364228739226316575663624627793650287936834281706512384459580674589153714683338456491955681094225755741583465282407116044913378369347824832023594230458992878324838510179859874681346408048611735417503965296131938525426869441922493815316903199968094857685465569762004099534282756175634430747344610924605584190485931958812213095509687561300169157128678586520620959443747548707431482500529793426519646646227813670281255129663373587156455797532447388082701991134860767607112278874965533132786011773809352796514194162730340067840393605053196226232223384326772624991387503094609442484534648879024582710934982235334736628268169234838529736830766739063389356198413162817311997679796625140356144732198079876570142317210022356494255147566431702824340461345644368682822303858132231763063486979011949035233095146009272678267605412254621747225814521133163325554984132854218729652768902175772814999978498789087358398803088664542512878646549836600745033759663827804116126001258261318822308936915421426627303868439366424733622073926622907810198958184501991540421995199256598313705997102357048051433289508863986211747795522626891972690189999279881744984269178839226881804284971024231066504127371777591149211996242907791210461449993749264945275759299689572071675419839753654399597921518808423697342339247825910821071677545353990831094271665062610865025722998675356977562479715429537772261554386728906312225667521838518751583598428185273542646103195153083835884309788626795929055988970898483419612411165030661334835590932789393940687418489713767715408202763286891186672064563244932371426272299475166603426521526224514184476198451160587781273408072577534240895687474452096646577500702908774829374642921783260673537305151268201251514421422934420531703478075903819273869641349162031197914985044937061171856206539889258735222598813203218198993158157040313015043811938708423250855888834525961227131105483897385722088249909228644188595932698616904960109583292936441541890732851547684443380424369689570565081252553651625087352228895597238011430146528690618006536880062542337468362162042994631049187001563696812998274831836881992339982797687417752594637176800209947427349425910151798908210119868595764152528581736798238566470323900488630121480930743562617130276380604648407198456897674290244965736848714920488355565550853542308280609967103535577965668709648042335003414078161306657592672135523471456627750925833297848077417136191410763763688071708964249027844499007324878937547452678375240665562295107256430440567649944562547648857823453670832697344073606696166209823229962967403280927953764934035107587677365718958627002820385479611887479965656819540530049309597494440515784848963313130256936764726821179146165942875416774513831026130946632577731757204160576762277568331097710728549482800331969941289596652251678849460160643509247592070230819437521793534613375559229972783261393976940099693643992223602436918300880962449895949085025864965821822976416581387931676949815946046116392453394886464788687672178264108758343255363712235669069032370990970069008411618536182078989046839578991142029076288589856495412031768465905005023917964911543199217102705699865500006886223458571739514135726899041346711358069039929932833864948690548807198564479587280877850295500574836973495763448311944968285428517011805812208261322436344969387405886486794672055642467537258771316076367388808120458234472306976755563013208675764247199375093240216419499036616129348027129732764366104580769035536106275606962911182051977662482190000338351824416006576200037539890820755478857970966815611550336725941316130516089487060786762791437114540574389901981956811441895337138072535113764215787315584920350596145606356252001570903505095932097520037381393321418687698553609146876417590259060224207604126790234318232520204984521179510463175851128875022843122688727309457056229114783216650003473790366217284726325382075113805593111970747114117990969908483895560475908752772944457612081586227109226594695805333904346105739134697887963044689671041634411721324776571189545578858232214942123882629837334242524493377993141562621332033364956182320008813809379035439818622980543046032256006412174611517790183246947682822173778379170045950839226783396540751704097477135610906300696961861637655950488200722353682129659638884509442771084629258576002797564374560319924232802139919100104673111979094378465155484056542221990442662962827259389537109315147734459696874884546129852781676409167452026113350139971412908477618534275638609955814262815290770786870372141344288405293003943441804414947097790514045845348439029672467092505860833775268204038174272616565632034921718225792827621642897746281309237708560756471015209167328862126947518168975421329197023566845774876388057780345219467225171256287271749755379368779594402231435857923533532592902064696428158367916977343926317451714852850406177930398326399141254206183389107235713325604680387994407297156579484664200669096340494026972072644110934819006794002089056327753699209666224014086386092105979014342506215225507339442918728168924157776674159762083981502371563814082889797078869729442372985625191463967901285660678452314688837281606846131840028769782181746403874022737211785930334988759388960489280635880663070955392173947180874574814451990284187728606437550338060966818075354297664096113351640158867265687419779523924970007786604416195965695669355970056519857206166486613805845646039379594815116751770123828584498767564782148954577616871256800255993417681721757910276463174242732436754221729867107600155578243219633486954427353432566608931899399582830133494852610351865549414254679336198881764765704471219014293287581696141580225948775382231142244847004316691497563623747618965155408001656424707085165876435445162522613397732884578422247913020788316178574617500733460920901106747435820726995139257796663420352307597365440839356869913705889937853053017942664686514891373184388517138766086369123869189714795946265135312575451852562922049996358717335311246404597947718941379698896232131136073047454653212594542414852677307634749412432438714009324504654865035752664178192160616415700693629513862563185392386105928055877332166596984229271219599638809262796605050932611148147099552174915215440229106721808502527722208821801932764149337731094270898279823403320480235467819228875428393579759405502626761626782988165259817191183066109421243478125489002956483350082061608690867207865630270306653778024886292630053160870979793330647777818151102774172358826318693598541070944289067323980286509848016183011715838768617912333671934515582911606459804126113241077112982426203664440845575977871639066503554747130075673396096211511314274359087416500120100409463561583869764247782444261386990251663256525050638529208600240717691666822003479071889593790978718001278563696573974308017170734050971130481828173581023364171105863422686444561527405937990393644643794398753961715622879193833325693197500148142512884245677301340280605300973641102160405710057798035225346695015720384003376953982566358197227162219324175790933570522765752661632483602647170942936094585862996446664665356779358701376203547028460192818600391368729129305030723986820563032997165411171562280656845985619123015911431429906216396696007163912478870606881926951617149691717763323238481340137734318995496915908063217510666441633691390382719674290398386127737031309618188003058426833573840323881227977917424429662817726016020432503826211215402430782504647522584892630465597050777651639499797783577283295039785690269999569456309096171165571990826832979801973787160891747006356347645089709916441230301742488056819944444795326349787987073891320905532052200816725927615877102896603404918174175745944794353748946743276728123297722407599142298614895562770226115875678528557134762842592055663520442325236031574825543052344127965130226487279073828104324186078085011831868153191086334489072982443234907484627513550400269673934729138997122995990412836430288792854653057519813333702863375188031362840409503377298614472123145987447190905870988306062902253111174414436037120304146074606183638807422263628926973133147134754912177498473109125968659045797096787786347934288739063960316543586714447550864932080056395243991286400684532489836281156959390663670617934453874179315031813349507725206650940575393116605624405265474348892438980263235148565535333186907937211206166832245310775074753648453091922369684086261482152967725823694913953352372279460833517523663748332903195721695022914201004986434581775996822552311269625041679951268441247111024619469974297720007442669596889307701476198168159138138376772568821632858267393390965569268892416970009832392683087568347218302505122570047113665005733287522416995802707523327514843078670399399188849363854141796587029081826702842113070642068623283438938590321453319884953273018597141879544460239977184850696670475105798357558551224926377632557435903709644997078444143830848955868873702941833948556426058731865939023650383989509071953445481649120519457062811750687395983721000713382933607380934001915884682606123266441921153770757679231649537043572717353680618001814765018089371360766610970736351701669561799621428482854253581695503616903648370567092542725741062231438497939947910530318406769937526622919067665386973224523901344487539791128588700356343952708602444194829695964557822551212696925698891107718653789544273176063520497853818471970432486237828827107323643865201188984190454452049476766086975075980275300260332678492541119271434242299304172024430706724895487046435044538881817427859996936679491858911745740775631165997361567659300224980750561240402777493498397803791868036485492309930893665542729302661704810451781270858750316081517015684426213634655018198499189081910751465142617122976930215523482756795627212912819464515878701210041858114979396677503482703933054342546945528627803898034090962185271291139332007775951621217116524191303075533918865399471102867276140172157172004055916100528259685271015082426181087164632065582098613138461025898924156992875338453885971751716685737983635815287542930853287682017336874324942076297396180946517590020409273069667754060925626856358798706575625641516131943927325952456896233882050152143574231233270359781685983149945662448387879403354429313556010248739814811186295212800597896162395111190917727215927366074543384333143895249737567947379527618108845831169648408568025562251787524324979667875556769842859679291282128758205302683735305924913623535372580325110165717629494377406619506093969564208440986379630361704615937571212133020704420095839581509674250734252271101337725293896560904230861436785056652684634695153679681865153373928570012726877494255219983971209307496632794932570282894142581079973632906985168205085005702739931678148754991841942896073042214397751455285971192307775528081980658913156524235479211743346464092604841084470543781323067966405169142122939669440828808903393331593188815939776722957837553605025181606476417860910330285271866425905109987081975949432737295410349790634195923612788140976553171023402667240455866285964765662205401434665695738025941877769488614033972239482734494788807520632845628828717618807565313532912069110300589671505132987020683725592964444658662236858648975697273672762662489748614704689484154558804471948811149041658586087279331062504614315662384339629740843939985388348068953979303100008414952060340128097640499547207480889105440293336615992227069993762155496949047838433800112297508667472824433469068976073529717711970462831763641121690131309889670809381887417879882337764985254756031359721294006347401343771723893291405393461269844123497941234732934773254790995707210636074348994806290602564839936779734518144053713100121447384181039269103755320553910274481277363731172362586201842139999242273344512101989923597934152018263709724383878058832439319385954157680980343119896202362828824581890247213368716009934752552304768429393564502086189522099531002566983998093085962752913589973776031664930138940882646129674316615226764707703754585358864414011543948581338929498723097572689572264392565944777765921628844212283669675725726797181431675194801246156906570781884273552757496866557367703714138643637015015502285964423252147254803341482919497082041697426573089333821399739026772411946132101483929786618221920480173076575090594683948570496917121272221296956257282196696613427354453289898226537061198088338492117844628933509552299769722377089544474628967240472256818479196205687715245353273751163207836486944600460143005165695785355525804331534944320659695870610612170659541664230757090964159779920137969470728164939569725359779254794463485240440958440374939799035840615918191011197843167585936941819681956515955577270765395785649175694940994839059414593646909268011013208946731087026659469194821245395245091862537540651296428541309897086546897016956789152714192499933192608106426075419344549892582775246252529410249764923002933637044194292010622712990249076150592340214410535709820933386415285347294889792004255474613175948322740422404501726601915072228230859821253364268146277321419860284906951319907868683937404115550819565355699007435252188075063958083740710878725024408659559294078818415006237893646446146364786987346239540449700452840306681161196907302084821561456471957198344730191248315889140363886638544259024890691035073373376293528298582252831422336836957468527196637902311492153184719552978948562506127535984099155358626907583098304010821549866168858753108503870772513158079122386235435691393363192693690317331631469703768867553379108275649299927496058268524438507779416278880737532252177247368444592362974995753175762199354004688492197222166033885712703510533137637589154163395182150452341582547871683371447637338979334552703266083674021311954667133401549337821210623138824141669728322917619123620703412904151567145332654071251756884824438118367904676842296842740803674976114194459795193260003468568351736884896864918514179702596065640399845246352731681252425163786392945916378688442511422376424228129733403820894043810957723699754739808574656851343677625135644795930126114576989521278031345711886002862761575559209868068922590699899553280155876462514400671990910679253379894608964493321255312369258359963936863330155467801876361137759031383343851163649541297513405006792916668776071607054835624812751036771468798304579981167147252661468399719697984558396742918719136812103365082876829667455733402011364356542672242774951616371369576443750986723699264787041142809136551387524654261523698172118368099346543620655629051317978231602217339897194735686819779983275935317720079840707322623922961062090522709923482202351084637398410033878510936967666824896223373848274795677163255354232428095417702374474663996433457601135961295694213102134134496337864359955635242315299774092721166762900829986297704947695957043537506285591882422261255218154591475144396229488292423153034682938628552443115566375925889122789794447900794757837470552479523640714841131100700267171800443672259279767237402181451610165514287321741787129728650740786223205547603894474181321485164194944007844353514805107523677073902101443938292384048983642087403224282804540033333085840964138303547232584030469895536820396161771132168041445370962118960535234734863776415408347645784258323215045630823648309375845346001973976808185343051848943019307939066316669927454712045359507366978347936882804626719210838477225843422275368197432290987232109746703023565251564477492288421169299755246037341895545005511162162144690038313718571780855176726201402468341893636715677252507645123554263639124535805860280626675386457744794459053727934831509167601301467221242538815740723375395971846925448891530720673720587819565349648688013567611580468917119828344763984621515892352385286432680110262973603554784953226016793178981786273755833875275239601818266133986301082344038703342085544803363811716676725749866756924925233584998310805911317300331901751962995694148237957978675269937998507846691355708884285349413416889065739538272176451352445198875086372068374295976297679754428409099603514828952710123402498640961147052504678603656928980102906199457307012073179292195922322630689776513700782076050978562180502137145620420894322886987736719531043269798682829416618670825741288115007083334671197778509818470063444043599122071817818324328634427757224886534573862326732495082117466664993538889382991642397684480167390010989415009361484173922778208204113801974960491521803373097821551414541527405802778479717222984633709317864891974888114469840032643176125114134011841121458353897802688371041870146259577068237251760344066836646620487265703821423619887546333148990299757434018499579344172402846656446389269659924141108294340177970630480997430547368953552219725088331282285512866643939670461432240490596260739460549799356359053940397608606740242079431934382420278796921952060122771537350869244699002596640052851619820457145151707965892206604121395821879987522332009846479114686470309217907128421624571979335301171950597237275114452073976910502362889984383633545399245915665735875266765512913573039659204710923648740296134620808148209111023974884083385209536522607166786101531198145634082084328101474831564383354142937501689502205794801710984540661568517168873478520007344635507536085490631549739587641532914368314007084430677705365561725062777982547203170925747540573016231681629917899349772949401499811619467027289019353581367258990891097583061670555781717261894545960669127998451004144003426334910530355784179824460572098226958372160848615491629194570515115180397054387891261862257696491534424887545367649017410078493125968393275410662427903755937911926654394099775209870653296146370517190467716548210769813663967649600379983536965945525325887128685294063929482603300705005979737316644849437924593788894369285285850968594245084519421861448294502570439356165955554261927502103021888407156184679542564685643201652512613682053378304215863602515242674641137663624087509903115308263687672817723516946137160820485925758425810567266336029644826651265855460004777543358797822489747556787121643209596139519592826663822647909899702203889636163327265511625353751985504283139014321814877433298850992847810742363831614461334669954168707535632179588219382024103487740843162115717594282657917429800431702262184569199623013458990988213743135375941140069771363309008244359400373401543673855919000320348318469501222403241572686480830138984425494952610152793857577458896802026869287039781707635225513161087614303787113555862804642985245358807780572508048071758428250257299293933227148552055506982391209987919663299040979032449925321984979688775954039740334224109493663153187497295501142412547815298479033237619469608001184932377621026128621394413518488542266980569514822779648107506269533719404520689163196599506630026277318118614959410726231295016814344706851484415524783414127689811583792432723929588599372279923746526735968406668835339936369293709791188288904722851806826885836911857762539615626050954944434284875316589770779367730744467915840473007595053780418449776942297985326009603787276920164203560600664457770441116601654151488393981670872963731588017041315672853885783283674328408803832599511943296257179261758227354950330703069224406184973759497546248584895812542069926921551291846089088204817388781020867332292311507590016923591992930606819320631247610060944079152972365816721447030630618243134018986332676651021216355044536743716632979767382784379019005866409235207780528062874397816636038916439015573687355530757133482028794636891002108705658529338450028086175432051024924364274909371427004919395618833373895614088995371388550020624713689441554908262975937104153266299792337216783798693347098934001766706391199476012779088418422482138154765551641017260029469268694585444765813670915270902852477090974003164573983662040052817695245574493673978280368538811213472302985253284046616405990229664469954396245328409278842120257156073470676274039749487016190627592528934828291956362231678437216952430387544650819738822057532712481052056819290172319193088780054822814046708439868835619685421788731681719059655096456577132376402871166011147199554771119596404672301898993906455041221358933833054967030976237007139835470901949273544966866667640718470221765790562780997629915963677141572657559551635994299627144882275546858931207652217786388774459920260542779654412710813600487213896585861964217036315740341826724633179505870184667356422257133915190660585334721685748757570951083656765749355726270674122511731963708091476084845576005031079889037002125236866776296348032279540042139766701769781699505339326360476933978813893592782599557279598804158774208670951364165170898562727399264433273305335571239721567877704265565609401868689385677660289878726916536059080263298153535974771392979359626580055243148217914641786323676426835359636862889338158677545633193919242795283737856408305268929467466623011865129224169039988568719217674698446100885029534715225455562213992986677335292431829602470547842494627558255004684863105241191357627421279509138007598558586618018919966252100047966936156329405733873383704103603156428686098324665961147540593077122215090236058247975752284397346289179586340850289252291469310203889043698971013603536467148517664280680259752312972501490913599398739057297153584159294029763461894919948993905324961797282751942474384005399618777848206446810858635213327864022988907102410470240867219609200378781616052690566027358854446340912543634219360132472477580406224149962068521608936485159624840578055619571771309520193039522388713711726551943297659648102522745664821315786321038765706089943335692373865575682810094691690241407862249236859176780644817828534101204320262271893931853877041680719483256024248673349615168316746272025056873770195223351201672542902934900806417738639901396496446439027064218260453955084493683897468414014639439647401719473599586627630792028376285424897223141979967296196606572305237261638458497492620891842442413881521816723635609856820719578637771978809061128716126319947589858280497289622595357214505776945977696938790095725380570065292652071332119420245461389152791606808909084695640681657909892357084710985548875711439671124149978543595052794506826274917945456032855727984571443580629146215213974446163371670350627476182940529533868296298724924938493899683187488565402890759207915736414682933201320007615575588001306949391031921795792741132044647570186764683678044041947053069771681444129937984538643843652231914145309270102659499325234147979802477951290608942497604362849423052645446358274204534464860082678420700297772962435699935483205677959868215904820367000036774891443887490553338326973009591862401189265975579790742040777409017806404508716490533602459272714252987744272655407859212674591158850040916121023397842415316608278945551802559666153440788618851910216821312345206255543494953776861973697913363595916281244518467314355323514530847285161907080356100541161249501120565348515074155848648592210964221318978343972756407238083792684395994003852517508924772714854408766182629224977491111250224823309672285017082426222130250973222602687138336940465062626406891640432762351724777481700139517697913315855577308850072702824132078702875076055340460545354525657986797868209511248699640893181417627607609363634982276347724671257942914680285832685940285361390001202332867228256074822709373755878480575261685365702102816436475594934474575933209592249079258082796457118422596973185807170012242871404457066326742663484821482693357126954953904467948241859725868449382492425590433084020321849239168702158431733875156563032947381653749436550613185319778266228809720963679458099016249268483048450538537551052291792692819019482405148550975413077250410983589500069487685779831038659337865643737983957510877569437256369040951586683973668873673119384608170550293436261647059319266357957953338886189255706947531562153294632590862308191022185559940624910724369956109835587278057288223995563673176948610531059528923198655313884280061567402371422117239202152234902318225482989987512351804013003959049852048408895574760086133512575104364367189219168054233249278235578453968020555945328194991123712488667646782707428042345995025013505484118360804839767528315297224434436178725076396980252937623556457272507276917867507748639964767261808511050794039151559608643916122578537738242812053796943231032640386646544513003979601433095061243521864870646722335423225213061785474359061245840397583974980312069129506454913848379436064610330608754985962659323896705070148199688067694247333137938490021354975589020696537989037403705107669973711669689396015260990577021253046154119564134744950508499560143001424171152147027702654879801690443624909922728790783363346738162085431666286507686513281753922554096166841362847180552489956648912491420825063403775529860342730171976889887762846031802751511890786822703522084462537182920473984688816957075631096092463934516908376058239208543418412282501906246449643483792635840861019390625302446449105783440448885598840913547754815150827375949632194734686225604455363753320491124494500365243427726296003550066841562613724050324008484559595993643251833712570060766902573759793794355213773368928194414303266172330941046810389370227253459427034377383827999199587682976346663091387596544321771595957100939110094956263837080317618961933903980970414764324531037509740738355384371357444110054320026285776368117922023810615058482236221915016353209115501613175252169797243419825997152112148897029928273025737026170264048019261724942583939809960322854240870712458321776859448294347238161307514945828437499663431451939588503039143749784626133829968772832506763990302056741894586701376012268115694382336564666929526598305176447485048005461508293073163142057234997181683849735499687028348935065255786176861091659010336524897013727476861648176424198050715129755783733686302571148137538653108452136408204963273536731819759137666861317499728203016900144321859338103027662835818121631136444738421510792447238093105156449749708870886256812775383150717090592831072339383400646116047467025647787443663155853471561237572246268859350911277017293370837484023937600644317690302835648828218541400893254217125677494269940464026452240000250225743236729541460202576787714856502536750712341269644258826902794230549257565284092104593930300866703799018514433543930148022526895589547692960106127491283904265322839345844119003404970836810817500940282090822649126205863362496758356173027076877103776731829006039360369018852700610187406104212798127226355051133520972482174012353859210321142257673318430239875595512593971136085258312754739822898275033664892417080648905688458543827064204551539651829641810747140257646170158306763244191700447313059173368733761323886765382636221824795790338197225919620254153339080363166309620069534154106716816283336466008040489353159874114976529046070738854430980804400163886104426611999111186295033586247805506518071154822086869148659358891088927222497022892729566046395954903568402888803520122654405522133626139155587933471596644746900249384846705495281051038611314192593877116918263198605799358936995063231116694604356091332406159429481555109223062024410310633511663497512726347746497813163724785243637947069284618834765171910330031585875477322769488951897141054522308981088552627213199050225973993531032201424295279075725814177016216249427369654105130448044840043289826665563803517550985968626514533644479795492265244892802850911462727814450422996762365434078008887968147241441788825108403606276091287825303434273755982814064115541023225340240184403523348778695646541657424819428970205024228453370159604819172242321455112150497921416406957124997212142390209907897140684995143369459619038923730894047275388613618771375535302358950007034611702346741872042952884765834848891155577650344982295284277972831934219479016639446298661023278523187917937397176102903509308519148755705836080569670774334326601016782314825284974394034998596493967262953676583093302046916351070398191272928115466489031933234947878443385159074396932784618317042726569793862067109802732748293425419856993716858071967393914159939069264381119874129872521345923439130174194150335446648112975411233757061159134547564985605663504635546676140487280419056278054018774097973459565264791450028000655956853653614531932094956270141250493664394813074704618395161517602136544808380102670257223144021587238596131630071834689497016350775888615610289406539481496782201029323561973575599123357016752273511006816751239706807838571189976377517209956151724210323421795344409045377545782247938652036571401894196579733685394273794151495947914425745801864047371471476470355025769696408492301483566267117314616877973421459135782423374864892772111062423902458742466412445624008586641411283947198863033207008475913493661048035211103754108217832507613051064899936111930074612022634191244919380437509981881991191998265429310709265044937953134490279779074457531671625008577550179464420094335525530109776634881801980360345959602542022114831437637718896543550765373583009949269528422821645121251139985933551566047534164110302981902887295683374495108019521269434966390144330089489401544620675461727974274574937830899139264398976926673461935945080016279514011371001845539411265639959433212124227815179190458440034730866252095071416183687054742305771872362439699144196511532060560913210903594615860200761639977155912870471118346542604531701838468962571994533971582654840551723259960419447490128346867478766318234055908948278347546143727059390249771568042922678054056269592738893442419476072988624449127592613930382802217538592687546206045313291179638095173250071488126385383541226274924449122506590603375275227419659541498271984846733462655626062198282902821768006624315728481507069638213979369017031052059814473619710782015368130075615409246551252637187297955480043008438911775806067971183713229753093263039780413523621425450366588315434820745087346899220671881725491566897502614060080480336516601160528409135702917201059920437311699388724638338414412421210541889618192419645583368475626545063939763602492451943364999754297527319634122342743237042473282160950428074333115989741128992635879841354417977480126305183545777934520853332038191271431584141183679291370324960302257418182900374973541679634898437838596253142208645899453785682104517447853026522140470694381256434640680248988864581087778555707961943864118078182334774013549086440256629405833163946083530512613143706372471701179581329403289002943098322940097169318108443501120665775001724906764355662026872475002029207850201120346888071867707270519325127475667261491049575016180171150737945973611491318495924290263850620526828771758431826566246206067671064614379724987200663733503777570008342659944315045917810044111277740019963936329443460419175850790506918105828951019083237075912627382032527144645079342403887664643982892398130166791239314393132121256067807687828592224036804773689116559264839163640229730686084890643649337885834694010518058744183567662077537099671622232105301729975555541498810573901434044387732805073182506712514626918067000331014907522272391590703041954656156710687166471035232614980051305445608222230548945813144018683284417462461726822066464719880260120754511578746573489446154833136950276578947385806329993287294015677114167766858304234827922129377578741433012101012537506837595286300047728784882793144179204732689667102093972602877666904916668426693077722542391553651219397476157384099832031277933966039320539444787446553713822232418514310075105972517494398896293706011365818572290801589509032267918359392549617517765105357743575963019570050719463138039745792083101909318334320451936637137702123377791217622486012435937355679270048758322061757585394360026263355541806464820537994997729652371323913893643419486382090350035699106404597308844509029258487638143709256680354449588912116877863677588524378537989738311965815911819538386472988659849580004838620618654138563347135342612781689440341798593978572793024652348698303637002678263051774518723016359054109781312020888020558991226009363976588081950507905811423916971146620198079889447707362508498504020818432877440131558104301694266260827993968142799267750273741055144769929759348444337154604885100466894313956751906003979284880610794200485118182649533284800050711556063453197860740984566577161064109428673613391860273788188183721831256914727380793857171817185605141408331513755246955657415272238747226136440312919011927965215962019888820625432204186493063737407381899982720856798849199822636863812470551629931492915830740005471248036530486406299690357111757220827890247196683771926551121481540929908370558314167179820403291865406937007572528197270420624720914467211025564791660141097101785937759392230363909438085538695784959771172714330537388912461443312508649170330094026560929831744472347679906514906133119852234480368978321094322833227602838525613507512284591578021080649139894841117224931346560430370009296289280257091909745379371972154736341129327256599960261809714645679241225833358602053510134388941886435965109119683126591648170876622864222118945523386642881521704059134271059027638556838278889983977408884542276355347018901577676105692015864588194412229483184615511284832620463815674820003899198899595797601110696958793839608979051002534382189993739162772442925177147576666269194972518659527477904115753410670132648957470140375677304300310603715904708522550511111432318568627534878028770127599195673362252297363479396214137273112576369429488772954730829597014268093143787525039659764445118615128677657992482520946854692226167081861856753435158960099352403493886247175690104945936723345628645860277511927244143402006088181789295014993973157994049838646261757196785994679805936281852514533812901159031651802358054994182759980726775269599986998188646015249694285687636488082789361959826034260141575927829840690475989321848234269306146809902459933616989886915724501287769613309352166092959542186415692439527250594076613965482616405799626102419383919315328324033656229683474048474565653434883458376821177752032839140699081409000504281599771370046859587432738834899121191160368348686840946350673093833619629573869060027111265698046615481022380399502399851274979437064090771861194333468971805530151203959436426789242892332153492837850951014133472592893084989163518577052035529894256281003641769891773617500981545666048185153295582266848980867748368133706436986036449650859928495221875783583668954336493467540562816169858804538227405986188762727336925076146254628196765560778151723328613178168186082492269475148398364442973729990163845260245576514864405138808749672617925149016043571215611616125437440249012413191320491585914579656862415708320136014996480930150106943057421349512141375656818381287391622395007077236781053733169465670226436838906320626142315789560503636774407610096832630137459489771588664220406684540592886075871541405762396155137038451589347357528718744656119316427385640922207592472590137661075735903271498970580093298292725515414687022555459419999736305143185609093688084916016669697836242224504215059545150292286728401078030045473431430145769806692470919277076393508587725977789178896298466529156663293082050171728211996652081527743895301263609217692615573917691439841070528544067114586354229072593511105452806941428674197414171687531368107522404502411799325851343151360380458650571881319859550860246713529394441648073244752540156531919456596161454026755516549663501837392299104541979965831092996361532517786308279308589612335049616009668359716677711497520061971139166331135971379447934828999084589642656346135811836509168226434657369060995358736169896263395683059425128485120041746206290938579558934066959272267468131455300713464181520968934543486947399062085715265440029695115470096782864709180955488879683708742876137873233875920052662724127788412257390549583151680473322119107650942634113969419264761065346068028240588051593852397072252980293499469432679098353522544759521785848619739250383124548106132565494794680825906398801311432345861969057647745671020521161072719129988185115717670608919983236617723215113459038768790919910406201014486744493309568552805802421182051010331181912492289498375503461693735302619166927485800656799954089178965887233938234682623566968658219827079767478393707204270626000533684091341254715758063356957322381927701600203397382968633581565195092795243831888558774205075391076111665013843069859708591417391967818583987056563555252804118170378423584724737695007371539430662552751115933589586506383943466029709465833384368993602986391577552831976152385396315028723556452147114172688679486499486970045066906930295527970662755605226207498073748761198138047004347946727341168826137031233080272256628786520488038096329872457582203028934203100036127982890968751550612528170338970948347683582264166702149128378875421533724371871737148505288079125220959243064067414419609860798527287745200813763140050558273326372352777473884476206445819364926254726453715986693320581100228780010504608066064070147724558798338059489618167519696360804324422862855563926458868198220740188829240000867396876610487545484582085527000270980297730554190088434349013200501200454482250685850179191460415407080788347552004920729060197694093638552388198208214932665319843932320755028524090313425130939532568893693934669601314425784704331073713926833762805427578751417915675856429361312435362188097803020831812378533026481430160620740925985628702658714430727010172867279919453869238192743672721402571331264476595708628680734953490420200439399783142605621862809806323733626828939169721139787162007944770433605980761960535737182131085561684801416299909628777006487591874333538891294529388014500895873337012653261342052656009088515852584328909848004954632223895047142506348297681885363370034122093207604005761135536628911826055032411823758308656591139525097053027034869995516761901489608340115751027379377655389394705367826560738324394807174304111038270133295142582184910910283373924435089883490147948917414049453878904066755475927166419084564584552172103444579499548554008829752520464179785593963430074128989802920066623588619553591795938421360868208880233082891258122974440361102091201895354437967967700690682629578670034169929717587378264318925943556136296683808983954208138159464123531332320662797111621292191485913844309875372584876441005698645804229612737065359239047187022822265688160238714545029557533364251078286224526988457735598084094030702115018611395869902792025900342017417152279793414647454143544320433358850423886268916958178661784760079886667250943180026786735881603041439775542668755027254425269011026183280242290724724351008532409450477279230628113978006333621331231152371956025041947243598755432320582745139336095372082532385803967647939805596903877671375963241495316293674758927795902156699672562939533514339271468845373998708275130283290415273270563738831349606232383404666404839810023423647207566910200641060546765236514530590945132958126284673261536295837910118492168610680095855008570753662732402599150260912625639258767233374336828663672726978690225721094713132160460397534890899602231297450997461019570087357282640537725199967353239795147904638229563965713600252128447243847430785574261580825282075186249890052741368342097679809511909881041259906747107453896883710917856525665041450653207645323690334965563424415465426226859139091016890633963111233536416657072434861029246080810916685829311472076194587803449918387805081856551689712588942633356970260529951943771576083760660994578364727209883331796252131993273420009159451599182766205610983099915506753286484728388044697921172743116423393929427804079309601629529989482454065911119731916373606403518786472709221364277895757397190322309545152972200642110147390352197391190945263987966307142051950939881559285399196685643054547162825646397245284363825963468173038220870847668434541329635749686913531169755132334044221016599068344248933214739500285364815195955865159345411481284797360327762686216410299786641460959129891954137095893539008332714546213288623474119516275883661753261223561440971836365087602145292528724343667300955845484444403560445452103055099379819079807101703068233617715024557235999070125573017661116657068175914401738699737104740005383374595091564326946331044365090448977761325140283202262158202773490892956259744459806722737520114714915584172060501373379192194510406151880221975101225094413697746200939052416502600031833128711313183527710870956957267467128939217953625868398067161861007892145244332400928672666076041713691504934622222887664006115274689000017182756099102143250976980289351880511995856834248118013160273672917428261100300056143835342564796627590905291128026742129662926877028518265075620260183368189251229490233598202990829797606663455909862779222994263914864213086255537941315072326091366589621534155600778451231999514161144796415640482736160138882143307343791710501483189051010630369534331890485399608483932202688920575626170124290234192101434307301117853710907413585918453516069146532814749482954294045854117843147648568717999502224488160863727352105551299683422938149543274967392547099939946647437981554028819604973860007437527415704583938535831525834957658699834422547828952834401783163028254916763450492600632146747285658799821868995645887581449693011057448400602847992922154965338373690418973030612159817394207369329815728803433227164062199050398077278015588822163365041941918742550484499688348516031437981246547261296086300826473362040561760313352893041052281577331521485604263085929764812899864863904969719046867312744656901309640064809987138391748645316010260372211957478560616084152617738734967610877506964136522452014649605110133815396347239417009918803749343676247178337063702334419873863762449987377762189798328735507114893130613222062271064884638091290724050731857181326956395592894509368481181094578080139626621514917334398969486718074555088336945305500020414972770043661686648800788028639753218170756724182333739003669543638410630717628490389036322109001848218336404106084097727362148898620833150851049509883676850582832196533984013611927797237567779808016759214571690547355294934786348251031514613762606790990427201106499422011728140995176663262096968052805657309377123545124411913791545387978660337669292496138275187039990632947123550952999068093577256253981441077679782163560652632765605853954289219051551545247990786586845354402894783758048894355709524938555041321675171651414250175478424480150284389088478465256741005517105346974530058310015599723536400190591795418300830950775479313700425936070097460953616792491495070276217934470201478105815589277705305600180455931090051661138836397523837210449630566871749077862280615382523909741256133020688017836301670335232460952020695710038448472111975089001374970808895082104507939670423430442653705519514398189722421794349043696178801275594907174267267560954038843972314651841070647832126407215185512451425698456247351126947116786571950178798544050060118734245869492062294710172533340695173197767194414220878862056910536373596693867745616856182822602202393612096954613102331909672460096993979238438873660185635538059550335426013113398663027119390566965356750831383399791220206894014939328765346171476922536548462590518704317887575703297371718317374669749200201809848668421781075287122806128611509470739693833767915048494071994005864624343555599984279085242944031397012844410229789232799327693180764346027303587762383586723700593071081282124614423771795595418108322465932934319055046382435942290831196086924240384282656450091798338698135017524187152611927794468191638827027864315246401390828911095693667591959660719456824419645491783083127824943742778181546524268191795203293554273250276560590463151833774519918659714106760624189372457899553676167161036461388570482376594812533726655336523732223049765809961230570327728650412471797911042773209183096459769466268043850396071132787508802142705880386734456802469447783872097574116954048693808555384731436313618680937862797424559185237005531006945053195955803044587283417639306938274025695672067282735357079453262699464222279972776708961222625197820830997590311054094697660475659953699390816074739454744791749131767207941966354050885357985964175458990941108106054456995691925261709566644009031134201085789545880400631831366993555062564298618890288219297079419971977341255249288787121543301073873045768232295293774952694513968023437786768890746200913797411065853725004456468219251316117259061628628137143455788446661859184837608569036586211953249116186304367435496501092775196307653421566663427924707134866297693256861269681526001122173984785342016522113052423601167730740223979118623630178954660841386547794709020640756854594302839496995076207685954259422835559407553017266074991999284068260490572716109504145081807318305987903277115923818709693507248358761281078245347221346521127536848552450818526562969404042209047730394696004878826724915269842733863496260580390637013101836925160616238744565247740667901640593021567233387408674632770093378006640616526571109430094846989062073702782706127611467567403192367062993951862203583711936234887152184625492017963146460373582104155205345301725040883188732685518454496400463279128994180844853419151855337369427034388942444015317471854884655805794114472169750528963385894845040223426221224012110580367611297881761183443546251645837735364916453836180115175747747995877276124535004972769972508483567234381771550895562786630515391838661449503962600834438941107203184620908879404850758541337391744378900283798616244668705239827499505010240976557577767845549984114702399431450078926282228839174192852748327541566509336262125946756589640591373748359991752930232091934910963952657756567285949660351025986385538869065874506081979936275982092177533291784985148321410071828674388232741124685799890330596183984003399014250289825417107285214107072422565563876040973650244601116655487671801417417373653798250384708816407000971716483133315240737804547702841899465613618533778780054943942036548860501650563561634491882268385741887793728172047711167857333156855873393274045586662547853198726195284471321848585784699631093970065267900277098161267093407179458216436367011959255979056158987045836158180545738470103314797798102809710577660937758760650168726064539239760483931226553395794852361345594822328854805341836725196540379468394958610736864679837445075827932186927254255533794163282359122848163491575580705575072611833939489768843082516984576312275887915945423938256517844487352891277954550267973238591932770584075300946934711408000600563689063707968141340713724935363847422593776768353547667658517177937428585943084792923691991727481202277476491821159266404679828632109617710259293142868431156869576094389535705364637565722699997944292528868461047413514627387127010421948467573923590491036773335635348223753513490528628282443705540553367583038067790762660189939245375583821438891130864173734699232116270575571601130959558736120855873203642034681015864775251197302523717501991317304593627316858477537573660638618792837709677616417812021078437884901190167870011852905824732978541551048246570607605983748511813774679266102211822720142720172346262599657024876258548472352557888898222584111717118002580613510812311333201802452112470922854429550060204653712131286464309678666548682249433015961756465203397322689667894035649804784504656072411262194862529965448703828454509569833921216180273353448546976337461512798303817411717553434271196078354705050898204249303587360582306475729813091180730064909179531508474309405917670698049965575470417781278936641299233277873269786989415355328708799389630170486307088311793341831175099240204285022791661532690222905801934912823201986210485024745267877682924506947629917858928417264457224430334376990783075246353480888506296078435687773315981630973442980710003085172585227372949236323101228312903664588341990325434240991780216444023428114090914395703526426231271511179741227595720368092633231051615052115655450978196846613481496907120398749895660099651811585520824296128980873616201336240714983641503007898734776065945152886506828760495004022279083819320131772735634090290016354077136861422920837427449935224576735697696606856491101621617334801624327074259413489978562724836796158078523367562282513766753598540044237569615946674379519871215678907205501738941722950454202014124728578981105676522792039762486508753001183444942031691330331476888707169371756044809000194613274786433552237720347698673402711967950220615984384906492699674842994362539632074890436663826214307447379611377231290838514734637299854649536701259030943992410096599418874645574390866335924616146130461749601655729312291205419346984798796085313652640611093829471389491173791013064448239459889604491453000975092127112876851923601754162247753930868450764039475584274505894515502232702778936943232976372416728549205819813538574490088844602474666040647361010746132797882661193013206936234864487907724745989600860174680591276438582911175055756003806402046293824085290737475097804039688941058947677292685852917556780811043147529689695006312239899928066145827569148343791576376502023468703172533515170010896072585457704970821153454717166268099883330401136587110183910129099307608690584739922928361625024061560166857160933069744626528516285953422305345596485922044139713546871236801528225976942634355271847813880124117769072685447013053012761557262463895272290647522760890473208862488184047166707013554118510137929524898422107732621156085039742588023023774746516558527779013500241314828086920708871439472164763129654050040280671045532301897641822579385664534946164615551663800150695605785579555477051625796430535816844622602609685749056119445425615155160020223303554969822720071754584558399122327691680585448161254338685110305133743566999807857184911569299847714549555885932112161418160319563401071537076704259962460727382682481277880998595199377595538797050291568262657212765231396720298219885340863624644573156018170171077023363469051772173861601104580332308359178989388682288669589297093755129565738957498381888743154142220764573824260763932970606150398343180724048805715022152622533217534458671078537293313794589574819235947533539353588842392240944264627331371561686046445481810503449354284865524425107863768474837512935020241000517395474814139116610344310477451755641603700589849180550088022254357249423496054077853038275310314279292200204549493467660787338567146626748548173568466171151404742974869215311896707413931933970444322900015656518896749531199803842244260415360679988533063680647608350789479475262650637529102924997951529720018747868949748081357669481341275982163816020216469129327673957476294968812566135700610136715409248639422017888341680528117688028835041756444370918745942426043027497854554188995276587917577408702703983776412789912790726079131205353838430610730247131489310370917102134367496151255380770774762007876432224502488532075848726892470856017961567313165609008296357472620522405597573645200504668235002885592550949464289896603300560396481256014193813056424203864056323550229738897213600118005275104623464988489791802862075949274417447492502129575801680515614529490029801677749936155018896204554170368641951684703234373782728738018583326632192001923279318856649275807263053531429011289243524916735479815744783306923915767365161033291379083502332827606188626694798200607198087849136684986427399602823568406354827868183613958985160244115318908671462301268677564784477919865794218934891463327845397238448443941874107026590303143729720226296945198789778057139694826022201730045188824202844043068562733031887900788945009093063533757248710995027048920163068445050910241413657405703070747361109652554637744829119631639413842416438859053449859876999282190466389998979255273758610441407544016823939633322156071941868585071348729231041784641364091148354752686433245513494893282036123496779656229079225294801641305936628199552550777248713721255711850553651906339105545202191622608108716013808089605439887294408236290699157569704364217533934704508250429106639551917636554741497183425055923642030328187921986133691893170476601886169224531795431324336964563298567976399758461774663665252500733111165313041366517881801861750972301468931511000155484712259578610856038038112141610327202807900095891894692289524328759144954754647841402069168532537014503604142335757584624231547022798526341370171708753987760898030510186701809172098881998999325699200333149166814919095133422017310577457951799417259729983733016531846865301871767270568852723195208329524535014621572987391093779303739182382075232827008284765515572749800649256397367400057103833832720405521721776207858441124024024308398876132149291495924186909564191753083551133033437692836745056348042311968456322847142573060011068980144519504646161012917070986433023510120721081300402277036895262620285443111390875094897497958956033866777285576041563106917757739976559449847046875617422415793972703989896053426254212988571935590959056514424643733173072973358159612521596904715144352233760949116349225440217824040736507465086690568021103433643381327454534589393273109988153893979872528836102206329440112973798637534036306908573860125932185922287330028910271599148673939167382570171815454064373482103196201174126318867141920035883652238335655424969071429527631457337827419768595150626875889992811685187572377281536774498446933157495702806144362325757733435322759031379405463974964054283401716024509629906826311035862988029154004105865743346057862369276566225300110757732989699414014503159609013513618617590304143755229660578581333245747465728713886590511043525873178200700833713844558952612226156257987383661603755486279794405336517998229157049144912651848539688485862929789202974934220725831615566742851363890525780184120912397032706118016728783662866338675955877016771920052134584518132923924174783274672698917010521912674246202944407059261568806389349999290832930958458043015552144683295431372273715174323627063007061704943763526180715801078697272349480474831157296863460652914196356117868527226608376368549381339371132421674962002947811904760817717599484093071996303054221397213900803768957788708190982229109096636718112372936110017274652516592069126010162788784691798400452848158650480400096564884504804477648965094015099409257570320172325523657772279622140077185178310943917016947672102009927100826076591307828909075257893821301111157602865606933892470720583420895029521887638483211262419803852085123466111656029717987251420596433497922340575702386875967722811743461482654543995815360895758973813459697873025539761993276025609036392370360568091110304752710017499841090752230067539204320575439374820825477563685935281819361192538654056935741461516564635838099401323224147648600263051370598910950045369776515722256186625280560841704859543743840951070050725444320082333774091899129926347567867531639522111577966644393548033389253806052295894026312189494051147645895934351093746781583917065601651189959224495472711364189937963343037724484396797644768826715431219148643934518766128987288655453125059827247650390096238138127089683313707303155191580386685321019953471490123093466925529640254068928238238943472822855673424373286606130368481139453629282913731208771176158839786132007188234923765903223759407411631344988203726760233943363864607771468831153362291830218965933436731193405200374701784893794618290416051235105933251802896816762465297893477787482855292651108585170531334577789932260169514946488056347163306053786110413312618185543154849781846871540960372008938814639931508329239039255149299468380063022577820652112736026524561901222808062178864740526696688332816619973763275217656622963231089616642803131128654608606015689496378251728898896906107201643234984830897933225056978757657033372637691645668144039039082895860830084720163130692138434128935527551314525076735568718846836390379816723326042908062305784051370854000514083891519899829511454289340168957597581367575064668853011835096869667540916046638596730928035488887979216108492267862716204114677845658904017813159292165821968282946273200436032000249384310567379918139835671362068845033781291166205309676274608092703292840484000691119395753846734331764118061945041095356259660639752323693613963461006756324133592156727862483703850240789645781288336081548373117770784218345898591822236665597340722841855885540994200084996126869804287676150693558072597482870594491443515022596742209989946925363352706913628951018983502758694033260277175969306552576821328861887933284150110610722325165211302222910050215049119679851330332493229494515847640777702812326739235819174304892594416089897179621182077117588382079848165136530332552336145615346240691786616726874269891059598190383734142429841098328363047332781010926719854852887403385643900244597887362852404881530610579530877359882219554050381994956377709729563854460822046367774464059828673957924009778222397216944402360162262648897262306447519997395660395139019247276580239401738797795195891771336451654460148568970602111688259304542063768526433768574722868016488920720932311736107721528057518576489419051676347068715941124678361382231082304301905424382438666240270390137892005895937048618530206231016856187253876619346188260190436083029033587602301227687896619581450038383843439895472124939952682531239508247559684625202701885679126413718251029069829725216464586691416151436894628875911019216043513748201451762946628112436071639377681338149949699331506102623187883166246467459303334042415655421166512746998921768841506932357202444787448169705793640103867652619586789047000298502417247267586064074109276496285176086912812001391286408452678624392987217695864994945327514154008211628138170892314108374425857296648057720977033013874338924263112086667695049216523137940186571420959449287522675610163155035765669308507020301056628771712613475065903361671794946512886338824361568597096702970128730441244391152669660480573208350247691878292915253832195938088191479233461273498226850771747656603709081404116297565287847962731359699516556571345946200383167601684191968677706426526895692765599937825911736810054210600950423980521818045926028116330484108341669823847777689793204487936805401462874480591032587761116508909591793696210051621788357520137981055614704606607717927009825411920280585499226858659686098788857470613324884841029321607153838710481497937468864834979333414043419995933295344644739444165475583869091838034935578580569710348078342900673069420551384913224562879108676507582523333613475704892098509797407912439499717554900872048410762491798909005955607660997620674127161748709699196630663191734185983598186917160226587272615215298433947502013263257950651485597096737757792322903198073059981692956636126518862991683461799816155895523047701459759007729077291733258867991924147853929157277955257312777383388212887229091004356381377750715628940584371870461407498946629339694580816221168612711542608950289915008590969365685880948933831723147544516377445496879641841273082681239410057458328247519801432229766463202674475730777972904533371049670937292195468813992628673407906658453797819974021308484902940230792277226666747113742353612514961791037063816129367090877479948552695042774607104953550266362937404608503746152433461016372762073724990044791354701523441088239515274689397748960260543063114033447120806841065212610588984409763293529569368450570763081279158648097939343796786839510879791542994173453805304917903991742737843211067778681685353889934299290296742159783066324965279048685170520851120078147820265517949743331981782972848555298088947682797348083015887227413313570903569483774177033050098759380186739664441659790096263564942678577024674375302693682879571413285294306764795960932275422217027819925101304747413647794391537656114832806919587854500761390853913272839081751646877723993033123020492427205494764954028977356695017229937547645655177757608312360910393293023750117990989153379261827114144773558332943605539739976556896153800030284941879687295927125201239914815003534489350595085557318956613271390941955348086401617574413280111615793332546224750816032821667888580134277738760909057225694895507607454217760521841858815969314957699947132012834862215145272270449090881864185948336098577250985129243383446344662076842242051960161691069738141214829258029623042339481939165233595403576138268193708250866507086480619406762629712373409042451270377365616927582305757960889773841427837203344547888657060044326641861312908068202348225185854408883986019633434941388534715225475098109413608998267189910259178213458373465596855512939549599247182815489707679425431219821807224851063772618285571817652545920013142283684594787610730676483751136009098096421774157080119225899102565330739223495688160802225724156670466055485386779363795349737722549628977489440120823754435568900967923899173109314105903923993417235027512040595622089036607550109010207176285459333951041075531597028753174163352345649949167459768151348145805500032646637850851264847867459750356002654619346717378127541474912261383055340922552623578692984593556665570271278688330598936706359192448960433654624714761227760020895994198414062437080577281848872196139554067798446650089700241907893996679286442116421389192609749259584538344141963555402593709169776165743699127580387896341524332039385880880197315417834423493064244885157951543575693746535160064685451675965012649102818204345240224530275769890094956604355946893456360809443223488338122276078625090027170429400870174807592527978706635698968831040185548357747201334740298228116614261632571048911892192763632633209702798843812816653612964232218231018489199577597175902549087401084283704423928986645569914991774621340679864742208217031584650760230254280047882597811445872360762115704952922639905002800668940936446430778378603524055149438515278669963792121337787759568151627159123740929931783130567229506014530183664514867036608170941332220479004245576769559777380358689938658033000471307486311477459661562038012341587335710487830071871607459444184659545804229064311447751539847671604249884570024966381004951329578256904761943087485897246310292759508797495972709100591622975264421847529095603430367343606897981582698828832735948084947715565751972214997254556466444350254548872571379362980692967536065782746386577693844674443274279089436800744135987396145404438053456187068312498389384540040399657853428207972895068923601880980229671089934359650840108844582735423361750122967316435007140329673007944249928812090487322167488851167176940523220949839755072774727256328382732665436783199359939572785692463120679464312538425522725663543395584041272983910735624631653096699002310649906436540436777018194332424249439998018522835328553593534029731336026703460011956439788069738352123913376396163479203755589658815301599807765193724675866074655842414832673188090301179670756368126350705597236549760260414374371686691852647422093430577196865352837450063960175152259521846565303616596249786554139758218506561312340171001414999355066453591620609996775379235854584013492632515502701538471810010213334654260319284322189561695958296270411907090536703089386692983459581188178991137533771436695793714644615726046794623429859201430334434216652723999884579528510067864869616357953066211765892279402514004278630987920720060503634772955180963058901376847010143022346921031320759113498614033525552354704985927388571931204474441799468997656692584505081794082557610214470530732317643198415618849422923862520892169104681159657367199651260215951699377530020640189701636805240458460171861563981293270770657347430948032100742308965622822201599697132883492746778630503770092799841636398042800019825830177092306223196020858311828247336487441889311074875256231577433334659101321782249128623303414242438737826882612768127095473541307518980837247847537994225051950013583661535590229557116530690422454405896415890608864087386708605260499491870991916026130044460423470908697124977981581082560843091658652113262937610112775214750506130638935334416263839550730317462016543553687632488960059280372928308354341123138020597142926160304237174223820500283627539649162352000406660759759861792633765476695512783800133615447877825634584381978833311755122369249811153450555760117151343025439310227111637048272347338625388429676474307955006333776164293045082336937654935247883860945024756352692299907463141385012990908452799320259266877101590986112960184274397342982331446817964226383862678506925659617350627431467127010336669875535256374024854996614766131669618368106976389679309462798302125568000183380706186859432670580929092267689696138847076232407296975945467228166659884467323235777439028112898604767328883675102363278976081845539539499144010965001527591380721478560026942339765413729263739319326994029339193140607464305225218228883332532631482992947389127471511299931493175165952714641859546145833434965353208076950166848685109065141506128571117325858993275624836452007985427634643451033380897991858259565995849666521528540300288902115012113243711830971498212027769005946789706734587433952054860670335989551968914772744777906569482635852149975654144228129735542657111798663388292056848320363499586132881445910360806780809842613741801350863012887970203295156726695413692170771004239380731138941116631947706562000410121986832696930220252522184435580684640485381174352811313251435775532897329076259369601594109704939864246682321194859071189887966361183122737703487210600152645790432987164038392221969416440896450710642217688867640134835714956975430931897677258650776458334058824070573778574888846710251191950493525460391973990554397563913843214683999842023887234288114187957716875524592537009701170009971157645278252167887577802571542512245582702507485472291336103837206594003485751299925609634560053819950559088394158552265794663252428807244677928977105475870154059217729088247561191580095786118216500764935248258726327359547985757569062765986404302713722740083481217202438181484206824216547616578664107821645033926771508379165576309953573997779349631478056191361222629669445799136809187147526893371446543941735514349127355655011028287373399485304350090443483232735257819719395754574221440422697897680199361812733914678938070562650862211563945277920356499206256916141226822818085262625248725811295363739498558241544266762315230104568418630707371834076612298509291894828438636682044867235916481500971729221174101178842066823738102084731209459180186648549891046952913157662907735993591982980409766265584532168120039332715617249857217319364540211703193066755296822150455364777340793455207896164086776554444754548492528710531208620031731753486940540607369736512460778818435261049844607475972832641330584293102750989696477486230133484723382697168254418175090571741868331307030594629087296803160359946715612426892860073801966701890240458827777109885760503863097689889094618391363012326015925138057629200520177386106345555806482602481397649819946719111182208191422559025382888318582593193288916857040733836982587772872089588058115502776238429840236762653106918731120801710971164623358933796370160650967576559671136924297390267599256425260693509106552243320344027568888287609648833458495144898372687430247895433032568950433743024906630238191057316683345379011718911368402293306062552263700823320220974247609712561475920667429241063356873333383647225976938075449339802752882802541828929727293549028815221600151401029349189955372576898309157061206183230160597875051639838683153704497828246991598298267917407119465660895749018055687534780368353053740746110471228090782667811109661396769094545442123653046878700396062411303670482718018352873055828676956009880674662045515666097297097908060937477104952066321556191773998379080102718128304567882331641274969130470980341997501882428405573198176059451029217112418797602174392113180157295350046930970900282663076955940471356797843793691599779502897937300806901778498318852880830363948675988620469198976378677110156799167417129771036025912310834271573139520631958477423904453309639895809482711898054464903038651165787627152737494551447918344591321516326382272990433570655667741149926576460915291566832306016077605879618375288664630681238651175682535952085451729812444858783724750372919574449857193159497297104629225120022018241470625293494115645255782034443996224933880623607060414823582377412947901528765868156542279107423902138751931986959455522954693052015028469897461834800010844929356910772520295900129611795993218550575257399785311584196935828006768631567033281327654961639712832189440308801919744133254083771942600876380706957755239952001980494585439874111875899664922241391220309861212378739874975392671183814021588638754059016353399785738353483551494246290866830727512888956535012184500121484103619136923682940525299278840527506985699086694913417403355022322731896066004627211396978053911714966660862290275200653055839301647147578804605526701635517887749280992763043389938966549858511920005068230369651818058154039419295681942619306506542100776191454803362672568711791917590930572373179358415517564336807247032215871909421401129442769237721543937679774710807157877813330885584227508624238849444233765096175503075800119365619683316729711277405409980157257789057571568002758728676418888309537536658603360999517261307004291494136306267017875348663072030389489172840666579201866526830324274574779593061129253410157438853460822426756443252939750311955428770370187529548063141251129378047703359367106033781356190557291017348928679402797794841781973433339784982922458735148993835249591052765971717095242137417020562706224328258657379318035890792872801202299977003578043949949414946346453925286641495606004153583284246749143840315847444974154875254254606475036617682962537956871712592104042060989617361245678982983769646656835486697977640861891945136726632728590140591998079230583961712397272474093718009249559060798601092337488541788695891132998676166974834484020983719084180380129210285450887319561953458268735409401879246275404038021350510025890484879410980275184751957511410816102249615441863079856997602847083276272657874322034006231166465179819868254550956306833734446458947541483628780124284990631676877167771531309686064068718255494512230148810041445134061131727610316865020982490465411066788353580919779207022927073328946650135451265570049487551772806117906732230763954263709671990669172178561924847270771461697102043708670338805287956653084672479146428725899849325609900692729687917696058131455078953061863894387275633069727338141012831477382110359073062436175024330142638326738479964908324268473287262336535202402378098440549573717203561678838019890852112289935972601801163131599335400640080467291659896316875460171731622594161954209742720807247757339230460513684350201553435972773408261864455524132806801786189532854498100312326666114476905979650477723323965597441888535966020643546536660517419341972425981407333659454078320403964852036228980567968663451038504047862234252782245026935818831585485210413626209155110654279159622993781614425688639531286012977912776336460449152285860660224942858296404476091778421928676337966969076472182745008328823948141666495104834249190490200133717261540149093757975437386368875934571221508188691257381456795048479504843470810523257119668702016736277859669668368908482671633087238782526477556080605738839467831678473535968058059500795226064564756317522988005234483157050952217496340883974214483134406637108194374717108354156997914252034497586523165241043051071413698383707456013304884790288987869892806607565605221947150470734434133696624970127069427001696247695053430123830057994726789110234434394940388664692352078015333277771929200215177175578128231819830057515514043103080389987318724688083190791182848173968825038732863526859074535859496161206122878319309034046066110937942559086289260720061123282682242524066945963550765889411673773520408734061136309870079248899991919386449586696054662561426301454932112152200674351839080058282157991624261088025767820907236570653878712602660884817876508301403731932658617371831172034417838968583989710183578724247764640486406409174781534899044927530709612691069853869170984236157828174811678058284929289371364978054931000482372063359736099124902903519853413064188540363329568298632086946632178137194896188805551561763342919831139838006619715895275432735010333909575986116822432113531802867537925185806493028102836676960696913836036820700980252057200614345147049782183200364447735487977241358373739676997137159324852096494504442977077826108145510556158759524249353031417717396898906316397347631742131897151893645085902695865177318735019990519682016126318770718691283418571410586019495322745485727739324195977658873552982620999019112341547692679374534488023595593252162834198066153283488777209466850960309621955312437492381304094834675082900066729262880020058285564978065048589358687837421504034154718099241655469015469674920145621711352945699960141532254557831771267183564778433982644223784464495495424159549233998620598103049534356625080317558857118477238943240341008200990976946838118058987783119583720728267162532222247427107665653422933285671803779975823190937867290757563143578507393863826916288599595243589102935488997424260684743878817095006873124638688066618676396640902928523664963007779286014605021042502473895932205259988697080128394911910459886042607347153524693896788456048568274802626873379618031232181302114458801064063399302907127846975111180751400437011518334586112343052286080921072986782737039722467333323231782284094154693919350496894522687079655142130542437065426716534052924225144314897706210918706231043277706159305947806781519868745814582767757497605515233586964674572100487620557590972540446791665396548312594177842900207781007622529221806672334855310180117416071485611574800549884034946160413067705438656718912350055787703079198820592857044717196559530033349613774030442486024123513108085607148677297542527587449610687944173316579444554887617859834928369521975717354372778585051895662174539047998229389288342077995975876554046334190211602674793552765780644414310998031127099572264579647701782484220781700746310297726440020881522150746588713001542150744378242008707158459727414193786353726159294223259146303165133603771696010529064020110002817311835357532808231460341579668180809325230193216245237373748010209883810460223043812287798770034500164384835410594820184081200799388849004024531659884101569557102563968259726135413925071861575890769335790776140061748524298263959938784805102613755794015491009431456998343457835304859485277145264014255855152234104385150915973521337118897192987391473799754442213633517761683026580222578396110577627367564318831688107918562363471529071446798695304702685577044520087407243690870721296869303425731109625060992997875388350001980948662582610093620885517066422275077581872445640419793847565512561744216724974820126877857832087670261725915073468432167534882444954258160512991929658051990269215066828088216372238665478114377229301194366036807353002059143904449725296195910094601796700472871544218737952502681877029071678041192278752447817550160640178489537577666867514764081015027022372735133545867213553158919231366348270529276367462852636484111624532877512976802741202275615916501148376019051463801747786550121632860403952178941304496879327575401870388746364682109142689611898376499076836912821374851864911486297579689748044515412481593134182006873041197344064378280939608698459586137474077231397617229340711686789264740885382295443114354116047852664096255284878721533327633033756782012473977698339984626583191094911460486708092185972710144884340175745821118191675665525730551097660755981887502862736682943298339709850327448203448373066123920769316153747174588822185161866469364203603894627108931730347076677456341458583449210278948542917322098420239768381018499435647516524929198536537410882139895380296278123849180311251099187603045851957454497291035297525766354270259385076624934693062487699763651572581283185825421130594002019776108109824787327398234532208452919091421445088992702448370256971311129787195176056163915284976931409148836422100498954314639178180763601873410003295171438106822702687516124244066474328452271937719903985077315273270066746836361701056467248408895876078770385629981791793814792919842669616252559440979198820410521466245930386179510928343684844436789565100934199652602812637446445904634989307852519112250114931616912243809502903963170867305960465541060522111006011984919489689819933506593100178094058332172152248284929182016573923472256523496792252596504863471681728210383252073598866478453555755799462118594297630040723140366032407726019346339971175241726779112197346406827474823562214639273312474810195648079736343526401345073694671828434398738962520018646850320379401314846210657865692877461079840127109391296222578473292239257253145442072504635085489960316810106930236485612768808748126158900475656773860383955631182372911606820774161446280927228303214333394721463275357800898063238741811222785091104417897358263626880408478630717403468443503132683621664359808437249655191636923725335058950541540184529436337701292542500354245203509253075679510435164509137330748469601390161676565490546589139499253842983534938598600752929332213267861106730575300819071286234546030719782458410067242173700039263835979221574870373464544839140625958446660981113582793820279919063134587962019324955905699471581804882384029226835018490285098003947088833859306775629609461318666335052333851738640683379911990440031591217243244677191748015927424077432460749302491964667326807036904544696101992367885871548786481310936100951308793561986344906093123822726838048942125103916907033872148916275186126635583906807557433324521962922017531324714696972682716567557129195464789706561392610289602505464138248666207076062074846155403635304479614107501465328422459078565328405553957969522885039381108794502477707315109798370445169197300363024471887526239276142133538820278255517736357073561055254484629731586612086322953914859734005747250916680825328045656758683155512106483243113728046118960266434489903551068631852119794600336736598547051781430638868455301447932318622739336174319364445330331142206120539060693606229997987404705130246605125886613109980332777338629941188376904648655544491674365083943557544269583625252923234464652261450889327037262227934864953731033199348737683772142131134591310628241387950486153876586220642175287858579316841661636273719800808515015773623958079480355223648541874856935977753653991370451833130568593926508919635630489261552414393628101671866360852105416510159138055078493899502936594325599164157578749885817867218352497907024213496568213921048097752026538780698327745536396756308568267997064609493498219991272419469310028157908192995819255012691992699014801904655272662376121209335535334279756056575572614621522662572173818346291032308303240896649016312571976231460215239212426413609746080560873211275553526605369020676255966720245230869281321065397503575247323596079677780727786262848481751841963732203130331583750633651735642804627028853561010169190145537511187828256639334301483430241596536988551256798096509564936611430531705539182189620421876290330109594013921424458208743957473270755583578966029372565169284797302727819674793631412075546368231192410559601768957260944989639228599383702018576707777502808605483048225272686134518447222106226583799823661833758133471845991448210486401475975570463065387752931726633797234241247814108360547104928462147222448907944250252152711826859652380063143309084856513290364811977694906398136593218639024223841880393056168264569492885079110246186278854577862656353783066036203097068240964447134390418129837342957964995208011331142138713803116897290465268868902743010558722366872007348176603574223481419596078019355098796307661779582701533855123722346581336385287054427788317089468427453375672267298396980197325666810657150140543208985261386171280967512959185103444271554816732952475163815018593489712634968206373225122273488545791863048250642995002728889730855066945668581114468238692529192740198704568861066540124769149999924338179998686268259799779487617055763374230768802972351948293300582329348234432908670831109520824915319327995352469108441386809699858528972391172178577819681333367409565779265262542986848258143932173063859204541623538234992174908703059360644550805701917509278480679884224525784560544612523857348314669020061672271239777380936191900408886350002615655514009355386370247491518734404735138792878335629393380469703701899132883264361792056116151813399978376746280670598179979846832878705654520037664474179593816457111859760441836227271648755162452267072404647228055040763824062664132743613826461134749552164598313634420431306657712916041603547087823477488071048985262295902667176131022354204497415568622149171185885974333345626900375372974334739337946570802659267659736731478857202553261025785117490286929565961214406187089082278675891503508412510366557610125283653156707380358832868832029636315024941286233769930736299526384905521860102304377241653550935426721117840507269760843838061881533788555454573179612591754392469169541062623972151963983596881663589345679915073082695288214377128987004495935434399997289798263705601352965748378872452178744830331873832260103923861539702508436388434384110789003702918835337210501721824767690283421677897013346705247634191676094027609125016640162913889447457097800746432220629572542644803357176550401945417818868245995294839827244873703967699418061036385964235419620100746159562654815628761427068133217437645422389609344757946500625560854404992931235864447333069698153349788964158400988561506269315203369340871992570409337412868588384817950746001037774521739199053197986282831767047551043085589589693631804571998386874587749739699035238598888374382833304790513821040022717396492344478823782159147773956533589299915207696130844937972938361879803537667429638896122234352960631596064552202681399304239791677929837949569512666832698024595553515640159141512181131646102684844819125505359823916249525278196312617260918814162895763583378762885488929092513254759174370261305263366159600895867268279866101094734516035243405824351155333643590649424610206124575573266683635936224178134291624458409757547990477690242439350830292116138535932437857336122591876996998963896714899743405479532734105680083077953669492555194181806930163196908042432491696866015356990646237294662318073683274544661811397150857339159028772934190352403490756899710847956208087219593666719083566042968560608051141214004391758074674686123526341469551281004880288464836186825132867104981858404960993300372644273476819877886079004292415767109872093332470980278776208126544537503648004289039011911666993809280892545561490428633166410758022051218645577197213143716656889968846506819017732650335640016136643002359950895118173353881533827552243885425390896365821977455509843458628551863120341063931015214710843179550426346615902690721049535992489506222256777820098993725346634818333990696040775493919253894860592754173796515023290390155065433142192953986009661678396093983897357436365303936896730792818688027190060449176824773431254138135555569881876105823813719671428274647628655204487935462636255736226190989528717794551646445176474782331762236678370199739907177561242495323021700774284430327893124223185946471993360312909813464119686814034980679388274215469127705450752339311214378017503207860351903462979277298796737891287027851864903934847906850720540530778750493359963603814609696878057821480138625288641563012199549654524756218931330666150572282440819760733846470379591227050211376928409451591667783863532749716039993817079363417677836417428382679994064087253505472638298546901669106036123941666103805161462548680626242055792835886677406949356187803020389734018302040234400047319778858641734231665113774972899115571110340009342379723961565639805486270432391519466128431423089093770963524490597661659546989257124959008429552252804249816317529628996037084327626429046773343537326600569823973773287553908632786281213681925612182638345389662616390550083588984666777367083931964022890367374430105101184389878302274595400122749067067489718294299260034739433065471845531335468885371978820891457234322263189388993630590517160727300839702484408808677346023756505791337258704563920215370771284390536541252105755970136866630231244509204496391323710362510881151648605456232687466741881372456167177400968020135353038592408949507213883518788906599568448404248091720868280190874659257373524026554957306760155429092061796772357247638461814423444107233158547239335173382823129555897162741810369416425568578376991842718411110235193925941405642748578169163125368733479758975380575666605142048269430653342842920353513132933276351392864945632739644432297006564875413330742899573376770864998898421685027399267718582295070937284058433931197742726636908764489952926738835246832747916216776694142296625380435509769189744091780352085111840751652739976678063326861612723421425299012792233398017583822088353704477581737957374769795417959497382545809203120138887323717378025638645075399082740321204332810967730867681329217226387938456128763748346302627695884715463576379812575915208293501003695044637559159869825627497528308084228987617528122633962719542145728926362053109271810143375207866273622360745943729849827813104771086495470984195979112575148725034670130501746650597744001704682716741190301741710564906011701994544256179533239784261354980762176216502796541361851759149085950279524768075832076760568458864504736138734212848476067026512700451927998298844988920153152071478033766408249443892251480527084166910400548873429425003759389264657048668786853520294075014591378261020308805359017508508858080198063015263905925268366111036728120970994541402013588263176454868716595578575389557985458231117159607520903107407454403289919446242018610539897084013499004427053046837451801595676410307351466070691330372255850253684068491306029414086073280940793594394724642016157197820576129957444235051444367523872143388184335853542987610131482865072845108058713108799540379336019958873222954967240112502683462233773650372974616034278724632751197218461920203441832511612610693209359773407766898138162764925904949660307708308510820065360533066590741295412172013953833205036110771789647981143155356034714683329244395942435515309744023926958631735405277137011246012828142242718139383286878233671923263921229413721692168575113899050780099990001621484635936272207530033696026265110047467386325621829773060258257437874658225587543352831903946911173999871669710291928421119532794541285143157634754754960321471038556911727131391372655356954181479348215575389272629202438754813649163574754361135759682954344217918604377942692558171518865526780304045488219636092833186372352551587144206905591655825879443692193326488201097852663493916988042901897129979631163197141526246025530064923516666371395446891809252449516291073355658364277841659146473742387842456265244068104815480569884611247733263909121075217405878774416999420764739553792909091270940348238442153603796659212318620295950736423572860528688916665376324386633717048665933256428247745039168834276223407926712138010164745939074761303043841370258874024036680521305722939211247267037968285875964866086237089191264523913363190785417395994039044246444545403916353388242790781134180325076396414030060667549595130431599023656933872732791246946913157190051544317994252161591062917527186458403016302029069271227496067140258838995978895122207816833280985298438465257490532977188505918282010513662759441176527864605598967077941976599262025571548814161826491737578904451536066143155750182203297384753266016448155734675191865456955747733731686334283254843007556165299020565210163981797671802269933400722025890522007036988750758949336124285209364376591702482382616385667232603254739500930774658261059672457892991182511199140393938369676760778063326383720453415554341593831820961418466761433113119514524437690646422449671359249022262980577400656923057103764264339172359407280067055109172994841668494712923572342661242667375912637072677926371798974462626000861028731865573434574029949473224309142774214347996587277429704098741173643613876012994938953110613387818092251056189499895775806470878138411131499322384940266582858673088674213842917647720727708701413450028392486503218945468403233764570937152725422566852088273771109466588179864143196730234264536515621914572025490514685346570268322615044955394025680384163263818608133074117079787673903509182553603085441039370504165771021926815922615519453701858270336547087848355863358302952000700801363749877395085882781059622235140305581962995275231251935972731748446858020428248509775174456653419751297954791847088958063112797516612155451294025229048418216999052602279869504270513922731576029983153797490624747092747553907016153765987662701222335149831836751786793385145012249649870403786116161471097028304476247294608706475226366184491630779246174207022583306853944099998643174918312374663292676389857209563300315999741163765247594886229190563618982439424435046570200022651255346875080173435077367133583313094139924180349654619675251515549250735493443174500212591731630506161862976434750821612847152224746992235147403272833820370911302935837525478745791907356727791748182850544755843107595749061743105103095897943600850204774526064762709088282434474590731735829303323316833938610884337019928758351028251440937963609045918772993313874149099230458973801126405166208899554152606484393827475064945257272406874894636213857806207868196046830470797040873692718857857237574075052527802850879525309380276368191608569824756798275215786952954287400126050282244601707942509989458400980966522781067192235316172034820934536411742212355804832196252515676426152361521939363881503530794547609836025514620734590495950591666287466226412052747013476234650495524747542940694825797280315195075791306604522937884073479855850539802980602805712548493383432078475300578195977065314025858191107871854284216494543262799253759068959815065078592912885835341815259192628828800250373425466849686508148163773603994018829005112727610074880963058404585904851762285763737225351734392195141229375336477519235086823907700937100239724037396233408997564613744131252926847213946965864802648552045912076866019220488203808835495703732352555334452085833805454730350497565821954427667034847000980430965522630837634611330803320680863853300292743902327099709841130075928087449867058435810587517741486578157943262427601976053546673867029463611746650791693121237920476649007187122716567583452282903922420189119510078507362992561627028158817686373959249939608870125855102238105501146300468767547763659581318762973226435601486092931380861571466812326636133356808944453666587335324647259545879123817023824616453972896494001355542040446052276651742022549786520747207689570211098347746339888697289347267459316922165821113008710517880539687159649661305277854125141659180379197453143196025286410094176415944960618664263073124467019987605954790272289596488783790851797435646357908826706545856834381271374995609547511503168354771584435334591631383303343671668982381571803772762604443055511016823013606924640310122107815773294990786471557235673139019610485180473338264232707330541819549164486801272612337743135294154392058110909466240467514572884422445351979014684796736293463184215135094151492068048569033421874935083791782152530564162240423317272376683805410980465927085054131667690801887370741175565353541587512913320220870353919710414518765255199846650458149495427374769271863607987317164512134376447061598966176232139809546921228451708240634063475093511663376460733978292791467202123596024887355647792656976101827429847165938037949648629901799089961815199954399613401963404990134608361684350713366268734799247611049359684853283605156931013005997173591442603560221776047687374739215001784025270458683092654517535275147358860876291929234472152052678766676556039365039670163116739740612998217178277990512588623104988791676977242655713633778574717294501160870541170139468340328179934291351303068565635516485863339689892894533625888159991087243229695783389854715574004818885845232762047583179457318272543371268307483377654366497540963376427677182603767424687790760883450492578035878975530141961737197067349780362456365150133459705250955630774651595075263558143590732281760347753040461446608799970347294203753220815613271477826072636974628135134122089277296011140004571010464022895120388800117414678891193689776759253099480609880496986769195568575421309770701922114942079611916268730163362027974353155187719973218872530133307488089636986985405065371227697579249246819920908358280548666098796883411815508527981158403431476228749169889797663300438190427471238881470945003775743329416617417017606149800344775665333721074290647417809070745014726771399351197565146844725593317867985906597896923205628446279053639701570800221583344569702212000067086411605723890575966558941439772242842348911503655882460897840098484069809227348791218719410573365214467155450455672888389869371657816216733487328920001797885812701033423939829136130721155595904438268312401150189576060048461532633359168213210209348970140210681729204497414623796320027125122636313871938996292040297761763633228433111844953974391335268064211761895395298747143692366337889481311619794097052261418683222303508496832311553427193237278750136544470506730002129595819912230693510222029800622478755980267775282015507311908871553953166783440219802985587978481955612115095041498600965244851833731440889818776003833020146257047516760262488849854842229536080404081728753207050906656783079273386710942149746824347733851060758379895910572282957634291041906177225724863548907823892640730509325017423254511069578382627999747690921450566993589683318565921006778187428289332790502776792617227943801215555336045028923741870158134907227298987016900610044751980465363432493601819708967528384348853526205354151256802692532987039078797103408675149383829748227343480833593235468343310179254711398453385673633458954713947779846676827123579930038406805734411135394480250790686162687579763467779590026697742712873975313922804097337021019730906896839999009115056286802971981733601434494874949145825434286082167581511250067164323058804009607355080340588379553807819751166237204063062862712429956938780913547744414062660213394731865492995369591905518829875932455789150475942717855907723575738703851393068406810917545065527081045323884285304980464705679377719830953966974122746246919615994805931856387804381534333568864898234758319344631037277663730462535864997683877284549457928629516647313667673924847422620406753973990088670436703004889234092500875555508618823344739080463105155924138916780018445296009319999490520243767905829451147367112332260057520171897948080719962309487264567729359979671695687495904738019641029852781098557123075944711036994106970478022127741195464918583418069238891714894033130726442656961849385102129956734999428217076889615504644533243382369603976266336860710750694312154901927262793171337577077964235576306319753728899164321573593438160956708363722328282050553393628729969790912475234781227582783274613581879710300616472345853689417960548953415591878033757924779243936935828379072325777678741980022072981742366807203594076844399356063116766479543483995965091473468736834512267910469832686565292756668369779353135320084282565754134175297401308280006280535032708515690526454054420391727854207491620323363006330847912711142613363947468730019023570693619639292291946807936121350816700297648748919269412635503837861811252685632451077578359588920988058454146270309529868834444366313895949103605363230958167111207520820297099475655158236212684022166670881840239148563314119785665144066609861868806645962476277063105049961105038913442979076905124028515080855946913319292365575949409600502929033112472252160635156291948669506118476568481115611856424217489205741460978340922743835759211079979492637766048242776168409984752907747113008318197835777262354672042523997210616743373341458035209978298921482382168975602815887439752018271780573098314024679965834628884794609248840097905862097319227995366964239415502959798532433841983035223412671560467348273756625325586415172965149145851894194764746769082634693898805069852027659337042127081030215892937320829843311987354359941866842879034600069445842935965530676021618917400396865183297680214006494955995378199889568924074260641180428583712763442068788844553090759682874226836774343527802610825656003120943788082236020560546990497910835315651888529934131597717360307051917894755925264059066936444561250421672110856733487606441418432066241316466198866558634325867033010753330703966008276820478584480203161701199017451280435887459599204890795601958526977630357669462874457442014332055537158953131312445802771767279569199395532619395168168347766761348801804058645840238976209422810824904782833399802867290503899842501893724694044161227008982539680234321962265456937550002899798250779111727369519327425798266501389217320787997196580643746428514653121869215864716662961798569587485801889928795832443472322152417169620802682727786823897493471090408271640945090876060164012734900846048701959130103766204235437886329560677883674779821246768213822273204341747726623903526096802319800868308585794368512185465254587959727848781066202047100555266782682735648619048568957545207523881398145974284682454895894283626078180340849629344702192581470623939707297237386419398557480335546690926014038157193791662905171652222985200239151843974001787725209127986221191665211116275847624144053397740834530904675061434081355831667318516262809694094709446437606221426078467719458929216655882649451471002862802522052441098648763863882114270425089549113802724885544346819890644536281467186111267995617685262532360679692672537176977056671518714003730241190719586806072011147620327792913891681416323699422165204334074697173162752543686889922099232282024222317328884842174512626926110850132639889380419925465523734225578839068410130240150482360157943098101592446974409530174778703621359247899095478757825203155861775357331302870266343956056356319531548273765515227550823125013597017213663137153989538856668852401406058004559477079120964037609378349590202575363647558965394867285161539207658590542529259326786825173451576946226642509789215937561209145758264007736878763098246443673177114654035918137613342377290541665713011535000631131266496968393234493053890055424617731915806811336221433058360912379470505713900090233403528349467651468393220200499736211694474493585258841786576720462452580090899046573297499072588825680027328293317440951353052902392282668999540889781954624094585113894674922041658619077482759698341376226273952762124369451359330876386978243432252787111163779578552254162119110749674598177983823737526350832378982833769017619735874926434663996194385976971892270142936379036418702333690216710952658296127937659390654053876494462874012421248496542615494423582002364459718492172094061612769264283870460511760707312076984046430492119448962437055931449460457739291670320306142243625032476633568980320965896607030603584996214454004911502833537204769695102179046511160935652858205914604377919228358295561533408355097419756067625570294016625648169024305363874246171478521316930981703738572734373094631201198252581557361575591263309442959058978589875215478207424864195679178928515466007224935870211448647957268350344475909786143189381216169772174267973421982962774735418367910238336833049918782165812120310116980357355310948737895358065138639613481622231178788767400901136069806623969272862244785461025177111483997089215281043235803107030421963506390195695591118978159706522701336836093802289902087798381780434044950229128645615108324056984171010819075045610395971217881956713065539043009065176054029170525267295427856800724204825795615398017828760385919290602281261453308834065650680313506165278801019755172604261251738850538864743889732083308977304350065992104873067295190451921199085248102848966648480690019338102852798198719458459243318403008522062395450795063829254754764428785751422017040501042743446865761369937823241300379755890348539486302073730954987391748064899042220941167782429876678347789498766121888442626945217635470104075011696077021590150596310612091057125302507415377147688175018338226179818291164847520258053515738254160356878240713298944309952942101754366646782828605769134624319738245873133254982105367312860915335942195475392961802920737655561784546372380558788290993604059694910048581386003325873860445678081151113863750277225032827137235195671957347754868054810223329462014619233238523648123535947745497483053821899337085763441741425134234306266029515104814132370081592592420036037471922344181657400965204822026448313705055472485005429905516050050367952657207402240418677299529694969836092552784940943719497629742171132961509781356317336828208911044937043167218813693441549894110751428492504058380591490078421306855568150257983714418742333034501766513618292184448746670689418679857709797903107379241306657079940871399693134330808590327517310648534331396053976949167011111093898722130273022515238645616059106306373920653538155495536906675275473575980691852831964203021248050018752729290707165257808573166213271678553606010092334115239716155479894623859480204971803483488454722426390878527035188204499667779652215457714138147370872875104326866193543513843442061680537067666214372397373176791846941502011211465723673949297617911806321872287828691880337051851498186621398958408072690943320521407136216964100032926559333297140939379973346623548141844709728643521906919511046088519165259065721989838229501876245324352480288851124405723664426084326008042049277773292701456099303619961710154959317059531636984550179418763929478637590914334741120650553316182571204308542423697913391206728546692083044410043788737802161271897172929490653597654871165509577935284354449431442121823708107161080714956646422914508745578636917276551283245989477806539542610256158297062018143794243965916854729245105757439176724351482977795877563836193882313943950210890792826754214211419314641304242582434116249227570234624717889941823956048691597342649242609348516728312176660725168576113874240549432127190825205082287389831451456859651833992718473177225191468952547215043101846333456588862921224672353554343341131596197601514982226373006064455507628534898649273780826715457103457472463684283417760894604781601176422601325274571373044600536499988750664983924589555052204686328786539145829571672897991105742878070522910184322554373429930417645922989389024387188640260230997370256003045380481563071897521655190297476172706629236663331146575557639521122428617111599152969192721747109522286518552270264669126945282621842583394425207787924236923781599334256717992322261039852633487102758156173684357134361639166262578096703483281936894965313411485086219804443400366714833682536311887790855883358937674697469804402629198522439271277126611171789098157522173623492564680443126529208775139396421443889685534404480311355560916220057268088097470329669184684408801971185710781538589682776333704322806487008975771418636426810646265818314657837176506998373269653852128806579768936594529710446903215936031016021247375303639758028837650400476979323309715057709596264560483924239979317767491004070422836924164201135941686278178703869795153437876323261609011026658905467388082974998804184741493849539528406593734125471015207640864125820362758784990307612908625054725937375752677550223892264502606558489003226936634312372178976543376474193791372851134263703022355348445740753067301936324378942753885202711143001309904574407208140353686571495061390645465220434202649647399544349049580634901839386970231846651099314131269087335125069449611401044909784814835331181354679068330265238401663680571578489614450150631024444709946959222418618922433105145956537649650105214583729650383297905455942908234701344791831276101830568170145478417870551115216800838076435029931297856947563765385713685113141621954938478566103006188889789307607298977378063706470616478044005981444274175249745529665430798413434680273842644906490501990549894070394097850744223082540843935623609933516637845974979667207516778090829224813904019490668220230490892651631042394462296048728257012047848647417069333101736703925334788077138406918638867197382385063047471425079207939605154812749110320677453488755644300896479175333222825828567564691638184360598354050740341268873592083723144829374557950573436197931226306934176581055965999990562016022141952837695749872990153509565763346912747565841632971719128817874691385611582070553702167134665495033541299289296648781218640699850330166436503924183673230552335436509422568690374228477784958105262692642607496336958878038368809433112800020687959151510555341911231441990638860719580774650110655942093483297888650004185692641321205789667947908173951419551788583451459318945059858737194914802080715927993871592734033999413044961967902413195709614435535153856760003874070476203499514426342997923644941247337439955635292860701277744051544689311291593215472732771494535903551024980693240544840347084906230356516233240121197091004305440129731488982752962624484251343054925763259653907063823861097104305829973825641832224314733517118397510477069996232228324872718433121552367226707219396221923217443945602837906133892589973509513741633320450557218476533782004472495581617664074223277152732829199761605800038510200547171794209660528488506882547060483628785000014820107662330475214491062741248434381105949053757173871258871406148463323678235752216463266883009079490089881825679202246231688862494568200402924348547523830850983909787982475106450161026752044295572862628676379939326845270466325873196574996625231639170182016363956780979463099990858603452961217198684448398006596745618315558802503310803923103575069765914478675791715880670742370821749856884671364666519936793705641412786383400974542825951107890691596710932369579893769569248271271768413779633196700502537958214233414942782070972226198807268719963748369359159374570080109087669228544643388081962307630292022200013445457928486985936634501535389424822891419265506199991233248558249597784225714860365647352518553684869864453837796836784023541175661165885924295075723500939515921045550217322031766571678265170128033253056145751360572686016191174533003888367586373084863515000520375097064010353046735587713749704928265198262273443403539827635229824265584981501915932584240027306222286049724834980033381633762660688101811121279379206299565527935022675300569720790293240950635188522071895460793720756698183311320913420803879871575635260556480632160947708039066937717409308513867613068744424659424928009245813179435700624023073365313618731626767265143915194770122478134673444336581396553579344672813652228175301930979231418113685196189058446147289091560174403061831005072213778450716312437257417497205313040725048290665652013614492045101022349825619770704542071316889312379513545328561933222293090015724713854653637545685133525131595765109288601860008364132000343643454179844757491512049374822460261614325062694968788763870358727011806150149362382478522665262138360639205883054613582501709321348013743375232655665031637358219384580599646224884177411562130462052525143137956805855708122469694588381277058347575919417923480995955924902502695231721708650007253729676969491897069949106424287315894917156890127660528208546869509843888558180354595341796427799774602417297642888012568166898625514870096211182334909529527390413361061813713581641686016219360154572899523617010472307448145184187021447536250392926114052022283897359858885525874648131351564105713401508301680143269283862042368659109437200965827763291545938170585766470033511004494832399374785468370421739850000135648253640422387332187263295002357825227378499433028942288123592688610798312524235371721243132047678893102114644280429224608153150888400291146446338667969804035081357671621679494747519806696208526800355615977304057430330811429196082410219778428628164237926155300945904301709683790589334250176315222162275963859994049090961487112114176308188203828986697142056391610609241352548266831203508901731116973269444467825007069205521340898726622464005178252144719058388210543881289572549886011145597637698111766876912656105622855370399186355736277381546010306528259113294098519339585061269988892604634004604439295217466042565235347215844254658576705262089394707232521786938287335023379242367315527472695038900204618966510052828819736701064987196464698522553438750311816974294752211594863139570835697851181472232589916255403856732977831610039004054050777688148013655404346821966373294171948467922428116194194666836294007018243641754532287814589202019774004922434324105428987121354625711690073538215685503782381772356144665176088193672042756598177222658991416589095019309849774971056365877981480754607857259943984104188593189303407842457449653994023272010500835603620970392292064390317642364830467011112831358557348205670361524914084835958016196814726262994737327194486697250546430647840768854975750691934428764807608706817821437169886771995937754904688343814601471540276575490288615685618316717610898725554300227740309154445234132841452111945232000592598811073748381296888871621987228657036605160423709035624136076962506740898075988884551875216325990373280779697731116959045628994020051759025195314843509614041005533624346248055567023581493074697659791356466351268733826451283885934031005009063010754705037890317243486383080982785913495418626428966650418644882625350550138195398053822570698626937541471896797249257714838694799926284221836564651500158042239950585564243635495045256612903706953484583447232324311374044242411512926121368109503314923295766993308555581711605402182033076854101905165373964655366106539700120932375580959870302202748510781754124311369536751594674572655623560196874470896580886422050033474432424271686394714801661947789573078682717364868035623014187087301726650451596154356830195657915744374700761607753785786245058762748165687151236081232838914201197422957152838800024041420286654211184373929807849998408887524826963758818011414546944304226339349934205707203518709031920322675791516494755049735491373577814819672730982880764869942480894415037450279301849411643270734061686892270164771210815135525643653079346530319684795064624974503745304789764184141402289988623008556990397634975171759887894303687034414468452937101577280458923222002020449255038255539589384336129656466012344091752699378990590340341608514687249282735913960694050264336559327321827857388233482573482272142471470238329780401195937075240148869887278217834565239537037734572865490877283895181755657968789395507322232859687652850354307194517363690843482527160080796586872335464256827986896565385046586511321122560234760660983295136256095562421070270006397702493061488600431240893382224846531289413881102651842694085869904009612280762449117534520127567994571544671484285048919185250106896941297958308882662999632608040775134850486651368584965850658837057068090755466184739303569962093157895705906518548129098735956139590325179966056927293679717930795417171627499892388746176870018073456020234841602768527893642861492049522481544710899242519189841517968015749961362337597703649760386092800159174134855360970110810567427115560184260693437900229438057517272013784753888243152414200571681995563168166109146212073894538695621592611592942527291852207425280383143676321725423889013688903981830604416951914468811970351806387573033071494635374658849057427212558087821742181203026689970893865324033431094053818411714020488141092373351840062278536813118955697425258815349746582051693696580713166331653594645182636610264217161052751480693319322231794099500638957123762460777032042596428418693335565755708610746694467137790759108075509013905318242177512360546246090202676055595775652106174046322084352697138135739742851096776524602925839273834227797617012209577811040729255590446947937600653484695988660330369577334001218506997081226146373171559736117093007134710379843584606068397163094516023565549166394210074771166366724811775211988672669358662018191219964359822907583176447647647287127412321621616358527454148785259667320216778755358562233344577434571173831298601433432575163272235546950141657441374068620603748267411752043139469245094203910414644501071905994198497952143611211420208853885786083112448314621926471873151520586254743498410677734446635160290498665046334183043008769378175628172376135468349792912127354056382252164973506407054525514922048381812179065647729771366119225477017345349102674499762494567645579269448266613076254903014979773833834577344193014521578680820306218437354857832716634106799153793494590327822064124263206576529361582487232992891518568279919638853854785219395002872214727647086043615518953386376909785598788617080676451399332763691315832696938721499299723979696133131389611578163408864957545751526737465281705500728384690899549984195237179657712728797015610208130247850252898226497805293772305654292022762999935289489957220560359495989580443438238965824293101577793589947650716572949597086129365430636002640635078996084899729636187163694219855662655880031315276485279764273304126862360003287667145372711512119932427879328077583626222560311697009786028982905623726362143933830833750935518611974464918112733089033989015292064401070156226685778824007224626006919522853876152868582540496333531089434440939762751711432086204860405206372924951022880339777592868676377790254659088651237348774371208825126601862324563639647708739725805021211906805287710688361537694559168506151152853231574310372807501640945678066487010004950910166060367601245844745497218142009623509077645294659265249362088206444413967356026105936643237623570810012014076485303691608617455240170137397625001054521492726451473197873797171618894582773706888235453895727710300751922416238297397755839986104356087955258106897018558885149274097718816298822755627849604451775553612427748299938838784772165497122442879065108472970795413053162257870056188745073198671195337051102148932074423184157355189022094926906202789444492730272215429341209271031774492451047744553905855746078493557083936882194108159945932074164597051870590806951312921524854015135866665964042767788634504155163092368734429596773796036450967482376401109996681109215171663396645195411539982654829352535616092826803868135370940316446802891843854726027265794238799490471807368859299796174280459064794092252407856203475503990751502725280349254228298544425357253605975251239342256627343239933421279575670900983744718331484250019604534719064035141710387382212731949556948897231281683064328678824079744021611821190476080181798500436260115687901203257000922651736217595820148276965248529290267314179578591414526660570683540619180849702210521067547569457646978929519240601102165415186848082669741049897527137774445931297461657093457289357143408999852860955203900735994728932264721999206139344738901718416037683809871302247191742944503387623375460258188566211553160668023630102997205759774651859903713545222781757886118960702819581049359510861823592811395428086208888839334017398289668778928965579163790529172644453995169580484736692895543411514948461972876527122926959431598371370160918245607389530060222587554462072712761573863379529836647132522727392694580382904335972572017859703485064560287113070168432301506973530221409739652644612585958756164421387018495872036935338212315533686721753084303738722956776643509238595272581481857442817282590448324984788258147291627551894825695336611510345958065305933484481196962347410270343033079383139204471139501780951023953211407529190110456436205833176427398551154099354270451934163291257742523350906193537728435805949630871888333940237522725045642746018817659570845061029282179876062432127178006299824907052020334526723335979712587938017405814616414357847327189265536199649694133812421305458754295253826128748141214625213832420052315349265561107222622194523487588564589496502434297972670019373743179132489248914003280262303534586414614710337827423883341166743374239860418229368325456302584539815354259309136444102491547777415322728030131382557167288062356709738996440176526998302663454709604325803630484259486268512376178132058974074194471394504951883756088810083305756542623128593605545652539654353245407269341375369644207732198045047954179408631280104298424618067521743416227214094682485312301564471426765906669934860973884944489922762668247301139322228891764351374932928707451299538502569555555981414369671668387352962487369675005797401575510702209714107447249334912163160261997848106033579241339199254563981680742127211927528623980650234811356747779851680939196498167741698672622077226270760854467089311462300605984846942181271919018808333467087118077029152193118883504900798621960004433064010775427791328846521790965524514360300095219413153832733344061372578625011305036819763214435010898009041508364113511474959910924539572157125480002740413366955052182195665333076264924431810775095850940328023707284024386915167124153578495465217801299942282112288595182673439332717730755040188230348573627436285300145869963875836276260938208764295625570530273941675708178061503070880492268021487307509480501181508228273639314647434454318201264992319324419584385221905061313656725460407845797354846578986883004622451095238448042317348279439547754012349548715770100475161831981762732144515468963434468932047999695866870491998706937813747755319549347062510330323367243086008401040358605607544844304702693170490969210013129640521233776126895336346058061114480019659716403338301057437838862253782179305575097219197195453588834410789599710596588482679599173721270021943811218454934723061087897415559743549441997683726187230493445853179370383761058987789313044624555230982909050362179313936460716869511023801599066128582361567727313565295520034301085279744834754134065489567845301027394346846015696267562782989507314465266778410364878559322832838294774514965825280829251425441954789920408182761632237082120244511196072772798743979886932047819910014129383095279616786367207864560079367868709928861923446550947939816134938941526109833569318574166051742635303661308009696406169527865333952063849422303040286149081883356086810135656209938734313415478388087933745839961359604942829048860003431695846018979237223782235923125247793119824293762287988501390159376671533007482282290859489728272342532540129720919637710961429832225503490390790550473090029395873552958628062748481170287834343509251646461466389029830422359211925079956998954868601719968820423828504700379704442821725974722885994376124704617478822214613741779056804520688604197841078475533720893660786681326380121466946255083173848213089758716022777048719905391970177795298466104204979404029355360942431748701455248601775917567184855026357361309937382384785253649378344943868223329109960620041390902068789328943141947774526506877740891968466762185840178953559540201811855743491098924451531591583698701698145968182967974193127533916553216191374121335365760240133433739754196049925323002362524057562091598118282708507606482692806819741078689475391063207263084775253399951328451426200252823960369829935960800638171766366775972156818261780017856969279306137968551076610146698435437968627360285666213774914018699443636450889907526359981413963551816603716809149653296015142846623367575396445768064625264913423947393802924862997496574546297646538451367339557527591117805242349345912342731125433440302248051400504306534090444812274298984445841751570495085668876307787425585287334116500860255270484967962015865693842811906749234983502689592515499096280028775708099171744372978311367706878014715473329188495681174606202356060566649868882920376515666311804418797474283229738920572943700751152294130475864094905105088854795764522514402037380789452482578391156143902189545630769891741297595887389863876224816772030597514014078637670217206892012072035114588204930978509438078525440641512732708879894315167410052923649756662937938653756794185640040080241078736179391980278480835071890541831070568537552907062989450787757277522893508426008366525333113448710828061247487040962627171905975732244784446475161238262575465268789249395859931597406203393524155809012112739430309673592826955843263829369383684737753404715968291893297504714557130916988419525095487123289243099232289554947398786354771417600803967166623967662521635018771524402268947907442913657740450313265228041656690229419990385326649970567891062968431115366009372724416781879244593386377151425634284466529184527351452198180008419355549938178702877222934386947393365763464903849137341678476954417000583878234001556921969951965251412214097310476704879088539259789239525084856118910248965115414366078663928506574324251134301922793840208768203877827708035377550695035424714110016299831988674039609416508272778469116137232258482043491478906950378707095708293315112460356743540161424072619718809208455118596785553137648677706728843673509024120919107063742714502090941776329319117974046063526817649117328880961314846915011583072735325263953263641657543541750846579608171331418684594422325803215190328984985552150240703769089737310397538664548423526940559018733889513296635851899973966400390770968751168110408872518672299222801682921506864467304063770317244112909147868309719772492513419186477643601712222712563523553044193329646155636618454395566261207585790625531514156751463374010657629214711381192723026076529562804306843518781741553751220042388586946579812183647583860529102493994112558174415302968375760723275638015053796248686522736024007535094182995924382690156092547988501896609456669497993474784854320019041803859919532899448457425248335120961307678712294357018395071774289620638801437463047731398325309457990226410738257876444816643747966713173262215543277816352806776987675727780611047648605813609316405713206171489142329263985301623091345495429936012922846094992733589970309083068653898361705760182318945388512446814193614486389186551586863207160643502804168633596641938055759347689020970450896835529537645098265361357463079522287196929945235378414374899301082295494578964951562203616659460171041792432594254401715568567371939444315339910024419255325860554891759359999776334703220453237817696836006158959384987661869809582687383204130067456326043458500466556601016432231217504818947849436429129685755937073619125959326037164386538940058360287410907940534544132387673182146397992298177432892345377904523886148449761896040854853272248835731259213443938709068772298020111832804084979654509177617957508171803519325689535727835865209726365340474749876866834692164237775647325118901198613026790894862345019120742821718448986419942960056504116482122971245182913583985143652889406383037118766736984313311845631774569190999020689994873304195488715937916597182041062912752699005064314830084645467430224706142718466805808303200170302303888493182799443126652950547608529090633693961467048276018011863236911080729645181737523805875586746767277239499034114474602103601522336564464532496660056992292444261992583144278715090018848760441370608580358330549440077662406537113022347664599540021277775615730786446319717392810277596093551242709579344692999992095540783925626281111499413397439318381613041095483013879989131085481603253205087759029240580386703783254262955386695719668041320455889823392817812404001597813455468251209907199948746757643277130479383415647307412828082170623709587728316484708076012582562426747454205671381550269485112442609767887034992033002982402056657264658421991809568846094529582975302994666897949004057278601978905953975398181978448089376630545341132264457710176928300018988908336834943981995375348652248185419730025290687062428989638646840533795126843652489208280723235214173636987965567251339766805236090718794968489651197754079197118067749285096702295906483130175809047960331581888407859872440128454591288415275493023568804341643041787288694712633082745291621914319330564492016885317624329860052721245379285507377582726084941064269560587703710734211941736466882086762188885004029830830167105653792929129013899662667041204500725303863652184055876270148551999646042627955346898841963640278880822225765107521371889283494779258179825054705761178807909102347980362852119567063578858612290713299465441499229364425392008540102163355127942964985215526894579902539520821106116975657368613131559795182723069473530348968371346892607272549048466398737158039289348333582506490762773206294203962132964130909867192875488035379402935674830243691904982322041016573713939252439171320108280817915312962178363339727678581373015167055955348089705666845393672358323192914835894815312008723795600966081204265081822499727216869457712460357917567145012530523135645141522791110374034009277139410938804520677684156259156058024788969268305733412639311408711758990802371941031504361855569015262273205478605320449725654102251287124321293888720662362270933734750616870132337347282850294424670774549495994494204470528436294371247309995886024888379775385451578911757582266668019069313808282623613404227471378886656459929572060868012676003621537984922363477999810223426705736865298246011896334363742506149966794222167076580858994414868522048346593126137302539271816615390997218327578042420829537455735591813023126161128945532413030059268403597562550880172449681844433465840958374686878876315448463671957080531580986324867773474510835120606818721619947919636403697740601383904801718065296616886427866554117889808708783174282155632206963618774528868901223063383591034799362155729740117613820574537065315525539322984412687703801192342807952283405287204381004227446109582161716099685042051237531718653226916134858922916336575848481223837736969411720195933253235836385017219726299646768485882494037612182003187189140868006822380287400133358437611792766089104086441888330496423569251687776500181843334567681162882711289314483603505200413256057201439849557251085856511981195184180866328287474841722307251801952321759353780874113837664619785661288124118517132129484053578808427083844221815750703985815837036027173235843509321300172921734237923138563469631011801528302518780963539179788530772054277553161922615258217611609345847425546899657201979173222625435390771622925704492047936039560946063755724187191917649772872794373014046235688874273002956791891446453538865798287994404174031436350650461775891149926792389011625945647239550587217979868283366976508702981325471168083807039767649541314025866454892256629972731231240830304784038835129048493165347446290164889456632281047013034985373796817695426868631063334181433274680180391469840214507897826359437472611277690255048538024192432296992391243295496425044740920884496263387026080431146430106214124665892603558743545125552758478100548980605335143087838338629132453389489806830566456586681831253214839323206159683857333747820687314305306569475485169692981692474437102849852474608595327781595970142058830257917270665110898779342925403246376268717829884496942593504408075278519902624441081312939037239373875620962252407760513218528876792090541659970789608499148893995131776640449909389942269677747426857463444911536874366363552310053086285002312704492665868004918321225511948069648332990851456399219202734004618590331063503056655062865271624762497980970590865639028102534827833517946579333230301004813618797260039468793403791651007389229277955576305184193707842509007448242597047218167775870800488152641899256043290872651331492565973695423811784001734858134212018463739773713357502378051210507874287957587656616797074789853621540770836768110122409404312419977892793308489105104967107269419912481266209468560003206828720674133934404793664334231139587801727348398188558636439215300742392771247366253730311441569774948042268958385751433865041039618133215491897291611869231219003459740459505199523922142385920567256850991729513375805373500576345037182562217893127202923146434610033703992647486341827339930104035959378492591739094914269322103968969748905276242106737171432791178122462015238151181105153506091201889400977326111346165471960238881356683222664483237420272039342480533081101475724409625489491443235688111471702235726595203992384705108541492400003060670621232492625251304285628547096716194579186997076089406278941619979338606491366629248207203046335650302712314976475122745671500802126798905455542446146017438705604484751067609453718894602675372544079989509775475393426992494662834532154004334034928242357864358497057367721448838133838547535619282500089140097562066337342897457599845418268670211363909880249882644625112581924101272725427599208199317628791869898215941385758688520852102181949645422298391265233682753908449485917400405345257657885860315478866034277541252626068593763886447614039968645096291012766751757845279746143551342607634940551479660984969550922686251070677197485165458950011096407565483787991626061568026960702553243997027743593255599187692171187763728034816583146836892059214095528008342995910176401558663571535443448545995914544959659623828115524706899382245392284920441288936241718883844313182025831877062585421284074763436550065894951631902578988237551066305738273468553457044291471258131574020835768912354469005370141659711954068764810239241484866387460441305754841295189985648350443627211732534004419345082364688043133509946951147972511733459679224685723501053014136418953955648346899630218361327591440433903947493211642072785922682930836202820468160246406043433093519854689382079938823901905744257249201133051559825751839006932811891227642372075752104672620063652383588644151215412613119471769817909305900846191233844057603156685007774467058487146588182574640185148689687547740408103460142147048680228844954261934562405916222757876054576313338974276440244243093461631382101058310113961300530907637856475548848554382463251323475016502410213494160411449095706114879903364417308587090535753686087327299618765496596539708684619590233301772255223671212772252705381517624955732954146852649024204740863030616761809062247675460622222815019556933158572752702375954173090809541575951641029788342323015362250154653312228517281094595196137624604333963485025907995251186940747483834326538746810599418879536098267570853832938432939633568073626044312185898597818035637323918918398580447239681497512005122844594724344015374796608374219684446384622238730821758334004408826249040292525766630042362321139505482769934242156700212165620393155267375285761673971844901445137020067069647874715200819911225042504488513039881056310141968338208236362202142008657179916393908067902592072657050637933018004073391559978618247517570846699628891459114971086035954879283628068132566413627082679398690273251592095933309577249098401449076907508855414155381296597268265569514704576112631933718985079412757557834098072416235857807313439375978077954044232609528726825513851030332174348415054007754925992696143909854350530936433993363905353675037220350649883395116020574114543437265547429967312827927753190187853270553484714446520408944408868401145848791178997977472938456849331675417370858563086630653499256793647140861758807565540057075767582408680461217680537440712608725388748778058245854510723723920859251878430635491551030061202820230487837567589474285464229488881881853499347959121306354016848130133756567922115303582595274262576050438193252542140942604050143482289855537271992054090845626477996713799758167515592479627352563275142421015652958394050414207239971537107495320734950763541206123272751672818312821204045352674847905163103857780277116637148519300452194848990147775050013116662564637612681027143289017102421286535110869268143120072329032141565770397299586417469109589387566718236598644762654963495981934233442970569189125082346118388887818485873674748907864224892326686834534122514147679906447081314094361564653605304802190844129613027254146590660694791865550958581918655876849225457084379910147984379276552493661815537858087040536506223471874509920348651572457408617714914755646575826056920552688117906272057442777103515970395366039899360548130110402625450191031883493773388875759863778497456139040053607873365847933068842219246460869946871383044436211938337514067398179244610735809830101998940282065795035663766284567090613212308581244252305578257673539604119943813511177711653215452577880201253226120816163228577102601784800802829124255986640712511082635208147392050403327814054019280476333776185163830456501224810747784979758588806566117976965434506925263580705390129608068485764405475875427592563296713694825475460024735805166355919143927706814065474748934035106665224534254737224754488638977690574534513384173322146946106580962837607834085739915757813508563165251370726478974980151788032764542194819005087671621637285804425186334194038723531668032148965180928627310152005459712875080816034422444687425569789387361144429201501136370278585450296214129373057792644511155243260582828202114534853502368493485753577936048474270454552620333636169696693558155672463106624727715762989558516808822523305382797597680425591922869353980030788678246259996996290332930642193015775320553303692627548582146361850293890802684905167198097502289058664064719894141442645813845935784056951753557864817446099852521904507423835518117166014418014923722018571616104014841014571618841904718901898170258963173488154891960603024416982037015951498630988466916258125962177827145433063585576996721023931689681014305331721726932206445929485874982061589386138348145907371495722393974484219800066590925109182253726956840224988446227192199231253270659620385629222299404399138194633026930483808609887258691313735324113396541352179131685980213738674481248759652731266562053891226575660899810998720052117306870934327977091997988839692467136950973473442281369863326776642437333388475025572638286183143777388104237645067494974680323065603698496251585999692746459798611763909718497979538139606657968065298209070724711834957611602112451888595484418811338281468082414521427616482877137969210942063508604085793169353929678560804962260091897619935015933942586860702150145488015578296145963381579292297227162340610847245674940514902935585865533410883712868764642477940611556056263319010603132946298070864475033365501847818506948876201462130568010609523687884335142735407377700092449033949569866665181529421933828429175467105122919018181420708138164946188336816291890704112503947499257390158430603886860966084227165765994865210183150669478004296812287393627156218297772231516217078139188199853421996203429157939427343032866056726655813165122914368256499173044953428465998635365514821125833992079812973640901966695753375066697228117122829567876678639389899538810616324660901200592348405492822045947623014458746844765998065214945470540616155907491063986224579311558806153702209671023580681921293841160731066869043027205662903922056880565534537750579533031149782853286490834954658062943663598463707096815257118755230075597473339429393798953803414588783268943850241821047908562475865449953390369043755103067761082739596239851878568569371924719916602362090209157731437263291217420310235663277832118870335446793621332988469645524116536501484332936002010472243507595394667866630129520888097920847970640888366211814191689356131732457685595031501567602568720831910155789927599633015719490413701271883885508729882322709106814706078602344246927495192483586014901932556770145457146623311112852533311885804786028761053562043948052911816260432267432710738372878608977284921846953159513517970671133072327699815749985804242169990171504768923424133581152836035797434860302452631849209325747426225180795482171415400052094551913533517136786156558949736623795123401947799169967451509411980164092981573389218025120912430780980046466703070035628390064019284142499896411647690423954659384310690727739295871296323442935328789562929574321496394680962751881778283013971650236532423086242993541748567234947229873994793890961511323925552955564266328988817832461635544082633979929329516201622457935235808758216352497060570615002600221574963404966483851414730032146095724064970333790925636258762870388436121576249603730680612833308599689892050709421205646229555971859951245096887720065604741383948306555346679647749281963974536753857494579821388476179344661719750779589431685076642957592056055702973676668071446413704855268070510096474770264326951392174580626096499861142152920812738467371707338975880768682343661843237547746938535950442846344062627585998430326405252180945768697051345942789083851950028091148000814090954985422453555445588964130382250640534247855943938466574099898917702450432691071256964189296785510821441964594596144771374787856633667035425906292696620165759274996508701187248966694115617992170104494013558903718540247929631921370965242523567855583068868616363815025864217007245071671442589946896441027897414168926502900620320757534649430571548751549144144747880480593378412886093096085315662469146289676245947989764458665095294976786539459070735047711253922839525936381614486995703673884813819577044531432612104107941466007838451961030610687691224244960345103035086857431370079646494457496745076857376207121546997929658268381251530552681998410557755174239999619019021372792880552604344060527822788145539920396996994972437456415023564096039071989717376762039713813083728249847929239322269781980394853961788645579772026236510732350991236526662023909897313448390240030037905061473680627529309594229886296284935586083067490351389437290459789907280971540368134968989181171758100839461539724870635321788619444198718853104362517227211646595262774381479261561707451689109725119610279678008960556983699005588493813642092955451924530965803238873149139182051842397769246784100108080050481949179753662478871146456910343529179832980879002833338831749552517637916811501445996805302928113249066933227880504815833969340764715008811023793967311182093740322738437201964197502626631448498642419094556646355130311443233165892687694667678853067252406350038212811384304959699126062431708287948194008501736198147742796110779704496947842203535017039993275138411532323897373214266488038431928625680848334608900344228096481377419315733599430662253455987697040371258399252881373968092140931934820902679511988333889624681182682717274601170456972799580827808390596530207409209063848457235944675096446930136372523878383262854459799457448525547615295319846623392138750982284490720888560810423205012161820735926491418716109741720453733555182778371354663615750261502185542792092760157526158286534533393840090727466643141754717281507967884209105135262546680553376990676034178435408801779910021770391089945389089908819113688836282619847873981295025766087860371212814001656006888789128991904106800037693555208064836765601801545913528000373692683134281709812216643456959825418626651448121514426967955866350953975188159089753703619241703496285842869253917085440254480740726037431908466723593464326517842102707255666368994037009896363860410489742799638793462728690223334172851028158721660875421782428157934660755388111059597427909775003596328791683484743116730158898107319349416004539755119864059000973960076818931819952884398858228649933606715914688838385697977479477418626530784974806981682491587483882588553482423668016934001977663131890665572186397259336927482929737117658410240010861530438064527140018149409812654907163078514380718086824053688919576612838481611092552333211217289255859959450930135858915264622904477496716178075617166243641897898066367312385245693766307780456643948434252462629403647092037917507592378917708315972497519017738489598984971689669417823467528597524600954891390611077236834443576452708591333007232167706908629870002934333764454361208457711301072192180015693212783838314309572838213878775643668126353088682722035213068851617963831730880914084396035133423194284601493555035843444789449640833216267742552033178198076761890658622767863505678593139359645371333526033434426085538709210764258418012867733946233381063298608612399744874471525065748531917900274018465370008558243808823341158720532632128799042181424798999014965346518716563738424182946904610182945300288662187541591551073785262981345128556999700943086936838395998084494369069244136947908051103905179654343310460475553752902354058169585538621052636883024387161936247567312761243848090387619305957080070011814416410185985470571708652498640346115178886435701398232805677480402816984690580253042970505068364104966722766825733638892551796312151420066881880733767162440680729391970826752066547214258718913122620062480772284510074564598594151105615503449082310783977667669089919308426345475038263169084571205357150985694650475998072452749168997133295243047571418457878186508018196427195336938406596544643112338402063446583945252616718487297465631814965508134960725383313151300913874306964231983258707779793119874977036611507032324167585524364834757122708692194752944738645009852993309991463832451684299030239759134447980634055730952215230936453793302383059034901641794540044269959246627549392262936354088605816224062562632796898647830158250475236526171315974889137932252578924723052809001094867226024077495631960292287914301174360048131562746483279872318705610707473304357197702640519604036496043098903090039459405656585367015925307860194395972849394687827386227054502575480532806353561681914247703802320459922690916944636349935181120078302390687321562361200775232752025089121742365865732774094547633919917632694176490680820138474056101375562549624475543783736731027849588655919988312427384724757823255679760235034686994046304480449400882349121788490970813936317215782518309117048416394216829416808716599375412655229526932920181327646140480727763272973341569012064224310870459457966187364375367910941454417726054829755882717912927056818408307784494253825361466399173529948467290214934754156762346180742155476729514897358604747410543507703733505869074553491863892277538134644814277475795116545888793407697278734173649982474805745503675822674012446516494039822760968872524057613716809239101058215660431556566146961499527805512315249090983413835794832058241156130633721624983997058806860326042651587499941231523423069204518243180797206856184140901390958998182788696858781290258476589651584748827280906271904070783546491315809918193810325559718851570640671303238119503226239792587765404363024392410197551261232002716462456816561190438343755427304756614057463568913368861799558746621485666954263031137335831496794274075920104357064398870508048658374159959072339061102711147680254921163809444228958531971067402089737603836503258180370312124139146573572683207795456576065254663920697009496494918623786817993305595548191471681311876381541721687038522517922975584454085788119986441627253679709897167313988788415456099171515474725770117856779063715784238827102622087568756945507501982509129527640952211819302952299891759712777517199203732754693454175802006340444758401174688583278464063511710755284370609850030628192239560281233001757392313720289555920029851694643167044900388836041346743629641089233524209938450324932748801823797324825122513386543444690763896845157211151497962091378255464854743894414429377337352732112642211045725602430061444149507049287761193690189225303831732745203870561941704627608004231830385000765124087654625239103357988933880013791012417734578571334760596384381370900363519689268033911733620445524812229372528139634218888533714361010871901885091641597602433161378275436480453942044391912385584205782457352559230239827370305826678060670982438142148811350603702800321880251078790191937664809443402530365703308340487574506243481070675967287350731958425860131851639129587507739254264546286100376448467331714252838694084840538400039052061829514846353953714916211266502069490609931623226414473558570220357218107328223767082295513030350741016821036548555110191532495154574760136798059475746140112521540664559351093793703201536065936409464156094826921500312364393159100809288944480784240435756566437904454086802269607868449389535473572013830046886503132856872123806441860152740163687938916308889419443778096267555612732024562472468310945968243091818529533973632968801301450340058599960861505513658635667465808477195239886604219667867012288784713720043217250129921933803666240081876236114204771032570624694375785766823608372688443639931913032849339025258705021522274451282796287736786772594350611665270151988355817178049769400630516576495235047183452176871639113493117619274368826051640111792763464381958293964732418219820384951348216304664359682981780058946433837812850987702030826110800375542328466333123554579053932190733688956356609318494924742015589807079914819736485677287366499442715974287433972473864733228550410314736119677495834649037277119035998555844333663398014877751180256226071971266000442231029020544365073000513352070803890853376132802676356145420338048495656084261304915168947404663282526696344077361314486743295462162817796118377815635855768759130681674203400489021065150289467241499684366062083565802721645978909478630100956634206237438873491611705874090501898958370590855596754867931908454736902277640287370550251425514654257594056227679417726265684020032785856707574676274195930978537810650056834230635983131232655039971631335722813961809015265881946433457174724677850760423873889307916584160278529152436328838032439146241428821093267494446842103121291605504750621882009553739490290839684931746247034360930109998662925043840061842049036494363413995667502595069659520786561148300456413593585731187101560292959024061055926714949097543759140462417645719633428340183107767042327777865881856266313390319389319505483772593384393377695761044109178240876605971359883789794952443099205516356254719414650311524081798164631711673694219822702001776083666007889730212764735144068805621019131842532250047211417277826367886034137142039681534601423456093359257852093102359280428139084128996833411394209198432952459708272536416740158468461208647446008502648117450107856918367441889119461033978450617874126194021081856387779725029132495580971360613355954744111691379141918431311565577784544716177411976199287576883109237910897166158102768292680176517131968847262499335599491674991000009660987546779063795529775425341774031314386633565488103151603693050572149984566203459348226709115597026658008847279047040856358832922219731994938300003419015571236236218913927651622785253942058745558913511838249370560639003420915303799455137713683147360433435078554183315321522643131130012419827226224192871704556383233825529828105423947129861784786786842470669325954969992373635408360638652107613412785518328818825828736465370859533097810571868678942228679918033286290550830989436259094715305693522525764717666123087137078526541817353707274200899912106332343901223286146089594706448818076323256087955442821525421683544315688614647648495904896000707993046701048847721452316216129821689249638741245752149073870143943672016080161729521463763818571602443145278019401018901046191081473653507283856837568177403547920390803731555294903940571889997208842442518463210250225627257044563571365175332503614085126549486467546620384105885263191749193970062826554103461468884568375757511532277508255668673528015138036999390005365744862608069147305794068816905895505793844217143243928703282934506803849311768954979248371153147599964495306217827754672269967195158111906480676846964423718564271345090721382850808793202080552382478844948084098811860220296316560900448606264001875638844937278850653934566426189298964420392505470441561611643257736490082335886432365336547228171024236276817376789885416186840984230238548101573527535885092847869034230753409368597060990747670544590604818440249799413245926398864850729649946056818308745987642735742414177734588686483607132008826923945911526495754215362922759191028829007435619606329153342138926175745976208467344996070811824885321470053757485676426311553932937424033767882938283954659056843739460138000374159599844583309993815312920629341881021728378248315558036894095094576055666480172671908836948303542997123616727093874631385218988462542816139958769641855436865528819175430888317224514245942369260121115553216537289659165477600389091352976679790686963959452703735681436797441939001619833484876166712904667923196300219522808794808973689075933975444184032003209131193213719390707494794584335680170507130776862617809128854912589016875387680706855640291106830855487845542176235099175808757924288410053087748792525855526781741845455761687573108625174578011582537717547356974554733772631250180495647907628708563926965091864606509780630485543674847218849989239611175723534942793011871222510554718981792306283594839865195143318791334869266365046407938759117624687148246568507437117086988454330277926848659195384313771601980424455348833875818798001977247996109173272130166880084126053248908188936979834160115830395178852934371014237468092022835962346654861752978605747403027840474331297321253789762524471945892278466170590273941286184026570062580965748445821401190128655404949593391525239240260833964852499635167342949105657089338821904278770814967924080171897811161527678616541622645705862474690782801191096168256091348201153752900114732979226306172003489189143407379039517550258576824629849695174504112529030676981830397221869662623097631081896018754545180611692273615016535745356401291988645462390671778377521336437655094846543859448421963238859913139922622543825533814968145154093680786151844006871695083290224383225395006697052119590974768368799780412646721683224884015345036909913200521757045183099401099934755073350877384758149495326154958897547237313816028622416866816303927677284848582835418499955774954776074487282838513391311478150699961060458741543328509295741342115866139996669091525629024152071140689173398426957145440657499871746796278714776129228184438017510572056453239672431616474414643548375876598079735905201648959158448232734607577461551631586313982398770043684613426344480606788625790892125347159969414220529418560792815436977729205899633392667166718254871014994522342757226364258456731896026298414473391283812711605673835487228433883212038409714433603830663186509489609772219432935421864380497153659361188778978704330463833261188896441686271027882157157548958482589409611897159041739260990228353139096312244045018015729301175260024378392161366526889156431513737414593573201603049324358597130419945567535541775083563865946474925449620086483325614559026257152662940022477318123620166821892725624797911944024426679406833592006445522895134478359681715582276003879928196508324240020072133871488967692997640225999045076749894248392028985775617071291698062623620739811968557204714628126826259089366947503400841630622224923801251909128564937576920491981998061310239175110406925162280191422355098325481131077466943929315679495014348175042483229125406318899741171429438323683986362933558078736004764680959961777855809460797045959820019049448312212528997285962866788375910811172545849276780024410698244165526651185605461746879230613113196804626915096649047335042759829309574055187869463901688372117637988763402078397651726400275704988072874194716465357690245613791744040983723049319935424520720300255567423497612847874654465882682084072615689049131576420898396294123226823690628207684561015459172448861246088125063512472338241965553654234677064376437518626875028431849140666858564673528459781126953090007939910589292160842958774145349803484477359229779126215479053758107917413577500589361818089319364803388433506301676142154044376190755221987075141928527366488851259733745741114818847405980525541138839140069434296138301319643797688489763311610987287711442428048695782293292711833348638533013258106466386654781879878689719962054937982016690492636695050732199100274987426696670360625792627494696475849652536088841521563450759342755464354222836431960391172847608525278714586195595156920264300579182997702328334329869914910956536481696482698968065245212845182713769114025025237717712493734265496823372009094586480870044269122223616536871672642393914258114614015345060463631148262444790032732264461767216515977010000283663509338647312301248453746550419187090343387339618560065205252064512506048670091862421432869794650263516177003390073431984655600120464055409693834343977842856747789437746397085304403247130815492544682068387262634100176465853332264726805075836899282118555927642128995432978645807830260114887525866183882268339361880398093383547765607198412417967527303765352318896374171631942897311546444384189873270760457911500747610516326758759510743179854200792084992093038300553033258901564089534749743800288698734745216169258325547438562484602983615598290040970515006578055977506110949776638313037740256004513868927933406955370382436175778859756581614180003417538800724906977916834056415912430672514749551924342121306799117015564139252998244360123426157983318404925469044449742027729839219217123451286968151589902609186874819248778724603783213136942449530285842685540690903549435092660015857265197217560901023857007254121338102763477134199516551377135208982766695174128035742283379638190433522294222240767356500335215076973157137265173700026629800571129496613680005025808888856573738137892215775509713727662240656010238353293951514372766708194703917707978174144299027689848622565183313302537317965555872818926632013157085398203307508214126350603013193538714825646077844525652139140230910772387617403657636713825564940387523849849239530332123277827574685788395779224620851063045443365191841209046502414917519653192638098161684537178499434652412971390432873440262283435911693098895711057030875739644847971541509493373291069174273998686010839307329315531062123044309173849912810160702053868839589824680873878403188181227145303946731140473395304347513201239168705112553962729008270792029599104695257251628856089592555885692123525387643395266782735573654369259241575539016895659875813049171798352971885667564482473475588790877778702996452639378745869781335669168599096172474220150271299516173418522459076130123279385516053400180640717650700682559419152603159038581184313883003643529635255145243257025198846243274048865772524304022839678281498219893641355393684617636518259813841132321642604102051435292704322512012912514621372007784171172283935899520153909066882059547392279967962554164654619884886122746330473124651120496023079788724925023240382497846987123735523206099742143447165776803346604842266861698176101332224003114085623902003657220885498272424043568487324642001880375830120580504990693042974401708046338177790740220709354362067038804278617093720732700492557943286146488821444139916549033529545427832322205149840669151493093474457853532690798944539558683838819350816939200308696020492334254996319115571411914427168211229002538246038669861795723132913307608256088284165159051460236523828453965570827804654773548243535518234504240631623347468090714901951963778818704117210190161185046187155161617788117716022530278368581045016175582420822371570530275103476477708162293353098759733139251797653636960786195600511672919092408379306764671217233669820870949459281637333018522089615418175234730110081010834323015946651216717056403138191880943527392398288847218033419099201499226568598484776306864530514954961219714462264133890638430542246087407002008774425691446393754902030980198355780053373536439774211061989953892304901365505751432988992634562587197420384205072696462619903709959916482430315912952880142443754638478548564089219972696245595665576840901448040914308150769883400267385746910987841126647366860584492834892625736426224780301546590463073779313292554400912569484880999941612797980003716830118751507363887560172726621171264334327946751500119506040459452064436442735583979596871667532436645830974482170530863893813058396738633668856976370287548979706245808234181854954373578008627456280405276550774305833838895578694682302720591216558749331029054656283893033848623318129143755888568780928897471116300582948591947348857267073359640151445361959392221242396286548993867413654983448136616732093262476243287270648522534773288894434105292289604056896749939522048227027260762781544894376727412974792367965770234871709190467469952925148787872658826439044340457990165999150556364279949137062939612054524807467855172149651614009335808265652066344027435093613667981162863061212298654782195777992224493215208674288378209547178324091211070271399953265253614578996787156207640671196435062414660244631227887907568999779194397380320051615118782222335075727212066385372655927051171265682226770722946570158723349792305199081252677665472915553485427902357551734979592445470556526964308999550963581375867373534005801084260912518040141179265336353428112538394658549331957853564769709649612472318743360885016133784054422767120318940103166298983249932070575573443957084664454274731445630968311383164959545677939868159352509020642751506846352280912785829257925932241458301560916385476834373430143989586769957500355369000562048945985883313432116653903796516205896590864758954217044519214967021739620447983823255077918460181054043481373225616018629536971919269853313932327222636366145483376793057492488722578230930048029376461409404775696343362411267518058073458809613151084890627467236013310504534288933285349152801120786104315699296569680731593671076000844405646697754029618870700056105736753420795924951310131945721009967956010681738743163142036054510441305478633357821060084567052695733090513658717076254047041550104927156408062569876228345832600086688419972811285180848283679059964017245936420695818479924963739934304575983556602268803677928458442217929557215848418914037977347690512160028939359203063058976923262661210325245331695641297194134601930069898315941525197157964184404333514959281926346231634924501544878871405005490194144573110995910799104374716502484447285468225011765033120415171977284954422484021580594581732147480903818717980356308885099991226124121105434576650989174088198730419898229780034510934508345545345316515875042269275893701575613992628166262050642504975471804496986342179669736372819933067354188498338883337127103224062063519832509893912482810497152840091260190934992115968147751436978016675742445845646634271381713630584694936765966925586305866585791017365590452370863677209188957840983485097480862412833247674005412294271705469881266495994855980450166684051824845752389297681021854237228520660498936296646107029103625964520604359267451390709267731589572182100999091476416711236273133404438632555193552686703827543586918998199314389858960553935536456127382709502097269228249389385877953267459436287016505701551902792219893398364684180751253329122812631195288829794994773276923285656469335324706234066430406582785744139350675173431443476881372945217646575447719391734763997360828766867751873707444979707749695015740795151862868783028188675361476119497004891293408079758546463776880228672997861648532502138183271417827104331333201857101187604077915542081477470230543634967852540863190976633416179274327934110242715807752865938874545083148937314765771607819670240684705180111826321815211732467217736648456433815117347630687945417124070024201201090781311415949877271977830338914484762631388422928532415684378927005254533023438180214892931837503213441287024071025220898736622031011209187368758444372019181272479543824134943765682387032724445790006315243457632147614068013948088921755441228710314940231252423650355546349876420905379920047522106101580140872718188606150531017274853006566975680119012216060783501652481849526834239523863827753833184207346375859909935922363110183024699416556287249776497991739113686004741164905569444967315309493770055668135149321544890237249532352700624594969052457437684571792128848776211955064773145597358781856974867071901340273107771377398435670426935401019066777836113310128108272266912437364053855805704005832544524852415849047366821807590976061097196872112712857440729990758555314806962023334440477404517929179938244301447258974618255362201753170071147957691655525937798445890596505953259046719851802637385036426153190341014075151441830918834396574674263992710462363669420689102252189919861406500795123925743346538257392550093285551771417151319329906094323917718467769621618087476423530492578842374920464634348707969897884334152824682594881634499751398773855302207412765167763828468152253797929178092581113467277707848684723726169137436989188313457749176981113013697295331425340755708384729526079659342077440910122916571217924093772975414703154075750637349374599855769257171274409149444619904413445182128330976529798353626393682639489514918411104028543164300697318925700250742242243661841616803459186242339785426781214631113766841568152633398545007685314301503362719171338623919607373174302721755426678259662551337690153293551375883117310751592135733950380167060713104387804954949986567470368159394322620499053386162271260645818512058352027117966703929398874057308440931219624740317988277359320764281937825390216326326896630106589384690455109845246130050480119189679322996062083494289034432419149301935120763625207712012515534969015778806771699241556335464748350220735078485330861052667898563514018175296613488767099840089882811006219766612026526861568957443765132556960474690065535377396873601982423516913310053482460906505906600137131104830956445709950447972589063600681368380705262548590548193360392428531332806332908894777169198921215492347499405305539042859599323216991417903882483404206673640073832409365609283952769518339744435747539780171057639319389534416040784171669897491104187715095852780439182697885986411479648549749413116969672063172826897359780832104147699794492090388570200748386667551393533517190743510419534992820966994492060385230340239530748110969536836199665431910043479134381517493994874066921876903135606742272918613411778607244531202313261264648740266152590771148918574300604206559959927112727957265211947099787331896765651149888225543568768631739148268406471114644115945672716586766429281498036301294334522832475266686674482863800031426091287327684462409974346590694513766864470981811330158037850798954766923622170810871922912902065890519898345833306578585252881151523480375721321564899694195922581046790527130795414793117254179025565617097332453699131084219656317475074351878531495604699231941751280734399885459505640063294927396369286034313969236626833807900670813658903524563623338413956060692188869171721732703075485213600371624201809842966063602445497884974621996318356415985971366890869902230171896547910206405118966078907699420859232160094598100864019558649006924988949221435172870719420800081968967506866349962576817843995237642449536815240235030264681504128423184991046215917415451374130151789050911419565561644572286191224501057880162709615574309023999772447395762408583844410868107456031163231548397786912178762112238347844544816481768653165529863899312813823562082711129629248409997035143983353143971256181858873662378521481207124074821011567342330717067831105107047858962562131324558648236926159952690960820159210834459565555480459360672474090678568510927231842400594918323130141100323336513474076779338844600860757139691223932493286186924999291209519689214952105779455266689835412132792796458530040444354734255090189684224123660991419550296108850139489501467399293421294832338574710328224355841516747979985522900339547566503356952854705707498152224041928134458444002674256916218123350354826779684060373196751434708682747694702037077976526222817978371962533424455557282697585656138265556453457428319311650682476173456546673184787477870592652450148968085632937929705073977028120222041434675404332801175283310165137326201634364178449741493575939154279931628262698368676050885584792656526134640745945702946358484586607526728019058716254501471651735562564923938608180735975799994205676983450378304011671923636927809655416109961803415540809161769865458252719861696476976727151616383262105495290881559450722608043219873317266879118371104209398483546284779909488580427767743117038046403563853721251852332486290187034498854795847321050697080560546474387202555986034746270176941403030947873424450985280377507852982727280415526670331505994161842733379406430274465562369983842343724950678996303929810217575612373216186591209586661030798618282875857909224092136948221830782572546942062282130446317945337857067146884625908030763132270919770832771830350760942458102358252121617342278764996827324331868624226845930594533594838879925431330369406726525774880160510889399624603221405948508330960992945968295847709461816884715173943974034233652876010393989381270178492218408273381064653508744916229269526337268123270463238431394574655998556991946039244152534763044029511121255626258856730235240253031293879950305222676565004478536371398880332171872831720910371754775237281464080751924932636254446372139592706272019279605397480793292855876308956078100283118296027508379539192895158553731533896253826595668092430372896528210130383374182964468411662298627481470751062309423413250441232079646619065426975500163011718306448977197512003599537035501284131122718552329922116506969031273287195434912326030594365941784307237250378380399698808776361095464533318221598386456768298729396464764537698638499483850451841619273162739829495134901985803538852221433748999766897317774297262664543132486867121295061801224516605910218496571305872523950405633600345993070804750981481013237882355708168719746508825817225072972592779670639086449710077946925252859039653094726463255993900981102240718506575261504351519488701330273338067330207997669337314005827831002284707140655613634675789197275711798705168656777682279714184655903716602460774754945932935992765256729292951419472201925155146435014864751915967881399113335128013733877699908995764828609971740487615255740561502036821912283045309940612194154465814396522529004893489435651769525126686861404240917942391192093278192868705217474697924162487004948807737839638612961366830404158124280210502881399806402955879779283158941021650146940564120462480641784013797593130899777143392627267176791824439189158758956728677391924591134598392526289128399358368657708426689528795006072667659456717307982458276040380149969612713108249734007008682142826726724283085446247917752306796021345008081554257931696952451476160678205875689796016021545735361022355685750397705574845653696042438024061551670511940384142747472585154453716692266706684324640659468722598088638690376648651429435871014172168185250805774886940282973475763695701885352588658831114055712451998252784830112087807913130832137051966369381869921315387556730351696887749252845222854710992654667057267413070864460134644396203464350686704242274694233175187340627939135858586757638008830242711418430562449870300441365931365654100786250428080611553170510009556533991020968193179679786635846061106976601242865385178869701756847108300881983791142198705505983434921096221311877346767335857450720182115457876115412285360022072465212698896923770468951739739711462457957153530958813331008549146819969428179160017620663755904263739734651890616289675545524776034482688687514918355770746046839854910194256160926055375560084069648433750698909349076562796821683153997101223704631080469622993750360515374534850720158513590316413980770050270737020518523325196972118352109787679821331684723202527436293011364668463817525112303015543839665112264124065063662693183384323950511445260775772391359153323490973396026296606975652769889056913302620366920285841150958899991469566076145406606657014737925845652554669767152441374928852120158688483283059591646934539218472278146359662984331600642032445404895230573807422028323657970305983540922265941918717778557089766000181284743017436028554421537293325840867400021272741874545670764406553060180480480359943693517917550100249091429359394800575688113311084197307352713255040721798229321776519136934497124677144073285928399345861647631562273887010983526565972003077171046797771716772193194832623912179307926194417548266197351415983205547766358033804920478592434133796915541076846431438343939626621279758898805074495799087777576139903631943088593191426322487170543355320127078694832153438095997521296538527508680762367597303377704630402855736749479595057648752268459513264978748908357298502268254328090464170477826685374303102810866267509381449068685184742728033549341475405422176787989872171385885479262036446712644863634297886181467661092923781002473904665443807374980107405435789811849778133826298549878724857744665739308137851733200479542851792157846070895058039813137993691537015489164910445299133632095070954485443088665609452865268222003635359166080475658988457494446977653179026986009654981645616315099177976293133152742676819639686292786621964921446157131220869992000389280893560836801035954480010471022455726722682359588241745968029072172306578133545486709334731039016964650310840362031359007094838863931506334227754868162932839436020223289900591371269211784444677366006462091725399413335175397565056161277138961019685107926956890775502351620748664324049143641265267993581277060168149801657099894746320051432501574657054001458943922606089734623373677529558435866418610419658459496218885939358767263738525076078712589282967326734404646631790101675438515219757933723910884318999212383691109541449187581362590034188388514673389129825714347348803764727085990747609893525775102453398760251336952209053242992059080682511349570088839899098074277976538466901294907281599679770165922219072929253252899916645052826979563809493367186143203252626795466213031636093346656892309745363541686438361199121645029615999207432681222330493192765903186025559303471109277738132296317990161188134718509852482898382589400179675402991191062133577180084950792518665368961655452204312779154749620893055468144019577885253218185560711934030518906746337146634483756332298420546426654456782978297590007896166966265499881956461492873078069459177413109446922073535761321405205835630691353427566266347440397207319713529636566790047873623234502456516868290449537375594646971220966957467405084600089583715296467070105588050232080509503627600793283494334719411061313920382776733284361045471420079607453900982010668267469920728727163917254095276106727866426956055328024202220164076372497185521551951175022986598035875357331376998009851733493033386793436041296337449331638907546668428031621694754373258130648237467934562625774440718124462082579788668488583771609234058043939382019082893530252166619652778221497332579389613371197550395771452869136579007131577971519998389218982125566579966545311853237118372790657954977621072394219843804426911496857140795797645177166340383834020516862073577889288526911704379076295981225979404659917590902883491383207642875952310109404967351670018852088994978831959550000723320275598597220615833720942971226742074723949379604566510869121461673782601289878066383845959099080466121654147253511033230579316683440422359075020974355919762852190752364923795383730606068761545183588474126123622990747165038520698111602650020025485507684099503055771935663870040499514851932521155563143859484593614378315512332825989297933725294412669242317170404676327813396577397916961567115968361370684164330492081931643462950301301271478482108252547472725439398972677511052609681234754756050273473144325208098757605383606839984676964747167074983881224103786167607613612353162244804744755583103418317443811529988544856948153962924008053268589601983261390898675837987795354924475819223755169927364170089416456292074189947043067998618055179017132706131637228585001469871915643254732275846395242133813452242860446393213579914010026795470424334266359223847693630417556438158534535400191645788689163832195910450769970575320651593359559301760618591100448325990981113893917753040838677027061945366745081285644519889001975109161900805595521077700675583205094707458771097934901312444952413559561352258310951277704596900162680317797521558833838360830311944332359025564065874444469037160796456869128158129109666438131580599120447247248581352822726779298807447878892262036668249986334095664487292563884700588904268188733908753120074553735472025460582789922006878561219069319421573952931975457259788947990977259268571035163282233503423740185351369783768301052455671375273308517925137847114934629833523669431118470137894417129310967335170000345847692588623673557479307709450907151492305642682132640131600142146083861281333567068293923353443999707673345655496574998287082892617803169126108416524461105721364023652911250255383205159233330609570164454772546620662939646355397584100381937164810371690874128921179405822361576688114551500296612631233683218831316220927596400300407091562395514663046633129822948132169851299377499195889815259731282534349876323669464595898615836728871906051682490227401601984535734864218289848975079853824867404113052682646819670763909689382695314394565907856188242549429527822993913452318743359722501647753741638866825422656634448426106294198240153204017267907636463964335249183639425398064020721338687723389655313336029985796157998849947062117058859627050467990819915016356052774616131141093792779007263425628596379859901001655475260623767505026251377934090362258049170366345308450440466269883290075866687616567472923679830298434471392319170041318508911888952861218794731081176281522040662696538111142729807197855819271397777900940173933603738161923291378248198056918426969965521444236056868249736897533811310278478680916418269422804355192643490526458458585019475647170158756377416465610797321479284056197793373541810328236645329498361372332599095200376310215001892693981248430080289524688688681252544228615604221364417217246944426452547114964973113934281392898147565994009714122574574704235649329522756354746467014891495244366904920169650088066512517460537669924763719000519633802532096908279925541196317292698759128598868650691508529240355493370498260587708211420047973408843784451721626542565644406608342336436622854967212913154274362586971353059975863465467170515394730099819157109952563461970073614212876151954164204386484291158403693316150886706082667269326200639033193764779348839279350186116253835035711134825415215115452113355692228762347638877469542197338918207764981037787926322452345336668736391841018321594713211591191532866778813497354423939035481156589572274116983613124311559064543020353413384425284613614771708807805075686319147556971013048117020638339114209646579295374218622267978667237913565615569112597097815480403341999306872813232685735455475341091479940506552995969007294792863397612136071004126240005873442758256617351509900299511271540631284925851085568923834856993764331500454782820590275154176286008357254354598648718822670290088128247603889422616020045554836247180137143701287385572116082018157841957857079194061520561877013407262946803310424785769593032142413893745364660062680957845004625109448652048308466294071017338734743203714898260006511313463242021994573187465755562110484843013204237364575706639080703539739389178932583193501376779389586207669525727610413389728041160130393026185104263060041079274989277757527799316803132371749081341739438113896549000738706787358129716542837009538677508453908635707167198492955381100882338466869130446208490096535776414206826102695992548847740037578502534560763614282382201672847959524839540862842301020890554738209174492704572625401771917406773821208584570870920456449493741897879550135476874269438804233612594622191642890079735587951079185917173335911915963421778159471251998667882690528776455850021014322303237730617266639833885315926694485144165086264271494811460104150106492328566803750771891096917803752885763817573330355444950127578480100536872978959125655362006171092284674815249403946696116475764645330180133869438692476674809770841790127403228793045983429136812855555176264247297294330155144137915839165253251035105965834104361341509491669433009589883333128019385677065729344217562302818743130792913629603426754999338462225272025907817557541457309391360706719708349712719210444623350800824682004111531716364320654826926594716436991891809468290929808129879698779165910481862070146761366466767742292073281648769835122177896652416188432468798441020828867671503526283400509020911134730107762265481120266592259294144201488253161735939819608206777310458228932907781308573530588785211052630865144602614191935385683052280777194317168723448854757732407531157536811996888477745697103188740558188324572540557907718568171699397217379159854036454843813849799971331255046931108987568000958608319719415644338414577648882138931349804783790934584646766505799523180089934183755676409069949235870973240625346317898862394101219045810568519387543737073630937022559198560776722380375396693192222087468866274710293528842138198931767623031242379768274276395630015118034258910716178797436207888438751356902629222755661986608210844261374951884548916281787301057915032019573407628934381619119179443000060828765218259300129545891778754650878739212732722672925677796706309822884022442080561092370644822181005826125272514114521442316646006234838056437025086434416814568795544701099757173303058149485431444985935514365793408519607846514222185731362307027049745931733945205253150950667031632713870875703621696925510316252900045879054563952446904503811166337673014134697955707022271975832089767626374861056190211342459889052070381122959534629710787948937922548782951234985052909626555555557892652428752009815274916666072097728403754379830264815323480786038338304483009899339016818291947842052502253800900927130980201332773353318227445345427139252769651979863193879773373659535327831779326828431134100885515221757009726503808561550637465412389175996739135183338818399123096920023728390674587843857846626680641990727645140810265316621253857486125990330188340771216725599145946832491063971864626040686396694647797948870300990506224236742068397441811652147984522438621086073261462970559976351038455142727130289698118202664002051591126416663280573246478497818150612853181617971845754957487485588782647706462980944630912070557060252929622588261158446818564764398067303536922316973943346768047725280196928565240623789159294352586662196515895060564395787788282609853522113386289089471262364971132574795923702053146068399027709982067590945191892443198683060200762800885524965191285287487993225275168908791999550039737579972621857371272712474323243753974471345027025392777876736138796527833176246314869207158920315205364446089717777672920866361466818667158174160271047276996254442247487824504443976181493538992755453069309118136569924110167729779093617943091387527115203467926554716629494289184653150356074521586652291357348140569801365631014410211056242907723803888029007334851207067292186232615262023137000007525806460262256439703866380568754702413842800293039404189295136812488932585845207820028350930015998787738596681432635068870592982893158090568629999841921684768462349888453639881809711591030679411312167262004099097754282154228882181531018320903740800707719362128177224208637387019535479925690326365161292753566023406376174209714067969794407471397373985061856024063324327177552231306865140985283114297334369423625588477262457562891820207886967627201763151574616831626610256536597561837228200138667639399786255032066562232007209586406992444148330767032947397751122470329495729567114630543860933310043584460204012715815043587393976206931492636931098188318407033136482712798662892904220276857526122169096897126234714738975615427607876472048567512069933975832051612542362231308135504041765613498016460495729826879225416668676734553469865904761779516729399129797762994568625634616198641458643558940457566415755996894566693983272842124719938654921234208623995412488510392842073254307575583730568957381220339876252052272474485037923051974861559537384774611865859221811053251690738146099869335020300832264097109790734432278498610924561134971175655550735527879603085220231336865070800607908516643969288848719235997100083093662956300251090460851547863082952216628355606778724596908976691271363086328989849310451062982412284536063007339991475594952536226944524066215741936423477958884291415771591165940088556607676592427910109013720835908031037928296511904895444801089677706385992725007446663697396566569958805046078736106692240896498743353870571095501264202948678889675398303828663474175924083170624128630978422510539841096889897476948300422473555776314795994787758781457005603052026731966203544047790870348457343337033995070133301340974038928769900588213679918413033799431737850549648466269855257717972827982457872659557342775124543906972221497212392526950349940164597196316772082542217461363291855808633502645292940523827801517298347498732149169854580057283975582980803092740787173047626740100315782916010913361723075420752042703584397679246864744897373388944652463067030914937066768730627365911668318162407744619831020331692755419193132771550955576373094318464826524875339760803326664425243077796083963823277788544488078005558140619641324649139459836456977894426961057237128584086849325174957933104915180901741111417365563911356634290626138231289803923798351822169116182841462995338373527179719921754630545787385418478298708011236309307604987077854643282252756402545144945138873693519542432837670661324712131501844143491842273499821004718779332976437705141773633400137496729444555923258615381239383212460299660187012891865281872256143909514102755836085679766957749141011652799042594109841776696943837448037350976735738269130161497236900450212328053948255765595358714975828176322706423697100450632751685851301977515567343700765792958524176788448077810326869348049917014166683842823156298720156810284143743307062988595504483024166025030955518696788020176123122106192097875740250863983471047551267069615819223847131253003480027822242753184912252558533067800683677316526644277413115588077630256699424630875969415118073665036509948063438375891179070719134880218015583391624057828093351190543468110315668989751632977541647179586297182251449907103498998611472653712398422995717591283281386239797499945568419228781893692176189065545781250455121537753559448022118999281550154538353332981407184409051484677678404508144824188015582203304060148042252369095606108419130529723505785447699619188778477351758889386886325650914116075682075512932595473190404495952603948781459751810346085303826663303794980760099880694533210984118706977506950469033329545095217389900354036551687930393242188432604033857237587045158740624709060147304132439626764986731034344828150331784064815095385358034192238903979343287539965730842971982137697991593921910254501162694121813348691781688531206099113629103751329034221002142230034060136116755038372234595512154848577287816177460869271944891825859270174913749902574928831287331744466961037166743724156302510606506239716887396828589079549550784340891102941275744131386362867453017526356513195194925319597479857098348077598268013601571827706552527372892723850678377272124234049886503941422529661517075824573199200860489189558347797614906308688287966835216474647760603081746816459479161239845118666937117517954464440182933619975371588844277007295538624666447758051968235343442525891369439469231925687929599898381453152276448661971591686932016945439239390162032262205863275151568715263107939585417045724144986687444523687359976579022775843001506057285765204636740347706084348917597671060096587106426357901587267888984000802090284978767787511216532201500541930689140492659949751066737828188182363607936059802810394969437644122881060479230072165751668630224673129660122856278254808312315950357251752858689414631497865146769621685893339730187083709218468390354041989076932261045004173711078380245292173223858337166827725518877189392731172160643534722329481216828939589635914100121352131708683602778801541516082245992453423228643756810390452672631690022089083742953802761903671813721345741457975266322977026467415233970768118813938773993569251066362322374189164375682510111417468009489704525907210592518855149783883054657242483466574211140650851268102902319481789723895995216015788097635885993171843107711383982361733758799568081578727065355131365667843914524377523251883500808204363946727676288876333697977135109964539727946274490955661877117886170482517778027469037191138569838057811328617811592463293117780301639891328575711881246485584019319695586120550462223113264630908610955873536954420537279975105526671861927085055529452371793854578893397308779388994561513374359289809759713588673050852321410755352367354893027338630580790132055432362613248875900884555141433531072339392321506432725042878244648469369376143155822331877969092211419367193777511727955035875760017272960601593969228352579693290625407001958395544207475343601851723492383065759034641732954187358172468842231263223531888051859041332281831969584327566587753777523792046179238281528944461215237127883069648089211045395916619292584770214042685273911741274638562425564073750820778420645776824613280823361085908250034146512374208419694202443210937403491801377115636611667360750020420281596113543185246966932364272945142768792623254163163487901443371819948018689580122117762527146393704057227473825331516407867444114345308699234164103629045584378587906199641078402556915184296519282383753525878685709624815636291058462890106132572986054996527802804059100681236034235179653473089843961741963000838269119337911678082040411072740170336069368604675386742433878264466385433922805281365779926058969561490695245380781077911553828050986429753779950583134362434735888512600663488446661779121979121596832079307249879630693629695838704638605011884970013455335317058899509545030413705882183854439172302121486990204848205300536165221304270307588695526656291054896876417874788360191049639148604778224807230673082872267160221228374409619237748678567060056103133189871297077177307713243206851296352147986702530305070089277512853339685183277408895316989707608940113559563252642789587264645266767608745828908767004163322109451162167663961601094235730722575546771272388785689234081900075191595674848484280350838251405783248888466678000701871083559229438040051320867145313146378706930726117544617969016126392310368272230281443799841635490505950829762164162107011501379405003460836912869187209624580207983660587043003796114249588122252170558637948606136320050209578217660098273868127845733141405853533983782470049251030760313816299015194129751090616776969121808909655407056268460685895027345771639454431558162954826926747483139241808588776321837018488024313028812590978649370218094298938950265145774538513947673392923144542804390235001889586289534473313559249359452994359459961569183018911623201120727094598145918307311231746528756712348216986495353596717101462855433343737652362280752561365524568940361031910295004403513020885275157125561526464575378835961129775481153737318403522548070412675585032381318044268771923736700835774238963095583726140386942525589400110882146203466968246350431534670562069358689266793406096822284513354956499131163919868613345697013774535988432455439169987723818935286400019247861826174234602223872586918920563377313850844744984708258165431862553962518437544069989351954236676641247207155640497617763004181065921878522039498008196547908934036262048290773516899847543105366973135065126269692859233000760290559122831560926658995288307892051219663472597832536661570400005030268532975195426249224020320377336909344670762909427037361394989284415125829040712842425378167504189899362070029423584975306078444957318778648238396463612114954555630159390294725872766455608775332532362234123795012669431102549058911200140729316646281151900441072279299924267531076885783244234735402762536320519498416741823637448594214063397437290883925496036027500685329823658305323621743380194558357543898309546792416230723103439178941698995957297053487116436257349602613804319607599450053197887596117785769943614473602702513920353416537935449396138278195546964407830292085031871776928822766754261868376028260265838624484332761185335978677654464579695115281088421393614928346088277144412728586690668285029630582018434874712491604724189071613478565763749984065962184256348165750153616234419912601579562156649789714291084302091697581779562638915453392989156343304693304603608862355993471824788955129698376152913486020080061851129176783269350819679195935225826703619633730390331970204289414283663844262503967242716477332312836538636365373128453876274576901368116315876926139876324209842778364904609471822559805440432559739873188542334971650577841508626739307418287156110703961337852376647601688888331674945937907075378232856778726760405515535543326941045677830678220737004180082371741959450355323469708581073823594839605913902578135469195330942716120510600562850392917155135467190979588870491103156224434736851127851792463235320167648708897315390608243695678316282477387643459217104323185963322426327387134632704382733566380099951715538439831454249684211831815634888400677992357694836689304891442538444558296562708837017843873179402393496656605732564228915520665960511684574778721763079934550987951794884144023626282073343401946740305459663992138273475671549393574595942451755046460081868035598833686449683897477722130407535191730026170078185355792924889815955038257153294393090566246346012434991355141399960078278086118749027262114231947314093914603089056998784496640541661263089970155465849211272171592396927447573098456137329334429482811560007667825215322878374217045276197676694396259633842884789226450523285830946542558768975424309197528553179046336172159703571376065461000505347105388906041242322952630005603641072126796456456939755353650929941510975822816499636350493449477165986594372958687529207042674612043897263674757001488996609850418745648703609446483879693779903913042528858862439569166343651963444008850749359085468179023871769318752860953677609544895233949596916200968903568118248855988556189597721825661698756601821327614482466783551257304514699353277033305306950845451909168081418305521523765073369570098830873633410464594478893756163699883086333623481157520898811787836458923151369061538931789693935839743806766871214403964630912972821165884130414534867679584291700367384173004099004179242999558866192997939545699031844694256823454972994211393461260834154659070869332423464809182691932816129222250713763032853138386243461057732258054465437397885973535531172281069946635913123542154777022939151032159824543343965785549313668643079284622089039978005683119580446024629744418518438755447369346955193103743388000488296994959648690245729613295566931834007483747652271239099682437538045456692248774590848782104456268329596857347234117377970923644903599100447349708271959570246829762713046885517424519332643256981337628763492240365773056946642412610234485650000305795476954851591994774718636652961372611110925060431951739024615464984235463414447258552847635729658243036487463138744121888780490564625244167475004192935941378427079137628975539329113004554114796724971998926957901337074538629121315205467893148614458065952835652791118163372000869939851285062521556425250994682066599685473577899614436067718162932717336946279197867258398918060623806757804979464803803065682028805132424853101219400613762067529823920651482874865223741087615852716072150230123786967177625259898957704884163011966377422257524053041258872906044408015824294121933197793158181791878316267526229999767210159830613271574831820193854999818533499381401365342741012402625613596232407325853692047130693503857076949209030518732683986509584078753242135362090912046685293462585143520879698562119501782200598014201889156200811416427153667991484040231782800733194025231586593441169527551577372708214714659762825119360130123820066039991440067195685075694708611771487679329202447093019259875047509468076723318377939145552190849591427857755305817129665219328940769787116139364464448967057905169971193928252225683815301391218412909338374225009514643310475270504300524840941966972095222118059411795610895862855589880309432898731779183300610461364621559246313172655926326463822048511344559646621974556470264354436126846237968189321747740832120768592724077842712209572316437515707905095576832879575025849513181170140846527435435217329855903477723316989401504001691533534665753762521293313618986434629129274158265920885925034038922871745491269291683560650194449288757031405769388043556345794850508407554419437401403937203461414123831590627688321235365381048234819503404652217828789253421866785872934743622286120469750020642467666479707730936175578800727248302759469581732457916709599537955385090130986923270137331036694094046188944989504059649946174971830973183660389590272352398264004542034156801077487344662647378409332977166671890097318878506940239995974565489884165171577367611824127084318851403779939383357681219632524855366669841557738723133299978576814952228566529944117919217475482558229291358112655458991372300838924808118807084006057516180330627976787611948871452187955747360858669833863436778364043645388211451950602923533098736547436603054874874895068144647627374978231956172275579718812411859349738419152623267492927327680052400292560092059182627843458917329634287443962203002695281247580689534157805150831003490494772613213574753812637177686974925168407406611799894814713599211743044829555711184076673611835271889346275307407245483838452409355423294185417188752520071134631639159544192850445000000075848246691404704756966920408975149605611580311033139681742437001606714819762874455312334752932018561376476496268698322738056961685577848953480194789718804467291026670488931650641696699532189107296933864858132706551283485531416833323756892930576126290538147616126853439740227519812448308493249003166968388400926323738155764955062901921401942573057870310189296270929246865514909609507273284583821216584044764579112612101628284961884694516051166307312814168773750440695178237296503397814901003767152703732737370295601534850001322322601039687276053431703573378538124308685288786258121609247557256855304830326620850458893946824156767967713981858707141438618424902994299617702867946184789083386050671289201837712881859816070581592848568855074991562891407508689239078165435641105626560000817075410078470020477092614085876482872541057537023851411201671735309019022914960473814279006670693393517703021333922465079394545952476314898377451795778522114288141664041954025505277645545734703617992675066731525236027836097076132123570607326857707346013671629306364856961014029273119105902088073743756420434457338101753046197316076556173384845655542188929564374083046452434848777814529423526652390288581618021842058853188255862573028951488269346390717839255922087601399839557912467287574227586457783244981575749847994009606493108134546627117406540979530976106576827061417011309307972141488885951118406989328951446397044367619525202869278513346440366790290451026929419404256372532681990403864586716002922331154909171769245561851412060170297006692265477112268499388802808894956065447006002746472133782083821754445798556771194250043910830753295157218472384778123933708081287994811764737091961213219185283748799983639582691948897467641376530410489581350047768831040280882457931573647499972776827471635049545692457473514881588776352838567225997034309202670818153843733092343448002103726722610066588980498737806740194229727223087457770174465525226228267512034199650130505902864140142679731762553136435327745258795986913111034363633838993371277556044242188770434743411843349511690246960696023046341660748645450462114577696556542290338898191970837089444513558290995968812344231353178545467018333956245267894736651457809646917548929917883470376188812135745837730487093086646401174073412296918222775046103035317197319470614925204166289438818308112278021683985348144121952819261471806388833163767236366659959304044838184617900642172905263828175870905251816295712612238376536870907688584521329876834724334071953853359377392838968309938465284303625991371366416921542431667479013718820624599077386880510466166680791397475565668584853769128610886349012360289252274191257236912266333884331518507402124916144405265384193302820589135858223372428528359119845279448437148262180344311888238320706968641480629640773928697138257838605625566572954049720246792208677544564576862359058168967867731853082293169700632610552425411378524428933038342894672136896782796185827116862289855694841371277055169137160199751516836366058145423875190420410984945307901394198478468943992501700848116046184240394193192557673747818291988993143397091579682556992435886177575680783002976776338850725548724361295732002796962556010486957536060218879957820409401459846601849953174159905728644036412968118726138388518337328790604713210046524808784848938383954705085252355321662882404131209989258912792640816518198681009861657335016127311803426940038616549225890790174074432564525573290624665396991517316977539891989118252387365446625193685186617226086822149304652387824079210094780337856639995002022402464213443399193831794839331749990225169811793149361057235322836251945807745638942196378003354217183232473004333145834600616604218790812297062583933423781172057315199833275442818443703790763667849426314815757045313809772624885076799558658379365234189545403397185781724646268543514360847206942533000712177298522519028328819340104104039131298584140148127853014989245128539178122938084961918021118023597612354163017486820522525167557745033038030468056403770462256163505824252299474177163580219813364240565708740995448169162566636383329404835964011223440666702021364774525597677520342624934078965747403198066378795609600553135704284651174590777919044125652963881503774751086826902886102130534857779324493662706483463764069637513723956584479475568542419238643462352786911080953280040839656054275255612945573506215278900704939488951028021382197278036224360483989889322852329974286488645543249920966797721011903414254151691423876767040723797334835889309138420404306724671696123658251219111388441262435452536580365657829696990723232069176727414849880004890843397029668806081725200858108539525843075561873563012434896249366686437726471106417067182362423575466598832230124834206613939902376383540541733063360262756279171123264129410933039290405994520784761840837479763571815908802848578895786525916225419849339930131112560836032667300906617166307862346304631090024837471142116810695565799476573968636297043787992453047421939609727233659056528407694187044008538602296217643868857181515666810232163679986595130791358091342914660007075519039898380632998026928955245394406134264797989830006194316808118390161338412549997473301861595023876074120498376522805273834357645392282255998859569982887289552774741825794192513522771686548409893319757134078495991961080457459723355905445920845868551818104404081844378761053425060468350136605980180810866218249919481288971980795953582630415250174208326206914451691575700714851532227822427795002985194952763788202547818840772247828652909625326478688144730933978184793326426864076836062625481634291734251111549540868696103468106949801444184593968379008564150644287121349424688293334476416161115045749166890671635554084730801255727781955585442333475778876567828825657700022634202421987987212910865657686580137571311971496647398155669146496560032175763366451902584866975405856113731471053032444504276611162352712219841448934215940189434132774339010862189635194943035475353176139730747718081003556667009307351610225958763824290575378633499909978343361935798075624827273955366813680854086971897474299877149263960042911283769678242871504642410454152353638685627326480628461871721060740064019681962439763007934661319615188119420586351598718934045368275063548195891499202239955100407693285725569980798135700071076187585470204596458123580835868096092998340484871982769889281884187967005488621901571343401212234359383037750014030670188281585052790481616244606569944376783157698985660862741866259946914101582358058014573539847704243607934523525158947401652914249290738454360357519913730562665654923322975279049373152107761564933367252489730607425723882038186046719277645138260944224099094362989426797760228082494125137079110790190362076654129993450406136472801937480850766634465540845938784301312580895706747456503899952155233641095402838402044611608163390634266513624746000464311012714261178785581893174173065445466504976825301184253604834804223768429367405252719249439342112542609514607018734011304439197176596901768949973531580772074332069108963378849029938892810741097111236220035847583597466772801825708940818446574334270635558362576318138994718931663937314352331154429995621398444451090618067431085363029757874715909464783124498677535094586711075972860594125602543448879281712725587128375582675871849576137100212101000249737581497980520804186279742099193196764103602607987222650080684659042551162121509036851354002113632294499242098849147150740795778831563630963842713180910634299001800330109568678714103034180071500307590053775180998949041772042185448681941144811696148436831621212815274610374721194247253375687579299305901170672495428419961403415238630119761828683749656118742181708158736693786466997619019546389229885144787616465643695565728250708290207708342402599081209389320196521511670242665244766087217915499450122919451614669630645605516977434372405883188861612477602937653769145369928550498385310496545168356202783422181879713025054101939549832838648078468884870696493815547943546679339216305801146914239810202531370334022140703197415744194103054958348826902817811147558779296365469719305678680894641608807303265734685587400358092074864905572454101395346106035332720110148981774331544302788641906781432099210913875057371237272863132620789489927433442027811917826572415405615492375578731846328856491186763271388478275314553513949282039377168069249699333640846393774915338585660841575493947329804441527754987458715754132081640545672225756894087540046524510308864438778465594632650918122015815066641020865342704946243969973280684605258200888552203242057696379238968074101227119308632003716011792848430646851818735933364081029429167291907160122216600383926442644065135730120033692854303098330343390834310906020977506853363402444984644815705718183153385720015682251832585684089298670496713800952425963330961515141289882756242955949768236913810333141709787628615048859036079586294519495466395990492821827230044215133499063335707515418280512593188583426865215116177130914845823910057306733814156620209565440706263019928748726150005635091983329702402926218689292766320730190375716496928379506586973752426653457779020976110450436505980465799801209166800494839044760973687948190357078792870588117043068774317280892501280039159214847860886589544663140529223897017379989462200089515846339932993227210052606419892204321202464111970946626449069826139342773343587803292771032386663739600797518707896763647708680744826430616580381021199557938950138244632974902918034339913055486745469134452318290333237437229727631745948087170069110355451942265098531782544534268501798991867570952016622806975285691322674926259635925771847601255975328182954432621787554261183187225156892724887447543642064075079721587142576298528136236463159160165949201425452870346938879123472792713515106140698594957293435853194934164770320160608055091637735872512476764155489116058054003826507785231982341310339544611963794042036076803249442746590788606387302717800167690462103920209790929035376657383172296853490317274882239141448023169883249400589456611070709513227825015857987907186812538645132620592153786135082323775464903996429612316453706870255834355752173292101937234230856686804256277981976473882614432504215570320238188586051647562242642419715745965763163260751525522446082063249991666494160119793417563932343819985444560145835330312638071577934282857722729951316332974881776389067580673714136397333818384226116128059808993188038743142689433869212264422539132931495987464988377946292081174460232071610896185845081382003078481721514423856592067664026554130066967400187312841958496889788948477052223593010102254283887322490043314494555462081331603279610154082197194556536701019378943494396420183705664057311768039619586998789720307459837096238612532787186191194148234528348822494045931500941079212759607619939995616012503740964483011948302627634535989751415530262281385039468965413318512529198118141511075071013184351269152727735441419021192006025279704621660769434557704783397195057394474827531285428626111996564689832494509735574867506397847642540902110503987846125184049298510551112870463734350521133954793692907473061330987018084030618617061272613525812115721892817766308234179702510905805555403663517595060386147555795857009628892497573592576453295664427900126191928778544559342245944930107229560817397682864051003080586319524990418148124429437293749369607887396135654806507322044352935947322619734027204039898995605793273936129199253061148952811588923266896447932688167304511585960514775237239741074112707332818206898179178459454913487698490171114173610072211527534125600702275457598399682486499633555539158974252903871731864201145484105291320243252873980987799657596176080655648313505260210007871495128321687519484740904450447765517063320439251744829053145668417489616417644340435290318572829624835934713353360077980911642924201440173408496070260669566077187645440770367833022140851738385871364162756395338869157569519630476836598291251312678220695143416285450120052825199881804282338276461051517057336632672828649462148469861092314983098923265527610562035198322163130875738698492555863691098691293872676376417302833870547492092423697533384944060372590054624278947357004576073167708566343283040827164280717780151677949419194837920928683710748488251092045851865468376558635216849544994224086205688316392175750724930822301226609209543584551443671847418541670259815101394877593171903079003466661894583094621172904936001577279766688910825237108761618713994174676357615698111848874138416369631897751690807462465541230383340966299443534967008855823030894302182787624928289620072455334314131567914959514063102345522414173018860888004645079922148114684016694126549056061599929295352971160411860069382893500981405772550633634020574670310852975344320864088464232322326086354967994918903380549526211080528297719453275988107149845153212531936350400691676086765237657911243816322146040392774594138819027022906140088329633353525549703399809076920910882355721903360480467724845859686422437854121518315797337834488855839152145217601425832148839460464830412763592569052343535632861111435542350709939405450569276108530452211409464222113406674837293739425846186022586392335416238026842021128515005790739870329374919007216002476431153076797374730260065046346126190136049434670044273526571677422864618522733492879044304595451992224576490493650817458871383264220795664848740924953955061284093874613248291194700385979868458410813263428022385479086668712950787201737806492467292838247808013903055701257311061676516377453177496794976838500975978847085394419996154698593797716230606640996746179884817839902718449154402878098144149738159463193351653913263097779318427159839046070615824739775446212597134994497736819183807817556508108149993464530890331737361375214531170344933174074412701654900440375322107926502588913711225288684270683206003952952822529535685501095483035634698990477315876430902031690522694378934051497231400387784626300213985953030315793262649417274359305812537704392985469069309799883257339301921090584024896680601691675093044024020658464964868504069452804068007525383764344197581636348723015753721342783688170455377537988488629362230856999250745075387003918579335480720485602834381650157501983082887705569178300760491932332537911232329077712147243398233988600739675584362751715691670749388466111034347317312630481400403910532902640830445644186741354656333889052281521077750844434340884633401347128127819817513189318396531854271882798220868424908616925284733155732868981238265050744034270484522319223028236200739362845143061780235260809507089786390578991451428070979560321395579337294792304148273962757371099802561379800532948433323436043897085098927529188176563179074722350132716246752469884775874139703774825285579120501807634277836377558227328727323908239507510438615071936788109561439608107943899756299395005161972833878583749003855580060955645516988383373214284040210580050006114157880754016071983300629429634759036360947477080128287040830426980800153326355543848781009824282235981096418461210131110587656623912073439816044676057111122365970328972663297109160205024610760663561735534796042735691447945799123881400935700424972587004539092449874234808176264369044096850466441591249631017783242241096813046305156778754449572955289599300311589174810599699070234365337074409643533607959754170311018141647226799761921173335903796407674660750152985559196531414234605000209876571997311657760389987905862698802295454331533338796918791133507090750282311567465536603177986082157606840598706932675697237673893327408243388656829732055427835037826303549669360398606644609850811610569961957409873389819092236150288091811427403934965053566308249501247155616602683010880545414085963621940060913846568442860741653474079643742845289198445532597175047099567260833253995717484944131093090471159706730503172687711974362584971254556981964345722177967970091479005578808660345101984325407371975720894686542684866865328195172960923826309024676612044996424190847979605929952077740419927990161702887835668707733929452865251087900552435742924371703681704944817630453138193327938239313503865855896993475652244794399453736430663902070130569544226008640973471562960283780412118027285463086821827691689813379323794325859843785029809969272715321014416950051218910597306495508291323433776130965050521616235107292489845482256629691169031999996950457218458237612295223813701792858796328605098271046288663507078512752197353118770064795077964552261536780505106599932909818401868811384152504280591044503546027871267969785450409279746556914923244013498359937678979397152819231186611337154690095415205677952749544358764380315079752212577702082874590434663467807525776229084101553175441215534116032921547860406829317563557496184855484776578305297890577703242704525431150679330491673668305654413037541510135944384919045969037466399166560799061162667888030985147321995140846156302925126531795868372406683914891530347277372161762596424748431960048997418842274824126540560160544772517781645553792434511514654881787037477249477883243754551338654629472013343670845902289825676193824626362522942495905033747346674277509554449021557634178299254220639875838296689379866303658780424583863938921279262749084627617841142386117474289436583576373161201102813769646155836369324164628860696830924394756793616339343392941967862901206695265117454611755543692214334717584762176554899387485110355797778156413059498545838054758723292022592557934645325667831512402187423229771701340932085253489464703127186807729819106979990561572238778615253838145841361135124425458323669057270227407839777715868829479880725579636791599245138120743478755091412877807897902241076453663656492274806378388810374949326666735038786696684352746765680805055942282545753241311702959870477183983215429860384664908936473310119986576171725276105354897399097280399741461479473275254839618226327294429131175594744285611005413221650028596709811709878225868817751641612620056159616523582658893166607035666110216656769346513710140399289338788179189085627800495892241702115204020745341683831107698232073941444616680962190781108017160385039378255087383428295629848819856761865276123439145727057721781119375604059043639596951221764161173722957759222890181611661267713171399324917365860166829605555572363272577719912856136314642828447614759778617920632247806160409844791633255848608535420763009579114592316081023966972177461887142333565393751452313968297868221198226176971072897625129021826326514075614335251302425234509612015662633169145393404698760694155376254009151276107483267932380254894728498902072010244231519937047608928923371252989707328187978187314170156157423784332948064745070801152858783767696561650602304840351487389148612016378088608422415173777916373739592562122947004973118239504746707374880912962966080271991604811149035552889751123023620229536144452672641529389262647223183332369161659829931542460008603850272060057360486018072095052232743144635402043814809438400228005630702442804017410161324033908166122776065777610875294637715504819019367089007457642646549996080344154482806912105098826608158921631034933123150205185176597133597302656129720893725168914845575725103709219824339010260137350925819089847980546805527884446511041913537097442566403499711320352875521049844457457103764024567569492255967303181992979124610602805471840612965594081605993460594616063243954298162018155367536348127972567719871778805964858974367792922098988960345441011273081574214672491091222563768282854838871265175952400129341597741149276188960555261629793546905276874065026722844478093615353100763925621956848574010378803399268973031635700397837135320577466420768643207590261988576585705009757187255592559982351890126799793091630163487649367608610690278244519726403709618018475831334600660964202910661357877057223322982335705898642327829918753298476064320104084028916648119132375663384320034167451553704712112659141993538407806311122964505771567976521531896382103594824171874691840586445145214617375171668669831338159019044007466507239197528273499284997245321550198692578848449432856104000132357225427986435857879888461844378983569048681471722170808141098382022585403756848831780307768452014386870085365087869798387748713681826856850530772581070927649784381404177593418110758972445963225988217475694655430810447694917385035547780941011760582046317765155875672797420627750208011886036433486680093808182107358428055540052895565200334222847326814700016199679939711268158192756451762499496602418233175342611218671952358314669863024512236211935766044568554048547082341654927439670217185876455807848592869151898521523906837194343702266708626536372850634213218492054280700131247897141467566843156615276680408306732996027664277410445936095731520772025864356673710668564740455749227456186495450709496299292370414418628709041737571673851473253465124925455087777853912908619716460216282683698041037262852777319429139636661590193265250898518976157487696510291206610607058838775579287296164591571455186256747706200139486602260911325988401796999506278670740087928664094218943472123305799368256173719390912512174737451169909311531077733771503126406777551352544921149277747196409451806028548250511178904265611063867947705224267903291788786509941458751393591009813684425135058400597897557500318237631072208413361206075938976014751031725951331973017903312713976394117357673003106229101087415224696000241517086686064664797195539380250580384538902240025644490027289091299430828516696235515076233581860167224511848463872960204608052979436629033284450002835552472587421472123679245151550096569463229864628412151667245832753218315408083303552944636265197286445054613293139448296883621310958467072536073392150783269897946444607503339573350556535043635095493137926470427488901266050609548408304675783160979439804853613629941906277285444986284276600387133882575568969115728628215071069723877437302553726929952639158733998591671425901581776566971736612901133017461475684409957485015700969763838489639571130542385468259826775684493451689027818818740424042471336770919115677253398224279926221466289501315197569515926562436743744508228098563548794781986204911237191996506795122813108500458296052100868302428596668035392297521691813013259088597171263625314836963767606962167305733112583880769612667183177776000488617679719530482556202764412572015246308268767835953391560013495322068428864336235818562298005600789302263617163214254607392585892171353197470315033481132559484840461176858539566193356767342080247894681428004978910010407336892116596257336669813762897366356218714344602252886203271557182163073290851059295080206449994732547040255867331627614529577343364817689748288137253315900035339442934209351557733238810532303515992937142267431620371628444245591297240052446456339723988018328918263436857579305636293616984883436326972931831243461940984060382789695124581910507798569792628540530884307599124051635532949941232492258088811139201270473740788295131765884568800758299095154299019870379676963074164573521161479255241642092601533499745835055824051667771432811582617045521334854970742310221570459096646559907457428042201186880226649709634789896604578078847391988482783187564866437004773585769001699311793934030337817705632532678361364121432564566161630671917788044463254550543452377258087398274636502002666620575287063103489277940676087968609015032638162220219452980729640804149429536000650600547867302851515514373111586985633734474069092320699299116322414907067280238490492892578399249232196734439337053027635145392922661186511443951879838627280349364428639610894301702442934112937000994713742439268491772576415184671382787512281486025987682035983234036160185375504034655387526092103194053381218359535472794302184639586394243044018882537384132321841411313815570223816287832366862805281383529196091463231883892969591471344461621496527253199412065264175241304489384521465815663770321669705058874769245631419242302221278575095709069329116471275763931111782086134495332188675762339414439653294940566152398048266471943983293152142513467998911066262841136167242710921505217893397500651474310490670547770988871704103132641297640593093733382872052317023202921114885596014973840497063400241511878709569710196777150221938653478262233208174552929719312860773626047987037931453201132004733691744375880071210496121865034340926961503309108978432359722996977282719091967711607216660157849442329322092235115422255001546620780412755344544615740456304474269559666958799320062219489510575931728443948118550060153312260458056631417472973455108054513391007753825965630105197254427398761686797480445217790199084476373174949505603544117525145283987422200863838752823815592421867268376426482879714641385898576955690516876262565696622261425962711464670009119655026591724139786578404880426791883223380711119932444760281088058931130773740614520926263440150354062766263322473597072235090550051690913962866387120151286814275567588333975555022045740962612026583940829345144723500705748723341029673606970791960840514368905299464214275557020003914707353350709674952343753476733935056428330151248585368484030141862866653936941571837884062389162520487992838620618602399859730766999099033801528811098669969287006473574430402284148535122083931770793306653407765670299448966011010030705236629183089443223965749741071703095549796783278584641852937820903960035364490639775197333210244729539290316645088989540473440190208815916217370028738778411241983561186125554970960607581886480504855471265356657472131633046162772472096295413436083599153372396873319343791681523364535973002804846968677696586394414558178634586772174179188985953463625500325285191781224300446462755962797574940891084905983694850952519888150032381968188445648956679308365155285348554290277965035905692328435350508622183451783351553510094685844656684764159209006699174654520475385698134142453295243212749799848460637622133905484542497516637595517110157066228892417100988466196493371575538976225774683222089891538110791883597906675381661890850671759338181955943664050020703304498350725600601733318304105794406946920904733959596625123006167201638711818685568476724277975290989177978751940815431954872408489416967767422747006718031840179204434732808475300444148522394448885548770683329843170342983435627795328471435428346754143503888332315393371394929258491319944232459585742187577160677069886199050194415218642809470769336207115881239811013299924123274948935229440387247048053682939253405322665267678021365948690305487079141075232850061682824407509327653712083426423188499631870143689947043364947547430834597592763441638246875309955017554238984597755045487997280019109894503147302932627776080910083857466359589765341722084583492229245901231797280247722021577618968742025560096199785540154305025663123803081690540222269413778188778006079227109858702104253621581321987890905041437783986631327010253656166115914454249515133865102908403141256101582863848752747579313080250642050209031570085674641300395946590773767617267771749988529854380871015036327545612862416654526680957651793455246533462428178964389139677845518185808193238788599594886598604379786266353736793625106630831168314385213354544864447188157142481136887529401310140311094984941672034310672646628458513765820603073206188715634507617000748219871485117910239365812629325973983440357155666124887883269299022565725374862127223259401879514889715712422813690966699787373895236918901290156453759114285806184471032950421644327278754556722804628924399984931319704519909145332475951834314878709400597368941940590636882709582425092842327467394338262634670040519038445940169341024159896939622012838744978091081772139865135359472383723219985208079085141513780052286194660080754850081142231773020500452920728186867894181635322102439396910824676351485233614927414739001619753280457736493621239147169852162533303102123643494288783702806952754673991081717200649535975962346310056490974586103778188337216375260015689024807298143442647218454480854533724242658273915525487699482338473640356191565097256192258598730318060730557484400733156160351910995349462834914222004088219308734749979891116598213803899802562674886068651551316567583718276155407448228428335197030105209623555924175882326443872772184321812888070716244033516764693765670109333114142344688663412168230334249427862181641548446702650789310005784282933409914464795817390278406527158188824468973050325182661726904158835360830086637393160843603294781167304761052706995281159009753358500789213858875481136359972342831580609316230950786763521455808585224940383531282005704757366347244897053625727166901317832564308787810710482364992795782190478921168750105541260708064525597471847420059058067327581967747387855680722810827818949299250453937777466166528788321188652655555473732450581170180317742214477990141768322510471714966537980543588929094910305729372249042843215215925013900971151814042951189668266015081708743212842628486839136617778970852170981127855548379931871606492076727345586185635971628964022780742858739879639342023123354385922481000392026889103387814513788864279774793310015812627904078557522707216186338543396378110215211977478846599770968441394013052013976083553438789323622077453928229168784655213261504176538305543402447781802872182172761605774621291863881787601063223840854474546008419542729324535154599658248802427915560432190471836059433538691729983274359093553813211151452352523434371285307715135895374309159151162906514964687628429798548722347054782504784199558303394021898420793066873613707939685281731801985282845741097432523785515988480727725524773168529380827901972085951045822320803007975687146697650357552881183590135856388261359840021836516084061198155693956907712530804343349316434312301695076645891146465215182959978945518589431230866127075286386227082085269841970886773043743650309635159766102451140371420108554465838831958769074918668436141005190863881333264968607268526092539651344401582527085134232475554754405432313688459855691900969682625124072027843528515805112111854859312904305075789182159159556039230391920252317952970720633825976837539463711777423287513267529803541087825299180266716965423735191627327168796596773847294041649216002487768285840781766898047846192710352046964599813942245530990007082373447852404590890381887872843122069068069174778655806229616110264855103606570701173279367309343957563313170042202167665764474978251725361046668458483624693144973379618671573445386857775062019476468565594350547633913082368033154957458885153834351689107982506654082952315402424121979947180682781768037024816863682657344119695976037860869140473804766072181607916555868642826470943056748592514123048739258617965370533592443709132990738646612551171444668217413933867355151978173712283470258859902982791510715364121418269519352567350163934796538319730766083668587662466610697464316087989900996262601117792690591988954699536390800598526001128992674068583579624189105411551237398546906334709565951007869468496162865515950921962886818530458757626194976206345580218434378860668588608149103101791249109057648220699922052848875555140516942743682976987003921561049041003422947526468885539229100481341053127447852466986199022382793915460295229121165800503966430393907585758426720519067323886871980236636905095176379701696366810954939437956909866782755473188985531827201895040150494937539859756637997792765270239096614574127421434169164054527160161693074013700788884826883608890819568096754056918031854813140037003249619649675246027591934448983208906244660698963837074382634534786850159655908860129384037536800888870878666258512507024321596926309779761176337067518070061919731172981439891699726608211149201487879480522299923784543238617148565809287495520392208173554319253111510686336623309121321743641758657524705201920745387470003677689053765442544578469170798159073870809829914354746106476260305693448557781799713602500672016494464998907359502310740854078925883875244539043464685915282372953609312513227507501206258794484569657896940120684322479774244100306783533090894198841375454411715146437468642430133344911654288817177196019963731704092593379365824386102883151777933360231213199168268720383536181737630353482127664802671616264000614771444999348032619031096260079916014526295656614184660841713373434885893066261086749811540822930597433462985023329308162763846372605894846697128193380159799674346412528040714133757023532178172537669551080506358575603880284470311353085770116156025754788262020761717188349752763446843061834246626989231236972650248633049631755871109598543367664625753329027385313952538346009822890173518029852053909310338290552558815757135527189524448855390115633321826908546086222052654540046241125223350217936176376853639317152349773872323977556435217616613544303552593748049883750380804918257573313821035479611841736314564256036123314392127542654166583904401538053541800853799700489604270713230352180111880937609905778981436661386558733262175269948398777802657873962350586718373472702344881652125154825336430814161237992603141980670120834434220991772080743093524518806961539580524816550605426683241525628305527128066443073867006054896312279918944240099689325285054844838668808087513950289535137740107325775540755377429796050320273454983015209563735999731183441902012099509355226319959070509613297040823825193585522364228749116097984426878502669561916185245957763348427566772114916375485195422269866490150775158553808079755068093257322908593836007624544325043533498647858275258910721500116724556365991332664295875290008816890858474436392056336425049443860973561115823965352949347526567701896861380760195639522529868939118128428626932829815109789079594607881789288940319554377303148200336148425757025454432515804500537361510574068142518016149211207708066457009807785050184274948216798116760862487908802027690742324414160541875894986503772626428893058162190880932500988054422703744248575064473697779058684103007652201042761996994763777293476946956656176167342434958172316637327490571897880264288781538207038537102781530869981636146316624918189728691895963344674884248944087570930646392752989916854714656063174917223167296895377035825139551487445969899346905084854742025994456554044695769250011268927395914752471288432116771578062764944975464330775405193151314672802677594592752702482936607038977987065460018920621395411530546736852938870644906154485171169164812234485496475275927660660923053335746034563170396247212931655726028832755858747906891472038502928767437938268951106080926129747798126346570409286124914562232401790493551154163976538508712221241184472024212858811316053250822002827545225398135972874376647583740560182613023803584919373781690169042110527394427313630168183946450449116625095918357383628966850205522460940374081211105974656380426715324086786064111193123967821827520667460613882780706145102403436657402104183091632277480014733612784499900561397506444523046874107915322142411534419609403557571829015634920657229897563272163507257962354974272958918112479409675621514613976603044045010148269677033363103038690104805724501657537066335098641886324879660794342171146759443409083370487243624400712092307955417890142574839950066098446935721135961300895163247738266717213723563528304659931315619380761635287427950223233446946816061048629307172556633692501120028405325661889133393698746146524164978775998960626456260294416122801594492675596095164578760898662982514382164678770448493992646810304643330224329626201178195166452117284150378481957152174678952395056864579064731481706766206664181562187039135602329401973689614099197895554406709717744800967536064339310721589267978288431696644790018511362241498749157158637942876962051815651137601233819289146474241707124550461459305114416895430473908499572191981487276057321094504771158096771674957149280802536957164794327764711941189601259548895369603662519192731143653584381064441712567944562022066125624878178230717299334345504464009550819359403075033422747622107611031189314272294228694818577968057636048595836101552125659072860497226233182538564892092416032783095593811166011658710067762739494559022202248694725154595179761870802474644100427547354581879246017138511674787263858091424680747982253307722245314188432317248964195725332320895063312190104185597460738050273387212690167179453943585462911684825425654304694906246950470474940442816285164715601575845952938011901094730945982372279497723246317765510357170529382566028760144298780940114171101565729139888169359340837835658975575824775269252856977748768588422123568136572089487334801479947726688483705460878277825098067760013839337419978814735397556872753375417313023076678184676265183126824950746150499963425053117835472118287010252637041885303176431116923106614228726809432694632225621920634600281094430651453239086055805166775766213242479370330802629791575166055947841653551308390383976518064782827734535922558786911821928445551415315035073303490233690278352521556369209388179883380277227723368239907519002903778325360849053215509770066910157819885214573487519462073742963928560155491091436581228913875668614420959587346412482932610435577515627565931881457340246842034858010716235570948832587772544294946674464508858211195571046430222550899914805557754332444533576268760276704984554489930328052764383171499960180782408243593447189659111506515180252693253680317476778293329941400910812365081205393595968991503528548136714675825715686425500822883649581530170735426418623584093269636486911107576028049490864726283256005139998158782786027838997445429819693741294707507831944538351783977520267925476634253533975215891087971544813128261301138425131564603734438250369374355236799540480327224126219240497016823287402415316767843467647216707482815650701906266681624382531434891245492198547580845056276182445062561427644090768043873218521751879903299188602265640252569453939783401727261420253550413463683203901959609159653983175822777798758025391478409054168966333614552236334969929307590900287052402630993781909776576222488179504183610931180377403107074736151509751162840067059067479886509908108541294135278818017851628057082019735907837911585569451124277023765265482647720351345220576843338679579817260704194504936128900411491556991057171506098805426461322065032149254665019564138270066242512690033390236619944821524094220484384761404155939082497015880149728970723637986483687562776868021769680820353822153059999376733164498352471512742229722319932300975559843637216869265943918599693958047010544085197204718357337244830078834530429693328967250110941564443154938961432842860112143113687102412746986302038506687648148211313157304598872808480555217977835323495522184797901468770241022106613500190223249976474117117585062331631315964331839568746024606097355969507683768284697991624875168761257526938608078791737389810359749694806459661012299609666786490418344414312259971634500381085019555750128913996681963914434674419310951001096032982866392258484743382314327920480305478119757534258119181969590882932679255517709762685040224514935111386892641249780242405901532161505449779122562788061049086496664179182268787121616244718289598017924145077715864700761577414098923948678559371371774641037401861681697576456825245868183654307916035131933765649782994984812677889692533711333098874455041943435096828753886283219764383491966213650966626778836045454760602380077403294765889518104657206731712526694201285733527817765421764884713605754629714908558316764951578924799681201434658386022071214721119168544094665717779225074328591004054151909858807832968926497639252890686004889239595196294331753811683282006921083514365087473425317456939713899077628926204056081512093374143384622152919934774741184006337060208392332452239759995264525299278633861444656518075466705796172394186471025860768240713089846826516827723500524445475234615464785913052039244669247882045649300513407395011108808461693377598742252792729451095173220983410588126957259290474124939284744468176748206671222813536658205667593100602142352947738650457587047466975739230353329162860551385727261024269292062480975555530755586056604311442531715704918845135553041323020873530487805762699199332584200231166379772957193736922708367376907469077805769608372317357306084697152016124085927944595378413288775656370355323814328523790572197385078321686796576067277954430591073219384553995779983135504659556885177020749706641742429513337496695819270821368360656704276102530765009155167402954147045089258727170210908237105778776425097722483770017918571115992937999431225057036495333790246989025097664830812751503822347926075022182983505392441299096511780707487043029363244458492553725028776453851105157480233671501173273880681678849955991040398843382297115092238324734225821745505910115166898078050956800542222157456308135418475792047460863649395099539096926667302509383392086227069255719249481693100316086391974549005700495490227762290726190195654231972452353070361380220203836262373060083428590525403132231576179248093771788610630720542732891254419436855047799008883923076278033579545436843128592745659222134232988816828967062702083668939008104560222231315080039883499938085052139700432918871613525201623549181014996092950330836315527743638209183277356218433835087913273378693076578348095359416236097203217604900705109650524241519145502421400998749764993641385939093784805874218660233646503872198402980933604919521884939430191684273234995118236695286263577242559143179552268521971548950606081257309024823618375835182649852575268105412360013664487043848150524682371569617449858548932827898383807964513433423113775462127873819745473235317076301317687487233074005164740389520881297096910182665301098018078341112748113490485199362057662418496354699501941556998269861030544328014518043145643724844111184911468494246954524100666240496818071831316477690767885648687476547061018137520160669926568073680850307474609238481249660855681109368695801269099343077212171795961427928328021756257440045541995835342818625547872797005110381213118746595731472706005540450395563314459939281291099327692413989261907775846973583397871575057155949961772670446344135163376914204939692480101037590176293551844619162666556308835023467448074956233841018692383233738836928648468034862798504183555339543958063272202109982800003855006278176442793400821265519977990894383086762991165626117526324429936368284134697853005059903739097211546409881492036678605430635621921746153458092706489472030458909026840313103784415657413845953275419039179379239648130974252340596875485473100357790584420495072261706008569027907947870917192754636614541561107794251683243891354092426968318822808192233453910886262812706926966307878527605229886454280221696399472736821928150675461072561882965573197821126990655380701211944480370276229582688029177836797487725186277450174353589636598103906932716433825430847652689869974169435126619464228024704082771757397419489829375143056947903109710635521806188708406301921317641911436282734829132100037768093378793303959703657939289246480477830487360221072567380117905175891809837870013457529309064686222694357525451393573301446254386292191118869643262340658237840141059547916905361051101875102175010355274027172484434152020229508864581575421633334101653325584259475214293716917329640361716173395184338411153844420615234430560503593977133948412187122488931425614201423571737372215879511437848499990243453432715004050490173267345320428314385303465590495804499743628419596429012828875038143882125644208016259147158319798210650386403186237263699776962324482043758031922994338791793576921121349764717810296897020895789711556126520785793100169983625450297358320637015386442412338461828604276409007750449908630936329952035292105670977150195420470252426441837593780606699936844419144143386661955568046384415986738013873033481968434954118430094228832307504366446620607084227660050896810707736684064393509948811009596594028028556113932862186300030258823993050937261403376612310311848035034002442989369411620158142187609773477616915694894819523982541149013774335851377818555453768158234023821266040879351656270996339053743625954047879168323942533838027891951242265334063114173041600552367500984066927616238047877288290779577118090841272805482623044463130104436895615085869910819235728935033117984559244858799025561122694337250951126007329604599366803827706139256194723022569701391602940108579163313357078922996243574638416565292891213966812542567430314795998524090864087545370248279774251672783003320943755057184948100269912434685765159280171171412198197538958290934568747635209632054566108089369278472907538883899014507216794930914908422266530883937316017412072664868343299896384615349499390830258548889990482488286801310977473626868127558984131388433401946230222296628240070623820877453192211410260430983443832503586942129004460867993410339520850924774236276614855314821872058806386934456809352108074553473650845849206201198146003980603760483040525372284789505796354513990707489791492667276811660979054640932301406664858183836628533644524520082603954628658482261842112211141262211443554609732644806200261591940386812648031432812194810904823197470686202464424229960614036345856566077371924915152324203775467906701295958967048501192347437330677973057904833319316886992598221604164948217519759292235070596560766786142058692946576099960648627947004802854710201549899861477466736497629502370302643825578313561255364900257462659289228433605056706317455228538982562381960413736491057326576090986074068201422582918675222587441579660015989346530369323014494381961206691551611486911483781683842677161617441719505953092439660925298733747558982452640617433536952236112499095943300029327902387039617878882342395068679326182899761905687488352837759487285793302091105117034029861826952660581972553694319626586360901465696425602339701758237447912354083566383035370880551307207867850818418714974188589901627583095805008552109116340176736578741441142534182921411153554740348614684681803229874881362567558662467359054570583285505208635077640516383583234408327241154889265955727736149443891433706993334309777405862641079417288099546105784017876708005245048781865764979729242043296334822872607589188199095736360379768734042758014442125048592195820589674271569046873373236172533257649769682309196322108428997230389986772730802319327553716147727737466574764406315130137214489214661182720826683798449941963116133913796705514065867271181572069621082504242524559743651560301372336864922673279371570368686128401920903710980153784021950447841459125046614908509949840672387172742150965362262727738110137851461386039087677637949811903708318662666750297678312628815243795186833615357922993787610442715627337544674884800702543064726128323939083013151415581293487811414363816567811540299691737801788754095068424652566543238122924466141167176707554103201824553130145447923313084257770491628621069607476777490753822410910992428326001712944518878109501298092004612058426686020141239905078286601829506206658015133966334243640299021465385386565338673844200039506180258903475181797980723023366326678759000693271697547744771499684809437776062132207450761916226448263386994851008216885264410838870945244354065799667837635888871517136116645193492864883542133086567931106016101744600695925567227923460376918218360999260833220345744623304412107154207920514236532115435523166332817000505898399139697630163390426579941977745773593986738256755382236214726377767856785283577254024147010121247240000032520833350006340486130019705982749896730286484461263441158396567923079488712583525571571794398936833757094751475131595655009957298781659297313078575045181567638680839072708572200624591335568228942003770263413953912819572350390943161720885751931378390982223322514104848505322838166697043655047118192634173781213454550725698173123451898296611719770918907363436097374403600817160826139183201756913317453776004692305577862234175473824719470957104193345482696773797234140632618564885986304302742199521750444564640338102033915965518565740502046868744995275023601622924038416965363897546324806956114611353976108330126802143263902426491707491615224683714277840401045248223055893770937765176105110784299776389193564834279620154174639924730555370900737370965648942977197737050984162461101596022470028123512871022910120975913958508872640580627882550647180672757458197391196902075825480527547020936424184552567410513367828234520279051543104129864501286658031508449953783882903122487218759281445184201505983744040571133355668025764342392501911245590556478326747519785451145337510708773808423784805261725854732361714315167164375732877149834241515570040191124711115127644174492144799344657699727193982945869299705346336080656061205390283461965748434779675648223769991499169940574888880127582833231059819317363332015032285643875643865413589479307849413535091282411927984619082324901787506710724400032320094048661537083367535652463095338111303544551632324296720552610155464336911489182994894296010117778801265317335829677882957506987596729529276793843739167563162657479842552951025851409765405004936578902051879515709881958888602244409911595107822823840195565623572109993056188157106927028832469467064885278736033148412027236111541140309099811350683674353139944873552469955953489735652676283723405115846191656464944895963707148158768832093660578972579184438934941955926921705455356245804597581561879342666872335225435137887102950945746063990646554625739785236163562677530567919953151160068759205610778932391111399563849082223849653794509282868903718299556719808160722070585808390717126059517854935826301037843774756737405147396552532390727804128290309534664369581041484228721371280295104983436618243692558171627510702375780888827786222754917837177064393640221113233116178776254195759772024377247583286785822505314074735228727922409522044323824778579107024157867929904983897554641381640365772893967812488787944557837765225023114806115782928404779412907317956137252907715372424278795053409486858128478552974057822654944045865548160859682400374135803033241572982925500821903835506283664387305423792038250717159433406411085796298242558501323640763788509918970455655501165360699639532354457865358956795451161692470291009490653361540472376695096384626290319720302868379182476204092984184156268557242551708252389634187247331105291378765768856387830119316660455206435331649733537275765283584221043981641028608426444907238498952935470331628628917311536277898471349840811890577752145642272662354506385937217453869655825785846589263869519223630406609913538963740090449958625863768142313100118756232850812095538327298850350528024934882744864390777668858312900035937162888795364573737056799533831074846995513515731686246142786604425843827727184795828267662976390769878002638426943826969756952080187802439100407745193109785995312293297767557539527924654440059102885708782950187498850194249705784541809539086978241418941317328263682651195396568011891101212532559217003586431146705532490806562631729120091630651702776824223518796763382643908949025390122733643484530744705150625576314471994401122048550049098217478518285940923069546983313596239731815784566633495863740570388793504500045526389522912427066638253087112224584567773117270168885049129745849733181929186261933695358946913556883642109569251949020488806356963636867153465313962996004875840050134770909841504524942493764295384357153519485605192549158209939851446201667464636515891127544998531730204974156590272384842773577177549860008622186976514490312091759004964386647234361418025029946109024928321073299283602257576316367598551455206390255858674017442085172104273452229624100689506555758762476045761325460316422901130499350801359271056713257396114046043212239899232031889487176642097446344588960763162256555337018544615110336545928655444162727478640474867818112969738879391164381195081209560328101102094946683936664028232466968729547658314268236634204215720851464826910415521238613373188312604217137298202064599008188673367085668293151988521652061394702116190558449879927155153497553613241047077343932981754978565685760405839134657712434379297541853425216595838625244737040720565919259769234617813950729383515275850529710912576434225744776723774973150860472979972686195798566349799388139225446243948880444488889487214409375061294006792555762091312707755488709642736887475877948388337819791527090565322854378148213498649083822921556820929140352793723528958987534413113688783406295502996063779583530941151676019071494174250034060411840377457276322718972280267767680687868407039139561002907581895456229624667818159996793779433343983493482827634928098185353404961262477120726140571806925965723838037473486989379831572322358579900164944844700608253835845243270634845332003003830045905578952655272048317418951663737676028859706921127084357507049935788160091212576836367506523781493953345464872852861724709443830985757581124357121239847209318639440994037322429959593069713420255361604019680994457655201943867890927753839941117924393570312149838465282367914881902213911979395679131059779107969318556667009444986538815403900800370021499564195900420829813617186791834707543141446833116075538342347448838723112366758597308371265805740739100266169144393864874353183799805919326489038462511413325329839329646391723132633859380059203456378968432030169174093641038252261843587917990956271543389043526032562719430792660857594761741086806464377144329762207541879422986133847904664180171233179818698632063611628679013242866782933480343013768857278713656332116937799046332012005701571280947387387014295300282026933499048301286779991335223635968212951165064131634938039275545968947154744703355918889294143279754190096885770661115545548868882969247832885292281858257557803452273163447291944946841526039360162244994058304815856070821758511232132700801871202510197491235256849870378519620717330205163327033088915061473495570410085291445566280333423437976804120531811855250444116978540372458190793814658523287728094340363848957733046534568522660289073576055826889912953623468206537921025964926153357575440870332734759843641578939353475565134925497125779233320687967063246483713661700869137799864871419305509900865711993804968433094358084637934748437476182932141370161228614598206252301797319393169432439789667355410327282000043141031630369468630597420885473137504421454079091461795678548769513400353479328186250997915759721094492613103647710589088041370840966926407265877220571038134519787065635982069670101651785840807687651167927183605275471201687997005428166796679450238817703860244121020525191265086428430312400080268475781253826543366732746931005699667642055578962284012347674171576138948743625763140245982136274069806196112605320415683970005531673006836686244375853614400451783026515084948673143281313206671365070121095050899768745733688217024895102091495553661824960529140003852016576118977511818883803942421073971970312129681875354159921450575205043673814658450844331412969263779259202086590234853068232727001974538914469419063514487552378325260815511088700053920100354466196242706133052655665731969272182973438961811030920946169825296408539727430392189919361782282970079092179981762850884253740763853647679000936414690158809819749559095856274046399894923361837080094355130391040083860961493826813119071225501136740504564539435149830191168783713859559008394525934349808740375880109135734880686159086993505117781920669133292334476405172215343883612581340422347105255926750068875745817191016262449681767021590113354548615200239352646642132609073387190608293349830378700935600703582161639289039173161199300325067406092764859832479809854153865841020446784209442262961987114655189010881707860993304245751221952168276933903289868105547319531852957017272069113062773886634544961171533271585621780742592555621372735221186544485180760386944179402386626484337676554543383593289495113571123243996308737338621687819628450944946951633634027132789685729350457993582628555483087154821761554627013077664953000466975176336202592973333490828185057011164729069333672215759247904949900644803528173296385938306786842584183813028871574566699293263121796403969583141511208968116030955881535690615743943113237116311902672865837937000831536338216351029406084845190702902775941798085764084068142627212410791356289569248697217025401383935032526709217916172900467084820843163642394814755272633110095516327587537913702960527407584153513377950455602711619534389464370859321382784715623579191857431590834641587856171719932739188057652796738593515885078684734752089535927561987142326558192230087296025407707743677315912646454552422774360277933856311209132751226002399281237402666238086447848930127322872264332570392348894052150661006856391349243250681372488523711769413444355523733838830771088710794956139679015009564919662651803158117902469912049007550438980356961328102170590184427579560618819502928970942056716606384849714752862407427957623404618296162651499616160357233927019081342113552111812391631211688952064259733885951629241306379191963828144387984946049347930274921386766348562457298524990966132854758130863628182619155509220588892345313877045006144973735921577223805718488814303611314630244663692264617850865588579586811750352895163805817420381143149970966832411408082462177073101116001734241895144929276720720674892646880365820845973872731748204345043303168609270363754365000339656913100178904249745095199013541996979610664043430344178899792950265923447349849096724637641481083022915392429028354489497489117994631861015567680871786661269234293719827429291413627292166543994067659916452143782839101575802085651614424802998490287644662209074227781837821083324339583262117469195984857143107552734028691682698670958931924971638110124149203582091739248694474602031662300134292937519285078063728163113665464026233021425071047827112813771004777488393938766630123332826116636806784559746639963402588516181511487951367190841871885628687630655121210091081998417788680339750703271651858818518266870823797029900563765645311934475006293835412089717269720132807748102667218766485883156532255947810925402521265393579193604990417709263359552938234274895986435017613416734075023881536001656069098667003617215845362468650470755714676428879660914899851779469374319953466102726850413077013227945024386588936080674322669042309115549386040075471290635350787784516354414938231502865299626171789686942591068485204870659819360983305332576869918090461813522754346451741268544524162113714952782975029476556897614572859696724131818743813504648290007673048621800941441071797633720481493752266538184822838506138642756902652709762154793571845885934586156345714766534409145618486875088260206859639330825192060763983124978112071694356939071589612216182495989897345525354067143984082745422634613146327439700279684820457875171354159332504571468238820687420205474580201530865826765799258628761438749606993451833947983670422880368127101534952023354922155934999179560134896113293164084749243949528597675239878209510845636408718243203971814339684233909549071325314757355103299889669682623193902668962499272202846703387817457695720855683392501164177846821532796436391265918973409313104663148633636137526910478602334037212270687543639893318906142442870396245568863182008664052491083693870751823965929087347015415283490378117915309033138210232499262298965889039296384565021880814365192083236744447502957488030210158871153427020626335873251834807667728934207462299939323962995918117414989213292570126608755100791377252409806768881702026752863600476436661853768621866384615564744736623309284362234624978946383833354620895320450729897838754025285626565590004957988695167141726369304264673679526531776461983172302951907629815349893641439124885917661351811331677403646485052690350497383846739057444102082029730319642943652491729431189177977256795910194611198350986476807899034388939255603263738919133303430960842507916058047146461948556666554170867382093410661694308755411354553166218349403775853917711353650866534224970312657523581868522208836750899672136198883634209775229353783158972707840397567446609272381187793049274553779377790680094801198438784416781514998570504829734939205378274506605059695192417247858984336039602865800558305652292721808592200228505633413620352908582862155712273786184432735568221557134622585719212590569467879808682327782787133319853474888436309978619187403348529500213228105829496583054657640125603728364356677730575118952896325648246965692784516569693601101990292148561115996748442401801456505113604453436939006738365570905432217504366912638731307765568003907737711659278384663821237299615341816635773457136588258391026648618904177520537086535539650675063766016304440155435496458752562952970158937031255498509331105891634672288199367132726007073403414104183273842596531820466892706138686916750813946662260470446339783350178594986115904985052205227756189349580246152080649145977229394919529190910781500058332373082590391884813046586335971904913684915252507227737504982497702031728398875249629622345210525023131266626538779111891503017852151101677826931656627762016379737150357328331848205263618628050527676998681626950408582641505446401249089202409058782897597892843611020161662784206582736908986795015096175460541130594559915339937100058536027610387352013003891130300077014330103181616587612775625339498125203997513411359136887499043433638552737611358370870641973285868379587768298384031336851936002359548999462886152477165392861671148821243809167539687080942661560825175996123090540981858907199243075486210730944176916120164329835764678808246149520434149871352818970687403842907625210185399681114679205162882179419830602676167622859098672110238569907405435725005050295661077189513909505385662196007824307701979107114088928992046231359575575193814854812994101947963747814405405338205500018224755178192545182327677278879000139214980593229262484856814719917134836950340576011579622907901284689017339453605800020428823497957304684046902562523534538628767752815410802228361575504283295584845881229869217899715652141987946259791633523627425465364565026800553027995095177666764151880784162493139135217031369706904759822710809749996882172400099783983014467738507011410098871039723324787642233515314392733876360048174271242268019864554812259348623062484815872134308119641458109083802575899875896514796380308387679523029833781663980107437693433377686311496436522455763707006729175269919276386012857081083850009230403508960074988292904405564098368494867996570764402740222363653216927409612101531868073915289113227113121967679223359208767728860884502641451810823190236621613078866671493070801519247078314758835064847388386174093051585506057930084918789482342185718906036832380342575465428573200351230713924025286082620002279556333354700146950230961694603783091736429296166896761259949184161430482564978134330483826831265707008538312688313920204506027756549428473155892257298155390930290782396737544672296002651651485739651884401203632729330484817758803696073942081497096809009813182139395436120808394091337284017598601354828980108686401269136128839916954124537825394091760363674390806327281227170674069433914733167139996846346106746648084935861588320651826234330533859943730018537565255824436984544159176678558969618993312974172229943387094244965131270249748367459207781447902487373468220296601356400784186771955651913875275370562621611785233527964537137644937814639561942126832967030668716173673228723335662387650754021891762280973412299186800233894064883468106334135716431368823741809910313179916934702860669599882445534515894910738884774922431899991738837883636059090996024566985466414894105011681926743606246414028458338274599147649316312834260818263121325322972545519114683910515596725332630797193644818855415958544385329292792875208389092294427173444995540559733996973424063688619385212108485347474355692595300152074551990808621673077093801853712574691260516581202371375272254836574189668162582683034416236846096056739103164961450666240454608202652222646846793150492324232500237633457149580719316509986949074055522515521462920027629753764465339553590105709653193474284043808578961774350191305794389383488584744552748524334257261358968797121073182934554603150258445920547003796482060493673351610478629018006879426574860776473635999287719432634544613135376426626828890713744461555889919340730435650414224914418431684585496597306505027377731626846640815821815013201218985219148037602153398436808256467893542929530107814519804485297643763320530051437895829799236406043379803027284311249944028027002741519623115361773846245191872075244127254571056691783363294943084151387339892542697506621553824979761365952361582836603678896574310266873337827021882341245304248972397487466715859471246699155704903509810560276982294185399519797898495027578759114381380634610634681534725734268696386409392183860959120737001946883480367714244994460066358898306034962465452512596209270856456509011230807016626423024737554406661506161341435887095881719263626532460716288367835002852086449719665620979891480328423118421567070072031509496020888088340745421069550307005207769781962180292771998633032135468696729565540731744270067032736387997908881604010800328539061651737525308733210449539149159710512729969167261199408951261832969996977198277748712139453536091212476381974276311031881640122494711030927986390133998687006600659638658170481466432588063600300964045299354478138005797899760961603089239053679246800523167054219874203388323918668756688482237537332479166000700393688579904189736948312251188299894748212156689487802035099720348463423396103145561984645166115693324414964840409259228210042840894190952072170064317348295395826126889175229575944155989888045465885159735119631325812838479256741701431775495159172196872645864562406416028130410645006327638986880096191678966682467475225601965954275450107064302874921142890851623668498050768365970889807850857754125390103257558074437559569752480691667762478189619500625106295240877678834216701531488102966593579979448552816648531038182955016299021517334513060261669994643729390790630411386026212582454054295955566723158104780438426382124166114147274843000401106457155033480796853364173764948135829776621562552913177296628860444965573852375607880368415346408190123730956685142173517345047977336083716440276727321876092602875432578784263093545281207261485353514904695664494584679101955686681587182687950841928324578095654159145566783112976415226889416852919945494510961685802866616098680115725146390665396254978438186730467615278283723040864004509295810461027606475580793817630802255470444320469798190827386111458563623370342082038691399492242343024588536532783864225438809825545525998598553806207793292206967016102269686995867935716073621617390447205445407143526955680775218705486786193552697936478800685299102298763816960958400402626244747321262077965563959379493397136324906005992070132600566788569680687029585885912723963118960703569721322900869702448866138665811456841703078612659962349188194753928756551087742788781677220641048930787774695248326291714592323816206005240639511305785607846323612852851433298420979961443617765111184009033225392694674370405593908802760046406782790299083667766458430778060622463265673990857954913806118263203548571060598099257511578437748510874878222712715473492241674082601011194006602293285439757295060177948978055179439780804050762161624714397915754096097196121665530089821159702542574027073658118287994844211753835117917987669218897977126534360020374649250089691491032034930229688379797165339315996529857346144359731428089153040335260350151930589742785937612431059232421408043237406829729960051461309441734931792756567826527904923274572968710319929488626764277148650665143683754193597944748209254170565102093047045310076145146155215556156571022279719196186278520618092957255956199512972361755833498510526577092336817362018154769612212214498030444470235774969365912263630948236188147179167071697354631220421236798678365172799907475489488047491631265159449961372605724116891775413641269789487178701373881748141239664018705333667152027705952975134358788560687564404675443729907410686054400026907568900450113468610936809070953407281127863773129136700296195144797233898092845761427954776310028071305042275968841904648604131342414595017035065274532023576740059995608064402821131578881826119300144073814695450441987231096570145750043272236386315424413688688175199366114061586407642320538117517589907735730255525907870803934894438360549946087718962230080574587661983824628661617119563901357215356522811453218249767628456181172912711819836498920322245031045798389977014694116810693033270693005260876817197857428082357708704336137524765161355388332526159247378338080502103615600289324151525168015751426806256990009246731074441153770813313522168928582272369747803411899014620268920026976725340310890607473530472593686251530844962176364445585759754374977421084252126353752806333783608272213068010873534277311117823208567076920371172865158225166562544179888537930486058590166229173191276441821772433534630643916210356427016044862208219754249519126689280813117667463494297616279368941910554764466105307764348041510575763950517350312990048655618877603219102462798766668257537140511095763945971721733253680094857667838581249127895637801346130929653825956443662246925659864662285675376549159878156985512605128522120276293879701040155317644412353346651834597290034778290788789482162769949977467318152424702129646503404566793584344378495343080692362178590756443210591006685517205782593673788575168075461434038993415783678445234772655946390231393436681494262087638805764652691376192655108184782071613344067125803869852152023284390727546107527522375026131113279180606279172268239481622377157111397606657903146597964715752864422604137001251900987524745598838954728805070172087637636668574687002302116189261080069314077406325369260442861436033473155437102791470187848144097527034009515638250103429524193711336076892824406406380698762347929814305737188671042006112651357151441593758583066021291232039872464756979619672944088291124541071650747019663624887000452651642357034297607751746012712850457267993649005016097131062739215757894180965094886568726259525737734969342840497807504698405281625151584272898693281004625179074578516004441465727047183719234338379232790958010403499237396546713072223444954700098755786168807489519090293562284919230477587630628030093487450653107188917705340990809828416535259082276566466487326247028995462061854195163885052518898009505986123524189952894837158570294594666246184836126582507912412600023002203863673268734018951075570152832801663685322209566529472220281317852845095296459808720277610313635514920969206701070087815944367584897089635667075802606616264718486296498726663520121649313034018725330298042869910072448822816049616416238462061613889510932818168222464101423058028959135714168254012890531783274269849119079116229808164162179217175474763344869745076140207472049532085362478269694908085321144414939464547772114321784733690630681161644874657647841478701958978346080858888017818354388831466595627134741411420559572450572727763608361141033960066264419573916620148468778301224677183346251707581829170857566116506532664798611263643300896916330518951647800121149441026458190870217468215318897635906444302962623545584651254499991481483603178008604811176895861691116900508777412398903625356851050902205373189373304200024629674569802166419821940951639926063754123802988073161930546952111319346176282916146563370710667306669975819209816854374098376929826362163348267518935969406016736239660973543962982621165591798533418968575016340844431948785340500357080529230121402962978055061910742909777110338289321831390098498351623640437182547237970492283227528772673494030081330667244390181905052457883994762352567552917990125924497382257899908492624655116892946447291268104877272378119753317277105553651308363445030338355436992919691568372312319522877830337797435867230342773045470193270991994704051893126499138692381671961475963560347056447823616884806400733360494212341160811366091419696754102748713713043149876890143092950088300337083751234475470096098346371546472985382180604637147148108694168230693886124108795847283726275227922356867876035907616948813418023503323045795959190428725375560601987266881381865326305531223346187512585446936403394148929282568560462041335458697014141130595765829639244430337118326717225194010604852925176457338737380424916561979713911355788945567361864169300050772913754843290394514845817915642293845184186547706165764400374430012785425228115585826253519176868609788837634860949653519043154491079850724307657985463175860279513113255824423963805345948925349866892207510046325873369917806904710879461563435066156197394792693831648305567238693506276744125730822403244422469189874927756231048456519277864931046656142920754203400779341527662591726564507267305173720264453521067979842671226782079124512129580402122370185815815654114696507950669827343079444775276633248115592615952728192111314628201984974003202431746594844480500849845897570241995368970643204010718253366207779224101038813564826593330790538943281909091560678712893474040021754331733257434548250050038301999541278878412951185301112225024602312337373538246464453977244861683378544350677854026115595959619891246055369633898847866218924496207432468817065786600886749804360207125544941031183898625076088357819348370310714296757840099969836816520115702657923591613925072362095968281491871294893290745209362280046476333602417060624887717471528254077115216888841518740754472781345715575589071231398440485170201752914129778535609932826801224869452902842881184117361990024961232632070462777597349461440679947645969733362140576811526075695141871763741133547250406459721355927932593619444775510888191310255631986596886513585576764275044251396966052042534587500010523643423363704768620527583623201591200238780394495990082255358495395415668360298668735490566740100113344808443849849544538398698730076212140849600646982782342111346503087034308004052929373464060724685967327213018469205193147373874351373809804961794642224570746283934751184992847525640433229535084718791703386830127114854559089279818684241284570563322817131999020567570379353447570608529697547561124185752816637153277471728111811312276360989288535380961632952795264496820595838458240825602630066205313427769446351257552090458641317994979405269210689737166307772030486061735038587066198237216059985326004534991926035300833123734458803309673342615937003674416516678861784983905564989325445150698658704353995868538036332078189030761020650956182654421727943948752569163944841450482771014870765261778329342985856802125468744907728679276776887931438648009053189035501998915775865256006525987011550688286743685567548027739429711266792539289495550590897861404378004096877548449319624482416487950807868158195453841857177792692937236096227406869614264128422008573790416984955541623559453956532343550489109142665571595026976457311404475515599179607473316030217848203546419446084650879130269665478686330238081233040349430894302315166937652753421627890560658771890507506621256935526613654506211662799851457692192677617862501226345155780228413988085813688667023421364887514776739788717712404039525813377417229433986182889537504565234849997546715649728470072506278188755576921821009925766887510801911265030188061386497123055746021647442748169423116529520017683936019970962776442918868668889908033450173323170472447146776369767939630220822260828702743146122418415267433603063519141595167581208466964530509119468846472899483843467330306936937697710509850955130725705021153886075333093522568840605421641478533570865232793164151429787835651853653999084160783719645874728986722983983214041283588315946667358197037198360668995591649117396305073345324626214631659698905420312605148789251836648457995412329832639339776815208713328862261196418055216447803516623142773798411715944395747635518338190482560895368140965715332209631022137746752875237045172655940189760902027473300328391135430620013224478898362091027164593219162137145128485058397941107376028993193396321248698403205972090972982607735742886147167743282398306846929620409026924366056297438366957427118694118784761168878836059464680879615025179862905880529495240980724686028007878558030442842811351061577574729177590490139347806637396783502029492867471374874125267752734917953146811024696504845355449271669232098534330559871523212945262439548381972916807858920109301268926771695088566123612221012901410590041552386010645893145686674785506720079236595686464588954317221555099313450905832942642604342420642588713731614975240461330136352487630447561485571060923020552000697604199174745185642913040070463269160217017772431497815746245251074339890638678645940217331115842583224320672035098715676627151513307636217232013399279581053084425755414216983914252304997711154842352954987735955426975447309623879790156005827010323267870573489064662842945923546464251039862667583477037046106787305319459129121329473985608029306325225924918181870712368931114636385855140022721804710292891881094842390686803330291830389575222034350105721927858865453351539982408426450572750545044803730318188609838593728097116434931803819754312391393273641958598367994862320266547915593542625313101372063678795869620481396038500846025939776791819516734368605675805702559316616686004440707335830952963791461179289636459579286082463630629606181283310033738333717341465183813632763337036740334171336157861011416328063541797881639755610939627385247907995967165757568257229391406602217581178791518574498234390124484052331197848880928496301047580049924491671261132609427323613907035845388413945984847278337288777630072947517136068818907524281268775566035588467509491617868034195034418556314462737816636312560695762571468906298800044986954077180719005873955811545570379878676254643963660061708990789412880571461954662062647983859476180102548855524661600994742585858105508342659499651297837113910979403355417364820554381502952127299119801693738747310535199852146490733970555015060775328480973321512671302367127018345996025860084155745082956576649129680566288017802904078572541624494048348778039365698034702097263806682686475945337216831955559172440231061406620764798706982198454748448384780777570254054835681268368602810608608912084481568846519151800618930443661399228144095706040693814633576771381650611266171292626846286721295630359209283298167244874867099182248963697116379478096814747666992860188588477727135205179778758757811598421698476192776326856921916336636298477741266624820917849902901004916438780409050938408105534635750935238159697596308525566920851214515469642722097863705552488579812615616505536823413520543371253100053219761827280415945972013029922658962328441806881984714889363735735353629060238222784194881011185030842186054504409205943198204853116512624167436053089120616527830775950465677459649941606413909403080817871705040338676829916757552356797854442098364854225421702752832102998985765475988170969152476131246957294912331521384677726077595443267964251863715921972448994200319919332427448844266997741151414102681725588626295872614855304786163131195623132699197996953033781620970377592537703131576401460888577560647101880517042624042945898950798323548218755864670182356857964946488817477133182865130091593355572738062218450781150213155036257647997887738063537213419781345661531151109729573377022399955381036501337240503657061183293425782451656164400262600728951209035756356850011472952495142659017958067995230256775920554216824808959867396916844772078480420718524303345497408443628836812803965944607931166878681976915165127607635762573603455917526353407553501556287895102577080152890955564060188322298368123093021549250336743652213514439897635385845526227233201653601656000352847143449516173181191070063004908247093491381665532024014995554793841729712332980341854076327938062621252702523265721031531424218805715308444506292347916456333980397050426123352442274092357781789096103342437454358919488238173797045668268500385297261382329803222392636050915481983906361350297087069986238104816866060601739782223489036679422891910215642473285388535440417456096683099564518526415351358852232735062599475649046732532552851503981217636445874882494629653988653700568908406483406848128192122350616394261742689907224003768845413958686328637094947608584023727757248031957718203368830873253821538291687419011016400511526789550489373961312559262475680896978925724332356407710515738942138211330994833754717082128650237511484832830635695240730057223550860357798878203457513510354578217178932864993794900286038023944387785950283601967830460881139259875934152335454908460294585309828151024092105646860345953367491870134448542013586898321971791377749816131051843657649186939135747956151716493735801090655062465265498170644593318949081621034248011332313286271585390454418192453858770204107129169203792043835351976365721275174990191578439119055150862499787722051158244676825577366350646213677110176574890092890824888318574517514592415257773867814697246019650334316150167548815085204812729627455501855029021594193137529725620131141396848617393135477333978254592011660113069333899033229841458206838633659631551661890202670484696035095930995137888193631154080321339810745395264445696851523058692591103205913520442567644968886232429096888709738650570627304069636546691409844500251087034018749841178343818650858664222798415556345391865251158944705151912989150704450662320745187658046777945654165594479914348151261450829433719435943057886197107340639290390401401964940100455818764643502808906368605836932972850298931235999535530983219557939176675383470406451932909211750779903993019349180892414147164575508144621095567822493162185955277703746476476599905678872392018693020252004149481986498525829008514272290922982949864185204998330472859824791933642246700423515224982848491564378476518603527459530313119028217939774617386681294734958650473391863918273950303196368018975013991672665512106196632683186289882451916485685928058326788701722193710738688325586989800075905740250311604221532048655754640912676266345677358459629476350099817509835718051491909727582733630665169446357132723394317887985111458142649471952151110758988834554411408108498522380349745367973091984906308492897734507305935613685564977542755591977147977816708033666768685441443248253200260603734652863747315811361995059101579148621139795426887868932183415761922440321545563082996757547015081758484906069384638677310136325365200992585725878828628439701039283179755382672506909917109568967514921198452431350914981421531829600690405087661951365347476927115284271581901567768596075061727618141173530147393098566292646876780486595204591880820269195953154966474274424545840408199525287736627289013908634960430242359216400583071277739649055327206541061378025078051627613114234687601523834421273491794795122729436942530506813591493176273003722840351422120522119277901578527463702553358862711546881025217691154046945630170772156810873195009853731765742928078232092780093705179270993928943137427125763936292880978218074927982578793724726584689066931817493530726581181626087383188700620314134735331944631043295064711692258601406077519233630892678223364139424179356251476042663820295151098086627363946553099723829904230067658575653522620923742940475074039836983252128829893993870317070921422146833599785664555523242899529797232875904887375616243736840436361798712812022591816164489037536671174298843185686949799988135976060252269919466219974726093768172533776995557475644646837644679282671362485552430134535679116742429339600456437570313088068867953300056914125635419666335896730168764878832040328218859690434217574761414908255995691149164480870011911981436821626928179851179490561804667760003037922413726921048306841284972405049299924419273641505977782455270139278573665848127590608707691268659761506566695824997363592817832679288128830011760283175465544406286025730883454210031723913291129148883602958629047790690065078822118455058894276493321497430697977169859328503167875505105319642261842811397436812905239113365953393101477980470335578864898738405634236503643460579876660395044284538889017452117646227731814163698101505677461958977804174200257148076631359924245096786222393679209986498892400479028996910617921825902957192449167591051938431414605299673786895909290720931399832294161777847733534432805303417083145987835603084712183568153722090667758082770163913409297167022756558644372870709208333681448949669587393131997997276463967933725491618087646248206363178220533482326234186732558209842400723530394967830996513588261670389644539523100513349326522979324517744007225363683718828030516191464646237425085550092648606112912509853136849077169222254217198021187708748050159328218902166247396580354139825638890717657403944375716693196312019550675665591049464056362985416581218020682862903727384039791496369630912964874834919753771760428030856380301283009244917385505613525761849780252808155568308590270019072123631525369021854863630788256113176752884789837003099755574727322799227094858517905740499980840040811828360654559612832906913659423303120549423557680764103283456636671400863440150142538062037488589399894745670343210869888998982036060139246567098106552603697602939699225915137418182677065006901018037896767361057701850458197943839042496512803246095149954536453958784597453976837355834915047665576174924143817095013909720413961293013012787886330727601231015563330350509943560611079240004677867613826048576478389417974730140209773699489970749271176990422846385344799766658384281103455767960661228594004511408274418889808058654081445817326427284736076379891865311573632051203678998612170252037452078965976742936684747220699261722473999336135392920863898199359251107557189197445995092681302207513468796390398972258542348528968139385847935725323842039198196010803237979363636995413771076450994614304915920781755266474922011940380726342287809517008205351215468679584193992561468410788647825561856977139035593467014369977161942192835150430547949099026334494775724113657098191137227115694769753468555401806060689405467667169254390684604276202819726071653306592789163617602011203816177294572257851392689868276187183912238587987406061964146931701882448913125321615077300348810277546201165568674977964258156138413635705362497762371495239231399478611968840264379036927257161369842877673274216578380542262507399938171571830834229143587375181273099993977393969280246803634313711488524677717913719405652665039562886029870614116807856777687249462976282735293845177566450870452820253307210855242946998781129576380740890803404284529408616905802901253812845198778739168335155842589835519552419980619054839773406737925474968877139267933121517161934365850667074592888417618218246105041709034562171319475009735351221895523190419744162434598107815392479016873565289162504120281724868103069612041153542990479252273001309943420081603553719105175240201390642924021895123804340117707326899235912812082628345936012301684327508017044286186230872937806420861034030830057373189402742887471079848453873980597221176053813517949164514917848201917682388559774688964074396325567271621728263786348719710386131929720780571380080101410400017687257573956814399850010319318987784921669576984835391063818836931621610307739050013714857784693565048184764325115857396299155486456338664106698439488610392719575985500333267425572412970552510895217554033371268602101546237494683180254142245904572892432341163856798934105082334359780939917604993659661935183552443948168224413516637580361899211605464087709059608075305505379854240277488189138778307850936599921413614362592378470105890585871609394649672206620093525108668345899514733807338297585788924294644495380696383396061009476934622130498108446908249823049696205692687652628141030723918605259792665834220564988580352741531337649176810200279285458181621622816111402343557270012399226855214223143680989563332399600707664925937325254156878492654671240766249948574589128014200416019481530779962781283043871171801251727218982643494705316099789336030240420171810542676871036248437535805746015830679315908236913687803776996854318076599946273275133295277783447388080151463175237599267609059078432408830938834547111822442173346203294393050168737831428938737522726037323722851438816202422923284781303912450774112011114767041928905427046726692435112504094659768553533612320208126766550511182126374459076266976955927824971055924394075229804560757807791967600865046357252650694881205412021806440230390821286305217058030092447622110243194449790344721338831142741613634050734087486819870731439799364322301560083434820774223486854192136941219230869011709050835917026243666068798442963349766713674020306172306102847751420907089378584820073764634352439002581375935619628082277320931400297575689371565875982770246808862664816038366594835820873980436952515814245952504516744338549925456900546408799170596182559136979724021965136767211349401987333586347933933100360168219795079012434780030859741930070280257490780227502133217596241702380267279781545010563678357174230056604236204143473874586596339668712868220918067124933383572130414867404919384352871858937049568535894927479912984815541646247685569063660502672409014547349082540764322480365441204804557429340287869244260921847395834647505322728498200707078442192006397965027179503921937116558836575006131040660008331440665439969514179221441857233315946130474109242792584924912748290367815439322339549079847271146622694142492365526213411677284757606972641894080234732831898728448891528174863071456495988130174410615342587227777703384260502434083660653360099768190512043207115640514488693153792968420533343434311748067376531216864391673009791523684932253174381803901019955550645176973769949266222151972304836016028183236665277924354477018894860213424759815388061865427647096439691879164379107810408112718839494391001510870875119822315915261124383748588309757588830151048416256865133812484562476634105081959371008350423912754399265282518568877554812403716557147984195576857329623831763001357665236878285442870165867627922021406476909674927132110403357087240371711531983826124153217193546477021620446131495097095664035533972311245927886208168226546105915410471303847696978922032492882798542577769866226899943978852776293078838030471083263483571780685098499209375142230262935714123985719587940956563930899302022646018183371441814890216776100143516130481151415642535532946876887967249602704899073658024819755959569074318699801961327017710142145865871581864331304655779430141663196615909985974866123689408859095066861802453794364832587881089632435206365518318910236841255527713925787723808836026983848597106809907167949314595612554421088723647827827059395766763721229185935722724494839546310892898056842183523964456706837796530330256578116431005910709059316371019252208557723716661498346871732049115633484905282031475042820541612547788476827388821124001071438824812375888718031628468126584219415906707141193101489492681740576710039558246987484722754027823772434163149682618929728525910862130590175968956803106742511654976977814828456716368884028778926876046034698988128956772943329654646789682211571805858767543968814924122688296685244178214508702388849568220123289198725991241016565630795973749560942918267581702261985028855532156517754552373261053001988693182397654264044757102404757877378947276899552517367374835674303579365910378273791215885729861554326279762569870566609811797367339102549931660790940342653942237612733410127266727377560871724026621038653723711680832450508117510953491979542471579047102773639651149438570634058839723552229588841147120698946189134514321616508013363221972240045434461632361990603252388770950730742893949133808000959434556254303530661586239098228790045020560380542481361520949173253114964362852181141435769960861769209596171994180504862267721592833340945079177327858163826222118011924886965667019315711595069670916610387824485828081950610909097828794047634091294963721287356547824194978193202618728085302856752078669102239072296815927500294850490434693994419612003864312790260513668628340177354847911834435761314321543103846650351188853439108309983556665273717646423868894800455000519592868814775033807817537142201705427233926780390413532485122999320084138393714357298280321415650293134071905902954010769677109930205493020540878418676030656262514364584977739452248736439044416731057996715724623413961251365744964384674203161624809458698875534506142173748631557057430139467907232200766035267053823080048147676237877262862246527130969136221248294714783910967988549944208063523636027880187879112157947381999632626406312369616949653396973734299215231551860768657027914113290624209287666883065308536549889725139355574394646966305114598744155682250848768699156037858313269195423027107659363050964600396910710681862985763214394310967658068543020369447446208919997981552317489274694304583980977543740216275742735128922355754319371900410011384654314367047907214939928299169600184498716768889940916893720335763915642440690723103523438529566291433123319751506620094149669768470791415452242035379844918848086219361456102785759932834157869505351923282708665015342270414156073434788430027851024144141208626379229226140990021584198391661179768787444709669783516842322571442653544903295541641364243497362137537803649933696265529181878030132737506350792801307372963477868689847102912031540349487406107969648863335222682442916779597314938798445018907629830568451784325529222723298677050933699627346949821153381850686036412506790119696163104672410953577256655587277760071782434306118268977539422437067369632211194741081798058522082478920653678850235643152840467393243622096603681399639265638481043809902671297630855578754313220172584413236657030185629320582864413212924970638388160921577504384264994854022082690457850417200512664374332263602100174419856140905870590393712781718127621754044072779414091544524261907565345793797010090468616513362707021735237648187103481525136992540852327529835814431495091125700739840325149755781194424055997990988465387286362875519292430009388159741187425249716917335663264589058882318698015700823620905891745716551893275675917352299215268049535780042425650964995998526367724929467851028628841873003917612332112863611282233907377120451132367595622666182655640373829844105351229470744716676012895727372940921707359990938807867712586128571361605917906218625907946982505889601096402891610001895935470024764628101617998201823078105427955667345333462174708826648773259830121019370179332374174382352099251760951031069868326355705054633015932913001672361700457876573184188292270361876471106223432250029161919682984867944846518824405972589562209813643383712482204397246173794100452794056316305631769132914908592156570193241658337927385782627397318316160060363292133993781591315335072946444736977595688654558359516211218301557585439337109061813847862648832074896427765462279528075691493930546711398050423197243339532422685941342770326382157906508814273872634369693744065793863995013969815763140294938167224651495010189530316414746601252179579444325336632243288437877113024602772298593725865662001470238570316018557723854204968827400305087282572827849559783680358180984990191736561313914116938640102996713551614535061280468066893899030254973349400203652687231179181425936079525633871011148409562602537671182707176398605098919143826587037104214442433840366648919566940383534005891238066432201721330813393073791607085384588937255395598431265331336982265727758762264569571158058292680737218065822972384347653032142035919347507871479934240785845540798351726591837618642088786096820747658505553803233621937631653709316589458492960798014153230646862226776806026137931232472844438681767249067959202597522747246124556738099575592113858100524777976854493937406045524139365802321967415415921515340262758795930203034253565922256075127292925355287634116122451150557759948052349212074959511150982712204149813188909001459268797382617418456715992083582945076557718238011648570273314375876480998658659600226759771713875148487983618339156200479987478251996196807255873974576268242670044975384251441684099836622208678152553164979934326033360133038788096282102271944451123489556901504118211522989134516799164794556399675961088548967181388795884977559764296570413406821229013259430399238545271343908983007043709743681667381701233014394454167054623111971671057472620268490085582681142458708500208410997431291312200899383736267193912382578574191758254492696951040285037504936279117491401668681618906318715320395752271379161130033870484950012441403261588891187830633088910124024106895468392428631324085192885718261205106012580036294563724018185071552229640244644291009514239545645245498856655001632338428522961403657756520142649409119029197976460590918443281741891728477018834712162908538510222773332435397858791091761691467846843392216997615501150814781249399021950130151217059855146931732584222952070639754838502900599072528283201962707099626838193653460127294356176105025889338382839605640601266786472238728448419800596182744030617102144758260276919697866757722873779273574056841734405310368793213542437865423024145479692558556509310053771920406563074256671497245862836642639085313947956031146795086448606516842073500622656757258608873974813080294742362549032883657035451589126554928729431562444460615610905590917253844475296039537657296982234154995962067405956695460461678678232511335171219874651258951827905820686497067251013953350962805997942439370555254321518660112232636156282427034489871439988132101435914382419638977014868297237748877859271580699528575343068404593899404604663451219668118623921276827322823064183855201533232115095252410310830385171893089869485023818778393538846803093865879859839748052685466695015626431759951413491174721332862072169492305160571612240574665953610528023997295450512398501484110284067082897088660989762661669553117384331919763464826477066617691734401670377934394899264672788179879051572962694019231813843109084902175568899836353984309286088436005978861699921012876399273916422394570879009203500827878283949060930860096038033434345813053221238684812498394482038216757233473621183486501119509046500786725406418436844940373165711207199954300760203293682343095721574964507443839622362137595335618136751762377740633794319411182908605638394558096399867505868175738002072094080577121899701733157285972444460441642798431855272078815968881493360397119864097415707203592849901877361017912567627436261993963682228808639146972350578982960204789401689089015549056668747861732710754174143877758819103425834809708325744166776481275371053375547264476542734133339938344590260633162358632854166214762002960266086992226886178984225097312377835715038444576164682239699614043578595748962442689242342004332373044330475273177934305275273462350121124425616062561236798903391733531288797525909564298022788218497800470780896317750109011363366491033670791410170820068113075448365235853840811164306658242221190919782945957753211217509837446983318936076939511660162792107240236654899834739066553647544373768560246493140993604193675691519089068973340923472769388812680151039163316772211088785500131415534276162050177189650556660115745441032196384706043649904854707758832545437983530628995524439830727273295935718888137871661744699765552024443865842415554173935788393597403927698323446408183860651429615191611243935463267988404235381374433770091956423100282424978492838547414488062065961078340751575876447759591577873593715863859973227183884316963163636238657610900685933506304699129698495775102262651809446768803053299443883280299054268343013575006387611689343302119905581914417748258773032095770770387143863291444805099113758761959648588517198115904629885319228879819404178295317184218352473674257159905308725094944013820878364858766444445308077987036849326389674829546078058271975749884219235044241526835515497257346124358906974856788943087528452115092960257036799557940638129533476349223715086357583090566008793515711513062037781753108884571050769403872017544742703481804222159478635377952835135503341220766864703587456205150398899805271789429572909358499074635325278250352422300323275267317328449146160997124608653275123594931102473770880404649030437984442456280270982303689343530074011669407921853129831553629254782654369520252947356143305383247277520427999874636473336997009176796055079530294429694499066634995826854796792374971493685060073440335552864585017199800839905443370394433279163878557696539115507971752293210820198458388418702826833380514185338568106082034975012265436516104942262833428201102549156995635401184320629358277228677894070949228503472228854973901953598751044793937876186342580656296754173969293498312956117785054446325545160196260183813126226622071585676660072443889366852040453419902254250649501424195256751195004465789074237480417384921732374561777398019783786248495427482247739037614867210167080525961093656267760052582163287816636142305559983160085647540763355101000358394458265127904237136417057547023012559941068628993005644791196248638621901033897410361549088907609922823860912803944245026589342768864060719836790755955062572535418720690223080121146086867986610320225290667163238273607770719710602637638536752608477622655486295966998384786642010858545071129372844462418055380828909591501620955723418134554441507263314649562766248478308184377472563385717871586322798462612104946536104123793918683981900542888885775882795276667769366685724321963214340949296589834034885882952066230596143728526711786131819147677430609655739041179513727987544171908451361755186725994628821666939724760195297198141111507985378663741944390920846997776205750310695119547460551296803153312571368403651941209256371102781261658812213639680102758432536044002451779854568227764370779102847637501636867061995781375621779325772999796170984817187599325369389097568525950360508710508067284822564110173801207501719347821888618168462744930994200202526614771051173742516168989996067168062831551172907615216697667935331267158720683531255643877198056887079169426561646005151175054406646605552299964294605152736641046077404906123895537574155821674714503225017461305449605437299118038856817342640332353497333438810319784739257471167036056564863733830419364506840353538438365877097627109789163619270323610129757394599451854687640100076837002262312260351155562369383898564824734565762459688400696698275293220334845489400271753476261798784083878162100919798476600401550307998041575503710627598598174290157189148515771052446764679374209334844353591726692774596654436193969874930135002003329252141893177304148988781233559990419197560048253718067315119735215778417077447872732359845840393899759498389144190965044088726163971421801094011689369814923157433557780602596211497736476915670916354592605997569334376275509522777130424588974674362006848734770123516411992676705804716723341073154155501103702520396686815947874913494385191844517965474468147391380692571009637776626484383153171179400727804671713180601710398302879820007086988665736593106860255874179917794044106220201614719445373921269250138731745594381517564627073899870330639542328246018563292474571769789073693612216764340185786654685552872926163791227869058171448142181307097090123262320329018396803922588055863857643081629317232159551280485314581428238613149628088589171105357438012889960396472186288697496601416348694392842628441830350916844438242151653954301082235348725404414074980531386492792811897975963948554681392047027493955159669688382449294631945697100692664633048053082240985340798693181929188652268721616586201913923640439582020833345485089517148364666001583186133579076162956654160311397338189111676933498934367737648279356389414008424948647182609056826031551177616886110422851654035702279583846532366254176015867449512187161561469957592452107225866943060241124260506593898506054898971855782376190143653957370290236783796698587309636406453057352566574711481557132587219757168651262218984334973918218244926328610490533567435872373989234129708832251558725368796784738622796613580872661515785736375614744231177243415298119053950147856703635241012279221498764086672124358896223025237372565060993094543434624891368737900562276135063536062994751191839733002149000399728067742495465873599910212620805974773319962424498433127298723964363213342066546693909745935320709535101487320199964830780624334161145293190244118647722481571463494046438238189023689704236158776364318990756542973302094053006685276332544637991038816049032795627048256679435258451326499791004126841711982622527968595765331562951009799903344620465263859260249295049002054248873726870698551112531976360101156737342489276315242003520885705105405554422076525557944363628861131144424069808583342765665786546738687101379527398599129412220341593704991504146596646719404206723466795367241139390348119358101930456208118907497357292830859991929997158770931813583393443651267637682410128932981564749922977594039454099150197603307990443716766152120469522656871427871695073234771732579208156060201940760070467047939991891270692327182902456109375385469328985849798910706633671787358374315955218425241758479122592850865241439882562693777338412893771227693789507629545339624062852178339323878804481752798915067349501788957538961332028931232994475278336326169543988611639158582709305835134143282820431278683245027621166533192671260365162785928697862791614522276638074530148325803948465521084118767926694817545255368978793945663248497390431731869511504141651215268783634228587757470219552782481828072850776646009874871696239582180181889197761089541032950285237506534366409094055760857480216119502910627851367691444980946989005884937055009692756621237708762587921100449389835793106219874725160156194923035293742294554857670269451875723711564868595539483790141161085183458677887564661269798791217986139205726149328591119457991839943787557107706011642569646246848629522637653280578986854316483752345583217288419560780717925488249160205430979470351871050751028003933748888755874400165755737429638772031359363022047410376780866340796831437173856777334976523742390011489988267032427495061362537841076812603925027703692691326089207279197398503658522993794602586175215509911583400117831477860413217394501733414711369808654419930200415262108884577565533512845871649630825228721156683804476626162721729130991328245158321443597534878107404735919293086550616420139368563042192183465315542275374642835526312302965565476186067571175247313040744698176883929011524298618995429170259564252167748342640437100289099696699004380972304565429007245890870928679276642210232168529696242833567277688219966010892850797089411606294104545833869838545076150542764184970849762087228204861685067130712510433724197534565991996991776183606717189114270513110673127278288381217960410914798686061031222120152288061497642563761327386106563327728379304701757066926646703139136852958650577943127723814193245360243109384560209397237846974945158235073923305174496929390179007812618777531656104352441199425404737611503424396082057652290729769892495818788110923145791634242545089060925395165351551240552473029119602042498886288920366576020648892543347084696212705807484987440069383587744883170693678078038982902137795752413431634850184175085339489499924188800227302740127851269058958233291207654494384933900363609190194245888644712385631086072061966693307297812311860969266876372689248006124807134279759956453759258964451279327793983885566471794644559785851981257065887902127650352713491540911755394533201596084450270758988500474597987849268566244808019244638678171787529109638363668789257853463221555809190178435352752561132987201265852979678815144188229995643285143509908464035018933276242041988044096074740684983242166786115713736336044745857067462529432029874302844371273118838131718161281272985798510126515576683555488300821940302278243181514845827788429398215350871381318141059305052894279825465485395694293999400445250775494957896683024847035797499165162174691417724274040499897098734851798565087380032625720276113177037041927687104465796522865963804581653270255805194859775186401604111231363668327490288813005856689248760663100860089202283939476975942064794671411068521991087825648463984468796250762970531517252939381463453408875042851322585161264836039240943620102887209584277814384346654532085168841405622002131916373995210328927130951172666988240479208398274196286887487254058479496899117890880240490876658804504499897393867294891523024777562475826202212296349318989712709820160852366300275109143559523122213017641517219354777074632284576523388174178204366211517991953467672593439736576961425430795343398410420626987309568214425397798130863579177074040951816637821210390028856088774966635616446902242564110243366322467504580343681295851488583278824176729702692044013307687682870340929397904750533940475912311456554260186162193315027917913278568146794227958276560812285284689398761497702963032836753749836645826398612210920956468273859103583987649013502233902855700461918826918154221377408167328609654976742082968403276962979796063451934025818917433256578585389694521703170811603987809253361649037515432033368043371089268656655021649115464392006935554042071919845451890568221098888490966863558430405602364497406489708727679640202169245840714554941881686213613940024855542884034092732896064673677469816269415932023062027500073776176309907278153478917194561712391125770672041979230019452001809977517740248605791756254441458865774791474728687767128294966280715680344368515768150773872824183576501220593075029820999861495785698343218906059286698854105410894677665349957440538024486588950060168848283333262211556605555479017809959577967088517230383994264769420462027650830527193928171263319904099744619557280562336868090639900314395672966974957391479535269995154477266205121401162903935049315261360308682077612974357918238507293854157916897213112805640073973681323093185468430687328283182398352994371777006404580452013093865144757252413037161931829957911628160514937669133939756476040672264056662931094148168724139299722110095985623458460935212498719923945039527765807543766167243810695242784090679918269248845251512118575882840573114634917915100741744699064663710953539712178647991359815457049708155539590559812541210089941363578072932914994884787856243667648944787678630634557122826740302794873289870029638360508690192024130969893969780773818657653751427367930013811578835834557860222585979620058350845954590034320381956096766122548324808880973270957571696426281629908406365792588007860153839065575574944701807084417561086564484349775532510740339543655459591414463684741969393677647406460147870652615997062137420684268719493452389820998868252089644023333105966224514939214351554995258817525114166724147209323742049209947092503778691504645370153476858784317350707004822553801298552217991314574810470425161541855847813925148315050659384581795612526053394584150426072457450362146033241953123709694919779247319912167859688137982887756894709962057882189430095450893814955942657230831494702354216567624709762451198531985525771896190714114910773984943178917281192027123552837472723920406211944938715957378564622922610047441737480932853443816319137738434559950515128561021495177540185891927300979116667857425447999910486787088778522358713537432915410694666070924427771725386945293103116885774376546159653570889769970856943482526017716881730564092077390979227883603935443790431678338770176028578087091488073590813823045377275075780006506824867937824752883644125588020042089512457394483813323517491471737902341336145827216084572265279591345365358131399904437133461574060430309848544586949353632881092544137524014889497475002290928653842081470123758452728407754740171325548288604766006916990682330358076477658957439319547363611768443838168092169760339272301384338077550368591721419364787030533603157068464147271051956277677063742732697479141154298655602360562253295477897329924462418529054964133326678638885056019412199010339002753852646309235252172806198296053056903510781474244730883619965072728077802117050619698790638682535742039973737687462989373674990323968834750740921090129424145748365862611894857982492245967453363730416717446663809025984597184253197962249201135730280866998380128514786779753655244484709778064905464668350307472143490690408472338006099797485773806234219239823794406158115179250722660149147480796605053094153856650830180621480242842971762261538579653762778517581343681302833540566811912352700919391187968217127417265958382457011084303300556779304533277153562149223220724139099784585552680997212168149011096717621459721073124678109091839007897381719336335058840905213454438192023431486801326246835751785090454977961876591977364892855335922086959096266792203747156644850334256593996070167591628497553995550169916538400678288291899110506861299342827337575121288283791297157313949887165166741111339419247220556876004849829061885345965004168003756136204886043234903369063520419748010636461274460529258938369455010229613062252073183182971323134724912074878782492876083577591568825166546547068627741497006578069249254100534424551304141592317510394286225123487651044091660319559972497406628513839764587690653307836040822975874690039961921647074045719308710877104596218494163433384991833832996880033220993729012925475104346941854909546208036195877173009817217398083490850234140623757458327533953045028026414560675282219309303682676168256602473478992974078873035887223326477708856944072577139069274704031036104753999043557147531638688769309068528555734584292544506516034637041498567770430494914030595688299991402618169810028915181888537908409283086189660814368842198478344236499418030263931296343885529167521627882908612904584867255058531185595689764097188298506653664519873903748956655243710669737063242716947842933956956797867244314012664691857673625435256087010736769706190923426452636376133329611914601791376538456795466719982651491856446607614660511949713828979344727470294495660430943770488471130936853733921101448619474044255078410142862134046056106137745404536652246005755639404370846146207691177069836153151296442833037205252892242141906319110286375304019238822249712176101830441749761585287114962972914262093694733503926856323915106218031949069024872237520588230093088191348473606127532546061386097272663863904416308666573153949216854078201123173467208816332815747872027836303934785775411713758655171297948122267891069441351727571387846732057618136152848952000928988828722908060942476712223622985893797726152945961865886444585311929874561545114172918563677502234226922183589589377918978616072655682959662828908006530319320427588798924339896337373550410551941574496079875007772561883784252916302579226351195413117960289967689166135674372956623090924738030162503605899167181574968945892160801428157699512558704389913940049452117416939614074812192905585336048610986740668269117483811698986144030356522674219728577525748375657697084945516289998869268032145618703602646596987423067307109855831065566584944733281731528108271562258183154582753425136584110094563975194038924965969327728953712521145528773970144806619177457822537685983783302418485075740540207295625744916167552944472833442946340829919334009493732366990180365615108107070464175286463873652243844484934150365062638641720363486844107818230718628242081383106604484808894315540694119101728271575621527249164801099249819026653889217749703792446997178465088450825703175358081449420617580248603994413728121624580957802543537238446259354360858525600996703345898520214657382273425412454037789168000314451443501313090829605346224094076433303832452163605321863679189341398003711185849684229842992328628338708683516004396676110938922243603377262087150148988729768973452056935744875237111515144741343527331803155856174271793680360655429191566677635188226445884818141392709267695623407994385020046517417146881249966067031541286600714610012847258851327437885179144599172277229544821616752917294709420690504879587065886777732341734206351500664143076841478474134249564008646046096925510200063145872649087414509967130670421963009504148951982210161377487111267596839874353688733363620051999325447995955969326161305387819475097406705248467034613583263772188559452367409578315582303177646154170323902901679436208305083157999834224513977508885758797734578015707029456849175734219496220934135116686618073904157511419964251465788142840517404263141006054701801690088270430987362472400682456533523444982380817712413332162602695709728155998983206360603328968733712033484101020207449687070119573151329582795950594945005466379931631333117384416327196480840832838911259263227428820508054717767733621730254343264659347612050895061170759485747602733878371897659055219320366676317916901729316744281598958821128000543279943229363898920776067723583449097199496004098667964520256105159679038871380690587370735926972939879012563995737440824727175814447829011343294516303136145959600236414944409044655519440783874687960180358504629631154424660018621915053125070875679136703955843504243711876162037601316129464080370901715914579057953878890382518556523651345180512218143299285735405856492241071718116702000353571742608744782654693653102869853674245677151865521231095747468101782840364950778128104383762518624443138731449293643049593872642022164243421265333125837438125294289660349393219091983352796789051766070416872599477925991909219833297924204514384235811286575804963823784270137488292828623563176363101176825235459410925155524367829761011796408877819378686707492318094014641359403022749603513719617631071702980404951200257393055390344081185420293745833422617579412468478051399817001408677836373500186439403229797060610904255907699705173168705964507421030665158442071639977609008341833522796235873524370809518803073196500766122610297830672337104096297711344108317501148353061287669412113927994971370084385790826022572923681757002475342633408186098872288890030745947800297573315639383424797119348858381692047605553699795481228620609871942714021784159477035080363905861017445717499709155247902477723902513158797641513854003143715063175665687413069880024801147252220823225383997841241635285470243267363477169273471838003778127502839611600576554153603499971415954558754450026270470218960718647814520369148233867349561572637582072159258992003592256344261266024363583353016989757444651124249196922075570130156314328147638146577991307552691917773093199702342319429632925286217858169138537530428019314760162823097790408023931162523319967978053330041182871941213109785724825279245734753487206177656870841826736869013922709095565743915254391925848163551734619069167440964777589025359924829056683550948580407269647805932304625975421886694726751468178906526143387141396131668727798235715831478849325583523208878346311167359720051200527795728527166253455480305749907628947688501921614933383366981386722862614285789404282022113960406852737462719793242893862944485235180275066911477655765284088878979137528364967684795054429912352636490767454850466957931017941964602802839980923645969611668695781902286872309299791754163416228147440623316350383715871909000001216265703268581612705041758061344333798936058371497205366074683004133364476515214645599760807740342043058109020630810282674808429315786848169425752361038829459309729828332755102550684193573058033400032866035322620095276393874501721581021531313318593162376641866320237991757502654351689602832285119066196606962120353546972948643900880401505176190763253548608382388895641769926682944094239396126231172734697683189310377155341114366283932721436776093355449689534518373974784741621707070483522073537731487349033068430956397537803410442658256442512535281490873385703680505431410695565235984507003993653301856370284733904089107775882556850910315677038886756827061402894320564831678477406248179673553770681865803988745264580955519706084393281177108827870815373002725149792818962849311549580656955921225260826152122370019721514192609588505682034897291020861227855991895694044031053593683848928859943200670926756124752595023707037783313204256896836675393696474067533758742416055340789769176428740221482759511085108308449602393070613608330727491189708718105036049628117563978018187602504713804407003687187621854744575114004317070765479779017633881383411372147990899128008430942823908038690985109656488971439023082631022223006048746210150223480206300557867338746555131782635179669958729063437068465073922517828835006800296496063587031367086259429337918000096861964314916400286544659949622201426285300513251168514695457618571160107643364714424832524671916793426903111496922402959541849872880817775673464072990035069756647011997298387567381144316130865456837338430499755346059000100160390261733651280212394490576763786719992395316467450261436739099323344182960358812960411182459821250973261650843003287059895885031930405943132527920249281659206059902205305609601573963165812195851153184669749470972852384440192899459728952941659130195575627314928844260107365265189292531463503657105805244323464086301389070114946450044399907946630504110402896522212737688324872846117904815926014584035412973337751908708144999260245072063061636999935166562393062644831772487599282670918457100689624114954251234870261211051998044096606787739608333964089272617849411083513771411432156196182560311116762780505632955716744794348033455005250657491655047589657876057016634593438617503232401940962825505985998672706121746499751375068423286643130628559243111865638387645901113511289617276131049789961319211239299215855280823090012973589670107799799362764940082805300853123825293546021683829110698350156983696153299418600821314869954314895667232045805411503684466918284047617942345205639727306731339330958202109622282290408573786813230555243955675711376486946080373958770655459858465040076594667194652543046611490857330695967073238590340236170234133407919778120899428692962907158519257929870895071500686252873253559522776720101443641495324355997786680307831258461600501992954343987245946526245096616606570392819474006985462112086031560021603895404639853371374997567065207370627746472435324110187690381769921102492389747522591259799246529013499789218754950214605338962942009232843833435821396334488555342915778190598243314495577719268082287569358369704734007564886647453329447085261940735861104072384940425078372411739910866846059008762732227458904859025824369766774926828700590200266479389832692553007564659211422215495371219459752068199735777898231583161010502582686847885486723361389335213168096735411002326180773374900074618244435734489661490469309370673470375803266586549348416179215525859035095339531203649465143516888410103268261494396764646734227855950281505223479149671062445621393471112458825867678286196321117939096350601225033615154712300477780234949308268922666223377821742857193831591343121859421035843649920287975990158033064494379644120206253185028309133882557446207270136807872750142804826590886772070427827607199153487295166297427374060516358104213409993442021274837318675354690432495938612195321693322902763837522607509371177889695908772351854504415950339590242265445370319339032303843823928013609138257638252060104044916087697591859543833159901202068764428718514122702340148276655644458805198963656943821622819860743830532163457659393752127150107588603097834332160257185445356486817292539545026933764770121287874736202215165595631017523611914490464417711987032593336404705805538914521275333677155387757723688607156482055899146999281882492157029645935519788208713058078894670752223308889089782177881270396795018564022211942229750402815559588578189835929255133922606104607176244332903780275623283837755922569401023880183923777504913244505909311588592619984041452540429029183246267123835629212347036933400127294518643338594460067816595258994752174271524162681986552131436565888630495001234370391950967971501771213048854942291943560833193303384970087590463573974272848126878774221166592925453691669319626699105004996985062425803890198302011533046107171729134919550121745199570188835288223796150809504557291125220141071341391114177686831971880099916619720978842104330031016632763527347069444192209545784580598098174103065298518170124030623091155142463495508450643109228355899999471114539654636851076110042663157754718551155795795140341719998500147371484634865029710602656559174465398423801715106112634436934429022185565382535324433703239117636508388953285327599494353563640781293565887193606148985008870053906245957101533093662991409006951240512151538038636745443903978199192303836680117555055493147571560638887701478226466579947499220868096007960957495356466983175863652392972043868667281583119426937849431286821848055051592252705226754437795135088811604918748912307417348453056291980005307513286911318951757019863937379856345741024126920135708305530866128954825593850091482262184402109406622877090532153348150518945874895590892113556701604783668255291782836713751935756861299506432604413060399868494153626651877677901001566189905067787472154018628454746141402053496423707433698371800996006361420690338545096602208887459355911645582858902540824619393228930986224740239679554983847195864127666626601585669537025982382679276632227111309900605856040425076679457135155375610379644902810597278982424476406528321528024634800263028219195533262121650799961677402766108769417924704092833862760442989633833235459680232731047163098275613644954197565986741789313598782635076423812150223187879064635360930314098731720250461857651634754224783850994589844001830102304610177005669385917728802107847599095224735904810375742809279468640425207743070898695345571498061614386447050634904256195045258694105556608372581331669747483780579181968814156339341959753803865375413603048216170443175136677878842707061408596815153818809438556043753691330346584671095892254158953303985581014783234691536189928683074362325352116949334947751646533157346463048621902990328889123703833835443521863936788730283365042641871164178269205325924029246528770926186399532081016248276762735941359516981635564450324994870350560115762914897403809748436554028991719777715905441832169157412419508726966417602835042810021780058037077524532177836162470192207316051630566185639705018304614927140892032847426574087641001423578710965853469952648368041503117653741199313308186644757527169757152545243312313094171132475379286283101804767562996141627028990616281245168535490593118284258659840360282458546028419050269392790967044890200016450406008095003037868664227742078425320825170257532915429219972495813835720973894247081206117167006732914313233936351491979985468243922775542660582604878914076785107524859008098780273710792763292274066351755180398540998229198804820723899774332433999933964446836636202048808063981039139550803332222586789648480629458529405872096073862778419003181975764718539811734038314488191459813236340722221450865770034765191002913748283590795940499138591575862691227078507934651889898935452021319215867897627961530482084538505708528873426031046684740831308682499087206450374820385998342274401013643531726340690608063927191131594370110453486709301727127416491246157832977862019748894096747030494546400306760508616326178814437317193477837107351556891804001829830050213772770984343102961254671667982662803491092782333248119516493460790425779340597772287965055844222588064452111379142096548419756657993612582212983561969092208548953160045725148829798214015087809103245060868789836691598653001539547710702952811678927980285789337555026267883470388885891055192625168533144022233312827753833612211603820909362278089980122760954244337284720074285622462607010766770904425155591155321823215817603325916812793822946376974523419675878951725403857431211932961573356531206845033945342785618057911439314442576083921003569101431182971250328249170219639885038493390185918240542542787748555480631743554706246712859533019543110527636943694601630551477933969253187680050196625353296807121347988906297028542349667090752555539840119820408105450876443245226804396646523893369458030990932323599055174194848854642156069074482619091498347855993011551682902325002309848082355597309028511375672496368904130400468722225010314206963740652744071678224252084131926355625839191646328362724423714083042107376598042972335233388901539083117994869241342514285748177422857105108767969108595620755633188661283562457921956338125849282558523151920105962245028068702165466008064489243116521250702338913881281629403850708165282742566646022699440656190502157838151970704877163078584028156304034196011760918897370849420488030511201731103801751467439381084679996283652922489224692334160340246762906586147071863769436885035367511337172916487087847660133042086690781598532358937700496179023860498918457436884584919995217239777212743025304482551114147453183807493200656024917567570208593882894433809825405173215054378867855756010556488550628604743582452580633910646848880135093052044563147768722157812143083774934654350830271701207853735355709381980697644922509671558621620919009121095140383390451535982941432101892756065328015278877699444489825125353599123113187944576939806780372663688896806532895392514978851867358070791004326436429597189701276958805292392874369188111329891864850437312713885730120638825819974468061988030113559914460645182597023448822257412750205887964606817764216249916950583404959170955109766448268257514204054092432565515161136304883762943183639156116769986264804417458709751267042846723302015357401375186861724083848233529092578384066818559974013571654549681745748031827354877756022590633311579505499005118349689259032453302359335470151340706959024136561981559390015098427522747430264500951242747082290027855617760164301879104111453431790289972031954205437826880465721387456340256748640372814799062557309477257370536365968621697814116648919841438769502595538008381198877496255736561589454221564290040417342401501372133554038855335665389748645385931170046394957672112975307637383099699300508918787686043887464654862234491717835756855582302887602029505637356506484002587917170541849456012992618599160197578510908867014011019321095964130893271841496491351837250863191421636768323375658193121547672937646380433404462994616945275685706350159230655603654216115980620373147791270168387272785088677440828956348403937441897651057774411187743170907358295617755230243452084429414118626204453898810104806886186728657304043861664996916361684446183808351691677235037904303891019077754720011063455403828065845504332612034620124040643100502655669465282729360687364127840501968237984553984658053694720457897308612777206810395994954234954703574263584817683992119808481056623729098503833248302704198272872607236303729557712356238719683166475501471062518509659948312109238176607430424839932931766865103971144061001711508501562222464261496985931601676094822517853328472437502361585221926985286827196517133759928230232835584756872078064187583120396512481286323814869769506437948987484724895907725103828270000465205889664376165619181549839966212371866336760870735711065539853167887214393609531390603315228205411208202223856260498986778119807461281823278524505374583968356253136622735946771955763724722272850196550467380197135538861005465208876850716302303777200764654703934628378796081154637123031246795667904675470554518930629628182011866689476188665852378919702788595018053291392674257669045211592551207101281062980556262164143528082032816534724343317778414240398185497477223039558010473277430830987854428420875219864770629935157847808461823864496095495046711467668787413512408205381456831331097415758270994275461929673592245253007251944101062634169721339781751084088766753762218255500457468672848377497640683025069950347956804703804671316051817746448055124348679322848271595982982413649844686605722722849091387549569656830271876409512156021145271459126158447759296536255702256006093166799501032635947305058274589351649870692466252229132990400085487231634455192917494224179097730616600481540821465801958842342597196442242226464779439162277850714047238313518709906604063531947894874976313439687316605280639588053427580443692741210552906057609881123290767345321400594176829604113868181663847382665450291715203026049805233359210276218179823496256675718939440244945660019890245727124353256973063456165814520532704469262307112583515433635446446599101396666560970349760808674098791979447733198309178807142375288111379862264047554029469227467719105287388446721619388315301779719865438017941560928966100653459239535375972050160975185396607775690062109304590417555367970559773370470683617955644521231457412602341138079690926979177225133343674880579131017788424398109593782276227595960558783859524115505212466638774055972481844988979302400977222357498916219215028363159381821207824568146142323720722890937085684962286199624109047437534939801725186450569179825081224549134739056741700653544706917573867953076604623051617905899758567432805423163175566570154119789377416360581531913676944884745909665523584648587233074663384344564099238726760558347644727898541592119498819511658089311708639078992576154637095496858724683646272593539073085354871755322200244214429229341346671418352454262429482899179031105728463024363753666846968829261025829174674789005296380858282867169271116715924042800723517775779333238521280245641094048135704215511343447916658493286512159447797167244150196305819793170482689466243273864881780049245971531436343584411139527394119731440719162276528363000144177619284974282146310817064258768006716061790896823093508806991314782629517542308941320388292538727255137714298765876267849796221378499676946703071207216233754219728845695750705838775232340323555942941720184582981288613303438229250674560132657264356903472744076754021666182855625051100547168799629916823413930274918439696210748698295794403038910887079470863104839225630201377495553192776764858740611537787509600204271292753663555607545938317668930199180268662219822240811922472512321851565897918772077632043655696134769663546142822604742270705156793892851126106666160329082152713837102944163056588051686941827723698729295818591634520052590754950707610265543015080668283074030051035113116459678075669140770176603838829401868164712273683645111398243118513572875095903467244663273073918057505416693799389829327426445037027675401796155654041509388369956676962671816976502457012431012306863135239274600795389159300365338493612917349273893620400041966873064427127436119369489216158249785129985666863459680408126533442650182604259889561510866148617516352543482647776947325300607311213573844626810360596865191139462378615998293874573527089135371253512376658315935450948399627584454062740330812968417218924364085402584777546745707137558792096854112332356515189060343899187597879454619840789378699565926116699837173147889876189040060986254391550796751373780186503697368636616747795937077436731880217687156971201518244688411495601088032614172979755455898453997976458814068124041180116340364315212076023244191911190611185782074001865634435769888900665815367545898559831436011268870481830736871669621669431419461691745252021946363601228301280063869442752597545473553872919430925898050604469850247066146722699252920106232726350816817240103988519353691793308600425031228639426927247822298647485468477671922843502341246487963226591260079901540611867698678122575736030687057937738114969290741251326721252728016638244955973621968403990522798194718784132280553496863831017426057309617113039296103920014731990198285617045100618245171545007987764675211919710420210298496456241314762869157813411810717878717462585747489707175920790191903459272546878144515410481738649012410779881178948959507795590969483701519395823747845035952388991683835179430977502485684731078557224207245183414862724281756938763239055209272747145547985887670878796799737311856185306328373694944733883012631218523530701193088307085760698230713215819528855302403382574227148597437409531102578341435436978034643780228134937515403999519134793083577398483349928809362868295125562213113193849343986228898890056814736967022738497239227282196598621144588979143265219495345351966154170647465805117127770891784776778726232178374581228649842130417226350380499206616138550474899430934242310536978398486985997310351963449214818537593781530019770825184495837820625670748047102102108377892388475264765363766384017790474506736850308305115632726166836787216933574265387771904596256352412501848672331205174354192113791364416756843639788096131352227868782111259248832913277057814880232746812354661327662523251681940430441043394392042719921660202536547236429353710528902843397939819965335900897709454402020466094269734191745088806089360504831956696089372648731625346056420936234285514355669965464852762466950919074073796448485548134160613242166847015765464645565605157629249007389655764526580708522829965011587036539042578081729698007056571268250352775457730516194334544068653046402466202489161211430471213090194533073422834464118659675198971351831837691127149766159869360744762540078985116858333713771121892781629611497355318812731095133898317250675376370525683956124823133620636196957005460358619547647587054088544831260383042752432452319628945443306253535493896777818226893934350829514565279464201337745631351824266352049689890148038059972716007396797535109267069129094552124918018041170626203918633152603897339320525080769795547839009577530742672538984708593603849383631493204689940231116632265582279033311888445096637824754761266827292901876631491675307121007591193553421770526497348382370759069640979989672764811144998729480402331222267618509100842193794717827154401197713478327300235752726149975887821776477699244530949954648860886006779480583992849038724639027473415959291383094342012408727964891739698341473115662031670594466581501500117114001152388546284538481527344723935958347078469280559730952615871799335987241009790148117529284055831073934266436240926011933818800448432628508427821590667638377209898930416791268395835188142678931196339725267954637256428850376502817521088654871791768592462722593720915703116625676737019553202917517138327760342782819900662160480836841352546682453387718705565140235988805476424598417103959372129453826758333458297215998475443045467980138862048631847928294012068131447552204455448512212294278815239425205730521457147810409976706253908477120052500103613784910916224867723052212220379312166329380764218989777806460262306903174982149315863675598235328662422192288881008131910643237575543413737998821103835303583335579350048437155738258092872323889221959283716764356705565020199443265003127627163159357307969840852218827123740863217346981730774682726224388661697550044789415564280164748503785224306312897634906491902177410140097906962313231795085022357419893603150567513526383587777090623755424674322262501820526024230528070737942058594576667618472163068819571432328258424098041494113018467688977168111507459603512157500778443452098713369433249907158282661873080722244548596133695403287877911346150347919785170774786603323997492500303580776231248326086150125684283998012605270295784759757451937753682901225038831169704431687374229165907332096359991594086578208025170592657403379109311245243916121820248369447867074821185381269027291619448187911928051790068430605169053986535717310431570718046627905799581978499937486210921797145549147626344643045515210225115313105055925222221431074223945689639048393120849246168754088696931645720322792581709259375597685028438853036513756742487180958333133205509049075122944362391007445548576743239103412896643448466508890732466697965846338616196425773824860581378895994606517035184527452627119893399559208987836932597767694278537520886941891375815894047724605433068678143869054789271073179354097592788300464080253929134634241875411064249262480663651864219186663364134588004940423721571121694486663047907946983959731081707528667489942289653486203067417783750472132852958426512180894343103761203530497598507449153803502076175662473802595577943606415269803043432380909757064617960717646891230547353362880461759453946458186425605997304414916023195865602579522839994612414691278093572632499568508400708920258438334766740905288079536308215291019490372785774257894887171150025937343843763964016476773501904642980734224368830747393515864381346596597947975184817012890709016174653975390913966955986464740054571154216349404627061594859041433903092370334616947909245031988463202615263335911451714902273946382652024511924616360638659988325448856195823456500114410254398732691510357842002430041914180172375534868747682745240944668895116624370859857004283516009960431018538976596728076572845095207079475114135733103261450214169129327329810543819328810885080576390157429334636585754956921744691247511439048193208125867995911541583385266666901281021129076575147027022699914652454722919437642472429074350798856266930027782739340552576541701029975970818401867682619577117058320650974423846728589289059193303145392552674831125797677053312424047377017632909543262594603037286713611709605325307622390665448990854999988359403466467086238609331355746596265780711006828147105615187363467406058135305482850635485501733308332606922020047270051501017053113049624160596756932093636007036346049643973050736781138224951108575452466767766063509766703697771728772926567620323469957281274073699305847613682121834182688076914790223809776413361776581125835973920079666510926499111084023230934373290310907328715640783160114051370043459640941916659686854671143409914144225091535954881588771408041069801130872213420409319339776028441044967269295086100730573872282717983629573255311444944077676466370631714310262143879181046934413806944550043452156387319771118958367594301165358268523545856528893824951419770482860333123202187946327800924950493435395298142866713524151564429274079419657984579128702873510696566286528680966787781446159460547128212325044800079477576162851937825093083061026046643861056157559502685030310259991187879208056888191883632053142966540833083424212177235704403783262265026709540422607608739746017535051670254428793012592064468370145723278202185337123371562017684980721619207824518923652867663922073751128727148665899945112058371374968946243723301300456810944072753455332081171043808843928298543315568692464095197859653077018582651750425784137362947274437093474404354702172039618527589857058656647278542822283496631554898082509904844460598533706920398821686956364043727363664943409472816748306077596097967972668859717247327031275998488752564946191057922787685531604405895186709016043061599477944160111477475093692227628021318702134028079562263552901527565059215119182754037520585305269803600541662819167370147530366505031318129910609445844599759701510757938589668912091933626633261791360388479075481074189346708442547156342055389492470301985127602327546498906681083748399925228293046751012083097700019812643110445926277598178360809363665535412333208344849255917998940410212150719998644263587467575689314754216056713084316703909737593603163295633239159938728177048355490478082756144558817883467306516606617579429051741415131272615352622113302983327557116108955833884748661434643170985166855620929063184174875364083218082224848983970069672000669374190703925998266137480047245325928975199956841476254161767920095758588803980724302505799525581238107979707340343642497971058888038660463587892746115195323558812994927489455375332962524271788952286502832023478274970379559797983852346395796048521686613964286699852997778484987784022426025877126237364002932328505698937610031948987215844401229132868318509686049962243566492130685504012487366883410085598595662720478116649845737615857599282550011235527721391873051622522291551975531193169913892693933548122021179141944434577191634064467889518758510494943902817588323434093205971648899869436440067916782950886958879152102216016256956296101711252410333898374675042723981256393832380084293892009090630202056453281733454014528073078006461533271865262240460786989842290537026286970759773185778847079728654117173539923573594734150826662286573068172627061971327497761048447155645861998903230520089871928939426451564141726492520953623718189282127672321890655163585315760684568526592008156322032081767597439562838391618138462805765512095210778539370546544594156129010439894454263155049437605104998397810216762461459462047692402404888480622068319618859789485822342460456036188445105517988560608556227839723989158832242489451430040513474190850296629349692679769412795982852255859140122453964509794136012928103515012553143396033861851796739746293048700113322743892183953341103698836730974115228287190066940287244478764484613869617235006131706847709164757375193491505385515032970710313780051121439413514583896932436088563119446923319044753214868225259102997680000622003735988210813110343704221991589532645162245224748015269431150945365754515995861324951016112862901880248981111893581717713451714880110712392568636222381916018280814347140237647159080921744296416369295950038289685349573435857811578182172050564490878614873043946264728615992502750323320982728501343569002432551708841662744490157672052708703560493583743215806780397985942481744033411485630320443551805812289631994515142775806612521833218912342535968888656681906057851449983703005688500272144886197867942864174942147899769084230328066889505990469806903195232415365468719992391777727593179935006256714553839611745692510881921807879228409481783774248631521396925061333122501513445511764621752540015819111083490825202511780018468037474227345608690931031729910125846864317228348343123617896030850466221108900634483007624463536959769756183462783760071212647485196273734852581562242618953328709933412041827955029079300689500704328079944888038186934849157825711048356666919261765182622485123156872423666251093934223354488974110372621911584599652044048977819057851750973820842359647492550134314465820280829154635082153396017518036327649767167127928045100688844175894531120122232941934454316449458358216391570453818368552126816698742516878799616225020561652216173898880275371264123211932431359008974948141959102698907720007206640791930278111007943163293808469699165324339749702362260791490852699759802784791824358648176161772185197824349002926117299170989732498492004904998337100957479162705929783772013343251794034412555333442566394335744037566098464783468058939760378909970671672775796262497282482902535136962054168081472935678680336395038809686439944514125836135944826376827705003831317306370514707114462776419064406642938450730601961573307172736194548395073120071562539273862956749767514208288984960497012602726236772535218317680223619374722924772635681570384401491770280911017170057613973529211444645343882902350212083563630904460845763524939504534280785604979941312284392424610849256527107987156448034153204263804751394500977068090117749607768526610824274309471334559439089478802495044420673089563669398703676988258659702270965711017959748970635399140298232463829719718957051238437080249399953173570262905369388555428101732186365825355796729086965113839982993686869910580299040382006652977907811609510445064602249338453044965310970512692668461874292992005189823777677215695143045972224637572912850986607087731278907565335219989405057362297468708363191843672096998457677191649638339740791258807812036417134939982443254829688872671968766593474527926608884065390954188272943433204191377651627804534440347462873595518196108559770936953532063077238210190818211831729363854942340113952174526674953442861864331175878609698360707080084808291010241083213025386403378660497102671748918138831828166573924268158813804091640145591530063857269899801092994353359944264790433061844856106424765105760524122843342246871841096126909498635295818820700472863611133796012510962627157181394999626360487776561311752379551159047382022505861530466525024400217450260699984263694263494874028304350047722893676440251639716981132665937818155114531476957461530000250506777157472983162493185004234670457582250278549474566185153556721504236597332935311950489537524665280244279741789186495307229929070202372160990043937666820460381218720717257077504668403124850905011294362256728753797701863196124152548061444405243726576795799321980850047395902554873331555751830200501176961124024235386677795524562417072730805569616565747520457544236910357438616984928425911470275749248651659657172714875935311786286259410070341811499291818495983302475685389116016106807272372193593309902227463261261123396208769984303554093937273702918988491906966278115960913187447812052198308446002241646407883900314911790165954577588219582931769081995445630185317202109700749275663518990431046256659260231827120089890641769684079467814963869351445841507960366957459008829370876121689202166169296940010724717475393530962406323072579009419896733451142567505753726605368363144422059914029385855066081620129946684718333928964418581527351071097445504485816542045692332453583117894670155896049226625272882483016124869829811644601124295838373212854857278534990773890384234039352559149306186767660694333490691184099858965419151031206506568836857508510059964449512033193123812605390859593392048123833346600999953827572935474963715731217990199289677405672566454753421373699324151453968321599632359756916177635945584468511137240020253558189706310061296496603387286296084877313793986265462656542505374990770529010861346925681558471651103293877217728156731152645907090092545323120491448865798132651114135803001575719120652279044915112010326558328130700278337944123203945077099992505242876986785791515527479477064764098427842679128998816672011812951682262485704911400849059449745063690068811989460183375150194467244448763706680903151788117909229212709265646879297474680703001183377628026573118577256946472518873784760004455346310646322824481002296476882776287161133460642668412946902578226599459223622671020853498281169343095793327584915931499482184049579133240104098151115934157209349733949699606567969603799648816441975298908778895738292085182050916705538092517848603497924034049281869906526437291264816861697310087415391765537176774740795059394067642169708235438727868018569739450839033459026432530119110944830272124017050904825153161723229754492739247656931540385493283380442270864773177649531802462231688159190844267057367775939566226346813385634035755202315557954063097158364206073457032882248202700860218952182522819560864407151354195882063110078708557281963241457823790040022327173812302166002511812239486330590401539237928847629110488945441078272455912837555441901593299701838481819439720241492443413007872761826992334860690921112213899096326248697378768135511674983423230176638660941905449337859438239132243384162550320339299763394255733369375816163909465356819440725615951052957564633951184329407274454451515661603595515866925933539137553973196487412054387366046916824187251885064651793225296220344895869072426481921929633995277650139809609438558201019523195214187154559706937993063019333108975255330795273290855769441418272906510513096795193040166680331476907963239051167562319831076814387570651470543894490266942815181897239384806625740561684382407570786910184707887827805377068728169750377590183645951286989753517223109731213842159270981205433676636673595497001713774321498414141394180129248731324010434406370064215162896589415454744878325091445053681510546604456080681294659765637950572251184614225764896315150136488442189107446097281902313690105329172147659877979855408025637770841513595865441467407495351806109983726112405901024669021028730559052026548362212442512060772543377092215006588856752064244447661697159388965646390789896853178898888736652949491142122380761820642455230803852306138576898884439596007015346601343943124184481640932962722901666094970403565280738672786262227025654279865554576220645243480689260154300764492574165206987297985469660737402555658448989704418407541943092914602499868553655828601523919727400690295329733935945556949338995454284145610959641332287609025924170404358806393925226347743649678067582909829916857614329766253636535051749392577718852695352571552303933066049594950236528367535481375413060204180237599114003673139835662715651458522321234698234373014670242735365898798100120266354615629231092776520533911438380206453460267117381605248602852384823642029988833159912838068844487778935115996786831193495171756106927187566981411833099943840410900446823481682277213455426544634622288335730599416462868349204859848104839379750479042669761956308597583099617733973547175342631209066758576747345217960691845630228171752174748890328767492955734935290400153057762825300646424139522301595683575436084903691301268166905224893644894660767679776977610374625192460772593045570401180448053693551394264771134980136530075021911350895617703143252749915968486903464464242371072049864882774842441071141160597953242095518585331498201799205387608777929060503491030205593393762727215677359395832225028506548509170885965374761843504971644115799894140658248775658781101733228535164444570996107175088031542747631610816600736162820247838440199827256183332318873490150591102232671027638102624411875498662274963878052714630437783906462586338004782673807717530113538355185293867851551923608888874184176944729185575358637620705684248814676020408143232504506056820222545238752562324575152164684934836288616750202163513439222821568492673999366146953352735537572069816067420543379263096579693466462490956255622103353752127278012831456227496057895749534312438471563310169746176447100039667855103527389270173137932898041807779392059338815577654382360093615560419522801319007081800585286322163992296897660443260150769293663671918177567826567729799900821763598785566884910377050894127199381216159779128279278074391469993220309432233237292178959637584227936315290023800366746500816019156607829980563766982859855408431847860717234025131458814340961179105108303993477195947651769980482292313083913092258000525938303686704094111535163326424390570598190560322530627487315688586264291030275050658872080222660432611210676075805116606035259456351384075079286824111722994378098904069336821526584406695186803848606674519913109683060103041605083363884561088372521698975387903785440544192066469824668334752079401171237535105982770578229677200079815997856516824175480056855955906994696015035149695914997844710991391799602113508199868034062051895482961396424241828178326663843606681268766742738021457338465441850643346168923241118561398774769907669639284025102771358105238875796031994466035515816062775839446235304036019396833730169002192624863248505418759078201463312142164274207975381032089818985367088478655664866591407092043111474026338814242994003082287077281531230899373629066832707649082263136590742535344016465307416980961737851041146960640105083147256270607726607498167868824950910315818554399516384000105006278826797663943959988170736160093696803571228693918193265411956819463553513644923323632667780735795890785314457218066187901812579784046261877821658334376634667980082434034128872805754789495221786575256999534063047746970092848135108404970882047556216322838226634972592068051150078582740164810456371614763604100232127384259108581771695103392357664507697450034874877356226729922986814544277467055261795154597698401838192620471898859095213449835371920737454639125327018754221478054291611887261387372373808222579441886820201973756166505383843156330879548238433773611992301293255516940034701465490904155320144872274239016677139072675260633196711663327876974060455740938861263583332528737524024188220016741577553125652181166710966080657715055790523222369725035764668873277824453389895743330942656382317826656785834389183140346589547326472930251627632941776082666524437376106653246109309679196746988867798711650785840845937154390497817374159777945514207606689038398711789821548977152070029698795190389010505600451357136186443097020666847611421119815791979708083031284105213189622405445701069115748359447407138544516442692198967922721647640362799491377641829783038615181186455960730193689293558246911987622613860419977851805675936054574235368471009396867878050736592953068923300303045314793140864750293545913675085743913475005162314410075383143929350106008342282919886821656929018024335547325019222867097862084351726396369330464226408829760275807817986955451721408039934717847095349941349498578253142918716176505413655813511759018302679210303793829518229649316979477965055607793123381990876452733953329334382971958043900018614740701398174488305436322167542354228205958109512308982896263616680004977504226622361302660570674787142591598650577450489989226548076839613809169131612022296321502494142231624296896382568675301344727618219589080601308992645631580121791547431919586917852168216913036204526219860547170638008495025871838958481600624281135026780295984786450539463526513652619011087010124048546944788142454901982073537180044504930352292738070020378956062859635505945419428778976365011103881704567311024719669494737467175405806867674904508410855601771292552425309623568156537233358731984076964498178643608701311746098011020572993404328180464938694048597437899878465559044021647795002085767874468303157843207608459885122673119337068227553808552937129170180957933436991909640386552283842454935297604457444896721856428961550615530659164284410825647866205137931651799201352411629590452381098297514381085671444091704252836388059883026679578378417500238235899525019819474084523004153467745090845523540303416693867186576256653932551209518615876272371083057923837042352638328208709888265571853604673492831302577360311094162548036622565459614926250555158409061420078230821101297084163294184820650416180409632643199077372245066145654159766398633423325725106201214924955973986518239997856867832136618179096425872619206446463079263213030315508022996278084755219080828145796294490471784432952800650894350077043711049564691333137819764697249890783256740490582497862428190212386424094143268033938339528112386686544337872889395081721032600304005437593624106874791936027293728862352693168627941552633630785906146122613407138544574702350548823737214428673258246581464088529822693965585323732998182512006442773313559262501484513136975121062230329840973185106130062276957637066243266682469160500388505370208947167566802280577244344035842611029442966520090126719719011437405724944023032480828443690846192138536014044191409346717041630501169725773394866764152255921883992962012720296634725789970512146595535268236761842736886714086975210768780482279242109361883619340811264645058409130714126115358743322963503325750633934757290980121353993299334331771806109070635211522599310205226525702490675770340906783908757740290229521929161179310468708016583562379518423870909842780043141568850232512237787938410192101504507647286665153518834657012512218057456940607288677727426142307687830200221818756181582959917955323678022792726332083851111508763011155670873090068968450122131041885432689126497663491557218492475537730941541497061967626251107244039988253969340315048299536091392291300383883533232177621836296365422471451911041877331888784174460525120691976559752555059547095675278380451681772664471311236047913827284074765879349151466740446686996378586733742294534742683659913910208876331333632479109952956021414664430189262322188679420886026353958842706468213988421915692660637087251420598719267648568156252223910663817740167288301045063120086487368466537371728947199830049196860440734420803225119119596389321191996423716737763828770703229686166466613504650560437687618827497999390539325336612453752847263660373381369924226594747293713724408455649172110874118104024817359911714704931253386576135612157789349774314535876153304894345266784429436358479756282146390561342230975454301110582879019931165247777466044764317221268463080717921080849319990658142722015660981736110986023167725139291502289951150804125807974092920456594675090606554710277452677521346842087839574801732826129209409824170786800580912249817708306091122136583015945893056288008589459008953402448614530920882031675436696577398802349212877785158590352537120356787565102168591225054539595226206081061343502782542744340412263557165414711906891267166439312056104100775891857123664983282909211617321829278481651735404319176741398684318050420623465489899988899421481703795806539309023436781686787517301099015228756015576595384252695196589917797608514444781302554041272124611286928282198000405608803444972020684068268989158068981628080265941538387921358677922863912826867709120785938181913714555898929275572631215763872124891091424316962723988729720779168961352546138876094549294735944940937508558440986169316900911204289273077013211973740938189500702581005680683269646281617268895779741905586333670419898563665023886396366046513618208287630794012728815852615133973504205958672143758953380367547424966428455508747159793067712015610084843510003750361898053443217661165502714292301095123931547213930808678171727739952159465877496454308129705128259414051070570868877825679936884977793189596046987933399825979998875349998286597395758992850135660898772813484220252199610471394542083482257344441562917413028390829609567326916591782951609036407650129546122401142025353880448783159848430582899871526756533940751773862890141331812000233151386577761606620907313073392133786342782649419591280420004426937862688330313104242283953420356441905966801113022428227535715818168906101923031703518953657463436287781197982317776890738157853305642332518277693359035321346437927728704993011394743378795988337141577515781561484564446412941354344939922623810585298953399511576802250084678796900537955117744118004082241013766954435683026520111389452266690984393634074610256556158945135984934382463371235419888724433657347875267554192452344069240248518195084813987737175593208221108073274152523659996584871511184181817840758225771333082995427539955914951313899437741618609203972132264349799150502008940855972552147411706147924243460793414417017378814568506250754402256047396977143434177921160273505067603631377431918357745564765239758794483878358102694739514584776969077118309506522331300038021997358964577543791986774337971269071461328752730422499000828795060708017476380730489868311869585262673833218567455743882801774268840326487341753307600430509513257960207122177140811948102390793380958680626102231320979894423187852365463002258330568497576224410824005774468552116534273248484513066473774601538666013776080703524844965610234928857230888831236596806323509540944464783316900407999283501181044710624182009672331168193022234151177630498766638593821564677584561271035823221791640447647160123987899883873073089134342642465982262299084008038936488831655359928891026108615360857588396609369183498362278020493936386800169062444711430959301265909228391048283123017402531927393869431867604211081907986430765010680360602193073086347228937028021038822534939525924826386623422377076405561049430462114343933747418628270017277895155277669111623818895936452992448851171900049185177643175728624093408873545761401275706535642724034135496879021449580595735148725681135641094090430726635350088831911750748044192362270755998728246391358099876051312968531039901922031018888219436964988856943303869855851514115329689927680745675694580668721887336415226868562964369181387620950639373517947765484572952980488593548245336743168288977813678879520871138418303261037695175736812834373367693232852673989048277798855106114662953674649335551237902304456392287212892739232096854214418503926944981382441263106671124586164452502770168378250618280869501498003330289856178736486298540665971785430900448202521050174758762008078485083651182098914591198494925025830239485966326199172917198728935176537240788771600736782758119253546127384149803090012139256690292503247136125614452038298859716223379733894242166978900053929643869833107436664602771383855136380141644999606365667427462546732306475345031206903939113500166771331609747669383576201762086128342055151228590096040618348909837756079365164793672703697194166238454020052192619708866070416962801913471011513968357887286405822818266020379067208343015769587673638961101528975531543819821096737673753929393155783717868467758106649899194895996039287597934045247390891917418834363229081438507809896532716194953973307403725972435586277662002160130194598454276118489833380260777637935898197929423751951952964447349059124927159055896051388191039437044184121853207196955999581555454184286502150622014435755412197462235828763669148255122201885158497125717898340228791233888116429392233442381146869465753511231615823526403078205307827220716064579314171877526472170757153308044850927744245079363867400302560352125826118113507949818820548831141610156190217382057559496778792497416944126775100693014242940180327971794682654358917074971709396610503845826612677778570524695240689030892718568615445331429589880091262928690270384146899733073193669663155707315026656985178435610244654376723915636721531045604432788939086270815357917769208581096651499511381852030463697049695213866354863180811076856915960029033904803587073015483014627711700974537624796790978333156571238511951063982782742006940867884208195972871837070875393424861335083492173605203014846601372215006251235243254042041235167204078541527596717643079731715590257670876632815615525512670538394618674451963075928671332284892999770926267916631694374271126191122558474299773498223397529474687945017178407057403401044489867557810617871348984659199220140864876931162159505133481793437640037932910543329780289256625716391046156139747418396845849143017050393022783452969841284737288685735805771532762062495482078096873233938453865460209945358538550230908429758336926680024111654426184385928640155695031993475684782020683074078817014138516582971530347740315514767112675243115572827359680887021005080984234965693707223254317179966910241406919039044878643926965208575000013365318365915135890117993559864868833114341252899053662516359591944166592924881764901096089961292967138995485994583280236412831917920833432619178994419032772657488199085420723823910455820645446045158840140946280020115022867378251344922522798459082663190761549029989373664975976784662781565945885822818173606099756379500287361872562717291744682964703893083591346055285856033877227370793349880635687877823331872108845391530848135187075282726554785337365809968966623993559517888601323611776044290964234063375730591409919033677991623068682300984586297434125964189954732558714479530004682428630694944076139619049644538459326211063750843985088457968485135129984767497277880011230024612014590217206470822826027183781460528742457233959850895003631551164649870365287188834905869207543692240808874434683955462043618814437073649027418488341176743698847448767807577959063804456296661901460724423947924290418119921836176199295247333881180965591240340100762139825875849911069774149290477560203758449818245599947664696553251308823564690526729768577880838273332894048187342645220044958107764050242862267395033569886503806678598192954827847733043545229365001579785044845490051569387210058029654223632797552056309666472142306605304891906405348089310833189335547184395136267287636853408010541474189322378770859447538793468898731525716354142078317880525635414345451114845468586226152570102884315009529525159371264173585183147878996101587359378572013253988682356936625474582395969017809967012589658787299276989382252050351056612139228733236719684803296794174675714018523365927299186842516160673264617360381798996026372749707253328620753834859224930561820141700819190816506675110836302115101404786602147570987980142948444451776459916108345827597980612927667717742324861148803588544950999620825595915119067307638750497272785958750818551410883458707248310136336009767406064894844868685849417749533187840398581028825757517680485792019684841204377398106734944128830509461635743433956016991119571774950100688588934831040779676156618760548372624402128517800774139848900453516762825853758142386317196125915131926612734138185571250870051040079522325616575633292421964007979311466194481741818243528578564501293606396721106148629542898594642696923431205072238730728852915150340812194119974867172599070005832871208209405717539330681309212401561018096454139393453572379033540788643445577945136384824733616191205040428512019823316307367374739050169300269484068861103872038308936234434801957591407460010917793813895995147772840993780059832572132271634303248494057724034983214278206287002673717183935753290715171965138980015627515886059875235250202961622001002174472226023308812883730635480128435632068497839741918975695808650237701408777679465383285069247071470409205895678858955593134712533794827168440647486358190746046642718335749830693462678872368859209129492362518494241217932511245930853020292016372150033442765342953956741305923888517336675910945450969306901931535205315257938809306199062649467049144702097968270399280033577650178314625394440669585797041607964202750088158371971799847692012244155283164235049757378435858990201638888934823443114288865365453182750388352344979915648578103889353124743214330687535694043582131489874257809945363721554971664996784746787255557901529001402917721598001521183081481173922808737738795883252240206340612280241194378996906388915723817457387346182960916471975836297458709201369344127236704119626572962191974534675932657911682419934635713339892983510658431738568351731745623351436158241973470938944963346168534563833016536393546878777237292778010597669942204450037226975594758689496254135135114620281678008385747111232612374945475565479472941060144871377526405727104894944021087709338286350590307569653872531023932565797373868014385110690118327119391305587560785857108279627035090317842640679152851480114059377751793959623819200570646004195994954753448933884724730887783822846834600225419358726723252974679294771282460432976145186536662926479712276854032349089149635253187546631258966139012216112853413435462015277332422902295325643150431746547789607114385886192073240934055450830404353214257190945302784082931969986758450556407018230538758494619799800998573697567737729481703541126196192365921570094049331196373433696192503092294527253943220129871279427046790872927879472767862336421868014251069335639042484647475948914047985103667876494003933723686407632647025927455504280238665388368105790010027069508759310991238152487757213807428521615974163546387419378006446861618300065547646933348238640260173315056761529330170997190289504802758463502018250143113416541771532114674241598579898099724411888802789000952302871859254272194994405174011942240338050629132898335005434790688909789497028313234199885843752587038022087855444453902920367400166682129737283645864242199329772875169408128224827838653113618447721961727437584093062124932295296422438148920323008753640230405392464054834976973201832475380085775420606538499430130789906146282448952208012852921369525534192350589202187862336406567292122373469894946756945007058569904562003768547971367738502094072749632150074994280493562292407055965218446780721545038598618947151227225337710091746307028338246117900011782929091748478741318265576021081058900038152967036876949998132121016945475122441197628608856157421562625616210188066760299279637127048964188852044085127084667488658925122044124762291595604398836951570617296784216851838150533730287000158874463198336806811655882693537772606873688254539417776114250857819242086865975138817385967397225314288725005723853899407960062634039332543147394135663370351821120200687537268027499834129269846437394820693893424269505217120638005204423494312760734935602529055789035204999080072653785469189164688028601834998177404764334263777198968297522689112821167018357587262425294940562591116991721704166692101078608830309328874521768779820027008837215092191767533444749024866498984554894499857726000919184356998348807738469971692922746833289928485365778275397553585745427779786255471902713225345766338531208187203931056357391402136314264496314344204866173000472248149639845480489382423081124488632857560630889287163544628188672840530664742820169247794559236680099415562943678045723365275745347500294539336596499612093621681167459160641717122423708564499381663536473603017402840803946679599849378479659880913241235531508591708380366880346697735818011809881647324014388583827736594807853176167941944216239956372610650347926118327672833402932601998691063156666705742942991842825702566280877282425534106114928507421715274858533480462627830558736775508192930434386476265961286591867136508125543515636888357485446199706086917092638954714157392001615159777439040002415056605267959429689526427858669141988411489951460906924392322287839387954872727040015806282219035619085446011611894083085994052048490612010625894931572227341215204519652536336134270358370590994033670774195543284943608931680144993022704196760736553230264133052624563741898295760599982197202730819020080660805645047436074915345573499583277519708150476066317139955848795406308153300559702195709468772363288843549830301699501871560893452202005305849678021395717015901547956976962072094679141398490828270364114264090612696930110044546582745322900557387887696444314471907383757882685393765794741649292355992346268601771092096243245036348116631561749148794578512709692516517472905057854562357753014871355078712631979490505939690963388526497948114256025560798296012814373219400002727412857239015082925894089782741691388846945442071514200805487824414062680497018398794696413979173365440353995776105492521017983236402404954789560127369663246761541917045071507455687106099916952149134189037916633016526745351575160633490350377609727475040602388702088361741101030847717145098120491809562576186431272771509743228191969755746576465859746660984091389291813298750912160334224021372069729235873326829171578972205111321026758388680427706419095677327705609218551763154444649295739967190434990784147208504610814046844317762979832856883051149974530052945666064968688142264421106834849746949243433343109880516639221665863913634238372768012380061481784250908434399710968941305978985821588262589281772742927973592725058437058179949476402993222985919870938854617003002404134062418349562621899095912000750292806299898982705803933124410765058983073344286334506226812869981660988159424927315100337186159653921511696365498883971785554538685317526256759086067178754759995570317239122284825458930484064642772555321340086943854719838821124562782322631526903076311966745371692857064848085503384270298792413256829406041787038548805662274922449242785032610161101057027596799115860093992265962417927078614581301896495143150690519017114412052185974112389072043128302111219023960587726284403782075412426323185449984409115621445355176475473787963036862932752306646598643082235042957608531434462745940987445019621190282134900619949855604738117919993891818056167243427035959164752085096529900259832993765218707227104808394750343848923615270424871192417170472864747857948246614976012401248642390016016100959127409368531301443089115500250131616750418181511162744498791512595583364880448687412737272054666827541729887237655144904483864984156486939456664700125472955124696758561960590533631156173981237490637840474420299628878817138617863173181300403820889853367772397847627148197649794411921337604422084824257707054164223612713731582364777138293002696662343400065426946373536762857277392478188612620669180896976498494536291444709050669045490146140554880246861890441021398388395713865226823310898525079725719437179522033831175387850630434527242805455100952815944629245171894851999676950921309602272081141842827846276665186653400255956924447045489742383755235227555827022782828420979138797876094244455763339157118981497262803740548876961661699230722490127664162544551482618197990760971516953561994937129420460122526403492627365558459077790165666681090069287174550463313597924927889824223407578069348419235430285229372442038778425546800494642302990895077733130403303008430348614223932912353623676474620722849264517323271795777327944746677398353526814875417922806375998604718662766220369348904343105446960178177685469188658041068374099990052486381479037981834022354877502240096085589249609062083694105620360773776089343112644312006315360182286172345886406034155510709595732053660878410623577773603059839433240393714850456884004409273813588597307833948779197271359666282861681453534427689310226024448742932584097511784455708677200599780702215004232305562130504391026096173209154828682193372016729892691454686917721884242842299083094703491585661226368802312321577464903108625468105943081448919012997748324938309007406426423361116959258740592687748657484368866306406201605802308859261798328341601876744066612833027776535031019724467835862551847601783223628984979639256304438565470949363377398167233137256060275427690479539096593854219678592264489944657767808480491347324348907317786841702290855891799475687858041954567263484068948470915043868959095550276662380630600287601544025227465863018039285877442989190779731607751675580776070982514644678055082047049192649815502295129167002262277075758066664572457027380995522914602755629106975270411702746236731529777531040291073060755066617079097806137640700821690082739580649266231795235012023896225378423260057318891718483735958106865061811921982521860496467024546152342551876078743385876343376162101941667082751482736645848760237257924580697041525300737616067977340828435515293929830393052807034754957584981783824358963148944121887777278594277847671931273768033706061274198043584164768431929086767250435093589643595081655202077384813764509924032385648617270710418194998044892211514369482740298284060532575315756039021871858856066168008025763073140903573303013232063425264536774372550090700507962316989727869394862986456076905817382236067553857093019236571704373586499394022953378894458656639502855239053014783468934112180212993907772659838281523049542413406671213531751671353878631030079688156214418416657230732369854233990323508323074263259658669514186433079223171704481999854685676743538980849966835133664635782603915926487729190361399001799834778323202837116657641575411649666238716607164498667316242662433388524225336976504533141763564485843770574975718949306563434122927219543062591126868532236213811047140143123234229365915403189126889660998505386834686183912829531734515847938244092578362218096619149585131628756580434217682911539756042145306284884452365181398574104901570980131229314718204525705847073284953649328280181304605089452243409309770641160523150328564196837890772121241968621117240062088764620286197284653340539712787910723589926904251996620849009538170666032370060107287902092835444299340268793836829688250212673467993645265527484143563473162926686650082351638765018220243029502754226075671297313134494408899894431403450168060572191410430725661695151397481905828194094114377516016251772976837858486084704887892880949519356753576108916856935392556445475450035346332465756195737148052697050347957455535786525096315762619052213974731942046988876695316060478991105683109715993825694767920210154192521729030702471464359581406960576075061965532605839501345392998114267461450487152477372018992777510066932758852628616600793769575158907797010382304397705856294009657243113818090766403888173119957954651421578624576695659263383918321361841586723511110317766811469916858769234956629443413233668071706494177089249760983716764136914611343687387763436852393187582648365297174449054630048514481066649425569976471519077547965940875743343800475455933820825460907697399389673098754817134398737565161323353356442417289443852170492618696143233083512866414493666585624913046068908597362416804517693174308604412772934102469895203690599876116436200171186490408831508839004215164120722198394109293627406702012091656462822172589376463548380412252476446494685763494874254871889731070568538997837952717056299788411973189882584124902632516406250723888685667643178320945114164452856574750913569567168614789612857059049602322448206123823788764870504853337619866749707878639751596254639126846506718903093243007314940579076947102216056628924405210981683761912611123566584500961508423759395720497159844187397632379535930723625164024126934580289207024451785193301298969644212424101113366070114105938447725591988505952797357383207855237601770375910475301080705418909407105668399253865181478298604340726871390486794579466491965618644070019483991362122289289093705100608002596316907830573070673798424485761930610033924015089449433341017106427391039930595549055256029228135482901352836089920662690913044606708119823813524330652759905387160327784924850744672598892549898852304033487776032885885058506346174978685046424851077667790234186369236649273838349130452011086039026282616353931747242634234447394687202699313870052015688214573324682237671722830170264998531320074360508341737702163881685619872447941532011467001257449109996310293841919138132974251145288339152144747151696191540984864313153239959428719133249314336131566772238886275204314992597855735604756770692700496753930377622782435814419122821302331512269993750890129548018194477546202210207385107711223349459469814752161364807260093891659061902345449474575830971061043091063350538936651124023305820930232034768940452029742792201191291913402508594155764124800511480570355570705674299658940259669400318589737802427484175396421078748813198314624928768290886230741530423693565377004905949692005746110232280944329970159878516919276032549222686815551765051782699377418783255696051740026317491389054681166439185456567613746299252865053244974453956095246706261290051398713674480161562215268205378517986153996693486764681020510462033416454052676126502688147376156417156049003464150997910968911647775065998634502987716505990789509967212356251348128526825408612747262422381454855569875335867250551321098181609973569614552347525416085056041649781329600802030769329028177918171223033203944249563016592245680273914975452770866329153845939670519688327990439146549625738871546255559677395804907744711918461388196411397734877683332652255416423184583506949812050590850006042566348387702217345895094246424634027880762973040914524197168279086175913204435840237361588227911952169092986199292527536721337606406896627123760798927946557169414375762359133071520326974222805002285163885654647564379813256654828484455319443887880538438186368693084419488019150929791555496481890049716523095837795124383870163846020251925951294826928180683884793531638274649629517655901785219739830899492541533694816440348638791012995249473626006191313443338371552495787068802828534908521117239837789588603211776509504407729485182171476567596714055023867179779841023304484908674376772164660161527137260401161593890472890346506505427825158300370045384344379505937678768616622070094489487314637016891631955520445910157961780035299772268673417658622262922561800283321952581427145088407955647438441307377330350556600588091094782421492386791152087279898315839334530226674893209222014023988311188225851090591624141308388380647544794711820022115856700159824929081023129806447958572292240606036100921801666544216184151245004908492512292230094767083062246481528006179642560045979146647253245643315915034170652034060460632154657923304461636864887094080232251111396284945242085133384113288612623876864088139879522958766465167830582857546227622308281315596772391963187830101900333249033701662368031955728515941009151859115179542113859524709324106021896541092891960372105947676662747874473510110780861176288077674960502245320524313594737032485527879190460224406833532887337677267241138372038058520950187474763934762203917980368836479057274648844793512302540550268442147699463673325724299268051834504287481559605267478971128521468941668845076379078564546632012394523592615552794154786137739217422189283653548059776239718938974731082106551025670081643906970191197730154229588736265870584835832300472259707334114614813288570056102796298596173898441006918887084439775464012210593542762890127717259293674769841331743514828168675637202236359279369713533966363387605980298042055696840056116805631154503881043606158184758008154413243518574524983490990653430562183665685845141603067326393872544492916641164001484589076145589062245246432508477336289507156904677961783047440654175501595700885036307062221074626228214439933313281137411336662919240161568020297269840399846971976363494703192571246078723663964177412538122763894418027698513276421895206768677776896143493046820459830047009742978069579512879519113247762239778381475030963903937423634477403043155701420184376249882309010791174287701060423668871979503657953423028932712016572574287651554932989557881803908295941833698483237123342859697206002751663676864847927492702820735389184574577562024953530408729370106798911714824636575782937941494166882391907183181345453960239659423296536338360382752514386505416523658154719999001495648150347374755874246696293292754809497581275479713472101419170090704923895821358118413111431931027619167896719956480121880110323446677438903331091268437082116564262313597925666670485600279273313583358071978364609902024426988631818773219417246673557021624372238778582966311342141102833563236328833021926066307598357775525386543194271671333557872753751177721754761248501951197677923080040112071285963465294193766540280480001769435074947615153557767068405178008440549372854826119817085318837070871612510129205337225065335106109920156851516505917961450729032268166600551752394118684085426927168183679438422684967791512365802992498875506612833462908037265823014303634316916303089041221641837745555961390427032875583801107892505340415035912145094825837317751371937727739678649545992586360500006602251337146361545725565252524372255382893125683121327807560599298437151174823817922360921826573594665724402970615921382395236514287279400224880444885402888189944896934660272985529771715205645300125786847833068364681094845343528093170536306932988466795872347277795601888075548719222442251241081812151900506202500387384081963400651383661081474055294015665730491907732321987621893298965616214768125937146906049028780405541896333775284507988459994581016280390791131282303467024727511308354696742743928350060407514854281999456930846164944212820343316626677473538693472289902792249436887238892377130354952325292035846130915381409087398377319407465813817599458198710420913633304492804299562533372559098699924305339130376906265566760623914653978510806607462717408500963578509974097417653886341206301268582937842875472063144192047826815303990137336250437028566758573828171028266028781443859154093188661734686976886773318643994589332958958817747590463935938615082352463598035922618392008631883044527043477272483627607059565614690784892109492600027150666615731467525359216738327743004112626121522373744438706142268565106949464420479430535498124467954328981204007080874451227860025015262238906027213256956003345968571805631824947029850560952386277211224109318275184409415213263752490826787634879318734944746391984567649124190784278127957088365299770181560358709570346187992901574535827040973553355502956860752201901598574465468086212689582162046125711989363575874640668443463168893197639660736167756009052337177053937373750895312407258927436420721546177709236842461946455075365240559509251014900355745367451451394069651072391899580440358840479526510879481769305861529439330268730301434488190126562709726577667252781653078189007835358899750739932079935592653766558757928829271246931907561342984893944295051463148296057820662302568471943647278246071069265518304854301607327135541422722651740300735406397256233829289549096044538153462781999206898251309598665625482305766642678147373381304868410918006446306508715288490618510337693817034740246962364971123120811864882054704613852170800350107274724409306920609175785240591344125221055119919674326760872979237736243183250942406745691151820024083598919598888224902856751270224186217377016467161708916830430345936372132683928405112785065879108245938634534205744831520319325040157681255725480390407800609366141641879498439468729361110185941119618709471424972318249607996584399480901539406985205046040662889837152882226666235791453120822388576941642512431399062097468143743173133566208854922438428789321314074649111166625214524245948279265250887864715639037863303286413185651740377265759719845985883993308861813286946992683500952000174529087436852358328593959797042649871553528880272212066878053567696036920512865413085513618329519550999786814677201527779745708026028391465692162551710356750781925908693604218995884322621327380832921391939055893201725033799013033415530821123164743450353514501567240585573419933195810779556682191885778427619428792954704206228944540449212341854496311854339432572584166619617646675947722951159855980340741055664792749746265249043435488434422553403619485841675362943510836023175075950869711132746646877328780275150907846706976979630018400537829321330905448407355989703364876405222217132483329621341497245186300461901910219037620365824600296401017045589192494950672278302355642099523214062868168160050409484723643014085807333710540917221232442297081455620521732654842371982599796610462815070329837165089601859846707211438837097944587952626678234532040681957673502502161784465484474502064743129298222749921815474467842298159318003114864678805895060102146932620733755163691024721413903301051281254056988598513795009000963849207845397344970784811756853122041769096373469541208311415881835018082383136583988317248875705736948742899940488928431591339624224709490129951491111299349467821208534963347163333090381118377740094851273972853432190051835171571274454194767520024413207096868913580023571688526770871551983015097774678415027131369444530761178947564601366545330577117479025481501520910029158189498506198819860463962614403757721965475033067305594895290953546905557577510414266012646272877489894568340760693831611647556815612613406556622931142543959543662380944679322689590632739331698123947611319997120042733239169605621016758953958480845901350719992795341932856652645619595796521673624912816805643502095296954657197581911835379508343109385752549197422496056123290147199684735584029840401126120425248656632033767340140257162163785913990242075276547478466112894116102345866227144359124817367648135421912114744145786924975505300918419392580677588822955350600700613081148474553575577809952725056715690642907430773336508188518174286436448555875246340968861485194590463237340481785292963364878537602777443225667773861279801782448319028718217627713112618005404960049419130678392291265638599360205958227798330772670745246300049091917582974252438144245350732609632271831172070932040159363016326386455331341565678305180023303373380688182057463648155217496066923123297146385188864568197233477406473404589585059433704956269208003607427307253233850485974885646403193809652417997028318889860015067939734453011404905964946642049631278905671139306011712213604837391118789742693401797096501736327568481481445116367878526474233479568539444909778701136792728468257281099018214696885552176399631138377868295972416014078077553175887919963616175626825463409286828077066623910551843408414091263599834503422932435418361726950757179353066438570896080931765684669022696476210057613464466398624710917026290780250298903983616104137640445050430956816821180291901870098129797079975137396393989514695330603537665026017397374128958345494429227489519186375531249123683028029150696302758173201926231683136164500055054269128934788726929725587700182831836366524222830259254237522667803418557971942637507329431885502366627042465823573461938004748539741614139249067123643309010154806428023617500004497583620413650375537413744833678281163008449379463866772309989433373878104073014509623057425357389813426486238875180006968294407106980356549580608429876912761852210670158259419504536009992654580881767871773653022517138120666111795643120041921347439396561109971735893549429101913877004445963472877752346014250903570861398028078226520854522780443727303844637891164535602171339743326009196351748844392152694824649719481189454707811005513223561601479511882007510549919755557203130520512971918327161018401527379176796931565986058335973438515857097606810856821846674928334594553422698426918513063618185294354036659911026920563799781271748331946245103105608654073235422434927819805855897186203049698946831889311489504426536690265616583632343380664099604064329895600210123724950442378958646894926107132422629476745358854642676944464520818350957213571181005400436429990032808688197147434882185533026333660958952212175561346444251138253232836092011602754788311283521545658706598677064650804989591205807300674420820638205694956410717386835614723471748612287575958312703556712917498765936567139058156637468535722498840651348000706077419896507214847173197849037987093937778375095680312526277133017797560829508144977090366044263304664838129828210996917778843394237527482675807162625457099332317920579580245658553652119688654979420187356308707114824656786719583443603979289162115452212877068540736034559816513398571734012471814841975720422003679419324750789083067621631524532498127868049275267998811884061827896633097811138647761286884307460694403473446678404383202895488765099121952815082970262389404015720808497911690534171260370554133820008270774030565176563924386084989868673640041578887375975968385717696704096505333325210369991396162405826727745363675981605615590024998995157701573364595608387058843347636653297784208540354009260598663616458648464344202184782516639424006319113968463550171339152901001415673064206703231481063359947271178682912831152787272575715929595055967686531110492090303487911704208507261926224776697116164542409446662514185553598061067386850513932743863972469293015690085798837245514805572236708646840837152914120986155397709080653691185527432499301742022555260969133301615036787941945765813878398592253371997691859046295423299209824363414576104572202731009752098874911270255159793174909311034055223767155010460739404255833145966501565274337108271321078692852697273166006733500420133129038858250693379507389375762140985931857306531811221358114004546967761306776356695247260629248943833603816122540485915941805348484214215409123783641353493878139323527224488329841414749793721296615204656723093387781511818814252885652762769111522407364048845456857026700198673756874583209002704234967983312030438866599267263164088868887823637023967705782280302100261459015198765493376950592688895360075194329551199138691789981466920291895529197518199977162887622851825365154255421670703000779877602581794880372402554212356994678190152200042319891530355890669348387947281563612495865537907088367376703032884566540414763205941669538658580915064152931482870725887696943117189028210065217463100747936024977666049495899240486588182083390555601775162629149946233546780238304448093290560760920957763383226565453622256869129223017146854016346228984647082819787961837343381373796277409022730978510637779355698636167937425013048494968579232361188696457479448239355610442058159811844944657752338687395584318581055061213039469402129106221261799659040532060485387207371049809760069502386522047560765353327640803181052463518788285857318583568414580889912889094497950094208344262893207975170542048950749200515490540087812931089998236961667431600198900580511304146332575545997499420864314866165911180885607823268675272960049377273601657566063335448754381810720555187767489507937298097218363375383110513314368556296474904990605709218461965466506636354711339431803856507126091392671415112696539336845349691732168859409686567178134525970711553878312964743582314315158530508794126511694584765127436096184025216364456464114119228839511287846092526397312786576966616044014117418719990413280525082308619542894091074711793515627989459475550144315104471982092936188742534778135168172349188859442893979594315443699936929551505140856359875529261087501064557100561894996731580574001658485201262691717390142753704503222507904610987742714690743614158792903999463140790133269460201768362523802745489133760218562617368917304288273902504404554657678205939364173939931870171179787472903925919039232399872451874610034508302826310490725333466033092037967697123682348393508756648481925574342385694077488344220378407908099313224949680247713781187984383151102469878175368059159587257833563523152516253547054700206500490417075967324658473170197501556554301667862899408930540027454154843447706160315862648549339761324611867891882099315862199378646351849792525279584538964971489621345670097039131334494961160652181568568841294171142961372909759791278789375011138011672987511934064969818996162912156926963642958471361785386387402976891388416416476046414429571163551792765415672005848724949496733810567141107805688725349398770181140400450232431471204496768734713330276579758238006595805604452150918347431524874343372560668086644197202131899739511001403081504155082127988882374807357037218593193505856365547580614547660171594661418455749566721984495471952409730312285539010698731752245165528659884707918098242115383889794704146164432285489155178032984940841993122906958083025748978086537897759883403106396077294728655412590414627029106429709045399979935066655174040007629494552118724621591375434604898114441323880346972224171962456577367851723784999858138501252037334484505699096056990077330727740798661556671906903316917731500036656050590535724274212885191387342953925622949117709345493918018342885674543915804742896925813989252882642367888352028004001280032054592889135206000176934348390342347106445474347757171200639234882094033210500698289850925261451416558064021892295968166259573454315796843784718993715234046346731776423964779565390452843523558308124256333003241942112667282944101692645438049706659390613559166044287243871439538464360253344059700817837496723638125499859339449221248826305149626942709691637158300157607095547536709468884114131920608968595748733886879542749294120278922092976467599727040935181502743005623226333378363821933732843368879376108315390347535796669240747517270982292871435757520644394431073284534581547186636292057897818847519702272331895225512873581929047278893418712156080790029614097684012341402891044235889579420608400526156521948448495981651158663127468265668161415003867794680303706972670848957359239349588910599797033668292524084761076053596246108630132529172498891807175545895746816294712837742408607913194389435072978179315587152293036345207973707995078030533950979616675914066012198841647379805483918676916879976978173830054493192699467474333389132368842107425799575692808144618954424910648260129036406512123041791063862528528769894307567787946502968715377305501432980618738202839224178606444769602224257790594009619206714960865867578082141060269328111133585523627596820175121161619626049750383522555231374673106763618634470157320830135599845206092981811431698075050767079750261923416652842105451055245839320016264132590608829281928923689848916258153023810899964399240717048686223356191598916736259651490703678775342765293229772949251629829593184745522786598673078848304903291789478080171094689443188492375403759248828580463356075809902379090974939834706473686018980397233926228982849197536361729344891336663869565990554454473466951528331526765917548304955517536760066804129026792743635527282462852394090720694140307272084614098873174721694676100410924390802212746436901398582298945958272121393711578082061188484649466108668688103120517552557817382229020363884273843686520545789274973844327986255359983952448910439039378958301716328160204583949190729016724458423917023905347723626980291416173733045077549202132702521368811779177906602033914496777341268905931269509917254753214622333615460773412471873904326838680354110244359882962662688354041357558660079635671029170385268398683576489125695505207037549535152097012196678605998033681713499085294271874354951416763980140837298202751043207046458938483598537385748118747628810348814485844197425804974271689994852577908342593454332484930959243577839712456943412816182547764458711864072012129940312014689330524555559917300656604587813221803777098626780751996802668005764368746232736583361825015729760297071857654373222281202439780441011415770856333426456332760300933797120166259736578173568277417001762829406773305532962691809374954573295879586070281478389141963777409362917708846427861856344926520544308183044415578815619097457378300804481457455484003636696360902650775476543806994202571070628419034167537688188606827253188342223620225128109821593128343387897361772990577005133033171813450727813317267443922424466705354745713465954166821542128026185343117168554731312235195374098368412150730305306805967968388691662245643930734722063935057367506232784204026637114593682266079685689986952293000109785357749863144027770232214152220234580169253732099492199131641615568386422061784792589111913427767746897836143187748912551215602714972523120711115411914818171820974241906474440274651245078824415883263856842103668523984702883765109156034319359498267368913421320366562415762976013674377929386388630192847719209871850075621165489401470989384980955910055402121335971169506600951452351983709541559358160396833684364454781792084265565860340631226960233016172722763554092012150572305428318590396275888838684351880857816981672694794169843499471924379692211129413361621996861298759508263904366583678030387261607619726403528475604563301279676329713309964533791625680717665397873302418898476437946989086631748184843249829267008408808759813103652626683845280131840458284780110258917843388365580268987952363697514031363695612344505623953124363273606558904345026198282773333407142054224278211076209439374308997712056076142015097586618114955700157156006656660196854581785683290404872051249930278755521541043300638834771082759487979700686721935640876079408465699475663883570604247006694840272351307604642214295410393736899660330058766505620558691332854256038567876283174526520801782098150604836815082309121795323519522808009882716726062897339166400721506964492472934532867110113061232901840384136806792522540934648489829037294475670669280542253091935554478983464120336401438132173804765739678690339946188476082662417776290995887873422904584737798126642002552045068333789088244289023383737488095236861493107564737219153109379540630315211374569042091719606120778576888122244035181216285395350378072473990905104921683099249756219367423383057946326387001417840129028657561461273539578659623178315930972172533581327422252004081416656332138932721831891362780990746592576308274769727126251037771333631280921098552725513445693066264344506854704834734007350055366557763131825979264234711517479854276023724714681494952990653804510670103194980835625901963622281710873042584985605266529614046505310338345575793587592370601307166002090506449588969712851612965712431100957485796484785119093150058026809873042148050214752113335777068583382021292725683514411836157145103351944409425681405048516655133288484381989534817591136983980496472567969243055343534143912158283327662450709382293224507202990681296374217042266383300191917556030077929402765527217452808852721798926867012976547118902840192522861684089941909301395645676197097456090056615802579320273044630519704966424428820858036100454053110737500344246739326936395910756036604779616086285410346807066327460019387419400601507710541854161909127837612231095502341769673831768318388156801542463585199180210714830051255326611928764762085851225355832558196720744431210859773430411509816319182434139871756516374449270597068434268783865817069790099034170345233402460691304479072772558429456869006301708333273561084907584396664175939411070783118523281058006078123793243037856774797383754243888421139266593282132953053411275616436365811950027335719743090638801157789611392913387621582759564124317388302259443936728693354116433416271403580529463124177914423694419359457117753845479089102409575332522145923725684762014400571710460849723288305855924754366084333010133323615023961453345489179082236030287034304210911795387268822152861003611572376024236622451898911915362254676421804341443399347010396925340291043524452738640994654409052094831838434999719104312441773343344225793890988133449866821718049339275706981990573751977998907907445489685748070121266798158231375329694219886304230137628856344160549452314831004548993557257397223549583873373711480747025375795040469854831153694937276137561005254776291808696885937268920037189925219344397439332673901048915690054522291037203513013524788357028230748112100139947411600251198484608460347331246972372335537032896090209580209740498285306580198232151379348805518153637883128295162217652246766018183358633100854975181296188562290319597429739239566918245460608554633948499045024165639334409796934613481609134345403686993292018477057283786968988403938050970382152134773416997269397065710232294800218655614930601277904014393116792139003032638352740009713110936880366558105602716666457493401073815735420466388460886987072380847597534638153168295101903112611863305215057723558184678233889757229179865072705958078433245960857433777652314282682762849533363001161713340280930383854976255000827493287758196047682584505616139299012321340959187959426579075640522105622426964285254833550366005464929854499229255710089818548189109908617010121530436064749726043973375749063131506080683046091664092433234681788241845823300738229120415939065708821322001055696338466926846296318507317787005762871315300455986448449318173717624778964028020881751579393607161170819045846203157309406463783095948316102643216372993653660952436549788704241622270862037744569485642517882996293698930062734057176883483379572769887205130281161504897517862268752983762150721256928320799407102835177074285373096966805482854176030685373002263884340130549802570312080570782029271416354539356227618580703632223792327634701301259023415002965468798248713366957952915027536866989552355789249804789443539212848991489336279576437934820181201455639884410387669365429283775522898652750500292033937219340375664637344225395876808343694881464400001790024387927091107801975546378476306483419191275800457056278210033932774159794941574926782170854572453897036130770621945907166743794230930912409725320781518191905490147979617323369649996119271243872600721023555558014559614048448189613467086922205993160789366605183783735764058300240434156939488114770554521802296761646514656619771277232841114923471689875768496298482911983451289081091648602587413364921272832606775139437754857493057238700415584847001643974968138405756654837557898514558963193411745670412485027406171818698240385929998839068693963920023201333089512117272110517119032561716146362972826993812245673727182809323826905523503525151913622331962721800094795176912305556060938298004099083923148831373659259090118456197986213812313005122135592058100581836915701465535638858262339323629808404540472422590628598887659628343455749640996050730642910943583702574541144403932982348476968502730551115293603543393722814325004707398798508259434739060617799512125002070590804149405679354339584770800370653586398476348426803992306220858892898430908963991671006584061341445415684451358942519079099737133903016256745405560060308731352164108785957680221925559651007410681907494192927971222528647263638382250108961617190341583265119460079644284120037478738191639340882668947665745617033575286287825707506718144427112408789242057935817499881552867975842388667693303185014699216117658777968235554453028130074030274521371400858452080297193817232531083929203996146151767990454098531677554889725409728099850204234014158934524812021013408687820580510602891256381479447757460116162103549222533093820520929330503082353717939703260583122271203391741740778349357192369224407852575773879365695765449996598828910340853072246624827314544148388452005878280588602536293810514417904896416233309568374031557298121585201071409416143480391480037426773265939167339366525605910405871680459225784105114458775801788340990450483350219479895682530444270250215211518525508849897152534374348261426815716643089787755306060200211338281810866717433198692170863570997857475939262050203423402272858196429934240225452605991008098945032086670282594883705535284769695483055574147756217162855305249309667478997270346413617022503210478768310161358193202609157196466369945683195458374920522424220404956530326242044465981076787113327005808925240026546397778316695867720604097976098848518973452127658197540456930382518091671118528974657374388561091737704979314949722124001545290516312752181956479794328754967283124184753810801973084038204288459161424651984051123539070511232804391752882342616402332396689471391868150088562331985903751450387204777875857986187391430063658675249214347145166393668991716970587566782138052114978526900195650025651264809147746307354619063810174397551957132243190524928444142833020398179086864571492184030947669424931000280922022445493751911285746463597207615307066485535862024279923344879676086484849626971955961001408845998358903065387789086219484227930742517285909683012054106869795158594548134986684407933206094165121868958818107096582034550936370009816279962885386631893988343084870302554756182096846746270677635177504687420000526571356377941784010575205642783466223815805492556488630155606489151639071729929330325687876778391235953867446933459147709502487146508108255691091623085189252792386334757665665735305142779028904997769595810335978247415484711122491068383941317566029621612545873498306089640744679227843578801606237710758826777659242292587970615108485712395334027684437512865027114818080834154565994189334578133064278907042272931210804425568077484814970356323468232340983974942710071199431756480679902999674748187291177771647845012318964131561894510844390604796569350833645767158558043298532597602991912998188075646582251468261462510281928841049532681054572839207659445633616739229406388287710634605539985274973501124087733175030622256843540733994113200254038083019360419338585577297532225615704007941268384099254867115802196201721368143579763310692282147738505730895362412414098580684808631620264036423613628144472246771200012780722929325908263592133318637254557267308489601300262819754663622970917473886816634977642058826965777618380418660745007989226143925215711656425797357637679439607517681320667111115401277764354698891935524621228941842057790165258857484182004684128928397884980968501994519282562518361554217695806316085014591343960337375265058039674235064759598193550367891360103188724643669538325603696573596343538119765690788850903241025696028506381230614582885921924690105318081731516321592953333005132282190127044188336020029288915643393302892504952102476937321155548176356612664480680132403531421062462613187482181836291182730221384618167350428153828076558863236192595960876412973015247484339492848608225058498205529370326431691729861632976996308123254540725618740860808982666370840030461940991397073385530569726647329568931429739711840490043424417219562074382640522962235453193075118875620428734326558345683432307819195021909598831611054592220743407602495875334563355417639347118900252841330685497396002002103327615327846470964617582870035415427709649588886143371886015267867170878446563896301071887518099928710429125768638718436180901771655628412168426676310744869580746160010763881075453617590797980712335942466706156877613754931604312228868964272095831045088556231289750511697333980885120615349275419656532377153562300201297486708274288532985029395790354814764752388754805707853209483813374517174154035592559143062276008805621815588366409598655398947113183824674823745291642563911708307840076584552883319640315706612080834256446172357582562673528579883400560265924146360324453786481776614615579565591721220997608390686801267429239875826664032474674128209547938591172771786060588157857686072369684082769279207469142726481523379217558584587066005824232069750962229304725655910992213494582931140159551511724757886819828881723918931284912348558607764354571604674089517524093763513507166425730670455137955786217464657537865971770321251174900807246198025474848069786014709676137241926841242841755148787233057405608973970623475356608546772401809990134555556564511296247326824515805596121172979479690082805182456371518059226655396512256800210332610098403521126022472641494250458053778148275422355029240339182485925520037908220414120852197406222989781121276010053704578399902905907209967144032325382848650649100486818715108666617649929548877358228661527316927097764727388659694337765616097745295627903863342212518815635584999104197645016915256132042563874887313523000930272647477735608898537138761799628006408045439669045534562857445001575573821164784606846777465625864619286097858273210166531790311571288731071110285988455421137862666815894388296171604547117737971791464529904699866106751763926558250929057570232881056750224022341022224650971539416923331482919444076686466196537153779657471569735733007247350648758426876579571063915260844289069677896260492411953321659587977256367235381986607456663366147767358621402647235493031759136719909818789677300273074265127670726523166083798258705808232774908547657907123562320332245251694872330253660188054745013002410065539631006522206906420295483132147850899814747748964284904708767514836957497301430374314617702303326741861839372212707504595602612581633409458314028560019724592699895824622895218312066332239728519551925944965554824730758291808440124972772900802333944002586767878785575905073030354790597479475663739486133238516753932617199374724602905547648752486758053481329861284300116052725112915175393821103186139736129413098642106531516051470862798402566611563662350083122310329073219555532162701096982961800770566076379462144232530968353483228669339268091302674984320453259302940582218836701630275833781855900809963125592052770147944168055125881952180279317252558660941595601568467857716983128202902020798118065166995511517217646532928753046840587041170554878839912274779500476443338683662640583370135894587854006553230663112947733422835160065740596944999511777313585391736823115396478134677481104225291845181270846628488714587952655707939623184651667504856932245214869560601999089876938063541042830065522953670419399145274415363282386134442489493731251450370100881616247883801319479507253889467842139496542157446100719946337859541227683976369214330882790339985865307292400878302318880813715949728292264894869425175177570131612127325148551388677706769292839765228232540658372038868475371390907387515233282195958530362985293279215687181456607863120038143990080033869451730047374680715322088226212416435138606316436571399605767896351230581544042833385418043055803840157036375200564629761322953971287721304976278229148401425749775633740382547591175561998199860858806461069129857892004496236357011945057991152604411511839855738777080482916605448859643040804742186614086435859669142433601073702903653057744413053211822788254836483217339875916697968078794930249047034647222905669476499560977216695412871145038236515188325332548873093514192640508606824249028217739315089592843708728432615276467407919828146702407093570629955876689963736029478599453973795206039740732312351406116525623913673044680889046626971790258378214577861208196540911375594250113414940046357877148454599329056799581469215656371980704480591723675536512144599868161971627091935633421568908225423625881664887979117186506718897233127649191678638826821084250990869889728960305038292650025564427096347499423320107873288944179660374973943156502032011442707865325408967322122011769869536087519451850695218876828855610477076847045860478071005295846622967635267792212066052423961090963988865517338338370706491000447877084168231208251699749683817342643322980589450961472134104118651441613686842606283613419434081824685714039879040593090350908522397421708698229888325435032745628514914452948623962778192991557206758264503741928730115207800876367592052568545268671658490495178175705300986941704063745422397765202632638885535970478229112006162016444991562472809496566094654469833739612682972526291920703923794624649986548110864952591831324777746018884579186879459916078233756559266597997914639692021118154078090558884749337445971913298215100424508563140918998844974454838520253695358056389098931732767512035402463963545350629284294429882120037754533462814846740297482555651098557795303384406520292721961838777934235078331516017389643393524618598551140190291706360527425828087909717850008590077565790527621478011807568765792920068902752045815690492208141736801211939078143729932749010871797577036679459838026344654091809043269209609165288677043755263596631767234405741732072783765014198281496207278687557734747102407214874058497223520375568595005383937711239340196024022434122531600656859136211353001186338226138177951578455794558001422117541604857416466155868859310043340200471016341778770368031166341734426902609083962324690263881462673382739456384135781445079904876792732939394244856927308357500889688530870560841853494977986152589778536645550341206740338177189386232475905820754698753338833053161311443222385757920221994554272588107173767116387554177835006867080069864664957248227671122613727350763393562234680795233224775736213771098314805659626438267991015307665676241036454199489235350962154877469479272663080110139728688656100131739079941089928830519819867524035172383035671604692132306232318272499688428464211473162925722414826495883174872765868190936334863867543536267458020371974128250052178142975734221333827760250591224079055100416506839230169372517871652654036830417498534058461234464603759680809558742500843678918053728225183680828468440062014122945039976525127337072107999917547237704246460701913185249374339592206765569914625592052282632737188368071583413401429865415836487337050449295431652891566007249882159737235541954421883431347078855987954714166815382384056333830518825434895749550140955377100813584207118768451610198745378074377889385243376278016358902011460802329194939074643290940951438574630957805287397490700577536708161341000917465174906161553289661799709631973629776279518603434065432820495557104504516555001198081197638240348919100789244676364705003374441947780904639349528365746489457064240278692739201392889918344213509766405415702777114712748854113802444750616673561348597691980986074198633288880553162983131587757819045588933786217943970724496332238560926328003610423156165175151075157797875541109747385743090692476773081407917664945811122807884861747074717647615619844593084529123059898860998575407199386143216210217226064412901757950978422461845158554285352990101808632338568992879594950457721788095330762911861210959411478884290625740279865597810402951119665730632488601870401941608178465001344279889602392305608898436546051126569259817089914949561492658172128890464259863729774820289409871215989045769805769276427986644709642773224567652384594236359302771557071943128146880185257675856666493029280985752934850213941705121934648355980011167710039167323923007214807294022480131206670492302045879577205075252278825978450997956113118453740310813239201823559403107180279509396416244638204651593242246308169589222714821838824256032004060408643316323090340029942547006261954832202873887220194458253104239556444465951614340214633952253329582813014431504958203516159221842269531305704689156716816483712491558829762968196539677201502300824191202734154447401359889288787838830063999462782011862666790404295665367675493349691682940360949679197652632643473895081819851181786688144954039351385841458157205981814460073780944206949861241319915882208242320755465498374212260691148728923244064932675897468634552026818665124706033802880996848461987082184108126391925793285517414579176323605396834941703496396564020733843540654441047650547099598958924897475918953635590861161191210332303336561091857855879862433882040482039651604566821369697233918264042134804764208287180127695243874804649352135598606282148747522653436569550155651831697952796480548620286996124690789313846342870448759511370957811866025192608878293723692063403536152174559801991873334973806747070348228530698090717616240160732058609020135593589478487294023069467722522530681392485709143383256674413821916126782973377735306843278086978532948559300281743434489233093132475290256169976758958927456037726112224434518960244061057194897318567825455287760901353554523299316587161868940378399779196608535119231866713169003240188058211603829835149037784932720980184755390041792722009385344902455676858344781991518631518631583445187341815674873257895276915103408990086537179912102823339056135180741893033513530362466790003519248311721947849676575724425384566588013259299692148321988820639044333502732775060656958299037059711797635020502831732412260706631547711114041255159950316536329544462174323864239975182631724777583116259154129062341091084111535747387391738420615133366325424559044285151827315814700942334584116115103268225102764366136182934860327123873695539489770964184162466151773987805965252615923486336213249940603600106447800985455784703412846175090950364208658770696092613645387139044299312852740457057067002097810144513723294695965306253629384103725139862271584929807247245668948236159304043511046054554215377683140509660551667162061174190461490717212638773585303025771616828537316573871764922917811333339045528912245081735525208240643974216713936239038467884891320055901196354399941054149461072473801963145068411718283099499156985166447899081347557871935072311777758174581379201304812218380620895560406631731588129032896616160929963190701908676525933842454828481849232532046661347378334483297824894191249424296402706127882069524623860505309931795897313270355142763155729179740140872940752151370898785210550313053883684802138243859889687483506694115606224098821273931865863072108367492310289701128162149589012860185019071573654074414544639865749120505837702218518816669458749910235721592923803850327671319446545539227587561502026836536062432337766971961630400094729005900948673037360732478509598688817606988905629773714743489243606664227479162744655419904498454391923931049948677435421696218208475161660770342034438513899542619026446476356862166173314297001414476522256252751448324591106704226105659128659546732444149434723989981351755950316636897201925722229442583445197278489781240476625678185813805531120120770159798592973088829755845657982852265271542943914426177603137826671286399186546622960351131204717652324435024026322216812004216493994419018332954779286281769266767986387025852634760148668573773751816388377285374049727103916020167788500538743919664623091862235595504436460548421356302383342860547943878686360257625754793079216483368619263805774792330410341192499439144861393273484661058681579306768797471158655707297337819603079272894343516016212135959928928851089211439355322935801754978086833336383543714864325526672333524451792686366098354989933790955061434972065706611269308318687636912490583157384122495787741338708862342389601155512114717001564026470462913113686896717562205268773394309159298535990122675955677695646615201283287293955569460676532561892195953708807167009350841069387802618661521868043048750289418102624151805341783894278649143973556478829821105713208924177444122628422929088675688372323738528721918285893873646344268759688201722952087961108620597264779494415849339755260212240825321852385146031498183154296420126417881367522598301448740075795953598707971214697036885670806010325765542548989993562387068792793664011057672475423404857859715045143034891588164917457704994079960689967842113249373766880427223331800203022126940647551172944330713119479450006676752966288488529071107775098504887889192457891661731563895162603823197888577339969378441394879469085506056068845609569848503632423346341112107775018962438077868222203901879478493315729246294581708046801530126023454618358228259678122853548230917843058785851317729626188666023758665706340894371099149265033547750976467457276879872782671293721365570765203360836671084902381271711222749056089230224731892804195327425782995396472078954533241843344156707612514865631647550036915486231192918962934491773008603861902879424312913520183679667956183157720261656899289219266452239829954196740260978944555554912641065836595485188206674834205153138596149637386910727229754405614614077061658488939800167431958193764438164640629552157663620862749246514611544340087482587669607876701481289247287142559306395928553879834152938448018364558064608356294949983276418457979480160959851212043766428656540714057146854073446516477649132240123057606274560885516026238564058884884186238960851071288673405536405821356932165418348468901744063084436906700342884988169106114317087813687215686516587109834896323643120155186905834576108698446445403366798984707243071369959847616000127967911889510968250095535282475844072800007863439696193945858353407967193111975328369554400816533077651553003150478058195971867434386674332602373681927253848482177839930700214004319951886348018857280761271443114151070204809720127934090503687223462760254548547775439269330686271445435517647620907930744639384892482280532963475753832468482835584023906979102572256557223224490683244970716722379308295253562047567980891730159099379718778957475356406490522449980392545333924270812221533504505923306180166321994380233708769216176006325817153511955481181801911750487397899385100236887765982966334887124494324226143722261449759505345399399923124054690556348886973010079898537782735981954450353099535297589485889401383902645928107119907499920819488701189115042970844589151388329826701206795043729252883886579309297935945448513073531335891478125869761850262521827412521626109401425221946826282430633244660347185576832856883195982208211803614515984070571750230602181363894724714105685591443077610462011608818307217608756746590753868170230187722448099780108839595267554539785809366043372183327475236854832589184574814678207526052358848093724691587996215936209340084817270418414845506723650724141845511297539897136565913283678430536136230808149877822292090271752429284492801447078268863197493834998071919784475648953389772297058789729813332132933811514391149188396664896960550422670107418293655306384683253256929365870529355070021707716575591836703388763832343387270442665491003391580158520631139977621430089323042872842504555839521016771688500925843627272016401537264837774603143304186772290302161298742512467257845300523927810617327698939803386967147071207140178219285160738987270498815712757887112337895183334435036105358724494783206692707919222285484200878908191875131212567379762820140091874821847606872891969911856640473124120098890933229993779734342524202795894912157006761392673718883813058073509265353512180678862256068586689323630646843405164875405883644483191656264603886433036880631022940991521675420674584987531167932781486621601499241060285403436900992359400035782401359059074152217276078837585405905805590771959788323254573540174502605285078510181800662803688274267311379275798695443246150923478530568995526691199748633110254843854830552889824137296282006321040906797684438334906425417352884252139804426088852155707966214277688074732023901241456597333527179324403426185094197347987977967313861376997918170295582089673104824632947699431212481466782535529152652753376740930313127010516664869006270200440968058353813245789564204707757666444093407520887040679615102510787497859010897419293763398330651300660725110790894161530178369995478454264755898394946339386929591697487974624920456629146741526398093903189541318971153602651107671062257975212021244251304949954057887096784924182725532408031224057326718443513775452503321820933008527702361216158161913319161396853871041593869442473944671140312756794561950207784487570715757576689597242930221614371949214116679088580943853535543495405159454351538665597705556310984095103959209121756051559864110982674980014995089470730264721619475770431979447694227202276811138705057568985626864880502980309527345145557869150571040044435000783145890363767976659327907280966792406956162167222216793495628094717116720398354731125203118211283166940674195233451908330447701659762047928949612150692719584308929682163609451867576710420391365884988819942353021232878133733257700396030873652551312294655821152019600447175264112098839628101629347244445072822778295313185748047226918106462008161862734686560471825794427415164002656866301096094162792915410273372272715808288059367487387113484074341632876676011841042925109434634081598803492659946969633902553902210933538456679731598738327780502382392185153870069668243445567648281171080650580499030180055439596996307213458028569382843845126801037854594943680544188707555454169808289193046852580627089680238566627508602014060217176037711776784016944503386878256745492004111759134427476394225700159452738230674113273584395507360039547828801325350621046538949409150323306630972172192403812486992284756936776598581169649302797191736626610532948728860648640432719651247503716003022031886856488941172543996855332616879831604936276942467793575273316486439774366691332143500789821788668879182820926386383432922649226869248597687717168739459294305398535520647108005219151538848316015429361539015418271756706329684667067081520878985460877505346752309862799689497504756903289383503061936037224756184463358860016931667128308241354228263588046569810255926280190576939108821678169576890698381133122341615014520763714550936111971338461623222513431164779487450972937138919690249422372724340904218445939869746230104027777400181868566220745145510110715528661727708325182360474284584741411006132583976478384228040516062751745268304421583614018418376318045489615296405867571519371138507834343650349132158813820546598990476989564520171662881978999371264499997818130499016644014259038332441844660878902375974169527698307113801294362250743263751174830898195711354231516861035482451328719914569946781379034133531551702991361709395842923899339491777972410544093756260234058445513452092780098654949486554851143208194048696682562696178826233506688060498351894968914042790996252460877618818790604306335600064766862856478223399384311028897031840011938354941679213551869787738455741867294502380095685834441703400288580929533720907552103346166740005388865131266380826653472547517427342389413860820512901967661739041287844841563770901729779737903154583164084933417567093549322275443026938549382074998373963957302908448422591695692579297244139538127242997662539681168586826817328149576040250234759535113563467678436796119397766692560525929056478519640235087712395911769877870189325939121405318562051034575875378421096765862827362015732070648603610713219164162462663569638265571708690752982041365397450550865424102920937516353646354848783533521157741341635144142542791930441740797199191205514323626954465784564520860605297986982091297740788821361024729830956302904481094286911201443566760841936696909370471679201333860739242869037107539432043806916456741320604075676704772183273826556556052306905231644232424814597520013843999754785302945799592858916354144095352661121204387361367969757444462636788603533463931507340888273120986148345120969693702604369073476252867332957096872041107347057895208029773596199404016878972717396391200745521235822671219162728596892119653735526666157383843340694361561372048843269445014066935113609435481477759848735706672004554150115134802027788276349469797122431350779248103392963535867744661618245800171714941876313027346667215029064316473196354433820595169397658761784121427386119207404895075481262729144454395967363781534368855595179334499959415521993731673577956523457850970714290037702843724258056579656171239077318549316960470960928905675310724477323382076687664665312529410557152897778462559644010266879972966477761549943649785020526324666188276517627580880662978142654973006923298622829892483247292904984291786251515120108920008878024908325869165700439171234813533121911639278187149778055471380365548576905962704590877355706553369538668801224213754391334311465619302830246698063064097603602792190007693564828762446062834319872693019242941680720357178088609843865488478580868080034047412508693929720304370877414631045971730743628666974871904863983238007089695066605111591462459363754324634137484994850600948330904750411495939679422029019052087185069430505450789670055672951946224998635069403981996392451824259396312101215414035848701539334856927013542860327598661964767265777709533304677005101527169114439354506072579829359685810910143408136628805063934940780182241460185994083071354831033607124511763607274922960424894482315076083265296010517828573920889752310506985952073382613876990993105104736205052006325743561866985319511004911673600375092496595847450815296155791115209677014326092240641019652713060738969163310485020893730720595849098922834034328408865947269580496996853818155867648744567767178690080938294253118236712685418795583928543539243835905241078889327202324735972572849704993722035281630058914116760624254109788490659182065973959333261498720308987239885983638661865502067545679155971967574057045875354914804348879110617609208942854420824970201778283808277130295159144049844532836323077625011970125913636610529613039940995284802358312282119427400061905612911109894543569337755904042539218696298325130399182358150293172219073178728171828534493720783987717391338594235055577794743979600266762196108543416886285570250093207364971273580230258485935964508677252885085328824449780090844687968694604587765016554859196394159593525603873272795089976024806528877660211658744869612952218876568694455933988814847574742457140545490259161421354800561213743085348434625146105171473604128951496460838670052658932770908849126646247430289102128452923090070779481316612091330686117858977460911893478755954433689460030394174566245819825005641009144116732540853990334001769368934575745943120268898408125894757416805765053247093932803658055734183631114325258725640858441122107476779419381344635979313091162692595109694871087315001279706452110143459124410358130177990166494140397417351204453812813670490302047663123181168348887984281551650102539043818092625688994169248351177872045718017988687577491769477225129080799389363106104778336031829729810921781166374002666374068121329701212050518472750315238617337673129698950923656452464991876429821061894453002575406212075579403165805274623250330241455155206210897146730471020629459035303525872139681038968905607058468526915803836106557019127696844471863119895863957079708897128897056580945005115159757138424125859786813201695118386103535952528012159070068403318466370910186377377831279422465638514309882995725820854411885214733260856832689607653244652488465177221393012555222561547807991590763946227867393173780265252173655600339008937896261295463830545626205207157741806457681787448536672647115129961087522986419091510434090337508478741065041510656659104864129462111458523858877419803546369813840531690312237602607840150790195938156463559303260108191823823138605019061497358781463558880033031362036871157745624168086740931823617649630735711297367979463022506542849008126337321648333587522990921158210905544282305312015483489701339128861776218224547254698944012312521744965115660424919819341722924648474547659607105740058464677249990046212094140938200343174098704499816126742829977998200510820134234760731344316969983504042817401187474896945462599188257482714827074833166773153133210076549730251719877967976325132942283845007582234245809050277251228827383839658002011504649746175548173296652435776077820165159777046837808015565866531218510968796098494614781790652856720449401382587964072403879092259324812826010753270805501275870423364537064547633184587831793056589587341060468667952396565413807209632499834704567713770557963621196371211783292409090100039278150592487372082398107421290151041481275182387621094500584576047803876816634417100477238113711434060278501796629872231833787151773687225910831660343801563533783739058820221293372374600660092485887501503526437544245193731037667790357336418840724805290980979722795796648636030070967183429337616285237347272667639115836501782707556161661555679671138420496774926605033598572159901225708706846458733895082184122657218287998686753751934068255087454652491962044860558148724916233039052577772385603850094831917293622848727217400138326997202166911483186755013948737432540728784951481913336395279835639259016568719250754730891182382378416601960237584424541373341380350806523887249277211738351994609338720396474034378039366579757612415714082914676403731817264823262376306286726505054442030566959591582288090209098203816864855624887852655443970292470099913507361602982467427156094670488424870364467488774946423892492835630577508721033665689604882704930668165722546423110371037745900943115865146536304016710060239107107383261152495723679143240145288842308922475064396924808304495360758505955976744326153872653986465776302611244743751228649611249380898544301620875770005106971563961210199126812718479989152464497739309208221591152327844502349059361559674717801994686726757175749055475900533420838220184855019857039131329891272237807680031512462209693704533634465282425242124752123221617428943089952086638587049729798217123842150976188284609935585759597802919852875420772787797989153322145216096136459656898805550919889131172122318037255645603545778779101572692422561729343531002520607918510680069205993140639811717306436400633820312086987124411822675913490952199738666048893963036071845752996325387441337124805090465199506571529410880348065392144151930191445228834057453121028635404700575569878994154121090194357352423088795819192658292550222349897074688392710313396409220953902999262169992707601556229207713442272722166717120754822323233577625620743785997447397165643223661930267130240651374544651269958899024330402175510012898626520909006672669567578491254280571453565587833775318072590078843864671220963509095340069863637709699045237978119326180283483032620213637359531388827974318620610212483432636183340112762311609021296664111888391645465337009410674831854183658816988257078779745391003752864153769232642710292701298038213928754314743138066658244077016572820262233271691559140055031725764765222017639861139917734779025287326426865891176870597597442006006313000733827009714969482521005504574558687393900925835497774306266513047024841619488532080377000593026138320464091544230427014254550699091463255039066083026237838477325387552664127504978393538909206389611305135455353768389086185921268500366818078506924581076272335787990355230690508859637659613954735256419816896828668537800306623732986952652885552151353313021569531485832208190851321150652289908146589786440882039293778733588093806263493248657615697167763832109036212375875084571539495101280868900907867532150675747022355036756533691172036358803718969536256458915502155441253727582885812543914035097642137497848908032516770226840305699459216606331121841981323115934851934547641331407225132967172527711993534112479164867748678565473640363886665331492890394089205289057713320660632512678239698203594903622460231573763450372186609263493165981695002226288292876596210354853400493535105055982413286644576084560107106839071513995908018196021802149989267848577803245225962292498365136357469162555040417313468933524215106905646507668512904571932255879764639362026250309500657987978312079393890253803205019101562219919100391445827120960038641543296221147228662143618091291630420091147929981089913145327540636722041123826853126322496966344688834641232724811181739545946648289998925159860277210284111795967499729478451722053720848374647627358450150631967047780599442753095096906779607963839548078597846926379912294860084801465958252773850874095409059650839032644835390542708546744720863917184297501383847506967988038699875583989384253879253729714273589239696384034137647373785216159611439291586763999979968814939126941082735130462966592773945778251983448440360770829281361762256040755868438752865629957439979681206852725075051932510853974334460502925535718542148727745375782676501904239647571306859413580128348705826319994561606157909829611899756586873062697183868095568305053619491873654422645740740343490212095875080733952586124673254772292997354667020314635881833781421049745705626581921248311217024963446132342568369030756241824965001831074123219678223186833391260281658682332192577822571873008174793183981127773916384721664052505231495965689301057129666848333557669567081119701996870417375669480824225860403492798625413116920802624241238007610380425489727783814203007373734615771072956252785678325110747122718660158692634785230292817342511871519276473743857898090666783960247893619970451431763704625476285125027429595440428926401264468593930293031532109391005138638684913862078995785923386201914063342794287845959218318444032194255165803468624226048433486734898371566774431066684466461734703597203958762065394252982093603969795749735821352628699214531255256402117555950277632349762178025246989702815012866510367399550188836938533856508461050582901139383833316894090495869205495806706891468130667841326887286225523726954162166839822297580051319474684208741433581890575301257322552867219869501524200691279891112030245583099117266970411803421723973277585291642805970588318109266370028082558195311656757167556407046288245174834281076592047057268008922315678230994219583123644807293882218087498858687507251542454739288576201790408385068258023505911147021149713351351915838026958443970297885010854678744902214362088761492330105176467070516459602779370280395897254119495880045027431211754449444797418096022345967850605545495971547661363470401325459419901630078593441579155501705794407239992156866554955795051728817771891090197352728225077526858489393824038083240193992922161496844669849072221601516054806401717956821048993166885082079357297013904256640786090182943417185424455088730900750260802295788253993867265519474297669926688476933431753239991177797327351680612008397095041209514170912587880226730702772843965957140522451755004180212026382552561153791677375634181625596418365930024442816643185527518515190385784419900260271033338740310216932070451752305658065664775110250513333320807785397617061438505517840655635669989225613489436095964434073037375835038435979473525257441683632928984714388097818836952200514982480805570801138294493947666203513732690360079552453643428124996465024119074316568729202561053813091991339506586224815985981596387510642075298032861769067092265788059542656044532539666417305639133652386376139999352514807795544950813363158299490557189736224362441752851153389573569078087802278354650271303104570485421146905590665002082141350460863360485734512001165843497241730469702825911708259792141060861058229321342690103877675533663795520289724792183389976123337511870197949156226805294386030273776025798067487921259616859391391052497554998930058793004458760162226546758066466551144725180077152854075412897751569859198178074952052282970255797920075393062409020224257778722917060851170788296220594318797650918864616196094888639948769748944204457464739005301129039402391572010430831643357150534210608963724118765302905061837770967467153077719773048804216531119117691101441544011824141918595351260435325056992828522894309037904758129096802503613306142419191077411338252898341884314768031782445219575939323771819449148754854826040414096695848414973176642533797529766254258051254920585072739223161507409867742371103647577009073555674483497524941309629118082438579256233198288142576658761200656499422529975070120927433711826287467454724662072849665654230887958102224412942022738737788718020535806364782430254843235714936695470403410878651969779810891022347950757274232350085305563301769496211058317802421894470959994617053471975902006856821993747521398235714859239879361823572703330929897346294409189274544548376184692286378437362975734048154365098173139317799182261978348828149079287959119464757681440487966197144519316260677655442626733236909332262965266460273339471623031466103820737577687892905729783441482868042529608519349827561335692599857620591482126756952812299409283213346388879415933722338257519954022967290970877096706326537618723492732040490230445934306598005688261970922943300951355438672905602587811279281106603987222680875213642572519252946684019441252241306026444428991234049652675257724997161073752760760696650989821548690027241157097950425346088141709978594329062631132999414955671886074456603573748365201765983160635499546960542582364343313102850026854325093569156667745626719230650719557985270833278600528832035817850741606166981215891961514661636639726631635812001132400139915879136597181410347074501370255098553397523767241462922048479313766853244697879357321432965196783132109847855203727862445578216461262786263597952094756760639552723088274858617703996241302503760180523262802311136509314392903328410058188247644338806404125597775572465063666416960042102445569941153217797997716536112729231568475053339901631192358540509405848590781856868225034934094804801546312048681094213788066224213852017787500071836744078567107333420258185244801760875051738495978927363899378901742422367999625493654623654340517798439221682548811365623758076175923580709576857935313861476628092450974708658920635038460267944288906169585532897907249854969567586227216490792159943606114529052281384631529698845400742159366623019797334771309155099818217553153207781515180002934012132944670591644682551053461535022768373698658346352611897624228233138875105190006510898321546103922555279935145102051197303444175157729799577839801243082201822478285742709362787462196823373741082790195045957407600584192265865070962486953806727644937209956601669789993354261767809356776839841363269618375803126953682923482112471840561319091706874590791681099761816459315179891804486309821327557063653649093365842447042240761676832290393643670112016270392252572519488459302447558675252487676217356355538738722828454681046603380992971727264486292078372735363161265340956896410446949167150185003603438135013702061030357249794898725530865193924736637200480690695246121915551347948801633467409727381861663462799300985396174790979752033193435574736706408139914768510343396660877120621027395862598490905049179394211233919856248713206139868506187120315399132639429090468850262765662982661007049144110045507919502668541097488199874937386623892473454421244913564895174428586681186687543818323578376131652308988700261891349748337796163389087298861557237974613298875108465582434157835193874214868966357980929284273197718051701787326780622638014380238661273265126920920400237208313076621790207755381573248299469494726677941802292623089314720848818885546496122131119036560436574894845145285600151589435238271380890071103335324676499111400518968672230904429982900419275970920480867921269429340963106791095341089579747655377648024499859122774572957306940446574323249992582190264177218223430317589963065279245831278685826585093507051347338924401927130786705712633890413584552808115198029783116883593257482793702681082386595577064452591927154558764874173305136637524309907899342808526920507830067221977442366190051218157306689470736882877340370544216760641350798288013752153623135873007324542330158258000635087334080713254205410238454369079858926274032429569115773899349280607143451877016030134989791301050251670905594089884272323057569410102512647200949672878193093963892778223809223882568762221799637688755388808920728896084331134553463368980061610696390299065534463550921245843507285580062117910427355992180192742887979322005672807586607109269433758959103332324954595219375122255927204490193151109810940682865292900005401432055738647579509641680103425441823051035502566742993724841022721046995110647863389259997221537349801443912878633349207865916348821153552439458297103010414853244946799335771858838717609415955858009783824221443612332930061487330054557596564567583242284255654224531325286708745752678325824726824535259591872400989048705796119423894340009440623620459018180907417715445500523032297451679638769029964452839363770267629719435617435588522219940662767423597911074113583026476176367037295089072280280836626671759165419229463287866516635204566444068679867715140019350817895250037596407459884829133799523072623730777620853189252727637523018021227554659225758436750013166124383139666392790300339094690734119575232438712319476757960261420796510650899838821100541676473588631323251977053518299626550346406389632752787258367986388336487093683281829397189788821616264869843338018190720609762103020303524865982086234161299783052850658493659025512412642296412325498734668290945834570743659699376481571978137115810638357002801716487529747637669309103669127754105008763724173607685966056039911258440237982453822180292824530958167327639330924524552198735720045882367455844878891766437199135353010144545587044788601613303485879773203987031471237172720635943647362803998433040222947229159940919494462529531703517014681791646543051114473330919134462077048366192645579855650272666728708899559792474529557594018527509190602566501380687144866036907760753215093372793592659780115457668366808355910619271622830602220728174594459735496286145718890628948840321180042277212651161852663536411808485677973719729961699208951892965575487355321465127640268698536907116473154520218090228642820288991077649045189471997750931097140590961766638341243728350616930188540706041256254477674991011751414873210968882518258300138961878578970620925874158373137466789147369964390452558398871828282084636656134323987232535787851343996634107233019222942253245201360990550921067006125781585496484759828647187708400699890053128159391513663771351707723784044355748566713825857693153334683362065198665872792424259596869265704364425365896749845299360640784216808490384636070396276531812879544723659868254903360095209671176991584613817771489743875795322811876063307743404001998576018168545552372914731607853333513595342910297798654788134697803803549166934903340522175235388522703860916350882823143436184783495064415038506984167562203520122387267320278783797009891997116003963563307370488539168606709211295786633930874020936664513305940034154069741152166983693971796530448861998280106147357617134432547497787479147258174376270961119000527275519994992913711115974407274622703050491376246370408334123624400795928262384756722954150292039855056728818648903977617325680904352926235502587233904602191772805990451032710734445146239597326810489659585671436951989748194591763239921986474819442730154614749648949088908711648572731344466021231358142568791311436969527405166225299838013038848669194329798387613753333352842728885414281779374646382711319496240968694538727490928914423305115374309864675555380278453400785439903341450447530550034926950840845048219014064709066511173531057361156041452465389150661857413633452251085340790713958889001471221307236211098052069309220443461681463198102431822712020650762781919856259013140525818937336501535182494553791834110227125777446670496715697838632185790748643387085014251818357901571796884241364433146986396301547966685029985330638288450942578789802857972049504654033084039069273168415292100988576149818953163265467536616465457668087620972150125647010263302195374765444474306487212223155639908855903963815753703460052832108192926906401720132942615144640867642254783208380892444309541523014632209697003500565340974072065596730729474274474228124829287027175324880940052437525783409573239982300648039020304788403578159108739163394721680863876937765565974431861802458267425398086500899422731476723824453487056362067965970001208713093616808324668239826238817637847079965441361928355087296153586336667198024429365188818742207126948566110054358319818229604937637675603631359720493577206382459482594548874094653593459521003131149648569292766661489850975948399169996807214819663135938496343732269624272519437384962745728304791558283431721249382272876504452248198459608772149186817995188943767835731845256489935962390498268146338363107263699118022328360500662004010541175749124720183406826218516939721591079733319416787957948360993149876508344213520939344053810396355304241683106267518001616935552487694408885764446558620014618876499213893835418224917509861327499440011956706744737367462489478313105407243444002770544722210286540303076572605241098687408930715702805094072937536971422825761866553782655506612388748682826825906671968909632153815909137743990886144669041418478978844593598085021135881997770193594258430551673671115946485074178255916821405894853710855363633289557547166689374668033835008801223370575662019993351749331115992410813220211621741894349521442542608021637905002791178733593692073482531681533837187759956470094281176019267390500969402043293303635527437218298809166084796220481275844389221859205910743585463351603128570518236898014259620948672025031871562265042859374293022281556489999275051922406861026650454156770337193283883635567477911113321171985552041366423666917651191506760106393127934359022074562427941444302511285142995860102447272806838215081662653547868869647830870882241407954030589710564176333628156946634463865515369080315293449879179877854165082181056702581265056714612446095534501472764511745598440102037576407754239800891630454073722020929056351513797882172447221128031577878772947382365145313480293423337803852575889275024959409973482390239931293488350666099255433133821634521479602260868807098421180387110509330921614570139316638691646415060065650909642483887326772584377791135326282165656472584780162936115642481710777035768953850156870423422096700316805517810933846204841377991351471804612704280756827931761233388261678176851106262996242498356887803816792712157116194265447944765256079887830307499156929464902279492295333779630046480721345111573982367523553346331766786597953410215370701459356086052776642578670362149982114002152464898267256775720851757680031542279344948174312281485785424323652218581489302331300404061231133192436741454685974023775675732654101579115616340680195049721485104628494654210059310835765519180340487871681505089455422970088159306082354638882069940008497066174035161389014051688607331207987377574995190019021063718796178061863571814915484212353103965247285494406278027990806615746438772476510068684131720637004420248359562840240918842334470033541099984476899973072509259912981135295338927927243213361274592680465245434734516766743244519131865221166806319761994420429358762177540526485792561038710615628849483798648464125081652730569127659734958725440435020980733616988651854033076731954875323881000003159150298683047123834272259970414247063704498076232908482119746386416751515089045322270800446462944924870455524642442793641561531764286154144851428820291124931834336051406133984997794910805197474209975825932778870554182418838615065001371959051227605434749433802617162292093488919818733983466982082302236037312418013406506842215074224205611476790234405648998295074890701587614259340291480808799379118584413640828037665177374345688097844027814455801962214998280001982832720253074623239345542198419111319231168017929573363321849547968200962029958257374430447580250193962841285288865138251010629098252040090579971126836313112250349567186947552169248781024074908488492468804545245570360178500678559773847098525066029562059404189015266991786539686665860436605470007158163529315172772974221437073035252206168394802571297388420931173949636776712883913634785070126765574046237859682523103299752372527668632406909470965755491727992900032192516372672609496153400596333026806624619589271747308226306669816868658218515251571171109093566028672791174231242029647809511586502801919519671533158080266669876831350052569859374907675153031862557534609755714246337540695096737003925458113130395840321817634438509560316797882526548153502243484522250293737237217679933522901256350160181036534958689049525440461726953288634552296766597191532201625741265088492445119321078797341535197594836991151281672997842392426363760230830583136774302288535675444859809842313568617606387502704783717074559138658864454967282189533395276515506993376457729015300848176438843023065059198518520937771900743468765417356992586066967313180287531887313445114509383622565095266937390132792377663311735772531813562432857130938003525308281502885367114685183958933880598321670725132697881189912033767033944048792909603557260941732363193980237728638453654105643097294839613376220636923989270928373603504213169478667001199348212561137797959843604371613673223106420484194782344105065415171319635743338186361352676525991544112786313143621409357995809254030519009926866481727524936975847247022855007046183437738525802252082447739374554940592221010406147730208259087826134013911341435642618196905486032263881218482568466001029471893904017148194945964130845199474843862252340689266963843900490211712790062177833157545649428899676987199305615866264131395305356711620039018981434225253989413174298115587754010461820689443885247952410148506467200514079578506585031375161144727312366762523235832474406727748291642686102333060136401968144049351555700961648388147358862548964419415797239437888030281758921387630890893348972621851470994108595123332295013801180240823914112766308690436326499905881697690568847319150111564032943691122959382425064407044608296431551250952093756505873362563303141730320148822752382332528936636028227459984817838560827506240386402246619343620259199715293076287599350529901045677717566207043444026495328414628688987910367899842515976198502453057824013243373950060035224748618270988596183209942408065066556354029606962907245649573483478398268197627564584733885049247706162659538371694544672631133313611160485053200177214853371782956610729136064675266929527205356845978677543027009974820237618104751290940687561297758176877928241834861643487921025030711115576861771502955198898758865042017651206756133251852832520010472962589865816927360212991471875898527047648889385788580990069241495885922115048146743369562826209121434018369523471036019654988354624887647198847776842337317254792050235249094922099951399318115162663141086676331204856324034930621836029988838446694761584347200151183318603895503105989304255037590596677823012741531507129376338274676580731023593740257605562523897650722350475265078262482261757310210796230325054685503394098121749650091975829193846435522377587531793792353750437011320676304378221358477467909933664509811583709912962575144531662729754657278903015130153982059739514210913436710358082841481886835477018299624287755935244909289623239835250553847165919886803974186733531657413359174797655960786514883960927177155350960523804572514632759234639364607930336659328230763992169777756748657055145717637062020108730404128734052458973698475733754156138344487703647275214753819372230630030643539497319031620653444309207425928710205644755667634729728792063579042121632788923040330880752563506253820639559040738939308068455426422172099384490868761420244284897604555711780166445359579828108977334155575626628692122554049628582849068016346752002631303048827705753051813735496155602187265161275401290466586812667869047511810262666155239771236508922164546955722233547937627197341115655435444452607218970644834101322012108251274243138154013361829800110656015107706893302558088541791063024341726892173781369504772318033452440470694290711423323697119095876004134477358109723195328652554660564698200034756062472415718115658128443800606810030044738832384796208243184295119044371563188929892335132811688502131277875279234151239065830363337056514981598582644586077687291499168160583928904607287083495325350241287424517732900558855700334942993713609326379263865484654581737197750990279765173082692772620589913845549332087538404778234738371787352807002440004239362098847428258059121603183092037065948191398182079627114004029929223149658101743632300450759070425446244329313209492392071412762347419668879890704087983785231036956257789760349357627141092141663084740162197276068095285153216485681869544205611389353372953583025097299399817621349317896708625652051556327376474744611726653409509299260820538126981399229503313409589342374444767396131482465701072544225645493791430101050351217641291227177138007384763082365447084972866123757328167319345564728490860203730954292938098300547424344853139508254665472823747508146134634326000917821343699808936948979264483318718856997274841271681698429016833642988308138080268458763284942185880775411657447973571190359100844268016396582713101562487202221452168254868251946470850901884232512806078471003668635317740706057625440422817166765597520300589508572461598574520135436012067354694928822556804585494315686524167427678946571363862761651223907321915514683424862203106404690635399633603701582122766834400443732563310751575461326479008048324170806749177368248668254660879985878344540163569428955368861678996336414708580893609490021302435885616777465289515243038218188248678963151113762947465138765358675778445365352004493313978767382264013273862595014958396038478062749370574100992212086560265202559866101390244505265245686593692276314320712399393781556379389942548697850149060168776142000883696778295354775569547678121223872592677658092219111931119395884855487623909756387325195511839501581811056614778814660197484556902298533007773585188453904777903819208228262838002631461911718244122722086872015298710209400265947706467475402421338841026781378448496298166331704880621724795320616912186448320511205516690230230931481927440710385039234742085729995696977312941728683191488941275834603325757614185662824437922353722690808530595298834254492109826663831315877090598493871829050246193571200537182352900520976514545631267245374445575635760044500677752923550237413030744377313065154290110509366545874045588485734028138868457335914520670821301096859637502958654589979405906467512104929774817037197054024145975984187327555134622135194415879455412750133847601250604681318446112595355466342351759948221206814672313925255143212409724938211623208059502364063510893475327575274917976403916186964170847861918474694643125708432145376080832199490920850885070299637524978891546803908244666389651975739177258862746450870428188499560593229503438064524508555737622426637879526467352691634172892324244757937188741139095999741214287929279612492503078709661749362716574129287791919738611294321270628406557103781426959337001180993377589383241733817604181521454543007503649593975170958133157171309179711533270360631869080674452217148891573220958971957414830594442555398646904554393464410284046632127209337194374992204402108483728625622183738474772964398101050555429237490979046771787073340561180496294140236354506592180514273359972452528606569531428499873677798765131075671761691643285563111029344835577707508318375194633613725427852864205821321189347677099760283652953122941620814297308078364359009897833108766056807918127912191681335987411934549561722791489374878131359088390048716193544489906190839994863546057908066239115344015105742060797859406314916422146019078112686065782755739383538692266877339511592988447504088010210437006147538093287161130898347559217824593167314459262030227483184066331304908056549968588090632484520909029208395974554845396447330313043043829089788405014335757045397688538172731530263431335184041438960884843111070588414274136990932913184392021028729241951090830375720402211553191815375109883666821814844826202673179232460157479595693063621086084484449968320774206550818251752287442241729625529913563417400691247702238052714510744563190233958855009295673625219959056638319488149188021747619288262552950399060467542084032672167745720473909735635877522884095366903229696377635355969676159208853930015416885785043131779594082325941340348245261133269303396878319537343348260920863787782950769459619555892037191448968913762765977398648556021901995547077280340723208978417087774127206155417312353387699061636382235242036836386652593709225399954002618797420889755268218166744494062440634789393475448605929975206853044510305864224906415729541629910706024344170107073045100367284424803583371732508085613831684941667408912851826713552978669170895130837870291272612820814709780598674833873284453683621975092951026406619910428424861390066568630313812165563748337861096929343938131023188887967656088131161143916756130964746053641929056511691805354393518414206208127181343986413486497461303077989521011571111061875200876201319112453149306423948769469577789593780851232487026621586610044076062915498279248601178689164471589151168607170024221901154640604809184047806761896014193668398610715047262378767832400724597380720630938404998243740028335984283633484874594347161568099043909737952270702963484034301601785662012284558735036357113946061410734978789494130251804296682233347220540792912329671537603895113466024538201206802112971760968612523745019996744133604892353327190152011573701999200838428650233797592571067744309877172249215653712575505559841003190322299081434072617339740296183092735436889613262874001529346431862912308379453812424746040285874809276439501791966757210796139189606353955758384632767339440329677225050010535882919610675400904696074081916792241486560565755803653579200363184371113504299050455861846045860389503850527576174765932394606520462449938822608980900716791637409782797093536693755226088041829197040399740930883398685154519899649154414838239991661942843804015921064395278128424451183962143549210153586964711010796344215740618079103594242354045472286787795886584048513442922256869403186829582920875554252818946912091074044915121665205926288547663609678851695162274005492789779414241391573899110881811796745673721630890120409823119068745749662607243222022393568394365142555374558944164535697462746214731576505823530131642857266154057520196834075638635237419271775220747989119446284803257982083435509055011567013979252383093786193131700916095586567424059080612248714593351478540461305446946713568489622623929157976612704624178479174958034055354820284600958929235911706381673280595235359635486450006720880738305389161998890218487649909774649681407515255845456206954176713303538168640717460182038276170788326368732665872322564076980468408776100042958064445056733726048149092036604945267051741896636272359756628665751863337820420340108699598881499226755020953719213614937478997549332395029859894080104066405078286456076888275619188716617876310581965721031657168588677084624406108621410506177410410777425390565822624029488352079536735785062241203726110333519386057696788353067721129235430100448643604954602091774974209678386966735751866188729861343987565068346704424384844695922034755385458526838631981212629489669383944040855703074277069158191083791458011355220644683257789580980790272360031668024185432047606364223501067322441114979043121274795904513995802856556162811529132154827391977369541908057804977649057632305786014252722164062815775679474865756189174346703793212965759308308647974481371259609601739258026375123084659190567258162042214981622816137025239756500029593026937258523845580388623202896896189866098213730061953098381595656283156118635041354719536053362859113237933012130335983421090931479502093885282842767992920233722465233284608596436184534082884388992652518835228299317771510192902370999024958963853105542819776253273621464595289831000075605534952024720649234234935681827257262794859440474457054475153163856178709286537483627740692755952738979571482726393263005950723438681128133069918546018284564343654720324817175285493100323631574064826931468444610219886718223752351258553849550405555339630705795683550518125581877585175611757358731037025360734522867611729208795177891884839737995725916292564968121733152559577606572092009742436271301979315610903726202344207581522134088168088654583206617798054356976879284355017455867809950797369323797035885356563013120550657255792075519982404475792853927748641598129453651675085736800114074028554362396677335977594908684707519620239778592615786348307263552360494413809664398988035630004910236756720685105227433409089002232963090922595197767669517545784755828293047684567081856453487753965865059821336014191236863122968327654332180536750928859564188797238998432610891734343309805053686591470803303775982042902073548757017072815602440945092437370330551076441031619512394749647939382945520943479511453257759543214550601997644672687804305714421841390503420260998606103004730379051196763916746054972207085797573995023746246714842951491478521193921869485136546074652025615688887243391017570554150718127582707827456041855021124373420472354413390438290958231743345158644484325434092295400905573565163614730179617793017966494057061325568157228012539913030767832956037804156978750543322483201366435450591212351949056317157832337397405884308240629099233677448236182180049003981658914606904239015958549921304146805275089806552207073396074176919721429818109156378518256357486898893953662122640872861722150841118851547708855712098261787156437645325736723296954738328356075741146535980026241170642003961407027426641498972476146460682806814827340059731848636177059263136804008765896107171850332509673886403828613868980737935369959541842439246884764374983407970050785089440194602442992204376440676173265263495959138043833476521367067284063319496005130441789343530180486048148536192206534153025719822096223728245175319645650621248686751596161906015331560268089227938325322862843605062842750546811395378609161681450776771019574615034459982156386258522595142124237295854021314674317319892205397424613050993285384094453355850994121270554043895265547003697527928355482602988622708505083234429737330972132446930903111529892590406601294464136632800550232160294706064532460777576792559299221629906568988297499233209101707314274719799408390952425630596047939238859850419936712301834329715278594622974526748316381481717950062901723232966880785238338165589317036039672578136385302412892547958401065369105931325971670324331988650359921745215970053758451382593219454412208820735307991998745377640857826237546832256749734632485422069824761975071858942141067383700494576891220313021658851621104769441665381448370336627301087183647839771433252107170268978956872024754171621507867746871485934010932401509923608486944619073206096024017459881966050873758796746404956439719574932431270360600022435696874313483973766061333217706660252737337772761817299396841066755138631175011387678852924670140862545397513270382022463650770290309230392181220329012531473029454835018611379501399644274402928499590592733966518042881342308513446534058881441646913328370045514428652074662805368216935950367048902952528008790594380454142812180585477875761650783356512457044997918817560403555007228822859026609308117275529113039867371111164562875974244157901692647853052759542108215824683788130429510022029079539325561099448159619459685129883246057991437037713067915653486144204726329880858472034812929614092006216615903160271762268554673796902769500712643423396137908224039715093568435996811023826076442479209769009397711638429547592006142210883791319605091630950452104464844699856545140363587613100212121471130382182085431044220703935910716081003182986969274879759990785337117084613109830861947909897571698970586479144186653554776923383678279373690994688440434526856637068703552807918727042714764636592729339275962961295921752138011375335213677847798754007818328338581941112518541938925903351942444049621006553704322854012431283529017711368655156520697327279292000219299125364365216930832356245469090860062799845420878730602749924352604200212862071831332980102315611226744637743831257967492466680016246757033109446942401968284580613264337645879559687388634350626121668834483489490143210208802733247439923095929616560212478595249434018613797496345895928861901028963464773259384314357141098852992396781435556476769476519702671591102341408545847557866627442567103851580525809682265171608175311799694720524106494380159329945819052736208724482323887226033316124770233911852384557337781947218306551059623815317018860144924451291578643344406428204278674595305369884881129365245383875765352756566097238741624795308544584134714308546011129334418120816299523464236359620457768513926309346170103640347213891492361347702302121982912134070617679017838763155194476086680823155559442751276546182503536039606222698978676140700173303678506667909635917390924891094515813742351479406171812394067143402555195032778844699675859068834731385834092588603472058624021260639925598626229202379215482047747356693958269451335490820800495318054726281137299064704470287360503544271307263215916787012177789996533026422018531008260967149017039927847616974192381967660437178902978439487199063114524113897448842479164319846494443493985210856674379314939312655579099382250990038491939285983610722607345792802703162868482094776342849443912159890669338062210956205706840959016532730952508511498523261174719612980304936878978128199879313613695373154460131830633006572973423945022344469697074148616676804837706588774505415361573414002452119099356126766287993343092216315715517597787460794829829629605730654145975849473746707425207792861742261428177226066746918106978722144549863377248540220301155215075165267739179482430439694515228610425899638486974680133931748979381432286032037075279438738871817714582709681340909630036168155586828338081481809940910436114660604443167092928485726934930226818801882987972556127838557668065545153216843292566139222001676415632829645840494462193655872620242136184093965068831442747704395345927304409389847410413694822755137622074206304765706533517125623427197700253193173932362040334216996174318227418155456266184405083136042447711086739360124633445684375230217880091125747418679471035362095014964052493309893643803186732287083679202085142616463623144712484056494382537361928335035393818886035792512905816864597043275120767406169055141328174347627122066259331162965182679026448862708438459117976721792612375607235312106086915128397209519377344688934775109940493802172239085967198893452281365129541568156304482879859609105067381234121012325225935662539510311901432344145412046175931082742661792526096114058840788671704114811726144084671219145033370920040705464853819982264306677891599328612656213719740264869337213149467518303350314666169481723787637651744474073018527442545448177515847502303020486403877741156053558312379233043324411225882401295124674277893440040355074499081696649734221665575323121601078819615188958465837959527412306579856990959115733620435988944384255401783441441517735436848093057140907828695954072542376486676589397930780428923152994251545927827875056078843635571382626137092272083189250382176767748051466868861074674617125813275156922293438725979003425902823409845753488952549852480495707355920945078232070171916017412780192743177561139176933590386021357929102473637388499736410855888564144525499319569452581372866839278304149096162524286504588786911307346175735485183320311694696405891698212876801112660945740475360247157988529603746004661226732415272611719923482574648529783273790358594010331054661952423225822140599435641970955341743314557668890971124139791023670599331200742077738222854521954676363429001061549516832863493780277319329372178058440655824074657835163912969838851551532340008608498728242430167066409294563427921627368530500411675330149829360261830398038480408496633855719635587603318325126404349053990430107654687662247372070073816922129736805249717779590442673695088600012949627814919536339103447348891741559671511091954169841918255762892837853404331825344166670271319559658119460640678966193393136291614208724865984491911070712837417740996435161857022414993108357041894824721554799553153518577470147305207249412959964973831239020345608764681560553252080593499117101988567854021497573854832806515749761875568382930463637980058090642994466836003102447640127710285724066846114262145701241301911919405436562606295218029368845868992977495492322784275361689361593874348069077670507189896042499563282766973805055740550097512043460739465561445521745995915963331692587178246051682603016303959717341757035686827239495033603812309425264734606812565115151292578019866710184561605522910401376700068124106916593798930687995367739957271814484667073750319175104652768637082311299842603962404900025348917888721582615768916648001121984644210947406419923954573931413280841839320507494731681394959247492450991415784697032074425798074074225034452567765467392039705533384341392095067409042104467743601727618433891997358446923019265541460387416346145916322361632490428683110376644938871639179881312469527855321890789363566025718985279077378355695951766950654993834653184422399988841494203535072831833509045197065041864732158282553526827705858290326048578618260202952808705550675077745730716180384514466447626197111583074989775182641219442272648619225656657753795762834380707562128985773112152199701398161993385077178472079504953034249317452278090202505029494771987525971504382796816991442326553701980654003314770333262601481648638021704691242743062772650907648421643026257952246177836007613979972373042694515680365005514233828092619483694569467508351573685866034319624999378440974220851545482442727490060008517206495394885268659833466206609952835065156401213723386747387766987097738611057952110192432688827216510524589931499290465325056285953155843025053037394287072242229024292276805646869548590604619002081588240670205993809915562585702675670507840942301490409608035774474842312355442446093456999440710477861372377721378286432901252705058305099080920152217262864775070741619110674400615339823075664065429030067551641135287265931946490220377495598472979999327518383008489510909228532898814071848640399862249843148323210728315331106564485284552978427655043719844956408600095312406751493359310290856273605991428456422535466634742829417442514398558865418270948169996939094611706198251111407447650117863751657565347879361633407480911841976582774107750719366649878789166187717646595686520659042086654473506809517019704173975374969426788555436881764153827154309850592683625646633185847615506143624840619991915737687607824673270552558065305749933880190368273166741496029787144596411169332461528913891932990547742896806074371914876324822179033082464590670930523895179971538042055326483218331936102126240667053191929210243089094413745916745381550382114542754723928188944222539908036823156046276440510680943014239939045425647644008033016500296165875527402770582737593035980181501324643691604300921152730163141101658901214696612645445622449036405312283123642260688970959628612697499369717113975185896930906973973722056061982322468947167142742586267766129942337585519654351304857458109100579793827949309730198421485299769061571384878455732786368090953358798357584085093890343849134732093326803962833528204258496080544210054087014255727466791887564222359874311217067091596977842745618579428792912281704216399017545946359331201865905574085792308891452971893032407865797189891451150556950370903995241226373122018912556949401424259887562768109880622969045381694106416522230049146525178778756435306484998019821357629128261579242679945338577605086745084795668116979277098499360643392984359783016465707702573676191544164524428103969231715215730975272008087909933870320597063128783741291851679710117465500600609142402748038706960141527988035876202313623689471518391569315766489350755341210877640698628481974263796458891639220045899060803337079767076248925030533957357379419724835279486547526286604954302012393021194062366017851569624995999833397404249811739465584885137727579722865980638893946766908598778118957566978589398145962730651777497530522086487451546482535572133750112964010251013944915597976287771992516966795760013052913089165763034680205846545627155200783627878762351216944066668751684775170959862783778483808521002740035133476197869095828602601814364167494254874301725894580726897914553890131678093683911462837710539381261985465085930923705899870635910844640603414761134167323900051585700469012877657060932820634141065454040747853748000182629147601406900762634727650565934586489458056988074958201718800182289288113182246021362778257964882592235189763576796842055228037175008953555795158697630280654038131995543318021265365981053985270784155070549681491853301828389071021822535847282457115153242296121272981492729481034893471695512552643284025842729305834455596379801262701284124055689986327823928943148731398646650774881756886894717412526070573290958912558892166604118752082267373545036859898387719176282680540373686354425854253181215971835637472367730841813427565068658468601211519156608286999840250457300478194328869701273379612133558108270385257816474348762787060222414001723658218526332379419034952403986933382376333803227722125236971435122910321557792443852333010658468840238767330852225982243923663376360463232721961157859914886619209702690105893686014208037049275395941373513153033099253251470485711169903778455081954021654222529409279044861047490872746024318799862190249681718063731862082246304533929680427266925114486792073767040097640190661332762048781120972147188952958628393324231220132650442950040002724121426631684224231669902690767224066036945041805882338498251339569535480751409362215983579688048184384924631028443789260752390401005746800368470801260191230139315086086817849367891137807714148846883050647046431983198327472371113206204965920325325247770442389278839145668182511697064410602175126026340621276776745298613174490250074354288448218469480941359320300765375598472073459544653963424062581807087678693696154416440734759512195947106773197548351198668508001945336532032716943356981364181731552572122201121237401687197388981097734856762981707324687993474292526900791284560793011053076891765743499983579254807126207544021142242774283095138160027934521006415000385169602424204739809051456665091218653012517726106049103393380200759736936681030715784153727628488084151264694744723259464248812011192316961050440866941167299849154805302189233650027864762290452651140357261387635977754480509397035184045912629251441389340057942042715229777069993680252600411429322447615856890927213527288302816859047637482510450404832371298445599895506245706482813757653616390774121133054984260696838862851232456105480475075652730489272472187932434715044203213372433346564127684185933487010771108460446221063133724767816645706244368067469467513868667655995569816293544233501302704377431977201623316853209810194797664276951615981180791811835149436306137377508439983973111880400569936929890523711954119186102504464224679029438854247770903613038663669629669357176806012861593974684405781401856258543032772758122098275858880682230034685095493563528143687085756421722338211070078265102646588069438357450378791469191912714516512145814671858821996211202756581460686271017013259183914789539594660288947215192157744375900024017723990000186420843410562740984927236785998890174584078370267060029567601943980810827504836224113051313053190996467690184573407968701377932129799699130145857470134796854110528587731092503751130657499821353175169741813498710560854858842747951212956911670433731908391242201947746714344781278525235643331490855166252481633725737535441907858953525212830543628284249528150474954952741774707665250603398427901989967788143092848244931428368807704976542697136026375182384088109227448120393872981666616841961534647948492364940147530632351184704690599669278509527936397593668883022260792435906366846992028047684826599017167244004007875168035672803279517939444766789649148098694011167410602203692179518283320977082011844656594742939107134465939720025367517400194726821232261412788774522890199999595840974556512469667298504081363523635762004075522486311396656519935233611723001277554074994977161470902902917641239201452520884874366882941159002424807190830854664062576233722672547067406020884014000614091280648023838077886996244543630585613782678840733225746102620681290459750038375121242253019925559474919220313905586043307758467071008711525869781625130387908574992065095452470116837680844205974905199763977515970477945835615440184914188520209613824134370836470281964259071141650362311511473100736107978718584348577088250873859259621041932720800596885712881088125511404622952014986216222380882799757672413320364242370756684985111270118440589408259449520275699637438597467878446944169138473836025447625532627887709013408228689728548732878079494693695307226352636805742926998788682557047680995154255896170753967642176802280845092353764650279127654798835735244235788027975575784993333014530894767628603356625672559131511994190548102364533864550463693899614044209153082755104845081174077916087960860467603895482657989597556060912774923631124737528626918587241880733223287364733616429065547455032099599890643407361036846987730211685037789787660795250366722750595915884596050661635506768544884856239518258999609277519825066101481665418082389951181067768430860585295674370025155760488451403060726302872610250594939681888115533012669775000185481122404832919153454390346747988152753966303385612185879680188911056350589274447148560540764348770735401247047128632703496186962118191250313946876602182533947658949367039982488247756227393681772899034398647551975080059475923192917627568313314833602743174205156842916928188273460674368411226588891921969098798502226071484942770578302600116822171773904406590475313440776096158578450354815720263318058276448481905138252413127716237872078047587112044792170244769138633217723514147663177945022870337079554225566442413967079999465912095203612420953262208143536706709692785097668012758843219455204187104906196560910506080067558705979150857524649039311358207618186696534433692107174333847525250189544337414996435833230547712071284227062703979190276880162515116352028782636454502311971951628652321156025544319530468481927889485668562960503128249042347483788596055867041870892057313153530799253270777724834506868174196371206501656443375264984953747940344122328579064580777656999856112129760865856039861665305444967597075916707895320500147200617611800664405852279668753795602628776608261753555250097296596722450704576692105458140565805385296638816620505617947786224117454141771020376167347087027534534912228192363208618274427346735318477079167200459270157002172383724291431390804100538130423639182792515168224613110934520224903455345015816615520953437124536320267948066866349427812537713472440876037833848118051814883138575948631314953769475449494645444158277692417464809765299492942951019098391310333510732268823038734478392786894232442606297422760151143030121781670358112824856804806845989886603976745788175881088602804686472388745484883333262334412064272903557830992556287749501803519169801176506736905907817898502391856509054810400266193672203767893981880351835677925865421306462559429751834507772856596027380768732654793501735449244542907586615565510573457619786708683472241281616302131949854146364983920621833771312948146100694133348165622755957340997761356677468742490913631176887658073074548244630920999049908031541073778523516447218706413602105091111033429487606926968292747719877945858693068357892350158287763077717414390724408400639146179526969522892805609337805258491422929284650970316174546827125591532928866555980652084757242104724848118048685470392839664950276123003968899554092097558184594951008501402341955115195906606700226090594769170571321969741543412318275070732760039108181352249832311361138007245254592503759900892312645742287313483844821181329310755346935904958667004561635013911672276962075943173116147145497385142358067200879420200925749871534884322293504590578070365205666774385365818331899384244039880446119126430796312334452165437636092908915034791897786222322853848229334534425873203211803842258960964979777765998962128444980897514438214115485640057530276620881744243213893606159698411612160462226472269884358428751278568220330766887460357768885491556537828618099348062781944359139927855433526212206977537193754212001347319751662486263979594661497548005706929116761316346399974815332515171696739271022368536818539558716783875728402319450135183015514767340570717754162968322304508407824803233462423171216075100842491300522539441726549230593364787075825810115772686181085376507664164859625681342688523020523498445679941722003495418558109577084009775001663724362435905494209054778625827481144593528643327018681412042338281923047380716254872903550587339771080367440793325458349972102207637672994462860877190680234476438280668635934010434939875733928911565138388798832950746343408948647950765767941001193642749371348926972582497257057239375989641393722774594545248998812085052115496076883897703139246224456367210027249917238225475643741422220747436639693848873219998955137296547763190559851389528381841849916111967237524036691822646749837557679479757563945261615928151079897217336886868102521342014076301837566619383816802843329621130804712699918764376046836427039936569192444023032877276296005062061962477912285729306019711499567383325832872641644460011457794751567441562108173162888887734477833674175257198164009560922979954098666790447193556623805629191811289567827201519487327397474010218696075901358268324462143713060421443035340043263262958841735795926949021699157356087711999018165394780267080572362629597450235026251849583605139858138084583314109713057400759375393386926822670639300351627915918212167473709087275036462767403112836873988670106070685281006451915895102543286502537031945837539749493328357134636727554959254195238259681535955933857843374749220172265836440899330947052098923637177073657071924095700898720370400402776397825008472345547542829068797215060504341525454719540365025119511222859041024961829078721144568988938533302196459970268836756134869268950378630431936684600502378937128139917947945227161412160660820817940328252972919757575513212500644402310040594161645265567660083252257062153206287134624283339146592818434534087207880570123616677078418482815353262519951480580700671774236017129100772998626764766787147257675252404771116098132471425258778733339018742119136482885977210396556119088411771466365375444859608647212819969628500598402536130777788759866686048755742496299329190863817098871299444104297790427334159570385551427834490286119317265927351036077342961980020483552776301583039275841902092913298606223638489151174515449376709806316265916387011874537560709203856453031596179453506637920740121408845608330189188218643666937061754917632475235795336391501789048074248439409020874068305139097224435026546052725911644736805873754967853682788826708533829395073170908596610232808333712729765332359128283253355267396975419816546252141138841131936741201353440218640205707566010627136325848090260297166321169677574945880086779457085073235898755066968356301862189566942422501362223871402257145275103799092527605152605880343153524738380997563639161371195139672256899910140319471116671057412140056859230091979106914103558396259429050691638387013460950940103869027111064603885855785676502458064068029176381238934997728349168632761171348003610761864886375555474469777750429869843403229036300208554788553020564645832683011182610294463343384855446522083384541821759533126597473604173858295239868714220025733284580190837512904305718670616998616652355425067129812617218019801342964004469279196731382746701518993584063986163069694477927515437595385533239482345313884382392218858499123690042977681099969540083865632479196930136645067105485149380226851403640001017630574800337914214359150772059900685148338156412529377372929587273623857590892739193065733012242584367602371368164526137879768922161409201148574085971459948099634131880252496369005112908171519940032682491404352159432449108734987219129714734017342462607629818038666245529457643637308368002517617054145154485780207528049519824123367244572155460872959992973063094324865178606685338544016305132119820249240406694023558868847474998710647607472672434715778196047467525470203436009086479783647509230167072077770635473973739833626885396348050665253478271814299150062332844165524264079289416594669143213628799898019063030016238396818348563282307769820723031346575557482859135642177116170993138167395230883213086087750603955466593526639285093726787432236028405974377076442833115413053632904570693491884960731175734581434242391346721332857701652920600884960202464282439438518147509386403483005145307970110391303114278222731325306391760492216751809390213348827710489469229803057182348396420957278583787734006418912394793542776234032180519312314556815762608307808047044851169171531513912142041721390559420523181113010573140248752259262555851197111788635261820336988282143307377753595923833961061880207226694342592683732525172223664099795009128586574559961987586334230230590942126042865120564086147665218186691838355958854239700072593839406415567138676945176814596744568789083600492006851875502095409686486409711212890410054462369600633323053766612667818049729430773829817913014962428849426944978468989774680121656865013003653985969495424078315615009998235264106127342042282942141988264001676123669624387558322411994372432586096965367518715739592156165228766403510956717448266680387346469585085541231081473122366761346226874186861233484698402163062067293744580613746528919060669181205630215935026052764770474972512977171400994022140078425373442219869135052532610978297075180188183651512265332915358283781277644391166625349451052786080177570650725747745848229122896988948690164250794413520161515650636656139140347411770673995494604835939597995825374060538650989374711435734114410823329456529668924714338662896118888666227726369309291772461455221567831228963724991077251281495079851405390503380188393408951112882577678772996355142520881244863389834362077730173220507020201982522930656213834615220689154704689540797867826101481199122744805691800512141960963237159211643970770003374002621751809409508451951065314390026557592375826738748347505133589820523931833203096060073466122650028421197286154407727707242723953204261811700940666860019849648088893812214500467947074604120160898960270857512360135604056245235127631315346623395170027580048921608607834138177337537152481160080539630052575787049966384035329581983701284300425593973714732478227104853603248100091974524875219014872687109524756781026006238478404754058940031203249487271537467841168945191475670076098248019590171682147508019943362534084407961649073996988695281317611035268099319444850166747872052595232294999759076429473450723687377623005215944189584414051359486471047054557199705442617061208210815129880900345333678665233928016154456721806778277916676379918448147645397560698974710554859239198713773796840835826530495617157227734566926828917043274603899286855880199408331429911487346797208294427863712432553461362133691834737651457848104512594640625939398706188914696229152485233583818656604374089272018738191920207668431164816838318030117226115469256431607184651962480977277255530615098154552250933013290460004625978264882610398393839737439802834602005611441068431837193033764140032765202380707204491792226359749561006715880252293721499339578323474460061348715977656328980214262041960024356745088435734029030675470739661860322179741985427967217199094666864128097377463492972034947803072045114493072910584447966228914819491815962650801288608990306945500858890485762085152962369648800501959419606164907498164001907911723178159960906402432333688447643761156298889997958835387473103991075939939039771389273291456424938628717803985847809651810531113602636906998903664628206883529765348158791765228284339294442882611294188263018848771190984073799330229138910592161561124993642099214121187080085910293989299078439019592987088893354157978738490844332283712661878572820238845462370609087604878980956883936110396154095549814870473567496456922285308865855986535167267046504857251680012142359451529605040473317905462870099858991400275837881344599339804723479962207561252471325971227313318342238198419396863592580314486793903256201319998403449741585483487452366542075968576485715144421119725705985763241404756951905060917372575127213173060279603487933716942985185118557825998068732182659326907472860599341090023945726793203639017461868742855786622636038852766880954858975285559319561878185535534980961526494017952230595177736922758740462162247139689295547008419918268546115679346387609041253926002926634243963077381911474128281916742373866045804464910206362688068555688580715972418702056783777512364798052520507378187770937842113604763321014822629525546754404012446832566307798980205939754176128869943427748040837321428623759202019670186163435298877080330440191727790398599829550458383268949573876754750442023172152055767948334247716623215359834223881124001264323398084606225123713187020792579309141725743424096224828641580045776634338787912036305788514347115952633781293789748123880403457780479308095702486430519145867994042630214946076377907689820546741279517897128000425409631638965249518963071199990140485822282122988394090683770790930252108096518489692967594288229366056634912392109158070141228378322335490667846095761900882702453699048683802532103543995182897493130380969193319086576524517807953894170490497707279800871594553559295070420409719735133753422675378899249434291594377376178517294766805165926157871788236402782749262763849368743043152703320254065236447897950160480594092804202247996936644574409022159439392444115716989925075724429751625567841107797842621844773681210343919575723941012565835020685926377611563203067262315521974627263023849072766646254449680507840327075640739626022616682673475543372586143137129828838974134281584168304772487638189415449817413554774857555253212312994528538216930814012095430304583937887862224589546730796679843358514998435148604646304097489931364175122975856521492409566310947200132790643344685749866243312380856046890537855915308793495766713071735592083494120354673553443702884622564964693924005790233860054418479987192927109679440362744319339420235793677445698467235118366677208227361466914122102509731647707340219198913679549871729277893378642383720036976571662691466822069023994833583526089773277788527978735656625261827403808345395070140744815285893511130548929612101658929118719590618620906003157450493383856543746903652017695563786973132835644606364330004821612840326897011138973380478663550355683011966623204079508171654135534404267667421379972668883887758718968727508825085569031279934010902647508011949844855020393718689366873438390513038090994009094142425544212361829464896598769914803538791385402961011076082912316935392093917947459185078555301738187384825692373046505762179677128369326695362437144859494573267664508963251492581762949504870805619711106487727739013245724640320801516227596085853340297398194918937507237360808829995203767514944284195185823046570807815343780361803165001291060603667945951573848561439168070295533178656114361190456102499221541282352747806295790923092998861037648093970649662318646923497732525464092386088548407017298113446453115289838930034483562499983383085612421200612140652245558072683964364667078884108309196092328373980024623820530993570808166051502558792508396163465228300305487013658257963731701351666667527119203516210823956598455851650098820261755847687752931520117132342196802879535899043533516542228529310157600386536119582459974580215858388709642734035557112418463453885541462822721435829089539907536437224976281701743189227506295686957167827473206676004732619213270940385985703623079250857954431834485903846240691328427337129609688658151142855084902748987285826646046619992351225015968063310863501379389996555485280121430498539643913139991041323111417313688000151395890102104632373231461164547263617314108653057297717436837152062040697796698048792629941608240982287799318222455164949456867292611359461476837854351132472535579432547342020327880770320929170106000598312506068674264002656441319695823281062937981847834083422084178186780218703389028851812479844795373641351089227590928336852202761430722858752632578662331237793811386452282909401274724338040051452132018747414873845853275442272721769275787758166647604509509265575216969467413681461695101283968886552484940183827656422084257976926963898932662498446609344190357716225429962693746550261837259021475401184100814460355170928207408815011542133031355296452534120668306898135175104512216349841885092890995897706153920772814533296840725401810690777219310702312022184538710471075075697622982511612360253503258219416981586410709675111826194762961761741225124372446337770420082227512144157322714936597755589548527410916685967118570586745344478159951575431929701175330742735475133097202436183993602950812606907266265972110518766297212982010965065595012101353439443227420474266548533037228912416243469251643397479845756288066697993401247619576044842446638765462653574217017637839489430268655747169041509418697198253110438859476063646906103251809282125741757516243541835073204217048874552653361561444089303115241641892518414192030357178847589198077476522731414309727531698514980627457625773968263903986155713763956524006936020248627187334561072145916984423148370983141187402848896267177728168137705357797886534767416390530000785027545130075982183550061640689756586847993156016699110031651912747467465108565932325887775852842257998706449784055019158458519729670941471139796766436538655651727782680316348491010700280898136997492628317444553316677208275671711560049711581587949012914374377901999932314967625873357000307295509385617427857285898887069083658520834105458778996578501589491346590399951609699967239505274242136163845578388675847748707640852165847325646814441691721736807981561289258479544967394631012852879531813408229156084434695100911136314356216521584333690554327005092141393228474878999264115656051445774721485794326921523503998626713015675936236011866996565734488413023131496001922361000040155555582483888360668035430524855764013061146291387093416426887267594140428757918355047406195189641624094718048248941449230278506663178523530082546173756310133524503471930666960903132045427967841273597710471147747569042316259524944502161571438169626031485644666691912356760667555254669524091322612062684487225053080142230569164159324596690674745865467607329566842304372569458809838610253094619241268226643204239112608398168414407877477040236544239468495699453995572960015311920431609217771162586416319177279765680475130060552662808622933857272275780323375567179178023079221971308003383997258368748540932814372781364183212139922657674800539786397845489350428463482414519422823190305998241287144364512883074673035225679418348547670621419177144438431157032743965970028530261246571034331109795566503209064262012365199002846529054403480561874181975132883319627446294274067709853088593025305770969325348695905794795346221145862563575546264116059977471411411562168692642916337499747142893628363118486650996595076305498478557962037866026963711873062197768347657075858456965889831322557619703961800833203016198347136213189909417303635871391015499465125310736278207833322848634646962563190016999840798479146140853668882356618735566982454846244536022527287503508889753069140873251540155047779257753988241141661748710663688363596645431423408080009472980727195139394130075888427563450577925727909548277751580278603736707582910774843445084437830575633783468155725985978993236783376473326789852017247053447147408726694980435761459243199255002278512039808912945600238931272482441285123341072640408335280285153586239385617014613535681879978107810084689930966652993748875887562223081577998293832333093329889506911601427423726541690529897733812282375328026827972767293645054899093489857666112515285838566993876727259435127642409607246089984702376103027221533353646028500090602545358530392130647871649615822794871716839516256142818949937157113888605951246590008305742187226368548039060717371440448635605511891767977181857489408351842237566823143556824452085977778506492174014465995718949213645303575772905774531897234813240828304456096062642272559046158080776156688311619656737132164854823897986784389971486726610695783772368830659016131599747136278328217807163629449907733392665707383286357418875411276240906803880339507339698662027326921265682030293774166319342818983294454161015289467231904682079534224682316380934219707752362132659682831632080016797136629166278675183884065126028272833221858161887446359716475489702762608364579352762280478021859981091891126027305801096000174983434315944215208382240827636093851152369562690316293629336879152222584750715405121077281724696405579022311459241794184785434051833419932725586882263791269618315896862983558799644106312921083279754118620139806496462495143669213616189493995079887238929646848076694357805500576545714046353125115846846216440209436050069172143424713638592688620911785053551065522708531553662581016391206095555304364210032788677530139919789072394669950641361316836576765229921409526797482243228037389800000999537060522941826575974018550520827913006370162737452975613046802988469945147045419297945606651982871020677250999875202668425837211332607385733521252488699130020116303723106884562911163501808610115224603384286039739684597996214003833623207251642004333769038486531437309205364596763811877403549850661558671100139875914985807473888577304558566293610511154748120550058327099767383355731399796404027506131823168087063509639152151028186161352546053115957632880225031313607030637502835280250405949986967274280326376919606693528903665073053472651794214200006918544504600434725900555639227530575281383236094321466219672702571629558267580834718606630500836646132173808638155639131947889854770620435885560488856565762584251572062582365968188411903365152342455615410295596709115526082301253194495597503255905359960692995751592429897200253105432884766785992101236864924214594804372335003323503593503748514924970445291323328384524300636659815640244155017732374641102266808750960168102030009979545172024220163741888101262910502466713632177362200212965687531965960938653336470601101945775426932258993966592652147659353589922684143048725863202641811013187089676804754426729388130613775106900630149407883064006270026807558701437331680497098637764990420120465430188330250515151375481731664150069073033713713500026789323590815266730306788768971066113980621559417135075805959885133986826272968959408828211225187061392841847734194335250131221680680220437761299916683290844917198056512193320330515209436359718780569161945887815974190317763400991610476622762069886815752633048843557295462351506356298681167269093242565127243372581052304605463265062372965852535099784329920662806096975886757238336998964534583769058713236127605338846951086905723011252101360231921626953598369608723038918084810085456481508692836368407158129959753307759019045533764051837666550065541638323884707346065610184665110596644323949585260000441948043061455351971538896402561478157841081020427275215883926374757580523349465010876654207013080537505611430297643208745237499436117858032294991154399482327734379478799066824859270634783000139504762501199423939247104853615416808991264146480759559455014002529041082881549385183212677474704465014608331867884910405239048378175100949958557416443861127652933229318263811753532989365148050324010775002033634213077407752878315276632348393459625367189015912196595326831968063456311941744869770604487404694586929705565394412720489317228458365820250905089404534978928093863983288313624052660125413339039471614090700132013999349318664098348893453090223954619665788575259397675884667054273890925668469245881282289027915877255732368664969637751282683005926585345364823611721985071005677189489117485581675897348436220043117755807459927569323729183784696479281223337378413802097328354207309038404587614475188035551972498072986614991112988409803738717218900051454796242530810068097613201294595452259332323885146871888838225874792625865724783555052021095264767470270213810284341926159995571684345342935076831559206641114704853140233645696427737490395757010859230617220418916007025522617714243941438286866683943561932670196694556185242948044751749782039302390033766964910603919989070668804461488995765107158012739706668664960789379749335493908579320895041434455420374895029656248620308278951597642575227888023614956361259911015904672675823974991016664514854802652848327059286757315179775996404599164443946702556206572497469456658009422777777716311585679258870904214692500562904580960688530913000682905093450352819399135961031655329356512066447010978726767565837544261775434481348321561891798366680474916167726715230813472026127380920149489197595943217314731684559177939594250130082455811942322147567203201215710808753650067034556103033533430559791369304128370073102528934814474041987016578833215215358511891568607287644246842526032679918290333547546129910805496609350120438144649224054458168536488428992754079333741889071571885053434086568692796794374001610419855302841076485217139167199376503697726294771902163147666267264576277209019325833549994587540590422299710940150129363788804125509984770047696097345598460683493778578891122636729221670076023200180963329302992246267523377831391793806245455732470559859492748572047828167443682610887932265705969368088072553142692967653750864335570385548111471330488199317677437388940002023988653412914599389006023215336099549915029923824778096329787891588018509676098585533549189943738981973495368221630217413716463946420743110622255304948817296826033428952100756277279624872998591326571937163704174161316804997949858980249938284936651314608388348953548720865951288322827960649638692850246247550068601137710851288151841966714895290857770604546043282514913488963499010681112850014362254164776715395685030390620595672162037882194582274503425755252661900032050954192549194961221357399262553339314368425342034566625068195248922631649448558101853222318102652379227400794923956501805880321793424953362694381523371614067656079670375028022251358556311813188629664155736142591031994137621290116317753163985181204913540710999599609466025544942162304074707892488016167031949830818048420515085365224245190019467884204573331744569920870266163570549317604641310780146070404368139600584212233392504997055027761664735536146611646621334933347734621630096827373168437931458833550928523977714997587987310779175168722667332456563308282128346824852096066380023816622653280372969344587955135308025201572748873036539831085567532392183056661641485720233491871428929580731920558324674803986903227365223361300249884216263178534229193322443254579992814669999394158697552965194815910179378959666185877999939989213282438543267390307912672204630427460652081012766745599429343420334627934641332420421391400598918416751207168276174273022813209721813466673973472712197263250202476392540741671511633998659130516410061828900954447543844512171043317105845176849252440383540897328553375686465188083493511596584727273586436573556249488993514920650818526338530884151768676075029684940976513526176863143214327835413015909359446325311468063794304716594180038439934480183291448869685472901773061187723938744918112114872493237366472241514396004078165450138034857246563298876932967301946931064314532802732456082542955749831004868792618332085515464766768453697541720391057989542411062995889022601620093904745571135392244928472454179580026000367064346128452774202273302598587186944623838983092798046632694964642316222957361067412538261171242783221173495804193103120042170043179795919841584905725638264331977600514124114256393994684290340058272901668985628405752204130300338879710135420942286679633797165026629839671795778913084679024439864163684484767172956537802645678331568255215856974809986202471972469210549153084477537063447211443362122144875539091815170078772992077050263972187419791393703127844579700251702694338591153957068115872419684210733827295566397788762560903501136164551130027348815645586322793815380598441470207404912108528795214668700216392541177086162614512559207901193266451466202039603090184856499448710933883786242468778254173233110595729639252996069673050476275730787234696207862296115219254877661823724162201046021817319524665433865435773286815883229789508424824793769432598709485177363203436979146687359081859819249944131586967768328028283499290001435648842631885686486629863052056994098516609721398753417271372095976317782946415196643374131137818892379691703378876893562102556683764615156231309677251250793810677897853297657414396007422427360744820572976201403842371873122498714025841992950696579064643224668924253596602915369494052812683964630965908492588649130800396297266073778853324236112694078406809862578969221326801591666881039890321677870726366648369587738732288842060006607978534274686893412915377961042639288277078055937561859699104086633679959069307614997277732873966435765258931267316147804200783508865362976987282045167161014376745049616692279280922317173276930791103395129600829637471743608420455069688998972791406906368379422422411110699448649263382907243119910319731048359679611264162512653512673551374368128654335725833262169716746717621657221228865508702244153236219890426201184079809971351678704901777346111217654445234544672841212908678125329543098421249003035951009881962395921339680760282181803828567368200597143189763277276175167774687625469169428418791940079042443912033484259172856994889207629553642626366168646519431135644934391368176588660270061214007188589098270591864444585089401820927138100616371361445897811503446599616047624886474260284132511205316476613106437973034089645147358190269531275455815100428184327338790943758461127376526128701152006479293652249789779968044658617495011524382894485333773242271419395643324666077312427648437197119833887797978563091521713398570175647838558852951842895330975596885524538167306965450460324929433850091276025103146489072327084909844304584686562315638731020536609547984027317958298466164140639097491362147525124179762785218689144474348352608441355347167721997607139484429635119189945767419696635005584520066286418366018787037560661139039723960787576431182312134515456299199364473252038616451421115250008940584856529056439318846799625798563763474171727739581180871064866089384350881353819051473179964456302005134158590144725887167559357543363547565618747874203969230153674800397775124035346370844975029899687409176532252554735433453204825069900106720618027002217634829352205204253884665976897062727552248833955456901471000156101721614592565203734225836265550742879915437092458013104305024128764174126460985811821902489996802134103933735104177658172000012099693144209845447088562130007122302098100028712724058550608617884393057589899116729085735142242661136167524222940509460816651542534283066479684662709349680777593607791995294307113120271036031664473860894910004919963556515469894807914305855065814272887052976649686500621495420129680981708609630772693937192040782068874521883870597981410464222684958922441464023404136303883153816490699270887143397273145666752147782973130121679339519996269959379849249463930846517497130919777465413386928022666035747058249424990416880463498853884490340767408228361390026815070924921638168432281482813173858075533134814102032804107221504151100962130111126616617968320097569615518179177065958989469078388920122385098534062318391351799984542133152705873495235962019718180560312009709978954311155958312446900255533009200701766314929013881639685126343092409030616383217189422539208007308673267138166577026005768758006751561146974712935841435317660192713837621773024391391042054227133581293533022843039645913511350996474049989047955478439918460371164178012669494984556340076180354761962433023499460059573747449209406380022093083888284162909660938759345832736815207919355564787544967184529735881876804889405018641567034063642280625852572726589144706457059744307060971587109847053659796553680677793702438085325207768566329272245156227514907864794581461155105092513290066008610664107128125055219278326668464882217222202256399879909687309638357474093584222009431257980286775439393131180422837643500679893455866815379978229657622952536104907888041490883179346258321492973943570034535965796312372636636747976674141190203390227744081140123757572116757469580947424782466948939906412647751380626147249184032472920989436314135807513015258319885385862050353660477205856645716496166523232951252088201496579178513244805887596045129426809799286444257678919319680240531311849173839623292576331434560887766927858450580664691574007667268209933873962359471589249955550458321593453849873684832320120801571818024422991734786594305869497553587744608389423798821977503883699737078100371779968515083547116973737476485531289260738885208614296109829766203380967085201970386769400522868831055082174837424890351664366399724485010051161785158040807105019970233623640908358407193300838481082459777968440003735428038305509962541711384195586586988771282563762976020857422485287298274964653209520980925359682778094536054646172075970421748534149936425065552071375227300998267529924788293080248255480845469635323705779040498907737024108702174682072589499525197753051182162717737378132048569554741348076457299791545546227495919521928874408552270182691725224912767683679820590953615248824161357854555419746804241626036571873024784954579408354426348445698290165271250291957672775998249473904122664696245491200136240110750190809516427875933591811921925477122351450861374439335731558263316932202353765880481680265259462372295567644166720609387656691135796466571799264739281605963652496549864446402257274953085888419414786966308093468085376964850094390996902978185425469021546904764253899499530902540898561832163650521738940497666522149814078094136201821108060196021013915378497630386469098682942793577881617618707365808025526555188892390432827157007681613567730651348737119064959446504719567169941432550708409663746337718074485773307315058926678910763131507176685442443691094838181929060137430467735207179428013351286273363911164241810278966286663196481920913895026732246051509785623853519444625248656072896276186131225954652983436959704784256844099092853288342312301773961218335903736240197485880867905991819364107578325001058165598392437556030664964566861095076010851938663675650367464731027796372597700175023417366998042164583342944338741748706121480300777845667937164657790575241246600268998686226937977042466118709247531201569597519093125590127094323299043476700576113145343712008706627009219153341305583898256937532556414565248841772058866931621243862844341244725529515674141188634970467460483122815150590859311307264923726020640367456029347095016588624477865375315988483760913564599266291352693115496874763912350921061684528550855950429649385932774170600763753921142632354605876587007177082027547359304145520099221475381673075898698794938093508218718796555458267644627138264527795553722691864682167457210084337247157181547714336826009354546490417313660551296870444116590179942121850106084043910276370559090076505600543724386562280727743700646193013261643676298122105645099171093333070998253438189265616998611557426767902537683417149456063850985657432964009746517045291483463016165163763729838867694864777529650099898545880830735053332701298655828338715108543579957722675660364117561722654611859066894222398352004051192737024094387323658281174240181646855595848306348280093607562706004628650905891562128154606280622177664809050961474883013155876793242280310882821528008730617523029077393563165170995378115507278898852822403579788778414154337086958043415689659488453209480644239035074881464977657296830489404217788422167781835443381484254660578304409223949037960230416844368333087715396968432743757343707524155683744533003861294344621837541931768009484497187581559120304294916392763646957355921131117099288337326428779120599691717285666167130430076277719206883376872754775261853638962732908683797527218315936856240503762047804208282569468383316381160027690634688443497596951893620803286903679488833114609840193338708023619886716541850907344755519545237677201324596165708136581955414879479161075729624187681029468643360017704408023210905476462763112375104186070754641642904300279723863866261064777745169364624250006769466212008504021209359269186869037323776861360351711485604716386618201266064390097844155612227598739864465415153678234674554947738177129790320210422362175283567081265356382798710136117615808929445893389336647797757970185349805636572405530864371282084567887998942042724107628075794325735188116784924986430732204577634825977712414988635738311718507006378912341187865009292944594521252772416596251145409008386809032031458538324864599164364901203061331526679977237064382340750665057695887286660256148347422284451387529873328717822246137594136557285276331044251044240715294075624129659650572563758307356836407439221141572288453667163282613420816134569310821181006041877396199016308673497305977888418657751046257412177752264150331524543630205254567643838420368679033302389518881284905976523477984689139563922320669279048012799254534262423780537719241052152830471059670028781793231563357695107225180472936115803573555653375719616568574098869236002818747987385329353298303855388212974922769793415896549821116953657727205385717277080617059388237107316575020965187513249304903124992864339801450116563398795330947278152738781388404852883196432907013206007990760118611774856987918564196884661938280834325629862883734004255943742405236975346106513324955048855685848905394490864637233759733336969978119735293527769107956608675390450991815898709404479479677883041369108179548746602359955621559671754611917245709294039664809399117691921270546677701662711443550473523292656733485098153141293815109812164091128159361484378245120563484123988036096943846080246043587507170486763697810286946243398935503327868593507197498696223475470144054468706376070762786600086263269978301066932924621589525684164128782536416248647805361629907985185322999443046147986845854990654305227731157495936130286110552567071753955196206338648397178703835655784617293486192921274670001924797420855120792822337463280595051321419706344014346165469069186607813224525858785112528224935217026522814107593714287779388956160938601016843909337345619201306474613074906083098346000892900787049628132696611866959939599665806255109609199536092815388196170742059225856686591295208664898966556487903011097666685565798258903655744022852946534475755110689428204863292936026478790514260981959895016047283379741015807939583483555943509349200735260889781095761624124753146352940231824766604767983857256942341461899781393090223243070841385838284303692649424877212000651432876587875860430284818285474444694070201120700608243032591406579764065257739914395156807950767354166116087846154841066283607632045055616904765285696526284582149729219823231315920754435404455597430379007255491462178912252091621118570664522015596530911667417751436982057983790319677982986336901832548750378320109586940674256824127218304693521766041002800318608865831666833467612733855164678041338280059169359764338519233459564062530173012422317231544576473496293559891117730517466096042445684884195335898477856859483178769673310181392532999564107879898728788643291202489855650534625999390042605358724491439559808442077003827001069259607297422899865468817351368111899911229506553192471364026923995251769986985182704695922294539961959718934102255758000899689452581579948731724179359958381144332666154718053293736393896122342442654744132808860701446863399761307715920975526332815987111634913295620512014271834367312880043491245945161285417701267019280324209917014814249634195500294957640487740368212543319031841817970988737822692918967942760065792092651834268790168676237522628902749148661562418713994659496227813211111231500415393954238681380137914274045951388110799546846198286610655576912572403820681321848105809868818995260429485131551495258917195014150666710091881088070539776473039915756551148610389527938967059146302565265503510829161624949277344013957880155490271666232121318072711982118742086728035703344209564272480212150940484400414030023831344578554478782577320985533122155823673152760149373666760845512467263837390156389978273225460250319113394474509806599819559630986777273016319277273431235023060010346624898883891820497569799664575675534124543144817375258987157122812199305051920066876684132321314966956602647998586947266090619590062231638097033805276779907448997472060936583320431589830037337352954799775114305909519666506596170406618251424511201228245446003528138743265486140242836998539910295284107138092905847915981677250507108590456961700718501980284893954699476742869181274361034774062093110476721378755694824076167259472879541856184747178572374990693515551266172841167424216973991095111028763002264337800219672028384201102036578944508596974956907160019825299565547411856058060248438903732780778418871164855300180824290240521036759600069977995400965011268904640222874860410191292896730534640710524217827801066256890771687348059400308603752238050438939260332159130393399425394489686738101157773353471115355017215705117285719596642331864120219789232865888028033343657717110390129092567047618029262854484143706733358938992554544302182150028353980421177036224127964605897987736663403406856753723075539741263475108333668180182619881673205713742937661363947918154985103750577337229902180653468938231860545402417578533198968822019648398739628866697800073170538466609573615676476485377696353523256148981520032301012431733916521321600010531629243411106824616800757983070848897553357103837614276558882411085845178682922002796115863944849030869712970882765299118197091541724177044431027440624751934830015548282983338656355174919955804298473952979935970012784023163781047392692265292934930170371877910405279794735911448461909636465816272395123738390890457835400181110735566867580835892156063820032017836542973695759863150504339019050039213496922581397825481157886115684276061112808075663800086489061052979968908068890536464150393536989508519609401104475502988301163006784928745502223143170281109661953890296082978529328913566713307514494866161999531128009578012472463417455011705583344649568092544790743132343043664893035159955235619682383134937601595699535632280344080569397622648470697363971056940441604973058591532025842243156980079521362789286953099840305069277825196813368174342319655825018823649864289242853163121959157191756673387256988219750407203740437620388343076768253663737853288878221762954335239478425233126653140337068000291522517304814803884969714592138285268971792210863550024642456694721820851765773372737020882707685537392523765997256983761787612738368010370594616754457269895941852443295670883899336527165452877784009295375414915718431209525787981344889432579229699822943674209118939265474438499765769771426578180326935811823652695009333148033983726938955698462784921160478052557780268694803721940949384622994818474504184425909070291578448223033547530481761422517626737812857732253137245522848750412506790370002684328568764400133181471706863540580486340946208899041240852487016860539040383172469161430468446759697356838036130132136834020411878320946441923746705436456060359217925691333706214678361397632050060964028385288875473524154965585282022203174956762937898532580153189228898028991483042654109951679779719734946649693270535434022828998201197838007453071989085691470855173971491989167034588536939848874006769467187808778596602795141812300946940769747313769868840609480000687240071627723318590857567446054643128054317091537663891494081850210440014163746070931432042192361733592502373072496104676103174391562344269607812639818102591811903608391848122043375885352573502424754019588978043755235473656249970156072542429714363923559283111459359913690038375942294370448217161865174520096379810606857176723989798074433745682095514595646444260950122176030753294203190402310828448033670411393189353684555744904567144150223146088864853362590166315833536000977976841433888882833223911675057640509366211314986053485653787625820081125221971737994353736825053202302883636420708109076551151808619937526126406712764407331546569494936447112561684442694920795123125475925021076021957937947604969920204342680583598728212588372956555565637141195077245135679049896648713743679751099658890268704402800818619526470392283056957826596739916099088683178440191488215474889342667951839578131339954953787655001922556835413217651212629495689411069810425356923306974928042032791184237865607995595920646953669234213974828115038761361187245397705086766877924931714320766236080085724298994464872496622589623060261356780633334402055796934416017956975297541483207516096072156235293626713144311048048038152970046674578736574561547176282901982627995962038384890750771565199967914875061514245627725605149223145268089795657916986327071769066774097700577039174157159003081602674259790655483045676090893489646384096981856994243013512702354910025600781429389795749580780392853399551065984179672848465028128884752488848155316182378948211140026047358520475319730557257409482606504748488021083760277204168684798144972028587973581863520740807956902491965235746618236753501199790906949694944334599790504260597108966219625941749130489555829100353114642976457850818448392093182335436662401044136186346715115544969525270367621142326365705810996129941437116981560753114971085382919481460803645551158651841047995652332059320486327465459294683225528232447488160131836336096596860265057889442320431591373871289649710534941139014448566568556435688424833926795728163016870043086493741199479317430750772622373939466381407564250906404182177973037208705767552128445010980091192036205128761899181508157290913003679885788594123368597874610562070037099853906712652356368394941789074771490701449618919516420960911282618992307313446146184241158302100211578442555604062232755884769544914581038882077514955711206482422573351593324846865449953558179549065080491691953685302515295929620860338784731415448107476203438402344698887189016960645367467846211274963646798711974438544286669688058325206518905688273359939629506026029840069470308658203631704456870736873110770488619735489787037201545130089100370402602652690455359766690749180095887605607833864128931143749291996675036725490890061596004650693111170945006851878480935985171318560937042665895257134215452142619308356122775263259847548197293613996164859855205129440706221031945876090850061223497873929533972876637640443958777870805485928414808748623826287917344803916727691846739021104285846253687010785749865189396109490055120519596678823426323056380160877226590301630076765071014024042137797266381312807656780206944735903028815544107475676645524079371077408468194234946461826304176166092964669013446047065091792313021125407163153564147508728772521735962040140976181383530677833770012593867696716350005185038270578971452995235865468241211840839713234327057585460567771911040517793683581184489459732695870086031263679883105580107884682057986864505582198626002119729186127260305902518117390768095032452626966560467229464679192370109317593345040389621740238460845910404439405376547932027861569447262331789704143843219658334624736342206607994628299438794110079071768080520421709060698701419729775005612219633478335219655892596303745061898778944456294485091699080754787334638404235093679331987896811328679715178783685637173098533709705188399882525486213313647533445839612667726525940642768316288794320338292767140913869146775794854382695969942179967326755970664848052936804444771869880521602403105555917986469512087749464229862602457004919499773420875515216500312185901091255543416784444552603976364092007964469392841719415028653487539659532721802182393604523344852505109200551973027914381798480639244888943382198446638361569338620393319695277927892620824368777882130195079546115109500821637337459193216956370261159270294615254404511628134680426740530377071969508996145487568199719972457496118079474378581598236846707003239099943392295791100286692300400267307528799153980159700016314576572196420119456945913124650080327409353919225236275401019826538331514127209921689006392337732981653469224122027128521457981269117251679581033025581682506001482571703701183142159403911716663169404382920091302211354219068033295830788980060700847362560238719602486900380733795331518929012714229806181965526897745371818310132573852690811349667328529992081866184796152958834656494921510974131251005722118902412817869964814085022297012951861472585430750071694864754888471231232963457946423496511452573896992716955819009129801747739636037251354510531507271119571245946650011326555218648733517405761658984024217810890851164091992177480620446346270072403105743799978261681976243434258025308177523967467220047451194805782416219978794602871507212140665573674113220647989503393783189958366382069312252109590847740410786800182693574047645881332170316579980233519503204813969257982602197193362242941031965311080531604551085222195534041091406134139447253444990241383389802325203928737348230285538878043673109239861297205716739982008568118877649935970416854667460041709809660873668460934322456978284192317082704968572020164247655624990117788375405337734642001088583475986200938794893114593843798420092558629184514266400018079835243778740253954467925387017230478166377197432600255204108356380294387858917653988910890044411915915784081710035635695560661540216216301441319296930743871519813659724265490577873893671235230151801106692459843969159539703948100121093140600175659699110258742452227518590891688319859818518827216833831721591842047461813497686090548753465747109415591533366102031775085372380581803584396295558460999738876272622228773778380958132768187654615975411374934357005238583085635606608381833396622383530001055885795571739530199801759156897644954089415382320078189612150163385120359339078235635594257942119108257018698033727638937857665455435974388376954698179548171319153677803075027080455374071640419320078338292761694586343061221553035169659342645354658185984951828204859288407624839844506948198015682588859844292256507366028678979404134828563551382176644340137762527268084487340455875145339680740631451386539163205714674131025236565801946832340087980521433440007819998538932528962971389426895188444991273408556975958268438553229641673715286656818977219610813886424900396664310275535783640002019826337601210360296376881336099607085946970394317321026888600920542188476790713831249335268254053765825195862134051648024747754993679012427968372372271860718454917399515190677982019069845781577357470182516191349539253544393205575216775975388050132941158318610553048928413758030055468106270975499727583466077555286975420211328485692513700816821183792394275305083296836879867585322908466405563210785530008534943378331185064595229112198343592814188292990893210872333674435500800605391950671158407419529510937343705879970718820729998445610055111669996224786290569122455001699328518155419126088336738341062432998839180766038870949793517843145542055283107017781663386216869525996455432069917275883233578659358031939593646019677078136477028533080089267236598701859233185389832395339279530641475205158477056600907277774066796780186435701776762259767238528948358212721977270494831531429077351662424804540745344111667264841327580037715775569016354277490894835735279606154841053898496917213117457701986163801265022540071048676945317333230439088799588290305771696558782557846737878507180653062420471039756313314188995238421934961307264698675195348706824726608152128687068393258150187749324055493636643720783859684940994915053211081199747466121920468670083642511161925776262865149297913777818188212153217336837441103784492171718749533772426801963855626856316532575653056595725764521993748754244323380178144630115455570655401963134288358018182072596943148441231088694199672978953246900525159492570293999234964311872996492353123419541452109846612210885254371832245817607059708841816558415767971080801556361658978390550866002274912792653882487918350225931433427600467429910003524636905845925240073372392649380582634241283294726228262714265970700642055477787917924895166826855797397074643027078781056414533732007666730008856319326268394086210213653037557807700248208036018541976484677660726703743623656466261891434064117449685399913926767190460270980711493243404897693075523191029833780590816164910203728187750241317689204581151121731621193885875021903698666028022347941069186300333267561131107558979044588298336837542152794331697136535627336570400038503941740460792837437386220664421525023607912710391936577556778418755884674702525214685789146570462998459029649336239559387666037025477660647413153053193722516549078402944236326802253780340481369778798422041659229755823081455914044028706432934740344838662271185949746134271290706505631328529372886676516087260020326917283244206254112585065449865661402954126335428978673832744105805830362761981478609919155553787945862167466823146412419991388293230640029328092618668065606063555954025527725465349158878578102373508615310403164846843715211166635465730499720448529383498912800325199115209733243824665286518443445863057573846560601915883674501942525334228534751818673627776495917840916239815129994081893889366657524529986341689616930303439909420585318518647183004435276747210470967865105937112022796895145595137230117206659676976309105080525363810597754230796065954475919384096226569693882830073599526756962982959175300307573459164403439293927220151737426143296514371516965730151366402207530698376228132157247354095579274491872081838243371923068387531977806363247469437458865102687123277747232995371154190791464076231846345384050219496491605790561621716224480566223654399817497333291433812089776522449718470445345056923375776583146379463115777788331207805827501689989794805183038832176157318922828353655852505839317065735414196090285509483669895738539294978702677868832578131020718520605848407643645282318926159151606943073148042517731994643541644644336418502419427664695779189955867470514523513465909674268790989848277529207006308352631868184450633097563653519084777027164601920870981362287893461380046749385962147231217992079580160175276213237179580471671287608540215433772137860820533134100193882369937886420776708887464733471311924581920991565906147175941071403377084263883295487315716185978690723964132563356416475050805433779233856342615068213706832945629919584964313776867648040393232406392786130085718120460756754362272029956552947647177491819092318376689326005366406912728036562339012643389881259522397114294723038852907148865160259519887718019935899268079575718405721059538475178259525404359322836564436888594936410490847725053589316837246528200263877766508980844291568548013666629750936544225572586296502992138026386960078968962601455788764585976675151585118521453218880153634888090811274995053638731229195556855228829610266090879127966730892568691000123914801864207298798174787215455238462087253221420712891045272517705547498305565904659863890247301401091498594702064312221554583026076034698344456016892541444428669793888885763160954436129227514051156608772401612440072260642201254402201464502829161714000738660194945116863127557559633036570251112531986171358831772478751474080394637966837157349308268405113466524122935425908569668967644688545416071416524598125606524644366224128363456565505290827490390374002729109423365996696957581837500095102387532977898398518371750650370369269596690403152729507423207844638037085665563612823666878981048517394106481479887533943345759011976931056962445718945597266281798323828040130602209459654055494549934593737679282444408530233945992906156699567632729468211961322401276476586331782161552145867780869607914519619682152060300705685093072463249516554251097879611861818145477103411792563185165197332060101222506035584047439422096963082120220805690051487442160355693901798474871156502108117658141758458870621816981950416390399561340712604669725181774867210406480364453271210519172745565573886778899986686102696750770557772085891302217812816436568909975743161965767135298785995439670937188498683207171319921244902015258171422131328319532304861967504417582083870403405141307222095514857777634003045245860773942409817026820345402849699122173018488598365228438299098764525293799832047002114146437864218133811015630333989628405258404470591054302929577943299745881078116967052466445196452914824871216255980875379641204936569522066529415757515814455065082401580664193968255095868131727732467849852480379861411318049531961058724268977841804187212936598784489670882311508691564034916571606379497970274136831153398998497034496694659678370825411060027990988871101794982970529851196570023761528524024414046036632160785650504386573324313094031693950295913669452548010302743973407722128839865785142246236955985715208281598853684122954158859917009500664527752326026290963224421935446964570281358329287713397972086066009357075677553083134116475581142537959053652012534116623197040376278341266792939365951016548457739475604826378137635108956220014487224461013865857190062162842116033201041725551621547553956062604569084664550485844334934084382576655476575024948379723668157469844167487896224198659443850217455235286078252836335501338119455814897376438174513402175381664729640072890499375898696558790902222683949741031198405243847777006760841345910554659145165199603943343947548222644439409748375003862338009680298976795575175487826467876854283620510922568810167092927942289845088433402926518851100961170340566403434445495680804197782050309479884515869419868326037329656102778611230922988379001433688005896027612885684752462310929771390520405903053834696678515008519816575554690401378988886734045363953304086391921589089168025770417225053051611408671329863958294841734365690159107476181696567941846829693642372638106290863823280547199256230377241131286803792878766810991758476641257136734500850133123318157964919939672583810012704505592433668078419106041369546661080171324049993983950644660665252401706034655309980506902711547563727531182542240931459645234975745682251148107853380544240594334060448745494317675293829501235860930066249774153290694091660844870486154370834132804679527160362340081720342968165650553372255876917843837751404970564353471059389648508538937945594398384859028733014085665879742787306755320544560179972504112282784300859344451500265242748673766645345996770311605398129703154152232993924891531109525861760831112914098506745261499162939015612336394977064131415674731000927879106904522616796433364425779414924092474655919709897456191515142299048810487839738940103307896704416813752047444542799872130390139885396388511746228129963718195838072103441254407045749033760829113350714906355986692836563011893050269065304190800087588355460225409304854955942616154927451902820554033288960905624871352714714598984009976991837894417731390146388894611556981595696562040787603682947260114907820533891328798989191918790316589788315127923894304100452096888476359752950044870029055638756516224501204076582420744554575910528895549528130017400870973000272598547459494211404880606186538109064879123754397637399254249907665523441607535021422287466468749999469771841426581501167561090165445768613292910278408521892380311630196929006112467240146602081268659681803208368076182812968559330860222774151967521881921554058128393035742169597809730616502119681656391120444282887871203734118340402550073869176038001808357657423194625601949527285195666212269318369049667840477042923435710209392282048858063960306001482148121998373104101741490744912847928369271675500918821850256268362909667106869775211427159365467004933216412761117156117975438083486055790973714015562713267597770236911495548390148887704954302964144487155775269940450864378069535990295368100982065966497639875398753311901037532869058689090704070575948042453864032852597125383096113634807559263733148746595312723663220213254843140856968810960194814470124271384547911397800349870689378902931919565410743246718024145412742406247236686220770187422247821067887319172936785170231974534902324017391091678501064524498976619997259751215144176850653948948248254646312361950750311375923558949140005751253451689791576246883578032127726573990082913825010127270936484153421775085025551114505412726499504792000237358618323331736574730300381281464547472871945941803769620411711722669403158011189919094280698079879948422250348180537036334673670255562774837974461415888385894469521919272597096543479743562141563877770525711532319991981737071432328054894386407074493779972146619825935895603171396268103421031736339387723434091668391965816691520769449210756967846976035010978763393159624687567829790152436056435306058905662293546163284782320437005738942159650350181900352832201854176727757782106593061652476457736897223365871989112237800153700732480226625622844645795180552838452495815022015026196108259901028641662396212956781904741460685678672487207365630705206893621240593316938658485012159301089383420872691561641598253692950839561803915576214640391255922527711506395465534033295357114860333668184184235850481739685572153037096700222582499963106305101736340195341380733451326657285451571289041372777723577706490606278357438645129597141127537857971481520109882939662759344073410205382952994718482631000862008245097522288245091607585672591818996319347900721286660530678738606053306526717355049105237072164815007488494315220377001021626157459894381226268633906252120984647854034951310488140778587794405525628181750546162573443970619435459325534865296397868879887451261821774710156308675461713999797829069088755007670548603123527269675328882797225401142518524642901104122901675696800236326273518182266632472368503308721139599216629027933061350457510124432859355204038861958346989741334145481885416556291276221298584891338218634791443523136049230022998374423678707486401284545279154496827110592716910001705641688713227448527999223284041715311169064427791442229004209020439640330708994782197083276242911970829099760428910524097319264332043651947941892393091765719858849760655627957949944741159482064858159887103948951430187788751411594933520279342586912958689151896446325232555971284908711794136984153677106680376643400093479173171168620968999616583671440885225591544798751289091742657725116097021533676802541375377203939824015814843121741639154342973824380265771640248828060892705234511936115283112520185380371433420874941330095634156511800192871010730907487182512219477460817940564443546476009032156175121892997341706207789912268720523531855979779634084889142315223980584364431656536324871785089779970252183337535907287729126377250944269058875630266487523315164562369142198862490586820839189022550745152446919928787218193857495615796223907891983329520289454334577470715668881013635556591269507163573280403613279501668523340881010450266200430417455549131386596413465177480325103739642015719384588358676135689563646004928430707539947136381696526475966842282872751298841089363626128642929858688956674917037095939673950705864205019345182683726481986502101115932269281508094298061156859276194053168916462962329304407723580671692963495112853545877277772051086601245690794977533555503239700492554088704424128333574254679945077483579697460557989591197559158216539051864708805063361377065300742444126530227715840103729325258056228184054508004898893384337226871802409063489502521377851041293659437845585451949169332073871630821801144609815315774750910794625264137886315779178990469879262658426120708958654370463798543781449740162859698331611000388415474786185802629569423616172850421086148909061446777353459576571950142123223869254142822106772881877177924162988586615814655478035196671506980895296171062931336168460588528909873096306843791896238753562776198682357902514448098151959341011743807484390835744980737513001578320808658356864533299410013252175150150948380335121663318758722768945637995708622376187179846983341699616636946290939969027703916650016618730013053459986895581789603222728660385797656861271257956763291008096907232424973903130031791095025430478655766919304084235700224570897440831967129835210202463063766946680129208472114841313595626064971619728944140836503586797472354141985385904810391871040321896396215006685409814064386681722827952623519772523721923513548902904736421020543823858493289555487891955136952408450984601463666705230068757766101148663626901131528502421919352192351808216127617749485106124564261958143823999215433823763638768914011340383933036080000664417406892235340220493023418928466507985736890340501615822979166227014794034050064373728521806022701967239353762169766235473117361152766148634523854162742274548957496412173017156104552401809410731247201603377828114820071686515726579113574129970296909939748519807203078492435845758091369729194143951662692645708624300267720020658840522351207834270372476801723320281981416747236689100208273471415713860368178911820065245410447327008826695420985962232805911237552822027610653784232412051689460730376256883336534620956819739378171112691315267880517712388224117100383231609046357142962180372338519672200342207405884857366944247821726189965053738723216744237144999602502086309689006091469136088978753480701754751722057083561027925925478348829063860784098896764891393922674592860341807476384859692289382142642754523110134079967960692410925064588503118754393769725262139403536785587193360034287925893980861654894091935695527490324230335203258208797528122591678698214099510292172382394671415064286998850786417252121420559219593764089365588015858800193651029121154850441286774243208623608059003828152043565182865650212292701889565269345806064089293136242009554969018505626659084059877850511720228926211341044023745745799180770085508164556000202922384072454318736998054125963678307651777131405533171522304723840437782364970002199819824539483816643905857260519213761927036918059857661165107254258459320605857037458932246769278550672537023730483166155580990186191697235043911843510446290528239596617172322388138670550220833888576552716061738915730628791887080998063251869532836932892689817853053576378063911628755464329728073847702694276442326811653320511811263958838469999587537443320661649612898786773191928413661323498683311070855660274988995249452525112245492881035033845382897763530232144000005258452472927036953501795905733783475990277495537173479027738170228868095635316610416587494603998035855409903289919011135487406742769745479163135766053757032676936377334887966950115064470309039050352784636689055171505475806803201539701314299344501060747514863389368633555672893639918455965398085552750279487027727592706554915943685778501286342940187226921841567380491114881985068699546427088105452347257338761593950540881656551689547181130983187156713960753818859343776556542401826631516703929340409903732215394578876453970911533383546504843995868311156245605366335618593683336731884108057430253098338679567845472529363605202366724451049239906433939432142752255044567585550118715430462769244468958203702756720584989608889634112306788606852010337423999062301522478609253970164280169579868895573154419942149261211121721350697670801580091789621731083302756494944465654924482095905687374803810862758845653303154323408312191337695609482966853075249491981673039016538111717977960928089712593744197019266605789620588719331770118179313507381393153912440227382922604635509991349666160865875274184164228634860251387686158596500430143183100581260693509892202265699938328837418047649013734605738529631014993629775858449062800456151229917150406565978514985612135750547453079135702322945607590750929008138131746036071890794306105563840527237942564893119138798637186472948718798415895143504001905126422629812666877484537587212235150502445915379666355455293221630840172193821407864844607823995155320961272154457006982712849903061436514545684581962149620780485742165184503132552076435780352798015594187477305125319953590402416307715525105621627163969390605937349407720459892758310070831792712993020508507843537295800756374127091204133572322041954655737185491505654714061290486107969501394176816034649091625517165991545027342488273984796928142890306119524811896465625763981033842412777631740572333437496802294858504369672752934880680239653660445054387740626481946078498459253645972431364082209466535864924849916678635406196564057290138691979999785122491271861079869049546693246266707028645926838593922052658536031867790873946240872414114963980289898232111264117751168772673919936415285017465627402407983063389590743530404949881823571628582931218178768920561865828667353907805726785459487127422091322992276988141817545157622825862487422154678683528881445161114275002871076071348349131332314497209791743765735867882883596139914118292357520456078688386381479773690515110578828590061334224305851227250506017050314435272897166856552389505302620728966890495849529798102058169936736762021032091260516349965452775367041215330949860637869036729161666578709967232604195662934296279070224290735254569643834999626264800225796585919827992462539390295948776356775513162742676963353160535174508920787069804967272309859778411697836870253620218955332581566425169773090127582247714727797729717067777613008561193983578732774215048544949972963276020239067825147156090645639027291776184866176605966866617125167232115932315214287654287345193134878684185659074237284755669927378889567129377466158766451621763190266029562062096365820280804573802802874236832282482718946655472083795329841336955681817527979000352180750446371689149005070730464428153286245016560685942575721876388362788194233993840336607740395508967451270654155913443423883095921718478667973551174273487665821762553570255339471968501233213347109183749587569337000214091591802733638563338500603215175123722509580671077178426829356540231488514354454454353251035587995706832508556210896641572954690366863540398956213476477136546299212576276718705253383051861326169547254290158760954494773553360835189200184037910217924009900949312984393803087958777528653119779532533424325648778332611236198260925826205694072913500911523632235697934151857990911510210825353198148420123590820942106782553101603432977707588850600390881382465024608552364000147096325374250651825678317054450027154967900139353470526033016313535893467453816909338929231405580939389926755294811853997012833961569363381985426118647300138072804323516732539694124245353667318521704014841593542897877338380979075340300062266463916789821760720796786938553965372068423908875863480395696781728011498124772353281512941973521843844865759625743067150097119214208479111995273967103106977434913281077073951268016079376902916019008187268678453091904165773037064987197996036821984515955034139766249367795754662091899570666852086095626424946201565053236043266668444004392280343691568153972284455083204077292412693744439871246655702043514662512992944631232568254870963265467354458783235365395112048744563344093568080037682386814540437191513003853781973604983849236214659397640613228565917277256429688504369031344304838819874907868433581065970796986686148164648806468692862837996849064793061467938720036800682624579685395236445521979537880529060329508648726986382375131321040987374088430625207777952509332027366478767689207288434372075474887664130074321806946981955787039407001616645163466927837740931978987399392742402572526799126675210741307256396643699925510617509326775378619572110817620308747035703160043427835626595772193083885813146628369129944594736238820818331415917706037275027252478553470714050521335155996435199935817738874372947704149829415924508915174446190541986150271524983986543362570313647717840632671649119496682682824234360674131137080305444598449814107861747219948892098630603853446520276389884427392510004606087945897696047482239097916690290372359788790363443065488392243260175999591088167618423491825489255775994472355592469967299585100864747494955265918357873770486587030541189219287964661208296922481749353053862174738334381160549236642364428110349842202449427781608842487540478190084150021537172838501310746030281363326728958868370817152689868688517689907090234647085402744750256451358292150581449612050318089066812123322134955585033027458947852023205076397727955372267824095101108288431229983956471908892060744143041933021685638403608292013201319114199691844433110780306887030117882226902452964425244647209862992732284275762699266880601942277551415975669406003734336332995551153357644465182745786506685249924577678095099137758052927321022234966411571475801455711761334697147747994420181583328808498029185555715710270731730736503812866024613703155987404255150324651143937753588551791986189704216455132150428593206024915271582318563763399803012197838590464677826836469072524357999393369169873430593854254647338992407967839147992619897828653678883653623078403467880242033287168068628965492415923180812106405223535542277804977390698875172910665242274048481912108514393615905505975948105948449173001912695372704381792196958082929053056295654056262649552904642429290530633048955895708604169291211928035024944011932253194983515138262192526335898283011685278178583350431899808531934186028768884002206199413313939472083220997562751120714370962663602353814262738670609032628766951815734249163598260060941957599383074437473526366053012642624244335430929416189527606858119651907803351584103996836717287374781520326844494882036940029659373897689978838594730095503878927602765452272946237768712932721646263850195533105771025664854379638711013687859597270002216059224775608406507342837583635145727378648183321083255868505095627237114926460855581401444682909697137789797717426668886069015804155651301318906925882747419971585903783023004250515475971905447079361038168937971370531495918153967133155861103543961701876306873624081408970850222497437443528012858408383720724667880291776897087436316158981677493201371478637968403120483292750889694618210707238744048845821984614816382098256417927493132171320706718037230110150799002510190427025095752248387173418242126546144586927876196301067029404920604686142984725808523274571709450943957489599851629304848247604352750612413697097881274754879410907007340354554933671956741336813291619404547617001511956890405542077962932010794850122879035710686749296898932864979709588534744390680048921035671035553858539963866939749742025738057210013627626540064236761903884870323728898057598667929593510163621582570518232666224125373872240183383579381747379113596037776219431140646366253211218629556430935687695622052685290661395003950239246304544068800120802645043354710933321826438183649113439314788095929297509644709407245223796457184768652761589851926696697311642731052836524648283728452434384401064563666905821323178080233253536175791338418647376661652188818937056642605046488107727939214847240829812742966582226932284912218654186380698891543705301229353498602472407857792951783357655029880428625441110470964328983543573481243192046189891004857534302249124958812332506469268203621842322842577476698049698825151606155619424003793851001381106140061833497651399713499739020270493033590093800368018904756190043858608250747960483444366259035578811842450747690317696272709898771891454872678039119075374422904331109814905033126317662716939233786156378819550571229278931480203242816857332066573910926968431763662951880280357713801069517251433958529022169031119850978704374481030307961955684413123428486659676934043803813461423110505287756489669965523794045656406685563131534766846147246914762975596669687219308394249443693433367378566477395408455734408277278362584995876841457297651396868061023126323423611798318320634792182144051162520148547690637346524840622347492445571705780193573729333006555209271706968072558645209850611711084017878010720734935825324734039888190802084106158492290963222010007896957068114221146171831744883474770870986446596842255797973329066784434551076648759697896319117767993103229458760386736405998459684384492025088230781649996842718621517424982801771870212811439850940220477854705001077387409963461903776821288897767770175360115154468816684581534433165567686305050790783415704521860040415751944421802903093604480458051091761593875734826018129688533234212437810807435036517809003685380930995880359114290525391501529404609423936301564542342265978956376830149745478539603965238170392930220890255166278402963912305731248226295414615549457877466672824190250283295689319693876872523319043820747307313827211049433005037555698873109819780768656483459521928232632251310734070363985955978111416485925733930494204923023297663434119363614763674897035878133096287268494161708652864764269433023586515021986729473771912621948112494860024383398315610186320496436352304847436492691239491250333324044132018946280390179636005077468579517918431519380267950116814707269129405991031085830201719042645553435004232735317235053544239497246241065743117435723323641386086499917645225780442349664510465255508477215252088249257517425197362935780725418051396283764069622739554581342995152358113080463754995170208444646741975155706164875243563323239389578367136044181046221701973968703257503992191196798289429804425411900327768374773056040820725271006008951630308444827275113939326955062776088529199688528726743561055345309632222766878465260092794371583314200433343481433645124742844608823301203289913160785385109784178378126001233372195822273444536548563312505239703648793825856383191648646005709997586542845207740558961625177167552354063127458029001866987287920681036248115085112521341702688862710900432993553937694737248986266381851996792665471531412779596860779005039149639424330748565050446214063030225884434917683997994119792843843829305502213969398303466209590703331317745552573116963559381346625415710649857697825804063778629029216765054405050402092045121362394749805805194534805275088215012780697605977375429218278668301027428190945838694479924215985295897519867869608663556956718713458106920900894623544631772821038034403051371108083299701641801899859642754091558782577570729322710723371669594853775883541405955120482087572875303541488755785024693949718981423592603485540644932325328269870111115250050254415314113877002164939520900457795726388602714951312218547399224004349266547854862494443561936834398526512068858880174801270825062058149837888634183611817382846168247626760689292414617514969830077564369113913084620769849447936032812031705373634583602767201649857266959244314032606394376886403947499590088150972767554746391253329530664512835444141367102236962790374661874886369823759148238648324533195399873901182558152008076800215518533275190260538980826518189516630365503368343730175546678357603230119432993764958847261354566619218225880169598834010109548787657658948679648217277433611163614513134383651080382129065815986855940365161233443678930939168755321191012612429346498355246431454170886196191127760420006049288284440017290834420813279757704459605788097969434240124782205451030527719068098947863286985131496239630585358461264852034406898568700525904728257442827817963914919933234151308939597205824419371773314196162767667012923328860342568418858376418575982575721505777816389831425247498760997859294301285031764994858899134858075783356210367128391516622467584931572862367994587167939277986296448629732454469813662804294853940860173995794809251012323044386847786837084955207801788057411500494465851523109321037507560802626559142669330914917921225695763886295149163282999951887801178243545597513503023309150896852470107447553868756974814878316793127665678346535834844465973530771536422004332905890835238932785742717715532736362947880964917222694657696302711844604331700180815066187720074827310757682907250465572872752556366695951554901170099084870760988141164570826482078748047690192602719261592932797158509658910914391279909633282227317146457335526149600406133984434163521888396595992730391863746267754055101452450612564972716430117899697935054590581206314447635614043834374227635022495283253222794442933595727433937824152636186339296260805118285670394292420105688785698812334837711344998586423313682804066854091960725664950091248036874260029391757407073434763600957075137730689311684574680039554489724154389356096958935581905153571815053188645595868037341197654905005884532456655811856354040115550674564410675953626328807591618712355913398034771089191034945236929012122557316157332385016633684511337808240337316351274030358794627039636639210800289222629107027942312360750955206888600459583673577620587472983043020924714566045378330916153350946444627862166729766164302417903739228020996076334903437574955207247142055843472266625835631086028067822682106032815127732548068080073963059698183148033354287785626600182867930243375275453093253799658901331462954204701244063659086835342374830995255850150592155470925782056626239015312037685090984549717947531481964087972784156697776043721109047917216660832280247775847405816899496222959613470438540861345277625979272100209585887501595375942916803080134562678773020352002058537793703476145688806030450229996540101863587602287366685206638445901403057829036304178194463557072066331422713636419043790764171791272660200866637188122523215045319566302038550100984959317897655853350915810840879710871468282068224149769999340250606417247694216986651278742319622050521743658107922736445740796239421182781753619009655765201854824844075092882703765667029137806352231230994363301584793936709150018785005025350677765040960942499726608211700799290090228884856642285593350408520424070682662814576094998504436295540180582852522985513618786472089438113292038551691219264180519653872688519759498025189646658467717652397601125194603104383804353128282114125092471481262060248294109511168459980412001413499098327922006408364118670412797651543701417844314314349638558663031269677327613877353989730509587100270675894752427238343125180391328701000517936526091981895263138518733614579907100998013843024301331934899054646713897983223880950195603078078351368035376176842526649273752865494355545716818913167486006129645840153384727744271190549967527853592619893979042599369860538128133499782280705962057090448057001449046157076558535872967017051762486985840549832616045217773751889074237355819601788444685848226553802008892251303947042014351820524674067953034569952067928886323183904713080616295851430735615164330539809552955820971865518790554172563994204489161428793341288304839679281753140117458463892587587146171057955538081404432536770746147764802430952887692421482539199830125432732081093660998131580635063678478521535990302528670352317779350788487643682136012160234541504934746466375023169349219405339243767011595916130162066177684955025160072425699935354197611998191805651663259637701775237631275283984274363146023294800447963937151783749491276903698984501935379938585966309737919555354117460106809968563299887570043942160449601878950974008927866277974082080571516379616698705735075156527218423631912121788544668857992976636092777767333799274296206077767314174295481109559796445826451525156108793187612238587976230656578308789696824559829623066230977062605804775165790863310789191215255247076328737440554518238963293750455001693323778828899982578980613458298816792554996778147146828533138681807363223602380278021544112793613733457656690289472294174121191980853340794308621650987812106918717571629846617043107490765112994546214200938002885184192372798094256546984188521017652095231924255783460023433036885045258149580617226153750144517695299102366276349988150369702753928621984177048193469050174270577161399876177825168598791714074037142723564347985035640807315404680085284496053364676781451880824058831472654759999376619331696419049558039788184004820584394643843860628030841143886775924833504971041915039088524457695903545521603819854718233085727604549302335878838446322845132852911890972355070346772760652460967650162013492833757147850599802300974603804554897227293440036382003138245116653335107213635409602289247295439636325960798913058463329875025729154389637532243034763584487233101058673102464807074577445223450775382599667570406930989289470623382292543084902164886119169981702002192881805926469027088539668235771147051442299271840817167552427753207547842630909520611753250007228352923374585186946195655625047731010344980887019283241037455386328056772867990172949835627213880890801435682946201497193618743141689969938971822688375194112051415035720117212957488416873826444055429002022252491966314741160527191650848306503429710727442183622284942440972089654255130238130428936543627805917078186683400271562697350706335959028617485115449945578006594229559341912883419060673021690039085215599494107647003223274133320785843803178623776414561575443975561886325906841036504686834282911771289768201864962384771232197708421341727205260625138131158669774136466370372149882376137870192945139872975133098875619121116569520016631338504638697457583883056731625679995711416207624738474443210205337572617599329115032721362764740862782885784631055529826925543036192552841256103900031820333896088456344030987074535545222306508619817954420964059146036288436128043454233736204746968504396746120873528257611876973632765439939733589170547443619664580453343612631196880236983952019665119275450300158278643718497088487146814531825010187501711771431485839139235820700911636123200451014003332243994480829490905339115480249885747326440815594447209929498648451089261676867211058631373797076418501293756703982500210505727609510703766920247614084384762967858317683642031739342551410535319965159725285577630292741667734192943611412096818691529347616140519230034805737544060476981687654637491096679625401838406675868931848087007847410528912957243958226014579658039992167054315209973944450580846901942544506651587854378271726624776628952090289886092009304587800793292526681592428588188611405492469330986327780482110315317385963762561657201314988974792542862280645773838735508872501075021178614223212029211042002000647842873363390612086780675577093429448948936234408884560492751219547060528594301009291348521578383605919242711008513672278171381287496356161635408551397397028010194361014753239756843878500089904586654905977357247598289428533381561083875410062109953409847261862808553292346011709181071112870086356122810524410468811693540137620651491803588149470831626171531132855628011114008119763657194769768514964782544470494709934864296618381729767561695993353603531145704762918338483911365860128414017416705693752367062540919192221658193490920486531364705658590743805223965181672688008262904548184710000778930358949043485961656064516945228039215521712696535440373500415745416685676583377006700980955482307812901472502413610417803090380537304956417233432240899535249108648493041802532365560407675913107497933726624034799962068493950015329527628641430796932740729199008806186519551114093597229292248279556022583829718459625895411762621148937861338513203854265450557974508540284312972496824639000412449948226275197524098599189749235432558039462486937425023374317685338394043339521405422921350242990281934658048936923561585555274258593245050980092077136959164834559303973814155288014780258479454078305702174933358433626226329348305106258328975450334574447662281777680512275788810495833026248862545702966914918255895724073138980581128672872779089009324695221780838219332704895348848237331175353895707249414584349271955845499105860341257093318601878738545905356376636550982979503803133759097294525916665389258222634777208060060573726871664493823157467621563588443550436595443054005098142924856799459638419757287201195788193768948382183146175441632637596083466135112807151177648749765488123485157039425256920599154680459635970525577116080920061658340720393660132717957305209377880734344758273134647168272779135895903832403605572171690028037616516219531340749857427954391359453243555792742123818622322429343131097320869081401562019780212829760051161604851412265472984980444545522850467920030884019786551412760837477107538639484024909471099556542208188370207952139559847885644075905606872068879669526300996240552141262342276136589573778862901323287125750187777344070735185805417990951085222528216378193502890381965202576007208908221459112276465570251172625714947537700039651869345266865719209399174962239380047454564383922599939578914438637776131316823533787277364113877390145084295668376224250152005892173931402525418502999224719052563187585470917386993723173206427369551253349816125397273939786350964022191690502227226851294322402785691747416733359931066871542023498665204586447376587596754760245008548035755801517696861420768205264299918883101324565467256366184512613563692310149789195003324887861309196903231250327125718082926912308154300901307543379020750125925463981389349039025910265959011788562012707330922834909325463737676968227508404356716792322947858777313857632799725226692631458573582452295026188279652376960526669824110785783397781647473839747936149696553054562720080970836073530496601266213086294368543549724796016665525768373885470768482607430149433798085836950751543567883130640749417330378124389229396544546779797232932782207442146871434119707735762775460972060001546347123280086316136272136236458932856826017704179725455781692776241350276630765154801968281938776536705151290399288500199570822925082936871803408767905323871376510320745755688288537820593357961465908174808110549836184503292993070646328414559537479941535148143601690354412026681447826031499138538456389704275496015960671437749931670384971347110750480407376769427985971441292290434704630088162813317346476940300450565225084760406626474171480559558244857794152721583363145242515352984312799582498450858894645161098427474257973873346202278679707616093515742520059464279905446089655383600288315959353571922049442200329955907894754679353160843855737816232349887153301085026254019719583405609335734647304067730706269165469450820021319429567951054624952392503537152907189191206541181959457689623046172571008750017821541448790268216190136357396543795350018556494199483722350401203252738822647588475299360802156463868672599643551606459209287259860544170309737040117614895916196097220646067795553790920575906801231325741986336373592541527830397456060629654970542741870997288605539571997599596321836915362999784709232191964042836986618913283517837130916382943115038762105543035848564287957773861394002455213425285312288173215858736363487609768119102600331469932609161369541773563261316888381447496025983760613046282642071468847184295042158670880468877162667630325154074340543762554920523718971438441639294348433256020314477494025414700558447611948875552274912296744107364017432567040914217269251797331655536933553571468872434788676966700259933523004718955856298113638916229585088774682815068763045406290914660876689349934713016610679446406339110773445436887635225350294642180772231317187871845864815859978990482557762055831367652867830732325432419903403084944056613245156871091027495185345925480420444198144625034712051520794900009383504292680838673556267334496052855376377435053726040787189030598107497833477249316694482813881711702105148497875339791293725045689774844819548069221529609331678262655770370097862670238297672020564472765388774716146423209040774907412570477456829170450938222229136746727884697938765544960425770000173607526896542327230933134755622969513261368240311442562281784275412259952633310729819355321330089835800386376530065463741114194374311568898287729908390074851139653566050840495285298812120009765959224974115974067827983010330812631527666017767656511952147280051832007515841006818142503228740436956394311088379812978873160901323307372309378379460026483944970903850510816418194871373919785474199233782916522646130474916439975635224653342624557420298464375149938820100258648797096220731442908316909883191265708557751120894909929735215005936999142991816028815261709649827325846709001277153409101247392324234179231194814765072992420267767865770571791817096021787887845075369368126813825886338789692201449562946072359738508850749194298037853922603766369108253581094986214603105512222181836787179340744921492433968453857435848925807836206843569501359205743696985073016509944117203293441174741359049054895017355600897003452315311696544580007870788430822324150348118255771207933564405635744499163849017874264545286592417069815188947462178736947773188318839991318593147351036194331623672784628870514243070313366428967780974992833927642830287789198640629728968738353445875447283768253517792177329960097765616453939198633228945030180360753316313192082167512684533581429725344326341897348163902536422780650441809872765913847192612496692806411042907017787216421074930150224600884364314287554056493478457575798537164384890637321964578430396898722011306193998712499124402075211837114415803927674273528620547928993188579250792051815677304818529632955444408102778448346912030263466093871808448349943670417147977648677250939566571677688334706145715204524788295372722035780577526798361083329884476939996367752046149673690128676952891180179331581705320846165342606750735842159468213481929898521294735361208033031691427673507393471624483151167097935901592224795111477350215164254600167589361152833147505990943741247674285197006153717151767290325519943888827650804265268857772250059278054625436934384100054167550140890125052365543440976219296130343982571005740051402010706135609503075946718170222679399270075719771429824979981311460243747939659457755147972985494440059505259485427584894380892062972114006352026423967924995039053958704491765733701122090107168497003968393389032097903778659074104275373525772950964200659538767518879248772623120675076095906360102757177816364621862616150908273645808984738732233261904093463255540224157594142808698480781865946863139557741990022732476676494306137579408086337912508012574847188510478197717844213221961102661428995045571024512069542689802994711926538904747895820426292000801599232065200435504570329888517099823580481110674768656935459911604000511079259613991628695720475849861183940226179429853768194503665380316812301699275600198473421699921617155674790283562376326155793827235531724459511158192430099918770913132689646542541333513778577894428242753073638626881389646329687522106024585942957899936447531747616734171136659339046810646424014489696844929068212746947854260027917124937648713158679815769055730168056947813639221985184080149698572620513083023952881890744619682917452261293272916604332748344679633821246761053425080071727631287896820344947255614078460042952284477313290833986144367075780925888044403324564277330472590775891051885758317317918495039453218011392191835741030857997731337533398861031800862601730161337916090222168074786014290074796064190478694530093090084286982369455680276510107470805001667377535808432550216838138481239852496718755367425622488426259764233585607085081765543425703465378694664580171440330067980516625600145637033457569963485326806659276034885164373105605760878488640625031364041681965541116566477268014911330201388629242500522009413395562045747577474690018937960931934497381324503004283313718287000988594780478011660156083947680541041785146507019187443857401693703608913517206866199856978907403009829329453892426607624890432628617396962962494859767428109793742302460465223724379747791101165419342622884366532418858807305412753177894243802101533782075533008271798450499965377093944505732618017629822493801192502153972755859725162197690600807209256977791484458003472963415907287266104481922384209714785115280148823172463666456931281660562127344156632909772429149980864495225034392922444761137028869037882163145442150069154968248621866472800557978936590358896238914111836110009050433039146763684426196627199858659768670145157721793533763290230854733098117100828273283897569371255374647102982961763917456702331158057375312668076168911319536749552379185594310323908463131577650263555898923970809267086343624985458559985215485833716822787977323640481741812050471680257335153939421433512409600980793036294789385637399033273400318551076312342399493700866191048930423041120678483759899517137879177450410240690257784922279164197142279797815567960166124196274357846199850956674877983725153691445908451589260940027842141119036901621008056803723800234750865176814042559360115654763677602733516860548019607208511737186908151437172979153008542470966467228418756139142103840265268808551287360584768894485472892884549974847884934698462836425488482500807767934430660679376459006091615013894597619346221203445182074653244798237283387658481609839334209777741089177602053342961343932875935614888090808770685303863025891320993662807162195973273062688676001480381568587692559428729449060190496232485477289187398282614125627668881700447267810850793416861893729064632171003330021156307500077908530219716389261679919618423919029906915453940068040051569686563583575361533381000320383638397403370563911637619120242053608793995183010082246775868356524449491748311234256586986787263289204333137674129825409691725454050842798932978842510940657485708727557531006850564793777524688290454091305874765475660425106826863137010407511416673372341736160284337801692578677946979577851979883893229827580314964672683894857582060055744919541377822683359068909695540610217504486411123932770862165126539066405708084549169888773693959405630974879925889046888078063837488408304359522181496884828226909054241226626011146582354099588864624617594860991113601670433422490056956596834776187519342267776653430766613662605227391746742724150382432219837634326295813268091060747014691726974338469209816901055888928372505668271094015809564541719636249790747778000118608324861074557604465600605674706380611895569818102827099626623387958088591156536317458432606932118612381022760584103265155046165961206061288993919836016583869315150147481903352921220243028016869519202242973708379719949343057818547617959386080133185263403005224546698678831214630176862037324293895395410285114114312845824977692101351974648755999015916676067361106111041333178766425829567871809370760930754575020805761233728648467725290709764137373975854257324374439362235969720753462556737436727793494853491457565744665446942597705444530562791061047918908233494940897063353216679217480251366337642155862462962442074602306811746905259861079769623507686959283062117178211180474228677693810609195447126973385914284561211658373599020819102515348618976832353279383357095066465039946095157731550771443118397497431849029517638727435795210409855245335772335257169093081680173350910372299291149128228371831512358857103569910176985647861472857664469998386122686414194600112283148138662449337843862056645155701726272187484233543710267572340828076688215600197340654330734380492048138994482218584040588009652913844083553292036786593738995358698039232546963909052723873615475607563531705283671911341645885628535856625633376052817699782709881621309751279086066564673345944541425027447345625388509839038646707987827733529308482768651844753750570277278326710816401964688253597376315600318514176301363384464705459371572348936065948250212315080341550945834166988154468926817153005492519090556036833384346384613503400537277702020432154445052687953412918910295862392248547792241939075115060387597503936988113969482684652910219437421367883920674992257474198432613049425319929273075339378418703146117885464486862397138376214030978966200738900228220141709718344149678462036471964466888518173524043331098241375342350166389327159264488414154842417174467155572727371020711108668501610271219824407284452252267414475492905834011966166968472746504099665041891445251326668853238079387279542461826990875449868860036666916032667924646110927772514219282729127784910198952948744550795947383974188576904263040722446070342495608822486672954685746220646290400945464833065860728049750292695571462354053218148803447053217417073735637317145485517827553580038977153476830945409612733479850111085116630985548309623758948561609520541812319881212159551640326089628205950563165982023300885709046296713298428907263014078241642487458772584585354117422058751780581984122132317722026630263885992850420246932423753814245015897079476772820497875986757522434106360137654863082814439507393412769142828941014485542512489785232558988685048394219648292185126055056180891222486983572468864385663673914758542989663521412798567607887478583053542779381697297100602261222892767984128569726996756404731213068663178680881982672520271313489328826250628354180114443541667902278571779432484020210466547470666420218649675129589312879941682717398706012997872440318257185168591444638668715992908107276669955401309454311005493837779743905921874852561442632406566209134179661760751629193233768721658118233604813885134848532764471217048369224401251378325397150986755930552411273877910940226792163627441803888584535580533694812409139300691830734668502645969561561124718641928423586352633766979073734989390086172138871139716288032978367199780176388081451539752393304356135647390086729256394772635335068344436436904765339695093077861815346737026105883310872646257797144845321146161837579762810454034016782181990769168520123801941040399943648314959334861513673838834288128753945274935858582264135634137324076445915449946538295859554103995067714184583562705010125319024071667623514705772969876214111645256396859550937952815578109722152659718500408404319245590395957026805738042085389070541121427154251614509990736115155445644218777106470099484784569791040163361253009828918046877788184346740400842234819005826170773946250247247340405619095905261675656417728352096243779165246769083120020775648934954546015577325080340410783756296912018663705524098001201560810153673700314832035268987678143582480869143860579405596283828085822987674361973927989162981900065869597108314366270507093988518574193055517395433437989815889558490780899681209344266500796464218044908154515934370964621730703578958106307000990422217262755267773526835459998600381118024819258091444512281103890203829570124329088408238065414486391727291076732850552479549748307031292313113951651261783344789390957297395401414769509125736241754796221303608142363137017341835266179346359735189603380978796414272257556004165726216155288314039840211578455975421189445344363243546356278078111457709077371906078061076789940292165943867873861095696976698055711776346646841475180204517897490334609530781610753872078895587529366749448830260195908576372566495200447982302041501083819559838056670272024020106156644396803119550274422415533459630150034304155468385502938207201818411796903413697127973148131543643689729055039579922685549697629104924201891264936509581681712068920068423390662152516305223932689629964516134339568430314069546416145575915254741101349352561665086863838225587524829428593957811637697847786084917376524028677680626147262034492976524619581531592484298400114075357315212178421143939978273135547555618889917182886014598408572459154096805539578180974883220230375229455018864153660921524858541589325873564630475105445611034730786866942460977160869586165081081255736725701299091018261321571244827387660453970334461484229448887640485515673177705925608540254838359896315896911321346719896568668318304927951384448267364135012010210720434132383612193369375800760188078676234361491591950513758657903091005721403684876697394999584253177275983152017558130353189663868694369922530743448824239957768035652520552447652771129008148750284335980266586154837981850169186368356474938620046416460620253468078262610259042072012446042446745481317994272548629044987954983924109707241187096510469578653393087690183566976120352794708328513992689538948032976682996042435260780416130580108609392777514158996326279216842378189044443154181690478257643333458319377694959771929097791717016529515273439009345733281360242598408135815752044239428882091618637432653648855797766459695988638259361420935155606037483811554378645696501090123227081769280238427313529957735487306358161779332169983332874402910633351820736793837197545859848426396199885309028132680515970747387879391720993062380445261624535437013863129647210299195736906064833538857444421627011598761370873619189416991089496453941783655568144749720629377266202655363649629171033634299101117040775118044231343874159217014284920980696630007977172668271396955572871043531663853591444253036446856968016222384079269558594993906923130955502647908113163365490100714888472194870326727180909968220363463313143626299355772174874411193031286415401780280376277192776587602446707665611097131204483874592722560082715045697047380765593635360060452791403256450496745488065457649314675647686691593768054236979127471605688315409695180649094426908317362515283797326975988793410529827095481502302827336824795131424245707855180140444728042924213379052247311844232252041558081274428526837354798595294226326454412877528519783657250713819151976447984752353541117552030267311593539624284291900226474461592661927678849973760439063688650972390432200682330194582118646244277842165253875956827831770822946547222813340281955888524149834311839718240331561182581088586450630418875327975901825744721183952719920337295845151866240327204962049119242140915855519271124721709208040623208896986767383660787446908181496135508988404311859483041110013391531930695063812615391759949689242831878598204083098702166227953936088248851837574137919842744093596847450268148373877767780028569442820782546804635670682224041669780032271291360319821060918922043137230117128880289462375609406043263558754009851610090759850812544309669462970166462183792580807630526642925646106873216915362730381006749008838595465148018194308832827567550393593175253909923375845929226101896120815758365269108594280589832429867570487654579967681570469379313700238155292173932067943929369172137234976467465740147174085678328414279218857089341080970130764087182739420546518072290213191344886832137661786922475746024810995446979220759052910237831726685416642272560868408701686974864929117878715999126157792887030960417874964091070414553128272561006306691703237410560810487386218472732666773869220116217877002591052447712002101807232471020884937025742673527110922735974932742155239535802473275432435378796337158981788036862631675307760243652444668121046115349795330407047350669095109469835517655462774735712466055781914625154400467120593013005239204047488100016857876542841493269676463293397293801664742352505406157370392132615433692813537262870571574509094933353788807005999298121260834971260872811863541014698845610962120159743755110111064835279239655988202650818884254587670893259400120454312040533022786035910129705457759040281915499722281280876843574380366116249153711643211599955148808532663512036350946626933034729629960643053101407008345244644181264451567008711492337734917064873876213925911509013474087376882893311298220374193843061219194293667072298321970444747819699177192738933442551581767367077797650909862976820860100302489011038514522491936336943820483914920547920998097712175029149381493791120891082870090278814373765508220530769547579126517338237082306266101714355104086475575452594593057130304210490800547830835036173080145868962961415359262060500563070805183839589436806459490208252088520444264179976195533611323078153539961244738923105677843687816972292077029761341682459917685161482567031598079717726306762755538896878943734926578716966843128287886636920488587775733077382223132240228214203171271196880370294489725396932396449892413990270110867045766577921255529151710945451422679504617149649976491781797039641566781098813295675164633353325618333708424832481863813926577860736773343054409386907253700709244202836925792818824976159594760162663982507578602436234648574395323118329079159483515624226242992847226251474867942089977223477504146518154003038610840859019298295516984990816891357985277414777862008642483520220894808666255002442522928430178571109775170147804124516856871446176804884741091141231505983484195647417522760952846851606146198319689763166153772296158015411861164150657893726699969041973732163232018673580894845200481220438798069667739360739519749218477656174457610496638139539691893404105468864766432430520846482249325902355665515245551293133409958025213153768152523554874908472606283848480700046664912315328614502222914125461568056923010030297734757437728941715046178425753074148907535989148493540792705755671395543286845307622004101854019555474791419142002203209657330620739900246227533990806285740801891377193402686058640158766281062015154732693170173128616292322330845765200338043747885274653002098434618303212056498981624558126454737419525678784254929288029772134435252578563591180994545101218310229692791063220121205066161657103530950889988813494225252377990553943737059339537375319263009323669738062107941001414353092379929895953956225181614882839250635214417312187210451151835392842271750721857455029631341888219269754897185313152507137515897341126949510624237346576485430255490938149363295132706203118507743197830162805531903519570934932840126746685691807573887230099941722771480740742124792862659574403878672949975641487015199482812047043248670559432186875521492676540957178980031334491378253088160101419076864321335921875298789486528690078226386742769898129639037001053192885145991134368132592591255408663699147335723297551483767731218252448839497882883691489232740143228869726593813242461609906674986792973884044856265923271232766302453852513808962769956764881602891504682132382034314440487438753135293652743529965824287561059811051572836371493176753536514634959338154712249446733875298163422086181065192544315500694308568801048814128747744444220427524828964243518898947322434351949461225210539315134211093128874843223751332045713782502211647711738598617315997798626259822187825184134185832443806731518475131074242976876876186884538371424111398406125287910776714631312426117059701166531598798635574941923007534194221784318727629101214685848507002850842435980565223305075534074748832974966241923547697298708730656613242625168245400246570567084256484185027293763278321034024183095007872666872311065925483521626819576181280794884771029663418392631848922723210969902415932954546942522439445331381092336197372553067602496324235633970750200909448339097828415963171951879490305871226023345843230968667560343622375328578366781197681905677405018454444453649440526632321803329980119193207490207379593797276510221236134594579043148651298852911171766699564109556411728263449620763584113107923863995744765354816295288133880372763418267112764859742529408395982990364064475000062822256457866889911594457457208768169939004919340057591831815320135530273279088540940933266277193649315361212504086306853794932558376258968588257820146644330126503950664888798406407167542058209754580465047636897503732626954531927121810430073368245790680964871456122158335329835909297321424938376696466850919807328520157940335961066746971421864128390385485128147099049476681913829103911122110167364132452810522310875248269072989200433583025310760846646688977498115793933439162461494273162997849268727146021262414237753551253990680809346261612778115113547099899452858186589299463900261555933102443242548411665468447543975005453312786524972791673205141444453088292742749094974115446217274673127418905945834770339576316002253983109305828567008029832980117092815910846868816585574398908855888391973495976949090569765547858592602204387579993779544314364536714938987194635878379607314363533096647818147385248460329976485521050221542292054364881470805815578587615996866483437211759059562208395955671639005631051916932131784943265891686756580012480407061038938224070386205372335087219868938237646815699100404853367413841551622750980809418567233628045564391058412980664204042150128303914199991524684613022116299567273776521032022906484551029478297187154898084369183664952707408030742717577763707651421593643786799661779893143688298251027938694490906018333392580860528459792475975045622290390048182353494981493060399236239747084844825372010168108553336806816394924150998794734273105770390265569103976404257604270545395011683321458091553586299435461248920911531304862137487590829817995956743869282288486366782349032929373025459044636768110238466979556975487413724526922539190156003823395701766640362146089377824181565570458012904197081203899944177598128496413756644669934394634441670130614960931407682439127916521573110494056917758827862238091588368316911836696442454959901284710323054442637464918136009704496953977583254657401450736814885477679492723046010887774531118814597326401860201567750163010003190362220541447291208086591634347188910579087281495547142259852083824874582730944591335268019424520754114635229019485363540450022620099087266477764971265918773350233813189000581229560785040760564953887613877617083650476718980487247370673341098137935615267781540861550166524886936338666646298048117705876234361773197234710570986011463507407865881941433753410665645932856230674045734862558812291462060922615595093829105813847604100198174200705765711754969475607605650353862504613708676172527545467057797450219288695735446546249259677555300520016617944914088336939666918443360858448286427415343271449031117642150629530207413928931427745878574456246067304405170166077909731539967477129530224595598510193382092033832042416146522323507852038772645924067378100202979398730791579330804157994514097731599735797341445466743327966998296407965684835723449597529962196029493111687248640571876917813706503076032361018171447810446042415640706243790327990983752320591906254938721994350644934760015053278118104075763732864884635007406086067106159532127349673028870711796543159657274453857512694581789203739695601759932946428729356886160351864134492873408825866648102937018637523114527656972193679220965916006331856908146424213788534751556417492740716022861542493161377042104346924081853361319981944833228565616066696641691334160438182663697443427993955362844699100652758118070932013044991255579999300429577049150452213386793626386355812456060194288359158314836289001001194173866874216271530655386791186234045724888641749897148778640179987438312652520186611866992774877096181474015832376303486408857943222039676938469122564661556051335580152830958861456107749169043626065079651797978006136884226729460635795823597134413797509908066676745063611008406083577364829769032773708678151609420147570212432515475770889615021712308219350472737631988262565274033708279576230404981451472937929828382154624349705405823569809060550926411471210809212439215214267518187302187489485672339820030204230729822820117285267072259174204663013021523872739576534928446376135564743336281717871997431788893040921595172694676616762531293300554181277595441052171123469984301648126979330940746284210934319961582820147958988001619129962867589551200896135626247772802386333613398720322766078024091762521806539592959688037670508343427047835970419188516029529713956881008554081694570865757114079997055729817821811216950465773843495797673309959124578881902187457941583769377999889316087640070618835061271721888156893156603878904033630973138618191614723210909528425272980044783714263298069404259691294360616422556272232739965202702110461959278237647496047451685083655435644750005689293510977300927784361349910325621348164971140968172076602916376406402258548227770123813442547654406969726761824336724385664755709761581416824821870085204113402862388644701765401349826881188991050559269633821836694950117264460197378842137884054528785866815056091854723147178320970211134765670046098400972912348396559582013768082141267941834544219940180443516734366272609971873618314346046853465927287264444520054165780700451462701041860017261905810601525405269169382003207919038115144786837800151375258373113408210928849885009854623400037055450503900651477423071042009457611249878728886634067695544339754869267638741987079405159713764217584415992752121029933823217038006982835234093344381548549167197465037243528974890619528141210118931877155027269566436198330236163137347078424074964649722437119852633618492278096682688175206947350418546087923297303172342273631768038860156551640875422836239799274205505373792435855940308128403613645057309311677194350004133373183503356261492531864491623003759886465304635254138264856797657037685003892952722614258349496064194841724653306873517827291327140113738693824833195070469014313822002131338297418439661711871460608554120829946867787455674307431925402487667346675475797309077873623312959981529957072499027151585723205578810079419324308086394964403269035433480255477460985730516526048041107317222722493639878152588359796964814117714038914191825984338819771989958011369729116929856031741320005488108061165808006397824052236518930334377232582476810093544770863438687914997840673644518225939249338849731230736604556413664812068367505999942782727991830797875864243022447304716341711118918899529235830062289541334597543885732660435301408378738154143529174862844651104921499374752783172612796651213278914754950284558473920217847702123987843161004042020999222998606314087434509959711015688600930490675279358552878457702353775685242321571616929548365232897296334321164313476304595824779488842883417886101171484528147243901589693582832814815954284372632633286171090128067891919836385602434955948021767258077617265618826408399206923833197146130467729366079470751156305026217106132713874027446546210677886307594074710776665694628639772907217091027273558262913679835666964218992162157206849249905513731282066776700458480946165818407570315568305039320122284156299724592458919974772947908761519692341419851837544844142884745231382535970290714983329691821680605333337881911185023421458315940405893135035494910196129265368688230612800739390585914821208208849791560669562567141081390899358535019682226613553886959503908129593632736372224013144188147350992963122941004263620125343606728934425630510577025818642994916040911872873212668125102425344024013736689281311321899555012345377297029660462322095659075113307456723800363398931673467909572156843486040629728823645307038442099890819026274878067122158223251949807377774862569204580662882901959569682776636635966566569471629918161324747425418057927081297370696112782894596935114939459057084922236669417930726256265409172625198278106683635834899043775692190998847389421005283970399776789763118192076594497837601762331818971772399214855013454716418251242270739492938237724327477680487954748130216137007091073391025772803212849421377693709120194465412106555929721962053218099750907617402492805633333410157653105022074020819509052563688639772911514901850319987379149093374791427160487015265231815493847207201648326971662124109656468459432941189646203664593055702977167102096212921103591086929231363243469861373058355567297001684483081703759954665879468886540991458902949367801740071130112348513748735880028665909021211373702036766866176904408876528944690233170356595405720805027903297140460119247615948742421069635096063014812987260177289559340219916354454885379196182420866970079714619685241963834415866905703255629353054685168791841665892967006892173294700133459096223496567022463274898489352403986913908971728487331834301009544772001499298090568358457797927962335746841871090347450573524161461178756481883787778801241417277394517749823181866240263141485152461411116733682433790471624203034616697695064852973072695088980337559478559723144694807020882348495400859017145499357473842820357308470130713618602801971967204511503410085829370802892654432761954309423991178298561408479611634342322258834380195701060559191485497152320923538778291849645207351606540406224795017083115344619661022417987981525549813288017174012911718421233880158237621172670994577634636248646136333387742547071312185951763777898339126434447825961000096219341809271872227332017410335060088151452498351103754795417234065191936087665363898545535404024314339549485217347583041016323244942655395493011234188071627576887071453319594095944356013582597088482393418732104949055290296462199176364566162945757813570598632430951335653694987943170235610955320660034761343062144410347360747981564398035186159396778707083789086457119278696858958717455166891188902065881591688828509884518295723874213509873074128689911762441444440393601894580406907419267290371046491914743173587633056584478382543897824281081143337130515330775082074920439637879553385652387381580556485878855314785149776478969520375697291055328149972935398379785305737436037887628374693388089731156103777244434005140062512833364669957653491520379294412766035131459751872112648206607947333121420366874211533584390354514956267419940115171675275073579001052070454144885430528932788715626952909683484712861911934596425350500809248718116487959964473138029273241451712695823437484210980609120256490552352222626415541435504110070444413744636471220833348867375622264078333346580443422709140492271829534078822928889211571995861751586228148630913788807952261514765203432307914303880847313204694505100699787577989127761696236542830312109093258860034670570181354547513068216320301566215231301430057539364370165443842508356787814603994847505342192290197214327599584572151214709383807252861640252655047251797142035815664055671243311296572780402779357323982987888537265583952039453431670496090569849692411183586026949666424749530752485763068806615950165380757330795650536846979519663450403669227989756018486980883355132766613829461547106405676405313302030667359826769028417338339089552558463632765886086370801297612428701999990587089842487018860384554021403903280640929231576180705232616854061672570982377609859216056238723097762090482776992742986409659549730864923365380140125713334369017690042728297689668852568378537124184019565466695529709633680996331081697617382679995269131485829546823684691993053859069620134331258377713658517368572274789462437175531416976722127832141378490667514443778635413206028467594836539374484597607209822629365347013582052584102356383666853249738136546108146052364155332414594397941462585874092999111658143395343444197749985335713926763869912807417723584006403517169397281066440061610281544019284155386998022477589488149417461375893972910971620406418524181601096316838833638721353573374908934838585182156363408966040351654420878040770940519487940323478491970090676338106459577226141855505159034450715838756216847678904177007094371078271269683492912159136662162346647275855678485978942248991600777301527638088724876037540644837047425261858152214834300335478774687576472911061683330540767330018993264941051065294717001352047928296833751008109418306413301132890670294977906709423748035758706391299241952514814801631302488685320776727859002002379973041921261207761639801362534022300679638975908067799575056896439331896974299635650554804315671383962458622857407534939546196999512810064175089763534160807912559301228491633898538667344134860321988221225495998658805912475745884392528111642858627533996181522790628558055808380127800044893783820549133788244746547251723381157769422483103107346257412748915462066468631998549616948032417022254498493879538867351149151211294359120478622798372918471834281999483869674447770360216833931977100966913315548945880586337549147441893976946747350472416625223411820684102041465179412008638084531311402856358319960161362936386243483411519144440530212264739387079302668876107432760093679814408724927952374328580206647411006626774538639754462507508638663223692238824482618363249181253742819140868457824909947572693415307661763668156330661692432724424227163062415856603965438935534320803644541029396953718683203297402063467757317588544282902855328588015122006869815040928615017375442344170715350007484152917282733335151574381887755800369417815900388311554960295111228647861685205678097527817604652622743011654233586302468910153067022122211870597141776039957041644871925260654523932952660579009680990503841639871282612960191192435844646927819299241709038506391406802519594944422715814800178690650925562444183823979255137280835733145872845038556482228868124476368215698335761990490972386869081823297915722976430320518697928989789507891309080420915438799305485161290537022737041158499208806068145925709925899286686735500221041999938965145780617550157059119971096154771334370712295642822325908933186507296665452040003508244774973033376419703113480116599477340227879761681339343321110861885444068279839658462017654587946728248450889929685618342272606344945795003227726876783351169971827552709156606884700592738718475705239989804035072315102899864108710950012858421724746194650377264629272525592451284357601457384079751016591861828434000629528986363669773809959500845922787472074178132034487300479681632588003266294286182582918973047055890846133748639654957275077470535900209026411141968365047801864160905275556241338836509096965182308888810752875255560915339278581939789685116314611400644497661097687762740466682279529084757486176969762453665432506556528247493009656313805014782233342908556611257432864115922107513143474996393616227695172756524323137593782239166776333316410663753659156363261376236136672929029084071515233453106037703789098882367960370594993837549384751370872468534568857858696664816994918466505377637333275420242826634951880969172591024894487142653597735784949500035756150402278572988270719896596326688651499882871758156437375576377596896004863499066310136447907027909007174648120439509066890035560439919085760655053599175183944066630650465857819424612080703193371590105175072685553529308681350621457459259590825407228798159565863987620832470813087715304947214735328478776771166570271441291136556051120749726069704135979077052093812619132832202322181147876815059852569397523503905365960690362686500249777509892617775369350779599238891556908876265002606163699535158470362701001904141069804837165839706529639708655727877445056699908276011590491024992339885926108823306951167033449612085121897168410344465308553675435210473454393859562106238260185345978049085695531383634314460017642457550988532588843089248512834944199511167026562571708255415917128069575090660621412508585431823590070159690820824681868569852569768589648793060245386336819521661815619764091130118426595314612221515625659176228720067750895008086621315757141276811533371639387119864049843318249282593165430091121900604842591951187482589458330986821254916138401404193697223912726013503008435252051253828205266968895041445836553922936972006446394507466355296000789724939767982455019742483032718780326511746313977457911421593829132852343188390180042139695017934230338621317160672099258295208279782152215375051109526373438801367152249559776375400992204967769935756458334073020844941139608475877777101372767217075924794341898042449479823626891348752589536603368236673902415181898474279920803615918346727900255690561947063355428252811336837435897971478162719659882286463962882019931837796019062477596007415688892752928648931057342316767492649130423638155744030583452890888602418582468940612272853055795957858047006677818758445517442347540087260412018848968828175963408756791585039229444529157735485287837300109412505927728165575585137766216564145563621100123115373100195048397604296209033927702847921158603399882683310244734428192803513690373017041445615397522766051585948614754463264489108686119189333603117272597477021525623154532040004249964242527318246816851998789240972023479387260353765169723513413686790637015483438942381057074747926618399251604494062642812217104691507982960045027980116998923669101286427300390000519173735181401341886748358282116329945735815859512537282125979703306511985782368863442440751257008567370068891537125358684032892796027962832378455164633027732172163376078630219323979496719875670119205657679087951586338392459740549991763414091466726570185749209345332562519522129347316726514836298176870235769283064445618017003579107528507479510277698692475108546726951326987674874119924759598154331499766118444856515790162393692661593364630088440426636340063484105580576391535658663544899861622168268600544278757742017658330293189702989676478502045706657351284920695723136962890106355975620516524090792310310697685443461120128774235900888522472646013057165609717180323589286017320761101142532826461004200454433775020594274644679579639761856272483246992620651645086022358832306596312125129602344598461854231282157259708737612380422527977101914253378200621406189999911792447325466202304284904306307153741693932783362141343386961466628523137057182875282796897535372150648911641484978151260394157379165100853020596780690106534312817229076557682588379467963124051626113660476897664856571755276342200874043365956634383698534998657766494088577721824177993966970021673406887815624332580179522174771315635628270721326937394456709408185605589185828088147280930680490230857058100611191378031030520699725822463816703849718089515047097752994742803506389913220398876176085330812842211158269276789016819789928339067115408943634448900490173759408469263166907652748152076324449930368047472108492157522165800922953570319048139582476721075599159228332264251587138753097162529357333482568869054202885396727008910282009239709350585999349664124600884744173721828994503356408593379350627829855383373500828491623096996397994897036080199341931152431568434290664822030224173202943895741686092926252362846876980763661833030690834616872185688047735156146951487068477466592842617544403129357686649673358447033016888733083182434368395023458239723592239103732125182264532201291432253163814085123221182559159551672289165976304686134382801034047905604721345336019637706953143542196242467192057706960572098221295309219079843433089661421854895863057653550449713525716178539598501027463914274474701895333236228906435661880054960941682182432652268319897439557581654272264294570703350392949716505349406845012467989633674708984157163483147889308649489688284442174329067425643977578231688173549295149890979708865321729411216834251787033221119494001974431051216939865979438127808339802542093186114909391975634088537847666781346210895190018841308287733148935402574515029762946065145266132211994237481625798523956171420638795578263079984259333968031652055784165490750599566712552430620470627027940973605087240410825008351082491975867164730754659416471159789915300698855816372391356938901739324603859651394039163176381250978339405627237445647729975715096726670320966295028448370063596414858143739555131306170109663517347665333156689761753975662999548480003804611509107177534151654206348578733869693807636905343932653448540476885713101689689893567422072363982826387496530606534798363400674831282288416670621539858864961228545342697260227844219235129735575665888920756277955358277311971521245421464956630291919636714998436806559257830274123912621281550854402826684388435872433003640567309336917007550325777095452353031236291680707871507137982237530989269581913714088490888100660079607560383587405409234501761626274507770439138193386149149756095230029087003346936538071972715246974832666829236650151459109587475398992298907233898101402155831474507784863691941374150884646044978696332431767054924373079989804796749164382128131416754286453503451729144691116232403159856636509965350493619579131379188611367316470870792385487457074705621116365723798264607234449694701207803400829467968890672770193322960439375612440266319401962762850618793125451481213724401114540335776459248559390203380641239685897159376249943337279505554328800291232039159113565587272459885303183882958496401063174980157340170831037946872605372920560707065069786918994611043459078309971042521912842608035212823999643039796604717150102358707388640266018564130432481425278050552082199253574944424007732009013972716946219909109817147021236412723081751721985838857114669020162187183242046698119172194302890935411579371087308648690490931356485639707704556157061982155277301578638391549765539475590826899078385746858905388317470944549171293219318234112956194645506813391484302877991393528048557101558120346876527239062978823372014352782135004363061704384277373458507146244670985935472092723007636242622482675167180458824469619355957685454048409380058573292527151267102728995149687488961689930334397492490545953505937521894253829521534469956944445909493346300596446425796098647100210198133181282063819339093065148295766774840951373352341394849627049332548288188404679121689056194661083846835064611796002774364244486982051509550962566823711595015806245797603039019289599400710606902662229371550420775312503818297413584992246620427575824564879009280888468982731392482694273543554215816072308307401200557881509346080115455998170995552252297661309097559883544434934847388027072746076562458161314270236476948228588863646734070337832906703316580278688179264372489196925874459934644792497632493551713974159701633928653713397013357727523159767515687084132741750463020149358053908320257224915963618859770704184940904979880858349133241476783111092321203550273036390620992874600559369929753764060902790218733737891983040905387598942881062982313967778582481334330692373191211312290217129320219553507548681536289174266305611716319810543454423267181626627855794060268246729145150333991835451359702696178377047567766792103099611643518227514074469134038598847484565069067750828858169741745502852882821361209752629058445335403448817055387528725014622351094053055210281673493576529599495745163094999102970350986358507188027806847409693398413050434747737785269117609824184743261350777186504599374291056768423627062088696194948211649204081206348192896190362844329297268332392574911038568141198330512454025413015905400294658915302978566951585131097850334569353170743148285495398405574569599060014297156737671753463314945477031042745254156669451074071080798200407482846906908978026974632896887459547500554513610322586896358059982005782923526006473167988401592143519414137620710346457254426148589122840069590897968792797230525587565442828036658271939166121645005195108968540388596908511064044031703757428825468874000457680811733619923700660931231869722205472230867408001222811716324512841421024997389112597569268820410842460388015735418599758516594094730004231471202015989104922600637991428839520873364186325157731409493231163031496513138587777309663557762381392055718941768886286518589782736082966810670243285998686854697103255367761433747618359239015768011011493852695810602474514845436462997734439010831653832070782704277228900921502089586270888132181939312165673824677464393102841955098774829644139354291795969264235117839720260916218458596229184119679935924727621938254301984299305666589893241181674810256568847667736779849220979509755812642713932570559231456609011681690954026089641369599777759611224291295285828216245921628122019842064983739019565062128892818892798515323205127864472757912361833067849403863830103956713180469369179912805188928144600777918705004658557777590603320463802598422740445607973187891509678480468010416612985012435476028707011407428060494111526198577829464258086159580534579812929180507102177640935766943353741071718835017477118589903857691432105737768910088528967699578476276410505756043756932113691264885493817071932743448324110016767696501374796070368549685595185742498477250132413947150084895421035507011445822137700190461114766688857904148683446052627451247177690406890102128608699324957634482578981137542528615178334434870855801662666191412652487087633470885380111225323639558500408950985142152940583998619572175378652434284676102919561588181309344448012216919184009337534795371480570064743909929024248996043308080225507221596024527433504254143825156790053007841966025862983453904728709334477645489098472568312593500465443448655860798158863520181623182338004362485642044714026548877949594858724652511189207410002948005275062920390842563040734013105768196529241818919045849988133520183142742480527602390829034282313098875018918074026253440668500188275498408100345583291162970279320061681055295186422112597695028271021635396471068275278295155410896163684738495615781434575471025936970915902539921750706066320613426305635571524070240026322193997741481549265406378783709634492882706576076495118249557394046231261165405481838916003863247634585889145466446633937213733504176817030343877589833532758442815149655706206330695759845282374834761146888091370452540045634205702494857675935754663226157195870664757832984774734783417861070250942280736412026984334753144111289873887431456243187671872480956170362461663980038916843783912848503209778848716902448372860156385530438150348393648655491018593276461258467516205107652411231369998561995121519862746140897273952065299113499393116292882126689811011079533717139083376901123308389857064777269113666093818202637189680959376689236414565724799292972980287580627204489077937716682622559443367434467569928823408438336441392638562922719052956570119204635540471620208452418282984461150376066311399217101173790146394245174271815507351629152662592153368170953767299941669777965587835667590625526203762772884579894713765949699385410481695904289706596811310096855609258774483545405359604217615840392696526402281471043257539089085960085703405983071515347005993413585566527041937028090034705368516822503349572015537440967677000289032839422630115602964383926841622295757518067404530186124926134153081476783937376912929834208335816479010780516048424490610921297891582900522652596971615915528310349837176009415375575900375598401614402996684158846304723054030392651890625973246922317030770570306344265602574613218333522744343420480794327152206919075664247991810733870859915381593459562068133063256385227861211696664141252578459699132299035449028955155550444906326528714971331285569969347629591709661642611454099564945633810429683607500310155969642924934391264466986997567122765740398861704778220313278838092743045380373171201001313755075395760876285634879246460166340938676747745062343165987332828266274292270219365809174831852946229767017518380590478486304649805010931093819862525052626552489920929045610789200816514843808502051684986647145005940507697907413872253634683612206195049180662804706110482200889753192031479167440169515541342406583663044930437153160365162579621173562607325473245239665542377740409044265234053898352487135197068915486678366116831464340739123393627570124521152458031684854360297124870789338089252111952333029406024352355233078263474320051971945575620391383530206512113617565375280144553177633542372677712342105678207067061298289224032338433926451126966692741030599465692700439025299606996290059028851728373485145214059696414620649101638957217698473880454278965947367179943435529845464340246739204362725000009939321496014749653187345061218597270669706724940496368330436150112509668801685948515751277924172873574297223449831629927044266293046381770422575002301263143785787288489418882573655955434859309308826668683554805449529032366978508569403327079291486066481107711141464363659042255717817020984750947519789663009325426722948327208911799258797597990687533134576235901883424343486943447424470114151938901859496241717067323041536673485917157537721570669129292447595723426541417566344530399299359354956986691121052020827072337110780856242125807619442053769562210702001795478154567894192316338642403968791279188376865886806920631159644644461989481464019775259248376223577726289929925655955512866601326237304317123464036006190208445984814516790672387257975280426486872521145582587105825438508277645248226090858371260345433934221166509812175213812781632616227036756077323148295647992539174305521025077180861902818737203657647487602838199161375651859657721014839704660321659127835331856325080735825858044263058022790597028302793381346720496499698377065824771317744782917959331077424853118203621869415102550816691760418061503213247167313382163886296248259934622940777621975269592729490722565544482350610323304210314722194398737147347708269628198684852467893127822633641197219570800757605029895953741691621575063559009240848259325599633053976113877889131658971433455950459974641573384906348620383254131518477909671460784733896501731655739535189292162909033603523743967984922788041434106613189713833775073657145560284453708578146192013336848789716350017402269279987156554186993469444838067295654986088238576056956596597794474026823356851524613696048664081954165755685909442396504290106638600759910388720227543255022183715115527815447010060681466639079282502997471229712759308528037725690926609726028845713057386399087495032300331584361312008478480253817608042522886933394829249349402296314246675088483031124982109860163242967446252647191430679357085197778216030464143997826606656803619181259694204786712309631848593427243441882973641227009385991314209477515782598927265551398734448011627700917451706813134451628268090759501919042052389092194309344778752449802502095760315954486997262281503458588942835608393298782323816337185135156759244678642319073695167043961595089141337304779178639220301753619612092718988932656546074948621413889989773608366518795590292753619256304590960561257241866670779762304605804197521139388838156568113635028193333257240503456341637978833261512297095415239032817597211983832238175456799697015068880617262401658429890868694016951073865248908759206636710016561228417230664441207518359753453078565083385099368833938540366962532075055951013677912390656219786867084092941291095360142627756514970550459743253517464704756623558151565619902438695503664025968034255834981908403576062671359794151617322347772582738512503668544507158487523160858362340738647905257674239357288396473725760718984821119297964941195761895448905379584123774867706718399810179395171057987312735926107737981437246900164775645622239431931423251434960838829212990917827277260154237383739928230502119860062265492914324260239331322104146500918238571993133632447131398218337321013264720863497115343817180569240029702115386145518478220832134073100707331514915812172677042680906693611177974229579984243413554498926240370789047273392582802195562947903347453234985499214466821231860372101459834213726776156104278265510711004827903513763896060030953006968462801438606506993438419929392468807176464557678095255232369286457081022483908501527661651757276443650739481783651038782448999614410965954677940019436487559735870654428343846068962128651794414662582303957174412084128492873855304256790900781039984130738997638106951811617113007051545411964451625710431785365023116245550704634856845812761322199989451097337872684719300821929491410336698957212983870742973307569489417357333912630213875747427028025265344569802070918226933784605500522090231987380947301009165985322189439090671096140170366504484115527430061952318748792690252250258609642804952327659848469966135004721858925346013782264652349239418763421702449191855605586382148007476171624640051793289152388211830636136198006225489975106180962469675841956142852752559722171041127527489205660553484329255313813150749123563276172018895203316175659593777616271078335096661004371133989443513713757795402965306535576060381817708407965274710248650317717067068719621450201893106182679196030555465920001521877436664829960751419407146553178229154122291007548718696688689283028400568485478356252968075659267057712168538923592007531439742756396626238914432741973744972379603532352565793507138519923218093031589349571471890812925954000871573445754270287363039495856908468466195306799328760309419500958100493623246670929371439393693172058800999194626227656465605034956399183847627641762978643757817755517881483942555394134475419376526549239798391098006032959573476123323954728697266310282576921733653227852564894893558644973339041389118964073748090095547714313560090144482866173766529577705718733019819817441809097085523068102425279449829182767457375411638757788765891999440782631376815438480687982555441784393566535827181520717399086944670342994660196011242181708254253439616119787319400577017819770174545079250377502070372114969088621359501285524912066126888879037049475902657683716898715115121427089476258969003663557640865039430991321146249512849709308975341175320866395578019642259640648364180219701408499047645130792212216907882778777261298329312757796564702818456755696975897769433150051586720134905782429922136001624239099205834242654294403504422417896894300785234598293031849967825880401825508118149198206460494904045007450499313348868005370113369110444876225968793468523090631491649535673497861394663463402610992677464148036790247558282761349101333724529131637178472719861608003980658774528631533546438305333521935734160374452496909512114392640878651491110641969834736728903704147224077665894215257894839023895120504948844546188232286803265281389563378229601769123051495431983224678346038505347734228234701122401808849158747452401013506700858313216975742973431367788169676747076371472173910821731469085443760097321644466543532337743303946713646973380736748532482880992584950082985612945726728635941255936710097968351252384108725715258330313776262469123676147555633063978753279128912542663830192321445857513304972962206768135735352868653683077723918757429016277042895675726309744369958205665754154647173500672072193848571914324917221724786097883986121499017556772599831965583331640087750627521965002166785298170811517575441684638215500963718089508278042840890834667448058322425409936788823435302369621916149495495687949912574170183339310128753092325689221192351871174661656989270941910574531133344876547367561060677241310522243616145477327710496433376221216779685100386583854871343715578405596915020605125116780484451105589641931646895390220055284617861950401442100989754263248881539972645826379347412990321953130155671123094238483780643030126383148639409682563475471265328737895348150508890992541076626903636729018051813799287660187993351903772285180741464321472812837826677204585112223236108738006160719419429643367512377646933320643377296927289945201969060844010512625316288763801226189700195304223722663227976128584576018473013979891890509611038992499316746361282097578635107341030592971404870645132943273956383013410694394079120323224036717705900888889558253002494244438462962242614013816372449798725991069900931217743434637824435997403004530185408980862565585175297228905144075430746938593573203401308104661369416474366689386682851724465209432750043228280546364616877420722818360003036330218645714579534505549291632767832837918990077546310845313484888096278988095425954458378822522023593907365194085677736815500440137275381123120293568439018780203125218892250521407012276432990031515535826434141366896243500497584696041455978323115819334632592260928105853391239357565914250375968078616875153281488169143625250712195422423037903071611865721985736985252240593603079387227471502482051071356041419007311024180406176143114102310807475550821113976731258714065220839041281278890717703086163016714355137491349186269745847519827153065755536632512857824312250849686782106434220078440418113082840134395228924490274375043513110980346565471235474094319794446038810166047387600930373571834102880815145768433226459447831915608560268434502358760764282671959975427205352894240791339024330262240734176854647056828227719577508187031410433034959507756796223487793898010890668069109101028621653006552455407223542382150028557469103350820699429181276865300712851810150547849210165135188218888982658874305881782317219656371679552632405456196009192011855739286568722502733760333970774341367504566254378201492421626011795338458219007611853167874881571185044880085525331249282150128793088261515284676441407527519070106721169690455184449983371852921907090635247388023983424198591123132152661900311654315977640882311572239886255203243853606549676905414303463004201851565006618198062737386408068972349945536389441154388490182822601639567633376644093003672955191842000129083322682960104950876362042391706472666868532667629120936434968464507758277112035484516180844388627916950605483122526480068394311635393084420533738784761942610591142571091589686299952096536946820774112922416512882098792906210486550661659363845167032691349194086742198032417671110948460419489222922663590194386897542066189578000175765393924176656882214972033205478605968702817999424084555714147269461194440872695985133381159750794645331062533199186308947475273723332451217601521645272469179669880133974475903560768118175872116312359958917626700332596235769925362194754679069837937034644112192271717684185725667039630011489497051753010699180715746120524162596476322890848614636361225903044159818448079642839777000461867659119170495126204673734494461894975371627715542545273262846684613361221482642359795339593142657185125193488214124048951241634647769314461705343571231230107214806107653731714825940437130443086395185944617129029360993402080856505304090783977502409259877903559236633302790728286887199443397497900567267076600790165803154254803160545902822869551003444407108584734780898585633974161569448534345054737354187919372117106719949109656821054172588892172829440847101284999949132195446674083572176862473058078917375455168986757424515040418502023274922897851644720572714617154153581094608290569612806469390931148125017782108639222688020366738659253653137910471083017581386981666195771155656781256305701384938556867865794793097309515514709960905568193883983707129890750080678331411162747931106779156415029983332547653901077004082941979775688437947547800074397418680110587872546662841155856011685999231361191302984772965185554880999539850942258822850414135371659100889465244619693617178615852717581426339545542041097684060636113622087472838734672764388169077051033900345844879390806827293526323266282997519990714411664195680531023521259115305446042450558017136933329883894073543725164822815218709944895493451836245639549050533951853034921802817455815934978258149851435923431163950849335472416243529727992832681394327016070708184565052694059551430784936132361317044874263194750444122758589303552218509812528041548331456973946405786109416280114573143776886041275287516271896382803467711949038424444081923430456570560269811632546391676119644020206463296930273484792130460016474297034051406844195796603245403821885830230718874625758395044743216596626864179013969101447952940350163656591938034789161903063737699917328691771839671989671526452343308381823330730274450931162739963968472201751816068430847557136003879266312586793534342691566248494519019323658882457099717519562326690425573786248281555124046538592155799945056188351714113218109771395858289065635350212636456000597874213668283296922790994577173511431139850433008776452893750616349861281511043875075008578195121227171900777969424736271631226860408250804886795859409953628600472652046212234803885388122610262798691769392778743039832352834243181550382560942835648529234256849746859595893608623763593169658453456106483401499281975521415351671254843704598119988868370868754795777500782657624069968537276510136231278096176606569862317902737514287197696258288311220805938986431129597330170411847490792428975409783198189221681216357977664795146838947780950578381729354677660507868859499260271251862071975328909219860552160350950581765297130292793017191131033450147568108127425166974723623755375429838094477409658621998515678779202125722899630973275200562381538727877031699114215503791761738385974523563431339446430572173382672482470665571479293976770187131311532760116578407000320439475803165058616155113091083355863124944191694793886305786386364234793187496252933371193396924378140301983223272179784284379607073786822460969113696188737123509709894688227824937179620364089402152749552653631787556162412902645222197892777036413489017212145085217525751307180333212740162307446158059258868200435672937288149759574369129188464409991004643881682385110588030424963890743649073170991480995457956562913077590949155209147252688873748716563325996875266074750005889719680084393020717064731763269841839831866989442733725860503907832241863739147104286891775698554723539022002154059184463366127361036500901443103987008752372197713960275206751524479765945640732736446645007841443319255324912015289555761648383406174670728845755397095344603539941132472833633246976918775859114692239680425433268154641335947355603146831659431341647171937342101769112980410701550098828133500358968513374168044717973279474205269078417397068875834016424409460388708687382157317464053959858782177716721301421757445798999838664766356885618364036374566217234740640061257365290735212776220398108987563718385760384777059653010123893468206420053462874520817525033926310954443872584368452786546491860573395804579959196895313266047192285775810827451632558082446105641525155805891146283736914343095608565182155311415404158989506804831390362991240086269726264114339377407572070120644876763280612243635552246091453780082473401521270802876880645180359701746107608421205351977395548159586452888894046447908313251739947533109858879523444962674742112348076355399906419263673794639679187074914418015693433360219183882536070705027522878562136748332244175511963217844653842464829611496218171136075882905532360328741775995165529940891009619153033954905811088472818448616224570005576982299494410843167546220234818699338620160350150799123299368757938285531170062941761880940563079381762060156316331341673575120599026947963794593221418898285482830065659427056908061884035765591896530227554039460654682021416146104581589939849300878963109645780904126798178506740452739856021792479134246824569756897556959138705929485036134319569991911314774102101118422537136863388878791772929113232647179998225441577635510177979042179257059646090387058647502977973249098580067561163641614076974462969290534842724486330025954058150157684509731419744113021250258656670719002163629637160184981608813419030843192966970779296569321299731492651056397527484249551913723589608295246964386373867626183715098394880042440410622393993972545902752770552219018500813855600353173117051650681659378990835008455223166661555004754530907031243237005909460738329830985151382200758200784529124262063178859435650107261020657186538479560488694252255142162012316576495259585532360468793990197419427922187102251811448094692576050774339831215054195284968652258522039388222814683067328403153747886432024130161191298823241103519177028267261276692706593761968599180941196643571323214059312580549280378413524126182333792571051689445571447991328887820769117763739689255517210466742696297115455303383456140830921285849241682703010183702124544395409007331068214628892596558932744816825098331801685666366965936235819912126393513274216356740160261333108502550581092062988068881688287684644962573143585595801085720089958545204437559013752111695178385370658618412537983722591948998957226193490929011273039511697294035274089233289521803916252174155426096590232362975743722239581901861032475945273190785570035866318091376985322004646779746260927248981350286437663319085463915638135372434747795220607182067991195539896065377485330702029814751078415890569865258966111352937194480507761781734680142515612831537049867984183062016535371429261920814761919712715525454752482452770013986426952252097486835180395385921350513788564373195870908725182703625263343250077821585728307742117508555501034738155745902837036939917479075123090808524124853163361763529125160228114769939329555112812492821873243959518476139141491650377997023032781487908070094199083094238694630332449572485274971291842624403029334372739752030058960318982494522358265372193861415099372780847975041892482208623906289952837937922666838281545461346770048774984150011293105723892018265231048400338463399881865380539690798111107051355900584703416983662250083014027041539222848058871349481002733464090037588809400778107306518422599394018836360199503087796373059900048619061597790379270432528295353728058645072969163861160531846531856919121616768661484117942176373874293951127342871278045054909113299345923270287776229632596397833693681329388925099946037024569020173245022526333562431655883751550869632682919062403518278705021203777422565023432207162348592350498376083905038003722856700574066424945735735057817781295201021661367748683158631564944935271704193036989604282485656012166060684932435196601411552069446955850663678265401730951069092320009127702673191350836166100372367748671172696208266048389215760033528305939402577964718237765972085144392670730587648833946053456329223683963793848153800785807378601258654080765738069412666796892995877198312008158546269366781546771233168031022044392273794198035787458660371692780058028964355775679451167759792087727379726524667767452253613765244874808215182974040645768994208225048414524295031567415225690507199489103817880028793703556443972214762970324728373624456708266565139266258553563767582507583443195558748174761427351076115252883741257771650562661787176298917452046972131780644070570548116732208959799664891327768790505959861799630058831242280557288370483548514570326970358431437570641540517611478272268934938527054962592081202382684743567300639354499442851350497237302258599105738526281727520101456872467536602162146403989393815484799227320614766772326362661824923926160688169874186336418997914319874478928559272777847249061709163757159819747123301382042818565731793372482689612370041915762269235505710450683790625245715101446624706376103798413729802084980800607964395739669825104536753307129961740669456772429513490784848199608686708614638526492757110333480241475532506379853864750445853556790001525926964656020474276849097190599677902016008311981283901403517282424014353606524322401665382785794638760091198965686102654472687140937780677329881176309749372106253041371593215599569095440935550629328027404110152772932918165941522476747304024092046189145181172902825281300171854992108046063637259042493351086614468310790726142085054665774512664106463951365811153493426371013284356646428390753105331597426001544937338733626213958630757808366804283412398942082918457652327268794397261129167157916615460730340571157975296631713722556627164836439605594808468717892051490127469011684340596534965537081064523336232026590740478264949298528309958036960121711965579189309099030888795637476593786757862216940541321248532835296804438727407260956904270222672308346582097918097838522415869095411308330333847334265078696543038317442818710656854739139971802361713088386830711645792229332944837574293240376626440969918883154884179962472407082880644211649496847532733638685248718311956449473838294796976512204189206580815200759574470149937442199673185535107231145020325001049293386041896246125723955339074469691640089490753019454680886794366616305324325346973665615809133563804233950902855128759508034419086819390731462961258430217963256524715691512339955746494071972898494528968171640901611610274455816682945796086380613633073587784882666026642658679930861186532306385775007869342068620450002801507769801215499761262515627286911200149662249913409488048223439314487434167894219332385355361198588106159345705323622039825274673894412818388282267260424289450909203300497508640963368721740951133657091847855187615050040404180107871572072693452940259421580092672385362775565493682206164027307290459767902821202079621567984864401329984424949355829479132490367824719301018018162785359243265374157321758608486676787025705203993674124558592652214816055960714874233045852075099742190688725132273665172390033370213574458771241145887411097830321330767232106698931379092121175941000763146460731270883030016420904731210025506456285242386662961820859563939448583469037186278519173579477416964750772122194309454876961905715660022438394615665981156369553796533367142236649478403841408985100457350428329708507214100350879093702102021759774442865729120634940419534101704718609707654398723097559110301240312748227665846405433961908655456404414644917944847805111211516029809428732105828620761511048228591775526678904192844658481782092077753459347801641336720545197496040503821433425075716871330906378856924348587570077391490735714742253340222195512307985084407886144540985131637521108724427148564938827716820103032253163539159751756488204450043957784710913445333656757764222270918337436491834309742618677884996520824708166607225077408647262318935345339674628396280395202422712996952634938371762205671814827213183777583434824894961288024832580624640494747968415021625241341822844813818468425668057595826335413329894572906143817182336838372220543427056131284063589328302045549904286466595515166143280669852517666950956437491525846914866461971518389096285412049372775294547332768769604581907157447694305879942366829356430150223740586506622335936507648690401763861496386297246949818995891114296289709088509019578932417281401659695047608370358886979979864408628148489935626632683182511785498730782988932247170794531861407970671225701314882718067928510866163152318697148142207653109858809674453741532404260388664109654962684434639734518372459051119863976221441444586324222119789430134932503078121846773917979736498709166720010679085989248282300674304583624306838720724128510212285029137101597786251315378041299731641542281142892701673578012850970695135871281999207202140329513605228712690773538037732076197013818792294982110796415187476147017928245347608188421215483350302296980515362220836046845459053490465994064836558637368868627753549080345170685198164616015781000310196928313202134872522940230965932666324800549440334997739035948779385369075944536454969858155775698490082112409150056160775499496449506697236844151443982633488487202637969201302978148144590791877697210777376276841737387729646051924722971884528849440402014313723273086588770813344056285794332241268068294015736262093358418041585324711337594408096530282616130137780716479510485432684414725780013080302621727560962874026262945067264821367250814869206674938991169143983309019094623870696119205437985508845361667798392359862399671271109948522442044613928934020965970990733518429603454134818711135285625834759814188320132078567023651967945070388660836615041999149119524933769480016626743390515306287612865662988460350453382154265702010052242022175741768938449339812206343997568352774456353618390446066109083821473892220251740643839828045403263081235232692450074823955806445279021159377821498460338758621322531603461707078612071114908388749684218780865750090196283510715878096201992092164008624270042616482056339109133688221378202178230768111396431091834087208989320781413341614028671834636079079475570930687172456956780181326942215767829854323076068327132597578492298208401978144059127601473581676350338410153969454636198505236327587567742802100597020812639778214993755457764129453941167761476936144306866738812626627015019413297813709987704901492097697946407777799491475890155504486900051419668774954538473698561950835330685217566532957183628040366913898879860556128555042621735301416215821036957417630464662735800429942115612206885871697829317493971537571437760502141595854250046743597729718983763571981791724569033679797232670680294117133263148278119003343161585519976991894162214501421641275755983782730447573737151888288059197388421040673067440116670064886276066881519425961885169842462955732677622602034621513214242371606019693693271418512523357267186456087897694843463313281872725503477237440775651530831274910174999662480073668479919339877422659005563228172265510773812704202273637820469513258743110252062665332742032817774481439723431648402565887974483608526682451487355843667590720707676142425195971186575716980756010115690584950409544229008822671799982770977728592990060925129859083485140308724433077436031591646462077274560844786934635242409471587158868452227198507125995462971471657279704504136821765886061019576692433692867272956899259912098097618306517931926922463579032649683600586563379399696535550260468782469850493910459961249840297868725017385426205618380279182149114592787273039138151805784960949628142070209207170247175044474367121171908295365623275518232956106073958417664148630064245873162301404451391622998953783376468452961333612898783354270726287526842580496010762945917412552068757860657763335423210793763432007614483577361810254361868571288977543216686964455471455103378260313241638065772145849821730988115120171792448860517490093200889790588394434933285560755804563137957584903871412817356412160559682412243100849958128196440488029997306718291837992555330670329368047243073607110902014772288183954896806067630276355148794339436623231697874373497359080378719358095294752304994930360527008465509003458114356857435651978430341488647979501946354644410252987604552845382477561046721474739434609989369225717081130098698149140356201471381359595513816505615015091366753644575424376994553697376252485843414936234606967519718098826115172979919937415287936963249905600385800482506242206035311169536052341043604834774984944899443078696631580643767082673992506711149116267799929762968879436364519611302783470136491822491158801526165463431026409502774844939233424891024737477264284499681793337861379013683926590042418408466193704641368649482278952212365455482638210987524787369886260331730405032511229564613657021892972610367019232010966098433275062858792189584749661100909452169984678197230226380672598331477765983025628133486878290442842197330330024326079703490910537352801432790519719099372914191670933648717554886394433085356864648631200642714234491881515859286668306686781221319213324293616984117692579193858653084676323333853714335048488366108717994646499219151927146362739754573543465855221999433804979624404394105954624767544827245024590877213416243951002627769072220917809322376544815658799214841950799410760294580497700272578172635152543775439956763918669165573753701627071243775730762628273726203476452519102056212789799154400732010575088077338180947828167916109907383102243986963387477444469287244434166084037429592075686993258675339745243211787903967570739171603983934201221351154602314664768771861212546215615469539745913976999309673605884968631746971217727874779796450460724259407873485002754671257250215470755674625009795390124939604282209465343244269455033232162342411937118696422426363409486766470621028171840583685405539560840098953412692186345024050137223813414186785600395094310215419056205142422579804232007018726190655899117369705707428500122489632752674554799775943724244390804558151583363401998580861669798614818801510481382967507783310098311124265664997931137049987891573543755650297942587473654846108133857705145203464580150605704377523098605289760846827648724086034661017621288545937091820652679303459933944824977029791889023238371095380915102335839145790630843345158169317890532761989075270317303853906081784659387681632762651074126671232066250435243489416946301439230921875255393318060848838069688101224689811988043259078755991445861959278709375238875852978385230926333327316306694445363391697502373812981987159108301055126317241594629226565185500935562520074998774213198356556469592281647431448881741048737454346017997544364192145076020227866531303444128831174084121545554723923912225061692630296282326924484467254107988883238931602895991466766430528536037515369966885105158177041488496060037668899561312532886208000384628432300484202180904832074673282316491669992971719144815631570809056478555376010955150910915047400898121975790889431367207458479706590293128418723236287048718973315517103044228204073374937001980715217509083934528207259313726015225053554935640291020842229352608080425842248554474504682289930149725619397628117819303630363031208073347078921048442551296059390345883637123609887627343567642661223655207176293373346135646910607850966718550721346336031981142612497173444905662314466365888551557128883600583589654118120055426045353341392921380625336321962029130992263143427313486267501436981753139113659242860140223257081530841377333181824169770435491475518862436707885387777461594618855225838510310544325149986409468791580487256419266229032561378323480508960827370136844289805453078746409173969196368725216638759101488596287800780010984696397417823451306135003981722372713840190932339973794600569027938704432223448132844672138654176045447110880336990162840379454272639840564070715160612850152291096786155961212388780773597937717007786789991802744822842870427166415016035101382522394424957049848525396333832541851988105477449977237570678780243048159701999809453717165253017285780038918826145660086701735152428396654862160251611208601593146110402838876265371451571762127931883248988359339300747511159024451516435963413618086855809034462428988041189274280948537158909051050917393816829673010461199353554486315546950419768969842476533534908411064515802883667333114659801877925371508520016875961581844501566431388813666651259234160682017907060446631583928434717321401080703085269476578947429596926341698517977098131572939117236888498769397953635923160319211670146914717718297506245820277238385399396076407486293055835528366284414583075996960632050889033169163710695193655770150147819033762551645290104639918010780175987636915076410732681057243807069533573058769412042772943318590757480464241770440745009460520316792593664253469540127178661461288424829187611930378401955758228051725590890721564349129109895441601321128724719546511768392326651601937473459322084575071129984759478696216402152186436037407108622241492331118269603970053560974673208450351412246636190091850182632128898626215138036913057215943422068180041742662207641795621559021778488249196021177180239735373145404779038202716298946210717416869514630622886400665420157758023573952983695013594140918598933458262037381390079803024872017793492628363924413596279595925549847386718144445042481335380738719141946340563801593884707399816508799448483577887703082626846440546728750535899875788771942479646283683924480459663999034098175261551595623447696160365411143168980678439064872144055855585307942818727749227256107721996677774393384686038911008733015931764560846904906794396535122549895595174857994415146141188000492128170054144964877294295449655021519241610222406457495824926955368581283805978526580890817413494782217343051074555195348719668973065510566756568706228988392003858387856085588976083075783501324066826175345965268557402559470901987746493464164636768910562606531627799185641093150065240803967706602377021628713781384927115188384648688823705981354754146421520387018414848159711666548689392187923512872397366799123639629733209191239810498678793065863389677761605703963350526055745604225801312101468407629979784729028427395507256816055411184479250286564778922974375683086792063288089080248681613368819876576631973770921777866093011002541502695756907154343922768738784209380921929013520962605012947845795930520068545439772354063962131633945132483910766350357784303110770956920934808738877326310198286392527474167381176747641040944012002662176537720447328719917955598224447907473319436306538753478918958825712654983098911668368752852090012185326051649981683593605085127491063959189447756019577375091844908204313845480118409671776077013105923779118051024797006117903298082227784619179543188161073607142511769201016025498460909469136185765038398879671438187331222199684438057879957831115465441442514082185275253675842795244891508725135339837665871603846857658956003550042582581529364541340293095950281677628426255443008587444086494164305020441401867564052797446833962603563838968720173725733762052705278848878737754370388259383483211293195375291835039525093893887581745908725865400052970928921192822592773722960480731889748355232025310010057181198155814542059910078008648831236274730491335239147530355190250499436885504024946970603431479409956630289300899402630728638321490345307148258411218893735443939740222794237635538447857143209460424563825092953315008391784633128492566233026358281441225157741129759186510615926543858945636287767657046392370695537928681611549317452604195690683400423739850234724827297096934506274323365206481749515377247770424808943026061892768492101752188004226448872269451415179641771345663916741386114893651449776716815291068101083767213358648441539226035181964353512273259793183425525756625419257687102032925024494716591269328932131375235005432281476856650967119685834155249604740645855768539967711927284115832093734307372042395514396817464784856445142528741825848877956303272730448342425295623486798855018183659728186428439282033425600463933923002221608041413108174393983753115194678059508061137698352973823624331256746290763045636128832437308534803540480033579311468896125260370580452674105391654660632950162883597705744951717659830774519257811738263248643885556601852275899782831720271057960266547227176817236412361605599332423313920232784820606322526402325566756001016183910502293694817212422432541264376684204812066625686006128184331640746613878458392796161577052948325113647577850353265330580124684093898878473655369057026438172183833008372279943536001706031332388773186809829623038762665644409176072677769617336811706444157364892666765626363562603591904136069212236883719530778943256415040093168654732575252080460290289600567625397775689063403387905865809890441864518369317018894324544601858124223218600043457137352872759721687354855927898707536403809925097242052817338767737850488775462899776198156193162406504732608115437948688606869841564722015691701379583425784165525031821725085424331193627005487754882358950346880078379585193408683966251378690022768736425386943558313042647886425644380272031571496543694191142343605721293683265958515739775536268034752408874669790492089346966183344907321420708269377065943657998956127414569925372991503937453123732144992131638587970883913741261392702159149560780710772239787201996100242646386719934664518241573761392346324380907922862737460672228621080881600795715933252566934254436103729144057363102081902460702176537257756302808000654881603511194935935151941845752940990570113032237084847937325957847357574746538876631684668816622480875385452713129760004981025683862998374765318165384072441547135392584769661192832852754194092805925928005347375241824740093763777205947656191021722998739027337623533609056882901493152234180851182236539750392920088726186764889904277176383013312562638129944662946591586017739259257104473584661404119745167604423263864903311641944517938807380212592268945876942569801496225218885390598049453412763198568228619859485803485589507814415045224558518157818176273094998564636845100780930996719279181450452532234604254313101917148340236273895279663268072382118124258024342569225025439684326012931954848096166227767199272582202809052684754949806697190210989008625660448443262558138957726334032912237707330989633917798905854372514792339285890577395937442922363630715579731466547317217258078149710841529227813736793163308851981093977312065386853597681830876657530414048853389518361805141865356748229784688603896221690609520173606038659716336052896413662255381507704659615460335621945340538224041817671458833480704291395872869855915870202996743368780117207909216135717798059847999432630265015378023770023483210906024086768319095858378569699302124080160650068496730525418666794927212059264831195444103684465384848190942616833208717615288146349875240749452214028885446693054992949022609944048014473643397161964322769869645101588689275409329050052350140775534892652981593669399822745068606976423415652410783810332071450638340975845974814496065081883102851219500224486950373699817817433769023484847467862502778236400032168282437406195193459805509253932926249197991364472088154156366202882821932590920186309533047406126437307846146128586820020261002449588093893058853922424769100828378681219187810194628103774952481925938167228603082360131593112818064744436583585333476238835676887080556481257558177407776147949411820905374622455142760871282788850755563740305597841354530482442936793277377123682099717375667240365148935933807722591590128939330391605113210384867349804388209678021201780102925762113773946999750582351550460433323225384916193295040389918635075954407246511572012253982499523828584930792696725747596161545654974536623437786708718476634226274243063408065492312035942712959261871927913633609391872263404035972462368729169985189398859601825589766095289152083830381549144149707698932479911869405458098445987607451679437001660229948383155246961848512691776403512234097074325172768212704207361649136232273765881607281806684192166290611566918353708917346031199616461187051618551191534201424335385442453996431531599265086041390144138103186446950172851863919144517596255004438054913888759601568978032121370749133547238655399674769656416727974399762647993871111229359043192974213980899630006266182401495040313293730971587969965038136417925996409617437991801892751037546161146805942014806059247258315518897933715594415183873795150664002502969526894985164079907432404387472850090616386912240976831620120440011266344966665629895869457230340012003936020165057915634214076673895681142289457341650816639116412987501620291171649588466440049658682480144774726356006156643869204379086548817618755089626269214959359653941368756215135312635766465926171570244550730923626929449749036339806167410749293644704093811159422168987914597026242250009051339052160615421631692728970930262561128970042707772871490599603299910705700646786521175049442812308916566896840725361395184232995048078918330508578910084052392346490814873016508514076019273787409846825676316841983311614596714651075725219587351040911079276961450194464845901759731062963097354853477524430552579357521080098236316218917548306945696453970278032383763571740761673039350968642902665032189008966294968172480706116797123049788824102095042092669360213744929091940075080369325495512606907125717553538684222241089725699978442791426804898440041354804802308633618813151858312309145915368134207352842295318142045763208745495646783328673141137475595635839470806302544663802626077209530165369475310634688769869460244002286913353134206939914898715484426789572283145245409124485224747805191286052216529246122127960433822131211274035334130776052762032535937752601228500265044410691767998173299204576873237339880866408086410468351567708237260930696781395782213931402517831122300393008101812449191877958934230799067180072700289219627390553475399341182958400789480626100095263750794819214750575760163977652731053094425250885261504649917051362937287985951551939516413354724968320948581105082883240428516717868946954449071241669202057432619942067358799922738161095787633943650302843354190498690738084233517990567068256900687350264221401369681418291449830252447040680743303255482214719636318053959309195188192526525214644114314557341935338256103102414501205497898757391155865920700772068783463146748875417433076333721813729884738392067070803805519436636977709763570131518868760634958706153772540840087606200156778168306514139357628860515191115276446690559847365078811384146409932797972012015451079820428396170415675325017107639337555216106286218291107801146800259619916136724919007744521726002442289883479158137542254081271745966052492447189415659180287525479542617817832553539364598992594421311763292271009184646358621501817810859904399920643325783731652476843413942125332928933512507629765320107709838198386338315330621668824111491918489782038638090335040116872549912729239785052276843722511170593766144290449088620226147797928938583215365904626388700103928075846604957837023708228445108187074718919860750673395624890087437105191953623443724319768476976382833189816154693802790496588329271380047665192558505043804568553180068626294417138429349464452953912457698493039082380722479709926573838542526418693275766479122317554906849588443533673833595470110952035290750009595583571051048066017171377943172412324111428662478973821112230738795334680007763503223187821619172334079558042771663115077544749213854960640060751560269126166660015782374053398960351517894945539523957873195509455759187318510228778159921381919950606926758855358795931823633745566925804694459638437803487996545700506977179528426744614790527162278494557654158675748275763789628573081745294605993263317358179799771046787433954664310499748957366167877084680526000721711765253923581732762509695311407401597802417820449526697914346409796788423692464937054067354652670799414910628303532701528242362552714069052546171343607320376711893332133076670255523869186697189126883344145348739303139288647473453687690305346020220184552492510319308550456395546184599851881349908601442340831955795839520651001250257388306934328366080010963904623757792948112709260658929049374905760450403905768969461607016696072909855720873595705625931799054802350030294785627275665945433540223759254136643147195256505448549369281554517372670650867253822726510000413201312088350092076207698054585965627479754915770764659063264350454357756337476905989699896709969873623076365711550968203949129531308831613129349268860283936102668201942116647821628713050913014593877505159332047462866163543288137262496274385851758568546970202197000775042011855302144010695682181230035676155314237209347924019075258417348494633292992954910911212157151311768192998901194709557565043798425717794862136666696978408575863160033279055861943845135436336400798939164381492473584879074063831152456528160124106241497976101798142041576151952277414953585207180943863934529728504000626159841705961909771406254795629381880036671224605949782994341203027735130157277651208567157716688628884769776610389082760367309155048980079837858173483068417526852196333244946186783037472611094453097300699616836560074803000134557511326176335235905764615067495812177773838255871089615733681929271129968958605419424430619399464340623676557215389027804414641118098448176062634901197108281782224221344381471395774403927241029493208910181203873096671302955486765398543113269964405416295923907597586309484439166751679015143234479244548828948185047205232360650536060787837459944776921106182429856263566938933453763796453193697787199627722008274978485902173011185799535589870561355990876894122919294375313417165942420202791305473648042119919792294655107868461660677926825128138342308439929079287040851415550467878733402525372698865156719937469419299954656247730291959335060198973753750866407094264309046217086976409596311494031357736404183663558579214627053868080769904426780609799422595731928998714419213352100595474439253824914826951279456723697362381578063135088506312696526759542241194500555749566791056666353358852624269059231523882961271746963894563167231658737543596909640432719619096992960222646427974716179969097202453173272950824680868469779984135946297281926325703300191291274664273191606748622668237180271405853206113659822967826384567043102061406386316386979521828606429930934232820265296765988595028300793775671591454525760694551132696470351864675571610798577031538587663149425228134286082948689276657382134166265543855275069541233141045535307920586433548956594299346641396689432017732866141952983195410991392964052328732770648658259978941989467660226987100076845088556420617896549732930783174582516088725668853094321150939061058948407256185487353708691285912606687302988694157070910063187881115214587085607544753247555335194568753139797985143688402842843239905784210402788884507488962335369050807424644793705948144658293460578014633648197451219282402520087147392223799226748461613029168061554605250831398088659006011981793627841622552670166445531477069210239783982679957651248277750289299352443262666487552324217622287783094106880453513867163224318784366444819073981021340399769283509370515995382578128572296386513995397769790753318931906597297884734676415860862735525294835267051127797205001414046391614556899176812393353583312790903566440738658762299665682533887388971607280330796511704229314498265883414146027228006708412112403813847812751155977739102609453690097358901914301696367518870026414577565670888676789601238509650084028872001535295132728610576504654383011423508698463450428729824848339949832508340352440212745602802670450845719852256318510468697021766090478122468980002947140701489983227607296864569734568902531804371136080749726715111451052366346367684515763874336242716962113759109640128072783987911682779138895311539550833922869286185126919803045642886295394872850722931343042682192435296972354243501433473935522986149631287836960209212715219600063209809558639285129723421671139145290012819913026903165840046946160939598887046231925568463679765440066336529403996624972117660518288305327050721201020319938154944868086364906759114364187802660683603588197733594366102284018220680381891741298854232576085643849596438338331940125932497657442002688432808746574307447812891724660500499852128969600567940292058644285338128014203963092411080116633170582749817795096890137258918423586097089168317789952575038653208363648438454050170921008984582788822667347961582848287673701906372771061569329610138123820103755959174794223835861687468629844738408393062144131658224159721598480585951252742968571929667464098141007520649916820534082824452861311991129753868606367291776796629006791579297183187446425641935614887945143774448976102242675724467127182654162222747796225352210674557633663175974611688629917691657768853274273345859828196930705900700037999455026239109760036999140171471083745042105636793240169086723914559194019373220586806836117692691709238654376176215460924411581780420392738181908802003453286147243691332182052371517928168285125052101480263892482758137169493633685954493045223758140971748302748621207556502929571067713352743245728394760819420207297340829634928380224762176878097456506045173613061752501109922360106809131915264645213961986740591916252554194155590982161456836701544219378645582612721086300011218682950815407253793435906954790119171245336982132227013154488190749964259407356641853217170175883718555250447419413686891451634885916568104060572925854369485547791958502597038979752443747387987876579021199682023858239852125221535768849758879708088370745993623316325805021815535317178095576723765970071061318076979736789002425505296809726139199733312971205982617124213855192972989935097967408056257604960881676945950410339178701518404204095126052352423803584670555523452506059188323325421921145002903602774671398651201043930218581090643366428621679360620842401935894353238647437863020929256007759406185518577298726576666891787105952371950838107321970539140771929916242350048142419181705694043651311298702062951555128367637018968139278694756956307516136926231123908189741194205198531772614561370183020541425898224321463254302297554219518019102476245393957017536532694915618164701423348511606463715740056791211330524412936611292386676938865220330403666943834871427286792680573146333712728246719362912762289449196062270963376033402593933281300598668140493015597533056571750020019199017241602567035517375630919383746478990823939020263915683194673734635556674926559963972423728415441196939722005635164298572030985380589787110640691030823574079483033468650106855918902396850099606941815962658806926203263610136226189120316754139371694585597365232232353454127766230499778413616677171510941852480837212960116616763700778634076642343250434926828578182362713325213431054791119311310687730422862636890683087212452550820249510222559996711333269910521603028103793988717372765734791807798953162361260491967512431327672858668161403830056418305689260596417466732581992613620208411959523748504459453253574437509310379515469505090743635073929969627160899598580822937532684948968134454789978876634936115262582823158427929499839834331501345444321086461393638272419340024900263862590319459726426819150067576644290598049353365661233367831362664835857071527742338713954596760212541861705741705997340494285868414513123087564458500818603272802064788344546232767775645048585475278166415713924552806440117207396271437222526815770147247166223628070363779743288317988685869777154912538582621748568231891668401929007993274479911626047802222526765844917748353358707533353970908479285842673281042700736030442225745452709059486213789867446259596163487795688964102934341336460450857872064977852590515534419957464648527159380486649773463337310322641056663342225310994365018312741434516908029051144888243217845775379390537023606808692533415926565514378072285325351822964994504503531049716604535000378150946418851792161723893913168219836630774266164564273570761896987446731525823062143411498841278598632550646686576648320989383700311610223486548654414500418307095345663418953490200208869221132396598481909340688806308568069047417483735184250937522873967163417639979192039872603620598980513240841725144867371174883019691598372011940353075626248371080930976342904400390631096045392187379090556446961711906703233335060771262165035983830007491553239291828480242143357988064923164060392699755905692684181384922139699996517635587759153282696290350292139049148131872699554548678412949448749951990113593517922196460917193270487876363771349116890595127832779629044119588821936425617183940951311293943123956187452076515487924620960394966622100121826586054825141278673327041667592919075385735574483733814709920524775370522107938272279023205870033533068446222870888391469573899835361587517701522144689550214983466751736671608201460700854018255231564677007151586878608906774660641337857229151370633301510702053611222622836703054871712581682126015837225080401478718732711614153419674105786271488173285897762679427238206329858439976379101738325570216143317144996908273855555633353693719361706243508176988049103188056205883651725364329294728471065202399967995570361880680804808275800028262366547772058520086725189599024977884332751234066060505878568671150563706810546564230944902796990963936081904526947172562535165493236981016446643796094571755320374575224427075042737299284352934079857891587597143241481045820766618202786427816716648212678684613191481842990460377354295784653190485906579909240476318074024240840260222542049454070900871680390325752406982312963043196511759472661352837456145397244287237809756994522448706068923055314237388240365548588843175130020179408623553890726563404115810243364060201470097931839703191425892823209071307877572236359275723723591280003404166153955385257311292029873763904036864999138845883115109595311191031310772211576831127349172298894910224973271746470540319067732686161054741781673395525846083345483462958308207261173884859495212550353275187319774480903755715919007158895742001910152012719302014454814982598134760850972233444909357180360138813124695506594017523698787168077849898838797433360874473012347141601111849657678692570329296476024694650987914005483808837157917453511401689118050814967156205924549241991003895642056228614863308980999756497125656464421716916707928595629767225953823170294858094461856627038315555848070986290862510091496785736575208308145873566050023752916107296905018099998760953270400253047305478336135143117195448566738287061659137047861175914276457911881735167562534810866665275998772017079643684222368632340170322693183971553234124387734371192320254918150085664043656034244001616799017411009933251450339355362860198635589541279260514875304215432449386595460164776260527287063821077218184370671878710998472182405599058232835045935013661822905517109959563955080410590828890344659203452147870125543003892940846681569945560423352144453855961010725163372074508353238162928663954109678099780176292659119698217377830681632875790900842592863969183491257181367365215240251642475110814896173881864522582450427114676236696670443676291102736049970246661971279566848451892866892009891967978426962722346829674636536457799293242148955416039150257313335703425385528632435755496859425475316010955117658809525062098361964450893605691813674621701027764142589943223747868762942179033287907895931926939611880129461268826144433464445267182454080508801729109008780446704382002079765305386325433971140194563760388057517102663379108989833859865956090441656075914711772921659774329346167910212477952449016377531163520778773989229491094562180067979649939687773553913563926605391297507315055594631326624749191885343503345864886195919742789352777430248701473645263989666865987759971499967960558664910972664628891302553340225851320210858707777370540749173246668323060234274041843967709123646202007477089749722747282046968008809282232545028144865127110484086332820991654193688115478252556153319621100183570778131143318216910050672670367461619129215742303805676630724928696971083167442758587974046230431379528599951045858565846521701206688851120754435316153381969800096961192641572688360936405251406913545306375709103359216689902697709162551812758191589162094110095847599328685477419156593623252432037340361188051547002226733916305459171315523078631231655960822674139065984814665778583882466044097246809898185722705781613277178317302898163570071377862306642112264259160838771506681152499051097243271167793388532915995669760466680108422248496769804952661469811757003922870988600888566602568814259013884656286151432778146310058127200316078680803722933727277232717862001253639463835883342027340300179789278401195450445573398481917503323694637937992397401443397279202714492791091460086302435960209136701886923987478884710751060729148157802049692814990614762088200312710021396311478021171049155999023441751371122084080034178645895749617658005339313658104321380772346453383249783572012932969894610912249992161133726995229009408110465070615954533517629832179420566270239824729856379681331070672779949060270876124167208113718093956596626277512331139387837886643723672558400392219233076722160057901959718842559852216285002310692918551873177878111759074604391574428010339565696585158267324709506116376572069151586478958930337971230593866387870099543076283627441839849069469799166937857719606476841131881044764245743789693352674574247905744889145458661915086330041514772392362245173509625288288734083953984184697927278146937232454135193070689087889514330073329097297240279742411581971169002493335205361404029857180424025630178099473524647163987840397578771366090969796479679644160926474487925255886509197156798113299894973777703121130215146726128849861338412787519102201970281290595787655033167655297597033266853182352286919703329892679838851818613241924660932372686235912784754159315464693883018774075556981712298174825456838599441889511474536718713624759376767929540466762580754158653564881660890323747312092196210704275498113592202917430145301714528861534185432290587048051643686809588103314764441990940839324249790052640882837573327654989105918855019862368638675805162741834935813215289462757145214080810643113116069828362331867384629719666700093202613895739124864814184794334219133177117980718719564070348317512581162066194458518007354889806103020537672418242558837632918297958458074456107475723934439872783317515093020007713638015036894439381845690084570730623274313599236719084063557349825137418949719383709468606204095636797438164337437187866194862815906607633009162281697088015927062771472119010852025798280865528934627273704928769190889532207501755305917849263214099229046473083841622146504157103741789630330021659011552222399249794278869260810276150247717313488426637013852183890153249682522215980557733421944292060049418116514511047181453449343650681661254681395369434349086953760982123430923393228080037871621719939317740519124763059581639280058895623316094821707987870112410878564361127272636648577097668600223676943424191402523587837898393901699742556173713150606089847337921653500701492019800844547654735716165362097696961827018416713201768467911816920092137402911063186255443761539388890159456851975709947561910935550710526299578032116332903843430487279759564391851813955032549166104805269983073992038871652509811741333740146560492358379501919247905229638651906962196977640035422371025905563993569039990950554839801289967061237179360862639535806906822901715463815340891718935283739885743445665289926019037949925003731274626866935572505205290923660809672424371171482316053893644939688595675027997650185220479277127614013217500326054407479743258424610914318403110249242617142228800158436832279220055225314470034948903651702889593149387482161060830915213798737360242260279408214451765773167621003778151799947947488515380445018891863301312214471044475787633284418413331350577665075253327511041117374590323992367886010874686565824384562165491596086340901524034141730439141242591035243236223285494416596375816900818899818902032288768200686461703086144396210541978622991509785066394041305535437159614007302895601129136874888678566841019815552336134543778480649845258363177108822893924120829739214972226665602452280127060075311438427886325254411945651298553514748270873385405229014147994527017009461949292347755855495717957487306754855399455065889778383080292762533394165604022798360788607858575050742300047917656791975985689400615031826377344540683490940864741895721554753540871227254444456002920072761458499697008623345802850539219914990382339331339628811460073264821703339840299931054288468601146941703413788888372432368818505090977886149353115939102600257767810678689003318064932585889711428904759052334334716902104422351262870514328640221470664953000950956604760794231286022618009594008443394266838718696428427527292319060855664019397151720761460148362905940394569728722781441477410871944797218395692381955778750659078853410169602307705755984888459741094424891293522877449930626824245873216895218745025653938998981993028243813332932947320403389154361762967472740662581458956379759654391104031045573063919801037490695689715577689261005657202535703322475341554153656078290198428922325212632518753497498652358688654783191529635372958650255569762376108322279672278375984671583640622531107948262091888213687597903725590628366948759220704946564343993262657137168199523624978238049562466978226991482675794867513453161691921432768535629954657774280866954032216973052265746042787050522104663291587779677267094256148988260925798054989749704772849303804797203260559196619514794424571834473241390904986935005221345404875907916699013960989401207658111544341114822811564703294132692270614087114693683865841959363733069609091414966836262766915101757657542140341391204299552081085556395316623091610794962760418909935385921916090539741331472210958672504733079844690149690869936561543266119463560261506463773850776688396307497392822338112903323982384003827880435166017922541760307066972112493613953179474676448528974747011347957361232198000763519324606911059591874767503838823730667640846767092188995174702332592755258600650357507569093975978971542416528503677139130555789500680086425479248288403710335908607706717006773691853417554316225071311529493785238415608510976832692836456075163942478530729772685106088024692175751945365767101549629986957533785209383316777813757744140440676201674224140805876382751736088365067192657277267887097704073740884884935870282767933231460472961323240564247516580566575132417070158809135358731163679391537779077739454302957075933912862597933418070483350295944072890505047493907053946921141668427988403037257576848352036198573402796656677261104808609397997651201533364127239937908669442813280112458248725611041265143785761957322204709197966559333546188300818846930132830476143876519942648908399099779401153816463974670133512436601901899190476411397718807683822999017272651902896701415748288410802873023458156499156628200741178516949396632634364401241085085604280649408512780863557674238517521120999703104337754575969047473369158004966813412817458751314978190105769330961652579497524905231307343083548782294999058298357119181466121684373878865718865896433622979387712477115299888467464301770919252481342291975435441579182343429076899129897785300339314799603649761964339697435736088165683161874438983235009116925543930146771570520899987946136051891798603204498338713288487143760943692009132762044783761861893878906667337093283073022696870450150291845108810388407034626650351301088008832195531696840321179274199581483917428917413963225055539849720002156917857637370036147380540172635040210955082120208676041954123494875215623771065257129942025674539140622139587995999783067704902859257579845383334098380565806771138061505705339217137079094606304024136419260260471100020330189202819069752854648874625715376480293525965729528693957668073589486568734322969546100840069914795281497138056969323731966585139656334885758289514718047249726018820235289993228681370096440125713996569727347807234033337373951035225080042769932117722962534690228952941938934194208519422410395198029126137069887976350796818342929536116324447840397708265184092154677961797947585839641713325458802096411523276359506251019222175626744488596078345947808686324105329859005949137529226400342133587262941549996809169075604644042048949255354172985744259457455484181683587075725635316627557297388207021013389053819499762672729011464753936060155365098192281115646130992197461026861369034566685444392008595267132787916924900231426351723228022018099584079545978330151454070652205074885782756743969976724990762263570486359494627911168900242853996590941460719784072608763383589464479308914969692778096085578840619203115784053086378951111857544410240057454525307367054604225057725954164117503783079435720515047961149370767977256416323339240420794689532033659857841725440191261722565903058635449622959672498101083498978771015915378427840460122528774956208870454447370470695615327129641204662617779900734457730000190897102788291400124347619713463273161364829458355816104198388293024235296346456931292804554564131775984760669422901614662706533300451675372472188971657339351767929949440169193895144622993975257925213330559879451498307534629443313939222478476503706255769847992731591625734822706577914386767079384332164210335196344398250673424863423763194610569311255586811393407780974543362658568538322219581110413002567678335099111084521919739947791016413521867938392180224818513621748702290746389268155514693768146289802377202437074213564392239224836994086802465684049296829821237924148308004612244058469598258231147526255886660250602222141014702384380612230811567463840143487751923759693529394116149038462265368190297691163386696995865548060514113302328800226001596073643112200324438272785096710571640355767852186557593351476440182545464164182292250258612923880971021983447037050698879157247293352670395639470367961915314504195811027289181807911964029463186067773020168186027702047258494446804694317694025165686760047026587652214291314351509018917704511457308426483198899490198787364733992260775336884731815968351804551852214216836933376086754629287998262788656639815689184400671505255933118017117670130708228360220126122960338825504529693366095887107342363557286025363143667518819468230931898144486879963750593251976922978795903144079665945116969716208773086320904707910007290046870009740811870894776765994546255386534932679295780605918992305431256743990562180756303307634966720450612104153307125728526954974298507487528361811963037297528099711698072086572881125283925238320764595045068235194351515856024802763917433552753709136962022797051932091688674947637623631863068928852752036414425186596863420224011808001782412322440814479639654880032283983019677133890048020611103368468600841834417948269520425053972410286181324328889764354045417035842794804597350211114759414164516465888498192963249188350783732027782336866714799035300900003543801446666453639085263656311096452894766596757604445782481531721872643242256080720846258068696421473893776122303706382808324635146391002647199560422297619224134536768550908117933502356027796774115500494506654906978400491144946484469434150902129250175746982378326383667497059320955783571383940396535489754658369025165185946603597942638871469530049805726060738254802857106441457830481648364508322368892864624452155696543927250838488578992787986363004352340601874479253195844684766204831824105628844781580526393336164191401336150620786974200630436203170393537994084543532917060055710374830284007358256847209023065013098208517746187817326716036794189574967387249638497845869351851368989151669893789958204845457006019816593851153621168545734616424306561664952002430716045629116311366965323735384906833623437458466100806278829466995123158033559883341850242325912210820642983941310251221171654915400632650706918929881540862330528588315861327391398019810508314827685850313607784581050158999852931444450430936768978748239552545594385723627404190390520687664839944129476599846168102799068786128976588739589868029933431102548068265766647291770193310047405794574479440780175904978848924470391673944084387429875739457612384192759302654683036258426108044062890411954752298635502757463761406178020253834468451411908201929118105538847750715097607605805244646082165926224998555499629315851843280035770875931384909813003419346247832462755983428511084902490143326007098618251381210461028535732587303738829536601376222325350234707901256926519365041247550740314075068446853179996017365801240701504203270958193916747823994590910297794666895959301558420386628910855564857315861904124849448991573276625718358667227591723037615403943551645696075337835200906124748061397990196932926127561910151868112190755140421796757379214089930902419481698859783729589717500480516679481761816825952523685877370312676172724682971925048615917533033112005840940921005917890966517594848061919198698027091559613401655778966731407786612433905165810676370218948942749217663441394963546123500725755934446790841358197808632894927674100363372575357044945040025887520210550825332888991111151110288679363940708350114210326582398580783377681675488823105195103768806570189828900181968259521894232584108199043592664748797752947443750647610084553625780829730521497905832223197405206366176404931483030272242791875863237532415193321340731922317198745517988888823026809815770404822630653978123811797929312278608310647851714549796582839025973543593911025567428754056775281639293276601821005890838067217206509266191952899949529848600064879902812462571140027262313486403542509417960095250998127643018052101936617869065311947134922641116404563742949152939677622805239954289056503191348105244039100215800797961742918260804568707858776748285157490512144246012012000787080734704860938648733876525030003873493678895066093894944084686693488153158494548199435160243549176660293856845755171321904478586521111912396433216837794085635056885148243230608469331849695002272244348386234033907334324662550350212564854914938078887057885749043830035705847219657852903803027436262669893214244369168284630177637235323510754914358016940443856805394360685641643264526767522046458027277398435045193450742269051809570382726345576632406435934530542168745453379530931687741786688456766894357928385529842169545217329415529607047058886106158557350434562726804048720698055335624958741265168751558356898760840946134711164847788414192916917828551083664843558869098979150263159049129300612952692226675971036715520727282338874935892754704738526261611153051835280648722742324044016011708651492182468124647974157970504968723124549950527806909024931233190274487358225539025625731795125467452946004026207862415402669785436480770422428421427556618397159790568519494006031498006055101625633229102887694469890299507281939447301298644788591302500891514181516598913714707640246142621614189186779473367122514234219578267870221931043479445972680338982373504447661172479934839138338785037611622218593115121232062481420934674332676302001891609927709713821325494490862836739580402879284307048019156970957944849085619937596697117091400074679626314530508873569314215339675580511558318879706817002612344880877995948292288872907863149889978749478482258730338210624121158012739319985930752108338733521675730943918288181826891493618586426748980212578877506323814341942117576917694983617838499155041055537707983893310317363586695167910619222468067543632127774819471032842325923269226683190862173783928751035631528178304843709059766967949914854127790900403393657060050961893709007121097677745543566406104436000203625761743973203070400459924135908179454346870617851101107348996983166002204013925148394479492790269739325783402899630687925739016112781029713183703109577895286471102212886784192106148155413441380039093406926341964944079345586015989117419200673200900541963031881503915529992385140763362119386651617920052473056462538531396245660585635777948792657870268620548550233800962693635408024514900529323381636291181108713246910315398014452486036685589520789380693520019705741393742484591380953042579924506868124792951838149966294784222822845073301658471194889012951012454028271532945426923787395169547559624112416746269624723412464431139787783247842239144528967702085825130747077344393415530278044441647701617647567221515790281088502676063888846919591005085925206617999465848918745019282296825982947242121521049487700079362166696454151299310793235192477470506546414431598741131300010111842017791704322524639079693136268243054766197657519385067592060915594733184864470963620128363707177981879920650649734295188183114582608989256510343969460135022172639499892621372030190467665920798574786471735698351822958444940019013492850638543863141047186397444283880354140463950501226911029757334120043560496831268126892967042079424642625534820015490866221869799363566072741423824773162929796796689260214191691288583520104073515538706886904874366441550378726735713179642051076825019623112769753459286556698747316141156182571635313823800835578978499530008576210090880792287194423714357118296132159617355409110558783802789587623986298665734264255736724822464477189958132962151532711122658130801481026869408043439974698081637813902370949295922011897899506123338410122113649314621648607589707446853375022005925634880118201589486770285597062723810633475178674463886307089624961639017730540432741509197496752691267882753700496733648842500411412223840741685185241825311695599815630290103362302000222794845894326038878892522193976208790078947860132334529067961678876564015900267459627201795268094734180531015849879694020936771010995952409140032411489686288233877694408176858256486732768237957091088568053272310440433502726508882560464445495288819495536814722641453364073157455642668811902816854317053543866010495574398633305723792326695941849390097052108334026107140401281616757792989951072254405223601064335991562771752943345171016077820550887486856013930271112736231210943789684497208986478935999581310350045472600751402932243391178335680858206022826860000902137861925710746955133277626983867424206901445831102700976857257630920831619811420991416949892826520841326840615473916845425912690368445782750058648717821061641294774592660647310629356488132104427290478732602192560275809216849227854912367465304453837611880552494340684960375376754219576666574988490183002034989205199248800287183608604368665774467193659335263329380197161222970720430154323411529621251025874582590992252102337302832334245760054483350566522017765649400338983933765379092947014226942943362954299615164744017530079240863394305637397254002510372319779226939685977650406551288627282418150600282712059943766753382506528526201264200265779001888436059399479460644734007399155363902125387313174146416842174685043398984076357273828861491032418421343454754088457353338508427056733279882683728052602581772857757306011046294438175610317460681160339727352849873756695758567916161028441880189733633672797351266862448130066115763477987281291740555550149218479575602820800194752742112311791002990079423762579458896949051301108553005185504420684583392408636023534135651185382887914924267463360110367034515681062543930954088990117911747087993439624174089221234685870548951694988030398898638295785547957558874523444131068608169527582788301290504084278370412305585547543148500153051406943412570790688038973898892218919996889441763080631567699454396301227974734397486933470175205687069906580859337865962164856486950784323598916437911435053466953544152131199122723370593612059532752480680464228175962974109164051571962016648871705425891024043393897417288977605537234850338529153623633469861720785355628702341134628693048707309743549851093606938365857067252139746887454889621378137376834821458413558256956830396197840858639200337744421546668928886823896599915188704377958058787161481083680283059837352229842820070157045553687279251839262619186797427582856482157834137600374087824635259767649802245000196906910735342067309886043766726014737835960509424951496864740792188911984906080618427646677597456992297250165078604105298907218549523287564110365371498846618258726412096714918070208834286199840126382197839321035197533564877785710845448784012692529048108134005353016182251657341688113658754420549404812535691529683486166189461498924367572896740503376178191153515756112329682725005404382452408223911083793530054416686047786281343719754712151429053041975303138425020697041287666730308340932055583922453727136043949702444528803257455852657000214767508174621384873243657647724851306629642398313491793542657831310971195615491744145741005672370810045395321815522859008055090884061704742627839181863780948602089912991893572926815280798633769780859155871311556919971402752153931105414410739154092630922393087624708801859942681910080064938237282864834298744002642662791888920708753285054478082841423471427323100688818982137523211943113476570335432134611253901738994612861193554612851821661796159706946736545745184510728481248333437422066361470955872842384282033619080452043042261382195499275678870204718935431722735261244546363863690751906767107540659103754577633339185661475142074639264612705885181913120605313519652613749247849370120650348793106184219029615675458355469913896023094480563114385598203088197312002171122601766687791977266373386397241220803319646449397917610976040441284830401144863225181348066427137000596959616387835945454180381701390182778958399559631559133305609963245912613615206291696043292743303534255191092158167498405234546868322588005610269528457637352166258528682589560412920159922184173284384191064009347172313081530191766941488669564100851199189221064704053203783428915226608486301398427237533172006102352931595161573260273890809843991575190079978557879041484322998975126193683008448495101141576490940272292875271038888619697456133203889408069075533858598643374346904621049734195805145210698314547563367474177990569321395599549621096109530973952468391133011088515069199359255585542004527787437680416191239610092373402196028427205699300678095521634086671210850956681031710792379417232030742736042454659708413038603210152588929950632295031572473298825388248221897608928745915990042352510267896086104631867121344937015587795035849209014361238592936154288509636513713243682340430326890184995320054538987830476013067985934669279906290594282674657373307943321830569246800143876647242039341651711588083280137446003280388986109103255822280108144116939413994577728484552868096412919125859544634169487744443592768728090742215712170050962450206671586692748003483013627958909104821147793623778365442143471649194868194861103629383605384991530460623358494630091151331962898816570117792536370319505593844765665608915513785153405017575358697835599570453791721565955587697564039939731551244490462877985817328003101074895403843627680622084957730302515140135081596979777735472106739037249910582014753488440400498633586296052847807535378458289636679908378166136963403230129854829521514895105067173104748701954281131385094650556223832928180467988489263119023534117558923213258962608856454794425375423212068462987769077290933011790876042685447441060264799994277243027587119403411113057842589396669145777185132763261095053237175864468311692817957492848856974710005052551330107990138359962872452401145371784975002372662051052207139009692333950196034861013095254915677314068739782215256591816331381229668072851949071074370483224628741804754903578687821422942728399833203182288641780921898204996379671712299796162391528652642071429147347037965690189622458374958105974141187985707927007844703420244940847335075763300982260240296708895583502884161245214321174759057037359679021801068308798040951875503803699193008038988552253516349716705870549183449613305062736699280848927294908857025828807113253517338096190909845188318232100679279049303273610940682907700297216122362975214585392543591750651319919799778419267482505700880013252411564327536724406982779046923024431856580751554981068674184494071488561257604924893295252012714157613764958249184291339273673522283245364262380569252485614719979840743427574074362213482793019274564511702928631315552506494538041513861096167899847101594125175544951106389433539611159562597831277786567722336443580080585803250930946615354912561393362042053408594412804252069693256051727212475773260957203415476300501284299473452873671471354464946352381186144255151851234838681939393732172095101062546894679791292895494734530784816249226189152647281384404319627414568620484389102238901095354129469382314227469429826492376786112066934175229809385350048092063379090729845219770857915984671263755036824581458130544758211507189662038131003651821390006332497498933286370277862494391057658489395610930215040089553610148882505839636604310332476493261564915858605823841445744742779842536081289469955442665255218404101648454894324418353121166288141352949074361009986027617240933522170857932208382762027318364700137326739167734871182302209731936917800971654993351004017872953244716017674479098005174193058446456143239230601781588727873116655952185750461277823707690946501604040616295919981150114720819286816484899780810249329216971785181229002403929525754622387299391698419861332776599600206294160760165322183625990882362288367166176660876318510597337952440375962941657076765643391463236285693114054534638562822032041723761302758323128264532638977635511786532394439311538085047847597835903361386931779201292225848101514191390663448151773998468222507100850566200193572805367380327124828153175116517204207900317298145119216389002897724622591552291442833541840848933387269671189992696415714498552754766933778186807263778537178359766694513994699522399234813202272693712212331576502589064851404165502987258734475737636016898633192680927112743693096267132031196287244396101487609565396482991030631548432750417181854942094101474306760911386200297564826338126624016003715048206908799002345711876027170754165257773786709876220131957287827223651462405168759581821861284163480971906662820051979441732195042477113434777326428487674888797206147148781791659222433944165420762999636399562148355987754426768959787658802255030100407505149593884925543324440860622496346893625168388774902952717873132175540125783550435584877932084270353687373725717060519458900496967772815862894868370931693581832477321576186071453732962237096369525127489342762115596263329060731454682966295834134460326591160989478026561694836988392887281414241573141587218474621895611628893228532566983811101111038053790002764663876219484504783783364764623055952498119381771105617845299101664056609506231219803584557660032532744107640595574893460635924677154800380704542373215491310403690658435437353872843428683397330143585968384469454718252710808420582847492158870490458594431592992706847198204720502658559367944677107326995706998309809885438656186979524620592161642965504204996799786791835142713363686678551698258520771061489873288645490746577091504801944614391014523286971047129111067103928407565786993858166904720301781535064972508279467480829313175849816992126699121938280584996597227476794166400616768350878725606458246668748866025261126032051472117570400461725712724406762933444822054677627579374639147320889128318057375317623929001513917479895340612372647342665173812659769904085445366394638390114239109755062220177577685889584447275122327076560705722416421925497384548141971144533130880195422328824330110511302870889877972902132763542741455797996182982872886689811353930376662723019408093271195428221423011906842240681420607104157500575837985855793835676706481475056547347568320947560244063403914666796890001357795708012971625602437215050020161524014576649228171857221533308394273609326707887213268908510078123130232994004486735587270835474618023667913656112231187415303304362229108191051651783671403988116167720697379844754981709577286642926977543710321028473947389864158927638511787620223179520489422492712995274634545849796293489638354667265448516666704764730906677599263113365882671391597683721874205309073192848316996912152727349832961972602600844392595365391585769827157551787741480514586078794209675586310108352466077885200420389663096037850048226737634136305575327703143421230205775309902687874001499723321459445858685072188217282901810105142497096132456761546969456067053155712759640708367516759354305526051806367479541615231411078528505579738662800230683599038158107206447309695432908881087527090320823569764531763879272916251793065022173996620795888858583721684358540101442824198367420117992216228303369821662464508103035188124143990449644123350284341511013400532620464930689863981204811836723899578159790117017908210378159721731511350532954494171732972864261433248275185425841246603982964543253649574722516921555063141206608828104012932152880824967154157358477624602999702772195467673217303161501901294794455021573617140318476413396962858851963919606279913836969526923172694501843392564619929105242617959459641816786992075926169326687150121115519458579302859449324076110893753159012749280081064452032397316557203102308488912161997218723881327592659219773201318044563295758203943453519887424413413176732561839533402693474253437728971307022008499562008587133861953263717125223156762645668074782815085837499322182166678268223653426504297286022966930614384879300688018642364203143277534052586282148859953388722113304392492898590434995298145189142246019791627131307916215305885920527795711065350235619537961000179474888998395778662679241335709234333987013727135897607669301954515328917263415081694096136939859550403803329866523619850617345129381581993851490048907733393368857991213703584417096837333895907216724198923096300314255033047698062457241635826529172219164077558684724942920874051504923560428104283135029548567907327333409269822622023326549863513653023895278193784568646119373967235495114489853292744721397690964285521262948720997520788076588327265953344927332886760305517978357482146598367496964430038312130649500484687924447223897620245316660544325805599398995494801133642550411761834509962229707158441206690531337249219338960754263353157690799654714782570361569857631728004459669344103995341752708366928069213098483594885637151516771126195207486076124440401525215721654107872456445622235346852061335047163092510554312472256669645211464293704623008313770408960015278541016275465345251930092909048977109161567393499672003869572842419892353730513331863279897637368044482248336652879463899276763545353454238364896210096289754461655889199413921464493075109937622050710406453421860745219129265245696003021831951248221607742150143322346175049587676224988385537364285984707869656330025743330742703825489738573203565596301959732103032802081926019605699079214141436001250743462775087551003637282963057165756401260194480490632102687063604806130856160091797745412020066334940826618635941508188634849101085449553604641996336266213474073693363662479365111904253173892897719884041428082258028516012752294048851631917571804621734849526684010965350206876733396438426284143680077915592690761302752841362728196173195101702518476400450049020433088680412752380884332258127803186210707106009109449230142382154989953885538215922474296242147524914098918836741120151066778622374903013071784761814656836452923542747490563308398436254322288579926925929947757009172496857048216301191024150347768146897287748886001718030970524078133762469919454595787093023565988789654853275128142825477033762114092430811440101146616101798152061933398379267374054251604316351198616302648040660833347181987894889965332386038109667974213598298016586871556403725359542363277109917891299442983533191726122523917452204145518251330354114262056965543281534271555143227449306681086311788681491130015872951518835132226531321141147431374340875210864251137163050140902383585434246182502530800010276327844062206923049836709110391451727081679104634974041603270612385478226657072811600630671600027306902665585936285435287643438762057872099436086754048410433618988315255297969990632014049937301605229994923860691096045984845065751585629194823685758883934296558198127547484720550244267538301101888263723425931767417005491479188639851692541265933525330491660897822256188522450119900934894335951038332421562866418496832508543771486507862702437922654174161866994461031715076886317549156145948359991573237105805853830020922381761345895853845532881373689553696368797102372182421782222689611404978559269930602820270455015644017144569604027860507274383879866637977793918335076486229207654030985277390589099915787645337747439753607156871304795810336158063626442902519007187417743429602178675925989280748149701584386689133560812853757986257620978158722414939329151664253959207576179800861906428377059797425427512437337058921090078041747498576310935872695818185250136565669962533451296805847502914257514432699685922464007368583230224904750103500221068750974543411987731294632246706328305537383227095846996356092032337559757821923588584021866137612210399722921770946763342155995144319286417900423322073776039123689478152331481790776965518106163682206246903806663496683741514372792947471997265315537954743019110333031296083570558378681832683947768286103174165828054845413825957033798596848444179482814638845151337590420342351555124628816826501445711032298236065857803622197727679816686661350068579319248070764202014682857742573185134512892985988948896074790745216129522833135789833767350200222857950979931941882228680039417645473617800767168735212621430916395168355321010976979414727708503101366472014276325070246357352929946339194507148499036949102676446519485353234592063922151565959468935701814938618697390544251557693533521765831763862057946661098103986952360661478331356585931624111411341442915911204964871122670394213305666564545246385643244263497003253242978690581902410505714726973974639646357158169313873133964217478590161954767238389864453966024544798695887011929309266772596535865830098057683634425721666771932226519930213711561852820811295859845990499549603896474281259231160365509119883554975685545232682120355864863464220277267187096353352040450070693374004485083281628166279694989622825080878761940161654084472834685571417376072762920392869597001160868310781718875904016827609424951030920265752348222677590098590565465292569654826819045296714224480844323378143043532934096493995174381054252642526883600293726878889019768345855893152459604050336345019409493839616131792086747091690793235037122803806125644282881133186711335041889868973034805344410023055151450584945963602588912011573227150019546356949367751526273829830108699835101806966442940309760061322198442653337862521304239617157425873091852327903524600412005890809013557809201489992019300815745329672654903286847849790093353093609452280005185422506898716299152824596864786643418090009918304434242455249619460270326277160731295664148173408847847601227897132048082922776592749299998641841555747204383151361631489271085477060394447573509004033233639899545446951363283668998731287422475870661216344923500273052956157640523763859881209625954549233051128060181107362611238968376235010620459839471545621446282250752364241293590753981394620781057694661358137901233111667761514634371542372888721355606131713935623703019854025162844435463347872125823602448660663974788108439254598836635744382444988002249905085478038244295697806267952318305583785723724461607832820573643434422984103478542335347275578047586497431538862993733509175483738392998348271264008644568403339824754985094452776821135836643538375971017891396887531239127829619436183442195865271459268563806109638120575166831836620137485116765837055304056875548365859647290370742007929829333218875401843996337241050840387245380219298535348012643835128488824028452704010801640229953609395221242317561327785150202709723048858463875174658088903091281223605659191278902835299919915272374901731377676709217169404508119407458719201760833562353237924813654656757398307910228922743531169272883364584164459908657946588047020435702796733696276543782979853229038621807887747207337373610900675200762697783175059992424612518603980681311053010196774052854223923035573936535395125573025885406541755579744354780278156044080047247218768548490178700410203386771726066589350865676473657947861179622932702251768124995242960741220421224245462005714894547911620424468155891735154050894028618803757953953577330776560565373403835666128059851908823409813182292895964501435596241365627570872770552807677045775650496776057841391455641424623236713242535649569355775101273764689216482846092209888801015876163698176946438171392772853589224218316553742217787290512854648318220287353402331006837262188687617622736306018215220652580792459493770261316199128863178903190478556509975932370242656002564122849233967779744524882388056266159076516229118735509339845305746627403536540284751238755525216459551612373719734940317999403961729301377810383756175067129830380024192883506479332163445512842130242067400652984567760969784343956991425784159461640518179832200917220707490277844533582222642410132091426338758402505824896734430487639407392644472197877995258915731784671335303861109647054876275987362962849992586625042521021899689135186847667900846578765262654975498848732409355267820682536465701109220789825876958405166577981909310249785745637857104728947092822046925666987304533130829108753055497512859136260832598277760294655927984325804357132785409307165065622296767562222015734790656437407775684150945446828860346672699750103560232251235888687722688619402270694657203689678531971267039961519632382438923712839221959820351103194906680930734989028453635456172692555698438533490171643247502174886570650009304518335058870909591176974621828972938524390152891259375647588308192868068020360351988232207986308937766430663965863111028004741206621937652365435123321279282920452337321034125300852104466227072000800792405975963342388773368938986056085066543973453974483814501839758178542485646431756562405003466255412381132072586823406197729929737190589581958487972622287900004814401091009280726232892614311919672073112279882879176732153509556402696421063786651151046460859921571185483586203761291739321101697738645627055323363620089174925817973112924714413540962078386143795851627436051414008679714727440928474341507727637390708558676314000866208198222402181711859173493778531415646690034401793916180386961750679097441098897904901829358496908258384912737815765361292879821214957993137767327987618919666303122769107727212443958922940665025706166039207276340308747608669534955635983969975916216759518393125067991264074179400222050583725776487047664277418633555014412207019835004225529548257457006254734935706482972646832778731751687729576602895238342432975681878994875759543039342752127457638640171637968103320564493376496774316669432038765324072230677929735566893102793171054494821706326906404019863027820134402105112843388718068952885787746544944161861136704603669344882954981117235225234950981252892062959538666952304628992421053110771779032705258215898579357437146452359912675446791302308345010214296396438294109816806628902841901952213148675419324244279115900251196691482147216703962031157116658223186642950773988499759828421182373171820420666431533575481408015269366484598994654898603393289198461532110059735321688215404434004525718984668598123515110983810289454634563238963727830969542767402943419440229732602555898422004843716480657202227866565007041190952438626421399893494676093141615864715556800410926474078888386807898873155851542383901227411043774876144243316754548400209232017086954070394546004189692472677123693379316659715749069972344807700136466013171670219641084454874808506338005302713453282320693291776108702233686341567495671576808008529588810593740617958445534428025839558039895365777450077506921961413587872735151419282728932547224797331477503737713672871875642563982109687401074538062047499979568726095453809739258811064922830302103120222734179855487298379490344779673486919472634383740926546815602545321812265344166802939144130146049506182754021365215832515798923563319655809289189939618557402522647041751465538648665135208899813022602769490516462561674964944710762759455324817282408426538491644962603333094177039623790619916431168416632148740594053372367835197049196872573377917193876522087220878655017673462325303088082478683213331202430668463512522697837916038267334283383410139902814471926035522049838033977793406806962587750513322771693576910554930129558962726444291517578453220667825410968633082880910644214106941174469238240223634298417198443388606485762112636392985608360152155488847068299899715747081438914863059907968280880943446261269603670551088731959606720223498168725060308311661928782078710496956245593794509926938223242179225107852230914796974141321449369150709284055297625757642585408060115559492855268209787041146480059980334695004679477109467187592918558158164052324338628978041622325325404582153756390747533457458835546588854995962458054915408642253395190167304621612749372121015378616034359766881257204666374668183927606667476997068819714838338256294076038751035897855156664127911168662262350722359994470711767996067125347321914032940849462518282777103270254096253369257118524544968052914400888704250349131317446237424123704155439239694175302521845013737407095231626970038558919560648406424436522246226083579023687370750802388224638576140931397373955327404320060324695923796389275383317138881300216142802137931003765894025931823726370687433124195884045489723364725146080956565824923749259048174280264456261762811468026707458924422584026897809863643329846478667496111392946198506923147231815847278660471284016553996033932215114481920637859008485833071601499782606692944349430960379729782854724655645796375177418009931733036233094430170168531405395956682686380243411313469746165974421981846727091580286552740721936739776330994543339607295313187454327179181599541644297725182258600325762427119061704055000990278529648046752657121166216220161216829414504239251173216140945856113754940003807792502135459652538427559161582924474535923158091745977343183758319152368140066780716831908615150876041112874415203390817563683277979059050422707238909253660776797415419334521278664026377662000305364735229432396734871896055736149107703790778513648579468259408047709851485260881337680066535365808115808094735164306627701683254553782247461774458619967041093278313244847590021315877770046809301706036426743661898564088271183610617615030436127253079404749242213641627377599313982568040507642528419509949744273438879469784236829718503243287954403229033460361871116692089432739402695262484623569520259345518119045782224387483597810806371718016268257689364867658362930848566961595854280660239577921881544069553959359282630426088092642381193013185715616035382391957874105439175176448392918059739662068929698135793958673647488260116462012479969396336499028774424818411431547180287600398406764669054433693367806897183910127989166885408286878412869669550071330314894695943716085631190927699305574427842825298222400450693055162043102532221410328193541372265508917661422782581498132988831333617496094912729254504722262883072739824959032693473436115433759801624675236384096853342145732720481485081324412834809177473185871063857272008730432255939337276300448210013247276629809629603419008773060679923061920221733023377554864441376153327305676030924983204514187991662167528361732797707564228139321232919650343162751511739817923002544906748424489057188941326777198370753689887322646548743360049134092797001795865724326859601059356695413753763645566560505204752387845497879720771334399026897470926777782757728303292651397500785453460692691040322460962526554600782185189872060664416379159918026001758583051504176441321724728571932642571829516729447607936981347783315675336035812980396480227203120456816287553155197249825752924710678034812871417630373735436183091587743659513163000453654038832466234249892586098883682311843332654492716583333384667880671288598746166857532428770714702124952084555919217666485118417534957201483906739540677607630794511670885689105666226152455581777924222450797060614259731827414163999835346181547457014150193587007974496930291246233301069584235798523999844535253438834317748491477084498507479743959644630228410429671082426391500353104030199770980663078241060784074888659093445389758890415371357992770173489352359490932233828900547725961472201489974358467208820638301556376558005395217332894073157114074564586488154902741309375237827851011956091393365747730169813400728825868604940949832366990958085342873100388975407381492629865408374963996687548120542204961515915131868248245596095553607078815035596780196118712794329153210127593828581121511880022952913915082864374829919393298824019494182945853912294968504509528194285545963787396414992529784326925065321486025761057236873326219698023708412813308979397831848108906450247660596883029129896290718113631232286802882123118034964710404088151340540024437456055698611056149446697155225730691525108761140145359358638789004007961087235579724462264674585246754662736393676181409150007250232458565067323140898677550969474993735223120759041189778295308255653708892544517962875800893211957901537248768670521042222126576961582650819180277214354142826829578046067918304507642840101531045659792060159018959948517184549484332882242236879109488937834345944893910677263480626706413935282843510507324537362886760181828599266230972574038747546710957093666151598427449754869261304071235156482400586794976036512167232056894852173228850566048577199640127288119582779337649242489182527093380017167479829363261918126641010014522725592009612171636305653211231122189869181225324190733276976928454140844623117828780819511517891890354502685278005828345173792874082728449745210402467305222839654299401411501434370193081390126984540665978441177444073501159410965421903116393750814795742679229601560001440399418189287314423367997904551582658850609049714985490734314018671978530025671891270039033022903509091095368834767062983075593715690000541036319610649490095431646330178669022580845418157423099082966723557173557500701555594292510665760672038257936718117970940214789769246520069372991071104601274862665810322762952701193425894869035793224816046243862850265574659216145890069059718035607146305312129840067313808689168050893131110066709535591088212108357998117297022037033908181702696699323323374128118269574105041897270008955648455190723949977345615964278848901283904229450358287086345649691312897053411894566695636150584406421236620708854929595922931943350989784477409854772587376965177348694244698648550762796903978795011925028211497334250253765700583680021080273151395566300435634642693837263463301127210250367550787994241715641032178100687870494426465405715192239171788721632240200737300369381938399689145262653330337475027912367945848789899999511625498692696027338329000500062059672146909187849611194606879493450067410710377660833123265035586222570941020120281091266286487990462077844339331428401743213046191511350150892566524001946756804048973162424870521123297374840623476380615664473815124035332008051954976515861136907385675833321782970260679887368328536045788973295287319121306750613372638432466059455085635371707188962513608010898267336265786455313513758954371311292136021403844228005145738037668992071040060213337724650196946784797790941362885522047546779404899974974715272537109329938440728579342009007428518983188753869745627755567009138143708215817280993155485900446515385788410601618362907883201557127986806120814525536281003120735868954869822592590447246498817627940179479500323072533161726613588801537171650143678459990265399724812548287243356340335519167409683405406336303988650465613625782819733437243397597187970799604207442903858417736357198543412969827707796725861387398902340602913649096093792062166969634623999946876291768071168698399718015599943328371509345214188893544900524167350823936684797345393307110051680276444664359185135531369346612353858127243738064425248758840699717655683403751237150578094276945360039838433445364700652842433130148710983635455043517571704806627367938715589635449228823500604111064025143006422969948097193655364666995683375140197746146417576874175396761916225054533013384127975366181091731496653595631240036954152375809223554990801954649075340490425583732194570545272123688313917388512271619708540647115347110143060066416098811931083470774658445420330162187706852307550506698262452129047976654964104661748415296238942956616237012591118445854141284541524957726959049203494466321109138423227926786084276932089022958695865142485190652730892140965292224625807669739440727758004762485740146372699349161137397047016270345801241275826491564674844436574392912501236541660845879898185384189896534581448686134987991733083321374029196320678152965910387088602118445019073998508046754672102260580269420395011427984357080550060687212669358742838315271969323733465283844090249777311389342255475857713482625163399719463172161236633509983161634780156636379966326473361220346198295199936079473577970660631730565973797285410194352220365918745962241650182955673567699488090735356371179871503030125520498160167389319957486162066485516404464793026204152322379716972926378852448218264338800262119537936253790939129712434747890010193444610295339828275009176828957532726415347800848049736087427953072224949320357018223297481105832998980568011606048016627824826529104562350275701937258074423555244749175373511076573220983822383339593288959217973856716789932282248161637587056516385115882266725419728459416604287553899791562663129468676793165112017803955304095060910297893250635654807610190207972346480438521357455098404112685813731867139914260105584258205468712915382442022913557163672547233494467781974982213657902876329009204647528379903610873760761684113253062862575879108954745548592101478115069145397844807363148239408552188040839716202620624259139440053029485916127329622466807847087278192866196997615331845673881101179906775689519685295206571186161410107510930882821986285524362236639048381747780158188321082856276278615438018116568813982495588417098734887559987412481621946181323729350010416363995830012621298373497288524104437236311493955670658541146054845445772874332301224955098778221488246996756836616206142581829536792270021641529536841751674689853674654464205943404641913043822116945148344979168215146254490816036071297442872246147855744723458114841092808302311513795203168058624321847136857006607629748180029567600765122157812577247131965172264248336992145504057364399014701649524102788590543638427190919469277391663909361592829135743102719879120470039397713246867984255422334345628350705136569637109669185169933555947493582114810892590062953381828109783107337598918434339032819995559121562326828477598623715676808699181038650406346827136705168198033995779031485839105722970158471012961239307423096869206992397540876725862784340977901721292331046471872812257120822799998055924040977027990508824749113341774094665989502207532377913909982041875421811998249193576385006704797158822418479689327530200950886594300391560416869533030332483968425363950515578964095848927704344282407294514772354722792820988131680459410457286534879115112904576442418900717101436023374172729092085742040057571923676563805410778388837496589152414848626817246203564869719317643238023394165066316998722547280295648944024769638889133964954263321995939826715148580968849979677500550724358032051655272397674555980481725010673231959234204095736748691169666243967641601808648138345046488575083430357261954259179985386463028735170016259443552802854287799220775536540107833268491727292511260039803446494218900698513440012178954814398735656834527968020598340132735239661692502871444893388572290618235662576000573250125252820496380392961731457645638970544952431580564460179720386837683404039197177083745995936073108213075514446888262964385369225219780353387959258432439593011202878311085884478340361840491798672961166388339942059055406949619114779844644522347054350025971721453165675434954772356034817373692646339891608129412279121952644172970588133469251554248424237483509087373698594006444436960489294114829604505712858124630941501063965721551491550980842326202443475395023083361671185731100986197337974524561147493715055250038181007970703908804086763457320682514215903751642588867251276031976869901878829926620985146151766190361561749158889083024865044218105663296478427339022196534278974881945555914194618435156161069934822982692406054539396732898133976800832892707957025135659447511438152376963336816404221914036825508085051302570130122091406855467183942791167353683138399827633869537951542743578175788826710759243931212816886372833355201824088544799999464680856771300785404011431703443938659288860299871368936011325743531878944910120495991714143229378154126393612699068795120741676797569693765129916523570231592231844481508359345458940009362505473946116100740186382630088982841040755461878364798956730311003410613038559389412717705625595320079442163070935073465864416461405910724391790101002587282573191530557703442566326668736717959544821431397543091661757814329424082284974419638638799724945508126617904806015626905727108733319517843632989859930968321615931823425519381052288078161194248037261604253405253184029169353064628684033078614834907264699715463101026338598265815877123487208966767918885599857410465958574138950273573637881744445017673896829520865707388828218524299509820924660151428943563588912222393808520017764347440089974948472629491337703725929096466840339484040542533781805314330665416797504029187212156372461230199429599770175457542827766301711997178859960694266076113561396544201632475980275637917239974279400359676138179403260529814974282219475293258412693253062845428180048639713133059696645446429460504945508309381581750255848798392591596918789677251623684136448012972427121589701284078875431938938567593727181245556271910024585427195822063080217705365766588176311400007076199495666022303096828975222767304125683410620507318181785749982749457163689680786928536970483647009169899216029310376559027647882113399007504746489474921324447357896139124756997210425112400535940495340563410718071200635282655686793658882602851680221333239805592046309709620298901447122523111921161443569649549969853937308309629984993740408897049677434428537637212433894117424525932204114303846337802972441324982946771062126969473648918039239667989851927789332527883895559815153522027540118456685301233271283875885137955659463907620498240466415430839704169297761980461846098141603957612026482758413114355315180608009237400214943330486516220880543080652992314554796297850274511298787134048380235483849362731690200999168128213126212734490848130040202887158954330795963822831328130337113547280809199405542169094994251029023383986715426828661544051675875645313556557821237794387549303458862528081806936733455902361621966689101363694044671518658660000935259044277214685826020583719905401812305910959098285325412185353094949475324404576132916542523184798226871380293173161464267994968790236117751736791526877976474189724291950506742140193101440545657361532287807541796614246516877397382406228874214656365633311077590692063060221319740774107497193442742944519124854614971940869618282573076713080716168889903464001770394800215360440434869158987640125941337231145057598998175861898796551070287938892207498031105333228388149764119613473688732525996752796303978558910865024237467765840959898963548411203328477426601207946185795955953505791323358283301393253959978990137883640500270379219079305061346710928151065285001621848456547391269804103215993965489435843976917840119655497367634016413127588340463861960830590537664794063853121097889569276832661374911435913850346428506953373679660426767598890562202906675757014385167730135892991441634361224770581926582351228165373026681149199982348428408924398035406662685715318193501247549752106271232437259282357546258867127353135044090223923562734758990493849025101782017461193133697927500886444651797275771806228381894569448059873926331432145853925777099529846028236705970170190085031084140167987865952528762941392453258096193088866674044936304452227857133752270931386114511487194810529572495974231546660771818343559777732640720439957902365719322360620265618064988223863123403375451512729205555673974598824746996218700343094531795187375481846009063577091746200758592250379647555873305297110148464748188148398830793717481365347385507226914202696719164003324611526237949360794594175537643113600761930763140528784440250333357814439039898656231434558665682333697722284310410163404285318236611986568764446988245670060512280458711939140090461675919808899241038006842949278749437704349376976840666937676962263547922689581824712888559108473408227718466972076980151492844205626858941896174624712030835870011061219456131185487979721993871939331048048270156311468003470370173994687187181669624290086585839292145485568662816767652858146932600247634937043588831806434448976653712779765432753547599433558384329452222816058408998002429203426059238755782245212865651446293015816299653875553596569209371306227585545688790504357399927449610580689220960932973503694325002189983416166668957582560277876771970850737107083019620597509444460286394447241533556938368229436998533017859794588864911424372565962375114729129548454224634614621898377631800281677255176903515674196698044778576977279003122625770399015223828106814741351830559392253491277815121842751326784880166488931104571325825657621398006181127917718225022567091817770339252350754116899899982875984311878639712629138344165073049860740467014232456332930602906331150981395240182185178180956739213033594299532276550818879465098669290372058294481617150746377459160873934248215261918536091361697027393194947847349742794383890409143068069524973758209640238650849102433951997913233302667157961292809496395169213253532260042239956778369183705350100046466434132836136186842284575169453331966871365141617104822428236816930664709555073846643199774152547329046236288232367017364722856163290172922872601240198745944263320641348493935565366857378923801559385728964343840285110703204823230933050486493252341794719972217321849673816478201492791317259810392977159108897837668455489305467374442957919072951096448470587064014251930783516335377589248738562850939210269019062230572850817589812849627306862174229179975913758797126089747560637609745959439822337258721402571004720730354490637763700116730266200342901691499236565663473601848740808872844944390510933599595517328348946339313678164154739638130659095951862585218601259227475584363866600756252920136000266601869119047181600931379595447980745877300737592298312636400722953494156771712422786186183846667443318211536084530332822391546879633706514264391600133818035276352874573842287058458789340244475699216597141043654133440561558554496013988335982031842535242372850678587973885675564452776775038194878050060853520148736427989926775928299878095052958526432227647143651230107026105174873197108741148408440497637369363300290359601361005440045094537546725210134810078289966964769332067855916384785556264903880235752935974729304385246549007255242154241703381890322806576052026087870719042398426234301611098200655035495518786271383347456792715864282078641597289770085736756966381529061481602245522302147871558476592091555151992900749558446219594153056087780735714929389380798827490843331272085377369821726251953418570002658680460601467186780148207363171496769638386947427682226923755738818734888578598575801086653791724710759722533655939932424791433137385106664184811987258121667978620580572045743291763219933257956441905616806156421239895331177804645186973568710670374131569428982628917562749907123699091582570240978505501649893267878693301489280147979276179361446482989509009771760096215110459083724742539623172506555876012339598574973964676529501308845629844931294001681800763925309859035723465164599090401717298020972390548218040096543829641698385932662276156148731468415753471347202091584292381865465610054311477941972314578890623909173566776905392712543419710874697870141230578385112449668743553725818949690291004984175969435632893652867043660812785880993582158057727632615156535345976692870123198236050400029059635810186649654277550982575490998449908517973709175358080228750241273693218372961991987878191702332794427051026932814306962963143272764557683908073180195736900365504109241247182884250281205198431234793486808971940893309462285169746208054515983554162940633399444917646857010824198588156334104406768761178949324469298274933281707109056651449575566271350236824665493433612851928107161391376652211232555609259144130214497954169067176320455171911781150728112905693083471314965830389210161651638068270399699805602937432007838383432563926652113588401365550777520319447686154122785151211271723885981559439449009276478120883217936453720103922495601041540637647706408219904275445480903057384111174480548955881407033511240139844017008187809589339440061797383697083654903875856159896205815008350041636330480970712933399633403998775961982501469772663939049912303145225014221696296870173328758254742131133151144623966147257770562020047998119470888532180644429489605741597556084096789941142300685939255987942285086216421654241765372873812933561005636690397551911209644915229863546302102229804688544765404114570915570621228527244929779032680679369482935889978827545903355458858039205182602593632486568512161766704327628158144305845427042815790807290132083659561619957892356947053107642858105042968457992313614653512918558541982695295748520197563122291180531668316062210684782256696682366902204412237232753847428766180274851461902765946348397610758144535135611502454305621382227428570385917641119933696167162976109015729564400177947789485929629907344394188330460195179352251289259383865075080489408594025017084548091302168439553313011902886011306576688801745277300737870288604352128310744166445210575002806848249454502289832378727429810964138666427869403227809273091486128549337301855380316984108073510344773654562550853210072512183291307798008831743122758822906615622156160871582486873724130822126629097881894492536245504494190643074570931324383432568406076784365926430378284709939798862280459724809136389152031833434338056935861707354250156333437317423188504705213736669808390274740579277874388758404534371585346596482769679097422788740103834827489480649611122043947905305233334600309929053388132264109989083725265485203055540975421408594449289710340044789950985529442776310115729803802006166709116449047332349198195892766085737950530161691252395664046690729610598789957254216143855502613969438914201818172456921310291857319008405154346570424496027740023163619845223753557327037010945625979158276196702662249387552748777024693516836482687767897174909235204105646904874033958520308956364911433976113501158049030513080141602755521326030808360014347210242186533810165553323683948431634675597718572145067301963531779510950169412550409574098017779035831571763305786501648652248558060529702616722784810768937536213837196604957265610622562818422909999468414645472509732339027862708394845036102259723298024411100581730509454434579588552639206381857648762245703432106426868324233724910298127336659215170559911114550570109273159618967143564919638271809451943870545969968198185471093313038620498845808749330553537464430910014905589071219580037276771953036966716591595653619382979353101275909404036773465515503464012609564497470272195388758899767571510898567438756979398909292734743041504231111517920404228689618863791521130890806543432935394844552334519840570794702332039689399595253250025387310551122181806548216580669073250924441564887668709330634599264487688018455304991358117910939763587327312823748196983195082929239593492092564819867338545622574854640004400228798243593575062431516508554011835189454683711071086492381260860827528040006778702922188355430002746925192350717627378672307047525150896499379069430570712479673407994082217551363310529005963405594706184361430579991218737413629404616851603302716314999443624152629415951318748889538448222719066387383072092231404833324825434236895484554579903140311099732289868426956040302275774062617442854390246763904442914094880576605947897187241756758869074681867887441233969483486485553330570252431097762014138880859275501599339812638419206882768985827230274543967949332209761338202639254535530645932191669891844671775038471347677260201368593308644938737047660152487378087362333568723812843176558938137401471873527304568376372602323418092468107387102949657648750309112711912734542981203082988879875534606200426613510555291803159049183468537550843764401213483637928652875729621312033226127444095498509550377739671153294301972113032654183579693120822325669097398590591517522635016686091026359550864268303035869961014488060477407090821838070863150488375291030291860317950909616071346080962988005152564373490452124636489639884598532032467959416439772390858237494084894130905734953233625269948841754940071871728403649351870162162238773372959507292603357658973208151936434730892507056780745503311202261984991683981380384327854582672983566565939422203449850976286012651847206128813518580257718303622255981815566429274763980216016436082421898395833932713832245654312534336902688817908131052129709557836142701248159184178909433037890399410041962382706110381459283425721084112050704648513669432389227034970135789206374818787591514031531846282712706425813919803241226526997598259307981564400512604815686193842389793154948087639851087529137172113535319848526640312268105550847212134271184149385256466346780774268173116197382247989399453225778166301016912342117876022635786862659571106069562553900806035633802466404419769503817295407297664989954300838087818289983641561439813783317873603921884300976701117954563854281422323554115312264063546460380589081145961325297353884961999718991461370508298163883672275376147988988174554853399048036579058049332766658523476172416665636358082655396722722213810922263248689118848402447932904937703901958845992086600177836949978147954790504759725412264967736507868941256948937457688936216951501498837669819119404355567951567300683691422929071918454521495949622509675379300698989084995727228668329206832554773133185028848148543558714813649540477864257734046005346833788711845827683621467313273818899233150471217916775734045420244042878428525982942579916876934979724193491240004523799675609836486495876784698663927806874892582221796350513295538065176639034111016813772726635497100932274161359852521942671797152979306840756863160705528509791562083140209525721289019047597193727377566326604885484759315505447694239904944259041121677800225788803288510528674978638011052084084028678176067399322519358666633578145524284691357596502083132775026365139429471516838939482778163792847027201144953875298527530719762732842208615655761335116269197415555093341874566247407717857728299163480677404026875030775655489441730468082967226388659339703472500156242033752873197285721562216682517613091164336319380140367780632976098778349060675846924124239836148230069766195693411798248903853501988326201389732355528900479857880870748333857699565320268262683500729911946301369873729613742763241267134731296961461965029270356251789492153617181021483311821902810462076639747984934657193230769984245298656007808664745435299062526138919649088500324057924011161977566500639786209764031698351921826588528633644882696819549752960680494587686503061368936899292136568664647762623137847402009205402632704197635947749584634198680837434860194969818039618754696241263778962037238356799750309727891798121498923711225878160904432664649435363031071169837595996028847497994408613552574196602012475516209539837510662156878147944412081095197544170190919396955766097479523889105677427961653074665447036159862085438595571131718296435954942457708719744570830663294385396216541923265401836356391422766105037400756382350709347424090633677070456250687276260148717150245586297864191019873319248965880998575913147330105801527136676324475675868067015289383810903628906545530512955846188173739705758614526744056320299709296167117386539626862259268491334975093272115784179571470812724916538201245550253163158433579308635507738348900869234837983847075837878323642731913051672670285846502946105250466700881337750055351381142615004008312246988601143343494184986603078236736612705811967773740460328563186428778688134719955716758449830956099619345352905984901792305817685796766595647995961693666638883045844393594839409445076801158432331427060148538680830951120106705726837977398447934103480647187931690709587809843426152645099323731008883226972985612011293998718055892333871304157484353412368509603179475507151634232049431400628104430416511722308833060412968101556089640423110871824841359073907040137903340644541792624180478791106636831863544369064757194383710402245401218797276005451621714906968528048972892248827418393058452711407079410552914356035441722222767590964673645458055748876405508121464860611529704589705203290514175761748605713034774526311697061477759899280656330363135933844257821077588322797985153109126972023230002452473270193157929706311618313134926424599889786539046541921078172243287597586123340290148276225271019390330836419812173819838996670529742861391101088017324840767490242723074624356309093238856386977584862793886996872337359051960167546924131066875342834836285879159119255346879664587446419413731562750191833798625370945901481807731987359272129012972183565286091962321190007483724388261916302384426978226432092653489296007209347642764621833301423613868001648735918412927830519638763222609466835727739601653846683614213878344946628585768308834346715824268813994515674159841710492931642279216864788669487476963749879368018615820056738744780834867398074802835264900360186195949096285996678842524314238803672567005296933017755431719383730349003822222012828477640888041156461044789314223559318493282278294637641372190418264957950654220677624695939711416765631990950248355266749450372757099562707427774402542463657471395556897216593604906073652882671559001504249179074168173724863482458331391845929893016765138575608769358124586905213534316843397419995973334580130436624993214934430592485488632364277978090867963955538657826663250468894254883184851733789503571239197456414898338803984083155024866097278567539249575722991290088494577091412847080656120306710830389237985218516581062148667074984757709406565900480672789648321660393215337999948366497437848136385095336273732532174014561158985592603040607401663238395920199414211329272533432698886206148124928243497598985628655310093742819355377641598632753194165040235613442369883526603806813053614511470294201095642755664976267418028993631971806905706183528608500378235980372447816622950917644791727789812094518488929217569669278079875821775398962279252543012082368446819260800820437781013930732176339885882660677712251686280309486987505027776776773245860694176388596145166770352106040060808623290084402928202825171966237742531020875223549266253138638852378875029173661611242629161462181015876912621243319269784325014925488599909567970015997777830668180018711582433194778457327773927698346096466336762757023507403638117271738519155165353279319105273766760571115198331440724063823437808735504170578080511041948258278381887359906825224000054832560187185421329376910684159109948005662577045499239600502670660682662860579564941410268660616481010228184615315166277298977965128705003521707638721652586867070447210458035429345261693073204597615809186556023453693681504894487068539663025002572434716207993877093462982245954992810546767118050606718470825948784431484047555475295428038220007670823188930280591717073419256232151937783413599688291440991385535009670488457465222859302782166906448325750574257879737325131584272687743120306599237350556857391462478199562135532573657226353081768888003830234507634412012906295720114550942242498687882312950346893700244922311916125411064498041237726965637461416013294049842922645265917399824592317344286100274522217094138402052437178474466649621277567748715350145338368755800270262079463107615164573539944974600125334028689699624837088714500228487944048471723442433931639710145828895112087521618585121102425919248525037942311692125511665339032502677376241820084938775914301181022625105168422149472408042501423484305183847564157303722475810996623869857797548420611371402401850484175016765871639195327120161925284978981588782175214383603727609923684709555950921926493681427780037265220548544705666260313408970659604348819355776777926246991354788042866193885620853444759451170009973194980237858063604429233536677019776052055191499319092161250676822674856278239491818528446262678212814062698966683549226399688791595368247245066536685353397478888447674779548544072674281750910984823797986831086775738247607439918085136677823781448845746261156619367692286474834818001951430807574323473159377541379332517324057459980657009892864968219608625047118244522073781475412900670318668995572520151881206229583232292523285869821743632815378993443092476727954188148749773729368185024556370855830445178666792180578308157290057458533778314574537084349362693864388314232969717681729211248760270812597008603798880155649589706052442741508691216572833848530493638004374133841327314803708185295080700873042206753178932637020349671199119044274080730246397606759643822020675403767815178045936989264859105822803253819927492998653457599935394004954420261870371015048311160618703600406535720518362976452072612288870234639138904510319809972700403661597466510753335061297689693550437358145227301580548787794574299608581974239732912271406925612808426537917886796513003248918211795181535091872789838223977285078338301712215429987330941056679525638898858369080940005507808208439715760652073520780576783205049464928196746085995886685401922197137471379981024978410594697350347340426828021065823272996756456124454628921449799125939593064785637434492603063512105203247100006604049272067259348913972986924171292524261491845312558497349769290754209098097666879393303301851600256068241806801637737244675239877392746035993257514785068507742136978766947216974117330894822674635407635049648271665929142755306668580775737920343809056519711284163515097328573372360107603009283515522063517287045029464773943425538375500398982393569843274760805297221231939113640559327319301972176686560483626421243984284533870690634479412165301512825971302283110803303766741246425848465420560779519909320159019020417604320530476596444519155654338517242775611377653767096156150960446228335878197534682026378268551236917971097435680357829240253871133517239628505681610338366279045504960131389146272821967900570812314404956086110868266115599253821798000873139057167434355736453272161139077061469827263715568589836421957668865564207524434222530716782831187053212908675145693543448112773796389323326078006034316866843755415033312466903380518862983988331397811758276287978850286671701468633136393762646133636908028788674820149805294481719996525086407306300847030809651720109537605761433252583392637501881702577716517765169074950784832429620732206399355697221815774307761373333357588222417429533970934051212998256734614352342608936801169610846430026201552328337709221019221444126707462275401340093120697572383268478420906436176941591618957187482890276931676582819712125228218804854700493799170253921533397410458983497926904124060119124480005951468045012237567718090911203158097609634791483783112788599056135565277811901801151293539981747246684078374057871210297582858320632505774928744996184347259895155062239677500712724334258186111920029246735117936736551458906500668042818339619619299605447327103811146476957784206671516573892908465155939864297284925794168706341536288655154995346416176865704444802712404094264461475591342914537621829297878284128706923935322978067194829958173658353230480281986644084758999760541356927131101260348287115837971341883192156530294170626048281644826890745864336292033574423316482987563987647925415572004994391395852016579998536081745650761905040697730757109419415009132058625104501390328389606614436326928322486969325906256895354944264573964033201213700852962199987559012040926154038924142494727375897617724692019232818623445993233029123075258091492776003850605027870149308008223752802803249467592095663565543504256659861466198115328927778174779925862044730665176195498379082601260911911987542864262748951343091300161174151452721964846426443350551562229730626864875142432300201611617157813750305424756981424813218760516048786775262373079277837090172278483902355129223562360444553829205880215464044554225775715345799681022004856218083006633316982516766761754675038308871768318584621199596154547584284449432264406566429492947595874866373088671885674396861215880305642056186964665225633553189794352067038583493862301707605184872919592769799573416045068623980446043360327019716191064408816930664153681670968590655768417078018954761085420930469752115775171975867248051482606630214317650532390965129149373988938917226353240032963205806083073669711629745330670986511902754727316910399929115226097910124903980956628532825889621044626090215825379676512808635598997492921277871699616239272222495841529286890510882464068658526857231649083211834172658723339747377279222686246976963744136028368992773638641428233843809424805452611093373246588093369691043752646085019525209577152847278734186930428376848550531785516980272241041776020361004296946923388209256578292295452801817372302788551955728466000817942776854542745558869052680855998310939881627060744743664225786391184534023050089004792787606856545849793356512768353330187679830796217427634215104803134741329856491136446416787115286317140095116238052061966484373307277321096839974791953309567039434634165001749625137709609034662789354680841599938939715940739772046705250496599874994429133081988454947411883148261102373748832688490474599789489334180815870911872850574089401053412319591528583448734746649892846783450411231100443920525089610510870649154443729944753440367819871385386867232295287565345635339837027412792835463758867541179187559531449094809939669377304960063902308925139129109569409387100912958736459640571340360920655744347761361661968057202201023272703628808907163930427904614303429374238433177737308154512845796672486414197275191965266448125616124121946853825175769833889115198664374588457659203893955526755851961867834737479367324722772295935544297649446403576037795767559630066862189940364372843563332881583163448877694125126023647990000431059945083045122637116471459872177077107380599397477630916601498404659572819286070288983904061930313654783055150794910485605526484785456402008191597000230916963656439184556729815184552598914547691714653796191676513577253497278593475508913138733291931280870132788760753751304797365049242498579312191126732874140172636810264063438840681589188160961049791009113226477005099430147126453531202243311981333477265794676347495435995532643168267936692026751978941668846534073784806541353255187064251149303610421000804195841637918535747198842023426794921966564915572346137177896270479465565138487583467768216617655334020976223995391290685514248947523924155117010571316630889871282042462944555446645099455724065517066914115284997369515580153562011102984483745239985880147537839377911579715140156201067162516861594646255156627932129174430283972717456171622398492928940313927153605430854407685838358155276873134889272839057579168765434688998106488157999410128207823735852934699142744170572608684071824086394540544147856174148464224149672592845389416581947543767472612736314867368698561270999315640358670247551357975454504216267459666171409457140932566311955205881789550179217878731706177821977465468597270352038944438568663339732217008700240289506124422856820393278962041918053315696857587287201381791432973267899680995601549359115108250045503436582797472347971661968751391505537707521644044980710090493462477680465560901781070462425022226912387674801497888185119185137217048730330465551514378459970484346028202236884132571098052033353937947534815739780721466153109330220804456892134380152393514903246652163711485360677528122824896353465168185520365936021451662881701187442321136222295411704844672962647913708135628934981695573797103936207984138127161690293277641872410173964196595697833417223720884917808472893025725050109216053862201838790030380185423529272774454462623989392060973205685353877537803396836034145439656283458901889772996477550781478737201137623499966313857993393957588979125528469947492636397934121266880532696588563920784343972656425110689793001426701797946908631613232911375965791111191226427365312149378729959568866910631737101031006045714141127872954055080577416953565520001433408531848027196439443408741472514143754530351266188631721867755654055647637466233732941150703851452782971165732878362003123841854684413081642304910318474905881920209468354490676477034105655235316096326861680815792241724277262459708016349665281916659685165609400745585003027074111342337628882199667211167735495654647650800238528048078612099070535729753488666249395415929698851160572473447034221561070133070045445965782715033974765145161874872649730741697903248450006831924473351157582461316247116290211177689129015847246366513542869268570034675740578758948761070669472315905070093758602694350684891792759732493305677755258277182315238601950229555536660916428401968016157829354723871402532231822036912854700119923511221989369056895588232676645744720723858039303906823243797148284199887234249689386096002287216215054802460852432311974825158398657805303032424860812487941182307307730391288282048498124819496411871373151775594340755348507389489624711067021883882100065416585926451899287137360123414133652088704386985466470392513745006554512758661830632264097806120607976310936646990670177062295624089587417711032826588968700427060829630688900951141041566091241025139170464453934693270593210101894438026937913229379968811383212835907840825900775067046457024997636459644659042385853999587490983227985725121412598344929186981084282843104762239161677403703638666573473136757515179363521693448515903578099426911000382012515881574875793903256836188028784927565195659751779482085475779585598942243681669427695803243669223856030712888341725313984735778335292324752989909748418822062134587271568240733837454307440683170309188649284170541722300634061175241227618996253267808223300029374356962584219903220476982656607167015025744565764302555819287832467884346755282545390218241740824486734600743568443119670453632200975937207138653326188046946165151035840035795714365451470074010577900565968024826301721568000046521048338047721827979478822484663706178831049678575246737294623120348867174847312431527628319777203266356738049012084185118696826161022796904288192077071515143337129578406447579764249149767262375773478937631733552028737519645738070489378957610068449062493042353836145310274373589392800711340102619768447576473285644021749598614266408747775074453583503787318225034820415466145105724225592312617318350570235791138270411242008934515276136907449470379587092007759300071871087819514155910825009440124164276411530608315983971817416905050411267647178758023206755280908591915731657955284749179146399556605649471577906825704180809341933311340446694583699809295354415250925328345364076214291524797212947637539894181624677430628761506765590221983568631977747972537540861670083405204911008187173826904740310849152262351725257402378109633520392341682337443134061681610372514424150092399944274944417074640703691827735280092324885913739579353916748195160333807025614000105552809150056260783477063179463227702815555787064834519438573325987725305070389094251516508892733881544509007136488680711354676702724167453204548032699216621950809351908499391782071144618781919918984031428316281633341792085225052851701381206530664686852295456627175146639918783291928909363835962852818153896358605822969986041947553063956379746753562679533168237701070887887617669623865023625033631330985754035541552919927124017760270857259959781024556477701171842921696240368336799024442423041155215240982969152312797487406867370882801659577684720650591859845710860386957605367312375844894958683137034079745942187852868691410940092682858158388457812157784142410196210712663805965915872029458821188123744016486462847092034393047034227202906070448502583234455177147704960459427134771456553230321018383700025652193099844756346534539132436880742759807367685614788099658004849273219404366351231754044360547959948802727961171952258629710025611955934069114869500621600911902298779051756780993123755577683596859004980063838881597123121570168396490648911440721479731478411226662697114180772835339610143995511999273406433065981544494244856881848048295881681369759663100035788457499993182804191304183435146800889091501750157427877474798584936103485288437474498735250449103161161986623918120922598521336255906195997587173090658902435790325300472492926980988077824498859706218005488531857886841918454794684579975384226811468472164786806441131499810422211782089139358600474176539332791589456417404347760912403318622170346770360007966963790321802879036494492979293872034643842686989438517800873581754983488616973698432818894814873596631773220255302247135678325771483211722651231511042875214193920037884224326577601563914209313855879519718911071609063109419238024828669535769803646170397637674156641058465902527377638912620636667387691556396696813049570979960757675314383332269326828693330226875280255198877476961650639485238611934088938749072212459032801310245354962001844880063605555928124855784730985634037276048133254728598010712144853785738296269680601437858939947958167886775352980607756204279812180917348512940540036217403571688076857362880344412754528503459614748716675196087755671481498709180385349098512783252654891376616675752713456119391892766957098460081782634897053965314819986346859425731092330660356436731311386520873780112885788437936011381910058147047448609979458312092764836481393168573283625135423366396762828770239895551854515737667406260564621268182447104342503745172431588328919119171886843980830086886152519118621210259217954835497979477685558993479957379902905097577809980817994113074146279508076902126452472273986073862499887138153372668828631569092530683614218730542219209871464204861770065165832619507495127535422146470268326328769513675688040298365505663767486049990932711479388583833530190312828305374063978443284684449931757174711510794367633989818576268154593442098568218846561732971271640495781638764682837498295137954172193193515476524751467559748386158986074605980339704451503586721818075896012114266955335135870987096633564915689224654918011346264053356332800500492664219832483729259050574439735046371507090427359243112516944413627773905886942029934203650133229191300408645913547532098790980757126056861488783529957960966752984272991465686833947137828261464699640786431455241862181593258241077786173581847254106521996110661375474923761594397728730869141077806894236605691706161863568367531865576670174620693290600478152206623936294906821020518239925498362798675914702477326525555166570625047108302846278815627167329988803713073143259834400441119732218046084715350256957925829814875617440957628295617475055107443439054369030327009766703798791908963272191990486583823331571576547658140694034759795683572027114872459565477760259575979991725590930347366223827816433554349862691934878585531201665505638859861622397768518778687648763000007476463280155576206751284476955167013203711394401159523947450789728945802680554979716297002096796210990184129956455632684135437831824578281558953434405079493945229743478499729003979788019860790660012360420665001717888084816872170640360508921669614446858366137216747133460601941950826514275286702037499981602757380158933314739244143765690071101516137865716956760716176127983087070888193091599132751716961421441416527520646662794043410259844572205384129115077396656058829367764054779596646716048824147549054765860763206267557914352738003972610828852872360813573319746581637239917850757699274581785141643059300482894857984770239690873596515450797945679699267658130285846896506202681129154414280802670476377481133909349535710779381411701570925439891033384374290115848710453966165305962207549704344069258871149089828163192946608612660327969928342676476852799727472411907629846102782168395097819093071708280819922005519223212269149960537390384394747079490495733257138940717802847116934031137545948500328562113446532084795414830647855858129516923354659884018479681983317154079807387657331793180801976045951986126955967419584766709552178376225753391236098723164270917732438307045852035960999361711970557355934560109391806636319252283405992010318639842641198225245958460581224099414891696179681055118293877560280014908923432614141409199645984555721949522192079842709719194603355878208420514057398311021512818323030874182931685768703767648727122930088242124178121795026239833369935408662311034904677135153700555001053383855700674143573519305385951099671176345180273561017183928845498288157993138683058840568626031999843887754173873134839364957889165327275171766466752436747529319595292148671532092145385874011062580604885410308471686789983344412538914231664814602523894719301378859107634054151637125612707751348798623305575878987427508193302692369388813169320038920562863496289954770370117286930746600692465659589484184576865376542356815564663846442256887363987946534047533673349031053859450014640492383193091505202430302828117230742237667310793164333794523449180566414544009701618549822428911873153675187487475109434645446122475812466323243148035911236318186180249539245006779531218629517786812153634974784560356877695129922485745591204347728134977887021893320552240345119442754545593980898369892557069634064789888756181627837339869702340086300017841871552192063572312403999096641301001153073171075640966300784253329648216358650711166372551065858880900543860427579308399935842766391168773213662007764961286050027229817619896267121222490049810382959171927096856286242041608226866008552420261078904694404549588882565051542830870243052444782931500468736533707996623141337393352811334592671511620732335626436054223573953623251656662276467645696191120450774208729961999999043076397041697373065238422150618819288966407071656332573350093747835725273051902045410569998254506763421802319457364275709631073954961987842722244228573187827870318231738746575940391056637513955474111046015371385894313380745827846949572952724632442787018405782855272575748934037617496704370901136394997592489997602501914248454098932391090197463941049634757591052304552766800285158748531115672471502435331567520085898328377571840381697643924829804761237770986870919213105423492626940076524781163585919625403485354323107535865080759861415447833426958148526228095235380223940400418092872189851757451747471475266740056587358732828503447650300420060054646831879027970252757844294354086658231471001238825801926342637169174970034657702597855062972318711432925547185005585271449239996481001454646768137682576112959404910596825230223184239734277996554897837672142221631118695570333268880439308418113419900516521597222096765079777590836741881195903272413496996141923179841283085893006086767100099307104518623558817719672666998752555939386492888294345953453992364759832024993674423823765947645904728215563353923203150105101661395772055016462272594562935541521982252197584792027533508844437971520653731282703190383998595623628253540457675779274953819596732458891329636495961780684420697049890979964129115951624878523043384905260836627824851555296707612774916115868230391932960765589983904851693050618789929211942738570503460118545035796215408238021847682626279058901579588520265870099749621480379530317554929913042268601046893283562208435177114685488124409565186425186305291469384606080887027988610784153114947874790276188338229014554261608728007588689672217344561914704066535574017319355794636857565341225645992867268284904327246364699383538450165043219068622356737326330457793547921351124421458517037754114941824434219907744934588105792908543469332380825856162939108909799059763515293438540952362719795546967509213602833987406510386138095042027300809524955864031861655837157412465260574626052371514135598786783386839427438198496160935991503352238753115154906907689499722974884721453078875657715210994167629450496740725638628972860535873436086100923597456715233693332534174887717704675303182521488008862585874941266108479561038320716290012211622487258965353403970076386912993641691496250870393430485223215421943290298933651685479387826590530451372934853593152982036856760966324401692477013360497080732689450994950041353466384764168660647552781151449184545103664453329476843075309684896533998245788135619965558829815853858735445181521151178538744347334068293226750150961690042375368805316333258439141898926048313227912887784549542410661682579152412059439195851818191662795206507597857676476521630764477756304832878143886011547267548881671860295510664499965715003666651900709649487215526350374758685001408731933551836748073507582807576779982022479447430492615115739398210161904249419908189692625725863912132018527065776010032836783511748063735807877095172475651422365428062535969848416971997410037696875841040411024092233978752262217492312760070470337965240229536855286215151277361549861166970986575659514450136019521874774038404263001192965161405416063335062823869284912275811095083997998604889208047841795577260914995830892379320640376997887133062816647612119880697344967365751188922922773185141992891700442178684432079760192117061450492246963759900153883736656094489829753545209396853152021756688525487894014484146760675750483811848538157191852067664546260466026216677106167624308401690962984251645318975027389293472126707079314376025438099385080667279811481157732893493147766671706027019258666968693615206005974854401157206442174845073003928120442838352104348334674104100896712811934142747744500568809576575091553302947610373276422658996033380165337138227818697757373853745299825736378064188948850181880789840415708259074309002872690864524837157159181866440460205878192077695499505163777489882911232234590453447388579229175587030719061525540257208992493688493129452685202580612512031401594764960795719043334414609738002236361734252384836568092972271819557361118259223515734910728488050684849032490582667917087023784957710678216152216812622135331823612463403856901500466362625031813688755490673671443936098413613960105383056318942544824163184664478333665140904765610664083025504241216563535561304225502099392354890208034831512149628646436828319477122754092435099013939202921463698256187875179654241120380145986966613323063504278734608351785413311566994379477390412713669673073127846195044340572556931185815833899433193468789215069814297299244805102939138217756643701588727122126908087005803820462848238717307167880440461225689012018602287807167834235717320165400230080126897609140653812754489883684079307700324528519587950974939686995172225292935193419276766373763910577340628125312631528696799817210350785155118057191366229725087331988162852629517803790112457549212301946925532077718477846488647096249729941237902612883436170423515357123053753787042551225617832519571838327200317581272635060530932369851762351151604565097497603085782463673754192518876144551496737824615743265994552247573989780556036935456374678418680557223786100233302365489027130535419559938569295676859768204660394367938432754619050675941338662061032761527512432168896144573918661129467217030279368206874825247247341532606326645107494901610570508715772450999024363141198691887134369469515128795224745090000434941136662076885321413431568531538803768366822998520710257765686399136707933963700054691309551801554392859799394888122408500165259287362860841487305926960551743524873534900796853401345740841060683205513455669778218773968742018503784378399667443007920255372442321607814757926142446977095595568337961079267818598692017704810037092265101936727959546737474408020222063983868943330761105813690182029670676833640909799223439009489232705326720725345149669007841523700084607775677560225804043813088397912216420870275691488524248938291547331737555040375846107327326567227890024506530161573985042903823726403011060233340780733596697978916010262750329110867200459393323078725130616290865258423102396267598054994183122168595725524184152558333738325725369817410751736294869036819229610906813071933893723477900311578075061747180272522053853726528711252533580057282920713664474464650034786236745684188610011320785664488253250143284900664304264097656378286009411450194651851998197212001070514790800482286883617933053587223574778403853999343007489761207148730248849850757488125363336494757099192744935012982267588908080465362712265870778679012280986542223084215828592150977788993130625037073696875458978219778114947216209804833923082473484507581857525235548027594606800331698613573771638762221844788966508565406510275189590260094053071992557517838008252044641237432762274724149211513750848846956320850531292076986610149675589759685884150960257029657373629733010270341491947883385530361770036543315535519577276822550818097423816800538728968552792174203480439860260052053662476615256459696752655161551443587180205797661035481290850418517879930569741657671350912223447081043516544067357979628222093144053569168340762994113691890574265409361905321465744320606494595417127647713713317523595616241620739037970595279723553250315656913222732445263679832592215528423519789872021749959466161273565293969127995855820418926768693004792873074651174465999237890361713738827165150554072618765378320420167108064800049091075455936398675179366509395849304173616752666794112418545427575824807299355205441703436292187488935822567880353048033745536692574169793956224023835545326417688687342758465575597637803370483882415235783775145150829333249145092489013041041625014775022679025661347741382689291230157179725124035892393280771919725698725110529870669749664546596915803454932593059714784212765591113203659532350109766556469117165996651749374432745324686809620749927624830135774582904552778993060303093866367968111334768650699316658755121502173707638875239887071584452944169975425262788046393113661612422279935448467973920306770578544699310282476163301674645332206191562905475475166918683683858949390658758435246883216488559897718115624400484077662655296383066236780445783754343790353635778343841829439890917579166447629336350687017495221770993217489154347995560154349129385724503675780757261373489966818634675832143521809817333028154328518942892915065504050662705785629164711030668516046113345886387281209321866862481678816395485755739785013749712397295123027988089816564496277397871275595842858260551265475606940841342452883487057150042864317766282694202146867439998022414068132267622334938095868002741172249785825824458804631103652881801173632685092432817279804302324710109428693915388617141850096786325828243707607672955956288205269737341921245305949512254981152653054380014235943291833903136952154067474425444196898061990909626172480542793943094900683782000006507971046950060733735089748565124814930863702187100278799642969879876474603498868072452709412409525357518160582914072840425929530308579577988311714917371530545222558438359414279129950901113233609494745247052284756302419612537722713806873147248576630406924073443557732867524795945795926556715406733377112471594977447716367172887596201688014010025335741992997808357027025068197368213133742117693472542187275070197396628680929395033345919191346503988031529039158820625069293777257539588703910580325758375289926112764460894949505006818904512050090099922603519139264492669680425683948092231183073130459585274213424676012669616182815358464108025516797768859711898917053353597953762868770401617403916001808596915696811815016287364970657717147082565208169910676102243367986289659227097443447514987384481475347072945751361527033703074139047293805005812402557722896048746820323188946428429874473334039809921684390211769323059043355255496779509408028788917510568953398585700449948789881770884125348197382628729321593084284322448875205579833333354908018103640180057721834622192114677029529199357301359018347405997368557992278303086164691763514300918331417447544730073813560562039288606393337520885167277494653527138579329774986255660347609106961992046775271589583215236528687475786860388908061216880894119758853221835124841607934812945225364395391073443865422583041826663918463522064486700076803270652377885381114019373275129179309888281740037543489864003366651451263935226240068464223487625634887155281489221964742206241582177176543027875959493190395712723146255365151615433795784485484073008578358430801807035289151901850174724475464896103345711011053126791955596235826429392929417247819686340890248490213932682103766672631356648373184050421969640247582642266927196553005273507429540481578064399018306283285076126230575259482186560434892012613000090722547281941049140548375621262074212575472955857702110240675786731493735622406744064019347134092932387141595317603882768402660811843976655317310938887001637906146745343437498502210879057180066229381127592543585258015697507901693564213940814939230515094531039532140536663601354212799528324588499857429532952179117487309939377731697368783082989229034601180083252272227154719906853919863860445258238460909700094199908845545462624830731230597378145099306274095943804944606706875563274548910010488400759665016217281929622810964638298786560559172949226659864416856362394375292137677972785787077305239685532608352477515531363778836155583343931547651015841110309769028004824819214468629345946929006804543889216983138678257306032522668470045081943792741893442381842586560812806751053840558373914577876160613190349223639843290931520091012401385416230162456918568077054046497995324413850230933681048310601504405939009433989829651911742174399815182477797910121934763929187087212983606682366822589534573995726272340874482663408278885795298819225148651525134336042650002433498879677335462041935633320868563822705301697089635429386897058817926016123146092306221194714471788053227965516263015961962282832602158452822775844626567073270703206795948441244608558616919470997005888472780178184987840524454632166469457755692323215941513609190306321026571584287973480636378312908403536775522915104543583954957685010210716368910373729903541803772533787769561411714595502743586302263265620268677155740956463924297436073129467326810275302586048046033884554540992233524545330456147362176383923552831989124924885124037455516884869842338907576957211457297970530524924946171115570213855127305207849496112948600945167294465761653536376410031160319020073241667069294233868820550657542473152781388929558269466876382196246276284968434633171521994462864579140765781157559196163909875095904176216290444461349912791245191559986126412665421999567006819408249899855176907961772058297740818462541549719717466525016561429098302177773942603617277224499016209986261125357028941866144480878887389509061767356475014923047594095027391398735815835746539060953014843372571851558188408524461249020173322867168390746981441266943540887955626326181750345630809494210236344554115323195532353333129699733656382179692753311316478427964181052332990317655297306486383865339343459379998120540816164225309234833662620051847497565818261392350190679126811834966837982212457071075282564246246992658674703368071179277719827052295542035953508209476279693519443290445643559866870625272951482242402083851727594281257087503066932761755196518173092012211916394823005626943479497968527096509728432381135461150159269169151587387078832873818381811411833312781472774192742456015393464898709776804446731114414669592052470087522411902536247342516455515087614360766275168470804724527182228083219753062551347598910852699695401102870808940208998938295748148628685984071700628154781785107349195632024496159990018839451646906413560615103599878089788512266190527027080340023252125398904161579918557073463908353482382229816227128457623058628535583235153667431986279267195144301374857932648431500538733419598165053793127922523666579577790003549183849342365696376484987527863575871358573135442395382337907961287681071762885105463421149015382205391666926970605259939429402579092295297455499103764096467807635143497430564982309753509673235285810768903862936577825027760396579297194298344310998007762828912620342676192112713149686491840473363315076855365018189037588875762376792675353494542990541792178278728589287326494650381876684770809271298237004579011369472310414160188271392822624319651179240750410605346729895666884520269302079480804686885855276037672006762223482463210727160852038671464469272097064703493559649045187094732023577275358265087636459240921133840946068042211097329244756817703446830761567035158783466365864357593869516427098348271317612732907226447447990705373614081821811342774758846096134830720488258751917933487807160387618634804126984951529891647145897094925749724144747591360268118880468508823909780142358965170114144780751637954874874108621370842201667208987364676997995429098962342790376434965090672111957390802001130678371267895460144894630989633312086015435588196373542508337858374874334455244554006215776396359313356578004955399024992616805850699145890975209772035930737318887145403953468560551297684394794472108619017203990527851667061960483208765925859233123478148007812940969897261532421870499201178317902730192612284841702906653521312946963494028479015065995721078222353538795086848905895355625580205314106472328543721042463679461616152306395204315452134767292435815495108503003679693200360412085985348914346219315538585880157910858633828635775420691070957674841285885646366534415270229346253971226244978141466006692535360684100851826841585720390529632711388556516377136564085274011598432480743871813647647150668847509263447065450622517073680197309979603420165461044991820359506678352169751648034572071541833720608269119721132177523389651592549522650228875574543281784490192659056118497742502479830717769256788122073392237911884465544548111795527257374784818565653532112976361805378906305299507350529319475336397748605130350314190604571149127414091979833535771523715413373749941159229074508879386979002586723067886986609903222139801629595962041541526818828591524808551420047805448740833264750324343634883902756691221153512850381095667034692563845667311647293065365747642515386646161288150765582334341863764826621437285008778468319127760948786007639955881353200509596057238067466942313163305630171223394998949564951407355817513162596627140423726294934648181994541179172903147578760573639654269705316550140957073587344692396334381282816704747881317793679710495985977375824937442575432382367166520751395544152150592948455082724378034877208827150541381593105732374604850349526813925865252929490310458264192769569900193299491525410608684346498948337204297221539627975268513427207317586174124302709017638667934352252686299461674060997630225810958670760158893665616932389378745284653107292204016074743022953623433129708121713923520263335683579870670100311708796855524540765649531517182491827796251463414455639514239070992455849055685441383112419216814123121625318922494508176388308030313558390683301244360198736717900677718465492548338090429087424806679401024890594352760590823611925736182149098736611338710108483751369395999067952135844309837661814025983145086917614326918464716101625091468949342459018716612451478619869870580828316899610849822495868992742571719456025077881325990489650353841206155027020683562738098626368806742041841874920399077986562225560401960615438706928634385981251644095885188734659053254833566784604282299111355464962231646997315669848803700083856626786432907189653956611224808230833876663298875533107466331351446437879545655487561345224575218438422286167222762314930999617111243796858224391356578271154505922965360883943039232121446669531488579970153417194627439366738862920956061149198609120589503954250823008474108650976676226803103672219617549194265333824089403542633711995554057761290399485924479821641004711354389083870566101971592540408414408027815575610158188440800480728294844123652067145618616957151125942907444355548315510561003498558487961222644679106285556384680358611720823881899958437896716056219460796537407232126093584102892331978057551699940678794864273098082231949532651307566437495172365837261195403984774159247086254740134722162920948397896687669552946016236895032535536357834915226438547336312992737324932886103894909738914868421769241400432529945738021588119072544918617344194695009302287840829166508454162297141287765133284353335575414234764987211156894993190459266336112900455823998158204923670758156628298951201285798206818967934535713181155012660393437609087316672122824550871784378833377084060114580039583455096099371554663735468644810904793746537340071002857428362044063443903993766500662865521102216435191292727526604415735745612486239209340719523573584991976169858474301902613356426519897828577775750177040818048851723677539746865487836054204166686073848407865411040447329395772363816061761524469951422984279262413550006702112001733121585932431956817741097091301445765905858183239413899174538506410194826898780545678904490452467947885976100666870878000909251628649632642589703836260324158156956593090372995748416560439461027626092495658586917701993629949567179174078742450832961596543080511187325259588024178381482995707430027179118742091301884766892608847771008055122638880176430025589082775859443660029138822840712517554254858299743871505049682762084587238036051764690869709163010351876154728258623019617189479182232726505869634868540412945991928275893130185001631175037745414873543548205317183667478754604442420939327611306410366719785962114978554027538821664132135863219490214649605745495300202732187752284577373260647080913078943092953993088052481019402913191261523491140845640498735791447217016589403241225613598653947739794382118525714523630175894875038010447699859980011601256968818544018022391168735421159154545812700504046315281430616682604032891541451979702844799714826935346349777804322497066734990107388276657304991503152375251691228181112328035927975700700715298438830090095855733360179803021570077695874740088462271765469772294149529801432867047713070865796836530333755163930202755225675770691896662815650717849182261897888784463094501188502297415076196371175861312873078339177112760627200933733647984915160141038542170855210622708914407085405510034648028071140011669489250959533678316641525781521239606645579992635047424435630841379432655956337468020596703051797541252205066974215423527090953652995528667188837175613036760518882878377968816768238193503912589929347559994623442173723372974939638772621266573332223447532499631430163677786738986214441469275751787175173388002932034415432975545881795764124845373197784383113087256013358579304369472435931390682770530774526207665154773960109743334724004566032612152796991609158113313254209886380020245540078392857132046387186329393550571388389166923526579864674166248217414483954823401055090842364148469810295949482929393914946921341316722021943956887690861318841965475051860389761991908406687526562366398624436922401913203817261288142839771090761269744158133790212453582440261561133260188888281619498435748011806523208319205885312255139533126071235581051319413909612723946980388721387663608544003197841193159219326576118798753887663876653966482133988781381557224447329012817142289007199978300018937707823803498039496152331696710839433993811852821444630563517146330621884866703285393261714395514382570197465215501845253983486014048874626486966123747606210812372429020750178308117821120175379146477797351493116841779651927072751731616171894808954210324540034836351217857774032947700616182252416457317089414943384384180119623505141330544950034128572600667564105867120817450672468520131949363049124754003608522581451608546166724940198184187694032155325298115042416094250150692118630508074836792310046134679539937957460175233033320180894237987020637600856559762454654118468757390379005576614422101734625733665532958802639380662601424032403978207894407520609147047094298759839852239658900134648707755412562701943000855532976969337036686962546263083971393883583090897249935400154816577212347121123671369835686004015847351646241897518098134517535670812716451538131064080818645100082047245579422038407606300632704648978785054148048900194718069764549724543781562961217421071335573886342515741500890248212821657408271685214905170319553330995636437549467232562832669392948736100643614920217876873298644954701131456801910983011037885217559007314580481127471784961327697721417352030822928069635176252121411357844767623118781910465864914744157040863825772685333016554905142543411832271252075340985522169916167660650318589762294326436530022683779113586342939334320479639875045289991060930927936299901570889471012103170941033729936310391825083388382367687319751712168881707747322761029759315380652733699166281895567615233505797464353380940920142016002401052190044092661982376982943547100938234644293261561480476503755875646368051519516739681044138504255234683906651066690165336577468742063799505508238588364007591723032639271666786226287395789846267680332014136447815622863743367286577714542366245500816133012419950516816336033073679869987343466150308758465370138647349914022954471518027232462826312390349649622944285400389810718582368699557948594780484903428060851381236528844243177666059219849688477391708432497726522097918006080843797216455086522807626668334805364627765329422594797203160754762232532144073703172077381584764067688693115313875243002914721286637528571083622310107985092751099861540897882134907317332169895480092144253642389576385588192671368084619504760373616914521071930299596463050108727984664368017363515008373894727019168424304876904279108331816730624469312223092509799421723039440545022185448699655501254187535180445329794266344484538903568963808133609624301730011211141023853360480533431324981161526410280047864602417324383177247021770999003694983490851760451630656161431885715946078894473781087113360372563945060343435306667121565384706531077945366000700145601311542592533784910709741084964416816021193449561136713707507649431853510469964900898728785070301427269579794052120968167015461918548469510908631613585628038463910285862298382422974774734819447933298619302443452366054106712564465777813999985724726161381511568461515925148556082218304835915366589595291615470544097616117887743653289772879327922133308133778826564457343649060345022033924843868031591086717464041988579830938941314410798418583156829161965376500091058297079342316692056027040975778869165867939327459733770187218133722931903847998480724175873216572468472452943272189751545617542083080343188500134789373545586818438069963143234687832208330623774996207742848557925314645843777239462175564789038501049528659733915608979897789644141004376380000438513520377324539337694919194305909470759358606411305468075927396293420177577549547103956829129535422689867578105744700678423328381942443798529507211945506634827804802427642220560450064169942727389860875560019482190304598203808831326677355846681710857483200263405656198209824582137197914551657622567796055680111118768539785396436289969155115509531503180840717550555249699050045315004162933892320847494715095936270888108166316909218774432582106712564770972627992719349283874727194511422016312712797760295207038286316257062385406704861112187359640207472673718836142618259726783520103899020986016127362108470534392564935127583170135363781451329251194456881224674369037613403174739960623495740825529546990691766427086867461361115353448535136494011690580662314449946463163748108553306341985522705205423297064715961053779507274261496299717553186893886469411433592379662149673024333032697813888282670325290012363148193493858034243905585960260857886178856941847131265532481781080380991540106276947398196620299978830494900373118391783675690227242066207353174079920385197272798658783140257484911400487092580734075500989036361975582276584159028694132192888254470422895744747947274497002939224028360272511304016073169959684526480807761240528912477969646486204674342816260781627184240608934239538631876997420220512574671442792318635808001887480486308617181461286775616307572879566514480068129893033547929911080227822739083989158857122866185269637389539828113170643942780638400948737825342481439533924214866556218271295266069283596811763234029936830811334576573478966103463377374305104183767159617997817420623457452576960854459427554609971411064873027801674455141250909132562318870971210335703653844434919614474140896523889193497838440595798258320789214801388034423023179528595630887153434720099396974546051041670541459029632538213004392473456737840986908618556886603506983181640882591665812313339452138627785693426191201184358444481084978236415469314841362112519666602969204686293630248473781169273855962217138983565296324641718997741118864803799861223806325880993099907416932179036131518869231815410670473908307925737784656136192061862680339560494929137454122968890410454718271189595703857393420904850156662639199733984136131783254140604282034810561297369812374816841703972272758809401959644202566279067340386138865153971396615390152230267792570091001036884753217491422621356091459287421296559962479708932322265483952679593606006764494076809660782868516244111654025921528002993957920011444381597239814357666512675172222416496760457539569448960289182735324081072277428100637613518423806575454940035110191079838441099976778887903507911699504102464918519827256015126580539522558139003495775538439365380417596946520368599887258031545780583167521545612528979837039489672079857360804252280707064013526778272598725715250735296601596785203592326240029245784698381044811062433192546862464654246306058501443934087199078269651030418718632547632469458332460647496337080382777777526247119350598390384652520566519532099324194012906640285380691125054432051774959641552259623623066643101898258136319644774182423586203111175314588527790181227343870449368288276629131635594066835165748376746329248329399817740677671209624564892965138189811205587661925838470999588425630098192365712023563900071755036387001051457009699936214158322970854519066450687027334922315748386492327414225370684043660970275087702658558832089237265178984177941287339397176743240253827613793408574192070288383091905476012269127926388275048647090501608995810050996635354425484162192940748861712131443264629322842904130629829452327154316142317850775378775132899430160306349042323284132912666423211981205351068379625798915695207817444777315538135555679167785263381276374066083894146366340934246988487828122370335439852429572002051781594112390777915361292438955817048526568798920283275509548384980021642085412045287299858006191521850191166730709998027437417541582545114935754854437876048459707506682181929754984487256995139071535028627634671867271059919638291193737386640252923566221892350386197842680646771311467348637114759308618157529507690358920772345646186073786639821618588138230062928819514800585182884789897114763292997595401579362561266526187516454320510595133385300515392513353433425120390747821299543401857473723493399450685562265905655240739150409075533130952488627270853468018509749725833066151472747605396276279921470470785833908295437978372157112213886013001306240012047082511409220533252822888003618822093719580992173921053506958737109774714754235506871303448355420523176086615593608927266604578011096156053455101096859331689515594439860218935968267317696114406163001528436519378242277878762092444570952113139408389456129928000699285944482996197601571860378474231817824170972919685031703153288038862847672677618939110535966050334898972515260495636228183886939573793388406734764773958513105719385071432132395735537624082080229044058774257246822441907715614919480394308798324973277261355761560391385514484278268793014454398983229838893275646691929316326132805273944851201235972889146742758751544602504548074290789537784695556370043412785126685677250787088216619943432852438320791609461863542331519332157747442917700038742757747273489420140017051364765384574564223776534892696387681607609951635039393990725338413900860156789530868641941714612568534182981388735812204560440147983158454601053120650882993176542187623366710270370263604376089000019130746916255571447617050061759785257742539992021854854421270708065054947523970188831965564441858295747367700371002542841596211734726523880373479397248334288711178397656997357804316232320209557323181038399346943099903801209945565806936132476225093851576430983807743596190392825919611835231815256799939153101296689815604302296033290843017641583300679286356235391369353945770165039769164589382952336365611063153327223782144232744696703980353298472311304032061285903786486487281455858398515000112826089470249518638170121161626559549795694146733819140037770202599339003074907376384190231261368414122838290288841137344305595352470888603360702800635331341914969949658283841154806681445171299903660509635622782167294092127992079246929436462858241654263758042377406086459857859089658341178778573115233022580626668338854921498586454377982145183110153642377893861417487389568480222337233541789784091294579505970855985140590642617181777590676599838893200975916035782140642182532006703524005642308210986341794627496880972797268724435294425883915110328503617832377931298783920223746744805176682795666289706639364167268528205053721906740542453785704029739083500984067923960638892044658012026286797931641794627304029734861296004899864154542558045801419148491202079699517721725230611002658406062488802893930571370897306568070578221080966559376952790664744575398578224166741207160387011906901355028740332770729904265382211372808259774481185557103089293497148720291407241114803136347947668734112562253507465559280671102760010986726904399829804453654037668825252532206394236713589681656370995193839668662071750388930853210747157936151492481885213877640778634888330265955052702119388633151834118786762978717003742106307020582440429283004955234464042509972080917192227905979827367956415010993349282153026157400200882169901194702906285031699464370184216158605150964595321980527773280589678049106603750183600024188420202486567611236360393058686809652560129413755469045747328388026531893876662534000428203565321528394328242982418699278550199279150029379447901194387499006680712675112694298063791949414533745327215557288861351710006330613620032027777544420463183185251830753092243084907220092642657727127973408390658148806087858360714908006733064359258912046096651642559022319327834779861988013107495796539989340581497528649820852017049047542464586421173004208149762820907797653110407785989973163869028410008843388213177614107040867279296735945494362356332611256094462340066727762473392546357316873760031687515789211726812867398011371412827316449527615865597389435724905233999769303570574342919437433298586629194162613810815209330141492138771800013293750395469888103070527196339763974373352086796987998078569601966272740895356640713020223190962180677311636746718399981076410688258557752217947839567512050114414574903742763553992275665016007414472764778022539151272188044383786082842626748594397154422875465450354874783680099319451275487768801640052047261776671508941392155810658707104488755383760213576397393743348089278578207374389806153506247950290012435021899485375737913147965171870050780562131782458887989854680222488854001212548325141382772277069588944550813375137238510742478712636115811349294062398818980901871567055139612635573639676396711495610172570004965322391534761892169733162952208033074346165366991878032255649295063413013891284935204568087359556948699982970716666906345308288680972140206664211990630630449373396886299086096209774947495767518418881826321851898573209449723128067936598699719023755445658405922053625250751047842707659777663163423361323001797875946676009228369957681165783479502441335379111097869934689175951898080178698794716669792776637834996203356443716853648223086480217586512342817666911470972188547640579346259392034885150471725377543492898320467600362792688782973776400290791933603110966218444731716347309998589949171237627129464815238791530644041268429039931135023313123675038412935114425326622564338086346984546843859207926286855735206312906650458095017288575928412409483398994637611785373503199014180001354482171300073653478325120520835106312276240227340966547002468934612083406778246298679714183087125825772018570514814306411121374011063719296861328608366823853459267710656994259536877385797591432979278727676162338893561104488790429823807143768494210667911194571359724728138636984259646872407143748221892794568289632793867293006492252411144766429998594157060882645590934396757392554750972378187123775718001107270430627992879234476654906704537420675066672083274441805268273126884750975415623337290682457685767095591448208870713664274484891762280565460775834491734871286860424064287276270545815495959919912989382015692119144326264213571313374046827138317282791938007503655569941105425728072831628009348239198315596520715617089398852383827086482811999177652305320518395000759957709371697971503091131760584089679847057967141571390127213522618907117173504939371651057910956112354697303119392189573167580369153594296965942387675800738276258844329009482817784314383535080491631770262685750922915548563677589616350512350059790648807822131230878509596001452425571582316799321030551603174688726453383077705211331019969381849547018645288370913712227531217121853314127509273292852074999955249143322132447393322298606573099570592655263729205596725936859807644363188628633881593711779222624027843841456318561588748507535976972901315642680938210604293591478271204033825974176239289613774571333529487165393089923119196748076467887862393002921232975605763894010899163547265844549651610488824513910806286848805621890186882327346197903905121981114120540366635651027716351791247871858768374274703641678356727497281117766888569329620357268722492236007229507683017876540819978983810909469300513466450553246762087796743096199711612167694328407357909584512709240184875806430130190442083822309788431711283803642210907725552470982367150229029111827417489200048686339567072284413462651727509626066290879799437563260139900353315215030957711794287527929005277390861223987355069978062520243981094951391854041689558672634565648690358953713042471824961203074009397478706097546523774730069015779422551544744383013769194729090084370545846137723277390553297737862008009221577922841294924366483306675326751697645213751661904306268523505489239776668079996603754716307480232662229915546073316674410008510790432412752178863864629223445718382025955758044039149007013213998528029299510425998115031441434861843982616095589633519255464510825593875148193815204858360704249680169395238807723734046425084349303998777038856043505425502768415447412269769850047042988177108345208033795924234179221421250498296095682271666426685117735630677712624827731202233796752735126996346055201269003726321028511681483142414267263885419097629553178144339765793226405349736044340682218906068434387476953946707915683995829638375867778061443121301549486076217977972721743987241031539705026456307338760324181727824475274190770156919912769094051276490189080533817962876967422153529876237817205095410473035389986143967821634857711621343361446318159511483925205792913025913213973151799281599208580348657531255146236765232228550088232712955141324753047949557113541663888339259377755267435099914896127858912808778798477522397327590884896255038210665553901156201603465840580600266999595567074088763685519544778756022565496957483139016997555096610696192289452935360295277825969727398783685315776901979796404422795378733250585796310093224032561729710912412880770559697696586456376813353992717756760357458220506926560811809026385791745737221952632733427564871835617142268213508110915671482728891491482496082346206252207240815206066653224287236167417417187679392028284665019243490292349363974425824486249419138418118664220028524168028864521584382465133889698812730383499430625724761148938474281244723684933634091368118489232176052781043750030031506120335174319489868264326008405260326343360287695196033198345447157109496319599157577651432959980224793645776876772150122648268697500329432006015325345861747971748630063056572994735751844340063578588786187189283024379252755930822655115015431820555571261821240203873486597810803608313918729065446716708906794213765052882212437790998004366621047031668021920068737553437644603691376961576573024960292919432859688520009853953713205943259649312509190908987543855468197538056846362404762857115839791887710836533714636368776906603853430529886137342821269511178659382373530496235946809581775762809425956037207191875072179196717212883598691043784360467386848289227066363745422743773254017457450006885409277060274665470552850481194901414830051575912480106370087397620851082574245915562573164290626088903995914474393700973945604968434397768541523595895453787497271722870337886104767838247595617138120023707289549753170764141497992241140171909408505491365598482290561210465472440979291112065856923304172132613571141588443214618223967525563217989696464621868526997530942348185192052545835990442258830991203324958166959841280783742448955831617638759015460076741310156599384872508334707160516312325478653406733605547938114479484329684040913645917839989295054271800635806735978664679252290369169695232403847028888820346943436098178561290513695729631593223362328441935524572059719530724876060501743848996969198669443954505794104050016991301187253926263948568991367789668314737606195630584437921134893886764397528972493516732627769727883111861695046725150954764605939775358071081122057523623019505054575774143512009907434039772684977679874913817784750208021778944038457038321976975817935978412756891117448969221093739890273978153570915951070258115631140843457356415219092198607316340013817098696461144868389129309023693033722836698053188403605774820994097398576970311218881037121921867726292394467699305679227998877858716106494179353339284167859305907448035450847073101161160697836743758529097930776191994732759607710995760485224609344715852172196282047004047852094432832762531459770413696358311822756004988152586519523695692039573148910138515021238779730713583581129146800052688898948275487876604717020999970884794338066404535102378824470376505877645213974916882533006613173936842624276935227249144439314310767783272747620083605299224395133209087228381819598724049788745496803831003795269425965714829268841978087049862489299133087326871528244671761299868288467832301261360101721071357772843808018565719898858496767869340201631113813837034692165773165075294710366303538138606777812088226792501811450567522312298019636046441781220039866664998092201164555488479248709704581253991919143127659384473805333241481620115422272217252060648582684948861990836100883582778216204023008446324340184050675890462371339424452337525406409328142435940220537989790649090536793007192778185336542669184206028864587320038165551475152779783931617602738459265425398351289866283521263829061917353286708706852730191069027445885127854332438922101277376032803126184002455329438666631563094579940317653049698408136240348259155618478731243592382574391947222124297411161798879336328727804970004494915373899230402187136792812820799275066053378428582650079624949315401914877710510753784891309260517585988747150243615554615813400270240338986530462883210372205527209924044339997309170059922114456307222696902035233410014623205634841931281422237582669675904130918220891606503897598627668428941758955590846845185716765348497857267352091707495870299190487826533982791308956518058952519119311062691176237912371236478571242789239424714247533359838972538443713828647615354178213528873490656830896690324966604429923662988897198772301715140270732867963479126080393984728319219677074528392159385881470898981549210935316887272931436749323644731441225220859076943280840752470557523846744238435340858016807722877121543186756143683727883325789157754137548174282712196156911089055609780778011417466260001518681089248839216252555016778959886793558908664469385258431226384231778798306565924485368713993560070832472162082486503223603763608565191829957308012462144741146604647387374575054913766722571195880315004703428772511404715216960721826038411252866407639573382844404710442139809522954002279247841595110021877403435520143307982877664712973015937451222779468853166681561657875148350087250789349577626233483623058682889978505478583123756452971253543934347700766630316557363948804042152730541950244101512866882040406241732304886019145004555702596468540885547408282921470488376796666163486138843643521135739235098196196748029893743669815981413900510318713673620310795931317150499108262472427844519912666009560745884874411480275780175970599376572522689387337986738046371092427638826557025319945046274407182739107442948742059207910474483248812585064379043678925437524987519572795408717261788982998070435612757128304604117747517817033107662958151500518923363953673938160420191949846085854423278409959409818112410387069217169811104068544293470864736870947677132113507835230553904294765842396604769431679518133999431367315211080577713569109101962064157891800416376021238051677609705544434876345978902267837807615423355956200726735412858564669089195412996695366235759733492495031926568848524896246358299098606345966912068816562870351436900092415004109727315941646670448246753577148173291168018796440168719869701464677345712028453759060321121933828703685304766571850936817843783964659568393166319914201838597845790842913463343980887968067373474543145798875861056688376895354466612711014089703640891779853479728052994616708681313368618692570901787110105390331499515482654205504172561330813980656076644286670870799423346170424861098005149081906356891797734726601757929301772998164397077063499726056024398560760214524922130408334940757368844004468016863282664455379641405162710710713822158965380263340226584614544504740092186685200944923867825325956364956605387450016095873949706064646943252503640469508457237718680283900321413978180736867648307804630420153399642427819004889970582917481948558507818583226406965193749725606007330358559173274070197718530327994568375924012550586290365948215850124724386471123844197824629703220646147903087155306943624449382458315518056648537101456326410092506848589783636366211146804889513488273091290525489950675824375916366697731756907478262643230426875197348542099188836251433307695501497051316268955374013287093434742538632909231976667458093723611597614060777743096454360962127487201225981789889462710471662069880052883986153962550199571693054354052281974101551206473255301289372186593601708297892158800789780593405750497316884231209340174451320142066331841663281571596303822846468157828566284017157521366733357834511684024019542323554454926590328991989355517135541733994719329818540159017896027846167024917747309565931754781037420064943546209442512348064656477325642132241298361857612758443595851990663682497146544083867929819733753081596829594184732190664025986768002035751951632905387398383011833479370263546421703907295491712388351395438132539487510659061904171794555347867890259175744963754713256354124362649877077944656706704273157356468773199595132101738153055880416025912472585864530762987068434513922270062431443939410014016221130069820298732757396279244584563660216869852314969528649618987845537023412815915532306036535046569344104913281735110715303164483409800701089976823006251282961117370479647775801492248867459664266643383298266483619582561051275212067372686155045663276694010969540381104895407643197452972592374018938834818197786393692138245582049528020635151830484152255252597322387397011038301490662427558057850995231659461423109009119363220686765094433061137657964871375326613410547416562419881068389547793182916674738481596343534429026730547854089683180178660137593086209702268740262073097201464785605826963235716549342595145218471617729764854735172072364468285321950801661921131487454563425679082093823407142231812375794979760246556850156042359866836549848374839891595839860909806915254754568921585210200451180055968238138559871428607964485762084880332310379366675042320474149660581940813861692268302037353457214247088482842859537851797589966672699511631592353443907988762536368634341838818391636975371517148303033093598866236912512043390101025251565951546638944868611685899796657977296191099083545651304222152402519541307200049234797522042229844371098920447230628706114055832968557543537555236398409945034173414868348589332627019496173987806101098627445173730687443663793673601923904162579005727837122820042019644124341028950170454563821657698247706451150960977787612264081180809124378552283786331603563672596958923381923255735929930121149447675988541166262420339013913181998414873694570090730187680828903464372901332603723924339578628807843064682562302889885875090966116387207099788644201240216030886155240180215745512786622645750736374926144581213297534906425648995360742018505905498404774941494693912501709194864078140685743276816334341613080266329577478132472070220781766884202675670142851257800145987294157141463224973493538953382544897719435107025310014100959163396283880971884697520115598433387761380593764667886957025899486088587013281483902743417265823568634312302521222658399053005144933414157204581699125468687536260249105540154654479704228885576391225787655590520775094872085924877462736106454507683932937849458480210462113930083073823192205381713037271579686748015774935415304606132935816692104207796938607756272449339191597089077687476714081197118631264017879599426684537576674338192752474224563989243857533941215684617936896401473445678269175974794022878575228224877836092278030050660444441750371090329315278185025857989947372687812329033519023894218933412349279122205969712684239200893263843262049521442339988345477692410777790263992147360436833997853929278474600043859448770478148102251387323483594505548723840104970713345151876667365186816110914067453250022813379560155923278986799358081956928473658723993573799483298918078580258553884401544822227091278450227767214004470005452658045290588500965315262496704823650404288250688957454951533338637379975756460341344260473564169097543199707353686019506386772438409279973274235846132810056125081993643003803023892151049465299428234890142152717081843908088677193454291768125103561793618314818752834815371226901224270830205675504893717549670545545552776131568528423530681064901865553415735575979651836317445769055027690953530334929764045858124990269115573500783279658638872636906769541014976592185943342858286821483441825078227440995076442379673899002856430896979314078045813499436258923738919904917260420785053808139374271541420973203194063828201859012981271224409579394162854313411738223119873229510983895900507920302861894922833528599215325661392535874075964542964869901812508246126465563139116693160459449323324093102656818934201681250051865732034719903536250660854927668044812847201125989953358040396677186689739426006753424858357444339946345134122440970488583230514342604759707889406463842081874838678456823253355351382954987752561322409812339343158226812857599720186792268505331064113035872123323315416312736926481879417824290875788256953860655349529283962955649019958717749619919941603504593972678034226036412476840588802620383705134531761124495764765967860975805079174947004193240894527797773122420311112354044100165918067350631251662535294775762215240363137497444768613748472155985461397494850886711500722477863532778025032037702665744177110600863582957021122743677268006677573533272903029923639275529711582692634945724816725823833604791488362983266179198999186219476197357770698218882420237966459927999159977124860277574585451749309772849239899560470481021343630670955963214000288367482501213895487248489653791527450110165911181464707608960199898215271101570295067463541194962960709455800204465844987495474208319251506553942237797823583439891150800660863785969434386705882995652617046307580759667563630885331985085382155106208055794399351415238627428002670520402439402345330029961880759585457666116207531041351328833040523953669937610284601660709216239439373474244145901874918407804953890042053433543784708856830913464123776688266575650176565052148485126635773610167253952390956002448770106989954330483471432544990618408344296733676598645388888961876266180173924043562196706957909816299315573564517233488131141060244761311700795829651917671507878318186207183476594453929865642557746624615136153543817126446807501603507700716624617704129754002746503013844784179235960898139477384824805234964503836789589569236937756523035327096473077079394169446418236610488203176389791209714712373910800585907949252927984592819380027573984695187387030694025315237742412405425246283990752166545016988613569733521969959676594928971424202824318601331109198556134019884416777060990099893487052209775197370764888366912529179470380233356943590388003842780973755024418939666718027741850151800561738110910815328372823039234164842125474192597051867360840661777363698414551751675268151007364476279759786389511740383485779080712976501724353262316811409935350430428628218067457152782063789448321668078603963207700487328726100350853007963403268120051348151708315291632258600622283517965539680209484679355161591146467395201219920030688929287336697931148270919091253233415664697799309075103231400161979672768846974258401897503286928132768113898499181046999700602945313190431527540639998090257463780860171024085474760489151765984430280436105358849271242848651465275042076556525624876288952931028879671242197444787834967978108573286896452590940564145692667241615709556512643947372532116630880760147132944349376709122338446559765045544516863474153374679321545948100247642399905244730158768208856528185054560861144293077325424214300227110557029805613807424506168831875269813856331927651212981468186954062256025826385850254414027970360655535843110696589593973067860489813001072145314572479041420855583150197020447672243699436366066015793921138178974857836883510261962093507034016854836428195016654317846346376250606281672895783262511646142281496975100517924356072022028076743293245549955721774690418190314880892069480902678908194837471119168020956893110602516804347543517416339548021138164728485446729196759364527841258860534360139748216054838809203479184129899343805033964638198740566056660625281180469292671125079239123915873076907233822302172881848321017518807579491363262740906057073549286147905524402225888484913422719714166741262349308712938920221462724569631195403949173852597184000522770794663316911768578068384522547798709611015484430312399608094670293305648098366934169034369081447441060446301241399397929570413684798573731965875981013234956436493091684418370555670008420303119557272167308081108489880936011181184491482311998600115042500760430696623364752489794794073537685654336086497739470431561518684652555082749950193339431804465140438724713298130397022168294971855696552741281242495894917267442494894607459339618598837478823872388782684422192392373955584742618238008484618619844626552409708851780757189761588677229376918831923800399375826603515458340037567752953028443770755254406555145402015801637121958680110889456660281372838141661331448187936381591208721252804409837679898448919851459272397373912613460258155622041998281499730920104041635158875238153890271293487956778107445305189666328656812754343833435251785438188109343430637492106841954570842103213367207818099377398279425238151127684146502719512300705857006656479163796843780329422173065278493340706452389542605621222221527566743428064772077838866682033939489083431526731671891704619047334181596182466469600841728118216722379497695215842164140455176649678189313734652666981276344736712832655920423566591331336578162649555990645259790948419063303735524713765561912314902680002475830327111855749752258228345008130947609893307121124120101593065342211440621142580826458364958707806036488695466273907535631307533085254673661762714474041711967500843558057893352530627249581443842563050543463395783884896172312249119478533531191087745722414435383612760387732837273442149941265854398235438593309727042164098885862521646354187500542610124814586951632054410875975295564105509740562680936369419814450107606817413014484745215441022132056038831879159253157561580166515046317960691222902749929163459037517521582145932651026077185948813851516914858470335568931719355872730628252160938270803748239814973350664978140210100275196105315080106634865821286657259269687950427879023570630990110893005139888451225517034786547875691417503345908370390738085142335125978320281849384709961381268168116049129566240344039295191786886893348608567488926773162082639037325646755580527330926232565279763694835255203252725999771035027182296381041439752431883991053746042420389163239263069697575312045616059880872876745742428821766661591764670559942766986944126046771441761975585502223243370956971235635231782169566692442616391840570522468347321419746613369217625698359572183353510691607541017538751754134096163437284931557215750508622274320033875420564843050901606371810249638442925554104716310672182356343659901997816819445218760543861311382529883206880275055959271729740604360872514208672805175230308159783228026395309617904208564936438166708861420366449767539425708428156351366763598167969132063025127099735663809707737403454611204713723311446250092728511478232999986958733402071778918996046243764285477109354501101037599198685758470440960745195633802017305545694690296548304977051414712739607541198637394036944927878031925916846228793476649663734079148620960082113121541202670474361245555442714920787943710094090695844852806633443709769647592573447497831448913933853878295103038311408630389354022668060017294945174300260472487620955482669708757865120125539508508048543142505518800205477059930918044623622566054233487812727761653386461445714294186823771626817284177709573997724706259678521257601997103164928500621204271305959361116084909710209675075429084648476935764607108127787806997745638468364809228189873254650262129837784239295500449180636662666207717695275025221749426210051687762483798493134517307694285681857616269820217362986869592116067571921767915095701238206492667304575732007490437674309807274844106693186255828099577267744351480314755628665882224225677272866134863128667746782177166346446434347832885344490438930985235328594944538639882157693379552822731589840284543936143447816057076769407904009529955686137968567172634265001967727892173829684715662284989210210273993570770038336676100328419123841284430139069874405058310466530826277365123993832606085717494531358318590123329599729801162021251276638482263347490353632473753036941960901201040470261004352137983624160553303887856753120334423323264575025289046571981131238921662161006723801699960479865979991337374256375242410013453487817172879585671084230212565699064488258731408704853817187943837651744944415136040741103862960150445734264223010770205861907804566003846861283808836442722533021475892640232439198076337433805109907828897322336626107111034083094777261948711686551747582659973127639718053839647595635215160577648350218278679207849069170191023279958219935819663893089409902901083179896008123693090211892096814295667481085773120874217398309047912903242684983078968956048383292048851283942183789239253203387852420132014025860590346554524496965008484396292083425973216181632215851452084167992954841032697930992533304122432928690261187271415255778549641327585379491716123383085535845698767445850766129217853380011964754576768854519794608079185715142397632081901182304659385306335011333237086945639244077631482717915305926462419570917433490276282774295444717421986497021780820555880711261186916010206288917602818838922404291875783071352790038566239154660501390462036835959165510565141798257654985384518682292226583578710248936502407196366860896959103960048828804902982512722483554620399128083208898153226722595574232605674909650696561097371033019409172020264295275242534738801442237250463478759653702621398276000829550547146207256267699062238228065036745706819302135564585662389420044462525604221833168147595285599890950917201818948300994166348094771348595396671580948268035958070327215848221444678683213818201348680628053877916281087078953357764408616530749259767564044697011091232061949924717830700968137343809729693832798368938541412419222433453293348721573687385405604787515080711934961768369572584375841910658525786474561325082518242016936956717734854421339826979376545085197883554840809037742031014822655573644429321332409071595983126155670124314622691047464644844758007840478981040934449589944159185016628762793995924030342653771283061795551623264722646539555530318347359462899541574904824596830577611694918625191565415261736546448442641948720979606475137147632619559568053714710054490250585732450488571078411217271831677314868381115549434949336063563892813086518805017224555056803561985688879254621606407026076048062348697300128142496118071653093625152208667987827702707445995341087741507635279397998264128315106841795762479969576591673660177954624111765910316535382633121011604906941890977100361494711034283498757478644184996338460039150654253391345013456390999556055064785643173284756825953694807559148637123468239356823633563183163961186568116935396868051796405684254414055647495018585032080983103944867954082786769762295913023281332734683780685835103359035811493274207787623582392744726064587071570666951596679217000183127315821876250230304393149425614044262417953046451451545210716774626872374880783798364984225994860912562728379305903960193414845255625327513385465643753943451095089498437228165294894718175762879815433348858785704216732465362766545518967018951379769056214696048155205014489953603250929865275741119430306381410190896970958183027299837615205776039911617230181611724254076516815790926078334019928523688982310019315217746304389704361013147133991451416911180190114255838813777347245177995612876732090187579207129482046168715503116266320131735722393154876857560556327031463712504809468299680594230314934292769748936908533447331479980912541631118075927646401967225659474132467920233080207117459884312329364979692160092972207044948582179682305224190040397940023180232599180661002963202196127491289264272613851143725158321505540092263799126187759380075748181075224365118739653986719100251956614825110168323540779725782231397470576094595985191208056098407208664688375725956144740035723803966553597823325348006100358846085286272575825810193126319510609218781460089881331764457760100249960109413527193064690954893412816606854152758246098550557150932505376688556743111445097764446956586595915510757929049329193010873993555249668119691630200730869858135286199775449227661874067992762797983349102838794005240491519649367897215937410666023030535235162962194437328740008564789325565740934973598477661037186459894041333050779671087774510371587519295875117336434975100437806619241598706256961826243393327306562036786923071139999111715409739011210529801740866023237039391728399405814589784128220840882088584830974620391942659464729758369027048036662617566360154896702244004885775466320700258309305046302719169214860163225170143873621565823993503320607995720806045833138324653035654570337694924116549334137545193598779868805212418204634451769824884077863600629679441661242724116274039445745646807698444163925315809611706712669765788925822737346058306048847126640216069278134256070219518119653405981164249508470335522273227937381914722054515226467183868547685366760217480958191087783658899370281513578178185145723102906159111775541340730933746698704559392332823310871412119073529493731735686159233213644479291964929261468449559348659350904774355970451875966272559727631524218212109586395833086685854578869860032749854897101690573029773725141156039426797526542286521534966088116321162455330438182888885663909364711258064287842000137176560135679663750484155759288845831528437996457904094702393238400938800381969592975543398803117064519272241471403175967675239909544511821248220382595903736540160983347329760362739969379539361904535362674169507721984003795107198058099801744402051449770837211500282703138381898453093614914683597204212479493363530885526210940326832946569080067543826404608549792889151376531987035049223490617861391352733479350649942078158353028558992506658622152070472544147893351171308194804157573847741402289785208504870416666511494689698639012433250265869629561192685982723261698611177998951800529906935262785700959131324193606688168689354647090385404828829696262052229021603919028256598213693042392245111966520799305966888139467108840850242932645711027045995373184988314337444292898314306695041313262453364474560868240199519279011006030389957488685762181823903514039499743995296159741138650950980970560210654288008333650756705074908593870170362058340035186431514228868955555315953156065638491325322753517858063197704845032520477849204257292673365470047045705954842035571862623485405479703316259508958343853423091406430329712321935929308080564661655311832001254113366768688142817831358570039977617168992731949414334811684772616998930990059010222561060390760618337833482899331378864850336244124694767032272382558431818708011881514986266534934728986608042132298496065951769822240285214332384942515100099292713958016385886285015330647240190965853625449498191128900624210626665307746263604855138119801977051682081670380028617855786705882170446038300070069086852652638886308005806102890620960397831977011364605077293281939991920229699002447531404755102172438936243580121750812072555578089581233748203426295517588357279801527041813379193303098444273352024844771543756090593536940755359667529611099231908627269924126599744101257103804786554541955613797386750461662347320048504588584988326709238452753195290991639959348203242692145591128704617375929049427499214795652640300700450078308097199689031808762370458995917997421457054152594910937636873186284182577293402761145312455791090031469176549900721203264181381169847877643275549494638869188885898314227385514245890678944559407615062736973476378617620978013568729472691963837255833383626528681462850639820405103372741108635702967959839378752234288122192240168374962712954648502974934438138913390686849119613804340600045938790096932633958683170986759861312994196054100608513536442831823771272115879230258284423701218284663237773154094027462237942869558342585797960342051330441593382915844390587522377274883703990140538781807820528349976100293085645261753986924349093577810797044578362194750838209340656522020333749966705557548593176018305949097950064395332869492660720130875463354697518342029352932622578663292940627105878953450231824568866479466235923958663663217940843544912329945869837511411160480069255782282095593555727415955267893835135744028250743013250101200782463557227591112943916633963419272134776826958076438924561636433439744774367959579794562996179608229072173510656224090019044555966043084707155726453756588190768972040345529727134755527822247381518487252304958770430667757454787663471218545439120539754956520635182761461393741995853904589339431894780241456963023030005565640344418738416023965890387096067134001455156421517248081565378898811990416761689380287950125548734900003428291854152538405051964166222903154681249876982018446848282752014583636742865573794964861828399719014000069070598545497353373357451117436864124374354640607322020884083294455523714676692819622378559141091772235081612050235907283503921104234562503462097847027730685365184275104697267214228200792101130897234286698239324508154203558816729015562567294437848424655797140471584276288173792444228258167304231017571292055028137194696457260606814273702455603755398266811551106406922073592487058033750896865614806069950202932258717335939537560349419577876246681376228416637513637355803601511479604401008519450421814726899511682813743530154804717132494474452953299318089653631033673410470949552724106992309845881253764169643021048069440625539837189709889920344751925011515079594926307301671445143261284427398812948976425542678673995476654446172414714075148762244836003466912252490925139591869713596629597367754310650681723690119563506644481346919525784511642091035190144878698811242325339316618498590398270147481590947925110773173193572739885008258982275403855070914723328070634594697738466058320570262117060531041497977962471321739805308678343643103556071371395508041191417470547024960341235241084864151508782358647364308433298520163123972237383536678968120383023684089028346141426698461093272567648320823390984597060699216642984976460548325248937208260540066087488513378877275669905285972558295985450895193352241179482436528312578038866002261136417384791742818782839095641037498283709548589745407501187416598198324895939665853608213230452578472850326517601981581469134400870721394096540781657328601724340212736731366436077189878891728817812480060356677358694360679694663996766543922414563897400524409638071289330805116630336437320766476985109157678145297283662635529336828783627023242532785946038183499365887698715964959762172527767358000286193603711531433330294194650753508929655223523158792875702919917179498839503301023633993264164221169367912086935367858786649931151470879490864060543013956384023090397285518951927827565082730685889734644345008890583499315551065663206607766136156173794399753215353825861188826248115570991966197618463988289846206057336034821530815997557136348762890706554062088794553053315232446066588497072369004105375836520923706745534258450467293171380071496075444650170699851222075475071455617492544275217424835163568203768197602449284693462534414518703155885938903058005885357430479918784182872606805618464401251852783523465339837910939499259250159742091986560153244121297181837616164613977463026601984217267354503039880978904449895123782489121047200038616273321709899333106757501532087744521659268680873600153248343070032184322627999038436487792198052248155758869581274465692617810869384875761769639144561798144664167950194510849314779301536760833775497001741534712080321921735456109048857505326489559955909494473630994135141944456615999283769142936056681829304978351777246330624970907569556223724278424839466788270104647896158414739867736535106296750590661273136035691986265339320017575909876286549447928972303454801870387870477856487977628202616667600486149599838695481833933876797620196462401119252357912813123986926096695445494928702427812653924467015262574371289019081574490041550779968639739222149459391798848274950442834086629408789760781494117218873764319983513781287632304561572500190196560021950835870792345616388286112303262091656227919393860059981577235284216810149875257542653701651868564271854711857613135980085843842306967661535050094955390871064444616383218686646057983153017621039362962486615575168330764639754693357340437299290414380084855734218689904083324845462500270104318111702390542797644360747144895057868419996267352748258454893441631466119816598534090821846198924145376364723760724171205880945807598423323265784753745110339640788784587699595808864905918791755552156448333624657390157575458513010696626763569642914386657011772490240901305600528899947239371667283730259590379843184771680256675156847281241675162790363727749055539123817788419979628862743210245646707366223316847225342269205016261258521897325271573258881538125803355767506086023584143394553729196554176558725663024493290290857684409310752659544908919220178545790358732464748340892311901554678823722887485460615002639486220036548966123550246867488300650385585065183053491906709200571797360937452580647462200744999909907612281350103316349712997352878243274967078084953677938519726475407406420635993792614337010715810329290666361108190659536568680249010260414885562816157835610115528968092211782519292174661462644378738836496640055378687375876651973696752611064027180303067907963797082836222467844863249510191987616980784352286905023448811020505940112485471886025812967555330220819391858185064717528026941650130250622332773017062238411775050555578838019222376965015454647616501243368401669872324441693094942521518523861263961524033461918429567127900512710582569437622790761295453490253394946169614366941454968892280079842593765034961886240813161673551067179140160222695371943668249637944652042260850548919351515849422295637770025809257190370090241619131137609451364171267638498100192528356578291144061091770905182307418493986215440774194145013148923686976043569591590397455038965567340308912609686299566908503660956923696995604892331593369450623652576841985272149977280162801182113840305778198081087527464841905278319658669025359909045653826361446188977060008256247508835597748378932360526973777768328057762422977060313451133595860668687807860236348283940394765293354103536296882777010378615193384808758326778523704433401898554928586937837105451164454943797410652790324254937000981755619802123247666247087078095717248735878455154111897356801569425243683449144393611723628914156794231075721373129671164446347088770466427949470750797108296872534391980523594017364061198887076271941610863889046868843185858985599645470062492373194235057230072773107721520974815443231835683661971237020165167780321532064994808664201034512574859861262392108511215757869253598652000953284035059490975408214296526612707764320428989316568652820962264285803311913328903097795497137180038139278544300087633624300226139731192894237418025533833576958123221083776189767329620054355998096540028251313128725972357880403178777508145329835327451711348074844020521440445305514675641496679065487537821043482794002616957220200700165401798447024674762100945880708702439738169050022428992663604759499523456715870980046202726013721938388018375926163769888698752182616890762536550363539867153998609780041264289989843782167673713719468126847319758153060331385424450792864870316217586559972123782813835453922235287056242562292349374284504102455708062094198893859131262256191937766718793321181260707243883724679025863717396891241716217655857022416830264467746984153445390240620544431016065274239199993066849216585606222017193240751607544868581637070653481809882787265277011452828572054270101740769602895152565109942948414881672549311456518164334153188566391235580580645288042444875807578363284839752125024812197671440882532436419467771566449774395659590696464753885469947976626034633727485238142009970367222230725646424979719945836826048453993747222271552467142264165615245055461688687602179415110573783678622134926409942980171758793974785714665914624515591817796865377639839383123326687347753167395088094451290510448907981861083183875994560595575523265742435969352513291085114204080756349326419325667953364474785007145367815161408402062043495372260678824010986572094767168482477224473128203799409342580336905198600662170305753795504011380604369464637279960111539967318369019458927816111491482515373096587977900326064493061424706671887562967694349447318633000067778385866087016026053440754898259163827717103149956979870822256799097785319097447443039557238791178014824879631888547717061564005149404816014363895012745645640399299221568884338360645060452133056146715631331696401302932368088162999163157199701187802541235227394165617521594420314655962648329803610835534600704208236313019257813056009147138021939689929634020686858423722915936952974404855696303270231411479076473558003530759576428489393393230981900300344242103124597152640390325608342192349672800185847754186219524419496607884626020834091730299621864977060054515435240963194381335898691022998728523849531790917374934357638736512440184674986242356202297182023040753922423169187945339936320317477375513957905729528098919980434142814325463914564340412525217758492334531616496831613498055361144206397483606234144458877923438205718245736700367641857051977990461353543308900497255179444509531476575077379786849078776617503714416471461097215396949230077126789641092180874239851315625684204926144593159435697062747799964456443667814397681533023567170607450560529845337011317029971568777775346207418120902590958713434044559842389338068543100826052574211720959532133767411720542709715864237336269066417042335219795237608908257837222160520210057252752106390173251088428547477606127231463339196581380288666164989882634508108379974166453378168479380647132175492787173276309065412778163147424367821140642124762265761103750249775940690216979796950623824598131108320935145858473647878012949934978240042596804712902676079814938995325383825473200078273029512298804478596111723870090840526524868837757942424463991679798210600698792309293607357078456073039290139057391991595403766581776835683336494285093661243935010759175036914222244489900829611064424947949517874793194925422977361560600649123663939285420664845309941286510416424588674054584320029622432216071978647560718275167583358807566705412102427805470959116325121611551896191238314771830896999312617746032496443700252392262557566872341722526616206785645067006086961356454077585078842855850324522094938580501285447813375278146621320001264902876150087420552368166868259589250054951591706424696340765608164718053695514060794598388417183821010300275476245992280030871380873281789739965333285364383136499233009704312149105095056314846632782802492128718576262627810124653372458455173018192432046350018524509176572827985977319104362891640565738545651389299020836702368023395239935855915463740997405452014543822845416993138085316746705229207575503310889742517325588096166438866137617627124695658767075746042223031947025768078506601187172665523771651689087310224408417072024243991570257248434113681055211662418598378927823152808535468149367221741272431011328344010792140707351023510706077492922163154538856108855572622614282953691993679846736644746311587240454904788779055405034670100474303200122652764823166344007104174318734507524205227661629973319190338661427025245945913714013083374503481691778184232062923882621252101508348403058844790451604999245022590960226967576037741531801851781822979031698173549989768127029165014724708708009100341842801541778365953185902165125270509844656329191003885495652130003268649794845952820206689566292409171569947700218410716333257187267718136698140265522131151819696420420771873167524203804075439860939318622325428199383729008741508177866635991177453633804704289854862427547606263081470839207798289872562783337360340114124418870378625875813316442874601387847852578419857685907926028088313089083591374407697759692293530913043566206420919464788059706325292059651496333807242242760670842555412904776561665187790133746177135624503082430958841260823428912330477641943563382654588880788027511196605102429651416385421303763392618344704366928511682235097865152012462210455412494616256915668214268705434655379240614110706648887755661494177562322925562472951184306806871553261845514504223198023922871874199827625809563465481258942180409528008944334008289568933615495338667117162307474520743623365743292622437746205033893130977947623819640842147230068314853290736022049565539400635257588584483627581269287672441279932400200272792260894054105353546055636285377482339022115669060948436094407016710800756561670082833429789679577247177152492441690512533433038266668762053345974051519251160372989606629245171693229693902635804259952689943988690321075990490502945893414774612568626712825211996713003266095843117668744561885836254737074507479669347122465016129378184952600797881465010069403258964164888391755419946477904332400672770156989333379680866181594953386838196738631393617811276294470903216908694123436390746047467077296431011827638377551181079508522956912359362450807338557612703184620276114472298421377612597492551399736747317710906543136912609106378495792978450919214930681528642460288692747272003742410151673177870312050481044727534037413865874804604190835196557036961365904991686771419358903537907480310691486575726149438459952513916560280364274909303424691870247465145842035861039356214219613044658316572152803974422129365514721692883741057823211993128449722540151714707182032783584850081406849097972583798196072381492720379602647924108818936770230721558577861244687182627188362339579255508749571079873541301687136927910554656658959400042259948688565670811985486780023272926295347530754067256368116189729411666355775670851352948299256016891802390041883360991673172589093240029737612270578215573241545289952185208353200482910319704838983001996473219714540657083490651635162385177444013613778816712015458045994653398849440653756930459276426211132892903501915040113532115063816493289054313096291540592370039681447405085063541898030990339081100902731777328465777907047559036234453062433871414645928364354359251577068001299349223568627454444326470136259615711359134703633219605250046589648026613887132537605014918647336989877899250321127768719782267270165453619520483506231690354730259576956739569284056541141962949208795864154352183505170092434148119375876363319238143345866584351859424485802062096166800941970653649506484143510664456684936026724046501976593970588917356461919002722708413387141424383550750314024407452147355861845051046480060628592426871995272753040913890130944501337456561806349534510869292219503568766548937940894800836654432330856414423850680685117553944031325844811450648003960070059236490463533913642684710274461547258640384042776338332935992019553175025961540125550962134696472174337189313875687211841765370528569837438654350477329105019110363134284245281729732759008645450464285275779729942584224851057399691320331192558935804627938633533386164088519463787141847323328681461585336937089622678106832167247945623604967626592618081808336035277869058154525844880820392015524313145134639810933269311828485261968966056931401015643467483806821302987909648788841082153680736822566807063440279337438080149808306417471270555863144831917833688108127181849894243015379159447538957288435483696959680179863449015907757626748501171532005445312947787605580480179132719279266747304929239899212255577354692735997141381049734172781197581189164718501518202072469241756257607153482839695353264644948859922411331684197740090941154158704149215096877267550044290262125521576428472894087369900990145257118992209790208445942430979979887283941028887653046109467873885954146957324035491255853917435973273194518073926215729903248030349700214380862737820342972039427106693512998511993444568235272375219120720641771595528350738329134473054958807604122042050956441525982244523627762293750928605966745624508300310437174956341990153730214554466356392071922879836216643992897371521439077191348603663037400479032556947311180013429192856165755123609011290757301204991437440720972705477474947503818666258447850021532187590900407534304742133301846399791254661410396948711313779384228365981824741928066261602225886552925666594739469469023940609029308028888216733541881863993193495368858880453895205759216317785828718474826916951441802150725421147330102212706525882672994238871634026654521970066146859731328341399302215790524405701897725247312885512315183629247188792724779242467384449223599327377983850441922436379566158101677538269173356728054778554332815926000125221428987429121604523915259799379395314407648217727324130693419805545877879346968924269749998438142859532295799610777910975396484475340135046826321269438796847215025958724606254158253878882318431107027354118173549170195539466927902797106535549038804737419893349995300736747012197889152985737028665210909136733775647555343773749084477363573145715498215409401091517085552019847121650463458531632934999207333911246918034092939312861524422090588975198309344760113810671127956298254429194856258827514272648280721851550293918917966754134441692559911406752047156701499396553778340439746939024350237992446052858527707971781064958452806330945872113421935756380635035128012053694956169350788999023632709012719033448202648491169765143690791976426724971571469742136800104545932221166640574609969202839371805706801679286887713520821568545410958002416898967030571723852934429603291787708572327250593084140673968600214849354888693954060503869586920692395251710306011711536945364607734541336269093090316167867996617539785076148408344629679969315232680001319962466107745258559101226231179057628037975631377783877058178793617212973239494504899005426189686392264279231150557165189112445164242337113814333469419703787002257447803877522729239753549813125240706146473660659004967403272119737202943313313769809017692154335538046373384842821440789292382397857683449489130187481724003049538314340166256998035166931585212565355279863140386484156955712293838857928513945096108837854040694300991388055682876366637344932964224920766335130889788528256218194890377403687356313209448907069288815698176242567027920013840787881628924778878729919971482049944894596556502018849128018711205806483602083579918524530591771311332608529348058137431418822581378070282904597525328605777618269341652168357575241978293243006579811716478375804926612298556941946621166061130305717937918850169807216010281758798206300761942938006681083145009210659381951014815645927712985750800106274685725520372065883749463990979467245098280766993517407784131219692934650530732668076694955440166518046356966011536524867242076776504215397850535976025893386435098452548843499553840374468449905743487164045224991743272410161736011532570305021726932287004344172201751770770906138643620847808686678626912513076570579760999912869950247302250587574311576179690420842950613432597205336211911365679166634807730047239611001732101746206355020231935458295341132404787199175904735392599453096776193883918000002401018592048302471724559730307090452981664387275800774710914472173933539391488117317764542632519308836835803603549878031583265484090123196735241346951998934104015700894032432863567701911101713404247069440971848339235763961743445967422977367572207796045585346260809168102460992045630734563450646491499675523901584641609807901459274458416386521671942684239497448372728832896853588013529105004505266407342019652366552245489761147416561983202301726660178814885026174487603656670613849028762099721322277841528574813570855184536772012129950315712303863167824487101132835146709581410136698177557369367345017046875474941332652644475318332585044716286955431551185720998036728778908975814241516355265280521961355058759989496769055362643202702895583243892588410580985309490170607009316477830000547796094289069503912243670040240797101035881749915462341183433866569464501075208794330308700890667475961914154359764757840557216300952036389315302847437735649639260350923859481757297920972316039763685822830775025567519929869726855440732992919151656046857234144076447111264030247321252980488074777303654846196872419309854266214109773627251141583226165366432042818298551594271110115052795638238424869221305832427989257355802366516468922361029201568105281812080710115252428476962238301974315756185005765337215576225183000924363268414376938667605980837715405065695009217323822794692448491985529841378418106075853798483236061839647174797296449164157154143384578618633100672723626187862805027837735406034008744495279810947997138380247191152169446439670223441946099300155368807522629693671627277718228685675599962966000741322473750104436874224775080117384736215495206798362884486990435736472205769856179738471110615359976873908993959210712765546868461315026675147993856521885689672517459109002649844146252508783031107016404030651246013828225988884070026285649367915207749015658296552943155688635126973017686357242113234486981792863925339255406588705593210206336642691557383186305092913073011509679038479580481787853390422697820494907782965852086539962291756689119911995317927760698933307612209052482736319955305717597610094103596597845377623626459992388177276489979926771102249657011190576288391079882095707674438914959360780319169879692002368736765178851080279291577431805788387671316192895774509786450782328169159960341171175332365912840525354734411501405727229428963993247903824483524544209700963404978050371598025954330191716982439173214349914379334520480202727095660853855158591121123546334812476625713661247913693380857224087044511303792929282081154767460370844758529970926485565256912985643074883403727062899726260414738160513271208402257954209101024771452756645649531162102477326685491841587218853185086026063746319268056061925205148855846925066630626778494652418753178196430034247893780657733239606363346493441711438289462691078724625507568467217911704492890362212357591883466873536377375573211741884301284761837745917921985351902297973020205988094624652927274280251279615854822351152075916696955489470060417721460256696225464426117342460611129547812448102629507381954334903215593457929277379863418184572889015747056758142491218261814955790556219670372501977600286201364468554809939643268986690702354490434506185794508387155922145097162230327749630646968356522822520834343375914954145505734841473847483875999851040671722418360837328795635081258529661225976577731612854058502679975566148802547156065459237247512412461275427785119674736282704716677013942823185178737185602643454879851500283060490898576638377625408304420136253634938077420836896757130692874904607325791286894697815655298294479800853571356466123216830551047070976920704722077774083582290368150929598020996150843924083248539905024865870674850208572242300236358669553600972219006579839283682771244896111287622475753126014956375948323750332175287167183653813885891769433959452691786173059826551492936779355698767923783793224107656597289994224083487737150859458177839720200834370235257857579524160327623994611473668472992542395631086181158969834317448805742109408169147047923783490201585108286608926185884053340226504722646912109897758896641258658079353188939798171571600544791950416591140481699180180269865694199794093189365409630331592264375285837499256589575203807720585136101817000447126259228133065236692713288978971480639640222638032117016950049137799598310742146196172653916555488114456927074849049684704950309452272921369256361159385696587924872296195175180683714947336088992872921930578011354561716143541631022408940860896294534653106495099611479480439538403508011141089159688813033849467771406002215733560114866810022677749484720450845946251516251151637338499240799798254168471632520663491967259231962006327200259059052179006496269357681893744609782917449302591489801071303386893003736203961674506939037752893792676338440961025602043573205899132016546317636309878388237112966753006674855134991587960574188965229158569169383164414348399380971182732779177166295727366725302735592753401771447756733126937646487971300204230750098691964245741378844115716364606112167701631881948761819057245902608490791806524734707700777366200456405373552546580047732332391548624876692496218264745745260876146496727157903710592130855059443521603236950764602510456028818172676159377911979425685187549817694721271564108220349144693231343523125867616234882680768172902585494778434451005262185866087148515305405607724809024589591152386069342169273419318649480045326471511210263378505420665384876335880725755407872576041773960573975792883428285999997047735617929290430427631449383912953987116507559683686418300137662598841880781806793114376823704731731762603898724938727427259895220942776717530419415310409430609072410558188898258903327803102780676458554947741502899997050078124206730436061076760774846118231576114682905161957705458264639611122266425350213446229622610077362291475874462283420957595655406146118280553534647239521034096302594923207101637834788740039647142508614542734786458653057443336871289743489064568891848415086804176339265125268100537043370212351916465612339992014482574233372309367623999030609984472492166917130438016563035080010563679044524813951531010643587513423333472548560514884196713056716206524024329118757145971719405422913597123802860384080044279051089692759833348197330894734130573429527144774372383467423687515732914673672195651507668469979506607307866633964636965020943844444547907719564117902292856656631537883498492788896310263320812762114842329555763517542285878399328484793000251619460325545723324907409829045793364611992671856791100129162466771396024055716139194264224176411632178212173800670343663623086850085947636073230105790958999278157183915838243436326971284126855597996370227389056709659924545643158018666867041267537432946790266133079990303603444752624172377942372151192332511518286310108460482501543244227361756603923892259973809075315532970524178200458386430556579907743084837059476073785521279723819680534209221811039000314598056848836779673277601975064517342545642475022917363429410954551861499223313630307136379342788917693796686324515727019026028171380511541689837469151606343623640772486886430401275902707315167610445919548389384612684184701406775488993542617897066352228861577744714297263587043461443352074800952642411873475611212010151750251000870510567037337496927605463521442978902968666043794291691063027140294564488317722117038346324029177447505004187241102579848115999270725477438123169423033869199831930733443136763654430036428931498704265506435228089990977814485829395767947171814234673100284032708030006785182710858461431911776000266870367501156993282929626958350426166172864547065309833757756549878225913396812062759359571119562626990318869439585666272029200524525521519921242877710904257127004514856092183295331444077959152769878320947258627355701522661140803249454817156063856317803805937138275838495975530329362774861488042861328481941928950315025591030356433858783457461089300461668448093702527185699797007887704330611337945512866142074541409184827774486847101934093119222636948460327811139837800052258582665338073592384754507788539091002489992067934141215989681067668675491963520056442106449983612127955558594753073735325073571441020296972782883151717058402439699305906378261203966029349118709065553709147408169284941257287312394237197833144769192523855114418424964906946801382139726423487990705184756651025888643571143999370428923480901784540282077575733058681375585037404937438665690903247809923988524953122908282599754833763260569327084842392953682660657878551211045594040440989963030737784584212492053845436431168149772586677562083338785318217676231181479063939681918964681617115661074671327528106461935855684446410320777251014212399464425899537573800242272447149250439316739678905485715001450237765425197893200822553802241904723728682714671183045015718121345765217215423118027436109371465583290329165271407541549287593903224759231895931558272731460503254035987059461849185847969435385098416424264591274801526349279908430344348129092831339893793307658397555724399555450801976756255295867346851384594755594475358975784624760163382097391627409922460754186427843208570629910246308649296036004885283809758217975287969826941238309512633064704406881523169957221318094757589602643080870333477404429989788570640530030185166515701831431737527559327948154018336758529960262976158171584456607574047347628582660811391606426394188210357154747301214140995201707933187958413661258296973850842947380328465392147893347488734253576048500224122864759937832845176004953654394005518920880971788966951440523568425521514348256504346829746274853597298573986514451392742643306413568471695778615840086410382270762145094646875496172716893716710717772792561039371117420359025313462396572240119603108442472036907554250718940650052042228444578834457976771416640460761735073663744565397342531593632787619853093956258028750462739734726399114582028949400002384270909567708427997307070433333987273782609880095052506101448909412627902995479213780516916583779169229147587484661778887778097989214472656697874814875573538777917234238334895231997859951190413870016835800632321350232012044201603778165604289644076658344150839340771606160853152264961034549939594123919851628187211160868457946009465620725830222344248793010088825745899519557975102472171094608921382276234757242702369325157079329500455055228079067395587134168428939120615613839895739265806325437632688525087808463286104827309979011890756391895049883910396234668241409993237407307110931504592561008581301698265535282416870659690362733371668668219129139800694874799130361094230554703505556658321116073890293004175735461014375022631641164980968138641994899442387721035137104384770845145557736054443285790866784597537002902902909627718468964262597099973242340559526171049004832240944414124939419461503043690514738514685362512438493777649670181125924574500124227593008908295068241487541121894736181558871029634795971333570078533127116973077082314334631489990204051272387586886071622612311027823306576173079041888276065917339509983041012063945841396204647090597010932628747865084222008930704416158109660391237567175048761436503999593263941170082405199304165440234111392886738666344888953545811555091498117336461840013319310187400410365628559455708102433225695055217922724547144309648908714947474459829258001397618797469088301478088355339600447848029849062618412073554985795379825995453370696614631859646718765345954329962627039303319484056583628454260986842218111738544620861080914572944369768351579580346836816990754314833927095022820431828497856379092788586378422446820712856596225485711350811311557624567591289239120221768912566973217836937616809805613176922831856268752679401912675598550647221614847767267781239139564204975732929158294058148576791877021496532257208017222130743108267312101407799607115420023586192777970890913953192689292024382061898160960506227970446317958133237358302766134815787223772959807180712517221875531295325554459465853217666129586692911501522751931072420910410409077548285105131053897867824199437704964319687457880021141937209554639865890668264699769511656339923627767163631915005443241336915288068841774866184119045539307764936948296507215528250549418668206803809264459766689954584710120770772886545442496178048606000777840967340575418288837208003007393416143976316666143877041752682669140685888025996475216317002959365481653185650900191074444582749079693207724047476914328452510225509163936194567105195179094268247332348158860139380473801062006501554974687143762887010206951091142171886966968731897073243715187036236397768502907740796061972088799903735821690085538508019561874800615945526569791724232056944738833645681979439350311213130030451940193756972883362212077438485559052945718301369883936856547971427612702331211977612462597946858655479543004956795065147052515135794021106940328321683877070231328837401116823652134863990863767767902765543180372247395679287041355450707141246635227207079509735437055717084780662382851887525469622708113169167875145475398664311054659499411791677732222416123516580217831476331428491361933889206730898567553195094221823414286679315408728587610868839632040129081675047337854437976478618086543592773539159173025375633671964394835725761725257141785087596409761961847565380123077827087937583441733951757651083094220764197940014159812454613245395731224225768782428544917798393852189253049192626348786550259066848281443877461683737264477476474177683374206518730414196979317609508474179292046911707620820687273478005858220836243531332845372393288080425491833722529262804279848014994801713629011030081903585857984675918266272128719230478817183032145739911733222004625624834588135457118916158028336958591238402330235741616204340770811541008807747837142984296125235187628706294095407695450853789196278390145086527587399025598008671237133273502220726688898162094356018915191274559139977866607222264917172882075516697860644379164666511478914885001163187277207318431187224737455397575825273782803629281005528338146645161935084985430043917427668441080741800982200099813647980441479830010819219943684435437930474097888745533434670172655039975605322799923193013054018073376862401291541602492375272267275689719981358648935728705522277684909141969160897517006956250964799714227209717492930860009806219285858464118686245418638045974561010229767810868255479964068242856257095674134131347503924104569366074258850110227740038367680487025588929686349253459582073199530345852520289051781383634020804444884781745295523508779216089408036010850084762023930637691724845715908160559331067997619636582960912824498982766414742824330481778804455322833118460996283390722543882670734188877951639400088877996872874218193038101025523788661577171089379098297233587708268571583100218476598025598450700460586034088635963201428989544064785730596202808570094012734366857241813964182418218338751019300054620836201782166451460651303946758393159226499534129764437557439816914772748373461078219813907978101861793990149331665163937113666272140087317268412118581411479803186204962344407345478011434426462470163801154536883822504642457371051938176016311731635898298506183474671704364502305126930658847929386510016254929192910346119660076618525125689896097467601036669402567847224033383167329877175580118723769445006783969912010059062197105810200346402604356819617932873405536134021604305161535017645204409366325268861958842148810937434490531630917006444040574220550924904930812242521841801219042566949031243249202090945127330182627454030194890458812544528555864851200795061012200244706328054229807109232425357313870281081327924198677669865138147303367145606664299275361709039469666659802068388463256956228712004002477500947478168740550536214183253126258067734563023608224398812606857329780556897110583415984590856119547442392876450587760832374430290318999879482732667281933246334817138056123568011254882815806361280646257273879314978801358983770783266293610214400122858042791484712476701766963479214011134378716365951593688927189572021037335135945782714333534367326841600464266768759023524987752465108423729206595244387373576676768793342914553071220642468806668541174055004517941218362316889327705624180730291956944489608666580261511693313628073963092698299293225194556175995489411647402992203637937092584913093966893885805775679602284820301988487227490850672527202529190408215490006980152668566702200203873563784369244209550985635388718770544363349221514854515920979596459132110144470854508763888205445320539629160428840959421661545852627252219530343028308664065746873368076463491267306875412825558334000829166036097514038762251325213283263219505517188778810289920242480687754465367045029132133914368689127968284718265634911668481600034650530202353107994777514828860341157279317445457562206601207485065471155264159895123645158691615417887936676531459191239073758525014383608080702857553905906804751511268466072142558948297853227635623644986601721472834788922671226539340054998907568337779483791112768278141077124097706162637449983654874521292021630071877504359722425834319809262371087079517705973610635758112082422253074824936081029675183659641974031934799932043871559761461293959171385680326597822474521888330303897151518502076300961922560530053511603264942018194931740771304924483882402317082701207087970552370326746519627882353843870666777281146343029042087027156615331195727672605460780392261069996611688282279595150775602350392899428496284191768037249949343050221221956827999916278955859367217118337477672777079447200130794229898213289308389051584450533713500845718547617711065161130708836802701583876442319152939562740214248379790305716862251695201691175156996291466706190166769442319222212514126704698100653978665062665157524614862640281848918790171169848297509012158972968210459120775811770322392612713993831813581114932579256413123071301366839371742846971257081586534152444504206485054656645183245239809874127529659709621383349908097086728885765743811932820407958661641853510338231820146120128322062982278979769155497262398568547931606372888714876870609482392444967253965209728470245561767382463129301497743906070394161800744392836338640195716486172862778270723408124057149540641241892964776251102455771519785823370796413955700566000009917817168594924601631004568817350385710114419288583603148120107411608318855602237667766933922936050454438773461810478761581193949654797283088587847939645936093475065997737262728867104346975238045350904710275507735085133695155289367887502419703170388399598270304245635596674273217433919308397602615000386459681944943182062706686635259466011606005125849420855281373018917977145223675226379618185487949559041445400730494162676578896338851526462061221221980033193364002697546505483086094292582702601885439900880766945275485472722310696262424273099130665794078626953136137461273736649419684522747106489625189806228804869075169540985512083527198524897384604849023688192681639296404591983350156473018458844781206644202397585131854026003428975118017890224620656137463520775041934932092166683072770300292091705595425021477429728538517731082392460914899237347989303480612588215370238384146562755478734638293336751830637748246639070061904778718173338842994387746324929763540212627684003247735971680208073426065595419345064627421501685227548752439192802585177818829604810651547917511129583166490573246703550280798290986126642168653611657268217058114313207675990061469412904160415006520341076020152806704211135893758547512959755169937195770786774396122116121422869731121967374488629822800362234694168911125705924203254454166694422605657382246347856060106166472631243164114085265164356781688208360036998010054412490211841047793700517455265962956278039957105177654073072299630603781943699091880066163892160383205999982552102009853929405581151582972266174214909716843586523802651975573830937498184371369783091482884671677543764337289146501147857834729213563631512779821301422669324344979544845477967150975814299550243103211782850016724205735977229816800187636111724643821785901846557525696485704877236906823762378743474768697068807963594447208166219775264367638284526261798187854735829793225306819921646355516096876719569901951507065287025314510363953081553064776599905101959877528307036550136139470633812794533215108586657724110280200860097999124764693532491022058593914040120246661081528642677569590100860224070049912886601123421273536361376268856405252574462273329090839405020822385185541940136229700520526158138853482376516354236034883238570599175785882671508757262516988956660936958331655465808046909262129504478776196175835948791384806039594044819582660774776483709846824364667625450441445114157674014409636845230609451801943933336212876523382147014044500459523643006308183096148977100054629365159326408581830389239902630974197620823655692462861230867011824435243940315554022983738686252259238556895161507437397774015146512978352321256183552023326077115199962113166963941520872976583353571039204549880999856085461670959556121893219053720990815785280189797413664972457696598878282498874782682819220239520345304211561359361616128524398896389984562591192072233490878055354563705121076411898934429224681565854633207428088610796570235277240040988267533686146336592190310404121497507629636700219177778970770875791175782687854694434753602203943536935404853462720651458878512813869202636275233539264299452306980133808247688367707495673371616654804566532929610260388198679278092033795319447770121207140525688418622423216135198009532723786071944121570519865134322851781477532258357671099372737496146392226596086177913834454817438983598539033114468484176157587601893876777277612944065907258950490625547403645256866888004065680363396382579189470425152510723850489922365373303130685008920284334706026200338279988156280786372512001251124633409321684171903184850258049586616769747642328418726965242189958800877649427975789946522419097436155884172134842371610179167040893112353684830998134398777195636196808947983483816032302649145342618398790503509032384807306316872975051495946381232473668985781231015240243680551256290391142428316788158658146986278379551993104215971023283062851372164988408268821086606849687894892621770293777856387260783244530391514135618545113293167432361214839481786859311422623069296580035898625551628601660410145693088154838976275156788050848710616689861037453192727159634890231952706263870638679185120521484537823895284599854105273570938532802171882670761089983864821182881938269870801181949159834386706385266679615613378264964116850802688727733135679289611078984579921651426813218316313795186303357118935602122726920124060066074400306935803804575959843877147969154560633351048932214208780866662089312663633070544143580663675647271208624012481878567629464895871956315097443426674058462602173463762458818884846179641580561635926538027991490870135070051343305050152154634401023105455847919251463710675011143579812281885558208256895689571442164359907981144750958528454332945985757611496122866282650872530710367820531779724817300438866638658576517699916715127912444323293255620210585392683565094559393937085202261980459804673006147538231643979571345817274428249266306075191576232027588468249766337023318780925426565560557311053513874127168288065953168699698712603832309339776875914457495594379788205118325804414218275613513769497829775276073105934476763195882622094446051229327069276923304438564182286101645259882523485812629431280557632898767779465036076509976999284429679880094561896629553108311994437140512106047294830969174888426962686537440453621173002119098440913057013155900701759110482506147107014834067688466448065152270542289546625883460725791981564094677130438432267523704522343875103830315690254420957226297488077936970089212940782729965728558206834952471669564052967702852081219593654490224091312376619170164291025533277390042952424674319638909441544317762436774454917093196701998350847477223151891966560455875746921831382723211617881657457275682333756121517846833388053250098266579611556957171238029038262758548143556735496340284523670996927478388139414254214642012822289233971568218518182860772522839496077305910744305170548656635748059196430206935364432369254562785240920158198437344210515193651587888696149059970399143985271336314724779104987716980671191532328425721511649230209562950962037188375025072087355554297599563810336491643566804186531327995723175193708844371465032253191224389814201694492053815594339967647991272434775946699843840793271903651672485649080339607737937228502406990535816328369888853013381865082868480944690943139775756284287118180468257945452449023018690583972731749758150362037536466320117596613863334906350585950176330049207081624818262865445845247845343031048184105579068486265700134585044659235881654970307056074611591938608050427756782073622341190989798503982276554746198550785053607632129102456131471695332426603535219963427029663372197721358838094150648344972347843652674584456832201662368956861346266188669448172100591796633957951284399479512555688830339606412331850356541944327224886068479692726999005583702853858113787435039780775404718299362452248336732270310663937361884972717603272662354055406661326939736015720338807860487252478697778802701974950695995947311326965416156986151040192855219999148726335800851456932454998898015822634490764701438589037580127617491494509138258706802456309229571066743201628184610722060132664259339638335745662092785653564465306150929652296408672985259942472886825865098774276127403680567545073199453231088808779428450832142197301490370005760169866009409701034529995450124273468380014665401857681122832434352178971503247608389470103185382716170616029276160072373875626729038444287281638538322983609782180244731039624756133127121864826481503486756653519850977862712134721030396423801049206486441065635526033804000813433012971874007707311937457161081080587383426967019749305729171894252897864030339461552664502071266871585460862826464719003565108333586747931393492568977330027535634991736552067971142707471946965413659416945956740916358646868660538468127193923827370477873296850511655096243050056634382620115775796417099742083301679458630395001287431417607131941012228545606385257455187253585393105700704714575063984777894068658117252844811420669591648824499896327936133527979284986201585244500049138317856336086300322202324368211369109538935569094774189485061353061582075641527177649208325901332412417554878500834392029750145244835144619734278540595867991999348648752323108337042130128160939634021913650398928744619231099160322620644162269709163114028375974624223755950700238330669223446258672367368624926489940648562058593507339497476448761264482998150235663235544065023727811654946321677069247271580401062503274503526059760706649595571827148900151859349795530801245992085262196916163763375612817717840888530515478016582309595288454063206861918482934847141265323526480632645609524942660928312300647206860591219167321116136686254855337658050192890396668789707134209106313311415643787668461717965583859452533637793436327795718588496343645819384103556636840523079202365080648151473789325941686421105959054877984375013791024564900168028962284136164244406036957120875364114471847636988809059770020331072128432543974705762998112909700182085868872674396948277686074087397889890793372781612611951358109548656072675306174056385286432925160358573205414964587561809599745896421341057953997746659952918904126687051729013180711088567749544988202541679227238003212404582670056658104669538092823683234880751520121380240563274209623325851854701948245197019136294423666284446760191154354709953182037789079523345111255110930803337758410754621994730115362305450666454537812630290547459813582924950537676735316519409044444871760982318744409963211523879378206947455392358864342294438057778250280800957462290971970312153808524451846024421293269322186454866806026318463323506842654526201146555852329248448307234736489120264643874433923734513957831550768964466361508000493430471800702516908463897370462150770586597302871155647224779242735416921254464394700001557399526674736364648978530547601045540242288491613593638876824069079067884827279455539582163057390837831150290750952478883398613472666160497046773114373956678267530189342486384126268686567715382506695016792868134827599937003620914225810584468916079368878680900360385052487714937424960017485891383102941473758732585760513304566816324931064298089750927941481408525945796086502976829682388438605860039410797869057012030829571396602071093698931682639477208139569864525741695143170418357187558903874248511178461360919887344645452779214661752414768200906376473797382543982542351017598601681578626996119839096550770371608931363606618216979750789151435076366711609537156416307487264391225916316490268384573160724584438644756532829485998315206676014975093475373063417377709127852705618137757360638446732536068747013431575493315668787233959007450822577462282821828598206997321834848846467261346584472766556834510678189649158690087409622325374764397679905605078405691004113227314985118651574048036024685828476453045442551943204463540380279181811903370133433952773789619045204340151817825131893415385341412868745501023146006240319011748942728151965836860492229124269306320807001696374064129444545578233183981564462084355269059435929639459393648738854789411058858455741830156956939330933911815785810134665202868961734241665516194449590154864811683529597228180144444496958808645869762295039783684270034307846616770428531919165888516827068344474878593510248362567979817561248310850846070758067790791782404622763564678047528351684443260022070927402104314031112293976376184568968260196193132787046157128174532416958471071086323479153350417842015804750953715608517865451843529323688347628043393597496114029931328258114904817141999980260880322096427818683798244493525010345286695557894306840534144690310844996216713166701460723229149507281240860366104087224777290747652493308753135101215560817285383070155747446200806316548180373073746791596464167652705049492390603548728743689967815511341295016746950168916775733883647988505462045257617822239016540299108873712807767338817595920922583239331648626691946086192736652004556096468640457436012736200740163152936189307684310776598553044687913963328367216812574669575661546176574952868141955398120595479558016543216260911313256692837241060424417852210022346903416928342489163148701558378674238536649998740015156817806825637540399092638516125769355903431158680789427243825389078676989186603358393153160253642198625635270045809049212890067789948844584876221309385697758822555092769522531186607923156140079739122490378273713181846957320904177216755020248312968470012503268352900463475645013776573145033042511432649525275708594676744661508540575362193923553395520029376642463692772321761957265153751396224341358638686106646894271208902503514837470607208975717444737372716149145468893707679397081299347171698162751258196305682441188480923571351236117349412234873580571265618650869665324506199432260958400304989590948586187267046597514895659464451605434233042810326994276704666532501669083195231386621708758529663451882739663425977498571465437094890334440830058583357973678405022839157337981939870144699529164144874910794252539322903947720561325340196620014164322033451152971899346173645863428628847171090941565461380214370977819295521017410317666374714124928000463137215076128640938708439937040086732071855870068666435738603036769419259344270472273439126001484606512159740994324937346942577733464324718814856871907580320766644691559334792865038718682016786562432493342795608272515166410530184905427966604867485140187409766832813347339484874318759442233419369039744463566987319323744661202334609812215561795808547420618911031107657467240452576468329175769748379799420200075563435038158233519975757602542063555986457998173425605178673006277132819610701164012289278029078683752153743556795099615385024001475080906234141269929937081240337879807405177117106426449254607886865391319932570573450744765486401554805746378084874478688865840595640874824043817648625612640242878564375957841813545152424305962768952684239852822975019506560255473275977306926432252093099420831889238693728586922749433228592641484498621612616018791008149436561817678773503598687793013436458010045208914268869664349783607824682929522305115628930696214689073631393595942875065815316252508154287333562030134755193212129909549918749812934443694134522927719008014596782273658866071385559477288524777323791925424998293532477898029683377240626728204596694844187278617556636237179826183544158956924902819532143958519332317323209923045564577553526617290654995376218797154946503053383793732314614483907211666510218148983643108129541614059129174393951262170817632929973509445192278878677351324359570418371750703266950496158589767180141071287862766844070426011281974316781275183810261168305813112616383190109820478314791720688759670849534992483369455475455141646036776448027818032401048327950724805866659438464368657717435256732818330054626228353932096919639697765819768377288041603457009866754685863458912722893904486155467445918710088946305142332164884603695141615792292269479224005559973094896737844496288001429060771243745704170416251509712982877330780677221138276596330190710528787435666467210049616498064157628086034740482975287081274898334284084502871232682604608254365152632323568461222406855352819810701309690730063098426073520460228566057738325344501925582753639794899773473961239911608010448920812649266602567384244054810868401362571116273584371623142604627380569291689617804884524224639151558553038839541213079254192683360126518775087011484562259890962142342832151862489055675741786415393400765697169657061719629857886841913561379864683186602304414100604422762983430656499633834921180767301718604591907483241479469796475450668067641576018690357391615725169307265052910053907394935361958634319834981880942174745270880073068104411433919771856038949468486382321009153654429669844353295515835036668539702532687214143974587683436077358095626535294776596706594175226438492394744476652509567169670181592592470943204235269770109489695914825018691339610333577240580701600381341765464918873843623454319788255082673166059641417091446315897227381083868236071165056592220344225801945238579415247101510635056213393602322411085130706037154376010034236014545009972589484311700822024163752845873348756337297844496061732198452050411534680311649820848801407763147580076895825951118246840664938852632598045596124425424785347825540825416476192642638604422297464897364288935432856557209604579569161948518897568800002292314632704189815472988437020674226266033075897281683677101781610423157648116217638996952274367029009146563620084468057698634036493811338821479886463769721234483731901565062925503317796723050950158483112972606446280529150727686583727373076293515508653360253264479604762905636896784697044919405953695861398793439779881210866234618100385655229128612372125040661041072571909843104865031795209628270018386901529605491781879809037215861764405707335149281034694763650931960900767218879906822927752967724374230429435106290515091360893024520882901698728580474582746704036044463291634847263950651193056396063355624768339937742938061379461735834280640143860530106909132106276864485864061292987112397247271314972729005943340599386471167252333671722295234415380887198980961502482052398841567945159056535895599240524280426014826762456348405909479026327907009582874610944227473797295965230587811807073134941456828444162294199717608087618009307151777517787501756596032491674916781531228725991168606881635362815110231817190287853115844302684528050596441952409574470826224403309720851735060074854334947252049432356963524518864860883736869092296824800478761510781308927376384613393667810959764867041001288473422604594025332131353756294534380636640389499543205324016049991636152211119742172678134320474128216672947220356633599331654186085591663702603201477135043709193760947617535308533333208681811427499507535800857131281967687699728169012745183138748917909233865102669114123501858975176629270298207740697307810667370350952416271580198121118249530983029720383563828368696790962537976192108730874041455663389644159823708278095152831750969816894154685051788324394684457658484919478630745933159672529003631546605348278093219020919695232358225793149069940424298479788200252747696304767390152889668950393895034383187959762633494102574973267533524953410732237005442303562482064910172843985433209369047109283742637362095508400914034976017707643433052602101079627000346449579939737789192711889077242453260963258808715183866392968574325798302408727687409083608571152430942800908450411200793978235617302950108416594571183505990582754557480840665128563571662332180600237292880843328489875571136774244885577548604712163125389997960660715695977911489354847329088863331713929921730597016543240741230154247819457898925763810018602023548134607233412383790430207543346828329827707103295270700931461540397148850022974049003312267775212048878437771702554909110202922167164747824362176092062764929597495533893986917951905152862445190181420439906523133032178363741715380693834071530765064405330827624719116006416775965061494616790026386633190323940634931558825180867381829564687086523507765079241648822013365870709802080038940024503943407194364538702785357020250927938530753625478279847707714285224962868033836813829521786832933611523117576831410220246324736244176315453411224957571620709089295788762946446971214881770995861441949535634319283197696091450583980367971229191040467909897194115372637557567565742358688674885639545189401103310973630305851185124260376447140905247412963026293427301395574312475420756661776727612925655217293283785525794523445220791160852473477692249577011179226496731935516686072858444805059113616206053939704273830233505399547962549264768547689871787452708312665149297948732414158839566733486237752971348059195668826798565839447508577818523216263229002352698441801047552677977043244443332663232497138692292836801626259721171018001884673318736132425817442960379096710843276288651372497914369261615528771498645494755260981761222168159356329995598111608532526288423289891869708266323308142124204250924072923147962889622928836857628454597786348988097107525299232748461399908733619889564435652253177472262446185446715847607166608304383043206600870462967624675858771464735716099099323718289911700264890717213443441269539755139197714789150824565145249342358592798772253453601021461861248773576501552375659426752189089504214912147945191708999553362863596069273920696003990951127962196898906007664984136342560222120093581036280144761516282591448215055508278307534198107501746929499312690035992646791088549158494539453741207019317813135641861133699043147970423724847968159630761796702019207591215722209476171648577479787453870070855772287546698447536015016194210441961146020971207372773387069001174657789204908631660153549374331696796061058670423127946485315496493216473800755207987690335525435244157075687210170922452296054121545692402932380721003088106869674653439806537452971960891469759358431204057178383553658033740496609104848322654073501431726545532185619253902768730485267386031018897485320667098201006020618383839969570254203976553174520750135493419379802520943477594261731452511844666163470454358157278279026757464059306681538312579252046207219019361133855515074091269471215799070401156703988580774363632746016560011462106434421348259783005610094277533516225969642593215476576478096482808424761022475782078261583718493519640800838640138445666054418819330160253963764645208566362700867872258470116924292852255163523899332681996532168396254728250668615022320643946492104084923671789772667323205569743671685465730433821407175905816614537021831835738093040645645210977648277498425984063183287765006438482305514451195416562372988280387517180791398227359668111073723422142003922669584255816533337180426341407068830275009314964342804330828255519655895276944935507188172952640808999918980979515264166506200159413964161969991493369154385665249618810556237276950288166266555117542891609965265988397113629184650674739374159371025291490233118280958728849993817287330837876140673982488320437739594727567070428624183116103104866512285842703451131906448688725532535810726407115421606292195682379643003985558197564809896089251113547471212518471867215005844436220801146662768009822016197725473550303884599223244911275007206917413190738310722493778954578048964177755249076003659973798973187464619283013373114016539424763997376784387612666757312394762473330571335014207924186796109227239521026983946048277397320386475518453715239958232151742878534063482054806909955399469074027932420476046232386023412189506590476031865810237841688132393042726721472423838687039919724652592279618059764796152952791051351574919474732860569298053067316353990032795725232090909303379639670367845150853818794908291588457636106891316693131218832179462641880360826607457974607109359952570616850931188132572739151428469184944049591923099337873017418992052203791445184816658124849476424849153037708911904409346326834873707531652716537285461897328495652362243292962364336252399991336864886272821535206077533172196614166990899168906185766188806404367519462220990593577485622950261754343105370745297189362569698420146363827914708046655253380434238788771644691843319445659466480949896590769156671553731395134093739019081208430341268662032375584820153653852805808833986421403210101520087044883171619640653476947811453874239078255472908743730002555634039425792655484078485707668595675898752910559226422631426720925341400942109528397159083002309164755448349770047889230473796920855619364427972696740630253361167427676277495444460042737187873821500015493032495721270255487968222058319958237482791244331012818943441626636740938896178413294028444557135698528825361261125182472186296199239525352373664051523219926537172585658218118922254198976076452755570376936352599479219812946020690629575464225177822545269876108861319254022591018159820793636605871730633608149481155131545111821308047332908634737059479269923519938920699798398978069313969845101894812733864786535690201445683563575357822341071542121958239494167986559763741762883403952509164691651316688826035587905529158884513843986188356721788181514154361177985028838766954413482076208235900287270604375794808040710483430333245079041206964701256995874496362606595791634674140247890123860324848407399320834117346106862736300211204542616647284093842323852785602412738633969585446719914851416047733558363756163597721384028252811760485190958985428241634509385852832743887579154295997544884399639040279502976703607899353877429801552139716333055478743576097629474871790709178665128730157396343709682580291759570306756300773345898596236068209383675075762135363582063140817261602550561162032702319632791859989910467006180840465113264698383275483811208679738114200546645554550336649081517156088515928510134882562910607621547097884393123997740976108275163951776588833207689544116618982678598650227724785789253310958866755347299976326653018805111306745000265417704524086581402947221029610149158570505952062761926027294932901201779573413853274220536435305590941473809874449588334759334205503119676101618880103330262159201606014109882818640825288179801813576237896576127017546428184264217683310438764693778270424131104846450949998979763447216143517565578980175937428710286304407568142224723494623457419761302544738704219991491734863814150942626596267307825505080551630234309359765272634441049449348008871307037054197283459479726147845778504923838063601423599130288982724478739855078522599131811278830182765241731698246029746080509259554011667360107894374694865569443646983636733481313190371429318148666593275306159205600956671944129844481128926962260007324819550587752162408100886058425975144532151216782327768502242379034938826225463684699572538708495011893479765843908541143357414236359994167006990920267027786465279072868617678457920562537503153564207089384940405778311183675739992373007652990792516902905944920363055007571597966346820664398705324636665144193019324284972950369131240970224429015280890716925495715932848360622828063746799678470983862875516071446096958982321866591391010537066798184364196462573140933799766675638605008694086943162109959654096764146142234900669898256711720774555855878711996415199819826033791556674946754154740524901247518529232926428557509562573263006776439398381988924673832397032456743272216084838787403718277610582968961041047718238266538770115020037826708245363293344890997569804638495805877175417263965271178830427333391154641815291096020537600304507955471733601511012134011151210916972421904266764192797412033476274560422375835569814611595441905106451631551415066471195734723239995393039082104711759969665149065133870106038855948712217680009381290170617061830146228789822581874278464553563821881438260971013844937366267744191716792393379550668516788393535722773205007374681760465907083828475620144903359272572675255537464537826506940692727066147759965501205194444863838731399496977003539195272682363207449734574986539812995986611501089324047692239226472252097532156063617020930332807135566803132879850428923703475836709657586521371394716961092255028870973780460547242963494297794762486142588781088276042175482118500761172896084984774349427460622218473036693335424908364122776266520111189580915956612953660633523864396734147428097480860786846807203600110931269794793941400951284139006934636111095970858133229315397154909342548283261940541409516787372503948230054326762232895714647451467504331085543618354179590218346769424497299472462573611170756701797686991634684632222986505235150530344453963154295701913698237069160622055332503218835666032020095722210262882720403215595037277091593050989814351872826130066911674509870373832048996669455806881827699257635051397332663844275220811797756773646314820209158259025365979984379176923336823017395065469965146000580575096770083544403137613633581281416536997400278888326089190636496881162061345820374848982921372951867419744846697645859040282453689390659075409402239818437772817363004204276909619199280855428986128319259070818015684717292200839581708861074202124982002249552690436590978651508027478626298317679974588761574223243006312762194619214795637327401808369124879223945874281554510838584754345940226734315961566827371446091178705548863495889828573064549931352147460663274724179123349287265737616874434448531543115136482503127952905724233739441044212857808179755975145805564923672453927588030215289567608476008479764674812671806866088753820426720291350700181526314569698778874992506074551605420679511429772533529336989541586168706919528602435071695455707330626705932867588974362282341157779472317578648026022216444157747212346460319274208031153722648858973010208069162701549466007652576187631228978463379332849804413980438831771791200298681834761533973324120712309688509170830922639159135618721930490132772120246820690725410999311763880470868824490089091723762276322991931558916001363452934042423269444192954160909440968840342589852042989270771954960644015068616412991206688594711701867402992802919439302612863730906809845938329976071694907198004227888006153450733725995200968422300709227914000347808171170009993534802093271974401807260827828351236993006124050772576617336870536664372795167328601374484641471598391775011154904804625176391601686769758122204637660171564670798055020765954947915443721945594443075211077705567895291999328603690510704207211156405849721343442183614574386105079895314362290930694973768899071457751014715896958531658065806671188052059751840043124250515363383727617922653445140591137736533282540146501763731692137346530318232048056081419131436453806372320123090854577703646031108143329259798500306508766591341770172095742024461086825459493397752416559356513637235594431810280246031953316039560118075183868178623138480859240860623267967738032201631317437297656232957644066526288290870312647233048121186804057644423034068620626840661622310542316706689783170246749603909311835127667823537362347184569334557762392118174138103024751591186035250744598171421576079245499047839594233345532464346331138435925275788059875985098594530125675882837018578950565306308734753025770448389249422827763713152355544131418492955764545984395139500006766060228928052978949701104038274216392935381665540979086470332307439372942323586786710280441443826569571282111748309825956840076921791042658234832667983610064001604221596470825213587457457365140722442305097923779330667165047826393052658673828381069844843015126362115950533035418065180631958322670929437365574077510511002826428037200551902947940683416095492474582439120521910109925418609421288299762080359994753230138499683952524551602432085275052857810292060471124513923234042444671379426943867411622794743174634166222243683138809261146722687874523965257632551418946058155684141608971854175527980995796429528438986560624141200914617516776696916186862266686270801482469970587541464478407404882973655473156456732451136580409805124268281996899925610827580137287914735359027810146193360991000353551006163546831299055722757062907749028249098141793619793940881784031506249286602500501193493564054382534936699446003938530057727814587538596668230990452097936623212506748387955660758912985663472138345333778902330543289646667428511595507751464767050019287269160093468134216913661426898588555756870834792366256814255302142635051379703244565270694139609482246849435544331403170265367604136781235314179619725515448676671422485770047397241494689712240166351505207523729266699038866632980593475709633339675575823980766694736739836214345109288673716056365404981794161825775515582851404252430689958833858755018006134220687103385950704189934709033186400389032286153597731944158865682141138301749572626464826065271542926866228495486398607253014500536454288509881399314820842900703105014339130273756309828457889223318774382854064956290506561162051256528205119673947550555239065816849164981963554635851113140417791469774579920003556485115564938969477298705531071468658524798604107528846996150873964943477565426986761194230713612695642384949058644931421681189069997278292154828559308734496572805093617236410770112034950734096259476257818809811808513512665274276899786161053262199236110820623439215261972572192350938986938266259758902926802558436571301950098719165377607003191220440285450665252549579110879006360635312278882232585484457939150627382891162119010188789756813242689726081542448694512790876536593631630723809941964278171856596869977216974851962165938245133358046538738053046540896181509601272951802676424911825681334670162838022407889241044798655698780975317715727908653214215666718021033376711461273497618590015104249908830912155811179988776688606107296476285777442725328783641650506016340453553575983384686985256769627626701546769322630810707921373904769235394385883221968792875065296941508682684090488950256691201268396494228193808050967670120953557092604626132492276487898491455843621443863511427318645423650401410740801796199474422406676981185163343397001430740806282290217282591012355339334500832347384833792987299141408571492961489486528819170877987760811938528182297817262645797459665943696236359050506261419339782741817050568862653644792831606124747577539733715150298597770063263010668174157205379611529643293520452979960117973348462749258309002910013008067931339935615959445356132899605823215539929423490888773842715093748572729962391949751927924113469985196276750080946846339667507041148114710215822564386377280284212348335461259133922296231693450348483153255394259734739672837859537694807010588430989952789417502659061175785466599099290594351407795268717649690704448420555934617789274203345434103544490756425473186169048870645689903839651944606243443700867666560144679084867509529702824891472568042773637811643434952526271560898418246679331022772061408965614411213056383646980998506305866551192843322355175925733223671062165444025790551513713960819810911871736910205870174342636774473270807764328311755660774222502537894074232704445993842003467464008221814857130635336611818935895924237699628430387840030176878028940918450020748704159765547345914505494158627830557842758528185614767875426676057497594890852436190163360410268637805706415650088370847344782123469201752711986947798620902706408091931746787889527030757041723085700831916922908014592345179434242565520161049446713695808733681156092172277327526382285055532736085321816929719358747619558390939342821244007106231796760777493358820701213626663223585706132590437267407796213596652149177786451904415427818935839233168890752446180864105292467529657454081581120979718462227443500816518738834009588921692227439886324013369441199260680337318509447865139178862589604755994621129873240415085479415881811462652986749064942170641806843063094101346442098501533135181331351953670812993164602008080948885321853605351397850596964639163454923430793970789839510534812670321205315087622554829806881988867851125278076645051321479888140610417433038284680247923477383050481816667749900235810542944239944653305758163796871082768227047687337078485183211004801618007112499903831401611016154088276997034828845492588815171554989813843737405063047096065839238860857135938046818368881901917459843723930438247634487245792110081053099101827799922907146836645583649760954194718470255341667195512501204361780719546114788708628247431738539079149263297927983720983206298787996887478770137520952966607099314954366879915719001362034124154498265518468642411749234855695932930405118857070489629445654818059944504974464150455480216438209738152945280750564107970442916379534964163880286004270921659916080333775902883270135056572890847043609964748319565773786394201185166741049842324741946589869855614592966091188905477715791111663788004680976388654736106034307249604670105850226504882854164507006971339241588058533496902750232414915667514070913195983010589229089426023233882967173613724741902061955807390298679095404567185816152956708577092394876435647868366137405829715858366316363212601750952399943521312700071730482858947297685852954533949072480827300626836091245517880387356173416303316278251948924351426703082528415331591061299615771291939158669225400537986773029414380007095625767325045083463703983346867645445631646309948873659423950724793443721283120012901663695562304962323912602554169957863115850275269277396765515744701315119286430325818790467498468437589932209260884595243082560605963036314375661001882205274224046654078585128158126482284961152235474048118940842818165002020298354538637671842568133487397723576743036823701568595739885928514271249514838391377824663980357815896493281342221527267327171885809820099096909081664866442107758269658029437624570024276364295153433332321130702169367240055633138251604046884459878707294604123926749818425273155029579636514034421029706482273284302230868201606469805417229732550322122573255791308752150792558492873443052638983521917771217375070242171791264107630455496960099008466586674034118724744358382017162721890109279344036420075606344687445495899568380339871475614425344518841500034403667375428515604471776026477314965788174437317098900668609596443821583626976980704017763934459748958425314873745502848823547254845529597159325480946466545962509828026781220223898448931983688895560405289938130338760844545389709451678051033400877712358074198412341086505264560820643326918106723025406776636871198886800403622068255359650700796439411076865824364019013043124999937986011007750779166979880413567915316808362796276499907524432224324146133240330438790241684835912882296357678939504949268635467989360500273472337913356562869380039399325372164173215139058029562562039908268835445135476197993762479059306230207284100526196846169624926320560487944610337309279897475863660709440261483304229791093960950635177810924185437662339731498094514702644372064792077347977124611506808690275715524446440892655896107649362049033551831336255381535151691838496149213492811171288258288389679348252295753779665715908708845084978710030278629144608358337027983873184968399837768585566436294936470200757631962997753654313390092232529223907566931607321749497749396162264207573564640962255679950533733150242712439577830729527885308543240146512850324940029541437582690937584041028146666869705294763695347839091942501607100013957681417004103095844402041320571153592090411917480233469629154833612876678250416329203397961183773663296772612035296099407251641408210051216169520054652109971985825414843847188731414356709805426700501357045552341076868104353856168088210177962516309093662794176237702546320984028351716267831191948638752254364016253447741384447796609611785118728112364153028676376699417012946374910805060789443961958193542694403225687979341594954197724181397707461358334837689291892117182150488731729578623448871075586252866020305873478263546782472915783799727743294421056048292166083659251202183028858679959901668212508329727075087652177841627792615538375601111610266140651347394701091093875856554976872017452065998790696028011615101774639655561972313206373783051618306985342682683052056003309770301471151716897475726118353835584744268113606672977493850811482771998005115310631116685492113736619972662513952542573273606515655133725959972922946272349116603385480113410790817907478762840765781620516170173271779759901478877221534780533046679956683701614272291954056122658543873359753680011716603664239859807072521931320115692983687779120480366949747675107380834000713821058560644652170118273351320535109085182941704906318685132467340487409805824607011802246293244656458681369430806812051860871250368956034476205642549871251541117067787645968970835328084063398969613825043708420920861056653426587710389547768804745152560920654429710663753937810901943970765684388378624955448063101327207433374551831386786066735040002341525568818649303625020418432189293577688760464879366400901448053107506834982933805314854170448428251003496127770424605459942757352544476817360380713197600363309749026490515151233220693352580957639509713781862377360381518021727991922874954140506645724008534061511003612713536161837470843865048095483823603196194084105449804672312167570146553514574582685093412287242201500403694262167902265038659256325327389434809963182099454028665744236418630690311371524019104665805257910724826234863901257555956414632865411474340701811756248435156304908607881821580059710381028000101374474736939186208382790593382003747698860104399905527067985920097798584865539883562955236320698261524721596101067437929242153391656677626503430499250958583386094215649105729381638458667165928330228165187294798074478262701796874152882853603259405051810730098283005400098689100631737058346595984111224559333068251332649054860186364814764242354614448426690130869809482993953218492968448655957240482862030999013372437297798459904625162229973601667769226177801288967633599086943011166293995487142964665386325669358085302997643362808045571219684489515555497409399448558606759483505257527249781028064889828952492761600260466956632980077944239773686653632907938199060424183701297441962327192358515062200262553662726154301761642789049882262607406456008423736940399859887811518847016663572643885766033949623964107892844830134132194222453389302493331849560948399344496919912494854616979602011366556032582375597659971227690592678301817228197671030063746232991171619010536517338795578635278255644789022029195191586299904671362672259280863185074628386942027894914266674344700250474018995451668300789151805729697542983321976067579147049702702955158782686633312633234402131470842024540779820464355147452170453134904013615672571449960102618085993481454965409151381074249451533577441599768516617437186967020868627687070527153763602264596319921534804155386212819087123720601013834895410045733044718595549337582485108131568609132905241857722469351703505889199677863330686286815957314961010280179258766804039600204774151625239794306115218754287144780978631214139451133835717020292400974943582385535860562100233539658900877621727750117864118346287929156038929428046862904821935601555772968459602978933833482645109304719488912575368631935751608600785707982229756145622985192589593425724174215904026792370375759967035423978364922136367166090192430654481210108822556745509775963356169977417725464112539007222936774267563799185700482102414345988065647625493173657333163464759576973243577982057853597192201348815298377637635791989671648977213301065647586495252439427813856820644236135426949730324448751179245915443626685250972645743726453210621042795101256244759809744255252845184279813926291409208265292959359618391861429591622425091677628672886653257090124759598050390015985926749953874367054005102671543548987813510761065290929033156374189963728280899756363724663240225682378673964174008308818314786868605382534299757158014341899149832289852007728522680679555561444368649927958845922736408243092598386685895271406269000540858480937762651157658227525271915097596519368318847889053345311090299677603396549769415245914468958815150432505797761373042886004600217742204677254176523105061184695546680822784986719141870524976881263959799754648681627664977799367355754068417904030155819920339998442009710082274912342927850069575106009553739224942909164851074701316410491151739191941351856577948219059889514862672329310386699562054649623231299886374825218411015236418698084569578702937622578420011716924416448134153148272785272115722285272705516481579559502714080524237283634138564201650525130741172026451838536691356405120112921690546828005877123529708507427670120506534712594848099944170196927563342034614890326496762624650952808597667555215452255499205902479707010040318750671865276362089280340264423681882926451148230923165893097631417055891969540641772053085830926199306018998618611857117002824746866588608963050162755750307224304207441177544269234864906805837697948943156307448581932923381526401264410722647684886348940964535647001318308597654790963138484612133488701824382549043995204632913901969657263830093014007963951209939543117724367668497691715132429628259145798576760330382033984777797053974337770291958353787610804526257110756329974568646236119621936384562413119417570182639736247735304785756771450899628097496228373728686213652298955648895143541159111520513916574129990890569984768546852183782083500065370604562239563584269188648549346485432784301015844756998428220218340411968434817664602921232407669352130824872732958076878944109032623836362087110568935449720739370254435060367872159030075620359785054479717291273890930548028161805734565855161426442644408708405552952946120279598069235716459722485286252665377708954713408388847140533545291679694099135203684814041860440682205138868030489219752827729569870504897411072481295944129975930472574410137563966286179838608327598637544469753340875402818525742357383372219246201103663267323462481920551656748023240206605965399056274033397845917252451736454106481366062807424278929030456859987908093716317201041596162442952541114133172149670438443305184676519052577214452028001246063767034351944738372938439427479075657126921606387407727196245311109175542824800299212595324174186515332978018133250318137972461080227283618062072083969266057264032611587510881512222505387545024796990627037323732188425565831424116694158508913627290734992829192254677380231242298467711967814340239235755966043461175498809445887198395389523468536062591158045234553462965809014946290992199909102382184709251489588559932257053510705282239114223033211281239816487252749425242785675393578938048438652696260762989737025730515387823397137675570298537776348853773197349330152834527657166562558685150802692768040692113685864086067260529605069526953205262039660151179876972797535331590083457681924582282652874290544165085305766232823419720958116161855860821960700550162702796317285646363120583638192179439866682381416746286584388544875049292836810428448649119047825405210401254597092172684087620461897152486626299862775966730855198281329955088155247982008524564199405586983687908537927283878422586142712549551555237809024360135733056947092218608628265479869963164686732366722387986489037974268372747692491247910752808637386847661564369800353321217948877753557818724952002355316341961484967553637128954770865152448756052593173774853905305944451976754678837268693019535466047514612719069532323934610960404910569703001560454477719874918100440533686893278671882885853460523698241733068450260386134978827920214783615873671121868991358087558623791270314233103575830560404657008626658663309217907659350455968191932993391165942070177000568376008834251147820488433922626010775312596604976815204711655175586655179933141496402498746177940306021571929374190972287993363698575384116220569666714389407145113241402917674195871359547069723349072190365335208654676214836586478967815283643824923180219881442614931014142991431466064555906930140944622783125134756394894274451770087234275534138313996530206577430123503563115259308804082439671469172828878946039952069687852684535937492213817131238360048335314183540159175542072460731486858742637855486361833594897952972072189964203844111753218717808107266706571739410734180167446891881835385976192761237242651772621397349256386460684109840773956713478476579782283847227897348278232979540301343055584164535391593706531162468701909499150871169322707088659381783027305805079589858592161893614501842616954797911856840104340134596545105803244472680000146616119906740501617185887216217972369203644723002810350831809974201472313972016517845424043495453070828405040319291997638137944426070411793032627094981931205623771670250157849406434867867490301130107656522263766473624214341156345105467616234670050675575408978587903690682538747514950686250504139430749686817588612387492782343792102774872211522814537190287922523575949109708771463732861649017648864829926021333970131385000665620914293431563140920514016964882093652948969232510605409798846849218636561428906838097033839139360403751459883886168330041575761956034062508040439860757668055592343847446908018960909505005969849721085612280406426772677677447775393153947764547026238719917546781831635823970729890353904491868027368987334433969733904922549005314047236380274140734395680924511308520513046552112377837864513055522133846421303971047924307826968924776998133446791581393948244893532464522580966313526062694289414433318617514569111526730883641369582961716276002314943599181030709512198832520859979141862934842050559737048158112077999546001668705939593480872203668527789027514223160817192552118958112909708767448141141055113366519499001490290687373769874628379059941504257736409400129575444011248965075165436988418024075073996240383498391072159029289328827741235024320834007229675877876016611519227295701986335647992897636738578904780861111532528785333107191821150283748807027938782184589969400423661566906437804777660156123507135159795497169437186053086293722779814079329533044485602298364631948365171022262696190354392445481899555714726336383154213069733704260534136397607745712017449106909977570800722567564539871507213362722445031281961506403172860265758198051202240165350544193001840566567418781272670895255433876279256458309135698361020771745333125230732160312215667017278932614238931289697877757274771640524283014017276969118993346740028358369279142799049731099073187376623711084088397568670054290107525060347946213685304860838979681184970849230589565522885287309243124633310564927494205605979309034609394057569607364364780612418216191384172046001655040990927228629555022026999699945133441211075547171724576084504973577773234901525631076107636188178586996805703289862223315165612239012898314382660180526063995639383229230029757322243868216930722453985272859234057085935282063515768397077871298120206970320252388424816190442618043805061332632690328388293357902084385738441014115164632712667739516444570551133676081972977219760567663244608777564140467477967492758817142968620172922634607413969956642177260175429734134517991421483700812810589733027622196011067304593410027501079612513305460089263333710684810843854910612562821691658617794802683957237754210440445351311979517029672987212862263498523073849299490407758572450662935430352174178317442895663016693463410586539169753656802593628210043102536285452701389945812523706455690106442554514962036976754388159742304196369857699921704023590432551691256383381647049179688493145645369619804830617262375700030072176231909497110034210637235888524467895333410213855743006463374067550681085019523480750513833425725786206170565471495305233424762442068080099104678955918621607370600674829573284230150672991030100692119583272381663717597439938005268308686272878062580367258082680364172794428793224352295101943457087458081173789669018591306206018079443589113565136047945421872410574448853561733594725982564333101760486145394443262197118750796924902623584424979655426758891825269474300164344320849652116215815734147238012966527167240173840210063124244636439832268445528883440557427836175132576737547149626631401955037077537381687925357974871105273338040500421295014927112007730070944276396141446096682067755073446373268836673021362909297172852291638633696938736542070650852781043258028862302943261139279006662245426048538251297868072203582968664498749336324725953939526329818683315292270809305391421792962932506105151777632105156254569262945217187355004773364345076159943171761863463430589326200533831041822579943794591390977340913667549645471048348304756128084609425593294840523448454877465803313870688633178175092585570295352560550653937350432562887261919097590649164179669061184898193840089307730558226277563766604971762943820902244183961306658917446806872572827213654839343100667009331325858350149704591146760655729069743948065894251711152296996090757297280622862671672528097797868516616629326803342102734869789255273871694431507535463580929216918004445187850124143663420053621582277065061129024725676205448601171806126770063634148822676275635013493826638412056831024517847203176549102096425498604728275516929357831431534764413384473199144723565814107249285285547740891302424988084059003496885061099138006226170105507287429360744109493443102192409351243987901194102969564513220320153362598830002779481230587503269610907556257327648426491039048102787507130208823651122929213975816532884502057524725012501767096589872534856185558082514067819870455057442196594815397049547597843147200909113386225630741709672209675504166679966476942819170469573312783657875516055956159206014654726914056721902349817306455010890692302296217555043142159949023759754681908230872006240573878110857968963000052752740990897368523857330339530606647939150842785499554250075733344366231260690575143853542433906455654495610541141631165857520357739111736472091343710692871912456947376340328455431365306920822120482644845493368012298677679976112403953402272692943431819927738771332783429320288548361854184934869821188492644845886509917778694940645105152547890723118733900766507374608120029345681910183105850913857784939006118297378723195881652152348591626615367891170095913824766684650873611352169293795827621111895734794072773322479945951476443488495780944106457246283482688397300410101602834604682159573315233644725994625759190961384355390150166003808398194975151906126477251175286034646201638463275801826047019751576900925573216604020304374965750055362507650994850581580118595283372619252135800393141032718343889549907028039950847911623498872537434245319820722367713684853440729642003856794492061002376316719390744791494772991844837821287202802800836294310348048974102883275786395877946888548785429681574307918682868621878672054854075121786297948521644623129655597333043841197850798296784596579992029086185345453166114307864072323809399294612756681775489454640970158961059150013830375657325971149596163036199290142602081751382923657079572052601382320028022036121537928614467371668943865639853570526246256156101871970250590012005011734601606451047983396083675076709001056223921627048780770269900879118637600607171246968228644033705342793213507169566918000693741493219987770365604380437422441361518922702927085999183659423776213171550891836281260987923110252245660588367552051181114630319969215841013990155695039404171706107312149263026225121644827662602700694744911297662813999582229622765216766846005957926160373703021983759729253688370514869145986222099082701616757089589694850679675489419329526340201575283177105702440474306298416329942391171953564014968264527079942560021868059476638546450435177452335362105518282254571652541419543788616770177794038277365306761429843079448220367998659084205643396943495055613932162302582279309987319090898712232585177339846826033045047562430500680728637553519410830524690479582818739096328207041942009013219333262560241518576981796489499642919427827003756393309690093763331492927349318914519596506770185243306749420086956957796474253683333459985769318943743988131726549293692549487745810188941506781378292031254267097508920793949865096859545414123443365162771710779452844258545145726883389893075726611244296333278457624001467121345242199314049256381623848673964613883298275946256831221232851022850698455588276776359716747760086686823697563776807486723367935558620862595157340073483168113251458613617668476724736136071895317479234204937090461969124022610784606436154159264836197329092521751815763630602902959717878717376754392506166784630757731463998750469985889744314517039587289125369784172560802522181317218160097211191149979821119796188621898679651767934068555885551169930062708787616772720930180538046040409781120808966701525081966583725940632661277135570814141535292973323027857655668448965537503157628924258191046234115955376551484403588520922503553030202966041832409431262157342103324837860050720123652889602078961536429486763057738242231311127857738664826679271907070946812664471020850833430963918755621939971860368682224686929438965208282625520438825675774336829668672635051320226135088729437841581756008554803100840106257170761682064393284422936687523196761893345842162425573165319775974822349208673914576593607069212862315015141214992996602618073285621480363212769067702820080769551589293219669892568605887715595386686303950587161628722934336552248262124461693466881385573301889956396552192973223218670733634131762207325276457871443006970783304433652878603074559710263194802071444134834692963585552135029408736169095201563511917398713187269467603045444102173169619162569704787227058466653131885570437551483189063896567310564865165895595689241700114455771522818513229608071885958283738938065882451351628949634822043170229774205611123623304218475255686363190814207749966575697461767274596663834323650515083949736579224878889168231341897698997785063899213651678825146297576764164728255954650574753206950761924271263727450582837019229972268179663228034758700715556615541299181972665464896158625433818236193809411196724582241421749214022457623782895644647031144596565311679536314025680603774100269155122948094564560737542430003330972953430197508220242007818983124554508505169160495814505047865099983592668840032356595476795994304127425743069178405750846652871124680161278912074536743732507884845590165737887789233205141257270409805074986396377047003865421947137062565808318418149950319436805394916879472771070678045244633290840827801905787886028079920021029079117858271372844016447103672555300475651896619642998706854828701492167808658822581643631122743635979290552595041796346090024470403298259394245171167517618533984797172862406884228877676945819873041149719659194986044680719914116815230019746277000894802707457222133588631881823520842153953199230119031008651730758009686267524868503669617318259411130767334577648354385009553671279862300351468734706217830024533380233454630625320789418899391301594050592509347390314995254936918589291910245734335181404760478907738924663661351685097010767826579624476740454121141095635059253380983210854213806944609641419524456928846412737764841227997289288264555221232972543346146750204530278322303114193505531495576651546384249364960319123407977929596085845365626302215729592263581215006813470450230637667939580132745539444183865289828864520019265279677443809495484133916673816977652642324335414565661072364054923115342929364671142901855094498249929510811575958224613213820058706014981327703550571745095387116826874042599964715907616806409609001447175855798013882850174738229474510763924213303924056561181068850515732885292213729452464010937998455284893818779316706369008033145708670800690823933520229131331392667922324222572092282542501832246913373713811839534035820485833395618264208362186161796542010216111718547873645129284487603115641928269352207171512115019514830737577360886316901744362432206691823697699873877277717465105067270847398545140127713490594544534525427473605460584345452055187545146142321973675558082835211572454116175416194877938710452955468469191183254179364288883206874958873161609735694544053094075513603026094836761994127417299935035030769510798520913264979931474296915146960692480469939597274446682188798739842048524190860191294597907053044995743724825291848316157778235410053522177281429588619919617886694020164254581798358953648449720795935705236465605109904573983721750248024757174030465790651755819428003437821203780396327634250854850852504397886945377943246880547776165539826157231884184284100977867622573546279544999042177636445400236962502032543737903517722287480066643555897089667559371430937427421525443799840846974984992092426712850950663696508367266618087174604796101061638298412998340049743127161806901138843200436215938131298889015489180022873776211425549734435855933406514067636614056992334600728516823345577579800388966865070358720296433170555092146137903361618277653071295865575467498422963712715212671078880087810714852499844439985857446113509748982892444454439528119847766181644784130284201331478978577796647562353014052057232303685186300311798086602406934024690291449845372086631970901049081141458975253827463508851783340535024190555199884143259384812552358201619546802179629418308388225546694838627415952218404284469280948592852873205542920802610300046960493782571737106915164686992212395228438038696972241003487450929536389640443361880860354688274166822652718205499360377848870091232554436685173581896675711638644865829691932020450268269101813025176876860572980817939816201822631909226063776643905474479478245049040218687732232547444859736260067938595521982388631665583458293076367926944114290237958606053798624003922005451437843774263400720684925844960026187526389431658436437922889067857014206657375681073230067139347668298755733208981338921484742072860398778643780899997619157492847272201816244105830612943534105040460559339171301957884218859843813037782175952946410799956745088385234152454782491299411632759947641850847926834253844566146530377667430603226529016644291297349143771760552153103646548833413482209691750926205819485670800128530111735673759488568071444876428121441661402962970046656773327366644667649624113272235644018767620334215916935713288715563556633288743031620619281016681222399318782561878114816538501144170337051650384385315742743270518458062377640881560978656695860343367830689869745166409879955658937118016067218301664680180134360088326992266143911899698771140679548740644864268060870751579814187834778322353917157378165399800703346490584524980426879346150066038273357112092972758919717579715220528219368538209138176827303773246221176801549648608934909395407272033373928805693882011521574293405030902558493958583809090061967978417033744725976257826068466177635404275824198459741639800644367360910386554417498326814211870216514594782304398460882037170620599598248260230465434699994149439424937365330207075580554091300124799089117660085974189858145630593641535861519488381276486905323343997597439082627767985276285991918651169145310241993714125557746646537397006479461618719899872464089708846663957475720412384644302941436714859825838546243196849165612681034175287064845295671568041194915861207378717062473972695125477601174964361939073939952727143727437368503624760648525793424719323541298279887170909104750584448576227347919940552221012547644452162431166326275683514164698861665999846103274836757455798264101770473655607691503594764375509071631089391007068477152358648742993215240898081088924460753561654578711159980283607283447993259471673605859312185946331935726589988102375476163174979166659669279771691211367299834714770782046552291396081957653611226373644215525197459096932371288754106408112024658574336701542882087090096688524326786287301800723491494998248957790121659066829599692943503590957697619388404584790936545661440601524143761129449000638431878354522934006046064816686503021193390929763172735076571613410516050423178950434100280563792041194998949094351537792427079730397748514057719693437355209447444208688907051744177136714715954825770473902359803491846945343657941233331962449991265210585034578247242015412328868147054920138888952942879958234518945045673560364955415803762108610450159688915236550359795876172972276918637232404556984431547206261151296762773974757809788686975994968001214663463520328172662446814611824421213342486613764380649096654805458880528469994858983387537229123843690892657486632348366651573556455286810606364273439863360056557944757523659288166359426161983940841357169469028667336701376578378828958130686194976435025546785509450152665579580387096304500937734404890608496629036185380588470990962494018061858011176513641051478588736830957055750912460438448669033311767564729523962337377101238083927966285960173848780896281145462351088064863589734093806942190128398955020771715607350196027644393017699260381527607428373784213271449442619276788475749521065959962448940406285293757291343924703341762128573095861715658843854730195672564678984410805647016843395865206478408967429287231357713948468120593699269116639873145915841151870130511464207741642009171755927238571216366526825267455924999376577911753032083414572416916757987145997834377375090212053592209493742219368118921152946944845366440176380547741425357749236790894920667548149842198417800496040041769832506827983019035319157078509113550119976302346776347245219551230350476009789310848700447138374246904373539608050411727215163308612407021239344996369251622447830275514221029587105913488118276876228372350347279466564184560741222284710007268426266277311399751362553213503641233418808250433555839345191184985685478437539128326911824473282087399767726397911578807767520107814606849789863465488391072799238694691932265609679712063310186311068542396510260907947474137771989416014471506448975184980277401893324327264555949534440573108465019598243459399833108027850055483609498683044258460664357456934989471447151176263323744199275247258320072295999990183092364770985051627006055024990651401281838895111429457535615205334089781584955286491346193045607882938867587534033404331560720198983395991015834220223844887030168246316498219998899978329083108611957213331731011579009641655130868337345180885672516156393476190468897222986608486955807514553933753337048736115244335652463073775528016120553241799559379745402331534486537955315651288923871381971903832828625669570720249517397255618024040052882821971082322674657019512988306848280312443080683669972489557278507178436177529056227924848200307936927616651403438172681426533699042506451297797875374371217731555807682985698135653070673337278505201401458300998653536984209465707765349609167666498526851852856837352860392242796852952040225111598960691676191529389707579296292470749477162997888812989467000898996733951713750881709940321677089460010084599991872509326534368787680209028444545083307738732172136877277343811434973336872698357108943843529731471787125169963769375260742138121086611835116463277844945314338981419953516831131750699462026507472035025865909241085277127547847462656850244915205182352774253561399321480438254392381611572853762906872720233675874437663735571156826032243744002912287199325274740376776841030374011311535150386170456067567638296696336130486012116861056533624564303207963686172101038237993656846374256994659571362917817905489284791231417587623850508135499694987436581819172500634747385058538102637484524233027291998544218641418626314262024497166022968653911636260969944226154866440326231813227953235770158045182140242507016437553925250220999280392305894693032008881920905610043719513475523165683590396514037385903378808319183846738229496170002174825733569685566938501258587568021121320973293871338441658221288315891330326445835806318970563333010898454933279496300647594784987576084569545681326326761942613223321131229543812625549296974647157212363161244032275021331983924059686414350751853901500562582707568952785830166539028292889685155465868587120079890853863966080155556445041452249118092190750976542116749075317765175250539191597178795300422808468108345726522989895690058680820783730509370804331302286457630901093074374281362656825333902394145929541806143015386414703285859168187151320137744312988965758885740350059998996641531833816315932330836851656853215692493945588868284975504768844714136298127747351370674300300496746171751566786634731170222484614805409980403932436970725990047392086910483718599832028106597920147421412591191423602483008404420837360472992580260102412408516655474588491057695625766215155823150864769180623317462539747175089840771959090469209687245576463436199043212427776131348601176948448405279488517631117350083544931899820771820374966519777844259170605863264940490833553716102425530176176134360633736869110195442099575378786131709413380956091526906306304186271552541271363654487673665225779718156303801315992836752909775760532266142505739755842747536176007778635068888136893927407843189609150123094504475317763729899141355265461333686759586422868371962721908938211739973894927587774946705308808056341252270553521334868620380884233310552612439328512653286811044938808565581588036402293093257350142308859229809561747621208775833883751519670779766179214076790128788318800095234843850042645702295637769502282988537481735647689719344404648926602994079034078834746946105386273221247782804920176611124126374063829586191892069263257414841084679749314785593700581180201494041888460036895198282786487564946806277555771285683155289594476051532036479616006699281773535401352792848296709709128535721005871133618111752649178519362495261025020093667166626769804272321198727243611191007111070473177070340500163860038571122651255048820413284971702935026299814045424617832260132145536428781307230270572048522852211927400331737999688079239033539806266963262447388730362498166261592267355395387811583995184289862131106508514010786844766931522303036460279816574313413897929498205979900844996408052322225974996765855809393129460157909184165027161712511884356909282325026109307334687179071933010995452490584635642685764313931179112300076469257942469181091973222478214518795826438891299723879540846355417155505783308986873286918738670130635852448807167213346099916035431146148085910327797817355571768674498169345504250767117669386134784143063890628623570359913615822017425739925374758484282169176347572659348478923661154156345673135741724448018547860668690986588800435195969198168268776681732548676036611272799625399836972749136204236135004904814659958863298450361694027263463539979063789839116840082195979154966749436251096972889552812478859020940634912447634990806750433757470280095753674584167331861158032608552903965142821630854168600912873402661275151347705622880124439270653866163608848089212189539658392818187987050263410539763004994267709053400333664869773412041988242854743003136067510231649218958184305999926569894940999171468648366357280217279707354198027807936661000283643572235061683275614496597665046119257975379545025042490835251315169615247290593304787565718126605693876500000161518676403457590120840105038648373862207627336574944644720536667500941961676982000292596469835270879334632113775856167337099980186907309435993453765302883946315116304866448815747434937685597395273824967359531462624888713421731982882939932633611534182736049050224139124195697555633028728824555241674242881065734142489426229114120894782328328524178212156325532712223907869832399626899160879597282665328258630878125794903673764442508790236486352447667116329326830694732729859465066392997350167068028080548576952523628863207385969703811263926739890968112655887455719076565526434228674867565297206175961635998596914795443982037553455402626776801093010009365152023914807955311590909875825021860000965149418643374052946843450713668092512826103447130714894494783104804920414371611756306052071942426377615776415746898003539172769844200917230009108787653587102374158446972005223828162542318196734145752945086194107097160403909788054546881872436033224945021941142787543952164505463118744294700812749841119649627390329102279314692325732545390970822070787026595892515095707336911122447324781842989469988969768669557016258610897230449886257411967129041023464169911722036328314561321978416997447726934863130658345416941726854547187132094962872143402716188064859386917856098916435152948359651354092970827808295781543070777986344159290745645193596661918006314193265949074804592400493063424348082626504097105118346316461059634950272982259015728695168585859051863112128346288304663066185707015901037619000213736787913840505764689675372361036221004836787486729835636349018690339135286067741687527340379303306156896726728285887867604309990993243569868713185015805849735000428751071381172188506431353824829528442317204389246748262461101990457000392840880164703389444618884522428860042838135386792428732108179175845487013051558455698952192270955756566901178705081450088493680270835065672575228362327317998213924986746046754649566703454667754717388827267430650780890166511237756661055334946262575482724580914946215481967975891379394869302812787477470013537043322283305121133252772244338818385411293251516676328574116301657173247639198700641826035866273912979232620659561074889180746500673172624977260360209257597395779886540626996903100550737585480459531100743968057638580225231501722280983481121598808159983202335964916993991000220754977568684663241977157059104934301575391710550838538125950068112621735853405446525668036600349321364613001872933295478417732358507794560686230271865906402068251984740547333351743432178433527825603130577419171927981489119578379086598822345711583245736878027123269099903917669334727461167479022755151412049275751575745616560834834213751751767809917937513273082543679226570926336867588817508002067866523156178294222904304346016700759665729593482820472924297253471583549845435567621175994489143217778315625448325983697158596942532468857581275000517311466173066484446482922426159399611169399176259322993642636141794989992777813460987179421647260360011161627504261342760305269797958270087484863973483651846464310173156076437879359606322612693356503539709954601418011486873680609025921072325741705618292240363984318273683543335587604442900625414530340289282385378941595796302413993027119783485420065808634566040811096365502436814605799617876566606301924382620319758020972382600526547474134522783050185654052734964350575183047244014411404921704112532072734261993670684555743699990877010653263021150584483420446588751362501370958131778052411422892635508582958175418115352030521911885547325667274113339167832883531939612736725764922650067625130161845532992560558184217345973227063576001799144486202348573914586101611099310249614987642334347611331037672163842467106719734943535999517508397533779942965286968442538006072605097993871581998128589629235637379267362866340816390356867632692081686389145221140131609318329702988883694687808296739659751195251354775693467954875301218115984460648673135115398947962990888965780092595842856639604394163108665395980900432788251218151170919277081722576586720046232404398588954010064527902360821554187939554337114921396254563257394183337820354851205950074966172867863224218763452283594783977820040443069514546715053298004408661779278310062673620800037554085301054570347197826814408316032998012640045402328046710077429716392869825396124135124265360243870169923896494999952431593479828317932690956048193179955570623210916658521583672442220904617754149983516085118023539036955041212056430073566141373543439688207706406886480889720390174027223969170649156084129357947301604375838814710335454867449454119334587940594085798541910692139843063066142336388755004916839824269611710573617604958559408620671135633233547586819410039956573804510847478484071552583394758879816667265392633217432109083212974050315677521244826320324529225058658856971931060783600460818829849131941573102924287616476188079720009885680411644211862896702294746914712445133041721746920119335282793200522275581224122112945096383629982286087592268832894750444947958822371589733929126819600546143783091639298113791392141176602863632957389357927963455173595331788390684627435046281621348438147672955952141740143318520014947558483666045516358039218606081196448135696238031265680088333665562883501758913381007391026497864739085439747210285802885630113559697070018546224553737884842525346485519361289624600318672126873256744178424586488435916053331349816716731014288120646337719189231767333894386398809081903645630748585954187532100893305869787253272344771841516455777011912504223188059741322191390115459117645029343526414101696564490084979932300104940803160182557789606061997394671007091702839110355945462385591453129528484015223245111339574618468440033825657532772436696602006538625729205176951372647426713002323715885952529836481734990499511304534846852243996794340847654470795007930730246133747440152661517795163427068428396179289321436409749618780574512013846019645772855951897772942162185718146347635499883859802610548036721923558008143627828464417051279243603977019185814174368807925721546749671855716664909252993189945448277069864764856380705989504664446791656522682227331280584229967264220696729016496317554418390472989116958802765281823007450781386690247656777594919759068077276265963824277953471952630956899914184422151416907750409759139507461882992156737383467946031299950354443356884699815418583960243954587327484591263724236336952173997363980158482735787278955254076912320899916541843229606239385487708277563822120137420280615796041276288359941887217530917715942857923412001451292074531162376557078971312715692946653536686446830678067369413572666534261780696015591838829750896295916824462586342342161543841442113098089499912049628457831802776606719682595022935018593594790021409685354515340589057196906240467968980094037580873474830712350651788346120118940064636568631690050599625375151899974061449186956822943092701106090477550843726700665354603347970282098096563343797197233792764639127867187258469370779829742124367614481588575840164714982763932391730268988780407042521934076227264435958728008867785486258284768591666391117864989586988442577234134909013393153761791958820450808290013200835037377303005460080981285610097820136677942738657343639727323091439899651232223532564728900253127572618289862768102351851688483639868286260277529458871047193953487598485050187575873449456465938869922033527178753736190710686607328589260293199078816261790784767628455862455602764790427367228280150194843603572205351353517995343437168341778146232495844279851758662406128226869993546000724596742417347508059478331456137499246120530329053499869703767848796176353383408373210276274300518503355008799319844052388104069588614420584200551784377100428667961811264607761474780848710261127560132693851341230716852628566429164398065816236943480354553710287932320990191554005767073217935102363059525741856700995583850644267089335977701054935652800141204307819912882324904470468672148054185773761276380884922899657264070863429013564576989056890526604035831358579994423789253395848148266002809121522379549614272148213460727122450411297021770732280633676883406529983186907224898321296775624511590416496218210175742545958149976700091931101921204609312612442285772953315666491212732975486413490421722229479235955091848584437784056743131479845790717838501697494413771558031493401638744534759024869276563045548424702225839001515784687277965896988436026300435291902509146005876601195186744348193344029114742349402686393090102428342310163158340285404296902807547651579440207035485359987870304173674992757013947833126800296974255940759154068147991598337153176581137240898877559969779857980698258526749344440130573844624302496357272222920620844562580435332753322792143988942230658790420241006256386730398881464848735195575245832369951512645464961411364193974103775920699457630288175932370436820131825061793417020182118148357684300131940529536464997103374308895524064650733499460010125639358470658699695351390396740240299054522480278637913616815415055900568820634551323018643922528461671427693547839967963468790170595555458747232619119668014819619399821071730468109559087066642383378031736089409454640316801566558009629481752414866990987753557495094328711458837512578147159454824804974919160594786327838250088681508733805525210426530359652671506232779874930308264596099627306048368345581753032017903380621549294681634501683221503391015733982366279960637022394634166341441966943914246178456151327202917912454119846120622325377360945056261510692452905891460196281789148656272916966483614417809764516804883271938258911343144987432830975740567936601708658673875855050879230253309539788529571135533261838583627996384840920261702153294700061219518826725869934876922902018662266337205239584067935348191363054418716661571193228998532575823160391190501884262566864642782958028686411495350964554893882838808348063106867286424429204652742402266766055212769387919250766042139243832378443307931328817852933804186124528098418987857058837699550513713157654458256071718035468537735646279449771858895729230170680999536321535233166228934824038493387351870629892010133029470082107961442817416460871514388352096789162225766310499648378306039389900631244276133504391317974286119579553660439446072944515282627784866127020262883732717606473419671879235648708034523798288074088129529148222043916447780103255941091005228961802761192771887281515552147687872893955969699635829012750257116687385245120774963265027779617615329539241254967599154322346916217217737190108962683146250467677545229175876328374950574245384157624544892584165671139509239480563248972660691480401643148212134770319983982039463389782334203459695945434790452989693542550237432000924657381790526504105667007271754164954957203879545238626242202037055457848786751270999048345195278238715840712844430883288345912404107659134295758026812960206967163548668043579989831387279381917992097079799252982198007138233596929728058752960119967652178240767715994248160515476843534056970701568566658509176567494669976680976839054870626869906465731564671640976004825774576418420341169447796685915679513178770380991354535745055485362426769239486355105040313311506797254248573019117681812588052171294064828453342984097608230440557355072429198481341229901584902731932161237991597953573642626695060021899912467910197750388025764571635211324500293953305581921805643431731061527656077681196758099634037476059681905401232363540804593045291903302856849721007200147636769562759916945342872049330208046709294388087476579387306889924856655132532414216149638347050628332103330246093094927502533345939767235257885503391986592604711653258755896324244893515989357926197264291899054706538773386040968812602526881074288263777236438466269339574173234004527056098095379249646597126270791684395052647908496890868215583105690432967491118221203930352265791844289690688153950879347684634292004585659342141798783081867509227321764542131573298352137609260525589088326233028836601196425836124731987852262601830244250953571539363588349937759931603157575669484194011421753417245588729361055212013433242497585073166729233529633429112462912284950885002324248350304302875051011582650456449726214350401567658551675976397873048233383662610890503729209942957678121186608608611948655634893067457502523032972882378011052195202295187107543424599456925856829634326898229282607814190549670981102322343369430330044593622617929944059891834459356423930566553512959887683084057021407303297491093726928378861514146745592035443304421615962878555158016956457223624179189310077639732700465035720546908758455880067503355429229953640194595588521929786559935941849710684397833394544303401797650249750171926488503294229626152562595200062781823465370058209892330369284822935363873558322375176218736970311219158277137199576887225671320610112863661776513519745755770344035867635197679072655330530536859463031589349047900602850376529230982892508846463972094329412339412063350236178132610882848199408299959947142847687189570180485721463240035481493711541726265554066140343420050515226129608440033734856937166086249818595085809441544027865081165929735627518458826270772735736960251386038013740209615446224041221640240867162416112288443408855659723045828092468322401457499654854289825947428638271503356661825152284838910906833332063410019577282723178710859439813564204744336166883729117615106873025935204597712529252451240821467338018373322079349868394486278614788072638405221853881040124831289260271124088937237182565731631125215393861386238861623567538365152921078782086691280672822295820637534636418355687748239982975797090134509730642833156223183574855170805669994432422855711401815574843974568121261638632161438731661530842928923238188554885289159447701833661759526256558977898289105773336587187662931175363777069900657282748852772482528037378336707697334446732712258466192152765512455461221715099571245941899683249485213565727153673477283150220751532843345245832268711068103731788961482015044613086912119069012065251992360729315634201577203884199232132608499593883229094255575550117805439503456661159458813211392348345627902196629013195625197410460797901934819366483673339168510752611160079813463771228623207757891950685665093031689081866640538878820981429590435436864564315546155806723096311521422299044439479847618816847275306402167763661309362899539991011547385097591068987817901969721345173786680571176862977641364526322522588304845699478382621088703139060857294494698300238169567999238069102529095406800104388582938269141717519993257780969142485581422273895951863131371940747378199735682925353325933692240969380179316725580198178765450660679987645502944377726526185392829463208068948230913635557026652677905927030327237635122271378887518460368516801648993938407571220036904153536247690961463054896566433831627935432906883175524932930630081311754902885793065084530948651758448302155395139914879146567735297024951497869401852673444287804434977950075755047157917563698575712053995204149908718166656830254568816330136614165509124949286579127752845635328699269666820180144931656040313246959157456399490289802921606976551053286571622372092046925503720080900899184701782618024870794601673672608302435684963443805245208612741089308039502421018478544747906777342215465224066151804690650301928713403852197364166917978852099975122683928413384720784027322635229796627228058185713916934273362379136736352447114252668539202265945130503285238616215552533774945576476441823125063782124407508488441935536533694186023867836401619661285160903975530369109597806584227140525379729810100983427291526958342298816035178114972113737319486340880531675245882548392441851877549483835150308072904329679360497175325626193039143363427298911591671864675755936301856923085696279409013210304304395198668294703947454146968160814440610836710456144010857963662436488511077035525708204881893508632162868456661652010657300364355427726226944865612263742311998963764406967044648983098166820287788712481398032454349295305618367832329406898513140683765771560864713406050963995245957469630891193281335507945291217604686902216053367106863594419842956335214061576667715047250404997317680355888987668140370720753110166308247697541691646864067821020718144895538975339190175195703385691711371714181074126604422529769905991974742250903369241701430944922694005191510415013338103662808215858150358897883677805307207179761877773796051560090395267714087498536863938865977980388645784611013346292451597340428079911113081309317514636916885696215056906054018573877783014533901263246878959656989663333297844636721343106907302252193884426368805656091115171504048490765333343328872411557094686685767430934048899532638824388742703978685259082667479915926753243008654868850785820308044407774183519796303610631687219772241033481951378168958484023621465225543344406382179032313159551510482482769166237653587725602143596109056889846944387229652906113783687959232146842668245914495354119249019305320160608437014574701793021726620661734005941049940981703605439964023490605344334236461940411621061961904573330552641670167353896924961983151496817323423322322957411126493393154224940525561137944255714715390805214659100637955436266557677472252028607914288768190809746483642328350905444360294370221237403386317657201904817420358009711243557063868864421170912364970044533663016915017265652418553580877146900972086364359518020549202763579781326005214405178436940117132478879176083436645965563107046672250429930609980192258897641576563208810030704755635248282118523666085737539530475955004113087062609465378095997310863471365499100163774927103579613601226023641834304614733483799822327004037743621639524099621993944617624519713864300638826437234863672215323832278410456825498402981229893638809186467350356649485724086610459329158840212005067635860163499745537031397109797417682762271728305660777707005891523647994548374026591396808401846063148387142487674244451020038452518359306605220208017159771844982550936139658009008619558915434112377481343165146812580333616553850932057876640780450514822604104102338248910468391156691855686020199570288110593791590405216337863560802406204604836931015320058158913475870398413920737867512416232043700138787550900175667206046290029970331263575505995485967357137365993339771206395245132705107947395770079882319730949662987260982041782909154139452550140997037921240146129807145661389540794235452885458210065405566465257733591242137886382774391790338403250035498462834854028032941304051356532307375742659569750184629761017619913871316385308620165297810056489217119670045876068580624333075424307512566696402867843574412321022900680992620665617798304228539529153438189302584239874087594444531519129902646626608942032046663515853860440515856811004879963513401849814710113208314071471090539477583992010172130449213121965408768653130669764381529483234718902857695761948136122363058953964272791424254951864350495891930430928098031980839467124037179277471105384347256141744694963597512709445804520832860807774953291088988242166618467405498713283109882512846226982584912785622868740154289753229180974403595243825473516423188255234120634051733113803312792259751875519088968090167284309987002492437977294461199463049206142385095725969859872604689285180784948448477595881820221598385010436374731681059970140556013188898365763782854148039992075787398331041822105595756904240208119120993307655936772685011819663115235200746853281838160748005169761060184725437918044178699784521652891906165252178464763522135813824087960884358151905464404097091327876356268771341065053377840007038608801848564134410031879299022946041080395067313169885034609107347163318644216706913602414042240997948697174401588706966160801572113473117925375114687734132538063880603235787206628612438767160864000225475347378399784936522020466219154837816695460916422139692908671631683187975206607918861867786113115031061696039755586537443860851446170558746332967231545030561895782227362153423187130477900540565279149704299614984369966484884857140035090498589193939651169431332777984844837715928534775495110797986790272294951515845313080249932219828493132160577222915646040671554162893291986884223819216913480593295512969635940605724708629202498603380542548337555818963536520412267832890144636831401955643883882791815145041313638472826535967642296667688485144842781067009436706696299698527530651675765983888397367296723478486969240160402588848111997853402461693563899087033809579969483665546328750077466268932901894983940687682689023395000556336399587488566709690907513289401360665886081073953531919301939074171323581685353475424521607567358633301720618522061571362617492042506857419708819359623161221498402118358187762945674435795481707066977558231934081348412732770475612152255044487505534954676689879226133335628956174067106946388328983176439016250468283006296532084132624252069825214896394796221137158147223864785533220677543868524793095994473769343078652774551945227178021369906145699341936345549787649970876766398259997351883409802007038578006712860378771971406100587004044893486145922178587794437287757540750643945430246102634837433733995154743801725841472401451609006412506362714542009892891252996761901508841949954772351200351321925166638771716528736932226280173545293652773731890894958385935141650746930123275852446941780021231967213743647247648403184275021626244678755307594353070206308085734299362779410167742543696971329701831737708014234944238532022277729462060466691695764880662779934393090939704577527539689115498069570356986488360153556248503576555242128645664826675965812278892058942736144345185985372757102234676003394795021112553841202399169072946623126994131936162279652238500170574779119299768534336733329823194058651709411627539207114923767613841946579454237437409919254352198931034526066474773676438052021052881227055872079002616987868193584135975561918852605553613156284787386299582525695522187521266803103067950790937706362687373985850033952215840923206488932950431423845603134094559392294667858139898898554582667200053294709374223973739521384365209845278679903593684277023588584903352070052273932233337580886041462030014394976986239184702156983241048008444457317724706598660985159448937075926943726272059866811381572421800816486983449433991903653291713926815672599368999927695296344740761372307522144771821527159343140135106952617721992046266327610131909613310029674458059232501850139069279747608607919976565503155412487580433403083026324067465746864182497593784667017736507196545699539754617612283092215324403633176669866840378640113388603891353380226724004969560525256999470885496744186747856749042578721474866368164315173565427033383379796668585938269385017507405775884869062981049775140569471962588496182843879015378550001464675260342995399981838483047393160939211968906255626055095043510681453086746685111059469780864290766440120393962281973046808201553244090887850839158569771033764260288100926342579967251903164215445512885588397869290042056597533055762535741711651963078951042849071974537333341950862257181128538148157480645853440671435465496075383426979293486513122191472298426812487921334862612996642755186182153103889706013827236242928248619519335021311077991258317182617005136968197531752758616025773153897943355058897653306518229361571808865494365373242938807600397679032086572818252770584596193081980434100625324102073883123001707580464276172708011966799058774006348772008029658863631221580536040935147911443998149096137061069498848065689333488249469286960261999316990570815810212115415895425979885237311517960434182908209591158786549030497879240216362319132929470423714334581919112136593146980121427937663150786272723276297540188484887148174204037401952354450075583340953560897501786112384154883136569006492019481963757211002866070749930212685266540131259793491899206509357648792142029890703383938359288018640858533570320109817412308849373456812606537876166981205836507400492714386412599417099600244976108699487310324851729555790801552158240547529195567854292022423170404516516247983987883501411487876653580100529172313520884394423996328687566476742427335493739345681178866462446356746092290249029540435766805296544788986195776606774751182001934951046448940665802406694193882674614291261531674211367757823571635011545128088085234115737786309924794901161658125439784340820385441808465865812934685513551856388239827469978451143060590684578420681452800427662829389940974319302128463008470759155895421418896259266231767585882259323561792507563328087308821719948902228076152863104028288606873791133669465236207147918212064281669863224483055128993676972444586823393737970000027042512444107623320252936890278734776748719550436610943938413755955061806710072437846633606140664559977867920528232808858972532884020877260114983878127771900199832556554398422854102265253643963460982515089112838646895118875158054686417601356727426356325458475113088536847270541979339108601685283367998767495851278824037341978157050338592808623798655375840863216437413908717131168650403450077291781972013839544117959305170380818868176779284088978243713702594845137367654978180995858365936793395703383720611827265830121660139431578465036174482001352446677645335752473483235021875882420241543730303738165112368833386528371006492605171803219096165116889298039094183900366733174462641190430833489712454706971848807883078342953615655026112812846027596246948055543937596389448632694781576815690200645030379942004963600098091558881077210991288182850724122760117880894039546692936861753579352392583948215402986496834955359240950604910892895616771156895799233593534936169237918979373719387639347429971716300877852173802220626868887216591331730549221899338347883775725488841220480340189026981603205962180399839567298091507815261310711059122121519008586792539646723260814331219565501298325011128839103449461124617130268861517152702701520243700885279134926480841939865008636120473916483193555142606289041847486464572761346614988287481907653679232198908279507055713781685868685775886833306174193339911627458541755847879967443321810785819707994567640282453341367089613521905801858137691834374613091218046431604221586085858762217519952837984398897328241346833025202103146320622651414606532109510591601041143055460369773132696175891671878307432345138513843707280875282923880530344480247959196417596648402208493240414657210353195508897252568589106145067174335731611185806430263306653109641097898882405000799532680728479753668447443728224516625269296807851524038898412732772904052184135269245749441246814719085226391487023601662936240927129188260298479692677612574461366974330437878353590766551792119151629214238388517715369369535404119289102729541876010943834668172644067712804884275107860144616415817976056135889149543356635798938249784312716875908337723193449204204226664572821121440767602107215825111323204214863866634057114759086365849806938086427995842562905021687417471193280186352852481279382324206028182563502821237543385031387856103465076501770783328105302154083403952883736711081566921568338806336562787717967299097059414874116176256288515393936419883746349010026581930416199721563715237287900472151774649862203451062281099879861556783666755961428851404943499059034317129530662940137607239910240315018299677690006365367904566361997688893192573768956149693719435953583250771985337491474025768944310372406373289206393342652744022974189977200913458545254509104115718591901146445316737747344821405729711601013299011331712375015299557136819376101507665232593697073454577402668692256674351757707914578637254936000045147800354740535711206838580186928639087318357738764368856740265326895793576938156473701636729706019848371545054850566851166658722639897763967179533383393330367387534219676225815239550094585415428833264076578502224865641961949170850885862349954356612924015521630725764119697962792938716086685651655415420370730151918325566194805755240660565630896717605666158137147316058817706890036339327894097310784569205491534692397193673063440324416816337027828059674809013863795654886797835890287416828478442390191042168131408363840004869173869273267949159830076678148821129407730264128432306269387206126900504298219908909554875477874492471401264698572470567115213628657820888568631818068078341084007251895083289967352532756597165149623432626653126756914409411410229229647085500342352752270695756615477043927000860095235662082892294032039416237513148297743557488648159846105016851378923452279683921255289133955288828920544977441200662753021975388191228729138060889432867066120315564882009431187016487578056948314938063704147682153503249785595103495132944511593541099644850026266230254926584488673906104479067152580371030717411015626356983582866621438119241795236209520835620948971522139530852520475314937920583600403625340688912465881931764134312040698446382881908111262157050325343933479846269993157465874881266154026970706391375826740674347017829887731043155981283153944644202108559017742862440267991283485373938253188273227042660086986285726553585247686536982771006418138518524197696370186753421372208088537432374124963311570320479055757802147569681299238550943601378771029854230775617999409163474954359895373978291824149545589177725732812487180073315931215113371419542917443023333851327084410221280319125592532370283553858033514703742781141175005700130034560747505185218173344463763206113152678676972429093709716283804786783346026368493915197380596218062990490649757325273415979971003005348540380798745618502960987194389822751944543621402813938437299893850290175981608507774556061793861364108108375053767274175872666192168179694488231578081087847610435172284063539145205893768267696781588689224675533668400562148347395967837291025917937049353642209763052808446559077669149797774646221102885270587047793776511174483200778207373264586589570477102869761601525498015422474670163189030546878795677429230035183664433952931499572394552829964849320081242045949797775511268006309060069608527894592415604860352713169529784908137281066414762803447184180076425813049636392047471870313175611748821102817877591970362247805008377980110708738471481123375214137631928854449636207350282617913816714865472978581275394370227966887237750351089361448247113266654664411470636490108057263085884919260248247895482573497684499017703893262882004887768267059828377073895072976927843142434296947869247815762933637205071172263675223825192846700224871508078182366457991336770782418403774569110752127211779680744658779310070709622068944155526513985274811641839263921843622153713701862621414765544788088911509986682166014934809289304179230079486008333282493242267254977865987948392260479378817998396219716059438797990641607073439110492846365144258640238022815621105207799010643331619375232134028491479889764597592047599862878667286649169658422251048764806291901548378618664615243049255414049319562246086691068287479819234556117426195899192958097877723919408679815924830189775277618096633659467283140635842466212835645487246932730202146007605978978667313661358178618309823704436139842784240619975286924564963593287457778495853373829962117049921539229558256623370197421569028014508869816147856419907407557836463401880019603925748693694067627391023407220527253770839129151163961139399002111931126124092479115642275325036107773660868460061209727066349328400356271542951327748387727614232545660536613973829478347090036575930477125956974278817330904881586995707710385865487859071323201719538408114594314768647727337725317340749071561594034380135521285289529839437587947701619064594369169359139301859800125744673297633073484202287800672352717219085156478836003209754232690033903631224317963306172270986948471175934585682304323431529978487274196497095072483912401462316474142927259953462071643467953050921032022410925767329574019880423884990645089312021878687316933175189368743921585197959410210931995151754052177521349781827476237992189990687247240618623037732228725848393687346988282326184623654492114261597624997712779938303209697808014199405263557121506392667139645571673434389796058982818486506190585999202430529854741296058196551250175171199267108683361260418172948713115063896823880980092006590017787945355883913879221675903077634777214480497326080574129777927747127248239580430370660762178844778143156397520658398799425155702293610973123812378264103648420782482439768011625127965265606170414003426319750182152956778508974341767598145985198203956806216070761232831771533736004990226797224810847380887294702016528594054761526751588758351174261390941284846885019170027521861116381833415493101078694930944769833118972341826439458599948093941819592613846385801211684361151456537286882122993649907673038070502626111155352575411543209028293873964495900261287531846802657590419437430894118519057856094322616311146844381195568416060851158718788808261714396608229638881942630501705224144188911203005952918093662212678372121848384678775968783270851648691629047117404605613118433185118747733270043770015665996559682742886271503395058001318200800637731834469402006184125423516653555643381851177506178920742688629877043538229858939575947734614772579803458684697804153480021111001051329860952970689235226931505445708791421179825750377569994514507821656090626880819245988092794082819766019274747355306368163664913338957639000803963359408306852383753254343638733783668568186844171830903414759759912761231939815858202534566420024684468216653763397541439058624439324572460287633733518588090257852646935456052942935262052732387990276016974466480273691287150103487792246958193436979184236635838758447218339559167227649076470739680181403586092324029472270119584666729595438375637425153732086200345192216927691951086206490341083393081775235965049380428971470352238826039549102621099842800384333243294264496972803374073004586674321508482655600634180026334326153194773658243634170773038349322980894766074667864953819684103083290894035539025357438774509792199610976443585419718459416195763373804762758987860802793907904652745137380071660889106790671370969042750801731534840260607250856230920184987567792691512280717800254429390106376373200016115615918753680295140308531631115786877917633901376930829866503365568144959127118889051712425015532037073784840326777508101059233523675669555761834184135341432782708339717123988806276198716701087729173480036162603649205188906913463734312789660231432937609224389718840970061829416997413029165837232094622153878056669101166851585009514268227028617536198980773821129303670668764747571317855234106863778834370602494226151262708046877767258319580394129825086397118723747645063665878365530975933429804778652131854679018828911572461562187719753149083641466154413770572949209460269147319356278532682318651630307015627392915903375150361904723855708544752794517754267180161350936102086933861183015075934381068122340163559535880759333916878582642529623228847344076478484937058020674456980334305722019333439414946963268755035294123603248077980355594786310967036786783232045895091024464952315318922073600274612425928519145925900376309695475422634231292118783043462844838663627038697536841001304488326353884929691090470209987108046059936681035253286134227884688871193590951981096673872524456554223766789569794053065072236473814569107467437995811761146660517260164133683473070084883102088642761484189797987808028463346861788784823662995333804346284164670239361456817394155247606165221905369433680069363152240180299110909187281805653287667290351886463169524484723282106495967637721866805925947184706812838068588193581404195474617018822766545567878836676390726960292242400493661497878590917260709979310985828077015510852581934959970553388637087311001730373154385471564646213333442794869995720661154043081220416954311675380948008634730790403112497316301965839386907667724341599649916338246544341957328124543840814396272159950592471083132595419410512967798339498017320381569752828718343840225938938683500031995398560205247021704168305595316518979642958893905843509210177246144955834224314772833134291723325017422866179003935391955762278002469602585359087142234853452738954132793479504095151974735027301093802148358995224403234227687591484205031441007665536888549965625883303297946892338542133651479771314251841709270910744161208164921970519669796825243489737441103752619308407866157872079424357045568668321110705107750036203561361933270348217108328045215152684709769982419350730655237011466876565034020599888500256486353901577503145005627058267681114740005483545770928490171026885364186408650788869598763153187566233394746505303047709776145412980297032716508885712505371838417029573783576022560849467219842224896943178800701990216210824704573949604677004488536013945765460904147691363738733159226175620365933362778314346206556275699820089291535103324500457537519329797997827538311246817536688133327864786711512731351599098301004234345922774864446976835126804798567103752037703124724982299327072113404594282696012251191939042875215088580215052369505201848160666835054821664379983477817254518954668577750965653945216385985547150545395195866762018962829100427068587876167488408905063319910095125777172594119800651030460600773564286255968843411906243112891740997728171381908586635558669434331564933116782767243906616787012435084939075777488093859766891709847834624961004618756712295714514545313121006286114474320548857953122732103412364700955001970012008824724650490878350662060914795573720333167204742605525173205325233085313289261885881855630670132951447178911005208117653342278778603971000661417306003286997849444938202787251192595248835969304630926046560186840870536039958614278090451165789747242763019207190179954196555088821072672550147587628536153767765855931790673243312072983306323714348241181700676288046960084773625500322798777005192633698667058198079410836337446174012053833384159170663317299416964466352092529118666529715195600901582136527120444573890238224089840717472959896184224367216560793207900737074762303978941833674697078639674751757092008037123375700942567378182233511649859868716039224047780382855299721085885520278478188933995660678406297773639139873013908768631328309291173167163492037274836185703248834952647804801217177019459273330740454982559246451869806208404757140495674831562695339369215524697673373600578742720037807492125374502036238301887077282046295972555855637945714997002231411972539734495219911698751352086319370961176953153302544821927726549901811399255728984247156880243857030759835707967785838539298997598537513572217211218283992589857576423038274055316228413407720094659969646034976244471663768517102561861093327400181195279302865732060397362221117874199944782145854948569899389588240875498787145983706504552228097955677022804117005595808758575043035619183656631497176413783218973239890495084922543369781904553079512601370424902606543262830652707983884791161722822331376765705411968818542660971578253921766785038409081654639114811585015742187679840057168093307039077870834729672488207560800261653171339504908559626817235797578663642668664345137777633872105303501825993628585419699525625629175956306565858207054661329313517872348647832855275854106546272629858866196828104764773474659538466170486891990973599770558724592575911599166133518076493458779982311066777469699285809737026284802882344506656932257886549268816480808395695014350950595774773959440114182567681119679343721560312879523879629008309811055940879349959755415640468866477402077637626241898886165236291129065205377589326216926696916308527570747841854900741711380895762465245593350730298078277814412033910919486867309893851778783569346059332554566276488449619741939828259309143488567850989787393170076468299090773160027889850901295182992885302036941592840279683585053857042854344014746111788458495867652508976825006267316185963575599368440589171168904408890862716463590503091664031786399359727940410856308436911892647878610404907365958482488405106295293854634587157855924713155615692543350367609734891705617703018468702037624994811695713416521028308686022895401181064858902744496708770925631547262077216210198862516130706894982105371351650075575097991812917140479118455530184879304590614940519271273458617173668394239637512323196644701986696359270913678819251568710419732366542717624391240199733306449966450714093839887848026375015034485191868636451195735128445101733806764327205131655260597916080122710411446438949351773025363071932114435445318262960575884864077493863198263771970017818731655926570537042570987270006455876288512504441796244033305928079698662155339549949824982989862124561644101380850634406459969905576429570372483820895400413309256016317233467050376600389925986924899331389474951494056545415093974004391854553723117579507640818294966340424788483069853530196632884787248232223787877832094879581597550664672280448461096537915435167282818748914085905323162536144226993126414466689115448849200997641564553853413583617246674748754945157971855803264900129602042764745659836883598960737414229541294844677072318258153647468022642882079686899948766068418622219659106436677883138571794724306439587197944270607889460013870851550249304309201778574850807570405537939951862885060759161029484402491791339424079931517728492941851640160383995382275187744851078691999422062654495063249498080437067861778164947272527192616117639605937250236979263778724361620518218463840552367012130421466551349304523473087794390540481374444573754510372618987305621979913065933516911197557490694342088869810844932891419461876491997725333015689636822121920219310105385959882534572614616723146667121626534725256657598435475101724689984026817346158576944995666910652961124464121351585051258303235974566959562132936476383489762575876597165140435044339655794240619856501414817713787587211781613400920078066364947581855952725533934266338149739257282689544660375540504744614821437442120072680159426777602573069102176924242712232893188285119311201370164460752773299076739774729444765137408762834311226722952473368616507919579146698845156911223943291673757634934734270757025916256655726558375927310636432553763927774034962620637632179603080531967463697682635894588615825025324209596023261474823989220177728143282031464484369268576189970256767874566830675155066878887575075776352060288432888673096020608058183790705716175221389029889317198238290109779839629283947755162587453374667993648033680578749117257903964110862763302465478675687080176394521328524907695990634156917452446266203177733817023839154274608929448123840549991593242510900853428227455636353095709349665438135494918700942769740766391943179650121086854195382752121699518939273638948955554899480462099740765522125243047020635205053388620359721445257086166244884066343615878274165566611684031385215775587443790754379206585593106562176132042198504451532240814574684611355344292774216577739240685759881878696476387958572493925979230705376539690477458671849685060838413535220880869582994207773586452132035874121694023781347028946283865978202077482090056827404361831903774468857114299522020055339461466890462996154135010361413686488650945968590559108324084318337569919764177996039714071522397269234036405853439360222555291992449788350512001413493769790096552338550945135300020501164555583806195322716530453329265681612602154181130725430653189419738030331520662650423377936930090079942563524147327324544293165007779036433246188311184572981164787017490056686914250498168288092818693430776536275623921643331096323959177939027131076318157003930279782397943296112932784519757283810629683643316393951697907480581519962016386178681210969648924489993633484543092220562190363327831865996683576278932637499936439197383056954627743978256612069643796767440048990716896007493601029085167782897181797679159841237534237608184874187235462185110992023247874653900018677473201158801640623794491153642092705323659647080006251756539135079937737166226919398677253041756827177227017281494458139714810876553831164095303754609659189582768435724177669073026183931726818362723787576791937441252904614050756236374168093482461017829113582658214209835050215617084493444774451166552576140019335091675782273293476683754757844451251314812096044221653053588697866941322449275480606462440214253857349378749131174788600662964084721596383206284305853151706563553742324504983136629662731475234340092363976040732918097502021736982895481738075736092808731854400022079244191071139530340935500070750509292501692106840985855811214556166687187115129288156035898385015635815547425804884459223304414030855620083044170631622035675150179144952027750376989742973084886850942736518641903325798064238168460787100265135280028917632642834309100007222481522695616052061785261872410727823301463826473436903739078482237610934839900672977619808070335073405696425409639205905307796997590858156020774306539930984783742083191765353600844727211303854741077781992434895128855710144863823766345807564965815420664267655879848315861264919017732345432672590927645594655012176395937129646433662505930568232634519275463561437391066779393439040905455973315080934349666485231488855268350984407853209931098565138284320658893126406275466673358007121682861126476563154106920763332462959359002266379618247561154078746514761503930520253657476432938564410944113031314072842352257670799840274111159932373972634131724529256072540018060818710269087908385021139234117938363475142110482300177545204661583139891053824975390844217703968262876008853295043737649317507943633280781693599249059050026989588365064511031225156745491845833565791530585334579589556566888977416889282113086621510073881360496628541608476455911069062067742553713462609031621846801747206005745138889194644350181460942809556864177927810071210569853419463104984214717296927564551845654296705187013684405604812738489934711735523657133595539769614304074484005823129312874932408010429722719435253389417081829415411070307633681304501022885202008985964335204035197056989364345936495419464470046840433137169558365721916324038715581786536163961533045226871752446512503109078468539066755523006818153721798563073302330343901199222253108249258634089021232669245990940459420283876013416897739144567513276366030726131141002015565754823217150926964591806432162818338360533255205979389980489044341706220137555734727875720255966074126762837408161196534019056807890269147520079407001474394384520571110051426510491275011621022964102251314400160341038036628151967752426206855199566361229550693756730751967009055997966910305579796179041640755422262301014032034222166634104710445887559377225048642899662319931283384098720989816419966234370023055103270131602577331153972963517443708417006020965242665025274824934413624162818081624874301987321971538063140076415462734994057281352343833921667100864543293047255203987716552783595643439128729239176580120657828891409994972456675464434172320185343656911280710818954931282604125147355908741503210004244956524405000913621326740267299989141867438312421656591770866310264649079692898100285485296159196364348095514438432127642059584242073566420682425089901584390223792163088798021151484261837805329054489365918954463031009880874277014774942711768535221640194423092242167609694816356652249995999647170528943435623838586059603520375180027976611970409276101772667237747452615219813556990173114506080268767557484351536221846110287355551778620545117429139869309754187226725468403932446613972495616250596324210750702774312913275195943783128728620858501096037458152522324447290763885878726611510336124598216079724807253593740435836129955754081417806421548145470344161553760636801826275958201835617282414062561508656749883684108504945718110353675830488578451260719134777408131845670957733126335324578680834692127758838010439569656962779138582384253308823430400944151734696507955157536753946043644229897194190743803152541108698186909486430708264270140634126318003103054012619692488984744741723532662489058566619068085402183809171059407488550709638921919268700057098561811846744796479161744767013151129743315999918393992955820018959531257769840741412976613861692605518265120019169221703906051970599159861193910294646554065160055318611387410341676663065237635523521728493868804272097883155572709990556496125955942346683839196890712963814659095522405209165886021981300788389204584050104426882000335822820218022375871158983649785340898812792262681114379306125656116037912243631763336898871324754805826790551679394932107529297539900717194967888897688679446454263476097971413152067198080612376918398955260751883801515707209397612746350370549849823754903461343938143611816344499662216485057823468279842703922876051214391426906475824212421202855856099819494444192238896907784645384687663769936299254486850271020867013474206748473037490408705689393471331329715887012111459564504744076881691196857560654285757567471915057821017278105222722020592877268821410878755152766854454251965520715965459537695095021273801685502244187435228372610870691522744894248487441109498073346849969618698427725195824051131289022834501941233738586136808503807284566048025385593742300502011903398706219577734363671077952261277962227993858514978293725901263711061416463150001164852242615138725710665513148560096894968098713467070701422698652860538881939405974402095575727837262425581845895341368431551500641625683573442055850741656672306600900650090659325354819681360022068821349953602421755857142069930027934781304839227811421177562192426295488530293649986528116759615263227530301661798770900809080765668783171791315265351344505766535955644718991033319743637163744585522498254452087810742609821504400626576860226390024802351934381049928612507468706750981761295928027901968184390594598137919193259743934574942492168280676253814847195742362098604246130166710642736306147324970052085411099687182898477355322794147591381211788802704909947645935828982907062281218671691160078654197754854426394799806973016660834263585230465807747772860009021907381391775366964765965541025820838087758016223722671853577027304169735093923286807690045229338742181601819571174287416571172752866528629880986393451027525472832220553584694017177276612726685123129027801223611318324587110346773236016589628471961555327988037057661601011190406824419871197515025954413654951664160610048699849522819375738976518778369473749210036017882005946209697988605930236494784052980719080085872164343006170191924968390844687660797287326045446197428625949477713742646741762952399496817069106581145702394771286662507975516291858394980004125799926625764928586651968697077491286765474315438505326463708372664292857022003791268064324691981034779592650137528261002520405711234587793650758630246936437204310403861268786081931253693037161660749998770849817351508806466631059783181210877075748263813362880994730673676676954547683844700459639063054575495707323478223790034348030607593267474060626860424187954080571019050691164372270973119643981958148876356460416732600400808673607708518386192962598743661889046567183315940143837253373518676945466820489684525608345923387175203502365938464101275229719823732713025564010512158726560004210210209982138092382197600351750980355301689546194534316404238863736795888018023406478450775322180399660492478476882922714022997009572927364421908716561270023831052366991224705893942165352344963507689414101937657331349237833422523051865336166884110308429893462319250410157878966032265057600722524610166995097893383304938125695013572903323167888930187432953484409190667863343220452106553350219722901537762059959135368440160312118364859589605615035908756805615376006330483664096672945969043047144411241645842103096782058535503867453080244615970491057856351914202984657101100168098745232122092250564649679498432666357257134801246838509143915895896602879106393290347007011105966482976696385243945219447407103142383712896239066826526815107255996603750392511061559634075206379565215924086323046694317076752001544453637203331383734483937366334535624221281847478600391521950961915311632908218159335575461063937193153846953288822936259770018109440061187537125844240945311680259307789664581890860738633386959098684407549220551746924104417474634994538144936519985120671386746390535129844915675080879660298060292446612907867895621632706305926428908779294914464802405483956629042047135650549566904497730586694074429861571368874324355239299609394637444796396630492297704990397559586267226316251541902494254586885396774088652627750268063460013664882732648572266040065329300857567628904759700216439226839776578232011768968322205698916687823592443264779588034780009582642481278532437905694494711449639238531507923869379489727531271216521480339070044691116398344326315378858932693631916333747073971029233324298213617953842829185050251048176748157908060464165302112069326164425163845791971515123470639986587007050564514655309001224934189388538416910701756479113134896585703315488609718683215803202126399415820870958524174854580541018147267573558641457571383336840812943917967242533801936058042657390750833614876663958637913987983279101843477080717715878636597282965898517843803428928988655819511473011814348317709095830303547975376864153319176520674273439854015909409781705035258983043027372434984969963052388381593292778613842408467589370496014344792497611780369851919162686137376737757934863863950109127544290718646794325705255235638936289786494138721298651418078545922509772904612331147514930497448964165542098747499782304736360384808937398376694961005867289679448221634388428496775646520198042505882390880287004670479395897733544519763966788738876263402101329038662658649965369082840712104248289267857324127332451657782148787056552870625951245409731870640131999078170850547222416311746544050163479828942979621333696115458665803954633928538301590351171858854645168943083380273515019928424949631338346925824792164815618895398047058325468829784423815344053809139738262669387657102649738000941529668453137042241660626304863710468081590932360380593371159348713744959959879294358897079929481041173684547558029172062215304329958812535470728822664016491795569547643360308344720602684430590056799224006726589318749128493378920204432828488706776801624948591724106282996149055002662607745072847113937324890081232913401552103067515427363504381700104753880841453345716394692248522284391738188475894817752560116745107102238693254434217199064098521047722827577629711143320356558379119763412365971561364321673985080257690431531474319178542559977452573211145281499708755696534722722722207019507446456545756515990332101266870449600632169918247492944178333543814769922749606516148222883540885771054966369585461743605190029641015841408698018137111680374101724742225681971527418561386847102616641553488654359403385977751783332786139757020692686256366451095064210923644451389475406780301527751853060416995165085378194987844398091750211775299134426185781575541805749147140158389230768901574072106474780330819349593085650485645136054821432490845662068775442432088045999595578348592679539022973260810609499820850724405779036270467987777239003752984023852954645109964121539035964260511498495405430196065618473904021238371566077956542177297105439188774794125276733425996847081586694731886010346113212090038553278871885036453023930104236746761153508052941565204823535811451083635272850461778976291861138293666447441976176312404262913885211381258870967281102749337651658608857690092564570554360034778313357740555935550999190035491129211254607918064199101830403220292864708093190178600072838992206892627535046184000328978311791525591583273856233811795829906916867250541311656639812129461989434586308231525082699058520689348921428663088809595667698067609323309551590785443409311753608356303047858895498512972589295168353094846036887990821355606586984805573026579954669220382203320579339280289906073701914150932175347889028773088183530333891622255402461324717431522771976825650645758159643279195276059606142283357395524510093054583270277119503838914209466577131364729015102206416623351519801599002706397957352914227986704250747391618598567870229375868783339158009807203433363562366531331079100197266248919434557200097340830339081213008138624893278675804293095297149502525860000893958357569503003181045961041127833583652494159970881759069988022895184735303536598397303264640280513426431611130666597532148324458222462838269221107908533188881566768822812789198454749124478700255146102477949379343263499841477396570225976100847474860424718785803450542469129892770604677977546013398670846267418433914008486896590542143088169089388556198123773590351362761872930432933622035142080346460206328928859043867475323167268282502901283671756793803057041710788026430014477090659079712610484856506788682650715041823018837982762375003990594292880624255455255505959183228485499561647053832785546718192865486098104845050467265737552743534438528020348276199695397618374978845686443161843902872894654667333277336878341086961885380865361900179771100360130812660002044817965292129861012778180430875776467708229942467982568088803845924951257155526593224942865868276319000543262658046387713220600209088199561448325744154567449210084723481587696700686352514305974411745067530205249395268337024254509663678336699043142912132856735676985978721003146987935346581189241510196968790167606293686286916328424450512754126039229562626171354570343794141813933556973920697464131752557614634181976848964862332752182455252516563592682466470435320364853041178723803331724655735383693244543484006628592654342791968537859980789319451582691927229173169200839333789782751349704591807272600462587483142669583612167248902343070835880728686457453678138141028755983897241624574304410329374640145874922601100000644756018948210872105441779672741164076971592001776791649680590397952482933511504128205669550720446079668033326349195759327286314912188379764303754183622356922414944315340563060600147819216862896057979631882962585657051820765651771610435068564013731996607343125271794616605567661823926509891031499521030277333256493428817559172845671788562089993518834718798448476905041031577645106596314686221938004985496855061013342915948938217086782364179375549120195281867318349592537148963093684828920704233308489174521566833867986493688821266805592123943229614513038872036869872438118340885792601365754728621040134977215522776266960604082248748023070798238265884639225026656617214038083413863144973888026913920782841365519834861573425838476436016880773597928927677911789960219115835240453358090031702871781003515519122756149424087072094416520518312249404376622474717677392720894434265046684631127269786863693504765838132382883314321235142558320365358606146156055276387591333917663475113593276505310748308089457599133663615295380838422746878096883932056838972685200515530801893481127792628189289210904103035354049235183441381085458138004467622821451023612167022194415854268417819599236227440579866615976282932401611342621385929175811999334599202696523973996829845848678737629369368511700950515660219886684590516043000598658880237549636368203772019385533910474172042354924742951953705242740560609910520594423372371557654601833445269825575461746302654142288304415708265934401043201749118645533145244712957007520578824303676313635798837177180618911716219139434231921569893001644289603025205478161156944358267102977714409540794447289051178551689701284425169442249972566939376100210849553663734379163379555315376559857556169656468942630688043496469326155679523090325704550042643566980487396825228389547336098634602684544320775150517308712929193469170283079394433257606698063387883479921949282870320909067900019051381408358791085428683945925786017807047067386460625574775946559785405692320684094675386032569406701252724899021086454052841215824985495235867241407090131181069115845442778137771146813923382836475044579558934424305558421104103535542226385934175690066124891812037351900556411992959552650080044225097743907774156597115279733234673426611381997237936837015490021076855969613111397309433634447031155896354613220050362153017108437069677293128920278330032896938472094654903095635753837633296638677168573801536191597149333666094805028331216387359920381821180863517159212986067572771074157080857036419378449508802187545324389144960669023321365227590852005299001315777541393746953520127992931490583924159368432522958000819020728110503469353845769885015595697094290627112280529273097006813294567328186161770106371271282278584245671385886920934936721523033782401025587940395328760722196350432524771078070631781126615316289468053643668077798872621411101723188623360372142297127447354427876475954668814077941465241692954904068317635307998666134833106672298539769960234799621093793650358971905299028968302227088684195905786305980117546256024290089782601814806760588284529781500573225632291122344838450864432061331074311168728865473275416431373880206854253760556176041352708992910321540748703503308851679310082531701462631304960129565431522022614867019846933822943357321279987781488362841794128466698266294589884376425472585591072797187853713489245202764639009308027663655494281348653787546315793536630306097274026832221004697040358826926149039799018231208800054851093388612029344718915761150688686551497700553347738718347447441402761125056915660911920339183473900465088205077497290662267343921728645325809321090128686823450422569900043563247377147265617665446076789457027333476796242518175550194799005672926383454354503402514561483727934746117424318147151604949888048077637734699833732166176863837128972534434110920325160353802751242419739976518149594921095553179097454622084979657883673713272544134883651013357162321065371144683964840558190929647239183071375499450785374301985721282523439711343209896414261245936550740500436305626074932020456967727414001567414061998335305647489336609874483921557645469219838667181795094015461897059171104840922186882623504288641633628564054760924096850044211009363969185652582197165149908337628513410698627233275071418013148160893394122991130015873954004254726443136921292077423852368271913432375881232347645358537499872520126929640559507270267153014712136615294996379624833079270494017290901963405243115810756798614160363168752491912357390375336819187611654137873902204253218462673071995251095806475986363672998104087768613403254089743548718554052238839283494415071514928854928432186652813847772490757298925970968376077884003599542337600611004168771146263314703504723150128491091809188075936088251572643761815405340434521963218060665412221967361728321360645109101064231702588884570491494308124621669845552523756959967235295244254693669030720765224847515191490137488689072729552874454070001835211516769058436346128119474807329880749493204271932224888105019780997549843061956818352478200070627962103393803242343747485294087555953190155406723229985745019677370075280303031998907549440479273895850353957795054530293449046442871623978854052432584751065179039151907437255387455828776254691247004201916123867988561382309017610019385701979962295774225566064814930149440715255307395352661536234217722893282007605589644133744363514002195283509747149078552942040831059986724758452953447294047144307782524574121282004800142373631425164162273623776400737395425164102819681770362457964320062398711667775928985388750643276007575500926038604040667452815604156393799747701500128092380821198672650606293535937256276697278592134429540953501952278128543260678631723957190233331618784626267003630126646832520222544834810281522423881889940399589535781355468009590169189378435151788175063849192294778793622322870348041101856580174960437937549181732372303379476124581213979140078041017411066382315487957493589048037290729720754103112304708968694140638067972701800817701624336444874908387363697074470047001366455387131797598495227400686249932215751759899705055556086242267625045637658109085530584531890963927374365745382494073690048499218082745333351832886648117880182741013428209470242220584215779071723027866265236217117246778856613368304836036818454251335292792066411651718148546191858321075506174299181377307188733389040848188015478400155122484250187231728150382052904502048453510058134518121776095008208548061882566723135427116205276351972760686356430420777695239014409003539008100703171834428406044527705102430012415524702000797685532532501989107859445584040167992197717466144231159273141569039864010175999959731593118946222465193716178615331347312574824706685683149542371452931265973161198990347063951537559164036620241536806435599767958064439120777789623948161576814258509061673883739487407578408223433345318045801876417658483816960522206639500642012502535821599296086026878180069986556230450099367213351184706279336678361077208104826379291369714467211621364157341783689611443065502028622243772554966057960483871431330685601992551428461189270350950189320264071826051007539918795343526911584275611418533725322178592905384676712453370135091683578022329307834806414457557221808843821554018298189498219126110929880330805744052025983013768977550436263351041518463918505587172263961208631670857241539390681186807925270476841792829954775966508029598419934798639605181055783633948046895001778453598758406882659783684201324969314146842543092309394370346436920131710100840771021118072953163296742730050214521652641843351410317454068090041360220038076429722657441471201288357748389937602273413004225893774860668033258879770218220265323082295124885570089403725327753950012994002290921829186362560883748205653052595776254754598706353976655366320031794358204485185203573020096689589355228545925129291837644696619235110186797168946218497300311668989239839848036300365856594010862180143457662355135283035933031917250654626041905131430275041826814033443608295490224633192863274256571054562612335852834696635048623969194956408196089805100643708834847778705375727575838469597046538786864978781546105036802003770519095028189974307252181023014447854984317853361774023161855560607009611247827972765208915151171443340514065507820507033569022670462645134354343081380144312857512079746435028702988145603218388005587294289118862254860757104103899736467068262915688595137277836229004336888924774805868179209382446458752328945535673757496524162639932081576651700117874541727217823602067002398228224160872588697786891742184723413359763926770117038249585697135458284951350159833197856776279742388168316587770439795674375251628219337378240972565469860173416146220916737590727150608855918104377399496042850569995275101953730565255637463742626388188345158685121606347014381372536768924105795034645820410815705797911209197223347018440877380598385737046176538112172744352919873496260262224108024112997521500530104439372471159186766156777807976458564707842955923071139545689586191927005189092773882140656231309541706486961513306919849977348832770663087051560527525800772756812664591753413787502919482585545598582266179718499115343220401367884694813368533369958387130468157723832228109635474595340826126767229426871946181622330077009648913008526198173870841901552362787827447854279071625022671269765903889084501910277318590519423549790980745251077187940419406777359180176464901094355540882116353500692405931016425294235580262294849776321186941691634092707938490266131285216822656441591602377478167669458973197942168073660601946149078484819547933627866200066055436252481600208467188828457148150725550121554922788250114761541985646081709137028901154337182371068589403383147927033542668963078036520941838179185449165744112935108556678216018426284301676170451548239652243962204196346327937602606353362493011937364266294960170456410977011846202876634556832824479059268506492679826203141122356732204663488569132289442226460256713292190800423530141242856280520041068180148287445834518634069900040536936874383367471879258803992422998235652169587883760253700860518776773730139754697379436696846156020124260501033116103867926998115721381834486998320785607750995425834507278206198836853669161997310764754198203380664670439033674590689919870812982653074036309065952383722886439694893967253378383903703967747488253399246058512074847157161920881584486154631369342558115440288573601525439725115292333414065260237737846592231082259621749016345730877634373106688133009057762005353230989935037879060986519497361319265844461732147373883184706395243401410022283550605627063645238039238083204877591192387158152914718334446963765020741697096357708740057972404082938260437558826216335329538762442681441070404663648179420742575335772793501610519779398301020197246294842854589851625564071299085469536540096190577879591385624221583397409623760120153416583054070385671461644624887665935312498692754573832900459900176287774147872051303519746320777742138831774476441497374683852305098820516527440206001001770174592284333011239748037616535595250974085230231245676509222393640546730382124387388607075604586459541361258979039772323311831791627393580683577502111148761161950933066491052450120052719448639959371184341869816707255718488712295403801784179287610057691950645540219169004472611280020320509823136743413277368639117123173065396174243191237351096833342086197253512086302052676157146535078333588391930856698983218284545829429575212231968084088160715770610805265145463734458178292409484807193836879747673083477577151474905118886618506922247789171652720689964823758549671605231041020616824627906684916794168300944378155577324061010946937320018129224614079071057949262308251626929292938676831990898887128998195120657107658625448681677962907811466361122744407078955684114813074650978332623068638901150196882908366975517352915779085877696805844665332562337180670779383157115995425385844158447371036071142111370053718004538493667748955323913345534281434932984271444815624381404250088986924022363281127899757600210238937912314651024915360267167978076206156643486002779654153560021571486410812867785186095614236429392164363567448837186940583055218133593687798814280322663503957448832246340313577185938340151572541775643652730933855755157288980668718168578306589436500582166155911159745288465524231208982207646787266132523485381756405089192893348798711129481316041835809434084240557674521326579306030084438359590464230191690729983924310512117550204536690645660531676599229725992939040768938684322165293542847692251110466219646533073929478849670245389583134823286056683988087985414381277329824398866643439907961486250005601731567079018885905108498868294123014254665271134145004852896451817419766411040317803145128837061344590758303022056121886267253587020725886399191364273422643824969022998313686895402503618576477208519438568441793766313937025967354873415539707993749925106281293625968768825267247752670718396052991359107314268373828744336168612399461601944613014063954235553779054829042043309151520614915727803153312758768963363633623905283994018013423434657759536737492696072314416922992296249912760130025456280301642476432875575223777151493036543590475556412802675383728489754230971852322647798757049382135694878453827894424673595792665124898918480191747902437276828704753235789766906330183220767849543083910102054108085491818890120369716435227928896015506807801863243531568001722011007748600663036719245047396910325948518328802653014803582420707013244713790196461221553080965837252320938601207786647126014925043640844315947338354319758129589893818524958525160210409216731190621914264572116878582152901514384454592245885954446372271996421919727410942042787846121156930881388553391545751702772536042975930832251664435396913872870726497503752095271052332060628414420611720586635582164035828856034181142061663593197708086662152626600764987661120648329238715690232561694180392064193355500109317439437519101463716254254354536319632182959946122501670093905564255495816451875984749910095805414828705253609594706423946149068774440514971866723982972537371439989944870326824236563423125470363270901701823823736629348575353384898288884271086836327459883279240905648577421825988930497635915912163817476405897059656005332148394469258907530261362247541859943213464168495522621238745757586312406770276709416823333551300949684007983682383862095396070872771207001108726351211292089548956008699528350051858256538273466551391362540817132797955171852985692669997262367768314151046076949015607600866361771221117643575340086337567668139567021816235448922544368721403281176235710843786978027573736814176387691765994280941383529928618202822820706356528271676205995348794460021582986637000406979238597340836366504871374495537975505838568568078970537987402938296336691367660490736395058257195682423746026371232387849317006627392068303344000696768773010296545707964169511138162778154474592223628654875358798408790364161337379538741322815063409547306801965677611934813451147716332609847253469529088530263132650841083910391392293739240429742351855531308341421112291274274878670785597548447948659033380154764351987850005145975991850944509848376720345114584834653662033999557410401799028619582470783835267902345202319073083434905336368852339492350066423545767785981661861565090950652851658171008480653917321623986054475490650302834900668681141429496004187040693785283935268191302442656031738279674920531027605495158494904794245560519360857011184253961484938752652782292931896090348435719665184325880606277043499319302641973841119273961496778387267248543455253846056273842261898981763340782577540155877265517782381997342913434812867240910729530005850885389531166058140081674783607218809399149775216143577230652828412609991514612346096200624587609281394326653623865281645921604542599548211642470346518711976262178119558789165863918623450419944890355663485607382839715907698179522683188377593024287609189655968806032628510126279163069739475223703775343281887326415490507691484868913646876300954810696701574273042393217157120378817152643562866833743364295470536915932184918045796307951735090892300978130495191215625749218871071505643135532113499595983711681469809132209069012667156416860994308577266550301455594753290639129998647988713523634006102634839504398443950210670161678658317344891152370827001278306480953804673540439369602103688947011518375899206966172024750624524778854730996460815648470891350842522131493123118042650978862190908618752670118011448356789480225458893312896360245891747085734446749090256542735617909605426776460570389404534921986186460121047819833105569968482310110316479254827050918834282790949390315116807375336972019045675992002257343060242067996540999589047706092927016520905892565939014264093818073278858492943751948524366914577016416748938341696842636816737974091436274877373160261413513100861112977882453817867782453537707287298006255581272920402008813794054995192870472951589552277865320122792428786998492137577387014508406767213372895539666100366492191009113485586075345920244343020869147280985469139795321314972561139647988723334016078111899765618893923438662415156277898355539283067319897253982920657883480947446694881595140367834391154846541977738103003002323879209698194400526717554712268634566333697365586261941745249625682540604874794296143628531023013135378636328754394729353369811057094921388637667801082346134032709641831884019305465005766264474325960664158658574391699418175066769613243454286389250807218037233650834094819852235478972891454654025921440252785225267213670492758521613959800895467133602455713372166972398055428995343077074452979206354695086120718463466879887402402440989043595279253608549155726544855842788634587149160040381179764367042775603547011903467910684042964687368566128124354814665590209433613570942034216894976811208961987795408832219084370375511417174302657361916072620201394976063293170821097909880305545943675573678074483491561270446271168692076683939292181421264448444783854791093391242347924785869215684924827125416854070063750601168110174312681579605503408181322391893727073771047678277733446329785779778717869872869205615914089141380226483690094996108459043511735726652095867506902071247154561767771310952441418337646890760298037076495422459875433680872451359921198707462217776231610493561764388218843983450397728827361737323181019992236523685484705753179597873607815951894485779023488464568930775066680356228243045523048817327255972487518473864579115609345547736913702541490964346072004301570241445389736217568157646898403068748380301678282700789329165214720089793401069766616549270602915058188950962181226498021737526463462385206506492147138103220194554191527744595900393106953919280555605771283740245965919378562556908397290876336993448415040342749589224005852488493593494738635333491718712971914892108241927741932854345009089680555584516573944789332220949746541788118739246575282886307309888429797499628325914551701014498391394592067518579710001014387788208572505533126076357925336607806632876530920381042590625829521729461883055461252360672273654275402638044108885850598239945568893916558220896325928740815168031078398182362847413548858099637286417728751689755734732245394288206506158478214270856765377832879310315745388287695344130408558155626460111208694758849974379842919095996310152909381383547475088713010167254283037608409194607275293245964830847910711371627369647684822418278070144722162761996609451888760852384237750519411926221273085642396127269325354142829969131086990931129752207792670477884864737008913115829019031350077899446420735808398932915015132565041507428474899661487458999774149930378094282872212956418868134390543103972019710647586971937262708056229399674773243597850834531676458705896087222946509882476917730017862043725224860235638403874600303931141982470340772009122088418436112673483066138960026566233676349892854265872129451855845740281792290315383706613376601712296710684860555786069570898645754278225190729940087363484162916875005648509589998317308632946329871187601941631619980409985421129733379015481203685385541553596360517076822493897016819857414064176390758795998508257681037003278047131849133492374862142255676579568978084127440876214279064918283788918253285504329021120544903817704144556900586616279577970325827377401055657237040125175071169964089823970344747965471328207219519482162128378211045426169157991967903951440673193990952285409811626723138654879070731080546448516688390717338462098779144577199695020445002717162422030200929572209456627883033289672692679845444355330262391072663014711561254035997313760774163245501669080099203962077484153231536619793334547802081853042100036245503297405855931437019675410256574937342479693763217090589383108131270816096941737853963733062223073875155360848304296945762397029978915131120403091656743707297329344386311377662326950042670101190387978127138617641002469526179899010519392978718459457738354824937671754144889888978308929555102740677249229197026329056750463247773225420649852310315650613979236391898580731011165701428619933587884126752865939961683667897273974164351640471387044284500685857119835611939393346543744135660178821517574222586050446821231347098634137485422690623491315157361689742440033711583391904746211519922963145889636254914147655904138094512860405778961556849089935090655937088206384402620461376050559207526874993102470127670395462133119390326615799672735449304947876914261159589982886162412984693079575454320966399362850808439938950933219086318045448613626674568768918985305828074805626263302304932081656372145601694574583391697560593779378768568939328907561260756264186131557641510066606168598297161555925170681801238034932385522267755865124244352510492810004892618753533983171896144076065830166510794609956631035635221195671938311776898187518502642458343634716994918043364065301424991566178058502869824327962960602235758560463702069536413218799014354359087364273313177669643013323886834959196849743757953127065817224514573774565301067381023396184466635607665789146138916928309177508175927382341174888960015683601405654621761328118768453035325458394057783460824294406250714789026526208658498160392332498019986453130591139467406221498977048082130995935534265218478117878310112934502973108858552272097493227066608898146164007418068818478204327987695403491497142258101129992282030672710835823410754166298332943119422551190439859421697572653546204067800976767085780426013922773126650279010128460411010779912851569169011614661829128885609662872805131658298257537529509463074764749648364976597233365527952118113502056673362443100530469425875734430351158732818581613995019044602488505305804515862413835130341832140499169816816935332221856712870292929597188030103373302789560630143373799474172806094080244921869284157906921891651650129257698016954547752991735166558629004516780839521418193837293836883380935004185901949540142709559801646891568516732126665406988011206106336153061469850154423785612116605792564791234490209774205222014061159940678859571792849624330270616723384759370007660391222334150806301097940364322541191039460262130286353647916460485289332239940052615221675019580837085905032577785256704036730940899559156327824992766027628390962821721059216600616064780671461664757807208433323643677788063403321028622193517340766109759174245461499100608088825734403024238629529349902644472300703540017232541280775365841768007338519172012627984816551011878231780544124278055022205828144151963295203043096934142021033618973934072853031492453281157431874652345417174294938924097871331161268073045608262424164176246572149424400584619236123728684449547634753741128345243847060268375942585640473239180699062345618245753731765901685001224647915628157127325688454260400435932565552338416553651627950159524385711603811352329402915165270279709547850577147988265041844336181044017302506516232065489870932744933015556005279757947721354030892591811905339525352825963649250169011960839097441655366252927508093905503925161048743073734537286835405675137536764811032014329194439839085285127542544787660557062114781408598850708201244375479995311188848608405342931737220334841685860971840847393341852981388320239153483125737521604746550934417808612184034136311949757087944609085587046485513684985874337143230414070664962168501552850034926506172457730135060406335844163302417378283001730094131113365122421936973928365106421492872335222532904963681512103878988367568490670941236835825787034035422372427952488140890768017587585311158688476913345674435117439136885454981937412069171691674932364563357679898948752197264996921885880921330473771097429936313295119951436907725233328048175943772023259902361887946994842729033848918519429722978753673529563918800259252523144189365604287470066397117292424482945790622235454647278916588736981702384409338373397568100146077755774763776479455762522742805135912120374048941394187557852518684137755992376217036860728034414018509905518145254207727009582738535562473185781517414104407937374720339809705887038594141787374753863893809462419412747603317544367074888212609297455663794123756631939317823583665087997586633115568254336771982067172108392230457328719842219436547467482687951498172859873383148023634403687991406215284812731129844182184330135414752327520648864975150751976768299714282018302215205035572334429654751163534357083145180019205384327086286801179911902352350123336319740325148771708833184015267642942433604771326368207192265244117947331307483284430291244942731825768992225532807483254450592209263627627992359751603921849613033973580921929303310738330198481830756478811090089777536503221452807100971166645030589251585900307702951556687695836139386338414294305251701721370163767475773141936355516272051243078676785759561099109255363620998951130062730615715793133680789888741656922155491628902389209760600416823782021390784732969229346653638046617633157175038298092683609167237782123931662889942771349539383325184071655369938769269689878055656660312369246678044249800739122071856054249843286104934811660516978558751375388514767355951491381067906378880182286292719212758173700326825150745954990587645273239414724585527873264435666625038390735428350168956495149103570338703160832189192709758715827206329016351429630526151851846102660519815029903468097568681405332451438022035051345276200751269549103995909695744136547026173839022123270509098510797276765627305713008876290752140124357698288818581818839449751529630202370581776312470718617276144223286581175899578002186698553418618451172494966541827688785311276894295289434653099160505358194384373035297538599246052050463491922534450686607761471690209644450003737783863206295074794540276041226711413083588530019980949653478414910835608656961043686075490143772865206191743429668628787909962245941016857894885752986355537755258239205238069957223437204587983863451182565856182453672037186665425651503915342459767545519040389358164933386040415794165612005412571792910161511121052590722631700403227556175723879581854698574120812203591670581915795076587547629130144690971676790421551945215561582656715342619022457464468767155579329983675011275436881000808081544982650540379981378720392485298150502774343100523553907846205481343611420825316109127052698382137291137268186591044883859186833892622899608279956931693768357800080144062929798342393245395598432576381581733420730375153725052008397068250725636622797343546148102586375745836848060772204658769402213744317173767834180138246796488718247632652919769045234519007212007206020516579099386519288628754538306182985891390283211940970227356329845831848041534308585496639281306529092053967186122977790277946806088220710107557365845453768960776369154767757259507167184973137391677431639137063505634958620531698020255044752087067899212384167456766971305902543158772212312439017298668797514803650720740667481261654032203522149786771980206458864380997888900114717148825175694051084258560771478098964895538335013608143562086171977611197465314185683921382596559051950699659828589373754520764739253348946915526228561662420268166699439641983097728718688244018384716404750091152863569579644573494410490872599603389292792503049327735242782334193017910812684224466058554069561570693661796097156308389312166501765658670115307086149374388936068224891616928635206473863378914194359402896390609042517014007754584766087977902597482232179030582283581192522307140662472008269424008233677652072392229904278378568741427688043142995916134280812484166572586825586012272195585429880695647690891032181058124638692966668472242496181379225859060022221451060128021197952472866235779231647820771901978967924492800502648349409334106116193049840445236503259551756525767805567946891683816129172176433042538539098554546124272106568450545574598434876828481690788891775898668149420238854200188253125360789883549127110728356304226023344922396679323667578097492506776820129191411765691920040372842628972122193329461362749010354192712909188693187717469327356752547857451848654080132423499120616367206024592482760284327920510517399448603682243746863376155995791201538557227018637172697099596017696684206881076086261259735483428485558246407398472827226180066467720724190124140268274733211631622080243712798129242661614179427185068740338228886281439250749173420371006623905450256710268306047172054499598703637841857311568938005950396052623939165046360830670120496160525385500243169287266640756472069523759941065902612350231794623002577740845294246799087441296266447902335578580329018669604294768450763548117420998780933150634467003069624853230778137813425557078986846830873599707567653597756638956896017349365812902844335421896587409851900928570444991569190580656183649440475445894861694104686632084666319782459470808419175155785914028021057776470350335473823392104926683645827495439646695066704984164531233786241829438224405444561376746299311148323872077368228357226941504550626107099024523912104875468282920314172423913605243941843183861236087175512220158447565507094899310634490385315714553829113808143478115493814367172664564633989498766430978198703625080268501657664409352094899582669802510646218058425043674662794892911309450453794475357112683752912851317476313617999703383964582676671577435336492795757319485540583247648799541733764542845326911554277850330548419539467984055521400993104170971676681667642761761323644131293769807197507400322687377184688299526049731176148431757740496997592127588642012743777233734387539314512471996879273520306155680096550299604348946980652609753525318538958272799570566062759658318672034305455990233917627718941710358444053416888148535110849794105547791239593671935514501989283708401950041583653857131962112713128138992807760810485994307262308543755489599432070687251629207231958145588723477623730406767035670787317241281166914027887642427215165222806041222386071139066286805113225525586517484436437442462993493129619623965705742721642487076788132330283321153551844592023322938492103276430219722818690333988698122868309309809313817501894626626564695047039025822475641648702478037326823693350397091272759069246542219471234750558156604643369208767653265581145980479208017382433650192526360777286629297526370021224405427678397694003688765019374511842394298317472963577526850859205460411776311780755356599217178973601174487596119350297881855287575201127459915373241437679572802063915832947082306516985795209106837980236686904686998231387944177957214743671000825231632309350848189397763770968980350640182306683201026950329476964202321282465847793378004825517377934774265661748556507556953290765647152666652054013131537858383359349086131894521714321851683301766668891449132216075821876088905005234816826718626490700694835287233748030795155479841990746598753293998668093011403288232772525248181215636934882642008416060249365872595142848170307241898069709143046688928505223289056064157489131352963151614329937833433008412702158303830843149637183448714342661133907936385315119481169087177805632459115916818635805418471239710647278611996378373020071214910651828189327281233282208089963693555900746167395818231168520235555924008613326712872786969438155619946078119386969946815451834931219356113656788250045892804355919347545270224242201658554170638030658166999824270743205679864407295278298254571667668097914435113527698866765880454313414348262524383238404820540727570198165949504333761775230811601550187992935123905963911561332350707993075338433954855187293253874915743265580807866803228196195626482829443622827695408404511159737732947733066108651458607472977219375486747949041755955125893203672392780183331084452150233700956548314486833728275035322765680556723761805365866260047188270831700252496348742700476791180975068425704844380947223957601013611449766131510399661662571883071966933769839372063884459683284632272608410599419635272880236577160025460223075886187320843586432083721408555845517827882331854379992233806037286197884662775200671571116647708610241692631298338972201573015794234872139019791718422737671348757681012462780659364545896928989358958074237655684421844347224099885792548051279713837677018946841472326472357618897891508633585637707045939418663477037936600514257684755736555739773079850929845159697202984480206245547157636475352472514171187886571591708751522729558537181917721628967578466637610775374268086078487753667668978761223382126136369317004116313122805381173354870667859058584883671126426417805876621367178500214646905320008563795190886157917496446282312815454861670971222136097054169371415859548313234672458504635223006205795878272261268311234886253543075405668733441270891686706023339509569049244198697643731946696556939854915540637507170937661477562553259228782527254797681122722562690543774182519430755230905421080331204420242660930329088993723599083684149441574764302931131683725898354467598986135219261856906451463365161371256075996944672576413185373844306094254262817637654858900358035464706285113052533805833867067886365146005692876215527037135013880431317289033855064734876151641270409953624506105275036946306560545661639427600540446740363046854476233542007934489543972860390387551467119881874897241534324738918716750856555217736872933296064457294571087034286012534767447307945407394608271157801355515608580992583149136493674608253276186546676592583584969673993762283151994349725848470669858941878475772788971795219494539190964758696799485213775196010291801545659103625972626595423274655485457257357544565166824118122689004859448827308114627774556388635034920764202926923228112034944830433821025425381778245548748612955393385857435762178517568679252353609388341427488264305483377202150297341530832723707556981500043763212467495617858745223495870528110242870892926363669165273248535814571168999900454085972659996532017841613568046782252726209732343191100735151943943942702715158073210424585541017694823846005946938787375480003741229282984044868757983234886780183384051402878777978993658437667987660864781412159433446712352953646459827646808648878937295699419131167524228512817015946793755855518354921758820586137792890044568299299893382237462035528081936512032270161180067341824825712920060789652044974384049971692283776034330356757774583023542594610284371984112509170629765504049632300332911068664565815742689509700848786628486935368153155652113046767112257885304947543329422288311871020146839167328404079537373631050224997304821580277176890686191322985173923900150894556679247117631754687266180807876103388038190391494229487192021224184986086389567906793310472353194459393684963114800407766105669305318145897514113267599066725840972652927252001550919921755337962517345341073621343876011486270995761763482733556600237788975198082293990910273906573466512948993697734992393969297752133367280637041516658644687845989281193831098416862618429057081473622357195660317610096278437748550464793218467350366825872832086268767811412942696984084096648562043818925483294609746607369667538021035560196734420149672090218722780513762170256842768106520335798544505407516910441727735706973381288596659379892164142633248479149525706444648439909571179208164175514974712810842939328994834471906792181055295857820344823304114735085311468984032427461398373763874107876123185907458777555435324298671148019676182894415067320125897760958350426562514179099541898074597723326062880765112653868040791051430677939854057407960228086112195288983455826239060979689729032811561845773234720314733696756997028493257971477592437373914719317750840294812342400547313739291682707732376218134079745246484307738602625103704600403940396623304940600577312819608216703275689016226499110487059347716585193555460189841707060971264855662631710586858174009732822248028853795274576509752206368911840091610463237972838091861966447056848951447618605364865279317115398728580266443446516392175937868538501562115157614430849568322613971308743849633045751403394964517226399322351792733785559425982863592670645667413677660503829433973783313767638553493030434927949943514752758846497365265699103055665670027639205319129981968075411067360495319595135288591541680569355024850333265065260674982130796543791485982893853579192409336775040635969663632574245077904933327401304125197818470132597952907376753366409561982069292246614426477997287817394246129083003163021445480693931474515303218459351566578502280518800607296594695813344954244491130265841768142530553647534265837890758740469075628904399111684839804541836398545822603934743991605533728676310554572996612593720920138832318746667625347276574831909595610384330179820477355708542832547373800473883262059235861839768431179560307375496672785488633557852823949158839816409113533262639026938683020717806917242075732491192539195287878316049077849813416629926368671872316364760377299948937941133155672676894395135186652297777732727477370618728012890024587929686537068818956445269438456918700512223323293697934536608549835788424004591921532388594261233766909802176638288794920336156334436483274611045959526613567468856026261844887197512023056057058654531218637385461405404958156506194591119246777779134036579995503321046237465160229786048443877483834740997097464950019443825856372013645744098108718552260728495133484203981484610951099397581005331471491384033908749721071839959430205220350577061924518484565372575371748942813828226777668377719689067253585318672232599903327077047599541215260571790361204721584733621686085927712352889734512294238590983781374638870406790656373273347022364930981218213998269369844251249105463020554208661736786606574068654664865593029177837139499147948525310904193731078277153955764707308153411999851393885881171241242359200317072720929369004717748740326010256214978329598727748281010031637524106127915029697364753582045095918786359459966676033417909033279991361265122153525625840051415597597049441326785344160279657835520029279508466368990448719592496217095134036974417324790129086916951656330320786143054987456358015856028039880182700450120627705363249993325318155049565697905680098245605825043120591209248835216887055741055077877458560622821133445304322855056044617417925746980311758570322255822698296987011386303803716681547184399958804969562147744716650954074012881524193960031542907573280001543736463340080840669556068274913840041009384063711139314965016831263512221945440707624328420825667766771633129629645575003911195012098392311064791434001139542623582888398307606812481275825692559330535240931841570678449594951077908678637620752938261704087052773906482429101805114735645381634657822348949706529315550117331335754400190971878348438738965614972777574266462805384275024376839248942645879407933823323202203314050284800814153005285111312200638307509118506446263843733299645275553703288626632703897706964691258443486911715444622037054270004238375046809648307751453933267917149760668074360622959875456793707813804324937446695484646495874188296869420484868760808597817095535230003233078917349299787084661660527489109961211276992024304863474863173059194580461933426051847285949887810391645530866875427826862323831842415725529894120678929528452243268139336760066506721075682553058454758397035088500465197381712345803714729358103252391278428062948482063403300713209134233139262449003086553604988731588746148959702858909601516845883992824156659579278185395955135207370861951597043339974627757624487010600028738018504045467179195419627633088228803146741042569004676331889282086067301174184847671155461287737145938305122339471999395000830325434761579710872359248582002972577537118084081493999406000990237936688986680628227878635761366145146955694855090877426645706886288183753905374198376945499927247829570617047860921423361898222072104611727257876877882212762631958221679367059694731331696276293665210733963587856707627187769852685713541027566619778334343835649612254117986316125805764855815047123896573400668084751643964127025141726807008344230263144249442405974287681375920886116603789147577670700716228016360989077808367379725201283020543724052028899923166170658687933427031837474859296141531981795135841556044593549503944465714003797889620914082391887644872754725244183451577076243009296370521322212474081524810743564707753808049574053229222425890599039811315350628904320069432018933525820782800209428645173795014877057480588262473139976599807419838129918089243805175408993003191505560724065412358683144286210267790848948305416393715942284253313823912757457675938664690576869845027926654668090015027821079647708429230474461390683178918673393725898395022547376358681177197214622243750245353121216120823618664335933572530762243949861833035708699683014721323912603007007450830495699278889729339897021037162616781488028804149737380078528432143535140234175937413590448548928538038406239754028103958079449607745243868365471481663688472962056447076907813162242934500954640803416711857711884780886238804593455292555284602786917310636533968388782485171812947755077349543239126722513273861011346440166857537271189041726908684777794457774011387507762658762220870197619730584749088916174080838250020038306504482934911575968293675944511793758122330116370813051568793720215607232378381421234505977521988979038903750120311115728970474948558126407228866715148141382941172788763402212035489513217476461061708262391209921464181977480088409140324315693459591995873467036326104635620906270582481959897728846789680707031874006246098288207374367605911188838081461685545834030437975087225951396450082703873733273642659904319666127459845147704632446707482705871346053379857495749131050632183616629109677728749328426611368734371079684545224151899081030077377539675441701860790589284575725695416022680783259503782551443419092067803560212752936021716475764816668869956112731128187475569692766517678085546903779647877875513941901346355298246947767960060628948878733620409828645731104134104963559604633164942762384919046419686157216754072874709507201776719380412804271155658581364032793231476646233554049999285868526105998509468461127851467380493244284049703823072787644914521169991717360738812637306208645969953668442817830305764046572086937280754073497258975910157694193177876713813674953002904233336874480233092990061882033048964213335980356638691101866540866001784065807997023871407007319546448914694394093156704744656682845209915860604312344430970329180938263417979076193311985531397050816851976438500379579049336971844988967404437379480451192623840557572952686536922829248290767715598537616482164074263131859547514176776723804418307376721830286843774544935482953991993700764709539257225589234510871180921237762354342682142104556292037625989929200030108726348993560621822954933521059188382871484243330997129383735823184357586398946344321399297320048082064095131253821184240205372874954267375192449013388253340502141013270003431690389031737458693101061949239822366150036455714138843938181871465450414150554349890344408815926132845486680665626839662802467775411568038764191892836905137902781770384445384191903321819157623941772114425273417191347613789072490666964332750376129287605851578054995019250930176423460952940978713049395775149797040940954768738659940220147122909863635235911972803074262843346958589486216374499255704072536307236210261006687668611322076239071101019670688142512300673379290686848538010344188093929075744475675505284550487354479108991014219295219929038225572011502969885432897270950125617285759293194519421177299290123008674588859925285564611104435588737913215848815909629740294130084621651394991947640012998294692730236914163465664444959062876405672790175370229442793308899236695818479812404210181179337118558192776695025444406938167253930458863935960223345021811813244170636532393675175634793047996365377107645736209116199509901911152450416769465499602298901595496946238510059049580899168873490777600803235065102410341743862190806628889508176203392783001826599813875438078536235699319782541426272686231479950451963468063658524087642801300986151070517223383693307946498584832901992573751172132902782559310291955489163316052930108560553534820378053027008795861606317752220840122862039207513320216821593386346108161459836733625715543203700345953838418354474876055509660819131546038520992771813536292884309420969250523594600788950038862127685694192206638013827049310027193970546825233979914150228997762594490682060659033743597559384670099986699349236962326386279206155611724182724360226677906854233737387471932868042194236244430310564126715955650096938881480689393180486645635579934342608246277928347527090604730048317734176624316373751613799336324369485788372002495033336221258483618576898128411273009274275737514198245225703010990062440251436563002772131609533558105116414161937048013011895576060040192389502815460368392586825497264116629077752081359841830372094938770689686632913808710888722506163500768596799210309025577242445473540840747892984968137235920908349915042299057206969506364841431601070423938218543374041677044559764164581519055544714565408683168690189648791599640611924759615314072406137869463266475227541312548781211756900751016236786878717491600076816380264017905349884366859683699351272859884822501472523189105851419401664230186193233276743974810115501467938879099638033154281422475629284943694510553155826601118178310357381860699214006936977861446580041435262563094258623994225792159588289802705559594506920958453132482487291834104217943114500344596216659553154987341445380052582598981611702244621173730999640268254463110574749597074728384649796024530137802467464527117487822611411185014638171856797165811551362475283341121974033061406778092459303663816041235941769641454299349246117111785560636001526795520420928763471451058225720373380114594079201285325764781464282146531504324492961906460277932538177083320444438423508031197194846428531153498919832194121544382507566921470258312910131855997353760925388444765841925184995394169817727654437944323131416528885261449478739172365887376306143378895341990221370034275804147122288962596783410381395369664362842449335287212371203441113869305129834934613279178441330067534094449921231021732467318709484366467577208441600690118471503553320887083314920113083214164288653798935640279769821820004514383682509929902523697431493274560615225668708611985300345638567996929507659573218051650196488327893178696902385703816550634979532976990456984507039457545458271584048670805707795315758214420062420974804478325341009224246208067265279124452485516465616939120418376160254660351338465474492961830752138359726192169135448042311534456894719598378958375147004815671017276638241785426184096815985152411510813494824874804156469766048187776606532074674001546687447816462730537075966112628898312543530394743179493878058120164186604817288415937323472651014526659837202698856921312271201543125054384293047444670697288794655555159812951223560619689310546139932967976336254955936795839632109465516898872870191634888383161611399994346359508023541191203333280744359088168096260457089508622926610714575910351857559813408990249284086671931669279112151227489859124084107852857398384806011957588062942660348728394729162932120709320281122048804047187735952892638000050258569658976686089221156303359293597764863472874371746542649560489992865530252331041637661251366847421334964450485171571080474515153732219266722961380956654346596304391825518997120793607069036166537021874751507174607904406580865817032643823966532952808166063890086262885563560238210555173396090700614243001470941399594109172818279595961001756154986032518655633721534304190104692337371719675037372917083975811341717741243039196008132330580562127151499599309457304664002949616314106113286632308805706767529331755580911654006813211839105049621278969933714664607635125646194603329542103995458790877893773132590731864205010860280661267063926923730422102707239763744074211375279080349326349611086303215540087264155161389628512931962105720341738684288936820635069218864574327107082793286131813952272101253575648616491231881588342865905678107969977103716864845703625388798474591856776022197200590631771331983964430202713995573273154375284104299129161887136182544026900933277417005190098332896339468352277272573921561726655616544748004820215890800031843232476733161001630720878830339593761343123126880966385333986585956939364970294263294864307827194806462576435055256413346100547293934906040558472948138217623423751969936281356591940248890404923761562499672939678470204074282411260274389065204823069751021178751436273314596367525033054409057173139846374595625025310084908170707212060438873796502301230533218559591227419149205057090430710064037275847352150456194812239792630159065232164009989629367811280604396092025784471996183788416390178219437745333257915832858345981205524918390605224183164065049213364741505710024619542384804724054921324282738213331777753570651476655996381916854437928271701898723721937641200796867739280451284527370257894420784624500301756335385624578133559118013614293179803424113693064486141050782801643508843512868261873498267862820103729546154811237142848113736350776786091487761218393639459089068555753571421635249824160741956888461634262383683522598417597139759511182329363082133854059509111689355889302012143485097706240246370854354404215070775963727530049555591312437829932687048565962782526262531531389326930538678555705333609402226251058854392161079120450529295356853237089326587383097511038785854825987256034405262456069050726110293015684025595816199847532949395821572111969287604361580836478573740224756007756169333221667635393667304909325425753073627680839462443835167244226703263736236031209285499577464369624374023063245296572046224175402903617553398827755262662617652147176316526520839945803848697986544516531019695715659250773247398718899411258060082817651779476955421964375630503394280388291988234014853872856125325121406465180079535579341968186643736395418249042189871401801223422674960538936682426672560726313001786585845166377592948248656566235349764149716050807634182070347267042290978503248714959330064651883168396383050014455874296246802689577620196983299473434931356214439591670052449956771428846384478066854417177590266286161122042789924741463153284414104142239386974988501636404378170898456555044016449666428047172316276149009353026779570375645123324889646713933476283245330539949376468777528812348967313676623576550869607979888117368778239346980255557467941917512023642410463041134588980976387694099418205185236387889600232791182611231753356714089844963221837050313342344372194140792903977048249011131249469789807751326993702014474496062049171938009770210543863100189990874711593944940250803206688013365714228546058089429019056938769066972046241993591606431722243862244172882635769534572967312455889057111663955889359677553064817554164431145010601935008311914016383310390580549419292341695302976595779553262859586957604371944729024608742784272299906348698478089253246370397276029585922266056599980592994688725725989870387484700269619796208389741863705697572420869875674290511712243547638773478288128895898452835221229204654178227774909167939783365748019258568024450085695592949128737048622740345302808087099182005534970106311182428737860044026709487421112045245214948301760391671675578292188972243423339252452934027424649669926397600029811599044361738037885661733794004577296604427024757698511799376986084686942108217881431874272351934035010429759463277918944035853695655201779599100312873231105344194020254266899430642997997261083528150994158183757088370209536012937654696497570599874010825413572566312421201855401116110301200989241677821675335399023851446315063246887537409935654819028547327481867639460122644204972166919802048179489347456708993534423430027273615678885538092578098312645639661259746128732693280772972698431725439432533908057436015166563733384658690642494447671959286690328323768259687986221610991805040288854120960742275529543696027413985072662177625932063181020623894766496367338891600905105975957151239768222931330825396958117969827029441009188790737845179751152402169445491621948956950411637775110999443829309534551453651619311458947217835822627611797396701734527309916007770457990937076121944388599174309491559331205202405182816475641385803791900602004741457562104615334895694865510876168441722322873091394830943069275098552524115321275649410042479397952192956436826408109330563419441992239242437420843509628811839200084006689089128569354764702347072001471650522198426486745154776749862326800343208492091995973305452696075034093977591544240618225456390819241901482033978992065321105880998507874930115140378438844315519172685178403517273837998796712009739546381493177697576545961891412308740801760148767846633684330007091243606567488340325593341257273238095480708603567203476659539574769679436385510663686658427685473964579947770634436700719962633469674881777902024897846092867527280854745952899157864371750917823938176103923623439519581724910009388202553343432122733284359738322419103217921245211888702789917623770268012688684696512562772619207118353729902873500786761916756125999328462007151574671481875170238584162558295793932825825912363616288817362638120066257273517649533124576850818961135030446647115336568482867187047295606188945335964056688347329785723867134534191019982569986069137946675929377891986180138744285033284187967996820215810491083282177553660654608782144102289823223535040154530249196671272042824329330866172703975014685620037414048431533504581405077686697141474271963182810246820127631342171707107685417968574750815068465866709764763984323172704587925807666326573205904446195472669196302314883356764649458823116351584479162394631264558998280159981848481359437381530290401037843037333256725601254257988113966131428727438737808640377425433082446693782807935517223376294095764887980769250516803466938448041478374482412642976575242765788674524270727665750829356431105636329489952573852761437789568677155763681929940845047453996635042535112148122444226401608664814105901716015854205215143495267065628388214716050295692968322193534800062171880977198162563598623071680606594547848378242499337939412168448604986441855999368308987445585340333781324000483104420797582863719901343653151574822322512171663847353709433286459722861406598417822743972739013136219065419552361005727678913051582458457997510867031965653206932684631530599327826811796963958598417059805801002469736407091311387721591813041334691194181372714054025048376695983475668594402265405763907209729565786648447288540069014772661817570358781284876173736082135937624065838732896268695936256582138087501754951752606342418038253412581973283633575457572742241597661336835496455087041117891076058913104174338116586458134310503703207167839803158901873779654152550747726736816218079409596704433831903635549310424939531101655224612457876953926043433934899148853134263814995437731735267350051697412086647418059388136938921064895309020589237284210521717930427084800966726583396428304248712201923822238656673550318051329084464607916353410139432212149569761408989812442652120746860132680216195917863347139125986470894432075570747355866348305135259304978227644673186175924308073431803718015802837050030638126722410319492848198229277644051695911226216448764414611633921433135674679660320881037606582285060858158473123802285327380547328021959427820884806963181136287203617263390434100855851592963477268118590622677195079005886963679393264268715320976757289000662872563371386530229133392259744706835219656022897177103200624498988013350799586481566097620591319264987757710308670034008166801098953809752443708826621125856923291006942512247732680063338931910401430535039889623862944859957757629947411279073200233046274556080387973943044035342498000043851183137319948049311222011899335931597155973055323121877216692130514984115849431072910537340778416422179463967544593803236644130743897900059962484875856704482444407277125178647637586555643517221561890994522009392421607579558102716739526976216800620955844400011206136882507903504080711717904978308289327287654441999676558444264794962238383826283349068479011272410601020113953560570372189668844328854221012700000369225603242346334698122976201120432601426506227356318027868178232270063627917022683738741171839312876333586221112006036782471899706041428816051034468988416755819144639462343578183994868584990338044615398347544659569550829594172420332631724872198025225355390244418697652489130116849634821521754393107561156451553290742202315603787266903839833882123482821486255739784728971658719109844151349047785340805443799336905592805795873216377875962756191360972724369954789766919612961100604536364908273120498044548738910676131776442322313758882960729259452160197235401834584397996210657366075252538206805728737980303308608759940459095657030970927525545299354700470301074243289758101456035692287153123690747864708154611931302436831273907712862852685486197367945099271330153175260292775683000906511528275352592594299753530946707909815634503638585682156319606479115724402339820899551933124708063744502840146496461011474348951410328234143701361210756268549338886094288103827903741741623530569134795211823557143487284320709940048621002966245096685613156569462086195854182911143183635391660254136773902898936205313004463144368668490692211040363305609764571325213147968887345968819776217384816077745579577049296396969324756851192238088560446095518977448545000413423163995353684046904697833302663866495346909260317657906647773908316359077040247438065585532562867655645918351303845598908863903854282823977528644116917389824814117861451331804721305203249660265628262174286866784580788413177016017130141350539136997262767672350826912436601184542423720819847137382907599729275777675161199642069296915241203596443350881246934414152220332485312880483826050989295459639963066162277636773304703424988589170968706337253714894724184409080069732939196453975310033691186933347413618599948609117266316116775733203966775655561176123341890697887040945282808009417051253629264324663470973327625179980879724933172865997221894556786307460734220945448488160038660204945217928516478300828054664957033768638452905361072333831055416294246886877659997235646015874831892623512431842837876840528807345893533387329676702627873836152677795993787390874022563516957807656891428317793947921151493812846373254205797887021918085560999268233885953294314486198474792789138861271739639499680772200715270570331811455885019831423556264743366618165157423006904974481300991420031737110462469294896418956039974798769048309952858960356165565309635136699437490788236603840890563659601895579796851477495716110647556916551117973967354510337409517829939374808200917654245959538787692214527021231469712759223737915172209284923879057855692945359042293603118135669998532919224143909906612320896819889463564151307276760375820619819029891461754794217191524452218233923471214376430820165138709395547382296139953847017722486805590243501916440156619963219975614948959047066055438269383658595904958485180666968694139467412600811892542785576457741981400274601608345852587850464612843933122770594490703997016606389605892531164444639194554163991991647937554060866342689357983281321606853824634803808556248824349740756340172528207548864457150860145456694414093970577614745453322284568232188755708099406103308279144769031084487916074848080881468331881910562441410431503254338961108264707784868149928112262652799563825387461853573622429373963963438764855025180901947906773491573556106206197276076748257298792446024489240670845267304918550049009009476801896110381337226817134501997739703459554411458349404198710089741006351245765861034550337637933499659611324819641037575665992081495183796311146957645565679936358921661241539906535101556695719597848564751975589250298989030326221260136425199922703939296607342356624734022522095384715427956810199112993054200380188035917041633992569170021613614683803497725995059945751283607664695666624629165741064168428700911577022715521033779692856943752686915771256071355286386195670170583435585294161303032458541518830791215612817435495134372851391546653812395906117173484569160887559985988883101609457010764713893401220336368412669502374080219719301210936630724556043079345112062458785866027803466997564243667795687454413405443483517191400831373575362936985488401021246116605829482064067405600249726548447668494966122371061663703835036244402370164379129333985513552725593154360793879001332473278248700079239212006957663334906202580683038481061307530089371809896207370998595865379532022639361053115006406876823841279276930648368313035382436584519406146818874192756663793350866144646318481887205666988750599889234225760921650921466978208253461218484337467447981609450714157257046260845952767236530548402883993719949095288312874026548966283553534103502708790491516595997553773702736213780580054333428597231258296096245714966236326707954348180850606677664598516872060853099976434989181740387447020014086743600269797793282502033234457923003442851971535694391186262377775370225202036383305061524455401318978578502224895510061808701870323384127198841381470255650176417692985009481880261272983198206305150523474293659546336746130312922098464048062924415511984322804458316489338512332790850914284184666708127083739820922112050630650856171993598077543989752352348224479574192525023257869726780140281601575334634377867444631098114903731203283183241175362976605912712274239470547246233044482906638076432059908495868721094243128161159494712666386534490629713849784506967340376297703450979505735040156171574584156438126215035033724305375738776531621192789350498747867494136702272032293936984437890636882084188816584696835608041504512212290036966790656737474897342430377571652040689308001449897798585344420656558033808722752369044166699174243595867251628003914943396096672741232912363022681210145326470443266012776606784166072283605503434655939793324207625223547430976930908764152973013465815767236058890338352932451501224590986223986952951410026555762049331901318856122567239628406063580374077626317496301385350896827953844376657267049558163397827120511133311733409329729038583607559864233611925821351107811759959575346183176414827374817286377775806452392050219504356233224556313618247244660804604895941529902727428597966388674432051980861511606073529738497893106701164357889898966383216932284071397982141527618736620544623039763036570321665741900861247018760986569131645163236121034864266630471725949088698160183366210276159455338247144836059364705099113843584488652801675166568073008730322188734082816856950021333832417811750012967397441440214676574650037594987327903736232920846647678680698373997402739348056686668807969150792027989169264375986348991985471155552071984380346024917090283838766700742661685461126904604914129851682446525542183866891831679828064917362742474765179757143026110621704871317854425258047339095701715564498553847038937312371978636720896148923213231106939528555504674351701894601420781624179478452639396660611663381405583266049034765403047415051436615107499271498285795783068107561981993487994176356814918168346709776650765776903714863240815051972686147258583776347966992973192417597885309406834278071923112848486741275174171580374895854474577757702011545881099430018846325174504124004906833549911189127965498133157219326809696595553792597811611773393753732393165799606618875837441288072753438938463479310489775332191748606327285277737114357007108091754278184237077249609642166804186958482414940807404118008078082637160414097319946466528987165803704583502494362040232700794044972788657176111527899392042190928658811883711256911604397950653842148971570457281082707413117999818196882739874796512621699123423944415299554443916390113707682779736086769618672243870092968716092310732733191958447569505460690590916651203523745405337794346504900519408140448714799802682631388012086240374777207639716191790535912335227648222819383594433868065296420080683037850026719465309322738452635487686483617565143397136094594340686764014287582354240667846061995232092088888692434134513825135833484804867057023366757122573069027977220644216045705957350167639657146644619055240793668207347347135511871985883004054454683241815051199740201262627915479552187595969475632158562941503251505520641162074274705034777680623724241344881675388462877640653412030894442140794366679205571316208094161516251789998806086763551439290125496200708231786078691414107409572543347885759430442689601516552485625248015914056670788976314812644849178425136504685489609588581640227280933343208193706086002997843309605167243775199180728079919215916652330772775584965390109494970579618459218168475229241785626946046955526400652374657245259437543834480615588720910706126749130225541282141594743008267258899334052456123839940003825110242397772588483900410930934065007361367708605457258550167669344932355555872353561384691702386072943728945779429742466386857613270374675999822109506396866161471731664888625802474646790918694403557552031710080367234696094752592722249716499080320844321888313927160935021062272361259791670487353357618103076311335166174025488675232693343872170504124607736396014788569819923582991452844003597197971827996495273133929653559426857900668791769923806175416945655662631741537789431513311764338347510294554239429309373738099280924537465806208662150184843676894655002710164092525582903097336436188464161466310750490291449641625114790938310785102893513629730755644671425547910053695115959770445854328111123557360877553744863444954963892973219542043768649004552391878947664967205743838982483634758106509522626616170853752611461923414655393397119502643894194597474229294554621060421180342088205952035354127848896024582741649603057953911383145250155181267845506513409092822790714800347799632339213288083380147025334296598531225045705766573407715968900939713074494433282697704721019956683469658380721976087288561625611200037459708038678172423091790603111502603145375348721119114297094070396435221489156320808931758518928269096033549998812423423000530985434850013699885255841837074167986699739583904620437722192973759822039245608240442935370348234460211260451143727620190956379392681926063714317007699856449637270526213768361254469775972298181953510198342261701335966306029052056023902844114282237182520308899437076003229755093538893026195492007439019236351944803530149756191944963419302474787712908462993979600834557990672315028555473755034213353312304596393551565358270956901527318533618086112431941595095973284237042129729699904012211107847359083921188978345386291615999569145267516722776565605770937122597743055149314077276149677193819545155458911297110289302095919981204574852867770668069491496312783129051567369386030410408361358860420783216038654936762811875251598860860203395806313915186809970234970039876713651140705179196659501528484884191800486892440790005874775422731319574847206180171848424228081219705735359869279891916804290317299245209073174696947165192250008497967155743210268400832462958680289052762022600838921540913933136547065906152271510352342528336666136962394696711109787594448960059053033376961423607428873150342824093290804972131012291678466019361472688183988093613181012096921253994873966157953740545456183553502392779046833732547391303935748570291536940834460511770185542320498681884995030132240298043044946592522988958136742737840900265243870999378521477954573518097508541220994807789551194532763669412390564959850977950988444799461277514860978228394789711431443346481835413588642429151630166166565206688870358321032019433939830230889678399058046014598886832445954620734632842472694972345322491578573725417419232667753235154102796193302889319406398209067647844344444424276190512006407926447108339298296304657613131544067670890183776622819954988381859589949914848253922779683878192990074753314405614366707562401745919756185517693921922494130925674359056692823557596410505026623487016592796029744117513600484812063836633103370186039784978826360752990883481634139827968167956335294824629706577616214662160779302859787946813975667689262805091547267372130046160146402795976389206757818081216632659281324159581240492468868267334493390350903295761800139671208883352625854315971620981126747586394979992023791558476354464471179064426810839439961054363677651766962867684092949322591560600795174762177965962591828525555571073437498662274985593269299888598287248661371603501751894602515948638270309931599098350562960815861988881761369541162832518316991455695900804283585653315392758467041963025509716350091169459937633869290247460699768360899980857788557162974592819797039106075659056948475303373844456254177347807281165815308582937435067128664463448246773883767410032643686335450910004645285202975672511156461824238283823973733616599616331606770456629315137042136660777999887459833207811216844922814379541951945666966985976134175576756350819904985173636895613062945231840106460540662048847353347602824492743444538974024713688454747592268517002241544844324027103923077791000184088295426203788751303849217125417413678731726833025224860223415281411619996089499080817430592093315170172043200303944694501854442897773711473193501336814911540546463549550705230367947832402708723596903398466183656179031110998622695936837426442078708448787275814939826243463651872433841209248319250548543415825433860550416656411460196001322334081176891598776589076249513334779196762253792226265759186370003179062941579264034125480022037127349643453475545104013427437256840020524952737856824150606317196272779611634927364537636196299410077959004215228182299032032437137505481983452900809967427864930722300447023465858813176814382280389512022929583351601489780246319386600818725406420479935481694511734186557577822877327221781609404490158848635722452517525870072620088728667002723328087904905970039793343107848259398963386097139555855919603359217788133904259674086421713973890342064995315231057869542006240707353313340620863763964235348862605536819712392092178898108957916269941590801568354680344643419892464426561597057430479841036936170781288866630891994575290030100259412536104657641713594911140749115190513611456782308180326582729206334517544280801877768185398045792064150256131709646719161543506367809059105241962029448024682211002378580148340476528573014180837516848178221260935383825298174317229309617245142395712970245885060652838536466593437598907529580254932782549758790329914875554772024883561619994055059342171434874278234453864789134330681324875396252684004800943249579158355347754360410667601032178445612965200816682110870935313549762340344196609247002242616990848983603951267763429849047491565495223370402124754258748098219484390923333941655932686223257595438400311367817246666488216143620239515461485012700752604699104743228586213670886719415628839625850314442469934711646439753792113573455201945693292185445372634421501950403305878104448674791291739776979870430316472165779192066630439775744028377109729336007619680837953683799547104184040357294635491836137337227530307875707915109979372858827940957561186904351580657363154666645399619236118840187912208721958188639136227358054123800731995089660497043100238203849819014498028776522772536182423000538611316627002071369938246160324121933322849853738935051077792837261432581353469383938724394860272939280435495970691380249474908265291371929626206013667250290972061188778490333247408380347649674958245951505820838558336825193074880542780994807086445459258404260644785394963235690600702296485319333163803228852484868081324320319995971394188374687448968524483093615029174636863388077968899667929666543757966742662569786639016439793413708655542729454158591227555812074537522301816929636653824443959411078779230839433586592333568123899963581520159087182790326315658739782028490474053848598762871156521525296611838382555959301246106250527998786789725431317926791397582446520640378721873017640769764009573966731761709411331434713685778622784293767371228573232417025209483274054019299459966844884972141892908857999852241449985640151204183480233974273952789586140673057520257114352822753973832080953636315062961862016830560126773577933158779043108467257528930573462409685229071184765291931826328674646479650090561033503993062810313307902654764180911254010898199838931329287101549210295558608775736613191240488028377267933329793368292195354153968852646699412429605726733792105527051340747399885329467991890520080788844706960442906220697885941959743280186555634139611725115315605015318879090243496422865968344402585220309301020453979174467043130352567733779804752033368254504016281505296836494392065836062066246601091637956775913435534450442192969797314139740458605647816009763218309765009755475959060866307004953311754234267168903712408511531980057363083163319869695588774156104200101875074158270299919259515119381477471451861176287097527359774682757908090396255128455864361497926042395430798327456425184785206685688076449812880847452310725514045368230105229279700200526092024269845085090817445957269317589026391383350123329982134716455283485088919642583687954913670117297478781488271339334181391171466583022651465163981383696039142180759740795654384621821341561532345269216944612098134267800528417287112574170958191961191889466998695245333645367795534313673561746999508177065667604636526939033922972532835058860092029362730449701205335147245403313702816930251181221128490253470728979110423898902863901548925936552712061176753373480858887707198774967632660583636116157041544908746015638099185824745133852458795541042312368092435358396518385154790998762253024312492185202312556617006368631406851775581633056837498244555974012982428266885535058393601802697732585509613118763970970337227863313941049391160951444134304653421624399315752239797847809320748936362890935935139483562647389800440514231754106263134990332020993361243863483392566339813508949015561772767451093284509663677425814947415142542967144874234594267106766024431217267407978323638822257977911415987186042751403622895464159241888708006118849850174919583808799443968977802366749126772254913450917958099335211043571753568865298659550325820289153393634747246471046987980431307193225823370912617217052192692892853429662711840114484253054785189949034313581399366782862822180356927930804360879210550742162058530140414261403270463786505945853023001825452931984115557316621957342882187333000236365838352828142069300770731570146369959054763211693341026964633576729135431192625647733224307458853392108069212422742958492714169027536899397053984646594581734827087778786724408268172816534443814783212564704911379947303263326504244362769124839582978478077197771994597562814731767232133670038432049436110762796765881798219308512333225190952986774358633618247082005907556027957901677059017436509333004709457868337769761042367886684795183743274200441932944075739335529921605465259648480097447021151463854519122060523675643580290850317524900985170721192987312076150032975419435001820778821701989999689523763483865715846899365553144957171133494167999466490450872721284664811926885623582639278956560382565293116805396237906987638845121744582147226159081740668704979086698656628551347671126512757773831003797337200381621257925808173598989318773224605852968914035128575444291132372259779198260141715321201533438198343277444491786176890774669291231486741929180487103532052252386456076803776523827639838397769734973195770587826959627647466409637041041981318111582064804740171713013570032777741952294960156594785305102411877838548506416377809479437061936345739406671634247961041501090542534384495195695673229157074756538370337612022585205498568524123732679797781688077262722077614761973106991471166253797427994701928081978176287227406345993334258160533864859641994640258889064258946077332495018645619298525007040794146979315039498422495503162892257425964117388280905413759227163905942597680660376610310712025766007714699542474819999198896537440938319843685213911735029296102165660355060305409829323138744134628285411552244362959240740491754702289867571350994741072171343159059978145259516872358420998382610127321200603594060099112289663857664176227992756864716861033167246662042794219980115618819864163589964155196619406204096047556057785433185360020296115446380429708544891555036736894977416061364506007736724080952147128997389673782155849554893007104288921542551977123156632807797567382880357134439794928443464663584235144646139577853570588830561677399812122500992564507044089490322594865657338727643405027263265542756119637882607748896480246647503958861123572353289315356846403192732588229185851709598138494413378597552129357789480398513148929373711933732760257013506359698685197729806720446096765476265953345874541374904855891616499244290868304731815579797501319475368711026389364474369121962577070699375583337905331928399752392518966940520116698421556419198356828322196430266548008925741449703222266078329020815868696505983798164802701887203724866688736089527683687549942544020864724923247733414623053518115510146502134457091011692571295157575664665572703033984300605155013839086640690981855536929636821873017815906858966151013420328179789581833348535357797245678155898786874736297639407325459367647109518988211390641479926069797772704966342077077425369885639860049107435433019933379859934107955769583039015523706836353493661731535997606666070666122937967439020404699016836026288068935892046813188982464260508887041011963693419032027590098653927329798980948047840906450329559866822776195669718766482309224749643027600832826858045817030652948632243119369847520755740799688000437958229188904382755322713445870614467417869149148556057069948867377384628369663303394170578952803545241485475290547127891729716394626265529468941874702212695013629250305000293913886154837645532611157187341705654156110848752278845087432788532266033755308708178065518715704187465585360027007657054179512956627394216949190929020725908922517952378175005120956594886037239373417413537313456784877778364015049754021915374912612081370643148213104040137935004198204133632270701188673362485720645239823257031073631343050909719579120428753904848942593616033689110782062467924496487683470261760207604437793579818933171400106693844841011645654487909404361712382289373267611810660560279583510056663328020775735150887746389734955175801865947084640886090421320762581419955769015878683598660976062674911452077537283091270431515155938522527786509214836156037197390797933283327648056887678982278885986126750554524181243776572751417997572891584076758723596229715463978849710535320424247856507387789897796204824825539341691939511558128996209549113809910327874128929318601816698321669067267921238249951061994960265754426851880713034489155261772192658418156307934269997021213878437486095097573417725585917762746491917246252898339667867209679924217122049268646030415175165351513199797108666116033284530662034816660916620247875044481042058023415643519682495198805635890721714368899656861468312331277453731763851731534192062650423543456130253683875609923553952155037279248291041620638306073214868898818117771931925719753692015760261931628095529324861822238873319096508509452748156107294240059107115321335943594975801766612852202769060059816687696493604479579172834089447576376563078141974201685219008651223995736604393721807338199238638947964861394328655064355563744977609469520624687668582458182927580109622824834613423117001590034284273845025102732620404566253138587668910528070264499024967108448863633363165703105459337226235355904062419990582032356026954850113996164718921409285708870566299149076722679048167140643929466852726015267164230180445622793587197255785773716798927468276122396504319076286999463471887273997455136361112318501341985867915312855233888739684798805427727067312253148382070428041403210886749564671510081976892116694308251239732779284205888868923445675323845510425870066195769021320303405103368531740639177936016197120908596732266639510550095932567196652921714355919740904948890322101897461995474768760628772679962293653870296690437915011957130850914053492716945136438753785771269238612829797772836884179386556238139733850919741055183827854459151582220254263596558443649246871398448278112889075714890955968532915792368399090518489315203701523587621043627707487643815369128626908423453859145522207452014067633521590174220971554395962628592170735599879888109188889014113153796436500598770924666328312651814738453002013292121081953171590053476380452572529916977660874460200400267946169855361154378790021594162142374837175022859519385561099257397418206046719555309848644644967812545657830250522280645390752153346507876721930873775615098636365623675127807813205789323559928370240288622483828129455935902899102563511587540492366812794389963001323274019098332522492525147444034350675579864580746997396328874269229579113835665584006285548359344248373790899955710716494103420424243840674685026105644732481302935402252159115053790438868393867123011396462514621923438177766945199607596543353177195808786564098186843831296901506823067427005589169443014695735685557432717245475521456266468222176104793337709569264071364762153580903640029781463202759127318896081814380388641798816079339874348941869055682767835505982924548643069034202663063034219530545461640950767714512904560842423053467001655389062447299146627896327783109081015931080867653208376777983385271795187394994095939346127771121294919842310691259503654093304659143275235463226623121248352290226700599525252648467738034242099740391330163054672802672493225610226049037894128402323435619775960799641523686041900222453041554341824105399227827594514380582776495334042753056974902523643873676210913446464264393258586909075455421369712210293090911294762128882138090803285575345593192128799296435904647620490121696409641027529070925077129338075928297736987395896494781471968746920482471834048089028201024131664759699495681935737791149818621886246731007938189272991952958861883666177152218031011653923916064054293817331087188325906598635905379786574381834451207466366287530796443866980001894546253990001413661149991244567710141106239435325298199296304481337241062364368323713619440941426707530452937783676385060391171374470976261140882028759273960979086600600635274075856770695397523124653332214882327061370454557691562752247250230776594572475764149303984446820112589439806446917743972958667792612487430988689012605549450326343833686869673178928444069374507297476494238436002836109584193201376985536019449378374871588590498439562593009915849562015290743361117029074751458026161987372507231869159237229934571040067823030877964801389297668635324387322537669866806711452591910684272680693984236715419460141885756474679917842971872150326932856797451307242271999398521994579453409106864836071344952617551755847421861341494208208728182287406762855656602744535680671849684861761327250783684675070543284478053272619196078088528832756269105133435806879463468181401928304694491960236113870272610776645817167425458624804742249624728961700733534900572000417834513784009755867653275679446787182205069643341118150779789208869063172980879969422596643816193347863526034860447691248561672140952229950868702834338349490172784816121203816627627849784216395819487567339511864259254342632450748929570089384646759056787174025191491580846097291020222654970149865532730175878428505648592028553345635765757442472814880951631734467606516284853818599836756194241591537841873749249386926604488181229382801277200044513862703805526534189539475902968678238688182108598099107130202742235898089053133842258820887961312500926850155104025555386663985215564438070362542054236013402290725960241361982834135254543493174024869883365812956412759601346749825703357336215493275453575566181838773408122884442856987371636007242051052493750476125907207157971515399277414993721936098045766918263439737065442269317598375804783433320062841987800513166566353160290786912742369315932937612457388163815302937122882042993275165069405277774342036558837520901044024810067772119300276825755051004567718768279608722271688989536955313106594070337698547544449739328302868780936718374779825055477196491594317371560392898485314503526052678893650806668749927705153185369322813207621677183104876050804885075229342298858108097443987532911640181989109191907435331643530702157147712634761473015806699045110900925354225408364403718404544347783884723669261581613744696815641493176983066470431301932269496250247704484178089632387780227600873272280984114437204550653368013647448513163572480146672975250984040201145213193888777015429936909512749166472363318312956806932253219516028655592690717662552901559919328289404037884474600055330241702705355823389596274533544452976935390149618625292942241258507251631878641892341386102935620739657040707152798117469549485821734932817313732222627075715052725046295610171632584636140717062689334010204139473960198526271317882229461812798622529199230412143275220234663024537698109929432951244799670300876340223126841398586222736392105955269310476336390722688410031613064365468714378679153534334886522523752999803377628977513607583596016187462252645171471931667719513932899431290954645906035396719545519049719798174809039338545628430951651129883721173118881676141501257690681927411853710192210113791929310275653777766774057009168157573775251167522331934671599849715960048220520182525149396192799473454820315291603082500814831799796219188709048967754427170214308348929451756653342063621718588776598516682383344709095399218267514292702576571645850873371453410131028137923384302477760316946504571415160712308339006660874990197509301112409089962492536110593581922601475017641199215248263661793675206922297653982054367612073040895288767715441433131238313285039768635960815369597176402333668685432124310882506742458005207534798536286087428092782295051265282270070672739094756925339790035809011146041245341222051758630482781746856209913944930966465846189890543287004013637015695330747670038343190431732659281983468427282049792205326868915669830680911524538895866911219007576409672136650805179390643482526327193766015769665073772171250409524417058334902335729618581015102256223097155908976955783458705812090587444971530970176560474220283487156755876167883327505115553286939001159649436745845797572275024095036305126644425823117318468168466413469261776770470000452198567341639039209301893108976761517162858706015299241179973551041087377433777366978515584516436339610634334422086936130547370972919815994217845453804157886021959220017358333310079397098993032177408078062904103767550376509274413104052394606062147557966499050996016129673572652650865866159341631371796532172479672297846331020380928396410145322646793730953045141368802743979194338127883521102609816189288385587198452166586591877388948076450449585205282617097948713472822108754334146577760863316630062797712513962911832855588715237138928980293406722316098387651515972030731922066012557725457908010710814039786208300375714710175334614096367241987243840503815387301898242239642539153105546970906494846816868516091855360502375956144227695596174985538057947850475066785723967617117186603302844588263920051617873467113223421956036614494457579448042633403997225977959231558196654252613275163457888523634238604865743400895683457330467513749718999264250487333537394387396129240637839343508952509605630446265148287710006638157120201712963140532985039298221567780729437065100411240166264020938263397582840588769515853201057680394374374122071652148753395531361317730694848015960598446179520500359396562578729628228487383852369767017290147641886876092359923200960956354953100308664291326978781817258575710897145590488624788675102640024760787846952475141629964558682952810917863395148114904618018854318715250703519172940436522203374880212308741551783895010139487473017066941010740168632664208727956742319218609770384830991124186712595795188788822033245975640318858138008572541019784471856949242008607854572178369368288556973628497911823751312121035392570998727678252038122868480596131097249482352701398452396021823451727991950818442913777321733032009598428596099829318313291413762646361698212190112545712856814096462459517048595766448690369726359633349186171383794698944812396602781278044040109459099218577230465630847560139476367886385022752761759687995208526263403017245994818803243151997747630191804090935895975636693142763201421665577569291305315881065163286680513817060191820343634560752474051567864495118854160863700089192477540925172464817755555398884227747127925268039513819681890613673448633635928288665368251813951926323903808347010538529924062136504413328489919425824982295629318710593022046174274587969812658547395838878224731581357482320772754215640608640950003615895929993343056901393884930905534569509253560593779058606933339893241643293485193430771285260912832003951539249508609927454781810481373125904987659949278129247459631247892870080037124298519716516957827342812189657461431051249211803298164246979853475803787003666909159448436798346346529443045079281440423849400179983677964808961234714727283227734838276961196532138867633800323112188946688135261228719929006045129265603798536918285548047422772949835483643824586427207717245003857178262830573484306319301997813667887798349467722799024347754682731246630706774226041598984900365735241174525961176548828201817949611735047560046664373275216850505686041124725002327922850957201562704092958678824102279602395840752348644076220862097839736445439157733247292168918352715819748730621449661371135539810493980982041936973026341351878266002068327109174688140131932964929878263418543553676869315720713517835668713843993715670805895165687603920410567823003372097898654936060094203627834579110666499830581114844798627555828554772965944360504299417644633019332546601140136094520371151943387426734387999682349325811502809462890627327258897479564510028123240773622300208955042328143022994180435900897014654407706310518543248870859820264439268104447781498072118452647531777301242927059094919971596412118712723832528568448230932104362858049987506054904663287703859014242502252538592927101061513002807576651776063737491808440216694588283939916084196290920393462749805409768101412019139057193651404970373316023487051269474751374481512538956887747289823547272463128528344021384486152926140266081553515654426357038429270464575589005816060364286027172326710129265784258481312129506731337875441262971832006685445787636811946915596853099400328288336709321460173159584255648855386180653605534225921343499740496225866879853864741119782725003598689427422024830859960378069732688514727349329190042174931481123043262814098777950934269171047171871434159421042440162435254740077133628316799736627212190171426778368914900082419740334353035108120642205359021630011048877424982440087837470871440623476103538645614985188367247936419230299837867097370297915052824122629002286433107819717849332515562220298268746091086481017675129003565444083770294410084190073056871840981477238668016215999786554336246773389319034538583901571535054251554355681064310909742066685872580700607012347450778317295299122605952678173372594102952869015442395811766823178331483103106468992110424466171076837284751089978562233944986886467076054752791565971768497993303449332985566479047068749925581194867486630843689879301769768265185815959057106075868942846456327655916285931776150073629021497322343362527978439389642877102437461179565777660935896358428687869283960757291624574180267697122822698690162242730006463752629981554599559231505710674593242693639336526946349146985968553039323655349908422731103030269332780719795970762951951745872279959426392359199640961581939816360377475462666625288286957607570513427874297581980523139492454088782863241464097604473766341297073310383548062005609386294250200569171773736317783077067089166330337136003116783226218751318085343550359277527448452205819835530618047339232509668117140361673931812230776913814664744406913036681141191798114115027516673097633864612806019922175611331916094377232439815269973710851737795355665544876488240932477364982277340685461864884362610698601967633923879966901792270880837323572293071849853167438628325107679662922635939288181061373656895630569286183352538944829136490178004842399090606131982408269465168978643245336829480940742828929790431377912406704906896154909159049071437258376822980524434727078753612204191148773525099537099513937686285896080949608481294360021833862133942082532167902166186568850605036978223761381177195350137375469409591284421130583254578458473631823421608419117379377622822023623264001758370333404182084517289324111340069682182025507098524208031901965865350752991723325361279732869334632511065351525987938309819390880692135940522909418351754124632212996495764219310679262121856288598134900465255560981862343133507038057121110104149707738199043692840931529996192275441917347167666452101747030580287297915202506173134623013977075225811709297110179340539639243204887343447050436720947281228251614089319454343258989366412134623649822623668445384330214775406991533232372747053499074271500594373440269624853904477176267264416967745882749969080553393406657286470619956291384064726264890703025818887249339534028680660399797270526920178689345304937573001757300912172533028975249054740731726141555681772059720815689608002320726049619203985130892401607347755184339202861077082430253137910482431876610440917664706453126250333815456189806389955449036630829655018033804106818769111411748472498448484816691591383116851003559401387174645287602385105531725667849169291885045905955411025989813262673571739297760131139574116364075241334296766558497349021154851205508463177705453364947467466770933059440161386942130756869530212848928062365612808587114107815433091820786752018665978941223019968030217107647327472664650623898037673984385835868083057319765301509893147743468596514322521380602457381622492862859156460578871392297697219139321288363104076043911045126755925838864575739020514252555630174495974466033916106651557806996714655478331908174223633736647794299586841198709712801793205737938479525009211205777835626923595656052129999504841774666468840514020484781681479218374307079789177759025079647884040291010123095949005109075219748683754064368432042796918074107778318519439610800815939997054353531023809763206300928681202475405400173255407233898804454804397762791442823938995167138050035625977735965294210456728829800444462384267087325341373475463533021933055701345437410917795288765332376447008579555880612585811398520239566142041924008384631262452859963407432638173818163005962403612152367169734548206578334282173667008478018274428647737989835984554757971465662377192293534754746686719932126791754018438997190630952256494064953564664332539710476256507454777033840802801461439520851306556449174253129035935615579204806517019015275026752310616397654824978797608118812819837490305218584904821051605965693267898059081560881138956733994136141621596725271841941802566298275075213070581487334672861592546166711778405749783489470644005083505948666671875016893807058656048428423796273246204294310812634650535254900316506060916827189755151757998490759508037823564447349419921001739490840328406757913930582094557199427253878476843767101797262156094199414443194673427143598323598864443095838081551449588005260284326976713634040496817533079066732672132629626140459665115863933356161565011170021255147557909626372484620610775718619185477549534841209732379369732277338345116251917312498966519459129696809948873948008113058636026429588949331625455649414917753223619636371910663193110056638802699972886366692730389350409480062005838294099018738055528600467503320847081967126787268930393402191663852194007152224622653298739516072712581266488164644871250837935202789370145204664704037576729615467478685220918213063362570429159441529825566726383383479199824026185096672403312950120429843418569069481847398242680060358439380407383690147206806711914363187570038984378082223461404249088470548048287403845992702145407865125085445228987270575862819083948530797737836425787003859914432884864286816561559612886071663749142031284460222292440337027840173735700856045348749990387954656391716005301585743837382531167824785546949188208378103130551048136223529500150759428442754872432841594939305584852157692243930586856742843480464844140748121510052341663869321550049519188010441782917712864039903495281242941654417654887494745493267794745284572137581883682344060792013521250223622657940616717359164240364560596655130039949856353492236338291736387198888807707718677918633329497191707824028013494737551626736421479171538443771410168402343518704203000728052308340365782934391405986713005959285588359118276868346692610037785881338657247373111765498756677952398135460455675538759180699913734766924090034206833203340063422334795059558034799603906999283461877494225025223998082496032299927648823745007918154121600651309237171327462927012906634334892682619311343927530358069879474759909695453646112795626014873629104589367275459948509134980610212562983881804276604757291257376788737029173680946691305876000229226038124468646025320599117743439087674063513447730769761420628438089266423771636170903758064007730227336222172840389362131011408268066393382404850477735241893434356469514447987054128270575751472145463729254996454839604906851567050518997529590464361632525640004346312205412818506766292905556754109264194879109945641027925626047041957497427485126872236059418084085935881487843726121105714918449198485807946646456729966318780724608859638537722717183266805435585571883811272043225759855457091973641782711718881794530115573483707448336384644484689262832715883319408745613175753341423728857618896625173846053656695928961370309360560500294569194536790328935482657551465784780461975342048996364898101487565122023871624109630345555583362284514732303925766472402016170907130554820072761124280853936426451118137576710030908197841138185735090169093650016619676934983227560547750777786626043095990879474200448853734704000035444730247970233847828429767743288675233538584971792818835327478491624768153952285306966202655764516920002331861712283292807713974182217285737380486994779910973947043176244311314897779948645366042860311802695044302153026871673098261043608396270428833976400909443426165433445991913365257980624428151252992889557295840862922679802372447595437566668122900045853848790251523211972639147078729539680778758386437027118665148570955847375968656624031430990452980916942749339948895940263843657391967302843066361906265007670033231265803905549187777969577089396336139961638386178337484236068540100055479235595692346385447454444864840354371664147733078590306233606498690654898738242578455196419413426853436789003185170820805874201731041615915255822126369880936375572334102111699031722423944058284460986060770298001559873764107264011906149578324534328273524940813316312761064473672047752990313424820647840849974434544072949365693008041440248530151021260727876257151568744112427237589668446131618992745484267154547035479434479316023176664997887110579993573581563638265531153469491239750482471390516655245853396199224905399259741100374279972078496927602797309569600934207708007338109827427380945253747185078685071421332078408040433870517163381503901007419408974884178896351963300315334442089157198555076465406185636117530709089783145028378849117037690627336629733336580414115409282303441323855881862672791980122426648715176641183668135834514227611987714094217984880260714927601335273113084343839702810098688544288945550256784413921808185905145792374634812806757674051028677518433697796444086039640218760379513825062862389981725877692681726063106047002929097170625094835022366469290984877456701003242373575139756032894552706740173934120491520865680493883709325986984499363526624643414360565435565502470357974242064543838331621476578282195704372655402028512004454263325042401246365582330615043999849478555250843260932946368240049955868557691778411746194630134334184698960684272578845257451718420329752144139835158821193830731231958390487027215731895467938764773284845518422379244894364025611060087698054420554051302795090217967433857633066754450083557108015481743415335937608501020997457617708429108167878490019892708366322974120539079270228418043227814518803161038460267347623804864541179103688006665671151915581896613889568343321872918106148637029659720029417331946924812787858511410611906337054182871065358998475224332270759484868495970467374914370497764817318271379041005397963962064617248636357641327939081286657360050584281623898741794943663400362229546479898972907833000215200686198662690563358029210862519182997010163193930537202207009979231425045254279722384316550723475819295937895739260273560073081610891264103631888664882415256069150150895680333490532454512423331400331038859551169988125678133290749610654781296546218928452199232648112138056823094795345629521781162845906259670408868867954838121659263455648642336204124819811933672631079531159189195120943131369830717199879344897811785805189998700103363231074262033290094628914614664073472777570696259249679744557853504340354962089717053982787104208035382752260161980906797258305090064663250126842309980239980811116693210380703808683348877444641908385852202251215196526013589936953067683716268660253904416562143192557782260184802030671982834979512296106869432699573898654087031960839332837873622239535283045207528578588047192866592040799370185475200646257665492060271406795088392694157576894838344409418443527550911237607795565238113311899557706976890603091249506435553703479874537710278011360244913933486694478482075108855049187745917461056115260024841650171845353686285981814782152082393641546301024396200695302482298461902567835731843927161324913093464871526539473577370056418313242955131228205637512931020802916038843445904740056107957058020835054237161458003407063429504491495276243560073608428321280254793384325106791920709631408778368820070160073168207791627467891812374768715271493004458129987066926982472609400309517198940593791998316795505602006871049397773905470270536254735172339028441835810399584775384521024058676869780384974737347263686294429775829826227409788861043610456842075692761414307968542429593614685308685284245126424471604202080801554034316838422998587524867643903674317209722027536404307071973741862848191608544559669167454703074490096312092278817142345974892152733764002041064070278477816728414662496803807553733605096814508974580292788726851530045061285337334277958387563796360531382916683503920671307747803914043633925725315234274662981566002454698287894131558400691622841860606227063810002314805711306703765304340640831845759071043362585211736273778896675196260198360203700191334522736870578308412839152212188165376424118144996462738919116844982210403455630869716418128299018600898420194210160115744028538610566107079888113981847206821352804924056562836007270652159274416912046819672481027329837269282275184618030871786290970483780805162762240673968230802012603953322006708607915653455756391339689421784235092637407903799576419005464540162617627262792369120876322058760601502255318301896635080841491775924057346794486764687389612835622894094004386736073080468022411934550096478621495276053393049805814043580867824991359820581875641413657156731376682837108949954008629682087191735745002941304188553893637420673796281074261190085929229963170711094596971497678210448592377602809194691918863853678395487321256232749932866740583431684281377970456725595415792633322836683152518069117959381368432114871420906769562375121599090387100837314580743722813281581804726601413983498020638101505618579148075159221486328426793354080483069207976746876007821078627712297001557308734755140820095725810446564617931068495796013355807383795079947172457166330576898629234771804109870271900712882303709208397208710271673311790830577955979410272394577774824618140133801183709692168320166198052543415451958884325403414678549953882644144199908436675410013419785417630034677991387593325811870138806443991217741686976872396693307327533241426093120427620356523851027610967712387278827697894199219361042513315227696358251213864280487621121136086839012871459518866064424687016776390384333575152293025052333549568929327131615793456167999327573641796541510908251887349689628168806620087111546887419267402951678347660025313611099068850604239308310959469878641507957927742575163000988759966280173644667211777885349658441189692705500828673885668161714898395727197089661606755507471903953948260626312080897495147718505222791750333053221976734110648051541966831986318620545965285464572764433008997152347206369891909062102398143078973347949877070691645120781946913140127608150315135208954740803780743879873030324020028729420705959258423085118223982561596981935422147401792263529898807616449356016673901715201043081697411759535987363048972284469803206791072535351567290649214422552829633486734982091654241904380213580744366076930752395442171968948552708612555265396983688968646574414410239957821005590076034856461008754628349570153327781918452990202825039924016019243185602444973376507102536948035492434555574914450112842945623442611544378977998943574514843525779335538122152499287982285542188286330876203359528863699101449619188432185896699624740527448204752182846519996240167324816415195959408161745344807385172607895994963344940371987438323036042643097834311141625875119665108709252309520172311232746528545308828683833490914332828951239098060329430914509913126323013412226975392382438582843564642515584011022874043483718080326454393770936989843075369588000669358377515909036160261925717176013891149460974267501171823823558484273625621237565661198182380513093691069947112325433333326109641966348327761064444145791268321114536672084519204523973310730952222098055762850629765195300553413802540233129002172057521755129326095290184800693866447556508132966299191488174218667895923885919929439762761727598371801968058434274259023805961200224019627987202061747270429628709588356557384518721883865210106839399760139277121845004894217740262836491328542070245181356785417252429681954881536182059922354145954345604825145493260031446671118606317196770170176440323139945906968688339450923476091742231040628405357172420276428877848380785851187194372238830292661452184209223111048267391010154204401323548378231865907954761033305234192452954510242391623487046004813005594933181319971687163385670614433712689201534503485801555425776365726618290996987666288799882375725752253637092610841003358032307183607604310561916174790197171978047161013426412913234951543196136558269567615764275433273479401364261523950922680282364761821026130248068326669761738838868152701874458730950432123060622594626127913245272037345811704956767423361955452869729341986564227981152773768416538159656884273865888263497260185763112099114393168080859694608087680351136900673478423924079365345925843542414922179847170574473461024941262324408857641432746751920542070596488645232652445074923588365399198688096071646851859249401577048480504283081440480378163104473805210611879073370695993530954137798565644205698222804726333049131318244020794612912240818202703328915426615525922350935083082912321673712401424373273134045772747163897361328671609308159011439639183474618865945274983046180963535423726877618199208961975097004218475187563967138327753616011119397787262445501625055048438206205674026720934457016508398314354412550171301191227657364567634508929485022025117609945342659121484422448005350002790148507719106222556924008605308017184989929076150977432815615536634494304595727342169573682042950804332417977346994902451266157218919100325795689898333801187914013735487857224094167269256883586946949447422365100872534611598145316277585966186485718549932579348656736663284074168042598913379103434654032951804271071416323924311287783495761464976526379952949708442287344298380811196887504705522568231357771799580533582442184432479116468673431296409552748074287890208625812976006344198990695210701117848826410215629589838493249951551089954031645147254668339070705874859278353256856828424479057291847329761815526512243660429988822754440679171061121263712476099392793828391007441717400508296287637465108258953139605869792245736203840910301933165291055542832560068757984101503406326451102536825446478017338316737797546245455643277526497029618313984313828700415355087889980730004018538547428658271846477209336200741577994768308318925397780024318861066558298058846791166740306153488383792285029547925405866817446798382172619725447026179059147873306579155802569307393418936388384551188567309297048033781210882400557086221279104199867495902874285751871403790767254248533607120765490050989870890756411544518975118411703891689920070532155891638450384576312627132390572297762865117842465417000833827817867198465232748466179982590817937960239167541603615112093775245193338972218686442328106132009909899113908536022685596199059775357743271219030194977962079626405658139972659185312553456407552760371331041111305575290102595397124139523723507784678216237587515476457977652107765482823018166152614137110769333059721438406359143548897387223811017806898092947274206378716099441378890310815640894915150558987575433791782883122561045044072293225003706497761897188564118896559525491933514359194175196526203391576983536072604809430543753433312948564773794453539487141641830055126786644271352402014735762297889689082891186443701304409509430071979131468261072879180126370739799647403340389911766513905038307928859725593157936255193732229599212365532067535585485948758923845186979668655340748792520849575301300442237268624525684043934156684198123679729255991064425988967580921361792769397374480100521122334177794343656135602803601974484374240273358052011998120014865636684471582917484760499365342967011608382129968437739003827226612876206929120689779268788448957901300917983498198782574132304657357530394695885477010880525878297503552948120686692009374834402137865003456499752232317409213300263623667658861298456618685334586983255839422886541551120478458632259457691461088702435694829627045915099270481620150365261321635814733720488073836561810330502518857385653109777241740112828594149906975200973981926316306111663657918563365521504390361059674168911863759960012453644441289647082845147423903308811764941554215767112897874522959771536809426719755781632904269851771844632542593103656968127755908357408363885987384809380435895448953097706102231136414911564872785484595695575435013494845838644447233996443400421016827564622941906499161770520636112969199164448110770999071840964707202925680287728980045932847757716707835186481766951029602880185878810303574383878253622090101138124244004451572957152394465374160908758933180348869780599786124219175876807507818855353345584109777849795927512897940307095369565811158961340293609812672227779571915642033106527546377551106885062972722724037867174966860996027135583109399461354506723902150429192888580851823074184564137746290431136654322135219897060341315385968640008980301792703005740434213395955291847722372176170021550396957916267322003100670397459976576521318569107023505737066156097633052044047930822313987994738267516989272129357552321770604623497187893510293434697619793923499189251431151201859689617515879140526226499855492859586399278577814539573407510927046234258233523881319541975699831636857281596711710169576344267055823357089375630772309425573794857435080639226250161290069143059988579615319879399193385584431100228927541458177319107489712506493882715170287655978072171157581966216959697320939496510282456469328973564076424702235667190546042417502274936550282247801104280801103214635366228815151411131767066362670022669496532839577449312757237196971102472453339599855264934623280240279092418661791933466393195937697837370112212703447252118097236735747438285985294744078602092534680289864446636774228935775987532892647383046029098304550545667483238333729800989467986560759825676438422976311978349607954250640718322621683016568829877143483431358358695741840340163382862629320176848602856996962409348037647794564410636437607971427783385350743153046180404087298235492613692510987900949193969035413782882029484283810371491281757243475714452159462615390708268860176087110229192961936499315946840379809016400265655779820374321210422009962458253010085863960842245134039386005731912523942343158322645663249930929510055391364469758926349249734059984167365848995778286268078908399354465231706787248168622313860019856170268944431305841072419748753641429999563187376515029273795679591889870510489267529478873040806837893679713359580882849723522747373712344999924750882080165047663747316323497215304029525332997979527842008448906072464808423896213461483520678799985396811973834531032386544134391825603559847202872161130866386721828252258288400490839994669136962275260900030142271967209631124694676311495453187132874491089788519180491993078568616885880491376772189632825929878668645502171522860718906753581228279733777593548533339327485319568712430969601566844895816445176739760051508075193365624823406299125173229747175009859773086203960823424895229136220401427006994284210400889394311445001933240843774088276012614767133868731804738809094620719595986589448989643902326281878658542705475692494726158189650076225275489436834662157968124862256763357168780649619122805138822297588708454212816679752792086433303201528237269236505100151125509403931967243541018731853345691845144495365450329452177590359195896467473878104645527844894548323383042365063255085333459727547200049421411781415167940006561426384283251008977539868866398995202096993094328512402669252317392027443628847707504684692692775999452050976092892523356298790929740892241013757917581665399451854493875448090641649307861323954658738253101852142911887145142690961633814454456794984327233053133110050493766608026528058343236606012553833886155258666542437116429572075474172789733891609015709484566378354536289656737735067196002175929652410410108196658041427765296410667278610681924640842214176730936580689701348837309155760744286785683975220470231050630499289331659125550456480685163796478902860912322683651761124735617774002076509838937734123689514904084393306058180136012786721342188812970874136416956454651309001191246978818519722317062404065825500626260817941077215722628243984859631738723752887290370456552492168915391512055517264311853245882479409845437601590533625761511947041861975441518081311266117996810297160993312142960719660418606591157057127283753797993965320509780821255417452628062984794796050008233240191022772281131658945535725184099169084965012254951229375189165972753696748681775724730376713213857101477639741646431544489631292590787810579902603323033367132140968842740103743251735054956261306512763188179065389483104764468878743043492842693982185014204704004018691841986564629112810990100126618621119971074877497276935748129027645600982905807569400366308037967272147966902833950483794247557895219621491864914073955947556377248375627097906832306443661346223808339658658008408195717964685815093702864497416849435845197569226290916499788945109966548363433582967123656854929775561796361063343809613802627479911826024738032001301948513242451586331804337338066958309887673070028532563667388573899566363019111570350683026680305820226622972963146585878954460636437970278273672925204404250065897285543900207999990140503606879837253762352716186745113573811415378297009459768466713881179119297572604292582149997141892980419951449406057462617445530365482027274578055716366363200277642526601578120367469434510181539692566415831764549997283139378065740868647014884048049254701754974463809423810973866688034618745994089870236435434575230611620300121268916003055450854165095824856812353601953417484035522243830081974946216266810598920259844626681455918434749720338942726028566315490009773195149567273528133351380043377234407975564555045652260964514278749707906024458061190745444545121895062994191213904714976747518745139481898149335929866195822572150260624011039870300211892062137857511810291791941558160281323862550284481272161216170867778429258690320128103871960503397600876864531009277185842291020866681079471941227414114611994211388391016024680409184682099247257262000180193587703180555932540517693093815951402213864427155620780412602560286625561634315662628572686567524004296837551958174329390274488528266637222284830874061263279193413049922329190606842934206780197961113814313547123351161418374342274941860344803623894223913344098572001469285306993818046078104643698198734958534483527187333848873343549737805462045628137459412597585263971385526391439276568864479983512907241316969754175657099289336259195057704135952014088868315759125575429903472292852705431036027121445029295114116074254576266051457760585684610333680357250831873872992963567609498292948840073934836749511499433986906408693904629579874376733746667893174833533381407865436415734827286079230417322821666049300843750425990565255935339124381843230472196736394435006747641788925549631825682536999672399713236353591843177716900347434428855774093201088470419247313354870031824761916430273183604969406562845217234768285919307718426505396498613193428761749038009617272095506226785173585342338797786224392973401425842313915582514103589738620774906381918491559477969018738271542479167999167309035036314427056420908188364291312575426865645447275155749430994873281213441065569235110688004363025059174236225082120849348507650382724778585102015003067503372686044189800190592313053957229895871246103818518663717942561621604153856810243247452255745923642052573969346457524372742021705658474332398661202281595241831863965772604827405505808038856933699259201036785996104813691165029865641606151613468952994114963754143330874539009845031637055498207255864467821503769815416840636788763630035358907935266744821526800096452345607765371451659272497776405743841778314656713242441266827384997470603945316651324232083052051512792029677670411266393023590132242795031374223863541671370786192954680332577729879937234949482867119684336811454718236387867306452396996594663869479067458547150140161482275650016448305971374656205014492814993719926949059215979524349455003010862927940048551319469083542729150734852068845722260979422792865119061983613256676275600624659728122944127100963299280992810527395780076230124473634031869775603625143350251829901826080418872042599433566602389636820832415104038272075745200185860248503262066323501488753750366176901650260178688455975659057026561376189928299182482486049766293044085380744222869622503424446607082244700125470060877259814244387801784261446676522069617855950771591662153551909785786707555138531106915612178732202965769587076971189158256377353351846428004953728684795826166120475320447459896860318675797318907235112879915001542858936392985350809407801582859242096783436661937668351562433729335021641794808769599678403100331813067693580388039460293887530230677136590207646983758699356774576795359395773962247488376857084046965693859960736100087805203160868598981107722990692948345183090279371704161165566933078505846722319668585552481260443521260216028664020522466726351653337018694662616333010368878512119969794949380922121000128061345083845278111679722515812978782629551937058292162485271020254285214780631298597429639334655217513439274395373800889144258282732874247392190216724821518992699424809913554087149753209391034891421467617958804794629135854491788782143201476728812963722472977802612508922664101803663259479374225687719971507655133799035259193929076713903276770262808261721764174278156657265467180684230260358182867254136324588668298823268197330879329490099174936618306550896562889684368455355120026392098225426700629349461143727912021187027046433409517827425688621719554182227653055200104468128529522985457811431163642617678500783526987891917991608581697470680609462977222661984654306489993405946810726026927446234125144690528901367446720578265459916411332848909746221331624024398648904385934533299637406832677933026417624657499290977726321193380098549189253441712043416027431787948968229548214840260295574583493185167137416000936003032806587268002045693066567587748775988111165017861940766609364546151294433730400094269454684713562602181723235117183564309063443607122232296212867997823223228414971100667497956610963955000038951719040327732787302429549823137182109014759802593560997510635320763345264902662832125050504224114314719354203245596571798308902221057204223730944609458493368875711953164192135383400030657952999326736879932214154063541426493034507397693212850252490507553143797696195559566274554694892829526891970062864657169281561239269747023225304772728012271041704166654865699880279370509554488114416294973830640224893972322469423826712005877249054057524940592095432619309480942639557595846564268418028558343133634458968880279810227099810643726484760661202266483895611213815443552255139537788965755165962035259307854206055236331156481411948152435098142817432590096642610567430775949175237520365015716071799114292342032159858034634833341940920228854156714324847507723764448743062935279783457093954129216814925903352028961605451598476320365087882488935929160229370774726094967287750151796084246482821656361267783706082040815426527808765540571656617550318332606193900905752302726700145369775032052430337148365768612273966147934833925096884237668055696488812819016381453088375784112567779269503282760086799609676939227577305722629222761046709884150381378376211787927269011556040981965184236424948134105927049195763098377057414459982493417093199805659435868987003193883099223885086512674350392523944243177345963817860989902349606994717793244355373590387905836928455135207732131115730371662889683842988394117490284268332020062552273429559872744614668308322752185323108443974225841711546239503566134442718310051644307081481316618212150245790611461555631306754343230945671186414821866695847497321210566485550014657499448939112853344271297228586324500858977332659889733168665736329914215776090097633984582580838263407863806909307225869482929726564104681728285487351239974086012145732312899753422185263162645313424591929946471279849675789265222388108724713235122157243155410424018950244455646750511478450660942526398812138850355417113594265190695165621457011029201298686475646134050741735085726471578683767022737527493378644370321217419578597409103231560710821595158173267329688845330688564015236244462383670964989495785859862012590495972291385131820106031351632546590406631870969772487125793419686373109924697237965886616456882370780018784816621180238774275351976519135211532039616370364834708930560815053541739526865614986671617574073945571685790849134136392004436166417096653950726576216909774296405958094067755454026352136081169307659472126569295780198673753425967709008373322708914710376009613874124300143658777614837399172493871237122347862444074824276850858613767779782311645552619180615904229614610434213340026339037694237382385252210322857188340535544237339141266166240748280166055680757355668739206502308229260648618118122426540675050112972869830338905068325050218760437315215211937012819200560630637782094563618750918503610183428613301503836692301423734360791895607770739365649980246717194370519108374238899972018941908049649669855698666791683077550369592605146627122856482487940534851885054450332200852532221932606375320229277958371390444962736412198013422314617134048358944373048238853891486297908091215942641449869434870945129984693943347954352746529039183838992601014646689442739090343675365259982269065416825035936265371229010308099705709686942927928021187466319666364271886626882927615393536539414596363841075577496960094819569412790389367770997492088205401297960033314526929789003936162143722201286370075491465561854032268373873257461300723465400216353378349457763891972966029284318041990113770457088888690462234960311901769891314613498149958822003668425538206121131071775252628474982230961594189803109110424815260110184565649591389981610806402012676797376927773826715387177772745016509697945344832266403451272498122778361042684295720653559765794815412494818020784232291349348622630374325584831346353194718853366615349702266907927881209203162757579694370027330633644554451831335897959685689348171573917573613674889158769913439797607969684648026798669755719836887040855053644148262124305188128174573308581993545253461383371435830863805043085804735419379433527557025173785766653096177425490389180062401632491165016522938009864322333977029688779384761287443666049423715174740292001225745584194118725109292178829123179307206167676218927190241588428826327453173971596064387108046098410341730926951222986932396663294518025722290072576465422403499040355504680728356525490656627673347053601351274735928010895617443800676739953417109185858053631109050194540017102146786533268699169672919276674994850971615867141712324024872302490575205145634006639896649069663125397356672639426570014650069786181772678179246534025168618612877816802320295356315148852277143024890610352974762244452426823776071670475542585186649385017311596804697131464205276793743018534938552557014198313327650889609750413642388468125985513312747659967538412517163326414769884727519781869210776644537553468437499401449604351146416323403007216873008446291296310310133517666403719309155805691029251841791784517296950143417542483329671770524451441054174029960104667209183039500714533489004916279755936520295772315157006573255561315307421811558449264853791218783332567611665706528367766811407796712559299983924278126866329178964224906834654933095343777954724146465124178183867441614095012925579226201331342035588342195333764581893612658828563245101618030218110466057065976306691202343898222606569593530974088386165383929720039923072517921510952027592704848804811293959804431284639725461856133275881265840926884516897469607316704233944129883164217155737068799735806695199233056312889760061410648141389450830047293606607232461131715315712094357743887208467158575097975952129609402220824825864405265145750227138366076658194727019184894681855829288497282174306575089342057615264365333744094081508638941921008680027490212755608597915554821331450906073475963827909048322809994353998892641623974028780794866112252977412696684490938082265198514806654443012479547900704376204205438300747376601894614255994376660688890198130428545332060142930263722374059704216430701442180530938206873045776555610845701734192939205878543595388837182063763390771472037452554849652077275326241378352123927874695508011722161895724275374824182533606548145075875957111050904107175060674723839064122187654528920131273378120958652406298560541621503746714092758208018957948139534114303609572191604883021948947311663649051827741641222813348737123084585925050388288643910621428280970883220581923403553230218616049412808314811961159783361992839815332181092747332144908479130026849071112921768070247148222203076792268896593116519732728216105531136234802424818106436369161290206539898295757635660231723485570497172855278986114275112598029631181114853329546486360790745730469374618704026881013279791384861269252773800641250419939984365959707069329828864924551897380715063939656516236568655202533325656730632730566713002527860095430343923758933169102435135645496556814692226528003736166079930492844446281014383630983875349390173716433417061231762662835593942513805557411680948067130097707682319436101901960983340529692205794703729241389329591551434977707158594926194956626176178406268543661312823030450030407367680857665955931738618671791733212879636142546937136610319656509335315591963229963936342578424084673138870019932373362271931718363239288441081744438743558754852586260066207082132717867117669310304618169331396715450005013525361131624652708513540192950962317439726654037964012793305238977170153854248961519843025779092057391988032423030047007932915981568847499183071933500217317120669862179435724130979778112039203135546314972321522802314873961580798131907673085572421201842839096975737347922235999734038301470771396235594023878983916164800889065129011267980790998577239957108868756424087554524873893438597886657631671204153275610384871663042663033365427251008462980934899563278385238103593310164461400508246092418303110840469893275966113517759371099615866185164557835597652608136311092145699800838263281454843442437036638730800397331825487863615851781081133684915857135140377482552432173857331164810336630376358863700474467784172180922917648512467738581054038835011766326931581285488787435924850399831238519177290051939022784322850739472944509727829151846135458295247388544590332988697016737987381984579626806062404674867854791305124860564104641533060270432404776792969442720274161270364214065671128024415878516452825811720238262160783620648037653855606395626161201281845507684018948649663299055748916218920632825435038243093085719699768588012979750910627597175118283983005021096046773951563752256932097267571509775516468101831035628131345245840899302613118113484518169234664689556177798863372582178878016109110326811070488832799402581219989996323086112666119678450129666212043420850994622824062646726539733508233761370207194694730290298847223910689362185449895620991897289406343454140612092656594210151069531028658620716033350177757926255400941717646320973041274427405780772881454469116468725443446762297573191995524799413824221440180517801012922245633955979262249163041428638526648236621073425803330467883381836361555255143330190436340471164092315234818728278768566447818252175900785948397745947357404154627022581824771965587191567013962690908506250668907262292161125586931707565625105544570666191084975256705730939763448603678751737038442024080423560512096000481525584810891652021691266425248551403473771020542271959849624415889092218259062482722403865547493356541367610716103753372634394914549888038456142479806342249090454550130137031607817975409180467156159026207737779794179002753723142829947506496389249089770643325983017911692108591703227453656306449508741221587332485796703791797536290247616441769357366273326285214837956114034359553785059099001629300894407694205612397450001126897232072042079774151358095407377060312000403513808381055901945906675537639126482227025405860699073314874020348299161590805712868522504571671814271864121995283655012548743262613886601132795886700950936751838975775273029433732588569765772378629794481472776231808219200462660813041639216104345663982180100068953090526158591158813463937313365268693265785144499805154367239894492993752393145025545184850184684394668223586974356036755708124469948995847390405676957247609732738275515265193883059188642118265876969615757674889141447215490695350103518955727175811161196228993504825726080806808208415849481926174761132422716565904700914478288628452714550196839917924165376715835590506304451294977242616464335766119290864241649090762757826082159117744909209701630216685240927281204694042657700294608317381027605324612520028595300046822766263608743476245561115994350317853079715678500755667541364014076764892964822476628303137176281976300836650367207392964159880403835126469827776417472970655014492465305033625172243698436965912679960830462922670407638393891995936770372459397504656053735056599171062304662171550584710440004607960950468779957010964009971065069529299978407462805309651866070200211412139813025737765452482994691897828164574517512019646454352997659446460451939378917076272612926237855283949752093447883620276598391871164549601826940677188526480352623694854560462129691231768619612538438777050804836480122007829014877935675656330779310770266036106696840855314154343264392680910535694731916649027389868996974753220562892742491534091683575847669155381065609763629050057498323640573527192967045355143915515139881135719149084328013033312579126971562394360767522282737336785779475159509028724857343388693493331810110694501401584527557433721996960542837404404248842586230475836821891600922156316938551244467908924901476672327929265555685017725993525329157952867098155012036641637192482986771588664701944661733467571072326774282075755891677531961277035263955631659078424424312875215677767855928924223740996292835327616344387890549895968481036889852983827071207772534840671409061235934236909636126586736453981505936829021658486563131061180033706483922200424888155824593226515561751367246428298131540419207021141397479745682694695773596437357975965953850543478554493448068449972506666994353004090136597664949334654064901375980737962225262680792984370922453194705863060689985614161743661499245873819689566461938186813347192629466450334005518489286072484379625063335166541060938177512760369611247818431487702904712734547682582758753060313085543373459970588481667604209005707043929504376760001247333172724900748166360026648771007130516968395644497588698426787366161413506662642908342456307124042180260608652368253807826605131866793189936950005381202809757600665985129482381165673608412798402687486977062385905557919226008640594887965088261483954041371553393484754856240727345339221708015558376683632580498342723369294114654407846792551342630374617587421710588474195359123686312803230707214896796285454233923960509666500921264345046454769657374933473669520275670346217944403574297173288150671580456527974379735407629120860928847796716498021253703624276055235335558345861160568849635909215219843649119002673262302086023562385268103101047158856170726302104419603982050882105545741261275369848701815492843143824718476680986595670780401459766673580451545447670362546020959994493839014625639830366752673920759362706958626796829213102815001703109500062266393431378604621489618386524587362174650742696378761416192180687645851401476096350387505036345402902856120715089000666009482110062579526530980904174479443439672815777256526310946508748993749119877305438891884533971045941537579082027214116524084178554903873623769021126831145674980319463341614857178164583333079952482473779682259862159885021582546880005840155510527653152785279845591305954146403373236210997964272760892928663142478279018932266154428497826896564312867268594519304288454491604567949892082059377362654357650194350770556021000308153168841276896780734332035962591508439809560453007245335222317285127163908196693548444998032713792100355156083086953606142598498156954340135737402601055507568960643432261565589521611025939457102892523144653033859365548045961892801343892829762537817765913687135607739535620998680863567308966588555199314533542235432689041357720206168528127333293916185006793576329616401687420785329149558050209718463204155430982153058920656096514826530203810151177614156418755229235040545265978159855415019837935330614277470422359676207677685590822326395286191298962245870270739987414339099698739097803207139192891671652514533315512548829991459983906624407081171324121933339468601647693257609300230013374299038010744930096490328211514309902798504939492722215644134552901146823012291273615443545287608182926900119595935013701406697846413699380525080206800636699402463813031804557978654899814965532426349912867188066753683942637327859904113786386620188482564496607700585625254317579569700835748592358754098699364161330630108263185431109154248542282157643565972839347445101722111797133634138555585382455654558742846137652684778005786199379419597904874817832649449717762552938907761018586894615302273160738394475940118924396284699547991644918186630817222662523157715222727089995107314152924025458918732800380022452835669047302213747832225727094362020325197993776487989517866972720597721046248431885122783799973211325029531581755979429359609901694218245786948172655365674835206716672942820276953110876243881090900580086967573972139062331811061835541879176049023516512679827951436192910695887273131389360462155367592872761124756452580943086075293195161428345590560565440027720740975267772742360595462763164256124622777110943881538184580289823109775302720915241405731518299682571514693619250921913313525609972058283538345776427814834036807076904185961847377394380612439512308617866294526172418958770220458150982121159786314257912588108104510884742816172928698430756345178596677295927405036985936567498939466644799065626617705887963447927316614708479989878706626530392447716614462310250558504396033236053560682074891525107948478490231914055145216398051821744581864150835017140511364105481830444131410584722698450837393593627048530403040106424368144296741992778291758434765580936933897928964962187671170113232632610863324735574162464252135281459287650550158554995494768103416473816598913841511306616469372840115921542655588915692176613830136400418062480374448640533540636836041551581739089031665702858559763929552048495753996538127990763856949069028762017205348201503547628688513957974471125618350162143726074928207434583726641844170899787508322008497730430288351706066818298306087139195111047927178801603266904357776108886852723400841234370993910030751029802552989897523563658187108839329181234544290651480644322579298412841016071835010995632235012481379629918513950872005816497786251468010075178529000937917896088685242216079970495868014314348182315973667492925827686209924696482957308106406306245850790080796309524554125964475859532502760820766785014598504831517794634440362249543046868262152417912613664383145548355666233790885643656016076671283802671913233872469466105583391868371667667526341904025000789797127793832271837206807583250869745288198345488941572505761697401216226867696801572501416264387159963759373101888289187072549555147125851908727720095385690584894743950784520166541004478509324555371877067925552908620726670617147067467107318425448631451333932433652922993578073295058450635455464726940704726440774177731216135764287112349897196770529233542072128463881637652263629549841003872077668237235001253808367214056072399620152629385250423199644043314231249616821026559392028121815481976557119113336729060833685183854407254743713832846386027771133972823753719048329244390247622539646549189645452010323686617311758471234964805911446097473490148863571020622138878435272373717633945658365464468888016094898782963090897466520319719084179973588314933711233944484366639792799547992425999337387020273085688220150907465389186668878773104569529829863957106695661516623637068459622548299216222899362333995273726262033668167613711354153972451143629362350611189342188743256199621435498514418437902650973806939092862048898580133276949300498417067464010867161689378210481611050223157472146990252440301913657932797449756993699131696575350112556520039346635664716952600260511024607363671496833012770394764455354533344242599182770095901457065812664274847877371395302808555077824923993399801336196939889730082435896867024490458649383198151224956613219307343918498197604883884486848470655859038535076258092823068746439844955514134518548582927862275849494410555764285148449332983177185905034741974451330101233818454290584273825509537068973714685207649203811033104374396987719312353109546031933506116484410837916966292082095628282653359637472274330006604386559357732687937648004512904228399897787980980257848531524810509163075033382983996839318587538860033306150989741489157603052223791409089005444367598201954699494711779382381874269138956596268335206079534298190922155246284546265126109033456424753491375626880306726711930443172613313672911458589601853471095039434119898259267399515065751902365345338421453508916391672622904021067854183342987002045987105221045950153057996162491704290263551066772788701221451325957446949816979142514729434356033898164201401525844238664861625845304733637404458452397296547804425416103290104905780306162087620255611765876851680372154607925697009298094983437635908838341517688788691604437575573242929262400540690095781041136600420332257347190393107751460347054115068050127902195198624225928674476718679523669952411323369482109986340038510373870694886086185471299915828846159304004420060584255981220434909187892165489822690635878467717552659929990764251280125432044977840710211472938741002064165579149408521210447316701133516552549451824523644399203753704869511914527269361850539854887681705588160229846705873413105277846361754096829954701476595921220025363621272789548261769887219841684922792775684154367057546237265052086477023915419857137067824543310460404798022189070802780924766062638199305983536002839101462376560227339648490288110123976241613608605675589384688881104456995291717108726949221009377420860752768510615549936187480014674413207075305095385024767028164488222525031043994124642078380406997004485285790887432156712350693957287093419036246060536756534189444303530413391419993210537778038617468819283182976506396552156976905605838353094223837544438853882108653045530164626060763699784274080230125354155438276507922056748066145017534617700621910744754440985356789426778786616193719448990870570676931918021796871896145708145237213929901017752941326804953065717998713454609460240472232464932891548140008918373692162981605246949218176694548734977894227257767662663961849868906032394724604932753225505492971452847415806931909657788638041970992661815558314019497118900485198829625190963204747842121315061547220003405540464032079249845892725789973642415213717974603672527640570448624762957488679004319422960112208926528872191311901805316739675065838883041251475973297938580755866949003524964015230573301155266777620760271760828008477477217324218933377526328081951070357804538432419657380091301013504777533959987767500485622245718071729753419754598449881858477262135864761503177758513721651231615272101946598998389134981313915941546832539189020149835381993013834287870829476045975548912092219284842800308065910394201445271329340663841733217239496363894211159077315720133181589511404835040084884972919333557892403679713311003959414472415557555824184897893915333405133737404162898651403073802592412090416745847242851751814695398616447524631607372338331034605404745948972338061052667566832796604731723241009026569356023104107046780159208062466901941786195602203533132166773669622770098620328692472114211582153628146746060281319185150167010358715513346983545230846812849833711949082557694761514829588078895879750320805966111005873285162659990157103833344166086958468182244807160273992437378814284440178344017912985450236329653964122498052990162465550617864798350600886426243350777752863321857885292335183205262409874549596083076068784259806937512011744670613864591958444255186405217632397844120588954965479124676585390569365638798426593398219306480087464362919960708658121030241352535157691164528583202684636063774402406922389330192435934649139344098643995529633364715319634426901781279725470491087733216380098266345919966196768316933633039714426500846667502790131984499728158036794413782805895073911258913240357051457129240024250170155728231170149517093435589081826247587330563863930995013070719797020701002552210308620496917823576324619659095743110674649219574447069955406573072369170931428876397962971730108201890665596213729882021623136324899150963994725042684161228837431786213010141385327101082530009994152760030887349540310999165262195249610228914127462319620812703285077212166663762613104056468194740425166780769524685649736758053823990235518360649235808189672190932704659118902313392834456749927682051899812023492635347345270087089404422159521775232731153912448354623087007699715242152216740914463200657285290095494982447898411579830879414762037289344222912184667737251466204947857380373037611652951634803021557159580904838035505711843669543395319179975376440830829014089338592120717414101015041301235849245045754457506199551159318279140387001118987977847486008058048348895996352651378709346026632419071469091779504987170796192001984425866162228557065536493571246910325976001797090745901926968616369874170837483579702171762870260465753295104773467630325081254295373699441064253510714929704606595172043414089540267877396715801000827875832326145054835027096063989270621911782258821209362628766526117382102632984602146065149729399586613906847979164118446843796387397467723927715011959634622632392652749236126943612926769865452400387664905035670058278651496056072039559607749763594436434308980199402756438334079669253142078477884117406560360995363123134078697965865542037229982907706694381133270723492317333112072903661986366303303173264950630165134351792254236949303718887468185029759946059334319695743952083113112125863659928738146171974395095493170308461353213846503051358487725978391681710941079029342658261806031914319876266666869620846010632802360901157847758933687313565278984160806030962547693675515386251648763528023733833901477005292512149903182221335758866126279672793702407903860791105668591509763932305332950300447589202511058105598731028103979932608668642661718733088532282866535554024854814538940721858228708892782405667398601855123374188775079104633928665705121134845751501197291990227924043753410599396664598626193324474797935763556285666640065431562241140737232256133753395822445324273666172775776453230091112668215397605874309483398377742126391974759689997389983168654901847405569480261874669576421814532289113892271647806803729639574461786167973969832353638358557050672101592455998687705008898380879386114533480832841821495166266933623985872536103442380678333034082254668280264427022989259535724047386249632901980247932340115925345871114992312916305298067909464308734140859463539688453719073166276922721695187255972471085898114768116561412679983115991070680308408481145024348421368263619573167551133922698116929989561485259532400662502134562691741542048420896695538565480716924604773886886025364039052724064593508790712948566243912487828127595202910274098810259177579696446537057890683776144738742135421934849963630302015808266845079861029382452091203057663152403793798266097752441360928578791608678504664675443001102495480543598733342280932501895886793794048227204368182439919249712513580985315672117503432533744389995040752868443371278664398019605738940685349521454335927342891289425917275777692840307180193629606032946248700405074858321126177023244857132945029526286073114699013359413593906794000774089755946886942357075327705275999239053782276416444459018302125432322110170943981017340385089026165136968539805115974257571502794205259429415341482432660505413950502746787954601455806245962322317163047380093774046001309396909165425399876063744706885750134368252426498755290498845197642533044487319770926433384238505563917978821088512019818380689066939882287027614216648810024022052238857564834409531068984559719665464682052607084286149692799296680678489877093097538914283776931316622847266985045553822784443341237512676607613218048895334420625057518297393615673072771506062085377214156714525564382123488920200629844081173383635422047347326981494692864696930113331206283586854192050940433814092101319712888241479302102381107453325307255889058804743441081788722175761615314310394506971124382417088488977954210937527932486756250668846740475535591282696514125514846091727622950052309026477065784759133045225345376646765869278106209293075000539846085811710030371135207331076437462665741015106623438881498652133885570550605312920297415534475463237787087599842645649231256620815744576596837688871446415639022759659003248592551496954150054298882611376653027188407122996470071050144823051727367751010344574143802689827137240358584248563707569286818131489360279171257302867999833002058981174456702875076462399782410616612285377686249005049526969337552298904811202569725752339425569133320162436203516969555614220934551479705476098282386878437901169481625463310230985473143073083776797920941325004185436007512088065562956760060938248180593990828498574991418434053555634728290000330280276774375624078538135829463245727158074597259850294814117740295517725539196246197649053861090776222164024660234253020806102153290045694683891515616887981766266086676899763471900634014397408415149747814691511137688818453036978852106617889100247855364149412595351869251233206448708162267594232752777926306189808435581085427731828377164122545389610596699161913344929186172202408500109718456674763085451118853488803166864845082443590717967978391926035153406472304715648301391197976709590289440947718855079443377294332408260427250667226715137253616720122903228841556406862360769904760735155189955348416456737176531150852613788644279839047493680686098911480695065446494590517530689987741552923320316395535294528902174564657647718712026986507856327399062702405118257987703335928415519959360724484109226773051034668494646525857056392838305922819053111136543900178376582413328691439970124140600671583007772534649550786448838934661610532001944375152367736098978527213919652864721584307761943194581075870263182510198460782108766955837972632936454496442855671643272192342206885480371476640980597385808593720384835134029273259359648046533049169267754749084795083562234239233558801142249835930328072866219696130163906749375107133132044125470788218604498515891008147408347998631262797168643934129166809192353546472059111961946470637670728667866373705005259545096689753955692901717585396078630362453972846172520391410421040374622339796499508248442198956051931794504442324387570212316992132210838756531116120208550950585201055949027341968106005539836858589342839654291848732989395646139729335107083419912462565427395010213472198419809571585752886163727693115038663401037431681207253851777696882681324676450212116408322480657190429503583036518638431361186844358330944753619637076749962709530448741408794090169467470503109694900261951689396618837619711143091512994413744990115295320520669927144892911927890174600496771910958645642549382919610519027909007318490509778178976697044015738916782053736282200416136697358173895067427945207445926724256510302012116773633416683066173977924080734342367561649138522332762508586981338067791959689568174530558487310580439864228470017052213975685395027926656294029110627583925519452457090565570822987299786977915428597604358726085702376943740817343211183274657500214973614868326599610763625408682240988691829248992862430063683885329906559264839834262835459390980756476265116400265148575200418540321660199451690614525651859139702321821129608315552498772268774084385788787884433443823094654738496167887662354653608663744034711655122329513794140080197585227283589841408730422959591891663531672063133846750860869700506618535743194436072100603191471769560377270986507951554396209787079409110623119289216791673442571174729116510817027616921101672508771480273599770867239759488501674527614446506849227668405315071604659355957356158756074964124321958208627610139586973122151877663424198025428884714687103082377142168853361355759773513043054051665104846846992610167292938156254348423817592701699298386058352746358117490949798611986518633649009123024559700176643923594415185029520458757791484078372197705448127077000185213104552269326248467735483376591539124020087831846909900203322156477608151882589867799812470070452482535933123162076482539612877733728886556548608802714440925080496597629061429912659146627701344953361452162028912469888495479013223725236252390682003410326108523347284603652739612501218185721082518385402726300078127116974103069919143376769302232225295114861590488876586228590341453605537614964317699151033783363224327158827772313909132924743718284355999199077106871973443994951537785843849753315999731564976853022987796014202460457535032415111098340076773965483798593202813107616384599613593438749177299826536575351356000277411167519140774218617431783858437570098890427091432874132844466414010385350860471844928738526515557839174994517115726958898440987321778465690983198661709894813269375603419260434422162957060439543151263679362400990825421820511035940749757170868950720379460338395831634678040159261729701169435134564398343521458344192456845004920079671374103260761929247410345171752426550326739714746186513305959294898685118451336500301512039540992402683299319141310202227600042772561123045886701514016160136793110926363135091170940498612805382597649424618005299824272571242637532272574250794589690190770675344081198863717610700063802676342820102864864357567448726565164656681187042433036245722430981519660180684935548296233505301861998302117370253024855448210913909255288046925409510575971723655627002023172569697307565318779076936686745551390572636835477039331053661377196064004282292775758259242551037115805012929161965521462651272559030093473640169305949781537429384271886247640916993988259200324569221693234762803299182799113191296648448556338532721092621777713806840720919516568890836690877254316217977509346953405824800999040870920689548339439130079577207156596310753415977390015647616933656501958825420114221468151936600043695998205546780613806152432572904232703848640599698867811330093055431704374654980614959403586812058654899126024673661298439410191544737242202011421447975079171799377739696443124464867682810821022801475377911796998726915536042070764767771645436635005769147388883169533824913969303097110535008725487771345897467329599355847475117397972611268055723451084583392775044231275917706437459838859800809230827918694423043472907409068374319048840003308418839804656221721738912057718383946994999330301649966818606887238697994593281170772152341273915995721569547477191780567909370095263601297297376739319596016366763873643815007407588835053776511289413166990480939269273677007941312036554343556634655654902861693097556715590407628920362946436772621838820022979538758101985699961667779384362833413346688747650850668922455678249755764109431645911025353968438091379103321125856314204892638845648363444548919755589991231771688794554538328380370369446444117211757073722616791235353453352966215977961742982839127912433585168205162842608156732707706240883946224252546468135105010098850984033250609599113045362403555619798153083925129539998219413808899585823420991612757317973835212132511815688005663026033223487372871338840606561243774568665978857382072108391759733466903432319747426486731013899904782210789394220939474159832520457276220514151060596780418066030430389999295990894374579810434106547621692640714838365488418220393274773798488736300844589963599937648386696564250727457636698363089324131098188390889806570229399801366403830827947259001748212880370763377772920698219386112556769126703597465656131019473440265407337953598000200777732868009346709836594359402277000114243873427556037962684196004266518729052243571857430748495319928582749684781852932456625635709311257396839362933001605775876065718826351453724829399503070703746318451035451260777462252744150869418419600218183977840920870023204735525283153344168231990853021261816631141719913641551409599097182299359408744658982149863212484275437508682312781413241370670903175891053498512505047001438385139699318956047202402038416059052885762557237537085536343901708300069881745538671141911090518616903464085586047131472117869412892978961874551521928351536228235262661290795832941318561165186070795213291468037071406213963805234568244796026982250654868624815236248297262472934884689629448536643988302470865632986081778506795150268013601357599424541844239772342065290684482361699160046707108935362496516800051363938271432027681718396465297076924570801843804678354269506351910171479792059206939044789576275524404795029813440661244183811853766389524545033524922585419748403167051567251458241266860947660400203450689692311483144674332863273409294018375568710754836301889597587736378954952914582156569273507740377247385887177065176730158958983421264021204797164812013235230516166573264188407239791336780606026408849512513904883806172013592570291426418561639129115567075068711368160133087045857511546577033294714017664966129079092239480956345722480994911182489629193720633823460344189463725144064986236625367340342010552736172905744914941125424937099311610905175337073378165921809550212382240557643013332334131672121653437585935183322784571802032263528381722447651668342897233170347297920163625719460461435505428397237471319056141355385326698383854329531352222516254539964238048525684794051213536455348466903514354779041279810385736068234549893809552186163315368304846251197148705868313810344881821538131373256943821653042739939123674254616303429665765081358625220320458967481042253911206256095309934413237253683815621672522419680336571909370780619947245745590327901565787809281595271769918535214518617872906367186787361732683126548303138394942917508709697182902938231753056902724625773334456231132070972512509408506316547395161356541257177965665985838393673523058875202684559615781250397782804428765100494258128991811870165391291056923299348203527441497193626732901942300193833796947203632809139069599819433398326280672858545055539128883558790224405881287581405600412743018735297416902583414875638935992542283639424977724867854921563521029318713060088142492887022802428081000497573710541552930287103589037172698350934530623130366562600100705924122353066607471897069752624455210650937541758335531406953844675593395720872803005529333485470117799316167040202555861589551671598733369657292738077858060991294006701501809684502904703296226662402935448408446445753918759541897978500082176770527473821571258270988206784628534959512976028885911241053400851496503054370246733655936686124072596875861517346798555931559575239424592642444379565240383959083121727233408487672361350021730348664893019615091216378684211345102850243923012377810101758832292960648344801137268104646007927643670639265856594943488761940734557190647010406141829146390076354334022271735935243244067462190234011203417094628881199012524257434116931357187555632433971227227592166339174419879044166529680046909248882045284925453078104710410364089789592288767619223450903217293573864884298716543522149001171294348628632219435285232316789551565449618013102380955276078802813212012070619160615218799493392185306478797715739484343631638296796739723273966855012117835501551971530650453526142903416993594834809247880801572591142686587507284649905871902894270571714120702746385356464538071058002807818921944068469128634450523801051746365824996849078420735993519536240393184206154620087827603758834071104022503108489368059656025583160374683218252141599014193223439057458091909822847980692547903556362191673925256708541172752528480396725869443014533796605394059169881504332833138538206779066968188636213422075417280945053041629577760504956483114356968736136408529426302647842159207018840615026116683455951669265184707362358091055523917845335603259477392918421990165397875807297238831737572523254407783594815578877305222016050855697542315641718766655690614715866902245368910572392349953785197222607601615175592289764624435763210453026075892835254083027284130956976216990912091621937978003728167031835470728819687027601530875849426687712726768609174317149226636257019339265115143055824718276346853888362032421294482266350179259228811134581868805716636946682765816545931663734635785208620891510482576662356738938073521794918312403271280684545073641447219646222347579783488898059677170488739113128364869487921489057885055387715650665179744838170597014047674539712879149083034652942877586430960212928869618284497926681707788295218804676417359610879192854375729692861268321242066228447907768022622935794549055438402481486697138015609891345075596389149861140191834686092455735761844298758478127042028431814590782780100930197414884595511274233845778909741074849369647420602502679477529880318509754594631828043328532508777108482302159201704919495272169077342117998157744654255241892529829679102288062859898698493737545782571659682488572809995204445539128395369562775581841552468017830888430047860110514370879687227868199331491067290945022791936350259282619967286845980294641430963090993825531101963216557644812832487284858725206286885775867915406824785265633978422614819241178051428916941633925384492087181140947140702580651816811336094265207895219169555295578719223434043576140077791377428631985582953339040296373613998720982371295438298587388762173425831549948655728796850152707868681817160891950667991762173418798752102418077619996039729867181429620922418329089539350003571629348542899030597721483185071742737159255007671378066335136451520658417018594659809443091897023685998418901262857288986142815102739474740047110097645782877306924131929421141509187445013505219827940362377188938167581218087736597137861932102685287905054937725438392056079679795111511489415881845427715740485767034010428200301098983390067459990690684301860990548920079120899608375585107487067929652678664508044643632174508048278336036034478764367651469742631318724386439965450419119936563513383766887734898191658911411424773077238591705730441442807154962271141609475286693207566824252554315102900701066238109024636328124769606629193467681736513803215191470208882651432261550676299441807895462972785555144966372782756820482263644165684079623455156896863025605311592149019589819504547272829290863401500273148942000869520117909197278966572996072206078856475389987369275643468870348983586900618209598278564256113056256994815940102215767275146548826805659386966413004467421383487661610430036149566359092244597973841859442844498289815797207798485535371946616122146932819443204933719161117988875317056271661582647786750124407188651691322825634947822609731962156628493363239013667052359277085191949392882324335164008659181963346546118932673641652485577922688222150559056236359813804582290347586118089721715716026135932467418036474849577750831692642369909752914714054505548153825710090752446861629117054035254892539381463046072960046730097016404158452796271083987407663735128976301584729713224790940200284572271961226612395220109960396347868581892223823459480961356550161343835285173898141610959895100635981109035700062855418841875849980568638701171196532932949092202825807880296761810598794431076251098600200190386842726004576200985813506830019460224619695329626256657367204286010670901739524421142095504948528575471740223851137380178524779580755084594991244341033582964254494084721624515469478156231616070777857002179842346343891958914470403058551710770057146557836859803394215253147646805889248448851439141692294918797664464570795194263774159844417511372909113221841110173906825858254894212399142450429064537384006590376685224564747047947019303486315426030122616065241516749395917057503489226278681491269284071540827798912862438778687691326902306654431642768596327673441210170347022453233882513428384532950207895280237060148092740582911246260518130471506949941059995613774703132891260242058170341649358055681477912334514925514251847042199357007503355237537744896292273768618667010920078535496774992693390250516815995804929003290485134653251104300661896986958372300348159417758816997700006064287879394357442058006674821593590488990617531398477481252325825721196758567311921303824549956694724256855609688461320964415960099988750906659807015282018261608117249761505837169961071693427296711758164876197894872816421740017111624763805692547264289755832133360421476272951326717841786206770662821707726044273745991974173420215867738631301789768150163367538596329714088180085058179543344682398254536497339964320744589460515856029047530159883755711591126878099013784288564945223300741527555049014367274232071124202124621078483288155682814494283832682454378826620937473021618839025175392812184322129522934514755200927898484611441365552094846048033359477856856806786204530249427065096068791504738622737977932595896711774835567264823321766591218860699802654990432787454771470807991612807241715891750260566676313989222488680414502171673890797775154642805108138929560695326517537404967709357309361364323764225582826632718977642226416720665968346901056266767433687921204744909902801373893082044328184772375832557939106023810066548289192617836086530015302469946211400424286112370654173407881857679046383300100998178429063425349127853632084185376905989174016182595364431750685760645724587476945569873036653621857298795673927796021582723083196679629670231383580693730936051361269858947276304536207439255777086029097896891044944349387412516085550304654814730059377344017672594325780774408940851788184682007181812535942530251788016971586487852638878715713073183971047831022437818717599086093170826610837607782751321391937913462008504735657125486229974705699251782906062887838099019256582106279970508156988950543686389499768862150999613223344299280480922108245834695762756806096170652565474827449874063593866814004586237007305450867853961392344517521317857387249546779661712904240326007653733996096166099802218244858609477201799337782752308585294732705999554527720002662853619297576353446407025639855941652274853011573504131324485802949477622139168768171052235393374883262727235780144522950943571370921921773800058849526485070270178878138581293354338329127848007941680423953734277575794003298219945554613472298399256323897867332916086480445877860860057780639489188490952655857803753604930035785169028993260034016902219981334432487927130482856988082294000267719029174461239106824995947070687375573669932763582064892168635473181702578943402260108948737643197605473187169232256820074969080299993699417799294572824337135174424487700077277988171803113198553106687895454448918161480966784293403982298695575594302963037253800913250143613079959380902440317010135560083563510080709855553535377321079008988059856048092199659139610197210422525410836559506139723975512570546127727297861501730010257659448615968665489384727668892036535178434363010315936256416468624041529295571063337665711216236595558983972386684791268157779335354437328715538698944646039014075535225248751413308639252352406984028908871899922307133340662930408304484387817898272816143517980842700317560795291745038431565845770334004993811047578086231737030078245328863315693092845075580547768261942026544400119096037035216794165812019577638729038098545288433856843949539683223797972810856083871599664792460353340819346067808951166570959637916501286126102043619838721804531430403842957271760438097417346442498445681794475334360902822707778238168053101227968607341518271079614640586813563511527069934039064488943657599817482290005283396194387478225784467550345738822063559629554669625858771535711033957171515668810961473991361287798527760687355634513940254857694559486702999828075452220865752624092545337202346747196355899800613844809955227974483892182544773318527735209644161846063548092743849117971033458189708974108957346257538874000331154019920611964521771745874371804008244962856393719736215242900247249011210547428979327543712358296907312063847877996628132387019210013743264180307838415774490571188833214744252564151514408604961812090660009262660356800771494015608434141033443618498067486520803043017223305535017007536529335421439330654199989760464032803815239425537281197859877122399043375431820903455043480656236040694345369445353007062651944201810388772282165945939260397950273654784505232440075072788112903859463352968062884670594348464298409307155055949904527249142120249647102579292000131374622392036757125787360447172040078553055924514951112982273799476855085679627109600913096685511740906044956979719945133424203619346741207786047579829305351087398126458562062955881210940029435385440036397867245071491320613473881293500827631418404094016057945035126203166100693048965031160717564354048090699396791964707666536958899891213589794603851574679826409666427163477262855226284349865100983162757791100740479554750016066364631363087074853950210380112731790106080101811478580581371708023751044665576095658449969562265679402094739970661151249760651013885179181639836892033355932983854794322586546067101162467472157776594964039463590644132452761429834158613099364919186999231314101394610070909713816314419857239944406609565387619658681333185334962553582925083103576185605929616970231580698176223662364230563941658164481211875896543339337353810209882060528478446990204344668057419353154926647196279749412911234711511879592615387716342746992271360517514248974963177003992981488027882437983237056363434422027332102729301138012486458327892351348597569924174380779257749308059722790586659756565669192135249672811072790702758152427197763754646633827336590972471192258086072185129447752202184709222408189418728036299452064152493335468808306105941042000692133767427438569610920190411796522430259948527239593763850846341839664662070372241299540249793965202027795861840340639157511914363394748318633421997427229522393413198107026226402452461170996999376758831697892520024211529221039685690907842847908265524843288071123114929371773964796862744346531629019007899839729801063267579424621473253529493166280181320813369735876499946829466451203015095882750974616201549228425448784426552698396719165765472715282618388409500887021085302441195703029218126860907702200185062033499798204659678438983464498417571379307839948119873902797511092649955178741198718232571876262279938619478803847966482299762725485324204136044196925001832390503500192552986820817058315484155030869328550982650674970898377723855264606056130076529623745265986599439088047777440375552634478991815524782033413983077282821571558075219577793823807926583215102640667669910573932240996345303620611407451120623460830024041463658188238959727582008875271971513938187446966925970245247789702654747903657526783937026927005452434803648274895234327086237529721256155079820307720743317529281639888097198090053686170483511592396088418951696421679810776094715521758882608824989440649461188862773375090155166631556750814379151871506796187835154560874233620703006768380067927309258193147330679330775686851358577774699216079670848771698217669679214111912286844143796530069870681540033630206060007293175681735878262877475138319532087932848399670950957895195798666017419215052959081010557751852201426740648800240046018236361512743385852935725894663326348476581639131163845328100662628138674155378133917298146282885921381907876448673463928399747585737876066782337786168866086680329350539908080425559541518346460345827465841898707465274911902000365082712127400188472446489499771753964215992944299306509897792195671318811997743026824030347154328899632303386087689604675456811293204319170945537564025928010178648960714122808418507133382201347699050755618525950384343820525152325492151550894619872613905644201982278907052581434820676249845083771306307804751986497262054706378554738173252050527233699943704301685987534510974599876908811419399121725848273069623954072428126552437178770015904838030684206805987429355803316422352804376747733788864983679453247820226774987426524784298932411018725229793266996260502512948580289672181344748054517648794505699848542528748613548874977114031215365506993677035240037168824329843195921204808972193404930673828029828164549772805226800960921679186721056923437146387039983571826230476425371883442092373520179993572740088763462334497874659574856859005655739051241630884132452153116411098620813288929599495094436562061821752846441311677164879655330690170672430582242615175963867304112360056278664523190429107268659037002976400447575191099331679250623051458201007776608124374875505694484366055274029501759346273374344080556732398562181369723059764377905133933903317652240850183100934498698863840668825043071385487870555654879606427533793120650491154241415909495973913901388013928444083298873896324987545246160416341677363089494138618753198826579024183993472838501090377590299054395126668448128956277571993015493014328598258765021507020121344120990016781748290187747407546077216810466275973465499219198142354427389622226848997451762515522053924782048935052743837101876371842539990544544862384249646481346232673333366675837251492884387927201290930742734065126722163912103451629968366263716572114086466002044242309661448561938572044461305851910087981526038181419349353245595871559903831110941740195893950598466353382000753383774612059187162793970724204223273076998139228088727170377871080522029190221400683151602026423455005586739927496876729145739243165193344442361111695804458842239655497693494360868988336642818757101227533999081344749167516768938638499406973123060855117852791318138594876963279622831695542187732513979893345012892416800206772207422839143018482798099708422245650807330876494980180371410050021108127126913499517954561957089097073674918910554763546271779765980444793627801663226864662682548418250565932240072048705326972336462534819265453557295305612245258220256343199690977095244922995209197745032010033028798660800579565864417389976037167762736846870380355463317709868194188432382493983296676774627344956070169029927897818217786525103006913198459193706932343913859534593161721710826738423214956611067408906978952116150108121839762505610825349881211340969657904130123157038184153943509061011086131827114260150108400760477959191970587321537385816674813413962685384334908477546913599331667566011288397403135610821361488179492419056523982488587737025244667100490325988705101324225676736693627908423865730302073582717157282848257337846053513317641509385159400786686197708132418670787790150101768112122684234575992105422644253236907474103096836550611255634652723832665373528276753234880966489248945870016782721982966187366895825582857117848543997537198579439710169436301179674200253613567836767113837469990789875028544092554829356170002862025789511924523363605291228826528333718396557145185329580657567618933780923333443372256636095329047905033479357545668950866955272911831019427948361656367753203545661565495068922775382900412206878339609282724270795795936677621891118612864700808080330289947549969776369584166441237101564072936285996858024874774864436777203714413254634375214458111536092095185869529422172031471179885876925496507351854949555295062293827095919619634037938351609133761650677486940299065395811642594409567001126936488763798283086554450765283876779973135618850188160278388383728108544665721789477132007659521778546955194459353443606007989062921814399580738682196403038600070334472828574128987899179138826527757410694681977660217058913959303461861366037650829382822535716758921547583466197537149392949690528083466470087719954723052226122940977075294539372405514696028068917595610893247008254693821620941024618063768116555081490831138186959594411766148767877571383803756005633555310385029264770861473456723880695313078697597678286129546283146857378436376430109691352537494459880429709599307912711890676042478057045305259635487049194102673134885133745653786729642237971090324579592805573410966964176773138725538662891595856690313706148301389829605033472590303483115613012010074573328633040929535876324321265394622567208956773235091948724965789903645105838416203784180065927219318256725051299833642924889143685459978357440083231663087976260260328643702606244287290861995690776549792888658850067663475255355931805833050184891928570945170610890447038665071560860809149367430457309792838530175248136196691023621951855395698408949696634264951448546894453600499737631558816831461286935322930604770495684875515978228206635963888241241030656829189352719171809773324416483190461433865889051623692294565459556619626100673351707223850630788042443983394393412326797613372919087865441895518060002511176220896712116312617633683464275176955712010096998979111293622444845044135932678609788267157039220090135432393288607816645796087686203398084826417587464582185239258223492273364885261804327091331693193722074541327121278335523681180487457876771375070930990743974560701264600798992500831386779731563886353940691760218607889750362158029523866897230447971450715931525680748389214932718978910793635022959260120686115900404574336584813676762812844232777166408164688722510187791531137586613013304671314344269228455414026284492333154519951316790720784948614102401409888576422659407050109225275200532074704547926754977389695561459448284677790389294582871834938221466575109353391554834331263574845055736620002786605437504300893010645563947993915532270415823391061226159376028911328233420158954577595761000419284986302948487581946114371577771340263054573589080645149571827442778856749761169028469054324065753503634755979953483521699536785707801297902647313226879021633315511512813210891488703666700280874414752019055296914097991457176249547483360781244064253930477563580029937493746234686529284608294860444242382294732233070686062782424692468099445717762768619700192616898881425239357903273673358616919503825356322674512979495160023417231357335058215307388410368346373150870642490791815692858654721145981791103098492114602531170319737655887134684414918870975368028099047385020524478634435401820799957806716911240499949535535698083218195409815772466518128295330876413679387867520853514661645213100019272014703913175108457826909763201494577468487857611753428834325701576992287302903560444538801847341805805195526835580292849817243881896443487888875195279371861658530671263669770335460636845274725934570189652391711466094797308521660210919551481818587656239682261745064059314256039233033935323417008546951158756860351546960354745074298377328420467149110889052552828767503346293884849579499343069290974054845890514105189832022006249328452649861724666015655424163152734326514172421292352994802299912831244810609394906247934225660916042192657667235804941821512414395009435870523480057744572846983853770004669751651278432347334869306911196209344412940586235644793587377417229172598426484770150803367733602984065575310958506120101914436170682341579114277612201462750675211217402009500063300453314587695225089540901241420249027955568082616623622153220449685223711994745297102577145629548255192235141243021787038513387593838543552063578505404317970827680674488785448896678753307070506130716784161887830561353450621331235811426661825446732747976145397301401029151009285082259777653341129492879535456939593681848333007390202680182665510349205924880285993863648858664746457763009241539930225266974398900468098883862704892446367240455118247235375262226520180472351476271422621173345072800992102047591938119214471425164878993332538676651687554445414024276795380934185748744870013699891627521061930583422387774800617415825519054637957193777227214826816202870575727236121827200624455854450476844144944917286886373575866610619187455704274351827330352812816964885822956730314799477835564789748910929414499456812444650275614920402438468611871382586994691170510802184321172603461282793861984666409329488816894871326791941018077201843708118964557845100051585436582442319864428701795618007662798329823737188750286382089171189488898978434306441076598831873543181292484473494314717067583087627180792407923981831338432541070313655805208873185021877116641716102774292233179044573360831660590518912598390630815508059016005455259559244053014053055655837002354329928266588789474915071571390892795013595063997216351959632318026972987525334122918119002880405766603589791995917420449777906905738703701711397213393015763801982390557480564682991397756880968107136884850656294950568086560976467122340660659364547084626007305841480534402959354674984180329794380606992827045240059485471202436561800497309167167378062080248951329848319023478565599703382653075382774594435822077605273735213945707930586004040331752013782541318228291235934469930854652193555664815174534080612991738816585604656358467752717487072690778232778438510854766817265030798979804453340485821284655294718780548100828759048150380744103865845022521660911906824089777100600237831328331408967585485311155331279262535442150036136071375879884950718747616466025663358415977901576673958490155788038434948464022530194781822355712573859768204274867998663098793797107616621563461183443277181597004918934376723836652647663583541652246987704662108421881895505473420113418407446145604755297146291851681604714324072454285938033660003841840457989481423133872401814705729093316041881459087064435015811834914784284861111564810325830966863257255086540505097675331965213490253027093712497987753766212116520006858509317143785464150546924244939506924273316052397882183238707225921817975551935530918246752885566580850866936343013710877656146146378721227688432253760077178341689690180466718346894344705818548888390032556522711400317982813535937183637528744319961269160867383320850164785376458311508329531588473704269256123586608140735403483769622568022302658044845796862173889997368150149553723579967606123588695184025179555205299482108994957990731659625584239326607981419129061554158684554994355355496964482055399426402715844142073507769443774344647191276642789747087420891250366749562151942546112134265009537245442251815805928212069061050737171166329963484444397139042617105378600069323900375196233689931140293622067456744837853724528411976043101087401345988385655160070146853995378434315303968581727968026670690221406313164436954064499851176724337752878118113404902454362775421244288472327337174766667454296080412458823829558712527417045535597019341300896859470579175942431430999911707233467560863805751986612846274736954450275701352909490545331833552201568286331025029665894725049385731818743312562473109383122329480938847334709592715655241249488221389623860539502986836242644915353966642984237368628845433226470704814074266318629385009222144191587070018723180436799711104734383460243270057506853192690059908118770524062720087579002986047916034954940534863872123537378625197012154043005208287502112412384589055737016509576497782617540333172100146353165884673741255311807950871473156678838795460796763218410395348372394427973497541236557359407247049639341275151873043287731292450716707401157033828457636553041290755214403122686963441078029048897919931277093108896345931809787773151733120033702713482284722917820185232468637397710074161293896527338189380160935142834575987285120996388810992292587846733470312385849084998400612822355949942971771080330639237339406483963344753321447890978871368109761088462292987179397480912912711409225958855570837271523805792838114815536290141743352188932738170330811634335370051112041780321550134368606730594239360821992120851228689509983470494534438657290333362871388926004395949327793253136986880865102147974252748041897634021914069358309063613830841762039893299168799605995353628229387826025235557384514661300404554699791711761249690500919001836536173552262528333926141184020036666364322597098811077155638848095881835938491943545923542666095727978948424872538932828261348406113631226680665493736675483754486224992527448308176363576590075447360248802365705449245261127133574448150595173552027253848160247880472708397399154284293125299683610457368613959308555580612597261848245421076604692070515643916558314879886005865728935013841210554232323407011580109401250756421829926624276370934638471999852544681176095929675209903859799429711139603465473918499953576758712435746891616481781038834305373980525155786588977097888462432686615630264501416439654291166895536474437499773015676281485382620461073464754820165337730040550011990627331630321121337711107499560440375210305395775321908775520445777966735419630685945378012347937839892475971271432282429470037850779088287960039289088431222308134413220386986423827927263963345875334894374039195360739745086546185751377768277908001008853226144449453286447388437791446083863458029510594972029288915085094025857975203854804924712316190135052982859254655551640004641235703531020006451582429099049656733329829707474841130573152164024265894314893425193466766636656469486532410748065679799757920159187320139268338825135722791738794793961950100914203682781389505202850229407705104374735401521129912148877084088468946003559853986134294774802417496162698699496462953979484100077676800960806597187165849763200702737441182724523151739359894948894312167864845805060549792676473281937130009838210439254932022351248150153172097643262907111503586944337287389562078995980386854530401446679898123858879111498805498561354761054655420914361811447438597244983018727725965775590808442767061192267814939564275829259243105356583814742286227042352298801891399581736888096191348348253000033434189215776098083444914459326676048045127733119256707489581218423124981911982629944221731806915446982558462438355412009514054892728593961805138128965518876138534917400565035359000145879417833650137824389849716293109540904812638338929988316883452273731074562009375491692800474590914541364997673291233654717892482107485304187647748806766993160307172282084475434016409928596479607528565706074482382271431313149273053652941064336695663609960033839492964810155548920500562214713174400992670183861045335786455417077119773985227840272068603550603802589053417652048091989954514911529992530237391776841606815082456883649023673233250576365552895704673984910733605677663187109309082615582899933743899687718830597854984254736727337944775153801626279332553818283150126881680941790781242109772339900103011819666194169817314538925135928382042588707533748754386372968801819760006822218134728255128223367325408114061967982628867014205789547443326027492567809134209314311975663671796685067805138439763928600224437284208627407121333006954387127016273762628380716897800573224111477584484945811288756994274271706009580940622571768802884867264666086113480912270724852303707123648981428175838580300302807768884420325915722987693210338109898679582693022082706094364787659987700415767381399961073780815300670592300573773250942953987256234337016821603469859359697756267130919119043488740883190264260719851705830025344832088280374425881700687407097632703216528676043858359004743847092220733555425443776163356797997684705673519061559833159441571079863700658349092021044645997109071937512122815290140502040941635762613378553394334386414320801586318391653293613962810062458369775309154211903616676838561783523024829354096244820096488583240661281971239914569684676475249577503277230767787534235825534279701687544862613927469715183824030969080635440307874205837080804460914835752432250069058647601972209020729623202974485352134955805931214406743150847964148685736390183542323034930054015492188302989178128887517853484422498574105719356419362259779921436246421440268767804493169158940296629214341098833671646818110106060501471095418190764158667549164530637480544572539091273076077012078969360753149624147224509171563031424527056309673975704265310013898114386657413824216672365052690969498516944859263284793535071839770116041272640572493057357565504325910926455972789550290514128026842190834728483357771329989098704202967821194751113536979761962402273894088394972869550481106542944011764958747513646704535854696746582487831361466552981091731555786195303691538181471991094599141553695813327684896095176821692274019028792885813800488013913740305593791656703383630408687159682434631987308111170832144699870386022176920233215432898493963633903646045289011419940372350638140400160531131552117070887334237369404594747236877316983842348051371430394463886802933079562928550863760795625599372494538735442274844639413336416944790671849526098532657369703313323999438198893314147889008743786930170249289182324540693963087199380675166084776657344914140916662665183499123999549729949098188366381525418334421519691492117781494081547115748294229825309219380262095890651236229744516154128507783439481631748351577299298725717056823161854935519658397807160621813262072286288863718193618751203968371176087320552465518661182995640195304901077961463681776534795054793172806218970603577980850173677114675548150569038376681595292198698603830813247210172720100881124452174685024030733748686328657537675916531576831890625977868216456079838809830594340588181126149774636062037116934899461649820518614560263956324392833794592662421513398663096390340317023946808136977611888844386717470966935027530322278071226432628665282263363809953195357519369524365007694488432498306287025660627728534600059453527179052167378274651128417993227963416475953870213353557168642178416553849704898974067040498441099913099554729047964668816773033417409372109334244772399203298834914850343599887072745853561786110598956372781900198496585472949830745794520272012635176793262181530009463721592560324627749280070378758882604481929269622592633984640072556414679672050537464611665983297206499320486105571848373014034186428352987995449259954006851923158203791077419271030043951326722796933377051189487361641350427783704730899574111325362922645893813743343172682755853457277445161434838071826933071488739452076796302788631954779050451238679587086749192472623276652968562865983393145216037026498976028008472462095354088175790029662885332063599001854062622603256823478585166861309294171657573674717610026711277963957301191958674755417345658210389359252532485255426134522663422527534987571105426771297545562864686690520673360086642044723754195949483961221998753007369726697675655663186840253144630737923411631298370151802662252790877853088790404225799103866263443987668583496752748985784980989793630390171707067669066214850486362259238061137752403576017768235169761243806621813168815955655992044593818822305259282458071369354469287699969821036395315374323312515823668835914442562950591231290336585477593212833189255761712812090183917628653520005123160075322336329757687154525712099998994880624433119551667506644008614064489681401496838455315177478047479175782282487542897749816426544567632745029260178834817300082483310161574252072862766873728475585758290749799179710721729595194554902740724845873084441263320164952209093386914176479930014576717268124215332973703514748211714475423633534983538485950008812170733162703145645784257719541266056025064043137404947761167618339895767691489499385485432422635484471695681433340024806211376694730342660947661003954766946882593425310151134924123061069790110473759082160731524785563423489600413319429393314829649426034410760352014196925386351585602536716759149524550766578464845684733158919701310132481895272132847901457960619823265576500687897432733570988335694254008610972415150066361681652980606358624773974646488329001617037975441557458118121972605271103831999475956662915965803208685925759137175541834594564395060235687715288722781609617173120966948578513077796014006315389863936747222866373850495786659908259340491349709643172604509400663280163494283625938604736084491968616168146236635973521129677668670665551024571563272791147441257653076937559401109786049878879417434107832550997366224157175958297254829185247929838915232149733023220028686683090517060157777831605174768680650496312100734926192867933467412407432601855819733963118124064598098301895527283768305194908841700546294845706912447353647617242650055509197372865488426632539937274012797680446986895100343090036764010804826254240964203970680143472007569847994350894335353033164926158255739987339001729128533252801305695469232117754186699027715622179732840117581513420376100304682324262613912792651803125958034166860716370335443036281365161165091383712836449587491739492049655553729254130203329228900334919166654951251357938559708606211139395430680270814447477455705808863567797517305165979411451636077885906445765769714362223560551864062851066646056249130392741270775572350552386435063201651562131820168765177511432649394031467487660965457774765895814203846404087138502760953818202234272303435391698037957589864621021244685497454874305494234597870749893724503866297753439428817821000306489895103854637042126044423778160923080967963277246818010225684206162658516663131333867433993682249520136592122089680396633015400460239143935782042982459383295491589046232916779833179675770991575392578523107583396401336929667908508708695230205887872552274155520853062217477522047106858478004573823567201258540643859446188142212515975607215677068944636373991985748078008961617752275558753167081425146385408610847795496889897505348849193901934900230725160303383245585488090151275963154879008584017659645142936015334672392689367630605094358469985881627188497007940255729482891188847617291634285135472803270045142630863609221549834601295854601356592794989336470207454142411511748512609672788102672059457765641825084716861614498922633113057053141084872741131410629718212859405608900581685063900369580602301966577096245075986866255459924526258143923545586208044192474810892599628242096458149876056702859937709413496164835691959097050138212652701378347143586177626043599899701994081823276095475358611431766207757239775193905058722536660700456217409678626567519921306924617116967763846428111097050956099818333948989389604270284907973692470358606210264014640754457233614270433823584162130853886176623312591576890823081412499989507675422816968120926244733839106638265184324038611295266149648375561762199310573817188409341719600314416710369749366380394809585366485558704674559249008341632047490257329483345364670717839035861030189954515263129625325352430150955578549132097951449343501798531983572044379004781764353632200237308224397211887863543625747840739174782430239901512823665628811178213826038977010189062120295374072773686019451644873632715657915813152463293672723349659699220744644960819856506787851706845456635886080765335030181257278475155903649039908804552251762398646326746063642199864309345422263142639367082362955145801218422360257176516187979610137681799836380168968221083560184685072624758744355793566437206466820782806104290517619514181992813633802296894908421705458382943139236561304796327670443620625840934295765256260706215714239942213261150850354317533669729014060905155400928735402671727313539033277491094911838335487066302611406277812184383001883431987993339607531556863332268167163598666586453455920212822365369421576631782147155669917094838473044522520050566917432450979517950275865770590913747964702051976848744662263371454319028066161312637227728521888467113716203014458608421315417027130179514811213423608169305316149704910097865607260788245791536437748698010338700296207210284619011332282906816486379680571229551004985799617499154625153427430751883947588381105001138239173006456390009897149123814593778465226408310454945104366785985704634239926032027142954736558514288373551044114015953832471195226580603513192846167835750463554397268835389132211765641452603280368540360286035626523146526367100095972755223346375920909249121230219403552800210148850335690788333972566039018387003351138796958565279882853551489765022220465091637756783979645731217072937364935968935816178032429821058725688195418254158542881309507567598921077587688780449598031138102927289371407572739952749195591864125692338692490809100206100836551253603306000741484334761986194190102999331220454431393198788647379511727199343173862497376115072978796840303071345765811715735631772301292362607168257159034228371469427360035239895746672797154865986935638732404129214604478061290862403513581153739522610444653167890990546735110578675112850563785231414250785619169372460409085374431641920430769550425634008404171830345560584554013675699956693787122196218941249789985764845844603968761777264021820475189748236324057878003608813239484694026152229366177738325145232186017387332196522274249994832565742173333123215827100289388393646255600288320403658480896885191862211611797487460363185883633592991801452742762363490288963075278473234918416733936390873283377121162837606659665251411519785584414853297452071435400289224106028968171394096924093656795079931763224090296498952749767944085939482648287808124873239989691352274268277156332817766526541547956728334438592850104792226790345287607341726081826131537816253098658947296603999605452441098992863199182937942565103428053986619159661944045171914501061383068214401130172298375562233946727954686414018936182635910197186515770655135333049240436634250074674664616927450291340266915299806544337565132641753087920685487387599100037429318775072944365330734664774158833669577248535995458593236300057581025838825522301918149885401220223341270115880350737899334930762441149492352326178663672977428016770037910068684942098091154197600484473836159487119488418946290002952342452987481205123646735954888153242078630958140167923644344436645102502897768043762194379289290363169030220576710015823343935518528035505383332018868569917596397284972988141610702101174201481094747265533890399440451690723827712805007714336181244233005744863616616696853938490978905426535125410737933569564984344271316571191428445468765694569766957854601120295036832677229569274243832003009468419671105426676560682401898684987171338841236712546940198991508196795708941981725704017108867670340815598586384643548480719770382156328315282351943376405553065236972043332799039789750571539406590983709263744735909618298351951553232500502698876907742657179549221250442045946088923653968351013882907372497094614600355365204306682661604623665883215009041933465014989186362811285486933855982865627319245624129493489790366624192176763251850210059924857400440275779231589443498887940733249958806536713765924819688417837336632439268476901035865492265772325365541891053690140374959390517709211770956507751844505515160941441341035304075444168531211611650862402265489330767343660931007701060990563824400607326069222187813051013290973343731279361099327267853777307754687496439038538270604739817140675769715989120294916269799623918406712001055616882370733920357393236375855414267391402363646722008151186675638811663405797362447311936727644791137206195219950633769208646082259647077525301508273908105950420351875373850646826502217664975931746008672254016916804724036565833794905505371847754584509768449844799058132365225835164285917598629640114716027757888403905272514022715394178711505909770599721078904355955103994910481378945660238641374685118004505756985239924177544693699063752436859104858757134203674711692812931756925888821835210090854196011648928240011829900694038347727481583723115089851693618265559675869572921361548070608062005535967255756205235285068942243072599463004547025476798685471285115927070583738498724116340148856397203313676910116269991471315267798938485879258928102991236244552671310442053524782603064235082608364089649235363998894078920195968744101990391220317068932874868655610595558159201968861587995409133328123076779969581881038196401223544399369762500523017303001469445904616712999874040634140429552014975069593557351374362698580952081633253265228521062391188357039877678654058101699424577050437448056967766759523610820180969550308309192339863661679244251273124241486448013624901596548301809771677159511346192083987813515683221347815497666842922311855563055594676874288395476583936153608849454439843493612792024474946331681035077541453447385925652880033943197420955072995740394119480458507641472399036911898415222133657554796504472756991480267507468470140347054790603472651299361114762793478996572539549085551726740700298935320598414746003520073167855238130126416007808373343025212790294458670742756839177657055322673364497919633968433962975645684677833180725318008530892844335614037789565995029669865503950835487650445427838596929857078993105512437753180616979299467380828567783081360800221015776994171562968994422199513926984200671395599647191795198480963023629622860518038880025206243821617635258811835903586702941788735533504884146787566580396905401323221502949242734439224842805636064403141395922635456496788308825046669964284201249634157180382978241398885692002370278806401793495415860232653337439742437605074671307331041045652966297455230434294108297443582289262189560916015230446687676557648492959781998809471290986199668861795145929128551764498036822503160485694335629648982844347710399060226562142036131969539258239041914515250360602542279456035232461667621564587804531989261923589500607375759462270629287384330488649547639469203738960923421522497330180157556887656677451793029166060765919269499063212745694499955378479415710156985817397243675208674769156970696707572231518104025121150040649571370197121299229616081196658093856952231814667081235293862757887897531478082996353320226151711903428051203969959510087752464766736400444396582636729602193862770642550570388982449600050975949701808665315312641248417201598840715059218641249287089372523242219624962715288742526224892442326586932655109296174991572883705462468746650040622388934965069848264215736047818973999871776510149655767436250085660780084638589008676189544291537934246368544576960300151860529054350536975494301659590318139539187001346245786091039245914113884747028375305476128018465484930348486789790923932083111913099570161051334840762218679201561326600564486868682757289097223832006304383257478177339865281639483960025852521007348190889170840162138550332854454437161310120343167799891437345042331709085655335981677590999626554777787556333582164770542255470709799436297761097646217025506852901564976777238713345661605924424498057422255144223481243934064102814891673565334194984174682399997757945051233667791343557385248827434028294897619337969393341256992399263096873589783206353206838794655596265356623022350738860748090303923381539932979001296368661959507614888672195144364897536586558468458605881507951807216166566161734101199416091318379472644291402722998426616619920496401043299790519318032634327352696966108079637597519986735215501252982541554232122342560511658203680309767876885680052196579375280580816999274801287271206338276429620853240264044374906142799071315303655437887788937883326917688418955621693872686431645806924484426253892868268345991578695390865615539066832818628298211221109620527368439739184486565500768630358318751226663989089632261097453527251033466452365398507371628868166932442528430019544024646898247378893059187879214984168251363476218041128605506350741543538651876829787240199402787835358819735782467381143607436156959489063687560263627274251598373910204602608680579001965936616101406302989620863482405515887883795339704305830919237103543719382073744262977564850753628060426666726111855087004021121366802322705617445832761354191880591658180019338361389574403916663524385105173030722956431335659889086850450159035836323072114092149336220830376046034078705644937132806262383258710923847287848975997829074505932326955836052980104093728234480263594276534061733612456242582500974186507905196548170737029534065920885332796885401456984080247094702557778290700388421267324397726554049660699464500191553594772152184459781650752174126472791383982897712491516345643586849360760404562660972163902372665215372141527947205262135769532746050318389552552883179862286081545343335069215188092386033688822868123356040422079889333045196417496337488338676193342504212083475698339159418998715902710269904972317668161604838600803337878036572254520320276906494277135135118381803093142357656995619976784415557280224717228684805372128003226393956209517436036353331697214287630578047994703421531320006883007514864682344665322561257969434751279298031280295173583199779311416878714549288946132749554053626200437033547469521871332474132007548890274443712451222859277108571593318707729005125606225598514351942371893578235644109835660968563575121962591148830642934505023749654673122233375319164058763436078942013389747027086135613411202892327358036556977020268225306496335700095920219290505869087897485538218933098142203806532809261622474591016275775646814810981591387707577829640435632841522558044168687684454596514056825713211703690159557881681743827357764573483389905325615233846588099589104028261594468140921788232187621501517196077013320959719929023827363797852777280953983582298907956251945782550852427889050966442068910210311173093092059896773280632291300363990648600626210076916317504075985864439498951233748094889751894929158278170077464440910335423287915659039305794183156045844785277940258234916076052361312729536010157726748215138545072157503505864669089918005062189366466545894584882081705884573242970228483060680094506165181042774403985446032034399622334711775572569015890376782731644271453029288527310583576845326603627476146882923701420453976950608513943895865352352555896064791537697504238303716880627283371960589486853468574087593414039247101382779079680766064512412026162332518429092149629845881885324888039378742430211809994626849579103786633772821822369510353963363772557007691092421751630050448947521747589413666109339066170695849637330173241781487429081694262528475911949632084007556750518045648838499515299654114882983048240477368860558417725606979687294452224732887306176975718065559363182237808460299955352328105234019338180838256087752556511810048637441302386763253055698936548386097854632721130071077079614108231935683322850238155779008084525746826338215353832914601491063400612041451728447789031203503368946603178264096981347239651962997006191859642878307137567554073276976196065423905944219375924149733364658770284209004075699258028370297770291350610916652418503088010870258521779999004462309744641585693903407749996350255991023109530805137195940321424829262757159356952059908151700065321881766904655208990617697187596270557697900956997400611420056046856029168565883434124314876312601825197080669038512651773156007960627990140632813799640445500786458338965220034272551709579235099726544679059825019558533380658919394819016446531122885817974428256381875746172121715263308858863008601058176229914771195084501730684858905417485429001124576071581182756795062396693620166888955970391277263049378392642119883815644466277757515941217712994654382601936675709343026031007722458017618892212483034262498562779236313872585154538137827220489888343753796498879240195217496099050352636716317908235034892195075105656397539267776924653102042625504370551446464550539947856417426947132575116013990404844650420364887673540333197207604566154083170025764158900484820587272180596646808320880257281577207827232009754630533821834639949331988478891843878947141040546078077283148517497601023481479247307202950649996037357425207826752844326460784191519494952034851103485263179864535469138171358475181047427462811214087407874032022807557006717185896541544461889681100551607870647140866915798004885579119620004988699294821347269963788323741046642001083236523504344933797765168594270629106599804937012751766755593480703813948588161812460635763302260390312248853009462701365292195188505900745155033046955096827698498946693424734722986484515895123021902163616043994381586706135875481874449861586932647878032860532165743034482752967112920579258191064663049798400796097227175819803074824722198179824343989861783733863097959718884377409178543414804994168885932066379143412603550602328256348659287450311237594357687451087844199448494737694380247259910895838972012795800630486159114975110757897381432552150676505065514113157691026188480272272111682195380538167407325826417090899204548635795389399721263248579380032042182446975610761065859207346830742405221146557079582174593732192515354113423752368275463918448640329327874013721280970004013583640552338767078327034852947796345456245513049309462205884157853662940695185512820782048795497452492262591557357341536032555879198231194536762269670700513023056338926049313049998748199708930657092755000322574669598250080778659953314088355616485822308253125996160416894164245475241580981249301055089967299102900370571908098132624193561577061691855890004626394645299308187761235279774564878876859346566181201700375962863243684613354875252847832409970335439985392356696921045228093361098533487567372375036333287054299483601476778172809364811579438704393489712720689711460674318201894189388502710387743931267189997322093712176666702340419582235417251029489284764728389216123984661572306221193583572934855237688416223812586639194971719296183305668138091879571111188665030663519203388687164677230025221150460108751448041548373886510627298130486553436276965148803516020253335599388752181555118232293993419637322273108496691984876218585365359830658462876615416086748545835921100730757463573251292765351282564556809592532320801099331899904098464249033625854757069114349279976678654291187349122256257418646672330736488439340086323199776316735652009495319845518247867903784980056249639235929568219832556676854441444986106673470231098954736356344464793758797049891840398862864918015881603856782025790651537527220530319726918191611250326449031736057269780641525688435485497584155474129936312036655065197261747481572120327415674203429912126506930909545743128378648640857003424491428673185084992002394325878660863584797628552037370943182636997776207623331587351315119135462835335202470963073357239934339499950908541536872487099498315227487690119675621929062612235707004956669222727587725140654579502541304327550966563400682573988114571413480210345242118690283371841341399094708673160610639597662191468927833161844737736787675857985352094333876917051032704885003905575400775189496307519152011051782823189908966192810245890336017483927955424653580192626162076141106627234360189764387809477533469628039251686053404349945505843895043259963186559811904529217646779989370775009549246997273936681411163533769596574989630843346179827634964236074065931789256125267557836458040075055608423513388048173823332648703860906896244371846871555982872229565298501245162497236306576641015829047519110531512000708061532125635305966824536626543033042709580250959761420992366705196709412774074801161585187250607655662485602733341021868798444419349079428326180757373056364960679516006268058945604561586714678187089761030839589635867474252853769153054216748347381509726997557486797852626962772649674225128093927162279147005060742028980558446208578046768114546844583934327917599961782409179940106535924266610080101187674956394864588678214368908039818143318976424092427035557369769944210975529433969683368314651483702959996828682995383903910622812561099277593732497262531614038961894649783350258246693335405763701628952508822985706026765306328741784341073532541207548827815521201487584373918605915649434936850279638171772818283095430334065492418748583528779899688780272163028932106782169610871508646541675113478901844937408943535723971186910615134002798944728942322965033663887281026075813524588188828022531230723166974202285885531144375310027211316943376858555843768313610543219624723555829202172877397746037762616033643235217811637929070280251974785593354454199889497990407930545090613615138665493177212938203257503591685026864197736387210735802638554895728973566483903947287007249686787972318127379072373897191769530119234177120584628005658665408284963402343763334668695005088126709249850140044911231227158665106407829951423538206016914232664467552050638936720368653527313452899229175161763868007778313822907864148961287752814192667128060388340730985841349179386600495891130671193833664041975638105354098558437623373631028281270087697677441353184976732956062165367427995643521459229116840988532390023521854148825235618412124444915990045946779036258438554794489472557733054289825293498111679592530149560034763934060775615279417899538674343006638230130037027578058014483282871578275677792096285761161997812476681436519771889321577103697058350561311839702527345333053547892498875931345788994907923149042616271455402452761782549144697330031259755293204070910915239019291401534799532242935445512819104719630952861526273542900027807818785088204332081588520312138573513682042710358102971633722074156159877257433163701903434964840044563740464900502482952191288867332797731426592651410745706360502493903821653254798164005919771789585609557329212803996771935723254147727438779609378008296411422323379309803117267332596099983745745840490910115341992224621566647699042855980830228395175878181836933341510789087500194695470415355102146884365509772055930475608435650445544305762247979871027243086549798681154261862266156169352634303053692714207803056686982745252241752096328888735296649155765802890514924011299561838201991198443882147338261924884994412424123578109042343221009362648833407070481860081233424496077659967436107339086993490767317257118075264976165103168565399054667517749608165906330765553881965452369743451199785430369824088076693904117713396012149175768776882457955385913478557608308015412902489531152269514017927826188581824376792013197527547326015093358839619231440618961368905800679512247659512115296957543055414680234564736656635127170906662250783135057923060321864756018870101583793373987011059447427729406056677534662098074320163401220444054282241196823855828001707389342546760678399815545772542660224514607551774747267349825413567580632132619803135956510553789179905156826527439509575912708173094978770631033260320888604535221358515529590359862775427379151668009310505348644348461736190653381304506764380410984585896493542951537904519069566398605007093521709418005513760542048502583481290236622262205613788042858962195316655480742099385235846882356562446701013233312208750798617398154551884338154746511467153090624294487871561806924537324356902550414035899871639821186394105250651785863546311350809834631029539392047944007265464115498270022839574824548417712730232849392554870836072672051630412217807279560590891243063253943971770683375482344329830207352188379241668750451523164866395752207855897511774041098064739538698809832230379461866254417694297073114509610187681926287702249080290695755512277827180812984325478858215575875949995755111489711884994800909372619970072259293897101935290054411765777172736676102926615471878418385609286579182785285647915756448314865127688463875886776072205781010415823853890949742910113306340666286018054567905014907668547636992869976473344157889598989490855064102069334192821686954369774748297465570537761385237489317741339833565628927413324977638791854508992213294735559520886820182019837904844505960911986496960705305724425872951818249641797230277256154231455636826669101771479913397284378941034921527303249540266985160220759434040559586967464917941526852029338705317963577175040111263225128691128469579298337477007429992858513585895497298280658509186460957947906840632858469932444130925919687460410002056092796209472395264159321987390740340869059448603769456956002602289150700086694986320575624711695459936561185284626290218241855581169669579375451073865745301107241444595004302295994752665001218607555541491011487126862011805562135540124684208661652272984170567937234094546587966934587258490785019122731906437495397870009727095437065655479531018732633288842877059773269740237837460500766977987733954509754565853039454650104722843925436061403332661932698493123890359345603403268376252962515599152946223703513107313942954560961105854787646409024097164159199251670524308346245875611506009757379021107017186936613098230545744653237503617128499192041122249997075340908884600461644927497932549605087199017431508075932960517146189268513906167251487287059451101788754209135729378594390411642602690581163166220302843549131831127235296460485706458298259048209090153022391264219761533603286864273660057994678160569868408430162063367357273518615564046067676381547525181891103218856393674029157127812385906707038772662269717298711670588138847170511380550746867756008051561989416012270599982778834024679930385156880880152604909806567677016989819096566920040862175174690432258412547615884079856437863903768445513866136052397924446629460212925702397063386023722551976169638271542716028763025589941464027174535061678231401780163916400697478227508182265642889449217592071824760316284539524811349075895585946742104651427888472975582500250143883953464298649619655249251064411255897604900243322386175153812291049657577435980337665656604999608515499889593385190473750394865678483119274578748270988925527480840023067904659944968474424327991139552305638411669064884607147674216161625715063405582596338923515434793112688245976415488472090621439417097404198851779323247237062920621722095097068719596038491899440698956014596592999446462554564566220190957833519150217711878580903789915715021320286193077681692867862919350489311973904250131295208560833749023974249826402719417572407095154769489730544565659389573473055419404428799323485283698705587873063136507189424772854536066798601386609721850667589309488285755199141616468758433061969564149361061077336252874313179570909531002522768644709869963235168066321709365164337070957731611877706044791776716817305691767322127445412832863855160316479315476743097249156486281519753113073358126266591068001471248640614587170854726101620403392468720524998366207975777071126889857180077497504914184330667207032678090564465358494080982175965808020821936559816267947045340391295242073669571085094882770305153125754611987899768601634519519085988336776298303497581493742779574271040447545257389821005059090293064760121121000055004967920369553555903593911352511728409625043634394114056065462143992587103393923925481447288200100143097664822105532359253411477226931678867443709937092371996426386496199175276782172213402274949137061115776927262886261454238060207761829912342178585940484615535480921455990545309979299082031245359522637667867501887642956009649850691004456894231676798300827113544315222813290608512479722793644391379904195184388004368310923185454043856978508354971251783852358499707274538332072851374226337142978420193303019486868600931301593450407329881751042474772039831594665085839666628907443196976387239443017302429095680119013127594005739736230751016226391146356138943032751596993161985524675648672841326003181677724345487673480588791767550670521345099903319495450963047390623186011188370923239940463762122442672577624787025020353571092717307642668338509788540964697154816938717692287827723132172129068409676168205711670851969245438473120771210348495549059361130834032607635178336824294512637728803478148380787007662750331871502008645338037639913888413397091042444676005357179533528543876425169598506794362443442015744420869922266575961908119165168827781785248962430584176691907790599384745841368022675123880231291324795793380673702442932463222306169962222154549613494980650824786049850945552673664134952611511047191134711545415847280016829522863826454726349536915679928229089555916120142222755807723075351388386716932308033112820261397863966447207613626790686027041383231557068670374908309749905458365109438648260310225297054936531681351963005379761762293212943586885038715089693146715536142058664362419460989755944945951404050409642554927412296898337015159717590664446976843911177865769115566894224776571801371849350575181188318382010135845962055182152542048150135347621612339960012349358715914679581089361713964529051892617073607394422069299644990144703348749568000042223615869097335983584058245762124959607998084633579432476472775623302433074034368764575385415679527184994088216400682962659980204393550112652367614257837481236331452679661467505766844471975309190140876240506054705495067460382673808391353916153206731224458985402127823122440667377672696131104870389489887875535890966277825187164140618016190653181733693172015363151928259934562424914750299007169462486969580839170312031808574600573033981697769686356989102371643711880804196705679120073677066307119732426537552439576698767482727902302151912620881735303571862152412280041509547147793461224982409475895242999919834967586036058601303122783436790733826237406408396867575878150432891040208888833311135394142198095168405810699149814279024614964709964405645169351868041357911114786628024539899026147344790905801398095068568011630668227109645006620647123987172711444410882121966525154719950596099405512126529714645094494358773269281516724100703184545962473528245439020606504836241604536681637267091129029694442007749523845667309101212981065856757551399775046590176925091550092660148312295149017300266774048388836468624039527882259951309626117141638509083123845057526238254623238652814951835110258989265455926566213436478773512240703862628866488822383198436957469185858192186883261913192830922299524789631625120964739978415554429794406446333619129590959400685065480513338398813720158882877879654202763843251812412874667195715209406021232223004777602346168854199497909180822599458618340739801271635120810430236844616912404727187262288426821066226307044015864169289462908371313685475131180641099242261689615194843958440629345752415077251299132291356617427738685623916187283009812202617227992936217224654998834670191665253468210324919176411636583116721270367701833025754796045000231085658310233478513075282633184352416569094777997105998581958853735919335800372793761203145886729912683939698332766497936092900381979792493808658701910986440685065720566949861506412690129768835306003698209270667973402693077261140279648602156128358876904001400844063368585367880702569304196647387138504694056255859580863260253511280035727480701379488017574360102326023563483607871999455932903783652199565152845354128638830159495460538485898978812977720686470026357756559693302532164492611329821820610459192247776107789541730029563897056613667147478348126607461956164240457510267419611257240761289610397133718111244745882055015280508280837660285034961302931472564186537488842627585856474270557662433151332921137994907093387511024193547259048243363726605554493664896962632628149823858472165340543771550039568914930765279382839991236862045938553731957308609208064678588625532049811505057633669811007640515904970797428704372246533618309990896568723870864090022047304219822507103159567394065655692747878424441354688583062101503831562183525596265569962514569131651944890320833824299355484984277110681330919279262789400419172087254156921648994165112554906732925209540452415622450284521341256122802131734028585167967105592935101265211506519528752597994043043201748573873736679155405738730520449252104286940994907985638117015072691904389750438295656186567641161678177510207228638299395121306145993102040058839068804414369221645602750859677073959992521764358709168611993266536640387749263933315332210160368618027546233885190578138962805955234633585069079635862163998691367383526709717062969893039571933147754116176370449607516494864476391164435055241616429065409726721710253215440410653518982550943276217667447922937021575739453378295859353778058737450605844023394125942316872001238828059298962654586701755178040052154088789372470324393027044288631443763084804880009222313916787908242494860752108363900993860650325037971455127941714391712027572729432198201543144711129341670160763713831504543525623266304917037156065994846746033245388925805840738565160614476598178465754972764215901796755055604054095341324617620646473669442123261875136461946295174939191158457839181379387124788904997998552130765187888030608079283740808068804756294767519145807608199660892422021699787414500022591911159115435280989254325799322613691681847272271422100236134947927949931207198357991914374359747672383172207689011019588611811411696071648510323671789309617960371028630085123527030807130039558418001688679209545469631694954222057498599893803010171383261989578272989151789699855883109730328672032274111427769192530839055470250765448821033919888077085501720337122687207093291611317873505520660349902670058755146377042781871303213106374089925984511967227604367484723824470149774032235353754843698419543577876539416751350563296343483889482260328351196161192602698109648724824119388909571937245147833477016301127063830896402473573545659859889302354323422640233764694313864354038021034497692714538728261261592326841649339016981432851660878195284343446286198667985940999450739868407559666801845236400951435761628504023102733630700297554801826016843601694729564719230546529951431477638662362632723840787584383588498695057190986562906221442478462809048069877981166251995353342759521993370615700201574458429689743123053459665176845668997198830740379509833705794181245954189253219067922323850197415991081456061804836095408356238759870094041723707201663707353050616625276607483903042196659193941732425147064987014425783591862953510136712946498028843008629236488068157088592622634456925150491255819123352135706156299759957210024468363640297358746711379420099661032180273149657597901664424693526052803025814168556904937835324472209901101489093444285278320491183246545978719465461762348806211055828080524720765440867952882791931059380102859203833657291574033061902459136300353685254963562417025687100422642186284092801427127732156749374293648152542695553409157340088998407408636523102366292868602705695797346855459985753416159467553203434719402620500176044279950826545796807391207894652014958737424688409534801395017544957679117197117857982829752092788748530897649434434222317864199115470735155136581265216762969187107349518267706937936040137936483614388008877314865518399587872562837525590763285592228909421477630014365981013624397333307992936547099897249697707960770721178880371073824074102224133352592819366458234196871726974628933455742805785576783407104023618346977698354487568021086192629515045162640302931039315776857186730287720746706158043461000143849136915927384544026130107154695391362688328538080090405681903475418266819047449658684250062298722653252987745702984235035836606392246917439013977023975156219190782529752197167738506977963312168800753948018536885011819044465828066015803995559806717514238828293113167483704038817649246494831689651509985045724408763850503766377097427324193588689103120428015096797526615498497412138036792497840040920423469586139227385836813894016355820887952554909066959240670445304402829632722795205486370211486560271246328482245578591152405957556555602766746951784553096056447414276678490621761668953042343510407286289008106078552624509732709192710011529736878531892925522065005614527865401329338741154924754190936168623319228826807908791793859038990906343632145541064810509444428185581369328939799310263349034528038704354601948173932815492701010251085709443926962789580907964472288050860189999938660927812793858887832706587870926683289778984206067820922706252240987568816910812486725771227845193937520559564530413961049976850843910952109894998951773084241432589330853724998855824071043129424226173660091492427652931319691353639692571739939900847642825194954345479894468279820157399462239283238891339607221118602545384405553333126502118354766245880114555911839555846070581549975706084567191694565323264650119202314223338580994993886154587669486384052039066326790991900096946020795446679338114535530959937227843247230638310269386791690768486058532110161525935907910272997048975804810499203687114450643129846934884952172930589029084608343077091618257672411645570852530832772788175766529945232320264117625181444327451173466975146073162098148963211263537852992667439615217616632066427831465146539255372298361163600355361491190347851095863344958990442331959611532580010544612831421267170630491310571477389241883119499926419619402234856476252685778149533104737771442275152727644587777985404013366121774597850298356925020780661708023316277105626346901868612084231594384086693731325286757495330540185890427869221316457619924901388318266988500411345383303910000174629200519949051572029283038394043519138828409833388529607695572611381660282231870299013601139412885526051701443347133218066902485297882511895896222890268221824245268819231886253948730946888803014105013045315402135332100601303903961983721871178736262363317138660667042030979737847544858621716588765290521536384464347515755281087798686574122671648604155163606512014933020353242136213795708187355270300537605066561979858205630233891805054121510701596069517271270125948582011614183477610297342257339685798649945674676229927301147210451084892546832826278375855783559363954644687726139685009159880365373936625095913135271591399141784270145191912748211984785316687525335291628284477712654399973755033072015031491380629977253440375075927254554799883187098749244691363452771831247223305054582672529679633503744261471512588167642871927225687740000640768644866686872134923601144831339963577331401562320494658500729073346276970158278650920619332579999565145373906214429064980296195198269872149749097706397820885445422557789429243410141467881638583027986366157338848712116792659886706001669372927625410022804132106881561971038537664511120217889755275640339688638971858462653994139705480198255482096878620365660128650639822574154816009047161910274558492111646799624107451310832491399449574885677460905375953983924780279404105955952560937238338455533344299048461002927468205036116849525081883932035425959507446160699829025681564704821878347236376346385686370082715831808823098303196725928084108756983668755202627843559874935405526192742640948562486923175784600639486158090330790800607783890257220098606751839317631492194590122431979245090654679004601097947697209149324651963635074227970848255872776942341616340964494723489267527724132753236730464791766373958100228048727026063603450839627325959702375881011558034803753079716809831843951387849667693203490906576957867329291726361740463530524363123374586506105817933261431324595066013888208486690150281284684146817365345120762369335557354513851724397054022603260086688731989071775978092181244476349038562358615099172076888878598522162991015805898425173097559691052040717854505866881426040285696971293496012469006049927480617461430430064527685766666413247310436518399298029983939094258556616943654011235915332360461292949385625537710589459014686116672098202734278308928847973607163035027103186930565694613483018801601989549450266750092585304590407850702223981090783922657825492662396717747630115865141798383107184577739709456179037289584303014113260386878994658005334356370466568066747445222998791345106032854656019738380788257120547562548018411563739541159864515587218636927878337065511492281525417657910616483862697793668295672119658588391760658634936133597317029556236184271119888977238142449121005636144157127544192525009955039143531869897220910407721330842788408740505337866212660738914428170898858406141503006613730743100617857853331832679145869786488416002308117017266865246776120467910958602780739589506722946219612870369209708645888580659574287668537392935583352209314074782925290581007260562384391041709471127393173707774267488888532725365406759129795321665293189756757973072425308860491970804477245349480332888741662663699128361798649084616765907552243555211776941091267171585717473241053143521542275517975576429237092795950983332995052654569573374201674926700205381769268697954902393964519634559074273203739981561735955762273333025277503515598343106182334033138118412861052236298152043789607800409516094876370709621195667290364465231984016641740482385743409120900335092211041281864454588894620451049314747053640275726748440133024578106012085120474079387529766498175215291938622341895390725318814740813048293116281834653170738806382142682259933242299746378045311723294695865981764310928039784215210983133183094980846454657777512158441612696735913290331438580835491119567832011813504498120870305253090960061434942412933146928088699490441180671063554181848903018549741888807545140713053425202266153112171418291266639217074018459474713046287019097347223651014395060137139948559997976340197890593864156426834713582448466679471465101603252904946251221061309463556053120793167221863481145980494229630114878569955934521805788545181202748087604371102252148319190206216749725706107061788257167144311589680992435275838310141867569463598075742634609956208929518730028089297099510096618898203020366523722783631075343479447130952884736119593736022728676709919928634327888699331055817732823815990334895895143945248727468800552363536164782698771082039337051337461817030020898939782859503905582960971398308083752829006354556168379067072681468884574535014005771996160097221993862755469962641595054497128982128944798616933904565839238731327661404354330482352177719299225920601705646783295901761513898116192826395425161402311408792153278022224953387673606646526639189115399528602899122953453566038502597829008503518834436158118769362583338430771732030870098593031447600624336707244336713004673435459149693842689004168613436474355784783218427951686805997737128240297598625056044706355741009374156871755898623471502563015798507261621689240400253642392007415473259991071365326052229504156863578015039235946213308013031340614614316228402252387925844774169507999788016329768439615664962631647035002957943660010563695323544458932955381685303703209376569573506084117987811336796800300432197085810929793903647435620589470157408174962609743113791380792255176930953961185809495515357118031795998395465180434154544056419390296257039398474965100652131341588792570544907483321351750166309894930768650622278485546768480850238622356530237445004427513365877332529227320575778650429373976108036283606974366858201017431443057485354274390343133000278837123847029254020849032288541595269568107455081344909869282409334921252131194737571622570764015587585253991688915653451408978622299277110574615314284200888610174091747680243542802368090813828716374709631939339675099723570862085581520780443475778546305185399885149884912747362043887202423210027674096883387888856345144090465976373185820234393609087243003601663711879995568787024681393064039561060517544165188188036666125530317649642335208260511009989830951694967424882621951278619553403384501681546747965290531915075377769731175011549731927759551491991098715642076180859566741717395621188326993688364207844141198327034765022321533028497338093452511314743198171001671574444825095383873951940268448812577661803365957339555356748436245332379121277200087620793536689529577998980746744899811608003781616307691241236653858796521155609326630574819112561485605035947404337240818015489017420260808957117211728865030832860511832291854279079947914512242374430563894875986094227226118885122612679664396751511058168957493941089391871331908289766670887299532761428825799860637800504627245221886498364672795103524967817862831948231564870772551010083725049804850977900075407315312535109309949937185577298136241077362342026132599366380028611368454036765608413007908742412886800847398647885102401122981253996228179278202850541339142865680854483654651159014914422743703574704322258379215490585559801866969372558980993018558854672574661386686062736186807527230029942779756608378808611362025895702509355100734791866616818258539130223948963026042523324933095871509780053701636904105993739354518070147411406464986255058517108433099083633519087314763668197822514965286680853661116195655926945645820532946567889686069441899105477389841631704639154324027419147550306854288431587477236175571596478267618986859577845994890456990878902480900125357609506952555723123314850669335960586977870979445619499418383144607844194618543681419554820237925848832014179022303438017309326290679102183449458974493446424437171693697331234740419910430275325046285900122310305690884636904914162209503671532747497013444489850180977037042294238423290954442104638868261532723661008764860015927197960233617036065026978689875719749192993852963572163211554593600112330596838216638614200056878496260559013062272661752717534903087272833219814071459138937146787087780497233891727418952561341606498896083593980835415902765564856866805490429690984244698887059067056562679204544941678318584186563180529708323335309338484947041833984632049132047523821618106828269149382859564173179574419023603268138467338983080396321289074053485209664324104957627313991766695708778934437142969776654146028163719246977911017595864600312223334719759714197320135310292362335208298425739658765168268748417041401028911854079920390129190596601753985372151936704038700255410874309189537820857309730954749213693641808372541969842387142946944973892443237523790476318877083018430724663530764278165797630706509270350042937102946337353669228515675915055695540634658410322616426930001970208223098962997536716404573026927633181620189814583034242887197201402196751899362653146861921065154522750939608765473195589061659730847219735680639570842373272046171974434807782384597377247265007418450525124781664624973281598377126461196474250759524940779648461825844592105211651117173512386363257900333623680438678107695100650716621139804980369412810500253206360061127464490894241092465266050310950083327281141496853738186993656235419722300650495059696408197936731681859573275821709413084946538800664781874986422606217510086656987703064273973051548533447043074844774765193526735663147440304779021981396263337899459645593918986219205826370465126806519026123708003883319974792804841014782047438098267361172969577847254783641062955510876490708250341419754952490646759793944526062186546126667033273339693240415835600352060140086023225042819195733362647684282200001855501464913428397833086235123902667641576511770515470371031595764540657938206209334322558346155910009277136678295016000003286294807382683858000452333072764196458184908456341735772431590821594212184981713049551438785295875687862634487539726012163980137822264291749264329623091340919150612702947555954348997472842241181080500931160970017794686162144606881001708308403202505085093193348254807572166920311948461308855378401361424944159942516094253318972130246466517268294816284571532114229997440823332501726884410211062841921056517922101989415068884873384955639635925024943699490226462565659793675547039132331854753748356418817969295546211422638054337348991240217398317888724279681456129906950421287336053386211856369886525847946238011146148057005831655400475088138625586681731897585397409274579548826958779438995483694367896414738838547176406359958156267041106294018179269195648968065537371196191472319459492787640064122867538845789074473982294280728006215920499617000982706287621063379876070914829992368456200772058193396944522364554276138564887090418838888737187537796687076730241835577440521339217210383412424836252348060531683832780345276767286503992453951593749397457416200160651972891300483009264515033409947188635073829387143290875614467618816702233395775810537219660892755506759337852926880204325965517033247356786292566279868866719009617221482387238155620458776639045473204467489592507709169538247230118437147773515019033666183039906406341214695196795260992238264928587350339009617551773377078442937353914528585105547642562767053392204976154529050666431760858604492223745089162058435347462887193443674958539270160055059186120899386351016585467087530065059080074330615889798563942073849772613032008762904723777211527312559517699894009555718842222291820338517763151494558452550671429782618026439475501759379670513117701086502279757144913226415373121005790631975699577144814487524961391357570889974755954868432787110405464912064503308964855866304292402720855252676655918452154857918025491810865580606078510716547737895809284291536437201280225030234185485199360677052861764979251144722103744870670366939501070478201393083608120116129362812621960991377034672443609603229148990469202757252578984313639212937748698699831426335821077378866158321158448030337110723972547254994054577221318476406200392874180235648593884772665065422169762625733978604988617800176922489816145367332647999435034988714097955294876880438826028707705268647611768763302090994845549327694155792077939553171221328068404154534150067376255775049050072884062547769742192395544367910738573038781136254008619074150121483663924633010583301208168408247212524503012933629243602023876588268686952799807025292573305791311661885661375766948062423741721902644843156661796178650127330462276189734182202569586265757414644191341939222798045235084924492386908850738469040800814192878632104120175636294835317010610182474710092400527188754469368976225192059560107268592870326200775529835916132276090192274457596998072860418452888672191733591548046130690668003746027348094875102917182693401176100464419211894557148794579295099429481465746839185938182592006094818281764599483679374362521113558425169288868040140582741670451044577062918191727682254231371790435865234314653335749313396028052148522953414319332523864138671379654762882900742692115135305486975928610410589195949585366100275459340914563926731061549858165818738843584060436738008108252376365596354925144922191998593146440635526996267137398210155457825885900739204655287865138776607941089368896629203698584427069595547442667014098747452852446644723335200795003183170648222371999763922495211105747698707080484376453187241197631162337976421776497169417360978457361075357213242988674099290229539479303640785581385643344127139808736604295110140539310529251225996595672698761123492879073971846193924985574180787444971799662683080331484267201182190212903420253970545127351525144228920420865146335660130498947582309827883312430159347219773252837231489857314229616226337225782737847520493648099857851689004033114125663410819691136212493125218470667765167159506836222546638535883505703076570352373308404956107603007815022695372251396126886640125410132199803348778593525930780432997280960528641573466472492915984165056996124052962336643926684345536212272811730846832481030051277148229210785776890060633812144072388273803870274090750672781885013728004572209661415816432802363250333861894068592817838042958665772408279679762608702569680957599275931994529297553330358654050307245685544466260351176756550545790875497649622801942265516512067444447803787126088802055675898350819502227237424434978428367499758713428518180717010260530667674695423276928892248226762930431252469590580652645191248261301586918315691559937799308623944960249064157574451670480858334869766521441369541151351907347598880863880430257400951156946597123739785904429255595454744078214350194479664215849813015469496580584161888146269377928329877522014087760594344870468810048500226921584457858267228517094396863336389769844396101916763591068715711408790305543160850084032263997423714728079092018150632862220407019505005142007677009092704248850812974448083334855397733970262072436292957845021101885372078007119440759528248783336114447076038156574394541248063971813987727914951457501910359519475399579879600279182703789481988429287502778759073332192306542977642832705083021762735843146323098660483108065820058557910258735244483844430324315405382377120160034770382215465029326846734468110013834098240196164288124504265485553099468736473059116753521471441548386108134869383075875570085416579126354637840962874539983892731491735111255484531720423771539349406747069349359171860746876463252564548628259241561207961854326011331249259001012257097120367207761836751346326050050469611116133641062959722354552336862359222678855274255231949591759773798783698439938367450715447556933368435636094303091409489761887590727112245851270728613115073043772211411925071048233830693686954000308863147827058774493113572648186965722564993479070725491023510414226360089997685376382715011823043099616148807206373821869987592878392515692841584635328143984800302280401164568656597814513807454817649655626123722456467889659962042166468854609489650352552534210284857260723313417710763517662898205809502686572334752605572791149628973385967317708682812815600132181972379156586529055209099306832477011912108181376674539846176036825625756007152828716670222500931240983477073527424906370971789147044844315372003284250785567019324256498682067615983181024509169739039471594649294712212790741593870343301473613234868823955865628488871291159766522628071262679571286176146442993449972641556266461035808955478226709478211774420105756160341168182701311364001938151925200399225219164813233933244990230650037354536803781207155990120488685282589866410079246598284545517946584011278064374589856934035682163449319185148589857467110116683878104248415525395792101565306239454945682179287326594575955120488455322364998642262170132720869776106718461863053955157225778017863910398483661296922871027334986815422007770693918577743016025853445997519244896319180123643311030795488806713640702306496273337243674790036056339019441411530810908149048376057371292842687685782026171036379406875653883721149093801817087479336212477713363193649248211548687987785084335185113350510192245814413022830129323654825657979625924732794401946663005004488110932466727200758510265412752273439341086267352061232650349897219063256375405723873407258669726847258594557323562894415376507893270256570410808751493332577306490453530138462975599391676923199048954470396048346647084504588221413395061191093944393260799205828547263039966033076992338853156118248389433147176901332385222367741261058878126424966174386078009278816839260308333284907067434806515311724382485746580865910820652715184572896349652948044484320756514694862784447318930266364852611564704702666707140615747944518931358875904606248900506470215680431095336278321142393881431448678565549595421724370889962463499577824698104863218851113044714000315245568153090234593666607300253889435104270392826282295353268334516156009995621041956869313325300098794241068306940198645794451135685475909138680884169569067226625288846414433867193946432671375888397339879360720945679915799923156887973907161146519531332058287879410040561935783004848464379133610358801937532171167095211609942031469497959557761883417244811754373411250240320496711349432100084743185599902657707678326452903726788028617175963337933003532133536729200671879197648073196152565197281753639847416853605293796710451794346556435831630590625713784543753446875078208050433502194751047774132753465648050004074052284391917260954852235323053283245723108459619417539667437152915442085139986151367445266335306270865003114050778235687984628792178341799062760397946381381609370136375882916869496783149013861734929757561748717401945967374634505711363915237682221393849723226242587865262400131923522771664558720780908965100790790466967746030544773558904799156213733235309410088749613777369760435350394450208124393767827352804091314305106062590418739255689759449095059267948329070668138179879729393829790316773386850623693007711148719605360438463313892697680239025010574851780629495153862616528360315771398828975531427252296789540179636771434118686918700887065769599000503808338439622069332994382683449961576884541416374271709563454429748769281480304060519918461827641703760237486686028968018197050374040295905031258396695357266688401609054569155445624933224047393968536475836912709815703172011743975807639223568449304236324930210710894312013666551288834944285155195951363059166319280305543425447063969163033387605623078543943374628426624187348273809993769684273250506546912418237995677966780654454070250338709186711745828047352645790269895571231803008140456724458341610333716438736781157502420208060755033435163047820082084991451245596486132801162373421217717819336980454427343559772035631866244547912870514688400152502795609042050451290050770914024565202004591803114662553631080303052002836433171828176104661271880027934724567969745885029675131973974280241236715486467052465901841827568982738735575370762742197339639817716219629505672719518857068827974874555575735412140743104187689924809277448592249374772547580512796946148729811527430259280783095964479808234176169888631214206326579967531882718068005623837500181267159854091811915638290429936078727782656626518847432871219155799661014009510906379929144757914089662827461571273611529940418262856978921313626368460437673305187690257493089773854402292218308346170402209638267085538476193445221870049307380036528487705533148778210551801087034552566092775354683552122898608125163640000439403578780751084658822993750930917533148376475404607763476880003883528135916227331444021346306323466476060949043155674354781785994451437365793814099367090481574268394371641164939646744886841600525804125509965810101852900918346283649852108200471693624355732379454026508120380808624985136699439303259978369086080609431979302271196881736940689919226646986767116596286605526138220182529220018572634363368696873020367848024672755769034536756899812383073982199677248149080728111289303397675462270589672109806875652068218181887970642906523358307209543015652913446782699677065699373942926537365500290594420346887202878828896454347355606129662988499414508331663074721373269303143063554193109558724074561150588317747209704967791628522557562829629725087953370920705187341375139480619320326087660984618481079189286938547194308488635111659459760060882110431974196604183190203441117183199606104352034980330491641723773073276724262136558179009581368883268580943139071084674544944002971234202035397515649585308115945652242235163046116343536891205088461762385782860884733275172651845577609701628702638588518021248584560300496135014728796358049648644572795154991275475425809297863019886567413560909554486236561716481809572630325679410301675616899317013087898285615928197581591504876965688691328737227675329574065439979526721366102873260282606260953967587074292481408943788561339701776068409860951858031066936317514875388888456255451436284588360197988129166209288726162790458003842685953759242284688775647009558265551360576463610435574698546548573998484044802979579932587372388894678544214301514406736512612490911161395631472009094370250799438740941296586661568369277353681667283488694766063358820121951360555495627826717003721890326822439549167964685438460855776999914758529631487960157503543357273744495504352570553526799596003696929385894508191829281253763147267386423690881256275036477899786954112943459094713126841386502202943478892695677153301818392601342141605841764102253115613612018851220452799044126622878059635473911293206301363998170538797008426526624357446918271981669941216477065002374442863937513777279624449055774887071316813442360671533505581324994267751095082611817711444869390386562319330328426026980487375322923507108637771221086543593107275153928849229169250767843653436771107640131364585294387630231297667364211508413626060496155485934164218182103359839282421138247517237183916382983699659420282711555413855231533226199205442235487790819983272697033328285204209845217372589030143149450146288889205554263651529724196283557654483667355268781808941686032821861151588883603280222016501840508527457864600727794682671491682861594755247609110391352097102763757145826952247524386702715416684821304702588255153749787925184127260222698882367325470516053934113947317182176221822042677388791885668106720598703206852878183444157158751982764152089076027206808611301716949764388454826881102583141370651004410832673845010653134518196046663071812845469151709751839808635010276460905087813550632981300743513395742705672557857170418571438956239454164072268796632260916079283236300778334618760944713972292808161055207753422087128769465841709825107559317765596924221484049625503492935480672407631996247995052963789969759501865878483706434144850668056824355060320413376771622560563328453626136676238234812724963043738695277872207842170183060011099757315315677423299200832148017482606874173281261701781416072007904613129080459078562297785779899592381440088126392487960378307102470119124510074314878110488589620459725923336117187013021031787106727441286208301558671927127890607562625621938805709220965791097460267681695745902557229064906802676605599197799173351423160219776561137887959935518262244833703805011100795214097474275169463447051666145231592140369198823184151995572384771869190808846044584773233885898585007035273284510872318342175124035858793389772106328503949916718105676168162313187320120890787289674354544993534189553857825137014396132022734645355174973413511036547155662073178498466419683868058479593424447918668611686063036812638645603028304667784227251673432065482034489310382859088493429435797064162486568718570426145306590900136990261121623746852888469436222817227616981513385315308059697142310681534522293147850761948327555553399791767398193269204766582364998900922163909024277237578030005493622009569250454692365535387066172690342402618753650611373617016812271309649056692357687489764879935471097444160820624241201659002305934255224139473009323860210207499192862225397507175409570935127520592993463544246778900326668684772270200364548754993180352517825260024653540257230233564130374485587015405404587613448841574891117643099614425397663561447636018376462085790145335078362772534957759319760557982998406252306460180291969964413278880576298619716299872528025501864328875570279986434326328491892861454068351244697981371692857143035696311518264170448776458371547730449165371395012555782166024791170109578182205554118482436188497093392247653206401431044532535243972702558424562001609923573628116994858739041946784436238110009130348038003369415073134242907750341073236220514181466192810505942887903534395183624005290572217381657710790939716518339852323359511616796145779702778868882051206697029371590609966744562133877441711278922980846871240785100898449828554196328143545477378060862781956771966556466874355469115166526381963375668478580630221355608106109225769129578862122414006452747550767359609511517057849812521710501704661096694115412302454347010561652956944791029040127280311136696498919695419888895422856918529097308820104622796525994053626083594750700517381549551835965595738504261641715812240637403589029680948124009541629769893187657214899205314034199473510477103313808057656671023387004199943925015335352217668301035205168894410408990574955455339090806664512761719316415509503029105183221799521048033925893828355940023624140811904153821616157809914802006607311181318083586557412612991598983361840292902376514499493493841391119312996611623221867887139153950226490855944743193867475497043544410770148604031732067099585625204089381151688323375304379706325500867966544576882795450532646651515788254984105848797320837928792152607548746109574124830507924121082911025741822900446345409467444588110606802139453180181474069904510581924759456045853030018409200459896106541466588927259763610567222597326949019140638575340014843039580649889769699275143241569477294267210662339258579331833406922904797144804517585768876653467809789397851438118368380749407747952185027220380233305478217705975396604496670819032569817387865989316542553289364015903230413606151700491014794807913530213488442757750348760368095961115144564244359762293984605462547666759306033982526502760488122128654249531091855511006697839354359732267140629229629436604582352918719687984205911577533051339713339251589436242270143948536179222566813752418773469652382212467328395326447555269461354005763182850419228405434882898245120233870359555077954709313131191334355389438072987636173917501274867978177855871931925797996603551095417248507787287591979883874028211463609232479114510501619738773026064797649220446821484809120230901631354308467257923652838310867587080477096836803275848304228152576900933343564425462857384277988642458128217037662485274499036936663624138225482388393694506240782179143273706013286700965184471043042941681372033143183954177737422882745750980461659378728733430414542838980738368013528717944226019202743388301067010803300968662544474973006849037183373470520758795503414847660021997859360608768520317521249076707229105921351931293671278562202690140411845962738611731091088776402220840903533944999160361677841842837685069622087780354240753089120490198819530716328711614794732986004858260077068857156697847663466163214882855559719327149945676733545898034404234732972109597531934111443894232003438710873254875115337449003385447152112597559916370455567250796565144265713247431744616328509451745266189957732088416512239058291652242579979481851942099769297765388675444401415395590788132753848874606813441192026561977273049377241391735091761302609517325697260354002800460806842384373764140672725438280511294514855596995974517932710782328205424969953807938648453855390077158862812695492632233437053361293016918860831028615016858564537042747836660286664493963867789973456252325507449048161921085532390358449795033974281111835798035004714825376552112571676964849271899556212285719243486723443921584155008273898373909826324064968128661737571445875879405475736299704759239381365645995014231303470309030751194796246959378029022521946209941945010546372097821801530907875052366889606535197710792793396421398730400164319747177443438906894887913812001320903718019439530157715420489927747289505225582280246226226059979702943842752044249759539929843367725052818444352402254829051927501392323229394137450645764980392440665594111551437751755954136400889642725505555321230705802852765776483546839279556608684771814342306760892596100826372479847492751406320363690030266904830495348566323602210989094981706306936243431949025763461020347473416611121475752128496864027258151581162353408734573603488840723608090015005870689697960217022705103666755581736600325960925693011671092157045114276352045621279551730211423191112981931888335866929169855583401082516753757920762190939176099151370100991299230006527166514746756726335248861641150310112159479458983511534265115115527672034296706546397127223805636965935759625506721661077744835125538744707950222301926873560538901019133771702053187274288917306027108618570433092047316737692370951281530993968178984901039821017063901593518488287532669544250583128875416638908215697587344427595621649159531491522043227902408343568764416426213469135572805251477999469254058589220677046717298331635838647568071451155459997869357952766183006588553012825471228090151695871529028061218360103790368166586167412688611924902765323570071468760184515387372820188492629121711443117462541741670367975972126207658234373628987491137931525967235392552109113316135164507128764612504671094800830217470284658867690984642234081325011815197720343239986138670882570280638702711155459487570373099988048932585038656797859090250978351699574988326427048429259744158833382942359466365859788199951803300071883233542828286358122412345066254544051771589458055447116948817698603845982405621671937626918072071225382374182989537064862740222381456916165090897550405934160620394857438739390769563679067203329730936676546340425520056399646561753534615926069978779433010884551714834078391458739367960799302887218426069689960105959463907755650880959101041727871071768026719475923443830386058043104190111854367000473558275655557898628805934226471637604190394016382149650541884428581317009430418723729093733180391471031840256264681473873247728173669810718264806978723903929428720296185819567660152797615540516423850248567576017501779995471500199531081062539152371561813027754047452225577903043739997498602000521423520618886512892950786529944676003706801313238467443096061066246492214493228652334768954026709259985411546532457598591526841232923251019003594535434211864753162405828396087980223464099269384084704487215596000299641306531829029946845702487893824213864218110128525786997546726556178841527001585077506876642648554770283312668615055267511077745620815697554736809273171394243886904744999011447361973425240223496741531633419883177377440702547436421193397179068168308502161981558884475349551192715386183567774466741460913757906018575229403596059594028060263900891398013193383514799586342626730711393204741196440015543213229347834652962438138251790436577024395603364227057114916763756115038223891378620959220337525772011889918567635378292685041087978803824750371523129604796609505745570231712935770640076884687757702693232247614752278285988496702087751830099594536744912697045853872463892155641997016375304646838780519152111536970729859439113534293926400178154808273342996101280024486404133129494200395824310766420035657914886729672074180735104214114499623696439151268182127246093598064321933554415251520562996813744528636178453981311963400766777169289686858395656254615342542685239641953683828591721785628291898141353208429639729206390901707568634308016636694203588131321105087223705130682258732789465192001121136268572095598109142377201029764250340496316896136457243389930213873677059929458170081550943004090791192998540724830900298040428422963941790587674901042907315463544066141127781335005970905538841407141450100177583070974882498667352682212862771881772793483271439247122450879730376681146178064921865621107624995112200888604385712354255190055081012934508729279014276746529255546884933079504641816543811576306493990965487091949668621863734433558944012712329610629638088302482641507572860349963687361034787279672520674053409773614238537334597778610831854150541281742123129940214275970397900116737288869653009262611393943899634352619272527241393015536089376521238231470420989091042884746876594752759544978293675216568252031054827380751822509167735669726543586534652452582065815732075414058275835096698379064534080882056777818624283082036844963281224187459543645390650239914660053057446603410054727398337939956979207274643631664859372648624892712472631384283095463191727892648371982453757531370813939917261740473320548932501064292785722657113074366176547172108206271900186854939198284822514878925602129124234040756699737791847856109251595986219071524689216270785464483081381170749507541798742698324759353666450913601758496986674068981206941633555972061510153837952257123412073737606157951177861672373821042281376075847964314074708514034161661187568529550737707545414695671348554922737455364574496343339777857609381540399334021166922786829583554380493470692025948299237758897355508863502802245698453568726035996440413387126807725583937440340800016626623737498081353546514768893813395945406610339634243703827038116272071795141645486141875616927451913268204839568287967570156497106287871982260253923370922399260739072969144303777873918870359846540585534920760381160556261989089382523397834260470903088100095336959958376611012489046003186931104560357722736506044833392960964721029270347830073296557220854151596187801371600349732047868107429167515591003338263604756922246678101740447052304788616804088661405105097528012771521729170854252681813574347733325278816233683064544259877804664452728375535209116563533108485446950310347571570668682911128929574034177918255895282070167213943422609007377411368159668904488022944816438605265383421492839083246960427111682118741828373409633527128060546595858329722976532582092106730593963453913903967645617530248734626471263492534293515220267101211943893843317559578422190378162510882484462645428815679877718733795688115788806025624126202410695722408814133121954946889180242597784240363762531921439286956960972382026724763345888913497716165990855202239685933846477705693233356195312566659793140077466625153121821337950751078950958343090623669175503582464870916876258559259846335065962801886694916389693807172438832050684521350283185536488443566731513705605638146070569869467150279269367567728435197728205779940683047918995658455085871737077308900998648596166430078505305669278912855846120041155749820384800237858992132444791005129003664479094243785455166485561120228754576571412498454393322043033361962869755867985782791807005306511749287100756725377896465479498181832827707865274987894325619467235558902903383926752368744662839518110116845503826552255830301029855357551205725013672654712499261753315955597395105452877406221994918757701591943799544912386303842904914867683012346984201170963616384510908469242657702325200975269331646613787786114780760730903411509064980972749464298241528067480363235413153584386295494709200768518608644602328558476549353900087735921383881205361345593313717720728060315406834987876169590542852095587426287250795970881661078417143928951910668440372495982918158847489078278878770630420209333009695725675038647709315680559382681816413648302456801865032730643658604321669661016186925053180799096409491114999688047014550925360592388093827619009513661184411635798774919317939891285151808322342039610249541582524975095534667488247456254757417681118350144857104163104898957684951554290548169620369024692093912990107811248150320375139065387533464670149809379369370996643344345377978129489304026578198476440781897225401710156560052233560333856141451989376688796368185920407726238398099132449082363339339122924987343641896718866643287022779649749402351075974732564616714139114725047233617968340592306503869777942380290687272752730824477310745693828824736505589417817278025022021402209976657524727876766632344470342687352641640489036154379647905320500670775915269702062879509261610480774420029706722663088954831654327121924273957937628145439187837113200226551410401412224510203293873427427868556434752756016230602183051298748973893758429775707696087128761124921179241326981343018978106637576363120234942434621625403250896916627043661123845750835873656707020006591067145212906556451931779028180989376310023127692399512045560534364705992797632282060050275169659899276901712547793837492924408705602638034865942922023284339213276814755618435694902655780741471801721311391481085205098868486475270226642259445625778847163277811010882635205515571719249229622189295175926498678485153175906637211814045227779583196994056361290803603518795836090632132983497356701344035757855426771280339864664084776843347698550632626969796829083097197647876352887346905951554234321432806572442211320292021440887430017896156393416779852745491727357954760241827431022211242326897091552520014777599367247306763794493741895636928498872215054507632211398339468637659428774754751825723950723446096463787362713788995694243321300511104732286887894859047467011989706376351576137300101483249431150429023490248823229973093033318578969397176873314995767398825951473688305598611049295206017730879348346835966946451330806660092742817355165231312403447860694408645217260325101366861806377501081641102435696650267474089134396042249797804178822811614437317140213189460623489068110971800643558947600208230946020277137797856513755299508866754366004058680427813793254373028160520183242131810130761086021873352655581990223176898792205802015797171771537842547339584336376188357318565137986934778437802451207707382881359701793330765912832618811089057052504767888029863594086733970090478497054569715872841205885083189936776341248871898121671410351802066160496859142839742756069584362661539070539072551931188272182373494085551747336584374173191472838860720200732150947597360190514042176523453807257473876325067153482916673660569769039831531540444197685201304799457627835861677141365263550756909280357797250074918856805179579561436470122269701995484109390460361916260797493002248294578836479939192736216829690158741628030025748972063814494814377755438368999701091821150586637525605725783781947441478134318793904948132790916021660553633485026663119115955167558977141448820799465061154392945771607681934814787043323264800535929985770402203495475289422376218335254356398443478097964028469532314554891003742866934606452991361476051705849885038353865962447574367243626588385291388051931370068924095562089142735453163691543766707949096479357758271760194879378121674811340360364971915076710394077222800491796284852849061391055309533627262021664920747396755433106438857482884990823203784663567076170507633414874794266657795802279339963620374415164178196102261598385241897737236448524683130289973909544290362001693952030030443061434084888760269382849203133613883722121192306996527533817863125751522111958023410752284607627097956443704090136084944866246792140534153764554253910210169094722001784923971297337073897111021614557668801361599277606050739555616045686731069686603784370214498452158396554570067008491335087923982615159824262159477869604157161560109956766191016248930245959998804398418415806519306619123622801587199837825332736069377241965634485343045589078324764705445459497460248505025392743205160490473443669408821378218929455785040763803859605938390480993447608713591798743986690205439722918141847713988781196541898760443363485688861244804946275192405838610247788667304519001069066525055710831430171863533410668147988189266345400025855016784988175420982775873058406518538907323834089919993536380974942051006794373718372647277730684878506768127888972208867965768934533025814659865101798992762149573402920573045722203467423294586786094619092010771150325042198309099295709890231135855738054618514113173091850804982087539883746845942750508966999509368067937754887208391798706291141624044548053159608723889056278572084094030778045834298568655770868465738922248550362991742579055986252062483730033113296725068254797776887133321619351958387282324057066778237727134259955422293499381934352618990255553782959762587543969233182461201726205354747607489390537770192527649708241188466143594933209313903211650848922175679026365966791795402592135037888389488056870647815171659411888514547737257146622378829901775086851834076553444595831553677972507220462634872838853091201098751027013539768358718937548027796369118575990250165016766702775337691681116220722139301535099356171314578682340042720524812967552576482717801113073354552122265486273890650555292304237462279571833552943409389789589809026899742619811224725541364999027319027655436449744592329770920533060594920673506869271599324388447716116564985308797373381759528149017899336419197939875443744702488256458772021580409885420461452288551666489441833946811588924739424371194163810875038264326943946672595348565954555051251015958254034873082409731590526678881375582254092592692670059369334047314555454080686791421836240231274286316793946080020967734098029793808076049049579142127140879608687987106031560622998665896259714138255457617332562740614094512235213247125704512789719450521794076517397021488575974820358724785445376538135727300594934820919896200792031563018347346364948407585874397048379232345784827857672458240626772424250787312729530262800162089763559066656551130470992612767249247885708530990526528725998501631971889022957407373260983059281899434344609790462515241280112272489072318105555726776447755243962787506759034324318394885213100293207577790777323583067083910626714940098363270878209741773327815919327137658883578117425826118922454187053127720022570694933108259197531074486201018900678107400495721655194527106132247577371147612747601163533066141002518891889710196400745786974818311486675194169987041152293843473371629720758897325435412530741039949499761158632216938883708634762059929804870253325405341047931163801603368281889671990343276642688244119671755773302898341838502727083110076770226154361357608356403053856631633507686325097156793122941761940623608703241810302272987896451189054722729484392852783721368562661815892389836970947198814120305725776637430552249499176463304682109571206103476713717046097236922480494409674391431977087521115741091100262930568311738016535665759739338494936188822078525643874141245317872722482412637812210944913975808238028404087138672688200510140155665984227012764400636315672042986754693045424988567562734005944034059094986521226846743777624186111442481611112760944562997694403252404473682393672898426507304926952494408155214781835302455064844543766397602230815474986936201495031280694716778643577463845884223935111099795665156211420414683730519803398280425028155095952385026342942631095169148477457659328802265115427517311221676472881341008354004970812382470341925172716204222842017552526374582928831149829877531077733661152794542316866777548455408603668481029913788405761373737516699879412765786102196441723228597132668173642889203486405815127380316121653271116015218724853239445083322153523016327765550951865719052826748741893200493639757782492955646071409918369398615798954162988587384485085948545041792589678630749464826819810141306763153278391674581580128125031827740486584971572413651485150377739677624742392782735041220949193125447576196039238309555464460076694532552548205370323076657733280964964417335656214894734777760573418324694072382881423207444926877217908917448319798844885789541797888487218424340859460201612272455790572534296284386373991367403534765501871639366507602907826266993903489092285590489778496373691501692763736120114038574338145488893452648154971887865562338952837102793328303241821346271135972766456813432128557089011418400774511795666258044271677566239867218017392402207123811675893159071804544647084449768305887113944966553414977456583766146448504883728176757515629651595888097791912764400148345447636465574744397701513222910518745567781490520323486728731136694390925254417651195564073118030170006987976530643034997406040118145020696471092610775906374832867002601602617772092227525996644805284960641478209960686331614359661953192461691678748496649094962162699432037835918105105276168567998205990899750285624862186501498419663143594013628894522823009309341316441592835506010274723675692233522399532030975803957714560326454839618317273827458022626133257707782517207734491549042144343337874070476260045494662343529297923047868874629614316583373635427449905528875251081324580301414471370718281750359429752476212306200751665470366434264629308885548631975629530301055771467104609946516251738059915931776746870074027887651675743417973013655872545652637377849000177560896478818255460482633016399845710101031792519713899513832887595975095459437902732269871809061965943570477663123373654528982250073254015698934059504725018588269326345719400043781759291975775099260429523540413791065965688689012285954638922715717211966445598057814803869576396706723681728638500653045529726300898528605385327132252493094615553091974827160079493281631074609806091619574004988453326190712192494999599694410670770018166004097497042263573929237634824045933795755921093361865009706528479678107483978044415380302762839884413785684990843358958346706452502550795152659064704518824928623716016335545894782643113559750150222268939944399445904548214309270230337614074017488224162077167410485280295847801032855166880977557744702601911551395994601233128122136819499463447531232573603697849738605740462002028828558902368145447149609893359950902341861920896415341126705271335075678929413774942273728485382483883890172151404595642208362515181530947526063032966344548735940462869235806471290973262303138986050895163347252848610794248490426019184043397687026351286234272876064896255816701608534037435425002988957336345281870094722577796247229993380617188948814381453381038034116087453117149756328704810578069875590773483397071458715402903714535935505281367310975571659428506084380999980874100843419920831873714657157424036531680099699376096459822279077882083879604268912179308214990728291572067764342211301518387474181866594242138809186196822465526970212846783018527392442171452193679073409620821258897826225805313549808995132475638406129928234228142664010623444333860689522817693840898477450419830777147982443686217039982336116841665211812752690895752593007031836243847219751758513580432631486545460934312799996409179438731778253804342127953331953320680897549863938192635630251362617816635117944299464101542869049433906358762891977016040491335541354794001862978344778875696608169714080753992529062675863044908357285601909346270215325911776072025202179826652074706080062335640285894323779301162553663093609947567650364480464461152127668256335389424657490882449269906931767155479725597426062005467415881182779973933643243070961701174157433903118242884082991833904964154878152338213257407313379979769915063242867534940748010190155804719127037316699198706953696315214091416631876466656387772101593742361640531036390465259550439521702129354841012558974482148609576621525593287611490724037719635979764264585970551967372823610388823023739163856939430801545761732645600828300246273506044948692070862617402870462104018286691967181989993995990306087583653992245865147278930112167360665730276889963170062647914445240443712456723732881209704527976124541838276517765085821059559014421179778957016408186938211461771929788377967147508944809293286133065747867263096828703405431611520215248131925872988334181866395444568851302075156988235071137521153535951518585103389810150656670883394996151954186862641633810427221028520573797184523061209877017887771627699301948881578915046268849472395576554237931131212990037005752825743578716657598382088104360491287040322599022548285186725437284771556354411091795366489630729403855032695332888368269906387570597490794379981974460721685786961114490154975356155632768722975460466463820657698788609391676277254075635178513156224388123950683200798325762805492902241808627604805567985582255848752738323795513647534058296943833942439585489686336317369558325091482596899343270769779992929451567952573944542716038445239645356943869524678751832318534507750683897252075688813098976549309906827217666168029688940722223920001998086876034730046463159307756135518240074012737116007207826177407806478981073764141465257463793188151494249674125202912325484166449295022783259353729159533784018329038509903177703318395621556468065172562828432382124714632609670596519784343620945439022866143198438754953577433487040722954638748184845826684268420367052071388587275834709460939607908532228634739615004422281231463129270874532961961430539760745406984762780578224493864918845193346646955178806308350777857675407295588686435144665792763222991022394516560805216823450874730507173031038094414933135458289296011168863686103684721147041620809465523282088400740159035660128791637230491345084655505802779401031384531211390302602400090139524796879787636890235939296876005797794209137034243279642528659894541409152436529692952629206844170379984872530642092401983663454182653729596180043227672446850719792227393776092443433737536252033980435564071829081049324902778226912471064383134645899881916902164773994068838151852513931494796668237430061500951422464728883524516646778645710044375511946471160330952732589484762512702090657338681610211504717813280908767894219489305662537544545974503196496963905076847279390867600982639148076046205701354806254514188952166699521814651706076837914088106610401137853814889783277632703146029715736199018302732150752702228351678513991589162818833577661409965239649885694221711093903385906960903384995024892020332083009034197654514995984642034650976965471903676924793104054527062566013542470934259684241562774459292645414054858212080556939021486712273913438585460997779678665557628966253144964912950242807686757502096282947370301376606356259744905077837340758746007945501211209970823084076658238573234373213650689018147453558144936499008864477490307993531921114495239254760436504586552562061870940912777412951904485091696313974763572125914340793656029048651898122352566316685942671501461129015696063291804688972864202314458436053565329108626796751619801362223094182301050082254773457211516045602737682176589946642648025906104731848257557276485359022371511599799409893232561489215784524050278342328004449701174074837912248984369961706555367809210516259582963193640772949446978953583377062762211440145827036472248061101863477628628194007845984168055895298520539925933121740775370267562331389635880258626456053212994856703710134021053934104992282674873892619228271275830502824103227998451259669294787089689096363588515738645713805244295706351152036759107803822279305427053097448237878399363268629021838069487259977501005092126363985227279617821930061331348281607961709639311159870987179312739102561530813479034052656943864211259023929631151755573306901748258239462427003973254637389886429180270885109573363385377371908946590628795634700814442447482093047793274388561380420203848903710189140215030139895987359508083150728027155912696814961627591748478686539684906617932395241115159962538142576521028109928812190394394618920731742577810835053050845439825315784565993597463475374063084934704160523727383083933891457639456252191654941727097657550514284336477250369612301225747353816634173254432238027385112434404766384026479627385141105858058474187217518770440300004113526416806182276116458534456185601567868952646589878058433950841747394653304904621137489838829551286632325925938048567451170604098639427829270728522693498936594390834634466473842748245169649101620391423603297646148570915199229947153872440804385971259777585541435876451286212781416518682058614665546591522841002484171807676544308289546681151868400717634154769122372392934271156650977993197177042216226760676966125081571576068543103883430784999330061128230435145916151345128666074336106215429869495091215920022027283754101246163625893845700473227046749923634915363470940410681653791543694499506966340736071830380488560417061374733359754429674812408392697548232667039316278643514484893615782468596838188488686963381987522594821297658975393296637437222769410381651259959651386365884320808312472187453010503956750320283625472233927344972522799301088502514365442619310022943800698000938605704773628603603590877321240020802587717387964852602529636078274342490303079119418053298314620976130381743927817355492864854149839791137230964415207420989949362122877753681719203713746845471589191725385201430435051552665604656155703704746055838429043431994423066223031520899808188888957628192360010051843440820783278152375435156723675700386946605115531522223161657287692721476732979358638082174555865997331702369483093579359390959824493481647918272162169754646177783821496130656034074038389597788740381712394570457703342810295738076499970334442550318680104247309691500148548618928082905057847980687160375666769069917052917918362187419646424394658907205793788444237482430356074618171473299560792605142759900751245991726243625176763478918783741585301079690054207337481316203185022502851560076319821026823662371208519144124945656903395597055737448698144701784745378734040108802026219862514720497942134558727169684772023666254236661421799461410039125474417586564363625177078540073550803946332687542795043924306274554576943055214148235676994283328949053551753334297994721960927371370902143323783195191966250117765389956805161860372188587112257871957478685154505700064219549443240270374276240234410921333856403309170400566497633501842466718479165357856900478722533140634329298486834527321472157316971128372100350690993791988582439094997557896691404051582902103839076533560484294802392041450810933650439261827315378634963217517660472595783750943470668030148739092577110303953648927598884909103399089137024055376670604492953841360930885203391073725198112565812851961488978218676633661201670048569759337692320875877602517858477676038274249247290086660996794569844033380392805730545624324449692750995642296848961386183197985851010766483226697720898649431972534067397208456499061455623565249779667914576656595548375107537221371479636581672802127627826467133364997123011347875098312483324141127874891354784858649615551961097579112179670749330292350254612890538430838361354921212407743764318759617890602165596129517302302493637239033797762374977339865138109149211830616362242839205882873668347766675846751585929582896092194217152391327730245198521615721873472230687961964575976433333874003052363344490450811754204153295250270401223290030421141792946584178833689158756173158327144291685645653627227572352978341710352924144481799800778332601905364291677456017562807055657912097342012120849585535271090101411006818729841837933454730714092821152888169980705403853773294112285618134290789791889574844592499023816451244633506702502632639542572017669599056263012851995198595666763342598093838454748115144340264085151496200870155904672407536898136644567100128087797131615837581812979437340843626714787431358805703484622575266765105836439142072893069063752697110164300475975613432480853669250105403803401089093636252401927767900717806982491732039192236714468848483649320870724200792720107565112467845161106822702052176285732465025153717886930264090039269315410907963933780479041394125045101621887836401147160470005785436192094884892891548286071273481194967836037121565584451159127200690952387411768575394709013765070517282383406084245078276991587375040454850223409147484939242223635181703168795224985440363793572957029076055896262840752612915311650060193075907576870567703417151161113752921515313336889813127944445716135461114337285716651196001317010615958224069832592799232563075130338877541730938216855186564071764440121766339064755227232159540382234208597502765019341010244769686770830929283567076103300008737188661213410572367101389463843628964646563297944330698767482895442693857314950814890988427549030012637360729459294125132147240574469161765375511783028630780611791765744726355740341711876062921889185851442650499523739971485672258283569138500374915556019391124880557762974721832285992769356775127662547586881184054705290432321763128445061039756917404224464732895548066800474533219151779828021575145228948720927488934668785065109546566918678608853297720090880359340593589021733913006130873199947234704065921135376989947603594736089855675221812686028367917612248567664877040689798677106996793806573832548851857016269572667475001748703973267977454992200391432077062220307872434208916865240093265381592103648923616819011553122141169329409232457840914679592748438518929807938047090338724712126811253654098739965510654321041264399774626093008032261130303162308532613568542641623433490799884696653674056998849428869544414823502357931290637485087262154479473205572600718698285181435340147222518289068534759167178002242632893085925910623172208184473308330058884827392806123513820832169705013799028629690390551562560208908291848391076924340008652969761904034009786707571375084175878694540548335165911083579668688352217650839385277660928963438851833004703530493229821211940398941036230465685784926250479504840155793509178929725754252917324195954604723854174198944447329796725405823240645154859709659307343986705128649884317363095321837532989067842538535538143645536777309074418136086769482544034357343632412606993335829500043656047527076676297525282955360457367267648019884851871414432370961939662774580379730570718374837320706512128836208778975201579744402446936278654837151024784688141495729493020095151513295581316498547555255598831026593083379637432341161755769931666686663969076998972209718346468183136336598068084342025875221953958564979426704678565938354191739279351517269492989828109218000839700852685653694929174799943354647069630444314501997944504588521809577086344870744104495896146795090222121032649493699440283007826759108475538485704460223404405288281588178690108538671066866044406061582701441111169268790565623903935870846268761846744839322182905121835904017212895228889015968839757495687846777127763155321903116732593222550326727256444889462762709463670403046558818051188528187355535165579408810122663213571741863923613989134173280016689314634207375172815185297350890334198341109021070809740142701748751332347899598912429310441982514390548834517254098688911308030974809188834236892647020418884670936166996507974644706675636701916181140946787181123477967671876784207445411603533943793238695866235598706966013337925987956724852742362319861125892521265115904830974099920964393154159251116702788455115219373820581073008255008606536286643555481026991630391693383016642166343091023670403443156173930630260282552472273063713118642087146462991882534644509761012430755553189080725247596315322214319872397917780545439669012278896654688602434295607730603145715241083466435019067056394483230561354081901024673784003984202129580184829726342349777073745066861968896128481162633769552724823947511639442304928560804069277686880611544081880945488631716420848807089905511585930869118115957416007705324260254183320127228699075885784482683447561538932237443487020140744404689007299680741615556119667346175554402063179320175818812904609270136199356658640176725672210684913217815480735727716069233929183630814689362368131811937694347636106591435745302376412519097484531200630030678591661162694868526656677150351787103074693360822290120532403594278053535079369198718828960919057143048728503839534113678410792092235105677315972940774167100834762897748217892503586438029983296889567144102420020151484904521935724809877484340219032300358915988005087321982586634175158008307272875990249946950108455298765265899331652874448559568984589605223010166979371863719392201491112511915823552713024121361398219300657144764227073586655247006298621488175501309968590945149881771930620096527698518933603596750848948221706247551324513224039389265676175469407473844372823846361182801615286311558502178217331948982756889460035266010510100200291514199444717443783815556518353504453846873616646639624010232127329153499102949114210984986204992794863547298453742661477689784509306269048460828343642347777174186715529900171654674781903916652385332374693846712819467025015038277253932562232607877671257817907668833370673181976669414298112863215878601896781937767136635576252689709855568546239914961961139565954864681926026334923836164316465915363857901659114484731478431807164021122849836803195514217104517540332483320989419930595894031316079106549806264514833678728156860769812718956967416322068391274912046067841429637632481033118020585779414904315477906465060594157784097126215132000738975430989987687873567264413302394086019873988138178580585603313944241680195354125674746122875322936885632794357861696165854442997106355968067426269967542029559329691478906527256924182421727041681312790417033883802687877657574448401768254644847896226622749035730304054257750166273081406103850040053637686173579957411557627417641591625688223359719555335093950996467047745403689391746405474071073018124172935773190642170560224916870826948258075483244466315875542563887698606184874140166206555762009529310699002206336274245213547628288123022262489807365774262984359303323187561799864375570401636695063598997911982381238640633350668623158408253856674897374343867808300360878238044187111765760316733731056364764074406815712823409368159610590365941722332251265513138180255151814625351876982963946604371263062390413270333326502769906139291346386569778288040426952311823440597481578438670410744752100384092038538291033893051755174818357711355503290015580846715922402483838222170679784218265419617230739165977799951513448361226164375284372446816404312498187924181828516471285916035661833561390132160495921733398585169963080861728623981548421782727998606495113192043112206346725456101293063098512653182857236079104429926402222602293468227461243592854743060045288202703171871773572921787229464596125055797128644558193534822526504393953145744747204020624460491332425373420778645483111999278099852354622806928144801553367137059859994830633577343588676073738426691583332355243169516432492015235732527428035411628725801796830890246975509560148371499262660527782279516289714394686081273904106138888029890304149869703982775307974516791145610206708537416150326571512511989079032358516275149287435459062832280732205226673540623587059052957804135974048001485990478951233452302491198944959371869941800740197802075119764291696571206381134605624601919837234903992314134645725276484405026664459045168896211278281475654145416056032521605003470310719277907457395493780859082750706682371135883891491477840332976796394707752980251480581416012132727692948746661153773433411669994155463137912517715028611674837223915696297668353183208262027018600072304860681689213829223512390997184684472660195530207081400987677132851595131230770552599692137249368055059604966398108279637564551208576679288070914597372962231020376107421945068033565377173686738052883384265499056896670003240117370654902396897732923058368978972939449679339835999129073266049791148713561294092162356389873541495183583883137424078777170010824708928300977748463078221649284158250940325814905389191452041471040963249119437320797960114955837022063847109509974514481239484789238814832528905799393899955341784052042285407527591395805208920376741323858502701400735121938771281021324612125937996668030625937536483069476015095996748089736706789289037597263074889362639507403038666397268843649329953440490688038959702715754078217895082537895037023502550322231251875241357366849783256901802222630997440031160867108386526278512934484895659247290842118105134241254799756515266112822057263222297650581442765215610278587437552207427824247259478051222277414953609648909483736371066638027657834732287993150911907015045029123747360484588688919492203896967951550402624668090611233122586705777418300048229119419713261851869040592663181370517252645267321094880738763228411199175449773700797652525670003182707402569786488932914440909196581893213794122683872572566551146213544323716141124119420935720268552159622320871232758027883794752087021139638848535455897877900542091671302715447131828928259903186445427573109270730854479403455419680015416843174618195873360017375697461139762777105020073942809307808399906751720929324372877601394254609506599134817800995200880356165006035178948420401546179233574269958148560245338295512878822347615053471776428236865356665833677270819160022894308775388618668404190283761983534997794565844440044759394464719689184094586559844931494366722044857042992452217738582599778067073834622942863840049428491067733737228710810016312869969905629775912873740182336923445749549154933618492336750381082611514943657598075620015356399346480729283274779774816118314150716744806299487140750163037999541041871008035436318273635612908646328452299939053217782949447610284854560116579572358428506521272520026665168942631677576829406591865680566374498655794419828527367923118138824364463553892012934032762808537237335346759696518537239083846919779440558597344079859532046676900654523830682314015473646248924656713989672704782738432686752306030692119950697493310540369316215574908359960701799927551856974848633572407094423855872909774653113256731590056434691029583035008359159870036372436641509196072107340227141612988456357070290241622100057110954885684079512888468756295082725048546562199386982361901994625281258192067922925554372271073840549232515129735508687358783936431073300351973891395199923593077692575145468295357959972039762889788976967430716007078929272477530675888312580801957661840544238183967754298645072598682508144618213971026690778035634914817347488159002673341258429651316542881161553819119247707740525571325923745636177119392095693863883627466171168106646216321070175490578066946843455936456571015070812599978217111491787712977452230153855646574270099978050792470440483341915349214227287081080790066688552397199041500552846815997047507492364879048958558320933695759037002714195676174680958588942530134057006318934871100939775866487637460672732969839735975737979546849322149116623776948866211178024450946688141138851994726593317437921869073872136948846190581803120409310360415902300110884441820605422795639151366222686556945375740101950960704533433747109793428372685862559434414227639860939790863580687601182768335210049870637735729087263525315015842496170654616390867769624379275364366139729197172408377003538141825927045081187893030942668279898296086048373926677628601299442947100972614573389603397419660329235409126172426878563778720894886135451683118299665997562332417738381659382325652945040066313661692049319057339329802729948465420396786067462126004087206545086888947591217985788146855047525740226080675858053336876334691290703594964359359839319267937964160968150465139344998692158709144160801874785010162751776295990559950480774640942244967097501233269477180802187446539356878858599115011009646041644730869113054581259752602931443088962629208611104106884906113549187420440832100322157479362436095227768071821395642844432969925512030717196093879553132445574560532732208557141406129056737485237739879881870178969841904288516584185707217006726099483488988732739023890038263451874602885659101598427979664271754076353507841128602553591073050922490494615030479644247130445865998564185421610310410325538794429906036855674573945195516327579086637686650365561638510998710646132931036315193106059128006556066789576791045072251991561810627235324570116383309484777682452182821239212749312431287660946363161536886780673071493074941141171116479765045616902577261343415497913416274162606955761467672894992038539969478742485671805849162060026796618785183252092530686967242915282226016986635685599603246725202921303835303084342793055135936310059438864151224629472394427405464385133230358241573621899480410186365192226397662676770851110969165266590258234008829618641457545846125512335324162080217921887063496413378585235839019992320160265331408487978816511810568146933287807076445355795774855161297482351819772057615205574029707610795988281564258953801065451353371365082093029705251994531707306887356007172044277776214787505736476741745845470203666577023031031924844182141776018551019804431253133688344225399543821955915471251395672580586948191739856914078246370391705051750856115592937681564984983156077923972536234025619578401119800089161323495702286692427772412283591576804699526254981757876785319669060181002316297141138974498729490667472552147031343232752989771718366150867944221639938372314257018682235093618726427546862587955130291621959880152312494141719625921395877265692147169575542108005517426367132325826337949376385795844676782024565826281234037985746061137773136251283587607103799535951975193299026390251627674234213129234167644869145402899371941140332494796952081104548709229146367966680888488799540523795606359887832182426161132869342040243071223273111334474911322576301938154176823960809449243721764301113862074342488630145830479058206357877732250938768785182189000407863721510108821521718673788440626684555777445785123048769070992049476611964143802558091640774478457893014113461126464092579636008934183824008535773874572899181563258911732626718940699748644208348851672683682479943752477143917552487504469300882135547741907673413504627200785820194042204491795482729502154719311767085316876155139922546018113182972542806131583110786363568457122391726871249611109137461341989879799859842947073493732460854629479876188701934840601784716129855961246304793015738585974855925841324135915625661499846604714418027946948368057771619273748373724339318021529126409637269368271430993912649877991509894194813363377304788331006748515029945765958846388841571517205690993740278667820453245702583466757221111446269156933256389950201102443979404289877083048232395260932871266934625270880390426293025928334174233187383921280889308198463911252533521341189760063237276613695060182486830901259492465595113718741282912795835787287028719694836602767914002458555578585782118064968971881569713438173237585665850847676408542719559402652438056116858923377920971572076683975668097423675078794433979878547907962192955658624336796340076129780186040259667226674089014513310670495313058125126333541344736462891563936065215580088926845482605741437387565263705878865140801645923226677137832946762682980773687630211254998884440967188174183100115990622055959586493156338045650399695709089237029248714336782590180508631807233935432477529803012309769048448609496394832497272533821443545603382523260252768898123148616743175308729135432447340266014882272262258352001191269367237992575319050004943506115459245932522824237771940539974924402804126707769022247116718430485204812947833525272944342819058584850920994980823602621888133555041422952388055335150163419418005816658447757562851889501893072518270643309276548006091643526553986281432391663974653392278813952113278880491875326762988990152530594699836797070588171971622873828589645689111559905745112477282300746539910722558485687699288030415601283345298452141279790021462772984389288904405820446163181986856700620612077708998838399664231004584247877559886765004579852960537527506251062734237717804287990830180179579964125323467364830945802291581790687643109325416257713134773534107491918640718724632198360485476858949967880184751265485093114170381281449553580646941053514473575097003730196345824260016301634498990274294751499508259066653863869600926691458085856688249831777175349298563110919300273029491381410659667189819244036939762725125181483848208946181335952211751197586600099813627383836250389675686052231285860536848729380040309334580131092323020483809928582170007838713122050481290243715513717029524623211071005654036350087899715970580407154925974692796152874903058834174416727568808914648863542190495521163111457150153097584041647713283433805605817460955511179590369458433802212543478486538478213178059724167377735412686672891797802790326828791255837003760699936285663630687940862631615023506041586349212161557458983757084491719243775952975570190823461895292967947501616568064908682421183075574336671157023779247923316843494472327667463028662828953791728627572849547519303999346683561161649263337477927298336176482515270610340339673857119419309536162764572595487890518202126829081078747875209628212209382926405602771153675142440119596429610425936687506084420868739537939596379713659514300404327240475001517430827431554591175254445367548570336590569125519851936753887810465874735113892850207244145223805219126455461752582730651218406339233817228481031601864228711981650608743558574477159214684474991308457981522734690167198860599033983499584908976096372389502970657872566182668896486028342756129355312906841946912167193722040360865232032521696795286355678475394386787032304827544704297708293322819697650674768285842808124116368947448675941953229996744875649808148870227688632044139376514499426483980901481421926082898845770669472616584151386449881268181112191886873717603856073954408588530688721811880884720038997019472224443171396905274610018686375462671133156913880731015358381895240311244669216767299984395702192524067305090293744925227826656993924814199620037321521141282002014161170767851986680363716329272615252433830311250198272528976624172882252357476503451125463839403646273602787207570259824331449885423156304961123580018176866446650409817540242032463409635125427874188224196970464420179246078140755823969348435437022595182924342786400015916676073395565082145870715798363973807134215118282811432974841943810966006097656446315136976695661814609919852086031271230384559397041569815453354685466721142249914964320946297626436110962372527946162321266175656401334557427848909732162793439862134611901577769419722741235143168393223431316333132394765150071889939816404324922779171953481228098943808845866148242022834526991833920379192533848688195502440757665219710325324850501148297114997557470559852673522393152415408424626153808115835760677380400115261541407989850868409274457764499670223609299702890739514506196672130487381969796394608168503639899556416756260530216948669844567877529758065561926273727502385247285272947229675289797384703655053636801674105165198746194455183709969196902845463871558525886642293554325629818393186150547312442988750586677840290691118887463372030442485983858170506128012255983700632276925128818181656181876420796494567505511575067909617085785862924686784779193897628272852515852119981431645156818952283640141137421157365808620644516467894314242767200917489139394927432734700416931665663342537467855513365783204912063420085243408515451899923319159225198021267656408286627465736852392325019825180017566447014795072919178866854934103294741765256841616492954855134928088328734846573778654962297263203405853518702801894839840230725626445530906496998236821472556748245318334059111638678605327023552040965670562176357618105052884882940578245959211927185442337908046648757440603962167422656795208622699393377875325522193554022799857814968687367512755735718082680829022481810562655092747921980517056012354375493057239447830544535032512868502332293996257838423008548997330215347433050513427817309469668529811776630270580461734064560132636443834292959215074401373643381148810153312471484476898562283184769513365426821936336794084200284272031966940058287191052592914648767431000878420007925404043090747223244186450624051328500997909680787610975810237694885578934281140549351363615469392079431789832286138118621411310951175401867812581530083170656843790997768421976414881204259933893722840215911354109238014723927947161176087319085108213504519157643969048763148538057872176805309475468676950381235909104567135278381836108286461900298515315155265634447976253490097972623646689902107992193274880054729382120228727959548929458552640311510991226603415958730514099512204528554627367352537415406375132999948188100867894158005525444724388934471849454582069552667934607248884834522527773190810725321219667026470098921314694430239264636676446148122882621647515740838186875117742079404873351625691648398316768630895715185738512508007701238641231718355456635886751081912948960389351376077946828402371601191645461862734013009900983789387344106104127349367883450460336878130216245216164713986860079157766260464547567732197814582243351569775747735554101959362980254736311684441355186410785004625502542329963106897320017240347823828278320904951287203636581292129490729353912099718989548610071708425372924613411846816103281088325235023726714431702651961402892627777439492104753215542239345890879129416498553544475422009414966356739933394737952261314345524485054715491840290690714809079431159399471632807362956828694650954161332850743821210534383099023926619097712740094168950454691293661507832894551403538582342970331939733158458534320388654059731273087798524264178185000507537191905563083267496834696857997915795240134993164228276288158780712427275607842312498789739785737744975994538121256536485494073514798895214017294298304414679578530158817069442939512798426946359144244105326971013907072891814941784362126758271026770763393475642121344891537918135883138142073503101579852555478099548961133678338683470340760097894165466577460041120697569745707468811225317984654914602076629946442812523037388819659150657430031914640779829359476785126771460741357912308442693968735791990054500376093817545048100195962903269993367833797869372738264188258630735730488849503343046172486912225159334076086335158106115533196459954911307822829832619898308293132190097074267124619559263535451296123107359899580202783174036298331318013380223067257582679581980728504663914271183384879817230429172341345635515076880973815257342089672935611583561994374090689985519857787545830433595995185010780165161013589235694156289576366583384234674514342848944039463326153215378296068634299794180945620865862814254399660673585908887267165983289950924031782379038425064042849087089199428650191383615739679929293223538481093683686758301236027439519914475351358873740456057845750392092739734729374445330303107576897157969315980325850250251103718849621568798339685724574392998256784576011321972386669145052240933878365327384042302724565357792307949310108107191930146920134404910933450400431065230608426141744165527702345795453961778985618075588999099387443048780301507760512459400425289958530819563374858774132405980128965390308869878971197891170691923463323130300796442044488892589174193129034366159561451500367901831061665671824641894694381845628674414489186080158004782961459320294412308770689384568672326253818692706254772002909363809726874746554473090703809968949523736467740482162729859434920135065044792800931161332441869648484904053802364437275569423207348496723793249970661866051673827291669384329814420869142293904121241128112278335460710142405662300971382436039582520343358430870629456470152096388400827676232442094366705530408292524008227232042502570607376363181649001227353058310193905299938292869552351239310783692331344619686468617608007505569635231756137961247111462970719795837077779061153903198281161925800661323331969822450355650555521748512015680739139994551113949836127766625004362470896858891397853024162823603792184041110123637298304464457295794048136067432658210101935443132322886266017159817328251718688216612485272912733548419910286150793468660478842667931896304198480399253381823489796592871077846579482542502475135248006891834146662282076875945797604606422380522148318835799471784948812435129461377525196992746519487424953705938320523398207834734116521153611508572369466202102450887385483133228377681858034983079226585792741595436796363034326492346810196841818788521887298687763896865084335667445156621269034726447463831205221675051600043220891397664065857332369897886821523791188638026642283170101258399274104597685607491656696803026028605620497473555311366087691859633210146600965015868352928871316108857342870853071444849984193542109964991613228426257239958649308341623087073749846242060628473484798625976216305362637282305781120233092326179966671563340916389905615731500136112744256924132423048511700169949767391341957350023725419996505253681429247144003385762951335148190642829601075673065106832885552803645993549175323504956422232598711368562018433640410849636221847401555189063501977656476784659889640973909870778286183572710577780142957101298171327698119350087428442083734725919582176998428117913615854042690885760544706624717768204463737901260693259317429250178102555646109765316001432375845866547991662546478325579674763866319179075841770968393591657215661771779367092234976666729073481811099758241429272436375181858836580307279376193011239872452092121363945203235325996248132678346110980102465894633259415474806776398658190385393977307591021607264153376943836026874129071884805141161976754208464233682591210744549262105800013491097146400216883794640182807209629394791583828585287313481282984204452232852774259018329237515729511489638070642563727531965249087206001678022979136854119722665427412594862464659561437322905690324356504217199371796061012953550796474519863801606135875509394093713840130109207092419176755505132540778008273360540368247516505352998574724039799357649675957083485776665010485441665522760891715579896609221229251733335304908331982443961915619520267403277445232020613184506754260929914553636136126663334963231200309159329379821763658060821772665253784584023345376779964493596990805462338592737838350558525272066294882912137195599124824170664073232796680671149763114694425347981097675285001151535522894498278311156050922990910016240845085215432730655567307268299851274577100429947330341744359545308576544218843249509844288376722259922633917163646507396027989119199566941918034156908939790163779554574910206896373047841600639624664330958282539783916013358821885660439675429210161091918016835437992110413937735083716297518597627935820686562992136856134040472385229709020070466249647721028702320164851468042322863762934509916881686898474993182479596604321629777836494903767661774354920195614047880364515395568354449926307194286740276937577252038382408173304082590135075019062008864572605244823315075056859130561000824448527082685444003342204863059113503773501035095878614567135783139723303541652049053766755345332791461146053693443187179843205066182725473167083509803429433621132851234037200805711768852518503790883318818538128846856126306298164378033819197153706004304287535405268072165723032831699356944505203007721775539404719175088663959949435308696008492212048743695836822558149157835111919496014318042111293431145104886244604376428740594341615400634783126453793687514871596144948404583390253909489537919518855601655107414801542514310177036722938222562729932559391622247597995836911747986185536688680915738682091441988992567331506041519395719909873022302443027755785551440617159851424106512733599733851412407203622074908179883325392848438717245792919939765104079895017802327723652782169864866889907426794281638830986124070505181791664135785562297778961307724539479805986003580991264145646194452284451495133913565824807631917909675971209051849688114453866711773039245262461029659620218882874764138480332401254893457775236058782899391133414289629237745351295638861731062133925557079294926324430331099095535443615783806037871114014052237422709885075049516727217310881890338222383998830334263558276909352726476024975687400711052439898268429836972046201364060938536247954645416461813072106576548634999571936183946848096162274981971836229398363493575919908904100220459051784897633568944851121157244284201699858848571330455199954116339511497235374625851767901177654844824224996391012270709705499094898936477184306793959131613601849031308773640079074223075889070402067508773103579205648779366308510941750039520317455687436235844166157228106421234876028788445300239967588616872192970224080231018999885925235285774534860784004274240793913337076381377695439807202062085107142097835646395422496965222144030234680636500001074897438736968943846480276862568721516781889053642723975590305208032509522661454634648795184629394165677891000884382322608016466800641031365096482051370720981165148000025346657334763651871379552088349424356394801409020234131018753817900388524475206814297730667288409896079459810013838045051078035037551138806345766190300016449522315948635777969076443044653719180910275016679504220964032692618287904859819410722041645284089054439831245977697489984433656340297020603630723405920450730443996225710376580355408174610306440490392208902535518220463512718303767313767839908806477478766485530596752230117681268857015401122973833198847090924504761948373098644271797702300865548005455079973873318442198492937879639386791773654555585956039335491390484863038955349971372219493672353368343620525486834336559497610301187617197114949101317019142765562754950573999486490593931240073764644892004225714953328918938116836191190891930209007689757760567442806402355491132683796575617171966468781165603692143875090930950962660471968282022924552940913496983452766270830468391277320423200652797882912190634254334235706608008846452953695735021416274354441347538936727420335431191752774649156204137591269261406380413279178244476497296866255910106083227770532211028955512984815018418437409153850522751669105726255249664061095398869644172581136458157053446250017587103286612549920790903675461710093265835669849540611641810325946020475178580168746249332075744667854547440049312785686318775826653540597681422442862181300535233116279376852831006016013403638215097791098605149629923296307566757052976649182879345762901548805765142876157879348411428969876309769196254495338276970803786438343211248121474909714913013070653226440540816788443674865823259962388168534998209078430885143000727865868476949382922015764583501954996119663751760786332839459201001464433671913249429661900667243864327129127636023992464860068827330614005526444925252173803438496657899126924532109889976019701642628748200215851607880614649569739366274651517397940009136884222554145443952592300063148259878283178312960378469594114117229007617599786395041570864867341021679048979884398035474229072110496773875276442069929694297535981546974333829985931421167985488990146618824424676703098260857171310921372567559141168964021800834328072730179405951214212949930272126542818410187847505403784607384190091761863547341345604194441884991156017862756487845750048162109528394725733704399918495335833729691117296173268479471489875849764528950677558990651868580256020936465865827107625318629138995516288668720159826727802811123988363750278752273598375643133743356687816773145900326649461987228851386800693378192099604048034479198865385282100836175330655106327062004150894809853784133534721259737531381343126172531806358805505989881428878356842944999401233345448123674216202516375180717299669600856270418236359494510785980880286907793582183780018113855377575357985308878367095772068257172326265278788432669210055266551076814263745577271602189352041206298490749290819704804170686470897113530327928787807898370020393029989520989193622710194882401583504924679492630305799893931289046245158972030549225579906260797147281435366618973843732113556371960209544885136799362421483523236888437454904422904928769771921698361599356454592715090552087796428185230858566918754897118157728573085186784181055563774585561580479709659714495089378039314660491878430718328587705678892832033008889865752365166593832813029206330049508242917493155555313107179296980563827380686367684314608909928004673439391656462109967243714915248473375810845887939988612262328297861349348217028661798083606656933791792830257064552708827529733186949227801080782085756469513159145419536497869078518627915836271644277611351512943404916215690353878450721896657522894074285819842181592212747064491166952061447618312210323987861140090941624715671656590266001640127996848719215108002426998617143005262965752747614411285275221407546767901326181282248879279716338934751816521154752407519354621175704740984338385860154251067467063804763165713957060425679314012645150357574750765614267443354435482333786204212632037939864228559069133466578129245921993017639187945150395319692595589141726260673388496337418890472587781528654165279544583974065062006970575672062925516336566424098838824799259973245841246494198714117749579909999806132306645914467284536629287541507813296652495164207589379298647531083510891989967708970070429920018033993897212836733793172738472308521711420809696542201812533784089967119382537554141195069205291564330226834500787448560505618027501973263646220923223065342297450253676799840035374687124311503106810505798052868345742464140327656008531309315902196289757973835085959726136783540885575300682335784953713626563004810056538334887038183876060882955437241054772526835606356095543445126102335308919495639996170340012758875205272623124599906295306230214682896097870177438377036179622925369017656274312407626820746531813091385556963773398909975431859688518562200850837280468636062213457364712430801329316491142370204841456803167085427653175429488313874451520244484630158272138435352551176772828661010860062676351079129929715141108336108610002569707575600567972906265038758198464160835406826459492341768918550043149305863218579737521781913828879994248701355721774501351075798601986240721184911185865627552692480863120499760894733038938364944737429452183824757096823965114016301251830917960887204016706327704435370533672037415422254398202391049184440233565168597726119432886116787097793379919093978065887038299301911884934882557295846241989425443232496689252504381098970078979709257037118386322902152738188693361488518393993008687718329990723435636219854145650235033577553505745765936745977074952739762509539033847542569494318574295721270174955599364950626501478552991664902578944867057592285242659048702759099414849834663069273945618135717343859360428928552773964792167605836041109216959026496784660502629236912166065446679341296648324866733272477201794596671128207607495610194114093299375215398595981941734535392295121504467736826311941311745256768583767918690408931050464381543838923723768325590999517203775866133074423434872815146201766921713479128103627945514127612427944856246484849517035523973825125657339599322752912168936970734480454272193702890798754968251910494779960829646078199104037347690518758836939817591299570810324103463064878869870375652361501602450807014322084584431253991014755608706523013233940308208372953075139804666048995387911223546073365829219582740626725976466322341252669122610083628177470467021970856810002325231423415005225792072969131317989557725052594868457081847202505913635103491561638721065634139591943899306472288799608663530221593120066884730250809285268691553658832161594043367687192347538556589041501813628928135141632117721832742186783781366457095247928698484799809941713593076655585802479171721693272822056366642335236866526586270109046254959345129143259672523200489429386659714067702074885735214046851114965498095059520950931035222859841570645842064523240000012711453110957002407529442502562138503623432205686947345792155738968895335929668496849949447892756449282886047703383759158529132714281106478475919362132640943880054601029949586498229965511874443200360724953312074035762885151300323670169636481220434062545306177430918957454206272574428526961127501879917099574754346171981748431303579373183193773913343918327838412071375778008991951713968624983137347324998731009518640227505890129329681425226557008677173058334801000544033590872502528542423906310201975926149954132763169733221087087342385693570769276754507367600653524744519386766965962770732029289093795215787964266297963323984472294357576178597934215557755121529591483756685038529063256356635634876629936184221510799171205264541484966615717078891238656384833832091506872417988347362304081163692673690070576391403953618329548742578501834673538783226694683419695505644097379637932656691766111605627385064210811589645818855274612685104685983515839377982408340428637197971430834719789289019556953415351257706690372372736877239367882993104140930798318983194600365327168695165397142200340681111828539263669156396293279668435203646678632292757621689348674345946649237338874923924086338798998826666460946196358350764489544707238915771816483222975960405704934032431561961818140060262882573857916808091678359890133690208919802347066874300221195223802135724718700350496328244450822332178769384810564051003207911354445042232009810374420280519052936792087866068653065203757521962288109718897454492396722669883821076312388197637176268144856913823471265260463536753992569346213871336239935137487106654017421409890552948907800002828406773054661760958370637190179470771578840307595327921141010352646697456718952328953185355601577880998379558429717949440711507374188771873585555689416145682119071920293096502455230064098075523179543873496258081134813441528351232842772531236750674837924625835718389844300727101392887811295420659212513971827406498632223688139352381288604853141972329817317532823714127249421378087931613846799230070435716423733835814388442147889824451446367716905501652768634015596998945265248304633989053952561275324743255194015002359474201902854956562099725616548922866821721959362073415296457269451426669870195865540796562589606407534212799187066253226615209881979900868018413014878435039234132783674608880629134719325475853871685801868184428887395007298791672548390632920955380424101050187523250012596308522866022947430441183258271173975378948009107361116620742483487221066047746283499851870563056454368764190300220463738280237689184964051135232935833058454526428173398789778102013086483044297213890893018042317843362548787529130888260889353598987334710896221166504287258730494558849362703703093079694994426920930483669615904461679187096808414321049751580701977091532236757724526031317963851599264052636773013111575717799979591138811365807679669892640787177613564802281508684409563547408116825646497752470806367904044426749300143297550086700136553716692598504897524026240268763191627406365231106548987010955835541660037500151072410188970155931662181136556624247336840862915274880408649261584561592282294974318664432353800960502864501588065800715918714546731691627220099771421592065654876312924085836968222798264903740088587499458721108181785767460299742649932044024671069753937464729615453352344525488285873870532750764748548371645724917702479606601083290679301885492887354487969550606734200289225257786168109857181148264346153854509425108007714184003662778607083912826295688234126631676733636939613703691266261349413251195365400621774204165507926918099807148596258723175562355375804259529981703360491556613991770118434882628657246338066778962021027899362623411412137650252218168813362525076654226957123486745478746673075161163175959716937572515601754490480167816564458321586375639199597806405083606778533661387137302475166439281294761093827429654410234601620525391997363284591098541899863318305628619719177270292243795650869194343484911976393688352339785277481463466092953146045511621164059055001430697889481168027889724860616436697867079586716538624979789249518280041701402114200391074197842933029103396956837171487342052450512170649177145617560302305883728604847940640686989607533568560971651336602608808725980947939987874514704079536085826942005733300063200854373733318676382706812936457838041013783614316176401451978377656804384331317489741875144913491469526094806679877179093256079769449827643996867680360618323118847607064973022590950212995138059570121353616375474818458299804292945278791329036393723049643696406927250372635663937915002433184089090689868641693582581850666762861816845937235161011976188747722861202137487924221739013516610348551655553755996216534233750541018283036791085159201619048363389536854863978362609228100366831577889977105472383819292456402169007766978786047704221115189469165541747177180534072831321494057175172154075261038129151049815332714160386939014237662950508277281943050610408568952010776320483397168922195807937645030677694272428310622914925696213657248701416313743796261148027778047059135724326182182376263517875636737545175211218337070034636910140143325639421636104437908710473615553476402567038029484957702458769409185791982178589822026593828147815133836049315592726942273178064610018652908920023102901896880254573629812083087671302224192733475646916433810935350545389615170020183150525751966937135537726579529501729167406276614200089911685178812979182621490734047058314291496049513860785630382727019147633665284825045430285572165733032325712939458631819498619168822243361240784072688539000226839179318073461871666764010268967072885422681848661013793628326577742645294939094988565587774176172647422383780889470649972893442802234264192143386163309125545284497902701427328921419861579980623563590629352097533206795900444440385585057748333098563694203218408615110114871884593785290905822811832545150326234767946574678645336769051474550893093796887094901077770674155132429443966311164319767360674843420088746433732619672185022958444637977732716394644529461550658052051304255773676752653009344608578158494134201545849309586760524787502606911487828443522548587271538755026699526807628574840024140533005983416880533797768396636864776019672622883144969971088930131967700854534485073821702422087806279204658987394080939251738942152531418233209408573825385286438656620608156798915775206133548658975549131365563370435988259770913294748195854751882110335657417691348841473687728672718185002445134698927198260457661229003237490502112661721631804351550263159722578170896845103246754336165961488874240525080853489534693316908715004852275110295114128812428956868270151036468727200344232360022151819145363336532510511416717169940893918862692980736944444765727281579008901509611101503254126650256936239515634537265226870356448805924527835565476192578183061331206079398308072277588177521684391947555620413545062642332928797176160431740085805635297948288702939528101777192959942918976042433733084721245698128512055075400429664617065186898549048470347239932089191106682832630814575781961067492472243609946787882006849390077110280405577804350528358008351478002625991028003453943453409400850064181638386827950012526940163597398961186224999015160089163176877036663145808722817082971679376947220053968132665859872661185427480632160437336050465659650956626004197969396873520932162308032082133255463180998436931709201955246954437694302809765090153175573534109917719027543402495369909098475416594245091395414710810683561589484876214384489518266009871577290167149954017584287376984701263174744595464516988856092316254613496426589755922697552720122565161971251369727919556198635784020784661725034380260953951623503863182857046323010137027422778531808373325096057987598457694872961509632863071151176253330599003547605996483566952492268107775646770525864253588687687649138578391029530867148118228509281463243316190739763868880739819933382253952915954485029221358370890605229787319600283950716718059592810079265713521154278678935862845943208108656149355245363136920267833132893926148463846530764725681729647260734617348366875850074408382147998883984459379645038840053125325208073571978639416284427380862198579774793088171349088689851660143045014283699625396441624046540760028898574492455950720519051682926432976865149979211784211644506778283766262307846150609329168489878628050808814662571358331661347898025498288545270600024594541408559666057918735121924083561239678058022127214719579101880384376180750868994804097609272228085512064917594740852674286692225218695789377300077556507571165561285817291958164844351088824544035342706967599238078236897510104584579175853189709118088622270797497542485860326759891667322738615876126462399149024227169367188586729448469933608650038362609418232431687554217511597205851909216037178616178895927951309838347722872732039977693691013211966142361785746736868031421727084731540922860074840763041818655404089082057366193975175068212673471579012765333483639544169821567455109264397917501827549226373540681102220189505156407564600324034077469729813216230098063762052124883200738944460293206442290138601099817551935567894705790642854208616145888237582573805634509935361983610917418290973154380028472769363810666670000661304295555045614693301559922151652632742247380418632987992113895833595353248082385288996788049840589242398924404335442206330020573645729119127568316975296833922194414599038701423403236542687570149659958268718197657352485257781367915291211282163221425056616699932123426538305559113612475493086109068346229630108029372363014355889145211611611660175171703743843902711966903063224424605958783902667117627757540614488669963967048131468796911686800574530586623597952918332878907283082005698704866931117112903849841384398699263489939638586063827713387414491786251328125930342017328127729816626206382382496483948231471559545218081494691602631542993058485612720972273293142083364968793764733674717109324502984248446452355072665347369793169848885386208763589617992528421370903316045453566445658696059731686945539615317640026081987389616178537775104833214697464249856387144467136810189505096263837774967727202159825342980987451319515614950732865354445431380008164578710636061370151613329900255742977063925050650138836588385483110889534153976750005632715526268645584474215374197309982832697358591826562812006598912368488389340922041459042236242304645452444482592445931598234584295607487337576363950802020439119362218247948341706707752828937652978133068935043765712170942400542501471763689750838539806414830416262697741014466246152696615091960337560850461388660335456621058676441041919634354804287634148148162054596844625965206856441704414144079786343213589932660644543901289905577196062012315918182897396113210152576048403891506364156171810115077938472376004030523843751320732577184733879346586222617260951213204967287204678009890981582954287774797578620401183405545062945219676997072443458615027767091019834726018404980905499560605317947103546020134266669200773744393332681338587949603725358751319857000943053171134411017108996048782230591509488143292701843455975210533029343506918697242755047348733044594592044587904136466969508228974840432798208483133105721015732482658322211021332310347268893036910058658784065665640548338612352358024939372218505919288160038042920311131478946848321477020040865336971594725894635985104455349406106553235184105917881763078121940641094300268661088389609342994338030869082299911808838940702091382828873325912567450665872001306849094500266281866154364210493921972715795231952018533605220493136266793975070587317730285231373065640795727299277908087108511035695206733246524616871163963255559502144689430050548975206756182063942731458651692533463749047985472927548628416514420420514538499993302697493163943071712370218588432356812069470241052007481262177332232258099717877498806018005604779920755324131650618560805265881840255775481017778346340456464501364093174465544703227264709919026381520083726785444437669005419764785568452178839954291647597551893520471058269251111078517093679380987309056835063962442677407164508271015763592133622760982007138594852434687057724759784739553945066195970726933573935717931497485157717122670459242395708523920788857793308333873241574609393951552808024686632368257711014038595756955940421130493751982096778584645001318037841669306454643299388768671147781452513795895595122374558285695432939607893110482940706030669151752544034353733858709536020736834910543032009730471466013195038528824306632889595343625480120123498603648890442728541750744173754957299093603638831851985276844278387267518510618417733366683596242411968261878086540775053260906756131153541112294089420042588530324732371147766533731905524249244673957729040970625668539528677670603052184615837796031601881840013111599630283621880289628227108094160950124923573582278227680383929783489857296308764103233783567645580938132025551583763820074507075319910972890262019114310943252440339584417256839174119269543058942855508230977635185284594895071106235014018934100614281147330750005443311216355244743738096065267042679151239255581230009941581075108828627168916544168902603411923037809681711645389676332179353174874175445937059932505729599309532061469304340460542090456903396254644458001947321370350203941334184820708416181767475880538701277892804902261862225765210364449750630975023358086972500729802485528565483658441972262416555819214087916561914646775978736070081246113478393153972375177856498943474659005699153305021770140270193213618949862362619936082276362477213718679148013915847132684120249316591974423340821903083106746316030450320957041789393695554135206083719681762867925157942610829180406687631546896477091652708182752872258555402556356830022005829783878400961022727865309047543199726275486008912259241200920096758092549804212141172166802043234661687688849999556186185848008007725140142584694952975759334202980469670347973913367206636110258023545150810008003706163553995671552206442408887263411564687584754341194130652711236013711439206682618135576558662845251170208419029981659790332673389353021794010061218328545782496069004018314645651682620187207939425110909996251033277369674616544796463679229060300583380066889381447336672442293018382859378412134980558559847457547940309654706286722678646532285427049707379475908868764386229110147169908102411365037927933814926119265143471488971429536303156051588457144961867125597833603481331864890908422693200789747853062281525233057467515407934313355063998612359689702421531554841038493195364475517220023027267231247348636829862485233899116669211399718610331724209793519576698368361572001922709808438021257510838990997409033168997704786095049873317935584917338371297672438531850680066653930386604969075019927829866096321236543133194189417286680162256951387778776136748624857303780461568290461482918391844279854493087599399296573376865602306078400512132256859869697715322232454292346043053415162354835369214612723168282911730583470044164936970773075027492653663062006733339358447039410096437128447998704317495883972825258533095022618150003763153831544128806839075779838943689261882273621618719718563300072962768661893575626613041252571578115635839786469335307399329425102526353698236567209497627883426963233735201805470791926195845386251161380699162855415328321830324069396979801471836831151052441905070989288265264800964169397213758954849003803538662966825851455738142641775840981595752529693777213011349875134034235021143984872284668234434230069777395251163374396704136250631605683500809288945927395955084701608137937060833419454448986075379943820331136969204894362016352648121856436196140508187775997269146375591198050778291646856279837001860152291337448345537540024445833985542613293849121585141631760028210073362853613663693574321357139826617162083113970428146443400699133116506505224985457856805550680448414452373348737294547092751869949497561929954888719350685358799180814160132774901351577068548635360130005981712835640331989622141437090334111550277371820849221209890059676481452031996120891179851660636532497081769995722243687322710616014670732275753564313400267390115905945895284495316894815987714350549916812752465208050126668929536701165045796661044781841104296359997425555352205504926356364948526454457602367192829634548817665961102529890740491632568299053707851441489072444832252250097694750145575698127148685377233225969367859762486317097003491747515794034695328574898069426860354190859061815980744118217851572482731482056671578974014659965624848495010657927873801895143799868399798099232699776681557613601259275086120798594928788626559734415123172813587788732767183375953199580886837823253494825250230157163363633784951978239873990624134452728070362033859660153233967484659133022043134801775514739635254598041178357695028804307268903461067175442869829296279546819330424194237780210973925174274787325478302234866723099175184910546922432253989186780687071046634363560709087806300843698006657597380947894128186810911074828016077914816732643548958855333365935794117692612838162750541816426644756300346608275695055547987191100714867945790206040885322665197048268976373565082409758037638960143655124146978634254906281105452389254210510716920847189895484760926970218002851677186233549568433387530485495941552485481485639915235471081225824029604534541037924578899825533074555771554738931845156971744526787130071893557654957250374033426140046206558328411208217158356399217274502266373385345756295401695796919116480238656717935796459710279528004595635854596545020153599919695548331830721308684225935691044999304999058985640687930861722556379388344986245606049117089506045031955534161862826179711327414043988790502411007607510182200835336757123022761070230969053165384358616086286698456324258159273639059484546373633918320822433770225378972403895928787446415601734017052573501132705206423370178761547692285526923542056189933997947795673049517724524856821753186770835651218179294853223338790627727164312712124592302505431353563566802733911290840894039360486660399560162135242067521876522246784029556822671281266757337470237115114554640146488892058009399050292739439969086907004265981200891477163395381110505767113292801352421157263777552257671416992565043985862004237362505377582683603979115381921041009028071265260674854063193413497584353892449494278054542982380339991577019897970939303960697564646147660541170677422400997925355126708867618834933752266303692311458045004339977689420715464879591189241842674581965916194954606645574107206925976288679310191079041881467540854192712315899082033951204898597446565441719860886766278570348161385534266387838250736138107342538803082791171029407920707230311857714308101352379062384992350874366364059036031730888026577318291358759391508403362781619747790253106469724896711285649311469413632049845777307936376651350388688967699347301652973610870845741698370527712573545948222528167116379333645330660424801499488744157094014110374761500863023213206062632577886630452682255878729649061452195025651594228058300989122165894370570750485277217937240364275830400558223122017093710715566926657904073747684965668294287446612481682457199157611687408608973913108775861015616645662716327539311660209565369365537161766513450508868353872025781307030013959437023154770464812229636494277499043666601488356477014715940336699553114288954766975592468988305734944305401890328882528139686095390663841105323920364284438408899174852647298573388759705436829146920587100777327500075609880333123482171898956028456276096327456167827118659980958879768579285231670715645006579557048145560930374158285276590287894719683103930166566714865719956603702480700280783313794435705882945616706248221577281570150448356446327353488722409409226266120147373130035015184137113718761113043894914573903356496027117077056983534575359356223553476967344822491307191923643240297797076568917864782062631901453213583902275765736136609803881978147698931477594304964307535320861604012100620001227144568619027276498304324660041011829895105735788706679895368314047914817374579127679374625350669749633436313662693620134060868248038848033532888249732528316278342324204642234890290293517005274939400472431875084277935637748105823890076888795482874734299206742480915029477442360326076940360777127759654438681431442672544540102350751015314744797736738674475679786326683870381367341568514229305443178173470319943714853659664776894957668647510280154554838889966688489672232089442216677990406387616751826398983219782444946502477232953164187184431914757782518883392202960683417018506089475004426051802369453923728211476766878767070597134958344953761868664071428788306977386589305689243940794298791149288577635308555803003503434362789251994171087629320382853036286451813132037637194085674894439148913264254636629319866748929896441044577848057574194387826107448201873257837375838209603225621265803893646154644478677995337877175903979080054923413689142481734987568598521190993990555337681208988367388737983085132349266737830780461005306395140315077782874103492977293620422937291047912340448604480296175763135163477293961828911403069025291318812258681299882867931012830508405642816795528631826408418561888470121066564115508139860013993693114627479924371686095306523476081578927990591001298973983563597538739177404092358671824091215802258195575817312284579538072017500221435116828718742624059664621771475266377051964730920727646926764732369869008226057107288056856370624122084366994287117382885996923773083202350710824986503432179466895217749007059694367690688988124732723561964565004953367462389199814573294881092647034164690743242537830840819416832861547171479253318000531940230806224299606255442464260238653293254149594840778718519488013646574473160456495267977269469585767000786933250031553394987212268330163997025978468956368635870548615846367443432588903499055220655336624680707682821817092837007037591517482035941729548846539645730888126843204984456361450014480801183644493262531230243787334981947008011004450757898118962019135255419815164622712469401526197332490793430655727984737472944655796775176125147270238726148177064207968844416658123814792911564680708580905083577621891713426020778225418067319849863662981867199650942454377634079177592936145436413096132611401066768600915672571941756887257621341457478590210446921046543969970299996697879394934116799033080455608208820035464892102650673799571164652214066949966721253368747365661702368483957925694316431477364560587209424760002384158521005986560038882126806017474249908367209163985401140129186840116252288074323136927004708259398754998959363536764557918839013167109241230408662018675021320925273644195501989723535150951503005629682254170653350573365593635154900890975116037709255729173298837060515660773468457289361897922027969233957921283563535600929877650201581569557248955750288107085284190359158837483061496663181184896774762566317883472264823780459389878968009361096293173209767329820597574872417871667428532674427739265907925059673977561974558402577445067804224948007150282109051163627670944458900230513133348761045471026935919711975967738088445570951751348431536201611534536632011713942489544537355875410690958627631710804053235506324380431029841978783091773438418381759468327356366440464637378690704612153674857632754166288007599803545029620059417390699212662347159345689654444995172575876685560145945079801396584747264467490455270343676844884462103649632184312726494204940493145788240202949392701188323439420648851361128750877332224207201653120668619813883743279756799851186978586893946282469091246437893638882381428338669110875619955632429470484212477121276549679268054923823600133055847783906034877672111658776241408176947289110801874961866256641466550643920497729196427799542275372940318257015305074449383242502911456508046630050012053515897978026408687233333204286730216999920297926880703588988308231151406528898316071540964268521224201112469460279331114689662448845391345549766104848958134024575687973193337576739612798075713491918808698221385430718204203632713052243228193367613688336447344736922024402603337417685784002950041096900680883714078886489616003131800427177615824329862149758787639880221651594192723098729319478356385933917838312175346668949665552108321632373247223063611621190646658571597928647435758943411417337311773932554724293572205470553451335858883612013773853931588048525055745061212198128488164524231607530021877248865631344703246125492704044032870413955371152397132062439917741461986250348029519173699986672705084495631055166515402866185375255740890145653246338873449127576618071880486867913144465346164606189492202650598792467802263585439350438663052952271085034556381163745999468204547142511891688096757787091980602435755543217176806960662521024100866920356685211743151962835419649106129672760070398617124810474395134945242348899884259722558670293868320403097715621694617065604699599974120490933980951633470123259067892008380114328219499207561633287029291406320481170040537473304444169682030098585543303350283289481483312034345060647251734587746050474140485737505822429206094703953946542568754849743542651302344288769440046143371246140811531453964322509625063783547313462797794987499462186819934340399259573675485745181418206459611290606717010390589229600432887710863763962974363548255974439375884517037650341438175127718529893471526549620114725595295286374870506902138771961119669529879732420210402356994837916609791222944945710252045973998125214562801068455867953737179236884782540742745257360153435931663640966756513418382217918139551802431917884973335336047639708690318263223073585166683731504444025875468465355891831341169017638355347435359729375796415730958200069632523620697898170861456504605927028761258432935189632384390654064484506216079491197026004264328061031260387983368878212051725620685403347814396242765523595551865730322830610309877294433695294878894590982490545557543185220799181466923589924097456446669981056380525049873284120796489200218724007444043365373509849525034557412684972313715072190493757660124212010036960315687213968336657140107807643145313351984431452747970418459957730378110588773857790840076726004374360037521933072672757213631499931424923007824889691808973976620242358535287429325471245381562762650857835654914742411712231835970625205926790056408049267620787446314580323511056958729995188431464051021831267937858874322689445418860332594521733234307752978976568969460987129870041658695525791402271117175338185408156885626112424557243691997099427341866694620147167299557538136115130904435042332158905653300263004947435374460710777456427399854162779823135616121185304987910888813191138162769908913924183648695225225415586616840401793264012541913885316520386189265984055086455687966971005902810644123392944173975013709105398700008990852415056264039189350735985033710886273791190532224346964045829646167989404603047630078210458377324823370580576934421667650248007201446240466689007258551977044143636843219723017346783732401942434941916854767895678151558456149161093011853081487927423217940272937946765675300911630843028636516597794929988404611805884282221643925009534427430205695595523991742554082864782346626528719696611677706167455891759112124995074611255057906164017186568379907259007261482788333155302322738405425936906938401137134202858116678363254147377313289527962471714573723010281368195055500678701743348075348036233661250260072761094591775592612355909335002692865594551161142035713101957616231487719962226123685282091136682315243129542467765492175545870571499297096261265542936845860679649662684812427007305053888784213353943987054295726079793168847907346452284468264831541791137216712334380541591892246931033545781108233664886199726194085673611654664524404964405783095554077477044469560717047532587237384822531913963774406157519489350334012772061503865916891659702381118756182100023204181373571251992758543570356648522221714453942239705309760328010424481204690936797387483570418147833454620449082247507292147559516179774497294442868541548585555446666379244745383707977824355537196842684992021637620101090148958511772434901767829123511198898911432984083027594670955628527839868906545205131859206877639466524969487940018573405716109997049376883419041214937156455731815640549770034338906387292672044359287984553117506232170284929093010554110216178760662669115678776106072431015325883047688119745424996286190046071376938533300916188780151916228428738699302500312331689629693916215719094105656625160672595421575909349847578306310827732475747110561461155229807095015945566330385350682494355283642826072340756002725411699193024410382882144983301538900858728038150906678524337566820922580044671121113328146492957856841175936822928351724170743618428890282053082391092782279497680169170884099703448154641462990515740201568741350735570203692701031333172366547151410486821295696611991788954623899677313272277000507440180041023539254236345871889913856305755270910083859642130586199478750974715281574259508719802364457031524528508440650101409132544950638785215412247082017202094294426947966188645049372855618905006266230232205527417728348325586133097957187370244474321193452785099635243853828472968289520676242046538791869759898189416737889058314755744219428142155520497902096002462329092361946651034325954082199373084607026630742922682884776607085876693287691987014681815117111681545773777824005349066978680273424663500737346452330596922892802227364492373211833973013027586822932578499758699686332294434220596871978672182728816850657330392774856550784777829891366028108932700145389887258896270870137469272217580032901287848673851229707141363924309739175312553252584410785316296416512872009041142145117780060519628099065993166557796452950532288556666261600372088201011371864039940715179635381602214155546339831485847416296472484332180794481279555313976496622558385970585703506705980523864617542052193807063621031171151886223912620749410780428043894978881964318672560803773366333837794697852964176470190711293380965823161231555604994093932290322154894076138187610661580130933387046686264857631540372636326541064638807022603693805852305257390151686221310567329378045759113403134271889301065547630172739918976799663722573185639212349230540719757958641220841979407438336606602226661929442600798391072544699498463559800696463302099153107715994541013687519239233374926092239706512710464222143871132426210018703074715569369852566768780730921070273398699963621738195163366297124115317998826628393650866858763887308031137374475256897706271313207304119824213985197793697923461518193709156441266847719557667186453220307566236756892483972736007076046600397621730193579659113612838269750614396485831680880063567725506696616241581047843523236813869643597721537689419953383556831334095216327370571836788332766210972578053105271021837901067719725324672827232233631491465335872807079854322461720735476916414562163298045672639097793162846978393246687172751248649486521453706946960525408388015035641154478054686328464857003118191297674362876322487474432203165713495786678299595142934808372425207973487193155339192590420573164442996351677445493510111916358333998183796412269051529177986067495018778409583125845081533137394434394234195009807230544469033305637182296824904464053230124619339378104719553302489379414824729313888502395294382952727454490014213573909125397832404934180392616791759687180102690334688345679226063296366461316207516941539641120023287926868912767904512663681415563043345451296050211973629870137372033905230211867492554517066789051973667798476391225840337316692043584328482719113182358922112438550338842843159167383335791610105941045227930400557547537963806977005549515592633043728568850491267521904389717884871999000672077009361220211433671185406975931547226968434851358320279114218590342332641722546165999299346253657592738971883608333658107482407114046996338876415635433275938057445430893001246943465132497196800333234152260378789247528185694511493669292139566969540963104042027809109559185885516582444779086832163034317931895852130082495279926686012068370161517582889689141887978238415250487146715531036792182487062089325762317162077680818610097041902516335691918713859008256386290623067581180254646676395535367399657537956359556157309422527251579917420395332818038272714126630808021646307496084223301832664494238048206693262700229303260773981223974709359894483010731986156256900679020469757147138101978981046300250256140174705644974234458967126817394029202507171412373650804903213026209732443572256938142818634048777492970225350913378606157314502629434420121191008550319773376495780949536958463748294042677786176425645499311789090077793026055161034934160747144480590520387049713488104910541961631739083110820345879744982394935204099045587505481432976466030537803411483693717983146384620491129752259030573601169441887411311977644958024739374107519837904461455742060707483696121762694803288927539355174658738555334777431681436180080881959220894134407861985855928004801764217862087823323407659794599689642975679184275111183784656654142552363806478241011581368005914818253280310545496666703365290156933943779738445623738927502450168104692931921764150108587282918463616035350554423497326853891806294305504445708746786528996106800834660614705160161061208133929330052693881561964936421175192510793990029081905561423613239986937258080913014204108807533485286732095747001101300414806957602091297522220144190566481400006461352627349330876067779324040555367217412464744418695040814179208267564281630584162861807530200053914854825533120337278937181877311505148289398940647054151661664083262510972694543209104403658903303276731339971574879266891688116726737311126437095913981371363083273077839811350426070241404430544406774764236664358292189473156247565925424703296774860365075706071280372865032022920762035796139811611929024788223804204457049640558597974289209527533569706132683091751927849459394657616254641650434380868013223917971392557340711552413139063046676484969934255585597377520879296803124214410223305752810071527111495114589293022719476916467764399062057394982128644342934697034153092041241551249249177828673479950361494971866538545057944779496790736240207462951370116459739110234315774770772836266099734314784741537715165563396654732371237855246228399053522961317220813630605531280796889685819768889280447598167073880500733035339498077850469389318575606671324550133229274143330433116534816263603939777672819285771182303983896147130597594254945019620950294556093303158728101096182798013890594850543826958099547057337641216826003660058093505711356299422104511531524293610412584845071239538012394312991042847489895293552599835829925224307040339475170947764397454236343246383060276029933495207368668970713490614503326252655581799597411037553516606147191825092638107496105796970353419973228720278537024162607471689698806607217255747102911458699783887534538264635819959564390861640425964054183799485673747051886854342896266790231081702128464228927109758670631461570460399997847534409351698531016358525886219248657249539495109895128775406675098331829681607807037784563929017424467697933861794211609011792476760215110704932792022931942228831183771316931089338841671470721092205144175356336587133778832602479306609898570732947682138106272553419639826033502879345057253759121838463704637532218010014942924488143604082579267956318337017128708797614267687439181470726654072669615221160614772989513297897144868601108664868585977052356183359112219511680361411702503306522431363618595940147371128245193316961564967580961363747623953265187390286442156731943466948956707095050440012122882238634734469682694819265932642505331767513496788979180282694152645830029770657908664313664943943436441763238537529252600540532739360241946062970040639705392846309512146310992090167239204444836857998368125581760770071221990947870461943998696801013030728748484189286871804462161660640124724250118965492523965337603248731160352569114509276839843967451469703214269216645715955573045907398288875323764820941023207611715350577662674374326932781107140105982981519800415245469978440116821429973013390296959567007591003513044041407577869207357112256781895562657848268199566164401142408602079803702510550458862083930741039086823334814851352771151074866690138846167514546993405479933949310247399180784296463733382320135414462363450887959154959013160253505499963363668690588414656774572164434969222456633618993637451067818180207473730630771454631948001363758381860756795349910694740148249643577935014427883300959965017380729092829703181889183489091415177095773232646184273289397556145202059094734492925723534933960690937865663064409654459991977959872704804549827555961288951820466289372098418254282118259986639117730313079362859662074114089150203546242276299376263106330800817013288586111050942457524930347410958596239964250317256410806728627360848852012637729649661891409667410629282438019386278265208791696215863478927566311283052815454620649074628003770562016724874538211432663535007067788712494931961947333232660530088144399260097009067609717444620478997394110479484776617313400669390276484518213634103146055600980459307230654631286360189084870435724901332061910287646824257112914667781740653121280885100650362260914900099114516998127090727803241567635545788200118132365845239845685898410206543932424532070032481552669152141141480623181188786511311811956182601474393246471611154094949679806092396511073576304626079580061653563102445634059670634686329912867184315430274334856012588598345832304695254443594625685768165215583982264955969792416963504704870496239883966819352762014883434370172038676659096607699173724607069803677366764737181353741486681829829973867904724286448758730465785745812836986629422707762896558890428123722959702204061549008898888919861008981165636343077998886896963666468189071044298858531562876422306259618826866051855587044286231207274057147859361297456368838794935394934468592787508448355164939632985854720926416853334832358051240359724715503823206211506100885534805070058190183348311851386090868654461111406240374125278494201920026254217189516158609661364969485066384866367303638845445908041922003697101442233674620438473374293404686839632402700760174327437394001646736252117141773392464402070032024881458873760189666920182305169017184566598110921123119609693499383791250713996653628979519561270543762198422838879374618747265819809398639425344938622433119225131725986405989447600310341447156434741701905884462566881417382316022469210705151507305424866823853204749150373474935191154777959014027378203279157892891845486048901562543268372291082103694858178166134769789325788365778457195863904511292903299308712711013667398245933698150543237140499141432159290329143430099541755312312746799073394440007714046667000176669662836003369121833328832789305963839952432926915602738284055086885069320985210699427385934619358117693630889262584367048408285869248655456058894965214501517526186850625542917025814741367579890573643605021935453933309914160529776810195457182695611758412894297570300165539937976690051249196241915033556804471758164770291000477027322967268548123515745738407783925180386270859140242525125369884110565273325053499743446057779374146993940907894421491167946931329199142357478648513693498305676225548976291786869598463878402055381706043855436456026487786319626291009978777686592351250390505187511064151505809993378914289246807992105888655266431396005017941854490352228557873525347667280173052964783969137738385525459735173316895147553686949180480697981492836206777966442350001487611884515607065399584530983004112514612039332231244214563018714446994861053257164945734913015327304836711511467563505669149047114022825208817992335902863201653041292783305178682930209759872116464694158300180191748385243022736818257257927300756759723665406061569693389085895418279560594340835049086084068062487870152778542877162587946142092381797647805567385984301131281857130930966258268516004970427991774039792806699202770936501538399904351039357250831455068327708336655769595662128124051304786388436118865218901747833439145771873148306415312665018700808829382372009315685822081484530897744634992103268293758880341298080536021589180677326613105953134353117267625924283303654415533558095876495700180488030497234387197936077816945725635962526774751664962635866611713035138731818678197345891019251946009890722415365005744624594868007211349852465245115349806067620010395911113545733584403798406316263754373868040713982737773835481590948800161194754345481322606927990904387395976719027170206035657458538908106552831459325037890576685288672210509102285614607666107942318964854399264835630171477189564409833200367406610755467544219919674597289041045987378114300606080285268388701432418735711928631492601492182643997193938847479493672695877419428819629892893353416702550782597484745621695799658713332614968603828398890871531229559114172251119126565644035777036946397057600775558654682826468476256478884663601140173375114196991071581894600305456564524538482395555774773858762607542542065901355409637297848410716251858635916475025944485462948779420898785231083293216594787599760140301355283431210693149452313481045332043067521019823887627862413265209984062645349062950448987432455818625086596437456860371055041407166498743719820932076676628427226790313956735512753186106179444501595991746241383445663103494016477043391053149463646451087892222329965260750474868714803987077936647340808148923189842317331990940361513198869268236835921052015471711345837016712124799123191988231990987582598565703538954640110698624690618355787401880723356040212736257342017794606394565084973467845799691592080195803814256328788489479693741518775060909125774229972508156918870900660056477358296163839580291131230873423877456423149757274235698345150967556664434757965191992507158848080553903504742665902571574312663131312397217801884333814469547166312675623929253544986929490884706606527718685651295315751861025456281643407863402078398011381515559925455826978047768875200309188232355468249390955586536268786285015189484400620760633464725768387552808623129412602022339828642221970190043014848894952746350535420155450212913427489379657758526615154073544453580495338924122911515279011693805935237644253239554839640034063107650115321044964434328699075115842348647927534607436000875219293789825803647457814741992381189109786166465525410724617519431010282257997742139293229056597344967338196245634330962453813775367892345604654564800971541605051993571369636416935475802165346156776411096106487509397647005078194317566597298872690339288830563355131148723260145746610727655125161639839630739744599557352115662969220391737950277928745231001259977415814692426415503200693372591111956428793505237206607247057035029620945434445332550998806868479764347244092366676841091125197533752187203082212015402722875489360456976796557912307667094313077071911785835279099635995826665460278910618675291624076996026485803073484530270725749754829819941630521075938920943511944171870526775608680874020791036145143750999509624883209968493652270306252961703858708249949882661610476504910494566750130403831948285829043464078019003981986274677526080615565936506134016846263525183497683643988387594720899593685883837765812111095666125272561752738805398414964647764799599801275144705265384462201560439272742271464292304954349038698286211510453894786575053798445409558727024569286127334129024401979479785295338761022876927596757189266200852653235669225224829565136292421056485880395574316198360972298892620374419156833814806919373950481618290753031915137221296796555637230686913932180187332540906240784779367206154694968583870602125506800708030917285100942964529552451945636065485587865488540473145346942608834121214012014120191404606865040586430403244440289877943461456181517043326367163061862751617281108658770378204297639133631914659404308899836835887169070647322349592788069451997979237578337018808363610162067409490839507276512478485138711368764689633867131898628236097314526066826670171012963592679040913278917522787594520427795031050816239120411394385976052614464605552026757579939535541595032348109819120566527006514392286290396892380196640932545562226501605983313377158851953070648228819512393655887025464445172757161897871002637041926980355501610844462543433869549652393999242660797083332896509069857047249452408805522217122239176855378351630790441352854385554040462137482904827732210127879228780460752302504819277897592760786687749807785236545462990032856041831040302639331595760570433770597397240541194469665842126871150652593734941373212129781782522562493605637648332334356228065076212225193842648942693277360500498708339388116798684204461453305551429575628723626095913055980082796556927569525239966800723525781757352028454598998275927489772140208614559774064411825115129687730581414407928457590762937753620962150526450150942454722763900507704888329165824069362830847531256525662233648725751351778963614437924003327893262479892552371290533154059297600263595162552668790835053098975074141587418172662745741661459861732793219510082666900235150339394767388285336533680643062773646155828208061596480579191467993041873586313918739314241329112803315173524459623761461408943000926909760505823879354009550473507954718748052588093300832254441474186651886438913378909696850897207490966525401042069735167866486956397329395712292155583893956821194853553274291128523734982691846145151855961427304299674008244106790380558208020313706183839450993800333405964756723216565139162129510935161107816890811009539019084192116113186620183336795232715352704969102499323775156280389479638711412655959100343702455461798250215165507983158274800375905665693743942732003135107590731087055902887914871348826918897610150043534485656666719863772461493099029130039553014348461248408878939671495343860562324912900192644105148502713494251787633799528432899875397998709602312986990197705296186611568701897169689347793985334651825634469188997426240756205466742375092870951804302931511745864700666220356613815455030825903299025789623658622157723054174590932799823906856802344630059199650587769629457329112187164542652829644585837265757838958518300670359594276051440553477015282261483411694163406089846336999006986790520800344803950756855238780504426527343480027845581800995996083381013349438133064766405723978542967529094345229781264314817700734474948128282927886854364124501802974442636016416146843328035083150179006651409536646448001277542155744695417126964453221016775422968453618637545111087381051380191411450228249956153429780887912440536411281321075648517414318911595718141268254568375339347824618221672630335935935167909119187820447002771040247936859826742856343546807199547288508732686082068504653869277871630662684361159143194362446776111946223058252447401605981861874131694973324917889868392603986783523337346026924163460601858999967761733197489061393754747387379839609523711013257515905617046438262175153405998497222833311561816732196310132687679105160961343893212375977817016073847652835141033703125898002039278874944289948806937635553891193990670040308663361140924334487546440098267215231923105068476906768062698970555683053041662417217764937547370484634873952811350024560848165641817477681809282592128999343475264012199433510896812993628045721557006396559664650748411633395753818773112348773783752101430389318154749529958821273484052451005628643858255850466423157090720544862427066672346801847312885945090585975408950683180060111132281097813162911361699124871315778214255988873332232307072252110973347304624330552404349234340638283200767943730380907599896526311773589724195952030878413634635182004119343224586904822088716517816598742437109832839756700088153791199077160799260429721323117259870049239305513067782084900660344582933791684727794322801611901624293790866566698029025344688117698661747663975018238615581731969700687074430378573707674884898150357895640031142579231707038602078643735438268392532364247943502406226556397220824489379932230541169456886725310684499139226431077911936719698950206197258225761273382050657517964963949314450258856754401691915479660053362927597772325945627714503169094399656440960963596687814473576121026303000938024807403908578517667850930880956095917429113810582164932047668770597582521434853932655905671311052623589973328496767849566633114770114874934118975502632504551504896876532603063028238698278361883393195196219746530446584878892422028888451488280146791603699586810723240036213057341190225651557785264948956814071874641070759441048600394194388639550683931927113471191647960700659491625352281815156740876296492416060055682315321222511508224427422886380550762103831923455497567107637176025996944350196733194224168272382671965513675768774079080159918852260555272823130467047227173041013225058852014347977562461829835838449389562503999255266084564910127474598178701553663187715475486997857313425732350710439703894085202506647094537789573689513732126953677789870131646801739412566171863407184979207495494730856359283326257225898563160571865739058104943794700430475340221006603381772487102439090235581005045881755893051644903568019587781722917411982475121090868529126775687930773776444426756047972574704902209039457702549491533275122767576843677652870593218415217815605082282427126142714667447885930102476425712383084791128722838367164926659535783376597672858934114540371920963935429994263428685471503313068155870707610452726831689138066145580308698147219051979238073259827694440603565233921959568199690443562594129672199428275789646824526120298601596195441111580538295546269956229234012289376903519020702721275736142240755574820429584782890032782413423681519690741023483646917053010510087219977192546409067542232913544797104741989577419556977089582445420126367431278506519416064426886743011067640417148196499832220268949007906789435655925139524068924186842867968149939895486050879704042623765830971650833208883762536074445495380721973243640148337496301926639801735299382318926849495952706488125417851112594318468034116071842620820877512284336210592139828580661440803695059155599721863450575781939173921315486578633083222596891055163955188360084599516095642763346675542208728501598626336473080728511858057248962911735893540587904017633685603145328998822621447213878463865272137342889371811555609106520889771489956117357088966463627725052110590109246909240008841904530898311137024817787001577935508023929040528723217475698651680895432267647795436655469895004310674918273859523224570118760370709706645608261302609132506683896252436101549050854512861587681494767094904606079258543015575290212676199043911372755015243506530435172074714248776264407494086289319098328541851087391603858165991624987139515849167747396558424799379107480960755248317115128237286589111447933467143878592530267840460011863743325278544178257518506505492416813171370241690348372302537952714764796932971061246099492880905205261256321587684694218575752457598632823556395551238241469470392290177547143849964586297296194542794772645697625485147762107315999496933218561789479381820039325918054220477173631858175779441851299558705755698996455304009174338047042102205186739763176387656714609875540276140950830730875932779527375975471172832010083517543094781395525797280800468942508344347667573376315320646121950939421246218815168678943450829753171460221378980311829342114549969137359495790629824411208458239923490567669328130241550860946874680423103940046257156696572985650048889619937546974444134917771490639481866075240585196662093259532243076294711684667847287325717120097857570560196809986170977271806974667323877381368450861854407221951554203095759626618305087091998474208862667759084522188614466617027778177165866730157843257051728647710633835457452405208598466762925323663820086477894625250573941944319424717994586848696036237286276388263255569949471715690606042702983051717949905462314516543418650828489052886670944989402442872937282251506541190999065182385807892032405740982607533154521115397849514849950208023001199619590255065299414924640777126223054403376457877660530283778778392733616051129434723136320173326671079421573894502718405077214141993580994001012689326561534952687298339777819981080595193920539608994759308205174023334351630791989987073460751934296864177444467349430478831932637930459487936017758447140308365080380215451701514956059652408276070197943045926620525870595548761695889120993554795748649477553163279140081259780691715266446020539781610655997277787334275986587142291797336809619420489269647950832847152735840803251413303023075255287134267398546094651945122272857278075486666523814451674786228363895187203524012940283944221428850273887101054855815895800657560649550451163362657364733783181213484440729788562117939903004707929684447215478361352154349206297766344310423557142808670681445399625261400734471910499423592104522485189392572377697599714252615830578491938080997653382543089756971137248772539600607185666252748102854885853313070160719841186411019434590719141890721425987567271161661114524020232206242773750598909457332027796686084291511522627069291213120469413082255802348705025484656912036452439001959185688618884362597691731335126196111122769103024226962460550010421823257937690836101667068641455076699547155111128560269917486266788672499937646673416696372939687784316820266681961963566320279992493921474137319437361224198586692556869359051190012871410873432867612045139836105882685790633900371916901695598894828426536114292904560683469102301682275544863078851628399862002704110818156108386581944142818405242895099945564533213059500487352173718925637295412922572771675606867602192792560483336598536552801144188604790058856943280518134634164508210584089297236676472181283778845100336104064454220278248497235754656901396985447208936561307090678097619481217924979387332715096293975481416658909400191858727671450575623340606129277624651021082659036267927990926899786774364671731479877645359956814565016424124002058850763230968333192277981632012254237720426794633615485206587918077526899553735657888660470137382108632663710136421094666161387966644929294691956091036342972801621161578456089596638416525093469467456472334315737989617507054558394311529008940428838690379121248002958830191874160760051459634257755370100939343366721715857618359408422360522939309071877594835424246107891418772095107224842615509687581759800860884906037871880902537856430360253813866474965494019355065958263902351387516607422391569375156202793855140974481501478869151018126401417433977609084445151409563950795543886251227336704654579619715624594886729886999335957735336161860953643410163615012671504715750470156512503900899305628318953857514233336231418932347573481205510501352569376888356644258069378276524938886882263061592952737204560004152569577218149803634440036507345511044060865483921019667403124569118467306533608615253195612012977053296014741406829531115836215784022987413966749100036747575416833109478962651131121778931241337350708528324352206047404745779896635666934635000588934044151406885430092294495629228033537378070425756275791547993718098802733057874047120678771857458707033234970971420654712759051073998659714954814804433382032243547957860971223829162229567102160646921982252328759555748128504924653265045061258888373409350334521566726693023674068984565283549907055537300531245599753671902149681111178019454757324588447020657767191250839974832838457084631803920262805982504481342062089274601262863959233557917937446137595478937196090775962909788883393457406283506974071262444577849253799044289367809592641984825124935740480304271924679853365621300317221607990805569949234476661753764219210954366583878614309746295088264143611709161332579456223210412022028534899145125783868009808331637145951805640999766775608589387270055139175318385661108298665249638954736334218168189885603740160423721221779554395277905705248581601092731807112938610410628292849875759026795090822583047820659959361379667379767576317674032251769600305888868696713729255540340340340208121231612667118709055957954404209363808752428301241676690953622866115619107412856124687308263848242638102766023799024535648381568057694812829061379001534116796413282878832233049449830812485471509844028665716909606255523592638303756276355268988575517386197502904591602348785396591230049374431161004506883432926336441272776743754389444679072386674015981252737612736745621265831721472003627993791762130452887627286386346871960838674045093153146887588393792598681910061881299115855077008262382101670962924301435961528589518698547922373485642816782410625833144776566622364329829855285500293122995659297167655301260073240417021242868853588868528232001873316452162391351283442387503038371999715732428894911199609786079558510902840250313933927607695104684165787760045549338478700826378234124868713071345745649434631188118846150458376451736991987632615154600608051035052728132668217742074110059080495856404136940152045130892131031975006196830235161204335714432962261335037730893161695617557759323860838702716465767595544448814325919466061798733776481472670152397622958443867002259618424897828145148715351381754742975486890571251049511494740061550071399217886649252794313118807702586609021710560743006857066562436848246386881816476406779138195856213072487309438409059501001144385404784696528062740155578811202095439644869937762095339717705457193836499228432684540038505570033986353711830581765277621611588722447616215064988271740535647509510188673624509521386121933563306645519776864112491702088282434968083915350924196461271052476299847481647820026100696878601303956534651259655414449744049113041571892752304529464980645734116972382690679103578478212250707545829080054286729025495925379832679021632631751655371824632111548251029703152694027775709582143576320144828598056480046846412111122229436974265259644432620535740760759814629318532370314947471341091203412735384239061031554988432425576203323338365207176772144618391367197433467135604513102338018753671741238180075399679269078524081085522020501763205919477351694672624608183474982565084272409430906579222055244181193440727411300274204597528043287897510924578217269198902926039026647417002190322213634018929187224933219651143454398762642244031619198216879801178792207942093587993486272545983478521420102988820006048189677531169869980611319836845154938796973537529745352305468430103113691891663013410026115635809141023838417654070023478513347677761110456345247402099792476987081253081802173281140401121291057207016288352512668399898616087895278314881963086179451340052055961932472613295355222136629579316485238603402505901887942016810688997557413048242693436085212460325480076103528832790832262022331466133200778550565649515102503134157380553813813119608302112671332997715405418668446055684261819898884771691046482806562058712515159778288387839933861309785506477310761479025386464506773967820082012777939979839045285120179024934535689763451552537804634666790525271896627002323524214508479548806815863127009627721644123029046461115037857865824812000058030391653305561639432918512921363138171106114911942318341882185911749828377775556778174976588915795838741121064426797805861303248854448933560084742410373052273786499617691484466854106715035380868697927240489587353674195630719796044135860113992029616699583372601388763460635900823958936177838474727867228468120654727563953166704042464959580414059445463493708577191279158327231824685718970080673395905466050463548524400807583504622510269909532507678839337357181986168743688877080890190571066156160943725751378062782510664330203319543372236148498569284872615210370197331889649937356117134817529167316077105548397777453959451274224896663719026886261497570222277809412577922540804184522255312346243511797873802979344731824104124713717231420446046001263584465437289224173345026466760256675876880149305960245905262341155492852140279614080166863910893147174025670077935049966788255342464300284252393664807154868740138082428012943834405177141368344439370640852956813903621800069512766212719352867428113418107861325504810050712420880493102167549057877079876120791365228608993949363078343397333441137811428681951182676091157576247199446178999949709555870932950048887464684157674978388834976939898189618313717762648621450227797726104386158758001841336320680814043951526155675870054423878332796306306998470646851718040670427022887671259848650840600582372431346500780905726028333154323715259354745051764760127358433208775510774233776644467291515009053190422836966397811973686571585201689543979072209587973383928536211085942014866574663787887460940057614196839669573295769011712971316933006526067587456039717540215457293792086371011891871991932692239696220522041290843286051237996690663763444267554688626384313377643883515137177490496218053980924372899345643901494831012817260535627510802422063263989924968041890962281758511922734460234301760756934914556882136081831905593317557869832290865967361066684514006796692559878800951415963583625579034098146946326955319682067129234343619022018154670428642147513336317367386279593017996143680362332659551816276532198298889865097286915315355520141102203375384963317123971994666702405997701144354914926321324395947011460917873709276813203294945041248257281495643467307772628972270574152500248041794373340868092955369310849787214350153984936196973966175240770320112927547376815497612986312332685599512469097770198152783548518362735009765483530566491112406471399887151411189559610811253010846936135926595444094167159726182092574217150682942987154552619153600259137002473598757239226781614188762043695602927945012118433496421412963118673891259702779409937222929504049867415918928923487117729494782429385639677435490449934131669910305238141097539030384922118824475668449857686288853001761147416689294379948235803252486656497541785749598996907402682464463220314030617333849567014712434412151161164720451809126214744068341855864221836982043336708960218179406264201049117909250299299062045084749247882277915920582194638045932866148979100851101355883514464185168499225618083721434196900971597912697526295602101328758235824927332007019016852134315117434364052629539281577674972255154253463023014161464153193717225562874163700114358365987117356404406017606193107173943571018842079851466278189768382376755239954314261227689374094048048786964199139490050883990115891489652203568631713120408414344981393498993304602622930847527281276608509950659556318470561240782142810956959613349721159789219770135922218651946103364131707604235670794096841160582263639113442408048814678913766037736287912486877099907433153446226895433015118704862322503120466096333863093809366154936861586761136271090802446462925219230334437788177507046162841000997838347870045148408637667443771663880143507042691460002641638023790566809963407877359150962322838284045677289766953705953430955641106660453514785863135109173370261420053096112579935375461934521713228273095373413545530000800521863901198672999256860024694898261307363280399298348570100987964357733795146743759280359650110562622898289625295952749760245268063879626324696380928731573960255778316299785699145232486110518047897926590173231558279935821183240690583465337538603783933817515979333273795847045795658899603098059695750192502912840806097606891642715930637273157786225972922524653879873448581047928951234516678934739116435642912751889065910800801296714841701754592751832847268043925667897451546588956176821146852476569232626982320129725345564221859702425071139712273638671774046306152755336980569559549560925491661332795944065990602319020765286820538861612340722993744187570062552933625502992990168163371406813264271077884516768944195995791156379433920503765884858793586048520062224210205825718176409941667642007894332606073627470616984172741810088689638021818072997170879597759490000819856785867318054698990886323430294580113239123886674363243272757862457176415973029284579135723580718257255013111866554035994694884230218478956392683922647009656246654075193058728479203183861015242259638657436426932839656522260344017309550827200619345116874241626139052437765074667510928749470746906645069861308501721488708679105333571011905536708713278376612807609103399718213963444145959033672252767297205692412847295168478752591976700879365829488217466399097463499982681672917050634162377601237041502855319681202978934478429749372574942453879860355634367726341743322673203129142426894029453874275676016990355695383574942026607711717443305796213198029559206011172722284116405889161629847049697300011019105143666814007843989626415437135964842033170149206847596293780867230966871030178015394228311910790197864044918057632843463423187229680686018117403684460088549104097558096079220917228784806230318900708740830338382485007437803605288084637795518979471027327174267400888599983264862226258304758560909689973859817541343989765808840082278159981072770880218082974584795530941053646394294000822655750715349248866615337113834743440192147560526810524100767707686106022951152706141852645809895777945590695601633940160514286212324054974266271629094282312786595955667527341267399769687213420642042021390584353414737927506326475261945872567786718041009811084475363830414473624656789034296655366675646200105390554468440109645794657000938084471726249491809691763539193458143893736072147369107817992459008294173500685169492599276745730498006184387229018562796641855802503143024673434560449454138409358327998902110519870597976374944792683874135912915805468171751311317976618636366812391652105491872884456836404093987799819452897584044799934778351155513169738476255692712697118062297023747954891188935359980498426017740393322244601620222359408439019740332530962911556952684719220372328034677628168769610146024438617899855861482639154696633962485914331937196498792235637198924475881481521212795409475970075509604829410648582672721831284245928368072298024792338082100111033142955301167675125697399006696527670978403232656625886398427633594925085404014055527136463723391981506173177269112213137244682095226041786537123979677740366349447096732019761098561775207778342357662594652514505574192095498002675572291580157829030697842448742028350123023595787819415424591297428127347916930364697627637807280828772067308366081693240837259346464518262577807298219599378952430499435471612034375045666402617079332139279029236222041622355701765474619668558487536282479276282589707404050108888534378380900040388233269117849661261491423232625123639247662422253343326196102490026671219136391124431919704444236439112434156972025885365247693896547213153034292313043061308061602616329414043315516157419352741158119186948949221062014183615123703931685564463892718372373432268135536297859695705355502338288794049772624524104891774677941570610263497183690185672094041255433076819969256599569152527005025110771498939667020831848269853136675347560888264599982717032160808183067128329762473938063690861696968090238547236246964969276098284067177902678807566934090145913982863729372173924408717920957917293466189874734723925900668620558796430290023281648806770500241175845320251894645571870931438455524187198791641992164967665218078627495998079768008149226963045180300725560826829639543799383528818190527138451244135816826012034431509974997768946971484429863684548118861468860262885303427542816372427703641250181256499558933141236242880453437422331845676893764804252018586028330414859390789831296820786555063974163926974144347102774167103732043242861811001669738060358262927909268101652947611272611344143301218573740364788952148538550629287869358367882078772566291421303750370294379861203439293444242307450109958117652881725354015689731351164604464055536882339291366010379377255576816528530442517307684753224631117262742095750966360395908269135199161893045264781645361586334315928151496281873095033564918719614983345864403808408171277942399388427085085525415344978042453181816073865563543678904771807422813843825646365852703712618106766777227072718750340053730176514044302260459351048879093765912566132119869469659469338340153025109518329223450412004626350195234780319941703824104449192694480477639197428360853829487779301950766268059621489383979979085722518898400239381681290713893319268275673972616647996608448499054391755691994973288243564176286889797721803870350832206392584307181437525838390455645351614513275550823919914106969586800477721488558641951020035119815931987500299999337930594848811878309586604767098440677835106824081788941125459837982090166763369070686340136889792542775985748737900240881336675473960599389480662723568199269944676992505291773788715732237918038798853882278807375641014803367680919838870607107478807955769890237897310183128147415268873475343478141869018889803753384361633236261225301944061089183177137981318612868977633926551022470574802535030242115483102619075818390018949154839140875843141746073288290219719557436641323098504731268887214028325507011849067897580974314339334938690573443339657189796774139666223472809844707146943951383386473156568329009226049100192765575132464672517443003896337756103943313082557934870981790708516424230351493218819325623281727363998592238849724101631800190518114651431348208322847817470023932986847635940719524289020057008518717842725010033934124025373663544382840400923863629356179343448277916781549980850143036836880026172280054367082851353991583001280761179531583750553704174939876968659674839668731935612922897634199928930289247707192038960715327390881288879289987518837433138415800568401655230808853145848176592048845345823678867899418862684766356250235760603185006030879046717511342980889792974292031510220260374906049129584757372361460959151285926525028262922374462298592733775065123267808293763411280108380471781373024613031411137395458141803707239450819787721900519378151199258979990273059407788424718941060247310898639356836229419398577728011564261119182915546111337289105592926998904240603868269462807812158540220940347759465050566539079687711344305096263121286610265105946434851545954934062433624236115502727000648579427906024734834173830389471323265548288159423913073220480519688917338914816672366905220364538027458389251335831299434076158944857306543257703427645878562444458267219095758597300982674403248626084272000227474752578297421708156037472490728438891372143287007206082063604008374216014909492837138227992522944640669649411413507105288922223078784900181158779715030557457687625537627532171412699004496680189361946304069605674858314704262174952833650502365747727757656223950729215181726302906646659841064953945823599852065228342099881703512355687533011061893515711843304503922235866157036576918556203636231553409914975529905307191889216141011656548521977782133197334223522522587560398209327908228847023016714276957158146822455031425986516601257932363712079998096292580863978671083744521655322971777757036444618877644762904085803875591841882633138528408762048506603111795603049236980897102976256526198553769925275979569900365880078756894072487804974826964055944526030244083765689780224464601146371469975234044381649534888161832339216377099951235914204425012419936274471348728845032458428285464183334492093679841676442382750351076456877793072847079599825055230976220470678012839590499255059517794496629584869343161647226539220683557676605596692784877133186792287504153068292518874244921885021852287960253339483022448806307741158422310930763413405829287994244832675162793261109508033965550658016284061317446948536331219356588669806819812763260095224144478257481025934403377977410836818201215462890970195699621522049385923355133427806709922855463261423033926908381467613336922678729528866471329836288778236268096300195786024387403989034713796230327537671066055895063663812332635227352682268172270743504691920600128367313027386323136126561642051245623953450196540625161091020753204729755442940696215301104296630990461549567081988345053848408466213470022108341484092321037711146043604799316777088868529849131950503847764412620132513372783420524668873684165744082649843768304035910058224271688545236197642985320484675959664330823803914322044550184801735532575574974198535942586688392526070001081854728940333152648454760667306426810780143463262830006839456505402155060264864307957423641750758964881356343111314416750754364031185941699851993727711153695536732966777937745432965326922254699089411630686177039674461323974746514931335777096474958838961809586851160209373219260416442873862445301891391395757554138163701327136503844185047000980868426846478024506008107650686133815018522675448312050805423109738837106243653326983181910062314622606479976796367959090114157528872959913488453528078290371699914350100883360459433533425536369880421599767854742220240717689366081352619567674266617174048314498985574236762183496877618674318484740641560520303923716746226288591479301805631469446249276238641789259324760368272156366703637262596753128661149725433977180366764513952670807174569359507067932589906619231104576702250395513169809901832870670547054235589340467539242874244548683088725273280902184264302683285464313411473682103903583402086874783802408172330053144275774467509812162574012577086017060599630274285480607650912804143777993897033755887690655689473293065369432885596950605164785008492076569123386976842712884957811700425642466501729284853382616710421053298883905415651901922654842955092286125333660885887025653567670138233088238551150270686328266909245823563836508054716477087494923592082388252002676250360680970168949461049274234104773717534851071417532090636390180866357899570166915343130777888352955225180129092246372531038645681130205201131986594538894795170931588649813301835194394143116696695360181273119528571529660652818159907991686721667652852805449587463585624077038175098635864448927812664967053441466485542428664640950163870273324750860910873663073025565727342130118515667126214068620597839069570355228461711403840617084386984363040740106634376412842296897100108442883436619570284099172230411688398885668215694941443703217008805563399984690762477872351716433565127562388703188862063861972836372374959628384323206280098481474023372055902493281974640003394364111290487475146009302936727850113377364167149793690235771154473686512633289625648261226919019887966988552351961108833259399392147874776395742581779709244451198963507179037374879337260849260925161319564161842036692637095535688441098403681655068828195550267398543365339037232925543019744158365449666928795771513863850922408001108534748007797606860526468688668487283962269623015399216238565441350421671647476593051834246848467518528598076627868446347121391364921343467380721286671211260267958108974405486567516112763019175021542100297304387499035482728537219165108584229834361809113781876618941940240165988492711750647783925175689500030156142743855934165451502232290268873771333846701419848176068555835725731253745358102713764547126569920905847944530085009529964983273858826062291269123885520546154176476133235774460757831967295208781936225385697641667177022566019340339803861450521745226218748349433126457061922153787434493289762266034312274643947139765381161971754141413750139021174621882547875562017738117466813330212033493865296237332307551819467187158795185023580225623223911167476453380445795913882942802606220542031456673353398368074269197834117914380359500693668090228169025478614645064750553036570020325795855861738046579509220126250500401449774548258425252196361057600863187022918166116482743814404920957405685076879154790686925149136107999949294939488338123504429641273084404221659099926136249985807135941754149158478882986180535279579189672357615570026850684811640441970076816431689652551009351733011932231681594738137947428667257240587611874868346446942117100699626509486509611774443706238024988222773243563003881141818351040135565631326770146984840206479190792139881431759585877894977986657034918220717177577681920647152163398087573667879622794559020647092377636477445893929841380330959601728889145980050015850403033237896809844622914506638789781819791280686060593797131049315145371024972390338520132600313922694123295016706961627968083848254760781626494345812006784945162966411092169378811867534743404892691646974280190164888432863384998135425549725651107828908650121526846773998265914613671863146536184934845429755616495754377597832909022185182284243695089402330533422251033239552752683757259485960531107637179685377846362659823362817419361262168234871847159265056989993649458213479085871398427785003361844678761621769797032619673594038993175135224324636485277350357010617607703080925160123711820404037690022883341800129503587040200024763388417277149129636714410766268506037650859295339318045036414589353462553158122896542563384355771931429672018850416265065327390259751623672481136914081357779122073770317665802831504991173371064030656364777633122700678026202193044002135062261532274086040200971315648114034731733507245036668981064564929880523268452748606185382262491914242788192826801588166790931026518847286795562587534791372014710503027003762468163662250246545869910956794133728266023296276493700767983970830474517035216306789882310915850992268248555404505898263437769839697942020959225024973992888457672027887818564406071592780106639156875708626212825119866470791947091229350038845432147392123857936147849500531355796940229983353298283351677556888452167166187203950649033576667441619008537536815189433887326646908082416900648972779798516769050864449138678702800066722490738771125500223331493040579353438366752634419518195570419566479130810976766260846112633184158484208263963123108784065056802681581190677483513528626142193237088321988473043692203406279227817561086433799378681361417196501272186837500240218529045584195947324937534856890884515301029188317871595089960482565100344263403719336169272132329322986402124624751493608378524136742102451238214397764186159980211126296195017395094997009383254480963276453798550266000315988397677298418067695048285047677182186998225497152434255697551081990294538785816122197045531712692405856135570055932481057856353414371385123667523004896639889839206496574544434932734025145187003050008272416844542072189143045797750537402008575419531262088741414266776344955197112315513633001424088473440842595982566969354270730989942755371059845317762054092886507236684084647732768350547442758062298030097401170594881471308581030203848387001693322949979966003561235536372894154677488439979963097527417473050121663559831501541365564597291548498027298326377665012280651518547645506760593968472601109910071246447668214469210165453659622265013733047721607283526552605729040512016377329907522707573750588865515046854833732516873628400890252955121251431095555157052561403112647083668826937674481250167876789324801296900359563924071260169828178078616237857800561446639289538537124016155605650273987139597361244408462097120352403650013124522430644743868637181982121517957312720241900416618807026176439990228782391910567770733231163265010560349937347206805724596814571338981211171535662900676219018861394905749003094576199994154668397906267443380953031030657357997618909423147610345549018437708931704757657867766145973175980761237139139091316244161364380803510659847113854597673847927540694768512074893547671071385685334221808220882029888700800994946872400990906005055827503709698811788759293136938283514146502477301692299156140803237290293395203186747381290205583021900543287364613587846357836578989877108129775343200652435458735390932188114927705473788817982479615135622322418375590043901983188075054621307806801829666260613985380853910432947904969597924487283070815464962564320273945097892164989224685825723179582561211119024287590534843904745217579959439401604187894093512567951703671833480809738442581514127550833617380870713766746177120846671867526461495911543465360439799336031619204023464143068462772034400965618672274498622339420329802590266799170786547418766259253903107512134014396141432705407783906378337740149960214361821476474113255068404575198709904501366549083128008609204039512193275898654478563121045787909429766548962617847013306055679967677367184361772575685379164434281672023265123757802033905147675311980496943124399787243818603256315261122007315796347062415699362302189215857979343707315802863901176773684063751068558555958247895470500643711904304434693184573495919317171565239095547201270446492110164173505179269693761785239246617472546571164041939681541009900079185097390026528007479241769422063831850838675090885967223210388530805672600928066826314283978333558912207662171175827389719630904272908374967624008606734698388978719929061188363752291025335069668178002156510500591425939418664884749067631332227091167803155563245714500324585592923092434873426101093561366543419809328824436639443987193929960608610011180339300590111232643124706154546284832980660507006559277786717114255196537586525238084736207205097878238963891968500667030501835328166903743728954422547032393588644588293768685424845890125895861190132554526596471148088118689039134404990736881514663349299526810836062123596000795129164719314782789351164990935538491735860972631512460577780433270459857702589776889738354032152889365112518255149274104335141052292092455609320661481205190674993966014048626736033423091362302019960094339756127371209140257094451863313249647302462333936963058865869500297421906830522000937257065974162538292957443256579218506514410835645720096474771555231998437261782743893722993762952248821896617762449542485593202035691110627582483223342286693567341726946482786918441426635562222047763839371529433569065730169701621117389490215996309552181802016388569968967676542794435109757357327492205214759076680872061254324558792416427882335606356601689356058918984897486353800903362350882208538503017154040007240291243227134939718419368067501327587480791622181283148521453410416599116864556390536996649913212683281860897833014091253495414057630134922845915910601446236007725357164907627068219235802530507546272822066190808489359728928391855029752527269250608402446627865436870188684096260594311996519985660841469680453537183385823398558703891608149863636446968470423040239818529220914418679419822211700742508852669576126366571044455396844665490185712674827614866582987435186493491527868323946572024741587559457033602554545939628152999561520234460841148011488037703138400433728222931838560957623092879136539403296026524114867972801575600960089250980580072744233954815796182990126275879654614844562585638720000534881141122922935240477357382096125209420893589195084924659369166883073669867568603498195025380668424871001912942229650170208330944813753186647991991951658727523840276951094654333521147898531088222999466122781786720936079619042620648894279866847142636867731559625514760273729847700771990500527511086918372766368029434477624489963761711695971202326948957829432522529477543309963046133481958341666197682895950434192382576078407101810981398269343216639531675259965442304616198536838892672548247065777250739258469098365789990578808248362191849687746145722876144920930451533017854073001363720148392470361116929207881529924459466406842696559668737418750889842912719719066341912262552266621474999280606940354862006116791636722432934507213999464077567083301095174537993264048436470439549260341885494900406165513063786074071685999122970662858419963796475783869434573180263118354437203608922668655245321623175321145665582591909218219360543644200135768592478908238698194925366317745452561323734495839240743709346999238849334025738106527680824515535203517140024466429392464661467767239181480089898443872766815257610730160953535299851299915940407949593253924208853304304982924728250989032618856172727939080842345833213778248972937394601234994717337236841172645618493570036845225723037659740400862982457225597909711191431025173929470495018646158795523957017153919333789118109064346254788030664096241197011115424429100220536361981404197139651871980219852160924008085098148929159572724550391534267013789488847800892842780684279272324937007857627663709875575134136468195313582657062065572098847862016405943021126364165571514822883353181583973119425825675279358532579950741644494858377353826704628809459232501166461102747304090449027598430317354605148122352844318978055679211973059409876397536929055780752929689378366834983259398802281006380285667792843255294955148285016316475367264717842598494166460795954011451622338994035486266345751712819700321706677949268218764760912064627505243011621710864724903510048090550519886726970846204645057318990652754591439025230586584838942248016618007922899836011960114560716165971934452627355065797133664406038742363464015385503098033318490181099238666825197877005284076362827454988251701558496116519318030919817806979936020351526866989364427535043549954020046755716510404452297579946833404491339660176245076616402661154149873724725899408872988638986615127870403082039836781782353332049502267218061301009220747820559108220481350231626735757814787029718752354137427069993569100158006742643113528398093469660080708501396306053805121495133266963357687094647042339414696735448579346137296860527569486867538456433842766226597846854590465470170932448542580571027732386995993825622818473267423154453105118793411131420844226658088324359881266033266154254920370984168281012403242017680243440373167146533579973741165980497199693758879011024966851287264959982121181892170729506752519179757555924852639268211758860678858252677324845241531984000965235332240733749599314365977312652853996782464076488199554604724522627657126445605758326853376852435974190546741731267375313448318965747473074308960148877378778722773867487769049008758429199543428255225749897157187096137513018563536148684519603781527098542522528767368877976533956362548884961583361536946292086064134600311715995313356913796345069548538809223973987011651766078050764595719032741876115621595236670118820752576307993982560359452433172966201349583013122918964895536835695536475200777180047269231921765564741708986494515324436710342154132747417026007435217725953638812830762701958265300683878875714941915510911216758574057554088128939570517984420557105893085010636532101285111784163348171259234584970527955529526726578908758550849017849399094011873611939209267428230745774962082550866386765430549331533373946870450651265780644670282189099371208675406557480971491950377482342981614361209322727174045730261356760826519894382147903120388536893712212014871076799162850791344216658078874385893785050788097125224995368991808094784926850477736121422414381220639589295084039832814321977193944518978485871628859704889074891201528598180885204838275334877342150438730862088434674217613699440738338060327055177128151593135962155316930197721891968364416058406677654560428619744397942258873381844605931000745250965679507166053287631714693184957521913761308600466383018583518123320300630865103819778005865406972645325782869762190554569039884188011446689070528505758334923173573071054472178529686269279306146811761204357166790929073300260139550492836760431329612301122375230999718385120979788692988515968293754508630247116846166253775190216175972555550827019244958774526960611216292538558742810648123857548855373324986851697721570412255869872399168475508447004000065476182597815450005372749345585996660204045789991563115414752938859129804847515936126911639482852701226977077346692820400394712903377869085305836391030186316610017685983626428745688464451009561430258187688821110295922224068912813169863823064080049313278827972491847678514562994935778854642340613768721708168222691226763254762841671917215532402175707724587315725276485820492085670604587084968393032972575172889287623429817579103920182245061904267621432815851719333887998308717827588145243773646123917956497011778496909376214413568093562821592506114093995914655005885378554413725945296132885420482155295750624971637363122441251727891564366225274417452601668351025716699337418838025938235471744919251738291950587651173306384511707607872054670898723299628068545614808973195452669910443823909067243275051909417776325353861986219223090787911943591293998820166875996546077475177492910246626912590376601111813367837679840230662305887830309661306287498350633788827881862891837578684459749095904054744157274362617705332369569723824841998703190014606850588197154131755935890880127250845057587804146650646547234472865573351405031367837745668226541830751354151729972492432968945809675205861426581828112948022272956205427997791119973344219884258773149978483371519208840225251546166950342515805074016560817351985631890517285811420511292538571387145282781389770646979745648138287922834414290451963801598291663318017883905363372310643136920962823761805697249257724745418282003235147430272182694291384426923926097815741715410145117273756710388100783939553812447612794049605901560538499124421009271555383554672021336318814540825315874552702260822562001343650529661476540030051506693048203521048961548139166642491634324193910232782834980749499023816810262882803700839309686666753185370349178245285833321048791498148107183295214399800519056664302794641222202351025365485822852751533220881814383045614187742911790920160047291810447902273515742300897804811596210720886200723422036427169047419730639791879127905084185957489179209412211404604388656654974276501421426444499801849402267585703249297205233651700575724038180943350481080819417841364683505899715702351583058592164000884302681119082439654387341701657376621089919015376443365144590307199061909364424545619635063738131152715193521973804270947164650102000257651039328107879908135899192764889262675303718276837328907521127104304449749149644527805356977137265873585770404845158116358639674048841441994950626793423618330451287871156535433951855930336968567409444773189517554200402435426928391010915795706003189432293122531982619755175036091135788063370875682519191359412796647403607689826123375525459266373396629168575910019795024766435128650622801994852321478180019054173884345279334328943636229317038693900615108324849085692908286506511974292357503303074307162608770495252836904377734304208520236393106333358723133207957032864463399586482763284645219988586955356583740148209065572745579227560363370011632269904203606978785272822244985431363251347070783761265276632902006131940154139858791129036163201469453715556879914581656531237478995605159942487993467210902147083841391082444568441539532656796398655731684657701947887386322614797845109248349518647483580095779154244858521400919307344477071119695791631904816067222869324427379524327772000401889743968528635251240749355881676157799984065946001507441198964918400741862525806711015417853206104498198350657107546944807154111163030660107027204937749008660117089633391190895331294357138182764478302732225749553619164381145624297245944773326819575657799352100122289082592962598610988293049123371477233345916425418717171563995486880921883624775603895983089620434352670844274290423469098462201916216646329974249383903689388790594220359830153003915607333247089619981227905614775478225332951223711092824358604390785552663058800120113971868934469249668975861826578086478519780452012918770665101921722188642497717963012550810491394773699035616565051556900325630923045411982854764422545454549672835789000339714986077429747655902189705529482604538399774822692974740860532711925841050578543109724502800606935943577499904608473279144241847771071658959426073493227886372840913774458317034016852539900863989021683227848516605421688872939509790296201422811498121726210365538772910007782788238000299646239991155326771901564743113485999126283707680148588789857043065993993256004238490746526546193747339107284158764876434323597630486195568950991322750327367241597348098403428341983875290671875026894428283137852856484841652969578947425919050928483885540533568335317654522956995516995445571078058840537214020012541881363166774472331057851710397067085372919253702116005243454281659332270323306497166025698187289988166501568566019914236530215023144590377971855356927036193394284934239778669051646584440787357205179031863711839559822419369202694908381997021465307589390726271934721614194732957802220881874254228292555465425216590931826373261332474818093942346086682844696143032820842886846853423398756087508619532108558827598895756116145950284933804141194999195563477704433787023296018256121062071313665735842673773559331426865737367939327647860679928776479669887971398728886335521641082589847797943437464489308915061495301034928221205241843504475570545915650225119904716389392850514473560808096988939532671284223671737094714738459376907301085445764960664277989097538568748402453997330569715351314958114527214717074632526317883042204694433643057375075501949668597558520829604735754889492140111261487184921934701781912439634544077758690276288629374092510946978363596188195910786134302942106257798566063474819465823564654181521937539121488810719149888733137862029180633268513394092017074801908505569562759014704937454216745840762390987131591933377146269553344879905764231392464603095656262811915827224051457006942907518971284105654508471508662079833444240378590262351022482839315084554253011649274603320519473014810155904566907226302104327200912607176343814853634407806892232085343085439870802079577442110256306976873864247629158411211926359723271467770642583622743992471396640210540102493884620269199372466267660814836162153133293290241908228256859254703976810132510042424280775687925240158274026179350912379540186391490362793100364901344928812935823026788318312097055800508185829313637571281864883576916131942746158901444978606368876793192335740900320821386374246084041755734818729682880783011592404071931581020095994581134374922200001581856917239775715408396865335503343841388148570767079000178029237911902366117353414157845640603504812716379805900989985926015441533565812533143184883313875236030922212609900176854040912240778167825799027944610026652170590950526007957207281478075379337060008031780639870615885110333928631501103446611285314526114371577433723592173975668024728450321971503577106110184678675658262298801764069667345145717438351396615527537287979146972811368381369339465483039067219319255619119727443695495178727686705942584145490475289859569898347348867688268907261982221986975508242929083986209456391131432186465542958536430145395356182753130045281961684659725520684307593520891623450798436943774402127887309285517004209011163555410921687761200192339967535427414627725214955003133512887421485470171990019516205611944587535598667915282353863277282415971987533785310005018119398249915832489825911468960640728427269135007860131413086819474008318823776525253130598691964037525506019803221924034793142174770584436357099354450111376872687343519991753767515332374670367872958401892197355365049197222075653939551781070087064318972040680702382948991221735031430337750642202624848378766687146767564754187971436765829886523260504107653652194917541374426105214980785314161472143457342688212096224565986602948849500290535375789144725712131640035603816566623561074278775496779214610533694956198619080880420469687092350303714931320619721960153876153696073762569186763797064805038506923208541148805276941513657580778007780425630034296802255797811283396821175245513808459587133514881462436173262323128411394499611426934329285576180436174625244651340825866762632491810973787983799398304717284233753492509733474592408659482339606642946430393743248088205466044665160418236951602738739607412820432510476674786418864229544415033944837624337179879639133743710264873710987810414548122414222729105911347743416973071253323419186656338821014497583868680991988610946618982085048564636280118195932766614080571187904302315331207180063602177564183239337342637343612146805969418949602839543982453989235417979042028188074091458851007277951271036918513617680829047138977096884476944533782792399322398506899250904784322646481256813235568768963281097074296906848934836080686925204336612203882215946717950667655076915591220219208593791758590656468002768455901043334685661239285052563270784263730525732727142207154045084559732296355131522206211183787897392876087201734842848258657933563940442198429500698592992009424628015593535871538032920936954011260922111940344962652825884305388214744744159223164093770353016316506286454042131485866909327338523612961575118078165752113781974897117050521327765618068949468951580394625418219887181731336136641438181489307797831952923802194993495522982911167654091523629796540357426768930320686335177077454753327861714789040066244138895563595574376831796982551438398804025437112356551703115111276586391455767643378520086917598904598014162068402564926035471595032382213429728613295826529344442847497153299708124429916830422049588174606560903822048152581751972594024062068620221271150987859696954332062645644760725507316722119214351140983992746846713224506403395251319746684699003646096060126065536504813415565110507475737867423871729348089416332314120448646679959782159947969958942871021984862359352016518645892985438552067417777503581910780668989412346750180936780205589731665766363786399048189878989675540113273427049135640563835563321170851547993580860269777951445204764599410940269661725801281125966567820624943747385624359862027472101316280467762393666510060553888572097186821099324817560672818557279947771590589980455522465150295567657268163337423505508012483452790998128735686198655370562501289115188336274932941879084394184302266313673000014780527699747320495431957052655887470789620287578896010402002545329640161152744166040035962945719419218399512638940288845183841903269658233197737984548184200977889988952294145258497008163619172135426470058726928044826145284463102597364845202123278079766562710857770661494779715844722508574312186964223423146050983250221338991113431906702733384933679643138734091227304114208986007791042015504013494395803793062704588395714696956675951470335957896834039305947427241431826205133578222441111802675545418606617946266565060701041526693403546486145092977934921675124544602830623469474505165294001796377014923750196933782341003588452246288194280337779727032463583580767568568696169563151768403253069955524013204713581652532219331017138486876741622065259320429581950753458104682557312215428377433934941908715425551501871773792142523862339754374461674744534788660926618657485480849205594995990474883428397528692660794674304885759619114617346963837872796000810175586005371849070928347049370188155039484674398648313975911432141414399722314755386880607818824356457903051994309580561693799829364685921556845792098534029501758515767727222369269889179378933658325275961967485104944125659918239842046843946697019336954900735710877559449066277753889052350771914744423220759207100028092445897167992199684695947316250293630568472149805241125735056929411486570134312636392560060729011567578087239177557629948567303768235570579010647781193458151903932637117723904799102859833075721616990742000602941780720848808196316214877682789822600106800244639162363264081158760857246607152829705563411899368719651156326805560322260938004932140520287492622057484713086983853200834167858184633570244654445585088948057994935455946394302535475604279328669921038206845432166362018346779063816385476526289612805265838619964842081026241805169517120616080417913438156718746067706611917891316412117330582956404602951929049824033955670048525654723316755049169582176894700446115090364819541246135738755738183788440470496528994551416632319741766178335102059846338374285211217202272944229103533350044397613244597319434421942220750988726446211625923681799281767100100141608490412557568962216410620809475499129925174674566483569747076660389399786864544994401844088472374509561898872755861782109710824502363519298719895108280971191936749771226218328135237824904314719281499276344347236724652841670651054542330637746150710532618127659706893361185611009009586005922095320083612058175395695158390805311709391114292614610199827194825266059507281374554156677154306611581611395877442595711978252785924885681509331313313281256691262841294543761241375436520981943715479822491414550509153444921029513935359935915767036696899835065894850854303331165059919467837451315882215738083797045223936068987353162556541245477825850706379774262952153554712790737148537107108296568530590752083130145123849327104641840103207443167129223642349814294905751085808650868326655761393225648604998855546766377094605356195862399438971493093782261757221349045043080031611840395557781931238806790336139585666124802245238172961683836783694991401112703642427839204215255759315208294515420312010542861606687730352846503703430692131155474421757898903238214799649831084796382617095161963545957269739163538338000310722963685032721155862611985846798427001661401894769382873869723304940864258144161239044661795438094471794541412978324571853082166550749640769268172978331277497793552116950482579540754309084156190397062859190155728578738149335768598436385851469707950078209713801290137012285009148330161362622749628481761977235465970512991305884327049340106975276441703830274928277444015028733315409526793949147535681054049807499927359065678822384765798276611347574893115099990639899300395546682016509946635806859170990580495566802003339101237805483115539705934850250483136347538601770680091478428891856908427662437930195754962792811947726872309707388943437057784643378002627665795271641506010097070124048733767302072199087959203095194149898288441318289649885579774071586271585978784831620765366726889618261861669331500333384494293911814428202905091564932889097549021766732427469173656371420270849737449291555837578748807467649860770403170470971944462045677163327947149663266332312027555199159444562094618277437088241647709889858858112077967505704353789328301133577343999441305155644681109215564565111475039442290826515731738929525717538433127574353570040303487733211793520142840452694933628225309468270808609545690611741729863255896016126406987609161035808262926925998586396817956663308287331042532429706227828444718962431813272418248319512501003094509748981653276160357969643983348898474477128957177056840106545310919898147515054119283855542220575406083170996117352344024434935225864074780525405439257743895969641132734273281339743777637475273141637612375702193626847523782932201973277032030642790050758826262584352310077952130620709096120640724258312270405490662490568290743710937646173751142774675185477877656741835534378760054082015238553136322533236840756646551562525244255477795735933984831401273639399371526642663797893644463447453969154990310718773074706980952599256265068665484001866006331368927368613994771331339310310672049730651149622559291818796023247835162750047822037294731863851303575406179427644611718773532333071212748205298228504858516737831064283736321471900908905795554851702459441449560685209253692514251079517565198318445344537542527750169016561207494468894860654757177666679867124399558944437088926721114626926835808879005147410972261808336251967653147133675246631557462587710341254541458188673838205866381392838254143908941170963365817482514447115225379903762648138462173526676114040232996147160215750967280325691786919454302650928768870477135341103425871495356396615946075207404828986270950861953640297489009913408945746532102474506969870294055438686127281742697532559014288036101578106839204638682366366107016033200047824510285336047348627193101453624144693902983432657635869332294286742792020266996851444633400004889123513272511427872266766300449642852159003135337604000881252978677998596639341710550136942042190659440359310802342119752360394225190907147189888859957256691026114726851415998800197871524179574766698541532365597617366529842258881909430705939305916348294342563351845811138566704538004065699954171517407470810539826846693297417320724874505099169053791196204516168157102791696506106400573746528778988938118873563265285894300820988052371761526199857951853075228744696269241088224086171511966899771011345351307387921018031184096431001572578935382794458944062904836046912512868902087132457339051301936789149953210208772174110213030294026828201497998112558984479321358269210088275556500011824418809147631979833804178946090902546379761110056316594507736072150972526668713965119343198119867302250868345460775458297001141661580625197863802482959423057677645366997740879169628774385039534108608737361638191826653532564818627975151235707077093662569500081382372409231991770644461133142632151273367878322629249823798881993019147957984750495622905161354895546205886799411900907377740891072533735641231881971033288917687732213794332612149979006906009040244620154115208867330420195248219126236760586069620242347757647180857584154206450602530642410882740294471465672925345817446815391556138021783772957463727221816638116507205471985064245036550929335184731903560004268931870990761464241418720688621209937033005492389899425012161186156830090606401395342838080389678649082942475529259227880336437217857023576035624107237179746985476971112058916959492405872451348721616355064387884643778371514641869198334451649754222736123836348807246233901108069127467168499435050855560203476893110268038408125691101171114685620600482366450520203705019220504992468968459528489059724236105266884965066789486751120106888813700958501923284005443743600653320572287194074410659015080838437759852621873385718473759147461377737517158806073403328720044325350363020590709995719441465742897458521285186878627009271046475264168550493110674913745179773591100858314926743384657927058993959486488970936179929352462084845651455833770511510376068292906831970671973223459312742125427573843341125683942487329288251381159893726684779851934378626896241195673626618610281461320601340990627750896454070085068512174897374103806789167263949654578522252922754855565882739821107155804279721794930740353514360115315152293754010876917387325234966729683787504922631674977586273100860984928063487269897129227843198018437946712293480533740789082962486547517013005792120920740119330565131382838920560539694771929349312692857845621861185685083162800124156339113392848868436256209503957569771977115403800310051347217714326237817559374528564247703064226220463576498215204032768772917000196431014190946137579318103767930123136399330395981712632472136579568815354761429907626396862784590372275046224375635191356645798380096063857734898880957743615912101518470651452983358263160922988480880626560134990165733368688413048091494380121517147817692116144766166020160657354405417274741584306307538925201992856350305948469709274977674032846738776024974276116014996084735246896532735649099412842274440935057828940324147078576199780709791202515894270936056418537701195010178634488656821344795702723776352265896989283878098210983149959946249672229853801065030161531697625135966494631020116505002598525019043282731895019145834969778337149958897429697317799771909740571298733012042988716767956459020155530511335291985032593882551629226230016671355188700440140223542703694288227991082891393309600867509612089799051432813911274159761944803959232503316741008229063736960259838774139189389198319748193284531576174621093424293390155224215502192552162182796828069705820787043306616706199220917764272482857776906515545439114929277857805665997468229099852491639451311248421218156772075941912011712845394161303142038562573928886680744476999701408101694483019879739783505758786145449142967014585208501341812672474693167268791614711304312122509728781469626050564653352264882175446727280098828615518111376982046158168669325941510425227713012016894377837912844502866797315011975366617670763911727831067318967202078049915962012926356756030277574189330639706492437073741452437063226879522604525070000291435330190513521897987633153688763703455458084906703297894954577478530405826132028382033390305689092416413959364219501794746964847903854188399094555197668650501973772723031167945957409155622746310796058159205719453268406370605708989736603730397985686971873650441172367624388919885434347634760263257947921300929379167202359561178166825909040789388877872638404399032624060100570941181351136941240921940916082163027602014876729699951446796701503153571158165137673782723630908279552994174644079505707721547440765295616146233932395270090387047029660050862873924113904138091547808746457339543367330082800325876526489482647819717617984407523001415324936098760537379068499783167923634185415920572514575366747450454124864891824404651492398772268539659194751441982677280297635337861684247733348428560100343544934545318351435295374047934859949466654217859248831988201552387283024705573999679783047554643821554729368226352424561314859541385089352246954140102176230093342969308609931457336161064317441125722096368108338399775628043547907508686800391909623272779251415021900692420074585433687469780035017178172518742643277176108092587948319741910364085439369033754330879093508375460571140480890119338947561852028023872086783579612617067224045981925047619092698306610992527387794691655221336639169980209491341291754758259817307039316236465993028660752108822463576258586060849824982850976623082232459249668739409208373174580329923888244960492431774778400501659379915996907971306239880307430053439447498870953396281645859183526422795349382533580308058471692964962343017931147827914427636442535782600319225489777431342178681742875055539092303780268784614586451111878016737848757598952630582808863867706859205751450082847092114873283858160253684206538418569296390651614955836511052951439486092748751949673949995890812845442866591317522212057570526845383072371519568704756138781505624202286266212455274833792225993783994849341793733722577977927561814915136433044459860746866148535024940713928021797405654052821830771890504896442107191398045148349660447248608673265937969850723986273079410809344626557086202475530200263662177872753698943815756041252788557113620995610066885062305274120610970643464012371004622912176280139648648613419008195069769732764413821577487072468994379243854363294155765347027384747342184104491245001426325500533742022692639103226861903179056501997273982107685581862631895622701205622064194074591524309173089781540566452601106624515826588102887553093628295969417128412573161496638268334543499808615107826575942668494923338306633051980011625425908620163565586361061705910871499323570168451339980673837449980742071889076438370840632617406399147011099189353863019382013721512343299597431440384896282688378765898202244879894834830999539024883815214426921614153635163323137819985812552701722987623031257033011129469949558602282073719517224798244087017177691252112714583669355508014158215535252231836275885055699953352408992299435007534360871246134522333351593084140647786007940162589839722621515540400865805682911910715541571200159437852289230391440520329532578121851855286835746400467906235672755716970133140153481792849011729500949915577676683823874549067306821449348070812026533479104072192867895583745014405944939705031929775391830277089531189913163388083087907366975419060361179311455019195315371878995937797792672504518351297404516799288949433093274812791913803724641766354306675767006250040890110569927956189002301153239922654241928946927470569748289487279573751054166151756361625057640286706901390681289307791218198656499340522257674511987823429978359889039165534852310432188858825314729404080574785767044020914690022966861280481791218212213309510634317843801106644499659120708913025518017452795071166455910721009152875018705636706238241534227022431511750751123725731356860467749170724926704045911816125309255047835770069692367639591241017658710237588766677639144490367654858522628994245825779979395737680057012349228383139975858131984128605995373828930877383873637328047369816388922940441225073071985784003979687043573033574014341489870471125595186265333691296237540763050866770652129556894870954286308044342801150569193179090343583088295988350815575676382662810927957303523878557743983102353769194841527165478544972556550881762152028203928064682339599250498196707822104300770886454314196196402077238603340250824505422597595274098105053328126352633735295677826979390503333953190492276841312012612509820681699981385908593136442803343950337888861174425156563680623437006813717432158591569258205784480750593679111126721463020464227022252575725916442051123324609662063242881159717641135458166229313250832409813057098749774902604834879902200190177513814072285344417339075644481806782598302071066636208809217718858688431579126441535922489008284912779062160199090907325465964396825055720231887270185324400671953356022718216656245603765560634330288641693250037849334218379537999598934144713951419649576076183811837433884541232068898147575137503973132965894789043664807396251362892573005893477524430565669916330920570721122783307480127440158184412285659866760267615630900503690941914729251712099944945588626015762826189852898476950670521441286104296393289763711823855106162386484462962992235744865894199009027967289885276906340269739653269601236900781341980723579210092536944967410137591939995598320814607448332084328182316597976972750751742058167274561255423951711281314677425979888355933991884325958467172392154329563283407383612212849956513352624854262370442836856098744445668344344611664112753978503744021025176878616078226963955823553407095144185496029789882132954617129729808474193915257824587200073399923388987342545879754723772391106284945761858151419032226609794169466960956262709500903572127034855577991753796404331421125438886983439618576476035590424875211936643813544194668037739806006838653659190273976066224008498548196053506327271672436269570244929556654287751739725941324093160700157023986945108650573403822582159897610961307577340453190270797610012040863085191413242561665268641504758494882338469541012621772376890525873784775104480881906847516599695850920164801071402958284153073112637230719187820238339322294220124203940208776512645878656103447269117751414639220704074478143539510825165034725279786427097834134165981668388871221237354115030098400447760693380912586343952928414823393487330669048826660781169939970880860795208115062239333513077195979280818649068920454174218481479298697726348549425245041138868255745732146396208124370671404899015040751737198032943633175580321972328680369867754029522468501065085169814803734917813150773688885050368584678425998279042230444747870403723485624396030193082939954976447079272158786555699686590817956415191371063868083903888106793597798841590921276894442746808039176652673347597333181004742026441782979283141496674666233280529426045418055424900082970784300660699921762001836538121513285633873435305546307253282402665289564457974092298224508081496987255955871820391856799254376402260604492152617337862156264475846109477301360685310037261442910524316149739195090238959855230148463426642656101890032156466106045576825797887083001074837732741848737018622511363655907451332912905951942437357142012601087451738673488498161093717062186069302980946359698668817578405737187607045066021884639955244358448391339097889218807882617097661127196655734749556001960770866078927577943532270521163226934001426308852732357348131453728893840175556069588393395747343985097936473165660740311366945881560505967112185039554373126064035574137884482084165010069582968968574747777142125099434398764777177804668840603043412152235382506046547507969242323327102412884440676571832276928208607021705254246437305587008237663268344636168396333634900819733460218953220831155026486375501496358365220039908491887781987808628733352473950681221961102059468830094420389644744939475319866540450494000025750397337026912508260505615478064188765481695383566819829910405373111360893806921967318075452161074896700327597031145501151171040653563418955016726005814714782991608989201697751484192686260537149338363021552442296888535133460168962325098270737555840627216758442212022461521218243961865615404891536703579441037300211973615352753503909262470820784522372881410783077036862565560322358985923399944014386671113311288743734578581160187523143880148031092252902626560105410104952229326813570800459348277844342880931444999971993616074732318370379483473802902861008725198296706658120673671106260831009115518825657241556812578095022001912807978345402099834277655813363577551287215969724618088450218935538411664044180505531652411370335563787469875106015859506391000354928827453246785223270648710777032649064482107107007795828135477864571992000441364438026190831339196692290849307804898933713529838507804392810327743635460460090848683616759244592515129947382509778119016787285377002402773853352867527070776984183690858529947521249722295482675207010340927976916621499140341093829288452838779413184175432283211428229450932676020413017028422907789418509336920647130314850374020130851827974723871119324406430723115725037046984233387609591388905776856510383309663071338116605421859200944172923380761312226169527815852757126863985926719701177097929427970160364704732291363184217234237115079508857798089181638123777999349319872637683904816545594357035922254502483453180185212719401221097197947908492194880867691538320629314782293051467404552071299429531159045771803350098348327031574753457291773677746497921403447730029110324710280010479606296569230929910234163848046099271376228371509486067228466708440175579269475503400351090701335475871620285070834592883433993453021542338158572622026585565416395239814012624600537744272607522381022959347333261691747266615493169952663256760108281533744536813414571551090802700925278074508770671044169291991746310978068692510800603567078703176020330652564932879821107597229003145059560301429125105704897952089463818830690680800613714803038031548521297474854085721751385474827796547008716253436956801270024615895217295260881014478751537757890114880777940097000230290900662344910408043564554870904514328408167064821816203261132628875386093154785731128115033979564854474815712847446390777554550016602984009586714528105829037342946936885606045695333715080501895385430806430012386481539905716344005458856049504853552438027474688288717278800715075837263084421346385862362513952322159827426199350550171155853845725967567727348071305554602433871646649247896419971039682743970300677859490656108675554300262295704448849262057136086047176843359247056077723459466483175316975489027896953877242726217105458961575443137649006238381003211153874253491563465599764268359698740969137614226400968643971777623053833431209154384945760346644849993839745032706470242999056138457730291052560527651159449152495215567572502766776774602879028913894596420929835624266968531456911818524750194141771320835048502964337659740393978604830860534493914835488706694276066274251925422100682048173106996059759745709332828605960802908880242646951497065170897835581151062680527380782149311458278670898736663993153558384160371687052169838226552463473773697026129710096832121000441923534313000581744742862034449209817604055899431918175944467301973447503711496580392296308504726532486709461082127306851779403565645613407941517760963501038529635364667271552669385786419005436398336118307999794612673692069520775594711517231068788937339731529091155196210905300504524178844351182173388871973495925940405927902760601109974297018176132287456804299257099806060981671767478566292261042313684095597770292697212356282301758452307508019787532292103106126209458666322303543767034638753428437390196351128909683216899213083361256969933466435726315820039310700792453108592556955706285074977949405252976381448609220029290051383416771262802578809135611891737491145521096220093859754790397281616736115724672003290268572181558235124953160159785897039223783978979742612814802920523798230397628565632830645313973357860272119467044063187072254182784244464789952537198485146960112673357331691462343273725572860731252088087779459547083882964418300742762221283352359635026127035247235883807329745598694384155911396186764366400333160725476730885766814775484101570018206866080906129403809660029434096784895257798434701891070778095385576222080836732233774723829668054181044285160153859949098339168791266137406835994110367941637154989914316979687600742713289834646835618485190228850507685711610376450062858426613046916611056731170985467679345247492847088998740211479412256984437944180056559189510076417533848827420010873940352709148119207909768024645106825616926629858256632924683341707398669916515001618291136939612314726715184133733227769773067613123562119432338954934180002914972788554969989677091380765047804419000329783999567854780990019250592953595228036041056387319858293547693505260158821504948822110333629871146418836638259047384484866544488542182607170603426004996384025536650843273751963621940241067167373908821704179216902334840091599162266663060446947331683197036229292623186090300043956628022492059370113564082891726434896340101527326005179022627016914828822450607764815190112101644786165920760946223628397986733875294453457138749278844696039411700203288020360237274502193681131225156801349093359043565991407187947918649760152086814913833058579108973556222704383435512241253202228703975536336151366369690493614285418746001644872269486063280523587198435497862336115588011855909777012618884789900434155226569570825791859854458031477303448843595917388968125667301463346273924116770453025663870260191204460168823976624464996327836011113939401186708685696568291797784481792593716010400032991883100039275288664591336455884884904298679586611837403398208747217736271323883114855700378129108771558294121689503219994125578609168734241535161800652416087364668756326335160813365967172397657781752299443302071234709282014862796743436433201891273356757157926031624257884693489585495224933780113437512509013088383626998276370721855768913367594017787283287028995538262015346662198290010207978115051993943305946500707128155680120501295222955959421362613051287546467691203071253096354391110541503532145760683126427570878309067105825283012195211719895802613214476135815954749797523650891475893676289965185700682020356330916513177101481455842568003092261027844438056475911004777183091444719716977433323706586282712375470580480125912295539115562582235181566775516536215057528232223475673802194118622033258941777079917942942360530959444930717601076722737632398051356221006754000909514863133965252595272028520091363584062362556979769360432574542472410539632538557066913911202356215231344524163397617771420452801362018558323095331586098541962934936031067510436368406255888941625790640729239625049083186499689856795783588882348388145455680732871354555136931572649818868504804813156490251285027273664885544339349146799185543049985172278099214356197123338421993573677332310267726389525392651101180798322020898031831347521679716254642620659958261007927139789491208836380348783005117834405465162196172932493621963480121453756153314970000507576210175850618306801051065418271299563783973665468385865297648819802111156530364898037502958431523757584399404481867782203220952105777460460063353094180401497634953260069398932308377922711395531388112376709346875714690660151047714682867019854221373805914048305787440159323005921501051362088190813482703346091081512570787943781872878481837818828501525744123473146122077917667585987547822900886641140814702980774144396515112750474137843167556861175690070567679626888983785889103984606923149271368880173847069559284939084943325641939971461477389076127753021274352347740432367669795978655344252729076140826486341767370247427269621236742610353184035376328579421831454075660110032179427012159097977089158910558619491800699691047174889133083440734869406097834413543508811673266868405631424289643669712197096806382469549164278615100571120719893057436083933874254421165210354047215233505843015796284696094453284142017470448142948544123693596764312589994861707625496839479485087675972838206772665550428621702238084732996937428778112627182106535408969640423918367833189241255673413077208672485935805231155519464667924078855186803765533312464044462857654855875879624589245235927689508552094656371735240356157372186416966787180269204682822519172497511324820738228393211971614076862688779401259340532493708125934318979944005035017714974007023277428696691145334808568606283262767113565526516654119017702481794284418285753076273208289801468319400093672460487724269195783191845830897058550074314886497437246286872868077181233496516879022032134317836685849008298889819292112993928620796918337721076827996818389022071771315241525213711568259290479963701176528943666253053632278579296315918043195225268515583193570170744302718644020398506996372402784630218975613235343163793733189827277762393485835807468325040108731345933946414475267134358102898632538670919934335289053283806796709637049337680281706191350573905396737747300894118002143129075522113153909144197121939626487621259591472108923767016723490090774633475883336417750861525600768952163488547105135973725462840121930928497857023674407785692596387752339079896243269989485443886772006436432885107656508946315836951891619090225172430188891120090861503134373075197488955034340424690505414985035471638164629337776958895989640681836552200271288287635626977063597814970610437626554525521104315131255575360328682723869515591383648599063390650550662610401576560714231279779658810757473848055378126937171861281173139195712322600374479441090411785680012474026028620974429028962087159520016591799685817931490010374420152339067003815946790855728278278143782227764381476653114832554115578879757949481318569155789489783646342669760093588180731644869161542606328725478810901446468508709434723660118807854684099832399119933411619937918551698714882089149438123633144989082392043983305420527335403661449602446036969739890811415155870683244226821229307608552523206928631101340107157139154818026168894998854337276350064196202318910308890091167701148800645985647871740437992934473665642343304520213724342760823906220558701059024377450096265669351883486827473646051280813251219984485846889912432619469503687926157921365984924455522485308121882833913480788905944999218511878988389933355368613895094163548498058553723685343826270116510864420828616144181997438562403217425951615595120572853951455956714635659390148400770558811259351914338488562757250183423063515510000824631244577498424698216575925657097832006371920324123913840866806308149728915604410536292339186655737841753602872537869180194931334482046186841731497964180741560713043844451442003659203048758921170442995517216611026065930882559157732336080643774008885470850786682111202151143702732125442390996141958476446956185162289786086932708636877735764746186897052903921770269855520330928355825543813219406623260469303396835920007555496635235734410465753881906511894286034250449936357256461844706406941645895663637553147503173899116750381990241922105454716536040494138183561262555079778801447544541615903397732536566216247545604629107426499250837125770679127746767125352404936569910316511758591461898028089873708782041364495343319453617963220321556189403815501054893682001618863568991010576645730239025831375811308560249156444235309941014729637163571168472467157956571197620179470829861068092924371970379637227017381220060620606836070464939908095198759052121230830370388285269385492660528917105629665453933141562254781967777698118992837469550530065457334134097808817259644224762864254399221463104464764587057311153518130032111597362684125539304760964479240987156743467084322651165695791651907345423143872617722499431794626265479216819509507697887455558631941197649106722527537960280974295635675560760589770463743777550672482065285598810937625465778815220711085664310148287888247578455813289993495569961139003983962138578506521302594900542640447664861016748084801121755252170956360402051743411271606369629770962375978940809092840548921782358362368308115685817880947577415182423249215249243328548447029309727781584870897556067783636716960796741690223143006020708408808331563396251199787628399100258682963292939151878286417915494818737670161063246721612674400352278291761920002745941314404632689899690637256956733882764145304199173257597816581417114154202079867568097780715084445836674765221304614319547678542170945127181726848534169080575236754348870993631466474208953674905711038324914154344681338931878241011318775299349524363291878820708417020042409666053442453882265975340042711887654599642541864350620459169743187612435331642218252396337149657428809840808238559324502801333304965324545872863913291637529881449971667655562753469024634033673904424071574277854150060415279161102876099598619451578106396370738752419976609215267029969524159817564269468193820775292993927966146650000612043338230324345640202350838900158800744520790257317460868466388034049556298139821108912674214894005319975569323204835836819250883994695400614108913724926219341177767396521773206233821142976587921036324395376261919251938071819291385199806745987110562777114984005098521704466431333149584712033460720788573902732281808633598234887173550347446093064552473882195233140974122682451245816425645929800090067446805272235939862460216826081829501469703225588908834276123517875179235249350997693964292531041977274057225450455465957114033798745913323626811802055563598444648767286671675103349121682744014302923527965050679965387619063838696020068321408229762742187583240772299513476842830685344467502080451507981979960107621315808001088817012674744824234773941690427258456407256293058734271416281033092104563452212827697376428318849628630420888127491013854349213553490323295663936474911532956128372113709879447159753006241814887591789415934910172353993549995477973674006240475403846139356818556750581135626184988515599999954122655642890339061739333147773348134815161730391142225253995210507729209209302134490106356264243652290405131397717879025773509754948338555911400920994840099407530447796475220439958795547847759281186660418695966859794764055150948707446198867919152033288314989197355432463593492660322192071698048535076442944013067920632963419804417604057667415576809140646462272486499113281179985753592607251439713409610120080591889888523980019319549868143879676422198968977740394617421164326119185791002180427532661923410725184315541390045655656410723418151232855425507975155717625203831874643692163254334893017151413005624341501320844287456751695343349457108389905804132067023344396395589830773083051061908878247864163523006264360026957896100229091322518154811762173697410363872480207988349847331758524004965348937208771026329870340258994918339800769774360940620430391946151879161848207556765709357880405252162994096147593800424332984868893418505168572491825310953634633338398598519184247748424080764791787802682862368865230632786926456214264980228059566019564771246285108755561978771911737980437091413346007067738164785732135523692309193083297542179379046368364845270438795429668904430184446422179645794661228467706561568051021943576397240037850625692645909561308863909949788730904447007116956730159917648539546124670433557285152819712892198963331021856190322233629629413235550306391718517657177071564176532925225832094932582534720278945405891898260083469698249703996807947230984747741086996989134936999866860318314764135540377669612605857085654292232960855398311264531079444815890422663520776931171476978723732359856451251868533260922879827079715560975748720140858678635759042132259569737750841006115887714480496228436771168716348485227157292027310244319615766616438619007920507766058735834915456965770696446777185809662917534432713413403894375219353822050544304870508977259764247293744985723691987207483029901612875052317610664751880011082254950171368778329992949745053935318339230468447215291185404672391990954711362818500789273414217250493654519775362091594083567565723378768461420900654405188149760586829033071620734364147427731008172830114809618956239487529391546146643732368462886340306758907062430235100404435363823579196031535946072715933686893096533547229816058510469445623802021565482262805310519924358750565591725758169626583571451531078954979789376214913425024943971306230820987048965286007032597033933951579735975540974465192646731469445125127835235061842230832581995194720736467788324148802625356440746947893251675524836880742968426924622304388000809050391672551776004379290315037072100477546915004163029368982092181929892908013991993853304729584965848725353485526323181835191145130930718662109946223552870657580306756248776577094726971091133484166061245775135615755777197853526777531570410223175691682804014601484137511727570405054951780144749459409896702853678568788791415632703256397119053571563278039071022147427291600965243429439227812982877726737598572219317924876439910098236599363876732239979300318276284085747668953675226707914509735212276520120549549809945283900821166069718668881732619161352872805961295152514173745566018647762372410326139211582977232712244892370770006247720776929316098218642504579395526058197068662638800185611344075224331902762479283924677873774261032111259488932242719986961166713493506718265751357849587089384878666302778668326215919472277872658541608261240552372032347769339592142182958105098484634152116285340463617264991508740203508724573926166975721925196863744589483041018281149729012925424772552168610311265625702244834053854555692251618402502414998574356357978476025045124080381820677293914397252854091766260721323880562909588437653655280845691183170116871469911067262725467502500382644679878015871519317190030091886277572497972694482760318175505908472865551610825628433670586117642156830936353810748988429559398164619073323197798218206621063685571562596748075715063488403025175513986003235664337933264758118965349175368165299654125234843142459374135566103121628481232985269356799581386078239153254055465574150656244427617806348403976415283094197647380401478943578763155686214149857835623955094973638000653870750978448357798773955289347132526566594102587749435975944645823974564933592472087849712736945064189338541283883110528119460381341071779541779269395285321609982100763652127122588151865610462961148170935541671791092384460004354448225066365758149146408647637934881980295148777946677259330114979733019513744242708396534577698251596331118315673841072770750432289817520675322437422851027900943636842748185071315711197426625757493106717390579844177481157603623495610899595710005825110838816260753056934349026775341966736370824008319221687785449145332908460531603197309472353603644545545186713287910054480113104951525734261372374088521707306865832359021121483061616996068107276505193280668887224290115355708154254304658775836052880524095069667197066110556971456467832854764692231325858831120832897422771512939815777885967782090283491486645329429796197706490061927046165354766630745651867649476177683691991472640531345188476451617712972675350264816249736467320265529780749373712209157544461407620406188724704116367613829489252638515474533061739743809413201888001921495275713611187434491604031958633003656684904551808946733620909794579096645485574938209278685588775202929490508556289753226480691144528735425753253665114808106906632642831297781016416250311774930306447751446752235141994757203732134657761522160114809794904055307910729206440840770072055094390876280371510400786930774099760467553837584741154931225621678259471489909942982765892305260471862091798699047396451299385533773858309116108648015203365271968529183950493962191081833669462079620487658774615757553215924551852340020410437648484442229213442610898895064872469587984884311501950854535462242207969211087278724415303523781214943541963036441869465754470346467211269964796814317042816244154681465694524179220117664742817310395887380973419624978775209079069062081045690529876146792985402584024940919840318426781301530329965756351216705432254903643150049821725170447634013106682384757639841573154138200304845815214424543948048935190257831086586756334389133418108861537528337459703568869533205201059362771554395759498918631782947050179936760094278064378427511931094260906359103335964755948293451360157154841179199557880766824206041004026983796399482420911198603612061544507069908397341848558435637261630179269909423913991582165682336321266653555933422299781674223135628690622729621518854261831912693807270021442709708765625025497921699304355786785231102298470440275276103126149701942759416822622894529898960503634664413237343881926741423947319175329303557182179694744924767684855790842486623187711143776268533155016739274250710142940031834098868858987005728530592457167009137346869493747472000807754079415190694663134060002468582503200510676721428062406457272589159300308516691807758599833172981476513464352889056138690081530568341763136861827647170756759591702641926275796944180019388418214509861994801829803831568338901107037807333794593914667897924613098183049553429420825690825616919209665576487352419780813311241875073497155993031103023384285297229025134470565084431086598311136143749791684425541027614833708298353648991754196118723885956095683567482348127260692962236013240870450398538895771972806513692689859630798163190467111767069276074194900080670308266057372637754710321436011698306459372804293485274183558227596261227149908941220367983542335535024432077584516088812911980230243384642744370534795372601919819607767877620714241840085301797758959767861530974300591446895660652631300742510521024871491568634519723433710492178397458797651650879179423166208445145445921434290232113176795333297936298082032369095934511759118934709375337899398875783869694962584356320753549061518785168796937107602037771661302604958230755536007756174790885277466337381425446380991315645104996657265493543318910423724029832334623697276632069763198151310535709747852598275788936180394641633212894727233094604538228259482428549461592877493258942504618194237259498959480822015817502012055013679267675403575473611515644881323987413654914916793566723187295325157952581067449403341930399852984139399161808781809645250768875884022565156830145211016524358954900835791914757420743919970090463081846148832459445834993666683777730022495707571216015326429772968594176257231906728145286149340247784018620114681590749132635593944077544795905856132342021763823823146708132713532679165079783031996749446481069614875075989936444971468175641646859223713299137379576656521661400566269762301451372346039119458375012080586658545764689695874703321928374207841697728841727780390797602819726741721382312821672444479971687717543565037059884506203750701698934130119131224276059350569890215005916416418942485079975248706256667657712485160978845464881425208031375285885441864926466938785238388413842475502908628281436927568557092041819186506878241468421697435150379207172194028749524951033218435416156855656759546559470033030746257825621109729435330585755434700326236281504008359416484749816382356075530552683326472124287053357551110600047430859097146019584699215618673190981021621683876759349061328853045041855056088666218474628246180378263677188283760163609455990551266902867038539176785450285197844683527195231922435097399517295181726953021828298297649563259325765144000363560638969752121804255109325869649567907708354048592664249827106844966740162327067482007748936476204707689833315272333962886256683317778405817208739529039550036886744364085154740597851960695490168009398372459885337895873376128095645265118377298570383438914188124445185898624078350377125988023085739491738914617363642286222926395779486789670757754538866119852694672636503141681415681885084138319443905349267007349305477837124279112416200758566260779504227503848958649573406553348358656262895280472977405134601541346910880089937307692909353483965216609746736198399888637877717440393255237640303700016161978924765332110633753960653161526806143137390487045731961025284242510713305883075578218702159212606247169665850237980722781738982770758689302539916817574671955497538156975328165971734105089198061379847931246092316862244965966389101733724625678178460330753070510459661899075898731090138298146134666009514272153891806218656855625116508574792757798042240593136420952718368413471590993987903629898497685723365205199123236759740027581757496499507825527759397082759562924706408208352662468447821739458207366908571561016661167320450421660520668844986105242197410945322552841555657899889271913684128648819455746929367362877762610423384097685487103423272425815611803002462727429751560237591278512025770469516935860654183353451685628137836463246498659115444057315865994057659633337527993602800455951234144937158932411350524730200803915981388247228797735225124075940744073128096389781968890550651194473982684382636797082093652063368330209042646337603592414053298559611959597497873840817921114032400244306562168236557258397243847622225981350830567984887371085191797602743008250647031648591850481848691817535960463914051885097176240981836593798000936485761234975931766291554457298608733903313057685621599652426963469239683102399044070932519232359354668763181231830910492375450124679897896963446246306051769342185723916883588781401320599391514040288520959713844288944100443499847869135116426868606846250361243195549823144134008780358233391827269095551681403778163550773568460478019597639096712216703955800033873768355632377950992465552553108712579980181746380399012211223851398201572339103582897708274062095892367743459504655148294629948064522650782618592527709989394521321159729867659072695283417493116684417855147519148767467438899916789283949781479557819014222162075637693797833998212259370156447304214847910077867630002070475309775448509117579089015817482087706637631315161643935338189459613263877928167562275269038226260745740368398999632019522027296436812796258167200919732711389779489976525284228965794449243420141253015503109349384100582781460214096497862603369666501738666519657789434797347650450664390815684629261656137488127768832648482141209637722432968905157253110776635321783764092275261700466652648828871524376429275005759821904097365751329749009296260703813471582355772421679243150689368572440770440425439220895766345867473058573983523308067574306487625709059874997341541407372273890324071461273504043861494326812512853683666924927253829520796749938400079372156728842017925774917790781502409332424393750405122329936087813010433201779511757861053086901813766052653582957755747136287331691946845965179397891162457733959480565435281958470107917598808732147797718338900156383409833070559246770035679766588201836286655777993088731145339762739235607613889291441098117681518349171869312363680592349937820087602727654564035794550050176872323435737907194517563362247965919164536595707026709655365116024725760739927083249542315630964423798561895157859796245978932916434640258554144783027740416988742492348036591026138916732358510698274418171072003987325083817305196781306670077844810059478786668953511172905295033117358663134880051819795198753766444883809658434561429423461591164070842494169190448865253871072928700103381878709001352970225434060632719274510696536300109213964871545740243095315642260742527905315705239424417367192466524588551727366749583948665055768998971482049479745536280136623377315090747705921809440070800546008123377716954573787571595878967911158573707892401368868530311516056815728334681847974385883076815749988770023063269237294394488990157972671702320919366825846378032799943782093723449980370825617989234827677846719640068580274736234687949119368233714671375458543702635838253752056987389270502987758572308139019292239440515836765781455324602086490710688878724075054232542166378476962005062174056028625051264830777671894015937027028773995449283708290440995710995172952668615709466702984309468068407278998815834988081218041280335608775816792589677137518836762735202305027373765578292381351811881888889570001962627516616459139684644598323991390624973234254285641466124160045585456596456556496551006038543246490667954376621599802719801731299295591909446678232576400258066959588098856558468445227331869346847704311656662714963808070530312380743314933512328987685156288523216214729325521972474671109341018674548928337380143544009561828556456436516245258347087698007572567390069319946627638461699301338775477839796079005364105749419845336573487856724552433326619145625273336319807170020662874496592133172097655002164257674128464804827031441864652131193875142625774970820065530941573005197414214807901114955065483299275238437499884225067393897008062755274167189051930040737321964770934680967446092194875628226055239723747047302248165565429743151419222552792153905107881846240014938220718480464910582129281725223468776220039132941891812117621842532908558476342697082009745153188968230035652231031762117111444059912308426561326011454409785517932111282306206845570165366221308505593148199113303024544573709594894464226196726428085686456917811818430537531520503849372669653182626020340140561830796474566852959338061537180805930299524069311066391659223792513974046107033705492178423448889393284380422103105116492020887034813454342167071826831143965985972693304284288237059698415116618040406422797730856002613769371183699914326172971467846567270421600131164178250646965117260039519159401968413460302468569886787562584503953154995800744192495525233492436361092677800195359254280269590370062635739092102885561624006973533953936724616316645170604563215636836438745569223154752163352918911842656393906786093364718023830050555351562603727344047711839947821578692167306184952882368811461839739934004069325887600703035258133490311851262464568827098382540291930611604638522367561954750443720257569871315652444302386948945309006377378206447444321462228575796204262049200406151570967450881878672524279866261122845180469885316202612648877192650587702105474439262935719661258607470335141980231389012006097093870212687583364263073640559279697162387472393143730666792970795155098213877920846440577651302251072788015862396195119880594878390978756504007510464992133953536915119914195941477119734429248722589614718294252480468524168980343064205792083260268210058675793570348685261418250361510042098150041451711419033979157285595162660229478440979065591642173640370824378397233255098973468151712721945020750770507492587517301314487574885357977444227213532292922640607652268595308800119417333600295386590652711831908938424138959065353879442941469926388727299830620466006813867354361619019098264702716613878387061119526945903086877685589622043850379522872726953370693744615587430990386609825158841838744333227588730459107962909143574862583022964245291821389699346688391721963925146240937216519360638189610385204482985045922378856818545090618704722722267667398096479230640755530925650287228377063936093041150212181427782371628295863434396186460111869369682207134614596899427289071218518288635604754883751606965796487097619184867419299626595232904868354474642386288534876676521169179429199650539782727929819654809080810235295108530851597410242722045033475042644823906155174972805568310802408595785086321466325465810886351024965020113546944480717068835422987657419805140587069337398703841564704916936518542706034332522344884556202738568367945885982675774474007095673665712839687445179658456886320812341425713376099403079015490975623780108736406089949976128280043213462527161347537095571760586934397958703998938055388857116119942078208433548019486722858225141576405798903647025204802231620492521460157931806498590129872669797125950981199259556509511882668868736986187164882737192807183237256211855758342831277447866191828092921696516781620963184174042266492551313197297038112959268033067442541206497519207755284841832074150417795050104900900496053280120553714690027957835307487737377439702132283664371224546527958157600577304934650769029266182313265148194357001586351657531007981681676683147085580565306713116921424158787083331385915235554121002748282510702259800220758897110827316946473313163000988366129897349838088901702855153813332091334712832971458602565955288962163580719423290509807805548022707073035643151327811221552230474126169047717215140874621266253845381227912993278598247761208917747603279269836612801215878342430369857579912242048253541587003112703859134529384885011967408810752901579923272873053916490236929261342178782758385346537311374760991762380169725611066260059558210237124518128667362447336412871985722950658570183122814808858941382696583095762611268727423451386990665066327880586566985201446670103077945751813882287972722006956589117631709950152908244180002220599587202003303728142031656204059117311840039482135935369352353736702916986520237287466930139312419263776221561739761000837450551379795912881827001663504248150118321825772035423086802495096880800049944299915847976078961818882843341881226785375117637842390761225715540907718004467957644374287959146426360886234797904132063508054884542614776497921264567132378867435685727036508160403766614078612682364370722707890620839565831325527489099727407850054008721426237067194881125872597936769769714874256543762382637422363737906849964744287772721951932387332567149192203302367553986218064548393102801353252542693261244213790174556512419796606508527097791591137123730445271722058688451314526586625203483940554965163730101477201396195895231802751608073023071009669009761906190383852574866588883554652030671149727637282196919120022936520274036443118521469556949919191119699701988335829889459139931303817678118755221457509930994851620139677096220273722256465046937986158749070711238903543406804455484903656331944757442252685038940596506468950051884211343848186322672005322015383036732888712517223817683336336102092224249340710457682801555189555973520845599901857124071626917444629231212622850684674307190938730876259021206330915711306573513521547375440763659492398889808459392590380165785718600085846080618317340105908622284864640230265379350942956551782747949557385594078454409780262416230120442206271575919526905227588773281852529731436163256126199430334923428222886126994614989219354867387130497873241207136862277574520416746041698029516888912508135314232757613719795049054901986695074481486741802145718274907523727374190775320453273557847898563966846574756397785143291619823135497880500446935573055616579083770575847609008265180339395954129899496657238816843479929163892739557185543490279337432405746454932368649043532964054604631042138261785197980268717068176213361961730954190208695422577152400868633184926962261578066439869063744557608954551569367988093791372176305205688128375080376698669691546399027223472944959926743156296883424904628659302197505786212746022248230557879787680350448573718703849880595766920448102333617306089055040357918842321525900981693723886028164131479823546763869912334073237281443729255624826886622883300581684365778294792267712941247095644958342280290417497172988380982330326962553415950770100378136091415390279609179668281832974292951549136327201322068121376223229700010151224470216092460993352024607927175922761558261927458692446750927525286528957918179294011845316285369554716955395272683989878672133931790472037841464100125647579047019481349995393323036641301942126713475726820130956277076109889081599633271261933946949781375724840507713592893817542398058690601834891209551879812173705522883183724452692839757727347280322157792314545439236492076119392134584467069678117348897240528093418736453686107588006316744020722538015906709141387906230111296711174473703016682803501055233435570831263077434530377575984127941501864738971638250842373408976705410992213375344807062914143264334757624263757185602462493016177174903315977769201458057237221231375006308543237804782331631441187010942193653432730899060424560471159075548780040874167928248692012693624947629383369392203855094742454678119458330852834410604495725199766594118433592405816969969145562344493905059137515315696538968484046425498187453420710063394910908773244840078634188227023678933483903579522111250567433607881926313824914296933874034651149799205472293223064016295029707696780974933163165852312328939702385587367789195315917620771930955002571893210659166604626025995823699468693544208630725642545824837528139408438408872620300280548874689909954933325052909631375769165195630525172139691373484673262389084750149774551700002622242823948604596877321882495283930985811551367766473076219269564038350927743380126402651512899752781661038232490942205527461805646073370579485753917185496103548475933129982576516861779926298947355071525987041121656151937682333140943139242625675023702024495194289411602483333559690895431536421221617255212907399341610902016800597728688795159819658622565923055553038010072456485623820419300694305162590656627997134354968724805417761397853265254348478448146676981794220643194433357005295344051428932463227818977527214453355747879886974850312770469486140139383916326618828422873714123156338880055275818064629546720883720977039896967193052430352185337199482064399848286034818840064047907483156117403656926211734180557563597354692042106668542727811565621370423258403623486402849077148215204924434818590413708690050256110460986838400448299036564710621170171584595648975026301887563734192790328909363046652677999289128960205155586319277227587096008315181764613300305530709061444716263072091163124985243267774067438329931502838047248444781550370538339675270558574685705610696168478328572311935721791418808872412912769740501558672433581813113091378816289087825968693305517459418128054951250827420563675022167472128097503324682988751650152807826619452727672773331372496334874463767566213911450895362171125118385000463272589128790667639266271330865267088827631908083848233672316322160313406926812112179212995438704483843148301939928988633749448754340504628367108025881957704772650668706322380179741445176597206567206427456333667555382725276788010564602357082079463209059171946586755944612355122959888513763711734050400106187640306945992000201135499696454303051654826505993271245035955566663645569325507587893838526319555299075124726450260863230733719168760221016583292509668532106482428921021745351785962331074599481088755130459425468170964666168673053087847563773206039537681090176403163771835244896417290149262585627948026417876201238802656847598410437344552947834510427067433918546948480998100153061024596373422923894090941647092248111809247164420477097048459518640548691399125735873212919569089048736673584994410742417445959988438531373725931932092909885389698555744845302696897772777409297980563333439086513967143176715933119411716299360803418572130207734506822427502340642699452700417499573835520044762496479074988125402800319230694716141916804935454004916046886323356884248824061567242028894991824879667346466374417616698181096369783285747030651902503945134324455254566238967854355359977312389714831315393129304922063942108844682462997451121854989770700689601298996232224963014379539772837170642258950482988180510630388526460260357854484100810883184256684423850555963330098293783044597294915514458414381003754767027846302845847217429405963001105222335513664729237871891403234083721055234049881848620924969754488403016950347264620310125170505023397730909250667723052535875993826446871229733525486328572805917273694317210478699686903984135132692226454377865052789068103723317825048014613664674895856322841251960922145474324130278003081812142522700153201260963866882176989054436521337524377095517552257953657198359116851772209713178985435874984818873491147089484350058143955140474079953576742564469114534994951428154268196795812383582595228521849752276844239797000320216634770096853837684638974314469649231587695245851037392038390414216308223422572239091044607496759793280786198213617925913278488701348594353955569320478319623967356918511795630151577887800808307929459758911022458994334059444776061483879718499128087601503552027757469243053506307088310469561179588841343324061724186522643526024342179682943169382814259429061773710566197891195231810617711909971403866675799253225455218826576384054674620300066401131812123042960322480257802437378406012493364351759486217681248714252298299611900221902699221596123577005088543949173297752672620602267261011910570008255468928929543151675709921666910283036492033860468676271018321729531775957462059243829495614417182531575408820169857045246649733554938169668042916371384874091810616383606566677709629143296736607266161873214273047819388691844542243504274258655406546140187487331461462560264710340724058051336883484392132782536993102109269978253538634650960650503563489309785226740618600266921895354557872016704459653993867371354016779760169500657127851673363547436386212834401651860983323833850531362397064810746354261925724573299805925892273428684008637145806210020932062670260554835714907515044736828209760322792358137091658808604171681723881732771281308320281699019549832946614558726137344789466640523479713186737766718301814539053333279552498432368368992007816031964395485453965940057271851089285924663778133543593062464374843214963629590375211878381365476298566768192120317428222795840780167318463232710806772083032837870986039925277385713570065844097513047710177110278908903580318405800232948901346352013981327122934121512682837705444801784613546518673226589784552603303602737570433451226093080901413654678690755542482819907531909434574329022921444823811017879838593060398250974023094510132507774217383181824653970509031276073210877097953932896902762233646783607452478871816614171382179772224417250908654209428019569714773260094888239845558446555777470023970814233319530677560213999801941660862335850373387002251237678818949498983474308235381112724179480570028021199537452088832345673975606242819221170432411603868684507230242119287451920018181814604086203775464066628855905521107561300932151069356965050912913783405478813002291829626239473925968747905704612004778883118707827083859615143502913142014482200995529559642284527277273409212941652853192762956907017929216875870318062249227499554941790104545900746020075592654232960057067187675955414865295647369939252729835071412962970973050055513492815002465860216813522546079280804367263299490046218850029893865059525452565261919353685825905943355844341899749602726304560542034791967185124326653824294037058344574193315843611746173970456592395940355495249811146847866377499614074345493101863970394245300211098960088333077968047019240250147332052453554556867864179686215068944164662144178471357875372288513795036768552569243597652806671620901081540550882603399088064652062353311090279148256292318116686747799662658523012214627909709179378561096367098744969245068985279466709811901987391133909534183805583279011481238816977598066953305414908762802656457901690374395268112282412662344517728245939663264153550128371949086157425965561662024983187213448758772791775293531817597925661229530669864584789372682429664949793228407022163652157446952040181625876531383507498161922890161399899073662181451141032370655069741868019631791153219474316136493272339403190879754617218162628478499411566894691299206513805694257667054225693098338373197417576459937522706994697998487970131016942240007230035817540600233288745129694985883339299801901739115091807552220123177858357459377813033876628681717731400141573484727384286717021321308654153009229953351089990045235151509608426894947428497719605992119223405292628992690087764361486124235485310480814782143509873759113616349699088411324250185616783047404371012508661719801936867707567451403343338259142916891029569596554539795233844836123527687122914672051660249992465450680326356712250144094962187409259578046282162429809018211980258678763950862877692579175576340830014935214907169028258673021457424640629137416751970244413902933644638870082684417865851886860684374275450719317240238279130367509212812134918883048831597777511441914346411177083096078109719946667524137415746405702081292193163401718329507605526730968150222072522678516432338034085461769239038207696994860470049655375062817632527837700876125034405350311630973634704635044085367319296447556191831233251112675987675753257394331540414397703559936842480803456419903481480146227619707603133560107328708435761815812415468692719277147518884022186985104508108240689351719463613520654899846224862944718366089905987328047983692042924664048942924514227830060578382406847048440437242074776287338844669945292615079778886734510078564785868692366767046914775589614190232159072938805359836865990924088094617684240557676167065616035566690246044434688352593826190957742040027660951221080467701695764309971507674118898504349539697066705255571056001098438238820181448365285047108323112933294769877033449748221382695040018217562980230744344011539553770762787192882636277276651379233944395495220700541866782668910043355812680265896693331797388860393128643636310043602136360266173767656957272014543770206442389747900542709495259134359394584140366630999508195841263606507048381512693882042669469041603191214316062905720724277174326681596821439569570604159161310253021220436227105462018221373253645134373649765636321758142624815344626676262346445573916325836150800163712000164711911899081171338070483668418943572289069805017724188683204819938258614997335451222330781568250735732962467404407061646170562151410072411209040564201015649831192614497688756557852733554235443707200622987800314935646160371559579070205328073511848022768880258332775917043189824612041659778790586770140033816271511982009203245779090789839844707961285723583296599443394787128655797562602368521713210436734326299954682493855562254089374643452963936293969731350158811952622865492308735898465263571511986368206583589861695373791488323630350035910615690748785246833720333733890911010435535723500583502434693856379848356884417468448851394710257209969376378791270368998713511103072886383407659499120582925032311600303571125033669813041608948955559949028475732092158733748107443237923375144800566430401855376235866512473545684789694686923968072896449068225940377133370247789858716832801219709760028757136049498064850426308052835237504291209254727132620788643250532213402784379314721158906853212777060327182087779420733990774417524349368792276651095978348720582476532857749613424479860511738006953825050585041540947799983727704576086129559529775370047533136432567407154294282551029878346113107401462148305357129213509267379095020954979081951436609464040687006012469640044343490042730257888126899924168985488907551252466633926512644460820326236439059060909931738840484544401791818947506949519024841468717889560910451761266526015682777565076365968022846769158044648973327343847812606683184393875677106829994491381589846747837292374425843999121219948953902923879831221470009105307954880442111654410072408346247980410683618525749765222209825919184211807208238891990506783213377007263325012479215965667487553841391299967616044914710769579123761896152933909016601307061813052702605095916854891927850212976676181230696247291570888532192890116036012969437830547843861377291940589215834872934299894431982987307270683218019717243482288944296514260889871883356777440586632626715331512345081507683237859025882364692348237876507176992969634055235821485137411628413796949523028381844763683806400452006724532618090527354653615075043458022070016932680589529524726105844740474218989463891406364454002049187186286958770313648991476572453472951650165534664029585963109062324932812740052821027311011879357792204726669380927046781086641662167584679793852558712641509433104159134485183828240338384493401580871878184568559269963576259004557313385701472915803275296340627972978860548314094623131026866215538266610699920055043603072329368412016474158248402151640919441529667516092598437670270215816367785236737373714656603077321115387171083098329083637263120307270956652172294473997442324550098885285378196309317009541752246446417726310687330019012373832613896420013625853542166307604266416836273420147872886612263099062439500899632695021094141649615682362758872045305228325870943653995268393020926740001851894033271141962682171953994136323023641326150002440876892354157444183728786190812703847832138281735089163420742784003102171467431606122412886665072399992794684200730267900293576742256377919181221662722766582757460252747974585551705363214196197255128881762346421138689630768370261435870619649110428620482619786620303835984116468619201111999441547257035735495800508597063423432018051485200474147307435186735711904207286403057393652600604978011191947181845443123742947620251744793112511163599996324006480525474474824321694605402179865999993297153976081104645764841274801050235028117392004655974308296011149259265062196934836690042510219890720966977933640983525566874601232553045880997046841972110214399614658879319105368162368490485380247773142014134855717882007544338325323729396180493296367081470203462538572523925195519436499931474876389909851095625053494138637059983689431359423074350745257332153820795551648039124950308109490927063270852834536576925242209222833656136956809294548742912778893359839549942161344695555614542161704770180529289259943169503543772166068060076047510692258740557642055144190318420025193810732476210259782612052155458703933500307337008457821309995400077251800825647176256387117133327627532892368421306207326997933658045012428591240613347053247180181137957338924511878607271207926654173784939069848847427756165452575638141739537082217937507502357980819516085932858799873373138233448442520663950256872402401126804688078889318699325135592795312501673002566897089557430071665942372580387445478727687744709148550146641068603369771414573773308276353069221221731778651753045549957539482814731556081494558860040395658516956281361513931802379694258092692374417617201145451268624208784699070432759236889829822493304457726383001650645252429860040882349852362214392719317161210567500127692886568679166279073068978323959012099538727067477331564211508448167082756200095088702896966122181050683956300422231600591701415987012479922055320385708846314956949831150450636085569411283995424832346448425730451947939670014516602432654777242700931372182936940163487294355638928332140457417752462787088979265551332775275038000865923960299637304610174986226125302258470341534443659726096326077698855659129124125297707800622831128948518318019067707666782659655461619478382018030962947465161792976910287102461086857006718079375475643072139308797962390571770250069081770561969087378031281281620729906640777627843426652691385358892543233205384611860973336050901850550465709037488702321392649478371336329327583808091758511135185258302897796567808584140523534067916659922071351196930181772769984632264407120385767065242331421647896604866151265642580323079954323954964304923781354446982488236200505891106950585330686271993234342341516881918484780864616728210927500894827367538683197331337169149235449890200603870353436818762797918961201846710398331062032794877218572319736621732793271279254852624407051285394640885055116117887252246105594853746546088186329791157202416931658439477909319969097489614959923339535289962343075192984726443812359209681471516986139738145550587786638494559321032179796566084530837820883791718874321160167669546654557697784685870041104853762244951669032980386098060901496539405894041089043075869870113077905355336099830226204886860598746214498921464538156239617212487217367649404009514085693173907884197731979353771583890577943856400671048396283625723902119041819659278632273298405516432471308378378459417252953127930373353717510357967418109449261173511744484775409920049100860393560559960656090156521678581495881840662590693642931329994474593476487601402680316434828802819921797805249670743799722433391953281529002938853537051914934712344836843952566164412882587302606663340807539305299839422062853671953714356302861677966629451811717782911206078934581741474747668032088582055788834567814197307441435247673827746695766060570544752148222290045863738831726290795313889272885887931906362673895115590265526681732857133511736509695003261304366032717806483330015915655365060978325828723558067180149425343247422663405397560849606460793560701681842732916897832289053490393632188400980554738292408006819262233113344947328513195756520492859911236572302230408544342785346519545373339896375126286500715964402486354952354810309892720372584088473905803755891482206223719788906799726959315261607280430620384921508424356020229333085292810794517123772223309616483203748608670464868930218410072016798093867484933711603586402316990190865891336586582924120596887543015659377392387136663694556379459441716364032521798017948809681252228129579951992651919708507288004432727999600847801652057297281544742852890033607605191220917931476776635505087095039761943070544499782091211109416946465172122315885609496811502571797106899067297384700290372340766685641460841617227835299778580173096276204841917456219013506101833323897086767968864324919350878324925790616308891283754766959946670756010128791347742586181377818590252431312715234525472421589538192065982959793567156834235426486899685571442587719723831132774756148966797461661216419383528851931450455495573255118113759594964638659658709162392410930378737626857395137874299270096039014746615177234528911170673915327845271316442702913296161626196824098761892289276992833043137446545344679778863637873773942554236710716844776173817506223383265053155046066057101692537362685130788940402619099181807212717230595220563544246481750713803790336623026901674436783748903139329342763232223880898489038152533976374836857886400758372948036975823760586651323429004007980738498814071853148902706690130789037328972079145201237560922024224923817354778396204882201699436217129535844209791647131719911700254397314432411028911103457687886417505623277834995553497586475380630643752437332502402412612000813140201451187227269577084449595204010803536330652873364365962561784788809812927449749738596954305075018847997072706812582417906824763223646653242820573341772315898565907693496480308347541321806098022490819965011118290117405474112787873222067668611699968297553941365906273827615348281387307937440684742324621989043571734061784813382454550579544466809270472677410672915014303798379791121471423163044021565829305435907339503680302109638316402512980549451255992660468881660496330616172380340724092159385996255077058937477258644404300811986276996953432285484017592374547344451848190751737795555176137422053925072449704235596107267628639350394249031239743544016498930609186268354508792661623251396153002449277812926675785323896018009910197319571045951171975817862860542905960086597790852857472665919558519078552294189725686327528468718743397469981806774960400894773973812573495947315077906302900254804086690213632701558900027877710571254494708061870772861342394319500239734017800929597880775342792915005029044935951224289904702362082144011978036620905006145324755645475424583685958777062193170262168345214457784639303482721973683500692385786221760529634728347585649480448074944453642481077993304606021658373440166739839891478247473114420009242598160788522502224098953937333270728425515246647255224143374972399904990103971689388487285915131911379235217727842599739717116559544104182698992669793377401682855628423384136321483684059238949852989041815996711275796997083663382432684331338993615581414313913752303618422259186135018581138763279343510419529775537352174532856002663882293041391711675656483528140478562064256691325387329348761125401956119660216980326079026812581260153513348739734919833438842812224560047172784356379788582597296296569371675923561485764735296225765784364430615238494569831677711229646263306201549552532637375811011076824746467012514331533272372738905330386348458730796381186313602017751855110123980407937274039229234224873988376382217403225516367451567819129889062122608982332358847030833698299164266269907314971599497935986802077563714107532989895140286896414550375575071726604051112457600014671857535392242848410105996048256749198618323744374162310491635836396450714306699735533757004896107612737725122494709885201274125532158700770482940694660356809442915586653824417992932445483851154206213884631548794970322269438744620125826948541725310753788813345076071711319238987663335708351646010998680200279152243059637311847000492480923356660485448743152018333662581061941008715426266179210365123611544433291590178905277975334815957255082064224482821423507283067923033981334820953136313989775526014173110417913718873132555162075158288881051276406494063163359895988333332540157314288764917727027971758149413978076518767290308351952359161695001135460527525338062278902405833194119279416281477189578004902243978406008363359326638395643125641749755947268072864946903117328813092618370163216008755505920018916719698490945440851605398369643021784112305186485951227050877728511143311203026578906148328297271130747463622948774665521049231346656749871203628680808846647625405989698103828679039417206825202508811835181795131595565491867003371470489227780412262244137904078337333176333150167433271275790404125655338370640472040319817269696824472872678879668528648984331191693368609996927291799941504036811499190795301919602461155180670916933372044686017940272219473423758698861935201743799317026257184387018268766054709349829569734399656441519890090613192341425147134947674637505931505071620663604775099624971148488159897283500999634180781564635840912345879269884707422385199633072426597621300973470009050680528699371669474695923173828233797216098900686480077306590534130259990522936343354350768298452753261302195818519742553092166434414153273872727759401827291679821104342976679385816555227520293395698682164385528298953004645180087661724801448079072142383769638603942483118005950256950043123889584767380308763887530007673251423899725422699192281729921901671337961642452753583003849677252519903128960507227784816662778572188245043464569965293708111128023414598508981514579977598678717708068078385582608864352481472571005502345626599879812251357609763184138359983468386132513759852377217852705634646814757988572879112722962656889189311112893998855428415862826019527386304803202661017328847720669192472081863670380512427351948820390240781517729591930352819686919691378156354284733303129112877238522965563330915133484920676004553131889121727077021976834595662191841027241427991761139244455763958605054153049640855922215648229765865675675556618055577242781161430014090531674571469716019233099362497442453576379274607532721018191872508672170144721344867418092915829134801484357538501039299703855323971680028918428451703230216500785643763071481019316503373645972003136681740276581161613959459130925434591105167611749093051027521002053001203558639699604823299942288051870567250568149327012367509754786824669743414908803579009789921397861397715770305523896465765840041658902553913553997601673223005794302731315917910347094333879507459230369191758585408620777171974854842514151423446105111750633724986195713999711115732474694599514723951599103519400660167143465948453569582391711431136067933404962274801151910954277717809371692181967055477494676104511324679550553794340080129736480069552666140736772528813107916877114671802633967522509411933881397275298187096476645780198871403215100217296409780213913062731898955271579698491483913034158731954585997125279790671551450938657090807420010200710635697196156415046160541674461787095386379628118287690729253244232265862551177387352914523834410532153294068767528602725427682037874753866218526976709158774764685690447697847509246137223579780178113443088502425964829063852862047157552462915753373754821361169117831363532578020876965496767940853723984042708949129220366176335028935965570046579638325962667171837379547129870506120950724942295842544405407376229576055835356058606685952687035229790626414601390157890647851249755168778294794679698267145693128067050983511226262575413323772982052490483644927143513620221883194603102396215942739231900596744210771428343292257388588586609677116713772757596962902256759546467829322012896451010963046762691303647177813091843718104947597139965127108869120273224469434274829070090880318655986800539277657990997894295719392731405555496245081121005982921675937565467864167095866417089723895015015741167801646494262873065820590791899678912756929748554561105303592752185558157678926276404201409526070542645538311850576352957286780213905198442345917242420719794287714768839225681505711759965778345462261466863490569275419913360249494022257163629699716631189376478605750200751858124062541740189635751921953272170180019928237983159444737867784869092951235370098530927366123290262750605093762859939056194257469886431825794606334832795820543488552114942708386717342831554737170106544409342849651369901555429754203986324753252229747783847765261821482783632797583651486236397294410588485132696952444267944292523651084310317934269193873004712590589035161534064968866401603936657368442236506574256350512524212754397381541753412372400956816711724984137151702450227587654392369182873237676533023109273642013989439735177764642643757141879011344309889141228052097372069392469749144170440928623392262103316164321372569442505301133093394783364120048961886023910205950997104665306659352909218091399885764430847700478353939757081231846406334237779629644565880369410173704728954981341188393023573288194042150319923776723339245354151737285412309665580257359300089473381516838474113098457444042772838914104696216918049519947132413946858623154872123373703385976903261938022279601408213570813699701551532153694894083734739149380421919025256727855272411437214486468012961628260384859692687540699465890363587516467831881246197294087734241024742911759954591394284561065927627401109154366765089348491519913117724769426835033699560411994419467640444677392998734205636447331226748182780288544700255000290446344750837081809033631667172047712389748386202841138589742372347538257503174777858915957275678122624588336925972250153853748606667810496683712792534318060542192585979930201254210130567561080281612520524223861885324267969024212873057687858883145131686936052316386952478640539473867318816347921097036868985796450107485079263915328984178107660475583142481859817511228357193675249583650278297914670217788017318570649367779866542156121546743215248244345764280400397469226551840462650748507770459459846778902239191017792962535809669219371679947351639952761717079455667808325128632145583589150294135887552679183693357896281456991243247490806421134042136799185433432762823615529590908593891787868269132805995203890365056813228203846074235703255900287556959431014202363127524011278648313030900471647728063274321572117681239403692410474470159039850774362763020122027915082972302935679361843265696928221307649169583595007550459971775765165608930182312031422808433919354863059201109016319594774192711767243029381495638533514185999269923174959854595356081728338325085670863468344047054263856143881506503505875370925344323216112678309316736467665602981293767720727487051888170360009612352705497529792046303981321042663107896799782779983636071492794886653955255502503411095174696759039460336057129014657933148647672535344060278969139406098081902553068065276905836009739981173261503290209920173697532347984123318139916963933835335029208970355490062779732816067930479891525392990941199526843519073430913449746454485372006512024241111058089521508538700539630081427038479301627252162219876748767455651887916439374909806029376315157076906850704364638472326686089222872545836657205515939596912317588125736016593791465682882800641196532176723169745846725713203341215778907534447502725495579977560789983712266124974353530923927345809120868072265605094833089713924688158371018860344263581764683185224992472698920435710894874792223078225307080853364379910733288374994707131546001013433596740936214817402843884371019277907044347424097861244249835619962618335759472841176246425016715212505730974497965074802107909346765446915815281391730179008181365682304613936903591266403007408814346223692038482488505527438768441422799587976819583753898709986352061770667013582542056809216105752523662086189913208374031749488074464809182937349104720617371032756000450599962334006892661830996392020184161116427443206151353311041741154856751907594333893296092359714289957946940509223648121949800952232904255819810263530237904879811724282582909683770793681179405275705469168942048349703526141809101533193236838553161457567884840192279910920124545794860594821945225583425370760175795155760337505196728968336697121110838496608399697118479195959060467008453006313021180566417726911812117434936312669489165615527257231962572588754992011771947453902383817743076836636547493906258753745378457662485928932906876850242000320368497386111751258138617920020433646503602346221969444372131710239575790262678093772770093274112654518952017474027721447428187897644813256115840422002379799322986132378294263146343234459053623881173636988720498458679967711019428790434431030522013450644677772666053817821523397609747473932956940531649867670288865152040536410254878048948312979832741571808266324489052608354945236718479431276788999737508005834834261818105826667245180268515494895512412634540643989756814094119856171950654968783131366022689561791358492095474663495372215497145241076599426590721649220690599248592198067846036701431576904333423149457782806247198436284214586334098062380954137631338386997978022158761189636514948018495470927626549729416768152744010959337715752399421562035616098641639753098679498137322801138211704276154660806084040181667781694389280432866279501955232380159061788967749133849481920053718700661358715527486791652365645459822103388081099589486642184411084609732914612915721996590367758832981058336128408525109897489859777445349163468815154913425125298509691976558123350822263621641566520789042732773862852954830874995842800582827404183520052273386354587597290619645120019646741680362579876257672255883672513045521021867352501548077254873211896737437596895123088770748361806376330343928110638302827308671872811930729749436949761642421993235893205608367131994151386099022286383432961000304706343661347624390431845941488780037601925966656166243865665353516518898177135474465009122949726924944597293262387770580611499378040746693540759011645816359273909578674248963209154832887830033677051973250695434649095088588218640107733574107468965745634211727954982459882122104613365334032789134886712473381903184632623763022272442719661296179626386345068930210385804521141020432443565479144708696345476303255292498796274682343225405904423412795944197191155028462914190418228621357769821738552638090241086830141279230301092449620127154253186271145948014188665640221431235004100933207015270964037344360367517276895072087630528257689143807072748964516964492232365932048158035015369128362608473814506730084676789292977969986819204608358457338832210755582129309757334021646103632766429194093902496436843712837677179063007022592474502707521652430723693491536675445553750445210925507321719852776320962096090961888854829985241782267719302699753591912242282041442475598876164618069829428492969554092390358208734036337310885755005505797997413774092845009061039645964107340001177304535512936393634949733004324577257664832077376938585382699173240877987618177374205715719919752109868437668421993986378159296401868711034814584231587658227538356524169124307057509240703529856987583995763262618579894500841232371999861744017082140959974292516512265300375297055348334785856465275470982807614399363298050169812477176027951870587879867915923181391077060522939598517668085366542400934105077239500588679570685239137966844663919260856337859169789501946636869395981930523466732262812290291658415136749550213689194514534654503081085977066409706716403320837024757227888416979070022618079595445714539106238943831306516935848486079172835276654453293523413126535943631307628287767598047825096209974408947484945571773929511688329453202079926307707774392895026356589225752313156716519831209890473718749327647376216290903949878521760714757210267718030005331888899301273708348639289292224289765206919249747799179002952182525715050817507748885336759067572502840985250802715440779436486793653615587344734917941224433415092967739362426941663767418452345295262285437081592276237780023977731685243322284921127555848609873722905039198410213735923578867953622626815953129657904753238979983839061698185600821203780168872075077395908526346656348267171957357944399012304491435801394275647083585811491120215276439179674222080563789434218718233376136870598543033693104145905746880563940680056289149318708250563790094169657945750612740977593432498172859295561289484539073521954473595810833372706707745104240217916276670815307085787297441892401926418075937350449282379761130233609107909851098396332503820129987235524624410228075208839297860698104630624796938796995537606483917280524780664838686589149964872334959546126624043838987517453280753404833433318319644431274589641065705968701517234235784030863781352495284011384348475770646014695988771718777707895908869361103987086282271150582990644745539802474086986702632074608683723991883388164576918937189380504186347906080425064167649166772289886093783706858302078293347625265892086957416431344806103706072127530097150147834983082765232035933171034892909433083782673857961700118627258004552158946304169825063724473540570799127705877870532429702719612590040808635325215324994777306820847154023639880244203293108240271184976665496728819656793048021161521838615788710124330597276328291699406568954245908055182392162040358654504724482004750131326637599401565010986417055773685213795714847830032539134553669662169725621851414827479563154540308043856271190353037415991099156551726475439020267144303158284835973946551835041617929172692899759699001195066379833830143348720935488109340414413690951066696610945087337112238026432113727125680932235994740544266424346134768186719593746915891037018952117005531669500676358434653024017463291307974684892176283048455032454376634868176113583038779946288167772675359699673484778868998549390298652308619720680754004769978078512796580936153134802714033594947816608596736879229065158578625310967616460283216794704849441424061007213821277233524387876708439000606697501876672160468577019772974172932990124019487099918737842023906977476566449603819021794688301847506561033071428864642822807384949779081979301755649153415262354770923696146651482678281999739757851801472442235273811286045861572880483637938006156047213518392577931353991045380916023248950776771416043291821373038657798395807151490802521257250138329321817716200150927371707270496926211395177680261692427161347155161954726553319920416490362547854921699363821188309907182269167985271541655434163894409421916118973258427478370324667448657048124430223727174880530613413189440806701032158835525053879919802192098342039861205624429257543256099802248165341187815796846896217704327589124162092983868587680361794206492768543172196818656061240809186112455644000000414039914265227784547990346366242928207192116587606110007865116502402842311622587732651075857294476053117288117716872490123465811768088277956395118082133446066641895154511637937815932415895013081835890617131739406218040613106560898870072677920032352188185974375779718242072049967457260046709098640878042237006843109555446566064374453728733350201503915748554894844138681899882873530498973863737469747162448974256471313651371121504802955361627950363282647765837920681357039567565142618065477101881366902152860652025490164379805464452934683908070348259576340822016863360656492206261233809684980470795052082231125065483721016438609523888327782364640339339239913715886791734734396093671374693527160321418704221648002757393711546359492641879550383166553567718187338588602795957759764915951934452973013963867181036417605510948107190578685188590884613683357078528811881342677646774707814094619259317268166929366891608340249476065038545318971873871765687079494810785889627533518988785229951444274762641473778865915884269033739759535695134441254075203892314772816175452720032814455481304272566271466339756798341236552031900554650649869478782453624260004585770430971278674351905190081764376493034927012896540257085702354433438930708160454479306365886478949578709353734469007779416315948081326004025358325016822425199447318630726941703402987836595907758219437868421086312416978422739162210989105874279464805765691643643556580992930342205236279099806068402538861295498651835577123176724284146325774815869521206503266534098074657532927371899039606232732268582314101107274875295594972377469924945782911794174298142626547364464329838645764313356730881591203679431303459269588860090438920304399984338530790307465595030610517426298697695425326837002993007011285182075458222937544935635090849566521937961214900684829530529357243607402110964399073886430756420913799824139552361188853471361530507781560136592815025372931942800980056119851512346242339785698509203067468447964989767582550651304106562204286681361905156653610540325028489101367902345158110987504848119929370388101015588699948405868497451312957094993451810938016033468335784299738043559063448895748891047826265569018357385243526869966138412292078303326202959740116765907066357198568499956455216408496307944951883781424288048017439029310675774461155445591573364064629984418233488413273396718707652189928307882383395239953322952282825630857942427087510130572535841948635719949972650821410667430488560520250891279917400156596330637275531036965657648971912323849388187525218367957506001127153639250685448122122739590862206020793041507215667569120430559768401446823729723696768278353555474687220001359931577672766081696649151197778782061011841565984984757525529677712828163167410177712155654650605726162607298591550667533754611705370411338860033128718171415161863775965287514120654200634169813506559352089542239899986506527530534964177391724452582540584108045166734784759286065001906803702823384766485052608000606354577568577150371334359798402520265493024752687175516647062659937420773209025608559516359763085974293699897113411426361866534644832587738376248801984251079157129515603847632832272223801247018816816586812576063957425326722154105635201233004262607944853600376586833602302938267685805012231809418386148289542663743709067116300104952604314824799508829046401502482114399702567727275739700108680919207960093630210821746475707841826925497705205255612706089629074173990606785010852872149411117739343049254795948502062128503806807745638592026208617125591777534553593367857041213714128294650381358335031237205603719715945206662706145382657346604603712772885818930851365843674971198437962803195898715917538160622546734986872606100371026867409352774665111044856204571580797059468956585716490317247162301540104387127718001738065113850968381848636494939087451212937047072258416181250234094206771618851535308803853947864540733815678248079008564373142724546781671159507964996001815253692797134612886033022313281964753585156495956151862576603272047122280431900087186676814604042878502803236569673534381101015911081848931158881657420243706485416604891339354775294310223168319567477422745322800060914408132521828522551805462062341296895025070936827927455032656657948992429910074933502978246177050443249208824478781463933528413769099390001241055498761680982724521195080628750193903772997114254269279945137911607759562976877593407144972057708815511229197660540357225722218058035843878922801039295865253959133593679430238788063682022495849889464657986890434851218821027325121326639429627286614967658177346330073615491805400134584026411542536869198315645055903521515271255081257389594460520765899166261398465065061820575174088517215658396346254663103691463661656684977120462490896899148219161349295162944859381515053200435672935412931439661753972734914718807700444702128700709505589763664714368510700967521760767633164464274003658232801076824167582698126294061291114822578613557940493889322147634973278629336759003862201290777460797743396597123160714936133797061324501274197432536862638457119595232315867717059841458035775899924498959499217926881050440958232236357691123686652715920851053839099202628284335927259781545760690938495687964412186686536052522868501282083902116206043592619264879784844110959407261503960855797693945096562177314450740907812109640253646120805566125799815561092064899545395495306336698790569515272223031176795780818861917590424962784320999872887129746335275625969509119548229988341412255699360046893663411625640599585849460900136899099033420335082893090186054656297878964436172402542279185368156215462658329484831399068137408579943023511242823889961276108823927900273970040137510333702882424043144987681495972458917569965224124960460778473424445317965251017450707164972394500943566087775321954940743179023549452106319139236823861452900096007738338070481391939809258940022164186683190143009907527141178565412362118859412544304172748862724323294098177184627827508938061274280882387675909383063664881426553907551893609166795934105256530761343031151277984799667492523820447119080712028771918451446330650688498556191895506093599427349885648416599996484380140884581695967670501692488723919112350501786736640695922731263215759826673403180064225484626122600961350981609711366669102653539866259720509494328356522498245968111114634973042925059802170611079563854219074278223432090495318516402015322839030928165407788081854637344982983051209880331308099921155283591966649431272731058041716762713046893296439877789995836134623193202470438145267939105267693269730004096507441925917186370379971519652458885338051027270280125118297169562697535091732531202016992515775366133013665059334305149244365903687925888799852051506993330067527678466530997686439620018010334548623486723097460823725358330076605561422940224203073371400769288075539586325619272842191729085405163344639794253549856052562521480353603718448615890187519221201521082874338255322740222488752831884018200924972234728657679400158256325985288003649824150854413342596438574561679752270158554710036739997921307731568578265245130187776270611953727629785417897152697469612131726839404758243875208285460894999264988062638683790061289634217908018395309096756186386010085486207743562206512926475589905097816713281121288164068757185405839792601378351844784623298882287089214861199848210949024253391820959507242295258204329731673013084115664424526276107229656159316042308112761779106936017461316300283954298119742634864031381577056986667079335231057190076875396331586214211674680540869368490818479993997051416469482676623776004671236639518103228465532980722720320109152391268027074579605424096398192624523590303831286917928340068804979680020763201740731315597495186371957778203510981094573411054274951224096484583236625363049530850540163539807293817185376346228656763164828394991975796927027088492194603983894262114478676003266468275504730149500885611269164069937123178320720077700899087068121909366965164766232065475348458070383593546126402495162666363341799351122844513392627158027833977335994577881817216547856171613596422934237139071909093345240577463973150844124934325855404601444875214867192559019261949058327265125729479907449493478165522042495509305997478896239162746480702781211331879975986621004957319725322090035323559872984560213309725101989469842227468386103773382293220934440509713306775831895629224940967706843694085527033982617793776635837496772006092345824470932310091254801242691307371402472503565123170636737878671728605710995829459325857220326175398332845542096486665969712064865992388811694734749607841669651273627392470048300431735576328507179607972883755052323023401692489529953227061594757614098205010893587783476818487645582152644204971661309497825257838970060573930675216293599563983512408267868060011252478792567044403251312751735300066825650883108080104596782204176974928024391824582050655264809203325572934396348701468716546368500841543627438213651957702024246746910691442314845229018764022967620829581578872536154748406219694835837960014699733860019333368649029413126895320374755522914082399625302032411399772356327686851720148298986534402485665139823639058030227298135215719299800369347632075289832313373951431649488202912588688367209152176513769972018724393585473231044125424608613320997282195389795956145763840362344973258399600915175988732522796127012952390526366424408219057486866013842644575171293730567662719983066313862941779777927318039403060353520200827482451103559862494263115517077943622591224119753604794066294850557503467491596151501814405230901345212145248684655685213865006585324671113702821754894953292549942979595899561247138579034824765902104767976285710380276589800184380634265029537798844848569944609036977981042513900357031937771796880820615051369265752660014820099580096481010055248316625704258497352174110854867293979416030772115369174959347196194836664388048134272653811678955135264778757071757619803496699032546460807618433786088971074812767724457905485818685817502424945669345036964776456280847185523379659289794679159685595418073073633994267166409408082506339358202334703945924159731249246633929287555192375314249069733953041322159327257386548352834420193698417444637094166088233985342658768742381230037573481293383135945064858898175731927664239121830995502246073622956867662190487195128658207531051878471555508411669579954563846994615118415136704068142382743919215466281747890980955220985862218276861764529668024789982425586279685414069822173288009366238425589119488523243308643380179039485950087648114031069361886799065416005481372469219523058796101118221545124840046981809742088427392028387117689983752997914573709477465987627141987318485470288341741425842936688024318508177439468696319999524931245895695028461130530450358932450979903853803192542132883500250460597753108653424320189901858477500481643827059443588397345258822756540592190981947921045470115372018285918615900927054471322708021167928214132309941294716841359327802361292995238347711319159222449245262204335379447257040943792854736022486636234024195000302807692744377179610915456056539243464160843023701518678960871287343953367062871176498482200398728652750510951272937294317279438749757888279122065308613130777218263263015843490508499383597053504868836735955568523919218456952426815368061238537128891486290512030077062871971136730967106368868566631046745884619875012095499321504713310139710566346351245896795862070215863533121697712612941003977897567993244625816105190846194667385972893950789977766307170050615148102819062891733661332677725971781821545814599654773497055325323019423612479299745200710703551272797313098487122566112886430361697637365319651343949197131113577434355485540142439743141753590353501087930245215513556331432623473110284341335693419980529663168538327349773247062213707737503165311321892456232224910459899703124744888913366244474705491126555878746045362081898579149221142632743180588869388942797610305628150760513541938443421448230594505440714642127699132271653258976324545847697643088983395627040880981348256661620059942961711697923554521347334343605183438751185775453828923467847973657780811295591369835098999757436384438465940320217640908727817647896145343649299972640143980511581459136462250126686328448488769678154882450893845004747324143819941581664112736340778733927411662527226687110497137894214569197107776675172074051566366824535265167083235943145675129072251796667238577113560058090311807064625658810698653459819671872888715088923742279590806288113025889422394778194280820244228676173752850646808862233102122270396262838249311791215172374922500411940395507672680613092238916654503846554201413004746893537741159247700276892488162764208598820290676339843002105493669927937757600048700141362178892853677564045547724223357786625292310344824318842256733625464606359420806439537784973915341391336520688718474978844343157810570242083183455720316100517080655982752454282570024234695141557893639674455934429981265643222350191260768512487632640859241556310073339711897347852127579765001045331900484259973470712082473759172904227647169604535622616583490391136675482565947735165425950238327087498073847086302553964607001529589823243336086101064331074243838426826768267653973756332038146637412168002157590872380597259184039973518348333269302296270811082567013463273887673048720378208178313161220642074620969426124206447037398700804143288921937913569188225934091075645257972382364048569385725670677021335215665872418282947314171669264925543984177640320824138755711208354097445292324661316830460498746182869216287156879486863545791785762950207870208364030019707181157797951781515090065826528890051064837024189006424523969689681278280806725277390477018706475565882515698193490179662601642508130507623222623091001392914522940534511174670634965694666478351423632961086228741190804204705441689335004803124374353811313486469474077346948082522378282662120503372466018156355129077668041794677600670149706591829758739638452373374495172327480639448039949589245313148731164815727879482709917696101467863688437823092769347144964318168844021015581774257767912149806333102828039018486832166352966656818128810896198487696453404659358624692786850216464224199621163041308349075022727454395456925646705174928389465110973770643220029713544384547740007211042347912739046573330132545088223487887041987260764774704359181274892897559777438741521920352271157346497472430208187290222337347978670966827241217002721505604734518214447581079216492975347213673305586594704705831459016498806308282902113835461537886891907307341236955643950130750361512788778199266678175873957599325116115065353638109095762273202355123620151651081304237487780514956334833475662067682578576666108959922445202270267791708017162846958925985604027173743497023617710730744740508178553847202253465934515656714341493923429998126522694206733116638691799022243259955426706094390002874720483265117617659413441260617170305628376861893626867108823366651849155483004701749845954147041372505592526297036544154143541581468968325350577568303566233060709315031398610847805028248975214590556338718545283353718801073579075991049242515050112550252346061473063274698963299903759633525562536695103119525377667516584075149291042613526361242053932575197833904883064817879896733959187531555319095944529103120494761208738737937724149501432607479592147919273332160022978985171497876866438781241886154875476160786096022887625624192832079580302510613671950855184059554267333795451389078186150450351999270802886318787530773388596389654310479125580077352152194547642629353232795086351442203695529295165326036004965755521289588148233226049811960333837820457959278701347162065451236353829577964877132797723529499111632582999481670990376836987691692492831360848092007934249716167151683845102430850527863071955167439215429038364128629568489650542684009782900206549579497683451697009334434130890253841957429789309645167756126359148613741253564243073142576238104931742588646071044341024885947924387703502381345368154335230278666511028354446197960632904521024636836227389748532182586837653880038642150621730909483561010743509209169696607802312202198144643375432054026986902396805674229205187259646942296831592222158916733651766076228323219620810698668208083977306415345171327885244227295188997073323815766538476714933976679061177325899406916547087937431073157368476784340461203483266100312524241628901043316517559781982151331392730446053884351602400210842941952881400689045881835710322793536715037722588184746273941672013541230861164316857048713843039110886956741167007859402723038580177945994384606513125315084144065454620001755262802941884391798439515342284882277891535263782897237811773441917269411179154838244117465433332899000357762941590051246354191778346039774114282975098710173407896352322652513516684531085316485475720482292926376457459780996920658456105674172907273019617298568550554769366412697407645020618360777925465205237710065912325700178562201053281529513312024160822861201814267391589757440624875083890412640085731111977061302514621545318688908364044653163926131242909429373941799170246448872599076281184164753442157962277019536719162465818257397851881297995557244126443848977377245305657018165114965734729412215753807140856991456775890094343988520048946467361300167090942732649792384729932564122044479167904817210235465798712955580523462010297885523000672455852149595198932018423012553603974110272736075405643669607389673917419962367916019643572125449168632323401857227634812029741216218277863921351909146924657959452296602510898614703923003619844586254504617849925022380681096817115594450485339724226334208897889114319520612736899576359062439423219878203494903771409384220838668470854758437410261366393229679408695775967316070072843907301379940802662337309952181185640547762263251673211308011805232012285168284099626651753632145040725923923618726066578404423431024615958045782342251549437263044906183900564511451280207723368480565636721457579968875186827806239248143095405767802049228011437845420003095613895758493306409575659401800620865679529841416933890028501507454949135784157917463324620452136338170070273044754756201522966432992935899907219570649963537143724656216850519627184842678130134836992100971951858291406328461123978076460718322539105599331100034463491239639698933603327737013125540442943316718630909246021486472492170199811222736522500944064689079793238810296503271274876778192706782200790063738300332543423176774054401089318404658671016307286826314925665670493917140565273110215823775205269544545939448117261065134442508325855769541756136616174958567569058352493730748779913450528237657267567463558078624119481565040447130498996239691202416466849959668824265732922502095311812599808359235751232024200627976430185851658946370013320063892029035422053570559724086307327905719145362533057067807937371933553318038954190630539908402453401985709333363763119411492359379617190748328130429940043301170099290333086160963356554564692934718975781355157892524693047358004907091981518957345828179969604557379969401481694822862680268244717204575319212223241570317951873786531548415357216174352074969751830471868017240476979668599078872311802068475837376682543481005611531548080776664603887980565779668268016963537848787025133281335281330300555324325014070662875891440173969858793732734889862913369825186282486559569534459182085031914124124305197130177103974600232167189924471612373158718871421866637538504274533556197172467015922349778550994508663352803292768173863730913273988612734793630039394398448644735780498304549351219557840246240437892807238633983314585835155723710731631363155675784820449373560654110947921218863318805532586598491106762315181998877604696429017767338677263174224353913768060491339699854592900860417981967276657963568561167254094273155638779318486713999989947740588383098071282929847831613013704536295900210970696077608156184775333705840158713493249516788412153480221394014837801440955102194695612037528101063895002744817545496041934795258941826376059535188388873487364575379707191384910256179916296417386073379107604982985427635904900767127357339701442487297847644858295422398001166223919207835275006759141249825230412811815195015756465556407893437989072219549528961044815998519088315127523008698143141101717976384804387214233670327772701626614511382182867761694737630172883941225077635308964704669723260147809473908660531248763748642303218996940743536911653599605192581461140770811401446694584535350991728979771058892318782891404911652441722491842658645409167055062814991157768560471190493239322638555978473754728826265433225278762809264751810241691670613308374910486887786420918248223996472766394642007657714430366859334103388801892141191172171937735847223990836901379365112083332843544035747369572447825108444100944547343550971021065842699511546180403250950796864931664987051143455079918582007548540809063346310266349383484611579546667057929588649209383140460990613709650497336049026226326779286335876394268643953712204511597371460941082304125975053848074036383230582136426885501511713903615982489811946250835623922453267933717100840588635140039087459996546660826104274396108369420511381087174489535948904844893614473246190019569762282543427406764291390359037310786385115489690367279428294563561874995376268818739649566381190095768875915472919594968009849793088522488109453344918521371151253709082352616380576078980475357779304122111039029768435596328359123759107604747596602606547615685556398757603124109012629630801428542806999175381913793468161877448251458667407815789139132458917817886904200901905045511507809310904234248374292921995152888357652933171930935800642585226972664194947304322993417512652741939592446269411959756038613944689052920773010683103264693214605029628010135375889389656356343295355452007013027510034428601382710831622079655783577644237628629014153154292865892579505439323984767589919429626139261061178413529746592643878598644613569759747607905444302534071372590824665377161334725631693854421464029542175825496210753208849785754571064849317495433564365211487101597957061509762196624505443086595733403261875397774873457146293668651184512946995501625046050667837489054316580791346598451480009266521110156384483280211817934480490788365504180372785475076198334978570837820001954200477168401615992368909465871964254154559686742117411613694337065610294751351188293380265174192034956908419668702496647877776910211856562903496478717146381394331578205822059223556899840975024890416439086423744405573998063250036538743139837232809875604483894345476865450732592771132634012043754782578829598054834710692687451321977144976989299189412133620713876731558151858045327211307340844306010094997591790521191714106946999574871190129396455988776815323064043896445585282182591638893857405131655385556252432312336808415904423642869311520599813458395825870637443630602387827999206234428841327491297236686496857686658671498559979019792281017828007187962864686219071555548199931661759110171988314673502915393438575474028063909576202768703879003382321748640377796378569812803563542275183166292625918945734619054057942879921727609474611756796956608060540451759299550560227801256601375074524250242947671021500850487035936341642989833872405615272189797624012331306965672303592922014260230006336309462402395213960229622668689283047323638457716504658369991687831140597964315505877538544685596444959806311367452344203228604976054573181238757806826830479635805425128235610171342593787953330392281116351152946606054886523814922568606386890630909762333616603044634212722838328843692626363785691827958529311436527556464379318016347216662433987138628078846296668998159721652340414952318343034542318592250493804568861100721195301952047450416866659969725504792448795814051695880068708252906627972393926592887703943099606344883665962513453946625186998787216948803390786520889899801549641373959904007593257109368062473386287857917223780700065262412201166540505308879718726554750076489891626689690438167941414617047186166299437859877074116523295567095803348781598889472024653821469207753836722339372467458629003668376066114644321890548120289164473991591968727391924755517729952862278277339888092396780032483500302304043650465901229244266551261248139002599275127280346183862027427737111937144652719546874583204594057157788678929791106170638328804303814554916070669301291996038313452093434761065304477882768030620529414632344727887968410773949115298235813471629491627216448705695746135847525737873206089765863910719542270768932404706585049723849432100030307377209799161857624522607496007161213639216352128310387479708600505839677678818283645469498074773547457926979925288550513704480173210066696168438010856244526199513766650031655044863479229263491450976444014710939973651519914464269319250880191006725818891842628362095965316708461842939777176437503704690937071867500893402399407211562757116047782102614517740922435382234314274025413815703482998554325659044520648312443915544182969853180637778735519651437406019292380413206860815759291181923233637166204037507311759637270783670596949369007951691572537063964477241311555523880541264628928621208980760180587520915807059191298296795832862451695936795170480476362687802621273904677259117637192166706385434260512402310897500033093126257741877765644069662538262692905153057202392237728291879518635523652758879990314141377577292720402309432380185741919749761774465889315779825925395559650648654478772143926989070714665222174701305433773988149328776113984605261965832679319609842390813736377114319039674923700313558571357043263545172285686144695593474251136301914335772838670833502773173748243609955643792317864437540556737827856483818761284967371370300173188277279678412932567690252014965832285267519605698811614458259031078927906946283602241449596298566766884170674933237405143235746786271340451724612317820343189700998761587543186674685632094203820303763499823312428497447884844144725737977156794931700377076231541448796071798573058865768487427016196272876675110693099010120225476718303704584530713718674757444693183624536804014985970685413760393463058355429899509185388193915131758894881868564743803475895560715849580196289294513089269832895834022774965741833141891900417652201118918808128348112701658712936797848897834853279459335873950034900431055056437012473907912864134254672648432157836548645649933748748909007366693670870572716357871171842750282397595258073353100052697246304145603806162946104754777411425743638156012002792647028901596411390668567315424774203976834388407330111807410525721639685703294246205471544936138500480865270487018018252035907408613284028643506434294483915696877358160777724736634382124685902236693314618765718311356125745426839667155720442563937369071757326862177735068867792009185932614799864661678784356590564911324970839883940268483836630003090654348264436836574403345091792837848141050655953065315437429403800479532015819890596964806456772510881037224335172039593509981627406439590397163861487419095891498265457840891094673696076204250607187729974032673015089737288096702896347276369459278941701043784594487013454477642008606588263682050896567611496041385955318913519427626131464899699936368200323143945963840007710835353924266906660032802547512042847061402817765224272281100543563751354378591263951960493217324441480092881340253878567143542813438600517600858288017337272504665832927538042195037797291960098557621312272194563944617333192800906716348411229861277504643236265475877131441193605337168223048721073474896592631264311171578343215993862279116274901753526372914962589068555039405122245941447750060857323910753116576885545270303245084484234522592978496832161797277239921924517141486824307947893753735768063418784755366509894228706705788468104981820507654558233879169477395219409167907026332987920090336080244055629317105557868517163438269906614635866609566576223589046164382248406052326439148355940014003434023157724290438230911396437931934418637724541878600160195562394871111746907927430776523726695962135124334055407435729182675628147740432651999336846615436023478190007959602388011124130498724023658931049979685133240433337128863184473077559236728978352179468255351000385310495003039282415256370567811128725850857541348450364821945971979349614728299439947813255414541406561899992262166210077326111185225023557695595538829914673920562824289216094830794122396061473785311004222278367674654905286257324861350082980255381274853162377399562786925761983436934012615380961554159949377005220570061353025129873671523269822211358654187032205983253914801904609648322103028436407049749535618704579017894130641895601286281400634584046690601660867951093404147082571789525388377502207422395801016978599825214767312477886780729855142893886866326420520048197862008902836890835346259493484552427185046270530748910810513651499806995760865057729244823557393665947147172973907726971292519799193069953227991266361527381241446083695869645294341197240962890227434941193144296309028474756989318646727737843363085529210685194860753935540664078528014114514934251089184853184984569798407039202947772913849702357806676712903439874881075118432781963765332811563878580959352871870316760583547652613875276105541362986099589586347979819069773421851833725958626171859518169008386068268876073432241823653789868388255615443949219011319525147225398028238105683062777668482012320625277731257840464766934181676791233461512141768283902212867912693188182041474655693737733305788900624043232934067534816369123529757487491948384305180013433898304648179325250719250405555688483472095873797829217160347613362530222914772959042597467399246284081221128930257466794542299890997354887071051341561327756447039237699725269319370556538058137854625545594505127592868792980119240092415432289281730688396532235218685665439353287423238068816311745127405809497417883981464773535187593480978530396645564786654926899575423068186015235661073911522976053007124465463768237708969469754882591532454036151708238761288374706818230449271024503793665790794230918350913956644138260788507789627466953237705523023781706728114085420593526882866221370552382116619100732962946503540807416013589960262246928356048747844824759727119186187956594384152629455158279474355450698281369768212438028207359671457406200986194940585668666343513885743994678634207628096033271219029044992069642557060288221712721600773098419167570987638906306793780791529499540608954870322752504289805881414054420560846597459725181386437130850613205418353621490412408534630038635437772888556497602147899543289967063944783589251429875309812886541525115219993250731774505858300790567617016015926578901097697585060043187377898057258114881991134751399632781462552242840014764997216752506358962593561645535419494056995946277463479505592882340764471578273496129925737321383898966602393841804725180596989819759954656622395719418882369802981092130147068141834350343229471974443895032326929140804057740563373269698335530662935274432516036774660522042495779502317612829240412821086354677642448198649530487147432518145281932783589150681366791003240376149117181816347992298881195488304510857906396450276599199020790124468374105015359295545015844142720824851868932029725247186568405669374613336194464673518113889311794464402333811035662940657940178636175488532962551071599355055365152445256416207592712751349704395941586197904461317527131773760297298217572167768960040834427782063325192523156791958610208603524071401771039354122157060369782274015891314796947055801323612995422701189876104159581804412875435181001724850686591151004889044449110936877740664091857340972966784124451678066792442126012358108960222105867274175299131027786894727897115488239335145864001842103490331386539239381691278599861397548858236482068095098418518952768722284403375163114920184776011471952489115130592140743088711766351370455066182931295650224982521937050430770248063283728002394321016502210783169037236219305846617050294110851759350553755763943305036051063392259604157336414648303101279745612621748672835310157040843379062810862668984535923052029664626199144803563717946324101448262462173178117324939908271688282946122005407581070935259354761564505118619074403478476179866000236761393732412188763319829494964418924906736806721087730707229671337532036454161674090684132057177903214380907298692408961593243715860739553373368641993272879568742710196861796536176140834264494257711855905516272487287896480951973039532299951155673973835748112871416088784237991178110141884003882146436894411209396624706332300607662503091626137087609943636918930417354931241717158995207591355929419207865630220354470632658345901081553597454331591666693432656406172804674434398921555897957841793892690970672095082737476297513871917096038613998923274399547522092677177938483727141867472005127139429152734464383294806615555489843702227816381014309603554110243861955183510015971472693557512087531530273219059951966648973617859472526487537768939196646280345892163991948012585868696048071924073340435216287517896960687847759585289018418966872301229105431179709591803261518013295550007144319608239564474744654845745822180080459451755038350525587980312762703238006112482376162630479265122506370806169557069968686989569968978551380130630409749236810548171919243564855075695168596306983805245667256376734963842660487130081172453032578856900055266957921198991915599820536896031488196189334431739098535450538801370292598047738597735175767922973917235225726848721684007903385022426649691773337523507295779984153177645708650696334466824621355002672169132838404867671033528854562313857311050887824622776094322173990844247781887863107438225664210699702201995514213097756814585088649198849834040770906452662129803224861139756651359647132905588371673713938486782526708976785803623397852425222869746419339699337590984751659923409724000908350341629189395472591311756023810829902902028413675826320726856872118777170484892785473292583250148924566586896204002818975864662220191104968063947848254120372049914303382092250120786904469287341296565336394472502133015155448515312955414035193721353195664770548965929306005420540368552117870005264942151944586538119086638327211436421029738883089804593637621257237928771916696034425489746961422428757858466494045738117855736626369072510500984151786175388044860768680724363318262830756012247656762498963181310743840003980658899198520760164872427699428468012278085161622044579756075860585918156633503418107667787363328903703993153933548271917473020016110484015065800066067289784772916722556466592939892386277128717266711731854235661286874781894172076896273118139441972724271164711691582899363950154198996041929104504951637563945264216250711267124154931347205322144557748898143073271945611599191408438132765392359877503566020525850147462975493292185864100344371416539284893570526914115269873194043856653031522456939180039456793539468983668737824594312106280117452877595160119881746855814219973108521179184751096667898858346146731747592978935163108765626516287572065106077287485743326646230781500509843522974180623680476518890483162319030214632599912561641873903715791527063324359512215499007096246094420530434386082824192748101885095137562291195603223512297791871587991987705969087091845375891285739978617560746765495478929509812625645382161270424112271061806843921399662758620894930631663068289039547446041638864259773983244790223550272596667336015880292603561194553242797703337315427030693178322364698398172591971644506962357165013458486735586685699114831063026219286665837527410354746834014328490111869649832305571939144776620754542478332853470679885637370450427151332038467302921066171172937917890785748623578048496578273729366396971017616934984233164151599119483921089224864590557938564727816953931404957084918771458267246843608009940217021560146463143703119856923248514919109174284504514852787726237389539165340065666035330331689249690867838878750769446450376845679359518103043463630608606111039877770056553487561741963929328608006958773805839779265434037442455198530118421951925433967349410716541497171300360373472782555530831058297147030049366735541015451970376289121411534422398211733429666325196035029861719270448037356501960827973655016254127507904694283719271562486510244296404239575023715470067284627456668860053984043269345741728612551709691692059098704991918185143589993010432918726179949886202158773912118310831393908787104551385030661487766409196150549081008240329351000399027931509851523680699674410265129195796305643633610596699078866857014518573240479281890131033632598029840848934398566818389368907151420041331213760159324460933209964762938683262045739984475624798884989436414073514798955689877762226307568813580283097523326777364739161155679434224931176070650640461533029943894080668343911749833871182061231714989650367872705977363557757190936544128729744690204205193000716312710510406616849584627485940982921314706890090434078047507388466255514405512104977597071251919624971624118965329069035043112981291319539868930397225865510155028647199810304247712089534819420146439688042189159317603068054408932209652484421648570257376463243603371969028304473136538461249083316576669879453677959025915795632828443414923523891349700186573069013054569326285261237807120780255390024406075942138019608880550235977033362905228821575989830950111158619470296817646390557438173238668957295678358569051396668560065607973969135256290362195002945153882351918373890530497373753254066979079007205842541794017706135003924747638136155123233954295058610938246590612057166007413088473718186761557921616483717315118177981079712512060063793649692745244879606525422149397102515610133267374810078041348415346407781650247344074120878249082334359003852993720242290601332929735810363508069019395770317056810753490709345954734361640825255082773484382778424467426191532808054010234009553085947926659148382306930616274070641450253079171416509083716667844168796549349016388005918137706060316465431072030561192273507020160927479221535318840211626695583666797065973715892189822196056658015655877274004839139634330509793013447563293793345350592999788881759216599662263140509749362817140139089939749782627994439487015937744192673684406616779244906708457653303426929592980686344457903086038548933198465803680293560880202731115567062534703031657265673109015017623818295312896758470658712492670984721085027694036470836868005566984441397926336275565176463156994786457192638353130685481240790153804014450647858854798155038828070682376168456845995380788904943437642272008011838714990210153650420461959860654371604655037988402161970325684845265825894064657450823870107480721304380642198732484331891521972984705215271327001189469904915614058473873874085727217809376650542828840332981003036507824632943435018435466467431710743483834021258364024059544470365899214600725521843721680246094761793893713672180555497624264295883722318217064373316201580688313267197985506169549200846573045860836081546327546327268677557201888913836961073735717816096483572373285259176204154565975506923261243090029445442501401821608352226998306862849405962263422502476232685867273093401779038743863657121447573903469469678925634371595617125094533397021725080488563575003158861700762079157114111364641205752485734352003367518082670523016149404939695468345317917620077011965337774106272754432645673964357477179254183039469643111371429597009477070341393975785333564446270019014742746585996787776946256607786930188967620133292269588955318018191699262789509430245023239060351262924858466407921961207218885405073686164714387356933184635508622086744375954328445407712299291384612996251449141870779200580899381227989591169428728638909767752331626306263584525030584919516161912748131523690706128723928462220982709477318190163246414940074414605107689015570704796091116345686157645301932008641360619956408379381504078156471913767010571434453270455822637804915131964893405810439861967773462333569148876551092013210997111271631077221181248160545482965563229302486760811764261590582802672573959226697690768141290751855621165534794461171123427384774271145264437756005474689163696070948318207173667051051230112204264839067166638531684637764471491368276526421460271692165752694582187611269312021520257360916838830750481392979080324779155161278477611274480997330160645132437942977177268144331989441814791462007992006629307432951030655321184450726636046717305833502105965929027803314964388475850447079351788163950912193089522896290158165860880761395182137938643601789303759312150509664746849376551607449812458757129094074112677497941642667282985616532246768213847032850243865366373290775471907664622006550970305634993269109237920848779354122817227280795400206529263672066303137763868603137329683365019863150353217213682583026463718253506559239365584170484487709196567286415813653917182543730181986200031110661360487928447448309685701419086568216049603411115619743716290993962313821158788423432979007429271640544531981658246244873802553146470278365103034140695709869602349920543675671338859315403346036496754087390539679202147998351676252401952579634502143150975716639655887539808376929307158162610426511835333695313471236295772288981080920258249620499383318985761984715298863953877759696310158268909759285254007333729113967942144290971927248442432309430366247849340181038936569314331386724442452596509304382951428136906906220683253762860308923052396469436456964963689663628434245959220068515078865416532801681434743659807688796711808075583683638580066073195485825541069862361778539795714855661697262660147847090463425375182940614458687238752928971851861310841735889469438347902919193627046238468299012321978720863586113560435809134415716342356663195232455128658885680159427456357524030173291166294499948332003888502686012129724015033851429390955322714148032589549094911974625026995500702138730376669726637731455460692725657157644315697628728686210220811571036131610442852317927132056298839809212296692807717174051602862363921799979129447119446697934316642933538559598079732355123524828783259048267482071951071084596487606880286612831544967348857567570288502943662763266927716189464532456142597594385911037553659059550709681285531245799465124190064270289407114375454853894270445598362319092621957187874277850293358554488795698975695155782075385898786182300887293622452691623625366140530102416131730713865374157755249093588067304274896135189059134536231583188835310338352585041808682626828484315312346528039315718788869924449048844994726329065518878466324682642590005536336185169292092355501768894742697415764343232731385648181329514359963270908587806169453102682713696816923690554567004186060456364811799202573189654149598526537119815036641858651602960625712479059744774335806965239159527536136345367187743376300060804545191458838755236872273138902052712058048613333369865515324203163828994327588484932600201992955152748022383196484594741398341119107807730546265261917909344220521950612465985293234545156884616349146426288590242733329703605840122170381128388060450554746011277156164448599012886320414164572615145696071746547538978675152170805335089038674295814451619221149745852313295475016205182052593862647531405293086842101533107789842005793373473075415375980340654076451064136807119483281528946488074986787923830758915876261595554472275117805124191727695354450611280140435313743488534738722905432537432983933560339049467502505922640504545314542330458371844181529452432634495549063024407563149895115514409545950237907890756272719154637802594746257071243165047465938430099179072701260129207326418320426999158072845733801719979772834241577346162634245726614280910482392122355508138154835600325301182929868050968005570825064639864219555263121106778426808521975186427830684571926807432498300319366802297047986109877825183398653657029094245544650594412766382414638884541421043824937200748407535191758864768329619652685738764792216623604595023915965610070130485723945289155436294706418698905959468149173941076800797147234448566021083583433314673736722756735922594705425898088586969608841472274702166570640321350134098566646839733649123594689632611238430911874885318877057849533121498963766741821806838664062373930914705296839359454993473531500780925214180026775351829620404678265280494459332405480473849169369422735495651240528136059393834855978283066768680238362380064114828465617911459451382932790222540321468897344791613660253420568629488644067671978230933721987807028014042789985599445912918107379947957807550517627000608033576735641222122308615581320747389757143121320371799036857657475908686519842720918560017194789868284851775348108452842363103873894092023259436365756527451122118382820622459915585632939917039443067292858486383592650639474454299108625952003072899037655487295569892408743625146761676312222453608404212108804064566383854259202649030351432556806332854175179971455975369094800301884278914635102666292999485370453328940285527023091111330400828556490091705477974865802583583615677575504371456238371224706476048893987132075326441957064920321937995090494719174905925456094322105204304651064327725663940936674773636701782346937772752626416130303077782986350489407577801235694346718595583608007181585899143596763075454405897125974043684106137240297252120616440517012605587726110597739331849833630851818851870098254033097096249517495587250899538820053182217100089627056798978531170239859755518179662218929468058336228304708279172896242925178050068087203813194566906018724319234128429298264548595465764772656301507704268886626036939689312019831586999966364565143198688420278909226087648967841844182691915300845447672176200787373200653181838569833476430633290796717055896001767045412144055432343816434715423766024524209871905823660519904547358084001302438794542204325220098817434441864450821102867096754000996752905952794618035746067392284242201832307828605550453488360938282726224702550850014198752498140439818518177235324247389246908064739634594350380118235930598604005961488539942568439427067884893369106106464057035599574584434326898031831285077838341955691929191717054781705029228756590636039555349614951070110601798511754982567323104556551580327011900911191558279113288810261026697842417994808335257760380417708102214067115330683695011795911660606698256323500502831663450329919919035229122755822143336451430801705957637603254665279285622409619455533215710386539729934188673266923701673930653713626166596217326586360129729722131055620052766112447411374949915568692210339820284966132732828379726632468259272911918324056320477620763742576647044839476469453713046608218134540753442493168788577253109629794493584570133618024234842051713391268292636848022686655958187278489828121775265212823748290146538391981897160123036351808420130513093412402529030560874637150716436076343699749834132072152836758121861536558230356970951264663913792199186534640108172137494053745303511273131904052938066143823995546142605844045465388526917251208081113341360400968888412739011018327983445911279666071939731263061761260596457079026671131413627615375483541449184213833445871402403654454711300023105026208418574887639292158372996076317414855115064175072958698806066808719790413352863868728077214844730055070414756188583204623377864639708221835668945151888092444165021479444890903011903387364500580054015825895080188620336887175447698145891643098239759098643788763158840982854873927721041502905866275261172697292956682637514500404094174435200855809752224326648348296974479799136565990523827059102521348352866552887320685544965160176186047169496988598287388502792569365128715656433529923345305546588301512901962646256395840143889986431986086200285753317536516676763332361258177202790742860711333107258885713516279178174179735738056113900427999452103365629461659356802393829209522764964644128475147561021001102797990212512658193043004881691387745701915522761381990432687001112852473018568455050605268900422762395393857446582759788488532949334122539941875331452108361806360332483349742323615479290147877569263334144858656163099053173172103098834848103942544331081613748975676168368948339398303470244581441509340580493913448764000108889744689216048285719065587947540080641260432891847509368412838542977979868520104618618253145340647374199048766739398416645431701008331453126519891000943510756679219208533122193594963305192772351123776690914128363708886262701731733230478177601454068040702756473509430265331516697984311742005493980288453952958623619028698344838353784047433859343688632031379091419583671431955887878152635620463607893425727204624640905348672470088287476686242442001172500042259936695074965139090648838026029236447083281724866847784531658446245591730200136166537999548649266476534778661608335299174264827712668557564159857210903429267767399561320960202634449865780482859269138442848866199712535492000235962399386872328661506239495858698363298775195693130917827913592975023257464624295857430505226883260027261157867410166098079083885142817330779852035077566271580883302644354053582705627387425899602512681413392050703346515521913577247656154900685420751409580034867131805450067321920868361959706312397091795058708000038113181498858613870986703515605529443676536849059734710616600996140101686127616703560458595062062711661380524766114507925214400303388018146627682064842203420006510397333356053772206418225495472168534139451972230407647125290673990890185298747268191035696382529557646434277734461534787508055684670713830655657543419930806218451965132643148567385133825937106253021909437491754497349403520033502626433128925222295297482803363109447831621742587446205135538300872701664368971752898253182992934682061711777729412890718520994802421831289065329141974124178227131662075112098435947420333309543877825631301578329438948427239079589476743093083621627227430415586791773900324532242108581059009083961709089629169464986004938922308093799462550470720880868656411115224045719393187441951351700195934857704663786628362380548287943432875355261313267946331345820419286614065371336246991110309825701094821035356031561561550895359636628922155055987092222896797176118658986579366936850834456715986133271538808800780850040635237063550208429382590810834914950587507022471863987532694351043104202498910867350337451823213936458463261266634462032544994457693863002104201368247385603919940755744999593763692987571193412658481535125614002452941164436256595364789361321898661222545816839322363394362637280672435224725976181475851221389014628851154148240981408861740967036338515461526065758429703507697904107499119365464348260560676007413350214144866337410867412532782506769331911405385080021428485463566250628806216590607906882420199469101487301515327354160004537169618832182661149069610914910571664515714762897069255790835333056620018217239351293617347464262864838509419983099627683178822102564113766720096540472435911578834305225471609608722046071877176083097388322359381757408283675595984665874330935135832981631086288992213114626363529142335313333809582135458964139667954879842378578060148458583732046104784461671780461906507361381225511831563683440108067239854725669421941169013164964499260541935114634881182327342511125281249485402542776679237840258254316229156021397573178375097433912861338740524520325406274876778744788658829832924989475970465144815091496742116059355518482625846692133683743742856380318921210982862456094627237272380365284951280301968796244721609236078666722151421197941126010411920516114158200120210366075135403230252128699434005553465611671145047829151517521876800341816980203587839764236146916350876839447957993324347205411849767897579451579129725133914250931480012655582264496899321374106165583773667685012312153416562541278019890577556129848656570670915577975338669148546700202179133683498551968600524331186529977164841376190882256831126651196667320945657568600694395214903431793727388885339480154495150955226926943517946288378691423808392901853703896318869485823199392248057078514793066854902519641254514079962124292320082951577360286921261845673399706631788939824050892206381552227894458889900940134699512450102184218789408367027206914353920024894553304134422301956049278749379613240301069706517343216779789454600654707768948340190445911398246123640789572099150345085783161120128204003611148946748323935324491352943802963914361193893053012931016996344616495498741695638674737714436270731148912394592440812214564972120839328338047802744293152927511203652445565295965263435461890939894935704373175309062046702220767877768694368112113586447025593373788360814733959290099446229092984660325572311251401977491123543195941157071308786062554927422252856686158803769929941936213577064033505516452348413539203356824946299609681650386600415624622980167907962511123474839608752867995868773116617673471358125882136560988789081941900135184913011603429375837376548536488878522308996170425897272286700240757577369348725850817213514667368757360454801286510096119529857108367071157805332745744152264275062651853375848294137273350698263829993894361350026386589702331704734184600568669861601629125595965537836466457515925673751943781935927229186204876196664373209213336877904236434401428303060137063196730493524827024032875685158191857468720682129620442107864586661688262429165413395239116581789574663021411475727196176121377338896037078367676705600655366123855225149160191316537328509187306669031765688167937003629773907821378208972476444177938312597620151281013011680840533764800677330254032269638682830411114935422089188784274056536998802540055275302719523691032928993396662253588151253969877543574771086173186350265967762891984690472726492494658420277292277553864836195434561731247700775041371982713799119980241386874704990623251313539105519628379929289059218342008162608036210530053041877334141001076309839658692128742815795737190666374841884066599897958239470771281075157795489213096025391688687176838435160570979935187240661928863636324502248324498252266867419758645174768584461527586668214676897115664877148279652459411992828318352280282266573498015003197899948023307262057125172311637087862707455078517055785474577615782417643837364507025727165132634089751102014231347664674028843484817206307538091358789687801184518233535961849912619973015248001303445456900380918117327040266475414943518227518016705640627720600752120651335463912181900949399150371272025877406232305856825141484593755654917924266733948584412129914983204169062336010758525468317930205001988356909255101522530909280509591073323288453883842295545679849730730462933847107601062326745934829107019608035588219675322512032995114802187649823963228819279460027202271219912407123918965709800473800346422861383749869760290670473003784193353625794701507447526314693973482808401906847270281253719726507922202922784715046290199881282790026824111604742839019198916962441662876775426685586861999371432465525578497764411034145207728626525293496763392821192394076443990107713236637867079070866693098433745281615169714644154728574594403916386203342254762248176360993688088530765127227253756887310138401561153124563250140872565422933417881138613406266584465315751527460769169040458531310211654492146888710087257595508168701333389745748352388345235254775990227810440151137155037109584499076057605529983768904941289881791982133282146031298829760414815520136744324652493692532175685574238545134195032545476081652568719460323597810562775975536396519170540911824421512363036091300376816542886774560927297880641186123698925255615271589649716320398998842799447367600404683399651579637290989989017040528045252383912948828630720224416179343173110344464309551004559977570834253419771615908573360007351058121590030376732907682200195385786568762717873307724345928230080079345258912656410012348975349171299479197699740964815884188155296643735926238967439341714956890373177058707008219205546680927617813779344258968687477123335043980758403850738610591575204918268831396744001711700053965090195019226331516948835197162798592100188813532936696646601591122665924693996827505776614398913832603641304981159118104327552047593202180711810204169097998466588951002453405222894793612967367982378861329192602030690162819860958240849892434105620236518571873016190668837309791564745552758580096512245217758217902825519247862161964460378262574058278273459636489840945590547586955901319599319591144504585507847325732529666162528558944697200154614075523161470359556450755840848941132334657199241913550810637418030315527081000457280714697233856335444759814164679541515550828026714726338851431637790198644235261134896097049184119931877340535279984306234155457930652583921068338384908561890069836236909541233005931359789262954982585630644681167101427736400295011662924954872179297907325525214604775750971467508115661343934729435998008452988380860911877465206147035882956812837358677643625895666996091746808318031445672998669570624936085164339722109731009472476244594837133588912967588153271135411305336926240164525838302954973924354127549971747446834820110781506191651018681562598889127156374141356989587403073637450967816310173795990499369423124506410388762707448255629863468245154522011736873351170654180301304415968401652436506270932244781804352162232512361018808591722674484932518296252310288078606764412759102400059714736139417786807234161948977286595138135833887687633575563137472943004222410462072081191049392390279801112573760469485757309486390603140912650841092046252217931413105272285410046733485695139033070216191911856264677065484370410354482166525667418578875008068658271487652447243980667125272524255562596246334830346750658567206827861023456579441123993368079106129504070495777695121961140857577405077686774499281574914514183752389450645170001215548997457310902560460422394988899149856353547026724162404384485556232199707123739889544292109702234724128031151977011526430186929466951816432552434073766766255902437277918513082371831281960039056721344778087917069338164527298606524577272157695807214667701665824005016255367887122502289414275565686254190868847835288624059473836292443714799552636617457720471064888250874064768125825828276065637381694456231634445140206453855394131220060771304485494312446769550978079979562213502167121320542713763528003923973081403956554314156477102140704144263696602063536043025316822534865836203788804936977252907034178254770997849423085445060230721787773760867357908620772541448456830185299912407391650993876272122454942024392717737609963521692402067028009160273006113696642594564957940486535913013458569554205537379697137489569256647566685509078078173995981547428857917214137661037036551355412266843287988921946588353547656451220299302710797503739848206171826968917241540610654204693304955366335902887272667780849927333085720425790172822715972460518353375645754795712600506348347492885350409652815761186972700217013656890764966690947561596838477209547877581143989985608500225314216964885768044078260566334297890693052837056291799715899196731997487139371814325619269618739699154303658118988240602519185136254937039684524620583886428170639405094001155095543668150397423601586807230437782560123782444520593125086754582858495585737438971879189496993686784414810735924742168685292048243177984194128892824463832778709827544930086264406500771994483745665125706202816167609745648483246592155883686695840350703135252358800600696583433279072384645762491559836001275648962165597314416428736899783553786726651824734286712531747226305288584965851637372612179746722766494182583708555300898898109562645248484008084664979976058623432497155949498521838689877812593821541004229775840172952104723382985671738807403074240095547177644709258371148506385854877570040276382231893505189815563159022613515061542760187290418007904486321798257182724507420015184013982597711088505463697464537596326182980929647222857111148352338230243200354284375023729032146649403591102316504296606361907753411233529011280259926691765767708906390837494743994515383435305074273880669645976356059326847301136735356128948773903697249838985362257028035689757291818523182180647448097089354650682991408200378741264874645901309403650844307868201095093515063631093026434890641004977737836015848756854592715508197151460356410768849986175205374799272556840405147012981198031502518123765396425783635781355884198464203333702969831341748300707559590832352252202118606933795683600505875358983468691241288138624594037945390688806380175780529734681520071732559047292195170600996361267333217722524088580403832783021329151739065752586033085903932446529240136795397987854861553698078935247174035207374344776806428028734358746538048865342334850383095321188875963873095142551717084628293729212867435034540050019350118653981895959433296554647087097508171779529171412260403891032532401388205876901900458293436896375679709702708521478309894823605753092708189368613236459783463099221062099296481128530040868692030155717410737250404419878789616991001217376858020322426766824126379841956726432623160866302096858858565592264973193338826727022127740548157995461960802110585746384907030056467503735611945228584908524340665846095927680398768314960754178285339630056581977737701838987257024603426722096294959256956761380657558954048116515673721182864311938274061147076672693451378565775875334006783233681081810578634059203822194676051821659101237411116847324036619625520819047372588022732110457211449652971700023134779848336597900590575646872091059424157276920228030116857298512901363812458099329477836496806009541330277720226409084220774023693061734341274012473052307308721360423926545155378180539371933760958778925388698884164665808390227482757283652073686448760061609611454927171203416342089590461005427587390642439607306817755421888285236990598312352249814948590484037337794307822291408469017537576823867427149824770232917072796917471198841223516730552650136430944616385272522846612722593971051788097222142876067566466782333959300643431386050934906383596687121368059028074820177713734507109891687503567089466030754774685167530053607190812938739674403940427256726280082774561219067922886393808187739089271908912579423274350524152805191369205388598443666857702203513076598528404745042457649504663597701040596051598181125129999679366135808877322610547150295605639531811606218680953440107596106204369988011335369805743339845556454720257575712503325567886287843875170369561541436567645308107096401876783702616157173428170368818581809524172185563739513131481027629813979092124772876036920274943553508701888756994941639881505931505268443130717922865956748410381285454581100321574933354674140057356291799014672908277992214175838785050078919375760970619925058372640101047568370183580782211079358207640700861898777924052598361914138397989704626766760829177149459603494213392579920736085745371165922804084178185056795699164764745478226238808488158752673582206934041892253927358054438717771757808687655843866311778913704759973525165478517323173038093366825026324557526701109942275687036493498083287321453693977587309236725949865743287082394220321368538850007663978655129491053780549228597296437165361422228747449795045111548132979184877362613528782585597831560272005875028816930373987879674682709741031258885600805884553041741776111624716157031256819938069737546321963774200823702447924055355748270928252891768269445677472029796922730913363066571657460980579278285879600411554310504102529407427726648340977936992603345988100227458358195150712270707841781106783007638214615719743013656735942537147346190713384012762210307062792376964672271816820404236954561977618789644031713397174073997339153310611592324628459735524264568948234453951804423018657057504438546586915400177295974736245845890594855333681141263306130061192249068283601474233744866984529815603392212883945808225626481465018033252648123362205205464696859951319316577509923010827276468419990725526644261448219879649609307654772917784610612173306648355976999084822603053127523620910878203162476802342065753575309945477899245245453778437707598330319565233235072016885853634889926677973732721621235509508663880849519844571740595986086734502592699726100448693291471135447198133492466492410676003841781299987320714886126521096439276542874092549865395427942866351760159071319142701634016154045865238448866632168937342069009811067910378725508362470796061914158822562617472395789321107909246854452163068222693298565685044416983588588420164600046870007853699331590339098240951638732453623049951564461896748764644252092311135931909414159849131412611840562970744644642583439716992036398854202392611654933928181135723135193250116550508582948620930025252894510738548008933437698403123857938100388775660004902503095728047193448770150498497844964315656957371452325879227476463445444470430782714903576241879337411772138259470296203256306651429160005777042270842791033318938704381526545922128637600876296860239054685456161283997707002780206517608320926836031460965107030406329982865791854192773946147559163595936950443565751499311670148151187742299565949863991291925019374709433389500154809192048346779278321998922623929730987183306449930197889020720546823315455652545147033235835932116209086998441681203985600972061933211785476445892485752714058652506613208331628724655628994996333524108135232163645164939762623254902764888615810924222516125414191051872774923377767221517248686748246456014320036058056801856882821358914619406470364046740055661708218061234050076570359340976966738930534440958285556385575752804808983017282243195036380093268555714576028002526281136492612420197795944065624981870793898515245768807097643121020607910363916095526569285234731689434863691966932041907382803227001534751502076071361744443465960907206627387518984547682515172230655659777946980028906155631831079306706594920066908708462712800444280562539154962993288029618835659871766278512276809037188068280067187596034878119730343597791522841792387686077595480752187919572071309496163754880219353036759395524774775090569328878184765227298572824169332966326008388231640972327512390800618804720153365854797112973683937479161618179416800605748337769874487945162196206321792240425351982566133323970925217872606554661057269732968102999920077768687146304329744467883489175883508335789623450369577211257869208880250275879094176067895803627548143238312681246491646918733428806207442602513239812878570387968847760928108444719069809988310783522210290487479983746959497850433261666692981547269108683138677394389759187466454690894407970008210586206722938922301536524361746510244850702933506341560285238951785148033759656117978435840229138801496230266493774512263980042293611693233254710130512904738473845808024103675172375770710472658317136385385614814125549345190052421041471294659205498830530317556338031413751086206016703137083839304859854541129412335597385224832556991443281243765998543801203981808777501981589758803400310267759437628711884698609656482504425751096179097530656208073531526706563138705941808973493332349738783052634604350747825160856356967606377631504275156837955309890838202627463392245643189041431213277520742056806346959964543129122426953340802245256618483237417776342162164178727863481154473012481419903359364993687157068479632675286412615061769262552082375769725465643382146626528769278388989868065693141937532961718293291914981275033446695455248797241101457730492231834140958215471062734018101911648865213494238291033466586883205468221685189370543412971744257520476793144066605479509637097579496704030885082654532399180352599008390728291648447458883519798312540640551672605537769389918949342216344625728867063392304468198747496148995205704528097470631990568114041434863287097072233026276834448004293181108548614940978101538533533557092824069280909060809417379595532181242222453269973662760624830636009830502272494749881301366999196417229059115672368401472238360116831521995292430572648805528491826090745953110891426111740216435289243812668508201767289211682575815252433136752051646172887952844492871893364577229113304477688266444475322656091784656170305647338732657657282005955451245800679978402693538031194605018038240636112490545448844877986943792567483104759594894642043031179579653051351874257019118722659822271248989727644742989075343739772403834555957328588113319701321475480522015167854981828968419658321688964955788413958368884353328037888392114924811185076311012777606453990347982431352930725499577038020804580326307635119289235815330902175904812295677438032540013535799476794536275064266592142172931276846546146199779135684126119297337566243270352250607929241177802229841518714491137654072626481053773064239058923195665557797260644202703873281552882677381045781237699914619459753502154603301318109079311254437685870936410252716809478393313844713034780230914819958954134062342947407506982059610740823463476285193626507836962321731621097276837946861888319609929799921291560933564349947175591984728535378160227399104779674943040518896522861929785729746881437839927432811282083575116218031243214678499305934735056257738285130518761971043327164839703184069825441096929378208016202479491796298295438389325870474856087286425888975693950948201332360178586442110742833513872509087383186082762183084193660555418617854299420799899811402465231471406180067044592209038381563978782056525377923595741104618709241282036612006665588420874853346832955618904308428233001248012470082744054849497130391107632883808084191650499855319197766619888317527374528489998416167690271190518873992756657501088573017755692517651517962799507209488470973254064619528355707663191185338256867130642796181702069018672576640882488314088715134760357428037111109423118426347837959116143224138479229403199602194215620899700690769104938520916558635857199379941725425742055088771744246926054892476026215884292674553719933354118022921670232101568157795099375296153030052061037583664643301821881847495876932807853681970063386141497269918771738250973817254615680265782066538650742105897530256430061859227039694970892942950497557064053238108773455211152073850254175315568481755904357133378736501578298012900351702005604223462815912278871216727040961321460609621741856664526975678660111499910207122231155652230939304318657616031719621951863709312197856789075933716180369279200055283979588540844046004997836564731931291125768412776827711168917409956088120888329929131008969479330290054415717650695366818904125329590014783966565961815837161375565017295057589111584896628382199618443467339874739340527097076053484487503185051835283560240192635719179390814005522239587792184947634010893741719002403356162778740203686635077117186225272528567173384986489882726478887858480497097979580692211383805805733541461960962085647054154584782012107951397000657014735139198289400656883006054751097184738991248851455859079783186885367164332309679686321677647316682856958879141098920116654547542076048920704089043376568522796966913601497872374248048867239552692101898149401689039270654152892147645580865018399539797660637799966274512575974413690299740341444793181797013579075510415382884740872459982274792638888655250380086077366472566526133529735115197275354964016965889074118326720339590106367427857265806359639246478985425376885976727524802947218560943329179558895991124057121443328681542673130765907957098701712797090726148237737720243397973375371486911183354110079754327093831767525095053009689282608924002599710557398463017462933968448745778889956648988874509786981949929830815331663726976003679875625189009116351574794678307422314448578097167338436017784106451141504571094588499703661942345223993212324765523305112807318637305022017253891641537460626987736984085976664360133119461920474683171363522549787369156753860606177838514023121989902529942490909930094808131769202629897228582041304192848091483884336975686124063230327352005846028182995184915687532041858832158331528919392527478472554813929052362362031259066639756242490746598286192865706586288341884979606137135193713033920225308602591659932744230862536672217963482063146858805147300835074516054659638213672667544031664348362435751723631357623828823934599966679327730113838973061478009186539948541892528595586038217949565279397124284308269607692696816059573727685586814245625556389719910043857509778931281410945402634628835054404822959787225181218225946914743044266499822730603737557201153209729888753005725001436015005461162308881878378988179727515437940747152118509188212166067985647880625995580778996630413889521489833785677478595882138852990593141601766596732400616882465271947841160246787827762690802578927813504410496396978901265842025072462986507372297192661394243226024686656138402365432351539465355729875278931528681243908557429584756598878238835963084565975538028617524394402651196103963149292355102387298471662186779713809947743264016788610160497966279325195006032700115431193733531312308099514058694039239477040525070360498827814474720534472015936129197742868282110927175547441828630740557885859066472914962590107190730284818640840848063503093051734489710269844505967645525968916391197297162118248480916184427291461903977790452288681908780168166892799961625391161808259040790510160935402140775909180313051750334817268057977927881058238404370867037881240694591832398745293247144967237288715996853100097708311304304951404650680520825082416848245453470477981680316655509101314923201260163000953341507408469972406759492049421186280091288621932388375635676837395662191392693734646074592610018381583836196805814407721139802402377787138586759793479555808589437670842131065104875818146260118576234756056158813875617256300964973429424888743168706735602442535190309917626593306715576756916441232820983571364258170236414123932154949890219359700254129480618579641809986710059909474776503670385422653592898769842674131156112771121501874435517020113200097042230989148722727909253489212966643392630741807289594428998093424383324317650670959816820111688842435958783055634081637312704873420685018794219851208187554009576592165580756768880951024871206650099502213532795562190491416006848610257817333408402104746699092350207595399997122971188536926983865853292445036029567741488162828870439098930881001810580134231382350382748762380013811593327888387504521446011120441212771975347278490703438426121540628245581881999334792862553352259778782564894180068539033740065005760161714904466639777378256049945200477691134811571908691142610707760531922456028664270366604040725561419461285523933251589329446149159255079162685622865788287814969172252418716619678658120132070581060986813788197071567598783964105118887327372659827020808582799507978162943875389395670824790891087805526222631734617355789845542443253375424620655555019456162612089880724708212117427214952843499703835104460995757016026630888418105351437441156923015053852317217717961037008715868467567262377400313383836517426150851568987646614344674376633933706648769901167307627507585560581603028506275235987814782861967903742042652275989171451883733491595886711369838710316069114040338654935345750106670445680939500540235076760658670578534402054772523227973380429002264057533614050244501833338982200115657040852168902208242867382529406890704815782798051610652003264379566626010281416378716552489609750859002100758848593232176752070243282086469027908776740313492582357786943922075261006528226342828853111379387076856830477857676784198914760328292187834087507416076434472973785406659711007796412509023227487128031397125110229815214011275151615931999864000854074134209799910735869907021195412312046393688485355934476312038389035025958435797913890678597493423532293520924106246246112204847470998479525408086998025540494454906614405766928110527794589753356070587373474347539522604307435178887722655195221612480634638577594301651439470676841106143480788289857251298663673584548839123319344911622737972703033084847584748929431797126973403307124470462781476427660677609598971405897459866447342396769730288001850895041802412460687930077708205686894635089891682640580742405359886139434001560045708122572638727476123900573514243915291608222620427296824100401282529444407857059316893403465316804243983917511055229404541384104525369459909916023916698978551629330293411225266252165388331984449169927273225266315667988721360413464930483580344592468782723790052508601022890069379326974203552473428483830214107362072699129606554117240690479351572887980914207635950747000621887971041386000645192512954530857598635006972186878013115557900531136633485676789145013411978053989336593395627671977896530829980063915258095209259698406274658735917424289216989689345771459407457922893217054132363793057314955512350128363960873606138647686440091767029631377168640847471850010303748388426215697399981031462584566772912068748820473746556987742688776223742605394214926683445292789561044591238546574843302982350230286407294829597037171219581168633458485108437956671282686457860636033255288960778133913121789088949641773444024461523651064558874082698309105800778816034410557008132127950959674274361909269526300630649112818457987781300521569955413994934044068248166702398063407162310423404093132620483143512602109847970902919172901730648879610352686132618279394159409849946565089148091084286152972372186594421823279414144763972224399880627146143493242664047315367191822822597815757841826514638120420447865182554053266314634400107958163278151568434200106381695520060871032258863213201505116702162081800562684453649120828992070637522637896658644170119493806173863952364609828140936845238494003626432307595016714269526289724729716893280784831680848387166961417288214586265664752768200834410623134711957116213798727705715019571740530127261069866930868734075492053167315811453342258114272603795090992676006653361239934746780549963810897639250806123064576482463950139827537760079683919969399734089056783037073032174786671609713629858454289678432364621935728951857709143412087059615043239736091714099454996306467555592502750239601281608609750782888133119037974274725826537500759998813159355365549743516749811939317764973863570170179936606955895063742048145088137039965943830111680869605154518974627800326837909293629331136930326005908158422302320895676818000795491695795330276416450860057045544186558129286440562877909395272732442163120310796151444613648414971949953148386514843243060198219809233750819380746306293840350723723032109893228326786583054521350155155664539746012616958284623838443616534246527893741032887602245266690747412328260773710243361740496529834027246997075402385078211118405634067071987155837223180109560218285056323131424935577580705256152816574006956429956535659733131743107096520826954374678552100523746564062898976349215161360948401743182148365695178789777231668245367609533790330211541106501752368854198248579193736462797565153358544713661495186083581433143276262842797608829492541733529822693764122026647424747862365936143043942031265929010661374424410467603738565274743580193500098447476198014873520114159413283179153243780403438921130284194505120404891132929790648175026107030364645124786370936641795130394258503079274357526664801727601528577115567719167441703715834000897609258738354158524319153197671316328445690913271538201495491560536254972151465218538822590707177341697536456703972395190102123846867933317016643470001656830904427411705908331253124401037153786451802677231947220877099652955185973916823644960399437936152198001495761403788912327019729560909499043176011498001999988526186050560219669717098507547892494738465684203350620427143034913013026637764220596406454965641089928046646887176836083445400306854764427349005340429486423311019122753080097331963836585591552169297491777271160445187581820065838799122306448867898236987084471511954965903588311645602782647512740753030584048670332202654936397688247076393810924688552083281425418204971263074599848566123010449031204644828502998317272410262062584193740472173959181336121002416922735548630848896966399657972897578528393517543266924919924070834709809362726429882860236132233363324457173406059585502970183931846885564477381223079629326404242593091199358880983894879486238454479266550403982204621671648508431269560571958597720380260531997172293919860700796141000286357639295678970240914841316360653355376222495626302014836975279442733021382795564109847018083925281267009958569749922747533579861436519608674957788425458881969965419134144597868019091106335134448457546067155701422566500438228182275767183421357875472957751472666686558210809305309565970416141584713323102186769600323654276709393890854105859298956502102389610115836682824979149902443706377599957933509784915477561478311678465318457048160923106878532970781253384743882569545683875094418492406031585434679471945919970147380018644484767868079356539174786970400503554013639738346827735855419943538418098793050936411215878297728502668094785383481136099564187131668121498155045113774315844022271483079924238580950908879712066536699913017229737608849996758889279544214457754397154462564337854095073224044074970369431628278937585461790039388880746398910013399709295552756188070165177611152016742522438714142088410858736535064865270621005109939994786484591808755545064218418527208461447624230842872059792692851260988812497435655648887478397849432756823693443559765260162313528626830125507957604609986491837722486811563820286159276093799111162461881904869181399634325597033374919016082371890879705375568990997560949220683135884671518751730518715676193024147509318503156330277279188862414345929420201331650667988630135185986498989099483132287495050989356230979214644522940349979355591775548765085473972019540071994368746892355275212975916039122280098802481744346630094074568688452897678002273757426314314988348285994460379912312146020400455259761643883836995493902474284911534217369467764937531754087211018590905224711359891153105337258806523942032457736528391732866947195278509918893732605623100718388788104965029181060038846094864286035289705775090862422254446629311755318731956518168067527562949647702855570379317399562053302539603243677765899584855619417962120033580345529885262022758238667616205035560920699921012050630525681457041952910459166602620887842669357170842102103855181388016425353255568812418917851171465420163955115475765562810711232975957425348661854012372575719303088182636053474955120272191313517696913343217836396207502861146028439527042262846497906271291941463105166733804094789940191448169272317003071635256722497352687587904652760036721414844599478793728602336045048649897476878667270420750415128188864871255285544374830983574055850624254309675092692149706966696458500762989747574183282016930658354257352008411335025534089728142350262792149477425679973901271418062624490314393113107836680196103974715819521212713932016297675542286200262691397699632654036155253587340090805620968232901133360583089235690455918857945947444424997317591808579625868178020206685290940149140127305853944544866729633225595344342997184655384117020482809048424145401637480250049998366311232973343825556132393904225587554288829202567549345777863988239245963545965060280461262985254492037227115546530477267600056341977442666983066503665986770221094301612615549932642378355579130353079657658534226547421755952671469819876997842525989767240770861033478039497108176809680824871201203885275958493065769028316782683528814039677208731947763784474357824942689008010920180288349711946990730414874313653133880527841595815676518569360292878212233154051039152461484203733091135166221688053800202185629782457882330072714928439378301587443444392733718718841866127108025232010207387785775583205083633332794439365889945812155988613539255641881783310919122618683804063306394507770556735370950043620563503880532816742454079278935775441166495979075671112969999926364310171070455889148706639798838686010378553964203872480363774496193694259347484693090080205455835234320521613713130823380697239187004532150738435408074838539069777684136068832771134958894661573718705918066428019447827700490012377206204110546981829056014988624117498067217449406340447255696632186057013436566656229171492800139667067032649672581796597427302639721565689335223120613095230801074472664810828216524349368001260249679118649537031386442320327654736399374896619271838249402811926116092344170628987682011326004113346834533594488381814249407156174071200469652631814915212295308809676248538082127229469048344999484931277373903041901838335767328638872397099876254878988805489546802892582328056798555668490853084490711404724676672120238349320744958018117309510321210813503170055648000722133356573769843843642491921646803037274371206857888610141916491333739464124215595114848137189069371596793724959005599944655372841234136962487214767139849500172348758160825419400688717079194729137275422247577345719826906925846334867552078432983170142561152632380135513314680669279365065508272292066473620123231310347323882678726094685087714965747433804852975832692869264362617930660352492229153231191096899163518135927910624639936260509476300603923818941660872864443581549437747237500488048776126456613987360758923934310528261690595818458288661827149803870286270916902074813054513107434826061227534060289728426620274332301305629649561815798624292527555681346113777692604485042647800190846748033374816792830479427890182326640154487585078697730011858322439996952728003023300305895066304629400072525494862297188889395422866444570100292129156322483186130399229450670041733575233487143604692004982323400349760909150612768335213440400797246539833237894239876995151612492785683005860454487378864682613936456428534268871557912787342524188190632917693471813412892751713101816631020872593098115370088271710718029790497853455920108535207685132373321832408158770251483476713591157144786179658438875251577035679893896883027863084486472564604492552327773439291981326392295461939232139386944952255053766980180723058303832258070199898155520058986960673185365096170525878572455094660183610913434126331883825898064602701492276512414807407417139213316182061354855145350929020005810970409555627825300578251432516308483684426760196035318306881802947330172663626406874735719816405095205848328786643241680262562654366423487087689099902506647886705889461854678108398420666480803815587435724860580660334088411348657034307521433447829086021581071919016041485658712890662285527018981019502524916423885562775422618216651802089537869666027992130534658995003008535319276725229200664831529197525503960367149109740381631834875421758847351760365603908425901318676726675764548455735452158390053536188375167935817358299579962686070669095949544561374823989563733205005800888753252204270245700908978522240142576283221151983502696990253214983846479528144244733089830616390658443700724330621911252544209725555120913901614596634099307073109027908993360876156284054128597220984629695471214194075232977542413447539589461009926194975484823218433219077998282981042629726354596874226129880756560011005382017518498153050636717945217621129672136039450348787228499336153714323191965089827965318565411747056820057453109614902432837174932123199230396351556352044870672007406977592139503315279665126662333756750887899615786520693553963063534914657956844748252435387602314066562651676913114737191705583779279653124000209238543055367692517572034590275064759828585462687430829391933040077399598389606685355187992212152591884113022116833398569605142661999699712721229861061558599684725660449005060562759353588111019585646085296973561503023036435859747507126991876614869627082505805976110982156632627795328089725735058978534949217825055240074704257750908991056514936407357600586841389443649001428173794204721768625202584141407089640062068624685864090966764761794241291100254451445656995253354615359349322288799873288647804844071097938186448081538329824252427130239088126843526678058862651345310682221571358007553535978599805803725265102679669962416967739842994076361754285420202146835397582620478915270020895881823526187405078648556199361593175029240316848711065442578845782060475506172611788747063218381216743625546735564178771619994660053884534397669847089568191107001371048371973222127549079335815679036161231462403414820631287671098309707236509239295916379756714998005892246004793167907676352972556034748936711484137583301873297513280705604723977346892195068058876593751352963407027478303113323830383738090013653484000934436365443434564461263237601054314500700119639733703193043967036938952686822127818848362655998471790759737001260822654068182000199896785960741324297229605462907576831067558184514239431765807305903191097195008697009083194140225407449500563260345478345872511614988911870071802965774825625173398508299934221037572884002632164987230020806511176183662956247843723686482979771154035265874726929412190260821850106569723482082846657816195772687065373219546777961994103113484587430838472222771039456099801665578192490543911342603462614522795315459783397288507654825886506769087951805104380886434953361895098780340899768851291904019844013936795004707602854374036211998063567288371331273320495695827863479953300438888002149029213881989884843311371382649907149311505317293924121177918135006203419011456219123136359511531244964658821477035243029344494649331165148441770715165698439252534977272102983174568740049840280688271075838100287647264880935017388682055093321793059930303883178751377745061989095449940107758893737994969582562215156793364460220842771330700845885145364676105672409412378818957743704702829706164921646495676907291624771737809128239721448407168908099479077187881487765024947111699012713464623437872875401534883646238542050648278696664981704472782899848498386193049591587921570053232037910992875605381071876186756737109506560382693365770637235356114937035781300291857297402484874299541564463961579039075302987783435251917083603561640910142668653959042574648635492199876450432874319214956505574625445770894289419481231615338500285738136745653320029058180958518040737952695607201129975142557594088292888703144719847597495209731458068367449351509619418450299895019522923367544843478178563257344459608161948672928801136255800806392762887124587721245736805288589645808061947017328262684964455579173675949110610122272956830372486880394177629381918499641502937050832717881573182180818859117613459372203789484037681100486486296393256360749824640086718027915375707122788511955821065876631487536858498161369515127777162725746706197466953262262650256763099816598110870758202718835030668628303669832409769540849777074734310486587993086594360209881484473895568937714105168206787874991772248941230529331928952755140520135328898511564292974174816970945212648032831198125165463618849607455597696257222510391612384666699947842598877842539130799614061236261188582279752259450097517482300627872402846828986873375785501540001843794821268482804535226736173158200441000286849816078672591634373979100184796166780698030114461236670129174941445831021973896215740225552137998317733394286989799823155572881670550199744150847252899191551413787055668651398771130815803776466936485354758502272184485943382880081054015434586445915948431112858533871813853903985387597539949553358870252624016981909546491285471877554470842636465521779421180462363165872566509741842010729664907557322124226277139446257701760008253212556665585867328291255060504098064744372491133105092577879133753761816884442691163470346106324032921560407663276372111363878358885743026296439561415114834991605318915605235265292356256363947450507774643387733932861285629163315675904462398461444198705360010057578502532623539329181112524457405420216204295864592763308243879602177262633964595481098367126697192921424590097866274848737467521037946011878720645790530123316827718228596445591643012911816151447325612261589133824510053134231559664993393923244265517915256890588446232847702626963044012380898363321022907023650897502001366309336715127150979196309479418441364262588236907714307176377063225697285019814399891335539249805605562353604897752182553609046265106060465237673352459454701131247642694637089146069936906204500477674584205515742823258131846171769918488014151407181299510014450669818327018792074146132927661825650108724571259427318318350349329309876075489711455190145148275706348363523350157619370093190172440563882059994197871084436167497933178813697117908565904647172966615536740437333983892391619781261300278440545555024340193220483397943611525847771336331753317305906837981616955058784201364115060014466723848413521729803225383968547757879968466519939062124884635976487542364617337413565685887084829325608447841096369653391679298216722734326127034514316204988576535145369971855699406264809966251662677359340814079082600199959681363879363488972962383175412546425161360995790744784961195289900786176086066283266479018182781168860192682892311952156420811584359377395031305059081498169516492153882187030501495842968311242039998749984609593141272057613478994486123552642502271435030088564869298593582679621722099834210430868731174461495872249131770417356072760566310344332133531707089553269531802309462414569312405729706117118713980180470558464329994542659352558095846281463237809754653867741493839317639499893769477167861759693180728629990178098807187046281922803534682311338869147728741213529306260615435031014316296731122853814777587084017696658356472362438149748363271275997623178198514198439423249119499531311596205684989856760278439857564165759666678267735998941763149555161336538872002865886765241544554446234672877506162652811439782606924567069747239493183493847602125937879041646327990659473301847928665772981855991308615009663647467656673092852660847258817974586500994057497720212779328686367515116190986326554846692239281004870577121029244858074653600386998477169263167604117728620272318568901289437520988137048471053774992833513810177111807426538043693639585833010996357503591796279308342737607022679932761514535080673269513301602832427198913220681836903185238717159213033472819521629467376509634991005347888142921130571690396994397382112165167421840513348033037191354992287918314747136081804814464064327400286604723046418481216846446288124353909803379958159086347116826368800871135275383493273083195241249225014272268707158710846734513676875799545335687529118272146544322348981632392096259267729262579946006038133382882331460565443411131367601475380099416926010923014825584538935151329435103443089366716972130573318037602828478479634219059095645465355977007358304270848832173399545218967239297258787936323931713727312729682815404787595142164894672480613625413574343833201969557710601103919734354344479573199328712494815349225589551022005096332945903500312109758140704569549336845919479691019594962506968329940926072430054430110817687668493192344273037566887021385068561530324404271677713730693114418389920311439264958585624016722708608965906663260379849122932451662409255735722713760659184905893825530577404925754903124992426535860523214304009713111900082135797408359284772545937377667426495951697635577553843465133012287969508857636289173661953890442702848102405388076084367135090362741638449964841841406258737496468336505765877471041981785994244207533162060907569770617008988172133602937856181873868771461746798486770089316196584034282226574322550318771842025332296478559972233561129532160677429421487521726830386244284992865963486527261300568468539489490303909821074976231056483971007881056344045799186272506270226820621740956566556955898691796286264483368793970079352216433491056034456244805269223346910166858710059637112740228020184028383638238039885956608961563557029694385167262462496506398164224780865299770183997843689936911595802749097638532920253737582851289487420203839765841884467141617375482384775500426623629168998144012574147284485419315280649974136483834762001673759780969922226070251106559104749802485420036540559732712019764394540167478111749284382512442343741683147829241707349553649365862945910282295630686482262183744105285277121600343246034319792880021637033204809569205758567242059119235154788860738687012469950643489771297592360624810111511925709065359282969603449376871863196843281427126287045679227835303676993866089629523803094560245524136758497559540442648562773326877693405235964575656846595497328145650414560974486606742228717638211106681006503018635395287804783482586614396519077593208667706373423133892907835511996938593001671954470808458892469704066595689176867617935197731464063529635203114553805383216055103788653417931341251023786466734933421182920870093061643222628726231911048936818362191632979318337246405955753311320960943025858420709620936092002651872030652886181191488454931468882599078255198966358593982395515997063952506382410798864976222953339330194696172011999629255848571611197721887620290536497076320573170820720763468409088344989343411940425792091820085441951579794600209025022047318260485395433114708036826461046841186114958743960133150786354467200941816899506477853798855440110665638086010332309462217566914642554775956059891997062116088043613947054617173707143576422007257670879810078136795254615879800207496153599303571519306523418753975237712322427128681783281679523064153723294454427752171433100088791838530832017166489436871721918158859793221248431732113751768634844777111856769577546939617123114031512723355712177729917444141301940037722747065365175148431465943651603590683919427801108931693917204306305037250856887531148727754784017066197289427140241222171571330529799909094247309081552487127827609189145206703559288818712393528368927049571536704986863452778070895165280896591843670447960582262080349530475223782340877450117284431794398116848079150263330150346578070873122786270194345423297723742430136989568717232838677086422898565568454092844911512362656783040183008641655005837964193925079462823675221216277000523041138521040573156539003266460569637745468927228239374158871835503091111160913972543405197236487637614923804734336826196185448950439881426275690044397609603389267147435703841811673096037171995911897066883123121234929161673925097065895666390952632684046769221776597186785614193446831582189623669967115827515631592351670668311189702253901968143737975479272519875525793512330440875740446867278014286403201314949632345316468375781574506084565988585513815372428086564056946315965862751762367472328288552818714671161282647202632016762179713688868721297914671064106992729924552357891855440956519447554992123262571036540991918480931439606919879616449252461772999214332397868531317451343960561026478332695214857904937511249262319569344318450600601184904761500220047482252770750739283315061942952680980695993725733517042268910203045093944189551785123859083741860011343198576185248202456287695163035166073551331699556425908618521228818634161973203977155189496452561385485192313642520014127245665328699366293688853958846724260818140804034059423353451007777971700557016097230831460952087181833960200186749688281175620299333494644225595256045148651214298074264042748077493724598121254595338305905511408082515373392470045675399871703620468302201807619196639932577396236964867744933105928641056683588773835128948732599747731692817931857248941634246289220969356656560458779677638596380281781088202668645236309640055330149657204799345176187878607350034537540098278624959463208777322281064101412301340656600236292142936132332083257624165472344603407899186730420410977175875947409512916078420094080656539878626281223877079871140849592962715459231056425389676343570019132631731399723069460882677003612247631049758220803390978507431866581083620169634733122602522766417316132671296818043711247033662093957042597437827738016708537615391066599390425871059745110747563036870789154345333090575575768588648438354105119666364022186333107843862772465860028381304044530591676624889440523628883529617399518510904208916164592647842903773671446350553209582856584920413288316940424407477676762183909086557376420681892233700321234582989817355443390607507724866073722771485051309913610045103582247944999644206550547362162309520091148419733341520055403836641922918284022780210189110105899561154167960880974077620086524812727132270393901591657502063154008322676044818706069999533153828389384684898248961860736114834719225648437019552169187166889458167727937579252532584119201049849903631981544889804757092320163221557071586563911043311521342356537587242187730254615501941849599017060062945935927963569200665007064839853212077132696302571352652642917241988972964564106047505752926053768724759225318360630620463859794855846894205127572241582156235507770500123952808194195536320409693428161227223122273865711444052044335670179983331508277599228741196462090177319815639099915551797004323936644697911681805517799202908799896534413986964991687198021378469942918958897955286947801840384945306900120803252628707533247646073717615668927067272460316553743075414333230867029393239311373222629834996929275644539931552264368859927377897496826868242571472169719735748095524673487696278683903371626335754343238002891771677921410772175890025562617992485984765666649001226598239424366816266369477196310641537877912214391267842684426383566643279476761076028133778945717301365203650844653370816021465715463976441839163401944287412172918926886565789658221936246311800488258661551227077220996653152228545201629505102571656390027347241870547453569048446469937126833118447311473488396274499260059409033968654801820757915982645436742157305841806785951895383933060760988333350065257405760589293709841803171979306612301288396291470606799607322692451681873780734852176033274361687978826943741864303090146981219432182324305454779364561340943462699712089957658151844411541547143990721909167181336529529600681372159952155445865884692377751592183163929694990368705393360284839453148499417902842000359905196073328900291937003347871916383164484253716918553987629782041972451862976432740095646855764681775909831575524052680544070098719256226023591508276724639990631217222522695051671166799955508654837065688221254114242629317909597769643151603613534757974683186989062640899007082472521679185385022399171163815829646959547982920357056637214083799923407210826772459282737816147142970651450810855775290026756151881870291011839164479459914320939779712637047426494677435938256024777358419334389565718508878778594646958664273554316414282872611480655151051301486914205781972763650044581390984056235091324238648443083611550198491829445131698720584804803390108894301853268090206173078020299341010895861598528599499546240036006108262708283226293642997445132995912488475944799749097988121046123140027127506424858127630179716128963946229131443942038125090208609231321425557538789488684619553294726130886009637220360468673556062658291309542153518089311426636482644273449415421925114367544433482337880455543258689065516868003158941460212075049482399012609362508787698018230286389267710705311013433994017829962334751679271802178449686253054947184872460356309880920666043351770092972476216727159614231236288720871968987585620203719246899321040708919089369478095378911519219760405519866347446759672334158637733050009269181822502642812620735207420980961637189373866965459470283787100000405152034148624221536529689512136863510651708785787230060096954222259816584883605807337776578400011040906093808376815040013394185306504183538274854352928599690494568429211575795978033364760821830625027013288156766367442164521313039079326556844970006522653702997378526896913820652678691004763317665919551848774954195325357500475494592060945268336495480956252356886863861849154736123664910975342275299434152093604733351867477714223478280428590221653808545596221701458305833202081396609555076123618533994779742736541112151169322706665796405872662673685769447710227214567047266541908003730458858573891511907672615948433806909437558557911185634264352139804932578538922234837613790414541962032447984830108437107158162618414963007314463024460129448108903387497867736495978114881116666798139826673321079515810352924807405783558363708415005053205357980786146378142271322069143256616576817862530862004637053784377303374634082646824839437650116996107634405081774400046648787668708659626137404284435679775223954934992742388713227482276217013377419617535329137163974697130587722886560000832920576738333856766312122049990867215658560955577538976654628493002671298162954433646847587693925537360028014052855076215476940505173708993970090110905904710095234194613435976270665367691242482560257194686267234205522155447611068170578603198325088290566266555505330108349733699809130176341723086769395793647466768087549748195372405682788221347560403414017000085970289851093251552801514004277049333701484408618235876698545328906316425806759454623802074715297755646564838643396867613115649937528462149044282780280395107902067679294118662610067561889627115198965285437668553292027352055761288778669371498297669731941367383445854257006332511652159383249617151556300767848485015518771581111248210181585428379584665894133011047461321941710532015190671800752569974791086024615846904161318686409625877208894238981873527733682466563928936449558264304555790160305747035536772162628605809902666079976173854195203337389467776881596591185050913413280527899809280174589113282467116604352264847712662601006351304485932196050735081251648699633022250474053233948850900236944111965102098328689661773940727208271615199504523823305358262753090932165178935867886786293194885180564784190540937050855929736922087754381499031873489500603584919496869095586227085964493777114932709835875321061098716019319692776177176320001554288221082932422173054918653457843262174200053401010520846637768933306302661881022018645391433259768639388230150207870495654270349241814528005053349792399315264508274448336626743062661629600998431682589770962316709851147303192903947843280303934642615861685942177777259737262848089662879309852926208062274063760028292380293495217593619760257743787334021571528150144838097556865029083152943864677679662017760708878255981698465854941791366310263430192024406311368458236608457760305725735720057300045830113771185788371401458516914050943122093443884182477283623242812104524737948408139977585106877165751276911726123786232993896220026884885038326486423365395411290909645226846812778772652797958768549655249121884022487013890676046311462671996049620111665779788265963505038945634961269521087298754370255268481331486299710573839112719037372288300739891114616556432332010622414812135974717131117457630691718357602968555681063912495790755363206497376119525262139021919062222870695575670938879175435778587705609625635159414234213231749242494517032592433107133052122056022978173748013090547831457694865481898522148048125048384731411208137000615229249761207044134280157919502488342025511630261612272720239258996325136237805824828314201053791211015780568853131152318260930076973543686544452250925599003417180265153045319162634873147312712187982041776779783454388249886456726858103048773867687266435176378523271228835587008543126479564621293207527337788144304928020353999040620703998611586065240643839430678491637841423532268036083124044707822520973324209022059541504980509736017982720597255781940229576880818789918226438405002563777659796520906936599420971255479744579057206606739337878778422873358534959960769110245508840845496554432450691703941949695190491314639611345878131947701374610116045188801291865385674771746232132830491464314525197898483535141509782740052482070479731550619254947352144842739510448853830113117976560933077721342144032258537701723368273164708106415594288719460420810641985927089301874513830155152690662707933158776298506451329668420348807174865337532395340091651763691087281447381924676962555476282846219723749802762307867206941857367081086801094057070635500710027181693571594073220840676488496787158070362196688798643011363658680724709790734985853024648674537028182311998775380286527031330573805293974880864514002254504670527952863348383063609072055507130124272666850581436751438240228376742647650188415775982826938979114849100889839531074949909163450260791314885531703495208243699838713770110751070389511379434308068937618642586590237716396499836320393120808181871121279429715633306978288340152738078377930296370718368945258347103162281414032675359825413161211108166415129161886249920083683768000546555989990699670159571526282443687773778103721000057375362322936027531021584176948964484087064949059450617698330855793459493690966355369317098554375411030519240645910424931526818715393145231838723927167486114112887707478445897286018187964243834276890924915656583246763160614659392713055348485552388752101705601663461548848422550246480924384350286532815623550600249581787954459336629050392824074840676871314035461937863058298776788673379717062794787730951537067197100686046582899876795385968643837636655148705509044742788646487362598702223894302121826288681136199118704423223607808772299549313844533323506307102204954477766450081590470810658056643429200373241055032399559296138999031879364278337690553693742735317724706901707609305857653779488253988861484457948200200509906703902215256345793668445718771471810277921931588101101880823298939027053532225711499211209609307442855173106344620032857498337075785698998352506750876441230542719816334537763281554631106087022369602515695388124364163126022609977040208038789963213159798256636221846022620879699775710877755659342374941083457984912394487888869023508535376376132913977523176196563514875157227723138634330757092868596505109847317206502465243538313502178986304777225428217987619826926689479234508478514794867068108173725937218654640888859316733536217697335884049642464516256666236318846954680047352868567397552933974101992161806274331932139104977996629049933296022257193400031474489708739623778033540677206022264306628005262958060558105778881193742914903873853922826931806672066777151288824687964615899894553938909611520337360642081095448901211733175267230666624130245791023742027926143054776044714024660760210692952070665520342594773297323075011126876447874504089958034317496964043343677656672277486781457147896115188881019028991130307413505511019590901256125562568706396983575448440481949049325939688882172974084829433041048044248279560990411138153002848670226936241254608131463395747001115425094426778137859734787314272514060015947662799889623134401729930381412070160703799812071193768009663180744385593803959345567662526160165197520585479542099126306312344665910818486782905904971421713976113770821525492006108359006251579125029466158651504351303715799826910572914614310174674006086594480099663416177957851872640261524828249513625459373253470339120790159233343221396184207613893035692001776446840258253020010376342621172771001746371854420836829925486805083762599748309230486728852151837958888837856360584994814150713968024712452980243916478201608292721944727120615100035700804839588871074060957572971149814336599427041883173485929735858365240132300276546185221434423568705718208422499609718397204802368023555379280887454665214634553249700373331836487552338856277945984370588375002985257532923354617956156480300059422879892142540216994668495655876770094064375252082820809019059249648031775677990927560741956984240207376537235276821165511991662640241815589909285116050362734014762287183707973184882016889869292635717569622707574925471504387617080265049670075203971235917308482886004956786909504821328073404263513838537725412036920704027985046687596655685082680777185146659694648707788882260291868807528713290977041620216335277614858358522774173683721393960209899593100850456772615542752753636825105528889410238276134049422804158353524623670730609857592217007945961954986131291232799128693231660631154321436924858523612026871317870992938655882588243073071370781707469783093137330880642133472319877581685496058959147170653779177153191100624276982086229798972951611929190117990148098566347095808006728851864746927161509629046613179412619783442210173200870924959108081281129488092366697756280065154025046168722316565074374925506528166730094333978973970895526025291334888055940575118330152152672788935029699908726116962575823567231925107219935330174763440276397876648052639208446787520882163537786152143202162706867031066654008747294914352988275968745365869055580021230542155511412862338660581836788707392251673147504041018750227217935495766528371040676933174951191249737053461275202900651973120452034792835109221798633283492202992856804203075515411097074241421840684034523127196369734109816457352908507382576391729456463442765661896184304912557347128394361539116137895874912991914488125119719595797873019127855098351404155059819252823876683191583835908532728832676262380334947596389175875155257660844182485319870008426205474603486833609748404096542544663842260364479228938278819281681294908099517729918785175581995341891371202035744033834891055830773916414518304737536752709103855300606836432401821506489105878203147913271953327715126525933890531404069175205363769935878415530184517294874455827084231532192119831928624127820619612791542410559965148988234918420805246388064333183215986801333572541409951092006013224040613755216186451096208442618190042496259942281545927241522395120997003622133838677967355218535757642439648296144706962512566615109062474519083470294264629312821343607683441635050874231631532370363168436692953021807135195075136386900518779332342632730088405350913194225359884130817661690499729027963720410451489702360562504087172348446784816723366127884605155958964630587236922926337968964947914707122434281744145640805626353308072675925953013235382382353359648103301250229610447342216155990253827480942395192955036931096712359537329845484195185976654973876376470283974094494220431498575533736419941943768447330455105104393705923228317469305137927604113270509191371202756463183097106424444053502317376356592133868354464149443739550690504571273539348987297778343259177465647562064621701173373166066009161133199136353465265085417691937016285337107897944118527317828311739185530089553457235089858815752536349712046391548351480178834818564703567406794933012870263945076314668536402729906658424729291622062955209067512032085035441573941265254998664529308177173491969705584871706446744026991881663213038268253326442008335884216492745983671903855382175056493346888753175275498277370136278930729203533059916201851213537408410007549508079415930261958457925455224951616143459455329166788792743102597833241094353928928716331979394944173292610466473299072751195978540931241839474562246415228460570611977675828386499203877507987256233661537202822412027897129722806036395517239756115765227639089941288149737736884159405431223314948424213988247286711352882590290103603842822946848348569441887757844634355739283687718916587592935202955961461649220610919320299319127619830142632688613042314671658216101141810792793733594085537401849324196118289332928302009241183379110861472683448661181323814331801238161514799087909724833111686010196619161946642954833123269806258615165523887052113500442533204278768348584329443357909408657288253737939953045836213786630160105595520808779542999364883374795975747223996324415619989862014944039715609052229617402689374595376450663404462238557699739011615571696758988122037035866287925830106171326632312280830260784686440427912728018051665307720848998632338966912826038418081876937774235635665250377743746369976497359420933038235615781281140340568152648500124764951723843401934694792609065664171212488656261276765958657104554090293776829856088925258961083960119599548970999078871373910114004276173637735758642031929190467324461380315399964620740984474727346131659473066212660162632235003568471495608241129536479564977178692326866308362824986742220399648301426225324189099021079700049687887469589749131462958342151570179848965481942037179836405469412621642242585354095774150112812340026473079536549296173746706174019571877343271549158445130687218241933473258406396119928595735696438942392769617884040081244242453575631234327112069904337085856044873052354676348667333988172309267141822329738699013406660201220802718943024434152835632931009246903807123162739123805989075925249393863298777375831725194451222196513537166274740076957415397063720034683164269436874834743629834096436333602970271763164514737956884523547193135411558356239314120675039202731586760196598450971592771080650261743134575234768245410435337678291292131212297753380090269563306867378360978222985357963135217829129493409558890716566107656851241635363769142013940619175093504573374212209830668124925964917076927138768167408747884765889392412993730890498564289845571029061979383331446158270171629123379967820774469423070591751777866387674324492642453768643151911405869325162535596219163481979072604779418917260182249648330183842765023833582658221586493333311997240656634978112438219425475493134510869843764445319803071855836529572939293286017425875914336683502897868704139797590931953151510527892095209251361765894940782998082403814383087945929764355628994591867974131184271716925995063012378069423357459148115071890905241300787868723082484163531974678701669996611849727090741434097479975638112366269949398616670531825169001771093340746511073999102328999083692680881885463067744663737181817473214171317772493215289046543548130246094602499532723727554346889037602433070143076653358926633529225087887193670965100983102825120814044228521946805910813784631161324019323282772586842009488876117125517639332879137429181514970441956668703267408038206390503748565666465671723159032737011590172008212296449762587850175400958735498182950182400602968687609098479777147263544488007575005511389745174300297984855584644795910631134581232568129170813594735887015715679614139192170979236603475140763267776056046070129477406872264823809790894847988541796589445581642938346584106043647451539847224412751428367950441633448804258533184454814698887620890923018308382787076796346895347916726859184068651717972878422233944062165949138108036030427376269850189263884193597204940806719812486101553875867483149758360586370024333375565542843337078553024587714768144711703418432005630455606490434928428325382392250655195038146525444102560452097492753989058187021084555463336411277615151315452282329484563552684135959623256674698172213964928754073810566423944661988247947478231809164106447540248247568755729812088444511199357288351658660692892272771449542496395585380118163800408030931785499930546133007462645075904501224566830084977218667797762484136400055744330753083999288681323044896908217200714094162297446182703635059980183448293100866580167009588807453214478239752981051142853375106607178813222550080213698219132568002670090591185775411662734221359390514617169148752204520799190734714065521956250741916945266050384802138856042754023724717375067478190291642709266779885186769577471122163283211229911252483941877786850387398782847725715261532179925413304412857614765786762558832964370252871388437431617982924953454353720522608245633245252267416254902962262655699439714012573318822258956881095562822567786169344300391639264508859174912834024642788896596313630737785605246799904648294351391670091639568888399143523479055000789106661817386892391327949794437777111422924794072790082125109880473161456515565350221234996043848275904849835357662120945432380604844048616849054783562871209441946488292573422491862939569985672773626243414640110670271330557530479481225294551086598622251676534202104572070191984735634590164290327661740641560336998670807426573135277343799281932415686672114563380418550972453169373580813808320622969842415687343554997587163078264346019908237587910890797850823877898689986663468607836635122333449166660787454485615588345144299444705640988006343998275022089858542926788321071345504836943167155955302912043292882468656861697078546323210215069971710649815236163530441613334909066034802709266566808405489586351126322003992734468051397192657677957103650831314487354905396323778143472032999356042809639703127304245765516373494508589311536667722417313021322073257366243363652725250165454942468919133147280089420760622337941290897530526369123151938643747283999517037857582253210809728171603509863645081683276150305249773471798730548905676508945210355657072877949082572623675329039770343787123159480173029438497570437460648759979621486006599203140933238942712936343896469833659402235243070365105902777630176453772337340694681825530680717664208306625946456251335265001110212144397662073156552474373035365166815156513076514068100265788100295777516542969439811764876182348391699293774425967300685728747490025625871743664382300717158726288508708559099988331847109059178419937649208655810879042574380475501864521347213816983704035507986259554415004110466650391581686693818397619229052253310679799416816936373711046923957941242533846958239118478422347551899653752214129343522107743771315522614048701941162425970019210312510253684555358693930509363507187385892634187716835157020262387676873224744823792848271472134509825685344589264351654868130927492273840173567323399341970404987924111019864740822554014968752743612571893346179306902403227714233486315264092965718226863916962053871410183576929388292989335703840631952600240989040314525360235670078547007653330812063075681849213432704067126723303175368559209854890321206171502713094897853622834961854353438828256378616676520934829798103013166389746456178999757250713668128960875298949065876610186816116329646741286278830084900590691920010444783094762116181284083660366781856780154039806593749359775468709760594992642602582323264524767878871017345423329652722280919608109629532738245120461463016438328189112932534078019163917824682696831938509479975095810295951255328158912786777851863456353875390816780075899654241202421829698125744684509052633786260007417070415713346722276644111471660217674375317480978457559959338384611373526913201560087530053286944995904557020575373807837029810375763547596073260703833761051179922424451193404587268491863584441540752647497157906168149880171182721816855180329784650311672255866806972900458188345940371009142693300072028916448797211782603823737392857627183144665008490451440509201901745272581215607086772856323494001947243235110958118691255474819073897103632527887234340841865726525299083951753568548043849423314724614116280676743941665477453639667873786808126839287597587031089483330208422614413667068166788414647948748396953185646426025586234988960140289612732385496629893980586618582013404536632228668352024954842280472363499193469397040773185626065128684313593057077061449602362543774282111692528892265332602937531525173692075164659825207907617381622866091205106031311671057993621348647081346684415340353268484651586065087356663443480998723233778182913797931693078603851775234671758069032322667024967603959579053546436735352999719928025359323720385503834247908044811845949251407074372371714263833689900027364440292551476683227789095363946123278306069259458158665742334363363054961493274400668111601970980456582694700669005229517428404714122014204559492119889960528618190701208518790808554805613454949935872237372908786636032454115707008628586065750767244926548961263115939915047520280484538487825907760049325915436087040721109706642223289185497759749484199382609437188839446705685622319113567097061052828002530639865782534991538452636118173690260813422218215667077261367543331294425768535143429580287707611260038296556495908574618410960380626494264135310236593245905554582471863561956487521177394194742160636289074170997099666369201703467625374317582704338437341022452009723901664448724922321957985117501505163200281021958637335584729407597946256028647811336859861183358142883283554342922852634838284597096806342399496022203832007968614715576020612808671179373571594297954269197586519317273303518713460597029649930501177891973200649611143854337808011710613856510900146081838240724936765478455296774365944248635819289917929562883200043123913186433203589415055526699950070621597285126471389377290283903833398948295313329608584062395029645724507684548095673407407272685264311927963026149137579155840380270428982205125943530459265993739771437583454970596136946085485264883121852517901934917388989436413259712087745743883979313040239080689923884547663788050835729368558159225550317507980315384130390321989058134082540462018440009102018582483559548322799724077315706368385107434782878832833689738462777592469543119053076443831529804132718949771119344653450019165614465213021172040379507686741940225539810741073181070105704099873072187636537637818049255687564027807073549613913693208353508794045424473062181592990326095541472307496520903385670237471820660941260428267450688670957551555452733861543143104910487841695551017017338376870050788871722112208627315832706189715564547088751475666246397339600484601555841167921399212744329825887464919170765745640288659878628885260924452238420238632663473811930131074783905937641548140774298471010994597815172042516272706743666666211884218023731661004933377484170400860196812096874803468465082713301537371902736105066172922363879200653047253739717361010617994699238503399657466503189400723752277811882010795393385425816445772438493379123059750644833139748654297246806542733986393953337907790915439306312593382759892445873451050028785265860320183343689389347783176393173192736355221439384636906388801775815777297777141908859069872873527207185144854037588136453211700612915232927121397960489534773402352392457465556892758426434822693970679902150577139475981445508244217063921283224865571926494316992018867104580248695327124295553379106638443118765353754248432880972491352533338764572437486991094392844308174375920776370126729566531589660802034186336614842012375000401127940893597774407500580802963317066656559783885980206700630322015206336899231366508119187038824136320487779151547809315984785668683618053437089862230776208820314525254994408210555951872451661742091365530891379872911688531719137294104990334602575268745204172918509539567565953144446790120899691969132554551230182418937051004969324683166848824067885964283932722785292815934989127051834335689912349785029708941716777354726694737511847146838772299270230099900781713556541332227094263561730176371145721827883183900050259718665879689193475814667670386793971349424468112221212373185841738482949703564989333924467231446174499710627964635533471584197382691243880695905357047229177050369468234064007347363896094783910519874227028813115364854806415724073783020733846847987278504180405369064187766064902663456566458594060842866539102775700081814284037940729273742219815007856485384969160103958614134473337321311838885889376255021961258676218326207851626149125911490696735024592463782402306643913026000579233194486365897744863418875103971072782514564408021986337070022820456987855852061233420809921377743229961573452652609051767195583535105674229318007246963960035614144934642946865458068489344317161417607896489439060078788359029106584485062668606215230659876105372569776235198291286644903657858756727479947328770588650630054904693737229146073431009129127654758159571555059889042438283518762935795616316881826714087432970064269322394972901989091291898944643418609057721763018369163175069790477276101672192773741103121054228068474338934320574795957471687184378650513486592935160865093882387967028516212488191330828540150102985828685150173076467619715250638499379205264298028007237156043408891436809834837195933206677575461105942752924171249787163197701194738594409067730273111690335405876199119799543317240136886900116318781021713041417789269193598142223645979485225361057311096667802714429141360226539695254531763324108642847986013864888101701386735061140347004483594371709159972247516274597024107498117069441658273411858444238027065876613775988762582601169116426459687583522684998587653754748591725267783148814371103869898628762645118563721967376006988175836039285305702424840256045789879172214909720475627047980345499047630692160706640792610578885745863843979113567599865446243551237647544872540508214855088835169247036656004755110428529692539361732901910168645356833658726792528019812848074019383975264023549127287242449266007026681982234969843077291169361616243735522097160121926577384221138174960262187763825726133827311469329806391766065151382692014542406315973596062651367503777811334246907373536722685919221665944738600423836514797286081238269974684246366790338539791912577003328584611358573431934677995998918716174183237744070442575951485838552819364186837646445665038242795033548372940969076524993699689694353167619848271625511128562427102176707858253688736653010086420546608027947117270455418025698970247381009839435493250502438466471667335116460429307558959810618869141547550010640938945241580978651514772567676495417279960754444121222811371556982151946528355194850195843058113681421674512828655901787029709151194954458402593806220000860399653462488655733952220747821149121761113671430358012455725496329346140357881924087077548926755393376406813878869458917642119989961803659008344263040885239603983466222048359488006946953173935767628493244651869309194245713371665344457706477431285058938067259257068818787185531637832585901106511292425737613737161953141668083210142481753663829287729094098120623498981176458941311355181932250402420926336957247841304867204089709393289558012725844825334902775244379383218038353859381057790101141739039484275551956007527139223237177381698758454142680842617397173356140914448212609230208033067935436468657046494273115591635520685389611283201088082142125728292160515224645759360858102533013789766097976851084104494693721896799950022359935278877266624845127446824197854759372408437383864516458992352647466255162831162700093613888831101135016953565796143890886556986906533832365805728699942041020277211531652038552875861071892235031929385623179900541064784245715510264407252821670768752864740914588504706595357227755993118071811059680629105050502378196500906824588470434939058445539821384750992316590118842519533200133913380125285567470186639801750152930576894566133457094635785567764075340319359734109941543040328138539852653945460814788181063019816187270645398905370483077628718316634178409475722550958370550368900633449271625241773708776473737385144640484508668825304893981245427416044027324931657303937566436588936076263064931168497996344483036948357590944395567041949982794371952370792767556078818995496074723414569606496861262014788414379563173331902199463796785624001549432573193641374078378099156996107166014206151881214790387398966612481651358466762823410308677129158214060192572699776451695260119866094024980609938812961144909247160049304794059607982101834927578773056474676420719708585859466388460353447052536660078840566263983211828151228833139222084240452947435160045406976823491242223105504913097909746718571081586267291259321628166631784741118894696245366618682382798036866161835324079821481447922408143976533241686267115757709332483369027048568379063398723993738785484022458689678870239143326436992756571226198653517115796890709505866367903973963018514692369389578808756216340573255315240586255314441391261926357497139141968476963342473603276323486982368510327516844536033950556899951796465132339148800713072926673201599412355102634615921871563486337525190430840926175801082660212506431086131025497656798582423716552947145160076917856025643421873942498872081470779035104118617000370808131636602181315042203665148907933102153210731425965504677348136921615757183164667547114099761053004945520313090277360704668311204372132247967008218001538504948920568516148073078168814381210350534756192535560164306650593066671029267247686945337337011051123309857708692275845771068372903847605350836053512426009538580231000038189779452328543259977890393071082315360641776348823374449609973626736115780160763378444165821057568908402348519209518565562310006933890698099997897813508496938734277711106450455585874121385832714940032658904564372403767548687722339433579333063574930702565783276034012386685524378681213887625777859232814243002784949215298286960164722745824155509241889956994472637667820531143085453318000647729114773104415163640376483077350781423141655800389392358082072102397311076370197663208036039623364929331964240906528031982856013711260925842004679874372782542095029774306724330288295421007114182046910495670775046654480635426460480382097520597162271395869902973846820251187050796867869084422489977487232142243442344978278421259676597359884861088639209903193834841645542560655332127867134552189297843241210289727102711334187921469801642242285523453159222756511094427711256552491318766797533370078565195011022097562609482418266063679674327233688077626308832222559302628749869462736613976490267488755863808115525413321590696527242886713629558282126931704334681723915557144599308126776929858542778148563613678135223028717474330031070753511146780028785225466855528742819338942154624992405544816651578236523228180596158330443205058632981501010066575311603990759338216334455649157431563548415235516633212464323869665752020881019554111136521711687147230142524507396578055771772276826101633367544785615311483530773226630911120023578291609778254155429921697449773026019875647907667683340313786267276311401768564860711467579294274677710079751002900084731937785054051771287351429751017599799843910298349611032958938270607237259874960530574836307337764362976611582824948404339473555283861592462517763990453967399141351319709307507653113282573726838138864380871631761116967799453070264653893629351860446420409427585455447917480991082598367717406511540325847760361195537509439328944354014483403445971777389935194623767075818892093188245154895360340446872875987464525041839846273753395506521237530823346535538451766358158340357289964745515897499474247936860228487441134091571247651349912387832223803865376630143854717211125031897631489997954967566337613148401673132693580859088186955432790463794488947502500575543706716730395654610480983288665704339415431756542848857197028547067692664489818820347711376264056813465328018022036082116077214581338091179565089521531872928931867928586180574738807797490666786638435772640371865032307122099230115881968670804123052442686827592614646516054024143508505755864094724441292861458663063788120452357977551470789397824431028405357936844167862427333829385973349889495621946494147865922408057917447815486047881370501671994969797621105529617419477934904139036154582049508558094883307825042838927203104944093005322070082170021022034247062039991061893235602981979429997768912624466694915414186610686114083627977024429231312273790486873304003860867122084959319795232725384028139250509283059341123862637108564307147084219074252166906007812058428712307006101302353276738461969033496577190091631897236831662641013133315399919586083894918318192779125825081742298284624066392215628663593256659103808477906602794727087154397599569357879434101637000968167621501128924271183161193102840935639617377983534970690834675040192523427109675241150423728936477258873984138662798629596342297540555435936948531802099280028283384198639226587121808926516552715911601226824752090098187084204678351751577071345134756743507794818024693139577690377661008123223022948188149128309570062529620353794980447038081424080698977659948734500057431070492408056068823584960841764767152222659300993201620938027016023984873727392354584828179209635038062189719599582738823451198194650621746250783496322481099957385903828551936112254148142139278940840058644645618781961443123794716166661299104170971277535000278159612173986696091861745380887188527521019291091814526290901825948124588876637461617287985885890674865351270966010491533126586774999852596630814778168597122459357879686373220512314759665547635848130682200212236495434165005889786523830143516702470930616499288359557306813851549385917330997968617009994513827368114927099944521657239582822761053825636181981811423292776202315438418920956296772524466087648649533092573926826589380292904142509673652997814912793210189965369274208151128611566901457640274185293206471117418232345841392118123156362984935451754763025242190044285679780712811345363657347770945833442639100222564980982577342418831341740611319400318991053903008019537690485753972805465866897600711080074152729843500147107471826444782664826215696177041426186088770280585137946453410790198509813541052628767712159658550350469804749786093550005001138589204120744795493399798982192767788012395710376271999395085285115504705294626124918751349982842501669047661801027771319108578029260324048533745216946904489065738609868640929812752886654858463578612427895967783549789885719230220726561222418468121229819857086219071253449808521965225068849169995422343151732724904573753575233851415695677856298914113683405308860743004929984866646195604213847179110621760439081933619347034923202686890597526147270669463824902077882767116710387690131040593916762529559973268374986152354167933837169110899769217246364661866869428532061479207911567570163947259535984807357999952668857835439477393548924987945456008136509734148565821446691139987899706691038375638908307027365264519732190268201217384951977746485729353073470947997429008806990477297201102699837194828486121645429772981106285360190905175196269940148411675363823480781744071003370228076309685873110485879778814173565306387685686580865736406122788128494230592878713339326159781211085516645265451048814832825276339534682042626263733881604497373504146858870266414919244329936439917093668307276525364335667278448908843409498727686954931596476146452268216406025340728322289948439213704766025519115545161876356377007712599571911058386554736323800141528530876157470333372932351446570380157570235721721998474632211272612963060712592388913764620327516373418063845135644738830702483892323848414412829177638797481756533048148345196099087722302557875032207264824298362028380009066147381044482045802238961548604154229708735847280989423209494176970289328075284033016380615022337543698341641387191021208666956350820190732499986142084652478164187336778792583118034786957381429279715642034479956439577959280176876232866174990819735254790368489253161391321773369167176411889140791642574183530845097175408315939304855199721212213968054714538978222177593999040334596175670252430036853721566233146022746609604779937634932759939083142071730318156278981706519365097808455011950530238631014947109471288595229353675119604673228449702863329473877649684339951319148777595822799244739142816393335584856779612045622817795685386718188867706264015696687577760310272389403763183669396917206369570419241454515153172831653737804847707707704032566716982251517636296591936779758663379147756530734209953858772927902849700401177969873778520324535452696934033172395628656759878352577440364871069406122859463649952391545006685909743595759572001602534622727057137421222555385147643926251916267538199732120066284323542050395670949300935368423818597529271374707539228243801914189500543100305444534623380371828280336580738865377924010057356383652381861316282343911169406341449943796440982474727275510146064162724997791907332369551901147078805541848871567205881411671624663552027052155806100107388785897864137036272659317233833978104936252934377572675920914469558113257687019848361301534902385364437463121671981816376499263177913337181704090259020613118057072477506588035782785657904543547152246071470536880049702955013286439576035365527629340154067139318790509495489026246969519847324562965812734751195313665280716298312992423965027241076177581797412653752026545786640540054194540765675350467949896470097065185685809315952357516609643258006878777005755936571440341962035840665490728491252397296014877438868814035916794828846487865748922193143610811810640362661844129211417518375437127188360268780885197057464588281114590537091844687732852737409192791354547423909617894184496108219950630753430507561795506883288357397516857148661035676378335353597423853626436304105531592533954837835624328542657495342778613743775333410468254855805014436971750200743251815769223244189640244848937127965211033301832926477000513185858716733788001438584586402011665377009738295880919830556699492074964225726054532708302789304349863992951998161735982717980475075681815747349017292658276115227349481716189810859489602287130161525717567744554352694485955729408181128772766108595856646033164037460916567052631590710451543717953650532593493215473378771237814043738513921582520031849689890194502748463094400969588331023451595884352387233614855975533666207889454702567369514386875812383510319226207114196567899040582052311381470894527057739711563475807438501599237933241347720687092164940607209362767849351371304212950358999546351026004567185359059364483910366774679319509104388791096739431311187115846355840700297178017559885555683367538312557958757957582274191458982669284806790843408064109234979226474114645259595361169990000616408479141843553138772960621464834147943178906922944356766987645388624772086640258038758449997114509670856425510846478850816889875156540988346781468011048263699277583072123711903858954895528640627893278609873025040147651077193576049796660549033426148280137475278495310725611057313914337592977840081195395128388657019389606905250247950640075663426712460326799805330417287511588087651028074588061700006071202726613591645104929808211471585201919477584831815953979360397868821629036752785777101816638771249247818545469433920399982368438099019019470859004032944964585146408732556395558504613319275008699402481291182552250233520577262606753122273081034624213283139506839867702423337219434244707208812564725136134305208627536877338066340451860438018397122781063132296316321153425746789016016872176042107842159425629720682632153645217175014265720220169544679060879667134519957911762377845797179146767328406895614626621153941202718935809951576416780754392278307904575879475427899170500595964978467112542769567532913726994559867321254885033454687515083879877410069343928210032439787043572436909337792985213349672900578010308330126007367472669435684762166114769803530413691167357729098393861092832802812578932502506843094368754694756710904093610528548552726788901467964563503884486118899072296412273368901611585699105747246448132672082089729446018231515490033814750498652277715463636052481161576767001374833418366338115936244547110885523551227723642648100786308103386107460639311518205724156967449615700190029647450439627051621086562855032686281578411013962090945830994480341210129431125571659481286079057417399894253212529272302597800692212447846022491185443653858902133367502121943041203435008508393976952938585179319256738599888003194661393308663036092442251240703784968560149442384498841449633306203326567212900580710804206709253902163245743105724003623636666965318914961466176473293740419876367084821278494075699057355114071873590960053492753217897128258671081172861578314231233616419578393110455938951263112654899495205410967036145875299256939940086817609159541741401554835322992246502307114429709593799390234095507393434937287269000500787341350465623595085220192554666105845109669840261325601063488570828373049824411660153786142312463056765034767913746656976293561869313390547808991517932657337561661364504563742465198241436516708119450796024404306162565801230055351647472918991467133870530860127947359472527125315378940124307881250841673942813942319462878049950452804773201892989464592000598059935601016801026379380154942194136761493247194580907530203126841342366024666578939115037572317191105181978802135583830259184165860996846052214374967135575710463852731445882517098285035725589864958374567429979826634985754038818608927404919939435635938095833396591755825343081750071799131746014553129574666337076045404255030971333344632766095463290003622688302185815811312788619705703535934873505226190019457781801085479599822668896249141637741281890119585631182065247102143131243138786252591601874618832901734203519632946412956439854546911812683367235965063098618324136146141847281726949350344232852871148480112288286533437843137376786214886547130686020543861520424704170188364100713810734896728959871584236807758128892973958067750212008959640600504734623085385747613862570968815282664422679274836113157432003570307158910732051620133905162439377429384549007220128996962423652570604562312096095259056447927586350489013781592017527516305664997507241748571615515439598019627425963893125058684577067398066823164844262754015950664662554870529462276849939867677490724851619048799160697353135473681211170312048407859038889342932117894840311216489562001400876520622854834450446518085808715735711358906870853169313147563198734924412724260849758562121143633334232297909809155318114770252320665483984461242528967369118015901449565340997738400465116403604087073739825810997207169407897599792838784499248220425744213488930349772835780954449212079971252501277443879178691524553072237842036306598893101040799476527756093453472482681187150180763681618741214875863649701820969221757351535872576609234948733607225462125934969802444940151673584113062443262881901449357364600844917825063233437646766547075252453911477880590803951169946747399309981334313872536650226530898629464489059125897900583651713958788829480289387097824404254588998797762437665439680160657862487611353785951616118060960443404419342438069480487922413041509442751986627280344320817468546200667357144552464440964894507835562243111445241245841043690438765119543450344963153209438405303391455503045186933239925093024760763383524151479925355269698053636894029647052707306289900289573782265016894342372752514121150454056769131266828227503355275565707528275777326457403073604739870858093541767077419646601454010127250631339969445172293822968349688591594946775165299252052847714270417539034643184766249780291371684365148171917279838906159442578244456016985031543025370318374426663236561094100802821729017505864739743095728021618098016474092351029238462940483542928955389382350260108078084992231450366660331760764535071819123279544337255065083243847649916588840678851487778469087447605242906158449946714471829221313320008413297377790545046677051519244377540862180926812089226862469677949767964883022876109023127870701856466745164426071346839350393320290315973289942482962581143540819483079556997336968673688788754228973089844049895084924302069732085430544191438194738187219499616811744840372570891835624225477007187097588407140187212670897522511199316676683711813091061204755857041256262192350673057605070049472829574954818347631478613397152094133673546110279910057408719169023143889466099332959366926520658235588574881843668904494269916044763923162710264658609073986414297950750189775002026276401839057535723790244086420083732521045091594166998707677983063054692836498286283957593843448507893957563553049284460779767298018951442606443834199807421573599052414354265451075815893504993125180500340604621428731722068660743300738614036541744765833391363619352142088025884950305903926400004848859495419392463710304473375851452642461560763721547170531380745737454124929638513733962466596247399512653984679088565808943683865050022660041918629482910140520461581324730747461198334245279068724569850281132990742292116773797160923704285911057977043940279661572730199183799582599019555215992698661459862434322241782553741700605295893469653053462251951279770521872424417183770935217855733547148255870704297821472929971875882227817291894117852708920213695139387648633055310463401520630407344360801275002960672332264995483908468339423824899924966860671884906816951656980208472505624800874778147972811787023383890409696953295474423211906881430617935534934370704806056740861473612350547997091018186145358871587738034495188104790541243091161521376296327241243465901677560407906125234899448325362006764837195821814159042059323841016855847092594010360231536314301349977602427235217182503291364961979586258297328067836604938990833381236345286066099770370460069599550113840745044761734570943162516346519772417555648061623293481522579267340049729846522137602326974369583528141423921974608839011047419217261885110875108685320031746254108746914162846704600355866953813962778284548798231584297241288143527675931687885155227955211382829032883404939419311260865330567646084283626522872199482621189308454480621984941777665358185589163714608199860180454611872880588260727273547885899577759758303539395938371975982591187893738018157753317887209172141296163061116916765758198436422570431714105139193134131909453510795967758118069769899602187898702068172416173412209438714144594375129753755299315796034037631476099922954781250079163603605009203920131755666739487516341836343763970561417956737052941311164292695022200582857957005151331603028275684236658752912898792458049188028768754674308676328349861928152784094187466502647279398335118632421101383433688092287630454647569410553399213737868024110845577809662306266391007339385413822023930170240782900813178577993677854926048046468359599387893254206889758611775924490407448430291194852635029258876144994011209431977546319970261292141245690975480174058359975271319715374527313103962123875452227583493880272560383777900192678261395268299767673704416752393678097819325042813864381263917799276599774634655932794732938481180523091355490089061948747298111188436006328157339483831205027650916954846342565901889278955396089561539464274655794845698714080982757562804821038320336205800650781105176365569983091559119696834672705505313202453369147860134125915371227624971293645619073280044511586487383229312222990313926705051187530595067692468860777724862420211573750291768869530495751809109866436549993214526182183019281611054782881479853515672015572058223105526868292129930297085802330719753195294877278182518727488067485708297563322225053343747276668968906012922461059006282514043075473398385904061446791989759943551718550700270178432038607511870049864913306157602798770590778650318277138170346945112958597076810114382479042137046720451373924840231311250182623223512709588695912935653133399868321699505038035462352688806064207598035933443493198005958077199780323173792797440368567125785936481776828952357602417949318905115324683737656423262976703100432158329240014750402425293199463169344022530447162509333675282577663772767234792625431039387074621815180977379338893604706918619157888689197649898450677049861848882189040406730074143287953251300021480468495994234829342430936936851084732304396066055498712049723845543975379911779203121884834753904947023410167023696280879283427460038453728505443807796278083904183802074982851668834425328526960369152720009952733722986651063332369602376925929163033870169958926151345991935033944304396036768750742815922686638003017090592374384590588766731313343857263748336071555562278017841134571062043283438645265060755143404015095867202428953443435788924654051371517314053121786994137081336088834019126569792667616005485609585373017571319948847223354314848315053177038630712321705269495505750791320180870797588261832553487374535386511983619915180156936244550032136003267209154772786314707778740249270577354291844399966708599846497182863904134482311396690367843842537892399169241452311908967748278841272437812522860431902071232194231002831004539545777942608429850283427774781503873629473875352825094533439237786798603848154484970507442736980316908950035805308788900621612382229221582729679413765668688968437555535986997022503438754418275092220297398219494913595694069163723541304537392968108929192596810494275755426412259633048857672553992424333758267886996842875745510340054713873271367493738743099752564116858334671165394640860110229433059531198162556403491932044348996393053108600889008336023396836915276835060315590880873795562637775472289359924202623900863621874882517068828399816002458244129849706282779155785350024006527857952867907559596422332759426347162289095750278845275328274895700679055359144642665352850728766049086823053630927220488518724992693548523591494995598679294790308284626266649857984717277794277537126447464909123508352951018424610544747219384630233776357026200341325597470057428906820168971545557093813998185277957718719387554796464471689712457550518737604429755493273139517818880806723595090225121872090775823090015648475070451416054059388120837016451222564463759849165323598383017373458712075088127216342846959272714640990225355401857290289933639309648605466715927154667177576378661947630993342270865054981776855903288295602905870460004257196280522057617306035523385246305797181782943181589508974100206619609977990717014943352118084895774046553640054250168161275734615120863204454447114945192710211393870349696074913013991983443589574270954232905283629405555971769891466209517061653628256825318834485074927596568231796340792383590845876293590656490494360141382784404901126231868374308017170485565813061474171138180842239515325146131436797035275012239238068811932325245410720494136119504233610626811657391526692862163656667790603479571776675054860217112794585986045838136490660655374847157270379827814723491194284555005099121111884380699392873540847961611234729515923392970021217074536419054060429403144986543262533971157410779551754994339251934213454799029735042391350111482249564307889649528660027336120337215031529863888132308741658362641962563759356690734562720883444422735283504301784810693940964575484511480311408175541895502549660724762810867019845583890880099652754139645007056913609342748290795526576618337352448674659930362980737382351158732017123584724836243743107848064163098110555473467994457597136324420203587550216251725237732609569709422869536599847700833544180196587451927011779907258180312322739160101584915385658226826496531658792824752748363287357805542178916635092395262460520975417925572206329085635323397071983680287707108888697105429118087514240322386959869839054890361421082143069361125865274302165173043188169248014972107341082398232682559765207546849251081284638286497349628603238922916754022797754311299754448195627282404578547289101155929443351214239289603010883219661439641244927537420466533262358837577866119067543186933706892288241781870273020771870163884204548947291487579540406254191480405981017249603624858223707784941790715325575589832271288897545745158134386922782992347011376156881401895849397030619072811530694014386421871667973922851724589389816446160364370806854003927745269820031578021718294097720367752272278974514902533640942945553731833178416192354491206167169882957123370730528342193043803131440418636845854783776816175076859366732532114698958620357136396846963698251590048453695321572703656349303763089496106649786687722364412501543393140168492450195557120801991809503720118268810888107886666455661053901802807045456575029528158248686389426938616850537227111321892164641665781074882137708141700945406484655205533923024150868081864108715828003992638912984706255432114444433718261988143318844458185730953957105499906733832217106944466107190545364725001110969966118984662188779681441291021375636038294097415251340739599830618815743028876172263882392483161484182856801030464491405247727258649361878804342264603026456186182927328478147558888257073096680737734783650071168349877352045545900077545911180132826584797516164170031912789900799233233071865739041868274123198531631938411007144296534436588077530718009467541036928352281507379684117857407201819499514641001487730346364547918073795857052557019094152778731401037327163447684786898617909003190612396265121456558344160215723554932642206612664939567899490902360691023262275167645015060616092621427092051608477170455311840760370555950070483328990420956926753327600719477875565553171997182404701393972237477602839198302658365641713344745843840664148693474921816817645218497957486746998531015519887372696426046043169680796462092214837227658042652285373403559392586916680272202899550156548082018252011853445924147828513593098509869490263408257260391795282755736467065855269671740209752960406621105734623104908285728194656549197657234752047214912586950480807917430775492436624493343958293090354451923519121850385802592558300370205612465727965093128693863055070069153278865027830061957746184407513814944075604530150892725150454476503165314758956401167709241537184902517522566260359131127505250922808042754709501747852162313621844514012719018067205103534416803147498768690016036697277288743672307208796001842338093230330555328519448339942733004238664683201525564937886561005566963128637503333386303088868814255323770637421931062220727709017402656132903456618945409187987595697852745036822506962739261791165265529405302617301694723832606357720845816183356603748587531994546432246559770366402296042585890617187395157937191437592463654708094448993327003494269144781884314050590282450099027206499375329550663873928967694093968377968153146090857726678462866620816002539489839693416103512954894820358854313986675135391808559451634532552084613382983860012487426697618021468468999126252208194299212569164999777516088957017119221993627254411162422102715053213592731130385845519066129841678057860928161756620574116289793321657832593557146129241755651034728818076835967809335439986503444701939106834554707536961418587074177948686572328942939286424541112963048241095148715980134619513604039627703383579100306449712651872994155779865128831325081153515839367216789995108039478083861868537523061349366571956583600219290910240191519069208298030642374789123262777580068734681026072857969603854789479952368243587819709991826021852340551774147045954898412859138680168321402849391359123028079141751664077514642025984378277138983968603823808213420616673850988328894756367399020309627314503642554600781588296968537456003336886025789243607808070185320740481867686368612578671984492864333681469374729519969969389498791430964927514113804737794883934157058911531721965673586516420610337460108786524882041803723727544965440197906209097186407018342015001963131316928265028692558532175350557110477562133070201520289496693385295446428727248550743075670580661721273450150135451313974561358887632785426502127705518879923115680529835284247640279499407533233353146309940243267517097717420010636126189665908943068309709567070089613633722862895256314323935455625113113989516730309100353416224960900860351067598651019697025772483262638781534036312779763882867069839163227069666130239132141042948551918955236183886030119584024738596162659383303459219854511174301780424878759458812032799748010083556262323873627239833378544355389798118485151959075518399988400778318641816715954476088533808017189154733569119677077094476616018134352145606468493805580222425165901671444184105226954908764723146003237309695652343004428023729340619560960141070647688629348940381395542342249609629557034756184996387790934069801798702127606383522272599752455291755787076842660144832707143872450280847884346485090550340892063466996665139180585868104956589562147765613444557978496962438456987730820799650529513545845013711330312977113479209062448762393902206206469638453474193022660427913952496518432491151709079046879766666859253234744069358931741153992710334968016193209125584773568143299908190747053427956154578702071887877502007333685151041528146386140893557373337272365833387882152231122214910977159872303575240845666554216062779509755116317278697643602507794432597285075611567631476884206884971359849388433477085551706708249291026941737307014074720924550771939016816210931872326186689985168244071937388814092979133576046460954881151164792391523522628520655165287862575538546831074819456208886227202100004543724810663623484491272387180962296827569728898810145777678709424317142166874222748871821506129325231308484142271315453769057688364852854264420957803084953800860991732024997894326965957393329566082835931756327623145243024559430421530236773322761289765597506295343755095662256660566644704442974985897003687949171983196175302998802833077741025288053062866480951354382802510959119871021362426952532974218304698629770163532647778767217463155404170715394625860287523265066979781946164625914997209757602443752286508313037225505799730803401115925482055414435980525752501004541015415256201083306092052002309391567976899257658437904671621894552881753361389989870413292745347388965739336367388453668116972707778691305641556588335433330189341907988637664936356110557718585607230691186148823435252156827814410665134971936369720889759565192386708314507670723162872845111277083418387599608141099256912058649393219076522024199977731798215130597175269988056165828793858857225907373492823216754047399525480478785482950475445186880803953353671749284699367636785055450860366370113329341184657339894765254097540445107689131508996039679590668438218790510028404331278716148102850531205381951040661406571873409217940888372494944084201210459453640401926536045899282592457070652706171878940783361382188277606231735207942343255527675949368558545585659889997415169334689393165509584728639176415240232695378158506349520410672458353132447188165583079482341764925985407571349521125836455882775329416556153312584455304255286339867184784908498107040808029866509685325936125701273906117351127995171552388661184437390246918781564502089964924352363172384586838463467314785891618081106085183900182612622377259863962496195748416921664371583085912264713851076194268638618278120754346403141681049724348019379309849526564805865484198274040956979730153725830104009863420106424036787733031728368969756341779517315693425762928986174599559229481348877495663984760476920082769394390860925500184687487039390541226828163963032916895221900321872090545912781950223242048927568967595133324434015228830230420805496712888577847141931902022303300983216821697532264571005503119858507040703488636281345231931714910682956704835208500827905311008285584157822582789980494269200886344476837253578288403191333098612358791853576943706448101090988661676398053750664356104309427126837402988768062749485227366212669583264976206640910687737454208079259943028607104095206719750060648954156392605045342429179065916461911694668151621851289200740574943257436851380158651969781602767734986251999825335489366999799662925990212162424433863011640075255355020865922094281674547113380628790753643294618337728165629770728018926695211893999317425664764324678447948602568000167759463589851486749475976729732182210058753313623317103032062917330670772612333488207523135430224426776242890976215158063288676113943868889692581342352238778011510892042704896459771318531501704729878034232092479081042921849583627747706506254560397764420898340496175268488275787407292949733756374274387977181230720044832063538686185914207379620721560621171364270661957372927595814182424544158931699408969876726920844067620206275963068112609323340606386635927556665849021260871634108100588967979004564785995261261346070683021550832706321558982376731800157303505076883163801047063726923060042184832094759838862525195157545697350369782667583829885569468513510573844370129428882509628205779488546881710976565410141702618631960037319158240284303595130627173707471421490250535381279930772469863208626262854992798773397148377380991958658528884484768766193094935590909881944640892855472463814969757502155018316276860373146175186571174910834977301472127329443506392915011947073841148514084499601766446374662289118614264255448392217628223406033229592442541502256887141293339565602268544994033265302601478187383780767261129753187983729719712858692569184849590777665577833449354085476771922546716759566276897467660480550924029193333571426538016486410280838893764828138046222244192687317154032846034274422686966478425795362337314519826651792047330294168404403112760948735217408421739396980629773403588234305133908581711829272067109728195005772447327529932566210085000491161031801410737290038141159922963357932367759812133517537469213592782032687928080697714293901855369061865974057301242694924993759778170187716424021948925771091727620641352033926944930242755898482862768486931507213232789668431055069994191013762072713164827042473726036102064389026667633796935744910334850426422520834772164903692949854105081967061731827980587815175146300007057167595712291063596945948150813678706594906580853114625054073146444683693362213453216869021902737173993566542957271591074959385805903749322336592897328080191063457618285244446143049205500703325199284780953675193024569218756852950796299008455806466966757826459889903094299359033063749563896530966737730547020023331132479841085714411572333415199256856092928843572666815782450687354061818773703227324190650437993490402839956604580775587511264157817075116893707131825387103689780193883454672436858704495157581932474483381984215418348651688862340317684626824274366495122812959954068166665350902377067540728323284936854146846114353211568021032177440077340873332534283803494960919663166723266946977549063449902061735093129073277548021132992463498822422557888422444471006932511397100848398600616213218182935897931876738498651026850858352834682712275964538556573391152008571148176305955450336857229065395846035054814972423449236624673567983397714455259143506721622088984325280290047299040234047961804696678669233283448275688136060031848809663453343655283173491842911007934570086801786255433690719347101316160061397547609395237554237568007905848958298028013956014824234569469148889623357068652663603358629694100809453912085375891266025970719435675581526697810595719110525388885087401711283145872861851811876203955045651768470845920565857906940230040802080355436185937676481912866698325831533105191404656344568887562163561719299496828183318459580733507895578734119910931578012322109661274249245579899294665233696200796788219091155904657435462166872678379202630757712457536980240060143965257042838899422970710214864823597701881713276203981406943021204257835361901332456310928146395962107989932903161075262178440278614965181438055708442182704914586078274210458645529643288551524449065096238646060649404283526286048885915276011140201166728248392121829822449402599265030438004282973247233666601313607136390819349721090096792846350290118724311495584831473307518592383733087877216934167547075459974056431745429604895468182288874528320144300075847381096666167044614328525828764670132893838880868282887713012206722952223992062688900564021342176632711659925852954072168069072636600190091075934137471596773936371998698702157628126763498947292945319310131749761050289210300092276335404812938156528110676972428521537959662650864014047429077752566051952075927394349809703724453504134770561935714019915505448998300166619617749827893002694069599296691862678784046238426827319778944646931324136710469293200221669710424674468204634353310739395350779795981489327522979486111315654893464538604247972300079799615288025155049809063714796234993233338912229089626861131416293879963157892526788434791945656446004461065865795689957790770574386731095644178948090772649464287395676798752049002286326211847678326592803535761313080775739410348266749888266312882396550942362361787930336960904546757200844631642737907108186611211194260114867524098593210387775991672207725436473785536251778736102284910213137851285574918771191557139331755831399015472391371885104738775328839917418232885833921347586641934348624835224870170623033195168404016997325515774339432385522305018352070203441198382162609722484296509523759605581160384893481076523082717234708611253961494833340496675993685989465852988031336637621101168193319351274894294730436931406725069948393178524024818792001536645396016680215102700908726529158163205081449630703510305059499937170308729441819656203944349769699045074525605992584344888562048638420612120696911169759528596570638734513072903498732737651094889774105184623268013655570545879435286508526440122401593895519233997521645715377098576119379219378170069978359566668360209059176969304533644403368156907793742126932932760270435315678666140398261847613476715304878577283284372179876104321493416898254305980039948892500546703109340696388083542647201921555856374661061684293835847003632358761113076032804890574275877461490297775760032713944501355455563228751693328349164229686850102241568306542217831895321768299185473978704566058650059787205903985185724172523360370123263652538012666063926042232848891595895666795928827803706664488682259815380542537995493641687474996043927656577111862108787445044936341250868124370978548974887177029539754983930113762388780427020503585069375856383631356496902663534058043371561955639155452450641441911139332092001192126175848779170608117457070609834386986024251870191562307905542326848485779817730625888485181962363265449061319154730091607708164036013720347323325254179576199935604108633818056413670244619231944911773098762049673126380626753775903620770643880829273617428700714852490846156674033956279095455759970162424751599463176884934189993674362227326517463995187207174404501874352702595196819961676375457773998690412830849538517791872488180719230016110679563798416930256268362437485134400911858803022299859227196397858751354918248174338886762702649170480236212752265685908294434371262886842402003506744073782740073943395350269438418135494744366666204898168171946262134763056505608326022075398908363845794584474128509031164130461088057436128349756511601449293640740822687051309349211258165232766563963412040638958950744846548859017107682252506849308961305619203028728037643277185461699035423976397933740377118649825980616625217786024642394537960837589866733132115097227888616465028345501423858982958728402675965342937139271277822952559017623659092759888734466490164763752795872029284139716465623843853095484204826415182396004524323734001818515227576344877199302220892344802816133605424959733139325918505127544825971337779103119505614218965218335034740727795771819268462799168964073746676932033477169795129030950496315321860732505951586545961606686743977261370991025338985164844767319300498758379697658570906495447569389811009426604872495402180960562018329692304032768458765395353534206129859948503803881676509775485523383895524200112044238204925019438111820376500641691563415278856950268139900365944534034179444299316324355399354030431401015719718588455655253442394165338065442664743086227307076192122793064570303441812358376367963594099499901033172854430327127538434585635153914030730626793224916265217692161798010999260161442885927320326593993968835736438588261099703044662331088556927518549545002182226168311679284368079007912894145995430915598785288236314230774786183959065562928642074309492405179355143945433475657234261384496439513973604063906713858143514120007295324415963940677062323750279875882236888835158765642408193036492691018145252081880131913542210738117804710205745936449885457776447078830027754135316900764543485522196180933001983900969582932048211239690662865003600196249915814998771456555258373672868406340430728872782859037105549062296108870275020780402851267793339034287600421854776777104962231644503451350006258699038297443175636442948549368202316810137408060932983985183591784676583290270828853056055543866729645245839988020567373659441102462354580968899223832457753198327622561352853951605506766620778515131827268656213204588096254721575892792554611809173254880026660648887104865155222740367766483123475143245706590622395410346606772557094065648121779255769034445973185746056146063935824872066392306218543942454327999567061246124261957662895592522564628654391309778814788215993009331801190107301837191272923007495611250375693066135566541395774480300046310163953225114084390355887871525533075709875296696522295303353132090866508306151353327553072424405610261444696732926495901146676846576078624972033856354579131102032589505048485409310737103542244073775659992383710873265192897597985424379381820841093211573240088293715981934816008354908674369455185485056507926220099238513197685177721515191830691245745694337874480259674071470558575541251072472710731226310314422452891409713223497401968842053941218636173065218872659434169828490715761322009797259433278818896330314469578708923422014087358312668899069072755553880086342091242565514614118260142333806662780494946148363195532172280711027654265006915057330445593143782950810638365700728458216799311997595745011589103461596745092851551137351452090288179631725250390895861107489238960479249446899635363553968976541415563175561329213235046205266538004058029098109831157258199221337219062796667307321593939797368047731412673166611952959691656681720296531940891745313140590138031141032522956952430117061712780667111594465250068707744902925805519692567745052501519562210893369826410682413953898303051884961021837528386994285006679957065918815228391598731811584096482609309062653232420865152111726771856674144073509455995335883092763816706517764509144673584173644691312862827913909956656888110890612394888636447259421804776071032955144704343612414310437174237668788354215577037371469614733218561344800980783865911777618097760761389343065483902650032255515873731116667714013845498661679654812053435081377702669164211675630326721385382445416696510590260133014117274823320750667561940184693543130721880701448115027680745771554818543353378710161049500683164806028240653568122462853422782363124249922260899960896636714442995186442726566420449501086144886222599946030970443200640591182150672462217917452033507985673230932787906997771827518450620683457843553643674832602334771883588058735289042405676396798650253120158605097308837668303658358404055973874626522513094605097609022625067484184784649619912552196396200882542342357087670095793800616308129603982956854059566723997965573970619271838148574287101363060393321171819389076272423203137746116399032191824218358416281957290323647687632758511680535032278340049367490352288271746623877149664504736439226359530843805941893203096835241752228852541854262556312770220619456737928089934248496007093792091310757864835693522389601846925280922675912516875613542844301920684510094351564253198915584709482199658444839465331624776680779173049965576576790368172976426384937734854490268649719856125563620368845724331772790885839353322084265898162791908862270412586221919026574900223345822420612510717933888318505417096148236955495539587517494023862882211717521622854211505015519155187445400031156522117545551568543306642651722160716260457338028194017534123291222824033997321166835084008879363475806313530786987659511557286497165616783454599145728022534363949521458207388589237460140013760651423269674770217510133154260142238944122424953580743212522878309543191053006266660734572329260308864765933852274066277913834932144939001410853771035318902092099997910344855855404409874271471975180320402789934367255716286375896943589726831516025770528335494717328511233276575740301395010664191103240695350587667599042209623673393582527529744904742009082778170180954601681723349256430426410134055387226466454922669772561406723918625880217681934730384924836178298032024773275273060503408722990895870189933273985895436239184595431058414021239207974021074101890886511124582319443777951715989228981714792835991809929827374986603928133422545128906466141829527827426246081691011952562698118577744669186585023394002016312730453097408954028449934293108918870148026072604073242788952668563721849644673481466816466566350266109059982591913231234418665757206772455114515326135278292620826175582805955807736125409555292736841447667218812980268766908243948899594951553188984813423612223168186810921533207999696560853373480031524393447602772926666590852867090268114817562536606199860810660566721983307649280263853396753760157542650961990256879218473371754505422865343619854030882828103434063953501452814430007162570959909503126738495589250651535029428429513549829455520254192814678308851966146831478439810652540467181994006340527845738980934320770045041951290756386270309931299378434156101698926445478696689801468414923927716948601755873796774858940637892073112816023291570623711554251556913596422117959079141685324219571533066793786299922384422592964706439152281994489323049494123075403301778996126342156707100929040288892493404794529105706596172041519285764521104860872614404494386022564488520591244154893565512675647515730980363983951370578880697201324715715650131286251351782057023241560532752595043670983527553030329266395266664314856616627461377003735316753608822770885506809022963992940483997691382869715635877931350128664246480735575490382494579565211856057258727373713958857152822357072721924644279415026114576968638878358700887930443577580093276076770313409217533872337613432363669364642344923314589265520490081540028503106517370448085784632710759505021822820758540526062383608965378334575225546558584332766600878071038977523837766174811282804541086536165817661057639416799969185239125357416138589251602020089993682332880952614680702131452593591504803840443691575259534562075219829645556775476504176356299456658851473378305810872085228490313731845235642277622568209136572539241661616426196857853333712536935379866574669101050630473658760173176913571536779988358240860829994900933207528083585749781750056380114256895677106451245857416903816414408917234704711653507444997219270575951332748589639714363572958819092194741625133118973805988004631357916557316402831678488818047853773641987633709667849162700133992324497286953543587759441316708543536729282213457430888525855638542501534719593883686020089191244337925158694036979470904659590117313632166136037578706170094683762423220481145789125161589484116034062117662547118454404413689584525833672819793057175317129478917486450862962254869738853128607006697881579541684697293496806788107791627659305000110516874822584556310900933968735333210114378698181850992599047924837948272795545382757032243684156817259254728664619175633372086693156972413337569704451536444849699682358882966817451405534838754712402635525340124002233686175766623388616156796531069152363112768871489291612345607734802976289411080628383003831679723041264166423707556580595715011116624454750264745762021635541310534747202003307825138502961593406248263385316613543187643052112255837563300181748180454647158087330828008387089754137535966786202406697131267296914318139516647762331653563492827087460942587228405830030905351376363921302224808574060349630093668509946633190928604309561076889894488544040290865033176720440022232884383889833700790615224433904491963406325037504381444499281663107273331587735626371109979548780797153779054711499746069490606011880688636320628456600542860966198684440135224591497453601300163648537006171187173873906363426489469562880925946560168521712784450804492136658056666208771538432481120328405448390124329512059416507950056688234919967242643300234578905991028292631395495811191339117762281103756306214633723067242289152775276938060611602740602031881136108158441952732274036572385867222553379249318813509769893072551803788485917066787738714075044120595695322740581354794935074035075259975955198212681664889677788114547607690360080254948918811110892046797674078288865383478912231841746419488107211862600295823381569258889866553431128926629390083392226488034580691840831920608415393548766090547301741954701219530589737213403213339596666987075977797884878830407422435406781739387310427941515377680129286064923884377461794069389160951128741887716187956625092266107365148047840211503932809135856445320368152112995028452857296783855287251939720979180635523568999842253790620553270369104241248948327434943889827114980672285146597530970082739230642429287089780569199855838066021275482787080316218984791214198225488145944283432826899362475443695215722168482835933851658577442397880278540378811746687208965643630990523132606093669971788688624742964821487166116607578224953320714976554007582664990408403709771183804422364418672623793041663643958309378867359230317178379759848693584812255215858095145660706120948909718176978480329476250033634507163191710358049191523364218333401926952831039623990108068664515553821711400314876076806835045854981896996063845472145385827374668550665008930927825419941930642645421515867633592358025556033724786155711232886629677174518306361726875728842560194975316588975025189181685932672106808342003480266731271799862647946305417546107110732307235551236578649022648020388867686160813897422981658547586078303623820628196578094707525297706268704201631025685638975639569554854732866966851745151177633992374714844190751774987974130656877047928012017649129397677710304654358737984025096429571317317491992144528712914935691278190440517704038641615422350767350683090030317169058432649561073100245552457901274334858484843583062757087490099037963970574503474545457695790855315146501862433643449769437673877603033729625689333404605613372384171950709607958070542398039968363576397231799569845864499824331436642700445566119777808262397201503669944919799849163415376908803687914595635278708574828676996138493156506699324483769750451186034161624409627733120152414426079555558460198629404260173379338078232740469407789584004998447177671047889878922606802083430807768061660314741159500641813133722774683466075302814966283600653583065091885692954482071214479426844635123092601070065831218251592794662184768023043193736288029922917651889614796525553379333629276233648843803960223252151291684105243264055005509328328275312901430549767028563461297051878487509734444339576578633175799662973784292239893110412796552846346705434435100880086337879908593781425053790751493838579435248509366242692295801745234346775906020286604807067342162577083773654547424054911727041734363392935509974978001145533116197557384280616735016295882038852781924088662292190152547103099131015846398947205177733223421380065923089169014835220319430345225923482925969974600684146691555945860198943520353650248527878673014772101504535818538890218694541362314302338133497672394730058916931834045044257481163438462526001149520713980535421025814406777390702169756204411385810770633937482629443838772242010477953955228429240879367700017815974465063601335571576927239384962910220280623495773162217170750322474995248558753981175615079520095822009566388100329245929121899715778288302845230399146340631997602264029848677578018091401534856133688061670494872219208332421667889046328356862955687122462236375399901836182656913817231210458568478397519549744607841893744860433128100374919351721737111021530480650736363689712033570444055566784904049118478950225644769448253828730991714318461296701517589416344915388367449993978447631360392123782021821586690799549124158455191880513731509019901886427280473685582070548753700624994077186215307301251174203607609029434118329826448650843507173857385809100503343884692813205294880778246895899210233657651744750497259347340362750135767647777101835202155648290996534364953483563351946113703510990404068468668769233428773458686440617262651261803202471660553046911649266327187491163165021315181941009728605196173935717879557530961793869461073234410528019663216536474387140795488720675320409633710132968644636835499786172521680919679647422649509137235089257544230175415220355888501042191925091488476478500235780455580375936046372871368341783729289018406595025398313425390537351658314957463118660494123136634845578974433694902463613357633457297518608577828656065787778111986675700712814548831432873513436940373698379869415298914788165995665267309234073516174935215871693508532660550676827536835224309525296596873933582693158289255735867662915182749524384693912820353595564382802238447851303785755785238930757106584839240968166439064138348346955735998617491127470122344027730368041121858699241465836721239768535291671732215863958776543454548189433043417123059613217954380402998834626156011505260684622011906593522654868365501884867957801156590516473698299961409207920474737776672140642912309478187646262269488871015611868317107499517099477586798256292540703457051873376031163635563687762665413848613539262381287274711175668747359924413408250530823411248230963839658030294348389602212469849988880358153925206729189922943515245235836114379699178145933003599139421280627001639501793158571427608984395313132637503568202554692247241191239672155435339438328395297683857781966771453640742637462326989313707669272710582241309746671724169666823067270177747975471582193778665938155230245776320913451734752334913672461554658956048055102952245634194511909158792802506453072787621013427781563090420880013558538439066406966197034193829632945766312220543557695225437551177030179644963781412698690279064013434023299942456341461710550852376879064050516744293753384933485626408301409720904393525457356395600169619481909176326540454226551827626116878866061802163253402545531901045039475020063943185507885669182121967248803772046591815329536262672727278471149733121096816240374474789985972874008548157632602220823883026471305711459886793583703950341883514046764007685539938082529616161446928408103544204331893176072389054124556952793620242420390571305459255188873004142315796652088532786853848077291558515871308557664065180844902506177175509512926065178374439287188605457951294494519399762321234999367782476793159360343577533491088864350186717689383958629789786951814759689450390241394846675380825631266209146402350831665698044101702791860934277675289606681442026998628493216399704685275832001018810866311839089845436590716479918475588470981171104573629418745524832201633968331213738849481618584495622976807746242648854667668108677510823352085908834513415901113206380836992333239087558654766144288234830598504048788208467539785574900501451795893722562339649811184500073585578512517786358045001990924288119020616372506150759595066871339732002909360841245470721734264269841233420613272058569431134187555208734121879503513159881916275928002566997324956931985858832370616152355599448734192567772346817899889778846700488705318070728275881652665824385996912816396671920731170451486101577530177299098984744455120798633681123730934608667898524285699880593523632686515876996144469466275093333509769619590283957555047418357448663884677846882327783214263588245486060989691175165900049833177082773771823427750811939004863230364242002321213656721381947583535474590936216321545124225699145860611351456423606095342417768802930125119616205982171265450708234059671660968035677219555842686170579616427384150262676332671566081851858751535539127292923617059349899784287815136948966759031030742144173346816334421888038489652071161658989062311893450396035601876131170768515745289244699977521976379572014606234241380024352042354931397330639071199174738411566788380833615745139535402578723061828912165695987037816421951574110270705245962060020632478163603991819195741975855719764398080985609924689791753113105552515591271395138191632598059671593890502407012199533258170142288306885524260199058453910531960344291987505846442026421879371424641360231970770212048790160247119898462996173354547369435240308642925379909585733140173114706729608001050349426430602389653600572122900517712313193203464127891268295260170453557732271976541057237580635459401678268383000895968885701742519199782455947626918355955282438624790035826602292816172171576874088614781220329631407063713339957603201123000993961961879721379866786929046267643342067900335863439502393660933606886448048994378801942690536891195577414548196936235694808179976334841211809263607732402883822175065902555873644439658740371309232098683677108976594678308342943831916862233661433964828707485987271912741119846371830211116894836596012524015021544308394766212348706511074211707213265747624996696905307496434490134257808240754327465140977384789062886201769136535298950766910678082855592380705886716075827328107889688770048828673594707087002442301018113011575013117383366573067206244928723905841693165021602220890906251971508939233426148258079506110035264476616813056912949232752014807954031036117094838731704800780712525366986544176258451120400267470873611440644250671100427254738791930276020245578549269256722678532009800319999651174889509162017883841860931479061950537284366634254002466649029876881322728277404056269821866430314437027702397976538844973735750626240625516225725678876648395438215445253521414406828482984671869261002297031162968120343724579308931648368311549852989201249808392599416777096313366579832327798027343938409751472741735978894700134575197814246108909640812047931580960775972306032416026743215128836404608671980099560370435772425393250341092859008855440375969027738632811931759523003885482544679223560406134855239963410998461762182994977374305798602193405432040454518284326481859737323433665605493822468232160307921906552204722355514805996926112859134148489770506003780289545011049431755442170461879897717691359837312915549390552773737681638804442454782141424596154048791652937743951184847138879963445071801395503326469090089102764680463258617316090499095351983216015456034079805939318456687826334680456555066726786058558945535741291003311849959394119954046115136305482040299637545230873643097867484103431582488671189240880267042528994781145083210961854601971863255557510306180920097835309368164885478326873783339779226534123344636653476209217144054976480864657064860035703014443789361488493013953376212899512978712472663815242126738706742579267250942918118241328225837958519676103546085052885710600248572466609971362861914136889441860523587234623928572530960784825062094384173098468359665007894125965478039605034226290507090343394235402059125052893284467664121223734176720493075131430492562691981181052292768738330271214036738490362602691226625071679025084342786137273232131800859521859763296516870863269037362447948147048559211396623356025209047570820687117362367718053287255712441880342899862202380519944400250672060757957087443572687166140993281441525699103694414011642952808299807385335122253012933692007624969150651456963044264472741466609207785131130804362173484846125905653191293479719499739722021180699914056451953407112535810273358144939113879623882415084943836597194473283498391753690692412271476783588454735601985140025722307140724438109871260905789844979920571478108474845727431679296272027515468805777717279953585507220401535198973953966692446886262902745994465835145688673316981862645463483311154132871109991887182137528113148523716128393641157473420527894586474708572246057759108446560904693666955446764424147380937969399846028397356625684645359743864212319696061318619310001025601798246054698040079386704573897488707371385560138386854763110767865851800068641572569478919607441568919415187261017898053584525326953833595149358539709895739394638887498655179445268107017432939019668044691115540764260734328948534613050429908835106976377223515356424490699784633886964966800949336550713791172211258015083774249623317242050792358093548895396449715393509889837784008631370040186333895731508695096957530580262319797682297099586914300838181764117621208884237427365552575842098802647265012198469155520323307031961570946096312769850381682852754322115748942388934222179117697621761556823620920833576732530072460842610229206217616752859591281394095197285772434320945891922592648935532885648054562201144974785647367280476988944243381853144890089339616310203504710491740168122957376134946284502950180262114356462983244997377530448472905045766513797953103632952447659936962878374286509305688222858478460464227976153303988570089931230546063324351062286447381882032640885294415412823014748469847970371671468840567871994717678907584852213864346852881189729743033978212936461256254829899692818255463633566702326708439473053452633880598857444196755644630268711185457816360213571929798142915625445612055816394219286157210254890866306892268202059389046520651558576402920332963267595511111351369443242444382675756146295533864913395367254068936291623102796017430188919902090856571137143384562226236264544087277118394460002983795759000754157908056424035585326671602516347501200699659216160856909908230158416052415150033836193161950544967706870548169578472967080138800015485853069277040292215411202777978685776093709555029314875851780991486765115324190503842177877103830773713205503285323987364201423545177544048432968968228477204059843056482821431246309123149612929607080444331805953695300648634007092673167657976513497926642282402610614826869321707931950036929386524326362111223479265905285088535595185068237411747921668635882011993066411642101439789747527243627433312268916962229998307124915464372022444119755211569804213334130462666935514949079015516626891183412178019391198853771510844584801683635232701283188542584506133713563170584674560442394796134040718307979916541726308944986169033209906923083410691165221763719368423599034571965305963526372863491182361520713551931251393173792115249559565878746772597671478883923972468498893048014316108652404173337488417993345983943305485509659372916963381951406371657115932332206359849631618032068907169817901291398580036665696370333154785757652678418761112652572137572024607639106734747127096339845334888534733706811239669123655121033826608580679952358421439006116274206360726734988860246072535229808367642263290717687167447019762425701146105157865407572776335936302532383208043906452765945980293902161426639466173653103104725224634851601056760502947081599597890948436415079590730655177768965005322140689186627596497720370994198634896236848811965696204607194634264415296663016212528253431045471356797212511636838387748555774896043154325804874594468947300791805832345604966382124489798359903270440445645900142526196676020461619298695814049452289861411512186073585216150186932374839402014978476463515924723372306609895625767613244807210525005669671811908395462274106545887555973533286831848185226942514989327048970730153334806841417746629866388396208272774651755078482521474212605009276262220016231326180049786281165073080074033264010633474702634606678874932133088175902346250585226412957004164860784440122277769605887440985216131827574428226988868641315908630013903953025640830262917797606862801577485442103979218733513396033457652739924925235024603162666612386450757125228305262281794792183679116247370977375777464561625539532787772760055002307718157511439803357665755403794792869570007195001604450088559968576694031718453522465957475931695325152642086504749104478569681619309592042307586392980712512055274240899685038088979918845417091926933184452142701409503204718103922635270308204527426061839470138609099771216487222238976529858911092758120512049157077463642017265677808037787501462462801149323650440455486475663274049790062868757053745630505125335909268347401503290183193587485310478243744100099627239081884011132923355598730787119814759897316752317415683050287997516140656208675029335689812363735245625392958408487622748942547405663141013491560209269704152818958184953791318247628221085769835580865513730261299243776148518064612317311492063193481975916359487714353713467321565925678778460588823965339446070976450946908145188932160353592387192129262541992255406809136877834642833822012757712445853616378215673220937537534179304960575221251861886514657896191408373155933830416141427917395326000743782710057129591119446938254814261859365842685093336499848812414828880489169465412037920994934756697678105568677014229259811419817266158797501058099163127513094404301386976845002530227356841528045920202101103208942528483174177917885570223586065555763561664680669340777151872023942072164682059734345568524774265126007627262247580295245819367668405913769715642701839098746346371742687100308817557033960801385178408863858843411945111212997021303211425748954926621062086764342875045911281146693738980474910810498155441159773550894257203315141376115386244924799704256979419916593840091587901709035898594394823947849189708281699097894972156812397404080823771215362985938279567894897160737034412575395218763386428895273567285144917669140476489544887083895825160972330502507748437533232367890423822127216943697855053526461394330851752749642894013111551879195657978692230545428206655477897922472531882891528675100634251056286250783481429600137019151731446879462212892627583300302844922364847707232020993132724680997829608796659946047719696545773692277225510928296269577393572209661731593309941733861570943053037506110924815975906518010734866761153673244558529073048686765052812269318382394725308569218705790116188002745309288513698960676204088237602996477847755500309878922132113201152260525916372059817795260903923099436377544379139556420349525909364218719480753657752606298299066740262703871337558285214113688178413796490215992663912286114701776650702396134687757944057536207026497659641690807333211752296524800457800358431432343535623484841287904424706869854219793524260746514448592788351687943242830013920839576422789683312954759153497604581389810330380355387791655581884710057827595335711371221423750561057016152633455250387764432372778337144470063218011577957344946346034206078306355115622302523923458825092147634479798853141962436122668910498408108912360542462733714518409779469576656069204386291728918384129407938519221300888483809951938881989612673775706143623636250489629931241011518554138717492673220263219318498108889997009624523536562732273925877333480269322752390274709060812039819360084024692343833354415487982481351989364378312394183024576993407405577316275706611098080510055689419019212609250568330943929463563991924134494848689857975412251197590383986034915950777172514872257734230010247608188331139352753811107568689202450613473459712293799305374044638486003160815455646306999658716404755465669874223908671795747993225316898470916746645864798554938275682628955267597294835307238354751762500398598319567973004275458294780328766258718201016976851218310247209681076862425595867766484219551876456870051678896791915552554365106221715227673147317132891884083772573596844913838189146373586986792047436046693242831261268835450909663514421389844706844789042548925133549347564717747487516080422321669815181194026108976028209052256578770160137217595894627944415050435437071146971664389249497952466980401856286258762184639654846309510672089557646759581041769478709504625119336664902897924454883807833577754812657782096636296456466608881160442625967361390071062232269273921135644574042351665446481774793227088181921929105795028665470879123569783460923867712892563745934031076280669923471669201419121255910705124927025292536191620857932003885915320792108598368837229887502472689967478146009282191609715903488661877943846869791756979976665474683603167841607940196737040980521340748303020633003592425898103489735541626448195497224979656017939549395293705270328254139094385756900834513016440230899431219138875039009237464623314073902842795284290165800552867583560179038488922464671119564328631155588532232860043100458689946242528747827823418619522594532055481838147084830258121314721727546697312022709916741766177037457225246130191429943552389219089121687163484077184575980069135624340564498583520140529102383952587866648298192043515604078039173793605454176137089281542309138622280307404335166539276153129285972546326382764618734863709562657682736445955966695058542243331929589013386066299257234568518926721416308871443380221694162624410884086546121705363458942898868848909549892530433651631142754359065919375807837735733967269708271797968512677185053791571284786771344589879891888684720948193665723232022150374626511058801246826596435258242968652757205049142905753401151646151710333728963826004951621860418144155772329158066593526302794517901941294676816291423855595569707699162353039987418399307811443574515850247121339135672847140302537109262350081869543828448753955779681141883146763384724202031469309078035875943059755203491540175786791142738537340810913081064794251663433357593452325553590639035693115042317901880951438293518348867407052339549225311154594398588896265436159432562166778802010942322435551955777941066456504478384093907150811958815073694398986951957560749577103615253449257117004827016940757732205389316679763138217404474846864398770254835534245186811531954635015463845257198292360414263298672136858217466350901486369085702417888959713689749960936405368020377871771149489016333425486754117590190548651009382668890734445290751829292038186844466220650511024474414323392439547374554130729458588641308786487650656368012255121202092207328976349228836750670074984016655440624212300479612089870187892677090532888637580479130109588786331181762835804858605435186866638092589676683855945009987145564158547935832982569750200812588043113010897929524969418796306812812481308165726920586202645542927178632699467608785233921212280568228299189869284091129505371994961581470519251874720699441187851760236840140500889522556095359336467713962495671029668085086277008946457718128214352404418582426640474444439435633481141842471955553552493893251773377721803751126290326599134658553002338554549179856382533342783493666607194412990727294795682001516915277256247476710988580459323312128504810119814109765737868374728634130871025253897729689371861168730848000568532649438590937484211148582746290058366641960634154488502538397047335621554405305187136040545406603317834562495027947697260607987526684735782636233675667787099052436828093445525412504640685163537551692400214735324668734879970536296909422136920784278561961098545667699199978446382412998820364732075166317785021487516141800283651581764703854063236344985010304360573116449259774314191542137661030579205359753133278530935375031773880427751417675129211757161323009653931295181142995434624317282555567568245763788792005882843399526133372328973893334292714669337707205627332148553587144954441244642435670998680309947726755601490360772515301455241958984349791167012843089047841888772472736815960005243788280684882311781687378284515754700592563251656013390897846778041940111456762721299413459733625685858360069997744311770379512569889689352942347067821867080730022882379871700148179305854052150896187570764918593558904252635764705080459964008177980287392523273344357503107173938406255566553480388915739479932079413470221162749759273689005613504037232997928159519307102569215240444449404853176970953254595286206141826853697952268621112431133772365788676175230445145691894807757749773045622526028587793296884517787573858906993433866507878882390831083492390638752423412094992144612494493927776986382439615136686724243990746872725160659303893202469500597121765260434285480091558582089882525832138673682470810672831378684193623684273224122595442161696520729752851148625106792363570934542602924381165285017696974243552415419476527279168041533123788450693594125557575689849284419850069716602293793316614518353191448785347024788087917818342400015861478944679468441403215679039448210292019513728441312175195686179898103694515731869631738685441733393307434513690828085392454271020856361002111151578435573039476476772112559877478562067019976520514686003896697128480901110523247679705231685397306109926736326672714837864198684081053532853742488509672102448871296096952347786708172081066102313126871049148796065262572867341105886921044824132566367305455687932453993015626127926509367228425198364805660641970926942656201319743746176799972596723773904625267178034992332962357245023593935938216067432819061746737075863693499363104294408662160694063988238188562422624391920477509744554988398962249501644292151834578119361869822872004691073404235802516270667407959262987230493184037524560415434751806008056458841198728759626126120567421360905649817522742141772084650594739467307754903008837599314675083098734721083334545154940002336437353176934697802604252777363160174795569485780027456278442408938774188150833582001268726298127996711027307714509772966529088562733279446110686387144978413897774592538177069627865863353457280467848770855379641286203821992595926457197448949545021638376617115089646344746020730414927252898516678378117657687402834837391243304697206877858781799073065842520982771439664652266791381068536404501031285480088705918781421257476552913557010922586643636389813272023805352788143603296518990677851314711852019981599497248880804575918791527147465542729212770979564591831363242871159083684083619652879774724497419485454928835875581643067689363104315318460745152692460658656612685539968521659418769905677523597808271158482483725963756209954312215118813738231084476396462574506334745285133070196937464207033540338875255086097508640215474490630750726642490959446452381494201313657827517140520128959377548305063615347020274084710382997181723217621745183982609237712562385697260324238909230192714461973621755827933315130269846822929180141796819339407236712660492025561431112390750403197587596489997003619894731145804295982525360102057258766609232226283057170679554515740773431658558422881293034881803690409001757730725333185170288209763036155896937827520730186651355496859321042850749653559490707928483142072543904316669129910830748225037831209396449900630302483543237670812049726586832910379288734487764337652003555689880355849354377726165682272665152168299401699996372900708495917728307529540203753133434766655531574655481909837654536769167365194776744953702325523410918682208919761351431881614098023979869938227042947994588342376757775134473582803538410324594389935432772394363757679134117180236963975359911466998940203936367122767476293736732793520498008088359778451975574034482781024443104297380575870615514056563294433728602136188142677215980024072347750266067985531347582542932029370140320646457227340809977277199978688543835604388719526473108954219030103404715236219851331660047909672102037734806855816934025334292720065272279633260290159643794674539667074140135931437495267535396588095621400658352324500455042842549301459506699902728592902111028729562405704759880776521322177006262441676194293362152615088944730585692061184653161072635096222330537373637897296418191967704983641812080271776833559011611564619588526187365229154237070902909586426427892599235463916264242076382166719589651398329148735226851311012932214223630092188477112004551725179628036061793045644831134662306738597874401299054868689474863350402408924187866165733834141273787782873030046288525050603393413999598397601167056987473398208887016175400141092973698032021519865337940637634654599868228867057776473128191834141887816639249107328065416133985172018425978694872629828459068214444685828604823353333472642629548378279065929573238396194668602342624895501496527116593657746953219346364901528167017862480968733961713445204368152791003385906215283440755186517729527163231439807373155049695443684038129543843908970738145740557185941964801554059403250883717121394787853524314505016599555563695133201829078700411340657528887691476451009503346170246026865124207567691680008246616317409324356863101463149212485246117369317996678339750051800503441078975470690194969223741288108025924743217321642904718332258141366511657246708912742171251210055225211117999861183048295501377799061278421800934436108237584428763252236655449518027855367090608635192941796433664881257656566871713365935147620704526182720063975376757095752211149543030793298045981090590917767661535600445256320125910432844259839422313451565072038377513164320314623336042532367430069497798969613040757954815100521396360974586537857579778905399706497486571935985876604341438416074801111429497843502588198954465286080372724569312101630537475052299619088177316869714563809842521856347773490369138360685687386081589570260429606229905684318972796286996616951288560388580052550967748355418253983907860940276322622857257612302181797901350785940512243493581512222441299460841556657908932961959657301446949924009859839495607070556078371859690431598273431463037790994548975211047627788612621842300182252944867798664929328575331850593797758845827575057972737003521198556552283642856697991844226079844599623311205064270217391526889594911550652879961087493143339135925252862090132386957657878575763643129395840646057996466695216153286273997883370145327935151068172712594991709661247870318898940304833434951125328540821573326045857908860643844691515975521841671568544459801291346647895263094939536363806792210667270542424604993382462894892445482584323571034132822788062398452933004692967186626346610891898888116901814224632039764295806791895836147547344724175169461527224406875772020350053807356392651169325683517715060344602450436934136809786291688099138080312756405153641156749159802560944267198833651662114444273997164215812327841193992298689475066253830417599466680461267173559118243584101696844702533932687373812591473034841586686454663153147818507594566245590981557931390922004985369191345095570519753392770175081136509017399422163507356582240825759686818698880063032864353324093734964031204545303531720574293380341242971129223727417396290643677206330982696512378608602923509121035300882352177641420220497966076441407361030994931244424516926509973755558109418879404169716460604505516287403322727673708046515903659834289350004540092217451692250508041666808589511119271820926921132516732651821842943369976782344203686678914202525968789958069157774450471228971456839237586373307123709307945211880805075326970611883813964707881648837870979348584723167302003740222577771164670187682291379800232102764308030846736193971154062262767953052086204352354151956696551830397326895119614995764457521821994513977430166098915131727818625932888887680107399437681813685377781118488074633685536321740322805874341790968701606488271003545873547791980311757564843960315735505576151272330263832128360377024517258607092410437043569316255323873841952280592137174406061595097963217400757863493230262292552033944534433419952043425559649274836041811111011947268981818782432470503043429648331445803566245464245039609051790133494661898517831091792133324886696993727778249476057545084895442530435018689840567161252457856128682412660608056127955435143824109026347196520442925265257283441600869267656291017269466407290479547463779342232964972073195233159694245296502635063694677763390544953083745789260625162448169498609520989203188579126369842676423538884623345314901745581386489180473117105468254442665131409344495904302017114375085094208813732368898558940848922399890852262945059160103521761079542452845456390855744547072698112902911709231909666047173689709937133006443657972985603700439518077558175126570924403324886616481811419042762503225019046750246841874880284659971945264228415050268388668315905731454149610895825176400031460136751048458581571184645919992635027061313805357407263316818463102565204723030646193882522748177104083408452422453066179588060090607213344189036209916276544579163441500450961771514263394686614687921416418664512124200435058245689684587394020982360346193274147858531118403211550214475514413278035098456904786120415468425349959445706960333231601181891550868376660345790700514424457834448885674729373754020101777718321159757929376953258623208992148313949330812400105548422919129912693610273168555069936896990800837910049211053884849803513310670737049962072535029657961820649138804112660955893940901479479561170973338587173647267724861403404144210315943836737182699370514418758997450339184611095762899179259926141919298268713102787470286924948656614150839467863287154844110361001702575296941033996934805087631745739497748974330430323559904259229147051735912077336001945284084638348264433636415560256892897085615073403148920828656984436600530371515557818704350074150105500218807307550906126201989887745049554192513175378158430643457191054853510398526301115530190316717653474481474921234680134922387224697757949668551270605829690223865671588408140477959093607964827958046765801993614059388812275367263110201553461869086551083762978099185613278436907765470232591005936895792778345315724466005618525894197608973441070922772998710431921282708440594624638869505549513645710741391336943158642313637573516983956888580595425522701497681829487691179985015098212921265629460028815226376378220683974284333507093881313383275671969729164024175783244513039488555680288453400041639815387974600467282353586494112296116798316267538926370401241249207715947280881692064441077949235662440249440159792269393984507429648651099861105402786611078639785308966444645934185034739904331689637086830808312934925702991134233174558560986923205537192842715059308721207082984610814994002279643788061771570456975931412606307644446433766470254714648193765971077022278690404173989651070686518034589974995224423545853415125635630020345851749147732020790472527050415698586923700733183069626674124194791186704759614970356418746535376719495867752728846140224774663282706913814426807616886037933191514433178750585149661256639333373048721256420690718003812798904625767373392443686623549630528021211386503093462946477075835439813158277817131398189254155557661875265349275750891355130368972352890940979000754738344325163097843934006878692924831411893427988804590038623151642993821139053404001616885829687348909640833576805794623404251390692644749105931624316825275485961850733319647840751257321770187391120518005659239358782478274953139758654090631202999333784023256516920950431343932492040112890694197418070614483775658401935673235663581221475984127067170921568312036496114748967208285116422005597486756553597888355173971169712141834945674875491235870496570693334500233433760684340816014419626737109786838165061850694245329042647586565464349726936624971223622402121374200281260905838425139837441820172448827205440554663373084653401614028568505964025503016900645172967363868099078891276345397022199288284567959398717648454317395322785368271057295620989336025185199949105136253854142295242944700811603981518634193687306786353934813140768267518607423865684418604138622619416687875114898703744619897553756195751646266521907394415747366154080194283410202276698148276956494048082842276699969451313638887513820975224257741802643647404553788350942413041338415511821988061109710528684574117948574095856134611252272920627980922481090706302783877266366049606233258785858746885189993495590607651182927843408918461397515945479257411446238196964403883006188655215162188725894226064903918031510769935130573276902129777409472376737219265442129610483131782155826247855938802082023376181080060133671663928250273849385526951355312364802146647193956464318921209174301868381140040686334967165799438461007754800942659971709469828585537704887950991058274130132544779265852045102839574511326177118073681432717059831711801206180126494375001915607956903320714389759553192769882761138821884192785668232704316385948474236339921732099593299234617471223228573023286940323239832334101793636488583658363644876457955859005290401825591139250463807924743266301227365836624122572456343357292228182526775499336958604608324135097614320521563808139220618187485912721116364288599178945659510421383018624719229061940698992558513143755945709033607865418914624537191611971012030915467136538523901478866429144476293038228625879309143977215484053648327724250267455576052254067179559518715698984856675060415552396671803733237888842318362035068843540965076947042172833443079376549205373739307037027008062258493745790953669893146293069885517665389249246451880384340358693153331712633484209856148668319337711151802066856856751557177244835848819334767011151323116443756352367966818647384235871867080286701333742698148391999735986785551376015848394594622941418286416344461164030510399232325656386377746438832791058608864403352998973285082208327002088082471302529209468999755636545609986839549532320144441959295143883350665125315699121727890947089225558792586291147064845514496821942540525322552040058718294163326385110638617876535899818583377607755914309264874093463438491583806968696350177352837939163911701643414996578825552524162938037616658302442629411149574230775553389404725637608379411334315978094295775958556014075637259806889272817191496040964742487835796626133730010958606012583161796071602968556495597470175381745697440486652218864122298427255799382098097916554624776354775932799892800920691139532552943241765913233810771357866127347279206218384165781372232295439085266313155646883369145540669550535733689291335360129745739911574663893856145472612112674856121139465337733863667748614527027520728895364452690078431185333103519683324521855247307887889923409049824330380573662555896024882144324524630152014671308647836339982737731216052079853161416095062649362107847369094419290322136960207719230054188611024110272948308806845080629342807034879316583709997027453618756238689285879073611122739431354683734472542245337485017208469739805469592934520045877080016637565430205079784084505678026075277595470857825745267461647628936227321435017056951678511124360915031586200517619406376058508344202871721635904778165756885198074559942168288024017733485363590392470445012048951743801403376357339623762090496053011321922848080353989169849707222810321230499325928161073654036706886191808864854461028082045986390996524770038916918220054606862987917835947432852053796697928628346521956804991791739776651820305353411827427564203854420384164774434637000633761108349935830484008692168045943656756721363310694111207616798274689352361365970194607462612923434832373757784865732824175974027258543185427195106326186453472285216785047298809561412784905417569219179929047037797605948280216069051379150941024921016994535313255272021071829607725871774511589048419424104890847898115368350406223066412452577669642151945876000550025556680115409442764618864270522157646932705720976876125831612137734100109134658726500870117657384312324836023219755022464580641355928422659526549416730782811893738640767788054329606179452444900702401722501893892334586416799455108732851446483741425843301149254056187738692312533494095730187814799713626489377719043130712788184377044056794963211434964077014687579966666768416519457387147274673631287511123791325465208370033726536806245358494118341376952426877391602975211679620414782635684618833815251782580424542977737903996386737106260539305350446138879551537058656974146273399773746436268814837187941526351363426190429724065755381038708568308827080512270453234107124415597462914644871957610106831956021079790413382606585109618311128687870618249594620864752226288565003499985307816035158804753244556222184686592295972938197962474307113034092163217732822923619825185649888278473855021885652451362172664479380780383491425567389525741975869525907058163610104215007811138847516839169165642308531847957719334904701942000507860304241218797489848312281515098444974153064292799927515602835045277934645130162744810174159920634463048991136109700314906017626380590641240185368877241613457358584021795039896526569486944584405214555354164758357926161636468260071572415813684503800095375676150479537881709950314451776524995545709741990002776242222493997528654356135781829813664438278609365293867280683314486864816519406738628975925596455008051941190588496678089202992669688544113331944263618151330207850737480096143553908989792813188651445916398517510259184572390667341293479948397724108197355017369288589854989842664484661456264972781447059924956476338140276554673943379282267024143516033860215467822116097837658270946651953721543628032862775307722307937981648833712218390906150341117304552329159246921970196649037671840544884488269167676649570955003791230068233859023169835900721449477800576179073139058589991602385046878337131377807809396976028371536960035718196335539139605752382460729864370103354010382553067542272945716928562298304769633186796685060567660207314066672364132095593221847653014220112307207734042739231569387384582259509602079339338260510806315361422600139048855230469655404951779297138513267009532025143519837947104102167995855566819799474913887271689302500043098886950403275724826984670402248567474530467208666183030772213136118559083264436136371436009663593533571741069715066193176248182299122638209806211511930989838008256546976393721356474483005889167274056110112485088330733320982436854240202295205164996476952293611714615451283967384761236676008490239926013342352768398333526432600650551689111902939581474714324588553271826244410137164510609728410549115825464281695240432843637996321224919898349621142273805267080666450957285428694264891367299150856109355874952071977006324291860281871488149183039945399858357273410092076208558654482544600576274642645837227051925642796872072778739498654419935090221624186851224601212249924395537784498119874780861999589145812250443827772178633545555045609282545831490689868493359734347627907784102799091961976033642920145825947138415738919093167535191031627938467194320233593943117805173462001503279408005996296288221866834778738028883754356275749094773651852840116247334070400732265216305748481364990862663451387583191850649222826521710987024928169549195735859055050930770229291235588832601627480213492631147690976385349033722122901272815621989815408540553054515621297307762969053286412521412804941373771037560832179807006415637997238994638022873861144570973331908075294672085979644504469261524527182357845207620981926342411346463072066794750120568430814870478084989374108875208471566936628719017447364244429470854289896397990913141075647985799441257442882928635802160595610681396025677748433633537982763416915331281679387287589537202740455258699570904335274346708058780398800815680114472687079907733021022598296950455587387904538225524839202753499188903289788381407473272565759605394974260207485544347913338193526339217576165523165695101768674285433537678499062612634254283222979225785118656710101572224725752177150383738714811667342045706722459702527605726399858877535353150674370141285495421243028820361234039718537042434188766790500620815499116874087601703949819587621307408059540493794985803823790162930781329533355947451268192225412754646914355783260397039182086634039128826354667874841015959124269398079219833796048270793460090750190523704475956170151735151574530609382530062674414946991068838161754402953383921126015160669319363882989204245326982992421670494303698836127108030788078824811974078281216246460408374836772123169738597946749842397577958467704235834094348539025213643900578549208154285628590417537291266492981002621326398168393324062856921333883109316715754808234513891799754647084541142416134877133292844831297574288087086344414948468692148461662769100436631267302740510092962489515658562387391551468310477816545242345112459114482913289327731539473887750112892462395099668370194377081164271272639509085641137872159269031888807818807747425808735270322707805673231767817516974757631482895444012033398623743319552956911333608712740958147369378252662239789840433222124093347716066302552605076004284442276337928864167134051886145186662250637098232625581720753483525490018531168939058374824191789206401389040781240602547132998000519268188963347747470038338536645666182432756444773437428876055885488504238367408498604741416759311639583820143187397680372809140130354469955610816240678558110129775886498881926952515239077558707902373423455941147100141860701196457367597260720923297474400845846438724421096531690736942167508970633590255348132955791055512151992971928878881802610427649088621756065620234005847128764590894941275901149206367220251986968775760112033083942224079807044668609965929994558446969889539135921485609982565244067512539611622945903886671652478046625629230494917733734689813212614149246153167679668007005858830577299420476762107756532103762221369662816976904452865744516584912589029294314083237081565787189240994432847581604517162664922862403801974905362864473405074468442305890947764059261903481522675295138735454459623677239188101733626148166931984315051142795728323462980775749218059171700980183541939921894401587663068466920212979798721042614481341593188242333431692067673360164210825570941640864599205049280493540774196438309204736040351365659847699433406345283796306656263511013165174222854024566934941707124931119078395240931883079211749900218034194100536544860090794232772695452450120910187516992682549765694264949047697780084464426691160657468826277963367928843647104666634678470218369958524792929346265198779994276377615110262082765764979399821206852530862775422741027345018898679817088663877930817582531736256103251100035203549669420244997169091489022318439006037126926750642805474238449257479588130019184389140149207886073930312062689846652514953257240242960985152194823226924867873057748215232356583055828199939384570067996156302263724270914874471380804519839923828969682548621349915081309316345970107979652494280566415479274466840367343805537950701487062642108679613290100949980563238356535668031188651540230862550910392311984356195600103705634192198276065388064050428996314561570787028696854234727814957686356560715988709464896137753818787746803900517717043371112986657366271226229967078801578434418472140756547318705271944562578418512404901768030605021010542246643061006892430768663063543509044700507771168109767681053596717469178421109588862183577139032150176887854312157114375280034498859207263523877319377828130623877581244827901167776128881764930679147218145626738973446073762108390748439645393918364235759049402282299532639118161322108335232108036641873246211944275778442265825738852107495233820554486783358112939191025874106916984607253704686190144954844078856750922396577674341982420605278110301256521688039251834399414531855470833457840070115584774936667730239923382395629786513011071994374713700467159803134740232910903896454632466139229039279031996800367259602972831204968240620961483409978953227523200783617711120606763273121696292566057930972219081799877003568794199204953754904457769076423560356154026565060268668716193566685171476340500232138917622153881612390343413940063623716827639301771365706254030775725263096463505685054748531913290440009130190305482360054005312486785013747820004750408638841598936148307483204009418800199578741265875350468704454252474275927176920030839824716108027665268175747719766106066258237869102738588628914614647542530548387930945053113713555098200911304661287698321184319439003610332870712834081432231892132354568800293673075852789059409981091316146179693670077033023025255523256847249926148543471258276935482209456775931678039012877649598017661573100986155650021515156435717533369167600208632422265952308523698525118437243207988661489798819738589108992454149357382258892773198343573262449480734427494249991678016811714711062545972568411198807502407721836001198671350404972857735810472758241419830164342519807999740804384421535476073814072048523955535075072736069449844481956519254352573511256652476738688023754073288417550878276805151088669399316494237321196133655019229508125783908982887861178724523996629229771247389337925263143950001243436054358185191969894545165544746487925487324824857259938317205009099945457645076049477946801823082071764546502590743414264488879849799471225244126024378661214854717580001223859208185431532610823849245658598075756838846648051785215489498107441542548317860171167891047623179708100359195278590619194849490233056899878839627392894720319948399828728609346909352913580606882963962372948281407575554771778535495262546153385862185779492234071509500913051821414006420575373044034665045891143533933956007779394450440653452445875380860148296014352506825175415894467161142896684931364525013564278818416042526321674822004741553345262909809879853057072018740280367524635692473534735174487685318908793552658898698460831483958114992652893542268549552240651825668408730843178470510297354390598144726257151832112665146294807060020884683941162187311865322578771362212796239026425331333381785441101990392361057436166252885867194856009485600111660630528366936971587136890479052652080289720506974875069240751615499512529433303591651996180887768438748873860930388537182757787274435171321258860024937237447162747746541762460920809147800987962615556646051255214666699394102020378892637561175424373082200520446310132282097298851407686941499479133206991043552058317742720118566503148783392766919985810121457241695444881497567815436509716606903243913214989651441127168729190672376425738383503724443835230963515708500785219866736308900031319240482784321547762140223929585290364520902890915787340431777524452439071369284986459298915065010922330374933249308598291596044088573566322803867359596651395103446797800326260236427573633315312242988497027269159112694215966538753322590533000586894770882412403307426971152735685398809674334850446125475190416758434701990302756217616210362368206948138181821425283503010095478213906294151897862539212725185136910343641914416822676398211807882545761313637117617818612096883536845413854147743575742314971625687303990603331835612030879443523433524763033453444556246623240896468752886485589997278153073511244398958545621168494134271922315427212504562232783778659842806838319510937276500592284697662178899676221537961057769380473101573395754720083748523957655077615329976173697973216322363743377905834025109963552457391935512811600946471518948568321093492824585276906896344360699399370143950151796347120006675314304638232235083394165381121449275459618558306142502499661927575449140562607211780369153840043829904705845660244097030214617021039417400395548564548646150493227134758225213665757920905334491970252619535865361222287482620691780399886834317275821844129953367040449793571911064870621517096043637610406440121442461711027367685701144991945093643511356757031232586995315115947835663760446781406551998166021791803411727620753349346896731429492921779165791526866269604214356762232396082989290809355443647494653806474364956912971677818913217357887215217664962895389959000781577145772631914621188126944029794202908364028249606570368317966976864906326882557982571289568263565790213458438584931457777939433345759628206158998503077737303353138536394397551790376139783690049887651678716557331014787455494202576141326810720515536468258318545402001401428679302891799870315673749210120530407497356594073027660987355365817975144032054259404833833061760306731993243622503495946523180296035763161118519261134784641463707678070775538459672722665857745083193766124452438584610304157070207259076463574799459546996121380357120707334597456389932991480781283515776185359402365513919512782631104993278702137698345446242528612914707850517768803562496135342623021306608210703669822907060798450834086245180354802333219299037793153359383270549339666813546890397453769892912874773729059569602790885474832416188012724674399593447978643256731045898928095882309428200301184417995003617726354751303786866192448373984672205368872390269879772060601404888480785233648101183992920399473836907708801307632035667454185112004151583834229015784541152988607167218904225279175916282593845180013914628032779660797914453494405475472118277651113275254505838298192219134740117519785700977900908600195816427209212100920746675126802887870112426341325039064712825183809553783188138535287553100418469444216245634568783518766441923308590229007765374925892350574843302062739942436739790594543639222466972625557721108241887974503416509308505390310477230938483940712657285523579386048837040894899180988201356956926914528271598076927572153651283161422132433581132278109415376492674919393038911236604421189492534644842704752111733382034639799348979176610367420906696638149084375156646497717053129362874152742293517268990164492629957504876664767531786298008676026742858606307308394964357487660246764408898936753792642255988458307157365780342003496308147465590205178873407377456891587074449898445086365618683095764760681950130451333186443067044053702458637105201661897599713556510390916589140871305133320875996364188228628253323043161672596703628076789331277823848497884807672558773477342824319910831303161898458177792522591074842329288860198274642397795610696046279927046149989503666405837968473238753419969767224487111864325172520546644260358284919570873081978886630588830122079689417400539153878614082212089694100316133927849657324503777348424460112230915307490296761444488498625051774124525015782879804020082838902828545259523360769259809793671532428177113594581596651320780845444598142524334413649582567410637473744448576890708090754864006500895070570466147626593778772592350081419938045640430425667487349554787895671335713887602792372075277489154118042720527302235865851519630016952562377437057673817399231494996636015633257713918861530141136276594178974274677484274452517598746470813535078567906050771430257915799296896501116973936142707769892304585038902276517779054376122516180054547641609882793234573899682410907121184427345079865000458753500498177228403543228874540271509956194045178665024373588099537356992955733191663399143651604634587745918887525834729371770236130780241976632286552458788965341346756897176391174609281786642523814165626761591059865253942829169083465961508818287329629780125304191391716103033878019072417691416019687995204700013244702131282036437594893829967447603332487397873186423076768992660819055843079129593617194004353446485189521526934099336644024413382499338055638311426470512164822910869604242711463503473237320527460233050176584209067750512742013010764305634661257610520097851933195017318936276419494373710106274504814317450329116277232483632427680150706573015740215069924428302873670151444436830411950562907476684490420959831183992365448365766844774789536544803588816575852152608544301360941532588620460382279106659710868065672764763703448136585282972028299386524821928501000219042684898502261883949632012855734638220652297468570110986785551784748038517932092616226956738948993136639323215867738925223251705815365600746475428110948993293193191489790222403179962604688761435632080532732180111683707299611316327224844127540956578143699344784146634136273975982120637046625297456105531973959475577023073943453225795370012011211984114636450872946192848179524587305303517392185793518216370106821895727841215595341776249301414159708413367358942816054158359314372340999779710062807214369035230449657521307120601861231799266125286784539944007254960657939224069932786664889526290479778946141408390637378917987292031872515888150673273542746901341649143370672436958696150874883489402952167408680750552714398615918508291010886749024212367767886580534240108260039456132255499480156502720603537466216382305315163962773290941671097521229413077160637012981513939569897476047988543585593536959577290717769076552077267790348144990196886760068745572768398050044295530483383271504927495295755103318518342849801856256097550210616102761090430570014058082861944554723487371015047541265087419503576352966933163362671064268851794173294398101369039682342685870306628430837151768022341193918455833296258151499988078800215553487993185876827363579808115454810506730412532825549742183888595610003019284588387249951549862150383731828696021223200423265574417935859790705615822696296303304786887871054956968485860303595336702165121709160185546643659338458557371567682471700526580438449702273753408312029566464525714523198292031138388354693922160917760760257696051328296382863407425164367714738718086148865889403347488620385974180015011208487354075335114773384826361074006758735130330678616362138442401433645225586067653342933197798782676907387737857347621262394289129717149645446226941905799416806352069752611562961382685254299104607220845734818764198449618447882133045042783193931253276656937958292747427118200240384931193704186238470426072240882074184620949196725069387614868845440057718559015434918006855617601088466090161287473181308961940776079034691700299964770047780011718013779356109533858949925151070040793861925517725117382593072493894561300145505629008704210722240589679449436676588663038855099455993147703926882346171736919877626229107624062562693302359364081942003880122527180115961164105081091464160557821608131725739261709707816675284943189452907754719566497359362755432006399519324931000715496959274913950757179785863576553915022895407385955892477451320172065884280697813722310205067446371267598152440483302724343596768319596018969858276618829118571348226499688337265873107966487537272144284787562587027371393795958789705194360026248313837488018550039080010335619873289705775859675247182938890352644396538715349483515823353413371872994808254565914303767308666634157915865357495069858077979971722321208971351510126804744069558415463826830858821286175512204508116753374145372385929418317531686025534107379686130535223763714923087147676365952419165927989828092958058357854964944376298841731587364746995339231839786498852299541011095660241153655924891695413960199488375871767560933542326992918050290510832561191482584089109260282827191338168936495052525051799357623240934019215242626935008570629718684051637206879908065341116068681230627831509388404864180104646198485924025843547087924150816637321358953545650467116297541845564590062734117408991569266932645228631836183190930124015170187224647068047966822908194250923238258109003606119431130122480426868596313430198157941376222179125605331587361151150482108270762141559940170708334128881471040504050278205889200941606328172712472093369772914502581249936059322392232745172221302741760821134990844547048030978192358513150681751348633747941387456015256867641616078369351585197649120640893530280202682530517420903498481652723958324143425550460966394845347593189554818279477179543929280886241495206520781203197419795210262677146368342998577593467952294561390612636260348009025321059482241694154829765562095976918674747201095865510758551658235863936108928809133007805701519721934918317652146048090130418822848432073315528716141246015664639869916799621915353527371199906129954768904841868365601466705507545483493537936745326158654401890496564552071866317080795609722470174772912809776273053747788346438256732665104906567286633980472082832268774910408532851695411062885966597157537584317773710934109732347264388213457538953893001548235279683533402866959531923596250925934210892355061716576192717308825749152188604914278394079400120228323392534143372913237142873405385290765332737529511661667454070637409490427306089387219515446868462727211259614822289438444600078149454375895238046016817121380738349666326077445899159554112383028845467390113041414507737629992665416551628711760752892079684251924984388634476235522687816801036910218456876112103147723516263345828888300646741014569884459420458433964977543480102662958723146286293227544794655276001922750444066584190830762854488734135995812089719241876090511247486882059973607951141956532229026516711751022621596404531609604099337231360573427010642782436950500139193324158793328034882866827965717544229428441759141934233235771760795587893812720168807553559530132439409376338879115123751634805653179592238483914322374280044295599271412243906529826438450414970770073855888408202847443048149126464410805299807259487721812454430391659751615577849331272005662925441444688010978667597550588799200818303485648370916489629105930989723430728536287434545552648592415290934531267059914502643767724904912815932586703310848858592809147818938715034150042430815379333670234215031711403413577066119484605339820446816611333093454890244844681565170767477977339386094601569021807720315380061702069784563475514465568896181191922728767892900609045869327104060900593299663917593266861153975504240282470117892669877452861989187156452615477088563395746588764689660700234414029006687968175195729673367379638937152063706830685329489442926053486747371269097286118193192182225945756984953701720679409001706013578458746038648459425960312106927605503459172742650803231898458991584160412373650426688380827130041268440489825653793180284137927940240913837155629494640435517866744154949711121744935239535753634988689248635646562876830218068666972358189406238504208442680583818367270701498936992574297204278477824182517758358880209940736760915946343950756640201264495062656362231006087051060682814799133925194647881048468230934927021216121591814321611982326499365812354473842743530061945187676616516148931695509948117067142299089107466358613399714235450730681164065305232948149933467529519332509738527335025616037651613453317421075721858530985755872761737066682906100949875212466990530114965124950886653603647535895753876931137930813251437516944977067944623824725340961488186823107817470606807336325558837803346919914574715509505723847658919759507440812414062275754420729565256757001923832919109096618987960846195395734576015169743545728899991420129390790853766410355545171436985451463146281970673926254251934134010396599169025896315105569520625728547237061701264589134878595105136157182957727093254086195123101705314967301449127538884330061165809641351526005940946960335287376086922514763308341795920263021427605654184984143623525642812930800028350305810981968103154104059667822449855804656332936330094845542310549631815980823671823128238874553480832786429265145702976481381523259592762446048707530047889906976233323043570117896722803263641776934488745237076888573826279158411871035188763811343029527340361341429785027098206961903184369235700667078493969311695851971415816655207965488198885469652840143532246547663086339740760441619582174175183484139104208016928797483353256380293725953549882555906350987672249548667817534646696215682337750650605183787699205507977433583864283347697618484911028117356632383307077652621917087183155660226026367909364453573850901436908731704737649669950041591134112546160201985547730940094188548610877210037155426663288903104742310329675039962962865034124953954138692934684117515943739009559931865750707707228210406054110288759609388019986183111455980676461220710294479876606908422651100856216334838423649598961442670406934327300479087886036219357295981201925095675049446832707499795187227830999125730585623392970133888681206175687607117061731659414868546013075647060549269694761942825315766021047255782322996030667397474516861236393221437708649273998898969952233405120125792880507897500880840717402407058646594792668432392821059390786109869532608297245211880336395397322989632573166833714568846322494096227111626109680257118820757839774924598504888958317068798882086256345392452377810282969660534701217145529144405013702094418376681550113411289658332974207293557170885302212917913057919291083489700571052130280955164205529415001227456440714887807757990676129765725947322477825193077071809938897474485992190808967811774096057039627524338343582860831379774273568778942173251037620772628782508852053649262330866004815730983293398051072822420054430131570612244458026372434737474371044244504377440474382027979031472440202641442620617672602362496388225018034105744873855850216137673751157355273423895901721270112937954297542286881544085194250629182505342832954910523282361231747261156341758454029871501310972143748790053341133465437257891861579621413545809322889383331494070941322451051184877373359511442232922760129272242871399784381699514185110962248246444826065961503457818195223135665168701070603583114247892453030927614666890640836426789300054253067150744976018121336970386569166989289288397745671481728544967166608449519640441594727556877338781906038561795447275947210581061798088891289549632709784007793454354627293507844751549112422884042742445283056781771787832041098496862184082054724885516853804313448386568448320411612158347828682750632601738633339250551045952851764132610263414157664582349839601607314241418852255004021733675223729054774634336875566464443110753811704936025585562152680694442828131938599949281197405891623938557542397630068404723176544235031184324352538060459816155195651701584180057792869725313640672154818052631313264595440499297484966322536176854350540282766098433229480716560826681288616955946869266859983533585338253372144011330678534779928493613254263686309707161272279698568516468981222347073313238683615893373674156681018059941834289882574822299214930571727244718040156469360189648053508218789639125429799107172850761876701069466761340377386017330066632503003275162074567182828019946274168525222166629394689067571417172852463757727008859440418431700212057156962385664601083161382699517015922748032277275059529644105591666256777680825011847958681087412430700035057747709541694286376775920397331370210973019087450460610276316973159263571433641194856110818507375056591881649569101552202175163397192781334030614005805547251059856449323365339698487243271321505707957863226682428404065917711564511347322109925219034640985646570554500579450511101701477458651568092126085262566512755018560803639325548378326097335966062879392160305685578892492361647260413850735603187115870128401683071077683332949326565993058749962478165243486427629601499388082047365050495567635432544477167146515074115364791145741720167291073858921467225826457456011438832025491763105773835590297918003292835339392228448775877110944921908854532858595030374860482824957274990225813357703861289915608377284798810344161077048926232541361096794422117277435810460759248976659178989184429726268851769950553630588093701058850118716323186691431373157936310384890809111613638932777420910139427794282102348553561483734505418898001785354430160977612513474475559089530668426766843980101133154018327782609534710705917476857702007981643760700165142589768801762227600838895606663384617853202845046000776815220525519665011658369336943823455741236892728237004453924628833917098976494247094481938674863214957357440651383101746040020966066051171489218016679991364768126015854518317002491630149860053259516334018579283354298151124933010097194070921970928893185904862714059829491902336362018581801495855329782895359466310399784140192577504766803490962933770821412562485019398431067026936371033533641266474679437884663645190420741868701930292624756816730086498200929539296204930358910725756708816592458389945086896234462337894229617152100916338791677916891167629274877308059586407974832101640609582186660516328324166622811737049257107577974578092810233954711066959813086873456348604604013173035836327733816970404926440816118844740612776445330076164814779130996080630393426312209539108514363355663722885527602424256071943224268289222789289001144619223995298436934946280753531965801618509716049589794261415935508488934003081967012237929826330675906978809071118677274068598391178413355311829560028330271684780902521615107428171094860583580142827995108933774963279112117806428538728633308204211754686371503146418179721148552027553812964409229876999614367006756320732614195014174347613230175536774952346323542933568817546940162235114517321448003303254696418224749572453664058254446557402543681630438981117279747597916085026063792215916790321998933448592987759083566007169492962801695486726280031053800676795648522267431724624682327276221550529724283936618286722895892541408929929138250985483095174917108911238461028514021180368231327470803678484677765637271631518888093597170180658589409880969255931355135464177739024984249387977904085397620783414672383066695150761746422620349502061193587108852243892149070941879760911436373340411562388338211011213666913235614719730397101109891012869555076589393331422616386779264120450650499936016518531693602378938041276791282976303011923059502903006138026530008234154568192442379919078900139121777947041152727793710137814611920689470429482298397625485567376386678836819183663624275351948183720922241109951962020314853620721973089634095855231120233737799728230983238767583435201562209767077616680854978272904032822168762675829422085551104940234514805512564691868689438169917790876351489660901939108927221871356441723515661321789685428553916523450943549088901748777827752913914991239143676752925258432343675333158857624747833769461485339901690091373270010900716395433922022484706587681134838859670134503175348688163487511223791967889857706584181073627395232892259772436573306810448394974280640153030375061966483244187169250616277975846783178879242738768839749934357553683427910307840434912393005636653004336890574518317738339845543985885330376437530432683981802223005297367695830956014581233818385968904153744775257930420500995183809688974277775560915127970849614247500005112988683690437847690860755498769668401903311042945813418429490923656693582167325631898228665229006087054850023562945070091717734294428987082885049485788217571961095467568873487220963894996369549034529274314972789296339596261199557722568601158503646557179216423525440385842251338528711931709412556581737927329018113176393619898326978499527912653843015020062099640528721284947805410997097408734106655993637127166851191144394846908162630777823963995096180521690732571843333351370331202742225232620005255825545303008080840619104895133502741452141797438905149209600376638451185144151205452645600888900461572400314277513691233416067605522982668345558955307521541449495763146290860889342677478182073462925120459780809320521518740254960012876754714013158712633476006851888036585957149900319234656317325946099404048969464746569080218118169266584237144540913952740036229691053065155874209548896961194514530600118455247414630252672382307219119102948662112368146313324419414752778686963363382907679724313606841202019862627492906307230709346590141938993861344500346871408302725450412107730407003888012046491314678382365137689561683374669593191386384483813969621523252121171563809722076313500334037305681444119824589586557051290190327783939961173231035984397961610305861410552256642806376773272367861012869265796550777404098950791907013742668407432324397025680655608573968333781737221973040099106899369398146316576240798902744701488116024226272164423609717591071955559606263500539157820205056790711153786378156369191478730469537793286961884920684600433412519518766267215250941140953630605721606797268554277809081387575977982348262856211774968318212734035112087720897752735553384332226161731557431831332664958100352312856275465425254950595127438614215449701066410480733585936253279671531458830710612446310370091648613601144644365050565622072069384773882898134415303100907705083470109641573587832802908241760256892121025038087812936609676931956376416252063199966459564167372842903547410559279449323008114067287275191091995344544323895813363332117573034303553753697603015444793824033709465919613418774172138088845008711295566182360676216163916747652102315074143096571502037543313541943502322278153309397982355745519103411725566879848666525126529965127490835521378779772073056065609058220392243711519430499966318081453367674960360550757254230258479916923478776840125050695691169527460668432530302219078567739162372301306121616555684591916177134248684699557425532370044093284233687298975969946401066102767106778971062737866974466349058358270124146541720120734602629357764468800310125379618950105713999535294171355116096486480238816525033331305919509678983966448424046371606150131683504335694505280568155383909782732976938313473217726981486124790868537750103761795563688711936808747219152892338968591522808750899083399041462586766770897495686810432193462557867867052896885587945494772560089937446975817288049262769243639276343086636957899712063835587583081977909941725302810501561851259806327168441812571279544721620502381762445228845832186290770603091907669208858479809512370054097455058002417752409188517429823070336108360030993964071399493225045578935783414911257521116403923909842838288907982707374401158090959084372782185019411366859310834840099852766615171176885742384208024435897766367397859857555732336661439111064749586611413719277461811471229937876107678379653780590102079508337662043553249158064903227118236647093596797834901604549406568200628093051418105355039194043443964886470152456933896718688316053331713470669371224204816839772912013676581632566610443704879296113880026784534158997615648072153726293094389300358602016166184702770817222401323004081883875578723814247096791933987125821114410576282955971648548685158193122782371618448707436941069563079626560502209570506420509823267931129879737678974008472245186276899225514014870453551349496713248766696966263431906679123974472504090973729588279706924751599605936060629690337267982029289852472401418796551999133210179466409056184945541217432727982357098485888889857309088363628054545720304055301588248343085209500119630964086302477037156007410028478280921907467576687919884735035497430379761950990448635053050706755842944483016484578071316938264689520847929016898643040601641991385216229827217578151392558137422356979579088546825229794692929262868571184370329028145023766470129358153695447858596660247175822310894746403392328646688342067667591865982829360881317508656787353194161832600177639732359416937796826061826275323118359056811353288493611148728124553215127228460517200273520834707540563889988011394742297071512507943032999958116100709504060762281759869240165868626320080732988495154183989400590254841809243195352610310808776201516614283245218940727155488133407252658211613307037061070188974915986958925108466675444253954704576108480243757952497782842289941819413879935370049262369082677594183045696589018366958606550090685559946282092517200668818334493583572879435432471273119188854604449162234247961974818914935081840492661297764550560159335809649797346703188973952452839910333659194399437303957810220149077829206775995418124436302094167189204089945444196391236834806926628015153223238924422710687547238357308353614889537040326629775447541302409701821241920563426157079968106191904977575146607905299956592685611874428092204331501472584369742449637429986127789272170059030155407778353206322476820676694898372684075397694296287074752900153861391028506095452343435034803683272512638595430173730104201909844329562768859474926975648702377849598816613185428672145335323806873958847944458946735894890757454801333363760658162200985270607519380216877788341181735535704958273555164699972234213765094941349117884414597179492490647604071575726036657047208548218612979983817854545407129713391704781336032433394468648032594994900139886414624925599608127030723606200575759681793584190875085510270416827798587104212074545286005956057920191170766291588452709804882197977335730417119814413648580665638422404820146631229902788136485110997397797119003706352440004694379425255024984720810491542012735361844726720191348039707841883738063873866660247051556120853817447954424996787947422481512281441874756963530565858140036731165063038771768337729546389200902844026672048549599174730509809233839979613415038457266511285203790919861291012193472540091211819190626293476163593049843014701228681237824009631320157296459432982977904733475313174731177393556876083113679194738609042042416234092864056379599213913747447280794447580160649631629871059015678940284756391975362177766056894930459429578401044258792377149593513996668396313507883211695547431351834653925677612305490577225858969424081140059965131098236952945302293657863415665991342810145969704419453102142710864730136457352067847760480745249378608094607150787997041226375487803933736651729463739820380351887364490723305057573938357930630408162843034913292837420749467199137360747165387283054894932049716282505328572385492261219999406916002921888511941021790348555837522698014551469760936052221754299604844033519356732830727173530272448822227228288970318327785742336534077386910851514903447572706393176323681068726230500430544222437069746307057814181185327090207952728265555244794683337291654173983329899146660766617532598315237715765879252734612363586044134114438983017557262117446984962554549877847399272085590649246282809352633497778436679895970681864875035278485967840655274437638036716343041923022835442857714392756595766042869730088479925700205580949281501662056096923435366344591395117394437400532055955506980322457932674218030713479730944385331106097124073071156176687929699272718525486400107215819149818075780366931379822113905288318210901369761310844590558037202814392822026133335690687524805671956634952242689495869228216075438171520224348340974659361130680141962291663589059656925691015807667475479510725060312546294201088624161478039175458502238615602515624498596473492445358312280190006508204889994924544618271234247498435459247314086340846212004690098824721472822747894096802679492413528238960534489130182130353567351567147749932785604048790927899364513376102604358624226304029331924628837914000302899231687605565918549752527880237379508935929554968295141020880124610505257847711211376105005544446142715981265597106108716441717159494297624169841677763180156927228773901142552117824832943723983915832866255219953430991640729633713281211107324750645212070801434233997304863894536199318874317870838715226330024945304143742607371731065384436074054131350822242330440464110085251508102196340141513704186100374656339691881139723410851138027076014198960442608995426368027735650722963553598213513012120702568751892555528452870120918259868133041382295822213381086923881006107647582623177480069982379571309172155989222135453474387296784594661400010692479302651225835846348463444286776081212942947134580568464756415649282778196012493804279469057167279851287498213555133062530702222403533775668238551217447814408005891012616090560414136415387204616019246571514133363561170183592777815718213302586565347686665613131804005869075571568072449638995748488215823429624272970596001897888329246420826659857777804566653842109341819897845315452290917392266038868833913505417573423325331828843745036804517859075682619389728434204557391706966169671968712521180704190983048839207224424863666521506471171113222066784838461136157079816308577508327344663774627900869185090434995919158798046659787337926426428641773247191882615804031794304060390004068791720547369203420633223947980595976282595179383891877463534098120592922020492449582409363759006034732743979416623529150946094900017742871809018340619540663293995341877980806278199253119586445054822205098380662337906383552189507767534162930866560457630712657116548317639182764950163307248221335139478664860618465409338122955900980990211091398049171382932966888529550447992999983289077530567208206145498881606010031068986094882442690700406132514912813903622986983495712793851384513297119597759415532829044002639506383813970386801612557651744956945103171815053231395679956213612034240895411867490986792014306210627521996108340253008592238350642882338981867463473835943352255525474873166640071291654395676783351879188889467655195651645526732426163678962779670604967215775965178628799376755959458813024601739996605054083276831675528171702957323854876151359415229083228927764376468101726409606708236264926560567617870527599689046266339053888852126746484691758133289982617155472476328608018924472174713181604093772703663874291356359304870235515846411938255222317149052688512310745061518692608823020080292434592583453271594537145530506795776070358521702312746205110185168975083168948062930668535586318017889901299353346097528898380214794599291904848777893950402036886392656448611524814068394668374851418282016740480474898798799080661089559463348194315275022217866356766027005354348629331638699419193064344365980740190093759468496020987229647953870225072067054316434688385481990429551575569249186030003866451692214374454860066650415218125364526857031853121654889606231465415889102017998614533621601886553671844058234329036251331605565036773310958563619839731367246357043860749760246396780518057141616181516674285454377931981254172755381343036006890922953336145397204740481236911344689211557952116265824661363078189629180185401381743953729759305222233255969302479701620970668351666354057683558664582482917903493262172917027381406925894786407177573280639325364656089882684071040476622650452587773851401792479911482311634813038471398407167916463755269316587283211495822096704469967827070875611581308248726069263477056959219816148125669476537794519286804053393583099999829149100221795013030322405202653559650921700983783203480416522070332291553347224084100815569708812934148881649088902935040329550631227412217160694148751613064144716767512709914311231859429296592676704945939156505444406154020197882552645745601001967898470911540875332522880489153300536889859626959792347631880446695604786880390835360653508183304890740818858652516658888466345754919783033039086464142950159372891439990629723465734097502376055686509603649814114222315427405815454977402025680793211479070246946905930478002012249512383299424855535691089151692236875467141293223965241335211749621332503224133436532140767979851110220426975544160046086876211169494940658728877445947647614542459783328489037077586131637930862815842283533468869722655210368702897033240284872548894205076452853863720164309895931678328702419725206602274396580909492099153460802997352907537199199367320273012361424046216608679387800036109902383240694638010584771185664928630399593178529551440871944915559877246922035584026340493795991977398312844958452966721331004920535568965851537818000575719245298171853788524714815422113316189395341913582488311763899455190408624487896542337976898110127847025041628024167686298128701819797635278968264009405424043041483493809828170944071347316933185178823739393535172059795620444670346994102476340001130381047655998629518542293837763491191324202762118320116484953683398950680362936315782470256236334697723914098515567367386117752831176184641504332487264870689028379004820661191162906951976035270512470773318348915506945250954125046211148686818034722949250385899001697906874599639395550209481104232524515801532180753333880642344302344687284064031939674015242161405554999302555990767416483984978033479325073319282558100932874364696856262228443063023766821064105337008459001736629880892866271830744962678444804332219445598205324098204068296219165488939727947217328675695048073379232038733614703843009107731749705326107507893258166438932805193376285846671886388715423769117757643972958064600321614402822182946709089049920987358395834800588580792469804311240773348108999105026991371650160466575477605635859998733906288772445688778171903565921969594271456157135614260134481718977814380534881677031526099751624454034869281515185339994335281007804504296696297597547272408946765732907989893691205357916401920803320180330432015578771945090217094704811038017542108798884827159477794592170426785028160354908535682966304626370906528302782989492960388379968276959816906913280305799904441837139569741542396989599178415041054005419813349220649405230438648350834313650564955257699421827667301670330920211665238141141686775295271808391540699889611337093972107919438109659664996664470117505461429896183517167453837598615077002887293618992116181757139191726671463884030032590914167645434222956733162706196709106691833481035741311297781129130103494138211108635344498388041956257964622951524460499705078886941170970917410755529664839900661637417111949300090319116653144018845857217826895684450801995491167001681189222314764623461762848110086584256400712405087420282442436113984916020574624042998403859588830510820193098630471895690096187445084690826615640453388932149359277584936603197287102051908703879736622967323933229244430096008380796518279576642854598937289438451082853750588538797856831425748554625936490815971088670325746030474861656890786494291726396023601222885811160848300206257404999193926351723561662110088295696600694748419480708338461831629459070514890109634175452368386064540178413634196365322285177811596189813396764148474850429208006688672773952336990355545984698406930414287995521525148062527643224541637120979523297720835543550517349329676005610488599679808152754598634641637402633619423030710861349738290557497609164003487920670387159987562804802671868274274132045827665490714079636916258568301968185669236883458275284669817282899195199263715445973469608036810962092519804067387857385686164622845240173762424775395943730528500169271992503581001477762663876211666168180657397721537770851476663739047163292462630948265953902640130083592202874748289538554292953692506030006371910534079327719575885163413713372145236598600787055347138739688576382529865741181900168541048172763173368597041454068209234039341573628666108429556701682371547466614045817842044878663340969659748027144514762957576456167120529272642702986971548456131805049390334672288211749887664291112365800329587600039650731427151111163660964626977361580511363783425590965447671265002474498841251557585298151442803000309986958292595877537510377912488098722455326963362137198170018420444699990510701984978500792113047458777791194975768803967930786262194031532543240898755855108534516475127452920453908993298438629380463102454188745486478373473076589100967233648805734182723969002156492031542553246104565340151786226663978862160393379162285429224567719659541929599739717458532648680235991275667086736370183217313341617760170114921317090337973389173360095928136686357366727601604256686226304621002584125172429851029718163053288482446737549418483062763787334151630799651230416442879286945808233419158497444249846337171787724209467763210906647544650005673964092801060949773770811416991595167406168981449729171680633539712147577588795509117662844055901553879683389734588071762969293035616026271243660901674143819694981768568001331197067449949467558926657802944927146944304315129189508883849362217105856849701062006052729750396526705872035085997261678048426724868298318796723447622147584941994676480479915021722876583542700118238157312639656347398695081416343327378541516599526907173781901479248366969140371930199473384741004064345202660876383329607609900288309454593812147085373244595467490327327975119414220021136559010744522409747374114252823335466608876882444554840056166955364756855621374617240221958107026044497748501005779859104921528225744380858848703154932714196386249197454783630718841758018535463357233307852761837620332238260539008408307039752123704034580351007111345928964953622065363813220180695077573384578343132059043317868937856632801602502049705598709934764079065675621499633478071292395972540496361141162193780017326770386314895973761127034590187146992327850577153536606438060222085358387829925754014847424905177559506697448075030498502886536248073549680347755561291516073178621444285188563301952641629114829316002408302024909167355875982490096098838594891720410960800687214897047178402205371735061866165724064455033548446366019004868026507898178416924511541398366304273665801266757128120260345941917355065796864648629292710240694882232094251419646957681653032766178213535950875223806995143229681304009299575722586465269369002745728403394157464521733566625002671990650549668082279822198278471893761815040111868913548354506922888182320870308692156485114399038392589884819781869330482483409742664997910530608562503526750909907124859376482489369425929297965773050120241312505534735798839638493882388250183061578582251348294269346904350986692256248422629597098076270103115789851303622715251480337753803102375172779168051885383655491818948971361915664773253395278082310552760581507353196354218189223392633505203587044373160765808380889133156701043703566772690444637637887738737293624166596158117696270375395902626488639189365936990944411718291421411509283456225445823700668605055907058828443830593244558117430195401051779880034051629697160507239938025740657493398403697104935472635292634791617456928197740821761829049323422782188207281729213832125526568532455438072921955423977704798960623110554420866781835311055650956433109786242085911894939992745025223107517534701931891678539945032817306098462386418684087989406215446184157210261165095909860634361226804044325021663692528321219544474270894924834380923882887311107966363621076301704937608530935345494665612635370835415505491824838623773483888890747898312533843763288857366609515035099733584216867793725708135944896091416277738175284455109085630993065000726980250720024542528588228097577534948803976133456593555767105662483368304613726417586921176056258317316480994209391170514701454267972675149998678265986206216369807532768142880537202447156137469585434917797503837752203642419865190413674525799668687393596807325530615284035063868258117621278589025185174053972501347201307844055815240282766270572911687162372400156060035668734304179043648891969805191249197492405893406455490519855395740536267362638216775035726944606741497498230330529913290228970865579067292880369659607180541863036051852281303376796999399503951044013971101866561193647263736881322178764659475076082865207501219423546984109471319856132399185001533173176551773066571705261324797655068647763857949056693168820094827838808811164808482552492017105399779444979762628207646522748242546362412515262182760373351095552539846329111255539420959659012036686678016035665265445009319319301470023421797330878234978079709369853592929407189046682067353599506551023366807707329422459907126729406788018798373225624181364011286998793659492568222589171420123431197736030647589944556147277519307352509754694348917515049195566176161512538265212192817672391794420397308345617231799374350487134091944131399587139410749661044928164755538806361279346442270883039029634129550926577316917715042795242633057903695179867794390541631594663874540793257888931910476885634917436392711245393267094209755359495030269315897060714766650280861060634203529766892959335591233769759361701143198870716524805444602842361395768202096972844791104166048467142092577174288621716353792245670013270083570142480037678412113876938591434145537433177110880218834306067473256476915016342679330111237645023887404764048158072937500262218986875958188872824046499610180790462507083426085978990055259576730061473720040916588299642099108953504143346918907538425851405158424029212496256200501646447528905149461709395671944181144796332030675871423702498333252726417730672960047009966809738584445992069533645172782003982624579699173255689148169714479425337378963419323584849445176028390258036418069408684461252348870403318314228830412586997361229945324127914212854180016872687959786054527619055003944575374432576906578472696507733550477946395442328999891041757158719642826220435595917800924462408565512602783845842215710327901720927150526993485476629321279057338990746072681314030983104196953016964723654742762512372173311398790244543564791703866027602639493386656401463478950508232195154120591117744673754288959242377244300685485955126123876634607706036020598446491605010095941875200783237164588207174749693918344154800515633644041646216592537849297253242380182305844391749918416334194598020632742616142550781898678000527011225131688628172073775107530436899260722477397244383354514342890971179037753639192112775374427447931474580204052630713117112323710771607155668773704908372206804241496837061347590725455205872805672754648978682607984726256465477470804619544804627173642130840471241481371455631538343778429507198376982960549214620305848415447435680103535278396034539955076492766885175696134748932162978022776277106621593333594157871494118012326915861409333243974272399530517827340801784716600594382023364527118905974613144500754674746372642362627333848630308728137820249131637127597308877392257926431322239776090294563067535815555158678500234836679121780413090338925547686255992616258969426599012688120813421830444794700314148834564783014014087511327105956478628899244223219077321577299875511153073000590561757214001994453066500759483510629758556604584616572838727266779992193707198005089942718292900272118634966837831522989615632629237114448444743671090806999514109540153644189232765881303357868043768650718068510564916175801439324216812027046490518747076128974713924167704943091145080569225714137932174841424890638203790422341076408888542693250381917620336278100827474676496338649105437236717268970352821115430497396262983460603679996233019672617309843115958074242237919156664386371622051254436104328592866720059494867002781890532952899654890478646233006593315683580671045632690871481085406483599505916309321379630481222214251310963934324034152832548727013906447792043373384704842314674991428426411831775833092332781878854476241581626484022059797128166690441913793676441676306483243245017653909793007345392052560468481140030100971399389939982946853178194837753749453998115490460659955754416107903919966243484180921774180600728610767568888498046234031338624980262886947981566766369536855607316386142830409892420812897456761639531180955725022029423094896562622655567844759399415106418216793712907962800720544646465043688142697920419079396763549793982207359437938778724964376193204257772941444752131999827142525438976671735589069999357506512649550082039667215319638679891300606800574112436059495274000102929481032052701962019097806577003975304682339990394531745652565101691131169267691298935081365860636915321349623391696754166646863748182427699120223846383391676107518308170959372933806723940916136592967376558540897917419179220864959569314415586374695869481746068686589375692091271122211977177773340821296638483110058512612957176777361729482456849505609780765568904707623384453288804732183894396111213492440846642508795030571943707947891696867700918489187218335967203099245311627831731183630545479479223317977065197022796713833700050686442291601493169824739940243651341575263137109213614862201403257217167350010116572768695932912074214056710466923508273148063556714462935233034648322541829958261275740549865949479849950473271187357265021138500087492998785045443494830618965420237382736671107502644858280301119316948288740500162452448083565258133515957913391484487080462437341052526646871283914234737142098401261312683360090885670212545646258741546163216627996383362826519349429432810052678797490934178173437332399501800432017947350900401867427036767546542339506675529722062706484225414085107390032768365373596939570175164052601792666757832727237126745516839373436101898606511218476550247595111532207004666056336273151478920337045377663717586274931332943271222898930923430729170971627228075785652553763881640299469473201798548156803372024056284362264749168666351021152497966126083711828152002021038893323097905696793218155827770824418978882435876565007407728173888676245992281146636966503779634848905690113739025267991899197234457868438469655273398402207958490149097043213993261674524514097147897101638116995031399985312306338118451074601191001918575910205717275201938557456875114778296356754095378608099582348057598640274802940853623981196529346296584447752574917677295503711920176059685611795479730639057417758539269279673957392383161068824244927850334262995281766518090096895061515586142688777572184383699007264776782314061124858387941536158207321357295933330560793171431463599712906920880337077439065856364094961886128405029905634981701526871033909221816274891285013522003386645817187270833171103265076019146792670879877629914622451433034936982832614545669369513500245226065516658685868019665018263791103273669242825876995175666501845677156174917017751410506480928141266800977672707136800296404014942538460031788074542037357420026208548503635574726064525739042607303156988542330659334055840014154422485300820565795226200859612256064183487955516661921270594835076257076334023465435600403752783261435912881490210689384270856903727247168950480146408432369972936834639339401363711476152912294314746137885957338853176728366522794259834813182619820971446884276337895743637617536026403715304459505238702733781052853179536531070608847260306780603471890948008967654894403868041280585188287418698787167011572477880291425286421707873737543690343943333042971998726230321188364230782834547063816609226589756372452149367791218308705660183030966250784547120278593086170946171583656503913022634036445069927262692513269425798216392110067024433993080681981984412598555313650446986620587638472660288669450249132073674913716332037435700844172712792792550351357706614232207699212117648062138773132402850673992782091907411203966951613275982432638453606246248537659923265546658787651462716840465319538043706294216424147086045447784628465845338911764761863655669596067257261471121397622779758633420736664342680213229261829403885320127897238271272367630068040584805029210120972550118852391292648989132771604984593523372505479493753687500591289728891821286880142936336992404035510280168017188298235943188355794665175823534518830149652427341656964635984887431937925708551482597562061588318872398586825497602750667313475416547628798631150568704536582283347663014610884785486728393937556768816694814164843326040504183978014456311882567470611715287296756581712487464666481308246172263599998946044792539365071896646339867361019310695644178455857808969786085543114572840500980224942444889800894518129931896950760142267492566870784996761839781258801222253644796856667432610412102552077899480039434254351497810662070968652113510962297524024118729702704086465102056655167938256746152452274942192027285577788684759624918203249436722942162698463111719811445713732177404167188097810320401650341614778714997837738268422524812208160183414244264043746415099849747160702574603190011972978226833117641355432556331219867757237620908162724059782087140189557110011626139269720893258190064209066537136131602760617438065474699696871782881771572155633199166022356746009801502618029855488651043925054942409002111268059247897615770654122329074040379693772708136010012613805951305877976662811871951227243895642028169698324478332740780606146074196825153418465649894460355499712125985566626728457465220239348128674985311193671143384867739485616567403468770204621913078222030981460973852680659886233923936439368696462975086186789161943359689824406401763625037559342809411454162482985253879786116972755155782667243722073554358185364907012076411591095270180159624966526433214336894039476444950011668576396958009493687661930077048789888588769034773933092029459949974613309474946702594922933903555677156193257258657473234604413434192446370569362198788277131470244210997698120666561036806149579987189999568180088996003121557530744013774007971778183606282376776521278166728588165199093700338486498734535477143310123386494075163230871168504960165257386609877622460151283569935654965390968859090398528867439626228305479776594870802947219199599113334583764237559200052459474696036386557518124944007048533913666031327832114380457416852639884540467490170215741550570034607423837460898450052411365257864030856401557695634165424902126565787948082130647212452415247405046573794971193998746565324928763102541366178469983643981902833268861066968630084940279072776295240243600826721232566837429233050630013401697503214398268798488282438904768335141077020861918405241782549278463757768913494407127025808506197748916832885713624863153557039215998088294820288040503718058166139178824091199728632692142676579314361397046169266637415538501387907375518784139876019741457456323518170850627893725668317355406538836169213489059999869327417690608912611934403299580987049547326196640398995409983272036484679224398072695116354812783484715309001740306773244539950324961504989062097264542215553672395866728852956425448809111869616125869913054894312771682208179664600253446486731169528591427826715393385091401309157111440646376660846444354731844584569261632849586989211747627279767087085050172398300662167596008896862123129969353177848475399015761849717512469275817048417780098652686820092487668566035385845624464581882476307771979594613371398918331485579419750580264386430788138305702433074202936138453112724028612385417708298044671879590844382450408673601100634255913760230830130261941262462386577844669487906054317540952350480763832005906841919542530551823394131058753859207654614571264615630869215416414534488366228053464130514535209185466616952264341381711701102707183951604544018097736061214922173833133296185054271641181927127560384644727109076017838741670970227858936385935331258711389204440914399018345847571879954912550280623610024751262604894833192220738972717123425935498102635124248095890870428065000202650176318446105879445290552910169968260486105102783963364952828980943237641383031615296907134689854321624100625870014420563096336175030210155441475951588056654448398339960883567349904630296636175122848648359629694224269772671154011438116297428327623667704871560579574691623388259922860674702502585997740599153758094546383845269427296008231222894918884061746779163336074968479801243474902156171473820598910891536305394261445700401115803641773257802421099835691339266203081875896568896337454726013527001359485056489183446685850316732404638941585549677095591590063213720377088844974510036257239461490010005921945931626098080653152141504072109623960428745998415971380698560757962717792206748345977560770550407528888744165955239818006329302748424560433865379543972778896816486149168096924217365193473173967154607587719666257407024906665567657439086825386149387056818773278955919500449943051911287095832697340613351901753708056173739861361718769829649948650217712017376502412588600488430259389234527208085410695471843022305764537751878795375801694441722417279004797918212540509131841691712277541879627620298918273579616177950689704552109621243825795657619720352309450317062771575187840070022547563838741070597514232974910595645247581371051673277204088504423618733447743773810582338578823165619805657017983040361261954071285703698529595485151760643447909956837181233119478936870675638572435057227408564841477661527190494510212684536478362099958307945542444498387428482639773812685711856404986763778085604879839908882580996900629316783947421140736354515197915546286205954089414814277725429813844161725096999233426165706649690307368779381282429227624377951354328203576091955087939193271590671049578954033112494129731119631239938126194615476462742047026310866387418213122897933376100589581183526942781400966467026917558284978125960958791650714470193376000647275402435733210609777110469681487945792743390462416608872392490019583126452726556108901370741440967399228659965015791749214252535193831033520023510701360644215194469420764614994551959004505414868344284254765776913192713007936071394159494470823776631870737287530745052277371731676990118165127833040582328230622725886342847583630780301428353087045423350528773319052693818058980378608013979819609299779806777628618610131322333417639972065061855166241199873347555512680657033905819158683645086847333499139610347690315312659651462694210056237081326760183090268940153039112912113590274620527720726231103388284069575814661962712354576241014060751002738666774209748469684675478043808488377205952010248534496766320503335735135886383224174024677620227591245778578856056652121865797225387232766988195536366502255150453248845072205123544965913448974831284448998880535316600638359684829918899182304424137262194940032608388968323380003107827861013069327035882439274240002778182255053591937608230632032909517542954053803626864701819085992040942540814714465618239252644131073057933858281242509958054614632133727023796444675667737317134220672777547442942170163334890804882577026145878156883818072565242135330530587459839352827644915307889878680710853721286238625519235409488619378000787010973078224277152563045855384759424542153689582586698092869297918511159400978793973028414281408103632526835780463965187716575274793870403651373337930426323785317812851567622802232988410522335247327224568133301647381891634375700612796191286003553438127294166544167658252969611484437233529798669479839408125618806431350156764092984532654523987739772591725098459121849101444183316018138266222982380450142906212375486393416490909316480178310059696745423659078977646923701616857028620299232215445398916830285400354363467418564903305597487071495121003973965388879182077999858747127583727874274504315718270232057805151419957489785745513827871313883248282802093648462841389290993562595895840827040933064558327152188719774168922644782201067618859788525820223470010563620484902267014114394678930289147618728001790934500046971433319892810394409623293204366499883793602050876982305394220343461784519391855565236102744715946105487794177733064912578732825000427385956714201775946902922695678787145280747089526143005851027670348744613045429471178207641526615766902956375291306585993105072449741787208281362131107295490736863351140536992020873520287529384994968516973703557899568233623314993329706492811872502158350794816445037067030525061547889816725553336301906299410525494725226372558183584660098715839432376870998189026346902195722944131148311182947948348020181842382828026286609494222769924510006572792640783091347862072016910163372638131501078379066848313318228257256069549016132563004145831478544327998558615413344197759996250655949433100740469189022764777228482878011185365808092966538475570790270905799079239523543011520401538493275285190939741157634924525011410035675964798300211978972755793556827696049864909097018835752426434575495318083416574580820352993744809451262821155459864396309071113676252282498146904122491811736457759897377211527842074461112634518387187484051878761011292960799992192814707788367183251001264658416345669679324295788614891925264095656912496918717897531302004416441977882743096669524061415287857681079299198807573942297050698368840747030765100010640835424177389617267451294000140472682134665767623062761861427215638909340569453808564325702368182821581072986899625110050484344384791328274535814364068226629842077512189184959370370129683719843577897269675539986990100999855005518933838669962174065681964387738276593973379122529326142486151159707913983820715809076993692929978062889323832022754429807840791106295906981030384438365283765933280223103781384536968336909118630934739830105286475392565604010488974934595753882741585648907751268306212691541748281392027067524389964856368141649745955784128692468292392804646784146286190119062315750294853595900881602140201451732670256448973665072987079701479197057378565748800497635823261540398885984005499005205934610473051778013135879659790427972539724264371432882514937598399380458263138752837762510367457578254586158910740179140374413154933640958165223429738640053355054718425772458589018751608770070792890196422892878177576734494761685976095869663510286311545640504666464471994606144778730185117946367638324114859230529948072639094050060921838458820488064425618465443619652741799708806242770927049369637037284395594925527315398461803441580261406718861281143523212846888179685425183246766631854477920783826764678681923199998476120132970071534319353799876168882116766804889693837598439748868267394119497541089923450776762431766158747031530812743909837205649811432754164187882982697722398864012035301957599643015290824218400693944779590324239109780944367777877656108769368242197874918168924181493304694561710462336226470691737262804129877675339980978535710272283127174880580133644329489064540306013988637167865513011621905676663178472518417740622589884300309161558785641500094841433770195470705509090649384776019081986442608391688169540923846425226886744446764170097393252553346117691368776909842619162689026344255182856116920864971605030402238062410871552617814590326505749947002476835315663480914644172986730893775286502267855377267203361401191460440010768840760243592983366144792156162676874218363758073717053978614757720700970881482850264085255027921661296642651583151289315049938084935267687287883990219924492159422431885913061774830013433025482798688689960879297708878839106027983921976574350591274261632266455217396878312861976606238806479973275623179537228146506225472933228788958333161838587128288408170127538638751919131524853890558482431085429922269304430816774400887439633848787827249103615292065974012083168609704060627423352072263913171809335529798834794105870923705872820907922308040656790082098412280605504455142032071258936557065313601400890960117442405186310702842859592242007613068707301493036322042352629223179766821366381990084066618678787477161923012081806274759122750984725170132628629514652507011192176632575026963730703274022137477034654393797651696220518154987288670129417469706727188881522747836300549439140623528746299219201461692019077061270496766103283215862917148370339331279469235387492056853289993474372473496212503198330001296089860249777456499277355438010199775393971716840983216904734890967960910809906838063571987692400139971815074666802910389840919221431589875181345933892147949090925161638902561420919705213260398010491439232594423170405808636347401368823368069138817517355291134140752800974540625432158344283687470595462878108657259210677923256393096668274115854507945164154700738780027991320679356032013966034773140430924668966160994222755961099817511731044744254225423446516245941803418510892651048680898469185229349879763609974265038595434601742648764843812774018219768978232149043633793735086945852255474329667873154694139461493845092251612349776937833917360919367439445382670301034232298177912072208990994469882230051734183105597487193183475337348862456146926137634044142832925506675499336311147012068515052731252730711340908448993502981205070619141824193455579307488507292260878319502864865509659415439002358382317555958134993364968079790028727778864603071075529499268775988507390085650306724942077257969541472935595741949357637244529467508959766552345021034674248185436522791746520503707545800639996311865295199907802020241250345512081205616138165872912302505196484997706669388571960833671264240447663230429315621269104720134555991812284826507868441710651748015005214075921444330064304615252999787889881292309986787175541626651778561946608592521884646005595783461532304851586359522007239503767834808206553529328805714190531078273543318239554367441011801029387802209101622275729262389746076801321626710232382252155703705928940118279387583028074164777953546889552398407193106958726910438179435660132192266922983117393775246583139163683562079019006488152741168562897787492893322318036292109931311754280542167059822786532653561475587199428500575050076592836502985579368830126714742466807775431992035179101788281449097477638523210578257555972369447518176173697751054190656208352820741971132242934089469621737519131526819722644105619154172346577016473607326801286539720501188685527506787271760980568238102793123736828573624282050881941684460668419422651639974559418973307817698544297100150611528507964016323576049547339167630795612630301066182879974368717976498272935688263207588690420200046451456380910812393571716469866321555503197148803743612988899737747533891697186231192666906387365830157180241105106634507506939877761511973958721293378798436938642980134407144195250480627565242857362700884307595597881817850119822920452663241495997593401961124399963345576859640420999236858823520037001060267622799477987124285853885498778811909820033259179459316191668276389482893436164223044703659188649998421025250871008138909886705092118735448677920771138963622130199149140050290822634274208505202252219261943703175857480491695892078188816731694688691247592567590185134918206774551636176025721581534177508868175554060054496496234262373092395861743438107583510381736340009809942275991186964653981618738040965481670834185949758131295628189178564876942528715450516281056702819618470803974224992295458036380472715529010936251477851672906992149778379878882906324047297591563560734192371921303851621919238100438551983429437753791580288382083629896243792291006034139177875765878365504920960204069658694634421971562986761485531872929400460091573618607879456458422098988190400155892246703549803642744792623083769091882073874248435559041134722790845631187746995928405809658725435797458447797052450287578599854890607754969839793000662787481240389967430739042404525606810971997636984736950014571213136957423379371858492502542007658616600858441442617960490380338118819660137253069528173134049042144801944806460984732143597487684768140002603318135423587500919436490393281129775266351377014416125987924094871284518199565392468081178354930500584499983052937042993180567753750152212449350180363408266014016655844776432724767816571643621464986660960940238839204673860419567521363113463431253062908115989439367583554449877224409812057511332671395751479339552531350140036878934548677046464975970554271981021074719632604765132451488463632875396725603611243699871583102366806408401747954240764340854862423130708316046560543793467475566895802737056484033452003778831081312053260285106700875249464220895771074815349379017610276653252797279948606395036289429158887141747189062809009199171743411684612226935092955237404684316677396703256540528593358631181821867555172137724246250052621176871244988025703943622038810691881248189715121205111949779246698921854840528451266023274952125084313612920967754595390105586753881066857252560854657532200493589091617759327789198022718106930047807307846764714021016429370726091864958802013007328455451594057683743185247942474851155829199752255955091402894298594843201269390163177747567622870164046600298523628627954465758618568803735924558700435050914835530620800588492012136016078435282871655601931267295927056940407562365688078337335119442978498537759969548865895300512710856916146588468719095715781280494793779323716693302269462574768078384563670046804715116843531448704353278936955394623927789680429739619231446705695921122132146087139546877222675174528770438456734909291192980841809629670292533865431701548866498515455227747082053370318124615948473897165532661386704735937971303767810228408564312979440839775552981509246100189521265716999742316418115368689389379708874426625826999906158815864400290343207552654774187194484140928464986353857145238045738304653438302491450194488120986358918863397578175782847169990169892523039285810185408260982957576374976620802230334866029139480976426704505203436455654286208602583143681440136630269143633083900297614437650363986219031508784151880684415235015984650851208821538785891219947015391739308687870158176572001081325826571434595717042785584386240115745634465489429349255159169715314767478770011421638965393763541078687361246556430053988163409726961747756668195123296491766323288533617386361160096356204300093983145795866690361927026790723244379991683226914838397318877334368902143058176040226187129072016347245524788417965152246418188683488042301285146116824249307392289700335437805522307902397843020703353711823269505061654093789093684362064709285652551768542696357329190917646865200270888749365056197290680542736905609507677074778717841568096350794064702762011779683260022728106544904008615975515358005956126120107632791876521067880980293456249491372931321383292597460666123282437771785173285108652122619233224263308409902206727845630292949490876434296699751061404113262636708169176998137281411684355913595845407422207340911389384989400920731696467869551954876873567586107638652657581599677479835961752601848501161748039942406407369557409029723805530881709155528959563561447498525098048724056337647171540501686923461253010445816688313845488215849992522106919610488605370361995006169909067542310233908158393110851786412024597167359284328615964092074311535543626894064172256349470189823643568256513983941539026804773820999108001690132602814591951192633498107208257723347266283773853351495539854902714118950570910274921302803482288433338879118471856492675586467037091229074220941993905270260770588195452060419588828962088868277528045548703590962529394182183107784797821835337593971395507995614235456044307717526919200023648840140746257400326606834754820872095292089251324876148784226434725051322149385286288493574361780361806037601621548743759734325057213315675508421456678824130123554094616727557430052496167150629786903828329902744562190530463873104837853679592960679747374924875462836199614439808585085687842607582177758690223780251267051485628479044686474379362614048642753898534732593732407151430119188991984657911774882749936473632495691111400494105194837174646478945295343790200076261132009075847167606609024960799327838205625001281167352125807834480928211204659203365507507210214587101999696534345041461484536827879046730420319672709374694369227478065205335249138790864698974527081575882950751122099359443078905840830375289534973776517765909485101918053763599904114327833695217699196349496062992780485787703832817950625488546397813108390611122453463869484611113168235175057194650052342877292569109738165927211435633105047189682114257474147381197388455479709193629832680146922829804730721144229949615952918656031770962562103961161721093389220467684889134328960170027072820349118140736292852707495433340444078443683045983138523494998454691636951674826395206917285107876853275848277801664009027393699141125315350830580894340803445131449256596763875722783610657170685860690733932304026240008920616489728130826338224968908766558647873835919981406975106959271629486079155744901783244179482910950630326901294154983336824138047962958814770904360893470684148653888059225077353032098248722031062260168154087139530806724057562120121513037317484041264461551578475643370852376243871600437663471276987944117985425567720484388999407525591951746802853892624935047740670975264901218416516421518039768117310508974194350442170201318249260150490942895454814504860487353912397581199242203838851718547987147368738344693072086543593411231514727326160650244004749594995762376773258181952904002257692953154031644573008902535461058005531802771568271208656186058901808927138195912565709050171506677296280909886252224264905437733699552305426879344961865499566988274540374671879967447622664158179953998651302944988566994281850260617095438027254476946388440466830995226842578104919437349684785401321169483811725845483673390598318107466711489368017355933638477474441987254256592905868749798296683577740831916360343718078196954040408711904892020713678001460814767859747469638788524414102922424662405038632418789378881843300515423785003692783225288194449716839400536833985900047751870929298099221899485082818789400794537149170485474445643023774684798291313179208006817282461482235693278404299534598157033875889592618911049001881135250815927248273828397857280083385647772864405223328669227661074178051947106552667546337399872801070387662420331478452667583833479685303475769900642957213693578609932524309753525197421931059458491702247977178088586234863485450585798285267790168471252745616348129358284662905393700213843172253708399191748219484586022211961045488825267564528545217346225281120160570732487100330506234023099278793761341231967441641104523452546304846529054032998804525489093910666684250376503543551502927361087881822260875438837603309660710084412145027530831067602969105391859798656477842517582765443486121655295715185380099485487676180813420626061305725142094557789367423685402171361452958571229481715186915785229330672508142324707724857710071271768326047122731419956468516298360602782020241514511093853969548925843759228484615867049111080541598490975168877632747960505556901416592598884742172245632435049211146488233785071333971797694596853279499217656713276088771185808011224839666122909499940021839844934686616471661894163879298455446492981816658556160568211494660100390279363622308415490915015332316946010709141687173974174515887658120799044474060644847314977468529273456454800376112076764880597212883189030079431742258094115379452973258745492091661465115358986696135674383035731278090829204395345087330269539384278691099646575281420217315550222137788773917167845909716555797117690717614714483149480308074116286304479414898814875156885706144296243984958260893678745231481569474521856262459822008218247466321153772671403248845677369915057479436038948789875853648932446530245165545317723474367453371748087401309945224784172996973023667761890253941232998856741605970006112908926021973944540395356292655832064096912262034476158539114842043252595120538336452724423563064783852820787247683330617533090652771598845629487477844408435817489425253500416117096435263864493309151903856001390121628271969659446305229980766170473428309984595134387301016844079806772239967076466820197581810354703014465232533598630368255090894565586313916998178033792846157724563335604970111867170158480119647719138451374380854350620772392156861082779023127697627602043762607795219762424214808277479728624037709244059168609552203102784608684227622658357770463103146013242222705029348568711781328343107384906286218247870711051042677727066816127522687198807097143403553591272504201545941053152209018166075278528632774216557259144466433142449404158375014413366434733654894865785440854151930636060782645565153119064994616045433426460116589597193495815375028594336363881564404198205957578037983725788037393601823607585358145494558855843596510540059820055669785925354117085886427761046072953414454093896232081966059920428025128946865421158357395406551724176696440752566136504820233081432346047133140540127519013097584455451546944401435109282787018007932791581662764802448565451405843491139657515885758198256258282704482037972797258903530918668336216174619604282309800482159293132457454134418675891963679807834270727214090603199530522229045370171435435756623268949761343020270408141721986776757532225441543605184675352908203366235479669211605916765759843668177714670472255506276447745492831939511685740005295195860468017857255539042896061844614452226258003538529485601375692847587124024635067660084448526127848439028516794469212387375031278665860039570483897585344671750494686741922786879982766571282131972797356881452025551080011862551573972832105486838346871303226706135944796394789657905032174796444837056122539976107694720456585752797127259382055705693334554877420752214780149362028879490862619134654359527513915012890096054894667708348311310656318113759593119633419063231378080019319023626600265356741521583421966673956723180077446798141350612817193094980997199596168931635127951581086633377667139066181135647474897100237827498097266951115568732540912900518422499475000858433778708087982091049145948859612215825905129958243093154740923574807334232174307745124513603500499166238617791256475781604902538269150081082710217637642879245879455595839220289828195617190248005177050126933041681913771283144491339344187384178749731296130129508013250967077896568884108549271813857980457234378875571360351772686926251039338279082355463492574413299567397455507600818671969125822435403740850200093590535269751854557070303733645708988152927548825003638576306022719873430237894143050772576635587360329332519056995525563536939454168339162343823390948815822023306860897799034557302580400532898372961571417846214706045831972633010512723075505813897093404904337267458562821563085028946182307334716980195249518849603331313216925566020957225276147517989652076054356201890569822260650959608817376588222263732591752189983491680577440001844187844288400149217029379391948006929636815741075852815701778233871509800273573531047757196218701942027028045621174629661636508196826262758874735710195800101664579283664425590486470047251303003221972566482408363391116860478513632275127750307490632220208969091440844888879167307184780819808421881203845394562399389825013871815079929211022879635791851776532151464740255860452199490241239512551636854845632092924357780788546842513528630544679103274876554235816890917721890517203613238635562048366072546204862647297549141000907222198557375036226026306044078827544134317763687887224418967359910041804532695151496926150018230588594596701877431876101537341498673417733226136987441008629083227525497631082653415143733721703878776328027062085105090937333103700510919150634765220559433158626245420398069326133409369477755716295948118888541676410103416648703006437280593879414573430749731700084658854749159811770619902373236218574064781365019264809049915481584401693293661899701928093851260837180738838215699339959178141955700756478250512168426791336942666143642534205199895216077743126760268397938500643940333280954214405926862460839976441793985519341533280069442993824308491943341433773036264390872146546987314335828676081287663561843208651713166996351029985536189336961424496610018896460692146751809924425745878913160112858752812652024353477156727247953630064764018057856615524849349448350676434077328389792186553502354898856803790092824768489150975430392158896449844044169027475726171972736342671614258567457889854429876503284012513181452351289346659099446071993435426083869990153347398403934963361164120979151982360393907779717174435549402537717044163585240634036205207986514997682888882026145120181886921365345780255252029207154762084326189428049459935972073668186123827259516337407614107631011350099114666531504067620551501045349615306106092286052852641618955832105161719743608434783717774575932473135165870906686716045714026481187715754950004910818744644475607518360596528419972325707054525127662332216249861434998169849842514538319660714115466113785539020260679833134418675455427029859535408631060871974330587507883107510078894573581077202197286881847007458323706112637022745286007359694689650350878821478090720757530216714864249734985318672709374270097992472973534179215259077042905714741125963521920385946527322796475252281682781074429244560895276879090780378374479471296333189413504129284070011410510471705038555021822453353732175793374876679879289704872948685256642814019295192483559980599692862458781853607144598297611453077443143963379660302147352789758163595049881697163128042490787113128634165330869831076988122582690676870270165677603036606226652962102580607102968811967671791331360874328110559060626979636051227790430479746448527972227201442424880686146440006237509578843981883306439132050982023573485334075764109690813330309131523957731567551637691417852664282685504074909862994993448436884535497065850821403335576522932071144492296399298003717332999583912066519468382876584779729501448669082166449342024274610594505803039246044000688388859312156115956562835953353659360393242367312049098358428451211149333653927140128379858845141102268716502013683323172664955301329324871530004902932783172958793571718611438572216173400801509631940134091652566629237869687411479759798974063718037853356844551936317793502501917379999893232989092650855891530188222751534238647944321007331628903960071805363838064475411368037161238228777894555671175660550836295687628262782494371984359248293139449244896889831342992654495131060560414501248841826850081633769375640547518603077564454964449784023312994884560840154793710540435035224376302640905927221097951280100553732222740971413353463635450991377045433090363373446843790123728871790091711633763209176383643704406489779309770727956020719847809984338330825346390196016284741730271067426505069076882802206799048911848313287683430661918604515798775862448619029599805068994941987106703837850065760815008074742773930466044749936139057700843902559997109942585433592683384096708507953021448343317815356551482098158713416880334327001022204699236596217037848125870737617163522437791629024681012563313921391096179624979485161329871888180451507318690162966574183195859072180244949039734608985970882422212652534043422411710200984266910532087464619110895118553386995832845867517074194852062855482290450539797399280539582095984620605552711705947884684414887168939169987131999701744316614365329713422742507859416370229906849762245923853448318806340872812719732076468071076415390626158698548979786764527821263744203489759724398888082364658518018700277950671505778499187805526003245218577933379123949773492476570683712602519071448734688895524567982516494702847778482057370059190032814298282794045839216862087591787988971893405206368046291625155728951295215993598878166288023394412884849980260297900103652615160348341232323830164213578635104660668682577916159159805249086177946181303396932898475325684639715843121247415623763785180093313883541336601889843034125475735233000838818613623516097524831995599377329466804858630607092105441383591295120124123917224851144867607287019066383725640552467065569194551650024227606558731117848770660685560309654776355460240462383484288972841176641583539189793268744261593988597210836247892621042378835078689761938579652932819254421391539485502033137401977900337641984983188522001303761307471816035658073345405189890078470686078025687593881820981404058288195667638828867689662547085832280480816810686265511327382620814895740530799497399869775813528149690668639994183641064005892691938525041209346121984554435287529518262559663069464687853315203343226834316675806399392690597485407094917316041444366232797667851421932816690805619093519687125713320035940725038408773898520827078878177162715574550023487138749910942534019476910945050225577696357641861192915343434166771210368240703184501123065535660916753418610188049206885166821195595305862337628119281124028130378260751648866805862141686960350725428345703264517918113664974982589204809021165046326775203351693361737355206565562167440357877315747920649981588987421991643860388071526938565619584877709565726310719944561285704244384904943166217796751258959500758219181190287324371437352697189083115337408602674797279364168302452311324481108580699918566912594896308815814405687581793108345444169889460033734689984640466795744121755565461099000564492481447628367627741200642757377550266542521578628837236589464619108706359677958766996070128867091192986927794178407384823305772578811100256225760363436138087833777875525455898495599925741465603649012246184867350201135536004587823736756009974062865179654710225642300902325970037427823962742625948199641249710399586203315814410449646795278238165644284857615182782232792359161562904888917574574428567743747451219284300764934745229071206530512340286743521659043669808634783259937273509487558429960737767977889138807394363140716876029281341920361771251293121949312055466440195424700142581680014905003992215250193297112700434743860937501229845356483183225569927451080029753212729560406059443095431410433533078795549680983880798222772442265466973429243707397590320737886641395035123443993301512762154448334777056608427662463410721171294694004685716083413252768854783693752234043168890499841025854113500118465766833046748152005917197905505784997224680039497796916300221413836132638073486606040795496054580057099522035231781142784288799700660071054536998541935614252045403350668386546635925295303732229053764066114715967239241124343510008156015661243730832712729882624202321269941790055163109053528300903025148567487832406069065950297805790386560385328164986103089913480093237874289882358180030353064190218271390512236573535464657648047290626736469146361336308801069150817260737091967602177729445540666823788925608849647427551448754674040627184934244084388862145226420883325409954874460387957852645935332172454190150991151683472005277767747668769501740166422244140081852485547003639197060273930181478223904353369435309077404710420225219012938342292088372052891137935358300188602245652754799891467844928792675348524179851817226066828075138155773471885903342981378473717706581202629787662691467388123614481360546668779047882214633378193805988454417676101751360636140024674922671178016579973729234173935087237644843305616941986487799800187612745684473801622109716568079600479250381551978958281187545251281165429712066634954240007103197433422154606574093218548650349747614801184788078434085758217175184332158630110010577537326036132099887189049392029794495398117183737065328816227240354662375035640300110027055549458957393113330567404570562590380301858490653205060694016650617706110419420568785489198996002747663452097770922491874507796910565922563477320393346770313425783133608347635847334310104872851744093708736170973010463894444089604859606746125286769518584159492351139278940650783800404697920614841894002644855554867708523212823660703693629826146239156391548806380888124969340832684104020770871804621849829498392216879304223553166075607634451384533253992745134336882192549197338069175795085528131743577272427811587334639135353947254282476413188871557936821805085841056492831700184571455494355540300324429439549179874649074927555202802596556210158794498584240538141441496358928285291439815416920512020955687246629184276694985792516258012542095529734939483710719177372650094250255115673910731119329431426288858601401951910554383529780225425478634194803238376353300597801255153867691627832747646306846016729186066681968067394153016525729667839856334256726814204416924408950448176645870101634453280711585349770263838906989022899826040951163641339849714126750814303853400313688959056592105761842994156562790784981079748029685543276827438963370776812743855788582358270602591105003061865466515164067019238632938553725441507762692039174088768656244188507631563924367473611265484231166707194631640309106714717991196958386017892323126009282479556154212991447875997457238433109564303244735491169113517679747974682181932051076126807508604676862307898267174780243790962071047195632736286194960242073024561001211187466742481565235941724577533956401597125689365921847325182171695289658568760832194745579538930773046046675333608202472931081259479475795984663425215456936787347200795992575371959328059290816441928510421764364996923437649570612854144393907715355370687734188555261229854126256625779385164735464115010199127205491065447959096325434081985150382557058845691456587075442272446524902760424749509276383655340181324665403624594205488016857325509933421326148411913775149616672050506976872993085141050577240796724534450921535328886434048000366488185090919501620601342227841935297255799022342709167441723723501116114854639372240676039422800563571106067764394577002652341999550393223978699241765902199479618516878411504579785413107200163479379371703105083354625727718485532983753738925537746535921832231679503020165635989731825074892969684396866069171186235656093716082497372028450760903070446903222681893298760019491348889151886857268958525214228434917744941569471886293957123859411686094518651642491005738985926522169382026744318103519699549618452904089810187827188525845185229003340436014418813039554922456760671586524740163548782889552438163715769517437045069395225892991050529925535693946648351415620102315742414729028133728189979872216125158468290314187180474393512503212578160973452004819867291168355598554304309887741453651764872189312468336214885527710464358070019279122372967869493839699867602112771489123892355875793466139179502589630257767380948556947593081469058417527075995700691974234408529483171594320781013217870129781914079236654649318895387698432561904246796574933264111752080092015857515202696429955208042192593313377180008641557974700541935046082941370302536347021684558381007031368276795249624395089516478322388935678383670164466358040953536625884280157305449407969227162910222896541052893284658806235889519737568047608109856239725718540666221993284306703314985770364822792573409235064056532020149265199440849806787615805822806921282343564381774633362008158128978001261248150994078155918235465175360372016358095056140878012234440931970978576877814332123219721351117958342316693454289597778430584418735943402984279876396248017606017837965807271736825620964669940074764029093047823150953279288329966015066467245206560270794465547960096819512901614977317784920472505643357800649893755874614247350902611827330934784981634315168110373536374948308185881979323209457127513274398518403878025169172550749399005861331442273372028781160824505145276585713752933379551454565354802618862937493697241458485009209554628046618258685340938432950828868066232179739200113969549895677913007151225404645424106438638342476319383341814274549626706796217576839977698091785197407403087001637945936177928434405855538934306573870347887600380667869569351785513463475414380238636874561007725425147768976006256591221570917308243047145597095250689203605802902485264780347539021764865688441122321836612225195772615078724358729355126787038400153929555186446861356436723766506567178377900347670312847427986956900032284817195760232196128791749833321458026472240302200416393507218580430283935493131377224133477160581951398096067244541152444588682451879003716911361933362343821907072604476628193317031927447849301892110933717999126601434560650055641029238732503280707513027241448522891493771160010434852083087190626515551463931546459676757423165777734116146676987640205539424375927535671667456216758815135618553888709526360303854543048825433207514861883785269579851354200765753968367806981706566814839878576166912008288508887476841198211529158831308126627327589942013482808139564350499392999743277914389862072006865272964246920940203980473369504306513885987042294865401671172971226877183900856974096136884422148388344638483453636713966693007204270827965758234607693827835596905207241219674495896621643371181533540430682879757976103297461203155372566873629239609068577438668448783523988652843723040785557309711977034358398409834092356116677332747640670063221696850641645508409323893231166070163536836166267654542734891094036214663628288793253003877664758062936551142276225981357467176745293889672450776414285861385620686824570433792047108870419393248325632359353482767720319557880096059217499757386038957304548341509321244302913288987047556438884771709181301941922768413503106581012948763972933399721195994166245127109977205151124339837276599559695159569090410061448123817057453427132317580805275916973314727945780616937965575909158851120143351360958152911627859973422912579884202620765191589000831428232312036043581123477156041077247262196592909282533379789855491308973297715269659526407162586819675680081588482924358423341110620682291565628209891756527018347713392670586251436909126880743472873455656158458071608954810419635082569983800740436798518065413529023297632729689979787266372492276165156887403767553135032920168568419509268219051555302792072408577065823540109334214700676742892314494442947166286479031496839152115796184556228454439532944766469423940404883373660424145317959766797618352263778673678284138122391506590443634158649649845166725684481089791569417790465608369412167094697840184501196582130522358422524102899143074010815179099377673147387874093904507311968468797305154986371287195670894996928263439917147696254108544403899771853279181238516533995729713212084773235618923634647107993122308556724676478486201153915241712576110074894822127448241652548481339587118499139881134210105324721724614759503612340952404661685165992020803635755763770035730683099103525852105986585857085224673748315578653021681590951929353485147346898685699590037304154195460905389573619409981070141415075488439402565491892977505399937376211466964231599569402964434960348670332900930643139282612561941839901404422442759505275292160903267329087596893774038360714474055457236796717680217951810529727372050698997847830956907419348790041250581906517403908289709987823498655307870712606784723418180282204025085928929981329273297715181902723384360545187290842928639414479839530759194328895256570432537900716740534877250900322530855626191233434095606702145970479191386786609627334049832717287254718899026656897418642677471971953479600667604197097334060502934490440806237320929372662484293909257309559925624042778738866766664006924076213071179394635075303919486961885463213692577296930576785639744267811414240326590127774047335900134862852834362068279177428753595956863683391666589775627888781769127342510585593085399797889548053301241936623507162524210951024160521005124768885200993576683889264555068741903485679932379127744980310354514288413905518533580705027025975395366994798464051928192004849811580737523171150513375363553398969259464619906200000297816919646425670041056407026601294109162263196416466023506068749291002234361181867802991140567655530621257558053343902889944364236955601276261800223730409834871815079534014292842577391247079224416842024705845253619056776521818521616244863300508357013227784065593744800502307557337366623936472505451555562286308400356411439855670713486220213698656013879754130771046763091933569145496590413187066303982587812753205189898058927392874050970606110441583401149008972265407252632456019578033067240197169476878642202532672295001833947502005393249937335985731007084815222181486029409958664989747110116383084581226675177285324183501550692113155968145798830707877814879564299955316539525655298196204332697758695174144260855552692852796741308846552994478951227387747080092405944212605502780292691116414052283692373516387731131331088603577491541702820726978327443034894112686085252399427144775047380993665946980408810105439114015901951608474229646252772115384496451069172543293120040987227752600568838293751876426764603234147580593536578485905827475637336392610645410772665252889473960155401698159575066690213997635846814912930176594258215292262271557230515346325622880478118725245397521866539143784503575755561234498904023019985876596481542091129097485873743880194745622146140798699044706810112699512704899186645526923231494501261883397301099251204077204173889437519959468713342736060381959355361577049472731032761768025609783802817675731381867957537575849487717138930712977112247639383715353147390732684161115793345213914144209822830962338972583827943494867036868085200945852248493151284682143358455062101074574970012248902646985884060887213817436176722415963852333360181518288977766104238792899674296459848831198157120693253045745967910399095605071041845758897703626897490296387201697772724786750392974420452614426960768517435940266064155263746883820977234254286099553274005983800866842708011613825098222281234529962966132478392325826163030918725891294991297235766661303688709934687368144525332424893077795924344668297106631105253865262940449533411286772022447037958228803182275327070862610944978571699153748532724765696014323523882316401479721937034560097241028928461660887909072121111517456036191562629784294249791589832165827793162175736278797873477082928444281994885731053299598874530282703955691513357414907868677674830286329137923688608496572402958692036501275383516099578839994154068326475063623475662975154409133879850586786260964037898830423838734054542040593470070033207538605071690752204057505363273113100564537782733372739142683742758541030690460331067306900955194156715483944156418849869314349262787758167978440603964249981335148747342079430027375079255549586860966482257598945023328244606099174570212534674728313685780183098604807474792694698285317903018868957291789502568167082612384563057546977129077363372141448669482993741101562771499834147171571827715573076106616543935524720820866961249432088844942827415947158929374112066612212105688951830545586115346260649648821850498434481084539175523513302494597192546455190885436172310172215658839040843304372901839214296909852055121442185466032754155427632893374569891326590791292674094823375967309549122147839210998868288331259505450699842643153729824731130214034404258954779101423612680759613182806811582342883022350721487258853518586723743127670801202441411814033478387267357365665111689079156152260711484375514396575890787445639022933317157019875989201979985548244599025455708459788438472146363108418890609588117935131425334809678001840364164667112774227067659576154134705693452741473140184151974427935221741131083675948751213303323138139138067643979168955207876480019798839902311729427991273743339214789616783218587303080869705013647147729842563225477720735405081480588686940053345345839094301177497157957818158643755068754983227283605096183291804320140234303466581346743022158692821569195833826233069667491706006866207274494710773550607460626069251118268724543968272076262276834746894047102385375446827679821397387493156632528269427458865588568192729625581357231784659763944328538291487945587440744662632620261660588314949445360328117302661179771020972599694823109410601697586625405347932151110349588276593747888517198182307940426617222280921500352812173356820091308701015289925043072719041311709519942358227964506193732294250717195057744866454991975439015747414343078510364570875166087104605964184322464809066977558676101322447503414084895854722872018004351501841188652670214532357642356470212709344427370597157439381118637759435099832237615924374347631987563586174859083238137642763292044803834558504601572378082950138990484061404988865627731580641511352236168994068174874557138630592300613512628170059957422822277146111121363692241661173422528881150918839904935581307779447801349786145040818626188200165571878245156334885157023716259103450714586917361600181081969728388088955139441381364250758812365245708394729739375916434958257810946412668308803261607720268842667219033934519772479615521005409336638545465954918935202568216706920475804320606255472118912926645845963489549725814969612785105562355289487117832136239295016542936590817377837186144705843821583987384027380968089689726645468171786648429926575916365669715033620787365419291118591570812721783643452434811936944958457713669178463144690655350995900362655094464584661761413176113827741558262898619445180889418355479286930966954809311398993132820145425229470697151794748622132579610872235900788410114848289602070914520721340862760542396420941648742268759008706706669231875907623388391343688560711671960147695476132518109509387348543091947634581232265428081725401827300743090478725631083322424672747760078407125463353286078480165864476715864061719782728120381213820016571634624612420675138456464123896689697740964534416971926420698337813262184758019705989250873318778157672292132330201313091200866168802981751058748990018015254589388464922045411728118699150316490220780418514452148111506148826476428731511222683809405441909023170830641014463841420277396858140719429052919536078076546422991518279063754877925934521317507171887158702687722143509472201517493501970199213324736971226555829745276102372330124724042804406782716889655120922595990503545049274330263705086349257150039481745906603826597915180564276131122551294826868912691244637612847178035295092290414045264677964175180692331358194789455637984538814165068884334173259166473654175053984280065204935478686814574366595952902970630282205457090860960164227752468219665137315363899068006456990707032332495314873527395091452697189370295589406922296559135643890977889257508063254184617778571598842248339222545654696019105297059383358464846471290681851106074046933836267524287548578274790434586799319710994417911849991099598030526044668247666158855910300916006546537720456030269516808918627155334068784826009725898667771929103023167440087679090117597426904503573439093007387587590752615594648379157299704837481113363108824468350133323039600641568571528456401376511745321226578082234921090018070671701007126928047870863740216739173053904975374833809703668260466659372350880713178584024604459192296236982347102631058966778808759550387631175612070038359161018331854679802289114856406951504788410660723810061085713393609820293561616261942756797961624313812332853718419938064345639684641632994452123415572626451479459165463576690412049590804070410145756347952775688416402449431113508786495116435344624421420487166573337745600010445177254907314672709165810465501378058244990697125464754166699843474010827840004757391533699288466948669428246378278022306096621875766711889018532679921473258270978556970820245305100412240129016447300149937915003118973140252773369695302871236890978411301350686679524484556258681844664689142312539594862477595680920950388182006670262217916270492652166452134681931144701115363200696420139326957569443650263536841177005820062358028115124882586865746342991223705582318527553804762126606419039801320746952213682473515373205303191671131009375851352084618414373544049420265983710879732012305824425873057134117191491560411624246986272113005121150713512553416370708668065739525231995866958335849953759681076231988223067637849769401519981814432705403004266743801284501539703592776952052938700017854904887212808861262216909840050856798325059121746943698689956985184019927909096087255869169388461983891917646298725410517059068675189775241091376663480457388822710304722065973728222031414168637805919341002083391893059457416851294449896867865456492577483116353656991617141093926355554420902644969155173734542304144589089012502024098748434578608183494626643536528850125318056258981340754842093404664258890470026181291663235243793192096725505951106037253763113826661907114054151815514680870679748161184977016294729870787099829703868562961797851190209287119616019086855578071551971263728462939468391461913029421846396747572935836289793526953765307034259110907845788870179011103403064064370992947374458651273764667392114416523265826442764417642766294384056319723366828681659949456217220193236167095919976096103851400931602625497239598827896468204717385212192148704750444702192032619138736195053289656890578771329848873516766186334329563799306187801318622872912865680087666454513090097283535956878021714847324597580892436241565390130802161266982191141445373570836830355536962693975635119559822297796810010775163122662159474527723882474546641396127000336121195155399848671971618854038156786427444577128712486582549690029395319149738344061314181056621325716301016640707105815703462270419795970658716174046603879655116517675523095344067184514630127047831283194979569427841857512096325574238244087911013237802759522266312276979532322224343518543529373495856526724786966340002898615476848768991588743702731194118661876976911614764769341490946350891375392426857977314441357326479669681695082935754772275272880766351386921109387330364922069156832793418115747018508100918502170923788783784907743977090093340281134314581798908598368943006452350031475258862678482825117968507336590487740798501278273237145652130241904170556135929181559248114171608242980926591128847586963035294744555886778854714284551970126547340101875100186630128083329154585574071665262325959739286376003518297948161184338524950729218074524136093031840904799959282729789596283405537023977162514431232146103291609659123590629125385136268358997396471468783767977663963568915530515203352893707499540146798746672219373762619747630922224608220933532924856320585951893206861821016245280517324480436085002371928456002173877443503109977956427617362703923593913065307494456621911082360062963533083870424062761736680904620643832169075800138086892936434446777549331906715143810875579626910807810137306246841555399998971000744904116769657876007716016833215538081809203431041264956461222259050421547263425024731378923582220448813719602611541118039340280476112209127193704130573641889625540628791724281654719044702566258676226889205740059898389222168135522238730816343391390207779755997237325399183140033234861111638710731232486264488394213526561793186057506690117190971904965117208496945281344932811184909694543496541225001838804949476029793918525642091126640417954123309996042209693756274742461301919174627184322546096269545764355361909990776583624779332834625073566307896109435123982768832984454385936176387788957313161444917491369022907621150915954615271067269419557501763597593182123731161281924974854095334660593640134116590979354334306889876648022391584916825385269580923116321766799236522583811172938631695940979208211616475172375934981456331605973265789766397996203870972598489239043043078241405237896919500486359341617104574086559769221215341931147450625781743605187143724321283525554935217419668998260405269731740169214961829741095997107294333605808340062358081234369061223876674067270164744818006971626582324521439950309809209935857615099399268252089605347738013194249574429102686273522576741935075355023462397955791125251597713455623112701064308748975628471968316601270010761290121137761067420051658068592845738323653998212513298973878203514126484808139639653168570693272359530306543175635926428942360273660674052133675336283952449986947228300714714421730923381175982709713765945084389432712916324593061979921095631473730895102964754238169518487440622675587708157031072754639540232580170392426856575054814480976176619840645639885529548255071221204707167642222273819824534632770096377985709241263885357941496801777484875089889829431993323509378065361883590831007465424027486901391191798659099934595716635711094622984520946847332420580492872713619765639168474531866173431994799492225916518290431256285562258282172255631210913668971919115097008112502459781141596402592278538509425086005729210662318022997346024842417706809987527545797470747732447658817785581228219897942223155284777945935528776021629601872027598904143655185449711812358344696063894774469999115371806568221471152170973655848016352646720331341250798993043217498712710141659754631571643487878148573229472215430588808469696859991974803347670878445745985861010445427050752697675623764804048188183860484612622994856079294254920287844016735640538377474788207714535034557218372104909297287329640673633407771233589523241388324518815351549940866139455326026525892184886792076060351355784842659809643185502731512047673989347179548280978986379945740160565430598521248511907538720016987768022673013026941385133449681820286261589643900166009091398953207429787606821452857063919345797238803591558983520521007355422862786568831544792407454457479885393994023227154858718859691566977490475918009012602707803943880195965018380489173834026735756798289620896266793919812096746839389514056754684355043184854315109303041727447743295035221686795876971250929597361318284484544514674105060377820395866678802433855435731109546155143936632922227688831783209716738656493906458255088281302983433304379329192244294102855964281254398705944484000313858636019937207274952332944550600699095659743965048937944198076401999280132305908396132008809787702681389951863255812004000138398326855996650091284674090224504672609489575316464603659153971068453240825922614441919913556387800414281900762219668592624912242825552243905751960702413323449057135508882950589646423998075545049742517565002622324759837908703122094789999912873598886958400850035836368287014156573181144217950664166516865870444052176535566430348317284108605735616957463369945639871237572537285638962396197685776052958142727456493985890377360550799111068597963866637351641607835975769136888541330802906166950173604365260486081043815025868224278396357491679292988182043762734964926530355181061015092003878452781275282531474226132477506141209874394159613636193389397542488428774476754532537022687136613554602132630294928212047396062532376704564902843140113484339543113550248054578846286938831915159403925777738319616360301002935120751804255390557378637731303627247665666237104312014876940469536776502193337468741044659892353906996031826647631261417993929862012814176516239933375562889807079041813832989301473610072379692698046027331232955134998370974330483727219511882834719595998551307296572575572932763157703738638550248290863862519672316852533975585602043870502169207428952549369379798044406822207206293442871496303291329518716394568308100047456880828115515305589554876554071651635941190718915200762538792654940808131342567004095472527903982109270783113532865590858314521219342931734354338384180241260187486912109481132482975175321861632405866608426245776471135005989892761374019560030829508331914663109687219962467565194495461698776496589781256720248289173862895133726392939739263634347159627448546402579991113792058379216436632859836583356459427129662277675906356597733475553002515428623631903863841698529816076639025002918295699241496433034710325530775113363716615272614744829444374599725198165313938356069068383203807073730090115932050768229624443408670825785271809926760448344838233976403352751852926633782792242739829340486721937985381954183795610210058901867354954160940720462138943187723827037557855363450861015870519662650650183819435157809226723604233936056507436885375000595056235730332712469641149110006397473440195588423506068389606204509488989800077704200198598033986928600372605621188520552064516769659811844041533349916699399039522255313331455628541949615629579622153414401495766734836969282371410228428498446545910061591797835089561006701740905452158258855088932173297580805373706250512279754965759498909674417190068619111869554775564135387210195595986955071174087725430856855906299265082522724399252395588693924083585171202949466320635631460557164110281648061923935935614691499151321074215207486126885288386779579806730370498880911710817917884998880943896698081752147075675612544544168348962887707036527523487310269260831709421970672371196455339091886169065148675691960158860292761068606888535710982108430625402212622653225728986275782020444919642777876673746626480744310941526835858398728021357938262409646064454957681735186582651662583274333253339038257931346914966903137451555549754176592598882127119243204504328461977391983314217113417620462901057209046923543686372159200887411228395159478553672898114904105315491792962587105844375685207127387838993135423006740334994306883667684629086391849965815898569653885356231321568324921292911079602874999106894425653138480899660195295618524312953865801892389182087668798096374456012466874037391205236727049007687417276393335774156957809759395122902543460214316042698679374142165827468700310996283100419332567565294959588737726321879073389844997160530603368578336703492658861219548464911936538606801273592218645955878952588885209940612997708086898128374374464833871871126733091132397405667344771354449150549050976356750706794611457356547466948469325566867375802056522862579092327036834320923755217723201081933438375263853576667711997483845637573994684385025642113364889828391576922950697244472506650013465329441305070339541681093742844756691159051445321304158692073323302365667054377155161831085771123155469171297774276614779869502276472180550072655048235333720403054652578543985762830513236338605474271991957601497778197177340543119208956458588224221881412299705698170729621232444878243224884054853764456406727747201720511701370941875915261358410861356595897339235855301179898550765371075678273725932798605237024900836123922555858758629586176231871615797553996028448511620969462287608539791354047977851773280101098792268631983509580780657688352844598630546000372482207796622264810573062873053105454047685641006458714712891005523480441106245183792511665336478609654823765761951115192583146603717770774661847275950994438854063715207941450471303579899542073121819635406139148015394499344147124640556732110715321682257130677866268494537091189166317044476755264348803378536703587147818071149042225722361019333121753214839961401915094972770183722270376704171852985532866397396214822016693052420810172112087298801328222742933927893505338155047097821854838842361609301207524936603058707785364338672873408043782397295392916460521560923126542769625984644146902920214920277480448172499343390052101778281297115331549054903030555844331324793174304291151158858608927267988024993060401463504024857801962597417834942587291600687219361448279914608409629824908987875368976416519923164472997167296326045077090824586599868337870932862237841387826943945784436543503664624353685662328151527681776174432527967871135164349050948027976524785820896437845445773961957106972646652318923976456620127645133236344598851672481609303867887051642897625593250173188712028567816900686910744310098533572555049571668186182958761005515474270255007230918944334343159667956713153700443281211771429544520885894428610760261225741355428633713291573661817998414888202337941463369099281155109773565781228463673748763326885011107398641978958525969214845602579359516281691241211877718192901961424875616864320769435461889892491066296419326527420653811802868220684236653537813487520141292886160348321934417207037417126847598164111258127007938148789879543371590373664861651960424761795774728603980530021032427957465961446070189538498604640001028791339303017311838652287728139623988285966883750600618673915317584015519390424207545331153477265089790596025835029791395094078581061120385396086902859287607350723968358585034966909670429226316937590486949527792301458012815560004996804871452880577687501861986322689746196041915753742513747678080524429936213951311788439750418562850125892685939312080094302343273480792349856644295399761291660225330066795021399670830436957819025477890564597629108793579349642240094267398221508465192606219493741093422673855835748263760797595015772112723733918464328361905866482071314329232690515210233732973798682599927595314138057114515526442042441056916411555288280765357947442786092370216676031010929192956755050248405959556822028866987727324312424973635709817224255807875456901567617023091853550661088654695404750785615082937233719902823281628871852522604698804285384692189824934873293093640394148611328825521959857499746364457661764620637552821647375295412298177982100633859436693230509527282846955093695129651461062837075438728260894290375081140848694164584450458009785332618488513054682626464017915918341693198098954613118119009130512358387379575521583564471698538741730460667568122676402118011531233974575968735429105879948157489050855747574524757751797725258614179093449164299007811140599850690648351213900959588171409616590765661384259668124731359161513123958495815000940749731040708498511122493068240184111471632521592633657207139690660397552699732699131379432814353416651181404240024086993876699307820643664130931746485991172738126426156626720334993138865240016088866915604902529966479690236237670604922207720816592299470386357264761192920221097514794070987796570466340920146547123106602837569784844745420710422605575938484793734896654510589182081188980731181332824745355968529886244399690976575901207413781795040505381668382133329138308361500396131466805532428642226423867700011000962418850020859919034586698725642359184022580237483460829204260805108310260407618601395915467227699835903557816092377245757923754463458702389767235289585145182368199906931275225031964966069936429065952135909429453555433098530092966962736500673776105637951852389206423413983520101804959850396441619353896223902102335647800613645712092523271400457673696778047838324953127094374036152935833294087431606589323068850659898660633924684705341307565596509565992476982384850043408074791062718614365721577551218028669273377529650535546101109512626250311445665522124772815639951617506113160918861428876589653933523691973191310940525406401086249716535527128532879021391334429184591665499013865250524928538654793896910071911988522351156578597286246633744445830747391878792440940977753855647000192897291444815154446475067630286253352321796921607732865717162903486989705523463606066070001764493486471558481871813274058945026983878714514753225227228909992016761526074154959446150956636334031375434886212345952827883360125968538873028765363588561569642522953495812796971753349094667838031324133961469293854096230888278210158658012404547131466081834196677953544799396611976825217211450564335157910096613657273730251627595091653720756674320525833639839312683910820717262441497091665156437450230301564940404976767030622474947775171363830877746013060826574458796027444672806574371504916784387420763733093547934606360461910142261522950523834296433016189039176191900397715858754496607984408071222548661997438960553360104811344869946062787035218560147096441568773209030358395156671274963901111030464331729280257225230118368108576137528174983265439793685438996953786526159488532221707173420156788230518105110902967168581053042608363580602616001613531274564721865523440661660310691914116821206012002534263839863257221677030522552036013392200331313072447359416051386557381950340515904946600516447546342621754581217666752130989612133927935190163668819692527572303612782395490583524747089977018283093081899587548814377972133092130111779337786749901459964911523833408548988663939881930159546948263823599750258198004001595479076033663483423999454249841961826709034952955573157490733374674429994546186006240565924078749273136076429014035198414164032850199889959168486001618897256282515338075401630889033248391580858938448930290092391508244223349689096330450963871894262565638058480082697754618975075323240496817606643543129635275620104480066214486297094359425847809537876738020884935312473675995378781552565262850273047217947124507858919644809762775363289728970336825063922702458921078428947587613035162212192925539861654447164853995438168111804640142385884105746839081228232747611630468754026653119892397512770026858900984824934970784040950273418892022016342604401951464799201120054066946150554370704976616214045785723792263098772164084134831007456086956153223741697636733873519712794842747043336317868364812824020079528724449721018538387668960151769416618834867773451740684113466073571411987259428984994501191591551072800758032305310065110973562226480367175836962352829586800822444975729085149552733076817421352528316607178247552211817296769991447019852836045575163502798301210042226811711898214822621602009268955039660483481382659755164314934509761971435683592241099913971496011234663793616989657247873392161928878876294777763862901362389121036985868180940506068087755759505921276804729900576026100607120004303877762072386485175538305574855469608551744644595752034424557926329776589651642248694315534073408713102297725611225934979941228424144327038460578741412646488275714312231036200011776661444397493141691388500305557257973168897275925083927092093341941528889416965480683746398688998746041847187908587197478761861192368126668513775973190531968438999355897425208808590192718013481844586983024411733497422274421609981125404542868321889362255405076270612282505234994543320867032781032365009218832228688099431520976871603662411636622155880507008878034222343469211951082932725608810305409023153060451817911400440478878156107730513912408658265657982867844738694017559485097197689792350888188740905661656627672362975437241765325138587771245546582211373655002980516285898929785550951286169273751871538614861076689240947912324223306820192201649263467127213779951555767138326565156335430683142553883708536918969360221017228820564593557768254417512585101390337311554008101666888236928222076303444126049384243887351345699526631247866756194516565319101584339908218273767725144373583941178484334005010091930817397865864861469144394644799303538793549042729202108965210521718756647491164871232148253761322841293829506385339805205877264732299666151530610381575003954138321379315236728849048052477723005107282480124859296441056017086342553169637558642722618025296968469605615511021380815644208532414819222821173810955195487403616107589955409283140433556144506902059518475494725462499420304910963032672315058273547338916800226400758681171879532570758819925654911630013217212044654281550238579347465451521253627718897845574530924330381489700841680080468473081499390512617638784038250168572109834694115050115173497263685605260489482521191484738016928455775701449683209649204963500144619275919268938067838188945414262165042728354321193889839844145953838055117130339187974398271158589355095893650486609248324165713708318997794714629062857814139193806794385181540668128195601186066914223052180578084857297011032524062626751325515392235841680303068127838786482404678364312468595166465860234822322627722502816374895686713052254076252681713420200267056496734101335581461344269573857566074526143527798646800554055972939256559552024174522953896494194195484714238408305468047234466092098187869628393515773735858118759304535599895894721042604768539982036849284595214943526329289812698945564659837118488292621239452255045140469398410953465181936171296215503130628987848628333558135775261533159021168908417241330571881121282247116835207268587886118126422782069788767374058360348354737806644590190845001154997635163392389402144707662915577981579220132283388500134199224316794527470657753684589773424427334387239406005756763395864936319964878319256417724651868547517778665720867963456502969550344479381346012648560459084114613107750144691691168217383523226710571019723825384676278776276212807775101968081779893459154337312507421646851474054628077115095552505165912320696172269929542702696339935261517738529422675223154839212335469845176873580318212949144430135215875310792222217922244984169719036509801796087194343869135501280208137338710660431922488747122201405541096644866706841303226872001436486079142395949984286479472952863946237763785909714433944887111293338049437027156710128023445132114961403245567761266205464167769447173891053426195829108518422964372466307931092639353748790862215522808678357712345314028277491519207439248316875779399336980534025555024482785323863678494198644755237718653979392756442045018457052195976354421349108727674735739195160914221317520401180037899225030364634135731895205556811308887543260446612598781835996564505408925578057428643084474530895512142761351008179912097467147536336271442442472376125085176752201065660323764838415068342006892999835973844018268684627195676693682343682445691589662438518506541446302558135156860660037300074063490047320974092023702366570471498900889477698004167327531090526301790413742040133211073429054826740867048679899581225736541867604220922876933995456669539968077662745938529059319886040115944747942489585920652266129393736558876451001038802313425555188266818755242599364555319761154586082544741078133134423164362315552653821170731502324112621859243422413475394210899721286053554568719758709223060694392557279809615032645698138529631873957644623039819242593235662689662323983987629276490572482407481201542030024745149986875831367322414465129357481447417928028554073589768127767383969112842987905368392895744273316740529876476538774067227070239209214899427716315312838811109612859094386154732518171697536225651958880751954808167618293253015253901561422305405908732684531055057881132793067891906310819584306849020601595725639710953475796771460597467615604982844971642443797388535864926189360800114313715192525077086394420727407600637767771948866284091364633627639130032998887151042195530484050338834031277746831239473479272635372785657008228100064421942656499324626290420230196714977668849590509113011293971908665659507871907601876395696361915461227683807464490092801331848361384701038311133640725096915916223547110611799028264199382083194047055362249206991409876657469976954323568438275428185119474110534326298958952324783963026937007159229828146530628037059737071559019538602115249642984938896738143388012799325979418720548813749490066212763640655966840633481966251763322751064122986418012906441701061424209285597118912165266682080965371805167788504128983876732400863288963397844759803770530753114181651761484436873527672248633505697582904148891459152155555216081061667627073974593328310235228901961782175637622689875520761370693950039413327187677856226842707261704076468871768753127655027746685171508970301976027413851903834059738576126755558181541885613347512830811401947616522011496420220812224377411415903606024490245705994429252693445555593402734850344923008840318664330304911327877161934119408849344114486300010007968434428558546141434421012746341709139296083239175584421084693190954198721429447533076470045454727589608852289186811255199418220342855837682784798204614730989209276644929266336741880002040881537634166343526125151267375470405558629272941636352925251562380069120040691446357244561966358065721560979670610728431276591486827306432372627519801633350329136913453481589673554482568079157023903430218873850176811363002161579563471347986667581067491775449944717559562721438746886612915274950016058251808089445588767023318757186715011869245415051211674515543965503205226724084711473798752269714008023090126678587869479204041756194815148024958944449616269337480650666080295184636675379191540793112272242022613121703180426470750250974589731401157592032104591676354635515099073439196665840511689913060352486796410809142456735574636963343310075274875377262577952438578139315189843427404485292150400864075207221806389963362083230842871494278912822542974804506129036672597345064801519973691989570538839815859337312910679181563018033538614272202008057356456575933986121424053383967279045460261892758993445219581984455093848191473976941447853470084319914288943946855045798152791076009519583331081926036793480551942271055277200472095347927045329117476783176420966853760328437567093210050797501545324278847417832134911945491664256935774458870980223954782228788820493206215068626796635445382885560768793351661523717927981174753246090539650697909442904889429360991022530638169024381152043161258674623702896132988441841233960999176942999436788383178220725858459133541876514055579454643035482556992191121100914968221646472708749864832314605287309358308517194389623600466136059596341739073274087766230039770771812975262301279301607040068705739037615570121255569074356483186884942202555100103848689990135962144549383825764500110540658777345051115566735534929673779146981505982770719152170548198225813160118259549242829026573184448573825924985160482021804041685468324962995954858357678214543697615082432461030132288331456080389989621657090281610290816399164957243189126486731992482244705745110089700002952430367123655427731505458186471744313385633230255448747837303318004188247988757724431982217299397931717536317603167159933140885197532699501506471303480521401213341756706480490783051031601117592536303822348913862186415385287789262171468202504577398715220414549757099301435901883100830051796970323479118280616473077074715754571641719670212319804288191034643716569084718966068820511156127044157022227911951456101773144644812285973377542450470547250533285683185075153922678686350831793191108572820844488947931425194559012657192068248743230064170904699590852239002607581191356665572600932476643638927831216882825958304331208199649777932028084725012517915448004919978936540531893719564614960919142829507928034600635797993915956939996180921693261369276311945766789218122908511296983126801116607436927021636955373981610135573092493567770591226903618615530778471798228125668129735758335533029485692792622999456274422246178430571989429024545755267528567847356965571074554654123820299192777963763307502833478860826582255806223509335607926504996830571999683168382018577622978261353730790252278031915317738140237827188058882667187244747370552230311345169947390417907877372954328422777055749659631273293719518695354006195450130179851672976946075910909851741975477282768621837552809233752031577532114964391190391339526002139527282354843694760181463829915012391351112834505429185006570596645037358386730773145012412495880721171041961016975060067336528355499854856022403590823264988234957334858971997716654039967758071999589583027014895408536115121550968987439261690723192876466368457999978268536857269802247901205543819359090457238547796227300846084331022187119773768990388762503645186789226289842303322800231663848185980207565984190595201157382290110456937075929293532338955415838384382447892468101014446278265643277789542593313520513449444405251529188122970761263192879520004071318396488752451940440904868867929619485329510844477852042728090779512301020157904424453821277578823597836257728991455262672556835910754791442465106883249984263592982127661811482433430402413638983612561537827059852423373160497989989137861982392493683610539118497287694458675227439329720283146302482176834071760909216259983064414137766531142320597555174521273240580147903854065913449569288891687657229965347495246678628151620449978334043717903275752166838770424101569041618104848792224040439140878999511336616762644377332077733948926648267587374005266164941258605222543720905239921693371371017352141258426164356687750957017085647358193383906194175378254371944376774614523926507542877220963207285173935697979034519606086006467277216590379327922540427575724388219259858024964907554117142059491046555081756711666157185549740732647102130281467302381583863895938616714926887301456514837246008642156673667609468968437011846748405692097729862302749344889869167124924235884292331929563379517394096534507839165013306306800224202060222992043263214490036837041963613097591806546555186202814760195533195952489119381348402297766528540434735573008440756160215297575039123038761207419158540336013342183030548141655452060302101911751639750194462243217988574196306069348229212622669022183371548327528895768874899082356150465303758966425361877134052805032231495433077468900444938116302475744824924732140810866220650463261044149776753256648283856460917046511147799386808122393950309743483420343096194702729231937033505150330567478799766964381920985697298576542314247642301063412539772510126595652981138928639713290740130335204235922039986130229342931356337172986352010477777915846008446783514801545777058873468081382415630698757201784067180956265195322338980781171815341243893790676115655655918835695464321169131873938772131815161807030719589973899127168637445157108933055389358271548084588355656038871640560148787318499126636331698752359827265702032821809258082900287789055151929967372160548430057416713298515443210437118463257905005627816460433194805803970814202188735430828292330369399136588746229092998681389468312535490752432713577165589130797210882673958926334046972647068551317774572652153335458298108272690028067268690477134951524544011753887874561109449229693411062377099352449506967855111786335094557588293602017560887987700761508292931462832884166703179898011272017635687042571069127036762199988288022051459699138242935922494057860742804550010494681304987706374695377667282306349834722550067144273778240732510526247604589221372001768770974812141686534549588655205841142698905625047991934559551292276739854356112592789737266039091247592905279451099554480180459468445386696689729412179928656607770476674023481603724265729572558328706744931469193933899169318196550667948768846264574194242999364345295498521318417803548968795028361231233751820574567691462658273600626375205230436081209803069644398880597898960396403501371527698655526369415277875274666744701231159481423175575836523087087047851994229983323722415940681164259873833104677971900710498118798734962960238650288537342525370052839793889277526291375755918232204274903796938104439674303911627433045815241178419412266862599270080059284396156645268517685130644522208423902403920544295001288562965170250710208227528083211524231690773510396052271889021830092112529068679604767954334463781329183162136415445397909176377831276693369478771457668823117565443825232678959461667113584111004039367298184421739183314031414724094764913349240439787520670609753933959317251687341145094792252512607672679021007183953034643461992029025344847198910117445371590348863380520804372905626634492939545183218637260680364290633162617628019333388898541434543949741715023456817267748738117022308911797463641127874860735691884345998013399698681141581890802265490350660207715893553935693303891221071295882979767002925455306474226104222584944716706835012757596992469691634899440646529277883917038097898424011196697465971557594317673698204854531812239051403626004670781150885807046005725050509888945215298864989519456075030303991948223863556181720252050981780336328536532462695574306568780868056179060904388278834508381145954745221207622804669791614434253225711847090754309040896567274322742209464948074369130215227665045994718453090525756741862367066906759434237653500671111222703690090410607778573716779156851366696864197716456852384149907458227225772866813009032578277957386423248830765779832376796192634983211747857708307351976538712897415278047786200055485391032634942845309452886162777832278494783776125035595649655420193552855210927700018507372024407827646920608488361026439090311053227849170393808420071359548039165141490321464059776684396769350021595041594346980980615209231801546165520257292634485697440825078363344916539225295754380905700504316627509509186130306625404842094144639939214950366512106897693985583259685227760495805265199775954416050060797905182468757202460663175622276227563809914861948646348544707804121872815576302506551846198456597037375823726519907637901460895433898328288623223340406236743413712867167359610568658740016533168170676974591677019546121813723330634200897680285057562751660151555438138653352475171124149303922437415861774417850023343090936883859182700028977884846803789107617757817492643682525198246205140932986541664615996391237358893023084148834241191511153570738247547995140628268383793503116363566009189350136739231355472220868261957288128536153547630235108337413308525330146861726606038194762622750379721532732031905318064633405427743809646563062879919248986937168826921095352707013987048892889415310581081378810130561401513504471624263924911303501131810209925001957083133830582976294861285641474324608691062237185879387101804320702302670259494202379395198319569771808851860757657574947193298584630155088003240235338376761911471628866026238032971468159217475847637872756723033149932734624823413410236885233974100285986128659135489812888072800816922113183318991235783725724926233894848099206649031976200168230430007817318792513799971998885048840617238569892414627560709966363497795828118565437433034466497240087004061942249562986964901296456335813066217975068628964642670119189565979665689422000330036077821234332632871705754275260949503821304455197566272673769153556858920095391755020419716435429072008219038452210943675432859771490141662312370998951069098847786008484880987679460537634326787265067289435889438174682622963399822541477470354407305816283005204671809540654913626162574090536125634847228557153702147170909237201433763012376887825531615294493820098132404597551678132711766858929920730529141871974278987794314646644988340166501232126068805345196400865758330626218609336141579697718381965857816084210321629060819719496230140950666798299484170534577085322726666437099733932143133977231969764663485906541164783497081131239578726181090629136331621715985476579757269059139556266437451275652971879976587732894213959828584379277339311423243001222477676733425253790472274029512546974346439149298286800507422617007722262754421709511670176924159477248626874060148608601119980415540469210655969995830386391821684291729860819613971426963687859838529537000675918412192644328433601357056184498762111089874647956936887609379985099216765754387032963107113058255596944902086946710028707930827696374198577632544415906043814192312008369738487299864585080996215546446439491995693906056601476453336068911162406803797937528852901209895534895772754898362962544469184974707167327821650898598510536595980482274358457434095527122774215321988338685477895280462881148654008387647718873168497851290370159478128284758834515230513502573876687648605148507742128342366417845469993957894194903972738457815816814648387296409371042434703124515707759778246175925074245843668060638420150676907662041028445250208022056746687337086291659300946109432250477321325483957184851145725355717995542185903704282966193252727351733157528828263699946211848417531550845518230807667081455293390226767548760640771634154323242667475707689805279907562801566370084651345048416056756353229439861019349983564446760668481042270986615245223383127544016310174477313314928110847840751295001200850279233620598750768638681621407892821440123891160352684180563596877624680709678514650966011010813711571842916188162205796690960146648898235701019264310048769025048861576933480479157110375437296544804054142648031714566347913478281126744780033204690265537962947722632083414178101353131996850224962887738617612759668474008558110053005689610607805090353860730431365824230838523818495593154205702021563623653442018548208571569101396285621217296740845327793454040532011991764223193065586081307593141040450990264573423581127145532969340147060498337860196694843453589489513689108136434568960174711004735924429645496312302374622686796962937314699068237779075052101837909800624586253069370991564231150280530171163348464438491811702623836870963910131392481129959087668124920402642054732734419378531860288422089184047356074135013495594933456240365422017584348468324026150267227475452276396594420708332624296567249072025973427881638002549600106200938311700941858441618730467257742101461390058429469372569422058407263036657980065683561521173029405295455899615459430710711561866320246841819081210465300705045762954379537256865837860859099356748127486605974495622214740587623410623483078646330166697163341535114843686959152115404347941521973623248693694468571594481072075285991676029436929560162995636196279097233454742545660122784794055886355893003821850503305618204940121651211980294563290045461754241050636369597227394338775528580123046880517443843216496987330398021873471244480836303624212990279874588179571357768020969170749645939154053820286334230950386292259585523749932099268020161145658501621650197560176603333767843031699966862000724757853758264239367252270099254125594076929070587116082282212022648912817579875003477123174015469992833838587462651070087123723966887858341173703876964372503299357543658073478018924031714160683834983457936226518156929478146664463906667789454197523356425123332291951698644912959789076856649695206688104802739239289540386290712852174093667077467540158086923250478290573777080200138664075191845425861476659540934881835982372684025429691385142943806395895450362803645236949918405194347325744532199495960186118593711183131123604820462446627050062733181538202371638579313074599710400774337648939833858492579023865054637860177813988382068176543212732163678555985825962950506522539829453818087968035027127034347429650081621632922181702786077131358442886592633900809812772152139935575340071613333402201490746724068403239400865753935383657014769595938616867689546553597410277187409973461349178303898678533991536874460960931112453413306250043512376165231499117070213470818376271905000845956043549767438692901310496376989715299769191674102691047455694076124963691783428995254399603363876315328558865728361829259286468861347486769757745040007675299545695111463043463260668979549592036090849763373173147664933690743371098992960457768758707853146383849343907066106493561608684654824286107365898229637934332909084478977180696336621600116902559755778001207661907197049971466925232457438997535022612725794738253799921200987397557335872560892822592187239443793918089713270720464101521976182072932117970999422060677281254481359131701033767201376273263580596872465059175761717467999509854290798073649759619474023035484028701322895264182643936968351849272325925108106466563124454675519284041490671166340831207034895882969163169006164518674834672044706467136080943568756263617049344026631209827670193698816595537282503666230556156161751929013084283951975742996273436495240222290373400746580410467126413838448410289939805634878049096400199478738474705473131188283385564397813739363121309284978943975344387928189386704204854145956909681373629054850863069387528951106647709273482677171347355341864938753194419155675092846424793625032522340251345265806862182109715020504087076873198191540704050496056619230973540893205306304779994287223816605377482589419747804699820914615835844235916106202699396609023617783655305479956642918102340749732015062305718601877029898097175343256276800338604590237361484717120338852232033993679946909468102823027974629163100438644158006209125042054508577966556359482283849935893883200548864671541356007152581667759708654505133562558036432112429356845127116772659546320527532282647851008825169175687917097500803566842047785212792108806467357791775744225747671102245216057598601871196376523265857171243438278837058398191386142511806022425743328916567020834414715736306652733108437306307025500887826224207089936456018290581240357878965175420909190956191461760013133320950891057395933918273665320752957660566370219087973258636035945769981667336472249060453732963852766382469689462445443814188786038387315082874223025864583917933684458092977366774783658533161367218662371112222218878962686988124856315242105293782201064666656486844741489001976173470020492847854008468081051822287340079272791689554433132009340266346670934707457384296471464734444767471317751319314813590876269421327036852426645625409800255080872906863370499713446832827577710637373008083551983150987356859705929195636648204739033031531588642198734654882039999585028579445959334782374963496234572758789528397319301673117754911353094699297960435856897760342814392992062595737786080167843962575284848654446431714263165875544060082191437421828902574018233531260738356866900397899519251831165973057976438188000719939912285819495409035110790622394200857340653094253328958802089684161723485191715385262628567300987946408839743207249562004262700238532184311179272887931684788412797246854508268644298552085070465421115724834508219607237330919299347308063312079947583345892642594703880637624581767359924633133807958725826267941062902977158213890566603463497641792335821325356955302144731817969920260680793052744253253182173196296578413711006549247563987551560424833945443778251051069623726630759787052550372093463442674616830429446233211787670853193829717803604757255307460154720528604739242778752849710415743519923514974704101859708647770028930332665004916460578182196898294860937939027482999587327282633054664827559057309778790077337973863110793417474984960869271241117772075071600237260724806383522975432594224307984984627550220215473943471237121255481868454595124488824600219489724221154216637026439144765389626331596603922980193054767436637895989225276218884021515808486549485454240780764765559469489098776407982560776684088687199360377858312727397704696875686202166737714382005501177003986629774659046311332478852858824084180463550259012506785257655595375377862862473743868731824320233588509562585222016328178043047327322239090562389833213280364144168361536729436032903451028889003759770808393957674047152533951357145475437473008234484759961759699472858018494724222678562590801730719198664131909218454018958201371821522243332404092158933263278777425204954297572218950440363579724904051611799095297764681410527596955238182337313843944063510807194955291289699179655300208703090638653540698117959279641540207865618208230697174693670631954699096642864566215800678690029321838711536162662763371877710010751793467002781796198586773878949251580967412334473036003402178469889750137588277826155408190326788423171435617908757522665107080474101898512874282661372645850523733651591666320333842968662097444415820217859807882048706460650573553936143055681288505942494335489984301943263929960577203905999550250145510857729434296678839608046179656688355631465715871062571133871777258383119559183581369290625716915314723210241565773711465219284065422150582413995282412558766672672245921797543559616805543730875055347939770435835789949300531121191748568981425433476698592121088756869421813271563308674369115600002883350987588682468596316898171214932002839148785072752540240797143689649743136476549946766602547363227505189159411763077131896771808690991491783819195540932158572017981434789993043038091820857139877270109657082260464476697261024941907652225666186921365290706882276718420216771889610026940739122489878270322689551111264008323794175782252569810384302336695119693645627925261193506699361758415837990365983401524336797691927673123716193870888649018884999442520949784875361209122221873664046740473378755791601071413301023035565389077646003322678653188275031275596609594421031108980237781780110700391076769498253012450891838359715847384155427529661744461671161750418562131956658982320119642088029329403416677907787010941421065063442035775047061586639608237832491335449488482202665345487365523971842051699894930361730524262842480898388817713410003721900377950860051072454168881889217102782130366157741064582394831214540223454946405518560824535887951965494915453942733673084413901124124243339811620456367883004014742603129663888813571334718865538284323555341668828696232426641070775421739232174911313198328161857675961832439221940452256360853940030235914965122014426663052488187567257418639625869003255981221441976897418612442537143363759070371720332804380175829725753685476132590817185410488278291157630243816181701722223858850815252014868032090731229899186047838227160341936079130316519645856928089778904081730959044537520540934002568250428472012804505747353913714542848126825235072028855107310805920398696105763024348338493087865779871679104603155639598869891207763785709711111434251226151745547559813313336564898135181824163976517638057418886540226988484625245919250856081718353746116760586800715595233065752265993417955718398530013021573288740930583807731231158794458176638007070004494730024117771841197272348292587037420084756133830593944475629262393445348563784224885328985372292290092444407244406467406376224391746709676423999649776058519106560674666491859579747140132688398204604059470447887965719707667119146685428756317907458491783751780565630924603108551100034060798008935527222763821487578962691681138939191862091589204833607252117758176924273201117515237194352871816511316996881449943796942587462334217278452723431390714813560448802936687324196872406002616824834973605819773574681830025697873244154737064699020468604662179730028788637721444378645875255000830820118561904760569061024734173263223857624338365166221983134403227609649299921121077804541617087204400602085629914824304523501617090065324611761075194670709659034370686133039367534852778914760236280221864719742408264228024287275102908844106940180583474628951816465111798005178050143798576255927522157955207390709227473027704733557438824500509159404925435556147792754726593344409072288025535621413582921930700112260020290982121297218380288623238633819431418624145790566917547667341436623983362539548384077307411585140743931674530671526352122603863335554621105263140185577245732010298759121168092758386489407535928178615130283377313870296175854329763011837042677563544042474058497980731422744343091452217542058728614945878474894770025649333593360688258720920571432666980091299236910532559651672736576435514033657875923223822465391088958311959298965118704584732317151711492871898553443349402977142951286423956365832095943380892578046025956699142372909681829322742307290935736372753397288161297561157539261364693602842633003925787912844784834913872812310102285225192243902410702726977548439299439874480537634942681879330473329374159161393494221642944127893079116210408415183328224178153050652699469114594559176037607379417069308441692364756856970377230525397463729138467154662468440708629298102671656735965414825573948049565784501868967450918111833434595983616610317287554423942449347373106396454421394798335847607669940561809352528360469202256954164491999512367155191262683494325121802195581785060228898058181635136420041712329499682808147397702203773419919197854417403103546533464403901107455989763773421844525244528660443716179760065266008850956151842527147321433530010664029514204750361551080551327442401320432474435007539258748448215804398633643695999535024070917984218096046572103744040009890113114266524658602586009841271077901616460393682277966955886978606015626945152630191062905611777762182963335547605391577814380988285210838796934020466881045264002373043426116943867548996025444031603681698817893955302169627027824400219908787809567049832258512702944832459180745069490768147190252561268998415771393442823336192519314912281970457284106116206067242343813369553892368543226180168547699898537758428290773770236794409067915285791697747377300483220125024259577957248548042544208986217158648663306571681094750504989652465156550170568373528228277252663699762187007006190734157634022595183093086696789783089942541504732879990939444515312748902684368131702834356981553385236657042466586948679549890903199571938942576870122660497767565285315309982798388485008462759732154183242810825409207104694144670620949451391446868155004460437759583816867070609862211567335163045112496226906411318322793537842618062123422203077013319452162936757978503763430494269069517410801093288697143699018418607874278072379095425846142965303647073775324175440391571815215267034023263858803260834026363558530934701144181310211387119995687585342847347149970389098419364156642813708564404495455205226210462392814891224611088387115066053782544225311363754400800271379805404253380409683597327097351511273166282510489137605038419195909121092253027344265923914541319421157772308364528467242916705258949307154609225468962000628296163849225810392035273198391223376475236488828605331104150266874598488529756321622252989901403245530376039704439416849765005186900042763111575518268643605972909308668590852175538908883220094327334460472007300174539882632442096231520004195897773303395208518017331571940950387305509751372559131402455012699881944454510524122406843706235141150858275266590198765723221912858109702267599258086756850249151410898936048209515783484685595183430265921732819877646444715501826240925329904998935333083039126526108375042072609905699067175354897703640490014785332628087590577153255485248821488301677694440457023115699720301149496920216162440697954779751139122654866171583045614313049575946265200709721586402337162931027768397376132060236373423454885558291774822751518090017353725066615898210815291058734060586677196124947745288577444526675900087305617646155033844264602590966070616069409327093852410585382022999997709686114687523572917284200195757585956349938574062161922886285794185272634359167220397047507175089078092231021781585088928439075121528908590856481169481850214684055743974684905783524324365504229739988614555467508106968979132884649287652734036445208714604189565793324896696536152464041856928274705401673325705474061457486058873080895416387135560272770564238233613826507941025001496962789859683058710000803054459933775413472184387632227633748349806156516168443773009796143251328545495312866173531759125876258358334280194147323039515741586142520375917202225571989885290882868160952007081430551806772409568489945221577912779856252354069458323231972682873504777242649658452055663899161538860692268139598260313461930379182985919265503790523238884958311141868089862020174448752945325598249066959044446344597092291525001939571775155419971325081665827516173194464705951734938092307112653369587846930133122915317325382165462330242230100237439982835018758088283297640253491135171700423660416749181704043640931718778136508460550498435355826906243947112402306507620192972973768992281401167553064186609281561481359238833557467514809223931856022780021106052617462223268536838721620557601352646442844667536926312962415767946958942471884516920588012213454347281923567249482729831028095394860142967377542595437699298386725395337034488062155741791618709686519292880451380372520847143010288936352424078223308854206541322372074714599628221497685051324917048545170140070151442407539516303379670076904277953751510092828916275823855504287622979492907543793437904143020482472922664648794459567060965257053512584269473526407179241554123453288711522551328879719432551213181638142681586941956213924330036923220023725155192732626815141134953372908989991243130815332176595215082794506647619686473600204534128169880781404447053723043811167354722334471727647532944358230210994433164654491819444984406706312084296847682531685801970134606257771186743804507731461321095418791006862893176901668773383231516071183474168156009984490803190321716914800590047481147663855862361063227161055270384004733681785851892049499958706725904265829902711821867887252581825047656900501531057171146494449607742290220250927891382568441176604068868073983179863994573513731793545301793622387882678007417003043573750046889352186725381703980236322600292175224283205595090833120772424316614724322667795017981480616750439386179029616732024258248878750539578345613993037885884062842780960102833211023184045812335254944846292682221540772735157835422660990793221348257909910963105064954199855539296039233761288592258057539232208904368266626041299899964300961103779426710018248607431274363012012278103541256773996891282467741472570233532800744776713564872999665292576841334162835385062016159876932416356505594775343215160341502649731917486298255849263537963953964178632914845372177028779536641132064364364440116350367340612895837586330626061569946170497390625818636438769539187554572301728806299655564747593227754453343286859782527238455958162422274819599478145247369119538200068425607816080918081221817991306647337068592041274358582197789122669114478356626178068173051554587081428221226902385241516156298899262154869360528126911794136260233676339820390712051758818017610276576004440742536945705804032721650404250096050649107405030133179396546741254739159994914235134706474154656091569165388430430924238821139572722629578914488477256987551436384890278072513657910743429806938717908697426631068792668004941594805961502397005299989784604756977705619328118983029859761990376911104998572442238008570043090425436330302339250479594780991591581119389116221838982713879527895469073747972259939048786331558448211576649787925949817547186038685044894790809231788675211935103212026818659341021857374408830014690369134989697742907281412750650756134402733965888442112765649521424428255535501004568335455127537835942262263574196491201468052520458996769168556685864698440069090703618030447367375208780496466235183497679193329378366886193060599886336004833218616150950763450931170851559155007168886663468887345173522737730204012314032620856567244548253531778567169666899750214969504370051832253186450661392371269560358575381445861355671021807113413342335021827043461669643222696849944765019898073053498861438375385383511073184585091745275476461567675513543877914900082095575057908389586624402539591439031248393889695692915034676265718700553012477049013216220262899733203710660132461802880454388966293761891936231174772864396075942568538108918372177582037252156537212144212903120642270937440852274772288239560252282340721962319351527632023793031091551295512394662729492033944263226582386365576565892457080314827669555782952253713082535024288635906599384669833845223112102355871016130614951970975437206727506521689719233759133515854788261600724322895125512934083693108597526154468358390025590753781406676288502210754319737439185536457802908194903769479406508144329734333553780702288847503216691870807956430239147439857894991754427869053389151295574902339808249037774765399863492614347511046485701580401888214462179264586625758435908109035843553932996002220989912849453579429966389246091782001127271754239958167936895336231386685329845695845862883848658396182801899946257399644672363998283754647743576759008798097947036792923675625884734843245054633496933366609483950061878027939861824323218732963960868128283640137907182842173287435889345772835901243470738280342555818887836244977449629023631279577032934044814595115489567366656027505853584990589715388552395408918324772034084228062720706695272631836683855080920467403770056248027539443511209498216546801707406417553395533762136312133668346920916685411782020261347322905014794337005643083823395653640725296937381962600728980099846753142856612467066239852212471722624072818400309064892539679966920950920406929987242252833371529418448540957230446161021487994530980499375223360938874078747244957248152376470478755190857055789673371223202235006196875627562626608531596007109210706801949257044444951660460501479655879220864837298243657765689054569970763910228414615722302629037963875483235310202005729651904543451680065106305704880820380444843167049127150107529275159154621151092943768204143733109434147520432025632085234632174694464731204727063537102607216211473572611580145968489605085511882909228840337083876498888395685017309892411809653730919630934137198847072625552926420746087800541151728767986224412909849153168554044843398018400477040393322228844634278146687855515672963553576963506818531450593902011323596456020537504916868079374027646698268694999150989133120032934275766020863364511961019343687018422856305808548894935269891717766344665488744893390610404847520429346760483445041512215303513534258908249225211874918381922984120323169632234472486335444554571803607922221579990152500844432252991622418144254741662443515364298446901010646129441801598559962549650038130943564102767724491540663625708978155357715472874709887849403885540206335459496204824745324230421184583478431746737957476949843992618848766300504427521889712214599569227164482972271448916718030577281971766331213084472194705742017243928794816010128861808809999667736071819058301266354924384964586234312927794877874098765899148908758112600047880570136853790694424129922250168769751302044452890869184943555056382566716952037493243792909716941015379007197687187966323150699696072118597601508199295339390834951935968364023347014040233726953935958135566506916477305184409186981412913874136081751472410824820800709206917595342627081045989095544986644553030548788674776929574520817079810511563737449367381365470402067787085422550894159576428587346514139225864789431688706114185258066306920373924371126850179888737219977390906829163162023126013895533770500035790534130905431767317208916804061526503677307945681894050273745408785025435216417166710855894470287338645100162949735271663563744650514576343028179661981448695791860637424120896531356440208803559473579478747611151000932676637312672608068235624871417129731407925202365391319116348106241607386364042359822051177307921843593688184670579438138756081804497868514333371986912478270838776960231577547012705407702700540317202312215687194651723124686005887434832559245587371856598089030674196476998099758797890617470959541204560405215959362275681009050828518003243855385102188234080174477679701995998895595061172215904666401856262414746355156219848775844206061802040176713654677965312023107004498821647593303588117955884279101394379357332519367379614236350402644506159020993351778900381950690080233437103323132775751245028493431409656816261918138640554699430294958339911154274354939308373743193180061988605840931158019850100015868127267464213354762868525378724810160485460327285452943185492070928349363641420495146420473721450713744020361133400519350348415346012847554571721396295378728398096093430910647786686678696467105557082106753409847358063698094681135528630550300511733027045225317223929281181450628661721110385186140920165328806350891238084356831801254800199233735030442671041903977362904943935488915124079934486273464162051295752390621423206647083907098411869611654097198154222026074563322274904412518240241952942556393751570151921376397118548305517039512148703559837491715709244214244718408251838872126700471655003924941167349015317635770265236234383015420485534827578602848420126635352387593196815167203646528530329634269982570261982658588274730412950423317266253805915388930219720839169733282029417130730000483980155766228167925445309317755454212701370639266022638022476200879979742182032558978686102283553679026744997299467488711655568585586944536282753632232645622395259806750050167035022998153789491465529994320673077378436417941547996822900050004465216767141884837843612880670131179894168864268734428664096136364666492810167194527417181703607068046544682590399760200729343707481800010458141772837548603261382045251674170923292818502013995571052774589160454132070597391302925785641537208722418832348986537011782618657836090071269021379185282887532940887805721855581775551551914236303503010696653025116230267452701869688816361143858405414623440193861826236452960348058251617149953563418297014342081139736767601428975101534084678036729498513706606728710048769641285111627361233180162996241366692832942665875905934827575030414687213296037900500834261006694882134450863527909880476587811561668583446016507667203955339159313295964763244809790416829811583487087345410492412974861289703165841870532207198192433228324525887993289919978814616223318786990762922983696804600496029896114753500968159072425117468577095581638582925296930490711227970717226341703595537506522310822815796438171185789564463248556378133651633349797566972356713360172888416594101731398430003094266475453216339868695895117989235842322543006105873287198738250290614456421710471904121933720123971587232668112859248617198233267449611258760290670151533301113472250451416012729764086659945659039165569506789746857704769670074639706166847661565023537141472209409197480226113873129768418212389510603882212250209128915488274649422483014270195282689639931995878540907564823679659664461630118953191080217255712700849816530956610414855760980318421209757892123000342093202560310002546250926164686012236134161148602483416684540710759121202382213450056092011063133167076519804556330913222791664634842642955659087758311642496049331911676309946514871018275993674267660097151360837393480103055968053133758998020847532352849681570179823099676787980804237123471737598357070206934505882334166646867546922808169737943083024346858163043969976917135382313256655223448808875569232077344241526356274860537734017948259226583088908176465554767232467746638395386227847366718470154946762069171683686746337029166465465525215826319831912215091542367767390840478162762600124106253199322364029647159622333855866958097104823486085746338727382113114126694574355869577107987172495100198965272237886783093235803475723393970716278762971998817410897703879521701907207462190189253738661724626796800290457602503046083444915491375968370701560765194747070474983215511968905667161641924063238912496322681378986458511825272530956914450097815582512649258027086048471132690500610482662165953779646103715533769246923907122724787413914664803698024386592888725995274285794560066817915471115523870086480231890175345744044917790391969539850429430140752374946391805769779075040514285272248865394714996097333436434223585783539294723354210463147413907026139805223646853676571048085356933053976271229321553927088758980468214042194330864988199288534536124447894225815916454260207413615435389915708499460644132831494518884846192184589749506766036133059480391308447700179740683198402416345019075968879001418481745470578957564112195076114032133012816222887112258563129525469640657696691903012672729927504828756730814568299925502965251020335543227557885156445087951915165268242742655659556070203564902298765625133079249417940813268156802802890317251798642500761349279890156814780333049580873241408668753269601234078189755629345410074732642719642703236153175206200304612980039007707140112214189114235811277986465776485460041459872856319487917748914738799858212978995837020914108300554285623507961672833589220548447855787909627357094340696327286975750188370922577072279148742607183156636835797312032317071878831265576459176177364680226293290542799516992552312614981447251764708576242755426211301056828795142071559146253846065048957654631589201605583009871429611138130367597923454864260143790203615126683084287531827379727749398603124977597406901783922381304024877775027444039913885055981435015872299694796873041871541255246321767336332232611483475954892157578297286901476914537617403034334791373498631862625523084923914079965879720358478366182546269537686262981435258426820104672405775265819601652678443816080734583647115825271703120325209390003144871102539204723253714849438682155600355794236426580871392100096963695386136272570021792738880825956979288601450169155276247204990057309465014590841793378551419655174797853175302691393017079684764191931735271762169377679211594513704515739825899346736249235587268671957823205663154994336323476527247222449610373750662342084748931892756541415748857589791589888086625624662213673080248232299650685338003065173992208376065125819871067612919796378946102463648893071330012308019492517396676872127615283629618247891595372095090837443563584280764716409029477831762998934528198382587391989327417306572581124381307089322707495725497006319528885629551713032165090833973545669510775828563880939656047888564607065772202767142096544442845947745487517936343059373552854277947638171311259994777964626506168424967195773294953457534739351402281860005101202552004226424331309591549497709910826007411485573121136111256767762649622447387339853415179035322758032471512347820643591768492046336817253138856751161667809816633104045022711943908661180612632258717462477721487117736491942385973540188561759816465212911459909856653675751159769808588382110240138889716383353545406759085899171548123348051993508082767894102352096434501866825981345660166481474905460643435045721468414938665838835378840001884287662496454373381477723399849768658144201614240062819806145098392608675076136056547343111001178607711004674835492463387177317113404905482373788366240607245724016984594862652660086517595760782072375778011346501793955853122864049839498530416164355461919899716030924864492506677812893468392297467744123785037626294465322231119083496710913030711201218045436664338387787027959150422335939866021924335819182033322230365553973198994731742113841520029916892806322348805251690497440217515035979996571709354905025745867720409119946700894357823745077587702605448361985904739493390986956343690206820780704204046629175712499422066425966064550726087712022710583759082737299115484042074433732504950348862061022739287963593255517459743363113474254066547529807256808659791285634584529099638872310419172744811763569645112405136857164629430174395674705280133813173774747246188731583964781304445591130208898663911539776039694330364856449401010249127196219533196829487653436141285576887532046555660576929358904293804330636950312120068913137887390456213688764224591873916252205741809815120693886151956986280984315525953771115529169954659160766071698680064173052940576132773123208542846568132029694148516632048505118244730613529193813258308764421802871255795124281566248370079175846502752632149919998533273761868595523240541001493480085561187880788464764818206671273452908038347777501626149229403117061501663283577889017772079325302686819345627340896253969456167204688835656998371397402127456791139243651669067940304062840065319204159140012981966380234154580561682592569868006127616707416251661311249399177039372329235821657479299125151802431348043768821236995041509947307162963909710072973946283830524919499603766795234403683371739805117848376199595515598398178333374062303530937110030061846142940113120224779769091901016346654496218548919222762586150982205798741502340563321681209587642561581513289209933010637875511467729034659570850167029671637239419832699719393267653747950648204796665389939535745438116631159523741885685785066086135654585622166711650779630825902128325332742519397435315680747170727205898017678391917391382442576018182424261647537705897870856422492442436708326193803986105860886068249355084523452403662419891743708577298964547062830735465120712204477133666391042460639759957784921542979304014973797405560990503677119157686244844280469090371960050392812017289908890194203638258760883644150309080795406386445868676759577190149373077504899939014676728092633722666203571584005328648544165322051999813216145088232960771568601729104732895324204827794743347281205570832946785198683072958354636341052318991552000895117068523467556427543101344248154976430075078630277327106863925431574142536679467309069409113388914439521873276761178443828185168869311939336666888952495176596164583148102337891576504252220397932034900059361589050503154131616639055946031578725228379151575634782315984953002247444168945695002194148805655634991221114165281465800286631574787481426053161725642748408387017345536742761993746125448397568453513227082517654652950836806446314898522297283384332398044053804352155270774228521886824513434615062309815247665372201536498701532987306383588830592409744211095053745317539565702207430445772199289633954496046757722148612081044571013887451470423645108008018248595571088525235032190020056899948367639973314725569420455825656142180897361678699675053013215303905297557417031977169139562710844995004958879082502617698737923108073255415501731559183167659297127379891563298550238046452829491790274221443091463467059956584209282463416107726181305443375958973864471032121902140676834278789754546132074335984796578330116439569730801616819679889186068457224441308946293345803945419976702612433485239345990904364092940672003839345711213704897671575321302022877101044519474550937070566470413582525736271285906296138394514119851066183445037542755696700926835296972289683140709207628896809453599469421376883968357229829701356732355652943382960447776932429305017352834885489412483614798167205473453645492286070203455068736834337921057228037674060486335160977712671902723889536253794063615498281846963055638127465738488831956747553545438681851568169651408580959495627441475838250099243123483611667988974093006829551127412844236020395069506795748381478935429550776235121151794879956545291791058281130424873857147607134694691858031845092745221963494692833334829753570568044293030708769737405752819938637903648169085964611367491163522145921155740430627188381341363221966219282932518423915926695837227267474905311677490743911811318474613566611149425030586425744102927950569454559331243018749645184147104738253498046841645194628094361996559561784801807077115638265064785055394625245602616089464312807424772858784075005183673255287054368863524021641815027528599785655957848794761587149397428062576114528788639788742836054629796789060314075433539642683415074580427423432443409422523552202943692644249396728482882557867483716783862332514332669939301997588984513372778401773408395639434473181281490394158881592702859534688190233493583989318400153101465007505793098685944271385653149423472745331223863116249028344979966545125834450368599069826740594536201507344600614864987800211005404587635169225932416963469222603988831401525655520951165613895946150239491456372237976173767852397552944801193416241501360608918058686632778693090115782244564157197137144706287439687301389218718913005381284946881489151978645934410128365418227738560102805401726225633143275579139566007992383614495763529294951702093762894249291103812105116263876835247652095041027448138262216407060717496246392267156761166855107805880480988684974715366374770903395522997269638699514959591845166876594733484441102561753169948658775726068497215352093394714598764390127844605634364757462123573763698797242922819726081053677961301685906907512997281890748117626395830812622491573978693354578749995636730533321253769690336644318808829723638355879929516280558346379814678872784484719187488302596107455499764168691243068733788658288859309355692466659691828139098557828545930810010526589416232942549933390735870388534475252258010264904243300115751534921775397855313042474006791778598388043914073590387709892874206290020062199490856238649859236186352794809287546048995608086063038170477365390574560142191018524759598410380294622882702659591099769836695855797186145881117428658209043732716912562881928522844046077093843992965987009342621434529578370514267311995783511704550059497682405786815368284604822206026778625020907023003448708192117750677234469620311822484065003476753667882753910063030552778235258461043457693855492658967269804879098030128918429532393364140205914761615515598156043430389061003754053501376686907485800955080106239230717654475896715256878721464817356060831403069755985342315826637367365351595313636045537446179996004865343633275735462905974112174765487086225137151614770674844477321167604628084803993263184744904880399993667600083280697127908857426475156385432923413563546978329146935324097430494972865138702331950622756847766810402808541044233287081732256870264092367543138433063440676525357405094912364505457550433146029627570136533693890925004188403941864139781038035369892793213226242999321157884203733097563647337513536914308800146882466798236954179827746324249079290408214342175770964097912917122708081143232542945315360888737390237863909086924711310956161869757442796922520898070684000311794734481505713619261873929652818511729254643641924004351904060971139539295902937823623313145523567325674250681480351409666284958447430921117078300435323549198535774189367205231914353388405151460541713302774706410170673561324281447854030347167773547103074238326465984230053548613570063209312481578165962739193286927908353355007408353514011827435500156080171087332682911229003418853367606694711116193178273649447545576686170204767736775085400362400159420732776850017288918389691985906924253081240665079933290709207972647356684214068806762980313141774028455097955766899029206398836511808301292820038771733880298682636691887279718120545533332251875122663120875503637556642550604703679969874694796100659701800816782258882873445815845401144150557384245696273262381654986451531280620557071693567789100806395121992394308725211714434546974740158638460442427591101246377128770256458529561725537233399168067302640003337769925735936911979038709027428640412583598757053150013555004593546717208056564416362768959760316091788173188804225031836317510079032349918729589848859399475808206938879118554460431048591405304516635016746792828743647341643232004785197569480485258156241866859040446855103732460161988364049148521802278402146972576363104849845117081576805339218134756987071848753357382229214544192933107059710624944339127268959265197239053736545197520713546330803212934862191458474656777301906306470240894871687594470527801105746571496808253857557595735575107033932394931432467860015186185790855781194767152249561021045814139197698309972870042192898525478207437998624199407614513440929517552374128360299000380306918427109838607729176033166584539513804309067759972803929097360782973054858853385186637765126180826888949614271079314193942441324579260186367514109976327577318564172464881264324093759754077819821718882375080038768398417457670696220967975282695808636791220722290456095168620046580584272329132507631825705121523368791453360602992359249150238133487122103824654204059954660152364653227155130202275630327110244201260271259436921860356064556251124760119013719151334904932011576970719615107806874867336093489767591044306162163162707092803998384220366590229750527824273932168064176613510094182449716165858686437051723601423421723348992930325514017697820269259489562975759026076232577037889709490326000953945646005500703645220076802156411667161384955710821668431429881311495588259631343990068331017443671175953169799575252203917600813747934322304308240740239946345175048411726101574613183318706592019163898553926142496827207931125919797791979615913795352294595846740933239028316386815726317465598749088419345938119594338561668404845724319257998658546821631158398579085159400316345237804218942883662704585822785696779984514737781051773431517255338971831112697655062841390989693446879123534698815077190994988964284841401307830185825629349926318819819998977837899954471487294056888577028380583749813270561485579278274943650839681232944439785677057797661013027110918500265425444127817985880199503995120829877238631690659965890253982785597455835484762218105107864402842949170292056627809057281588962074581628636978216362727669271488519928318803973225639283773082970152933478664495784964029933422967788983027180279134507313087548877755344564369665675946630914277560959074721555304098516274422165408936686062686100566708361621603035018291728148833518839942942102274689142929482169376455984148529548457514213273176547530606296953255001476540156827323083119109160805993687146222213521535543196157007508359204897279574960891263555832597287094071130047498626396025997359326006147956270225117447274695883604640562269818923567893805967662987917468798844270763669915606592420052629939036125502619663259710292873102787594119086454818883080819598823721669326740322257509193330269477429529239945613196499845882681332528973677674539246169918021282310228213260771135448818413848375943394366935405723319311655470277776725126545793167769884541477338735622342677111094207116181993791480141276752368420441577818202986815345940933095221371168684632050945221061760954982332795973908533258059929536886205799288577132212161755052598552144515872708087383173510256136229582973524409374659663090290481851063330231187525029847340842592471266269601437912944770201494305986307492668149655594666845878376648733971506880515599089335684998100240670341357375712132994469833214472017024656183368078242535813643304632954248442588869635023700304319525142273877091370962205611356332228056250433988884493209805770024154309808189026433672434187926676610213320617626198055446100790683846100298933770642779359236527702074178782463261466881787614091677579624015107505091690516175772160294280852713301330335145952079133323223246139968019461442792502148291839410719380114630584484994500880759561941761488784625731059324589299278851086349582272596989983909957445693030197432065137474853480295737047155737650519238093292332074074056095418647673842657005148227917195399281344533368226717970811571015573279510870697085221469051857235069567013689988875672315823549290938028567406596615418028560504731719309063627136538988484607306464010060806726260376265655168608456417992957264533780078580714002298023475530047450777122933250004979802658417731708541569316503601012828205974735716110127678740929143583953426548335407790654639832899984607990085379648903202116477549602952187652201792799596198846295520758459773727029748595868874410130616913589798461578502104032370483797308782646960261300372161023501855277006003627513167598385244524384512678538873848352880288774282033532281870310702995550895266577487629737815420593291481588924388657381572486359547222859627257976845908119034765947030836033112497514093232100572589794512755964464625917916969256441363616341175040757491960590206184437089280203481781682196120149192152114177661460126698389818486001066533127293651531950021504959391904634666879073260561599468833724688116039754312139256897070810126406106951205140120719729612062476204535824170660717227519921338643810826713855778481859842762432615662799505134574327959539093615643108713130275492293922933835086553597538367981032669773731316578470137569851987071344047200514328272956444831721655577707782448319075898831633802317123054643183707232619373413585419674318518145095640416400196781867552779347504857291731360316053387958099023075844644269631579837622049302429064105763216841799069364433381646412613471093172662816538984914027265615088409567744218590150224769194230729671437072348230933238260006185890050584992932489364742336861296209842717237206063439177365464584514217289493328838424507259151892604880152042098642025757774525242235263734355289584724464848195339945743047859907133438613837347778043975297207192607264531372325631731573450340416233979091585656093444201255402905887201815825221241246456096909029226994917945488318863840218233072103858883262573163268082592758486279940265003300710969773726006701689847981737609110191888337237532496800884393117626973003764457396292622883486544164843319860393252054992907404169524906396861780755219852563514229273296395609388418383946403735841170798326191441539501729752339775031752320610320425209569331159782619172552694297531053046676494816004540916577479747727064879357745295613123075264023583978383254573191034837318543704845379357135458280977453686935676301925402089964619341998954168626381362223369735857819813578001132434547106110457292807510614595402411887601652798734373747864436599575573145302478546153352720401853757649674124637872431791572910876006899799754982496635516724802406815913684354908669559203153442413424460279805010846112156834559269909394869172351091184116269298590045404283418543086031354886619255418916457475838305122984113396318777014617999336642887913453975447127503014348204943165806203193909913478962146534509756607070386445929288016635256702271533725227238111041562861129128369983850637212302822992348373209858757719721186496178569447070916155830429487347319509377256402338556612557996835707541960970087900012012470834720972601137852515667741422650124480979593867551483537762651356847939596326598434358644761274527903491748587625354494828850381870337900175228888539589390801092848365318450432029383679571380043446233962312920403110572872441393182943511548984385534097215005943383942969739000818711917289083692941803846479348998347406833582034696833851903375407893478938078441284910444325407551770833781237318143361223366175343480675892648656518343136794336476524090965280137272425983495264793392539512938520084867617711782874701978120946530913060504891385712312503924061919148072041651152061604899447347553664130359538820597414577018909653075427468250191567556303226119141047735594902595979733611695955428100301685503564070960121495173105630380476973596559982893913601843353610306640180735771738905062799072685519696514831640668416506604575594657488077458713752228870312370109743957453657955207671246589915276119563290492368192267387226514446000327598213008612699136711447481027830516878075151587708762235044977701268412260529303058630173481577000838727153777052529426524733737619771639270413558895878522397877787299397715358196450901659696850601741609225879218064310201401741573247800106148855697667771955388847673827883954161045041177507712672628157615515136740987383139709688023998706396260933975044784766067838726690254106905476680503264453879500549811444132959062601402633538014837578463888590055201132561494268392099907865484114574279495321052833736764786917824841331734665333007008946805765768922413071084542997723158263012906900557857020589858029224776624929384828039003366131969212900229601550019744146632484792444312254808634686504831085650406365233125281171232707573467908920599890000255817428634847458582275427317990130676937291717882320123221492783950637475527156371499991126219427835466692438112580243414124556225289413675574564698997944250070987557062722560668705394514007087120974354137557329384402575563169062974387436399020317446879644812457888840976451608214070526825193768388214774375864421243109297286766068558617371913578516233916304358175694500970485911123858365230343188206064007364985389082082539828470017448271258393996167450129250620784055836541839484625859460856159052621892406450490797711747983529793951412009415165269890309967878067921433145790628813565127793285625613602231404447919323990900102511018956741024867570440326915279559615033087715183370164549331879388788248090892045069520516369325156443893130967511037590571464114556958435042299917032760758709200327774583754581109295339767693672102672522507002421286936987993801991297483256620659315487262949941328373309545582627473737681536626721959401342652799218836830389835955569957739118989105700076541106628089634877115841138812116284692908888345503315372947240074970940404357228955824607875046724713188388737588575824041629913719339969850236602216606462593310302197431991118938819778459763093525862010839785822243052795800720449897462134374103959945855442928836311943173468222928014253929783052480602946607834799151414948690808027796765113101326758014631642801579838026519791704851511317944955906659285137346518916786366229028892714973024368690382025189242105932392327530569664967650863353191117977522098303094114623297627436564606325233813929096864207788059115325894580737434709582825071661986313395659301560860785073361054924358704683308090812885623364060275411727893826563467741128273407234399541609012920389597796840423341951876441976440231247876874629233286640151014890976453390286834200264985111609019419391206175472613454827499802629638839598779275265484823407298117784097045457510204741226677553330804880160513848367955605526757432430636489473369459693654848514736315729306024415175077930491131095232769212990286923682323565926666584098860514603775742685713987763766333973736030106270754840439185150725040959705267782346172717735835697146274300199750412482426535640489933428276848348970814661546677502136155824047297358871569680406555437086863245752655384440722886072783343269794930503540598321939857741988128643806780371945144127581220998320267380963034878185120353930151895367646561880091719127107188753764373170761466556918317619536987086844601276362847612020193572505966629875894903100363966607464916729054931356545517244003084316257922309828228213501597169998646934441295495246655739638481830824238594125724347923769584068630612584568614538122746043282462560365974865948008436875368734862105243976693311338076423058475104098048439313703182988352326707489574042017887472046367771818476190129285360752409040690410726052088574470981903479062046910474923479159216321681924543882422199023798626503286751020352868730587644782720949253748962436793606910738222200906070205180442535636561864942048383189055404306051300086276917569675008690707937916927504122956143300298175864026602234970378314791653030438993362129367651493030310192270492470794956227992674360864711956087938062682517752122984582018332675290399936850295318671541752034104289622949951522321545483943021169568721944651760209060515032964542130469254728017933444411284353890953444888350940965934381193996848747048481855267029796636099052928532684154254183930347849865844412797001135988416309304038563305859941659233192829743874291994028658313534120697863740560263933257173940318816294536744540574851295534102987179893829931349497339455669766247129300028956690098385335580376158668440099265973599924050582614024929392906063856237840345918448896104313341549798178435523611844038817908125180687407195885051487838623561194377711685544487310044647937057910959210450568975218228458761645816382698828236820831853071284666734114915867457189795817936345049465194835820369842601588356330318929696965121373623030230436752557143771348974403772308295675580756547003781133625734725205819766103490652058465278827540025491061326518266518582168246374488366783856370082886824758844225600400477128069103858039524501918098799368580969658970696483737815981869185824848688254516483437681321987806178279323019343155776524113448854033018010122564799182395376037880615951844810196699332052752191267212013271158850480125545018778219704836218950260811726872773289377159257205516303293456781880396616828816652310110341473012167844393021844021829109145166369891464048209204900525096783814661656126329541634625804415627417492786006201465588012365501197176892961685606093650898786182685710750263625652194932028729066759503951628485399872008285108069529064819713940363813060211222608978987975946301041505749044416198857914641728167614417778912873693211821711878232561765482500418733409082436507555201698403296743485457576202460317486707382132932063985526018255072677349774006409216029005799973679764940997686805324717679998792098614015214402173164965446744318761383591535638336773964259856958761425907546106201624147995227092658402005224278070616116709238654784689280715603138704558381499765873500039626340115645153921425373429203419652942236884103492432331061900293268203270811055601359021244817167704001202364405017784164317572201172717857735994673032022987689803513034183144019185485110830773661995043324659915855844756426468681891575002757587047464498024029115020779415682752405392477486462446651234708787829091971564770471715083638082955798110877444170316071611417773695588186507914006141481157747812439964913276392232669528842411438830123574570233050527016658632378099861557725129637552784963411833105618142263688975876335100564987417845780079696855324385609924817678869806715217375977741835810201666362546525896041347317962690488362255394722090381726467629110598243841483709744791255129470778800521253472314801153765963692456384336538896102605282370057084839239819651842391163458192703194540742078946843439902176323564076190002875003100412459554423429977760677194405781501106402441362511928783199562728510940649019826536449365494184514614928963225688336043992111942206454203755412859900155093506996376211674636669511174346026339494749335977984617004784699806400783355389718021468455814423772052213917627279935271747761821340967649646461612358400738549289014040893055915422816840214190622380142859130195639730920964795494555724595952489506480881154285706795290536047301129626900922920179624141107923613873502961189290807341293024627251616582796005757417211139416617613816598145621660817827338743203850907835480014086647720455010469387314750795585633195964337098723209488052781853090333194587738178675863556471286400065761334930858499538907043081599284161207254751207913292785198151277961104537504435066481911190118292498767988847696429175448084191805381419790074496497985709298537272615861208035834527134419715462728128225032917550193435106621853698049913751098789432116334962690530198009455804634659766377710923268036939791600438498018012000592974078108823359841520651051218832637096895940974833934285572301847019122020651619163603965018593809402771612042286800267560587179366626097669291979779624415510511316234918368317086476333114444165373463087000778836543680333975603135266543026405628164864843007911622150705173011881296567355822540207169827315779100132346569514984707618576483343535009302384729762582672302148135065854929695845610138080639394853709003348421665837102712885650371548307785261586756726032201510232914158562730586657249107661221409414752822359264326347752049439591165682020318244923717331687892876797422160565771231786494172181704662612177122361706917233778114690232124420542896510007495518110574915483120321606280445317245318446134743131984225659283622792275597668778122596457916415968796011973113720243405527246414600042813629301561586611240201437864713131528575688077372507830750041036411980906796043616593192278608740083806977742405655536896687746222017117296417310602781550658671227895435023388286527506703553587751340546929250333215718603387854953275997610659666330643594602261757511638851566630631401204756700971455354843554335738209052235993745523877119100120539281777301774044946366242773798388851753443446015735071278451717331049289385397136244399852144056365807022535577363731585438075229640736283087729710698764766191001946209160649106009557202351945048042945120472524811048873773424465675003384437759245242772646002397630684196671517257106798111578196484955852549273415245384539047143132082437664257042509931204611488395993257354453691683683141768562086564087574998758387334916156876601777594235761703910207832585043048945626561336268107343591524746872480547809017154303179064991069401570093081854689149668270575456631228522528110953599545492769566163532705252483199417870704871513035777871866878192787297826473937642622921073529496762132251999079075317379885872660321507900842831053264765709308973194268105925841676513572069511977386220202447295603379595043419524896217811713617417177876910111228074872828434392496969492140182367168009091620298498576450766517916920842546647435040525649618709328896336721986901361603879296874077463400361764382705105909918855138017441795027729521019533388049439025325544172689441760015616679334232413971989739580442724528276911197728126233532677021618607782234700754965737097891719635005623822284676355190629139035316629762206009864083755048225408992008205190764499127674389931736535193320401446576763032571097963374197778608092774714996594237500574530862375894472166029862833167583667974452021281333396799309169401615716624153126943941401994352993083056375230217193980463988284028295418223107960193926876569932839544316081405398111006054746425226116511714878127050944688274276359198718561773488063894924307909779541621755745452468713887504955865516956770213357051259989833896135035641178602393747040075753646136782934627870781858455669882085817516034669022085476190384612476687180095139980742896588243587731665288629956687636703184090874931267364539059921146913694779079624454004992325562477119061104566524259863038344162948212272906962939313409805558893993093108488446912964531202296381371873409173739338931374791127270161718546036455656590679089400651697382211341927430983354700542741156372917324584592962607848861385658619856349668589189127009281458742456620375443808727247738977826814052151508971014153177279226009953015602463926414447727080718579864782635174892916947842253146316393226215837488607598672300452634095383371558049848462697402499218487617826694168124533514860466273788624541655947008575873342999855658194056685008163754617208863883750901067517840230812888322858498884930543780577861192067706860956163782157322227242215585624846480298442049611733277219721572169583785247237591870817723681547868626749337593332073500589894116124897398897578151685127588030309355222081956165014129592687227342533466520566962931113617114229699591273171658990730682218504957102792603244112866139180882306754782334660599500242241207073534137862452321874342593697000691405649877627178376526667172299730829418464364898649753014155850555032256377774370507868049294182104179800850664804576793564280920407452358892222108085872090553476261258128310420280620198663406585545051586543324027657047252229619200183439694752839084214135470339322092991054370369282453456112689919277744185751652900362165889237675562331450623528330590645415969204471939693610396396357732316902152175174227971269019369032223794205796736078871181526344260793045188213508690462540366396383555437468685100912588491515685802195017327089772689053084192916412409015218012302721809044155341459277653081385724000393033248264026738575244222607915156189580933075504606635075668923289725885556563888933262542351651236667368177843636963603361625738205505092050916245031393103801624666453856612813863888133498931682057405775778888933516858336884259879771329071287036601514599604689309694045289355906987610140916064642722164929024368160191989828747199997695303729961100157126009894288197579920248994174492852599767681592841460480043013636535434209533302169333995542893800439368915503770255590535486227394882460169270297820808306581162481172025789532527582877582829562329871347006368181784967004846021496483077739180515399347661120696656265755590623936716957372186281219822415596504497891559215997458067556153822363948101558276521282697273639383959306623603042086501764122005993137737596106507609243183015100450171956264294932329691483321782818285099896904190524089546229118050951026214408948191966019917702213537565689790054276219492076541527288668008001682047603638112628577106427802055451832091883391109783579558488738720974347159854287379914625892276894140450331877156420485843558284053216811315883126680812459999997338280420765494896244695241503496339794389944776741283454940977179535306449435513915616335809574932048064420436576430927529058903876623753162952614410252369413027441898266767249598076274763033702460970582018277543658499895238538887257853151129640840176545633001932685954838551152331412419063883707510620204460276787088483252670476502614827633491244027875427299417448019909282815408206175442955378898455559346671814491783000241873482110054640085781127329447460495213469635146188751963943811347784675289449033603118060985688237216593803413206507518244674066498330262624994034094381235906532198613326218279236537389156764139152765863287795461967600269399805933357820148217193631537188387909812605783735473330067390903242690796099096758199803123766181352204323450602450419834888835603721202858263956753458646767897023132837972635494347387579279864998694725640272995575464843137172159970391813038236870214152175755147064201358086830063350075333905353360660465262796513061896525918653077845081042519192362090846770887987054009490787485601697102654962498884796917019145881590264776754034864026977615960716193166119830294784648116663851516723607958694152626101116234210925651438402539607304634824733722231996090220679054275460904929019338428723532344078122173151994147835942191751432605817526932691386620581230460442056142521130826088281417878461694408783537496279820588118350422218335597952638538145214230019769903616215930792124487997071779602385770517540304620283086382048805449671104207368047082709145660565939207690868434030771096786854676235563005248943536363726088217207566339464075028430808373070269556517269900123744787209929549442938832246847748551561490663680536169053389919590593821243145977923323607158558762699974818523213424670908178298693623153873697359680045963707957999179717090608625996836370595062562071151234094032712220572957103621435107179345468523475492318931094820940195035780850328774319569835832812310478997083314708022214909828355380929125531160051410815529705562913716492522387932847254708421964330556550962800615829216824360663032391158505491628497101904470664824426539597633991740611032949469832924341932728736647425356085929572794678583788196897049634645891785394820382947569926389940633546059081018627658479440780011144778497621751991291999060507349058021522580872797407395937459801965574099576173419413733725419782957768620189831066315092770495904989065001948947102068594530150107426475392363086104372016449315238273411990062594298290951728309240092557525944310994912007530534716273908994633234784272829236737378592301440917920663137162437570584887861716543703028604104767695507152572960883468629913403069969873664103341104106889988073146365797412096928065474311521091149177377587567381431156846953530356255626463529082626754469068336275047526844973479538060938306376306961882994597235359355084633739942506082503304151036523143784134855575452818486727967057271600443096804957569096026986844317035882646853961195292612911635545132586363393896773587042496412126588505910023919974842440333918811162061143862449176515621049199619640368679064912523295346544002806412595600542529325480405767993779766032985318813434499423651880671388805711361881086458543510515977764050929158937085790029166792939393345322321524481929696446807738373502797757568646783417071000169479466132532704131818484093358359808341582802203108432206359846524301054760134107822259601518083059809050305606077114004174852971548761154118597459480790412984976906126277745130783816593397310091745709819996966743367892412153175055197492765468388797463371585958870243551840479455931837770659794958828418361082447939158043236774054811040760327776435171468631508143819431515538153509720356240569832362919456968869847504679572374396534996795002861111025772190183247384899525686066119020478039725131307371346359714043705995781562563897422333671784133522225191004083472106209850299284853958654614599701586316200259918809292662139295891494670774595056615450188713615822933331106775729313679336874139787639253833094654029499620556579750683008109112143829054404559509847049910035367558601102497340211486160497849861587684325499130198610584889971130757642984135131537129540383032531909714720778361460148199545840375187258467725079144857742660600945628496033423317378613400116210219366507669568391142072960236213288602074206939857102274044206188719709599793148434361916110694022401047577889717278627567675991194988687322818513053116987846780508253997983417778011376240652101466686242153077174577037388238394827663560944030968834916765336570489082561624076902902696357470648179097354431403789363323775980610537106742052000281676246347060257824653191680708220919378839806065222082517421544684012424147398329054143398599909416875287906048719859010224129447965786790482568378112098620120723769887113908518461690332463158313603028306084570924754763320743963348462224469972392142523535494751048578206158052348624082851974108740595204925803497637069684752977954303842099915851441198232478034063008035155135682562348406700468926919456867351954556167755074932457124735910418420379541897658022860794030941152586429332080031619590047726269694018045218511376810111446975429027990805658133227883041298245796033008717648450020882558475550960522732521592468780154422809376512461101865054309572313790308352414393312340325583691471221093079539721225251332104155406692815138090843809982895415263103192237963056388885939871126947420459060113979720040170852024211762604968917103627614365480771625440238993875204825017577264818857479091671282308386890578275383745252653263994900538556686872578117144881316603188936396517236745729508680932923510086583234523948442162081179414968382358767092550241587572908680068770724042520904518076258420516170572857283894045856714757577023405942428482061118292198749436118763405012840312751034922126200685488793735908873706869289312559803673024838447585633921853045125010075544938232990168916020004115723253608984188056741912452730995835400695414028054454869772501078912069238287541502633161586417760170405454168260519390840408666493226202600372592214243643253414322157367302505344607348310412780052407692891392185588018922330372917729328510682416056490630264120940085237370224797906333008982430827877119092810972877601794818516966562484637871755516586959861144328467326493460300516060819464405618971653781385475584485869413140145887970733619418942732869733347413179883084773352368134818877208163661385649422470696817351850753854588161737337342288651154726018310670104912239091098438563480959116081257878401936224086385483721149684199995543413029969829481160753547697179829998914628121974640474253608890609992847041095462114560646993769201680384054397000694238226638143732983592714190904432907880280940368908039616601723271045278874177974604150827989532194929421034083933279039275506299833685347826411961408566405217320692586071815893478604032376529682854212191977824758436007543091985828869069459316353897028348247675793367856705007842406366735067812859960303775421606465695565504582580161037325055821259624188174376129807859137394647212351105482298725972218807841336763078681899683433605471102292608921472708751060246089033353889685416961776772675758980825163738198966604510974936826645332643656155303304991250541562256533675683688329409743421205330095918168629824103310134569600515845752325820308938247863306509967966753327134676643309897382611298400616971730970765851330090939909916648380861746528205081749295906601235620832632965380841111306857315245893134361154549976746268609576297554637597456357714633497358982651724416021085125240852663231876456498637721466215412642420555070527785940116266918079580393909583340203293466080730776744828688751287082713287454036216782013272307246613581626614286838226732106259303217096545951620615764616678571982635994391301814529604690670421927375857826849602105245743322886886080739078360620852839400757757601124670022878019181583930997240677948936242883352456838917836287433187495359960974174355899106650034340061701478220573966938656375868175391646897127186820066907979832971614356353261980217892900842549404017682252426521751626966068953693268189462570337055436021238467077315014335514326318645946244962193529515329655268153942019106531567667111597943558209921435357604304201717295677263040548559126733030890787986417849613280719126209273662812763169056942608814297123200573069444677928835669305452818979927970626523444399161719705269785502977359850758163809276487937475388717409893442385230643926765484330876968259748430665614261889112238959763916164336634112229263781777250985940266952524187109991094607022615027666242331851589920044028344593658723814788049125502392008237233244551920389272124616455610233879283065507217102016791927931514667739889463952881491447464757811895138474139883071714732690959112856235666210773514592550563103183494383711473074133473822995700880571601995124098945472047538847219993354408371407189013069570182752408942143587730655126840058192981789092152426141903055131896343460645952340267940780042541375814146227484099425659714379260611787057896679607532385919717000230173619473537114541939363117876962638633783333133482885102723879917549235768650506204157975441871191977816481872261624448739999484343787259810635073627270836642159054869841894691084708268179916432940706839575503342296604714632354033057661414641107462561666454171642881834118927268407968987413720150580307652800604127009803506924016841631708140613245488434265503808660186294299388803253075138748160428928202518587991001325369488575207734495160667784948215121484307818217060870833209796182263808972300676454400595169174447777227726192872433213715904536904078406829018674932095361152052228087602806075966764185612714279917836239572344211824957113722833701876404557828130126990934507035201825538635222661110432387952312333137802026357466831868030713807437733744378569639407479387075761206271396862209607745876969268967170988231695151612074037083873367436733022450739698341975355577338076954203876599190337841343172449872683190714406472558834841394098444070317904415516950956322364626728522638258452367344651596631298663348141613238389679993702493101725950200641695401557529264419133811121948857536354317484897685266387350511348747818645224434417841107281649662986404438054305844748869946210611978804588624254346695158278651289384238498507674768462786385101072692324250514656064449559811604734953612144023182437335165342659347575012976774903256169153359022012119126885782549952784795888328770385425207547236450824498778253250752514684383610669135893171721730895800438800230559380029934459670263163572006944433128885255882322853807905851552848314044175243467252821045030489424299171428096239868592797984022122797788124185262757594077047012146021156979341469057821507727566708702521131857580366424576842917365651629419659295019242146211732429232942381530338080205350478345247141966498574790917500090207442294871094448002614765086112127406271002218715356669443925739773313366610610968221378324477634247689207376021314071640571351864945649188979253146643365240522268626543602474493611620467464217586750117951275356115740173659298504307983326325627133939494093616414826421685311431796064558196257143258573449538236097444959324575253218096692215235493365502602272845335319862952166302679460624871789302197040689630878632562062519130943282327979454150546403559898747909942483617350051794884809775373868133655176510413256542317180791575325081759114423108090273869914368788819069958212650410053396531390837693703739673873804090022978196142967925671146512558943015854542081374208983422756489164587084580082736033320805095287581087553522366913917414096770397802747240426885622380868278049378690672925318655383935028536475769290443569181409223157305197417822801490038766339732117510017299704748729216138466973112777591952180877703570326011566927683549437716511433775369289375042256810356053305626970440144374016358889754592940199870044449187403876833707866061524248163743542808351201152384317225210632572998864799755180223413236145078347433139632545923237328705055666054677696525360468361787467603761498567481110919487335571011301533378038857377472046235154093494165008372484141953665021821197527495449100439170590779739002130060238980367634628938642413316304794679498790866004339537843211534034996803498867866820922145066284757997797196726799131288298157598355287136507669876775433803988611388999836546183074078007949077159237389715432840956820782068281830944855820167099832763798454878241313793486442575047964335008249585599553843612993853737474622309496366128943353429800526616396897862308955578540826109886148573623189726986008082149121435633227709902461459591464526511948056785724744282883809396876228911257869553687698067920448140005259405709210379886108527042606992496723796150721328592186106482763685382580945903601506480385009160063260321559066647830517801003716506041668598825699902869320768252633286520528053745546147359378240676344264801635707433027408522617670836503316249138737126649451983735421145554260842440685656094444266624988281578306149242241992583473822152186709514246358470434245495208911589945789161075918486185949503053960934768665961694505874802489578792695517544945184496914940884387205870224099965796407245513858748590819738249536788960118888822942733215676771184880793053709771380479493707387037110931699501579697783772387579276582738028555597385884182984378857072642830144294086271360641197014048668560343975403823431282281254541309682889327795645102491885998193309521991635951848886168303542679486133611024629899777258717116615528832834082431395846836459856369656862881852882545174474105689782185131330168408161583818109543550230311677748131617570493988542070908654151465246945845956130361241012385732818801722525943077604023466339589496211380547221509268765299003691759206444846987437344233800721705435382979028134734007108254433387336509204722922454078142952241285805581969091880885481196192707235689569861058853254707275103892223488903573167505610399281603046018594838492462606055363187557602045444718955534804539342872137073107222817931902438671826205745785855692863183530241041859480369046673216188827649374496749810343659284629216686867061641935125531938545923694881552552511605628270873075494728851842807145116425924231038225477528426502905447901827865626366818334937345101241004481186977942042211070468557741067771279529220454918047803272160282926403268850720987917726180412296918741321916158510486441831810103310040037892709045393338889154947104523832090177222072335922148093910164062245265874481039775705827185249437518178349309574456458243881652703905566500860222369145523452744356574474685695808718606399598314542419053153247591968600317566694361892156153949069357429057483528332760719724067788369751088272247308978660434642850112040007162552813389180086417165782039998855967634877396585708723669234587873380459836300262430640328572675834091285321869631298065654122763884627680386144323467959595492876766984301925546434865097742711983661869572840802574625399962889679725697302604551771718968529269780027734817394297419890729511755483405255499610480133544160136349246332031434198466383067817455032353075668547364249504328035411988292739086462622505254158992603156476588624735198525594862125746384860338195109628021797411486992152795825999186745494175291711175982950522738289336981651327314664540183933523647361854088095407574460896421920797295963896012236832981946979350143504629974435310282718282677957139849684569019046084397314741644213718662747956159466918977314849667377341941743737787032813073449221132699910585970302357961457436539227108199324515432056208578724609336741041790820442488233647656692426794988471960538727527547178649348512088250901012570661727423035363645129525086425847678504984982485023911630574454230292789552390586999357064334614822314154671338134064338282744838743120204460849941191023119701798949147816484262248214216962724654679025488164420057517067599412289145615984838036513615616842056827925838049888253650023179422046295251661787966228551636439269248955222595518287250276645365816478399447710681952885234933730960619429330958361962520462213463148896001804046803465072719400066323368559213796662966403955994116699448938249331423428169932988007879178729848752941360149370995404911085752926051866025507424726638367666007889321416497542647105831120430887728443999799238292887571557900391496622870085696194398567031113196596150350838562455708609255741513930432160928951688318666842954947589462094580336189764214179777231196845858357025740077839659263722376907115395176715604751969023019113093596818315553805447053001958691151614901931631199346790686439240384008884572604754133857555507048303960921972756378547889709046304460282866372340855650033327549444526116542138944548304607340923955640910918230559031347701634010258681577704161400558382735725099740834166072942944277575546425104932438130564985636183704931444591697199635869832731573680119252556902262434439353717388249629338157079456509854185646500513175522510881322104553067306323489262879669979414543514969532979248500117594239571321026121673204298849801853123444532667486642110915533180517573536315742896201053268620032758875742664549424268120166811207078961634094099188369451735685890435838522119324519578580979269134251766217987224338177184367174894817467161009871684355527382403083386650398959679101081392210702239656176178694358023867975246767244802681320951824371361283596029965788061756330427867601646293686838867349337790314256863288104093653334643328030554179916075522463056980150779219936946109907905857032629831422228616084391973851227211591987518494848954805606589032507264116484801066830965611246058640331366440215314425091371617058800401567912665214107626473057231915084625487184457982531053772241740575548660662313702849368448069238135170907049042039869121812811660956373347492005142577910568098707311030595849184853942880397646738281212913621206421335762192523302130319456063196581936763502978345614253311556518212015034016313003879368847476436182476228048641483682347373179710931496875683001331232541324520026680519488222142116909726657927032026081049248671543470051178446246408732088231850726231280971516783894433432044324769992934527528924168798166318987511999302603244052262418219610795263728825508250649299380660546005240313722699112692071956889317793782728401435651851071231274599863640327812251445825176318036609783826961670935902484886625002200694783375098670568297708014920911849153875915581304245405273055512675469312576017960560090458916441686837129635682474739996381827215587887217342973363975801741979068255157827750080809833976807734184633346739357039540543975178764048913722180258893510116330851815681136473078225341516135035044417365759865545349392394870350207019424618341940016887736232945416483458282402768276773580501322362144630627655469495264842148198021338373600728540585201781291567846084199459309188264752310681383724492005536409334079355805568420778451483893197260638895996606201441221809890954269321227545223778314087499478818731563034225678817671271723978007638319131934204156723389691291735559092074097135773541095826774599276632815044456711428970666190642616494645443523085069492280494983272861004713115360318606267462382073248673387298597264242952568186334346040358113985131405267216479137886367653832442600955026947754044104794198162995842632569218244063903415785810166533435196610678651747246965250585820321093722137520352843589231107504988423953676150094363266783000588680351946812701463882382585145232421832078865590766366736978453838733731404798185899042414987316150423855635944336359373082418587837397763531201952384578051107273190322875471282868085159668485153619349018947919420515390430581307216932740916411995809740838049840969665239272439471434780082866511661947444413585753130568993463251142289732856475527554488035837775163489819752706335394696229176696582767919467108923531517598414429547848636842297579005429996729500169928128051898286801025403056870455308088299569107976671659745716178480069262110574772311071242051908908244996582016263714629618252160393933916027332294794866745767340069960165101868628143751426765810581482472784337032293382969999135821779004231803081512255317134489167509734581957471732569929487342784735894016653652498334505658141611011739867259154230012858666843466989817946860114863590671841380552560560517828132386933203836361091912128988231920459186463815474560168588058709546645798520110531406938251793415063267674941070225655529769908463768286553684071403204424041716922534511967673115072944639220659965289995216285186591129724777705734928815493956048343032778061378931687265076439542595973226566317662754342966399339117866039268682059455773258114178228570074446131276966201240970608268016628943598402331448677145580312105783737898525337864227739269231731391512080596367037004126426837742317392528884234644170202726143380179579203740448130998512046932220508752355121641699912672397507725583140575717373392792481192089965220884120210797404604977082198150020856079450188714871722301615434611746554260174338408775220729098794933575320878079997194216979172694763408243229691598524555597787898314401822912916706741527944352124499375582640157807385861109655667880237632219473188123290261626468708280688796543056034321302346266570003004785929854015364240554972683870402950159334687089478263878905309758637126324548563637885757853863730682543804572883962718742481894394387809705246549872030791738674667727319508169398293178453358042259198311062401012884072663577121865169077804878280914999811395314684316466139858655435308123783908451758719843198746899783106269539925329433611307557395624065019881351141605593888065032485858602697082934801874991255619145124307273617025087080215001798825697964057862460173459888999157422494299519638004943471786270219784799173624593841550122552498838623222008067111294977361561316143515033469390359056788189399248738135029207030392238098136869530422544897217179316977634938704607868043812443640775795091131966509940181306018644147393157661101808883579250850622839070785178899956930408975835374023883101284984384484875061603159881906044970390134079321020453594170545101631774787608369055779419203649109853611327154239151494063581686305366315474764142073332526941862346426002231480300880444567355176045615829447118867044909640290512096693926818715197109540794959240020371110614168724294860198506409212735393191151248094668991671473033116767270955525335857372359928092279815306975133495571598711065055608148578340262243169529067500193419365319930698894148125583071308107115213896837862591283624782670954325032153691762310003516074711004928839297643116388241523177217677865860081971125510168649079294880149564369120059421461325638113595718645882763741263628198179407668406207142398328474861276834615907339044637642120612332848553911831557689011651836272315596281814244480970381963740935313990266388280667885569473532875301175032432310678304378732408690864923729584004060913531113275049663097418759285013029164037715309586984783986738748433748194944330877857737573032680984419411029802858635392670084858025985343155585581099357835366809467555453426925696266660331480732672116824437743123555359699323660636409913747453474609628930234816667045470768780360369137674397426408726073162484544229049561927440872635643472047753846516251855489047016321922600662995928961936327826764991126769632903297546260638678686373774911533642934750295099864920264489083936717612945906382458176354850255759670921010097098160957707663125864185535184159156827974493652425840442607710539048056542733010181566898947759882656314666740838659006633211048915832819825859290737471438747705560241617181422598677557058236857619832797649808939510807551114351683684347362984470860209068931601398833993957030624791249666599990492198709082645624548552253026098847806843000208331421874445002340840856529163289893065475096689433071037646913013330153180537132790341978244412301722055382494492723613063211624896446435161904962945924557734956013031206983548457125673993341482747959093770742424832514854046643880409547309045542495381046614308011501897124858798620708330287992100843777031434693016148835105032256449139528331045290003330861138340232526103869631945650907611707972711158278676183199084117132139469957430006515743153732112171435502654555015794448492933132584713642966820761229415452676453496024347826083949096683112123671453357122763088279158465195501172030974594205163301546637356818405450514441480278827978459580962072458340748867185384732904857230132402761955943810921946628558730315468831322154827571912893460550714194135014477264424622452545765669264786354691528542337941302510556111494642847786486269355012358725209842489745698214424358278801230851475627983140225684616396891100333140006005145585210930221943298998856383970963846704792661230862117297888558123421517277514457931973153393623034400143957706611540710228045775192734153251898501896587896386422245024348642349069761884487097093661186840180756322316283417217534534979513758643499835224910882687827590798027120089509287720431333911353819816166890722041547100262680444569513826782799497780199975828576016004439201516727257534408553351572598944871603290245115149129464872600961586394714836091056298877532487419694293414078392002248622232841834852308397129872877742735795839229644013153245297529857921600640345569652443667164276731319602033491108047285102099794280667381439066499562956334438377638393285120911141823779552413772391130318637691304492764088824341219915047034274268807619050611282865421530273180625924070078624269365504528187658183190169151523184037697691684334779151991010989001398064507648720707519258936383834423734324629679124777227072320955426504153524036138563871753624448866852832678856488499080853711313429638037303298759457858877742273247321055943210617298724540075165654851915504972440065640789248494461474673430555599942798398594393537735958029225966186903452852618175186717748329589103088386188731199664869741752205678474786594250040217570505856973175577285913795424642449569736568533220919100259028493741104767349106636122443005032152992090595506084624447499044480421785767119791032356168976975245640732944408280247650234948563633121032894177630565083405382058196414911271481472909021334954909211047163834673678129718393512641956130438424792728248656343145275865726308744277514216604240685910882441105411716511134710729930874976194518659543444581038591427486742652420437681541686381430230273435898771048926084892274244841540542337663981825256612936800897434552216632104305314391157359080220074563472853671700591945781782558678835914614232606470213342538335410692545385285817382091063201500334508795179747728055214844922075925274858719007872248684443237648110595190482934288986931934108626450700771159488063659009048887219572602379370442281681707470820892186294040630600065701465939529002049419127283802765796619911594073441081749509652153478343447399896270119712392665560341707398720806866568606668031312250073013401318368705013823596316587526277805093908765719370842783580490131446087185689764297322967044871942117022384673495725849776726816441923538755686616373570336884363110299576422833927588985904907022299623211837850319444589318840159876079959072995262395752515120633086862158143428205710719744763625331951861896115227315885664364455371497737792876313645805463206499341461416179436128884696765564956878390667032776243288190533110818222756793938984050982080670739768181933669117543555705782933652273233810748010198501100241749580042479277580556932910936039412532512736290323274266314295753552404615992807510651282086615168777861897367813940051056178541625338419753010360727157375443381077602760411541906984995044460884615590522914416645909759440649439726244290385313140035332554700915357054275115799002070270282326886521120680541340975352860422804771673495866421894658676490946293913692203798995520859565078752417126228151834960281606079208851589573303600195758988672678589294638702681447891070549903974982343329121207073925372487456037447165738660717003182345146953096122965349121780473276275790336525052139107963474732555153979430935579501565293794197083210778900617674221023316120937780900830923169916383773714429479516690453442396340305495602881785488152606323859164369880585453309448931115635680562153644300782085144598802766950711004531171829120060861698967405155797367536310251104297392351297186390666133414662285380562924938979053640928080487930069419602182183930068947598838795605488741542513729035735205655759698384661559479033007377134095746550497618819169155355906556535278369620473165127399357269303615395615070723935293020072583152311125719949695570861723831141163138017999526110570981077235628822570413913748629724133689639259704191684667415852368987121171760442963614300534712584922921400740602193374792902689830806101108513426162500458650777255531782397621568653962685475133432687967745928058660798528347935683466161415223041505586035793397850989408053711030319300562610154440101197283906632054919973474490812418439828501247515651263365255043110517575285243881809123546884400980174841647516888110621230386590436011216224207488367368224068931754070335732408837230413359405513338091195300715717962939897715004362172519292881766619503317052470213541346028295978908378304741627866238645312622045358836606542129670835902048938824951354501439757409810854283981327664224333762324010222535163354381423377984852287159504202355729837030882448124126826548875942107020017860092615023340778706273797492899712431882718378302773714554647587818120257454557627662024548835392557886279024098167547799599654372281764978339025609851185198282838727856511362491047767643417619146815814450383236099978835153730319879173912697678620623149546634355201763542319936164706248667106095925279325861196343253033455212430857397054411845026868748115810539088062893561884819482719650077928199963816044953891250372847599183228547505346338117894131933355895491100362245727985326582735136770042293780658530177838990681488731063394232094183851753491531755209889463207973903941128241183262896706786050214798660845894225110266159275958821196715219852407643245098016887865540866097386664488209600288178040240374544296975906725599231675639818195316599510381581996632684640742874403697029130866710978042337533121333403284776291338032087272600413894439600012548865774754086362958560599661541796297857103691191870922421734651965244698540801669635360083057908770494997521731463880384946653238849035069954978257173866495926777717471044943187170860703191915144979318213497119209296762508172669919209659717016591800921244124911734450151385504096865025984678468805951766852998764507094652976909751778469430486374288795205587158398347096655532636975387007630398029819799539874743438546925340513975643864209810786914107705632786162569428059874178473027693938366179137003428075710766597789105479410077363969284176961927945568430832663058977964740393063339632873211799242615903389150380379698669662466132884402634284596121050346779710368435292701702791440294528863774888420593442634930250156317709727571419690096763249565285307798653966168921761046908388573662386838828092814339160345658629144968884193835200796220261938030937145380669513029854559885709380520883876393965214032718110407631890702751416072700591631009296095788433873258621332058934484256169698720447447826481604476199525762234799347034719414278113608807477102309482561022343482708413541029552371137095728243145912840419181459236270705421875007558732449597875268639782262485268105746737237327403592449997259509351098526800951358578914191048090336752104362407461376183526073421669453984033253979353301619293571034892073757777771150689821625716228430426062834526597545160344881182773653122752223500455180867695727476780122445031103046950674536246125609985349752919329946726670536359222586890211320261748009986426736299182169410236665426388547346938247824617002726478477060652798475080315411234932360595469704883858893986819637049504212480725453695514953977269810514409172086212506132617133881133430747480868436873828399686337931845961410490704223737055362466476728397517786585600511595650672116369604415332203680093027061622970935873659964362709305608599819584936231401612313650518341667865453461755897376600775687483057736291516846803882343893010087721478650144962253392388022367563951911107258613263113109764884960936594002533405271373626657995652088457076680006770716137246368919608455328748798408756028141237152317029617968880435920965623359631277883821609550341300410577426913963682290555101613349996148013540696865397392157183630600305174020737662372068757219317709450461028554283123905179522100195787440621383677792384611078865329355210346736659899377726632033388718850503184110773282532592455259034595090462820029640233389901153093198794048338108457571150394479721085805290015285110316963693179112413499620067023100113671052974493876131103948064460393390812139148035951119658143884244656723495048080501523636370623778541266081604908073401358252249260350190781884660704443770293070343040210353188418087387122248576923115349672527724316557236088467465887269047132988410480444828717033644354628622826923571317435949300158079574560147215194963989393020051082950737632882923146557145898967609157893574438496498737777659322141691462977520150338595963528698801457032803790096362047971560807560501998371378942352909500523445519068397433410898309268717557542512638409305562576725878432117951086305477452500617229746221727538060780439869212947055953636856644238390267203971698950844438493157887005481760692552574285362442685011462409535795940997946391752116447653971881319505608567446648724549440754094745908040100970561316869529341335002821532589494006580926307687513568821644979116650986233416122026244679505262992973541371635323336683296707812626490387819763740150819061996939927219506854231794386509781684774284324353782297236154051846503579227055735915606634477345979870173894862268796624787590170108602514613829375899007707717991044746599637601327855765056480260081974631464116596862333689663980220583174587341092426696189674144913098306521652150625183662345317683093611888188314151756048474946384420930125888180646541477137620663747421595698486251472148330745630209796185703135629083507251191013305443803301550105075296718235474306900831623513779276370427217615935651000730470238577072514971852546156986794299436166714531449237245087061751813630842528058067255634284489751105464500717924511381989868737464091846884546974264739956497244167901535057653383154768074246378776295924175279966842376474595100182881912590083909004913916411328845339197698384560126906832362982415018020474826697771622965922865763588865984666143205382941348323150598544062437500138777167314630805745662136691008282707357316323619581612084717256015694249157553811746750037033467484774567464911425631706479857642282257907368846672857033239250403767016128823592531956728993065532516222109127296268055765552931710623651919395955811011857524088563577891791321012934774492305595276538153384170908793353473273200632424410926138415595426511385352758129166333346021849643803459059785368344495451366419901178356659691365023076715981261580855026555941758512518760087815826593923985839432115138328336854579787543183236276028033496591269742516164885849383777197613877104593404864461388679541603568822269425660335868171865906587345397944397482931809433169434363806961805619297485911089912248111602093676090075215599172663241956345740897249739413336481272595344578379554418349266322117382184094256660969652184549534183090123989422013426285570483297190658540246853098037222680987678679124329205498044239302136190352739565090350808416212832553877126969529338023833613515672296267605325182844586897306715114094277452243673725169746254712342680404478552859378959279869203235685704772596325054629071368008376406182896258382812118640529453866381804327048232548831123256107726978023072366113862974169248641943885913166422585167658169110689181111061529090902429430237461617691237964819055908375470237658094657852633543216990931155946879675759160847925631888723835396862349875151380953981819810564087611031223231269144420766422577218156202436183516882059955809506699058913475700946473672600383660524702838667488694198915091752684113813677875006586226888177844290771854988303858980023475650260889525570686934816674448981527430156305190624750139450102941902656680952521514881666953474820294218072211025846709270097116142731372018770980470068153665140969611223753327337807685346224025116141261776324738279668099568190080040868984191870256445329766863507762653044618704738739520975069949987102342705667882024997927436292456133018223299019200980658693568773630726522826929228957602809576688857595785954541452876768151356708350081322886785571512204888865176715485583222993096140123172725156842955147281937392467197896764397923644794920078741885821521297098080903256468010048221421269190586445766336476289764923927174956924276651448687686603352482559668120714138435841929327772847091461682285374128579279389825295914194862223530211292686975678825863454890638178719790806653189379324272528236425086545566927010361374861969848496019014592213245733691120329044241570707924862883358783358394756579913991356743710858618627044042098067348861443900923633113747614249214512537451020143062007041506378556758975223726787861621710701921750622829454768212494826720244960738362401182017873165107120959735705568978125908504968272238468851174778352770930337412749197289113495048116410911678585123195293422099344837417863866167192415956520967957366244974521277604764528434581773368822972923838301190167783375043757599715065476240645475885147359168566898398058086268526563631283737919436197835850092715056780877203749960177827065638894853535560412797094148729109315051927422110872778130784989111860303639192241524574990094554078164494561455932965147267861906393814184051776166428622871067284779317963856117033328496395582687425163182208157313192680289732677880059717323969661652361275044040085091874990399281823416027700197221666548671982614371036889569129551812714150389019866761468891922689492387371847547626120824382487955590632484997401674523106523141297700501966188211464120588248440844458924300214015967637214521372612272760425983461402069345624798232969762136257828747402537275806749508322422917971613476103817316531134352916344970042095668872008795042760633408113477870409011251003642846888485377289976861593659022325867719010554293241541741024756324972953523710176930041452808109158218007529923547992181204808279684309852645667661638031427752291829842056628578829534834147467111344151503030659688085867772132233484338644274097336795022019037899164465709706422122539128587241630231198659316700957139912370011399317321112171053654774414101412947417314701154685951962764516921284008159717190203727703173877498224441014123669092926584228376773614453395527603248307096162089928086107552333160524701623899946584820116550217954127320311994039898649203498736416868768160721514031246446044826300912031700429844990984359920394533054159124974347219361886539344781004538108879773774700259526838705245937861820758637943688445823046171710136870931571928877756251043314658755555123508602524965088042369310755781091611750632351309707383054027118399568492964703792202357291111814801719051941956360559570652756543969692393754446560957977591408947951584710657594999587548640708652743087832551305295789326152704017847784179151318922088574461127800796487043208508168250099225503523082397020442844758228647605280652631531863635790433182207971036751927575713294274884002576174610957744395526247289348615372655347850185381417196421697971942982839804885917999058522676070892582414682619824675658150629408078583684602129432767397201409521422593841923774366682680594274426706456464402557116135031672770021284461853717042671687364228739439266884002802363620206532157439700649497233491401378664514084587993979265624662398302121228232173668621134856655584566626509484110406446026472019972734801739151727383187625068305921218506172325628669368818482015889135046116802874153208625519587849213680084759386735846358513792939199730981560978863049941022976411408881800388745207084581316480893514986385420833311223009418485477140028333107539462062630441703706330241523805247318913338750525695474018800334481233227182768694782438033817706424860968290554967582450930187752814635629093734055764867340801599209535267836924671525473837467634803261179793756308787807060861887023468582691362625594722305982022405761594356391414439717120684595263608854343762647047000530702561602006567757626760828142636342100715846607176880593197204192200872110275716221480912237102871141799820900575662870034048710134508045813459887882410731913858494148577679222184063761659327585781374045430820626923461895351425022751351839960560883804269841843039024535629168235036482545602032721748421966951101342653518024477576764867999784513340272389849385669628609853536416309156815870393739918084974096752208691456899131818288515378977487898397909679686776455931546576006942529149071849015781371939426681832531301006830787572839553340464672880872682584505583716251671067235232220491116434744138465972956790609847218168700122507055712959567191421205774648655340246170956467039133406037549942798993685263059186374615822742842811357672320883622134448961994655294692480886642688542026655658507113861001072050045223865763515116610397239772501316763302187381011531146428790219679374159872009531376044835537601992829145410260368676900960667977704626956442842506252117238282019268938781906381588478084000735392405114186497691433062613474283705222233410494384431319544169212459051196827741806133199998910652777850283010694402418919847634177499267977676205709567811416928087123255070104161681288706671770726191098642263216482670068316828000332166483695813916386805060793201509101398880989009350596208158004615592756624254508199938057148721136326174036328957718552547473534600116108570777673036493848940696670860361237778570651734221873238696842463656570615978662123006546091815945622332368954050291347240877802502042806400150487660422035630697665339374710906799215585985654738656748712021572588714777215372269308950970405918896187914020883246349722011648295726372306979615352490485823513689897397474217675248894913133288146819543039262357730534246981811477990444165499489232042345025301212248095196834234580473332791108200348748402781868782696383505716095407107781356087602349461825099284273507246512576883340366960159525389148658463788192229921468182630335101462069266886975926133094551576737144425306321703771054396585731467054233667597969609164623995791096502727509231925757882814854684087659472295557082197931040502094839499015748412271061084321552644373544648141408078304008495266066068660070889173640605826682306745349084785109045463404900259498523529344090455413974949652218799994286146819305146761866362713584966997191133355035691660310081324213207624849710239380515533305900682603700717771654889678116458249391181547165891531498496108455796950444679068992837219818495262075433002220596621171830172015038827450026627422632239883067588130015321191273475679758866529595033505375953865119245110110375517653898491925973777817519502036829512870578563233235608136341400647672524418027972431203823911992053460780374018381552970695655505868817762074038117827047201999093323159742579526397294839576402775137321573573118388899951045462285206286891514210468829850475800724484660248056408125787834075242862500675015816651328487891969312151777320224112359603365873613456431145195827560380719046339601291847856683325139819245202052562406211891007324704624689306388319395879557125829718907489746987016430056439626019389647102935919906335074708525408755589418795825481842737719234970819648273222213572235161231154934200179590800821746560626354546683290430538477431454402328813236588375779355764109916429418007902415335990855556625225424421365606526397458970746415114821466390793943985121282680394155118392732025205344712998116763058129621920043124049346076126133764752101878090043336674200996044271227197968999663878978387350274604946746503764709328014125934084352289603232232850152348301199967124028882773013877433414388524634687221256562971086338389582839962295983204773166453192775228765167348481206935321258978205769422105973944733178824245749561041321627135625406799505973846125505498703641438025535397416232320040994829133486842225160129926124374002152774205288156859819479034582512091718625207247049839975254303471531019209530086834055564953207209795350058532655565099886579955420905238470356910953894264872515306394530805681626650764710724109216348189594930776785581310968002096965253528279902690135285519567909066486862161623464547385653978966790950602597080806796364788657306254376769693059502977637436927881079449301365735638232271471738919027892067507128049590934656904403441220550292286198174316277399433349868166764814480051132598787746084032319801617263024487551123833214225984773061392371407946799683416180349980064891383471459587947412808937038832423789238736634504034742843991624662657128481415212252361931564889234461287769685136843529725015730407647086217782520665057967741868940746406933400891411555727014778937784787023668666017197616531519354890045491652873698853826791487937619599052466690393755077943262304116839756694980642871200751805089495799394888133529564600883840376377631208721362936133060519951229499975261029557433701186151951748269037215565338051047185939953341623785898949183762026788589193925676690853321241385395273783578181607703814778405662273602904718429606171298325778345155576538358505916703282294707710060408725381383811685144177840235671067450475090045516783306248807562301476674444576804175178559628600319533706682894468233993288765901116317022713639738251057589353801492363271409120383184154648595419586336376686852845031595439210393489834830506689096953112254314163808283535389227250477824134442344897547626645348838570580127940250844343838030776296894131547173854638340045717837244823293180337867049694619004607044124536412384679920101245853333711497043784973372345796748874713943736410163432573794702677825872199202365919042486040293155158858353759087210869375664452127881823621763567144209004328892235592411752307250631982092408195904928118359186081825247450803779161090946921182315899447923751194251116227241128896345424980724687891930335832132553430296018326343739316284390659359608216789358846655548036105464002346064408462972815350880414740769806109165571269214978910167050768675713843893244143533360429567955012076051865360393201247337253387108903628310403747389514272546048049766282076122805592241596924603176583451036885914881635248079301276351181277353982541270613197888765808585358972831852498787829994043865363198779938124861590166277632768617112868969757600198175163278791366410613305718158075723791398382226990717103548673429622042721950744595394489663726831360218331155877329670354665433934375270629840724887011935445848712351375775706221112498443609893545788509107881675734571074388125876431941875624202730556713374061417415299605918725361655670873176883170853099205209466823202397594310400141268964468616750465198631685759566727695133759681594841295631694900829351914599293495856038552031582462163687791205762057366080281895793514173880081006483965360091851177665398357934807961630275109555143895228365085385378132045138034513313013290419165572825120923182553800081933117579227572008903435791465745063360296844500484039984860220839658609304112610675571778193343213773029718536679753961293342697305572546842828380636584883342431046083285112145643217808679549490395358539276164419417485436438767896476306785635317385430483046063053268517139092505012162859017718804355108627050511861343819288494706432215650176480456129730334477516770411985202782585159742871886493778314907288177426870385893565045143824386489694079923374780871808916693034519536934530081582341741110106144183948584834425683881863361471558339360746085188193671628854891562803576539756461128732492001737891888236645025563321948192048906731873811151535032031254064989046836801087243414465846278932780991071362286238182839873986277263613351774068717113877620803431288609452468724008747786677640411816910143332489273323886001757708592115207923085180455016147752989580481881768402994081621990888533429218580769911489887155825595306247554988119226948843064924372137732588764211783568612030396748496380114500903607595082708585773014467569444661802489198232768082663351295547708472551874111240045402480597219672753047658451028480432136408257815522639888418760218309576043176826132966680203127404911615130035834442400006925837741592739194978346399563478174342462489829627057602563300722181695461910058859069802361597289431707576185848083854358437580834951641724070508927103754147190743198156800111315458243190567599174104998186479340525256654013890716588680059983094953820836844079169243755805503753149070464389167580303132042408571474724260612986792221421375449664347834133048914102945966161459071818077630668306614666178281806777000237103428208492553058680799806712812344745755802927009444387934813939408432815259471685668997409181750423350272257215850097620574440053120585105300737461105246396056278995906007224580812955823299424201652014921724363704642579354566696346005929761806588930624481655889358515557508181412596036748214727900990375381941594485473170267484143229077618811978604093622097458226051612622182724008499693327233037010659845686973031771887410277246286000449889156903956870259204914871730017535714681508959178672693364587999571478430051423552469394257909527371135943030643727541681862007741078574831893263739492347277805105037355100648703117364904100280425547741938684900195887729584723919002581739989101743338038963222332945990900429618082543172302356444185600476312392018998277806688395349421459133116735942966092734034480961039181596443599020702105226003300684663458461962508965887337353845785230553417114789272458959843311276395965275770331979243655668152643491326699645982012112148188312890167260489556677825320750286517708349991646484746449223788730087920617714956272695264438306877276753420557290892135331352125764657688132957379614255844741204922976832535663659773394890176644540722795230312208202804810526512287659460749477505923736525353199212018099478282402578212970079042673836253484090333398503739620733050365817937315183602482238845598549457864932043529833424473084125149048449383617177012389736936176100807615850082597437081822705659050548194972112838650390478020513933624058602707580381662080286629266589135732642530631928818342577168074465388661957059016488791203628428064611645895841675702404086925532026146428309994132554600889946908404518506465061300378289911586512869293069678726728250509361607488404243474858771060776594664337195197811156760561134979786255189077337746117944722301240170963291007253073226719576502707982021491286738561287676030882509314961726809964680848988671911481113697098893871438195852193088779158657488523105462103665434499454014390472889567879742035024549432017085283318242933491831595460343567759302105120275102663122120014821619512240503669856395710951809839024855963726237777029563922043116955219898252205610452591317787544932259273760591313912094482103192007599140895168548455955441047941231223878228084538213575667514013294206808101011758264598903288003341520263905080760195475404918424888246093682341204402196101356542077004888302834483233173465277591826942346907315824880997362170670967990966855234940890628134455362517288570487511540533873639563271178650864310550288865267707640242456136587078993104889364169530966855904836676253103385725022760772624219176833672701921455571355526705648687905635460583211959801693852447096228766241505174796951160260227607999428737887938857361332780359813868017654002420503577331523391090323152548617365693800182066570374502981656047811707927688459120430800223228711630456669269994792160641381442012138444262705976656437275578180973041802097708056405246108942555222954326576509855049563003062204280824852881424652847681048742968715351324092004495639504173236969584925860216426923380752527038587566531197806426483558041291315942658097298789029136307970240646794221542963286275686635769465746428099626263216081917062779998304348314656655465683633629850060362794115787854707718470387406327872233330365759946305334204798230863657367504409317338430796589760935171744584206885411524414088438880793013201473645779408975396507264440448078624223543020045853754906828941059786802122348822148243264090051353730682445822497577260235690695063886645316769055841946574565754924126711274873180578564009457705570088302171949087147016406376492869938133493295645189253393732616271800990156710082572769683625325331894756190733325705191815837881052749136880486044363683337703032612625240521080100535958791500227023096219479206871817283487147798655238854313834045862573328819534489036313079776849587886882337860216552965368908923770962878163195309774628844638153713582147816604206681929144482695076120340242530292862093355343686475809906524727342992161375298812328245974286273751258943266303572892407967647587528659634348303440265524626868400545955426178970835521229271000050645025332832040808107185339300405423662980136115439227000074781819541320547095586595449134048631950650331399717162264239080816068638172457718435336050275394603638403412887047228197467663995476033129894297684818877621165826264101592024112778870814692294311777883392680833638013951407334259499725221713603480094976259523115504831086286776247799977634408659664572423991450657153275074823472773310866093725106419611249202581748696294632467416657264281317120870959174603055184593730377033327891670596814098129614631136320601552946708541039933812115291307928963460202884164026570688372130157345800926248761999328219471083931881302181646657718818054458543352757668980950540880344501927981574268379788483324965842495267028673085551634936329627554234849472393747198685041365427630193565189146885650969921476702425087538237208764753576955175099497938500762212030592965697517644046594808855129625213930950506623104939947121794908218228531044176236911854767652501712446511762035687941610746256754215806718439253258910096630175701886814475911957167779589685901031952247947592670609095973981939757752618941091665568852131791037141460006522462140653461102472001726687550021520728915417518921324107337425843194013997213244304691069287207803716648732560494069265987239500568654297076027335570657000778262117799826572645308628875507157658220288848431308620439967950186291149226066548446732659901629785483182919560843826761866454936270832639844832373253606699970687213466054991211546453337248674269828325065861687574587670503073058073555786064883645777735794033455017873215003620081245047322631491036714549894935644986610027766333550254242815374693656625273694464769981575277945222849932401153340343203642581005872999840174128283640835922080134141770216819382376469246526803166816516098724192332563884699279168123262408626815525240729197597776204903073812242175536574518480386659343443697287421927564654346579516636299650158374617350903310226686343423230201595558155249108343123196265928676581966551822837496242912033434483657339329440025199326984434605128662571847770752922324214411307273848618919068963829486050652033949288219881149607058975327910647180921956887245801774205083344003479269065383184811643611063688244064613012859440404433666787488218190189954257049605899259250962150425553584493558016503585636201450107974546125741977313623689149698208706213696426605315275559678429903764067616796622562423366566469507619665449675522671254660811106295497658221827667292126106182430289348784036157824151170178539835473034836081697285717771337543362919133482427431394656842479539797138999799829923940835629483591794678066416372591039551757545891603820201083490106979817522547543827213930605617259675643026766437630069309224290268630100298832850021705730487269288085261331337866902483708234814246707734058873464102934204432222894205730977287762403139183194390358811801259859594052105556939042497295316298553749322554620231345638751940093940555698553680269636841246205086338169647208323415730148603889279112698352354415939582647757804095946915729465231875038667143930421793654880956721251193920312485982648972202977366639357217098711155706693022408109161209304532681595452860266263099915841781870454013735738346829306273907351008048890327256656506633273565935387876760142060030645382685258855513009234096145875515620154677332997338810557459446817531243042991037054717998006447374023658601929630439948553410290283152982682951367603223758551364672037738660105558832170804670133623341813117046408750029229590003789772274966940485190079373221882601592643378480840610883012641857756383688485645946190352179886547593001669999849056678345940848225057524182301446659334750630017206121785996726565808330825643159782636354747393304196578607195562089384510514217942939880317452619238989588266242147303712854221101383948665236498963827937231577241147571732200712944462914565330702868035999087788945383052184849591266081685215599557936139367309908321980353660394470673741666755485958106703200699734216684119068598057948308741935926772723056416172100966099647399409459599594962605545950167332819769849482279319222459669386049877862446182268428454267094141515189339256405551600215209236523445132246248682808700478286473908001560261480611221432293375622195722210018425233178860541987836790279380668886720552513399080532874177666172530922686745759282339497460704208727688186338933966531426827347396640539609354689991261541926711215535863712919529605553629473597642274308341848448330208451502766407625952768123465121109255380294655093727339330090377518355523586130995324163422575773899561533824795401217661505062168094610053914842549328890647813721662982664978864542467513831137318480059381682710897194662192411437987730719429687777049583686312622127157909294247367123221973953009304044891936736507704124669669126517999790023195536791665336426158209881472988629261615263620678308171759202954037130007144435194032748149189073155746722803988401604615825537533971191355064407395378683808053131339560531562082134751392933920557353491539599337146593979736260684670033120969592782463512230545999902900727046323205734941595446774785227773161753990034367062085831773668480838430360204820793354130301789063433867055409311986247569671699882152764039193714857324909625595193581389000877225493784352073341924271501038569080608567873185395445305944530450157713861965321763443725373085871148026481304530976769028658584769880443491509170701655293039651165716698522008738032348700697334257699759640908822213667414960111601487867203088178564559298957533191843857950740406245841783931233556828150334606651165564063903848769002881632044850483751208044882485884683280134305189761175013528179911051803098062382264849738626583674339757871150836238034118546884324709133443218414239561515359186150431351919616135851996125865190782663235760746749558076694771108873895598250040180946544017481733931240205633935294721758638739555892448599106267696959734617498112953844856058662827613886537029122477161038393271511560993746915726198965368491773293899682641800533719543458149394818131695693754726866807189146094985888950180260648875252685105781392044083679307183746247980625545704216320178917580490479753055077541401780542112739604754531347312149551323178181934850150418570783351429900177518001823869679403464892161045642292796161312266915739074180660481136225885392711325102253676530540223358827875509704785261326793474472238396649491692547599429094473061487681194816226928418681847199281644056887109958987212821102490822213621166949153643962652337351369729113476129632609479202073712697715491590475413961203871658786098201650960313154232263417815783539264675735421617025380140171030655527694113142962259382662247682672712882096590430151523853293361636893732812818664753837165926670725837990954135513815143131608454734824778545754002527203371146438296884015536384728741312158308156135279645944654167484421200013022386176053418903894955762873091488719354489994740245692960301337410412418414489973689611402912068472710483242954633702052973181984802682334281133152871387535533155883800154759347995070095665078410863393734579911226123323792407906502902010433690460136605293271531189317417212875154097793094110922940944902905932518775945262495904559669686671452948938027517719052772231962904044462854118954964796012615461192940265803729366368565341178579371868514271989174860072026917411936996446467631490677820022684091271343430928468617610798321175320982244942053814387593108573632321540104052981790045747332431929187539707169268620422075366925212015311982546308992068268850978632707841302345708403465049285655428060639200505716098332737450022463914707890574637496885323382094656435066222319568034186250545642596609763855682375944368206871856763959124241745823662312408438569021404268253818974970547335006031993110301993108435156622698424407512324507269553967053778418531206017853708713575686616040539074295740900624997712707778648963366704201502156704478228317032838369314520220685835589321523650454010707443321688329385006460568653256795311525859159166086986654594669498616958139039828140641620710980842681479132963348298320772558626127616565268890060323943244580191698010699656518173222441512598139107808606277080867596327360161012754228574070920975808704978941502005116456293339630228911811174258692374695092993168929794695211408608235543940755410974992169854538527561993270434865206227210542935723093765006239046153462648007635202968542538191140561698772300778722520921342278559716846857283047516392943038098051242276572251286852355633435842360784836490353520980213044167806630571137495080646677109368388674877238089865966531229116034411244675996968615449068873195096525599095039360791130474571347470493992566142489249481394403718752032584126845315563985294945443105288901640806966669057372966765927094406187431425929145662098058892160054409830749152221787425253209076347749022791283632023191038857428216475317691351315401210295219976694628260579643856346884188033814002009367826129700206123206286651376003050056637649718618334514257432274552260352197514153043788007147045872913847364457134328947642486640887291155338432886587022059853090514421032199735916485724635478226680056198629461516349891227455622435438597982094745264627348101200757127477802906025923669626866365776953982661300458781245090826887746671336387098305573417777755848689614522347486963983625598707834056462747491525699337096026287400161858302583159477596417065593632750477273387525693869820669076642527585773206829748582508502318552067725013127084821589420755688570495911455353071559596330728760125197036132409865307159644517205451266619453086220229124545449565075475110197499388172139112847171657503866277719764316772678554839728375858235215164799238639702227918990803248567653683055996402228358356837564950063538210202426041718472873891515415101669054899206775864781946613419881058422318150082185438446040671550922050597509902412213854908061961658596573793246846442962094560325148387481328557595614939123661223110673605820718500407720229162646585083607750821704007373323961967313332618724348048430687747602625379759877834178155793983206056825382173022379028136393671850172047302597855745060364778275510501383179260715661476387900277595949995290688172811869171454358659240137964607645288003109542074351896781332549189680016433251656689483514644188600317018335351509990771480886030329103134236557012628806416211045714826906129650211399807050600812382814903182332271224450545315070187081053513641618369644857066649631010970400684573265358685547918072627008884774647006891834865325659264131264469861870611818514220023127222803425804132401970521655627946473474430846770440210979317141224733792030042452515359200533727516281992230500392939235738291375431150165858700822125766981311144248920909736529470017352213193113709744066484552563396120440137873703304132478373336520565398251528753980734128235649291613157041479084639660591587776528740194754792503708941872536866650987877629441846663306661098505331872082895847051530656881432021588952265393751040446161020128245104725484978096456767905535475053571200257049148415776618444591501747028096882953920956850943016228549579094990870130827562884310781403366879007331847612703861149139747196065662884017371870288339914631869631610446058499965240245093443584845194846521217449632491317748640081227923698731842937887323882751266872116149414711657492649690733492511479222464850054237111063976836860897635729126977182003956051223903410953994699995897356027727177152086550493555176948620039153378500434418563176959462296041674867901163696902659420995146989360304634234527025575604807337604103691557504405437982938892075461512836386260208312572238670189958092562683721384366862340947887419270190270445756165333341789269528646970388678274593743418202249284786371323208761873083348014754918231740037327378904128658559751332674173598398520588026846529360903463526093709479263873243789932173588878879617874727704811543807798341638973932739017538431865709234919260413114371125214082586296900994227710466175185340661078296710605622519288405066520956145624774580529619900923233883116234090419412411862041981171655610906408442264768598604392139074310647983496807078313990597558603359214124049791547203286388001467888335990240448940990970419145696583620550454569356256164717847013939997006288681473888005799757208701948990927754481717190065056338120726351276655951559044028310933905061437144702893568778617787993497622022230345972762760212844145511762536490308356228183513270920087944676778157604091665176091002648806740914103410728798902099112740129355179556760131779429365009750557586518027876988494961456160066585667013725066860140844355163207388563808778982935752760467629205753796873836175719073616898153332360574884967226423041787025815712526582822626396623177445615797261926267470430436532630731304307502626545549689705555102432292468997155529626002234909426203200977139944539833260257019445448055154205154470740097011815266898441597814170779070075456849503543108822074539742063917310767418379570219524239429566255422631949830604374364988670272222060604273850607283669292442850963400862066103422073489620259294213278565280209772332198910700506604889290736874623221061322547051961788097078748136826450756906181122075484355413318836693358086143704962314540182980754059861733177613174962067186784864973731347608146447662984325746528874775988674390001951796939051284054269666482084760054261101724654351256644230795915361933420762344328240825192283052990974471329540965723452156983645563267956353585035050337612493750762123055033286929252976102010298258259436415213783670198200677391489778567235788576670688283081361520603624526002742091141454975054389214911008658766400678570374819978956887197862544444532643185599716803305199133997995392330861883229167921939019067831437396375995460061433176683037964191075375321847467360271304328062351880916513045218021215601013664342574335146456412693777051966431346590969746010985211780569202658200338663672838903761035639772184892279778459499285437538552922803760016360055965060022068346936003413937515117235477004485418046833221038192331500289050352310120440667159601102639109162810263175265721856017874710667915647163126870425750069918419508792097802400955258984315022944392021943991816013600491466855568141055350710532611172506932523729268717867918931484092909498257714527020811268855092134654906203549945692277833600522795947270362962309036502055104241296217953432381570452158339641582694026339363866137393883936690088615223403229378348489722499936163720385269988844778867470932288397288567811041925422081604596120249522315293780227341542326602867514464376506860825219654147295431973729424519497283118362713048503966114505962940462504812267880548486504532184833450780051340269292329979373383550551732825304759354134190292110132158629767318794257422542861052347791318717052376188684673587637000823370998823970823075049910610691510351631065225367052903854871303908906153731203189626064877317223848104210674018123909892557486978741749491251400849744307820236154123447028530812899259030800217964141819442088363161876221249853434664002850406274224995744722962782135160477490467358264024345915054996428213717553209048833358060472150052884968849162936440331455717734678163700005910452020003657275933891865702051806206882569503722062982867786256039155522993350097071753769774273797465753307343645283140951150672653170202866477430609663467198631576641180934175551830674632678177081508791806253544452505308474508558453020239439312233129022496728117556700772483290311193447466792198786074015995967036163859373694860156506998035218539137095441841004119108443736903425817937143511782077904835681954253797427736315256235290748375208153405013440364682307493953884617123259214287711738558824710425389518679676870499585827497874893820804553389886419667612630221737523254389573731923273302543912450129468412350643347427979343091063236257969763347371690983760185138717572661146277167777757062515660761757255270608303904119092120945655015875887900734273258562158561429746207989541192197737064441360211414742594916651424986886249805815480202465183335141472222330566947817371269050961010393822481399127311873593098494172122971725273254464270160385182174880699060296227890624099242492292160564243357257504691207961384671460508683424235829107692490349967487899657258304337165518830631965798086814211613416843564688378972115915020507869371163573518975011698761153364106072070170830357033923842005616950815924724442349758149947972245980434903810698379449477029484837889148487811375704088893379497398786178262022255411534811587262158139105019287240412439303704359651723762877793054255629505602586809625407850143004397406969934494135077208081376364512894183965593589979322356738935015222452875841212296849149826965976093777909252890103618160594627761341945186791556661539009543363810027007881499733020965407499105255708883670212381414716131656355275022032321555661857916099238860457384743067374890298599952655514185094134534721936247906585300316659626476339552806901876155280534190587625868049758383767847850919693254824703818897585056306060726621030590843537439706632279228259416419021954437504463712787636751731534625888817417846216874437024313594160713945109819261787824512129632589848441267576455611911814370449492303515411732331192529486212416312174700310173354788068005048117818415990680724183227530026851458375083547616214781054334038350166695708762591474906214675603265047768766183651448271874980181706213174223750919942640214917890363860996173614752466852385981675592038554228650503064762588206845947706213567983704259590604153395025826435962531207897896037082586269744688874750865369160885576862890621628297066309566424745228083083380359529996533787710138317772849635780818017172297195457424641072722627933163462229248747524874741260289722456127027007337251981199221796361039075719570554197574063365837912749241583433645925551891820186471380459226011632625398476543770744458544511105764738651543682079900395662727296181511902936574795762466013960003893482120873605328922617069672869042967321506374339005849956835975789832257905319847986482279744751453715248945988437649176630307203387924915866269354987240254091687359902411163905723325434919119300682758572858804750397097657190154020416944216338474904424934673202612078684177443078892360854258633141959466433363109267648110612084516123333895128865107817601169502332067601245649948713892311707406123350632309419521423580882599983825851899825832585834236260939596380444203252577908759764145560985577896486029426497962093274550912702862859622954495653209406673911671259708060672134259810790786816324118528355859653619995991049981046887731600220698338627177659552304380264162026484826574874793629944021582038639495434352855664872173439498527486770722011778161919216091884028060851453525438720580448428058684785585942865573494786375261264928112986638816385628819962207719749396495560336166203521794691284752015677943252408530369891589442187658449619355479371936446609765635680248184400591889830044075038924760484259751944518456000441748111020301498885105852897008683084128641986850705983115514028100352713029925855278838368218720641181735105414342157098502978499274159405487472564787207424827506090192952192648531382386446564072501869990162473064042853443539048853779365807686194465742142004786354723305662834719028405794030609019994674268157807072184171267131570750638597143358090780053749321234844026769327109220156904091662688173159071148953512877265471188258522632143157240524525387375132877040862065441032144569260423341988961245028057167205168978301558349527163505446207268288408074335204217981069267125536674967686515568794338485996098326213850385165417865778130364300499866457539412665373301740478125484610898317937362109414872063705646085501155597293153484321761954163946420803155481322958957891062728085064500167039067917999600031181814552982893053138393008816127926768676106422907672205379059648527716168517297520345639021674322532753666212883422575774297981583039611016246089085361451659940953066782877366655120533916538705784240276087954528994674529579774888598260521702565503261277905326969710971198482083061847498573796610093602665938658331067245968964187503451769884869330655664570285250322006138863003031468882775777164265146850931303040616907765821076402517241085639787425260972875997984842201902797176248716341993411064853687241891093857125258693245946170854559038904266479353853323980154806771117702270122087211990682159820170171174337482255287091939076607143812281629637915068265661204912828819829272875735853635843938365472952384408219293759850945394478638510050434119822485056227979043044113120019757538591774963584494192196200434192130367376671412635437439226526341097141036692328959663840524502476501150570585534950142465179504177144576823194010983697784633856016396655350944687864103980792681517739356365562760649272880970135963158500584624279588793596268844655330064158487778990703936117341172197550127944721744726538246546054323038247818370075761999631882373510215284092996352788593825712252804456877744785641241625508717887482071822362376866933784269206959270963643315718954611927124418657826209088922818348617939464134795611303081993757861933048450651758602901984148878132685581958333948382886961260448714786372502173569429862647946040373002275111010184064103698602360679627703661811059220554418736922821112040294128745066164016947934410349106604879115870486029612502803137191720283145066552864847316012386160467833412337659298604628346236588032976436825937763422378188809081978443988114895523780251406263395346814995041898939627837101928036858828310926117883273728633191355043981350443044254481182861233321404954677912421906374536893313250162068839870661233655137869686487107980625476453414651053935059640373583176581208520637644150877629086352806178638254711015342934555889238572367078466675019329725948964582669991841383839049845609865137730507715337239037345151916684292498128425083199719960211872485157848754383139269977255139914244706051432443862061369306962503469705999697658752692193099593327678874226863167399799419372980246400159057033928439710367882248947661443144821023144539992144965059686850698084775072382987166726220781987900501459533936469837904973787638983107362881710400186752218181600243335850935365914162487325944501193323199723085942877645478181022280965861959939932714475139569160722862696641886196751981905624644554781669134811265597924192960869818725280145557378603098294659274120714768596175533069930301588270025057988651544993231305683050939666904305545652197130826346699473288490984776910263838809547050272834225079638179834995820484670701666203020568217545565871091156410962963693655179752991037266488538738643700974928326782457064302282592218483549593320417925350881436623730214685706721355272024811034674394417942513142344195912028018724154385939514257094216566732942962161884129466291564369897209648088590394148887326791742868035287908389151620292547504017133000517831382562988824826458355504151418537382012303232852863022205048769884974150479242817426517443501228884940393398863513245264814585795113354283004962671007001125609695270353457447216006800250763107987351455237447357735619054199679232353556652766523660910245495801243072226800662726960983450261236800307994760000357244017740678646833896914113084267000803395518502157880047230451924691954635672031540428269878860985473834599917731068076837152730154335622707655637889356193706842734597286267555376031682305617009222398017374135429868240907343344979287861583814224189551251551916980109313472964829810088027334876389410836914125128917351402025047393112510649518976860043675325391104556870625874006723599812153529172876847194617199142048956657708818530985301684869501676030223060374310113521878039087477772630195296797069833970009153806393550203056288029308575908062016679019111132937033573254880049042955953738640693809253742502780030222525890744835511947755636328906548371370925888086825905705885968007728262737265163449284342376854321631161438408044367958789450763321487278189002621521249638679747535561565015546725754422842006078985771759634248668352551637622749746004921032477580052858695658182326323854453250044510967976608573138562375525866646412613183727090297555606676227274522845650198175863709133097139143189758788645970018782961352710345179903508814744581594660803052119379957628570780692304947632067328139256845956281783483908872835631733251065834426090149003250521516511590351951558526386595960526370333298846257924650189260592842752752433665227384094188412120675958385610858370094720233725597256786040837458189100640835732641467758244827256942911391652385597725161469317129730744384139344906953315218555250103877163805341355699388536575058435764816498743644220948898316442923649870137487139166010517755996567322310634170135434393579945469325074747924561624529552678282422558963515492582523104178112474713332267802895560777758947439489251329260295413503410123903283812964052280929774115277909269869260192858875070208652019026541291134444139402678103842675557212368746081461358917839696660511175889375283289428481278390194880723469400731217843293850338777556292510297100139108105033755585355742300368361440882897344622076343995210790820769345874115071686419691138826791470736557383098334802785525537512468500069091496594833959617732264041509176567240470865152945125087771766376262627399921065280418942056127446192025864463339373238305289245423568028911550577763302582809684701888809164418817804832729319637243541392716984281077585090570026270220781029724680024097070207349017000069983959155575233351285619748429691413473617105402241610849543971077290573284199758570440661011407633637603147831296269871298727936468422973107055985935447212303540552661690265803943912705624136320200504858873783431700297262493249284869397867352311889563057164865446307264621205400316292308578418189809787579244114467917368053960518924123630600767445586060049997041570963796330654403981773427550553829824281256699251387395587323628954719942151250933156768001025778060657065180599754495041094669867353838098051116802729322613358308725356333070886502685245059971257997684789575093501417989920998195101275894732616843040703065671967769792770199107197495271975586900742347227125599076259794153610737596738266772471444141990948163406077735417800134427332805351456371145973569303205034119764410856237951545050103419913366314892106570826092553903571123665483874048533119137759281465108286728460995550046405232714086801845950336822035378564437261961685489056361147398431944944194709523125028489044280064913690749767111722359960715616484367031944995795511134920702195046669870253555776671140276661467905933246287792775289412691625836902489750993388918537938947693275929262810260248296869246505337991013916987347055141919755382759429625028421724870408653090849003387030683451559558825042632015174501659406619452073180471861735056519034601417130505144987012622889289471326318775661488131006742671399278532932746069952052826438582595731879219510660232690466327201686365446058289713853505544677055605023967061525101386363473114368790874882750911076612313852182310707551308150050048419985256805771841180936683915032394659386838725528907521684978667003166334915659223236310423776225165411646296851492623069521628383797002930767555921276444798943684963833048417337017057385518523212938123758324731880883568731479966981385886584721158815272156186561127201495923988317135102940104409074113950335435047284311724478923114992987824585948930504286038044277139446374415629507608126585499327470596174725862775988088087097689395680443910177712112556228732823586196073904800216100457190660731241514956614243662048938306104256627312747583286664297390915787183543559657852440074307165259093371801816208215821937806008199110158115649486177186144818779793747471809041163674353643770052634412916897879556036528198874078209501245662523943695192457280181344076922958709988530708304343708198865513895616353623356220424271333049920679001265108587871866676203261952765155336804121526570539568224428899907949415930996782355918729143400765585566982684157788393665049063325363090958531559712263630053865195409759693664610238102094429970987023318116934651555282308890026880727408239130065075172720802595509706129683856423264757855251471807934273822855925140107722921766553814633088327970650102130146780031510226724742831866239754902839099617552705840537338255455790089051085153003619574896455856342008770178713395490001288413431425403959509633746546711221001085152269023748212678370721893482647790853368089864671744129294477591000177119683342989135467318664534916042658652192149986210102632767316548559238600335411240286559976328266428781349173068908579867916318630884864491685043215341501416475483461440318585674397469514893740184340799810269158021242388775672603954587581460618021291350462716867748497919744716120036188806473663359832134413789995162970328729158477820840637498366555490765020913711595549686304907717760500281437096810804327247958176029423866409145769950748214972657129040381132538890630294020304367878787541551950574252315379741700511655036315885150371971867368606585960453864996120234237568421563678400228078097134252152219579787483966213974450762871624040896497812189172162837439607697149617873234938870166611164557316136258623020451054134177649787036328768136390177255769894181316301038857771682134160485714544879607033621069545571990351609234125346518319246179714058776991283238702325734006332258655911363939542124012946599643741456173055679995293035524550775830455873063345810393584440006017991889519514023138712687304154086728764496810416900415990048122385790651106432697492056719580985703451871517532564318245372591916166331587242203215141786748969915190895135464537626079875903781568379213092149438520019769868607650482449688928002768182739978551578487946619401004860824806876067102035601926269472365257955991579615410541235726728320956808285837751483479267416178873795297945953312502636695484127835070376221402331247022365535565338289254976633946314919397416366665668205587604961520795923073564952687447677147988132129521391078428913458227489879674336661663587686232113592257561661921594705031837113621279613290711101074011773499373320067402909635366846937142840091499947880742152952291163884071924663989368121240619121841504726883745149911441775455796662601317125044366991721854011110712892666109979307408509522090882438170914235414031895106886211145164216777370020148079889254205149496143312597062912524653565995820691872021873208946471077363300492914711899800998726407044359853385192823791971800148391543377769861476949597063651249112523351045747884471588551492012695951429530097033791819486647128120992691886658591195813915855657767871958905140427609257957267107179842732471360154214909238412520429191632334920309604847822075370390178971820323023791874741613815273711101818937174271486981853695351063954097824355057277963159756868118705967049559083922451568932536084961756443037216820626495925644944683584098805823225719185471609651591551885265885374987025516828786690000392559346170801506678326721850159972367853806976191269134904903871820507239387096111566875812476381874530581549592428268463343606922373659766748654474125691034756189371606780910858795757612518857902647182634076207655635793349188710295386826335981449295512638099261430365970962471173808728500960376482514350504885943492448854272478109448214420929587725098891372971094697178832010485295455333996795582092211432987978000895927833818769956176101467457784225084961586544415709237194246327943416825069105144654076450002434292110329571261110017239191977770160565175306572980095547657802458317137999628293767353433181258137141772521622135101028169492298600340087540207776726534002702725172062537130240251655519432061125395466996406465598226672159493463471363878108524693926531918359315083966378294696442506552935746973753591693855614455910566106466014078165000909698774166617408034057670961991428544791192466172734136906641122802959917215095439177252969072768873777601648562752768002241350576938947056935809894096442454466577521863690270797074074605326676309915890719020962311534736742213069687410088676367566621631135943768682926467450960510743862338002168375336619275110378761830581602655323725468234164591892656107300302677079138412739485809770884512105834986282027361178686009049951369996438102641258659919943580552857627602421096275225634801070541912020142055939009197402241586386081981493326296540373039843127974022119070923219989129296278942371139433121133314595880634065009051702844258317515063792478970168476106837757244426059695764018173114100826892925037859132475754592540488394543829987784163182586535985232334272747440412098598423337055533758212037011595202076412729571696391146771326547403569186496245086406088719995612655027219321880961078555428230530545237710539159808787662401545266900446145169941898012957504940478455436132298501537493721833453938553852729863969323156728276540578469461033279469149404291345358487571551072084974661470502478046666656484818442484663337820810344260921145021601516406368032869734177617312795893669722474559546912779064775060163936567616938705949949568732601580337474962629253500658371716343335674951038525397093526073432513855942564967543549291333023631753912738981929150134392833452076864797678745640156570196119016683900620409254208240874302979081829033998263337371807332545890881198453296663578255757101579520584345179325892800796387648366040568077986494341277376072568817459808122160411956442063631760417191141879440772372245140880004214713742054118658024057474556484531490388053263304542355251083460339215850575858260868257197295860774874651163689036760997188981764691790798265170028671711250693359082484439393391242905941679456349532523047410675750499179644382916356011328331509546893287833882674539716459123622510274408672215910344722805291129248079135432230023312710095955352644482147973136752293448911993713204443004093740229210424159837288338920405488710135675777705503568869084884485370021943676610682348485946001610822881465928933435904706744282810147675030792385118628725303499121107558292950002196779835025460031158006002326904885861525682529400379574584324529082044977844416888538586234628981009175215221881871887117094592368665430897777823672598396797659652014743667240158284321858828716224744720090247919508739872191760741848714949345943169762020550881811404124074362986740816343068707618043856749425869026966618103677955714284649802166713915925971371992111501681383985779233268459827080019238361602351874264943808320216791924960076406639363572358702485929796951393109823597792450743277884304168043641315572638064886491412004807290041982811091812982610357590345764715005421836663969607254800661474436776585558013347014147960490259020455015192958121931886078645346778606822639696093485672365745792472572056714676646634562358965153515429983301723534982806375205794528610476185728928923020335844434231353884710936016588843396015383156988258042861180441021780481880361409734481202432616181768970224580810670204245420788465649083872611105612376691325029919450833973996157955773485412314320721368930467439160525825852558749255980426043947219662559513493253322560682447999494032097824184140629260199723099809035253081243446312702045595421010473041455749965408787567150407023458196756479715795356285453461539197574067528289232810431608814796251659547572245404284544570192002022787256964618504106083178847801086285899450104356129607950707021857288388270802963298650368696102971062023310488947705731820222380806352615398944535691084459058847614284982772155000453487125664252005188922742803154294156208698918851091495171899850433116589463182703658093464030781435677822255608010281445432394079941825359582956208438715179642574980146382443222473880060138941628216147216819302384457720076143654386565176620505292679533658582959150173653341989166113140274217780281230106413485520948088666808972547414554751061192450211365411029749350464212723052658345574895313925430724913915174075147043377737013892863366713766494407872233843465011309797787734277329256778064040343006554545753110218213129724271412868980440826626427640330512077783904017418897747303093587349122371678849447511950508321890462823421490460223049668755149189498166022392644478867419595784597177733531344811931690399451423131475441226482712624406956416437538719701557400118078573430330750696684100441871576073881061063983498469808244630886923175274789421817583145451250682169860590077824288833929359623348340333059244409248194099702448169095024855256770874647123383131080361340895208974049215163224024439643785285804031007718611450560167277291396528687475082960598388150352685764155706704325642503935004036577693984964466067287250394340862512610249505739939647148659549990363617470672085290733848420537663876994810291180983055401203748545379418638689027310152514806416623059870800218277578559394048369281848363083558008325281355251979570139464365754444453361458413446504324289623234539719819762765652757856704671536323368770386905541233067267146613784012295701582612044782406530432728162581420210514488481285161612998795243272089245398566879303253483804903188861993478624497661165316101376760308391369668564726184078458605517957424895324111353300564001288017568363872695303744800939016463644405937589010527138698448192627793979153231714065492729741606250985178440022489439310234209771418462570757630433544978626937667418824476203933231483793195438810997283556962774934385151944196200075116806910644952126927900501215740910103404570992606799741423579738744877736584387912917508902459007381694094983517163426454629228800442674950307101735449811087045843448870316884357106448519019985126018365712974154532126332189740896718818120239924976110762993666057189072303697938486835775480488712892970004140810040743505193832457891667279940991901260750551708905255556741634310359191746526275361546396341184102343390996849043937401452494079972785107490559737246719049561209319461108261711232207189107771992231504673129102502087897415297600340883979229884993078592184281893896529075403392033173407156043569465887068788356316808615191503177231473944691301978353798586002268780115804259324374827844489966210802755734948063936362326146155612523838372502211989188437632637046850009252577589903757886896071959723708690670751902736910141418673780384420834340522735738871107216457126696008365327086997448332171169167735203284866572803919876439259713156727328613821176282339512466165906114241776463074967432977108750217293432288167285533447194384633553678783915533995895445330053329131103558492322527568983172729424562796551069456330637332621374253085496949479757757992258207019010394656650924899584478428655309490227981321597857010635524357142128926242256179127758587129983122310781882695565892915134634858096864431360766323397763710028759374463248639745243466203444527795276735088275291823193409061969787852313217116125263054411561663783922442915657294250862086523883873075626876254697047068632598164729588987363096651594034421862182815717984753214007006936235695865067626074835048474302573902721499349482249901268247555069964492848319211066628122049216975220011435630656008841385433250554727375087071029439723936866923901538987237754653317344151500851382803003101930915907081542584458675911542828114697081274444504176739012488876112329479444980954712386366764181436451982638320566329856595879789423119208560273700481540755165523959789568007663390597279449929825573942543926025000562076582330182324089777560949250145577121286272094449328186801392471259911618633168539418953627963101834443685992501265173258864666124702858336587300985976928894611141885655384356383402594633015710068365793458889292312016761094463910290055457883963333783128452631968851489627320462743861604385328108981831714370203201013626460141122845853022059869481115049095953298917575717708201667788488928181458608325402077277815428294725390694329481413054897989309046259626050067027109100632345284061990833214961435650758372719266701853904907656764905960811512944215085403341861323140428334165084215588835268997202899037063055758125045793787192293487099102477633360936367358965134297109780148098036484673965710252326014953724020201306706345019026134165638483761241981608696109953611579606018284902450639845846466920871495661705766306598903748622254539157582540084483548504038541621170228921271047694346447721014630626148746536494748077850013587403142453902974839299942588406168950558594119799747547078556787256993631284563952787682298696932857268820517028818167014899040387093704528966888892879893715460709443817863396797634008941583393293831538761033724587768498478183738676528418770435089929871674278197166519207058366570704635450989775845494521335854824068848482534606348506175690024326427517394788619566035058609655824073582121664922371136969338375830009698816129387544540476596643479615962169174117875262088288177405188214701080097875225987869590740234068168229285530124541627635491946550558656723148470010262470045990971142160329200094610541808583727072115780294399707061152781993302478099957608444287505758651610527642342920325235506440414664409890034063448880813188593359505986898868987104420717612241095438006415062598948798452186692671495832925311922648899866730900903484579974401419163580551444868173614894945871133541274944451079927027620800721135544077620089698495138899050074949348601133456210658604660977336301254767407010804704751757635679653399212473523805938103428962871650893278808262511012770070239531446543201270053046445102286961922248521787705284007148418000799232640880003487794201194031493374502321053266454015121689351197473920753615621704091405889947892082850256650322017256506705446346483191267896233971030498952830778774505680152927460803384458119930753397168682255876855172881025255727069159819200780719798682590720110069962382660357197852559595165614268167509500143849304910900241804775583193156136299745658737091067111882485345553063858882560017913402232174457039236594427852188502008230111874484283708411189631260732814725159325508891144136733914756114355478641930263355514755291338001410736903710999257666258288668761836692996431173239241359688470573823612241072580662480924302892315771802613687385130183212380026756586979351467670770895668152918561516739794340856464091967886562075914334813196194369810648054320663127405562819152846217781085013701439614803963955009392519516850268433145178709235742379536194724965542642583269856543170799432604936876860540221380561390840898368442455839991473466032951463258733475367977416546243633624628250117798939055041024565369161319499058916972844807794562550982184749026458467258085676750114906357025492233884235257938701917079944560205087899749269300369005502328662508898052769809650960291027632871581974767619587244011882282403864247223234339662899392301558269759639793037916171658684101862226596379192901897911407423104038052517298867961080476878255994172325720662321538341469417820004022508258893482594676016739558592978508990903454250033495999816048454428822777856307685425707259102389655820794526650841812183797778545602979833227041181808735749771128343682609485712001933030776221910522464247313251975571008326906017331503355520874052267577720775046458799713506613142739463967691549702319480506921525081987388101748276794077760094645312636660090143130092056949629472480945740354542281656442390304797224301847842334702014254543076881515183716454992609283615163640726284118988432009433687542893921761288658907955648399983711670232239996786385048261641782155525835375830693195171705699822275628071451957719792002383147640883318212683243944530152918920094331631365053606340071152858335400821123867161375991423744037243595228092058669673818171582846073341388480071213910683245448952624488961786796174261637782224759203330680476314738257196344447136057559118678650312005061598419783805793595201390054973126085631218956236740234142560818617325891392617693169766144260395380271669168263621487214588474398509999407516760454537875763846465568438348157395273485477180713241325391413600748463315685553748833273274828500722096352369844784546710145555807242515573300071898129900521194308720476192173367142550197138656905062223165608217784501549738593937254916888047793482284306706025835135056730802263537711674682753057831630828879222543235860517511339099481894154322702754835634655813487492464447587140027025175687276613283377561694916933730202341352744383677977264641572467502085164087852794824243685927998607930259009217498937681864417332771993020955507957861178795130324936426426789713998631711921551469867490374055670257414564220759620778384125671740155621619950393685404531448021306545045152801757661792146435053127816708852461870101284828201716986074036582486562270965558000996100778910381422871904127071671162831183089595154992899644789731584518033319811693380955194913815078539296795340166971346545171780689800147180308599917769129645762732657948118061804283293018426105705620887500836331499705104400279195546840152868874026060978125950159362579246395677109384420040339420919658101449578247040805446334245894992819337636213313199440288484879201352067291383208114349931593668429209665083801785546029538347400038150296836611016900210997167948076634017939849686463583540915027643206116484580214129875059326540055530473432328531551770709834963296655682382194311327645453485578764980195503541374613525932331535628608709156411691404889958823558519068401257542002495121568274543045776875852685521341961072802360111655304051316548774962239806214910045972403188394154653715780765621110217777049074123050972881495488151568455071052240285241798453778438300700287805110207244217462229032525990500753682614466896721126511348859482241855115824734528911925819564692398236684325770321483831562356999117280118039851830850202943166081385087856383118870550025092093470995338300256963168196920181179251181725212821902217263847257337575903917828390769897202512481622289796088218993142264679553715436160954221685458128944097366308818223062953487876370455726099219673697042044573134478536227138863723297892060511733913682365514367236635434974898835235844019453462419460589923502413250356812996450877123947605263641111263390158561986327080474795749197748823904992343665246155189570687959131739116617629220307818475451413635781457191751878441408591990210022313846568696771636481041545219928557730710874349170887451104043788490591278908311051449623989482236171893585157023085256981458673226156345075277205476230535121163295532062688314744304477632916780620283488110160124710359761867863424091702942596143244211998480580133740321463762216917139268345631800805361144738155763544426983806839535168415731438726883819554412128602277160166228442710296683344616704764121212763428220864155551954476973372301451410124920169767633461545408375709465397820672590338470229155925023429276179408270988438118309938536776499358059617627692553797317154479348030845596603558093245036508145212705714534273779002760280979201106148240211212781146107818420657499716922290316987127253933192988222441255895868986354681016267229188694149023275773908786124218618184202405403075511729534274471290887416205399196157537720646108219223620171746565495248513946914570646521632359313104079432712432121127098202403515244351275597174816911185357826901268710148803524782561069638468743389579676163112203496801697879474623944586575015578449552972417416851528005598639756294939492976038928703093693187780286169310396721211488555892203012095488969462146314515187921276912014971450870673969713427746161215017004274762790299191429691759313857745922591073210172953398000387644754834106486362980321661434624559647942481756218087360776688246723798532620658229775671821123041363392803675218227540232788360246653379603816349499528284546777486118113665027023281762681503207419588185369167657878782796700356132482329202718288036974241228325235277232535473058343535455444194024986525052083331857108811623102630831157777885752832180079331942028463517685759403226317965646029288882147332356431922619211990391186465780722554783714450939666999624082444788111701273864097248062210635773290008839623625225778268447548323615196175319576928425238936581058363310374425388142343387341052665002665063821117747044898856448419419041440514244714189399244719055899499167127855333809066273963893319088056384649367717804597428402857623896701885846987909824775973129882034834835756121523185545011195462908288683384084435691758789365124721154172964961068834360363341992535463919340343592569190327347220788899217522380344649489311137460151930127831672509001669122411371855442595031131674955404484777424036424462145723877020646515288590861307920963800656316350485584262423670119289179671553905697614576130045195432160608385723543211186958540882935227744644718894149290026285719637479441530267953331743247902963146448007212994460566278263175672723448120021545618899425093263563311960240866390607040567832562969748639944906938454248118176276576713968556867350405350957342948408895292555908220110100087119397051540999007720970615589878867820693464213984657993026752761627019728048789565454298053718194743021285737205052984743786042054950441398952884389591974974271838098228460498435079116247074892859890304350082418285160376077452704823443272930092451895761046118385540335974471843899202542058720947251816379432399431748868046152789813213114041014161892495736573256275968549035423092166686603763520478198182083057597762224723596195087346756547105610608327579396283818114609916023740812023568460821353961489383070427095206985028308880172907266930832837037273274474291113187495236436205179501329129965822542918186791408702629531739288964756649647046436268758231901439679668208111287478897156402331071863234326787236905817493293756240521069685115104534982331635812973220549561289241223693820306878580925732376234051336534744572372664625250684296647996904431279432659155369099361363526709511015042916748375334836189881475403355580758680778868821443466989995279366974100098585603079956102011663619333921835372694999633357752937171749782451311712756134496257555259385376763750284373870951597764667214939328857733753689931776931187821374677685253030618093527828468499934312388845320227504001530759713353590850556917174428422011981068881950487959091265046170137167866749459906754550073486788728193465061163232672892041130666280349103721937842822786041814427182827411521084730570527210404592750190932755372185262453951717516427584222322319300333445318596462756299885442002141221008407924667113234279614797914030652219592340205619290463164675589473822952742991739519515115096923121578436715278288517273767652264138515745091542755589408911810914878195643324084941866344149861920915440058964817807345494057378689330081572631563825045239729887021151022793469985923427664885641353885483704396332159914477515988710636648222890492670578476288212593132277097244876289007115527663317854199469344757866861177459447869112658208659621054374246572579185687134796975705586308786081385419412154341832130347480292785727285170286841939248064252635247395446664192856388785626493621431017941249170962813493284335749212587406243255869883900935925742896510123380086799827472477816644412466073744572790667936286107339692216234159008024193353082888655208129622150916297403918796336839511216389374476898251559546328797126320528236914658164377366064619801949055105206194185703275776105944372372207402372956044076475363785291293112283101147265286941764937027036643864722272074271876999123381605269035476273494771987278854711152120421258682365999406975500271281486850324591792272136362089621222611502848604547944410906169335583962490078187259245721202336676325584065606324120733017380100535676856790694674850942118459078794999335326386282429560817035896975747760501763021933463334336005661208646098581414439651286696257009975682835859672870251638679698238588783751543012333509320826459767033801415266969350061388476633481232299182946707214760890534545248655736364747773128983390806459058494873681345529377694213332646582971014214858438785844491894871023611041321244706660790033933820392706869919218009962114600079060704297797864900374832054246478197940473816600372478875277358796513994144719093421738109814642355535752422743071736255376965545937279445650089636563326982144563220392636796927457740930438544153252325103796593113061691872035777240156587463176097351682236620693651845621711622244199317067623821190193636029518484880858169361902341966336303028576579740953821186447902749631975640066696292348451455170194530560184758511480076691738205731689688141179299044578413096483223600221526853269648076832089339606123175234898938026562576113913305153479958188168074458878013824415617594171290038206078521329160134103530539856558711402854794119876519668768282391837196596104754017134062722842624790399016104873186926294795122939191625088991180169460174796008800940851406785413613850437585690856876652300568541851398050714166124154308038897214287820226930791154940083032466680274575836779173263451195386826606248736839952868316726751145737878298264539370053526188727676585553592901315083395384545584188176322876166879525675404205778695701772950092169032181260387043160677986398352184351369679745206747629825708395781196639200545122648346047356456840690109308638467464120500091045385674231717238219184187048172810914064583440977551744455685830844386128910041650932858151450902283675109005646084028560388997850479676349584805115612454960187211589182878423407515352508375343872272436030587170983403486634089675694371561993843629560114434803164141850299620323303436471557237238921291215953662869494388161432837226506462157350570328214697803230287103027814279705305784516246989150512450653869467567944995843013022785677481140465487964931332359577747580857253311946080241168309977405449156795134559445193490694045633670146823961049361141453697763334466760554184263241433605342465292229078635981891113454575887039322337828228549033949901550004628345041193294517264432743606490693317496627884969788150314085587279032471728394322330540765565368695949981881512870499194769906315912809627313071828267042389929229358877724197736629754939012141654401452275117345368749791582705838722766187515278804462614757355607324216648886320946586478655016311299447502113847505807269849125800131129426723541175824900921331795772280398934170976442221672370785698514123595746188378251545601220208014371538540664065497907170100030565000933446705222047485274603992017944732497392546058567666058069776006481977110004111871804844966179774844990754683484861166189825316484291272304979639175384971701872365082446939818926601147560669009093027997550883996915186757323564119071503551126956688680199856261982160352236888391246096280563572084948641765106436781304017118811133913825116985190296130905218642854765598945281616028862041404263600590703605603791429907523120046968790322517877335240098719770214871246565287395928818942145158012135784030596609583500296344707372727922422291765923363461002235796061842703461333890292746781199119693402974362493193617217512236936323940007160259206077090472752419354011586056701796098146213756812306721681882398053461611494577894952415856646601530190253402864083826760905839172766417486101357469142038000190936997293416486928978914136875941301163938252207133046533323480501426047346731911915531270857040165750555365895204858678443235202110101448212523670120589590759527313212255365239036559794517999839358140590333673600255751019566373878267740218890324917571042985619178172207482712528998865031229837352157063329546569189838631240867518372822342460539436072334030146633795932922135718346514833244845779667065500903149605396828595398700941388751957842506159554872569483699217216963079040294420077802590164189245188767520131626228747972512628558743800706681979940032929649328284410715507763235238531590139429411143482858479410060374888781362155731116615958221136314552274436829922081421579312142898930734882063105590003685091068587136123896399160064011035670839412434994961805465470777296221179022288441702285386530915938944803119978394089400567950497779684578513711175003244186130585382408977290526052202145424206060962194110683029081813765831743189968417436128784655085626583537186210245359081484668762597494883186482172943480386149870014747442271816445452319341568815893036555095061209806621405725670134027778954341088377338706263188496506067325340675301033499672237608741964576743025683832285373298527565552367585247221796642070877798919350008615091828271871062570885971725215182632157441302507903216871201039485532129628439936857455830100950821036993671648637745425983546168986932894334167976328353613956229948650474745800969875072288541336503861946386717206762793793488861833462339885326727126748106562011375910771733620489725561842172171657914680713204367788428440859468642498045534601597586512678169278548110962675639133954974993520301794695228612639789362544709752945865609865693261271501761188647486054431619568194861666163605860878449559292944043559345054549649045681837870787232632389043544378831357747751072359284548456222662000658788179414231322153182561957381521194120988094833822706613971540537386552647740392315487800223375978979904388382774576743910537628381208767156133200977491269216389563707529224817566682783928316505390090871188428702378018936661931376825106800095640878292544496416779977371261726540113008326840295492454807094567706152410604208607255248032422857726233669789528499645360675678932955847987746877137327067549733078354634814456072128268875682275936569522348746413621188821323574142355310284655570979767134074692862270030611513734103728444188350234751609518284257169531658564038325743236321632229851116344207668087469046162975600328356570275433645102544952999751644511120259737835694975562022072393505603014232816865857861056025309219821468046188284010295615756388433073763398736957801088326643443650903250459937367355866813275322771493385982905495054373466536001818660690002858981809283903290758906868693869895379115488771561804892113759988696252567371896017461105572783583386457796921874832213328855416645890860220108592960949730659367685207169210971519568962906107748049806224624880437688019163639251469251787805741735437425886833281838908053221984127017009643499876700410060708844861693289344588104751591516699888832661415604772574917926206015458913464956961085433308746913990244162590046207012618412458207445873148730667795847601938194923851855867073676304478656945253129588716653404989470784425545489273600178346283512494496967135990706580653192677405129687479868339408087047617671455341162861544341069100277093162540798672044008886951445881871537130777851526880860728075626942465195260107418333136362931909864724241941699784219398975026069374500669254056087231636800267789256469153189125401882543647744378837189375868004149983543958415023891809034425177832376886871414029331251590066762980378501837215972143664875577901623433981158719262486982034476407827940914634737285674738564529898300953748577770637889822188398001785357971776390357274137723936638590529978624519630144773706351466110546265184853506570482066255851295226668025420198579720040465806310427607199343835001516717016995054474413415009462638240758911889902380311138048890533884417026597333510343532372665321470004825972225568874236138137734690985659890016002333583072414338768504178048281464697151252881540374040576561092548339359927994868542820790242257031689609832655594272706044177969838058892326060411375070471850267608238793220414241163840422549683809761087656454481239385158245108231676010636236280122682066520916127676774329144165936880326787861957756617325045183277856863221476917784503620947190509377760443109466721753638609763174893695309735480050619917802261177160398019020773445735750879657046179041501141883461634522979550707759527138517659944630646763155651379238241537086387424863213187273792421478419406373122125517926546640403698143932008308348244594457659197123520056264077891747414130557028961318280857971959543056395632254305888190534999408442441491748916506712872034774099740326493576276361563734852678932717166440763083814951063526515960656211214852486407342478866108787206973034165499910414323421665799846734856204162301214907323815838602006408934480126276424664510812184343576073094323740015386689474423268563675214656332132763744615221568073870939799482025013889451944299861005660595993835634668159341164417591648665986532279369417803556305814955839888501500094231217639384845225637741021086023486582949122335832894511423503526483706522434899146145367849536896774256210861239173787166795403781543327620135856010580305141517161533739722929828337624572363596580416029167220962601130073988463485125856697353678749486418136836576404031936645701019920872645545153892864040906330539305393605619174825308735216981506424297994112946707721473061539049712615463625637357332142490563245562040352063819211939614352991349061789658516403968883155363227659238788324810001709460928272350056192660788908053572130192306400238724809652207104299755992401057199981876576033944849510411006741909485876414681914194442132611214800089614455132467208347871267708376035044152485751300199678288594636208841674612323530123836813911990327860043347883417235726115178821173781061340533390133070872233805097581172405583291510721993602791926923772272985672775380113384243162228535683561344875004365031943714380972217463379390364516237755935463985477012477580805939629833566937223678926233450391897295338849914862672871715575012654980885488012242495759254190264163059817450504562464388412658158112943347997206039278851939322726432017690161383809570717475293995642901359632112894629649320169272322258681333196875336247824347226453487697621034129997047038651430988422226973222240023059247182837740067023102526002934662939766354550528356596588373057336348450658500400156005161190787594045887093075342042730691914340692696764411672137202860370646983512594099153237142059118553622970948116017309987709838889408519044273274742802089675618046057386462178467059824265239422660800835909715626185370431889500537298744084486375266778039150838596775421098939658829156140280709599582213311760566061732718685899459972137675913392416536928708413016947768539512626227467135248725187993421249808566062927978570679993769598740614674139799067230823159529957526593427326402588527429497464607612366308889641492633802282957145933073025738192670050342572309146782658009311846751034853489003374634025848183561597948170249133170137519396408755214091758976421725692746961921867438227188222652527690486684072998861098980434515139832593805468488022321265419331871837606446012170610696251312410639791224871943953681832376086370624986696188150340634336708742556860977326719584386002225514997639268426646137376584546198393844310175025241448279538705043647762071443080886957778070058503508989380016311301625877153527696992553538712639957058443831926131272322133655888318589661571414206048958204338843340397480357345623414508412819596505265450508537832203988637765242816321380110482678743745072561830127764442411102383650074357430754587473104767722309152605628162440141141061667838442351347042651195642349113833493887736792630035917401343420399411262200912974286218574126257375471545150248517520013270146729745824473609264049218496817474807906384127620709818238960853861352920853957561411621264386658387017931633968249905472452633156598486479717242302622033050347020006296446406420255799132482177801048661038406835256790707036314624260558900041761696643234609302828613707392117588710877536312306438557227860221624248841042700905196486795828925972272017523744128781150419219079318338616937170566652110974845775178159380452315781960917880163119873652458469203310342849380259591323971147411076960713001245385615534514372196580613727143772122854068756219704585354366357584727284891858867355346752876311341419312749768530330306652651911406276167917119248859515127187177394646865256551883450513396221869887743402131400421854859441389463039680314465678591688188832224714805173358119779491868903901410751635283772912712871212743551953223350761994560732081049061083453289797366182453220956995109561053575577898561734933918967702200830365562059809079345384762325631604329119275329573642417851222605767999212449414901916121750398446732306088361674768807348407352637822737949199268046344747621877782579424939069746120921942280845290035286468357412082305935036813753567211276162271769914110710560065434678188764453143361565921475655952695029552224237026654097866282822784246781040650147064197506442667111645435948822994923950379504398465642488997889147862541920845822108398150500338038962848228568957727982674248882426581371818299204356952236418495901164846004298536986761583846089335209757160704468119429078889680258995856179886923145260139504426062363205369611729832015972439481857610029816965488663070726815188210181276184555311950526370004765322679711251834356481387556665668642247404008935923685448329468839090735760961400258269178671373743924433380025086651913124417977892607313465954449097878462835769724873426392158982113603326889884469928026463286044626235372226110064367031915640086100986346487194240889687318951470159733870190765072859680302572171391974514595507565210666037381862801267369332750181669412066767737950280813429996837988763106187062028843543541319992733896919848177130447866544720573246555387136332301310383309464878777068021132907620910856695388667386468254338182023148864476602810767827044987208801043668774073488274314309926069486599581492703671272236769872767018033442582618924218631787996430264129990477806068035544011106599766713154663575212651092521702522613747786375170586962340486376064492221971087977191604434866233824648551156900393904747073186927783473206767007613424696510515762302726376075155741093779591003555949674871561668534394935187133892627271888907874306886299607634588389454450696758691099735806082603872452063340267805979840234127016166018846499200650330415103507262840432938097428460823181863051036518808416022268689138183434542744960310305121802987877526051211451307772341175381173795833302777844959457758548645301468733453975856548001024249121930634555265365104121970960744867047514394583581772227884411738197725750802105642899794004932184080233739593577177396353508400341929890952472871056026945885917941306779972070195700506949721440921913959468730895880200781286406623999773842635627120024643516698040680116616908045982398563494086936270863791562001210950758754186552126885440826982111441360422065321813734492452418828086746302023550834005664855998165179681714588438648289749814826538614075049293526309825765010210734838442169824886428782498119124621977978996947114595034618137520685622795734499898574695683941669181618284984955989528886709471919571448342402644142527502313116248156928063677984572612066628028416781760820116135347285368784193303390449783784353545018924579660027960262069046950855313631523823102722537367185222748157144326829534733814727329714075733494023228533354556385612274330831347274308921349403983843865304971516028215398641381338310414214406488726414089165349550130374556651979863159977541022662244398437659123681328419287294131912683480229232737432031063598120440589413861866939057495054918293287908098389821681148855250616563306672258031885244753205812261853362350219874386354448773821877953393918155954541954143096522874535920310392125318297113976022396205667790176180653411526214413399772397807229722184386034051290159645429146308962188314057153726306301696259322169202237228009409323513831646559933008923937962377594868460760577978556259072398317257789119623150626302827472101236181518043187630453967148130312628806816425223579286642113392135166232837480966334247212363971910387614015909026225441030409079141576902069948074656034661784063758527563739685892009807979397027347652724362535856642203096229129910801536506612061613368442462124786233840490202353559439291299062486804273192111673337992628449074451133327834952934507961800202805313604021340976529189622530461461828804013491859779930456882953879410350221046729469275135940435251893262923538444635085349904973339607494424821014847160387226458436825860631371081333162779566838755121987150915376209954336486723851230604448432746729555105770888001306155715488419473633985739970521070465490512670331538397813334418570175259956818767454913911668959674839249689278797227941217493852357489960324433265140328002632801620375091928994872510674019660033361046515582804262769103623917205004618151114696590507787481231672370750515775839802646384978273408116850513753959506791616052213705223118201403833760739992085862815882587817986659663782760831965583222428733555264646856563368825112310246230449671388816790333274252241443067176222185632074406288455384009792940867985277218468159064518600227625888693440014669555263975601347969828359410643278143825972693512874771368680428816677314642375819108604677395833278800825015183783064027091734602122630202815815413123074066560911528248138592683091899276351513800510304582876782900432349811900694438014686171639269943552265500189475740872725813077174966814424318412636704591101198816177595904215622840045727217249097896213944445432806459303548383229003659316070210236502239836748422888552158828490871028828239668892549024500555582051070036959327167219893711109181781578602309964172783446748838422277652621835368635253589560112390565098411464833250739012100674141387217987779821299506795532126379478472893657690083343591188917119333872849101030528355247856344307038445561861810681050311301018025787384135147398076086179237463362135241461848159058276180935077170055840907933376179139043114095338792767054477737333130050678839032124335678903298543246764640833788164221219361744639056668607608519732011588598100901698678473621855519273942001413460760864471353401963062141315173465597590914194329513994117797778575436308907410558255226233608064847837871321197930615032049202537317034630139914281195561234804105758400679111690478023497414543106446655918745022450303439966124107937706569861115776022875110111634071875696105581316767781033925607851464815025988982817960014112187505931818873666677522263169630497508047841101265578249307076590331643695773919821705978973370366833497257883968352409024538595658722015195646719480096837736353065315334899450041783925873152966169676183116973504921999663809187258324467169072374549997540270134272974941752107384880575199471052455063634073561548849201482641092183021201496556570056702331426075730458527058363091697427784078196682796962925320121026281828148922137086539543839392937006328941325989217738764383401689953480679148348899300799547617236682333365929648754782061466033298339984219097471122210193739503904334678872989472272615629295303277844110690717672742190684468897981590621310276571104692648391428054530533109850220392929944712148188611140182340656106189821359974057017343738430594309801004314045447190648991059995456187476448520139032091638649090768515574074807188706944200900823750111104761741583317249470397085608826661863284019397730124840976441263790229476710199528727083036193029515974168307381073179428604703196815613813976902086522288268567621701502179805915599755767317894634870809215458391909292658839184565798930180080341801926011254252246761564552490878076027375317465861817670412208530538698547348911759946156825671290818566904287548065371872297218619907186582587254776680469373461408946323563501157268690537373205315198726418300508321864393458688656986671580336793014944969565830911817526580524309356986935389083602608707379567419686704791144834871415059451438348467042732233451755184552940362786619702368677196180370952165267193778864139787770063140461931920177250563788455729818008193233031046666091571501811912718244990506481892284191355937136653148640761287586245663031445898173259195522171526347193543162602874583456326920046915263314150483797615512193405888076707013833073213639378076581827346012697513328356451509333225284329462360238642875994713531229838353610050402852514726298025889801759424779839934849220620880429408550915516901286604131949658770561268620617146673461139072511330334058685561842538018767667445025186336763229520653029020604730815723793813857749642461504199362484070606167060217065620820166148012229887809748998537587955760116932824795933010066120291706543175177838014295719868003898727712574758203088738008352151486236771753836252139952356945203133079291968033685199425160992664642767911316963661621928222851021106368493865318263609451943731619613152140405472008224625626996730201529357597048991895496239011112864151923265615069567372440009932491041994460580694156441442886737333087511439621974041375401099498150261503050686579043892133862384226568741388428514018796249320410158442953883639875144755851547257671590476572640357147851283690950335812175464003777570063188854783510837107143657816857571814516734676481438188585146990797388768485094476058665299978413514037708874445763779886660910708115851816473625195629574946262895771438377906678471492687600559283009613239810460248431974588310233401774115484436646074891977299313503155723263251553564207684433859928144846542999280093554988011666843536035638125299579274650197940193331263619233180378550312312016961322890520283250204365229180844672259082649663883598786976122257836774891236927775217572078085868064153723159561096849786101392931753518790941615010466158050291273494289803506515446433406809831405273331654177799341899131432912348087110605788558901084570783941970603353694119852780128670853438751903180662371805474666289515912123821212509328769426992082315835346646173804816076536176774318219822951923447146272159873695703009882278494667911266068594783046312408698909513926673700240451224237096838260607274149699402833017116058615550553239921579106857050145571175620171737360736848395224258363434740870517983521558276804697071214912412143413207830662770996723969716950738816957907202410232761678170188605234426247323472716592226975347414656903878399634444567305575236356131673366180941973137108830601596844040391447271175925334875226715141786507652419583240744807358859593769918436893346154401139379527097818935217574487952940256419275169172450538522177079752810294301112511507591148722294929767501689770020126757036492677976211311156605730555265994441214967237065013866696243603062873898627458804869519125308360672601415586578108099722537196817004001616174214171858797952211166897791767207472328252163989473670063696318705750509657282160889797225014628090376514300774734318673226271626237201503121444413420453141693523330889732769520116087778953923108632075382097500199115950140333616175894194089999403041155336506658711734252449455153957253584419360104931630348539363867286978642672673109692452294830278830616722829098626700475219346520773124252436440178512826516840615070113444340405584020078913586361298361847666296211902982759319070248580601409701185040187677350901892188104197954882041735916003786594897064481825312753334290184474202511889391303660795020834914697859404986971909816845758655291899307257630302144286432061575805474084677906355350419585033987804277382615296674787945489098029513672514225039299704675459968906554673470624283308305431108331561907308289985966428468404124080891779179274166851109333151040442760006532788161990429891057194986679053026942340383881743641085405669568369162725976949677697665264542026597742140192567889688694061227381403975551783054545162188223485981891581134885694023998654798746480234786575715472782863531601853638748549091370078214406629308783494363446726524743445566765500492576589072446478148966291662084152452488798743350185948621069477884190054539619999070718420013403367255437498104471036269092589972854732991172438183618860660979588408690633894308068590793391977075113831996174334594238256015112218767797952666035332884869026358933774867827582993121730105138454375283118744669645917246192697626304367978939022297729570662300684896581604582010738949108860388217142336749183189462286036218491908471581721182798382092341943660561043336916889456543895342932044579463126086464157742401130025661817348870381834980159855359475046786975173311791165764194005448724346783986077895047690317218547362803543579894961719023912572395492984177396253164614229124219082195276555723643626680872946157666628799103673672546095092265615528816341470830292548182686489437132184486638460362620769383948845908683068140087637211106982390675495044193005151390028758531195503658340797398654958735330354607363904409120597004187558039363293578551897194005412859189506056014652087554044196161519335775514735881096039247445103022032152535515686091277918222475345486445331198415541063914480141981049345110134172927551891293729914508537297453657323922818003641369340655558251850876044271936714909247628651180997000968675905644891907903864547534737589865349856414107694597096592929809281845363479528318424463452464864694673287556990480679280722643196255754689343380392217030739536174283211900706002503887836515738369138832904936591795417034574412868318290238128537602883812152702332420932432113273373985473933703009928438834124997734685065419569818212502177825400564294818736161460354269155958831033774403082526287201937755537287512964916668479029948777320005677648121718358178220488758788813603087928922479134142756958585243274285713452802426512121045618575118035140081401913149049444487184904419010377638517079956031381102708538451260064478688765392617895553554493441103864396174362797063671962107901258514078539438033421686752381279692870442090196070559405376611113118974646291534165542403454952558868450269805597310072717469438159526626372367835874241515336363493306445529152158026040076740541765929519971547118827765107300170369492008498001559821603649866469337213301258034449750770935248424930510707651041082252522559092348274461149292168971160995866478639965579551551089453014170629155240630862799674754014084122533674871202089412487609070610844604802397722183524201565657660255285263105764428253309054079448667589642401094493239914585368736762015890193247506973451377119389084904040884646581828820465917369988592495517604060067630801392738753738493755969872028001845989953209748470049974651115459563015028836542486107501222332018429379154653335305441643402925373196074500770147091617717108728108417113832127409549976078274285092052199509350998509044087270136039620025175462195958368026432511566705582280897148324223215973908814305719444528213555966694541568932809387221741613856610202525481610004811392982002581802875114385765792384146313635225858645356051356667348109556496564822026851097548825560423309606795413631526073399830025878189975877073996418053807129444257648352366755382213361579571702038621219912268018137230015300994534421485776445901914170114731487218406853359692236367934353120507183450991184004922080619632888724562361725902163726963488547969564226711431911170780408725294615657560950652293669443551082055420793739275615552611866105338542235074036808207858607026827731830550430891248935753972263204089522277746192208900260615419065815579127865900456267422757962103524611267549597168831615547616296310740402555647118813842102572088713842308476529464043323698606884538441307451838942383319090666636478951530895424147289781915790032291552173609303228923293905618696948021099047763500046670209855415521679150149824544216296561696458559822725647989613337105835354576907905457102693659124152983075179266741099315669055917557151334321083251711407968355447959003989862580160017373507190642169392794988287818543698279948708129582904995913506889160419632286139047905128599192304818112833988076553556325650698894004794139736666421770096846495384171257672685560860225825991970168795087784397096649554620705912457234137213326387343119148777800050653439586223198821592662112078224531051619392377002224479432071773983785072859478778639772034908494510275600669235488763160777403352287877023638228532059084481190274410914546254702599697921195108732963914036974919964442347074380131412029322242966590789926682293614677293546463593675990351331033519738027275256533609577112709938620281569788876647949398701527391938346766790345003104992152062011426345744598617995050583484103662400564145386458101232377255477474876630916192640419771386913297714736761787269984453769811322548455590168595181381886016170761652815071874147559228836687942729159278690505666748774885432676888789105574406906812432783161329246620792884724211239635442341049727471553298057790399693551998423767573014880084469505949244560358996985754033030972999024252766017166021784668916215667037750987206436932429243000762332395105962756815645175633656589985347387855867323814029918147857954213180372843585196360677211369850381704429888331938614408185131156903853405073828137957680106412577518643859989932374982807877315083052893758113994688273288768346937983782315844794676606295084740665422703616811891699715465221207015788258332851428029947871496526109671894506572008879550015921343253643992944395338471217744776743935934114819783190096566388370119098286181452656057713786549376678651466392275838801126605183258880431997974556429679256339990981873087357661036443306643277542419177990469504875885028563236078617268059517448545333595016518645437093811057181421068105220607183516101354352438601098377716922029817750801217135093639025760366194346742539863046106729442589309261623432324481770248696831739911173507987073372207013792355198341513220805200956295284253503409716790128394448770288140477771057959379044910674400667196224222674943566710890673532696298320690180692767747731474625539548049938747508864611984296899344171985322890605509005606123081521807012427196968242981600671311828989816733015509027907283732231607207589861485610585837719642447269061172048586478471902762773816146266495887228848220069497616108003987295903792363699530998382837477233416430038014976789828094466035977824642969011732771611289480844311961469592312405470618817758685391720851107818240408614143852921423151250909474028976370758025477637030506987530298284760546887910010804770798732055655498424831652226888771939109228450349699819133976059613992225236341293581642697601430715170224571777777083744548128999633647899825881617648497256771602474605854600254294986487239889072882901116376363427064651900096855339639913216232184941467391742872986003736333280313935068450313049909347555676975893241358235111902648249705299881037030184352753488350837998483711579674585320899745555890364221432263180921199997761027044784548897305878801866087032091088597066616232076241897634709962246262341625263478288891546785495927088699862541729785050209334104028085118879805878254262861445935060909445028355821562721663275779462323893535019445592745521518530958037454143609454897347498790931572022109736415707999308678556668510740982597655443926491576871591511701908819801415142899869509493893824294365116497833262344753300858074630658331434568471820758160082358475095286149356187398940104474236254627681614131304449528635853008243430203651292417560458720456249416257286825405197660440312257046171448411902215800933665371625767844798099104547261225398339935675038632092804097869986556168714381927380288924336360639308641300321067984587171024836445808731892441970074716082813158916708270209547354426706977318634217580612793736450737762694849635354191010568337729481060781013909275403275113044064751199047552798128679152574157247285220165425233499830808660413745431948212345385094350395302679730268111141699542815332624826212525407881183957586607603763102991576213100588827490292065900507483876750787229968641065338865775009087765645978061070320870780339694483996168518880778275431863370757091638904668017293146761510863301154431758173421435815935541575367599448373623431052432656221042597206709771898303897724007865967298747666764953863039683812044137727781989060464162071267031965678154998492423732396706218033313810145473720879004849203719047778202754226267257723631760622353985480450141402134049238536203876213557016675610036694270399019483598361939313681623056517447628577147676063624542716804062799490971476205525478296988956495072849688132179427016799938109372567542027784919757300272110981598219961805627265566582871295356688697641274484372655618466170599097232795054317945153289721381973525821362613231000209088077697520413804237873251141831786719086975364409475133272355260800856420500341452917963078727382069732321937577737786876801471001916163144306753123060938035109450762519750006004896915991891965631587845989802437162789040710338852066170624881757950450352690867348933542740508446732034270726979731939192413674587914055119623475324314667479570720044339926383816279629977507896493631008651272497349447376356855493568816845944049851122212646905590296177747850482605149841209633856852736998133839008563346231230118633361053429364221062011919356640231129568097810712226943253904143750345346549403253806937602792048624139491716075875128047533830628429121465262019489632318057785828067580954681077032278986490135369752002830566567363006462576919105315493441419791426614967229327546732596559079800990940264727854715906953238841434364605636518475644823522547216558960786555467059351330960352941230725311537756269285457630882727748213964836566621222988627695682300339245125455204163430351962675389681737814808725114929233551495113056299286090213455047458957791485136675896530939698239563150209695818710113268128913106133980693537742446818930179049048049174060744272081100934303932805798796986970094657208964424569227964281623477517912746692775426503503602316037896557093428076939530014732801878827034705679111495658673997814965537389745584959585572164724399198791166761248818939459712738224472711100620669716825879734018198698120462142056109778402358323989285037816832316897215978322422456218426834214157782272577486459761517256252361415213705365140326795089620494937508285456427555711529760418883792478748015626604890847497855684355201143413200947261224819015573768239597645036684151386852618048929192270310440028507680399819868334196020756024380940754578700176027536743021496013622562312140143286051749375226226518686008566790568014074219517637396948995975970172255719137978144508512509756760124223777447097001368729232257675287644869506209277609749937352484121404426550621561295264727991382692270642006077873300921270085537707581844618708820152971413487294051699748253413777864676006495180747587069272673177392911882925149593939016361231200715363278415533476108876261799180772503291702212221026405618816073264934908540109216078205073981987065063016820478060297805981846990687211889810645330941397224826196020189687187757064412220553170270631124758837795614469759671908690434814800760527947156346584508741445378727306841999270853159392279694473350259297494610369735762021282083916798730522973886647001548419994730636019804065789469626733716237259583316494213673386628784988141217599919924686499165186935311060136937075034526094289505990758309789118363630145979278292032077996849983556010437789536401246565214688912533090080105984022069858066510451476875645722727256971577116326549590588501416278877019107868542714651628554710136526676713980740572689726091554362337073304537470688151870540012816085893967162873167873636231263869154312158461468343828746922769852112382018469337035535407112043376935640939296682060935850168252040880008298772290691221456591365893770295144529888414790151998764485891671599022431169735245081307150002739569514355893478941848870173893002522015556074557520135921215742813199618035469002938000440095376823745389682705930791536110097301812118444735386291726650003178449249014552597428419479303849830833377702278107291992998936458036358316019879068796522097779887801744349321923159225102133830946838860186949900642070210693792075426001654825636382866984746347598090422943524717021239149158990965710199668697065718529593482224692084968382458145934130942324119882778444398063028447681875208892586441798144380597620709302904488742198332283057737893955092731087026733864079974279042129169075207730801003340210110728135188375328357689637416105797450480488840914308576885099626080313187277119743503204074731024248643748675666709028281933133456660273544172150432028601397292897824798348919603773501763431967098619187774284347262185121098975945295515020104433858869152261063038083597547487070573811653461901873931081319861255679067693608407983807889176260194363603394480260955532220148869099295692126536819054355369010314244795545854677871832072323356038384807694382498497436621966262982802496584032933004712212798234141352368896297226379446543967241130344364958747343810164823329789621499133376344002689531798463449062703990718737543199618718450980657029991640631661967536904813329503917004459228124360817009726253343350201351171710910806880148713129884077100357958369755527684291745228080548464159420795836105168165496049256859294066568915546422105104465693722691979708945092489720544622650647984565121722362791927131875248185663750149263071090036985359901127670193415908482916126518654270011506247002571500405080292265782334263795352468798344861462232619085355422127045989900078602632471068943511387067342598435745138300578596014455407742804802900187676611626596434056905474763602460130134674137607710447583549539852194231307800152324158509539238735196741190496166530045730383923844919570321358578315374455087974583437848420116686199243226374246244752433128460877725103281137338698245539402733704792986459250199844113815365192626860010557836228738566852754868855468322662708920908370893984527482548714446948276340710252753995457790933539167291046488905940024544711549287069209627967831733978423944819939208860620932080929819678758786980741900344818028620070638503680704649652917444615206522224474234942963102134887647520551199370994466125545817288210915402252838619178041038384555946917224678316678554858408037836953843923799957957159621151132943199661189882515040436516902338091274771423654220402968496519063571667015863121511581572218019840293597223994064286801124722818515589636790387029696465503705721555632774128671209796987866292168398136393998321467978860510817296637149630070918735883154677473064800133152021529737059450408816004307594604961754146514074624391691858486669562832002570479190212040480934781928916861773869585136198187748368959266650924432374734755453424101183193633028715082459183987641439760945625589046148567626684671573883752890379750800127074110385573128839009231049882795151127460603116152174422222554941119336304615229481765768597882989371351824009870055294156427413706786315871640192747092413675953548369259102531505989048148732266803354490021381260913245293391059214541863633505236332814761666658412600341467417728503123057896164053861037640083664095944751645085039500939164936629918948895427229491728841286576415516499287396795576491662007362643394407504149707782948268851396716013136699079773742368269053366014117162368855625814718057287402669678932573907939393407747662303128060177254963764264181942483472898192938209902528385878882982910416665894222733224772279196620188801000073513032102710193349092846772990020219062845496183070200900622971930637003894658174779461619731686637031702228170773801773799639321828980893277749030331094535197639030084227566293790660671489244020067858985028322645311163314848649326820594975128586035905579307646894247639710061311841089105625395499845142891621667560368517352499452649629898081792488325682052089704516857882176188606648985427580159284615382709665653757083106268005981058110540711342137422884710743347300688593007665307197826676413767376887945884104144456854104394298092130487190944638429387953035353822173266936338765137852007094712755630863056874672414623080773005218070572332785494020437530249243424278369673094909312908190337827259692512540976778171385613048164883262142314206034295231119166641981881398200687732131855710500415925544016696846045257511339027509424494145070152288123230933460093364165111422611210623065091243826425926928014954012754669144674700650480387796977146616084142657165997324895848751609779586858500891291171656128024237405731031566868591446783547847320737669769721927342480183623768794077810459312761829916193513987804420127439272052393977839714592244802966156117830864457807310860287740089298464331018444261114182980033330564229209991596731718478678555185956878696124986894646527899057769301696770471561371063957958096593551487235892295032121379995503132630415588489212102239082163654639657865237166688070133889203605638367738445286094880899491735924910021921326154324739448096860411540801236483883054900924901474523394679461045561977929783920310284118795875969197767136271642229122709920650563404417622679657000348604572447849013863884229197446901472280745550175133374824798879187340160980773051241101639699470306191500985417535901305347217678672836471932289728146645191257966296494916708949110984456915409300018483006597305459240527893623169727357311677978571794412027748477890751695109202088807068846024165132056399360201390019915528672069057579681196829214198070708818432895666965342804220207434742786717565754262430084500850126954009480331586440861430646289452643580656285425575221810006774379619988033088100693094935206041626889085305495855132166912577967291017832424221207715924314341832667336309522225818618205597865687769432310212778369794430638708790506524948699681144496252120963298081089818587180600567834332100682055616374660944497912901432795402405589865235963371121802137571798811615077682900262643648216015737286323451024544432713727813328212885506968912541436461650959738925492445327037072623409920134674430003958467069338742580018453845385711720762553325323307373502918120876610833854684394681629835697390389288795942961247111356490368163710869610483520666130495048960086964031403857834759147287001479200307780795451958728465644875210869257931515201232699837712150256650540262281630426587331891658485805408456450378160253810413844667852208346343466577747916066467887123817955558420024347614800411004530874586027945615419078871192970278797579801708926464571378199681511671137613702236907233033878020073402940630759929805038288191440614068890156453025035096138853762917828805254238138257249034590363134435518273931583781685089206458268298036867588784553672985774240792520718223692958026027671555837894725560373649187219524199644845868620764222971407608704296260827800637389277569059411291937214093432775563181443982342024265600984484048110241295646352747544722498345107493792697984197695373618319881864796337695330226364078989134799933776943765809574558138777258357154301391058450770647210146029939981624122780692161794221156161852077579702586401363777029222392933134627610508921197746199514886323169603075570010387435369263074693471817479904509240167833208402839053499708480073963045144152684876252024025241519316859910612726241458682719767166993991856309211094082514344187009546190535698442381391992119213225362781915146345042158895417546756504179050437281136572666793302775460584084467006895335725825927023849167392664517856415146292477716014443619048444330092573056790569010249320832319187614824489168108740229793496635998412645700154711385085884876553562392178065561071422762734384131492447833654864958046991404257268731637286677874025793641273288986682515855395231772907069856814713988474502448344182016287656309073628399490476429079965680532425017242028422576993795873708390338211063062860228828554689227886546828847696497442978839160620458725407769288038362541926377416702665969321823303021542867240707046971666547457855395701555097158530107532562414687156420209502583742870340539515510977573507386581120079536519749856978469283078696715685485378337363269115787136615282068379261323163168793990899951326283463296492405527070978111623796600859181180962118567920268395934414601632222923608951431603331481610385437765152803681295214516110814929238802516475932408332578458214793866959817544455323658995621030038355104911504499811340171116296802663448472500210676975515692343535350165736410424718211645542416307688027346812229830844964966221527780465200699963154392607303816884161731379956937327136577161087113981486666057495741384172749341359317252137075816130614630689450359219117078154770835208370092586702300384561893865317460583266712840402218416424948032813170100265833200775996242133655086686240745213627204590595716412979517299271373922288240640543956577707486972618426606527137102199614723551533241933301936100476228659993057929648277212850458984945429740753587394966805354168412442875502843788961978584204090399211099750782663419836561540020170819085483275675839226733008267879648032622495697962711026686278255107224949492739449586127274172739286880573212129426498891643822175196039580324315873916673240627729395441837041195167976547732676587615796628476071015805424700649610230116910802688580041824218089301909894483325334956175080129890268843871952889231439980131896324979095565576069608574885094501443456063021960986126158183234183094267826302719513102241675106994233395479200878141308015746828092524570240334157820709845157728267041700061431331485351557271414314006452705696141093545286089413790132992262134451686696461340480764897391729391239291957457259779006916396938565159528283757245220773750531863730490460901111580962487647635899728421783266682070699989071902513559398519817895905295918665057332989232599612424847149991819356106349058582623988688237393972784932523399486202936208908321515538359834014166882448879909458845819662888963021588877932839731677816998746699225745040680122248137623441669747301603478273859513695477135738063610742443070871432917468702305824580512867115009262898300527308179875324238463229037778892138496198559826676699267864889224697824047051635698586163752007695280568375166662528949033794656653866998421085022947890373306149109514151857325469402928317774459801703348115886935009741264381074002338802667986110641302915583809617922501553712357342152834413210757704868738953368331806308539523401359380511137883786364964028993399391784385347686716740725496757273272784050716259457424337748246042994463602628100898649378698388260143398435416474171304209792735229420671803820519257253583998737353200011425195008569932440096010036390718074379349663114576074381460765340372909090537445276068204270231982857370690884435065079698403965888762514904888619861995361339964504962401121348039608930532228758853229871899704588060183863724244469161836847576104041892531126283746661759546048680837966096766834715185874799912730191518874393792955351339747574898662548294370432376367909349414791793488718637491440335119869924605258104010593881393420961338177415308647043261731484410870501951084557267106494117542463204075628294283544422402731930914663563400229289147961257393863824529502948764587834647913963564561149157091591767291317944786316161284435465194987792189873104131376859369932238661862597136657635344103147005774060073263597698757311024985608785402630660223765016176681652422792991308083210301095219049033611484184043197269812144742076657870051579394716202165586240530905767041263613859445273307616877309088956453521704485876499300940975257322908025682101379652971253548204271668422778582845605819361971776049088121999778348765153622236864032993677038365481182331924946988581934408637867067719508922771724219693453622409111556214353486763280400208347677516298746167947384772238734682894017496619788984489333728443210409024301177720482161756832753068793438732969634732770655212558806870368116027314205852092309223747325975959354312901065065095993829400787750985926932001864511311943653425613339386644099419743763633381000735413436871388533919393336417183859452116934675275065458462505062660488775606192019792495038765852634183196908549659556628783971553947184089197425899286932393435288631519209237961322187297866259995587820088776523812035619226809142951946569868723161487785598649644599269101617778446149212301568994387488181807187817056840497670368203105018683670957098919401290169844950901442987381100389762931418453524407095157574383720080443314617192324078821245395324191770029806094526550943684565121921003168984342883778648711763065948532985512841222051550933983218385368937649875880367635284871805027634585754705302774575413445063112961581047983965266608287185662712296094731843217290172737476345927932595342401941401984167557502831920152429546233710376471137053620698186987851547866795574836902270386347407988088611818956232477714929422869805545605866019662127522372931868612781849125533107009710693547857899915072547245208903396795194205678894732793271206750500709717686617426750111829900843233282652393470361725454889367144770681880248307729936814649350822020421266147809528621966035537192724103462378981445254315073471889159246471738957648713301867107488841888687990852413092774273390499511950899843112855862475094264615389567724437361545145561784759994764731659206092352293328496960069445624117443136624837022125968134046919338648946410167550079947531115877752827535750910209295725987604719276644785781804888962911310152534188646124428775118857428528148375007491256342562544553446065585483266735092749037113667259844836542938611935487550886787240350192073631184169788742522185124605049620832403679507274634420772734439333369649450321107791139688699539637125931600427912770062093326250578291284952040389018595809240545790591063111985610212934881330874092231402579956224479297340269842108664326710273395590600425032573871491007936348044718867504385692060108711085425338132422298650524079752247855704595988819425502787178151998541074956256159293692662481615404995288455860502745389178489870726646714954646998088093442434622585781078787809741924455664320307320767009677091066739322187406605478604445434754656517368140865628547882978923452221260701237053126408146260105062153006144861232983849019698099993369978635224452357055430135867980780791902277706684023309862136136632741588891133874965035430665971844496641437797701531846774645819794897671859415309778903237353817916345160469545701068564638287335389035107481152309324406771614437179884584388791072750252216921167889400268616333863790448467826890702955227065801224169055616261855512555809439257576123678714717397528795294224570205186356107794083186930899996167051216643301255705873544366057022801965974136092731899746259703567023761406219094540904247346151024805406356563682080684116138340492493391387833416094962898172173487808450380531741024800216409987665259921661723242827182303662394762242831747307414186481320336968058699033870876164102221575189743868961779518797187780414025248927372515319914086987242210784211458854912531769715990407391652602303945505488277105750283112737888197965971669128718778184865523559056451152932191158637339279929125687901427950680262366733251831971459379951045896593439525397302868451150004920019848392912373105140638740666611273491489868395241817319885613526223962056823989430884969337429220110679254243619375406559859530244615772818601730897334308824084421055324359707019694333832917873168849896761001060357888419255068297852948261692203954473744271384569565212667937281286632009610218052920920295966993819776927076861708694715352860983891502972869102466005322745968248772386529918186753600589614707120251093954295032641048784693260200509130335393448244242596143444577402474310518167508622614918426037837475931267777352850875703912656476105059796624859819735309763140215200992618661261699021347118629122587457106054687399435356043269468823178213108758046741904414098484107787822643038546253927556528493297959007874599125134647649534531136349899874382085738730656335978214646095513204848079329823979806107900547385981982994802442234062890351821398997351910588516748706240836706365224194926229881400604312788062834150750754301976712711375084780588743968158063271220001029606222646070184704088629660221101734295128969498460616612503573614080651925708222868571107066841076265436160134304312082834633790637374190618344500693064058264941882247863465252724808796228352709020373146934483744129896206561343698328665861619915497239102958988206315874510953721417834578303468296426344267217210468229908709293067450343606942899776762918826680481511797390955742897684385764872094762601580309914221669436436021817561524168622497325209340565292417329462945424107767644104204648200354882038800021131070772100462705723463115482655846591408016506069611905432245637583339356890438531524067532895833072468836708684565259533566627556367751464541317200987654380657827686289636931566567483204979651751559240759140132871769015189260683374863293341781954367401748165938172705689600867294941413425251178874366355221662917877859196180553214104755614260887184210969683546991134839645407984663663880713760733166257603800536209310569574721538677097516251586226925832849313442709714724971109766217927807885073585376223987852062349484121439337779293469112080531294892120305533721878933944772774812984855180908875667784673499638554863329075190942124918497544874512564066203805191322357038639191184086368394467773868136463272873689467101838218014328332538138909844807624825400429028367695152732656854971412145431806279370267295853519464667549444260512442196947386670008772213568639215977774352315217896771826858084517062688979250936470409192015382922959458301046693215989300816048414487072255375955667802745836745401697157586513987340209045452055234647638440084800690481519437498791085077619232059134916555360812629188298587044312409011056634368539952311945470387534512470086448107982952896421783349826191846185985202653588435703532655804051092079605025436749056780220592976690566698400679962716744350787609369388817199581389607000455160183391031495032043768058650623600662173390025791018325770204171799336994347257349528361226108161586683966923495526611682543114046428908542853854350990876243316480537043413887441704036921050343433039512315894328882387850266515846685829770064786663372000290688569657458367941876612741656467951838653680246687714252967867088031523613425330012448220929277033759074134728162086193524472594145408130191087110398369434717557443491211268925739193926914180999308621706537577812429740078239762973575824598592561592926194238146588716579543348302465740727925398354131945451343448214039886374151070974198760101713418538115897957897042680281359539785409731599518867806193617217226691192624577953772180294987178611610706408480898454126067187713311783947556840830237662367102701070933785266941918205617290828189328488084684402860258657067539251385213442274812234198877526101694719154473251177846659005770422041805357118393393498766098942823549088393125994729919846693702428945077243533269564016340537714561423191324012265308026102494524073383626633343639009983445950733220418612918785990118681872249745528340806959913917990179434542937977476883833496025690106102428061875000466810724070414869727798047375112238592588924186935318136065745407128409881260518374139356047580590312610969643276558838938061761031936731171690557290474342590279308710536688022322492435533895477256411240549921636911945002116378052241786962571110745744280018311678824254063117515443825341007649223401921058503425127240396754764563246158894678342195603347765044857756631900270424965046591260364812134353531485737663816192859735536956118476976505674700048336963139157426192101853198466192842584526472389545599967352828213691808496407860795511084518458521053759632277213941060890895028417083576724531508414846405126626883023458017295819903851052988578566311473595970098222570650273895911081602181497101562658872875121455731070351838762576904141280953095039457433746655630153168185304522365083954061862055734144630673130655519474986717320783559707084840078676538902456877144227822272364844804091479813673159348146001438474705609196051863035721800473404497825725284218472315109699858903921196751469208074118346200900457844024028275289056811918649850892844568912005259982198851334039163686471463034083696356989892479741362545012518493920748101073432348759721747957680977725929496663646365703135688669140737363767660480586859210166889295287270070172109467941090590081281706154472791454017379768827001148631581884667643257531401462005874034629439895823595854095328149986681242668791010079502971931192018299417835376156630298077368288438374399990344181141110155486397912821672032099507741613113554550013743675041043618042947608457792023625069266056751011971548445590108434109291714515974236236383813010937778963818562897928836142784698935348464493117327955624712022996605056375489361425431471638176625333995707152504516458417499838700245799976830650583421834339681088582668433864235607174796479660184342498204994785361206812046139959021514651963354901107013275576213869155461905580999844055810369910505135497581818795877219600549543004984025687840706551362439766516563213590015182954801137140026848037821842318773923535715254335386885390745161147029222567746241363183138702791201135539225756208141421329351185302242701294974944531783529184329157794607399219351744546096073245989149203276826068922356959151006088662817902511546572031532394423403662023602055633725037095445999590011936249863174875475812754068954190648878851588841570387669648449267480257045102651607803448038984870124454777433081148983332590943525623904302130931894185213828636292185544670937859967161558823793217916770571135987946476510831314201426543247238164775215043394989792129519463643173087811451811098567636878551887031374106445773956416213783073446395318538701356016479878997786193073622317879666591794239960676450119475043557445196991379315475570462214788986708375038412782000681263794415895712494134620975565991785404360591473200492160628443905717217695141212124461666493825731707360019717247513737209552262433766016731018067835051627087605005722567447172539971143893909832954100073968572581971722387408495947604670150002847136530184711589391374473961494345698815829046154421643539784130075814354032815530492157520500441483740937361668617261002629659549084388681908485473595424077639255568705679107894374620035122164739664949999856197025095298181205901670311851377696895661812221628848647015820616189923064028550685046088637401050964350545617431652527358036537227458585916664405914091274239863548625284918361037009047284538458199663178417847878942369740984317513026459042581678002367467562904786328040853011745199412398357118417820778479367771495002266302610156938051162091929121530159156861372439132300982454223757708430390821418641739571276603227938761421551731620605571968881337781480565842778752191490527453758184781960389755699437298078595906732955082739827043204599927487662403934833149808867012828933259574743491773414506147469111122450726042277202079516157587436237949143165869506608161122285227856759208146588635824323007225208992090204920299587996322786726849163105542936570377151778985136722463501311265313303618713964453558296315251154730257572777995974102954367379301913323791834294140897223222956131457341453821269808938483616470472136932364393398352621641751837971404645965668130530149416175989700240025566101906385672054711598040895497337707824392242043495765631704863230051742791996350431830571889142972584466018539398554188174335287094683728597045691634709731679113250769113942658455344213432926678998960811237782347078120645961797657505062515690800708433983251760877387995642379717594865742740605529572278371260828355032728525415624945010951086478596685990365132537114150771751474709150566012534765988401490583156002852157344955119627316768184223056079503317072966305336430973420107436704306802087048704866423840055242000177001995666237190741787994066301653583923531126565770749729343631021364002247149680959375818534894285511909317218365526483043744632510344856329770621498040276919292051978846047331094299107326831967101396350578070570414640863613034565353985763466781735025227486913706909657185508542931647105896776952734832860138388413651503000856547324636479398853368543924247562762470164871075805583606157833649496359842101023631614556429597123522088303408501848515743833166215716740647494486579520273727318959346854149147876177501023491393328155530958906047313635777435535852976082889999450756537763272383203561312110115068041243467249563324790791069889521319550732580129293672344710406135460698861557803052722862320809095189344457961307904769303772127165522560153221038738960592471159138033299189349406462771509368694719188911889206204978510352097197907242847487575836700283129520093163944228250470311037138240230814567560328305461570759113022128131231468769600519761799641079425344431822161855557656641866349632464215863024601862609312533532788092636500812321017906172167354149427994041502085835584589834904828862743176707066679856074841069341452235717755408399885168347537578948524613787391864709490457814729954007239240575033583728279752674318456587120280054192056818135373402356878528295667559294175777812062588302131418195430756078149865770598055013408357946784141126641592735450083316501255264127264461934666708762941737993461544377577855729308775374523886286979640222381433275704810135540619132274827424670247782646363610371430413013966203418147526272828578156462253976404574992128699523376734657723226597587854662321411387052471535346275936956525562328461418040023192780714106185986407824883602497593572606848430729974968503321165853750369332581126288783618938120615738463983450242194977876791000502719130647216703946931343402635409467069585941584893717246712282859722824725416433762174349800195904364713677433316470379355503010373198003226234483050351501581424368289322067166635304391808139529320739321873219579128152486780931501105714967540049893481519354269598151415033305689380113656413502257907083601719995094376651971348544569872192773592664592105502601917015476719318959680483178258098589377830026525968993199568185518072275065387434192658677797204605018928594702671229282942800532044751907977849628041978919973110129573633835540388106829178952548527618843876057194015195794533095628475438826010414540552712593479375327501607497701976330731607282920019043814674655839676094216760989330315241062095238587087375588638011308089032193953236222181482034076511599838186033044011868492791493695116278366155285980397086203017558524013696493992928091828088341141814354812330402562117729811805990901316659696341709839149297709231637966704869824090504728728544632580841419571788576857290134354172117068228600620335676620703381597285087317190751953921686453718726543272609688948658571302548690614785587562199210013797795802031553423237700854786872139648046421001123641654410024025512112703639594015932450267403786239873108342199492446256465696938554292218862099837808733745564223732324892674811605157066533597134634875789593394179448564232229296800531160478121061366983936447639888217204993283025918682140284460943242989241603886273957022762204459184726849115119307701622685708280569265812587108609192729472820830066980719375298150599340797194140281233915895423030988053715494760241753517005182780420973407494994999862792076422536188038012470453897966274913037156603373952344274683498418253485509280058188647548306325906212237962548084982329706635903113209814701313615952180132156963417072562518184308564119058700049393288840595906199426469288293665098078251685928389092475322942238354552161450786693439450133430807314297928912030998977054681330875197347327382531471135871344000110484378516565700345571808515184578911012870918373814022935699699071333207652855765562234380000077735665309586838503205993207607912912453680295586323310927232038777144755180952468549423983896304056818882983832706713598666757679504901689060659028922240621262890354183277230917539057469365170431622568378444167888299609445121674628139625894787831521004766749505169195183485509790078752459077723443724644694161244996445532443951507447466461814909601768733344218638751757343029720433414124390304192598147471963553185781253582550068784260279180092207789887538091122410805189647882430099961007985081765114195360212385033619221996983616469378181266540313824646084412208938570872379129034207432406935933132893133715558617251700710817340435436752093786891478071569746720434128302964407713215271729576639398795334131730459992445611897724481654679993894592932271253226666863968901687843086291791810760652857216965270341564165598721191510743107464161511996009808010877046213814544588827787583824025311846443348993911165974483791576158729199987617459915352591903722661191218654646235571060293074689704868685532401905612228424379034956114158873003863506094636334038770933627151907838950476580679665150495730405339183099867321938924970841649493047630498060478622411290032077497641167321818495708094472507084549500991885649812460093144071271229643337869676787490988805835511051076287816097263435827864845621334738703290411709139465510747021230244527714330037604888426185156115752541696103835778456202177312179794350251449427078137196590964009864723250147360829941580855343638582122141411663383136073529206613583213680315778538249840425792422848828581200130275761629729164133341538350221806416988215680037362513725787293338216124473464686517940957460014372238476783416846952981900882935558321387737154117667765248840042583109853754303056958536192892194757611963593722442245844250005503824798084741788845830240858120894780922625356366098955854461205507259132487879709404814649600380086682473904280339806159014633106725348783418951331700780351594050715760025833115467911099019971266251546665721261637398185443032839448315388814380295176122113805983494032709082178083051229909001092320839992918402447938264749348878200703721869570296093657668708948773259273264150722107911076354981569884386636516384093107865382569660961283203902155878298970651901382561895534669498831650946705611928242357645114105648250052148418460020942705981471938255199616855915550731771637429825877040490480048988758351827209927206962845779802893467713827417054809604969084115237480089579322933858944545167695514815895195922345536630910778224228402522641218199744765647382567872460966764000535005266192460827039778388327763873785001395227811549488495868703524999388855769428888848636667321007444050694866808767051505937375254035625862671174706078490385440979881457360479234471545397055075147190388475140581318864585674750583234980575057578532612092500466780093318776254939253610397764311358589969105781029890845883916103432184770912686279279933609871428543777030540902292576324905115964803034885938987919496806427750321317826056470912678218927025314893596411426576068976049570555887074183319922482021327342779958785293784726687857669107677253195794554294799502161290747959383785337608853317082070380195306424464172118081410783167660558017233342049096840933739934571385755268875967137635829910771084651074521086699176930432569316970527086126055542672946631116489122868441155967712860412287470367776996915674614714172286072801871753716252903136142064131755228094988506142623877149092467162677516959984864770864157879673787769563734937840919243410961711753778909898759382216727604466520968076728948953757070509100179229657288890697380297911828056028362066782802446922469772966157027855487663470757675549999650618980036416737555167883743832304755524166949763797822801266566358122110722914913429074789163173793856494721383637934512406235294530845035382673810439741309962225577490351214336963553431924406203618236281528278118654474263217927906864151262023289258605174057767947236905644230766963260146870673932665990068760010949690687871530066193909763570153622113196501885964501762495727541920676138150378962480280545381831317253908459781650533256337880651387651619928208918563935661976039835283891828229949544644578477903135640899635905683482716100897372402348660542030576981546568780896356381953851703602426289908166578768694279088459129376722207328256601537099972602659846877464784547737031697282462913965721211519358869338827536999688854149539118905583084312067498405117889571973883170275834383956755431145240535257136762186422262394655852890912277033975097042770511911030481467375785789382847615635218590051128428055256038856925573840755098922948762133870266065374151652136131460653997328180934565277441675269729767900779993699360950267722497611844529003139252248648080147873761940315724961503878468740979597458311951593992398328693215169506794947296009210455746625419144665976196295388954597002919979546425088945276560588460300801065407709177852951053625532263123062537369144128663561140851755082478789232341811280518082609193926684640685448135265412865761396447520800664905215694904352697167533833306393616118283253417414632551834195453451780155970748368214484289225079041885971539681338779832215980995355029807869046890441583316215367303128078458892572092647776680465302226102380969995870007522566899916909602158483227948232249111915634129515951895876969543109654873897609434853194900521244920201038685784465719555821919207287336285527171994039357924264920825379765787725364220846792387851959897048747101460262793891233179290424998563633823726633712821497201989742574195710550509119484892699292400339359114802987576204463518610275331224531926959167004820406931403400915251611096883933157554485136912557283391503300068178038233830167903899105823174492384618450602072851568275722281942210934884836756203857107688711863605010363823137197918248342103049802121382031432280657521460032356089553233945017338095136197276489711016813996450864283376539405555494076484092696416035029420703531942621604770849007147487313229210898461381797421432229692079170129142200810185585165948986888099087117604206030919245751676820634104474011473676872244436377231308960530188000553958859027460581556932737218127976781247834212225050115736925017794668711364676846291730347902671345942151241510411474778665654006703581776901137193027647259412357314126198546586600662081916200467897428291293182809402693559320239682677891816606673137336179479644581649647795635055424114980887410316451869554076579936553437026537267306951376420401276922479939326129902229788318041397941996652098626946078996401501121355398421984088974277576279400663389630119934719772474127861894451622420159814405940409325365264239917706907630198679643971369135213661587673939688572834012795605449928118422645545773401893767988539383814217606795100482684174416679433719450314335220746157147565095958314241447987365637810540379201521491316089333928923797610899248766808344864877576707781831539214093555382571774928983712644434727171835767039294578949963365381593263501911744056116521418195028501797980149048167900310373553092607354396085281967796150315955277157409881151517293638130129645632005402855796502913194325388705231270242053093130797737252750394935832806279432841422249953572662025002431798890626668263139204311453497811207228273999853723233685140116057432279283516985371937087744181933141119178483890577714330111493466554749674246614667446082673570621033549964143275606663462575031708237326940722450769437330678033763625203151667687762486322144608173813205180060274896278670545118503787866839439254982739982263320413515868465132260134913376432635711043652281912830730128487447748203701510202237730717090835944647067950370190826657596953291294557386857957128750080610368468615215323559806338632091619587967458361101338532459494081325120788526410219029904342933568622082595349507082856081499542350283150940595597988496232097528707261687689621719366079333923725742344200168177860567838544049736604069225626876060551006800871382826727752956800360654133965337015374037438251871297363856502276601165881670117848418043809630799561729477657545647405512120096046759780338346685252332929473143420291057484623439971195036179282030148682384857758168191774919865145376432333916250539924902780782263040074381357066452018486946805974851110287554628582662694751296691123588450648206296950739983235847846309557857726519365860717238317655913906326466975234395291536508810331937083434906354575855199517706590819094167172934528593874366214865105440846582465394736279976877300627342661120523828702573543284160827187563613968836778216121400815721474684279137353517980815299275279741560439165720874324783052834665707826122613949919819493505921463800955338930281880073671452052107712396914792236917033289113740611222647134862387922424164041899912975572609547018319120313803051730045395408331802869525490652694680466791120731192462475900977325480629504727818088196955328778761987640452712243698173950441872880438462078610260657135503540676295128114975920498136393580957326559934661362250929512049106732939897651204662632566088728426820653829978123273079107241707196086171574970181703680452848966780299286305491304630861117901047395407367342674651897349301953645574306466739068020798700776015620423923147587523966873953662286490296741063134779595243595153406369946634251659291762227967688426852471059529239132467933015495621007248361193973069898760876751894079395658094098637046290915912591644759807027086969306742755010369818675017535020673982134902392477465275453857795706259693407439204939614205556708378637454622479770830658363334825815694298505696753622689088115875090529026253536668588098968881378328995594545179684912408825868000084162150617469943328492765240836473028372477914940622565643466556519236959142607441495576884152334146820246361539450734477068787217591728183952619178694656694097285783886727005186923894062809764480963181205377400575488120070689032188221868692280804614840482017343645356092587107161569489462275545935315099276365556631897808658036247692666589875880014026086870461510877328545018576957206778132957614470584145100979279289488046440416979381112214632580983035690123608192716264948335028562853813580360753511855832477122892979440621053419454745880040802686946087741578415747123250329429029623697694548240994328285115212279929580439352811762640412208456585668425422700355881481825720268244737036011156714345084436892171760231351308742132360291093040083951262898327468316595935902527792216489253220125418259909216095699755002841085489602905132052862670634298233794896622161168042649178980545536097738567957615026703772435206015852442147429926489646289269104438061750365715092952611908649919969632320666602859060118819721744736160378315294394531733464688052539388678742617582229113491497367196454338965768281190688782835467360367632102014874635752348476292324621940833871359042183632105732299073055885053113894556276450770140549259231422999747592327017053253978826296142138967936194323983123670468593248051933187977346209800378124876076818788764004847190895252254300604834707691998097754907345573570934270103044164428391369978222519374333534260952323902381168288992495926915850836570431697707164785173618882482852542697144148455276107286455757764002074975338291469558949556905424555842919908463259106412985427606417626904115652102065989292747543027883762233615335786731718415056571828789580277857116659665382645909228568974970069637702819487038754883595329269565977568977410703580825954760280357001223995135059441300675507091081120412591457650757207619538717180317132078350282961479681534979077076292659269912837493983849311693561079082350715853955837403036519984058666705859387543792526226683679465015729855631151113995192301279210575977546576023954939924429522301744371810588481313924953175909783444813680585315067252618938578577483661432653777319455005178196094807975764243954676832418702352763617021451943401844783549435152027904281705217411543306628589408479340427446961263389517069523023526131002459352907129366809648371166673290923754891779704719633070449237715276888935405813227058124415623229662260453750469384150871093609408441066459817485524522752442250961509296662181422551870676902156246230959646628922508458699716006424406736923568526341997153261897935051448278218206213786714379567325568096363347969174678998224904878245210608989352774312720457362252308357827836333458402286299415708446273821320147297584961098568237225433116900069748431488440138174705481179326532355957714161906867884830230483243061818187714623115505817612127396497094841213246253297194118808094128741371577041031684902283940513026664375532821577131796010712315314067047851557052390972835655178768242744057656202333872845635097358928731702582106683994651662351158521879761409710694437420895150297992674110589262797135277054977920376842215464114029218386271381235642674069567503201753817690346830705572798355167418686501084023323266864470060770903711147629108451143515089608277336200167470655446359637791705933859725914727970190399645377136997455295352286968282476903390490769771839099852954676373485302121707360004903174431160796123989786859657855771913527711219885392422411983954820413767115252732346954835989897749928565579712454670760683555698350622056340319642933896758017683888697347334443395773705739756509221531790185410244116494850960937315743717947240714141652328087074268063710698671164512825363576423849677541621820154900313080182646572445568666841113864401971042431801497208746801862009341747366170136548410783104536749453456022228832057983067926967057758410644118026385325619503586845325397259907137528104257601593318442002269490939855415514812897866166050816822837050788733316657412534501435197394763477412244640266757840056067043138623035004309124113876208423650310317955313904191313003606984721635527526913820569613498670433800749760473899084293407892861741355389229405151405029711525564726523771598708884980422295914436952311940520728285788229829092368186900769583277208658272187936775683902042816095143941195331232144220262501774426236822690067767452940078244955165273208268162647036527555673494081419950770274099819250389082645418163073576000853787635224889145687789174364820082976688743730662083390282172059257864548854611251065315926957591023726303008845481480121218043970364910764513199939519180529262499539187434801296898300762111267345014569398475510155054641825291241656652921364791098821642919688741876956940409980128655521396511823426188385734952962777385851564528982416776097925422725476651870752922283884358052850389018817437992356244022159418406731971839054557367757674856477855714346946282865762284543244478485250630897022578839164596331467345819654229855087688723422379285384046615941286362090154420482543417112034280577418755749034506817281068516711450462294540937690132050015223366738937211597290591122647847781221345789850158642061754244295682883820582518748829833272286111487524012450494137919599605983406505504776066342533038119308903172497280651570102254124677074430251592838727945061416030412080175991086710030216396436902714434242730923566668767875159760105085719592885984668416519957941580546265253788551820235304073032656005007139571561880758394653507174916514046303798615590280867194566789303625140268661852873558500630106185472463173602312683189020056927185426239184441789663075117561589543989333907458856692205452713520838986773941808351543367520679130047980435623309156156488470396959805437712077742528001227334772349619694755077596632821471577510514353954661432202856190921761860357506627678364295697340540574974978758339527082474173319485623380630898812147057393080681349206276068884767251629103706493742324492545446751499308113945642898205077322529197300700494431650830911340792004528649723445325779034012284184068990887145873318075979575218563246406316525921190033295772272830172763219793572067312208340561181656410701313852089271114085499365104198827655702687409839073676550551047678309724904227958988801946178155671586746776361972457658531074586758233005173732003521186121417238240222106294181807770062023849535537458386084044389499040321486215656443788047539270587048415912768222371053726761769577851274037182821173633223255167117619302345672709507285253729024625934171275180402381364915408723853513704244760644017432465087004787811303533563817865994394911718983784363882973168820551520141407541784854924838788473719378995692474595569374512712352310125379668690834168380079222369067704073705048137718198725513029136127377697826849171362894606608106528571202543942468231960541813556151153465269235190809366677460831096749434467265067488245844220293611960002108170372558566024167967441577542060592242328486073313797531281014877155836832815442528757375233881074063309081070265858010988035260504375296232911425199570142650828080220193637958653810581110311378303813790167031418170027193969110610814754912836850447597959029446500200092870578701845461511054274965624359732648803541511618271677940277743019153395309486378320987162731554932583989690783716305058121841889050363335914797691974926019013406713217919624258721440483551162473501583354815094369636668373694613428018845284221623999843000608459080874126185375304186843918646211216894512215596322590540956994363968188814018092254277978328464141166111823337936964499091595745806967243332916346578046196222091492919821007301349734089633753571183613728130497646332948811919550467079987836043842224795488835498093517005679543552935486266490637395480397621223743946579179413080298380486287807204050971835836144334674220140890241577308701074277784859162080183266713707121593309510683636091720117236488665701359192648165990185963457666682510719110219812480092641373342346670318755105605841055540263940378983440708030207530379760720116527533126347341265635537536726427959180834761640679112786152078595959587547239978854242994874199675042928098264643800980850555287150187348782125616956860821847113234220170199475512539975263064010939592805816675355360102096054902577229134470101782820693872992457196496842861956167009280350324322213060335336316160085694473035879863261830746073789252773503677529341677329626739947398283585505738452167437338881939855695160921544892446650471551680561374681403726007556430960244751647452195460030593359329823647442036742795060113521844220449360166960597564741367536720958502939304536486613131431593928930602460828755244903410183808224813428293055688481509872922838860834651376196063383108875953242665758613455755060028910786143283386204695250514853419885192743704888678638226423063206261973283749831921763476391566068931063187290270941443779472487582202218827644686344693292969345728449931749924157428985045476067150968643185876746051880527690881760976032603131644197840866709699022877848198773016681621853130500802018040655815269468710884881866364643080562180286387264291280145056453495078641634468493582444545866121103779121036886353812030856792506379618836187633041830971017710096605358604432567005026107999288312214219263545154903048818587655152930950118837266020437002596131399183783077800393356031458786360407052175034105953221131519553911513575672898616504246741354203003369669669773084089525778292014011800404193466220953538303048282424655478302521108732821867455675511198977459284387690025697605937381440365648803200744245649108421827691606093940841845215062280964301793828221874348370075472750687437784574644434214896949354307179373564441054101904378992077082388649301903525666893611452814029707387001409303431175332463327507371712936781726128004523470918239242598001693506459537877224216490220942817013447106564660174022084222573154260808007944450213359464922342721887000059649842206055038489509667720462409533526484791569108407692602818387167829177702176756803586956539365260477132440232814187790274766975235261005317185029650197422865405564905977232918891810028902885966421780262279062524414589880610008416022525393991208916971763325222309310176702569417510304439819895457239015619617855887521259082374717982851717050649103523771703919121358734722840002735928071275425902001560477545368082253674137828351034190884529489343033836418048834960080619659619374793183632720103713294626314441558672300639891694297385749668348915863470638954588339056088325194070317452914721150792819875277265627731043528284757854497465801332320976784655670720533096407337166567838404215845856106778941231821319826762319123711812743802182648135202909586486680355277381283747378749230225622063857858250157209753790644722029275273689362956474754789729045155075972668436914880405440961432094426719819214196949267224617370927698432956013035652020744226702623446303112223254779619281276496009520752194334736415138619508119439579137927531757019679189245108788898213216387593200522463951781975991554402108135375649041674537713040650583343074739657829708291198721467379928044013272519753512270504115720391264747567266203797381658005464081949818902990942593847451578630886348061112679537152362624049168628190650613438095392265864853461824557717667556916870157033031798541216297253186990635693484157555870636849228985039044303687650752548149196970789291212176108519376410475278618399616643211117736991933959083636227020104580589473501324852754509130738425574459385866960456508666847439591425646784757429347327608460322917191576617062137589511551908097565438920305034925103554659542584647658535624655706520357359749642399074071915053858616765090578239484937738027694786785387384848878872296256021408952082426016761940223838483454702721571182545572166125672871669395076212766514637116535510541678327168741462589018703520025565580267905011670905770975026686101679429364039500419571384686020350288966665758352538067747291783300527814706194201971213523069536333558868482546067131381277598102652043100025673008668604872848396275357125987243831565275626120231423702671080735347585910024359461989915333879917481068615367010747739446537954028450136888544010496516568505099173785584423360439520479267418527256250565364689501208860984462689472683682008453568122223885258035971016613524185122450151623750034176447547903688965254656847579793264546553987285423489328020360596089361602246445560214419496254924972999310417358538010271647893568125809519786745480950057848022331336019770439715466377749506386368634827614448143326260683039662362149177525207423797274561716200563707214229929678223774171619838129884595929532752476969862672869337030363388200841930295056308374190492938818095251816586151086052304867111998666575016693275233611352783944373223770279144497759548486986348661029037879506443926604300735763913245033456807888407863218830704452580508530649207624273653254659821744806269164612522737935704517375266807174926654263987469174725659691334767389808290861178914149891802069550444611283580651351314929245720198577805018940200171537101220429864054496332810953570998459485549169291522206760333241311224732611785617159995486274249100632314632974719566004354199698960298465398215411277471862782848470122305766923478161163235947106033352921693718185811394361974269479163454662750178836232629062192927714390235956930448646382080874430490619094361320007335712753397746005624498722356417178266602485936239345421285235029606744529916125751297729724476126517363006046274431370124364955295241436072305488100883127937072218584039474187814477642957730856051697418356090336601469586432213441899710408403171431288253253020157094908726468888465277768145218561471064947558283286675764287902139818425657846460440115044990202751357644570524208638780810452557951704181299357310203168592017382806807664467043491991745677312406209880501948162377294325157570283068781877739121269037081317541438368017897306727286588711745737472943048324875076391569738252160422181006378700234344607700659864243016204557734751585071360125040441828690558448060132691199148061675110774456666285492993032768167262557031722682814198054475464587981887807159916907729632718567421809530468356895476305453867530154568905969189033689505350442043694342427839281301753473370593793265366749374486779207272688206046561244580682793475968911164342479240966861180653011816896275232632899450387540606638577450062332163809423750591140991961757767160014675410647639062770730141854740274209744614842778051448436354913632786040685466833092710185814453458328020349362963889862047648360672870663184811363617670785548553323091946050613855567356887647597198771752200814017433828148255538179828204005122244450530027465686448001557899620840508692830865395362291159955508277284033808221265746626513856949350662774343508017195552724422762611028040699763822981542920216704187790850805652472198745873676665277775131540911476334743938509019363674393995193840679502854444770688990112201832442399712017855015869912630532211298522170389426313348237091886370427311886840956657148845741479164544478178885130844283215462837986994025508556761469860904907585302773741360487409982603864298545427755129601719813114386122563301293729120104509758857641665749451311398359750857494755768708638321317196506538454814058196902478179906390462726155647816742459109064803952899527302596468634108953709403405927794288351796870879911122354044982973688470237534039834652395548490032470140624074796371724751740251972679422916954757258344841695831638503640534264557970194078101922746879975843590663666130681541756194055614299376224180249809500891182259892904922869022978828383789684502431854215484152961583830879870671094970847633219240629324180285759662335436030652597972368630412003051144799508546753952878218495498211165536794100562836046257560679372610322788665002071850986882855359916840874150440985232757905065158870433087774914907073778263677436064179443990935243774668797321551622802800618141663346225443673521277077752904949461590538293217912993699013434995736950892007996163300470221180349312591630458639331096530172303323935488733193143417942778972948233868807780159730574357551605368731776694592457197079126627957756335469611721383787745027982418664621262017068016508127365297297854239674894461663458305267700497871721130249005469104122220773406559334446286314257190509181596789053173249999624139571418999639579325916936582566582864400134820326662314564259369634568694784734331456092767317743784649469532071154403480448484706284740456948432981396331202073421374892433326263123222208112604247661536724903502063393326754075731143435120082363380770624076233979626281842134195994746591798269927642119302351648403448152783568476568838689899768296480964630298628722402737873262804954613125618139772992147930873999771225093605692563608628057808962749204305774028428020636269992010170845689071298650463092008442691045732948801861567472750310124212155534953070851526175187386654264081593039869890102107729295395260733730558600748771336226965255612173689522430938238720505404592388795284248485071990944686982569850892677674821951069556389363729692792040935841033582285184958564462482995832192033155139335617747268896821601708075182056789356389300052346703109279590652423938278653201813858839883944369286667116923864580010900106933259820067630674512684071844947321734042916806731459867010944329343120524168039907476567901494971735235061397803486321790332142792776345643208151861357909767637208872051649598999151254101930770142778227883184449673747985269428718880830540964374667583961053747141465386807341848584589516880002922144214004989852559339836801827709425531800541684871936659996301996656011470475578429640023224715427280488106119478422838235608658427185530473921015923123956558035054053338211175441882917808426065053144237961130044199209905752452210895643589053930155783719398590521390342347911121391067891821661070689571753492902405192530413126960753593265633685641722970801462400820635447667986574816030421345117820476992385771801793261225377836308536550861335960004044886164525319830617575685948670404697523915104758834804405472834443850612880264200944902324502779410114980127567040959224329439144593977934048319581326886651893652712909693009902733658363159875661294638632155736672944304616673892987737561959000284529284203091695884470143203194610460543449133525209410458141117672666170447087357572933975871557359401943893359098883511816064437330212133606208681768580095051218960398970918106736785097995379750407653316484240056822768545929289672991914778550802496925978131540561794359979826055272511140242838835994408102122344982949336577765898057303651149240407460689557941008577696835767763137005133223730548044341709207878019590634514696697455258984838164012107845361947096502344765367450697874090403707869287560761411075290650128117250572314673021627474189839296297342153759234405634969417912816098115401284933230391365505214379808240274188111079690913401437342016810442870337378174886344704750667865525312472722853379267991922627508262114475429422476011273402891188024501031069399781887046860520130858661489468504834463920386217526112557341405454333962127948534571680407700850573007880737347888031847836002353089685770812800429175268288095473899830806759206260502761414582975178465750251653422250285167203920541754368120897666701901794505360667745630666024958526973542056328534697021504031127800998848509669837502000669334114546763472535051111307674100837016884139071886182644282842171211523136123567504456753996805050236145661368728780842334437408695220028945922648295681205031334367646784659861696996670451612850723624227284488751031840563705655738686873437803107165675247368900496055083616752426137791352016001693954806102041144304743713709269774529945190759259535300752945337954210413646621598094547360909855467382821913766515080903408654697144694726690061718613624593413227676736723375609247784969195079922273585572509928611153305065918581612833205593939382398332389779241031613396999493883806565977216107069528990666812835949584727218892031883967422182555056238603832409009197861422203493209948633326363280678865795980553168229898651461907095265138071479934496388721406405065193239532004351191147216546620106768237858103325301877697493536131612500980878977287429678968413880417641678218227933544071054766199373271549689635290928545913965998383642420799247130462289112837439044816016911029364686048456617815208846068014593310419754778102743514603293425845350223270371155080463598554201009957616028752752696337527444035134411065336341772170655186989096255261608521680216454407274880942145337564717765563904836392469922971445879776667044720685743885326759161168642481067164009736588910743731364452461222199041449813910076480753613959310284489342587809901789029675250944036922294102514819963576269152126179590450366348189647579095687006239105635510419455773212179960098544279972985534438563199156359183576917426102099671379487683029708917583478187833904540757560219611567388619625043076941554632662170039767131291489942825479387526653131301665462710786516917124990614748877790624539054696955034977626631881039250671596767698586619011575397614307562718050812413541331386268730497001231425445821170493405059959834464490112007856950436659395420836550350604840434131713477421889694925201778246233966709577142116379656219113975185295230491903703347197400058904631322294145516789940031511464262773880787132859995621146446322153506626389303189109510022396085949430612756782898831542691051583030449491275923429721920196754287458321271040792514108621215388925317276913211499383709731213728127467577543705848803519938632013400144373918416676315123979145695270169946431802955859818856177241272122311162712924689559066926370037665548465521438833264183301551979474612300418026308379419164888823956717585837461041170192385347900299692069710108534149659731537789255012158194618942410608997124619705754408551064548606458961004933486279867027799452706143941465281487532549363851005024375947133203760384383795938819763803041173237192448184021764749707974190746272709742026076077818786975836266286000534871249454697347295383940885714994665689106698384379264411972856818647487740468447349875960622962941035616719868835589693157526755680939920902177354654965925405037041638878310496064904265061027385811587626168171545227504580902135549754201898074379736135938353503016864101074992391503686539774647530416806407039803149598460360115646744282798835789781765345507868824234273676308096900309344545756759023551313847478358274582114135591447032810199305788430352677580902328523128977015711335145348849485036007674983318356014158043895808619552558956588330703156107457325764577424394898530450412357024794628820999337212572338180863267538350314625242615268214071581561058811948654139720255740008960640929429394870320468613551763902748550466335143462998973700199068732795596971760005153383351315076362420928862674897914309427632259294206665559079070791903830513989571638139137500293598768701189338651563326813452356949416585028912497601539061435332388879876644533527707658302042922602102671797794111761205983476956214112006851208734890085229119441991610066672390162824571036240034365863672855254120001403542603014346675910513170168650929303004823373259854207524683990680653861601492407800548094476393954238332148313254159297465310759821124669562043494066229923805100143702337187579302163176131085559625091471466462520188214274704332372309039633116583065039785114406548943722575007929875596094893268073698583535846891840820128918884184637871873080233201355240369241718449685806362137783120535460463132172589375987456948185540554140693284568052758448688829387267875129139499956295709306313094118316814148947827347224941009644790204814003695231691019188948349102850094389836309424229512540497193182757910479248315053341887710239409593450813460706305967473239711322902569013693859367730138741087025355319448825107321190618702053467031838683391334323757376758537620899462659043821667831864195428604374563805346152561852053204041141067967632886791613667578632233776773975618528167121535320658225979586837389180120055847548962492985054063473796482631446410714570376794790217455768591894493653252049065981833577605863882809992366750784353554994905480896799652394273265072672570175334960498065579697552209457752305471917426079577495698425207447660614514795521950161741595291151071570885891555150211284233632749102050806006496923162726744051843004242797518296713685331669143737152145851404135178921209432604349223052883522600642235349485143781636634301946739450721892655588312595969214576900612781503989254586361692326173530429974781153898207405483766841830367008355719496286268860750368232027936309303322243042201624167014609070929583564096710994365367505355472354801704073620060226598311158402321343674931189431359974962844942566074823945078155114422943364618868952367575025880228669781978175830717351555788082804486347602087253805573958875950147263052813106954201644666211061888421948813801329383393206634035857234578632025703378367285477280185443840751992918419651314248893629881737540377565044800566076796121283703703427976759328945137288884744198255912807185881628395557296120626286492758044835335944956632655125762809443040488620884643115139727750758511526536714162038625636110043320544008009483895791814504803775504450087461277563197797639907758564593697598103716789627290661631130102957184668263367863523472989434522257647379050806329683431944270228538700050305756090632508142253938743415355353712271348969623259662208451883007029026367499748570408365086376278282454353284014145783169590373644731302413838290074831102765771267235730640153231834976226087972895920689112358567828909747571204050748030058002157033318955608148627695221926450418798442242517507161164233547368060151666740756307479759475412489674597254198427728651398464378188906540238743199177213305521648601107886038915818678326287768094852551197242966157644633931861111356854230589829579573500779400558118203040999416267713663297284316898034734879011659388791973107414942130226840344278036127534696447530278917512586953105156543065038522670644623495871465219386916544512038139558526447929629099858260951907587428595158828008364600555765578168658724646291331595711514557913514505253723076771161316480845756293939305529676188076615537534742749406026685883983081247687754868988904884281279759718254357789095163644421748513453876082635237813104916320313897233860968256096347613419806963002080855087672817501145457201416095591232373470143788616911877750266759798680163080984830095237673836507437191209778062659374867429464742985523746979663782193823662843231506800493662099355312743590372198279019092951884864072738880602325114847747112666416965855150291061142336179805214193685203226085506822778742476684109354863028553869355997899075857606972710801825079458565520609603272785910462394728277268802431213227636681912428312649890461901356522565386846071487555977510231271719205022890789884785274770273132081462108465173611270877383840589970100348380091580201344992114206285465386699728949443934896672913295821475395535097502527019076399101067796430732598595596035663151447350659105331139423212557055431364813680344491892188436943792828410748363420463065967876149603048668639228713618428643958135903966200510065274336307833022880083136260331254451191768792962030829533204895573666697638792317043796537016852971383579526595049109263804947082557364577421669718225466221939659803810633723788679599345398403497563922529926065960143307704766693496871896813654005397418414262197276770382711005941995416345107362565309354905274492319051676471432100339780939263032875389249339590621308660739022376814428014997834668824891033933680834439389075015693004701919133701012648797118568203235871031535001792615827919342077297809039997722169600085547476261885413769898550796331576977966986746861994155926060197852837523717373323259058054833504792736021509001419321539312642526435736238821102388806226304453051429148614221153394291444698582354608129536199525464742126429447417377822579157963776452130224391000891995853553522917536723839481810377684040283848339552722823202421169954549192613586635118115183381669350169339481492662102650225157175104534631294753784999958930069521943274478281565133548580765444678370178332116410290480228071179745923109439818398189434445952236839067218734366157243367834320471980991654322386217306383358290165875902070529770316355499012616612000378367569864378040171601586773141210099856965966571023103484188235127567330146482694958904444815939360579653058470986330728777725231213861310117246228764174023808783012190299840923352082784714400856825918416616966276899565134121717773096453897413807680874929714647190881750462986019954756411033285939184541947321204020633571790622073744524770672728848235227708050197124491818026385828737195047820269784078673898089203697678445818449126035582744075825966389040388815515747095351103786847404349752122805088165923237382874082579897884607311150384666031064215585849466352302939660017892668548110397090242657541287162467124403723190012168712230893127799538909270757750086028421663632076588631688976949773976660819605082516023048006934549314513983710054635028894901002848956550975174737668182379397696830400114351495886192175656670745918348907018371738802482227361714372692536321821587424195593841002001318121438419123047970899504235524668277917627064524302020191420424170215390029119166281936726043497349896601860353554566082395267793541184966691857223206246570671284182056188862996319133789787952850179255636448699622130547048373605901856516937127250741696250918139820385823895714895317503533272154526528029763525933189227073919570342214733018330852699595239898235022032516688704889952275730913535928430803801676165409251798234352732290778589390337639709043974034293318605454285118061436838506928358630727163666298650791068932425235906208175687034074205789511161299883144991762593813520741029471382581089702774193337711270775271499641580713783505967835287479005193972009760544193253911889769420073887874782095142909229048535322889406330417529629160507566201880092226945890501658390115567967013964941279516237491610240355072539809367581277136480571257470361055822652105165906033770509572471856242289901202460157872804040481697650912110082083214683172394646547639251873794056760390317316252514879803559214828629130071314192511853838479053047505083673190745706289820016290218637822291786456082773190807743929164573983451786388649539141328594047610797161667350776845043685730353906632406945947009474905817721784877538597763727430734201029720373306175334273568400957428311306394734608233773040223825569750975237202503864957818599335137454709346057267269777711714122126119852168329977524018573942456082594307931532221138123885441698485508467761338137632538638472576364965701331730065620488426138612777904059667141597907567947765228718348574084849733614421477631469060167891303948582541966425641847002227885122154601268404517791301875303389219604451598027489928813914430618208666448158230993932199111799916432542178080383619313620032051902949275481440413768530970182259502475917144661797533577032677673552848461627708207782392414483671050901450343822712005058125577123735246137887937600479507532468086167159771605574356458865558682904454623322295590091725855067794147073776724686975449720639348409240938108166607479719493729046459653219917430585848756422395730320480297547394079050854629531209449202162259746764984117566323557485951504535379352466470955942509451442918546245478621937692665710902459751698104242168247730867553425134670083426643062495789844550227027129108484553429466626897020426716715396362794419991208297593823929455423918567822595500793096118808918357582200046960616301274148527623268896206629732750236355643234483600630406463787814537958671816478672261464902985589586729212061957460403936710648859610049254344841495159955135684267153901694632591975911442964960253607269318321425542480355728197825810081849541884279208908502037308030990539283224193857079787751727097890825923971940519959800725017378485261346059571139383523683707446548667359984349674480682582651801860128537412634811992995575784285976959206672918575442691044963287377969160448087042944959972629000772306322518637421410646534124669024414151577992218240117472962732344429074845493500473401588636028738970955698642182126070202196556741786128300343422463593787508387521971260329532053910282171386685910594155224773909830110474407559076365218203133664818938282770586869159234557296954086254275187335661178115527410327466447267108142731478621502368122496622247076066763389938089904390094903858657148826786255504162848744601050546964044557980739138181684992060455085458358021504610377200763791468095884632922168876394111545165680537120030522220273721936594018429472274073706485542069639166498531651895584735667296540416302604150752170138302493969850026978023865059607365109270499933817800878614874239122877683794629365177834547946030645450914266508712019917794299567248514837395801436965543277576810273950844439585523990047162676271379587626946917692333440828822786954158980112379241208991739334781634137353307064501355524666475026737955979889256803983358597474880955559914709900944180165853341196958386020152915916687020488226757489363258179710397837499711838590876062225963905159300308423465696665467464851416256549703669735277670369153228159749953827747566072778943331653763689960781512678065322451727163122769919166891349637158779106525272736496836263298121629548028154324313541932754745644037044312571814196706632248276284471428967540743945882406970848064324881113728589608322250369750881106334310566317022847028967864653371554651056783415637701664109421386810495140987910476618658744340760448934018167820627830843282652831537231799287593210965090710104147957914237890582755487262148766911376602528266425453482770557982959415096506070390786924914557258329882443140190432340601908034062048343207173412190125347110553747431588210536857257892507716159214575177307727349830977259756354380554668751389965564059369620769937381190882439478821825789390390438581227990726048619760193969061229856183359228640324483809114054377799527837271981873018428879072270360929626362193322689821333381833968801228460561455997815884646522140173771855623809860411953203740546190654587541122796988190574685572348891856255559005582139255655842399035491113597147323368489256188783699792519632209355231448194646148790713449616489447408746775043453456260186873385521251279773150590407427509447365798160234844119471763539319372506628414427782880646561158810331211506436079915568645710837410443068111340902483349429996575088009486609299289719250984395190803361482613396972435832760810624848504588423152466882285209942688959660021924914512042823802906111744783582650645610682260912549626099536842370124187138323354754764553541262287302581967977783837849869053224045042269367382860919783071823707183380765964475664216414242611085000229261496756483066330048971065454602111640891211306498847474557535014945625731997199072178923761610502498949335266460661120929178401586671028206477279650456369147742018442513187071314798734477546447987231548653642651147989003964925507857041864779586539395720182489675867672830245958957011312960422006494653979359933274485210593255076751839421323662634405410560766527815184327452109857736841109581694129583519269194467154623130816165866608551601469274310326802434491000621737480955441329533747870435258301522467413965717421194993435147048119211226074282187893806747816539928372191788964166211008701115898858033807281511507094892020321448955219558992670315794648283134490741884656202570628351294991391693093433278908636514730294354635441564300531373052236028891443452880250975638634048547867640376243396771953089360023575458486806163456595656521100810396798027806968979596563992154357644465602960214818155169292303741362739239033312446738077954797717896856177064817940573818382977304519257436073843141563642811952397380642593670596146016576345995419048279867692933418955710887661501650979443194847256584312293918117393310521487585339934054966597618993434449973152577422320026785007313395057654839046931188270249788064956725716894823204705929980932013534803640304986228252981514547089171446767102590072968271615937796236103565262540131780385957163039302357315808766201981696591825426674428745987897417919507266042115764773372128227188405953280799144400270984853335327691663974644688294975033700578137757104173118460668156728275484894306344304057058868168553072637926870827990807097065196258395657263435594572864723518161713530913142887276690171252385420845789467513423484844080193368652083848753222777664988384558214668787360346468390218032731825560626519348635022574099981543759904325156623596469334455383089412300137089425590199369870940964965334136527819359046376871936675021269810149955019576764286549327319582050010821140659442000330607994262215886584122653202500605497796965853685415387214455985070949110455007539489706767531170612932406660892210918820509951499849447232200081869502930512176931406578099899530335838124692527817819637892105600694977615218935923611378510039760937731550573550621538833482920140599535190584580323168091446766362776149594352256866087493194311426876826993903793853381519982132830222516555369373058991886580918681190030526535375617256088402401436862634966173709228267256928013780120708704654736656798924856130585592281103131561693311678012522932849019118968754349795040954043515275596822855316893395872277139895266910822673631168911753451352222775936928373486587422669483439882250877168233172028490817293080741279686685226599201786086492850280347591184442663756533831110673215680588650709031882900438465564808787544544579488445117192167330823980430152123113776601742641366083334800721254569557523431229441222034000707171052840088174931306715353070532878059668789928763141492979317431090509037897416291774214292910764211929366292541290822688252636071542643077204198387523428818598441017006748872371645451195260315536080441111217376345567866411267500814281366863560078842022609332867873946600355731389188764862600458570629974804499347957979459423743384636018115122302077250772450164071874498423493629605249275252752603411646768753964933577088350887856278784582188885117864145271704619258751168746871572452656081462995771932762492603556310335837544534030834605527964798816137162568072457325935715111230918541123420056914927178721572340804361050482517769359323751623154808715512330233183462897787053539145938226869305822276269286258675226477648071838313845040049899265665919088565000745402834409688467136917259572238901446268105409840001775195617053878863594016305578635151163118333440531150727423099738114044954391750738244310171033364152147821698443455744601143440900796074444949331898163659366324905379974735912039273995725971387477319699415099811390628260092623814312145437298965165250245729943489572122845350466307740082330730235254578543732156503399620989559040610803786670359007488894613767839134002125764786881516606730581153466094422094196008018520800697252803666394702453074926196284932606449621794652196922795417724132899560855206762435412071835151782058182762565955761930105016466899863992381667016178726303518922144271127770446988548845210725215052819941956048279590053586163076041362770393835196545402333326785131253412717066655818253163327402532126300351220421785367324211764773294189959604230422624159091132325067900216036726100553931501837659728069791745047859018732211269883607304223083192415580095716516932835749646142478637567225617242652996649016762699451408274567136547259949219989054551914276993942595218513250707605972260908507817896029070332151358022425039248843599574089032833952943046083493397402700381894622627238983243812185159451735672217320314319258714787545661306581892244286519954782006860840474983393529099116805064427010860308469224163079585738013398673999435728106190402490536833007364077409738285782729857384707497549202282775563386383487880505404369174540783747967201915217655585650736710536131165829994711991724834459993262455472856004777047098612235750065417375284397911402507796432941719388733658406005208160192472120486902185314119636152233550384245472277386656749096323807065473932099895272890887969465217494361031574306144480703821643546345592154867102127729146568934205290640307889830966891774749639471299163042854842031091126266805241225151220429965043242305424163295356530854639186270607408631637483209435408063221331734476209164266252463387620439999932527999074752052410545598429112457341544022492424351427046386477721219812929115681402118286540385422522345554913220640416466566068659241101369888856254711534908331653221034251212898576348057896361003697954904631698964900777545410156908985817254940367371820773558520110765253225453027674854833196632865353406472494892821168036903943553401809496428161074531533479609924101958011040895426447217570159491191638675089053853127568068042333614643517290766176453072336923936563303780729711787979221191056055249187779281360564868832083332990956251429637303179141208141566407440634218060042489408886899258436895978625854450591080005379841997311520668141400870235348912752647435961655975770748680848812908554337731905323227769522175292421202727286500121203979445033505710188890054400012992767000755154395866480364633676274796998552400078975035332069642406163333899001495340087025483499434596790054899815847457999100133360534319901454617317711952263007024484973849018582600588017319692314033852388254171104035663052414209463472655646686301875305897445609352940254366302590236917082513218457648318011729820123028414580850660157033449686824708985389295170981991382281506046235814619866630831905753761581674841038845896781295322665466440087321558723976705588144219990341418907847052958834975963412052918987744390535909157130243734312666226625290670790156623221697682923272808504959947811559167233842697650532805719589220717244584782918271537843617107054609919334093218333149794353800538947921556593282204357265673141087892554139986850114830304509085965612461735757709230723577007053357789025523578198980791090069486920123902377661364495414852657914533019893769136655311132300059970444058068044304688519410565149245618763026240361046134303164316166794241025250441268234739521222430289085479097336350799838320486947287362494816805015838464856290011846383551896670647737443747479018425912474172616461695857361901455699554603195978422499034438098182192446276548240223372411855533422079841278952930845979329415447476004184309997091002599909669668817954328236076107608868591699949779400307598249578985511507639844422264058132204877281962104330180239709772377127221710860050817232882083290981610534190372898785371633522863805251460548548085700493152261434537316049763658965185601493130226868402435499981274157526961201494896840440615982660758766337529033930316472909052345074702854219089574376800010134362319181260530050897545057002002332126247011378949821599323167677904300812239428441857847347685890054498998636625643722839066810829435779925714732417840798047859536716525540002803643654789704729046849660429598601668597823396382002308632874771780910599470417543506435439228597712534931532560871389690746665198274386488397775272127147418578747491362124400708250050738393606261251845553925429491400064127312926146959857302028265507832398782412985244107923383286349590441639741169671234304248877683539691487736577961735606776697393803767519126472810109602956053828705242190159551731323856792578144566311395692592802682319125056728704501988322925766958284010623469933557517761707204072408387416135110601885391539161472952529060841879285816540638452972560960581261412087284030426737357826678898823072733228339761816597689727797700983668333306086604118159947356712402669180575441162393153063453679234546057525707532064686070732437276194619277547293316279359032153855440080382739336033855592318557856724682354940685430771199941991823567359994517426457389836863460714726908382875836533832504820932770658318692514686141455327481950790937639559146317547510903361027425676880751642746079963735525338335700252028206653001745371886873175494478744727986316805701995460302694725063235230943534407757563165600417040526883865679867602839726281440103343337382757604606614284628467548608566993719243741976960671950456897047523836431157927117188331102709284830864658552606888683534355205596909946799041185502718968116502174943752020527890934851921997344754249106741588367907215212730075527503717350830454144077651058182626765012082261204803921823873155499915298903839807773512992542439735457036966133973982377759631714922264155834028768903292691568764757135289952653506626250163584165204762583834101809084995046180461190877366369138598410802978787403953639386023517508997856477947976104250925532928010995277632626036367663634413171094109051503913180613117976649870827454422829727391880629585641062790979671715761104348705952557681183529638233316631504827499311911992494498611149536327914285028677113297155498050960128483275001815167860378291333338855857925844035160721881827786133469965784743990577563845658964204250743836839799848006919559285598634305761777027275643493407024020660534100552205098609840806680949348872541271069833722469574513109843794292202803839236065909058784564283602085001961362078089702454982831188890882209158263841162166496315639049406794242088101682337494482781979181810379708754947219244638752256112755549439852560853370006564769588534377244820827855757181782218206291678420341244770161876379904916279460544399434928292196816186817402328346982302744700921159759731158741337538931114154276513304032433243245782783393015559478031570598031490628048625158130524324755085691085598138931875562691625647745487513083242569063490846086134863910015152221719241457916908662934558693987318315578077574096317150710792497821291561488174687571069831217493631778462487693709183233894408069337150440408619826712832655391363832090918709253285190934531769868038159074495010098407716999628468949463727376395348416669376641729165759707080361784265260190663546731475883984295733342220693016581396231974543778337357211452135086457390496793938861425085246487530184132442513408747255824500809949472453909591291159978593208144812870057750859300664034531982988398567493455587849017542772328905481618036214917205800473839922611174002170993653672649180198700596020095797489750918834214481037366691484730910983488744551470161035634975455848252523383750995783752956688027282367728895484008564990735164060366508906109529760289044753296221946605289859535857671323364880604946123493658517666571292756299911486793782671849430320929675163971503895573154556912318885403733188829814938534053545881581373544324652578886377234675481236750300470859266637729736829607928379544881816652066902864167618542066480598348111550249687406551100920293318732924535408989872763738801588660465250624093569447442932987355931475434330688028374954567405979067501411638125214534055646231889266701444768267322015660019196187104356507785338545298410397808685659638405721854212666576685182307785742170474080069495286317349215821832346700281818818772841364434509487016429553901725785979761487571665879376153351760163634108998238689286799575489698594335609309595262295563743289968949392680533177109860948612668730779688293531975018600552969894258532707902030148927277935306462100875118870973818712384706258831697903951055663418735232456891118478725621764571831126950968027896037359750105239397594384146764503671872459650224583938242528352959140687379371263745656540316001338000291717701602637778483591817181208187488841555912526004076486590061225531972413976053365844776803853407992170420744997149844637039594898813151910768132444987593068233849327620017184473593730032618876004425736416501350860821258007522732806391712277869745511432784489932950586141639550328133026902763139783341413599003562020431846584812100771149880728640752937543632156882718574768862815937191469460654459970022950113161365544505720758755008020442478359338716157727263097324552526457717269628512824512384289396201153338062953799495203438063403079908495038100520682167828193780467475051820749159976513424384938187298928931654312122346233381867223721799499161072494221805187448678049002272599533100741748812284573981668822934530414019731730378269847249888640458182986097603050127329330487049943091101465652626295291279836035182465026034982373148308066931286334424069023346578677618102728863972682205075876690710269995703430422473544400574337715010576634619614163592949349366127544408111560794484643583490082599180550154763075105462596379434066242746129490515792666487082998395447821810037830816789507687123548806454569219745380292340117210997363370155450411563660458116199552707114714355519410862663711417153879003657704391274038868889647429069431174152206946626783683937437626986954563518017670802651557879618248874901486318667920474390257165653133554601073276509876815180474278570356485105224544473747539169398512225824950065257751313262899134608282880373225210290504973313455279019783411024781629731843260154748240944444828648403736330926520906012987181415815434188820166953632170197440034475539202644040215443313416312712640477236150817885854295902963665484068254339709832124466044738521343213371086791548098018242075638751981560521110708305904111914510286638361837055004701705623120966383997467178554936392032574214026120247287903104418990327415477000144079213183862980828670663879425104378829643510735827786728268975771147603371012744107639702413473163686816129638914932775818148649516029253075931939862645963648330519872882450681761988460521020901433723051201612927555225281616305948008761825322747503826751770264695130617950565342059162981263757063607620541825647922060141023430271916566167540323183816397660108104967810748489546050203130061451338382078397679540355076711730158664771242219394726916644299206247032335930846592331697778737383808002385932479061640651223403687308485148134496761545443384046323935417762094916265708419896405440306567277205136432327568022130866380589880777726996498635620465509587714112051160771000620731233679737044976605963996250454171498041249893659887436765339232941782317244580011292515374664868216077896819846657648167773521374076486029734913950720574132768588109437859546141625057948628260563888202868341585293750777453175389031375429245868880572935789160814153839364311689795139306035364765074516604278182913728659584963661991088023687249069216545625185846912721439951474030810861008628642259179087139068566616524613327624385733297324861948057987235570695968147289833270500491882030351774743862062325903873736284759768658092357909274526849971165867219089948120143728980061060691524633780504943063383511377097688076292119999285307195531345190893245768555453275054866439086407598346897868273238143085345201222705489349198580143024501420130198431390034586493722811728300940886706046540760297009577422091710377506768686779246499014659186489503554109905499998373855949817408783137403799386268742313614524570793862141748113910560358746097647375473984831015844209933351682275302210970474234286309284092415498291712276809022883590777349197957164738539042344131890347832514447058788733262341551371974738481925045498279745314558081931012280033491428924904928537361206784610425951104469690920568688708709718366212021986293166422201647831311867027750112802643836621926846636648850296828288344292083853379850418220525559424358794808308760014484828591493640800264978107108275842306067688185526534050660238007939498319209514140606962840411979553700957784857313956159150797624907552375927356427986202776308560300827750683909384664354110983215760863626444469429248975437998661216036775201191828590768614567027102296422753851981622806342277080178451309538276089613040696921655692273371859388893913176736335531223009469652389008835097741705518769489121070909939306268744024421082183940405123958027991507165691342051222447481633456502987281995235769209107718126384794386336068520951132858618870158547190326216350619294660284129342361830867922596344713926250453810885426488323707934420745201381951251245115741753440133015028752346474941228323446116593250477952271885906047125177814696723238146327950641808908970084598982121239276630008353134299519127879467310552049820341530341842762246591658899417972128216732187013285731342996944329810861577025927250919097872286532738381733593803618504836525525628281615995225487492633451318401424060323432471431712938604470930226200869637583195033754134982144016236155498245495830270955865094798375978175339695871202106403156483760852632836647206058918471880698801426600558705027986853354891799894944011403938505905633127108446501372361829313423032648956976796587777612848707695102965247128970229966849069039581482056626797573947466301204065743136696187738389541128961338180619689850121585377618847544773672094308039916450061645385789117114885913755532444194328455382681680961705088556707836573681159618572003827435018293532980297858414338229617032232249555601293734781752831921351056444819539643357424388787121616233676724407430934073228346559090074127950418286630622486731101726994671473040277421605237887410134106579236123812692668145201554998649801428703588362945560243027398713227603688038022297777812025837469521306576868356279696050812689910224876325530833203026443261955024905497403739373392148153781347382116897822945487020614691390664087084156311575914350800392505049077167418995692806696980473674848185759568220717080485869752840129191724581317449774866727426452483539058588266456451253014441751519146807913145147078409355814249820131303860393758462470243923048761031866431171961877401549746176132008535794042610673989007887524832527915977690622148782466605397373669432609023190022245791919981228748122570381809862900564314806978714037997073393867133742715075046167860870725910850959024795470910860283923728872417886152397294396719329929944368145599591323043336580613655815425891335529299782097590965320713995765815997113062689629963805928801330008356549787833267843771913553028077001657105200098159267200429957873803489488222016186062417289640292607006339964470189017747010813541785751206476792435013362703358727420840286215405185954090314019819382720170764622963816673906314986761193773441200349563897919022878306405790213019332195521007449819714396599490037422567018965870475293689494366060267448825036743243812579535391148290028077614756443435966432894882410299432151674523612509838208771956225049794247029476422904814831464981905859266027983257203891024477702923724247893487187878110925525244028594844931062122261382629045975343727492447979959869151745119746089298630638116821411079892055032253692211181130182848372045327381316755461620133076497657276647205967396346807911719662402603095258199389877284359244533746975110959393226827083420190098958847479188149499815196836816951296704499899227683800161699462179729134439627987092223054643220844425849263632647847002960282458852480389055744676550813813254220761281336159021331404966903555927389171145936158498829005261009973320005646068880708852322009014698227309471024953332769345798817778072488410562470311840946119189494615225842904810543826128109399853738510083052418104351503046532196511086383480782601401851877613813146302376515703697185173544768759354096296309084471620562499734619288404036386583335900376296102460588393141780869672217296397997312872248372766063924403478422391793947402529230519698518336394201084448792276602366221617029049540934863033829556206401410585026093225417706142437045366197187138270180679417509396066233540228867804064176848647663967742942460259939361749946318925268768089928385800209814482880356259278366371501006862300631825089380578938230307097252921338906273264733836683778676288400811546779779693668377917959608309735033262760457094461001279197662752881558297992882796367044389417714887522119408720954919591228964361006922810196948383749493272466877502966061545768772220293678004019619233040974603656052467590011635204224385456444172739053796233584317930717358847255792840007168278975547477029741900916315419813674475209535002216447586582771669855196319613090549923496199953050482051898515389728094122004261237632427737922795037772419799487420344440207159463181124644688314372787574968522806318196297729398954975013555686723815459689968415593433805401601884541870200755329509250787002107006878826755771274900832829266434667599599015162336305168390163054656892857845051462275199754507812577124261840500250179920122852480355508730864539847658643131429300384456465929600408313933146794946083324460065475282874412217822485954268024170058330484505471771715157345814945901639229301444025126567769422334579580234435745813691218932031068227812603224197944756220772261997969573807884419909883338575290032723510719885126769639768875165145658012258667724395707844156793452009101392087757727009901917765537755778300467428369128479911276917866524725444649262584463176070614644471935127496179911895390744274528820969078443070422544734027864697430615844647235195655550770711237947865377644396350990697773631516145909632537444593541217460652929626603226838534123191985212293821804196866577945485799503184912888929719716673829081869187902661007607195418633957954429767422629335628243888541787458678707741244269218230252544764949083077407101131507247801465117159663810613107791853890868357708750240566985071474829284089888307847637399755313036173700910261328689491518193796461751779059919837119375899056857275644522005722929575004009544239822178856216028928363762018951097340123338275595560776429577696989854167466020622646615473115935775024500825493597798548703578412145388022873142131203793725556396782542585363075154247604015477549882725936321735454122555431328636086744730934931412688217614532323029515058387717865709963716788831444235043013969688112407424712714132010894640930882082090393745516902118949697463313242817838628283635265607783622842813490053071881102289677599833498619480076224056956836249539668586325442334207840532360292710209674309713053535236644142500746103883080673816170688066805698825196558290716937141425553974328267678664408659519645131757556318383098515565643900074985323679357698577366944595666381477070206661207213953919110795516500913138739586889598633135686688984663207198753735096720875377580779503718604366774602425409820491676824714141810303715125789003220770596408823726006733364168249986795029430697932223780726040516088192623535045344904396872342837530311162713158424818010017788343455819783710085870764704927355210007621159110918856171576993517306551390595539022983663680378113644658445801609736122054541578480856067829266613524906588432431363089746612157459071916171527723851761105892506649044245335270645457900756685202771076124956728928438307867158927305169762181834513498171356939969289877043362660334505831357829307325776369978953306208896512477330438916938839114829357225495361257749575942910150842847078365296849987352467839533901774462157458751055137133701464171830677113447457399898200307288063020189814030095699474018804623768349253953653130182596377548569364400226082454970894675918722889796670843475799186755380292193304638821147097002331724273962236057577006269305005974144146427004526718902847563856869550657485766214013497252757511471019635373940422270235828178878100100239714739839633777945153672118329658596189903538777499372716749934171008803892055178198414222950549977840743407000412736536277133609384253706350699459768359305104646170651790792274652096668253982038630456726191340444517786626418906347655116215550365915391080439800149519100149676881793845805012559899366226831471778682428877047271901905494432312855376514277443734482358479473841838633305068956985612672607832841695539375071332884904041085927817561236080246990320714462698758047131948778203854333526315562741036152762736638935781129290986535665487165250822054326073106065270778695345439153023034201294429361214668300475588486108468657640184595116938247417524560930753738652999708980975239238388049924815286330671484374698843632579029162585822941407379320845288640968218220162405472442973794309130745111162625237298100323593243132776825094337596890039179212440883662536890417897112371324619681211697846809263375805800379296927580177098495172473265078166991577295867342296969086315545574726373574661497678374071687505046159492600135593821328429837727300367756362125647563022809286491148955630589084476495911263909220524351052570205283061260286678415625985492231149139183761920070893660307620878845235652262081199693845721328019769328505040905308726176886623050084210502847622761896542723848955015227942739864548230969391569204436415913686448414860577044234226540080697742091301111232179593864332705306754846129975989482194288713597972657093988269138029896685868790664347431780632648770887541227918761706325213463564384178152472970597247992845507667346161905335881523422841795823973293873293868339169278058242023462734253953499244940534114683739810073332446970518431923253356976414092340706869454632464719262199541553061782908849790193468108421872176476181839987368872963398215225275994946303363847130075853949496202795286598980255227452133279260979339410442880404211983985795504678300297983269036052341904622748369869654234309785352638056429279382898168437627698793594529714949367963325498013311878421022022546676036645255691076436793154584695870532263268682803616698134665633128987115025897235851303025078907891284837495212049280791688875269858470421246345061439291616205775164969872474426964169175247172528645396311519790394637357553566561031701373460660648183545677666066386424405234627933263426750873060424586182352929197842282195988132738481169993441409268343653377844281646694987236892906803862426774005896813423315720212741635921953741687569671150310026814030175534858384474613997128957838755945977683841054715132183433271027137556048672033872442025194933093120214749707818138486586853715430112213375360463302899739737188264575794426376511744911228308870176316105497166287415365212556890859375634871180927181494759752527199181408863334536798822312044915076952866181456415253354053984301893081038185048436715240128306808372676756715456076681967323948140375874026342855744638186126176181590196276285128879107547318431145992580487704275084628720272528319369270890005666308038853586978416859877128646483737640604929173509189852298494905930111404800795382581604522097659129525131454187666552167431834540536023368872623166036888958357620612293473736796006134188173223701535269977041218616519080667539185992687823262874624824823357777382222852893367228913722847127578611777229334614134109160092384769115262913306883229275645168687514138682915827899043312257466796364280143606782538758951525681786457173757645253668873612835927218312918004483128655791008386611961518749707689575150643709441793825558552570067246667349010117447175229513979221616566756841213872335971703245795940973070288555001613059936731754304175240742788680422812765530651546838889396739355853660014912336096657810155593458051902209586895531495865379923823692959852095436255461837650488437690937170830321688507803642351261211078549832489007549098890679192424856091726262760210396155067621102391396769945637894892059934269504155646819323965294292806272461714646786747042662249070957132236468819321231858059520061594097868548560780311832035719456199051111041828960102115264991212611674372512278964281843012562008168432220292767908025666116755956559055322247397925768776383398946457845666064813744901787571193058943439786920121389830674245559565029881763091460225309281997083736578232116512368294772964484007874436417857691639357765444906566643712416498343444623890889957120961840787681392319111194091792888166885797336074916402316361783506293850972601965914340836846458529094611108995981591485730620140231695222252953155459348431062398671930831442629387535948326376580127192044202104149407084074884248553057819877041459459967786390853636710327884665311612757762541194877743299657839954651303000039048334078694760381902607325320151583620980739812818361556938569953727760212174654097381911245020925234213280302073982691538878853886375448651950794269667534455349947696031851361049860988781321501394238238627858447202188374911567469180322386389508481061030172997008277668000995504497342644000543993782524655972705013402112117705455942585797137818212973489850149605244607028150494759670085189239662626685836107578665103873468515800252431166431251069152472637888260276457873075957124059805991950407798539755468617283019586147310978752670839004237787691791552958960188194682507162084884274032046114483560683290516977905160521327592441231895469798382722097635870635903278597701675806719115639045783171669829782273028747595747093376804474020394343940553091147504262899773120486896278069225666028960324233658423413746279967400197825650606761163967550204448542250001603516750936072948880069291387304180714445123169932298343549576605710337464992981335245359267954103739079760041335306527480783682658604107444739936906845528924599022514673104383615463244908406552876406171563168442865694731231545976948815047477286116847635052683639552273126313697898195904096526169067643641867648138231662934224865351162577290428047894194083566532577932865639497014207334845544576706077431485468612547209068808345288201412105657292065499437268672003451816698393854336315530665493499030062502081711549633630288941448498015980918323570553620658916856534966393258295437600149211779940576155058240822661718521866105168711458356009791899568219402737773162791470466940450068932189076202532535181273831576757148695118906893067450453292009290001212333962349587153380266010706525098197308311028492583410393902074020090190698818194459891162237962408672351195793272815219716379912782518904763747654092692903414062130287854424651035152010606856288210069590070717895465201419238793375341130587992834794750401113176468179525292872682620888683138094780081894509650772477539804505850806237897362182001428602894660161200770978563430980760930642578967498577505855133092603313494260749964828231988315094743659856550854918178543250446594177858340471707462565651237679782318946902874963787302297755781451859247208660931435716512408141831083596670150488977583153311871175932908174275785640889304571094171484649414928540039595235323506939438460308852977239063752154244431950737809595211016457082279137302036213883692255188775181083506615277856821622112048198739217018083727180526009424592370970847299578758636675164231732399805282787178860057992489602058625152136921922574824909568919455394749538447439359714242836379876081015857206503439661053003198408145007326832570416702403759362471864532938133615587187992874197633233955919167797554609261563918710086162437041248949974254005862297258613327144613565567310227991061620274283886907802917358495257902104623738028662988497899972802746630977301021411590770643814550780438714307725438248817553108027524139751614902736576035976318578868942945562466886455963413345079720256611527855717921253010170706716598356178786840789353483372191125070059947430504406872911414466189706068759947590344431604938390481366789160438445730693652892416120571762140038783496898394497606080928062977847806084898805147972486776619586363869656114081102046044898653114808782897102441877981140329747089906334106414056267518165054084563182106636979423673868377600378613182468512196018510666007303984972669844427378418719200010128006428486363222894662864516490420329744337525591364461419786292546677159197231683645166545168776959094870254744956187658800522352646762180352132447598991574646167542714314515440563588120058999256475257697759067725274319551696700740911184865181851553461469843988700043794083475110441525332359085949916793320006081020013712535732375208657566354569986577499503352630170816398883740552569310975571287485138325065053640994277997404419517040817752800511266871883749826439383553481578420245739432739644205624886939087723291825088307424390818528697025033222284242795878736962855760408447475201096111291376877349642480525350046040328094938723452070939847004711181861422235801241639547218546818674707494529543772266142504433114659983255907008019344226304320917577015985014835993472489882774198131124420224417062168110133005538379448542030607734712486946646968171581025353937349456297768374846577807117587657519103482317451572737979210032665724771295908495223810943418682134260366063661132971169584953173130943053996810379552721596166855655185729247864284208333874012582394966144888486709136975514982196340979793498919041644692144774434811766566162446945528714392270335633431474144701856812987578881118050037243944470795110297696956360782382277710258515106709163379438795485179052118535868506830144046746515738711721239962956909634655894515177966687581364313673152194255570164119080121739123168228325443987564532066796950343191054765362502743653516229636348209637051343466184822705347757005235537603830725578671144824938280251371182571677705654414729484876178466428899517233587684423553992294197960630746332931111526584089783717743834869818103299116717045965412427808259906116264421492272140788752679266098287384529310232128803102863742661468237718802172498187049362444369854901642239456001904866736297162400926186582771102596714479246411833703927236167097145299621611061994056121149245179394925801651006403218793263048381090187420607716613794992170033710457929523968454780364617127485665579372599827045381514443470437284344191189319061760862422629670227946486351625250477437059542377500670884733876044607547846487886849528872847228070234284458725813057240355211808599111222728106036510763397128605743540126118372393866426727064908671856732938661320859295746727020840387607852999703831662580352411158838658993810139633194304405208000212381417944394044443744331308206665746818834122669612024867199237758742937815947617265105863201921779162037180670194935886298981385279263500797381695333773789380437107769203634306482122338526037221646372623349976737832576792921907902738868011721695491283577261064409115364106246548921700834956893977321863429148501140962218059302854447778059445620018494242185670127067328822872290814645438783668078257266532297936090864175998469465432637389176706127467147604751509080099462769932795955821157350351842099283777673051225388627331259561724517041086031823380109114344223437700359554250746965167863331934106862226468953501225361927054266379167031857695093695096143178856552682478374392951708931824378298932495870730675150765265670766390905971457040360939607142147807118214265161836430042152491788798910961156343563625381078245342140420871895057118539326385521750003174949133115494500801846722072530283627701038129740506101982641465710206244270692112187969198765861126167329909856736974295961834711200600233623472759130102377232406387067835940318785456077376178950104169601865692886019212032529273805279903903395476950997074149726531307953650101007925147515496798029487278862346443416855539483132371814895889982067385439902326712842408458159397043641330680467701313412430243573124361681953271603216064573086089909444461314937455367402152357149260547654743336833225935612044894710222594171453642336937336711012409915554697157435672248744820149188180662020524299328319567625546282920919679126835833417966190677800507070551480187485404222794551287597267636158725534053836522644687772214133186949688320602048442835922114986557332479806111913820656008682180527728485586982232980345887283427122430055542576441618990926167625446017509482622558189535934298721959613902299381003250144699455459767589137663808869502483658629418822090821480888561105185316913556652888240382125739165356337163979235824925691697080700204025426352605228216095821918289194960630418107931904734515534472129890275491718477195006389866683330439165413892090932395736690022886159221166960593699736093776522610936344835585179156619775400645385514997780870903813364130376634768864640066656909809968184496037245537569037152132716841303859899314928533202677991486704979525581697816376656028026541408681269675910876776545188068549660776294009485632615418508167936111561199324676310827851599994848157576926729503403149391842048820624334797409624890542172323045409507684968455256104297462605677794825963654495768635895790376389915359724127608004730241623225836347329463960661788897540812506669895672506144545498643552420416140648837962532731833690054898203701911952358055470012696776396944828160857751324950745452003088567752962582171553726914173988831785705465866040816892470437961489255266146739346557427186743452599870345573007772506387728046241119724104888865289376663259862335229139713498963210407715899053227604312625402294515754178102552799303283908867233545499330031956536513627682401012900753836536394118401939351665396691960255981880800344237353083947440189971583657286801550039551712074175573665811916071757332846100633274027995345592597882229248003776030473843312598408417468294122164710944345520460981061937402387713794186408615636436041842592484841771375475037860231078476804080524160024337733863386380525798559247132204132111792230346371797905226530139619314093140248526789460317420673479042546027334711567112851551994910393294395956311824499977292761043617984074150266022664811261505051180881781723681111180663778057375176277969624869549520667195782374585092057614282664216498354772110280273737625014178660217412744910792774408536552919044366724800336454703308298795082451969895348228012929397130840693901835250904444055145399291145921240873775831848896843141275754580498004935049091448744937746193735832411962188354898778734273974934974602644675227515926216527909778409969347096972277923911731064882406492643433974320042721885561591625700399172663377891651607439550238780775092508186521626062669352349127730076873179735658883725754512958788807307506985161889071308897930378617842662295410068771301656765365626011240200374456448879226112310413574900430355245485183711928699409903919447367192168592449474527181472963597791333694870139362606499291502870766173599208293856368830233043329343136282479755147043843046041863758143434691615964222305672346900270524991186452371618418960526414996497767587454586861589370522660970666747940349639272286226063629518508039389140754306092744959576667794643236863664056283844933003138796855696424271232190525957022174886611491355390093758056118649240634879065088122768959694380763768208639045999245704920350453590212897599436775852465775635487942867348131813614588506392433383684044060487825871703257140517429521074039726908496455146488260190968734779531193028279579855593716609603434516667961284606381510457410543647147435268044657257461185204220965929970719118363997117514503162312724807620830618713449135094429260175068939251101000621773697622404097404304683280511373650468099081367972509321457116191519595807707104781619337976209561383042099291822411369856047784379883560096857607649097967804159356203911512752789735131801012717387878022370248768968287064365562079978164065578163598130085298575107492476087736594106604504385236066679755895604187470518489432115044756892202273835962927926179018007145125099399633305600139306223117507752172484615943805058239078209115168179145322912529250715464504902301453062556200681279579716989084321854827701411199626286246784144378081917890615942690953432055253230474999629706426606981589212920412758177736671198098699105539603938124949744933454241561222258040153608487891514526674070196577045863419861267832022378326365820211338289911502483638618255984438029252635707006190812648110890464018769240006682316546746937534195568953181337556844011669447623563700747261375949861457687674603052366582945596231643222163755977922365625736000718660739216831443966380719960712761505314329055529572287899770302960162314610717979487300562755655853211853555176700603493186164229149463984521699384668105160181912204032372074474205731522791148003848282382847029347904406882066856875731232449818444721979974403462083003069360143593683563592279603040586094082043552604447642862482678207949291387238761185271725002735533315140382703662525047646602636341373113162654526905284708925367422804530250028816618401551261101092122875307274505060727238175300562273880551953982424519927587405699759607359638708697444230410798195354780566291981045324452062528391856802860827116142595356446938085965063172757727240875734200214621214446152542306270657527217252040258220836580336772740135150854830043703840189477026145065755716993687170909708046843707410716289390425014094997340120438612681219915073408131309100444195321042988542201620664521749236432761235865425401710295722670249532320138911402226952319406372315132497321506763506316229410653703960076808565170985136691281149016405182084075930608048695779145762384592687454357892226553407411638867852435690182489971466590296657502574389574065848097417214069812007215449330104071747131529165418898667718876149969704902396321492797351020361202103474008628715752112889091024612369982602513387977980285861139972128885348725702108037571881372957516959608277176300245826973609963877922093890867414067761096396445444147624752290577093849327749856405074917865141141062754941865904806378884588186837093651905256295506363345866213333248086077430091609334986239869719881464912945557216391387232934172075541778954577612526310465542549443111446247217149673705298475797771234625812570483679408399416498041841667397378184724418883051222463031129613507078510308230060447520180793545277196989969876759108987941465051929267718669237022174696090773297352535828650096463491716409084073142334726080445902802072246443078842696491805758445213309560154854354131835661101018124223569097963416124612643932637733465893627081221516902214381762536579315022122495666991438999278690040417848648191024716667137575306436023175608748166697709707547487152519936640237667048676974573718463764925711892027312166971823607380680360672038054621700464293349565400409651271452293475459345392543246964570330314926406290896346228526164438728127502395708917027045894478747236470622415390903226986594163831799439979805771388272587873929764749872366099870390570488523680937622414752995063870100944450930826117083879487232518952178511611949504288309474748348665606374604222084972537410805171847303570186309753157056192095238673843141017976027813110355586268103305968440886802281113467061104626902891051561723899128814079364667167362809426067215347956615223573793072668900016488083942611780559015044628845994302447636258714220331194604552648897245498426461576879925616803713488629534791029501802812081155922851354515045507847846913906269786059472494793951160558511983107898423856794179567320825479688105470626228160219279031258742202332934788978245691211595245855422475376461500291313825752225895886926410148159100170632146669105473865633286754964354636784156447973669550647301009729290752677583523906748590701440596061501212153658958876456253807326624406783975166244116239804410688334937513061391057140660860889775515051215176147009484814578963127054111311666213358485616005472076884807512372107554342750310953304181175492215124252907825347293911263095754146605087732338644039124620940205950875339075187850957871748485046713130722232265481027419893501564673890519621893625612703657481749701377570744754146845186108835723269474642734143404206503042761975906595584083908046471450590150827157486493349075815842434029071422159422123977281802603642030746686591385953014032242796136781393473800148753531734515725222820077923322825935058389600779071478299175859629535029102636513171670673871937296816961590440920426825511772052400610768789515423168382351744260290200389366864825503397658085185803708946521248290490069653040218598700828718326077278497697813817551641987425925792197320153538093953627509739491834913858707528176310717481989485803062113791260597850167853380695447159651655423767646770798855619700511961831539050702543845424007632976104058927922456827404232767273183366393864627020819326727790659109274179465428559929117387793105374994662538794832387065350138149258207880033401745140794805160479886445080929595129239000688182685290586476269354757100127191466402933292590150728571818230847569833476381733215419032237383478656402594747630678831737922232586963146426438326603728877969859967742978174109931006476035018805502335024717035436611118930350686291675368509520423446805850207971158789410203443362625740436313022245727937960605116636535748805639739559803698239919828824180698135600532085407863131516045761646564027619023523418495776946261675233714405569007090874696938816421466932948924309896970603946528103296129917365678047055151027311531963718018460193937220373499218601719373018134864829028757514254902227125446750013593896577520041825846489701101311981728047605995434314455744510087948113833352230220152725300525664244693614201810401389749890135702115074197189063603909165447631393326476710022159413354554750803735413231976005055808117821031111682253139072057779689030557233261103670767759751231195045312009685979017036734621829768233372621229544091583254969695971562004652702751263975631738486192832880178676934907204270399364614387713985565849820442133156444765432484319182349377258703552792007504924895096294393802699033300834675060002663338948965647978488819769823334000956724394454543353812156469496508670723906616904276668858631550210970924928707822863135608316833564942872670502437888180896809683472624795630287025021392174674484893126943404232080128490704065147696214715415304653808282808713149458700162669734471120075735406888120925881459806740745486550801805003571120247632250919483718713761749083468206115958579196534610466603191940790454662820079749735350772787680744155536526786108891270766882017554515303466181338706757782773163404204184724054316306155803014409895244178619773400245194598932725836780467409826529485138826389748962466804656696619362995427024584497046396544233010875261101456733055136327967923104806037415645162918931579490461332104081065016848457414388447319521013496815768024857147047884758673030193802618640082608757792784961368789224617258923780775830243896990493448195741489140860011263386069145542629340553724764913083024342872133801876869951279242603418271643227945632804688074264835211378418701691950433339343850344514998620691010205627259003979119091912413002495879818471279932561435760386668800302929536308839601682461907102534982904453302671763197992956015522947504208330419696405571544433470626137374140811443349354233631262785924835486579947637454399227802169125840690573134217812919245157436520275504010942391264865046238819273494630502229839553766341074566380871304788353339909868291294442846818796646842970375994413005935810211312452831786517379726251830092433942386974600801977082860176062207210694212512140277967169656655045323704948742119242989742778358160785709022515577900050099918395593185838617828918460150920258290251238590367547473449932033173319920653207054393991421024747974361542156823193821304352844605616967805244240426787732201786383690742269718361358255274853694269068971675534880291303133481722873622218782367164189982225428208116052294396897574094208856670473777554959103485002218250847407407356463367036165576131495340989794055436353194106662534456554772206182765563531558436153560124243886920109226540902077538990255972610511217545296199419366907350094520697309706961877185298954495536669793089060609623357640102620286035887499537468923710153566430887610066208498824099500715786787110402637104195852276662359883306213201999962245305159161768737924605011679007037244168331458919555609716826410598833037361309661590491908485224520325923957398950091344379160481874996603377422915247108717419012083608165280936134336742956089265614358933038715938827450266748736061386667649907211567156118233721244409481514827174182826037532473139199943785565353273721007597981168690433307508489865561853657363980783044134985290679545335840476215103492402769169475712462248109665273445809960020283465803821568407642244825539949494686764891832393468600244745274081724846949295511372182952200023464564568822442672447228737221108588702104243776766883499914920553479264961221897911387499284874805869129213420255024925819477480252421684749717433642954290361977838996200304566262261546887245679376073440413370021673201532150080343721657572672628115572601777925679178349383229976984251913616119319643743068726216223304692212292859898694271394960196527733720606791002996841553918050552341488792870398768643048022891995199121207445747905352596480593645157461516354612581296813228274084572288765279712759018440378734366327063074095119315189299062941310304287022405502453592966686332790478243287286502877331889217747938139378066162558454171289259209026678198294343444979472907713056668574085907745693587490490554955012131119480091236677941300533275230236885366734057069431235536594942277611557004043813610738606119004038757935306400980808073417230616472263120713912378011973748309617919059936401528554941104561131940968365704735599751807479671561718010393865706690509473959795975049644552331665743671206878838224207950236819099226119726015652542435600285549240350670982113103036288995047711438946731718197829022541677516797238277057464167172350273949874672619395991225624909348077985066930083080034969970408902951149759200886481522985090016902982904882041486042653776265190891473284101403789773504222915698902049713500820610407604164171804515616148083846488200245262461814049603594714924809029541971468694063668639216857648184517598266079931105866855943203486174645098464562784706986882245674019898241707930162974805925862269983031360739616657415683695839505509619556337483853328834183330971894592735400937065173585416389113664339881025724430124088927685415401762610873337693183467979137433927741053065573370439746063726445098839032574936272093500792994933439328176123900129825630107000583539524439536436460485952673292323731337905650056296837259684014510957273450291446370308928946193015744235907881156230286683072888594978716043923332344754673805794973324066676252370543363394159096166796449502987948467412048044613099204364523194535292501084065549307430057367791278149893180893472521681964088110927450604251007472750779781535702278178287707987201842286874828910626823796350554098754555624737079188075237082442486742186278675456998729260261122871568222786267569880962500037633750590335918780590514240364666873517422467818601778429826837300280855972654227842225189810890772570360280984313602950412142319542612561974278356915854125200245406431644366694875911431635804235233762471320257606208240645215784765204327887538847074350742471214442172469449385159851444985482766008821594283035447753416809512941398232291689548228827326558526945067982503004203116368432245846519496966290299261005015834030509510320241107360051244287663511058005453397244924938384513994450847525885218782563296383914030540818497468421908226618674974530401736182734633762190571779169188107282704627028528145473261344910659982667968183770627216937294129792273066492515680721081385540045721553635803702691709833098773634371127045005590370968099850984755337861476513256075195145464188085089486370535420241035473152626982128314573415196478790808105113905983918999322953085695249941394898032345242769396297459524984289937375070509182897315396335885132407603556445163471593962857978927074329402448283905918266771283569229696170508629771887602360774315873845602043585782564605546217651425263482325336174820264881885226519606597994801980417893023329089821329683770279200374290307604455717796731359081977529764350241187335516776039410685938173838311786647108455253061796661080955379474575131695856985406437790833597302233311385981240327253143933034229714486152810146429779209683604520940856605187058876350194283671323925370344212718363846232884011391331468309874354297308004300073184726531596421930378783834815006049692077478595588050705788284634320073488872262207217379061807066182539616446202052397328307757713108552761336035501061013476032767330279077318518036631642385292833466635341549902525672858414835843280563292377530266471516191363440030981669799755031431593437641030107458644995038601617429218098135239511903541317703333286093830244296414226330314202178595672678906698241485803091779515819827731295090996021727738271520611885125439104693764760391223061524110432841065226279176716900306741776814715535827266309300974404524120796773789522603857842355277035135206423257853858718044324530439505544894089368910825718150375188128721440782670059753794273907995645526064063496391107340293843106925052704932090701550698948817562332728544434095598546029802292499038584012923749534973548872503812484486642474365430135615786867346682745821205622880286698208663869185960222042425071382030593294757641238595566291703139604667471152604112421172324581365819677772840527329976478688983077935798604089040300522874381897000033903173406508385573356826906341615763077543643353024036146900312781151086029213854537559661495377263269503933590470989537365463753474472177006886028149202512298182768253121079800785893582645941325638250888372644761862138761134299218344985539106691534605553027936963472091324445560411936874494036560691716664639869988264073039724932578959285366007129708193144478303067669036130915028348848998802681165203571839470386047711988559990251675049157956290283605079328017833532274400110435270188673329475142636952864686119654237457621261687928271003032277609736535681942295069678613016870376547426887329636091132526834978724381338055255255197032333811790593914579902736891711204578803847955602513302454679582805075775887031906316284442567400094222849632907826442483063727738059268107261049164514503280895084712135456441578255014556844733211648642956482793082809401935004208006280048474497326795952018832904758168732848701324748333340600990187854720335051815105979974472060171609713204158332854445707591443645882014813709467112134040737678440611687271721509552627858578429264283488565831241473759096395123837016002363133798804434216027051308625245756107793503682349705628477253616062976722937725178981052546250006376229086139990004118570428473325161296475733951667638334122258825150662031483767437451836841247804387070298105276362847571585132433564145831648113352350997796726042997131289380468142711928431015000402456476029916625183677914866562906989585634536744008497798864091865336818525046760013191502081728452755038672232521289816791452703540924228305486812929549292890051110133330688840108327555289193200647093417684070288239615667897037178294641220872987151207123950918677268119985661264943481719117597326078357309863758231249063159824831158111285420239976898194076892443427781859705290353933570867825992370296729012668502089267002047181638410878185571799849240160398337081470576568238676267936493409806019855229878732396339865877729275781948158103440726810592166695317254989110483060663087296588977687174713314570897208298148592348533146458905881957688257134559515800565847941839818819489922443600890640159593531578333854606449998636776865257512640056515167844841472645824807187285482858034899672758129605325925565075279124945647586330164453785357163804420239820751406131376776331824153493331380634628437654649572391119553957704602082707602662873065919649153855916173648148715481274403554360611395380521429133458468977934391570849569183108980010871789506174156933426917697120738163259925314227139596403738778435419836215626707891507920718871609048136688624119739344658130495947471697521741623712442317274513109348688769117327135175701128371814695263097699193885906282380671854557440820107817603383870507381659955142561818798984901455320847038031250940353501295578453809158615739338353862865748142113750542179088935016851737296631310959121173969501029117089116594944421961194622767055087890918642079591367165809334178746873118005934987663310970075594067435332039457317422386770139050053580929916450451546334208186836860841982264374324696875630049510258932913461675001418924201999789440387088947704138850204970343722760404576021354771530903079500811539914639450938664785882508146302105207400582670903620864783974850020616119828889081417741984989801528674603982659638167719845703513849071828546757161526028933171877334402206685150280945481590300356547756734444602239534411910746081206491087074669969332749036647284516822301553231162716958894630802506111035222947008418372455112225942603287946220208688760794138437899831700201197164439750620838895551417651072048091774683581927652952201534340420572733594069103118886719013162503387883285905506075017550390542947149916879170388431499598800479959969253317331498501483185838062633269159548403835491550037735978545813123538529838659649736678403980382276598238506001366980637534708341044369885796181580371181152789775440148629446796986378602503064262124935870822281745422243515710895765666843765997591076356352335783740219240597537082026142238257826486812521780487315241828628174383439108332294225477535195030300573375635055804492091612828758024894005406089875884784935618559670821343535843124886856772455064130834355923662456131990608281959160052950981454562821677056397535688269275805783495142096418909047463778544152497002302593723614556872514372216667666999121495061969912310546831887071499896874624338390501244021370370420112696413795762791233944776454089129709689634026508715841365119435497067851128465040279016892779763966740513962342422857496080980649674863184141447451354428333649999253529238614470903255909117621123523630361024143393324791499894041707346313071793056422964219635251388903587018538606056753534354197914518154499131679297659467273208869534216457171989529330782599698507400001790190874655290503704495730813137114906713595530996599207163255595794048446274516179370680643224946042439742994076315294787874002147789779522158469143143344888167967678407188888222323022367864275512704148194894916767006931872958620740791648706007276735258658521842690673231193360872186093845600019844190569924461467243609589087398029307763956118529910737679428125483930695082013841935159490885408278704438632973501444000439640365208052012008034908527389873585869167097427540044247994982661186881379025674867350730871584582776212238607641375539010157932401141725371547739710454762902413049062171735074550593371474974232293282054957939912736631388594149960767730511009083279999906408233340014305577363881302892224442171168161589680960208702830773803584473080841743560461060634495371729195503351475104411669654352369252975575332130630657574447096446345593671116429204927295050847065105691141727875733484671393252465064790992116683585480907269391097139639300386886928001785491589973782455618097994971632942595664711749352624131751335312677900287667529226246533108967686953198853258884835078617839682866585449394083287313814112597375506641690128575254876456133977151534023408033599742437848703713420844851190712236036561898665768040768232197009012289510827485268786677272617537813202176373361473170065762472021239703901059844040058973620311502079077131504885902948092343845027737777059227820646435090679127076488660885566532500159603301460699402426214333220139602270115295876088052269879032299073681876773666017664997850338972821706904353809916554790345045983495717818971398739369523192553660680772658965441328840160324911367725155725501658090802489329354606279573396369203019278864009387037172637844578101444797038049451142028736972791271290311607787417853775072767803338331458531913717162164855244356347345106494664973611818909952262496218146258075647742045860234638461282097594274472669559566058663770222891979432431902155201879762336479095797785387865937636820444888347201695385733794503618677918410364497030091101579008821925174861040806373669833651336082191454889468646629858389604705896426263733570119208507899374655728610931479599913820838159214689920772232073204487553303149144223177407005884929229154953017807175666228707912913364788449929413898879449890553816251990150302179458374711597852385032001367446111526780155384904040953338835284688050382208544660967283536642038539175147083397962507290116981826231444549079207428742486170866186254483079883010468645442746186086815642512418951937868981912318144498864275067845970601442603697763174285472097212632255100311829106452406872326377273559406896789209272461818950446412376905486363572951448512083647227856119143400610202465377964267263205026470156499289730545189915555892901270101188859916117596701279820584648767381736787113000063021713157323218968735639545282240734697205456741511945297217891659365973112740421230862639315937613242823901739711410744788453390602368000713776348891675696395794807010909568278110541273704896519427308260615065255616568760231573867405850905895722507392267387951551125899238029435062452724191190640742261148372334062368677371422632424417907780182230883644564954613922650490739837015918797358355749289477984628702579694410247032492412053713926352884814289879874189022993900004648986346857168306877514955888371613996370867012274179875563163341906242185095082863331588289240636331531890697245279444737028779108302367334151528281923242670674593424083873948297142144888523222591918606796364774032714925815505607336979102468674278288583684378863911590730623276977164647040834975664248109080195189826049501698282912966641325285963180034467203329452317531280061284790121366661779900692320721930405275158359225065752421554784374601239396589247007579123437764096209987015260016285225380466037860990135938384882303346908140565324374270297732914330546470354321828868263810662928880817620956625526108524717561432402072941634712368499406718957942096317193242808670294360114079782064961519726173355252240775627439793858079176174580080230538507319835908566148675063245447180768784534975035520162832184685768015949777893784326216714843926888306101681767910677537612500058397636196623781960786530236925382910322997000770526260647800138880841421529793240854094821026352688391981450407286240607932901225326876948940239456193613345272876392902794327981164030877618173124070847079460230698538214939727894028809274145132506002093319693348373878948200862273443058853915256988412580308595612749016343864093033407023085775585612229273299850795927367711625509228860829741616266873155761511880321523759914902967666701123970079109151933135890609015700016671480806500843206896428769189597845992142509239057514552272319607155669243765453950346540090030926503140311533685904353101269339817624484126550008958701960331170743935205637743511775015736138146993661383745575700019728307703586949388139019401263135009826355426287898049201808216245679662909454203349226874568100731301968987165257429056942281984923631528169755224677611881013705266634442834260872549734157295798942813939894380316993322890306377698057833942677988596345564672591210808181639364635952241829393838584477162422564072834673852563212144730225791063461451737761306931809466952141400555287133624285615250281368417829419950734829488821702950617653887229956864488072523457722746510224313093310044443835027944015441199882188869933204187863546869083488043702460806401195254061422541983966982228687802074370750616254886584871965215307523291918610553420574739085617592249640931454007606175034549495658919253839494087223652593334693857592775427940473013683153829719920212666831701121348168193251159974414798694971427756184074610085195551359296966516767156597211304616787933138553601198133670320001362411708762545871190436605700663777039916211121027198112784273784643603831195594729145144206945907444711469693534186658116938917617621613151186657310328854427378890067532867401102246050056768716403885927031573606403129075047246643100577173215031605186283318495961889258881981876587621589943226807051473023455288984339564574024120199058443324256416490655628080946135319196776662827631696128214403350219084876190754593720444869137080639963764244063508324503314517433047143476797469818826686887800272537751736975470530389981961494762022838083097691634560443826168252281223662412236657907348656592582136062475844331099364257818114523945923664551043750989791669255998429325234482486367181509607842147006374541908056377185698241066173407180709182826827625746929028909995268992327104506693364368297264169703542014946460096274185606997585446533746703395497633505755708957119034933176204361561431586112605949188657248252735756393767102809280063302720459294476113687858520782705061556900131107343263295251653249853827161664521327697510869053445778947387895091290433491790407719367824880938182902081889137981007782873135857358248997360688236121253231598601878775600394994646623784313391568128071686787408487356101123251001484943462493558238498915619258660220804304287180550666359950022816536106745190356749620150839395090097221699513375211729703254111798621129301077279993233750567031653810832174630569515016937342427512087606772543123055719709526876625394120046049852883691069966496720383949936189159306273231356562332540946258251524341424733475286154393162690042525668553838889649909598839808874952536414314913313655148499150062676180757456819968342667415873732361716426133911633172895955581695504082492702443498711016060831241026242251584563155443163603242449864965413342195425768833334873152050976873007620010484075159122920905854373697435335878050187514271458287269904587829284531880964653187931528172701190155560887516930581326745657675939090672647869113420888160681724879408498866011280393651290687145311863071395809925176487087880128589630885627308818910655091831411822642396356456487153657671753510557641966484896612175246603531732099658988669265075980395621451927527180568353292632707130406885754637703780684198607705186326825058382087388201559703883327403046985530222617054975977676854160034730998279722862319667637893312617204476253794636340385126556613497318506642428103175789815711561198778656349834501013173561647970322383578300856613994065326493703386980986851663742491393459576859455417788046959610912848580570437337673980537519265540322873824419233521287967228942270527222761417464593730693031654974477708108881661432458682744588971608872454189681395627413387757756892849337055383009267736369826864510818384004160503803915086041627963969548234667656628417939676971919631860841354486366283372460777847385399578121532352547497923208215182123774364328480664496346029266198369997529233299427890848324060863314989694484219245717300602667004207732299689121453113022079387046421084242685338484316726327513132897713163897245682623961785155575218308187331016575072308387116479555116439353542274267623731497123045943936793606587417347579589974970421093976781483732131180272583179315892647515692287375967386870809724083055546530491667595676429604686004879436360953812990564091128388367152593138113491273994330353223495699302906687221409398151971001604479212653361765518989447655212900167123030056107919900005850325617451994609169891365218676195973686957520771629105619628720652987223206097305516722356118119833327978950899329761167663280501608737453493106671823702976186378852433506855452697363423683519851443462338276412433918345461487317439670441232164655352976840259243604737509855749251482202406358690137738529353389213154925321627775372959335908950795429025024131469469165474536150234312444458563753821365120830583926646900812315364681343393127292035083061721946751451774723082223382745131644817457597340850541061891555207957706730599456368728102111589436522631451895796891051263522767191500315089294119899559317788770973977999753035133382390245978298300947083276326482167343022932294700502753677143323162137248024504284777737551329701029237966679243636316743179560749076911494275079987872756182443704646662872474449797642751157578156759241316404103754229337563422736831577467901044863375102062094497552836865073931982852133854061638543093613809697707506925305204770436707360350740028787881294401206264769705423832408133787683840301365618170192577314059546334818208360934660892649323493252848814156484021890176680775361757391250241572515071195015758800744116076971883293902660575683695275172028911203351610672317212279602298912555845322560200605128815057081518826572189225730651758205095187773360020650363874289778266418926978954645584786790437039461885766987501900815354223696589033953841066101648025700195158772805578877880611394800596172757809144328563206635294989844821665604218717210821470292935065468818122986347207323903877157207814525841907699360605277361739752060433216766623562031041372920884031122985994185792145188637730907275726801480191478031581590587113595534874967927177949737917779934384427999945495434964104139162236444500976187916433516642306911365404960925834734589397564195188828713656397307917985524164148406292386173134928509531385544751415041533612709989169884637290518943740379141131358781955195624761479137152520731294993780530151045979348106528630229060954668593993284640569405762099756625264891180419406058892961251872094762203323959445434431468029767791473314250756894340519826348786775075666783023749677585426798970667489579560171952673196971318724869131946776478997553995627070543084051768431060752579006795204116091667270348060519422797313803160009542476535222478709766779454195855185331484864256295906295521938472429984383233256039253595652220919642908405917460455251515001158391740709248961055700311966811415803383466392875686237235237831906343342015188945258741352544506601986700387928923987861473093240580369373098250408245762416446755409556235538861620313060512160478551593066845393289914058020952726556252530064580840319708648029017242185484278745991432630582815875286126201990358563430558171057280416401109865250233485727613079386029497523411313462244770194437513263943392929116026762687217769976890041019316567851840991272581502621984318249071419422014403016218637815133450220239774289963643043157987455535223844334450222926442392836740007706601148639430824388061145200843561317318989731900820034049606500937374182147558760667697673331148251186421724590031279848992141043585865843018957063170536408991266132466774892125386795285855550573074316263670529482690646006990415783189048266582755162523878340548372676531115975220776462509883385236403944370240319156297572622286255244315528316922350109252532297381616472248822282024599304337161062198956124767213987257223519406663614397973119925424115230815107495063896171300719603187074749262162668567081357149595801902357529995663300051861620873530827525090068834410467516817737653878902100211868431720998229437803165575578203550913146314889758747276531862126321214377894277858989007205910534000153427278567001813723369405674717878856968993000514108035296307660659322498713636168644319554462972298827194850328502159621838747146776609327801984753623501008352683754615103403990200921274243127786394420242878759570854350545734035400118467594000021792218766132415061745212422559452757451655684631924176985271501533619681037267806164104296892576734025539620375565939992729416364390815457669116705009868447608224774818121384523166813020630052631822728234361213740345275878250551697057575848945972803696693610115861228496300496265300687688265409054671454989939237273678739374075846534484435887873491566828576841837810375290408331497274218367428577430822393167317295601904849899204811022131382158833202090431173177156348958937564685047065233523334699464801905914234103240812690345470917621576182181834074589080182789801206211452645535949967134242325731547508128459445472979661878597733703508181125055272799119219868546924217585188358649692281715323422662810389343587517483602198003284484926287598561111084074586765609619052693773497350344425023026639991301773270182398096986736269058528769721722457229802683068920322406270567038770923557376162595713772491032022542302933738077641129109333409032422190850395828902640232719468425644422794912977341058047386710682319286858441014970885245104906238586013274772109157819973835767886427474061299726857160275596407989807727849397057567404903633947329488882787214405358987045160422718954182743807634530554533084801826232013219201115392341898785430779659109209447844097757476396292349678151502216525251459129163651438651596879266448820687770602213199520325835161643225683426714031001412514403001555105101541076617040634401660972530871367200648466886488919397156956334799674009678588055029729482821436768013742924630159442154659646892606171936929954986621314352037774415502793987281357886936646709763256513335893152943546833406040789713805521029063642540421567909655367501563990214821241418040884381361253672866542848302635272270447709844927671633501680014380943152412414643588183975581599120135620083092514896915607667074229673849976077771266274732452321353460318764143401856962173919458528221845408638111627318721002801485276661751564234873150285184449159779881283873789003496156118437136825787912442737950529939851951500123718025537739960205672635050819498133797472809186221098801726159517598564847980860022322979419870290233535271255313221051212170131904649737132369760494827196423996980055069745397949662634280849406431320544348978121937097644262742660796253428247577688541267574315607444087360022258480069021743690397827185000336239447903419159978057630449565711896925395438296387362224218885647677666469066413082695889932267183045034879099870140360963613576570472435509560642729633542891201566143056065125458971024190461876322200909344901314247092809241833561883355093390045299755270571386401456036241859181909092333236797578024426608623378115126687560478902505687710338771359833608899201710226978582111618634099984586245343856082901164787217546072012610676884926708983948992836718310444042375981064198272211734186353805202861510080475016401207702927456367369953641672901222833179150735148032334802377944072262486513517210477139288108438469814449844944041856263085416590265037873766692634702644388593960693253608632771468133375496261818146583423746020492193738370651944632110053453794211938486590853234477530175649549920428892865758886773586456834055161291263705252623938100707105235810135551256994488634116674304555024764172274648183810508344081403891547721001462943192024806754732704157082324671886148121916555345531028452511146600794916172635315120731282973640639699560420708711201076661731328205543061871179264959137858289800409624322878247480990311702453879167023181671823804507009212149847841619596792750567058887222864260119476767124735983008285706431409805574727307060466710055170786946128332428969176534223647375018356084585871881380334413049039763435685798926360725587836971283294904242669052430150477537119964978690902668275710755954733954696410818387002100478287567078299438058716150424312312942040762323182882303582545317840536587602763806056882342028816705143067016714980949481620109504571386382535334666062412505036080384103082041021132356021342152446525091403098549571550043142402072658616439730173633448333710742749019399011322707343232673104917505124470526238067900459248580852681171063532229952431681084687210318264415728447943751409059181390397492885118936074014030349974108710085802031951886702204464313872936112173597025556950863154726998776961260357733113898426029084222084916200415750528211869160195046577534864402894044046421010910362355756546566562108675528487830197185865214364535829157364106366453408799809533240105726416955512654398765346741940600185808702743108971373449622795905553595986992774045596383219475344021504814940175246026806555387450632859338931082467317708966816328573570837864823686926549858593891231815451503717474557323807830078927406484748324201778874573828678388096629146071971232991180176390108358721727164852076996996095194943472841929884356440903061982013602903729319737415927365419608497305313408957093126905834224033439202510856859555815063145937733107616900808299815894313592772545015207210835763036774344187722223205452899559427977145620556072338157680284133203171365409540948833722808883158210049427734737763127986828271611537457862529979345400537553904621899285784640204033479408933013727764514777201386421732750491838948487426667943720876391739109399142244888551422443718672117510292875402927485834688407177102818324437883797666224094911194230623610736048952252985427661299753989205228031977184099869645585540116220615605917860714325864693239332361983957846632984293509408297947259952990105494807669638704008060965166143631141377840129864025755747266380538146547790158268425948894773144173418152723561115122317372197757126860777624325713523330501012574599578746983556301775058825470651518438656517039290317762115504364627440741271859046181726240241279592628952192589065231056821966432883677258636926051834836124330205267857209731765183222956156589133164624659682471909411727850009407054032217936179700506766771120788643555826845325989896357336682864712654540842409667797527578984138914048222133736178860141379994363941112955380975381083017571596131330120544992938941795159950578444666593888654974078511430114828606216305254626083868516358480648317633986120374000407190638950190796982165495533230039768411818885851126120802010882431390960483634627110765874359364489952054664451274414132880411455908863299354366889536007933351533420330277131722158791062550051870499269169354627089640845598925559886140576367000890114759495320414039674579593720986023836898040788011112441492344347198878259245018521844076777330138503767590546171412060964996245182378121517691166915790990719178905591990427711478996226571830435799813279048645242328409752938752875337797627566451229886917299574907876623841130960010836814293437139767976422865085443071909994283274476628727539475246222497845938171945687504515766994262967666439094396492792074576956498163826807678172685527650253640431964840922666009593841875305963777472260279286808695610314320492110240507943318303130121977598027200124999152445123505421269047624098216691119745210682857476657458475075065500270765295620376186913752256609504292073168702283030586698177594225115407837504736747283263444606251324480651669637473218123144306273168731848496260468830891554195689863073641390300118541338168132927949071926552446250957173159637662126809370871202086170731917003671580923110794963981669548089890145457079309598397976452465073050758187979203479306129851602939304862383680482278856826786447907827304081388499479991469535207366930478059795703591785386693037959537510827599304750780168533674473545787723112074825341437146413814635002481204474856843183040449267126308307896626708396498296284935451750497854043068678402919769781849581376297105183442118243871491885586217936964756171417578978103550707283279763819451334364410849744740631512827199660081499121981309520190133321856380296403680871042872580455218071454417507743364156732587363122497460787622491559125765359502375766993974934952105562320438893039254285182731273654887947145108198611643902849562949024500570588921718648703848092315287353782954058880112097917707509141326297946491906627620313812834071084913514214140223791018004249566595833620616214450727559186731921159328654133174481738134092041292483565872487902692347687948350179380116726807128979462422843047063543376859971705507264778821932930863306079975721750820384467130370901559032964740248653809874898630588027546959328327967069339632080327094918168370329719670332596351315081031722361483375364153331751178138468593118441576664423329372987461155026109626987965469627266831631599704968433901522478222260107181007605233435096974468874589907307912529517538668261707537206046056360178238637108664853658501138756723912753181389598373415557225105232300030057209130237926094829266978357585069084003216837780359818061373578256964124357100065040669175216167101632547380862123160261256435337936886903776993119057560648385280410435944361475356540097695924743167402438883121299877823541982504144658121691509315272138039295574141795233735176427858103122088582390516947506906564131678421224167808659515541100477928057860336021803098956708405866632897473401839183557140842430701418647436550982448810481946329463828879370606171587976515607490742279720198568817450921381813858182209011475311989497937189477155392227387068445363639002303241882471038017795255664953804368180057452734955429973612669427295670632914416380604147192752821677660066337135571681927621716455266383032983479946538771973934955497261209671884109179211679735524403721846231489225171906343664368669695492843423618021614545096106192228973488859182708548874219764890392805216366569126283985082738337932875000208580027925932745143479479323012857791729370374233726437834073056003675661871863570965630368906598132887442372189728359141986520582000549427262958322494352550531108148458836974874520356349201785239551074427755008524147874850284599007011326873359954082171632912397405628870766656651699951957310522912925519049667578475289821666484008137091961373238857262183875929501455798681380049562649159597095311332770612271669082917859062298524823900687657745158341832425362265975652134616396699681088787858881272855274286834395166280069386807463596515344188554137460910421026472898046315419203256783644015123560206284912015015850529840970452301471744042363503999270512949823327181501594243607441981609285380048300343985340123297461154778548590863661201967324520231989953336482349715643943339680452998772789670236411979287977399271860209333640802897818082844507291975837985684619485430003992947754741591791985915933937794901631501332397628301961500641415892517065231053809295536552703746246326201853875861940362879276290835457652599274605711818298817605691003240550530280458552887254813251410150499774171755704028226285576176948588251006643970587955473871350619235680216228087109669142444529554371293475048832712269630551512694723716697118154128498057823438425027204951723637905282404026830319112599790328446425178246643730196969875241040895626603799968666099293913380171504122377780070845845471218715850737019727234558425299314303187748362500448146502693580605026209126473247103385617179848731965650172557705073572243044760964528318743706821015518254023399515654711474526221252877878757133076687481059401171095786382773748841078166245489617592832645308474391476522828126957810713889822399845191205476981331400719072859090438625438307268791731238450185833808475688134137407773730380004229967888017291094984067945985686412242253130421858767818726312479920309143520735772393733709629350618163807043468274525516155936009104464193032071289312400038818474438298913618727315112556643292388631882187603193129974039290908608911547170177095819771346487888357826613074405533249967558381435162011317202245356876584460245631338956611663482748463275922478614499102634783781472259635272084538844175260796757388076523161773596709394090752348664377697679458831123251692537898681223860565138362088670346883270858384042317481511376379524166617943425916639154310699607835378255689521283748367376492790229379462104368109740903448204792598431270629810695717897674789725644644733831967482889714411671592858837929984456781465691280643377526381246576661632755313301131805741570108304701082397070270546829365556990812515292020948186322106677743256135809710073775012131605819739374288987424519734110042283653277873865866428537489645897017526239341214902988434816434024391245573821287313626085277821784175825985062918095297152447162991240433548621545473454476887681670265445002947786544110596898099074602508348943834478069972891881999469623625253384303032489943424772296636183777377521084587084849647065250833670559100985107102981284978669561203095878196635116601598863857257174597730759222812077030689409713227193578664870339328310108430016040488394360585908491330084043819287679793944977847510386694172019644745324193373596460005935874331010270307656126346526003376158807567956882786911352989147696458396564832010696833998817295567185679466560480912926800529061566491912339892784697767244196025852689397155206584669842367108903651546594047660204551608750758335410625346599513893206384984915868541164069059510325696808197198608042337265462214376258213251248651335557195958094938687689566533114571745283531560412227438801236432290187062204234399328747964451743431266735478087253092253598832531151878160871163797940938212311143800878680006193376318740119851526239341074357306562724038935384570035182497922665774174943422761186826199338515825181576744883879156261222354799143315270711623313956095966191110140047544745763250196268736444999314596930823876920043388132957823714413981511048822797114550066537340260032321318679873335522122041184895887251840093621313661871164462725405546095959796116868255071814519891013070565220569933419671324264427056770390217976554063411422072944644696262880303722462935565195027206873413192799777309610074252125271187182444634809310711239828628215152685692767497796810791766893077532175726109894447940462678241962656815837913218931530389876024679338900370407983610607317379336466824458047065767436971453893619290958966741361998346775546021913420620473003154410159347440821822322489577036202544484473773308142832327224968566747330220015465453782567412242588280188392642648275848168227964005718726431094428400657061961353846441650903650761326774447703733945114088565019649225697758665786025433871110853325177303905301234950513462354270038861586720623106694450636764462902171646972943872598493947228755469773674882791378922022171664853998958659848703490113165341848152595744971251449094866442499199231015274034603790478709864007076557542723634613250279987884774426939872622236305226938734574995958527391981987837277358265062417952859605352763555400265060377117391033493263486097932470287618490121241294929501085055694164899722458044998913609261138063718088051588136964769906890561039300730379882404274908636138837297516199258534370335881735248276295756243757449141827258706540391141331314724021706326727380806363683394684537516917514800914410682409885302652897925107207492951782176335133067311714679822655537818263856066762550605488713085806959154945273434465370052760044945105271501471876890158236347206113478971489176777671324854271875475027776665410180142376346215267218769635665668426741164325921456758572154007375748323097674698601756275055821411702014735212503138482284507338754811015414086307983372363395422325667384473554281024790414414026477714850367475762618193886166393453031660229863954032694753484426441248667043802105364088351168185314740194723705714263181535436465882178504177697365011887059887052513417249350631151801840038497866644636083128198336767489147173046233612408871565288379254984588314752248318286780803671581663070606978952536310224034117168815709421287261620479141527089167599522782750872796503751510347864376833464297584326640768954821640199174635540647670579813791098997891456847788785256506917463910989104343873350590909223039982105333751860973216144394848517445368322399705657509044300982030650333836372823026895308896432460531942274771667445833125107561623224524310819458856373800628313671518528386587075132763027301656265925759678965005650699150300113723966299473475238567624615723965074598234440888518518705532245859895698736644120533125454372327673670525792173981962885655032106839672706502337180615901901364608252038752323656127372595836001815345457673305951396355362122074355291826716195347322364549272472202187655633262225715410783319766343122934156998633337219871933513081317984647157072054752453137298404982282537007658922088631420748762210075257760500726500810946522589964443072090810184268808792717427373946957098868601409978509766216748348921704757609005967349438128819326299933959479990813042721610461309123973778608656396743461236432166988061724119620389778354413137152013976043056186485474212919097141010427951040358899993282894827397928402726906218764455367772386944234639302341319976029415699840086870271258665107009459514026424579551949803560155369872558108313386001772825412016048188112520510147295328525296180866012545577845702540830419670526634476657190897787971626910727257715634580613913187299004565910264757335146737858499128629392135742560148847597270328418012556122154439723418638521999596437094617419341370696024410773783191226017844830560046716228820041997604088302828791691184457976124211124443878384059672288048852143088436278705852673389988637805239115677263936842710119521773027796542444687931152003394021410382534363697822521734292340766206156314983966885019274938295520154971349828454329591202681576873338924371870225667595152291387583178936474790847322167272409393302291769105834322349143668564804784710629871305750959801056589744092304413371493178691715538568741801732755112032223473266620326277731063055616019210056326993551202463954584748285322231132966918441955090111564461233767730299175983755161004226266634805693301011217476905347723878745079265745750002869857165021897857311131388198308810151636415748581561954155752136279508945590936095852825251902342270460810121240420759290050777820490755413147223435011355690801408779805581886101754986430990931338379304388614803288697743131162457167901997715378166283835863780616644965246998172921201569897371296720179692745019801642815571281423125718007089335283291895014917010348520593811662862599161986467018546357506861077983481495816440540747091345820351325101066162402969111446578835489736568562728192421391972791249598951115775215950584053762545672112686304623288078634750867312465043943222643101752707395616728859714615952624736149977907956893785046498405435218014695123333391929802877564366455745879480181812410483197518664606130789899567171279658111069613360535764651590373693978091608406898633312136094962416527382958823315408051521468436430199875251572433718634838100085651332255330544851337252239049230058468186694400762366504942567585463655133217891647777962838722744974566096809527601611403337844303052364243931350330307427174082293803384794664768545589047197831043374654264518856937805686398775364910228908144048297657378261102827308985832105058484980584407849199413194360571215809817261087529091592801806301280847105467637438710628589599460145793326639673089145998051206631311020288332356418064918451779079700722766023718842416286506279956705267853845871533836313074797604180225526950591974981526380097565538588836699729215816027342493621730865330490869172254559513567581510686593117428075400759384537610608425274263929475184855818217796128790794264500345830008377206342678955452454221505059833346738766348319617957962178885217367108099041845652839016152907268228221769549183587129361530354718666049749780062983247864798980084371198561063702830272067902891729702029942752496760418334081534919959139127754673188445298794212984415889198269693893111812030437386749020326910155274559107754640488093103268018629431841379968681254629820032799944821990153593457458992825478771771684916764257204412124852322550338763809425842878079533875070817697327048063438020948288055793803892372958845161846148785643195533744373922205951365399205819667336327875867653701486045465023421189143448456401396541758477023614554055193405909382471591818601893700734077415645035987119899979688909834874765116612203407318938078993372186030434414363681909805311009811347449315169842376147304967051273795746103193781513827523659208275493698872265462437845732992750828888298393666992304233385465766413267829684169374116389551710979635796986844605194584579188889094425737537823446779792557968217777034668630683082283567325884959625659627853746968933675834242805107693922748178189465483075495882068583306014259224045645373041502520144654127711837833250888639436714813184982312806719927921269508059240021292003937243232136354713049186425286751489688286465128055251369164196925905411023923419157121854680173551125034085898038581793239493524269099211184664844174355014040528707014234555476972578503500581570546665963408507465186892473979600207247259989393655149234832457501865794077136634620252352733396436293585578350425962558867289595555594822085739086855875828476488173400559428961741860045407941180780841683217626853022852615659154635769467647001104922045448946534794281290969875363529549582089738459480000747080565342828790410108049581439957576123879970114548813795647283072007178908784360231766007111961080929196085095657656503411080832112969982095073625901695159805839006779436683256001712846821822550184736848129330439611778631963649966847333662112925301389142159860338090550610212299063874705521189559308913570496463242104618078330660549846948571049487923372617180883797649899510326249869001395492193408002293893758588594254800552588804519832465157971714037544511449942830530685001295140262886433517815494739197295792656217120926171026377983188152775182342274479078258282030824310607731642552977606956381580578360264684498967411203654275690291056868399602111915823647373608039719514500128771780474682837497461754619929550656717630849981221574360916920483311462281667840040876513749968043182719877433331018195227626973008304218369112174650869103153480968416421839183111009088473597761442693391703190156331116479493747109316098768796392086583922603721703680174468262173938400039708337686681733064106124012277668248365935467491939985601257843058022591291516131045019391006702598935417801033293738481792374164324593801032238355387513609625148251182278282595948537888431728730826793907608675234657025763441699742310649730092466093231906912515446286248200420567389691418360066098307458387563074766249121190128025181051157738713149434999467062824845832336179207531780759508753408498601386698138013544121362689345991846245766579750826820503744776034601331513803336580706744182479274318115103995173474229870662809893735946628483699893674700227889148657765357087096347202737219146316064834705390576021034335073786664340819168865036785238498857559394017832613254097101424267596752966450693775306013978818642578879064961334252296324715932508214391568178965318298357571721381213762106849111434371281541355260857407051300972387709864737345186236397866932602076090362283690774986582401011970871100867970667261178438933563474038489296903346283040241078131576402775451014147820048612311698610314521599169709564246008803139360136525756892115198489931973213351528455006154252578897325362443921689617622279730895980985494540826203962187628103078025065138416740747247073674921670010977113418750439808434836860646720790620941159335901821354146732975226155712959508320192623394961319067585326950948068747201445259342800493681649934029615743020679283298920338430616432438173172135462599825712142677956535960942017666146820900789357497543754106890159939581234951255588255254552667034020917474772985210205857905827423085377633266418705390381307405551357588378426746768716669476812831013487053601946409383820835477567468953817075925497732346542085866975990581277606949743137244611988269764009327241546427267041634226352499371797339793638280561053884642439885327874239366310742271894199151125647010504574124347527210382163246690049717354592373265127562107958025845614052335889501236733849544763877345379745787211019697366381553656025060366878728586500580093910154493405355645973112968762111159050943755025972039776691819866808260117994277614111088915923390179752119129659863496122245919495079630811148692779763507462336410427657278608993568560412086146905487767530522154699367555844593481466587856100442980946460626759944345442977077665035726170546861551664066872210942800596883587926858563050714839184834927443366755616802821997423407891047929156448913010221513483116145892072157629053184060341914359072615740312389378590311882204031196282638344645963167006177976840474235432228133616190666148094419443214952924592125624155733070839674030522426516170858345778250703155434512710122069141126434151653228487008857511541907376187254455000074301542207359723830923763959178515911691405817258360681081097339244442437316169746105959001438090589710016443843461319588885030657973086760347048068511048645845469099401287975655390969546457648601447396743363031985272451588262165403939410017518534797897609275922836575420587126684998957478282202783975081957343916641482425551501690695236391326076210057387210466201623331228416181713845722666397984802464411773327667066307292598065233498600518738194699920505206320365571950543115781645164024067590489977880562466192991277783858345161089695550129056128568434751213991011999814744883497541907996653064743898429620847864714188206863126529767095418182633593353992523911414779698082721646707736899147743392299265281523269215284602788900707070922731367449344893412506893931607888978491268932080203500383257729622415627370672715413303008437068346996994073543025819704685811889091079952260333710464819057065493494344698971636955763684190751006867533712915968378492985742428930370124731618935340690342362918977150037411841232947246903324566737109286687184360394814697813527199310427462396140655331666866364511992669826699211820670192567473183922699574105372315888261753875457458830714265202808461526600548340767571451122996456676953608649188359924771613614011132788057906641698260277879691948701355919676853280885965262679548016831750419660627011505839355735198851394963441305903346563800503091564233699461381680021295421634090807790625509803190593720465969329413880898200582140772480293832934475197433503009926598792666513091468148410317918736710475450797151310344370434020190524051552103696693801364897172732060624478874680815079256531778505717675871070703332229464332548116009090497528291158429126900378980455301733941163058772952211157419835418106241102969083086673686973919477961933118681142003965079372838255131187937714676913736788964536040024272477771675741833372087986758001762219944889319470782121228997098481655122500722981460855598076901154466046037359327079040956720316546859998567807639279277876643004852452954824464503817224721178010878794982609409006395599591981506950407033516468377687384917551785937274237816070930428763121307034258383676035191439448267209727698406240551052557436040122691035675450578541292540771088817628793180557219509022355399379478624726336825689636709710473864623611497822464678100671697145144705399928486569316579616029310800660503315695065237358864972494269256894055642556068879595902750745933711735457093412959418022026809715705332034161644706593425970162969507585858165116601746342263112602110521484881469252209897131368614387809465116209655801228399957488721470973052461729919460467905403285285881269027624311919677553569002945057910994114472746608324496716858719367786852579288928322975885768373815987474075716830318600658718968100444476199644186598667395274445644379408705057691094690750098411727182719665311999383043909974592215348661156160421818485498952819201613380017550591507656282907180035094219459255849395889682394001521466521313643888784106035933239229240144474884464004655383856557898713181440395165728657892691149821273855459439865615987840286378951448936786721061378555174737306508729863306100046530786569148036409376218988009235108224559472755695097752787786820004290715617354149657789589709318221601304661697993030749353700815453822026759868790695153435070109649985361879252500708219331979465173360825208791239451086543050457630416730081483820850756874475320374426897193823525056773385909486825377287322745624150534250454313760133627441081035596694604581529289426541223321072350943473893728724114028958337560621791597741077006580862567831859434375255194779284331981343166809725808140885119421890569314260365052646380496965492817698384390578559594679732819946720463482419525006474338040678809946562892519725542187634544562902604602656108982241018788036600010934731670378907233864213982504959338857477514620165475328221384918494956051317702898609369520048657706834982694223069926395573224995946769338988853572139994231142030533024325680968862108562529084926891741841350712452280996629921798979725849710034818807916697645109921441170147501395113405155463939810815582397019705919934741455208931614439291839764200993488529671770921542756057082705558131232906255588467955487250761133374803493096819823457170877429819795062724209013302042903451195774900887242052282275606822830748682295951744313051300358906725685015167903027617337677756384444119291064011003144298661622640265713168617575420947438724845686791478364199702381808918920819195528566514818079261054763239170166860863484678398040851742992210578045451829125089440081144048399420554725584855933084001264595028917502943440919838624319869033349106988330470171282898397055857281561590465003653075524023820601473198925013529636079663284728783220447812746434597209932733992575882984396339474358652442545254179048897165404939355303720788839092396810236497102815182175155941322370766779124112618169423110006849465781873734115515915340694941669462340235574325505332713389097508499062874937747043413819955015897448231572789591247758628561184533567738336706364818453189037604686334433675087191841848814235181411136257658491445308207851239948414435877842064747120753160137544348494172907409776183262411158222447093722353065819318804943710464365158535387234501221793370921359428324636288741110188428100434785602637285080393386703303671741273371843028151291052094369270742221893367475127899937798091291185755273428929807055311975530969103128426314990805027159435434656575174195614732168944451388879382628848387504391535464926825224935831390036659125251556364134668082683024411068227909874931592297447567285910483923309496397214223931863699829204230172596904043264508473841465272658231170570502993154126993586017781657352150799235931226178716141590996067899803137339481117316705948577848630470639665722738324452334571615978691717182147839378069526321957149331547409774937090350270506025790549432481978410444851482283962167616740228971703950252780547868914918553367199437097779272827393564481506780286288691091674737562443379030333775463775001015075029565229999766928523379483122729195869189342369471424925746239877403235612954803621117808683668895990716739658792982231825421302633693483802125581333245626209636345504369301998404174517089065103981572251770503108153107350705023377738158823750812661698572134363952481375399068095181272057420229701104210522329951374372606846692360857254709572607284574595903578875506127271092566260103048797157358868924049551009304572359976459107498036176618424251884068068636376609812843460521403280847311369754634483833250479569742631921141894530173051817635640918040277452867916131473622268130206860408626741947978218974634277480767387964714069172674298178201559659972693946753462224462889007659955885354529194171437269979813353049991473874495352902238246863768168421709472908306130827030177079583217444229791764333711304523047446290703515398114632616104034634322754906676943737132917529235468808108218424059135925941000848333319544552246938399124006972432493161659723050805819979743657271059114384909884890259285375301575909393634415489012682360870126220056992324966630156019924687065456391927460632740240924021759505166601685231175582531719170221258540678939044974348257391645171204422602857726624415285053724541651619624084552211874529077813122166318271740733304754055068333254277337462924417317295222392939059511071651771564373931813832631136837267486155432314110150174532049944585878689366718763988586605281931037337094795831945595173062603357294562910371819820564825953007680089108164025977018587756645839064246600296992256496315657897410654455718281855575615322938569674948556335289212857990147082094990300581756997430916459795293968977551004563447831126630775211872201224951693213322175842709264878316324374418391715861024820112938927412134746617079802117757888204164616176004570154184247815075339530433705320504385355469775912202481524620162883575795099890290567648788131108277664285989992092773177659312065616660375690699774632726609009264528757294575166650157175284009880329528116630200177002200808487865959836823162094086471430636830028908719445334037898650041887000480753345430349384867956464917872027896098975504099726118217399636651804529828188860380834363011476233697723561630811892083901473844663135156620484735546809358494312522636438464643879201051924756098385287965210042100341610653133111078497628906749529372982528983426557176604409818575018476100790313715826878877913202523775518336823131705648531650611925577103812768673848384422331135222126783015998725487546237911390037027107662342277358422243624252786252022019885693266182586618595163493482460697197540105602981154212423225338638764905997351878283878442631980978601626901560543463707896567948719276297241900062778189615599319930420532315228042149568381146809861135693430231811894416630501990096424760374452636059629669301320753116975135345694801909218952395889812279439974822214549812300520398663480694473185252727977057692624340047553882500785519449174084734644862091725541078228089931341887775317776145167875479330150243830919658774688511627105715462739745309230035269245364879489226545221961521235348952920606914437352543730001435741943617511085246211429567875807213075242861458678363603821958389951119050935554378463195203650863637087735548456990877947588413085921897963639505769552024719490054462610229027207802079081435970750317743791301635814878421519357049787234306001868459209471770157258194783335590697085289388350134098970737489785286412511246225003248525629398741649019434972063438238771888427727538832192012144108578003420938206619364171680809385362864717626586307665873816736490015324575816008632170473712076947249851566301127660569742032174547155928179972206289941145266823699541964803619561736745635616157053200776351412996575365497286895639400655412021679228956000254306404904540105105354440188618835803703494918126378233347973473867679581734510276357039308024427882345665491130898620750306714374786694041080282008231435314528293916319481405672008306301010101388152362239799747875795893932809414693126414442862953277488223956219887631303002246540887603487217307340459886727204529950135942300995665796095582554175795636240151898512096263957010869911798858884961307176208991887653562591882509302083923581422481278340566707213847881617253348692494765086199602023590123767833071802384454544923432203644763232948669153093592591956991208357038097205421668217273584888876610352763331852616207141716800583944879715114772537942117964541190666532869195795367175076267728126176515662836221654935344688646128168134449154183905040131880402720440273029990698682958983731120980977456454224529538865735787286208364609444906250192628848222545166540647237999269623064132146955169452274034419565544809099873392786342558072318799625401065766729753348720298052353272671709840053094316074346776501972896652801803434858380596491950868188699489271923497060185476662484505090799636204943829970819311290492600136218301116203309319717061767905915015296969004186888448766492794553220145202460575764196528643424024014209763388994424830891477545328013264039647892644045562063279379905169682524770931997773954030312708246809284567639661229630477294455633705587957655826040993484061645759526386126212929562419672586668813497230822397424342663283272495773106769939394739165267690594264587852445518880343912836958903685355665635388642740961837801865311490268350093125725322499743013391070591408926179512174439178099564869456054594044556112775761698067127266392948583094022640219135633663832044867939502916867156778796546169389408779958070082405008281571067712222586727273723450098806216183968280172451732190901046523497165887323573641210398439624396149092801715185313813275138216687835813082583871263904820423851024896758054850499501492542867484068639460303903974754830971551275560725359934867886528860184405664875147917111206741350513645474687325430346773770731200342248413065528135910249080220761780748166695526309520888280987576261067111232424571093703354261611489147569634210068407821944943620449954284234676884683833784380235868244615727329749537499519016434769561750100981307196950701586515140882631305637918899817380243355200975981114444103615050766903106281523466695224820649955440027607904313862107674225864359735187349677235136567354874783854674095971007230756518968942769410765048230271435506188727572747666613794073808080724134742659453294815244543234936444094546370887495194819566687179706916779562342357662902077394875422579619415989889691967371803596357295330881707451592090256165783728660913003907656319666590153783474398404913950033840357176729011599381892204182707720728829307542293498225436086537410258405556122267194051265088770288977341651578290847662247550757902920491123672090210359131997161918750158284674639335935495364210341084564381915112222967702601987640924159441816287602920887978202123958732782438570367368183983355579445618610106751410918165731532801675594283092364352332617574285205403042528786848301474174180147687874351830825250688428415654276893603341516495516571071725347516253062788119234440064094903790271776383224249764983567155526408235741178160781431393417663744751026109209978073615102952968091078529606166803465326283655093056217574608443076899041734495635418208522983105844227866163476112945948241346166161127306764645429320787641256225816921488071130117642379107210351139173104642107272888082766205527412371800021707164315799329020415774951879556342333405503788509926924062046234020484208506259939580213573104284031695883465263052362726222529308099244715333840374282502423063041794500899491465613683259940314582320886015720724571165811645559828249842032219829513862403852331930751656043391554170039651653068377818412145199948037191873190184088050526357955585439813973829641793332156104494155229960390509609838867262263889605682223773816581636769293300194800582588743627317181454526252057444802534847758448433767328107196766399255144790912287359171154032256357910707358715650224760009522323360827715742395139200971745751039343979140421097674943604425404548560071734752466578504265429972847878189768641641945929070712380431689694008155585966128784019331706943875002853365403360319148777418676404952619944830380460390638575116041483402544684926218742733874076743798443687975871905197473572898241207453704075741823997627027867015097390299127532966512666289578719456727092588103295389196801702647767459600794497517171589536142141501591409755660799924787212861025794754979554657477664283050930346018341895505590080644240708496587761692902198308369432364715686416747500590563263727022394560812950726392735114481382738453512512223756444893496844764896801837714598147919851962924577110744201815332432701898670788468076549384838265640821841303418567975418546301637159419391727592269533643201405521894678201403053736127760476879993744630195763381104188937199103273407402327487870212466526847262471596258506630605144852787825258925279409309089503182687625515545084080185439809791335868251296019402631225363528950291765554420644908080526320603928907502586148733828912610933257842326156191776410485907123368939510303954971545302348146212639531577787559153608273247061548827962996282128992119417177168515095764654348105736688160199537845987410383015300599430705545126799610697094527173793421573114608033898228211898214128059582837020141452943487730023790662709686592079147879641130168204044972201875947399839709108611168080391497475229100036238430367997089242173220588095093753180281737244250249673931315233115333737008166649016113490955376777222516965642480711218518010785850258944862620246360527072524109861133939844941966689118841144160862081277098256978313120906440799579703585104277168824282027792903081746918525067804891086855634398595751039412529565919644623441076990986212351149994831887933800112541149444840457567920642243773761725849918561563586929445961997104826782953354874237055559120057506105175468667790480046609034316059489947328446513494454662260153485473886001651151034275687516333009127221842400680143507482397225172441197918778911833458786983463304893541438703292227531736513264019798759953114501622581979382180340093927567344200288167285104163384380387334557092336261345765486288551935003164862969078845211054096574153373442783166238754789688954923078190654437759731053634387506346390428117561106023710310937209687006438724554487756992225584233235049983602717241857761612891342753795499575756914347289723163845176031120449062768496555009718676563836912574829553854010690310711382611142803214627436446485166359322464040009102694737426457517492444410799284277162422702417208951995691636259626883168142541961545638825885807015944969145210409491493454149478902388387368199229778801227834590224643893914707772645873275393049323325371593144496271250717225333039454854853404860696918304923506960776272234639873937692415524994620319735204768761127227145950087265609921571509187570091622365595351241966238337859583624631844625006777725881850173451114755187852063813902037968082295471648917770744227789392884342809104880203549871473983627479841101475446433663775085013190508693492485325067996425574266452575014458604247831558607192346715533917645387754047888763550524271246509862652877354156332008603046101952716459693105945853844104472904355521377330251504224538633566132418687345209408925069181932081041665170974768476536587824497370451197455794700319614723788502620392265006010524299073640507950017273186935835862069534086375696434485894855636208796594795674205936030546632186700373980088686827949553729279840350725459983218706295231641239930882428680426851017756723277544839644018016966922342431702761610383219677637062826327524124075552305539829332815268327320028042069442746834625792444415294752995615630604458274218240427547231653650787522080733021084697803060766439327583962405415673676381404386356956912715285105648998116188479177922610263041904301472251254095521979943055086536517288231921366099610829267836541282775109131290503836313633253069305811478493207551258187193868555358634589016165844668789764990263404459239082616556349322097149312495520626176098960392701100125719385631789319200321206418944869309477324332643180626167025676163658237643726155014536914778425425804671062578083901474085165990827293314094329326894816945930328626473657871092514233581825802698525498589658647125034666974096342605745826883452272519694361771266436507341214010307209337151323169952556761668072551014598961824140995617278330893309252572791466033749951799624740354446130798015076880653095066779792195166423270327231938005313999260741696805858757467263904403882590594404116293273382475713931514741440416407369125067745736154697652265055132095106586676417556396122565562859302694222251641727124866710409930920505003300793401055959835501055786681304987881871165851581418763961755604559603109042783595276923477965576127030879531256303028322912799666443589271462995000024537772167852890768637188033900616593297656148513344166045841202983041741560221756839599246247089259979888146475629163905941553148765350309791576082003018801469751088564218831212135876144084737629794601703555091749548620165206699225251582553061737472408733922672439554037666453489350831062532617815874106185171481565391212845735216000426899091849856852917820863274035488096112254990100572372357276245256275211414849141790458806630938961718561700839038154778509856890090598584027957452657262919396539423000768589743864054748448015070291320083116077598938099197625367800068152536752875550745245825564341118302896125938119644040972757211322070475664576382550604958726864701575921278796482762592570778459648824356185698314233847430492038195319339176376044938165014539642670071127281678346596301369354764214537397898827642536156610388399514347413123655230764088071201207508891215174754129555980771288577757461806438632162596136420954302827789680397655960587384068863448849091907455855221971692979309804768699320805908031464304694073573965907079437168422861389677231189571912171484530629018106785306522008124477433884105865960200256209715902205695898583553260047539332468470461308988826165388324447902230990385278985732606475101626156726704539566235236087936829841900990226796680406725060066845919573667585982359808209136601812096625486073675866510325487383730276963618064216717373311853882637850052393602059499203671578393412598597946027548798515178935137438844970382539203606829132274904664996954969887482379109959373326461775121844559603495415374334844703801921428270266778535658783907104328420828820947874986111129927994187052369873854276342847152478820482912101524862561434499065001423404518856429457801979563813145712539510649800301081151326911962547811945536963770840588833867044157341997553866066822183290960213076583791053532497466053121926140165196056232527398833673763513508743519343192162706866373949669909888866194310283050848745008782701198901807686317285396482974347061773790486222784059627978996199106821130731864507711424512130015033874139095808556926694897339377870719228017939769619382610595098533673622320665109565746759335224762044018756357035138762933859233255807787840048763647529766070649302037802879674674116317189903818799845078236133098434939014966152515067632749552673207573760339157105237616802666074157915441432468329576869170541844532926572552775562860330557930950710043478036995457492659868365693714175336829134388003451647041676441064535270438665795650474956783229693864714123205287651395392393355491677611104941520763558619635674522606147618116595551226585887308258528807521297576762069302512604573680611023138938960668145424288186202853704083053888212834142466402304145084516306345391459667434129405959574279916508217371087097694203256775805338491860743317816387379602021458486252595677596988748699976791996182334199710970297029315434805721719120999213879949416053602085351370725892938030123765607983565384365901942964358263922318648135817913664262473464507270696233016978621674471249090669137000884725652596526933332676220673254699781584684800717576599493078866902973644452267693892725631968011516654834362224142992243912734337731523678552134625484756424799342258244087643604439637547591528303469022967667145447425498274455169601212514584542441259145192667587081631024771114742814603938316975697225264451655102087121162231619459045340100534350353587506005193319132161838263144716916182727284974376340123333100787435718146551376115474871079297650920372949669649780907654627232833678632800853697195439509447114549312220500956400335762521487169242358728177375550141688817078261974068109748853829651839522961021508485814281247865010808483377083912787593185652054228524967450848106125588052630166917052186506628029278761436715440656054244811024131579602100459420365595308263501784457138948714861399767437921713582843681997144868127918555737111072332943339520335260118125534367771008413424646507399480978136817686368972199929653541939455679526452624934744571563393452748252925699026214159710034867715961768892619192534996937644457462969138290725063206210726159158035883150310546946711724908887142182064581968934022707315102465431584434392676978820131022079853746751663498551609111258374445039587660023320446152729065579537666612622341007029593215343081402531464343328705333538620559665763058050594143305772267052837290221184723644659890663590580177027184127354237112615349539372040448412693507309918798817708645334090937861566952877761667884133299591090337612015054212061400162335284148942527536468424388994006208686032587634436881942358694563009475476740592677074636961892552997864051339016282750977619405319605711829793413011770253753758135397412837118594752187195839484460510730445261086398619704092188321397119435051639451489986588980332660951127367703274055381936417891898213150432043887071948155147102354196831271242407793404420751254327116321106376070008567090441951077233471224256915060699197790630524657249481964536958280986051801298813057581209655165276847350670728180559012606330989872721995007760984634486829813717960202095215829347490684353218082205387016723146313647220365474298503686304920393447411390975720625351122809021409683997689426723808128545587197185008509654766507038727100224191871212587891470801100950270703535460930020657778403481577455028157069182773694038604437136751766688784085724467784581455122301038940085353446059657774890123478801718701276940188066183931053013196932306681977607349319644325983555934392027248671703028862653972090919515143479736938472336368105432489515003724137440089962262629323064272897566301061130531359771135019941496268707320694804461590536281001039739175949133148683014019222793934023923683288489287461412337018897778577743586285705233606284588580635348288247459011708386708504070681132662778406703805319336272060742399031313030497566355921101202230948728352252718528263601422061256645320521362434297943275511462678119588617618355222436172429400774430591518031849466573949273394278386726013744805904890895472380697502280375981358593428258332301727346667205082342464135094554744920042781657502853949688344948116746916331977798519805422281059252320989158122940635333655013147586204979813526189296606236106844395097954817476007547771611938819453624353101352976252826177367331067751742123813714821233466745852518927269636687730783488238647210212097734584336569031726971186513602930683705874398129348816950930385364337471886357312610878665030068895377720648153559587789822247034876273213303236242863521634653904337967799445269461607352856060103145650021580351753117124138117629306373794166003559412174430708339940066038707151158807612326287186829997698595597751527278040043271791034556355868278025175093757755371886403079583806112382200500514535295342758757348963980828764424989751113420316072101491005051441350150518627987320303327783543412933077469278329008245222504518389104402854503140943672373040192929226114135927307859894804684888406834225556773166582881342551514130572857688060569718683224299621959108772593483200892388453207106810479712971810545115851677063586641080553760494736223335909099380796588358078840374030491763555747884529360683125320883326881518136606104532921675253312708117001167986855558195360474865816050238728999451554755220624911157108044979112885124365685795475780094128363510845662111188864624437520799158997690064933148054987527667837462222565482134560280632741751166409508272456755244601751974007811287024254101027277936265048834997833425397973700470059463967567651262578776904861060241436769529009673210749120640986027503350856905161660738234988342710054564124854309294207169880838211793694141102616701588095084004882167563665803571302572090059300836534177199154545738463765353008241798462112980126823534559779215247032323726495968339700105109252692523157056861005756479094109275413405458398775625366274511925807019496799237493377822217162773088099905521963553224933383871921303148866907227694482105612761658113601709292550826616233672119806647994831649137189161958462740690976555758607000979374138655400147966690027187080899226239515619601453470686325713090426415829607353722739110684741018114588486427508418690344689721636318169903511595029913182171884668391466951870399009060653614724844324432075365919419498749417391774639016552132114557986440359698780860664287864828229253937277703092710999263642004815239487174218706397554536002382953651930255308108863619415208223035460115133687040019762728417183089245625527802597395248653659035990478182841898857512185894170097738551511516233375731599241569651378411415625104864105815298322039434135539507937994629646517147061978677939827844672743549214089342534696586925584509637413697270746611787990387878579246612794906626008225335555887556401060531291069569670664394822602633247816200563490981597219100197146482701534179225667140915132109078695181239954137187797155173093233023431718950606020411126175261981959894859220643449318825557265064496700836571073756971654368072143922060824167179097839274228964839437567325675671864420360433773364138989984002618105514510081469118074063184465703626661336494310117236450925481660925145778938936243220420128794509079955938884341605099813239176715425673497582789356490682924678566148602177429328973340136130689237626043926023914739215946070428013020244252616302915930168856803440334356798875742080521631745477579290504279411048407327901801823154293157287296133304577478473671322445035763118676546295696597628181079171620323728790226191788045996862673010518494631440434557012716835369057322189911879411423469185745209250198469292965577660062516481138980650416095870091835070550382071857091248918109912034730586229204160029722979980308201705401776587266349843762990832757203842120189786222320433832071176819659376990624944708699530928276456632908501231609631957031433739637023454421029592788622848314385949659989389026787113498594843306613795614983564598920166534628119570114381945782891458568282423553772271213311842675278875567281174174595459470942410736176624708787893211392169437791273650658524464913828381496962818269256326979050027165535403709613940378565032199186135022219420987984950228606327125318837198011672758637518254252214055940037327137619873825195501038438865112435192854611488546296838958871393856502262637459049450470770411009546382762182923790141698114621441834915006166054114407259341197752990198810416294401832003815682224833345373582111341998728539091449197146861537849224341493033475331228789308913788857819440515000342371344050670657234065368527031004568179998745268522117068912999694458972426418289555478335660493488299144470658031675798464303638606524557136010666691084172293419996077341509438078509744636622932330374751124668813360149076215761936568287056007728531661637212647206078947898517213753865083027609147282747591424051438758548579675073222960615525834526371645818087242752288569803467643083831841062036567923453776196028785098028568858505261468768513967866550308772365757656676495167749724809839132003696802503308659677504833507241260850886631538584547917331544899561308166737055215813749905883543179670017750319109003413262497861132885502793104291904160917300758707504673139826424424155239689169877182183543276948040304636400747957262534524520250188784405774884167968993572890462307939511708357569045832061566975918331618428199315221947790823854196716187515414994584657317420216881143081492892905219445404474315249107785531721625504331536800221778228847278841367786262904575754094297964534747431180956785242366497009750195020053768385598498231716304924878376808827505067581088024156873914497247161410210810807931239935610835347116507685302730559820692767447201190002386267192939511024031890277015402442429874595354687897971450272517411835200696986914243859724960489170295088121200946052626961238116821954619995671603232171785785169427074409472715952492029398096055380575416587985135951902198803158942653935435071565843364647640560532145940768796067473055460191708696634905805531518226360376498012127984932209704761901595560423395837666375636657708519689212297584837972234139252020342391966751688033597047376853866625265532120436478744557765138141794897943004977939550168481655947891470583551235416531446094555625499908962307701655643089731856941109769386909166552098500228086636935007140398634613660165624025714080871947199982757477175011186714705764641762079529467912064356872546604265337251516999417537895639573610718199665061126839322376505115294327124042006797864036094408214174673528633431848931427510142032548172986278869429657012785028172450439180102677977599957063934509805051593224587492283597951199911811114682507950305059744151352983686538131177247243439150276437268739805402100245101830599959217880735124925205618130174539415494740566763422469601269656335024614825042911950995407124585386617394527981169909586006337732481124419319752897853107298416911506266889194277156266422225997450228315043352509235203856507620127356691955727818280413260848256501233031432708730960351266994669484919235741139725029707539021043954568240034046523420785662865248688914450389392292955819000161339676829013129133499372986393782874490022768669814444723501887892970180469591195714944107779042795629130971441830521991251597027804047749681823713590525138571039164584085420962741620100177552180925026588786572566502415587859026308039093451822015780559949289904246544870338034338510988350870269052925395967432030378793307793327501816270637159412792041946252880633121728026586230391393935776851791276034264821000979869824451478659277754963442554573993080879903544575370233944099574569413998865752839381424296705218517542528833595786225325643270070660196006667830077095583110328871282943571331939411408683299595556804230054669688084763679218620989737093172624977840875229258205774728460330012976227013048872220491905440755535492980792298714875761622116046316533352919545024422063293519714870037840255500195263709437934467267079673326163828142193916406678370072517848220516292514767838467591731506673566263813349489533859424119202784790394608411807429451934320509833340123484830773312837723444909840150118467601859750466106237355706992159692871902908780270584416245952482389570421596429732584387520362890451150036047543380366372302080153912544906120926430122673166139897981565664917061722800068755960765997633672153515439250945079792194543024821672813283855316189631071884240290750581489269914110639822095792453056661771455807845283279701534989447689877618430650873863593414363356923926872016388217556895046067441012668087911660747023958262689336107013928455214846912635366021704678383021006766131755433758787547612620470880100450714715637058293684041735929521957819506061510167337419224731271652422452815006407922797232990800855260457004197070624410956297745943659609415718289866241275513425422053798256644993269931916485789356682871712068272484956960231407124983165164877662569867409746353112798212451899685163541336925301668129346797882816068554879877813764942797530267926451963366440177093093448274711966818004674429098448188562106457001720879398731565141715614816687375780023037315459226198458235021385071405695215218425893907033535008645409233630130205634188623689451665439768398195379174699969918339490051073618396961481125572325309233140772121728601672944045745839052136292822955470398790574596826505713794679160766836617395451381745980660570580304584446198010899256792636196118156321053589867438150757720928519714143153152013853642454351517013947186479383219907379077671626245454685640894399962666539329728047623906930186901531470658019377370828923732517191326147771096786309915233145996530917943563500709921526124291193186316163614706419608255626341588241171206063034647277431048754626764857424693692274936393953759567039815763418300779647122521218894219795269503696352049701615976794105817766034754661250702812800245892652678193231168512094712910391217384232769644727169804598120798188002852959158660756575247766112119805483463983216394036199717239680674014308668136196054550867452591329037351897754524939715588535999388718191611124914419180402534411959703018177825768410187687133282915546602012209891428042341343351641898616078026744150555769556756455961160658996417525568461867522529838505246744437834667618787094046658162847608871918532294753072603100683574275510827462883766924192350731030457984647762128339843316086238745854423341473746857596776028766788250978097061962194804293038934553809036052687430940594635841325806316088888586364574595367550753153370556688032516035041858898160351194563492238996848310966166427185043635482535473326259615836990898043614232318207018090272758873644991378836814786088466488917496144238283372000028536928191125476525170683667569923282867034971881595165555243297105248513224856378695271745756004735248422924789060055715430051069742315636276557609443225118172851569623063052300134424271076354733143453411668375279071941563409360301055673821214182056954584866695595718699563007733327041203219743574584889510742805141774606226167872580271985386166209327893198221017941743512471919374989613712291993012736664268081090516472562377540303132453634828207738188831827785940768296387514177961441151527577239197879024336011990460977154897034736306145554675485078921768295350660858355839788869422787363662342422531961611181703476616624407948396263470800746032610396746797311002121934487528673978271952729698071970755637331050784196767989296414623741403938685851595019012493736739267726475249736947723791639936540660166418927148916816280309248216384121501532296690195754086037891020339298283477641512858196981250462958723317892241754088361190696153166827833368541978861858125619258788913383010888351307951458701282086457395880477211639133020423798079820878476825250749183158911409855158558518846992241655911918751917273446679624117987381878777564342736559803758703925009501201981948939264570940465849502134947688541622065224256928044694205973697099737478884649641250615189100497134424669414639176781704408988730335305397543015890095424195038473660674810446408089958380404381336343451338403403164617454740626961642285030896945651010754094462845663724761906483177924808460108072859357099416295706106097096709121412374235784873101582790969298699770725245755230240713886505360194634186582568448422749484704774901724990315785715622851841819350913314023088788472382084502895450153419599868858448421730216636626428327648282959656883654911635355342019922430433120829863994712295133952858132015410576048017005934466539590882423308137871400639924422522521714746895214765631403438220576112806720921477931860542482846986304487267889272423214026128971545419213333753600706791436993901022309051447633179395654132069556915880509703142261833078167187153924395294097236917930646319511037636540608884988327634794810437811035176532914625313532590617980239973462666369667774004798049525677118977913746904991441175864525502921777371213562013863714927317327056684949524758174494702420936004375681064021735261165257996384489105047103869816368359268649025991864067934254580491765590307663263106538051967973290469407095385325474917254731903142823458705135425372227997414474263984971772601949318164131240091119890691719462821999519112815515609992460312117971141996420711497152181012318830214401607965931639665889964321449000123801164691499596297657902024773976208321564089737980806886627763481691269962334625930342560971697902662901315587471799819460330260299628770997513755124785687833344349333774107141501380079364309055087722263121205932661589603377287015841542073317679601682351698702738710137850038683436570322023140625568497381014660503357159904908426588589455499624523352030862379798088789137744957878070966340421606833164431302370334801287545667341612090816320964012061403655193288745940493994100498015788843291913124567274098753362672397806033633652689402838354273413195499625328206375002435400946244721875211004339204888288093427727658469094523882898590846812716413883183034356481135017649473069414850740270265962109578648235839162033698189228725296132182367056302460087935306239482903766513684926676953202340792239993446812448300918520554739758925815469358290657505839650519044958913475604590991421076279474444101889083661687969682592271963593868283345280033615089071830690983089902830894703164101028917496356667323717542077799251381966064839919421481055620155950301205998576662580108057091835582914671576737576824964978501507521101569040213376918527509459685916737299091341595889363028985871072387362896680653635016077609725485238592787577169997881575098392792875475533402069246719863457541901757721337998845804467715582640116338681446217461143682428980285232625229610007559713958676669316503915248845254407341873279841415678350297535513402445836332524939724816157875992171749557554166328646459179448565481669744700757659687549028282353265563218124795105796424785451584442655617203711955167645448911739961735463476541559533943345127469832094444913331412956662592303647555617482111276014643871731840349188053148582506736404711964379484806760820923171573884077323583779017291599646544887475917651445941904078430823505898373690630099621664397279037620982357027037731609428973658911561284262017368321031119720526175417592589963787799059378596119584641778709146452542427177056908638443453155271809123427485361660823932222339491221910773700224959987005489451998484745332698669428997961053958517349454282364788915723767414345669532653329023325117090853199480981079102980648814031432585280469835820573814984409110028804452271749560094307930012045330522098613182020102225228725526643466890754488288687357419795666167411031578354731349718140382154352450446630275739354862097238459100487000584024454477361895181002122467450696738225059000120919619748713705572791649336290065126774716069101719051781202311207095232895210437291065170844194646231555072819319901119256379462362908689514024025982818863996654184219894183212148969555839978297724276034966056730213395792744742787835699079378900004111806267788751260757462610303851174220773214022367489862912808193654590732998031162993261461523560293981120578787371787706788980797688850120271841519914750748729977081568126221431650709655509039942272553921634762229341318979934497431107569608667447374063912505688371455452040333115217953534664794266500912078266017186812791524586407567322661558524046281960744569119370279644352190645468307162252784957531608273221784615390097852933468987815268158282241932165870987367103799627701761344002911736854328748394159862419126527398853624587109198475013689163513175909186811892978551447253609491483515977196031107265791111365770619620766930990216653162322677998159456761188513084704047114574905390373961012658002835504373694432332689697285539195193508642507612929932420631972543586114152054128679666493118949789521973778443421478971567225133404754811079816163986245469366745774608245497680520695935174749760193794889939822274119372146974193255500017426878527904548319558207117999450214302338817111951056462306900582878140934549831645190854696845416887778708872254983008460567760078225986168378412186514408039185676678253824867953307850073136002096106999101404801467954635768881574790779518207512002346738869616483476062492587601347595969060280455474667198460091157415571714948021124494378310293374743092048010642435870153962006979183928039933933155223611373999644758071616363355286751060778220138336374375141114624685831073961958016834780314573447985755987779687093575802963472458796182771124615718337424546553147040910548147119822738073877682716830571865669275350630190415720753821177403879355963107447377450638916080413454897304968005283591028005290498361325925504022877222143019710582110591591008065794856861360494573759654995357921830657526355646626395203479378678503392313610786725369656488459295289730966115989239239933454967376672070929557317425543726972121287378996401346453566039949279798996864646950200768777106646592339841464547324357890441212839606477288133773029552963848474571432081051308365366543899016633687344307780865590510303396788961730659615138536402338404150428409312869652078821728201733688418548781743787613356717685337117746858977286217931287306721681597509712328760738413634858982627383726211122341093125219519705873221811255935080373889987285321662364171818136792419124944762034241809072681957828834886866448558283306971799776652458578463939752027744030397903323983761960955842598289014866760115481362464759015457926343681797449543191004394670550059575334533175741223911890439538681309042866870398905085331397360865736047884429706544496890346093314374792259508765091115568402691224682195569033265988179012527599861902904782667826226242480990899687291750743014456834357651888760155922989018756097601222147116462087884703563750542038153449621054496028451836907236403228071643438966614314121585639297664340343412375962964963260992382101882087966772871021532517112811567248944182918464882924842102216011922380225204879660199879979186261054011374037912705183835681319773328281493775806381165297509979731294935691076724292536783857667727818154872860432235709948017985363822368209840942685732624117818897016856568779086483649372110237021829814932636024510429591615904927788062782853533487654663673580565871491358681900725503582786574970489982280422481313823344774161908716328356230438000489242691896649699414287800845348578893233288866608086077612858747739275915130421610268415366955921033699964941584595581270425014003664271216546677292945164275360991916278657018332822781057239276194994729973678455175502951322338477681922215261285485149094501429807160425088872832521735890727162848039531512076491872728591246069307111472185900733311832721952101580471745260548435027719593387140952677328554617868439120079114822392552840642304062348688798095132882989019383191895325271625236330155370826690212766685992610839047857268831377322108189792800859879894523696878865797183410935445526611191745130419197407383647342286915589090468523120915414422131374536390628543738425454985780310626946589186113846491061588845041835249671371038430882958239502338520617599810415664482681099032078991502909432824399395118238213014514658412267072075369208601774662507023581202770064156502266640337328582159846366311675437790715261246364420190094947051386094238722349848864400154300868065042650155407090475418337015941492751868686840687663289463082751916458953775125586441090518907001824865015620809652344487229785342948108245137246835002494858170460934892871473511764295726477407499873767267085635465273148191935969022521716115265401927439392391583747136953045172643252088334109169174785828241872825045805305432668859045804518461724329060503419674152327421284495897554246935875758442883890803721199877755036118361774901594223242353766243858401598502772844919479683406335405406973943805216516736376180065789146584006050641354524218594281904638903396800019812695193106850947047222202588371086745455687409199301275243719930464590058458351085792793242096049553652222652051092095954697142686432030408570075580767293812122115096200731948058870018829404393280140029669491812812849002755093941499397021557134018772625102364922909828656949788226021411953035720524851359887856116534030039106550862555945601501219740456925928809712541119946531008738344562677682177747171079415071918224646319372971928677392587804149735670454715106088515874780752267059391976465119212720417543263193309494293300752848607603127706550135632427806465946446842883769809302278136285061412355488099865957342419263206943371196253869025649065850065849822910087944014434239025419289794756716333294810877936191268376823082395279897887499523756589311138093636442528608303641342574371060767848388086544783137146779851433405279742517606884112153362494935275116134907868417888585976908375161357175993735403516897493558118001389858034891013881151653341592556483418621064059468247170881232640680978567826720231904909989463362724253778769533686094912266716861053093249916728521382338078926745231699145348026536744907529066308838866176081896443331333553735016211156816850779615775116589058527839626615393652037083424768048082174555799731525891153417134662738443667265139084203122947152687038627780672759581972644310750185524514105718505456213740122456210609490371563937948360453866256345157960298323996605522791526110018045406275269566776226370707723259072407250725422134345065615229426115395148041724120534309414842404016386306892589867622681208849265258753764112464071206014133135647091704292196045691947539128046240626177587824474813089603406269127195645086796781054197352867877122540806846561614262586074752874143757346219339626501385493054384885406251251163353344388406109881081544860884363927531938051510020634668891563693960679966536422827032504648311540268862710918438249109980229335903598147826887086293885953228005703194721359764682988699917600666243536661366690224953497776179072305938902072478513142834730978962851381130187871753369166529409894158176609503760108018963423510395988584717116765661752359259785736596871096638897823874642548814890725953434429878275605497196666977034601829740904758885246101399539125518780809985505958471051832956574129613895616871728523182478932731242947247485595025376998407236204059343826536627080387489769284247015029399448972470420006316219338226335203718311989826787602936938152425407447266393351183545885604547771951554754963718994431036019868953800537573573814414361787633883330728832208026070288790163409071008146913995424437877404635083825916271734647183196711256575998060650604434009150903094350919451374999195682814177217386603093932501332129325535795207313851157270329963535633586006007092030306265425466965927375384212885943454766275462103139735834559331066987773489170671987042529053627422465352684185807220527381200813753315576203028330577222130479179815003201564520357452341600855652270304673932671423006606423242657710693165043122174966697561176301512332779237666061333316204902285130170018547735282966145176320718082240510509501350343133647332265777337877071514790755148098406256103515469310496635337000164098253209540687317736943860702536124632317521118164419823193862478567506921579116974152615246708995944703906381812672759487615726459005303083470945108588846811487453426581317935226654470441643595179207174782575686124171776941138734963796623058384176193329168282265478869536223481442460523583686514421807716919220520467493768510111154963435767719232545498293193116507554299156837189790295584836506761448529097892090705639123990321587058606690949854548286619387865321864113632522434542935277693496481978708234512636690570110565216464515702434624979355578837505771614957787520026882876899843569124554151861731971058203827232201216852427906767253778474443361139058361704304783186967854258947099083178413231086687960738449258259469116322198363396862812914507164169701302418651047550860655622182161105028467200347163566585030880279191760432827673914294524416886972604428229277827222795648254435425052635001418740076751441928727406019673009125113540389494146593356103466120162891899733749945749548416733825124285122903669940354714784590272262857956559751628903665340916631063405332618389573503548795897887921079199556631997993753535582304939226753200449586605886902782998554537935313437049851647383900596884867373173913398616989886376340750357058904701357962432023535406923985176822787325624967030026751181456876372137220209442619819190448981206016023309666901561277276610442481489063439855778783081609136559691493427266564503373051297357273579027435564820999687939008485172621906624353567822392328772422529689882965724704135691234254054463507963359996788421948928804714576692101843555524138039745500588499490746921575290006596047967060405715341194577174949428512465508916574046050849208417528055240594878295099621738194225785487152140027294901283784104732355792765693255028008671593547390546667962433587164134709263056824843633232139113564728823265966765233121806627764483806006097152933693935418390132790397069520400741791690011755144390812910379013592030487427513738828872773807751028216209194642329988376352279068108458938646918466125993705827162722024302562998315153773497374241991787960972303802059758539406107615795533612643672624997020943947508459733069978203586730058799066540149391086949852676647582383593333729883431861116857903825174323994387481556501720964116656616524302597509133278529732231347318284535181478981510983719376467269566806174764889364195030942488122159286355375181902412437079314793838162675038522761943602728710731166524920790574681585921668252608728656912957974442914575883642577715233843970457217978379804231732509363276240789262366856105519972681703544090574589764418138291992400932744932896589598009791304835965705671552136756253113639524871226277950266893230187889137766941681505105189793241018075178254544265366199617081021672047624940335380716635359635824295229487731953653038071451565517941978937868105579262241694350958562542827177339523106283943868837962482944676252738435234200250490872359420618243306822425859058884963916094237249903442848618099573143204580565087941632652629918058019721847164446573130378957528708574303398569768463601739065587692214105816677085119566349750721749358425520104015333429262804206703218492995736213888632021089797313308475371194806842228360900610303621651492167232617447435355347236472796191700147409571774149727034638779280888064219384573907532823209775524042851111553800549982487941153064341558921939481419216347962157403060278534973524625848506535145239632644120267517028942010585480847125449005721789800998981979396512529274904392156457821758923622986359119221813203695586831212002261287986746508838545334707411061948654231349294959436541352891792322081528747569716221776720875785326125982652602484252634970191754894558984650934624624443702723216566841046468931426804742488392104800564493674775465433855595931143833054681475598419986743269224209388731595225114305665014620145430114742301635099290545244042441468751975481577851572353950550834843827762141224528382466986614210718670597300292980576363107356875036362314198491223162167962503552987466146384411402137414535052457087247280933268809793134586227071584603648471949624872199329250275783022160008592146044788151308302018790781817021451709882627438275743031792479834445144368937414338953922679101073504363817558374194492187483928610559618471324059751555989707498508118780764189629127167429755074622313350072850662961131823640169089507976345890843910630034122301216132902504120489636218595160874562217739777816105596900564615738342487459505666457328076235252187288242144249400033589022269598782373355017459606474961548090448274720236376914373163185935279994466529162705734442802041442293448223289373685204074535355721137864139589755704016190522185585558182874756189056702266481693883328510603433993912467759404700181262746336571474422323454304228194683473574060017329620213489414108850238187048492171164779014416944704966775734735979075662615298766388569720463444765796027960806996835403415973639994976408085625687018872906202451850082086056628150965729831359009809580500732687295016049942420224162617106476480271481066104989980064307195436125561167910029749307952822357563565461084930048244605140762046579010490189170880847538563232199327441466639311543931450464801362698324573302509469825623692509507817021895856343188501572945961295488184250506104664841418260864643618385577728219579947371366805336647618484200106249861156898082820361510895774522292763128105933966651957094225190153906410488989290097743011838959627712482517230326415737648796078050899513843818329043982811614789020053104831809083245245313716252191184303408704729549068888789442789229790134490875128956405534378400461748900313588999605143170156451973196624587652782891983146255693203394781666945091538223956665528560343486636145948086866886255954825232637463067933707258198180803244299919467999535392884765994942509478226222908646890297552627750663439408846665793507590584478586558555529951084178821320819253294276612801822584119306781050366687069613440254595516528250853235427065819807313638070195179817699085692435816821166036659970981539983866937276804744895629953310162195586819806874786310668798178880027392752807383646485698356270204168879081721433596470706999741061401390404833391585611387852531843560311500135794866758997741284846435641588560918233091447287421726972093504724402659814902766328077359386557668045814848098056941943967171505524657978609372794991715640982393889591354378256373416942943376378010555527008692793775461993218403061357522805964020524685358965145016097743440526926272000079864015567128997716720905027025867137921148075969527296978412955942651479351570607230921166829245280552385195721554113647045583127186097295117063816436543893249297085471243035891502867435647614052281945342804754070941029121763769284719132421259142233879062589245549109055933943587771630208190931474397776378654555262242587231659058997443075159273522593871619134503769912576886308180743670320252722087560789996655419196403379014700675392940248077106894508657968441676483020596758317912482061571896887228298532631486902614507637371285857074323535344932585924592361581249250185824746343931939073630801026342691496803979627084222779181248681672184603431712854514393028875056096389033309660877916040271867344516366652366383423473438890472974360899045419006365953157115020264595179802761110762168022276643138885333399667663560654245906593391914544364638740192708503928610662259138374768329901836156115280879933836874016780573323017400125340634764467618035746299204447970027883147092240964910781437740707034751375756144231750578683123654291558997487144137100811904363675913289582278161001839029649541243518169563720654239142269089792796446123239972736082597061876897567168041081829647641599118308561889511236269996682853373627987615552627508932852916649550138366234163139281403521223934559715000267982074349169706385091744019295552794552324316092238380494094120717231269325753213701533252101267216340323046839633052398885112450817465645536776519400701293236078369878260965209741811268641484781412107865533891372423739742840343816009149715207835396451931507502924465231360220141169083800280155052202530226142928162038238205795064252774015754350309684713128434065840488781191403638312969401715166389856652211779599731669721573797929517602804594139347226900203107593428722920229201158314506376202121824721340426354671658905913668032486007915342045454139806396124998767971126607892697410327156081202583088287375413556943572226248416014281191364128389867111204780194104160746706985379452894710252669640871328304851509755033473730026365892565742040823678858561809664190755468324745361934591930651547183521328783537253834465549452479104074278951173387520885893762936414070893450597996036811153675990054017988234534390280119233801765322300433568063211370633240448642300158238790394182929976407984951110549912843457021451008337199675679508031287786790866086434391558861866017119985956287476083982985296264580647754592453412269061489860388853321252981527518667231840713575282992869596204082043628175069442075458486005767251272282689602180579528131500863056094865967646907510277019557003766080088907702933031118741672337001720023254743364989443879645379345761358006050094197116578504795440687758477270567666696843623640430941840447933734216074141743067509411345487493231988542461480347267309006475595559626258590120266002120274705139287900733630209651956990417380167767130161500434183541530808461146131592665036651374987318574369571723273219204861268967061832207105838644903571375772187534186715635113360388633286709622666864656698992241040926662755428855508333394028523845624357329693699773880663208602411603853664347835734165815653748548399655428262958371552306761661984423992948869678514424395855961797722315269276424371525067051003813526392781457862580578658112205034613807046902861876324293753496862565179667500803861384611641705343001627968301857159809630751211534101033684276603796798187067263245682304113731726233279475410075642685894061076317594994391919925677743912913177524545318902527612100532546792395495861573417869479884125342905165500514826243210818769512601426201045923072589627482131157553111809849872829888034633024329267335170200189074944577005093990845042461231717876958547831591575963472428860454603115918170224719100958853540976179606489072331135850743601576482877560834831824588219304675488998731773730842191912690684759808811702733587036773148920277688205959558125380138943397295596082332120946027308579703518206635990744297365682754714185565108899928467365246168215375490306626172942539957324033367388798194473331024274390242423183900361346835915545123599966194955969546498590321004426320317722828876652387590148656444647189549866207687626251340233475475285957426553301906712324277655305909385887439929469202477286817401058566105180332571797358210328401661961274834529718402789872043822154536078494567422214550957502767699904553898735646797541766714703870587913003976196084973334802813708156220081207443294128757951886590459982643243825725760922941689468810197289105813641555139537854931943726285186050152483467067354233456542973229377273471750136458095536386550611113532050830903446877236811731883245134174194542227699138042550955118701978512003644011792786519299106100702424847200851687979839360305015736069971160883778551811031668485912457167611522975916459407852930558816951683410079792151499354986100334607641469811813640064857046089018823820635252487969786858696572579029322541774757077593583368849955358559932146164212786977418565625338791061345176241607284762654670281878163355116845397841658904200542610698810300689392541601503369074196416548982089959646565990757773212651505001526817063744762963724141640010705483576570529881275890397313015262613160754105714779269065245450415274764458365569182062230345392635577390668492496812956489230005660873178452370155607974068306330142455413203636803096994542941149026773205551257259067674080133087224389672749127583338132145350600570319533356151181561179672438964694618715509342543795725970226886018765871655548856922413335816111704195309177454595192697166163214167254320717423679917870468243114821270853896728038799300752002844280361861841036671139384182253505157904854395378517005618580388916375035781196260224103955166850875455410053054508821344645710634081212275555878255399658857927077200399527982077205138588108999210435292217051628150554301166973641054902189867589631551381434724263384731679885240268324223734255693896905253966270154219903680264590053435194818947747495563232440505964926459065242229448187558903911395181632609364365181217335900161238836742705879107440733156575636270472204072096251245345487179560421749702220605377971603753445252896888318118286436263752015171790633485585343275924586689300752477291099118519094338634404939227832678400568133608157789422133872545627447555093270506049943373468150234631241837901153680326474882115267076487878599878805624236118859482383620071997401583168981058039180939034639446140606767606546815206746827201179439472283380623541361492441799157311324946282312581472516805460154303876620385547988536029353563565140917239151169855907845252958716936473971138879512159367311816702637398976489420155918678768539713533323859590641786116600776847072666765612993037356643689720169632561138394997482903935470675133551847199973684000822468494465780938762228326855111020407282152704468207841287242452600253706425179974850316748245977153493280684962176440398618059602386756458731082852592474802074787185038039178954599793965650432341769722400235016938149677418874083997534212319575130119265528563156582850943012652846263709197542293242358398253566637358711089590912350146629087992575138801141945379703151549899717994466670538928649265765328817605797615112040377301069388294211793227148674611016912590717655594844866919688906438842948763314611934900025756897037954835194205043752904533082302410817942772674401337551561308880934986777075968560123770029880638630581032129390375591906799484986431963074884812940305597465079759423000128102443694877999771642477112520475635364691482585645725500833254408373240811817434498478638618567356292775649835479344677449777160088133063060563463521466397792788775096853149755776303974229670657181876978193340695423454172776827168818198866432905371043818248257374128719735295224476313332372777575121761829381559885810735276333689746886458169049630997834475804202478079081201802705950976305275539633927325870609448950109537856402530059195456291803893100951806216859014134890970020827913529189838440793768904201624711060205075581674829447839410086119713009401149160231892705802826899296024177811744543054881589081622307412331204450086176320301287635095721406195009435800395168337651184818114745153508901919916802863790348128479115119201704674710286482574199815146050948832457739629004226977735361688078911628258811700978557283567422908222656158763289012068486004657721523259133165552800362675647477747944366821048392296410114476074924956335786432255448720815532743224627343942665478629358901636699859015167409090134262934531495692541953993982260699770673911839376959878122534568528976327655917779274504834784849007876447695263035318953633788924114744428772918727244863162130832003874478551893015239496127684588846078137543650667216059387579978847301255663352954151485145103663006470392930223452778612019854929569195103958173419878016752647684622218379466907331441523235933501390028577888804865590248946937796245474703940720780310639380254263585155074614669640985030287442361942161045421762818697872913973197528991700358081175395869955252428350236511739863119180930849101759813839830740338587491897093372742645914029677345059917839401234838563769265837341864940381522371412526769487401700597532833751024047312561386395265426177710760358526279225106580262706919917065210535070760836345868250613931645791138592271809802475027664755933478866105049736061384402472749691892855323223358451668596000449095004693791637375007440217714858097561206677328934166685680400712214034510481388522709613479125090248666843025772383908903683817625745485952360621252199825514926446856860119190703082340008076261624990039079279852644304348942271299324895383611843045426561740714973729199181368157024442412368025674946127780110255014234575846890835212603592001894708209247686002399687395429711877414014568330501071984723710910109205833661837379830419341693431159474060275888869841031767662784484024056359620531654155251056270780266081477499356459466720253602928119023784202373020399678487170935529935600764167553021490169897221873147085763856157199903918067491070160720247054468379016871687847750169608865813389112949996433145301248144124498810942697356192878408497452254734406020363333172950748206713375950245942343755343185250238961012598294911343546866287707875305760013092035512716326355947620497782783820943561956866798734198696755249801454516483310339895983901068935976863693614240631635612322088785260765487434657769476197073854042603734384646865111653815729936674549736438584429131824066505835996084659806892439087707639680272450611047208801981022089075378360577901972194145609154985075867035056458166203606048703868842933056587561185543972795889029494805071575811536380946510997887086347932631000747306558018634369453644486535451069948159059382606716216996806440581002303232476045369628148189800160503978299571341339064363659342653043417827832179475524411034939203008437712292190580601412451647530828674022474643670034062386909672308161857077537082041197686385427415218915274505122010515008183759362904765156313490190528882631126806363783723730586431411983888553961280856725542953440929615901343986677496286737592002920616792718309875913967010065356979039250866792922352238073616349552770120502176065354916581611759005877342896808163322688967874993001941203963419847431043018030960762429529204939827486976508855432412646055477217881460904016209304308281530966991446569618133872000992615951861648737274263207772690975988526541243266620024537529957742189374937855529273654959029333038835333938431684846803728654489932318265006805883524264069685539946282117500669987266843328518925224668118908638175775401597087489971716709383660198966928312097843576424335523927803596767308514627914127403276602554683912005401136037025720740133351470113633599977644164080433840110996861717030681864525679727731461046026483681406964521086661402706039799521704143572822850577301009432271867913734986758413296218622871988822141884145342474189432154822182448336299920505293984894461780896893499710818419802656938739360929662738115085405931856216814124720227701270225026860854212132576260189739968352386851488418420271467746314467341224654041348069979189297176696161676707690756060191507880944991151862834373700736536677052752699507582513767409928502204865742717213471845196901145715234148750148047856845754417339544849828996875516612722041117844490036098829825095340374890671815559487407936409832506293755781063123321022381536722725690231166710433520768058962303975041346119401390841820819501033011443869315895042688546224285893045759902696723227416053348225831086637684532907553676242351404550787985780542627718589001627983389509399931533054288735665217161968725435333705826903242202961881594736844898157247628006109243080841481221002570327510232610668076116262715831951862159036956176163443522145052018483884867976159579685410264412244701040296935883328285553768777341477977413476032227905774433743478445364747587070124244368256922817023710371988498950195561873930721565380222102578788402992179866082720502643990623362365736385124215209876707160998958798496127904207666771258956917548037726952198418990735378452531710527678484551373394989723246018852525643063379275467868004125978403807506554941895102456261358530013134090916028023590584915857628857367644404730558590631031098514312593193171901882371699557158277471933351662615526279661656479100830206197771544468216292635421967011060019205752452389596541659362390901787903811288606559639442638993981455402827938131438575961135184379533485766619332475267396994403775750128458727316695239801494396219800301913411463566331735815260739913297469301999934840916533701254674110985609874941493576746672199811606058772980599763909222696029813662476520333764628185704190968015921060186650395389609711310337402038501253317845430667308840010248196563129275182113957980097417707690983763952176929750474349571434649139241004937142003179109040603330081307317493338574243743423007244759108800891563100450634413078081738937045783484392346046795217210700070584071600384340837189485315837362876785736151151028767935418959335525447072236072063410709183723122569065065938621098293304450283078056345496834513743458842329907259692431130729539305586685483333684476976789247434645916329507882984960656884046224462498688388821764911261882952087264505747071012091530247094680870442522507985585058335147982352094244837245763134381752391941230254019579921113189241124033482287823952154516991654034838009681667277609434307792060153817227334987301977015873850764249518180507655284445061992504898725026510665023494281380303542971511496542356583734654013671270254566244898844170565980764839044072925031011766734286044619963982924588993991530467485715638462803776714813520148615046940775084577243114642953891773501399216967449922004867644439762588173963426409098346372699782386902884872484607289695444826416634125541530777033718174833580151292336987142812172661826226848652142909263286527553906275565118169130910048893509877599884382547695079822719209741581703591448083484236565227983387853131849266956344858884770031879394533271605338267072423664324632164308797971102170018740206557775434827310935089321170981783622091285485676684041924251153629522135857878452946828018796002307174373076287053657879327438584233160753062684563787170746887879338614863129944590891003891962577057420398955902592980666037959230392166438581649770720504416864747734061685510156671417273767255994150292878803024271763927818996428498527634702313584853591529241349514577726612536581286887101720704591078387127150713896959356632312392091777057630209967824393499880959690335547653211058672949891088839317773164593639408636217879990017286287151171833414271805542926163860249288969036506931419535696995138788893977055274162784380484972397909027129243369406490049619888574460928567744576396746555936559613575715408926934889089146000446241421609859308960293738628442625794257608678346259309790339883405344735429397586330282277898838248048079228137546401156759175741844334719700813853000685762979730763168833402172702747488182540347181145829190174238762883862441186844419244958273507709226720375616267693062149509446436525046205563334374853324038396154122532011452293747040037236985950148378684497086471863924559227202287386700642731107351929188590396322188358296010561278636860761434136101825292666727275177661031893981711602836263640612993814778785335606376458361104807531289517719301449077083584682480852460951559698002049373993854466120509295375141114309290923863855946904845440808818237958209372589299930763447219703829439273121987186543158848390519040029564867250731712909791080174780931750285087279687961530686100663294870036096678407930192076711180712668121377481398071540759041815057634242005699609253943190746610691393743314920027180841525645845646213699557488498439268833127604800064676343303373919575232512116863777237096946302729388218848551530844392408215321287880170138895372564550446940848991514504503961473918182278250729044441754246660229457091854315909459821012920128998133483225965567315340633550228540082828253929633921094143764409836884481929018637120759150916322633730116682693774905846108697594852611459770224477532823517921160598372429931973183761610997798203627609427672009342296450543322381520940557430703813295153946539318964499362892648382232552834495493186234758040722322614636325862195663698566001247897934168993957287002916908682475740294151429535409484018895013904471280934199646535447799897685344199413612215284746318252936547872279987579356951815589262903609189155158200385251304784097071767009413575500302021220012550942738252709472940495962431910539535253946977496874582401115127270894674285082252032406894931804394358212176334740378632958310548053644204747911437742537649929268872851714593557182249221780698213949191275461143538395904444995590125518329860597989297358442559813776992428047431281660669937768752371193216975256921607786549369750929579531128436033786582015624484022297924980141445665281476675621037719696202368625724256565920341402204909332356983865317736189743622703414725692503895012345014940373770358872700702374705643930520993486133935141913141722578472761529587899185688388963151826594398269195237715026641169743199696597548611383769714798193095351587260579249287543389294176300966385937444986940378922054747597429573750672529945309275716431157139306403952197392450634454018031336894949882609444734735160340359439534426927396649842268062582759075195386303721914386339528518369332489285900201232469072426040110940230092814353424400325218805967308715822432210505533978835422146171930977513650637196766664391154105371912325890746180269474473303662452279617759790146005889370223251576152694615085444779693432394419764926534875623572573456408058581390808252929094371238995545862467950551221279554250381249730350611799026464159409417405794334583272421226909280206383307364167207129392670119760529613382702093112395805091548491873497837639990100982546694989497423200414896044781192106573723135224502711053656259199347354603742816158652155333467149593690006658164212757478796776344256465099629664442001958884348596998133696606989888274408771116900613794038732651662748290669826891809357984350715326395160543050320633195056167465685956901300263432218693024738371075498397900955484377586972679999336392437218134447604159706315507143712829007261164900933062604576516776623735209597159996892823448521858581859464191046780088255839554060496116065300975164237012861797503744747057067714665239813015259674400694669924044180159073179518146939285959397913910860513704698557528731610086681420839473589888834819017660053216499439416938139860207750610033506481731623809501980745157883870640126432926734862383837974002675107079145270711516020967139853780139726336024498116733380230055626310594969649646068562293924219955326268873269078424479000905015850655933962798433465933084093235789916983208456319224947024323736653049936898874433979634098902066307613924684326051998613506343872080286829462691121992590499236073445207936935299833005041530351743138119502296713561121242126202535664901946678455652483819663952134766616791906165614272358708634615462197236825076418559608369929655969164987038704399647484034514778241904306001489291174618753173134775344380327470339852911310854304676107606455162321293033853403142477030546530806364937868642506518928831867806265701610816069144798514198569174776434199206439769910612828555409577524099090290426452167595470120769770096369398650556605642124302038333485366601481263703159548886856876774585839144108936967333565254239218849168764277470806764600933020302245453858827730158242547459767682595927737611684966156332332732429639985452076393792493793592223177402886319155490959720469074988822629756067690571412076801183077813555309407413746251330730449239943167282901728644274588019302498339817457537978430082514752719498087836361874320697137501740295510524411873066201252890863562757652834064915880136618729683778434790145511304041528964311536227331821821336921500209569058194132763518107685627656353795025683781370423403930941727936263863436137134172509439664422472505994684955472875540220074292124321755966086586510473237512613449662380760260373523846781543538765928043071195331586521340056947265820950704158034064724570711323959369082160706043758986131606715576933850465067344607210857023771862520388154763139112395190349900555707445719500099216598148110595080085751197488354441016216775890973020917739265069189623090596075027542404962374209277021261544724610836374711881215570490451624656661648579921419259219202248333309803292211553153424842563078232142416453629964518402825047983872042010148675796748327266509232007706206822035054722084635706063082665436411515143135374333655793506161189025008156519453686433212965819467641543743634914935915823881927920232874981896225970156555126942471987643541652736892939628161454713206996934700885029711314916739699069212510403626742865201571846063827651372088200741170208033489371483132189933913494951435391909206732820790466014953819033083015183375517925058421882735428071978017829833894405498652389473985730460774127624520535407292637758059598363354083120364731859722641957558217602218495564321329135726290473200497920121125752333786875416647086856860439565306991594042044787973774991108854329607474892348900887375815392624198927053012759571875892246195703653861457336920736990662718212625410732198817846507601858918912173514626556271098728410846576925239534801084225904868263287556569862309258206042457456018788666223405772355409244416645395474295864388680492747979775687495200937820496729460728969486304998914054325274542217090140837956132048433135487736728315923737983344555923968379982937250843425415400928505414745903560202652374010993245258324695312939621384631387544869181790012228720577995422502360657576101128493831044973026757134335575635957761501184000737685114718454943532836752912753910211497577467857208192716480457326263692502679228403893893563202649582453433487313381703411705924351829179421185271310790511328459673873507309336727687585632522021089534182266847300918209568086301563176601034008691090801040458699478159382470827554909414405990527930960413533935634789741067044024624742282461934743455493178624623069944839202447534187103148367983846818339441623553402939712531529010726609730401578933904766516167593712172917298316347341787596443242636918847082027990690596718374471061583176727664028117765482991536262617389906399246480053381567018817238924716623182340240952598049165304587092390207544278437504729781478939635130979783919209034399508073938422258548505557344201622212276076679842423688248296823448919278942201191646979003010882348321274349137029217251428473903632509095493421119660111572022664607344953348569636336259310959571606537629500621919933658018525519561901300828371589929814296560021662708248055409571413072461826446344601261596091845546674045194192103448132637236617645107821680392971814907778133255778645989124480076505171806585680644248661927186770015675480460793623154987076572249583033636543004885595157338206696753719425713347337750046011002324550078292446323678226806756046853968293878661452336287919110369175595192753796214328161369526644658625328561088499022051352472079582122009242860084527042446657065506020266443028748286863849204060161990380998835657423988073515470641677767883119592030877926238417227527984262201073842974357743932584779853844807566392623120148073138087323494512462608618377348210355317881213418383384681224348247330762715164280924647819888815596603369888288237773833107678082258109271901056838280015304229161626110765417815272881471863844165973154251896306425003110500714807097699392921041786831785032507705937343747144449135163339171326756644360553587146664657708576350185748595712191574428804526121100082629262508934682469628080481712872514774469945550341839687606620573035903727583472452776947881216960933089449464982680356605738525047901569814392215437991957206182519867450237222169759892397820467075114790695151384598450284452063044183471353231689808733421554935934879280458429623641382263935660442788398342995176226363712058863159731818277786051249200186154475873849975589464844558835707261424916793801145474260068422745709149955916484901776600425500334054605551566714739144396098909955114922620654185420901233106346771934715417142592841877101197082999315745009095365566584624916588242357158664719641073515284324770663253934157096926745290430313264895812247232563089693886536190088706247130450479133460443878796810492162245837315489765092070262103301624506003175646434370233474105514235048352698792954105085643242076241196422719633432868590940467721834721622657260279837708686105201143309714412330549532816292673736839401264284882401493894432811012114918467098947664636949651211318135191704568303287695286717286206415582407567519618477723665560798104286481752457353454959771110165150090125825695415774421194177778348594407947082399482965208972464106351165910010087288551572055664403658004922315567147315254977833333758115405868762526521728045360666337494673981735300113104229136515397528751582796937219720692859686649234912736893837838977311692012483443986746821236637123869856125351559645980495471583548821901346476695323757380796859934950841621113093469008049672573797718862793328625300121330850126503160507778427836766719066071745518103860924921835117557739654199023609324632834531832302138581355704005099126868505591085723501186648187000239105537593355442894357138409786717546503141058182675239275465417925828236411887572600591017197147294904156229034870322333737511622887584263850088612665338005164279034119347399479323144658977158779371685378811830232734988223205574672662669181536792399965414795780237573868111822961386118333697437040442754564967427800402051671115622033380319795463653158571647593641063434304514309061127253678060417013377349631240143351189777690089642504523092932194542039524274327307975041918871253834850084083066586296512172560763330168714504462520403046942825873221135914614130940992918119488888655535606238261321425683963563145702791101741077360724143032430438074728813299037104471971002293015023336162199862120177448309867103597697052569677235658290807237360018020972193229709868149799977921074494633562500918539430102787835628337374696199679851391499121009326221545408202537358743082494401702951010125227499902630046275387753041432053461430284277663159276287062403322417079010334742369762386667381509103982435632176688658437048002459562586182478698693640197639827787779449160887293031339278629841391549564422921982103303338959824321869630217763827056925482537041878835092324731451079583988896735398436045436186111926816195301508547515632498099321196891085417047980500376766120611796321992213871615743331799816396412953643382049564009191615983593822260618228972286778343677089546777025917833722405602701775707125553275281567700788058530583890883018063718128618784398702064267815493431685830157472878716596737865491281976686058553052092417683346639330130376397467857944030399058037160319741274674031436627151408748940473055572141911591136873174262648077033421179689192714453983734762978900765680713430410010420945735561189268549824430263881655451739395877057802763877430544212112877843036193781780778409033280082404190231136040254709504537667223720440330287010216722063657759944233489860655677842188633521503127137115936542407101617952391034947637509240660322409044317949522838629945358287013541644950989781159266909177359799447504027376429965208703219123381664615624720789984939393457229351315538810636521911195758069959205018964933484953493507700812201432735860016840607059734325722779290558197259285085887830020291746515932541356151749778471297893325243965731426316656074303114592277801711447945087070332620439246878390415136486955122397029554927429952277837241804125298708603975439184241302372394802766470545348079609564758877846811021855725103739645446919044981696111415752915002879487151746991837854503647132331493751195445749427999685836835674141843216131834170552967930732811646322687657193396603025519913857051935364875538581435739033633033700729410429997128271984392223525337372234954416533518043085006911913951211360257224153434909262185096579476278807709152135782003785912444018598166838382403408776214637426241989595596506355381495720268407535773216582076142526222118711290057411844067063709960359062982073593998869193316161379472734788876190718672967307696236725454145475729284030723697237179040308620969341097547515357401760131778227721436325712756643732799215324646748586400423257484720168239795189691645716396922953854629053812901149573433480074465189721699457131721845190570814457805311161952603791617259652718769737719903713675818854435672046982059918953720559863673192193807381112572997140229542375884300175309441443970492134797305901106483438053151818051708885362650948995830364236191054133422773166665500302362278977062311515381864765298376741650868932236561813206446532042958808451208383058862519394090363660971403506528240163459630265560766601395050920530097272160117769005681617574992248862041193292795056529186964097013804450938355356040742713469574395710149445395920131410910293333882861758489309414117396565664693624922533264480283091022270944301837761433236334153429020535275201718483953783723379739810776239543356376929603688006741710427016423314899968924920559188672005408725630944963219237141014415192066848179663132221224565186420632693217172417184117866430308134638778403145209009502376986848896227076490533902046669602408894593796250476382022615907723346752952124772350907060124276664953904404985885176290285813872998206321352737687533190065310820855184010050478442842854336131048310656920931386715533908495727155003819276089855635226366855513343957128372287829065271045932486262557436654133816045174195722271383225621969301207579383752013044328031835998309707872569221804304316991971298773497270374475324726079357483842428249102795545984823698392919690204263534582791070118240915933295916690777965799967087609351669243894121704894424195891028304551956192563077805207300432458592037585762845129730073962720506906710843824300350000177120280226717553463423551116895020633745952036793592249118951610996197728145616028464944553511946095735801745865836996804216013181589261160476996872428809214265720849968410928813481205515004521155741206995457073742023232129429123827525687179813711280550055961648062669717894712304446819210968397858966210922314686618018242377098950012615173448389551868709754342114141127914679920920734554890107271252667422174966551471251698784461275208507066995812780632374429974829686273552592625818870327583776438549350073382902103516050241876785278635487115169991431009948633838372169304776137517687957873344740160524054772542757082240249593015363783082230472334063256545976474593160355897531452312374172934358148998062935619949921184450264427673035940616893873190450426439014915907758271050325914556526402592208508865633982834242973184822068936246621637502852229668604275949898290392625148606680620015108435341138274254533438606555841641169028272571842766423264874220420405858407014736226936023300059185855809533848953445694560697796759047053240413520342777452462487966229123321395659814346172291807168910452449405544391854787815147344622885510946850907411908689381053968272591303888437735738594468334053814692277712187016827201219384871000334135919230274487523147386984036309594668293268011376654558222890900136230835937132189787128180085555132070969346389020195339179409391273174666138787240500264176648170908565527496989439079384969329113891410682295485701560916154830244610548549080042439847640277612655671204204866299422051749857890131667290068592254271270960417758773497460693639679795265727517910225923886230826514256529429397842577854390817500757375350635704421195776711468395947191440574157521811549661013893881911771275129784363048966939482059208835733725019100336088019314464928333673647708999457256931723897888670900223507153005927407922806276537726634518497686448946907342451399884818077784622659191504591218815095848250555484481597785387368904017440519809422571236422340032694877680940794478027684891242479014758316221185269948095849669435364070833898940069999111247888207422228746932523833240289894137922403992636051258234481060975852244485003864651212784091598373065167553145406560615453474617524233476699422530631789912448314423753328561411082356116545784998868474100196819071106099473810020156815463442766034029431231861654696062827990208438425832483711741843258504910038586997906407331468242553869965905730648747650235370503262384746754390799532078045135967205761747237939510269343442547667693080440881721597204131348027788130614849032650769030743527486200676502994484877296436230390056826904062049155556860963801282570109145739367941310873345148583200162668995307964702742911658278420925358880623443857465405024991115124888420726245836781338277836750156758827310544131513439045784140530168944806665830142349478777407766264090562735513675041386819944037099671856728356483036539166048263564426746817608868731585666127507794660498461651964508446773868639590890315252447589694935224039851376053986797748603761395536358339663632229414690865445270197338260729107395587937050578914929474300882266886726917701217094998975361235828112122137538684538175454094533933892683740923020708088805272028563633224138909708322081856744287207000877991810209243407476868113941983066941207700350255339904206297937821775120188868279980003966286689636213223620283666656838252414656811538388280523959160643482793806468700936472250846271412400340517042942093590860565233158573254376725767448067265015783381020884620420939596065601995981813091873467364192636174268188952534523513588823300641625035678318305266450866762479451138379268453718686569795053346786302357981836363818290879493675077077838154005165955141656232084329217537472608298957478802386569613483898272084876933924303804668608503362746216872923109546693661679194412140247287261765137247244781213738460322194167174202794431215825586420558091386925083389574671475775167221063291536460948034333698787488046093033867668867933225588934291420896586039899157061166013344638890447698480730136607603550378197651103155223027335940717121212930064991502779750637368937286734888784644777490039432824202147667749613019499148189417769265538690266235005442323472084655808136385335431366880765106092144936376576489212751355154468229715440830525508480188309856633969005137558545568614852836337498037675665356940474778864391950836222057485747810607703467342123117402967612198956820649230695993015170967578414604925780958316042871051346715298307851009589291784414442254107629075664332172980864012091917947548983762677975258559626188373629686880608322633391187505432286347929414712718830860318503064426455242864867114068385121909309449431386060696649592392183214889807132154301372750561164038781692532112140465706892096040014630749604850798989542009552027883351289813189524264675423067660774319646728116045360549230875333129768924764853352319020734354639047501579484754294523332974975375544755720880771446599222729935653835408286747650578329834952487025304732509283517617287009195938970843236478242416232558522365245879529930529616363382962308246186256130907189023432954084039302452241082426633144303451902122648586638007991640553293318831755967252128112876957081441813946616197731799103666699445100671463194449793169007571008526559152142949273896529377331263053742222419954521213338429844998228311151734896586352939871496531585965318576939921624529939448830688028816760174168423237412713573644579826281428904453764468446280107812916231800654348655573852194258284556567951793452385612247465979280973775916228414273559862417390885512114731470164437908459213324739051000077708324733376700212948274734521432758630910215607153452731155097428191984783112555358017030176153837670131873089113095258788725034755715842773446884834524000209704887019302081980850715802884700004680257422217718647897752212090703382701252656034740180569634008178925063896830019863561971534153790416375196878286644134780178411615306344222478619663375522960191633860516622870553941755959881247505201880275300211061528150386337275081250929317288086818302431524462648512903107294266098247254738536784573516283805034006070012593891276846215155461648377312075318839910200643230245373461898682684022761201367467339864605036665146666224614654496571707454142974422124242501788609669569691502330640712037610651381308932686603817216414727181369586812624724867373954828292560787196832747387613315389658478197925586706425075859558860189972094795164898343850695031412474267898925013576178422062026665725052873816152334081193526541292017554162479898502723288127011175932316027803744963985636099484749093562892849839954236105691655890715720263654498934975580221987514076811401769276219199695911999234519259122821964790841559461533979762542108520077246740505050550682005167163660636410707408254947889184224958528458372126249544979334642089887388858323984159257927680891814763228060347768349585512171151480450809248348590218702854082632635332454391926568373472144298535324393025972330321710675989855099154923764325454795173820282929054891023839610933995145868296656227981376780340882712455842827653750255761011637615662253365586064813003678727407531336044229371671887805292431160862840598030545519942121248730165467090758320385393065746781159970319347439582779295408872733797983178505959608283606990687293163176840828463652198698362133021578522975526763898310939944093579505595503389331033082618893605962601571743741046586873578348059862165096859161347454214346592316619765765388254458246557257889680551262865052776390938553402193551826214408205767111582413481178839453196775941500836548295861428269942150416678692311537726340019474139292071354313147660127315800082380088922192485459101084841829737929397550391892681089027012815541661129382699392190860260169012979985720316922369229101645877178065752915893579574997641063029607414548915332366626641189229322002012888527702988268505571088163419413840217800402904999382688252810148178053190803905105253830006584336629455951717712979940059685718383012229296714315744410885068198307753539125782245139865490605236448770610568629483289485083290848491422513146430230054487893312751982846782492932982319393385565564335763782766948402021136796130120318597848487166833343773700717788722399923927472809996014033463556860411459126637893940747406021478197419153162397006887087527277261968307502376083235030346385957623803504985549433142532387417674898626116333601877566530507528452324015095933137004559517634352978265357010041952181673263137583610299835642009354824840152115059112167612749684805139467935062376646771131355156728741400868216326002327033666381890471863163313220023517764055790736186268586622822378052986894326675473068549704729589375442807303751007405171210931874594285450245228287884498343520372763007270773058011684042825964888232203851048203376556826799072828514176290370720938921195338431039093126775714624418845475398861955851553736805037326911206400463974278375777710640032763846004470635607327177009377064123704200174034421264792652171803362808306243842702355798850866658559911559080715713517866201795241710117320896668344853772282319518679580578884745719486792657074578317312981828568619902802017562199059611142800237987224754907455006778873255278666871721661487367522873857450045290031865196605341377325180558121290354869769200837372810691169631573091821278502819910884096186004494425823109168191660435138746237920644945230237765483100086690142211074909826369192992099540062776767152612122065923043865136569598829709663251458893978640789933966727984699400091795710682762322680368006376051778052142266316412157634528782914826722550926142706285604009570113069299231516118539311084946967860248823746629606901584929836639040023500843074276599758751573936494643815046334876693358390520903816361199472202232808544831398721655317174999831987018645953292670638697935957061690615474965843243316824428063819817340634536941668791037649572012991277233259549936822492610351857124165613806471725194456277628909097674511049964551276767086237161412519026814763493356506852528322227322389272788932845335524684166115374536393726548245202581053430111990670083816411385455769647538826556775943312708485103966623572826248163579997590479906084406706031409872870544488986573412688562559616542639383076365693508676827412621196099064048147013287564655746963366676988955984338992451083587830019404855952154826256312055557255317356154017127442633434807472222540290619354726175154074564471428892504721216063854702606279110026396569991048289099498542614446566850174990751815554712421670108267761142568390485752047217468297843191908324883724158483612071528222916536359584351320575441392750222330039400271569922431914827287598777998298546569657718393552281172872221746736600376102067625047399698102661014170396774147884726343511657213663949368938188514131796749401760094932225798251455081261617801598487789603276754343873940875458290082605710390727368217154240340335219601578736591562302632925372116935675477523855716763716354227757857700040553621760451711496987826122403543479492886760106959524162650781843524833416805996031949349255571303140100278562440055455885292278316233529105354472528085917024240060491480194489350751651093562522840183539976728749980876681837957528868683340253968893649807172595832508093547742970456112087528608856815977676988672403470051456434083368563641350114270985864644438229445611361614447881274094282393248943575709319956218100060230171221060729270139604851036621054962461252023231388843944321372081527238217868803287278942580613229708419602606146445343196358052716012776501011529184176169436677656851379185232717078436943476208232015682774007226382629154395402420605838096565739386357450456823635506573599406994920314526784113431170815533341448814387240333471035024450765650508594805542731991327076187577143587021487139277393834505964124948270691055118144924667936929832143433257998100709280693652496163183039826580361272624121515813573970135297927111535962630147446675113593282788083007158127043857919317894995208244672315790387176362636309760984533641796043081876831411234694224318905056211845343674646326413017689752979288941233342490947240013794743801908419437989706866826271826534497210987425748623418574604069385246841706295773187666289666526903841705309611706076725079588006028723246588651184973982982388961919912322828702518159773499261526985484001721251639747130930301798338309485564552541430405915542757914501733445214781555123514786257982926889899353644840078893007602631332773958000880815595030202384473426729366092257744377562882694548308431881721761813354979790982046837086181367010992973635425870774039791225925952315795133378515886700782138081072521722703226454516208827276075973423966575664983249542525022702794745611254254793220300325212855556221080968044659465845489843184218537195063930341259413791230703165992102669361196880810219975503858337388109627166937003901821176304028196429184852294793189018230885932172205305374657572004198073317011921501197028456812297148892380334303913296949258041001669641807840300294511965813669867160943330981960729882483208590168678963278939475066434094197928382759015244151136853539707989033119777392217727606560372564504454107345759324538743973158766290431122808666672443334600810393748133605627304668749651878959830771149386960970897742204679516157109154712182985369174647169055043571224649749247486574634786080932243129431632053216910658651759152406548901667992989331322365817710856893138403851037718560487224709952353094268096337092428901931214468052796756995956850666106979206197100244826465817620463080545091471692104269992222403858562032180071605728631144033652516592532967251500807607854964261365711176387598993197099551639426091025690450450604268918725445608726473887852151502243389362099224661377813524875679009193709642715980753282520171518885816238249174507196536600575768593587989320571151802259537150351537621265002275531082822304660734313815812739425834706198684475138200794779149347039772944734366938895990472660789002216239789058439419491025943787184423659715990165897835559526314326246684566413725161539346499024992862891325898182622044732078935362732315549922586744650795302632341382487581439750437223815844001973317259554939449240157065179455397057502789237963587372951820327449746087423407800571554002672454599486106415230621757028910787625862614471703524881577834631299039637407400487843052943143182151151012507371563910041938037831710526203313806976646606780497528986348610415200852719260384707549030498517968898321615843392831962446603091640318171061677433023487492958350570899234938698166054559810594692200916725930381450048904175704691983073348661102646166084321309424168975348784850780746122138577428581650470064516626666751536660518172875977746197546232879633775580520352584654998428714679236361907271069000421282303054299169934451028510577548068139515184067614182623938317121353313364691669922079615223760604356932076661894664215299974093370248095368592365389018313791457859005404658463489786751225510171233529714264853451369859240284399069332301088121993397821432530359310093505068253376439773345320282638985936035473779096181162537040885440894138437138394232609436512252634024632626230229014880441478204890535023011787403670523137420922896058992090697312607278284426905585095046952776595769619338799527439022249640118676048205861078597421480620229440138511483015959077806372704010673585478174049798201409685346277444006388047533757120441629046884936190058205647824298206357993729941252108278533284401141250537011023625255743345129653977831268145795224761163735065199295875829032458366774370877383315205587861547299497704679499718698404966072880518204052252484852606187620737072877383749347640288502515044676524369778263418576498801428089050047577523737086614677666313704488674096141434810885786711922740666165778453541375228915873343114694069877218499305648742637134473293804188159474467794420796470407907072422210361989535788746412909344889704189730589084601536293824339102695234125529174914271875324511754187338559122692959688559332558846486156797102966253407249587590820523694744964186002508851941880650955464690376455263045404213592814635217359348923923201084493917946047221150398754125424313092876887276345297896576977530152481237530988800993700418269580086301415476134591399508015613110969296768132677059761618363079386325108127359241715635104815736521940540172530624688583310531257658652654995480235224094079521841627711459343917049731943805880281935248591606205718278580530375663289477742114404930772682306207829048388915052451052100087236783905788836732044961060617242206839191740895063823930138354954478090150537463131859421606354663480693803171937157349964055403822023318626434535242599535097923004361333004946977493311076433198619539834653769342575231975843926506177950442455575106266054469626665594264281249949176434075345213745043777290678427457648338784294826696313879610887612201527992732496937076238088286602560736770733616950880725133468070033809578022107374001179072810027701888436159589745516681848768268920718677778158460777997771040519856396885832269548849890624108553123402505206610254507296212247399698227507542182972971768621437860885756914952758428408445095231630875670290724257575626198374453311360279221151173322844658464553740056445860885372908973914257745907976780612125453458474532868197854666943076098616178934618469798025168197359107897717622754697096990593373038743931174028871455898655071158971298318008666368845156893476697805768973002979659395545593569795337683371931086533883332057145941393178500992229311957329452915731167788919274530855618864133152150468119093238029058709967311396475411597772338347811009330697985653404922160720913803074804795772278303768529522538807141525938456089863153711910838785809150018823801936472964258608459036050533833308516713043180699902795869757802165020904196334227575002957850277629544290237959875565398061197765363894702145059732677878985760766354006338496909235491637293071524980374936908323257654726722882448368946934453198048958208818180798377132664531709467368489011272411792802012889971286923382367673604048528409769417032962889846427682067122751041819574892953579786389466762955318954543759774847067611193581535998432130751288456287456537133574130794259333150594634412157697788238018893385445384293604689305432146448568950908556487378005894996408626294386955807734835710094651488413116882866816479115299951539445279324965529292897691898035470248587367528771434621308733745526682819913285365026635788671561404397648934665350866292350705635947524140070318706696547545792360608425610493090618510770172569573995019634163504596711110012367117583966491656811555239070166013649068670708351828251255900004105615566846026096555258552422180645987503378911029362388863093047258794195935756999114947960237945784825030172397110631571782032040211620122912494984747542059924815788427703150167443526649165701566733249486601764133487085729159395490275317001487159728766724981177493337899350080205756610678840239962389380268325397499132947631611562688455407373604980501966311810651488229631584417097028329321971339798258509682193977578908235925088666174337760685357809887682125159581812449751072381765268952972956610177579022730234740845904997260668041460678925132653029489366433519798013873895162911065054087051294906604464999027025497540739523636374219042678707019125988487591002806829625326167572996539414585733290631183253009970316701662405251845864687602191196689563913502721863461112794481600296322054432073725341436953837022286596288108881463124462043948398452916689007903483846359022580081391568623668889311007485578812393299024373816230121917949873039744818697751340151127688686591197129654301029709771024141648803946343359135144164409284411404157786247156165359936448741889440773194057238523521833834271366196722163594877411650202391902196859484790551780993658845932318511220823022634045195850572020748378871031167848104393667483971174221518060255927551075671359692626081606940786367731954627443752126665569825929451865373158845975628175052307712030614067491097735082596025269914675364950039492206129325913042684991426284339322659318385496969908232243046698779380387907787456072615329104826345348649058693982417024707472787349318701892248120047653402268605514419291260420423368946199698838984556153190273271064032911382226698226933368496156171274102397661898448498244414596531261699121234660785987071588111000572475457795171364529147062166802983249019993297379172633064782522725242843687789265070960594382559799249994087563504003904685368967782910608609083144281857215137892062434438979959491704339610028455592301519823888292206548733981504651845894281385781498321021022443000699644549198645527674391947893746369294290561077758514749918041047544232241479132646065230513306969822822065481293349926558446507918098302418430397865856008466652506025241707932761096921236157583442688700625613556949151196855885358397569535436133168933002157624536629600333220453645149920655504422210104951402160412479007224308738546676360143628958445049625011222530366750666238097526580759671571842468620343671968072655496967848519162235578807028467828942208427979963268432819561230532320724326340124971874277125552524093756127524541333671223917224484041720451411614747159137238873423763058677793272996271623009797030859893921833260996132538759518109133851151060914670853368074266770177365480225851403345757327178372247987184673379731843728420587611086385634467880799972234084469130915298304670638970881451709455572167144956371032473841273123996717621628135747139535244686424888928587347266526831743605089600479211591723936857507076665115953976345683403070020471540255625579599260489463299188736722284811391203764074280730253615889323803012467744483142833922787253337636021431785814090213001642343255005024683026731319260353435381210189479155079550048087050241105444279950094230820171376130203436739925109693264423168146348681199832778813981753013313457961427354404283416722310443987363219287697535879690387141176149245585966064773756078107883678780462615826816959642406160753494149132612439378470129765821498385626005042444794231321228582884538439837155839826244795399461230813987472208174015554562236494037672522206300831336229255234921518442819482127046813290976418674039947525774331806093368316267838811444160849321186374480880922924589668705069781065269400972629347587629389821798345510612643740083341141215886922283907385830022707794512489641567067350294147006200253594350126034880256194279193928996728906808216591691837347736867934089713077475668329365850149617156984440799005174624958974645801392052380563196925797682246599976486839962224994044436364997742360549413075286842678300316527528924111725275768370297776081541049266193649613490978062452841226920605061299850682375068092899555896951199011457735594508829318472373743494165395418272598579721723118887293670212298439844578361886966167945348421643482879943960915256989095422223376310446179850157232605316539716304598525407620953220076534366905692180867375098093596868122870372733077323345730767713081748864895723272186358252880522003437950414193412873577696790053646109833750214038842743502185909828229921242744488760653973407671165037767957225322593345493968986524942491204923057127944974765953899772699048231766033901350901244567294948778727561138206959496638974997935724430084588186506859167867492357667079238337081697726010234291744312081292937242410841817426732680347791028469652381891729757280816273062555581487584378157743198116420114441936551643793202743422344483964531639644626562289672997255800646699107574007248798181664081875473944036692771561957141731882539850989769810588602950904487689040629340279957466459078124729627199792804812139117610571309227724171397909576179691478821575625743412999265890660018651459884730922889845699220319211316054052185881272286216354998994726186366317826100827918042976976246807173572934683922632853101993919902046150374742708102650883392490950499809103998954213854318385316778541982488923022284222431782909517195573543092161107540387550597882096852962376904754001101138654824471254536275711521355319823119804082265824218931806676063569940152499703262667336327838898519804304823206097430377138377792986434485588428107261257146019461614811325976232184467225485510096224534768136364298360514581124617666002316170427081952854805314495123613787180129262888871793615936780416897775117624966178350807484635375181018617285064933604504667752795694896109232035630063453293802867692298543411714147643694145924641712002960208201515118672626537093876195103090749800524245490517642750799877788320829017260539962554359208586623540155939612285437508483512725659599510345767383180457875158915599782573935953441225994331718368472203975174356557220306684247648072757882380810765597329477901493917901971646032611400057822026984630250723189956181135113841427638835788641973472669446194475669942552029792504083787650644998679359106231262762697101159077164421371918214451143397967283924928550627547541074288053750177336502652892114374901849769764687395070134741195880852996564632085249412154017337456569122558336952289394058510552385328399316279495417487262643925307247732612402846253432782505715402591616974626879275186275378976055149409511679695412421545616191526788876961654017491664352343503069724231859572116975214401629943974135597483853449370400935514485346681684681536383558878304185025150242211928725290463999150269619881032897828773557650566654419982963663682797224765234635194624072658405005640711631953455435060360010574057189802917994595243493830668269321022432177671684150078558906528289080447960775754792824217052036165095386028670979128776520587516694130661003331070127246940340747088128604716947367185944132091094214304098383467492965574652110362109751338914265773540521305200894480601965763200266125896852363780456560464552425547589356376413384568851033226669400362061193575896103900047193905507076539792014246581649017770498581592395398034451493495854787041584369945612137106545071808837492871497050429855871983803740293239076562885353795448554363131201625624095775170479881836855755202421569551079700499945911446759606937990050603199788573130672362920430309403249982953219971912609339176051128101825314017746831652071960530361848044626377891105316923270298074131848395550059087316413569670446676867688418926772783714154140808089994025171444824470299046493740333324790077711898842532277221178294594572146083907877081567237836460978215368904637230760151298138951766759062144110225520621201059617062195339754404584332357339798515232891850321776315318747223557857935652789892503760116169217150661898560997806113972721223919825238572054505880357916470347534751363753198653237355292849948446505660670140140552208327090770938639595727390401311250202794692097748117698632194525190402907017713357382843639011192751299336319826961753258970694094621056550007286791494505692259461832489539698695734899542361350060497810815284952409011423827747909734965169168793142421007019288100300595168817158774866107848125458637982750067278907593891105939600394585785219199555742719575300535261443691693334288986402346477746636259537461502139046806668244575541634323540330737877936020088612835681693141429089641864764346477780591400108415965574397524679553261201954168562708368011158509888686764136962019192382349936892773626291436698686546558064244545782093321324946781914570415188466324675793797881483667804651731379655962222113231180531414334955667931442531230790910223272339157830828941049545451205547618516279559493275557312938152779322054568367676878152633782422549941768106332927367681342397217898372569299773125640194408312231895598511861830763104322032016555325973497696875825274013270977453487343820500461731761285251879912078017589121972830108428572095273839118330218550676823590838196725435169119447199281644467196205744248099370751539057345696089707274195012240790308464461834958780502647506639066234042757170236033725970560252363270541290484527656188751527664133505490155834756696084602583011429456356678453441124503162530415056213283816253825287788564357445114548348225285042716183670319862696141485025787965734447114612715693268771050214632019598228227654587716832243724570723567467068841458576765922676646414307977412824390201456029846237835413338751052683387058463341105263840828554335551976988681848982369440567695095838892283966561069709358746646518867413666665872430747683485068662905070361704415780938195617776067059635776690005168706982907837533218009794395561045627833021143494492420797040242448131547171229278982612482112719574041121920263548787071064489938792349823531041758089654113765021560506759943652045037687532989001059565946529359802245388993567532492821895160077520132008664713379527251039734415446948741354391140839604187473739482739643863274089851834269006754134665502167064428528706114641378351878745586708682989248585154655391654017797533107805126034010818183730852951247697767907969512906880800958832896558768075656763103384161243178722514021505046429114733185522934608811533115090478623035988350599417533369298009199703356917369439751271175596856634145420045007240459743050352665281376478561530532350639108901401868397168561021002176387664576696580086053037109420852054460716849459937687132289882892280894356821397061616593308005994743478803996114427207162606623026010078745464764692624870254436730467105699172395353103745155222111422897491896461013459729066122811474869172184895649093545011934727722806115970938221722070735892136449617433301416133351647129619118212519740071461559313032020647143819159687825941381367101158017415112894158766747123399661234657505835951276401882414400626400267522631900390217334685352797965355681385376912694708851727774185802676739944882871605383534963601017376329174079174424081184205094721951895680370772584551704007132538920324774724617980499902075364922585307083685796011357213960480684334788662514699665610703051000765480915695735167807164740190045129141339373182447702712812684114245968333469501331973150920310991785064266934180135260015776416667693620339502852076099693365913750027760033170334940720604648884761627966364566236655339487275584800703781545792348598419131462806520306192579440865915061426782900474008391896024981193583094757035748565227704438572081240964969151777034837618250215404847588380688858876756012437443041157413051499465036479840906349545670232752397422756831949284567100415448557944541068710886368788874076623433597849525474301451371419441749800389732796862456062049443217460705725954790920426125050164848060142381091943230325244860778635471412332968948918232401422035394531052658029407695538231070979758761719297757543003902879072126195959711728326998751286802827461777301079404185530135362713414884967010618452742364918866208672181954971992759469246593562658219116573590335986756989686039208307162878425517805285991530836960710913537991392712872964309682722950002943404147175780835149955245583190123958576021303906288485621174066161418636065132076692862866906805407406081461645318093603094920418509525337305964277707118654032507348436217370363408522987385138245695128122563306831837992546922406658827141326890604440836459795475970899679719352013469777649331520063805960475740032595889785538009696347960117800105893930977502667261683117673000834773120637853169475171701455956859387993699540953882427097201896550296265579911340362208295428876283709799826598798508455952618479084772864022229384372928844874645183234733913640966800944895225375006014896822494949992746373722269796883463950315362074248997070986190288395266231280760515323045329717049960022786230980787898360781460314587138046228942618808384952726866770276248632793302577350000592164225381181355516991041507931471602071661671471866490192475056067725746086854959653036162771959963038913310657022608426370692177463140120250827003572170851259019167679884556568551766197289007175683434701538621529249115021471703477174580881407034330887761140128642150728703855152416327491250234369345425307884108952614314943343830767304051386183376179493669381422605323780256299856813646390506248112461403088122122213647649115100806206769826093892349029543010920928234105007438337914369207231115383342733707099271627307169763436568284118633815385565246527935932598273650125491969936028626980693189612680237246956242066732539905758815027059740337381369248194682021885199505876089224212747986885756101064769691154746980429936346816066364219721885858672775212522600845085026680141705915467343810376242943748542974519411006931768323714456402149736450500596594862557489315615959308446738335323388402694821731344187223909725209117617224035132587312484911315128089103980560529346530295021976346267237045827851384570044782031690271578704131351281632091590256718818692497523171768742525676422910999958904409629214578916276705543019057069673753691612476788581064357106219492940008466420756434769999612571649308596978421352456309449306493077117649218934643825773610629996085701935062875124337412485443464465724665250468125295436435710441842359231414718740868303863076773351238500602544096322206411518720248144737477076319966054966671665442313614575440716311294389849611626674707725234626107098401551001796505627269600437603826753850515143202273400619264212144073798913733564093615010720411895749880014535349927332375563103914890604534887099302734750089852864700916454914165783480226654638868371432190275790315915544032485860118324657069130172636455062397489359407505842389225809566838491856166702800414293917168947948106744717496350661191194800653227728229969830948975020413328444546907608152165830788551532040299019045312500380759766102979019273926257922132248266131219714895724442488178248212552641523301462231867893481185100099510107063214864116848979401272380680528080975506210529522863585439736881059027382222819692307037653543728648112729529045025361053173039518160527546388307562993751347828348246278939888043263186048034012022030560558905483636857082920160172894616304195391565506235256721095532926796886813041237716028999313773844755057233176742795422960490687780022950167450719722716313177925511089788773032676380309316669020069143202596840813892057254816717676429024351896521265309601356519905507242841735167184183670178513255903298114183848000049335448665318472185312830892787304392401247069785686188519607229134705478814480350539349169881018447055682530194843229105228254690340805825106539053699673418063249038691235786563186493233569153317577891340852700238559220559551933844704943367839511168540107347845681067159419589726750449714870843237106658046714445166031286461295176491789735886414554786862008863426240372713765560484777714814871795709002904546083752978308663445995766355600862828463719050120339493061311287643412733843621536352106133224893932945266797304728178351375219336277354419189556002668133080092190556620764040494178412108311120186606755060560865300819422687887641279387032470987014841927466214754273521325790247180739499233459141040944764870782123486147956495188391060577421552581792948417166057336461475319572847852748544199158643348143700112925698089217172551599494237462716562731354523234474789313000428129553537682226914203274614059711364581326737125417345039578962398304480956195376241309775675995892774833164663030753871877283450680917818578421062804841600121254310629437055267601062866154433865840251179811379660946455627670867666721844781996429347627871710139342617044113596102892884628876375534484322381611867664551033910390188165906312896732146011461004586832297487233121571789126403276622229085373572381923572132388538838043482443432852650153865793565351381593621672228110339939636033405824113529186374068240355442801353619429720103833425573427014974623839216586753837830148779269696908557234857451658831722405056047054272539819159722511245214890237932531062206583065126004847853195735801333788883325370244518577447977487546905558168962925004703603072246537683720820857625042221486214711174869646884933943804107001024132598923896591496019476096903544287514769345853575929381008376209795478418949695225774119788578269589597330529094688640951960089809437307615788682329567394841436023509891922803740165594952072207954109153435929526142776911714951405110098149699715738604054278522192309809180026423884004790865286048785142568985972855792991060424116912032096727123856353379209398082927616185040963817743769280286907372695582484118597429142108511838227704943098292674374119173379203644215600429439734203984200368159560555726803340043173925535866147718552997006023129280856277568281235369191839318289378479918819197079321414960448351019331224042002999666871224779517184184558441225789871309631731756466603086033658682044836556466623377419793055804583616971457780704927575555522328804384427386273173652893802538090771594973052322873594026222478846240216306248721787197496601081919762879995003682551721871398879696095720708202350093083736486523947036975146021424712191780692176432364440017909967640882069738061832815569461044731783375302638366683190895849287481573202993821323615420831389727011063382559491546754246479648095750320611729189698561035137430350135255792951719078108260807199186049912885784560355114251234708799315044993762672652734543281074858111851233104491176575807148158120472694055075735950862989792743413544649664940360126784337763913647488688276322379471006070007412413145451437741592582183577022749306066829791667080339943489177382234078888610735287847291246132215423306825303643217691836565479830936718489628926707878509360141582542365925038814142853732116005805632987484277033873816070769643004298396557527627046219443647804761203528563761432746047842553320384277528601462760448676496432792450158317463626235150255954763438801169785347984672963664989841387033145410533216324026189191339543843882034782888343606506057017381598137708922044511885165193890779301673511612027497469751747190148553890559877228184727120214916435002896942313540669402245391140708437689052528932988405941919676217111803311300682520799755959118635626029420223106574532341928029523487194497239009471754567262495650221563221967608369259190680077677555979096695037384079128695797840723799812996203789013125459669223957643657439829030397665066832235689461087064666930349029374012900550553568697525112952839153986630078940304563853450644915822725535339110578104830177761730522631600883563728248726116472786212692840006618443456202641712835873528855337178231541178982848826146700503037867623203438458161918090909969729906142914840098330309384358620662496438825560394559177011315101228165639355422730396259575092760498711012896952134517722519059000914304241122786958659794531041231811068375748673048553072254953362337464584794131022553262988037259753948153963002440898300375061923582506581280158643664541798620072190406819557010821306092701099644284813039102343044000611820271570910359427772439241255431897269881945790701534482442528257733208654838833553918189459137980961550075359230874054901094003303751239354785449592039626568313721562884651909460937289636804540628049160303278702778180213982279922721899507808634945530255710980948492824176130311727364858840147866549662790200173048690071571931220054242416024857243493472827859796263143282386914790208753154415217535629480242345386213156950990280908031951709485587350745513076296594235137460047074959990777797365877061719640331770463972726831362727609707585612837842869250768781215225990794286463766982937658208801662146773699386326779211389388057106897254554563814942575668248634946878546479739394654657400682836360222086391456340103387359493390690218715352037377873096884132492582917921682215230587380913055330337572434917884128420759608590263382477253763806789578348843121896527548498245541133262036227958214386305107304617305500065601465973598742937207180674735758289864934485672545413732580799011635218429647254766164194971548431807946980159316489546046061987532354809865552005617978260511997980221109106631729812986444330118328654703079262814764804300700942540191150127523286576132452905822745491015370183227873056157199227030673830441355615260318655846638676412789029219735212997898044007190724667567500375092089482046222035347501334494271834589407744639162908273045778905083497555325670990245930517171460811092610834901347454494418674985385419271683839580250990237478944870682730597115764923274988171300736140124430873060643788441104913825836464351417407468687667250144182229340341893393683239244739690798009148499504300463533541761296438227253636642252743222066858077070313919266008412793720144224588998613734518239720620362406816937275018417429299953651469946087055566459138012233545094680259810174091837200910547065258046595820179721668250931821846184068785263847549647525184333671495029494994580597706434444657465816061147356371681786808361869322692100245316438816253883721365570924279994562599395456943336935655981959777751684843931844614562102122341750323330528918429724563528722500522731161448095261816288914540391039904009412666891893056849699858459125966305449457281017749996725116474074025240548292715816820554139098671583528844369685803465011915922959452669812532480970740352253048089156745511528894991653293450771994907393701905866572570065018388478859088991264623317882907706711987790526733692539186589710863122017456232194989721360331512928901729360460047577601246797425584072836009727261706985945742981018139612669331012592626047438690793152459267788003809953773906953031416817487468148316047744135691934138240338989430910342727304771424486069037995627460041071698326064322726239299088943716500969352393410982470494885624143729429690920502251983304966058922398456815325402859175294595354783757811026445181349114432702901549868202052669700494703063538363750268774248485444427959972151471420406489199088195119794653172559876116397260194122016499681558277519424039362653152322080568299860530750933086100906630224214711997230444794194161455239144220039978804027177837670440316458115900065794433156268409932893342508197626073054084779811217945534117007065840530107966863777235167716386642356211148732671482828586159429434446938363041173199889412791016710830344550302073626276083585434001316302389062753963483814727896265438902097895321777300745227276823895012475289049278925226751036313898048287364149655094570359991409487205181654859032629814150101085156814971266506178607265167222202202612183187130796151521042069459977217535640481846107815202935706458594456289016367570030290028507618324020941266762849328675339351300694020154322701720765601470298480799204084608267858640947239098920802763247870561701051347360250868995900896027599876375588695281698213272023786247913198781588227534975888652341355649906300291287088618525918757371054982243158515710961436964226749626697910484717082450372096510764916060187132662400960510172912435870678756217372046548965466870758972434493108111363663085673790983456554037271434612952683805570677612562758801363183976450502178879995714065694654834806653755688500841704810771934446509864520755321381147704788014239138325510118157156816222220552552577405334496141640569928954987636580973920002212421656237748312074351240903889070429993837699986447573170338520770771885619693621523643981132695092501773536519272574971298573207912628458043926401745564267385024597605964480170928171403181228887408497153020759017552785669173743793471487472523838052570687958133916924217387409601597041329273903768146495500850538363409420680261156545437444901396796684944148503438188380523848701754476641939697591016483558651332124740677402455230111361519813098574144473279383347723511767928360882691642327639902445117922357884890651612100359727071891145498377715618730272086830555907323975517707103087058512921002131950139681877412264806820020818021401808438702847854603516848657073606659272519654352248911617311868947183407519729527083856971971805971418355623518743139347309434912830055692884078514255938008901887246730537508284881302524022233601924690487927675579457252316808673651634898837426630704450546390021596648289981154223478265800782448856312242526881319667964845754845152760628232989266087353160997118707486473116165347218955331979927063646243904276334344012357182275616552467052781446516404656033682866969326307545079161497017439822368858097129391268698159784154115413547414901582298870162947091854167936367963677034443153507336756788322610029870278071726634575663637290395607569108762668365096137050208302308876967575627045043475795711798850849247986930606775940816582711139478550360262168877303724710710229767415924145800586828991434655560345221484215103785419236635807139377699881109461641241552714867555528587688458218443442895792812317561415277907366299060418908248869277087537563250921510756282561394645326824558212736112953412030522045365932994679981117456940632884931984201608688143349933415098469084463244332559618257013615546498566497535231904884914173022798694380167314677741363328714039124277854367249210033955881913372016833500014334143819705957565579685364770062369721244742037343783934115241857160019286862423315642951335681481230574950815638343521964442001247174238881186454842560463682042198953827998785819506250377577464268167221548942535866078721896290725291854586792286427119137567793884424368710871061059480336928035430702768649329775873624262783915700088698515888728884548770442481451027708639725971724608637170790162685551208039210128144676304581136258434047553553118663802790149443184563499971162919801365971095655643183755595268636787917715278732375880451964903844487916809658933206199424240637530919219049179970684754480856428953350114485206427285458545494701325967886088132668378526965209664273420220931891316377676021922727933666430680915454603214119112651023011857712547027571059318533773447852056624296702568559207789833514468456820396178942536730182368834435912883252434224411699974745206029026548356345055813824151945938981284187640865947826332692673354284401773427261907461482623880114797924628256217780886192320468421469292221688244651280354773147025591614053582671810040375383728283539315954249619218198370090230554104787430738985874251885056449954344894821131165903279124001230484528316135759939526367571726437664716655301671239921599726249953660674366795518084916541815993635222170263553239453063418567704830254259702282198801107898363058253534836437904643036728181192169549198631172640063000154642599371111345174302671230799252902196618098267839277513611568616540582626725991362814991120096293083622305723306988932639318254744929252671689054798765595184418868726256762924454044710252757902985025006305255755475296529358104240326225867610071853655326589275067837364145066260945176352552414753787732565061073327335866478898713331856108484485830065926412515995516870819813129572998657074700878919748175585896587673127871551626457390325770781753877147654588301149699367146221134824058768604273546925458806391639286413147461050324714931091088379878771489268628905242701965908349479104543901781720938003752977510534712729262312740308462714748316913503205288608476238685910762755289849132110032310090618619432436239314433315931333319355201542834698713501768143428286742460495994176588673447935717317712395251077800176183334674948486141270900108248504309565543875169202917065790410963984954146934805567155586592712583805827248540771471930401424937298938400168696957880938695755835345413649532487711649965638089416359926892241931597530411073745951188522805246527427291244061949410536116271161525442723111541033162650625876019545671629654442603656051153927214225365312931826938981625286903892546853365216026580204681472476923045036001192221111302480254388051602577835236842559072017254958791463502582618309583381233120428731963011365733210691538818787462013037615440104939317052159551750783533770515724161630319899220041432119762817092591700779679355416654461685909172991232324796000660731268269387388624525484534730630481814943400500924409605012202310537939978701919066259717086321922257993083737882057743424682660159246765986319114010844344574961000803729463664669399010570717923606339533470995465596684230710292338096492048735837344786990919422347077225565856851261629412588320268453289444584535082070038752303878007224288156565540752357693314623505380250884483833550445189218052354158062104587604692692344935377768121315748586293474170059680763257746332837287042857242081065569933953342944837334691651661117921671261651458942910185124788846784792379754439228749261057708078963974934029947401349231392031078187280487373379011881590760068946203428068921085979677325370682257596837828389246872004954905071346513490661742509077532600400859726387790473852910003645945167179386207779928859143954980582427733236850975507984867201612268979237929393075918044861070064980817053046701326318478693670855330830683127390151793782578720994979359034750175032199131589437241351999082300805280211010361868704916670212204387582941639723825791345404738571800119562833845560866766498886220414984191222890242612209531783221577385037629699972998970723432731514651449030370870216171042673518681602987407489055961349034131293785478222238768902686399778041216695578130822202719045150978212445211344805060226885473208880687717130258517838870251717518867266475879228527177812643818891493875423949902091323648365096369887248265847087754485482673334040358086716099651391155396770072311299122575908431020705436584653702687479218268561716610897538892764985852851661737308254878669240803907413880578070156400341688062220516917821758912702932085073852032615374819385076228711750940828384614217790534513382476048217521537063220226048523011850615808935084049417155948801124239029899755261464406730384488486472551490508718226511040676308524517087359631796203795269824048316059629700224526761717793824790646797556799947033417625833013737391002553742979209824730728124205512299297353195651459135213687003115435155434650594440692313253475846299724359268114895925990534812800834158275466975287726436703480705124403951204973436174581558710374324438956337379674810925772110930841531455997476995548164004016005309933135436923539495901874738708061857641800332732710403802822542686040509447700551278239743843012830824313407806163794725597844218355953119183337410432155080957618942915805755812145001648922982963192989755790551789452981416701308684349044258445267996516280079765469487114065412711492345966033344218491591011478373287791625860763802624169098245116135426802607190936481452259047163919044959626529517929342588658904836016676433701006947149160805472491377969076684266221801216620215590334191423618896784075074882622500889997539255141857599620237690096396642361093234299624411206678778358756453948134440931161912604458001791930760573379628154533668486451165923394988646167109453586075143996722176013490224599901658354677261890021329730023230282524279700327404298666231776464808527739833627314271395775705701751988555587709762351580771586751036653612410669037304926747268639541419107168432337573256148203787207625104334467552790499004799396989994501103219607445942008667640521431729396187388095993534880001240049532019361715174971384111895176088439793777832160479679155902424369537903031322199384849377394530354092752632782117706469600168253810116992364509323830801641347709865726849863690401533143688467531303366722753231800489314366065555517244681456225524611292318192784036133128043581871417265618392373661613007771757638601479691624411679932354344909169329195977588912379787096715926411884509925937241045495453874696676727748828803599742197471384865336241373881111956284318353739055098429234769603762461466670003019592777177706826218076082097034751328457766638999374031124073492551363808938150867055360484745910012411831661089779626869812171705513548732683015891902408194748729167240902496497584098086443234135736585717958375562229135285152282957173283056198193870369298185465519993705745664027808425156522220752281821890734622316237208711142333225896144674462492463560382185847752401599460113677828967063640637699959202904949833821670831829308128294896024086036089425929199936339286121797966171133218458180732805837921303696560701681565944030896325865749577138030754683792166357630477802977876380855895541886170632910767106786674258401564613482299755959808973645524306182839124712401650674073668098881809939491483917875070843989805752212704515993869861816008388316721279035092201878780451443093604188010638718208257375201599970265250084255652345498777987152940191207169737005657234620395121328668531954708249795520260346431877445086835098171520183942186986627266643018978599251168883707500567162613772776455728470038410093859264880526827725661828894710724513662403841683897781388860797477645384516259379913809910163808009447795445999333621986048842686154763331879827652299893017511181829170697151976904985710182812723419871034687098234363328323302995605062607318931090858449705365896434136863474094479458214062588568967923465967436161038351332490805748606013926052909197957173948811193879537874086049502239213608502793483397807330056717310340268192180333617238721213076412176486752322246926949257084215721925566095878137925446498798161219794192265611734086743043210314289897141922572799676388382772938024049230106255401016235549702246519828152889865166425210322320976154088082599936740893048626927515489395387577774588563086983905581697031660799563469730986913418809333158056862929101447321155576133042110052266004988943053601251063431500061781338290200705716421728187597760826074259983855324529893890641479808407059749883681081180266859151542372469318505921303747927618688266975012308970341170175715292473767492136689848208205588671533364514581808852800679898239547342942460985058010153124260988219535182029287823765999929959315171692418906492553024161131905332779078431907051229178173673551093504562583174087378638129258798119832022039635205647127048900481526585392450312092555819154771986754780017152436483904526827526164576307469531611132361252657532594474291066501772516740821290503715475960178970845041255791880822960144200668300875705932481047271321639657060167717392142903986859488306787397293368276957519130371265450881379597959971093812447139498117211627891300750262302533813355696853950398968235551475034249083840552854102817140436986304858203135244123148158896525300073640122204782305848429473073680141469602274181151222462020380061860909293305788976074468638428122611400031869500382616225715050312098237168398436802445362506848415756512468973586324976839342557757112770925057079832218123106789930075961730734834651343400447494328697545962972591853081484092455315132744869879381488974933992867530887752209278730879746788515826435850990601146625417897504570802495527192312603064068185622391938539185422277589702922337894519295021769465503720606472098560091786421971053193591361886514370095686337782713950895748734235122379704808539663606985441520271555574856336110889944250749072827941331576397423209356737123481976058931467192354995021214795819937018637853118019934746828337395409416296044642465944590824237419951547633887552555234325568371782944246057595672005889191691241042460522134379795526682118972676326218923398403243005213605710091083154132136262724576921537546921556510979761564241804084309644627857178113507455237995003610146751766433990067709074404666983189490878046692832214428108620584357243497040187060024804529855736127146448386426276137810371333187288962041021925396569673658206457028133550523482204881036031258361596766206262896502696268261511019426319299518157490029490365098122885362369571495034035176719911341118902599336021332021786938729096234623471966396872062459779282689478250838037972388504910295002813991043513827707393136969180984872653253549887262310010323694350609914498634520557979008734854818195183881409130215902534675693966470130889942193937828456481687538058607408233640399996522075853202906266741495500011076468407523575685027700055284589491860363526287298111745516884446091921652759762376301708186091115465287643040176426635144687435993909071379131542225533735405193332750936175341778254380989973175230553764862696501254155416530985032534338921673271276867442685752235061124371387474363014525119768143767594502932517230832762704766903099840335700640715818896060706707990841081838710728516566927477603059499314283899263965531508759316303295272053830058100968436187193590734031585886675784888416416438832257445436003626122040042355084187895308131963677989581646543562456549502135961786508844934510823211554709097175917439697349834699278342966967211940920427807078054805219406417080925199935317139921245845802061206452957992261580142954007939514616618567233646807780996656350993877262913989652955483655882853169963715037539727328038462442992789232825939064199918425174907227284380813128773853320756957126842613268936936017631321890437948258894599372653218220949152430118610687708766691637028684808235097877981815732518832915358287681518881626494815306908065754724513440209171840095200526677615837046720325630274055300766356927542595347191468953550655574812493369158195117084595407873877585983544807847853911915495658650793726678811914687932261733844144587275276583224810298709999947168703888495925623606251825747875953291694152070631887914330947444817909882007068457483666049801002081378629890118285933882870059058596594199273946874521040690331214597323524504308498751490035899386390512818346744042809185275959134347938132087244696750702685625771901587121449511456620911020215540277071398501886118632244795227862201110506554468123144324508479853320382906822370997423687836411525867540730569340059146437678864579162454933815509823999898254531062963769442597044144209440729733975386443946650691070288353792864098144132206018480315970070868684879565073847738762357542824806368412626072785817573534420380864965354266828718055664508788448645027456888667401430475443208932693839874592601009937531282532222132865169481969595543927164681523173036836472518502897937752502017880052285061991419974189609053054294559690208787752796398628483408795573643768429192938394262195820379315828296804365701154114127097643990362841191360442538685819243044916283658395673082689849046750984319541466692037871921907382039058728243859406422432034711448502578564640079425690382089480825397151913109184720173403307460953603543715220565500579573945772847741403987709397227462554065140758909785600684609630289762912189381290089360757843285956904478404467326280667620060341400172472481320648564405796201125409448433963904779187145584313042698223223719627899622293962186599990505593574939868086759243967517345301898426463750955735799068017330555889546329347576092660643635216794103284080155001593752837935426861893942237210537074778015413997274264735564928800416011585554112085912562977345385305983628603889636317462743812810019825580051719276318061323287020399910231077205994959833600631245920573079351773510474234412316628084828271684345875966913350867929020488576183930676628657824011694935234484918582614336345863435049081033810007247198699895755710738248602772198233028580897117189899253816385857896794415996450883655914823070896697788894779656052185237569646301954891308832165487747241002555013405348244055997254390459120740403269123080483868639643603940863174541591194201157433455853367062029107249288354472072220196041763172547825029295151809413119201807181621437863629897552866881830942531026785159923253685905908565198786716805418537193776184320225464634052329100150240814727080713833848150139776054240621655985224421578737746908046781815555497456248422511993081886238122200859329717417057299713177528448399528331859372957773328786815213840603727857116002772166188324704452022053710222399105149293776407200469463936152714673084881546636558446319314394180012586518259368578807650057814026209403298167765045816922048791998370550102076542444450629770495694234715145214437501704077418170517829807441399925486874601791063710940202840936243532414832238225541789539913888889068470596935617591566933393228515312098865457666359589135213803244763897753189113475350509653838172761012068700195344577972605973102507640173835043713761391372968039247200571162641542841230835981457454549786065704877455947705538869279131397524709447648603288511209635983006272526807936152888925542363100848593638998975845653473631546476645265947812496151899848248603063910358739527346061458799794472471710310676398384746673223223570919353817130676655776751738210826454403918654068423852174172602285667479562775615610341146030788732807749625585667510297284818390291464082036760318475195288036664156429956341978244252139188646701042966674261648661892351770248422821609049797779281654457795280937538302165105991291367489456983172354862889684040381501792569670466054322883511332404208997263789427006694468163799299938270785891078904863618479521793130443434442544686971169963433779093945605646061259310606362180981277898213649659241603421079380061959654555287413293923712129749361370278466828753329560125730989013588886158733450864606484899726524173604272159674561297517468837159286394658242770382266542054803192505001690740519861679792058319523906779716212245371668452269979840116628050815743620526820145012745431029697405866066758777312929742742689531500280743316859468939817849237628795378453731925100731614043410225135606949305685688859043643214700975425613845802196016399881827874890510607318419510056811584476656982706103270474819145415947229902334579182905339947782131742748745698726179401260984693655116506696903783376768540275844924383235851340538621344188254868687808401337653769482553121058978030580031855754971212118477361701290235361147196663558979424862917344202139493512595538733572094079019294300523940989030598336383953174475383750835043495200250216618265245252373226496210313063317637481193543446339171841295530360132739619401152883312369481665737202635724380137722469934165385099856902349192556791583338281717202709087228454604398235067031145599296780562208168137824823572149502769236541351385071727171790345385511771830267640597905855444630260887907824057300513181874484959342426608550413711000434037186568091885167593998375909580236117027851852790333368114424612635972550035583250026506305289283152367736776737206302569741746983280663827903814255779744675408163539322929096241158337128540847460472146840001833081324211998595223167883900824250279571775602238128533935319662060157209460566176546411287942324643381701715129277792960743207201582850131467774546522636106890680225377717825333994985506120420137382492620706513553216148270215053134730037030952675039453758144784548371681152268653007458024010042781219650696470126549349470895439502660505440772281471559449187013865540125846205782017481029529027289290365715470911489218278576185673032336222199463752425429952799854775568355861227400604098483594497836768865058116203214662421665393746838019500450776145959393136931480028005268989598547810054051417437597288623207900939389741949037113621357769935559407213481577222916951110049995046755561132411802878990149965628571182177289533690670860615379886054979764199887483247754900964637105871450934142888952887157261952181353845314712854557600309483347832291152773464779843759666698966485350992665791269801476075448107437395153913422310087527811904440480365281979920475925039374251299141833170321237949658804031458076781588185662236871287288215763710618161916655311673291337717511538693625670442266774326704609222942640704917452404912378843801263081434382699629399658227902244358367716367280749955281759482453063670931828919477019539557445755609350473048321333294858326266507347169566663272945749597144658018631331620979159740703893440933118158459802630474642226700348514757278443062063284023452338285924162865973909317040246233387882750336040519605342082985703962224984668314444633959561879391738590452793222511673758368438414203242384070862397250621296662054302214259109475856966186516902543961792554483336025289319219225344850524442755925885681596621216615315018871088132750027820486458305031021162620985640625853516901432576374468340403007437369005001885679268708518695535388262349247530538913911812379521038034330447037345276726798040045079795546819032025377218459050833240602906532958944374125632867543946043225736631310302476662399945693058745916396347619669517906990490785046815500609754039575911921753617991854067868070268215653463877985532388325149432926071100173566385468083377727954286390703900245563506896552209956473256044693271989289262209685661746444143478922494160260679061169184867060769060704751161978852093334142968374233098197758403682780205727069937200503945922884170711032712483212585455137144004521521372605272804439072777333138614828402721140681583940474614109458718390447338960130068366040376978455706435716202587719450864211522535631828673703318413038211498045032211565327695967155545149289553031876032445073548225631629317076814820275140073999270181500939138839501749547244178564353214815959193402236299458737308733793492728028643765920554613895645016357328949792689018428775710252815554330712680748774989885523020767251773076719293546746455596330844937605833581535476775163035012706204019302923407603709836641126039327365906707028737288632367468318105875204705386714163617322512733509157431186069290893018490688605102046712165731848440900914677281038619866545349955327730535629291604058802046382568341961340757369010993726886248423401965214391244052931591590994617640600151649864293514310557966921522027558976249052869627436102452350780752357140222685015566547987733287824604385702200784908801207983553020516523999790981048383749872204589861454719495471466297635210163172402618536990767463689525025546970680824136022759721588294613931690800821736078774788702957140417498362695380510336643733759624212013996454349566842304895828148055277803580571230397447177345827666677758948115963180231232580954345627553108312226634996415568771676319473130816085908622611161989901824275779430738808798591889644077496338168775178108128587230401393325017403733595955119135380633147998813358193656110389436518185585325043298740074983024024626380467350366618448975364729896564488912345214994720946148621016475471396510260825789788975878662305675244397612715477944406008689682490443921251903361871311298409019746942578114465380664394589110932791941369970474338069598565862018346680951910113153153164480788476213985433535042022879092752662513404280528977697735502039507004695205875414662719003826694477058816027093020662304115770949651150692109381720564319118563174966590241169547778522800255240101480199797065294636900353970877962244261562013948715579315394665858508709234944549093888989954987105041427653948329397844184747747113548277562418504205615286891514024263415820897266395968257392203201840139130597004269500546447448803472711321544658903287634520720650752296544615937052101396138176817192889904531246698108932458989827649192152799799438801269201711611226805945814228770861360530157150675513599878125978233211893610057771147645892452870998168003957534092973834176210801782421874881904681143571647145260171464101560293302292153063116414830396948464113375842684235205122395302006058251290957779669418899551078463203449542379041336643123093597616269491952894153033155286254055059476205676240222687719357038859784389734256366659794918851012170996925107654377471779419242418176258147573067619247184788090850309047113844525725002934262476775296036905862212492086315255196036295419394025319885707182254456560471002032902479248962574121713409955881957785396841753639529062818633304624289537212891095063800642162172404397976185032922433088789182620377182367654896729038158122123453517857051902764259012207537831297448557769328503415876499395726290279431843156039647442049504895052929461467016912500243413515943566672395237132915225872330811043981031430085365714017102073046692785677710159137691005386738748667846029396930132408497559751825968145661879671257097107684335757869627718316444554312158224599901710836377547942494751653772320302633581206246631037663947500445697872083759787483091849766763461243974632971179081656531289344878560522744298374021351906158601934071727872832504659345420721938130988774795070847533688768412334565497811896773615793184089319360906636973745466903027953194149353052412848680678832615009999728358057914527444453374263303942013398800170323270689621177804436755580742883844042507866719814171226724067663430678674010669515057827222578043889367559331288687440985396051781879258020552499762805311985395692361670062937612509238183251595802034391275735785888497494161196951389705430501494259742271381619768617180347489501208498416789979849933865961283295471118430636494904930776521665902418747926265365972037099602083865818339436296751066406841287451417885084083304678182658695662640799633176669645375496578113660744581970590807815595144100498239786468943100988641829308198590016828819143601140571301842752144619128312175124985315026421862370810050553167461134309939568572792197653104098557268431092038437077759383040433173304431694016863143445481605167639262450643315341293419029037589176265687320412763475042785428978381550400366110125052365414567047336916599990793921169165262174320557837560572304303902717788257120115107706486748054899738438224244382233374444776878690086302411417970480140616428986027040835876323034817370807450983151699660281392640114404486970996193243910455587667109458321821560636627835964310724262770044369663109564495365409787125488157817526142058889591312333008850271630346096395295929781671869639993184676303263570639893945314695096971110465919299498100420579789986557824079637296639153021490397815705028603148300521991722852681069624029214871880617419561195542346311793852457453436054097389057164712646029089469097126454073674704671787817370504068748406999224519949547983282521472740857607150902445358469224576571513182449197618920695779683000429752156165068415798225203407591838441641782764237117237315772333521866165194099689853242104561725866482044990596145498018099631047917647730610325209587629741771116590766631752460025191837987577833938469137294701013366490358303106654629205973262331218385769144972065538656580850890807266276984004225112306928269541198734269945462992461399656865743491451706893417787039256644978557917808430831704105790011460878181666640589867853466646340937730160201807791388546482551888295021997480615217127858517004748124733365168588596910095776574574564374392585941298492352782263636883153021557028595570589599518449068181920548819332595951829256068022791850556698725987237408489256223706573653301974632894429682926003906468502518409352087483439320324995172992823164256820668390451030198481399334329158788571198045962665778890994582075562800762788164414428462974599762873851049584715732580852402779914725464232265044192410143127004915806741320998707264907205535168805572474701240882441298138971822293118596204979905602435643882787324047282543958410100324416857499881569044199301896647233803990245176623204723632974504491834010599996825883838555717933460160029622073190075700576980549908651321210911619409987133765780718681553275065735931896781597947401334550159405540909686963586927247961647767511772181532579802807417068178758769351455282106582759736733614395163427058065681677447422612539659355038413863245262454802958447801487331519181309370142532731251527374252402699767302819187548326254815650509307012441330935506820992460212220960020960425200534452462594559582956344281181998190989497845096664310273217961152849438259316906797859232608418513111479382188623522327910841558616287561538640086162841202421117840146842573382359324114271465328113193611095986125029682843833218926584139936135948578979490764266824292830718515118036041478438595102673598667249398616007195441350090525389990325551004904708949246299196630021361252658628038592855933490544419252023121443046123998068809988867423762285988497698528622119221079538856515389700396819680112804794810147583731012928400249799769515091866580026866862544940740700233111802424550873821786554340110337415801848689498024144786677313865166267352614678408857903608115239214845378482533085305890955376943738800180276409450309079717878628733696257766590512476302373059909482815880672826060615043623562396248672834986674735588515907126705099601167514824253866365617201781546817678430880334957574937719764952837146628794608637157862448083699646669918134797643027443716616577193349635998492294230811453323253106030680473439978637457539014756868079887535632151625679820396972902957449650973856324873558434514306644722915769514668494205098685180502796930431915576211009410756728093022616338265724252454770550018497194563789307148458671987136479559203513358416777088975269593545011258773842766543046016115695998182961103362126877193429067761014741304422518038908478317247502781297102525489940934385914986417385819661468026640922699812528583896823849448825083243832465947705481263869987696898645643512565803338083027755117035387397056057431324891549868005311583141412650232104854078591934747592040989721080167462608738891110286788586639341535771271914559980234777322901114961935318407767162430681755471404444165885363362665126615755721327827284457575455375996857332684987613599604772576545820276237310241360205351670777524405075224555063648635072491089200249244517374285473591867228160824277596769328410197995924308292050395574614702028116096793606893050387712285654378455582144867502286494370133393516474558578607260085591787940913505412416105357363377281019425048812568518587523069856619740163878740501056867573214236513229496600979103226246471298185924374762609566897144928531295495188145199876814373907882184054561492580499614202676339732572865210116674217430276202603777810560289737222762042414501031069174346804627693085559855698389874682666794235730393003860204580250219924801104814795634739360007802197543320329726668313580270102820908970217613497980911161991952856508608906438227627037096985449640100960141709480558080408789067789336750956751102189968376342802342603313755568799179265227724178515586791064224982856637690471053736773042655635383846333406192201825818464856211717780949244632795338706488278912805577350301771552569710908153858862912106469330011829114971991712058879752052019387679658313989547557766375216517370582386638594930630767048758400919672226908478148556176926570291456690852449923202551889514190401608019604966863854996117104780564159337053306502948486293601991402819138657384060878670855651553687760434665988290615154784901459127034797971617994984192086113583378300680995438464088522108688818890617774203181906644676226338953789889378633858068705688076115264929822224728122683755365505426813756785416879183735791288226862408807023109801749453322141758556979351243833537615235288666390019462735896024622384844883200781740923905702308210539031053067554892456139298484291865803038567462404431924728392448643714020962738499156326353143214261578760771545809956478243857276304480410219109166120479671498617418269746074306710693862380103840082469388705796968646273142014630718275291374460286639846857152220212853308768000438025127643064587776256415058114952616429403983557613892061746264102707606285766040644162637171130959705469201975066617705248764823387562478951285419337451792536444662526499251922484996267906989666399682492109645731331071143974968127742396949795387694581138365509524032127538765036126534603217089145154855123548857758618704357298640495186507333384715581170216348915815843961393708981232616419070790547566926994416460291211061905055277263634881721331635875554822800623914632803086436460775870300015117732264954536676010347427197845120919610471515028245704987595923690255558341691142029437775147537623101309602541766979577208245194298325209345043354582171181951386996336748856160863307462284580454948710807937283450497803504343756296341889384405260223408758285900995936358496418684766112706876335096959577974428104737938391011509508360935898329498314929378555082369065730227260191821779962017728940643282485219732430819897795280568174423197015565476004326243189505111275483633906382499683013880350031448838492235312605793252182836776887789034048176751271345836765771018808342003094734664572732413766551872785993958874589855529766482685643652943211068404496522921939272838483508552460879454942226585699400439547572473338468086167251667151387358773433505650551712844735535667706164403565960521837384663553584467683305196833328792932259555260153950916933624032476343263814832539285365155643911640051767477486399183244487004205685267928972332760580044929636000815432117373568956571701036063702000242489058550520664908803776069596302207936671737565296509694079238669743526513528692470686976643852468744182994268584787524164937615420426748330115810677903326351710563256283089614715417921118188959030804102393407021239767630282872757045598558566970244288624044189065729766001194430762800179369316275497731655355669819640533257708788048996780846467031025067885977239987312110765489076523631265791102560069261275286363333245288501153627888712026187191689099841516658828819799943578681928884517181582986769169722842018401154825374175921111373545559269081520658684155201944362111481455513990851426703094159919823497758444807863628564382113925655452102680190785871220490466334835813089642925783564716516280845390389257315811841414086037479844970493931971160876330326323259307865898278963361670646676742358655824468059623621655705531963425793325577796548289931406216579905927855229132055044114541982908016076853026724028775042119452065473154327238139976905275669860818763158432503838208066344140547426340979971089518329741520371527557017465577615284068378474529862901022732227759583393069052462661366711367980678306253051503782430784059837166663438399124833562360401340886149924805456675770544260960707667705219650353788235972715089470626424712017867908135288185137034329341609420979960529059282678790765638405707755455829406364945333479871620069559242777084269498533843584905899450733660371619000089465337244377701987454476768046939636143180423729625972497826310516027213505466376886766988856625768936939063068368500276929775137348210139626644177323285419148689730193709733644346911532648821701101211490149177818233981617701132834882897967682964960841543052689291607592448007528935563065672466473773671860547707574253244987179101965658570240802292954150963791516494635952901060646942419580714025747114080364382536995607583809877828438523799306602154678381709318138927750435000156062701754013112434112604681161437223660069007671048423105701286855321900681162339462932647321650794981092583785805436889158429181921544655229788561078716690884460735136618702859930201925233286882095446204920547372989142473402013088888875710636527574379325723233916080079398677246185261332464139334513758635734252981000304934413953502229124622093681866499018197652524298380338656325368180338032277120684347540956553503510629201114281763102994378341085188842318696572226727539270057703655036803288948497645801450804144074240034910683319727986603020866640138699596102425027214720862987456559178254377686785212120159652715181511458911929813510173994829286267864510135086940436954626633172586104037700846359932376188793161234078311734130853650141344184047626753811981085325355382760087006947014695382354935788010643023024205066939013306762208271225723746609368959454512564382244761576987453258698319012908105337323041721371170093685233955459269295833146137610325708733499503745698543319595704550856079986366879883984686352549841790977150220735435537068520794258284502733585934251608601701558623635167561031396916606046416438853198855848115196012072579395758493318485114739149825780210543070342479006965001587723953641274206941623496439093487231280278147127946334390155387698872726854179207454762898079386351909333902499970131831417360276075213053971995512906909734667526072966136524676035005789969777502175638416516356307960402740271558482361048381419755571081087781376893399213604371199526952275984829136374207548744330123703356452856828207012020495108155660021207518701213483803846088295615494643740832151423273355004892997704853060845239108756928293155775345766274393346590946303780467095078819221055074255078192833051123830786815311120544623685562975752044430659100233879235109282739646148396293408293323140462492262347391206107020811135616339621499311540393217329646254971659282528763510143903767460175875357780287226378317571384637497771869639711756828977044889006834051162546674862893943606062587500321215682370639946475550066512520114714120190909608148383712449243486437798005903487418052169300391604182720157333136845199645691038452330409164279505781108464990537902119252382785755551328244353757301062442879107983766397175940753976666108678262442570355683510224225210161235974456801887579932455076807839618742913551857132569798531244417113917376685724013930443367033541677595288683638911183670488585479295291696768630878676731782795737380379858898774918359914652129109966574957415429273600899024458954470503254345527184466843310611169029440152538846538789604429084818039933612809115269156455446698772792983886278817972758890198495773257149219464933648246982612450579018772152400134157643704216670729653837625554311583845829015128570579631642433251447139397329415494110764199699743987650592635523624050587421521073994391681914407649413528757503960323099365036195864504778149269353781243034564369838318473286250114483803363572299856958839219594091052891125732940707725853045112440136695558281359528229830403913100592684655462690296525866479078650378004791163801232117130760830372388495166706443385622703677938924784738494947302225689355176283574830868184599882114539889541409835560968159119639697060404507513566680391838847912629820475848693771832210299565156756347012765883817274180439291832276655220238384167638895531950219609779757062697250870294329940988166905054617909161735338374893832997299830896949373630034073848735193628753766003323842732733674168043699659895188919040459842504153887808832042568341867532677436419568153170728787349198142526457319622482074886389725737913779715893428795087825311537623738990733106033053687581929631690520879832813723967266814249413243859056664605457635386839414218967283446436303147920435241821065351646562963793945510580995303460810375967982367261952561097574606378011223757095741431715087824398163887264526152286149018964134667631182174626913128208243807663360543654150172477242900579940015192380877404318433574514492727315006759544464837317669935926070510023963813852140359926390890072347975295629012461552027414704969360685845746345809729155991838939021204472813580663340242761505027886432742496127405383323646511917309720983596255042758614110480065237532454064992999418182022681102336003005248160595150520651735824647165883011853569782428075388174120751185516734572470674125938256680408078829357760160553004393282821693544377914845995312411770965446747059337542030390793976688838716994891885018228754562456308543046608641858560889609676894048650711328346210112304954211468302860076310804637240072569689263151696993804341783546268185477062297418070133537775635079780515762545189035089288571463435709600316592550904807534368254701369611084996501702124770369348471846162215720037027138969837248182791534099878029113394551397381472787173019117059393020081473069615234432489370415789060477603185236296025753301216553561884791040473060393692739177974880599262758713004256644682755435081193617019958333943672202810313162318056847566426932876636449379794228403953988368570915715056229204636189091294818289575648893109207745577288154843854156915031889723035948104876217655108635033818352041632292671564943793834660327629580232673228741450226681625744177832331291738039944660308456084690184264820501222362650349847432483829017007504011117916893385208241423635672479454638599407753377839600655508979926438422066327137390514802884823184209790132728245817689645627946732365305647081039472433882051022981354763199433518858258379011212391334728754587027782530698737860077761436396941497964209379925119988131763389070684557477233979701153244912588468633231546032549709833888268100642107067497556686233655497043204625067958041911206898823952288842845008200750207225950487610305755620754268471007112606039737025518619435371895483161733780618189753026762784581110140289824811359026720855409716785975854514305711377725304900312765047427894290689565658769005776487611704937858134793241250491990064771432215875808516614986048336027513292218189981368888316246967088689831295063305114288052228358035938972043412222034511828866945155203350160983431672154040528239848766411166075055765417179995588056170828034162352820112713223725513013601642688607076456289540801033701414796489935550318376840354175844268540252129110860074173148871701757686370835417685312684701369321274980692670817694838874591625734154716601709235554518198822096670164118734420170534109421127092461695474727742443739606567045325662997733333173222543247625525507625938063379532300354006501441495403916462834575809922883685789116180959187082772104537115531570122360951906030693563847747629137185217514007658573368185302415984166123219236074429427212157541613032106890532100170088192798207866700802888536358596862229945373540298217820209245789655225995289647503840456533441506565840195198508461350668577024960550369174694026484819262194243292259601229791746441505238757797197112229711312350744216711363061586955560827406562126860322569331950823562318350040323578053782760579219886251774939835267162333222490761168955405614354387314570716985454050441440533421527978166012045396769664032053596250075863054662107519550554631927372832188656511356560826513010909268291878557436074964645893320423263190041311079317462819061346476835025220716970955794455450784841273044430241560687813761993948363537872142595145136024751414831145624239649042374614370802138468259568641151520258282889473494077332731006644544763839842274526815343920106262556459340956323239118447678154360568338059415893460039592412703359639844144983167142364031984530139066163335496010272792362352146947313510136727133859382648757089049568395179389798049040979645503066182783311931110265322494419055843880747897459488016283596079660696621387322346470933847867744265474520996052704347408668904038043477654068145986865751955426505740101542299345256979279974956794867365200340876035974927004333337820942528766892606622080782271112972769468864660855538793868199863729820838263226507082557020181642473755544037338852556082702717317876407432294182224581275957391409122074671072558567539755600721048134771940639577403481426612451274741701531329110595992154622826326291916601045514900623683513582216225952367505127850464448313592459118429310438816767415188482146348286925997464102696387799322338640752967860696167720334559880131686541204158353480447736860396406402586789914506450943249072703579973767935638756501631428570113680965625308624504137822376275087127387079811423794954359950021556062370653663248653601334461980514641642193360581846302100486259592483613595424839661360082157475432000436827101854398452315322166980450582631986342141819109884732913707750630172011137170692871737480915424916426842056173817787058706291560569698635968890991542269369478147865971580994049891352301582509064834009140670053512433136842521792205118188315837653616884512981126898752462926113401664739473506422632399147159003721246197022960740898505476993156203247327140115116411435238032687382055953416412721106318969670551590994490695965288450082188222046602964911424323432105744699181175923838835726358180508697268278629574939299137019595361851173047941782847664190703876205915768043476445604752393072595239454355353866560572691318071676908526599399944920633318659432452129128835732425008370966742339906412302119126393279406817294930465545041267428530908972083671682581839635448610521438334788561440822293928870077743510207677333416826659830657151496369037171312336982108616768488352266958982155380747807634083450682817311199034337907089751883492333106147358510574955509826521664034274931981246134094803156894699355069470384161357657384033490411682998283844412750529969700997310853018292446418829546604676652923316397997869587586803320438741516933348516606414634540830662835058493256391652585810137019031538224300346490572460185250044323302638089496038724523660201656796111474551527972850649728343236836382072376168585516389821126064882458098965644450206132979173593724083535095904753887611479817723618955641430649349808961367821367433165832574659303963581574768634302739002988648473380164326328897290706522594483053850350960481576367015040640698434815775955592622571535213127492499487786354354694939825915527890403250127439701377053089819842559111687004781399341240856548776949705495330765588851008488606782704773738734571103641304351681590539515444389020251296012333633349210015358972252141575776876629803171749085336071851846889538224703692020100730348628350378098508282023723938642562504899411340480605228855342917435203224468405470603378865003299079782272805480673352440132445145024606203368792138753065880122910760213792021978846042635040004141178966527969048000873853590278110552264779123838587658234133141309425746580859690786708449427651682823544044146908516762544009434111711093352853880289814117426330018075865957533978618729913758009662072988796088910128637359508229370266101362584643828122410807865050132653034551557399133815280107569238273667317216942399296189009704289589423930005976739802939920551068660569739046880083717565934642488079347731817981100834008021597508628236459853968142304068703402434096079268347866972017440998240983672809961661339132398661689054070473734895789990789850837746732200825720720560434405077901432898012019904691057888369924122644217894572420112779587526383839538419864843295822061706992922082883174187213102313460227568990977220912831909397156002508960433167426915741434374935359335315700313701984824943257773144612945548367341030639023392090963930036679840727406486845605741321643022736705368152585458835726086628532088432011923552691398372064526566313096291965232886510936778850244557790059234194204732969227272595975614089396902021597086463068546498929888371165896962473104618912757447119426632654369060651942512992594067705680530878237359796666296237209219590432047228452883648722298279038400921978712257713750001665265747727716852961709373494278545576346895247948714940351359190420081537782996505465330180862882740453214094738147195359863035028397842999435844130717409285214026782145773273401511855716182040913701225223707263648721280590281759119452918666127731426244092673666009628113924490127002070990793024091865499186516713276622216954139733089883569489759089365028724301329463133530454416089734378494290816464906960026905136002454569601652722231962422261109473847009431907420860455095471828402785113735506869814295607087200385746579810682444688937308904040058218204309494950906746106545411231011886679739751958082466274131816488362753132014975847363317472634062940116433932293643563447187373932705676828683544287145768564050519140002054676099118125861026997960153036293957269895761069000698296886562187738353415127995111593152655679303771529238230385200527332211350213659363473268796297921385182566604875325867753182924997655025018782213386553870396494803295726650646178460282015156296439441111028780544463595916098561567343434533902475830327544045397068192262038119531163182371443680209332613573652031747550253802173318254632013231251581908225602378001212447728592874570504161216184681276353939011070132143590458550064062511457722707468443807814790667228851445563507503760521530194584556623900489791192604599694948651427393079870082080377379725593187674594978169829396742403992654053236143095931070093926371257190551260154668224365382003738056641563878425236411996771007422269020449451228860140562882782509869341761679108198269306639006779146625765089276954600540103182620873593409678790154917876625114917042200569489233901241388126170860587886855909236985844154925066459865326426346829422788099612065467439721009985019110920194097970341276869998033217352903552864849326023629304205901738757853330153540008486166472793714297555620489079209113253635778445730166831687943852142763055543261169941398743465535081208383624632603552907853517378363159577497029297269577736474010144733233584518690495004365023476393995174605197834008207445531533929792754227415946942901729593609128933773260304450322055685481699189183529630682467961193392605254535749861383294497037377878046495290236632379447019534565639415703016239047567224243702811457243177991582530950523820324699028961136078655969850708996495640487405640660540803761590429287601880121666662764010787874234692787526682279401835288055992005672418632388305492521924318218390023702561876470683663404090124289046316121141253407349746135146132989016626147443767605524455727936925436265970003408055371235484770713325639281260599749792445068140272869668767954858371690178753075625350990269261372899210830211402984412587186909342276669560676621992218447294384186877737767446746651215128420111010996372461417900922545128709264510536350571059133484347420005947059807796791395698065001989802848862111060107597921489362788021082263568218490844205161178810010966558072067672490814039671096134959799125528540018505485421834643015270597355717075457668587897084946063151712458902256430796284379018608915839267208826254237523740078994498327078812343748988292809932019690173151531222020464581707631497969964106928427670112539501012237726302737153893201150126842704111617728395313256817538016582674774921568437998492812100319546181618423740586814403006475327059688134284401206609727852276927170979123416620618851842119341797872272107928008018374333489939108537933884162285147561203827463919644290056537984731788299557641475867717832078318157113767953095315564474077652513525267816730032233719414539894476787780273126706864452379488330311959931549581085461594039045439162110342303969413522764757180883088795366305404630994966679586130321274074150392659541047683500725056742847633495762359415618143064237505635064567530769834656536243952765668426934629551670803896948300803506972813746911647080467932163345523219726640561598840480640879827680235592581161768406263295159512030799432853670247546337281612594804322227518143178469146048775694239356233817717049404698785423464879195836862543261786428296053082597822489383876017295362910681637428123711771559976512045806479912918087868151540440527735751481324345076241124042341849958984001168392101123869857044098771887853083053461322500983234137930352954881853522147662631463054414164427694703988125248666068835149786772931574384224221703186327501005542046526819483949516866967569613328203908422560279745089364975663929071028140378075971139321883188702471291022212590726950565429718003370674006105202511577812331540877643806263991720864778390651294950565920188940650832258321546663633748142504442015287666964100189137775389004211302387310165102289596036723657475495004435799874004231635355720666794857588861520808159485891264619472778600494041624466859627554690285511054507800938449183147073617642052018517907309068052508626383415412956436673853690792589142174605154636904848193392882623341160505479166348391101917289170750956186795812754512813723424476680289913490467482881497853353930991691378689113383616922748069568917585212873276250123888533906117287702040986768263885146031581062047810034982021193457238844453006071041115657675183819745496003095081414635943611116640422471424443930834885164676370642421978327217969331920104217308517109669844373349653911971050821189208357127647125832689545674577426316732409373662475329351334989653153328681415643919110845577526884674550582201446134021448230293445617365244786616191387872558147513923329857927845236318356301887616076350432342302898816578051003694236292244308436060769379191074982370721999511818807275348641594924890393183316314060050477393209538578264175449065022401190562974512971055542194905685527989087057849701155918721504789136123444434721386971095689977765037663849803558398125715639273665627339355678732016265727684788467251070608624514413339074740104613892119862710415645766508864973722277791474699310336622689731433367004277256295584844395227465750571922757653492307211860280485082343531527454663226810808994386903266532711392825268359328178361605810266738130085082167770699327625410495671556246327263693762632681436218981295192584943673563585407715533287367517002328482248684038889338744295097746346401229121742854634194457597519754981724459821359638914345040878582588712484749390691902828770968139190967996783288294865380484998629487773642883166467999950937544978774244241197466534108834421327541883536872487246454215407732617596192908113408953649479638098808989462936827310394163808578358415664489875884238140016221469989740844645337982559644811323116936095492861517910655176612018810074479168574457940716342346954784240896393625269141151789256099384541120032452099600385620787390311882966828473714491663483942103253897619881669433390447201812515193900683510579583699532009077671373167354937999557366125387655392662605769150506152341213110457223537493297925845926270044264457559858381218847748395838338677946394974471495017681212112194538830847308031393304303017153657885276441878426424955641960769668482996572931437264612020000748016180059363538400066724030647354420276383892727602791052488562645994621262660153699208330932105718615275077566860062800275023987830104203553329874443439223946568875512669468094303839279764625678353594723446225411965577103465319198894968746253047096015076730985975897623715807809474170029433620935868660664087762734479113725944173054883239443494886262086264685438855377052962739807349454870661454378133396356851259356738091219803804537075855594475635275955016493748543244506325517308682040358887011026012277632798399654297752847228354666478774404452637759534339173416866802068382664231444160970735076187033794239100473057910206525932934142886072616276233628984103777490412245975113845583547290022322204966007374812478268206775782374978842183092196592927392337999094798787609943341673641130551902560717711340603554898872323380571070951398648537107071115961942628019579176843527046811454159767394218077209955314615671114500802177375808042817222204657543965480697765877075525071700172040760774542492171262569263879119041083062454833859905098515431889766992680450651303903709543954930063821054266761494737658888832135022685954788203665971180305143403817225211880010914513422717967203774228500125281556235271675400010861885044358154687802033954942777092579854982029576992139620756997364345184897366495090697915179836575134030401561913639878163019160995322007219825668382004497767738483149072518226921102303250547422188531074397801926139784570233626208443981748767226424270661624314571184897899535509535847967897911393210047256309661311630863803651354273998121222372366079488120387804964192562804653111881347935223803292564000182902089640075322305087500829144868035830212772768152621854529660683838537292862146521540096957741400721197234440064627493651705759848706093728157392238589594309266108382727419285579581412958812870749200068731328397457288363692635898802100913702043122989046783153978558601790145256562662459013130043169358818317653898850975898297095735654681546433292504530454515992675199076629094155986030061042982032487574290805774432559812424185333969713872562689973630371852483712631975867715941038003603983622878345915547718364085340169514665096830854897123104672960201570252112985516380927383633996912256452606628803481667822623558402994521693056577138912213064882693084031230558649898455203610182834866851584486054244311286647724488811710412663640480625210188893842725678244458635302634527902562110014266271924954584940287223561420950122309331618098062121217257829660930469378656950730780233698704641623709832835686416478850198149209627619524444007192565183014121273942650169493198574751364090380400477500267252317130767075785538825027720082179987545226003755535360386847504668805200241128212569422822664135847293194037615525304573040082683045895843091850164130719858809973466446451590750915696436157433782334678014665760206790899890323922496311027240861235212552060287413738222298698637259926563915909391418768452600958937348929149115529493305397287976759021443242497939904679152587671581676442883295406599331748046602463616042988271372546354666655623230117804138563341015459490937916330571994485659487415374458641264895312808543198034594088991920049899999798383411938701114719538322058915803798135505147058872247259049899053358116108179903234877321956491958674661190232413448246271859539089274277706792456002536419150350692007525066372148475536730226348607478372925962935654974742214292797677180560846327224254111493172495435209896847449681424531209640503864046581061753905061316104005388657437463557816511367515027392790446372989051003211155149450685731433228768725018757413457779105071401283232805911746732071474710114252149977998811026034134886255283432701799455540697556338168993885397994378115890423956030966411952153859550948455578138199282368948088004747187569185927336020256258551423050395185311479384846034522194312320364451925123120919859683710965306059525541520664301537648573266321823133367923627419226676559921043931916992431108691343003768408208503138490438367111914842913521124796709259168861915465149679458562357354847971715620807594819604523786994563205708430966624477926515613327032514760074474546129938227581505714370619486334335626100691585976586747974178606366248231464214708442972580750153176819544381400555579033033424229089459134268979086090036603073856703343005695977689931813745692917536008887377069067976102139752828299853859814036451448571515591401678631967886599597214813509205609887651057681177250690558250116210577234239530965055172425829796750241091685858593037940795648622554812337040405892872700637546798727650505615544162575696176875986012006727877895603567704097712047294829704090934052671719522011138528338145414623474498493876751937652906435692482770045517341583174807215541021158776056590331853968006679351623946372670815859092105541375022631791403282673996754471982820680705632534626851661773115360867460116116111350160460291352245045177123907235166772277096359883723191114327650817315550113916182389227451433658972940080532823682740907344849805831343220795368761330617748363654461544767593451075163814888696797038282141187463962438970968745322596056076890175181867952933303232548797504967110226242073260598967656967721609130593725955607513869907113506820482075987726812451745935257771526227845504402132533432804495575093511397103096116155417997687734601343115659803355564350904278654765391133190220292166009001660690763055421895827280307551877846984674482686188862366825730247443225617369656172882789138523669351912862314958556254160027067809369561514553278664070244447619877932687596745282346430275472270131060823008694844880170803067661365955038473458465792479304435941555410115297120216791351110379582222242604935240875103221430511788242731813843082639474001329193608644617612592838055717221361978681827090477549725117875378236250021421054995422411044389016839475768718099683701148169233989541180113807776150566448508984261778149694005169709446806688491262253620157213103960720922573306936841524747514061555268807977279723159460767132542361100538199902853777596552478707581290476306923514776636584691324658900212387393875496330747369698167629477840555214326893859908964545426848609416623476406165920099120186819833948674178321503129077425748819835557357376782605838031576841021857272519702605966917970917458093650133852698106437287385663128327251009858683491923715769691875046064085659046709482459521423966558872773135869994797223948548327998376122671006777112067939529377407907500107558023859753111489703114852488490900594769909415013309992841533209623715196667239480567487421254870604966779568148991634019134482488112036977436064879918757597788460673529313520764168866257406615337549275076526498662926974937553601822123558931152376693469447697244269191553519657936610204077943132255505939079578273869640943134136557122247991967959627127057290681889057952768799355065244679703990362194569954278010169392308815689131760746861817008592916748855338367023761175256469900349039435285859127949151806332627063046208051448777022433899126904083598897240434203068358953496829941144513176766539161086979684957318667153819959064012230452132133912331229879604604393925401661168599153440317105916351201501826786367319105494081206442668278033444408779228777764926969329661725236018067709477645269891819133938467669287002182348898216392436131977319821458539523750736406054770008398252333754670665370832742222606798778236727713181678205511902658426604574492324196597665031248572014868111081638793556496164370791525548097777488290937133751758954192029385502381047028432739620616165403182852381971592841071624438310691249683451146537794148309949841995007334835124265311148082940334874716794055885753706308107446887713769425789981187516083984999525115254497668595341291308125469793610919520255101217939941538961366330820713127506024884769814413725301069081417004019592969541678992261802845010162667346745347375371933328138142328088813310924208080132621765654345180128274178000328087744098046160880927638621336132010144848061554089328992451464786090922119535570351321609897418370387231647030307420234403204106176577129130395607544105813525136135123054612468770733920400702608158309801948668931193182550026836987523688410543994539040520825207502590855777511102031455504697256542693883977695504915089813662362141183365066686073576660999290579231436744757748211979612693307172544560020656124122383041360267921131087669492615933011970030481204915407677341907090988663520320523372050378326719695705490040121238663449553131121895969709063030396912628003973550966896158993414085150498205082368971610351615064639206764647449030434824177581476426539034819829866548021850595534899674427248981660083767865446046151916674649829349751211223982581429933265310426696858487906775758175815960691690425125192099236501843711542524054600039817006955562096297692029698826970016027472732714392700749783483819666950708141912870869404461565325479977585464034464979472346773781601932633260442733501647293010183117963094555883959559939649449970600096197831715425864066259011545245708607362665499811905852174903870873841290916246061751762893564761687100618972771166869564210315821587877282327498308668745012063074564503368161929672210147372497994743421170161554612540919025342981988572645917961292307415106404772445698351003199201592213377163073598631670002947997371896159808129101901071163833129228989879877755261369588667197110728600741237419308655602683700078772557742339430418820061483283992983335895246676877033204261245666746658176504971455277073605283423427738566596988926381002890188509399936899359369029864607061997007602667075790585762577739612245981496598771810980337970594717364234633300754688763490053919295668605032294876853302756233868618346009944863204572934599019669238896572290585582248677331891277578256082207826956526168802291395755000262382723678095313800688424284143507826028103618510428153661559615021167948648422373504596406131440574053721830466325295056856093778093291305996066297535808499492576829519907185729373154348021268925587036069838254153968365786222300280954239005547357027701718978409106838278176431444844994900362719130243863635504197086765715965068504950352462725679738378223781903698595123167935142759397591655823777901515087944826003533003307379695291802551527186112214182192527393416423210447959350626974515894029816953135591535269566391262597798094444947405271933163984795571575540500499284793808580055052069685175979869029575609078542390968992389242852727081510570931918455787134306065727351380836003893171877256701951597931214379752456343057804798452000451942646594535227478406112887520097259460349451354225207666673679856013619983031876423700864927533119502876168880253029553042656720014732138384197729726965769166941857520339311409737104240601658469793512910239627846849258243828649229042844220512832415532157501174579529537043327380373673528506157481818637324986280696110092333391022246046954606427581245817404291108939308151706460723472779672480178888720706278408343448494754159700464665419357885258722341330873250294535207362320657992452828224424366908858141896743862336301206423659727198138745394773416357961570793233236658237786705393939780826225358069395900156595817152906479271156654330193167364780161843102202145679557384039752328691480723453050509926974459037920902386134072203383442199410479605614497135784866083243902733639237541406480689857680749247203431532631253394184640837808001660613547135255509844517852235972921338630074427135089635272679616745947152396881207152653384289952743078739419747955004653606454965231720307407874341808008823115183209913501931648619386413862748850885903546523076654349004493016234351015691577880519644114280411542689787312733904021204679926554910427838513325038321469553243791401335756445824097593241151653912509098323850514294306396728483531301235426064213663424683901143282729029552378435158023383550304066082445570731925522702255184702349393871454537403041894376618700852427522379047510878095157515294528809171307678276554438299878783997936144536495002800958804777811821020764257516981459853256611585129494848908204180752598634295214054454986598723777301595167315794282512995964096937713469780246223494985449994328451563049838144206979353849523811031215909644657244069316067809965632565352484949289300237376657173380146078494106637521100539262095320967428800601411412320623155225997332134453163041112352086880953764846596893106764835363875817602153219873786695317840620481214435017503875574881160884254000923066349183682020081728035415098450659745297915929025487971623001883656001337611480346488373053704708755258397759674984467397019271449692105484803759723486779432419159932137571460677675896234758713949923748209949181791687622353934230026980827582180882806076915102639624550441336879121906719220582953098973419650755499736875663917119959961249336993975009275503390383707551213467290695992846019229548079060133989715780014085561326600799830739839012517072521724312192390444926746073349555126143513481958165110038155478545397112762982468771928705161801610557085362382818200557797304416439726614085793248980964583017172418360803581138325888661790467077434978611033219186214130365532124092046401488767541912997536655617460403165152851773518223357646773580249159677057145616464169690681323768556293954228017558368727418571198892025604397263825679102639877387958970257980125345720651038562655936899254391228000379406883339504030817302248907448353305438940133498507215239401060557417134065972497576644493712398393063194330114099578532976660572366230641138080985147862102917863704993737417390578995693714180825647892972019756749845045791093700224778656156772677698703461230150286850923911961668599842137729817198954212815500629494519883180954257034268767980200881039002884661243658022076303734236036282305994533408486574259894638515128833420418481844327359612835022001630372038767344068154181151945140636799862338277821389272553022447600278886291931087402110550301079337755445991531128031042333886212689739226782515074583027411401252766081166092403331546178417126085127584866068927746541797206397766269213979381198509206930995575357978834439984927848690207037403512458520902210813397620470618633958633203759998640928538912323681258016882277071964988017747552102744097835382571916648036617805869778431609359080842084711051775891798666877968933646635400677800772712130248056098188125393365152031570734173408403257858174839999658737815419384995181838486517657550616563238400488763097952632958075995287318333491619216638202830858267547003029257469306279384601296131358140472013760825039907411336958843304498591223623586080212890880219686868279049355985397230283314517920973694722036202280570886564518070389071883747787152921953414329724936848697955983331159906173212259802834915067112478877722164551759245095906843873990759473324824077869613872937175632896501222742033663240498465939178750129997329212974007101684037000080567831147286386287311250859911508292918763524605366500386385740587722374017232156203269776922416526544235071825322072536931815367747421095144572998545247415734338354456226687274758063438780043656090855669454284201074856646295511231410487375773327177735471017669239570861252197188389459793306035855602837014271935873812676161140813179794470948327876373435773315902249994957807216934752769273126994828706082932102230625262161071429339469735020548236450186044961181112956518225035429846735412364877685986204008245071063754393128432655000083858671176168259111386449791350606769097338292388974704220768399788011146751270376584836429043507842283583092837500368076868713183823884296182718783259095828337668272120202225416355609261969207584197726907484992290025848550834822865539508770264773982666626602178728044977262694605590703083656094215683203912432115010469512493364847531904018695797735715479836773990321464552709435435878121244136607042425754482044530313473471243996385485407029542549835353760554529771502680885221213367429044264129579577861396866819318332973232598773526042542818902471140934091515771413893134812723229840569551595776124713109304546195912063659609979945914608316614632300069130873731721500198803587550841049145372422767414174089456451913851101697851215177696703419252424079841274345944543103776522099549434266642417376375494943783124607318091637185662284680439360670425743533756672064786195841821624287378947914060014886504515882539099714761424534621559873189106229565172167658232099542709473884079546420158332654094410479736171188394812386664431038165656391109348694514372574292007807588438750633331299532968275994463174695764632811637615592333855762233497879454216430404460339278128842783510396692902303582766388462474393390964610132838293365029059639167182518536784467671405720034318026012194028155973213760341648416118613060145968743551852433977092348638581886683583263721427037219425661250793302483490499411984211372442483173032164092311614188692541775252946456035017991414014683406758841592258655648201698726053233282484759012732700901303492570561765662271850587820444291238851812242360874276363798420415854832818348326529580454815886648594984545929489523577533815621992182199410419514196689431951993375053093453530204265711265278936303246276671091237626476421969428368479529975845754480259076515794935878566566484782707850057596020226077190753786152436441216291795988364482885180716155729754708133370309478713473737752377245904981376576672898661739434344649640505561525660086486076764982628998559279378891266040541420005321156665749090705547693768286468700521771274713603060081979356506637279885860801241412622991027631428830546341393966221979261125077142184764317869742154286347552921923367350926732722027779263757835148428576070730269887726225184349739145537447131997474628979825321895544498135565108282826562167643706843229635281945080316854602458411333037859992393420145647890994305179300898945409949382783796309105680892296954159850871332383889577481686381989649830367317147674796729988800888075064793112775310047859643800364441457000642301192501108724282012881771821165495219125270397134588669429182919526699078238816126957423306773938441936953094704070684236400497710717132668644965855246113965184184511432520627197849497350473536979651620426540477510511791684432182249067533400894359526902797741840132291770343274289311949456551884666867504516210664257183203824210860242117403875085170638878173670666608286709632324310031352253291344995440437138093615216916189217442861375711398045280492558136867250356361934225643381578444112077400587610009218168531254981578052626377545023529832348225682453782554045079672411701189645392191069331771865564635863963476818622726919024755568858990310721413416988479634699809849994796951202620444613741424016253819147440316485506131311499708764422228976656024815254142046500932651779835250357420521401806712942008927718217041613914874467325670047872165359856705326084466367340493669428845766759838384017118309203803900471406341022383871459746973185761075547660469209115136763888507834390320187869585026967773926679482332832335357460307090110388518986600729960477519435093706851517285882252921006862703551562943249403262820675827427888878656583259253997484372346627645968268804174886086789322086647886141065648698369737073674394562916101584621271981498758748280086330805600499866829993767069058989216721848152194486122138645297729134392985302369273383526464096692407062972985013326526393557536668223786641349472860065225867063636239865071845096077098659688020982226555613618678428375592194953600671884176395090913273765027116453460984369785262881275837701298301133760532153821571301157804843260366903644534424816107251069856268041318402024429049978308105490820431769800424287641606441252467654325672260256441333032227626687248546191017598104172928310219768218141067643119541775643027429411891236013910745021606231776786284433567571653255038494112136816984055642323300007695172376877977589411013296619441780341220579737772636493138159526086917764687495496177374151131230433786066577276378433915627464670442893742744955435894281203593476766548038434973143328476723302471800688459109150047124408782093419255036358301601267050663496668355098272212837873455206109823242164110436707477532461358646930138416526109498269309922519140913460956332701302752372748084735283281876782387238434096623882655968611980425011413044511344846199463844458005407412555145498488074939713229779265676001977563350696689868203547149230522495967448783342258870713980101909839983325523548704174509659322397311252831462415709565974418226107397044395339839562871434434327709150533464698174047299335572306951816946390349707426663702961959257230910287754510335787067564951035353535220679084394521518965383207303532732715628573870829432146473960701936189482294972846409988121275951243603558007594801244517655207616892347333207343056170284540100967520655495062256984885843011098892705102538161389559246224567588098779559140274757887414115675130396402805082797172417955832998989678561278366964890978478311073742460190847623166592962790494846350538062395994825604526561362926597302848668024467536171533379161368179504249626355885204302410522862312328845894064182237274306452800769263248872373595480743757017769114782519965454067989687817703303166790435243841306032804461720611143473070743289072142273279630931746228282153555461724430021702027753923858878440365923286331822965495483777925940441394939869010592719595655861961989958892593066012135126334497824968111740600657304600480004549085612044711308201972989104490902224173246016655445701176588764485261064246217603609123912598394234989483094372274910149608870647738030790590702230894989915798701219663010051241120580568899963620737240457405353581009058377344445449448344479510203362623209342771572570480623757668767742716978901319857224828454608643855876235056248574325154463820891205428348926204391074908394292806090278741387020382697462119255140728554669129169054804904769366870661580627079702652008727806148599408178703029037022295734769762840641990748562098983009752325467007816489498561243858611328407753560198709407722066330118567220724529417175916267626818955240798075965495293304198025469520156759227439411298670212918960588845346600303273574723425972405653741826767510250855615311666328335531019005398517161536261819412789420777966268146250165989900138422981794694661416572010522534748890075735945721484217624238645920262826770459981739293247170715842412814572879767069969165644824279875051646333846826101711352930315338242325270590948518156774925441208306101372961279582918711534727174154535136982946132671406026609839792354778950270712165100659364149131595360066821304314603327887512766949118686114261275493950105920927247880011085310626254021012772922490197335386586352302971461978064114661162787082135229318248670731442060771905152193702712067896648095069068581080870874607309367812069908245116879818252078712078537741189931269878332680606715906963749136721669552035982499967608227161196789256740972085817131664248773778604599426221555935931578719291471898380332768201295653172723633559810624942278176233464824237160798204342779454792126507519937743237699282402072181352614461765110507576433740201777274174098814309944177453408270889940413474848031980117741043512370866205636074564456742246244534080665251749260796976183727414458794509463312540729086555758479775757999992693402904705458430887904671969439591831405441004372956113221002029173593747293721875674664390465615897909241886572115287360261270623969757728735550423920483765393048157238630020129919391493198095350276078563645569227758589028292492660949463251006775091486423302491209098337839695069572383455492747651109333664000519699692229383374881666566339910562587048218525026065982458851393843717511807025124828000841551255269138556745527975860520681643216968789025090529855484177793563881822760179817076754874024023779995563835010236257480268337059742936114877556827309193609195250893438372631949372917721563385551152714231987480771672673303932522309976649533606378016374996003043886283385512455705245989910719093877980746447013405718932922545653996150138896420746187438115373225000910991033080215647203410195516872621404198194909663975931890915466724276235663883508759630746365254334104050254027118970582935149211201551654259626460507787348195989167489804211016728638207247767796364398647051889308626055804635610272545626403178012898639841796029587348725668234230006865213251821908184235938072719664182614158988829525679495409244664889341053519978652786516897756214444677978459003377938273480645428880642141653842550432356729075382106803369998585340561979260893705331036504443642009135820035599074890767529849237300570252662030765551687637492427121786781312664530429431364705116725095208384989615755230217572741978606215137554184097891168694046359927283766089816283197302731559737455508118029734555269524146476516378361861323464532318899040683396605361801230946676949144626030363332576621449177815521319623571646265329682043182308121786900553606428737233516167968368341544268879731789578697699698573524474358571990788291811022309514957402108471857212611976915412090364097984968668962684430117446573292844613931792405935549398325871841255429261834928763814427352964455844436200164295049882571654845341750565914389691589772212252472440875702355658108004888233882574587964310457030633543514437670191409253426895883893867926950140607666727833385274787576133791761408761781584821399965822942472671372469119612388248375537769671996161318714781116430740998374641263624281216768247226866574597606443283173405400243693550657496966089153127597692339535274324940550168875999640543617413439907982694337231155914507653210705480100130545800877338571212243066726572482875720618145762009977705928132655317027921996495718089544840786043114736654176812997131792283728599705303717022378228828348943569392360097847259065586588248293967586295089885837633475304100869921457194452386463682901412392969757441685479876315487113202710927561849489096227246120195013007816848443808455739665461249474347833872629211960254167325531208428590864010628078488549060330752650810884028129717089504582799278799062344191309861492960413096624995399659238047469343795879311819948569408208327740512287610085108845375913704776341372612541300668357089746055054191467167406753747414316695896498834837538375685574634293679363931274652269390926339848114330880284940315082931305907631202213383413666398907249988778296344068322578668023616909532430939438853881682099253764214798451425089134159394795400630464321370611368949867285181954874638416219010032010845492918263287849173904197678409345894336815468940565924556131295631253745118976300767880829371559114678689580511973857621323733407472820749759236876934055739525090060820730779272311237743007129753391282096254280202398605614921391741817886268020099908619226275911739299592571575400990073423730591341146916235110245058390037307021173237442536320688134408620143061661630078918288743286297861024654895006246135614919068383795478312731159886871992275222140153310010085644806226770999976485208740233717134586916940699864761693035210313386954224416470531746108728912772174706933655156045896235413520162128417437243805976446158573781255229182400431315625814013866511766636991899623303604807573811469609373683821268551981593490208663359244983223844714305989425230103791187109743067721630012176123008207314210723174291538825381476129204145207292506397511463274613026561412547293986462262256041556038524833278045409586989951801807632613881083707924351087830079416994505834949769738736634147312730069258598793062603861167876283997283990078787916681494745778457165925558437183001496194117862696484614445702762830016654194250074156098159153293554807173364273637050902744356116611294993541613588724627305286062714447191856522454540904836839015899060729469443337872270969810932206254563877432585595455725716232666577582708039019165825615002306083501802225614261504434386634081268215048783171290567185489144853462076465088929655301698555325670953994222558982892452800924591281189619174593627230395915969697160078087259158470946456589368990016019799864916621644111985260220046571594002087804777191851046618635558254006078917555501625535753562631707461363830860692844308271964898571550054725175028501455310829693384144179833074117949331107270634247970863208963211117788474140157217115362492089420230080231117493126996139395435583510138105156574827646105770713670015548406035361570831556822019815013390829446944941328750545330694677907252997235946140173523619198424577876906483082898620367365516153602295164375873148275298887152426817369265164819053084187503500765641263241438138678162496131413379189929750276040262995387885948566889501585834723753790196072278040730762084521247955762352849970051100051359967351912148657462005553456711622115470010632530729677654954510204364645438925658803916685289082153179023014608797488675247340350011996529544337035073366310614618762665462777952083011327702179751592880343106375761119564193322936915000254959743549275500711940830517885030658788105167142583851535310826137983772647167836498564498789203894112489663208825064803114310551677821633111886003871725405652183139578165382264638796784622250310375041419524213912984076525536093691355187353729757701069590047574830659828732946425583590665965578451930406500219751351304283247327083334309853522987342574784834435315639664311068364184438542933351093191802242569251727593321402568786122004112286728168661752893997478298533694132075219286778137659173638077841902649026438776188948804149886896320116243507948693009850708375060634159828119333445894133357838609853466563845176138068288865186827614489469589830696109568226378636207806126689414809150718136932265189641089350181309651795394375987517716729479172524429873375629763886920414204124159836439393585660115269113278301667170436725619368498005535445791493429273547113664633652011691327157207651429697432286227099283634840394399445265450292508622073247998944156926174352489767763865269492324781484320103660896352176599897619350195376385718835367738749818039926691262109859757018679334729007410383895173003823332427026818650673012576042271934385837463987436355853817945916813485712277786456131468301714121651277183933127517616342151954566398152539308391147650350463282464975087828983239633314429150430281135374182664128084862976465134785634913867692640639731305803827894617223205586501870276756839108969999524698426820865067531110488298441798261179039607671470674965800625931060824450070230877670944611395978193581511469955735505037074199164073007028913958934231088557184701089348186340036943229602551608404737111418313287353255242209115667187263477377602215638157811437537765539199159192228201490286206600125765284690981771570008000915574652176742214613122734296174771885937644761548923433624302521885901698658948562153587247403917388599441937710436382885676195734831493906129192055587709651896328496588873356621886610879116469997099286251600636915307389502917747703913322059296830924364704812320104580855989300191051141229888049772204070931031604675792942457769050229950439848636026815692715506107154572958789455201853387503345841096909028362420685656354891141958786077351633379120125836096633191338753689929632512093207268365543507015137710585055194567136545069447612643424836024710300999206882458818308728843315020995896058646259730966157183173452932056487193073371306204501142659784290528500688288591647265191112067370513631807351976007412110178453296163467895485306530341484383608853676753514624285332902340687533676545749332940530349564383748874169255899501002914698901442019348667945653332494226653962251533474971921098232279745358120395715702385353237671524855087609546728394693347344993502981340435422290826618297834217052217869545019788899472995508426529777038337671274142770452160911210686851980533267921686984431451615883566813406606367575845954876893749477384602044285020731350203928640950845738638944024586284351054181589791941700638344893008768770715862100095371380208592805741979723853747459472130200533200954763914310455246754355432067554898748988385158156202937643108452395734128612683159001920049339713416147458596494728957503854702760430388722949705748626544969443892812847123862749934766897540181843323075724390514988297910201366628139043877826077733228158711289287698658473735174480113569426625651936325353548379021354693805178011848533922891977849453519659511683172609356152904394963510836083992129926231532511749694879038145973901681800980529716388932936850063980691274118281230717468931008231183629317661363335808014053960446049215563817794265921412517105570039260545077216994078942680956154442984646329377328480261471983988082437367496102165318357261592537646265106103087555102238876704886639793404905621201885312645696321053464733743953948915352925883938963392432428881010558055818999433931380705098464451426250972097850288086948973116886044890260138865700083747632535152481125619591998103298959688250630419401578230017278985445244810731774194032000938555552380477583741532961836717942645143004907950280989128766577434442770099738675890821987746577972214015171815806802728407578991709547090685749346659625573276187348170659746525947456386073680127122878566322750054714271918057247336154650298415852034855897578051656439273076209724751724041578323993513678616154945802819479000888088744057550125152749313784856280603327205085129144580601328246788495096874284314598094392780066915856242079286588916077557776912608245524576102923968540728721870626435576418639769611710242390233637486525695509722062452238540353055943917173674361292328476519885364537764518646087142950154642218460418385899048289715433661324381855976835520258473205688590846644360945551088386672362286377481017299898816906773353966938224748579932547931169276281536602787540626327055715730067895389515940612821700354858424787607099665509409894280857405284512184224733573689420797700205428389193632549437656160792410050964568026215358718068440711973328621008259651391570381832058510742728820312282280242946575998988540339848904380460209216562809145666004380697594270421765115616506294831371164361294733616462358015095673101654982176066914583782176475191139497221812257518230678370269481940760213011877673327170626951457368948472948693455938291229183994953739219813118238926353370254167299729715008234139738211074201659510429446313941659392232272503663222626352250452977347289426436673132822532870911448904131458855945654182188722483674821158813488581485134572336010327330447722606723347277379712994414527586053374662266190745349163880040757322327664673559905846968085372124355079209293894232255164949190760490920429184598957288001554036041584190846040011630276961192071796477086789685773942412945236878142639004012381828500506532029223180269613816171576392176740513562664455537982611423860870576872993605462655678840487366787658909480081755754066804173415186913408083129840447953362315195284716041982615606686047073638517038454411738419986862874316710038995089274345730976091935182273218107299389497683558904557822573472487877732244062906323382286156471510892634807587509507311003035479810946725020699437153793619870766515404275358663490783811034914085639018398027545096050597198626908926226305040643690494939355398670724181657587423703777942143947709916035048060025596971431387223708278434083833313956787463924722962378824065446409537064632637860520469841473734658815968126429864888199678118890984416347525265513170281931037852492441995114352487391143578386994294250277761182027105349663178739093089352796959455351620175276497271553996063146521694030708820008163954756992854342523236383106264140985097468081275894040501673083087082489320325009150785756702642607764663028458546421770871305766976336100928837464503114508234599634037461471101811463692269152841161469318749961408904143867411736528487218048599544266540896940424454601941240060807748358701830505378914913496406066774537816032240007242459073520957328085649859276687600542719222753544815951826872058769448262426142745246723193453134911008053888225273510903485164537729385459806803887326400702293339124417645532464141943532617182031994541137267533238599705254342313028223530229193613023956134747512656403469771107339360243379154785225362313529126275693289352952316057683346245433093206020298224048861558967783885269323946809597992172274809408887098944114730535579793741518521938497780125026753573047754606675851126817947441485623928387153342735253471092849483274719537055216150875880051033882259677923752099912061221771378347542681529797622187976805604886829371933660941965827490783684173324878339782176687091286456472372297399353028566735714363699557204218151114832741055257794987224281307749708137155392649841752147026783648986927599464182258203075094627682440014204595246260900892545305074833852791521204663259813805253948016920362512770620264305961505027839604177037531670867816964591567650917033033377359808442941205377702901247980743097649044932066667312831042271434815936649226136977451474471919453825026259256040354245549187162570887466262409490396153427271794623735740018963173109097389492374941985036449306262314001468950015768048371964309006018640312471817972661654343645110855210674088337670294842663316637540840180709408584051690684061787516440457682929672135427160485771977593948664995809216164068467235319999627376725796731882617877850819059927572178031360094851730951401345067315870514521876443349306320918897765085733136233902251414224908467732397827054054305490416351526599906936769775105153999739600983241154319115371322379657093233779606695224625372175800830428693639700197828445167714160256451863048011269439547932337339962322175132343675112516593997000153871436075514014364509353802181930861987014766513168756650585201846443164561425829569571625128959634837698662696705725568528386725512880842922789210557694543140725213594854091392000944424728295898117574756618795347382567188896888365764013949830975198464966958440951217463793180180479681960389784116068979923680466005810255348073175975814691018012801149721215248395819547944963468367950035845163097631063422488077608689396453833697623672690010193961092195858279453001692467568915523806898518153616295624816035314254251501924175393081679138644265775807760043520794803083393015018737827353441675410380904261291258424048696523407371686757028812852492104815889783384417125619215936023380409682320080499918350443232850605719138963030530731012469892465243199027165320376973693679216502699128431463987975563607865666905046430719256955186782620090255847907590182868143699208066936083666717146466021382099416085771007995667061560316835750120774613429232387099177567518036026867704655546811988101001851146658319058252959825562547589933827503805549884435485465324899088803076052777422153735612344136598440892170647084067800712109244513201798114367696817408865473868314285192650573810370094819116156649067772756946453711205537913841329304653518055382456277275073693879808863842295106622627539631070657695829953201649938053464993594657697301875377933645134005983163504392319779971377300328392962090412045600214756739795054391406797167484147175690618208248194754747317330226946858166240626835692144670265216777031126006719302622872153974061281440373226525474040948843898413697847260344183692641801310152748972788933613074572917047712103184885942252419421090346589979615458287027541028430417541927450863261048844116441522286664141904654586891545145913066710356381755212923382876541976656884636885636808500765893181637468553822726712722876354889094069595742667975566710696591406446302868302192572328971618814399602207026232738272522382783970127139059231668098437232188575324029543208610974249996245177680146659083726432547324505341371425959464720457406878875138673343084546806993840841594861273976790957845674998990899180078911599518067496989933693938161662733663632338490884678840332470460024833865718027916272343771952040823674366864180654045760375555759099999442654226764900042926284243353191937730778838752026259333453108805686813571041687915747114229872440318164119757896118867128518375241132096903045256521948885655335738329131058601397516437825834436176632549136393757692902238542914209005947144600623119788067574515523846394274812481090898796231759133424017674981276453784294172747298574401921565616098975390811086028165333604330399691913620063140584923616763539506396934797009692665256963808379145125920399383747309807879059911614809232227928180725719688229571320588300972546727120767949442287667356150113765645159855691551038501285815217324318185114235930740027925185927139692579468716720272712054145691150865374951582295710219950116735058704395049229475114941247680525795610479724916039549367767121396730035290571867824062722857293421683388889571374199685267264955847744158078547424013604011406833684476711542993594471970777146577919630691464163593497719309949608782426171994156687103679071455954566090482343378856328431294355374952831645047425103869472042619172003841620026155795957602126885651016476820470524072701565058184092442933660450194552382648634946893552706392534580087936602456619419929983790306940341579362958858465169111126730090993926782909202252773512235034255392317188449018400430515648960695734678205405868184624783399267549726115129853685115070845812176042667637316175716299228851832763058959564342000075819310610552240400818304020554975439835579039924852139766188897328975668965195173331195386140496094980026482758879883810242747746919668703774774830591217839261758861073106254490062786967775835607052202784892175554091204126582151386006906320395455310720923128779037575664246935660562340510520067319771927070643059964583391835727364741696154158697336450068049638628488346175327937765247282320033453797366200497532912394073700015829817524855854000881185867935741269183578039593063816195943924824099640251803016036953764354199386046545354172156478662816886757815014266842807480199896890175854182696935428911494428629861757247560298500988126366756397205722903236526139480224400515502661018166279676775517513645643012275456305076814747897799383970039613165909696447753683817302362229406476143052748705435238181599782927348698420439860659085186113828914834213304919380879051298545557568287252832791686268815672841028506897442330107605418158020816800449849663516619798287917808447558417998904028628049395640633479227223871324618505611797256574779063770877354227233502923137197425591333842622668096006335681822006246280479060405169804772825946327434776022030281695437526820500946843614388103673982654646420045941543339159784568127063783333488952587978524021030753607793538486207765981944371695731901209665358920935366327490083838090093959750194466191074521653227816104225648335605065353649372921300524369057077601938171655772511722595473814484678151962953079546219394845655421355545683978503465820808307241191165821967050342282402345554263828882199647808607692603175986044225439647034338551971973214288142269676117860986012438041525620876736998208573545815314143872954329287581416348927047401004182656551106925347631250833677369403565904762107933582123943201751673793774271209548178494971789656196686494620181898632921411835344156267930417100773724405903307422858321202318278890128048197124746125611605078230112163352855469129038244602096227509353945279732044554989560747726333071930789147049303813564841163271300809640042966723808827838124229799315757667763189177514760046613073346078659739193217760634816257353474216937245155585317604368007049171348685876904396347824268332030639565588703666036631004288417328423814651044225046513447365926114555620638635504202176744407256372936393217501751769983966604600754006813492622576511265004708533649334663848081340491445147935819364596281738763205508585870800965367957017002722176886302795676555979062440386485999261929855924506531125141216481668964791817373959749660334535653074326265895626374565268582117520365758860275495516644252773602589592775080612469000022219540198626163605682543552252562018469702788884942841663943575483897730041899501009492818822094982766818289246895515437397558040801917142044950174961606874764723391787362051875298158789191767901456689085829639835431736413615246010576159451343513228962409063133025655140891544454206643092781096681740988501246311586758069022363346590249000672872136363598218748248110643190096158357745414619650055327215148643578347472019851035321097297678369429316177042637388681326605328631362489158720565903795361396462353091618898154791972309629832790966964284668441832584946569344361741598648342243846189056827813190774528337051236393981632906615812319055616306054739451848709563061428954467351856305861637216848093716798323956364150894017790476823699254248362522705487476957102617185739866364818625533505791000845266154214309893346411938718214084999108009544935538847971696336322260805424052852462035102825201022113678407259971540975482166181383722142307014435866006759830922263333108837858929660013156918782139199993508817589452221520264355412341156805452593413898501071835495173108730156093668191924086628376485177256462509799243240401242551102126741628405421471186939334192050106331027298762475330587862666270571183042196455771234942005545568210829506677370659934064871671008585099783148124313626635544535444577512460172419505216812921153604272474051085870898817479832903524906255604938990023436279253167039509978481104294296002807542729949535103205972865946544507989484352404156809408811720582602770693455252176803485636118121652545680134572184662235251861884683085763504117481390257327120217491332527373824533313585050764475239733110659435090166798154537721534280979118942665118835279901699840530775725495707682112137692076918426633536793531725637163124533731747551750719992574570253062255910075723077091424117283173689358274374441131022923882294112522274138533253422371361030451016029481837045023208078177110691523177554561006459833889358203209180789459042631395833306411139857653909495564600895810074014006405065632234093066004380426865807297021969622196031069034043498592446693730937935595614362065119278279792811067592250298214750443291361131145452589689827984508384989865358251082005748785053478909401735895722612689406073164133599060071897090917264650971613877956316978028713345099669963781431470496483086755047188473170298181858082502830807895718635438013613858070007772212891697420301426646063107028623882972556933777678339356668499242792409395257926756149007091354781767241833419427780191155831062332032919212948445278488418433655551938285478365256732289979233582288228781675268343431074676600726842185054154037824496706065466942088786543642276490947637820407227938382764357743344129370291962015051499016970789254102884188752932626419783238862550760863585407554177995490247212545712060524236948746408787918429930910020209117407807268935211176916366802796281090357652543227212083670395873347011267806215783946428054150080723170673780741481032145754991617291843041764614699435964630663827004679353151157701426916644748671239397975324518360980312186140220807446554182096829127740175708054215395396848375148732368040574861029092042455494229564013413218989308719965592646879462729130135455897583959329366823215979133819149043907986371060148000415891056025478273402922406623550781559367012641047761359959439656035348991270271621431519689383952028609010326971259747479437934051679027289293105317155419024891538746534676258492502319867649060988200284089135588322638415868182245128939444285638734107969660841885795266223400540406378729201413617394061910419611292031304733951856183917254732619577602253845530278487505278959823337096869695655490204125172603797830671646662279619575610837709553220994363680965397869492797291111752598916600285892145641676630407527288435541904056386926837923378518722388005463027169350931292352949828951067256110949411404353698762191034168335367396644930450791458138271637751517318473501002223069736051176089828004432227949487726412480096806970789132877983190716745644995750178859811740362344037872033681285295376947753449970642822926668332324651704654910910570780063972991657359037906317141592824911286588636849943515380789604747407386423462274052549500504924121600525116181066418326369176272689358281760022167881976882743480229269121588690521133045503389191371537236310294323435093334715754908470357227976604059980281690741819286684711916633534901422976574675257171619020658819635644954244693250388486000702763800590384342893498916589178781455840091193358333366868560586066856189995426672972311216640506258133579675052169033416854966244161991273465745054291689845098088817012617380861943819540751135125572153177873312477788458274581681051088959015880261016351037422070241205372493528482656714174212456081106023919325125921695546892005433834518554931937283271275894917833139598837566644572709467736949983818043657611960686548120814994164686277302143581952270943240489427543933624688001487883017458539583937556690988770658803398100845827032364755311177511710992762635556026368613130118846312690371753440864065057393910285873313774116519991942974991648389280973668283031766318511955647416760087760197449905934110742353328219621506171165735711855281428070086630418430171815542635298050472816755926688381028901258977228330941012841962425687573281771394356613532751608359381473375111537818334514467901747937069278375643487989140307956981300906388746999962874425022556534670024116879257532459570979586569032892295384536647396878562469307442504430087090821123918993586100012003074265602243159740295435100664076000799372548899484698329807970838635801766994500240709249831271335424390056190842237553052564597889184360907529737203527752049941544329914763435642076851264939963872048566705464634137714943374073947614415492093842115610918546486804064020807221840407597421242566378789847956621914293425318099410266717696466391763577490420219639497969358143359209775085216439568266637320604036005502941825391611199867153446022017240960298619215242103365664425254390323256157940840210979292399906761144284714277780373479659275842404474042173397217554479853923766694543103172717384728095019788123834229927045334474560271377866440010608350206884716363029375009378468357753545337919475532843471793127427694670361060162485742436549856487764638586165205627009821606862903152722574935023639362895548751222485826569152689291649599112096209403715249228438128614892586162912591051037083181374359060677262836463513840642950099506786660118658708696425775979498302411162586635292759851591045648686157030583670084119250290628668192676015850289726556170809006775310544980126270170896869258495450945032752054203974097942568607857901746494682074044358559938649015586408632310661143107428981950476859627524545013818691344310062863802349545829881981711575900887955691322848647274710376279127608274427852351589126731787326808305739400560519625968583598517360867106892960500811129127230464275994597903943913756536887063104012939965729795632495408188031304202950164600990691839463955891886280974722989650776251818973462344627034651950807698667601286908711133567255159985669573639992409825192764588247165243504546313064495344995908032602567682604616053133669295734277717859687012659579178195473670706452776990505003510043085155177705914778602513274567583686125281048654513089923812569758246076189740050899729621422290388967177151413158625381718178373952520070950278415138052901071507155493579248269358715164846116532609158640194693035352907514392747540597813925463382242479143961831006812702642065034504737231962855312400376866314902464187972977653638023056149564105477585632463000800540380810083322004967822171356872325926928217718285855296167270405093188404226038154614729082514798713299437131784853721179555913301480745905344406249716733573203022319501472173328834066283004472824346567596056927247516598911691979025697272233311975393821580679755192156322441296708478416335510606678455617648397141142716173147296080876913591387367668067588657884126147950756407225967229500283359842934054614955557017345270849502227705026393580763469893892462454521230998932706325597634476230891501153277215486412948512919723770676312201930767755004195008004193708165871198986101300227464424830148699400890411098639934250108249383375376210736485596955121969319869589082089336537651683270792604160763479349091389888209260921919742671659108275295706660418268048460002660650958424236401796659265862521282455305942649412986126974254081936752955136283209916595651871012644477898290443363683165271210563102785980230691570114972066238352530654490022135458247989037173589119594218364399876241291424371772645304600517215989027184178811205031792835088143898334034868310243731562548229507082317375715927242799886439131590025911572381308472724205442156352768105957445373724856024793037130377864398894901311548592001874229887590510706152581094506117446880800367571518269440615656250841873618538144409338672341779053597670381277916788551174024562207461904928422312405386568435007012854227724785287176483857545846222911584837515875456867826916859494906500841287913776775831434139947670846830872687324518854415462480467009070407349313891754506693562099303619009990041045868652505415989273879272368451540539286057162023822096459488929992397561183971816339202207794472851322774063816822229988423121764994072370391587952357111002081102572957453508902809772100045777355280445841097847211690077402059933550770698313489623216750646133928936991436897291108419401611698914361545981214343868077132000702812547064028274459022216991333582382970560078533207837959178893754869066396922839609233448505471631628717529691549669207393058240231262350633583685632067854607037460502831504048574228904998446701048384546213832877135132818450637192434087040946182922909065732548967256866921159533931590530862268926073121994063565584686237564416676117322904491340973454211249641142344637561746334804175275429469583404229569310806280960748126504870453381839783774533938411434741226268990549009809747579714624081183053231109368514525574993893956395814880839740811544037980977303470266657433353854466772820104634805275657585691269165099683450090222032471273070144678914721698360396950674010591146052900837174910806276883571043667346231518073801025340842917234643881425364740021046138219683767437992251793650046112700078035266375501905513563040973969637193076805463231553681022699898217546978083982659140439317379290311033594287183511991109547429573998675436333105749163925347689981509011938770519611922481583983740620343499128859791944973230307008827661900809236890837667609496575393918680036229907206114180005219394529146176683537099911349160168734428458442676477817378982548502335322762264549461814974746965365499446194302343078348716307361314548960782123613170677906993455658586417269346856674801603134026308210441113439189211887759231551641760723189849349713041815905088389481541640326670985757570089917198003125201449217360476803190500628264326242843794415784354963352240441782074336757038825464657134172078767503185667158476631505333679499163909031104729412562320179415152686761732198228132740686063242170370680237102739228194917535723216899803698340582923605818808128471071133996029831809030867119897304624605532241087787084145276215317443028118661855971741047484194784609555738923503513358825923716991849633704389864612995109890889771041454534273370913898080816241017191529274382388554248419988766301453745151037369722634783809332842179187594323095446136277795050145688553009158691009074122157332938581195927051825276659906873360697354436320166111104103908224837231086099513156179449321859052467831564347143534256616866942971280476562797325675235882139644707243550093617958102512753259306311755808136143528710632440561823299677329174209086722751883079510451440710065729879139831925622432020351539201803621256695466345480583786070794200329512900844521239245672841817296037392348328413626504672312471033511429020328117041804058093627804754957234932959452144406696853835573139582424976539821555278277156037437287659610336036656658693899220420649720617893990833358727630290483315748067637639651321564683973425604891690407335429809048918834975938693950207572245611153345484044125256141725719595544702876787019860852520624724220793229955111062890371177738641919208260855679300823848378874043865633412533687278934001355982295265562753683842942588765215577840360388402621805550775653294723570700516732324177412713597146388513114491725088854714751313980266658140014291826580532624440695676699992695987815521997109679660176312256289608238077069988172436077664739841088912459078314772047239962877007145881907825178291799140232630155913348926814587878656050975110203140718789131609158286560748346181931018170489468648847110403121242645754162185794442470761236002687054523788464856576663292719860682115449744972114941101164587043145003811070874116193883887326999980471350873432870527726025462766152481190516550605234426971860555439592256599102381564884191474829577685163725879714508695686748863583109876114361038037258083008670337913416315968600094061373698184126857325145500825019331652534769074195146680111096888806614688046255528194038666245395044711229076317299151408882548078446670721918677820135212718571857566291964059657347004442851086677079281217984489494267558805147728890120445314641516356863923344786341263032748547142284663438803638180551689545318723247043829818093272207726284690791601667958694306772228896829331164170714901567505480998654013642936679210751435488259444510705029631228545071065828173603569039737992055010880573020331971345005768108908541305638114911143097558445013934926513089201868041005478557142413736387810641293370412796286677048498971732774497925669528114801953125476317095478001670517933151845042674774266897166385501363577278246887342479913840242598081889041114432356360767597329612720866595522658084954085349992089853169025356446438169657966366145373487507383629536564514005840298548510296429584768675550710277277394740844188204978325321407936260339272677948541332389062701966389955124029784291255278927634419555911555084689818498930748051596044078989717600165361660524835323988902130648468166307504548360582151660794311423945670683800834720045129385341432042259673386858706380244653526682917850905692983066374996387051815240975210099263118563496060225881679806089548545943770358166722199816656440947002386316639244271006856720799602404384861251637330019841800563138932169336529736601363343069884336311648946340111623287839138125309713293155294315508981791965978238374252178121504595492192899688775229324880147457094581104841258287001012140199605747344549906763979194803919746230005276893125476667046273486069556213086733120662160854576756593511560588194768265513643156324154498993803763773247408017978368591487315690570647917902468236664996345879514226058024429832134735201685172680364614482045726672146275952685644960752685307109814189209358270092044555346948572968227552065076229898630475245744128580010117606356752465513189130176014611399597740729126127724670601503364561578170464825317727550025198243594901755679886050212853723282209621835010947060886991229367867168833397685138183918604885946081766159417815580005485519102544294960570393235138849211560815977343734377950307460171173287837639901669438644004065565102301497349123786302530814339297059407927344797781909317393597087895403624040457823813875044258334734746395457297639036631799832003488684586831124345166683479755179361396011198541889804368762759532632327804953091971561116719093910445510264396090121718780434438733558543379505076318222130752825544501905668884253382216093310787658105019674156041652906071365661386086143039422693024131704691368951695633310394653353787234540607605161325856985289061654404563263171616078751133029219776370516758096477038616787328083569275991727097405545526772845432333292310207401396944110941551861475689415553507993215609374517579651367337786477210223407885463942883576868224656935534914922661123325133905042125646856600941065454925697494584154859302021935796195590302284468420378214218835865507201857333112110748434954472967037657101794091277243665970702488914435749669665417209465410682304212528796189762950603282517841389928397705697487996261714476746079014836894434564026275884577834361044266905436359557304082138940292878347349357481763408665720573446216177844569587392578946310453208728342939848464661740191985269930582770346513765015440762902336894533005319145148073155823877299973541511590262425984403360328880725109080141422464601063633450031220518288884798498983754422530766653244925831409308590212009184210532930251476837297558600797928834955581015347297358226379336335895159122823650751748905124241343075855624189849212089747437600215167293798895210631493027122168225871274771449736526689606618079796631551009511111604763237792732089190714609935371805183166042621494497206413760579225269525894371154374614911092682425274361187891487234035505156027061533663379766853923860989936664475370869173920142913354332521988900438586748084637882549329302061863746921858156478582990572210167917914427780114942128276228213670601793528131570315553315725262042884649610528162742040598824661603949455232731735403929436840027463923258614467453366814610561274799577331312430667091229745598024023334216374150175910274663655362216462786548746189702804209184673896523501943958980868221510166891030882293670012726405880438151233164300161586532341977797712042830278440750720188484245858013805403545004158783538651525754890668218670638181408985814898894666071722017527973495028153946519714629868363273782422369244547473910464982074063247263529169874195001631004182419303865291014111387536981593498598626829272570709212117313915958307753705619669057153945563888808891475875321128749537757266324924028763528160140609470937497427167737136370256460313598074072178847083185307253633265314582259741342765504675640657814054080092555577890139326899968316091080325719806398765202173018814498149070456623357760463165570019174972287334161271617349838094145600144191378019716130821722478391706051483369745028389239576689659895477708085278653550305944771209874468604481117028847691308082120033589774399034378459108704651752061999229453915680096635362764189989144156622652099966882538777368196861288998769383194270113822115802546102602736864363576279500623343104324101731023441061434172328746963461155568123095120596544405376146911386419634061610350425008512792911022157089560740312195229496285599696880327368320693824822622909687143500661237642079049182253069522201297621013753873418781840621005500173778459145979901022588076225306850254015041427770859264432057774348866554510625711218023521907953588774609843407497088325155570330055845095338722695956447997701750772665198778795052670992021136104225444396799397448382817570683708279558915958826712681278167053689828188365750589878147969214206010548456771555944671787881211188840388153559669211369587078494269445720963635917400493632355370067230062224756636321020176768314871401284756680121293010810734681261248476576093755047703124767366990608245496685708792584971666963626854815392215441277686846856732815070120464138709878259237351936976705028592360839867652574709880987110226296025471294790725616577833327256596603884788334641164934782530071121852941897616165741908829856013875258370149130120716417041029302042171007182585911740208112043985977338350918963617335960984389978137643772856597621873319226172131856634277814475896394700972534621097189919757746202554224361226092529905375136399700248564506743766650830730005976337054719833413730052860090613762308575505025230175309420349323228025994708656338551478995550551832065568146630307224693442077458099194923532982580374806507824154596823437071123403290800678685230777190877952722123731542088155121802505668331583245419740637472646150076317568054220081192948421373293945058919231881491608573791808960231810271927654348875322592482910910923627322288056973506451710298857938069360794252580752878709402762296360355589632943328029616116366796906086262027620912784988902070237922546771305040056292651722892387967305481154275509878910111238180351075895489949545051891642854587818331375758266158004145116938507679286114416784155338178754748439100501938784320509413398502177868431147558094579306552757451063419281809867960536312341310932639854430947209458821626571022683354646074256840558817558122846490298949789506172043936381288623204273259637875107188439594585231475538730296129457559623714972546320321135991342709332350329671642989971952786573248118917909965924936323869374964522267400482084760233105295631304571715294366830204936000543646250281602602109590232672587316045648850092360014355319167653761248287183727629899917390241179079813075425565586282199414234589354598369872161114527864500544889398968696218059241378012237372934982779341865240158044150015126047950351282897712432976215159636922249883970944268672897033949196860267736588617268356862891681085314201602133381972812222174764886517584111192574135052642846252522805715987456539202718537486996342106805549927766454677100324255116272105866559542133306993987442530729750212528188170054598799009985400452952148390280942547959327800955591741271331833726032515072893761530376191604275521950541311807273186580284067156253084826803415191505778186826756714525043247659997609018197233585007401629668500986391627879430416908371481019501282419092074196732132253744506573863060244644954073868404223022535145073937645293815505406958479077888414265683583046099762837958933158652517526725658259534616130706504961275748408566306869517978088447602289003544470062124439017907151874737849519426853012458690598672227798061470402246509874728231090225190182854673067152171636935488091684958270690199207797617668601342315297417826577708908041423582874892544797313620670322665729442191951092163648114195426720703908152796633650571607171947663348702544995504028135921542818910308745391381250424805377323686937403328547226883741637992407704127870165405858149758469703324350737539907251069473688156023064751540986980659201354110601108423649659661183933152522492034231734432774418123298551698918431943860278156309142305385452800256660880031060655616760432181119226915000836303032761487979296751785868577289414926776040002929146660184319217749436313785107622505445542202130465559536666383073170535509882372543097401943132314567841577656886764947753289353460788824992336297057838410926949919934615361783684054050314158023596735251107991073922107372251463103065535009138977258706368722911050030519740723756902976250451237564197926042805131323003241582197496025672756199443657351150175792650416033620115513586080563070520409747043851839646242402185731438119557256911647343877263914586369803761518158612517890012718478804001683391517354240901135434879434386681957708685705152538031072584640213457985461742677185412199055593466967033201512503948136733019273088307472259238740173954486369342126277546098451389542611641756147460848354897402361041002958088482876615628494915486035489812384078482833053338203713514674017896317940749290431627701376208880014980476793630753568792637340442436210804370911487683546217334539356727586325687421264636555101787316119837957666359798412746889037680096146229390821666424084321945408966515959835172138609745138000787639027001601128216872429434618547442267622707174241669072021688946736771198089652797466538167083844104619745223154823859439947264077540878081040584451893252075042029807271414561360656368308712161443456833512216420191080086092659136857386724024997694354775983902091678112735376057824984469571110842146855430635490192611037416225706472026141878313000567428226381255110527518594378297005514518971833085394388621536568081591228108523053401374254919955693318594504228272970764074256192599719159034756981671884361707223643163353218333610339599739451481097194288017813548364185096119592191825967480855051478718740889803397272598833207807031120495399813413341776892861779496914588065038705272525178167122628084531396268534544291084100693468368404213484997557724417238470425604530003236056902610773455884814513532635058133975012863474012052261310163638378307922867521794169779195113504795132911594087329646485937390205623172490213918091144747826522282325920411574021581979604487446835903349744984073434973293553091323462924165308077271959173060940972327403577010119460961247113175075938532875272554226116492766519016715998167187752733436283519029307590589677366195368258252484758138579813528613704014756991697266015522002082824541697927419525007361884793579571729841562568704727843772587100841685177021544013194335713476984706418028596113256232842574735792065731599019921110323899697499815642346104002257944746554716622237641025164559493357393807085111959720615887493560388230538654641117373155535059350372659778006961248049989731709486913470600366954519575716563724565997334537194836198268779652110417858483535653298955498713127855797082584636075944648723620020086220827423881770737277205612513185006734183562562048921280832551032856854012793250797671527240744253378866999760169685082661247341994944137532529769008221185912561004598494687465935096961142060831050516283064126524342800814788752003649751212063326069502211726599561517450306287882327825089373276349840217956884106920364034992335822025934179137472391133365305240791580006031322310881209316743182096186597493830504649777933677696758814396534823351617936658974206865245082860550610155249367940997234531695878717919490799298748424765636734169418102011074298507341898060160997540962890235279436337043893106357201239434703969822259185729964568758822923698999633188023122906692597914117506521970188516511153761341567082009379140187740740574251926722338054267158333534801267225273678295071148145402209248167369771088197215607698825009511330466268671209584451883995255496316195784817821821658845149101775949798539321595215125306496096246257253790459991169813753642115120813226767154340155271654150485614082742679540872705348293944400816335252312666529252477719650515043897024868580693437905851590760386905922543345808552829917324875650016330446837786302762490155856606910905224353160115960973803458371868037789514674151404818315577140150663241522776018993344708629164178830456792467135696414615687429090866795887188678916324237230439605868783152983396694607817387701185800200342232538922318993321303342934799873575983807253627201888079441651432629185393132701072428018242210707264165257939652743783996609510124616475158145393055790093068980864802037573528919793805772426747803714456140957663703513941762270685369034365440448872077381721960444716844462640900036085317583802708418396867922935708013726804467451030257862484270815691244005348748606693635755805749284746545421870637978360678359661640682891286523753424936116707272549415477067473383187661320545704089617576547165070958904131097496650254756293759066788860486260141664883773102560041763555676300217477266506023356603407287934201243216085457493994086456739611979307076371267884903999854184289109157965313561191333930639135037236474878419817303141810697520089771781437522365956410681344062502722407284033097957278886333644360826132216090741946934798896346015734480412811187114442531683721041617954623424445498828344152177712585466951701199054182377976632657726474048148318786697939220978965519348395048630806232653065029980085687651021660171222976191139406156298073727606344788852090202348561891708678648853099655042303260595441863904646290697823903943316253842303366953927533367954293884306904218401588595891863079842666238481912663288217837948041393638507374035091128506285639543760264376967221575929589005166392918532518923049454776857639986163290351623831986954179882722938321281886498877792594844800440948903436365553096549992261195206614441210375615609651094389379216815335559141403675289630985405917911945469910140131389069082090815699585420090282987756241966677908083309368706566124594830574617345971139025206776246260246447260341348917342484992038777390265641303399681477878817820676561150589712380485265801376703421071922126076622371790838246001315278043266500746891047479507855046281816569550912172678617483058931996413228308049043504937329851165085782761076768591169876698739138817540207847655421516752694426638370820255093500061203071139917279108570193823861785266934235648763773572980945390648693686717864704408993453237964241447803089979131066749641182435321908421723017071517685342617671253880536180309913826489111673358737996369915735004711886015714807544959422885393966624985624217345826179212945510251516953234679760986865048684904339555693095846944660437329823437269828678859688726267214258172506576219245296763735972365129232055200845855419743989434570642954074786868121310772259652776736495729162031505313125161159875475312456952564053961643145405697925874450924239546541774780851116220668607779740068143839140967870723993664337667271059127154613347273176860846550776697219010776284079264691828375368640216296578344372426318155833813870511297808436969438136093427408314553147574595304107690260418195769462101027591816750385277259971275027907526147569308890541333968277950498958333384687588570402607340984803921187297269582630398787652173731800516481413105881614776707411810867580714377042537047905090886335065029100374304107101087315790327142204418152495618255620113823457888250080413711237111698273839074254240917173562142527596616945519998192204799628698146059691074280655235084560564111983631614963905918144685187848953276944369308022710235146934377296534357516453697240526657050998977920574441269153568611876648975611715769109105924947359648275446204710343489119446759795617055676943075085090786469769850272337998810933098177745093574877009435975330394064430487861121484290639790502525604780788762473046099961623521703338034015754055310902629856741847788476394481026457423106524282240307669616142023282548945396498652847261613590463129617135478426971993803142869790300834239627745162091117136737033724628499283164537116375755217181018995980870415393016544656261133546794472329559269914053289101442058375998049671420476203313257766387660423394781396263336145039608520978392157013614501916887257102307081435350551515428253502565408286086908348457502167684938359108782664752020250101221287629038943716174326380864675585212880907285966253893111812249830868822121202654302919656103033861452666072431650399736558363090767428621515045350154446977062146361738749315633492182631047476754241151687089766166369121776565030397597724964098572379852246842738393878578226296492706091335436956400902820699195236463550827975099166900633039094125401234841122834917406845793812138315931117302365100634764025980192898859911925484704079944939901303983263397985284225795720897246611924079487398753809020338233638885175499213285044304859578406823455800262942456445709317511262640722216682573923755424582376781638345775695669107482867336448326331495771279154872645562128052491240067081151912135561801749894778515644030710561749694783094896931357914775333339792068160635463508076361209411144565356680759492625381607379450484758791469005008194348805832475214692709713339820957414474813227763548684786125095316744987272895459271628173691087483855331642678350880228192574395341073254178952722974731830386942244958969018338302107370735844007462373670029350675269106762476446081123486678149988545522208987213830717853686637316042894611018941029551776661326811837203247273218236076783690121314057047964278068352440790725436792353954231082957795530453288977410108123767351425955172398919166958406412179202963704255139046839699383277871255686868273250690117298701568124689338495492654928768368926180832469270957455306193791685576064691711591922868691080428171192907134060538772085245116057070039755647928288242107842728321666922166830184815368308221649175589286939575440698706283868837318031329934525011658895904270300538477955166518884810688010239243840051406933450814264996244147559362371394487226793442565532366244695790978428510129382841792691665754796364558938121730117971713547071880562066147514867086996026709680149628964835726494291690978498685980102664783960883438621703120373033797826392325555864392513074447303008989267527750735562070122827824893175555037591809964446827285672151696643708813479129095002203619472344895014989974112296393559668362405322812786841889055729364846046461780513658204479544879691255875313234059657316077237459509798283904639771234667302406443869122634423919096917192731184785918900989332748916451585619780172540938294859539291696736108343628507423627065983552820584765964444767190804928218558202811753917418799747612873939280753232131730916388429090589717590256884897845856678020212604757062881710751339457012031999529982712648551613452450545813003826139978756420184780388546836256248276071735512489614114428913750702666501280282715004789205090197371047697737192649633317603868964671133730078951169451996014071719113873724684871679387842860023294270946009365466315604941769317458868601103642886221954962553669342988132131256862455224954686954151552787353688653209476806668319233574822991907506402634897417914125411335257963180500804398604116966639768904560062443617646609114029048973577212351443109964870274282074976943607355567122739828384680267325170024437846175544433853460727864681466265618130401152001561627547438532942811904282265594334470113480183803971485898475244149940345691347441150269444850389152063254736455584207909610899120537115187249895991778734802734469389058544873619000875694458304758842527131650727230529048942009930883279224214343448165364384521167947516994291796978706360309497475802299920281612976380087253573967434562271863507327693627036693619822194891983554167295289947095667642678522102135020029169431612125289998934577909055886774554618323035522445803090063070169221204906995304573367121129877830335093718506318645875729354252395900445845583298831826799406091791492671979341646276458955099002655500861538874382737339506342888277136279868975438439440650330172388087877656084891972943707022511025267781594325748016108878643613552196009777152906659992052161575840045214253109665504028025395688623375089766994452155984813255194263090114732446997164713479969311225599705292838845755724936927079153368756672408609267089124140541431438164694336448902549295130295259433722803586938802938198072041932589187484662586207726051622584974724722946569017843808217196584655368615034179822940318668503745483969981788523706526065118685356117930547289835162044408739735063853548713053455991377896502669151153751720385249992349316401531945718514483638369701361626295197601059002532285948577032418138289426056314952186393785831707201434679458282067888960784574193788165562210983699501002904999461466504038767702889716429010040795741021738492602249616053989237098621978174158651018412816092534759600990211507589364599143132212976616577820052945449243919269086558708912443790945559143645530328538354240548919701123902263460111061971569041863937829955270579506700446408808726315103643180842143393372342190115034411571304355946741586451101557033270260010312558372677008924644938841442956594039520721019944037940524489387905635816282504354272533303555105751458564578813792284239125071361499082993391531590288901200473943043386861185283700303379250635184503963810046387645930201980332697902836215943923922852566961417132332972902258087584764024298312817302489302723314397357464408186318749915688760305270275886729704328880028760307320374071346579639933112692848467383809640023628323401787417106766666481205659871725470135099756376245481331068016117799294956464845222078699656455581665546264802124618125841560093263660270878562729941123058495850614023947717133558263720350456866360277789825817985290099667496688412328201452613168452251951286237868816865269107579305178357047296553370311598902925254237613670806664002184427669152689388597160077908778537639114589972857836216671198751180499986319605110033934841607655370461601993092011399419405141646080147000251982556569708950432947060771720841759556545947376980402567143986384094432215844330238551253206271415239812430322126006778946668388967279556691515321598022463555272309178560936026008913429909021369778603217777443034749664664480792547937759021056423773643786955451690804652245302294934379351089918362511934587069272103328793185810677982504475133742195670544499461806452637457330164008627068138602853199208946071819018256695352762475887391009954108379079398377379832943025486132921500444864832388239152423171162153371556947755751354680741350546470949735492852409718835961606051092498313558083307482999414665632273497766640857963276972479299402123813482446603221964875918225409294375827076165739291995686330394949750234212403796007121340857780809212036650520546874984287817541515142165988071714438263067801138448450846610742065319953125071349080506467627683847846228910611588756100573026705421757313537772695188625667603704067740695734985104073214877992218512496755875487187159087319365502311471543074205897470287488135750726003679232501147431472200149560770337594264190245313866448253332036479484196021093077029989760048756819308116792009921669921480057151734385999598347437804738292352574750509194022230860918696654516775366294742311776124032046994281774643305568614036794751906742147884080463370526938819881496924601566667650166584020751861109482309621347697241258239172927534988511562474827545642041666633656563028664659303263870795912706428157999316606379456093039867527728808460396720411299895580946234729351705096784715298590730640692690291779294002615786669896307197040444351497440239111200693750855373589740043728948392251053130891927964706484841523579213623082347565313699711065666056154749521584210644130033367793344291646618313626122522009002762034265465725082118819026191233886759915729378295829039443423254829900409194475341211146150259065563386862833733469804604379632445328216901955968839036490499776036205349657707372405616859386384764074778218664197531369388325804573074909354813187123425482614495072163657553723941756114333645072318796367580441766264140874932750865144199094415408972831732556985259025667181989525094893918493821349185904141303204871395820118221913050683587445079763823130549612578181279915650402986742391619462551409418374667179691790108628130351045606015496269657406296577368361422605666009753143755964129220854777673202653903314808222408318229826635114939016463036737203071688048175836751420105512362874343410876842430337299752980530033459120781994844364351973366433004530486487829083548940944255639973236960272566253338298257918129857933757645014782088393553375085873239222142042313064780906281232788680619215718724386129285065229212267242536647807368686104047984165310285236550386913322442285175484938655543309974327428366990791451926121448585260830296188896783161848955673954356338555562185041223591648741976172332444002807688166214440347361628219343838637615524520117026714620931161311902369615443493546169397179068031533793838468830977467270901932784318970440907674439947754997064357710558651380439886533388003843639649754692712071557335869487754274579311622316865815941458277220216969232263704324334604716934369595094855827501586710160651047972144437783966890907508032245236134765086422718969385126993669526556025399475110005126458381573358653374073267023744564693189824040669972821562480133380963696243884658102196383906686345458668604613008322809270861395105755833707387112146970867895981464618340408578937490469890763910455769718631404617877898905076345096443931834489982169084437100838876832749797422268447719036823956581311438589256664340976727375433208387407051902083084516520849565476654929420045074989020333172847061727102277340189575157394784741795422802865234977183102819439797804768629109230351193073143675666146287609422646313567070332660267506495041962605590250436577862013628063646676972068063626531465847778440356646023000223678543587234434272796625963283510135058605533913296910520325374944227106546975263292159430725837754012214939344028683358094191183046048379128912648897579123135130532428667465157360590674299782707300397790049445851299468026261939740272657936637077599386788656578015163261711664137205859616658423413649527446132925417417499526520355594995941821175569055802532362310312834634457349732178256340129039342820605875060847951146219771744821175164935611127484151466257240448998615189820943629996924733790178059117554336115235730629362903737065737950295029005424909483903515083182344849581328482937317592043826491859164765434854145045472162886101805096819045400873896484697931481865113684944579471365982772225443442401868937805037841631850387335626582543288152891682133710721811534652208930455507929118264130987300945457265040512385589293841454471562100426161062081381591770129160585925527562645409698185405369609331942789273040639520985335571660978346353903560157644860785022733462683805745056406016985832518036983812076836589104828979008051314593590296062146385959513125622706121355033777629413671530008491087878839014448279795760871226260488513134695280951534080024859174827118820998112714995781545765379491084474546527162085022109869995301499384337933911086775463473507711766421296724686415118289292662124287178004619624529066533973156130526999761427266340558068455327928175433844920229513748780940969154716807786028429641668701206385859154263745566855987778528571036081027484804863008832325734555107296451326244037040007102562510157766324612348533369236598268537595631727849416131744776729440902839660585804393746570720115103198128725635960246844548197461530557991371900140594969596824475621790768377301947456803843085556745485169675551966142162263465971592879095156059278573146743679390374835431832757542727783154704670081329115843474749509545126546598665284179709284994922518051706858495132998182406976756551934469255120788861955730842671305736369184924114426070945629290483724158180289178770753826713481055547634887962367030006697899514794300730716434748338881601224095141603385720292767454204411241643593529509678588315428553761455762529829644486062179017540828830286469891136563594943750472184858434320518506189045233150175515973005619322247669249994856174755022438772979045044713151654942521916532369454118577478588906299138372281160403027890855898940677897212091747809696186023061865955358022201799602469118496929775716451951295596863049298633359652391753822107074814625159489892941245141641059488254941492975352540959569979685290326551393906718513173595421073507454051758180201258836912717268471570319145701275605049080694856628162204211244534779051625874543942639645634316060649220174102042960687247887430362071231159362258689889528907879485319329866263346353461355737792351472528493811478106220838334047015838300164743479280894753492961728450592446941217688375374903230937020332273303775889602093203531482586393156939135048058179488475970924381311230848537768855274908599872504552218262581068190744204368502935599086412980936312060534722388112131439257390604173582620921005169483521508709299088355580091281939803074337642099797769220448979128680476268341760622216113253658208552863322861838600490101891627750515668362710500089503981557367636505746842773681252521484921525657894539689616844098427183399829782469984961264799285287321012203789879651927074746795157749032400807606073286334878638393600121869463030265083299878949742726003653306266027603994865242595240769385855800590742443228392011396291134368984780482126821442932904301865257312087692157825001069997047176746117391125655224307140598262282039665715759263281770475238983556316329680913597869405364332113536522084492036460485489917842398276624840598387627236766056814458631620945365931918572557127527249441797707286492219761725398274944213387273744044156874192985081775024706576487089594846570780605584834196990367809016657939494732571361825156685715729426176134783002214172081183227046089789587972058890804369458592932640065423394021439855299783805981806674298155411732417426394251641725301761940080329772852819815484992438717533371678657836650512958563611011124442342483933528284038746609818389884505101847204492268958449156176505100763680274145404382238831990835079859301059856091601400045023854437186041464339661872417542807359176535678626193652668535809373411266184907269123012524758549260723530491013802752257246820866986772735666167504193987331942924203704325964813761161926424794182341840557254811947669010586894054494175967217395799034060489020977273632348225962950092160001725244375788751024291576927590987942389514143117653077816487836643830087913031697305739399736726165548640705710240098835587019646445721223838027957796114659602123527125407224438930853886117338787877276883426364627781921704388208676296041396555114983655012730642047807748181413232265099358837887129443300302893353947974346156437690073357143473857123141974586011521805201006575671338527270896827122363100448621079645429859433597329104788715728863699599947587699028865941434451958828689166487972934773585955859629472793857851445044517236032027605746292163882196713304024781257903217230187753119332172643934232537087855689566870859348279650101290543051080952908405739265349998320893487799214913193618027934076691179962246226068126244339996679695490353337025592990961345637940881325125313752669870382161101357732209637535438447727200678070869529235585562121510475157900527340121363285007430015705949457298684500733001088449028406681702233027603424683064597154915789883584557175929107992771632432732413094817832419609346512632180614460848461863741412852900223878112784562113416679446016091933141171395381849050531004526633752782444746609351090691918161789621955927242087615680251326850840881001550397578827964975439893076342357928920651392790900214185205690356433265224786715838505274134174584994051727395355906187489199201095177734916356706575645307805165847456307178552428707987639804796408886321577395102448685126521811992479057142864739038237554296289903234046256794381961715195560136729920877269324848131824309372455139890651315997650787318067498128124195238759915448699161958590186210480388054387346885428494227611397202227606203602279208569243365069476663655780844383900068776825367005135107391951044865416973920402504551618383066111578087910538630542614361701648622848533643824191024822007093795755147421218071179035401266737390210345527307657279529167580785455903941905327868085169571376802873856753482464790474248036906183837751539674121811215149655432859425238782473368674499391117672602140181026169242798381849404160370108162842301885093644602911513894690859207779087057830683396860427491513242754964573612978144237702487971564935950680380892899177547363114312078334699421282844827608234877433619184571714797280302943648129112252034582156081080146412048773809913500224508650941560678846132389235459792315326629097826017889140592141536018437798902222225213028417725389662729940164104731697329209983032333818206310831289166556786367820108247634261885244246304662454758861826560666703991369709376486697010001613892604795056628944456600369573176957925875310578559167939118904408778399478406683893841710129918796578128776692065385300150199509590082889899290479874329498521902916626277519859702086254432157144771509952271261680422326046242036551800919258457859754375465317922042874972241700315529788575138403759511826229958638012530011942408178959229679867454442871542084182587876803594246668111291803397533122756889998262606038976504844788300451152819275844708394830114312261873777863064330243870244688311785610943095291397272397916811525949716233228747823893475033283906086211952779483897284496674548409706840973662437999195880975109018127848173979243220382881935032931982283426056493603004545569905336228513156216881646769068726858002043769975271809077523191235118565410393192958904188170659974615686075959555607518979341466133732180362726575841075516697205479934290428459021027666585899581469593504672674343961736698228341994125418142784781178479013271932174347388256475711615191460555281951525973889140707513174868163964091144964628452373028715945595633871223571652568459755639117320335902274537814867185745816865469822074905928657404346461977537357278879999184432447044569291326248044727006897286814805740956041945546230603189571218995884900478301102118033424941270655754781611106606934403065183436360378538524044861187142529123826981365486748752201997165711772696818530926892326229842881487803820347834531525282555422736750627385074207931101490046027933574295327859506850382320932108128508902125369347614129702669127219150207063798180614590118552477834571553181949337560370110121190082397768844120858900822179058464285259880479416691453177785778081881171709925705131811093694107951271093900648751975547650192335605269865301148284989574384198940529214707978918658310966281265835061302415271170201235130428340057958985518124055071858613972125003059126630620582206095538998630111059062150982992345652454778728731285652966932351267327224317580264261596132341008748623037881485892046490981590641244773255802152647357250039473525427024294972085729244953226976269160357524294316448714685163785953422484550765347474397911660356473489280921297160312183231867241618447376587002326283397295483871630704304950935654386800580937591803306831119504023834239524773677107721238265442034805604925074365806022563567597145005687642972911588799262317847324096297711835206633668112542216760037842946375975345300073034632894641821166842602915124740679447271331053348482865809262659707039656340750302888326103404171860821761212854502251690839035176561544030998952221694020671163232493222515206062227824461299093798655048892409041825585355828325309364177907019200152116445178383642021274247596639866185573583371850879900872505687017619120387993469460836714614688863035946068221474238665834874135335170176147353212533281651443894124942959218046744206713186436724800524009664483220462032363287151063305482832229423265892082967918551442985165623934365954515303867968105410457635919129136399143944762502034961565654410267248604452868132943820537298870866915741461200109538898131567754937149342932500065960794945651691573746624680199264817106808686171565977524376773549947062987353762770044635799400905993480585734829072974779515241242599348653036226886522206629925329014650647136084669933208814279246161861032075265480794348724679752489644900614799119717679680938503443877966954600797279268620541699569952017655442602305893612728961787205708689324164601846507082971697522902338781589632119699612764407691136491383908606554603569175828819757448492600733583091677569456053292844989745552120560701258135560997194435326518482646895968884867576697073472044273443580771141355634769111917708867188810878615789913935459483399706484915210929664212528805683669129066295473786510698067387189551058267379455457510771149235815752865191974200387845651690104852807875704056025413015522539336508648355495085384440894530747011819688298075726013215983339362055850823884960304040828928116102633673407570847332034277115893809911566664413992907627806475357976719906106648113837967941439968358539074659386484496071655816673148075929673389977930948776687751411863440491197539293574169504540101941414960484478946513020590219651030165122738104464263879765470942133570111122013424120795281730790231376719936180402191891427332675237163403637837809941822518625641132705250446246145064131589809841495846533626565341006272718995613629797093142619738767451636885367097542314799121188861967756302338804145231456691721291715147311868197527554329512160106298218315934968009135938716618496370392227723014472913741927125075297624499249875847662858366227594679706508696507754468501546057191512188733165648232477385779431026956859338389145344132739119190466586305101126808302450337350505166876018085865495045122294419728405465959080948654505595842517092599423828509061994243130343033905864662272093658481052471348559066575244159790755371542844207614441337429737376805390351612049200782469792893687228622659956851776627757052426120135934866243928389988297720244881346868313339027061743636340568115411933035620290124282449146054110961728105442592392512897313426979156132438787278596135015268396387798212768066528676179114426164625491048851512992130237109890874445607518993141396265959389686572095399379671178531503742337038799591558206308781982923958868135594130812461700714527736286181714073443648170128568582567366073724973502113147725924444625483978052335179903707609867306580926963716769974034342754651108803503940450116093508378918146585049120181671412005727027728863358000130531341214036760038855114287845318009630154468682670154934694081569265683193077627919484061820390925513682118501217739968558918305375669724227420350726622719362801123532395102921535609092736963401296328014891183182211039245662483551181150198430831600459464852092075237055926178794946491078008692555553216542824523349219779616263562057018039371761053732925444057332227124992369372989245660047824670833420352985849810588311240505960285197916521027163279441845578370709441177280909051167356520435045935630926245587854851714466668449899202657656915539844501754690249084100239782750040693006066961105050422135508287113007794033568237395206558550949358562650956423877396064638804730031255786794605908388821570036767869635564028593842661227493882738152702072396441867680373188200644751661453063045103572618659229873152371130728202993963825956414267076738984585209151017118491446749420618122467950911649589611243470124522117193611139144810367126890426908012164763872460849890280297156902550183693384053635731986758057019882874594248552520196693917818933579451629253921608257897699272254833559476692007045931977447383596359515687706388647873360334128569812738019495918568412618098489429838615088321881359160413034259701980680371382184572332446917518871549929474385358725898466071382981652062124953617551498086320928425485513979018256855713155050902068268356528714583893628395105387305293140770217950087730081993205376798793019457152032900952770668294545209052391040538595810527633010122443049061520128969818832562105688978172987664789337310234207672174825187289280476859125736038903200529246648906070129018930068095267888473794202257677504700396352350816906823264291681476227324118630172853560671490444945136139613525701061162845062284536847185770373284514165965409802840118812679212197922948356673602294601281327812184409768739724651303412899722951275129586701268938019946689943604154963844220696496423578265757085436452923700783911636093928780636279635659782180720848098562099579577332049467069605864638044983241474135646503805815292841264447698095047653702510154090787513500621648059055412750842935046470045596836194423363260818251142863048440139475792880008608106396301177868987467439103802087118643093422056700923963787554496376094084659297171992606956323457831868536377091231929709216329573045309796477904233265939771216597511101820202629693595516875076796941604702344859304963794781247745856970007298107054149240061062782823314692559693124286990420655247482309699786276792632285948323495190673421367577316587997161428920840035719111810479864944539997478154652045651019905586046932794012413880959708106142424870406219576458005296032630551263195796857853198645353613298415932694627754880025940416424350797519173471907054628488525942952808041424204113217419194785444618856504288696097440702486151433029314145570432964557065518071975560026231709019245032403044295892188128466027093328232007295029036278019423771000820044571467127552683827254873251780508110989987525922838216178700839499849777028175041829452223685144314909811045021302402119765786972256986600899526930500962249596848668227347027346319620033222216746764625038883809007515730311811439238338267420491014429363974038637856704174239531470485160820880761084282758268710858335657716455726164649647539492389821006250113380987714524648807673404650859681310361915907225911699430857582293123658406638611500832338247376081415816050025464107130088738738693396991585207591274838331538930054747623189112192976302854688926580388727835736275142127196688715173125257596979171246763885283913064019547006267669574539895275884332130284570470577722984086965754194007260534341716720910285612054464081516653775226174403594505053538301153901420790170927554168445052643161682462534927544542602395499620238300020755573424784868600547553434560208278240087644914748442166250163446551335881562773817835017592403384315121264717025449492232628806029814462302900495265806735816209704605157821844459124443194271883947019236198828503193637928295461703935798554417771844925581659685387096331374642860786940245108066198530861540748888751162517976646349809912830682625036775866898091856001868049302179336276859078734986496026543279215906005331248336358790778467203958909715211384600863930068892488748908064152856650089199196742493652232587001884113800165868241015586299315138981825852338576382745751868823192991825298258114745394535214912618797270105255374455969721342198001123821177167895648464597018157900542880698505988754418756786542511854232522919030793876908082900407363100968974179125090572300510943003052698403575756083005194711084606641778163886694214755349190900152307115792645769511279962200632099879384468211559959326667638437403248564081687869847091183354104778504236380923635941434121329064406002118450572361069511767320404314526795812798535247800907589157261518052033380352809260785465550255267690782798430671033628734376347561659639280619103484453936027872163737024095153733100635394572680918496664744962379768495536559023525706934203394569462305889451030366483795306244042602503618137036348377598244588671835333911984482448671005407604705845435750876188389513832401983549177394632717229851572721432097398126646426352660105474008737013949715032441447570669424688396464070380326684463813846178478610528480338088276500050187858000484516781480918905812380899116011660237059204353284808024213269858145194627215920662618414043746226867479999321350355330191514531697673365500477100540321536857735838803522564024416543206337960813970389483629056150392746268616719182671995979522709349713632030822207810882498834309104102951390262547400161253462797567707330383236987737121040854045207872146484972190124596533015226043763779530258190046813674768769987391027687262148403049923116319473404484678391555671739019043742656723158209531095490085186856429618796127011927034685016453798195669292519916811455646759793154553383387317683612181187368867036411771721241888726359700609043624731598553272981032275135236558440868983365719440801922234757769105877109747569123445468224408968501334095684971945088662534072451764611812581137326077368024656773145615048494074691588068899663200281294607321264180363988256919440969412599641790064563772479564390417088612907752794753829763604141533329524164044899704107287783008441085348910381758813108348905151501639261327193281938224339406980139209222993372300471221771370132044156872474023360901359577436011129549314104273848079675155014867178274948587245044564911599957196103970187437422589243071182366165819032655579264675932049291511941571265800249135690020872426709858927288457591520041290294120776212513616672148917936863559736093736919841756585412551649020520884261278677138012748314465111659374578077690195313885639538461819865788002194089484446403692757796544674336885652183832394271629405415349272997318653958319387516847184908110850164248962025373242891100078005417268109623958532084439356072875100295606274068277151805876254974274953514893318338400032842488630489378032222637682233124018534497142280262868137970982913355752597242740282213496923109952761213760606215190240308683194559279683860125176973493637502403386685781546085371321147625427860417341907209932502883090238133869665604403386940192733174597633698656610809282582918771078576899015689089816595218017874292223316238875221909440088757389229197062266832318128082246544737922995024755216978366496597316013003156475300521807524568754373258939573834222797680068940831671752004055019576664698707161656264349321722981833858720093895684440839700894974488766124637415965569741783897094563790696697406633471403659443436161809665402557593033616190791817228601078350940954404240143609797021355954379482219363070890066504024747206026674659709082438060639450557840082519012720662415178847558231796734492971451012150319283346772542396590930100470189778547287671931716074963681227440320062772139296947700767039301493264355273408080572665812446394071949148919087920919577631544617914563581924234730320062192276139823191296186776653161589058564145336071689752512004695155967276136667721516321588060479777845379869902277583093826367701281215376475623070491288460520662743321937307675946480682721423142107482870234408993304942188503509941262617358768249069058083184888646708216686472778353772868999538391126509172993788040285764076478367637127367596844351417992447663114298286890339145091490218313900323421779528402467443712804276906091359657043198293123427413250140452207649210109867183144290852576697508215411074701689003620683021649434225569891536501451812344742659078309736224456649637849274674127929999516780037509970937563401093373318091485437253805856638097413601368836385768595886038516501892343714983512881292391517963699485679949522488305894549785345416866957184717469777921796955958546328937430182038157899719511081323342567994172137285568198898861976228978423665316278501062356722482333132775216650270379626899206674546428643484889045794912525593201725080598463142215372255864891570253117808576345091169920137432704272255391472599584227071498581743507311473804316987171436867309831013081536856428628424460964558020846858958880707161057118588414298733755869478911638496159607999466189667545916608267692103319077089747482883913077083979319715887019754901092246209166824887830345926728222043360460378347337864086125705707923850478830559129338766862340781192555679184280852534108952247712772313196091069015319130193985959630146029342857760430700857234595241657200273950299480641492211713935510778621228607925185047766413705717695919302186371673239593357185182662669154693537392419763743441526585084526356915265353749371336750376747219751773346240454617838599643291977827561093655635917153610915272245701603787159684750478032834187225023023633368784361807630480417514799743050549851480773515289385025244990572693284976513652791329176744569037214273549459529380036388802852230995720595312422638625806815793396671074456332424547358500732846569855593766038370159696704700582230591391337984166266482477773111254801435173408435124269190677136312130632164112920175726035613338275745649504308153799206475081555226071721052312575716463288285118300881974972121697038987212855090912146256275413730898173322119454396771169360272763867586202407953023261982092038873566959878082045159883404506287848502725564725352440538795156897623550119059005325543043711280994813691813902939118275157965330650709158403770886744171972978312253104617819147039280377279728999781778241376062790529189790228816758653227612027502649036715149901638809424528875871562080641018474968247203854767258791363826915714983960034518243796239286666344524165357314297456238616316097792813542470364315689268569344188444049192280004238340241949026177868760545731764274261763618764231362399816274649489502594792424186076669205200091752555846093938634372249160228136240591416699458798067904873711836538288489076648804106773488194637082168139458101627769493490370612039032890351073139129697318347101191134614556205476301452435803535326430821994371783728347177777952118258476211904068240667231543009097339804717548035961987086827753998739648351372140761151486170215087227515551564118029722221133861841146006956626007026783718628731868870832740876627352824370420422746988117117183807662860702419382759698512164920828945066250412273942281878274517729299159033271148955130019929536589847130308530043955803209826495375356423627917428547997558257616489238826436580464831610091996955488795536819215523125585255412914342100926299595476968668849053659685277360238745146282652180599973844505765931739321710625497043099671290371675668987725060887915867070821376260715235742811932477288639184294446513576755563803671200932780536953027181847585319077936844076055166754271862550391658119672319539676556107758228261665952467891195036487270517649482583230964910485930643742282667169956360669950788643338907064983399048870453795160976644880095009100167450637296939034322643424334737409192441726211304584615060237349388373727853450056868147810750223265105736346611118691034191266883569600798874571475002502227037928291567792058961583668294232293887969708469903685160024282863546914427579677771644859495624079963708526843765586087516984262715990717256560222819093582079790893393113140907343365160461941383863578154062933681102088887249387335967966573902688770553226607225300285292114253195596733072533302289122189228333192388160984494449782942469717043944702683588345696804465124643740866984425842697996936440539867078925780665108183333265840610347425777433880967177397690611333435048942943069981014895684807255560312940129304982750520229465101544315723527405778247559484924409238097906642055062664723044636725403141074705628967214817191290950523626841822921281909935578923930870969896533402018552107078685598690764255444899735009831277483114356891039424185640547684457027986441021944195327998093340595197215548569032154734180126003165982087248599390338240273316754058993942167614865690532130883561937126971300631920574699121056031555130632484155814424291965669701284126089292383377276973861998051554693752995248075510226671103222356084550858528706182230238185517115033956488167076181767724086611658093096558898164798491338963950512163262349205558118040569996673673515727127957416003562102986676534316137739209409365341081023421178795450180194525723837957450336419388087514806915771023943645583572123575463126977917763897000602186302440035221971154612145564385046966748611116245932211165049767957870692445450942051829982659891204020140075035604478530462058099961273890057405691441621727510071527625495691222758741182757196205327298862062087608279220874418375699978714716687411654163593795391577375994368474934178320393078214890512478607971196467649539773145236154805778213028971629474527751948212571265172079520179293653667673618002543573237707182126047188141705441016718560296960471997082947494590896904582637738033580981238760744287408447314461392894017844649814591281692949951447963942078626674452398369147952704173337255922209130609424017241017005009788855626724998897056405816229264729170566904414410846524938981064734133477688835831154904808292194728823613865721782791180255146213002845496582127500641740151932946342047096612006740910312302435753729704459770942750957848309440372222970574853556698732917520842592172711363901637026671286084479891688513058905027683255809747848027627151074981444917049304318809888451665343177845669155011502982204263908913303113945608364418893855048211298920214271087397215337888438446682768173526686312961237181689359500787780630058815240542347657769299901476223525976219209128777152018853302943824371895699155118345865406315829728970910031431928006818535281891919746877038942632901305697212718843604146853698369424861610530572820269506742763699981480305349075475602393192234838157529607725372511546971585218781911073933118268131577467690689687868628190014574354770399470379384375921210620510553942489170752557482464381936345953047094125052735508030201005012738800776709393533248231498447690490159146275259551936727549314240483131377271875085957765531314219231100512251378528188632393519900635774582163572329165273744699219802645814697487801816335068340633502188383503980674114834502605398181285494239883261305530988431355711830635515265501052757687996106942298963532586140846499037562534517321179071161911856409994080196145775455587948848609531354912093632172596984992473482236581713080392065821575894183739078701759563744202443852432341808372081651329305934726246550637910790677289016124664044655440010763247565453971896261956412449907708637584638182639937945841944833434337418841366691589609735948819361828151637898975766543836434257272377089367758614148495929890439133995572387693930462431011056029904644235807523830879532837002191252222679138897855805830787889214204533068364602409347753262291637207288092221769322831473240834567658049250206085178364151177500588642889691269069460704419690087450099881791913929582147834345950606388722472319917055575745012230535189850271979758296050876410904570854095606395456459338001988255163447835311952754125316814554250023764743317188584557402975758651657965213670005585549458672564103425694896673945269239413995218636651632314289712944375497321635913225863631748212540384590087894444178220089923422256313792364159130503270831163034275568520295199719228761609585857746493526202035904879669873152500479665871310908653244656945981750304045630446267338957207617074784884539901259398910593350677992720084290560779587827366591700492675261985755449438315454514144454753054872192878192497793140342333128823438774065000007093648447964209408167898505339752428682529643610977582955044163246252735792900868951167242927053058102260814378667743517982631271385893659722020707845682435980083614043593541383429838113480559312493372358905792991422039860237699357491806927710491065669475124898797229675199553184259629427798654754641994535160801289167261161127688917759335794210685056025545339048018943096154875688813724444937971956435707192992018510829801996582030434205145659594151109890491210627141665335570915580283071028178198207431930897129158249335970284350928176721207902409764537627154304713789788690231295057134816875715538720447555454120360349061783055295673535393147973734558052286514168688781002891958448838651651414410393840509393033811206532465122490124895512610620308897234728676034462828850418493863713893411975825357319572532012471349528416213989619219109580149762555399935105098971602004146983736183395568323714307550632309962907654129950669477383488168797937145284367613767272405099426713411651297000757345703827640593206992631308712297705539401438012548335272765652855565750056471057897091619906563650758612560600326057519904790739527655717620277546242524304444300244034944544587204133847983676686355191311026393088959386464663484161134671339392226253211442933684596555847005790193675186629003825815868836155574623397003268153446915056879963885443771954732792889208231427127506861656628444947840612086403072099141610014049350126337310505398953413196817525006058292494988334697066103136390623587222661780413827210777759507070841650034445380906536276959492598157884258682009354624270246841840937371855843161182856536175693632078075384472440689593367313902615646593894049025804798216777921958119251111790809770347303704919026433494809573290379611767816637366231260841954061255501011595660970125106528806630958406555614856010621799389963455165895016831246072141085686493860989396879946339363371629501329564453946250463355528758417356329823367450430835606991444970023147005015486559386972625497679032879550356815351647831050395975462394000524559376548999035969047400994710423296595085316142104485412179926486235299703457835173490119404673785442292911915864391765802490934703428905575077369233650999565846051759838193352522104489079185854793420545282538546309974428417412698694855693372719406823341097106781338893880968181505894575945275082022886102574724468472824653191234869922232214719696167102285013800137676095954291772335496048589443066469205941248095514362706712638988257504019001321080071585648634653871332756824671135769474040582345095552084761230300789006485116164061709303287865767053062997094118239342450149239219847571120112102819774031849412299465889911199213006074070582938668043227233028791206207653937089470742156194334661145873137591814455315368604231763569566266928219241148544828068964632060752500069221568197552763194074496610865169116112628465900504775431494497712805534858057212663344019827995397620628791738353900856637264578562519479425638721325921953512175849563621315608028275434618401549567084205111084695838368915054557783178381731836050221238222190224272017098592199530071923065282241543527078425942696012124073128951960409760514027176142955852521748340834263814311251335543197742287694515294735484214853876924033520698907602058473087498899560013042301827427780956444482860036678249418520849497805316470415789299042174014781758399339112067218122707115973850690948698037854979543773680053081610313578453508061338675739919282222117045964465853545799881547613162717991879726693049720703096176662030792551559198101723866144126014910266546359405122339690122973211960927821254048756647249208143528005537215054154690227993195857593013333480985595709644528188633079491535777301430493793024958308333284243626496927389750929066283695932082129410247578779970704728144355896429264380208439115220224020994335492816860783008640836290795231949803736954631690044867231078050376378208851589482146029692966378940469040542294959392690315852738911118935951393676858128179825189641581337943775794852992951586191058037391864585923107493685363056836982230147046466450945475147068850091279073035015950759716642763856084488339065140898385355329595616471910143134348701587935267611304826490854260350336197818420410721045952095357215192752901890219106911397999658300289958831997816988767717836759358591393520904881411812632474055174208480137123026132990994055899501411428809344532890090064310140441662397647817952735608582114634624662191527902838762951635423202368479841755539824576317251662866552891032341572900999910688185219102240058348061676338102567982078115150822381863733737826052193508469344976467772413607431593302258364992053248364176113772597735703854385666573799023781796567030093765377799613494873460936993075769340998335090862549116060534805951791701940608597262158438652780827819794509981164718728091217493180911513153996109643769602821215612004004912533133295958921876801625010468688921374422959327607320386954392153732489501677644201756798740247283943750662238912371713132620630665020298913805515090666226218522629224112858316199288699051211188433877703738519146502614692247325216030787601025585690292807257534527319909439436487005570108664371004907947286206027170653372371749270018672037615036625962077854014937658856901287661022921588951823483374512168914495506295434353579016712024681288539532266183181557438963366564285959985734919961705700104921418675632194855690877900170674723893341441422094165235148209103820369109719505727130121251349544394793909974563637922778225659605498199783889966885455894267980164547176129871288716348002170718828309498179841399511110647547139791709559500352447961772628977742185456892239367020939886947835461861574490024644663967396715268505247840797846337041239822133828524967731980293515125195479164249992313024474088007187031515762387550138251252882234417480880153585474238596417872277710095954314890820375904201322798918259205379857439424586261632334007486058178731417574926610034649077778707711653047168806308673829728357024988513719923752465039169525539769183566747194247935260224413904312778688015225025181984556196721396046440297535890031411068001350822820170658532971676533211945492463670393571523354016163092259700602165241718128988331402840686068616261479122269506321963717791646779233017275279120857621795099612044156945655333813378223288268197430541337189810602954660103912042555920134061570874627028244927749632844660073332492718590489779908358030462795422803902445490313987435112513734828555569942096542844747332787565967834669788265710542268972653163849285257024213544419253860373346768985465108785550082923249968169471621099144298039286480317646660403898607058396979766833478642259125258117740159996342951151300999032821735301292084752966770836498497310300280339974555701763507890667541193236288422419876144934363431508780844829088894429046974731077537275631379334563401773562771601551917054296681176902719479887425646497519417813087571607339986984797175884828631275378635116189045713941214705021264314426574494242253566094622148208697684024153565020640434966693498945962408915527824308488026901268651401699031651865318367895059949755390111073891047415751576849213564133664438082821574010638355427869242228970354577695897712686503597200636917368074079552997455596512287793798526294776140108045389114160683833635889342948054554519634820684157253882595747374131938891202585224385264459393290811346051796283674030053403642169545134327197859231333765461129635909765745560780922170097579941919952307770288139432540862162908034970136084694431921682399002565070785286425096835718451655450100358094639012904334316431419373412183911569746512462686179168976948414072307681999726020384412227857911907854007114045612849945744944516996290033665374174995032100604564605832998544996189982847802327651031452904597460610396069755697737770309314801147624559270963204783723104553465980210700514251850361294964123040316919381070435037626108835330032065237452584148190144825070821525693838898316738261934889317131567035972327201464965067882964133178460496839626190899545683906913042566432662373518555208776454957380054161303089586375914423894012824256511303775822521982169042963342590656199847765390267637752473329693437825587881484859771175616920110601828205959311283764019135350597639535281750968653002096611179024124923065885817443388280903810811305042991800151091214870955572721753959895577220464979677200688485376600261598617140851982357070312509847842597177533136642676525218290447436859305490679977248354287952940934318230934686911401020101462043672393859952192025103245316005980078499397731692615051647090934611358454045196569744085918504786810723082313511530735996408081614901300173160741512356424808980936176739155208427803594109951889386125755085013944711822152570080388437345136919310276251914395573532122136211450746272937595967492251763631008922042613668694474256299063420115389554762779285772692046405615071307057163194512172500327301475381224379300698499986355116600834655746053242649141433940546516275749640699785562018979911326593976181199945926264298848028382048919428855111677329785342624899424271292292619564005564265848757634106476258296545674004129448289375007191891963730173893384905308273381100505666042875975170407084094465352978018659590094307540793556601761865920646652110973272093401101017435042716516763678240544670157046581572311238063162389412477689071499785660299128588997816125640195564011268100458883088505546050952666139637986802832465830223387092740399531621653744428888705261306705781004101141708963311347552477563286932425534993884841905021914069860165685739417533032261316931375355439242420256514102408520918372864025764974354326636401953141502014099599603598142604444051791201754071004658886867495112353147791782241906068991743876652135826524859840901378686723890943723839009921080222109005072982332307621171692527323393592040598765281280021150565372261502621093706527743985685686135038100105340575002518461850852031018204176152888806064375616372421633853352468963518335055999794770304768304169417422919633437475851485322208912024319240377156238708221988852030181087110082144058806263257583362566697760390137163500665830887230600313078510393134645550165426508424643232787090963673096346426017213241409280444182827136073583452399707075059417777978875336706240499837333210079940923969386694320698138633658286892977651373724206039329753466788450588928598727197711119887955369651949165580404994101685276127291806459622733917695334878167392618523220145460985235325248128093898281693876460252608887711630460138248314296919406661512111772306629565473672316098975467535829720926378715091468768659701240694526929521089681663504189999302548581223884212501313482550681947918920376901872959106675685920973494279843140680220288644632009094435755867667049587468700752462759122377866738649327450015107940279884108242098098609051233261894306892935303710193540574526472029947525437477505276401417156266972838448589127775054789119798547450194205822877830679322651531057619192697702720513289187893325121560765594049653530282430160325832809234238660624939448519587751550065845420214367948672477553378214208557434984722408228350509508003684183806067903165132006594394949695994936406699360981914943891191886492336134633560214662460550723595747584197865559577539365507822876486573482818250967972463654414586318216696863799769116422633701220756414906024644040143122099283429035613506125784381552793131302096463727525696931516609096925254718009880612486972510031481173223190428102948604521470394538228146796136177703129895032093031751608179688296676006253401009587826981438324185135937283148425729726378954566683245569334694269534202419644535998155425350029744194249872996835070339489467238477942028476688748357951393778215401696898162784717739601476863427191806331910430540215707635141305381394073804846392942791579697413415308827048028836305713739546967666074445450482659535867283078850380889955177720705764164692857011279762723333372892966208582207253728613471663210934559741615051622218504380620050320019442280006585862273290278606876523114831094313526517420843411157926276617482532931560061622921135433706532041276828098566760260858757367838886558287677974251866171421893736443027043178241582704947007125612289476720596700722935392430401925666647888901001150851527515389129023488986509053112101775606697268355378544631893985575789910153299029334824177323943760706318783729995911356842893240397394731766575503061744781736586376490186246896211573562112413840444528255514995732111929176792461040745625325043102890288241486899843379170570304094133832160171611354680341891162105071420757895952867255439403416849818000006749315245081750546753845577455432002104016868650842343580073930740266586065642902975883592421545131085687138253612032161155825310732656060700644208933922290948318166782459097768943170978764080001503841097428554561601629912671852466500672903096122086850113830215209969484599874569999601730218378790674545729052296720381609754567673429112565012241653229950874696556721745412979834442458574427464854266513216260453394649454842746324928845206773230211244100277862836492700840659178649801414683751031536545115513117618946156357344402466287631682085130910605202534875188131997897628568772937846490704503988523691473751133525706709974802298835933861074768349262733038825305364766714749875998651384167072308323118216789927591288072471399826887835080407373744889478568961171754470847572321589134569826231085883467033203313077501383517272400449515354054739140222732298541834557426101218178117653649889415218664419719155404465580069982223325643887949852755582862862488948275964412438980779738208040803378875913121210430579888484372751972571249269195651552422894008328698389460943913834105931024207933170570508412350198917551893646130030648905711588350670446577125102727391636592348648690460479379726089817900657024651138667308189093135000967161685656001875052605866436454469324658710343672631892882648036113803854863730104490791061705156021244006361480194781531357823434405457182150078482566460065454971784289179405153182994150470563056927547613515153240373288056085127772784598961614936072694709145369106851554389892665574711263472287613988240959102631323676959935968055706570968540125143417591621925839406039366225247412995975107196161603504982716813567962587222629811359343240214075678231796598836673592505064521158551698576931562241924579099690516611633584418825980545815531892806899119960581536985454206396821899099881120336473859851371768471026152138145232217005263674016235372735148872159200030907184728803636439387975271087193508076059714185167253330187157166441050980917219660339919976679434461487916541312478034437651561169736372484669209666055359930972236928579098744172888546272063301245041893050162157421432496216320503425858803490781287696658241051367300322243432805365878377162954845570146170719954255820231146699741113590494103864137002630085269303412845540421890920402327540628714358899669477015530230089064375405233976116843358017322035105986029775897790089523537708854965430768272361105055065298654755653084753411176046087406813778698393968330936764708066994277697696151856387664753520267769225038202859893240593736745350842925305060095721272320018776490775648630965736000492583532860639190653799064025932493276067736889487278316894307491522003841651570473299246267367709028580488341007926897407568991349753549909756812455008253036467901368232396255074519873480580128059712174892649034529417329389377812969635137912883335823470441943229036405408539115548279195995537178112254460432036763433481764297607602422066943365330359626540462530028410033332194010937008765866872505068105703037126988850641214935661670466322801780996231712158871500888301739234804779030739042275984373538027057607131160686951134871310693215336230524329751362693598188218547413614940216986056566474943555529054885767584904561069551372116790455052844534661923626098583005506583542362030580991697013773141105332566784120061785093563783329480374044969871813792080239816672996944729944300450530261769391659164704298116129399272339679095965655411658835048055514422510010149532753750477018622423422062830686688894880286095628394348195574968700650492025272534072028850396585262147269937298875611556263291874752412566870539387766542387127005277045578806013226722167801928996319238307264032595041727613414574386366963239522447535806042459803788308392807011493922214997907200770314965693837871267791338083590643407028652010697916166855782502985612648342099841274109222482907933321039008022164194261690274323101031747791502080521782031074148581620749261094765916924019770040165651707007235135372856223437627854109183228743721071953708947299584244416108449294508836038601682155082092406786528755335652105176639073561398975799635474798105980121924453874413928894168761258164483757449845022405203560874852821398653750269705871936490731699880358015679303911876675077578285869041853706986658902925257779186745316370303087907847602517204785672731883632652714100755810417442382676798649302712733115047640105889320555663836272590039050495922501164484127198414015573854436323939162458167480289497322323490387389001744857137223680111650762297821234164306758816023525804014500208100053347514954990756512396477541754060815927693744492562026240525677177659569692307471238426104607092075468481507141791137746421462691441891945251984956436712366766089510723117846194074395258993686963009894781271010281471344195034280864306316036654470854703146277334053220138324422280335503476432118255387352270590882490256897327235680807152271901999343392419899402990769980365823440499634257193129977114280383389542950966070030967894997856088226010195435688734131917736463519500212094679334280271660738131722425235839743780830489079157462592082089754382667849562946932005936549521116495363881385877960971054564469273324567148825550063496900980903066280650638836024942638062185209343707209784792622126238741799044461501997744798165722927807901395847064220940803759175108586436920211065217723494844302542262051685007122405661045384492056278538907670656202129002446397524118476127112871833602567472977267840448633941750968865548255450844050525898371873472276898173965897431705692583083811159577710365441666370406325102495342614750706525371161265211596524034324130902229307326455587227454157088640073703288038737315565995788253865677663325677430775607570764988992858079811608754203136067045000811115716188538776685764476700810897635416622277515820359273386569759726413298121764857610528526005744863992840127828712178196233934644229727250344079456772368290100879671246843185053096829979958732509620863795955855297369563028912039094387952357435098107785993860867036136488325836042385095723594469752302692942656017652351298326497892714066154167143445233047491372986622914177496909387565223006630624009661305208031395810433137167084086779967660627712473357398211924505401857027536007751711113454428861339428418513870864012955856536041396255897347581188878171614751792922694731216889333286578617228816319125977362357856725385873875150777125052731396861917014080762598507731277893768545517357620837943037370901347830960030852945153680254092667777871029184214851553575916720242011426239267988647196401050945438277100207491021002082930972876685137642562220439195765042874658483430502458925638326314602192715721867931149243301214664725105644357247376928877084380954439560745636521422362848417504912184310975158643309144222308791074211975380554183774397080790378251252420005276514076918849571298280351632262294506987583493139366539599398113271503077795213968786263571146826699151845202567599218487323673161307389571760395724342940672528552295015437952165945879348985422076466970468067749564680824728030250065224212924643015081447212293533469881312792327338954325647454864711523295865795519274140770578384157793474761027538312824437645876778476007536202246662040009102096262236433010575181918330837230925830285541744322267865353679716531690338367315919966307374641719374237588079808351531022847268398848803129353249694686396104201533943695975768096400468421384637283340404610262016053969539352146094542254278500778282471703825027818338559968247478673934741301229836975343082695667267187660274586850519988377925850381973652424698156289479582699948899021883328048577913339644899556767396532235092495498642423829197946618248183818886218138572336193588008765829291376348264760829551676818968651446808390349892950202382630989052802151846978359602235662285751843007172938587135682104667506220743037259915521126073000069027617714022844881379462334306540922829343678857344526393308687129182431704949018092054471531336363087687225371553236421804967547605837842347636657753980182600860531962060671649840264282371911512147781781710637207835593364274201773906042394832573287470285096510507520645604460458017107388214436174855053598987903969299047037744891504507511380749302577348146587592058176924994276979800811571573798173471706294081675345564223600422875455842928172845626922199036695104909985251256480250664350038352318296773812471150911013095904973311512725583034728935732027688763475031146640583242460721142184431576815025970213316768368967058852369221946923920010536924407139885753301772178581572504262943409182083962289148533960428812467636058368523363813509427588833045156102949490322902309612090739865842739503090378613206615784862501293934066586206131973191445402124372531960880327560309882951481203955215256623744270932886048041093448608484050105475262537784746524929668754408372623520760831443497830120802022290122568570578990770892972486134468758931941870793875857391862927139536177019814973929463304067308981301689365507306992845166688813786385909871081913266380672427464557254233079530208106572519290731038313540691592267295290818958997806810948656026224823133127737046114487384045736333485690951213412697388815386508373336687956821686263727958011838764987950320321457518722385596916053682511477453189357571250419064486695231362769918714649670513398728996173418846055085701439927986404793666450056273953711187955970746288380424369775641631376712321542430943283548096263400914665716791342287745491676261017008321299048185096328102760272333110523968974722206821045253750443373209442672923733027261019272121804486369689674743083786482538502841906132878162072524704811037120365256278472381627563719276082251580471610483753549609983905577205921069305347132583692259800851848013336152286322459228574013550380293733756680705170217352254997814604583522048376238443565882325897119312963417664628009773482610037703922383834804930183650409416648470437911689820637309569715662535755199709712792966895628528424457984180865715084559232150238247258632635423426899169096435643847724318308943075950744497357398197156095922142040784173435327525191807667995493681753611617250124192566159390929394799514851907966655216377016464427028661327625175331711419004074672096990743741579160957969059299056003545426904924115909105152320271434884794284871139135864693265566192626545402901964436149623705388407554826319559439435736926989124907314822892226972034514189459510891793824080379812195299460693683872651336849236561975878452619601061775896696143548113965664570754509511467929786730446347519106713471475729606938251978481103067198524371685055823102493756986280128204867064707257117185857752445978051210797898715613407738065456831825655781609531125998747794939089496807208001475101742690523262644523576334920129357664217236368872830355856505042544095687590062469842659042200875388831181764979745131264552583693922996431294304741482205448578938848248505944735450297633593335112420623494230833234042500640240899363660838509065155258750868073501142347727272542505607691193389517983106368141642927824734424539431524836926013019337274447308376861221564604036385394738427340957646256058065178453690718911263662991523777580819242331370379864351654597063343736751119866397862938925511114313954538566162441769220363571632900321908422182407778111742422936699345938891700783508900424432510801532469364684007257569862416212152623156323893788210698067348889561837157644651538443048449569926671770194834286144305970676728065339818383937093785828186819404467158079490318512191960386176252722876911023836437524686766302208039298150907631383408169076679044535282206336919227095868178967353972993715952963678527475007564365930713197191013607782883232181432064453582502727763720519722205369157291184085678692542592196062818285792562163127452613976907651602773450402677768227950082288846229276730879353497987324223998276473143195796218735384667552690080036071483914275186246572416363211622881182432123153355955332573320475999720802397711102450297318902532371322743147658395762878746330667980223797628065864230609059191608146971778104735829576555999931398629925252484505071554041396624494384928272587371213112893322435595965590845502860652127772724921482335364939185803563682721538994669286048618788810917692596506300225858956177298872141575748089322899353588059126502103385242961519139423436973550660941519275472789758879827186101818665028022363836142424923499750258334426729916629004683470472025204392529605792641122990013147485952445306482827570339715061483370024787424308872861919460249353404651059469972602540978621246823792379834239231144050492102947542591754463455988719097421211742793752087733298818483465003745380523651740102863145157472820324434612145309613883695355631879711165409958346335879061641239941347499638269479823585775471955353949266492451405017772215611980735491358067061924554572016948168189613697252214585295446366748309646012624511718011059220151866025869473776440910183643248441408604375651317338619126175248226941970465077041223500150490307011713533566097520090795057677801915759052240016457863193659988406436502898463895739893953963747636040032019968194544181385917119855848306546291552678124122134436441376437809602568374151924580690522262202139778529519868213190699476842776962518166122630539112745484800784715516086577100818182190373083771963722167703340966980564812409795307632638230125680233784871129108347993433394301667163387127037465518741329698042942482099892883549660537495376235285891622942026109251322972538999405733061654666606033300403280296213824391131469465984578828473463989914976111678151869573164884499408215055473647567333503906278615324250754457699780555584445673107373188309379171465227154926216258104855933107012950914373343181163242628641260676682015019367096391832324446556537531854347286113056643745199571172529712347746859523796756875340142339178830551442366060445148859515844742694315824315034233219850775933382944079363994894820275377842622755998206391431732024917068647635221633889736711183388728598889657536995487773398525209126939832604660548270379938087780555431810562165793642201842414331826078323881093480083217428574439989085492341765407817224904351385507937530952784914826471392658123571240919396893695336871321287139058271211217165632231341917924249611343556079004511683973481328263537705413353046026670661411403236142647670417809753727883221059208442318662021936925107118190739704897129147828475607397425961596152170576636307841830956347578038149869817256223290842760794737433157099019876920987176639269878733388204302401066729151132925637088569919324649718807295967650260948555803258549115135434648349980650815187854272265514409128427943267178780193818715206367028317157708718836145677409718070949561069408252668080238769917147464606106178765119595945626775037493492892002867346074084588015560325708370303621039816049315350837448406289459524780373317719308487478791856072008239293148232477702014373698194771416915909081145673630492701139443614364635554571394998866185105864927899036682620426523889897969535873991282633569897757377745598182234628247252984235594463745720487565795422808412580397953017589389685086315607256848541840843045190176795161759459696659708898804897314353962929895540277183767217144790807358084476816419172032419743405608078858166504374877862679748108680515878698603035900353367786039922054997281741671483462386936796777365017114532102760572373283771557302844888642066963406003972286552324075818524310789965710628538507859694054940851068788581908179324124143887048255870528349092335230918691097911670520389125873312489843662980600732077950392453940271616594705664908256313860551614994408353576748346980080843880454362947051493157477938150007793579222057931408916193075760493126670051520471433189048907952172873863756286549177384164979376804366570194728104037473266866350425465091553081759720017153676720598712632975777705607130664475776387230778998853865645760203553856765797008615327670409758074474116026011377628649645120520848599917879168012934375158417199461354808004253377655523282769718295611195262704802896036044918702403701190261192292976247541262547751370397409077494199443297308745926981855514376116812744249895993917302465258926207090813991506978327291630218442703016966931513739527469241905381271574552317723897971544177813938225483940379903839099054475285590406186221065606895978420373509690170494033330139728089357462955506725660610014569765447154635723496994200860494193061461348082507824645473148983883302104765242156711818541080463663687987829093050019842132028067898164523726851300287761299458893695474192815696467606266423004186556549839390806956159533119566343107017711455912737993846446533270712061737255762412710485185673819372569452446569433443359734834623209221954764772647694031772564603556643434327093566765922270384161536150376504088700780318975500097345574613807506858916505123899800909623927341852234093581355445311390484878403623918466258025484619305940011731563433571550365063261935134250145944791807574905135613681388116095638036389157009700846962027612602641499708020412466149511032933382314791977460003594174480720833805918322513764245567538976691226212287878043302410304711284771328759976562782441777911226694734451290225191348852603531403067420242976252664587904959505111340717941336318549289828349184214711141976369299959448346254919808470337091708291629674685478264076464542156989336464067972048111813275604725448165928690597029102176060547560851053200833405382627873451075165914801710254236221302493903081844719361056554609903011009108557499898899015795789671399001454802962881250557104213156958662948457382822776627297138189491763961398665231978816040958703115038369524603171863515825425976061405682780294865153307020114910111816018333264231094278756857414745420207152188027267983477856666166970305607251697843380933805987798345029940409583695066355797719493247494562487407500686037357560490729899958402356708042500193366334326847509991515661618021589774047045661420803660228941954573727676779390120261320780947135753740210979623354277779411282840021601092021396043608110785657128003583633505688617612194584606311305179367205785089276036828356148118247730234027605158885704010832814818265579904610639135274164851900700713810850428190357155038753815235574358744619503518896962998325826233342129068065907629275596892263207900785518522777095319019581333519567780011723745498282236354483804244571368400543056066944544086162840394436383697699921236030471174874634328243392917146640226647231806091263816258089499279548503635822646723918985648853949108041613501369507471424899498262295311331385958276125670160502433613683668996941488561790854184488813937480435278209263242130005708378142831153256219145062022923905335928796826749496243038793874638358209766905762476512507126262310786293702683468947936458879809918331881249569018128480196179349131572624784643636203606016549768632420237871211851968329402516595321674409957777568878652733198567847166931348823827461161997135564676405243598421341387034276239092380275505056465159473087083563315118925408140413083810767919113386842864431525498928169715668244148696291047245802322207034886276708957954635567950672561836065180798370537629445274887126710587454676805923620764892849957427989700404007706867717231151897142674413897329569717785837747896107983488166267077061068338696767128172748307415991448599977318046147299259332364827546693431968318308305376672409553269129126830596961598796097122872893588501452302627779330045665438934652802085352348402785950667708374006232286631445775995606561324645014287450465276498070149440092484865677283636452309026516587918839892650355735108184062869282120141541124809952377004035970803430618464470676368260599749079720016648064738768600445052775647826485172484397132583730279087603660259059443002653356186039723839401973897751570892663407952090529925175524180726471660498843132140944949012278876958786066666729790677279232797788641963543557814268817693898901642199250068429348852522739366003148649729708801112323605376012154558901007459555995074471312414438282120476095825034074693072931315099816408774294547198411061414384098249791113735397914468640680635719631389950146282987044853828928327195282111350938308370898702898333566722992332994030242810275352409957669139748397124106012865425176476802925812705674207427704122775737075527355205367121264741470247203981549096936689939629104890872350999901697806842136713591463847024002576826892395393654165395109802725017546790000448669047806871737339653177716079664650384745109402539869594229171480661070122612488579849952166853297972408903275986878496533019579426733879297326579524044107014748327193567291547633897289020919019431042416485683291494680785138106643059436568543541272893859424084132784151790335852213048017424515393186827672261946520630610720700223626761207851723668396783207537678566968728565394810326967177799168111597964443976145690172735500610033264225059485393886450119274886126846411777589011590856046576060922569500484261713373045462415728575832923161354372838422473728709711267762046709452015569352922852349086059717849761132826397495793306175655482169875233808628002936045553822834489269378042197069651888578500568338745286457182447616232956310889252334148108957221523958325008466302354651839398461693855378052265293882851437586002651915691757286562188086445975689115878385279084571408662396887894009836293448058225821493606216290980261780042889735390299798650639224006307448721626110772107306267719564455785176949830970549487243044164195315139659917001830123068422975638985702022754828016105097973556778353488813092679660619286212497703900096616802154381041585837293500786500801622334693335549825656349208522758878005734806026588723216936078772627218682675089005865196232972513675531965244992433644131863928604292987082741111240967835406462565424879124736655790935884178604833259429261207383243443979448352818377266306311525079230602538463753079275744321168892314864049355201959892274123673986303119521128174957026737684383018489240447690424155420891062470789858085619140570156978578549449637495166798350566198210155251541125447608901804008761361966025252235381464000567283190900367262165399907596637185028027287457537370857893534821168637210080918663251233272860612105281358546388826103365735668352389640324037469663780576033388887420872224942171333933663350191363443611185623810631604270011795188468678147638953094617970139603344619621055111243469525189995842340251347249549138162957376769608341310211551537283398304156987551069063140024755261391360646961855920677126557485176040120273363750874277084527304541894849998675227731341045529013793035323583045967907694606252615400919475778633774611160994024730453780849078991358075097126321453211032110546818933278551084505189875571300139137420058467648312032209432646328937008335959214823002291499914673223049471883671532234241429199426833963716486624427599053479273661439235003119185505124616001280841849428533067304498593482327024480170051393198496922620627186998773810962278510686579258859698344988704059145636255592036168143661858588186383255937989472460041730320377251130163473418212100751007481132907661239512090706966999052119836437791730393467508257489267277078135463047663263633878541841854268764048901694021795729632744158780029510863685564741414053128522386694141963216819306251517063629697717694196198987107131635209997183489556715247040085587640170019185566280391218789837565265131778574143025357568078817582381195222032629183626050006889165943029847711850123315510713479802992869842728304277172307114047048969820143055828704259251394382149489265284990759279156318763781043452747675687279198251195578578695427096540982001998793421529961330350197526739454909456033240180537107716784711201979847017464385666480899965408018065476889209341252221321808050510209944362972450519712900093585416647910220983841125146922785956030102243111391732006857022048306103642681793912266151571841378096931979453976909091573606298644900805928561644940005004573952335806292628469624058439712245462642220360809510552230637097442883449684765674048058024139367587860581328958719142243860872976851403068071738628840499295962697831376827388837870774035916081019920478710919824329965617548116344387036156127196283133678424487774429509092133518497443680566735770371076897334743224906472376927064470931114213160684456920276600029784998962139574248268501905796217208061838917079131775249758549407953092877900270407469123547161485748028481121932700468582683499360153057291249347893461207954422992755313683354999419668936296624303948334555844165182526953012088832401536207707218516576737327328641576206054443678388014779684550198436468435618479292733749747169081849521565816605659692356110822904687307727822197882194590854554704564847862129300020706608539021675693046963979971038281429686353616110668845660830484952227944688177688098496528913342822330117107559141460602928113728074891684734758907938354332907335138487854532994486342008932981621957345990950174098860130467844611680244176106835021550153143809505068670241045132633185338979979958042062264753988291408314315003970031362359621037258145773522701531757932889134928339995613027643058841030407059082142948473237176275286108597859825324815570666433724318177375350281498612253216273752896652243418164327142319347182726652698444461105052874027017924834324867133948142210561857798864327819933249864986090351094692861894654947512211236908867342204791027968683604820998128119409934229901671215489658293985671263257264518494456036511279845457981823479049860094748567761408241005055439556363868343479457105293272737773136475905791512830544607997091726495144552412773370618649032119456446405306128901629231549178871455478351908399951895915408295805453001031057913827944218618818538289838405808133635035296035759198863982390987371629848287623297378932029603842466030619229353848865561695479527851844002993031138639225870141663865533164865114188187201401345182506834805667132344393927993441280946281942150687211882988492789589814763190287816936527906111766356672752375199731041646548099397551672180656510844785362365346152505362929794593280283858858375213321631170509373674272838163125284876283203832729298292027701215234287594079404935433694642227056219799776222100795453061763406792412367920108172575991973772252265590691354519816432887578294877021955903819813250301700724024335756650327796018370719363460371808419570132068333260226767264492360831258192369002633898179802049145161987609307684820962605954609389385207382018963765506604523339275779206636265881532363574888094374178779996540161070605354107258580091160425937555120685637962115462357896619929081525504738522884818754217682451871423822748045532853233536902913296183897630341011768917386413951005493128648434495702845606700434560532460765765011679355365200389724659170085453394005589054107922961006813985649766900808737767100666437391875327863706919276831398626173249857286292483355488091513493795806805280242392471333420878854626595897759736064904651685318875889537412340914418887217144936958433403667334153845820360958910633936406727382123379644664631067420394661733775771210098777809316044778595695509315827449289562665691075082892477695944836296213586647881181342294490387139049742188433411601132624424245563652227682883482881482748245523235790871865728630883800344163923239185642066102671891109240075353401340605494283588426729383908886604956435459631449746968682865773798753478156856235077769552811343576367573899222240222946755091593586127791313594520671274426679391200365562686030801414715560214488127380914458683393854054832977211842931771950016375548098966978166450135131283032928524895010223948830359151022519637872135792794240707588553548569221363233072129476268804268938808663642878761446059828749232485909555616013733647120919533961236697833463736910863454903886583705615451196773461051548958647084984828017250223852433324692363515258083429459736740159317719089611252664865769009800104227910898674590576476843306783520049918752311467395515423212991793541778892063035067822207064051042171338442917874570353313897388174120384337068101399093621461822121903679026277956764414923977096883984597878907380143808824679847828789092736294869255390246540615633291078500411109169128315875945631482825139446119942641094153867962328421776641929329646846942474478116986782214191092676673431669148387039007024456313974968213640419142412895248309162883751781626350061867412302065921583546203664394790706201890700109543466269299086281945974685523628045954837922701202368471789554416551593479373214023963355077725593322767522915308862596556141670467589692882867669974779574190000386277943101227681235099617786256510498439120011176233020024313947759324085180646034122015628985922663869736875865227381802955303396577085084080835450173546291749558806222699934030243717327484082788016759008856928656580054018558220798282602251945913672783550362072911547970693216457115088840848573515660675509852235278664947432166587200254057306032817845210911919322072594264494842511218583787448387666717231112584882746850096137328021562775826384036584537905945494057691595272793722231559210207886965861802660142706228362332963717661835845939045061278776621983397189496526493631430824067391545155205620551543574987008265530303027892593813271370326671311650562868244241489694433907834689569193002225434364915575883584947871648848535824498542068710060144116149782755117303909878363882096646921319886273414425620119997621467439754637693882984272971021117772593240070275134641848723262128876941125267532466852921680593325859139450754380803451994250474765210943050287906502178611302191746479575566553041187287155363632463163037951857255041703310329590298039904858059139618089283530530388346708129587915550899734747320088489973157992028302344083823660768523237690735310816524677959539904507730038335558238280331744893618418282755408392667236901635611329533456279549979246152789527489245371891835068337428540011673705888555904836633232757205912165943372845501663647917368252102732338839087297555491950416316187316013977753581605455239260996845765147380768112255513462414408316177798908631004922216724950267993414341023323902039127539775739876468936002176537771285293181837952599355872104522663313956401875135253681859264592876960657369963942624999702983759584005350684098355263658443068915388439111349361067038519071711613800664117758373349074540304397488850252115720361881090452249674168756449454402839881974318760025827991029049738260033648167534696468299556371023172611438065719707120305054375722326923559161137756723196499435878990237441290224825659241650989516299605113829160092353184855171549081976823506177544226081584913150116309315508689722432730233274009657960014925365034595713627370507768437958390401275793136374081063683466239712869984667850613756896184135709507427981883522987910678177908229663919805857870982887904951367656536642875437512031704039910926917459941734351356059065313201196571824770790030543057593941844460799638461058989929889183668600980376023119076149633996039178926928682600170471271899099768583474328769244110863717047115984313546316235737734130812107776257902159074510750961042456348391012926216545149687219475148687701757606592808190896667861259550669225336191021354626251188944130937157629122803946283772618633384580478708608267984159531080807980267410906072353998267149185547993994344643270163585829247113800131515242486092818460807349802312862599732688949991749788579669388924598291626628543556504974356396920238548214430920728177796459733814436733185784478349565773613234186795009255085773976519366250991900190258038618630099292069023827217228683823019471863210660639329000417476585522999850120152921933496232696916538245593931046019809199656169563650981982899632843742502046351785136132023968244740582351812184941327101786633708680368378571561408768834918443719909910250339384419176401564335913385667480023318784597557882297426826126810891026732144863800056036621839237274628134172761775329570881069950617280580477234851914951323741869048385620365049022124141834106667178408955681598757329141122206605153239728211152615140189108685609508691948236496387131916913268901856376207104025757896426932222463348052082357265664169199075729506781030081155937659940828571439098379450179270100039506651231074649886639711241637607341794177563290155124318256500773910642610884550346884365413336976698313772739644457030382431511823919208176892427200858344338661479533588994438309328369181088782994263106021791613710828381122156932919418784911521375475228982249168871857282830658104229928260249798967294508863188131929961938967405755634707037367890349062746708970306317313277805323183858312358726862114282537881493062920491178801824089780946812540198619705709327951239163338461300953281875399461389437064498736529724072192257955235529112527327191085951319645274882152901373286124212347759776344802044309826303138971644773222306277292139287608453275438257323954302796151721874589002613336485647876070477377063798248776356757480823937412186366902838515157991353064900499992499352593093214083303920767656895582709125269848970944495697633117232469558572041056674942297082215826583953534231518522363932126388062008069105736001753461611492074048601361543998355421521509668761646509943770859814512971081518094746081206724617378064336638855917785424094702790761676512069876022318964904515125399225607875333573730145413502071559146925573317776471694780175696011188006172515195227563507446833432223354441119033637125057774713762378505703878316192269543502272461939464647587676032922330064305675389211868655662886512880880508265436481884664314471241738969224867481825150588854444756223697459674621303219320130885827258885645889995381517047870872372262437963813090027884176601904930504543079590261630589863530756161061619927587208050964196055364125723978824840773948477060934940624690641169920900736638638833293115086933968144866428839346158306432460735540373558726683008402395156905852421830159454290136443899269733236920954399781888531428783212303910197974399718614043701049199883586781409409436757604188100823926194148461080329955454738866043127002460084923461534982826459185883436701048616670579393871244213463064238630945260482969621269381369798894889720046387308415560485205039711091764137873715140472630528982224078272175366984625370789293139180014543858488181167665690258302860369536856503671081449126036269385239117768402673060282117911655008708483574406646815466632539100996363851303090642188497378665439007981583024951943741972854716853903708022450909207085529693547286829286060859753849331173342501704931169791814193047995739578276114642479554528931124118634087633841071400563995890523162161020934748497748733336175682276594287055119267690484118221247900304083482055569644577863573349477797506593710405796558323944696203327838566167187073384461418952688940130049278944954283291874156220740649416594572005882532748132587661031963022868281843778057458172618769445865213971714027448103205113567495486539976342650854568616630530293566519554293542287537993916919483880345746866343422705949796315645900149977827057524534370022321097201805090502021736169615094204604459941958983276789877728686155866796354483220869844871369660922218953390802343311792736430129581401015574334566092144139247919875271033931439458400590161878132174785178383525847939327958911027624791194871037122806427174576459621348231588042024166853519238752672215987516081136872773309858501657863123176950742393623026275114917648018515583084597197618642496319492021029049112901209705494490350512558699024553474868687820653171298694171178272965199715799042510571648215262762859224232385169015746475814375101762333515254661188501923774901929047293526566745264995896104671917013688192589934020146725241747728366269765859195833897249735018748690838529821653036988286249841451893173020427523874126245760755837754157429830547297426770371069679684950626249537817842680909918903582724926475141096053301494797026342640345229821938677379708341219883359681787368785796347628082888578830492146676778114942292973400951323874067289637875244062655283391161006374689314201286289412875473930626403416613595930650360656737349257003573258630187700863106127863052884876522134087066829383194513814077185242584934692085418210153849169926723524969932397955439963139782172288376418731822450968349016983892587470971541481183734136945966695028448968225251961724241361330992890225290444987591055849380465813445340210793189457022866506112656489820968596246298313673608857796907695698457325804378705999470201658431548483658953410577449253548635156223635869553353873736875168697804877636861652935236498597772767182971243642169079569462125259706540875995421652740662124280384616906365831361045310908868064767147986615146418806755243051387259424225746978756123925499263897437565561344698925121329734600745707817861856370050074531382572140140373188346293002862564831121426465727671865322474269669085612306486821918407319080734569194807931173540247589727249471253976376156089701105535120721862282277884181326976094122279107208679663819384256193646968809281355768738876656045939987370700454574481144110277839005256280684128218562395295212366238041918292083279168524825076907381893443628309367240642163359187445877979104014120303012795484127797175952763332037559256683013447234331209427870568748937160300628839623859094703496397029791147020030241850909691318872370198378133931741862390735012535179741959896720608323308600918031677513289711831524250575928844111272186932456135919882203599667071813628100364111744143544650771090083677101100164316930203288855207423485500023794288839689719849544148152532830542017545156769343578823083887074538667648330748348792287934841920927326511123205800851102645223422145246094861191988243343283467585746571827729857914736404014320171594356594519608182115428878051362833974318970856174668085933230832032954321431562598253047050224557501698932134855268063815950247225554584662511851345876769247333808042350606961119941532913962083062835031736305208216208012903531628071492584592660953812133714273251795589222891361256943195471983043505141730666059445545978787856063726250695323142142315485499174936639522056864354329537660347294944851765109607452902429051614476056610072463106528303048430654203888835980138204694866467476218843307388039536833119479134915850902273921262682153356996054386317546681175355917344396822176404072935918554512951782957443808881004559578069001836674031827179238905479726916052585877527846643655575863767575273762157933173561218231304972868949053012945725087748466859643461628740695765713839430173325668438930133352484456287902084504520597813019362768013650736109946371444462770067115575921911643697207096689698217699555381769367321486810980028426098044035059722800272137727357618278422456455686182770654907743638660384625651313288596980661628169121567828656311429489216790113827847121715506953241765380838216997897888569403634146807605329454226339764564990125042814585792146032454046526014819147603859205231110356002258351271599555788113951926527383657296961919536980709167687213706561451365518188107435174525289606713979828289185162791976686924575587181294729625101872321021266045476314357769945148135358115104470355717226426380452064189928320657820652225006408469737365516194882529163732312608381778444074272740788200459406305589750794640906517746031460166454500260910056621269065009491392530985991229344638238610242739567520169852882170087935072535394083309638670127039181664225297201397339667218527387853585933644499247007362943646208090623960172653912843639903245926033770721807487774418868412196398858675577044694936766099236841822979212397849248664144450662597300387885435419905720445246773816508149902937740213329728928486149452512527368298916463103635959063711500723791262126288189805769223783121005967994085268301422008790826277092018716315246457957062443494673832890646400909389357994835907066710123758816400291059879065004987145866564265671036325794278712085157472466338921192517325125784231481470130398973077008269490302825790246256517888703572869520560353850040949493489502443270543748472629287263655699434890978886880934392465091776235766772710149459606517621948049832069284678495172902413423012029940107739165328357611512066614299410744976994319870893466880174809033368708821337596530405818521694629347437329627904656439081463056157519670294720235438245752567173152432011366064006346338413010625952511478302325004747054174599818031371315315248474370380559147909838087310039936165092530102405753173593524279774788730993611413740969667976414873894666973957381441594666408887397024098797715993314810836672245132142791434335771803780847556157488917849739417949170445059233113040431677017777691130120743087195501563054096544206192248579014977931745007389326408737890091737331505873307334576765377491861178766309398253490458368744611705108419187348009074552501670788691949594419083315924721916844544121257376394813975352487440596955578778433277149560296404702187867568154086342984350212088605015121924706428263499135842675091419950312099760151034762105703579631811506635941434263256357599562190947824542579861330186608096310528755012433119984218892821476068599241750664691708566401538384219010437548964503135416646983399391760827991924644508366226935536879897354097985352446927064097262175417426047561845784958789481893303898682843319452415327068078412762173026944727303822913847681518250496369560645609103241689979979479483440907769898570121150785771482574101011076794490502585165940466781324930298631038994884674690598442193173966944998246857380031275552285674823570708579859472549526467908804834366995363249177183843471580912354151757406838304140420915956057685667916353760913672067919160625609136884344738961332781163643185602330599949845416631284601665951209430388083517294429326920554257909671182282253275312721040324944552413858956729751859976762536967515564361492770306240780430106828551671758761638374698966332503099899644632191794241637073539760843214508030608055149802077694115744474223051710633868801193045172675078114591284008973096915644906547887220937172823246036102862339953224218300542744034631722652357409234378660656717173136733143536331575659149943170445259773742936058908428499385931159873120622338624838567991123910543657473730168660689659468692765991006753756927056548273552504502073602021844213621566433625540266718001502551736419909443959456589690933628600642857157320332290048181134957826937261815832245300896558756440571378014681075769007846583547540388799791483623393943571762509745528692639175720393946599387171211152224406087765871712017506898438785621284364619793951278915591925911209883222111487521134762414392754815624842906403402618528938787409132559139247489499363440449470987392449777530915299171353785884570880909243721629017316434569240708681847700978577299666818369349174826919280882288967537840033068860031589948050092636634104928262545018112453964900652273512688712496635674778655899417075277174698651299714068861424925376412402621409583975716387836859342895399657977128729217300382217370649619952613758619740482692024668802856392049534451418453276900168618946245826225360257756049229542220310033501063477630922024950393813883330891134656928070523899572542849408183044228942945693993954453295889002350368585769257490634881109395405667419998337461968958132173466938411268230665770185857437733517204409693103701083752702529892824120944891508415936268491895005426848130191416315952167938625841353631347835798523308170480187110681442684427062032020324826905059023661992717978581808083708619309652581480026365675255970353318425239418629591278609348699775590066586309125470144191857701308866674671009903290796659507860382648564586182685788119505866982021026418407383244223783053060147295955148390128231671800368677351197243349494337211155048509005585190397372165743218159616631093008397518435420791177207705088780560300758370294559971445912444674525904200999978545986074615466919172398156097978473979200161148225857842103887627026320433690570271215542625647135530498175276046387734457144857290500335759641307106385248997192682482043049320080040167827223058365875762196172453172187238144508632223901800831578877375137244672744830984610587853292039902088450438898054025407892379888367699202129899542609177297302846862529944459017400633223757561517657148334335512478871037743367340348750303392540658663195840248482666646600316681796675635362467622824269622684444073219850600110697106009467733880678703195200410353400443266938601348871094980537003217704734879624763360274225392792377706694526549516863341388240307357572355936676272290486713846194113678802917558717251969777365810132636163755995281556624587782372938869692832490910621884832621655299714027175034624246747304173007217572962744292290975080269089533971501108205530029189011462549551402724043483223326108433480575667551692724842620911896773413429381565975558779552920723554870172897239633786319778737039835146367657775812834663131840727647483512539602226298094475985625817480661840093849259685329208863355400079179518234591821745388185677389261819648625310771476632833010237914093504881992259459574894674371394519527943849228864576605201230365332562283044722441085845678847876182862155438660826359523371242859603672689365311787501900531784763939256255108324671528426470124786251863831982239153648323868377074262031767141129512788809933264676631743705419275524394930818484016340496283272549577905585804030126060708332298418218091001186955298122217865532423159828672578202693059136590636374254082734277525180562715959636883570825842650517026312224902064872913113008170825076645786518190551161730673977511167660102181097446947634320642818017719338761174608005884473870678466817779253232882849133809864851188495096744489571305776278576023070842333330825250144717604599359290842148988436223014881638874693296888700897444353970494943434608519006556953731735295684582517868199355318708389116651338126256916966757113858962863874523959259655771409595340436156629360475441863685382887568212421417862896915351218835970269551009280483748901841350194109259825483389189466569161618099611888042532858047429574228595846041338995082933960684686560689714042171487801776499113509419883053011839520960015045074794870069285457660728405478716624020990692475338806165319667186882456307653907701540218114566915010011659162722095028041307901927312244272915671146262361042565230111886317478429289186290353866651279389801368252918503414636926198823428573063067898580263140484700214705855984193656115769922263410170081310981887188659473836575769163854514764321956123913715791210822922761475876971377970392817851100570794582562257480431990073807224552912484013817293431209382546245659809550312692627204761867229222276972002624321232575222666893866286482381834291386421168357771932048439817423860760337126397589722871079213426602130606344882056497529030270922635678117738669189622147155365199510389524530788012495029311647057814674454774521664683802019416979560692610130339522230034844522702762134228398005053781259924867212751018479327044358148093722252934743911246156584894827291731952375884920326715683868270158689973320626920749891523952251097356563931252653124443829260304777363772978858057704871789332509610017145193367798563717852190340960914124933401611317837186380742703987474157843027312182681973924323994692395177757462963518747515520339588917202694019812371239181904770064278280312938486802398049954137965140964587558105717215863592867956176387720891808675716092590295362194748493758665003475032064040785033753893165316286637260900677022158171021565772228038725893074370619888666207627472239425001212313532203375054535926836443579885153875419685619500686010549527267178510401198879367846557079831516567994603444990087831522350009781161961159370825502993032308452129577009486684641886028592269867203851680373827281495723200105430747019718168153784515660099847035755072392556241550262649664735311060896779809632538660711515385354563705585545023927347186192021250745457293108162861814383608024839941881317772012447555899609646258266394858078148169286349546375272190616462479736458092122341224475095481141936962891475369982819785172491940707644204632879221382906444163410253812177705945650289673217110053045511264162031461696136430503945618657787560575222738516639512881044845334779426533610903440658257881148398414672837794073245939041152032107369685842765695692249078063942595335051590295307420225337351794105077653049276578556696662592468219875567474492397863502766545736439053336287386014254272438246179091191515104490999515919873654721122438038924513077073334856391232702266160140047541595263956587079998002463398468532030853687656325153018055398732480715898142231663819731113372679971884434075939085170522355225199532667998206054949965238703622327999954321110044422971114062780775507379921994059412724720483289913970704917823232481381294365501831579669483864917928813692908185073567249778956868558363926305568075966062422406987999232550289417741053771322566545667333396022377651626961335767370935968919062891637649019547444688599698036542235814535091677715092062947490804742198608211924679077208244380706733567372078771537221023153712453176697717387853440967301904567441845223318349074139319880435448798299847813520815880467289380556174246880567060854079186769344713563786079150444688209630318103409119504895980812981801799599191233215318463797863986044048597391866343213284982497711323737646223205052605387106986892650200130295552471300623107699465462965374934913593541374183164212283909818372043333498053182532361030808814576903519703391117546275965841953913323041645101431106326727629963968150778978885338415119237671407873545611962872045939701437088037266048857832522818029651960916657428478203771128906021313737407736315932102821495957831022985655191641366531366710420701249219454253639087775231220258417572375753408783132844256712339259686888946035066186788454366332597176710359242387198559993780888281617535753269944984939319465822644644407681338296677912724908267513838665001080620089349707718534460194688927921282289621588001347284313162248961886642924288791245768085745475056759117044378122955258376889270529479954037107848687107076017355344775564616277104501168969132910361535047012205175993622798244664457716193406805077328481560243554377587154894091923065548449061268147638065496805075283337477999409629891775148536238694482115598243958942087715836192712955994756520896803415171499944514185222075336941163148187469200818557651643986427402650115858750916623227705074999515116766885434858536513207242582109117239532623247830602651784364336411522862077374590178636058134144654866089399244202832133815459903072786120862333576778889812367694194118609988125036472639183109852890636927809211393702539028545256981791188866036309828359708555540802169017067189975504392152212825527029257379123085601974419111362558099149624263565849116893007886747546966250949887489540963066391318660570662665856501418347529655209030150759891267933700169427013451887943749245691244136588865905496772736630896432465450647604215663888636371069504140895252197818308747040888183631650844249635083276389542834686044808645845273967608755762753982197827349144300103932661858918485382907197872922152819548226104694365732931985219936504336988759115613389280018977717607432183697368012785639459159922563125940972554815306181093723387552813564236172810741847940844541439432086694168785080671553146175405111821540769973144877206633214765945031996973746858372919372706896824678459159783397006565799177531608146168386217329818949675502252135412344528574266616695582045698689397447449443672142470356397413908818662529220755708835777942923734651493107172599985093030100947497472383189661428054480932259631566494973265665015808981175773746797570559664929295632558308394178875686373499177024893113725008608978824285278807985958467698817008317583258951333185699753113011383730900865192064300148162276165898136369821553925866368272612978445148577663650219029149875852375307100852074329547712800226003052379159409000041683758300826074570138999500510171664746510516984284721689960019042857687293163580017096213446169017134309555361592779123491729497566355389594694333015363420107068913883071775982010302922919737763642630391581393263973546663422395388726801620872498305352894836210287803289114498349319183800100743862426544790641919307460122469644552469255153405516906968372115168419564550830158336782760979344410531504257685324352399545623392192699997780658443090379670058017575132124724338116675282379199702857080400121344530230790388411405962392497073192085274243437613698830178869881676331437054906903296080235845443455941476979530334608426482498552356676016942946642860302151608415133627009670910583202504318708004973953687864884912456577723989562342476742429332421821851069546235960791125421724876937939644125263280907505628055180956239682894545168829214416482919010772997704685010100273409948201913645528781491301180948905836266933786017021719994198079112844183858155991830850976796259521468300420393953652483422329115579185317256698950787012024565008610465871716697492300251909150264153695352611775810860662690061200594490436465270502719930143381745788344429726568713456166256247560180768742073170943521921093800245856198325159734649768497126307705463693079501877823186379502694210887478118877615074532660177816592987893164215142707968238259808338509960455221500309753061690579627584258793695099634609138636603314885474703902809869376895475616219191092266494971576258005476507986525686919921472585747504453650397678111503554303551532089570040543388126564709605789491519195722707506553598874617467766292745409315389098695270331898231866394041385617833906984155288584005603007240934336845083715601071219895348008037495527163533417283988944395400157063381003588151748106573036538453866660644558318358786785198067179441810727015923418168814189302553171199269482977776032294117353532534102659397120772873858625954073429875186829112763904342256594376831233440067363871563816472366780536454354154865843234418594636455177785359227361493005583812185509685827428334729810338249607563856862027493448578928841596667562686022874631458499117278741399604873166555635949429711126636713156308836198124798810037029580153047599759330577391495167633886533909289808349324376739286030429048713211718408604042770651814454699294027105421515422816260355653433201281373111116513532523429027630733132202431227967976411853553641118672787126561273379070528919992573655906279340428966701005735252168087803248064063425731990490050611251047538552630897417712523863207089690617841930786047495635162975858805855311344926171268482918623189040801260553231400989789191449296727087768218426012779072598462739499452963114562069637179234099114820394854872817011556251073559796490318239392160915935381328957978116666716002132734424614093945056966065285035195367857397419574198736518361315944472522469557829913784615655191591745378288057191255496444074003730909871471415572629907015139952603537471652920105795947978072809379373462236982844265740644149872891609023348740413552247583870911792237704893592878897503083054706672383401658691592755790996047804763771593295032886562570678052481554903214279366603248419753402588378440622984760731589440729512811845657919045503749150047618610284473300916481489720980732766029845800010797251641917598181036186408932889103130750350374831352808887051970723434397547847251651295144649014693550457321842377440686400503619305378875735605381325360758058317121035623392908896133731603818257647636071767998220990183902571929851806531580485832730640926463918928948785940804060966559433054288304123691680313170622504685458777710422565163538458783720859340712465201202382868575297390190488542109342362843312622173439094330341743524778879274011860745664602256463059648688229305543967278507105760034923433080718732910068806815683816313334180242703577044852238092892280230583564834192820082999105401534636607130521709641986361322548309714135204575751270199754724342817925847999356959004737485518104824505945597009506224651952070220551528623085984280015644852415843263140574070324838769590907632123216835084434262298857321095789448068400810735273582408558736392856948488044995441350079187898562260499382725294599382487216049982777227776401289946738056854262811242378458085677732961848643805714010167669963234693019308082886989735638662888719245455299239007773493071992341092141340748078932983255626754509473132525292858468226955206926204167861383534485012848467561103613323182805098878558865112992170172959775581654905009106540151876723205333104376569101100206862058113690790120767495423470841928159066271547781951939998354712557611123961837461415873977028201064498030770329063806369567479260488918986760705049148791428612759472422859059069264948372182291245895990153201875923239933330557938915788426812873259432820632801511423197039700302546658402629017901715117594462176134066026734378730506904561157797030973971413409888510622964786852129524496958008400910266029378222410548323630742745296694248750947236766105935153340296737454319435551350701738377516917463519626477145243602705669040591464967240209211377574056517459984207564629684229195884470443151912811294467244321206104644281373630332821062303330661006192566962579520069602131882271479350048511371888336132773514829340353721325384258966060923653881008440683423966149688331803171186725609531024650816172021840236863644487567710738052966360853045233785695108195731534815290976449307383293016994633802139926995771489856405041763645408847099291280118998034059896335093412103508316579430265395135438638578953086818194896873757000095275224972152470352462712400300841720397702385731340611198977873020936455736674905181170421340697473846097522665431682113155604055525696412389241475237849329800259556644976251695525304879115216214874944900402411490181307454806247289845086523674257530150750581732683633726245774841640558938964783231329977387168889768428391349794142359569657604518446860223012711938484774192714981678747056964427443392194183779292188970765188677241343241830186492146074792574053600303902188437105243617082826965427975331318763562758366700531360593103117149972601504288280373774139045653715694249614100162680417819976679928790206500031661105934865107127730075589845278044610475224715276369409651452118077389198744870571502139112723168457624190081023553666788110022794307702277952358491166196730876743346776754584304281558769439829169041867041998521173435300388846788462022865886287915385437595582061671399490833748135817282811690269359025037635074509459910453183527194056174666987143016028552285828738241123847586039429485269673920545420148179350208869874744190770369978116802411878557728271323629978636994428290232312285992832845077660930957537461932687385467674585158550615120802510584848604967370640934045710091728506803692463439261848582381171594020926783612824891907379691765784187656736282110804095481881339399561353498904941163192232747509362878030992171390775235449948454649459937849994252723190604256827095563361972786195495405655722721495661890646157637881690794389447449154259591067577714240614281357366832609146714501493584186564528328619964359443463535018810434055727353819920633185852090656077906663033109882532849625535155126649601387092890120249976241323350690827474896114636539756619261756479068236918598912416985877021669401301432427387754000271581257014471177960720849276204370643202865357513336460043549817677800250741914488032912257539996411604636573803169750496693566678793709133971959575167592467248227685680578768223443976479546987005087266441353217810587100791823235100344725947583255711895761810225200349473413547709894271883729685381425043390423367040115327430097988861261372377472781274960228078559534910548723385086358834304876922454494044296800733998203597756221486558774807682117191276769495182552102465566497401589457349222311807247046895659696862000108654306469055874740462838498380271264912380490069142601554326284692060986277131875165388386922012766307237271091082615813929195271661137530493028305473886722730501214483318154129350573298890879434987437027291844908914610463156254214296445505627359909283633517574180634841831180553828020886253611293916476165491529224672306441469057119797740936741044748806513147948121430824733867279965012415171135383930778348275768420137278930902484943930322231482943649480740260103103403789272917453542337122926390477832460636011378997723416948709273818389176979361086039138214564419946758170163598678313624546251854468351719101491344258261804850812648852416570685914663218176594832831554827565809403415249365208327956333686031327298667986533026862541618938384265079283436800583133904323671143405122587974699632456520695621345215130131511524719104891751721488993796576418572626414627060633667603607241963715852845238740028095105287212259535133370186892705871386764329791929818318009218094025080884101104306048449193911064270215316998050665778798556795016414452694582016969429881084867891811547066815371030734437702833990496680656030036441463876485209626269784128421611535078838450594333140188216719591504108674171583972018492697299806464527365386385511484127104626974288696394547576852881246495182784806555158484096665627641232406425642363686920944930420307118559026212969643295578839028444137309152051249054437853487297024483084006896417251376723507397708393922360803895813179551632032109234552221974250785621914620265616208739577081723365671678109053425056142088322237363265767148065790287593409403546571279469642165803086898022289135766428774966334126629071800927459039174049131235991147976202535413015679964265648571194768960387985810164991355106952000085001925026451462330176117171298273286516857276730251103882883318772353523990361933325189267454600966685887212324160502303008228759310937051875307276042163228645998119283205578220548983239509886952274117471056505886883487982019324111822609670208056303009404317895970579372207418424062941656580567424925058259650846416341412480265473203373284324224019488459162771234743544808056106676650363473036472636970841325000686320485691863220162173665512991517242783851195152615487954792678847333537770009479105137193475369450412559157311885519885458135566318579874224225933122318388167880660878572411511687863727556386145330656071367067570287633737519135845396186869782355914010491331256738751562515133771910379071510226790337530236443322211688614195442624759777674086780392999818319434238953599800479891276494831431549334895373427106744678063403733161863818771388320672036796710589234664990093813745970374540008926222498755982358230600530947439242708050260503102486118863623271283431150572193777730422622048762228896808274677466666645846013651492769565416908277793365381872724408317616417302504837711450103867041377332513594353823918516253645731446060983767720009954603002157325489619156424258817878903227028477578978940081088921568597204761601095724666973861328140647605488993393366954326929044377268645760670170826296123330879513422527861779345150165233144815708933498559975547171727275321527501200108997592140804164594141222990810962352106000573619953472785080263049434684956085496245020911596899010895773232114217333816894765560529220285033744171728929673236160540965269073927842429484245880637259196118213595898097119016176892318690500230335202942024353500669120800644346740984503006984045977224117549220892093210957184386509375372730205492515931024970062848027681742514337554446332851060115103314141057689790762412815075179103809711032119917705650941489572257648707629372562724576727995901033842364386096497613678680982131723680631293301454759315903858165662500727273037293463458392707123708627976317949701829130203030566307328949097455952272967861492709321087952186698682662845935222433783556291081544364059812895020764950826871107539824346574581595385377414051391140256698413663466189617585706185321785953926501931263039003995659197715161065052185446957710650140517108825010374684533381366735200892061532438449676534066733730145346057292707151536250454352907695876111866847990861311188671381228300931388723800130436616178550823890574225987812496316262417945842372317900540535225123924221907452993701600693422429593495709191674756123547462778465441004241071968457801750487570886457164180402583609973058897473847772096215749571208380079119822536294549966955777921480049659017885362117571031419995339623403339654639139670064674189217948897200116649985283889968517657408873845212115032217984144263269815076569922258312514350808998190271324133521557804830422516289377858518151701312402109761936142384247800382111488472364544013760226181849190547664959282638512342514932045358957732082704272792561842124935940745035754088381048587100032733463997015382530530706231922688612915768616691228292506143354952116928906843448335500281169290042709734437578211270929678839244168610561233434388291114660847764651652132393059210910505879248889763146396994949885283451118474156005735490632635205563896760181410743740093024248322309305718259000389686729040727144432803500602654630082047423858727998950016801922978135686785865402045534450010598054822132127159822867986519438801771494242212048857426084965182889567162799380942888698882113639387275169053421811877366244014090504046997810682772087395988952442841180734632712992256331483690320139677240148852878448276842946193440256430737178212514386034182942425639319324074992181557458445731617239780677179318437598400265134492204402996348641162380771389525352542633360081194653562077743719445053230095532385135227875990185210390340462377466319402404722108506341602502151022307404247676019697797722049067917951022519883071488625626714741507104825277000709432225557112802033115707646574416034353797426461068954215459581174028497875357352143910062859139981675236136224213391557100426087524516110305522675910726608389457878761573768916926798290363797967109113380226023808255976332589458291386838483301330499167413439926712307109066874291090227446560409792730677307453330304458879677596040509120652632140638488234749681674072328062158545020815875248148775646478492730020933524725128806919106800222313471895593322022059931262655261556902688670147418617376107954195405756333489036464491805118462047815450764640356009743034225831504640608349566403435252488714761551779484386765633997993065703461956249862676925452552407885342972166904197598417868992638928330656571818396108740496241226245060968091926240101893546780756361739727275632148846198104706423522873896392045208527735343844073807414117129012237589810285582136412509663401254605338238154399502025794160493751626637931781004258807027784822379468803200575852696185665829318622358876439821923083917133972886248518154269225638528958967588496140561170884738591486426018979243418126951008647965280572108838616233223435029322185705671928959723539870505176811552091761554067900784205450231423335925554284622167961541390173596913321912060944104813025008718976824566105582529089161896685968175130934581975316568402026723528768984509608330644364847449602761092031711765416230902289044560820640749292562469165485867061990030644319080636868397351863977713542515012588932058108321232048736013798726540008308858196106442151503994345074105098313431360737424242670365970279522901483340257062382198660062786335316410363382618938730864121156519241128837135917586547541647217789438834854058841698180771489900037541127004993719207727475334752482945796968695321955613740665881562760419447777511093581140670351569883705819006255098741074274322719710515126595502545953140455867527046287614996176704602147803945488403423062394444032967562928861351690481681025662837589014480187642760510825251754759151898253627923927859215262839851754085758563753631614036507962275748343911739107800686657298179718069910319065259379067197978758606123652233574848194803914845172288549194604696613114212372867549188104583942509951344187458225378002518052629148456640355209329601331846367323407688869110439109727324561714536777413769042377379460398656812271508722727999982056688404046169819199345715542844802271268363149419072620009157849562145544138496708983117976773429343712290449467714456151560928754208220157770104926469359129576390002032288800273136325385436754877638627388143436358160839728900853233846153718202159532516793730626036521411690134997904632126569194947359377773666639250007446420571456536079113504706082698568580381121043838645043362285207107681543748312502237405121055693118525246503134815633670536741146986849465575040640439552031238066912880977831141882064734235919378243885317790698068125746162972827007402455306163902291162808515501001000608248857190019974078298950682745387017069773117634137538747832874579696014982505588827912409831867187700214993841553426100206141269617280582974204638270301960882033108938554539854811254321019539777368178667155664038402762764943108129702164552108642246737775728634408105992225247426347380342913139534125531640963787091903339669334314628610067649816136209839741958152395957924097223281647013627308429851474393771160629911388483313705955208907967838620068017587565758618813251416328486852626980007738395695968764345185962014588585815919905727235987670890084271197456712586825696329811880241361578880803345506280830650275478029274707253382299548400518242955347251830003683847957861863665177325205694328629836799281037290616161982348435471218938249871919223383966092981516245431303898177005093733515842164739061867431847895088602137915304108619094301419887975382992879101412323288083951815617253668911812123205958375228993931831114500325233198638232957006896068293362845768274994894335422965181014338379220850339609983932546791043872482949209458570395021967120881553226654822846802624779939686082360923246128962968642441819354960993119828496735591830970267384826718173913465932810560006024886134466498189797145940018664870064747474633976675593824808553236788458910516338451319435028064164533198096677504264152952201265567512466192864580122795781457861240902557987962397815395582411728126111676341504981174914937295384660541019462494633835886033063004759453139205827971368394634679028726023384255413057593146176946805017365987077940974486264516843655197544336957661440420419804979217796532821769975381221661081210639793386692754520486537978925782832225166921497151172768545821818435033603592315512322336751687397085943611680880535745269093706866243929760812775887472985817262980572525296353945205839558407288346948272098834973826768369499242462461814124256597963488237650512295389789521154672427811269963247817340349393267054421899102895399578340617942490692420523146881016469311263492532839611397253610518261281110933682082035394177836208698171476538593950051774344882616760501024395481702297640609368473008651452994184993993155006211240416377684220519720817164124735610668223480807603106596600119787932688689822675848706917115225714254302365017651652788786154014144030465590787558815586631547245418363773534707315301466536018173795056914024922169561072058670506974614476550112526306338926686591475750615440538189281165043639071664025673045334554813782889639780859204847640810816816434316922854452075394263301440253139317127106520136410224768494351404714114727298550480564055554546722381518992100763110272560160285854809894273568393410517193414023268526795350466967308874586686412803021115981201245810322435911255316735499020094722341336317960231938119579074578512997270813847340568869560278294055718494835908498887071356267417818385534569169032427355912594533800657867096051875937165875910005662589169769184992051553174579298541463699512272407973893962823929490442247470946886442301942353279401734490630242557418839043735127530245075171530758091770489401578685591031047198670100192691018914664549927509950734256925341055231222588330217560187698449177518012410453881924713607948634525711406491272988273181072729436801756107133834700500370903502636729643870108022385509884428817990094657488506983273107582650406757498592700353156069313213292557511716227505915570695991697776529119296920569286133739485570095892752978578344864899442587506725269198483394679030408250319407116210308969662210574366514169456409908106637668747143565759956002743257687850082356923979150205347057803672503783437617424788803098050833202886067386488021732969244165147426350174199411888487189974987356808232700227369128875556638190912468674403586017624817014339566319231084911937885393428597458185004763413302690798128255471749893167128629661402418164667139605589757048152281839624318574961244760293761794076021559953852066186335769954177198351571575950302292633672607562877750769157270929803941408165643908661725560419552944455434555289324117914592287739231436340098905091059897593167233306058673322802510963246319139871950470601263888461974047313460023237883153502830087645840856313575221875691298960331596722598110003332328901894956942291210052901465009566188703766973056322159478886913149906281690742084744143761146207203007173044399162243177930009882713041792922524857047703990843363866463495219183524873784412556862399407734080603906590247376401239524364207619542298079090692379127715183872634259950901647107323631437380765559121221857700091649202543990206313204206695139033437055430110644547469683539582429267790066308364741764835013847238232891566779962166726560541780396007993833137979170853454575633133357158268796225667448207778153810928174295816448355392670133250009959657376989226508108955138914711291918674464885506974691126188597750595204151149772917267480089611080509066731745123292133526583194545596199774058388924005961280163390767463732211722037012478947859401950833640915663895973917461034761412907942505044437410830141379243784336721649720095318213070986599120826062714751119160170735326723765679256618667208391252775697013481088322746090886016219283407167608814720168627926561302006396422757761507128428768607072181989964434287427795905364240241078300184404625275536281724613175708943970919578882425798794614756347139290888630559730000913810972296627185732641267839236987331547836412257845249458022954909486139568727891024717464090112053046780708291030374010282891196304267911826034061932911240739729403459109674524096762646676562407241858949803926008164103531453164199314820728679771134877648805607177155660560776595504752793978429496581004589992098840531498528571914352935293915074351312610427045286088997224441432261554815446618664979663727668061159490850984406699653559168804376473723435049261153264967657540376106087663960277023033147108438974018611018325835669838567272763964103003011520997093157080916686862258031819900289304869517166877963769752073307924954984305747093541988223568065460431728511638091853717434460074115916472837207090453659356239711807548033535859877611679196539215400729119752775187371915884652191225735072338856064232224805337538584175824170891699871376964935844192169729097049976479031565733109704596290835858906599522027556343608547779773582960642287498748099928742474957549799881758755911868150783263783353746335635446235018013955151988411987198606449796988359285228365734941694702783504159508555319571841172377989505461710079946382836842910291706474774481777896928411637312563183617991960252805529964714746790105432046651116084736805655877232732930378062357298145504699463212360364566847578109611720813126235535490789433818071873065949815916935853347485612521580509181168564819035087287337619986773598608832055241076335716492293900762047755838315783019021137715766027363740561220784153856336430991534148460580817729460902192378742307907072515882311963237892033049448898348524743337889330856268557094478872282484145414322359868203109198635854040721961326051131135217198734002697702458052605000246690564269765734795183807073381334338321250845941888711467706147852370540085674934566827875922672185076663896884411852543354096814303453679472988679773915983954234653884403698632195427780052970484976550297670439523484185494197584852610605744901158619502100451677584720768849914508459428601019301939311114228914907757981748701450672648045792472479509341529189936983456529499829986472715149986521388749897670604256425021408709609961236132311022801749053620476578140741911468469094095390269482034757109140011925471001094932834605649948501893052008043465842991927291089494218323597565891438170432790714146072000283481114789865879507301228798102611312313766682822319667354696854657103451636446466029265288806430108595431698828437455052724873498812240125426845162367136617391102755710756839667662861003319058094674010633790627070751651134964471851852410299154595297550741109769244206408654404459423147276775606065182526483306122305030853013315707201362565550806227327066905066891371232202182397806547151256090751449025656601817481930733518644520537693551922818657852404232378194573621307653908033497736958221851520794991582994788306853528856776676290906290194711635094146949755835915896905698517604149393088365842422942049199697562251789276217772315993465359578716257713475112484492386071604046842144656449034028689457812918243444497124478468330672336637520929711888104523645061042413449648879209032974688972434171029216797843242034770993511258635323962656003014814611520780201218957066004960792357743479157612214875535356359441860745998960304416538996428294548752420612434218037898054422720749079522098534838045629221207151033370530601050800081528894343149098273956113541648782929112249177177518062074212446732306267430819298224673615836471078017442706220766996869030775768506300712520085319838490897577861722510241850403781107019799580432922803655540542015483785727795525912506100756446814551363059649989009312437260947306547757227854226457624993189934195149782087277827315434783253253092165549677071924753799263034883209538791938278768317823282210793773432901709642351451453355568010818929335897095102692659147766911254526486155515846721325904231063126338083649594364433802585952284797190410429132482476021038131757386020972756191235945708724080968949854754071146259855355308828709098967023331154531083534848690299929515303458667467606086002620812378178295660146107801875625797391409355894790830029455669515790801231452991720648285815140437124253168722874319570639117002638846875364696885267695595854916047810281832255554414095932425686298970691139038792083024528270539470148940020895828009016374967361464563287075957797371199160763026888202567832344074009896485201357996342847503631759104467540470705231583732921490179322484508739866606986842859730377163070601488777128231669093448667753696083466928431345098777948983765216713088628972349891830272848815900358434543793972746984502746928373289762553783472364244364642704408824828424329417894180823560610407262683541743875114456842322299517980102948918373899380073710639501186572093858281609827133344836334224270949863864341299134063559837873679296824085800001419950190829948811075646533276760205645070333750870446932440336288496387984738928366179323864259878584989120995342857070128507782805759643932372827473960042734317004013368701225241505155197819273312826244423212672816533182323563848394015167685353905874326260446945293655682721695046614755090875883698735059749869207781971158247333726594617220552527334780097476559506389823204136749593628364216430167012983168834272135137276828053095609832969305864936822930227638409741631136890024504125890267716450406165113246374728944451162802226257186655200040305135600139992166437595354091884164897430412448737807762580470600880006442474662341032849909688439996893563958349885934771240799735506881099018028527706669103963500230413699307104653037481419854480100981842694936327627313259735521235090224869652905426228134357334887521516127618855652777090532047724619401885520161135932411276690014267572490232692997524216422472957539284618742312789668730029086369484645790893728425790837939919590337557821977853652816304504089734509369167270678436915910161638227919113199964616816882545596925271488829150980455179303903755515626688847981965998635001968809776709802394279265864289842643450833138124468724545151625424067608289848601843989830360456020664707283434847184289985438100887791058664438373300651126800289612831176678299222535926613496084687727491233890527290628487424156371189668719573784774255922033807650286098808876569618324934423092679625552964530354072905422672149285596740881224621002891569066828885445444210326981412775891371500650536557634521283433507118561399885367912830634494906472916682327401616771814426904181783222863563272002592368591750263448570972367335970801313146957947539725604130454582076032623536886502079551925993141928280381123049451164674944451331458522853774771264604194912976642081925159255816066150725250294378674784680096318194376522385632804601862150240049850299977764069407322530983236649512771619879353787119698843534103969475962302245992222352816859271934458554952723779655722565834020317740647755622253087423261221852752768118140978538804154538567250691718094096225758955224901583518145911753173611953989042232585970658606690984227374825610004488668479424125474042375187717514598645807278251522540802696705921845497715958769296830222424105657895992014360366096161603654296716681283780582836393180506878541178388073866966486983261883122360575947851573144449982140243662390541362226567280718460368642558105435116717048653196459282274912158235399808397011329441941542802682978682685832440426772510295982323281068397906887980033051245323090024366588321349824120564800077921805959998773622761376857414204806327505465634975578840733611149011464312290624040389961330277752179188218795754347045834890693442199286639882474673705536733273640221084247648119971415007540986969316022016131727925187086298771552613134103388726520559876269254277801195107055780788029846613461042790955719824018980534432966337884391866135950315034905232934504658913012798152027537165321995846884671757222964999734608748481779228905874608207661838463777307946578802083708774630809283051733643348132388582390928708389079696236621392490083553618530665896116373369967972520508859104652126324617800869499973762913154452354410624844364393149196437776635318509002879944900310436876800659595338046352959295619954204832848111439118467263368707398323513338406075035159655598532349445224184717184554306116854738808869048610361759871732817249966369246294344794413384986652639849665274018396687832087386668790574205471739113600867896769134930971269207483094462402355650713574780262107893558050870249267114760650799840442104254295752171307903732190196271762087330903408738867262125860172055774492936075287907463806419373964167598583995581868673787246846953471069051006672349921389869399927350086980473264437305448292509322238999728645137177246443058082208621045285670498708758184158821104987268511546022320622439884017187140400649437412147033933274040126960639892331238600081923933155011188424756449291262633383484575463394459967257488879790989146279558895519078160478845157030063109886398776388647542365510579263399580930918117032400352446703186730013751696940101592782232984432805108670936220768791130000504866058983830960192827990020642663654982869892455741739536215682806775361656605011083006557642937894994904586273676167286945580252143368546536089411588614423987681754998297332376314530137746149146141863218954852166177118568310284631267132978461006733221843757210369743086490878179221555708163654096050617025739998134252303041925264418383508344631089405731631776015586850325524496531298374567677981820651827662177933099400461485935862580541707505624529908211089542920639009600026790959386815672103804724512358863132650785909837404171125857206998360342959277374058443544975366046375109337177139086002551507258445681371098690227274038669945456019171724769439170446677100810853272365447343592827023140932452661791568178061445458051142934482963985297404963050723262628291713709832261340301907610121134463354826483381380640312500508830743108599422169627688965446701647775685581045346549187158032113753995547418255258202244702832807709616559808579422165543408749245032958358545965985181673864927850392609835206945870108364632309171742705807786732076492240347670840210146088760199190667648551096311189485826695411181173932133468051901350153926465693180581223300215642938880042833450807025260480123046261149689663944628826526952893512872640420358273176652133030160059450571119515344135764250428100577440171333894056583129979157333565957922384825558504208849637634027296018725205337733791615153517989579763248719238951588698361416109298577415487552263532169104113469496628451167681692154263935571610145383626378796506950110653139007429482720340845326441307843958650107292288452039045840261834639678477016045879805592959380667091667425637986711877445461132397804394535432763295194204775175803524602303804457358945758161093931697234280767500249066595857527282781794265989426003223139348835345191060341397125561048919494676927130816547756510907352521068146019862480855962501003808759801167679242851708055154611870539044594114037048229736061658942057375724378221841382977478347778254601474905142195497832099398629469822661694200475452443463003901281446999029760284805959322185131067050173213495950092186648680921710706932921799208993935024628702923171433754255439239281203487611819409284697678859605184375074004171037250782129892976869546201768962475328807241663943706362679513449530654807213266505793838279567430571816830892426965706319678321816064270448529469200097117385501154182278686215030244175217466877816323421376767307580658725006218151882138057652574599156729802271700023184225177164532629704800496330077168475151964939080038005348267112389535494106220364244277354492609078824210961925096360633871245582116987169841933411746621969802745639939294705449779741953692138079056707866324023407361437449486915259824854723357619449191164736133459063741835810852604722869837994968078624947878092636322499345713581524799449681324821772265509056753646913666451820456981509879247350442117245091252057236580840337337875837216971498508459107904001195765776772415437982946814268672036047450057409195727398286665347442276564844906416071093417170817711624332409200619017346085837445043153136032556743029497677096709458245810817251256041823683399664727077632188949585988745483825511846965996552602612523054902751668969993357392730407091616670420274542714372524364217546044700538100814153516845910553911924514476819926379933231602205720399617640036275716990503303546673627101300080925897167054479980041630552220038688175544468963469978287421575932663905499258898173064840563137668241915136006052406373406323461940421947412354683335489308585854052232768010754491612113909833281363937647129956412605236528786736805499692789839547729193913038187549468047705847567791429521182607538835606755318817841004865277180730548462296501455524960851433722270183208190432396948995105994036279449647243214621755210684927102517930790681024178578579731717930671581382794051457007653575011848504356366331519298368177976334020962660616772765202897143701487409605665167455970469471440580982575569161004687580882596019338755807506652652362500979662344576983328370312842084770956515984634544248365729020503263282466649581731300372085566384493337222299657701802053052368986455136729834945952121909339366851772262197126647341162975209608865996752936715961467608616086372522561171442888278575412410057590911730136633560203008915224134003476760936445511018348812548730627418855080893075707161992252733308527517773750427777094203125131998675310316792025903034580769073208709439961800254890554608610622078547020755049974570648697579978427897859118010152488257735058261470906101489439373613800743407447263825064287040770100251019757134586899727727983577942461036982392150834180554801072839732403056422396618314385812685675930392899698784689839882279814848686797938785478682887986349447677183113955097585023829250895906329040089850773956284617599862934520140216132335143190432291629972918940615454794511959796402203070551145652804186839824755314385752803078254120812892576515454005327860669702801501313448754187651260440303822752677310224434367731297369428580756537164966138736177488010444638648045114353590297108885488649035535849747614569700041591263974224033188713371682420166492036657171408063648991450357238498112460754872473998218320736499494169909489478354767911790250366179583132627192943971854644486741798220801432019701140853739862903818954294064201737797157968583550106985450629629554122194049112710095475336585393754449553647655833853515642861010913745810640556685244553968132577804776836040734642937707154943195881969532173963011743558890201784199196895484244209305061694246658963867282858376964491164584295913195075270695957804563276712284609227518091811005828202657586602291568297224398729482775803559085910053253754324726655531225277325138851172152720321390769552689864533039893388872722888081532789986432699554837205962337847643529597123013186890841394845887738699011696253905895690086803126621350848957576325070463122600400441240012444652930307791679512731348805821885908115366294049475909667923847626933351693960844445203729881262970091077030768049206779024898820997363752191465075123687046130640132558544874388978029606582025947366113839283906199517181875561073144092421044441444717159172957076002385049081091391178885596737073002999884807440576278847449021622015717972419421950677396645532542016458900666936318999776060315291242390780119984403319550708449900748863666228876190721619069773719272849118165237857977000962400941929954423222901890460747151499396498221422341757250127684719549409022500108638698140162238688236424574492346918737369421324344186133988357646797823463763082244814480286284244103501147786838507519803558291394221110844124286363546768283109901381362945468748226509733412344739625923696027738054035497289548500286985890077145431993015291285006231600983962295599577092106406431087644883346341656683650652754544244961547809226650518039392194721996302942395540249878195979086693052194137133064042042433190700987036089977309370010384354167952260727574757656860670227165066780597545231241149269526859672396272933581884529181286590607095238026094866196751010756919150155575251058972348945243666216955337667546763812934690660701750395393914596812651297422719845558838020883226162968020954934940708879076948044909843938069808759243238259892924100678585359053566768547343321105846167034332705691110745894589568665395647266029987499403255323237481605022904920471371385698580868079367939458711625406036558479598738938694043008372397147434998152749132128403686262208211111411385344047120861866461078962858506160256435500933582554553829176507247097669270010312110263009252566255477031434321629217634592807186682772565362104983727273105277886903807541614242150356159736069285444834601474764745876795764322898774904430842627223861041478153876576800368520186639898764068064238184702014327519762461401834028391831424837624880262386502885666933010240868771831037419162532740131361276226195701528193483515308135758512919142624434799194971081212361719543054060472506506087759469458170116932115346379661122091707913220850983306993987161935222440770932735779690424102141879658096890093670144568835713991301209486185938205147530164406298314807822658866538994025075775399196055031781628413153582737859939743456608662200883142776857316538167766722902361885483301763105993929606050752598235167739200223947378560349696874220855842265155990801035595360315854458835234676630613630413107766200373956273349305106158072793167836074128306205811734591457753820414494365595045165660478461977718166833431288056411288410387443452529004225758657674534751483538900456346045799090199440784620233440564008528516427225961113945285554347296324367714906633252699770187465496348633721330725274949055965704239230002596060112955138203302421414014719530961277454666684002673033289742327509700740673100592384786046284133185748219548551693990238015482779541019354955986102603794614845422751574157984467259235229721142366447568138798523839675673851276026893630672138819169234923070207364344683530404340577146548139148913452716780660284332222983437401163092371617890336267591018128886166330293464834889637418274545531152202412937135510153079777609125426596512321395404475498552039075074975505195285178735963712579271584255404244225420716518926636895451410295074182042031542611264217119390649384336305854400547686977771147574695274943653661536188831645080440022393676528824236259345833802674424212521031039676998996288987078643498585500543013901861354754293903794628563222457286302024179290270946355889814085007152819551066591010263203268768093790607333881406047583114299237773317643721614794236447957215594770076636436117152355747627453581155240514929457521144952418496615026540911389438669119915945595698794830017905917505618822139242962181039018454162704102867538299166289577876917446777185662434814999680728852518462517518976404244419175039259349508366885223411829089533642099415607643073513310347864727972794409305323273651680516383499651758462138160826188923863975105672081550438988982346212068421432202874877736180844714967717981263841393526055434189658003957423332325519908417693561624309851814678072798936210714404359526462946544430783300727800171951324414917729469605733345901306903728016779283566223614363642519606144058037569120368525037159640998272798748813436126640100529230474288676375893470245456591777610997295073557866809556885900455598144086528826151937294924615124738543867095858976777282962360933647116882116849830963767379691248342484358414556421051202507977573038953225101956873797469577664441608365618390938692530441101044705702046048390399979286632314052088529691595400636787395274438365577517263360478825327246070593732042886713684608824555002625238624365848925351245269959760238207078541121817198960771491203443367110966144665995742918987244059156372964361662670136126279659892353774641695680216323526293249271335623667013073716260915254309453366243609320291315628119336831653139682735389074991468401113400280201281169180716529065509230391228574129273084273616938252946450752705055613513976633712789383372288233299958796121634814331669151765896667636476428538525711829397607711293316062033916359790146795640025721112809325057691611198981073199820933041401135290019864481437864942194570498370787884926930292126325160985419970332218178356454242445872582076334656554824428157618709864915595939233793720981891067772269479366620224127531080325105977400298287404503606278523312584767879180785889586053512672121840884371750657592313624603171302156606346500937175929151021948191775157793413896581105701832662162540142608576005004586372492132070761074078569447313403612331072056517444023266442360040243994689829476938140009010162324989646798444897727689387409733195649963608491358074112602575599096069558499358717281024928527411270441701242899674229788057905444796991674925135482896377365914875106130564526056913674783128195813180048560867704351646363031726622188021677794342499695452184014248480432513264301122566534437110575228693689611442231510245272830751935627305892269100410326331933168065936929113443219563445621062729874929689072591395974786690113468415560349400664783830936529878810348358681409798449267520783179235992681598684533105948191302925789576723931953775391722089584545471615387706197901400594634141990425626715141568746397766295709435146199094260608157474092339490916931161038374301974064328402551939347947338106517021991124781677197773077736371145949011035736896686235883914587429737880655008800421756678466518802711630312370143984243186238521119302229551369022878546562754045147374877305490834056796107686274998214839980408755778141741601450592403686044988952855657621504147633476372006584277223757583770819206407263103694931136283441061401814990228992458646776680227495900815486993356407584706537418033780646535177767162110755498352775850524467831537149735552436662523994001608481929011460131627304988526496167910705491277397386793352487618417767516780727108750232591645908196560535284903397335100549199922036099172278459803358870885473784724479696384740826943046976844155658460902685085392715489889596770947127896068198922563424819341067418091603860125186960279867222263656973936264344127535526260127701476721444407101555045281003381360816548388682144818597458309929608226519128474142911691814732696492141550977583388080265881501023774092192848886838781891737717142693030215293090597013845984130503669573156447589473312966547026009822001733881876356789501453303140914650217772469589987009914057194104050424631797770499761826479237543409110287567223370395463920765168558422911733980222188619910392904039916270408677548808665783407761662894318287277417621653710097007895169751025270721091063974364464998694775187786048769043401639639320882421394472054801285106891466939052298935253737142962794915211479613541817894280939883531559924185174866845064020508002092995065295753887014004995241957327828946680196951995954360321796867565311954665083387366619382561203184138467340718496181466855783805054477726792692769375062924463752167049805523373036431164869605551227152748038608447799565900812727054263165632831749474683550787662737646901246675046458267219521631338709549034349784509044036467376866437075627568731813289075703344539827094518928352196693878987153473670385079848724576551785711259259645779727474079029020211429227685272816462259587423338507734168005363059551211167357910346194958445891127788165134773782089195074043089964023403525943831755215828320312487453552557843749007487558002570894254338675663019945909961718819761102668979228923102657073913348170881117501975177307054193348174932126829933522649900894326733717587061155676984961476675008796496976699623530787441944949450203616873997585068682792929199654007534759846488347902318228406115498754988510803033702582280060979248395629778532068793737393975472470548541329097661565116430296560374745628752395488943550493491099483842064071901670135916316035027294688459867177898378222107580771475805872056459744984109788809230888497121860225676380733374920740398857005370441126360181758772238949494208871557401026030406668076003664874649446453414441297449878478399316814690397173636102297028329725341373934569834450454907029924836506104358219780908361683745604938793486104246509072096295910604598921149715610919901893275345620583265272400746636629649746538897640148212164192497858459362340576087448279230769637938715241371406000065591576125464656773254403557212204680825938675154939922062332235787187993645933430598597664967985766172685100020535224451192028972287823243089187845858777822463976806153087248217863146610289761775818945343445492352293858163437616395601908431492659080363010957392508957037475064376752457824403600060752326755284663370243319521816786228303091044091861335577012951484228494107107331122654619177019384008059136386600228592024785025446707902668043678789995971516654366575208407125606186512368609694117032280533384171730714404755938187239605370226311986165588864873480002128522380548819713050524762360462134434585591013238595427580726094147406952668582988118488016455615742601577827560400909321639517983609301503747072240444064057854099145874277067006914514035617354789686591809836870378108677145707142690392640699981336237820836403025226667185354395696815368796643862459361882315780558307870059188196475626422760851809409079398914601168789113360128517334641494090503348664600264961099813634674760725966122308857231740002599246028686417689178272330724365851029203689008556320217240312406447578088245863080938324255829859521058410076685529256793282041203347100540284891479720275046147300640804898928660204239764258018396051845702964580759856447819329106009343656706884920871437242158445542354579642002695509405898783491084849680048384836422734975126923859202935170108958702303405918840781091037761582847212030345057379937269801514681361312287335814086751705951461914285046403840293731736150893834615524370939954231303713875983619036721636674144000317233876223199644806330211943113257452539208631621593061186900490880357440585099792167766552872620909348874957315531560453606824940679213769906387914690903371858633144156278059557211668703757830657944609754658060853299733742763133124586883373319483846490667153837317129579383379088466490392326244172430370103419263510410794422348967641140333983171674938512177669533892734364398493531408168299704202088586402280967979352853165889911939364350111435151837675397324089308171222413886250983622842994531787103318635976452420658477586890266103869158870844060989801478356523031969962012608788403193756084369890484857466343353498623307894974322802928338201967009520545523883962956538257748968415438810756277809341017429621654848648435765238414518565054497246237750195289685083711793536984754455318802221963965476558665362020814186914745478377696030863226921227713720966240306394275088215610451337359055100519352862966549243118913578047355883708551843806125051251712543635947516681001335990531435091283885041878910462541296086578540853530200092168201459478992117602766972113684565454014232786044493374921693347562904007517237344476660943846842460111106036834290838287517897442488788223803435145330116871694895277016590842417147868369287893834182517891378302614261112052510026820282377512448392857976288592529884939968721645499266735497237652040966135691203245986180270768734825696772181683097844122162037808811639679877906109724161386246039708635105880390265089585409593952338254181051603334543257990241857091850809833355612920243065678822378430809653707540950272702786229620673088394789714076233314132889834530064519559868113771705264798318408564726397971825235464105880863026767671798521830118664021208274373698451801298639268533341350708840838484572078233663887608635550278883809835781206330825461854797726606868322775442200516362335585799336840401833628825631499050481437502444828938483951696726758059875318243873952314571728179431255517183637580932662455953646847960314299626047417751958252378773647915827081135041073074333679158370788286659896521415010891717332761364607084727343574872280515839712442767567950223037368602581668775926885232846314446413412852435861001157869800295890147796283226757187761614529712218884455825412959744902594313773320816122784553191107342324733681347179844745790154690082181570626552490898838401510771273799572342405472219778353985829252764615426624545592040855987493172244378909640270867714245232166234223507496763432908782097963291190441335781711445978857068994747358834300195419460500470701440444705111254873389115460065349330112090709957534161030984031510451603441390791854944227540040167087007076411657740118965018787291656464269961953707106920371416122632246934345652732946037954778240134139871381522313099756512218452237940618073399306301737945744635731094858652653118858643664463094499471537782295321437746244425016001824287853368027878401409033091502981774771104694067928316856973800990967931623447449383757726962428742486344491786830056977898849031793744291160597701704415864013238854388864734121083923227259787256958283892234778494182757102905125723957515993767768168567829628576162343914936836370326346027670343095539669016964951603092347490215793605104000349670314345057934863185409116468708815176521775908758157214758394243127189270580772037169962130824733003928047552115277539551566183876920329723814513645288796832227922840742392979139160930530402396800547100009994362114732375321096838640978539100239468589206093831449265424820207133656985235956241913179897885962576272496700695090176322303856691949800074936154605303057995733391834528771725328482382626876325503320652936680491052769321072296100354682279693171158701520570078645255108994114022753189793049126194912426143899867278354197505606703855889704897417907474290243435194992454800301764468843491520982997099793943363479048806388666226476424066241091105623169900479644606082314817567023071832595346027086702398336895794956639218223141382445008934934317730658819185544835619678901719596711414334054028062366101653833681780513166733581101453949255297573438212655638142370407334503024353607945668900692071071096668622056762448208918372553436281891010902624640430553409620785497565685585835709588925416122385701198200123797149482575452491813695109360077066406288267592783818485044649700294305180281545974887656338700151143751742435071989146583361674171281328376147139055818720489067484854773056805943821607667640707053407446167845715636489057782102618690404197236324552419443981023772357852888446647283943840310143688077155872227723839726246340959396923101405383124530675288611207618515071516362917417280419746286065755737442760044688887767771485806578233270355275649864784914949159238307867845918646891634426653507066143185494640419008055781891660160266662154337677386743978295459336906670037765795796442179890301922690020313908977608656809835104819168156796248905252761996427229395528419046047598366474537567430459983635947743115346746593585629229041150073057682278391582984760718559081700082736208797904688266237817954588877635571642741496089802806488099309785771886927006943553267614322783080565661004315927970445641779866378249687885220483299898834684765721282147691273991589661469297426380357711445180523378060485892968364459038272932426544842017809295742470845414163157918224812903187612794421389922355708953097830658646131470311706504488472553709260111939602028915499988234679309210835844796352000960145399920020155273838599129265601621076368289099552996262131868174139205726392130990524039984557043753088654633281977184895713981324463704562500436641083605878410284310502244447516079832362014058355085383135704320469606256189850819288780990325235765044109155736438439442025353077517042844537870091263552697297029926543633477785333011598962003998694564194114851685341038842493819034017104076910562569595113838517575797133703769613595332016013326023568039931882311388590916296698278979803200064083426510677791485432578677305517637567449203846125802374219342251555326985187874612887632384237002373997273939847972489860092437049845616477316867561189930150109733036354648398952465934698397448638573763418121158873758231841210181168180026032558713191882029453208438923251361776217774331955387894495619344026534835539289166969201138326429149622754936126332278163893781746160047169120201983908880833349824525175490467205380310294273273037888761611332897783114278276746422478994395450300846356969348273001568356363923536789903969852337851803670920373151135282858636002712498386858534343495956772824436540946394546952407122679625044296799561719414816786594992307176866389730167688622463549198278379685446451589326908407038575962832896852157160877891614177140917959369697716577263785327951689126214651650486407010757760401958259907826430840633015673540004201204680983323729369077797688299048410875302188339485119902810886341747512484017470237812571738821601753639376883958275964099570922975281676285556131283812069310032719884456704262873927757739188235050004905056433386915161215844523231803330853972620866836038979920961750437445609014749169236134503196382111770793217973212287807607361960976675329984326186051028165907811883107904267470477782128349462896934492913304501752598146373623918276902073813225705743472429175882862588066894638630507811182796978411067781052530710953332092526525652179798233364105025510074595198127903484760761437113024945303293005901577446596280284879143937742141211825108592593458272300153098922812717799443242058840044184756767749774375710933905525338790506821739681252357093260735964224177047407851088781274226710606592685832169747650989548403096041668787920319210543523846454094683913609735705882204999616193601003739446142823106882489772123504754560856009313603465899581746368888547477242821651473374800891924769453853108201803214868032897745592122448570902069558360423487184262273742063503152020032533233448270917177943294384885463348769371351861739046961946857243705035348560011464814464565645142516485234236579225940780943599499636046044490354772005297565619280298447004419311100029575145698515632983183978784584706366784633210988435036553620655632254961432136567453151279806143326193467360397010985642934906944455197093787427902589669165128616799257702649567822368452075876868860659720433606815729754804529010555663235288361725752898983249684529064790451634790205542873480370889432570481160187763656899945635547085241629322166083648037623173306713054122580855862493238304041091953312896669589274813181720798703765398020010511607699860508601914160402386179925812872558296901079354566837896368661193388784751890522005034446987532830385127391978977618063797134307799510848204913450647330963618454605180017507103452927847100560540219363907398036426407205524534909839739631051904673012774466051773677238460524599281865471888885200450098491082516638223666120862095668687928704356946718424445108368488382795481535573266012689431160183263516734120822502505881158892868253916294454381552413763000512447628053808060261299580342995453713063156951143786834029267867633849756585762628159448617039430291048197429924293684619672859264651776260101929960860097903545819914641387367576465583769080124478820301944660819805176528723087888506106645583392233819185704683061940833012146579764741645388229178385436357792567527023618246688383994040668190383875238751783563880616858041353371412903632272927676970572113853624120997377563219119867938526183066774008711405790536945481881604210944309877089448636272904340771353529731256537532037556235673267198660030199963166435232794845476173707430150123958382953461843009197128879505133041429292667168709308694611054474128551972201508947443308522183768868178169519818862190278978254350645130687240351116437408654543497650490780434262230406752106638697084533390424210425352817217204379414707433061184329615426921095784879713930851221548706380212204579930464386601190412679588002839350580670132805157976122834483666228597062128947185424365870544421987420548833139889118585552442436309497084589342809761728860508540400868983187337079358832633899498341968823327407979706525933241266406214180578974741006885649795107812001879653064977445432429818782334531032949136723372250031364551306275132906977420982321819264323549475237680093871166543192708782443985093557318329959765263094948036642102238337390726601521180247014918102366917108935982514014080156073615683672975672875587007568660380640632772252738823118231064772693695030446388269157184899230955866227282208431294345042104202763015840818549259153984845254129028024775443786843952689854340485002308433229811373176230505055702230516180328246572330860537414417005192473914229740441104386020660614745601070787577253769208723629954445356566649884463506104543633503682219766329818037887463783682074935993041224522424378144484787134271448387592286795273257683779648277634252010280790277184015902807794891139845855970894284939643295236928724741220035244145995879881713022249909255169859257529856704047985013551727686079294993132554525613971779613199359925933953277112954146506103635760855590790278340205452712682130014489637472828333622510086075558422979001855983817104662926103758439661501025824325471110534803668321104205436749815141579724818885834649035565731582210656899589613879266966481857983269033953208137256954099911660124224788917926177306586120183266982756827250721326323128162056757385107352084888999759270022550939374732101715568779703209929931690461289483997678335956786871687978891551809755127220653488010104949764607561058582795426353034086403412389032231897076651017814766708686307539519627865535726045081616727241158861880716038560934826916030488360909766233004046921991079867795675257855078739164295345078177490310222924240310801986164099324918222782584559232631018152960185309810863172922439946516307988495847405964765524419354764323719644280517426323870820482169514311127537790581549143354395916780487289163682123923291391481593366773075692014016397473965354770034923302062368992339405402273185831480177939901469321149139232190289580676404137543373444635379308083990308968932156605981935518636407668272002522470912458612321631350931040821370856448938394777746963970621751837500896516036627492785287260351293023581563672178434398577929067208268378966774178120763812596314438981976364562236496954685100291474717347519811835497962424959218804523023765662439919053563282371326049894020064014478402504928003978741854258545188004939787619240753603692890049089989960997431024798347021044974735355216401194553512077260417548287082985180607801372987043464005609458351398406009457522981672031510488005142213021184280917615043772766894100613504683869745518983168608742120928895218518744916554004625514403943911894794223004958812447028904662149851282556945251930523897342399250562988322951561578675185207102042152124987178178860300458550178624023612337324690114398819460637614144241783280237929088597978761159000165517390190429762465629296754579790251713680280645281094997598142366911044886534793602646029788377588881621410759407155569386709888580651557256926834682945488158497378692511769639964495849888849959460864314435820842212906142404118857278338373403791708347765212645076048130492384894414041885530899335637369716692102158042269690419141398214117382699627478194180833073794725981356132109581883341559290338789944944402774674272411019489978784160623004321392533001445034482643328607524258721514433648660656683376596425752971848330650368098131549991666500169164026996746562375452358692352900870317561113376332737488586666382215546627327399340527267972843032484170216296916070821238454022331305486859255902520306595318521866278366228355765497229439412702626099128592869902158471614080159940040793211501551892432463146744799338204212766343936608084359923721752494737690172178667762853595718644510654122205801095732048633725478803496502957627387118800206517205969395467495180267424665150754720537773909114117021589837068084829059038432845236085905889687821887626418298267562391249154563970515274373931620670847063170696166473391544947996306200224928051389978831721301786821886150028297326762431901543356139938219820664884130257433078400042332252673297247434032451479605819829937987539320872951357457248987122982574031806686231610495428352057413929223376604051264227920910558403553931269364002651129614806687307082733409936992221776660375697802584764570070229778405405242752188201313270371966207511073080379320953658908270073835187172042039557153727800366665721616889008581341918914541798024299344735246109887314348726237699060008529027258649425114371159388508497577196317008185591328735124827466482705766069446640317355511895718710859202558938129636252639267723697752593271783028352778430748285717253863810195815757151954366600550133806153509467058561564402006990564074876358252424398817389431059016338663062644379803583591601913618718811999264878359087459881237974437155121585414903196278625386547019262240324499909553377556879050049643081250653893592448201138937064715828313817412697661921579440414540959186875461138820051610411017397234498828326503294433519333495098086801552523536333314856347613158899858677076026277005856186456698655409481723026510536945093880857589933570609303751179742872988720169078744778172597347480826481794984064553136244880960749149061265333108467770919535563694596926696323094603324690208106035968864882928359582652948968675190797081960826399046233981240104922503964514805917868635345777481413087888522182117094929601774145033258693556717474139010149062564571343630440385244227958119285820987424009821451491928304005529618892956983903391245078288696022681317456122132254116600372483354672784578469042322773130216701351392503463741567578992734017436961025039174169121833129920266419112943695945780652342191493509610475773394097683833782246109059830848744813640058755969535374278042323254972166529082844632402439077396107474867529596021151159702373366263021949157354129314636493118480821324701016420806719505739289999670125718910254819454927377487237863693543884579992533388227341605270968057954316521573075683909765039465576848049487701198624742888582039087027471861656360461960821206646467538484490163545314305142577184951709230033242267921623241974781927252604990395298197102025472867176114180452436141923630070344815081339983927070389295983736135270520402178052748693257463038039549558615904366192608791087542158987111369393405089738911455829881863849606574209051147883714489907607234140993825893536997887885817861716798724331770108558286411348227923624697312392139770742523690960060353693389246961302401311949441544569167584257241850748219995295880949673110667733063089134492631122528975895121554635522150983095483825903313318638439923597604315849515329638598741748093843263509184758522924377227638797256057105760878252688322504468098937055147492715876675898062992944839515391427874863461540529454855315625319471468260811403070772621113369261336933534941801249763868117887466094761344497069187367953244678115750319958934205379557197476777551842222925196999671677659992038159967809961492155558057856016843084101692714424488921683047197778401262461599017906147404304159182720173345101310669388106381169248606226664111841952445123410240175373028928501166208246107041739789875862227738281145915178331884823815899727975741713482868274464869297173835599097401631838017963592312887397895559160430231276698279815161442904938638345843204784152585890725039818334009452896967704578122366872112909379907776118969917010165702186417372812799487336856728204192233417019035116798547521359916854074872762366699006392279427089685430970491273345304513614430883843509198983625002219892315705460538838201210487296868220507936227152745123712336380405896017198200070100934625547061034943187282477265667808431817618922431694182847500902662778260582038110659759502066320069004791298639752584048524271363268612986886461484393950038231031840262531453120230910427161632690377235915083511021227480138909856606984616912617856801171036059417081854257820226359309056122039711064970143507035646461898331233139160318971756695101135786083773245207582045008741215503198411031519520584301405014505745671741334975676919783101895203579976774982596941394057269403677655583205546943027049820400838380199231256270603190374894512955267492663691886899307293493277330403792445667368018378899754782927619851851814112971709200177396610304218345707433402441747135784295303653660126638749935601894069723270228753657258376562889114008754493676233824252397424925058141276490725125427967408010965201275930581303185557284398147109976578410153359160658429761488792471512889909696479840204188134292302066812979860543641555371692211014560409629242957194005590869885022448919222324191452539686365689305077428944669597527424533745598820282392595721523915680772176626617296167467614036904578250321502361999208832535139221852801853857627360193123136486760879376641179809180186964929735633363337776154997267234220176454307646977404854630010241136538595633503318672591848641626035527772537026708909331673852331591587802737264916307407316130266613815302515850199058888549831750934892579005889869721935410329649353360812148613037141125227404715235239671186913668550139578644748020326205961194858794609215424138526009859981440318491665927505071466541752449391447866235569260784166399021557678770823492464176882331438365026548716897192560299977938800664593792945497911666078471832779543991692448857466550655768914038716285569817223707552409932326005087188158934005426413590947164386896859122518088199266461270222648521033632662258766049198520801325725826409560176462027443154376096278061600828297065741390311946154910157939990489889265197440147975699214648669990576209255349063997859674049317833816594846072103979833274399708378480886350784290908005693803443961763353782291104307906338780152509905185894228949503118310846612474896996503807043216868768681212013522966951966264148711189816078437299619022231445129316921640062404322800521149302930453130814027199755671134822496853110241893008398919494431518516343171908152067735390063048796598485927214921764928801082238835392099254639326173432639400817907903588553582002748385372842170717537252231796458354795429882727841863587222643916222811867823476443976415770678993319240680351680564817216257489170747075299036711537649873338600750913130156520077435925479216208250533647857045038901402160887285503776891994061717291406382000073231424611824076477627814191426603192983574735466778340380331130469948205855599717739340592283740109764350531682306321688094132515600970864014400157220791102869821485486716432395380094014544552439668147933771934376002900872484368776685264797343181463972414816375246118327772531324485131363423465233283442246761941629436965931721673148675353970754452366630940234604378822217896352915931578720789528114149686335497614516050918914786005577058487224584116516916020644682227036860428080983814227786692570493254975420674793836870174531623344289012997272757344871507737135827181323817935749208291726716160860389617381332646823969943977599637080411937164556054128059715644120061787481525734053887957890206501090268414395592574286625524768731014402289334239515864361470234344763688268229871861568265204330651221042692122284760458883711221377469660865418882012162759079043555674457167508445877098321209790046449482814671489259468578351687312442575279531183536470070920852254635138241878145004752619088047967566706835592255284634862096723748113599355193977296854192249198682432348025330006188377963514207896622540441001401066756499727420707417292646475012662718929599940266492875119898782839483076214696624114472541521133714142327400703978311640099127932603635124539710479384254482598565926488862811527403833251059666023697996760657415141286239664179380271030415553773462400177555227015265811869035113185057832272011311846355263247100209743164708060326348039348683701673136728883370740073825164866720820669333162985167118568704863062509204573236289492276017525467523651697342074797598736983082770069186983632917066589342133690686752806543883628552988437023412547554777809411210063763493259885942249875216965539244008062786308364405206964459299381521553611240357606016845572292859516109716918824034142726458947326913071979657965063482595403486624273935590147055231055188736822528966439832033565934785180925300974115213002560215112591921684778855630307536339877267035012982141997860451712320021791605489101025197682917039618065652024931571946902120620348024284393346494623067916617185290909780668498441830723663746446344225860819392598524469285683051094340541261080083167429970136208172179798683978299243554955185537824648985025591994016637110857961534860370458561440964058161728249599144853535112868566784439654438861563699812532082700277609194994347729823602061255361814042830413341352735078149313814109446123782013161156844291116389538210380293701558600843757397077968879340167601626081390116949517115069027384002716210847631910664859440345054459157729991795647863767093701855169449796085546782758247106191740913522544173982969271147966783479656216794401779853785922811564963109205632748579741991199672884183674240898249434497725674915033475109697913249502305229239056514541031345013613231516428869446422169589002944403320915969600871888332584136066601105177950343719639579127951712702067379316946327561551446391522922102752636995445419011686771180542695906904376622304060480825644070980125054892575006506215005948229656527808934070057268185527699992058694336542419704518705175743725635349143747188415293886233667029065762109999269484006970977163361897061863349576956029256042999380485517982713845256805055083986851033053942108265044414996049194557137760867281777557781193632546659129411858894488849914250293213243807086496674719796115336090920579846653850236860216601209706399977130156742863093375637228158870172618727360965116913567266691260740654804338524594084325885392369444320104577303281450936401531339586573933388020130984370693710976531187157377105581081892274602560096265961678687187576174111632564566778561119530418732329681927468177083311682072439617129256350890910665130069030465015599142873911135072151521352449315997476098845605471333235061259332251474062095362672239719441660965449440712107141763350427771519710305598866025393996569504166551375328540393737576404234733914128587390107537421517038381629591117230612404756221604250885899330088915517217820432159912327719517830744725740515045831162230527691989688464939695552341603706121813304679102717870456451577437159605356589333752514340725613473283781253501601842892981889529729644603300041687175939009888994812950974972483050698150540292224990133793933959516645825923107294511761639153157649536670004276049522541578971939812246492189025333103595940167832981759093483588810647078517822681516334135856882141972484474645720587127329224992785344331170554244288877086824310799664775546447348715202543428291276133909536813292108857397275340972972176325829706320841518584326568360961962201133180227439212250942219423276830937562027133915321377437352941481325016645912234002119958769470174298762432795725404311714238895985388352964221310536326567302842548574177726778121136016674384294303392275038136076853781025184390323761439987125590628420579482775152107241386557131877956283170611354549305883273381290309778664832933396788429619442344514991718203712729585299807540813730464099570609677399613981641497760815565646971971270082924376952381754478182633874746861035846752613280504947602239008730826796736991034460561586339220681862459825052231499016230154683199394702630146181396251285131953428383421939251110340336780732066588147344070476384305954956163194365109369337063526260327607760840695012822541173607224455140118666193822114555253049646637321020702301067260600304939729530008884932541922263232124442625069432511602338240215061339271663682310821988784274147942591916490531590084090799797846143714777741980840347498976305214503027596483932870236602925449612149371194651566493427144021007343596619916111412392948382551462039432009449194804272519730339529349603574079481659045064252421164969386329653960767275384016050734900702669213706672809968747154273237357299701200554575933457345933993274519156074741104432802036122981297534437058271687378819841963588064617808756553441989807067077086679614228903991631386088227382577738352114875771361920353649146358087438778870060728771000667724746516612756212435645786212827550250943162511304765421295507292282924223513158585058872739113065660228901408600125454425587487863017993374934815110129746961544706783211945464221746632280625812912399169525897193677539656121032922109271390313355066930751431502185883695871024900976722789169596414677427927189531224882622514424800331920834966188492444259995715246529682772663659244876923371030962379258424104779809612344049148537710410806807199688949841556227241208868947622446776251375976147981664284157701852205757555075948948155506884673066341493724187023403480928717727482032977457121868156836020205463470861493625985774522655872576836477154962655912728485830905226492268252744113382993622672004083000658331243753334246756807726299166409515932613751899029959158041742795858818430516651360320206102800583057071441691869937032363629891885953299425371725253576873716817931800607963113114953674737827241017991642868004108970762014198034024864233322799674952567961332548164558255648537209924455261605143012198715716489424318437609160749413988738144958039672646462017539597725043080186770596567067519748744285470571773085167572835440690579424429246208667450204108860607609307780706238979142304225683101311163083448985540894858470457072921782009142000273677368277859182448540717113333654511945051876288868773411872656581275263733711454662638308823099369545464400330340190626954240377569616811988849634822442681122510849110587589020799386687468318868716764438607182176483398852925655521932541924980437905754107715093901705721743232777996564210577311922831526947084965289556186684697156756548474863753634636272735860166923828904104791186172816968597885389898758695436886496999369902267303799774947822804728614898442794102335527479053959414739373082082543909178133081703298906420348649773374237243668186004641680646616544422407093673996132461343291793850273770170381805935743661307547175420181495356119206447046523789960960399091066855088849365455666192571421342127417418865955933367745796362604043507523573765634017635524228856279585454421199774981866439132282080509454478074535591150572678389120996482386083941229257876094949958020715661756353659150217177376398552781570707252545343347250027277130432351123445974413149443076525710518109729361988546917137915746550807484805945641293775387495328754808155251226129081536508673425726797528020989487360893297911480419182285397113647573957838705942264308059420739051493564980859554075470932822726414018155693306401525870103834843863344499684681829059265542860016848391091274055906828574787504606554484846874145495419768002438297714086739687599358057308092546290365282350089817147301882300690744485830279499202756311627146754264327421906679732557273215824871277171445545504089093469551645411781709665876892160009501089780537079426159833659513669030123274077505891369885709833259618965123537119677017673871038834004474825781291555710248374008924197815530217251899333478420089404759780308713494456126861899273938792171350056366078725388451866108427121153447081391655797279951452161175857637403677038137441964114184826077457604165087560454057623844464150490901797713145512237900895358003516366275469516225743617715122294146854075944525287627466041399803227316415682395152114390709357925862022982829824032261476392125868727497779582547839779365839361031584668135739786763835204597652992864273338307466251513475729148532585347953266674560475706762563856755650229191950366164278312240197049314206740902302620415531602919360582198454302190624095237045394132503423067873453973764795059001509981968639038621335037781169137399379883725033551529274389411994993721898248786391034797484266562954183560287019939837706303029783306405497935779486981265696154064972692495111736586757707882127697627986026305120486116298611000332611716047209041332852960943954517191513677265316615654646461795450558334754554556501307088343394581991709362243461512818441256178077752793353293434574895314936739177695246708383258016482711634696961665025371694571792146085440977095102836345036318648958202488798263021678258639417950455088117158755654639585200782849660888062902070545792948614103687886336720402401394205614319520747646172471643560160119593382087847941530268102361161192801687377737689002456968929749340469670441437268194095305224028689279669282929181981011997677824695490604908634477865207768781131410339769611882218069449593957533647350795391729263728720011533790553171808905529366571457984039344466681792083308435693515404754186710612263761318926818708514901100189408744507636766032010516192446236477690552774726322383177182472068689965557628963723394668173577993889085505584577081471302584629300682013426673187276862883278550504338538180427089621991680585399990047996217066064458877941743004264550612524654964824615387527674965839120981883307364014993723998458772021219859254514805353332030303678276593848767539105211217952038860060417207306256872282972133915129510009025926830577219834628167377939442510268345254380859021992403511002009145634139752358740209385744308743908626675116281453463878785484081368258492708735289744413277293719450438359000678813168149500702261514234082228495480775169634880162996128382439831223898738644890223875793135810330886566791951870555011478707606870411690661316789697029229094170617986340843923674899821058116792889361975498914325806606811157085056624738046071065755288170314868491229333261819824825945084574537301407314843013868897688777726291917743945884610728370581090965067172232266421560611441935857836857174052748749091731299025042228598571437231262469585303475194133881997523063535073875063819995016689477356247704481321540806914239789919069048952576196919330863177168851684703254457829320901838866141397725361970231741437898774972177232419464489993164121943734850181845753927805256085955761153312436263746292000154432641619248669285180163191041383256650823414523687701109068605140912929605791144287365404908735096111624271340888257427377338492295614909867441717592957584315703449347872821774891130119304733207941855761797515007667547383522716738226525345635431073629867572319158723959565311469599304078251887696694278633534049982424120004407072606714226867161633898260002049512570181969681121115885732152963165806417708398094167244088394566333017745122103104344629828743223937606829065376916319296445417228841597523662777711640629013306866197767625441554745721795260805536875138882015205766772101269009055902621897874318782505125723189784362299693305720925868479467128354539397242957273428569440989012661893683826449138984218544336129421464336557725656157094936334712403675590855157616456321833963113150760381127178912102513267006705727916587832423847004242877557150746267307693725100618968673959229550042775233277447373676139869768147596064529486393258090074760429828667485155791966617950910165998366848090022950168529643172719194200908448279594373808443880410582104942084710328654596089382637368737787632054323067792117749021495047865368815698152742908873831064839752606833494520907673779817283084332172464536980379345384095940672050480426802097294413743864850099697762910755071663016463757104901030225676381350743109291443132358165357932408582312803188979401619187564180662425373150639916510062782118941764233905988367146620374942088687431968329806419835538106322288846981781445312736078840664654361261407549484889336119019809567954730873323415196129910074222025762933599282114181585542387729728407473078765135233902344129610621102142048966043472469592356128210392541265524798398627111957726988534606515901918890577367904885586784767632885717884359030698482815828179985727310604972808875761587733879764633209546649513393846763693630109356203878536595072868029844164162607832223378601890492161304409172551112980162110753061822771945795614908615562056555247685579989298399832501746461169488668628794401552115827437415079039399809962862228319045309976422458824924304543126020390590214213916063790405289350473619753682157460173077257606299424469734209821335455120358923023776817104867409913400228697038394288059538226453024167336612051386704809345852150134853089207021977815101815150331274007500086240834626029940140994232095798727812969311803199096667204079664474671483122448165896100324969628710231739804471945079118061609770090334450982932119337078836814659510626101170009427582927686821541075108193628013652689907259805838690129221024930158003931390139520964296143676993013147719377459465280721009770863498737169744822293887228410926540068024564704842319339684166302968379366133209888250783385952433846881623143978169851925945618894780971100444312698628931932127488589758235511297969708428452429831852928548030367568704124371803465267776808336756425287585947921377642539846195718295631184934628803932576135944536158810331217048139124691346281771455504142828274914171309145474996227363007104515977666651723945243606592031684809412895599624036451043714077599500778484489799308785981941667750789538907965848642035799424962485845601532206949602005647333505369687445176380017401961841802870351719034205755516825900615790435369523889277814115832131465398864506033725042494454139877072371656697487777388572122969924520708668184444964809952619132306825095760898751622869977906682088572385151580555633107307360588392639793764628250473289411493519133628724390874557139687777686430611419370701493865722480693439059552133189227933318445710771617852106485078419489575271868631426488491770543119108322237965630095910945379381200228210616056839499520203209472937585603257070251200202482759724771324715783256072695097773681628753656784178028681079937329986138481196053660619192884864036096107794683692080687565995425429134861912347747855772194007642268804111339513642822654649724071774446126835412866990012677219234288685427136330678561909033131359433245821722411346415689200721460710348571665759040610147786233098335524467948230140947432514747992561890980989106076141069052912188500558552588757355432657629938333919092394244303071573449924487421495370225754942673302271792380382877873497407553275573176789485673391847864276224941691317514356439747811749782025439973602610448124120481183954664798349027249645872570952056787903680384255554760015868889348883584067074065042882299516514041995056085965197895195315359010567341026138583381263364756611067944459961609796299208600007012359243544248592749776605072337341165825482439215907737013654089686460350281147518196655673865569549643887214115992352518241873434414101412633495985538015286013718606687105289316710201576180488726203807539040545154028291226188597973563586625818234786623495989959474476586814449063800286177150793984678516443756705680268773244290427066807044061833465656683724642939572411825968475950643800466091625484202860745867293632420750078067623647120344390623802348933324359481718903054640466918595393829708371371490916883778782538672873158940903633756526333928507129134267082115393472336776225531371295383142987089606304024921699292011496747653414592757706755868786276240159534197812911483286998558747718915910881708054743220507170814739345518681415020318941255695479170049854228778114183264605499739305866591390381630361727796268837552220646844694088186189909570603497651103325301491374376268196387438397647731961450537720522675983146768304725628923057816390095244603112480815170927136963482148481850080645418779625222298923136549715726812662574572364285115196083444211880611293538674719749752236980579194266676874644619760529361079911332615532571859583705014108028702072046118702375164438284561789355726077647172821501016435499754990414459871488876815524661731875679832841584598741505611936697967095216763306591632188658186368858582999764139242652979923350356827593295324726926501563582250120575017706886105142415418694537459516131484651019868763396800997699010151397212389693033778585189214670549266909619024757683301760803683765767572460161682771200618819702993876414407580907226746266239219827392802368391674254374048754304100351202855976228957750848507340278039592654466081702125874578354579506870592689830042477577602379737246917608570090249422343302495129003618461579333293244072805174478408821705717084107315512910004728850757826887179337595076837985860905236093859144304072520207098222759227814581993226778178595415993623808877826405381254818644307634667561285354898223847459977125998704552535324749564671339714599419498885014747152943322651261401547368818246665545048997895894804221587544874220550697880879046004704316953543405234992614617509747549205125804578155076184473364399273508648279609601678125285111451249291524904401382858383156331105368823631897348926284618568386097733723053803286713820031481241374981126310104543430145616613813994396418026685712546375114586509363508270326064586607519424531024372297922302707319974853970799329517495420007088389060249602375417274511404091704744338029630814517749741851265416740343915543388329855805858580489536568403669807921885755027004938340594156685637468608491631637575326934191856588047655877312435910741915180819674399305929871233247625175641980657257021351394112085143478915459185091172989428445127223973714409130318609041226014803937976337317334373408923072498182423986989938386025177133297909864512682327249357869421679072071164567841529418546286225879501783162141895923912323432227966335593281466394777410207592130749648842265432253672148985044976301787357398592058267214295564290587466851002778816142195185592932181735643447123960397307535751204926810293860941959547325148349589938615181698749713941665058669545471246205552234658873255482453278870321462111169843732607166098550643886706672139493922764145804365029013215697025352467736992794789440924755019119632415379152852708388727779063881795166529245484866240053418808331911096824918983944016304198821623764838263156498106938364561145339068044608874505795410998908691300468609730186724080817568689366533629943384952304212831918729125290363498125187803576988107761858281514898952550113183331871488441183378426591315724720084457314424423104951848902456533748497188651935368846233996106759016004682884817725927500098711776222289060253527715057541788254585430193661063866305299383539532094134615786954853433424831131192793840900084842073697996658208604726790215321483679223873218351281516075074551682606926188350035973021775678390180246249688517865357226393683567502983604112044463701509824321138719864011053210826405058365983068556046976349724090520353728486342821335354251701245724601688030162747800730284989338453818327936948272871013168242812066180143151328320750672612482724915518322607037958195653934908415529590379271281788237486709694250620985178256346195161740302958459920576263126222730681190330015710922267588941324614141817357482914886547795032677971312754342495926456150395960812510545670032652276824580502205128223581339308615741473445567833310196348184943532732757676575702587963972949637134172441895631364442693384127137108952383926799812842809996709033653251413421460738670712822580733786233938876672662785547016819815554779836907365048735296572788628950307455358992693618454407223601783350348497196390209978027823937972382734591444173829771868417650367557100075985014146918314419152978584936944383132805913380416579435289787533656774131264783894675499300239044749003085576550220183717496256609805312361837219143099399633585526005085006879258491130599191565255508243096224934802545907406719290593132390870110414053541593396614796030313216112425977444697634931711032101669215018039844586962112861485609558831351574663061397756586150571816774999994245066677716446791647268475011194976428760505862998019120995621353255144313139777968048766500688758388061064276683703348655902354137089555724494753506063007301992362406801119008339842118826842136580260434180754956753133493794559509408848562242812782785205094031270962656042269825511023572036055516159147986380384479757268412424649044631779626032122698234422718429904684025173354842084856655734687489641003687525866456173106913005723737563190901321647182895139223261246984948205148576222653708551362152844316487295445588547057946900880062421454406419913648008115788986736844465719855537380957883300298062650460394143892772214201456202867299701102389179465663580624574618818184910168717423099623916332042453376659155735423785715288312345642926385107683628881330177038442417564408996955779122641961986129784584880301327646917609067792203652535224153961763943203279238222785592669207846287994216659564881630237097812998823599807341574283343631449387190652414560350592459192145085781900284450825657080072450772763779744286040279158044276888805219051729826268362357772529803058395609167251503689978961288070221983061977498410892446104898561775747323212812554445961308949024796964111634801255566723494076795309218980275501267348457086011843244089817228686245280483632814251682092893122213088864396260998034197374066027080332490254212373013232727865239922651547151533233058808680065070631171790034779902602131012684255870181314296281912476093158036314727320185185944847515342687712303888233028159721525445579712029590828025320733214223416227057865298649459841175522229989484590492259174277801390435920002323860343412266728134475730669430121204361616175165958706168776827225005591317630564416576210032804230438529853466061136288448218979570821220545464735207955795818441201051178681788871724832048794918075997588100236411336608516030128714003862492663000597540509469989473492813567130966896089896245819819237815196475589625190007254196238487290871389675115227760703487935597261681415941206871412358583459029730201772237640965216015956233079233925521880579228325248352242049779375054359980714968027559493084733110415268580134624668530691284282556747988543592838797793778225407926935196063394743640539237232115470922187319374985102829156063992520538770592796808541501356345629749897107267294709506035313773909050792763590706280750745468287875616137835457939605987795478057249845475014977701715741540523215343441214183837426712346084503529167672594868957310307241609059980093624024287915374395978222333253833762757321506230074681010580972629518772637603830517114546293721753135857457342558121119173530484070704090219912504935980755068533929548869806119885731320014811767643962761073826984677384170127576694761875491034832130786002934505886650676671242606528746038038424603029042837357058152709682061048475414212382107782751297208178902014749908444460002982761714958719286056853106725022726190406138117572678761163908698057606975826489849632348064312540250831484905914289712861578320779605430630454877020397019522140895307894527383343043821615737564799523093837545614853968081701479637698448161437139619713186030675828538521845647605209603428212437730378085050950120510462765159416785242177181001211119768869510295435798735599197536805216557004779785299377565808955151866541761580383541217761948115288535980785799037284622034947342846828733151948157054351340876121944677509525327242112879150032051387014459344866189635753788345443533899575713026399291448287795455363232432516521540863350714268924000435697593751051258839354335140496925048743836127001194531133947381525742636441320543844776191094286728785541256363030530399502320605590839522467005951821223750938866343310790681894340811374946320074262602377790385802124927021881525819671480882840377220859484363752374935312405060113260639094062870938220998671541527651872718856415407159112982946516888872741404143160656980588032628166553300955807523331642817405846693688634800292891970520581370450930581111113954416928970454513267705019264997518159559026947847618456906763577130936740052932826744853939870498060454142515494544186479297303604576698589578157371015841109872114660802195230536467770798855171121231644570738278640746899478072531021398475915113394164061841781938212223257593889589241585319985512914107796840204986946040632721625167366613152824508170518199107811245247632026642949600916096388770033676195111553669355598027553333908309141727025522482089458032471443141429847083338812703544451982331069089195736646152817250416832603099830401235191278902207433911201810850447588341428156369363434667659493368084271626558487028034675863264557413598973516897963457083532938004500734251704438501151617464458080063915797576962355545733190458202446217520236915202902282675836604796650947532247099313141190739119884919190077821520077542274708854377311644425458711716205578286158968527050570601845421043525396463550887254401154792329204717392283574809152953563077163515708823108013285485357255120522175690707168742289918430181498529038284085214042732478095263701791938101275892793406197268197433014090505202290788997776065939522405830044679805637377458331914402103248513969510306896667001875204353746794523133306388859950691531255146188029678878172231895047013754326390668518406381512960837018186649402851083461114122942461506075028258816439688650464864452805793391955893006478041110563595663125657809221062586277666696997083199728668328928244415615274421429654104017689527240839807623392363572910287585425216171974041185300970850908554731640615540232338572625824456974214862529250018648357416169515179658482532214240633022058708445716377554110356116178427924663790683339371421977727519656222995908773094947329672149881946477450820102050276770824778797063574424259667557769390784433034860922271723847902631298996877233991968063828699518206159240987317871637715328004196634956707920485319429627491629319518560347263641185195023322982990098826550393383989443954035758507145287600733519646413473426782332214216086358952306798110838418396796831780923381002829338581722336394739447309472415102422411851054803416185150813418815535220503858245123993256464204546606572931733518466271918382613122679266366000751817409337837404613996868115132463552726694294668816446980153458073980570830576413403842003348740204481900374015604889147186679701042780501761884034444050408143904008763033991270715251360802617546373891059573323044658274436764383156852224527812591604924283519549623466488046301405565560350522239430418531245827049921288269996441757372470567537395635966965489021708669367963994499846173506695407284622917737148977881016247001887111097406699625046607873826346541293456073418412989465293015519879462298118717647347852639103353104823085536113432602234558774002532747401361264869353240522317042950178595522768631430867481614643310715416558423922720725555663781005495427455063826275959505674312034011746453317434035579812620106289123867326513645354918433671341669896070169068753062066490653134842114527457051711526495133540946663412787975294966815370468992065666873495379802068551414960775814363101426060605817719992093080909126147470801463796794997220929469826388566820328547942081141026329813387496408094701436843390887028229484906240021983633864832003015926692179383646682010221669678107158992997363495834226569831589998048618026828443398941711721746975946872256166271496690917459384020591775894309056159728754873242923098218319077821901723204328664906321640296836208090834465321694380081777579467980168297998871887057278743259829247646373380771097488125191039380230670424528593784169333150420834571336639234904728630401293440077867299676755747932751650372094162179294363340004767890962747930967708444566592021569714447362643736597634781534826561498911967908061474985857323934816934603600230220803277274872096086695928214097386795000787152886032479815412130536165134152056251042831201720120804433978375574870717187923543038913928589255953430438271548415640721013230668862822775193918676950654628150006447848181971887034091067873027469848820724288598493673867897756492550820836555960151519741803465108295936026357067115211865823138345656427824813868905827585639586226959793688813294278614075633416100599106270030440375773441494855415120945138172075282594695926077291270440034130746387295554914725055944162047469809990161949519299697598848747149051256543720440133764985814031856502010212204564474929691701605730023708499293174793242655025854360923985965120358843216342775152311805619941997144851178629409524082625276297945309482375804059403033125412976435127091541048457904520574252056009043947957918044500560154188608631234504839566599133637783267912562268929510360014475533106750864771477676118382855179364884915571555310757490499185760895241739305536080523681215613762412598116654554894512629376189757591799455374407001730714973387424122045599559745598160443790668990786917019554946512015250508827857939698386834995699143078240605782420052897041689162931266673179778252975038520434772763691207306089780074351720584900900730846180270788040030888620772704331208219200716730311015997189796213096468299258835936912421468823841324159920955727524659511743774098931941056862578531395699785691105687402287806271060353444997196964507487944970121207143162440472016888560686292935719570793286769445628730643749703449486270290928278276258438176459699312153495379155351899693588620419686624790382492923920201038457734333093603425793862346707544962999275752217005973460054395317119513161107253090502226636397269533050725710209493191342258962251562414831180702218520120662240962046957458614720780211424666170817887102290096342332844822017456891104606624737573059533669256994695303125008611331565869201402688916595296517533565532231575372640154534883992174867148386937110860423344079248909166679314674025652029650722109332616174140763978222352169911008937606803748015875157659263593059515906239111636777112323877815441899756498789754595396357346852743728655595871649504794745989629604412022974329929589473294279940791753715098640895047708475307115245829387597428151391390586442517209574884270969142692153869689713708906320484421190836927511470913978269803215794840951278391762994536003637507296905535334211084113036392607625409303565924806785427775077352797883812407682618456238457160244161834726678674129183326309883336155599639451818956524439311575390079493963281041465121789349834848876210583455373455076840830424837570456406278608049662488595437723484223709931707903355772468298555699219768145237585730646310171080269660686363289073631255709030913267379618192451272640390168779964441199912670712798951970935672401730227557066147464744267494972479813047048384746085636809064394908508025379125024226215100983268753124218728416792718780569211179853536716219627519492244614991673767349613833558958954887598527710291808700519965446674897979610586674983948917565900855636532681501189863515253182074612413431290417198234601142582244501904552109590107679249918822827779350445767612689369975790445200955865284255088452375066767811521429352346683499585835470793517711262042846674502466849417266770477204889923160500899469604768482931659248013733480570615302372594725993952208448982941894687043814893795559039908214092723281493095378062669646798145116076802247024912751143978284031820905953742113547255371764059937695525955944335090469863955693182471468430738057248820366755559488590920999012725146416768451269006743928593330489485207213192281074625192437075352801807379262665740461165306101161877553787727074925715184424138438689421714639723235390552147667162268818369165873824771560480530851425718463350768883346589662969660238286660293774610551335927215370851041811655310944128989883630952197522042131857759311706334349175049717241605302130813190233197174572403725105466294530389773286345938368413952786891376023074923885562198393448661360458099751677599850916269791482052482770253269665984649039380083053025175123034846474649450427785621515171440789492326929039678458606222598029939224747069765368797785166186163309045540486325692391235724312071855685635765263914163018275308426461325434937005477490212122525487630751771875752169239334689116384133353745453665458431634699125395522578484943274578822222657671132099357018660572042247148451215146578140384055572203058165603111621919271442450139103969881778788478993081103734164900683552319402076827307559524763180263803653625024504934044299688414066740737971056366677080312655221304851518716316544413251023512480516168128183922378817256066373820055136162736492972435679432156693169792282704553362777226301537920191248360312927556047019488105722121800429846195997545374077633444725890333564759060272311274355799456845799731070149510321451470014268351693327722380699638785956302998598397484384057707296745207895518417878196368340519746068295024442781411161223130646676676920514500730663453948226476147461419651510540287397183548009500753805217780258386585996734779558389722404216293342396426233992152589719106205659568429883258735987580351682275511595345526653075499963769673723379601874453497228629239920356162833684949326512743502083849007596438281449305098766262273129698835582640925674085061914157598757784088551218953516971994307194429385114754572859999888883425431510058455467782187046289353031169820943186592577594469635827836549714364921659423825380188299359088300578888470037988642647688793225239775351688439362733970759663467234776090490783754899435171794957337304482786756896517275373253891794422509862851568738249233229014561333358385920212149811626255898761144084054732295669199178449260862143128174074961946754280824582805440194893415414583141192448649981623509292464856498571461465056343165048273925428132411565181617363801381589102461936874047571795676254400558974846750823223361452568181048873139574801680982532049545649305462965752575084035896579460387425626928308610218316920396824303571034267737027650887676810963784132513769906731271381683969706597750634494917487362421431576357557402487160742504207207054311784185518547883009938626695676823502089994314348558197339620270042313071950382830373935107777067251118309641463196061140154600562191539916435888890296291949975998721169977144781187786111617610494594179989316933790549378680354492166452140234168913196477281769411048930015928276223940010187820055985417671842631989058685931495101428695634239133300936783566433928498691867316820527301570996156016037331194500625156676531739978566050671570507575153746904537817031000360603040572311154607941549723580334071974440263319179234168000274886733127650377562693811854115581414833445553295790663424458169786804466378792637760333595844076556921005648913027705442382046281833236019372222523943587147150226576795563832423215953058526495539246387089516040647158514498175370551996825880246886418941867949763622386273660076650999921239023465173459187580444875232891361849216518839063386630753835814519217860839463494451293249580194288483331876254476836746848680759260118296640727343292629653465539254194154969883383692459978843113806343587923539480890801235375595739230006403202633035229400694488326831982292536424877954505378957753548020993729791026856157169313279292255900518490689312966218656623990780457078956750134679045697870131542228811358543229314540077941352211351348364069787696601818988328762054683969032976749317468215331321022575113718503864689117690881218129083740633706846318937150344439119619576615752755904206025475492226447862408646503766924990583423457604122019282692172178890404112627551446528764553866332565900659637281905872792564051599337843327045149459487492673830845195525339632929803153205704593475829099373350031015862824742685879107865299725612255815465244914551092360749671663620234237322591397616116199277909269047415099024686021478654095579797720115240189068066563867097374745412418458949421577711677494918747746164046330196896165253744985517905174955034559127261958191562575633605652393539102460891464885316052094175022784419594391263017124568987907707310923747229537046416078396829818051336262296902598179939639434037621671329085411406210373148065862780756951621729656061481830266484251805998725240099931290766630670139783040396922921248037583004357027889246732568829056432018003498194501546892770269251553451354179059787549886358105041405913643562118094325422671199705389630726127538427334697787047131221013650278991411950157972236286153100597257312405405959374823455843509583580326655235866936529960964933658892119873635649504075449823053634245453897311247935125823298254748589333920682590939850881873164468153780218215701035961509554403011586747457418325493383136759625826449923976653477511727788431263174545811485417370176075741495533009696864157860716043458756429170464373155829294419582361670806909037764119636313812221457558297970959352447972266713878909900163175521240758374037431815020188130181510337126131821083605825185882314668385959199321450033810548481465001384951693376373735673908928330448399231887128080048393533168965247697812753868092920512726475336055072952549474665410777696198871385860006388441626876167136102973975422416948058699123880879895401039483261853396433773829712893070135121239578941603131233152176060373602626601036513123629870917030491536569285519809063016504374282877543605813735888614491579547013584108267503241964550381722091266830055599590479869526122706712421515876500583013027175235126506470302991686779062891536788332788351438226479726243260910181956442572197693411263930276320771059359808040976426909779293015036704556478988051928625636714109216059019673402390827222293006882174330613740263294925453639471755167900311419620538627991995453341009679675989790822307088229625748722889695469490854411675280799394465748591907907663541089283806508869558933833813802027503358843876635091897500099271011382056411654322331915420798978876729585132764922925458744967665724597448549400192227854414037137174802689188695340697913754762677433389694920756863626104779913275229507748927971445568810506398129310205442415637221017203402614015043436083000223437586507488585362482389492515735634118538565902488621358124353776700240613355679718427652690426359314873009168195615429974460220380957058608106507869941057536445820908526541610608033334881240502405431334547713000624134473794025033258829881346721409371336514955038125706548585213749386164551703471645311220803289799860189765854310211704950253120283270975344001625692885127950848084479073452006355015536372133547250276274968858479511645011415177213867468076914834061604221958135617476295173993285531476269306907155806869286091789702674738927476250741231258532273779598025786391306548869288794410987147370481113369134963480011199651515353003680401975492079736073714737396027663783449424658286004006729966195939960524548713809555301211686639551242487527474697927383080224423315281186466276641446533826318895501951433136786959741171964831300007899773129407529510819089562404915209194324590396658749719696808377649148044924660903126063883588155164120394826736194537320970624285476092962982541411641885280661802537388864095878783244177456724560202349219066466173765839942233668599275529415165985676883947818386321542204836563430147614685428691163695032646502953010392536015319362009391020077129207178720194262131789106666185321494672684274923140981061374181232819358130491135275795526722779636059547066660769528742484815599127635734560508614956796678901134360742523506774110913370009284158354754316192705785486237129902676060236651451022546179003164628050059325669174412982338942406225580546122746255012752040022641372266896071667801347447392866832193529468426964091658553539575210050720341683381924189455451049977154294346114887990077638499523106661450366774749068754923436531135110327808075796614612969524333271332847017360592845248244591747123935525218100946873737879508350235203977286938291180820847818905744048665637181627962106585498465821614833178840994976179074340973808674822408824404951048129191491814848677239903411292076260830096819512657328071510403855482215731695493402185463304416332831408554575491923319552225400273474280586166073852989804881821145241293248435314914513278589427718068189651946538333681462045340787820394410777767881941759109914820881294271302209500752129290536608372075690687400935097769501078296408259749936472476439849073855689080364920780907229538048507991647018829719716363855977887790242820599678770108593941440305417453189741367672137114869883149563616861776055804015580657146344436411963869034967506740803081830674616672028549138878841225024756845132979362573966156966625134743435450211954536661016410699485592318624200557685009267153463443626070117044883410098564466289218746918398170718302653613265074556737260434793288729887714561010505319928974477047615140995919016103792895007599441725712655755029775415831481092533800850473443859959273685119522156133997381866692835578616265515306189839903056745306197742725906120298252506020447861511797593058004475089816828072023970852595926897157307927983550936590483841567352490675696829690689809847778478728822457112632589092149065449225636247475131024976362907265434429635197959495424151586349139309723647372346221743626541130003427906448791418196481070953643135333284495814824298678431354355370180984910063653507372819032449816964784823798866835299255236479716634194505306326002710709289767170293347668293364670151914153212745513906267745749243382206596204335363780427347790845656676135608355019605147013480067810428127606152301150436622907649489697071300986183395710496070186043818610318506795522023648589967504625633437178163142215716243883410008319353078081343440736908225911561920486366606120299227785230838644402145908935203536441920763052015763416926865244192764701735575231712334719445130545390533002848680120137335203635039452058367863534559262187717277888941588509636703158820212877472171791191477780953657824156884709173139820664782792150838689624930729117122487304409880421665860008040679906414528976098205785793058673619777375135451088154671521590399432662611642237730623018103297168625187964880132221585541691459063366730484495167475495643328474731225388938407327711743304443907416874335934422834682338236300989940492487355347326369797438280924710145752317558228861153108464912997536567441143382554450283363156362253475425486570570545762457392783401589358370600529840238643680410285922960120198310907806663066991537927379758739885356968848898176312098485685674625948365838378422757954988627982942117113048579565360195989933592238807787732698747784309818156496173435199951351822141900668675209310830093141640188164728242628954163037357789205448630869042131299629209569268688095012617452349091245647840333964024381092975414844121888772651355467346379088660174794450361904119253347379251351413861055897295401710319163952890861899288567111193675830104140562126148305792640088949604347451679346995206873946215996760992942121585110138322803185661304205615775440012883370850528686069169765294297400999579776893291979578478606854153280629604081186931812620249445892618823960442086001538492617226697208278316075640672269519191080621732049571219324133768887799968540982835948156404252080169838304939460624009293733954725189334630013758756162473209124361972448527126615197639117047091726693685699934470858527231714571045971474214906696985767993227175776085622510527050233002100135002450844975842463165195607253244130083227989102735997059119120774063479953857141136667671369875916928438561070818003582922743996765920582557325983416904857197861176657553397538085397014390197871392695618578252568619392343523396728486899225934566628356669020680122789120911134474092646456701473638464088183253291915473372708394413583606674714328685182633473149956153867533183223005635401971503263715849356614341144724940186528188458794920354698476001781413250753800925888230592577696008591922521579792222480411272535577831409842641493812947672997914377485869696655574984350514473351869938104263743951871708289310652387531373954741921966314563078852992377517321022231468234998034890219627286486257391975996258269146422428173634536245294330829090711183647419325722639503721014247068983151403777805562919385305093303060330872612649487985939509198728589374211210605336808295425270547482573134485432603603776929681416033681557832910343406794163935593847882681713487550471072101118648341182382102066540562251096064205187509270921713021755755716949121478402541596861816725519620919989633961524212217831247948840770516831545297847067464334056972798233748695961405586615560640087109689921439241270261060533093715347267876283326050717384458502840107239747685309395609208513871409614480189501398465395993141209260513488944790363785920360359710079185673122554332914043377153663377454659439026323085881615811021861701504025258415111092717575526163343023397144687513473647437789108378350539512840944493118244059030756331316812975413174839849283934358296742406412987469431096493749366001306352928630958032608757107234302086819566671733001730607156777672746582905746470590622894661047811982343920234538995082268405896913342274870964777797655470383105125725257849867229585951158470971134912462453387143118479304997938692157633088063479524195787432424480955615098906625696033445327301412046884176570565330946432930523414663173123376127338577991751424886860912503873899794871970732427422960381701703345611227462263857789193713393617403587887882116017330290838802872411531556795673926310928731655820849600782213846969146231588723996188969679951580165774461206463126703470577257192200163219487088267404469609538467107884839595212066513936109698266371013559637336256829034577522792541429963354025673693111809665049134781542378529957024614105509573804252654021743250036036183483513581586382525723057232614463440363673959871211032815511770423826593759449211279521950122971408806929329848427488880145814306857914264576021105250931457086348427104275041738046567687200547015932846810492317019903320351688500494645872503461626212888263902592622601778289140142788717018955957756892235047086027672045535754599344010126535021962541721424193170353142300387334021089848961488133941284352574468375033932734184539510328081454915482664703337274203343746497859671928251922332273253464566625489581214140338924509219044345490957263271694977775177331687572269558483505637280736479678796250255284359347031700251232569377656681260661719629272405961140218215428265473654500275502972920240650927353535039507376831968847903903722293850390222617557427257356486948874747289969713150011125305181295092441256624230212301314754379864212987613710527792015426486688295268211483308685208327744915036408377976110257684539670829698911058527813993004351147647671455836343512222343314820153147218793894343907133045434123270675620391743016722094792433063903144970751472005731223313628466324499582553187578145708060004073806367285324405282000887493940439280810908081627261210834787519547871368701521567450902454384571604691768059822449365814419014453180232058230333520747997938167302210434094922056505321022421437507168986310936721872409295785513361114115157640008464026798802201122508697235905276072334012130481273771299126337040610459100432099112917222950118549933010563957746354560965748339393381826030414184141229445672672195225390651404374243625559767180422406082721652990746716338579196239790791766434309722212170205131902960275680262925711801888151594017841230607427921678891426343787802535933015356127720346933922875513632940418111804911383152320710832510839452476128716113107507328109223808296495674366065017682589584951742797257439359040568969161334127109135345828936639337165645644101879324214397748445137011276268478998801602544394839214441407628201649536570486535813622419934519841826529343156171921839746882079698777412720431747730403289856347320258348322889845010727595479725364298767000011154284810765032110030508646276557382607750425570649152228451812807933642817544062827640769037238023437025706891761490420279236364621802521295557959127693416728894016401686069449073750378495734381949843709635706033622390408971128117303616928511169388233408424322430071363161760451728304814347532451039032793313714110594311111661724590230261236020714957943134354064872347324359325672528510328277465492581976142635531102224006436592175525336827302905475294824510802599548250463833105175381469117424533626286353608975471598564259523188870738757531761555506419322985236979728950335309658916595076588018422891375479040371774741478081394862069616851569264631410615127211957934542316989721174579110919381252867070375328856374740961373046422052460837967953243705223928623739369503797801710049013401304540958579891089144452492561323965444083018043035609250804556190455717035896680402915576933139167739510583119193796902943558949684848569666267816478567994844737514103725184935519444016923138059037770407221691756663282417607533835889387490649242502947237884111177838703831122056443592275546866250901616257993105948966714146649772506397340070090149490763584130489773257756558750740330102149206776278889680380426446695978387342306587075172571709764437345610419597651733480780455558388508582871492466443349262775018552903947475772884514272076701042071415667877161782461410700075907090053592549704720922409863450369852109279173240926255129665184908183968458909642782999396338190312434488912146451669799797967636894345193247241332081493328248665296302153003858632431547020597489064363389939042141727045905361232398562519114008676667515078735141368108935412926680987795130018350487752450170710940295459672146937460355281026617517815877804019186584734972266111047340446450123472575205769751992709454252159723039651733219506347202330174440303174843420300745985984427644485974379458784880633874118404487065891114312035944023445997251097940686153965955739380180151665898794725024679561328255009916020640097724215580764280099225070838049187719111841938923894970343288001929297089839145891753021233901392327169617205219064773014961845847099295321836947696435145721110465902189674618190081312709499662012794440414413648845671023463805154986909325234459051535934101987632768461636461549403021195036810422237386881894405492782739103993506691005213937162095578362856901185338984479163771024048696099384563620696294014729811540126001472075717849470278603632104457561164933007869835852656427542639219119621015203721546410420961264951478566099424967086988926073737419779088621490165654123745623047311274107864783518007921029399711587302640093440849194027701370265327467719396956356150144487389915159692223034913628624217096496557163972022065825698584711183380829164145355227508853070723651672982808555334292262744212364545041416989059739015677020571050105378241255288355953014571803473997673954911421466061008899797969001020514551425839755940432880896608112140567251677170178119851278480671698100542465513316226627519240669437096244843764871778277699187107687967853960893820406671349868892997111899136578656657698338032482864990170739730956841861389548699001556853416644005887676164012568866268643481097442673255955552615553712071991425800094204832883089831527559829832116089777758040906134618107644612538395816577398077400786240987865286252900448638666884158894533575913053871306598216432648900733807719861782062649630642813558518331336162474378261163227303690143048129234836715446504063163530402775186658581562724780010030247121151392677935148211914257744508272723266915323361726079457677290482759047004698771932224823235229646403138788250096343385313618906753825789168731953546433240386030975801421968949899971781068783939164429487875217452329890169133432020343347907655142661415712565806851657608481173435244256865823231743161632844737559254037632057722176893392827498183326347821767169819297953716004107263293765336557499334988365280204841049435862516889654813213488150209202167872175776254754448118526888465852156501860291979861446990107468293423042279313074175653347362115951992301205837191166144989652710115828691353763643366789443344217847031423825444781400499955486401503108345037057994736074777479902516622450421613820537386469800411497124706302694551267282353188237900340018792346918208895133736257228105359442007473223867732560792531801472125368451880507807142023594334431392770635537943356713211421484487937723575096739162081503967368664183048015388065874756420546617849021864401030287015837906806659064519435040376882856833016846014804893028442665793149299476298958328416719401130333825038769172329574390837595332412570797515399517713464938092430088416941192453492933330242780812734336634584403575568701113330024355421269372864962561860656235827767674443376888116256617352194667497434657278596061431730165689583434689900420775046555094683137679388130937912807641630521173618718982209717681645327168446103465042038715693697327713476445009852755552613965902106966945557938440321666515278402920852479818254797577949359745662848415135111701999931058481587272376257018347457356321134467485913748034465850946246749780536299498821000940242423025829836742986021464476033309250886554599397142096407539969717867288765642007975656585341448017609673542517765407050287561503637748697005534418932966482618373604617644319206333224491420022314208324424806799430589475185490527175650706752874357565794756996069755386521254661779021484819419815147475155771335050827133362797075139723081569726869463210252539962921999197673550488298559813968355054441786713912814076844718022617581385613870275530271788838842404792017611119318897210803950637561193599652714619279057315179672187856158209500379178975262996322434533185907175940384702287720791663796442921754310383653942469199363239295200007133249279307338159575073538477667423734261019906158027377311459915648819766039138542509134203895899398299908466843713605199149733812665990854331330565931380796442791235887610751296042030987868937197872672338839320324971006274428942729983986497004391051488822006900874696817800809076161428012614177664159160430867261091782677640663460048381175639495657586445355864374812358579787606026437793025074331591400736130964402410808438473682436339958769711777832620310309627462208384306589045824067621220396618065149251485781667340303238240130544606514887127620126366565891365957002307307201814710463909876664102061124389229757896024813143814962967204298718135324658733326304315311894683152403181661818544073064441386073935645439353882782000851862157383970746280040289740230012090440605913387002335287397954265729909892957439764437633284237004613821291168436729010226134726040867971237428446357888727222617843974984358710732756636462110373685939936741447309329557965803638370714311950472793087528690571869541811908517476691206663004479168563260180150093023754464726862749636108301552943326343056689174371725231341061009480458778181514448245106955911440982781428842530831018140696964528672622944800063082137744278520067306801363790680744043446366720589939727746214598858875067765526476477879489717294898792901834215772713385456534201529862325321453901316003606495143748958483230358425722351321876345789923471999467204192998326398861086990459262828402520932838388735320508749111330216746746120133912156348220807384882735813545824284689601426168364872345966982800210345811555635575216444459021443682648049958244328241932963917743610166816231552140405464473879003110425490035501925741676135820061363646530935418591900565617758632730756687725375633167677826951136533919901306473282089266371790115883927820882235995151275780086664255998351486323718690890756533162789893681918885440107448562299523068563786705558997211958732575710649366545000108012431976214005475997956133814241893614338769976381699412969914139524987545639983472701954677210455261782976316934261176639528714436633835173599244023906030882004144033764734645366861420159415928965808599458492498649309329925557288410109621912153974282950311747458054252627091311960373627991300128534877902901570449616797330471560962097400227458679893249142038093558043865028114673244343547933312537126422701776815830211577735514007154879909856274453797809896380276187201320194563060451043008631388402519346555472148070061868095921805291707188200303871833994556285986430454476936268714412073191025497150356795716043592338483882663618078086076086922698887553900224379125620301772630665408881145687646671808898339850854526038342030967040777276548556675381353594848174610039612119152998532050627262082077749159336268152635272995926999876743240539960376077819154799668176284983097829249815777105537122761539901346096338029872346386928811264270188476953217948472782768540461954837833593721405583350610514991001593502053262606844315730996808891361365660019586111355855293188368230492264769385093198169361399716239970540709893189949938156902566366549136101890671235432230010601908634390923071233397728509173641940944286983533983073346789147403038684802332482994777329577735782027553178704768927181720815395952735950173351752455997560620329540614556798936029387766228974711920671464878034992153385156986723333681493676636349676052003092913102461726025850890892761067767080600073203789289508062625277953074312156211014546423197614584596191283210724905313919288822832709626710792439569778144779472010797989115974418842680477611858522762868678499551332612662587529704206308960440376131963598011272817571942214012897060857924839757417273632786105649839631453173793736260998652098005842548907964055197106703549562710414934105871974179460960277811248088181969134312688781226317871123056674230884878271255068594856164426654676513013973320405836649079549880927424924624121814056418127602546221108873399531590404482839261718396449420853757189558075003062886312416124775630201829016853486098968828149023588011771043288660421259666121228503594267834866474856629791395498540935362213872559669283220217355732919477249656092678186836159553720585505653925519126497795413736672273775305123112518329388439466435683829451137243796345287241388785799896552728655257959510632412526400169183156960848149242423886664790446099283739088036745650162363472724433091633023263279102711427766466557006707830576085006198586933001544996444550208147042883755487767699015013148394074675971232086782353410149897578600052862226789442988148702492486110972445317142708988382095658621797209171759423635336020124864988442180945232334586456917222956877679965581952990064382101901078698694376685712015129677538571675894647215989120737437871754900604982954555270144801776693741920361020058261830731868134573282587281152315150157159254999160534437280855074940512892235391094063268561783904952204488549752545213490124247883341810284302526090861190373636813271616666754624344608446056776722271180436110245267909251669430524805013820998562229070984172121942592672445138258024854913449144610072945596681404598366257238206658491733469133292904722534958860029820935369681791874183073781639327263839577913524574802461062648309406007699423085553046211208964138878665401325047417702949500441627765883713342624110946587279304551140597988981614841237815551223960018986958920328143074100538283721982712947404474173365323944868957000108306975238709978888654917349903079478535983281888719426482407804528692816548092627196869667723086119025222379865650047061506807990290461029903457342484490879905517987673393746767536321366220242856501012934714008396232954925086086083813590445364185168469790233097637060495950262650236199167426124054795001946422437122416077519373438637235997459957813645976559878835089673630363150982701200980445872770079715553920021570724037251203766962361356018850355551138184826920582676015040918570126291137274835870551893539567869130042341405416500601852440316236116135905010697631994011975266782592415196441776273915906646648698535037544333076175699278124753960987379889417310743801905723816773699919470894459374999356930653392845132840315974309943151495220847029325306605923989210611094251523231277541652059707522691826030463071360055915775978963177670265577920046857394022881886875994142300176326083654902487763589623827274143171009807602465118965598325467333943600845173200264178559123411758813043319897977559905441787236014230536884261235803813348740150691738221242498011987819598228153775316449958323636595278477087200022304594984078796356695280449365327028538392813553866125209871100965625652390512365759992055997117608318387136867082094908037854428727978946946506443965548012385353108503783478567046477784349127789705099573580403944187870384497123183108321452217606982771697011699503768474181357444835057069217781294950857416046638750048752795391067665492794885096738119834650769862974770583737608670856780026896201234702457302652848862043733091458556423279180114991531738285522776954584972583555460073058992740869699376283522053338484683290772387082903099316943849144464604111801860732989919302174777530848326320245849971066985659086130194015915810759441424000294493395647305845162699528153753169757379032819072660457313266488818801095641050108737561943163391740171005282861423022494613523109627946272229477448285128158587165071358337028780300106212480164386862646232853662080216932226053035387461084791219006727940144756977299024404330008919861322804516017612623185286716937203829418003109588392958400823539972784666767292323236043345940218608712661760320815296629531708248933290676424416064507201431762815525570021106115823585197300788529519085221064987877656042548865805414080058467057233472827292353150766629060394316754584219364738586014218574382705400935389727949771997668536373298342580607624699705664399543263140891597711088391739458556667813685697680192011289990073582473804083325899333621269126978623704790086552034942210824269958134741198012390272736789833063819662547621024633454251273421986692607136006144616524259711668656994637770436725107858559566199063341005090799906838409774315962736159275057388936908420887315190990664806152064323847989281177537090038451059600660539953038082372892273302558192986906880284489927566475278220899698777230967510981485780236734131938506859348837771630303729849162858052847403544296561563925138967400189120996930335865135255265913532131164625135016150602761530330237841626680121715925858971951618802953916401335874153702703447924590538593000118924868351265581799130934435607473163622032006047210034037700542591438067717284087473577995514499561707885687884156904509720601775895035837254562591646586897797770798489129499271700164280030872063064911971818914112323125351880377212297351007897309048134278351502029929994649852628226173509332088384550181487426270775273447377438030771196069276296587614042214129786240186316173811716582953113297022335345072751624315191179282462145715883584204574825412624641158486684726446737743027623460607895196906027226215543827422116556138982708747907740261773747623843853797384195399404056195343208050203359140260633571904195173540496681793888374059849226708733092664366716269005411257509546875409899802631457610488807190893407232925960165249675818177775003201386164662715191699603089134130778855659747277090540570422776100612575726063437585601590568208305190621931586044997900091817676999695087721516202546933070807862469604151208132394640763192163177435057761008630579368596058501040167976999713970498148960300910856191263950674363289713313456152146117033390311776937751063120970021047277173189842209685277590599270723307304278058207245559877319130239943861315223213997061397157193827688968514807937905011071720929236832737656884602737911073389538254739616220079026150492043190637152705670976116117094400161595532019317328786888955055861858949299486959870454710701593367770405353094364572589115311446046396420325538613617291893334509424154120356262803681353750562016718453675285705590801323705231371099716656111248093900675232455762741808723928041753256173607482084863206337409316955639652177732626525622610357689232226541842171072944711668944323387427150098299746547979580747098758317200364536661003439604656002391739115593169443585403400736641381194225971208556400712868130868297372848856969965670099500642577291577301443480107280244861954215569691338960580859351210956035665980014764831036952212168373541564485484082830007249549168316432167512383744321998280730659113988760265270903850008589201756488228193008771078231760578321347823465255155395624493543420004346706026512257425839230820315953564140187183352775892014202197459845103734686873982721376721828245234886107338181594464182119128935587349606337449587238063811506754105947406999998301756593355931757886074673848911516722778637149240423255153884230381091065987339360378766189764688368112334122239301547187302226405095434567437450487491695940686339725559833267135385966167402738762117534213423865224123409160001263713470695045049154812984476738176929314351949637036337652505100717132438939009757012365479491220313485738463559176533590601342420664583627258304096191455394985589944910251899285383146455607589014867382958991186595813475959139436200712955971351945013853627575887085561460087805902416388249010814047294500363641852940926908627995806824333615667939043587814710066022781556282043106929638687899571044052162667619316400361419938169135888042590211299072837745863759964497179107466330259028273659252542281533366709514171287327584957170401215002249894822235142241345608847791013905999280123221459746539927100994550798102207116254488331230762305919803503050648507279878710207724816402611314755094584975802436415317589432920126519956907701705652523934831987037030631504117628116624691470892525036774467719901431424794498493286159143579971686435335813875322409480632763136988286023536785821426729410052662394323461421264903593726522468183207808812607698074566657233372217718355443615114610992692608279289991304392534388419387470874428362350567023287497705739347125081090759632933770770225683919733364264948456240207653238028249293454750932098188608385206244154293368684089317142014899202170130964626745687994918706757867191275749615940738233098952999363535167801842111640047679729658543361508958268441752330175556012416703679017874003581363307627794903847913821862280807316009712449663108490169453622284269944041555827877847524659781513902210273511168319722138285035182680700356622776762871217290519486236452070493338194167246404708947235015082000070251396257374550377292594521817986994242895926257895300536869595484836635971162413154725577751437447106307063275610955902133420133156682572933240504080705885922865966715892003971552092968524986639521163067441688847817763527768803594463250523229494109916008780899380625085820916148797979600590588968277509683782430281876117886824384470068156906155320424155983294075980285305235739672967155719096093476781739995007710209990925416255502862803106028115247229921826344985676659440821195855995262850759414806469173511648263221664481030055323375001504410093634511575782805452618419612311785195626058242256000993432600997453332891357817291056426141659139674013436881525115660581241363734634434161927128477670863453240531140620910091624635863843564013234288388739050664128978107144165205199657487871370160321337994586484727542683317660199543920989430241450184657099581898594421443786687821291677641894265567460006677301956805142411904926242803904681641619318928635963448648393018760733264190881657109900487297619101383597905617120060378764220135875088172465435722866223406835861719704140489362061048643881637102487707426721691299780076813777289365025438429161291946127055542345096665961093400453324827537731458434448650119799633548245724190568514154917690519526816709504056078707804357445028831490930832865249247649221023273736784395661563286030713854661238417874040514840629197659590549754337717727512168872876541481868473467426088187586397077414807640738404282418543069409193214995803857667486944884841575436924682412492218305844774856804859628876693529281506013082930058123934933615062335445738004968580239950852503387730935767211359940090437334035045944107661352883779286783600375429258419516239866967991640962131735300298853684337640357453106983910072177552026494068475173453239399263834757653950384664944994145091206126293271460948994641693077208545598090953023943663293319632139882391702542006612929684114013094638665216724824589960403793668453644836612753934620455751012686966477045259840944343125379724152193353354440032257024150411362183389969082166504941108832549819127133491630164274740193845768512333188536765298531294524863015193725429820720618077502396676755374673281748293011890106084145680125051357885310141912299313859226565489615512363165327567385661324937761707300116965357364377115995509807549431687840711044192784822988608581410460943246690351364992281694164813714741528112734111625932335278606955317118511529379851709605665551031349520304571297653470120599218375653964918921375718995327889074048576336246876974381063527694505981835738062413420584054606373365292019417778877843457081070627707310750570523641475893842211751533348581554305381084155395875845355096988300514120127380132189875732551084657582672511315546300569099192076574837453679873881246391448272035125635111018804648692740491138356716160932931972617395647911733481693876439158873286442273895997536385573715939959420463815767593589973415457636611145455266648086289351972420404197374588755682058772432865368817420549048131191968023459936149996457288070666872774379959611749328199062500676652089245425892247011477409225144510323016954571665703920518076275867079271345928287907423718209196146475973998096231559709811225355033312762030797601684825569744478316807046025701753640485503384769586148986980088295337590985982237678748641868830045989767618587936758438230512339969668836867632597440526969816451521737286347108981579222669888675343497631401282241404683151302697036520660599002373876757630288306584691497611436559039602386290393573835255055665927806112520887542748908830681134516604002375721133879029040918655733573880935726409154766961263320405250822891278881577094100909000209381808224239577745663341068151122373121422940240438011791238021353916586280600052443430550227385755193335831475344146248567037722193029076344392225336726483133982136816299422159484819362692483558416135771246656673059485787250771721146048440813488710668379276371450004752300364488778193541800373637338877867966490014491842139301765159499343622867647652373874561251649543724207969809791768419068929598774195371751866597313913401111019593311048521575179053242913771733006020179103330800731957166118913756339387367800597233471309990366256344629511350351656468170481558278099444194871937808609395673028876082480524143912195935255289258832593025462592697967752060084247311573281728806570462153402907430960404488273654510973246189148957762505027836566959663948071179734277395028442618986300237434656906248763276583614010123364939077455396619056881221210152370182368678502985379658232824536297580461138844581027175517001627570677964509170753117941939425561185919203987638626243586127340728846931998081966811483576802785859477525165966875502315904728697814146829891047951567574098162336753924496286682860781409079992209840142226366384027274765158221739197224555272175601768081854659311323879476784876579236851028732956205659076056610891000209715009444278133304325185146271435852442705226068194769010007146528418130429403672442427371009152238083063204666235935919523028942526913106388025326855834520252962113481378134413512338266825039628001311723528965953227703925765003612048267670593931020259236509814580702978919528461539950025560005182587669961723055322861610744012876771237791771162572139166296045099854821223355420302162033519227501109662854589759161545908274822177225546506538640788445318747455295206814229456829388998437337327360649142147407768291680777638605355007076986909010824206160979721994313246135349439888060906190340069040936662259522986922335887646270315838060704524693970772387307930851146172997754046779847124203879489212822738259935636913447249105175220125785606091513755659660251980260119275183083601384041790087009024182294639225625107670216950288531177568557705960102310702165964514688079697708968101160455125841494281943362019271252225147479253575732266212681667734080012055321107070076906556788341578395106792464400878280968003675682514254752070242320657330684526630155964658645999749215245445517539908010794971647856715447340447280068895961853238329986018947016141585335085709706303677679159774307319912221094851859331909517297606253054069543700291275669907846110558691771978443875387218164974375042667649339595570767115117824263394179512742294766524326078219034435406437204307931081045893320604352385912774141898416270160516617670647205499974860739449038369859345307348140136000921315532799266342216138641789187195930105796065814258395186044448142288594597366907674378962553788883992699453164126756357231347481293177238652216420801539116588416752896135878436152291485643223065985225434450743163864680933013607699244644079168933130983103200798658772253928300679585099400470335320939501251897397822170432701479060043400685341244657622905881932123492285529964669524988911820134952158543902243884296825901061644997034370480309834490342695055338113557715416050947852901943168250216942265817859380654634853827025201149185671225186487132019812854682095298606424276433628912659132372040608603335819548155158151482025988431398102836042244030967752126338861957453776302971342585992016239159979203199540326351614223190929062387054654952304928869803369574990061416996034556581336681537466861071655812958753511781765197820584163526515187729820222828593242181336990908575247063385330460740996432675988243599778700534313662910641810719982036760207455457780916086355125108528491771642461810005099870073770211596695449697531715093767682831226105020576790659555600392280188957061139564784983274705380332861535142734963646634209954660832524482044030930761112710479466339294941309261006231227253927361616074755026870444234564573673554951510218677167635760768457676241004833672415911642801605456184417586339996887008021296987479986044222165757482419152605897789184241352489521252037538404872264882266650073451386646159945019012305901496910145768021810079841319795507017224675980207468297874155720443318706440594572868258330218877739447883066102660266703508446542067918063509423459201961160937205568240602859964774939542088483257770593199442014919764377901960297629470857376550428537956644098020700726775884114263889259438639876980511795190207591879162723337529891665038751818456633011561119561260895255081940352120955173760519623701140427043469997434680502644454631245942670658326495831460619111308685950106807118991602095810613889644542201205139714292310429214823876178604826868605756927927568225930608669987376765027375911401818485021970931701212349014107487024989317205605642351231997837176559548734373198617515533287747174852933515881069119149276484479837018498864435454700916684306672148562035439274167790848136305060319532471343106145010058042003355167127076730257602864380700941055884147543886539019421648974402219062659243722802781022211353429015742100065840973142603506285484606134369062458408137954106887972912504432722787662462481902986482831025948700045945838400689152536320624851084423687328336988759816285338763064496165102113193962125669231933660811476439952493980015665566778910817045372749230311700732336779163111730284850928622826628652717078132183921352226233598355385312921608871072093365384177180234206995367182046215876417570970144116528026231874998076798566083710593862095192117057089355989643731560791477349897394265440280712979477789481120251758573141408214280010698074191926859207885275997315521506468949495257430578353412655319957329738593902448101647977292004813278701472857528656096485498657023559887924111263745625832102744772110931257742834933556267087575342763979560534827248565541460128237068364290729955728310281676379904932922635566543466875479984514885593754074386028885207764860184346869995571723782356238219583889869000145971081632166679499146415964355234396790986731322689850763675956700604427165323818790244911646990402891464586896007342939858930186355468359954225508907313483580811510322091100386804120090482599007644017323768169687458829817745790584801319721439640536988347844437131191240160477631182171463699627607035210266008658806731641697166738981656538794516982364769392242240055865292896573875957400632806190239891622471182069704005208091605175750058510858143065193520423603493701799786576259214994572966549230480320375871126041517210926488206525552831011075100098656460455012381207135523736453337898264876932281266245914262327254623195640139236814014059203498670783761299961249465518044317803006672977970281531432416914295647330600513918323589821292740011215263490394058212600725863753452431593679993748484216580527418783268633127376856295096548217887005981089900347789195582667991135956899865365842583585116007248023173941328464663364301700455988249583019433132373341707961686670626797188555543397422991748738494995594863907860753417315618783178065077266504229992333362061542212573255220181318447499713592553600798784096195384640196788217367881797192606475571986737770735441911131667262384352138248436852407773064761168603135854544659432894365770150445186640541464652051518100375385382490207601317618475126658049454459440749742722829872666110883704977895440743730383062173858381819448351304265947702949152008099842928142521334347676713931392364779740410737126156641720820234805283057524903722314564170057586079729763348731078400440899499788512924925873911030764432012241828924787956749466196206351063591517728176030825181345530623296492634808336676353135489160485766958937673669767854774084475131074532495199754105687817529484336876146341440041778601551770099365313170895455335988369104743927383492555283402929343731857768404173530152033646274145733715324237114698233301064753045368424624369902660839287701412322842305045066231623042637191857433818027558502335904469642169878041253875741588443067543193126404636257749281371487870118236880771531330651538955651109299777148963924058035837914696271077946731735443778021250126904829555694272962514790723653565642011213458130223572286947399052792461919309383063469519582070767708779860082225647351201187422194641005600677226128674751302713268016112610456662488370229041404496301265814036368440998876835228900633728847577782227071767636031854322743151280552129519924608237906238831143982784381584376764533339448026529881938906026473377225332548871806518773661840323137147930354740296768766454709581831369420228418108210690874679173807667755687825191146568793236557846289245431905996637170296452140116270042485274276638751889712488040371691189740125688637984894257808679729650306887228388001182201092392911581440267678679531204924383908704847547126492431164930328866304379087001646422572583533520730396469772795586553507711981708789717296742337830931256263662239298181379101075241717284618058573580373465973519521600041776897422348130162171574896750489799313225999635180626283601289971101313000188931836285001427107313812709716419490034366675878330202751662757447219259126657825940982689385287980035827037246286471244995206648596479233881803691248347884929042468984116855986954682320156146398535125846838423228740420819032679951998799067310907760697802252200282001076093343305056551342316062948658976148422489630791362515160442670995654080769120894678113027034164389069906045429754314873036500484859218205064834468912114275595970720643845774974642613189859536286681002688950256807961695969268433936045230141521398455797385722564860184566443289397171331630280190949648545346204763492262544082125133238966319503194090789945860883218566414608072267566027013053738859180253793081754343282803838588528747297628494029972602886526466786157947113995908505826846276791798298454333895062335223034673590092703834580127146409006073225891988039179874356041421432771592067250911491552886578318840179760351016404089153938067986960432879217845016930971644412302397381805480254200121393738674541365170123717458980171001263220072303726038450598442265592546393841424596028781855293812461431035931035131595325549123392921957816931703733524688392181872711057511005445320694102376533135993216724706197473274799978428965684266419165180681278357047921660430045974534264361459495653251337658611020827821934479788253933651631503973549956805854061210258596728340494964851592899227392059489770159199771755259174844769774930896580630677545065672683723856261324487209363516180905685581311978402917969718283188367795706780599617485921429101946238424032707968575280074534676223149260282452706168785018981943816335862598724834443604037477714675484706780014715205403449653024889413807410326852643240115264209377405509974024296548910152146492974288665591731805679526712113993810324115083563941367580282905630233868276692626395137040150564553560388829602266213564676374951060881534906884051108529128687309910864152524474293678532865471076077570068379293528420649482150392377249323651608762048786110152399830189510011423378394516033963026385707285436755124181613613217373936929828367222844187517044490066525914998797700126552798056034343197651516645955227091475690421521231625341734069468034302272101412333692211086003783298153664548146536057870711706882820250682454659463810588813678082793410220791445142341520909842378965574501924930851782151594508671968445647962150031061015336783638251832943822221385509526339140972564073287459230843319683049079909543148685090771733296385579661005871715837092001037113484187578775283314848451059328766760841027416727055099204180944274287480120606489385836805441826239990749319766528155723137992785042517687053367095007070217485053846009827160031163700589631181702028579809308042976205340111834247948596977813510619435384934635512684406029891601840987052608494516802117214977745072709684818175864400032315937146697554384803333256289111608801939183363382594047539376830137915356896349514949140658114141473435855602990022501593448676391853510219966653099695796255419615737443610933730671491148810696182405687160544959459994824548397351906887024635581405467181752938388682938122814914996675259495826729704757422443491879232118068801994311845466240188034338295136741864835222637950575892123365737361043866668653547288187551605696757022343451012268625171212714956205836962695346444314128622296433029700510125473079248590576709692696437435415409761711790103286957745959582028007961190323880165396910244133510508596042892630424729519056385707435378928768755454153091867504982910045978381705984612602423419381633583131705281013528198297597940236209437760813019074330836469400034129681153278831186663753547676739025979068354980511962090448019895118439697496639706057735204876425665836156175004223320334192185338173308256819152706989136409102990894606867379202756674422267724173598559278714533404450286538808666335236930339616300360794059141368728580904951150680153513205514452937939643852360649927401701431882981204690374922806317372793363085411311541167949968337041057587581713473979814905963884470357441909857574650818436816587996300288682079818283172634514544671048622441195546982380499693675888552282052651329289021640822048471860838551068090936986510596432897795705327452650064765997997791231981099214013929931826383665423172830736575896928930144218856237495942446546491103579612619853599347108662331834828657277380743079096399166108185157017794248073645233617369767827415832283146941827686233880670834942372377235196238854135646397290956309317032219728321372758908911718549848030386213997199284774680972887348649356922837868227457514304187270150599662858672441234297294553258073448800244809912540127694700910316390817642758597298640380476876471364271509263550167293411691460209538377220999526560749670809331594965426750746768514298192280286032055656666461699056423976938051529257542137271196520775417773588197644923557263360158669290383088208409736035507563458592624476629475345866838693727228115514336197143480661962508439509532853581756958248923522556833323412956587399261961956890031303135875793289023781434668516962035591228364626925297056244767091858558715692099045142033438853104088639942154511532814930982678200189091154492639554791884638290957177672404871585036211978226763395872710304464689711778307434487613903332769094986224029757493140454789349652719262234945912343569599002173104779618251653982041796719057590506493041907274306051799379593696041007945163596597376262476459904266486017802535362240608386643577877704356532382550362370019487547548209064988942200781230063609696793867500347071743786054045122409694258763106076532644238034728479644983853995170163664129716170860614507637786098762319940267408063716320145551071117427629414318940723243328418208935968921128081827342790060425068382979501243071773697936172813321997148941850610872717207218728161851954554785877176210054425408788534351917795728077645648749967911811614721791990249323572390590717395180366578249492275908260360635660991159371822491872146464246133864367886526941312774970740987159583408598196135531283420218862903220816277426696074137817449608544054858738414535700057674013261700348504877737533338932073599817278546231446268272761637528778400110497616176332585446936233465838066353669882355497294427230882882561018349252339319471438488746196948978673177662563528843953936344397757198330057314524007301832757928867816484568598300027511201955847575229347792028166853802326670225732260770367978697845376553759818167207282678986326029221426443438292014815288266462884873788541268262738441060074162505832831931878576972327212070925502618550840410171844472167958256644329065483260570282251623398951086160679613654694020563414947404879027131412009875151695990362904288587684887649882419529986539559860938170889157646334768082895456723737605558130315094930777160795471144370628922417374669150789463612689291034029262529573837607006217643643276044956934938494451890853472178373435872387217475610905678806894391457040583508464853448585583134229551802083468291479273846649165322207389531609925500614939488155425688177733526152632521300997360037524555065823926403212575352616053082360426744911501339169029333068908378965022498787405875162927641057452410481467451124277000481481355900281997232845175779215222883676761456599497197917296016546381550089588904947391336554354758278926216813627005436256146520380117700095106039037297361336584622453479426269889956633152016640282473097075866216670356683146138351767676420239058142119517946191647040283891510345930927196390110332773346039587403231148113674515472831806633496643767162982559185937426759303265238797484339655736986341972810816813422562096419036397486412420110926965506597849969875465564314402959566073973683901361323612998561952346277712063481287110853947735710590537287753675984172894373135332648664194521141831695260365443335866010866402122208318605629037633440837055826904003049700920831585281140378456131928519378501374207793244496493487125768411648848803138323686939897843306217114966314554504918766533399021149158457381564876309435029710889175750046836608870979735344533466593198915078473881127966926353364498005850212818275316558950523447600293642409794792457118209471461579969978269164749508130078387293250648570253532104160586811391817075312959634495158045658432840904916078323061415745509470254388306712387879875254355523769068381398215980803987232595029807920593743083294362738599531765626715383925519087442561733543774342594257387411284918673701870068698869045357647746380132531380646480888129381822403873431188228233993099809639580015355342960487078081069220615730946030777091731666719581390854879910228100761979446604676545364404510813515356748669373542932185044962786164478907436113068926077390128831236143684384630540107287832787195873534168060936366815963108966647921722935292350386210355071012843021780850534866707308547546499789936198856992198594849489009148593290289948962478577867047011582042706773602890779337247219243766522673085510137653482134358186742776442181045376462622327978331367505818612570687821526308703394780685743574991498697396503701401759026183233083644053730112153909022575995471801784360523596681006409467316661102112754193113006515762886760108223838011747207895156381679900073059008623115660727892340306102930610602750068023570302431392284345459174028434936176589748368151554263595373653549304372537734369850866207548896026175036750388052384823351885521223167012613538601409817176172125985740492091173951175577253081578776972368995718000352039306069962639221665797403032387150233345954203730033859331168529231382512472512086844891215985718224556140405633478476648823525616748053626356019897014273623319942318799509618139291479655658057942318725653462376111372449950327877868448767120078559047999175969000617013544789162426470219972550067964045001753756515035303676296292215296663729199983377562763121608765711897273946141861787094293498545485069680112315309914785739808348115405086619783272690081173350872684764793652749885049448706261442142781872215575973782818700288185779629956618929852369000617191757997791732184995762602841692961712124198958818590923074225418192128332879923290115848945036692673926255981433717983177261568071626539058116532346862436991313965729021910842816637808798645534421013746278367268471083392435818009427696529178190160320229102968047699790168731103138192814995951762356779788053923836863351540890856993167775080108355914161113295983722181763778518323759741863856826812064682923393120386903468235389344557042550854509704198060636172821818938373263321868222908136582113361077567925111387549836941575533752229084341217231397436169340920983612184301602223397938842828966363258758224294717629874717137587683841179066979981581206705747689168050708497606261450212619146729840301989977188127035298611276407178282494908528721013888574952085819990421192823388489242954296677232930193123050253919862378149587932279735471390468130829252296071143446799885631696532948277908357637665767965961031057453785627911349496271318154991586752734241542565544600094202087176893315021812742092131949951171958133214892519446907487410969678685245473492961243580338051116389150473183254148634768610768014612769151154113428294858947069542547586408919187955342800955255235158768999404795766295531354417632676322063789759871113166561964879713918355003393038600636559012117996871189487485467164201503264270972599301899710842337148771756382012801913261760650789745732148471748771481594393827898746288212501750131314078017674828221682998008842497547942614423327246074883786357890438306637588884942287958128132508229969351325945281583142082915380672321905012168665896617397387582899826833764857124958362083060126023568914096672035849403800063606280491703695897043086598459295857011152581634974700959284632619647571382088904968321330647429074562394413502871388767342246427457673720258873877209375837922632079707751192265474603274138737545732019035152775794896333950850916635281195551725085074400826078037352580405814569871061173555606074323036987250455678104373708063780558599577343314482257181154485402130064487276721749006886939768585576648812596857074730156953916980632677510001013101126193975602815913731306351246566839620500145119274487424372067196562168282957292377977438827213214249884815213326656779050295585475567406152007449086152288922776208503992083865741768170051432079988580856164781348856208773217979164191921804962952219324995742269101660456665122364318569628345530305297937662637807844443804352422623276968541987931292937596656097430345559593425589581688602455457184812617920139990916375657139559071378872435998353027592772213998011335799817282431659415900436676394351969097216355929071078908471788567936827793056918619190117203369777607922001494622018965994123967769373204545843278460057051697892842780580269299762093189792103656697746343991217631771856549586381553092169670099943635382481545054504146124608358086091535575849400643817176558332602075150455621520330607187603580079454259130994876875165923067843747653525742386912762888768495235372298472815944111127628618237029703006158330826465713088225903247536639053563722621300143706743320925872576355347584692878486626587021078223724416976593931982302577113132388817351513037610294169187279413656221133751854466673254926867664485805098872821952820483085642409480987495987133901235565446197348681713322342755701678559676996558521032036541902543143964375169217322230917356463355141055758275456910320341917438141208133171193902390676269829967585529622094790954301747863541118942052265703914795080179012686129949699413891653636341180111302825572734259051115790787378777545318523798002326225311528445531448052717473118543271928342424449088316391359265702497358717062858782474143125914408461947048108675029141687434459851634042226600614846584652301276142288696893971200900370443486464154834454144826762722482625693306501785398968091170227879424672514692634077891230537484896564025769483508157667187142622488909800754592641725937561537000512390768074284517005481567396762655406388636769798264264260791700300960253671322426699215058870667371187402547850412848799085690137241779014819173884062934238827632046985307523136644279801921176583461125191430088901049041403237510664220596651124993048043857585908951996071031805974754085000347617663567811645693460533830452477879068268274211636766670916940625646613040290077268303124077728535017997334937585800692080293740063738143715279911528148798698843683018675862216808688768773258198145064608099346822000478739083350028792399694910778979761974552829424998310152507619298987950478310196061230330405044693216225964706314755408263317904746170056974627841737132457134796854009730822287948271229689429770366258822384900742217938522683986524473383318109943451608410058264942663371067500785092957500045364141702059753734266857590825526626531442909728093480846576148349190985891818326995117608503427699510379535376316237974791454006677522940257190964207683219337261159696342927836438518878686671163314390337000188944032921974228648540373248186965541221380347855521283183408997393774116775996860990865128209271923293270452607923089136924598205476682359538909315994744619128999784620920274774508976531736765384658850576504722351378813885151032752706768714068038838438102869301567133382759743527889886778888544321961013662840898813946236840125817506314736139894761797591056726836145446398294122763442296616453490280904004474838878000138703347572230866731279289501261238630446373843084611550913399747307977301438831556575606976490691029116525554845148313347825855346246604662255332976693870804902754428018851493916321549651072368489868318214712758480364835061769562895791588304722448410592989789133827432530476957237269688557683869469408429767622525115016528762003091856012328109715820095865325467312664488388258032482683073177189346857220090679635621754280877491638172814392896223980881639823828925143003298694381430752427259914293489438640216313360479611675713245450609748921800545054490230867561692729915085453565517051816130643154261786854844034735087911163158739802450361541502440375887052784441764441030004783880016522227965433315655002833306085140345939362474983672676684134579241169381479206024297015938618264927110409255596209881857371190155794904397812483795935130800371482538795611668739163430125417434338401973352231892616122345945941762920851219340380172896348130264288284709448868139124307512384434766138551282568879361865498488612285663243914853766768108139906874277523290124329277698149566461490060888543523627177871921729748287615350661696361452938556056270827081522692763383956315181563135885137043817638989236333856415528778707315931404254999241234703223078119047527414792265074045654077858237279307568918686239200709236174514778049905272691744141703852290942712934930644822793909538437946520068690170282192244832196665478794707859290298222544289139225984737883343200420201087689788926057355421371475993943952300182968841316005471419868682304338859535041544595264138580672228798531032460381744991150257552223977861609196798308461694627840228457231237737093167867506163728994612280990524580358762888726035163954722939419332949956909435412802755594010031477480487883588111529199701885681615008398245804183173874991611697116880764260618909221925121192955964170406410482755767939186618660398667747276772356726699797169206001084907354875240477921232793452892501856583948725019964778993069588032857214434042393373567163895307921474598685014642854738616661451778359037872448173554813143389847160483102183769925839784138475156832122218970920825326182399143086995519127998757537904575378327152244249306942867852126324003078124938247965232395703539897295155885839497882132179176553990480555481810990719681830007257818047901902368368108777040897832116083648706306277823568731882281500955024695015912753439051370199297651845694706882360212610255005449160717375537586906135519585478940995129558731120853909792856722512365788766944142165732781920813252191574935511983312034311747298416075946781441352081577265898281292020357195122984439719131319537266143465945687474684248956426285159346641469211657516048111633357046394263745371316595306750201150867506518076296066609923960003731930922471771571659543421900340435062381325609078846852831532219830654548189909941518050359418700063350854268039254904748378252604575785136196275731884480768488968846402804934065719168872828600879012433992973193950671303358045898818712910246235169557091017919546954057497135677684095387724070339962677055296603897587242034762029618045275033192234810956879190082217782430310066009152761960083116071808918837996397205868933154323022726553311401254140847072595208260297379227044842171614440012142203871092441612350659110890176839316163064860888483915029354435627963931723637271781353904129923668086396331024089478287950585548993554718677069307270370475761481017142809962975644312141494839372632740230781897616108036445051898227189746443628004142070277476474408883141376028832491735460339006390336016309531921533495733260070030835735567342799363402626537118370349338151846934256049189766109632310499550407694526289251595408704780683532038613944703559622128296556831811328977318681855617856620546282757192086926852592739100863114488747336695112722148231027429737591146400599355794356360842177504182999832585604162176319260636672675573254886401213500325317699876773371543017384346582377293410376309925872404611160735108366688357080032526990895896458350375743619174279175675767751751179858378026490252305383678108889170943708951959381691293831634396836331603693371933280995097496323213327532678802752894599445718414933162387625015127860673428228282592459068915195580934481776879618497561907052102594744249274026124755622581242649894797470340232511358863220725448440621795232783306119896660720433456359441713376172706402078495278979326489248151550798139367356850548831731716382816828401766981042731113727978260464583403689016529742772129137681833733386988786305312312824173423482920486078486510824058137740275413485009835886904232083753063335973400419393816910154822171575481128439856799073036570182485408208753114283401635102974509076564498374324144289186102809353563358650259962350622468538925983127148955816986555724340506970470477223857519138578282014176524034136353651422511728212785000163039011463737777889542560105850346365930186684554893352341035363594081447731638091712311603669691382721717155524879211812779648429670398632811805908831913739025939655069758237695855273661095610978025226796213294914106230540334786466567874358960867543168223672449566023893842886366892105125701755587254812207628337037418228620795309869545813856758019618316971395244760067652119210116986788309063288462982080139715851420787977308421083064405689297675478969075561747457421566164255933509326283197311057715106589074974009673784925950149797377189627225829498002386014576460307594051836503132621507957611803991785634373074106399188685697932311449839351361137538414291681489448897259394644764539310172949376638164528228567717909260490464862276835827447046755333185799813637641453300466055462242928687294785315796947922912073334712827811435942743361113059401472430911815522840271094413626128801735779334010873287618629332822776431708051799577449089280499580822885505689370586636292348712815932813407879244331212059106679177367381334996939576960216610634287662154089427979758899052440724322353771829208124063734193188405258262645151854863052946738324385118760500339060742916947964537709601915092439943556191696200910675355125038293586507240621781090567323066187936348499035749319112386030427530005746705553692427624824175860376301000559610493019529087193981847276021507547286117004585394016865001997916572391496048233535754038519600193259014736414199805162800376453303698026110613192473127940029593258091626186602142591887005573600359078625971480068231641542973670612263579820659549736482737337604325490684970605133066529926559089264200620534977484820612995095499003612004317561656900301111855691651547129725942933161829600403952909448973484672425127166050987878062676977156770628536921560160046749941112541763868117800195834326126573373806979798225377161027955935084897036138581182052855399595954595255598241322606815216688034948833430336202473224833525762362211688856140734409878634836692258079544595076832197042301898050225685111090647315965204063280293635212591204498105745682629888716818135997070497981304475286042427047469701410566151319537118989812582254817165756078660415458666413830002272938672583609020482420313653185667813725258967323099300435841795501880313978196253755064964672327603830224054843144897218730960556369831668152309788215795022326338160747539819510997176516158592067748374086211258767563759567191881287995666094310558417152122278793335178121530402231911908944364109093748588483449017108551720769067090848680907347197756609077957583775146896296585337828820830308381093277984290927814666787117978219565373682821504502103516819169249986555883850285914388840302872066441511215425945383739432601956707387422809320215778586822402501096185848784449770356159893505971228436901291030834957740838888419271079307755361907754387238750030109602565569921536353075278175961697632081366394662361925339594621600737896288501165516729903684964274513106426934653894468481756087523316379736928319896171230855096039332177653887774843771048032921716672859155854050828943658273813358861845604347780401905260876739567782337550423912712578686526872155896178673952751351179025710977301075764278195160990544628272784310929811461447577308555208110367597467439723254784706044668711884535908615565875556892084510402252317792919025646104838474875043703837540104302033941528359261084161494217042656394161283845841177303395114471271877927572819010569968417833488890763760318731929472982751852648627705795776864824102434624804255879202068827464717792341929313130149742583824378486997065414266233449671187290847290065364087498568831435810524273851540925270378757440900067907914300649562073075714045200633036933691889836825949113099683310820481374250252446449870388156719021534272231828162885262364402575345678682514404545295038117914422270212737606641068856184846490239554560720437524279358386742559958313836480982834892342265468299840285905530640234608850621682009487333618973241045233275372421641775861017233520416733511525012665404073270174911748584885921878698214692976758989341863517632250846471060113782005061286214745133250696610123358740325066172916364260439394597375592318760599805257864827110776744986532147213207157226065364618554706684396384945590924304433606447546723835567749734299879193188431581722601968088645702930896329414852929869424431392935380159972115721156642198693471186966396013616145691418006622728496931762000797182504478284000185518769685625970632808580152512126705349737873236542675058776625911132821406922762368014119983202577842595692527976214459103672454682887022935995222208152322099124508456568109676865115352064814990141183636979965773836347168602151922609073692985561032422975782490465138776582056893940672000442159669506581004636833520964978606937291946799237383633825053976813582728165254894831329949740986497815247060224124942476690216440389279546953404792213280884729690493459804631588322331871517064888674892529287750292059204433791626122325106852837293470448546563626222481968495949795558315380638424098112855831178039326100918319563028109017194388883211193074111572493529661303375179289862317394619805483689604551982663668781465710816402289425751575747625841488452906242826830854957195191913666877807621441895478052947535204696867636707657566663778030743365172875429027074461543799758879636710840985488211198027727371492406509091458217398377025502200649407162612812952211609083670637815633574749437579084919723878346204392460018362843263000944154349623124913689888297774305635637970184794242254176207482585968040960619476265065671854467755794654543996524142127714718508119325797799491011285229633586838746922910444040402033088668189198816271748033253102004950074126097421561625616117707035343119009412889645351487318254549067338975610903360235706891209129465042581168515061420891019535187492770872167855449970866117036891238701554417980256897185919507535253872691474957671092083385849643194301615332489016236560781244459857730905827826380494291961559608206630697104058472407203950801805979483802871096798224749200380949745546023792870438135435743575306456348584755272686240110656447178970081806072937157695588259653840348167277826001144008857461105940569716841841653073967905657260812368443015041132336971344694373393235538946833209606054332215789149182596598561583377831942467939386736974949454401251382829462254590417220315353096564043465739832273236332006983348330232075604621129200140200100076466983425043253489876421207917560182778871636526447512177885425484907290075062113437469319598409093263448496443287863115191194072862994715467403827904149087509028377291775771871673184356923733885356918471501663443420502665380869691889047769534050478080246006882805819176950657995409138573389866070412433932716707139822969097495652018231538127918949768405986627584552581543544919198325404217122816584956076072698109243985968964442914213637066209302630184590460691636900451404621389984716960560334983938432631331327536250775631959207294959601889197695867160160813563046952553891498708537348557996182575782366658489031986857703263300241636669730341546566661430732920597427329615046528725862134992137171616250797175662840490316727848272263845521394750968708495625133206705963074814611118892235477179514318454915633426199948549048503142274552607330075475429010792467126376325330329309621795607176814777390342330282346896630859955979321677516210924026921804832963641319176476673127558562341872675381655569844993926093471861094019343491045643467059724014680943955910399784419584012382156743841546675975578695548607571995722380793434562383202979271133706649986310066930981041658183719546121348902412846694585798496875251746781317617601853118090855564126308515435633078814768616610711650765422342224995987613932496287840220949897589996522775957828235525431183522514765831456411575321292025572698288424161846498810770746291861563700201196242443428995664772877289473062200294941933516755688206978776042446863475906037666779622695463409820073002219712347025709404005083267635226123602411361172861306515807040195568645107336921843471421037737803577964053714063145794061524306757812818148855432965551454681474134619704198359658564238327542537633782732557971651691802369490241153357206308277639312785283396308571708218629948219067659938039087983774610368507421547867429445568808272697086953647524198755915617246973651211316048983750671739952331145719371332645487971730980924728447657314340238066245517102926629262705189951185968326931024873830159173605418231344825809120919436114678606647621974971589124877213313257609130269885988755102011634145705465280516472739828859555063171246217194103902810486793385469466356990934665167457494724727018887082121100322976010873958850042402721120760147328383048803107936986427323579468630801626735425219694583261222072536260197645641310171270929139643478470270501102396250988558978279211292536630138012654462245124417535544270703434268278800080730367446047635394082274557175662554918421692702875913472931344507977085219244693611845461789004199232827116895614802116849152643531019476279407684637950151992130742362296607545992518791885165163613020541897146872063458251756553792455352193497634857035163100445330039204850344660325383587677733435161649080299947927844508017769833388226736253452157781952456009784618486665490406034755712646973247627426349814400760598821103718377469032775853180930110761584767043136595898210812965310136360362269678503187957818417001693686991543467531524764030337210555271084129250224169204015939150904563660243355064743370430170791534931700379211297975059973173375433210332899731665393994678275483749023038098798737498723241863520185595633194369681239867962061513624445901986064488253751583654209149726065114203468828043756250755317769762317818734127844387619860438374671467571106829094825052786195058649083332732228422944848649819348717934622976371491190361967167411462524423698426070104478926359912169885300435624825750769749277206471300106022287106287889423313311794542675039515177554532373440052235578042511869737627247379161394878907980416090273939578236884071247714644563996039750428779047175625460718445284232069542710249970361618819794516816972926169096519079165337759700910731678551796237815984846687069720060047181635736617065235639975476509678407925502230245547409090961155797516409252210484760765590938108003850165571035556495638066845297593214407772427275829695199036992292643435914448274022078096162171614954360162812819751520587452221046954995489769063455765094794024478369321238663566915607936214350162401842764294330804994018382096346330857487071494843678690224601665314546301638195518548661139017328803657081309297776453340990010883575894106970244300199522707028281615034679048733395394713909430562899774455116909199774063102962974667355518732567181598896055822604476450044672103478856794859941057420279650404243598410738318087102530107116170185783497997102411567342913781395464964052427311135782173393594173163115458479510446999417588465054197887915145197132256803319717390924393088426686730670974476421831100149276985663426550895425391691765814161521390095107718893283271139102363283077299157236190920466950076222675878751458300300455864112025094257865763074584405260236364708743423165072459982658463785690868392810309643907128685842885645590550937961796966288546236496295632815267017670518929697310750328323047817901769548869991705016125398356393865154445457302259844897794552333607533220371210272815982311999881955998969913557988608116989195354401991594122595408526254458905196484870391100059339990996590161408854802201596723507372994780800928844027108694458493628351759565377428270061304622451030135457509972556704175855788835669782607515682300930126966670766746061463674406113023719203613424053283107545304434048726376829345628432150495415485320405797476054924480114571717264903382696438984479299153322647296290160849061957532828228808311759527791579870567020641192314726665660602012791108934914912461893827917565124083231386023183236784006356495017848699241297597924747129918175051869321303358443519034326543850045122882352207114580825389015382448046149547936967415633728526465789331054890328024608227068394553153205448073924635081065463767659312475642554090975454877385097619552435495358323602976094035822466264616630612389291762343728316511283656630340317921287699353557212697494745879168315398955200382836099488951573978858570957562425519745106206330049091537058131586947101810341086838849065526135448416051712979820442869229095645320736524329599961803669788350993587970617875166493739142289584634359566746466568844268688441137746219314320296115721990420008747165882074649682880074549445966855495043083859643886883146187543650443592774780379045068884906354148523448031960735613758061558792519695021335975000537116058220601629410586946191930818050565927087560381088611059664440662633914054646382766352971944168944197114804710236261841856311829683182009253975605479077373245960536771568138271568161174587402417455066180659792250134152695712066623555842236225919126432156305083563083900607691004845052882132635543312324455813534653415956320098246949084178456433945729583602270195757395936357597466293299822533065676293028377316656714431002651933433580865786417411860654883482745101705185948244350929627955402962556329892599815664482691663608610248055689318584778834325270732707455558342912293071463358363398342804727759887286129204739421921845786792638854269917749235342589207711589107895728735462057873341267664542134280740749289028559970247681098734038003856306254213442551587837365499221348051781701785614420495959474792357327423580202318240231209594347007280798222546435747692074648266944395456575579855756675486269189047036778267688505690129569452989124199849822107586491343152421600740008338482659887831655417540658503317560535219464454255880958229633531198776387952939897591996941161556856591447045875868335703625973904957713687412586880523340107688716346411200270940707365316390560234292445400231033551097323022578223643474974299977459178175045220624260050491620542200317468490640916745017027652372199187585728314256945744013067027413681669307810994658477540192790660164866081646402340886007912992819667547045899866900542762304398405696194027433629154502743088935680738949171908308822905830115123418164219714078508806172941945780668009309212037753904541353627085986622450226701070419828679560969126831547758579605236311622695157370326137172155411718333553754919504725364905473065001635331693372790526459388248300579059904236627410967175077014370167320139265103049378251464772975182312624587816807680414126463446577065024095109164775744370963220783561394160484548073926668529887705730283612531655089344992988696311467772581422080233609735199611979740523929609901300736438916574006718811910977282035597058388458028112048734995254138266402516868511607704528124586208369734319844626154140548032955601138955628738291910076680727446016875678538819424453346319757122588059434127031949769644152824355656738773833925762254294099289066767401213249449161048810208513917993009426834176730478872357134238107683986089897939444816164975044455476356218237839793178997076615499837809337876458558207364401519790859198475754153997883683758265353856110582142319881596622181179996220339148443627042138145399875100973385502765805252953541151716010347990905296482301995059627804868907930661353729157160945037038062527520393081641666003140863470832342280762816144948921054581379383209232696185824734936666430769186440854585284842138722632071488603504165876058277759789126089160044802611987698037870362268961273337234039795384241307972029374727632429156499111492616499014027819157958294225192601460928534209130510129304918131151080406877383106741176798169232541720382892254417467411004169020037983540434407419901114421531179007137425386186818180447688955002102816912804470888925556926117159857439705008842432726722962735055105079458374743104185749987800111665983949278985532396071453845149076630531409190498726767459798052468553856532028030072786486127661067924671585417619991097157190549118196562285035102105503068242144099479485875777441348902872628139879293288073950419951879145237743546219823080576381936393176692183528690779844638596286921663949213013997715133858399911385084065409710055015772681078433935970885723082142313817711537784179723188572483392852754994942452974989187796010973822349605516418066005015129340228118974341818308203257138302058262127263413036092465440236246574970412455556156358928600116466555128871076857251670843670152431727332454316690639586839477953161781007103636119211962887920636243673377164148330760682784632253991348340498798944397081115019571877584127356022976652955848151003203339121427894466981969670979662995478071292357750127974576521268427262129965406319814969706937887766023781326011288577587045195477981991090956849493790605512193457849444609193626756273497445845946878740129515603348222358661345567917157486976036462677690880875206422342154187416005156744737864103702127841046729468004432097048687586896516359397168959399175782867032690468444849610771146724168083446839934276740253746420030704721214679338175368578918535063892262153445156045692983779801177079270364335683502519464189872105877440466235029729703296406656901284206234342070983755435693550809310556464222983631076040878302082795376154131735618476044135765550316100547354725421360595932118600965469927726248744432890042561500310642003387316086001139728567298718226438766894379706273807519124479156728591972565402017366187161851954853269448386177436279014949115258416526570850806165607929572179899758123653401036529744775379222825037716575744742775254674741966589854125969455367408214213018545516744101931629594291717291858556890165792861945706443580582815547584314160600165241893821795919884419539424759850525240125328561224473940062522097423324991361974566299341764557804789665410545092059928510675975221798496647942796549195680309017678056931524108307765702936679973715386568995623479290269130371900517669173544383977899984361462232009628071310741753943226224776860202055913372266640302587496077027973373038050543279811719554836607958544846428800907846035139846706612690687443901253228095095767224921630170318423061633403836675614417376161466625616229346969920145470871917168918975440903869733290944645374836917017687142200684493530076924117856219752945950698414329468191690701729611659430817703019493144067677610242744166286341914887490332647942908005914570490588751038871603931933334982430741134259852107788500315956070847115637574674345216822075711238903356767405402820111917536004794895858515249384223884180663835018532831485429879009721957186485301084165874860631383286041253163770737527110757163527520206768590144288754084216117135557930452206510538348970652424687929730856121451131838649909645186015231226514697392410036895376359301576651165426546084701497682901943293757257779672291178845691257821521096847873267075333492502193305615840450107126097773484840257074728761785008847207486746179262515028044979167224263954947743154449548771312205531898549144538192747700362244457349591678275762076176326132418658468105107262427337111659455780793887293677359673214895873197635955519093270281820030777775786006424134051281479702057165358743683510494095367407978108116660622457834407459577486033339894740270665746640481276409962360957875907755007070738126625298657689303844196259582528379171461579564543234102717210682181511594513771074050208501262461996106989645557156864540609728769230838804395835240624191967178947025984191631554341597872234628658902726660727175139946884197341953478404858884747916025770886944910927615212990674626405091909259151224193426169882672998384731206641509846452184061737956848520949144141318271790482339303907869520781367851846232018925505890633961253485682212692984480585640857271844789069039337126822270976903095872181960448217486119102202835408722024909760159903829537216382836543135488356965996275134425776813663879843576970528824050731637103890445201753418925658979177940026053783827896926383759305124028489360087147904584723423532344784519224742004047983882881169393549857685740953216691797247947763272918644547484792322282182497190884532980600066570937740233970983328463411408960155003298498090064561956514837032964508702224513544135889978251421986376613548728221343734163268107436326691012099021242413360959894513005682994258613911390139846474536100968633405343633431056158176284865657395654941076420103423905740966768352896836262168771722633834860946528426622120394147754854541752195598115135362285571240973211970332375584256731746638498087436862971744602772568103119944988725302477537314383860792271757811672497621252163813292172782328910946138347989447691549693628660448380416751565797679883863729401165039406887560587508907701180503148458287576748680473707237467587010644183427072763686396226661635542402417853133521613480878487111162812390896260475703535652940991262764945644354805548437352168984662593306463728108215925891664958948392252422575881234895006155589277978534438790971835583495530246306511270470606572928555953932304301762225136435283599445768009285975702862408821416454066253485146937814631175978015722854804300971813094482795721497012030686671523852857070224936221909193116971477163264698859630312549141717340350678058544446541739978586125333622153768507248295392706193709315798920057636635523650905773722715138869261193656593898719468583927843556461292437443090632199363193600728787285516276484956549954340816254218291113840336354710058203970325123869204105606232692911047260624480860547943860809781689173218637604069415421059900771799307574319246219798990685722024153094408766725597700831804937715084722355844102870598261480206290383462723053230559835362554134830896866180018652660149316252986973548742476769025988569935331384447197822564779542400891697446139472038995482914616958216751482334821191649878272339529121959580644625170479047261770873583508212532639957622049798563964614209521047158276961071305660450853891443202147045509186209943220571664771487731446086878204549791757237336202779583909692200870053308964170869623352798406181362071421615285737129722266601961509106816794046424498545712315357165315690257299674271348438687272595350582657139382038160032857456294267757402325506517423382848080992456890591190473619167903890301338685766050506228180180706348118668729769222596220484754562803197106409623779170709240167834807150003758345019943031990438838195335622158073945603473120127845211458759540674377926220022712941331452767929679924357627697075209299835917247787080628914578394490314562242879468718963279163867402897612651747677268486536324131499203878340975789163593281809332547974687929989211460375540271914490321835946341043337593634050300469470451852333459755126400595442458339024260925246997761999878844078723583960268794847341696630277219828189869874162262825517389921459468310873231824177903616929070929767000496023879678220864868963717429593572715865902542418513825850055195197895508125718673371923522240511537102343230603252111265162982500869946868038763482722544555097673218741162095608030379344032719644234692194002326737599776280367398599173887017824510137344020574506883251379570009500933143737718197772496942184861688285901787901281741137136675533168841590557291054762486169171676536937092745021851469873156548698542773611850665293163489153041878649217027968980905992271405047802455159984574065144965441307760533741495152234758207622793140099423434041586236993909448791160941447933175375296796982041421015683745321634504196060594901537589248863753914596988240016356637348967712001944807094051462733790722969839002781482366564696378638161200936052541977509966512644033140131306371905546446963525367834046540286826622111047161983133663596959189847426080562067992970024436182718402099133285905200384246971700859133985942050527696200783067006175825408517415483491306241539029223330172596634791378651354903236585008911598729390019386776877337234155046499696212768567502172877859342265349815732202919369365394721585776737902337960239227598041229564068826445735604041572081983711405331479453256441563573457861361682777894359084601202960046656248546446868594091880190364792998993049005989181756372680919306584335572871848909428205449645917186112673260414381589623875989658691202215799945756007816727538532744948750606391210700252844275516590095108174057831538395758856100158035869412053270341276556418954084276924249839554078066542751252491131885782880449764823334258566728498181046995870198007697756825035710196732446123022565849518110944773815813478997291276326509697086845992444505648031545069493424321137554585316832514734157280767854725012043929655790800408932502023898984596617575266190064031670336470722294979708859981056320218999425534766359813748491635227796443145136201284405501945523866755213568489672503217631477340720197602885051043365670531514632836196414201578080535711490944390620974227676933893150852327470764444850470382116361677085822273794115315961652974150590789269909811938252084217996006773052018542257586493128880310781786940148864434263467334060774453997823241501675385633301254612331223059506133730298981158058677911389440943402345739369589836585604967329795635389597248293812303852369718556092938615345755439292916006934083077904870513269784555475076705044274747049534148312496734923900623606568059633390895232801302042911735953964643340090872605827249783964196227439377122071621550343809906509623775748192670637470689702940536945955580096740418235160930401415082878627796010724225510846998290513248345892599397842505323215775723286219550621195351813857584427708724428621112491652196263434161410235356686955937452822224574401032209852173260564840092156628001534338204496853161046740767842144982666036371500667347645838759634104676867188199532020807440521180723052446467846003349150441848505502600779663245143630996990003735726743596663192635519876625089958945998612551162315908977447747898654141535144785523414159308125441474193994019694040023049262304643844930839399760445449040096078782192230190590229391948371873684243261477680151650140656242523408097777400243189560790939654407133116285437794421788872192533765512959250448794543607434913772385764642580228056652148676373890292964685883981940736168853767202370176207850890828868583934984933852208191519381182428790188532169415580647007719807995029023494767206659260408609710040124693414829633482334520986808678220197583865174609629483231653106758431026799264941509299659140729140603608464098141086419129049572957660138566005668055560044539426221846496168507289017030324085555388891200124474526113537518789994985047798006251640395028618097234712808843457829087903313703631630563840003444766170040657456223045382008294809385356064285414381563105631272467033611534708881918255516627037615916573211092667098961704481902697280581437838018697439400764511088798551648900209776048546981653498842207994070228358716282672323233231886015870714574947130947532975213772694511901903875114455633855584648009629262116507748537303403923072139411656666329180231211184415151819336591590720835706466191836314076757846400922881018851100771591633786347094494577150658753729336464012918895184315501707031919765824383268917879475916870535089398452072363585310455867493802947954583289926346089870579241837401275863112235132389211216299245199511323751591975722486437815526874887913510022631765675855827396099285112885116900531970770318928294476088473753629561190119958925575111880228546442073006821999716950000744833171209111329045342399458243897715784500032332745186246127249116220840973575659780535070573361105676089428800583435270585018972830322839297970459992171655409355047196942882197288458421618756781341231838334605221695388948747024790450400526591868485259421838303716995725754174611290559125010449873725340483273778882122273813213975189828440786597432484764195013012893606691997567007864811929298486716790306812268447570948228953873393891362922249222724540720813325214474467510358771892456999841857348284850814845314086297737749551689429764583646147678540606636119872753571648164774085122942685692619374476892555352461290667745122624051998168799018423619663222676796082942079021395303523133297202685015016406804145998234707778176073720090220496274894120549050077844692001317433945068410330955608525978352880337129898943440721455884661950078908626915353636591705241911956200809250501425562958092547961437658431247704253172718317363263856647261046126071986288068764641082136569986973783245692146326231382442236296426304389816307271338797212145496422035613778563744611998466743800479315353156227783960424915350109528502185895841580004120102808153240529162332035555176752150093529687494065440697072259057739274749430814043955087424315772246015889924954715220855476977769595605186761134642716296596829990224510759640654952445578879542239548179700165550008344068491531585748466483587257668868923338230959785838907485316363781977220187515796578662316194393162082571898387826506628975473162710052109757333967112897369536270619683346059737066590110481194035125785890452262352365638354288907142094920694263478032323414062082225438845019178263195863927653675333951177503514045732521470519220293636280786618163816752534426914198046478423153657264333161104674332074489001114583716349492454229498533543892649311159109130228920722225621918728898384338654671211372425236131235813808134840595022818556774279050966670290991056955421165747992789081638533902494007004004742257237552732338533305955258741604028239049898726420252124644229066215073771099316901442151918786395587126441814005164166384588907238742961731477742946019388016801786733688099017981111981903783543235596708120832950714132840671574401204100142845936726527196286424347250936883325038305107498251394753422486812860203278887284739913354694183168915939632020067159652577491824692648133776736990427857519841729140174041402494420759289790822856714074495415476069375524307722810033441080692184439365957641138591119677536594950545662167587072789849325775692235832943896327677636002856938778522111196003610746078151611060137128546055278097464847635627932303004873487124603861757273155059743743340805075361920528161226726468443465005179270891043923200379318912429511414965966350666034775830286198087239449789052175651307349054543715224429403192164344824227102689496362340971544781076731557596179914183347455287492496638192982023300667061006961630196477288748498452278636489621319097139709704887033754855084880547549985881949150365157752207819113379527078362863161708934469680541273408582188186577002191324152385009287825479862041991062416697080538211594984421460750070237443521515190913865561539812425761962855438473756032199752798321383387407137934514688427679039887725140427867709873416485370363521779883941522178171054966877750230123120935493548013858637349455449828800877008758864987756605319159789962686534628490544026701976737823494446999672503553613679362216896088774481352560820179608844261936144910819989256235864636958436509892829397508482764170302963419065578895758649147661153499393660775273976325456911326206470058064818729058773951679861212816383504690135444471567769156174740933792045621112681743058880250277260919197326306502373716240505954123617499560433432180574203861506997118096765209587349138214408371958721132122440425618894543341064370709707967445891558372802556893587659006233185457672707943426796632315680814806283263772878096347542642300748917859986941523826163200721759815443587272489249435145088026534790721933617218184880032418380426384377511304635800904651314343828494246964772094209521627595061975457529162546391550122920644359869016170533834310348730960560339290066782964048850487173912977825281464108443138401438135806924325551709995317392422788883026857388156068318632828835169332315698485086857665142836387016293551726462557184083957625927739174406720467508945241081819951617750622988360264136443420672932288567964264925369989485917507605625535372935146511030129733584528290431166007116551278252541766917827099654425552120738921578057450206696066879006784643207382215761929179955620914103598724750464752228249653014213239462367482305298141621671106077955608097340711420636538768966173443284602697136299214871678210581291257463448905914392236306336181756253114666237240595299208118830985601243029882952696913970673587090276951795703017969340582105598427042088457839600788943351650360843460278562616691673249614509914829523633733172381510662999857864111305755431880329670700484115357672215116058827877790401479403928293734030287032125099287058650372468001344183708808935482595344708993089841577018090472103437064415150237286348754293665300810718888141131808415975552249052861825419230763618087503547500733625718652078211246652333120504852451749117437711179373994947615884499707709904872619379092460122715426432720146355469727478167023388277205389626450861494132621311417848295463846452743051246214896966245325395819277345096436313234081318671681548556366202398479092815549137819919370071153722084732479665883565762267595769144316021057156896345095341369419469010220053106415760265065152587050009092773484636941108444137055564739318688611757583482035229335425317241150768182667903914835792899972548783158834380315789381928654483043346748015764896777013625998970156185658603105648468327136080341607442086069855874214586355100546241043699605499459443429927352266539108390063242617567323472175050538446774759995410546729335662234754957889274327244503908283397908502849039282106327402825595777809565997605989934000264752072576738432459400979227030543538561304804207230733906244678941088288450323624969012844866635561801804391857322024555879593582846297530055756710110883177834428574886463066811992012106771892083313896212777179522321318728421940105537504816396913170215446088281566439123779321553903622918360627998802647481562168607649909581145693332794090928747112318222200759116322203459383411357660104126906987592393088006621706114337333507842654290472610075147057993116993533281916556851788150351628925366679112634085539831152600614952441974180193859749209589871391722976751138448920288852822478002785204674431624678933042980948501140328066232692141323266761521026456683926858039801632499522452855561879297541676034194052836046469786931670506395662644866948544886109575821203962097813518659001027656060613995808880141684610260401504352882210724951299452396291624257830605981693962826466370456832005519246526221913413398536122466310245794334136664787099441592327784588846165296311675299078091527240476597665015475674799054334817920191141050540573942021456724284053721770881064876800173747114810881923952421743908114764568534120003775031287260276434671103151467662642407560597780105949569241938590533129941832178224076857316962755994460226821324327939595831057557910905596100842719876357170584109714582092799020725100634790567480386511939368507657633815006881774877967507681764592210516574888610008033201285578998876984332366802033027177669854167686000715905539944203144153814963317412442466142516670722481787724838032383898471484650043602361668588168690467077430791956523195004568127976264225262016648380104634348001342900686372719393788177141081643548143393877622954990473087534473758303724646291884513211409970192372094635035442711761978727098223475605491142063393276185120506092034941852173602494294104549286900155134300280968209751019750260871548156914293910050500884978879678581343418895155767588309001988084986975645776064483910269714916849391316535451094325799618056198498622624155020843372436252507306881898091852322793787501311836013202954817818804162812747315466494942435182172380989076274958076377268858937964918002982870895405699761363672671283059676761065207807558051913858312375198643100424770601900954030870580180355119449568899833708935093814710578894736940177066334817322538497950205131683023964978893376071865975113953167570602002139599122447776318794536077878261382165023093517079586100005152334978393189205942272310450001373297199268361186830265673831103246615546709850797273067036320650275708026640070440307530757800650212109755599693561055869724454768573591479412214067478432640402053613860351453233776525249698020691753050921566216070064860897749793062884956840886489458823022255221398209866090856594379841327108581654271136075045809222460673525933336813979055112713799922478973885719056458963148418108578217499221527447093153368442222802154017235293617114068031288337059714080730787360627396351831670707915572753660538887190370952076809060882869081382185524336633035594316839997540754445117015502847014396783413694745600278527059202546447112344584186186651166468891947793708814035454627943135331290974568642073772887977823407868117201069419786553288432113399904934684092757987148648379565260217200811038996106721583577343486034108730279627257867679678949764995831098880565890699405039470206415186095186114068622797448789188625416549189468255213803862100062503649949378778402291754309577308580992236688399234024633704940692150583860348773120539418946408713269781211997539531221972587067613145387330487957735344575907624258601057893015730857601403395477848561257182249520290329394856986150955158436906006164605057159771171366110350965958197153462889533552072679173451816348547991496596426537653445270623408956337622165985477024893219593759484377741113582763426357238800840382424464114613023556706991983177284247626644951770765336281092454892056128781438064726364138940067218627894336902358853883649687735727458381566686350581199788461257882832931047606156055270218620751559370623146076189577210427516958878810031314982781810731805109386971657076768427786235930941729306703106876940115540682545119332486150733259469084419490373548741996211196414759089585112672956275096246340670994994578271150658730030399607944517432310492584969428070116431265310258569771832381221465864838069825848821058149740130263570530231738418464490000408911321549124901947244739364925514654110412889471327664732024216823400862182858845099429824451776241805354286586449134748651369130931062326940143263451095137320356071617252067981698108900529088964100930704670880730885575547810458162301109879382357016112528383351617029031155096455550648093482421734801952872708737710941431257905899428694784749080739229782610656919000895118096991109383386520616161261973111034165926421183162498431437129523509324309103354926102304098247969441778521420741114748717638547085619863619018165941953216235690709231114669649263133239292033012876595502318023973669153001764048057493965989950665951543870120761176893767349150028799112388867935534430178518020942474201663913750847208904687388193464735225335243848660368869488064892797336105207620134650478257730038984089005669388736074255218556760905265613356621527979899077863647801948464260226849051465226625610871261811954081165850968382542648873977756176129371821166435934944072329433756406116793362489956247097484302208548927422509280726936454903902772419662036376365783937658425509167887338835076199154159700178535758479751666045433819626446202772380911805098848989429489346972848741468228537458698731827469505765093307201280738200753352065200938032896625397800228114236271849290297374577215204890229412253116125630721556411222940600813470945321356388589320658526299849484768160649317550130869366057968231780386740574466120355196777218336635026421506571111845065271465292843230540302856149788443083729143381912641615247104809511525293100980793089472988940636157277181886204670041095283581887598815862284943767896271569329497890472348713399692255498850088899228426667780642338931523843320383315096262394504308052698565369510020657719227283032908525715031069989541110618665128322044730725321097651929458037832574979373147456722800519016843580072968771352460228435507982816291772969860925354167169988427331457436549548974706922405433998202913629335029881072188824983007785506568430182228939384928092240022187458402115186974273558670803736728846139302587866718984355570392743167856353178087553819256709846597505549033088710518202519738457447376837882789756265898719368090885791316060003929322564274708027413660821804549110653110897181759850634176480841102681156177446885757976338025364518521535656910566614764937544835759129219781584833159275612137451261359308590723778317326898656212149623233457076900644621081695720666203536633160866369766328016414240411834923899572869294273698685797606215547073283907428662872817761797386520753427027884423435050616285443821273289237878749762692179967333589075137927732196984127203267271298444416236780046536767908818591333595869801434771494271579066779177079300533684041209612251324317864184683982912554725907766311029436786483187540970131855761853868970127693805541514064115744233277207383389646880686429326888624285932126486218879368704335214811429692778376242607059530953039035704806396989118724045319474512008025406430369743994052303551656782188130654211720282612026246139255247780621939826508184239467331977536997892016195195935691454698065091178406207614983180924323248272298641880771291096682029134269481776398602361998316743423705485167204972946977532491556329095719772812553501705616990030874992411934731497989036521511479664631844645675640262368392129081543139416252270137379829713384941195477400816862783131751620764474125479947075473040087845380393146158679057243376846820514128727771293821489655659916375823716652898446014074339850788709304554687827184844988432404893011231002511017350477753442896872647862189725014062419617471200949758548386216683380154036228924617365855973554986531382113225164081109116283075442817764935829216480097934547381840730502003255612270186673127750170167198938456245565238572006719214180668984832205242666082764191083925153356975919872802613007075480906738452280938840098527961232057149788217355970988479490704103246573799093881776767633094405202370590607708346977641848895539104424865876968013563122502864364372798913682383403307187518474769659960123174328839015661193041996972014689712715669465454132631248512872010085598125330582040117183396118225817231805743221240327144247417636510221297714169258216352673403580277174449643807012112065292867999320624347930922491578569591971325572735154201564751209415786093594102970955094373556382192200581862826719595379514310872662053336784114729997745178259347190373430473525137293196576983982678313957525022302882105839385911412568608630482277244876419100626793728702390420138605706938936358328092999057384716185102587954628811512582355517642576674880272693961008545707015293948779903426531372836781284102534564395719865952084728668931952321880668236283197755531865572977046276794993973145137692314641646302609194851845455070611978431661359053233584345548414887443505288314569476467762693680882086405075839790355426937333230438207487110735525693358255258809259987629722353411190749836476240134630782168889630460364326157943201936984998783507310191698649140208211558627961990126965766230414868070779699061728005269252749076745127944359677762595241341878731809825203177475199450111160545887402316336350836934492421056181900710324654028409449241208891347500588495113295362613841521130011530529184390337659896585773759529220518906933681653109983015647196422959783272066601830289804735983409750921427985213778504245099934428243455661300320879856902042181829252444749737001154005978126644525492145957930368520932343313945245762081762225523607508741274552436791997411630576901323581069438222002410345720512343641146764272419827304601786873623698378944009442727842419738958618823945715037650987012794526634326563103665100120038009539878313217155699825116722868186926748163865959540579273610798698277031706820305350710309583936969864182932711435604561021764768374235446581988175412292598695224970399145562171974607670932873579063973781573544445919914411124512579678510851485630689448797800722980291187094663549578714332460111688572778746906859780017829890902276954966835161507990242498089344458193608541842458175933029631454449539130666783072866617439386051851655080358521929003114259416651725837116050961929778549469792468043657817936046576048759805572148640741430188821315535678204729988825560541552491647025507411132608955542671629266302984866568429883678684175158279497708409115162132344277330315171955263387446667031966161669037184531699338530309024906566575894867986305324238830353407734927514449602180326138533082337117679288816448302577848017817199768774928195379361886438135387185961487009443507148595938170943298054134218790143739152753756349612621248665170223584481315335569206393963732629830122988273907587980775176587229260550636774320142500011269923034317764572180391025761495896392355693104114920794227507014192421274207532662489198476460501170814986801473474488422091817155148795071720174269762988367706785868948981472822603129891201729963280277194206191523154134262378037211307332317532655647322833473004288626296028618766990996669965064998878363173902728724548066904849793738479371479642015323515843863916081067176321568622469607070476588973718452456955690630975995349719835910283411012396520990357345572208510253352952408321183377526222452340342417612557592926847128642391759195445446670129744320514458090264730541946888091978107869369265096350355960804814725998122472174446150618844091918627561096173353583728575573309024707243551769792054163360285049767302025300114197068720143473643918101150365044383715661565395955872895091416036778365355087549427777080864873386265667871143845018369084434562891626900535382513538322758920236106725923056919572817600443664365076108496136233806540348024675217441907430918608381314796063004114995231993091227754228605396331816269015119152438208337266422573645167299185978269170391814102619694068439492543490082214620622236610244532292875759349377349024015934934652894360537119943792730064579385513469279523602630661590801427960506003560588292601536493634788383774913525755709467625580938099747683175260917848458011246086486911471522793372025812315532941413107538032949922178970296608500860650380225046643285674818186543293406551037373263264242312662749953595512190160594735706867398183710043430452690892258229402270123950525197690052529132807789051587191366439103762162230411929173641179153090296755995746250471105893483009778094929310985947376278425668133467535535147603489805675141383444989055026725239204742532465178534655035128175629039307586628295951926845269542564825078272364815049820279154202515492754727819801047038363020995581963584024228480316446346410938950913658605525134914503933095232991102044694887427945380338342747102224746413167533902096607682692853455466713144212710588541969539868597237915212775940238079437615520488516990542951241649198506499196633120148370915777949216230172335919149986949650009275586245000172904351173968935002313113762682254788175742090705711768087061802392165584230463675951739783862654607488521045899500212710418306960070595724351853737392365599129468834253359759387429609883553268834144650110845992878847061389062596226261650102722337456771445566650026418802859532898165692322953196854618465331493071681859136209398986661956363510860652316106875764440458746189295514014982662223379080290671603963559037341492767263727634062920539888694849281735810925816662715065790796525813706292470113735755577645824515734822778191239113843274768507556946581312680623370302853732282257245177125262892360698514271210921741057859683530588127226316448138134588827107434798350269322460184623544619838346516732127440031674724022584100536987485395462500999874275898329749896195519117454418335021912839954815874087795674375528340701591338738115205937185054297763953357044253426103429747992381742646126290231098143735528919376039275553425316032784743513570821443557282575460686279353749516818523673372614897502802048899505335554893096169716416251114911395425156149738014741565031569500445167143271355909216362788150639847680842286223045236047728302688658184861738143654648141331732713240243228812276957458552686926351189889613287044121180690635821881527025634336163205782874088925252143392841901680130583796600817403762748708430693823233480158297334844865190158505404703551928481697543773623563300524129798680803035660066628400874981992535569398594936478189909230412421035488881209139040507214936031361538639780877613899747604949682653602698649151745334443863129240291876799196122649309334198003219997156502955063047979935552871405810910310201670753946092301414198068451019496655531244978763707035598238775928176550440229714302860575055403191705404631261659629554641384294355441385188681341757741752599925145660014377685083269238671685938196374383489697196141132257782076614848997774205728210619765744828106677076390345051715250579961392819002201598634616902890454703110678170793076649430942203758544236557719126788467764263126823525505825843898784041932710033542883336343361299916365343716566899935638073319414341960259907187220620140355319111731659555170045637035533647846437965861324959020508802854378868722921070562301837595325313307440081335932125757721733939598086467408533804207058389070675418167142277845382382629041142297124235378350581409666426906071075920735474070429114852470884913256867628961581852908827621999816721403106129182423839321400831924751013770922683806983694623119209323669299155534768246085917819028942444113656906667891827286225435270105083560849339089127697626493312435786729348843262261297374593266209815814216077048029923953208862680497980551769889221282249024973275628751346102555585860471968401541296363008784213041172966072701715977392364635153224498860823946974104666129986714795816565422194488070127062775730589439652069103486242384286135949637764295211090970817145290798439009277707168343223281532755982671238474171561891397324825281452558182736569428832420527745595246913234914253211816296991029207483028626612252720684342164019212410365695304349632456008116622456936433454501891719248555057900805312518810590049090912959175919964029094098738850101543647553880189456041354330560506993812646640472758914620669054751025212843170472514664891356240835203909286772268744527126844563791616782361105198928057961632042339333371610942494803392808530335669598311569335541006514152144279746373036817013921191354683190626529985425892750213158678037567907717184650187049304900111568115817934815199031794438563923209762319972898198373651334037630707163650230676575935334983231925037872867127951017033135532939209027754038599400262369716136943012459039721862843818761933892006573809398295065596075543220296218768609378855547438980031673484446300187295227380994244934157874679761983132981977835814632800308799240352157952329851638831321486659925882282297467032996729611322712572915018141987396296657856335195757939416458292094069145607767076217344795723701152847978950320769657608152329203589946162745683077432234102759988779609899054459584578161158597485600144302757829684315719443129025291599121763320789672908147523689769242957965238864819404000359705820356837638982940228315167958189128712997422454362094780889871743886177262289286874831381573825236341220667300339801672561496227274120992998747889208142911284816960404406057239188771421365917113723854163379055529540493395862043240666761722481401385742414062172425559987285099711713751959524321951212725546956419490809641427531545447129821856019942081357033067120478603458919546428788052944314550259846959236174007006573786949706980165731103069244643296250348502158559823304644238825003538912874247642052774727500928336730916230142837691893062367109723636897039553175149048393678145194819656371098168517731045876465210741478956529064541768812008844997506338165119487094696440096322431798326115524960674223690340338785935779546579488417955052628056492629791674624231983120407457808523310780330089177763289584448185205875995633010433247173472865119106577545318736895715251272115642420528162281583096474282363454451084444852965472621823224771745807330323169243363064335061770047460744616761208658771028818583072415216003367871919276947860567575729987983771155092407164527673468302497006524526435175455792307487667771858242424023094217774091615609742152895754068137755768723816746437705747063553982607986728082006602627111756237776634790648898025768261175838043373438277164813509135398773925059281285074573180153007723098979772970316344431560002865110563812753509024931163253698955158106441813579559964053367516115554058044187030490771935643902140599443742045572647454716916136982942432651976988639974700726292415012530901105802965781023976909258341399962727486746180506729629599763050255123248187738797335731496763994525735038968934979862252846452911132807251303116790532277062367449484241868807336021886975882990085342829341366146919344632942506708007418039734856930058790659054101537263269072616924108422505438986096950702165234646584960675232638713364819472183553567110822509277007029664041276254338615622805327494196818596917005932520446208662493373366077078754845170493897634184502258842936002678343799222760867078232415931273723626553685193150286839088753529004483916001152733142869812966693352441297578915889279492947706060455128120249133164559221703944566686007779700708440248410627301442995305643355272386401651514638684417571508010908906397462585640019867664969474992837303128187064154775214385688893382359554426043906483685994569492979739481114110239348163679964625967366237364660696999707625640798348830521608758253474796308109911127145515864924405661063823007424262894414465254300469318533262088320829097862658031047757807329603225860979080277808005898055410046976838433330971308665493406012531942478276135045384011363531963802702908329797202253341178022742665228649895759801717313532944243921797102019925657061809769228380444440104508092003525685172624504383379551912848865772103693878049631752871120213562661603307855312761288533504134391001300487992517628433587639116912915063657342453291077424117817025212662688371991497202634626164814784959410448529537872288264574583440247827449224165937639264082438753908048954449686749821045970473421400174680963246213822832523387599653489832963354311427133595685317322103112081374894378993378932749834678701334981230971597048290008990703269462628042257305814689476135705081237667509979462590312647364721035222752938154267779035323201076483615079944273889389068267180188608997958555791532051346780815144640063089845498778165878289849160057550236712496193708715254052886526107017768765808766567869152113006806731901977905903508308849238806128793715532355403679049173974402477086439533112633768766153788153386318748373797398651021173384941433931276193251264015769436937931542999665508383190792515037156818943278493639361756358904471738999065533634631563200353461309467626573326846543340306239027192414921438451229935109826198539501257325549306428123297300462871283529874347669172151011122972985377760717051772403661562121445986084533894527004987760240433856174216936930497379995344957441261776959672792833937185137260679583208287434877295444702599132118714701781242325426467099410149031596221257784168052541825794972537268589854759067804226002411401185609466817047714485973636512655476071132885109393248062785021463648743866279411333740056513125954981358438316985073422703919790691103035666263350258893309679745722571908975172809805066914133856387821127184689386288731601961370003772097070585058626644354016390671895977405586711981849132562174918017313585116632329851286069330906429038091007146622082536439127491464380564822302976772306400265355326079575017666821520573566217651904862332113859180988306782432846020241416857185445922298004013507074287215999029806913906863067537510550250173354375739211594381276951032353823801333752281155387504396854961222845109901372329208795949508488883800555853002575202472540547685934749034259580710896598186603972039752984610350625019215931633985068415640568472919421059212165337375553143447781910597025695366734341940144949362362044397232309169852323661242156823996464152076597202839152067849582599764664228833483318655982356298264776394895733625851239848248111382025517885856747429979662446693634507272927600803322751983599981952943330080765029013726937694384320633133913488082999872356379940312005369568752992141717681865563820370069771780413382741658358478462299945915274866942157401574724355143264580949274977873722596246508312339355398978704590145074641557276389847234419179957316709431986240355114295169764861342362774700790838774832460318103397808324238167800325545117553312194338708206028978529244047816512392202548365396370486347567198007269294078603398023534428842321225279281881631498524820706907098564408220290152423402985842282304816704699023290582313958905255188609119663353096802254665367428986147686464253599972354562781598773417309555530598560239276475599941719281909331747631119459108554954904144709044324867293527821364215089065470459739751437160158785780047748489061774828577316403243267778364907622043487298930263311454482634356595070631131421611021914341354060946576885341300196949237482405967921721762400359369681086652437522417886810228882500468831262645031949249041098438467071004466074488098186006343016721472912558576685503303635409797649519241462390478756311326001892329891887710341140834866179186279896291399061647846525059576856567844034768638606371059116388692613594618905280054658397467372031083592932160319962205803718861956428263154000024719619292865539981300834888171766468531138868283545032678364135610567547094941477137535708510160026328891224544923192176344627694607546005564608754508032880540005563143093574677805428626706674298240122560228907017437759865917927349268946625301770511034871305805427360638033719629253144298470466209644339483005434906674480196592687869375808522593643114324745727272227469868084944478786380722806801449145278264509119645140807022730767107855378760672993184048805488920328838948533339895006558679138043030532515904386554012572500798583162852687279812762185950594158366084966621076387666930448040130534741541345191621946333999249073131608054033857807468556709705796715092460103120359907008627255669648833374054542691540027767968168517030669204527118109945517214275073149284452605769688067145040925599002867412984862830462870751875105173182356034997546831493598432680017539866078997368204245122410666520394757528075881032128592971618090605229690857318099018857405435715303728340126103241004822220476262374641581513034173742215488130073419331413642730534433450458655494856684762061782022230182853057951065344737230082899383863694558116245773138186068079605434429225174007421499620796048075553245874612439971697080509220837300540279063358728198246207135784068843719299350708672702986944335633827123137208420317486941517803594139110594102500967654695871152453829652689211032918380488520343392818908873853672245752381160133411321264667675324960653503344465008735114671305557573253707553892674045113631608284796124485582306179821182236670175025552536057570145221719762591008863130072730437269871766545907824916820431453290794781832507827498426152400487925630506625693402424084795038447912949125250738157197620887858970389141544177455867334971172328223745648599045172641202027447430538630424401554263946842755663833793762909657147992209547531241226664209662438158444650908220025702525089551018269711425078502908690762601042006438905442531181537716220521078891632943348907333662142909967170938020410717378778262574226146481454495275934693829897333220248529151514887398942898350388744122998150284786811874625084925490768934363532550349193843785966971320310163629912197133273130571582187408022850634829715057079949402119553434428696836747707977206412858790070770525818830348633350605842473273525104460526028866048672393966792491799693223693595281110887099132355256722596364325153570072704888659507813725828149704696442573873374681488440227082239780490052692457886993365320909602999168970394105703811236427782427928084049512288022271182888407750080981068171067106141642088862032838468989887862856027789736030024159830046559987063319783742370956067788116846931422613124317495791134788451219606826659042583308157834082606326565712530101718586790514531838888724969862408170929044302954694854474968746867836030557641866529946217592794044943767960985725277845805282817563062591389003705325314105808063616632750508545041454504535131349402027854026384663473699877812143015720755329882111763126249119762694448812488570987609519755190665904349455672740147167635203343141268795940284879870455457533423729697647389302973427602510002008391241889983499639426639400071927959907726067120884681586828415170623635000562268280157996401286524221440943973396296577478427430476359253402859373793802220409456437221166547540562675687328433535497768379988689110981040150125668607086870296380108226589188120051653122866781058207537132176101122478697834975890128569402558328530565025743711497502830649743910675370257448370716045136127050903073254256107307556943387405246992655042154764122514390413911865540817001225589185650019581699146708570548418776045925570013061070530189514998220278477464098169088577237701650979211372621541804897883793831586546189887050787665571927853038623873433180906877710899425671115765425638767206277167695101902813647676120255386521140214062726483051255662022150324710199083713207615635909690923835496979171204987183957856616647887547190501139373818583738355882143376783078993207890864992554780695748220666731791408009847962106941841283919501024570697680883763370032115067220194371962464443544814629731678627189627296274382819980965726051928932944566741420442518040833955573459320484532013670590309243042744056642516064935598878498107692144519441284562302491963317959078324381329066421731586130468851704534686915607618998174354910062322739926944343047937202425958634322549434066773097635709373990969449514781475308630516184897072827828233591740307362888254015612227157711394589241856916142375694058334745844447379725634681312488225212495923809113130104664699567287093209088209548784415768123228730951107406050886550246224068435951952869591025496459157163894092571085705845938841066802890844896712667217112805786914832264618925724385040299465741068382561247416145906797857711175315565017435171816399938850415970948663067365419084488678812922477307974981428683551176277963096723769687745192793949769847917129813754719402621779248942984567420023007271904394057819734403429151866505353684410285260127749789581884197866599376889097864633089685776498653421914625631597838105533111900268181949954978217814773064288899932070374590804008110848155979671921883891037631738370210114419379632369581246810312258899558933344677872712716780807235641165755098939344509719962080417784037025403652322858961786259953014702229277114986788807809188968391672135389653111032935849892703220920695019180450939312844929792925638385024769290847282015858167978929109674156900967312396941331863963219975670366128265400923594648795586282021238668286748890196384805551660067971606646910352924637670276244888101147901821986453042847309015335936140826926619844802822864486339772669069634328356165175596367873796982480172546000579349935230795505972223246465694872141182231206744729305992258867831804328321081297802529765663892207199810166255644708758392914264871077440596450858776745852258655127133417980932550898888033425707113009694973648767908852415357953531787226716405092994738961585756585961423437186754192152770432913214709194396004643668871028182722036872792475281325351265624466161487306687166421506133454259479010514095379787810336493198698414705157782548673325664642723326925533953208652802656083245841262224191783765092023844445465602836260994898189623866325565760593130524696155354532969873087212515460734950144084267958245305158642452916862995209946362931443682245482254202793187499035935672389332506600666657722814462202380336590146319076063726234353300474543185526822547110126546958994659048517228212381848396840923826266659371343470663235774595538568077191216731020934176743615239756736294550323191543867110200763210848087141144986997315978527938380656957104473549554619402186831531626056408058782629876474909098446659838273143497990833605235076746959351211415779426831144140500804260321466972500864454433293566229060562946793259134014406881584465077880897181200758864122516908394150203591484578639239656593871508982415855862891338899484770292182711970572755927162256621297995162356369897874261005685540688548887921919555924038485118618252882161231844777728826728459532238686121745551159683271547080459084999642887468427212934952499240345987134338874576909819730078587023144990212045905338591142505586364208077130194187804877948270492437412049592685718753581931769460658184366041118942264662188759590605782880197511603339544265445978387438188031832308252512021292970229344770458568747105921076671206922708425944400590223468837955680906671973799421986963174903738920850009060194351168028254161738561074717289570440015743944244018454883249942740746104597933059555653466795594348212395588208647242292453355948056612229092958340541892065940305244496575527101840701834379624907738853158047312002386286108574934971424421381604103618309839206613119171290521559449737581236323173729200725622069619743281372884548734033509504268508919669381674892076853619976021685506217164798548220823368774464278804419462053895273324402588252540116983737156125485413962554286792857795116694542464856070474152875432050130569449427811946812828412481609985592155093290652328431736644364839965699890858601960860149811869988185800786987542941980564512375420215229193595648220962243160745605593547161162661952273372845330537277368860085952752006315922394932575794421862639372938061032071507622380866894772814942331570617447549677053169894331698143424346881844465863767617576449077716790503281928333337678951189205595928496434059375152086304977775191573082399009028489883377095940034081798563125880074890732985152160596845895588413338968280857233885475993305837086135862767591682385899302644537950030293076486712458795523518238455906905618222344122564285628827228314652238771066057314254082811350298095412154737933466176352903002669659630997450792902021151476575731382019189482373719027225593913570787393888615416471963712724011308079454984806919546789716871232080729798911209182127471015939918106066160374447901234499884998598543229378183942749533988312759777559711053267771526628342416528915449007446302369573020903705631089176437851644650124277186618274655066851043660755243185041537882889061048780689361274138838742319193416280088234189438316184595981937445878234430202101684282470455405724735324393901784322515135296058941655303980933826623770969099325980518525778574027592218803387180975135851123167988435730037593324342243610027990766995828742542582363952329545002874370590883608243722028121379395676303046367977809348358039665961830962212213365816866591265720931085150779069150803431164989711568254897739603089856729760825932056993829802225508512769633984340148348150565016079428813321780062522431311941117210291692668594980853482481155839229187646816031950123352546120572512905752152177398478618323239302124640118206995352369707404413224835275352125403142374956040913213060909372067050633218882127026691371214200683538923084067449996813912950502805736120961113670649966739230544596171752699753423044492055295272574317039191726331499306182442336607763699467967865079765990677673112107957224250417524245102534575634120121119637324899583183539468383676063006275384403365814872491777246970167352421722815936773835959728350215190410688067649212823874072594079511082345495757265172379018260380111456204803002168007461913050871303435060054774224435957136108968809802989390805613944217629699590498267101088424840217863827727039784399064705030652509819063045864863556464245037551723504229436124422809649345004660935850301463237937979347782826638554489536507858847131397807901346439674921539701878484505738674864437256351567813652505554089623059643087858454533688588645707997812614579850505657784614311349628292706051298577933027260938137898169729307477168557775555769789426534489641204582447568721425208082805578072038096115185681486117543090915142184819658889027114820234792790669253732833412573834410012688893524428971077951633455536646590701151840116861816288945727502567720448317453684808595448481815495335560570204246859949439538774729925780240012886601569255431698304522283112872578370668371985332442623127581068317983120114618008789374023636079436420285607080038380195084039744369701122012696054270002272281295419616561680788953092747610714473874139133564147317439657101988865481832640805281758010102875512414386132988167689973374733890003329526421064688841367641884789934132380118380198439241347834523619020888415883869291182212067899971604765784737623681670226525781955499785146805170644131499515324544048175252315291091979721669733328715999199806452630191642160868752423886040991060460421288524879641583751148918233301004412876562652177586892431729503520842127464518520675761122602329326539332445459713236509164239022669366578591957708466559021860612544098352027624917572372301642151007430412422772370820829735101345460010000399882930333363692762259665402772489695241292880214007889501186702093759698184823396243566641135963433126795294448045115231615949708944447487038400811843908687124226682094635463288570877830353598949638550746359702582459859459006678089246148764194809968367907936909343973319784644333833738688481298779709731068934755478171682285650745522554748324525807587968969956773413014373162883512865343349467694938145459045764714130990569851442720613451141856899701907936768222271173092927795430507338868000567643920237026652270527144039490573508164137854663671317589776187619085883422586273541522005061133479479249279767354686362186546165150948545358479154071347985715814580884130340238577358246974603385575827793463048933323048362288848993592304148234841051426539568336611944953701641029652990686916540041527624792206128689347812805798534422480065544561374011064854198385672519372480789597191973676308937575259679604697665503971658245636654528611301229321246188195251757525299889192406135196467164402466718616887723812568946691380354635869226512198715016760805979264670834134413644274042421287816928340523458380171339666487451832253864085910552900309259044916364764254719497263104142898192188278159971034613983211133064607234060674511805536902709358056121341018873611392358361706327655072296036482375467224059263866874388459636227691936072562842706530632998445929396992058340791562514813793231330071132596784134233305178485387555538072301332004883132942108341275988940274621888477151190329796441899302492678433186756448924040406831669738353736323668119981889049579634017970840162778965768522862451373912861428620608669292382219685066760980519363028592686755559835628577948757690517459458170453453219264324490464809125402400410005869583670407012502782042658757473656507773458660274881663856374370402844291546307699154483347731716088617633366741547716957547210377631332681427311242589184496907091951662516548774216854568453505760474755203459824302033390061006157469228328075581473391218462003169586054513567007304629506978169422155285727980257764558471361394086386983119746046224033379671708031488886688648361575742262668520488212922900825594899407461577470188814310735372000196859699632903805904727900568941119195005133745449458509905086397898263077722455600359768363291977154270073457618155105465538367496680891584763768318557581343177946206168069212614807501062461300317105980961799035906852944220977513594629689881891918834025110250079339804690732500795433003228097975237842554543193768789959985685428322446874989034300986462969521889870222218969076366113396324200510128218389899346192118146417148110416054481437086185202623243173431974327954652013772774114448549722484570802029891289066018432278137231879824969980057038087636289731256800438811963603020264629971724499312910473361660767197310059465010533469465014383587812741114323134864646908339157148186023410980297517575672147266676553669333960396007160519874694207012033371317923133781976365315559663725586366855943174069717699940829087396341483067153434104640166571008356615283895881522948824799663700793487852955474457880272653778379641994776134166479729306933184924991323987693360592939012305937294337320805594274811764516525532585871849027765060054538141207283961672895440846010535388719065090457305947484318718850831065805728722078220818651101268726889709480648633494838257633373016717302153241196915731894631391799616135216241289236174564603231042039581740475127666782169350610848391225779432571106832422282335121144313032291790500058830011112151107563300318614211106548752338616245663591369587730841192609406042618282406774770816691658635039956728983333540210965368206881709367421309915527732981262648893328804447717601627783190171030583795366823518372993584546383536444066046169307780857591250878212700441513847567076198301818970149123570803611266145416659376189532017914917103503587369572979058529629455571243108598093759581313781326597976144315766797549783851553313273841004033569758941528605036808851225538535710500911693156962755530994214251526045282115746899008200834035973813542942039537733368176357174832267642853596554432470918897270667412262453186712653461182711300977022370807793458548614628779939209622418621839253577757173024007423216018877858962393526425179453208975973685012935842339367374213386889873095571877719316390222810715298186901527972068506887872356396146547622911213824940598566737951707084698220636802708818757829661806410425274527731540569395745562195626392880664093832271559210959458587376696870052597449000253333538898697758080627306516570485652216856147291990155379516290401813932587573651339168936084386287764376746018902805313944339908828255768138817945846727257099705476822822002246138521752269697088186051018764412577724631848988583076106697612278553954459289756703113823741675550960632316689038440617544544451904895066593300724755573834799448829191839557661218464840958802591021352480810777940541222010458580478690196368196377296732338408206887686352855122928929122789794434292758197191623471452501984985097394112434075138206920896017453904316151532696389490600774285266538254321464630110890968873665234960804340741997849768668296944105036945873038736168664192774693688699026759297634511864909514265540620635952817350141155201280202819931414037135014430369935263710026070523951566524800838866487446048958083075722201307622556344496112795903391489574830650628692081260132461990273838241174606742190782122817136341569732477214817382436032866145828573315179941584690167743701297413363141082926283522293632897845567359923254560385366844657961091265802669163447396624658573554103312717544482408646535187992978795264712860079842433118608616519906066560721451574571265691368971742447638046400303381688684556962890735102063995778106495661902264058754797679185559768104369632910570862699789902808909043370751452882732808981460562588492644806905147794057235196978349219595867685372073423590696804251948625170076793619265004286399848730566384767094871969705531696098181931762427002937638535922315723838076028324364577503917343850429005335451754433181425117969644787697451550295273890911767257508182802957667355254518371408344619890310196565057642741433996367766653035511653237717712497439450802351758175952577299146977161441983935391390456861755715697162714830865082346106397551349846333870677363147710014983898109189919977354396149261990891025898075210798461459836980915701698680207577521418393164612224703777062182593353752158691754540762205523959787472415605617888892350841243008589996090888823734400492908166367874146652146072145091052138328924059746661570613155425182843351189885912117947257514760632189153132748433447340238267472931134722777343037696549171783751373533292656677979251237041382001951509814978401545169262168055865467835948727339338861606369704680037510946590555558326513291846873157229578402618278616923245041212165473733295875490690117464386364271689338722722093065933587646969528242395724527443330417738408202019190408088975887850419715345668211446147246518512733546280889636846049903268496780256607504315975536356876719934227903270753391928040575600883144694026747879922464378869859484052798846097444071093367081073317851850824822370085280904850157166245420744691493214850698892405585401774423736164730758129215298181306426793235643738773454775504429466178499830157496195749014203555998687969612452009651660786488349294433682440264746753538787891306040787812626988143288712434979244757566455158159520421638434666722359834277949639910732318905667373019731079649928033862466538845164313033278743004795287858346564079485110035175608352663595357211623874543455104808599865953069238695867219252230214292243481760467266446177257537909645065601499001387821829644379299741608751843714154200821225424811198239461937250999920724065915926014938967898027314513778572074408492779667722098625846121926110658356669726601277913469546508218682732470361933980617226645395603331333384225873862224917398958373341981485751307928835106756913900999733014549460794594468944321440280045501728648302949633165268788015098829566323222268747879170180414415124985291528838010061141215414913657601178728670263725017677771501704109430203767867200111695654971637995199653645910082426010788465074753738502098045733612016306868905916947032904586927347725053925456959539472197216317904753949157179399325983776212761885259489307442558346610465950287126498160453054080745451288041369281300872684953382001874384312169761368785391769995334025944365590127125928216426627055211809011243208605996187619571047550309308132886276077572168640900733348779731887708269473870504940234586215637627293789567573845451249732698503630032916416496614637070445297452398071466776034298958461370908561159391557830580890227418522835948482035264658989513769976076821470504020738976810044333462735073578798344078811270004760573967244052053318028784826991400330745569110614696405793912734678868554171517414596628366190317447748958522169245998792487090316062820954043781712800738050726572014996983885509579006787619610478370981575012408255490852759378414047095720460317662595172373341631574661126409299999974661983169093174146882807935974751028821815168595752953408943331786185006544822133412866671621425665115335381776158516996783648768753615716404468570047335673171266243245393643368146854796324270228954389872322097070285517907999592724786309233797717732597398111029920759319114361059329945053440536297035283430269009936574185547951398460803297335585222076294846434650591854394327016662555644050672740349877496410142704976168955905647059080609886323268365802265767740380148008629920933374061279163968572777376006177964169264860558374572415088130648656733319702129741915835860154548946146284851930709984089464262749845227928620780353994970826474262983041157983747236415914270989239348971904775603941399027091512699621174155623753250250733070766127090000310546893197030484706036441485599550885429395926949919116363354642180802750785792926299568944519725478980448934007249510391885226957866421137394729650452989692108833928143585308717810670936238674019858062379741260643919118031299073369890582382409625778790509963774232559589818494245292389377179617699568297921386615263935695596721983500549904898353911781677885044496810984848876730103484858324650096001206115096136314730405264843453230352031954880796701642943234712552183391339065628585045979967599020159516044460531522396962692619911325900795988620271262310118806410867620138850808297416574549292945731685012106149949746166210816892212698813982850819038565601816354593223408453608788913573810459359409986746926998254589178709733667775418682696903497359520965156682419979245939728263209245118184554517605355629594601833813523954316842046758624208944382496534976058245728144682943663939320568889780628289341831861744668150550224249290921188223033647287743541743708183662573968267291402898632091758700100330661386210606823982364400889184675668013778302344839622794573020945080600401029851726568620808390025723853848328288164575679369499181141008639325298257301272306729226403382171338212411360053830312005475771006867877955886814927283971582780561492658156289658000144681027331833384773497404135771284989893173453227773118435258537153586060394489090133602530582482182190538865288786512160953538860811431381785076988240891027889541621856866683949692201871474369841615962231189744990505693272560319827144699778335248852726678156510343418842303445716958620993387483933444859665191930105767130326517479038312571452688979356777402253687922356647525730271319339190421630666482035250279456495461196340558220719060572572673955461246955970536333649297663118556744125087287263621966667315184463840349337442619652574765404437129031658974202925008509816329636445907707335476329715263434361610972946185159224459381700888016335643165224667578955739732881532494072046248133787265804122144063041163206598698203234361368190860786394858396494658365169456572904912073621607904681168385790918642646708403833052540830298945840249666103894343238484285701280328834830883466890902693303089905782674269732478459468248732374559110666338434312548367036693760731113586831842073435069214410373334054998769342946109159606827202475744047491193770032933913156111600310118471011783323367483748954183438370776618000991793493048469792179873286879885728228202506004571239384755097930090011621055361921087222995063286548174785032768025220896869632871383398821734426153933881395389330785061229076641372260266928889579363296617008362404429781690065346807534873751662968912410966226771419915528107974365142292497805511418077993735017489966460197561166389794251334246991735635555395086194955693179901234058268803639208561248563232562070080107284473808437578163862642324904059479508109859130937945955544143459746704798744724704327349447964375490022083613943187100733107647642672900353194108674283262440534252153945159812435046118296752330978769681355083281953832677614034389011513465517461390759400273446636824759379185955039913128703296384305801477897477473557078950375819052651277407405876218429534287146882065214012983597347781642079448493063737829114825209734551193933635229455694041699786205305654971707183855543392016904107625219942971735727094392505458786558388290299572272156823069995665312076446870369793644453008451656077442840612154650933937045380066664243551387660517694188741451480707312495477248241247510536726467297203000691300255137255436169756239036551029032068760218621480793436622849215981528268358423546286878558002490153123180455522441059260453315140102238014572301576197246367725210378625325112125645294803901240163443045452677827125932828023418108911966905903224398544865892758307332243151318357350185750417512024378101713883217083322385270579002384061884553821746855973075738003451812170505763282350677812522744096819146187325294856085374682296993735601729007979584403561718145104541150909327290736597635908589312046817736956791947816940699843130132631724883240792781418733483532799303461692513568142904871533588728995475875395631510064308153058262494128248810236493748566682776893645451278696130586717081564032813791448339490321617279019533657776276522808464960816328623452452602583950747345415477151911097518207743547680489485886974306525894682236998258585667300347949390781860723967293698499954263041235140438181491822257839275705368120148193527907689016752984213992675656494520130269576497565754462320920408792873456089267939668053627535770131508072851497169855689356605980462643085857693506183830668770415982609029571954252480003201043640135196005666387589729355428051183902650162463074472330610303688661506505099863399137160144001199432506893288280136391024052107596526362829891542238225884697787617718429357178608992882096306983814340742814316575685423862524885539264171440779436643490975662552068854514455918802589788722180425062626407532938285423999160856541541743451083572669369433337474164638867994411558336813541842286536556143623035208253916610524507563621722669900238189687777962406953923029268564173767435916059093452576105442510789092822319871414573834725205882647067876572880073035353499006528335881875202156045929750390204236160876575518001509327662574744070932631381737646637019288916683302138336042994350638335554050632498462197267497910329177770186519844455300569588488996151823801008099976300817019743759287585766125212844525802733871399652477160256509784025054928331864760948706209868310533711537438715042238994217376741894755305559471579937264355844491263537681756736405724240117340291312097741012399066049181473166253611149107870995992629704595278137641769734524092310538821129818977766087514005871255672683814960681436141917786678294370619712562948322980455393547238055424752931902069233046509541269766502380011520914236368569166075217315637870936172815093308074581799565843426809090425965061035267021502613540503967460863466176663821684690312709292439123196314280927900920724209061290093927959492133214774033835474833489746512620669499311237839274098384683741074281365157386944858575775858117842137969483347928571229845219124169033420285241801171617304610901246984185451894871457289599645497315913851131432764603188115770467136611818669607866138342612097037743546914650818069771640330796925537292211527587614138234921288042408348868812554103939328369035845246293420671061962875498814534224487357413721165136647791425677945094905948450831268112134596785938106524067291034881015647540351549351049588235327542743807320532188028269505610849042891597612402090646680016024386226893338083131676003678405843262471234105539941416143098524059048985632587146783098814766272706743331353762931152074107304332674122478542458271216280821386270876449151224578912536583745294722626140123096703966433022017510710654545711696887402868783562576465525667016225392392301539446190674441779653471439309720161274183041241704189161498158251552967817421437312873974846856687771764416109267728069994718162121138767017568793906363205687624449019624902747173446527578502145153360071752220509354783164320227339635935474638065279402271550850092099423434754685611820846144530643256318813800871227217235995448986757808386420157545780153882490748990521598212365640579713565842657216303542432321202301014213292653682753733772290314332762455680090685209807952884882496978147904151702494382681767260534676108283454689040614623813113237479189780103587479177633577315031803374035871548387309513890099602063012949029630621843787445891885965961207155242506208600370989412594519610130755301844989801983643967272821861451167136008308293158257025873638463000782710099695009082902187773843917390572274648409240736452738610074553426226860253795384714298110909743542833936419365305209208880147358785242761353885611268136358451633212335537576482130830763902431726558861175742813568985481540935528250077513052272954145290782940466846065241517427464919100897926366011620232004951481658283152855444480150502450153430682437103424766916059456541302896176105743527345573168927263430691429989643370161729008222089978606427344218866737584069638119564833218632289528172550139743684003656481971542976256333478709675840476122602835793592218746744632689729272205803675015706966498680333878078278344562336218677257161204549244157691817173779085902785423830563298023231487818721832409474840126757328181112177080369871422058204439544437094914497892723364266884449657410992986168842442482180516854775583354210295530534666429538893105641877605641097183942397520766713876870799738909007759583517699291719497274936227372429677444281281725142831513155550855605208550555740802591745144129079107502911647068874285235106572293518822230434691745035333267974125765289209011057532821766595735817341696196498060012259860613992447758378787178190934712756263001508789719906122233124341862700894189832949957234099683089338641387346817211333907645847364932445435917492702520490882681452608374534051661746990857535675792219500153693575421313133841782316443641232697265148438407708511851405762400770477616806101410296705135730025155904452462848935074231840962966700417334873715312523078360968400176454342823377385466443831405952819416006257854395330938113507089984390588790318871635125700396534082740782550989421235769751636352777149493732321696491196136416424705599695838770675862223525631073068443903424792892247939729813700135591822312258749489317927941269024364970486013482274593453937068488660943138806780675544239843739249172119564165553845740923997458482581164483832150696231472068575793678011954353730004657016063960291428785069638966729716267965564749623837884488822326405582135189120274565879509642518168185949121642267249144311264833200785095227426474060762332093604940596618087007589544755909933745590996351362391465581862079491840823371371080816308072258372991919335845487244701986428114243365770161303835467844756784934531433379442196281061044023790385587416543021117209253704295831261462518551869572511972243496307045968197959771022786248045475240175874524989155682867759553580197472500391309865408278972622691799405468304003077318901550817307334190577890212186086385738570513868563239035264396067369528943669336413888425186143512986959723349219983505668318419226989745724566179667035096177052196077094279338580335523987262363118008087400516927572487997612157326447639063681693574571999293229602953141857670192082519425014043790462060940480420163984972452196868257955757974010701775523936506611396962088134495548456566061248537578717405433603006411360077589422676914260393735840295922937372380526410829493951631246903852747259010041430105800763237837270877202715624216453103830106521385434763035585477017046661385955100574783805952455224306838342078519992371542710544233351086150194179609822014829309422961127520582718564953338852202416171335742707026053725545949334412937677136080570317954901708354678646532968900745569999314400474025171493219254189681455247498351796624861856769774868862311076496587371111349289491642933884436164964201605196627082527373213634073181806737857504074423343996605952328661449483245077961823515456421608392231435528761219997243309526986801767470951697927506046965884605792458087561335491194823232861883540420018389445128296666518584389742618767139335307270766907768605418542629880307473543877492654085629133360160883782638525947268295177162091623024483463589150974822009836508702344687918554041458176058357153069531260484122915950477254890039057626240730484420761732217703437294953735484718420187852147104168818087051094446043406492489859273954819732887036724964661985183381959898817489431276961732259309053611973189149594500117470436297591577679399021185239717494050105388100600304130266424392358781052593865257054860205920678264018556546421097357827544410516322547474362337547155732637946455401767997840665154047354755380722201017148299352636310932383172994178132120259106556458970303978208084244551284448424087281314872183241820970998479891538809155227553330977524562429875089984079032322639019483779609304068913708631751980156856307855907493086872201765259150774968034066985454646707583269933793376868529070751957523205222398832011611891888229130510323003148035982121320256965800285611081808481095413018974908914191380429162754369711988560888994761356296146056138167032213077505811166423971440513477395116026560595814338886784638405027815770862830547591952064744198055979655215700019394939382145169577180669809163290762342274409504395659727108959526204680963905431461656737513268051147072490150630252148884482029349589509810722872904638000523925606259282463118494828407229810148693461124653214842542583856152757477774409763212408407610122859307763085109743595013464694027830154370951202893251009558155074016362044605829611854227273916935698630313995231588072550131385882184419491026343833873996723713224263188209345639343177248738032563877430829960738458514245912326909509802996363632627220873194646324868022393352747783753959285307059411933960798762223189648678909969151806225571213253959103680769100695768427455076980870100017102618892154754015359656806450235954570245058983881434724689721222485673095022141687338313195660927459040485954455925896110686028777052363394759142458125533712355989756529131132990523765850289084784557180931743157607875736561844201887576306436243819237928637596388062888171084569296695651599722440989197540463524045615721273965302693233444521082829514398637595072566471966006358024507777312314953574762493834942850872489241981560495683512524713628272214057938642078606034445852529497259023032292319292955615932512150843005307547343280616123162420144322191714475847486541091404153706171679119351068901505504483704639673486640507937199368699048801395901458850605812761807466153751663271442761757327861002086455123009354287825014792921995653408220374652279632856029464729601574880462120588543750226068673955628470186989184798900630467734525366706969249337997899233626770832427484526072025619065628495773653225852310197179333630008910857417936255295252170796826861645406537383549842444754191204534954505624274106970402978326627532305465071864735858440291373817056903967813361878490618508541809363208699183034825235916544214489947689162524505836194100505530753178692605957489916467089660629876876792088726890816450426038081047105686218884862952483254939329945300573986179869487256457376602277882420160316370359416601242843205875554630883359362257318635191233006333657149173067011171280153026635715523501149644948236916645439975476796346546693389464807999152362773493808988093362070141568857476233223892030595542145119111698845919197678277285320724448913810169894318818027918953522125043461939969837348601426424722249733345362888403515272819847103841052383254398670173416453776357915504017698202303687500691188665458217983550572669620785368142403424351830065844003396407706678420750470668159733994159832676721373213687823278571340295550693018764508248639159302758492410851516099362381284387291515776026851239818993835249426828887987267922427063544178799965572857676336497322770562218482623162941099996179703705549553369917511560821787713564922723865327022929439871283219229310823318955269224620004195210168310386381913332855980041130725747275928365035867208295871492246706089077953277939619281372001446993476793929048804051946985266632844775887438786473576756500672319963760356968216829705295065573442924432725798716662710750132258700326044577366351523526059819341805418470577030856664038223233875273657430699166922128692576590001455112392717314739731988914676670919619492063442328740363740808324420647642857682558910246324537127772432232139234366349831523301636552504821755420878145787511394136961955824718921716162148695026775758739841022230066340995388425926961516407619633089356826132615774304247681238699424783608828187281026305117764926651875312971698461356682489951316251193320663655709238085944696201276195442990110270634937938908271179718129245987517209246859581805002788391634199587426522901594924699769734628312408492652593931872516349524477531428197860855973898894603147842479293150422458069499903771082231216662871114183277822460777521549330618911983654125188078285241147749999122800313616533795483491459007657336989045169428783433581062567614868354293645121795665019655835280331204483694558509559500505046247056424279281840367349569144519850096685850524188483032209419001193818390995466838693801030584395833136474772971435566448798249019613267377174828561581536196207303184305882485832544566597173561160930943926979249319875391583765862586895533298326578527306057299920119970631972973973868985781503686572258448770063820475286834041776583372537207742134171284344563426182041723863065814295007230106324891037717698362180923482413231726368152941103106741205732904079513198337019632926336334489076640953561840822082317833560454454076496591548214034125411829902269220583157925395112487809643987061469823832634645049624306665124343037934782527506508438407165301976612024167502819665292715891349017117977671039561075156859998138269811319450756163929983444275394975896411281385294773061025464477576967205293564732374370303371384977724980970860314759813498146063689689884030590070326702155389737502110330886485094087269553045931023364946678178645153608561122504493123204665766174976995091632614928544008326416342747920867051966556205953893101134200043509766566617742087708170812698850481065142231906194864117077606202758303650799016900353970961621923027995489264198766357096089385758984971370415970310103066317966943009920224758085800424266129370509556720482167495217826245297133757090445972187269427363686406587475991686706583295021035267286663549796098711916778157730505520515319449718519648600024459900386599750317368967465727208382183480768083551308935915366286929394260124593675389253333054733744975086735985546058123405996819510591876123658976848266711526304113876831094357006151153638386357905603420076342768473547103728994550455282883230746533825057369396962451304133705003163212310151480097412542794670138263909399355925215526789663466687454102194314541689977110696931213931997598389180511786039657102235518013673872470742423575500622507959224827968219293092619802180608283368793255808522907382042977681470844276038702725787861978840332064415211788254438808181353343099285085752124204268970205200430618222412646577596817291170369493669344787994129706995974400716099457278332154981310188386026963246864438138695320020456895309545853081601363184823625554598488624822652124667224481850755279861443231038606007615336257412259683157842037646954939852156008813333451726107697616669746141809355179589096673314055700087364623321877853644276509736275054490781776258262541477479435532322269557385177666347941131040684624877758710545221042264506595995113859141673533341791735315608431455894714966269999038992038880734716713000422825339069328405640964658884093655623782775056760162051322885663107511974573297847892742088656759822120275132855142061821021537864237344493151336056559299331009292912538701976097661202563248205453132428918871125845075399779747340299124085985883394322400053266796767773468766974224050108512851142206195610466419816632293987999252696728146739823748316314515073438399748551183667925771155155844878238904670422084383075228123223815759712002860657097191421899755895159064463907967474324328610196326711491743457743261507652720889789663661840081980545893792564035012366384062559482130427655414153614065410495743640895167414225041246398724594295048806686629205778092578430553159556292022013823474146588754099387385814216984744759873087507224360023117269432062758282373953011224361674514358004800895167797518308446526109290058180572651018170430019000338638854236986039516025369228484823780320927825128452127648684911678569302185042977445092193243240681772670428960314859462636312807916284058006753192351689335414486167094727504892282316687074005263402558066209362144844763783727852913391318364486267524065585384178350913826896934360348132872463779235824919811890817266477664638019910240982953615463592457293805814793352728485035530641881976106178519347897960353827466316275257928723907209793114621025754006687637166767514957155479898916669076500975202710551459267919497957284901283385558605213984242670919904007037632601273503440189300231948502767881561034431230483180890625390022937168595486100161470141537318014597478659528496049473444635635717861012232553378533244933306303811089368103476851370901314643309683325757822864120089847781261564212632459786915392221054238295112522422648466098010257025165851085966577104046671402128666914849197097672544577422196781165896739674020633242836372007639583900426744424412367835495868778463121951502466862923399003136860951518483111998533323856513765176688861246044323453840953983413409356629326123035043393754810534089958191044423892752451349003225010138275022014709701253777266706029473141934751446152276679887574322901570413021908188080987869365703552150159001053822180315288798850389285139326556885626787143779534773615337026934281931441432156550358907863517515238776160371862900968539224729105673226047347011018848026524753640924162032610477729332872888888112437264402476890729054336510889937063108627085461906791117664200604545463304028797389310637590535010550986490437411712201352518575360225210529056874748642958925598474414279440849306921398611900675253674684017356394003661918257557294099000979074264951080921815466578760658785475913762495484853767463002457404993407105802221730612087254232553436728582366073520667226154652958787045902636001818180724827264848807233441061221802065913485465131536004393641931507619866980608553450919445344950721191803696789591960359485247464897975404412585602036355625387227065122964869365411077435546200274374401866959831194326291526741247366498254687368572116683377210655877428224006062032367933704065439625306487216511044240349658400133786554678294345823248403397537356167956703518926153519193986719634817542632749195307577062490163616314980965406805968423290480088024237288823692413004319780019620754692782719432139584466029893826096713655308303653777052975722426376756922141242026486561681600937259075457144511910105517078680708028068005468308840257867605333071251039300665294859029980301861491602903880168961807984918874527175971397023018216932700316950963108135506700303855631502763306411717393082130879888585453254770199605549036736256946062768630358990171553317391313971169736134755356643212517225219838395522509093591605014852242836672109214322213957062633173480505330959742222763273928860654309407780545246092785781583518974857732929307748172203826495557086839685608831425123039123809365787276196388674088578011472095164374605250710243046739892384129159401145442436655155438848521848093627869616031144079998031607654038645770471965243951597931238958128104884086018235842515950450753445302038317214708167737055495014229285000629122777191111352073731441331943215120840593676565439223539563663645521230183423287004941401497215449253875666191574319782362047470293314125746283576151153978714986476618820798070511706678999291953962673627058757874527976571019886913833079507097524210177151595106673622681206677497157429913611972098012203571698947042593893069442011497326330570515912996642170763822691450417102939659511745123367125284704459694045097365448103762590854564557829141860396599921521381457932787554966610722870435055257339914466850949547430665263758139917253704968867840490702300327792268460528940290802158693023870131224875550652579433243731448647318602667826824319687008221669608809664964177331374920038408294420683627634922985023068425782621825861511288620349148525324324763605130290913552659151170391644320799285844919883880113213754320545290793471188445021853976456442239705087315308274477846395639984677259622576060486246097499950943137222810736452768277858935545413298321162783181134887356796764846006029803414656816960915255242189880776018558405926037638408578963380752727613929526824132218782599889183625521850923859698736062158131002284505303152162109953149940846280968919714160844216004685046774361513916163634401878191762644169743861265931957715973822771058054924179000013288921871934570154733397817318101616914775235528386664058808727937633522862788653609858921355896971361038876225341429349536400002681459643137167881744843504147255831340765956404372778251074859132351960292652721250373084127541847787691003598968397709834872018035404913830585160778271488752738644586789192835715704944556018426409709055894476866802738077219736085004586498890402241784513971398573929440657838798166832955435185059709953993239134819944350700647606742017726609685355947112360022935241580536819304737220262905673836092385610934775832655521068316421210445335726741816278719484621212305691558450727007515608367531936923813871114556114177843653502279265561219020007602576947719302466061226949208528481768301718580660981634329951393899537261467544761744788404893371960617672378094538207683249877464999502177580273316024969553552125248020098432687424435063690975221506272877061636228617253356977129280779780332051449053895353903471212700561096811121766549289238691788611729043599892405795317138824510071335174366524668417261562927196362512468739724855634565728132450190255275754345349636495638605259778079159711066980631171552095164449968012743262122655175385731459538993341139890300708440892770717941798738710979601260248548566292219347625747099927594616501557865684312920027638814405590475225449422055082707208884514463203296068883525476110813996957806984502676713023871450502997335217204621727267245638365877044215059562273889057935641637653922293879860910258576195982238381685725170107442596104555071295514801091680138856515790130765554321648904743586793789351874285560830936574879695396860065697058138290135386641498381285681152416418837512524783682784378396664397245347258883315092346891591854820404250753267904396857897779263348894608121414178897150091375497052558827093501233249627223171812044800101194400347456979427842548375126386831099393483413832821925104664342742178612002616705708571680956489501311047600800635133638179124570785176497593107853206404215709472575271945807225776237127266579479735629163718488986798322704895188587167048432987673157159178415671528689894326840714009945996883846055694442458661967301568437523597083707990278901923497999107670083801129690174461273366308628664359754278499773501410815338288106959781454199543781558327695395218350687065308800227856833819628862739258003373944708603335660164479991900756761733499287760950808090215790588952613556099224541993831878713779411061050879412548526349328769486454819158366599351070753528444739187079180443610707905573026553727827581896675473138709396371564476756309768834210973783182338661363592933951402603553646532934521989804111753472526956626431819624728461457332691997596145017818729154775676877110658649061750514326344919598253866293473166111324604399813790713813718269923379295586599425344091983146048031199427379456962955513446735871386310924061036701420562954837075798594285241488689616002333886359056115635812374164738351942910054354467192729248540476061236735510570404246747515290395480307519005274312787304735150268634101896577967938621196866744970392595740770861057009828067440340721173870294767453287070582048593148550112091077801099491454820814233749851810004553446314105752167110994899420209373143404385620981945521772427417334913846115803348909298153808821452243792102798310829076196315070931400055112343182700031473276882884937966918949168411187006115938749526733752443863016855636566150697414194106353653301528296529250590993911815779963851887103381578839124172116514205184100664717540239936162712178175505056301975356717574825641082946476021609640943228530264922514198385285030344167098041241546078183658822404732902595724434300364062430329550018202503102965134809017367772345575019345370372614095367960171328418146761588938823786848990763747409537524585569569002685960275021821492559997538650744827905950799398987378156988080071050564996501335501961327049597009916101599641683271384162232399640586190130561665951919409780149623167217107663472411582492810828582631984391944087271786474825521586563046159698602695241318768249781974162196181835208570171462092811011275534248616342730602193329911113321447161306681334760117338280290858546509243078607382315043956299326183166144752725859993535136494330843194888620528614223104483447206142383748787086925429248668135957700549616041641175969643361710433822157796877280347212034561866130852528159959500324917554316151444630788798459269237962202657869750243214188474232550197592342172279013591506192590126417847656891860171011634050872765235422966535764788147684733091611849691036841095856023215414490571383901073773148347295291929579510323791657896650194273643510448406883880771104068593638328666971658288869802226569753053449412506610684216962572034700970686589158386931378364953209047593259362674687437346989078110133442444644142471250784077769299858177892290757530123858077546953628360767707771149829500432195332831712736060961388141482877364949634358345632360897370161886818215525094863367746030175447593735433772608181894945297097938356234009622553254179251116287961664304694724026372896704814389163613191519111847355386622794886460759352228316062100902265745887072172238571397663219955382702702357155082353079818682264880835662311264796632577545876468761569274836097380052059078072814523844471517882439336665635307558707923956252018534862975408312538851339402788008042427920305537555876807412472610898923843815885902227855534219851106950340694884130893952361994519489221748548948882688765595924579066004734787445465124512427172021670438533976949112973894053458621756183381584098723002587073753118249917175157415962925987830110383324406507408032221288075246146039177091743819157502592091640394967546561574897141589722313743144422180327119827686598684860478559296105640379509628761189623781337440844685721819817516724070792855831117155678066731988188161616960807632211618297875789308749974646569975333432905383013798006767737862612569173594957621009320437849052533429764108432611927641014985002658648300267456792087558969141710057654928213520342148488557276438456958395754407895896612369353986260609163726723223936870192375416660458612100298278382731841789912057454607789022722732418554424621973473445461510444874648124725678587341405283469698758041359230316415129581096141658297830188368558120977756099134981420961771431026516621157192594639278100178614001789021214397380045202004390077894973880259289934160582080081359824292363780676515827785664710428892930856168515932762880073767083099111373376661114640938761377191282429729707584763791556782273197441068893163027208348633886694113860172168744693218104788411233496863078651445969828637201668598114446495586462884766850964628270337028283752896891288883458176215790937011446065362669237033777104995665179353601310143663183892175574459978756051599814879370531357015139203687380642552890477284082396776242396763505234709505014797449311250961500787036114358736937597902244257583744086285646112327039708087547453685647839022671199705089711977596026474416325751970926357674111072824417251055674379876582763994160074012022509038550060982416407840789185324451345391860475785513720125398706180187065088334729916554926057960803978878606331371773222404130440925998032086203479280678471596159934647141389321997065453289838524245542104430327575259275725104037248069779276688923555705960036412699584324292932659143893985054874443614953218231917402870843661190491430420647696305364112357708057008550208555148366882970379191415902843199311613107800077674503577196708524328177404160582048901917849378337715164979511026105902222126148118622371370302899387024006314532868439267299230945264005095558334708787668011127332297289214585716528153216504536053094930957738631315509135355588806944592766683966309841662608059477091624099979391310774929279962370993274970186054934002256923330550477702197849171086837291318231524038332674566887869569722818269252563892395624019181244916311652175390695036620885305240403432918924835434665829895890571150540717373207999122006961847108567419290460857242157415991466335734967066448127585565823800059535108806014449506989263547184430569436895063411799168032394059717992610194069551875286704197899993105216702816543443530863962893913839786685642477613407024802019542841194500427554365540587153779883407774374241238642283076304834864712919810655434282254643429357787089459958293467412392347945728310167475006120195136699853928790348797930030907825882871465404443011116085959349000636962880118361431733819650385457983062778325822125025989528987199608145846953704775936446027013235296245409428529704950893006544257975885794487837112606788117824558320192247462557688073388169695550895983302284080215704056192852049258018599410563097027210979848270696756749670796769725607571513997002407663407739221237706133018998502471285628662999335922670067675782243839537819032029291243235669349713908689787484692093672340634832461510026765380345803417841800062964529075236470368601862469396718708281026233965268537998339508723594699830900424844656163990042607195450460670731378525145505082125178654996772244332511397514430088813441528313837146074492044611501575611038570929423763166852965004180658381227311652102540798126432288067912408701553396183675161575255794841066574350402817058625235293807791680580648205233300221431581612929401382397680848469390899517255625712730955554334101902803225178197282765914199356129882464367353754377762996715396092577532330342860687929227767306303909470437237141360975217654977872564289000365570284778353465735459927045851771175604827209404385136082427482606866583470975600268227727199103799073932547351155342939736326003919516628852617326941184271647270403507528083101617143653309072853550167539106812783871938130963726900323400334746253197008855498219274898915624617363478077898719261659184176622072160158622680386204950078014747769194882124997285525604156879930014707561666513435971072773171638272252272582646265724323729968039522114798719610264107104788546195878838256898684039365694517631204941501167705269015563431363780053709171770842454024110661224416419120901588220283023367155206993193016283556028737922681869740645128876879904107349074317566369600072086468964214440268573482335343770845271091429509027639779495311147531093361837183800844270029494321098878936699632448269308230085498486387836159943592292623355344064692005229823572161847336638321810522477035037697273359173975743957644094769979507192379124331810638627097544712524158073515527960184535316536470593189770924827884846521138412692934852935737486568590053058751672092486571690943169909937893087531720840496872116356527087827384779568956552603613819333815775613708775854336088503262428906303418027757184001978480485920621087657326639007938738015642433248974373000108666949973619099346819392638324404911754301390014312725773816802035731788131534442266441077784753988457963124852424426880134379685865810813997387104248970148761081655635397167535820518714259440281429036368124793591552044012012773250983356928151189144218208135451838484540700763125535676398460296109028593501807008134206818698681506094903495720104802412698795042563329245292440084899142694908613561702224383514356142721128698333512323457937989541634074839256496552410576153138456517774141081430746659722165303082324933968691141819954855922721534358106227273543478133590890617290554785044824068582612237048519891248460777844854293005388821101879945933603164581445217275632218261773318824866529069904391671109442202933206236989654342606311211521494194913375365020795911981499212557941779528634684135420931148466109048651554313396915246128299263215026317062713639715602741206951581686752393124833982954045161636824858222973157790696176921311494095925513715609051731785942996570288029071629050348511105552554963695644958284021393997978472607944965625773605108651171479499679640684008305254526868997842520961987835718341967313789100339149745352281667768235283790647388349947343982143305475075744618680302553261209344835127282882346388064930313954138575743341911254043131483627816421335421571086737287883436474536642042741336748397767632676217847709636947020263886085562667303047249218508149368074204861432957964794591195680321062048131266715897908759698132016873886542599551154918040592059039626458653986653721423462249549594587887751163794472897923679663001753600932514638829525228067326159001667611532293693481001822368645006224129102991037391687247898524516467956767350921598731974776579260685290204413916434806607433557730653926143558551410782514140103011412796369339214240903300547425267305813551339769039189926815759670978075979409915687508829060987492388450496706300918546551307128185645779108427942128878302271904243789942916846304636578685723057583041762733483809015128078321158135377311753628180192238104675348990424080433098518917197136348628007096849786033322618148575014918556375242629598884054681325739795861901769015128184290311667044455261865550354253567011766814750537138784992636793548258310669236625152521959279094682449298423195803556693997832388633802181791372580046464779627409157161714694173464237889506518773258819033612448801537383282874264943610707189681478239305504354870466424124558515588617686907561549901394870820900060709443842100444310239531322884161267800200702506537048913081593017463909957537566744084995500041739810301498686791631218286663048448251911542710459589867971261676549066341998245839819321535455325143220959336435296826589765674410946971947620816178047971729490673830442217975500230598378867121497307114571436255754919498801260138948989916380536767361739184436545863215273453475296351547034793831268372037260825167127898162883126733269240058283839334085855723677409335555489656878051852736960289455761608153735384131843424540574145799339465397126608331515959175066990433698798993848829690858319957190111923340361097148194675713982178208422530312246705767523789749070095314747334346725967904942033101175337901023483817475359438933397414483881161627252448612069840283140746905751518180768313128061567211977368212433752634220888577075744870477284770872947483123836523530728350473818752772350497237043295842408827171838523183274574438987552486148274510889141747145672061697885669737638732158633338302768725515094125498685471340053341791609627103879052917373036900280560049611674139946704209308638546134280045096936885942875039663384121088111520107181298942631615013518839290283983403066672698534062001078151877753874724604963959629747902240015564184048462432990040584094721871430921402871406158383018754160654302560362583333549374027978802371870502124856451146611460775168533228469160118082472974160064846056697398184999767716353873480164750600220636012359045222029688924090263795532105808431708503728025253343462715808746796907685332619640511534426445798871411758744921745727423333465984878381373192530494492641981441667436336161624958541053096019483278275906186329513496230174518259870059060985131440120237877725424831555972701399830595556694640639041971055947679130602266470314493255218967738725565872605744615942993299985352994145621907066647208651628162884021453594968265540888104153667991270978296807883744269325371184762840266966387785882785974263457486972759254766114643563810855617197320340707332473782888602468441434436301656989460988387582003538941575640207561359764966642498025985624670809378772029236261637990501360133135489290816441273043240872157989360428911610600775341143006648045039393074817583593091936457440526111058820905483743502146806150295875684037633122839063966196914352983930505017501168715069598838836827275030377483851384306001064537216454590446879339714594642232604943092765057471115102668863088535459340635219600833904160995675788075207730325577771319053697887181027887979898970478863679591530582996402042409830025517493840421484798143940476239050093713704227476702286285712001189769804244798138264063969847745912721038353294908735350290952524847345169526297614051800085888903925233269727036792347706917836800053109184748597598105934473413752792930297471635983866669711754666757543204957722746952614154549703197345848414248533414735547091429562190836101962945039157325399059314126033681525127875950513898302076125014244754523744990657956759989579548820266151243049351036900938824914267367257905375012689945608318542708852643797892291990666498511754486405656896939341029292165714465307098278808952913814820341050683617155817254781979778551898593310052283490601484268291944184430657308453825315873233577628721109547208962494397502501380218362347430911347144838196511496169411822697595074577728165445503814849593762226261027544856008066834636473170604040016548478041676666734786050675961477633094343269115415375604208524335772536866907020669965642862367509360449421897299891401852415969723285052354004153594526666324636647309499599320587844332723279849924025023017536291298278115250029438932416467696983371881322183912513918537427258895553136864028372584394272216649770367635024043319811216632389914904138239630388518389098537912716447212452439816963663526621109840645527305232855435572584086888181646882436876533671414884092393261251438482885389135336587132910850236033472178301575958480408531243221709714206322549382677618413754264459836766421375847049799301019907758639667427561657079228540643468389965910517886750780122493808412126586528137990375092171699849284434801213832520281975794890324765690277108304646230858101178725262906935945844252928193224380090322055746768333390436751347353311369828408792084851363015323989024365643997084263520886331575046722062301496093705335637003645346495313432651369813477002374978380275832952095679000540645480630323611910848813983773262877876551364578742031188843767039106844393033099466747223513349311059400508830182949710730087753774367616769269682549165050499481284839985957283535769267029538616091444610980954689431092360727194058685874277820112461830981181061035255992856380239960549642602890266297825775992236967695740373520102470967994554049704169713860892128324478399902978118806831174119029350711449937612634441709446823569276653745025158764783446413916558803875345921585282496375874670398628215811996769344259934442138498477449464096551017187127206104624787732577634508343987645986337687530305749560164424011050341716391384514052832974423522758676608574553189389651079215151358297182363334220058367627786825913962277877256018859741739211862171158502106621955417949092515639135332009389408288183944212974445690147598618659650214660500553675049082738669599359234417866400201428013244635767040931032137148610068556901420854175423825538262901934131464731735818050325766271180243017618723379625879423720092518998247417629880176001396616238788322811188175394580002201309440647858767948943034270580532420388164988746986944776954405459377128752822391628420505818677650309420537319292286228674540699243792389738435860007224280902474308123387263865631038299564219944989996603510753858115662650653320138260419034542297496894522310031530737897242596637933073294964447444593014260675318378554582741511347378607745872796647121797835779064426729517862336496867420942061612544776403737746261433097716867774421581669427879310786493388768114388477069893708882678812933965126790883628963133276565392292771473666748334639788678450816686910873717577905197245142132540230044191540728676728807721177151171767308787247886649006931720686020443655367813344091396865430909036954823633353474521737375567286055715481470584560408323156834294395037147446876258150057203507106621186013062311765543645929404603361180175512315276487633894637125383841051748995498112978151008876052950818205701727721463227389377994951026954572658490821580452179313699794898898027394005549431788729672740707720594968224864913268144190513457237690300733960820159873935234804540704664408039603516414655536206315489700568114713743697130345423712331881514727197604132309999482781661975435931187686207514246785942515550079436879245269843380226766557470950261165242281948396146261431994315265139112030033162467747068224235426567766466749730218293367980873809577488639420357401314432303465493475824485503600825159493025884593387060677553665522905671469303401594845030674153520294673083138101732815336039306690865929988589497438973018592512677276006419058935057803854169021881672477950416612261752751569806570913707604677017318818835703216057517635062969285837231156790532644413592076444197092632741098009631755674167768350957852023424902731416259407744625596293748117602189020958452505228282443631565969429523407266838743930016697047465382840477199375014489685993647645301218632055546969721080686976327513697752900169959157127538641603858407034810755910740648290340759149056050012876035857456474502166345745918175132248930243896911584730854672298186859670808182334000906979722868141434127931545218494937800907419323997078004885553311206651043959338610955704077024722117286876987920065436596381988016242878547850490485813731798033580826019311838735078985226998725218023494013820852396330846590346391320494292369071654834381207774369699386073465642141192838839516504418358501878628160352640718829000047624904656549890587644509496056685016464151075339533356447864553600505893157643028381804779534385465467600699754512688687340916217343335662001358825892938325851115780589188582634269973513127535645262197748577815938292750067030004489513498448868462669597446928109264772515142076370090497272281752900285681167528467263622779113903287927538795125291494881695199798365686004846354125298837341282569088278130113120852871625203488024277924703390898568502791424414028254172551764859363005950852479076615720207141254938266710026417490289719627957312978102495347578352048643205465414328536093478605406325655733431909417850724071920097952421692452622020107063378201640608790834491513534823173060962026322794524700336825612283091888597139031586321859341212178777271434439682258317397945446829582958721636392172878130246768033798938133799698519097877437439976803082883808996338553631137838562507582688830967805728474794180028963661649959761166079630883264026081140500059356040981836149461065420632490404127262752830592177331288044848417334455634450921279184670646428208751169798662328782230042551479313186197394349816506850668425043573407176519969106574675270206354614429116843963539758210681314496481788622921983295127290954096305140334670639035467784540564737607399912986894891035144312466311574861839729965975341108011560067594468085668770281667797247059596104291904123450185058955651865396584125623221650558756140917863715441478272123049544849583161766632972134925884493223832169762628958541366509021375873067649072047645677378430163148654663477268099230978187640059122875375224337981202528840005756951822549337108834895596350832297964599293603058916833546804403233982530366481653679767734859213776982475628364659050465675280507746444318988176110948398922777693150072763529718059380414353937716406356768512911046416612969847792566878645279464399400444080075669862800548682710650981281583062735149635938989530045780279669549980904226974181754163612554112587595173558847103523696732417623233285126823257504431511231265715906441201928352737138627017873732209938819103686627319267369898291115551889038545477634641455681879581407623527592868597534861815977287079166684433131696349187559134128998343335752917893808084627442178404981063089198691776443344606663831755530749632282477006654961332813247128451467246036270998696931051620024020535800684266756327618687130389943908001676563934111333365150088177949974337030399941297567632341679949444388075340951310389104719757841103209123997583001996925297045972574357149030500700238390318841592166736131230842653176117258386785947181052477467813764678194344198249038088348472249009808995535189409062205913705131537270331414947104659415093608522922580333282876248789376595311329272408976678770114738911545708780058284342503113706653942828412276688099673209088400930516942861574954549944890785799938757931373746432633930993341310541149017353094156434136491404113741771481555064298566742852785327668024120807155237274469186727526391915508766947768828574817379289993023211928573822492356128631371115045594415448117725354960259482310453776410600949664232283565620084304264425249242996227822661330074522595769902279745318059207105908383388801565226902601156523444693682231166414752937871064181978845433715734971828604710728756921438573120474966601672604054741783710436687621450584155289590972016155229529051869829635380888184621953891446681175539840265153959260392855272313981041740285089051117317219376853215819707186092165753324985291157952472892597363102924259923835945075697657885983835433338900610570834157559824670214690893874704937054704793202357575750449161927710035118832816582383510045985469993060778033776757421959334596620513724849973632036255980073113135368808566402202177865649008923203075999346368486051740044474641020613864525434334499744366983675824361346448377781614609892485139102066064233073848526306221207500159920367353121670671849171553578005628131511760631413017241369644907338054412227583349105413155511492850759034897790337309892249755140606567128534176345816975941530037986773925426751779768069845528685115388415500628544796582540472395024652218098161405640747844018067750210042178399463438349764071978735337954438251295749848308065195313332847852821056631058585527465266252555644844141458901659789540292755243839301537092511353468678316702203929460267523473939392930783363708366000026555523888470262262605547597195609585957244184376926385408091458937265412485473540663625108590651936696824498713732819992486320745275691006197661128335364445544203375356840965313968413593575017092364075108821609549284899435393684021560394511946378925970374894396174040807735157820392900807129150049854286756363883638240623869562577913778439270138628144228468257203435443252138578933923905938542714021185039404755896003994153875942149384914674566760704158474689166853482565207124071666346848673744812222709016668433774615372059177747892036399133653599487007004922923322095755110730499550488240363803739386784319950960579673007651360044438409905967158402401337614660948000452592071006472531088028643715669666503111393736615581545666666235358725976159280802644923955089545928027488283676467040957405703012233240430391794170224655572133022323096204179553918213975417215106383089069488426371103080179732852783942943127264110869534232629873560104005228206714991971206644957019329332848030757865904898105388043495734502058534515070210841343290240870782869167011955389093404755321856141070214188735508646773223026061741966539141353194074084280254672500482389129236870062051072719389532176367371347791265707634548431587427868048114741713878542474721132462529433566721452504528809706045143030241383547241978634918201132019741174926280277248369005700510362387319421831310854878734652952199071949097757151021517428166875032632202688333102877767617032190729325012190100047601727148692479789516971281443841841751613443183745129942227636876328643760165148352371545173826705435938046721442227887483599061004954223736940718621714869446091011501036019051142012249904495362819270967373668313531122416512341490315560478083685674258138465747525122659257626343711627187225496450239317754699588646330212530001710860605776330990841691630407035309419841148576633946834207626179403337642205579999084252666375364458189158373677205865464239325686209063003587536573043636313742878712061490708991583335770166452651113544894461601459538038034504088649430901214056114288126927854993841710606633641313249733968287518535487553315563482741519013374023061613882856173771208280225420213699200478181472215845922481511327663381165749860018421924493495440755114996687364557113429642826384187184492609169939477654004368396121795617622515681079524715472405358082679839799967996415530395829144844652070704803472844491653879195377696639107679493725314352430913948877241701866563314766293320330358554254084605277532902721924069334499336077583545050368609029944703927785951429297934222528447944519326822549463690937599430739262116526892962980844096135138596685059948679255961522846769785780161669460745663710901620380380136201198052079453173706495371098714494834859826128547238105695483662534521959942558771041513110203180311890230765625394133563111579333717297283503091138003511780623137080912906371868414312951253936336790761053423070148670034739052272204018485444561953354885449190600819341546293414116072891447171177008474510708660313851902681660081455102630388553323874886059077884922707663215688210960230766896829022631257040933578783133351620184787816880779354476413237116081041521882229098275588473380446055812381007193054494778358671720215958322267352637434664557386457673876101675936586470806436676662276818864525012828802399423185372628705217148205221949160373431979162204073884966173004064000692915155609594073582387358969968580641621270632798804484848494001481160023114084665574261283182693394352304675630282534405789564942515454233616328450697741836303018457977072803079906224193830496397392699639388269885431204869930563243856887856973315016427900819757364814046034892961379421969909288667654128052467420891541434107239530518240935595827183566875808213638176632200450208161945416544868733050367737304074412184152381691589323936625070745976032945692309872438548850226747316772310518293438694503278296401366206355724559732049701871438325168230748645623165132770948319243031528214264992916339711319197085972876196332601254407869423961158954636451837801432820611919458374105250770039239035734963222829288834268049598585921558454079850496202386007553668416644605740982940119825370383071197962257981365258799014505306918774631467212610711245979800082490192827284743190962031189157856687108249473216190377099685087460701211438559149786091288663263596323150614363901647019013733381567407238707324778134852785457811829359961814439471963851239431495938553209496681659512516268138608493117099829116333027190202706524099742406210378357638199275585079660647846738711542984942767119482883538131829577754597339233126810284222123291627321520626999021370051980512734195063998954248463304435338687163812998069744269009306867000732895450069417233614341124280633855888200001754122745316590673547218915698366859538005765781066829818736355834400126581063011239642283184539752384273536375359909390821015354636289471805865331015685561062987690064961432045339415854048949563307843872528365332755539536421273615485915321978447262816209806947126170435187601160092541864580348324505419941934838490881923358961210164800972512957918139304759417803397765688590450185698166993051104618665066700837049371188813269210700453889403191744823281125558727373236064231393300026256341551701870300832427980028550520105465407037775079843277352778838339429321554475284153051154262826650060679281794248480276945676958769282810446623613089927512125447983370217750117327271838333455436647913802500017943187559336000083783989221115571416620428916032190609824717751707260661739825555877327458545785685688960756805561702873541113013554430305952041345851979763281086479586595875251060537763886858380294135803592776570064397289220581659538249790367165672896030926554699934645521930295453965340117830676375670267178502518091423362411833420028971572283223896975754913552284025623888232301437066780181789061197405778699291149267827072021401711723767106423740568859699992985275308894280996394245734274588629300061869709789133239486653019648563876755520765236599627212886747691732136458796753050311091044879291042323766498817765391561404845517821163836951141715089395125256050286296254770708081726597309197194946105223716134368694194328880224419171547195253299064607782112238098671110124888062126003749114659286892034078708934860608444855153566867517272410906007603106870412555315956275922165150338705603739873846603843830469194586994224261011022794293482583582613454692798104836808154185089554973196869990466945256411138558650583206032725625096893525730242479161138878963583525057666306472131642523610728933545781928285681819401889226160199638556780509267932794232416503485504980797048356135388188339989406834591698757153057101160559834470478717556259571141600009651056037006879092726559494086199864075249199632442591373671222484367700795621741104770289457929762490447217363918421468837306723210095817298133340562920804351081531936071702255865847826257893614297578060132576808842277089326332314440317667256357476619580960116075127614527714468465030702579433213868831078222129245192458063208018092153777484160598694600478236906704521616544181901120058862196522928884197724392668749998591708331500099220405982561386930181816770526770865452114297558576359723893501650571862298220376162842906577387397074401500713843617374064975689573844304586536380796684575611620108200367935370149853412352967737441040446072889291246886570976613574108751121672205968206797254191306442733118640639135523239671284807135455615352994848642058776913993278082409458217703849227995706061948150613477331062924801682656108844069821850817913813305593016603399525352988934615405007528921612521353525603667593970113824066440625522028693384151791162861428879284752342008070555934364551719941902178695564772900453009492308688427061964358472253488490938205906008495366825473725931278550907126080859714444330603403958204831755052804124979440020337545243537078726451627610020483689177576786045453418535012874219724745942031299431162384800821409146673744259374487556467045613652315800892707768774087775671794028839484071062324315333878283299126284167049572570004691744170232034881918406012534463949491566006489764792232389891117876206920280430923965855191163563353858778817293748570851754465279763560287184557189653266191161980112317593828727406475753820857341179265779312752072949439513029390747278828209162154917797278628678496004055424464369687041740997980614316848776010660506989649316837021986711953184730950874289282038098725863372128807245254220214757028261976031816344737895569960890384959957703243476826810107152985927468050013764310298933280266434384929262106857615232438445360058817855215452227867241816520171818885617171503071832538794310488209225041988604351847920178743160235841290457878536573893798512299573977301958277207043075060577351608775685892490286535096335602696112879169245344216026174801126701862456610265025175323224447050950571779445006187827261742893430180900902763586660128416234716998069428489147715014398195286069912501932768504776503952969740746127260377107216917550578315099057506207606259663386064414101091368408773753481364152081124617334423874836761042808835002803285108699966233466911091474592098251820866030470749552853352211588993931194827603017714554682667534356108688573287991549748158457126909610257097681962242885071382685333806708093462519592820060071210785753957951938438641401095669820107515218327747391546431564445698006415436779373698802941134745200431306804200967725203867571680049402161457383668483035835291166952907545489477121263060604533626815389819798432063805133064559451451576815582911303824877729043513429417058182987617583586432246436321141699004143105801501743368926515420937476906688204033894549178913914519278416494915434528876566457894231753173744944655559820200559574987353260115343626638902074223002781877404391114855664742779289834397713837576028529934061506433739396679769624398936136166786354209112785981221032652981679459122144338270034959614736603733224113861070523328244781479359104955797742101491878220161285660020908484038237820455748077616412961369859208900533334029806028970623586226944104898422304504797244979380347034603800004775369873053111436965917050924920199992852806210116232324361994969954795817845758106402067026763348723769668337068736595417317292335660484722432541166264410999774513511731021750319355252664121694740709114912472386229799237882342680474857498272402749787082642482820495913152826855168201340244240635655179685037043221475722192408198256582082516282105220078736981046657038541399677645428206696460548281093257627055292568458140052328556106371565832562823817435593747616462486639144179525351889862501747795102150431544049769315393228645035359927160994510168007345651801822940324185226695260393432127224663805433333544244262316873126424924344419333402605119707504753663532382318381992838477682469351014675330791120031636963512319515948737926202581563791326660480591463017579273305137717549817954562796020654954943504539654983271026013064858387106202733175914483086439865180849070978580969983760027556568087474951253038092323198562606392881375044866314295585695418553454062976300793999933760916305272995209644481646029079890583330539179781347768432128208993372124763869299130505505245182406660916494805039678761286587122176082084752178686221784011206330417229509963313228639941395477065023069379604279875053066494725149365368624131551230058489325664398217639917726357063222416564716646696864624131786240868146777141550183832546950967429180143832485493034779731077925838435162550973364096804551080531156339007516397961202055055356679197908278130251759037261450450323082781448786962593229893275051019388530695946688352938010877156342844826394078738429433215283063683404599580411239597157578548608255864923354279967890074359979265858870819279377251988270863975161944323991032986978802641105347802333952214453705923041595391794596045957032837985260768415924039304681558557128625895661509586868812636235540145387201124922520756595149669580281121318251196362216793015814322579512045417348111063741049775519868586815150231764751569705871668065185276738511385206558290943761428205822424089578959014261589025784412032938889304893066558628980477634850442755704659844070718673109472488691150849853251288780597550709191089059271485323039244763858810992771371511866372490082451306036240619926599899072910018552271532792218411200386921116723244698480898603956587521340751975977324901352934148308936492094833809691532026118146631508387467608199608896119804972510538605486556993879429431643113127266504312570191890998359450591790910261957240667256390369555678232545998587916593696434384428009454031406006303064990331143351796870198806326454528329531242692594449265599270750891419324348660997286355997808917432260124109331804901679640396397638189615446856832188189338932657231286066791496675972951466110995214808577323758559802461241835782209695348321363653928658547943978270950353535840010635867234992604422587624386446933891975490954622119485041108768347979256429555115163613792988622169793829387343127341604663051589469001782562717055557924839016329857545566958611880428799962828023097259377314207171269706365692085132073967746734669260280062673919925830081698423907307788224434165363898590928713975759317581630496565180948790677424048432443222677260909278751079377271652861596120363392217063995171813647359679059311236405995877334431915943959801333855258909508979138152010463398645056952309605498107929641228365583961667714182206886838421974029454825910267401966813046142935546298673390037876200063557793056325125861526137711635203949157397982614181922294900080830769935026542615841434334711076075661530832091991094721589949548944604117078482364806181383431731660967541294898260459047689882014840323518227338732405725064298260324519927955775884872836041470152553685212496170141948519207775916536789041449352016385430950361972239738582209292172151201001336961727734878348283067313302272293151582027193356431059070675263914224622933474712538319417073834555568852847789859458542981507558958690705693593600370749737390242005663441332262361112448454493747145070217933598061281130701287923442400000063452263283133254472553739077490549775140115736213032127047310690697769233582523505823760299271963630562876366734109925934551119291841413609962309828994304541619811431177964689887225050074782245806354106906908115398303935623625612457947522951988458814138073203050979761121186087843012620615823255351775057409633773583613330885379798382673469223379999408546908032599875225610974241811829916805433279822110618103394622605976258081373997136644212676169576805454879807143923383042514061401509421180687267582170016280728878555027526481239238577004974918097901944800666940989024409908697777373020502508807929507711157905860596596855048978862840554960895562559915104044416653769878904036438426277174794460319456623420540585682092239948251715487822433845841298555649450970076681536998349768894686554914399665514972246399322696186638178735772425781686213425539950757706245002231423526981013501374223585574997697714343657306868496877086625873537688086107636553617589994569044819139924089266271656753731040623525150092721162260540665853287803139171007190913219539179480798937214743217696823436810753120789990886923852715163722567800039554917329460392447983840014005498008970312027605589528474431989353008417209520077830227906770340612477614147669330273318207726340448990685658861834480253818426109425208545984109880722980018278101323426812248223149691179667854137913792258368192732412150127686253910484340833603385209592071843982879801596835492522359817202215290053536359837339304600900053598821198461664527724481663378779383287042316197691150303519626791904109877392104691518167666233891686127268943696071269650131219206055869052761410559289905801134801912022653894598195087162762456391833821245740419352574483110272611252196439511743998839776910990304018361143668566300807588584366129426775926032706854595700902050998012083405727768228987563061697006515191110890284821123551239164630249515781231280051599664152533383631305138177534769840809388333775471889640829062385475539264415193438833769484505481931854705468686358013821345660876140254986681333741164458180939973616926930357544774522407801225562213213584404459509685191039608292550666604610625301248315789395340205888483591523314488310149998679965686775891757036045425223338517321442342805706072351273424074433114406926902144961373296603511134152316247464552277470843265261488434471867041921176413553419330095460271087874727209898983745323922512025190530832099170880406533232907884184833029690757109377185850535322069342500912433722680187356546530674433766580273939684461627426963508488914133188404518539461717782118333073874206146527484616848580014649130212227796159276136381500784846743429031641980215490694247120462864887647136277103670136530689613665813483044634601971210998532910959447985725955162525624784405981995616356740488359590788893432923034932833570709902913445278450691963576758341675847497309897112244049706392968415760913414300892437293052394087364268040440646239841369139255397233927179699320371091188148157234813272575864816230690454153926098168377075802673994989226407111575171398444285532118614744053265960867817520650694212808435154599625340385281744779366513521210964409956138675299483732196624766338307794000247410489578565001984026022352319163315926809970956668967161421630983246220004730387763661160923798795272194146035832491378480982187604217925574756918572499844979784630017656314826773080472400885092676532245630191714615522957398511626309634759630264386152643851004274398617867017728802271570341356048100527608396626688062396716404631874343561631238727163369755910744589759002076887389750347972764373871489347745293370949550326019532430505753030238320698880152460897085118548932245042681891850372463251015908426775564679897781670600912887851586632456386203815028693697213046192479999659981337128261109681384147500742849471639569605008803095118246843907534760310932460276706106286379091023498409709506868992227532604843369582545433774232776449671341837120511121853530871490028705184325621583342300490162108381384211582684665661213488662052967331141082817145262145897224174046087803824945607121146154684231937657479735093041554967446357924286286410430231908292901922272936428992959717558429144129122953931003784031461494804397467590310197994933183049750128059525845122552918807776038686735385131573675988843190005712365855700644585166969680962753836744126611675541847824796558667987928168435985110074065424503410731105272530300940835406009520798390601757840786226670006348929871316661879520883358551104543353889227101801968992265153271968731916436269349638473969446842342403076275452776278005766076323931501374910808705080569652575956252598838630695156818551753787869762649335371360854746922643673551697280814508932639220747451753101973734402347313466794554961914699346100365478611403653398969001245914340152344362381169195633275231603142468753675111507315715543174452149125518049515688459932334891057528435484646620733304510561934834547515759876273293446495050842008323409945367431495371154370668892638740212071516171439240024593386576366079330067366434289844777065349374866597062783773283165146659448872877618319522311436463735964200071558112331226927331882543348116923177028217857635228513402342612568606337752423682060409357918455451314842100735468577038439747043379719294510401109990840264900597769675377202011648585291419913899714382431854386839881916817179429097786453454725329420010185075136049539306180274225337240445160037791845025822226482706012339501476677753037440113432155793345026832433945471068770279921537268552822697389453767375056524562288103046735620695237128375973078483967175855973828967066675269398331742410189054233780763440897314944588353827317838587009301030746842609763518484440808156726645616858198217876903192345886792587012438043207636078696357731603034091836289113874384420612480803019024866638062723723091397351101781694023523472815545436471895019066864621446401419777175520666182508989094495291181839952524125805040492715997880869492887807716507202536990308941355207434680640750443792508847940544173217710771450545520553233881425706509954111543189450989181596882227548681483788678227233477878626184187155292122622368063089619460895298673336915065173534811639475968521883000872681366463982370040116717845170347910624026032465656270488903538554461901757890043928640451871456893323518066101811989766084986697634417568810917906477922209326405498787611223465450091328653452399013750604148562805325330663970102018491112334645027768459144856565337703222473889721602935235431459068492824593576364317428429878155031223743012558850026045262172205684357112933907012839166575361134183205194726609768483286447864047896297459717427344700042976292914559916665729296538952951645279009513005943560688854247748407440262559013622908073582889277220979544498753405598049625066017347990172849834202501446488839666055128817285096435295652597496467243655153762584728965439935952579849337248672793536323902594146780300389327764735397922550109121950427800192210683348474715427654215101149092241309782167531405231560733014639400590724801687062760563616726403857667242458291309127318208683210822602472980983854426000114279915300747129427751436787798657285275349027541690315683825265097869356280710912033168610355293186196864891007905185508963412882334866581012268709624108227659901466460966716468728910276624649289617072613514452192699747827746801410736549310609620458788583999376909556526897744537444781078585817187338057494995549165466229781493161139825552639404546494756646794253049234812255734656435491899750289317049809935175072840579707932895308462812420723659891387071107645657409676450667235760034136685950531725743741987559877220516031222627097351442526633730506818869930027189895507733166102758116621278651540110582462995840462280057879027463935938556885325408857346265038922305653698217298313688962507247383639218576647026526293036591053777558793274992586805115445642775184079840749175730196934012889616684990515889252182416155729888107224554527281391920905341124379840152481564320342553878086261882400786400646958612464671485840831602859741091437812787153279392544201880541861074427758875520920731281538520622244555605655312054583005277194976108567046066027102625890225305589446719548491467131927574870260424350529720935595193840948238072465949983589413886803525070286048018800740307164331757822595630278321632390615277170763834375003182598247991111760466857640319253705790972307449093021845486665116355921262620856139990012305980336119253660748910154468437003961581131932346699764164372353965049744281738099752786611572042371205639111983756328770818330823129876326630240176681934685497280065413924787827959646683628117467491487060457379119805592548563838464626672715390741093183993658797440871863329336371772766827966616528261879341438766921547159115944857724933876891899082910305514230616283418861657512690767094587461014495023502642627147120505934605007152604384733708913495646973730347919899145663387256441412433541186536025188249979467341002966274989759385614403352054584023090771219593509673671918634741138359802536254285251926717287764921531429516965263338610907689685400714771307962818883297044909163233561222809907207750616030759851354504598761709527155416272882808094105671398941746351825991724858852293570733326342163394797679110188973077297913242476945117163210525100680559425572647110853165768261482533186642253153115093532538166117705966547665339908689356843699950400091156480800108716517554541948240783502008142008898425156815289299640081773659813459934744906707345940570711809834958008578622158653012376848217150478453300973573532263604442183029915169528974573349571505021767234913147443554765764966459379122152090448906162718117640831700822332735033584148993241298045779149125746720589111170291187808307221382183452775431085328458129317044882823528289111511568479394580600852487488800633608424149895545836750823193759524748787814562825519106579382758213577977136543346481271667339682987124182471765775572766200805986485761782556269301578210583328434816957439080759718009607958654879324313054087425434848116148718267785692519740641229717777871588478491381697237505285056066902341491912461397123608773861164002676504549584534297246348222069732792318417550910973274086739255868406846505122985493867157614942433104082865056011110431083942269397121148372047352477057737873080970977507241626999149014036616801382210596820540300748129070806374727725378979890675328687896856206830246006511182815033045351499801177884159662659579315042406009760053329852770302157254658631888603562790077848603811396274213276681221348154557718350246751613488080137513733522810379117232246943327004690912485627208921415813535191612636223885176432419359872418073228263645175921168696941787930889332579028369110456046584262909685938994644110605811717238138513272139395712829521842201962060593450894055553553989382956025105743277165450544764246670411603236523885260998917294861190035288792481513975101396856979782780603617987870847069362841270864191000341760524345856985251848557047774688406980090856147345754117874605999025236601111442202807231602828456827197237777529062316418072814542799441870811446847245652931028883093703562616725119508442995262583243574694468114097456328561528471052063749749623902782218417088881666943551496808118251852328525362901612291173441587565934696713484667317408902527564347240221908078366427703291349903777049601223484804657121719053764125992431107743551552914996866453867866951551164521344724641220748194704947602011300463651562499891934620552036900743566270104473518919948721273993599721693809186619588883630532742654389648185801517679606504297114990302425608198942812773452339727414310141055218565758159375044087829556518288762196365321700797099723422142693194573321607272113952178422682656508281859795099335989112433879964890202428115086782081186929210102202223319492719137518223804787649805545743280641803652048250174012705413100371777279944975525080017466190474773416096477453062654262697810396788074790810930403046637749387636408190060879270449538225612895284734515017167633733545705881566646949288249669236687803948628726562215607123552449800294683994992667617357707414074774295953595199335687413541334556360448875721632679425010019263879028811169681138757682002923791352064858244697676468908397934265395960284031961702645537882760381013382361835466957408395238865019050445483675520053734740573933726520484095901097559378219886373833756513097998467617518265656194361694476711437867098034584313132153542694674035582044836825012012581262930921310924378830520742262339301481972296826497673683068307127352292604448335910738532058767562356844394586302572194644144525984143728719267984732346014721856673935360244503587805646272068242558681016415645109518105192089220486197916048211514825985811158448301256907855076864470702842597859352034756393389510479874683955759709655969134957135554133571066236261003155175707917628913406505335406448858382739660207695532703621087293285772448441653788785640423492007533664225013383010338387511478979265482948234527032599522643505656671736202900659600034515945382073259871356423654837585436801736847774273619715814442369675441094067122190033397797456374342919885864376709381913370018660078869545531103695919741354813558055290977374906752983176358485293939312283934826897790348143522268390845647524612814198707083888899393309832112462663812264583953584356786631221006554918319948857147434444341236655334619441515399951114531697080419768505278683956046644396017371129142937624370968551667038444146676598812078397630239765828232627395875246462055644470971260030562947755286452368611259678909312149409520844102383451734552843678980889667280829585208515993868257109419823609095420613306592999610414479911571060800955723876823042371529156882689091792058583493083995173781862164056049684065199648222067774411262824800496496900156570309513446775277863793567525380028687961332115492462814773853241153123105545878117084210130838035046123440215085130582177808817433923666422765847872072979336128320481101648484794797928069744736017488968970142126390868539903688736351658661416336918435329751390788178841694994641788843124670256839894420515082290744390292148832598584987625378490512932823350978540147345203235642191973759268284031324768622310280832345725037005498435455251066502605536296944684595439094170568267374435619060493543327900574705918166150507991269907121448103104937534206998254194395411390626284243372640121831543079058327020476195659301021933516803110964736218889749782617890416131512745332659193090488969976734850793807792546528102652862526700291824781376616241738215706635624560257992187207131668448120342847003152501954085231334552201755627744441067684008612316804129245610992910204298774320904396425202538060345931834548122553100316972804834756093665004727640184771080257125261233821200542138753554448887120883169417803548121529783987939484164774621552462024542690721997536435961555063658380917858943531175113514133041038972817416333597958796818446498018675411354819674595088237109819690613244398082601719860128158798828600236986100937306833246207286296969102462578324314558776544135698794387958219209145107775236590377786532870055664101043804717196692759647777757731905664869710823084224296303392039879705307430522936690139165327679680226263570544032804518219458059312303728411804799080764739198905902019722168061065143829218782030574037813137214222009161146604343694422561003546990703602693310978181100964630792852730180962631537189106503766594945863637645984939643710504869525709897010752615095863269281466260345709212777130351402101488533188801297404951372014343789915035410936278698207378718608675770106007132459134307044930997248664578322492120394488184934409159509984223756144846043240761860787357023966752210131378132410367776885937025234927686935706350569456239296938388450759160907632125296695424388982312773068182505902118106979437655908487080101125615025729749644654106695211374138005545706153785358051738220926660860493228101286441526655542498312640100306909733573480984166003683378611999444149842516779364830685203124857048994125769518293528873173707581688631838622455877162598791823699289727721323404391247297295362123357850735058828174857242958054496837774102920124014143216857221967753106195127554126217589693486267478959990532619785306746799727960111413862627198265410103566316650803204364391996249055488551238655643011730246538132151145203713457761641806861253184973017471581003707379173966658556695040491993132320177629308154549249745445222859301536800806931115759654262575572879427372329320930314861980387896258210064298904896457817021371626616998590774063684002058904699003538247123076443049063257338821768266044685256129432966124745641778592013417211464833690220874091236953724900270891120842032256540900633858871215839630247152686399886930232915137911955280097153487615650749490287965885595044325811982556123893958477114518224495546566749009964318233679382334012312429516054330720644565322921644856473179169203971536436168571032962049880625940062137424413640639870073610567621845647253147751295943581566093758992070873712990387791363204100757592622086217182884638164455460664472868889092252515660121903985848515433353004739872795270689962525538245451079877088091243886230249948682033733843116182732417024465688081595518399166918797204204548678077048659508816664974187076460240062252086307281555319218938297204441346414992734142298399716509322858891970545921320851980188857986729482123775184193721213798697042201824831104911357406909565691435992575765475343600387480562440753120525329723265209802278185400457708248859845917101461800141469616887358768470237791242179302996868045476931502141404804780232005007232202176859932919749183245630396534012990505571005972552741541305142209957321068781976397087913323270957066147516000016934753773549682221346237682800166622663665445229656071283875559499223253720583185862666050541461950437870045484271821778376558535028475401497703551382384123729787206348744611837676878386921866348270321273738426865483466621369677313269219526570490650085957263172751594790106697518757132784211124899459035091457144066758822225457401159832512791676381752818453685846806469156310479906164353311773900791502313426155184748048201358375830811300674607804993814931296806466036915578309125203719875481829814283619712532082461144637469151541479390500241528734468003311117001438928021700852859284540349870559973426427663768065394240867838684136802241008831639956921461819197148758723193998098901680336218170367541983594327346390036872268257670644390660762701970433120224861209114752447017464668378813784338851402660804005719523359985434560715701015825672849160341156700701103678022904123724142140539587294531255529690841595122850703820841199685128295845602782371000437328365251428613267407627270277176219683372575322853227161002893469597507538188402809128630334427369586264085366190275349575318823834565841537750613511983162415197966327727308228485647935454607145992661016848249558560441994310094515002062904251518749714263055115569757606010401009977653081500085198729684660704693485947048064438136097245478090161337175211131497746568362265590011716602216950896879434113992763691396293283453094025793290473828188273683057053855342986806409629895466816143008701766733683767466281115373081592187330528054499787259965762563918729161539107439382807478639779047023814213511036743645430470224461881522582729758544076245477474255831799908443668977856585029869366158776051043564744646865315937413195566912977401815305862730823385793414018793155627964006174617342070778503725752888050176269681164913206490909593557531920268585050906354901862565056222492803520914660324829865200337064710981984391476348158160321869562095084951891423113731420077262153033274728425126835309840030779239425844717655856787626274960406177048678141514893229342373111691954059452231056921018398281157524952234967413578880587414183510596062351838309567971355860573235557218499945483783436486742383047676056820845659346743823443231974811657294505545411386063304834975828066129604047582790913595802617776377459546427847859859990387697462467650487622748238361298069756334184434597364952248317629783901898867763079347838469480012212628023405791945393125437511009194080672674825529582418899352163612200614196482478765673895373130081236031932176678619824723255871803497329195814464092009987025202107165880883014694369671751114054112330975389605123496469303010127825457948451785057905473584155613902355402448821851694326711893589292348432037665777206546915303099062628738344082182676814476654404465908776447031279610909984165961521895235568020180786034561850395828988554523124591455867406431795125195045147770163631887323324850301434480239784537142570172860379288050252977653417392755377704310980515140574729781615770115714744428375067723615137541453332690795136415315564359858554385286240028029611279074741054263953840239943432236893553860272701450126213674921140991067001916089466856874660670354132422395975057322079618188161934638555777102335273431371548017168632952530837008159471031303842111174982847310219920248720787922156883355588783833938236338282498639478279506357703138380578714785232270797625165177811826223906919687758089008038322907780499169350352232339517338230627535655022152434556536432651537028903224748439189400834020827410449636481488762368258666212241539939954883781227942543831989741486752513038293666132529080012303157226917090917657423492398369332626825616129720334814222012165078902984124722974630744761954576781557725530765870911946447718209928789675099006070761454580280686923649226611646565022369679268505381304399705319540615077197133743240470260761499561350112753683494975795948914719519907214087662922315302204084583079819286498877224187583576594261878747323563521689917847668198735324502680719497027663999271450615483303339058666480874857350834372581563388798436455433472962799338642936599919330557865992728242744951243969890188153130293220895657686191547667826875896744340837287068070516211052985832360470689351274430137903872735346892530657370893098335991325057935202846895591059349276151283908741667904404522631725372636067329491445346109717735566923968344291660436495790716907374269458353389455989303081311378635808499678127399670511528590088153942851233544911205634496699146418278412625852788921440904298993735271215053754419801949563541075313595932939591713618680844689357568080692108450403656764553163260720992803311077416609793840716653727819496484917598354700758323332007099122465695054322436401721646569027508973461376602544232413117380304445848275871108232975636929399121739454378179425005992941158833633993558521015443134726614820805064533925882429925831728461326210083612666235679781332989577272041117006471461470092279501300503609554766780076025357552056525776122847860775855687279555144188753560895992144168576531215834653270495628243716973300514063536900157697601254504060118811006389228976116738674947792828588487878616989962885210855028476834159779631245758524758703869712554329046745211555245788445756182867604835039477828961630192370391241627928246099299325191792294974613134625933326423397731192553603478128375244208794992117742028980813554255596832140372771255743185313374704799392777529105820185843901133904658901138266586077836417276035024536322148736178193494545012920723108642575713273881888554257208519121611739693604993199571550414751926797405717934482955012018781559180858128533212174648965904326052443797256100012609462798426118225158530205082490917441920744399708332119938904667371290458036260394810836669167440154885009023102814136483166947882136238337858425335512621029070622529015092227991879259599588630368088519689729547800220347598862728234420444988883571479944975990111931441407729163984527804775043154109162378043560049029453380368308089855816280539549286815652185603226817876791084286295820751138698386562692282257726940158386042861679252685584436869297045631230586977324548732539255731155387135909920665546134323181055216444398895340225507089088656290876704626280601177146827511798676381933208859018328319541081285763667343019528754754113028780304973711997038294934856347129275013562493405700748567339591416997478689686902618716907308952524020737968721881820308815031318058558839362424179548127571960784789722372913861674692927722751600162807252082907675628778236910034399000550789781923123688317460921976002544417620249075939896762505544399061507764884850403350786800836797076678064410733384255069150108140840452336754644202986178732035300991367177851045726576788636182426660583514342897509196610960798473862240584847945758396705022788361130317978673725054592531020792437034630295491879157174040590750210759431131682210932225762917078992727323690502211647793364907545498233639724685896890946027429502143490707508080957448943780761339562570183633086569274763484747342903139822068899724767799949722499849440818301643301960244420754080422206789844476562515519828175142673176460231214897099111761185553197902239503055275508094829286607850409837644134013528220510566250302019095255810995395726975011630780971245732050793159230889168490162735338258624193306909669125378242163996397715997917181924900672991400030509988605939022257259391359381336632748079449467452694355342298143128044848702974773755483237261078708877009997778290864371681115620104073447081300056604587964528198576263459493560579645987179819655288049225866618355355033887190964122088826102450581311215087120941305394031948330823963355912954936260807312228947447453192734110311738970649928349719841922543141582285176368712671468896455525678249172936889978725607475923108278888231981664504069608987341949932774761446406953434245416145541119594838300089820828092841981098620978841736315654851243489991031267357368301282743593380717828634540417216365389764975169489611268794249006730618321897537754186594506274078977152681255605978908636767602921876636149888627299605337404638202403277236756436993694810613317643265779679183059261673551009493183045462354816603072778284247273089005051618333717125788611400671579957511908457758171211536785889685419294724630257304112556495898670065744347643558338614282065167257820992108394608287436722480008901502863849013038315394510735649949317817479025582948716970750269421513904384783348872544153022358357544350212065267110227264350865555638475222512887338448323690818797794077752748694264289804046226603657790241695309662440484324325988248018035934519860587639871961647491292531761232592758452206572715870902094459665568094676779047890125933049995789674377352222937118530275607113134112900343091935806899722612812978509220258215700897009023379297799649504275348920436874223688685711661856544025613858934635673063136733704886606614691578750580392820795733706016554205778878593026176219763471931920910282838533666980778564905636188204900834724470917291771211778731135922372804681583799072615498503122371932725551494936322387797473820387959098430680263890097975351264971617007158708245293909686360627138876254792486058764109437929361886526277961022735035341798361511299929991451305627591311647992879912618745630381948053143269915140350893216411122599201360518670950161187183948082006088232494324618423728518545221494511644206232330238411332449999109388149594000958329162645149972312486348194252927060548641167585543049272420542223986011954108178198013492684754909251364397024303107857125909312422418728883749594959261172110913688994399484173402648584747634984636400723998140373635738972989594743590965273577680016667945328685902139710512753886395055538522786352862155904049085665644098436618408908373489081425623842022403276623678477275409839704619747641383269821813697889055591537040754229597483312167458255959860815440515315450500900102812544019448291511805844811710586042314639817476524543226603384945820504667528650375607418043039154155280138399045395193978338046173230846013521697700698126637290068123962782348966812943240112361489766284050770773929619194668347923908807561806687602338730781134058519223194482087146697241502574595594727687811724497158332494346530517296722797860768658247789546521590799308021028597314848646285551409135608384187041244196345189193884766160513873914519159265151743588411715247911919483053193511839966184785291279209766832361891759155109945004355246835627194308603783429163097287235769282817985968635427349332870306037594994628473721678668043762210069683364010378016730560509491451422160896242017148651063711292152682784673768626767759472490292175383686111520374782787705846617325485214497358832747865104124259980676861524588121532609148701532227478564452522139780645862916895565703908719192114878169253067279727870263274854401161740220245934456897311177438039413425389286605306514593024819391858336397638901477153547668464297865018184709565807954098374310274705212010019246498832542056701409855086460664060503842166845063629817763754911795782394540614554791228907978974313742909069660285394422696238864119654986193351577345882878263673317534563387232454550238580478325180276876874352137607792979528701561970802526866229748585019946179665248951052432613816969753935899768090729621875099527370964482609741012255409308565700487746802338947434912951247279505669283339708957957723223783957631311914678172670393111029499898901140246792239784524229626590782708253721250456359079643349230563440328778191037208409834253524676480997508224011495327001526793386574108270127393746216268516672682259640377602692017460500158124564686876720699963087961952186249815954006174714750242864152468917404340953424745701992044660857043220838416666332203140836645726932535716482225432667917982811965758664370764131243316307531641262696311332798016724651213309906084209893883977752251467624266099320749656063985186039372070858200887294926283250042665228903467764214150705814676243699468861714067448776077163932377933771459378433737118849439118377952253478858166016772810662054080754330432979995835651944684244790137114411445644172381944396115608391711834310059106200242276518806584449515176445447614236338296969540554192720442125064049915780658795966229247896182223461857365551143227637618477215720484106910684202441682260159229850922666044128483367701763914315195405454428465308110968074904791222116408961142717825805893384303665664561697000668212788373058271883073199899709600672646329681340670017968461985906909321673967778995548954616675519736893949647526402302853997771777550688696651092178806768584305422316975622591347465347136344077466006878022641796453879053836869505118368759843433295739791366694980162757636887675162534531386255087115792653933198676666741266024979152539799414119734626494877878950367921336694194483635992811301216352566819198921664940262537051992189653197389777988452527597293788425476545608476895416239712652593945389102108047995177475336351251736706334955146307590101357895868655399838425494502553482661802265109468604772233439206403565513509816172954552319127261776859631890168628250161115190800158561885636699113892111968386537328568447693083366897230422033454346917035960479504490582599504084547576513872227414507173245791816457536573546972986782425681936450175709566524123147971503610086671825077922542419491853341998250351790434480949270875208593870354086084504808722490280200338293903841871341147284672407745004290646736612670771735260122103874567636331460313380937429236955198729081388690487180776896029909410266501874671591902133455677333896729821590252676108990798491205175584379951059282555970340909108437487886710683969291971522310466615586865863853547457458516137211900181283968149892792239099539341973513260291065533878370133333320477596237907704251546600929824195463359213852734862056468175877656949707025452131387315538721465828129660775001557383019759079884745721284570411805791887453560309990058363969789145861116876632675996847774062525637959118200241801638318594538053076680404673924580238403183516592272731129495425156053360643975778922481041758580441259492242836073318963720218647642578599049291497918046525866057305630745261172671773505972904621614171382554642298642127892750860688814461660239069332238484218954278340214060565438311775454323796286289946464475015578656904620762857658235574662211713194122083906276359333140588474386588071492986086151861459603628727253367862793662138712418503196783066487507977039831116645731806053336359965846562485648386984843409554779507836878078012790322863486922955909058152187784593704372484239441326049852830831536889322854626051442811519755187442273725164450239003381712416017736328076870620622811011410542071835300900058264760979571752184728605125622913806490437805128234717907200286807007150814046497099496603020157110247207232903067285261023066033127847236780665838861071119160993824809585413820411583601880407605682240606792754476573259669361667813319022977537068183888107740793993060595955577415790523897940154611222990083442442530261974380168458310009710937170367392462358688025746897557248739375341921728735100581803352406429324291168325586809494093876278150546168851822161647616624443072658862784007181261013912643292211374902256592212939924956816571063228238102421221377631191195854025541102234727858174246012907535648447754874501571278265946749838718751684022025254698411078486544871472825614457189443382147029189794344701780954230338405495413740181543275222399264047471970366186045621810085874533699799511168212369066419106808709623299374072459892545913346428549898291690884030315713144025703251798890656990199362706071006463771279890082688350670533384522119274851917564506757124113226535802349637810468363185395402438254033993501911427649892225575306583741560860143666751088273532475140732474393576891740939945020303738406962172290587315338283874405364156443087490054446935365893697818338601089348853116410370280406199657504102823122376560541016981294630508607895456324394246953160715937023101643043827169062120610475514785582049435641791754818206236083304224267868691806993367391542598769730357708948504862698485182496730277713268983834189543627078930455644808214421190483809264080818790245583983784690726889202953081517876124128210011748911397750579141400312541962395956197061079477541483406169127896961493041601221490096295099443229228190319297243234911904387623943726356779961773882090586579951232313532404083712386668296707076507164995174390944408553115230730816735151701874633947864335738896826513499491153571070738158295722141490077879694647289984803470768712872989322345904153681129218574780622803241745010698348594025225151721921738195657776427735007435752254438370877026072879855824769353641197020289984466143293009716555201918535660749384101982941330728250611425743365447184322387158884359784074077865811372349773633207526844620229730669975647387541638961782675428603905559737364801088704923628114836677740213020960464315871870194057598278860771164030645915257823814745858184878543466173585317441609988905473481998769798771246552910890732561162931072658486221606639532674670024942595697626701711749456273243037121258305600481253933628869886450244663437723450262081273502752599523777755431376578454391991901859317117937102115634915933591762886112400913363782742820961297937264906595238131750795260218427618518537889699047129691935079800794105573655754965023423076924248909366802778711365920236851783860535539451829680169072248465648053704583741675893293845132638405877829121425941364275265351373555481088829107693578536188876745230646029426186417764983067123807483440759773935476298623473875643765540496461658794659261239850534611059175524809889508188298615347823807628884461343866523657400198404868794037621973650407578899073735760070125280436871959872739527321286718876731713412866608255185773953459889155201256539004988267417001026453540377329372399701353891059529886875411636999152191562961639345982903823479441762392972748160381002292232871407580486576905670809053197275032868448450622316642311823900545326545442659044906040278411410611135188669690396858619190500067003559617499381021365409635981984003508805532840056238985830864893588636468351639360649654122606078224012744867335023341393033305309154086370455500078610161412145860174531205019087924220624251319127953429006115296011117257898090622843632971283614232188830994362972396496695445405021534902304336726162709691924625573357279728824716472951422519768434417588521122800573836548225525732064044313802958898877922348191375225056220309763028919306073314175551644435283353984236711558066983735998799374142169913509459650401185303862424816580133369932609323309708534201517381740233943202951385756192703152035227692389894960311529107365571905354675451740570754276704530320864336194374609603731768177094341891896678856645355806424075348649865682466930264288942842850624395653030917044731997633881820698292409739781080092370430128421924694556544179390792468370313039019719951221748595956279180101469744376221307861800514559051945615504780672841146706034095122112247174612099469212650345314151605255089945249862748102348178813339926984171624850830926310872567090079159585593696337032649485799042300720260436322751876864039535703165734313982252648837594471778880886865302427769562414869534013131051046627914754024722004802040546574964831766118705152376967043956534543144027604152199113204188862077297715489862334797337693166082083115947919577479488104879452605814619158588648384718755637734733311193641067296189333479202123983527134334303779004501158451695583837502805302644100345055277137744189284480921821688857935707495836585027636785154196125526053886590378116895656432642019573845438213418936242216388200241446931966525247330026020389061242355264685366278725689936423972009296209777809916558902452132821226310443758606985413284593940771569813225064628288698655765841090455936479436322090802170615463199514766562038210007166142503595882661541341359653200073989701151268420505646251903446100997844053105634456246061249330862760535036356733172391395076599295617921400087394492209536527295390133795065048413326790644273601372604204329034806035741863213279354698684313776442100519967472540455163126257697101451968445700719255658515141464490627268159796158080893701765783721733819736541686075948200659699737435993724520043146321555640040263942336040071449807604837545651498085860721929435513762908930504171081203321960296032766255476931712326330204395987234011932778282458002310813824499444595734855940052274368367728632554500134129417719761832877937621252127139453379874899594724922469414214481150096958289341918102694772656681099339921780340147242812248395471337455629101527157013956315255279942055747834612898327552647520471429099847157023744726406802509590459803529654566658237010058507491541206330732501873582877652851137680120665607613993302711319036615662347982894900182325387988278317924223259920457294782742784288950513918160307568847050299316826520076230760341803745330070855177648517822262504024782899361657436715169208118216211699304722053626881292147216481323721776854500265804317202639513226781008128919832692381784676317642041797702787522312472725678870913143924287679293335810287029925216587268588068537144112867535335425245577644319606874240145296214853623833320873319847092788417035441278284041777117144046866035882134066898989240120402097867018764742410361979826947481978692182529940946739295604378685109282518863873697171329167626173697898129166186876044437566755792478540740159745466100160756258572454039033286584227545442022891798975521782127654138255294927159413541794693119641357020971590627062155011769262126245379987107740831764561655263373238781940505885575211988232535735200953770521688836735608002143773507873413164436573602572719636741296340637060818350723061724683053173113422459445696541662208160899262585861376016298941169559411915862171530753422690205779010095699281427658783754657249393604173304685720379480776884933308312941118733296690431940147751124046818999772748551090104716810970116775128372621566841056082476607802542414353633948815677932269258719820629038117965280649149462509401903531132511038340758795970703908214990057239010817946149298350271842992367210763283531293159423609285717262955064682087812953114440248855378439718998458295300117027159363565070478229359670850116816222860446656681137906600553418884547173919994378910215130824612366663891712428415889292051782345347522822267042945948400728459739290930411512407853118100170611013646522884449747901574872536306415363234559032013166887212067742727155235048073567369191473997296663134371078263987222686143158050110692869206930294053407102105134443908528443106268573541433983482411982667222497961058860976229131245510821847526545673451040164075249224982525293688633484177578151858802604189283016395227626806147374287424762071176336533116148059973962780911914143736066674005416795743612438290085642558206260706794478960464324715930805751471702724474619262213769656044470440260818927801270470747242687944473270949698752667631919936618949167657808044201155720696819894902906908754852532804391446546319184558988705767738770004163555153595550015301501263330136193734320813850908860112124881853495017758437710551536761831725896607530302737449412279015628010077738674953707837974364470902043690170670407082661426246237842502002422149385346038416016117937391152622809795802625251061472152754906794125474902757562835393906898246113458698342187552031405770857107478546807727815108143703333004371521169376050090987950936815975413716176237638531869685542457972918436159319724495971609088534291690017191091918168350319790419231272114456153211173219144720947942082833314298450920679754025769920494605418147421491608691809855910751264213464670760003493731685604344867163431603877050597982749366903937197621180650460960874160677026256358819758955082003157827642828981714496099913923387974447642756920074335944910567514400276266515501334692818454455830638250470100860006749823247001678723660531330142280545133182936123408984382191428829608039817172338079447779199828440024488786783483882922803830009058675862023643552658220369496903785008410212526248583695458470529275826386160929657150821383647369313204373094487107417662147098348823619105672108105586853234598097008467376632878835094070010407514423889053525447276459143105648914735776864841608579186610806688163313159594510935509056078949265653525094485974022824941220630444997620445561732040975263665226366062645533409456777916598500469472230722684164328435490290428868174935435280406390659309706468637726970938182821060146180939278083968463183946709041940647341542262116883920020560067578759198987287890320247192771932160087776939465122109634024555243968109573585286170712467498941485440116118355910467180459172321753669818048987111632801478398529391764693804449606842647636508567835435353409803391113758683761507198934787973383102240363468030182924241857938322643283806498597673323297610894527160053090291738849668827057034384619819146534596107943488839911933459881190964457888391534108040121987428913410056522092091772221189058829634956770583898366784575484500389153727569245380697530808696757435444404159297188252026390388184426916709389734012543656657547324115327442398480537708351467223695844957130053083465840654087501557325788593642067115427658712686224379726726415976785597872084250204279528615653093554605145643046373971489854966422778967669350091767553887150590686324761576692273923384556917077528316892057989299718031185636074873519824085899712943797762913535315213089532226020725476717712412730253055623756985792939357865683805355772316349192092125419215857814334949710190941978267235530100833247079316336242222169191203064932125151543428853703740475782766898310433714413174052396757301380956030893939556625373029679372645832004374779725926285501459031962672659841496485338198939774726749513100737390617135651385928781928979037498675408760854529362328377832349998173618896673715690530846399622998450695882728866729117747535436326622118505862092181463588439919813523991272888354347100698270157430105178378383171525985421534012187083326365666489331269659263169914904109439993245199594461621665211300696799411347382850241544917547376970184528725716226834538202553550230023681158393047540556388479191570083248205717391830612424099369329894249683318787771333199857543373784437057436259833667724579331630628152867193996532090025043657767059177685082329693143445125773457140515082109258555337670950936795491822186124510218148978402671268754030157298445932036569382851226606905039402512861384982551930810383889688107426326899239833307649452995496418288847173248716114708125292423497246498859781845499863006528205068086211035142066089908149374244367008154380218147944622111423607783618185507147037368041983339651038432926531274803857777118644237946253406692363762971527719177686904779456588818323171142382463138183052688766639731576548431235596295885548219062873512432657872253876423691103652585276683207281418488858615164572229891685613512178462655580587813865439182683076445284369095607383803266084003249923197345002123281196608212452391998308696482309541250444052310964829539296788316122890294859016195266136303453378742637307319632789071929920566460400830086631872497927457647208743917623711369436385029406279628086249588906605313660618939678051997851655996801817962101399177147323230997175641006963699651504517708748639358159262671815597719951891619722334418157665148410802680695464641594371341605325206376175035342659453897158985641309527228645040254721715489003517375142839398300684869059577107944108254566511426353437522341027670153184965567915766306346793393728939203406816363562851219480698269224219530580551578225224434824622478749036210215870404774265473798200015794464500469881852675061763411330304956547910857181903030314374319368220266154288242631069793503986101881159415280427446382581554659104777408402611489047111615496997446938234427207011325981586230175895998098178200788764111691327821127789570762365646793573758896373588179557223832055806497634892942711864229464619699277541753791447187787902873954516652719909755896919217880688626048681554146362269129441849475232235719239434733866783691090797725994105839821450273575394019487510905862604502579336792422146457555830361402053885598982006636249948533107861991255768838870967647279905981787370875474056975155528496623163102030870662359963561418811151690201990601181190373681544730941864882451005970438284280944746687821546153137574830908529317381164183924867312149490224282991541742331516411747902925763812486668906897921338860066254245164616023448154983544397720284753677104474119420597748890202759585870994677593529744865912572493344215631789523767880811215209045464914103764363962853788748464099569452123818471294877849763774187239864165264968882628389540105110096518251234736393903543186812520075345093499316120058588980766303631500409607768984920193138939940255791143254622579428389674554750464677868468769381112185187349225191360352388741795700328122198004434529642708535309083528354405881007822280906405030400332677488447698196203135274205824842770551244369845496161319529779631785619512055982977625422024780531659379592428412161671159349530179880110600888642453631935886649518505267845818730582848727648921720056936055502382833774578040159856748725591943408441014438416324888887869296034374418041655131787319356726607122302595610965972425695926344645046721780586839350584378875638173239964863175022132718828970555886238070379604110891044086860214980817762095361579369510748200630292210286240308605125929745923207255517653936724565802358768041983142531349634495984482675162052072835135584377996270399697477522691402412014569413748792267611617440754478518894968783191677765408784779865719534937769938162819283651071196982177134400272497219939476284188889986759914223865607638546874916185522577408989129416003121666867389641318719411598769099844280596455006774339996187576774710186256783095996643174548373042120077622025749327611159670257775214179843005356404921439950466346172384522528683945560320840520213398516362617426223323089312980653322480074780950602454530992548939690298060608984846541563200526189446799624935827473109478833648326943448625602568013615851284182431919066777454606769386331235285516621698133575923300183105660410557836169823064183866098734897645836868269581347125276277450011132483612625351600216477682752532707043594217621200425420017441285551878698092905438915112080733831278622329752471573602094810804595595921802095325550922600586320958829383992071912873671926755372097291786969084336148000531852511862746556933529250043536084597137896425723772422515086315060907316917895795917684778088247404255608986449784586349544898313126612564318946244367718404019717711786088098407940156909002878455754793841412499667644977488821497608091994571367995017749690294068956388703650680414121410188510392920526739397811220887473293551667850485308290281284175546978133044406382176681426565411406149666241760171845590966591552561544767386871595821121361229231447433635226951476914653787371805420821524409903436486975644070658088564060879193604613609704089719643363231547083378917029688779111820448377216716541139516100520309717976815448505439760500024202854135369748053024228152221580355816527817767551754403506484611901296343296009867860224975188295278264506566830114299247953330150017057692502724053035957755998638199414482800800698981784996563320645059378967407776274439851993352549316493617736089840754905494762013521148359560808624529492564553416164239735287498823979742491133915204903976788923185919435205067623061959847075185080516566121061706544001892886893119930075279101427071361540312873249712888700870831891339278053079284427839939333332342118628572310891393480203102217523771470512758721757230415363624025595733441986669902309984384809999526927784842768643909751183707882619712833042662205349384002599504163188402299774998063245929145125719531144927279477201966636400810295861739356620524649559285774190797863022338086470795956686425657524674446841587557644331530457801727063703096748135370880138698775665939266031805089778291409457604741213183755929332376406708977716373345689345511813133755778802515376866235172776627134018305798428173169766421504030607185710685442760736294244632643721333329139686132169362136751708940173945798504921209797226401210986792978674546583140355206669914429378945699588465278368910735988900875644462341537014600981885865616422686253478643145288280941500070771030124839398083670634300379038280255806190043146978868758207091907078645137342813478682061593163007943341066674369538496051553572583895352077198625867440415709019992332764188067300160465426587648793020023223546592066436594348461184574456715730028034445684366213751851980020037835649186853869296146755650220981208157944567210482738905637398535517950581944762338808932160024752731298618149100727707610037089592662986403955684558243492416223044160871122675561496115572320335074345554021451374941986980178533961750611816072108983582909003616219277511509370487963645265339128354546056283533870887566830300834290894724514318583131344864480427392545884713669133664037922078311479465483648883379575142844150078835503325755920413835419934583297236483295188662964632708611747824039138042310876973534757301412345817781465001914922367885735771050951024067193545924046598953498590852686059382922427405162311949677555718368322764337313491125622552129217307642493110723810831384837271170600600419378892490732785957947214280713934203144555720655090063866312488569930955211333450458323614815881943485251732057410833597381117193726871348631951592258586170091221128699740389723049263369630035372879084136262910301092595529980265642491212806881740217110438806688607796631152026696211535758314411584161317666535572358301268211022492546865926535549259063016221264839996763010800930876503869510051973199047691823044355961638654066194542700082766222201413906040832701292794401539378672838164514270846337845939990820478085879168106561361457380151206759393093426696024657416339386636557272687489649534538695771956143515862242959529895600734638430766944568965553616686579471086625991129967478758948177082064455665764220966933256579476487703416730140149748759797272077321241298971063548506686562698553043100574037063711386565612884440084463231128806654112011870272743459363747424027944767877122299023739948190293159189916696418779783280949902433838339843557561648343492816753900188481007278848541091772415881774773374709341184816533850872286167891067440611187555727353915891531171783134478952342748651868370096240850784170371984406285664946000827900647916379420321441974578389521090921611036690437965378300565985702368513826514816520297755649410480126914327791116220051314008162058143471365169551530421741656944998167265454060487217258560556148020650949303612152934900888992643697865365084618654086240134085579554010629624693454180559298025133095553206345874674892317222637089595142299494007965798983475490882000646515702485905576968702384573104944600871661123864153157368254661636516005360222241863864759496928501079145696703383230809010266530434876224216140001312589313945123602786887927885858216122268480977461769188108158822943509673921617077214172822781202782440692449050269397977058901385570918807147611333343872589218208735076793480168274175597566370132480321426431701275930312117837715757460156252590121975450342412791119449507386136606566019951762740991232917354302847942131850675392389222710505051225519498097670308436355462936326702783736655604044604905639442694703944250205739649784467828110928259539622630220705958074468248198127218070550755830384359199970941123360037028213449944877406510305163211201158138336394904191643577950539862522103171320796666543261410072990569199437387836566191559587735895009843265691639754287979173295367432424290645718074304660369489858390502739643139557531402677870686969290863492828324907660203205097064173809469072585943396593412860204759420887348005593621113034829412949672236770111647212848071690554296549062725167473735373177392196228670768420163453697938842083128682254903073358501671657256746983278764090685741060358106377646291088594138965114703965460698662093782267042831968089883547556437908445977156754319205795347982328970613376595970720405450007840704509218537086821417111095974592371746810962671989928529447343185939342385041563661594209384883428878699607358030138579519636846747656399796556789196657758218489313120779095386097298484589518848421934826188057788780941165496367696224452070736030386934696563923220477888405476259524708925940949064823004013376751145839135261717968210352106752055136523488364588112184869071654189768012473356083537157902274414613160560054135538891925271292902250060272025257582262828089260412595080439327029968829669243048188821273029606630293613500795767160070128220742836975618619061019594091648816927683417918659283076335082519471113972335960500463187638056953793822084500531349740347756149275263625879670776628457756013616616141310609217870329343694491437387442680815754939204409260992709227460592433685691850461496200578639054905518721090655508949117044902377641802004116317980444975673448685552485315402134892473180546214810231151050589830422975695598265725051464304535584777787501812463089398904749319797291095561444484349719146362455791427072919663724085735425703095170906397591692485798141559467092151100958698261363511320832042012316123410895227743407456584079138913175333554217241819803134593162336741299521718037241931321109239690981947137158368962958807777262440987347363574643364414678473464598770880600546297828299210937978547439830020908918545524036433218432815875068883124196341648638237478116098585059148981884034029953736536279673977680036327074922083918805761013907789263631713442575672292861059824959685053365719138970510037587173889706485067584103508449704497843415150187533052567103794760196648811765683393664631775358041086076172691568739444074576454565485820114525116636569162968135220203919885251336700848024797273900552506829446678089696585159499673282221614884484646192856453236179561159652198542898052384167389597161694475733950921887419013368080905152051354005620653634444348794919162887563037471551187358920569942039342107061997233919770332312176822032698560338737739095930281679684420402546419975941091186254454945336316375248985936220997014623725969105829120556351744819640289538554969369726625019531582406912854173353514310193116641699304550953393763935467961812142401895662791842859267055711595183188707858253098513529136585803906833540515212604654695283467333109903802353021182994254412517144965164787829042873335845686028653763334391199632686212317432665248014176484654485145227910490145464615902030036306726215972333079003968892493432477006757636705570919797406584682445502016696311827238029821734503698613501096029076106433197692501877730295371669098931966043378783222002087853941202203717057406189170166449537223559604443866833269766752385809138809161215939918653438780564704834657802651475186264004051421000495565723129276227355368529409309300715532822690095434649101443790651392378881483823494657740184694189742382505766352924025464146673057037766564965230017485829842476227047325311063545104367506296603633425221502458169234292160302131620039783843222768770228032997736721635519013106154347456644548960693298216585464772598746016091584015539796635462053246343531686910931124161806534462469060620348865243483562443844509328555477046833791525299347416443287892628532077656028006180470459516882384046459159306125071650340851709047059250327276755953202748381698468110064599945382078609541581770716863106414950208103939138604693548538080568128127610300903990240777547611214524336141392132126979334644786211824346947800245543373329474529064060194242098085989101986998070180001440109180876181003867785643268697467337828720869514178743791578182421058623757777051309537480214727396657389194517361207636544825312855008469153337719444694381326920132575886409998524100849387482294966522280054300392597032205601553121605433407649908193262155993446923725086685916061792794480549069256238194462068183285179711579550039466175052541976751623198982900815570514725211931674765635868428364191593155983938153358024675252275727276807347943601114798286149540726734144911337473457446707883680857624204431547381723668399209139463307635974847788027729679932709504298754166542403521775602181328018563173282394579529151936566207332909935475336084423508748986170260404474766507828868031836284873496416267194288614241841785068422795208897500562039842851478235671675593342905977651721165924733649378791489207112186210731175791311790785321672458747274871342400629571139842938464591070935797515921168287873873607986181870675160248786720584083901518783981033810143952092451244624951681779407113435059981412718809591789774134594277919379016576948268045791405885198807771551320698313147347070736199314567887643226425004413130765401931211290729899276535197912943750527408975587466729971168543263612548966181143589732943253926547738739392933730438011040605340691551016644131917998551232234023901487120518795899246799525686369703857677111843910913742409572190472284518323622322054269462293878460457762574648678864144847861589379509794670166901021194668315815056917522564220447961233667633280029949012729398754690870874372016352411788463273641445173366611379508204512988187222968005617150330797714243937373223599467694529537487211970244927454176830801149114569461548912273023868742294017076949430523549833320349688257708666915140702866828868622247376896918950631416170169916155402787590105093731725553741046704549286082790075229919086240850674784633514755351775857758589042867518265964543084966757130104099583997163561171560121817473664228683243474066841183441757474272233235448017954128277321387602147851833315344972393848075780601984207865686693917685440645129934339862317416839960708087977596812737678325738443229488662578951411701607762851058931532607816517125120091000700701878665522644109520975690736756159585487155595451039473351847721309700149630099863280829864521922813461330646703005886840048697984685141645178757884578259545181684715075949216077321340406836923654530070625437903588756525414823284724015946765598325243884688096104412728449560326979230669136526360396043980544937309016281524407720297818112680991712943746361268816647924444943958573379404617609623123772005858040729986065481227609640650841499557405398994833249145585385202122272156180343097181398805902079836102897846092417606265531255997648955836729709589427008402111450457530214189092788835994259051571179717495388832921020439275638362669387872448160670383768017467574437274171432094265356580222929361440527778080346072411490022921935930523692208502154093120404017493905762645580662406937293950356413594295311257907157444132315504806985485365251553309795482747643794951791823299469103138752882010809361556163117749595336668039379750203712680957237385324895252872995675209168211964697445565753187596808773502143559343273039460039279567618695973309524482239504140062565975514101692637781211566347358078703244896716179302171867397144138750462481390213232829679187728091490058142938320606018862276542612203577604893490881956283579711269991156100849857020592283901346562861232245546362325125031285925063222900158454947268241241880366435782755352896326567207715289966399982063347315784290980661679626853205878542760223236364611284739975950622739342719586709745656373274879854112307454428407807975103694640219115466271213844945619724111341461969775446745648362843574954131645431558703263426390150028041784603884862505943276286255117974666256699601283259161856311352131575604026802646663768528609465263239424709506344694095369481187797377921532069596625885241890093656936818542268184634179741055122493654392883216323602856306102262476558964379375047096544952321484347830642967744806172453170050743496294632323676246976111626814400277993693038245630231589046492533284802394909399436344580780302698165272117866864194818906378438280987050878411704717673550753570396959851565798854151436797010823311546567310136925695548878746483658855545027053918713909763727709464313458634988040176544577570963840344754571384864821247502405593751726805324817626121068910339262723142182949011926459377369751598401583557425387012505545441490605791092688300539665002651157616646736926806959826870223013705552820920159852021636884407802969048280254597746768567263970135683615362298113652499507215648675223670824039262330012120668991284145120091217467868822351469905043045286334990212101776234604871832520040422807738396682687279767173399963092725774928714104792103834596915324425791789109251725861647543694408546976219916576332016724269481343747567795424863015223223586428216483589158867703466894325533236984966840095841804333692310111007218835369197156695365283733111631499874450364069893653580167205289961153899388154659348005238525413140535090076665851271798802674097371839027924276282129104467990163278626025719963444436225500423093751031874201019270328711701170728185565708770011201302898350056472119137823788569035516612329095150325053403080454064387158148820163212888476879057758810063512451320305458115112380623948290285839017278131007904446742451891587133397525157711595628631309276601657667663258858428528770914091428951416685062721644590199103185345734948609240466850916950988297547938897702579850630696432356253472283118869095004011134037824427443556632217576394787786293155869635297817295806392584996392144649638521017498356511580503564866857268165894875172940302237405741711164478581382102272462241952129712605894197683054184729440113429845146935771193244217239735190814216904456261005666162425907199518812913051154778528869633977272345769232759007285216310013585462409097991055003738644666962117559623616520268252899400716254663890267231688137871968744123950237759226890781437329237295417700338747592370154471360451636662806993116588821821352990145647696211869522171051067846648336108672676256546520972720911148023503260124219523991739310462725863961524502682271033187092201466689194261864265014876651097050076001819791398829853057114601183650873204893385005533610556839010905350077423326984789470003457989013957772985395743117351415870489615198703249211191237603319012183851366798685972846440305719370229626012142480869057129072546452489085785830284939014879152542278370032624199160870924874947107194192408470417085174639307531157684586614979338606818346977157819341531076783455036375081259725281793912543194030193982378196142220952650445018222897474431296961819365296620748613207210878474303635164135550381354679562120810707205597310170034545073738195442701579978305984842490509272250657697691603079509536612316595837262629510508631962768094164022618093351769073069832624719949681615337210780800272634001058769273315635614066265987975466430742596152028231202419069630067860809197660252176044211155203500011241326370847110232373820719346549683322980559017752047904593250257716518442560253299992575439616725194642110784095616141624412156333785323677183575148642846111949240904243032031123065171199903718237930953257260331808311571659321425273575554971424049682740732664280938715885968899596427395273187424856887318589068852852787004072042212331355594781160422766533344379423826604817679871190138680253526388546314285128134182956745279776482033660294623238966728853282454253583002490847954362669252799991383446424888897251056241071678484153217719328236753363682497683752551049756579239164712885434286941697609101133080141694828703971247480199174375930596992815434370149568781089270648275665496895447649933951718370867458635860562796497970451600874794602351584717896743798081257227435087574562782088602219546523806731811653765713096078644899001469278342104905532943625221137488045536177794509062953123102716904021273959151956462939015093774707257012707437911513320180761735870781639607845078068162119131609104137045512908647175873464528931051396652880579265135718090135200564467993298441946940069214488549673964932442245855413758712071959588764866074998098062207031068378113692858461153190503211179995885454563201795244656352962781150277256999418727097777571488666193466164728434336281403781864373655654808034318079119877478475444581906763030914378452188216620553376948678546386323690639531659576944942422498875934507155853848486473687161990526973872690049888392984116475740379603644611724758870375682644269043707938230776706110586800736846679956232604862256816770554077061118537254150559467128007652088061774351742026710590141143651167689154268548833765109054506153224079722229415757198157775490238059679916727529985878741638133427095240391710525512980866980789894337660896608188407092099084629366111273151451040856898132905794898704389511349778210806530702035840945053959891143638008693605618557575529519565867032651334292457105654351677301645553381897947464676794797744495276195249011124772651639124651242617106100313674424558550335026615855415964185263807369272695631150198954847702450875366846052285273650635646808805044135277434632362965703389200414691452471824081378318360113303955688577840436093102357567826289373321089379190205715110514663269781205632772682789515886170283124286057770413139076703337552378845073377716526166866156263234072641256733570569767311676420827321761964927583808748905061960032582701351561456382911975908928908415462913373377312632789133244414216563171870223581964773048685849900762888990809627153215733179965735426361113865534639820001056777353715570023345533226660027202287525889117071928801863792759148727118610770605866230726119082362975936305052086592084286896411956440830256969644938333598171029589478702682639930088701585308875799305979012849125225729792327128279360694874174570561640316341261468395238350918194386062143353244603342698739388681492516745848299455638720280185872117103876572362515805197211673190650656132149095836663275747732362548882142932572062836032812249687679896220835850872320690742261675932245262229625961043889520877310019989329704521983111889791317645085325860095576743710926334858564623688908334727436780231685136444942445152695095527233995825098924180311368989729615777691603675191918895972765704203264661694013522945964856862296951882158771470347004309332176807408653085564792603229968569126102328185026024657796623167313412309146869507503424085673431181629993757900741696523053095141451798591455812324415904177955197481929161576843253287949219385056727220460532788961634240143074959588358579512406406094578393298810608600982884704137156447178461089262461738996129336301371975909642608796744803473256599628922034792327689598064199601590276543415368673052684475491131653123213268481717593504694967642185558559741436525218250427768584750421130399743860914618443769115182387347138873128489898369184058651975001656277720791744462315786309138478061919690941055490119828409865217432520405685764119835389191065106677150230527392087694178610884523319377011023187367168223737432136392218265844947447906169098110949851633086475559055845927220933503098496297448058194494317483995697291174704936404708122949748218469895032052150655615909055874401912268140891883605579531862988839750874009025395976965314355777509097082049299746707669035294339700344095441664504223775741502684517135409911283738233600718456070156192107705608454024024514885876631898433162432103059313547112801034631378051308664810840228302222863064171675886085239961577924134566309563827078780662101432598610728934467187208021512347397260309239144828496791293477634918322188684471444020827447013387467225653775455341067389943778312248408314264295646359289839100673349907222416970967598963531890011979362902547564058571086209602083945716138851992357926883797130373725503762480905097408020229038170927500783594679128009579306660368538070630841756912015744700696510271162024613438549328820603869671101402884860084861134017247659632333189047746738497144705951552345877615472344402731982623683266062992058560710112412990403451169407389532662284531807461696683444245046905604761695811729340693309740757059709748810424235156915220307855234217988412618440135887829668155072589889316575541305307751800879668467648422372781392878248001645172518829642960521906610920516682344356163360433474946138030519691333921881988595444027977188083198173351102184722848342128441970739699776245237114252292661720045468083895793082490848199767034727597388639033073821177184712931799099609366266784445622671592261912470415454740656293064042421482612754910702263837056762296264824320690013556960667651733792114017711426881627081246935474383265706712474070390985731884703933815104542167610584179138721981788072403196139292416906910293463526918919898330435947750040231924410293388182656779994931651501896696209356044867507887426141032257411670020359360165613962188521826783304113174745782495105147545281818760154051201167111934523273064990480039893746616093910444673548092073897984729013265291353762427774568759698751626769243258679857024565341260277683908198950996054563309812739528142725121664769107598052779684011734078371523448981172991000333471474783592682855153000678090065036340042577982691438432376334531381320488670098923020693544060009350915501843792852069484642103401921612371909106702083920963155658358468896601426538946781876463946900679290410279237974917621379272233264424809589351333912159301812327063292619880216879610585998346292935419858262042197373059461245437122281757845753262680203530873477004307322417411938118484337348888009452604895305268629717409254482468624556566580505512094693898210893625772110322777682983768337329958493745386422336808993047260795719491400301586111306691442861982731041523759145141959903160448772202367045567986334691888144027711694222689989364372672278595560015767170469108922856831894087563975600103308701008783878426649790691254443538787728305255894736015937744874430815780305082593425801790174558828227686902168118575066555530704485559756884965504606852129818733062400331160051935746310971033100408958494878061526963036518034961256255219388861171067760989024889914816657035910527257985188243638074619360663607452152086043606723660335481157720176199491586037279133305915921836989793113281816385611193415385994455049011691295395057123835450230841764209394964653086379937871285925089766313308611422731004550365295216325758034978789743165393553170013121510621195876699001445031157956216950815597812560199142087278244107506066506577352316977375433158837316180690994529277222534147584158114403811031152992445157652346747462492083109848041384804389912163971602361203191308774784810830845823940928178729766720141736554677332817991744271240078141983545246959096707411328510647395060158841244267400946216759838224786326395386292164232026425995311757787670590729797309981166482813228613587180243435477969114570103076641243655202149049002188641722965361945464300396871012804921122276120477274585723221156925534438473786476411109394093440244582247109020350753666017472891659652244908715360736355292526900830263412657150449054829741943763626305604712316500640494785665232387839560550467517720987689664158271246087303873287899581770406310425567358693906976550764094720208226254004123397832465995683176669909560261921115423512716950782806335917553727815665748429982849577460287831686987046953748095784538771334464966201223340872754891410734535245847775860201197044746086743707098583403334080422248206783012863163666406069382787102469739838287242453272027203203690694766708654308871155518322723966956237791312793740877264918016471004173005787268798048818164409259701827641251851295605712458735585125794794202800942670452378096457509643809350594203095202032176934935302526999326204538946321392441084414625459024655740382694949094861595428815059102851155348774150838973852969150029987322533372981146039322047797096342752223144262553081837946830110241266670840859627733403272687713033054977534515521374560377726668895647129600876337308702176799278892978806091337177301395483451252838261584769560142521644198668799362707262781996704415126139086566051794133648618791753550821932342014709081081735615511000757704330529720127128169581089065963912365048418005970958127923630650748769595018724011042326346740534181814724655643155790907264222783593222819661450580990155320533402686497794069333957376346221405802528051567331614311191706371002921465786516166226997742974177731723930715172619374096022522735740358169659516314289390753170792469647109461778155677312577004237622402251869448730360409773266246591865435955331991213782639547746777869138566474102033456064109939179022015760995816510791225397625171731085199703148790559576257606210349920369462608950449040502274971244646927856371719853198023019489626738368611441337649012348358957221020459367491312037674732223194979871315083646660825096824766470493450436711744577527224023597755006656307397320951064123122074266175003084855614223176289114643350687722865375204927093668154341705193550323216272878114671654039354109455366319716723712245941747453383255026741880145408865387299661284974924644343655904295365829726367009407944330382418103113426135658330657710742092269304079240703937120932474403587943501297492585750149897915039353012827790960331802363085344978984797338390873640446652480143189775974805345347036010292244197248166666736389881962955268113625421047214369106334381592599107093224381086380855685775031403675712848542162026244396742917720215820180085807989742859142150819139599609120561077072898657221777213186091514832927457154585340099047061420382648109149133279470562124053915692313175093839520262020577830110626236950675442978254109641978433327778971225690805917864732964776992461413781117977225270827530561619417647135380035636368759533473925825974089012535467940056251491206518657253825829093331460306504603062520660868312894764458632459615458443540018209899666678011097815565384756198855865130705719894330880572876107248692080036726339372868459740265255676783363855342507377948680625001699240436964594209455365875302568010051244270261503957953698109875666182942768183685036305410866291506782345955990119352523352900858859624299879655253406999784209290400006572031496149337827979252474235091952983693131193784345660234385358442802350070426332237354674246589662300303946504369372118677889961635972867296940825851481530559257112081238455288697930027692098574122557879496572200541150628408570733518152024813670246462954089801173980627742065640028804903396581948213766810062846294736189115437123059520479360335582677071534227486318912847131183830376672616813878547424331521967707523035811277610187759326536235960571626035396210862706616287634206906566202755490417710160144196246005020224145254079629040493823164733394211562398375881178666294429612408674794179499620146268901822475663986525050557639371148388006081498671334694230639909262951835414293275229396821441504524520428356310007828739845505743402968807310570746785118399010954663156426408036429158781058785874827730747963593424068973599468592052276271850024547120946988811224431646522709082671251149242019174656963784218856507958298193510276680025243064489827908527341820683097612664022877027438862731986304650786533780872451720548404542567157798156963399356899930611834488226701307606242717299065790306576802065760445828663254451874610100757784974567325941973621540982786872591182453096341113462656274613585703151593219533872608859276645713141535416753447916587659445053126663848761749688691499785713971414996740666767659209750470581251099774318097950809789471132705214778148964543463629756992416025571129467407378339014310309627299779445687360905963728895573290636506705337098383044967244131280615080213422996420290738955218683654664133892511804683711887492227949970826300172731976242584592377450266541954437710701167750317578016182650518410952882843368405489553653845938026615509284605692426118409764688925787905905161316594151340467110061245090848251086580032086300157524453300085144376099837260431577514621642332789865256457922376022553567804906464517778428752724146031323047310875617147253098867212562700133524494418805078297325675090609373311935907836518311938355692254525059978118329340697455008183832386261811048588003805825383510179651116145687364566887722293767510501657100296940162584844176523225228295798469059831767771325810622811320749666971421479090707909195921887453223081466776605318176083014515722181513930130531880169402311070221786539453463026694155506330584545984701377240901788741442509163477925204727188217961755869517336369357687239953128110184493822520401624348617210645983583806076701564279035125446101271017773447464861272948905146075499328767895070927696789991311692831222820237697510079680075129465153793903771819126233350675563517635244190141308611322610563103859381084684242952229031521044087190062840023457364722353275727312642834957203979898598681358393341735012678991779284086134262439054735466050262016884116776520508403062324033471941972355441191894327005459543013076193975411137862483811499513849254705756806931874204929797391701356788685283796474305629525929984739274830350766001232836558321818598815395505070758724778450056370567776025175682955242874842175883731197589196101333996251609122834080315747727695106923051646625294384445789478673928905778671640137950764036982530907366960988126287557673564053091459295200210350734391906559902063616038694663059966846991972728618525719053932549426788148998870019330722987829756379197810802479969478747973379169563536623211207333664795107644355690026360024412046451848560880811244477462624200079264406594109416277501667679297935871843716007924625197921606088338284834137925302743468625557820497259454364753637243538018525764235578738032210900415664671673595673685298356074531950450078208956695539209296752446161394650400292809053112764615245588500626319205318679803058492678185105280990169274416215388378987318605623029248533631260648621118123892795987043478060121652756114651159595618450151584049696377734030782933514661939491027340750952469430667607952091020492341686923662345888762795064702083338380330171738870080791779927003534939631444947604691417175622963739566578764429624781331072840911977291343393718370055358233157848623690425465067400171374357352494763087367919087690480876479200439071036772681882809929480908656004977840274302885747520402609697936393230714631688930650587871702185963070840134036160610840863257747545592985916117393764186170495423144616034886901820666290214671337205404720063873886539992014457234784204102676983686243646400657280334140164228665846267695917337157000670601265280440463459868117418011383294273622165815857232470079188074478710635714883998207012886581809942157996718103007664077458800722354627602284296977985499926760481262921883877370234215653731642963871621757749692620907478379636645954319975277160351348458546941969245118915505261635855302327893949206479244584456788652436540535520651543868936794844797675554260706249946182038944135846382823190004812422831605411065826854206243703645716818927124462271191500176557152367835873094967624800589994090905032309344235889176917643609477831199834195508559063018969718173399331945013709312615770510148109676344305573917000616762497249206843099453232964794591759111080148476950902116688762949864927861596416689241542435220182419399891233766832836017895431552647104214616979389387400663777657067841681450062806124318219240796774727051319243198277413414915504483827072718602799324371399265954725495475890694960615377863606729075677754797973333057056953134008765409978403034726975373511727739440483351156296023930751836656938969991019291506389153094944643521104544441561550658696246474434785265536317349084199656919786877585904454025256056507704929213705553970513617414104026285043681303148226478988406074423983103895095626320987019313160346086031496421337799859971905717515998874223886984581499495573601179277842071591291393374522569506927578320931839475574999644112603847655067218641472585947581428316441232509791402295581798138573457391526675642115192151711196968020043197914126574865208411627296182451061195232140827306136775686716946482696063701649047050696578572268114921224633391551239101992725642144926719930509745176945690082713590436281668435505128305049865464485064247619666019188676250066259446735590150102553000377562013802833080275503636383755635847259197495563367272411791204353797057243467954158176725930649283409932779084084339507620632085381445445633146490129679035447289556609117303349995306777494796430708587859951476639882112340964991932123414824525302116796574531533978191076509656779354480882867007906947743045997411161843791122809311306164765133691864021790805855877777538088844086951215696286218577132529903178071192211308699586162881915849547120520487617287805367807237437075142260744052612430584935480976153882708875990544234795234840359700030450049788057496067845070879701753927734571636560268968579334506947331273108412460038914539760688888888998446656473816146196056697797318834764440570996750578114617688732512213800770965138849577611260009040385047805371089726801133668966825047198490460959735526656375934327935004148785823028765759710590557753293016185903779542224426043273857453431880297698460410766558767412580475417173796116907168840826908167765593628489057787624941382403948583381627917479972821853901154021724481225811560489560915890438566521853776856414074226238458624404028526114761321683913272999086721237582831657077372201289761351066277286335439913219788124498151911239399765233558489116000055431299508801690745057727345495219976984863118560790844413352179949354475196725652116840776521346650524444101811710253193953555948218405843963133148325023190972203773345603007314527152275661606249651194534036956440849551797743417279533646045449599543601661013482724618170715116635956051479407350493700192009148746698922712759879476777740888111320331162489293606550294231396194361130109929908445362593064553910668953237118966186625333603541787340327091362808006455165840603837694750518275757346763309144822948179430075017200339485830793433603441148582520379255190241619746819808516596925069015170234676187239890730919847423921620972918284802311377435158385509402104194086744701800931417712939919121788282411072903355333937527877575181377506120606916331975172770214673568710965223302517610644102813929513538989950916058071676360816162823345462942657990598537747609029742715831913137556969904626026409890363785656473740631121027128433899569704143760902934231991162662481464083840329877482019469156127915496561405116932158691973740580450746343814868428405658672086096573389878326943045098468601360592338974855557638176301555817423073041643152294215389393010875334506617510502625064125183815175764230136451437532544740453704857644537908680293908900298589813616451123629872651222277510998338268770345404583010450193434075022857844361291369099349095641533304449856298560931005399589183876534642781954034573162524421473370227388344341566023514540245559203991470033646427388892872238754050459772517315642330037561085057521098006230646295375823009144419828432156559173384353379625412268109650064800181981696196063032260494024119052978112941007581126717808533271893537690371590659678381017458409404428605588828622145068280998672998139604199140242636746919837609369196811255431971445259090488558571654795565485562621760884162870503408326666760927402717161334886892460249344125187698180335994880252638250325033176997951404227837313991827641428998430847715792398447466327668394021893895178735817236063405630048984772996945979377975576365565398216676899604023831373129476613270127233530731565040015071317172058926247297594191263178886447054564372202576591551974282376537148400260913080158311593242105255124528508662748355723884702579506861814140082645283805654991511332046231118727023177848988887751757718951909270195816640106162188776540028731940308853510556522041752670933338693179417349014647626516156743951428621936311319561431024125230906762510801507896041826700359983263182803848853512297565783666351583713181596974734693212693179351271921200759716273103320718556223871548757566773521609190880004867762367182591955413134719378651529784723159185595465071945280807940565597246016625511643390323348361750685690246613490971282472078854364367580365078113562643110368376332441606907651161099978575293316287795849929390734261892923403322113748120658343329900646998791644352435789988387851741572658642519231047759365883839647319343780412593914318005807799086548040026084086703022978272210137178370752293851379564977847436430150186086605395521806858246486279333512708766167369137716354658296701731220184051045437509619831980689805879435248112958749855657718354636041676320394823753871602604392426739863298123347830408936498642615728116179476739583234178043668965891467621929103266995095545827045321688429452228989910916505041306571378207889831749832960754043392117021553760326606823057419915880453614117426538639967546854217622190594879925416042581384310865101314882356921761272542507576903530848514650080894370307397641929164676958612929135583674062090412824896536088408221357560084380618670236954276859194703812307203340426632447674921665311313265899204124346087539235921458946541788847904960586093627090408240933697671104128169844343042645722782225506591865915111962259308448457599809026436632400317869335320812052274108433526443039215808148662286044918544892033823793620604455506253339014037069365603969941865851160907050889549153171852681764412859870606574228718994593447920235132632597765998657319244508595131276297954348705225889334914358336783078201648448937343994255137276905350223077216139460299291697945118981917465465337632306551657224688483919977191133077462276182017499194000577414342101345976673343547383330405482953682971457439259906706569178554825239826264269947862361797327448614618347953972374831788323304888874710020882123462231513457581015064165454521804988897850836415946903684165413842477734726740269121113378318279603617279953576398013899653757215877889734700280240908199584302469761622075106489327889410404068855789728034469898890760361986095645815040756716117077447847271620655464408553978222624288609775155400587856207361570366416197959741650219704551765043657662915428278192581304285668349189047938711053213853086192482866562105701489121236522132163974114098845927748936366142529632608120365306087122040168906678057337099034926755712754914092306527420130612682290863671325184207079331070381303452799955936282919407610155203515260172109096066042969832676166168838324977974064629337571707200801129539259985503780814289347386110356968826117883603853343986138835949021407422850492993880746746054945243985448157421326686290365264096112321989229371329772315628647868393209450252121031138905041543707968189568313434490188107341191978134559715209871280720881227374719458517949963221137920614213009478485761326024783145460786266580906387125722803944328022199891964389308036488186478605823725615486331458609652218754802333242465642975166664725174279401199522206930084979124313200427637159871275958098327717217562014993938487030884614595077758043673641209823794191448743433609287883761064837414822321826795514586713780750789498277523638299073679299473484623162901677622554241495902855330228507022240866204486509067274919638182257134242278698920223595688356442790192083737812543291787627501525655334663320949137644073014330991669283505942756436363649709253931168602687619446745170185933401067997146196627446666600578346555006627900870297804949126364319016093845036403857727864822053782683387673888089448079258576960478187046287366907452158965508604975937269887210854341785298541338408199900712956918881888045958256768467676688221611701715311566273152050451110985808307750003836005639724751196121204235587516888190158397602882467811684857863874582192938943565669433770616956561703089792888815612023253861104101901928096053656960636300868497620184235230574098652684351653237695130497422613156268344994077843020607380454402101874585076201764566688560224567446259472987450886299668618241533257238442532838862832930486572324500156543203998897604877343228086444620564953798690006488966731145082663338093792879746078131116249518594636171030197834721192733013415513570292693212867158608135740405423601585976373326068147805436295251997503878398672841440445111971332797755387166812448427939143139973003691704949179563263259222438937650560694319405637132810491247608816076555457692429527731761558068640109743139585356879536964669446081577867455296295645993372498497868382829099517775165363551620060086048525128028766888485849357883747210768496099855457769075686151714828734761957991928685622657741614307625637761795223866789513289864871347234661058671507186605581174198049458597417708116120383502287863614932613030237122464527752387298951038064165027503936595320215647653410617852870236046623977268102399875432238317348962579418944668504107836581759164537624663918459350971301661853529396476986300081620069321096634810046658326249486368489794751151408366946373551118601711766942240223103715355385117155497127487534319619609244801915008744792036993830904459428488156916646111040832483641051645393966854418850238569465689390680337843218725005664371832468314009938956563196370092478162584290623853375130629772450156074341155073745673031902843229073919674615579486354277666851576049261457266979434638073031488423887550467445400276564187747463661833478705752694170929205979186858789793726843827770747603384170622719253612709568433391152897009270308119152875307482542248282993207735191331192998214296970233948653313566065281509272652925271177136030785259264816116253289185376001622297231512956022228228837489705843918780029195133954273707188771695003534375367877436975234829082598440468128735249770969250665440439591176810558663981604881107182639095873941623390468942545892876223632518665430435336026263855699453709542310004670910992428414607541471674196334874884783716157435641015514663779635581331586423590945241725065145907914783001301013083925328049497276371888378547684215816360975985198274030539033897921075975797755563583010349926154685119452791942486306557805574035362667191408757494799563112451451031285861294539868829716002611710001559829733656924990383457400301156931190948373276499787540950190282413170270304366700736162349058582352235509872653741619962090875264529982818064360049305558469825356548907311282489784536827150814854314963623445332244757422892310657801528792006931777532169305967640166527222985080661164368052962941311887653101163504328026203653959437060393715895386792805754095861791583080500198661444912790672956715664955090778975940771307168973233408512710796567947690847404507941854764313369102750465992820654808145712103516991509852429340714763742798656084048217375401052492764376549271484092701565024772872137361240017825644496068096667996385695526835582431773178661499466070273613839679676791192772631425982717331498810293670056583662036756629016704859956011481697043173784933924331328352887384716412175573586981384250514523961513216651350711878053582029544133755475612112334464776457867509446781838745145170335639358685953787389324788777448242689210561043533577875190176652976532047290445140626269787472654250922805308347117151599452507392086128236640410797182183353830486779750343435072129388110629723843499272207361348829186842313348383720314508175918823918014966528279690534848302852996531347682757604322821490558984923046065740900461114063229671029232550154532629102905901856014888589109330655372044120617494664367920619206787504228250209520756279798569722188490474495547131332357407567020126603495871857500382341073220039572555492809702180776585858732255054272878076751956480145335728132039002635588102400887948624604056243121134800360347756257443052975910458564835194157342957977328375502684572540794727346832064283542806154175923209668423180810655801886274849765390214914991351573900127981069119620902992926119997905266874436611040363877934940628097425178756157217972975521600717798016210782130799804175657482860666066808513959021750830101668720931213620461211426712292238684900056233483445056676213626920626446707771529328944483903464923529922340034050927697742872818678640631768750872493826076997980216524188984252932806030522986729019792362175674958549897591969356921995038017938176713227205481854745619967746179101175443064908166654421390395224314006684455095864566414965243940910163550685920409348763528059050799742103070907101262360175093738607136013201676415388287333541736683543465048692160552541658509946977057562556582013794497298579099277161664422344610660105030735227674523178721066120126584133787794679234344950090359289379916420942025137387688825946108450824940786606347289332353361502568425270161113101753799040994945801247936402515202237972375083176177137502994978893065032505011587272155262931592922502987140734421478754196817654943768240494046760073720179209853418423618661573094713075399395173328024521768063577398789482965331609457998500196729587698395088082689616377599881425770148251350736866515346694397101719750329188678261134447088561365204401444590213103252542274699346738803910378675609224205882979092072912963712223979467581843274912169975568394550486184217964976654986205322238399447681896104758255642022235394189683256522696016583624999116613687816572403873458539900064474126668909213556163271565290732821501730961588287663354250089891310065578305449536460706189222954938869449835625170661587079961802269866225473735429207768705128340617340468622096073512629411140013454729358623302453254652841127761987284406292716094149154161208306379378724703554405542916019338434239977822495868355020549848161518723614729624759633783248482631593288710114082514375761346006144780455901175234561346467254224354823709561825332365880942310217172025765279637670132948065739289589088214980523280877634219172984347463855215314105962254164860354472504509371362834961968952314366203389864728492746135184602027246940565018108116307371745000461496209616677868413884495305881239335146467879946693707636352135608830763137626916587554706323240126749030637193607665714453601251386694191762686492308616906436299357495638462602733667871089748299964488180974913283883225271180137454500202248958306895380631818217913602860355589448506554242474284112641461814279780941073316682785424095477817864670172149937376251283861688431710098039376684339857644305889813064001058522945168432290524420021124476652594221679514681800332685845801384081006954819765259788181212595064972531189285763833795976699682734432999490455595356635060389819865468303937595708066076758996931888249336923838184195727433605329494733938730578127032724584347657794603234079429173557293404435179502078412819542962108381822861384225671560361670546681626601912570600268701792979646885483008923853379931401488348392802625917591129362010847492338362753042505834774905303860880030254342904555762778594245252136254905676418153985960166345118475497739784079282249578048759987816118129554328072426921331645702251388696498817043045234639207226917805551114765228440543813994093693331125794882875996680586054146162937797571389209562556385583699130211369394962375802764705396726670333524474849721611645458585388403958599052300146416681978976555327231164801611437979531919673673612140755186645000548063864124637094252490883269621657630955890355197998356989163868051732502487068530313015419635992695727380025733744016527235788891248665399391013919499148010327518455150472307781737950462090960898017080337641268753034615793905425834870367492959816583022172957887205516557953729847093243964917773256436862895862235614456737856258971276294327577566824527044367725127432249729685642425960189178125460539117043637512988210469158734857630902377780808658440136075796643631841118785572204970370106481550560781757612744599448092090788699963766333702142368626120570382724826840631657979092759854112695325093264482382653834925888928174470239702459876735306247192462186681082989351557952764719110247439264952925870105581271329155489294489663786656758113705808704913065559942052288489259828731121016004471559773493880090278022080026204760861425568241149316891353888690418302825952421838892550130573578217460047380311923053114121600599396344028960824639074608920014666178401699863271933196797664647056414691856239007074655408271527354873856476482744072966172543924942545521137341431198513876673338802568477846099223135679288342935009624453608079393417983782868660896120325282830652266684783692654561744957292405847445744292126684279032520096735282237339361550767595504133754478673920576769353475095258693261438505746286240143816142153497945607597427920875935747353908148785821549359734679246846701442701604879879896803643595001830996530312150761372970616848579020671739858529221320677933382409553020526342038617846060975981230828352653513869095368739763366482514034341244726753214791368625187670370148424193526785697177334543033382069463084071293678007803960739238766845555891641481942594159425518609537720975804250019629233017013260036902833985405690040868467351859620498184355177954481717372883794757069383439355404376222696440837810582951527346922159536298079337031687590703100450159554544088674180266695466009376735890806861955144608406217225903882848057955487850004701998799595691523955750519586326880609433540022387704169878160068183139982395533740626513731787462268200875296205595227603223367705931744932986765146125339308611451710941621634328075437127123723646221636347261162354863363045511489489865499000840428132618447170727087422774700801666553310053767317633498774178754356271647392136430426675601253310219342855846178612815714259756988838009305326255701245844153401882009386528923047545252061919022852500110492187440000689347984065454851655437080161188346638488242763212516447816679845263680317261269140796521101923372933989033373045739248679318819807505844119933845617916762608201606019017992856165037900658482687016482464669678486430567982133702661462967759930725506732534921995732126517427344755349629486462459787290901967872058091084665745041314952326991154417368728916999112832133884817965599411695056843401264460615361985248162743633721170731173780514459202839957758255615692987587581675866104856283219315872509092389189532352539051516801807640184309833056597609919928759490657468387589079626986879755966997696161367008598008552198300280497853068961726661117023860072019247819458909312483188184046443607803275532816871916749442897354257637743306191379166486619204584882496116025342457354676351969192860805417835809640490058918123744799924762608265085683305325086346800247614083046310820230592336893770384156931466500178903525117480639808589524123501898125713562091254210854528529165007149938063715945364853615963869288482052457737467159530169896121108746636791562604716606754161346223793277574507005415305996521617226689171765493262521720256035230107135759810603708054738687109771663524019818461622416431201133744189821114737164655852787642042000566353377648804328798632225774668252634459260105137532381722508712029927799189801124609972894016880028840694473928582625992770002691023044317931664039904959464493804734587098980174660930128557485757595246558627352894089427173823538624255751760615697646404657356240259758315071738960076266510522795847039217265623045463323109664522984015306350207053567330781156581767123921220577919750136755331385203538087030351173145679890822342099928809024409627797249382924931842298665066956659901379123032588384083640866713220959357720559003854351028566819112967854167455784020426039711733235829513498093134136517644166439765790248374419085993932072667534366714167491575648228808374792864941771765933927868386534416760054902522078663689415709688731640898120367657066693552852323711697351078512860829887108173359601556911628545434997901886048920389714439941238718832694840296282124546163800680641866883947457942770492940764429031653832815188145460053633878021656641171346364803376345675379462800230642054727064328024437388399929672934740363731103925659563692674028522808271828663697819546236690578491264630235179557938447719564363345565114967380225987538284548805900191049236236480746687980596771254929775109679197465517672111921208136699108376431423492171863288682714296129870828851717771726612169112460035377336580148384571857827111237478412622629982447656621138917289445224783093345766848724190975237520891761058369337587828560844206740354802452170421175326594817663771096764757516604574737663724680432523392119881012638329276806829367514660857186451695344941302461803142609622532127369583526611497677067066666780672266633434496401815176079790362844291886986334684943871718977754062880257118315229310901715492795603288773499109229442259523119504542474540997656202557279620000934140283215971671728058848630845160010305806322502057882439292438761336891998275508975056751862105701015092491038289574571102677891308280464568744118901531047987028260627707618651346510220838364677344836824978431655071260105831608730639950279735029289270753428340323412984999010279980035318631662249103719885762205688765592512226769954231253736208851257671050518362942979879189055531351184017032419553207470860560511645488072356072887136089689317093838765419221262479887106624505824664449977673341558693852630336281292982114215466540954963966772163687606553531959617645776436128888810401584318575996720873094503116988537955614072551883163491059472197993150720565968178437019886505320654257484361523269911778441747802704957960598568602024583458883102932273904223901956891256449641321971539575407907517406513932569009519927697608238878698028800211404812321682199279260707650739454142449283497355412779425006514191470901287878950482295791121458146181512218640259721649727509409100162603392659877719532038978399954322963489123034811888772186442532378866832328988425873326121393189187072507769267527637217664597920041102147111048676608481572389347333238214492002946890107260316913100176678282453744599159296545436534470452726686789792992957524656091422699443256465471687801347833283974812309765627287111057019029118926862086861896211035443083915560223644608587411915099784353519576082178099177056896306436350882947882856111099612987110221162611634032212638259658066008563411777687822781089896907035332602651820917311135675252670287801525276164292268945715282914669779625887390684118791578576803753114131634664836446816767978117000838745348615985874241399442746276329669767478592324874768287636917875639419199049937537017979437119670567334266225626866081883140036632239190223783670103675798629247349258122267085457317860836946945057377477373641631112196574805668641096878797824851845904876020989789942298369383113153306035224884341990442325258417206628159877122808663800735784521116842718891750298882097242673353408684436188341095776204375476657360766126752234872059718726496915106505812365263637283755452083712602323428989056996286228066180697589277890440974130204913007052535392930709110390250299257797073534998872235668881703241258620860103075749534317259456783152524414455453482413122239481140825936813290344202818623971829994519204315434721418767979118109680426855138217273649792306865566032956298054422426667367739345687561241410187670639164930423282002897024315369062667998764129591116675377700023595425151642715024592187938790091398266564747747848111888694308557402305605018123702009758357712467943222601477097877246015948714842996402186417818627587184965651356572276662067924320327436734861851478817046797972579301306029406931631546922312797706678104110698025340444302133239070667579261335400800809791499465120743549842750577649010496087442321145819044957886236044692820278645393614319910901865654319208244845332379013962451685229646210792666488243627122828112525660980942502946019241826343956025829842885873661321674377886411486901164421241533830360541892265321162107855292377605331208536547283399383890644989304484547797390815654513054240420987793160719228842625902457871050813022585973875168048107606977232659479115287923579694921703372235994241887220337892628249932831831987019895550220095908194427343251869301469330783297829798454809054177163431591553679464756977198970493193007711030346157825143797594788509414386877309382937288175423971095827473608936803640146390999871975526850034690134069152527790055161057578810760787878479204416024598500466251681039639603196265925505101169028530638067639797085029730798677476117515744216223266686271922089477776807694822708471492073203560083817570384051660829529145850965685926883606692460358761303480280981874610281655026188106230443598963223384879902191484612824791490060778890121456354693886925201599143370604868200491544114365737666012192348821058522095345364527108568810329540820493196539315010357609849407216459768898856092533604849571426859598584387795048286161038328449960712733396718384721908927695929753953760923199906425522120945819190663289405800264863252336662560780778954710559075765349141850448158798427244715394691191200514370153360678419489036622518406643139886905712868900208137258009090404693153405139731176762328517969685296965570137374655192107447505188700325138963739423615332816734510392104551737272865445887036998966929897861415550369821594380067169626563832042971822910735621877797848830768440884325339396785907155637335747893840641858074040492737637508748854802136143766513534300067866395455482804338318444862501542245249336109250391044364920572398088406277974831655542068834993466278478512954952401502159596867298853016744028664527358062351619448109870495016034334971475988798343092843612806483240595705145299869792848541093810291777608396908295782100287020538835464437106103441529960510835858913165456831501945176939638905604243096969704247195013066215299672613310121599859394148034232237464389359681446900475683731718321022935788044659685273532219157935596566663753669955010668555246677708581918257040745314204229972611426763519033308934088400848168768794236608028401358676427036506538770283285006579869054769697897003975609018218245331147773946152406629226556044208941079705479690276107388761896607138825286771233951612580095895030707034421970288118654701827938097586253669190226188047966546405871844471334325807112040171298658590381542034688229788438148210828791073634704834824617391885823401442111534341457857766667662891699936098722517941121837355672301437207165646138092933790481929022292962212623989130013558072918990828181375565332884199362163553965323471250017056637864602999257509459044507591954348764576409653326830753230963791515001773357255261860328579512876376867551088443643943906233661462964869541872700846022647842274133902822663884143201325080397296279733920061191872974160764222672575005824379758840795057167986833289595424484409410705901529377847412006521376889364899374875866134435483926910506722862932726609731121885038918452997709015234678300342630057206477143547787291071960828334780258911483208706327741971019710491643822269406262577093073403374627583124002344145452639058681874688934851105904084508459839500373994523081634315795478652436127469001209976436697932844157398170583275552769758475356197360832421054387009769314294974628861266679083145839408205084042244628981661396023990923462567568355674355911517753257579614453509593528080507135193178930353036679045426711403793503224281051464148140507393761622706200995780333013792477629862462415395797536258857180101382787119806498148641466904193178334968977952469315241273333890927094567000578417075700517871329007888768078029431640885676844012058860630011584190553095290563326399799130608754634587107743869688787594449551221983373147944615447586952738491530934454021213733953235115820672319494288854078192064764953529392476497865821015427731392875961208099177742427289165252507222775481793236950674431675468593735150518726249843204894244037473584817780602968853085758937684084365390576607577049757752998253811691016237033431240190727174704307438976804671299321043299589460685597479950194958603115130881649424164291555020535873133594660937740948392742772503116637556602383484302497143473433741613066601017722015570872775339404125938721145846944461156125095400862361467740302424204770270747864096498180194873582743772388275485127515784554893578948348902824595113032482337771835870462859155583981297084150943215262969617671397582349672139720363903893422855440263982680312806827475447314098697528634602042664456866392919153115474794356104096171255715804644278178526322798496680762714026676220467912844512023336259619466735900862649504153332655334691555465278128937461412445928242614635067643076296249800021096606255672638915718815588579588846906247201039748957616013013851090484596022383417170063400811305422110020899876819017454445485243491357808229854222844092234885868747519700246050982110275438888248448667963411290799235814506464006814236436540939203918442478903226257985930992008248995274096846409630807800475348061047112861756582839706370211000516785245298918441485873727310799221628757411413025564231832529797211625044014616377608387738739787404703971829802133973277181646774222499791978534190867187939929941407740602200400598674191869146400354824389201896046550000840259176965737204592001978992228328776851782684812011020751999014125798138681475826382945956313702034899972091700333507923808012035566150629168167575696911090540334188315867522919772323638022756017803138890672688177531753685793542473488517725580492451927695960392908144272286121098093969341773135823324295972377963842774287823594871765529913573486671090903190955841759087763663310396887007136586893079429600584582482008394116856517285645984116069974354571078588237865775176077396666172872157416732752047019831083336891448078702192387277193123865170499169421212302353395800449546292938304949630308047801761820271249550733988728907644628063954556696116669584740140795264340396085329475528180667878753052525320729232977766580194909696660575152766059807519578900124233645255818848529153561676477814921511685144085024884788478334604535602375561596221615353870702552652961182707230454919350764606940381099865519206587528650088491951563907726208270095704569790383568370417691986618601630984213823752477986240680180021758576568160248296840433737605910882062053243089248780710377194392878054418554740777286983676022074536288510214573243829004730927846480428224873115850899973871155154494221581783009499291133020423980247051100143151464965977979957194394430790412744155506857578151550799358215592775543531723330835309212665711874773050926480635616541036151798739455721501106074464794379390170048793233856273925283364211063866762141517915638665678063136744961007303154100055294940876011666211619488310899248169228434363284139191237992206297673006781829137083231180157656641433200582230807584924873576370683920132256800807687933789640093774350667853854516724256404376771601243804409826898130948431661593690602739250163659142047364769068470009885764454289993616217017642714598869637601477851867028351096372477836430098597455252326648554311881729960383919373044858412166181110436294769005544391745419561852048862918877225209095240090770378651028398590661594352970162055219138736501159352362772501291992378992920492842575981502939265857043834950695015182101019014387278522625594519249567481564474975087118596571612377736183749144010398337366856869058175234430781427078443837800229835612845057686307091654463792251313031830369786985422361776514145823118225104623808887684649974948831890075857762826171731964681459205604907066553356017255482495232959030379021896756114877267876370690793412537368336029094145398876876320469064759288815607717609370441256729771198035187464562767263131987709616491645665512993769864050445281236448970836757533038936230271046223322891431967659870212952397882449717007584792371624351425934220906518993061907411365834872509227186849847561836448417168426410923802997325056242600140094525450166320155257616235631014085092303926791930995270856347768445554105915193111993221239239041059845460867113330072475171388758560197009463870277466158953104203363488595148010822684151583869597220727024088847081984489579876967075306075093623218761807286000498408268020710184201009535534257162802021434821264738047688142000616887622572286824121688408590999835457387293305963382134638494755278476302039617942949726012059467496153642303723853117421415631527264329410264910935301690747767500768879820513773656935109929642452114763490636608339488800814266785143310769487196393692283834946999827307449867575975159533695906176076945490108204070362380507569545340862683785991034973387499602283956525471099527389068392282157582233920632142986339305981535899165832001191122390691158570333718549819174109699116619890937659014344803655475739592857822726386628248199578651230919178992229615792833869625692460708455927962572125398701937888803835023894827894543145394896266542356310134280454844394962368425894672491646826116464417073325341497281751467541292320959268433870383987721554184555970933982256317518121790744580509921530758115617614278095389823248511894178810567218436722744896936452803852263207467832593157008621157244476095636816864445562512222610061769544875618426095685830270583783947784776089674128280103004218831724267398746578587409209026511657027316874113859238509297064939246106740955592387540817603400007068748656311456256717075754831569579085524600389450038548669236936387588462021485109631954867196459866422697957524400230072579106315705546112398858645944263857803429211623249517431889768035288005895888668690528784719449207504719923281320570323875153345642247352533101069892881585961359176609758162688833408920356956064703075293086802226280791529195870564816998119314868139024727470272304389540744936010997387974407234582120507088336133358630741396706761207368263902292178881464396224832175919408261394371905936786029270008694953596228622550509967258407359352384401036417226796334552902240238411288113315560426348273800552934589975629451927388032174142967603423837712801863064228185244314014501629971825971397201521388081835461791055548605076961312511808846369616681285595820742510737580169655526681029123084616121862266867105822377710047120547927750494959795227792749993755827929299478308241281190450976342146399004380921212119423151844478859987776581047415985396371670165900465180307966459841450625108469331410970358499872371237823174460147561111756408399842849522273041482340647391106225057761872336123074074266467455512519321553465674765267361351391022036246451449224166461441135710981997581255492705899096552943666696948408516848952202045852041639330216587964721034600481171820639775699805310126929972083649825417016289326954762924387092537127190503604828224887169687890894391888315459160943625569973313444801889021794079870612612789997262659619942034803319306646992691700877946085328550583486975234030179285876929044627561295022029928095822269147906889644718698277455950851990904643616267596646226613633106674316986563656415961887941299684483292737396988748019936309199002334714337753050753880214068564115689900894844510093114509227438171690320348168473389330256240047568102727213678965022340352220436253468407038126411173363703665078052163648353513048234904557532926934776684020905757725263958611069683260632316971025655485246148764904081121232426862156480809651123193450098046987001938433712193859206476446084218602648540851122998423403088987069685926252674670645672607828049288315306475622977965399288674325444812025605641613589104548709824100019690431954187034567124537118458190707584112244970667324467280023948723323427790248446047212945185675726399692387491569246378726136664526689527899132899949408198398844362701573516276070008024722827413740817128323020826646540198690692762716434802398790085305205329313360259852753686614447116416754246149053835021928437295616007529856544295018096954697901753137861831112628659584522468366258310873402260809229323790541195283261765308247042383342175756025243776787905137443962377919802023577691731339883172445923007747456468122785713624595857547315724783410902069428913680073306520142211521617823054948397830988931758523001191098006372025505680266285791424240513523413890615104441640554456220143129517163922536407530277694832878836608551863046806636314576066647096931629003661095239623955060359725686469379261649878019864196787120407662884538619743834440923130893377389124286953811984087423033251558265127473801921599143911222246644361679989949153602546612048006498799754738290152426236903249733997149842410311386359203012436789474560320840663589266884462783001943715441030316124093775384125263996712238854755261142612623008489810005361176166236807856410775848846223579949230848407806661530893513171730289322005062806471554662559129648366757211987320254212184810826306940089326339330692268274159658853846024591032068442253079157133495953262828181116158783759094862192574870127971360888738901179179051013339777005462637720668247562206676791143452014372632461679802888908019733527698115454976474850379611090353946721138672291959177492227829596585423222001537255673203255219493980176233326298414966712063068938924812244747029754331978372501352951908475511208140032291618415470524117231454385846308969137507075967204028578421351755840528467981421401608731366300493194281383593849687943529008926931914379072700448115431926299493936605221142357754755007555804041905854591213448465175857983383181634525746953053003490555686665790323072159470360130376210213859948131061115365455647452926885216690943333142284548137882956459310968190319218412502482105816875700133633068367638567759980533194315475682546251256084630565088972768086438088193743491240330343248147475384979000028358253702908808734175211571087159876005263108007282006115168431301422993970814264548759214228631553709565329768409281598770947492169291410228596132166827890465324006557635460457693170517246015059105413672810954748919321094934179146932384313553911038815067557799726639316792873304671198799520595540622094656804498334509273819489691655916881104487372734155918798626006128353849794725097201982815841598058424802340568996104890638291707145524783129442141321094447194572508485054623268031201360608514872879152813120511603066634906078368695067829588701075593024787786691061745593014948518995074114767015199297775960602141846691422515320931139164791417889661258489114441493188711374894481795070869561984491766689004473443809894310444648708357300850645346258322239890598787305087997561982927694296036792467073552660589218934153733392224956744432689550399362179354202556339848501289284759064327866908385240890176700097705233498096270772390327667871088787799665719837886465325030804080324234049035002561940391738459988476668384933323731342079594012926171956142629447775912374613101884274819584950823061295337998970236292043610258039924752605381444851399474062653488656342961509296772561097625860840557687108017538011589855473553220718022561751780068130980091312884064461934517624123645689784917000068625866850506109109693479330385282377591906593402407656127820484813049118835854685167001417258160767203681727645965337615915294312375184776546139799173361047025906208800103159083777598621388284003274488169452970549752904940953314351213166652399108410293388986707533482996727960451377092466850036801088776824468725732144484717977776216119273096175234907472697893420726222445255926596041899169550816780509900276564998020776296319160440109446313105225076708728912617902816590027230888430058794280652016958364637724287833394972784298252830985079125552221201803180020998685191468738402752945433420139323329160875789936609989450423920067122125255125814673559298254477231792386470555598974320055175409238668812568259508019524748845766382230402563952785196542032792217934381987018961526068900872443301000191413736342775644740154753325825118928667937096780860272909757158762451269167793946769856148493113700079958838297797237767126808976222644970467559634096239482044647926144275557820991512011975363081261106235916410099707937774076702894061851519943424888471830562160510301001977241279924584854200617828190727617844965055494367355892162965900283743754152621669222648546580560670315930593191859948579162676496485506701202362704726133812310875452197192375712050647756102342126201149899749962288768253828191559900110266907271807665090762908976642495141613476399520152981035183845408557720547473173916919320743166169244073261025758538663039903556561417925347131648866616499993251123289270117127462199049587830429927192114189558763549352015618003971553247160669706423942486607162318051421114982976747460560332888179417791204173049646550715078892303383078099309759768005296536485343861906775762100184270505665694140121803716589469429486224038985476565414855176972937909135363583314627084820481258274880582088626170970755703691346439860401022444803080941188152770263969085944105195385232229734319224572507457652254021276724745470889320982688726039573958879959921718743284477350672416245096991560978510818271075371816878598661635279946627272906604161195673169430777141495369043619123832950865628265431864989460911127452626552620142730287084147031272466562601744136110301479234337620719974502907486937617452816740890521460989389461659384198836373804922420000465531794003625108045381471626614093295236012057707826386640407695824033874929303730856998231796129875452603079154521311300370107815078105697172633201173953290553210856292379972828454933317875166969670869546199083519818394577117416690846698038732991229431284423131376688206953250755142639781755279988076401112134202300584880637734482795275422929503174805204330261848725795538242044518520562875310990711699190839788334443805619601160217577707581630395807901992246131533513696719680682413522364047028817808553234789063874746635555582296566307596292017445435811620274425962800722525907462388264729553725608773452063283846378362437405571030641112308308923116389085483160690701376408004409053226078273889455761305918811051851027193437448842604085643863771418538682990978764433635791061280239205399179674394178200648102581419688651951456368519077855428886994592752299191903022159067654864900438313413989400780646141350488342277739927291205439230188060728758587066697836553755144427466040913609094442171862828186741124128315449845788751442138578839643822810537410451518123742639601517046922352131669745678988233290819677641711760256725553854947687127338306036357634852503455970966596455828442747607831846039792677076721678646727213791086979810601164196090163686638380605147828317307237374443856858823442643294903424743169128284351878708688986351671866437833264404667036012019169144843258967323879889316207107939363658660146987786534908761864302855114726763030464830914041810840583115384295142740166253251123673197687623868891342473146471634389854439205398019554140239804171383665268813385912010242829932909851035425443723618350350034121975758831996781784435683353851291433429516871769708181964362852422477094651627681187578193692727315206882458257262944334330022308016303878984730297030860368258009195137361651567267372520748131772840760952032977737896782903962528367054401655303871455140323546707176296392754703789124269250201848645400438494091483535126398586863625501330737489390605682355098438458487480805863408309969000774747354189726912109468568186276776944005604451690936971641364451115799897168833987677213095742089205440071925819505575860165979647523242213795477308285253366155293121662114248200626918556304692063207174517200313410377886968294226598393140334933327170299930352327622819176050032903665475073710976368154744475847496848367350543990114818294201024884210629930967869661454532865242324355152065988918423217787141350891642792065492239155738950752217843403978244557131985017081920299806968542793020022833163780718400742195535574179554297119693246762959239036781130970948386754002197590298852250379877274948502862399603678746325017512977902539949995836335377610568958967255702820206619163581506502172771591147296458173308731803964721166946020247543308040154611798137248021476673835541592163393193486538125436119337374318352195028132676303079049129017734438804608590190247618798940915542095263874133250226810471844222987903922810906589129960072986323035715328950903624380297311357866926813100289489918297355907320154156353017055552589473211326712740988692053898048702354834405952322809370506874391135134488741029012698732587995060464485156186098003173359570968348536766530985638518593710237341861361058254129119457804226571889624887834864968272349627160352248069102333957113975789938681374566984806609271867333760437695905164119196702638904435500606467593897744288442526883896357853141096809810820908779483072742679803434465223814079968251186597918655366335975079164872822265887233460747631602360556267560910499559001864662228642002358684607999610397056568452494786334623447868647935681800674763019752670839227853316017605707845656911515781980778186639417910229781316867574161157965551705845780313252697621159207315155472187554246857740411870062555296097061586685757751411429228364866409686478022105140204680170907869719682115363964960876071683120947081788981057314292886977946207793277579252332121305948028884002973736857540187901633839836937029145791653373079092439686545224054535625392938232227413630642791811238934917422044864259696912291798803339716692883951229980985979857235426303023255760741751954745434907730271316022904137030399045193123163034419092800899865179089076707353012844352628686078357358261905457697830481057400116640516754740565902781622688065814466014137910342462844196825889255765806424278751137862378435175777779371149380005975522390638770288292985262167592715286483775736332758356766038973846494639124786040853234993570293924582034926682680514928339222435636554166390026052446918430782300955280713128655606513199427221797131282973654210606052387575233622406656712519260880609960391243660946118142750686014238521233404940692671664511249006221755494188849869267858049104433510466582010744919784829971677723147362207558334250341692082119705878450070705742177345879025996302071493972131162440195169854135606925588559061593118761627229664810002930947077176282953617759157906595713022164025483759753195653202460024084658100889610987395172427541555040751394001860572499011754368883469692349804510146754824934989094262394095594635961883914700210856235177492280848465109408224066531779124038743419905736057243324026483459035786177833852044672067675164029390930961674163371311673036865789277668684719832759083323062131661900355197767399213603508919900488349701469810691841037132497709052316419294343651329383369423608545898178216481397835480127904548950617743375778917294189722644720749311700724870988487476206692267341413558923094890975849808700099866993360392352697401382009681993565817419780979773552266879314418955150661275995351610989490521420992938134388292457424068156234619081819134536919651403801896008970069140872191685734674915845793689187034879422069820705696991747095177210130065050321257884556236122385342876207409537975383070899589541497121814968359086187404913486365463595282087678248028434000928291704385352803565199869236963296107121629113366016994537020915471035218579969388448870581463865576614713393154217021475181279334331835269369107508844946885889424405316090459175595390453017748582679109854611833553909943019640677352079124708416580025626703379321518086738921502061134012138513117472362281356881447095796337680019669095753438938852121839920701319526416347050004462727080376873500242208172294330849936493193062294751357169457529375407338060914062419108239881974097357729990582241567182013330612496960295100754881058254540345035151891289706938977177006176632190676551634750046231588715878914154113636748537332371713135207281449446516730583312230993246166533066735079623245612651639098192705846279590622991904359726722430347938439163319067869867390316668346315437034934882424482507269313088242134120830679886043105858116174555262649080260258053217555710301857725012459042145129417720305257439043738761101585457996945827841539504815770370589144600664729705484389907415023208576701036224239678068319981942009346420149712260579281649987449377651008844258011291521264208847708016852005221778594438437095845841421385056699721720430424227361349675352046642821306050867254001696572064653571714100836272226455008929610711885463132403938912660498852106707853135520499571910167154891097277169746587887992308530069748731112991371723475003287937428499064293759058526799815552294514368482266921481355994261282957541232889427072852278323883703526414247642087334288185122263551437596226053302592673154718306865518307242466936185780133123639181769656525327078023487900558376109278545284778046451882623016932935363030928189794799327721467333163284773940929896709345163701165393333431985179341291928251138929064084990589614658785102198117170902892259779946654148902848167578429872409508540153418959266194954310440452274064850473176634325394904493020390285632723426403500682926788997875664692804878667673589609218989108637645760712274656346445784041267620953642162668190651812259333155315358097913645590601959459323146896017881677242619963013986518707218731957974446007099848310531615138668009377765356435907348441352832173701538836602499080446676535439519623122848816459935258261731878799620148919302263981276058964829356616176636221956371998178389643915748160609335378909122578139460566655507241362619406078951253497066544105319663154602789184382573483481238551239556604836194823240832010990922415331760259056903941106692462116899246360843916840316561525200624898404107677306104571111238782924845292974024469976749611294370189210345276523159014702392354098872873341614062909926693145293707230155798147231820959062485160502196003252420756129089783262007619085057004418081743604936606119629019210500820636328103735345111486307032572995288298194986753146277240500742513675605875782592241330829238330051071672617870037434177421822185853914400805484771415823374985269304527313652838226830390835899273759428303571167413357618100890429406221746870423447320355566339937059134318284606980373785918904297672140241886293963093856757918582065095888246391979279294859084827775731566386285761930284523573083876470297848431810552560792012478912266954344034308586823174885696282472936811998654604400802144095658632329852889511691701594555778774875592944916401712480012463035052437737056830299288425258406637468447243223020851936951727100730743055609780462102277219056543094918456396514984384280053254355202425760161355709324574629364611917798474154002256389589874239664220217854578312617195376796606127048474413850687935335698058890074430268191309901673289330115886986471024286063492285790862336243888018798497227834904740429254623246748873168738381623578214714972217489397738959207593848393892004122567963753777596056924515662649495550580421748265476582147439658207291719727413594534179672485066177616213346768480199886802785992244752931594877595132152273610491591473744853696463883208068090666281012018843701302848879062858559243946590978247639976992117110741143287846746547506480246704147414123527195616186641321553173143393089091795154216198893925244955645679703995351363333419028758057549892146745425153105940122391487719781782546259958952486209090123124434604867922489465909994285021612766322602983189325098012924121788283289098536333199906735260558575072738165897482152804447465952958675907641577871153219927402429435188568407100095229392369382544334627767407156185029801265566574877338106536561781133499984267890855143948300453657834347681117460229502649856704528483580073998456105120231345205819847975867618190514869109086099362019995742410704302737006159966676092063713287501029227931880515592950042089223374461161021055152336580073569534571479911492471083793158132700777844322143323226171921483840432404715951209432523486992186284028192995446392706359842126754518830314326541919236548502530395890708733139108477500475703874001046694018825522591339650921985001707920679381070294180266243510580095726084250821281351323435715731413515108079503270241130362418042996630792874661181988307801135326293749975478141857541966390415196346728956737904449467100502941655711529586347039488745012388977732849286704683885642839261810748120818712701750439053910583233426229319592861420286332113105350346533655921238879776052457022987445205269565546865809446503197434421838328110058504995543157827600413537280395547906915171067649215869350551546936097933001898020975679939867149358482984358108083851393273110028089948845596148928249687240626446650266936114260176003875397016808396614923748709135647074854462350514505241445041484168574272223628557654513436530103687908578267720490245110793592772858195597975339897344349835012108119663451098304217616103581198119397091679169649717339241477307657864463877962878640656575264790874902673337553476110539270580386088904056174186093649704633238166177169473598047552027792805628217553908791897503811182789878655409345431957212442357618113252414173597305344582568655408534422176450137399644950719364588543379977738372685399115718889200756868235221828619345655593395873663869991872291686029448292091362134337936163764880965681400473820501268386288893409982753438156628304252821276646698781107075291548863139886040877877271574422311458361645286061756791398216694572896811856363690180042283827713119188260383309198253803145612959785986736490992854092434549756861315232700715022772466000115375530203710834191834778181858854358419675793120368468129338941427313154344787018440219716048899987417791774018869677586156485701528062119734630244891511439086011233204631724382227908431194683589592411205822877703586394112656877424063428581850207557445164084045638575594615737670132909291842066562282100046643219306649040468379062300140457724653417373869465854240165686964644688747637250527252634709416195665713624680854915167039895866458692667333952067181631677497079130166405253178485129871304828393779161077894271957319357663561977904969762224725715398465260552716684137221128466482808288763497924634493589434883163711465417200076030833836871469030361926497468277016246093665692691410886590701744030569515305032867225968509641700400443326718441107684522984111696565162694997153555255057403096865215902253350986388486123465755947334637094584456598445927296442011264383247504942609204637024736645384828250418544901076767843260275157980730607727373435477176154335908385846779189679283875755287025892905931900723271923311554767396090335185958307019504615848354098243825517304108409324726370424382535540683904985809234495940740514382643049329738057181083491612539709361346112548406211655656504948729470926063531987499067985595323782768377183595734917577765815818611725732605988552360205435307211783449337375994392251065752278023341793578856793688318473097833128668576216321894063309646300294810897086403081483677213075126526016796062888217439085519725119280204001225878881432649200655023623562324146904309321057422845976703758265803185061955118509916302607109754545877097024075963709480513194502876014212103505010001268249154030425195352055147990791677558996753723673717834711962795904913346039067054591182550940751391524449821722237216776292200729276224644054210648561585860269427121301977593041649648146395995506034628316843416833970534372352445923536421814679349146113753035655817525026358680336470107133606410832513221210208589998916324996497816596183813636324201263207170752644714416696980416317572285114108915191290357924531204840271395602979707725521645180824330787266805830018513864573484517078443638436653165160335654417770270990214237859894059885331397685763993740587742171232557857294895847199724239251366757339583006787107815087165332960856190734296784919005433473998208611680421852954031259287472647783970798011764204065889928369115243659412171396583414365742308000050776374908286253084290413395318421486729427755013533980860667292982798764890591571584974684316376546922806176168076248378994668800187860330148302410868080488731227595418910156190028402878790916795168512841149303051728052660455157044891009955679999849715746506304984609085591056741592503458310384361533429712783593734446841833622791776288147240879263004220985779893491843018072136636090620451597861649930087068106025320104262382789498565575548082903372841070320229302511415749097428292474199533038279300972307512088903725137923081877597404027234456983339998955315891824866593813272781308444961098467211263368929868835791412389055732933817547911981298594098124384348550992242096990186145706307474520864499516005389059088825766296565498833115003316955541372054201276878997584325985512029673169113319943729059711842931875734346894912449458629733480499480147951964470882747439682194346952395744987675342512544376630623899620009255509230537584925187902255789368870013675336982409782054302400488273802874593322467991669962111871463919858328065061960643286648015937569947951807673474052091718311844167155935924379063707156690841834688321275027304205656761572636326339682779154642364200406251816299984145834541863594364349808032463601806850394210284329831388095570800995527466406215068741113001141163988268494133890952671217933383529862978805856946759440431081005578363888670429937947382244635468772118608417786307469486456607161806751670541053630483674426509967172850303283352699123870451587569286712886801997792226825724621483632596522837065138906304354773117654696144562551778816585683751782125063906924246180467717520188498224238624955673895583268840272125801345966215308887039266345631785870807526712045508092612633549383343062414187271782584201741840395770958642931542281305994994210148172353614181895387230496887567926481967389037727722219152748077376250463677703123461087114550979862373788147630817818889968992961855576526791345891620203896906871056091134781705220974827780263848111476140503523406020720801507758471706138391643406337901747589686175770428108112740261052681194319867950410014412339398855064078148094003400192838063816769691430779547970503204803845245885581486061343221650657381854306966329852575921000743364655218465986194337007352527443330099896483531587919398285146881924704770495677081186996916672232338205788746677951381256704576116627905852190900696349568916220450885931694290122850834097153331064254907723293987605328849555524334747592325243231597214526629349363001255402641357068793291392702466425889768130640765745409707600716441534480610759050238000160331902956115553590453806005495956292829777032481148271626257922407063696660677349452004148905874965935601293329014462078776720810842354845672289004708295231900554465775368103464256845767706740730833647195472144638291366398446064000884371975748746893992128145903714148011106755463473807051151292037306267505589683983836318735852343945999838692041257990938155738780420063423035623196119916318160072875203041110980129325966900110066353502600312924305262915685639667210502585582283233940159987490462721032897947357370267837564710193581505471000539092470762607084954037425950759408308995686677160441708870802721247537423051221038808528171026969614398805420607374591963427686170732419397471189655110907361323342457195850052850525640716736578416643293354242983265576814443475119506669593566923850694324191072516224146126300663314837242146470432681827598457524445279264408199356893596194241557243073858900856959013793464198320678992009124010649425163481885713839250235242049890436194992827076514355682363985021855942357858206011422599270988125074928264476278468308002811289843829972432101700145550621611087917622074664417611132750072551973436032240027250925629403992270099170559581982563152889152822978166858740436366460115509707290135707797653230682388324269360075282860948082285377824898116068116186941667771785210004398002324636950242412227495880608858162794270371792707438620756947536804015211263261193990010942842326571387610863694041312897749259646466756077380819356260488031143869101615776594526405646002390237985075410818417708505921331061242498922994889093851994272361137042749179991616836814207004389634953549700893074411510675364761127581279873905500547608533375064853135142213396257485895634762929752586121936847672958145659817922722988864590169782512290768641343266485077543129299837859809207695702996470783617478016534594366459691219992801751999152294073467648701570078231790975320178462694806340123706832019977275466878895586470006999935589996416869062490126915560099024103736258861362157898702591139395222163177577397776167004153676218871108268210156804808053741543235285080516711144757303530699771495800275884986140077300766396790133476919615932287479836972795614809679097715570609878311313808993071834333948048575344804933813437695342097624387105230775204851714725429148554947140275535374193159942966262551869649789731544560895226048794329498757558332287822460084467570634607949375969896484105676999046353412862111090415529816297242966624325650198650373001287323258377600611457088844557993389491607942849989192738373778118986849513337035652614127246846525463981666742948857451829415510643642659310224866036895544937265631289534383781156392172478429333884664098102544095487763177851679622015553237818030715022699802559494059596621022869012376597515096734911187027343690447658880578220825255653408090718861352735339369168969249636704623457522774759708361423764667270569885351890871797280494989292154153446465013976803135075427785764340245078876725844210137024968403777637184830302575155442352171407045028516666616166877956986817217970401721306469082876353939463723847704742247341965034479429563917304236802026279469174369603268894010216835416075298225835938276342975256267444814344555946585427931681931933993662485192594861488089400768642689444779258016192983351819817563114275373110010684018267755483358640054538241005772449937624670379584088962457654918468944865940058864142893232476964568383733680435440932575827289656392224595798400197340281550015790365282788282958920587733434100080254217622743146930203870605280440485265535350735645823457543705243535329910782445265958360995832457258430016806807206317209346060368738850567785575114239840888641658296485756985186612271524635800182965155663463731355304870093601928576771077158696941706532192191684125896651054176098997879842446984909645619949502896245801727292517431695575217714057546524113728095135755382822827986771862233815771641516567589073408358873311337817516812363108695331827394273473833754647081744380615084418201927063849012695198016539194130244287841481540583938772004129460137588410703522861128712480158912402847977965086326676017528772391089720031263738462037447143641256340252094641715317576204033995809830683928865472294816851916757450554575395558647622882872169192786695862057475415108021769942607956252351014797381336732845378959709561599117147297114422781478969172561522377779231275208524048130268408474739993531235482165373716819435613750153846497565805210617802788659468992662269311607341009105172347550961452658427791899469239742489003484728775007951854643302602143725240100918727296065173106787486402736703308218988245277763478691216722182457891958964334909577006800873937044103261788397900901328600732419887207526301123730386879203690907028060365531871896539316091990160768861714805505572325277680275115714527427408326246910841467194188058782642064381434892859799066914306672858442837220456623110168257228088362167760729097764154417627326829922085803069063747439603475476556644427223200932463055646771243612781831840521915175093090026232065142092607063179562287617659818676213251963930207419033391343634328968832558308784897778664585735027938586776925127728523169684873279014207703718379072892674276349641724686052291455544279998995712235607107811492116519058515568710236060610662680954588143375068078599371475850245176771772610259829729056289368404936718409762126138414162913993485714592621564455237269149537553855819701142613396502276708093071165502261209416523903515644927410655449460895114047772210794233490511983940826953216094469950945245058363825817547565503516393107137795471821319548370365689755627950031180172127516658778290243843590274185222789187958039589760382371325955479338217209618512777325990605038032065460080171397883784817563882996112075615894370180706476133209469546203902733849651772234767195355269079496655304759542930142269613393547002791679461277790627009866493845417071869223484182704994850742790225140492837627591462550495395377235133303779715809327117574300823115654698290358724157696096032564275561910557223624371796619787266872712300390440854756163429540009971502887321348880061397241242177480597053149259814469975904865471731018850946168347208652458925296331122761919526184289784426052349052799438362125488044122731746563771168035426914790860732000566125190130771962558670593610687951871855533671897268843038390200977216879883403934449400399000195593971109169509744054711299549128928223696281948942692097709983629680180738048362380305569356277768855217529494168128596293113585667003724762847648885129141126096274992200498425113762572566655036240622508095315965567304721596450010257424980335399697986055161177667595444509906418253900564351810245820361726374643791942215721988841941797493529281323604371608668453144441672605443748558855032778816374393469316784862726052853726866986525679732764895603918116144022772180564184496831847000481641493184266404210148296542604895031803055981847585195792604054187782139249297425622048236812061613497848255816775021865150591895615982171918611661424710528204453394593322149534636518285002928677059211026759140312526013244551544137204940403150014262631278957112810363241183497093609119514259724699980522854108365854483743692512408487431429086507089989173160580159387963891324289985253098977086874381815507898585733779867145393768112449417466645351020410008748986548876766908219169617670053598548338605278916062130102869326862951009666835446520504555080346870138197284694822782193096408098006513287429573745141577731424887235387416691933022464431690545370698813348239896475565632927365617553531381002728326897149986849688009935549777321504069353531604337592436100966730218172903408066547128432852778310410589808898403034954916626045111057235228018369738649393546341612440770967895430586177826329489148796776439893265528991576445752746095114631839647450430436085242708961716852937550528796579623823497687105751471700146855490174430771837542631081667534535516881452762373467284989264235851505602035704002346394230775428892628579234489732209972875486200265434031789913142836374129867424846971808621529615915324382210828096748808860662514074098250265750852503887990223376501195733953101133260557175735021490035656322856147108289164047586694584012797781113770821523515667064338508475206092680071795706323851169256690183369448799655590021463003067522989557970404289056358019163033832262528527996039487605427000557611657746067799234539336734144401782342185118287919143658442607379497183769474160006259130432155276799085505733953989483136652677172071323074513362211804390531565732027116529239031355968957563705323637221606086148310936159236775697196404700882495912593616354214393959548533000793781503445575866511903815052737478565620366040896385066118344886389266462030548724138422842342951640987006154509731259572336461058193858089119605299221863166516978740549847882698077922358276346374801091941911947435829172645283048920851635717605649064415131193402552603835969239895318929704367000620722715020128725051049627556873862383885280802266642488195263861768637391485920985298114995108568491396539953529537151460397179888041420129499739552458465411295342258779251222798212893349226249273051544229984297082485211845677252024933955420087769166463828425529939997916933165629529751216568679723169838628532346699092374705808107055214738572680285942894228548207247820925846818460342968904962985106912247656770081471248759404321237012826419178458807839154879901467744777345836699903088039008568586172494683402653763405488717060981596040825414274080740680292554554454826939693225429064222555970054433031452003268132643696346599576981337807772482772749225982208742384520662386694470480614060688244616215058216213055087191575047848218933268164978454314176428956423189234673814304046246240955739121935869898945210826447358078207194369345301578309621528103444368180113796858161079215624280620037495966371515861062511223411663439176146242842315026033545403776312140728869420136179242466382893487689077520140259087140016888074697653510953380493935816004754685509760496210462279737869252646416817505956396056779642111369066745692470061453996044167323857046594142600483566411668832540233130177421708027813641740775031466231207165289071765731726317181871947919912234086901155067521506662505609379358318204264680871980355257948739743935657155705171379845857450022311742007374487598088190315014872987507592863744422791396897100156424323891604769604098154028131178525946733176549363973570608441393212515319755110529515333076981326089472248138987143782094518617838823351019896884685807756420486063383483737182805763415568701999464977799103898973470340850458337204943853564366143507569974924435802685181744651567506621963254627232726868532852175774138611105119816342069317025301534104746280141796845418424870717508309478136467385652639654429621819634253099611471311564897921957226108350836720372774771605867843401319989655878337345339639985807287662614178547048873074776728072143128313772137333014647919171245941909553537471530855935900407938764769959342512989486900904102237719242318997530567299211839765603109019076250321762884886420217901961749217314296013859779321820285321915471770535296084367419933442624628596102856293527667171317880876083073352584001730449763739965628408619971706133668642811950083925607122941465115041779405794570265196214843343808669598346910948516501433244996469246696547240746466869504797356647590196085319558087368425948867979302185079736470292152266631666743287792551939390672119099515460888084386327706090319995646807539558792605300677775558138587940752777392248796755321471554423874512690224480217628121705948755844793404308289357107223231657160851401680160983974520899221141620726825509985665839548564708332500541645382946908442408986060882500741406280005455276282830876293831341191774875447729528745008614899214968707646057199522803850651541209425803628668829487071581907504005591832765791041615975780006815443286178318872915157680841598435439270312660508071789524155269799408247603863045299253313984410994111353869603967607809410665202112941361824712016824276935328305959482854449537344548772045145889326323397364471383085809511866742895907350509840522907463368374704723846362887241755336869125290706874438598122881665615300902977449082307225679192101985343382542864402117487199620534756985228404159665827279805882741038273132529431349091944423497809120169036618563129396170600160608792734595192176852156301555384202271439190610175791860399518831098114598470958958446547092319760008063524600571428023326179799618905130374424185479483082249253515072376232752481754824219306677917850073962022171699434463038030097804889654322439497820930617418685305729749835010353043169951314626294693821795607519328947839999120436662002086464371141622280825984674390475241207143374893571161998286295295899041600872101928541182678087746149585534375465295989932715062671146563172653977125836423546395781189264664995142089740849054520762827413901059090498420869656538383357986242769454224604955794639862481900616317618395028511846591070269345502709921689939158702208235760609473614751025493128641389482745043799153785279237369860098574760632764663888070510984142232252895796666036233092356918648181289949124804431566010573193316623417155166127035025607388678732488275141846558553580366539520290472872023486682912226628900212158319957433335397391769633723179673931886435470507210224535741251791279513679652409736114531830998223193097720733051404525128318123798479726186140977392278304292339686977131815602286358584073375914983848523822209699818387669353462474266993382040367638162279366462490337486311674946794310146560334067770175381966874945641763791649341440468729240815673070662046208774042120953045252495485058396962902342942205291868639813790297063622561405009381857989535330844682462065229945052842867327599984618573050349876102443675672023653542676122707123885555048044615508886012213811678917769242585513703680214131756805733261273083423056033761690975656724617319173638729530795006021118551661958756516221564356176454602854861870212757255577827550598691092497122515255695448888336988313241301602746563285670274136935058909162492242374233703426419446690811973763971684700826674228164878807814062766617799116030255404804750777881491505716040035588243771498914849115119611834362104093447877892913247648356546010459139732082369132492959678074758819683355793820209308055310120582253386057527052580055220473730779633545240194113190003891082230380056164433471834033830603217391648556182529474802333258161303609263787394159805642051166940320246539950270769828721139473535922888257750533564910214212872421823147698183221509740823312127375417267810816411844868165475524740377595343109602003547902674684191202836803015598194613321984398428713432570267795078115503510176917943686591072641147480628980280657686667558838420960752246057673940953194693299329222683022240591458265161875289721312810109174480742836611484350075012194273395445255351796401926193420678706895760728256193567817041849029798734399860461606692122902772165072395971513535719053368406538815363209024467038268253340992183041872523721743749471945472471447524709465658523494851776379847477034103924426053158361683591655601447889288397301557685893963080079969521372799770283541725668876914573006602767500716396729364837846218981640305581121970563236413105309870031824498405317630905727938246858514168304013747201262117604329329534896026177250459589521816828189632886944724726959351010246064901611566689578727463255699007075989681665778529805486452062372503722179508600276408419387757806937119203397240191425733203162487426152316666440580474308227186198940319359209627943083605202645663648083444730394070773323549716882014273583520764776485170913935852467962774613634185350775562607932544483454029868611425984806245329244955434670759539540673974736058934996901974264314409135908046394888331988509217907948075422739300981779718327376947271060706288353649106228856828845586081510781073464016355160359486974952904222926545944891892392115216828819006947984950102048850344627710954532898170062152141741371578226093266773160797929428081760335736753300530555503219522370305981355943072925231166763281627621367140701237759691486254571846938681690198471259244179742691760358801848548601244401181528410773155034254727641887837303628912757728578208540918351053200396753362777193350553193565694802920041878287355898672879391925014426729557026345306190671498813823821103355526881673101247537445798215603596072078205344655158892992591205690697657857020226464428630179884888581094127339362874793035452802054942304710756208823908662710781482300730604845446013206245048513516699176595090283579155325327631683952662458136431722657273612367303066809818297457531208750509260659556295999489746921202273189611594391235420486316712377923089222064544673582362290926406996994355517446495705846012943839449737862300137951748408984752005137262573712749545420137136746090643787042541838891328463303832235401977598744862967895280008601789627497523434512396910726899294600392722154115091225434192296784057324537472532050630046438863013202369794978019370202051729858375803525915810263727211260732011847353805446856784697852942664263000456733107494249877476843054987262040099825501321105188245181337818523024841586675267358847709756562025523970615591357866502741126223362781254821645975638975435153144742432368245018193572763154301557757977232011956307742612747303882242647497757426413285092922970473175119173390338170811935802464900421926371379112048453497298201149811914276053858943624508274584510231292836475741454740767274132047114737713600521930779828735472599839360186014170750286670738590543750370172866127090939204313233125697145922403072657311615670918630485218707372534187602894730282806144257675126025926873318192999222119990030098680464800214408738704466297263106254622263983330563594680419987641612555004283000558940840049967269937210501969371796006020534164497457378776625415579404419993241421542748316416606997514010293696913818311729723587929114700136840079464925697807897447063342306964487493562052206759735624122791613139383572654117690456616612861577020334465717521396526049505068583498369377689312627381658784614477207799254593356200596952951698679310421727726842437955669970667718767390652709132780097902681141011329790084669403314084238478859649670760411448986750601173721216996305173497307757420129395646016543727809583718346340355140630399645930330185921220808747318080424733974524830541411311779499174768361926342329770904904190710938836517074869431680319995615326580921716814710581323783966793611902554003364192882343028032566170124540215967249039720739337664435130042400384224435123386664864275105467359833086529412873924581950957238556991035781252861711885264265776642185364609571659901079358112090106395869031383781141598510569884334884496164015081655803280912888751554643127415825946455740404470345295698087123856263497880036744099000348305268363293395455260265775561646872474703314045708802700547292428858236065879327906566926048979042129431803045305948686822773463373662313280114688749823698621771513077422094087449980801122357119161785749465228216381691130908471535326435653328893386977328176617750639189404075379763535636356162274076923614761996407730498164298693973925954426909745424606739412966670441747282365454767271259010759217367823173149019050960863142642759951990268247043272910101343301970477795341088820131237115566566713307494609460625925491081941969055496956546659579223732084282112104063254168204199047879474760001703418880871507159545919072017680001280333405871722216593309747582477335808256961586108031959339126625628256680947816337110930378024632381963717495659721411996999773166612965011549875887461209542716548099905754824775791635740910593293783919781081806692753070470394416316624949472779354881199968796447752538820745570843607427927054983694905990330014668344846691817426989378826333356747404865861998992885558479818007128876134937838730064092471401385716935641148287051226263290011993691644772552496192122467033607238853796761660475464965041573314029505877142481740398934070173660891570594568102469799351378269669512301298047176285140600055277980275587912717710971838151155573253955776821945446538924260955929300837977389448436405872034815918199930342184668652980126046655833494951946892240771737684479556991968108815769216879032881794207520932523373237077646665962176303416075427140357162513471330187493111010386427328264229229457432881226854116033325127601347276211286745802717095587928208082675413158625552252153783262052591872106466028570475819451839103569117687491375547240504691387249286519511784080112000126708525213862143779928444552439216661725185095171875565553217013155280839828770595695582645899459575102873568105336607063808086963438785422056211885519992262829255170159819615710145038268726528709664169209440931319376677876224166400994805166535509230792065919058713578623317819044742291175339286974913672341134504967477135066790528857806401663582231135449092303396765776179948546951657055565795304323325582675872048036505209548047038438731315196071942428591276933069072434140726730427731895301096655295913664738739113894370647201452685274685815078097011743971920094631171519341736573226126738619380877010964214747000526106376604875005402301600322173428650910774990467890479130399112779232758352591923408919556571369325864421143492089257555204767791869336377394411740545416511458691405191366489316900516706151421440139760548249930532671404965843754856884422348162517720009467848930237816333661717827559674716898622340990728133682400407603718106985839165531633492228498613331495983797210025481536351097904473922554557249587769718473363404031512723107314077603220434191744490371572660874256347456014713188576182230089241359940525555092330895819713237208899384085782396122646367554467715335480853607397263677510592699869937337564184472802506090439489561625985967022730541124844740621267242529492117172063439369252136645480190325294674294425965925539684502375266926478087370085294874268952464123636861318864974077689779192293639377124616590408913043979797732355115467196239855218815876890309600301318074269228394024823204136526156767548622945149898709178640528308001158915049105201113113153037248009400440557757827933907545246779503871740210368992048270690096844221977788679424705345575819759297349463006130397566285469993920279259432773331363580540951152558985195131922120050396814810178129520229981896523917860553860532494956371684381482880246173922273790419095792815750009871787728971672431345665216937987893017890757379858616100988359307277882138334835855044778253560242105856795147714301285259467931867148483751125023812756305521122121649640429172195528778742825308517304621999472602315206771776522539490632339370852325895311288119827024478974147609706718571849817623367190191779475378783018503382029638974053931717687517608632036243704284298843038892373397863606364087644288355716963706542776085687621821826983187718210770589150094686218936805155363952546049019731762009635038386623881045738251849768170175720222653979979724931697911059134144248063778982416678813338133100312024612557014355605439240016945948398963005123963755323978663019152661699836919608112400983699945102473315486501530291275422729110376684579160047898889603066511444576008810889064529600983185034307411009045605649213678513414178728998266854205635361185182721588068352008309560201967716521460109807739461539682919407358943661566792680178044843139178309238520953615779633528875168556096271401583285495030448175924078725641302960548332507814941750699830495426944600682896765790055608432500545427116369052821880279112695314219005044663490166790014567427112888699844636452129026618298680791128949451058512667878919073156675357556949120850694592678673109230214319346868963838756663110257396790997720140003188000057294150405629153562240202434657080587792804183165923868307913764045229451311334980564801125327331791512139555954377087462560535557450901249033725523976749763792420270025143577047436413698339755249328667300606341028051040180235786563480771194574056998706336516522373199608267357332664132411602118567728328311999322908595152544606590114316878370180079988400134969339343443371817090870160961811081374258652689620441017536498204948256740023735229541788472509557538049398873730364563292576868023189259496701934856153990630390407452378344482299638105379767814664577000185899416190806401048629370389743369723584163588630560581854678012608173190751041530719138437369864248234375220010703403485703446141604044665196067824723328902753434564287045189713599486334820460377617737945524653555104633442570293233793228760725552415583835139179528460560643629397873620576297965811961076065182505586343655973092456301846891399245139641909789621015872021385017265336977980165012803650314201553601076848293182951470832325718352087721600192909157269861335888379814905573251302715323603643482077257832773678476231251437085881556655950429045493687520807805434832642395532062445688526992937689480109688807340777493408533152034391564991587799928006026329176988246378849288666965669855884764853022821719513496629778375634417234131855603639341489254995865765249189614399658671481400598222850930770744555432553199357909460503364966701512900852544138190446133014535001933315949062798787171931928827317076422282738801576520847019363905484421556084281899709517080176217694176844654233587941164118736332525141824604452671151997186348393736105901804493817662938817429047484052176085452238819682959008628135208304440698315432257674215080483088127453679378971505898826799137930868693837324251401520680820979326118431633247861331537545067506362628892191290802885216791322767389721053199829984745307166200794805957069610416612741014412611043646180271580720045429299363314609494839364981563927383395368079488918258727973225722190563282301266165484452272863554625208783870877824426705442488155548154990251507814812613886078767539291252631490163441228505774647116655785288888594669830767033550304074633647860680102180512813723399896026753709519363478549921345863633803910071419940118625048014273155041611233997940832367927430491803749417069816124342241879433584175175863723142046885964186481483327772666052393529193159812547008892636751416120774770915973938949132450841331004308529735214311436094899793006925864721703453630105846119795962021245529110675861052081986139738765417758474458813093805416783552384097269361104522324145767029004919091327267266437100550244375059944235547120780457459333080631296500356803653840164099894503762085657665200646952408763774602077265315490160679816529405437585948099482438016038256680166920290698378762799819819924470377659350687783930099592259767310882645312517258750703366424549615238795664538176683314185122127441626306954629945331739743010611844463268936136712506249854445823213282206145489760862002080060449280972533764466096657467063145551494517007004533932854188343426923691675336248341152616030329584639300989172148202570315756341188614541750386813663580251828717881070853995775716351692803325614577939327813115115585191756054916606857426771467200946184057898593868503737666728415604638143763157242440922313417478433692072993857826571146768608799192960087428757439782702838044738313358576536658721159795533168815035512956369920835768381628000259270778313634300107831293296087741074340125143829455837626450194553217968347432639876880883417286408003953643129616740513257900534835688110523604579491871345750075599215106918399114176663192259704332858358357364936261314328400830377277956498077397041078822329578744099437529681073929857063560140353105407497452351467170401761059969014099902270623024548334101921612745371418761174967045250308854628829563576989517535481017214938813294774870811082452284405416019141687015962542352537659514133644694341599186394846173716640617996677961503593815526639661412145337401199995961731227193391226191191497395048924039887267432606976363076105588848311195003311071730688410745954302440783853388889651375814121748315805363033049408988166931039383716585551504335238092162183943160105676637696634467797454263049830434917672519916869049443506284225078294470454425141051098409825652164299075089783065928995792848631908068787184625546517794124997868070907548623409459559927663162514610951336525711719028816650971743740483852045649841138713507282124331174784295562597115176773467572463816554846407065322341826254873256947032491694806349084038947606908494685154875416250108396083275348498552897660992520066800327473873411559069062100307463601715968918275836964135989564401100783104607844953899359064494125799833560596299313302805728362286881921209791299397030490313202208467004169475904846764691062475707659858812344511425160546940748330812203884205433678081228999820323966229949399580095844229872298951321028597661333906531983447517668038489118779597801061823232037365834273810052431023145289758920933896241247733576168403839745834568657826193539899508776158290499526127316972539059211742658515154788304060136687887373726335364991172078710262688103605550174059352321595555630983816114757701979820789864400633139606708331802546596155197513732986845971847019766712380897097514632676693282010147161771886083247705163372157482136446358596644057165994068021899010326703435504695865631936554162905357498798980884627293925278045719110738267041847761376829083287365148641209428314009412305974594776711667820837915341638015276761379235803093755417466387812624050438852091922277788742274886374227972381427392486050849526524131410107890609259749787853951276280873605455562351490354054081464783129839464532430493955331075731737552361996459687155120473294874696090758051942641629912098761160887622842755110029484062218596608897659580136074155391291282400323990186688609865788605166063200335869469857153997118541625812525860642742832431027487434192336389601904612824537211682299073533465927077409730953421338517940175849484760105089982755191354777864466528121201865065167646109224622624587443848118913225294622155599711671813945855504144320022220754535399170040597628948775992182147991920980593970718594585697862595579380527516171800333680644868569424733359267320916496217092290057823171588653589919295256709922421392991510370777326531148089903847220865894807563784606356752778121459948223845101968124469983743741338578989951733868105474087452130810905482043611290637337972138879668905610205421930576484029498954327765253584006479327847014657775625758284011095736501608458985330417867188183104545644238311605909083128252208476694669820520689967440685670005824864597289629419224144928027112026938372331559061534182227278315951100830108854856895085023779952533682986380397050863799973276107039311499770813320290742985342436008013405514159728933642816391804169707378926376184640289796182124041384092902563537851009636160645516115853889355451692654707284155414626715576131050101018994941171183943947739195425178687924333786835327064793075796228847172589764404950510998632033385958064929319861466689052105996567179498162298024356980874200948355472994586637409890369627513111980009048480184822413347419736099310474901589098554848706704294458389846626285756089655992435879671208771448481239778493604859924035742505382872823932129682556283129941849428886746965763148596493015607045785226662407877035671861314265859000610136141382472222195840329948797464727789914267167618122783120632371432461106701493163564637500142966026619592684295629651258229043945989841278019973715354572652369110591261244509505040032684237407312372228888320337353820334994410020125493091595065892171243569709940933992226917695722797996506584341703498315650024245027210673153759392768146826379282481290468164773946261679558542724197234332230187086811687898941567081798534643775980695110959229613010240686330151895768637659291471817720153832172606657889490352068278086684256024581799789303390204570208231891959919719402773001645619241099302116826946785092857263770996575452345804690957479569387827600479061152449126797671778144620791444190269352353578292423772313681784786576519456830712585305329268031625978514449001589599601353657251940365246204681455141294285228360917401318728535616702553486640642598929661300479235490433899838957391219161115711123979458464563764669803274435610373980922047608442794939843508782173766087903008081943318278289287404229084065243372825271561670237750159491339381904620114155493218904695429949400272358560913793248139710775477990457472683274063477153319173066847792009859590869981597239592053235682902637956648491375745438864914792394783547875456015163243816694134006174029455857051179102804846359127466497848700647248677458724503538966086896782548418983569557681934371033140301407714958283946222646205806433881816313082115701859107203602545360433028405850894265175233169430075230838452619762404933502350904534759801509930624082524638473605855028795309768247719980296387120383911393491527673861203394450146057749146672608433578875675075194678704715472888501169194349391202248295638728465118500890951590313317396587280871385653307076641129808639952617743950736060780663906345944417110536739056704520761449048107853992474467748047531759887367410327564542019753978390328524471123084331935609882459919057333920883091395049343879581483549585108182831127848839458224224661851880650155663937098961514590274765786183647515815720169338402132280237427568817732399805450547654033778693934473830969704415757484604784262543373968877563762164931504400045440268706208829003128316345651856956909439956878711574933961983476707570212836658043680237694995173408533217907089459136972825598458056313396199794202617991052474612832010499780077040080921557318459591898318028102126527351757134900040006675614219436932468174150957066293554943582714326621639263678651322746954979459148111292354840289754707031281011916532501634034554719365481665810388093957513642379458378944442683966056029855771623326543979337286339828681572741276778048048061899942348479066230769575624809160152678606694288857121014680383546747920116483535203519061203919018276563694840220299475392385887923245599651136440431821687659689259526712756626662353379348199093225499617457160320564628605557467703119411668383249284362860415528911939305950704774395609991736484639554272439179322781883296161262211475354946162967015691897393392203480437216495888404082791088772095411430670393676730653637371829300946339952420825951296199372845359139791971886955351716088073701466006167381694667968319827406706470093415369573719422155212185510841821175914589786711528004155725592801337052765744494519165413561473148734499488521274260841904152277117147335562917866572645084202309786124030452673172923681042877263931216931073366366650573013821252400598063964598119418280262264730787548803264951237864690431332847586638657437205602321512001532065021580641301957665165066631942753743769500765746098566257058440250938408536497505669534018022338805804789531470022256422804815579202838569077684972575951913031522900099671701084604796519009285190277141967467069616239547803104279005303317006640672469796784359916643526915285106543051036818716101355843453786754726055265774735233358116264400498853709806294530912508406037806900623067316751743207712276290126671343488070536868996173640101329028121821364989352419659555696682641398710206048510919166385333863532284676311167249762047169988331503517110049238094445501206934950081026620634092375759454245560797470912853488513815855597172526631542200630449316449654636656125333260055089200549277772580011768269956024322101063076634856695728855580975069612158213216416933375032493788427160475441957945390654857162374673703844224547668628594951831235104919884311609994039262208422966416159253513772715162496237598521021275893678088213990110410822225747038555133452416190454636536020029796485047076055634178659554537926623211449648423815766996458456649840682348285380747664442672166076608787285224699603642380101193352057882637811846797119046085393144889295492219731738612744614843070857181479636998503951826988134760978093876833222108695449756042234191095944096558131211507229521657633152783319056097538302648515108196931536780575775840513258009335246249260966990661104224899471981479618366252686157917017699696535561941488818230477620300480464362822789507891795104139612759424000631343626720946513625891873380676947314851984221865043614038367432856425780013532881525825729191131389410634433775772062792906293585826515123110412197708243900673549131194311402690397663845455652207464096156212103674218468624862893167552484606503765440273081397532577076656880374675463319618929558371549082630828137946214039867260109440786998166478249511072494158762834873829013797875367961159565683284211140002522242142997978575080565823195910904770208512489732155295127512659666931225162704551153609372053979807281733371146875679842286543889306853436636777182884273094122254363949505949729834123738718995901048852561321689973978181284771604366670796043447880170472797190900791462104981270143540884864001244354793259945088006702710600458423073526514737461138807150467472769890837778088442623483211447179060832546227503977629833296776909159524238968760645702132956653234078904314009971640148330804921431506776893026664377986058921068527137048877922833344266661340498133123953988403486436155172386063582831720629433506526668001324091108416285674831297936059027547665547239404968839800919718816291383378295426353479155742689019743308727869701971130192665889329105188544641488214527724748749352544640651055564501041475668957934246894389932659832040085857701854930574171783775714978429153811496587654218869996093356230438591586284880320786727862604480393120053424142366288416883446449032015273000834200835817873831140943232178773399395922962111928102405537689587020784943283443673892761916814556521685830415298393607155967391004550565399796672495012649354498916491435179778941168314349846965784132933575027645743082319547886160756098307061290746047776694119641960920883395991500618451600642344545568970067796040038768758675824737309368994799761349953347643817663855838102507246696131957459223328227894638670648995812326989234333301245443539467250107307161643229374304051020078180917803822472190014821712945791149304325670098540468730477163944587484438457281549832853255402442952006917608520484902772926053499706706886958297538836042237796386008954639661354048464319098741812182129152066325755212304973876375038263439673781575964505952608437536625663125960003179887538188084825721305309055805155006836670362416946372310741806107606983475465837582734647484667339406025261752407946499218152961541175885126250027543123418812038865114376110669109425994108530891120068403352434430065308706302369136266416917913228383824706389237087812254876819400801841741456088491883530360912206020348365031042576623057339214049119877637158707755601614295991414004201225696109685897436381884809586145910642582037184188436305330728245555666815582134988419683227809231345724571810593006940559733411985766951082870581180446833933128638295878908662057304279696846426852668947806969817450404974605709142738549081155936406916675817976678856737610716921666316678397735061089426005843691405853813497064962378477029992792395107074403028608105674485395966926251429212912134862947524095230858475041572866270508783863096992977595100045549971472613135280448471454896979365324589929846512515594810581880903891055187555515811013588899189360325687540921836038634493569238263888775670634761485538083886626270394347725218628771611558864848937398844193939639940076819885691864276316470208866921240230186834774456546679354606888904627892911728077989383414084370587068038934314529165605984820447151842407996132933644789870786579248671223516669732777453208964359865362715458319284477752904342548780836026401463315631303798939949856684926775603747888164475740011748703086975008876895808362247991939712378611693226343144733224748786623187071190644012411257604879889088653341728767660849600943330886137112199552241283982222235788352069877685292318921576699261976698794162888067908857897580874236810633401184738401449572390552737821482461680551980002004751856203303948852628862493097088074197704525893989021148500773925992341154271081746163194859342805357133736903521812753999119123524727285638645361355672227158842104634243101746503829597205215276922150031375571192273316986404902226083237672206081072624503349553874190733384701757121326735756256483026954806150621409164758059825610791130066693287934055349151345463597393023955201924582268972400042909959420150416446910798876055867735458328850228435131324354748479697172422829062831973969829864672419976696318468263919657074625260601437034226516661460089747598158157221657722765583733973571272127831494876105599034684560705059017237047953870667127958746640633994017910564166282376322996793604957468338834171847303384807242951363180688332619363652144242987223845538621865284623285247267563226246454025132766495640620666059054514432268966534378928806103157384321674967531314652646582967083695978078923973249587121631063545024103386452734232182458811545969021931931268168696664501580239890694622974100445006600655963082631805975413405161798498581611385050239094749098051066885610655488957273131297610943884850444879974350965033303617134403172767928317878925325083776786159402533870546743148215400260956590478672113141795459186688792650003359273476884427664920572670650001705917078054533467699683818232433707711451407871818354782709225952313280566994484795326316345517008419592625704908134959509986079600617225177396469129855508333028010206598263469530792970561267146676517757307453807991134300911362079060852994785313626164097359924014708953810429625790336776211786172529766823599171163018124681542268971762049078785523968556868477816537608124397896165981336934011393391528887435568519277773066760170432473954150432763925145078966270237468003753222463451692100816674111559589365475050435555808106913035092357014354458612492735847278746815628585968337662546396545182804222706721345133262507562773383373833961491659772946722787611414645828296285452866907089532713511395864656647880781834113357363650451526127546157175930305465897819029423512951573121301741026180782019417967004652712188177215483834085148589937336725597766183222064175318057662919326236815119468284031208545265501481477535545734408882247247318065213256988669866117662440778711010521798246365562097163301817658248046988262915944494672256302693624030942674521510403601546990462088820900222857650690872992112741183332762942261336298799621908882111678811822589747995309081940812615240498045812150731261605799114397580998034856685339205713369315320348655632666633727875818591510029897950391421825283721635493884760446833879610756623331481172487294858002762838254607321733359134935706450625406082224007772197694317521239799043838843262905154317711823638518473235460061618581454258863234769896934664825193129228969031400266938698511907079937766421483664295932640289095895133384479841613537352350602380148916456867042349501950661694652733798559558966840798882848511017180801762501101269815612945573959128091928949083302092140708652282792854957788059519693500888047764656879516268984907894264688537977385845086820544204704048102984656329827387358221477774851630880275997540842575705928638999707517389479692191542050778857100470597283369021974879208299129239461032963262884780443753015775552681382469311700723932584195098794347610712664305339574924198601137819408960582814363404085463232398470735779191747414289504134959157532487118914946793951380775335522232915643881569184811169964244030770067096478996339545967562726738594286847171956334379437101911934623747626519182014736412374648527192609342410378470139686173156056071361390583287375939964521358259837009669728109478402411651113341055108857124191563534939551729459207942040116044820557869388085994985047286243104901124624085151109276185459003708282524618748690605545260559915966404038203380739349382442702500196862231921908412004291664556769661820432029404142547194839502952242256889341333721573133163714700014635576514273142105680225408734773496397444314018274849365976818502026014004287722429290972675949979764562127678113952343057604861748372149176709104085652735212994451087540157332950671265680997856429095777399048702713811247168006284532308725714759281781849012225561426149011156231759008228288716177472217103357332598402181652784970474112200403392471058456545017821150841726907921522551602854923616479024070921508066267613829749929646294440892573317412301390836476061141991166116194756169897495737559527166133660522473170737884738936271691648930028080192476652147769174057824772459195996053530887616692372892225578967473705302324016599098879701837719616898637431958824997640393810116519060556054941445734348418396541665106981826435344714290243425291389020715140269442347142154592096755786923926597013318572083094078750327466387281328941001251362767609224007541414727665235953355234285619738804369159939408239585859836624055961030787536205358645078638731961116867330847503554104961471124238697137624543866369653422783187269538601025549481875701864612040813033031833477551344477686535508219459568206426522094088258148535178249289899109483841432927477637697908325457750094511416446256854190599436824912381064424327421851077674539035805858791772480337513680238011686984372144276457796962698117217937932526391107336868213092601477169413934897676484472547652686623487172794428852061546085067217716572892336803779088914990299615414026587659949388032229660420790782868495658029791588854295354580713751068725815282291600401474941611773160306453829536388904448531714292434481201339251733705426980951585426049646441469242118369912422070623918108142260166980184787606573855279059055483844271311524038760219194525691920476826516449171130997424952814604217652456916391203033936893303007649810022259957405156405420588689373886825289420277428994956929479938157180113685507442694257726291086169669363780746729668085749461890202077298947340445628533123628171261180083686864889343515882639986985641306929300520993697779858920683514750384470438242041801692255973409178568992269995024983440974088832987715564036423839514476256374708505999796341377095072627379813547484409399554422291240898326054677291373542196845794059748856498797106422427613459494378200497472211622517527789946715003872068297419999375161813828860821735156693046291913188508659814988189305528094639020128310423704807693537177646261925391200693872263091054743019066101319123353622229913090713654342492639646769513572466167737683332206164258440642183877821522567720311653091148071749497855558174031703931112224745723467859593973124544284517358969038204939033315030423200935366033732321430050864140140748781573183012596179268420270948513070876026560248111346053949538592393836552789040167829146900696970117682586120229236663081444016785420991470491687456578135909497972701902945153379709111547212970386340050435192116494929267552452951922725258576296094745642756663274887498038424974965835665385719961540708685424270808880217727987962029887063110675808845230490914006512390565111693733646195886977635610567655894552461042987309861102396412591939831932756003758029038628936740301959819896246737132573260881084452647535545624752168258574243109080134615636074471041387276188432773517558020742289042317101393147964711835960965242003286826577657982127917878795972022358489846924558046199798867702192931610932950591767857945825717543410029522141274822056645940790060152867869547803633215929360013568253186208062572962340882666419038252499754093545808655333070176835045472425594299619073937529235048419077149482084144696014879919985095605556007660174303823462138452981035517434882851093388038085930291367042977654113595615901251523162179101049243002880156957491723012751855080455199778849574929155393756779211000762982188139382605805846234744580791458780855259738689259698644537372345391856041945430094106970189894967565157146412250020479168790929646762253582633695241054996203378391226408449478947593402692009984084736247472028325474788445451858851354796879529110690101388478720746947824551909763140529657743439415239188267742081080971439423626036950572603987444845349701428508355873243938000626522011455777664688417386085401409222161472625765686780639434630029975139200493639999850771483373065556024068040014215043980786171433960752633263764014216123516824436749235174884214032517576322178284231732830594549425684222022296836634237297456689882324399100261190580134762478775428238467258086463084798588470553755091886231699670981330267158676090946173732730358285880789336639322586641569164967717688147945692763258729483054694703536100550781136055837023565655344912227124406180737310408666274717597399140323463444200987836802860164382300232311564876751844675482155624347811098918330229458362884947403030578506633675457734971082525502647280223961372577044317313736262678207507884096408571085759462882019164939861473513569455616979428338110442384615003991417160807771931879344749643637230063997396919600494888791389809905087359129720004437668663413766511350235478033202896664954149626017526773200931895819845480076223863035848472618379055765019665714032113275131696751406752641304564977689055900492470969228096298120183517452571135669328484311034051282561496586520089267207674801328234186041647355976120952100985134817330143462213856365576945896199210950229597562537154173210659478036380600613627963702091453660541998263569358579216541954180196004264658751237010917622150162462085947983947691224360995753498116492142231624085999011337028866817539402411383836470190586534823441099194942421225324999571841145412073202576608338399920333489178140502009949018577643066830947701402863154285427751612789563662519724648234825901723883732955066462389080312265067917160458049703277891540597755409584428823624344677477118659183180716822947109935871130497426313468983705633941218040383887523747472513137359767551575441737557144299243488996677896221519086578865284373029828392319122017758780365593989067236793129705102474345173889741703697450775875461687947610334825034529898452217397501029240573030655979081883551535391600625153054114410909896501901296658353372273067767328430860577765545880941197379230190745349968845149483159757075365523496057346345141314601604461345932791133595696247261766154200457222791368965730651605665756653122403307416143999057000789416595285061286023888664671284181736034360956875548093751990566036664583151265008296338994924075099669504321322187628756818197132402979821734911408588601308865840528260130785317845725558718635538473431699175383876590321312843118671366976466185957269714355458900628049565740070868773886331688201694952803480508484667535643732125545526896740305925979541663991971151651515119880483974283872713874408825042083608270759195223891741991449110502560783242072746622530282686789682441882899300848765338769679189539208585046794328801304212678432578017055991287840462579161162359148253548687670099977282369276813893504095268763014380094886038851058375299310828660852379099885663462628526011812637719104558373798594789276281934370255749013572238914923492738882586156555289544246236832471889140947110823790727806449636599196791586085079601967523718490173101949868822264629739588140137216216808755562163599328145467821724576621126673442220817365473528904259489561131651152522055710373589484997212696603151495789017629837094983846773955170044110924337472440006285574485337986772724750305319021078772591950419093853851460541161099545170285730749006320438191351696062117749508949744204777120339548390829659003480530916530817129229609381201919901387220695093335360726822887632214925015519681687888851722088221192289213442791512220783071475750115210897300869748661814868998067770092528746035608739491410920400262637022207394494576765269486368149268292106959630641444160256391141839075241954196333326423648970438872759361498065235597206937279257115423320182258514439439381310363331720319107078995647745563058542006084834215276522406425576760889573300270664326317236338669584629941252552507277423935105553085903717197307218576647241761709628090558177767856204903227754005095785819301061511034672638552195435797168194581470417454975089795608038208399448268698560556576217439283858469203714362032447460079977837146912198692158930822039061535650457939149254967585215460262295662091947614621642824773451980444045390896700608319002784594249903089961483509444294536549097983797180006479176724128912601344539000582276737513190255469846315554629570323999350065564731090750033294731647831655269762460251306402817973659708261104905730063054774424240738369345827783615188565632482331810368349510626240979978410343801470745920625244213692012203310981357094007895082755683296205249446458343480149226324774528182097732567915038335177172361934058400346966554047644894022117203778530906770266176380966634423605134404187356109789347014261916706944558723955833159026721999997449802578359551501120400879451561217090495608343112564830393549685247756991624603275604477226160821635237730488908373490308608512825327647685239807932334725440125363372811536742153458917733965280642712180894788001330212203904558794715693318389774039375725100607342831576098103612895422228924849452331357514882275720656176688183476905231203250734537729626581549726826925429888434132919620293299132322145203214180938766082390595552191525563682638383810381170375981398721389423578569944226282221285662536562651602079437549520692770375759897771672306291357773941990756667747610950620188122836000654694273829226651224337773776101937652531856264948713998513525577889704771703172563037225082679842919481165808368805605261051813270488038579596832765479661948635830421595550959734954927768946745110661448984639385803934679933443656275577033722369660513920904905302425926146696209101127074853408179209373384123017659592010859477900810481820019708819008483505286992946764696447380181053242513059896954879715449636896395098096509020610672599444717039369807621285271398911588523790337351622388163409782588830477597109750159691475772886042115471937134412751302011729508362992222730285519155630425723049715111646204504363964490307081179364899135257155724484535610179897044737410762846908233182227441796394822891067372187267192120167956818162286551805418232646546794398353818386982905082121357532557584838635368085687446848628217599765046042838670181644744162841559898551749514183552693058945236765598195374611393632823194450954889269245254494028184995864233756148060903576400380863837983646349771718110789515541946195232756051671052679336471244584808066060346783947238901118741321881044465808617936145595662840127630773845879901907316136838938274658446522272915342017755203994203126927832439944813443554415592112559771058807282830707860635035952705509144471485799603052888393338593016349532417694693751987419949384118249451879375249752740198511088037891126104151941533251819674218663513688254946974084342769486588462023937635164712079576526609027457031148740857494648290559474503773787564499821398988252020755555049998057396439531060354802670120672921259435745937092701897561682391872176364198354347322953159878137651394588674670687031201064283595210567001714101522841292050741939907338679625309243838707034178164606848030836312912562624956516607378054943305255286378400445912813534326871175804715344985430906739238695892261242482104034485254958085446750380176454419373988185994163827162246408400589488032432892482309047124764757693568865023662064486974060893239192305090479527432194610729991899311210943757705790889935101410459677258450248491875005883661758617120181037177102394241618173287639653884482171820019823767243708910658464836785735125174966041439762626865398931833240630967660577680538763734812336448987528496818629665162520752741522214696550949895186168858677623373660267899854683887664597922389813987908432922842074620997119484211127608761084941499847489068084653392515626715199548666306090646412877452560773940791784595152784610107599090740687773031132312247393769949679841510283285044413115943664680466269825318110661330147383966075222724185367316649144538880077184546446276790532020139165994206490922831716219328977625850301262495147398546542272757647099133711747235313396659825874752658559980924512527160695226240191998482325128276544259529149756105869578819363164294898715803219341151920489825536216700466057067297345013383391281558762097944223214920806588264330420525804556563620282874431847003861299826036773311392413994755593192787970319796106597950794334327619654271044085648570342664780279365346889897117609830699556955508258756592098712377730154582230704470050515430195821316857631520118718248038390171449587061080781655073368183128333416196794675040673467427382583006527199026928497962411129102403532663700888381904468820079656755417756674460764843508490924721425424080644512271089012686007247663718363391355487024088801321381223710552303080149890623348773936942856369744756299800409658877056243184070642220092162697528070065427409741549497039601396883649142042291676658642510882588577974630106562589871480879080259066174659398914894543140222905653389088999918056642855635785509474398357319317156680400086295352442865753320388173156319214773896730923340526077321313081264680166027466730899569769757584844805081352032774783832318849437229706206315985218455249579438730521906864316212230553880390302906777671737610465230124466192685708312292411236064382539275685048485227044449407314467727728060506303083149453807782780854851149933314781375210824571651869761240259337785533456219994560137485379598983656232461524430996716239192065685372170256663927751200847204783933039686381977361613738531918673843351915441662398047264374371934434588091974317547474686955448814274790957670262152209238525194970758767691300026002267773409364668507284935755336922041485731650259165152094275789564055458769832207743816794463831881582372142565551753785432878568395033931298110814943542423291124533817246126887302094730233452046513270301241793174288576586495649421995299547417762073451214049915503224121685440123002929478211147114062821967104266716969447505456714318827430692863158919563032501044727696401444741512381881570110877466436381498568319086702204528314144493089366573657070857133420578232562272337558004367984356754580730668946350587019036438600288988886863947324470713632763280522953245618038241694883520122716255416476066001130915297588419862027121151901174539133556129700689743511000037249290236963455552224188021382483805382962862608109511835510390778109323317021408209036793779694998264109130893244266131375437342910574664803302212938840554668282279904667827032366202361697811432704351556776306177765280590591269543307478534340467196303530899100995831276921376119512192700051811785913165992261445368922085707964751656568941890638195750958900814689099378715609562535494656034313371714822175073156958101650747254212337247361282518854949989827486863637063559288994163693043895461304195489802663095790263084969206096741355848754657015227818250296696903779862645806021168056356830326191433248954262486418457174573619546024803538085353099450291752447177722322437463190275703276969202602738345705764886713673845214224358531861618211265137646265257547443675276685132566010271266743686666642782384625107363291174325755958504712464209921989937484814631496008188846406576736827128671379236381553060884937564171159952624812246491911392085637768903149502893509274814849273520825113927530794517592679058767899033116852384881591251399481197979838752229614116367419697078390409269244101845354393959416045289242470424072126978420677467600054080331406664433525264169404102558430694053352990436871495932380747821553692399700122978861964868448338612772392270581997974327285519635096490057999422099703371149487577955808558175115209282910453582492569762904126216144648373299853869482141774254252161235231049943746668802035880796834405150207952326183022446142637663978908169675195781960849670203386382697248877395822538085075472538327148303741689536553635980231928301881879299331890501092396156976926829335678721436969837861860205143909094875479216770344821691797929147270794471604266770008960353295189632003693355440631585047085079755792942675538059680432842792293303798007171026319098044290256449875056236648769499661647886059757106427529070341877951227792141712461950275046445336405619059639230606651081922924389452197927325996196153665511441020089170638415623780296716299362365373366359123309664813198517492530213897708758545842590889044335991244371431561179496674070315866658591149421942710795201865667692454910472660127146164950311940430647172900239717435238497564947573946336926524768866569434740586385698712351175420043452331816590845258644625178546110409760739818168549216953918258066598702755566609273560865854572298701149015827195607216128108781566721349957086584230820281495684416561846576608315547666690260442215147251323073678080133545757198670436849881767169991761547254829307022582620989365865285918377724387951132403407326263159250967545570954475158148452648021062984838110019191479625108744990865019095455606738884518051446046206523387855814816547208012989659863380736701801763598504408428478877602756494568228816599765480804878783916233898156770253591545003271228787172244820484010988283245782497226934806828606831322555415516112829160876900502148276325415489369002422340608717214225124527454450365087293802125984703950052733919147995087472782711118281451298004249982639714640687764069023490179292124383322880575421287910007242431456947444834889551466385254266187425303588887344370893442635521124670531687452199284027107074167268981356938547774884761601456712009525060233700731071732211166721908089481734943878364804252190444080654017076401525262810431843527912012339110265374061463293997987503941353467713619480288902513152534784374635627541547356073488221816382176294223735206782101742075734543602754554876818686208082150903333764579213905009964287140405112076746364789539161668880713058960740641005318489581106699517849171132675615434796667919092096993645592379484551170504211798790875991827765524568557360780320375004307548256612815718208007387110032698592530389434587007050637259379313569846665801557453897500732765396573359785638298386346445238406174416412653230393507526195838457932072155610697621606649219503015362790521757793162944256797345318684788796204502497702489167241997484072349971947899512493131488886349056704036100901683517681057770491471337893849675262010495241731179724463425065756244845389877235841907324560716314564148479285158181984679793911724990401249840163287920988614593389909555439567209609308916860511854065831631116000253679562941657760250052457644408413622630725265674535072407616947869715787803708531517468263730679181168933896235595006504452956764865753662438595208416290473567833916109802063848872172762268604108320283955162056847885591917247248582955918461518550101018165290931076114259572095522349242961836479034535811410315563302401680848740909875222871990903164543283082115224191011513107448872330522211125279675999490892977750299411429879347759571379882821460433499266188595512918924369432132309032579716604999822039514719365260877368929799836580877946438597836025968263097217808933423788982556688068874547321033689268982558373310973230641341060628472412900603874621590410591278024926375647355501942495675200699700608332262103605917082340833053090573227088842715455495389942358760509164830859461819733079058554848297898479233676326498985963578313472452621277506395969579356879206968609847305721550970061766518104721844311413256992709323666996764096927712469300195261292603816833081287306633664239160396921858891890775999428646916211092363473509736630687682735315370821320270331943406649281787767431966570058852567954985401093668917927513078324275048313777326462609935068365637503384271701307933528295266741794171244690156636320549536118035069463169947347947316752686506529048012402976878375283655111762259888201635470739210996647575050651578772949785845143860375729000745738186006539011348690365963763714948776618858570178866401572717794503265334285340235833098511071457215344586911226379221310853217142117396956514433763332205861500024211705770699087831627091986420807185551740007377531460424725233151307353923455996456155788079694022369097170434945564047001752106889168029225638998481055435408376600537198347509598806958175591064836181538411516808913948040850032013157378860313016887973409992201825970526677112050068451390749062050383314542845076193511596932723050496298832863335495862451044721264708480444172887493817565664349788178621934951874076798874970740307714429146956046001294807003593932581148444748847142283901202075468371168435041936921839273563004078515048589768005599058248317204001929845205686938419496692527911204340350009075453786089742677791900696467727966812058462855825019733187980328653257025546427256444567335771747987149875914972121808693608901788495669187244932000827866540091124928614143910009069328887864376409338415757470194626018747192354650260253783996352776231740227766050081957196787630848568280824531675304679809766618461703687372207935508221056659068441956538976916641181924651406624057814811203797147144423342970650386609492864308177287142924477602023910555738263374519161511782216314582786881031643722540910046692456559834585279386454786976858646044337065255153658347129520661497596469972034516952715221599522654528581573597327565233320089469062074263081494269448831005813476070465524337003965281258831059539206845407549027802800498155606308886160692253965675936540861692188124008781728088273266551050015392011334435299146694241712936878391667415173035459934743132497987352595782206247242921989474602691769658037625874227148917599361637444392521564601217647064240810950730269285507622057540797510322079709469068245232368262181632385391481656059307625373309021753530631856878193659740320219170950670309262352746611226184895800133123802756752979114971093447669989667078992669845244618783139431074075123939024893070386399807979620857948756912574871288346981261239189989794201825741502030932281443968574312448978314892525013702369607878587381313072206973468623768826442416267575523479285547939399442373070734416309619218461651390684540237230889754403280489926191434256162662401893308358898687167868533009549828156981133453516185941188229355548976088274042938078369824366724180629987617692630867374347727113365007438320484359897317972550103467583148476809222306296363635573624612947689232353578829904347926675649625258863720586162071071811449454802304604108274026395801228580267662065141845752822652952988102241285437244253556226908517843763874192897051588637634287255363075125848956422252677973844710697191752155782039448021949961450127354572062639628997178163716082523893053387305929378683295816485896841906040579311182211952989496780038667867317356634739798205935019358352620855046067662860063133555255979627266771637062679116133476597320460836681163026645466099215856593513366538520183701801814179476389952602081627355423548794833603941664676708204947223797438331462303201134856380328263073336134977784480466550004567608900524721882483884050159484567758402190664928556229134878270842765424632552837912447486642119540705321864106025584436971226409774107158474372228261629295024964288752359212199257478525589455818536874329866757522028127693886157735079781154910363860690874820533617638514163978113605094119934194665128100806728717452103438661234123735547379781976990085739486329430230549790289180181921731797574736441837793992303263917455408832858787114304838532562057585207170751409641285231584875101781379698246745858240185273813596037377713382531353135443669258418917746325462939554973926342821759428347939271474823013998526510224902714882353221281354666558922659464036810042360955778620024716323730424244666450242465692859500697261386546158662661183939199991236621477175043249540217481085245752914556574818065306684731213019942898139429654342839161305415514030910705534026954170646944865318326528822431029622237744965056319025379510893414590784489385097263544870068031294588246867030040477823560997047740819941751555311085987336856884211186348351595269878026039645339390315461633398655893700876729281555917146412831523926095621937434865847305394225250770059941860296035482905736712199624744463909477979144350441955041019695207630691285887279042500323587072328187460864237116777764615031244424042236543990951788834878285296729097907012632324194919447134673495965420587714248044311219235229709837671794925435970608517347156503092058324109530264420737720822068979286491823095252981599644897142119967612127696736161917134823054292903337210939934303718413010792770122145262195482486085689777066577055504801608801048253950181386498812512578889907908533663438778353421453340062230075369050416336197753379678886569183598342327993341145038259610274820880235083904449691596183998339469859287013680526032464706661849751081598131045612290957653187123217576039754506248357510784123398703700459325949674146976323433642659860282896228122006411014180678588529438242369669584245696253541965721035645375588160991190651825578725117830274866509085213177057611995142258551564658338228999562661052097205969880684116582428038468009869326349233642329804213471398866677530107517663853650801463806720445675415316846800495203175364855345965583532900684265535261305686152446519726326994669041510240395914113607502453953465415378033825371432119306700451009521135386330627224176338096833586777034299531408316895539258777495478084105317094463551942634272852706399691065792021776383939832639456435655232064437245925833624791204331866641541355426761094857916488373371449440814638764475712317429630424082801475824858815827129801222682171168943888873614878682311551283336373227680716452352406638808294250261848839396922013924506955143830352136827815329558978031084575755423531502897189818680228274243124536511555117009560356915263180743687415122291107703632996613528055766293300847207913676564006861973030585013300609705115695775525044335339798884323310906462963425435088780281723614030641389284329335408614492202623912093195310003169844143763849269149862471839563235192737381225335203769516503223031303428050196824994083208910153652212854559580794124372324233797730644620572670627168022246018981492773409294996892976063760661951241583987016281927775412263098284283722625857617619491239697488125265270197561284918586723371562835744793183790293189591415363253653155484575085000957488420680985199934743415607144554315360958726213530640137137961274945835704737848251059803151187377952140783387987308891468182985641696779329012638992514907113359030884058348871014629477000737622844868630573602883318927101732222218856127458407816968033896261584968797050146139221307670865144311811275334941825228695782143072377620797318944579722249762782096518037436089763106384671018093779138509191533872388207964191394484336955997746009908682752613742807558518229228531811559868660606302853059247542437611018733084937132486992183510617019771493276265803686322166789170635198524901906715012376944798792760783784354225498700098816292640181410103831161620099895130931822689552214267649799353501589190809348129649944001536109936276548033539944986512525455531489612976458636158888130421451881209884653643524411488386405788775682908344393029003908230115062347006621936803560022657232912849122839114711439791355822857722335700605648431555187664310632558258218718811309051629125202697498511316047320590089773305864140323315815843956247239752277105065451551638569048239485980124937253268341374003088701594421867127126425337472667678012352908947950626663393627446024954332516527987441109214328269193070794347759443408860790063868585454004466762426129450923977733231127682570160651295473598666319128644539374603705929960450227185417491436153825369299029138614216730688235724172076258331869956267259114476572799705040985304138029280458398104752335084461024527003131051159379524600991867655103615770279346437245537529334025483013040036868004147790543796122413541749934461969232304807151707806426696460965171752869644998043907521489649039264357914095008591463219053066965457473623185720668064415382446838747173153519131914533152727228612084964533940697763063530349220889232781085334336918528030296201093023225824188572265541531709542443972006072839625516715727710798991632856079777380155967072315370706015830766516460902069802250737752342969438063044103007648730456617552495151115571637643346053794595442228368162854904066122787978828698180608665436963290396691770825402119875166240202931302916764616130184887338493895993190652962506070977467006094410330544879724223293899446319628237721506260934128456758680433383461608680890092395087995211953701888989433167953124175071241571930867649240330895855701128958250333971067936018631711111390168038410427741553481241738634705974923453457098524216404742230276571817010767270541581122200054418371826858386036437703224053818795885780737000945921812334153006808939741922557380394104304221163366109155278119693056829906848427318898574665743411583606199028975502084799238150549136803590527822592533363865487539587968121993164491115833329060497741810774031878270427708365575305348571472993581496023595918533500539753256667690020825745288423972114164844992095652764479366254735406778985332942779479660759594158832912505216252532816428391774300881171186288793479215827715362520933492298017473718735732791426110387934158387883304296478930352500420259020842081917801129341464121608401956012627738122046005513086824499005874832908357017507867384228091518013347244944621216889164004252765135570578987382158614812372659261018507977033681708843242789160681389239564320240707466346394950347375850834158129121759637936105828073917331830550202016404849515462487635054035370497066511525310577783170605407499281918769735220252416124575720428131907633450863436514639063187747024703628347981547111153172624091482421269713776071520456031114776608103554567855643510965934880072927594198918225746125364051194547656014578233145699418912114302153075339763790630278882319060249782562102495090123999162827272336968679973246915565553583491454214007001059158769950094192063924242585675744736857230073069202812879147275495637266671128601620793015191469988846287285008352609029110957791316854669193073371257905609987397831654269737074515123937216908378877711999433613265368612615550766206219656369331901274122265477387034614082851468440306437043545123576424500261739788783809736398882784494961503114314590996260431445540685285317416087884656483853237121539349234633382106023381246959594594846116029666366690203554990122915106859789006033725227688049775019482043366881430608482829446460482153890354453983643915056582217360786078944866822072755326144233235882562264727103964712376413184788296703998755371405318749962499204053001201894622577979371635258682765651258626808967348069186925078241055943779493207386174002876005148020461641509158795451435795817556333590938461023894625999245453579514771798988677108284852037714320899991024180298483392123438455162107044707182491669088987922912598495203884689021796958333883774684636731909098796618246788588948951122627977292779366082520522165321589608032914277412223427931793132418093043223569263054775644866566931787085030795741018616831767896340885402248491067507951320904994019426359914644686535823616047638589645408850522399176347117374780596359163531810117640769611218564608942816389327227441347518923060100088989051660580838433719425506633471810739632768959733299244559327864930089069155976537775080185980293504209105876983440554809212206984148953270930122213097999109305372115906488813835510185638100452786934398255052776562764350908429635932408903802396403700286136723393389165185253783420443056482378006603109816084705398264983406225762475329382522915632206398133018853756847670196835964160568736645759697890428334224978117932990537334076788319875251963362428561240561137083345545385748537932084878705745789266186079830793132628697183101051274485741046234251820913552141066489599403981529312501427602695469980952776426505422214742768671773488028176503106202153914385839277800364365745107370114023674153398423275691061357042492971250878481277675564507675395927719360668079917306225889948243955304960933516278993750857671454403562405229413196093408811337278288833251678216822868552434549717075363334474056534551908562688592029508732919708361031698498490146939093142930315567253926541207975694972780292203875547444583667146271409783077074470088362249630916470197685714868513526158954745290299947548745167562633637256932824701389160452208041267905327910441692777521204102429329701681023993306667709037610680615648851952858454432291725888055819297310516424871601589713364979151477715117201446615950388636881918264831050689542686047425875991066655943183936852529622821147817515278346095810065824378848434668968812023324566502084954949758522977908452923292034788802905749674465600042937302242623617814709002194612669246723368236045514176203788197275583357410829940065894886118362748186717496998832450548037864590706347863539280063618445113008405974313358698126560077590925298765457637436461224761222221287371759510579240536636875717424963321841660670689515179922722629461353131079924485866506910029895914122483028887611355291613929976764377155625243765444925805759490600453021896893639163388623817432357429590294135572349434890392249195915565348005505824250791887713933921489996907427022922608854599619730472134669262927147830362905752777814059840359431410260124068545870452225295940796343922021991978044530321290655354190115934218993810228116795573217954186916571667143126464623111405012575341655071747198696621839317645010974568899326300969444833529696502566435849363757049248416586999840250002950971486777196769908510289812637785071568250059752968511704082372806574089072753431171012889937807227679205037974470077927561286587585710822095728585467333764370020043747292816397997396224327363013057331654725318423645367311463488079043102243329956621240173931154609934937035345387050423404413681393418933888962013853267382528703532326801284691108319564088742120232948483617364009816758138883730193632895256886264089725343855176718079034753415734922874604747429529294814777274679350311938294844779482786501020797537672621807853579573486979556675206144192321534255330752367772093391880826870730100637414121335711784232046596247169530301261549994022000724616511401759977371949005710714777685202997654144624859975637748423851215348037226742207444701114368770073683270433787148009571686678307665804630656625772567590552653723048990830354954572200671256932704035273401520750607216100232299910536628731746920970191787044202963246932786268133183092615395428770442610990578925232836203006624585558080862804019669906666337309751502258666735961001671397712675887657504991738142687386703745949921238500914094145758993963587737767558092886947835203385405612398433509768663444676518993033903831155509459265343402215028443413453565167416597108571610749791601689015480457540619744485224366293874016974456801445376439006576012509104176770661489937094965089925314301914849062767541559943456580538660843714660019742677422558950008611976832583366232878958991121533691834441623923249833463828504525338258506221122810657313690205020111678102934957277593079430965464985177467163883089814059400307017909904332900850885988739275773144224270360253575310756205170091480337509841057813706336302898228068947443817589594577722098787019938791284134007862658313058696432480666373771432913021179426303502778841217893054017955217023554693853264820572102617695298393969978854171352044480863813778767797947994657019275476676129020431448668064122481335379269214218915810764944316030334410681484929678558681002684141773524661135960141422915562756478963689903849477986699783586373800750312955002519841253616698696341616406850184543308891139390757888238471110329356550667764651070856625588659036819257998038005571376070000206463451561684453143455999464674952977322528625219284529329999035442273223324831752241125429334377004748929669499431648813027972517721548920154982535374941959306586783733715928413123941951170730158418618176486767743939766281800017989352343556242154909953098857221476685861232463637756869655986546691974862423151859709812910547220032410903170510154128175305959850206535606402164691715638023942271607804543719899496480905466154652500806690809661602354113209761211834499340760613541529820358201178805773859781084456681579904811136521723619680586124938871420111633834976731724749320113909440120195080372188557341713367979942177862350153785988719297970953501921129469609365777887056318651788039923886934923944571123088108987846470900427072515534334691481296836946622047571691286489822050845214548916366182423644549237508219288507520301917270042591295238559866623831309605093332122962634789110149792664757343495456941927068878044763197806002630694402595548616352252770303944818342970379199528361585462297546531314843049162810344565159544450449676588736733477347811196973421058694138460392148572199712497371566416998307095077401022163647938987114713778481098797122159081022763725117354357458993396411037851116040074121722627799713292800201185353772246713802300169832023569864930878226032912996572594681888400096610253905533634037961615928297719803620731556508787962229046393585978060992695398800083242920768799839192309665102135313370223250032217551369128429109276059835669640140409396670119839047996464075367148240099169126229881268879315264491596144553121404995288899735510794931499413808123443497385761767774541908603785198785678062010747122371170414281389130576375890284522265719185878385554575379456162946166192998487662785438788122897906235668159301612286798323338982937386864062665784897361376303226244791924232613579333402458442456670142781075381085716101762900377934207083404992022571209179861087716989908608833299646464634559777932094216957084050065821102433803045432791977169612593004820510618684326220363344536241833875919906472650862368317154499226291294429127638909021877018833418643201355569485987265906334146151745848233545819583566931779115850921761720870176319764056770517544131401211463814709220714762315438898529846388989189844308569789296210030602536734591484806613073814586948899776296949249773716016381718489190680651668853005643576831169798298428808214053219508725614927378435792800871233133253882690327669045973879500115313929223937138528616925459212957250070255720161768477496033425056584487730486649255988022782848673442062022754747564720033031302662142581615971899243362903740657410474282767848443247423829120843901299931313216416267548291410991520901582475590864079121517302475631260591930319394204890436666288637442211185265091905140800794721444165651950934831746710509141887978089288237792199433381768994095028175259784593676280586374358833127482340807153981613211402307794705638789504888230534894305645014235982169211574365470845115738784143535613984305113325378098200675120868187114403968452753245878349084586132328593603951072237001169456190966696783954508475279231469811294717130699406362145783556481407994354756308427303597369856347974164743026583580710801402436161176804175471364807059627397019371793074544969878360763301453232842078616135784250212168314558280607967079708111913063398522865730915774342159819899003944871279538418535379191190017530862227460063184396811121682213057543123011237885827033393488403926218982492185310637219327224553423532157041790724410942597586890849774555058215786288824926914134100415234766541366491913603032671601389801859400246658344320469151603626557550742138777909499014994123547409323718433565470122900530185753488440150336097285343443508249727489213383083719866919700177709709432034338578216837425820886693739805252437212564043495520871910006761903136749974400618413365814081172874118908703379721417716682226853539405076976332362857728018323288796819031119637188333198189437651522860115666476762846124117357228210009538090100208393714951807062805897306223944315976269099121954163754435861638761091624850317443007252469947250537776322059555421329908840106669638493578228905021950549078875265034451719593653120381151032537309479954597203857394604859586639012593951332827924439033025767069573606781006271396855901675890830471933435887472249783008030484607004606043029721332605446430976915692571264797831113355815343064497748077351476729389546855939711319210545222765144712244868124254487617719024263059216222717047157746775539799993972578195618057740285269800530799057736597585870984663530747859673505652347115826362305307391114288311173496745314495458076205684705199777784945248774180107340253161120704204662226576800278818351602513189395883197038608286387080268222954395370589275169038215344742099923922848815231146341511262396271362142687307474501449133526104450335731624188468631342897311416024631970527714082064225475633471417610392643588314716757029588950443139872168567325953774148025275286420582167474193232658333071225406480928017763405093652989070711620757600070323439103464778797364409966682254542591365449842255734256955315696398203568567487411615318156844095146859118058440570898672402259461489923417417777931807507198358152596490393797433681962291327090452540507318148818843779592771926593032004406054773317418591448180440565462964817140678554855512182246523727793292603623780113784397378558190584950829892909642742764915938010770903961472880333963583149694629977192645327371131654704676785629174834458111296799490404395847176922879511625429471060476341115314452389993380468566310926899845043659205961849348636703388173755594508605517740115978318337274727671577739944234294180631521142023591579659350233406302951226771174121943150508308726490820841485657147812619058308704804719478139469461261397249067465012689570120248111922129692753298849642196493288452570766500390519230576048971052413100963934634484975989319255514458316879542231802628660520812839033067230037911550439302933177231436743638132414692661074697938718902702198402441586214566578714870861387589921313382927764918495270037148656520498078566803816116532231434590512271275407581080924041790897638590787623304311762109778660007855446003095833277907125210230949891459427215921356258221968005477115010444725467786308093872350956273245319503195529228497980844032024779071996371829698405926097656155561614129617576609235027322114605092709065107916549336515089375246510789335916820714450893301573590493606653643988519781195446118618179587912947135415504990786932345652507892958218142515489088625415652605322400348492257216876366501012746629157073248636422853651397702356917432641501589713806535211387389336332719901245217005125629005839514920568785862625600873637993318304752797358702270170412281577247946266018887213391293055891311711295989643516337722951324190738174792844239064803757706148686545971889200076991952106512833418425218209516518838763469642332820741251828130999282741131850665789064349917429275600475792067959031842175134784100792062931822500282063418083378792318145739878245134510506555318859421993753001564173649601720491502830392502322575669530896110954860284545524982523342226626801501353974576329794770064026928344603612889232163801498972722022805816272926567720381838448600766050120463922658436919956735381527593727074712828832976806922755290787928898113490476624653555863732871446976518019227490236818655844524751678989727370791315753745832372527157527453116423852171140134220674708768756757063253639789312326176878640374655646569198586923716681256444724670149295361841906072606097469120539774168240207016027548686241195379704378124835974194223657546402609769264916775390298286945736461898231341913582934500347922286680540604736085144268700277423251435171339138838297248287207246314240049440604938654616585552744358844986803766604961696999661030458534801168167399577514823359419613591226690850889628658793908903174807737324688886288071235198557157565594296769543546652993925958329635835780162454020239045830739733516187509495722829922681753759167918508595987445662165843109116467767658513795392724957588185132983184029048617236150765051216533644257196437747159507854965416651750180899217361194142725161840871040033793284181447685341333022257038305969093980970799638712203287380744315072921448313348853051838734552597800176085670418432041666701691179625097555033431447366535799110727413359307271561624078255871410893382790878764548643334119478281345486206588030025563865174580381452299346943958805448744194732263333518681480618412111474254929676527762258529189712889631584173059327290006444315944260812873560383180105973037109630218047587783784978143798906136689848912155927000848562520933234413303566390046108771030905852619988382849198549369448954715109327588317774117278136633245887525824260651580061742666398851200032169290702158800696967524840394520988957358118438190166184565851422960211130694114586089263012963456855331956219124898460909233647730357718695478290973880027598406953690108139524189163639572374644912952318471673984972678532665676195122410811845685490177813593207833733892196177895735596633185274078305241965748464264594332488491310863189981251842541983954761480348280152814264610038491763240990573865211731904431297025998488576647360916751360103581594904713720922095443727187388228697505892848452456775827159829940143235141526312770660072564204366216212816345488078090710925697948857140092768708072970001810582353478721358577070256739341695179483104913386264215790301290703764085261200282399931947905376705394908020318017127131489653296066554503486331596720131562462294527109413749086717184282654055533046535098428824876199554267946961750860956657752075293177781394787984839939628126183995270989289658964105693985301622600014835976746422240203485632846901186179663886781278366658126683652343370657683457243375332492601296548889299630462969226992895381605490508918183078582907442063670069001353602949726852040135558846826176164248688026945690246059024516606203375299182720404761757731862077125065141004788724610396606067991911534686695873495089488623217713299699459481320504529270561097204243273607425682335666950052280248345991334686755916896507574791543266422015851199468311707321978501514232806820731726706071417044749677838776905046580125073396387220654286818243561762438632564128903081918210160275928567370240077863959758654757614818903387521588950284124010361345956438838528735587309901465336383934532730599162695235242997121226894570138791994579753922187601222623781011477908567494168037583989185882446806215240874633030074470479413682977308493087228401697355090773446232399072228570106124839908624944304183367862538985375557248220599970847968585021302941067288289468105430336778658507536223900376677929338164639155495911590353190066754686305457085573121851661670809728546543938196657403873368706896023695710742604214720044642436084866925978406248810166637869168101032447257538633700591365160505258473484677048195686753663974650288534182338888702311627717337729333294702530156417918579400408995657595965569878884111671420038617196507146667892412197806886787984177681841026385261867662523476544052493543891744873604243690894550147577308217455458458739704883504793270554889015034473577442132615947119454374415738979026160187065932373707147195982752082334489667287025143929807314873349631316442200332039102199051518085581803292769625071074182498121405766830889775779555584602864364868336021700610730356190813440236093455003992928739856390305212315798977471383967430753828940189576764919664464006792738795245220385804314362787704464115457512518675264032269598643039399255637968922156473913990471903820573920259816823406481314015074324234606194402240947912535640796149673702300414066407979026957823408663861912010183850580356574207103309861770846504251337091343863090769509591641813032881918633394756797397385954915654400058487221043574719318686374370897498529323569790112753972004940095435360225032019698229121212338212475464313271452307912312694582525388612861213420695862993406592690250114638031464103491564010683741498095589088419789169902965003622313501830899510703966410940535678765240159122496303231628309022727321804582785651767985009285841282240421803154356674944121601751050541708064710408008572760453240463972464020981880435559859661009289063973049068223449448121944648137111849499484497746845294053623103281854703447458647361078167417660297686902287975827677277005800245927493135224340791238190622852835217088234451324824606615898308845519402644625020518477609768726420230236550011940134918925094173173088576855588464683256645071694266285403278280383238658114852239977505313780562689919756557596467159375617919344761766049907647375251559975158247007629231821515838248925275567406091981983907667864943089780416584442254637926561163449363888243095843386966552344582184278551740146280676791830606137609498476107133235299034955756403333152668443223804695675883672796808716711430583681858343483830227868492508542470565806140154278267126385897526754666693976819037190174307506448213760083644101776524015468560512209503630728486028747563998570019186004264146539019749992103423921578138509612287639675218147750842719083964399184074058273912745741717280809421496195617874491994685777466743999689053388820134761674856488538220957952242565835424422461863106917630416046072915446519967156697388809397106846436327038154294071184327362044747205415171334628432987017177254629676662308591719602011162127145087296978678066034168496094814729139232009671336242077447400763030036993400998616100958359321186217501445582699445821621156363317948570807341371500795812724766778336260008168408646880717468299233690059765389740646523301012270338503461577491889328127612982052613692743774511305787036810311255913130229942845473746846722866915340661895726079161571701356971405066106427664546249802385058273975820137764425877903583740289139317991319372892573452834598558595961639955837846874007927419678426614384441339685154475419170372724079067337053137574317504107135161659802407276940449396467780395108294199936725331993576725362133386484019186113099163041345006942034406526559685455367968645229609918984084734204038729301837283446134935910970966808451245219236353362409175723252413116545386393042019418619287116496943657444500013776265894238174803763421538825422296038250560713135172491445497651669139062573310171301223795754436295849085058829348495212059149392718531891343331094527497586780972445363884058095817901473379890588872421979294269089443877758892823066559874398710422187272107147094763572981934947036182345105741591785671207188838042629785552254482509883476061299601643638307050731036268447513875924644125276054026073655224472976940945113165337554427883944618238690900659752040959856641267116802449395390669407461809795273104656464789926602331080354283263897282472180662262823217904479338849315751626826394600348209973814853004896836991778936897170976994593037061031263089189613030059437584584339955332513286337045376819859427878245965237070939747789624239611129716877063175449608781717264056768656265620086689242311485648424775878070147521029679666621745275994562458718458793278350165787639512147159187478119218603104388616290039643296268173990595052091788239325327989885249966174312760498745666356030518153927056259674818137786628231473491889682557866334920887129647894319891617483454885019086002981143914568418320362097347950939223232993387062044064662150514932066756806126371711264057168124364452651561483985311387416013317123440609427228574288870740171077228301410342354159206653704673135229147075959638894105078507885576749562772657844244806812585106182874364519367503754775296234083409464932620884006504501507801684859085407477909381162665751758617742629868306631486789717198782532868068991856612669752735029608917773061932991338623387736665888393145550423819797655727313791624776869493000534442817945010027675293525860030126358298140514080088119244221654488475109016608866837295143607796185816966705996939930025587239558262525104139226764756868168333198727173914339778429269921187912824690777339448631776667163247902248076671947873015773256412467255957967511536750170374396078863928977782894771629646225220077552329054691903437603677349816893739569488414650048076163759486749744336532014677339390163216812503386349158352269880183700625296087027293879796319305677519602382150095346924805510863980483215401774640246195932193892383397241695409592671824368535948049261981134425319364230938641479656430031714910918471986910100580718231196328753126842553178506122362122181591199088634315681511514802752997250481820570658755517646571729712614191236806159101776063507835201740127645609405544742583181188336145818275688209189570314989251633588222815127784105598386458708522580945626813695749796121169169571530655467345023964026445494229368500136561955485154453855265201402438478646118823772958975714798597004233698235487391302305993985344865448638341175337644405982462456664313805177121792498503655053062632509164997273698233141519263585683053885739334402432348882000044481477295268053517839141970444959361492214672694245832219586092025813711288834006353315567146419886232565062973555133147235362350224711718866638691897775850602491744254356707676503697433101239800050871873455339666619211326965060170966796799499272975244469621353639568744886713971079289164046551360651742195644237465144232650114134929410260737652812282156484592976716287516049103291593957970060569373790071482799901800944784846338037843790028354566425849575903312864966053940889202308390070651070583920097957079964897220884524368905106989516368039712065728620726271116447507165407055512288419626680869351254392809767074916317747245116781676017317916663356622010371766068254949773263079341545542129473532217989899919603153530225901155663588940902011905645110011595554841385889133371564806107560838749891538127347306770126752082618878781130838367809339128283459637074861438276459922026101073871614985407811899463981659668456859922254532701771977894097495306054686288176974217443220893181856641483876282363755217349158895905512181513944507589277428104735401206914042127951582829011055529334149531278961532663123589244393017754027472860266550683105303349311842517839444870108859302043287925117459635125248944042523372456824952871924209873031199817281241429566640907863449000848731396343813939501917751340709595585262411254982177409327463091714437355241226433573851920201994352100066288411139006135076170230942900223634289117305953747196301456389143787611229500299171442855828663294313945964096652397779164562197298316320188328693904623768004535992234634434843781587339705481100974023055799263454203480998822173808313070206000667315402842950080708721809382282662875977712325983124885091610023715068792101170708103195800762227218178388268227627279552394897626400599680624492239126116441444266905745162338755857458121874849123496262990639267048022432791942831312100042571541118497341994601920558170389015585481319768640543797710601280399657808056522589993563267143994572305074431312209365174323878815634646665685343722291396393676842891670351690979504752164183328058783379125560763356457691076753899715415308976181381336057203590146798736240783363200865514321838864418272402629831072822951049079510777309206196838539855699391145589086102063409099600008689192754446152127514282115370205865164873120851206393017950776168010938144826496224925247752374446583434766472654518303666782790649716976751328784780176642859787106499228723720531246513678176913368379365923967967716783339097541065845372853557415854727648953149114837279620973386649026886137810941449878693022379479873128700380490220219314154737736496580603443990221163969743361488182170489782706493990472454227394793681730070091946868512204924629407768190558907536716453843215605744321401205062656565562086522506377316764189355408516112784549693061419040487647515945487371162556503128013990950296772456242451784204024290432102736494957244990843035836568535184174101970631095812388190794829152076546684504153591169088414645697969380180730708259832091727050393747783132670310038879455782623087267119470343636330142851482039309119055658270308251261249180464270865352723806842531962164040119439664134915649315357447140458123361684924757336205573021741231328786816644270816647364921941348405059906440603196701244117644589112271131388411069377689715328232656901913249398226939003385300949830928564846063747907923945774431395763248410759237221788131776571076316101466196087542191137748793138260922823506894439653163045042802712236260663186960994239393499589742011466601016156067099817563630386118519411961590570744176003691751884912056919442726081940200798282025544024550832232467743971105579985524868537024115573484371929365956460357080360194629972938081673931950125312555570493475118392231696199026099052471091439997647859570410120695843480987742941330896427932833971391825893298086059547299774229336139434778420091984220170839944937455391382421149973730665910034965714200117433337889543546684705623640579423052340143239825460005892371540236302611331343902503969189444944152108203435334022830249990189241247124922833247766551254386656688520498931676849237152972840777787584286261270633268786927606074031121957822432529895957565999361103887458155850527303733574982248578689363390097816639261252258611744665790541528203270732076206954363980025450973219334193563492757264558882097574090687335520931536617019295773182047414993673140563899370632465385552989627854114682599705841379189753344053690210465937807088432828178381104595544105216888414892255628736523444004164749907578989786474250390634387986188995432734651279306415658630497849711017524204972401152428678324703096167760210700963559513804306750353925380949251102659891262411357211650094249510187925155937461716712172659227341829972180604818545854380445446631608309964748317579737493392739417687027401135627431013947019261053267229439595375330217988728177755655734644302209657556959578451720207606770820924972489492171335797370715124409398521028554820544574203918602146847138820279839131639692285333651929815166697217290037666636910377501925175694196451078038749603377621645423186942260021762127265411598813776821438267053741613062787356763131776403100337196885496711988909370038938306135209324100109276712436064189928316299334966784071719386306061217251581548165608262379376769592373084080391234418916484663408309901750724293014856167656317958813378526607150517511440446230180574961492347798801082121989586602445169757619352507203694648728746671097858321252647339654255257988080279761657446279380285591856072261404701314288069013444166126493139604049748125364887824980087876009277346122566981784172399014800749019555986037222033644364219253893181165569682773782835937237227693129258103174512569512385315241584334356930260850577380240093065366228266076719578431593959983574856983413577483302298280509835695698119739639320356414101676040120126663341792921121072833351291055309327035227422251843382496541103625066869957051911685319976028058719043104096075162544270896718378427867434369585866102559873179509118431976868780979748323669808978443700921099911207300414899492324297410789805731318537025982351339552251544027647200811786473578845526081567123387506237725496896587895659940771971292688075972520407095549790402850132616556908497548846072329510037770719290923826186528561915911588404432829161989228153600486946923052428178997035512584386409594509057605939522543004290742804999960254912704212123895773842651367787438668326011215494136928898390227761326118595333058549351490586489888202297632130435871406803341885860467694295512839437873806254923409143970248186126010764490504770889537661828913226007957999454780780298442597309136415305553951528133020102239368643565797059254914061672652945019016178946012345594990226427691869943405969354614385258857699215185968567919586803003131290968343833543109816332050531824882292378243018163167574784582097667599023602288750928818714069856467537873548084498121839433681478051602218698984331564605272818364925963810657357545712847459517290655285986354140294036607322621538697891176920069969462248776599810105957039759189295978330057441555222120207278186341760686126290781499545270923268776881378602990556848100057975095853288943284738064370235124837150870417790060247364671737608319380533956931243293459562010713061424656790754887789910234731620937973705463870501668181047222319130827304997916533169914977217763178375074786770501791707837645590169857054491712680066952484071042969270460780118029413950401178892131979805218977037596491105879630968923109591368298127081461472552333002484918544239886937148959807860793661185347322667657461373400943780307883818835236272669281138734880956380316404441780886626297390103657032654756145023706847835655734292157128619391294492813222766256635301010403696068275769008183361700594224971450030096216887678779372068642529742460492831510236711777808394523170082560088221567955105008673550829730198675347406105568834036562973383413811293289558041903412578820467147747779573934072580019272122571393500773627260114680081467790850848743075186723531188657852098939231662141164170330857552387097477292781119702890090729090644767902044028472887702224117662683906502553465533452088568607095436125584759419665958117322470309118183853331554149155677188733570028154057691163428535467577790841455366710856530420552792048771057799234127338323424590371511560143670181038554955761340919620498887044369920279596073162832837007818102779694591054813749554651712999321354399334842226260314275870154682190339524158775120716800062057312320374308314802614536355925550322764901586739907166255891108637512576140428194810959704991791653792973059464939524251986844983594198167206018494623741541172015847134807933960262735291748639398854488203003972690488087199701093969566496144663483662405911069689807038628828624169182169060273908614200894126767652062055106827947114841166143301067713421333358507825849855612039362287907312397329383160219355819053598632176559545872765350386374107500128886998956951484939987423506143412259155604887412459262278288808207868164291917905133926536586992330705689719186217284153932867302231022058111910078432835329629547943244416433240975077938464078793568378598983501999717166078644577265970807888188931468154418106305056536037748238734459177574296900746821795808537376249505185225029259775121013540285146589583398254947885940251903496250811418795101280375771037275792699674083977709786500943592894194086240823382365972417264328344648056773342650554727509775430415049222449679346001276537383866089539176008914932433782520625843660560672008777883913922162976366524111524903511108265829118276216905518462976564169539770061014091410269374172102373922447862523614717553021455672038911361718849594810245371257943127612274313238906564777672845105322539110859248508208517770132154881511135315233674403893189511103884933545855417412449476996039058277806900896751449027210812819081746403448989701956277166435208053970865044663432784259752732169586285989454011578899463560594555196044812745185705971860615709019046545426239112752300432907733763088514101910038732050818596038000519982810939373998779110802391018190193857870553487188607754382228236664101343630188555797439330358189481453535761172786804870907536816747454243840679558053453218195000271044899962632276431154736415635725162885719613750344800373146214091913983188837121293472474364600272184401439820639135279312623133881020631782795778629372896733425254733452707655131052260828882107979703213364974662769822232839874245326684281233310617662105962471504715021480346969576574090642292888050523333816662628035309432148607672534819655350214833163877242459524911449304966550985721798178520043452371914751146804041849244472922370963539714159051801151834176602967827644823752362026735811310752175000432810129679444255869641539149757939687145071983830837540069528606646699173496570714293703343769662436665177755980486642096738801460096803936291574898432199222848272645184486460832829311194861184549371832266093003545656414596714706055772907465079241192810841728796533502540151011852295474125832186559682920860266175834602782616942852346011360487592051356562286270687630406717376912608761752794235864979072442650389604979680133150168618288954025959232733417666882780543987116933133045050378778979979544655081587871356876220752023082080363573894330289635579949116120160489024558188527866816520129041360191804755153055922558382159631170650642981341233954947019375866967499864162390118432060246842995836672238826674065149671752019771412297551540796145689939246103678542684713105960531195458968842847787009454002433885913970591835488069797769936234133174673984495567443914863890489803647192441243928832072315568307425560817493467229015569951977863512319758921326595319583262454674769387821628506283507883509769780402812455733009902748502212894019401088984850201663816404363858905436962694429055130839061446496182420050562393835643685434761567516603729241673592787475059301551029383917446692600789711992869572449306198075530726328670542963990711846064806400152301203841889969263735468655299751743963090220375404375176967666593163390672313185696256462073170644322559799971884100342155371190279736781813733713853950398223137486723636634416712434856234478479308696450102414309453846338690742422704647730163644649563102827222840819055205747467563873803637831588163250925815899265342262926112881527746309165389224079527286110133470735850556436650324090517350570419640008374216058064875967968650289301846980030941237202193037072589525915650948834222512997135565327585910060082903738507262994676930055251950810726521659077975317483144450633627087829218910231205635694872449658888270371996517132033030757490656575222486409946719470738021446424800121809536378201946722495680092111343434634876374223399665980035524474122211509735407362468963227498607440908466700537556040264082037309815171412217506692675237653435329059744075123762911801679388998099356654133703013371122995047318998144986306465510510734832074128221799008816400678674433902327251002581573016700656573445118917510686944045543966689561875540210843208105348846695854656920216789889109704218363896221359352700951415161826098389575930811618397988263944161246564766324546299626240468241129721826413964536456001238530247182728486342452367550663075802326217910584494470515519939564950858435844740625943065694929970087623301589654427392653017286151927321625967794207061936424828570718552831849173114038266514674210779903617293817045186850796192636401797025994242989175809518170683409986405847867345643136575542056990453663543055618163461829378702238467005969600199587489724263146204803179900970369445735361903489849932124194158552646094795434589268751084162342726018449460369602423597307665372652105857762665258658094983434685220780280246831392779554743417009385325414759492197928809744300200917210009539149942273880854336015642307698386867315687738848084436925853789280339963478055782949040321617543318915078864111999462543087749278106801878217707170340762535707844685547951536228742701800636484203461610695654086275085858315371509089179256090875149187866927619831808793179389851105314224221848848416276054346423602603250607865414267552336028716460895162297129662732772840512400976332788264980485350928080684642909192142578711453480069524728288219639862856933062276990804926249048426804374265637908778605337035271332461277244987260288386940864595491670945048008161652013870681277665449850329886645972056969806602401165473652687074475819699220358396439303538232698198391474036060751118662235603155441767628147287558714367179104923149924662392841087160871755023988320407274720440035478728425667371474550265378472539545340166473185130598931048181470470614309770280623603603301740869112385483615785661556076670571047862502863486538809551736269382221670680677309712706461838856213323115567536023555389351792925721375124453220334404877949379323274042228541077639214811344920945067763918676200684666702932894699469382309211331197452823850883333548903753431339869724880906060523609238769512277504105559643449324657749304329537645746469726939178541216163978123085773779905523654081040464835494460185441546576126481793434607914323147850761674531803761954750303557045588088392455946745268272353490468471469882237109918426476846965947086472231994549835583197375787300115365060085406471332396613849618823625120192322219107807704070767873609097816368766337618070554753122913912806514365492892490394342988205605371605882602344191382233249039523000486531582766485755398443539388109582337582553629865838502071005924316397200559833612957780077290428305470072161084088276987720035181446835639058314767393619226056945021272035567369811651296591262575295594245406226651517471777355462760145395398764807832271613925444751578232812068816285912587656092726304595277369305470638681862392898010684981874953434346799904790966735846403832184619671753705376157695615890677125971598975372253717880361369748848026520534519989251452282120532952977904182467826455954401419410613863408547761291148691567853999861192576755162144205900375621617348075428379090586189662002839831276612629049055212211499441972685896133110923609447906760683727541068343195236345284429390457211375368381899700318708981455686248632279820884136427571070124308050403504103365516376756145950434383582055449464035257689401573818714021129500581282458630621463538128426875372219379575279906995163872421708596689033758539128570515479973657167809731108028262955168620414496723256823625711808508401559428800842285069087928437553022409034605020890239757352711767950707089300087041108579182918596108213576946638953265814595899609404342904380378914037975063039358467475101115440951909844701443183214596664559870207478032566864698528047997775535172988780678634494282027279438836120210981024310920201567201001847471461299142530226248617542016225783512342799633391646903938321852121661168835091042626627362947221647199845932122483958426954688498426923698799973729681958371424772329771014122424235695895095029293477810244601200541101652553036225501942167653154963264690735548153528088848982168772026405343352065354656648979817441537673739772239884386578243734105698084973198933373199188788499014734834314803802688361265964352490743229103643862575754123038500660877808653640104903488707225255214849400401147648611307087226748865736287289134527077783546352726694984447192068318731636707017584006810680666211268286220715947370166179653555680163111585804936208470738046285126297832426611036313184036323255146867051924626648005240145127180899583712619941652883640768548420504046086809533846219209169593196145047830594506766820406305874199070382108248800040140570684763437369516652807193273625273834493020177537399289197467458535805508738572734475398890506971170336058449509689642419080709328412871463752789088081859115109718827556356200984415353978381978268873743492692751807632209691160200619077529933319651246820914807496936306589786552294834240569018703559310498267483259236732462271188817695321381477050891812735106603186729426824061241009630479389521532304557930302818107457003874886561337166449483274214224805937022872904798794872796210966587251728330559110102694411991081779309803252575209092614806806683442100884521883085431016495325238094213801863947649051876889484475414351152363685965769107752435918956223643813375658566186053931058493149258897277458705042390325266556568208673681190224440790418814067558887265629948300932961958996408996060066005278896675850088512276960167247869874913331344027786043712374480577804173992529468560280095576450673737383098204397195224141722630523091879440398138884578799120823144555679556358481916571084147729087150776385056702213281283192646742146782959743545069444593358939444930585464861553877999291589519160684610257295173754053373240933516568639324347528696628164160689244546403248594037708079735934321604235592752372543657653371172242355275401780293095433281304612067105296902290882761193463635005221537489258386693192609662158527260601870152835938662539229812332005412018930035937647886924942082699993091305046495278148202728813910333611425268266374649277936017290475112365241134766618945647548866490356790343791531796163206457597862367062363657620899715375315634574855489047097281838144687536233579331987672059891770004875547798901889777284838255373882961440861637558952818253615338638598834437680502943839845469714277981659942837387553544529692994566318642996161745602824352489544400814637571640491898382646921841103380533547516161529257933413977931839964048220838091490213956363405734459239006121755470962978200302198258041144243141242263705044200065124075230830367355105712541283098109694717885132221485623134626657786110888839065035663176229459198999727113919681767605427981670840643374969930702345892003533378721213610504036908283935479851531475741973390986000465616041619046396949256014704241644812519685505669588198419722646199461162014991907560468964255950890593202170511653817337672128204382808158758911607500005024694431106359715082793148334925335971967127074794027736344498775529754926757057331401728531441561194027656232468599082509056033566737959824729331961628186437187363807779514195136890600106092296253018160176243526399335746462621776505695354064039241350382844989568688861314007268430282992567485475859996757451457661047594436067317158486413442966353758485918007667494650576006350060979791576472723601922746104349677280793903123574990000876802974322555968667483076473889115492187614149350734129355104757043174953234478382726467934635471729672264788163534033403852246148241726537049720599458728397815494957665827448744756661216093183736173733322235735043960355958316899635497415418042479822675556861795128704193436677137653266917771798304995604786751285932908014732944415804681073971426684066586743583738240067907264691444086635118249458128555442354325898818910953089057979119835891188508616243714234688680953893947985240750790748755682131853185484272742511785535233009122531472017384869960287958896473447655574191126077559176437300139635089672289665990084515026255595585754929364615525965090149514817528862855924589069401804394056190096680689926975479503443255332831070009537509303244526461803742837399690249365137472527912023458105203546289981285486279923708164733910950602525420073499335426361185633175627374761494794358523434231467756806153431043839714678036541631106929408226213104563897415750064908296396525819218959147576520808100172739820565826358550598077016592449900293066203157786635527824126989365190534425405087698038712901486867374247354732286263070499776607111028262103887237062111929467383069884213513257544167352079170489316403292346340032037406248006302232403550086191210566487641545283386434733589737810059749833743691297748648040388329710226243839464292752990290111823271672555906314503571870183761791007063178450301255601852750277207821422200057906963495460662685659761345932521135251832230034963171775947702402930697146434446661730727177076132928599653138054547020745744325518883607114970483530375150731783289020386167346968887129413236868806993695748367299252166185898101224903009438222384616750950635874009188166765229513936334175423608527536453190003100071844578493557329884143777141950523592360613088065350472323545740263877260195881383604132202626832894876968848518876022576036258748090490615251739784999223358013641091973266775803691498292374963216790782035846790184000828446796777684691726395523442501506020065725656814554192165059593417391009153273387860240028159457722700773329538504781121885469103120042902236211908137575777442779022652281791121147723806327563771138424277135073384824101655194745693685966744178139410383215237977638519451323674452310450680434835674298063550283002078444255045946050042706532598029563468417092344891748488938039273940706928490643274637814593433701461674280548883870978217234459570736629132051108080926161977769915640300865748823602374935354044989114383297911378694826300198908002169719730358076162978732243062344747548240790530698544298644169381612715284145411565058016862210599055368279287998469221342176001318869196027712721233114655130485613882338286614676153686416265531667438767759623033951235612163821775098012859275143320546754885306423628075547223587001202620505005962436347747139100777789495239062507372288761351352008054726225215907089512270963703524142162462008100697086904183289909391087106646784928968032024436299384994605215458152330876586348800446109376500438599151937764661490868551256848000463426479908812617132810840524261822075367025008046595152466513021682674217068987794373262032076985109203595718629501797604714308882357617621764919455616062227117334352632384053735475063505219204886144211453430562343502003844805743409391484742671520725298911435985024304350823724964436479128694716102794438222235231326560677073948847087087211111090086431765962143846725084723795525473276091040829144481530097558785319977937338727330587240354853548799249472212020458397616937944289064564184329208036644249831399116933307420787574138583080351463793568083236916650920707460273179603838310788208926458695286397463819597516104458592463873438802014055751789590463111055817774226255723103791264259403238864282375323430463737636921198613528309973839501873553254926364585505747629745594133493322441859679346724289787840057912810812387625899102444021838748072644874985602609938415766403562980902564361191189142351907655865198316310400565938412638808474077760399787330894540543421468575226550921178093341345748899233825348881864666070944532846601895652324477351999209876006396275478966201842231623044694203673438103462380887369027172257355709764763469128482903096360406126284459230602694569946697330585800738490184786837557173103818218981053684930162278094036824296859309461478666469942404230555764103156131718447202401322201622733395487560499377423365525424439792488183062123295353058253636852343108659633822465249369246833602166445721883766115639535043493087231787745436035343107225685402478062178602856176254465504638991134523317839066202466176270142383691742286174789132955514863133136181758017530990097474590388658815759418539714692740114797338177085592204350250798700187134027914013780849190427845847816090155048771320062286108249743928519596114033166756600656067873835466078572348608222537138418503397763290598533848621777181403941401150396911422592512916434359126877991720967793045047701118024363980707997987978164365211890409523329992966353652456089232949480785155044433672715363150399360470170417639191007080375412051889657173505133030181644148260899972769002156958592185935417915994789874912068115728365605192772017570121455945730892441367012630894531114997593152697047440261907348559633323729366791124226128245894525996576001285192842117685439070375575464649551745901817406029936681866887367430139477822239538365191390726763309075000619653003627181837337442976736499194085141814453655261325821183058345793693525517913775938402025783064344540284479239809622210882110470599349270606243727484685721480623169014804112232703707522927250305676343586342719739202503461062521199781348481433871076686778170563728360934408681234341452623296430580599215525879855831292663657149274393043403830411382243090725872104718853949612486318871060461803443957362159348608436003385044086759964931231006002558209877237471587411721553124144456995645857869585577085895263011187486158979139616831042737288601947018784990096037709880438670466450649593351495650077802734000761589328770894054560804470314635282876262113030504455398938422407564461195795656712341962984698476540031345515096369061202158441930941816679963880269617201600455292395034912507660044359621071910005841185522776135213628260635366298983601001046913015385326982246425996790696822736498929494981211200287518421045307596807761039901220318015196474475822555919330378903791635485500190301502386320725559316575011878228280656515743141725712210735237446632085252576833039654168064302448677905029507451502669797893694708010250680024386607357380515689784933816980131014107084158255481233465775717006303918627476954649355728353717107285520149305432153983908602955719543569105663414527921145237663595138414926613322419515652749946565657969871911450966531788089495958650683615539497821236667718356771561274230938700662570742410988093242890850497495245902585953627952418004282038945566182743964311706325715555729082474017871006327715106967635009495845809981901766447260555779561853477140977110214477985024203157519839652440564240482013331116466517109489241660022478146393761048011268537731957614545823463428476635087559269660444886750360334013964450754566251537098412343989545449730678021702144646769267628965590250274016664665720615260303187186210800916294067348681397349473524634597240233787896241858980676624240044492146001587016601581380979309704203005012161875674380263693029015156586480347797112710788325659239951265403081769432295999508880809062699781299386758143792125707889761784084815761890375183664778740215504043738526333057154975895108381938563847282780579155935389171762526585182259380558296089482593013520080316128211006095810928380973726594320115094254893155773067140597799966437527120689909175662339052898208315292929691708436885138625500791184447746214510172008533414007995264259151360395590094462800072318261523749190132691877730869364230899540482508925066634093228821008974286241543003961598363274812090756592044853157072254128045407569787251252482771462404716501793321330718408297613284566124158519226147278558054274773163172261734849557893408842656080466910616545212545885335648277565589456414914722824096422439823674359012731553592714906099201219691469997612948536380016386756242535188300669153587434154383647108019464977655196769555211163135240373050299504315958617247432307187679024969307742417247898912056700263558719291057207682720528966568238348139051341441013751061248030291035403256749848905595781334045495525576548399259871082704264274918728657846194292439122284969104244932151550208427548297282982451388680179923458498507885550716017123913586298920272667134794597842853122259621601955583876247185041429217990049472985845915094395043065143772412631672929955534278177633045555207711483297130334019352092026112657224839054243551761198845733895963418235235792262467876307786088086544946505743609863590775826813420645272644825461549259949040913124239708857413525798157653921301461072904554110941992480735804465169660535727505379414057824995127229732199031871904440188061071412151534620471930258407409118417341900991089108900964993212746780261939644934722663302483783355051835522082515523686694314738268126616567010061175379470917080548537241389809904220783399888050901029201153925632339414181689321210540251312522622341031570054735832290366656163338412371639516029988759496618014980743525251693693278855315639471245115790845030432295972791124098387251130592807269678874644828648486944029592318740700626261984255337558953158992799848256369297983571028641809288764353887563786125677088838822978643686264185908096574230894469716601548311677634207192314748183570686210516336414084676344664873249283915311437100109591686813620471519315730228510273519330625807114326989220425471181262566290107697022395532108961113121592317274431149766507556538883974331170591690080711581384420501902812702861052467806907526049756841802925597009874216658706329204263781210650266979516151603825158780788092647954867162625181096708984120780478636111081118145450831079298929374609699940836570698134559953531753517737683415870289737578190984994204374261009429772885194149698639259764400066790814322949304026825264620329360046681058035093394403966460065883155995249966952317855084402018560552397823066592007024206857549805817712536425040615268013006588295369029968532574348252909274337919859449587088212985665846545849610816349210447429202110793647561779280795068690766552119866809029331446165795678646313677313558223772465068714682961483401362179843887974907942284648090367823391758519609243295042911985161027824229461043975161834930331863423907982241200094017351228983323976974095194616244021508361632072523286550848460971476252267871669462493604346722950082409150791502015742122189328999443280826159962509441021472159060823023675595650467094502511052973094771343154114650229775208360046311805898063968467959956359000882286774261605474535491996138313321942263236937282523525916529728470699537728184863154972415352080542585443559437945672463015226444782188456834266872655260921798831603551106972973569605894561435412170509627783577633930269456083858488337911911905627510449650058671543419492594713260066731124510174004538655417224552554535198264960579179903984781607086122157932842068283861248698666728260872103242866993260299694851395748830104055254022379505016853606164371451684065986673389988768802912845905834922479092820215141127034319721331991514724723218519613536631444610324911029116895753189374958769050210983974194494633440551197375596804995051023610075487899921764600028343175916083224670878467616620465235595163738046696008867441143810176228580542789250820503238690861126352950029423076971065283667548586196972978013223590581320661327280301411635321516376417178623348044703852482140960097351334017760015968052732202354242617570425706934513178747733068834028869869635857730439443162027618399578371574815423868207083548086549865597357570610602432793565010949022828001748355076141761859584307099957340585238883362626791204348363374226708004642271747402730939743678567748056760425883009536202637286657673158633908021044613926728689700404260394996405975887848097104543116415931450434598546955973411737139810812843046921569301621437576418730109671163629237247934710848894971369137172911172609521921373224917095666904319567629337169961802485041039897682158790520101563067627316024593033617078595673915110604180675257260477094594867266838222403022242709999490967282284456387180648980021673601476372460824133052194977683884198728679969567867524615091120366964629813574416759147820653385638928409246966306310257043022889389212859570441032472966576785027121443983082543890966002964414136801506078343158984536876132151947917698226315837142733084442815407143399907926531255173501392763318366008277526303720472418991767837055122368135562203988418794851702026111724161792982165964028657271810092563755210155504805494987880433563624770299999948826933351624135675927299025207914936383482032951363391323756947459082661308465277733039199425661664141649811101445560319071845580274544061304821970897399319193413389783907426532784286785032902320280239891558630506748890968341368382822209829329293353780906101230274628582194928854974422864577804234755540618025314879866627648617463132239843779098338815106344567335683783671611193303276682463293111248218648729939189589595415142168671869705408147873428592147939153713539810393329621465396857749596651635165909397114217984608732295546606371840066152004991963671248587510108854255028838430285949933729780006235119942804065361860338707557355249373753622739409903883956948783922550146296124125083683921213407638626457038933044885004150020998726531752432558387808356829759085149709487153050805177662722414947036006728667810069014522450327123116272672586519025371355362681840171643262741228445807391159920664731772556191930143397602592343710228197666202851186160942313388973301648380077265436517728534123004708054914706719037034671623540558542409778163161433768841154153678653750237048016450714534774809110093423219206312816326401254133541866712584757099063237410475420634713175485145086393428202681622369134012573405867950376200225729491920609077995943204041886288069174213782616353645624506903321665929979890494696460984382855743011863101026961167508746694622667782746797961771143440722136515407997084296863670334194837341041553196362624976021815477915100353785169747480330561747119446369954452562958707111044894563285795979734915604576652381623522996428867986349249598182985460957145117595670721814769907050044332004902082556838536037570966878531216330418967343618024581784426217470710844166503638990631798869137361963423794214136167967078519078185994235996473672242688274780358757796508174202484159615290963863534968429216646887436498030534980404755558453867244488053186997336759558641356858660834245800079149768265340940394999363546107264500231460109609466968635786039300813951555290580425093692977797776307442842730509978813152145949372253539410667919149713176070284744778761577984969216440708222179299630044101199197069051479991513543228395854037955456947429209822277109602424889311048411755957817521850608160282549362334462374112490548937685593048206142054390926704397549139306435972938745201179070724979095832589930393736183162511992244286673964356023993879307114325614928369582876710294074856502485349025791648119540659397938285782369602976577526592565523653803718909091727030695555395114658333663466727457677517532219216035381587505816739964000962882375954911755165342452766343301311224182679869336119999431969715956179600222924942189340675548092972251825800561559994274719796885821923312791760066380227047653131578606587180783493287580545875788487334065192714272261609246713699458174024904537261294436849882211539807758561799601983144217637525260311270366958332059679767229728978290176794893769344906653777636428761667898705126106093193562096778402212924268284140000430497947816207165304843525912063384598951826210105117992750095473539110094495989254044122244002458397833021609407241745650550774249957354470715111118169092382614662547369677394706457148883336251083882973605216964709297599351529090689252998368472189664241252593321394952552173304030297755637999878453549901045220560497580206470503886108775428968731225642218333154022965767490945629005277134525423884844570199431627886533295405582551707244167899274065728150845871895880126341495592355603347152836650330380815597319828030817520208680705789859210975642545777373861214506350690756328603593629275690961302777339546707311951768981139006119407485351037611236885141889124816808912935799350158854296204144095188226938226804396438062255777787696662961454579614362364268587051224438343756000933563164070246051936268041934407739506947274220936140940251227617700555677321698850195277466508348401635862462674572714119042985878010035538076098821497621745059736128351873180226091090356830377167598621880283459552474895266558961882737788413552174377754838927245891793289797737590659085188878262586774583189681793193537137317484621572538318057842878878338046395761328864313275695769115908419911387274181994920719336405044216513318921562514271440913327043614018233248061655684892877028573238127097216535382910824422713028508057683820453735341971412183052461409183556701747980859779172232655640341104611033349902839110341593769563188028223251229381833674535462327558070818486734971024681831431629063406927454549983746377497409401591613048833998792429480613254418716521941122672704060003683034768457658801765579747540162854663586065050090993910941376789434114019711340021753999654159837018637004219700218809279547601897514781625854950673083780802733805745005138276215721485661790587577881424085516864182361091846131377035303922488884609940339302618888706239055767997203364573482630604168503409046744174630187040122268464805088340938524169156690420317337000066212380800360586164462148032686846222218182093106059508920160936717165917146225025905381205591079954009611899960041025892283008293146372903476203954044377518864216695999754735662022515836391618065812216233258317693683047634441525480289005220397052115076780253763085304331219418132001760920005084296407869614659858970101064885772556373460380591251498686138922399050347587392972739551300529597801201430774862524295864895776693444070978795140519606393625341818759527397053577093268604792231496356451311021341147975972360479069335650485625229725575678082704805299419611765656689277908875480418667399759138578796071691598236138139005798321935490196848685704497035711584721827758635279371805099670971183446864638605465116790605747577885007774370754230149798630762131013367827828447267854812548104562410327545966906457424562745600607564614892943827237134183604575104235753907538716603107886526911863821004284837475264902139528246366052850486607551299429571610893228321843619122237352297017573050617742080919065241906238733590970599896592281120050787038576751447826517006844515581702306225838608749485716149399573611303608642855475663644977066872472306190108904461095543864254190763347702279643825132177053869208003020831584381712458885075353514207530742913611226494624940955005906866325054990165374849156845519632420059507392555743936883568035589569140071899164849470622535025359543421242274662160202948469842438139932136102994590648415664474747709242495438308987062981319745990092038235169354679282592180029170954207075231731571585620064202226403092282491680696612091134136833276435068034901898878542104852901927542229981365884799891640278827268812620422850540336044176358442228084451978693480145393362614588798944549845315008185146793326695724029200481828047579512630872790731594825632932242131348675357272951714828881908795681430842776130329073957940348146674170182493972604366120843411844658761727927361521736581454265254111746942216805236327691938974612093531125024713012932854034988084395876190343133739209339522474306353932758950317253056959130492810684850496700812260392232360227736304954161585201434539663233484581017432909610155652139914080711991916530841887232604447581258678922549366403343917928080746034374370423393978777990878181867204310860524058049275128024595460552335982791448371939838680738392478974963098882317747606896813982104498299689837071787496447449388127834000488514716737438184879700230384303940538987633328225370058503896723283974517089068495649021294063967735244526560639075675360583943094218926165899125608322115200705171756693570153458387446968242998866542403586463018339279655497010920998677609206418689840243825005026459953260743111521605066654105413917974259797053843999282932220169261208499295028669046707033610254654158499565027154851615202368831564585150574571665924315983731949328211906267024794165803015239881880177775789345898096605394057488595331193410319062466518605335711133950712693641105582665612874402500499686161619171631365712449398377075934919398576856064333976160905264570233724500769480011124017801204897651308875190367835546501393423458244080787010134033747047357238563216280694450998995982494220051437475706864987886388671500989430621019222688847638654693635683828141418410880372644378429562428437044588988805046885817712853565719177869918616955494531707556279336115380187002960076230162826388794583481432186321514230867959642956820915527594754087203122470310793780192761079706304969905660027528887057993700587800011604725196339797125041698360332719767658458484912044335861123041224035484345345026309845279269539008491113118863109806972893681477856908087002785598364418078330464279280532073083936286977511913788136631861559785939142630090257211581712378631175195920231900542011068754041305619350608518827473634278217180375582022683085337843855328482237341817643130729169150901309511113599733816901447476624097625412962545637052326373563566052545815936642593409023765145271062725218840076417104495620470092271639425813779465661220661555563027400718902582324749601099231781924291604882388216882781618209220930716143856513610960656516644039037957094419488707748548986650710711066749516225662539576988813139043614978529303735392393585288227748947164365404304233363005780449227939784965985807905292843446719674741980873407828995048976599326522716199465924734934564384830844738195502414257041931949158634523848055279201226483587292355891498951397496884458051516561728551152262254970979420015619589202713751235964025161590293379702038875131163900236178164926669362849105131835293261608061927353255934004130079718479000389343662514131606105637894684682912223834163708581060691298528863481429467299027522509142445069492771817186522997200861836410912762508990177775132638826917373561129170646879195557647984981802003570628679360206959795840664771227487478879031501131830900925528955668902324120812141082990582031233792809507440203735061262018776262531305294536358733283366845942161193035649621818726114256759769426166715286395550884582119787301651786821522164475298861348264865215732246863044374807680145390222012102990424700496468461181900785009294427922460926651145055995629124863117529252405325901769998073901385405695134899926876736335615823496209285793828778213963824591448671467968901628535781605473935480785765377351941771750504447325451311040562577655534059856147189540710803199068920726790513311428420825238427393919174491599765583796566333096934749571962014741331903234384636116802410874792567302142741058230960085752797836759689602496749614838660419322363666224294284923493354304676738818860096784830308397114710754364489693922686942522147047746698910061248406753338556992125213525186138819131419238695909955910316989881573212077539179640169456202920529471530129231842171018535108339413397595152542484869630801537872925685913666717039371918964790274487045108120903277804422882942298206421927590263901856881238644993962547240184817078781580929705148809690496853657094851979673802002885160073699926742299560839504848996878012938756981245881862399519232791944103892828871133974983302516134927365838201417520798518390938054765033455786111127357673809423087680988296346994318072689912448256589780156192468003470424790069625678857289891366743273216864379559665839965041226207042847684491918071706515968894814899021831238312477678894780414608138304025634198701600439776525897023128453289325831471975711083842182257722158030720820690747959875837164024556398490372187423799129845633358453991593171560078898878056353597369931590447088271416199149978196726445110971064202784112015122130317464131765664532909875378803997568242970212553309755771217136322769050018448530865386297501023230420375751174475263394544660668465165585296954642994182472886625840314303927067369388650043173992306811481204761299720678439606173319579336047726345696672355666792586642819819403785983277588340768805963702091507182135726717408179784093971582259903236065287240940974668683272839582181792458773303649443033508202694285512343073512698662720729012154644185873191215294545776060692957152016447031291839136906036979275112651090071447237145142775570328011367156609697859581892274195545460054875736935425344301883926768105375170583841844440693207582750454959147474832866697659855976372396527470632062289804460527783569937479885838981321447840736988236885033407975519720028652012958551826211239500188713248209651010887141678189342467334923783365123526194637711856113546603279058861049329340005949656648420656130934035116991070313722178924659129183673538819801240713535146062276422294705994794100762092170068760380862953599507460949038634287685481070846204386786151116555690561737983234587677573923179526609942703209981768942622462110897254323776775278503961544156114362458558913586721823443676850088878933914703918624501359883072765768058930295483400030181436389899546350418431658047044899692287594574634845502148540287049452919057244623417550021037899473038410661853418857590120549806632000792194885333396130937637859185748727455837489624056844288422666026007961888289981967872722510341606752320394269172695842400049450285990424912910456866722759038503447128355494256536800002736718590602546773790341868228403595234724085322631650804851517576285820680798340625680305028099770045586031663131594471356028711380972195025557253210695070186468453308193483304582188540293715855358954506101598036218723454955672505925086612792908311891626334890864604815569745411361993323968719739930639529557923713915381115242052595710395802420196163404572991780109246956095814466016311085727833123656103341158851705644392380275238243618945057185707505489482256653132278721306326408333295538404147300818725712604837759399475960598687799329951743814805021849288282554792928873052177867668039172142082529893255989515254383077285322148249603820554942893616932117986157239068838433709127575979037711259441911111143443880065488983233909859730850241464711842084948846324992729677157686123692718965065010279440522218063938803646697211935887418583317597427562825893392120562651607703699320782013806218452602162632285900270855758902090613878693735076459045243208433256421585715013427683191464227925432824955363994657025340363126297716298935631756201937611937922860475081664100157606818807966234976092063756018730334226051080227156659825399385886843622864144833606291579035631543689001272416189805189021573652017453541619265528584238893076337419441736827353847696446055963229258831796924505626992581419568753097309827305903434951117750230082789167636504400705871916987018617941005398382527565209617903183559552708712885934016887781971825609566044818415981507562595487398565704307467400464874716945090855384597112725035950592232866266723420987799472641649524331743872014309347917858189841099951129691574316294209358965131824771160412700942024033745975036195171842501405525900546943204577586924924223740193757171515230953556427399461414661190734058006245911781868122122806340156152367966174847630804476963513902034261402626881001786928209254030308042432732521162703397337735150537644800587630364876343966675559545575994345953130478464369827592787075562236763048940394822127810356896333087040596762436673956514434718593996511095195840000268365190375346927636308422459813635013375678806164186942734254624347077775483730924672990871967701228070440364041435273271422811894872410950161639199748254341723638189368062141810041715598324502845233383153958780672213108687751660718531114768134217999492258740825870068210233717109927851272011023924695653680447724739848681804043740624082988999432259135396037160352952747857896530031786247099408500205064394333183854525146103607529544777127360209781486675844258281987498774584374939437312531969626717533514108012596657854169232238264853724948889921420091057199324565238521405595912035589856395888131604065381141590207303074024447694082278226400383606818808759162126260631227587845398880922306026676103028931897182864270720908098280461925649681104587727513216128983479569690576398949795423400979694384082893662367081537956615466250719170656106904978804296122315584676950105982159235002037861570433279541153180463464230234993726622324688142482992893765874612429016610611488304464191544615265064099040333530518235018040526841637434495938720863168339921926333909648457169531766604914060081318140631442461096132744979101195687654855883379822635319726009976243286894709762186990418824719089577785732838457087986549265544676017577512119625430955147112784850134831186522702585114247311009678932202079256228292854200312363292554801234567513196454722176331340046780851066694171852720218776304677999957871146123073175678314476127015879970017758908808273986141215708596771369254471337724464914993938576577791997008530632741342829563352541475162484317702896054386429387218907375440696387980276193464301594384825138606099278380639068964233458123374090499760869340778704522128458843957599093398065771202697509588861280793080046160299444763919681899286760356607909303181221655543644610267333342390758216840004781748039966968326317701047171134253828441161103436601698847942289443766369469578940419966466213556255132383603831561287330784984842798851190693059128717653621304049736442767682235605026290846163021716881158760760709650775088558972938412805741248040254165522634256464584541536071058519344683313713539383418493230760958847680496990871401714689736650902548920439806904060592694499671187186026967704441509530360090916844937220559351581292337773495821751170826370882941475977449103527413847902901149052243941233493414183902789117132835806651846978363537630277832370668065747231151654500117701123786697499514444616460402049095741459563033936521355046235767887466260561944614908814526184452233387326294795732299220479277958373108042920765755684564705523690227752253914540687496388570134088867507103352384065379136442316629622917009904174001807455215550530190771210504182286084154631442809138781248318910681060327515776079848864412640879937641152867042265898250605910569361235160087679624198093049988801088091868715983676563015948302422422325166613120607871960993031248684479883872981733740615167382698356749202333119562934568847184234055971168311139753617673622117304935809510287320700015376008844041885844032731293281997057101200024971645004435606338601475548654390906122283921070727885602767525897123825000111661981087337522939491337406188217937349265665922431341799774646473612845201517438539554775608353832094400723005400790594418744779597790029117220081897253525059092521139653092942510060626214752751683695044265319287747447402622084495851896799092608593636245851547634637905526663226671907171740889152465155190597560198290517146922083180606964662099815105105615598328262665924172288168556437207888215521911798920109901767342650909313563394328499590430086013804058005126543619746638200318498139258600629337145771363148376006243217867289832795461239473113986637075138596771562679043212000033210262787573485429236340667745380347951107178363102310954758151816302109898796423929696879745118587577309026898244621987920631755579464515046925178802319755796639206085424584935110540004509555735452766758447450643497022347502520292238385471894939257106283574524346219785283047508301335975152137187182357360026902368807369193809567171192062818209311029638426568136950830967902203982297569470525380780078084306367047062352277101565093479777015400312402966652917910017993938818875627584339040591505022383946667060371980971344769013502552612716421019388787472857163134310646718588763575378010024487740179019544187866926147480663119278325056418222265461980469784241193644199108276031685760927823279922532130100250605508589919036485320583735425385287170200410472266697710843216983060404116846037538132871806871204284177860399881141929951535830412900566471171505039508414047574468264458175950633786570520449697733107638013944277334191135175571367104444675338312175990306913319718805983978458343313221451821919413808143795318669295565289292543574240001613511103956620225976070240425695988666306042441780849201632190172276542001261593141773318984369852085585542812891422094346464584447622065604355953088217491620961141832133673522619286910549973038424667811146924909628394549247824295023738498741760563222139904238240322303979885601966406612220414644339938843461124168525560541072098199315978489560755994460961412195940520064669799144169041581020030509057712896627263943776529153875074615036801303690912102010983211323682167742098942010931936831333398842865612321943315215853157054005022271485935704697947769337296996072734386057736161404778862024533304378633327112112117718128658370785444241634662279358323227681823245019752604896055012042227936078043650869905501133106809599443013650931443838667072526005808733022707989936507962376831252063687226404245214357590104314293411928762908118382108306609033964845737484910262480339274007900277147989147253849109436959720575234226143031248631580439359043318270958155706385999688736634581524640473014911238919610968563076497691671939661077076604488742469994159513476352106230227957183771473643253260102428804095249641925232173561140382059299131777798920331108402280683553691053059260711299629451171096522024715075081754123802405743271793995397398034102201086611916571661653333690152746368496104144046689421878585863525563824910098189424885575848688859883104345298382391783056952904197115935943063094739216047364137906533914385218020555412117921127651274618141106703754294423500158612849149629857034222910687615239697663733880629580023254999886400083204809634378467319840280739104992858733386618044935534963424184343412477646375137875549281907095418228445850649500569568941970787190484379334184480844006262383437961664640962340889100722604816166491345970141637246236188936166900615892069748622962596389056477123685630335779663886380476271806820250848047752840405357084251382123733035832210836551889586845810786011033557631922526249557495701009271345061610581196865642317593669735483207249985597559641968962412260134192804272301854382525707841591299291151309542096784411511138904195330345028575622737719078628870919067291972210035264778356414509288219960432249600408988114850505139311335153516642446989189980289435220335201689870906691754313401646900753440481435267465904327275372281712611113972539912489677768627357297247435303170455022735638214125300954923467506683114020879709373437410885937353182771228461215638041666125561146154095217490640868082703112181996091270443045236725597849930723021064316633663771711400864853468121047654556685899135060102013499412643728049350779938536910552667339479448323987749919340548826849259269281103652342088534692060048753246650705854812083720104786895068771311921325375350870551519215529077703660226404471045970057157380477609885039750307787040299411412278687445578676082220707743174262750246673464335488650360867737590933436250800118348772870997094554377843223868769073715380951030644866842125262574102052951495324572771269077982421003739393453644096836248098136963753894320704749133329081202882955686519996938620637820528982440090727410197060222290919669744009764309465143892636067938289750211816514474292975163012462475716693000833518125572812322641506997857490770890193170286513170433539702585956210553951169665403580669745093975210977190061701991002945117281493618738169435495033937859452220966981382733462454337105798902348619863913869566931226802854579079921769564058653975290484071869520454268540659904566194531297191752786524594067644657828148751647129070511032230433564355497499998698320877352887511503493258115567949861139561717189636564733102274824526210362109644922533926871718244837642230384925242683533486152180477471103665459118369121956009642624177996486083574982643775131221075137925550371665065991819391549365033980303870746191016194532246619475284375958493595497306863716797797561996245244919925936102385852022455727532840219166106041364193977765292663944857167405887902154532348507343154544347138660717953087782549275548696850720199080015524562233904602914117099970374196730621473128869087250081048892772235255484921902781124050366599628520527935878328827578510141101304160308902569638928912399726654388914510926931770883802566658051702501372299189399230723787870084944420266642292088108483986852706817922691505041346000176528031271952867110515509606738442477208611721532236264747055780793689978995791515987770476514493871226822250349547161388571533291470977679264064851353064106710126258578048092241384147587473484587996397225951804226985698852959917642442291631536944666504385158151481669959471977920388645853960928896398925043189375531972354085170880953446697682690503514021808219175132449613092043436060294758465949135701118209101038300256039654018233162014736569820327262482383268947287993137625304581221993633370505381645775341925636413147881596969149341299501979792694795560457477436186543792969391454398507914046681127503288779400222227929570961677526714051311873586615141478602803491959139553913673889258860205084141417851645646949290978498684126950464479481176028097094958423208198613487812970635687806622822168506517166460591751178394910971631386301722897272856543385646201325178646363913991570085099490689133773362085543167603162723811676416688053435032509990448703000546706074577982660338759936443522753771270412264285568692242368240671244416250225731208754054797379479566771831373198359543007730123420249380250511555245593145768614782032767749440037986536988022262100558945477232311663705275409631453834050421929574445339520635785265639351001946323237980314978805760275377950054545878264482146839117797772616570232986790421779193920781227699029092195069880878722365043431444233580575491871581169048754391985475951796657713423770921322575796495706095726993159851601424152300766367500561741821584798000935040422826315306625333859594151475581503686100248056178590619739833581123853828094378722299593791739507686090414895089643022733003877163675036279681208025399123276958051725345992895607448657635774289934256070125473695773544341576053605873780915109878277559388056550573332790323324550598628576737116675126531123074197354218000849701010506611854368488462938638822020764223312301159540773921382485605277070162190569664260373751079797587659270455275792083293702992647696571660136533133216203752041488318477319552205079356459633112907254055604304679514147540944773589963107434511710723599520095103328509600266681818164974760113341547496044987083271142837117067163062529199074460082728817317733777069214885176768649171872686511502369493951369648837105066173051539186076453772329058179870181372373392063316792574933692501781145279423771965822466806343287409664075946782568616735691993260495667126831492672409485479398542088850962842355485934547065657709094701838290467623018227319357639589561885379154281518049086297117502813864093660977075783990785474049235910604879705950843851290524495825123842710711063542620034881990459688739119634694259129951284736315292929772205497168880937989629893744489222226849308207770525457026932428511043939997896457205166807222545638678748404586973736953690861906778738432635685478518023071426268485081881468186881042315133258932920231779386336375314762202678124210260944516198212584017130808675752377123706259122109357898040764349187801398635381704693317270519823125244758247410868758371938907052208407277956327511429657102477975829470293213321829807680099729606314313728690923524947287435473586891039082759736902149903911581299085263239624050758041784666602409579602101228556401413690405252965158898368579157863198461969027228308995085944144182759477515633556392833074928590313777750841864049523048904341784848866814746765713186436612075719384478394177990491038774086610005220281519525215989452399540456207779371774947649381551250811437082612082237186972495276925184834595198256689739628793042220653227622642122712010445011080884334168394147705098183593774200740112335096996028942522425252148398669168997210786655606377110646568294815473787648640173736107287261595974552453629219677531248657001146612977206388551898343780764324017633130987462058483896307405118877526123171561087780828255285179312696130126997892174112783248760426946892279486951861527425507226682182083920332664008570898933405874028591397534123965422587488083856226429081288166678308108614687582448368470440264628233276816041441310902190067086158251959896548564552148928739016009471983485546273937545780837622222919749205171863864905511765957858316032157317408571761370393000654149035724009036523875368612109478286550201787201317015068219832416396956234549811750266587803161820361345273278126939012053250241841122630224603744603937069509886122563460178703328010354602298678182711277263288220139738583589911222355588132121602756811989679474069075511595322245625140804718967812256308831216977759544312610858693132918197271233196985188824847536702912312129024507972436150313401519008696201605799781742533418949672200463009834124620438580805373633451192653126784764831257139615193222356413627878697974415867865262229298164221554678057372284756058874099467376728960798418132737256149486339370417660232173430543593321696197013698986090663526567420282952348511398343047844248788965109092703824231369438449486118522944701502813568965335535853805050888732152108574782520932480190947716385313436234908441829612470573507218638170024630315053069345839819194709083683333347790243849923587002484609063045241205386399856686664821953636065249943156198453408381516162507656239809591459663042409914681435940733955969928125780743473545914202588470924109809856506326458817381381297058695957860930454602170552244775465491122110672346021206847880361518981436416073013328013327803186199917176900049497961669430925026325675468716076416009590290658252249723438428873814460618963770548263018916693102936117256476995073184093924934109141551557597081926043317980887712135950567131359957965382722455469535211015953209720649920986957758962029765593033101306342387415671921085809469221291258421072461357302725692057934121128613275790527364266772974312094483526333223171966150623962429204138658081180392095301453356674298071519499651984846724460291613906751585453622285528265299434724037534238624809838975284591848692722062481149014963443814855373538067247267944914124973565003674088061709969377160448582512250353726645129370067019337675150665347160371612860737823886172694692544183132825992151613101671099058349769104622115791675966431591581537895232086532697218074915438449843875322814480088423037097895725324018183542261170971184124315812503808801267926078511490960994218187513367549393292202346546048206841042339330382954902333555263789633078562033776945439364151116492441441505491125052046560675479888413137343742101539421870436347528722819800980700990241350895278250369183222538373926588516312100593356101419728181206704708418431418759633820637198935831025621140205970025778844052695623765701524503113479311105519675919011990340385359004211504528276554874162212932489489294513844939741260457296403435193345845680653374638767739848741513263612818682830181318797239226854157698065101643640889382451047422698088437839039468951320131562166913441159774468732611029096200245607186604644645333492427505205077711402281434449929826194362652517500953236641068965949196056294297211874210946563145024420536863294282763337811274494187104670415838435998988407535163673199868152084686876597494212302469738664256757912500416512077788023316660208405871354348787838777438190063065936755743878184840197846587702609430022525873969804219374284642527934869640928260226756685173216035358679488988619084982029781008533288209080863895595021242043549325066707565315518618445118762964882088879482051172103848139520534825126568968104324347396984116127710301573283136115468660436971164231662517045012920185964568077828854648358006341641619641625397732058786132906338743128993848666092692987822749233637544595679689897095478690618524638395673536038529173772379369827682624823177695110252649893441234171388443950301197207543913684055111385833005386726485021569530584803648060926620535060811576976996363313380337632541020153310995869568507085285289234158822552805877395888059048721768764639011475611676058713287207879445357324149498981483289282905291347970776003503807450022301743248968336035587164568445958159092661195227274292688388121753378997859354311042240603398275680784109650151377038056931344289306269215393916376457972845376310888714543656989312344594953968130175001517008359926360026583926310425930154371796972772227536932044592006746424595035614842322537089491424359125924632786123734115406976362469613667826291996897995084435598951931840545268094186148852261313128549165514486367671088837603693979021029185877063115948509109375737313786013746419968552113983536282920975503496279680034483287334320679388069657029128785130169975191116113185250801052062112052521750631520692482403780712205993804590894114937721905012464622017807343160644560682305054541526565837897397890664324497294450632705030006474817807880573792160592170807266322774559783403334648501302632983703148787387311430816159361527869755064126661945286597213123924131621202611082420448009033415857619038918735793648075400548210916527959683146766908895168677619503893491342251398366951911678922218109895185851361776065535271878833084600383773985614038251688757545947115650185254551590558585992078592519784737454543178821121898540207806027831739696378120289956071784987474754506199519553088893884271992491704626057303722487459025268218437163653173570816321870044425021792663532353697712158852061476066218361134609340255633679981755271089881319531627431331535890926165531849931777520025324670281234514874819529006621755977561858364589194341893779263718206007804760480684728219672206008316822746615086908085597120948269898378487684611192059235613270513351656166149490755245837859305212158148912192840307298128838241792726286739347315506044666493294768487872496598560745958606008671593408493925385796223730086259513707290669470665271105119741820673114630354705901204974193227144245940651854773169282612578440430385231410041444868231624541144622120360193705781058237017284282310634988538494872266967625767367644753857482350485397645980864484814269147913911271261264139132994859814875879574566294173848575383231371026270094288232724529847900779660980074913203602376159365570030190156400023018436846417004526454150397807939135633824051789294417704742346408031149377200500592200329189963341813448982116313268845126819473724287983132929029469704477672053034795514195360084415842419414292159145602579490895564723538862235272470833184961548907539958361042237240611828754009724242884318470002057942592090220977186705258296504808030957047958065859403458093704821167181398185759742927301054537584236539241173032912998391256766911710364967820952141984812360965894383185839101415771648165398580544819836072441257087690942310693222761926151743071852456435384682007361901243432061109671526680635296555342148693231879604679576049367892225899640724203794694016705448652022544919593239454421838199992696941190719318214927920460473834571215981043702492988534684322014462799542090220679704461751024176947337707155343858380400047621829368812110789514067592984520529826684158525422353852047055627375681897110018707719719147356898856275341276321825319328435384646645844715026160823315118156673893949352175851846125177552556872240882476739269910502246668800315600491839534560863110473605834882485393925504568387247883279699475827972971894276121466072774232150278927896234541327077194849561029502422596082336315204710112659108491178753657884136593859276278434409109181884671743454646229974134407839058335917348919355934103670680529273393656126777882848840787160254131877813925051638140220895950720452851043459006177578778710686828629082030035649124787980467586139898372570520801833937443111077074390687464840083384576568685635432565075591249569671212799606502394945989072458739783880378620605715931508630355735374110214221972878065314721755714164797724972815273219779417959197844921232318279581936673006607164826681463698023125772815056063307239986738058146979225925702011913279860999458403392755550036214570957091223811341375263756442742796382202187989943414212300375736740285713728796065257932159388687159612995607172006412997319799379319870792130986564820609564705234664540658088273601100391022874923586744151037265656081044051769778501971647675931244399766641610533881193399951025382263787937816572930704773432146961873695092619240842346426290734653963506800578029380478596153634921313546941760857664316001282288449085453686127993580459181771782073649379050520272119918561895318505525643629728542883724798930374980474544238695930372849683769571466788524146615952636913938233207000024723348679745986616823638312288208574442514247515657208324382076823994395238900360228395233290630930092535575676726023381063984348609981663328207842861106059847670968213029412051247821458122232469570208668111271484795849097826125599308176517683139038520112361547561183322408622614715518994974468796344780069254851281679965608113430360221373931309385224064423691258353484282381013229165296217317319079162585845405732354516063637971086395200535934564377160839685119953956699329603871130877774669017556557879266845623019455690362081415134682167194537297284261762505623196314495649425425826968083538957433565606654250341793992168823375447313566609734112135314786525354142903905393157620866538977935560839364395713360850420676896887768255126242032775240397653649196343830007305337097716249071878991941701842185093082489446096520349986458785904379848485174923449905886339083266617863990581600679252807180883295043618183377020530724543325135278952422403769006615598829661594154105858772653282436361550309274696206095097854321092429674506742828912799063889251582114757985977815379868957339198617540760643421294968253778571667359620067381882221247661935468155435744804259745520323833002781968196951832406164790787818553538182814453843581553468132582305071073104009559627696216869784242499465102736784133253156898667276868291697549931659761006302399603803639866168349351720102106861555836387745461425142048614432616165208841358837990247323888323307721862493995756673502508546101070234624517015669649567697108368769319291959735991766496412456566251631232807418271165409299341867802383154684998376758720888353480383557537463364388093444052888185396233257779958456109134066679955043461625423218698090817596209296545691912613463580829587050815063294062959081779999352116793359823828462510360539154930729700196591529548171418547018542524932455092501498409409845358583179637187784194502275922691188989745021594417965977884106160155255958123992560847365648185222522711273797391745773576270951929132863910506575149106190277833673856206292215570344621112537343272129295266048395021755171116367300391757404182591456915879265811950902764222267670322092632378269525441849383410023775483540230292032715249708247478643549027196990825346131066210953402735243717131838600476900233645775143723231390243104983694000509792927064421859640458401354140193446224340593318104341311775558033097309356471375100469323076390951384040870565728260554313659133732490645489125405997682400593175131818179241254662621729136298959601324545880725095379907447319859352597216201787586213259055404495979511507376366532108746533135214104471884005048890393949513261579886241938516782172475279251765895135410656270794999322830055954469103606800904632343964939554753474627032432616547778374594603845327404544041904839234414482376628725793847096338282394181614570379206619180592862694472725954787772352752795586709579054094130520840055222375064918885903897082779291272032855996912508259881477442684301922104509042753437189149252376554185421170926547740635004203593466632097885277827515289257195389646864229814554422569070365710456747676672198066071514481685144932361331087434182348988610860059013730836204008436477378149908515915862528230309654321178804046059751621674778728763504620474268186651861249541498211842430863698515860109721766387265803646259388690911442740558112464774440866610695416439466667223591542186074114525413204390378637655581959047231512282257858921226110941097224358281900934763854287724503296112894642147001003424920528925233642966138323187294570598433209899904584394409720638953682342932123949227399359181040185006523876874096128328989889671341956467523033717859463532868377133172625433484973764214589022816910210434246819092621524770445955388258352839930019599660520618490357470129376713625366833520316569149608601208685805271304618448989779289787290114986720054648193215008562696772588419071805450798594149017199948621446566727671986899693442187052208166182771219345374103455924575022487959479709683628577828632625790975087978414691464359701132544534430916603382382912588250268936667378614112208666551526595025592128553014680015502745507924821668539349627010403221691872662011509736626143981262193549355424352732270141940665832241901153917444757197884592636881556564128047517823860806136656824791044144735305239217232777441161670023664297063017039124770531189911603055860524710674907063273230211006972764720061542534060999651878151899574699343077094027360136948511193493409944440285439228090874914939082068796979341633727712924606148575344603207149297767911997823135063029871719059367358804533332653305978890927364991238815673163367060623730249648860609875768184642922731271057890342058854116610283457456569560771279518063930888784670400917738578917788462204936429927228426620785222713110709678304921010964513941582604770983859314078211053424139745399678437129180242340965279899926022160098182658453105635030408625438459737932686458882033519581153245310748764327474265890770298998950617162121586806322736614178555612139984715244079163513306980609732237291426944937216506374500196062195531616203943227982417034282556340721284012134354934405657385821091592020483372238965366921113805879031349221209076455308951990801942305966365908323764390994985466010401640451570493760456788924702111278409447548094631921753190030385335684692596302184705585411746639366361779479737410125704824217197619821219886458609025178449274095594025105609039982295496202752881351788007264078137087378593244001741926308381067996322459694215678227743292992518242203983998880007216615136271717038237775129287512696241978621181032294429951032181173330523886743880528116166452071334985458958151526025412514333632481699704665254696042844759700333148301850723004945152615359266955534095798893706800323197991240522473006081007251532102154827304454674131718271590447349723242809482492690632208890268191120173595075403251992624016397846827795878330277071766767789897509185970235782388460297466599745975949936426532379054509382587643963215617386485729916346531503931514329242073619825735627052723928155669859998714778449885784698967300270485384166638187944862722973221721955459517161922577599528131359855176104450253573107161494535997261217978837074208346097947467913167934794021714341066058701758474335828016281157241410989129328318928418704965814742598593288144683592925054945424419579596845725187530636169921244596853819984439611717280926944327109575121218430777318651626249244347121321655505580483315842261300578261985804488095917771514898832530077214066794376635893739681049976878583237672537025274417329208942985243498943644390629207831394127125546431123898828684725808548039215759039001450745382668547162375865650353441747505615862884523644657916033114631618744826360415725659438548397201588438011112015744614499974517263694744399029846591429229267231960259986529740602674290746957314502233313615587646975624704145296377911563608956815888379909226061084691974172347909864315947210295974806724767117879400802282229401469955232661064385471437658946240841400345670194629109779658670364871925213320043535073415037173736734198471067343477445672907680918781332905413161604342303008263429533897318993717497670012015161555463161420449142419139324733213665498500591266786892959026865672720950234071246705089802077046408831357093158253989755256687741120581200254642533067614439261545154849327699371655581017978925094968118729261934584238596546480720260893664379827690450252980557135198061041331385286827832108910874020470572718871659033951282204251143603922648521836509486401964811340476502975340716241099692855185488171844083948441023179139711596610763713005455462667678858497239216432231253485315631180636877759181567879444723613359199269772340573626218003053428374554830195690075766658188675211810138520531893145445891484247119838935907243374201320576841605400041670541803623448072096072862071665660674758347247571856233611789015643335128243792347387466122511577989578493895563477088479566139329489278528877210739015357672967856708722221140059274492421047012115221795692718752335696638752166385140361210547252944411915823040822347446587343460974540931373253342722868218332531180472263831821079328591656466781061024187607634917848852751019251502273509134868237358006806403036269363195755776383374412694250941250344372257823374053799749011456380837374179840917201484539214471521209909424156752435532453214120549557708791795055786635802413550477206627424448143537273633308933101460126792224279485266016523227244633890594690664029622185271051797575016233990793259190183714537310912934478295863622657888831836534592559872153022205388305658428167084254228028882650070268826416902918704248618406889959687817129238086160088831511326616788627778834016015445181038946787787240182398903037169352969722234652693179908985321085505227293669475727034731772589898148418425250522552366655442133890035483607248508963933230141755996614098826229790051915914473226081494185870046261790114083594482743333328125138357348377342105937204636262945245352444994644532310833652634830792602910264664801496935128460207317459997019340627812696914659048238826555277779393403082270969850532538442026030357662143092632747840699624177109062143170990602880537756482408215782211063330641582030179554008151266406720816700003879472322275325168102878790330987076223750325678227965722991170832345545509743047868250673529377576775284324940243834373016879489854969111529034297129934425575985956874070384620256857566958832359019253516733502091247871048271947558312257754028302843754713646837657229322786852149033188357261363863675510388871583683405046281533901301910054774657448884841129134581578465139170432860971095092058573345031959649544646618846898942221367971785283808371551921198319186651451693920412875218429297959741921510245898936299112142958014378373063554189900212350766503928639726586174961652504403851389761325063506008187741021529493840345521515458208962584679371178042950524437696222056901342961272927210869134642409476057908598549963503899605893435336414133255642785566849025279282967219079980191927684142337197761084612166189522172415514723965849815227602336963238049138226284190388511940567514230499014625275477213088715433574207814659459453295834798102148610258739950256889031360720356006911866763228034665184780304318358393935951701954249335335778692656152835865987985852909413548409948459480710561488929369057565544608554644442952036233710133257992058752438510654007326345606154105294653548062029937387648311743216776734392477318223363020409588535735172942847893813647379024701122136256945731081013027624786535157418922008517849977460844080888785226472600947817109869744058152234044868521252527175749614423000290613849344417610016430629573195506735146794628816153228776708360268227848696132334334471244563232937495634978035437588781522591451217826011759361345235436441557646285932313402498200101013838543893163761710183813099215899826401537923069918554653479780245417904864519424265566325752389031614629469718497675582281232420981874799771321089471840209266755962589661586945313128792730224564616279285778190449475527759449265440879764578760598659815294219830941496859548295912813343033540217588172178963917002593235991567290105012164757696891695986309581954835710437485321784689664374514937690722063553076961728041229361888617151753385392030361424161115875072937751615206189657489439281222995376550848412747647355598113134902362139149953905023365103836721270661874433585183306103929828972339653220073178952500512014568930678322368224609904494338724643159090910307826843389899014058140485160678656281393780167607879869248215584474427398442119197701300731876770442215261364593118925772460832506469827511835805825885640746097573336529729122679420590412556136128100829981533956758131003913873255607987750670290133329535955569386046284962147973616378154030028946463151834289058791862236185242784392084411515567418047633790211665192333377756655281214166618415717085449178212562195258372373143506520296952825823415983237956594139486676989403881609589065959711005711170824062763887847113889268616937071730256051638052541770720954024533057003816080573110687560244334946894535514684464211079147166864497044762294941307025707992307744781573643039563755207916761779920806185646440308918940258998508340495779082636331442455370586054311125461531148966924606600047022190759421540053645549564969937150634434693325428735336410828667013217230667766109194320796855302447114792926019554223411269435049732006097074447781966703777063859999306555624051719058347388568653312215868404656739075065950068449744675245175047418280415076392957562515158881744074815431120080508811307402735023580350339506905970226144369598525810791592562073109303165129784856884788794455512500025486256106897824234081774671885986873306375072719757313445644095591313101498263794565053965222296761594147512741168134813551377325464130546315930178320200504954408678451767748793201853390137603758504241875816942730226693247911878924390395375263906243527147822697119928651100555328219991929269428882737463188372055562993152633273199701906935157505369481382632917059448445166734371237284282817702231118358940533152063408870957276690432110000005692726534978314705280073680106751736430744754172829242976782032524549465711441399835517885172435057721440788655655369497954387021778326362639803913927582891280708317277534729932260925841699379609972636756872841917276083994334763114670183370579901056748168694395210151663291113661995941894037417560967489211621388747861623017193645271143396648513523427476436673962816788840192242667131680843699841279568455018486753315802806728747437091134191626709232948377370074444632387952268461257661239109280298406445955452364273948690351012826577008330169993065683463946772730831683480497241120987195828968677568063792429791519696493426390397279209034207744077195869204341215729940091317981852317452162425147210408821832400788268972353524694110710560808806088271281262047598748501476953637258698688428536605062666344268366766480490467574215325795335992291865265452446101888106451924238521736000604391550139479490340023441797315888072257419352950575828798859648205791905841739186706676800922086232641284731878644569701219651790899445542747055974334168811796268691808722407452840798437253797666292358750329217567948482094945270364080028899489574491356872379575500478589265478776072885923369875809864326045580459483283727176642168144926278023814007639921657290615116794378995076842659705412142553490795263395106368373153980584456404573193895878709915156212335512399074867095648828170768431998036063259729307208787954027610922403578011215351852924569724441783461745178754011711097517500651416281461708826676526399959806249370364888810423588652776892608935280388495744848419036313625481847929898445462783898406967781827014602678657369327320497731691289886296373528678310099070121418873313470482112109334588305556307359985783758709875593767887984336770071752728801507163833042884487677668382317069391973885006263597997862998439381600983528898195701704538468963371493682434222981431251894726813964786647707750429709718097743454871714366235278258060099979024278515022816523929055449153741766333334730126228672850066392011639819794038190435912312826296169637039824722991581931841866433608545057233057097840087915876758573603898966757027304839814798040455833683927794590948023312392962041088159626146797854217302808973745113017394646329052035585330170009687785812775841954803285528957347380895622519397737284427779467483181594354495487173674124789040843099427292402450753853270127083793646456495615522347184555209593312016133494658794586264921707389656238021968078575014855048918754018210828920100341084151822479626755675000899018616340324630009555083713877997675419316379310760456842254031589146476377231026000562245332203792514773006083822565925104228766314333338651856692856137169802685110896377703121433870429858808789817073413279024924300068889710439078450532901283497456275225221381565495183262303568815172452300790876856979276778073758750579928298492281863944099839434856806052077341706834153485739974520175050417087342849312298577875023174266212033422570970080490304462961410754144917678240081733265226907438146716463270478503696908099188957587835193035730591412571960923233504618238474484010945848652668918165470142058627094043777318248037144569127020590121973072733535390792139836337267999678883214130498876102196231074677382113885425850574894598811630396383355993533934282511179483954609256095395600127594755757347326466139096809538591293014575958616436282071679057983907039248348144860855075660134625444573324452581097577819377544049423313108441741227063550036066783576707422313095653687898867481392198417547784003061141510721568487760101866097901183031067447817294845673304118647933391725413518607834235581826996170533213229531356316109282530869884577217599929007502618754036566834614071429405833430347462110855268761788136819457638363321080409501474792115264204892200052579591912864790389374058991964091554791196982716298687284668852766137248754667045515417815597398288915791451901285162547962464653529149229321475112231331404489747334655714645526974948837872955172718920504983204972061309423068212867940914418600769960158178339889952894901225955384039035694464569036682454655820578852818227085215960627014786161461324317709377329953792186826046877305504012500467738774556093862247323216998464125096203560629411511193552540796316644836897446799971908784885820333529616165564936990593774527316375894942295691622947234305846846041897686828072163280739158880579069982778447862012368225193269958142179399195506599327988292505099349301178435750828984404912381390873405432143525490056923483812724517273365032550912457283076850731515882833821504849076454575950753340520864953694908249007549081443398055100369084233052402766941021507213106023718568770099172671269586864543901112445769819550380069335479473977644071011526065639643841239507808730509255381944292239968704220134568884731953581969385678500313937443016193509670980963732610059603673755460761614638143788310008476611054959636126956959324625015375256633324415051545358138209003393871856187266131424563121959012654459594816061386575175446245334326891996108914395993591015038872742738358711216839010830910012432817437100833297610617737175998121306814410049421095383235901996614374466931254301141544748479541645631139442817726619855638756521508484860819940896827380502025455958131020160753417342235103643311702676156890891059498741617165504497478816576779303856874588649277499957230763074208277683902797023391913024331884854362297825428089632942803532054581537438670184573644896230127756941512349830884334367699175302333486244592656198391709131179612920048512180585556820963871661333354903641143034101320595959152868213587998164655277947617264415208422048625626053593830047447551912913632205404757326909311767903840386671821001619849359139329554247244228471620288294602609021239134594733502047912126973842425540994992722606400791251114484410989857263854880985527271107796065215950352186102128770733617000651689737194815197014977977060492647426556837727084992497702224763453250872729371470158378729160080928213463084744439439383974313673428078965552478358428432391962961039404735673424404771141508852649771848720885467871649382075499095262569112099885002476449916181393228561312793545788008943859216888166658080985283722051800565933054148695133564503408471529648499621160134478315789913016225477435773486704124000886851762573318221605847301688784286380553748948534737248158813021065626280043983091407278661713590683763294613394505739248259536827157205300029368799573007739234708536040432356299885085361150089772304256483582813004308815530914585245533778196169260783830095243466113523154442178488397588397800224707778365862072577346257856821617911710670742147459224685080319860357893635792151071942562688874377081845828706004173299732626064568198099927763433476411044807512584510583588607484759875368667346369331993429887303639767674114671491876229666327740565682594166553446779189786518820905291915990811727095261397653550294324857266229540346073940829024710819244748539117916736613869386431965662729299373510792733344672188953805481313495132850731925923029051546130217801102396792762153028761404123805945475970980945737933737736699518486371405372126197832295951168536066614852275601794360004484092154207499679370989667623465051641491207500423055148189457933728497553280142501097990716521652271061973829575885518597034329249033169686515323538890643812008058300444884615839877284619776442034296603777430622012146985115486609657567725430707556537928314520822801539542096761529229892484614276610512703401103319844123769148156040957161622194205159191268867989959530055850329725748501637429629223718739966468958264408538517189097334703630558334996616290454683437179716683714365225495411833615360956671804384159342194723350047641095807910590196427911306168418307063085339039823860906853431717459528173462705409687393899947867839500804965584924068725639379871520721099432359079451283081971335015282892238869949295942332756873303508439972065867973301316406259919515427388224670520956794813400770280489344853429173499294230518086093574580917845703401436192456816735787603682278552476860576607259789374176953721827017479392337356454076366618801753075557776690700864114890474039597723953464172581598734378188330160377950862293778553608408314053045578859556415782703290032875838008783222735040342064764808595947430114373159614075071014051404497504243477271537024025258257515986695660983737353708721586563725370521280083495232500192777246499799588234557880660292762766738571304084236387928853021787102951390804464389229449964030910416300363056705903604999789801143200580146977613264782530152762120070064472990723159422406845119599928513433833719126857010376315156042964702935218647099585771031673227754946843502732793667980399648921224991888080746659810488776491581358884946180527941126911406278838939574499219762698133791917728252864509493998381216126594075201260153893321857459437176609603439274625253465800512130134589280379813357500126402284417617190279360680775199563259366217484106271511717691765081181883470686382715414473980477711043130702197625707336940673679425911020446087936466745652864932587817922140547072735010866539902670222777686797530150559683072380439091301270949653073303432929021449064598015817629601557937173784389242169658654890441205646558292466774905564798124439360913947941774726091779464546822471460465710164808219573593222388798052334592646593996657521237982588388962635433440399664058701624822283386523811985767978888081782408525580696664290195373797824024974808918912801802969480247458380800451267818020619905318897947272740042730621750213372142281548816142164038330908870189429221014023963758285384305700402652964814916303291405952343252337561713053243739227153118621290027316005544091891546051872439596650287467046608832685435114285175377287452957189205444662351497072052228169603061113095997775353135502891573665611842329250403180996926656083869288409097467226451647710723242389600856146163545259054323199388954145550848197704485836495658057015243023084670278451087029799315768121008626205901156992844880507861862550468260914699425409800555385655531561418942231683808391470753704996984859066837929616118437876642520776157514111017257496503141964149907260612748808404754662602112153616523224804531233974001983967015922494318625042590764783012545562054138625932967724453127430802850690822358237128348466902171759406661744195110104872510371748633935608178850516308696004640518085407081969838476886201528456578390667907027142392141716146168077127942956952258766694303543697104897163545061478415020287642870470501130883929476789112023549408919224890259404495195585835811669979089649352744163671535608188323079009007329529817297019337584970101257115157876482897483455256220707412401471337039356672298728473030796437260963199913806769073895026223644508865547590635558195983512232368007626626892536961900365426137315929047439811208443861131744623191817362363940893901346178508897490907617276959734274660190454506633721228032400640466827183242625816458895691875951047382186391844610849903808462284905598139883800850498490072718417673678944582888357683298253277197705702807355171054579862681504504045049260887001288366583875786253527671714705896121924867130714281547500171202399018574191573935510636210701194225387394839216851384912505332674090390004706951531301557073414823160976234119317111988273545169105918331638200835340400577013004460332488893185564193864673320983423235064392445729368393298094911776077390638196682364721870866618905372896809593931660749269348273833622989819095545959894223089748829597622528981194776790200822930175510290169219110669182099419861382019424856265437806042771202019480181927774056348638336556791257718505066947704286388036608058473460645235321022996406189253759792756823025740267457408533917663272472034721368809952316150874613942237226024843113045619802402837998983905214825308201072627203689415134942769116981839343336162063109006261569280749272487252192366592906586789937251839542389505692876536053323893736699115387175760458291270591906172531113364455569859263845837232410041214219513792455012185723681988679545618345238178067304901566826416471855538638632415470792908733800600364656855623407964422042491454365890261804316214438637099393046933814868779340599086613551411232675521715398309839305315504662100949072428657010735210678424784651177384009323358896456815429909150066481857757493818544293576204389343625753424401559078736411893951581863159942977318571811399632055132404522606518411016782235234297595070523362211647200255411356757086431100644594989783439831463741225157035693762756753598846510226929740665068635097919591635018093714129427038990137876946988283362324162005385879108227778055417929558329188380822947844768802900404863407321244590125781407462721952393114973741277101999858159925080953808269820320045568206035369509201302048735181076208315835837539300577977001748286498799754042799691636122436956224404363537763558113608245044476554100065384529666302590634816326827713626636210693863673080664641588975134603750397063696636864750830024297154558520265543657300652673535194999471522791184869195390840300327049058882842991672662755819575652734026543828991497733335965535707753954662340263962729959377272413804823685951922404846862860916212544891122262576623969639512586061565020312364958682480286817538147416479897492216952647759532421305113817787888026305864536471838451592508828461168046679940904380974090749273461070012648318084562334310300766060619956367377777979088391600759031424125958572755199873075786971322278091962871305943636426938094713133272946069368870294841218990886738831730240153231497722587722401772089565637282339005281876164109432120924918517083630054822708658827208512874656080635635499880400886984245050090229755260283862478123262769027553061275511270500400822359808033515146423287584338233668382093155036123527761015181238069498915374400305222991373366484533380476920458222075205758150987740681802261975080299858026867967437098767840786272718541563780153644879411219013364946305332870430372213542495886059970386230023336612649091706571529246618879416447509157243532440512092494410155359286452239850671875737889055255521677166031185733223210560003066625537809010392277428685752107218193047944504878824419364431938802217813738246804517407646194672516555319903790485628056361573367322000980202940011581475336279825440251373886927277044389159555191799583871647365379441307752519298209182191120381377128923882651675619242593212846438113396144174637762747735895285210948252912238517604805256416268685130730728570894698372956530029370428741245749852212450913170124855879629961817303760871583670820126135259216622830078622583096952285766271275115556471655783877102093032065736997266011499291620859301894239480426809815102244599802796070015892563256154348776076864959064630220337626518347660906429776292723960067780258111910638565901705460538826102137166348280373473207057175202499661263782607951203055524743968018849702032462785088526470878929687907780044662596972602851674530361040829602748505102727413632659633785954898535851071149582150116213552535064233967414577234152073605109136184442176242853513362316857661765496598269688340621652098241044381650631475007825975436138328666498792209248399001394390533749940651309646989369041900624112761858121569442832285235906364844991753655854983673756372321518450572457210462235066192229599267804248818408434436051388591897538891842913700930048635629416027175693160992272660933090484525217720363003522117653718521807677817802488345278442210882209771529209624146111540946915054320895991211208446220620482749458460946640442991010121774436618285840007606633705791400637764061518263073686609684038396746250658092383794567908685614915137797397647958209550154865789631115989619906221176497333629627814302073239462920864574641237584188237465793174002265176811341430369861292248749051418463558018185483122775792699417695780128686933582591593899848736496722369576348759090818856402902264743936487356780057437529024828311270234151313909939865828894586843488303562114364091225043553829715957279660397019615196425992761135601984244919649682307510004533938193686206016898649959776175950099659553036272060550082890875299258053115042376443269669049435875454878669468664678658271046683936841277699142347013675363920391934305773142321100838116492565430035315830668678949782509219763716948677930798918627999125324510823303061752168775678315598611016712423342867547878799272602748558155570158343967041501897998119044820437605373745637689892650769334325676857678758287661685133484630920755368509727509360149112099939648506530650219519425626930090042363137294763147204722043615705581091202396039976841464052749563257072064399854682262901629046718166523337473160073188665417687839062222748772255238204295525992091679749752957252367001251571006825515027155373562591640910650452758853504521038530626523064262806552414277116114703225407848706228048253342952066476256000755641864590498596002348382118709391861387282619284120044260064281533581703021381788288711122178622862825422193956114309686640507686815800451687892271977268938084575125057295082783295997838647775441070547117016779056201762009415925213870651886524497956458452761282073672516444198735362835127367514110921465650719347317574647129312918303205668055031455294251831791299893018184162977927970173186304860315840122702640549442612608897111095643399151042733039154969010742716985255518971804250859736686667805700938519020175353549834953100322790798447665455920165661556524230683224789120923546321509248998904474687803053008366668753529199324187410572920020734358911555104402862767694985852401872505858392122188463129893736902531306162042292120368569565942520692724703729691710086901792870194976179863158922791001869816099882069204244904079205359015837333591875248465770790048801787293697789346066804993735325125516732727881150913009524188752312581944617802770363902973444001234646909713124013598899687698874526007229343385379373312604141579402734662627422172844446267024485697097607094516658768292828448132418357616735921846789302847258727361285841185931148230107379401696937463491208171533249131739479805094874986542494864496965226219974009021968062251125404167201896834973815957215771607631973893002697592439658717707898200058448192603354859294277824602201169205130625207209481364214715764824420884945918549005706307521808573549984989283970093577131652083262152407578503092294757566315543890640198653746916205729085170610917337340154607751051692809154821498313511755786643780635809931331812637871608567688500623345451776340444298902261563004944652338215057333098145768294281520916086643476086361970929325546021163323629090510488031118325107737994480776137707476791959144666352754336501219410832155371186893935889763494634933303671214139657366099405930181348525155245692129657700029270657668765019676038539071658664489185801311392650303903677332753745721520358304410880442206730329713629325162724519067591041962572959259472031555538934311118742306538957573423845120975697899038840128280673098152578185772968120712750685728721500945980465322160800362553884974598864358441108556599396253984355069728480865281297879342375540982700212434665465790192261782118407441647691850882501718516287653106602164711825831259711018991373681930117423438827410624353454993531800295706372504342949976205822024848921614159534556980193027804615922665289401583691345834074180971428773875243689350746491946661386798494018715198271701224605789843309286509370905180958574532030976932888289451144823152070627979175336677622897815539333710818906111885093140474559384428828726983560547510361559434855811628707892673360072799420831968040804457095293637297530769972723071131194914017321411708529726298299563361255563234028399230290496659046778826513399131884854016705598405541494937943237115302102092123588667498566935786845077105460501271336595594000470137156101886152783723037089929692246808453001323586283170387465652312764450122977103381393988982980636416620993522220972023283724253365612966356983117515734391628431276905974539075341385436164792497680175875816113890494880214985548020088501248462991886770168611062346467235727760616521943287430070379792446592593853723327217599270322080226719033329020521389960845019210425092304943493154511161285095036404116815564723977652273618988546779124856718716766694556049423603048506605568185879540605195206854838141024334997457569191339848394589428825071606054416085801132685735792773441042813580282802611833877313630039867177400898238482262846084141946945699155905101437608560608047181037371011612146201456294631147021653016045293195442326123464119521340406852889454599470689392712849217733183444250482997675117818543861750222955018479023066920503625463000254229066804268640573441000152396210367881035333538196624156553740651330437299543791236538405720707339342243048727323344310423258829806025644395869730694234444287533865554010947121319695583517785850904119880781819995688715364871935111697168587770397919251238546596119954291418695096039321081468420890256781886433915045190138587642351046652404868982122589615200336221323226463372278621948887743382828859580734468336903995523107192260075079698625002633401201080727686940276953782268984953897229348755932967681011155104824950474312641098232464332301559093341400058864113551594215184911654041626238883452426460008611546974227761502465587717330253463546744102846980987822497012545518431256231816132512213901096869162084460671966294884349313022533961895850341039452967727431206636621775057053028254983850440469762145936138223106221626483163680602412050588857381002813670695617957420841357856024043075270163921327345956782944000812310678903542412864159379294168627512625135717660637632351800518612190194468798622971551479433073902692793086116337097002631605643262670947188873172050933621897132816376303779855276413144052495545971827896619118389936318748496874376427412897220113377021525347011788056300913146897673912686411238981993799450125560696011981395384529363106403484797355399910727936630270207653188394812259900165833106817813430732208213632522103985274772181143428730616472103108917808178298863655298976211206401263859911675355729390434485836719362833318693436574847213918459605945550162272480579224766652494909462269604641516363739540367170879515543878562255477134504699847671350696517818218456315439408579662307349729484461361411701657738530467980987856022808019238429665774167009728920962235280584188820600338105179801208742332229407862137247691521886990899497838971917830157523605338641999187512058414124907942751106323281061578059939993841458633491687654144519657619368393429391737243853408349771771042738064662675404200941224176732980819834356750296460723720179390460390408900501129731646180437183690960902444400163609398431560764191686657615105694925935719701225277488640100621306038267378149278083920074077351381507798781143674455684801579164559635502951661592391277979017240278327140143133915167396889387578408158733929436022269101340637993579490638274151662901825668907050803503710524709499008785299903992888795028304083460603415010633446853953514644187306314232198678322055877152560767528082776203251101912609916924719939297636336721261526789556844686908736616238937329484938263538905249680027790921795214146145502467494680777861095141672279161408595870561875698643203732997617972535968149360349460708824096157041826072828736658521781352228034683808707162413741096079567747280537231602710699536467968723765497519603087341983600714037785586376078134226093902585933907188802912711907404656964120786992996567846900009967520208960607067761720370445800750617532928325584792115344038948044311987885288040253294707449255639159791313390788135636992917919818621630572782047229141048746811337519479735865198660501255046923929841162911331997766590826998327514387985364192489572859257191753937848641570656338653315979358944934070071133126828871825008576216908130439829160069385216326140946972315398422686470594708796311337087369005964588693480126520433099256032890792007972623913617312898217221086471957038702471341864117493840623638641161445943138351075745037926025807021740689309654780711627598728740342394266798501239264470385817647181164836040896012062552251721898680553091600895771876357844286891823361767883029350347253660789098036690244246073797278931287329020481729402108579640643344326888733554495754876043341639744275796994760983807352005609024226354392457083232344442630246299989416239303687562626823260304206153918911919653977229057104500324015962531448108840703360610152387511824107745531902540468547226281855835096867054562403136923862583703337855093828673470948665583673117182988903457213193505206021671948041490135656920489579137404574492766958379742599074676697256953290516596130361856026691199218434575829571155270479775923818595598381330055579281014212460691226593748631009461793477836712417750571357581403417780685191328606985640286349389944266345614816335257962934838149526729939667771760685112312153827789940623067927645300284745663465307086846354093535517256427912184448524343554400166713523028633230727923623551578456984114335884092062568436294229786893237428760721343183030728449442640838173689388816836158560892981302448535311506038133236155029573113922815938559859428542269224201681268847481266220476076057202955437757535570930356899223353729440601037161365485203187353409053214035281921396873995202008267528614233724212639129150950606802114683975373330837462287573772055015545516476627223909334417513293783355775347890360398070919044471509882429874453323007230728453128645615508893149608865733808998954915221822105304206018721829427265228293288420305947863687769073900166527792186518691906574738585884718503919524484138141397868885913650241264998167766863618586396324038982763003221378164234690309368132683607670984112011675777299857788000258085575806045298397159583787278656928612333218102056890711805104207602481922229440825810426266193272122561170833616259137703541510768703800700088285003555921574663198883187193573012021155680671686280143076753237783877311477240691796454198966417660249628881819882051999825692477568062717921685596511087529279318547682665353733059786655194636210098245030734286159295202346960532501668077087221711236242578717869002959660705888575333184334163463434435216110236696548886238344863226148533555839093416879812223013311068293871713910196923071836036559795899690929933487982075042727447078867777865505989946279106664190401456348123352233500745218454857536630459225444518327854833905867934659913858029246416578088700584301376882323806225252441662671381760372585418836770210976829508531587457212387468004550457890341862808233915333746384885849557903567427510593129723124832456532841675607000160280596113642818626365838658413850929063543718632300716738087993941034761927126701716533943861595512457686393471496235029756198646609884906231219053914121250422707105546001814253418464144079737881152749933817386507739521656986805651636941364134917827709031716957671265861429120113967307481066623059201046415754963328679574030549521662905738849561407851071439535025961143718580911283630157311136627487827019842592746021655467951282010224064767883682629700631981519890782895353562058787795939028600912381777125472003768708929317334587172723711242280478445229498857383687013564380161037895194050309637244279646065725052236041493676491884234884422526194197511592934628471836641455459943516040369007524183544617641897231919036799373073525947454065688892760288215660773292801672212433309879898078988505763262198717692184836332051007908515219854386766545499723739192252582109614050183665942956159495840114759342370999388709303529277724839908551188330641346204720731091421394763406153991259765605347920699480215708853035696405963863943375456241975031139954748748129375476226222072914530707095995734880167687673704874439660239694118922862841942732035470354949706667730273224404502882826295577966327311910527907737814676218183077062899699687999613173076975079120144129825488914891110209008592539329644519577562233512742761398326395933997169684875598743254466404946513422315939057996179057222266893720334056997935522125706786642458165231860333697578219452757245256000909339933723616300935674777765161035665660349785503063835224258950537500739119624181863139054014261954436763065782283103691919842093363443649541422016279181467754698172035236103505587138273078210581638365414402997874006683962055767183200789227472469183466162212223696589477711151941960931240675078939776176252423161058997399910608154829138604447717433216913830477825084813763716982751390689584836901721365540165583995377776193707380156117054929884660887687568367340338426734478489720866993968387586918078850386228247037942493464094090464119256068602835781668281608514704286542247430031890277279291319707808459078786067475467678424843130650535860245775339416130063518716546677854372579861790649955167624015177440489672647394709014529197277067991484500244437010927813283635508718221713409234910714303764975848822017247864796501978837927116719113332385146255277321952195364299511473539986148674212754816904673599269929390889055623498435675269497080212226352565816519102561867999896669423264146600290244012661851407923470732038329769034295693242914610582266037963206931400220189917822089469017824923893806432678998833105723678448215202322786660917073956248611368723032062700257685627816855260546281138430501814700554153095567808770812188169646347217137838441502695776306692770253129174939800420037688756231195099120013277653545590969807251791873412011288332072583982127841302675362166359246847849568149613082639165402270954740272561054185727274736884480060141317176272114864878194096019908931621909572042923687872227693545174802991680383869101638475104342939146967187369610120665380147954828303975548922843082144326263661461617035874584869280069714037645217624662798635176694578778565227568617858994264805455578791230388195451744308196903077307924356093940127393455046310513492876555958229134058118823048738177920151646028613084777015856836689775703385343607718063123500497253881031565756724819013314114076440461576843255627134856033324142120726283583137929802845661653578618709899497288660069612148258629730772763798403966073386693625455815542839100830221856142625360322610566806316899918491994384153811424857506014525059328780042975686590914143046212186662778834988373709200271463076881848399240162838487864430970065744169447227232164268194140879920627901397538448387916464153294241365004294877303083918444987158119776859033181064893081451573536159525902518980665693391171380987296277098762592414114028063339539834679926797343408350920609860306756910835678466767497985689753038484389822058126875967715302309283555076592520054457666082785693930457299329391588972053772159314849262745615102964338186867917083465763210783070420919379174919258097077518507681835632149400435188708670907504427434128669924538804904449114437785151765514018903780706307437078313884086005612094145198768958390625369353471651990711979865341682886997419090903013945853580454675238286150847208961721695397854884459761129559052573596241856535060283864893241143015662897550133280422207347701813169044806706836912343017906992102958542771695812903768955226984091565866429403756084470107989076688146688214498515546200952491289697721875200782946499249200720712871075472315642288642077934885853999423576656900962848687917162682063867155104649771086484861815555257442118636597636240804505319970685969549138073513178556322154188126586843606132695170111239108263990719942513678472004147126092333028268190683302387383599924311742780351823401430233497965121906020253618843034100760705157185321708186645603499231397426989017349912072239172843052220013180507710468757969351692187806317485398521341225675250347615228365158155051716693438180365309132519198498432014690119139708260010248491831528255326582116670126320868145318267821595557473203559171326557221805471477992693184949055541761822449800064494546913541588436801977922509173427505117710310161468294006424943250802902149858655929186736608643995643139906356921224263736935392351276481643016339726152098067636222851006683397051169242485400116181390055665854298308039233409291795769197734229628904035164909521662015622607058610206076070615302558171784401225921605615355762243777306394218513951605732168639665676525275088594037191007095337391846080851577903575497172809133275155430905557870578815046979892118329692017712011783402530735048720301702283391763413251432866988283570613797823699997444868484082976696550210815529131685736262732055945723646104907816894552026348132790954290488259243165251876496236209963349060057716812886564348526423516252743183586545925153204101067777366560667567926682777911610643291470466250653916402257430277034104553688215771325977021384219069998633442343644530417140458672256802519417870514268910751889898398229559026186538988804573142251169580310216216602673907358895788288547368944543940353879519593616526675624677742171502942792530656161929543592232415781118582346444564800641270043141394861278333824053587900196906982299217139324618215968547056700682172038677738027824948414168308956777453607020441905464871251203122073647218348616505316205483631741787556506911373179121189156203048129744147428747805085920416080325301480725783075831332941381457672463443917600762595128742329037617827338572667791182919744049306701828606188494992674805025859886158768393689823141868941076636209126702144094697454693274798691135732001839261346384430752745853443904961637666987667433705246371693734181482007414166605737193186763507375778724013091954652174416603862962198888472036345828080328027835138434317363525479231133008391148027385619323659014756610648894387227901463345586702893649978064681973520040867699072405689043120663899397465328093755183639055444380569313346161020946653622399442346588738236328944439360252154344157876642596218207500650717104428615736799408623908338693345025603781143991802384958759574714610561733575729638474558541938028199259464227344890902644703099079047516449634791230193840283563714745783087872660229714628126834302215417261929056806608616248408159248116486679292909068968580784308719224442829794271863125748962812042257879787026496622924081906535048390411137573031208123678424618345693611794460553153207612455398955979893230255075955096763832558621741861460162508143237045324065426220570996955890547772281345071953897494913089672892953661020699782857633144253110667066697301341057292666957288006866426887673790358304929179792658230625332892552304322187034003792565462936430033109696864617201946497380550671784086112162309131559437509466459209131746319002324768194982870760137860988824559689543888845196096030664349683908282383028188841914728070848724460131063279242631038210792683875169157599398720053104820608152999461019139944576615748776892847070542341136578519433675100386324301482925171677831278763544671415650594200611131970260256890372133992797205114301878326375099754733746677146875001494667082969222339518713509437766963724954926276117234600075964730820863558247554925583489065215461849877216306135605423983302673638443654391867214189861456144334726879388941248747816598013482039168713841335409265500872881987424635484066099189744028924089042612889841708455552078602384232471456237677651701160976042748493215781242065706332385986576036807034673893225414737351842854236604928694643029481318054666888437754562483614509485536459238744019683217500763767164601727484270506853026747400839124494728671232685436200441333260160128523974486090508617977904145535262828883709616654332914218746764813202302527377501776430339826979110762560393776698817423917313500552882200674836088644187628168236576480573292809311366694952010930302787074220051478005135129262838172425886433838065217816425941616866924312067066713455385044227497933633431709966444903589005096464042387730891998416558326041260708048088982389386107327126022542990243048389364750606994841630963938661142922630564668132272257846475866922117218340345877401740538566957863201164573307946987781188691712582529864408379900960631370262411562103525951507457683242714375090587293958120181008550320191152992471550394602170624364231621937958870443499248423889289722564607626739721675446504165980513774495217695136917584188125801121458460860898069042291920952357245556090086713745831550188409155033403442836185700580239134562566539344940340128001216981955566891615683003858391531898758912161972046076867578479240790983849376064775537292947332686622984290565135762254616683202996197296723990177065922682655181308171795028453416688946895592678006122559597890999321722694325611602901303167778863669526230907981595312069335541700133980814271713646533484733277770760657497996637842298864673073865492747356484692109254671207728767795259087411429992730206520693872763414833397102227825899466424414542347023446464604717191417999402621697242788558572918952318704465868449128457047688943217022395055233431735300541011260362107785979095230405910999177910286876202035748090234701336579332795529023935648705613888028562679707561881338162421632247378721134097405147591227604594972657628087553280181280429479292996545013555524207079228971326570932980448399647305789719818380840167540355073407169193971625378685088709779491636458914046768281940962927002664297421719259693526162788111618955088406777593496413266100727362216011362428452641106754319324641470560036735678486240431599578465154908769864824350609723647690576156007111591508497711876141062214175754990166541029651813243857387439917095456395847416626884441445138832066655586671553601815582442009437189132647693416348788455439608216796144464416504755592861066049395413433571109862746355557266657824084994270073268964179100725929998429738769959408349959462936385960843782156397723215383585843573557236177507146859601661380024132674680411473720991867525426409698131045503708454974222217972733778034014144187009433709017458210775356758091025256116648789753481474203069583884797889058428552634074591979391376479026010542794929854273239910837902500802463620938834303301093402353428370557199660915439638796753087935907411482060413134348667653245179631676345634405736346753594357126315054224108460208315564480681435423518115531711423826446450186910058499266484839656179277222067671265165983718498647211590949307545917102197051858475865655819658781543505987774791468791596265226340491649812409503409266372093083501086178736058703266697378950500237077570806941804841712045617588262386782992985290801055975225532909777001354946617571441177924434094942675315956547504670177142062795939863570019803306458274047567007608141501413359286506543241286291440513391943814323901038042323235924232247277821190545638987405188430522879111735058383489955213205723113737819469243153567998341938487560606257934299872855967244512978029530018894001371604422584721321327415045861862845140243005016527363359752281713012347465013246116512309073090503184624005225889695338294665980587357564185683051251106443932514329560689015472800851778011140709051324346416356700086196878044710228587761389142942844478601849192176555663403616724272235313683232201472625346040267082422865483084215803209106548642778076909116137851474498360928758874539972203206208154905680976699234030959502396751594330356826553613312042485033074874345804791811412427812429555126957346955868057149988595527550173780921931011464910257635762405585635406946860568419390183271153695203227843734223250421156291925570776918528517163934449594454297449317719235702816420766621626307420167054655546971148588816209126553405243080643484432290458072842825945479095181908187000968594682340243309598115349963202911616454192139033493666938373665676299097765820002260262940793904565303450948873817741601811167846470612561284925421030172697223908919978520604463016923171333173801916524096258466636111543327022638855965317172760971216900259142684990688025867354490839750612862282974887672431301707309710243334589222380442296836107238633742098182166432709193077869884746878755157912635840914534045828326775590010218268512518328640758639532081181071277152656944503522644763615864401715196036627367744130935183887366085234688351389867189019050863477776317300800208994069741444007064342784453299701910875642758483417898847307192296586138108516332705248012088099215170156042754328714295355967056743901736980838666341667892114801038263839459374984925833267677799719267673500460303572970285848520651138364757461825622400029577275646913441393753210766150159858118766651491622115524741596263261342898022028364862807473665016820341674834998873268605249669025208091386336857834211276158786396068869737762423450146979080081429213643819780763131623325515523499069792732830631108140671632400378097473401261733944913350349689304964522458337554693566907783691495686643947560309777511675649757754753230068908408148864230756995339164980808569927637432288241521099180561373258586221604107388848133556842830818929967753600321333805286551861135546179944055602605434938558363651622441419395167372294067321105291977119541667311596276026624201371326416323414425395531553050462774930114067324742973255426376136390064550329308776602213112737436723369385841673664558977168011046084876580116993421566354885801228556703773950579552585611384579796121112002630925269542989687490154374209931571807271571323792248688859265932961384177652436989025832373874618850957761749485116389484135066116674790871082736374881893402740258205297656308237835068799319132994888469356114315495873473326333769854058447314682464714285352673926533435792473791598490632631364335259915235077633650690553287194495821245209916834902432073117549514553465949450280219410535737866371175045639070719679341184675689748656521414336978295868389385767688782123200600932725930254819629036131486768280089565766622925994823690141448889805022812783294393414002380369162205969387406282740148969154450857264254817820261076849696117979795831067007146648628578816886418703297377380247183204848047449354585367732839866334541184532144179431515843983735899119332948412517684269445928377646608864273406100728051278838688842797743763395950636102523928057459711769952092480425669114788124990305783169483398879757259024812674439032690572489387687058751640089356869319721109575939436112821658648877256892093446934074832462863458994872213425718488991434110001074704315217445972785169689321948250754171388054238922200591663177555374221679299472021333114798762499452256458311837103109509356395536534626687471832548274314670431435569569526985125864386136727483686078357156433343398840024213761604384205891756653767637356750448459563707904640559280539854529632372547328440125799723312292666429183249387708249646277936697652430364293718222545382189043439285079342238365361730232217426736944421340534252543535692951423699368633601471199346985625048316238309802663782915754495126661006622013017349929041036299039506493246754725221300392228145249702322428552209994123228291554216555384743810179192178637628824369347881385456473953635402711293993981747136387885475178679238352517348546669333718248603729720545229245777480453906735711969203255727210895673755209190984698089968509633105056602413515338830379216663662519477535506501176254650726832157831321803560497775885743324491182977335328784062269727388283016314895463668603257067391839459991263956030083052572692890483620138843944104523533394669274206510272628351051821858514902019392389009956870756457347631579363120360497894779724010504888615079979107492583011321172222467349066390015867402702026873929424991649999347447201890204264558232971195804163874969008054733985914911730416132128482839691102421666873702613343429462716456723156231144892432451877927750870909156748594550854950161533572550071732687448973289697231044723001683406867038355438315768604672719377347713798248068726085693130598106867127146252331642201148876076555904442241195969982884628655904519222491906544519038711387853377861714165567305064854780868197578253111354641261813230943636455152197836291648667214739565260817337438142519165478695554905443490767792613653689761215572358912390813965526910228541602464798273575655855587643305343294788346451658296799832515600041207413878884857996183390776944093188129205426528550523055733678302113760635516630788988927582099900412090778088695118088527066798368911974896221344560128906402996855114727662900164878535198823951670986549929036064469818480061652220844283615456464176475017856301232453803532189442218585521541168042632748030129500980137113949444304500259223290463194371213244699938994655335493331399027559328196829013467443727309402144213824281134614479531733810578461649693293886531978798297449365190132486097613472078694651433112491280217554991994900901288333367233236868288963763432544627606160582707959187085768774095357678949583950552818748584740803091561552322761127947421252304671802646973724901636238280956730692711551819640875540410644506314051617765037400884035904889350349402356260562192727555624032106840914194359850953939405366160833812857409734488277967045400971635838470490052635326707929705049854965629924477740607165050830812761775177130368585514332488244497880856920093484216196482809567535122268848076909804307758700320640339311153363442959127418948579608012462552644436596118507657634724599334771707109186564209687603457000969968166204354068035752738316944821818439119252405598286020029343059227429000996295205193242836647039437054044543998030048884957221933710267940686690058656114430127662974866575302653183552546334170046117531835315574109538139816288874748993322653119958720784989952069878574621264195583328522577004670227300200562657761175274701437016930985597760053470594545564335956851468275059092394938679026636579254321782534699837026099675767373071389519435045960201297245741625372326323622551183137171004908529722448933780182294462839531322928076232855660497260410214712006561866997987439449939495524661447561490944548528479567365936244749126333235655742772634489319423330559895839769306079046594416504477030321410274596868442190819173745230443579510628454445063805501929673741351595055723595703073977364426321988716146239822008690849034598742571782917369289643352012000690600243079231654398294590260705170328676704730357151362660048428811131599124967959803485988365569345299179327780155426485822423527544260788872221939962316758882679114643770613275488485584544889651661496698591325010219265684037453190380581501399417901100990392734463092027723561877479323346880742294917685490056065124915759992316694877097767898158376978905235656083519621838678780348478663427413891570749512869509386400387478647789096711599841766236393827401415217723882512817481432865027105082228269098697682083366897905192693706869406321541114158841238672907711843387174453439379617828375075003201661653780952069178849928118302015421686627788022387427616915911226466169663870475631478264337222627107501185721685829602870130334040720894391990550843119783476053401552017791022092105820604630994393758480651015746920698387061226748038956894536065747413242807704448188516129566013761989616809485087427230844647874484662540863010308165329155567347900809111983589155534882081891497775357661213749584243580337996020495306805977554260265846964379541431315716940014289748697289875257366822294433136225923232637008206956896201476537111902638136276693047039676275033356824196385627955853745012589187214501807094880809029439390975618139210305713395650933707898663488031436545223347018858568558618984057557292892045374729612855638567449978256573564362031726072415545358212193935279482066182986494360311440190743104580291695849524224455312655060988128099963670103260589285609638303038636223661545206591961093916292048936192340904548595721067483474910671011696757781860207367677073189759935783032365653680056653050653304957156265759178068782034518107702069097415881479311545416300768900520400489745511425480051303534555971063084990247338562732861675360175089445692176717026975417098291467728706992653007227568486491698931528228807708504945466923612221552246080307316111514825040398694864578912379226078786399559242417353864564925307029061845801640450488532532829020150344765932636871213790681241223431751256846522178783386075994351682932515215509466338434570169706304645922698402656704778077145619226060544452866782967960367553495317315243408050802093507195022473308201180713256790394267705274122221387075167460040170239040874144649606948408139279053495790455101940495476798177439827866130403780994674079748187858986418591615246213332986179827068751486152766292042224567236321825070984900867436200370721594752522044380478451805887936198137634953577420258547926105530389033472754487832369765489156023637798676723820666462402524401785680848613285617141675305531852468063624098175678536803517353294575843001548096328128695876648135300003835063581891767969023548134781344600813209773550539023030575935110415680368471066944943138087321748875651977673270151150372886240630491684594334631230290438544085519137310687467803058760866244196318672343529294642454127160916349882453402863001895924227270566822457165285663075328154855145456733402005054401239787703520188567833507081384980750481876893012265542423109577496042792222759381346814481365012368084466088216325590532451584851772776381152700108366669561932515385354033275671816327334948971895528883283099686815568496562304708954851009905234481716140598934470980522741457133230959315217201447680505981234537643894487278201438528836126990458385711316586428978622867470412102942241518992520471443460589258506750948244155363776733385047159144873824033331348745921283961158324014431464378151100973272143617036658390713591118384307967336812452672962461352313049955994304017972971718605775872431383767091558926888243670613587728890801628518910561787487709091542478605423858492712434175701117165140162790751477668961100203101294396803796542038343547108137673178705543711938561139593910362688407899913611259032510032463344958338700032216188148499818577272695804457442165642230500272587801431618947414922654390961229977018100346871055154240243253130857507451342242635304269207584323848991484203970493490038934804244871025725016045357095040837565990185008030369397173743445580839881165172379475039615644533016423326851821644234308026723462910981575266795819758889227149571526882493386583482834498882019370594321037376354629513898287474204585330342164160000691773206072811159397406387342681984753425065640378812002518295063510049268491615377932476075903253257487832918696339771854122477389544471393220396867745715996277171215891948935389394247413434944778478081340214742648955029982152311477879541299299678711919215314408037122999935747082844047948610537716508425143157251029231229831747449767120598397816470189079474632858896539141642853862444433455648781842778182396690702776207080441143112271107406712287638500177089360705877511951641031933472710352170146770672537792489715247518250794019661576366804837216007792293313615597445595535729769378192994938840060947576153453596220319344123041681708583797586249041480169793926556932802835144278584537731762312766652665777112738876422330132200097962652558746693191384133949477962482134637018183429828761527575257274435512826662689985917327909001813159902143349010645680376258994695514918093798869237358196901837929047837347638816239722759253099913126213921238481241432551870689754204177262224679905434748998558463831028423305593720547255235956789813011541374190209152398427485942554390175024430245278299073344465161210594228657820724715775935826082774672153160808809929443265540464031478191001761640691013018394814782212013996380693851837961585647101847461150594301172274683166443382312278482646488291388453265646008426241568245114949517811434014482066083601374311703295646592250678402011499526776848813557209819484756833083745567653453625043054690272910186550164446827262876789885498386507911807398186734899998519043214911682273499010096448287316808119188840241471992198110852157450423520453649635759639169504727326208230225000020802360996869849789200982711722964923625816460548401918753940067762606616635888968938720977549610960519465204059760712719275356820566786569672972966321111565464782213026943541234449098476020881024943035267936996609479649992855464637423574841922148156424724235539945586143374955719649962894786698396074327126371716846760116969087233264217962921886819012466928766648182436697202063172556171721658692874257096775279998503045509656467849038907398752923698877422070629235172348980172868206040873827074769536682071757852947061040470602108174637605843920058720557461812887517958027684518912947068836108213153275474144981005463659115861277121240146521232902117421952940440496397784352830895318616300204586007674280655102983026550172641195191590056988905942191146603326585878299695897416033945875593687690529678520050857172600193038397355201061975415831925698925809046456212464462564873140093380946859217401911638956090655176990759738583129769817269362040602501082243142435208119441905469215371009625844399495115115195459926932051037716353289237280815122217588215389716583288192622626021058473747787633640503628799501747658450714502169230911149183467945972215762555959367880070339548682618239399734762526927426195819922173585334840488868771556025019110652039876717383724473366712981160282183760694164301890689221503273647644365100646868668559963387575812416822563892655178092458552833272682167719575855979814679732299600890753091155953802883593741259097124463474737616932543972925802569101027882196708346915258953207351493703481295369068592653656695890873697336605817152533670547958234243339766796436340213256740642507639595385513618027227858179395421421649976598106131043688244895574426770200837118092300332538678269743433819345689796120514926466906084356503751255480387910995242631640097342088185295682768481062580566734761769874313658089381799256482844005925189546892727041113330162104037264871469226118548712751480715859136557937922847709824554727798437958440473495118581524922532653312170484351392283111958585266009145188720325520464580348109883176472952771406644970865434334670946009768045904344977372033620190543423949659433796691505752119681325271865386813359336157097772198495143071454375593124947286880668844954984285590744597296150368264315132946972512009615187611678997285453237357048227954724224777705318940324832792089326548140238387878848375738330888382347132827128846752096058108324939209123584224178159043714038972992475294931641398804197768168402470848467824782461866078717920540637370399486631217364451419731430112423504560596516421792739988732084520999957491482232120090376720017704097139634388046679072984522874507703377687255917033514255863617125527183110204458211797826272850189754314201281696236468799650688515000971556073153690636869691004599808360634710905663404768830052603104337220976235505310934831971915979673548284094849466971932683662237296244428934553681004665605128241851265296806633945662031441610703259791761560074051768598740570873870217511689248311364652647345142860035994668209211728307946234744281350065700756634489710942141538829728724420018537985924475916876256281173728199275723674558865193280894044313919172116748974151958140508577088841597515919086352661121414481300544662449785756658997602393099463900478374240657091284222797711686843543271359349140278410394383483223001721980330678547853238720468877892440859417882890786239959274870604024414259388333685523941504042540474470487359496094186057612864677867788101289360810499745455678311528673663517305885229698589343101444401927591087529634799793989482872022411190192817460123657270530725995817199178603890926725853775903717837099975012765484704662499531382914192033546464947338685441566709360231444759167928085563964662073440013073807964870360130102676853341250171688816260126759342532602995027604749435616015745990117992412172983340438262771992156467693222066200427895686851207057201498940439643353886693594340317106994586095330238989054018878734522721926378187455402626110508528281903763789081987792018236280535393992867123020485577114536101282032145253172804912727758541137797502457649241322109041397634177055988247418070965094277597893106845819868164488391561932063256250169671082707893399044829167436960649778728010713841171198031900065945243005284659105694901817914932963766818777662573016970905389100352370250836324747357283538960396504797747353454004371989837217936945992829009701453211436965612512946101047527346692273984847931392251967296482640576624320603207576362544620816191092538977977112910061285475265774842709291739901702928374676373274241044195786408918348779820921758954034128274902931852395952106434924925360283668954040429363609822505385085389369860347876585385384745997404888569349538994393391650299693698133917606143929332853284499340375903451449746268072124341575478837354420001036543107737156860231229191655272878487012377426369403195533374927477154942542219267296144016710332646954919905069139970686063616063067116141723467947569211537097056215236822456342762353606437762555534422828972385502322730115720027412438614148542679871471942845245049863838013706192716093551921833904296427604228559201221401636807057633597540175702152873123541730666435780048641534598728041484306257639461717776100164727115961127406952342263543765698543195935787091354371606069344649720200656155420641068349090627795819957027547511573693248094416072497293685249072865508439442245266235572637502645391834920190477555014018858673433676582621217440064533002209217825523314085965930336940627919270144628310511378232477603908670444733901972647336793880601922478873246900980487616395287460649486024657072497615718723636644092532473720522208204499143735767974307747693725430281157116902419439489447429365701505433486109513162132421639150760638102803987173042323742523591234979443069466655015332983452094477562049566856275855040393545042618537028548064439215028630150160141666279556307637730922935288968469490716642034051552341974716015969080654185970773595402991751772962468589972886805659182549046027920788030875302259390973078982830897404368917313866517675004310225705591099698955006046980741447053736241543824291408896874964650475753166958204622974794789503298606543753125974642775074766801813306443229417634058792143976157610812265706459404808977640008739588143076931601249334505774243704970524311232513077613092659077843551956925638819086492314407580325078240627930630773582300127199780542565400893613678729867162280792336628789532291562525143029514548284594197143321645079544196904684105881080705469200766418605575328219348855229081766464522541583705062368224228534021192373131104682198720312300082777122284804657716593167305858021791793607037942037607420625749314140147983160550270601602891750585217916060148537930259523094435989089018127075259011673710828693172794508807859159241854753797642744593259862483044206792141925530046583930305867086292979281196212691220643377725773573921153920663831367429301849929974144053627044079643771489435852055415081749625554841611619052089303260087572333746743131141745492095292165110255398847480193512261663938395677950287591178358879229724469535489831962668859663052131917758598806020816501608687413505364662505746641647059999656449345094396874706826068203817258992592158577236614442126450035063154580077804225334332160487194467022171369811765217075951853157842648605047052375262458081757980464919208867387322117618697497042976186589514625649365945825456541073134185345050975805284700050744861568404307873576781614436028962527414319786821223583766196176269998464095738401951279926612878737781551434521004423676575246818915021852681843487896707420526141608488199730815954290461063559114089704487515033344025189308848257167310613888544487694982134706445109884176837160048910300609026289025934430372200755571090673468557207082452776433419105751337907176447869322534992974439147160302976288626726813880850086859677485163141460641201693040178367641520460885340408781785952614250480570903548491649755523611509664668619295682054038411014746632833192714762976214882855380287140750300446431514547370616638458785652186538580106709118600876300414555535499171183090647804353993127907463766630256619585804861852613701515516918752940928812457590574995351206071563876848600173366305265279697635109877964424886068617916289919445753243671701601010715927820237035642245111744448330591982975179770379987691903978996637751826617333102715630507984863995023546965419440892453097243793761662385204699419676452735464371785150332381061290682116545978402598192025585766915700289054589634649040892565462610191822521318797130351339499135334774081907146514071388440934679018753440125321649183310739368534657933053074546446439475481942367787563456212311533567504082688897132530691479190905036523133536838763557517503864069290307174804831065104305304847886724036460685131582081021024558214360921910002835978561197958305960954634406486277402549644823997777915229426837892029967929713383170431908546417620104678301900195220895238004023297516687555817982025651765925459897244319058011363412090643006055962496501578751677737571392870477253477504634637577115070616782679991541243520330226444610798718862303496651128653676241366243073086493925261874342893601298959089921928238212536876107113073808870177380066973470210354281673921548163564840412266026707407897200102237346952895043517450124419485414994230435140558971797063006412906974343692107031203657634487388014144138570167286043764314079281344891817939335596210364404325767013105412247148376736818016646770378176274567592102166195060830351841727697864231526012785493164536663462046502726516661332239959349729565278499048095747241165997524990207200521259660741782811233728536567857175851860210331158554554126424762808946432253806670633602096409948078948008015129811435401366570317686989637687961137303614151857747208242369578897308198092761422883977354251554762866531196277226038040056006500493272213908552682978138214078079330645256857770425885061918741891154433618453006406855424400761981628340022760260691786311729657475192005598293818129495902393927419269809243451906817705599601770870743938728652139899428351547345288712585462216228935289623638069422634868460406503352295244887857558567850247366315904992426291032488781706231890421879231673761828608799427328233199537267061852109876215676441629100268468477541022946350033887121226480793211154441258890659153693356851782618999626477050126390734794273421364491894058189425999473492109331855716755248550043265566746818930512086851004496105901315619762257662630560272908873719213365021637327364546571024906044922405651878684564900178890006583963644386425773160263170210771015919780120296868405095108338240955817031142809471478632399581715102682385306077681627484785978291749669220152103471738242434830532311379805639220893877238431635277624263108173065266988697508467837538351134839422583382186455559124084562198327023766736158703340300030364707893015959519858565548671555052048294003480060199784805519886194925697044866237333848634112232885217981622472813683583098866859084848852820250140435729220790346536659924680319065125240518489846260980363449524668834069174624480517842858561752755794589269352166792017116830273222996096673621570792558930905565988785064893826961540106639052779112623804649143982863859150328678424632992724888407652006148265711791245099941959844199814984160804303330776978424095615257584807743897916649581170038550281090272525635526181595603006462982410886452072859817866792150976917988907040691867429726181249835294230056625607493064199459440906989888754960025031892288007263984147845521466147707990310651108296124654528415331774875316821830148083716401357617375570710660680763969014351924749059086669613096082188450773903741863516316123328531869195770624546577300183550283519425902148808107849403188071612359667518901011321227273138145237040801029678819093835911164924644695960326995490142795790615944389549136611359605793971342425809948776089998844358143699089723906959081160680355438266959425025895039337080813601337833938770374196772855611355255361482107381894345548043501868255636092290908945486782082590242189686187982485229522500912035487331533444148772397444240818716739344469726587336068349163172890158623998521804150483835651596474659868616541871047821803648000742749173177127530392845797037400793396108491834941982147365819956132110497899378941245682374654830773716236520714449837905403819063245346078707842354051237068038390255001353726012237849872211182690114074605924225131979859423725830021127756721908165676872357127868166600321909022370981491681036943556582448679417278350997157968068961743816363037002899319815423958985750914556270644058330739829162000234872103628377619618848076913797387310296690192901771577006443421192600746496330070932198157760847713250663661829817049534421540674288113628423114467189720696624708030920358917430620655761233913819494607836954050962329036815724685980742885152290940875368957756274045638363826690090349330569789496294983545253531087974339973030220536377995107976187954170725565932671930641218606731258267917300201847657360827903779537102714214269632673153552130719365931861610292683219083012690144605447011029323584310586624977092791237743087716312836581580291027550249266734546935243484497033822514513714616172915892052913586402627725625031373973385116623272071596435307114168668197583771187286874662348847132543005863202884649083486504740945590389214967843341221842272433975347191049379071090715303662681615663627489954022102614354368827040149351655982478298034162843941173156872958925823289932016357043035932326508923239808186789899776187816464690244011180811897226839684396407033894722404694700293697166965042673918956069810144374679805402545370743070367382011424740174465036158392948820064032873570064758563459120748598691268634818893453016028962151620943873877929499958194961526352215605358298595447653004083540680454817928114508264714223449366364984865472380178728813130782220121591016155234694727713356912574304671059365567409483628171616279754430798029084495323969170141693220615688357942828349682247399413513812375753890188384203335218717467915965183895215600069073887126318090355154982739865072773664989397936890067093722097829835961614081700538519682140636663173680436658258937911188595591680678210410704900827743058713297244948597755692019288280723769958722560043844709391027067913334326192395128977972339234218019398461916226678940838606074010731787928065992207229464314762700151193888523764596702029536218086013668269468600191908316843317974625565878022946861575582485650066259235509245203520002606298190581704763202254807763983974646310110738757476115346042491932423842684281275200866165608027102321600611280318497912885938247163589627322546004620513053624752592185633038107170434066695247722985008304846606238881671311370015605711316271020170113465309682202613598780752959059029798648466263906413204989311750804442378013942346051876077571261111350392004764269640269728990315086967161990095591799755805378188353058195865183384597551060293024832504517245697682556232721074636880157480713284312213747232540917805201048571518426280813696426535654074021031095907662830059163613768674027261577553178699819743931656409512049907039868468961962704473068551482011100643355322579773034512233035713500005362678921518301119295373944143199299895024902892505791164837708582213712184428975626909486868845974684033346971085300694726962945358944072110021874406682770109311751802611174927348195621306921634253797805198014684025281485306715681709636877650692735601616139364566511914846678248439171567505565507453279776330386026524980920073307696318947458582666885480819933171975507358261549205128253804134847194373748897127226527758546989178246886348361906813838697980326552497938030869620435051688304642452331691650708554287145072698032453573086382136229384483506459832698044545962562130703134878382710648724007501553996592360334484758589051337592421834427051159160241335797643792048607591793487015184744286046666976349465889604387918195851984448907312285439002707729346510720665784411363721215745811214117018136463326738685474008918696012316472227081072429804871437868828382656001947116716197804908490706307012849601551108350846852512627640128786366038390822545254599872891739728126049466265791266416753666855296120076717990764228287900592899752196957600314387726309406724849560217528689588244503869088304768709296460758096823744981732733223902923022110278872025330774947022555005994504673665298323844049973227426246293432827839149772466374726849361405648614685551376023119896855446683369750272230498768502328244362684947557306844811352881130671420418206950526417294932008410670108812169887418550487508263174498095446440191854042758172391014622992043240050503641898342890324324197729801711118302398261041131365790004863527614480850435342666272317232415453137768669059491459692726055705587967454888448797968926031540155963609298895923210398193757246109496584508591519240912936503965902734694842902463758180680432188200052589417901347364945835402021331721454981721046435911455395023175074551317308898175908755919319141582050064387152570295688907853050482509091972174673113605819845753621984750902974025164834914805806967143289002190860136409069078939820558823721409635626016340106931389595486556167984407682862905178289315800957100496077826557341570867607976892257750342020794714516663449316234861808397068193886184709140989715303733519143849063975741154542278210136525042756494282845484968410112249146661345876474106496333873555554462136285273288535704748461085836671374489224944525343522532847680084144771050489027136374132830384540254204776302486399273195405443023339848697224850116938229723982334710376954893502350625087219007240488042839815648985865694622927649416031399983358141188956168103421796711511394393279731405870064881818062690460030335512232212510803422352113296421675081290694008083947037125115591694285697912350731571113519861873314901856032403268337148918365626488397083251524206519566423981007905501053631369342004145257709655982003349945917040476706437651117374451988783260929639344826961603752269962264285147308624341598162079733570838600985108300316909264439962428173537016160531259349159381310109183628182835241650655885103181059241425032026543254169831883682880879927412514493113379959954087841614605980305494199110434069310490726962259275448475935718348886250787412097482428784364519981494247819351393681167124662584173104247178442387571719362691413404713775520058147143070251180434892369764716718656656699030646282919782158290605823880837492242600856941641804920045688321123624551000257189394372139326450716946270496731853871034468812730999476484672431466808904023655004265299777201740142686497194011496896225235467349461249658732384453079471184146048499427836826705208947824702870586585164849561336160793637307201206385700784316172137067969655341835487254913183750546713429642100536857548694408028538251492011976668354636390553732984894644139378530244966043484615148740847954290254525180665891998720439123626154977309062938923228215183241848278288802168186252672271524520841431787817496132699657687006547845652037698646956842337866026787239170636628085788683870742619126465957823109728478237253447210150453133236917333190448839411455954080143344186066187473413013978508671014534603046829956665805658190679152086572567341013822406251024931558877732225926181433425312202577875886765256882573550540160152951312074013480232008917192204219596291503783019367881623985763717979912312584513105087344636547398193544452148423531105903216041275177943653526186775909718434824673963295995092796499989848408824108967191693086912260968724173731992034973765799875901514247101451784190213694125365274909160761056852968180795681264792419213497050862953068456116611239259247007818687051666915394706013748473822232425983861843766064771794578788525468882783850807326318944399848049858999302547082795930132331063843006553374733855502674333140116820437532697961138820112606139829213160326760822748870422158241679885317496514037179397850737265965534483725826572533803403919448901290935490453996539181649123632663444359298577070620452509492822248008383034289718381730595145985866797809072822121467671245366203236196348574395344542240339867709037983545805327401316989831059139684238532224742444410094691252425851220118253597519456534883591512864631454792863773413156358551336130187902637473278113705505217904158339591896364648386402653012612138258887198450221118636982413291474899243174781659631797381668627365613935398474850814932013532512630375913885003779237884168432947418950069832087654454078653878248025025100616734707061606780351449693351352540009663635659424134503150700858159362171524733963171797472342135977645681090757227013920498189015748830503570970921288248594424217087454221747414798002780768131402632633275583276570422260180741254078393357669103369907618323126528472374328861841360305593531804253459692293718734099241969117636920255259556230389187595452092801506930340384892606825761389726551443087092069205968023672817051046722671405566358846260996838383261164027190143723228495682044623844134426813973972980348290699436223037506300641726523542377945285792198599929213528160908454395526749685835132001962135812452100437025700900974043266821656479853318085192672371094735856413103078934737356400917079429900357705290216360687734288087690398512518249173823658797240301553494528297953738671842030977478081914016064505791145371385172341136433123049895044849290788226671829863976611072817468473269963169237004927441403780626590884312571269765510751196260007936194313447486054536106169170073795279085306474723553789173394212537024730235494006264667247255449904942972697546781992985366767581697819210339545553240837265461812970530100683383819129002224364291952057735383309346095089352544944595278298657904044122053468268396696115766588284469138582112452016044153247197074935693971669021838017136273158745808508664061519156803286932365687014797552509380710807507528256310853568778754603634220195350977014793287356232661079095609747157934268818169798611852948351352129462950538390703022298783632387634815570611416844306491107626418343725355156583666537176087809540541324709489855775741045219350976291540507167859934643477598311911675670383863051904430395239524985603747346592574679926329540888071228037323027267151248535518545878371597730334832200599770817626465839651905653296383745108089000425825671727639244356109441391812169211112455894729171077297786855378810973714510847393374374693184551046194546145370052875303330504251997363602344306783720237582387404481173071434253431602501636392744548865097452716677761399783284506658423059914876320979210712881297386931955568434030823977228745663879763120376781893342676145317246780641770606504728295363879566284047636254314944309009071157969504227817097240195402436732498974858394615858710390232098361506321219853936788692000869109585228558587985131938849073117676267963726024249373017828981246625716519392528628925040903000719690473906503077083259086327198517429392211537922625010161199215009225192760749406188119604144518477716195474009571267461134662413358927385377024590507820653515169295565198830056248590818968101034800096530325958503990890731068832740407344040737811130300831094522910318569458291154530637276055331928533589610679442098925312000858010457073014755622062719041955641982274132860754320370376896187564313269216118786102306743992986897743916526287908210947818445580720939420651591573709897603164544460067937690314252714028385985229334212245009254296490911990459944038301426979136125584826698901490930516011353921233775665454352988190063392234233872094740879816148635849669901848257936551875099824658427053136819180621289406457915327832406892902156061737329248084180837565884556083626334899219170987873469271467604552563802406008846551802686787726419848823432968511975857837709421279046323121241349578098815749776720936574993912905059278384898667297484816263894352209700265980718481509096424581815052232477912790184299341260504012706278480273671010302800975356251832008760410998002868217438856410162158081667009741633072504033746958496843494892169297475054147774507579074561330735692119357040449299389939133476632752779445253889516362767235661119028246936817478117458959059337138256214334146703004151343332428286650715268056119535983237749157091347248185244233412057432240195991057185095970590079631786176602070777122637776700065772104803124245522626361715574754857974106158072827704036265872041159004087462887953113537372761496245769065098553033259296435342118745362910679243328683457850122766092214711208033728844962522007966344870655600625411994712025481397740379324042572258556960573303998284545158891714727038985555984495558942998886241511615371479007287184706733815285604393205129160536140865958398094149053256147827431787470187745940055076651311551328616191655408493983749925490186651516014362875430274858084140218603645051173273293958745074954909651104529489642243344264210162203192360950580430771606674997755613792580982375374857860831675664495457753992272085707977217644231459266654915754842742985651769799319664681421986902960625882902346630340640703006921573780212563218088682266624233770232164388453240474454398159494655920558914267398258365190374160721075001355706092922813935002324136571857463070180402073373117868302003742743692920552494558999292704920288712560757026569476688102779390428654000459100983814158635427372113120221807489866255068635451255535689190736406681792135219028618166279799864373516333279841592161061878665076182124999888249196670911355878318549465220461078977784370140231298135869781334110161789921503815745620377810567873779235072790410878784788773078012809397946063620531192887578821666878199938092537195182801207185555553865365760944791381663384939478093611005496440800521507357022802195979691449317695851251816534106965909943881083583125836996714065268779675087623861383803881486214118166952440457695555096886411993913310153282399745169412585295577710370642489033117578561290345329553704182105126835700761546323668703921351692733054514157868607163034144639720382117126691632994054410203031057065822940507492101791565927240541231952688167920621640043617078745750033654598407039752681099524657795962011602960822998617079715809849069470718528098496354100606675523329975918316217184668725107233158289258530780326307129835091300494890350009401797375365940282367644959064213337916145714684949794367994138133595952656774210720991176172671865134273022611674170866694202083790187318938563457674095957281308872822448897860695657903589359911903947598752257967338695820886772418776972067427484030847591571968287094809239909818212302726045793994486815479117285051874289496418158377676615696399241743507025357062031644802355259662460542910736788177923067118941524612484818535517342067591655664975938618500323915586959683493257401003250724300584227804479140547244166550753725995415076037251188885230704352032978903264647778611766586848998064452250523105650476751964936761545785388703355992368464265645205669687796885284395694736491569233764548068095358487782689329188514679142230085016029346639805835985840438504283058663037892700521124039627958699001948720551141413632829582949076433039295595434384580778910973031545012277782594605549230371884365573111363264085807515634569659079021109853115738494711677051811204557582821652201615031165086693450787157531356798568054471496390676635458955541184997268111728606538078624372446371908929201408584980662181823377548702478393142908923043473597365872887707971549471199340207090553613547991673337252874182845393046467907185650860989072625412248150930106601324418888446323795902318465995297344109579543199263026503421271387051412944115723883512041987564358965889353887906922858141927193093438850984900249273480044052614035998400176709696340619708626020571308607263836960243271611187871103793764534852693144400723176778964872860079294497790642145019867648830480282303171850599152068900424832120904677548960318439260691659916419319285010885207246406163834944415841310163507069638196667153751154037313931202039137418417198451428019034170209078257431446576402879757643978625700122585364900323117881595226432980581460215262033154021358958865203320847075471449208352893105672511073845442011679766635975107699111101652442205662331922820336609882391951116332107360620334758816024824755910508054464040036857588065406517089492712790139136601255488875316732122942675565352660667221978563957746932714643543004872386845979438032735543668679881459886926269261875543128416442098632187733244885033637171147749027044238883555953146999640050013682084410226357836059297686053113663213008247522504634860440075519833654322631287045359051181796939714243636323896350625510263162678695959656590101721906894568698682498790528796642355000100633833765605700366336440945129182204152758719965371623279794477984947771147377345663925070874150607332620736881279509296971947900375973560742960411732468084845154460135616954998634839743637527490936416148298426037128234330624119048777426144275047243453858790189287297142482547360739201529566528608280900272093820572853651315874222345862304890805684162037058010068359397282779283429582909983069032567559730110816967189316043443569924233026698095429122372709679063955463032049908488689792059123589827665268169160646787883646716421371714598650777837905706154706382314198328124652986542111769525186503613143520747503417025776913458122847279927580143108402738991401916805642010908068453095317998300657546914765866221983217680290088843363351394704150365046936839250445864080454594505568792475648621081395724594746582466365823524695898866289830586557012224989737092790017736976658343628445717046185790412985998389700948627899431022909927098043613987423885939544293263539838979512620850214307552503233987950811196271648709307122919810223430841232943541370185709033429971249963067727319832362693660636977517356557921480005461663811852650849110540378652342620740457521398410293697361991662167864181407358982146466270210564829933802092026295268078044699958078626809454177567447611489681084829198625663999133307113397946233831119889790064545201488141732267016259855488629779143903271013512509164232603598798012324509579640345630985256395192731165997625642733500283504497975577334455858578355127396800962812061474082068754701256067091225132951545663690740513480604595902787662394593256939072537285811489611287876998883786812217903854404250520296713108882481327542114739109556143340450352902555929961458610760588387732375036195077218988446720334545640664421348175557532333719037604993300820254929130155833142898223047376355887379818060706840441603854135726850200435856610244641022503850566978131566858998913311396364398954760542764307145209215930982351315236896796231662167446757823311558052736068516622092916569376707288414052702367283975884142557003488554723724520372881840173824803061079910975864954483084586021127428205696395010297754967595582563963465675292018306610604369506724147178568498188741119974374413023457532875304520816101135590617935312375800744214235068113648113544752911480035714939375066594833146686724462820705191184680346956718943134095932378719572289935558080568197253801963695411648940890470212613185435774018611745574472248752388981324957183503094079498879646304355261007520492199501135431757249432299016504470773690146969535415961732403319313002843258147336329709102453187743713241919580476616654841865124199866877852069995395711491892169997575764170873397587870961277109174447105874730339696193798373421360796027055789403638025808224053029381931715325832474559387627114812524743481525522648011334654785126517007095787198304806746909649349172727288516125201860532278212018668709789103655227503039306285655547322087259789373061133835987694409805342460285696767707989989634648841169387798276857975612303751669470475739434715541582552197972192152541531733371606155249081075114790648568522925478846549440366074242836524049152307357388715346107488407101284081590701136895277736041240538113463586082357748318536552371627469763065505003522739292047511932472098958533227516172587515927962439539797525795087956064343381511057373554573082948385659557550705794142712778006963035875571403464673140122411015298699099369228755722091078310222523471772305809739035257012461404061525217190217670079332136146478910074999149086179656846915907473860925077686350570904741086720832941976855040400772766006716070046828707522517058975298951414717444374100520518359452749630461271545517615953765244833639218957840564674689429923207592320185223834980501437065410361398533051595479347052499183275779220152394045366484067067477061063981960130851289812585794997822985953142719214016739004875845228214278575545648430349185462745271226839464934104813687787147784355639805882561868201683824814037793042468772434240503930344078088096395474667019036385908831636987968832779152548183868216303739018514275427358936580043868409158188992557559012674308362989152646238140153767263311905989039932326816185260365746819513488892291892725710914126573732254251917440539538180586606032392144173248719971524407071132987652668462826333571895898573897778704362924089149112921242610325559271766559777035755539802613026685506086924400953345268273636356096897538256741119956378929709619670102223772240159887103185372503311631561183741618430674554690726101399135788950222034483750443780097838332905834856745405334899000193401451200360737747345567881189730548767401302583445056658809519137615938739445828064441795536880566894824524922308294120555233893220936366660517627145088212255766793425803947086624583028798189103768723893380301576384666897365686868726557478313788782309914160802721589545686319702895788091663632669995815438935718321932416101800562659938710886181960173760257273788004101012413675366846434426913601465300924381624825153722490283293465065736083455720944240626136109887969290652301650309490775824931933291673733809336264721534832058651660654214173680190297550465042455011684401399814560877075962909645484867136415584118816056360672508064314629782590730565251836882907975499159593205411008376501717223811527346880532425110119349050522368326420926785809980692581649736192199255362668636778182241286066836999953839514404626216819087686134649323232239085414201693558038117678353183615049483977254630714790757555824778646733082308166451766476302647860470985708737267969469217189681156197342319838103030253023590013165715964174526064261700890977998008055919272442960424551894831136945055578564956125397534208329361190857287573087335695474471116456921351812582982905080986953538676512979448215064822894972244629023636829478980560224175539947784995291501976936237797031045783916201137615550634986876036397347375519917589038028194469437133630887634786988953437108744815357871687858148607232744856729496966808466301159861168422636197146187297587045775830886428161606642283818835939099968737577112122958579665442222632921437207114373087039317212989048958180877403584502896431407656731152695194405451445711788372646057359923076827123308315859149926043545532674306634755822299719994272513781659954024998337981441045917969849957853101650905507614899098859166620237058738217822106642894556045648804815562736906853720218111054884024055174320597262450951319631553967518516156358842847208303077269188898679184721265717832495516392692753166487214630121523084880751609050011075622835056312848751839857825459058250613416753697606019985822622257066208224651457943033325168642957613541502074553014629593899856975021073515399319171521111455273037927762309384439034736650366969448374728028898964453944147735861204715781767941071849377014909798957364549075642842432479341432022737605934093119430979465104427187935293959807714447757893359080983204795297711182642878792735770165960665704732266140287262516205605185772171784494613533569730311787403458397366817697653068897666105169912429507466459071782175801260498431102780272614909617844190479671723592666985423884201164245567124281532681839596083322476049518563616595081903240936627030898664009748198771460935101587546131479874796388650210143608928653981766968005991044336490442256532300550271433490940417954254486720937757743529172019898729036131272435029796699157377338836964334768731358332027261444158204331968142155780619691306670012170783284020266227086798154555047026985170059737485823317463103233529555608525853518004772468983052088560893576392806295628814986173844287674188114121388098730534894835284996981754450773613407767727599089701745766041249064844087129595867120167990520027166649935989379578276319492259277078809349212061002301706516617452744640756289592844450954569443997603964438713586423325781400916675850988449042250338394773147751665722894769665809266054163063507866732402708442764354970820452130234162012905458873852384987792209745143030934461866780142776712767332940018437817152730715452597935219989314595714224134703602096108733318316262477261121999159399334129188999359268371148266805108064634129205687315344247097994945694480234027612363469271599366854663019615029524994145396082240627735231640941746236770276864508107781261684392278196996677755833786341752026495164191930662547298949020588512527533216554174309030384435506453077191347337352592285581908645817495121598110594222458839283718335034551341080646910524521242718090076253025541054655386801412972073941429446393793625246159004393097684603602621886801786563414490555442773571039573004040705862827231470996813780513222499971313523956504682346835679371358093182197886625319771201689121578140815819526366639257341446194129174396200821295429690229375193121795546542700967765452317933430854559051262491544471076739265747263378928903532392812038646199589763700281862608799085964316879574257988468826842395567840932398371741121802471690721591982601402999443465982934108146617222142840579984135743605572701871130718677697952193159217278225983919750255342805473871035331656103981844196392996271776154830633623426160867267761577621831357288207867037758335015166554668359176303174150497665532326393514021119725410129312328266176846226538599269881726852885467371217132037530674614685331850103533938169234220628454435395175390220538484901691311743203756813806093913315779741933058617284242881357296342602035070974746225321770981379897979379404776730211270438933676190569562026069068735441994491434392840873406463449098075940689149197996596706191633542422038900508116873946287945788763745871115235876381741200050550457491535734483394193234201010905299973815518109550889449366337156139569953424979898286904847391439123511540971236302561977151504276689251277719262148126811508272401509159321456517519697187177181403270337236847620481048612248364662138592248638324112302087411113121595182019809324096826355702491422957834798852734438365575354543109661401393694032440095922965076398046341517158826885033789920900433436384402138156314521255754626525990979140693217876885774580307982324904646991884782982304555174249844309577285834600191470516700500389856132318243445183849390320083730000109834515716155830271857950317942509259634956729501973115303010477870263143763435703526438210178249733944087256748431141530531746394439793565555798702573054813613261945782415430746975519959835509802367004820976327023578538706386349095888765267414464713543993352770827996624180093441919874511141676516663088962839043823012404527471256060927294570958821856864014046906669467854007494463918709998031907755491004016876970392058598666271857479199584263543800051425205713974102053387695816942346223373564198142610009180665779021814853357788734054233228790696639320993427517306789805961084014790122007455679131288390502049784269385884644123468836124263662166923857002079742424095415078892205292606155605870206062525946379353330431091522415730896347641532605585772528259505843648207482356309041019860773881575083468370073764357645222426403105626416483483437625013922250738423237909324995297342677613048690976098338584033157083262740693090763453105038361297994059147594771671255402662174578987990504371779834016750599001664783342375476786252394885023981685195342619666128659170919175282353758954871555648036231807243727816592639819567879537214196108102020547876600203928755782045539546615495647550950268410332302866784010571406197730160224112598013926351085018478981719535959955880348738037878585732546314982052094218912568318188875789840143002057088956831024259334104920065166525362155664229953344378538921321036122455693571606078806823248343953750752765807476388233663994771102746936237922226021666371954847029958049322782732795722322704352017443665572848394041364922984160366800412780655992799919655361714737359266631519692122190909787579071111786050936710307396026626694712941154953812503414652546738576413858237489842125825818194835330075578653077727778084262478299766794935969011860555317760412555505755654745499279261460236518167611780231650813692479259479988385261618309330233607712153561165387203148795091855969453709907429986274014119202753574478315241932747202039870882029078366287229612848252078007174096033145720148744541041983441324178182118896841150213611465183840960197668181046902195457420366278660537845435423159641474970712936994824332181628118750939362595349380079231840381260068430635880429284171746090318047890172756842364122866784326638853949431760476308336338943725478127663605242687337486365928000556715663204230740103967576940405424613358840114233437859621079992088314302724311833042603266087265220075468131558272990711073949277934236510994135842609535757278432624104919827819925222818413053194517931545410014085501779709852534656951589440228899315214911942531743839712838427034966433201571264539536044824114302275846577227396857606876544135049685455262848922346041665891851062985785707633878032731950368011590401809100544514678172189279279665028500099942532747705911635343701276944099815963276072898994265773020449426547501588374151562479851173572132231857411985752074390227984592068495656577570525809913282296004616327208207913451076958144764050300940921498739636026725584305147966288718063783797952142400363990177641266629858011428707352230969044944656049905888070381889898052370644301097268213734497952961391082037597053998358449418071116070156712535677259909325159879819829917995533204845454279131310211824655035874895997647494461130026571847825146305876539461747792333084422412418479536734331073774071514056457772244515466880892114555899591700079314727244493528587622192059427497509632373716357989973693175859114352381763054016842156343920715828527941527464710319800717478193097175273532019133476688498233805994397173428105841470887146948734269497572992652333429573428434254329491000122906461461532440780855346489326529440183727133129850731330195741061899097119006737763479129242094933850285552362872230280993519534242240129854991384259332931609323969631470121835948156395701610885662609219579606148611621269440728080454794424501643306859599251464742090847313749429813815234136161215527094616235827983575808770300822835805354777970989101132624489384641357580172041703899610930049944703627392212167938423974637962668753559036329459787450531032520059644773825903163022110979762958997940585551949312574772301817003536642162240335513625364366980506825772851531830694121713830902573356252302273348591995806031942563638447959656466004292351250463149400357417052556084034853259882412326347955816579510687684415060076945133723633970212001895701585212278543027260241250863239401858668555398532121756705094582152846254599155575396031896253972622244816748656200726758246368094514367095973852360811686969733500670824079074254284444401041140893783724980055113609189676388879004911011964858147500207208162382035292768017942954896885696060280374178636407231127129212048666254845145730165907987345460489489563624126214405405251442863325064214196470394874252304781778396753902385674150910334711627403374874676128110530110801165700609187501629531333825842215061178751584102920006565494025943954815907931253309793887468047244475379122000414755067316968720409357414112359891639869469776991527051938467513867637005867600038492485617337252133079352217630412585200183866900450594060877810897074936380285305807406989212175859522158135937011966858185352884024072483281412661558786471479938132750012008741778636801697316370502316045574888676399288410812137713502823183666687786847081616026481418039246035909037659636544644305158240753889214585789686439839595458490298466273265514007880014421004651937412037317691136999264977771999223939638900063882651795728339670493083312251529499107922630893429861011756913626399760553746707401452059945903885898536786759020146008153002804677341210557397290125747455731093575352524668216330343564617112538428232085441870953706577613045987427577601205583828656117415386680001303086355685758730962747146386899299004568226978458184538050258089338836835628019835602596129499975329272215952461309218060945681508832879543031825603300171773502772452373170617430435872127927685329384448992085328703600486401822687239394660235064279224411578157981089442414376842725087188912322083466768019472166744134713178060244506745751101466467928806281125008804595155188825126325443518557383268205788432905499117659872038169752056223279303521177456884250136428299730004982450481838025694847224299707389387537623120199198455438239939887260163818087502927850609679939956115520153625101628924944384590872903002680655583935285087412237407112276389425382112191115095762440395779300148111343464256667520051789028361455428118952722092638381947670318171879873399775290721726767421682819845603675339271725558680055104631631446518980928599194101417077591551187799791701564054280587245538686374828429151870828684365621335155523597967770540678611528593615299154872932927560771834292230641448372262331683164727714216187215982615991984100699081847888201578558476589925269845538738047534374455868098439600967335462721098183385010594965350558253608533943047976557451511067090411440286450149952164845261334436303849822080175851383862526166321442482771117602028412341159134719618745266432457098914711397388783608717795293634494892434085786024699764497393869536026492148609623371862696260520141248424463145702064796238901039092570318127599784548270894710568040484218375468351848147593899343266010077150133566441835999547726015026306839762747159637925408255253648464688839993102293646689606918453393846591789545042000186438679176849507182570787628500787440283422134546438306638543471426926172746578971537882229731342128254619348257470369925536306105418576602206036532428525767516237116390014417578709829893680517599522567968013499163936254386032074749994765737929360841520500165531568559867643389445590182917386621484219360732841202518054819111485125340542705936724989408148643353903034748398740521504506308017635031229380345133876573832429908823298240823704622214990716365341446591467265077116104127486876359424907106327114541691992077185262536863983683310700318775609719394903483234645326112425505954401255324412872819901852259434432673185689822842147153099228359398554340408689755565796772859944613677334726894376021624352445560567610557663189493178341125490887951162508531115970614128578721104978292591932891878441813497946735167763578565934701974306796012085115622025974574755818178256259507337115049364153409843726001321392914954673103857564891641926817055427997300477661040836048555359882656081972597045706617093265281729935477828018920026451071163585090769603672459179958593415908090186638180818477358578432837784474322983415799915682912416997677484061017266489292666485452589111448801118612541117409649449365998130408963114888476889626676595501262848250963756033834906461624948017764806048474415061226301984031205204150871665122205190873061407087005677313778711816463196437136650951980139860684657758393820955939543153954341072190699615526971307123707426348217092215482921773380085360852320927477085252388664773826241923700902128143863791145614313471087866669534809921684127965275442889561669020766280461900512959291679283626866133234527452865593010613781373236405986893851188278524291672238039630441028350943962143861354240548244457844417075491565638483671111878505822020752968730750682961452852305417218325003687124114680494177565277318804332195003257033111097081585087173959641981677049853822097991860810306207238625793204123594176986767807683108424443282668738574994789279330457523814050114457714569374226294123488658128682551442839567429761153462919358157105023651627420987968613416032102857088917569427031837233097238729526720992940268272004369983431120396347558140470351371161908782091245726725301501322442957289730357681757584923966971591401574620708408058662983985075580442789694910170058393510945145846586336190222135312265193149151785359713485980819204345927141651356426593552751970819183321049208349503225803930722328224365153743327596705455356535873809253761616302149830554419057200460160302660282753031349915092325167758976815914623656491841306642357594891916429365760416011405767621301001741310498884469929158865223818417152776878039586574145775829039956579138340882862373913773765100948515431723964021924603152283786751762098072165361855566208653673469252489973472675267509707589269917443851775026680989975343488404665186237952316255054738281986810590039516211078486742370862996189824445315760912193269466500545799379699044227385778887838766877993674196957354201998792401710194003096330695942030664472640756681385093455427078869842565262707973650350362917678357918457255338697625695098366345088760835233899317070731083323503815009189156587099705963174191837987213890495543540964235588278374725229886976250351890058660268986862221856507952756556877170946740182043429993775879440725763342662656920565384358748682939884253514434870498514637501610006017958259815225453446773359876342134934846920138423613422642572182628593590570117937875546480212502393420748746901520813026579990248960997940153997596059204808774262757363413239955699435666830760034982451443639407777611089455961849900386415338470120792479582627836168962380684516408397613316419343007286585526223365257898786016138499277077217017164382071155704772176802787502353503074629485438008431528693651318334148033895970178628574314539202338904333206166059050157568500811683465594056721098024069409331883855775257814400674469006132990002106526789949602666156562048477961468328833486479424726984054906770087593636210561477043704308371494899537797874804443160109209519549793889816831053602264148593243286697834196556519920853102230520018672449434254159899021665556314917768068393235123829009125709473389143078223508414690567338156636893387701098804457685327595609383321004730565894331027893805749616315945918159348267319157747868319557285718928054247701161329480301047552585148509885123066793652322156516517060574797524613639261639238283435380135945028249784268062993069818448273339132238350606253278142532392023125322015827899491223684011535942889109496130763573378904201683645142097973699920330124675529630158537448165536881785664981963223244691021869473485314777574599887853745140379826597286618450120521413003727717463233157618330896068519749443983726979860893513043506757812146358620640120586194971417014554592314046220092956613531673202788051540493899466665582481903682218100733208040995927947869798714680609384445517001690737508847162447980790582821676255059906652599114255996817634363270879142855511231104236876787318784977699639454117895858953058584722803595958137901028761271559913349656525196780456362209441132376313881302373246782883498743846204766907269837051685833577971363987144002848318309406855882897473891829027084783538919348149475070658535425531994829272123436184786501973699704147233128843304649562031643051072194317329872533158222818015336805311208226071820401542910111116610704758081185646554938742991173221486359911480149625976306146763885660910896696597018160720678254961685223669765066982587119805057134504474628880882310029503867619846157922604775314347664891572911064903078317670375596344177646086575869793059834585545514597284446041029385812831228019995821539596962128581018300652767891690201072631860492894567566198847764032110555323992344116197212082205649012436400287926903947209630149652350736729792531857169483444996688029255419190332151365044504016445292707200960793679244091039068831153759948596976814097525652164514614721280839904747580031256328103757758842240273261592732173855774688067613874960557891070117795798279141882706513408490621876721635664566012880302975947295898802624321115321929682043244030697602920813118258170139839477640811652659841295743122171132465352034931283576907474825064022353751824205191103187064145154619842221097725296252509554605591120036504817995788824679513626905211128791499159137757279840291731850291096082635577994819970453814610679127112027556244345183962782676704728256400142990368222957017460512184105677396828065661821449331296652094324110469263196182952640902088102065289994233410332141083362009588978043672546510847949963909768179447504346498182256634408825556698386411701606745853612553380855566529682633579290219508140536230242377629904381778438738467276218900762112206659229183948901490274522216023099905274628584917011694740013835315993687008748596515857124288725184798435616890994580932163711198787033335251579032722939234951490597014739002961988642157644296402799437364707510836161729328417536746601578328602713694335979885045899039954796372245149938180835985558318759824781735164669717374099513963553457537795165409186813972045797377997194803427682464978579238307237242761514014148954592598752004114615408645695033540438107574001755188440741630284951476486482869138342826036338328690285935648415408129191633425299300783022805325387134780833739747348630446458779449842428333650711637026727173104091989077972219334108529698328693088784840642855811134613689023131564031111362477978095109890783280299209682291248826185637399036489971244127314743563940378701716308913270636814642613340637084935237002172037151415847458028515825015483193989562031697792115001245294866836848736976245792687049816146103167063831248978417031687937701057876651862246679767845781317555382881813188996713939848046279185594116941847086485081897597751403249550024522047769493619531228804900429230523001408473810513524407566846477454707413872786687809917906892335901691959929208587758053608942112493510506764702068480565924146135718714301738201487535463538788840926624532920674331131654604003405077865317067987516787192219268272505438145960237358037009921264359419103682375353133772242766348108058893491228643791389841591565356178329728949625941125871405515543988253530269805691517094878445775094620911668869757486676651098620781710094098524693724137013219389617574550656983078415539575065504687951931014364737558189988036016263790085323850922530648172395113007866126452605016809520043452703785648420411561084450646180124385272536901012799941351678840558341821710360685884398183252926163340530700457097170280159928019238250212900123688123551848733523300780798341872327492692176374690452244150232235332943146358368555304384847125209387828284843817092220635197293280897456588367336778683450374366800774995512495257904096969409147097870288113309119727877108454632464160414965029304495093481902217112331398299379823519845488831750394825772546862352018714001485992690626078204272192710059645857096546718936610721030888215394081765384269085577280083236087270405114293095834175406587476673331707016494977331485626473350917690325830751372250083719288030054195157704039297887363418239919547910575052056478985696895076684697015876294350140216033014767291563347239130610982045903265970029242372948096075147041715405933496650287025664018006893761633708937391839747396617147807685050324887588805926880138725904951005669224158202394254539488705312254681948419786422042853747714194819637349796236180504812131434686736662226585089795790332130529294792137154339756071504125834512450886268931136204530631155611000694216101550507974570031452162765097429747857993533649009429607129573176777845405017598809665182015455372273773408927781803155764618550867417070959955563601673944202543436437863648221271199287023306721886187754417872954720512104622637298754872775840372312734867049545113917525845040245950941364968933116390563978545318202861571824266444531879775189878593178931907590594102798519522518187124665113814086641269646801523207934383493375196091034227739877189607066977345224844119521946559169141199540221947743487339061489003996803455560426358106148458310933558176564477502936647563935809370574107355954328819965724949502807524802146781541830419413219447540574891516361351161301178992818845337965731480547988336205571266916053876041830519050950925881457893953376262602617762358065940848415847745647859160852108981890820432891079881642616661066383739526897644293923977267437135250346510945637854345737090194244283598797042221250709570560701842849672287491046893346399489636400653894906930676899939993641812728588379594325415255673240941524889364328942146949907054722419315933746351644375343455794947386437311699567686976194351753952548868217309488847859192879442498751890481774971150840021319214067514798455276479609318564505791813535690276937974266400968848320885940897933003611668853974881907724007384039827042247482950480298481031383530096486909385818031641424097574154033713811780341950897799551390159079992503275029916003669000815854887758579634968282915198752734887255467343981883961545571700208410921863529525481480169892838514356895001765332766827592852054694235536802524011421602267866639986914894263108389611631542241560052508270827516164250110357765812789410067930701392535813528825061302228923251599057222564999454629762351963070110879794721818368839543725502152512683340497509506585055640043780453781406727236420534731128671818431190344272658994274886943473930708589145135318816361230118763425447609491459680953573676685591982565970666258727477659256320862553763026221545574016734826417680727245806692532145631207875875358698715444708940874408710037463130614069529858011154282500948178531422125536471559831890750162386299943004736618890310161976146500462937118582802466955291395359300746489136709071985769504924410713383705174739501611135427053316862499476237901046122631972587810517492798107660758197450186907786754967683488837749140991145618321627244652890487219087875723976515002565558055934728055920156287194250990136177474821711909069046492430443399372428006299324647788810220801361643294869170946430205102749175064489694512224005065515617546380038216923882370203875705632044064032660695148644115469099462187481860390527110293322805576012559606859700877102308630520505037934645195481354485233753668212776240895993719141948749627753939198025501594280817613309917150654696640246645463293314354806904781672169484601816405334706290705195161890657633270253673104409502901585226588574679850036535908867848049274384523501862537802676185183355479913654492419753359774389815468739354747578322287348145710494230062730356208232477458939696492522440583631970468782317872320917219463177320208536771552275122054257757789573504006801279215981902272860521451174502868576318715519279752428316524974369378337717744874963649079055737502325392808607718678247874540781509982186613882432681358066701482544446232436218162584162999606104506447841820752719486116051827152487505869954458955202650923521517695049422679698106326805993544779314001660272751634007186371124666373780712951277895665761104784846057740213546572354683121716770745037901566610400780120181359187503721502773179454193654038719889019386563227306130089735329276864977772345561802088849374411909384510514702275064490202140201291503917678889639783672809538573624129617033010458832930986511132473560806353496189564884371449999046582525818464849786003913865448190766403927577345959509140228080268255290267289736404725321063733458252287601440738713521859255646759151298253558765848914777823101443038416708290646661218713268115065234683933769398555851578273557732330759915028188040390271028707851152859055372431888923506854161216361700986391756464878387945446124379822115612267978398471821422556368178164173444163219655372441086405384966929063715801743599094698341996536767933851405491655713670947186364862974744135808693316069031467414107969526254335861141037299403324466254696906402018677766105241392374160775154822808549332487718739993273294567913910523399118502578194460976148415352061001102857783751696898295376646063468451030992284087865891535035176261110476454458159485230222423002204798641157786039129372451316406054449163666553035151223321402023716958569742805814622747625543100326080020388234379818803402537208075387492966010794916514113758074565360939160548175410986165301225341625012958889560188610107879248897950419684685232386255669063740165320671952011174821966833684991864592783023383341566213453447797036199799523064523198964284766079849771514559816416071669664195830891882552160183448272209975248081200602849008020856084004124130002713103239736717721705491149547004798920593489308548386887732647854611089968313431819728958531164963345764831736705827323458901439539644193659397977981854737749120278564375299655571516268544907269861026647795455096437078691325195898125313178204122861393430998707375750815524500110379998711819084511891785940360902080357835732577384839304843383421579353619487643975767771099882898800027184711039545718420044164394766566155115056881756544209625672428418289223473082888907006687938613599046347136590116810988149686618789035008837187723109564480625344641313256131054130333740206618025336414043503151457365016039895116359542532108694502062016583891013347769169866680300625706026438675438262350277714433182534421200206739736622274845889936000657568932943084321419517009266936121530069068714729746081656993563574593172240833898617699992440184714073144486149655684268091623136497752541878095342180239178118187699013736882778775864714347607325106203974121953797724625661001716169365944256301010307035596168786737870127519323935734532667749008541291151411286153427492219933930478255717975923168255215623447628290349857029294608017086205192887292472817544153011923292867227926517045115299026822394337367329041777731664828216263739754520706286945328405316500114830548492237622777073738575896087911541138375492168302791427073937592499340712681192476191208668225488209592655054396999186953385488476720463467000670434246048351490336378212932012327190244499335391192040120189200357247236712567749680099945000006854178601248679933845994764036434269727344924589402880420496995121697035344352661777251050531203251649515229606617161263985423338383133417787213428567191374074655277149154448296483127865215380292198379081495537407363653405805738525760265444303332657148119749017916985082092117126766488723084724680468726278594764632018133769932025946333539445749460208130017667062852091768916565819675771848670219697396043447924693749042673181577627367686169308319587186081875440137565200757273823983100771785344133545389136242139346533920258642683238421097911159939928623588386775070062497393421389875224706123701189936813833013744490394748680639750746678313867761512885765792302930803460181224320127539906395129758333606379461534278615669958319924200095612429269198659039622964689086574559776711336100834537189681488870064383203067251925419635482609698223501501371493254665042965070861373545711503169099107724716073415397122519796504336034215052317084905211420093383211645493668604780440856532233854575905634138550118838159249662665439271987455148462786713839249859706210596479365534222516622542934715161247838444162690965324051221380073864261853874125557286548701931548901849232677169065006801802294133985888358918549546752611357931563339100962088875457102323007111105934523063029541479826945408121143549438307278205664412951078884384401370252271357055583000452477940645384889110758149933073822435294577533232788848169694448290736347126211345917157796054092133753576056564472767190639758240333118040282847686118182553573039562208833597348802217220104707060362010430380658413662830060873340289481848336246652401661179901905413292410122208727806256547654055336733384111584648211308132767534569023524377614361730264730409298067864508733234944274535608835281349848353904700494881413813499203171515562947749440618772131858995507727496356038376075250332732885995827452475815163268319867242191225354194229011248295360534496701007502597780509727051546965934390511608848744488981821132629193268327285957538288891089072809387600125565554306478093534895350000147109532369412220994203202744191903564979852104082808304564938245217300250686401580090263850219652305016924091427095131109217595159788454932162237087968431964755423620805991090608015747510004914860371972930041663198223774317474536096295619421544106084226506921025384470939913731446227777374759726164642744265391792364419790477977604836837483928685212980776046753699573915680140202418588773497753275192133837763967162653259240026615264843885505114573390213606407852070825553021761331254921204473788678886549330650486532299777889878353565269844421189165977816723348798257234621839165444714061811019907259610757602038261912923263031083037865912038752634318206577943921304301561536817634949379173897769541080394172468525495332509280079527651607180938884681116698706751133619737813757429683818536533592277307474909853595004177339390710773164870775816337579530885539806889245992356251306774347856255337817827503494148542742961215012003228829169582134776542045837247033661683984465264027798596187095499862250342665685366235846292073136201267822622980195731127431213238797534225058490703428904116583809601782982155902400044258479705286911016911211503864380778861826307381138289317826727221574378770364746152703452672995260626141418133808144240183335522363460575609677670415105553693763132619707295862966604620731259968281788570681167239916708144896430283682249255087166238800260394461385659231742792923257178035449772354610844070121457092149915537133259501001787006800002790958847546879334709559865223275346449937189996875958587777542526314334067369166047056020804667473508328188971852115211713393404563286871791820885033893305449707982439465760699034628527374922691750189082568840635740468449645882167642297421747353578351964364905043481159527561510420307193998711369082099635024561024163523712662695763632168628885265345804987846753629909658173933696672627607884207407217957054159550272227372084622928170688945003364285305258532785307364071297448184819679886446413852316312838350399596029085921423695495027474984025615881213673461219060114825036596403653984258498583507029958446131316699007896516167191829954984241517573354041091576595176450798550374328878298401294899738410534535917568422411436157898519969512979086413539059104972797560208773635036890498623123630493569165095173916932873526589486379434012369840146912129020234898537860073844967597589753429765957203663770817167429319583669150310323201347312927284560666528424767878526938345984616018269644280623718758670878026240777398162311763742380916576560887356442851506628735952963242137762632675563978083798373016525700089309566718141293209642427488181690129959582317235929261834797630073026277616814280028657701085410423363022564389161508058547676280915521679528469703149275224049591246060176921872173495081225513337948263565326121264706531129041196950534386150732645572218645133556214640156323994891598248006442691682190306814443719817380216030378669311083515847917393449684831137220786470234605019666287791413088969249918881774114155898216352521888260555633374701154378193300191769793684268491906691509209893547228505871192222806558295844590374665453540633527544447570358195626598319860166132679177465313433165565867123078043015916324049530216943603449658711876152481575196285180081231067570841542332328829733338193253476605905285778775042430224187343988542387572041756579142929467377525134947517680271569985089458696935239561456292063845707529102562924921451301156796950509714528512827558005407451626911750435409714633728966541239978026056065567333665575791461633807775683175036230756342845564466893103164451942677461552976716157865126819219442887079038256725270840011824024481917346262043276369647267586899447887832212024573016397365559051119142231612831697253069397717515048691122276993839274497853339928687843215093163426924132703533509869964686174591315793464138685125667414045988721255773593871606762669387735294637105547076530382813912095585083869973726335350352921866582211127381126542431546955926031554833164428536141840034102253769784802810841186892831102202635340434040950562278991440081213530757304567969025621700538865126161252957821469891082777252104243531629636372990921393865915279434920532419931874131778365884243526667962513676632336986022662721521209108217439382705114233241634878366908268036945946112062831149886800367971850586336805157564483493285915657954610740951388220041783777395094721333043535758932538815278604057230776860997546523174534988083485937501770403459354012022911259550682749901073462510364147480577232197901507743463750117932762707037405719399355185665851727203910952622484490803304074773487057331726920751038289547236641897121045939439748078154747529222561118241094689742348129115686738952010033152889806541958687579883256056061009448669858097675289177462792917872549883081866938388691821358246029875699101567290260565003496281914994849680256335909545038796875557608108458351448890742810875785423907438267925727668244059316736775878351107002123557928911421117101663871982577877096070243983384884846756456242668479940934238652106146993394158923272203487111876413085398728577359727212918683646357256145976987005084952756445328919319977288079161085763278393561365579755003244069862773510592927402425722301281466422145048447479166397280969914311611090650872148101214221563493609759285225852381088029761933336834885587821063300171578441149643832688325389812090690481194424043146329041746485172132272662186774645511246639778223805936090112872237279490233538050456975558623959692206202088025185309145622171096320186000868456806071856729598454852494654776040790042718278026727225091599108865613739798743050222334617009348532175472135477656109086399953031655230769640137437013914684836272263380493380168163968835493976200584064554930217454168344644167128526762005501283656548151526089558180451860161795855770931235496103704896026346239830701387879215372320033729007575362952551986050734257819153410443774626996341997130496445022032668289180412553974198303007001757143443205467016230068452384954139226423072406634089254063461790293088450126285949202665966446639890233325546231641899909079087368260194169714249638641572743354418255229241715632155722411834979817976726591372923957955748802951939429616591216979079527320628296351744789673146730306096485883873767841659446436591443855064477167609049054760460073086595806193180096108868865230268957392319813646400880507685702789109471402400899485093943377849672757963171976833278220801807435544070571561902515294681955878952170082154356984618729120228257405075457110528712770312231752010554842569594458131252887113755576940076963394130085262059420924211864791513501817849350845890836890523449932280970322670334805393502997358830733519595484716727292591695023351393204614000860754865436616687461069307321275706822273843249452599109590121305705765080292054964975440508840854647550748412141280418730788805596236167024970511056044184356605479022640493986171117396795586796272119829958214935278409013326230489624442542163007100219157421995765078177204355503601152906264132558520576849536681770683072539703008969161905209286365958541892191634168070499822002651513293327724924939163331424551170909114066959805028843188722977422288692059349114363398704748974252566347217421245871513994459898849219244281343108076380493854399921191058832555524022947447381251354774315560934141644541805362200566802994035889909322737487460855010600396342309529447879707708635016054113416637121103626048114669316627265597422557528594646686281808453325376930249950232990448067809685321490238961860697535072524639276926818147556102682613649518622286332164044275082275392731924140695706402114271095501979280304639386000118596258215106547367830570318748295395116603338380965244497827470202276132681944661201596576471878357269212003615050283717044974334325852910144606428074406156261759428149795906736421096216107403600988233666436425878457196701234622531240181068046284357025226166517703555192793202956353768306167425029364752422097253589593405871452010836353704690848945744038380227013706258306674468681336486889109701700512910340579855030582977336995409005516238068148214193481065828399320453073414351351938350850359668847013364816859610911744000902575160468554683452781202906901282809182012396072763252830720602587801180086850832276181982134663511751134209087749138584779412471932056576016567254547033522375313124642384967842212037622982893052021306864817056564214126607185961700093392160831532948177213995084439056508378702834998419410839654056335698514865717860313024919177129514263454049710853085393652070769875861232619310886871454598301275285635609818297751026886250174242462047136089078311609699184495546405978397193611636642179992089788386316540409233716394548337534070178385267532941533330641243708599428422278242912892024545545608185443025557722045395319690817515790065498581069468449304245580796523700765624071918214198501489011111484402495407235922361392974687537460192052299909403957845414296461791752427721712644820992114123302051330563609704670435006445608934734047531577152831095263647768566348166939281048337141971101747911320519065862672124363269050378534852237123752026125875331459600709106830358559232338251882359272090510996229373498061741708027609796222954859455951002143489131923885736529752576560757803943095611688062915184305598802817753100513217070329905787806594589427171997053441549796922787588853785114009157029716693508231609483929202465255634555106182021092354229563847530196253292526140194825892149198331763833777063580604752218797344791028051674631774648697822081025556019607533829627474970255080110371361316291127401284474327856395314231536063224109465363341013135417875287914611046150586497184066546713058780972466221066050288542539439402968963731539505588500881026230040181843724437625717536870758065861138929188596394839877573541812249343975288994155646628479330866852705989937645034477474666144349703917259923805952245743799792311917629787076431545319701225349457818402903240269083334541391588386901473580287609636671863976067038918701670498702537155909281978548053113329205559251760381093508939757366539084209396419351717213989895283020022031064214331364841684986141132758084442898504274793282765616667227352812669968233602347796378550328525336430686412337748699226218415471831805749030522480242591450035429981523718483683743511563567080357247903154933597275831990485775055969597144011559528307766551810431164956144059632368229153744025864008507974872453963815782531720768089355548819230472688485990506079905021597724621103747631346164036993067567346714728019570620162124987279936890957590553617455030482716201866239475486819114568689751379835048678981589002746390329459186069250190910640976163038266906451013397444558736724815995565895349214738566377032710457626462262843685136222908670221658770739184241855037253245423289103569538749797371618188490904214789772411546379316310319552045199087921964310534937300795056661165007507069250996264671838027451671790966612835818108877459163953741138384175514660389172053086312854343505499820038873416289310920612892633789612909021546381087312044949943425713423281148747094508055826813742190706111990061662884889375252794493806096043121293283616742805937858803045266180345628968919956222195019492345706286772858177165873995549139579135300078931001766292978121230171603700557054290871071103847876290062037728173135005223246780310556196000543339415499539354015311826419917807368182449294690439535253833229070231300452094926566769832056181353162446029464517711727403937306043343381251236238391252530399942895382423552527961511931801993058955917337297637948613405400734682683396452259011931756407028996040401360922583626200219516266836008676434547277679486226999394131886063341488640321703602099442022433749800137799781947755637074287094412510929940969685803547568987592041912323419205952877145298600323316366318131777178349327471069194059676295666304633395872804124532448658484654382609193631462410321582687510200939279078459504755117992667720987544224455762780461065915057461138018205534679002264272969483094657527280929159862641203692543095064004312572638618314341496508776025238326711340922221852328813607430744984818206561874556801681278171128455707731348317608972986193651355209088449833266863725767656416543394494286964464922208667322250567824339403327447648222241923231988048849979115231804739071305308915512133785315448859071865778757143438003922830250633781411224666900407077429388711434221622428260078933133886992537512543304643622082065123733401427613125015389142693481564085785638216394537337140245761762265114071141276073157035927343763992606043236149749042075304813588498908449543030100723198392861028191160407209255023653675911270444432572067954651606897001083232557589211062440831883808942615745063254316554620927716664564816010894914254889573461456204580457994989505840544945811852527644300002740381182432713945752894215323307693147926329350264258108519527974882616199769235816989054443746055694859654257249940326164097110186586883926054508610190800034496328305734845011284012066054863835560324639859205836970042373749929257964676047950552447468888328012815319261657559809141515481932977346422580391078052503217065493884462074253685847828565297892720706001336105848638502412010904445902542665944506440744801862721254677673782132893807576968786400544554764302307994333160524158319292742276439861355646463875447085031487767970551918033701458358435711181913653770112025901239794284738151752949522024380277185814566131537383315783784254534275584042224864856373849565377963868624278390219879313951944972371220655058967572937389226158736971683932644245489263104200097133661577398805658782668517031750726206529903166450474853878850193573190251216694020691704328565731733405998482309181567051450581640472249815048147288130886096944583495522889143938650802311434448081241042025983537016913382794611803455526822543645162430006897152229502162621269965394876976007940100329856435659315243489784775169265780462477865073509305953836896215048801601903878494604162740579488372651902640543608252427544391216132786423435197962962586801720669840715290461741889168367594716595529280261968637641672416160233104757306528594014083918785726917279953995989598446656241120914918699323371763405022445576216886383145849130019723636322456900877404903378015560268652694283732321641858531712119238159976531274596908024522894550432973325595185047391837562232107066322213593187568667936245255921034507355881335068242666345369983010055164153547972369434017232436247288684173648637334106566124657216963651360378022256503407738924947156991079417715287786162549309029965253796883477710826575225119272628773149236093347956677671914543665887331746777735574572556343767580182939802915987537379490928394086739480053323673877493446818555084750177953271130228860982723095618670636322422891752528149820256695941811418769062479718835487894605884711051178530927535500198658799244797801096095769720587173386961000216511940352026382051927246907679002851239496108186390011405085562676135223236170168855687392818460224635901144560682085244985893432384743474710707022973092582727638925724904167513181631313763394649859366401480847119751767483472416373191653571509234381446095531139132231027739046906596271510920674550742282282085688875830940822091078711681281998038532729795640115057025980163292811115754791001802353135399133338959402173893098899494324178419696835736521848348235971969026230778349609876309785906383148528290957686028813767447104209672418412003210978135706285627923816583623143067527811372161844133115641899296429280385491929511516663381928280755368131589752473910231343840597337213506787850351313173194068312219697773677722898057233452065947883254475432303782929154804446065509487333734866781575344008940965117391461036196825567888341494618661576684765541870622036228277981184946524783731669384493494567043311086415343313207744826957893173768279585662792228235137542778324614068624435279898505277812930366994304683572139025979653755451501144916942832897572984414237637025616189012758418288669243933226806401642998159165773028868910336769241378971898750725609593288690658516789801920793111320968210911018117183511244826639241961277433443572098676336751609751570616093120501994544213443979255379679745102410304323340185116184823881569495571557879337135336963728927456111462340990609838856034185894496745862151123132645301573110194949052853670016578823167014304273946757726084078828233167927616092692171635090602514936703386842311080041644410733364085749354572147279094328759569619498345347852225708890405043823109120379116356343213791146767247388254811135154179766659201839049056337068073553635300434989182679935181214416324448646472064839099543738327068248570842286777602230705149763433328125935866173299591355996150029460877774424956470805535305371208380473709850538501672821794992119539269220633145524379481744608674869686105849936851548091652517455270404389109268884769002053462830565106592323391883072950834802286086692163172364340360409133646597307065482350434504054357664226561394068831722421717890118718813549708607602847777691466746911428814085342583484030369180211860670216645844025482202674951053449751039088996162820069055999143248102058346494657462442233468772797269416816990825052824735859620299082361902808844908927018844326683489173556359841195540314622282510823147101881711006369358947762060026975299349399622426534555524856948544485736420767960355688564264757034592648302107953693915613253534122844656923060590719145593991105559508988382951228033987419404156079131803812491779704059880795678957517404143377192891978150432475888029105442966002959182026920907015234487236656779385503306988619592785344061720445078453634755994926315905320838571276852603082078318997391128129307304686619514054162878073413955451512960543170002755014171427103620672928502349846738293633643053935767974497158836510465161325335929009862701421655796477486919317540918547317204994343026231959838094882472109632718843100649860759888870849500763506311078223942685991378363863536996416298656350352787099055962908677148093550257240350536162856449369027026648571156571185496261524738898382359876048266195550049500450408029935004375531845674374281528647518853963690728278153801563749920031966118505471028316399768628546008175545995802163311901958025984238025103955208129301093752609971996598653566078008084365170464097323799864219415376600000316329356085584923613458166047808001200161260049294931053769694254820816760541746050713725140274634948785061382569843310227025164101984746064112184773993883941120930515488875834385460115885807977370238725028719571170905249056518836516327431796279048539572813279143054344552878074634721212829271487118903354463568470485989085846931801322339248129353872969111632406379527902467514064590765131245539453469031823426039670590512591835787429011912438558411540492523873992484504300520242003515628544937207612845725703687913163187570894464503547039008390758281628491184186334755084736621294601721331200490038096652443025389259948770415596136215077542731308018782823520433403644978793277389022326234706280277467829780533066054845445068613422536835709558706999044581655987671803675094657188956609547368514948309236646481535663146312734752705506388907887018147159385123909146376821336791500619733591752104194177617108489007871094316480732514435686214223033762995805703238636472611378906496543102290765320622361436200013951067747191290695658274010911957367545482384495480719331354369507017318073137540259687723394643484367675629339096521158300262246225857856794287204883338955219722198718411093946987772862034515965640036897424848096387637248385687843757141980619403744544789345583954509218926721819358992901501193533218305312991266293951959275181043629247029155321679227128412599544306460392990696821508335980599993425253759259090970538393589576570500811674593715183655015054741567940322361465529988036972098545439550173619111899814020160646571456531749300830180189743987684908339325180604579976917797694076345914341511795330676033024401375758185486304843878543169991251791572233277097273404831455417205796374589663634393511570423256485799434211608511412181342735872279399458113133373687280225997398930951851712589230442296152293978580899442680735347034782002317540193860542679908659850087391797838138540561445799334366620655812382220565346146086705952854348467081468809769991597964469007322636126671445072246895605339770136791405454646785254999587278471941348321751891222628676603707722621826669708079456407497062665896812295500129859821270108607609340945828993645307711926823740284848293131134155172855717422743796400332190455477583387181020767408287779880326333450113134560332292655333314702574323605199995717204040860883726575978082761754681314020223560092220283572190422130409142637166832382470980345586786615282040836186181944478160001652148554994526584385381346352960752224072461037155980943706941766951302957552136556100015976035243807318072346272441494940335253648190409067415349463398263293495330924500105088002828704226698012046260426723184926059384561878933479641218768275450145907863126509288924541656802682484423433533082332387760002353416738014818619159131989850047967806333727119183204438592552520097336114120927833968969832661643780366864987237344080077883901557753461387822150585664937572132185933770484221287091940368426113728239858800581495277664723409193262753190178213351229745529560541836881754791899646322428851472010145652297027432019941936930082133792702912868743126901554686772668433592695717933295507791245898922222253633067930540806311332131309399579258379004537246553877663164430013041598627211802754378187582995416395890786792286605747642007112473718045752628983063191322641023141385886291785788497102664718565044330911784669301655128657672328172533420163721490871456755051015282705224814390743539217458612452518863597226769860867780789056825562839744021735472501145123205292032525416353195011305280346559294751768330705498225169789839588023255913383566495745639057333728257187747296083355478114979089933523923698795434330442212183401046928266022215955339400067706010907119703375844042355487076267352679275712372171146194302629894968814843800403897404083576325789192024231325239232347816318870208323396330565112403720326609181439172700114337872222122282711767713281125254978466622747312001506637465957988793270361700802277165333757501857724507928872740872258944246314381030325917480528498781465362308918535036059716939500290114549683496433786274959660168859119606228447661900472843740296480847148266431584844452217055220145714771695476171102519836646845431443635154949380119456618477130775818299597726349897505762008733308922468718036216495332189122055193063532661156779417174219253164847772177340685178132730811477009828579290056470138952327452532411553829776356247179468286583793305084086959754505499223795475029324271390321524799355168166867089379298832354353672169417918944490101859651012121115996593589754663117827355511014079803213102561784715738600587302010964408127557546636805550159292422640762112158860360413752069733362138753966276288376345514767291686384396998527153655318036880340238579532855652920416315520120957026690889812122699964861681302317755625411380167671518564515917712194504504628134220142789826086190698484365102704976389263344024728918562149530652558027240147767995914502834432449132979278447556546863435711111593189118984399354709174448449156357006144271511495649644057112572489029313913991871904407515399535140001669224026650833186556485011525168925075672847028987507028576170643529608416754349359926048659661506589864890980113190144161801929655097071170335838771447846565564896664615695717001406516882415370892502381490891854412707619825108001184434995239808464339355900058031675429091022006286555974425807225423171862479016445222456507803949785930278608440317930970316258829031108626733990541612333016551000667978575604030448761324450885497884371196337595644366568099706105070518627615158442958682230336889070993180111298404894912136076861124284663431095648744896046642482206779008231604737567181487404104171549338714224431402454265563627776029078140871080733350546982882141756108909676652338528841157225252431316542159848670986367050722900204946103880990405771085911672684641163084256398768427323012582313541664525297599509637328007489661852063303938384663088585345450163182201583215803980347347326167816402845213887471039834512368910899030640599150455216270716646559427779401573034335018924433948373729555731071436116220924004482610123331477519929475984614483226272304251762911579268884540804266003964445306959506424529258026314765803297173535509752856524567875513283013439630379668792835535036498822995527147405828648699533820309027181524632840616658517301153963198924887164778723109053363894037165952096581061806660667795649604834230346325935078444160149675197323051067634928239541435415913783606723781064607974549605739685055751012432078670197642383596785307373605912259778422385612668460408492300048340040782914031212675573504899975845877074915992585807110522494254882036952899029187673766067810047100189686442370317662779783512816253497419151696614170069566202288456085113410665111864375317112861061658972738633445830582834391244935205172936136516255507137634053972607366393031242630753387678812041029547109684554852432731794172461821654220323048205290510175139421726247554841322374306045963025032241015293765386729188582915702723894635455413442509672211363999040886738978435374984029834131336272517629613625807051984488503468896443158245101992101648397851806205589290343451958111501250942928703004206226260585899781436497151232569079406577133316417594770003638869947153289380876558726859847734975601893244625298505381745446749863305042214951065677238695466368786144493498416142394898145564079727793049335576940933024300702959008139769131573840012019266261336144953099407267803134633763721477384619384454762466173461797487896711155374886150158079716073143257667526127294264492123166850575374922685004821278798400897992576383967251635660253848541616361380387490715171510252063703348922974293119997830263499500860563473506534793743759812405544526570615654261855398903236660661248805282641049907422195342253861301269458176543085455985780390049267086124989513651607430283209999968891941947216132484643200813169854333449685368951621868250432142985774121885220466385732592150644429660633327909265583639737617366565027572051456046178048562384082330437111664285259165556129469389581964286329331696498938116279808868609169972464458912228690282385191858759978378711164334554916225566889528263439333496797257907309407267439782455975323274394857339569735908243861569580690253981805828116163846876259772132815220473613735749634567286553305163240482417328965366935752400115459597869457293221791468285588332811231303722898753459470741095977501278155563423885005407484181457373664080978718190650091370119231672440499904565559355946116329848139006980968748564155783874365222090747326982344838598389948193726006856119995277679368891091483294057598470994148032850220573796046194160481072488043032348487287321580926227746089078655631469954920437091695375655238866201808148608169245282499131194128601463186159492423316466377163632865884465370954455941561711556021460980979010703264543876218900854451261198441215562307354148253952215038308894559568354721842953940041986428794398085706995417712592032585552532682644690252877264546543897922588786514344190828927703242753288102644316637742440695323294436360887940526587718692956201485814118912556626698804456352633163078065136133566027861262930676717482390243068690107168207647992352240568587431183799263781019112415659347819193209143400326686599096814598584198360875169909042410077938155361866524965088577011295299329019252634975323693638762745881364052659220155418352732405585589598840472607011742881232666697134441155252144836225032127788492193596156757297525553536156576850383108748894100720662344499466048448257069124620256589451315295043423511497137932017793651164084706218907442450197616592491251973054302297037835811277164738279125280044496142664411385312359732627575225711847671424416315906250383554667953932103274875834543395035479729078763750604707390762063322366814324447631471120171760307288138864692481273414522397538780283061154821442214521393374012309821399825773724416760285802134816411550563139157596196134058418394133486950161938639181422640816393865998287347273215577185016973987723854557901433713354214853372664580114753097786270765366289520243825724663033185434540947241186736607368156863397431306950716229580520586856404805030985719527651153624656163834295856739929898342481265528132900274111476687023599541383784728311676711414723344984471078626420362704754327523814118209538035997959550487234582012860638784421034327352961722100039586346123044933868459314372375464494645519774451419514837687578166079262980113735606335501473069354794030519873486264896735456612059332702963349466122859743890790940736047500939369795116998337618617534200401035703291759399383596664275059322281445870996337391346293115325265539813822753446397471291331478217770452715060219028302013094239194013469694652754379455296617695540154338581139027709707719107508487853709709869584872595919686333262751497683409629413896764521287458936710687032333412619441806481915674008963792069024392658533384885390714516431648043491491349629164481323942775709522942971204671036961508320336684967860797485226374934027876563142756284949540886685065445327280945630390259351710959677590023860527830439407686903527166257288196945978813075661599562014927973268341192003356978532707382206017623512908524499711185460748766061247552949218789571488032842332290113133331656127604541960843441509794950313010425599997053700295794181911724745624420437441619545746645582874301690113638781327732844592463715021594432968336458764082248140177457249633151463424789804358901728969790722614785354520814656316179779694057950178275573762849208053503272498762393283359600103635834039169369955629861171985264813628369227238570646764580734440447619684148085049457320610781368675992419796636731120582001116001319854791825758035043130614114274553723158206955742893603782936152565896265021974839758908148333741007548069680981969158099765187223321709135687906529297773056134036832270844037406269974591391576042562925073435871354612769076633461792001880929364184290889347001429539557570481781306221597747821580732323472265314167099191225146674744708693375535114728985657401904820399979122113051621699971077012818779385763682467330053859673537911666341877878687924136823409028390706051256277084390014208329000532396391564490078722745631797086807904665591850688567558486511010979512913142716354716642284478774631401667619105225457004334346766021823077554215664520907452640045865542081449358213591096285498370241519926779055121843894047673570066075507647869935445680815992583730828225041255673109939325279882509480774129300753018917205796847358343604594371163979959273100196471491224112174053799855970649773304445905588065944732101163304925757300426514291824393288351968147769690794117772516386453634988064341001947965455010794124528355052098517732460730854791443004931487835996651209864386904510520810247078401983553079727759280705050063523089832151019369188655994784513604641520278084843682653275238142190440661089689928335774010368498674932153414131118617000168865889743316727116079018952369288271803606790343352573955973799393840653153345018961397985056989982224848847969095507669137510797202955698823220499771813504525120221085717486521066163869545025503363848467796876372023256761970736703884011971188129312915961499125532943541901531854188233456522592315754633065924287199992367802849898245399162007792763042212223629447983690686866811606956859152191612925178338808741026063298748688815395931366232830643902173434612938793574954326933436095544373397439841706419088946773768442092811471334226854922241248262759262074814734591383548088463042806669115282042830688269019789571303198821116205253669051021941896024084945749904475054246624483222002757711569871859918533640057570887400372177274657097544036276667379965852657243833781682059463007925052629398022173745056427915865593898003380884697747571984321782455461556889681549662653444379985889128558735035218161045272848327227434264929188260738003340201439656643221217740689394624542229546767256540366353944504798776391745345744967985605130332615395614686372341325585685703332394987902449046290495218195636363827734702203816547989873675795337354578689695262012436441291367019805833887288181445707802270104587507670877605795726606415611660273295973395129301121285415505020669372486646664371979704855952581259530313993186216474193926965915945006915401770145828227109367224319283089456366068642125378774542093156388227303984136799740900206699572481090954268821117507960696503789316472731889865483183757734472945723826802624951144375566887313250728814296985012300895038782843347886611638789348491097078535447431654929187375168338655714952755513816463452466834343036590187600625606583620963875939579174400678326319242280785256118105900431152751828516326917669486032427978999815591926878507520284012453572877688986351041463129220013660904214118737430655830170698466849210508389500877041521442083321853671557213736428340804477671822699761644563354137797362222707814462251440271481200587387809217056620975587250088714360229860851281944093264439390550115125292278259010430072534009614866046605592990968548223991366703347707517667066160570932539439499219164665582966420785841457583299274338991446866219794271638937007041656118651662335746939890112837316271237733014239385222363555203649504001342366234539402160185987190395589898008640635154044731754412545085263185424504860233785918012901118415016181300307631340968697416133067715956897037176229737281254407274332984541683761371095372879668452076162937883212045793049659950603462337424199871429874518041197072040852927385051792964481046820641474618694798486588525142296163013776624310801264992719808403830680705731626162195777330133026071865969506891913592310376573893021743992519294286794461816082684214383891032171085770842013933627740885870467361494990657724677334100062916060425925320517329832268553237122429931310644430604971294413795025755019717937437737213057959371203570111872549490436156823665180852497121091816731955688718661470247694280874939892023471420237192300548307966254371522021357595706259816638658056041107753421448174412964592314055210485171736360374218364831976106463848098960653607211360011745676440741397648799459067567902481154158532784664763844888273417357352822371418276010191426638629743800160954718358946324379411086728192879967940091074739964922437055742569024884714488303249318173964150447660213882760476746063524567879018894598834239875853172574036533125003659356050299880476841631066977923293223578576064578229659552028773965729617246194625229193031912875967982052367126871472425854814404177284227961119681010829067449031753349952502395375796884786695865654471729690192268493847852564458627505609909936391781081242087679960948307493709998177095374023327523107692564441126123863505669506460788220830050183963779161380847154591789108061855886945590456950710126156170812135068818364743825840381515284845890096617028341493920946773591375593192625886453696995060260193620064150383098582669655335449582031755509365385913130465203476049490497613047793473751026293177188637496122220429388827033761721476323602320189572156504260070208407528170968477377916471137853335814412060908278069985304753471965848910682690208750573877667744260644386460348938768617799894235657492560978663659438362405408622030317036329071982807359713653045818034424124486711492647349861327631357377034406704726421934547019888992745061092299423987933437563559736862985868548687148416149247456984347664858500870141453402857932540504605933492270810344216481530056006830312332071009717268262782770469231510634345987569742498499660706934212201360442700371882429582029717332741603580877099918352118469997024764956524323978987290826717714489134336814565803833406500503000082761807862405975845162501445546910377177812077878557265734596970445812600407914999525823480106101260605240228685621425562834191481219864502308304304353952068264337801022728755706686463807087453453154973212377651929725238178269619271291533979201697399432600736291491837328004225398408190763987908752750856713062422892693674195062411945562083842814016091341526196359462328589862198160686319455565791375249359884420045920097017593769934501891432563772194054338656865572873090787073832672610765313539030448217831132955257796588511890322408730992479277439059577137474732397290197685394088255497025937930367615674618113711893747942684516519209184723461853908006502360999547506135148225201128833107497562287910710834236637575281241702876453478980305427109454381837106692949482716040288093463263177378238930449509458838875979773296562400638768035052873710510957190868125241281891023626135545523528957896599332024635597770418875732915307523364419243442177936466813211693173197040082597302632886493592338708456042762249127662026173419573331442135730269755036538863728199193548707891794282321693851893219762829395301832384869296912581319794672515727140406250194015203590683870111995087872862757061666119026260281715003762634540665562747028415227912563552303782906521626391963497571390503750787339868877827653614083044484588450010578219358089498006458252155221891893591324497354708046522035728786798444059067736036168778413840051934765729529942961187088194189277814251620557937401888948754915244001537484026940302922569434850921088685396898085349402139770950639322806286086886682111623313091223231041361416839881928766926699939884903160181629781771166425969056159180112899761824178498020659694532707809900494941755439516593418787882817989134216205545209627860593509864621061183416537337808640780190645838392693702034604337099520421011593375286988618688903044312340744447999406418511033150069178616449838166770987263340144005948790811474070945727415213665684473331210987137628276608406132223119463834451257671628964483465389659504591289891218970395186770067573717302877579585176676398997440289128167389496507877453495578082488183387034610897069490233523440713455302880389967329990343047506423979813040356345488514737113581871485997792520220080484919847904259777820700847008428487531003744690997918673737952642620178419151024321311063799854506745265525627926509714281751241742722429999093326126603982944328070411194813832654165916370275373077270487154868812170323126376354157445435820686966471078192144953712299179692880885279506656856529662134015169554428571270893336579910040338700605019346920459088567281061778415485334998110945655898144421121053984571279868895799652001111482451797737507986186115248764483180278803565456984750658175031774674179083033839520318209301115626895306939921204096359042804659167250700534884742342222380916077377842205051742832387079458553738899024616556319363913995733318753355176201253175311467010638327994864208783785712198059047746036098956746750198498395081232561034453872779339076843680706760098210514459973904359473098727084096911637030488070665241357964149294162470720714049965224466143646884875837016646105358293041192867276460948484457659810460481342285069192163024883512107173780478804929622845693996372342797925552280390962802806223707702335770374151923643999124669707109185544230051439722305669881524925901470411248497312967794666150022359482232363392241638562116502337971595735868601628715501099433926689896461566235461031602307119522043216589917908278929232746908989147213570093232641195548561408164836748321433774982747599846221667647305828283139711697543272021879245437216945338138761353967871504720483623590749713285429832708909647241060322308395536667297543895904809503272561664649755105540319880624103955622429481635958886239678680761036113553946817246277871597197911104795652300331406094925008555486377251307396889146769559079089649656470246472029241206525007412831775508855266368453969452751229448964958714369592786030193495724464295753312145517135019732706458606177825534687781656950075281786020371080339468420317471850248769890213544550203675340462174994697862055377780733145918539493101220206109713706064656592139130917783964273901337502967241275705198451227740168939827893088595746752236246967389261717325797843649589566720517686577454382649858703981745088302942870134827493584792328862945991501152338475961859282655702020372382474989833446297618321086584609170488827952720852041240205320066309546220179373225252098678101252288989986236343383635056810481782541752078805073451405763915105159285888963191321358028067743648654728149979607707892665121294998649296837970269899702312239117243052588438942411490664919950875567675789119086827256967943353003393771321089117774904602526228631596238270169982157069832720747881258639364938026591509600120968018411646827488191855493279189003777933704947012781527466303860729995059496677647887171265938527651145761586774196176203470538393674365797939077516344712236936223643565249818374518559448395433548723712106317153878440150472554906869119246155433196833728695669232894460859495941026895776161921496575178154176655402112944136718260259305552974213851384623659527507461110184258692257280986096360786320938997721218950842039187956353804096699042037175235085051747809022063871613929813707357453039064899211506599958117953786987435039959550959756672635130719157722648910072648641060939836962338442701546883112635083630348347623900079394436153552764685116854268146391731171523220214238112648330301468257182543604751699164421857606969707437633458501157704820339958660960494510252920641515233127524326144175948248600294162186538640502331397258578232693554399294512645845065369423223470888323301833978132225467266113149136687790615949025518475840877790410634154487613872570605780078709604463669139919108723765888576525894304740522076990608386538770138114656147812614857432362647103387655820507745512086305899633811907843875760534832785453967151884911614247608590238188492198447214990425164512974980373493206658772971411018436628312902266274087742445577555456072984978954926360213834587602164580565483421458647534897530588515415015527559239383852066606558533345692144371993294039134499443603960251449716224824499954826105345774985483237872665802492526446553594853164655660480848088329849494354291066124859307756442041768692241182713317453451831050091384252209546132773227655764468148265540080581239534930984862453993804382841172702340802301829649016284799812784195730608876213273193015219118168850283989742432696416255910452576489323051615271070027013273042045055626418682181902922872895058126072541401758006302044558886262030184097641170606265653750256594774593198195931382150843115572067429165568750878155015198864336612008244551345878795520987877011696954148416735448900998967345710198887707968225819913064753814404954990487611949820971700921920045457437108172189517927576092150895579519252395224750179011152979998992810932211604757068335708200778803786010034520327042445039474030577626483679011143781581004235529396383693934396999015014667666613934129740839173486196275286742032099209196775674423572314900151423264481554904808812172195256637708039692031477604526952054671895370478936296786216127113904714422795662334053139680312334788663743023804365417031674341847165359554905679167222865693451275277100452882851368826835563665522249774669305048288735649627335313796708104203135836745262506112141988083924745077281125795598146878323261845133386869474350690086664405286245408422948126689788185930244412967258460922081642954556243639403589886508891260144979600837243109146566411510637808589896046908254533690874862775736687241502332344743500964365496466647778909480807089389349571976374653671273894271731180837600520172790904704095429894699940629917365938210516738440107296920036055687303067632263275319516705733202679801043886739502601562747004391207671470458970805202472801516708560047374472436629582692995444268996919828499309516288347887463178703716496200703699800416951009946035239771360619287276830662284700129293214356206372452958907611997020303926837430783664495442056515021583710827371347136166674161285807263872589752504564294168543073685068909371415038439459728651744983805010161127362770604569536818348686306435266173732757459235914174292457026168072761095573496828421718305625480885025685933736672073720578849975678396771932853861714066276810167552013677483866447515422522782022603065326112249628781382828272147879566881519342783018477938000886551020382391554776358859891425640590649997061698559474003598242534160747940811784975794832983588534097114423297451346265721632853120598600255843065010946186633931836814543631589575473066246860204911213423273981236417242698094303199635532164959038424091419477509720495432277282591830182857522043379173725933026503684687295469972885491559727751825785042773382518433894101576099580494724949992001913198036643480826155996174232669443120182772952831382192394604834580811412861775142117922299772020594763190003128420019478097108949578563980349373821307678525878302432498017153356348453513287524473935563180699203184790681693866546702580933028553282448460730313453359205888849911365963303609104460357663932570741940815762151558906538234294520562021443616274429290684340628390448863879785072170138314743472955463850529520931078638351490122356442834291436923573711762588953196588413943728308100146741971643815607057064902122745657395632444978951816398956165479367652927989820260193076544390770301197778707811098389013970431373636592020647000135715142741929385867278057952804067899693015287570742173185598342411545422605301047794893761681980016263091408785850258891722576842907972791416769752964500934559038783351363367896017897987861860122562659699961754330837116632781423251650377328607757178983632702573850478190772474906750785009616471905963469681585137485740758428680432828813662413097319521033856584618621964490260329798391511497684350077086661645298998978461892651075204395163131397403160944835969276026594478113913191710922153789489408234804367206096865398895207215437771199687119143564909865189979336852542175924302134143842692057219097312305641914248113757299340159201370153426719244143602557989973357717611493640593786986869640492776867229920203572200609419405542182399522001949187073681157336948286107122324845288874492107179032676876628775809100355411050029378049361428598368064978798515932059894961946609714359887414648778557555645463451101050691455001213053795120113205783906110399169172492084342623156286873920917687578493952028564552810774831634327819523838920697469090609148530722263667454511825932972194564114394142249589719355425974995639398427222320919084007369515686399535744191659090412536190355582698640064078388402351185462711048634461965638127491159834054486793515811450632184174872296585009749768454004004043219128830705181429208385758166503986672696199717432979550384067371733654201470491041036268615409126261317491390762471587815808581806644149489192001461699465347898721030759532719945356662918844937762345530431102050349967900456193365006857501820309680696658660635559218686457765561853514540489577384248707336078009219929633544924136862586583123535017363864255648797149928072154677595438432541356512040886597144000196905005154868209640452416135172254718093775286509972833860238450021714985257927856259669899569619063275757469764434387005646128693792310705703078039268429620315946297415794583848180474402734783577304213263027549225537785488005216827780352493206390967323708347111560542734051481008110973595454951754123775284206486001634603455321654162560476405517557131015724834710430359425684197427056660313156198966904273967153258214323962290821831718846235480199908212865587890510001931045078517353780781161040033283225499840693985038316062103277752235870740343063513135105432430366283880965686345797792235437168791797846853457986265137039731364671088846458632988269171232836031895586339731816901358544966738187328600928864148391018234699772722570928489561176635313519726398410191402616686861196489209962751645765704548419849822198627454317000069813539404273519053588645448391539603056805564822608559914155973629714176738149798082556486423590276605382037333803866876998984328280930096252607988532951569441826764794194652871950477401985653216920580549404041764559889218709163858409690870117151834243799342696264363210338890840840946012521768139028362449653435388842351830036306527226646013166248799438812027609245846923147178798698105573813208284817936751770790073888802777997262642601681751514888177660980388037747967219367016492298812296752308962531841478138554427684285048946849998364234384885821883463173010198092613046753182693930970061573368045153202826893858136945001916909398906966801983154697729002218374278867520190153745529905150393944943707889145580383308393290415269973924520088260565583269802219155263066226616068360329816688702163310090091553072791838069571106767218838557052267117318647238123870693423788699591641734223780696323397538377831844820708889572378896755277726954214924942564422652015979229515347806158443448258718561950443697288031863906121678126263326161761637450728684555824941018478054928040052823072455508572216356949537177379165272069412506759226073549410740421034720398417967020535722484637380820951468425355743318255495522666104840456167305447408268530530001452089538346059903176211931876866652353665585587804794397491119720487513818284915551816200198551615867065841179566246994865262867775298609083377375315429509096720322585450041176778030062156631661471220980015609644644852413272655687109786052556353565124487774821807730778802829126569001767805039699982944421740445819957968104588941090469574014946328506164933537840910285035293120078095774527818537737835537573263809292502405427618723762090172677722492356300513591364161133568969360979124166643516363477344905470082409633790044734416568672820953653555725266400567906838476579180808976656238377073807988375373416605526275419631952546768761275351468296941108046259581223753935894085849785037561070354284187204593169362300715224459922275178147987747656981077083122794140944983967550474399013357235875876361007557735929013572157100668464430429051746613370778765906161082195427449612896907294964371620778028375678525380380555032217967280033694807730964887694838658372672840535993638387113867735641731343130519743388249932480155784105272211476556801871531504515244881820338571591295499765647811225992131379405423181295916217696337375812982281858818932659809271760687596978363558917524719318135654891385935643741309417286509076062622003767349952471402545893735344054665415170782159846410674800635520716373674583236946291240483077939443878529677028533451140530305355988151118963076232625698047650735851369391109640676891256478911858402292674036570992231713785583128660964167606261687508358375791409347809783258279114091493806724980605321355814864120037703524933353919168785640959968290561278996099023522010780952493171287899903049259403295809275631121176891549138783172975520894824451774684375411140798803662301398710660223062897519308592062470243455702025688094679666920006718946865912860377968179747385471797226500184267046714796098426310728833725605623432109530761813760842993634494480508132178294131186182699083213747607077208272332293383324248047808997560566568988315856796692718820199492550617757265544091357589386869375810166127262850178233345564572561750449520936934364359189018095194312199324098831845286612264690655217474710905230903178457261887271868329123550801790676265285077331900010859848777605167609745442317979165214683006766661795062604433988027381982785303524146364156795038605470021155037541483840037838189208960253086763832960832350923563162882172147582701972134209199848344311168668480958759363064966806477017630354551409961164181128964982222700174600188270082721858489758870397035028127918246663594158909583137262037024679114157926358645541498387467311472542760572880018146880918824107337972363857751823912413589389399409541519571683381375773868558722470521742979629034980017887104037316962565385507922975029617394152945005131778851408087548058841362395364750742956739237189156128677751733519778454460302260074646611825289026479947072980094790016713716830184201253724841158355453029659881946646446710938198596161445152754124205360113958064549274381609972723274083475057128367554214733404578839663715611891225371615567620970225794697662075049450698040261840870759359689193576078547966267371254314500250633673701501581149591774344171153361214866481620008768306507551308746292971453845802169124722585330977703091499836718290726951971923746540521655596481532511815706047727064645871461718808012587858992160790179821897015727554083243967287685953745567256127428376603238725906433297997730384173312925468532928672080627951125371416834699589902519345455628389235993023002906277392112009842961746782533034377061732427373961700167088930058760635785083351004183036607976944333302600312170278791397522352218460679227133091846365494340034959866109133658981779274221301518323917440661671717843456027742606570527859050277023057013685418244591131103654356789821887859162368840212945153596134845646823806415279064765816333605426186102872865353222959572287977848696644375343345436535384090185530347456509122316219980744880693854796176027573618318262411842724429557894970556709769188817669021707853442397209824941815243167599804448876163025477686015844741554473008631102267098083006384136070563946105088409831666928757713416456776467545180027538981978228866155842797282734073835826562286858325127188819757383756901123632899275812627114554622278102998569317419512227913351513679042937224334726265690444523750775318306090375386168980089190971370213091062766235735479551667830747092913173423681538244573812543903778100728846076301914859429854180914188178105239599972985260177798697430144997722867134527188594019473835432641017559738853734675748451714610905823989954063633648960821040789754643180733589550965734980226537857769689134449659176526990255738331207089666379942858093451671964182867600838975890886882944160476130761538879018580923991706197004381239975160204256337768016671690617467920219555377636351765504113505032061846010886354687787936815136725960219023201003386347644844097296499510963626663009120468865667983437637338327446815649684844330567814342463517458117503369833314054642046576901809436693867410077085019374419963181740902602781011222275052835115406754837584588644813938310641482143017264289552183596778605014710649850547566994022820450214474790853888690651496076905759348803328998269361681854124908001787199883498159089442182965903685894678311978798731481531070506901999824585997555682146952141467162397494403287260642547741894770087006462006267924991080244924786284706391613867838057333502443126190376385430620655360556515715104927798609094824451557750657354076958453510021372453896930325355033512253045251390260990943345650108130534635527923604584725724071911722893369777023162445961552500683461846407391566338814970241703619316678184865511531995535541262150963333101228233160996460673667948244020803236411076829278551529837903422935045861975038813097463200952207099123318727321521229065845917333380471757077153079320842049489295499692870631316215312169643112395574802644245836208548681809403556691511028158432238880430273473529495774860190522089144271471078168105371000533217898496070754930367726574846895276873890310080609932448397395882810305764076145318738401231795562616500467799117469854537869311940313804952077846426232751979533776076562499160265957418337511422348623489574120166333742209134550920021161082531000932341516018978971223370961593721436522119162554131104824745049284000060223660251233368820097826556346718933211722964552618341371275183326625744822652056445564339126129669780765936338482222965366066672882258529074591688207676393461109660126569833826210432915657148271686721785766069744192146537418930475171083826231492228074062145560967716066138146430937066356943702270618164359848364600716207312987905178563050823771939147408970955715287991327083147168297857393709980238973123859097670605234761595934481398311721275229579145274213432132557175707138539595127836090183755921330291580849236639610760454122724275709693113943913798780232753047316684395684838477636878384869018395662388816944592756357602457852966628739856878175034806165167000241538914619658287132326875587087600617091945907822952095815016106615301826268550817437007175087192855596781990399739980779771145786289623782445285860264277301984676356244590059028494259343228835288234058176226735018401427482267961600452279523049470792219310808654709100692926826597753749308110363867231602811227945224581439043966089149256242611629043084702200474102242905818376817841271459932838443051969632342838920826870752155493070992103452382381318160783611487663628293238954301135711904363764724045563458697593612833887574822955892688714825153941964204200155466757565371923968632933761722662906530542670790111892840395747216517123941487124149844092317961742893832059923258130287719020217806542270347065466366335343619195610031360597099582302062803336647278648594072161575811766119307754463074088339988709992118454905731409924444404033502709496808540744868162269636008061067480817295245361236049914780334378927832870152742490245305593938501476788809013289698480511596461880395165316219874296730574614509022566754706031562173253055866459143308232255518499000964849736413773587384182885332518710351836629433801154591375410785133381591487025085004000658017987096815694309921182776377347416526155288188342236726017950532071918393489104430527972823032709756445916777895855735935550344928271462733633069430338090830123615356683258061113161003150485572224399978866556952819756078159200070501755497475665455345315670952580870245261745197606938883556306038793263683676815926090754878118985022285875596852628003559555353018559155721800267525644747343131824733324197521214324889769232332150340323280083204358150958027619704402426358505223879545434396669755937813977215486879745172274591913193706190272023837398304796189070433498496491894982775501684558955825681871903486330471634425099958214450165930827000367068162680443283012411800656949977701249345829836684608829177749836202402400017896223815544287660626993941613844220382318914743710448474003180130953749704463929837790111886356888049933769315776659699721927549706953531241100632395624676912565082282723357482461498225908704423371799232955641342340482396029425412891144334689257691106705860106752342005049569277948396738701353695466340339488340329615264830698005141064096606481079962229686885564368670460755564767901604089148430796659811763303771055069095217122012050884336430111710469315388834459399384494668651550711103374617921679801489355157790687039909551589523748097199604094605625035124649714416676513560737903506102898348813931029976666804057648680788269557353502071755700417958485672195952954120472851076502614877694805848901111921080624842703434619246465935715858367482112340412448152255876775596359977102438694429339841696641158210203754374450951459122323029939709995963009892646706763829959677131543945585407828003791482467415649938344073760829260128634172471879607404459490592771873143032049780219381530764757687072558043756348058606897813361867048524422456012412710324657020381790249548147513390941120526710027275367605190050857836118336117908794797698346725762379943730524974673132846489945338890870040093042502348314767513179659364159916332911951103970487768729792042377425008250399983946322158123888468965345714874219815260553474932858771746962788915038283656086556388497300726712548600767770838617567067474207123259850786597158231148030526785245002554184929407618942615173743935932532176217752290533371496564132274146722316240497148016643401779407487110321582497196597978662343316412794118214846158268308151655766967936917798596999358395749273345905736010968900836513028918032062927862117300674499504812183858475676565667462878123477812844534555487978440042839218857935860650863430768444788428549408688569636573452045154281478145452114360057368279366416336805094880812281738862119610206912140226479262776671492377848089553274173855435900705166132466482814987058524074414722196822383227350994351161652554587468686804291104931314507197694174978783861694474577400302258166031142391033829612015439777324827419302734557642783833124227351517428599119256672106715611279545557495795993884533585796622913841945948176009222407238218333685745857928239998984949018618681667414118663431581283116946893504393404691998580207899917632686011362932451305902176388628329853362053282637034669132289765691274988818205082874724717017949109820161433340800641302669833282414138205135273217902759867851974491698747945943319131535406949337714200129703881610100429900822987635819737476938086440111994378673941447522380736053205767402483461687258494115213901712613858203961675600618020971348267069337555134819864397446242799556878320326172887555933989956093202716419547333306785359767394615668477162279338691793381865873641707697901442023351859445175392614287011468538580668151766862424894277901625772697887250361252918531568628250458302061720416376785668115343542167808545512543912724694708340265598311377772513430409584726401308724002177508861102538096487920306662622658728086956476170732404421238549895838687583166770139040840006951343413693004795620328509579336672051409144689527573403185227003498163565045789875105580811660951728631970361146317260942820933394022156170707572969729465749306234769688483807596150254518314604992847224254368115460504428565323023497292739303217709113490417523229274588172904987186857399612041300304476027957990782576771843389412249253076677844342033934475192647858251486408303870996375801077694053126344054004172999490827457605203332520870554891667544924146862795841303228578754172751560566851129044813429253055843064940591473337347438321402717909423477384862843181127581163322126663012380489141736312078368656685111063436413833922445634538634906834241886212192518850169089864906239985782181236911381934865815312056015147967585687736642818376845238979218141179356478651574295188527487904050124113131623977544544632386431096206947561724847309156147359781501100325339130303339309116718261887563081999411385927349890663787024660553093609396207850800355763235203807611985520632359140057143301474768533303015578634253635382968881736852000633802907119666330187905347892351679987549743614706601171101162460561428732713676326421995316428052330943212137534891374793975280345332637059070452533179436391382848945084001201803071971630743423906648884870259638282424968701313083924813142827786325128532242206535493790046778201677341512025042004015062663106989488712707362672423371340700374511110829759708264312971734374407703886971177032836281376190831991629210977959967332229424041760252027709582518475023306135354527190609186789145915138240589346507317063198729062132722761154559243465689066931236774815986594474817522057859643700966750509800946694726773467211342769376183242986843637064946224467156614290663114551057430176491455175701256067970994384099237938262652195321510509167827374635368750594191339930612242701237907318562031322451942370165706666790846712255216053607644881157937577745209814982810091957311666163267556162134915787268229205954374136932044431584349113792065199095016382530736199417387039842358561962868022534895556442519855091431156745581572602760073153626295201134183736832968570872004288275103389535777583139715698723743034114910538352525245825503887543600428212185966263808976269743540219519990510097519907956793048918048834253309402592324935471695506550404114608929519199873645073825229927872080235815544581389369470253961624386077830690321571842808280972248485488445044301342563696011778155166375024730064541688941579172288009494221989265227355683203389870405819604135999583323706979290310206398833276560771174800896189001079363922585527268447475925354885277335936931454661167198402306711101792919575173734412559743469581019797213985350847396650282267505975166326954474016540296241201090151848335170119522604846369961905880848899722591365513738926014805470450001208025460461219463443522481713872242387351671524816487535984823033743060908133602602545015765040532946043680082057050630984949713859242889654982094212608945197506564527158923550932738654896087592949223037934087903324785731310453422436310099642533304636303959055288164029053680616255898384967267025112664950530671917950624993516230878373604802890512342136695618579614555807233954661297713093211902262485244599598130141737781210852620658829232785320034477783411381218037821743403013420658489115110559850748721548889004251306298931134660466805459855076711272286151952044798915653168593872201046392680961586942161736204811927700630365334660352289350123282847351720689355130964550113453206383656560305076327139931314355172819628921042751872392356313800692270385229467539072075238257220563720902672431180106458002129514058961016551700639937331230942261436662244931623640571428407904013103280386197726431850022095196438891170833685450553247639596181622961759735444241164014881358469484136720980040456372956599905980167087785891684796586531645544761352560502946668332194096628572092522011708970435298808341909590993418450271516126400306873937931240990563906647188332879900817646248487946605320002350732341979619518296752324479231839582906652391869398504011435312546864309388764291096887516833753831033251627809122611380028845981384718350167019493951594383409345188239241457004583833821566211673401298896322296108975166671478985048806628864972800273887998372824012964520288165545683596584407603729258687056885717726652878686326724533952438450840066152099401663949140781575786309854864121741909217784801432409725969460578641083679646150255392482694318843133403772387356902744856216650900827683318064862555307561922980493687465351512383637112508000859200037945735948330650384814392036313683498463886521551111190796451076319317294917371862753166344339856154819824819721153798085007071691156113819754175971088971915974037606468340467914858293447060938051750036764987911604961818687123754756010378679123197538870537719956202283089000511090234730141585696126010018406671399453001507726842935131746391316823154800568729851125956690740616597369884103302687538396659607752857257991003687741213703935854748545944840288384300647370189866217504149256662653241311429124081658263023026655310015361801894954349657215325991220504141240505903672738667158836974508721222883100440670335289567786277070263766956664158670985086453337457877775162228998311006771604089543121906080262169253853744887783241914751511409788036652492468718418210868839912689848037222283622990376763447234394846621640620643196559645425615262476748316014434825895705287863210183802372140448928843510136508536623630906359205542584978772936768128330226531803355122264324200604462704733954943788456188845443517347593890515574041245885500397084246465025920391587570685783688392940394117413114901889016093323690810979394403136619234378699056639546133347783974289841524674660458043622513163316657737731959049104241285383738151609918356528654120913298819335990083961835058078440751693660266053533042793392224499271092116277594271670802502143420266926653181770385102997138707826950947064367749453346580250821137452113161380534472075854163900119227016606510508686089449089170604560816408085532695320036485202505496272830921242280733483583001830632764604928659532227567988204808481685670225381562539057598313098693524632863718548128558626513725526995278364063943812431325405596565280775232846234776241641389427860785185207689826583055418006237148219712999344557168122663360469873680434584779385307356950755063795534809377631649348279146440460787197031377905413315095645627046694480469430417429164724095359146388594897207881983867996331772403285093217165118625441099060637392271148484266052493602537435646587264075912517276623147288824176198585957674435330620194049972509573410254250267859538382617701116156667842420536763487447439648681248503353183440692007558637037246885148344567722273311110632146717743362174305343272663981845458719071361183447049080165693237311748336946476611702111419840007841825177080583355608932619489672232404184324616136252159363024381798917195952041939985816960432842927133871581421815856243258309346602622618284872253716825083582752224149944580499934787957754203124205751255894327137285970030925001660493740447505319980822084192476991705724167857571097761577774809629033826120672711543625711781143163791940478843241337221423235755462097437184386514609135847136932496627598608307212791110261488324465023984332258442549131400569500381391154256905981060042682311061475790869727688091409861952793196485792678947931622451133006707709091815195213864172220704360809653296343683731062663283598603641622978342159717666853285401683613534959502412786445849036345083916668341169879297828261972824503994464035922649265357592454680466679931168294241498358523055411304514920412751289673737912793057879016326883107273471008237786276674653589264080718849265225673464374320312005582190150582119559740512287555085398628686468292099926314267802846841291266113557736925011250759861221528524564468654885093361575954748371335677703536249258140818762516655481845024748347813661114903533566622952555683699537745984441591746514005069703659241363106160034559651763810052277959524348004082310222024021743695763158726946847701270198058388649227478729902456545013954427722092765830244463824655336098177392688446339630041493808369830948620804590296520070187610912765555487623094682354933653662736358451816821284482441515913176000164590217125455275992766042831603698537706483799166085444127678122263504738453082690281359279311215703524261124970597702356012585043050830945284377073425835000518987702194915984764615876265255784092258562789668480163639154059118346970425715259820544327639901120310932304736822773139598448329503363405387099190458467729824380414027700633444994679214015319175129316448017723916113850079491121209464298485442663851115887790668153155300229970234921392716600140941577220635424687465445518563851899422890219314176543149717325084230479144572629704016665384112892313756897985260219289893649325397579876204778692115515904487345347384901940141123428760139805251028427393211092252346833823072058163441229525804506233453524007892405842442662619012458654116034188353323849560011620894779917942188671960965022838309740338537752167667114312039128059597334768211224330063533691810399439792808500508516929082102747793921200847576623453118401165727506887995289630291027986911994620342658988921582718756898425319636941420252197204214126385893446128843650026808129843074770261726132063734057237913175915121856193307077576409048354163458813012777452155978101019721896736291468952040254230735112295804541714816521638135632562086004386357814988601135675431661151880776570947726252077677331892302442997747847724086306547578723213208522206197815373494647859158745620919954428834321638170044495200823685744500029377135402605563591986666531530512492926643098071792760176674469463705766588521358905428103202770586345257832065015596731603309435805215896500357367691420204147529094659155621335612177177014422639829876270155828987338243364713462622239766479264930606556640004164795636581374061419095294623616420873531896863384257242940482109621448472141811763821440880692328588261403853011052977554210734639834988708418691839457924575965699487522655257764826353630900731620993999536655764297477403736016321836119806486398078430001226327550806114374835035579655549271180159761802304461014166170989415558225417710155113979050091988737395886393659074738216417788150562946535519581307441523328332533249068385735894017244564922216858469414342297427536921995572726995463526583594422839870821390661398865885027127215987055221098138480616558794983584198644844680786025938070202841461399593643052031504675414909938166574034092452486165948938534587982579711451194087359405260347701242764409253047680783818368523823187476553513140790812626536572190731591747956582236959129287372781353437212768668399018207099434180044864842976418936972583915088084632338772381153321332873596018899639847280986930783267922640106976950831251024466467434413049889307284000534818030198038931520752247842045387885147981828345537018535344292149990390372380316462537843268177089538620442377972846018154544695395085305351581466478677319731306524721724864299382632980770596964699418391989823921888705834349418955241979583930082743980179692524514735280496557846801569572242727271376657091830048080575944206370868550354948687785504611906658099611928480401192169661743712496310799474166080580892222591268164142105225514059532789287650115264623929662788946360640281342504681130817580014049098717093716602356405480607566081825660533139078403756939084035687631431732433741945315951905927837253629786469654845644508962140290018958004568936112335151724451102436142341318763683621794245244465195359852331816939951059864502606355844477368543944024871140884225235872620369191098486811239805155531600879195654276366273848037450481037106573127903875116995110596817070286188939986061914573889999139436582714058326429501461474845446345420506559079492614266077696202647537764681009341031563395026810344758793247971193015080548921306664713057001367628658968656108034920821780656391637578203253474345393186895595055576799938023429012467483747060448512753857552231215213931709483259298910495516933806658722892743940124753362115602094313225644674028925535573231017895452620978635170238587042089089045495155913410144948295026627847450430255622687389699084340348570033812554541688287661082070970199057796370467722535305746718273461815384455814970492148338756116705524644751735136287950808601186067777994259950733347341732417128210399481065352484348173425472916100272977514712085283090397032691913539027232255768814675128046483102404910025389073482696281817878380261653669633260544910383959358892988563169307738319109739102093506441758193778921360652022046960591574813555958841417558717664128951880235560046920691001492493401021808291789554378506685032791269082407135647476612331116160675680229086335127833849604677192693439815023537728323197380078523654269612077236644075429143243314234279638190774213534440893171779112760322329983083181258796596983759908255915136652816394843178072802534622949620959755448049502134799757588537014918122564175436661703624399668326835786607028956576219836877268195440580469505811527070943189530520706492214080281376129929831875001236168235795659359245425874278812645338275268302013061247212914991146213379947294512001267154197676758423710951521831434669417597850357084631353587792201843498003095484631269627143507905626704693585649374786679576185723250283962457682658891141066198325800923602521440594905585563588270525854443488984369421504050234844802418270320514439415608242814935617586303078702744620585339970751742231041510322334412635397673834807354879695930612293031204859319937196538700648714500436755711224762148629987127664471767312383385259000861438695002727615766990159614812432060343291502814319541003595626719674581643673639394150997220419349425190967164304401801053271293298170651539826870897653171752071680175009368349743225877065414864163468891937927730446685831431595366638329831433810177312960575808964018375146535115287549070224676121594308715726015993975971723321379225513304967249786486654622929194626313279995987026776511934766021153615708754642272270057466521881451424391027322561942362885845524981154654171159922395143749408904264965043284297555001820291307016374508237901881368857590098423166902531725424792279104384128044944338582662948133208871808357333399184920918066874940133013409004538590836681613298010749631375229206622794073717345103255441560913217611447324992873261808048683777776788950661628553197186356981301368833055541025111386467959964730229450775665590183630020401844891066100430916538687920929600600612452182599719354132080620636479028311266672965514939858375828248480326424714740338836731542998464116066389820261658230691865982099160014009681546758037571112702335064244191947001983946813391383408131493130777441147651477897379461921906968723026817165797233314566531731470900407089254683662846653268847207152718739202280524070634534243667703109457518354006993788895494140208051854106426348578272513732784412588287301833319055757330791202530334407139224209927335910821356065128683633278029797979651267723536850571225158672587457893749316930658747334727970719830234834103539262078793549164740112164711601804320033934230989769189865048446131387835270991515195952645530971087662168468151866729390642673064767076284809225425572401045396196628272411690547483001951280700000791413677163710074387553412287179309267269650337876816321543668884640186977316484618744932945682832291515528043103230810758949023462495632751257209778349811658924167247544939441316928286855874578393975749553699602105041036010636357263691704420002189023952814441478344798560137640395943863197436571597295906462134669950662822119116846243600482305617590252025338682719155642327612877764930627999601454603344273339576877307606105559456133329245157625673001120039534461880588784695775879223659706369942711490092533514518894881125272800253466294030386609514829234712745227278239129299821610768888895955149287509959585134096681526193700884851863122191683439946314765563119497107874923762788229385418943094672358499578785615342437628651506210065607691248688100233184365146150057649328861953392788697820326182314425213214660849038771738279705145296714273978572657382270059138241193911392023356992784231390843280901878309181024948548796997112865113969061635754322484729017001067571072460181170625433935258616096891697765180460803052052546233293889191396430222040723001936100639705188527481053747028140894382111835358073677172538891786499662032743429950850473068228292870264867608455252596012062159025831164306184356684372427141442293639289995765024829489896710480252496674991653727536413900658949957409659345300044350557958124260376520288191991456834050344018336649131188176938847871002300059386021242758385003711557661183220837111480077929000845303442230202726550214502209654012171940933170285666688809146687303978984688909300199061671227035041921700693832092697920261117839232454469820094432668921684084653982404659729472645364238775644016269154584401049263240032320131639444987454140691187994804325270919934688121214383751087763975492317308300679651882253753459136092473167486628948561104695164018264541692157234651023424654840993669843809631933131277154550263164978633410115117321855868069711727412844687699561916092767942090827638732803784581317952163861344300344188816459753526430393454191734898206112301572930951405193468378380081879399941958973488424724800812088340830583612029432360311162620605881359286972752301507619637062858719163485039640629588883995356100164997518434847842653270151034700852431457623148689278162004186674510489066736153570122981281111940416373348956589555509755050171955420127455383939261598334934711440160816235857430513951980073740175485672543190010170503044367946311435149025303806640173023572087665632334148367626826701357791964959177214839651323769514682812906563442678839726939543175481850020331322404441687604121489221993134903884746744903810296628768742248942741242268059305090043142197173601206030230033740399146076449689609796152480902251020412421259851609937599593885903303519642615506633266000152850593041924471243056766584197303604744893032622654031146064289527988908395044816552928653013163923947183133090778775527132165662372107621334065785364304163798351357344452965054206911028544862475125185575223429569259730517101141451150478381800555026023780487496031694537285118643885362104130918270056980617423536559005591317922803420201176035573108191518719031700263699193732851697242978203982474795942803721095452546472238545587464917269744413930662821189638776743242634314453093795277021761997776891691992824063650120503712912273271444495273335619569819179125502072048480275105489226591771004858315933111501503137224754552752070011429937041457910312472524332243736723466620407312144921218316993482666927688745109029602317421446592432562233062631619872129867776349995638746886966497923902877020027500353561354514793300265081136208979077587116901320411697663410591332242583445735769504531829126273116269384222745621477762802737882473384127504355232316262522871036692437188827310515067112065471258075185989141975659402511818818501577670757864511591098308216328394388815482797747806413071870211239003587455684509425032565585590314635194356627039135161430164830307186917995697285620424129018229750072096928934016660627011266211466326039540808983947394552754565432789434868101737298618186586756325614849747341725350922964274800935641044854071888499197381122957317121553615910288859595523091585818544269886301424723040782292709238602219642464912137586236689237276993927174683264400070769790160883665687027784091956234668109086313558359430294124583816673838161479168419518849799421229712869975871512383902766305564741715408731550085306772252490961791568929778842559870225975812802023152552771283823352906579991397894142158189528428227675539475958416211286181005717858865800167785336058248349456284691697266448075536069060810658283645691645040097903849151272468305787644818333372777247564413285278894967405025233380166080762595648678746543269725643154544268357243196630816424804439868757779412835461388388275508913492883050465113811550230491786649382743204354904839222982831063773852672277940986544758306383952838085901629869330057460507673975307691482012496951706185183379898558832433294565271971653331598201107177106720842548612701765110880973020331510965354561505897547957126464209051470652011744900829009845599743968031689007857003779265505843250739183065816854466170839761747765247282061251863832904278696323539253387155620414519017687601598306513652098495872181162957139572895254435733441534394450861255671711558452953025210035063941369448238365204936046573927489580280648803113981799947593879787858181720717474190035218538806427944776337539188412524432862098969659165322593992193731986933562591302557653067567583583136948403633577103131650120638191849981459944280833670121794434707992854895715244789736803487556957652339104623234421383864279247782904145508927769060081161371749265381323454150304576536736025065276207953307573987545294629017366066776999780135251297954626019701479623320775061865294062973939368725916673239666609373103912154347802689805225144317355295815597890294963929584491593852031658075823741705446446599450444002270883273801978145048644306666369268571067354136830335870532431929050182938358449520837855573373063455121316971748367336193509630806145927219793109070606548134970969920404425724451318725097751290657259728388968566161955863936707256895154372182462539990228673743740445003585999410182905094869309507954362035291097711002595981860107494656677249109931923258286612754769212252678974329751793690276193609244245802878548137969254729277853906122410471802810144885258861661514340630276258293225856030620706786221401217590139727337148474390952553142897089540544343522524563669650587813663132302442642796346367753416327381930493699491698978428786205359017350549530541611702774690502654409805692141834594335944645129810096686093856140644034084379154157945569030644486216552042860471250497552097407447113484257306619160547418867712326475913825570586181054005784087055788879972105883532196208398064456341748101679567070511314871403881405186139611981582897754022776522303015920303917482138981179181087220486496490860021813869672586452715161739680737175195941017434345581267990169946026731085000776586246802066258617175186070211695352341581203963690369964976864380194684795144445841874204385618068870373482920897032736045684163648180759086066205512337818927008088484490952118370175481965663278866038446350642998353235459241485757113635917600627132308235006961496178600107811155035185339878515032818770536504234022536728771487022019294884647691029524999220849872555235413325781124655200382638944421334206771671598833280244645163496227503638991454150723352872696357055984300919451765765590909126494251910415262679369643123732465365294223983632621438002143979778707415875466331845919274336132092802229750369799585766185359743062925525760423157423379714808108860358669481956934741322672716320046921856196065503344325612458389989795638434068011833963120232206360727946757162539679977794497283635722838899192473806324818888730141015909849400476123886315814632378778053476173134081517393867112933035186779370865679744588609621374454947391063560621503705938680803756982957431696099415079162617585233225826339998536649503567505146620554194349380369912665443378645241083514378705508226764646175022890120161794229990778110730866849657975368546611876430547340497338250382769701936801655568898703163852424527945247464364775733004134689102040281019949018166812729870887594502770937087207875113179510889096233131631399948767647887994134805652804734659052927207349399916930039773352531639566344409573527183939274892299937745538545242403929167017164917403309160557016974609655235459097187570210979154216266328255271855703182404389679876364555228844274431084000026290048963810042544526972658677431465418499946631961125687006917335044060628709093909153369486982208474172184848290749765679223778000092060567339646267922316006196802431863055209821386591684394715118798623529491564620063367042516580603601593961349913003199881747683328837480395942810224925788245462788088321866253261957525222028090598102394622770376694273347967863153012445642091078624078636749278804672056712472315966197539850776502196799039623979985735866107492030416008434186110358176684105903616444600154530034560289377220874461951889278568800372861583307536177372088928129195844109361917239384591865765894456928330732355062973989175694540937212598675247841619772336393111652630480131516267372571662198878130392546653841249311005097954642313469653309977713880298563843932405079415204055695062085993146841686030378155763432375760813232975368491349907717788995332151523953849191539898589694955600921734329172022287219752604776721208632374448835876630796068409754405565101638222831911480549581462651359085402130396311545865643050914960008698329202094338502753874652264138559729131604499478230840060512877712543327190972174678697198960379592877782125278036958143844296748298409431654702618588894690927955956799932537044148191382714520857436825779280203952298496473365193416996110697935133241711253930906563894161690724459083834534867888691997920841457756761278554600148503929514117356660774305393771723904672824142459194972137175898846647495708150011506059411722852011354789874543768931517695773775850799936958339568882160213462048344763991452673478785054804434437364344635024224416655209785946303527023529413190347688328042632673990333555803588680084642635644263857107567573592124837848546246898012465756834350031189645551949111003344688167201483400043793775288120439423257552278395010230909330138119223927144240176724907000137824197212652134564233457538269084376606940033995062545825740590386467783978276585351257672521425887356824751127253543604452507970178515198679797716703744216952498992468187669656657105976251814487816314191130524386157728724850748938629894452121573678809239443350166300316604146341479766503006186138100529519874524742264488113401676414022432642623551009201141997983270572244004005082659472657890659920861868334932148504171327073812493770548748455973932509603258377355194724202210224930472187193800438431745220906856602027563486541234084988530931986822082896516631943994121796236604704991436926796287331175589201124218631433528297336332557785540286879743666380389917966613013434402087899317981776667820188478968389696359399746331549127476194622310603492855783601505515890148683052716043723929259945453550384000280827919622823336627987401698285451463492526214870671854174342067813400629425228369984854597579086561367018985184081612417235950663338706365112332187672849463319762895506808251788560155290129160973110282401236749775236591122067951625769341815800952177922708666241712811098414141390687111099298053550885779958108675559400195279897667816167792313803635486974367280768160475457541712643499849507569815582774405329344839243040939848416542366329545481075175167551804116082361619587824201799352364852122717438065530170446792624148662803213150779968642660899536723525570225216294228600215827013242623128055835523058201881854243566536968739201877220177738181868097320367426157983500276712501724133037686825579449648804507739520112576461626679900749646113340124030389129998555622392570689472205561027283136099004052228325182830823744999686802105675255261559828778899653664496786516768975704300593646854892377760439430523526793186010976599932902316095499091704841003240432086936328621076114417916440628152070551809257120628346189363602209505987949266272203805408678227880792299625454234674305545156437675736811550481394804986344356558566299033378320407183423399449086470569672938886991861616041936074790342747894519557448807700460423208523218779537727664236643292788779920998287007802669735110661135110997878276382645251091431898611552821278999436765659243114799996657833711917963171109373564695167029653589365514758861778710793932714337431411221828173487832905689757004525428263187785339641489638197733127364496855273025424095818497786326727847559626348131436705193856547764401835646764942216186501120646996182959444458305731446715188223557472056831897714174190528328775060353829920339437151131134218906125396154799511339226142765164954940646942919813968413078368540468941059237687195602486342984741706734967462881886169848136093964527714173099790097344235260015930774763676347870751479072924106034114846180253750707560336039452602163637660802647334800116117320934366211600802568646832302388815565186843150792401024775547474224296457549984618626218924479569879675093387515620463041400673443564754275158006312532814098681585699269641888944621961633453997345964458239221686138556144235052613184343706176003115807588210099137607693718149105397532515780700577756840938805951455511496833897974566805974422548404402538427393249326056166676188918560851709069929707408659437981682756429200668886707243608162406225155188343124643729596334455170068984145534085103310444737616511019227362831221437939640538482056269814084488756911287968268225220556731099903545569966504536149079669173837320739954641826330142670736769813949701835998651161325019613341681699051249320323399121118950032263978351425596966145477692892708801132919626933247380060448486346498435300219110781596414529549782980409710843214925598423845421756736195962681379988908175643923484017155087175548861657794806059242856465274553082603563981098896045571547652844148685136973247865861423834566910725890044799295009053297407429839111689455354211094719522811323052446288371191916943281048973709871676596626647137261925459150445935903018866360312474100833797057633763826794049943063741246712832259521768954728880919521015078986601691850344162031419838416574181212545361424472806159714167363701502596532183973228122604442800544767463416590227577133249483880548250233700994444613344189892672057438595482618956969797117653953979720614180381571742816694979473218938406384735792336220149703413131806149088708675808839580868305971071846705269851304894100679547098533587159670094919409371178422649991502282090258438736555002429382245637106287548110868884347595594283661822879544490598271786617489954400519602863019932086505424584527715816672046682358155067437204167285925822982797942006072876737091614076687703616584387909989381703135837470080663024288391710674355074650551136040316317524946925403735041628993248878056690340452298420622171087914361951419194069508587273410362909755381464987556125314588319584882444928353648775683831310312175227185160217871127862390795155762187416287911641667329035605628612896431442731432282955216934663044407818756204667244280525640880199429318117468663990089031623265424712573648683602278418359818426008661310467064598206444911665790986899588244348029720624730392366271026033204451497644642742281069637013646975535203551840364574111430683191335210463783824857585040950042045773292108006199720633574563117440707685140982170837278681089963331526623566194421817428302298655723130346650263124481610862908248068043324240057529334659820042293243223141657579197199107554146668677289339924074903137846143944197423859120278620995504757018859879847361026319973361849916858318564458517680645033244052160540884291715554169732943594382762827944892993622472758457046443139466659695842855950516974441752468754573551342041559305045577657858778760751110419890962047332858289894706860891801376439865314886667211271883190612952922440937741688444324986506282528929750272606212051708556755256473622786129907493642035178619412090011111282639749639516083626081756257014488186948676515798804238580480811078036721293402138129220375483568565312370476458996267263878701750781272967657661583588162982731863634660440434747017503636080512382076557679280784321975377470095692824639190283509915223016408542591754117805308834918057392052610112083037237443590143484663887421899162677389669501470407917160736200158685673520236427266308917121331417849683343243783837853320285691451937491635663857101086165909034812639522058645056185696934339052384343228902152252099869004418490992674831489717534374263054973015604508682230290237413277599227873438771118282757810568815391188562255625073256072944571397927249363194272493891347358459947970847131691038711283227999368896591030766220607987693668220543558463101589491478066823185547038303057062554422946161399977025846599240004166915827066239304694604446178300759986331199731467460273482741569209209733183139991592000493405265365114070715894880386951224448188967493532373083983038652815863036147434986126974642563337184774286880500743034505704626400422447800400651991838963194174310569259026100456098838100863195883254173897414893075580713151664667690790966004564561942128845146776176184450093223053690709386036756125253831282625837665641837017996621337111612533749654409931409777724854307578851674615787868180781182508766998599729230609865864657489939560556797041839051621959775317350270776249753935016699381725470611428453692200160327329236056651432848744764100114960287682861711350606021206346825411946586507462197315809651280258611725273007206373408259869214982010923509759451928171532311713874554497880687257065490119535900411380842738353337950775323744325205654171967452187344134052190788839643018251630772465893455077196210412405517324035728869274296191246383448350367104681757807641874066815596667766452148664973716121252602324231358607769434217995046770931609984803674411954613493574906835001269418890362716008624506069741449601454694953511097697640876737820537534995613361562203958648290302473669221480572987372602749455919467611795380235040185260708376878440576096100306578706952795847801302720364552572711750104919512407817698255675329515968787697295743390289375516503167430725543991437586079950171094315750819669166047966431643500174177737484363072704545625337501678303893864051090555329655958769663244356940367709539012518120074105175805488930006185185316435032845050605261769213135081920749188424031185623354689311305176021992959351364083626728555860824875342209336842793854429833653855393472586457963312576008071934226472341563491054923562850533207579536058371239409245555516636891655220769245163693143903326324327537970038528078553120709096484225597383826607771465111805593119974661048425243161960707686151740231661445200155997139834936656319730079943347614944663509107871191206915463365413198936930510970321387788087071840847395166906032904417683539735196791974537245762714063197532901636474676041524094155292510892793716963273264566456848029213029665330450410840824292066657152669361503624112315865796682064474902520809859905109560514425445936324187292874474768688794405582156520169335992317956756625677093837300082576898278704614311495832580405228327688084401736399366136095214740877718437214836062795255311697934608775695429919894845951302880394055653591288357252159294441348941623332032779560052843675244180605556112088837045497262736275945608323018145860334371569572774767083561499261466502594572658948067632896542625804825826749562357151709049577823733153600249361216296631034885767926024325483852592480749629910651838819536599064876378085217968301091389200020272581127700463188985402523278082197148998583359277781240968030535624352722061322775088095326481589780864622672336496841532250860528592293121689306952086400472027867352461104780968226390494617645016193641331162704000802223186989770815583029592094254936128872367592275730099925137666999187358029442695199554951527239099343731291828070580983078504987948485955922097387998953306466897899526162286866531671894469803693834491589741580264039848376436063333760817335562207179371128058791937400613126339873282726083582123738787131448283034818557022676512201217888430975910657711318026900495639816614467109282505112734299634572218408475231745544518468634182175562434588290547393317569344555200118785754586957219848658111521587328411943715884937228717169425464213608688996521752545035186234215850606597893576404751248618704232750149626346871342345290117284057941373787282028820505000354350971611659936912251597367388498684191967264607630788616753060114025157469306718959118519831452506682401482880014934874812780083428330814425524304969075677853625875540753186125049699397498086764320920699001311046587690189874533273758438449001928236896542896796533933979584872308890924046236919197033746405382325979620018770751819576463297219816205950102311917464979914896305608107010208065342696560626344828401549892401813831006427728447448668497242674149028213445422195319050599071230627331707269237813625450175113973253583918800716406120101775435629776889442452701957142955898658639953341377305148923757207067682879205420236660822362352050765378777569828533936795919779271972769500497716331176065810379668616161745913454363207588459690077915867582885071929250273113506094799477506822615021588112285948760874304264067704464282483048337262580524478084228762894175260345959568526467572409451773910464957808464455668232730505626036658805214425027708790957333384302223944795565842425206839472529248539203323358275057375988624371005785435942405674617232229901389104086766184898365154671740859991427977452544020226418533879305187795019411742005112487980188421817065589952893709967909959204362273914602245197224637449347509173878065410484946914094781282340454672174463914834116912528296000829489655358357141625885540673820076967591143166514152716566741690976469715805914313679932748864924995264403894535777982168175736932916552314828142349808907394421233438201895204593122679636057772040613521704199910094400154288103400625967491484887912944453764495579674370933634798569425910381562027777164718778167201007973377526131275391439261948437513819047032117349094440222033866227470280629149701887789603858108155354315516404360686281955790295378497430152168244980608882958445320857796231901296137135949135154586370025245426499649662642704844931171446712100147613847975011116049376088966491562644409401904810456590596258991267719042089253258899332548523485497735191681742469658332437185089642550162811265667530195250110513094440517719010805395833273503463272884813757958253771941407514075514217583404775872755120116259581628719084422140639471555829115553756338157048799684570615061029659709249337613784782910151305421721115248331159336427033687398054552508583034591957759049982344950704614944769117323349734608383051104783621343852307373073349916060906136739402310757342913345472209621773859427129666472665049102053293439269971482326856798610096189184017871953712432214903919186205827367181854729096588810109267659972619369557636769397030542880615154960896212044262012565870710995131743440116038550940866268399995498846763902456138471582888349593985048586129672495370758297498510392339086345966690542244855045859998310072869905657404855613606096979888716208223334347240290775769292749150542680754409851471140743182669456040923777114772374554112496292239444475946698584943402526768646540554960465009728591680407028884616907679997741646956772965701675304993164387492552328236931868195710635975982700274042802092009541919510840440395424919935082190940801977641582212969344562804754787054847848192562965257278739102413126993978133081841250764446468262064671101221226532867692930819361622443178173499816369088634726659071696349138032261378330170485345625415798586537006300792730353811900723194440723114589975399981816105731950951581654454297168781429992607516802739415139021566387857374875214393718736130632805711617676745546450161107990825666409386567076422006404923363063053652893404189073695757328957961443746478536185125547930560877759344733215771530805638254242491845835756819042917997213387316255004138701690823393639729028961049496914665481040796176720484799389063568249601510456649803325862507208282006344711735089585987361293197479608182106918220130263866854280800409940399335608138796824432958468205075885098054382646630059174554832757731171983743841785064048397477301099431527279225600517436540837458148587345082969979224151990257457452811398831593639232449395395567018079592351140506664766089010694994520337146070242736544018049769315796916558286255096223655361936067822574604480259553144890354741670680879458432509744194591461008168888721829904732960396513548813321506510124688011827907194131025328861766281728383667327732965140283466531666272455890647375220106385232496569201072015096632645189477562379924700908305165861149974924970678748439019681875019373706148149471800547448184851209749537831696265522867178808737471156506388405160748819890047910048770557963570266462148948865554568771179745400885456355910145828368262921988074193381253122911558881866188900670885715976769367150764446349275893279018735749387195296492443090915383971439193726053617254183388708369529558276438302016656828423403359011807869162801604975178790633112887483567852142160292167390868317407080342235207193153306074386186163019180343864343379811384490734821978316596585525733111145922129862298282870379181631366506537212335389610146768167024092775664774477092009527620659431797488240208635562856605342298718428987405903763334586837727915020603997216124523787669019821210372552404669219279115181416836599413932750449808932919645547365726516590967607750082458219261348401769273508719916895905427803803729974819256886302848051196497466682036345972288363896610129593281889313668148256847460815716026911446560655397712271126627732720162531676825936742060349416692370591315899035431477050494794824149872007091033535142123968637489471662473415507370597764241723087449678367144306562902534551315483804842365997250876073875810546364587509308486007174360718001906743071301570194076292277239386603136425359479239854008186424734322826065942614234415396753587575143850443571228058151147659128450043589174420710561151914178783210889612774371787335819268332209911838273302871545417150611081211223855214901777958921901357885051343140950319737346671338068073076124443288951319949751707136824036955952508337782016463416918273943863646850970000707664763273509507839083023218045542475716112112735863996554363187207372596115882609695843311833979831062720787881166676137127728010900835265309724982740361856364021454670851259608178698021500902513312568489592110894701656101499339160629617531440993389461653588020584113985892480641981792613966391668053306226820238671498333455993273546051825462440752505102142933968850931940766404016992819148998629513171874657476388469574317615621931287171187330571572730092949798488882562615704441654680418788926345765807545263471287688412599109917855954670509457227712479934268980355224138509621239446025232026945070864445056040999658433270220253137754808063196561207320292667348959144299589889608315551572899812827939868195335696863839940122847274578940356406819970374159506887259496985895713561129842027401999117105961508193677791552686448768676379461076701236187791614811122281878968897973360092624593357011203575500466935461662803791999721403479385530640693077709438839787418341796986531655852048019168327053363844168125057622227154899353456712700989850840821199547500874826737575560281155892348854112354359960312887538001759286037221370148836381080102542679462312741824299903297229072089979137479094077793985201981779976129615181712517852906683052970859677461101992445087017916132404933288844216998222768145160422051821444112280236321560939501240016605428355712612149670044396204154981491989233658878080616430326607792555951274086865343969409662791647188577321267342433000254172454804625029234069923755672202601519784812165078032821271711511053960904544647138055407612255160176743861646361231714986069817092518883722729094876365776014854864764674437494511275616659484271736689940808004555974994023875053532197184569083821558462395876220862700206951248589692040124073018913212065616990711012731806093504245240022841352954537083199798368072700431536023841297019865562768188554492129284401363308695289749676346161635089326191852426829230160883480164118669111155443395656886038266965177019074561843791414765390617269904251217420637882259729670060586780774789959575696604305837234428006332239595858128811164698279131084592227678920305062854655954458877567452958706152055012218852915735359904226801741158622450276567899325701099036567614662127141295893496393220422760337430058007090100927747497081992417040403583807571222721148976400439639329269999907753960592027383363266813872521185914792361245458270528302758982698252029729698228107720952671969334579118448088117040566842648889224652804572028019003775015499846678039834911320454487943194394609048607619727644737814685085928929330532830912227330273482691478403123628890037198991070527863106329293856429550681526261661743491445763464307543852570884832996608092838045117069923290748429449305126930101241795433158284824968105679271297143957382370898011716260378413194861752504048063250409837078371413143717314790849979379520810241978291061380586945644969416526438637455944724939323247817082305122466099544466177918280313058310979355443475741928526344305952912141123778545814863256541582243768521368871952436064002319716907274974629618311322572029571738818806787510947999457574943116203321832525491095341779380516627699332960874564588258070843604864704725186062721978591180867156381108880284662735614353196518537588896211578288128664271003953920369725504393919957626239501358916808957280209731186452683634013959519338139889142686430992961761816172379268830574097165005013883281298831786233827759240498409050201599134985161671557334270560356070647254546679600323246881184239920365440491012968433011059521486984517271354106238296363397932898560497028000755800311277021095398572740030624637491332016327906413537179203036033565635614931293081293765810928104248675686513158069560320666191421067948825727195809732618809600222705357883980261864736029583807016675285097765657451759878572824526340659969534331367671157298299854162614439790514397035547430112700342924916244059626345670098131709333422580538759012188354241069782918013327912735058196217267906362458093539244836753063964842329301234196648805480710025712033808874221296985670147450109921822566869659404329431630794135357722434448964032595621186240135735318505708612799078252574009295882073845680833894243616184972087507951587171412062479157916113476039019366431139536979236063335641753187171715133217882324537270524966994225467872595729408029347362322336826583904885701423336707236555398888562937161763223183863879992056830039856738467374183540531100690664712427674801666002246894027031043046553468693586099862597158183380445601967989974481512544715369532108507684591514176828525449487387013661399852811516094822718207529280366369714475170279521937703466117263936114686377771115922456563480393202099215465684211975652848644093459191619661971531141816003069718915492474303328119991615983282369160652149383371445273466605739945013547819433819345410104112788685704658106494593936318051110024065988105836731796237458957126463443357633231938013447752105693833866789785585181091300150886944621519376223639168106770164394145739552279617570905549797226363514567662021596190428583087564943785874433986745991226237405656319536415291133074549789070541898130348491831753497471191052441091346978856497502261299963703615779551245026543329991569868274307825660022993602377088575585765475754194394840205222632725759058455546847064761879752071425276632464688347760839550290960624473835790867403538415745142177955646751361925892354235146731086145165702093033794648603982641603838905617718775333608745491470289172537717240842407174354933110472297290525599878747782550227266554543410970874861860493333420615358899914587495311078874963537365137449505615526771051761678648267535025293640019503980599735219855904914319722669445110873020350413887552678071397767306592435950447765560044165073800589263572162328560987569212406823326121319669916226049784328852424325403642942393766772211276480139314603527474928495111624380228647984674857123110815913381074209661728427013583437912690507867916489723847452912858459196505553349509745522355187385816875296698518204726116764653456427526922895825726042197599616375580375459829869662681379861607970669525796949542653310484361885818762325976880253052313489539394258559299406321905335565992163324308056099478369641061857525592179932595514214849048664519119825986542618264528245139192194040245259598586560832563718854860336832521452521326308978662214806543930734764586840815327298887160777448007389210042776232288750273126416959994535614156771448038170316379604583629971233816978465172858812751090081306881493474044454341052113107474350240362914152414716463211681918297773642163712745752540902397348534502976611973959714886586358657461993145999207767072328024083277230862124025149284023628060807145486144455065204379283313375987128850201006700537496048564120903397528955585993608678993542750467599026011382906293755962380655774975611147020253768209059721812862897008636490982956061019155332178521981066209431775434218547286957813167388330832810623171414647989821537606033886953910611242970499941690089604355081803231354751367232820744793103743797847844768952508037587636312690345223365321018609857352274507093277196576934227470598006405981474378154904616758874844767210776277076612027536885912154764512602269969500870291332007759804328798559476590712188723865536601844281145799441315851464592548522466380758320858999531081473371867441070855010189266599703571432204905430419777635827111080762265835021828054131123648536377781137766831281001310585041530346970605946291453168267915290478206114781418557454169649847768099274948231626118244479214075674771036327985580126130807016237396323601717720044039537061728969369209018328598903085333075313235605164255382819416146735348125512286808365903418708560786503422162339186068036866249953316364010805993499450448944413452608076066901528357109843282580055255681366953166437268213216284079439914495658336603306732001585544691425353231184715177122962284969670125123660875234267132624224784019018841810692580554462388223916956323431046260589095080926668596496749193069186547419379596444817296789303953008094896420845797543033700284195242684108421991792444224791904399977137493658833801274808700837345592481960445321432942237003403028056301833257400705857065148766723479586480248585321096246522731472216216003098961815540660729693962984464665927122160625041718705952326272856386857217731911060054257201802452058886979341950285100405227598746405652264159633440392583508888493974035833991612303439206674081943645192743279975600228464858513702361728162126155800150468509098140488340067209393710629453105795686713341245072627938228352855946789532550248188521937337219309355954406575010193066522289503370014590416316197315671597953162601230685164711599168313211730422250261951171636462106329237055664235596098079260667712039044725256359127986180690212736823879716889662178717973646319648655021486369946719286524771796132864469195597776725907408466241408940935465738889764615530809494897041462422367333284243072404642058946172217419661492582912195799145560528663704945148749538150718312952195396555147489136355185796500189755958606548202774679285343133399092597864080249292290529367230402810203646429942258026248033234938008675835828051098783069001727419615590802216696460659772259814855749334842471506953500685068280854195160445048132268739493777523064538939740127287927820068619855018360952284857152446566653717627864092423024926944120957411223073741313736925046781774176448052351793336934106126266233028054653812931391913978950685168463979258701125562170321614042053993172221221951867880562309143120024062671613923509454604854856886161186913848795676249751729669734219978841544630182540079393281020033539147319823354361342673496698417108162657236794372817411150254274012149066839993306371957942780076097373987400521038993505186441245450101545717794559989771746011690453444764316975180743138056916327763777825602051990326723193957294303185812723132568196707838544638836391689020054947108816311474828016523170832860974359588473309916251027363072137308108941824306155152679637482478951395465909832526344117312661540250778537478978096522815643713853708381459914841974831064208993950022961630906861881789893027114308862510294752575468093740548943486663435403170751789311860876231338831343073312681658239137046349780393862154578181762387486522310638334186854313030119971721186080592247847904847398870588660193506160616948359396233460537733107971121532301074073217611943175932070741029828323732253663765946077978773148882885955621151941287007592934198081321622263599018989578291021540705522170414921402963946232493194337608819908906667925059164842859912809399901767743435307185982640542676013088180057280994131591620053255686295112189046975373172914543829615452403071496689413997413742455400716607968091779529625287442046134256974622484052338730834472963919544553522041065367605961561446100299328926824464955502589968485269170708850207792689436232641919643373364740663064634791681925197043272393594700431227046655220310398511771012957481654081114575147099672059407813146942241137662552564895599484899293532044681284953573581226754311506286202896741223014286922893602354211741268949139586207559009231526331619138791359333870956725566312562922801114463955347320100964842399682862774072572540174689644656796916030434453267488755385675218008547560877131626915607579276269806485245754543477525269582936055788060451545599358624111789719295382269234873681086212530330495630574558470362109628137394882142220171789140886715877496704392232083122689333915728567341672696201660238608338030542385604913707619268546688716914618696763280852217209388574609128592474767976763247242495406978815221308689497796418628374497722647329178673919731307717592794914209847089143653432876555588869852724198685552301250476186192439081699358404148005753319240400205620649706379578757445622677765632210531509100439640447804968379204321742786128557272159013791940468537041832097845299569283352297152341349505596559834345133990372791124990475833583667400835945561152566695599861679353191324494111364761153522285835814348473195684203265805487131675498442081621664952742262670017123121119142337158009038207012945196197820408141313256770153211892325873187686778414473783886010679374183280822062954048879845916082569957062219904005769902459206344331217422812070140277962982434294518777739021337649851572962250167462668578402749348783911520190167199994751016116065462595391259632615339653035224661268035477202847653347912339242818442686914505521094229519633013848529941381208924094580229646917859667298757826315362927017671269118651975240180403365954768814698900819636981842685797226539971718058787166516791901912004466992517595510741626568264579364480799409340374043417663640749501265841173724124276631141778636689850685716816005732755724044993744482860471072111027053791745799730083406766406721164139780739735380532735004217093689428888003710330212556342018590083792773629252065427462971309569951314796728081767810382077193690299649968211688505694903274969830763864858790533638077228564093676028319471037692441905699694006215121720359813201439846017331485704004227501776193987385822658776941814100707906888136761003363200546459768317498199354995234356151705956076243070462956377959714695897023134448660305912545698682130091551034609351546220151406186816190111896379868033778251230752891365794152444866909700427369169986121453564925730273592682523509717977734098654882539645930775690335814498032033851880390139870759386898533679122739358329518076503662326128551621885045200009475765287972877157893855319761772832943233084536961643883102452306854209861912859330630015741854482907297547527676979446573248100002003498762228829297991784990500805982222382306019864309327061585262003440880785582285444431376938903316718872508818845345608814326701696998849488794444305361839111932179553556045101043798673685727805067920944120474824265894070582729937050299396523604643434265214579587455136354498789079189021573421449911265727496841607910411510899067662644555379734918070850145561245077209412209889505288492757085961621218753387468899685880655131314742338938277325246334568522661989519001534598110770725948245921508822807956542088323581014614027708160017385157110607049714303208547003004713885104146855284256855649383055124675636438507270977642828758389589371156675729374649723034023107579617906701783519954004592331195929704129206098676035776008896334899373204194092850634243599386467870598483040320790056626934006159957495523293669670080813559231929727915713420904479827415922769069336380881901511327213422965579164023278369643285426525781153346778636878199619047197743586384483526672737362400852772073938258515745101966667171314613702217487552237010577806774269696183727948628110809214707389879533377883621158563495699113571949809347048524802655213695348473508784107045409555330889922682246520808002260211322741367806152750780879766612748380642815079260862523718109911420392493841973275961674914682449804113035316529917481429320783523522199665021098954609612948310387180082081409091154906426289154390310905941264782989775899189375013924880637409092769589246234370453723292918263473430781102559668128536267994524745248088271020866022028832747830228558396486354862878576142792449047068276088273233136904146212248006245073507610719067709869928548373161587771438188163508130041320243612535360003965297506707809393158053107898682498593566427965864663148975406104249796826981603759904986347887889904470997089567057118261333116984036366676465644168689447021244885117725291344265236437313994734624032701601983304905365982851861559195187959446890101860678566987112231300362846765246781176586445126027501735997029329627505357092464783119044312502223392340340270439697747999500468791768665365599767473125479893884179464861685105635833297237331393306690517832733884513247095075988985381287581103644135114407931957020794927034652555156172813371055601187498532951524875665183850323144246150127810098259042765252791882421937468283316386277019312871775999129184704957730491887759506386314698332863916092876477825693770577410225708062599805518038958466297485910782543599590241019783188208675531547239232389591500296035233747746098224257736874597787825485494737165964813124491255485817269218297684195123717995719627886081730237227079350725011881081310677071952216837860016908789430168506393288596102500990880257445055074820817262117754819863167063712048805259701424922966374569871799964915689069906384567199916083705271492826381587465547277876934926086747647604662000813613776064960529461585552190101795012400418117890677245756827908235654737719508803120939044410976957568548862901071657087874157379995107590113646578952232276098157844365852900846159229039743438991820564823218412631312850462254472215816704471361165649445351556932028093431599357607040010836146928989769280974307196329483930195539720398523015830863611157071897705427480768203213587708277569168091500057959809966122682268201902687037431383958823835577997505295648395436745180236618328764488393031811289567518129291054574775256121148989222185047644290360577105235799745119739197810102411012537151688830588457397161862079385676100465064214302011325006146543112415944341367776092293722997902402506914135150829109343960048784577937827404080300162715773593861920742759795910123824131721353021911579801065291617879200836744062853883295948986781256735586713732967092348260289360037674335879753787634477146265151089673840428641532714114918893598331758143043601521254294166428124425506679747906275124867190332834291866741155584862364336032735860112337364029196672118685778393835636643128925448698206444477938513546188109475876063150993887170494629796650406735407444157261457837687395983791338553971580884112621689870080283574654381822730777828841721768091045652486920264757107848822948802414435902173244855345539091446523595223176898963499523731132862158630327706806760048572290217883094138167446884444283193590403665620005120968387861598002505239527199884526836884280700549486395723994179639333089066189047003721432704908703420498696943230940559881803598800120186195350779366298403088655386082223899411965168211807737121161448022360538399206043493531706404110925242439022077359459148719913698080795135446975410576282585596247269032306342720377860361900025452931783564086731098498001412042294391924957424628626769141892650267338507366606900376402427297992534812260447028037536098909905740637541613272830746388968687933703601227208775595296858110378403190940032943623849247512771195866964312933566031633467910071759978620794790877956351712320169875623120622878559658480222761732133163672344671508910364923904919373225969247363763009458679650865645606444682988969651849557352875233166767513992653667367270104829270745953560390923470920826230059867242683416255451713628454621861347999823680960370825898405029894360784262768994512239683939522584557217171822838185501616368462711286467336136149381181175626216229233145224605497475832207551292460587253152447602077996170900925837127400435399345254525210341797324080394169478381045399107936090426383854217781757267554433720606871708680000164889466312850717758024596591943274520942801411848450351102922563080838551259441014331868483391892050550898013605904974005521727504895590606909276144143968376262795053933723560191402465782145195416982581830238455200760635042447178478563313962308737006878562502306307943551236131785695033291681340796954426778173542887473869567582097929437843269196404131017119745360869998391360062874834908208149933201009688330568476018990991230130779977732495102562530210406583202507856897724150656178245743296296998946114890331082280105539252607827712763198912220602656075108695720463144474942986509111126337429110316204175960016910811502588473592147177204581865813429172705546885613158023259317566349900031858640763133647219103173079053706331117583095576311832445747646289100748941741129214229663835168037709020339764186962229040958678065044993276345711675860896087965242596297804366393980981275076701455791786893664110997339763225550623855211190879162649042798924917141887870375421824011378239974899757698121158604799924141275940756467459515722121631394399698202834703350770917980673845877829139003738457798541238353651775475159036835124447964722794362109331516129698078616680012066316634658558308064605169718501291778208107807048698810258516428397371172269369673686374399454134390526227620320714392548671508657789999088544186001017213503592536757866955807898727703280465251734383380363037467684162650648586147423096887191450340158281894759355750485097636503156054689627644812206564588917257152894602852103341756246042094109821360150047838450857248178403524046665740414984554568167132985977979119507556587576377712143548187534032033755957174373943353484069128618912300948695708724360672577488387977428731359772221707959088588064932913941565864727798272524080401535652466387570401628347384598211625492897579333624258319050457668704124404982078560420900865222653296816350705895773394893036058310526827407399354421577239350344068154684885994052182269517636762751958663737928949571847847390326978742796820420117440121167909850911135499756337036422222165855763081200600173345132188311628060437158287465316894412327881794542690140858232462152434767222497689218749309665630307197230115238081028864940664222271323241948265541336372780025726838041327670914386434154353851399702565357374358430944358500421771471384818842978083529016771227609181042591206784243659689336347863930604171815683103711942238966917475296497192429789936326911583236922823378170172312717331683235206120463480596267566100822131556385702588340713175542597464315934365680601996741582644926385902582417924571691287139166833744479823269315547088296526268067226435854241344605035175142030532313976111646601839178482632365224349469167432123073105599378373170725699119203155925765934510618219089109209507504162928203322908031252928934381776292292159450230403408623681108738498676913208111337449301774779085247255529264122038878156878436871452681783212612997122533883644944284349005720767817462181899290137692922537052336351004831090230557144224816040034672688694622522049015851685926765517895114981115070859478805227779795952807568369917005109418766886823141936504868308376669308929564642841898106338271106005596926490952504207076322498903233532169554981985722235107871068409654914616368815571826831181533079678891405268811715639186343506291691226412055861314300719443166237669577057955967795992551544532616731156968787312004692063454921785195439752250606959480065039790470370453146131263959002886138116489728671674480162093053095585353975177709121529276779673075380877346774889411573491805767006038238650507297572675978490816484414008816456373690766783790330827806690678690574038242473828684503635784562727454974667071461793343766205692631195314572559498102569385479438997630730524981226373841267623434406632562965207470507008233077464204899284371850550611693194410718733064943761837683008794682748639411487302984112796001600675135269595523807766601993237113375318631219431025803717976673620303554669127492772631652453041351287612222180183866453948931734378648598459532977150655246867661358950966120441627237683206045599080419095803478600014674010188139197034213142621553814415750777577998895022541548876173891913433581212935252826850835737606607617328776803775358599433049679294519226133417120539274243989426605875225502837416231620332758494605416311764007225520850076356390360880116851740531777311553566807276897733501955535768839144543914915252712503920971226478320317151598376175643082292205110554664978103704074265838615383861588262756671221562009423710535122945621462817441963974178572219315477601949929466782223156510056438430617385961600273698320674200027936297035667492111794930397425713547456478190386362597764164794916806450196471836866957013007537384222558472825513348391492989871678562094610175866487411260719007811434830184511629521693986119911998976959964690725876262747558439570821161883582661431507991687252249263260230354919875568180804442894242510964865615671041544821732772189629490192239092910734822963092782143031025424163502233920811541250777912714960090497637318201431622457468870153825189434916017648228569260987686573426348737200881137927158506109198500079503747919796882827327822335418051333826829616249448905908745418126221870899192644108315065957947015475328530838852890785267867469391041086079301225903348451763987405186796229766786756710242533768026504357438647997454974830124460569424989333089852077811042178966617321948548631725148358069212161093028488639361021821271560898780697033399768847357557451370505491485149446740741551891334981557415719821891523931257691948700819153852351374715368358000272355282628537807456870991780398456828734128146539124206187866640505085749840447699306673835564313719337079037481575537105580017045345101042539244868110447472335828300798177697788838643445701424468652112055104279849218019404101378865086084808858203140552025776248303689903099015668857550952100752119903200435521679810253005929767886179445190822939424540252481523168832651786311334094774050842603590580640168950063757439377268179553605632030920655997543816694866831601090144246780920603328514119495405658558594088687840932760388313292068108258883571813841062748382575414530828959504867458158476257598084671240383299174562842339931979972155184868652537643347386857435348131113940773329006731821874765658655420904890643936972738676730386638454659449234120197341408313058046972323986989518664256230004768705480720539091904183032767844379622892187657766888214517029448799594894243300739482955457248979159707318685023970546050982047425796270151499901949529407657569781048566138578023001882408972286523248140664152779953925119125940744351481969358591023131140746758128094596073796330733397185044730374297695322027567738564432259122763308285954557056471955974415857328228545616043133713453168171644341411828614244758173989808331267217137788033589808669842310866111953436970962408778615531061357859027479081809863766429328008644644041722078019859347916294591084494985895978101066003513208983087975853652952872388127216495196273128840673656284931341045471862119678169216448246175145514230228578893067019404323278539632197265106345647605297118834805375242968025160101322025308684881466837797257609437196390840411012113606142189799505979374236972226019664488756367962496546052010738400535829380308396413558197551757773313008167009787993811452925745611263999044220465403657554890775310577173362504796450924360912696887372764627428738954616982067736339118950000530660942883538103765272742994635635119948009665786441250434139106014150915326084275384926883548871998228462822875878161737171916402604471323788555515053073654664354470372786764993191878511452684863131013885913856947701509787154755190929595848069281924573119543327135862280347094508269510154126155116966697900013940111974336410143525107339264898638136734076251688896802704552323942901742419490319271883131693769262919048454818808513639202346328288363056782182818328448744856028698974996956451776827782173222342862157422906983559289201075953995324807048047440290169733256543675002980021015587464093954450600047396804235461917155682900375267474862175134004604225323494022547219908626000731367080670991472939406854348708032150983074771051086355503060065453844526662720982730715702285507779879534728987553119181041278892341436788769867595578026561827012579131861835320163235159343223652383260510394979120945727718884155640536650718574321420150197615244362561979782882120059305776690254449468909323640823333335743443718703475355853377796897362422225753746958199657905293605841822221257201091901163022608402224270028403338870577858898500855749070259551190298650990521443401415842260587066065530552462633711558453766552363203315212212256075676747252417821563634963614992714735148535035188264418690924360292115881040910173125682596478162764734901161929612605786887849001820101344438400002722402063665862051170017712942461461883260904700983858684375380557231744072305422120295953353337493322227831429421882279909306754442566116162336620806449995135769708692372759012963811901716369939512838120317897857873780675207532087527468651590796346965444788155115981357281001699631204206813717826346344126733525983674793030228843534316229076829989149275055600312519758629895621348348511779124605600723627836571944894136141030503878260551462094839308640669048013253394661466233837546491038366921645574222251095106237754669000035712746321198041140826807072466819728459767751846637301045619118356026055198458691930557857329648659910686840431731137126637008938389322752878763158230809058867522153724112371627856993300050739459586203115873999955418401084940343621586460021804951518400991301970407528284874272711004775108342588954578643697995452586480662668408313946845597569695014166033602424975763225762378811034649089688721539787054695015557757840539371763851090610768301250096139545870504134213743715179797880338094168244761910216505869806191125244607858278292178811728717837373917013281992516882857265485345957217653845315329015546679554268604022013851074835048526855421776197445885091582009454213755002369691936732667824011064767884317831296574523730246001753817944457624702178742400435475616736658537041726712106308573039739899171222326833164422431919943673363930066244748024645590164890358317902307457967317459333830723471316027644227372811267046336205888826236935021408060016918487266682182453728410305179894690358801945866104969632836487305692544589483095704447494331523376129018337091311400595189282475022046488005072266893234537865213280909131309375582770222630528349041870361619788841918593960120289692660005730633963905235610054399517288513183838587037507476056792831277846009227169553329664422387505401064866098884198172484369745477771792167100474250398970274599066190087310089298159761730549998055561713864464626345884423454455769021285300874747849444880712895365995158282553059188915484501692492273437502381994777834199758616252553313522894846241163196059146694100837908644603989967096211296552558301781447614320378793705206335672688397677969013910494680552925008834575287471292968904202080663616030286926938980938473317248039375825064581010053152793625929805591968066871187430993547615405193873592438817254389172216632643359901738937048336075596952852235186646574519563043540896168494261426616163466280692936617624115376133219804426074664257378937178173357467877505113755575540915427028478162223758852615019395146216657384409495818990203980083107322588050855723487473887986476921002633050086134894360841314386432032209013377198484523649013947741090022742084636099874380513419432402043476296030218563208808282353233229115466258874307404122510259574409315245801412790457710252387414249942260044829311499570455510332954667410556636563375925551519992729963733975147379077754298925484882137756917233687928933924696655625687372438996058293703637367302895032317179851002404561132587731061910071166740414261662785843685354015563503745797760616813778696938689521594378468205529336481565924197426625766496639748521662331789800602646884594705080255262441075611942280555627658729133031785762067472290690403889258311433393631221184208888990399206337594480472996314943252099858891574043450545094056800739220645584473792178575665150172646577389134264201634977111083430093566868156762820572265496955823213970716761255596185525908997893097174430496179761480418774939797443536280214090579553935866498838336840618140228893527259461613982573577418097036045290945112261897173878932580955698180101569177138294904859399223409112793916696073402985307584340756473853989409267921443738743459459907608269668618729358431493893574968937823829586417805055840799665421273222543921817353684654458512244621272373649177797728497946505713212495413239785388650243866366461899779044350952321206564418144433033565902033374616216244676075273107803966372320274777368668839350408235550372510980946014976498159281658908665352274760658671965663187669782388194940078380467780398422439119610375305208407054521673560233174481717987173361127776885334959380598701326433472234415632337890680152773331679818977810722587692836370875971789523498195235160501286077394712694330515500151175454952097906931312056956663140840935091202448173302802374283598591360519302901781378098930031110366876857234757346579862393040608818636603325104996022546577306763680535684332908662859096551772180416300811821959001877344832629647456353243345101798553941866896315579848611761219884299049717022349007698029943445948165656765415753073109808691400788299462456020725344969982868869099259934712562754448891324011790134222484294206630732843027698452675288455693480233924567770363403503351052502188060089258198116009351217547880897286893909596145414070544075892514688510983441549188960275517649342975359575240750375790404577836678184859483576614424793541162865768498998489074421341286250827168117596183765999936309442041640017021487604545806865741617905795229161356254625261462492153441646137435087162747104349770678765108190929181996781140914016342844301837346689430203715680440535764615861152937490153521575655204944296379043352286613887626492941136242802289867103772149970178201604967736005668223228283419579690409927695899943308492458830032536391745206863954138022542670378490092196039040267250273448000674908813098181765196021271707568204580820512760918035399107203644475302242192909965162982752439132683033349931044754233563839301808047085980094871978853795146754812711715325559850446966909570666613624762323769488501315901476003150326272112021272909604115473017694779967677949246736007569000305468857408363822187817523021883513203904763612348544638006038312495806721859893456223667369177426781077666585996758360098040754804797627199982401169618281490860941499020047799559656142442832393429704336400488815574967174426332930720895560154944614802004913588953297694500586248474076191984922515569943683115528511530967608017248354461824909097716433072894757070949237642446292539696459074306963758641801782441836398833309557644729572632407764440547671058280610370799065916296015253836493985183412754604413086837980699085177810328594334830382193905057522265748915998095282884786628690500976839307229761914907372454499765396715040160638696086290260018800431745770913732150861716180455330299709085651639710559283446664109707600795218966185045807838173084237700383381059280908179698268557965639272465909787698617252547924747981286399559995889800104864013459856036220542207360047370018678938801482277978267704919193362340516013963611477024579194234601723333986852884987050013939213944309258747575850229934077087062147717738815495873792296464288087257842958413995394290380449544583881055200592948331199661345989754572667782100815786531927564445086149569022497744151914422795645975358401157608818755634043955105681643848883769561295448837156762528386123580529943396715266563082647677295298724049787289927608286477178382589446017684000915262037852725892273802092674872458031116722254742956362190350246986481372450156865433549564509861963649027747256741244025135057436936115004453986462305680219829894032368004129982334176242363117455423552030292802575020806382357744446268336836454738277288722171465002252807880101344993060236270857313250050124831313236096748279799042343905402833247141994166729044913459183478241322004311545926833533437287982402871431273095215545871092433782962114205575946907888391755102955192080476041799401799703462386330092511732219239598675045591465895883700859694240501760958524690407299646742733117123936349078051854375014799135480049036393131588934792724378759169819856586719701579493693751990494734287986754852683773183989022151030641261573192416515219434886812609156592275261900100261463538189518274327132677105308962560639886902423195577882369924857430897142846281585862519399588020719607225136967959630673308308931243849693926447213619491871793245654154028104304769964438824881950500104970592983474768463272506394828119405383205403738194885418625148435099176215667098894417431099800060088276380838910584006955428399254906869699364571154670025956011089383256330047320019831689124898539435257360960470557624137256697235867175887756023479750723819276309831801685287549566986975528236740809084237871736463422744991074203134291952550148568554418824796650883758301956671874678981584701329430790819011191385566439986857539612802503963568411555369661908214893823451549598368180218928129113255843668888571843152536688149553235679154383236229256679055204665270059541016854931834963852053495455144857123545617660074798958003550522351938413009075364042909134022756947461273556770547923979360281613574548726713237249999095225182157673887518984892052086626944634718614434638554169738829755514107785222446477206220283427978694415472766013356104244177133514398250343314451065140417692179764298741007978294535620049169097972380526203541111774830903902909120272322197943882786348625914764930776486769110728992479346550940066713699917996864415864436371021766272070795884907751680560822601160427512091656370005403784680489355740900610481401120079407628417574254817609992374239508597280034277287071976317345156633114119308210647780417202669097599111301530083510351377452356113539631249595514172390605746614085822564710403597010278266595941177981562647697845902021283227668663125751240216352028952529863913088619389601843065179928884706274821359065321627026745999845973498097755922141066338538486933593224329087749347150492593114669268887455973906571262766629284452263015134911758017860454487233184763651655712528582054267541244836701610656740982363552234499325256716040966418310163335595049689220348828578128055288802591605431514840983788325883152996208656205636272366858372675317808186665728549464552152276662263166560286376559032202771410203942908759799825427672754991300370210815628659717409760321286852600242668349206344164974009117181033459999126423907411471958399576772518081881458381641807387751659060821011100614907624229018849864010878380209491989274394366870215875262122323154751197212597931327494357563387532734230242416464373438246375196297352812108113215691316921088775837221136600896198249329246455291768248549205834609800916468553549795897471462751187186477325894456340162056803892614718862860444429742316488895534258983977812746536416008984364909998593023106440762850752463600452901139624972287141126531513076257676596373513316466028916905027317740000440436107002926408945017471805723764859839489553172241796474537765365041752290456672206387348509324301957626855680535293916488306395784634430585711688518835769345816660986291897555003859896815721600720842427754677936583162996189123393080505362061488727304512573627673301064348995773255154740186669293857753445829750616736456878525092264046428447271222168205157904499210621774951487777883560177184403944118230881822399723871270551123552780257284125646437127843848685328651110109928695467056246702743091286014870772617442784284804557378660432643175932900506808772119554586978670240489084369219189478157035412763269386007460995516207880365229241269408136993910551053981249129264351829035592043691725130471345633278938725756859596509851139620049059177478348099543801039567412680383820269782760357650320671045269178526861625601578225061663492983763632146823153568901823330417934686113076001135124796748156702028108801712564038913172108854607006240470888140232758098623128260728083860275343253107472619436753695411937373127404968578483307394304206159601438996754649353877072762988750286101082582827801306839170399566353502803446487192849390843732446520067917131199407532943751211159782721427253808564365710972458147666886964456976261552296709830929897409923341172153151430000858184434032485737371485361019684912590251451249126629962525030418811617575575189044011641621682679760327262546973218932798799330331251875574607974003371329008263980391481276017291478902837670271832357819653617174306992598662250444604712725927658433630102654827676011705332557131893405126371637705084222817250604224658316835216279767233097119083252909095464452728256468892486333351528322443447569236063313545104751286772656423609692225031291271383523352996140300097080111950269777056424720570389612710670228756394165306311326519904583836601829548231831643037371309469212738185129944431824403448782176332166172215992322905137024096156974744866749649996478468489988879252907164269563205091829363698114239291321563662209367822482465440312020926000884081749422114526799234590263983060715716277566391281305457021464166867417783919322234588987063530012684269510775217003646348694361233213270344344304316529808584270703726203390129157828605647090782451136250528072174070722144842437411331606481616332427766754726001713149134904822727885870711103293721572154829447751960079426127767592417586463021364346376257295853847103093957489488477578596062192243555298723800080478687691631685153982714756497370981203262987483891489725012187318541622206920087089786737878043343740043746874859419351292898781563026696928815872836602555005318423557849446219834125908095478947075179076545304258103361184441715002917369252083600820816561450566556864600508772932929367572692322209469359055233617769867020868420971958294928518844898785686108513249421042476749924486444864351041140366718453367788573913581893160969971423830275722041089903281231544070362062552866595835905738555193349630647961452771229288677035988583662360512478276233780514967974266585734479989683149597990420005738692881819445310174428972105821682985813247981597853793367859123930525527471267686803842097988070208381311287995279892178593092993442768397139966545432697968010019186834886448181213589881106518757540846872828037060566619200933228613137451396620501014409811402497947718923557323192684357136501839821183948203164391362716803995379900157320945362914317350969673702383772681257096703703076328157269003313981049137306533574070707293159406015461064836139409405634524016831867977345664514809033075680241241999011860362034193146605272628328167760016228233413736199618722397298126012446199842334296399639001778109368189610272675785365664793098724569398782127281805520503451061817516960587417817569125944926763256901909347988450344430577847176029998307972326815559843930766913126420391029862380794855347614774273609258219994038123642444446921834578168327854962996872398048840869928279344939935317128220777187668397994933902315468161177248404020638613896282665334222954773472032669973143973066557587511036720081288445474185355893021281981580960636262055745213640146486804545047550103988233513864555456626169644505477944760198823010039102516405795573505204045725453889541144718161688730417263238180795607536489782297545763526406932698526794510281214615164170951032058312594264099983090680815508852176518392954707881367308142288535967472567901934201296577800357599208997833982533584843586132917137088348491215669968795019557259854940650750650498602499288146341794725503480614877935228873198619172424539954867892943075344880730799090664818602974614543321348598177351493408857754055822977474754884199793388284375213351162368911506772141414199011824298741461031090559117188802088610537138390031413033997615807372721224028742507932456939218863041615877148248290491244371768106169840164336799464226183232196392163215989705450850643671675798615535444324150009982917940785839089918170094541959053741932278084332801611357058000009417790883337464655273421547357943671489469521298657394097480507699480311299312926764187984139421687499221704529385329164910418264307740801739227033082409145022878944477160407558633576501833327253184244085196198464291681150739764323367923019493337619107962573920085021884341575701807980459287052319577072485975447637135328115924723528170570955939600238848858625693372824005146712429292594265242478050556993413358816177703151070295422401428389407306590283105227949680156766299240898748980696030535901379390559752220016723094900448880872358476954683432429631211708534645156309494883991583921708027386938681443992514780537151058288803327026947001803872532856395791723067709471497874495673223425824062998313570208769586360707663315959363722388808661573191653503787594234275512688008231333873177900149458491247040204367435533848804757409445338997856639791624395807212597881476973887529047554773120155379012055393289456519220852976073725901405128092438752276106206721799195190233909336509791008038543585366592551347153557110407778296774060975445853888936314563265257463952846726820746534188776928920093364060802450750409121939940692795022611880521941206667881325180927830024523933309838047226683298379591421639408016216194409908992546715347514733027966680319233088479929296305560657310990529855305626189438820475162123531138573752933685851921397706356511352560423472893959689792167281325410798935331030090289102876479076247070318304933645153132828691840760332568188839447762254178989113165680297407731781041691656525068211366844690440038239832182778188083292293324361779196566655233637889878140588160174329114320124477423791300602257981681982696803917983039366726292885926161124437589638409529478023764814888445788425021855716124240516113929518177991139344887251810130815938979499797226639178613902013459705163538216303060408783917526961766531381309472450212700595806890458467997053298575775356526437301121754725153967363474883545214177028207364637014694742065977384835155123883202967854429569713890275902982268097083263672781190718076894199448629752449778794638526480395906623662810585074559331001338782255539485402104638871115633482727268244092562800684373259859680692955590895290285835634764351783515393404010711738938081947230838100975856412064812987803964390504940339158338415672537385519101870884330367399276241254332254692815585387498239638667453627173421553807887981091408387851267885662662305794900810789582048710183681153052728384777899162468130225125947687773109919099341871071227182035402633002483541504416389909703990854375015856590537791792134232949370742775174103241208435861680823689311236990983142776879703507558200015198730314695121617573187721630506176156057704980815616723817814313516987285995568303741074082828973486446764268933683848606346897530485284743161486830319704981914113013098968950022522600165379426873236681409672400181906945899077651421690403488627860850111389519558433644025986540899501904463333831448299467743736061160964674007271755689114131620978603641124913563601934893684661385310839277533607594449988842257219135987229604521788501420022169891713265449944450996375638894289442037595805623489887515247140390774011980801513665994746825237994729140688954580745615077824499190731172548071184610185532727280263057397998759867590235344375434858119342296079792971273904349297435185437552183831850404966759276125288239552324876142451964339114869538265967851695655563120463278954098245715839938435228875197698762731832824528580551074616707516084192949244464304743007931139391433769759812791163440367140589778639542046665258382341821666254984117342775910875491131239426927097278685241111374211379892598377502012931802553575434603054580401556254514313572264262845097486566638913928134760784040348641538584429907864187078622236001109123327168680905452094910410804127647003522267633354451347141514568220776669083189264375031510099471837094592022227306045026557354046515270521782714460099469196898768356372974127172847182648040571787543158708524097710570550851816753441444081334183044206736898319675037282271576526374531568049284569181514455005724608515357741351891464204530137035632487984521488050824251786293139300762867641040778933013412522437571077971085981651882168992964589886394831733766454601282159682705103884846916562495259918023991942515716892917980294874709300428273559557567377551718753942178690019809808826745826429737639100268793636494130201254038971619056705516973577634105408354033461022766275320509471767519880548014624266374586403644242636748953910182132004454150139401594644160249006329367977268203926705445180004655348461271338014028398439252744197920165577605251758610104548111682641176219665553635614530827883921547442825971363050881628719645307721268087613847865148888031440456155288233323045941341810033070612127188796848863676105561260218944045760104898401371110085673290308600139810957138471635114990392318390054977383545884547276430137869455936923964645098388926645586499867592038756102982022971984435795185893972373903734715634154245957845901612279158583045064679478897337139226694558435977005875084496113472017545730939256670461197102039136992333966537168913194137394604893451936787166667021872838707393297706818751796097648444405500424459643617269230403761052133590764442186642330548994937083584439221108848155843443463759746101157010777274004380935427115394237584517889538927425878538723180083414777193688930953757425028854392648978398709067643124220058090018070682076746069118670419757860213443453046237344136467535985527983434503871637030980467286861612122825930679601723122455219419943652338078698916482122898265462707847704658498757685206006343813008886817326792112287224351559111362652931708655215728192364024575336680164457343480273933339666329919160250365346460832162352249670387020171621249203070890775167660071598996971785667971690014988147439737198276486970221461945370696829868579678523338651976807617056969511142581767049791133876976829029351514574444641080884375402124942883933099170652140578225979642172561991625040352505708830638002182808982489748799390970457794613047244870985638614674177837660927471855571374576800659099107179999170740757726558106681498893912131898216222876723170450051478811297523118496135710953483481076427500699891458172683708094498992890751641209964314765883686177162987095106677495493489265730707909915797249558738054859733073069893790599699938254770891287640397259510703244154088663449275832875525877346733245349137245801189221020600154409016443893109157786575592048394476532212806372775545301862822629890177465082818917430079799368135634307823019903999029280637952602215012882317508477180216121283206652343207670100389717151476230813419116869385272157941950514383646639595354386071589674287025967779141051714979468145874705794046836476162298051084995722273086515684815608758321486564004649783242644252378418710249551693369981161650064770874604528781537434365730657327214898564227222834597226462811076649548209470636030921798079539847621486792097235149853661084769971637653851807352354914071852216508299793406964001392391743069210599357086133482432342322627778789258034954764230994173391365993629057430889752045296188971104360466942535741857276174959306746945141067501826604853096398760006088585492465475340202197312342660191301090707846052694792482720017753992232804223061317391799629460909771707980464764465135043742722583964716793348792415573813554817044276289409923068673438046215890973625932046490478056582728682081048961673444050617239045659381729950696528785348783814613872312861277397532134634753989072204191981616700112209192638941590444063317691565357835883099587261312617174651945849774504545310991190338636599451204299640274490281314534094332545493326287071501956744666680766421089350566618392397700902811834728354041726688355346032094202684649614034813118760705087013926755752298386090403270961581696627891532830858635552816427257870989789276191258216653171872247642976627580937232061087854660586259572800528092204269023144727533443732700710212131148920614159380444485936883744563300754470886522029565914371882433102611627514355884635577802815058642318629639610750042422218922881008361459584137685838247558953192981138805690558078392588190046667967298842892090391592047819354894113549374005940178586011577500059470372887445663315031811237377308427982288871529485150178298505700945373986902653585045507511950017463329155616350706697964944036817464501645206985725671637843106675674947297271343099144784790407640946914888974785130837817154522302817761024179557317389047435672817626552453894774339060871374695102579620802175962628178225630236698750714010943203865630615140378003074505456831152426288316392489463078632297988689217695145523590182919232250664908163174484748350320761422364577794477148993483162088256989206358212077941585074381814249062368893941134639122082222167000584664646231779797155797291552824708731436907370699713296243786095286912369359623629147489047750408844969667206534555201314345889981129576443482828636180032069742458788521521058822841006444794882647071806426011874913282383783399199751103335216727980299232066031148592666488340016322728886257287847992356858572491806105393591044658053605671540528384327966402383955976953894777136297310675814257040652215135838417770140296222489570015605214470686066610691054407104114320495472241297901630051061559367701899923787152277484456742077675110177512843140544348098726524556529441090675807328831441804501820107315617547667505277606205505501677824097483791970517717555273271241999152602505282927246075422070064974032438081616583582190576358495407058917750505060120773323163276948741831485113017546930875217235845892261709877229419552426935927040662214008895058179638491627062844143112686621586263552566706524699779788718760784651582973949706516763197979927276772311754442539947727555653044863536328204496083937687346938767400761477315044326883365816244828602331938419815491378160628047842627024115498721197316958572433375054961421650918210497030958606700109218459666450162528901621189003264436647727389342829874267583740166067702871170762985350701366876387030010222381566747826012299101885871111653714294849426402614602058956470735604340044406517822810884446196734677896418175641949662060894795461650746546659626396877100825818696011729398120982901544065639462553734912092933110414891925379049084352699146984983260151052594312705254636757008497354755950366920284516730297016587105131243866924073909876862879558525482826391731913138130416761345436182921897016430861585277169370063249679979072978990251884140456171660502956328521165068079129920799352917249094075653259541019251321717376240497299711782901773293555834617112235253684053584296586755953927535295916432007234484945097932471076117473536604278575241504917078519514967226134472693041478959562241810137050424868912530647079622630186307221634083799842116462431397035252621146888137000634826003208741990964005600144457979671783334317660077293303540462757162216198938904145030797777889626388125373536775250445782490092682596533675625173186309727252252495153176172763644315121244080995152816081840801826638671894095449631201086778777666650126063478469887287938173281453300824788851606691781928077558817810694547405095939724072609622817732737962792604558884196460708782411117642443951301314250185983258436578383891607913298408233386528226236252034203923967712081287919127490890661722328012540150027833044647419595823997923785614118183181069419580629429528583050979671243395208160292554111928327829125991548502730987956899758418690598067780916018070611011445046226375783958295253662372379934145492997939658447930141101012732126599670006022572102488665778568735989565462150874136438129224141869079749037804668501592643338949555749440507110723422198179384195560948465880137137643828266862677136328525923973183594785315503549052615969287259094148749461907104054762924191096996569454735994492830554632685177017322667874991486949727599212865899149722680942674479619272128272176519144111709011755649154275131500478540845129720463313685161523406281861961246507050496778310782441348285509330497628175309843033144960687049911180398708453027350867531099299396362983470551310161959265952707660193246571570980718440664148303222819878456388722173555115380665462685513857993997481208458190676292971734875818502877831476024527121513682427483113349381238711549612149520288171409777919516741147462753801957980297744431602942739781040798399401167077827668747860245572435180275816596318430749230855124916526887317453382707489116491617678072586966856461627012168507686596737196227153343033000445640592182318963374732882292123759508180174931131013344919108678255344742121447829542402298969388047338895434858595718633523119488959816387960359769544455362527822714668134708518296313754198630532627482173346643174155116760140451555576421654640688245343726768297733143394619250610838728933155359837395148738931929893795073069460344844085903057354400276188717840797047169196349359484864101814711165157951279359959075268103334224513266913361823587952357466994513715655291080113435303200756614281801584057641451146704441714370959233537699215322796518920885753774626031600282821779814476087389111145422604106977788303581422036066328720793715274065369746517065133873976430056691284443302800044427545115425987779331960808866142091427026543999573184529001669171462061671378853319493569297990524898921643208710227836366471470590198584113560664056024924758357508596063423322737420557272994915421738635251012360140146355564335240658946312219894526499472019673049468450677921008643673665735041242120976439517858580505283910635538880332701199368691703265818716719005850974378680065394266644236592558141767219998921842905518678208393839009584497119794744707152018996771355847793209957366569620272886522316398554785898884937644389360355805521423962642061378585718534491640695564286314638452229443330563901765089567909137802813882572356096675629248252989884511859812755586204808731052481660228419282101846928934397763625766372572065842973478962642721759215570724577763593863428696413843708743681708146611251433987991401548411727505041020972943357025425039394025922541389708324915199736942156561476532349485361349150634026738515948045214232540918832373158053809673976083954061372362164723763754712648738613707208514931900736185427405387974746975982974762882688167108715769182532309329463772335003036558345807602060417444966432178154310896997034925925272697853522019267336165876628373398105840174549134805322317572922559043815438177135261917386673476214353010044309495638173234205123362313915339471756602849179020735462638360905337379926565351715925864045422135864324862476329196672024609325004866770324096514531927241205822136207465426658321925992408616418662368388911985174673053352792406336424634270911146008038393094769434036962331815984648961251400430748614519139458696671998641933858156103807831621103521833734434544199144583890480887406020039166532595237766775957355314944098356718177678811657376253476697735946351199588827970591381683370844840274642206312189623079243415279734342541524170611098387709749923709819337091661035174025684202651750300417519202503010606909855089551946120893327105357172771915643326056982171748444975279773061056163383957668007371449214715512514620346651764453893121043337324249620893830285240034198549256122342125371957640358131279048836740001537516954028236074140085798375596664375632929001690687693698756589021901346214342044027697260904546283421411700822074243653177606851601649599364268922183780883771667044605953021149442175076998537398794845944906516384272017341735559949369579639997515705538396088535952823406468997111973568083360590898812416825793470716198931594381309189545957802854384798022923573977116084566577009721104703311307722883756179529521456894188450697414999996940888789710036216396978145268463226912821289580161736284966169460805335385691768332750803018704734083098948514520498573250449655127921553008754617907118414161743402859510607864225985526869301450963947320924844587873215620589569195519514357047303483704433190792052380269399606021069956064729916821357250900896138239008557943349476324333300858434831291997779862636304724647640285891240053688969995437778345205125110508616980357800276852609569730881403661183205117585203994545093676571888663654671052404056358686751163504459340135198138655698170030583418098904163460080444077019762898277090037912668404769745375340083497376871187816039475412106750724418971616684902980638130590666614256610143990003964029244655778169838109756193284080761408693407824246578551479830066483722983002461658039366291670942127718586106127788292554111426215380454306230907856500156947890448672236223399578595553738913460800050749402395672141854914906503319680373009056498718812883591006444583943684486070581264956755028319705629915137467330336859081361708389643587261360306167679875352593748863943535248659944411106313267744233087904217022951239607236384111396950594687487621996524890203748021660967816576638839436556528067934259475734069812084303770044774946552052124500462026230907783610059261244865615675443990662586418067686338654901384750597472353792184760159220686614740858227956705264700217512265179804190860249065588895911045799409175362545815330812762831192481696783389018175154491047646078895072504787753114411071419640828840827806811712879786958321415504306614931541513009439797334971941904319380830610997763949310597176483090145779116099318521790260894170653806208087391102494027517110391596572242845745657215986342136345310172895785008434903381065349502076524915546919607388394178789805841472301332223728032797200115629526295436245769273304298248768565544476809115762073386065439519546678320585309913113067571249067612696609944209352012504195668868280199493671441722579907812762688164334834533854476374909398468676247173418821417615691642184627350476113615740642253804272202830198228809996036720352202125809843387865824028279878818714862076055573477400438429137385619232556529447490040869343604822147929213744260701940294629293067780771167576319506591878349176302941675214780446264026862797469527450875157697377741097150039919168730522580151909889451828333284890952287392067915020698348982016500307714732341771890361898043242245292961723109926860822661913424562201866425171994805033852796883507553928007381344439261392179744167680884663316452766032883097926146130121168978278587148135992059759058387440878108394394183298644037093259170916682090721349690011699162028886854580914399111290993184514775985640113809735964055009180344364834866052688352338639738072250310824305652111182781471384280076695124410794159634982332500169931094061510028622375932196810623175757473418866338767261921571715136412209911692669147292005791259977916614049255223841866355392914412823797642713077857435288033338750774794720218174629790795878976631739530288818483204165824907230746336143260153216038119478558937475660779697383056004852644662894049476468407458931863905628796793803311933131985140763549395774368861932486463810793785866918628517021580003994556516834249191045370048522261355993644431784045869950349865973190040020219177808174380654506617103872776696623466277126889343449119986720467128289963029284577091215573680910697794410381089795788560757331147472791898165090608122447274979198431526766109858811562065902970793312809336527373560530643064627004027429597512099468253530645497847899296982112028981758053762546835717577654653624812227154076137325532221193606308199103503236417648401141604842754126373212996293062674587026601670051908325796341661058766909733176214942441218855649329361543874133206138672380151339722384263485540286627509143091877952561250769342438556612367650220994248579074285646586657226679410881007653485526320142865966456485732892656969990783258251474453205660449777587703351360100209649707142655359864255475025072429578806324236966062678805502951788802028443483140009991842572441103205491229542748874448546681239067356203098348707226850845286706194052727520328010177032018722092557440702297855101513065383529661252610467591986945758290876722177611883188569740768563550844053563873976149258000255333019042006233244840604952656767325203149873485752748621223663660434516591587529317027614203694655107250416620618380764491017229341340750301256924450049228326819608066853073968761658399423805209218499759095041842487575722287204488060150715272108001361650033182022754187588098166660379791249198593670053855652122270302767416927229254589692038726781238223011503418743584889127500170761743320421758042628614710642640912202131176089829859146524981166538534344348978851409340639466391266928401740732401091150429504779045447900078417781118982749039193354830805797251515025843891465051715689438261999039830085810698611128846577187374336365982824387787747224772788532974493458524752144654142054206078931469555581709255280138023050490610819495274889084391612783572101452445379346614847061418226158100840744987998012788890086910869968845205566289797781274431110313448665488107923024685108108365412366554972672343189141883199636018248149775857713288444925289179013840993302064451222710873138120908042224306663035324065733495720929544920031051288399379890527733388576418191560305213893219367859682903995874240511762918193780711423484091799230753173876466202407880193987631825972954479800270578785406761509245638113191649538927921650665922768870370668015139575412018003956336460876369013655042036021031939570757785820550515808908428594244617205279267346543037558590853903298179486336092963389727541781824064183889120113426360803507513190938687389655805750631470405542140487023658337915196202604194087971740945902662986633686045035923901586890656254622213415619385212089161282873347935347634752799058103630106881851113841276648882475222591477414344384415394261522993796600706451585893316870145434963873780835201459301113366789973625594686573177148069537893039596007697544967038729707363094534069436489397406113924027626492769439496547174322982732361776305475460047809013244906470791047609495279053005042742212106090448959567304327111273888793666592073987212376285297888529428492369679453943840331910331334277981125785194171880607563128821192603643891627787100251141266189834836518366992371624766420254082363151470321318576813465987172534533990988485499251375743930844848893611341982443348038641200651144205468979403020998317522789191252984096706826774279922753274389445817468358899591758285944760178650085447135936701453866872658716363990469207256340127599188649083449193417541967261296230771598576216091924727270774771499329815245723858567423319812677019230551401651647793643712346864296053513142859907272320045361905685876349583621358226672257320809510926726864624073182645697268743599818258251599618159029197166973768659846242386694433583888534931536141837241457938526428773050612494844109872219230394376989629595540177383450887383981838731203401432489444076082459489603133249003517092761776106485462960656051305692501986661478494657942259022011319620820735069596875045095540718510850679124971845869096007304389981094355587213662294466261115776551408504566563113104379507446272201986369512675117848724215203479182649818933325155750072715456321866038182875785902721825096776987635373217126652206880658919648608026893112242761206499238376647135641943926936786648331963832062052562629793467170965331654430605867100258504588739363859730661001529838690634536416488557070465618966512184351198950880318087186967868052449921419148395201262989380028495089006019356685008393284072367140246387620236692516878647239148562444745731787641718638522286279778180953352285677654942031345080846841356739604146995203948956739760460309419156156529473486796570536089649953209758224038934781243630356276550768851374372790955115561101088623523824170761289868373491122189854286295926160944699512734953682985197788094624932618186642284442828570124720322438349555269948296316216044554105230481180664591841031129961475947230492429166911045217046326252799415215615515241291107168822402556301007826354484163110619269310441815932212905525785748124452303263200309081884097895223519406495104179332818610896170321305249175137697256780052411880252076112583103220565159724201785487919260178058412529657398341494814448300309259133227897976457294356764519080599639901932731593450822327159346710130619654255444305325336694318823229808580990003004916585776737414021931331450493418012310655021636230196655408871168172897953250986263360949327749931948261362565681743716611694242281665603338123797334778182966799828785628468824060691790268615148397275182773058547338678293156751880232697168997863100368579364320136924284786989318786330951798376368408104934654912386987473907223065021962385574966688332642089080617744845024137128495770783270860189908442467944735174552711076642402196048459799210718201858529403875866618217898516607374264729949607973396434248560019958886674792686632157425550459977378715971685817777000584257429078349984562688289656523353532447970785198090070343564303910055770824227522024340415257062578559653966889671940523303191439065698594261436176809578091729947064733430952205512980283595349813783533459917292338540448245703677985814631749100817593855831695435746973551197325708903653869773295152705780356667087801997736611195732002359792251207973658774694083170975177346941214445639977920644577365948621154049684421679150804392850865301262744060244080673167663223637300930979843933810911671330054535213800030470811376651622541477112045222125501231284781593406126568074906843410399648301120034313531309874582662857264716937680566047077808811851093125337742280759042890688950190513477160427102465454837543422599557829482202559000195552203623929298193940984139384577805679126197175365905237792322809247242306802412238916505763328111410012731832512856729860001614641449974194518321997267936101762730395834890275712727205199321659092840732446772768712701372722490749218902949828911557630414966581350643869744429387670607712502166512348005920160015795327547178924317903523483273433167020069803782564174824958462899775347752335166932756413834514178108273361084870772825999621648609284630273438485461586387660883550739050865499555022506340270371356744826296731191599465699480383560231311608631806020017822424472212821370994926286083820180196272612991007395999046160215481981045223822473256281428360171980180450235335016102561629456644268581909242407112378849983079563362135274678886607758603816216271109909207198738479647986325614191924662723151287849741111328378643815558852159621163359078572020153906372804049510312260205835925514272321451059638707940523073502658264773633802063377838820517262554419522379880538019668883115937082071516588333856131303893863088496911972904769094961785244673270342351491421861663711750168544078689725179955072647983630627558083682033517517154449460955631371283050294364268766429715299749562509477920506622351435442410543957488727665496128549708778711395695972674928351690995667618660004327121228028132541149044582292165584352042192392677100034942148312528324747056149789566802751021266571237384747534836786006436236673374386931321369962892668481474636243971959337276631388109211290399189809115333713247639041996574171977879799631388966048159906606144317040962152031172824052928321193790902763682909434975636911886120888572984767628891736302523681133153026469568611695862561632784890914417723017433391630379741244876992364158609481121152057026353464259211409257712028659073422884079452869329416668662834138523311446363039566608202457974087150334450783422059665380167074419800707939866615586469730570027270852207653993328360268415311691979072464625999858417466031767056913138586474777560650002725613241532315757722105622068637057821921588111891428201547446609251069908402671330904743835103168259444625179516665143327814169485567191899934974537111442575065219588109205381905069440516710977015659097997685865608165327678422036823516039640514590645065343876314893190447732053947727146579988839449795225410360323618821603940901317721020029919596242739637716221461459028487856759375439265898388993810519591434940340102329808173193588542737534108380610736697412098708786013369508752690504051207412985459203287464363350356142560505034083147987296358104412506129048437652166827096365748165161454983558692801163478515314273743829790133955601320986501765529035254395386645333124270862646949330092707280739177622371132341154111230786764848343973296867768016232674843723379996188180595186820852596716510456780028696871576705240987617168749914081132944285185968587833041869254779538470190605139991658906231772118079842966376853831828385904585714857198074206008485438250438512378710754385183383836319814721499944013700162182093055838000155000711244319439702568509629746242424142748398889972322341783871395107025563195860860961213723240112231491210726057790482129704667838391790941252141516420761256893514628570928735038340360564900731718603598762451152781944808961099027077559390080230116922201845669118225455115561566174762470176721227089370629993118565903321380124606036222026100879476514877089648278271674995588526260611743119326853977881810109135731745166333472113697785613703681699003816300448753119435802371854223564861591029107073569779070924119314331162628095397221822028098423522279276554675198964904949976369057196563986236400240319582403838014191109343137514999708803763075585748179055096341394843450251960936554151686633820616369688613549330536597260133995847469368608890069565529361219177530379419292678256320971081492211992676738615337765456619070010317027678994302770614913498187414534457915161196682161000893594352656074726131567674489948754032231647014653229311874215074878020354501083024728694858906148449577107827261329647843459953700668858150987584460364229370803546715791024598800447287605766478351257183725656125527205742097223219128579358542413427532106492063847351517346978467834573826815226435931617825362170561488698132566187818855937252145888164614336228585777071263067617256825361349352872620280559474586229337047822940333657271545832380461407167322253667708011888444006311668507962717496250574882541310106051553563120763488125026756577903272803024250925247860759371619611749968234064533754319873421354938050147331660793815661327120107755479565980768499663252795082342627063193329251268678775158115819930500041798103902792544048078682046548594748663713978684089699619851240750530129792200133245991246601544933226441646908281856116000469604334948687065543909439289289533458513161280624538912298210010984371289628091393682992426399221255921684379942513845497263854239565605772222682701532468234647493682875044999592189279620771470184739427005691172736646850264653962902041935738375777598903631861525207458743328867809635874342473360358130036111770774997438997244073625998581267905172285945881133766967269815788616202593612024640827363341662667175225884287868485508701382849622930605850679761187458697016388106429319843756746085024304953494481477698846425801047488858805261341196507982077724700223885364550461319166387500328342318434833180201176575353339560425825311268000630047404022485618027774504163928385730740400842096723901735780607845357868428306458382599648799939926496164844878997533004579316420793377701737261087248389321665390709928600744167642165130558608550142715973659113648989349848399890825610707453940289785878816994807345853599777344284231135969498686002235936299326212931551575371193405840419589117184323339589661812650527168561524194311856014052623955514021976376858865138128226206239859304605081470606504811866301555132956459810373333112659975228520845804639481348727811299876182687292279666943061985770606834996910098668397282594629565990282336296268303433758955686126620161563567686052545416238781412065577417047556706597569902679952481627112824630878514020536822367425889890399742046501871204530152483157685713130165719759370363850780851092314036153043772209875368397779435055964240208198907541079458744750737281035081015839964272703854778665268705330799719415357690004975421788335984187590833073035392400160114307496351506082173935991904783709118838247010688162887250128073898947519861435140441404592833414883639248010227248079159817565043718265631061659193298810640867956352229693389292327477346877989586345103070268025793202939097678442062188257385173321526947814935869797239199578160671088942120360623658651872048907070648428803408258189110263412951590876213597194285736070956018978517667982056443771325453403647934652139879514255191859873147197223684032451434504982609318580984388585828202353077830029121586110297953101845007225244585183965798644890214744045159918372350465590103791027188565482989494205655044015331881539979446047222360947611556493686012795337293034249304393381666643982271383598508514952539230466466379308498327296446297086256971600501693963575728146280791154415002040418947837746784012831642787951421065371163932144361198661439888895968234860197317411464501325948477010405031989151322720162539142887720745415124323867264563753433011253054203342916854051434554033913449638951057449805620260990968166763992706269691924991092860459743068822032007788260982502137439871350083634523630821483455175519572388524245731499503140668951326839536762508971283422997779627729821982294581814818614672594441456089352600330502178116147554440035895312386173104111094505949229943361861244560617398560211757372012530369412930174022762668915499795299887019337441108438059510756286819759827024041608986141689976037389935826596321346920943330985677538664737423818850981313861715501004384544674114484058995877331083432652002799430027923745163991431634574460621281398397577598556561619877923278126495025318518898831609358314111271365960536462931369898247018453299714382140648844576769772831945378353683826071083452347940277704897752969488858549304880748185276723223143075273117021075187294772329799238096927897627196639519483270877161337791179938860912229986977823954526872703692595158625529303965439193342951893702441925369752565486941592722607540992079401146339017402805109313237466631262666893149479407647074950692442809901415612662591841593720736522392440929718266595897723561437357864111045835992638964948973639172864154549801487424071286928555314834153154896633761947714499029889113797200893051985486779230022355758973059412467993759870455324243063116563749072884152150418431667384331319199342897307812483028626081783307815849326752926379301638859259122713482908135589542610656010797002473006946272555403434235040999097385149848132606661831255811588486172218911307862383842429416144484180099452594038908857824608446571660746819312892208164426800758178574641934793627263338594608250698413501698400057761727618933728185183628278479913688253527094041415234395962524493849680605092086171827845952849186233973699652433201000368956669600998979885777093795109880817110857247987163259778136040149944902533982109861078526659084308699600715860047095467345803480644704562592671288454055533373023336097841521053029383877889151087377119403217503659999763321648247612860253397591534822994236507731807170517356509594882609054551077459347582473120381016773427546568259946333464085201805675045386929045983201021550425214709188586084473074128924770749121797005674956407985396863554435367531171394182395994639138567715539853615325233185759138744925645018408454247171823795439338323321245532104266984676889341657401716637116466144152467904659769409294222338481294071043637878134233232708019408420771572690453459831129165497344322515789422906655682334229688803847519276264164358313304490010339957849337944892701555409275970192318068754665727897910368453523693158542787178365701311892362814517190067637513729242809941277758833246489781925145522915537279278412645747623492403975489474655181734193603057635846371906661240280881510778919382995722026445942188473838859237753731551880285083689806725409145003768312647429444096006191177871778903278217559796342721442310261600792741627308882609415770252920561214269439270125165037014608040842173295170063680573420060540049597647648276995057801079878029351005535421140641997016603382423118303302665812000578716107562140731234500929730685347820414587792638317650861654954222151562181934057401839571656284511963826844776203901061332179334162340402050255579846335733422674860217862720484289657710659067411432997453195334285684829438138939042294219108269997163407223762679566945776488793254020053768899826515254922851790489599426420827897575494306637825420099510095226666768654451321677821208858505835597653733967812004104080649155668740577408202552864048333179812253348863574404449944882749398611362550080589836782035098613898577325132838402859600947282218234851416779092487284324113892346104686648310591187622096253691658078016406251721940115889409558590699604967681313513155950364189334709969284546741841682588489022892190331625323586067866897435629696435741136264557077052289734756486183714174533335140174848656833551572619604138854867160755468092392248896595158780274494012996455959985378168235201595220685573514800812348753114982115795755282747375338659258823273250054203843462046246533915065689339860413075424875041677404916679699705883366200046241996344538847861175739882488054659660980425122683356179391758252931176292470872983851350491831586936686766972500194034887367928395014411142279701264418167379373976075543900903537333597417276316544264444424313946369329443205102489274851047586713575456241185542300096388345056800079892074826151881185109348417126219199223462507660744387029572983740290592780291477397561780902627768246315218205929181917428970112211265281920824465589046736606778453875322228641184714956320187063211115013429553391103397864774309231458922620213165613374793094947520565172587036544390477386093930551924973606124882722537980829595602234385087255939292352590969030719282375788042969873652181788188068109397746411254448394607668609381412071271482740917573826847230058780212128539643278949445921636198138703548806767069233144826956280725692844546063830043149765046337573561244918083831450489983544305675563439086684022556837982346639144347277244909710607969625220691818159767570151378154499093909696266487305332894678358345145353829200425304946437524750609361306726985598642682735399242577446661991472169313922983324394265087441520787674124016561607943915997229409658411345285608151708832018578477113004651181652684989777007073470575452861336619243733977445929101995192322969745751599274606340583502700404962267229471922761972007808825460236485437071523467006339933774055227073970750918767346040800652113512605611465107793873103162435770335039245134915272829727287671524387762511845419440672755309058321485406347357896445430236795270380543505087221393981066185227795391351961529086687107006355406418201182084779916190437481702278251720974310065986807938327012557731280997621904467055493546169649749179985196922857713663245043731226887450996295242566755075206770105194957207501959625763035782687341024419714655924962204480559813337675894043118473914993054989833046831921500430658257154042229579942686838232059927064802244305702152324421545819687315717432265681906287970314338197774788887428715378999192163040117001550172427755434902786699542074170645704019853897572825602045011496875597997610233617459864575912941962856215950968147161593793229517611428266200290465380734461365490198663320689842382358579457117092810418182940387762957378345095603919146461637235817053973809917968937126067184996710098169648312120203291385329841786195644930163597873642862533055484098791321043118979563482261456436465172424296300461807919581135802294923995933773958447824905615907684756901800893196468627266029658034098761745213263958410439538060549551266689897847333153361438711774351151774643974302830440814992786693294093830725605154005111919806672694991738191640887776778800327626645432574616189916534202006651723677617089941599342384682095741678528918543553448050878360922574024784677422795128764725853208965703060427081472432847410517874390535616642409821052172482515092932222863957859195426425380692643367648097411773720446348951235306454990571736783385102645058308044763983072885733133061304081518970427497486879151731051144066490857150820689829880009942982034944262945708592862272216610137661978395582622295335562295721142583355302827614504525102521498051154059161778580716264889313783421153084839743602635350661315935425034759437461720694658257817895386885273529517884409384231085257493280143066920648162234368240459740008462530618733435843474447224602707247783992167535334214183175759045032915939066124931951528637825965904110600563827166678915171449177498414423747858614139531247483215995060237760410245369380023645893018727182475116385188955981636572341976212404722180347336051314337984435893976944589949956068699389088662674646740819331338671361180830104505240444977636938279150733390416099507520794585775832549610682603547788105013569962947830673294760593859381809018303558195805926894527528401394692097822807017385985887086567777967979637168136509574261904296708080610213861050321191555602570686790615099103871167522772884373180301808556343235389875845395467387323138560930934709304999277386145355703968385330276557326521661078882725399943650418320845426591472225093740774695634270045231629679009779678190862324449119538000107714543357837035282530378120180716422934137592866033512183087073319808865515002985267483753616115805683694698063282092180388320548195922775531805645232139586451875441810030074171184181914385611103099456375063477181977829364899756607062982213476592724870146207242942339756242820748007878648548976583512142938583882950072204065530691883520421215251361647217816586519343730891921744519604783410356421641574494359014513596810754342982785115656285190985876158443193865856576111210576930215733238828880319303701122414241012549245934619611709092307582093264063069868727533110886395392305362531712686724298848578103803750117617957904626644336305870358619432289825998332180346829472627783157369852049760364176734249146753080360970420694197804700900209170082268016365037955092777645558904621502028406887905375934534333312997241645809852645138677085104260566909728242570676591340075344726400188861280399164680427542766619341466686936796628831051483157087196318582218436925744810731688844054844754422389278490217943883476072377482347919352907568268165096824060297942218399737789568906223867198438349217067891090913289454928175128315302693426376099409510953789414696093183776303370324857133071312431721804320807689829626500169157942778366685815047596985917918812005734466216773728300639154386500304265328771235588013682040107912979524741961305215994810306263197401812469292956998289668510263451417784214594844277260419328710490633878066752455914065135300107279577597554725329644934261662973591861151675661760007423363627701891683026844299232728918977015215628153344814450390045689190770153845718636882211103582084023267336089595518445852532063794679214167038256127215342074512498347060871079178939919822220384914942250143512520755511742919769481490166574891096340466235202765862903902577399026688951301282483280613704963090631346568177001040292309531744024556267561044003740005064185556055922824764591021263093163521689841781232582591918143298061433152908561335677397025327822503060833805380587814191035651273138214191005953585544981969748237062948184692623349710160027382923656775335108088014401985345794224433718856073607250668084635487713469640047245141486769549305228365864670732280567195132313217285902073655472553846272027642224615938117968186552684511809127243667139195137637555117057940951512754475481535637039841596044966314896864660678413652565082373687558001580130732834721278464074173890098025167433357419581679321219021567452556685684392574545900267518067968205687414893092239080723447029026659522411011030428913595009770075410790067984595889632497355086097589450934600151693860812760722913599421528787453185097274270742739526795540356112086430946519974067108015322839022832002140083280146690384355454761512365745655720574451644898939213127254846355488344384942993710938994434598974325768469416481415272958639007242485272972603579317945313825485995872098440072795579592168448390324074454116281887470264886206897903581184509268969251831186344698674945632904729463111793527660877915277957889950009885455907600622424777938954643436821832872430469006079596288342348667860224833574847404932632970005480535225280812017570618679809805921825433394606488340940747056304589030320405067930178921119556197473783155506376749995258137355665109800017658932049292063348957469726542023983415944116637655122820572209683202710192355036580678048340710475325541080064500027755174060710128162292808869647087408618059760507931454285815696950086015455872324411388732280993459172388040057486662088670910367517051107562123859557086493996106798727931299885754018657038404966014877134195803757137030975745682362333345267909032597950159955685317059820076229657276185940625637331391077697774733556251873111219032239127629698694049390549140024714183353941353024669658106031750061343425422888219641268458243385839786932415969588552083157197519471313377059735293534760720970805860404671739773046168075302945967925858737214038576285617815577996600847963512515339503247963266732496345885828952642654213860289667474978954094475391316270276554333138116140960348335620441146819847180658220418646835680556729525360253543616671728281460804998662054490808704500736879101094432745335143813570816150624727114976189250707743342735723057366948302455623855802313613946245745283288075565874590551832828941416907793813333814503484765359197257017722929951402060339916962908886967034321707815217609175983031437348770397833602383821626063629648827382090818095377012636322735122777121176693327619360179959107802618704854248065169238827022750292247445900280375281279752707418128647805842881852502524568998532932837412913285212502040520020427464968643220547833625531768356525094346152243446617615263051348917320565528135877302621041344385562476168021725110694243234326683723245359337676169232585480759779870022672518845177968153445844019094143452057111102350709676766537319396813678225391351148214130417772917690341328591098137062012799909198897746704698446298761194813498114855364462983339274547958517686847134346800166786245738892932119842530637580878496064213529021972493674124027449420918775912447540794170767512929941575837113003806431761220534447020959640822364734327338127257590555693424569403498858367632600340619979468155535369897804246594399125847823679490503518929061410627530215673708971726065362354441881607621725381083054663028067573329698747687199386001912929125168452734881602510660342435049180980429247551430653356460334337663571231587027216387755059340139977255112764784456446359623467736813331883686800025574349721134754536008462139152529059789852475850147294745946749474363662804009864397666892492625406193308156588030842844099582805138374711583500856127899709106906764023899405939063551274765648465877881020220952196761614510569808040804531545983690875469659969477333206694459706572992578005216839581789145729300755194648735854327689626608545715931799938506927253223479771949631254770722963759199960361466976520052509349146169722382490943754903600911696496492014340985076397316576946323702414411741515887834878326440688156240142261700725092352690297750741956198552775638074914953670172921604210590496575471857886865774337892801383640531448728641273970275836511364451219716461866267931844251437409101085126722979396774538784316395568438759457847176748296814277275420355745230886083712568149593239390657450645299649239930957534357320649480067824291861023981175622790702644304519321419841645542770403510649078927237779959853301322884937797028187254429451773593719980624542357057108524329597188211419428976032402911203791432945126372434776330163416143251644206075611314546757439865222839225912063903512846009687949949542145742686453949673245472117223546617264123381532427094797852495283564393729891498713441671430491644571991114387944681754484822426183723275321185312806014399496660578475920537270010146040096056398125991609442122847183448214706064545569680708991009734079262775772780171514635822053010706339746213069591925411526860329852865972065199574647501099345775873953922380398892046825697569708958760567529362128542931882681891077513841004004544477048179918880541631065491357996517397970574968557484296000754785225704822371855071677993909824672889734004222514705610207608774904137462290359171429243835678536046226604484447324894519620588935922534267276812766629266128350530559709004960445660262580035612190341671229787509908786640310005709319398188975014954047335111030848216900643112863270339322524423013887658383619373415867958682395689035513622148944351215019764477451095787732138769236030175260534277563370233122273840411887210499042631762830429473609858185525610223902566282098055226505954903253504821032559395386871630173458905520632008149309434147977290779335826768739213700771720365412596467664129833763934753052327172010391971476760338627330298906092805086130703864022985147875977372120335597509822799548719519957023561707430765301983513718024944335256191504591323801435305397614056581679528276856304514759532608871638224471982724468176828072348978285651085911347551196358541753294577604599423606794619483984364434423665280644701605602807709246695731216379635261963795989589697025899723770232513505292229099640692097784551345373210462676297692873491322492503749023940020675094793669580463436849262887296593734760226036748520299549099115602083521836964447186579254365227315648488924264511325748482284179604589143527992617627259721066352870911760380350200433003735281817580303727743583980530242129339934849172023019612281422693644074854271982294932208001169331794551383619276377277700825970140635478194614439353933701815708621654671142084683589121383245488624428248707660662541523271961399972307507049298881145598370698251962047844115884730422368811569462011899223293624321320195061546132029848694635487899064557026752268067486462177276397397205430311248478766866577539149054585428700128311144183851370293003165342245714752625046067611035211312496574354386908406211433389717886023641852554361686409757414196586081517759261236773800137055545395104904918998153273314579889026252554590148271387335240935626580954919239805584627293255698849616225233621215538757383495570971446228730434457473545638272142845561291547996600995750306192279133543464630857843734429696012926325200287908951284566463924794048428126340172467815724811109915836894546307475847027778438358940969021279097512372667099744470281088843550883712871400216664993749221710894209056880686489065832224891514583864157230143660433338330757918300838910847026658445686462377848638356199032799911749988455315221636651745378061716985055462168393405537946288775232395335985173992492397583384933530070736338792486255565173167093077042108749052030929596350737811709305886291408452536863187297275938276961436531604881073454654244835779175123353562298278913088984852426192639583857027995011688425824095799271168861841873921921173655486558129329255363118239213091656230413859103603886120476318990633557145701690484125151378761608137696744057938105500626150448932215145822603422503201091375464685901622728177858842887149975105885657890326867239840662789158156880653334903908678932590044411931112346131196733430234177244848375876571726655091239528871075706547920253072990036347127183060719517737927604602792619683358912802282763205544119464094096638658937503131641242857631185679819493003232714637874552166383363756907899591895414576602879606785071784612474489891621476386348818194149423389059433797977136042718662250523871683911161575655834456908171431554017421772952645036513005877263811547032476898495680614338512657672720061020860341006105951157373316511809544573647755129710986088538739438301253065109715931348379949566011016815503522306096741182103870366097668753668643294527793854856590727237340462907096655984712461039783422044408136930040360809532721764650307086592096066017263778081867193059395997254713149708008615781297221611442195525110973501096418027383381676265698032159659100015985327591347332190801211166198309471003458883634544319431966218830263366823356087355075877550159732278740249055738429599295300702073272490187396199611498488275365956760546806050914046900634285826146063753195948628706742597004683293564788915779723169103613128962572971241632135034490182965671681963285749532244554558299074253368114666110537392668399746606017272450545786856099328007184355173301693713700540043179446640946429011240134317286479454196514844643865324190590901348989508806076883640100324565250623926036881009987732524281052940303231338946435255621717106113115359956769648354183122360474960389213706698275452671314459645746156556271864341005448095645074445331959827702006426386791227206922240705091165669421138023780244946903684946773735331410691435370077711895245746126400568229176120013033997804767228577268035557454441691078154876534713161015414762252543186028905057603906561103337547286434059086280546422794444568836242003684536846943943825127838902278135229732014664398136542962031639937067680238840355667702702148399228910310496335357333563816278139685375093446292956448399964635445906857131938761299216007650211781178613542296475437848248795745040831416702377385717016960824597705493287240860058784535616993398511889783560839513328678883013800361997221242882646977753163897458097411195620018136202213541251294934015403613508396431622117792939817743720387988391586249167106598237181567377880989202881401049581272918672141678904052659592390261044542215442853286254848627665314852788291026978970695248788999422348973731299437700009611688582327406369061198467216741380320862776242725584272973854395089381978533719797951279494637203226609640367047599349953317633533697281473970469790438453465763853205606436090991322965914629998457253471316909926901823786888744236814729321308579698907084177184030706487595931708200905507769909386986050761692075994204110001410803219954064593926541359941792266441930467168468455048898861583125893998222074004987842258623868353010143016082591489655379432817994236375070020374251609572214711283172487249986984431091557600988902442337097774112816443542574469844380125656693982365322379353535344490339962419145355095893980889750368881585605610968729203294139090157657401144586962074924855732452822395839682546774840201922149957519847411129377876841242181578230326859418720538357456869221748278679825328223556764717771705774673617737405278343608264018835046059967986844972592961158839746812598254966697122108946581288364827164012313694259493606482279747276529505343423332920118091258881011369837551931946387985303226530482488861088197477197337046077904820881094889580566649428701416791983316614329785427245399072145674659611331927038019250213197554466047008538531221773422001392719151114962000243123466312728727757784889009623813754066092868662311127700054889729315696959528675252795925368635267177236394624960759963316206436730027117619378304032189866892804223509430093436484192436500339128617332536560928988124365188466980367164430157051281044177032915282318135575644638230996084330467601781941706813950574773696991419130764020578084044589360146892753645429142340880638316829601201454711690161465294193893017331302456872922870252186689918914606068770435215523877905243134030992959537411902602740111093622425686547571243930715583989191241692909171368911425254760885149996166005754342026993222069772402300244424537737582188242627045593623589517303129683313587102959923351236330701753220165458098644976610580063037933066908158478105625452295775328549608993656083471505131665944504931397862779306721448894306328747910377041989513183984549635524405029091829748326920725634529007273116517317951768731895976720872463972074200863495710859130525642934276121517882245384912813531617449621366376778809603233662919908664320695191469933907633044398283923495794744963062421808090932221746636012093354309728244879926677814921456460730747714686502025995500390501999247116103730028251130313729706742315956916004947067713118734863308887117405445736672809780148405929786026668258667826191688299263044942795484509825895008098453704853079445511304445226524110971225348599625774263558164969348179893494298738979839337799620906045195891405645664922348235452075388715414277119212143914546560194236817982044143173617761210818151825276319246722966427228794717133120910209392738219911921485168700530263268368082661959550864376279597640278268205828586848534601497328388120969101819974149181240592289530790586988791215739551243556928943696077342807093386920552917213567478761588618989441085776334358835910811581497197356703344046503683360751024995711603165381145571155916944215768862355463240391835094680825644680457770613941841985878728846053278468095461746528449805588599964593888146442348192254351642655593823526541709192207860285051502435140011160714734263150841774490278324290150442006248321511982877845754222394410106101421087400134000577763496505393837540549579875483658314046042799433665883865729383851341253788997660511946648821105720071000797329378239588325126687431019772527513660642907451070406530432597890619265613771269924974699381160728785546769958724606914940142943180667179102005757591392328476493682135056074779103685728580345621911491547474976349821947568832600596446705800640976248829259145446730570049663965687379827821986115138218955563501646988538900592686430364153144913692881288030019433687833920972370664729450601794525240728035441070838966919562368021410221744420541823415127920439607232271277000398986102231528184441842257699369756728366995168927106529271762146934797457488234848781455972452173473080322527796109217123235708186290743554852647284392264483211134840038661381045976768135623901647835194205648662603759140682241138585022971477243801008188746486796854667560789058747833756985424533294458537593774089894772044653590141716693105655995111243792978502484121712276291589255492534263450558017577748945506387690998135148903653212096515434104410892290282039803659753196757907278991243550283368376662998348887738179955196936442078054094639476151292192327609667400741482642757404447190583119493111816141420648438609599482150350472590499865616408268719959391732007806098381318498094802876774059113726100241492685185751772083633448461685990618242234616089801305335990417604687387625274829068233965590167294887157360629506089021721330914011302425020778503124510260409470312834365378914471017223594765326548989321356975305363298633598138187191576586223607484383401189472704853853144807791975425329689318961284636345468509214110796558730222518337066690330825447127464624286183324332499222587871202326391942796170233633774727655847612718643321233146015491459658956378616357069430810394011474335092014419791088810129631390268721838025387953778330741698226286636264293250745651790094688082990184355194406104953312773302931035019465974929484796671627306792759641178616251876996734363695424772139886053009871099486737302312036355264435312959869952768556654142015972805906833498377267991629227372480385815888682491852573444172138942350768815329310729050396417992786210504518121786851491023731441196731366973582837857754491928898536844226547173891526965552307663723137262981268737698010452760340172272971931335602705781600440703751351226836201024998512378671295626302787210913596270892298248045131664114590183032979308391662190625706439086545912236504374526653022571566257669018090037738863848229313027214300073525419751177925833466032524010662090002238374170055515914117144147145821183083939439227609298695854154591906310658092643900404747959450019991483178935211038297391155375534919621300077612621068929380394998939653364443297195737330234967014666974049456471347632389720735968876753103843984735103485343797152566378595587094771600234476644313958710818314470891310079024247673974634391480618794229390324343889896777641620689120711887044941905586742469697996416208856668051190117958634886688896664796029378357311137668064040447518095246474420940814780976812676612449146272671433370048535997235543415292847383142489126578217965801992414777897102065643978269792933689486144620607830250400586522724271510176957289388901874589817733275817842039794664112093422658818160437521217226820115136281216085727118245389574900927622351588262741183264911607772391658472605608302922430790248071675345381507748977211703219465327176517712590956458324117766048828072652229556082068438371209886837668709720215009256629416384639047867664842485450501066608300555013829607947999193089029537044850686617412041173905344194083751582853207661248573849536312296950351740970663894589538061638048631051275446902526092915858878781957912758653177680136418717037287806291259085148489730139380631867620546938368205818210155594892563180801029997690423369892206491675351611921914848540443517107211548836857622830525073517806581986472178283005376721447527636740785307966412927872501955178301570867345082660621884106675392717757146956716477825712161115780766156305645614728342761666737641809058534513371042208353847872953289555342480938620022119965750771270299494552233757749983848954835133720301782763748143247382080538691835516688544430775887047695536038275304132878223417125426967649507300536358080473213137760786083376999023898428103242125824509517277810895213886171721553940060476556311092626975248269904174870285829056934705873448283078498682051785395842705320985530040190014930710891021568896639494461725389065691029628491830148725103907850021869848763592044689144270272797957827232484656057808082242231686636336462891965944807053982177449854382634685481211854456152720005126313250678823832473913591503159418554066927406729149880252251129978530005535162664773419618592954824126709387724493413789737249983406680421316917687688641277834683994435108705716822044767294246616182535518376176353537754207725169860245408513419612210933894274186050038492816644631510307066007739649935776595312374636986480990991887412333313733344340596366755902048812055130548967733508852978820958674581357997182298637790804105605703566826873762342834460953047749939943098085782070255178352155182168041810766696381098729933993792738706605185108285139035557322843782361458927434666206600585697686037051978937524952928903690906798147089403521315738824831736705565799132859918110232986051863005610173119835177963159574101636339804497145191618169144384479551268153632224491583863561762253821503470136221671874930629318605361172073655580044619793108161302771092160298130097230222182009426682482253429199783243186749228376628119418285654734742042649542956949120957231697873352823360299283711834542369918294272041344794083994073285240604132508387225232629162790545796395619340262949408038471655934921209830278317771178056827071074592083603704325185222490275369062732986949481943900452059144045492993577834103915905795692639866601475359664287585403873456135296387610670681707867447866019212021973594113089125372582678493519317779668384210364067246176159237047707681281401540866462562919669472425119689711380075239952848249301634363986853170110828088979916462281332928424512856447915529732294096388262818360007268724435830966091563456109585995767619096134969672232310340932926476579241076334127535674952421142301391927451367238003060048560925362176344513538059626992178333724535420512691732803092546840663633890655400635848240756783180228899859419963089319642837414760348011714039730243387851248254657576070755272142395937727645923591092455788945964231332307140906146962922596586691228611223981799383891916465515375847774169356110050864064733498970295938870023614189290135419078631893691258059966046477618439979317421726772423866196587087028554905535855814936571781074684929829985289300208554419872641337820269087819040208390622054444369843611029764998308611192367934752073734221650860269376404580682571214910818011853983515190918119696808809857339940736334556477118722218796536079625541078087294864299980417326475058210475707559962276412165731652868220185183299215751307189403643544020612139551708133706792554712994130328635248007029485690303847685561724308313385796190693002036127825182896465781794400661444828923718161910554655497594851078508387583851661635887544664092948961412589840918076668489282278069854933188514248198796865472815773484578444587041890501243954831927395608971844845163888441584557117966655508175573672653572356285552904148403053424911033852107479780490301721019914664672416544328963971186037827746428821036804088789551458814446145172254001024665812522090445109744546772300804338893829526353664191051096703990148451862241229863354908533956786670299477733435345494454788161454768636608737785346749830424180632457862587223793194246054699238963845739928387973241903945453088708570428809126545364841801204478201462643604918056558973201424469421028896445670850424451355135724664064363337474956200700324980638464530275368174129968249348411584040746837355687027830749137507209841435076251794956268512550630338878196511515303446272539411530812020848859577958155460537124276376845947794035828942466739383550341021752372726883009346594803246204798860136714282230990263009332062115803154786522375568431119166163475328924841285449177646116166561604734484356763051685923523286549026490894462947984911266326077675766665140316985275759052812803579313272614184959921286047274597978837188278019055296207502634634223792915320631340226664995880326350032894199131870955076063207871013644952698416289790621325173000755910427686386451188667452657632774452787108937120332572363643850107429087254943405080450868253164199446221050232068991647556789305615178929573601814088130940832257121938172803280519314040577451110965052742520409200678181115261258219330776935773081165388368019154903993965088553460783898966390198772980222553418151590265840038941438124586442922144150265733307576404177118428180422195228977871997188317792019107901076469211834275978299762846837978870728262622304563745600421051203645698560226802972710854429928584773549179043392900555049313219443003249821215241952247851106079600310627775761496422118526635684366579789759302495133369191500702259445872910000638664479625180429171362438580262320898258842081354027163558246991070612549495405225357603126514288942722867157827767797663404334788748200554611252886410075781107095974168468806948414775201075394406779244313810475161336980580811077250410963316894843711970909537657446149493483754657471473409695109107266655954647712213268716656988112043585953410413350858658063113265584862232803973666816330188017599379275836287242779452580226572801214622438716739950675049913335286839163818818236440167068358009683942297432717445006796021510510210663125848462055506342690298326236170959480663517180288612434917098804084098697589721184822757535777915407584426330778835066412194694752623728053625924767351913648896691587048786366014112541074685341595205556182931390538520994744764501692140117894844893398439055235030033748076407710088652349587556212701053362550985535231291211573297554282257098234952438616324605790169711849306126661538510831907709033598080542752448919560541021559373597822200603297947558252180562007792832255507180036132324562813428944433202236173797014769459308262095321980281738841790527572767333466597000073091218453722521019648608329260237251677389262467319832849445639887804889192783566466523061685576365927278359734727142278411262909603695852909595082485281670863335984605076877968531227642650158633273291032146190921319145568528512100305361584438743999496848956392826218991014645393069768234436436539360568576759835259033521452331378412730767367550643915734009688059954746411379131113055471757469505392388133006412847697278017125329876613541084357204147832126565536626721488833767947545261987194236546333929420145984637314448948105823311014367963626418916028790259876501942819340345190738913751713315104314951893929191249505028154680926480710905230215475220465911102317764067351294949429940140801216709476826073169965201971965677589179390282486130384945668816051461535046854087775696507235598426072598944277678175653241415627897020422030102172042803618483210738264000069895872353734332504018386188080255220452166878103825308978459381015024090532995126143701681403508912380026429684629182997815910870094849769829866971179695357014004470707107457657135288235136827923739594688678808755502634016287339594025069323925647987659074129991717397550388098259550176175733888854525876218612958698028546501534877532746389133094205010581748448217467754637451806751353928987810936999122354442558882992469547556053007805120461852831239018847383306736393235556241184244930449171061775137817543927053987510850608680609779236839140667939155220960588299617220979272959080509709153654200163298469085732282222040347235129677110963889527784951745041774680369862509767805345277804055475838444629183872203902574750576278006792419078968344783196181097044331159636729751349531459538705640725981361609165823871913242613327677646706274975114406297686431049720876696205667772267217127858802086704631774775809926349427418583048351626289669719759916923763984961985831893734530489861809982172544392252507132814649346734036325459368169347044147884789519915810710412244552550095377449863033257527050421926661534518167776638491998410008948329492481500474378391625923098560746434700354893303552958622485014156401992617344899779183868495664091129584175044590945296755412730298680960386691362728924989510807234288819366491713573968246033946347438005453992989442892128671303019960675674241297343915972574037791936155937519821337586511528169289710397283810596708658099705000575611430010785822969218894090606440445703625057112218212187127053989004995903731591626817358256424570569009937751105033868235761776923238639298435336685191617781340069489377513669566549632634567801435007788564221686716883515534104403891176732447190833355652251579449660946344306777668234865634647376556808431605226894973399399951658571458645748125528715620086457065827039380301173998212151196446421506881388150099494103551967682214845061948058855689213491902664907760252648119696451605307648775839384432903517487723268725705517794997781976570618885327389392516523458075697631765618409319189799899962907279792506355948625287287591416090828527732450487116571303232950662017480754234139352873030523338549839970043392324139091287083756710616495002042015972333576591330759605898321105832152315425247844249156085954149775166151976692324631300415122997197100732527049525005499611410340203508618357271300610223403787633079899869669863356400462568192725297698186028756976057877018569205493212289206323268220816054988353839446033913858649155706378390146003219030257464189095853872448909410743261363881495658186330654876016854714078914006731113300634664967124285201280377338580570774606095413492020044947095372063832003463135527141825703763588124469833350331666205420107542089084128043654140083797283501549323602702068972399415513251214696611023805384139055369982824447270716792448929707259503153861342730910617870382568135006864993173528750934283918953418192806987312452926152115291876448552616962247989365176047913265420739458273311370603918195255181835950749518334760691487180396574488989172925270651958396666490403823309490210885745526942457810135352090130306259178993235032635255318985585672120080987263160492894307805292945495900141961954780880214274770986278649880450281844367434908126459044262566985340501457775056541252059585389166350197289963692884467515447621844281995599417747857205122907758784997962966317987858026054613669082512603014122991192138890005635769991701809206278227389364897232021260445432876688545609562639630254329628106305115709341359603607731616472912303211539077169552637898271857247038173233952516330778484376941228852931765078263106829150174002022403647170235410357828863112916575018695342959915800495615985203262284728873807317792422797688205647196235725431590047989711893431113695701883423577845189254894379796210067889685790646946272575927429690993960422208183310271254098595827866861604393292690903006631869958503845889348352623143935329555568561484869774070440272451573082671330768056519524361589441825948932820589214665536178266022720609506577271428722992466214092524514056189151298983269902804007292073933467300417835314656554017573247861504656913166234026514670437725469889963128630153944674920334830592015262679751238504412594524352553778794559386152508692782514609366062510536258710866359050198040647397349524676701260083800817117803088641704529614972634736551286924374015543121768987390114056753112367848247936069463788454211941123280202813449755081659744708205088404312350900965261789968131612604116300528793521474721163575238620180936990482489158234271792052094471778525107160633606308614740873386649241491775437400142028953182814013902190038274443740252081031264022938532378636994227783037303417371008694424025615130814515283670243072749315154191435054394835574675037847806145751307419323666394914478136550763932564733755867584282859206182395263656217012578462688561387369537235288473472827832477456163897467977404057015016397998175319452782988847830383556215527767474659675712848070397858351005698168083557889041716592971872821337023559088991348347746259849167880873269374815709450852133776394955423927644256573312651835455881236753505539610805922142187371998791968747066035763131189094035627895369383662831754143112693879015098779982847834823564585725586740896587449981812134114817490045709166836919179754353138377208092699762058493801069608098440043996627764122200306566651218395232736709841372026733950933168101496177728538358619844675105233560413177822023078344565662328198342467520684384235591007052163962980407172940395037105602260248197765485744244510372055519772010174824253042601055365578162447888670557689451285223256581182355326510138525012234260560435303487924764762311603945450735574792310525824479526611034270919964084177885931818567546603161425784729377529529932438663250673889514133555525714694897031659850825382044927719417602046455538668495538700523557609983477222921036560090222087238624058202310704661563969104977193282134130385679327849409975403531236103483245216090520249005772647778408738393068751993439166146963243244194349908503881786070860819266629216889226918955088214339857032826910792899351455868440533598732011955190850981648836422222900198356234587968058496742646695469154826201121546702168501366485616683584068033987016861022153614942531963876028022587144752021348422590360987452974374317385115191758188496032872851992858545872232898029785506780600501080340595030458506642544821055513173663666090623527269162689053178573913397190656381846418496669672053001749650389692617052128741251349978048610749086593921268714357537299583160877737307772484537316516364525108188171848483959878206434536285686369566526583748826394971999414434186265681991794119877159079140715089063492752744917358692143596311771780680059607392596312531504908545935251248211631230090800249064532344527685529987802169857471521066290490333797292293715102621596922383074828849760160677646620344382570605941647526962312489560915491720779913163391340363734554398836845355797527791258854792925314242679772048683985322375450141577751580884602732717655380841063991821301574780911143269774724471601545614760201455023303232033854407132574710601925176735385300773475884896108327683240239089243409767014080408185184880131570242865465026869947593536189964154041487626667405182920676113702736876680567095933712917141407816250569208061848103369723313952082773920651946537831435865719244252325331180816975738795934051312804976665382059930377107704763724969691738533070571617497601713910648289867931412898184282985343308596938742025874294351895083768227484846473869607468647350254252656107057784263351321699568278569278254349515421950873935317986601847607504490112713042999350524568707396505171641099039379291048879646188970683986023999062545952055474893418665888377604456526423548001111598004503332740052286621046211296396282845669587211634904171601384968239497183751058926656320399747691024242478827797358961902890882709983480999807069589667539335746514674482304767633921865567576694366745494210082441570192151864537876568113442558347566103118362413549065978557510640931018370267948958584698198126892673808082166458866279963671764806597186914902498858128833135733893966071110901140869275832728145217992180749316037175679982890466083671526460629406920336668368941547149536970876869802703589888624876109885312305546769546113245986117418294573207238024370504635340862482275090610264212992977903754291605049682374144852826274178656766810349355206584131703460479697739041087956381355628851276639897327759764824440907693643049451067192213113974129066605694765444936317781094291767601260670260183764322248456666228562634741985434949741002818684128711811756933877387159331413245478659712155126174267678222181340937371669552645643761377811057456315007888773520816875289444803644562819542496131944702668488894910239165158611764569302111217966870732578557394541390756848673102880714651421692318628120821158357654047572678515138800763351046523919883090745578306095466502442282353954659267846127455610495111379893719073810596160874952987872818076283337129579281567138270478412997276481298456025243717070392753168128165399338276029399587733810827652759194152981322940973132464782062820344147138549415213462454588182536048676632815189535859130203949480468094031733842851187433278663175409685843507606220541173621350431475428473748372489822557125930778700484728032460670779981941080162450076078767176043499884279705205720748224432344627807638921228073049631387334290844218005025759729423733736366929992326611077961309667432307592762720181626350280821203095798388995495559219733037484735107418524721423703190488509153885007213870554970644468387763696306451078193677404394817727713160981201434238633448725081250235880527395951978912772172635731358212484498878278833008823167329553900336179394952477820460227026287979259667214990638257910101216262739239196272121132984464398066783829760407602311336474962758027221003689344123307789919287129571962902735643273426767728437661648765938054266572974795604825191167062358372281076802322975452303458421048015343231742761761338355418432630703251797847874991596382039176055860305218506668782123059380931473346524082900848697074056775277057064303558545109103278945213351425919635825521731803105829389655333143260745560031891546264030395689281082626818960833889179843068415329656222050516049815357670831872769053287939827960915306808673857065638245278583762508627494743871409573270293669666021596922787897078901364014586662361151437064053077699462522997237469021536826634749366229870883414359312007648021641605717410776762005140730667519160866133054290002479256670521797657455568690536271355616677574914545649293942508781492673622250217596464818197194281332307157008738812995087788788544541357296603854840803732413495404873718699707344329752885333733609989530543154855541640690408546156388393972509833181548881609422057002630440867001486257876996570767311718289572358748351693047883740052678820425285933146995567202590012125698664444765658228951949291449437490808904412345753893544930976978417086186310334904003735952342107872845096114644735602991908618408387358512343115515694928351734197090405135732645715396145329763257578634488357674847122288830589440221867250744968435644868014952450457167365473138993510633045925754429531655876649708526758387375926168760682753670727028842552868479744828850757619283414232356688025701050229444066149637847421570498686013389473287246072379742325510304226540011590469537180289534273107834528327019175066105639136049547109225639642836921704687816359573516558113526785235895317789866070156628037671687009521389376459175997745960655879090875121165560626159212521819269402415160042584170749845108050643737846692722282500122108713628210542030744460505500037435443596394162269829658003039150755985321687476785218454410508620165144128316724129867088668101130970690326230027824803019087506879319722216653157749478958496126232298480675263974614488386548978157579460863513302889051936962922294356999943659945272393251006393838966384431026933289371962338110876064359563258595150943561775887586878028942707798552286890721731860609613954126415510384668326675928171778814065990832719859782506718170719118195736952605777730345926405311025248511396732864261272347539690033638925028558939948842541577615103421590232968428399834960134872172057312130546208290975543080524675465825792279085429226834214186122489202340443596271818229422909075012789153711813419042863497976400415422138893432944453859257642433692973837868804862608215836167890551790900443560626658565725472628020318161673598060076385725092371718157394665185411976350127512140750321787455166974512159577941651392589503083768715625722834528376727948985327674423831179294172449818279036492730517192325489975962412958176975936870360856211192419720140226591040651459147999772802792613227673803554220838155605799308214543590538658545951861511560864048397344492309205478600558505669231696264409146763514001260158945446107021656544654774080223497833159668903963495790100598428731931925222752327687516392405123308195248429635324291254720546973333228565194907325469866973021196906201183044457502772140581539296599529679995640464295216612870716798758505821426492890321678459055176890757897423156530426714323040775857533217641004144563664521942987114090455530793154871573600854566572559856102125183964603655520039969645265307400643551907250268165584863047788095265541128245170530654883782353948996340812871219545514763592325002014232044425557875699976057027723007415397100604904194096966188442910745379443391344953907940861839865987838158460473794737783521884260409290511520010454736787218926728470928522139356891279389257352212013893404302042930742686404822131695681606815675688832659797038252178635672346067743962905873940762761085136534587549269208781073684837810141999289128772914081462063683562440904253448240946508358142377648084174718023998304141693448097678201702311902025062736961939682321347485965991367043305128266592205243259543247193308804638179100460604571487717301891497676124410352063336201824907588102242943191209361399228099876243151574383268262504873181915109641192266861252563545897921966624498286146892677518154856149438880103862947934019644197724249902971265416062893988502199034025488492560615716021687244882848764538077211395607082214718040195662710593570608497595285856699746290979804179766421235880674732545726048147473276619233154671736184523718856561984238580337665255309069026131896234503429492401846590944060369281286701028523345475327824984960038526406053007601611631703482292233766058663889320563556652524245810309631639690889895961086466776001814404455091118510084672247845072664963745443834202388778037473638865617850214735716400752350490632618538900707851559696773184612922662816590149927126698400967790620237838042600655852352954794652351800589146249555781358170799164226661591758870171013432981081246957411728880246418925179707628900359119043389153357643191644678130395083252120934347339457316985439165282290047187007716410128870839442277303500787939472061245644130290532587478150538888729270632809002717674093822651067122559707939723366033479732150957973948786299144982720528999473440216197451966011973479156175352611919588082196409849208000150500032409039684008923326549541570711426355151861967029870709722823530338988338571630841680801152781134597033771850597330840985070481631110067725455608718786286171340249099370771747481905993156943554700747224930791436001814586675580880467385558236880879510674793841217554212203312537808066414753973808970248422035227284225804655469620364467313053659682600769314138822524673548559498974645537495006175102754995279619536151407740993075593163233570805720973402296151380349785669861310811657366806310087449507966029484330081381501581638053471484584683465778204096038327734261440053942455918523046925472648912262631405338100963384311857588425588447341778880388010906149201645437966129439514629020561782932097365873347656249046128051158983621705871015747056915022346106804286981632290361814076000794964927662152043813132107529328754264381656776587481322267672497098437621022358788931245906894524423826555219456890993716939748583515785763993487454439738545205541343539184316676718191381194562885958571557401995926441221007615919576680674420415832898029444814317966809737820822620465780524255840278112263593523747021988237042394156696658140517590166155383263660838468604245943476252975786780778737893091259548153621461743832886609212900279338185185854088038429407113918604975637028460655915525192528137210386410598218465809519730772004038351144183402873687901523338270159021555850807455315570602054463981334409779835841812155801356678825265339330069566977765183458421171961022851857950506715923543232989405256402057812814448243097853778414229653583101970895065360233320061512167777373333217546894767495547617372588601954085903466572465824482166809008972097462198960473929414679589281299102951854904453216949730904511926835766519198362691407472060672927173679726528001598413056394015449509268314025822090420625006740803236654186938964244374211580372080194046697735410692449228535807239163093439372436321478344399891690742821813593283937605894800834683694205347348467321029309625869770932467617544900436904173795500369357720102242740843950269733790232132197821564256765684302225368488155989701256304584637674295955247128168773681606068446375708156189127342756658483061989396751501436617034278467340327938079764030012421940963695822360381139015112629252921166110206713813297528390381315682716695512327000630167341980759361739101725648799314244029316091643986272236945693931284727788476634705642982900858822455445838742669165413955079977842891513178700488202065516846319218615163305685596052869854194605897590482723838078457183573621719285868019656914539448508317960054565993464003557726586850882542251037124976390176419878896485774259216798812325446664174132714063432150805026656793313181106621771483537572724626913162103193699026999256797926711705361414416850336751035660487783011343137338314658931484583248401045147211630298277748448938615826112512285290364221252497609565127632332771552459816019010107499738189065297293137899203151749939038271586057714384942608112937866951155751420958896215014583732308905152523739080447660188527380363340033249738931220678158447716899418240813756600538316690152747906840691021565377939403760057957277300488365872327281840000487462179429077531785076492439032625713208368142948235828542709565898294193804936438253586657530434253811353969604501550464735377985493565991279639123460130367907359354725907542044273620964942429406033401618814270241545965166805828018674414455760739373581338310475936047461976986689708351213222418513464465806997370044998627635897295196981109173874314360291488669807446043737587100807743940558187074776645820269880464703748483709926957929682647447518725270779822674734619386347488150732859612309712918495435045166501404791927346868900875522796931334136422803297574649226219185742676717111351114392155805725794998460081438133872709048731879950798780893304604580768067982191062613933578141232521913071132004076080221174038111371869237616225818897794842787608058395671768306235078703602310332911940013127045516118259094271846963342973965918748515735161722852525741480538299352857465129432983008344939618834910598921830796103165418368288584978887939636765459198530857797941574022670206909328423907476849737875877148846233260205271852099240720705768495503168207156129411142891705113892299823820313749133406987799350248283797339587868376249048372677299603594610956579545351749322280706070982995618680438726401188577571546642119876861777124679600438639091842245817188984894965580877120730988345143672916390386742935111165826066082287150827928596299167431913833940793923548256580770316905118884151990145613804765133836950425892935090943614700838373779382694750544659042940034368978382929359230936407117264496845352295620022165078660304479558679046668616862961653230411796602684251529612305208979152813004061671879745189241231918135644456713788253543003397683397417277484159674624804484036820512472213679215521141170184218724497988884768209766488540778719846307258196866259530286107909267858491192140775426860937763775521808241912975200438941373958284000559976713459196178631987987833226541266671039976022111062041588215730934871709814710852528445987526596923778267263077352031315602930461465008159397845014690528234141840912259761197605981228865912560136029626449377655264168188275586017027931118587456272878924600831289046215992545876452268673598396987761261016798380153306669110695867831835461654120369871629680060071045922968895103786885632387696832938784399697437790688981476477509087276577196898381013604178859681711603563287777605271445793587139918681046870849478978389183364434237401206614192455539602891129886252513537547665539187603342673473415834007645506156082736886596032126102717963269011962230397585443150819649557018958967193292365915523500154513915493010503450798723395696200319528235751548004178752433287294061538902990311257761638704568489271359790038161861288463166646895990885156888994452390146831592144833200822950775605720690081426759451923664389825898696611065630144529306007459514660855917033112695345263375194091819021502860613841106898417769864660334017008513269013190748072208802514704266743160505432371681871651880854588034332021470108461174061790260095844523967596985294580034335088188864699617662918095457390684699090304912606418182677374633827233445026920073923196666222946380279543117479004520907882522909422196944300815609561413344340410900500985345097540525941219845993155280979114136637603379290087330631412619519602184338357786570542594864544937713045232602530063353617326006193083797465889940942955285645280545680626663591001027939697963723887225699843606511213775412749467692686702881388396311573464860923690744376246823248063738850189317643182852285260000327582944299966178224632408385014777010343396350157249051643827036894564485524581785384731302110457101183918559578880544799801537041431550784629360175196319669951604862717163066061427312327162638887804837875729230414633984048024211917800620392926543785128526503362414220280345697418829775131848531259946533296017103631269820296167144716514187797147502106708906305452273163012260398786954787396475348199366014956110695699234573815613768158186916642989802831134464400977816125669044530758632280484017136112939589809597704154478615980592966826087759036599232018296060764791410231692940631369380121108467842080349381380920218847127381730036614622097700137877309140533701890877173523425367998972240307585802574171285580446580788736393632709085201399228543458948002094859062054064961298615132144214548756210805787986054222550354951115689102688785107041468308997250093941785727947224562407894540878729880691914922912638782794193305330400769260112014121776304117203163974167518702303919452195524348322563908085447921899599525932420784746537421043012386972410056364178233316824288679377829732008392121054717048618037541565066593146029756583125992714476848644321779174851545543135920292419093010680551901492091765920670241542177515776535749680658135916143212579928890535276306241647777876409181715411838775915622054861005781658321801466401484208290511868967529165091465490412379117906524835684875118027980979567390998041299719494622612282382226018453963245818623386190368035420167294977685509114133939944060775767998706831472462726201599201481922509193055637912648610657782131113372717594523175669604834402000949346446719043083676320912423350211859136447468685124044211516081643420892672354326303582997470636417213115475263848388890498835269423087705111959084787793903705112017998818467229432547821704017980460494092840437557842741777582819444497584663998952090978686189245529751816540062062247284977545786645417126900822223500798754946969488482410728644079925778021138894319614461531310860546997158694374681987328721049352145080518203044349416503751997903583277793658169045053062224275930302173932828559215054840293707123336524318063753101079015779528405679411415498769312524486749150157847787442472760082499618050991882999376482164363840523949952626492870988381468287110992684098706958637444795999341116725608695994059727842240331363383222262653984994923271566770914134235292544224287727517642941582903458334684734458318805676340864162896629240039817756209992067957344256969418196259099129974928572927683332915888629809600116914415119785739664789750168286278852735483121723045043447904418022819563173400323542943870296815713979132050275618974573159349302511306308889955279259020308009288867494147152327621376443386522349076429439465363527032027403901988305465763817628439373580745706355054899204182691437220705059134321561389749629382448747635008547559018344783508636036660058808359478025584168861823210831196868436501942983511584719068279662791634528183345916771500219458926506226752947438870479564688541230256701199957998720224766261141063704201258500120933609859987258244065583374790261392399180835254294826457055617099380674541257520461021857597629049685929378926305649434450759160691601976959164359954483968287333267330436396005487940686315260493895891056292074267572710322629239810713937532996896493469820307211484638788146684567964320232487242691903899837571771310166802970667765299029237547161418683933831717968411691789220928949016912296563573338040290901635907490154081983609811697511530102971603323611623388801976209834776195027850513150031564431670276504964871321273033905571381923916949937790421413210651488944363228716175730815181125322808842007958582560478990753632481400989863244572860711859737457129230789253641033167192036073810571340196990842001849268139885527868631385056701922544175698623924273969467437872378866566764708818490893855084110814370313425608918594977050657248266803238651231111258911011752837797681216368913454438775540028372764565414773487640661009333034469466368624399562895618973215937559359423347524207394826623013083044680335561489802188272366690579631878992135084028391534231679105096514904388352831154397919183677031670824963157722673923216089234149366835400539403967949574609773173882531801538721885648064485246561710867007330877114938257054369758453214016104171536576759085197723326484170366998367966373829225263610678736322591831636504638184845154881147782391464101905642995003764161295396125070221079089578591514602200010021681083236849931633263899287870562496519673823265761578706081542978453092566273722324674012923017717550621469358863214212619856000294018276947676645994493631819992397557324379478529102482043760676321275087058826149524099500235324399759414457330902504995256370007801082005220961979464960105052119067956589250765599633629290368242358531677082724403104728153878398244685647361769317593136270391988854692216075714565581961462624352729129030339965784794953759627434774163032875154829919943085169324806746254759526508935278867990752522650711632321673255320032287550624854541425363466836284429470093980424131896955727153286153402707305703859373352649918717295829362777234183542038776878091764797414224667402238806884982718256941547725604692719242542384018667456344153153231769484681815344736177010787531491830788937894143188182365274432318997112773928732161026348569086254420451678747732209475152648930255834661709210220024467150733264491219487732635935379089648073966314270476438441565713959000480014727300662809113236006119587506656452383236659546857187886457738925987712494162103627987942603504845023717434661211996969515850929964423668032842064940629649358070115032558879056579261575607051325232366078666218119206994964411663493538822905029908548800828105580464317001408354161387912077778803641618587213375346763989404637511440726561300219483333920127298902531913491989165095408130928098825660517417509357600424982975766512877243593902750143070153204798543891525175314781028635259600157229208457052567488564271927250798525198240848426173579011186124978748576787306624587486471513498245641732098621360613964145988442989256535793417817742640565901873024842740499723527685334233739672817943961359984205313154217772761197617567380002496593154432059171147411294587977914755990254709894489002710222509269325310334691417698951827280903401096997289480643079365547354908298797091809600061013167535361947211003639300038722959649890053373300817598404940704489112433195065945089691763271169685844250032650361956402564472408483178536760964052978912912052511018161118535714709356195011249601671310838648931194802432222458585875106471094164932422806757522108471738864826285482139551039150042658158916096797477018543359476900380087903824695917072717332290698868563449790003224539516545924825528262055879474201147991984262370084556791307201097874826819273289556055845651655811779429211456415501016015028348333766906696874861447543608460517580300455311044684503709365641087183454152231407296250828767069422786580751338334955750108054361212430580048918294602323402061882318378783778937645139674318200921718039533164574579739696029818888879245742389070308535828907118086213693807526003380308015178126258098139361016782484682717553561136925476927584362926633372917009980474814036474095895893057662629173120746313975506838874289206523906799240425455733947926857677695387860399285725213310960600559391638439976400400121682481962485749982146035689355357720422170447869894515820646599896679872468278185327660184131407589761664998377330587095650677998917579436155504691271513520776789304522701005247785659637720652158435514703133871016627125200336279528708245317242895515547757717195153483673666802936610369292895693588347405309456140166851372187934888791690291454178340313597533569658940429907771842166835609838671539935948420227204698867843057766033468695503001936068940804623996276151863987481056779486339559784292305058929399970864158418768521332550340740762211298259332251791065477964422815380338680055850154690299695185135889190740069575666643772034371757441756879330657104669883546785395512051662929912273779329899410642828149903783691131260881928390880936398126009840812320805736365493644220046100951733072994117559195625082642951301801997273429200177070455151132130453989176919133127969187147059801821948781297149216315311197910262404622366348655398644251240229739593221547274237409318263220453898801363788518847896211436869332731167649319411089966440353340348965398069063270159885802734293114070381305833451715494435553149356761356473211447309628678832984677841056562987093881288190939094881250145806606723912529385413072344572009990129507987435834975234686016886855745284121321214653754649246155685376587531241345169886733252774359596545771124741890606598378530407206588544944615057247450501673195944759486841031466517215740304880951369435886077265038915846661465843012666049275386394459133760126328170774123773293596571790589569189333379099498614540080028867249028931547199232479965440574940554193340670523077417882613558910364743903470385673317836890704292822314879498811206170876497058658745888234636805282329556569566487448404637732008894085455157898327570835085763590708932688927521982537311431143683886078732126314842950182275109312746063493509721563999679138220785917595225593354277354307103503290367445934160716778854121529790052116492323545061347080755808539393269825114748909741936523191844082334195002403920726041093696827380598277705217446103064553177318621266990970635471450506413208077645700698496678185298172481644486270612644376667427088009976860187275802201338505767667186502518299948001579396193054041294439583608560332916872165744670332551294016945072891049099151116129771328337073600288217430772013245894803115778973846445490533554563810285477165000062909865471768676537631336005293772682280640889495435067481397348571618101738588894289796513457536183451090853889275354105019306613670324806871205355640651728818121534174513277801146086576129086432613203719356390030360074236287529969870348891121063040829584226694085098318496251667173928409826291360672839139515600567847338086074750391822518439304765887702143112510429169029046451226122691483648233834282680905170008907412404037231175980111287719823793012908688524555819060621628961054889092557835746970556739735742114438513723976233372823062627088384948562388293035181552687678918532562758018022484008455716501944823519823495872393660500909746053239495507568688622207230320872800115260184075258097953587164540663107583384849805357613947390302113696680763758287772447872352734521720227920668746089730986792654605802334353093378410901725515968452641848485919983139821542390491805424339727683224540622204444251379030917211962074431163565985804880600041774745947635070089057660709285925339114994356389656638866857935194809458180944757917413629683957043981804822085120674219572823843546118177290690562172263635144648573093735922408719356618866129919672214814183242625006010920830385265369183666952905821103335509309568629282225435697829711648828104990926999756707246078486303090145909417940036166795753985532300850505699518891920737479365373163101285582737137955137249818588416252745078179933250991146965947189726362737136877482141656016767485543975511647828950845027695209791325154839586711789205982953595476273201011626530137572732160272051181194277895966527108072370934118864808975508319692610353796677475559497726044645763740723270211584872384425689025378241815839935512060283263002616129255029390197053624777100277123261225587035239923051251555247674481407218839672322519269855511292042142340690587700123804977343091696782433958935979835427548084968361257318319565207430133453898410641472703353289170254838468771994293990771500675353691279157441716321748140168331697284689611408829013534129061892657959695033133468225766809830003402466674407372529054789568875743410591233571673712313782661660299545989018161851511067090630007544066063713913427041356411724018937895219614352949511917992536053197771740238184808183382594866055634932427742724224107628193225202944921874251493444235867853606362303715799891861098424926490802188865235415233381488872540676827197633248842828470066406530466986157703932047426823223559789786225655294115811730437538733179555300965125724926896161445009266677596478869734250859153909372309010549380381629384432871763693090329225915626733099047587824058119342558041022938332199230297283352302795804799076100278957831593626763664609049802293051014857925651194873548749413208745126223633009267459527791455336805081058540075167655124135762158325594723401291412428351546575313995896894524703247630830394806248510968394912121366627964030652536113663774152134812796325504295320524559941048293821494276976042663348754839109159845007528801780614965619488227675775710173568116672227356117263963182712295018349699548986925115754642549291510442842085862534872922238558044542975384720643414306229911807396936336599091019502503216819264769689746780371580648767829073444806013521227069110267162463546672272203882127145669496338331792019984499755456486744155999934442316932759376991125562113622847523780441798894495293044018364350107987167763881308027856316918649679825122137695921336141557007053604144877246502481846567904458055371536922908251788490225880103668549626000705055494260584024662504256466429714945099875311368188294987594082746747108634103667517946073382846052339156313375427438755714531552429788929295364812074895954256057392064040573306709148502650086362028108585614493592087029003963895804981011367045590337363221194233123823106353509618098473104503986352901205986901026289036200674818863475515157305734413848672394271811656697129551490284011333135001318009085454435454026939275783803681688222710715849802277899104022598691873239820032998533622470928716426271169021553744306620578389350744847344319995994708670150185272864637826112485349605582819316996055648925025927541592906359305512379774644222996317903012273276034365037339238655625574268876722320028930455710517570746676579494054357171354847719587860621235046868392285534033672069707977899641126634313204117518126840828332689602732618445502196643889305117232501904009181013235394939532056732632340488535468525148987555439261893345969088694799719259827196565733693884430295062235881683897484367806987610386895625470409984314838845849397398831821170006321439190449123084497314420982515442375765707259752416967297400293945624660743188030551299435735657772523528138568476358622635650163660943822748171470918325293644348709420732509030274175950628410184930747763746426731810169676101511185752976571296401062378879359946244559781480357235863629259166074009219561353179419061563667463931225995726023841250466694295541991969344194208641432755355291309913175224911859092924063681761659841296341592631004258614245395572214793356966182765907246363057590543096625393645057088554824992746692593651815300137587285575134728137922272712929878986254630304097826468452104083120560511400274302801412153351304394711741961117133815628494931523404413814370426666817047246053553198084690695485092507568223882501888324127754962904420527832155928538549409869072289536210318263721998143982035941453245369030941552374700392624135960321129422880257195399707811940757910570192369780047499418851224898482355551929346232323060354436788072886866497409372068289771681817032070235063394416718537694436614888964318214810608051271188765335749518102499187248024936982447013402623762692139322208304474886513303930504179951190910351103228383731970002986378259053637416623444066103555345428681894572488970216566221595080000397714060149131304023762797420735974688155735579029394846927527931286834114811232226815868584616409671251770378779080509761792426952751898717575364396326285545149360828805249826800631229160457469408753000923485169479662407555863546127603653409244456412521594405279032889931513885305570190075195381477150685802488939427398039388808209149133193464264419294688531268430851192651995343730973552627167415662926558751963301035358948491110752684381977217950445051367693604057633217004465390217374423557240671605348840328608143811622488316502016390440895550107850017296676744904231316653308504458907820824066830639822196574642956973924883167918004049851779266213360485505088193236100614550204257032602189932885107344368148391955167291203275995522456920620697931421826082919987301039412888821021541766361329754184397528963206996756524537002353837242119638394355849442822507587519733312911905955854281427619146844087851093702384586621088311436200416679646590098839003186500958383283745626593210585039844088676216968225147736061364352345762701639439719987017738165210488634577002036497256817033465363006086094408943679486412207833206805280713666598922121425567782082348175955071943791276290221974178276548020651622201364874414285522549633196120796264052246764554514613909922563134072932285444818147749149654006684718839291064073980304905522575216670057237038010670205651047457376243912472148272829741529098004977265073593326477443355216054870553777812366769807894673721616936031003183833007586191720500557995866223724342796500749409935499915707678574758745898908723094532869646380860616900792203102025203432908251111027966911723215547353586159568519862970565671871872122254970878428858476663182894314920027958619449043000371746123004437448218221999030263165889118064294690853028325275579736686276872630273700471066446864876404061627460457858478126280016728586958409335487082178437798930300354226741193029912279732598740423627368021403860365120843735940107286585135072148474356120065402782832333083028614601900168711872935038853714489398711474180725599688247427631422911606225518363276526266273746043013751379872448033929387557117419585269595656302185364384342835084918086711833687188001040744959007348725507125190446364949437836552639138670243221444151418145894143528842427373846108022191630029303007607128256389647346078800021760721774608059615552677007905122760068925668707900306000218297397052558779917662715979895791574473294664900717257423065079920520910365910933977246102211791549836194002568637824983759866981966515837325498483590973771900202761383161507010219277894625900852322993140750735067562055331280224845103316156046888834394578315315074951765553571293388279022073943815780562179469644590108766957887183286284870895202981480006638894309230908672664463062512244214600228928461585818393994352038728215350174211044883113958811657331404400980716431971846066130314931881134594219286011939441292724146155176644584874256707085286502467476811780128722369767932927389462311245979344341404543534336001044780941431265511649549830722379822124840009121980617930360552968719303097704188877219100936052949362079650428179881127169887690568835291604455187899678679774175490187160002088815718246645760954261698056160458608801835708103777906018544197989749925881252651955018682887583977469719322642728913920751818024937545259115461694838859908031930249417338837427540027516199061172575364600409979294776002647808570591000865808563979293100778629945052740545815051312144734906856800490841994939283873965550985306048648571012247873262562104878083321333053272226918690941372529046590320817582034333025950552562145272833932645040044743544541123071866649543287667543127770308104216234728370291186807863945505160638118424687337005787678936807845560615348723034122474353630103166684183258569954484452596546119079917444404474003123096897303388530313165796189473464449170439205898265505481680066948528418962009661803586221467229368263460179243676900525299376248899867859889155717441991716467449548388406912915538238199131122690597207575306545402023507836624111491246276510060390585511302256428541891378371652852963404671979238868259713897153592380048930603464310836217184079109083417736610914823929745072677756194555074082443928882676346782594062213984348043488332370721015315348974675906415406878118892426951567976636393301504106892257645131384594978320666627471795274786255840227880339188644714221639039523611675783273444887458122816507618476266671431995888507200172308339141742436897951347165231938501365881438312583357641468316757495814503544655929886913020571600468921713947236988997594650916167615557810507023615203487709316635668957963851072714112673176966418809753119715383628628949911142673926749628748533856121729388233699063987819543583268842762751477034455060934475674492123234071516737961828200009587500836848499506348389199086654361820000898798641678151728791577645161265247025593358729317887405696440954262453214813636281258836120357040322517613490194471381762576384334568356897375672099772261931692929980903570752685550644325647120250811131321242751225018137708364272351815564762349562420965662701778690038895725729847254297000983213250402777764152476948550908405134399398601243008047555493755564498858729983955909550856810159090215863638234283892814966573180652872119769642444913494248897324177391245081992005113331012757245445258077454507434188741422456606711461240230409013279603898439781297566300052088184316700766431919305613090729151577942532629490868483613524598687029617307728412300799391291052920234976556900515092623830693584418400279979440474787602142952238917018039302196394804892551460918368626822220966511311768593381489952582192674151684446352310546582779184950462116657249797045335048689630162972274887597294977552565848490418811482260788068382589927263779348857571653640339517448306578849513415698676462222029738838900565281871776281543687680655921658119033657364544078804352593161844742599864221486430691963101490079688779235232237804960756317160947672727321708518267520020474530245531728829810238415891367224093064621681544307709829415262496865007849232168356664936490070993901634895806702100772246567677428996108004185170645962993629636236237885407556155853889035953584967978168358337770358804086520726626007878050707242509786995262907957041995131861821578193189719883630096099017889531591920584194492317830599260406309056139465895576253668177019139013832926381022588615345230830237637201971006363171960626836370246711575154459919788211824131097762216998045198121657700459407345658775924036292704527212096070284281372850293085883856751157105573325814645952227353575782719638760793099295016169260191315185877585902581392705670233328351672261962881188122181841259915757455510604773547475923004295305370034451836609707184108619320248396914227323475256863158909415918454677425098568191521378768718986621980237829435961261972836085237218056298138269789671603072121286693482669114156469711434517860231312678875918104259521881904485991571565373900894114754446813263157289797429116989931896709941568351266759464849849965209015888724963630520058124899643627410962177510532717174696368257494032297546544633307657296760264494788614454879089302335455882166240741892945764505245334268894485564351223833327979912807698538760277862912304788872796862524883364492428485076366860017774042472859370278213794298728109115144229942530031904646135335807424004276836712002434400913543894318319567098842432443298860321036647645627231102797974700874173777365509680135354566674044600190990142284363040173720395106562967387036891411345598587769071586338799426978865676374916653151399360038994309354423733310902680504816259806203524486899798029109114274575374314496593256958177529534882806997816829386102842041635787162392990373855711084677925403635880000407648670231078023413399457257897865662558073573398816909203318952514887654398108188151648825703775863929520136636150635532012753268974336868654783273440940140519182875763429542106192326692920465030034560130033031836243595084652764617089291447313690063444564837983200914031250625050873718245862981301257349646317858517730227736860659265258477283128912878511668939676084273733515366702030888193876645190863825494626522245240331106655661647485307721418226770532332609788385810434564737097515824008686084617209718861744047774981355381960523948846181858013956031143314208618995617842124711404186830034304097119900069452084129021015918983793418043142301012380072350420504271185042572723267644663341268800643832270133883430982211368463517518767462097760109219908880693303036797032861470972038721395232042225561771213040884711571772041469520178694854365654639639240908154890867521281083517230396117495930019910523357544862234521010470291276160490447969192208201657543901554998212290983178036622703234693623000533386250390746897687441674746263326084057375817080390035036020846302959523295036742121452398096157333406172032864135841708851981330589289772911838615140642776449787772799279867171419020930648300482506659738820248639613769129754466698411888335430333871790527021639875433383012508675245874096147739154578130533037250639236728879736168863277649143881334013023803279130420153224958547518146078202968448318095402527723683880548299994016543507783297214468358382098428140662719249124272775748086732661402701180968872159067080024377285108227925688174611972614922383535949650215384529900139323520324657181852495239916361204713037698319878449627581936295214570635543244644070719451174825080393022761777547681326291840598060861575175021030759618475049909005405837336847534377128544128496126888089525528681495805191858239153769530034213101179318535442001052179832183458050908458186753813713208938067471601568916169900014221192102334268026961686805514225135596064834958608151942814457143849759322161813975055875216060386953997079046903898146175142997403568065231043617181467092542205353860800379319877702684055136812930944889660750484121513833947320507406683380112644314813151133393752187066421295523651417247140511854872598707836601229821802970763607542897791484393173518693757952850425845066255634223028337248733391965413433928071876132062652952678816680400494466264902878065207328177649797152289787532206084918385918453188388146976046816088736110962185166628095417926646958640551591036923265948868928937162042505062688753739274528792948811119151764675445731149798941490935684022185203740726536513490600627599014827968818817270273131527291882547358639388425558776916992845466600489000893387214232659632299364766361100895076386830331927248360510582089639628518973036141260823884929665011303107181939318961598763542279737092203024224703500244509145453866451318534253289168367859714778914113647765351095936608159241359910613779886543059847448558347995426069387395988410082516983259853394974344253273132697851819942813353768292293885178178218187773577115287586700824148509902495097941921826092404488641916020128081039799370203854212435566418042761592025986443659393579769763990737768078700815453421968590332808751121568592024493155843016153746768452229323941982491950600138363218045648331329004214555370832995808047163922481005735249511438892512237318185157173008535582086021342111553697108811800521703250014999337747492430457068896221716277830807462784464702038699207007346570824148008576630280160888580453087673690648205875605158281635994825628755477426658818963192800174948075800751941134153731816663284835350706622653866311259004876289205203660413651522414172833964627413475483482603490956609888292759783275487058715254437544076408055874071260769131378067922145714713217134960116661203223597216437282914006985079717231501716001348045695041690736470381870007663520799055807736324971679021526366171926271338139432669832796482828010177535495573694534753358708405784984802009430783459214761806707466982044503780976325238733914081225448154160255965977104254508738003982791794409529072009177212647999438285326421322691903071919670352552557125084629334922552584631285360897442845658444751610637025107401250690134406023129056892328780070438088525462287832957787710612714885101519248163153098365097329191607514479576226286880849135310965150087201094270770145009606179453661437346944603640413511944859933485451532841012396187456535216168974768425170713105030715074896863663308769774334868649574993139053222889725919833498943167430321872877138666070902464425846722275287991210694356032091604252192547088044120496175328550576475672465854034862503490268040071210045743310670942537356507328322657468619593598508510000864605392199460760437980219351706018827854023533463103158031908113431323244923778828281611022298634618843169092935662121358646513454267515265584483006905418646437871763618044501605314756534292440189811767314205630353064662568455531887821647678456951219137452074731064851712106434671561569690976983824582588353380797057628328743729981967217685024706209302756776373018195902878663548802850162426279401821167661147641985552525351180533286656878747788254764178746815156037099175798223111290746445597936562118088678039905917944499025938426308746020892426438039596339177705377772179928931361558634402179300448949861518391449662404811409363662879131580764726305328641675485232190633127698985691376899500856554773978036408024676425295161103396389365165592354385962728848950748258600351923734355760998745735985467228909170821079035850336825476395517128449451989854157350826094784051756782695647841501887856270752443879811369020656732833713455818273120708166523749322441592470069297409493757195383923588682974342481919886680714607055456438481009198684664768101583182149507370387698752783730918519951158937940035420280751576998636486873739308845684206551894341959358543730573612220719684265369680180048590120723414339723515250184741811234195530205768510933700934883870362599601933391644509329251182224360006360714555879635920974659552391672234540937044960763749927664156567807578762428501742472686636201224857305513021339053965339177101684390636101658604262211816843907816158653821814095172587724718826749633062528860145660419958766819570999178808092762130703855750601593050540617597919468435647564302192255510661589536762714031773265465488270420651600317707133016911203166807869553813130269707609294493800110417675826449970071273428675102862104592631013233091720637619071239584542763180906145409959417143378346182584040108933384089139841279281720316509961692086213541602244256063293547430491362062498627691078881457826932902335946034538011617768880824508132057619541675520674908533701613100929218485250576547843044634778220078450123158789391870179374367801352098284018760852321168959088893987566305677201033869377874910048966795268680842850118352906793708168243932974677164726892918543722830398135906049813485298197939928521144365483182294502628861339652533485578339447154899623991396643679202922304796610082440204524525391895573730068873847397524825423269299647330745080593725524709205543979052364237242809378409213280077486147956198551541691123777637298032064240840217113302691510465972237779558057336828989297195705069054917755926661083456092321370358018123739787740878933553033540097309199173476725956190445658097788711402174944719728554592380093086022046018590712932446203642243398827371812485343291710604588862762297294236311144653414298897852653885388788116608415417111854743946475619607304795514059742129912226541797270693052147940653475655749945568172160519175419416478983892730835019345485020532876209890863894087763144634887233594095962694577710101907337321829478326418321300212376668272236555904116576008658163794656206328886610533713643785653042751736162074660442382709550647319357001052633222302476086306240512039245470717648494961907254231175315820808823042880249029772234911490837461524473665070324604219632606422918094634161128181097964971767421395390840211729040324423610028329751345882241102878224069075008063482097276272615824688090418531311198339572584876673118343564194184692599225585621181941622732404844401941428523826939727099213028941999819842860357730584247355402578849293500236534187965517860025244488322720191616746234363707927510423730243116521512473010982358441199092600109374108443644626301081611040361334882284274709914521489015973022840766322433993050470452597730838012331637499045729028686056447348219407059362333194698592241239840100181825699256836936477625755538525818388969936794322256546006403621591350704770244978150252732308551261130315944749311190465114713752909681687551841956310698970531505611955693917536555146239448188548771278149996975433253753744864893300112873632093646649057034599530309485503222467417958115526334301513986853847514117110269244944048757411971048871395590095801876456624812595992431501097005430118578640302460096456146178747576843645531298066113674432682246598976059819625399226518504336864196501681644638537752554326627418246172664998784426160763028166003765259309998770015576444338288815952848937844312084249919675993118453389623579927286676888879823261640550361998851935805737861149652780999277952719503404626618968056752923516665358155363953080950623375351330457981130010895184752562356666977738270605583413030692518150877033798088284591705536154855775897854987099475950108380202445772567089409275355434237822862435416651253383503991742464870199524958548933440945407260328807352907529600059924341975659959528165869916709852024615796655203127478318522654498015263889577906120567173280929498547624403581663487375737995584787379522510185965773001982297865230624337815245791491277470881910892430139802789338416913223623257063399749294736848605950324948831899521702704258142284155542809590598866128591189553704121714410372376842082085051717735449790160985105667206170417372199690375182424751207330845437416127313531063687347450452963862234649350409590551261545064434373428840289379867696131540417343444877345533402611312780359732026899767429280539188356599969728305511566574109770868429005168889657001625721821985918991194281190600781239530244363207146272975499510133814852701835699978164467909028075806660676090659743282449946892817016241276172950089825317634952433472376577352777091062650372774865633308537567408793302135467640941836826666280941410339903805611600356470855763708341083073805951202522559975341863141022575305815427908990472353379241032447195238480911910673134698240398937348336623712634547291460951828873880786166242305162701588503880038268420272294807720761414829291564942871002986766258111419825701770423643382823155155404872413718724796204937798388885095311106400564480564644520992263874217775956914338258509666369415877789325770666015967390494255141551383350399781294002240701840340641913712839378233256156574876161039581106956370411464894726621395506860748072440872833243776509802774929640820907034671013950206993304216256806488559368752588612185616106960027478561718534424672840480067592547239507820405918503658287738966956010130197139841008846347625529653370288625368970202811379154291814889935873757673940151222649085607916196646819743390027059172203645161131603125032080446879734226323606528198040435297692021494162034384075594276017523065089747432133745470584482580503976530138342692888387524763281758759684687467709901928138305086975470451385427731716130861581756019380212913228385026394449002841940815129053490839755856046039612362802867315317780363416568301042344796717241402247660692350868020641627710704305416812466081904304026238760433740416724428708417988272444630181843944308790509658069037451948149698978764079286191654148922635441888776159194317519610031714948593055324063747176391631986167573353382609993133257198395997900505994885225498352346091171977205329964785776725115807297531273480817522741200933791290432656515353996098682266737163202781950067741962583668516817618505711386346292093383642347837379885185067395444917212062344660957802800807070125933912809032588484670639875353147981314140063873485621899298607393216431998300048474516109150534157972563591183777654343087019166098679411608978369540031545137945195437929017529033584783441095042436615257857425964270820883825719321288858335976943679430534459923852143914070742253184417713220889706940479785815427451232299777882896159160696833943996783393604659631506275016853522719627685165812921970189893108817912968378173041966337695823566164126331734950122846221796241008079582299420364997876629361651517424131055643242195553760469707560633263027802063647771445501342937887661676896221341608942762456718777556178198019352840089577493053775357449883919783690370106985475344479855021054335449050826656112918011846174706200379087694646079849195436359354931515531052433569548849542712076689513353736249190467771553293015110783532595407976381102399407250460632986920646440015807302173769503033893231873318760899046886593083700863999014385454902672202202984424929599477254318212716249703676408853864596330003736182441086522370864287775784063797974474175616255095255274813628996618755080217463833778506053631431353789552475780988226573413492070064076078582301349781994160036930298539521025603592564884955060871925630052839455266383582849440159705458542924089972077190118118994321176759096686712811889082186377494144235990244233605891185979789991192905302235135744743302396366117803021133810702922568835988912948010852848269433755929088878039122461143675081517354151516719842804072096054171848968539060380951699872366733333999343717572801503669611490708158062540639638941898359785142476507209075292983369935695359965541473477083253840911769666411134411641306655754804683213700413393288225534702255487092383562449854711896869047459448264046449352615465805066746625545313931586173346975883036001527033751064064414708884311690945455056991206479654422947650153625602500619322473055934040630090596783582009988369210596531238759354327669333588757994121620200613843636223828917063221278432131035551755058710925776096812643874158117606554673194027587837919918002040348494023552462073977160515531119889733015855109093297133199517960085312711091097731288672319867081406061524756800770179893315387886500987591082137882357762290407578709116720935939077614161620432797342732736874382235275528063793642964602992375042399802633885843252125089402765135090853516002077757673117414652064863026622102263704427536859874320166440580202038531022151635028945885704745765210828696083222688281715072628419828441804857808211561923631335830663238108607506062472884466324482209004783048096254393758720097629585591724443186484853346296318213882361883684757037482968466484520654232559473526932480142029477494149241453595989427975030766982915399952002777176970693691392635973519997201115859942052804403925423077638772556241456043925262129316912826156144387986795270483173857311493507648312432244311990076631850685533711073850046437847566356352843802896508600944891234067342510945835993440563200124305570257939355706163113614013756270705638130328537462021829972832537099877982980076549048501041623705956000253362833497925273562491054834881682481116788587432371541376969960176928477973911549815418752714715198977180244615940454348821685772928777754845377883140604072069193111510841370781336750408953926026549012568140675438154369247054719310706438409234177041514447646381728241937549011420007883484247762730442589562130990447078309487853070431769719536143136266392419670267123846075849584163041770457950790151865127701793250160506299646781132879106124541772367747532723861661953433561097660308792921814768326368428427352747831868495714554959440912028319237878530209398137109936142264609099305428071034545190843053660908284590777027529924566888723101539537872361639697138762652382328489625291538416619474854891148867263940905901682875260958106996070144330584823696079976263366516644980919507084342220733826892962833600690910500799124758961971011004877241936223823276552873897253437791676943848995986131888201082727286634505386026785556515823910499636098003196689388789133485644307051545145858199353321172135347858501023574686839545037365245222643264526267704648378317617811028396793671749725406180257145307184501298214552777964482461953548401765185196338653178667995764899918898898940526196573715196819198936279762014232146397257878937737932158499050589207077222778275919147731057128993596973200399995675662930646605698915310654826851835463709936640243621430843596615731739049204186988920061339571223901137483204690758314166118431039571364148581576033338948243955274849411463902515503430012440704071363180038643619307045872130191897364094630944084943075909560800710669710264141514668541404835104722466893135345959777179198126767401612953995219851641791636472046080065152070906473058256903975976181412135127220951132961880441875771668623512903685762370212245097693444163480087668853980635362929734434254487496085789063307596775937578927230218210631209956804891461947041006078037000420411305615198465445644926929066147764748413483193376673468149139883839434060088886216806639265606298701271420988496448791992522744785390572255782931841626456215780285991106406760024763686255637476400829336214485023534689434618650884650432775732904382121265952578184496711675673125688509128117636738578167942428122490962924301165361648197860051401189019906397151040826551370694527595086698955003839385234128984535898791281819108293637918173679984925409815010286120440876485050131658352006211860120428651397703099247919882608732795037240227390200965077070014554887168766271629728135067743681963528675254801425232683517952358942553838549875471040795257542064701184955315334333416038086035474757664707420142258155667348050339673406878532623541963596269526001936663359021460579223725045294324951256145465823181228322066962099049782556002321509667226967886078546130849232938721327820668427483172120523233455772685271667425705770114049333810413980784291091898631601563989454090056636838637290635303863300883043777348937922486034682820881120438792151812981912478674634624442425627908811817993636192137493650689890443129447334481826436279959827707468092017230243613318813113564919743253084466178240638673560997730872463922061612576150739409982375350432594936312660282788108527846752400605761695532964006460117311749668141565432885396352580052359265981761828180198183353316997410168340189662377266945155149382519611753269629716412073826489535351976148965076780404751849278843237250843610388245426064514171143704819397460565838597569281138257602303935328139154372426605488959562911754694010788601923840721125172866704213448458739672119926559594659495424647076390686376563311991753640979789531051990513535228991609242629464171387820968313673072635893874585494815767273408253545796890097601843014522755269080326616643030532229046454836928508683028051886318350037297479078631627209872849718603918433072405341084374800320869183014401604358790180674163714636531459102882468716593472543381804459479736993905685378126089879579849124645783536939518174361519508982552208683119994145078104475405342519090588739372902515539003890839700381420938043839515879803459398929113431820771275904316988818494242093657004266828316459945956316681932646807117238548092422413046228591992870202071413735154996916334243288482148444377925113752264625847627130323586556682340867115259522404495738383674995141058573183120209882501079359563350587514873091345922149816391145307082065955014161615867077472756127867232726368147431481354350694980630694003433515123467140181198989290116528148825854134900239335644110665889408085441131064185238382687998799091551883366314088833360338433789399720345260966810776369071771948462832584818817045082541099625442130222393042206743914456624150841804944489453371342778795428552377259259017397105936072159063965859867734904342275498583502634181705411200203565119818485761307776614535690511141822486574219324855234249915080822353509906851754876903799568508105486379365908311101518954384892117225196975443888917386652865909925773059308926050901717775936470888102456875945847739465517991683301852552393543508998436922160242404141558473359865067802642209206449982733725366217806247766134613637595089059480194683070916749134942977716231351089747315432228842889439768807998888916777528166728347471547982293481501660654048965019395252041195383765891487462159901490162055811820349193028354917837536830481038877000753604383919218004960721451777024471067835046840697681129223978277580638575086502294522547647820527577747310719014628448895264784781358269484162846744524550186334272892903823079081571409329101539523822116941888994843271256563880203608931290616226219976280167599412117011887655390494010541592211594395141157431933842922466880128479066565202582597822143019683278339909208872886401291422483688645873170794084412437035566714642589402949335416476633712791833080732421086802864746720351205508192529360803227906655182888911356754676612879215473053481363188051486565545620988366717391729262114369972260398654598442159116406574164877125184351389740168900288941418469951556871426283058691828849763340788445583179917741672443693320858694341660669444306242108830497404621323183329192613269144873496899726813806356481082279243634603899794536686007210187201391566304274244450043472319737393366889912200884934896721396169412382197978620095214654895012488027638309097031983564740107536243265776407056151634642775490257761435517873860527565181612477753672863347655271732793697118402209478727296901844300633789826114146720926149197801583793565057343747288364877447611106613629405734758961222800276050901540658704486294810317770222699801827076558634519751321808929645767754621397547180894835924908485623697594003299572885136449290253420392554608665353170432013235545835951357941587052711804367020535238842140121823163378530071264794446386836745252371756764596135590736765638126548504564441727844001868262603306016026820945942997910972769176099352108245014318023990660678321146664271716139892480402573039974981310142949794736814062698475885026423162047488398987520028545162363014064669101532178090540434047037412202932339333069555278996955101869627976108162615915704516799855809140864729085990933449652319638140164736072224413198617985306597905047342195822083002796522981956285043187332068487209427688993576553644091669546430956116299199850574804498071527424442734160673186453488633838046309093924657206484592515517265352488650484837456416990955303043292162092941016161282564658075580538623237702159365008609905483798530648884857234104900292476881871883526797942639115241838742670353284140174393206094837201516760413598049785085444086937365068867206215278952323936712962511614303207295091596168552354674289363874712306570453484634669043026770414099690233969314595118649919393898558591997079590444064514622624937436406382483273483653577603548357604328207322717024973303509812008495025260164075647540067308119525515614007063621375241345244296251785766995531122292317955975382431682191996688169589307029371120042557891180513489536023733936227897536398359357838848579145339874060462087679465733333860483636670442377342368726134938249004967194512376323741757356697270883654643609749571406240140003211024960233593092049403186436205450054825240225834966863685720703995318588993346830641291163633815222146869526794179906299630951265266552837988576347104726433351028893504893349869011003129768157618526519450201339434705856916745597898727174739533261412634838981987354124962250488873393033579140324215884384079622830375624840775090276740085887487953070421992353800686301037259665693906593557969038896375737475030120990455769307523989289566136888422176246713446628693621283696789272978623414168998923015838050539038850375339423265146082945465710376169046932606236369836576475562370467585213898521357055746002159790952211523412065776905423626193368104451794151134608250400920979532379018532016342628543554812677730543961387673645935007833474867595603035449383849536698106369175412972096497957819039856619294273925621090672866413903092783779309214332917883855425375365297229615648524380131746881407607482187683664999834050935690190154783680997883921172637924690851412455540880450292949289532499990545232582319601263373538905209243727656195845951752275757183228173812574431648885117989569080182550465454345159633182090396740907742253818143540866970829091095938761137287224576188011469439614811831003473923029295847120585137845887361225816006330765984992976319354907835948625903593998899050359853325038327427699102422076301171271398628592273467802476533104916890333873141254803864327790285639160761337057248180045078188667307043065452027108658153899771894433369636618101845159139675575393419146146888784946873932149382447380775981178639019546672673559586263264390437715602486906380726756766858813365064213013648308836078700717109054335787248249488652716824269037670185122802553033241016448858426686984638062611836007557495701870642709072372656104034134382913263750859363131985015784695689092872102527345264096663383389325011305959707816617441206809556548103545607649380905812117140276458042876601400797099317650363887659800563705101823911465005833713014697736090195641792619132160199123025697406403888367587020381350662806444068402204771034905396089294173395720839037376612482612887866576255376558413339198267052122349134968388004629699577631061512250877759453506924105597246386517530798461460075215077099976344381555556938197545219132502926721002269119861202389005099421838203089149376972395594308515271541502328561062409732024459708559618633306759884152211744481284948852380788357386216697433619932092640201081426204131761474305417980430435491376382816634710187394034660310884134286136144978092916941490275138474599783793344385446186177193883803036580870276198051284243681702013203728280431633993239892468786974189196099337521239341969196990663760276804923499161727133593824489049245920513721945315736413116892692798373131206290329685933932588699399420793121209930166120983841980648949181072645395275499441487890697967618311842866552130616984179999493406640581461876194244528992002641837288828773237024790685038864608247669408915872384834074031490520854504122090160972086655154370202098904368945599759839252661348189511596287553930807151583738095372932417863565778877781357855121032562492293932297327442038460746519741071932268321020474049495589584952876570834543281675498524949936000903820832538604320163791008902825945401277273205482160505736722976877712541213537909710296280415244797706072998063694623230249487006523864838527100029551381540533460685908335564003187168018264148326645213487851202463557475741028037274778894712058887820909563121727988296477532077136732118598341374094780943200405448154128857181151559655784441473294494419944951826909376644994485128631957589173077865806935641863165018437725181027201006797357937370708958328877210662621779162024680473782703575065382028523545952977944850483343752375246617708845449615109509679842210075041760750219028235686157271810431862886952257487986988445072515130478314138988265889045854982593381543036889032793980926657653221096060213356144295914767215635773782158821875513182423369816277439454617466663704341040393622009470008696159829906447674870604074856087683557768547347172484117749778113114483947123878264038816034949128498032897416284795584074801555628247829663869597664172184706595486914256443912608963463473393656800441420900666306991341490717717195642760106368727267227787619578122460627617644393939551737358597543090382165065318398115435956044074831992050064600645905894920896647013018812956815253021918118114054978611118587745192475664741445362118597201997486859986502031487361431511363130949252201541077558210765134898914133109469620579671283418528857407816805434953593643899272038817286227858367901777374337854593650742610766573024419509438430709469304145935698532618053530180496791022052488525821236007121118929549838693202914262590835836545156139204087246429193209757084897622138884420009313571206486540980233976125940654573903842494843313276349724061802233406391551794524312459558730429904531535300584295299649670213580396627161043095208112084937926743342766496019871067965389818424295210197181086688752459623197000238099271795719229131388599990508431026253473081559019761816217388776887211197230107554690690827321800262637867309297575224767479298555758441353647786684357194728460165772915721682247438099696958402949931661215479490088203371646828371954957561509627520961031001610786016535995894854419258116801739166248143231432383473885472721060483667908919205431481865990572859682274872625972775505595658524075932810448061976514478358966025582121626642030533870012025496667781819446811592695667320111176080091442452999637086213384685228163777422970576912704730781534468778703748228387524796143236761815402372607900917853304724264427886190380495015469095309598402187395308427437582262726418897162933275086499629117167054591651338981071016378724118465715163227298509916914493713480354973434139333634725257531581020128392167333425943241799391654781450561074437390915673414372671118555454738389030323949721652012840016593826273329183507915716869396007320954141964757406989197777932778937048450054071445909532349983834411951228737002030588423295174943514314027353038685237931398601151193692066021615890627126932694777584372093294439340948815758507494826003225061801052706702349234543448903999337943343868830784202813246200537591515091655284679521035870740912009049861094203465128227457505262237888761273942366894368360641753100810621726857769609794574557217093811000780687390173983229095330646390300355078902943784937951637975933761295708490360502765823502402091510606166078429223646546062075194841910079425084895829936801167793112457875621563657039889734160864870979991878307779541940249183396733937852919877256657969221812246709008661814948545705454916554683762748703594299936268413184670559406426303440289063984646967648274955970972421890713722327839697410325086863863584021625482993073647787238310985047972622937596888944683864266562633215056595760740641566043091840722814127514820423104341601676565472830614469780485988067365045952777865716111729135442307461093392473679060880938914071117527253356907447986248753624490729004031806756649280157506771538549309614726868331236980069967529496592796862821264571642769131759431556144493306865774371009078452875205876870999453946922657255656956152545810436004231767149630187989250239762643780781438061625950152496550588841987147519771100495397668268057143934164189882874296823670112557064782073173611800342836751912883225251569304116574215922448258077921592860537437018374721743689076338223016859240103910808261248122145802980536918754764395404928715109795314502415581454218400272018866969724740910862802493962833802602612365172160222478554099215990142430254841499193140029369209634877797737588941082773302089138850609383663546896842052452591714972614148168570018477294240520333112627790589244485086667295900407958650902640766620032740279674268530467446378944454056933301217281768017330221952706949128821780244465844457082098406884174713193877759289424816448244479463487984152654388742031650741453000854774879432899020914993209204987806751185620877103506053052281040405413892519266940435786527484894419966809926347629104277931919398694737747349716921656648401002987873851831236195215163020453575087054061610487121518661370828228718163696259106015432215193322180651605908570800575640245306131718114744766801510834358964564145177951233249382762772179476474141638970048237773177285483240970226603610804395676304181425311036831130446787806194268594418231977260225346264653335844825879705779158407619096318464293052547143121616707254582256351079751301461722370736983733643263078094460906503510556031285129057836998889121906345272737656772385745898400404036846131674042552664563321367080529457321153852947636714577656091234285131954718906274439135579958394844348798780176333384849294326763933868972710921721258833980534926004809786606476431512315818886243713281653975947581898592940413261347268910287521090548449338808972877741063264879108107520872098232349757943199711792265707831415890049967729949567417340428427355126799086014700268117284580805961425130418009706137106231248113853946848179945226857881546064965767781087392720862295467248758391473358440262534401059631206354637884173499983670062323837720291514667298687710313215180011723679785768269273214434007820306872666575648329116218202539895560415897694186210358846981369431792473990227224441943579190060046220237130494380870760039223801567128766067308557102822494778579816068440313720447608455226123756138805167683469406999146487888916999498166958951927693186024563659554807609966190670084718944769042446870712476101112738871877832168714923220398163081664660191946596222325957209793675309011350670108749993937053834111122826215070435862609320289995619302551023638289217487128924768143897062568463920623739289843658675953309711720781878722941482434550858712804552583790990264895552418137302264627451162535948940369451253072256822760534671770778026020156107518981138642770788832130644919141384964889749070246925957608451506169351712468568429481726033634887224916496620147347456926485380222163505325164812179138302353601106867464210871669513721694360357660697943933046511903774841376133284611906724288690386209655442597111335882162050386043184253464766527575636460615539190780362759619302959693722260356227281994075272647571064212656752747239758735009366529712693525702759927655348152571857618773508936455839605552860075412948683321814644557351356812790677545860317745980662904403522606323956822240874705049706677021925260304475688753031427094922085679299687921234101471841066350589821208020792724249493461420908969227880380026054109173808990595996132093562269515363394723739840494050129792039978481722176819020080140574157712502232539936742478809230909226599680930439801743351216589644644463568284157117320531339047802183409094450091854215067621531223866193683341767473463314394999136737505223610489796534291804323488738985782445836720466133337284956034649674223723568450591726935254370438604297955764349159189919875630879791743318688469101673410472143586215387459734313547680009733103075790442449975807824818223758136740060653263018304259849228294628829604007157596415275246885857269649724143727269033104546759535890883581572958598051880934615204326194126852472554126273092737702812970143240734436896587576332451955359837819882873359617643322761059697390405809278746786898774545841164995930759866742180570752654749453415762551891167211956243262342927830646173873306331350311571515186474118898688019187195822594390410381442530980183867353468051481335321243105513909135232437650563409959948267073099107154029144956351982425102958076385035661117722611916753320969972779654751686008945902024233992355279644580731693816021850752723662339960018782717066409188571631908473154323842931395078295826041115031096159956176570573452565525895971579008983865439069713743640760865054104595712833686136463885019614626164183666041586081569975531838219710433464516663784722313473693603948247349728048377698847939328901593379481488759261302513857031418088827103240979517072702083264616503979273291311861089811841992230838993108609944156865386884564614882093708826775818419632327825497563850005957686307476549915539272949564878944813526098386634607150546495564195932363849410308385717927909643874757262028287703708993773076565606671065409888993084837468491011073751303821126598570910928904330345396640111460597800158580576307686918158473739629785097834191538231438894823668899527108683151809097961945951770909683532466444995597509819533774940708380579879903379203047030590455271015579916588276436125416330330966823328163507492562661247129981824474123886374422998862077214479170901388450381125169797891406209832441891395433556074127858185593344409868404933303545569270476450261571246610704309857414770348019317600155124277203787117301595977751703137181881308694427211779807127197196749455941248139522513424642250785628894464832258447820130778192218200654005966498656508888893132450823680683710003636050103950435845018078868817581190339827220182927338875522531696439732402539999395361300246809697862149065857385601590028729965610278624725481949586317528233091747029747346529375132297992952791642626423839337291441919419197328611526344224237350796403762591903784153848154919246811330115138216993555110879790707303844455288872649498015275189444460865996393263832813766512028845530456558052804648165820083959310482967562810657952703142924189578537992841467451212891266598052599333523584856467401496905581600769356808612655001311322901933566216003476709106743114312747512671440332401180614787417138506093229171334443655074711563598768761925160579306381144080666020689516229418474284576684580433987495919893547320339897754628322055118917263275938718078767534918464299902511653951829643162126501635598551140973335105298494209997433834794723210118948278352525519737995880447545245993981391084325965060901366543379508848893717075826265539738282214763553055960012292627857829860917966963801867875162863736759905134689295861950013238335512476733154113423884262959537470210239216328200448509330357353776649993709757137313660159478476019101756727568164201409593343179074676115344413598098273372994028765933948288861590563724100089571560462375739935361541069262336144724433305524047582547224466218174385762943140013165825551003463863140911282044235237939367418372575009014566965249836077482836630165805310395265651548303187089516690679730199938540703668515758532948013856543282744091138545768052429807859291226249949142436010921262878226565444251533259423411531297303576713692040165810692894244815215475994408531388782629155330980709929148329450871437209423514677480057450969764489871434479167913652456096680553747422905935445084844023337661306128134368946288042884231822615400392674003140895800342754069720028347460888193760877160897455918424286565358080020544572252046307774600803838861554758471253230460184787847004477242916331902482159093319865019268387670161702184456690226027224797809516366450823367757785110439660291191234602054150235128646679826465510627875802675121640449917511091850337311885644139195213877546916556574236553574487516274067097828842787193267011407477070552377008038766434202855659322007456771695685097810814165553756733594502909826882797182519274320615615875787020101258457060591193975825860790463693892880243214736111653859920069415519434316010982502785949192809448097776395490385156609479888957475930899280038908408236668871623347627990230213346337164631020233887144562500090376666634826499672098961192846352676927669048722782271546961872039807024982485600934466677197770292755202446401608344580251507804621538818173966892533198237294173204939867773009974042003318985052200241944644786017145594778973358005051628574029621939402849686210634875867036703028294519785597992452138914234596960763971444693920370553395334123581901868311952495389431390888670778488836550889006842579390720468029216096652271558351772723200527853180587106868833135230364139051261211885092242627640754814050825996225936978596634932139613765342247022152487690291464208088759246534615523603789402801196399942830717353246438141345522625297054701034980917304207031100918561239499769385357201420425651437430010388174142496852418982839049008351405553654654716937506086889006772045418354898211968787450580693551348519114031437834356993072211278332168765291370799524182663814476580621112792160436658809002245482502050735389985503639370287728507375500702782387856580494741367621472753475280296073869888294726483433370391011855613426148228496392999174261950131048365340981039363817202806356230551889133167672833903053532996729207257950774396479460648837258264499699666163837501190175868108070812152964113168104137952791098997380681669393925980255264611211785319563757450725973823821495334967279437753067224996298886356034747667336722778160850136921045853694309159418709332070138403929415087631409251062488452508457319524918368253829069371941829881041434023232202000606278375476388026635601163772491861380577178185268423792138308780005625694239701241486528900082550304187612731445947010462995399592550491756134683384535338991900433431003285640434702507991554650680437743965817830509039231101430730709690549397719211826746463955762630447432753556400273597892068234708118261831175545209517776353940860424098753083241848185887456745682361381862297712079561733069653551126204618624601362762425114229880303657204345546515562306289175431498613775946229994353775791953540260235870813729559126364281408950111030576237092849151548532586376796358423972837410941592963309815802313617666863647690213520924881702509191801854069603215761012898616612640891914036208424121798232540274530250742877107235225689041028791434450727492042298348034639246371987995247177691739333481884495206114376469969491179033333245041423867697751997027749337654487907773890336931836602802047188074355618016931253717597834018904334188584532992946654316607692453154944112460400519616654760599939329267668335492130615484562918820002467607763655951740200250670394754890699320005357892962722054026557924258899165124499545500075480651917028690695468505766471325240766252749301574538484264692001425808147877073511464159552284384924702224799000101285018645282846206936394686609290178510013697816562314039147775335059163883414193398263079178883468935039723866947604260484066206436644328933363204723766268457706079479401176070135355446431787650816661166708790742477902126310266086859249885020643107618229246803049051548150777265816875703568167239275013465776455941195931197227163941166439350785460167565716892484777589648672886458371268638594456460602644029018549317543894113447313316821806193050026193260673687062052177221629935336218057395657701767360625641449392339234097100590958032084383511506572675195511221889081062021303435136802348683249889852189182589609546228787372176592478680560250510221070994321743224797553416245131401991919530592503198427860176648242663864039608242244618144867373531325085948094081485615314420368285066040800492703825314650891391124119164019397245066967028772325526558074610872522466952372936091075165380922186026022690475854799347300646138766798914432498892845733129827600762049887107038288301142661628402073161173750253082321579409520150817640905001943745153862611600647437695994625129548311642041255393509562158328794916372954492669491130000010372896356648417008418503734824396291423340376709478404147563969668603506055616251788145169578661744926156434810346519545493594181196618488875667122915467621307691407033504011005774993630325725850632259222920609440050494918433696799455193952834322174567162483148478630545765032280027303371539308833300883950144238795361656056219220201445308079755539181508640926776174738694635279838032572593255950263094313817345059582644330570235540249773847107309686100803810543986758023921833604107790456734414140759195715970774543035054043220833378658848065886161407651293993251905117637437776954380347235798626396625558119312256864182189190574260787054121618163912309478854105388999500009976330264992616041919599572889388298285909999850937305294031198624680466022256631095732117828236810799813031870757640907931859257649827264662574415534805099725421689741150200350080377798380626202132904662496095905523174565655030256115799852782315298913200974675288164555517749104254954485708225384504810635429294358580836748871843149559415910739576272793898457697137486126950603736424432734130641466674680287458536337284370753891404361931977517636335652479323846982636235558582027448785941229708492319224367154555654998126895608558867966363280942169025631977537910374793962202666899290460485050171282026669030333660608851719938381276178519128111786944897540908660698437063808754718352219053219816242785254655945366731984105246734243756992849153815259260809188562353042081551884895971229394044343486616991840040746451803779807245434711912198033866609759584896768725358620979721442876897184567241338670713741067400595403640790242171206013782251515923357225988973077800358424620754601685431289594122203911049007371160495868429884735826641124081219844982891418799529104284095766552225676581585013769902044900914434942790166229697262724672126317475013023939587124083384203226140917305660047470390832584361893289868033579030157125854457807215843702179248419423240960192709899564720873960118935416657736952976856862873819676996362639277398904297398101117971200056513655397410272705051495264162417191350085259504629395464834761877203302528676725497377005011879129914517262649252721716389000969724358471785700254354728913893112551286055305399541460819308653472792958026143298659965384837954214266445639800107089672065947457308023179520171391687469571201731013959219979077843104897357231385509630622887212563623155396822378414230928642478848868025878012926464770059849480817258091772685537241435779860703230933573707892595424868670227681141643822007128291955540396786229228692817071499220317134628668095401557090841473148011552924350466144316421618231140352554791032915865031997711565415641051429172223283379242136270211261665805944300030292983241972905741388605925596201039700279961532605210130623356368828909366081717030875646672237493906705345570282968502911949382809590073009374519515249358830436829925050756455548441407591734033387145862809665592416047565006354276270157978604526559824805448987793881633215372826942818489749344403279172348029354121237714852991244854262949312156192589862306941634346902890454643206372426264733635775687779879298661357582574416733562128007492466662217837655887274922128962997307760678066696891383708733842004101112143872158216682987724041580393820964340501078064988691605947859166132043146948636211556667823513495327870622066333922116146958052948107072647959752059591006843559841760027708850580080081374648973003461852663638295580652762737308882105187089945451154921301114492844408387942585254686659300033193910954430195784264921196005609603354783589821471318435984920821382496722979429053361129385137128561320342029880904683795223467716116105261644415527300967960318785896493439226372566839887222933320180639658396674634148367549556197992705854503220215222094290168181471681403651302706230776694884787769839029458887422431968727595081841911840717847037822056844138050853854270091713692332583378371898167617269500923407357858474322934274815477942692104176125381218467326751301649308587111359186213055951050332583508835118135620554604062438447826566047656863187759528476183237310920970087263149383653878023340152082191434087698333432659488381190809063263479146917065863064446563044750202841819243165749031922314097620079536535853446116033639851780674084636291423515765633760068805626226523011095980391401594380150884828065770608164510034261677022565092223286550908654261078784432571358452964355139794118441761079014769119256091388907315863548596709442725434688904631007532293647912420297120326827118213263686537500255071575189087159776284426780528526939186046069637661816159258475670912364209530052768091972002526642535291180813124033239473840480792707429622415974831103532374777363420232734772972861393562516278837757219482067726383760018338353709349918792772813105225971580479926213874907880332672270513577082293019821983937006706018039929779157268659616902232206158450312148331354705351067227420253183544514362985473297769353580703341298559888544795744776276916788128576855625231687762819917856158042523598098912789988871121592148028013427504239172799407157505354396351807784310977795002045733272026950701621912153567115125976976000072302273947940206378810513880577881334681908879595270304091986734461485822403475531848385884845286495521263508889236390943631339614949659214438355858461185804032851369693821208712610305542396707284398548533868515678753513161719101894143241128623007873665240621638305240484368741993761753664107483017671736604191424538201806227508922220354013543498096166710898431854709347149916314727542184727722943334175896610652911672514664864531443651037548189250956397949177294189069279454032079975473841523942803756736402388553253187567720206077554833102149226426570177255392497178918164705730854055984708242742732083957985116889333787328567499686138347546778628600427659591886705735922051545537570701190524037798549861743352245213225848578676087878307588863337030011893907322162175301662495434695642253883456551628559019676061790462482498333529805243838731191314601786730781873595287804427280085649440060197953488165079425334422691580666192321831387807697696913442919314548997925422711483309393545952039562249417781524653582206288393922109734048277978404392569302157269087113655299152509865802297113716163712370432830420124185133384133810853226192988077529693300450022107668495687248268486019973691986855901558814038750214030951263979463307646118874698093282396012797549011305912937045994144374605866442129650859109244218860445123963425896324438639689441544943460598409531520253536958469617899279057531860004465179106988313049960342576829699617202216009544894272497470269067597437155081648909266039326504406528705599838629980313589889292709006710465267355045786727839174869119727313852771794307664700179905923530115895043884329188340898764993890496407392368361697327468734626362597997575752196713927099320744107915968724515840322093551169509368897540427550698327221640714834458249434647680429722812209176218187400789546821213402473944964515299772050091902434102208362274032085892656150707495190602071836952371776149685471098847114795577296768218233919167194925796774695739872694857469001098425113684665090189703883179424482120792820029279967204630970666199879637617130436539165602222492270474361613461561597739440066409384862805480213665330016102371415622261912419665924298613777429353182674394396339405761272122738412823776978302623692423145986659753130785385034451514949632004500379679398152289853026159975388148404197892411128022772350244251355690892619925080947418656321145681822063400298768132563295266449824170102720329424330532129310479774998609020881150350860397447496230916934138017369797932579029928690931626734703068733054435490436677969753199472167504691443792815718834468947042136060710124703055435766773314268954395999281496746103628905684288301036237985171263125316221925818303573247450469089239275558748470993281925754815219024508441404542010286467973875764027353018705853113973357267481905183094217522614956800637684338360590661451553881419556158720416624525488594324296156101282769388293620042881247441594270707454948052869447590786636187880571141692944143660013269671842386437334609516825947159741814747911231690561466235499448650827992163404886162768954031482817165866569877365040498872579239290056242458872945295075208040896859744880436184289574388074065972346389030756021116971774688913712748322054665866362525947261004447724931608910674494879362729523264448211061689546029301377044841254082507290643402533562932700338374019514213615320797397072477837881745020065600113330497659992224791941133680103562579979179317856855314027384085309201599790407118631919151087035179240543607537410224829198101456338369357252776887597672655412209212775619096033888439192078047278383397921735925388001930009324790639744652957712624050141469785676099895838574189666714825483071835494368806289582849820109866764625244816373337194041719613465310751026262964424257240373343427092210876042622175401077756919324261150640206536757617956145281784053436721969121780221235150320434751178866991541748360179132486294173668328418567308736516902037212714720563535256529758191580867191874552393437591673829199899491827701348465731411682352179727843119073566717789081269541102541649214245792398749203972656251511187608486358276278565404264017300626322923101852892128894822378911316950409728715963509766828227795187351957906238287353047225694717538637759583720670374485132091008129671181748407715764015484622894068403679634761321766559769284388303577630220419770702418065844197764661140256634527877502905322520538708250718454689177198826892616660465008022130821656859021062452876193225635568792860128765167128322475380088825225281159996495958267561706378233120680852787191564205869593973690668863600444570417039191635330927266337127217850809140633561817902931589733228441619070833308562801990077537051131437060587847303325169125697348563263563657415343717466942694858291299780146731000613265606918596475190173223738597410033929691218211237174236505134658828390298834137954237702364419744849927773138526216851678115845913244270485211077473770958358568568501464289014895998308770695391514053074835186469170183391593146317853938160129116034136715124266945261170716786288864522225758096434369735283828552312386807258844226549892134121636776496574823652702910575598386586249230598042314307859565073520860562658472273965716904474461148598452948670827472796776921027459038021692740580091085689061132776459804237088682006050381296200167787280783668781500871508306635640035386813813575539644344284974592518722657246154151231183685309145637861270034874795359197531305932783283612335795355798268376234464925811865322799063967333230780086295050892838527770730475226490834071870464378525949470383751557909421476481224564369049050563881358382734120939809787559847969931892197669936027846678855920172433862399082731895941773291631652967956098751344284569642512088752476898222306652968433303090317193225102342629774778329551496167872327715922283913465195603951098759931336625664554742338172279479043847543127411350975159143127933821531791462510565581520596543485076125129357316502213862411960394815421693536104498752334724992945152291305591928163476776734652541958697832960120876749624903384226125742815557751304787990917010459457795946984326278367329911772767805433257386639082683914466250337325300099154058303479840777395096238295642666995410703558021197175750786941841261378239840618757382033574570780753344478633424158976107711887594516979357914188560765909895116376332988577707398397443820769566128238889085233462894898703564941535078280234519296254816583021946906276607088140805540320475135336152170717961862697948221199145658431027990381017497228761016200187638942286236643559109672311823160734593864545218629610463384610289289349591956001084842657252360505621645438933592837116980813625859575257236820660330265934225234774533612189541957356317706393723499029483175171805844876711671848659152641739095370077980369015018550454515574371138541627087912885608796923526615130087422532391641438966262071022575264384307442065977694454149224082047993116444332882713706520278224331630924708003148930718710279414155494425622249298401584295696526926467261465428477614293469802255362236687344512449907481282488388606685745700311299973092070005764433967520572118565982868641720104940500793028031717216674795456510776743665237603191289396678013646699950375552050574811621689747724229457246250737554338648411938533535589372993838686525429144045277744490605395108112219607445915131212884786010300919202127024256379897234927630103692948183054516403534666089344291135541330433630280563418179357623371294937201182946131303789583126913545728333479673364706988516171682004724164773095685188533829479958997841877360050030405234645148392176432142212168664166373080682854738900854364816214852642245244461162760621250220098665997949571580990214312075591107567606741670227533191620958200860613671767982832805940334244964805252708592500072770248692403822240190349462263192333550496158097773927241310034193501347845502425091783350320106406012396009326824463184113597443110140012138162560769383193457577393664991316909692756685088774517654344425082871380041863106752534413471078818801352302262149438321281513475491740632177214001708829931747229046020761280671341314774914635225003767741614030959922657546904435566202281382740438160461793112346264179966006284867225256531968817583915979489717561683856620388462493497686443959062455066486654940884336587961917279198110375578868836857545736902002977583364251526238784910894275421392595464163104357818854946721868005553725792759075864604930097417436977074072901625615041772266912039232871482119557846327102300081349498597353073231942129634063215279334465701057114426759363590447498970596454976154239333266265172758221235512174715996704010714043208432957087200337759812032232265299303186869619474537170601152650812651778084911967903236623527212111531824319528423480409410921964374534194477091124746742669287103966988893445030755144968976071776096730266246185748725814154569504454566070759795997723858017691456519181075619197662242343706443700667214977562645485890913678176346816172067529122448863023898558729660534503007920910124205785969613827513786886052389166149061316090517778886126842211360330900026980067466979302421525100757556085275529168650163297152102998101335955699959607703375594582989192569561120329637476923541146507223460934990131065423264428977739184331026034742089314331068189708629424313635352469097254046068370219558829486225200285590826293600409189206128523135255852172833000699573856011302615560721825667231939865572758949345711635078728087546701197744607453616338182071357539336501729118604411983381590393657424501110599282170780577164914590152672924021126882961099035653548158964988172354963321852434926003754711613109363415359113115534044748628932465748087210061745919252059370485999835338333979358374227120843019010012739124740389036119602187716534186058359150809769748961898152481090916173846969280284916977368244885598189939324863816254713273635604511441408781921643144379376223204335631603264048982959992952347355552569908739373878319791045037028583816238446153113100242260496149648392015570900994085550352704597226124675441691331776444285797331078282584827693119153378546183517996485355161617118914963667746862578297630414061044876822583665375271360692199148559323888286249327385204869890565021475170087195135259772926906218954403947587321095788348805721203765179609986742782166716324169686732032967231707725321399322399878808152992071637451835081818772154786771588448778061289644788440427194985411107962106873332657269516673862082860934457363767747196435036546637165367629973171219782274587705967916858726511954154286001445789635657692392418006391215973605314732815906078955003592129451925064956989397939512778081264814893312959679868300428699167853946983701447002800940704832648716095635555877794595052563382595163459684013271678730858528492293677234970342921261075496611915617153440896773918900355571086527496495025442537424622123475295500734324890260073353692716970453614850154719254289303187319756778760792113941226570571591348295431873904088356308684994332329268407977785020412622380538052118709886651720968282642459004165356343560469842662777962693089899717096228267324069371632620699711853894621806604579270934631881963423094787482666713645955456351844265804594312396821741957648831982105024854903856144662442126185346408878705955629576918644258208651017608710409589159720263773370129616112865181622141597104617431111501033976869698954696364520127031392815027437642327245438391811720163917402132715477904516758558652825250341858549871618090955902263508954342661857025092444753030838450079660297357680073012020123061632015881776300173623524095791193314174665302894111620683253237422651091964348474047746319118930044190261883394331181195452959292222269083217992849666762015218194088886180844743101365683146172576337356414026098650177284734935925869606431957849841642357359491445996453929702026143973424901112936122284090352971951195986027946448803336357674268901322850933342550662399852426855963317578788891260108576196399423456908240976946320780145708891931344384366527603471710826191338279449680133988894192274156620474538362138896361025917598369988650187711179290323419669989926353547114782136891759551486517594764410385316421521183704082933201056036514103725510960316354123050058414606473744074145963782250623726538297613946574624424868244609761420887330533800719245628261104657808787948615401240051440820855045314126274868252585712288834127841536027754969916529183965455314579007438914814101228905368093024123831828871573173161379538091432004392591217940791019482137065608265016748781797738067359485285223429458246366941285841689603735994178296848933422791394848244772977194303752901074759729553671207957938154952440685578490341227766318290317001436689365428740445169558785535739408605575784191937453285511328699834281517258447262389781217738077622278709323329332449168822243771770230832722882544286610273314989931633467991107331967556632563142801013801270847744394038319884971539230315737481776932636107565937652153053117107102978381130852588609489300613964630057611274503508014852366401544934605392765760497641518060588345947593993357341561277692507221406637380932569151819741227034327707720938526958538125350695357926058168646842760528734592621724316321693114608035171397731297746389054741759430405406188700785691433180967866821650137819909451261611647767031643046626767550923739367307655332507508593112916003631365666381401457794550193983966620962069904372699393954156543982241867254483633471279735354018921869872548776989710383264084974157429158309848866701601850545068086429687135622916624733735105083015661825437972679185832312976274260262141201899795325029595103049537253665225563127101861426282450723334444987659698517894973553184526696117794226596665430801608407116548059489118678300462571231265474258799673288680592154525303276485537535694546585822200376187405265719438200076050631516152187068512892988020409943745712002840104337109924921429568381764968517305741255961704134240268836739024377687620087535967532679371459191758000439021679759779043190548434562101088336015322489031586154580871758183862754623111730202475315184041337776059867945143340727672272215813501690464861515052698366930016591618451267178937937835501877242802081744912905738770113701483440033938951306539619294262723599769921348689300277374921778827104287673856986163832200559109725606626721692433984355907111780314329639932108997739955995692204140316559089974751817649298692447875896488310321944547014864258737581030048949274617209466329948190321250358397678873413163302252632225546062320419161302100311582218580586078334206154893491480597676987725185269099182305018423937960197767889175813073847141794427100999030406930673929395289661859230418125219665899930864706257901208270948785150446147103418991745506487796707144526471697727236457421814937899647817051172424470320142856380714327236578576505620646544468473541393767562390125369145349766945996780264011122625024748929367630659523446540001720878024337909861088172879931194526224679402855009271335838106319060523232718316161966569697084867745883495506701491386914220371489910500300600815943551404603149259421047595769959570070316892163278989350553503770367442720782228299312080316999648247071151589348824773473853877905322508044037009245456883211765212487696013424704721712255808192243549282068300482876135864781266466843532309474580115104863189447572563133079005917196661686313044434080207624817025713558562495626410172535835407128046080338146479943037698464758027279667924349115091470276023664384781155696576018673380406955433552209743331052123236919853919244810991227482299822807909802786052529629982239743554061154006180167421802342426736127353633235412462745241285972558200169293511335511045434516685061343867488190668723988294360342343924935000461056953362517902935834634451022740317841912728144032401624411885967845244123915224073206842313582995871210455167904786014954447347619598381408494161692719015423598280322607146905722850235298758465137162659753938386706085989334374117326379393719799079728213371202671657445115634687013095502779075117103145859364662485182728230009602767021670111939249855573974413753721358417925249227009616763261691578536523988313939274052260118820916768640061615400229733068424824747024749880988890093957481580585532692224409214013482084708083081606250406601642130394766129345575463970093575318886790570181632087197438425798280640313955868041174145139422221248631726877781223933993416469806838732491112138550207958126232392753680315899983045747110731247308898986673080698606169361672842078479957691915780584834917578112343820871870362326612623268190417884255065355450588510492147872610994730026712151400653279182243395528838100482400993895634402937437352697116793870918642648909277459565392526763632841132992117731069152234971064441564441864056256042607294734245336831331680902293400946996799990741733202616018707663274462211723228324438255156488122295319781553470645863572707352710776804322591594520850149451212360790735511928219692705832455390644617014276924228482446481017240397491394177214082461171517176581063958266008938927811080561325932953156075421401455359761611517051137727971792377561734890317041117240346937581461852951283017430944840587099085185108736636972704092213476221262868516424632096381130414154801427911510667055261457685010001576202281296127606212610675157054159961432369439166535689924162457113826965987362784992642571161861015400144526389930825739659761968118915507325582832664746225447384008013362230414434288240763396187377124175722014877214272514318779576646112453708761660215322847164301596473322031679693970806094545619182257241480099188056792515194117670706762661705283899640509704550363204698416143945425408511469870915900316857015427566355918229205650622646530525462583812613271655279660741137016760428568593066702356877943815770885982012107780979819036555534454901397524375761612718674964212810282769963783331308713871603019727734456568158508003573684524669084609742521618697562143958260847983095556964578026127971184976088365925828106133796560450934441550390283951832544300337074302144523959166016207098726233193946992678265258642723726641283549880801563199159179037789073407725815139439511510596064831594180516400733304356985439796909406273193296481988296358622027933903186994916777491737278518163392666299061136224618286835350870583397242941921352264373756395581189615516877788253145552823980715760672286073124229667349758669589663975383964923105622613739210250167019660307617907118362567822397959482450833860703023940995473181099001540882651453108319630293178806451521187570372938933437506369366767360473169052969455130524906481349860290027858125520685906882255502826637611026595269383661379869443739863136682939306313528405014935981177266931264679973976502899099399470596068988766074254993373778833123263335588052090294007900151967732352229286149984233975216920378519541041429663869345415064187480562596559776979238366138504951838032853543962745300693319751863276713415035585716476543959605143247156897269925210495073023188630196256449941511411233410714968469271768251189359569101761420487299788105727342256721523421971013182141886719375683246872503997470182999950667098327903299320202712333861775483980935596098089579346448857383801673941755675835732530356015111811446267184708640804563334172407624921183088141128434440617969363521265471697926240359779760753160359048506658117368427411280080558789363877531257558935153796302453237718814050467794079743248101942300098380874712179863963313838961049551542098454894986134161292069176175278948606918558986676631857357864105697699349664044576861579292586989316341609302276851012641807144047608652573601263500703640209082008615676015119002650317117269724767858730257490302688539138163472273078113956482429810487465109408920345033430285635922974773304878700187211910779026193230052988788247817430603867872434000222674228086820656302614945110972473171863441799664640797776564934640043174785118950332300781412549083044487197548528284244834065035832134506713832779890198684552542676237277915532028423106304571260163892206129541975921304247969254069305823267061088091456969722180243937598035673445312050867915148524201556658043021107507368387154143968889974763190251613472095392979818682451642319874601354595131370757980758117772369756735359886282289633261143663836473668113441708174414083570693935429221835057356767522512671166585584751378127575217550921798158517812724929241131749407574804295074094452352875852545335462969706210358947705952981791710745019629662628842483736273906060832910747774618681584394624587617882784677126958620225737031894318144813602997197859997008202532323692291787681211346514099240731624562903273655567411694220559100535745485049075875547152287687438110292852954120064068431695797306646016258888084618566164963093951080183577658246542034809540253742369914175040345455133382550252461282308425386536619963463708228876263666902796567853171469657250534024267614445684365182461547663413134850643004356506607530986090374162676385484167243600653699993190175219853214813219188760144004041222356250113520396313410455138841989810212657881080424310506940856742874287023376038720299616814749780138872666349062132465016664066876942326604655783532454397930474486604335207600567880581766155753310112638518159339577341101351710087322837676305710401270469004796390506986469446774387005762553063844826264326373748226474515722446436091372406264426270076139942905764727591260199105824956182837751773646682933915327689346284828488100245048586898775507665755961832362786769285561156782403847722310406942373178187587499693596877248856200508719440385894618365166821882031024054180497495894675708646413927504751692590377169338390057163239696563212602040907253369817966694943752062310793977432211838003119724202315916281063236231450757187516480541947184198326417557467726068689619012269638523556088402634684457759182708730048746539225756060292969360981421708586984210843439685971095912291656236120013952352662163539747270022599380611049999114747592294362497439822133397214681931119164086370692058738825403573561316795480689352178787714975107690409029189580379469110934070198089658842081983582777467968914256437413119246443524037372052280407082026563968690612963871771258357672448013030291571375798912811181129507100744022991365998918120830548090847758903246439837530945191560997398822435049417503296898845999091712989174713977882543378844817188173516907690936283175433582832482613143846216522286636140412439768302242330467257412017009399571018608181942718423875091229502896859355311027412497089154668337660760054190800248870980860819262268894172423534663842523939444442972348331002704734382610567123146623255187488468206572369198755701880046382181085700599756938505214594286261252646416031207846637720837376846910924188903371861064925746958662190439227904260473230835416137113533477177565810331419319280076296466734952745824758323112684557246890404331897724500022658569720983401131014172627311128628064315170044383104878521678034786765610069393357119840803914094178802874315893321892593919413019668725629772585355456510027900922134430043799206160255610996381865142211548393867636448312392095712679852683701316739829426330384735498847290939413357510792286967525071197916592377697398543712750771977497271176515260325436541650627625821525202055736042947976012939914080495842388978025739310740835871651508325069403404669685777910483785317741422477464526872488219323110278187102746788603924527106877212022629774479067956030603892542696543154103471672216779005570978818500472250964380544253201456511554971277702839673545720164429047868420166465374130102650205990030958950778882802007652142513615201035704247972886078696473536793015103104890588238502984155139530788451091864474118737965726568412393242908549937281944039807401147797989757434878845062103932984073607942737867127408900106573389138138181357813600909537387850741323543613814526499014058936460965002881815666247375255892921978139725358470383267209883415788497826404827652540377500501447542928372519943522717371137812870256998133776306397459823928876166137699615061945016144590012012985434240187413820224161444095205846019752862490771259293153403153583532277299451242995464201259581584229164041239758301408134188121843989819219591133450685355696236251667969672380153082156324327748640992494778719351962800026988738079110586620270565607251541611400079153208758095011599872804883609198135751803965228757432945517612745685649545871047169750402891606092114561553436807600246749268182352353754410829064180303654486727584053132551703352575800330794433119508691944295894885857114850500489445931480730554081231059850594770133726610099487827343376968115899490387632942732129053962086249109311800547353982515874222645748293601784845072664295377987371043062780770627735505387308409033999815565471852469196501921221614030024237422140660134162453780817504475809320362492426296931708223904760986998210667856756229783631653297740485923382963078554438246520462237928689793978247374419210303382023179897741156836406315476418641907945904622991257728594391715535660992148192862158633747447974483744371380894392594094304371095406362757994871984610803606455247443222506375828504495433757627712649623203091158725676453388961146562019922011636400579533307955100739764143279833824812506716393729604051305089282852220572477586219952017919999963739041012847037812386089382465486370328906774816290850780450803195393037566564096405797885143270612852692059850354810050258327996850882783553901544338045261316987264966216335906236582653038495706373968869826265453739586320758784833378578568835410826029728290280937643078523614205784932179728652412491783042922095507501906599130797779792728832466444386823431253903732506504885033171256501040869925972271568414591614761117175407980525364687634161510191111122821692293567129979134869752736420375896333573393655554292364877331749044877211541748351120948008516477004421846595873473641434453403722791860940480409429943948924596993442413539085487658105575099928771710888327293602097450847635179774318621374190091049668165522095812359283813818950641206052487915447591571724002990925134134623731771348118691105445931075702082160785937611766776853441705644796884782665438796910311150725241085005513032236366210965628855160481156428599557274496463669223549528722234506924068104875866118898532509434767805245467315483393605569697448580363892254299987071179733839306006109196047918458578508251888034252564805589367221368466391613281029923700053255989559329537738028038586139746541069452500703176567156855480075580782322212177379484908007472294691662491813849084675239467553134468681776145440267601540078105036384432900092770637787020321509634367195189684265041627899430961109842588218191130708548525159060609237605568214679703320555360103994916808594662513230977943483959218264117564306379628341829836593009352462172697067433360337558914435457455758400200189097874777496093021313291177561611006568658526740365902524341589228303303920024828016868795917164841794430718000769924106038108665557414345711653962272182033621582324498204588993904385547252915908175589111081500319907792996116320138840712538397208481920761270753439970119751280987585539580107568708824807361571934697170139788864363022606301151545212440784726559215345482184825673404628994656533074037788535557091577579364764621818752046914651960050925723067695699773995148031806658113668347934592376500855023287611128150975219016202189863843191308193318740689294341107139581595678793519442519675261723556639717816949824096012931937537346582879030447059368088786041591539016584331111207359719068962965042110994304532299543931879957395246562635375228894649451195812084430308355716418070051520684955842378759384191179228392159318882618781489142658731739523609835799714415025423226268123443025037782125528750393909555501963785719635933202291085013188433248770251220652632768028610917723272412816444337986190954788885047321972095050975808982979250931204082475282839668347817133142766592108990908863415685694107978069761256418802182919490280313836183423848093516177639043477516622212944291544580803933547549423226389670842614991808063885477928846183027778801766351079954590819213225277317662248291337769550557857858407224095787912305100298771583569369763993126816885770202272873230550260311658291302696788662980352190028372964022203081701502904949980601794986055694704329571278195615375063056456693020444833482542010409613692601141150210192077284052967054594279944157248013838444266360947905313674406256120401027089281229859747774261060200835271040187439553377329702758118520036927192979156610964438542437924427736892151937332448956078152467679370349541134446484060559956768394951976993225209269375999849725232231116777952078175136882338833032282825476098518488105302136946526441275662199490476957613009344782628110387882407122781046807769330196154043062839965017610752177533457840157128476419893391161977231786008234362034953618587486834420936097267740098601505552677846358946990060479730672527702786544421186451176390299057362721511343525506987187388823603130853154599714133299205959167293723706230212996825029862932322616474127375439174241607450150120462191433423256721505751654842426313667090037115766391062757940307024332961403985030390121103440307979332214547906683475949123266940165922286110676336475819132389289475490809346342813109347998473520941238953859722887064716212576247171629586967134503071678859394398703916090002611592092796748344638101661474785672525183737748463447212304034640246742279595361590701986511562866601169137106915591910914132865021768840937327284833732075897169957536173565040211824224081568983775431732258834601951197386209800296706689953320006584890810006184531256766319409424994418503046842225559523121163708381448523807460439661330507782185702224957461975025611878924821594862448051766450057584820624738059562738848894449690456573771781551138170908713482897517833351812899293759599903390298348816191836708266007122739403343844972337832227328548126317490359350423541786698369755639531337997331402320520191582573646951956352781344069538152896601485020080585541948903777593193766054735576786535335808232656184542124637496094002460630455852902682533607424276163659555348521084596454519348054571020650836824018348287621308302641825765497752781190543759930117980975097573757408026255647112535639449714743933216700235200180048142471710067193479043544785459034903432739792168371814885940884140875585960454808674831855216984540848559031476834079023997143921765275364943341406411665015763435485775614060139688114377538896210854514839704857924377508036466045685639002053791784851889664277872113839297410822545086498443127508886764657119951883523443607132610452624637718670165274363796492967735877314080129011022597595798854094436548234887514931142361074598506360040362320126812589629557176469609748725894524919804541751724337295253873141099127277734308773134571734733894488482995121727838137675613110375404317665282477253972921217952869096753375061159672115003307306692831790874322388803097558915294100250110165819368609985178866970829812285052258395565895101523606544464579056558922040859740479738415424585562188008851433744418934764776990637724156045544049354028664796321062121808274203807457441151149644846020212687812981966464145733063202372188537691380499137320876883409460458896331159447427042524414742666789805856737769615299909172026417227570822687188905926964911789348516723080501450390577594989492848857413933223333953171654167535679932415793353948765142019669856372603522641365921102321928581513941961803356400278258363805378850552219246647467221094342166498302022624723941128618785374946199724603626183615365723962905504978861894262082005593212664220144711254932863815012439781839655195759765447132496646870174510591839579517781443403178027028093719797494014961382248086995188815377978770974981830743546269595564065170270571548300447876696024582394194556470404101748007634240449196593294249816042675465479518183376686090130786825704787510752066295554630815589381168915573496938425807086176558499284766378508149542452272408572970241011394315388414439201614902823861980610315078730968660968121207331539998947271495035556938587309834283358085055782342196178309449474747258946007410431886797054874783883388806443856219971425963021747397880526439393756871285377925457426953687294526146711520551199744054872890667948850528695888715700868464977664939104819910974983507284476038651992239950584059679408811161148966733878047653734619363708635860266753060773535474564807408107620356024384647597719395309169524576862320882037465126621992350416442308955643762654125643543524475650534380561152887423949711429858300616172624275977979305001771537541094334297173645429087173721512909397461465945473029653000101967938933899984596518865586507947590759389723376024029197601296548294790042640500737897365400390973033050966529569320586648289030315968444588040706056884324251929853843986490815015981741439519725935903022097239386306041519356192436422681834327978792583153856927552255825468657200045504451775600406738055108369715596386742435350140346845972742526717417898367785306877726944191377737411329650804189179841663487514048771972046174391953460133345598962714543645902448636879594743920636894038604729049602318781504262076628332702657142810029451028001945268805663346873367002425134238845146295866540545429926861383023564118613185361331375840599583839981997206411564791296139116897505406340732911204241506888200771077401245142560612684201987857769106944284636320455465195477923524731412179286747751387081239024921700837543159483049870624106959869101208439580611726288973743304458481294388791619603654906182044087781097247892160521996670524669388534240138384637254269456595369562375559877300600290405981902006225706252205462847080477628212023059217830796692391224764989284574409484462370345546756084348020647113783394561186087177773523016694749960381002497337464857327193717034283304857952604305237605591127954295867979200606142863700423487153599840360737200696568829081275964972263885060307774820738833745566578547985044401387640335250893722668090544839569994897253914183247623782994092427913168166542321512111242055458940581522811458586301499807232872266984487135286301477361616250197405506324411270941492410225758691046973910810150832040947488282709655587025939962104971674883538445138926270819905188009507097826787389781301513871322913906010815881723312789767972939637277968694277173225902919338844989403164198642640453417569853905829481622981587997623646025856779132943574190316763086214849795418956484797516565156552978867903346555555655135141647043175386475692441495287232449144894835536031333673885299937506105003362407791374330317978138989385954742539481593343433820892268826812870442297098726329635130295037122520246127208483756321717537167598487283092494229381953865048466567208545685572244190430655893792456004121055184191499824844074932987605559311110843988808786641247708525903820881735052101194058679348865988224417000518408061292129041813096616603817481908857835835148553079237527154002123945161157866966662307171403753622430809203838361653466177388617396358743683142768021318855859945664731228126865503250868840409568425841576635111055375740403422763243623241791409875652964053511389134451141806148647614445737263369560268123974694381679834148108382706244765012337020188562779126790313729966186231963080870376015358375724629808177886633922126786377601110594920615479471577309350347315322932447912183405023436174076412635683290649894492573290189527797321283189700965553395923173924637189955293579833633534942330170005106011966214659035218638428111291499623870413002476426031273362109980313869139714091849940019696917404844664949869766771440170500896212876382973542087754661558201009486788745327738569877777427062240023714660454130440971204492808558130900561073060359698835869440501793553660403467470957758866237707169866879478948020692787191925692004367655385327007438793085969769231396409226543442309938033081738239609174342502151393487158384542986442539405576921561559993145072100978896383413735634140139445755269338339889364072971557963424172040711520083821666068317908973646916023047393894539238868392721267443243714006102073580128719579303396508621539915117625612462996115475193353653400098084088907479064297674161811625460643003523708636530689586497084225637421930212707883276759589478419869451492223632821196586032317957054524677611444386641883256508502588521985043854983780934418747011655371035670987726273782140875097218461158949113151834967777683512209488044621850053705207271711182865079780552882615925566864691088575952598894354025430244996965335680164457290607689003033188405990830564227230995008464003529071697851995497125649090369610836048516789454817395169168630155233722225944050322584624758754595351118298869803675947078817016397060754080346090122843789340329452510666324498554108081875329503081023039702431376491772871630372917913032986434722549847246671029305635727014860320360643092206962873008621802757253108327310626256061213982704638053157923773776695147642543575194073510447142748353678354397950981052071480584991222182391076746243750017744590886255918537050724923365448030835364756684244419387253286081310237502244539280065848035463313176425905519374575225095259322623002659659704188446351235270020687983143837508553445020055639331065913146815576545356094579052493491498151530577148317089799135625014784040746915413215059361633245813072546636878166723156372245045875569305250120696234029117456301433929086746929459399559967080099657064355957450226821553876837522444308748666593537332656773078964810117253949506195445902093148285600334133971241002440365024218872988554659093671510452613388820793567418810238509220068653011251788379060810931227642480403674188561532714133907626004809764471440319351526372961204434937948602520650386337609475834348713745902459535051912185093299904547528074424292195688371693398417231570456979431480280205215907805397166341332425512342134403385526837415267763644986330760911774490519719653132908745891659575393941216914509966393270806619594073581970976866011026546884174174194415695443731032052329682483503429063560357860768043330661683238647139356673314994100922271555012737231203755931399228744233123345225373676176522845323927505219529245095289742786033724345300944463981642336367012779735535355650822984629842602724510826747149462947951628869700897355868682773065678064876490625760378698406761683292494652029827486371124685287447998505182250912415643048501063803171425373330729480186004671745049341471660122516441707993590687888911692653459532812613878006053991533528307000606343554710409078933451375032753995356716763051508033044234594712022387806456894544724094232599498225001112673390838070469315184475695832304866686180199096885501988738202852106163228242293427363873666432381167242832243615183330600408873482346473662341451995250625274698611493192042132973179970658538044092121973885638723020514715951327898816775989279018291921806953385441717924032154249488049264542223309285729683657370471287285493309768307725724203553669188672910120111967121544990120962240465431770027893073853525337701350602249664808843035213322677268460119798832191455597569732887991595546297093167244755861601786819176518984285250674779692901281917937330149836033784632842375634871494968417360215551783554017676896456340956009090872325233281489162359647835124840354575749418832337303166321455231490798883803508227225914535803366987917301726589649750221215004382252257914298008658189335896728894796460264507972833868555888115736866863389411612178590365985882941759122589505026326609548020551174976286387133485589408014213137340825518752502520607325485123308517704795226424564190326027143507260429162359682753934829202359444679221330237623896717259043116654423677208304559856051421435287909500841848823831572047286677081125411078567415206337042292217310781282640170633957951845776057125661044602036576963176285081253744544218851907913692485133682014605504058260386367562109744901057222555687513651637413253628588509059919153597957722999797774721522644223378324920943406205506376227802221901026836196492118378381280979980082611437383099301120219764199964619950444589718947521766810411468813335248034454769279208321016184476478449455376464506085968701686029035309997718378621872313183567637848266763188906049122684479613976572883990803351442808576107751656817584524419612353934240119267880841510545614520756791266385931828409012570017644711468897767749919119797717739295634996775597182104022951182608432757663404896733887919051546436609519105310190054199045757167121244270891000154469672755369985798877195655218974598251602343643297591827279987201916289230642585606192369150071925798454519044112749980689228379302404790545729840568809125084562920058038524625622610666414198509247219001080404632494995135955678715014786733469295132579104265504479600344912104706184957091177413852142211544684461460752625751353201463479026530857727657366502240420035981604256732266055745452576213632635276029522234433373638225112172320429142644973662631058946673348848058658148060769385827417957251473460072463122651575708038622036647291693690560345202305800238687894743863564361584392290029129509440687285833563011348587747183060718395778390954288431144461521742784943279549817802943495990733459022183764071737817888990997818113046024385145606661939007201500385927706606491882287942914918927388431407031704107759251144846639595128874058655393043100086414076142647147480396449425419527485563706453166240138532242722194441693214173538955073088644095553734280041517630803164123690143570398391881965461698699519128227396417417213684865441075861775019889190817527915197838083438223638691690958404921984255781611200231130382642694888406869553802319410807202862721366059992916734140404272728596443181795072232060038192908760904778791849105523891825461789014249297835469205543882349819471071582652120615492803052399058128681144188328114915598686661796924048032962418757336823920003407095340906158378370826490525378016411497459137102986750956561258035511014292507884880017677304961132147789096319509162936881783508254694869270259631739323072698076152100536092748623139936616267740638596513288216273222035291150689142654416779544309692420493346487704639874957946410570446154642415991006811162029755178602414282174475842793716530373696876167441985255425710807934099848375878383140203605791860534866025802081635971913232662633062634078600976136503425448419613353890074871415937261788653911721741762976132672884830859577336549865596763206110572589456888752017681372145500354341495894610184300208825900907278183759025411356792209140019751630746376323653055748002785414200967250081287066514818799278714794947095003063122371379688319086785352946993338644606969533058304673596482680865480105231240773852447813778812017964452469286103693803608157687466114735322112921241572663411637324985420693936426068882180158022916502960075266207092327072041480197303163486910756249993346524863566210104761272416474991122339917631459838769128136575878314605340213993024185162863577570754003039482196534535852687847504390275751637412965815012806947455377704168861600443292197514169489323249521020947626764118731541234974802809131329086328388338345810732543317880738196228136681211293427442743204503975026792456163061393398929103624934853932675909389336034403456124587298909017908856332266866121849092042889886237683588371762670371162809029655741345029006742432548654728519386819669483219796303484496968173008954029930328854395506882452561055749337709347680380139525302168202566735970190353573675482100056947455346771749820648449518020881987657565378577896658401905015927737206380315248054975107309602624384305368513469304717386561356940368232477642516069964512584400168395904578836417612826845282136677138791538436008146236474533706669064613942632755090639683775169405622509307032253863265086008252597048321545974354571801682731833063507153699211335583028894934021788947877560947971973882339571457735299289976375649220893950825097889868974648751868738057935444336224628040738311121442930554989665526881048400307373026505957355152841508594071273725803742367087596604778786126185346039139255455173238889375796119103578283715920783822061806589623342971370434834096552576863161673629393248039189733805636630614852593394643111219446461514041068306660485269135570569796434073882526395906060189965660700033686283000831670104073360594667315992716765561678990821159488027575526620591790036686226686819963870645982257522563581007764074045406777073621451348170555762444725688887024130141797228995112938959314565944575049034416543308758475658661509886934553611551298947806474068477145832019967232895580438387516173308248905519826864229350066567990172671307284069556936700437494350858580891837192679759092106797764610201054409478638355109906733929657713792074102550485161661170617103654468544449396685325456251262073705018019283445029160006430017213180549486440797194719308473331802949004495416091928375215589079150606632948046269160114580118380705282817418621707458663470329071625821569728936519231562889589690692473618165680278574791955149307493894879353018017031177127828356953129740102279967223223891714338183899473772696538636756851464140016902239900828048714261147772245583137343566149824194882654055049615374721124856292250826340698918801525783117744883788921857739461051493803850589358933409265047304142408186616117816498520998218946006148734139977383179158129583165873951735877009310808741111666225253868495426802762289525471771881675395562635932220879501599175140113457086520397294364127852625448891508704266161507600157384241710017623983491200071151269506615444811016163881212296008985888849209173601847917646984785211998675624443466485926413081476466370563654637332194231788329277551114393041870450919874196638955960048303907411288288885289057609234079218349793580409774830370465423542818756425820501663023398210167154848596101004149694192628568311623232493505093128296921066497103945785469393296543905026071841251348632523854825200554372123576037059601186253877077736554521497060330099966732748669506689486736465866777317171890278055989423654548251957080288689900833276114733917637684081186199854442183654045803796407539462328765288298133264712527144441239925335011790193020080201877355676950148314016229537224641809417502514589554929750924455427730753336007986552848995082833315987757203200039669311459555943309370515403249878361290251786877716440090957344762033053096714970572335120460465095875183129469676995105981040608075328086500237724999438717270061095535579905435006675673852483074076795490655661011924024912930589600047390360547088939722620164169168286438551862229254694505859046458235983600453395372632141782568783936314672705538389636272998396118068214565481429556097132989735073135911437811887073721808537438739677190780315166699728533925955400916126600895558625143211559157900030359576151784320722827292155702646633953486475615635007725389141042693544980402428358755822986455767061879931287462938636523795138683021830811405170522030132123407336314641784023830037417715072158547151981103252891193411668369373112212530720232098608717218263879060317956176779776336346105060113588979188597662571316745760875485036499411172468810561391726904280152599227616211217732542834151888502611083407298031371940446021489000970312805469504362023893699445938524734915392577442356838953894810996066657149821863756949305549842711193101526509486985244364351844873697203068177365009348108406545424667518095380591480952465456258316611777182557947620322372009212956530912768992700476985937564489176378326367409480651775170343081193078582912442200431030147868339125069996223866710557532305590822617399187163509912804515966829325490302768852904671931256372576336780023217352331213089013984757338905742713836223438269067632348915172375907662011362621605786062537974150984770801490271952851327154535110408896159146740541828304213690978334399468633311478575251286264458913289068632626153724937133479773533178305947944273057538650508869271695255212516280436906953535551840464122043823004217537741544019143000540287407658800626966633774558862883959938395602054194843227461777747573467654032083562456103605719610602996327500829456256611348408860730609607196212984865073170229204378997273283991406934748103704645185227717230456987196801532874110911180440648362142197419808274771651287803535230697797803476805195323403801069485972957747864217822237550984572046408364030085467022563803748850421600412799635568333595733806408671454780679493083904746707929099671307593981389719645858169411578734512252999593091420703215273118423898159458172901493980614044451753265790405319704362659394961003078165962688335716794611690277866703521753321498761641220713332161566314460380790303303130556728088861836256392471896191770481943903833338429420315372147938640282727427823068611787520395957785152905990140641174124112472883891479066561691019994643212517983679594743587739454379627828566266589094846670764772902526712552871122021198090146294764131292196617383890041043790961360988363368639260190130427670690733415922599365965180767311119476393200813949325305584917448950347865098353348777138212691437328376212811004098881226076242593805902553427064894037714378074999802097158744546406483793691101125547712362763214741190033583889133476824847205079471357508246263857046479199220587616472908082879750364867292074673247778782738369653794127772115001265450302081217152069384553758899158523459638284351701210986829271661854074227999108040307670003792809661347508571841012686454853122885457230586757036752663932943170420431799369911906648815834620029455346629493879841318457708718318974066142216617839266567781552494736392800440398292056309330605216091591913651145847383797100474264268834360987340545039015012947944423140213511997900091479242245497173188227555385188075578076683419757143245697412759230379729719885207046385223470643473238340764998557598400532399343356941479833223082207126340212402601166629093053901335945619326562926710813705461516113585669010053049560064125341626776391000973287048190849697666775296081784746957512515666411369656126518167398545667100124429370781196659561725227073653326033676781412325065658873920499942512926181774478939984798955325455977663555656966313518470739868369642018515344166644404748104502728716022736105156643323229485449682651677621294666902897805099856245847360346156538180191912059553447547784958102621415920797351114209627771033405082691060428855594997115809979959978922804658132526215257229800318110557095499295691167775957797905823391357604804759290018787131590292462110137295704105841864227205859782455668224768437735690635025399828058351752704687581599305075088608825271543526797990094213487303606159508585312638394335618428938323702395771372026164470928965801807394416214343556309418723147162396446486387832301312966199663154815770142300448517042925413445799935283278917672824878463667312047617001422426005820387439682623515927757834708928386679644551501419930169374592120176365065673537119835078882157201898642799334140952652490677947083374073176876953938541257002106732328849265400382765520077928905231381918771868622008368131789915029272026420875758906091175150709707649253292536504297321880855757611578942495037735598927835526136336869572543218662669302716887533294329350584617282662079076908599646045628526910916141044987525534491109569571963910525751042401052006037566111307353761451515899282009910187667782984714409864319740866073173471162438622405227981337289773239382904108646593008503015930994559961911469963882316321465471999645291826410123543001061599826493379802605746609600035968284994888097063062392614069771797931087473213421210489803265695600174576625428990949041864705642608302968268009500434690536581261163950180891408612521337890586441913372363556172771182003859808947594199709225424318540249185910391764052776559416744365725785922039235197262903601899426341317972214280674041640771350651741151052630709010657804790029804161411872112549382075963334434039185129829762468661718348859486701294887010623020099876099042911630363673836905512883041640206936328524215637742101249673743588955054801183712333848333382166838071387746734801684904847616451955214286556779985911669719686500668866742438901534077852580025098569320935829675083934699796534895831905869852804335841374847748416322838007793177199053882752156018637551191209709015109637568971489138807990491594610551020575890026906618935400551599094622489068974525385998428788772949806201079203081684231028930607275206196272851466068277908984838956986819747269828663982205233485107558667379412269439671423994801716492321302737179842355484383118944261595788156726532896158179407060446641279118579555869620459352145558455310192751465090285728585200462279137182483479945891133787086777063085852978234973822013723552669892996135507751432281477651436505596139574314888013499226615998970091521301038839757815515595562409707261720329424749339684950502838111133131178071130228844368670647348964184939668708600956064660939365585163112491770981474281909173291543315340406833563809645132669144190169827320530872993674457354158663162645383771034197760876954598955729259465729301250288863194687935073126761370404983811450271207283698478566026557208922845922496913782114023355756987299892598259426623597950931804212957700813417641136520519125914071877070286376964202676091179559120710378190532918794386719369073830442560171059026622048929192225771119142102392592032526555322613521157152161719670323036174884010274117741316359411587727258350449933112918594157140956013377001082553178769307614908264467406674094528681946080038244643756339032982281258707254338473210143519459344501533265044043573142387312552388094988913594950647463564107329417121836270226655115227656322622926441681241211826221005159933298144167706584553173830498104493988534642425791346347997373717090079015852801657973608647890831543108989939885472505689388405764140976269714769078276766390823994144161892311821116740008095049657652176661296475562346048560424271350566774168510439579480797638949814969441677652149851167360671149611095324976981551164728800137317170990981978234392143295074277534651271286542518267260101545586916563692774245615749458977243135015055777717275616825377044987145644562031949987412739634214040134205370567337371905458927519067401133778375602807715557667132218198376351596271150919963603552503050155574633631399515487765153022325181012906660478397268895154506805702945496080655274292261586785601822385359139528667621783091536754979683982985887806208696119880828241118323335424289637162305519507452476241989954816524704465910676633623295745724477675528372257255219831266735789990635926410681568604355597321600131817384521023237646404121926099767998757750901017112710902801384013582743313304352215226003235766088143167635951707156487738669904200758945326700075106350575590362969387714969737556390261416948729512668989590139380213052649717297295347683776033443856463899062685640822601125864779582418498558550328939963112438965245842690088476395803087097519538657065494197210931872601844550304236538063917854992127393002053295323636597121927411456204460598116778150184116688883032109271312542827175822159633677539997132239647951064515120925588026541742068588233502304500674832075669367512938394078779879073219278028801784341543431756784301423178096406107325115750126848524788375768880884215252792982114078778834892939836004374580942501331890342518459620791210969300215592871054619839371006202509136452638785139019491120556258336844877684168263796963044511611203919041974624468934184068563517784461286549639501997340141086294102007166135168501284101363282145149144513830286325616824047739455889322990239745075377552025027531620875474883289405391587294277823456615124902855921920986372298083118154189739174239656187511053600455512223515509853881438026439031314665552002107064030535400769139576224239100525212146362247347037808869137039989746444945139709681874197370548485765645501785307575632975599078213985105002829038037619783651355684229922990415990352361213812037390112224660055470543603885094876692530555664892595054284687850577748918832588252339719235604884417045444988965371754595960861466496715743588262278614070400524568722666705775356516289825956712338553635453349380167060118503992488995999515852733455806151437683095925896486392014440470347133249835443447751839497406531315167024085977697947650546459215319930884861802892650917064178838714265603271346510199834720320169050784412103700917629697977274227559658379283802303043883615000958432307820472965096426067543024940704538261438587447505412923451364003541724309786405079318583715028002460654191622428158885549519446474159320741432108362460625216714636789161612973862383327375138651340773249410564614101044050068756984943667175188802595124158962030319646286288381880088754900528647061296566123878899507350582233128715450439597174504429445353094109608536332288757241191105163532417492610600115367314038568332792209784300415437058521889526548039011603460615212393828628551182882055227187411445088018728887078687153797800316073053667156987633065150338429488999008945360342881974664045122596937161322827117109775160422254342581400318801824015661548874416483142452522313792535849531636093301280146326671949101886224226808040272422321304478855248875761364932277353807300171627295809807359525240112486269630229894749846034451201578218824822243210771991297807809773525143121416979849684394335372087665569043215338981942339908755400274460347783464026358627807814104283635022105597086272147773863765635849230564408491618876179884592515259632319338021262516757175755756044746370606259268082666426361866431348521955570857290596484094828742241132828606783562885767787845923733225183306741879543088328282520130884222496031368993805861985334060327479915637579365678379157208803631528614454380637900817037016839495398797207781045323122145522397594977520861782307188562689914488314791920796581047196207173505866312041729123889097336579899470152146463752666060517018308715399607143145913762073368998980114160478952508978148398126743602440804592773694862786479947270565652733938913854795804340977686368675521432500573722358258177180904875638463445692898855766107968157108350088591363380041544926950911317318685460013674645944146775812732140727993032355584449440519618184283151121996379132313480358632228560221405628256466447063248049879826781670407682220280428573017002727547372998954345035103844669998539316077546204118326882217017418229094512665357844692446831543507537463543411218443455045335260022018785832866059179225002131421020268846624794585193020001670645731220794378520334292697443060099214933893426768710852638817710091200360443655613522133096676565783856627959481520632781690902056615747890726677962492445516407903183907913066415045584190925014140502541018120912492950370177099945687997011531057853173430237805383876439401509385116573249224243345997096738873518584753594163706182814180286227362099124504700845238767775618398254154811797343489722919382270241140348754516143387977025426727157731866958550899856644632045441613060224666882641998432261588804351832944700067455426807593922889053110690156313203789300190295663265748139765900246933809126327511938767615906479395592207625108149687775764499594775137474534015984772536999687736412981441165255205411904127954090270899336589643376330489997789057855242818436898135154533882230059621949108343263380883835824343960443955708417713041750312292074433809975485097436118199661973969509671955974284436409564506656015289224360448702229297028040286690589779380502720781270350356320437000446378366481678105358554595118836743204249108926695740089108581095147564166646197774477511648612661231037583712297124769046960686930057628824021398906820374421816539351023196775276923264807436540029094281622819788563025208632725425346575410089576463166918060784724487592191054300951329666859117973730562256694314821718488614030789331732868093040327214377160136297040481131604978714217840153185372204013304788672710377852631883061263836909661705687765403357718638622701971605880278804166826720488483412261360269712172873873539625518388923910503699318201048595777011457647066402311045591505937908280890922908699719551873996946657933046310630667321332279041034926483437715734566894901892823506508259616827413717318810426036970336957079665307637827241694414846844971767550160945647773329866629660890576735618334936568755515291178085416088323222794029260913589511688449839987469861358978756467627833773966847102675735253872615508877514348972245403422287883952526977116828469041271158798648240558749263408330006338378636700119233693017063472690036655138369308999597815921159114095022665711729075826971865438324455623168306831349451475554108734740011195178447845092569034796214160486527101689303290803621515649326319561195264826509924277507172091393439610323031150931147805543547895674923441431149721499062699036922359567984462725086416901205760580297136066913242039435494001550733689804101954895324815144259415377075486973311718512254754716791907970457035236548391359929173474142825941944478742562126988091594793043923168280707586350504797120185923062940808710899104502644439793393581374357341955646411658007535176764495368678249141135157000406268011328956954063001504670980906647546748920798376625976163998728505244315377525647155052168984765342858247427763659986270332476397642581419297514865821149506343704819832045580281650780487143357241353098725465009335197758212587606418737484743515546303111363184958934720241077624641854595043655131991881491067395737927758387386399279741128199993264533994282965195318226293135015204470426107011729822988594787423026515326078083325960846713431028861215984794082074727189255847244598975784354713135432267629761441998625305946226781436741062637115569798581792029222703088163988853655493886530315141527093020178888632109565280425752769175291570354439447199347027600886195988416598437471635984818734079786767070252667750045365658180474071731415974521108001943050147395670789223890138303542642349456181254062199885682401426468157597394714130719623515521742320499947990576130096384832553043880220474417482906217830411122858307238982449584243004291283223489984959808027687028597342157408674901917566418765917143099158575678220786646304293174091146164688632954603140664781542322618183263269759565247863941894549852021762883484655987481496900790955047537625253824030208245031780393681003218750384470325424226356671161253099375730174027333704114365290035654350529700815411121457082120025540025773721651713421724955564654807618059561099132869776173890390971644601063449323183962604102300975117591325413597380428254061294184821727500924845545333875450905642416958194400666485796946290116041376314892286075606970681438489214419211678936860215303884961231519923267388816801927538914586351767034459114042203741590681494881290600977198308578217359944196613212413266901716645154926365414451433165723890751088432322613095675299848704234087887635965147774709320866166761509096288181139294061437748392234059355496397171971920715640642632583639105657144664399540414900650278183754061715683225192258359220720137759961900345379825827349336865662961956854195186838286999397953634127058383161336021405062606305400724976130891794916173870028596637643976289738100862434142072887650486757012697902280488768409389235947606293146357631442881649177429149987393465474214390906250048005408837687517732679535132198066902314159525250768348068960016771719972013248474590651164894896029220650152410187500125834755412913117701076026674416398728955999817007988073595171669994478406336865655939814072764914383819310937287861310422309004794590214403607341992581945632886582944577616903600013531711088345281122813268345359411909140055079194052691689663046860464836837606371922879104793071643004594837307677092671545393120590608025238636559279225630243910055485867179641811547004417078292681483133203966052164752735425098742342399646926812883340025081789266031147054636012762177988292726301427218000859679236509610642072231073378776741300279376795078119166525058826877917103729489508235239644342464346422155129336385204548018095438110908962656810496180912793907015527551979757771575810737351951277906870989118087369612967114368330758778347083229563618384148741629956657097482426940894892185786591417929315560778717147046370486597942825599828708217180032663499366015742133390155630745132260789367878316931293771419993850460133953999407592160207582656874866865731291903525510755452285707391340817625779227018386742530173483385610803635250278081008479093014890128881077627651138783701528663392951503758918111552631527065140086985301550589603681022326972285973813245579546907036745137930434901632298969464638547678137147566900504286971826955359535034340719485163065132025913327354417162127222919987931808794040548193986157618027993102673176963645031258946915502659212511062653266033510314317001630132558899169955689160133869758295676835770218552306947584734050245685840272922037891525428462169258517077465136380086630526672101759067779381075815605341501869884108945869122100935741087247250093429281810826485063447020285116824014333443613662259786313497928908754504977974973697164288345885503994591776812224439962793735967553018326259717476988426990764718852968799300570298866647714728075727294103010752442141679479550856113733027092397018312131373279495692203840522316683441330968087639099671750830561437979382542817989564558697994483422210516985202469540761093092045253119766423901239852406076644110313234003536928143622912972065013534333372495764411081795080849062322065719980418264904939497975453854336491095811263030161617696125863765106712883068712927750478698167322454182007919156908214879606779236428750717123611679789575017744301080512100590976883233461671671220363821349396303537356864891310953235252981640334208788580920398466440635098321509214657057412758441181329372160286020942313024277542765257148246767668403197530415145306453391171686010535013332501270018552493338341499128171772975549924274744877639221928112356945422361149926912159010614029564545867459719471453084437180904036615215852860526252974871665350343242444769599989588865144259449883341802470649267835564579679837278825852785868954321911342350070538341330533327725662666343371001427842681773885094713841789623611527339262909517496110028822418486340584999900299350199369224499777966510932505088957845125853448451770257841970068920473186377889171360088459802685012579784435287010807241289912075360217693609834780229857703050206144813005730418057393227079629710281025210895048953167409039562468952006514756475202434922840303711639170994166166995259135525547691144600833580788430450732879271235795822605057258987446780196170168897077812494951548296541602999778827338845615268456837376151966640609972349108773933862108602036161932294982185769206291867073066541718188142501143286637718929570728547434137633711176125629300166254058077613122936398535814483816000077618452412591080313036691948997935084373896715579139812813548324585871396615403434024683354516152381753766841637951165700234064328812685830294260320121166744632619029505108203783661017917380386178876177341181795321279672442965226583004938227785937836584743509646452494072952579803048620751563636063675088711803838763879224942395641955313968509945474421062374991247564020595835069643132335373597250208695173373394166390181175874975666087743593833159541351675209254745523379242800776514093243950061648009718251187283396734091693783285977129374238261952407471425339424455410330498114096794008599074350440245374637739852734406518403132376648185744551073611090770348666238797984583479069026767551454021312366347043412782809770830073426342051037019346009316708689431929142095906903719917543606067463068480870779658761846498501650068102860984574600452890065046081789167052179297570652739211506571913590129275570021595187781936062405007179675535444522453354128460069432333304942388166633702713948444770896548034988330357184954943343083043098870185142582008335696808458286984637637087044972578514473970098231282887729968346709187379359569928638750416180577268365887706806057513373435250733078240534343404064493298644982433012392968897540511529981822794359711043150357659380534278647451985032183932001406811917118894204110368724345457919302410571287227304090751250580090122195598999947175467988774442501390371570007154660361121953035503183872968013015022094120653520722594343411981475250056783417011871269888985764538528218498939056973347462315074864056465070888374351399755190655746067808271757552223784198315902060928722132415955054903846010078685090976953346977859388975772334117191544213047394030060263136147491904662094194886022392623966668181776682639480489061133222718211155855034957645907166121259132071098258643705982525019234177770772304263046963176934299547060642233374085692198587460614191455586442729814883833139838101123012178205318802784618924473928253650353978425890303707810975928920563213976686649621819767300431926681977167321152419954496408678996473034576686540219034694901032549990513898963688116303623768093915022702050389521512123394385627282286326376690742036143324031885371522704390725971584291357219449883142886910907874679824008216111937231257550673392302907192375622990523109319796766179928141327300348152837466539909185900514960857659552040155468286486552433652968189840626568630401055181192023281375013923898274074940299441794092494667157514336751564749765176876166483526749406114466126042975973322133940941922830692151601515455674476652586253222780441057880004120619938142037577809232972953236141093841906928796004931797160696160840176638341548589303127365476993888218592432626457925625941710190489515282742021456263232345219378471522432007759842993437195608990836385612216750928971862426847513264277910845676506069457846959256436695278841032630497562821541636209144970417342471371871402437586654000750184643630576703252338275117865295841735655686692898370547383165657078857378812308530824932216435143521126080245295339207327107384211923966812553396459555672151737194836446751394695538929548320166155539151103154728741435672696531914504826729332446224702352528795737657907249757774386073655111736319470107457088957559825079329092949967129540874966176182086230234534285880763286568185736952106133045724061454413078936909667531615403434196843079001427509771795279760671594872656874810401681915882304496449345559551804519418503887893395871089731832865863461794004230340329052669649510889269029821251051727350735641845134127306537348261861741719003423292323692943927328334282615330651190442297217157965370950866317796433858714613050199041031969498332809392531585636227619906007286092015144332696144205739323849861556477954123220889898145481347916264653367400331984187155142346910079405055796744164979779835905865624302102229051449437665862602280062581302640092580551946942249230686409140020686867768676281804191015217015503912848117072448623048788491810640607595768991669044065535809627960573517738546956615459161147140361049043258212693682974867570063635389348136795495831143066058612928943185369090471610856620052360566596219979722899691755343604527936645002321897846874392231815446696059204487367931493485932719638446198479164327561276296141890602786863901772832853391100312818747957425312461666402567377726665445974617254742817261168568094933055877130403613493492713613604705519652389095650819822226868128854169335212009246764245143221575783267963697491661134096618620067388937164126849753674572411128309034157496888347932303033546181811359452173212556349794218106958849470876882933468250904467723887372380140810591831975874122376272637499450255380376573108004170482614148163409282954424730064821981990305007993186836094356489218689386928398199934904433951574683529815142313734841385850489467502858138688981493643513535246796805048179469173032454531199958946526949110891137635920337849621929691941511608350464469827476775028633753980494885613927592301514248705130413349947520536785729825883290429341723051601028051861131329624497938924569831867235262384124699903363693798038256034464178802264996733682429202412698721791058906769871328316252261874044836909442384712408008330013532007427181455652560121702964930440476088170498983332857590357244504745110665429671368566402470333698189082976139687493354709059736993522691695080992105846320371038138610292343187203683169250425985022703526831128059328289414198223178505760142930078312795961851229729945395451233680527597358031592328464681230673888518922958660173024329181963559244674348410964023726532877894642135496176452796600723237663122393040077491388747665774702138335325492834599033373465636434584407342733963299894426870078635955489464470858967087124660678343100471442277901642364361599212207755568748395370538668338960615284544162915843529137167836201669767071798881694076549374648329407517028486602513962681162390809553052351364661677548306489986956199117401339741895759668939417438906244447222051377457180336010160601463288666074538595995039050510372482955122700245835053467471231694387419598822609376540302246477548028051056779677129473148617235335867375051202312367592974973483564310970209878964895421917754303640461873282165506363705604274980978800014446300437503032605415346213276688564287092958072089540071722174760504261990603374314919083123970001846539393036492057987293336974321521230567701490910675138597487294681515317959335190110945707204034921907885808990060879869797448799879665978140306535367405088557204082145012046563025856856707111200001123955779488190423983245330653200901478403956138888724535973530406826445290889337637631757559867367808078189043584792299473789245692059565190442669142866696649847639757460605076104247684347423398188620087008132357180458108566763547232385175618889498143826374999191523037170309414215441238146505593523397156715672186511591343557578329346149486006206686520030123776353591794340371740383576410902592437647057344917662103885944766720037562043795104352557486236453561457006676631267073953508130851792240198716344649075464686996883950762133148059704803896489153870949951860712235473530602967660442933828910172504610579113945269877387496667396214264186776820165089353109534541490769529110793598606487655083243936152805899892016383822499412051147490581020545300587023214927191133262973415472230686102063051757487841736207627221501833659454491546069764024950589546633420681466582865615379515526551940271631306398067051698345989321292619031965873235387920872971512011066671533375108117102768537565855427911976226558077808604420300545779272140516057596481484766925851019193657344332696371954834690399421921587267265046032274443099670904168928647286118908929916838765027615089404657351565536606596386891368424588547095196515090323295090238617479220233691586127146948300697988665637738055240539733975794133549517575167638038936371167112037631526309844530967373109710999492619751788456575316014445761678457009382550742823810157507830538350205637698338188051259884526871871445069990725404331750418427721197746318322161781054875780651351385772311466019248278979096721855533636441859534988711625246584306883446209850756913112733272334972703172664082950751246398815845127068260778539828165397445161362387159643692624825640323829030535922236337479949918568234864394049957853232501038431999214492208522634107264314102208624569912466095671832348985790541872381328505848797730993768625880330328322251749013966735394795967334333257786241724307503368089966306536698816106441230552842198887199531910276374679708007523611350209445410309755127174141707053627476013891311116873890863902974901071747365996604997373443486602655455892398715340185998925631093437927720283545101132084674331409778760650648604018498294581098326609267351696231177921577156189937345268188726532563802712078488340237462221997321688602195892481608518559343617375066118004502630066238761096092972050786689100308078224510660850722860013578286422704696633052904517102057453995566617080296953167103897027149142799986825650768644824804732818616229953581837295994730510712265357974359545663583875194827795160316918713011279309404621729527000887025862991851678303221514701714450801009361366378047327415198841641030794159320601996140762055435900577532448914910724856132980264022186318326902638716395929655751584818718825903888512317933412892695223568149305025598364006730289666253148419000900514965423103576640186987690387106375100752035847582770563538672300354143808391965287475367781216938401747045490974523768327517592701020542918310496591886504125274174432355008674063777318177217820260417987385249884290022000226456170625224257181083303011091006687057326308983063387836140125497923745145634598944930352408760481509949780741783374514903553546986185908855419771668894478984328388619702522522867331107783879157643628341756571387512153066410089266631514598019485690608852797331200269463095562576236451105044450007304550833545544839914792934974323259372424598491576483462785905238119763863511379594900541308008629815573572396636716869991019612607412822343843216040196942729129361582060317490717042749108968388680301425893832050309483228456626202621786430551367050242609352489054447854037210324347488204989985026307792749091735548105971585090231888682190132225930815620522948612768542390147330177204585444332411672610241213417419727748289607172261390870461507829337529030510477041455898548499726977814855427178013109554219206760599899262529544297441700253688605249289486930711807013337681915174120268468023714933680249028692070999386804993216620761600275690584271009589705179686891339615314933566322779166952846269196665140623694981934016214362969754759924118481559364871588231242329983830217859696658885284477658985227571910344123851480986451543421207631342389009718239801268229403436024681563425175827639727793619433054844940406643964101194939574680287095013921589285039834614689792856089303671584955864063626125484986031253450609471298634854963512209362433819021829885182041736558246148076072386649789603014178283716585527333681578589397390657129229278188832057646260474092820669273124636656952838926140965269498950505594195679933473307818511711252104147721444948776380024952201081941780105351056546898163385348158063037145118067720943618405542693207429632872186142738035447503786026119708767563730815713753859394594092771980810790356992343054999638330275105130883070232079884483084166917439642837470873590388448107128356592218586906997820307976757228761732120502058634364457847147288691972974253112759386818624148859283844136134210039922767234406827019993585057155593359040984343212174311336285483814748770338667149334436511303545116728174967268767988993737375926223716467680214973533197060388552248649619720616886961350507929526150220361853929999775124395398374708384624480205941689646278775987561063150732848662263512326198019138579616891524256028103181673048968343837388685501011638010949324841259468372350949568925187365049582599604702065092311567651460762601107255607663468534895560353304189446394986646377306577966888446364257758715679071757406002714699467947656302093462852433246509437424087366530652611577324311880333936783359076726809612754622421807699806350751184590159096945418117173127651898643346818913956414990480281520455975784864797601649471390596438930736766382955247929407455094770373418682867085668995008211996571846734134815636328473965231132079852053397291952480163778786724908142983866261762205602813580101634189951935005154897187951217466726197256033591944477500316375008938329568335499484375876558925973826729253004773317509116672791253790086922544190263884989952197970971919888101063900413190632622796668100389136165102801850584955445106689142086062602761274722995831514142599929556416500076022463941619898542132500716481945825009708929390218781521416336462811758897746229913722416323509784174014976921957849432950661684096040208219353759661673606216365066185898678631720297651904261268842312641753578671790611107325773300718660069752983024238154524749618214328228259786539043786209150535183615450318774206646504699585555935114664080733801391921838512562511465481623283722103043752191963757297020452263104155419251218616107805431230294058679210015754835186881514819972523251249873505154381136557812407656791524202592855661220362026281347102994079007199655241347267754891606725407329446260086051119781919766509383605424469255322343103162329767617199239134035418097729126284943382253204788958727159154835787774379556873483935643562029489686207451067861384666266933994455159709874988494052299866385857046993038764378339990937328514845819955437932148758198578274407009276681725339955545799289446970610699184259497269646285240704907093308618180880797302031226648658676412077116593872818015360679883048932289885807905761008782344169385050950551440658870468938159851639001569620960390824593995769830869621958958182056470273058715472736395756965050463213375005276917035450641911907034861847781758927886090736732667335753570934258369023267297725760018989288713689273606274114293741958226272346183664870490557177732742036431604293727123590559551998096878299103859325187136597088669917668807500144806670446382152279695068366862424276476620202045114224779064883064334338094454868374835030186459052435725605322315009646367160579442363961004914544932807402733490975715857144513012252583170905414803265625574232732327904566025164553560992178621690128091406017290479469903259198160238840536558152513806448548484968563251903209956516848973119672935474419893876419355138205144543174963178077110417550563526897576054716175429813731999015158939815964613748721904197947634021607065856663982109959381381707541573753062038893916177677209321926226263417492276940084225320118577919642803800273279785501896079213356524637214164498686395551861403900668526479943924639637507707516082852400641404463197741139108939829919776485632982655727115238224642093290906292766853257020567103660839253774301805648901599435651707524586371932624728686429996093999793958752255659272177066295215642185625597749773774160062280813398056619550469081549715761413880264726725086822816578603031005122599809398355392482894463321762360591718015609408933190874156896917904043884796248448461429855398384931999221942792313274090149467194639939706507369129929857820618163466543421949453724666881332465709023222011152065882425293633693168532476970978470585816328739792430380451329424292677593625270221187688817514522598973852115943426263210446107215359902267240431492984411763641025468300349992992716297321278833115648535166955675166585644725351996191272007436311770109958290736601464528600557598010728004567612743178223698623476761720007802668970737049149284187198730159761058348635927025687568281542458347802226762131562182547820434740736928676996167374658838630359727303152198118327561739635936930466642661082596588667378908954588687081711820083781301512519453964878079035479813133239529107874851325117558395176960447548565094149595743709652236008942603916017251430488177128335188964834373629263017436213653535781289716500054740208250691777825254178357965072193913438121778054983299302253375208936102810215363146800440386817969836701889550389073171715302394266233394233112902947353377848538281510498875406390872738480264463849438203134084576292675946333533956403193990033068585734886954280148731953217504426655001174188687963208699759054707161214727475293516739104386559669835245369263450328008396724294769091215406241346944541020444464090369301067493080791277718064439390237953615176008492937806519214769316861266910232732559814915284370185272846239825749024716788521077069006628694946095613723687778849375476053343767252364368000833157702457762747924222960736680662267295705413837807770878032677737343310052457965401975530096456018002692421517554663556574577666142688298450043370551667130118798431126327044175266515651471739235504360575282991464658291380460614719950559509957956651332951117019681334807993669039798051381549782889106332270472953001230330113492402702225818092525957764798789793719150216219568795189119545662564797876449084476192506962156730220921433764086864144402681472204057140105255956904371715211660595965609316311515852661026785104948288886103319472766575591837764372459960227489959843050617349185754405108077938501604273054750787696811415978247335006430519574129419014983675733112563196952580948242480512731756693675517075598041473126356636371571778182088345431435592606988558787618825817017198626465420875380838834327793746467799576327669676967883518910951244895731896700236502716714182986087662618728849847729186288809455908484759217549020433230775558513013040125779538860761666897578404243578536119967421358113879943871334857768805816880397240764039879446959947556523331115332003973021282426319678431806886369851992264060920678049741582913925108127343399736804400494091456757713700730515962772065126937288013409543235092875556481409008390356152247115072601085697065788770946657275680073595472926083667657740478813515725412760515268877278201397223740348258846711244270540091951419959335733064039491524520444911925845609046511076185877687592715021613812128711749122113591790134644239590820540633890452702876885319338124074296772112031093326064792045471677996455156306825965013126357672072060241151458099114320898756005460861796272463356838971606243733955626884225128737541624887048141514133119010861673880818347791299266284533395395227335931460136528465002676183913207329549202636009470662306319253391258532851700181683270219461042794207210690428467664403943566483996806472707632924617667078408040669529510539724409558245771017978105670474806915990645331445904466313370270306874315123317073102323878111500268870782319078159706918775377583103863149669112197743003250991492565024812001116199091274117723562477558563822748917850642169515968245147476458975061488820013038554023547486653340524955519022408646159756500012818220890579081041140961978644168465456086818980970305495953468297767957038759982110212782179886460022167594075343415614236808975023503985873922086225766890036381765108351034827924259408578598729391852066301753332254738796094366009065959425475929761895150076560335619310381325641100052986190372105981620272159455961819952556992137589301453936851000866314747379897181261143382258905019535573143945454063291788387531690737532497974706996381381144891293086261536288104350397526104164813241334004300081436055720931562727789767813753357016124763483925762840067875910670919256981124741212838111462973911622955988574840255654533130410528199260596136405997115342079454802834925756420840287466074263295216597294739240275317918291698782806147764069942588777114952787046029808900475812773840103940107954910515867663345802722910926294707940030357025566134655455403230299522715939941096758785594410511986276259811510998695163505423966594544193049844266760326751042692272919960347583899056196888778185040410534360935015068175169577333730276772525794300315798794839637091556511122645136808803324339960839617019828589773348937196326641046397724477532541031386152935496613594589274129025366262221943372891424928446126766654332233432128002407429169072996403102316948954201630248806990595103906448298719116717732671594598126025159849271565977035728500721649297668695392034838498686541811073320784760726960078061510597363982004323372371262770874409771126686878583055422302439034255342439944596723978265737933643626625719931939257723790065123335648360563680055159472591723941046315897938439167601773972340136882562237111922334207183919920385033263429729949546255275321121175481649365094705293900379698670501936279077952074582924108140034365935194371110830891188744821901557507459508306215275986778044834219903864137165109449517901598777400041918656859205400135024202435227005911526243888834135467126296616954346102864508085878410883756588279681146200496131138694165941198088841835348433180795502460872578501158003793527395014664729765012245733612487941632705513699629739292068534983747575251511169318400114883547123857872163545474737784077052681136708817825765708302973372906550008474761804373059875081840130720164894990897373208688509591713129467391837192302108509610936632535257781833386961251072683187710999013670949989832658735558149764280688705755536932225362413647765232107103335536126031584653840444481118660494902952504190380373653621599922899331393913094160045837316595831760136297045836014703066432915313577913593759044276678844271999549804788917645419874052309567370383524496116766335701735940587023690182136887730027396339567514918596072318904961719104268151264149399394287644408280419841151815024673892793705217341340947519854433547570847683429738604707484758220269335205601173953886708694650878269718961134825343618045327173871788491951900764398217970062768414457241996410235945288964385087310565699177489327561602694834480502915651940487528547262693409780563330235447175808566021655018647289423767639465685456629919735847140027399054649173439049751233475964738760536086979055692421250537189141704864023852707284897466662888844482870930994377768599196837950529957973731773633399204919509781621231452229795437213199904068958677950156602834371286880068599075066135049321182474158284450679618989727450202990297204354948960545966860844665645279875794056967949702940192322003804664746672829775183222391786542873264525892836507938046005018748976395967526184917549517498708498024499380821893410340877485623228696395727094907274383362358660096908842421654660607861655034460704960117594411325771317774520741515329171234031577541129250909518259646907673798064512528624432134451915442036466219523532936178612815824905750531283374830064831261611950955370725380261340452777293259718704568374920521474804595772717545019802302407934438450661683912029506137647950252205256883037803079836392500838561935438812268835068199237058781386431216616735586481200461414093309158582947069256476198083959847024367571412573746693757631008426517514661418784193044950848017125319883422476814580866415530136300196479978581421690490147336001401651085202222749245896413240461085684505906775990027943746701975163925438115554674656866203920768285206498355429799034515646148677928728190220084066456031537794624448112064307997184806521401714296871696569954166165628505968459392094734090082221355823393438877721417181859706620478474939443692377972079955424354029296322704801251314944665021190257097737421250490753759621518500907848655948454367230395326461640339833602601918042747528659245829104384462612630399436102387874479129911376966654976509307724969582380979345890161437853022029619729617888060017032601794332286843325926524933164114013491299701457283678193269426388718111851927307650222041580309791297133279930518020241523701856886099583933006741522318179849015493998392053981364762693263941445588717918035918020391239059419253982868209760000580765253915590541487182724994984957728594158230576319810316819528060750747170871369831745842691142744079342002764314689227548230334736786633904096595997891294258284796780653035710180815856540708817193738895571159954277039593013385379349140758589366264694871756572733394937596310704091126410164624840654844965239015421511338161175336080845526511922697053136881483255209242239552651095662020970765603113758736245118520569147207150357998650749886006917017172028489318998617538517643941451739090651058284671230847483377296213960558683755137664944744856463502653773769806109552347825102649130779810434379419621718407623838702693808185150708125127496967386451911877157020508990154409071327147519291323628044231253818006552111786226278799862968293587355728925598201489855623884764335010844694337064771020557332419542611416329345561847721882426618023753023420147619444023914150093123977064297903868422221949452830846853026779314444985650660892087285062336612847497129685391452865907993243297465854075846171428233684854046741832657580853493696161192456695055489447081008591466630022342355038864221329906445915708328558745930587023653792306328142242176630417926843948256897750905974808477189647160262096077756139321490566880623523687295525814131507350341993485637256110905133422180810086021282844696333007735632990665359703350908743735400070190737995024073924576732544331704520790582190807594841809452850236824635766204249834079992795151036510021845020787059491379437201479708627522136881857220452909690280552522046257959721091883558703111597705645788533950429330718676178715570956757304088579534089598827349806857673315863206424682979565429654169476436719151517661324117351571553954041201836768599011609366318017671863013430117483798825894389832248948332665986165660613887353738091258210402964289522384321370457462347564920838263677946461504059065809039019014114684432809155943873028433579464262416655370153192871828564295334466264048543782533044079908562128427054398098167422766581080429810158550102287702021188677386724121029764759547269344002824427951728974051998715140125558258336387527969903698802520561991816578752757567549172722921668149226387122174680352348282548724188923958339089135168345470912326092909111586411380324486861661362425689793085138117115342511331763688820221785290449675083892487362082455185218300973507980423563301872823866907984884739695794495055573329257579081658089028666688779558951383554003842100564666503568921180886828079329719328187876614059625049309437210570202777681369808354197175617788750212242165151808529235399602430296036034695442203221277408560799756751696941295083085207561728653221342649986413852054794354399174791350253622266062334354071925435786702132184492806141783080333695385827893904544830945483030534159178007120901424369918294058189417434937513781138101516961875689022072842519991447286155400049867227437379320156809289822186346818633013937237474450497812723818310894787423040304482645555446503444770111791236632370613750044502496671731329483467034598765989534367119077085617397384330181949132426066129458329764246969911406328982710339509573222079891175773170612234823629173914768640260028493723199897031400667012358036001028921685065505956487916717594467432030301042727265625762476627732002023155861942569360341315404985981480559501397822920736662009932898142473706796814291817862879002663543462769313393225037479476828767219098668153812969013509716739415923772963857600724260840168982271608548017204874019695031409256756739083277360966215932208078916668341345431938511847295207632314168197029762171081412849048739073207314513789268251685218408711331121812556087090721437162620430150042040881016117571117341435068939326718568264430498711652303528440629934526655740497490557522232972959303915621662727577793106149979212557592798771525915359158438436219118118821693452377961789320326657482863041335572710409585460540075868630577902965085836219276957977835635973247239117680112373953173765038518957511242734250838603519379967595486512569779970694032187765085398276613427883775884120323825128787901660258780008579885803077890034676465582357021139669126367544031361406292752806612618840335887690834872611052943943673137009876887193089465899269397307623486163440572424709881540898805278666226957086364907529222969779108629055520676383408236172833332886336612850719864116840721976466497004672151148230639565277412124357058120677430354388944911775935185594718177102662851894878413687162399297218806683775079915581343979137965209205249034852505560771823227573822793487213923419150476105979585735130656604147986233371480754083216851766623744043764550613209009221705809593466360473530063830292336459696209765600979536957729161964784252141064854190492058744122644512265524478569598194243719735457834437159560073611830491894000280175643711878896825093306300428922943220867995483187961163911874267162599508710303379090625348871755831256418424216281271928236942601351408764498125000698370831853906351427510983774447331014771941870724082405711093845092132627132242243924189051690845915375123287679277577236207690038753132212412794865187263081767967456097121476719743547240615505595662521526929106237991404631203867773997028709870180830839182467281046607441110904026691162637475531574806047017878068950029641551488173171606365507464706162333823210837523540136794544115635583077408500758822434970830666773061754165611339124900865072377700227344058465217401533861741135874731808062549025875122685129296408115095596672913907924404491190229601503894098552067420720753870691939445201147535485261725347895213713692437720377300418862521624028691971133744133991906669816760422161560718035225929371718425157474286367029648114270855015218032451173174959549948971956040447464133704881915628258281706178067632672893147831819418238096858534990558011539968188218859444693954678779656261236432519314831023112771422153469567827716961002800968061751661557042897974228046220657021135511928969259516045432912635977411240276944502401272759422281072969770727045179844829538294754246397580523644272917953578834766136290381220636208901863217472036380977028301462388264253559441421126997376640470440527071128286190378653107907770177041233245819076696319395648953218751289292454620276160296215149649514576360534330492675260544500323186499229137607308884227114164091653039516759343774393967179953495503242726820267795521696605580683192996917971938130472948946531742612333133362053885508716866792736585862330916396886618021285674126181934319578603718800259249917857039997236176528183657958061952591335552346966414548006698092269158865368700794041381752356891545187980597593415927711134997461788747437167513782874160521178538555275605721870744580993243854914897152481138918451693316181632220045842647235014162959657318401627311543763212356230834181467002660218219039836114566444623594679887556229365736510512259634811197215167195925649227755356792154120219388129551901438784653661545878244194321456851392212171252195563915744563338031320034322328522135604568438084487168038119885434484316669578758101494379542419340549747996910651105678296239965757536077416041989850056901306354834524694226760688398256888382663121614325204006900097511022971623091473486961645992761847213934125402882330901559803644969455121017215923052990108642261669647706019391649095146908590859896232532186875585997171979008758134165752612801741566126814764229327805170937618310514694220339238501497109199689490800447031977232214083718919076365964138067287805250267530217474019435513223066196011684793636119197842403912626309218822779816906549823475816043158598118746939970413920078542957678248668678703890897337988497552032911982838405030365356851063693296897762782778864941357382942833926437574986569836811157167575718334680816068904258326354479519876772599321581568967538643896300094677935742476929066992180756967825491020637787463588280015438024503709996982803729169091319910897949797812452557111036699550184787865573356933889468262647170086453417643895568091892082898386294404266375254078730542863824609950676981379613179230437168937215297980174446772029412531469511732426252745152056854368668706535799455310170812057284061741211212029140176612530335484812865561954074572314963187903311012733712347670659261223946749194415954981603457099529056721909870579526846023967867189503190128242640241409525942817401634640616340423141459497378691410176531995769487750565510041538841552219903299189632195077887429238013609286849928080639276778589656445410926539838802492176771048039049200931820704241790828729452416156132977444830682980363242099061200158161651877211995048838672438502423272891876897581336893184009033670676580118640785961032263794834341009300445926650161605787026657998084734897453051897964857258904073623568297521200777371201290376992676532870105594710972051514400123259710099459523422727871657352167790303198567186684483439038001596049371937049464237912522088390059531352740064322778684606250129561627746106472731061798530925717843732991860850843737306020680487900464890619577536530025459996098973430166452546945266723215497622769785655513577852070108060755828413456709999278006379701775814001657920153489738217376825333661129674554465883835345076911776876464269908525109545678899766584966993255302224908614758486097484655570624617035510169825773933712174488111710547769022391905181685283510498759889514905085768483933504650598930623620172776849444911287384460241050016086859003746398408859036029757044216001295730048968151534067653796445117963001654625499016414335802904244435553385278804950869959918827993198646754924419118224046155169860630781646092252467452921265209258613576036366443039225776965667404435733822663270761559713339497374798008293053437582846045553326214914965425853091491359869000060673002980683404674509894683147653221298459887956759261648663651279248349814764455934095477763146431922957019436187103876423836000686559468893872960861391129187102581527129859326795668316022369588949075957155926122937792362122392938234078742607048965567619168843159816160163740619519057902120703660469195415418987601156223489765530664387532764683674815217300981994792051963854524541669263331329466819733337221982028819531804138199805039715303454349809651647402874073333385634698969921852751522570444876853251039264998960213978542942899188015761386010626893707689749182980426568885588234222138994114216238288357502624622384598019036781737981020314801727492111018396056155759637682137583585341573745455535518221920492716134987466553050608889666361325961447535594805571090284204332872183743778825346931307218096834200929830546270769639498766517877604119469765696698511497223444832230571050715726091403066661169081935853536783017706507856005168941972272265571551243475610782341817388691718684360357299156552451157472356039724247902074780969893712518602427047810802642372312750454925810230499112672284124351383400464584722347215932708953053258755520371341702024346364573355125415366410954739706293972554821219153574513768005326848402979416542434448859798012207729221308130977669143186820383998276588461613761768417845934821278953160216709278091560437381758820172707578620779532864966905392098791756521990805140148830745831471849853979468242624377072983479803939944951542738216034246803716379324102535126008196583085706633239436336309073247409881283689019011567803719010067818458113677849123993251913700107829473106854003023321142129713564337593351661990318783481202659394535828682412844377963250834802436792039643382822978685683122418679846040847693108383884833051487678460174293246369885473907194253933805699766606865470279066372444122191618000629055958253765635985514810576538578181574714024836423049929544300657727984234255353627894840725167852967875059811109716919030566398901610571294347670779247843181208548998244060764568594937775745775806737733728070120137014935794250361706537312522063361624269707522368882579788137479534868483389017705112893046313311771471346885913000775933538457456590897140452158089168443419843540241834316992321588257875952081935026289994354595539728346211387357826366833245167169677004144011030361882674908290880810423143083209901547252043541300509230998301361118689976634849334386841758882694200044333720097216382695465303016268703367532626455164364645310826130188701323422651984963507372322499578821088430904818046085083096401115450362312554072406401702275137508775742287236654686321685466969319838081805049710573678408839908808887832192352999170293978866205940218694709802579662906590166392317255456515620674467835839092591670623932280384036475603209897197575011222185003047796113758338124926831500761840137649819679760910988657293614525152440578748207563670316496716594806343528297559182244955312175171696614823365972125421902975063097702871998882576652745971871328043190023716421381514685379100498039689717310802351755112455117701949692488509785698233672718335416311327423372231052356689058547927550283936703412874508472860272061385986353392196007608189311530828598714924409350688489682527222859479399173382400055865615307402346211109396492164669537518602286471859926962811903442757214791029703429604517027413172400879975892702962984646149799723925826602622986642738899825455592789558998470885066021016385274980928258881069514196232618282520560442687832267163824388768715665684802212158037321305442344209379446580766793559257198984895042194860981117471870161638852888653932479368068217308966158095320792106615707588110737642496207969705736003825410700156387649263765795517205376017410847388455992949340269608014052069702470808339809792541381652024909790614691194036585913790511829055393556038459984394316497679058268105200238560406814261221361373327784984228469073420377908765750879878384090221205384032302439721653002206129410223407770948691702172298712345788723212061999747964471015139435812559877054098122974469985047233564435847034971171686447237663135812717354082065436326912864741996885992031759715190244594504743878800681530910792034480268174445293638838377722349427963695330548307018530323963246661453050455332183510068753004270046191375475257745262970758005672758862475486353702034119131461707959937764938507879416848682623602408148587328589234783566030096220146842920854865209146850432625200161050574311119903715421527848119030895793488679723199609447086049781919884313519052049629217337345342312441543129738621546654524869905478224015349389818415718197448727679520794857481829786966433243577247973892030682085979135421476513264409543228225932742879290995865220787738604256418998293296805858657894572632364673157079781787404168094132317965386288211489106756675864062222589517770687181187326215297311305271726023814089646538339406702029900668256813148727806315661209989602976127795145336313245732021387522073532306400372247202490259808126213130879866097780349345508029173900403818722996599805757847165023064399699895454786753353279463621538274528990307684330917694098082571192700833382472261717777643484449217074218278434401617537672973379134334914980488533121873642495969162879105622403676752465722521937711607270258071600954604857636287634255257900457113638698746943881494850966446363328516282573839814450615109695745218543078174741073260983310275078236895257749770707414603097754854901721928737213817994094087720416429859930995338013067996189790119770016621494998992008821410770881781176215737592492918255113952687098378026541692811521116704883302243339808004866633196831086572906894726429457768944123717571943789992653122074360256372679213072634931047604031601330625041445745936612453105014581704800108574708280067912813064863697246459464290185126077349941682672590980575777598905787926227136826790232530318518417973349759257715752429798565849666193931104185631682317056573151640228810693833147726596856078733310932177846770341678465028219370712477637313104278679688234269003382798383274333529835059667715156507850448755864617404871405045772839174796426632030147910852157068558157686297627692684058845084237112347053240715859882326032704572023408862045424184038568470823996660565970162617317596732865167966669406283997589144073247452670630658174201642838036453217698909498551939250367582764791261772308168821875172297563844706933738605002942584350551746227724216383465103770906293252871652472888145439156667839804683397803202984238819275272648494654763205023623760294603460656431625701999242016792593268294949833299983446760061516565816524099411214279355780561719096400260685896143450027371855655251325856168251841771049309390188718359597693940706834495584767408295149479759196435487089709613590410562516640324949717799883022709179633972707000329408103953119043089732533946477766363314480936957429850778136664591275100048279070260184160632950087064331011830339348962168899830767767746148692405002581475139963470360301041613078600005683251185764998110507863650388633141089349715932689230084332059148928016653396305960799553616740532029926721979029034257489582929750361100996237962219200361649836958755883668526985836578726981612932528008637863992014470717035289663165653124532954060080696984710963167607051112959586769603933808249713427646151494450872801871547578727011697122457201605124699724852543501841720598677577412138270386837611531028497931175299153428352899154667446898582460514915971008426396819479055097125003112371020390530726960627356504784524011862522140270060031605334698126520429466780032566366042212414255875573606924806253636828274720214258433227892619569927983258324021476512222095918453375384211301984029256839385026332308896534972471326618746721666479929998115971415134733801273654137225602654283402113071394235686660659975489515004417719525578425301965921802674213397346988883714564913480156365617988868741856044243178658719640888737993159359510803198600316362449053173782287937852385221469866784939289122542425662303292517223517364786214521285967158133362336623582298747476233305051320499318908799546545099583448947810861967085412081292794103160630782449179507616149363894435910777955799901112439173007058295970451895103804076910036943938304829993845019200919406288990567663104346942607512073581499913588696313826737213862965236637585627381675438149453593323583561739507979763713440206428196629409331079828244962208086850269902848840403420752538067965456373309774047334410577065574602146042166273142829737308377531569189418038418598478088557973665911783009298978149380342524631521908054727966139070671116271783459948670448375721777845590096501738586400963778660356108314096782757652679104872229557276184951717278259471024329230765994519291844072858958238302516500228071367048178856162024973412280980402019304572449176986928188275729640670267589261607465053217002153069839710619443624660503241123238525063536942604063857215021720207537361258653515463233872385768945979211661512898339514110023117011821108714111115603303763643384327073503000595904358911510945321965099331601844125243090256119941931116947588399902916582993259089812812679883818294490846860596969917314636930328559562596421194512626394242543841187579626869637662355170369085001703926546399740767388157099533347753802841529540830310511104759657407196248524372642547666546843655414145603643284297649300111297235116245284872228886300956697213190375730909273038662002265187033977092257857355808002992342647222682593690307361775638794016185798352424743258191142501826248822195096635169699530601929569969558241639919544738622015193297580543725590440692662410574437798299590876433227287309587196512919128556693044615111175185770678264256881997037229762543769238862567819103934626272616563153687278507201172935989048623802423908654724287638736459599713073328532323786299655684959621996858809382704686041408025604140999922070275949023617057436293862514001416332505227516430851401893832671882991845048971366333600140754248704592646413816876646804391118783686267918801087072527018163729490006523494089005767424741446531722503996222126051424320560729321021227326765382294073978381102177529344249243801346405276285813989086447931227167704979885990449355908491541837657841893151031925663399990764113592227121629331196968577212314676720474097440238051153404453797877213991799347502013766912214497225006771897774683036711148271241263934414807102054699247614620587966238391173102239371550595514731337667373710081787225162594564206233544529685647454991879787743190138310351787468105792486241875526880681759076616449508478254833562677761677899010792036795720275705522404782796119432371359164482251003690041356422928065416732092019567421251119992156144600468788330249804996954663951035304810686708345287446656767889892322378277664873611030132335992790537391950111455156381779115238117504050351762877029291431891108383911653161985256689630269253419802595269598752159297212841544753215240471789898330088024152649288872490665635568423533237464980396898080448920657106422221844734336463132554276019403596098262139439824254194460666498358544319158872151108435796810354367412101541601094045840144906735111710279084674264625728851380352542857364707765922173322847350232680625783951217740425582142598658464366722323749099273068588970987254217892491686414681788030145066800518004918203625544355967448378552051028474257848934169156867646884870401973429800103583521285733206066644948296143614527029709329402366487658392349121983380953105878789123592147177676662373682785478602663982264974743135364888364318892995155013415754677737913730985059486186432029970774344189769425854077687709491370437847983278596625010088705246906013195901885830752304894193075679100209234856719161905212374879236824819396559328295785535800921427724639304469719592137569200101234998723650430578222997144747117728447200504059467185388228841065324640534986509872482900263414083705435201280574215276238790325255984091444367928116537636421203357543293642304140236308524561662756665361062609423485237503229433366719993151630901048773460349645598172880624385549536150050195950280274978591551454908345499117944134433747499902039369494189752731229203614681763747179158844492064367108644125620347123017417661450676253317311920699538483708590804403558190057317809688240853958333939885482240762689038636573142566558569955754942768625928248454480436027040697962813632410255392775520127870819756165186049959287935247476931908109224352102055499284168623253616264564521678013472696300756344439172892664927090462582314317773850101410589066789104806552825049999501559066473356703201096317789782758638399109903344349287829550232199129005690639563514649866434054604852889600471851135125697666094692969503258193544522154157032637697594748701062820146054034993263258226731213150202917456705725344845474477300105143520926551777871640558702036667649031453838671837322598806162469910306338975286745221760399589494598122709256127548247570723912589418202780090662385332767341484483294044430400076212175997162843998511274531599919860227199050104389331171110898392812932586242343817096219267159875782750440835550182661440067609454027611897524794841825844426602594384001585258337656142137110309995076792835645917875566723709403796545675160805544835595768965318886860614287784949216771625277679902284002300495397678790990729669890282594785189577205221463698088994086811108708289769201380257436657135742988298152006663593577807860803652111909072084768151445414690221148720560004481514594096448290339973071284247563025801798629721956416074215029195818390976172940591709391919123476778024926072326877456223959389076720749425350734647441491891526632797233654202852456886755162268871269730306709123515413350710152001901128574802131654457628770338713944635358728446701196048862284747662988288025183911988839711899518401872031960334833165762342928384259190481760563776143066974275935820615084609728641279154324583770158557793080998638794084271534278898967342185344691743449703338315221947181224017051360452175161985297229646745706383490725208343075374660414172928109646057352539161925929213786555149672560790222989356509876012660725117695311759344405015642953034588910505993376427818749413542426270750040702120468235246141306161220458720779510284829521064693744971554381089160506010374289927059215407386300609800881259261984640306520189128043941782418673639736569600199492079612469227138120927967764526826766912610490410916319461993572745743422370638134575867507024803318412500359089387941084509169713519975556769104473200904335935676848919963603094141759676246257233219034026721411200462891005156920333648826777292902986714537544793663794806585841434880421560716506295751170931606106222568874165321392585732138127082926606513556553515358406069185043595834629404130312344809655855441155839471644087300469323507215335515900975552273566934413838860360627271295110301331418133337612120071099944077554006623675284844350870501610602789486094237147505744736177056604302299848984460324388809394325589995720996951563678451390247500277702245250940468221385130131066634972498960308841180574499395623611666872139651637137288604594634356523430723371341298486530527140364271598015678537494616996788439460027608146064506729964684695035806336932452366123916419067637612873456293893905353182019948418816067868587778733047475066059177276335700624218013817819879651454666376717672979188368023891680071673832767487771342507463111395724446585196653123498625561374953296751040641518866576488849833925521921789019552658836576885690146364216980509298383335865441001024296533243530760856509135274207188766538681562879641077570528136673169474147654853988044588080899955965823709936000346091311491633041863483125658063364095292510585344944502023570047381280340243606735567506698775933600605031901885143016234425388964066813160913813578944376395701252680317215199044740314712209794370333119922396424119927415546310013132111401262427170988705625323011579744859278550097631867642205728618480482692914772515072203646435901561855766279949725884325110042949247431311961908859460020553066936897702936833216605057744306724706039704940215422694020485174554295133761689999026679931710622366778020774180905402234751115595037080343086365466080489964000557260060393207361781229536550737604708880570684450397874037185250606021028645261060575497919681502292551321501218297950130528672963503955686451694373167980315716353941115775665823787056947683627105762275729213589072530003317697376315539171954256877782699703230417746393010875406169166138093910771728742648033359498113008081160268110350443684078335007895646431636639820063566941007081154560452810224168927436308484964573017220546334272287991877298311472823323052818537498942704823320846526575741077320263042965466472244880489896263083559809584863712912760218098633417536708892561727548247946128851892044379733642044922619713683787820542408983081403015263736970054584932277007161405199741309328743184221849272831963786589565086902093429497530415047070345861482054678236360722969778640169264466259098985998603111555109682051627632830140334277305699061600697392005968168132562896309381891223036004000477752830184215743108212420389622730568212645039874551111175588660806393618589203977397411156582997941607285359061229299939603172849400272574034923602493369841902363597976122179988324173557888126632296379216099611241135131478482845010135073495392881385339872242300116590652592547070114393664129331131290148165959478495570813418178826499089769492989109018636445145452199557581619886303179453929007893840128683166254084817128897399048481142092738574444889381715041904396365851081567434746810223625260701708726230858232419890078282817401727713665095360936005705803288396541235552837117879985638446655349394963254426756377651446244645966878634703093898114323457581691825382774794037053446716953032599895076183125663450242090788431654309762596277284409657955101869706022651020064891508304463150951832764620447993061213418686963096792912043177533267257423863433231584025230905406765045001797785933397787710337853185033078658366783202500095694378562904911925082998662920038055302529636985606000824764482763319381100410543724523441467764800954588422837742362603024454979317263298829666926283272136600888913778414464084714473644339963503173965154917224405487432652511673904529517518285040934376088710257385132464681343418963283144242671240255579395360252092601426863744149686461386676947953168233339038903830230862318628751889687405645862429121847966308795823922786987948633001116903101006258595023021045192217775617568447285468682355299015752542016445336090053764191972667719092231989000774454312572812360109474588230621508776063021537307676329979038591389813407889409918000291198082069203354420125219477799033852331215671249147506706283772640754099941109447623403288061376971595387825783205165305407181187294960544436984929267210453058371012844245447231446291635526431045957422433908878739127621843966456569167008344889086261770790967545028231647733937580687832271805033414273286982989344148871470636983286751384451666283331132337694479850969888332511961939634781982786568328178441388524584953443143164766923464343778232761834573252877311679118138344563782893139296347012489596661101458476303723426170409393570368728499604612906673686170160454808497453841776547532264115987416592186841709503259046932887225032268670144152574073237322991467706148689873761544444298582273980918038477356686214793314504692516973778416946384136789057602594352645572848566508716546681192144785569032026067282730372125168603293378367627862845735866611516141571733351388923357868724095707949633653298296221650344055646840397212072963793327188204832181607557109981375734594617540227988284363528378926985568254138195416595973189611939233125258178607491632630978795654876117392842347572353306604307497930424499796295430000557545045879405695967929675545482010223590012322089303167408753832001553508822682681534781452860165957363302377369690608757912528087785216682024847681708898526360815807386924595428737390661844994945336314298170412879762330591696372246578706431057073541020217329836055962181160450754576687076351064285103829775941509965022830714644832601046115450321921539490561630208638560528185177051007084034832804978221499485540429055831805844488402320984428527592533955355729141805491034903280500441629146337060955443973320788893980864576115247308743065031509207209790306216356488130571473904114531382370088127071225208836459859486110243338198490306889458991915745146264062440676249123657812363080317670133028443034068238791091078118813661884800302981042433442205345615413321351377574472526751268544367691231949228710722770925242930346505588591359588097552294725999237484326290028045186969953994721533813157121488506814811318599012972053402456670702690424050789374146003854782233751373312868719782244939688501712016061129984750897381377327936368646863967618002291808016071245320454754563516287028856817692454210819616018718755684240891763705285170550666296622581506000678839024502132434272766684394762096929903182402773325960091876892776270434611265019246499353992371902402447810947210511268530462066670001280264895565402811640287092975825162690618803552377765240387011325706283978216116835741401257845765133093565121276296255269340556270384876327819357374282541043648598843443031846344025179540118463548491871277648275772119383186586552584961270464081431730662636912745502132758168481508986124158490736191639254435965691856206538778638474600969546652029888690994872457455388617691455078469226902097836448503730802187261610596127910914753426953880611867807975574856310978941771494591640957817775192460285110384035849260460511592408932909872948984278293422889510003681091405972913503515695176904160851873902845396793591325743156881834189370779147925419868365290402367711521317003686736538234679735599161891953694864797689898337437108636286053786565112524640650249627292671469299618104408713717899879461200442043211196714957106016587455677526357588745725483092644560198850491517502690457013923444438375233904218429612952049809168360166239299391701176998618824162159091197383630651651030567400872538740860037231444224258898220793461159688246623369045353109130195969355478357646998401618215011553390100350088749286738110707549872661600930401070700537913526909895183117855967501978297400683766775746741557862367884760104444233504781827793398568682822178656684490244147020747849940522101452710902026029752548781344819084752501313177851658114920068956550627916089362082637476427910620581151810646904140885765429185874727432843567390790176606927242042486261412750178162988600309267970864359142826629296039046224353803988698205871943674818788996486244156474980010995517240744810723361682606672704177502549600204092368939918737181217669978824229939632159569368204673997187650193955309515316999025649899194346071188955030985783139083624504340450840535425967138947691502549125320489622709686163845925788798165519860786941690502866101275285159554820518768353603000477947673756275171771901810238872526763123434547978686552908027951890105395471112457618404517824458241203884502181150500015492255942070180111885937923026933359092356488323264657318454372689033212977014017959017994117481435009592257880095553792225563154984071238353994843953187523365164342105366342140012720775099963093529171241119757112255303420171734188419074335954772953431770861430315038865093283145725917036061231383910184193265532326071989125909628626465351489957331820230782527567854916313614816015897742740146000512175868475824609660239265071085869475975081463833784353367407201220068366057254173745566769630476223059489464633304873901986539342280371645478039186997700566883228086531158937374732485378505662750965302470313351636195006051038259038389738979765616767478427082417369451259632759435593257868019091271798652200079753544587018712368194384425626975334405174905509755844719004320628925367053827108538432423004298926396612727607297183752225161046039874806689659064499492062712901338839293612533437746694756715975678453847337918762367957908925797733470304518300465548500182914916414589843268276211997527510971478567544322721694084879647237454785720887043013639136690748078217296041051531489431260473998571266294597979194882289130380173479248848130081969100073354325340056065321689651644986736355002347673991856982894413165616164558091672792921041189941153535273615524250706090619822645989567827634539289695679589423175283012957300265548226579005177937079405028054836509609404722950382201302081024059131050764504908020476022421831971899630958852777987781737209474071215578572003384689092330236155480600658110712322233822957184916582841641640895996612322773092544900788725176686192725829199054346391984803324625169002712394827338062129467113352623835851012671258810023945635293881788803247028894036042714364614130372787762366307083277493031386872124611845845903338279152146258362865793605098159455893440495582982699735367324350629893337526539202298131596799291988968866162383528980711724836573601244002056633496867163659838706432247255215150516812361266289687418668667993456071318057951974180151574786621118929076143608415675289043965797627173720006998496485596655466592657347469884961056729479873943155128436763995788232065106347150400463551872261042244134507575665804155990194453244723791649730505040619418718384680761040445062810298315974531185715482881209937557160267010182270496018739853384326041445855422515850400589533875458678526617184775625810344360130135974318756446250853973524761009625163671719266580324193639790207626160250091456993414078597482327427782347730671927816677156938521192883826109461880495053991748333818279015293588801896402711797501864926338822165552615770795421089960336203538333754043306125825188476849414430273432500801524938027199703983251202929226730492441557765777795012325502648069621074226154564265047782068797414464705941106536878156128245909491002385621842723400256687181541600346758495946135117195285410675139690271654587257527345451528750493197633065954722588439419747906894026184695673901263280072233847178522089032962654715994255045377993324415011772083998064514005552355487817995949381821009198405542785186586743559122168937398070910967634817659259609704054449011454128491482922847807558707680688232584978634367396894978859811034576064916051279168569443727246625861281578647853067095465695711959986430811400784484204002084943097900183681638518270579374625597720275412382562785763700757701925107201725183869332358557119820679382998845243232503227445178191881993577765308654362997009308368568761846501048554836405276017429571666920171573888850531206994483862795382043282119774763672697050498097866766136528286087397677538359368232556835899892505845747224835382600960346343952632801129178779947292250043501055998004135874543521437136661194661362053324389740240301563453644164917584596325084450399790512955054884007541936745652886959388308632579210540647595698595814238851711960388041148982189681444205606369204290849300759369248190171787050060272049530323579203772286717254761396441923392059044882192771886030807267649740140418723492179818118993596892285240508266375953071015910803338500518506940974661257392926626716754719507845903688823933570145436595761863661107543246184238927816424097960119828903290656132674713553338077103054415101180707658658918936159497109914344035200224783552537945446353128548143756864899548484447156008937486198184764576916922690529449265887787167836088327222608444632533516776217501879212547823890472719147811662181981257395070353156407288526737084422405510995023799788873779256310829908137710892662814374271021764548676124274414146402039173531529935570168124576954523272000999171989336656919167618923099112639956904240432214752739991467507678793645338865387879003420307111613651666260493590782329134858650701133320371538586718738592608973689631752501821788839455339802493773984177325091750160829732794991116017414876182378470349165965303427795318532736413255087288318989177986674901968516093637024373558795517677154486211765910526802302089559025923888003111025167880338270537475455678412220727421369143128166545778486975650083923079620233055709927883023347739746545722294993933224966573786216982033614392284348785299355919181334590818081418167397944105058456298974705710346778221203311095574817850533657090635989041154806182264489851996860563057598234119484162625223511099371936322626850093734499599365731191120159461563031497771260032787476540623588146113758250151356589893332314242217617004376301419038354281316439333740368021982685052602063152699661880975685451719607009991863889169261327956084976612556484799933620543486560732957302954113241209469233059167957013912861116333030813593869926382688676783711468635437130239002627837883426033124840902967543130021625970435729060693306270659361793916282682603684301192603041575436683054075664798571187833058758510685528221668344903661981125270648952239200034401737549660800011552670201748826413331386368126366919388680150795150045742164399622327755941593147521852105632814441286710914912264971433892193277242507252170543228454902026929041434141531476836140843711699965200993277452892362960147195056499654674086238105474547626131898665698698912660035038325665991399268811658610014683119225450464583829900669112851667932488442026584670121611647060739434052071518615626252833267228934582960145305694762843055327677114600826253821065743758522907834534614659620098427876476950828064483370701247045199482354234889562422416960096451632666820289663144122643421960463578707306848524427051957038092416990829929900090238460011521098951980961217711992486843757004377303790981702993151281358048913741511541016997677453568093694677555054302235192297308986877469434050611752838163310358616297646793805176915425371792751447964862141896241485932217515173139070956649851103075796602598347886320068677125002521292252935477105506018165175906822277177350342991140892845987727856000932840881700611851545061374204927629977615642682581480891749937115118449634774170100893632020726875964156454789625826234699695277946422240729325695616196675701017224434442437904601815107209223555905508192264634712363837320924110753261622297813933682235917576818758480173036006042161580543982405581908452676926676866619624229646846213359496830562117758481466616621055110111764409960317493129643401377406454121349928441733942515064208977321696857415962747065679453147729766575082182940328061573990792093109588301365725510223236667796416809735539299241045855771270571076443402729528483902009103349317572088288788527527769654046066066370677443219427157047970082382418673994953569352339577178793975920778722699594685551842718936682893454308617097433526339666045896704194979339515762578200764004898007104516241471394721168739580036070143620739895545215423260576931308615118034393975912382945349185802074336288797834786602562356260782968095439506934073991554497772532540224250291821549230208569317786154575902842623477358945706079421530986627960497830541993617071920412267313888694038795309861119113428773393748352584245226790360318085241869561331115879255311292453269433134730109235083824106180125447058064576439678855025580961574664675758609441692604009784207868882917298849958007584864694229447786733030058025191870173016086392656223241742997956893830893163831315115036980163025385729683413126004914171619954099088223788636841817224307630775310421830582567250968917937791111673479838769389386232866927803235256334104962395337524028419676694125854269950687279806322330206505633666462814818113431977694780944940603144791734531169827970057912049433110938137570352012566934417541973932015053832808311281874230024410942982172154559708646449021233307149850154122594342935862526658398532359437819410119395556643634742224498391709844897721169434857844218679303740030694679217809840252574758671437597653166239694951798733885325710234942184778150255181166993706009380964192821501154661601824988197101159933464257537565479822011422507737479595125715601329717888317822906134522833264815265462421021791361944679938052795051508296565945295658841339483489795028540772631201544135019591534822227823399716666069839857102038562186929570825310390034857342401470158753283629735824601459001852995518872313305843697334431983111838529503446262452187830097446392025031757605866824060030104623425525862542541162915408722067620235251910456883724932542442460542898852340946431269309133551229448817070454581872170731242990233261959811681309559064867783682043050206201192263365442973199663193494645858594355225342035617524416411589627166105329171729544328828558906704433334806687766393772055472925189360064191669707818370691533449580868570884321098132307659818370142724563829196755699131583554890585174794893245474505597610013174593733289242665649833656583115601907904323279990433817797340546582465537859733270920222703133397902373741351344831683142485910514358971658317790642955004831658877019977163748480082925342319156174875081623819733347598066256663606277772526311841078787695150495123552138138656576565570273375094264508847302341518096035831424436293974012673473460835416681785930885773637461912155819171476849297944407385527316676401279443250164731810173561738671836156347368550726264924505775906454056675571171160956588132279349493338218981163001767276698552350652026461342691282442682801876885287785326349271357497902055984278026715360481480410535871050109730767304456885417003094906475514093360922810633550492959393539647278512480240272901410386628221466501219981604415807101186858453390763030039786306513948565301247153980016339367793138109581608522242586984219595287017206667838647544712435359747520487301161627539399890119928100093328818104550556285693594287789960685546969409876293488521124495429283839915859892698864305905166337085201729615813912857336742482026713547746607866703847511025285598019228760692938610406910626786043254693933927694997794628155812980220589948766939123493449451306612273962201621682122102174767881328404011987782471720658434562334750884938151445692209399147363358796131725074045565138598686059447038853716232501412791808910572164014191011595748987708037378623151187681607243280117960831613209473892276294002855520924976794451376880522808376052177303292003730307976833154455358859142018699638894139323940426373465428127870343699142641639704264927700869242824325447504082218935658023184880927209859464434301956534297489118296914690966342504019202843411927213642417509087668937553755899845064928024330504664694781470412289895706555275290837797880824855605471730774641777995406299242106415972903468447520267988356318964724121757453388883502199789297189462479757997894189287612422326226936096792814984498667793636487789859506094544854609386048159147043276661265931333233875852710931070181917611614491800763898479371991650637171504718139505463133844369509962222051936671632872459015635176514701089044519900805146024033945865216512666359192754610943301689319736096354563461897874953705828828685604326143283620222679298545325730434362140112735610851773623806287414765816622126150920022890238796077576915553711932765122297455931126995737957570970791363042159199687281398065489386329449519308164730538447441203205452943285678482554424723954715658392664921229204984923685908615488570547627322118466629800834376791697168253967157926831946334937492249034958525527706572011635316210106175512305031245124494976751338351829057348688097188662945480995635371324937367461817302230195071286367801840615646448401675065373148542922723519327325369629435741388742079314232177354479116350840991664511262784701845934385685710194002716968160368173150141714328183541291986796159144657898149580006756356783849380982408938887148677246967263054574257600921465091316515903419257682475095203922257137111555856226636581821585262378362128914072832388037579191677932134084488026601906220234920124868542774912480495211351839123339820206812415557957770491218500190844789000502542742061705744489746816222236393777573768210892211787026793254549417938054030158951590784940769567136299498702167041166485337610637497719784000645697752656758579417537382686953450242673010472951162349277647187452087634880192900112832371993814549846643329556659661190745966483502673641792201867300433940463140837928799474928864697413128705973993022845588429708213087178113883877360576772300444836077469157951882591486041093292044435914361706360549364209526671015142725690684501622953974363131504157969645433521090666036636187258263650195530780236801828721343958409851535638077378212113550085301923911075507561324825210689406867184421287501916290176170695130126698139916455073224303424314412706712122727253322488297366961247860301284480872160058231072004062824339414050688569788074605753431504871588777208462524393717344241850722327733590698927930472592038825568295011550521944143591466127370949187195485817132943634927335862764715666610381735712758181494974797935540967162137783372747323540247328980949515994504243355918646311105868837504583596777176984361321836567135783163951669575343547908834639471654992404026082182833542561586696099315018913277037088479065741421016350548949156251194790866630497223811919144604372233887162204793522757489657774206718751236248197688876980706386421983097111842998123293282229910045604418674168474907063838499139348035393461379254736176338539029538437987757731855098353766830272697763100226767375489225155184162778222296349105574421277065780852806775071136754569879867979334269559293289032117617332130824606136849709570445397460261003362797424418369148683969418862529558666802367659782662110926438074803564621780654443407166810540012168563739399655641455260071679517323322411468830364953569559865240934339796087266922391797833856927491576799933007290150421320621903366908330678053411175588742773243610371961490312267946861971112015153680371037725868910842395339860624575565999702670075007905946857146695222649995339922317090415364945692906816385623910478040274239253165770051614764065896575950482924354607016579534357729912414634395435927288684816565370448224731390569853958093591933718034645322942447567065203048142215206345027940989080361698496549203597450000383570659165141958731728918919647473419064001481673342773215648129825266617284428998965547587028356802469827919025310141053792733494719695943719115384595334841421766534998462105077892502117555140029298790416881547013805344675280726842877055317453749485229615962246512584558890736316719454387148198716675470486094281229208925886909846063919190851730537757589029260942598380705500909621308806732627190425779514396604118821459772882437824481540691882185395294469749276626835805648908257151312613623188283017217587581431119970782760316089774722666571830364791927396764783680935091973575918109951768674298909117871230749410734266159419551413445044865735711368189548655937197560405068034170004964433789582021814007611477358604961598174478516507989389917213047560126786185476302469912780157975625099953350915811087096458909567395443119886088001695296975783681349088395894160791591861716837244559030751619079821188495021808431243951750679009963504743787162488654663855170504447753315269563945582940266912513129485660166540463565994091020033569441747750462975589379394705444156007996804703278512183872172009626458111337780765813598764047272786446892118110993000229158998580762562201832621232942291023523098544704679196566971826274088470811790315537221273776695692798888227228160482085856232466159409035148438159122106191700694285718012585889611328784644401900655611086384816205103113593899169698950338018600872579267534503483978092316006567992723193498768604164396605995472762886245679707188332044807399367682350172985594912786114827062440731287304529420663434308296981026576972158178393885423043039992555477249835310071634726871802236079170956093860317284802924102530839901975253943133032233032398878370110067051706987750401114147946108133319323883076617500768336824788392502639483764839125306113601448062145941968061880825916180734309269839367242247721562587128886291642785453627398486790945466116694778640244706907223705103974114083904715494503781315959294107957561607022817169305679466268504127226358780641543349839249721141247549458632110397513536113724403334857530687761283481967239229189486604407883522704980908938550356091022098675493613427651999335401949714148213021344788424242718085554760855752185462560956227945915920891990042909087002243276601027702046829933146815981924163699335045107457037079664719613690753547390363030834501225408452011691722457468559399773003079260844113152197470734847076991595729370861190554645731942819878447600026649669649493262167445134995993427731231158481613210359857222534664569329684588723502178466214773348795827009389524417188464510841939262963056396017014169159355600706890663888326142569141506362681663870196267461591290950007999250126151810528327592813428959172639597270107335282533146017528805901525366068030617697021009607175881744523808922698142788185050097055688736977622946285440934678280088412823299351437348043611283468232798077521537821297520700090866386564974030029374328681016348537797249539815636119955551132980336629727863618027009876551889312995812369206024625213921459911490426211601254331510025508330930680845133818194265240773631699482509490624881288209688049525872824599298776899926484841305743417874559691603131041231760931306519386264471095954008031111307223781683780691560881581572766804153643716401298977043920424475873329674458152110814884229924298416224859416734084394060954364776049763210229759315894898526063055452461009066871084378100836501490314926614051436029328495597537500892872980885077402226505275712623653502422763004307276386823875382631640143926312755240179792569765746775157531838859792058579141029314495941688536371106897487450029848938293264191266898978180419059204831778514715589979379276939991803843862989705106477781725418807655707743394189268002710969488640281803575228347277035639389648312260698209527842660266891686312683151196893872957299958661370899951724815264890738647296307846588863281375829682277261955503698312409948256406788597980250069106260025494318142932514824622466540696426905968482513058248744475372045642868350382584187639952379438014576928614045008369356295388721914082836753934042512882576017425645315693961753049106186285901997538670481853725297360581624672652482886329696549642154831035482884476825897412495469581545188808985839863149227062323581429417256838847155721664246876108568115997217100345919291542550011044327222838412452873592110922181851164428607484701366742496912904814737720759824308461024421043003967026901674364370779876149819781846890686963567753306123924715244972318138129881655787204787982234644484472421167834811621632649462497604944102581644514913110246044344490289311007588435134219816316094772697460427021141180458940639144577714101922177534961597469432320643236644658070626378203472025562675720273723222966730489715790592547556690404392506610050451548173916307717818286408443171292888847436468227067017594877669237889861672717705821568940787519810253379069119836714673258528223727860403422936333658158290237219546267411570573266331584064754000873783191021948375125456343585101049476957177752435394540230260713707290589475369144393237384328838967582585778094688038145045314641315370657497408369585075244791761380639342154471906449685088278857733733150398081219989154668376865004425382809432161523971791918615996127869348188696652585905897569059692398308978493799401841520451709096088117692230741625032354121759530754237012188287968017484416649160118366787872819202426804847815606105684437373438024217654079909905688898906054956692155678483053674433078004426304792858358892054166703740149442743386159856482698034916909190734910008731904360568764258809947797554525293632333933087767020482059071083382607318478651316537841625417123305425932680471769389375935942578504143450348723964910547877978777774699094396289212355621741797512394874780563066580131282393005881190477359409314267337477947759578790568090697873103108117434796910137349707115839345682766233673089862782949142596631946676652401333148583670687792048883350545451579679560215092596473198205713708281260266056328516861940995375067004361424449759309673705883868387581937164345418744817917267664687649544291246196518068558614846313055512186099275412146278045962473810067681659049620580032702943731603020877816007524212847900544849978882012117561221962968598158959202098886564850605982311757845241627155108496001082655986575921767172997701262619796653763331884401463236681457609064181518704999768981481528728099608250130295047147086432616206464131777143167276642015652405468382242760570542015723884718963729493431378269461788299484376760778248448386711407187043895949911368556741173862241146517688159882420355593787537069638139130976121142615868253888392123044324408615805839998629619835639958414703910073502175193432785045733641903837728765820136533756574282628382989146323149393605680949498353551227459813303084951011852199945133155482848017026052209539730971359798544899117834103218971777783465265829421864296006973434201798781078355194692572377839605636798119829750500254300783656509705252464732052515687319220861402221893325821645274833108935254414167522310504912818799990358133718290565592389619779670246407092958418173218694677544612764960276453746932743870006578575599920515833955564176698913858706837531601238532192696356510794505043778246157637624810243204976774820018380784084127866781842892048480002325572100359958471893383471953722086663301960900363163082435529144557083231369307350062449592047609081314277042512645165685986705431834529545103789487739066982076464357894428566219096375744258578405597455325310465021678409988975127782120474014947992119639672632542305246616183803819072298646509356679569024075409387916318698888655396607625964683996907215786497248506416722540407787048944776629160234337079088667669952781838749121220650638554530669158105853597512471082029500600449442360398806593235793682578495456397493236339374078491279801282323350720864397647710176527781313726492440352420754274670060815681759456995039350159288260762346879375448390363002132265741249273747705938864212784637410811429736379057028404309515397503794678324589282638369886146768350172640353431958983601257889620426603884060161180500040013560339762325238671625461245604220422982656519011095371898131447391798305937661035336346660784639213044556013139173574493310684227280345983028384119756634706142210700836020134618052891816358492709095110501893918041939915081828502415886321473856273964082439646127510494018078980344512868646602273723376703965073956538283958339568949360411558447603995699603006082967511239794462338198993979879702491216278758929741176845623511669887957613361691121825282673478252537056119937584261781377815385665046370013993034482625578162827878112051719529893536987303870546974260430068103344156424723551080327926092084415535900873368810891847871190845222274755494768686489763189257718629296223555325733549806187555783704509421683103900869436387167706289914011594068528647979192220520436663669393682866140183416743246160666936651221607177379330452722912262822890853051968424692253539635760392273703772476249103862865685753940181823728395478807630314687581381913681199708006691867163651934320891961578514101362875337296169985054057867411877924065926043585162981540913041471897492889872874702513965340936747812504971930619447472721186115605169462593145950624018403130269305117069675393679135479582240322566843099946590476944315892319984221134469346916657729696575739570983481251263240163520492972076521254630734516915319099781790216379055418477869347316296910672729620397793428689021486353407031263412346521149463296477692787735935597505685227735688617755761576491414537612019703121662011319506552327168963156027993253942839622792302236308438915296699182351841666403194039648991053321676796476401741375005361645904746705317610013462727677250872650721405339121207567938840761265564564786018589559820484022929480977263231487282637235543071673518958684752948968979837391818535493319189491136189327207318199432040039657670488246241343104009789615268864264131410772588890630040207831363689607963244976064847866856582978855903977975756373473944825717798655990002651977324943337671758466340953815707279256930620609904816030139429637392931597305676297129326088356578645741169662908390888014945343231832808955165837021803024075552826137563398362808698085019662523264288655696719150704501665493942290646669529134007908130607763356554501447495674132625186308622136620336237704592142627889331155618893684651267810849289688310947042220761896567204635778684646024327748553155617585937962814040240238020478115056250210429191713702465402387962137915244515104911071527086726079916599288751377885857500105219016811778210580997778418090289276141445330889050831529876677712386601177154313495850735172451189570257036221239989877944985987374052253998204754826778260613050380633271631767704307394706350193437991600276138107579813734533941212446417529313864235909640896273047530502678027951005698673987794022012383365088076194126907553844685856371692430507646293000704881511970942353337126326389756102313823517106135243624754701784402120378355737065779835401409448251302299599816036755568236863264539142538017992386866223541318671586985722373873988740850246724526064561935201903607998422361955736733641866932348958521382102218044536825632477262130918241782505307040100705829271780048344105618653735076320615857261467598262046441782129348738235742635767189640718940954489289651336998197354380082618540820841274003328401380136001333569433610793015519057790153105749875879093234207328731846354930791000688114382351954767185327019437855944614462517132984770802896216876948884376927772067057650467975999644904526789346105041278362854380637612780182186710017530034677999232157058940676373386205464310784394994521281685338271162555779555095231705744591824954461138002449541030167423209091989427186702293059562932672314338057804644495702029587983639718756528203284598039334046957188965833059456692506223271861936244025479491430662515581706877755940724786078624758406592554019131953696965900615194568486867918734089299704884600899492878249801557056116616789249664393792843464909367447056300003359403128490507890001685175558483353824199509398165916712928933704042575939977752234771874988458319082908982542756269143776105016666490761164113381950460373433598261389518901070724428818304182325739745131429441030058223888538606440837760360653060801797914964843884042178643819923893188075504764470797532038065230628901792963682296242481943338927658356520344209985169948488520472858336703632081357563181691209103579485180886923536212286343575316512237704454873101489170522487957558454613180729347291661198604154454920444270397736913969912231034482000200544168508173661612662452548832164751199874538901641509029213461474971410762261243231439768020594741841622796343888684896971022825639571916515548953927733804475566909034282646138424225508372044042778201738998975047069982474775396180383234108708304335900012572236511880002062355733029013462555329878287296703878791714726252069614522962870889431770356255290843965217096201069570644234399774811656499895519862701965273926967204342473141237298201305676007883444053085714860088836416413663655981627860445029370216050571136224375351911276553128956405854629275410546134118115520628059286499696865015013115089722099030811195239327414386232321025475928573540102353850692513134543373608862578617895724951921878957047026915581710871687443651540997875835084394788688512054444345893214434865343278947934953738288805895434453803177375842325444819401839886628707970435347279665494917667247401067357655468869667914720739311151358654169092291149919310028576754753777197595732529336944637631600249761656077368562260506410037793121676666658158019359060605649469176561430843573134661188467071417870855537721420351984788911935494979026920694052338852620630288887295956508194411942885747307925111432466674731145625326582123585349042875609786672177543718708683714337824659330978871382362491269345223732264885854946633715997789683240397905866344755731010776099474362452952057872887344301802247283810669234524242684459293043226624260249230522759829892544795758899271936143446302068437100007510652558030006528426812389868665803987000267391978222772863666050297712839150296574625608427320619808474818902776736541893900859768638058587534882736507846649816250337788957314882162797921884855066818945938534991917255346836825322994717347694554535379433449873140307672860283461274923883023371449451801289340592967366732024282457583170489396537294120115260222726631348148589937579096186579979154374244082393270411517388505457590947724559897870443191793901787819829797927080344414963184379534664233151794479037942414197011782382015042725776469150471054633653909644903016819768769085664779596369271578069310845372514251782462075167185479435188919548977055842533714816635471110987572247415490814388851763641232822277545600399291462524656466744747176568228089244063836377906459025824696842327560117148611950811656676285521026405135314794283605844908448072391613515459936491933354752094289392318727638334825777703092873630295618161661571689016900493414386217780844949257479514050434593033749661209570463275341621003872924442836523146777878042551377539880606423002113988434555446911865789332171447701850879162032745443466554590516730102715261598125530581712229235392053445480455637538336283751400366208614959771505876910816024130155424259094729632297091019617745201393944972506322446006404733272379050679860701409080678166218506921915292733423803827630949477616201383944443586799258317967090952501019813723622200590991284425203503164126776293637687504729292063171123882512432506877692122899607675834645900331933701539489531154960517328757622442315493968911703292554293729120697425323259799902969773059708150710825391017026642910733160461492683594798499500152385239857160004651145162177615664836358081381084845859445991524216841350424937191547189781253521000552938824670766158026546537623379601836614653347678716138362009487602182346423834212803963352252130440457969994249420891328418714794777622479239739435377484850750752190928247304227856716295729031223881028198014006575277289014031050259059174146989473713975994277182588786482273106736718015773604476562947823913108021168533447515227686130396529213358771639892409085469625089933316530902491324770488069971599779754511797785073653197252264359615701309271237254225791493718731453004115121007025645881910193507065163459188173785873051820151342451782609206900291746530379103950065740687283047702671682056437402186445575145704819337022647865141486301122607974300321479566289275858151214455802345047646660085388473838172394553921024998590283265308011065278743732428292017211357831654803578984570520217763338925151378659610939862261609856137661289711384343704551512003242152516213941431055530051598388235992523703555822206148320632939812623862779252105245903919688992939675484899139326966884001845412008947408647888976017146865151891324296793435008266572947444123325631453508978115464450252350864879800254908306118358499676638946064701093839561214997341799185992464268087369056098840839201888050257635738399207859188243998565607818646488292407735609999442173991901296503347094361419947681848687671223084753235126017172735319059156384897147945810074372039627947152850501410176022730096469414864712867798352720099100481680179537045205606742519544528129942629950402498601657209384193214837046704102649364638169684669783041172573920795655688985714711980344310544653785075011308168291026050794604393727652795692735281925160902686394749858172752409282282906068997827276179826711347658657342446991643493844086934648046943284533645966372825854530495987458725420879006599197922938162531587858940964746582897982577632199956966163149943031308928604642659331838021168227089421460773032957763245445125916422759329374491675155639140657953323025840643032440351831325482017748453129362854684288358031206780039676457298954682286640456382272977734397123537602013489217166953752599410494699612505096095040199258857104314875651703349077670935084558639285377998145168723681756433881183669822836339230515907725299585911131552768059926768747623759283907655153079971422233249377150935697968854235504040506983402121492664383443298617762662893186559633503037034722793573975946401872765109216347075855949372800281612410272919969165414676397877061518808482144426874470500170460581409653142514084841214992394723391413821458732276365610373073455611439913208357949446237400549620290035280960716257686666297244868559242090072223812184969247462973485996252005725843862961186930185271454031542345035914860394809071595770440230998885362036505288725217729243872179830134603216263658839925590551245570706051968514603448317844104405578121180476808242747682612523991598712822796055128204832111040391741842883937589254403024203259007924223283513362274371235857609321071096188967026254180402355159714057134605442960096685744253721905671776325566788617821444004811193246942963625226674776217173816385404848555982862673862774451555153007761417005073918661546129315736243697185093570392657481440861668095100507356880536471644388959508844542513010776740640719992282417675633114477149363530018448906912209991247805914109007787080965133792999028562295329821677234332758486305151022148895647433961899126529110759371763057164567228330754164556739754733026634206805842281263196842953531526700183095564282265391015910436907554199132467300677493086897372585599403539436780967124290953538897153181601835316862952733251748449573574404192415979766056592081175338899373015169784179368872132241342757621826655903071325460365659512670091172682775744554651933777119661983993011590233182634604070248688981172723764185709748757483684507701898379407024848575698866750388793404498709240743339083834363212583441537098408279956302131610831341167007201516905276038024817881178852679386283586557317887095773913957796894093912321774750476642132843475047606102472341188166337908878814767187892145346732799825710354870586841734038807108805352568708880523568935135696773374751143150207481696791938167803635307203464251424550673756149952499292005530661263795350593883008678572229770612869496367894770267367625911761597334766762105982912027273420945601663131218535591226752719278916203663905063227669676906447189029332190517052090307582937251167134151666573553060098438497518684787442195709868578034936782508454217655984323656005794367849792569435043669621867305196841020959010275038876250553561890507671961989697312050998389153047832175939595361930092500035773922063253696088581397738231463863298806005800575047601939055928206611646862257148128644081587152689646452336025257678874213834092183490612052609305975450941263478167911673553921329197381007445533604026576185827640236825523054784708292792091955505735170616378295988105294355195316698034024786507049458557216447801038541557209277188252069507422571677735348352275664322074633814785021004944663470590403514770877065289783255250700787021537093356498749213811194583560841659020806548032031888633437070330464125916243732491964314606370883924598602539826687842742892538495907669725948049239178145242552872973091335296358169328109559359542908977568996300759864956995072811311060015720133512326321229382260275267668183569473925612422143793527202667780330561981665309070506120058450327826860256421451583726433105692444394080020786898076723305695433163689884757235777625398761699364673085332812032145568511241431669728823981242504867592225556113677979411338449420305060094161722809547427123096938011859807292216865829992138745769688019825006215479627797228932367786006010375978070589832907289267710748600575873833424444441117494628222034663595788503725287533896368179015387094648217959584910094284374329049080247853372243861681449194787203457117003777662038030309873414083532803092868102859676448901185637066593451763421137872288922524530008915688588242433309844822176489795997454725530591945766238915681125602616485111361664350077671076638435296501515356291980120433359740600068948908171901210123254050125206146731101878577969488519744897342240491221716812507890886366754242447359109722375283320753367107003964671105977800003829056570061527488689798792512815854795244487201485886326677031862970078618514252737835362999765582647789805131541500398983491069521947876948264734691486014716715964339073518002657398235810490512992675067917181301070438120498294502485926678862225565520269127791693153283165920622181442377408124691328858308177877974719727190876184797479212106788366928999299932191688247034875182858787311665602229125218014344485182708688056210449402997843595230984582188386473120362116854747615740936164288305814230730317989960527992345965925755605530401162170923241328442967957781090445721839992254549127851322365315009724020095805193620211722132686813879757769971627727579559492030032530671053433485712814201602472225748031993213704996347805507547787962244783198876531093033943844424482119831659709596633618837557878684817722045905874771333278679642134036649985029231413308223700947564004260644655390804992322394452561107898226208456621553343251480076009571093939778671566699492993528881908097287932720729536115790331661442992092430543324932767011690147557218793065711654235624729080206366106634153617894299859464656181977032765244741040184430545612924204096287489902313493462133482188533830095527522685825507686200657121662148746832654786001423631857794324632051248528557132061965216770825011247933364419942382916532882051652223717113815360365842203867707922073467059225141469122462359329942182554557417161740086302247279697708242019639473762888456053485818589491071844144358873476614841573050213805682913563200053706832402519571718769599346936225456740010588524951893202512002163794045858879146203042387559848644536764603462940012978434722935330816716801058599285038796852705093335923324669889382715984023064612176413843824116548765429451469377936128808809476302275949885387147037291134663754957089178832052046901577306536113180529563089776033501873133467727382026059975564729070527008567557945145739852548791420262685252054718604921675036237915459717239025469556311397729392559800169567504470647954821705181077279185338480044005538988292909927837888896674389627141759089781688985943372736818158821885097655950831688855086458249019232500592357091834472081000496203559548033770782821011527948647977105743297705886532394764951594598102231435692196468588816739129258873614050735933841625716486917586446747702196578217463663825047333230852159825182276287011293068831396155933182689991108219170826817175273706161111758104298277039107384586103111635364668903567064004397423777112304820923382593346352503826914630010192783618675557432374674604423887823518265677300630112751730743346430146260855427922321262853332811213787139808834438480357823591877100493154968386544526920718634400654543608230440199984940729123583931202106547331145274964724465812300540918973235761820256477503078203902753560366445276344253782910629874726862806850940086476111253808051950906869473395837357684986345345998189534634148670736377356047867065909217361556111135894864729440064527462019805118093082000423375835558712953184337970102051379610704897814226439550249521690809929646465851051557687541814642787052842239543245790125619430840866283199314458325867129276913207370451537593985079216622349764672768646783861223555636372380071273074960580358923809124701030110566525531507570411454945940981269220444010845884189674759909169701698357457791152570314198501231625195786061114590210562715823282060261837239914181965762165378576479079304329538304565217219715877303061963808834978575540815355405548270535639751831341528620294492796442494203124834611167244226906926879660676505642596349868964446734390311742684684331577915034847816350876893495482611570893929155179313822926894888168568238495889362283965712815367233269200310925289135546947829740171165026063352111498243084707353541468118996776485137838173102438484101041862722096430688977072450673265342162780716064565995922266959652723731836192698220438935546549314178440933904127462443876954027137902063963868122648730689601274559520520494015172459756141407697155599908699081960037363540277733614601923378601230809904566241342944857009911537517672358156413512391944306997379185727101159674749833196086183740345495711257487606882890597240632360084345945443011363483304911199674014352252298859341952816379556981720552642966659992287025692564251687229194872190127873654690230896470755946591650376952560761546773868668564480587606393666760660566763164359505104498606521106798405799137155427517823571285253755514505717760994730557131666945023314952948128999131195807541264933596309565614854419867054811019451915965635404567345292793666822163710369746352058877221326620575292526233036374064572950937109829743294122527404091458284570324792915744509143112280558499234010005375821414445728627299474640665823230050162445296911909009675100683081618605976994095801594578837737044353766449248921188657666247197988666541689916031756142726053303488254879923159688987339859308740827400884647454435810408371210619490300940866536155301886169712638883305940442974262414329467419510817035644870101739305749316877457133649667782921485974457519385527563772507439510459033818047785520709278856186812246087649749971060551613626501498807383587601509889348139024282981926077575841742768786269591403908274350245847466261499656960995682925262477252229686780871887150681019971443008977765640566284638195976550658943330386556880285400205126932273023623315839652572468417571479208967543827796294294292872066239671304778812594604234846615875077277597642027701874483140947660017395975195561165460583979916328308314930647879234334188874641193544304734302561675856982897183957561357515003439449109199144875201334150148711011526869076537304698510394649343868565621417171684392556708969990233311541286463314328383529715253233395750318074726247688151237149827347598562493064975364151010805834537760023659360821718265333399723987662895814372999717191369459357232441514572069989040021510734458970362151260045647601607749736236426000899083479263818284719776302037038848092619915656821510869644641742070960528581855868424218768778167728688161897438326664799723566462063078090445799710195172845919797231256653627425122567993815703957169087901180920823621184950888354587481493731886183029074868964785764834180440735684614838972083583447164249414387063122058895273691953374589722549423380770550635911407255888826553615739445173119343064366109523317779722630502521534124710646783745665748657354012298413972343831916796675005781644509235317572354316734151286966523875102318676103333515259927314716942945997960433806830972177681121364074856857096054194459384082120922496614207354692487675594638560888721352285508002173183880893876901513403288866463350131870060261470037888721879082136155892214364984068038158231002959909921974364011944250956496451053086565829791935095873819548827035675905674146549604162585065522981148126691495952426918505753457763439265213804958608592141801074586605789731257167976267248264477129873088630753800052617685372752057674869785807036435160321006797216603152179884401917605184800028150066129939901392318121691261831288196617655032155216012057920961723801524613538047332544711585268362595323564871804414969998001405280133789750022242276824988736663888835286247058948611425779607479667778081321476478658826660840586420314526500028317186655921740181138518294533877622493061531989453813964678206233805522565863538675527645553466003764384743606375292386864268036709387900839154555306369567326485457651914957940305803098723048620393162097611751679254475859886461405668939804294730005122572214093041998986348879945378731924561289657022038944300807101186757639398837430090877433097119646182718642269393090835975923262848436660472522647385983873588965266676819778168244302008185818516246535202494251546585389527041777557988585043766487498009439410224028156574143736660385528192573418271703598707636386461028758188414636868768246768015816691623656924308944016122640861017039039267260415330027122360996783631623333474712317137731650943453718528271008902155292604148693070039644565415656432386688443216049053885362743372598173832051066630088707996098453468288556644545982842848715215272158614974310495554988516027999003972771771078153626947448420044300518923696011163570818614456474828297313259284321266813459670095688400590368381543629419053666853432274356174571668272978576371596529113118268229172523570366531134155402268144449795857868076950964297278354250323007251292556507537559327964897241672416761530323125327328711762862315790699020291851301764754861051297221429678275566245016000493086903747950424737096327406331989787219015798198425732139166541322758991372409834249519073173382679261799219785601500002284811503826265258653190205173484814613155836795049215664523854979410395528381197600579906056852897908816162550408695860481740951078952350348278791135725135786033686789710235329535299656798803904100583845403086812024906783624979595640027356824393504050870421037716578687668161832306917634004186025994073858437910689373988824180211020089595762862856294596088635923758009646930833462346935204049453564790339686026782609248380887330438595152575885571252520925257065708502956572714310740263642481125703175495778975744276593760220352926012143494574865852089631551441407933352172043896281192814778086252211723896273500041773212429644410747355605192323353474533458301284777828694190853465025258662851737167671924450009144904878716855906599048433190048446260167628646703277039140895408213170753627106925880481611109278735916158367455167658694316894870650450333081073341346263157280716888500992276058285228217027101872021060585417712946382467246298042980645399803104056092162380172069157108300642715959818110017501710457734508238684487191987992539938641529043319357815358015211904144544525422656998297233323448237902314618137577681625193821788784832687389052546555189648335129191667185622356682292067626207258757874217306582628761084720812972406323697952868441904611899699738534822011888273064376261594228987467580254981548989590686332413564887827743381793294026666076107739130051912178889305380248055942871722434341223539794122716264529138776046725855175731858755187129436820143176584203569428922460163550005474595818753879678760715704407333828751770855887911350979280637576354269568624996720948652380829598227446285172853674603340266216155646072721589730084136389341140218377884454661037908468629205765319192269397916900242834379641655702211530779230795073704635056308681084899876852830246774759418649014084913227463855030247967591023086438288112186993812576940915616913428232884797349660629433661167348154522201055584067459651185095638329396208727033920602154906245977234952736912256741375956181114821188156333889745530405230661187047112596848923172551180367186627950403102779530864979781746805012241360983885112465830796504738914566356285102888588179188090980273170292366027661593034626520766697410087485524183393838115829078542574432010377261593100021394057883566046798529714777271531776970037528637003939785753105267522493414558774918634379654679858913034708078985706269055995292971116918256479474775703578355375878603256931387660956901684385582919585657205066895713798346738678005395246279208302551799734366368399791359162435925563420243143993124885640321599176279306675157153280137680597603025082889039531842062157449971433206417173393307802078728438469531785307438690201783678055616110552601044057594717607092662597639849717407285390952559616100657145999588086283873776547386038461951626346399592526719754808001276174871935533422427394710768885716982197061919316655548671273816906367457619142192398643774544474064547449486185608735511149020428404380298162652764926990086667874031838557380910439313651823856299166621056851028709933613013774815389375751781001064825655747354346529809800899400709530176291425988406723927045656005612915780935901850472808311045654962997943272848721245585080078457301984626283743311367890953406194845108010854427261048845855857934360533455414841688340474042328066303414941035609898275092202769289089508731881111790424935294141609824542603874858884258105383754734778773336444778821567887240655282948208595857264958441986401955402238186578868934016364085659185182653769075243170548838533774688789630227112706398919261010078045095768174282969195888735692749042907586747503234838999988497714860507796222441313700991901522827999594306441355039589242441602279642138253660406590845876136194275904340871692876010384279736439592236606858187282995345220363078118997994976488742344331042626969217999856935876726590245749423532302110175026312463328040753908438269766790272476285186113041540236859453671908921635499480921753006825659656966387901010802042935071246047725286537593887985789269215054521310726083431956773894208286219651748558976693984678373293968657992684057522961734165240569261983235861885681476911135257698914007492818020615695233336437351818792757430262049957380824426249787995657354569241710336752765897705270998762773097751850217731622291508400013382933572805384263472619891401348770949408702688739864119302717781880376426939988759545186113095493795900667512504770176570073764978548398324476570784910590165983393484767965356624752273641054618985191762779284690293984549024674557767987864941643355478524469051914791158214162856554308987534603556275508579731012112578676331839918210921826114371611814635121487985115505067702898134218237688048995487579044843245973023575224316827461056571626546779659900493378777678862894458934595155015076215400103662258755616259594874221606920735703891301144099616812284721386789849903851128187876771534243371717261911234961711896622118123584018376107688342267435409775249362765154336054311493247828611691056602577822948424479555297424484709370660102807932015385226537803505206886124733411281243778972600300025991815077293981118869879122634982380052736742171653274955252523160067212142934078448235850629587922477680485544147290542336897135628286142550877176844753299171096993742661233296824111958335409455105775440892764829525821496393095823077324732880506262986058661469274841040216946414713638862797730618511839508474053706575564759355577745979703238624113329824050077811316410687230533738387573398486306383113784077004193628314684877409632967273739848162955319915733604929006755593152690796522152543682604680168969087412284381353350499303824632493481989741310554592150736572829344532305544103556028595061823325264538943218792960728766094122240406575228835717684413677574462354057630383270065631583513328141389492217090164864520591073086786922919748905860738863723844783716708434443260791175800411985181714871827658456165210537522731163310673671442320421528318579655590374797666852009122905420965427407458725010945579277979195316956086496626473460823409795071668121430577224139442728000502517502113843673652327743210581592769636460312356654782535811888887755259594891911737636639395073565017451003055004068816048862738159325952842570541957888864899622560562696454983602234235183863041084202438788045595828068450878767518664719246385825296405342462183330597209169192122205394971536202298489873700993770117057130423735850150915080721030762837677211251204297960885006858596226881228915257798167812627598157264335088292136041480620681275077686508295432514644791358517990963432326653796803127814663529911404803556824090056221148504347553788615026413792483316191180251112108065319716699550266757680745044506712226658522671595099648557474034377324031006306236793907128748411520203204075052428308770514725563576056580839823105326100359128827160123650352264763964851626790436158770163653701797544046681003764808912549409527961760611827543987043119119015732757910398550343920192798127873911121166577579093824721241889271764730515575361808239947527280270231060258568251760014257111426354611461320942218607904451161110652971012414456932733819221592864105395053910096008096474839377396478254338183922135132412447301671779329329448164047789547433724509308356166525504348883991959417471194381423848291400514312853213396581313060328173479610489972242371110652612102365417873573113984622002276197058606989631676364391137830693206239480860094533002714209368662885795156067030328912790657559345085998434039413032512286600078595377611100365899348634643891382168759924033784733508058259673227631195480481614085862817506458591982671534213971064085634043474089105121271055548576759567612347302183905671554213479104920012855781849187713507634185873538685179008575462937627362571136454683836570683448226591367307287195713420888596833308812070710292615532304089568004463464029296024076015299134770308771124724978280270967721889072827289567904767090455542970866471258378838016245573036529993968113503849210034115459492532797997954183804295042204480946132349224705965857700253727437616786740449025695126523262891990772143313750181014645059333210706907858062471551676144177259398363165455663369730904790585696590629926055951408936369759609684801737858943076843920847247754905839568079702773890783759567702689223083951257407118686701060195163418374383901319925451641844547925061951595434829097493517334902972491443733008022436004197581543856932459955893526688576463381240963258430562181172109110617336643339924460028595430717282973103065298854638004378978135986315799657300072159419615969332546590886232163708562075800901646376742535371455392486126397587454239394939467644781956352389243546855812518659206851189040474177574213256368855918881126104030393905575235590951552005062415868951508906803906079837382753528204360517766424710200042226532330079531292703177122928138188562478802534808110594368288305703021032167840631643201454358529145044119673488465447001077068367509642250186257213548415587257535312609832253811284697337525141816580112580610749484510807978236522208905395674274907674882508645827219128197555005059079157273426502923045944033636440666839071610330331680097831754352501092643478143478757499540873074074907451951489977633044520454606623037985413842124691715598216252389293231013725564939478818457803810766314296398060032609867323624388764408300932182260396502698212157216565870586325039198222197695729263545690146838139223944112126335073601299160457354803499235166092712251905166393544278401349325568512608926976972879518878551799315117874242721875426454135196407367851556648858497490042650943779173712343542221067551810605475485795814247655843511311814955786484810966165243674906041311898910162909167778193325483319089577396738152169513396319095301534970486665560060955979362779378739323223789682859755432302412949655587289632010665200703967287744231239223510604552238592472638052175311509568614181298428388209458317751093991766089478439693939078468484034108470557713699953185791189575290914334745262785853185555864241788699803880068341842686781923376128488210962460410312585993773122062174783478790333995245624475128046763525890016229957630861143398206843920967196287386564860294387939221356840163360365235958049080772914182507350537210429799109982682971614776941101125613466170339304309985444093654974624980795807384897308123028627331160561525816031145476747130707846047998514355008142671465839456336295376855474894147461624531688359143876290310402115615144857400324448445492979836191732157850388497166222819911859882403635617778561524766267800664284621023395339398636672297498105143557798939841537046331788695782211788945425814973852587720366668206672641485667285062400833968798818664053932386420487966735281987687481471774779756707852330312139694157325386541081121139528939489332698846260614286964944729810773401071191224838983627400216898787878817281971202324507517425252939553105846964563543332886374934087336099277339726219430873759386382694708991605232744545832946973814655629671896196117943767192010840816401095260682963045334503762291548880181580306688616826970887810409080525690912253729875297012582249938416457451832787433838031972666730512818290231798229025167202339078140264210977566277628207072117093310269290783910845140033533881599303502968090768339673243428737515220108210446533136495357605381131692908861069168442842599135071444751979494174315742503379321109980091559697706177103085060357268223021128271996391956630563529910946332223186651383541714795031805370130621609543685422416472819066510445725500865941570622282269997955171161884616907279182048795917091422538415994785846842974585629610905263369043105233524799171702980903763668623479241236604720346843383311672404302372939103840909228953632181780588646392562365405928344599163762041724430731543151529319279992043330343523339513908706659171025873167414843800674380998997348188440333733832133729958698627772874568191799201354676825214944571936054058037123054628932837370499157992287220866088404318475971557168643670501226089136590999796771594117417196151020521325329636144351637495999591604804875512051507539014812355831591430391746203389687430700201090272649349758511820305049937989855873268516586413113928045448362814825781238515838632228917285229082022233112401142012888036430803294854198030910845415111219262213718754696381555698611176052594941665249868716564901949524030855631253000489275681287953639151140694372322894080538305306651011700364404340273753273547769114056226364642026531696212830719632152242784805478896651378287698672188109788065982654140994565592659153604023903723210316434439470621165070622563989926451853167683054746961202894251280133727538420055784041262342434475568049356284699975538823194811493893996679673791950534842833917178614937802925109589497609391583273679502551641927626387166640973931898193981904413406859394584261171804848591552397070333938475370742585831203984795337072727254484790350813376118219199608777322071190009468801612465253662124603718807862673768889840016559151760930322042602725366586392922797819754781479781882732995153957207056399942353171343237850099388992049847473171937119951546130773047045742993307657547821191934822998394831987647730612748819741999708812893443020008932872974515437328213275925581941353409551969376717718838238368565572362255967343653666946983822408598202086999283239157372048933162318666296302516722519464235885272043936928230681809400913196097694189354030019972793993156807665841504406577156828143182962366113555957151625666755681437200898090238645963451620380134095883035173878886125938569904643958034484852271316976490558139937161983564646767277317232999575877961013105253839262103372756492008972171600535288642013919101197688642260224196613269328495562814622019022504552396804774949099424066591418982805710724567731653506572241069711831003054752338344562153530413924292156886000360162234746036080352131178478001420340021813515860014638526334571786526415181283726778239338232503706900912775489951555378575896991235124476809064117498353131527901151255186758921456821070995990713148335165991258370660113119087495496505670348389874612580748931916544491275718972928373625393320277646582317244886261866667471295061613000722785171969553657142146904487643888533813099878907648216601214987254095417537618366254853477415264914483058910596708637276055380410746304231530816266549560136665448059643726420659572527953535674905732391970294948453942289522969236902902262147337224874545344441241074630148324372647649371445899106219907410600885019136340027700549840289487914824785699596172915787092887955568946489959565554106107843625207640064023409614439512235119225303278309315984032628713903264485970452328106787125219724742315722015842369790155876004095129353179867012494314409188618270244799011076667970121640693330570791240543096669074363029125054292512001339821036071511908369729995716591905625152978564156649858493887444710298103518403916974247508767584267703976664058264514909296979463405502733946548655387690627788543696251976875673245602165806895495259533101598963274237203173977325139767187835284895796975244800217817713482140383617440575226428214744651378191865175627732410416323781421175719804277205062722411216999313362456524869230456625691707196500058109520756908698711600727367051986647638608011883210278938214128353007740914949964245247210727757306038701477338672304300820994929793340141511501369737116200701984131338065860933256334594985350061049980964139136528833548712344510983064207531822834548243281354093929452212613614715172916802764791050518455143432797333274767912894332471064977144309332709610579909419586005063471800558557281578449010624074138198209131473293303605789362069828566933494947515785386601729217280357961793711261642990801631183708830350228017738552666756018803106911408416972512045410659187863787833149400164434279473347405301827330000935174967300048378774355588038257474591067280944855607159740248081514423150007496710118813410171777666181842251928200765189146954179507537394338697210997185896631041623453507872139138854132637653189520589472819775285801719316867124040770370485119255399557706824656905994744593979517452164362656978982562036707652268869157871805265075483419314547387426015823446365693130377495962356451737627217142781128850588544036435353368474947475758908735921094582917514002755697052839529277658954462876397706134321760635997999660872062588002881044413179844988727977242852191338816239448435281296246462211811533946032160318631905249852247172278995319663298491539364925694604411713243110989770319640275060403345424212098642405025334313674314853848656223126111727301389735561552701144418204946662046932801835161715681472976624455525775287827787914506414681843141204293337208773511540302223912438853484098670576921202004428908970367509518023178696063896258732963225805187747626417065811518933077172619606975764364456499550165914269759745193254643779756809141568491853439918117623722295781541313420089127133004302647724146178935929985419344116421723968259526284778048759926433747542893797518238023315950438609048179352429840468011285944714439761721802755593884132292995195604901973381665268573245366126352522815619618171283697795531354764871028460112965052744078665489939748042863440510965777270269816083576843852787341070386754233736753370593855313757018933264761055318454476494053210051620024273626723127890248266215847152167653424441299694807702049030474221778468119495576319263568405469039048230275378572990416208143478570119727553933132998192768847348415034008633004351940632402645264082138544124103977390159301201945032904114559854893743211080602237379785181764260838737325168709323955089110473723636828554544473989858413973713395236871709705690573908842160824736497704680433004375383394420282948744472065681994924286991591797589866246589969206951124284503094580831520653492396555898796023107252936485225316086868968875233577795576893185562369354600703620339633753818410244000792438274021681841754777982884888547008901980424997966601959857937569310173599297508581429162439692278193404316620587025988199111436880306144631244377410567801656465346362573353128302590448561611943730712639177753379289175332536142556298667258481003732842079101255665060278636420483657571409955367783065074640518658729623357614594143113326430774895154027954053071729554284166550643600927338886500378071244356598753733873037452000662139701722297912233257828459645539475662870222481610248696566698890034434810098226150857850020435927676892125922405019029239081958938923761721374631836454621504242279863692944812189532370140478548551588740183159005907380271662943720482248575613917597881373162373720345724362703043025187043030112255933094662386599515570478851921406938181909147765222305522218591966005680989568784698701398911357624121832407908001244485502183819597957603668633867954669090504039075027329840506702043747987998741996593793660784537107352859835370421370097614534258140891139896403133647333648916479293358950001515003235616473827361732992738727161590592072367800647394905967400657140393799326638477898387427024048277888375277032946309554865656500757918115338701165045832369922121168890883704314537765786665432742545674584693184314440260417897217470492674950108555475741708607715153222365570330496100607551180036623117826473740781742504680362286721696108781961592149344573008306450251851132947780558769102356973523304640831695320747763483058917135192294514868805655045068982283760125171044119941157061663259097368215779362384034679540800190141162851068394930042678910791479635923025567254228336257986293240946281537841818158797321787913765912884616376879160468337749571186085833712161914081819017429540167245598511306868722494717655134869378072265488021553025528459869213140340082267672301825833635394358023940677907380033733982461451819167776413333479047856994258961276787675631162597900334554184720288976831841320416055420908412370402920325527157581740309056334001049654503613705055849958255168105461436837572784543952681297476321097821214729587453032516242703582028774207443995433238277482882131598029431207261396040057753892052615206564157046472002438053067450541881907395721257275304024228664641782874160205834170359889320443048779522330560390164932153431913888590121340165174571212458331778977332123244367157596773783346774160952102317507922530388672529421362703632328759908517309813880499496174838244196069129774431316379731538462805648383465486622307653884324065436623548940821372065922938501073604108647088454147325829994826721211000764479994674907802224544962982977841296325196024515788069668661431537033375423858850860807070732403974181808869153762453884887194274588335825174172940136715203018618009466776803372542634494886220104629121124343226449179523044426574784501689616622536318957282942854817233001624908641871112103060099462212663607430377212754742652038953990959069023549647360836798392166773428966346551094801896673304655786262577772030054963510784206678237301056575342586016527435400326249678629844236843871446290600064186411688455050072590070338877571521437758573924273089413209113016500945610867421666599767275924529397671971104853872169399036055174902092357469022830842598964534511375619574273706958993045694095460850016064635625316699363608706674279942909918687518704444484380015387564634475946529464834619084468478387036608470613126840534712453844375460884438487147909734533282145737325660946440625422169304592005047984040082358567969760923612412278200709303333173593236812397138319597758997895131602926504780426665400852155455300430075241905573108678318455901043812338050553036791589547066375973656741202072962838717304033368043359113968304984803883164358192756802682535043207876053256912874075623862132371243320195125743925412650617530317114831185961878905064477656672187547808239950797599683438678488450255879831356873502679343786378208947805006308416494507372341170743827601564847021455173588634745029783722438997660243042576156625035421969957486615470303309061486870579783306183722197038232728430143605608014007869384408698141940165893371603276467170431147932432360766197734776199657347048295192866355808438264767997575637939277461498113218883182086287620874511015868676402228523983060726803553473726314737491547514822258559917932655232209872588637556116650403539268598077829430424745554001473924671202252654368110429748547242558176857456812828871154386945318670941183367589324792882941921466256150973797809224525282232466887304090405936802368530908706961391866732295461202047069338832885427342130982714890761817867386256308241696131656225448102933638299346782659385140471154353833724183066319030466988255885063758145178209322317471680946827251158652689015861393241582694115379116243064647472493718114122915591339831708989656603794409701344169714852395246287869741888376206131322912875223896594361912531050615675702398518165295640879186189475792480773818615830759192952118744995556865992150530350516554649735294904983471825971186788248910374223131637306590553685703743752664656768324827779152312529385864548937779478797966623126383292027335314557307408018400597554298451175755809495500507803037604423757344819873248336998923999359253273728981252355850396783905922476837059405087880378380328170018708940693121825555332791788755148151447589648181614956779869067102800581080191902920984873578413470145988436364053706482710526490528372549127922039202933727106451395077090605477597068274328620949169439189827054160596157224057188503820934874307389498246337934737016640429755512120612311607723128484367250000384130705007899864134264780297248713734181871307548640069956383304848130291292487554208401937947330596546188006960036648304772537346061630058587453458712571429645095633073508907260778540423148323331582297034193302146639693618267450485394062739582154574413896671847335928136415470988701359278343991602875958145383905540854277414274619497674513734730682858336052162110314977906879565734262897176934706574643632122312355113064325279407337035409546528434645148233849999012258534785632848370823522669821238654347668786968114564332474576783659059008853167737793959466990219027705297569331600243253284572604378434540866734313063940622605185862267385993827341493612483972145405599151902808571181949931689566927187816282991125519610125474877985552413286265561845752151059974633574062879276820584044813196163908061156268297667569510065861937670622111646215299332725149228190886914033996176056962131543439701205504913623216108778754633500638304565752575070059594025540463542036056088996635295552304721162984646541311836609617006445365315754269459480301044604885040585534931456267479497481140846585724499135017353862823897788974800533211712122877658202699199090344608757602948155481431063870412474726411838293503470303346472587094480717865652951234405097049286980119339568951731373244637887018529893074441681889034755716755713684386291839199698051103913458702814326854281940539861526061290612245899534332006584921680407508520849181589450144114757651149095011428935061572031533941536631215590387561901007055189662871752165374325115411585029097082721918085492277192820541948770536008757202613859038781101391329621960859527271198809181761459060643266910306519353941555235229415298176150507774756700840698030457220279742062231491403180762020270282581822167380742304635996417385190511921225782729050631142248419625763720325420136886976856564148335101774891405185161994547079612872757694663759702833203331720264599741434695298647312771696213993206368803993473691596100092254490707886480021683783074060301107734288778141125973588097073564632915328839443436016024338008038460103305096642836151641026218815067411138154105479174643719142673361351112365685046419591793605051735770432011654462950802769422463956607765178053213146714364926456233641079580462667002026132215539100010533709082415546238209183152187987429046512739056478059451289607214345517591800605257726599432212787417620544154731938071176339126868694544141164091202893507592741432838232901771662235147961485116609569020725318405252407708897357166588897483174601842558449402152075479242499124683728588067060388406543991006435562687355894820546998702267326759627702862837581167562250494536382408799914678529280621840694058688231342366636357812704642107383503578681166713275609057049411974402120298774554604293880377997162886125908822932495478369397015723533250140931008706788420840099210800922425989643613973364390611040849518855674814114008665534970848721936508590923742029586436274260533732573748531106002568218517325667492833760505251448844315559417250784432481590910707765647801932302091783161884825474729690747685786479812473487359281831868444016205126189477929356020150745476602369404466581044171441907920613258532701912590067307507774815478357033564109541825769084378217021891876126115505459465108631242706906526473779138312115533036711284407903758394338481082552939762663569339550361220539878441826866425993186337271597377459900256686706482291139636420986892549254142225164694622068011883628017976910896268217255888406856167690690161242256636762169963946931987507413420590542534237486664266204241354942327651922478497844951272938969190862379033462228554031323592481313111404511753830925333495195879076792573377780472536847257520964956015695023366921727677342422591374201776844105851672255563885919052174325400044136574801108547011375598697615347586878379853706781655266092444683148865633795135600975428966915619301436109330503214135014929333297912700634926337978583594455751663080836704901147757895493645551656403038952677546030769741573768610555932881680706995518407334554259625273334275607052022400813867542745432156384856390948018620707084731301227891501456820949265674235585009021197101701466013178677166329723881809093351415641625614348491442013328800357553449842485423737984404321655524107727685471048161947478360492607234009322468254894191152120669175686466636123570489676601688752162404469541062055307379334982113784670349486972705639291666858101796093756686246818636342631322218972453291256538605007437800202520455828706366964898712373758760227487302959324927901813879916272194260377779276486713362409991631465349099867477790841446718858075941011984141929634633315751912371233944216946092723307631239381433776722747885552421579641844392731949346767620498096426098891525730902277613860577702113470912200875170373313567271872431808942094447930693581576140217070099171275590459803819636577036779278510555454490983549856876723118584284166772249048904551094156002581204551486295072173690269973874212473610086215385730473413972779620632791829310324751933787535184891803052315470266368781632345364376517611617043257740089413190477399174817575192239157742135394012614586186240855119254955794757927624569114906604409119830406361794973816476479264451523543778520196984953223174357338215199869238918608902778518061683467665180526841495737895535063339905752527283441657450086071125707307929863986001958143146431303123832391840587885528615917943454138710923622033594409913326008135460429745762242771842776371695734134630014440318180995245008199327267960478869176220043846563581698792910380999000936341233493461941065220090886489039671152402295699682147500186106472149892868279161044877711236138623483595254052175974821176478961013868592390987475517307992832228146877330371635846580958476198750642487177104516193798361304696413811954288651050688264737506590609386345311707242016627784570383697126007497577276793852105115835200919190623595795915878179288277637988990486912959374324002177112714593421577092880266628874764524087221660114889639283533771425101360062813747144567868567094974512145034447175933843016533911099104457368215307116251744958654107864334300944895782902298163655643375696023670126332173626506639845878533747539334343643373275935714705905139022843851735993293570744576804627722577843184473607584466246013284425239310743287783032094714080878074237936290040305557317798364349516694169805121889051852566663259159587722861387006223919896379574974079839588236956226975493576876659571681498785218775015190521636151057094272737626433804162340723909407012435113195103868749423964735523320608501589168381313029099333982127717401325612479436354824704732455210444958888187051215587377036669929406865892777986628165255949765052176365915942655803270284345347819436635900599248056074794712753869094679869734389947197498847642193142262259204062691255426785288486190000618111215166540160211005260635660026808164279967608288104230082409921890579028572385880742478174323043494571212162928951648541069370492417809896634333605265277586545676907845310102726029450371623522516297530143253650687573795272476300553668961037975591961379063131842262623394893478638621564430911535402056676031897699388080092348034907881770389243350597761986533800196816923519581511787587592217649484141710753194094862137636695838726116038458090358184967407048208978362717699284796032145183656383755588738072105932572188138376454617924234587593644245177633775669557895079460676025317093676974311938717874164864544088591064502724044089596585868637873238029631348878585904352474985786183930907889930142529050047043963978581858110567815468251171128792930718117457149970242976524362793377343643773649834869473963583400342761031140584423159727934723706177159378293115462518920772478155571842211897744707968159241469831425067916925569477840565631677522272302905091694754711724148235583121646275760953254753896080840642352832545504480927751721730395965055448620263542375193004544729624310654486817636745403721443647137245818214664743117207537408820379689495111742338283945405477379375624584699844872970153490871991096072846556682083381558261646705334803464137140391492476790180523404414364598927247705331135612260604115647055181000790075416811668292753564796782933605717114446948443080764181219503865343711168360564393272301812632687426956039239961853954831665868982934795617635253780697724954898614685302059056186245647350101064160297113415447422142303473436165980442144811601600915311725846201957360909646923382293022648683531439975913602284552175688541895831632391503809133886402004406722542205129578293338205359322291737961922415236961485732692755191845823693600479373877351515865003780961668782760205636704852441389281281450298980660908279082471791783984666546965134187019783961904582501260606540230712472001971032296496702012845288785988602602980962385243564563361743759574474091643709471969238643506452183327881471073612182753127855206879457231840675621917761314419463937627471506932596330906961009954411296994721657764424588862099961565609316966895672050340773050014805606933003993903312757041454664699373785899650145939728852327702545145570216534608336047169318885527040785282755588626558060714610385816573641929266072448098014916108104904731261984529041638724776899145814886355325405403609149233309622391778060455133492968885532990084746572599487638858419872886860752887136448040746989512571342118114715146282932668224592895684695331132540558023017050555267772168318184658501997557495688541589401938340794101393383259476353333048439219896805487232532155406377415859435248139406685826114795795194977701574454686902066370528324630131413268947063764655573108969743162949405065568561811682248060672444909665165842649096308128517930951633192004880573482203635431131526346300931283076489912976455407343771480070854928372657395081259582371878680834118561526232202884181230394639229183013631281691594517524339006636787309101021490803167504785132539156476824831068383608593235089919429511311807037001801378281710884397405617939368017052396503875871229721766598569040406083591484174490306626147909473917333122368623073467898586034740114225781983915872883454186842368499651153430207235855549968101804121808917920210254102265014948892479104660761700820106899621669665098826126886433878909681162197608177435270045107441552558770264997314911825419612612701308359624620783372880508426835705109365477477080678761280022482465986045299010690152475909443121928031663982038378441692481895495334247693186048951203406933449108554089465800226570881258080389143725422806501873381711628045573504181489998519181993751624822417244396761388811759622122731788011768110061299810628093679110504573660621654788197422896662291036387705307112655201428790344936123100481011448510868724247826561551313894203986706562803549316215197473778743052976428282557800436909774005982955842712171494900615933934267194758557142708414998357369883687844638518408760031837012437838132654078015031755815586707599025617971674991716486410577303683576206901642245810900075170705993358345110061874943430274208690502914485095168848527381146820582632677473377658299117431931485316455986853668178335865439558643173187659045535859499001895904275110963526109949218964536309954995256655517179259574156000298787810367276110234006230155964603609776854252941627893694891695097143648341320197944806464786618694709180832309011261556047042281715403231752054214262906917395219260720886335547363943114869060120322939373876700596561883661440654660068561737807256734895920064507355139279421090325595955470034031826623630443131864884433850006104571065945678489378485663894354873458178831359934329455103063648399054030030756440596379055188551627716129971207634857899239254943029569627794199104441621172436550550797825738802142487375425499934964821962443224298165582547596550919998102984921108592411734418255120126659926643361884597090157203751960965733306553610163822745609023656966614754061686893765637109388713000408635431308078665764902178662539563872428074770158855753712133563340326722673495507926987349137624913612601082982129164511704161212386480995671762899050370152425354814271538307152555756432616766422088179859505213910746654407301213375402162246969065557204882789592829716179630216991411435828968927753036284356650320074819095009667910396520693925756292941768091198902305949743059595435370859623342628258207812405997032907448592163128422287364065746438109718799929140874371777843145454810739906185675677200647972737119381353868670882047945221917831015846515474999214175730953271720751886834145545365162423744110705947118249012635989183732442510236314936962005153786698588576333907882989886560905491620206569322629027175717049913541752056013996564221292823675783304633565498105799373929811827154011644941495329114114064842851772944467191504116713009521192677475225634745035329899484149953941842814479260126343668283333251991252523173000020098175850921722289971141476374942917538370858398537587209337336444926700098351901069044933679414447052770283033082496730869378706806793875271152904467778529583839207762445268207331287007758880753585135211871004405786278320373888831047209311022910052134704754509395685138413509507927775993496286051310241198349396305369323664767382758094948294547297554238485444667810160086680707202520389346865697153331978083335741733155334764197607880708913970694440411823710126014194695802327981950004283420872116445441177102688236544305604601197243361560981421045465766374065517458495523463780205076813264277837208464041271002834132170876946111177689707147817755556303776887508682067870163953829671424486565487846632869338028134425327445961663099065078953753136612415951044839957119286170962850540707476332442366998432157445199846663037198493710756311345788224088858746934628240692321937666999761680376007326370134754629303013002829063763355551003468601394850268938837820787183629111104093526436927471434029027999838920874099343487184031103624258902697554242960174754435308199742823498014167615437749986092238490020424962863946344631575494213396586480421699076434501655764518735375782888526138053688789707270310503097773587261568164843425539249660954447370684441555937185868233929440502653474267879489476406853452624632052000384553951851191703746159250923367694624009331283841385067840341706093569272805955501361274584335091076285838025813922741951652003406546396331495865719743273112326719398128304843617986897038466176165449691673850525040231322727149846580086749570197016259555359782058791184287404399167353592282904966152376098851054690380031744325799921876180857988975551095009608751937275502902543128448478344695014688084905685545968629752142196496059570727890368199708653388114669162416252804492689983373380749101837694375462248304607478942283915124322662620937675027782064681512422351993112604997579590991341689467653705269460553186986285658938277988867737211014023522405392767694207851674096226574840629053820115933606399343733383925440696499543577821006681730522470906556302109504150238285970098083857773972211665847472421289815162330335383095737784941535277792019991321868793291052329736513459426799307762699311687193579378385055769532108398982198174128567165045997149557574135930138334867119266910766969318320065380309143502875038985894713190156260802404513815498711071276872358178507075389536596148775858899248505838345652600160624731281670376555301047517555098055139725568703014593979277544468821401970737904989068578689552638663610872823234817536617786064430342056973695540593001630476400757494646742298660404436913010147683496960373098111479620374892208340420927728374862338601923681874620078845678020565492249667618479466612035028317186061929125943261261765217842026133599661001992384447321871327594683687370708994030302737375076105932448334233119219387192367871603050185516118551700163563338400293133313203767291960768768329956835854076547569424514507736968346209900469719381986594000685711789440685611789928882059551979989113473853361518966000235065859406398801713838141002433554300508651987065137319275548115109566838582315983714058634699090379038239967136631278291470133505654432322892737613137295117460495633380327417734942601343866876216297874854160529827003847278505453995765715226952785015312314767281571258944253290653191046916151287274525899911033087274871953572043036382405477563619272041879752488557808442461626295518236884597247313027749258856402400805249724531333359817889471183873877405649349209210700101647589518273815097388375174264460616333876476498628212886437876668764446065716597307471334747254555414923272433196534986012334338530744036622523297252029875973896542018800456339231828933499196184974673495761298689932568174068828939431577722134293618833181748417400007027430954330585682747701770326830204450290019140449280452394010099914273064716255205840269779611600614137945257165946797037609963302735479407937893533363197556040951393581794641100017775571248073992675991768241064493938760204050346817259591981638571620531674861072593393984536096795056668268722153007735349521911045831673358215962722428218484327656160250784640175198980996585423396308469514629024221302948731707106981142866667484221841886168243621069684821964209289044853766190181720521520194760416496521497816456830691548355813664327610106574844688187864298254579737966648234186034711998947120123793489967954522450324851229579452653774067826342559169727022445170316624704058403607705258851633897933836482798432364602639449835028738685765268189697681443503632748186602606308808998626965010947710915206402660597042252735692707754649142912408129701449507688348760989234984484485303611346266418128873383555324176753656870393171341656033681985968894642507677383272172651353891299409060268480197997171153866226648014147525281412395480666838279959235280386903250699999629360585488878806296045806669129295262249378101732790528477844831179656758612626851758436153493424121507552507468649422801412161941984844628839676706472863440602170683170805466953463976607704867420036650372451544061519262017018267489887646705601695878305170376082315804585478023155355698769566931051241100436766312364098961784388410281996661686663894202493057832720244709197516119423310519428207184433845192127686949295269907566271211628488679762066388526513727508027043512091812370680339009208438494377953567451126278812322352407372537716077453607409742691615483698303397685765035982995999850997315436844801746365380013968317945814471377327312184796900656920722154757131625948149555175001735367492983845038254579074370275168638344655492570215023335807094223484608531406269056052411268199452236088954668732635352964309640144735965127103561464514626693882196721345827252378781825678145662915501295561301882664833298596771043490278359511163355570612469132382405670032648255474168995685652744444765185670230085690601719158753832519348102268895265745003021982559757304389686963353911081185864002220131554093594990664322253179725946426538243472031231744130408574854877694591096078367950755936524235534539091563462880951378866812732591702864038028638844991142558827167253935927813826464201353489496416397064518312904010674942951142575517475550436386641599611267557861531620535007668207058128348641597530842528533383051352844821107738615071589729063634391824316631418154269971863435047781359224939037490771412456054113222341915084851027765111953284258309686837540146057866114311995256116678398138936811467865917811732199544033487316113271218440176547253809180966740770549769247404104810324406337050444964296337760886526355311431842143782093027250941276234357244380894055596520455646538783794627984643084750875540250750828919846672270084544809938694664784998491805709278442557330727916319005101267377653833290289482047736421868851748260753322707591791428576345781665298766335037232983876669558458636545871477857498497853305652138064093296027157620736640049859638013002830356007561873444635536720023356729802852812322081431392053464437486332446236684822752277673983216231667185222550385305575593808897175231014592151650442903551343903620248044270651159309244153135114795975366957128020744059399943912197716194053096458455551773364553252683917157946949806709829901719459705654176478873066210168663906000246927793305055326356373013190568390953379330283823136168287325143534090011338187980332287084390362943342192105764739228959413429346492442484214164557229158352362157761115820831755191083936306476572623800553984230954724956463831408420607310537140702958756361510818672350770080473689994294822823229456256233557078077838470720907395563028640113487154840342212632285199928627829343480988998342019014205037376677591465441838692066604307902957667226543950398483891784367831643662637789898617851258652288171513422679862558066085278364493747683140701130418008590804134169525913054980006984409182023254984161300190394641126463746078304578871050188604909768097251065267578544474609896917946688834777644424516609037395431853145335525862147723015731429469513597637598083814545393359101896510152269866401255779938241846029781811849491986820757148461885013562801385015031795335606907482210761802592352027035186794552260940533588994038425907674399705745767300944998310501184082225442574784613841718336575709546832219187665578216476498604776790951060658385282098624697037472562243288111089118093431516758909757624584505267989211514355840525380470128797945457377519001326274705321596986311689595930751331584405434332774615692829116809114057808837592959926398693719920731837336123566510487823623259877864519212045309395895800388425388860230709917803661411914912721177037949402920651194425880259531184457851900146835095270318345603010150007972661741182680477364431668584380218567250051501301479205647732564215406821602335139863135330640578882181128028944978149461768635600176349737138308042006964950552261454538460019800927362759937016903605252030373575902331632355476423416324116719986221247611899215544248793111742806246424703184607138625206490583873096217335021032296437466508635747667036310080323106355135230728962596855158363089874889893124624766393062702216485426450878061929723357566459562148720599784572252226117935764041691935427209229051255207337471663385192924991160640253116663426045134114975702116756798333070572562452820783977968332280733169316752718635439247503723236109271761089736744305655531640162980508613811991993814861462145361889404110355205212203557116168769723066077557291414166994567894105305096197963734947540231673467359990242400746217194948458401123017610380959526245149182943939247634231290209862903323840317156345365454794946865685232773294203829747777779883427497504645961505254075068957531959610151685936394095002190555906167663002888198884092268582538248496699339239701707336304799010599842300906165801852766405535292339880121576096293377883238615755077083845669323030889262806338912981276478439374724338985206512189805613519068257842859697471973689636669243095117382353310989162619105634989667194522247537303824236650903541804974464439875531783498842413625302437575300767471066985137010973267244448851746760207164468200970963503361620430439830855614843912630463127360186278532615363961815280379057059989767015834471247578157186951849826426827602127726645874100817085753261386314718780324780619519163881780011690505412812919224918133632017377148879203228163114360172455121634283598042794272929108963649931567070130936957107947299316321871173912526430157643058410904742108501677966279095388649644648793594634525594566904275495452844528365714094553592176422339901297659382459205254133172818966575145850868785566316360002570289441216310219335389418742138628532071632501663891956077386696411088707817054197432891672749956406186875280613615328696365241524226977989167546386928571785546101071727897825077573012047933738034856818362978732373373181984245254780125105287516640946945174533171074996741584858567306266185339713019899641478698796726870053033394316923009427862464816099479830119757330183950024846205152170047590543652300295724282260330438547438108370130436528148794809756829535439309901886960447080853616360859061751891211697814204810605545259177688780671482314686676405241497777720894470544676592309729606197237411315198189104069884593032969915397297186695851156678183042355388427197187133252081293673828354919662271206057299782711747878528915057245124446204511818432770772348321582672151377375328498590432232949701035734782165353775442499443026103006601264508462549162740988312352496991094414607565121846342578900145636696853440493662844472516322055357540142171260267736344530836511693103811968607092718646893921141833163099301370205884046170689123206383561660539379440930063215373374675046690159321379079901619439820658592854916540958689321808097261364681634728419279707480270108772568450675524445314713168570357034679697697145995419154147510488616545987942771166966580871665871798117460893417604292216075647152904990788585769637714218532196237458001704271356077839306608145918278262370820147385640558577425800728468945917143282657255848365919461807307019046251517794454599390417779177114577748637328697381671414627729724032580655476145852698692950626552325089038926689022873257185412866743888749623547862987723073579211587809298809800112476973421169257218382915574647315701512892544194359961417517844034254011957726592665042078926357003141819608577077521418447034756521156672940523224450457961828560943410996091224995554297447679844417487186837492890675762995905890939971995110601613712650361966549359485157657286823737738392585455114981108660299003950973822645390491395956045289229951684670178230163669026492524282927854629312071570779987317374845474266946228268573156060731569512724896204596492693834011878245393387302110646555603009893766660995381059023801847271031513601566335652983825718609785012223188649300320941694532553663983479908061108158234407145186540448823212724271718926208483138904781154227516147292702126384219181319606752252849218057694845767892068353942942138444004164529473496206085780780458448923941705938434041774255566145198452373357554673941162303259351463581675712308751707283704597873703491887394054523214123810540999053466335454569549493318547344383293749391233224775967269815448524278327336513870247204024922013133629918013554487574731618673096778180735181560789565562921144919677228862557212740608198714548193557739771056003296828040510030601392658950841856147563990306158612705449591865646863098228204406733922872753141588974240005413869722375182055386137280444521231255981581393963052173530460093926956726565448618915135347909173608807742162796137535748249469582933022112161075921512437694608726010278220485776856147194167633584717444357139357040435373342347443241835228668943640490580412651376596255380159402069683354422581864619067714052111393294949259612619569454231611117577042165093991901004300109349322271081720682206773926114707768546102483760114871437780313088850546998517159890544545255535960424611520791286683271484166532479572785952006542920050124702916425257852290139972031034295689071125020689549000972601858166656394366355770952177358409657043339878800612419823253528834224103930439590109425528955911295632887289269531694207052725655394669181785736946146246163067154299668190249546234437343774768417840595230924994937976167584475172581958990341579266720810738774594016109424543731483430115213161586150934483376792229946613069508932831771872404158082768978205886359851359354363113205891089872170124226951711384051260484326421028695247771058977220139539753469767112859073265582579885555195503331421177839497274997003170483668243429996961477526638739999369310205757239179427200255992920981399553878733153250587640382230206336483373856971395164380065875551558202830971913891961904584020491011096690131111435421177080822342604251201208324646537587333497482812734050628358346077867093986133185125103155566639008373801518364049475320986133355019622205469589748545562090450223885710429568070206496293688660667866604062024018632629049941409819295802222283460472520048850565741735292335317760514035532423660716254445212787722939533995803283487608938844621466097538764595755122464820751664041580485356742630090695377049272047386038643516219141019247506673827111809164808871650143022184645091700888547068421409856198089307560342124566512173363875173725196733771035824118749465514460469328369236265403983508714128193238024701746271204735691958380814350279790761897974487921788595909945973704719658292629812088534073641941915403146379740448652844953504252653209787019256366208487985806250769120451212999218948809503811270072716605892742158852727759256698589677504107757214583841305835947014444677290560001229932963583709736894799031691306219112036173270474034482059869191753308711474502915854567411793581452418891399820642337127460782842980325562340643577254066996663629558071741119844437574721378614732956688448949949964905765612925231525959059722526367128841208547208922354302785249891808117892959925691287562000231626816909095226117145791412365030593460955819623035057040226891431236352441408067252236199541575894358216012946613794134643686623569742298156919741807748650881740432420387799028773899120125876960054621598179928556453810445095965715989651295112601038391669466741844937669677128651346010506174136946922215187570913197184318198104073162781278387980052757518894545039876697922602030938903875726979252278612912370250012301207435776402929536252458582350972065002154470639658862250441843760080820689555171948785254439112732019215557102294899687321677604368325522975359116021023285196977699923792326193084573832195821109808289722443716072433424634101627859675410446680941438662253486073712262812746944323719743240061663596505022286970876793856429265263613858052123209932891987921254152770973010312394279442979389722690524083661666173249738165593352976624265247040833329051080554401436025707833277715924527601163968596730497648806000160757419713630309658960532423674567515830359580955117602300911863996957499324272938085892518769860923626326865489430206438906893427861366307177743153625408093020351327405426788046048452115164959791937365040721962821019790930826842959624319045916499421812307939899247357443184688558463912578174289483415429415650885942802216977241738938626812481911807525408305613483012099855004722274915610417547026359987469902972327479590843719886552925708097862855542910564275401604327250622821563421068443585411560150635649875173549274111623640153187528487902979575838034496294665879071053498171139098440974142524228813165054767372561934727223814093516050899121549273234700517362145221820367365638552782580119615338354674189662407798786970910375433407051645878586994340938259072028719914411774187519045407523724007500194746640885101302487836016303138538846208500801240519340308636093765449580780733989533445903911216904952893634429257529306934335083673660682712041092942130122565499443901358826763959727225251663222096828115016529695834149935466208321495681700117541215238181320237482640561131968569198850342951078297031891282255747789743452489104076581145601950852757241264136097860101914527421362202898242333731297151634686238489507461640273311825597864755811742890600615598000316142201845937296778883144751215526769966145647971695956195059971538089838375842150287348696507201495103628685172714696187672394086672064020459100200705628457342239415052805589897486818897250954140780669610851603115121037899217416815458499785256213826762831946438506196810811491218476163096982268208427295829588763419934495724035606360729887888450824849862566651660140008013411320448885866653392316819258764250506733255450708951391910842568097406894185671133545726655706129239289294464036540119013159704220535716769526996866927117466833291867138312988039165833088869012569166245747645451093464540109536870927347525808852882903678021647301689278400040237896212292593724995362721144838127007173503436763273385152818369880140741392466065097778633245643586103627238512854710923489885712593543298707818624291489732941220697594040605525608507242386930868669603945649404759993868368258490035145361476453773510985828178902777314229215455771979601428036490101614731446480955848201379819712395432302419366932225669477275103053033770858034810997178022896404822175802214729083198438658092890734231176310868476972114028828737896746861718275479274741537832389122944962691528668753440457158133634235944671214501817430112547216933933234775117629079479777612091025916487488255412291820547286662291361829999525468717027565033488596926916785814250986692974118834779444849939514027744507162332934168272460747391712794622689751449839428046602762222405178146545943578853671149183146279783266381187299746482304470604607875082648045161789262438099077261321609610067341585967312058406902463673532848323171872523728912320845073451324623256767390855988934877774461512190729185866180436292327490701422391975392069634473320941996845313420334389094050456139889594994734774466403924899064411815551213714376981213296734464701561310114265202133378386537783593868417575777826082389326569695172250655293104631344143464060174721911597103163433690510853891460635932995295506255236561819849771833559387675364023769276486945478153443448381968558063949501637078499106664627035785344098388581116060323718975687596760595162781376719962895125293017020959997029322524669699317379680420170064655200040147926807604225480713742930218075025558110312719392511903349713501320354761557395247673720737756906374231136012437376924711076377055426264651561805505792059960675200637617652956821559768478070291217858199468620738467151709025048695238238885564165330547879010994087669950501351883727345660834294924365679186373226520519590773424551473455322563376576424090451159064767802408805842999771160699938937687378937817154728683412682151202201397389435605046350837113601206303495020195012612181241054293507174126996779220280723341443309683275627252925319243287642178832546277477198120838531701565652368934674726075349338575375595667495187348091387016677260210596241941361808764681449435257905602994087627780800605963054847260663832319606529301022330952573500750888333562015255109354178670441407920929604462171136971296813009405343195259861112500814879195267539593293808412624501009318454435592935426260670008680704714915148214673426153969851763479089008824559847593977648305806778463322952302664285430254509921253632731469581377380252457214077372082362558554148884499708802431893044706582193064148935353018019777517844469096350551934078839203996647483858029873861361201956939522626533978237487113082306918799640112619833522722281778248441316749248910688358771925967683762114152724042942135310698431978114673697683867982408827939375592920679586488458425051887078856212532878983626191659491575819495435426335252772118801448462357587909067989939722712596294423625693500213254168107732508151478120754248185031804239223044046510217417508466379111241835729245107160231710675221990850482123777046832709822148667314781495058690774968145513452088885452916852434554623013994945697344564606471235237111377284305845447505557983392403533534243715055231781199810112284540138397094356132117098157198852335283868948138493313102292619994577547702329854925297507594884247314927874977555751160636230658624616802546000429663082623533857433026502183910045494642857925902928760706293331295479379441102856680813321317271850102822756574716046275910007285274563494864202260426822002547471512473491680947062553265007941680898261762074653291836362039943006375373700407365255625125605810878022233852896606324342611984691864506064840841990131409468028096295821138378185916202259517675317972078717256376366977118462390216384676137555154053206735059429006477414149069838403338697242189387915329442615283249007062152835340967682961695789560218483353372707243630715203716907120361642358172757401770818053462275743438271395808306406000667515473125436581287324657079180558454826988586172226380396073491448349062570944292362881387392078887981552150578894200917493926748548698256527962168874729673495363254213460700409784309310352217895336233729280416539135198301982072523264600388274515430327769098564862415701126884912670738173029444861673734319130017933243749049383291070873788827716553502455920511264246022432440295901258544276421547447123405677203486067480223842788400805910319619352551849077495799405068823601047703869557283944742089784297231561303858449718562228956715878817676405069831462465834264286298957511413275842335405278139083480924863889884651506798191331058798416296619026077474167168738850415718778122417799768822327945489106912406737917163626856648558138170402493782539021155907802484097847658153186309291830304542994243556556665301214345924913106315545844586493704321406869943110943603020403974125268519501127499554726649925594140912325407721356005037368705693430977380892678939663897850839036582992255158414562536480515674302939512480840343314498323808632793565037517158202190667557279510537577025622675367068434168184738959262652854759638189417974339676635887298466931471528709722576322438784654738909542107459989283474510329529966753636808453908196128555566179202007908309883153198202440001893654643856542967266410233505542331459565389436338938081940345182348325014494704327771465693544379762092031666075108893089352591012075709415767368263332735235666573461036601338128899413087007052173769016767615967114563503801776879836165073313031100172637311943413359100677422887053275281210183519427210930287057713876229356073400154847539672554554965857086549607224137189011406068420064572794784188291203929198753385796896302915187167488803015588318486467778564758612833160506874212344760686347081082041223402981895235318944315525032468754801408943323926557890511269957233278741484660772285380222696595435129356166900712557829063944723245759389859417884278787034215932111290747020899877208880466735764212987213284029006817111543275906457419021446277237107325992403537299398154274487621409286452354539028925623116820854678286205513885925906123863246708630814119284919954683819253060657701355172673738534403111255750842992272846562233529007258403630383368140670808828549416531025606135236827338082805274302896257919478864011297539699013600507667645579688125666334019158647894696591446889919061849268296130053690457609378749500285610918855535750881705815984806026103554787404360831233671776743041324920931286234948252685382759785932025869925680449505229430209228645104094422150451476213875532860791911271012474713682112049547464550460937235193237870946004760978219907151683163976752807229017385255035042597245624233541946237936311705093555677014274132436046721273360146121398804127710162148579715770136547117543490025386999263956590111938391611411179172812765967271924112321662696956984721253615352922198013946939272380414185934022097140327165535035835812665736192036346834161877433595610715076750244429411646463823468290730578703859092275501289256744475303495300164294418205122471370972185665961393195871922072048699757531964285942040335778300476552409323371630387650251877095247645887414511315778432727118984600738886769110481103303759255345305892226789376777831653913891352068901144254556565326160177891182578972582035941452707973464812962649727714572132783599048643105106336785329165821074371131853810792067340595641012102041960166491540601565904071423383253868661452147835515865253485130664668533903428773293318876926492681443273216169298315848801455801574677769675039940997704561791442910371178176631317259494348068956643564523044175494943747179266413589499650361284227873581064259300894334728583201337811890935147660333225246048886803499390450030670780651600978891658793291979295045451075652169646602082662389349399792721032171111470210654897866774710932587882790935269954613060619978072001198120287400099283075142571333353845642970441380526970793475807834931605141890178976508665780949386617337173433533801691498140419869125413775004068223030162714527947845911233274187335390953019810625305406579829967202555768829677167985960325957483236902466669618148895052260909056537780426001685399593797149715015051889129206474711545755940739649087633384775954013351753424710522313569500500440998722525128191181175551385830165587068912140925787537144796344312177036622438288159054772795901753373189452628331776205015054096374309073189657823840428277189686529678272984696210155645235064122039785110721722170679656853440487392664155042845295730149710940852383459057696243476050964004602528720214004254151785306638057725289515457915174212161863572285705641939863070267166876973067358601854718254698706221913264523326010235004652670984102382998988079727197991378998472497222227041720293889639526767913964603240549837747095921753911816091588503992189093055796063531860458655807040712984806985865807417518430937779899790268432747349510405327315083082281753144577554011940328726076077457496900724689257409734911537735556694841026200396498398237053388210617404151564339015016214140306924411042812404656955485792906654620717484210862181105435754990070772682334029570129172478123273074631007030251318474477171904524030463864615830834477098401561174984142474130239326088669117488841660920119268574391112864446019857860473655366149005113932321029703361924296910464508067383939940152817476340968630670411030896099676836117341168420990962242356010182093279984078981125924441748242078333177748751571529571222633738046271065951365202932125710855595835132266263160683406634849283154928888960569975891034628284537964754785464759973540439851238796692375075529429648251273392591073380102355585072983976007737861667367336778483857629500124260467451968527184169879834581324044166705512648917881202233215146593866491688819644932725362042462818753789085681594674910535960059715294074103941636600191746851106855183375086486305941246717850031553888374989765675700710782175691060175592888366011315112350400392345594372034952142223659989180544489836414440530610686023523597673300285600918866349850689557417907687931959875435614471411121812214950629814204556044197392826281276551012037781988832013874307017634096392125166755782180603247249789300128403586913858291661113388789457584895830357934532802995932927206068979522044675039070783150959171776451955401683638368025023105084649082202553115749303125584323139828069485176741098302278552872393454936488358655085122047654102430482256333705901550363016466696475763548937865866770882623151835250878174869909089501503865355892413647190459844253045330399148008494256986520600908348161122010615964424322774354992950504285893383362363348915295191159132311245697412721582455876754826972622944097009119360697600636400512265558911530776242180385311002852016822146880956472799758636580032042263765291410099493928547267361377311090175204689745730628030454879344776396531402716241623410992403473871760051525164321075764944828534640444806508694255511357748493763000710347445134976223868379221839432499138703689463551573926089089721656788745760782221070398773893956696551172409480352552778278057182906197708498236659374861165936088968018884696266881946205084976664586607987274479870435395881712425758913512673401893677734941690363380932654154068267256552900298662768067536043027661234954600374473956733364427064537680066997412657740904754216330432027588711477907380989965445337566074939285311390125795918224973205372922144050224572527620842836553477942035712692206519286023037201458532870637806333468741588875314021558159215582642137678290099791712075137140704562936105691736690881172631377805841759724492666057807251476213522174364738872991339535578569201710687919590783564224816048090832330436311056694908822173449312002310136696770555411143121259316525446928093959449191945187657366168434648600240892071771191476378824968460272140783804254483020273151473845100225314977221249272933534066653829077472249825498977046774349536809807019111245123043277008642311526238179749941478928628709074275607622127388849263102656698955807466533344096643283756178825205377828294682225024541889340803182215284699298270843851813935101077882997398543065061098758161602551330625869752370421150196977672732095120925857831298610000101113803296951204232855281531198561068668574351808780260228722098613408224564614219470849934740763389227730099275884197027773320522263394936727570069558580266505443983135136656073665607061434516883688363785750821414243260960328647544519855778433625530765790128485199812930929077327249363971232926062767177898552763549708915983830210201537080778561832850196051674318464901759644606228648321482457262188351031939981981619321015993462108358196679962049284305537830357553861427581487834430671715937630966658905597049830312301929701604810831055461467183907355906900399723808615623871420814798032912540586916686211077118460786681021729280989696177196739814146484330983848359250570177716725745308686216986676846027946117460148519471160907671606826835112781938819882628096697041073141003256397543568725394647328209057870182229446633452886006945037476725417828398962766267697724566484324736785226798683710496282115890626354147473794625637930657458319511291061389715694053316521008075543997965130884312919453984189036353457340660375288332846834453764364274315541103811067670368625986140786005183832717854977157665952463244251705229197238632852343910483850905502988706777927575387000566438241041772455470519386596437942656707918111934343271855131190164528976989439908241861986121170414512960712138514058347633915473998891333806703309014511400407002168526109705069393797987550115258820431890989015685577436474319762541276263125385468477922693710929100159421670088388364612608512751863446888948669701849649429651715548652485264485660484611345073610622626906345456806712817607260209215280569682174633557491183792538307336468480558216945989231596818682013199997256743629176141769765398900402588192018812084101471439078501060542914986683221206086638202296876121739633583902730847607507587983213823723280223846897046959091380954757692845549503397252258492887155164478601557377491920844709255530736804086828666489834472382483200382193009343102820091119562397529982803667018178958845673316047969622709951645833882790469461434552915807283884685210397858658540942932362047435804066491184332104592659373860356318519384459723968184527264900993268527172778625984730285341055594150696183197030898821654262984370598163722628428118789898050208819137424396880133697605696920944497919408049618324704104464589856013696542547432931916993518346910954441595878294960622022383875113335734710326207506642744877332250093982810458540040367810685682900403241377580831468283453574630403246735366754178521247101960358728964838696249283110515479259800927874624900176799067489203660934871323394241432529271502290918021527978925957109266540313323708432487962680705075451105580543886576590248908819721489813167652422544044574402222158043521208324385847041977869002995473656304008897459295451079391427625011421088484047841970353303180229028844746059622675161908502357048185910931944419735419083543816548281764428377918210477328981011052363328739776885281603070156937774162161353217985887962919922366258194029064324799525008433722791661096944021373050343145910112683865123429415534218320231183397659829586016595467368484963204782545645161900644899406368768904798616026396680768185548597830375147883739049307587167222351103643534497817642394476357915012872728290684538808776089974344899044245638195296776470038801655227023751737185059829782432899738465697447001420094229685883263296123380781567584112989633259230540720298496098674046171099563668719184271692361071324392005547655329522341290317874266633538965108050920459988702169869807287590422915771191123062725504678284478039675656032902164636532936350064339121664761560250864185569331206921184886556224579748595223279660912112336957975706775039360092714921670418973764233405362818443891783425876098782777823869816636890617857722711742768916207381404910374596991203493717551023780040551046471115652194628223919681926220630596838674508529198022435546567206340311385482553858588353780424278333884983132284643596238485644877220269720175577992565021428024507394586896880664851174152675677459641490515280666808919543867258603244728151383840707279225582931390001127531378381056441406627176781505500056263476544885625664563982581622073642317801893372159914065211257835043500009060779478087830447489275293264732474419977620979273728159828876036932635938148577916308386671232787183027158553185213609207347212278841337964151352145874164555699291432494559510565980900984029803153847286062136212513168082105512770586022279200488115334416290990825319617160778072262886386171846194612160679329293615360546382112933615541150018163650424056357519857122876483385674524140016452269164427292063475242439072164413518037664654247042970580764065865215438492300025536042948731609167696076349172779155528942080543043718272477716617983535513764186357726205689729661541558974013292627486475903478934169716591063837753455573831779358129171443920762457546640718054202314887222171438470639796987687989753452606185912158926825139088231929410376876682175101391040878974299008340519302482736138976121619915979988195015309080445631252561253298538632671532386710170709186663759167376686695667201203647890355808336173370704928040313216889240356290025923063488708545443513522768206872738747762345729588268413778835146285317772624811056039449138429636726021439087279996486467583720592346447807417483822189674786564355725071445089149760568555631134450832519697574622368476672993981860444662427460106697146286312721387937504607173621822321930813297129580083407839705392809047870768846365215742104540920406034452324471402588786308225951063003656835645098397050652431155792872306195046563365834404355459329661156120103596042428059699110580507711117539277548169101485870788357355786274795147942422602070296148932226109737895129622237810669313747016635263166022739713243192968871272608764954116377928973401098249083339972267490965296207121474847329085753738393279988105571668333827347588262846875130890971283551738231196243847623898265709449136586683372912877652458579822999812866417485352141741323872048917144356982829685350457028567042380607566222516777450704812683299327148867881335416707149706934307213623265206873570134213976572427919671316944266141610861493732006212023961812670629834457832372301679510875045125094512768264086097750316051398659153293181567069431504462549589919216559822038989380687329313609366885778640144614762468439589937497233270684420053893598486232000747939961126673500000976770117326179382400032368873203411659096581255544556842282561962659440843356035294104163608780401750728583039628219739986888455838806422439302863742487451236255555157902418081780439383834783919592663416460339277664306431300563267754737625342985853441853405448360923428153045249447002345865351758467826238015571964273354572137132273762668604452958826815006117080419685551829358216271633789246891829092425971119474477971093829623881185135549963435537673116197848258567572693934212315866321030404400299013467006302585445788223157673338320896085161845723929563839342750107391021293523915328754758745811225618904325135257641664564216327543109012123710711834616176512997331652537691641563849572403350519273106478849962453892623562857433561365218730647402802079796230611873194576494032457725520390124169696723207533730708680166058617677635197039450434660312793124500439440657988490460027540945298913790131480212510405682607667737877994987043676921954118783498765526462545815534070017509727365819141520854138862556477640555775272697696936182881264886517753714073228712694659421732276705116028683252171099807225814555796953329127304539054621814000317460834248814345327639948346887801855092702609126427492079522362457676351459048537124637021748486074182211559271972526180698682758535102517959253327391271496570138419568920815740163284504861157375744240733909270257023600712326055770248745286506755716550530544894525696655392055164371037495679622076888680642070290375492196599008801988498077026341842571860485442698296726574852874575489973398040389996157488866573179251743608827337961965172001266506770943576964149473725668586274570581451334311916607981626573660569333061855251733262283361329690889427708812535805552353515008896720263190003685183220275820925321409395711547362101071887470313544201562852983274710724844210552947337642652919503436825562369970951072952502479352400475498964171570994749546228820442479316414674795487231799428995716680089455596989852708529300960077978738731367851908490869927522515703569052620985983509823075301773384970479917663966606852903361240872299990451250849250603708238410263512636487623921909089923902824154265068565301913392440226895837100710130740353830332025379117850947286151518648888444818118200396613563655640486231459305835392941309516518150136769808317598388966208820451234760261686719973272630144993813256128388577408152160293815447792299673592573503121169205122991197336601942023696421949391319836223307011231447806080656804550124922592270798597836920702872804246408953264542964236945280925907211456610215155368255304860518205580785634072309736374578208778064304291437352595024001153054841764922424992013988316566953827395938608988532463856859599977185984806968821037382917236993103278304445097006744006354386749116724475100694934376337375602837915571134288023288431734237460090410429119522299447625329239343268996260776270100883535334324396010718838017706824157909961475097621527028208206397659157369314647575167459317685376307492762483279515069633973856111965477209138773601168484642371247501454623531330864038390846883853241271432975594024316618525089855167074482441565569713452688103114748106505466312560182012121339568651426398851044979650069357424984571004771799494097793445893693675364756703913292491120352070119689177426706472413800298989645418883711907764718412133266028478951202074011492940414092590333064329136279617958298145386948784680225285844829655077983816533932795636581241499265520862065703640034248172416567253471439756037499874144937329969777582090998805614589498400459176005969419223197295422897215727439413716309975451446769204410564246427149913366334812784743565150520837434906339056330289148577333948750766961981825962077827816745616726292426317489946728434459493028220265723932425535589864895918936811194761394608741689549449221658304627770163287950147582653508181602660979145694011288900338788490661078161745107117670726744453841547168256468125394231455677787162842581023651131041421819005351868221922783439669452358324418398520928994336334952958541105222577816672246123630254149292079224998360662965849879955764296564871327186250047726017821316065109308254298221642758631710744378790977816315379568885189692777501648355704731394483348874171442051823971929860490746799091045308492414837257565145563643385995919448983142903908149967421655264873399608185426298535503802342934126514361457964584061664923791200772282802200461317921027760736676721426717671116970479291734680979545468668611021456529259105509801595118309775563736756377926517021141057780380517725868780417071921360209418352578777146482992448725331637576924839442555188634155180282844620256107687846998964924642977033557310900251570251973294633323735568822506937969010274936260553057541835059751595377392313607872842350016100698720553232527886746638746045526011453035155263447921950517397859990677383776936641706528009477141304378983362770012573229020405116379098554783315196696787867044825610774427087888622960480612449278255928640085230095930450124632677719999856357347464391274575917139405358487325480723250482824609513135429600366647336195097618436753354645091419662387579872028994159810484951620192771949316583251236956547939170316756343682097264843534200316745239242508962512451428297668780118191517956860409168353159894743615566889132768316347550690645850040829639252635212371127278727592607733095775762982980165398834073478822743494178495774694440262272882809005273151529667178135400805591606842327218131131111679396304101810030795043137086547500251613844285986613668201285976201504615867479401801586982493308330200696821075332807388005587092171122727818198163632856663290276172826176355190254852328952852375836104460991491072612207312257189889952525281197970468117021745262266299645341115827813229042381885911164420156450345364914560721934785631678249092088717301971899724567761625337455779613353495277651157869303944431616960226894673252039621330157522337301288001253030680372834142989246129198637115905866243943040729466852049006536057071488374475129917743991282753548446992792077927702738303965494897871164823922408657713837385420011161673792467259988014224674600717131295110857909073087651818794704338831260141678820047149031015510014748329767149196692791262806151984195914740900585893397470247299960687083847247472696293999221435157791384555387131270926648883116134841136287905404106443602051647501891125636022266861529883089046787748374483722901049506007493412785431404597294669870370816092053833622291133473815440746678010037213553875322567161590550766156878947065422498309785292617454174624542244222029436166879390811513592548151589486368225463374943745064801017603904560049199851397242683766365978589691812377959937890851269919084238985927649455735796566022338567381762681926293933898700948908837847151902685920519897224294372532532975061804887985005558922752959183593274153020803245476711455340463974153742180038354255007247777803681477949006627496677710885625558133416294621384172886289803991163398116371438851413019799262453623035508470596620114890457740540535468560735745419218818111641447390161345051367796425124997215696114382074664072179688469309353830198445265307683485535834353511293383222900550369894345367949958305674683599278291719455200547052180921254430752066589837787265062296854712730910280562484063499801950232693672370111506192998669364359310298912598822238864286194124677948540627864201539297646433462666231268424717931734371355989174539567762760325672955959662896333834045167857538308304371703548563570184358994004600441973421377809724072750041772083851692478918369500375461045131012535262847689465916608937157773159279493995009505737350562042430565492347603517699318882108529410934368831263102420618511482820490735758883778402958980700863519412536616929646248839082807715221168137063259135822663544854939095410813495550874032465446037298433527699224100307837035429621342243769194274775724610281908747700363573011052910165872093532967008714615874673879521137891626593387965740818894652972680239562683777358103252285292998258771674686143297109266472153194612988593631228862342499953555173674567697856489927108774498149442373518052370299106933481490367577419948749520123040597058809425157881240356955794243772214943779127090803826456196856168990849048914271475157151757695184118270306155311228640703406206607080908916539568502215962498624148257498824332757159372375444159182159729867528269143860312510469275501983332892603308544822380421771221898192216275938088913318247259492708510944651611550179735884846666244562306524018440573827729740030767927821051046679184732497814841576967116709708204760901204824452878298234230641236542474482551587163851068142907895682838669554047437743578716223170204428459524637619720038002363489057023286460410504920702219876165603245997770365176564493837997058205027731219029947797325451271691996920806456714435538306376535764428740276348876403944519580789234556927723937655143756174877198558489935972218606817851849137873482202742962569484207264807613851823207992333269904394157729910662059793526485065213630259785471563545606465738092711036904478068286907427149430501835477192867886457719772668055974872171147515442852095901886616311021623566805202280594007147818321981767260433272848264311754981721053478971856604973882052476742981120550502886819048827428809653934996599057304713048656169354279443921383742646374852452813216106495084727016145945995881383339241586392972195448625924862383021774487340327690789141831126882603386677245798985971959007718055228271588783027793035705204794486266113168804210057860388751321240340505259359492357312513186488413847670546793761934427953900856784571506718712255731031876773047898102344914079583618796641268634135936556141204814817802980079228199521504763207355686710943329527605484716168998910561007340850043670359209026865541777824094792134418768645943963562128068400638958004990355417802321273394621820879761403890303563531816189290160704150844996435427061493833531724594176093737124588173019667423850146008613767698141041189586605400550596119789391507404051407196968818839183187835671633429987512515327565447128421409725120984848388379734153815164929216113402932451710730117586042194990498223058840167373546566808866646690335762392019054404121889914770503371102869638937386019135707535528595522650480447107599506846323455941792585647781502608248039830712676890514781985436401279938331630961714107531741725264705789201968869627020225636054049359532677272613184821165894126316039215627585617698288809671350628047794293070290050199625173367790498529266813141729892008266821876460583269449460901704344281341805216121509740042959542707049219517907027546192662592059375748406749868500352270943637032475030798490970500029242728059053367377416379273625343760033195797375349015778207776478967257344835264264693250936005826808697840283901008941628848684439707847167115511507139184800093057040295792502439346968432601370539246766323705295864209692146917623560587151100130622902917580980150807917522114396154276255858291163540930400067065392764190547172041630647384397736780834952127858623387522788592414942370999369139666358573875281584262491792573553228228246403494435453248293434138412965547360598324849514345952392443247627453457999821476883556337065910078642130761010295051279624710269912329050019681480361028651892082906824397711378709306625374527164872582284641379464018669070883267393181762884422507818772500111098993547236877865384709486032470328282533326009947166377486189739738807021639396777841777225355586581897266951840065546569888784323419071726348716323676676191336909164348256015926074794818164415371678955642520698152358765833691872766972843330996921643303345833534297111732996400163413386217317986447219624318372369704937393470167060711725840392295643523647358789262426057277731633059613664045340958510639828607436023434516041171130131094646709365008464365999763451712226120167265428101504023521097393746343160081592945980506819626737391045827124425529219861499340716427111458625909964505370612764115861754695331935026045309863390005699680919188703322069368127739152547117039325679441963097067495377723108238456109224666109169004979566015408765364169541290500216367258712310945784223610816605815143324418679018428413865619797198333594414520673555160186418831060316751505720106165873844185424549350963062598137989109477608393842702454801055810110019777103282030208287207265875389302257235256918234332249073425644174475797235844714573160249822340235539230396029993774726715860034391599348617794549768777294972293207441303940177072114513527424016071192036184500959069261411151236705586387047740627971990719232804863603654945701434629777211845462863400189277746452181975357542897260573425909297666059496123191353041444179320923743502111775955695803713283810302696796053852798499835353716600722521991510712769191895866775371834684069652028974608236927272047485405065191713047301805567586678992323118067921439734691284493523851756439255487709129390836223804770441213579046821426228046847238870039699969716629512930781916454589181559997683783803978481413495019391419371587457968168922720313743320207998680213899883878887179617572926111501988775700180742878445808940500004276772666815820262027109004171983067367033982706438348924162249888164184221375878366753869136656746463622850281260674633626058090584794469711059101958349541590231659650020936663455903617068574421947095621137532929641530286040516177091911646674437280760396655241445543271038079495278264498233106797939784281585703248685845024517163496100050635786393788363629342849621917449431974350880791362882742801485124797324877331004924300183430045414604034631445158323300573625282948584144819737698410723031443974990952490475225733301859806457790071170750830701747225600179688111959833497832048622372971599589191912510431256631025234517276144947249492547585601674136920449337621948331404437299082593431063723314308777836996306117844513871111656107846526727008716251584560636023052510940583158398058786655967792182643495388485110495836597524380988366366934596800204737713067988357456423677730711369221995401024761355833385776323966268915668800998190562056856465910045517161563278091165065608960054935253894541950267042198930966106267978421677466124539508446832866249882184544392652868935485830596352708247047750331025408888811054074380622650223551618381254349906794679353101696548841506983267917374082537782704925426562398755276678831007632715542037465691969988761157669107071855666608014841689700145971050969810742907937475689424523355419286912612402236797217873212231195818138445894723119196397929753720219232628211747067660475532797028410084060029231922315369241128007271722488708675707245364283878876830604457228104078935509955288780616485834794280548825632678317800251959525912260976538835874309380456087953319788302141088312543175057261373684585497857844557916348294254235314443440422503546146031046436334569400625779127708031546403758587904368624694485276743883705017702569161588316118280426019572790151654885806654820090405078538086265185394506240436613924602926364189763530215526067695210793673638889635309121565717403445452116589085688487374858750803797526200194764148834644864415718949693871079880933004963564287383370475936550654968612249015760567763427638213563862307930687761970149923937003677518922528704301388019019908835958203179237195974545136914270672151532439979718470367962298798342881694940799658447876875181899036480910775735426557621400869739026418708947449208163516600433686582413382207421332665611670154683920039996288836268572997042284198724640925861548612236351719705252540460431198652147601945403919842653853691649160300133333062189947488252594735257555883705042248881616312622737586197386370413287923086157328412744374859934612169993420456094757208682738495834430804451077795803423922051223313906025898692648829410224490074080321099064323808575982637268619347803236981192992193393254461867253543819657377824943648091011870799234019474826416807167794587676983738854071499007770093882366865989649040773106090592377838919603193804725906439378424260536979669791730981004600756791475646704633413196150701022649809044586530948431880871665253876518818626381928656609919594731701290938984331691949031729309337880157654955489214502051626431878598424451193825677792661641309838869234045390455623587436264150505142889581301050658638967525497831170363171546476331829862136426985230116337834709226623361661465439820056224073596479373902780567772202907620823279776138055958012545907697724216067492501423622992595930401304840558359151165428521617979197420035787227065175558307905736157310375366105347872679858304551996246487773348328591393854652665332707342399175806758751803931947307436465251260602627900706862032582005000075337911137685209688424300834542711406352896088153338565923572127091794759045773295344413085858444013861885442736563893925370261271197863342864640015203652660726347252513361903278851978481368889479656552948712053856191722064054544331466358196157768330600418679997846564307926906427272280198343514821901793327138516899494494321022416897852559564132519929432570154257150654864397952694118819084032136177224609389669718975690366710170789889925013612367457983018706972568066184166102266376554708106147070013062867891687302323069488539541501588454348356613483364278716988277326745059266581465579089328823860840569341970204811714726355670057671777473983467468229511906460199531940576352643903716606939295742070921632342940301748951058747589282036665369059134402092031848884730293122019192008764897472634555209036701665524900214660803166607601952128992849352598454396508851830176425573192543036752839743874132607751253992850176671892739854683074053868450936296849895301842043144122118613215554677168638473478422611110397129164345045050910930786808359068509747441970775124674575093043422463356879457853425416815689148543059574585493437504896056834634803352730244225776000619479094363421327152498758419210730785202333887948114370529087793778195658435457658620115476259532501390500434499721673134628582586834331129545919107240684686720572740543227859155442787030303276773130619126166882924433817297860368040219336636543021871922219517681095852289591835140094731611788040448235747769789404852839165803858397149744504269483190085288482497020612681767058300550484028009747702220810859119143725202086068780071502701551916869741187773724655093552364582367066423156108349756159288069478025877928753385509180182365791960692026750472083518937380423696704398586208369543167186839657946386527031093867734769727377246017526144232421044954915496549807709818105018998966721915230526296467035521077515992134169587241690768931500155608419416985986910213231330844281482788528505038025564248186365082118391260782215125853596012306703381577695612738789124959945111256259713296487101217708999418148697792271592246070629570653456337649964113162560067517711430476966723322452952090439271391702552138255350220639111854286312486319613505667408907331357911320350824422823596845392219964824939179169076146290740041907689892868125282324067958642877799650207420067412610539545412985654176383383297658752854730966067094247827900328928627697224830617727615006680396701785647673000198146912880246391807107424587631237548272517178672329643683434632127651125809512348847475463121414755443072884129615432303623346988493335582927724095318651291426449451611725314367916765907585722323351700910556605320377731691348891199859109865947814000938219403187651750561203917138770470881572978513875216434446249617104374223416931716173054009298169271207561667461250436698496202276752350473412097105727009954321413576264923549090299611341361027215547318065559370464523721025687861542828168793073454699897258767650040951238767189876453042392186104915815103270256392983946059023111369100717246591566298800263492013848489376617622952478689699805085741447882356872477979172998465701561610717059358833260607769547668749738445712628681835580247063299825213849018866020495070962153410466006379228071171974365495004975477509693057230199559050858279715772872394226615355432168214118129632951376214081218719369162774607112767374083479356532366116859591038780523467676729093971569482404232756218530160593138315189390967797769848180741672867930477519901885208322361136653568248875384941301671974028652142844600458924088013996807420370362567689839841301852587211812463726593169685436975785796856866120121125927667925423038634162616821161924304519950534934885095325397596891640609150597522568765581083291559812421472142972105702648012090535793238387086488056819353734708956646249115189333656300335951396403706560277164617330117075258511031497641555668048223170434131239704623727855106757709688682371946790795012242908324940019718445608691840153331339397168817379604636515434375597610917819271601395434236743096187822764415281029408411091459877168534834179371423055893683997090699431586436391713873645131617913531388263957514450488856867672925980333944629122730312888044700804099408431517729371031880324920393623532270015252433245087771563076252717147725735242067106629738211947783541963733503209316715348524387316554157562964307721306828084483116595541387251638941513791915449338307289163696558638365232437181027024263854750655708950621387513689452446304700481522285606681009910029511786465302754406080113927579353823786627750700449182424783907547552300252500318310431252666014174803338286189890161853384865130389818999790473521741294155490736836502924262449917032427837342714127375544945697040962403819102956080434456894703883743406407848144614403853938181531662492412547101650664295435815956066716223747133438642960775496280987384276819597436073694081357963625216292143580249465293875783628630574196571277650912596050069889470548198736336981292780195541663008560674941273170407976850140767311132116978541166638940440048706177226769582510143148963625780383710454365906720293022068940708905084573601864027331359130739628251489422527056622817413141893990026299737749535920316138289811029682060000510613125711414162420184169760620803411656374088946496972603656846504986727657463723762300561977938229105424378044533053130674991524189043637113727126985690375685575586522131657128736701912063135568460399571905182058957883471944686185135107600971212870728658009009576731986856609362626629670924339469808299220338298704359074921002619406289911088804665537937611884470616629967046568682881909984640205604080095777470873770493647321904674084627707727666205665446770399191353553586699620676394616524502968758019479151441071731895861846360824967343870833793191550967125367512106591555929681738667733057222258993865431597315003421283409037118216830027704557504823103878302221551584166797136745304586325278926631368664136962101791347382784550496334367870507523187154054021398862537405874547747454076317876365919278472001801687370652261542260982590932311480810477583839912613048629630116727515016345445978029585974120732581671639270200893284317256073455194391523061913997849547045931034362515097086467635014889117784281188210330100117487110221352609402805035353612386111012624685990042273743635392932787864097605979139498253131518523812124440408909043147528504834012916596523005303399244768475501593480576745803390374402167427601650810194361351258327689002714265538742302570105306506937207862498409533690170696949405224342336531360943522065357166303798271988205608245049224289593780387667603523077527193469823073826276535712543173859765292587101660401561518894100523852121304699190126300805281642367398700859186778720961368954722997180729483265119404651078568631864654806466596170443917693282907487250865311536689096099664799632616565615793876557398857254617788859367119470751658861706414875742995168075409305613030064191557646042121702556185426537646993296533470626465918209804692406071978513483550989354675591695190316558598083798515792133681430266633019821964853758586408141627545955544541692629366903249477443178559116326965882412916618045112228789038547247371148391088088120998736379459412276446922635389815169362737744798709504826842076206899048046456239447301651684324729635438354742327869677831893505669518527778385226649356327454558039108910609170726230428700400857190601461498833865399560478901070278111277232495431308641298180725715809406547670794791836435306363203052130240217448664562895314375628248211949092205839326251873475464749698429502953900057721933442133756633260964179672449294594484092021971646997338437232061069829306945236049083088849725878955491643298724088703145576135802813051601047636951230794206891091708887597083807719272823331100631724683503873755344396333797110323711422949662369537958809596042289904696203369457808726274933136007897565558362411283297748073132916852571612823120559982839192936057138219684817997804544973710917580874460298023016273423661972519748234696938310292671903483749030327193099816635748057103322861866306153342603900305826036680143259303485417462200974375726810588135527247879969593022304505359232030430935624141737400706544549695361216634802404349407544234167628678846088177930790878793030095378254288991649892215964014821004676071371804207034844599531459055424762524277651356103460549325795179026400355347483586225262051437541287369178935338742390897460465619757127214138023914399903207535706367210173964302434552007865313295169319997461294876064956551745884418097647016688891198573510770727787516362647416914648269344206557909555597968005700858656764646218065644740404137936972909475784341265815181262689427876418672332734706362166234887323295043365916442844725395181417522090598010307287761163817626417775239839898263998121158941852610913030296804277326179401473631228820258474399411193184620499540493367268662394677322620152364833484393881781200578030456640408905557714521536945203696396092529635172248556915742653496159203574469247819103672861577423060071335015855823643840940992699086022785926312572131912519741569130137389556478734631755333689946339759184411057674345882686876333861812886345255138684080005990389305611388281902460587788774108864149323287951731758847694387860467213058796275599991474071861310498044849704702329012600298298983759530458959456733336164920248127242178244535279197189442142086728773473128739053643525256697282614974229909424946199874093665807461709177866882668657521665169296993782184599040471593570282814015171475699626399502646611689700143019178967222828986343624003806417731901328357728133418798358096975390682268038576000909453991434435097302051004192366419760663610857627047301061217456764563946432758968822840052451219904925804082600219655168505263165247541927779553403159219149863244913705454765417899105316293300032607403106373661088580841953411071882955746737715305328386718435306993645495931976399999079649442630788584658307967045605197335543117718998639551598063844173750304780073218766959676036392370712556462136069636374333535057138821013067293530483637495685021070271533460474366675980195323741091871193420372377656721216309718601848734749058339142574893319574514773192580663946284890142764632940128085858135803218357116552511410837880663648651749178724901077617127342737503251935553781942710243968125628161052862156211819159461806961236900609086705731532674766546979860430585457348484019662315702856692570946859805940906871525260735888506366499665112495899228992331803623609857990559903252048553488971607661854007541648275521453530869732759126785127058624794705977633921623804412152124678418395116569855933525178874762628527744358077775008350314480237697963249687376516002193873897099205936143216647187115818982455342484317292677207851671747295352508482991038185367850994232948474417645563632799912904210286590951616665871273642985527497255744429556569700845679732758761177688115486728137649738860959757326523767091391102952107828208277432498243981275307666323701138892239695612623351785474921812130534194761411010535168910999006967677914217228485414516278230030295433253814279339680843027325487010489382124833100503306511244654861825040528176474006797512411301861886858564595686098973436089524364032943778712323695896767248664414007735713717062709487683891168534372075666566784003205072132050161316115669782209551316091139617498439710298965336688999169843332018917401818312120769104640005994910443769596162512769817238759893986543318402795189163522324465128922006928519086781039045899854976221902380503977039998172190633595867199600053211550270723667815103203013140935179980737830426242657096111271299204594139000747183313604705392454008001510501755240064555616777054260601988070908489471052021251707491263092526053602999481953709924269192216252694230435025679681971486181431969207793278242521293697475740260192311168023663423091283760889768279279808828785628480143816291831592158974308638335634930519563973202323377804555811607822921342103674603451992437005559104102127146723724488482845470066912735746798021590209094880222118396418231734006232754450770075061963898911072570950293048482303688882457179556007331316408983450108146646019202438363885495855376160111275468750713067054500169438829305625260656848764382455394908272303640452649828427794700755420658735782674461743226700285999099115791052335177286518434524602393247923775636964015474798249610645289504439496065205801448379259593849285010411708692636759575222671718859818569419232898544631344049278381114172515778770654782294622642354224618005712107406816954096211245330770447890912385689367532892509950965902932754722914020839912815031754313452873150017030440246883299773298525239383700481061510627485003289016654061461415877084460156075729759661247349507928638652570056314626764836056250684592614467730671195333967386080839886777758051589376704954096207377184739267255952540826993427557260235278280841134620259764790981138425543809209826399352244760110237753938256962727980294662767570820628111375192633638913860079495986787316648439370515211769630056140881161389038932790292789674513333418508862890228521138549637262136677465035131230432294995560014983993315405520300743657732616737982602094648968367169571619167019047825018281630478558203792769740105786086359582649396907531094429924143626647059328644390707628188063139242388742507519569314778030495059124335347698481893064898189156415823477209946879559529815463243646201740758814991996902503608901318039694223539977379509253148406300477324972086737512305840533620771228406478228273559654911437391683328635558695322306875806626955190508686416726159490935083614177092869139282919013612254189835277538454950147760636535459287229127337995977623810139412462635643542436525117237572075617107942709540396648386278705828498236981532074355127921936605650424821401178989581736173130228414666971781135429019941932072080355542212926246377188702750000873862096053553849667734555871090581329678275244515275610319189771280063529614195688092282955494625542537228401274491078143921163383912511760869186972101152524108701483860156244823822868324887248604821274997155697576816279254197951291656049288792306760558871507185896148659075804588480132243995773782030803934771489256633237411097537894349163483300101866389954848462247182706427704124937482912901064873473684274468421034386873619420916064449132458567885455663269576583403658831542493346077837002795889465634998752603920107187933815895251598500114955422655478232349442737338028463980693204530662941148627956919216912247602614498783888382317681394927195352150172674516413194511423317165651376552757080230341973866753217053935148802921906573325957398764115478035780198043374731334714859054458542493062173011970098868259059653097448782544865135285645448715749854358638827837781590156752213840293363266315454596122653433760797120622921786020696521872841513521353850707067985757980255598814895519443333952895687377207697614326898269144448681673953080387939048616336603628386653804221464855119195101246968814372901071885554436893127083093497247730481746864942613054317360596448446831322202698130709767132731239560701249277613067573876583664362550258804098011654781874746819071216384099590368850499710555763626164356967306162396436507627679528820834859175563819862381348293306662590443392070407716524950758664964100981052486596489740873056485810368087689314856728473290035716879170861641813203313858085352423967460931004314034267634665619072737307196709914949034462806007910424681921267807194196764322229878222977517121062554571726351844785337641564912029851557156864415010192083105752075414545426281286298598025637922885985285778769684407354768725193506972726169837572275911160975094213744805426595748366638391279003734359823545711814828727282401369491371872343195169953686589567494083339771125026805880346397289600459513012783252995216139074689414167278967783170772057615544900852978851226381337325969121383600541590902658281619237802904689675813252236033458044135033953941778448920500579890716414399591444700389983074312333882704398135735818121863949356705724255601965724637139299960964090892440043217589846611874652522536240511589471853208454222306037331611854225919575346975769527685476778575330338296448291739220192347878947098168724255411206555928334998802552589475986690703950787841452403258191780955980755878740293428745259519821520002010040278410004590556372222938188514907892384962857347075379889919365754792669730209989543439635434844661764872534153420829291651198066039070072901799934466846758860572928687317302410149856817094432157744824322549516327987042767296107630541649636373188718505564961976547573077069438796535693174857453734434834671687044231344444505629163518560589759285572718551110515645857065339311864947419210686230990385484081643054186384621516500393984941598148172437123474841418544163692196284388359985175149199368716084953203096085873442518538636812800646005047540816205772753370086780814936752322910756649267681776296934746655271736054118103266251374023218465232165559255251042273489240732485850720847241097521329681978858488559873614882416521349391036114651876834761255502155057569440509836745049199990764307438332651718173196413178653898644445374080333735321338844281851847095713067936055417672953728992199548193241795296730066427712896077069217527602377353873704094357852881458648525127269916087214527708209185833415980568981805705215163203716965002915426567736148106503841834435717921062814592343562854241271025687691022946739846465169221527346244550511467099915805866460010999515037668195887622064043981294601789555231054670376850244046870662052127156180699010963056295048145548107412812137714740345416229983933380420926029547780753224157654958373602358491277731414544236263220697765630360179254376890472554048510048459046313197479886227416026154901825848428498768616914612302146875154195296498139518008177784327124520484220845400519593294537409807337888948110986283404433094337628477608586668356791284423240561066218657968665552743389939732764614597549039545155800479956564360839447663705137171689595378138702116128447128155760636352650535727207725780865835195931169419307134849274245520367260263138992895395311251299234299807981043968128907230075123340125971065413160707513587294233622636327759969841700915230590686109078368249679921861676625852660026591960869935116910652971697252079706393072396325984014000586314430803920804746487299889502449824019660533345486539483187509614350761472420008035446629839422426499236301102583391404498035846200425736164999666198485861236680326001816767295925427120434658892515260630807520654817228682944348649913629587382619101542888958519060844008953155049844894322478071913482753667109755075332297133346054854651341171162309470478556270581153620350652131455309010404082430782635793758388654015565585562753047553020833466863440299909662056811735303593393256146518150119112571604095933783028130477934871530609865381955915215626445469874102503096792850012026465679615165426153664421479840222023244537869466129984850034636890238657288339736707897040560272382943211604557587331030334670788905142463062446135387124541961613974167378120458898311112017988338839684187801619914552655126282890903736576651678509238646782938196416647453262268999136404588266599699929209377693086136628386436202286453199482967838186424650196578182476058915968407860891580260477094564536648339153977674314716419653252355706685889940440931241665179884309825085144180112530330969572762818264437297251333103832440653332711732936190117221214267306087582055948363542117363524206934835836679869174701777006590410506548973275365315335758554693551503115473767930306396565304574082628740124994387732131793051815005961940057071125459796700379588724955557368992390875232974317260582156702172018668300442254082778011827455890449827514931544869340292699633787357737728296063691896164137590618721129787167366417911892323695989135868357219578272295592671114912028986045015132839757163777870102960936698776056072365818246189407699358727886063805730799968933811696511572490203211825208440025992838301647898610538128913709190140422220127892959569024739833042932521048829275416179020080903251527346889316705670430473011726498419782833679732758937681188015340671890090011806351468061059202171555150704253150873241794104917242095860962935974521666614179878983837340177143170757730612082543976955954644168697743090410028197765540423553908353075281108793794312565762618106945770996239103201966087656929534343739156254851875956909613526589759472707117328303397425445087936451568205238789071698823885140999712626398642194676180683433385451485379564141188425804876497147341252471036587708674419387003856435111290723126129589190156476613541457464910322642302082922277607075622604815615924802839292419580693127290633658394806180671678432611451786795435510405076884488860044780499223194035045639330663906124031917990499744257188752403089696325652166479050423174010038392032712584395288058132815998420408699871633453682473214973511019545652402493505958181942513612876895769164594475642403466724915315155364201005808427290484896409257765254801532708953070225450442543761302433895397368339574704505780654335221277169514658291711345120088278882203985423865170059936281075974445678696219755591633068127010800893955952407303426642593301583781330836063051782387242040117725410718457211260902884381781976595730152754129561705899884043929658848888536669140253851454094698315554779402598053068299912503751522796122704378985061960485220486200019039951163910230259535512772718349707880928250462880614218218313867115238511184008394574638882067320934533510998552193487267682405269196488366832730332030209369668808462778658428929848758236197649660524363380725673259697253259536864741271629909471567703168928824445363041827514220599323565601476128133161746432896130703780875020116491814554374840801666748244235939315444394330481502253383752406490452789901694318956903541740386453340828484038331367369897652281272119875290290409353824566078146405023826306680746665480528623006095031707577954431151544858021561431877292532805349209134448728618441440783314802264097081505390956315584636028189643019721488853036608921254978403535344899433121952507226987432848511299803428294927073383866808793477447331114775503735520747628813222478842162112327962100191404424842935363757650143134846316270894935684808969298867552015932695737820714839076892589452959117274229316596966839505015689730400592655723681632729943699457698026927071755064927264034095088664720854882088736460107455014480475391495591665867528342483047869955678928031624941946640529785382086969218011190007009040352930441281616621936265152665987320005859782658381722049254068220725851471018052087886423798357289747433397046843412197036150629136109227367108592185400969185399925841845372197710761671673886867510646124081025724894356902866662785513898614308983736164529930554308911366695542542318382738132989542918060409685896014300964272380764133304902588081819326988050148553432077624803269102081208235651707623847155694665546131489040726790718331796933164681656785756497569374818310605790855977650219887207805603909271958620692542466250599821727807124071218051818009310991200837311248606757477029871379997766119998371188298327087864271930906762415936366079711730263179315998215440728589262516597317261634463125423697678884766520702566107300530643847332378638225937654714081850732376002915336108146757800910897020638944854816740636576915133040229212206748722883714208398571685485227552057296790501786281769799997143892615263481900007702799678497134940497678394632178089672769207662366987896405895326226412022913790217114263468645991890421518040757982193288804988805659524606888434195724183373946239882101429491748558790529081205347505872243769577264949472774144750113042325863971752513493595415548325632860707901074109110609220403230072606824704582259142566959758744758250937913899176701930388537976990300761511040866025399513609071040562541576100823499720207878606262493782170115769586150614199871413286052261499751407546935433115656263504574051322856938731944038977547278045870804491277629571470142558968991227576453095860152657638842641449847043527271021641357523275524652256396116652263614817861356645312545753536778410488985460753062019841633990081603637839654177279549869763262013631185555271884208214498096806663972508527327843957466124593259491740645353488303596754311452346052495352064801355338038044908553859569160094974058014790962671686365797867909218030382689005328664413545971197938078802535306404862294002570092886160023146725118648643562726379243110359039136656194301741738990247064563055786206159990697791923534644214823122154480797928726684576728288914714223927418125059053727934581399701001632084237330480378977314113908413513790911185472956241871372774037066754976445951731112940907148173228565944471698494366611796704613991005895101493333425169406813267621031319787425538084725259790415140273606449888607794102031243160041030781770383354694624630880765757771518492000294840048305522973417474698630415718831035419790208689434483128045951371451487704097163067304859462922058994283257523586379352107565002154546805658899190617309644099080914032917277108311122499139129321594413666375012699872685646408298276708799864283505341050293301796100057766636400975672035620181668671009970714657595748353362535823583243003974667787393566896122610340710429218851445508188361724958597918151822996813277399862012449726593652951469557141524193451976999599866917889674911225782101808954992120940495222605524711934987372831748455274041109992838491736458329936402821327242538318671345449422891268906336517732439327084210250890100807424616616574495669083887914581732441258735017665849215074881436117907880928940362450131202523144759787137346614804840585044198522775733142821966414910993352483846856954892729860354347124999335315841706507703449123950498725085915961535087938343277937285964538114930684674142357779188513875135609819297616265586594179020390901124523621236323975549175115739177257139240518424157117877911195935696690022005005448029534062212469745882896937367241436389512824147537976062681182806896892550503569410391726473790900134291976558285049840778948705061423051719673705393517855425645712856717504462889226819764987599094558370706300176774568804092597092419557725873838891305964257607663319505050232906200680277349990448427891421368285628524312472523921449460290376298825723088442470774209590185954071894397445857071356249398439150064691265721984799105903151596245560694044822624349054826765809817316899392884654364978365876460193524299341314754747958828853707986193939587908062339571404470939161868641400585119393180582571737851619304186384172117932447011722680223608137618947511492148489815243994430377338373174742379183269968554937800030338502318816098518571907292553143616018523021537003151474040354891210616328056087882402808774086868287943967577363473473113664470077287934270838850831692184570215945122121113903173907809613543117236475519269007256969954959808124342443396506938456650194251532585434476535663740697289901065804096109898212729927690679544357466931264510523496585857707431861045661979549396537781744448091717780691412051801915772306833916349433768579063992644684158593682242975799516921671496676963398326042839143658099117293903278191454830773555806638280810787344270492583147933672807596158449602084587977429863408567709148635842247024993173071708630292345136025983724102066422110528364720597365991966331787022184664427144631964848591303715797924343923452317055141943365294975517648979289570730143543778883145767729876158151821626375268320256446548095679246816035590956999708996236083506245645854334006330627370029552522351164761439335395010221540181994363786675977496860222610986877920679134493012166569356647456247486750591741720195606218322581731168524116729848001408506055729301926368317130411291567992369409345916264139234169599508342661716744799103894058550311761155637667205137225698684895568796648900401678996252830650115529728434932936916625982564970763720440688854000429372447864106888477597509647778208093603778804398596201637651626249826100230864508121037831991917704667850047534996202021428421717232983948585334958240183035040825566776160345039062433958138841345195050873725051733117352171666425783273385123446060149788365092703743380287328128218580382039811694180954264750011726231303303475730857817736567157961997020973297833620970019973578473027061095219371451438273845307007897392160870379319304595905851237310395775238428139720673156856958453315426674740630549170955335095167311497259910251481744383792698222223802737086074659151895612767686672899732222989601964510975898279504654606071532042276047137359976687446813739932612175668332307595029494483151545774258494358960630756192110824831839907299722957420852373574975493316313200856258214822484868921037689400511224128566712125990979544255689066813491512940015004290858505272615764432078869515987174233719646126580013958628870916739202102491303353188911642312539588484081999851157541887214553659329015665019238055871720971126966708640963913242490193227187184592371453366219050569554173565621924492284527441779122925019828125767110619889521731204022020831550121659347829730291891466581232097693493031318844101500410701899955459829113513617582425325782587146619044015619538889220936476270616054653861257755288271618229673449886688637793019595917294584428330477834261017488322377281786284651682870961754145539728075929513516300354267878659850493765909370890109926537410460656521130156204272998545684557827079392473454961130271702498816537805147475087474766559477406215324937156198105589385020836876366912369371278485799881134372300795944082397237213796494664369919690925513522098984190080129194784518365514941826253930107581767346154568122807850214941981912474471797016253645860100060578168651131500585930721339497136576803070035387438429672060692650684411959955379544887600273804669763304068030233988569626323343711964325848364510744371379292063037677113984072382120325923876989989425948093179068777003949506495653070962329769335970639343555831765534434883979887113237203500221530687331227136533491397920909679800568500377780863836112982600748474992009425259072845656218698203099316942504873667857190403807863883468242650077473224066863558050741238316306002752531244805104290266753400061684613362084703115530426770580734658909517407214486306073299949370681505541522576044120830508318167375488899761913504947402526412522920826113497230443463606698686960597327929988019211418863111307840787445686282867094362998628076607437215672922827904456013265689625714485453872907923242779942642213603405243608210715257680093560574267339697774036848066734352234969663815111721646452198195265781077263955063669088059244945590251579992185233986649112257800877318164920585868008400405638475236131360776508580042755016208557502997168791826724494269682546506027044953981579966795102366655771547418585753237128339158690495264384767315972968320548551837975482965218504947665783788696935579895320356034663251450926666565398914942454767015084802177942660627592684503633080571750872464187899725138897481305461283079681864922460302512412742242454263616517536090393520125184232341727311524218151898740309414233242224257124240194672151076808979830296655566508029720079206434230855705123384605642246298271737275156191523258141288924188969409945086237862558884799928517513022023325739195287274985552003192333142984000029534782274754277408705517821185067749138915887389400121219917946663121659724446555020904048829060301023387846991798217198690414555219256140605983101928880352589539209718091138505454490201065610192764847279548752015540842176993547665106287825542279166118066500685920214882317103306204289738138980074589043355640364562146807370454572835718792198447340171610934154055320356139946885079715677220604156373212189536492956265146797058857238468312992513888996504296860590742684234589826262498799518883221907434582782241096228429871112061466821087932361036009277324828711790643348424311999854470455811806437279467408207330240240822791864719854860717521236970668021389726869287851440057272653209570515556032761063802693540901173671291779123850988533881412300868481118431388635697867269549416169018169782081879882741149941994213174137666755416613274686225854634345876313897235636154536473065758066611462059514900174854309146615655500179424215289771788705411748414550080375299497982786159753498722941643840319926571192888609099550756947422721745560275692626013007233620663366251855053371241211887551423894615920857840521152481711652972199554752805248168795114076580617467132868573744906146578613679765844667819192863413480882871183386392754173476974347572744341142169334425458988569867790319551528723525422269099055114472578964955114223272269718850886134123763790931420750551746232226494000764446568577633461391073526538007494086764711796075723046887820637377600210642401857777591078813762849240458242698011018356265685245165219933175878062943538449364826521270733929929028883142921371514436632458186778183947577603114634802436492956447469906385314272963087699895453042321776104309975766207307867194913919227901597793450452367745672808475287794239226616458578097000129078582629770990489131777890292886957356780806430897263280758630193657985721068409737441699501688085144876008511927616836117291481721738627095546950062488693828136361147854365293638449284338387168383287308426546269666816696417972967653566517324806152124613181353522895724769629145186490814865145182320289852957599376530137408752287354679433126213957690757732700402850963740828976137643554640563628788134742018132860486369352176519499000592426298773284142958637484572549573222781289622348543173085587476252546026446100518990378806569907489042938864143970866826822732065634436377452575095449173541115113472011541441586136483071968334914874621604566565925455695306064987798849417939345576531946730191422214736832819912797943581759245901102707682437994588058823499087437584250871745642053211187070421038062488747341602578676389363338700526090550440418735964895525069153088603276374986152700355015158697223960230496920614747664965996877262082273807254664991017493482292709942556148207289135973123043829535393633303476900402095098322874211502125459970786692945498670352718624742128031564667954792818449196947699534405954238131348390547848730151432671132164020731516079774630969108158785851624144454027671964840290387876785825558524819611502146557661165203330929214337843357392729830249765020758977108300812246119504939648817899362725428553551744081341315590561795781738453235090162343178057916137071435805430673854769333695993272698171076815592805868115573307857784231874535115083480724805384438612736992887616614075918855200294064852312571199952977693069738879644193772550340295476079439941326080645575107172478775294562692175588297506856216756079978326758905980406169700983798606539867410770952792258093679640692368709180455701852369556659295067763085237433533084510650978673271707470342107776734818329669516895165893435271666973222761058937142470669211728720632772480234587346414586967354842625989384189149733558942097232553936986258192438447652089800821388413165167014573176721876182775902452415169933006587010076204655112851351645014121707789720919870058639171071679143677953107758679456462840695075373212817307346367580684076094857576079787861100956567287535348881286023035938875125369794094581317265237318404209891612471507794246904848279748461031864150707779694114326490334620772108683978075842794394615416096466823017069403563744104687357478806782824059361681313892340430617274864940179907727334138548553582853737087823470603900602361987186184814940611046727957215306037906087994512883957340632671590459346961196606813286204435166178801226970452266188445824247454837932218524491632666971509074252718289508146178163311143160483326473735837189498267202356823848616179080849572292613280665336694425095711047380258372352649809006583579328251015109929893018968370993172704930716713229006366291015353360470297366959519090184777890971903926108902748769372640145250734480647353994892841588770309273624020928421394777831316193640293487110572372742913705007737718004683969823594133177163912158614927973788640284110392947844890673860122287252750528581116603052046740815723759014080890916734365040689542904569757149991887336143607816294838595429293286200027967441202985907049057857360489002906142744349393463174867838186484429704876173461833537910694362568867439462349842743413458828581814172681998979883816423226757312468942530694957852118470304556901313976027652688920424059133133351039828345232052064818364149976437907190595347531629720603469625238435533576952479827594660975854248811702756196045011711902571220242783563283072588884915320709518932087177422206101615156511705553801466268692892693827247166952948809338267811850813252091311405124869503789433866233392752425442174866853650962710905442545017816522952205220205163658418149989660998949993791484363868914676152968808602674323338023798252049333829149749327561156822155595131900231577660631093860224385944007387757077106897887877015390753178000226986806396466944795536147370097836885659841393071479941177174094492269042746305455316846252589002187479896329967129311291170627671978989342079411625083321485196797351209344152051078004656856419507359018263431888526381242676641552088990612563099464105273007110842467449335423401848337709734240460948349074896461425368760452065626554548422017649120552827948475704955816274567069435867992812592635715626139135048544799696800443173222506477522579890117578261887306536389429165215394201556836692805492505641504549456471055228024390435444977275414045086369070093636906430381378992235994165388001766160828326377245056560120352051473991952703220230873148938234259573331451708038377877387750971654609640013302978348328992837260697768286130608336185174354041456074963538517100607311519098592458519929431882352587896115009972354435796465937659999829005721746957659450428997804475034094808995012827249042409697421440867183972235575362718816438880438574731849561331530598804993257744359709831523370025981380526356295395424004873183699945661953992625490694245660179913391254413571539138602052485750545903742889075585539013376330361935568514660068501348358524611440431033361636386158144465270926239250788496480695889216983191286674065342487414394127703509534852720150164798652062782003138311724163468543303244666515680162023042487988841793550019135337060009601019582827751881259723146150023362928495500826547118461304242374147450211757989890046086488356058044827562544078260697146314062615440491938551048118387132311400793121795099002313599356323041900606974073192085712690964988543403300452364319447435032936545412592337445063398468693057706792618573365234492084201826345312240673614607246983484168671314667953846958933007920440450509413250127145576915272090278853446943898526090405184164787769021230944662263301029824326896988135435386630372045034743799230841134687265414886753316421307117789367334426847387014706436100094510407891524458221674236333132165660538060036853615160439639426452038739171640779349350517594659154126475824731057737392545830255519651566037066099049971608560425176984375314114862414501362202550641935442640917775214125270094605836006788859126757453860094902294907989765991185019128457529984945049627841336309956495122995609485513116727997289409079572219346890930109795666885632560199278523092012974381891546712937948690792261000818344980452811463618136786001499802170987574387396643045708952956608773512565771660821130610393594731503390510662107007827072766476965772951175065297617090399477552267268408541271236638814151679141600007530310799380674056064540837782573188155623505556759724538273397178604247773231371597174009636076047267416703236149624133698937588255772376731388951216820367240344299676281277100222998719141372358213669324248549157589874313698225923225074104809348697196455825699760153556638433325695141604987482306516969357763643374748110887770862000879021636310440317378894910120066863993886067468397489088016391627626189359981067092928692606755441729989682580514179239885189424377962675970293640246119041680221146997489555309433849940134758961755711293792668255304445595361111806261627640401335114115533000232583466180294883975163751364241288495269481671159585498383046873502708476000860460933359167927128934831373330140296972770745617273244152255000512431469320954243609088387205718702060041650522923765242695016546985013542995697375202794411042195643607143199844995682347454001837784002316207137603684330580798923889932930766975408454881824610055781646575566475735023269669538426375822188352087915734096095292562953673595411127594615500273620034045282456302946470074322790735196955550056580485570558032611124948665603882657846826919820742515240263617074156213149428846155119676400024231606234344947317038994919875261172181990234240081626238324144899211260387723162516082833241429575612108396546834801305665028147782210541918193405658589831601312586071551216039053003215231984333165991664940349143197060211468784588660194702716071207455103485071112916446306694636178005727206309175046184662269472462306727099240559744742185658950547482324210556329775577407998635551462307468549071083318448710492161678934938284328111910898858194073683031996161642792782351517838445963230980019818054442539367868458154060328202499377045693912272141515858131322577842510233128141025872958337035104185425784388481153119553553894499606171077821144728636701073888607288398264860748485797980758129634057534578672717624513878166345998620709004946952856385966969330569240831656401078848389786729723918317260196427354894025703597770756174441141445205839223909081558311385850249614750700980730914406126509278951234287264258272795639794501443197492302444570688988777851740663730570198663867387161547159993756242038771226020293258913628726808510726937788122170014411796500595681058663367426394603955542581095000963330485793846077873373461374979318637940810283378754911006249351268296147238550631027188055204301928924761381031871066602862996699184896376511223403512246999417502855076497556113530436453743259014289182524879663802960616187417604067982969198562460689343122023996565134923439944842039770846356510124455851769110977654863113322172836143881705203516972859673512803769820031436502179950293558370802164611682979504375502100691771141990918106244356326260511367388964535311518036511695713999780018050005437436840357985221477116622721038042039923062988302435985769760394486403491358932930796205652905832075831039747120973274027817578761988028486714901593423762403342597262865272460806904621909714427094376073870898762678375828831224727232117787398533992514946919438422227416898016765619687311244322170677820357022267851903843956202675940068434710010947301899143225897454079560069995006224099980868986615244631774263981899396109500487003971030784605064320117211478035462382677887183744131156060201415610850768226265138808984339010314201395127689693398064945760915030697437319438909431372747633427680081192585123390333699472708994568477735021520342286712517731664172213864152630771251162455846778899549627808196161149740909062141840367093325836930430089726821135344202212168208102180761735722903741973176819099416650124417935641261184248566899776847754867307306310203036345684240528070492828981610775035146470828249931025304671973326719712345712147156725014233956252590326675798790912269255596714138941077261327233042152438623568234512093780067990747711670350103170771842748355354626294055615958417279037739175374763251176102208997990634738560281894629049169799521323366783935329777210240695362550143431725119202334005222700167693759883706618587077790010392636157989342021954179194718566763690441927751468806225477415123429202644839675790707580467007700280763060717772616590183235614352334279570470479615340786577909362029208790998960551590000353612747744900462879788774288782969742093689681346151468145613215503605658422783066355954656443375130461011954183335064892786010059172602148980336702793828985376494570339163478861461816537568649539647363660463801937823900385453866312130418880238237824155315459028902336031655777241134109430944207426150799803462523969267069299139821812080076952444865462598969501279819016928494613520353368340891022537202316411457128375004455773808953814821780494606118633644303465900727347822193281142874906388925717382760762415213786094248888840840944212540915350141393987395982560501480017353056942649410733455779084612952701639169040173453298934511969904885561168559011345117323612019119452849458752994494729312092208918329749544633486544920321262564441677547608057658027384343565585733797729619652494780558589673246264126696186740928023459750174467444358766560874418341343610572339275266123953777171055342293851415195046136463877841367088893750326725483617623798739120148938461026335497238049396964624993091402218075710563422013480323327043375404049182727121482102779538264520100403346559608053512280253334266945685478724133697173704493682102664262201307143929950502460980157994777101789961431579193751032694221659578092261683338335159089052954244100232313553225129498233367911017234361843748384697854580752750731403494170534865234931448566105242110075062793015583190157433048093774177738421280620910135155371257140639246484325876618395380684526648567572401497527391628357249791437702447847554323807970262274662387771777819982864343113783270213053369383572936004492267553549549501812707781771419548050086126575252822581120590439506105597196888229197906549614958600521011865417535270770638047038987714651809089849511354138747929684296302538607481049452702890883626927914370570696316630113151352537769970574049457986319755299625095308265144201802219833343308608890725442760520218286544749571035065424819115124033341380376604598137649732868245414995781550129970833171766576263527792923614529170163735561556344846170401570690371642638305959379569660330850229828570287450353661979679647252790797921023801604785840779483894795010870218646947688805293448672494221547201721122819484788030598530244385218489345586478736474538658946330977886094194665781002131064041542966363395894912619935473464422127066475247545878098662902038966330583426447151826583200598321882015092241259644575121866819385713578449727782000245187495306182854508815401465027879376289410598385582739234948337995014270152024859909062558578095279712438467170372656849907404489770566711747015147673986327756379480930675695458090898980480033079028970379492763183725262248718454954995424355881683114821854933115631741736661958169297826453401323739123937378154313666827184215795659615374958939166775053628216208701173056233142923072027313972482070526945013631906045799658368823774506181590305031543301311105755342252946483480949472883802450314035758854418264850682239102979801009535687970289308654035577240590741997423984046740583246545623577666183241029379225779110982137951333804974782352793922723576062765467034160480779946089737355164681834528023852154424966458360555540678182412398786885175968956097542294865372148927719638546081875555174543499621383053606324361400318756766030618294883162409270337069361955952142047020907811962846884843502791722713510342856704242746994957172508640191018043938460546309519290310800405719332267082334135000836426636720307948658661713083030130423821013062446849118919740017307715318928608760130822126615817093107566085028062535794307329174635128022444482168052389198965657787901220911414455989467616979696735925418910665769157620914381607370145754376097769901394947312004460056937724233973371623069889209603704799066157193353399822888541399427783200469324596015300039055402470623304074996654963209392723340957067321365978237190052931677881820235219998984430385222130009332991876080152515463636525093965945451747522969029977967019474239691960233217977904425661884650194566557311633572508436206214048803887496630216424441331500146817014091665023704806616719628321335008680593102427897785624937519637258112124532853393384127792702444257426170140676734921417581807150110985345325067939126354938956622715385559203141035769961313129102524950971235444905600795676026165410665430913881412079879504902627479712794905854248749573294699341024070389643862913198216438289242595122202474318589340204894554614130828091172052932768929316162656796705053867409311331200320633340392160733707114704945904884672032176409296444150644631426299192756696899434199572008227047352366632470141683591597033461138809479816077861620761330851077941120343298420880212023754002871813827241962656484784547586408512695230835492564150605929259982035260456472080065904992735493989244882244380514081438746613653007636910175797988449224343808615215662761747082177976847328559737934246838604289393446565266803269447560654432594344301075249152184600911308847384370073925501373847435118836893763045896630071576298816532062248160753288659126060206207590673268837371956510859874008589845477491286587267309289435916384185639144889319141945893400987085472196351079602947930587488132621833037398731211955517566821292840027794840744430730286430455350646112384694709383231337729147417216418742641249880361993035071721064251744008888366876334300017098332710185039857042970382071574384892348612960167331912408327838900321185942467848005172457668533183209893347626429197271540025890162671224388142364395680290304196865871817587039130120396640749984336134088098887158806278067305582541993657376376342352270934641620893787537676841204019623018026812686003876289530117470458973965045332393622129805663358225766959259352359275176469277853513121814434666079517952360689420583985272636490026406836312786508938339047563218393000760124948972435427065760996191274738822892043915590685267775993468290615430979518343830824291092544431565094387941818753593399027508225937685435015770643570885248519673910953513929600241954168517102112935048098686950738438876833198542212013292799312235670729262160511438237788432468221218389366550597290432779900827248700835258147712102971938490582547501219102937147880819580304882849854320690314687112994890235472025502302966866232220573063025344287507413427461284478620562521127745693965173118092790674652772245566358250905489299474917006616628568596358945969424820369626050798726951125464981859727717510300963576371359002802036927159238047724399396714721358129607495548997089843590701996308006164004145574974706972478735876726083868428058960581905672456589614921693851006244910148012235157616749006396031875229206905578416673398374318647168922533259150293168967540391469080708073395281878675515368288465874589854666200603197303201586660555084904933290046201894662187757950501412967866619985334675949111688746833681851380892322579975795643497741352485842548678193669289956768509317089252498278522803199846408189289621150294343434358615304404473228753889477752511985649830350887644225416205613128331689641080175420431352701602933384475479318368888556941367069386182719983632142541736354444106965776075916388656118958527983958641399228109174470747063418391459143800288554702170463608928835556461432004102617241351659099357290837937131720151396851708037513832564074291537080906501443811147843916185049946624201124843363516766599983247707164812670430013154472486462679373934555235650419468561285376488611092540115307753998008139619364736175537019267319893729250024910641147523011580971885067761659929862958000447489239964183402345474912296581653132677014591295337394643080992158640852520063107332442638434684512474720795066685750779821505559224048390603293914367802686317103599724957646955938065048405926059048570134067075464366636247253927652322676628406554715678619449144949105533376725505780932365174379937962959605413663969841004542375075625930674668974204667570805802207276959090662882813837783357102819244985922783470480425787727854517043249525080278136414679429994620672298893236169333263465092511971255390576516110886401854941422841621895569113024674583986566962730157127175275477524216024029421064001971697429935636471641069018729950344315695512087503603438468978499734164074755033495566014755346464738603726350845341685589456888638032489307104406510445741219833164928762861270942465997427168188864944031766335378904140526802082383152499441579550722387845214764664269302298785436289013650823912712181778535154235821599819285079059359237037141676288544136278680273071542715236564215550170936856875243532167217198742285344162676767506757114496053385968727822544367938839476990597084898637025195261096209571027125288094831621651795325464281843243805656099988360141801102026090821929750342170328135399475814125737453065146189494249209616729543156379146123320479617027394631028979430063509891554166861566322671341316377811863953603370857193602497409328289892021125084321766296222204467532311963106986792330127605583240450575418729618802443745599262031994150255589043942508706873919487964847849673354419353866202435263258369688269186096557106702088729127482460090577770599073022786550737158880598935631741752630161733578027149960702075659871902670115153756082719685329567738428824468643719695024241967800340373982918993228564656158637688892430635235207327824228389951838858779477471906977031057401529645719660574992211129637807040144882339483723258991705578676595664843120775528274485244794502232395539044680004783952302337118261192227087200015772568961540175232574908425725150279917353137129087051541503973642254178834278537914385253004148054797378541195928877430415121276650805027891257843067173423175189621975687151992794304265078009454157525524846064526071646677802966256362184292094987496060146987792685207407824163856087021573342583140257797718395416046104231789059326661496125350040871968193755853876584585559710782737948687769351791012360973882010616662287655227792288492172896062332338416718075330333403456104892824182519218305298488495152213893885096449906760196414706661064715512563140756713014203837814356444595598422674096990286599849562804893456874778486062305281174988283221929158318394485362672551303191682504648346515599826726206980487444777814480304586481717113136059324785395980451638367327060844739185308484874731750008558675312986805728120866787405223654548701869165987994530632532800894547075067945981164295618462796914248883670903676821959373919485980283607826232157797409209747430060406405873826944460142665123928341729641229884703574009563513042863153484348619686438854482192619098944179501034663311845027305488240523184158654553756319968173150597786876710347931457619257022130258632434903533325644816234355151236351196343610781101827486886620832911278727817074175129672203766301630574161790794781905566363124996596486439514398523037087467942859291296303255877723233045268386675961636322238223580598489467244715226227096838381373827231701412078433944918549220932349585739988361660684034062847539628788509582574427078373770138543580953806752617056859347027280885763884119687900391830221367271727229279096290899916483649780575048382721661503308710143328485286135676376103735960850744438023871832756097501037337620378259173675295951637845759511928454558197648742648537934768900342139784846776070510903031578377747885785294900917910884681823679451979124145752547621035669429769300576564434480074598655975595409270673523801278793217478395682541990039415840077045823880753688678666228553688974710009302173857325170456748641962028983119494100790846943922573742508656439725348259871236563320258935601814426045012825361861047630918397318752564756527072718004228791905381400163825637476524128404415427455489869247125326922542859424875275417699649557489739571126830900112106784799174818198325645954020960349151743934263446051061555044112080196719167908939865966839871750345164917034637950201938598303943328615403084086863919074953226746105169443628098631859491651993153806913131487813956272808155353107519896223733846127058997209024108447288099105145372645228289274818390385614478746182012028807940209126649484034355555449385756930269050745921493081209528142171210879896997333438225990651256999740806811780322427449609792752182635068641388546855685526476036960892334929743447239696491203803191637799086582802236828431745178278743411972225421604138581310635653558395460386098148533794584214151098112286497455195411628326166743392798731277849571127565769788615477236852236350306750104140554572486167086085783513908049593673563341433423327736519561652066004438192091993194984030123262949093622750467351451577240112655823307740726380091392753668233957670348451289326268171175433269126204267629665051432364342656308402063980801504630081291081343209679538184901427631768928043645722048538105605745277571165065690646492942792346455435605992769566151718635281707951819526306429429484154674132381529593452994109409224073638897734734336291786647589347173614190066008131700174800893906755959849430838989305790345049073141825311268441300600847857474249651603068754815544257389389005306875402053652323617403566254111631376387952920425178641185245335419407153374746450027131458708775088824642901290103000598431540797603804048357903086254591987698230766726777858038718887040124152775001084901959241389334205266319082456719483291807110775882205179709464312826717704602682239666270974003650093530642965999922726678943509163931378295821604570392807440295716005397775233846285001575605218359844556762161107897415443945513887159111551890003132373344279048820786243343531755281086903525769766361689229670125370055861790150186883306948989519638063287436296813828044161588078769878913889538953023934602507314928143663208153641047538771030087842476280306301803043990236170983388368242018814275427743769898904997576884876699966332339397742827484985028686260723126324169230843203285194125652644307508954178002336109842320525439953969031038747459865994058752474094722845648435565352253832550737306442407276015725581933647619430164970023026506354520278349925494805613148654237637074236740580829615130720940926731564296462138327616314382137144135564791219481163649622422166292150714253057715749781690435426563698632227672196804812564997405757630465032891980876355017776307514083920725945824522566815740050082372952545556346626554517006132859149406941137690973544996156663366856948070673174899300449227717976774591371026739568618916748176384871539888387622566397086216320132710120583677480427855805822440670796284292183518811132607650885746421504446080701528733912529262517130517238024279405875323807513228300575650708384124843947557097727519993750604700948135118121553267492847792953132816680739885698649945676665131047930570430191459571610238516441728903150636904424790580873727361312884567454145534736058808996687583304115910294664221093594410204161551922536331856193344387044470187189659851492382583400432280919862414093666353302423346964040605486281376022843572886075831607080854832340862271983821016480286011360761142659636505136174142886788231492689997552208596817828714465335910182548661874632636741142271747796028951522788385112630797211441406757926946548694256116611290009962302118518273740863023109733396265611612542606390326768409186962130742126114999861149987457175622643339470418386857800010832042169276680478411505643146165693333689086510678245906585536091263581938724043415154958797188195234318611823629613866027828972149212092614274948001654168797939130475043016945549195885691012892107681282827393278348188698453038344118656350581953780551054634377956777260970690078889535095211505614065939975868106682107248374756644631295121075313478223042062056017780730651663995625656474914476105181445161140667951107529488508313537604483547317611131902661012889975593386676326556636860892610392435472648901484572551661580891958000945293898373217402324494841648433194426001425650399968761050386883211316080728813069131953828694400290268232339637294350254226732897446409398194455856066050325073249168720182471500763307500195584238213898155037990193624104000385178298489326325465427838024023988778603954899272854140340832992349552553925756068877249675111798768749672664006443181918152383117830559049096329989291569005946860529206792426414664099892013012068350645835631288600061941598838803369845856457242490854152439774922214646272311971079457139025973959881079497308297346893043489269959038304904923302710594321710996135625171283292708096367057482231694015318552232168365722017751725786952008192655777577270751897422576158700255669609841684477087148077255240286351150839694943564443099784566427139715358141207121311872676883059764169910392138458039063712065184944937791400920788718906735579205336345802861525307628701195852062136182646373227810306284987873823264476280168206014716319830758831502680200527801802796580048347980539626262655273319501754868639825325032031445524071063051972281993120332447128354186892262143023122909086378765508471917513436348683349862459192900696529733137451723321137596166547926082963786795358128718109593975041610287101431374097169430610948929205525060224881690524355794958568239888221105308572878639416491885821457001037375320627546540330887329641186165010825784379944500939170630220967583572904513532038847245329986722653523542913838690943652178309219521022963824467453489747234348550018644954299982419632846349527199903774404028774106296820612156957966590565533243920636950477003464218840542980101657964560984875229105511925125724676484982062457205305418657361315911310973798404645783909143129340085839935171504374469386348275209410297638080958589504864897228948157801078114168829297395009605969771820840924062915884140885461951093514745877407722511900742854312838448177681110253901579348056125610748372607823241084331502688397821463246981118553689623006238757473554554968293818614104563777984362809422605456989009292175686337521246344231833068461451183631500873265475638635525614620171344830390614608716381057555836606817121925427366000332218619826347059985713211095215025359793117446777555358268332540443350647667652781516099365621309068769172024105074076326462317833338564875051537791317986766781806321638772202707881418464545503949172187517258585053703227470409504013239222609841995018352394780107656267948086680971084849742308901582350439228944356885130271884474890657154581261051141534294583380637754307812474857857828788421722756102424315250882556023683577737066179077259670963972742131910394180043240962485288638082643072360375822833402964788955935622199332730892026662771059580888924088490256401018687622901964543286148274715547859250965065673270240101264659020666402344961025547432043765496472492914842223794586144345097928640637472174142088651969713249177080654167728252466662258117153615558020407696416433354862391716622503050168566367103866889429372214706072662668496544873922658058187604634435603520593673347426887106026239828713202659219013631578173204808553664264189512496473696453844845242039599609478977701553695067494911605958955418189564763583535796896554094026572852364929216300907594967956087225957066325906021956288107581295806291112075557646481597967023657979010786108238128855688407764666046730632198862554749192083487236124943877597661787729186747648372019981541576229416053131577956739388908794930532315034724606955669972870221345482006684653238123857502349667109444089466314758010916655872185710072173163084665156000734866247803472716880611548176525124151246318167139943992801922579541903191495574183726282023381473246559118669861704323141089373300479728087648733602144214713027858476283837891357171452032197289368511966520538485777623096453468478012563175454114534966584283156722827265175719924791327106899156622850302147504039495435640143682010412987085438280512629108491641720330586586050756994051922791070865258506079962323479807715552478938319420260641824154413848989845411680040943254434775738279133994115412702894878092238366787300235730880214313549962629529875290492150682275244763375344444252738558685486344286331953399796949952685206897508762431521114629116544077830441146164025002719619504253072180240072282618885795991002240054690266259364349700793599425100544158558031220330715638986092118826285479666202605693472199019944328308927923622303053600876038143279149902039330105892929327946104528224465042330183788508606530478839540723059771190025598165861961741675477459568921941506679884066032556090340532869029246426876544749913474344455339996652816720249988930471392220700077519265379295876906588872261739219907517949663448074647748228398943571928503368938169770434956896444869262834152522523824512531228341623557025939148404772864202127376825109917124040167571272858534799919216733329439125651738996869457083573084859461939084470444768520930135822592932285147055866271673037356933275909922487864041282363929716655044058768426367916434027006797362889356360449546176039026122620041275290815109580662884871651378204962363483685547803472574032445004976369937791448250718085204614920758412311180624528169903631906795848064996105935560655153035620689096590984072383443785906407401825231379295062032920940078872286639860431295631643146112260575339243979218140479007539723370885735947836565522548643207428673163441502676956617580470032524024750109726577391659648185158110199361557843864051333383209470744549452749085481972846259036068286911752889453653157254758543679918751287699995701791243357136417992295457761669004289128111475310216637060782277191128145173167591812509247879030511431920904800479056052684547365201782015961178664862949302102224766713199566753919623349128984073639656770595476822433277686161059925534171859843795565959475131018088195448586138484430762868248845108746317409290125181368242261182176225319250689435331481479418019652943680885827812905657803226202530354021734198889217577209106102923307415436174328862565547822433672654485687024649759893853729610315793748612895940873708259505215601436789430350850365443300877797789436499133657193527411476982517227778257715345202459419751527126273323789547763813106908192572917835131456997996566756709229741440993066000813073407762439496269352764011602361093097724933933960694730041725679197649832845044480298000503847413718865395672160035871963967844434050330370714134711096057301515275959840782997693373778897994973096556061040187290817950796465896754852432327631386738397983736104816433293890321037731371643469581469778216598435734890266788204828078768892434152809364293590832162446051579310350074996451630319260190356994976077969989884929258604429401801736352932491091077387594100383911798243108820347561568236820357046328292185881622665341585404461141545627186840870279911513917910239078813000740271750245812458779831776005468072018673711793572649962433435417540932292497426701719509617662840847090926951592795348814336803230093127208633657267643775082182982347559688395311850438663914087584927080595378377217284086971369774277446211617093023395639758842484324604338765408569907095494666009374383126460180265320944836716094091414189451575410836303168129187090835250521295770870796934982423076288547311145193844057973932562729857781543213182782342206980447123150126122372260119555257112544049223609660334355600015628668561716450286068252597847346124823909409285906001488569428944817935922935331291867696694464952302847862934862975579725439144365122937996106970432750341801174823323138230289574960841387925481011962328138539724653911372706427091168534997366140132674714377086465260912324392217342802395704876587128648067561457030235220889685541173369245647096202389587768390475132133227662523420255308580594163210830030578797581517833238532577866113437349581897026105490123784643469034654197616379865367524707096059479882840388429761071518441826576723924585221088484254895383417289596051498581275743242722290922849167666650384433166802864990393102275092410385867676086011413446811961502802582275518645162593838197713411598068815772071744493454960113459191934550027049363464869325429778955396877617446497582407203814074251537899905042568980597639236697377151115203044567464040845155913900292828413712771299479905762154552121746324789992804850837429369569380712322279689832501312952849286229007514605691970234882942774852547839104184077084923213858549484078659390760274564624953290965460498031621217873254212832970713304924484186841152946940264763385598784017267079469193745731404356926836197247963099883625943623807956451506484870720813698689675616466601277338064579357752759750202973155722008203920602547697820844552268255539636207882887919233183074714997432625051657654447532093862303449217820882836490457134658341256229417343851086536301520537309972198661816182244289099039343894712073801251148156999317179866889873333760110527440202349651169214788912086526694637006362605760996231835516376946980020243382150860972265213929784221480202885909153058395963982968416912032824551318151718515221516180656870807119592963016782922895406973598893534720889826962295682066704722645147555094407796035677964791897890123148092550209437680351238256245764622618188001497585429728093320479243890817360538602567502132223565329285205403641268522329804412079704830998610214788350937566591892095707762187025597650262783863386271303032390659369228444414190930136586876315780927646364702039465046311128298975765880086888500966768713633235322369101966710621377058628022886556008200301254409991984700483593026617675025978649793946102086980033809061329874024822196156875232580263551044232966163236503122366537807484982520325938644680920384241469773959273507595161823598190072628401418690646107048061674385769075478759343838245622254946304897889347290811552349952091060768093602277656725539376532121877191229181852284798294127357548058526347648153985443209628149980040791337305054744684209624608322557980041153881446368618800809949826916944447847509789749964966197053022191469381099223436199135692763760898817649908990834631799568082931885853423800017985873433143167321811689399058550762949201181609885568931541061539520284746117869447998800050203923932987281148862154689068931532788385483033831795839077047278923686446755507205720687292304958716893921341310625491979249136987799406809871567215665887304659647740505946834869231700690368208177229993204843401003577109924378897064312408590264660253501013384925483838222815824784933234467852804366004566627853010451445801347265824700592089699420331194976625563376810846277157624732084376177855183806906463625932844242465032777401714555632804773196762472469710556716606287376552007202345853069834474098316036090247520125517342542149891056095162551989453522843322213826020639659733386428927467849092570304508345480776615405893508977018560401920729821401079815484747573184874456341082677273804308543780615811084542294339323608378948332883471430422497670523894084499595114619916905397879302059900407171140531227581900945146215771162647874378117822489696978603562667545538971402744874382224563979467338775793128548482335749779347120827604288936145730050632282170394933064977738451699358618520741259603497878514055824576352069210477776933505287427645437493659909188237370461649965761696502635712723399343746533144814833619557948605011517975403965960256466569410930193521270572959050885917524284411432529360404777593158440398698150348376721050725885302832320617091664664484591694957444200978142466226300219027664867466011900648080048640968886531240644110992263320492423853351859253877714739063461564302814740815750467836617930664243264118253296043041546394460828703198134116769679133873276756437839979383398356521436390099194005480874208120583541492193353570044104648425908139415594563056173650757130861517398712327766235748726627287348776106808885872967713345995849671991726582161970157555862778346843159733619908168747852972653552026152582607664310480829197649436909943652104278327962447400270660438713120688978633524452720010400154137691610508361718635564070647440216261959738876717039287152791604369249782184471501197875100595269740588550640444265072686179065083654749055921082483743331247857199106158071689931448033372556670174020917770507696530844035995141061639535013102795249083065004485272504516008569429135825837101251192509236568367314218464188241493062271510884054303133376970187818297888755693972340055010416200949097595311681338430948738270575334626435021960725423207216724957491868408894181302609460558537406854577895686984970032709069342950285827415138017151285504844868323109429671172502642824515624217302219441882913659905313530488431410719526539544605063781805581840307441646193879176979645880711088056519054153235870680487972120610014838143839307934798975384476576794379213946356594066420380501706684077288598027330916930511814471917145657219283450617686514376237605341096400888231734992717844411432738244241979466813916924401798105604254281712451869324009640953935129946175764229634426415888982349195737952522936677947567868115854647833508748526727686118844280014749669810970728050309075385248904739896608180085466725252877864461367249332089463796814013726655935318529262315786392003153012202015788039249878965803011198054873615083134288341718139850260036642785057808135896945620065972190681377928548466481145318728843144582072213080193751286868172163329725596893647648269407294396766238484155133952099092845521057961432675592570742814546064279564744930946945163552393616194306314334298496263011919051895429774227199471991867270741792895282832192731701868313736403674508309503129167154705973738228919249971533131998084313741576758136350357797596220849536262104149900091565585291771239379569605883966142887016549204119307411787839494235325845395782495764267768629602039554437511336770525143004140176837414166555956873085420627937653648978652548562984052929637959220293492993088960041448680627719674833222771568547209058867946587662405260771553808030739375905954172312971783417891520389750137317700567560741596894625492954029310357886295125275801566903740875140138342026583251892515591336066191892793587834600429271168087294798536757986527541303354792320467026736293090523063844073607186804121585765584108193953488322589108689225309317766503488283096745125895957914480154169465433262325629125570702517942737141358172843403256415956553222549538663496516100392612692455377457543364240122290342614710581216047351866290910025200731232508278108624196360778930778714050589773766847919536000378314595161527838872128224948829233172572637192368995170140386154693785257345197621181408776721871813015255515959159009030589269328143768101229529181796444595067361601165155410234355483350690053183925208688208453137601285886635913646054181679341664620161246986233580421010852451081957147274150950876951138941517360756921671832379135282172551902602890251396610953943825409395171744481555847031556324574296916691243987601773552894667902764992938734196330329043174996990721589113756702843012917017141786641503664040098010548013345526174602838678583102311413774125531241702674587978499997845570923070648214797904079002376902410001195567499804627294431919183321545053998406683242864220257459733733389699535327220266311278359921458640911710923686539018819143104417643912272821287902595802276072189222035785796833918169530362264235764341909598497393111999147100353342613629356741588291551806025324911975817713780404160187943153517986717077427730731441640450435989577886561985369252023770682558554979227772657745510302406203127385738583278272498653297375892859541033781685996354953998112618361092368210650733820694687958284931344966165681487810592796680821512231089772680657694555598626919267259523058033853299856873699241107408365770056931956589892921245736078993842609373059942903502866779166486942380799011006687414249130835781278936424069814487035111476957324580716675268189474754792492854020875591976952321721065659825847627139034221855676138126532272945999758078741787935323390948534005650484203965884788585187254693513897781979339173805547202903711125567877442440261988916838454558060815396822972287982609588350029695942313728902471229669586183182518090756246826650382963626946810264978450125369807422713777649344074396645229224808975840785456081773774662072081465643656543815845056167178694080712207110183617330848401104878633002780347522534540072771388091995033545534926971182689201708018877698130784036171883585355503171869425201550680670640664847651061777250922033103403524312362078853455493695879177579868010064273095045397357710099950323511351955328565767053586406337050432386401922695225508999498442451535005270434416883207666575887444693257045025546493935328550590181487221017525123000981201329561249960807865115008348499923949078800289011056970088730500258513150807590416737997919244764530762150603138358807902944734824938747991423304795083712509341405775429475740349362933018877231704265241086365856544001734334024802337026405751535217317049241495216331771399897463965779589767546039861067583574757220946007267459346541395596144787889909738262444789084905647191581174292278865371856357677780643699609168736932704184583523287132320824614105011840731034387765522211034103640845147151376688051458516509046846973385867935800732844019004534861464540797101474717332153321444934554064739447468369022406874073498281248364698751867805780403868310011115839706104838160999823058493188815956428369940563638467734721499156044257644899230786263659185137113586310347903887417618605933835395311363310848648240146413644367515339855684774595095280759038396558354021701703947859681735835091272976985017023852025983571395071912410691215141882737043551376263675262402177970106621409189529811227151727404764909786609783424627914091311698995453305778683022564019337843145012988037254507675238632580500894651783740434266213290989668874908900527133230666479647020113425837711506388397388051559262218296741824003707655921880084496687947698316717214405674648579351320805681777116614406183880441908059739346437189981361450956511401533497049558918029169900290710284678801511102608884944813029200160444266471425303806422378300643989424512050648292303310264689618577655016491279593042856450779494297291756405270219895497881003180954726254810875390930144066883624086949575063391263444636609234363920100220755184764829268391578722921810572389274239059315292421227484986256329007470712112792962307801398629174617568142861003837009898193144716799024559776814542178864971861011948187872744352783823514135067731113459076593285935734828222166831298474887653119281807256791985020206379863833307657497128251996885483852025376147197815431956732348538730409937111855085043950628916294824848256886871117080419411692138041991965024049680709492750387463545088492598152963175447243256748287676938594055387722289717735611808135082696993967804442008243640986053424902331256762103103108310740503576821303887239253836341064225159391059052594644995734330348993968370825369905786013516996480546257271798527079315760944366496698173403959450954356682615703196084680003770947853052827202833235156850637989215889396903446700090733371141932544156799849540211401252480889713546479321181944848931185737374457708777810943367025520426229907201317323367987751413086613476249889428777057106652801012248515076543111844108230795300056013268290985096259622199436073703231970635900588011237935703361963756152623477200622247324103762933201066383347620056685262992203222454550017871195165977608902830126366210131305450240748964384579594330758970956272692395662344590497905656468853891376257108061875894119599831440918877250036085768542703553127958360279905940798726506154172380605286244177435369677637945995214068366569178076802432524014547998361067995031059399119421798136472758656436615446110601022477608589265346184892134012520787273990877558320270874937763959278964009573134121567489136683963941013436608860702393224948738703752049811449179227396509264221839256130871242679852776246979389840318892619139658368618854693188331289800123967139807500933414193371360327850219830130961828096695383096337342061199155747714417706384097554684649133120821526557800487359272228424608896845307223879392605631589290806302650611142561149569308245120137519897227485809448593217186344855639972966764264057832199619150333385706932315542614133699842317486326910909010805678864479053100526254548239077729717767073100963832535457976304659424769995838189487610151949414663892252986616841181600826729308134494158694775345313894568764712863547516139407397839489817762938642011165848086034139162577255061617058664313664027471458069407325005370390233672995693914520852249529058737994405969026311065994958681173937131131903554145054839517106384186512318788660222410454957931000291020621162113692427151336803432948747755289812280409191621378102151768147129065618937324662428948555294936602073195176119590208455863348619074956922276524769655501733770564364043320142478180824336686949448313276485307148050539635624093456370882253720539677553564530315175521614782062163515387919489063010017995147830197914569122921755523180185629916508330125797518343205486071053777177087168142224804397408887685765462106716406681552651221372297206170012391957352806351112091630826321007857117233157014457234126948611874788761688028603078229333651393842219001396415745869618533731781309807786080111328345341939408093075808594463821333218410928799253579684012932544630916447270306232208911368456155096397679504563926417465756064020175128850104230632386505463955033491294705202487791115892837079066768627773517152400035054168731621725654981905540557244992079487781726691365436297301305171884177431140098045691056179980315215789562458149150715092758750595806101461433279121282143189507849714706988139554803719202943197110481683004403601143137192646118646452583426488814426338487817783801775508995501512825008125561325614107670026593338228792302939358693077829079697203977371039092101962863766631764650136299212155043738035737654928369836280509802786835627164700164206958025344581414883516780190636322318829992571944376619518779607085706377609731818114545722411981523332303060366657492893353228123770671481350765036065688401173172410779726762016665082634264806302462940091310767629891643074052684072187046145963909776358462563940871448300277408348115123027250880212551358744732478409818255608372719955327271351853895583612670849220268938678399173122007639892487218563894591684288806480146966604887006395414317110402730081181022402989754496667006731376098160439905425425391731770863274511150607675602475917877764669596865405561559675227763685234050696858413778581639973315333077534770402013296620933809906575848987778679162779459557262289881464525282173163817247686028549321874042750690424566996092522119389461639385934131712531261533281105380766051693625539633148205819557517850501164974584113425582304379040054258249767580018532530516644886124371294214795534650971640536878218672032066310266726279790980695702035724353493448885838186497443440207967981143678077121705780215874399859875367866983428779176193910481695922745063757007535357180710835825820082266490318088901210238458270013742445395921563569896377390038629671306976551207383380526359871699605019879361070373053350201912118773385551133575434864937912533453897946126632281760288031819812562644283126051414337564376140947237887441809016974719660699427714273846228004145478900934403439395345872778007482090323988701719455688465931669011814458130715288830156757323713023270297852151504913374563343664433034810871218712861491849592350347281429193222329904374682292110396209447446888199732926280405393729807533091064418926678930946234058311468797235017559554780288570787945792363031266896110121488485307237640458064048421225021579044048024260242439525705832619774491089685120572391986052998681233607209192571239332203537751836790158457721843796912544591835773574340732969463010658589154963099184191633884760957292094934245032657867523424321891082453131815781862664599040903433787692491268534690011166818871839375166606078694889205892038053007084132848089807366434555804519311021177387593292221086212107848959764075819946328900858112982528485265085207955180769391105121329598273654193221300325304534519918022107145553031710542106105780376958522895108500280606813154633706136246206765904387629998030538716379632248248075349930800180196224199780189627281004658736376427486481178323411978145602168190261765819662787014651347963300677659460386348449345070279153237945079030434839094968614170990035010639308650922560380136689514376231852479253150332952109403366417763822621443167171763162426656864981251353797171922150366724020139740123323116710483015067951166677117436712125477836886016298586374723387858475713551989984060785006027836694979688130525401203885260531630458649715679292824755763056025355410547235781981309655192215901844522765182918405790197373256635724456201727259254363739699906423924546454081049741624397920969085258041447605478393244277385125771897149738267959390152091983818794483208304452399929053265619016271664904895869233337292135853607496565017008356239664202668896490077201889833791089757281579662168181914212882446812545028362377434093902960677233007570839523444826441892660427920618580685517649016427383104032441389188568553918174503340347988999236019500299133813685707489172614387913905811452844243795164830396968222581697465400350304544201611378324929079540680373076657007494952255486016664946280328361635466557497601917587883884035710014558414089836157468682263972941756144198837380130070456989371180866476864440543636849993949099175437832184705663828000087119535215094581607892469515362658536270647945939050838427807600702290016535296078963540070110894025982804778235717466308493042397810613441788569805317828573747749115387184020532449287301074112844226534455761737542809206933430992758252387299502633997126479145094610560723671702883916184949665100350157651383757636899897206111231698824991316620818713135342129777520164563838822598162650300709994054174982647629963277541388549664607943107162532945261249032511829560716210697121253982618450797939346627716858912118318268522794170674062478794810613137451741619268275053246985255783444415919307866635622759848781552244924434781765535658415881400644105495659288154294591308290733065650891129782920056104882477560691082807447192745122951084480876682220545254844209322383781121400081809532068354070809679873680706753172629381290474909055506684602357880554626808293142907835445120372258386083627305549341499822199685528451403931022378574319598263752498920718783902705322048126442429899909698801866488058953608155194249083572165169142200252100392879966290641675834598627260760357533558026634289449400603923753746375913308878095888708145634927746216631582893759179953263194944974375067347202828191170171791177769585815976460871850819206752631413003733515038242520504574449628537802656001071070737052464984890942960908634391600533502084269500228376401202778937437893536460579618094205634227908083406391278691606106617924253804757854577940495805656038070941138566414107870053846064502335050565425549691628597421845634547755999478633337247298791115752944147174289790936083252042226329621895213803629769111671167618404630722756130279431021016881916043381847170482503941044543144078340234827807012716549361806267087628176863066733668542467482955219031295004152647627248453566961498244761959790124226777926109726075598694535981085018419913863250658959713431139486749791079069547546694851332675364797879218956673494043470455008690870519361165976104230360588125209927453835239544058720940032080027553751738897187402961353268429804153266507535354967434251710807860140779951591037636428240029320265348157962070985579862816516530751628155850663967345750402938099593328368692583273785476501871657689866319834089762281501299295562772636449497399356965529860755439115112691354762093902182336744058058355964238020789035305217347071308058505826711213883251652802424325372170669310185823993408640017032305799495744611197356871824307408348339079578468771963180048464007784691746637137978139390405893491677097679822761130542671031407048668339914684562766288831590486815831085091302316239829910432259474363283988301676954996228633562878434114121008729941935176760807882505954046805027518882502782629575822456764052847706358557959112667628735565292746859481225729387481388165928184326926912931741896794774434487790855393422704543957856908653460984659159696364484742172138249925013445448857985955870387675678673974224748337244689551641897103993590511689483160530036287991329480408519313018746073728275276669121128642684234899774679214514397002729552557199428055539384948759401874731902483469779860826043657145707625388367544323107935406533051845915618435837916531843596333886747313604446225359694833671652072583342370604226517063837979669566212154050407868866016029921554974430777680005303700539618702216399633541733328905476322992438490103081074325416985474817905893531260303697642798444453313421116339683839111120072144806011680051028267109293953217008684281368774220714464205663381005090506707828462957446883819381428314061609173822130556586811697472630514421233969919248386583358543626771156380219451603218648323861480152464395265030746337361875017170636609341381290017970738982650099535362005114992363219551099793871909138195701566550876811111121231760406879815712581269436123590931245873199134031215924625160460310758611738447794594584717092409700884598326545587149420092156798277210036412930192188454965267844150561741510557055460951837365738405734406327926555339425722739390769039561836519555053413107463173820761050482612930031642237303503331183454699274336545835050497484966514727113419231319247193893528618141783434019363991397246254563339469609214962437265203583051317186669606540079658356637339742962087532696912231039457949175663232343454683577062296375289771754572575579676676571585226773031490858676410591180804601266175132284083803383293408770600390582040553731240308541698771763976402545145814998061021209414349203199242977930884319919407097551634534302741373344959703819419369469360337710455945909672162166035087052657623051821899510904111536946148683431494191950739503978077269293549178667599374252146248209045506911124725099557200563691692847931063179385237157823483257173131951832256303392764603058144528524395705798692617033100923697178116002151406839837916286327404809038044989288239714555797821494525589742623673149678995216897455616665653606126974319176802933177359072074775358703261669916548846874573794446987862933419052342025053375379431386740105689255551277963303846468950419707627329189987937108552314834538641508563698495460705346930405892612077530622156288380377779354049959622816484638124845863041528996212769897169906865319001244054500629855315111796706319818968218317673969797138943634419259991026440324421123404439762221973904561778178818165609426232525471432927804038547012289525501633267335030340536191172102966602455707315699569157808375682076934661290406046414887624397954915448415353055605397791294516254439203546248144401103203399277213606305321762459731505041971808544505883114671195460365411213894053354045486899953655932397416359089792740554135042981336623832850033718557696955820260428673209281777811306068357252952438625351836519083477774622908743960957457210140223291976658842144084491511745444427048729514890680579499614226985871622022060364507278926270010900637024912683188551140274089817218799708754317717096828121113548612130033872872660310603247911048575366621496682143788739114034017037091974516610579420112839501679348482050395409991334785993617572032574394592332538697950777948970670191380387116126088203549617030348000044308864375095435245683527688201466870670662358328592281865107823716321656732743679006281916961376124370315979802221061772304044149278762502569909240541967373410863591997638327153240631968940876970642850974513406948520965483941144509909448927602677300174004707765874822412057510635416142870089612067296235749763454278248615349430994744309423038865573255622500135974841226396625365051943079754134003876247360002005386047641105131962794094442094871334740212566293048723033044061514716077592349623746043458504476871686781188543890705231266301475308770322508321949457081190158830700432292921402804270711446603070784659009427732054145118442802861026682662972831552958929500846767212747190766426472481693148146501052426072538038544800844943059038918560479252723758314487061354718537558222713442302615129410606697592859676363193585488670993799054026531110303130116298752259325256720888298062751309103544965525816669060912443722505293240347804225807200537202289085872886106373455426329634413621321507955682920011672553844603411754538026929753302162388233225676052786178253865400375378789513996324447053502086067928532197214594043759822105088126054331836501177409382160006208303755258680168313201669526447839896407959184493855416869042508683074766777270874690492820447230941260506521448058880222677103409889987111118560153758100162863754834839091080911291997205818778999084092886464301566785550695134119209877389748015029451835789100264063808795513480794063759734380195649929009658522193159545070168931709744486094551664833507314097345110379381525696711556676908075735507584251795931822200554174813281199881377960004648294190198166993690781641431359455110287509304450376015416785760290100949649474917267026674732466411652215225641945132834837877274543561484374035179094223121867151830911833779441822820468091855614429632286747940796904435226220186160419145864480179132955551302197791212204264355897822513624167162394211426549157368169623378426001749076340615454201298239548726195891913778797561085855424257899761451685121934840144216856281833836888321837554919303907164958815452664409758119033708365706077663012659013575803844851951775933762338050774034060666265491096274390258031674763181031734789284066461217791209430346061841476956616547751407637143717031503118199973969915046882146197059458995162786478072326882397950854252996363786461160315031533952136009273233140453407151356207547132659453081413525844976435763651424883502094807054086441334898728735642981614491516465744325323329353008052644268851498703773872684479395856587814302559166133073225952510764772908366415123171471989546561358663560012018496341185829061200082947778059698913129653465794211305266610195361191445831376952192797281192229738252443280440699857011485130316121518796884153546394043230310128882436346160036847198086091611872421772545386000238567122381759326932188702847491413675640005325345899618410570286735364775884586904157998912055035703171098096428081944244263226265856289053082398386521949367178816410999580453433132725071933673001365405402468147506976224821028526019979516417413051671178195056018352842577923492291570487549171381851295787167550530977022267950818373118018818124733420470979149893469342446641417595934041447603080445166290101677298874310307302432859513484535505171525501652929567439374766093402100374054052947927060719205150653878152981313688325861485306473977511211026388666405763544578635074422182409289100841801964712727905408011105404889351697531290237899690686590523528497538896172350068773852198463618888025683251073668608108825940864886184238280013445469990603976822062608207687891036326069536184939703249640366459560355197322433896362580580191875156139989129930565880104351319156910113177113486850130476712763569946198403172087582744495703219342777199588693365154806510697888402312402163335026308492313960069475418330945804284747648423818322723499477168755055984935898475608254254179809445463621964674154089160011334982222309125452748240286956059383669662529275914801875826838203106189887022574277769173626837343740430765533122468821544434938567951747559836785073070534435170042807984218662795012012067015702059691054726199345034360104188828817570650991921359627676335935201598935632839330314502945755562878517812959195264820512861903858611514040005137256753329789429726344331255591814484557283011115863150170242928800750003500277556593449787182140182371592504000221658415006781748089285673762709926491007025072800980869523906967964923325602988645816862722335334696092697762782878708539324263725372360750658044185630535394637420375339912351074686167716747131733577687182229010337524338470921410710842896932475919632029720448241461624031386384226221566774285316092194580573910961572124194811913605371808701568404149527055547527386309840360544047555032131836951289040438915924885671569507112717562743697376526464260563089596420950130809144162218815012151174091926979673245434048674910669501827794750076596748530479694651042929208455760021681705275374029766619434860737582917694329248336041772922428276252463873408793263129708141432224722896936211206441956841405899842947760468564508962497905649198489188904203825146212635297000261118404150543874998655839954213410780818906904537715661473337609622385179797529467104210829901975566629616097081046666575011714321364595651197084670632181701313925108249814443169951897425234068791875551111030550676901285788368871813117226699078356663656055146973914901151098331539080881158186590242532281229732467976945975684087812352828981074717513528054520982028416854456251080047937655036266916348456691173788330538799404552461979261757459712174204651145400584168780456823010035274840322137173684126324099324743681275447225543114517771511327842502378859824451834211914455398921312183353944252778968641805613708276897197815481444754220018043330560356448586160970343211499682381196097134097103858264838241371491629840033593181456384319014822104264801960995557841021539089857606372654555499265479639694061774961845744719575626226120096790147153866332415648318224623730970757099588327049242891434420348071687082218785478756527312745789280817033303660613551431848456168442900782189121703603032601377974974020089695388489383838367085377780692005108205129024009084897041401983000014716853375798253634922567840825595306452283551173347062038554296928744264994895375772726655129824682741304777415961685956870768497222437768911719747030354494009471292544570983786105851595048620756028916645167997567830773768538178991443533719504969971712138139744944048255021490801435569096175865794694396848899397839094374290120429035968255970845772978526353873314293282115773839074570058288436316970235474300328651596073419349663553461647657729507089215021741720496242729671237400220819827946569628168678853555216040661557106131328475218293803547362393123805070263404931380728254376459180517308638668088040415084994547788694462580315964218212692767447882400087209582170244283792187442800834136735471707333907572566781609099097105769693238991954350950308056602094577516589310345245306605962630512197235328999940112647689622211367087882099794698815539579102489753661761060159151022969286740180470543006991839184826907806211980827330247982596667768067356437633416840086169576819940082433049271633244307218672945460197959834031942582856626787333200853011322907708892624144912344934768339150928890835979154144568926329277320325573024545968723276874908283677507965957398288800215662619293380820445615013856343367687222627658506553037630162118402967471077595749695982992886843384984280112910830503063733628133922717258417262505162033672666091601893157703874078407074278429638911221176482233609421566086512736367824542949105594673216658054454107590262188261731672764356536987295512262735447632650800513041353388326809845025420327183147367451296415492074245815624278313203205637630861400561551675892019288139901124115619039377864545444040881393800979716898438461137641444018250396877601774211951816011639263982793300867200351211244535433882442007819319176218175890782198910030823837031769287844526414885066618095579383617404514203860502365310142702762108772326065612257206278808857819063804684345199313390171044944810057831367465078337711911589068268743566356535630609669261583411391980437593788608796827814165403876114358873135968005223565416169237220842125872843158324634960026475108067850506922783447681801966331151730673783641388096635297780471125605900860383784573112604259354773925529211306267289559134040989196708039778304104014584767055894604695313706763068781729315999626931545441674773917423643285469707156782232074715905774707609747446093151189705184054606454318351547473222706482942797821924590940997814879390535189097144059203152111077554277178720605155471410556131495499530851122933052426773219549139374132815373101881812709326099874525627535893446154228333124211874912824118056163142353126444537750748959479024762760707050515463789469535584928280712040027184345885866698843639216333491759448095700287689660737158512609858669145093122397164401889101411949659581239339603897261217375861294657254429890800707156726817119352754002223506561948863560813072316829474061320864349653514675935464764336650371209684371586363126591349703884891090685497015759795069027287659691337787123409706335178262329874963631122022156440386864147550560535776290393126345316031104494532086241202222574853508667818393443617953500826715641518505236765196617297194769962748234928541735595536615650792459316415202683033375278136547598597166551607976514493395476369598804531274029799887679195519016690069852390849413275169350896489943589628880495245840596584770435805589955408972326666948112205778709937710064726384099532455706687886807796105136453403098924298976661479123483729952735296774688876584095914786944326010740813742069138828647006599688703107091091117800158913645117214055701620925294342199214937022880827198875532523789935875866807020170347030121235471576872441433004700142997299521420065236724660857015573202149308529575545194221480596974124538324675336999734899755524085344108019776392567192922830789996269427117241308504976609730492485312986859200301227308474506830876158673060391610161532809038843401452390434797947506573892611192934628072149604371826738604290156028537180896958918514363142792186169039404815689133231534445689540748682961727853113564242305890846569909157003751986698660560280003596825925809667540019388066674462509511692914361653374444929812465189215893850440509263436604056009260016265851648266122675172142372898981171053303229739441982685470106861868181197765658144219421806166589255758178384505480848737632798735158559843106872110747435497652602944627965797239406555820025426764832753004609191902743952364786167329225109466357608862725998421590969700132264636578869671439758244953782354346766171043438738409037798695712950943995938825462498187140668779927858907241268558026774902389677473928210511554396576862153794436656941146483031261838531382696393427340160496227959586599094134478616280143249730312410823532908267230259782081319940499275117427627398768438076207796868793518952454750080481088307897808091553469029788314124660123735545507746369969025386697402514417823163748323161332929584598299925040058394343385652829952725603082579155985156416576565473024268067237986503088841352420717178915298080219165797602918246934807041384543491700333334312545236872966868702584691910556289605942150383047049672864800466839806124306326939974692479597704795425524930412429373732830677354099952626088519905160045819210735894031208847229458470485363576400013473075379983111851944904403817426193335710706159977468228602492635091008944281091086046305010622616382312330312200793959942147622423023417090348574111299541761415049129622030594323577306979056851367560389210147280744993675185405190792595647867298661295106814257701099018664058919043981190336277985656725907966791355845599110772486195600605323988147100091544091899992249717530892576126667597070745031340098147378046463632577932843747377681436372298778766415163233045026148606348612775919175867109909329599077903984932313119000959575264779617991173861657461543607903306712238614476539080623037714981646223684091358267134145946592795824991872569632406291830718723012833822097865823762133836000998234324518659920491988384451382439067628739189881617518119882357039232077870032345706437468640981294363362683688935632714890745551689210263890856164680350645979639207086437749225140946668105006880875867421751487390768879713260214252009734703032442689656616063849635733315454314069536069192744933188421936620039714261546525951460342609940910977645537329843410487477033034479216938080744586604461524115910237970334055140943056170209088199955008296531313809157245483010410912621780924527323196149668973084139718838246334161723795128954244324752395717197576693267529909954926650632881175166384497086543258212134762094141404808887768810796728540072208232327067696646638957315050041088596414564341114513493713756993017348384924921467528186723253370985341217964650570305380944067981998911957267804623874610143169369618800753560315575666476021185564717324104970871803189589564878291908125934668955352643608523272509480886914210726950861646732709531028307695937079420349585806535564338855400416138583784592346304429163012304882324581831544079135423825995270065778335020444861596457121768056407006919074395245229911371748729161577028634699565216828543086682727927309102006584817436955566592178374228640241890101562303081303550761201423689450108924468324989241682045504161020029250162965611982977953064693099593318584521976805648521751904316720764517521175624809150378104744411607678997641246065401286338588201887349885341649665808327304433014133092230329598341577895021092974236583506591941235690965149202933285532401624305628043829868005929319701710227049502740057496953191373600247017037103480752929530787292751494743371508037235178848384773291614932470688064573818511152353993470911808488027325921019440794527224705290070653544645532990407482384620045503060876957919350539352486552762362715362937199261650098137362812650927911430920505699799271080684241161203246668157271862891820950748916655784561216302526337414328913903824095599783102720922977083980858965347219060303435881380577425648414891242530648465032676514778110411802439490353442660953403169043039933376583095607307670570559163487615369189332033491007327523479429931544107621574776283787253970231005988578310704983999815399949730811471100253287852521564591699224902379485935958432231428040404929372552558129260404430862683057341852036473650019021919657746719903915270068186168822337299688539041751724604086190619426012145188910353632370170778848066336600876157775897276960810688699155814179652972021695629810034402329715359237344804392854054918544173800886953584116867032636106081089234671463449732885555198588906518438437376164520089478598615942712458218084183517765958760669372318079770329860221144770495262626248396463977873702322257397319493544542639398191400259291995260838811492286107775636014097465453805248108143782318362264563936383606270859306709054061427902406786188802588840255971624500269214598856676884577985171883437017100861740750503892348522788705218677117581903631999352458716977661640044848832640720867713807392340704280883523838247805789366472044791690105264566553692896655501530177429062498868517093704962551325686263889229245647767895284710224711955950964271878192893764395979766877436882243339270410755183372640014855515173737535168039673308836372987474795273364493243245823992005886467015662971175019818392070628961562764341757471800413873961992708242757851125175157280446921310929508558238482829932361680861912871042107050601202311909249094871285019615088272796176521872831119168705272157491443887636672213234176573983325996716795086764063147720513594327745417316929186334055302323651550769541920337990237482657249120058014665138506068372298516283243182270673182972475764067266815754656702344375334143811029308775508858254496643128326963920951278099703330911461473948543795707812664358730490508231776146730324162291171405616062573632783223797583780128692924014173712667991096103910374840429297766038470014550249808653920401008067247158986369097931338104102783332799197312815110231253917118041760518695695120759244789208195009581787161203828489746736898148357112812818129410038018220703858315057432992777135649118373038376627559632604512651527151177581860000763530228286174616105455517821842281083869757288621363880623555726379276328546973222238242207090171540763340461657263180444583591772254511627976667699428701836254166166098779455951388071697551256522857799950825402197114862201743679744748519692773021111979652421997094928567667468383451126875994382730920607092519571866709505217223955816143394488157315599382828442841220096217203898414039889766117900269487466472527550332637567861173577773363313122909445001326528028029163891175252454837895581150548845848438397765295424131894157953648463554420667795946159038941996713285761496540997430114188058179409552896035378157955036870362535905364291625073826729417958064764979390211958544743225639157137102026820910533888150647715819500744376146775571350011559057046602371740196837267452490452332416805360779095080691293405711644506586044657733656593266816215718470859561253088918293726461331098282414084240475723593460334041176271279914114544327150661607320484779249510950165363136121309057201310752083953557372540342430302837891502421790659555934910304122156435291702007741276882939773613889899449159942607200769855337007947231003353406456850049664176688573989853834606134697651646629475757033119224567634796327903130143013462236142360389970646327239096484414231286515864399384232129610794858113952784935367688571949391563060280149781984039811005292806364234332079799791147237266225417746994416953998711208848543939996466679749732166182565672435498554980362007761477885366814650563281224023704332210244809370855257067442829904138219305997306344277073080203414326540103185422878593651586409548506819359967299015900108684707863691479818195864133691937586868150819548798843251941498603777255460939803784348016629682152238419315941175988699406221317817476330377947082212480187001637584197995664177705181497446239306550818093928572925807840523873054840343458814777344886295303173435174186855612113739192923146606079821502949584917789718819087552990659666381043146367300851991544406061470613666424101801779606181053174164055129284809618012917621027688500648204424724227436498186317697497373065406976179720280213634621216505501236925578512458559650205242835323786249686937625346361909166699724921925119121580657458540556323834669072386985213995617512702917431364798215438267742656016348008243065296861457298654157150909957812041046910112379183463719098877442804954661953735914976317901645146570041658393419166990052134639481171457047557417397200516646196750640053964542790466538622953904047667794991138862459872087773997133692977407558317671820068997536154490952926075346024780937214655966291615097095637513506162088729838470328318627153979714580578297126321250574222564947610152239548368064200088084071025406875001656534332896945791718867186961084411670623517849157279184001008194418129312666229830671389137439538317506739576093430354294552078004461742945368610664880982355810817015116297606605654253979814366738184361205366100380779766390241169460127052998435395940719972016969229720382996995981721194505906851409107443846112254368787607849258236542062936637699768354883796195241187698596385566728138955183725603357860552240240318209559392818073401741970260361513273567069028219917607437848229392801130645000381047080657052239772387842433891574660467784988030812340528428172659280280183488356808076284869034991655738427322397451612055279463611483234708494969779147253827835972488210561534193405281236079683782424226379098464504554154559905879719783405733639618094795255366160765239083224896492010617881552702672940330650195554050938293554378671401235047885861564155673731664443097284824676754952421796678878160367655130513550232180336498536595108800887722452020488133182819255160259330857305747983323715021230327563175869596010566232929754026803184303572504350454807842465302414339314074880676712300917629653407707541507853520911532340765489802579540301725178335568130543640681448775292636342887469206699882610605671936920393006964309802746226207051724477699878422792804514198577811551110884943186942490656417313948773137453077036691101395851987740858874742174927054518275436013664665113173949286954815654846220427833198699883612869763204091165643062978006816475680893686473438183358564849449728614807632365268849613090436325554806330596752991376510060073657408994458526805957083392006928783418464159671216011171908582167526899979363960013983762107048154134800759520823737041658933335216016797916315562614618217670715751561316455110935787326071007272759054730924830777292839977263616822621259931170857850664453919533068122237666477424786435744297107870407775920704134842478707441827724485500816653543617083207277906464864448436193646120965873460488823045787169911415049749698840687810892501959968240506427460839176240884079851249366898828391757039587807497197497329213459060595358308070364385626245241776058150475077143930196568717175216327310395252639640105861757300036028048755717572537794931358178617933350879561092840605467270918114459978023926174643766971226406557865360009045545408297107126303110671530031104257564565817023295313110097572334272056321176345283357584532227674049841922939793310776058463596670896456368975652722054150831569654711605242258565739179832378979578139832476984071369334950857511628674309603508389566804128206032584472627081138558003834397086633381127119225149834249465559715889691199182635881796239635184027900161376303305044240561078213110743954758924787285970223139457873220789309455900177937079134637619636550801860064255153324724285153123781577416778256607797840421862848297196484244242022044299841852630059398105035900484373542893863129499020692977821877586111565381078307871978216639854277953466327021015512126484246209157447832580818543332584352876461883979134488723498972912367347201831646731856221574555171835605409185481010220913490095345783506326082390870181705383559666308927359463345993043272600036577646132669861067556392438117701547608062691383033703826395983054617343652441587012963532911027769836794272046201208895352343594003673452456297167809519807581297441925058791327096908351647603837757071781359595947574619823231201535145075822961495519698071901837194631284448623353268602765567220853064077029085835623683372875154479174156160677525324727120206096411568232327884048901240419541660789380526849303134199226938224428931092071673953560139946942195594234695891694137871894721067432491391634937866899980350993728047842921108579584487894930767861128303126074757346062080589892647661087082660157941351457411711928401586186672011935590364321981979511623988844740433775511319228454889719400089923528529308487145127307773971977627272463314404646438064886852705582411191468080661459990583744567370241027411817365030689291017228398501225894687996048581914321461691146974977450967694755940089369825665763267159933557933729548316557414548110622556509707418076050918655674437826959837780147603417282254124308793883948135946790929655124150478973488134786041436274318116736317803955829168983497185632819004253116649844650103988089374710388186883109745392041941083338850615683655590200816956447654786779431644162550477039276906434499977984718236135291171238717479504489822349754601883533195881482179918231088244527974139511813571507107525139145873643605969401499985249874846967959896794098421354422957108843875209106258152764883657317730290138450329101109070804253392613840674085094870972646104335484077083547676548649192303281510060218791202524804360892640697327414387210300398714417733206916280142192796628066446927533044781245466251001742207686599757767794002622010437002370542451780395564531609119026873894827072599439180722375240794069119229363783219086347564705877285444075743008390361850428676635855559309066515421757949494547928033152823067732845312640349531927754822008090751024761102381634308858082425455864230965542741688441680423879298571329803333655214226243029068723764222837892226574941627138064173020981986006644508392605841928568265389844627202054919613028781060797409916380186300294641488494499159362408625508210219658278403600170895473335788871229666226919570369313921221913027704137908553740884036473118460163179842540357387130119737946691189616423546786826836676052496526097204949942799544737511085996025326744476044787736027587385432579289741337249696023643405439588402615031630782522124194390928476596959855882988957593569849437708465536136849184327025675338555931156678941125752504773380816233892814066417902619723294140896865615264846545252817816217402064243537984104412695646783245801278168402360188086568967923188415954197483162233915735934040758026519363141368962591951750962783120072735112508443703968525843993077435652890224618693655310886090966456639096211764479817160781473756927214941683881347704651730534553483090521460540763930290226379060521635973242901066864395634100004492888265217762607853053863732045262263951361732459832270138274052132389418788977898605403578195262512828594041218715535527570292591812115100616068314581832465003923073708290041122947658679152299868748799092877229672803224924430942948016802243659581207855941730336345428229714700598614420002745564933524079267045387483212838979734953129156140800966365819581983474431062290740908707299574609534998599287592405387141743918806576267821401404862676788886563104532869338353341152641173525814296181116142711964178737072822755592512426786214358190745495361760205075018390049883912010932430045802254780233899321727149083116178751906448811170923913545712674480053545138705639994942815518217294500950672884906107995879394433247989415793300383616605330420802569239293901653770474600960025407922674659271993048183087607099495060912343446151891772711876742541780649677655932889397083021544978966155728641272555372837595537928167739643544564649877486687403070382009082045131503162141296428120853654678244142450906706529738565136959661333011838070058221336671078960871317301937597330550200949991646350720931051916287231832884790311037054726996084880510158021078749419714600272498785127411706544360614574434631511457868007555541265938742849675196562445638569378830136207577896241305006163553627569196402632591349057629694762864790224835327174280807703231636312002196664001058183830161069055756948189696822299197995951706075980606830659421238193128616796923722402262071824969345894647215936776586113014592399821273359111885747919676995230629931357336358205914213739482549973529873851797697118469460744271245515606922894000996766184739093716410269714488787469738020372337925385451214934036278106888486150013625237386499116257986371851636587799745731812494322487072887945714479421354650156066469463536683027412215197659663297223840262880913622090187033259895536923236881171548809076595958665819588578843652133343869851867341141266099726176312773919710524366424505856042246024753742974046837167408036763478845111702089743595252129353739635518470920387267564174324899516762339270675570024859728380227855915728703228868733404806083938883000923270229270642405001123139933634017146242400255186322578408028512243152791362205998774969339813362957407074287533936577694681928574571517691290956925645415581382889328063202794829899050362362008360091178103246032149775194801192977289920016501738090256506380948673776063467306843865244344269306423495590370907599426683790021567979972627275801862011486100985384294233154602949137750354367493138532109141852403403750217462871296915264838132796203279073247195673813050095097198430291068261761342634327272300334598496188153397972694735155556467301610736339251563714212971585000011264950318489370451510222936531477323686371531353856385221806559129594137358279831530593735441867987349580532123691837905886420127690677909109602868712605245079044450096493922007108857476607009794981888570174930815634468614507161877673410640941078735045213450897914868735847804498340590936960460191174062832358374533022594164179973487789251433367023116804778386233002511016286849630058862792501188083491759027995600103834260454140132907514696709518050859372007548921251969131748078421932733514722242649067877057273246286101067399733836831089569605354136281139167186640457465076340648605949631158228166932623817071417753368182237853666657615550648156878654699746778406815888196696881230636934334334377385461883773263303788356937477558642040297170564495507834367493865679165899825990015576349060650456103655541267040864498242837222911117450501109250018116828198276933849228656152593911213014972908344920090945603943344321392052479838087390140059098716704783530256354150052215096272629977098457267191490909422108891940422723381418774431007525416139335034362292652351404242065563685861235329870936126812736521041367703723589809955422008152932778078842180110936655378245627804716271530329346319056123235078801438168558784926724051458831880751867689327345866329406091597612365543958491914236658332906686003435920026997243637378565170832438191166841303552227289404008462084253808355074935325689730370529975608523585256373023616448713672377401865047319212585668350158116506245753352871634528020776728016996124684459588652264264988950227749783909657415549669045737442083177068355739915909259706144814003532325267245451225530442982081778609238553399233857468087352341258958910799906862785974622642961203792276339278497246058522507519570603989857344867266341403517189131664087869505236394539991976439117027286216244346229475789704249669515063490846294084701684687964092129045079123893696548662462374832025014820713955421374980987759297817777038418391609979509313335322740486137272405667114528771621825825230266106904110581811959061970964487045918528302994887625687244332864475549874907774296756622239242240906469016746869020174695340265378104132183876391988816499516172007037765622970845364828713677045298350097655480559132963729378465959092792518688598676452820568662845473426933049121756026935598053519776113502258228696905123500680806815700611290105074971017752803478725083898953020982131202319609109808681516230590926755577260814794254975937438751855447119725551828798847653956187433724451732773081637681105790404246674114707840409538704619228473106493426297129794194124974530549429224904709652943336574321004829388529430343213961444959863789432978833998008030724223781655665944812664728481020411417309884300909126668717508371894585892486521096914917398138382937749039148896240710545420689008485172417930650177889851484579870558208063038095151473738352736347528548921872449317573534226191190851877221742563573869512260176061290382382631091800699097189817654521491036327896287395554100418539065246046896487255019592240087904234636956768315773999156615224070365332174378637719721278075902896666572904622331837205390215514890895265259539006624254117915696102383509686647565230450996854717793124794426539880385860793097272674434449280297342521944300271950570851392056002440242122534452203138789210723198276749530935501133000541256883424574447860279474630982768065367519143951988655099356064960462267078831168821004518575678379852514775950755681110577075439872131309419222771435319441908550054550653485672918943778438857266409073483134798546777219728222527375458300301800545966292138880571887345858331740559687657431343055218023854660761546391630611701414379564477516024830513378332616107193340367360064155233440873590301587312713916595069818012948140191463500546648804463120154400763901729129345227905955019016316335026552056721985019858123472552505821123207073880659750738776335106893872029536125951013255472451465468152020724914736389202608743203105712743415756387197677208536407482197407334901890464786144441448367530315343950965437889599647762209798644049691685887496735756767745247518406409991468630104303151152104446876519845320055451792795720612056071759971470030241375011557555575011860856173856248400227425014882573104485650668871364187034472959777278181106056261335432431873172757469068714855962568204298142955805499646427866339268595297507615690537166898107377689951924288685006778017512083560357565824603452309011300813885504783281756523782572505227924689425055343918250208560550226891083992372447252783271229873231984859455717360572047134918187016704641572666359672098888496228626506906620942042354571582144320161816912360967659047383110450924507096437094732623760384967157811876225116561388827149174068381276280707029283358927540795932544354906953528906117481658210445796109572536692305496624547119649909201018166067584870281860192902605390515611682670617683358399250599854828822932327189728452216321313222157807606439194308307704277237836533299823999421336057601891687663953308071228509303714347797746675335268808591830262658609534343262024200968300716572802099493348086148347980435318787652926357972673346190041841445467090970208592748519393107299395159930078992138145510868202788364602130800315399342216570419137025638285731861324724715645828686727432350824044519113396869813965522853457262208894622774744505820355760370031780560035780584585028712185153506568731048708410301252254276342604288983207313930997877643614247123782820528109222638671726116505851848786747035771897646296669860380559169851129970253149187824054319583970932816627589512238249248391041606884211993841429968631366310262238137435752118826213173280671083335946528094043620314085138021545419189820400808192417666799435501127509222761808680465784126792167658256007849055589556866082179346564265568906776831378060852853676926191661606691153243939490766223278139232292578031532477454617439907817813368750291261515487055200249675374465395217588742236692346746383600788956397742236871234085102216237423590311626742056363665731044386783351716807673300582840974782744193343267001334454836063034624423273925289043064330560290478341364296711522276981425069427800111969635318281807030318479308059896178684026436163765833499751580235144410410371885657740335636338351746948675221479044587950854057612148922169570184537624631247643810786003924680219274952399186839652249523870731573457464461594997410811464966559764017846887676004131290103590285026773940417535787238626778326541658609548760534605600551620692890849315836960956512761937790957639352700912357538581418638423919099577062671902424855683961806366086699567920358464016576776172229782327286912507782278166586104089018938770363193076919618394198795580430581840071770828948990181548482877972221923812270344280112970817438243540184880963613258730433627309346184894731548521930021324653981780875757741784235992452401814618546447455384995068463450604554888123612789977469654092663692011601894669639644785212460187689224828324578108212608823319384174996839183873775920535907170656977024833788177083245945930122110071216750776113225484678408536994936713563952590326791279897549026764557338726404726135359445078102772541137525505637605190091582281517909373579024418084679291545033046118579291667646521228326186115978050021671538144959522063785310111643557557723826936076886003503854671433074912642703142384764529211190137227615701787602314363593338767994735607844638637886592514903734146577507064708632482402774985001258152763179815132754877382894981255468559524952790449039512219290170905942284224192822861779126964882067488635505610059189449199058697385699128202806640388774704615968543770994915088293237736178245147792643720844077302500227327693132447461528800213395605939177156695090552485505563453792131501196859695652609617928339606995772752189390143462727642181339159529047942535195366545869446212234277758746524305092994668284145763948272259757611055183244142618869089950157383601271525298925060492527620404486739648665450679728526312846777951703825626071530780365075945604907263897831851844392490972801415110113990804907459465871200390519142032298524804725227811093012509810540658981681395090375079227419846265348931048644356620492797820435482373819945150067398580569002497328290788197012984387328800246794059107407821318555460519824857824750854066771565921517139949893713905529056422297315261821643113149619347956609299343512289478544525599013348003290459911311178532047305779273478511557878268535775165828606953564064558020377972796828620160525142328039028538411896757483972450032032755818392488124811648357088869501173781140437218765036328040208425693611983670117569475280062508258771052981265003011080875143571642669292397922821223798428089083686288868467196678387756929751073589586996329964427848522974634675901963273909141472749954664852355958070611695006314882834660119790259837260095652994795656244541991064482717860344049691677025161823646644762478492381620014811097954342501784665764359398601929772090878532465991848673134977892387037197576389689882437236795376986495463262468529019265946051189787003407934343450380493423288879991476583391789515635986244210306434120688552024962491309813298750399601082313533663533065060635132276084093752941014500851235727902638995620317772111398065117199857250116846012093612634587961278312477916612575453434424086161070202351372193753441717060435260684522305854818444592317326824645886864593050565882081725019050911443479593018332938088404286514332943880919768632341388856607451412549809497983923960933044467914193258937254032069585595667945304562637573666967093931910788740456452483167966924026507449826544883372404228775640606227799945034167897003755662778547177467127234618784083207983406106838336873583775533087349731515641062772002761619537444898146114169372705557171146979649979761829192857382891353671724631954401702586201574336026331770535881835123495907560852069265401299836603841428283711656811058843530976631101117693151334317668757174997948679215973400048260122941316041436780548682977336898652558890511556031297632229952153003146851166846756669123119246690754572987890290747319113549269971936693458097391063727724333715453515662600494546227289383021184944300722549706993239973121764850493333385339631338853826024798815833903580315773364052787352733618339080748095892135831405812623121018653227109608560875114047484032833013195448147554516258413292415845337046485516401162318868509140231979712640095111902182493685048980766402065570760509585971683747595736304499370162648415332781255273711215616195940763106855681689077216374504420956162009931435404079666176596282225050224461939878144131868570553314783802462200734477025134393167345269637610207464116765964141558705016942487945499255689138328450410365023278142477644625946454377607007413646052357892000309367304642424510154292864749260171331201611055524322952826099256426071474202917730428924843404509857819113271001013043404197215505808274154943197108054558559910059228353182021634325116399005637928768048624948677181735018007011986894112087487353411905142294963849510168878008100017539378224903190214863278225642174626392517214857709195651449251678893148448216461512409028308411827494971122664910603153622746513830110012682847254161836880251148279005003982211198538242469763479643686072629783695066357760140808883611899343760501936183443822867243277047814831455763904239254387252797813924833346760196767754699313244038108011490604301933120997087056771582451818439590641801172486850031128219380097077104316092572957661630242909769120952070199383340314035830577372773445731587890998830131298869424116764747380952295864541030700669416658040388343046998402612516715680336435806016828666054233443374873704823980108469741564242834350342218526824071606991459991590790903991108037946361752736399912027096859924970664250006447601392275626137103552610835065323996657892235720703420190690560615138724437319460064706301277423276031500862353960040316321989246381120010896141362289994087133553011452469344677940289770117252469218875209538613774792004088047674001455800187142063266967514340452164866265084603962720243578927719402147604937821067100539420574260935593383627245363680127534770492919107762734329196722164916372042842666749285513396675678168016667683917477139786902072262137109898269374607921011362853634407439673729939736411794106981648852235372412599249735685748014095149737627805215040352504820715324603489184026696058705852387373640338184661434250066113213093487090373062995951059776107014854764033385313683251146339707018491256865654290047362235336598669602562890034395028923605024382309103260238716041930805628270473905892328984729087751304835374987105473276268790349247848727901457131028775421329083421880851833995264953439947195388970229813010134948892945282596765421262493905119219621055261667245875570841249125308527647393496217328081484325917006705474762846570871355322355472117949817758408665011164436121224206432329531457885539084221101273143807179683717925337784481852997630651722275005216381893169620808350358916737557384530639673555492129787728807999078924086737676492961659460305111027940816301919358529045923035708641075067257269374005532715429910130930043664454939656900963373886325014617500808864679305356079605967105776308181398899558218115266852825751035722247846679443236820987781787283379431370520473371633074358541135804235248600772963149114559240690837105544416659877251457720257701686467427503105701476906759610799671505789711317474425591949574473571910397086578619427171828245655861346680379849683049787362674918808446508143141677946137683165740395701219014461304579554719669956402156386490756470391841618939099076098441536565451786847508920854000803914439991982707479240550694876577445274776534335763611272639436198348041128081425547641513824946858822834717815328480423402496890571258279581787978210773510588765358395653225989889079025652849732443402412348549515489203708251724441089426876189207861862541009105083992344606897874580359841336519848725292086777416280557742138001480198455285190726112983423299644544490985465450280470534484648490364638913151955656925231898851869896005258197017295834108367944431577310331087844338361511075914964976490281482550932968206222093246854267076899974176048832685875573069305653429580089735272252409332541914900194765379835102021436772369453197724747636872723996432436113483704630576831757201112804702702255305626230517692968642233845622894511396114335070392798842954120981047262045344826393684732717739349475774769688758840446118688635804620699593263351782167028076002907807387820999257438794150822043828522136704579754778018949420484117767859569240970803688514637920740405869884872963762521131914773363356204976507688274879846816270334388580047899826551464345252264105873360977710435912150261780459594132567800261990768513589425306020791263594226671355485261590734174805091569259566776662362377894745258133466810485309297117032046379771618997244968246586578929685272595873227706184034476123936815306001815969491663019045364754937652187967465161405691400471350563662301080471750723854537974685543826225670573161737822081535105316335532444991739401845824678646511831368908389162972841378378591107835511366499259084932663580501085696756492702430665771828618077476193662522935401435492003517072238152170214041751179125750761341130031269941141534235113193968104509682982614930184797375747258910724768248002738210844906197530998155850674911006236041450814205275966431179283582386252613413303510945638089073244903748769416376754435334020682906674504672143929142324057728914372370671991723548143843090720581932647053197428504402878670161407447163951759113546910620922010229652702291630552411066917089647450451016013749727307436958491258800567579637151350219376877488560678865600748519751745854505099368999140055854719309280123734717363589629740312772848380174443713534569692460010406466788897542402435176637327702573095825095745702353728544112677273858657327626226523816957813096814749249713389278375230717174005343125212071632362683264768218228019665554306454549507657490024522261887727472436770631855552502892460763155522007750873299517296285833285953251620180265852242534528264278518655654437960948636830724492130136972135114818734169529022959613277070231607479430728540600310949919279761943446292254316663262081734629188442887843437080759973923648937277123553907345625787399314221551145335536588120486930157205281112831759856921881865888643186827832612112897454177647547831722078475230301449722430614130185218969576453980567849147859978837058656005235231386919906454594251229057160036088005706448321821614437571505326524573103747673487742222229222911765980131358931464201621726794517626436864844286118822188301561397003577095429515565714646813028013116556527401930849680558551570841974950442210014250684082783767616901364647854442591058909962716104803777064098984995463493296850503039482323341109951739526271747533256207342793641048439426060582877018786576368338978504367084531041129256774358519851912181480759931712054965257102261387473394928136083103035459092205974366951879682613630316441665658625608493680302262369380860595897301236572321830821959848752938825251763350452694101374574261323648739982609575166201052036285006288121902282181524379989057098856621519004532767333179571837821153853588180132373347809113819625032445106214863127874371368517037317409392959892348710469058116185657609049292185339831640720089008891692060484858077472536954961352009158686613913741210790020097374368961422537003756156348678509275886832866467736283948242960031608020877364668852364749315651703203594323708541722560808964643007468523523214195174659525824050877512015951787861396787496755466547545608641135406048278145745064721155969536232081424721375398337221746321852445784345533748948856509419997419574638212671370935689105935028983463358672219263996111479410691704037103447390381511588236034153312323084298218625024738658074876381204235141917259202403615831980655698259466750143341798070082783330243344208237729905684739208156041159913987727204971221224445281230728916027663884352202264113845731035139655650906273214924866839497344473801597281781029773908936997284906425853488893353581636452753787679816208829562880079866320168602329987347070121362335696487192872329419409917519493098923122180104376738025760047496733734369715379735390484960872146631560847038034174629159493549392698906938245905229490374548322463781272128455648916289957163243692346613110983862696840070071960481728373724416050496590731399868758419679841061746194507295441075078527992943389426027264197077094264791128431062158411319259579153098655095410985517112057332338200036210931018321190480875694808504326144002451819533691842745097835252911799100740980702030365920322327600591992237729005556658424166751333823004590602561375224156340634642388725905195980169034636674508862285657744265811721970034525357906283929768976488954325039793114263294972556764467324697931678003463448381817934330804251129232213546347809472331254878700045498101994800208456392444384095942601386445382808869917121183727190598322033011422276221380093398603749452230639269662891503382621643352739911364170874173799207668195667330033262537594580696170727218189275667689949497308653468164485436682356325474366615222874949056431567878007317259895227920546021952548900514697040986431013331693090305476633102044528906598558880999844407744909397810334283024869397284597085452734209005801018101773912264159071039660892243380372752950413370090920549995454197371199931064383274325469430552014207240201877529158621966261806158404367079783063822057954548933010871260246076858129100229074837497134203922997982641579465728682168358145392292981458481253606659492258728419929660245847020002368402690287592598890698876049515973966877256269210091679112729281652980720692404348668905420078735910683009610727869402467255497494244886175334770661393173507007421822906350309663663768085374497508749359744988652246999719169661851990616913470768673726335405899429225643620114742393430698085091988696363322718034273854665945657390547377489234706916136121865930611893151675787313454741192312896360598869191533261999253698870476405461714123680435320264344358734314153367603646251706242839650654973590660434643340252942377905148373188095040023652205735170403776609660217043985633007288888141186100747317202771634828170962615345145752367315462338710667318291184505146667867314060509776876091899204110262286356859610864285372649264128301023354210592668993070869473965447089257959667877125946403011329307357505204723853280155270755489312199106214213611285555566225014001902364714441480963573397004126872745656302719497175916510389041270481652776535954953427626185745874536441561881694995764241942606466979689471469621816784088800394017370733913412105709476044411866165536693917674067866782103874334779609476722950875361195404186620311795489359755549386783840155037074375216678192892414886547010875103219190958314676006637462886635095661010731444638239152305436014581703197908267764318987747783784625960691607017475009162537827364826529756776665741662450060276247607124936927088768929767060385276056409030932631217693721648221140318583744214971596543227343141438869186435109893896589622305823119907433727176867166725098642440737948771229022491313040843379309856801202985670530953966371124338455988758734885021263985656507748065724664245426616556214160147395260146978081368154388695471043618832899560501113662544261563670991883562757802968204325776121396362495014892215946897177629682135499738825958140977397427317130558748529039076030111797878503284416825005936147630379869316204682136669521172726978264240259513669362024405043642537691733775671374253054687611116996295331463598454434381174306847493394653494891546413920929689906764411058953841863080613625068565555837049562562219153320836911822713471803904134929380938751829544377382899390603663694537202055374072625848821146724075760027299681285057787138075783349778694895142485418812619242607329343935243918122516562526860120657746742272330216614661989785680022925634543752026387017792236575211999583867980679411220030437729605614694910445288681473117413738901257030899512527399974840222581258524923475330805320616346964545294811722432071608163174768806549021244772478940677853743898057670301558573548101997936803292084125011333177445732656082257557298867139861166022734396644055460930690903765139462640457918727236778935184527557448584906827444001729034818353788485287551255986840199882042500212084154886393407009831740352173431453089539971168129218230458461597930313172499019839391317051567602530272706356693445028166994730851686279580494815527618819469838642374945187134223653672840687817284811115362230726389823064126313775953848914007374664650485145862310807413255547896145117348337511834757417557151444771892809298461813322797165887505266163424432737299322126021227858598533532013365960236218275482865655966871540216388433485969214311615708308251466994016006154782486259288494458994387590821742213723349518991084026882477562089505230226354353521294482153210591755934122808604665910391364699775725465855482087278871188482548973000535401305621724813450400392053276315871435815279228059547507822884923768201586020912828570632928719272250221349661069592155397719044408379512448361830620442449582133208686886695489835145696139574089324452559140313795294509371255752865715290786743895007529036747290824263472839990061118374465541024114756028452578159106149276300839698027556753620289695033665178277718467140899223354755591991960937080220290804019215596858311857431301287213454631929782062208458474167559046992263454599313706101705164362905516526805277623643538602135932629581850394320515260060564044496628382455514353139691636101947595432613363408371598545910696884070972592498579987678731840628649477628600009667076611527381213667704744142282444073866610693090786214332817947720123387805066699298579905051359453752105421150182310945604039680275018435503760757125422101025519280245472955086312065237912949721074725071521752896157404409516413461081464674901194658384278758302697471823204124098961097720484952798334062384455290166261776793137567330842814739559354950978489635237875784992320197831413177377476751815391219533036755671497302207372963915078567325121066393342508776851140539170761129950840794072737611276414338304547604182068728572239160996200420978559898266941073982254882442081897807513927133011215563155450840708150278991076745577851919642590157811092971557656871906780098778322060511981457909873477525093730703609743464312340789254805187439589931058003932360785211181347569303274547270202483917640670126373900928268694747954936020599626529648000939844134401548294492439464867350117473219913927917967759650237777303391064716737728577388282765559256354334283659116995689507721180845751278451796985067626009621970317623742891475137257315741877882246982256209145633124816941909633011792250616131679269012361816100057984874609992039446400753270497651303410792556316200409204329336206131697744056539391494482966281432946852650043474890829080606476784765999320445891370994223395396738863716620598926906966175260146464665201509391842229613716818790384605422213185975188240485467016209334700373885514425576083105342940945319077924813745329445376074258366129639547265641784179529977653133902562917788221859898519429588629572209172218724668527347432501788185718532161757755886760425349882257761084974344864048486538134168506608251228211720698881139130094777804441992397998419207648382500622100636944876341816574077664569741402390986867224167403196720512677280721556376105754538643165527739702741323442770991086557222010749622043565587889636970452327535836537862591759359941024177872778139037167713427146753361689963809046100704423412023416960908327174051899976589553757735606448549100777192454230471088150545867449334783813028264846616931126586241263996497444531968212237993135518809885129091427111785068890540379441856422056738484686019963121417709512746023093212568579432285337979939469053499888741330923931646945989496377962817154804357105379787560718480019677668441733622852698157113477601304566204018020876195087844416759475157493853923555074924856830926325758288933954545866150046885370851503850293590014346930878186723423708370814573985419362266432783597996452829486037346136897820637624980738652205541863613312228422820480545054003467159872147969237454287086497753341755461834260522625070864083240911188172109036213662375926246768957990426557164394537242261665013140580068305029164411501436470708540077058316327250636129006158985575819581246646292405427618753878605076166792536978710492721856896997924797042344144640369622188857655383277279954494457277756862944904611309140801529553807900324046736743739054386619852810998238211311300372291477111462934404195663745756695832030719878065840543730714278135779416308260838953316493397503698653238628283737318693956848861388560134520074163438718688311988257025413967696689790158530182906787207751602257780580211514609470126037960755309377557848839910295313921538505814733876388208261869744928342493451757484158962067111250886659363659389080460810713004756284540397743219157043071784670594021271864350495459517076780603232111593141349423097310363744831874424702278167085875485861965903393883521515884146119713723349764244485282658510396565879921847900679968056845502302916585144096905750152529138254154104902148853013975039995478221047680752272019089692229227438131661264201532576248078574648156334424006377172016591568574601466171864705780494527975126909930832384048964591542880380076383744596968072341554697844290592063106053355571223763381893714380190679718822441421195667624491022636918762796113082115656632836074610321417016328410528741686968230189677722093810886291114369432782450705707208635749785088579562428946367008221966870706425149401670133809594868393741857106066759388956209075997532020539542823612354171936715024690036979857559635072583893805496943605329660426243678144626817989589679843440792444315127422977549894181259125682011561585418839231079305428446727208853226989530488607905306957979693966706988067176613422495034166588411840069941392221936159122694379694281415919884359228481949445863904758486733631571628779171928602975646992597088160610760077522054649657250096855839618607300063702668699338256505232170482458853457843120349021265192813777356155235895328057810846303515179751933736483025864535146366045763559528562913303613163873260581158931548563082075383619070201067088043142144487914353577886357918115080072908101536285788725196672756149551729009096189754129094242633633836571315700385036051142001412752807916438118690999953671367521991173764211935601570116159676030081317241769155896866402470046448587076623811865371968847862720858969986772229615292613242854785147405444684695112377676688630490333044695117392787351030407482172574746341450903575644284146593069577099126628983395940296818007869295922694434905863714456300822837279860003400729917621618064826636449358948929567841381605120439778887678601698939558767913571254375445759075108676532084448044532119371897828528234931291125958724082988516659241379025633899942847029133638051835656149229399893368641185186595582218588927941680987556735171423165359965397127014979763320314811270648189661521254558136247045567774056716910676072717970662546781167563825599568402464904564711678911324807028449507028121389989225972505483848950112127257401923688347955248027380845985253030333956538458215398940823174084835282773044387073779432609437765541343059431262679912253129025415203198203401223507382867359128917693785414504270740074775421117246748827322665274885123745113151285747093590687040791723529296604761968359850903036334787893349862362920802477913867029383855879498756000446941029669418053363604580828784137994739752000682346676963163035630034321832101735384684568014251741140814671471167491427797812009370087459399350174767840487240989302488550053801716336086967460243512068519114859468368433567869085152075044488891387700347931587067380103530810539154059225502013981624075582582536177190571215523679743271150144050044987681879003462719059001055127094749331258313008281925341718211615842562943577697978322678884122688639658667519743637187595917155208439022608251928145617338905644833755194214833344454693726300999677525433018172729262483208757317268224036412615574263248302292152217135947761421603409084780920131914715037770860356268715751897426509676603988454216701821620421048578805948797348652768911936101198016016176512208793585151266816209037131961803122771657838919607896013804744109157727038607288170299723748116908159376828197659072326334009556687186674993715554248007376110165041781898968234785550980412209907220304896843749903678841348810430457461114930079353267274434312295515480213804873256108572071292364951499249971663605893077020099664900920032477172445460214559845794319873569904320903012888043703786082272886452757876838484222005168891957730354029041676995939391395283279094308032396846873228969800944235134299363014368015540950851871282233895018520429368277015833084928326924579069855908957687993421141811598519856781536018363984844398061678167366162977592603190897479576478241504968114979179712285951000671309655005175742708271877514910969446428401284093442319184289806682900579850880077423039232990077140641679327427635926400698809353605185853411018143463407887786564625234369154499839279161354575327983272240307810659541612952624489702810234475058301590086973231527845389499004594491425952352522999817379295543318634378203504498291046994887357765058670313728837830132134297796160123029150539193814752673011581104201191016305133014161651581087650549312523330118161109140422294489965748047444637048458225858281051984284109669420132026514285843212423841243194106776395768060134831372293997728443073007606597076061691856495635974781655093644577236076085554334693805083043142911651171098049702942513246808530049330686529793931458534133384600416514320789472064359926632947499832005719944131772933752612872240396317828195182830965876401974859185455679318863582813796872339693978734669504635355576689030782983345226730572267143756467190479297551190419395898933351429535470838919835036057404609868074273486016369484651212812661819721096576153104719564687657600894413701247427418775616423213700064428180766004669705266035496331380006886431771018433373678055913564606981700239488126677160791300042496164943672040235620491802217452554530112336078098709165836552833556416845193462310156779847044817894362267286709285037162244525799393047495601646237964919368973248611952699362302305303685013531560862895990275272005351389502337949367175682471735262716373913766173913488223471675821865599548019096769774516471029058941521324247171181761858098250618386502367787583362731756278013179834972342248264316247492578215427244905407582213764641427860111821056675624907895822711513068099150048766931945424926499647050124999842807069674033006070053980422462585954962671677734606495797201202508359716932046795781994002559733246351161999541969718936922300012074297132297040671417168818416335999622404769024501962437889784491228364311296202435568129752285760069820147039363326471242313620678636181954860051134952675384046691552846776326932082729958464032260211696452518619362113635555074578579188533251313351705738440962395602231643929243399802595481816277951287276627510540079076675556044634343403906148538556608150081334184044766352617163061950724498665640398845422231071053485696330928119091120209387567180439094567914743571121990009585984762472295838815686648822650799040774623423438307368102879660079193671616536350970430890783992145422403718820702417384960851115006299849815492203182309342434440170918429397455286486618111508098038467393512887520148530621168995302804541486122533133722537450981028930090075251370884072715281075685131597312727019316751664020052012247596686400167964827747270447618799729344626224275926518928863077845789078136133436857998291300744298711094118485386549562077341018659859972329659878944913510561214743972509455246186709577675972446035070000907067601000550708206639614985985964490440988642905183814355096255323416263189061983858551769333491860622302985603796509129111782374057914568546136222479368475783283809868381334013771648531672307899636335726501653984196410522159202879862568466444781368319872265103845204088772883144085356845054719778127789327134086594408705787925878719276026177421919120025465639095492487153321188037306909940540432854052938617381464963340430883958826402631374796177926995758899118269170330057656753038549816438934468883750849441787528669681156171227794227979078716291118951368857465932988425932403225280196884850260847138581284381290455870024689512536409808008258986540142849593902304567606758723816130301030411306410122579005205592917864952696132719525121291489539528718716714182432776717115681852972645913580959485517218402385858264580777924217983211583165891086463894445366017031622928674506431679592707029429633957749820448611743651167891033775643923008853555576753744826110917098261162745979508039964903009680396846383561581094846482735887188853491341088255293096338667917110447782930246846008515324149185148504483404912092207015612596100661568395951830691725302414504249914945354727082379492151017300069650042088086272917355804638503179676957889805619191598275736064641955051547936974791718268699382159953802769608864949694053327247565181285569237966628132204886725979141271442073802614891372253868769552525127668258371573422577866264921541689822610463831707863720158906733271890763784867903440608713007734189611034418408316172003723422047682526380687219662393500122359397542774733548048088860329229947022278380795904770126177570631536330854289976801411225809512721057149396764087999557538367700292746088543282968225702223084170930969191357990499325156211664494347110398946898261111696164065545728681807226771093978981762615811079766906119124354166382326289695668836595896408374834451213481275325115088778745421988543587610839089750640631570289625803590083183528350432798615277558390949365330184978787773673777989961386555803757906231563895595941301399537664180476667151562556962757212326898223105002510125799377149132100961480145091119131345757242555693299890906761356957149685822427009821773733673882285217563210694948677358833692563670393803340482319867309117148997164631220294733012954694533739328680621487470249230912181960800997842004427784130870109844755381421707312589642028632997403482398991618596394022782393126087646784300160051085784155793093307426478763549375498692033573008126798154678615611463457638280395705581395144254147068207057536841526288970567135804677341690307159358416197831614873267094260012915505249443806743538554905521342957319869333546941683248279044245875907753687075597520869868561974671835792996370712477111701313797416097329625721091861634631046241864928575060326305247917328001736062780611759814550044794172619312300935193342323621324042139044452325316517251552745000749232159053342151558780118345679240660104787426509003655624791061095747701326804745701258380631378820875605628121558003615783272684405973956018348289500003290770759107893391293478343685144206078820381443058137966478336491705924211094086897583100179232886724705302212846334140522887293044512895430912435062942535488597326803019117426042067418900720172528566470674587672915675364434297782901159365775717295848918449202219839349061607257965984092098807807876710387171846567275195709712495388464441513022036610178730928109089406731569216266051715871454471783437494886131081772166270752086329125838149446249390978430048788083637245978792977888739759297990387850225425154192461132548822154171696467104986746426519482186172641167486039110273833279508403185493664356472256659558667778068627538697011392134531634858479312442958030072831699111486103683231286985229551091913129937009423603419474388606326262282697193971753531012197099500113315843524879702666522581533904468738813618842473196622059291273681534126793936330438123902886254613641986263609617161110383782178990883623956007964562565402816153427702756409582182923429893776036125440558349620456459724864739166196621540463031731279234023531698281396301466845205132929644785879960414848421087243821371230200502246880179360267237745327791461794846691706054196556897127897576952525964278220446895676109289132174995629496616398481294388371673600511330024894896076040934244035241613998209982660931509238278936589452618750265510866169645358394133805246936570940610450752856328452922182496136161187118148372780821269900201943504726241391254203363548584782642113637113946149217472385759531469855477560474684896642584006965616447283027502858430435536275431099638157405631416315797832624734248155504618161739994014968783826783743489455653805281163937796216216079958468771560897376681420911463714493049048188123372243642372963375023757329386910243292911900143872249211194067332362558139102413014857864936161299295077814913198530795046055447876155741054722088675105476343645227857389968349492145164024071384262994333714636467870344469437230990634885667568807822509718072514475729160945898511431277644438991307082909002093814302927525854689687095367678440469561846179349394023193560656033001244605571092683906172610380914125996641971084269875698395359865251635617745097113105758124895020431021321754730733858786625367077321813408216269237560364125678663498594386541160325491780258346452095283590826736920412968502532873134641242113829198633926754324191235064515139078629386835995453287412258283740622882159967564455907859792895166390871666496266231523119790152091389616977850097190458022731640891247275098674683117244417345848123671173626696917400175430974266953241946046453071419658038597540583377164452095668937249462695464249077762283829705804177350413151265551268625004839893737548969977200030017338189837366294801558258476909973767712010620541080445501214305309738781744259457975293305682248714117388383524550920667494682151454993235363953352106670886294849977654263016182900831613632467294428686144145845227347257606012505847079582682174342443691322485379413517495249284008828187622188258358589335566072281573875312270664103141926454428000954522755636233013603118642278306412089686854466497753730679517320839201063164028386029444369804368722106543469311647048192206790161847527586619704281970881099023184460757113949584170360899171254286767254650871664479642362193298839179582569163192011474081909247873628457470519386553775872732278736566671803049882828593410825603666686030420576312411805672835009386628116319883404125741341528104920292899274487276176209897707616552334041389568401705959605726667782796056869736960277884323033393732784379826640689426496382657668816537727133438087121146452225859192601216679819393834348905143275083209419095507597798199634113011002803238779383756035567741555087840091884658793850652373426398814406064092276877990574768531303348287296430035663072283705158455696921755780643788002236108215525957543899544853831516382409920187193121949341181905479561493616006863141590771896318266263270349602356466876671760082154534000064589694720456320878291875561165601643211089117021632189697132988428950140951331281174813929127796811037566949905916426032256237720553420143988736316464595514622255898186625932565493361731107680175078440462912577515066801067437569703661440060593707137294000957215338524569078122814700216681514981970966523385406167571400548914785689412131810124101784408596215763022150215619562598236629102780276511903112259997616225997161349382721968618198592418474310688177212209494042772192917295917503588883482327485261341956180404191907053823533835600692673959045860110170185631432660844265052706370794553952377127395704256297099599495192489877744745077270129322606753357219366940818081914297059577395781435160763412519697966413558216746273228522959546129383393145141112912618813562815655511630773016813252527011530984240907844927989867993616378324017896765495816006832124205170631805315685178495544351074885799111795612809694514030706908660340326565704720019862041233214208134238751887183126976888394549426980192494502923680984530436453831817432034842057255521119054644785719403766999754519487723874555436561116140033563206463677795524057290023186169709222977356030427824122339541394079873239280970870158091172140803572542218964617887532169708653007605928400276127199724010211401316231719182850127332092880608093647784116289551046856430262518198688819086314304119072283370759118745283767520706798050737552285350579675293570960224068216204540767634988408785641223713562911777999464705449785209975232220183094482533924325697886043714803275383832431203947364759228127766147653833645052370059647926564195575384435352972793750113861201145641739994984130484100166010281577545544612815801296978427810548290306406455817401533825773981349361705416974737446802099057012382460529406009914504302123953663709082964515833626916119905557271173239923583092104957379727354450419179793734014468922275023107966654738886194634663700207585744601649020770992968763773202978742295135702726207743235772448572756592609969751811052290603336351403977768399129278222343717506755766278843485190199600770841604475688778576845108735702355607348192785704267618558099917567203562563742441004997458722881815467250953932709384617335601819054472483438957563394420926410289200898454687834276932797321913911613249685353459887296074723779842699731235275726233271927178556569959056561228339327570012450117490058005064919730757927012381109668349338940953891033694073614175786286200608926045826183250013058910893310711153860842009018865948409216940584282646301792333374447824422572160263739889329325125019573665813536561997467323763519050759094074352215479205419275128666478871882079042894859600119854152526741803286968279417540932643146763739749015184417221404686484439862408944051961082041428910731930186159731226832247676818308285104511421109809255187029150386915801843807388201639325260038752601215543777035186429698964547905050663799777386448836793686467349667688241740688914150839543039175814135537343235099633166470688373616534872575820406680337123345736769435756714119298700633670467420202420170137310460945549631152947537306735984126651686443916729870369326579040791315036359320898253061410446720634219151124135694057283109479668359485380097918001141157430113181817717027347487873254407950690490985314727698240057359387181853527423945955786390168505860699738740593739958683818928439224212120570809322269871517530278128058089107041792384401476676149416340892678989931233630989139023496911677745093350305108557518796086805640887159156971163219841825102559964797574884188589250847989897408241178571651214631532663749850397123430144320509707031377705573298378686966661204900146309562285914308052865169610336226184068662152963505026829557752825094288240419534214919882091079052963365659804551761784983695420283981316477895278058953915418650332269665560512100085071210756356324619189664314935642215652250887280330755929965064743852285622783046268994799931824539179623801389890060447064518555017681642521731666125356436365683157431833551118331044036713057637611321005346208469054772775614183469843206004850207433083685628064592061729324393198638364430771932153074747850059919610199493453981760193103464215699566363907956631084936096808458336470192716425522068727350940575406661849555870194983296719811359136733056237998536298731661434114732407679925365678721778139627106727541873083061990688942595845056523760015403524857324569183803024075884597176302633376832834278340236384321610095000429972108512494972569562755505589515374202316625973879652613786768983596438478797233433323353511365705501696659278054796650088985784161537994599574462874534963331608068018716638644157639014649957685910979572946261422296245652312222151769580315829064696139492587220178993181326909097047798759336519843732172352690092398686420022014352885647207572254755798448691923263455300284203649015592604912543556891859171141036029821319359776177927155424944072276028098190502390381521593555252435233438016471011826865502395306374837452271873658102336654741843102411835739405294024911114069268657945457952660571255151541634549164233231789034794702695509354130989199145934763684488644448238352884185797818560397425609168765182317077795351605860967587780741768524053813483057619899794789507066711162847174814139961476519681052334643564653314881945920669745675168416042169169093950920943946887244696161915935853389635779279112598136544585204737893001713732171640129284542105213104235947305980042480995633628493530600021412917453849035235999454448619630588598766227865675147001786905052809689628897861331351901043870738861942846228730092428854784998602307791571837131011130663041548411493193418609050855089190734428549496774667016889520676374181381042539562199155869594488950955645160569905748682466681638124365091746519655980440812897838502287625503396042371889255702590267462767841769421528295702979230262043928655671443714761899213449869040364093893827116068255925424870238422686310546669276816295065005932653157496228597283972829885976568227874813170758643038226323560085229127708544952405682915518902757849094111001499923769719205628514876029685873478377967234010475171580972726945568947420402003290427576190214748360276095717388762557309431501104364678120442268197757899720588378916896178951186699613079759822758203242715453793576315634735135542891345044085535241175919116465672574577159223750136206529873136704111628040894653721652423713427181537090549014011844055120913285367413209564010171513613735294852049923779799493689550648278913242831110581149249551829328955629543521361943564248715117425294412520349865339572489207584738423876702137955088756726432360672198215086938258587643955948396360762893366895726668141840868310763512676609180228178556030774716241672094406246314422691011149341721963400322988115004218373153804186516969997791732452995172984435564048934500589847556821324734735493552993161387180565585137091791415037484907588519687106063256135913513473899325167148112834681570829922003589902389651510142548001485070468815673157903300477910604891355493626273588464034535933806949857885620147594973979579413493826879362406244201744215242052113624402676305564587311640581561007953626497781065731790579673155759501931961030873456908022333996841724388208589337112669079934580827665845925338777317625874656636885707797789863637314202753534901737365612915746888372093291063808974002187130049030644516352779767729807133130125728000795929162684438361447794901339942579745958672267116643117209907588043080100958513830143033840757070046575100823236485853095661261535691711255743551369175918702883284004258878146787447091729595303138431666808972986810893296777394738248381942949008991909531179426134206107276929267187260820052311157338846601532669062358939037259380992612365283562756087195975519086360871763860621112926726659430566027706380169827272194880534871123434111304834961313633042050222295218032449590102823751073216668083756356083639789744312576359482335975339267652354261173902422336229538232019322494695776276103465246493717180423447343645881580333982884523999708855309055485896727247736444101967120887787840658312365870964988319418893429363136259241354538192688557873236680442986848203018654665348817928162030383213981043431487235282078903614633802571671072470166877826938222446941317632869072749088411310726616090377275502496942908926895948737480324288473715941007467519728324399245642326829603199094617331094134315464942862773010847622944311443072267035497342542270722296851130748372328574526761478254273758792199971471948186423618290695735040010564607481120331879384993688303814003117236793014284594464968035770980571259266415532704426086961602960587017222310520037353510746050774862281826612667304216220465234205393457637003284688318469194065222209833382507453975399009019773134405521039125730364215424484707343474574334517572639474439187484060260281072333083806649955134216613948014390358071975259016039737985480993872509804290472360987984308979564393076848613865233828205353142565515000960812362615628443263733781541858569792209255163367193567027600388402610523544119002166936493138997160937631346119373449062681766427256669007887839980834132654041991167355764682369648912405509300012127863163237672426781559492592495158807559684595282590802610164268636445075613729456193972253781224955177323353923420374593309330402018410327357122644226729396087256872743277407553645350444077491191764701746902762016009337860255968440375404360170306982531917615891939706810198596242568406215413837218026799575501765264176619756233017151203319514844410544545308260077232968106526275383152897558435112771547181711019477121733965420154320107472167040989742320114370994287897834660007539932796731720207701597299083345028681145887617285541984918627572138878135271340948928143819244163887957437756439955149554884560145277733391657462967733874911720300203559281509226230362757599935708889406204087143646724342708731488852168106399648519722380854602207040891937396870700568915050516583186170363679177385645621571390862317002169353408484537166362697379826603662467980564739339702069573194976346397443103503783394189857037055907739964441863756461032404337536881112706716053102887787428357890765173612329288047904778785432813529818156376857088025723776234434764706191871192755430432727094084590306570182053048113620608214877391582885054987159671064039450249512376160309055184444649565023296851522792954112667948211085083862913485643665985724826143784826620589680484448076358425185969136564725514644416862276985386876491965151059798960815326981385144357980058188571092955459169701272677546004185251148340240981773110916917490858460122052425184334226958526353937337024355199414983882076947486182678711769030104931998330929355546079556000187728498548791198034122397809689592895934776741052640952793144602279410771363522050466894779051668151952430073343627466679739277269509256000092626114663961147498079186432588513076120471608287849522463408857395121588314852729387498841900803556989810704400701846762424326897740224277840123754545451826815835188378889138915732884931403007478347439616034008399946598541458023475427185465418307778074454031737403579908549766884697048216563464517802547223322932308589837645701489488033947675431944184754247023823050630347536762071980717768028247835087218162459586957134259221174688090865649689393299965075015251568963865322753895606155242754648608191078990165513053514764517580655448221771447939679377183003516175381083519546563675829067620974350206596736892125692929833676892732269748311828839714060402799613793654680574064840584083203604838534189853128865030654343905095804059417885454927805812387188400382789052980708391268825273879595341204155608862160794068126851756127488817979922098059111527217945849648616237294500034543953259889118170780406253800246499903635838752654662590181932858412796328110834232983312240427764490158611931582154642233618896365236788563482247918764512051211644853085645825157587073859887992577280427500773925097438343328072851491149340551294968669493922386020647799185739860247256397794386364484726619157762705571614787983507867570101934988990624115447864862665100371340637413934765727780083932783526414836325259866591159467101354897636252754258443882148442523430316297188210577857128700229172524604615592992566528909267206333333564329498734183709756077984001959326093492559341356721438459754325626336821268418862903108738229342011385074707116753771026961454633050786690531393111645411721773414376400501273573480943731032639885849805565061011624591734128956174095252033193131066319251852263282003851851601377667954004326974721908624506678377409831171664744834313515125305196014240224448177285054057997882335073063899444602793581959592428646646082204318559098037441843798096650702788084154877516440362715085895618199417693909760899098266912029541136362949814495817493732850150167747371741343480906365089696781453588619411348597832602887673381429723349234539920344206774941094814014053753465047745147400710219326865474624197591811317796984106886223332569082086114625286882557153492695097000586694702546537273115076750214688573496120708926033348376774323192037138657666114741392597572069619193946370793979989359394595557596241108165133421827005323538961383592053337171647192707186252850661959084240932945345406910892617367642893962290700333769784010423897938500967743116673026703706112119628014246184914768649687288304406989260735623603030463007156945608118966696142018469888568275671169894051670062979143970023613327521128058167837315873830424494161943516308136454470628092101908532334022233854578306512101948457516518947423650033453032455479792510785634264547835343485269174778140213380312555113660428378869596185911071044317575287272818170569495199796653298270694638379517200676794684440523552456438872356315240806558349503684920376032781179092689475820819074201735688284338323740632383647218429661709172743579193882379909990580323309233299158063611606401875541033369588621782256218863631397978727020516360875970635849231839588091935868556457395585095655792919606337961064837909277805130403769543229376722178198333258408803061796950102255977470167439546599710602274604782035124372780394927909188388292539496785025802734011088610738543338742075782783777223237975241585063016674536044123711059801349429630527172807985432535329309118111182608462185800678612399276297099673776543464318877474389522233871448640724873096737711076434593744542253898015621994546808788369982290272511174682583220696606084682669697947977953823054674109930021909855091939900166785573662116347426218265215174581726546828749220772457461504993614593485673595677019902887790124359778434341960667296165011667000305928549422096815302827467034652400180762306561658740807738599295922222984403160251492514527442364318961477772401067133337343154437543815001541745667570246798494898193047728973748289477567501800544881505063957147174507671631655930071119097149671567730803615031321103678751939518486899309620429502703424019179737699788145065517430848535200204251288743009276699381244674775213371988601200206053571719425179306821707613095116419275966968811658846447341944782719834849197577420071615519817987834492945894627608785676394385450773963076881902883295616038280824169518638040998174273029692307166681783646901332282100230386060844111566161172659980647388386001575644876953528530295525660571973507553077642912930563960679560870660798239177468381786551585690669264558744244402857364048644985223374021814138766833589183118988895888818956547475262160454900821915866490040109031844847432001249602396179346164295004249021629149442635590810225265957228420240135021774441549939092210441725764204127221487484722168710704725286789361330403091623567408362659374508883542033861718381941092020793224654524907528014976489777232975303442371580881974277642319774668732056044079793713814999886873580154783892626514622183016279584313974641034197807187346689569294893181087745777065759477864439995082677698619833805146305953407642031896816742880259567338653981277934028451256900090760863784269128423978576313549489250283305019404172431737304564298629383432698881536106173782490843520107909007275568286943355348304809943374482693905374048629596047549321659293495583500828973776845787296278499738772790282254350643307105728075078456217899086553984762179754563341040654499823785065384100057037549555749518838850592257864734386080365937015267942848341109910416922094347419618720195294097639985275579471252666534431779081706780877350247883460626705834273082404964860059966076049951058180527044981279433057052924896344031498795639761719439848509832936927531061297453688087063950213117596565238899619843323786979023333197164140437164841008117135546268985463467014639317194510218116199699928774216767755682578010512335908015298214905824344241926815395973327615659027980188097646299401622376007346571376608833685847083206053161153215002420590427634054575825883806624090010123749135566131658447955752638247711259531601106618908394345462931258043883240554744796423471604097983004783308743424846200139794870128349484440382899263906378858923793737985031360310221683450572567367257601717163621706883923464343192831568163375440242993130617591708531835682391711801914131916319652426861497206627690929954879884775267955703200955060418514469898466520755359319161480040554334777629553373185363717996186878623205663898227369616521097525993495707951964129453584814510411953257070274142525904139552973364381791176487831303559593217876359537293580637182013561339903905018251199448612529502852866388386046346589181418123039621185462316919484033349744395689393707678329014296800377260226448448181580608871887150002955048482919447690572315886217723899908000327150330963877508267582923642714509956034234027240800682120331808711962732346145579258328555532446917917549245369424662653061276710235324839039487209052853763795000773693030512195888052742107757985617860296209025084208511463463662357178876540354030801301358004856888514910343237824443533756686704523572753781080105020406456650425199533238078514205476632344431447185094089411221922034308321225501329890773865644148853838861997152300999946488549406436340676983443832731794506307303221371274964015954315623388121477102650664716765850353617811400324146041924520723391161612544917239004418762534077437081580460037512183342777287915629098267083785546335243777531821466313246973698154874267147609389153283270504080668244513896278918606058547851694397881340946845334235203853510120087019180077969557956627939020526140711262784758019618643681477290845298764453197963751939387052390589143674366703846500713606418415457496118766096061048819562675984122094826979902856171717575100043465007693352143966989959684556565521321329871980566468412434566787334886116919948071669621605598048436831669872053546944363245176970559158804744316625121062951530264951572415255424616194740592816482291430475162509263379774205869803331449110984371030650886804590215774208003146943119920669525756045931978335244816396396637208302955959785088972715291341946342693253644932809251292483930694967515795695652970754772805740956187001633875884179021082893348150472320552597650321736810012322639936624291442671167199653040232647313059754249100148202742238803248733035184983776573718907933188161171861429183564192584466572161621997033290185692069766321574262859395387657414816645114856494147862978304838292323314569512839862735815965358143870661660048966948228026275037043035238764940654508101630330743646846654856145868602438544163117867095668902160325876519073857348365641606927939942853013119324371315128631755371554278445306248575768348614112631171371375663057467723690275131895015065395477252439871361961370228474653363971752157763398773653852547504461470162134044067773508241243488990107444484830210718681344037109767941457413521851281133962005582589514085487737904418196991101903361092849535523835256087830171508512776614216293430934890438125108016467324204861075957473725028393363517165729009490016444399906533242878273791340772472079494846746658381381497022256164216912516127153136997281226056331507075985225196126543026547680109873830158213161492766823615036685008255286774443901588923568828328150856264262080356248138868675217569958036871163785403559768930527459438798824621803590922297733192796912701287892065219836331024687051094285766943505875227313713601450973950435659013191512691853056307505031400157490005757420508107349298426874889860225905720248974206603347004426456974682586808023111736528263790226922736216469138120744183056764300349234827620517792558449109804155710055601576509711332726250933658612033114039930262777909429760987799242034765922814302853131924347489772892929000858074092989367375256906854284067969428778522497499124022000023747437901415076131268003161830939675995828347052733462667439681165243734554076118969492354228375737386776581905715825937435035890974516255119233346169317519856575034765353352141806817604800188112930147688246272023038813448774883764645763744616479391995358264222122739877606173156833478323754708324841880996921901514170724310286155149529497080834761982726261492797912602307635132991817669961291467506756944378053053727587362236855876605405362159317318270779331694090571925013290354460755501770210630074346884641746494398025981644775631898219972134845398158851075676147888211047624732854934338614285996254698595497612495956502727009006236630761305791875270925099994764783173139752153678734974744026993305843528779459084906485319566125313806212903719354606982893153533942801353085613096149563801502995209045208850493630014908681201616272767585770691637821090493830285341099710428541438016849647338713317722472655983736861347099202828117670223563866547419290768628983514857373818998238524812658618169075138256598225305965154686975512837532348728849657400539111938261159440008289735876574449434067679646870610014575525231491626249287621499128001857915524092054917343952537697402102057150830086240222808472592290493264673632458743155941973816811271553641853053987424489281603082930267212485015440949707857163626795403394893712592084847367317046552797323954197418099445967089664304083043053584212120402801464106286301370245306002904193725055793004969592791864224928767646650980788973357201192718660227517262469572558204215338938447350838021981733658576189152120089463414947197768188644240490094257661542937267572399664457754622655019581954022960076662046752603359788603072774423380605359102853339605217634871457826500135712227152923961794739483673230543281104724306354208156441915303666627412368448207247725970978627019639138172545475206231681883615211703027005850935169201436170716672166752917206911506470780294684706034406861191234416948406236861746614466973052311240345828839091218128943425272683606173982639362678375549412719076880355514256476904372690534368750843733379976240509594483004985237167369393198390704191268769687001695015871708233289685635680151680172978240637172676946595970534669857384897602455281968123487451615703023344822788298298163599339606227440946978440648632084501443625576079300778725024502427936708771829210438099071020317381380501253646401981412484520885237035525343098943407373317463344647476318574683889500212948607617229388424557895134297707619997286083246523083464032757628983351828400590935025725651416716155355066763826008248307309475934819900287980868881541230756752794228803276355617706318019182058186027538737588274884486258393186826540469725610882165366519179960124578584971027266928517513102488181121640770665129838178678619654884399796118213121796408450677810100514780478928248773833968834077830497015130733709394303799932574965513892302272340080327640110244644300638574961278572404199797383078623839310417403932569982880523561365006224619268458313066831348126352902232185737417838498020982776230615400705286268083377787838709869968273148577639230515142804282952503486821775226898907710492876295686694172314806512181404305928679810911720830092367638917505699166136603636068463277866293013218395225199111289451640908295993626018477069307884133011425088141065830268795347084953744233938691104245555110286715875398568756130576596075874901256128330018384281921741956511498557744656127033324394752975223751150617586116061672683476742307527210232911010960659587364577045511073792996713532708516361005052698733956069204584599546100566183121607924899841392316256536218616163037308317081082916308754042249913391049605849037711938189177950741733882240437656093613675241272866906759426073666630338111663031912609527109604861188950099696745781833360544246470466065396686970450096269828342586137008411151294016052166282122691410531771509889827204908509294825588807754290889826237907060598091940962471388986690127713224699674364452034179724079817266648297131583562632023987659456064494603918569680905585696011240312540919504027548995560145636472412384334412362088939269658952262950209283296721174074843185190589915452655849146520960303458591624337135518056786970296015858374934880066340264712689719691898081007343435512964724477020063286902591735850245375871200918910932535159955317401391016032157447133277595277602266396332647790056221379649041482900433353605448404642676315704245319831224508963238875313608379601264776579459016613663083519062133789501978806866122125405993696050156102080699661132430751987349936764855073039061887993322856095589654187548791936557145329755427309809031715118053255371892464967600509353946331253341881838194282453470461757236361805404582838705798433762389362900639241363326539091297693665721075300711343468511253039454714729131774044298902843474738771094064668468746559151764948062086455109289402051440854523863532902468524959425450469105069553585687841343740266869763488302075634675721151272853955800226263256378035205676978894569480021560910832543221569247278684921074271581426687487208563111025439578677917863513903651772761903640161122324318067919737041418357905680845288207157834409101674809268231688206361483404643337690646125818362779452019640186372843536795005037264737438292980192090759186010448616898737897137399721572886704421990128761029827623072850920632282001170708064169381178276451146861441056148825604656956737378504673782273730728773796244331865589326542703592946857470255741127211054228173374466347186808657162430020151155801451555736954753925354481620568104695154246732328405253814665247150562781046459144584298407166571934746536384002036725462830759611628910875998281108292943213449680318101007997874556978791240292439923627397406914475078139965201639386509091037289394580324528361926997774249478700474460404751946614353976593770962595038910682422403211227906287280627981698642773063223836113753780529097983496480343583904161026837690031844335212363837191993891886063068035133055695688342293530279186312379391113153142021733872520492074389130220507846136081000995966351351520109810193250234576151813444100326227378225957669753010189905820024443712922750550512430841256330545425145558962861440896962249838556012972644383593834707318044174904163308621914065038477486945472777422116905496371656462094638280310837394328094285362973841459272507862968750578365976208372758956372760305978391787583182145580781938178896311048171864361518109334222312947276021477092868128639652560027873676241366904382381432203987596619585768279829337164350603563031145032043818840337922036224329561675858301068199842842641486671702751376583143190341526923901699899885053596018472316030439867471380478376009583532359493492859269912148282308686586414911096412922641762682689874062224882408395114680738454038603943878798555288108800627051712658593453894021709325119428928741253719423801134889280443734152716034693924294115348727915938929541783373740599460622675602160843045003434808131347326563563472150523730980809442696351636679169292754123020360277653479533451698529079620010299643069615386805492014051871656882887661090286883096238026365259463779034700338299661271313208904620972925963767958697968666364082957483927840564286328586102129567770254160446816419739904371321686153772490112053926727128987404773983964547598778284366999331815723437015531578177441038754511413026181430040035298277968836722647086620449967217030565926454285786475036377504849394753259362647700682660708185770798159744613186420539396057457500682633942630443359726368814096340891350362495229098482213620062457049287802816578665369237662321583697788168544791497116541630826648349511906911426913378472767210555189054393312185007795517321831611976898733162918916568671437805983497437821603389221994185209043945928073293915688817346035611143875835985554279296070432961427340290780607051943190866252266170779796686882020853540841193316576103563120686218849805705763434325264717533192725222690669205222153588621584858473800290671779522832551410472760098538622777198487666313435984602605902095248677262724006898059713530331189269507125108949949985754015453087606639155589240798314544766888541527893283301889006357292873099549475703934571215159516627983170251952253503669972611271978539340111563882859262948439041891724976056160513207093593556191095789910121427277222011047255714339930003144908246179475967519013016776192993040889921764117355744285522900645690550541017260864071426459080901002187161864598629066478474864110509067949040093144431557242749336803254817710684374721420076460554045268259837577452935700381534340439817291892193831830316670451446433213794428747861728761981987956367605603484069261259151854730084253637765746549000791494648149600491486812415669658660214984017007517566794430864528533951647793014029525202819263968507231231910010548528795454056840846076190792889408835531178033567843629176687988062628886166868709752034674216203006620314007451505644849852859977284148894370177984672592466511348528624671100163912772417741414772343925519967692972965630228984387521900790225908496044992539985298258839364504760199954181952041400807075824246020089442260785822867118176924108925659924881955696422456750648064398912855612016504837938962681728178424749487487674034030531350658769134025589782298994001020043500133107819310893440459558999979095294466637921151101604298182797587663346247585390198733856790683037963040246205074775294548465453594868379836906456160901893988299796361808232493979079688938926036267808105302303275841981804097005402058789385769334443449513708293384581512558825466329988227638480921492946390782134981953682647048221505500336326069851892137638950791234573822679068513616073531874773889335814668387378728914775106258930619214736061146884506131611305968493282567470169023383123604280950268347527909630586671120383008660799583819093307433296184813539651975887615183941474212753375067111954191004412424614663966580302503224436892554741787521921961420860034658729827916082999792952841332467470168981100864695112060790795906184758546328405676451192486147961674195472334741737517157741472258068782490935785899739166575879361258918062237390841671897103237769853070451376239220134289580291874103943174683584424786894699659450120899526044447407486564862604894625527440052713139320100837814903948601907491166396090507741476842856212831071285123748037067576946153819050734139995501140186052521260944664135277967871222660970985748923652422253603272612527210196133100481565186280015277577679836879784534569394765248531456429406229288928576504526076110733735259243489873836361533208168653923286837038475887453787466741663780755643727874952586448643074399695657444531187133363351564509054365564840854428200244677901913047513193274893241438262369920532558930479959595958955016425733739080377285868036666531046146763501090966127590636915565131112197404693627564388773983230826281877078263410659132157323458317466936362585589198247704146065987153351356775044767222743827175109461216514662354269251032011608059664044503853728930260727773524846495474337634612139131457979554810383879711105298466247110193420441196796433280740453586078853236861009531924106458356002554036975201060936448560749045742404229753375281170612711702634208105154809347673612609695611897161034001998403356154252544486842827407519249851078206511542884630997226757083014959103341332257262965108296508118917569072712657024477427766877184463125253877248562206530279300197339131649295919866760781933277737421070440535075382370477747029957202975152350288562695953985296963043293041425973677890655701580994338328970897894689651132503559332581842269475159085069148337216275460818313912043180765966041053242101576431876403773509694314212726825773112272143767301714960461828743212240256653606028162388482288978046768766638967286800999496133530689906984246159151149339557243123804824668750427875859640597372385750336894657386359313667135715024930971369862061371727635844061578297825737288390089679837428861992869749595779571692971503079641422333379552171372652389142682720218809622800085460300837348607654919704426205230391472448670737683165039568999027151768705917299360520296500680292625784052510914608198468276117908830792510106099984348187659456784751861054581776591984149665713030091119808036975265052432236129139809324903956318687816465741509883663105672720732797787209390968316390714334991701813709820988761492824312129765780528730485314502520010413907550107946581284850580798591702831542817290778345299216843538864638855680502296532870064105164708743589639488872787133271647505631752309698180184946368539729736087063615832441675825163763712592500689127945930622266781714291497597658590084845770347511779374356823103450095898960959545207114911970824396830088693862803091081018136286147193019057466450762907929519088504751378161159536154392831177525335722422739876435461225950298591371280446927768253155658686871687073518307966300903094147124729364131690759650015854814851683293657916821623163885642425392701979768938882813292173044437741015310172785018344441394281445793120002085914520575466785102862161661203425549402860330628169624789447374242216986029934136664581770355762341837690609150269727559340162060627382418901273962243090302198532433855648836533846469965336425101779622335154824820925250695520528266230623826928435378858423185151742872391696590378039784972339311825066153732451783981465695804470499033106374325721506876032554553189466667039595154463460658027295441124615217263545275365832025203504127023434429848633020058793499508369270383579922102102558620228809914040602008858742321698705320174469834498653876490836695173162449830109971826143150147124196647477767751749696450744988108231113279607780762912014726579289994768173055625075433435820161001756396741309122294726443490801532399915423065853908046772978806223092690973528292067599988557961434950560037187401261493384677079039118076359367356069166589256007057549257980126174751679933274290625617377058208894427424432045482128530441499014929162926310112415867619730112318850455531890296352829289640245448096428268493054225163907853243223311751502008709782993714812656487185150336773466910303447749279534004553903590012076414908714223317927676981789657705895202162134719913721979433851264113123822593180764472574173675436376613235837891867756490358129898118770616604532919079999739262403719699303968479944024062986265306251770622831482729871742031073099702459729101766773402378058519951731801593421822051672021660579032535203950159882787163851649362897877451432997223673358113199975099422023779065174731215581180078899116938988446937425231879348427184251694428493866221133629875787230379463387454446803215011902999224751967396705518007932753973548738254166024075937398817653328693209300919976769364982256738584291820334532788641834112799446290644128972268117224682732043741280833834248885762170094309814974908093405635088517398084632503069220115353358285838483386388215265330455407516772558247597301925354977100291628901362848927835788272253482541858397749874233663056153319661075861609064445840610081623292196957526526564429850304829460760853381318226385621562396899602310172738145798448832398705741871269253873323822346662270287489158150459715349128257939443824875316820683395132649130517485113486870758450257262372324315293936918492574508514958027994544984297097589784163175472061909418081587119083125388062798932629005063365005960198357772489589923911408014257293337536623760114042755592961444250242952841372515760054663607148110022413601410048139142166873736335569178944809251061078147920050646397300873200318771965231557911196031890028595639529348380181974184493287487649895894684758629426004489687868289648457776200487167646069793001643073209875590560685846145486681734368225998843711832798527735729812772985259286128234197727926861543449329798556773883229728649623903512905586959187247778226589114087574053434561437190604741965868641814608567931558246091631971076495720533172500956906975658576512434265448041188963352731544580157510207391643002738789655281295999815100853630101201024505389878732005395559794607224871707776930772077132531028651007536113048717075019099827737137251982537912441294514315249145213575748300869389639806061620070251674441305362325785890968730673168509039363285430810626209555141358452657672612685301128176747294048933074608190419989716807238031320683773333629418716791592875817580786393036033173659887385268170779617367106093257833198562137022616796254679964931342108429692928074186278199898741450369951432359294173441221815392232796414312978174757048695692457980519279475725972337800909929554071427740778859131820834460044264480399027257508801378107269519749380157456648869175567347360973093950383223894923135721554108490615631594885569076389193237831448019169418457437727285820018017743356549303444828565767233483777002643163791854575711128643204338662096679794480894603950991550293956411444541385460437752836603786881445465272261564403282317942034494460598315808506350176647996915245114064268923093837091398506552613598057493409499934137612068938259256667174512522573366534935915919649610942856678170004058388565973169906406227226105721682197037054629295575758766666360107308243019047083587734916010504913817837934110917301395146212672653403463766781835580099945563144692017114953432692142929856742735701016873036806621635397282855878085771314172537886893484443196330170019588470951907323791057126461121285977372475221666540844462567602364073069560399319908988191884248127242440055858966508673847923441812336348265299411391176285903280054271020876477903543430261606043619923769594826643712314563172374503717776778235979084407672083207306881228635338460881099946218592064691096393976398576012379876117076317253965090924274371325286564447240182032040088836609723060610664159984344743030658896750916620286595833956474114418878448845732458074421805068108919021704148563550179606861393336386748213008045610178449097574010889480320559957990654131375275375459943798603122737261679323807352952735997347848591871212420988049305851116286670423019955855896243133842630097681222632168297932469648658848396044860663831595908028532160769332654787965447143659249719277059134246234105489979042575402679422543632232298774491085983753208588091405244732519452385271450002415250193092153852250241079065615341479679505860920152731286922492773803559237403923560898883421750782680806250611617522171959878756662491932530640847906380222249506512040376404914642531720508477129427101515066084193777266674503714790738869747072703629663674287367092848131135349502225591353088386883694544460162123864138101976931800381001341124752664551170119085478883807797148509768079224807240788494473490540612006887620711196754048028765941017192282646489597196282391144028049571072240566618601882860237278263560143590874608213856717409019225958486604493183289004312816572798998461068102153786645322628610567756271973217055529448391030616251999937188473916424737427057686221615830600430088510093067348863572514134925209546124289502968002085549628072181975961767245345057597096461215127383085486665605713305886366984224771322196934713086608497373503840282127048044876165321689369978176133456516318381496639688740639981672778303502559324754777655338492018082111147898658653655402467580492528533756335636736521467752017878742400876084109012898178699271438259322901142011396307411377657347856722009791602405376814618014455532422484811251166070943029585200366259120901352362818653225112823756077754862822991479240649557596231319137359722161663331261951136466678838493342024336371781393348627963151298572849488497159223302494043829246477131400601148096555643845727978593404434442976684674866801030208236722111679387311476323795718786026293154922714366218057076832446544741449357325366608281525501485807650609993697366530579571065174120256071257093117605929233619498149875545526331220114993962802155778727781600199592207515837050921685552043050454496742429905975820211414112260224031019114624322540999796320088163616864538952405373057537731005250538795473511612048914726773873741476198311181105749697409522181026242702046114806744606756036417371190613151828314509600650851911793999854365611495063152409700041179632056991995717690624539757695173702300772966770994575889172056187941751648233794457846040486210487333738372491972432084521167073790793473898337050197788906030951583197408239692044374537621623294652269661632799307255127302126027608033363393512395042874098032721400941600742330556019443832860914358474393958200885119207098713191461888659679071096146523899875215490952006232686320626889704358023080011854845211937822826062061971159760290177271619578056248952600180616489526970232656063725841686964235132594042671362809815100840415246431061272442997515828105381731685770321606498850460868932539551750411214617750545556918786784769828427230220730613791597080012694994534775780735843661441785808775158210642275819723572993272906292692055540572261094006168423617694291289652179454783299876764960847587666045394346395742970434487499276071684859764322205193229772891953605242493553332659258700499558359794011727621570945178646546203260130113955202192081411762475058914767405831949676638987939501627814675002638258444806355784070748415151954193376895154646070088940390036558667919061286232847570744078637621392289153494078022677853409413663621308372391633976669974161005342615151542357576713074832178347371135475817690214907129108486995338257371753923890129402868232543773026082402039919703634305563367615945290064661192862583984879118197199217684666421298404459821357291457167244717955686707761086727980580721119670490299839662317232983907991199088830071251791493346721749335592154461214332200449199014575756705455688057131714278451218639690338381842851689560483000817160842653530627601611839679788994090869118048507888694374055726047253334291449048654332105792112017943073676069489072588709208919480342201546866627890333383269128585081983996209797236457186819469116017604554319082977972165619738387737431462167018860777527661211460102204142649161140265077427988875414196372202138092686891400544381348837765850602163231770692052228865963016705152612115249396564173844145857656155385044551393660440683826941980306359138525588009000341490175830889038512159688162377892400346986207043188768737841361502696190484726961218343376437570520008076538805349332943630819554614042098585974439705349773801859738688110651386474190057130284471932316339608088825536698620529122448141112472145917218572825678368892926299781905947506051011161431747885474903808170816117212188276345650690175222356352793920800611644557326720984583930225551836328194829080662989741533581884270719569611495537648253597712535848104088695891393482242375897448124065622666752244088136066057865364638958898324165787138043329031264119818434703845468358180961295346737286160015906690063470851705973150222345879804450538431849689767680584574639165122223883812548791400644985663551678053209267893384033195667926297023728990353536944154385942491899205354504103458851630770353385330815385698332978560642115152458689314827343509373568722379819103039268035860266238984741576649715760432120984605836419270070236238857234076450585870183193059305303058476271808540477219096435815277571720069238006144682086509199313084786295473946242515997487982515792173098845295693033049801704287838917783655262910570975205766678522263719607457355156759971810070116944379597249353346289605591646543888397970471109798149498436438220837665280481064838515629814838019676501602981660281860951326793898999073279526305535046589059715711526355192774006497969326743975999792541275867407646865855248040600083810813456943022125584631485020897351262585825170785206671587932581282055569937496180256679189000929045881784584872740112699826369734776673505029314195342564687180654553288895568591305968463935224343630471551676739182363318583142283889744498340244081918165951239529784199487949875203839063689350912910341305355914124628857229517988080568329317581268169168187755857858893713219615561971847115174300665351304454329048919441919695422736657507664297941893413215832312708218760858078719202574707238649199264291184530266033612718011138858954108107586676114979931168780706578547022732225281154914313605155908768197799238159701854021948310583575966753520239397409304861589500430116835133717170591531866295267447590682897617717674783613355454811625689955339510920344086435409774815224508616220241934282003823956371194390696926044068689090811140904302168088767075833963029586734549260614979124122080493988275348392232870580766707365030685897823185534799967078284315368688389739019046073235980004440681543443562690695682978309577730511796160006753424871612045516126704878813444518899764464612392522678312908815698118398042172019299739040137277457253938844552586846479788722423355721477485071925972557825381036308851930345123374284185945272542687721845111537475473692092235676464528903768829369103076761352391779291732098570295387796664186069043918498767953302749915432217132864866118198528078247166203849542292269153966271467541748123686547562732953326758133372891092094715087256591437546035245951045266287779929552638833097439398789336352953563599664231013963921301668007640623068006170336606999141076373651719069947214221680423093817818339838627993192532514118528506685434494224442780068171367488063259665555810404576785355553704280125414061333860298021506052161769309130502233516316610746282950694849985970798790721558133356822328733048265536684138607142990469646879157124915740889655230502385013027060422780821157576964856714590358278124928027542334735118444028242297679406598146733234639507731977818549950935620553113152120239094899463269449500127938018393715246241498977244151220119893668539499514644205955546319301354815369022990863918587477962404616530043383477982168088974200300723710662203192840762249310894226040803480306141682650896446852358083991382821874144265707217532329822129040583391554399752144109896107205486137251296749414939317149751113554707610425567567786464276746888744305395317003072221563337474889773731901569751761390120089754241634951861364618400756782305346763210537559067900804127303439667200871984071509147868325826153695984437711106249381054097658525825111636463221120957627150540334415269113647213226616364082624060085444855306700077836486011626859053361257913818337505581285772018959778146679963161749457392637527988377776719712059765722086365341519665735784743259065909487792870356250464054347712728387390448284007308404624802313598881205422208179742920480565041582285194235284004278544614896447256596103165645554444572454805245411788407788826026172665080476431526882233949070741971103610084187782189070127686191832646947068837266056294568009672119546926024186497159588337368656448611931808391613247973577883193590984588645078228806948404681800227945954486480526501677338837248517302840395831424356211336360797909300944443636310863390370103607074836962131363191064019034701788571221223107910674622205963055622822460200552264221477882590428336585619906864578713956207347006090588998059772802496048976761022696134360295322006352217411276932209808432573216073989936192244216053558375686143356857736278390056807189598583033939861078168913353756932187347693262745841415455805170728376517175913998233417191347543324845859177702160982439345819315721189176757506835797245955818163395340286540165828025998192732870228224688175826766359922663064161172684661509494436356557067774578417869655455044001012577786169944876708443431722208522088164527774215954748562876250574488616495628065887279469122132194321143247881358510418899291469595292212514373386652281194448560278517307381291982539271852050390483077230798790764474059246236285097039320328613736100313672326061467703473642791448826751042641051036806747131943967194412249085265841413128060955377417323824795641630226003285437520431994073328264422289177671646043222745713144418657581732213793880410192953076339751242415283649158079875147128440341498906710636300317294308570167537000909189233343449746074679867955621680024041423729106057389706339102298606187201790850643831550862795399296125733973575915260924214138032181877391211123384793417593818562523790049155788124858707557587331912219880838903574551058546672199717439122937686742114888209306296707324191554203314672411132155555417514780140400471383924661220703307203664707066463568893708931159875172248619688817978638713292095930320708644037481141944334076817798927898156404616066172247445089813826100528572066187065576217507111206945238438419993084779976203203826555185048355128284225609556281419705061038560965580804790269370198877648713440205859170536833037090521357964030536897482018526559159068659138919746655993493085074185639735392425835222789673799860028842946837604123112455559301610096325889533165508430655945677890589280634022983232868845531173311684779507344515072560412613439140055715395120996864132843914854112610906297302243846756572702979986018535240068890392901595342789802917109072260110296839247900964133332683602463114865869077925215761819332962420511576850539778229969141632356386066376539511814233612954881107604053482984190046903721924805154785796922479173531821907625065906558325266961238123043902471178752198277884900230977203455034440396774204447653219848698071424574089648165545092518589412494531630619336431166012972140121828441081696221319149589231072659288200238016716537844550297886752587972409273855501892707620167007457544322156390513432759656166192420264335081967253187149615453373899572733380639286463243942363539654731560439137696249128194532869799190455171242994624835023287869995529377055532641282366609708352367024597698877346929162939881149375177144698124548221684842868438258847326929253728404252835811366042808182013240270729628652254811807465529335543717877346283149214158295460849117556580790653216296155566615566642471663009640601271090215164222124394724114688320732265936842445321138651429747997661652399536603834258343293296000146224116014791770184157410310330641848895538030433441486678109510802865689826318246469037504882509432493817566262792492584036108376130566592129941740318961586309424912124782534455532406257697532267686561388780048577267757195543430284825804822515433328882601970475649724798788637602670001979502248831614447408562709879559138992101196988756490977506000274561019698063259091685493357258154576035054185360347011075128339916453349377184882149758269542382568249267886371226514055642564437662886248807548276222796319621793358923072975112080770784193245237340292437510373414947128890096626848728216342203787917429425779978639784329881733756899131376430094453941192534946403219153012403190445534455727665728051940674123551001380414524262499011467795417016543581482812776917624973168825977148972056937743023438898394928693064307742074403615289163199573739682723286802268361864289437875647704622759806966041876659390699169331859544568523985890576403092107735522343048324125501138437841009917071672916648962259735573696680003895695891608410323116205562225323756351796513701389288420666233516055876837861858773206528827742639465082690137168394830598366051725509056286550329827038443001142875836816737102234530115064781019971876213549608299597626391813759935405294552003476711630365939539823891276662552502168206326116015775428486454835898782444668232918055895369117926126631349775224750377535808605143605921758257565930917854517363009743837219144300185559710596632760419944400615539248672692191411584593571793748020652864231174946662948328748738275596068740251639870901498479651342416223694337610471995894550752729041011510053712347596041749530828180334680261162365524212983697970712781849409198760859615048066831796233740278670699866644468580782347795267153478062791025861314964332798131707514635509308715007631728759636062655899623485289393016759431773971320841505687245677498800724059080368836866969706751075521275909692587509172907756896716401793955768739063109882541006318188309826138378951268048055490433915773777858877467921588718983864455044331968281678550492181856079164259683795843614286423561878407259325821240518072167145732482057725231642624635454994987365184101120276776216510999111853159239425061640337173911989659794556193116749574305314845532052429461938524518101072358146547192812553123774469517503172682186163073430051535990618751592566200633710386245384077846276992856447167637780649284284319001982636277334456994645627365869956708062508376335570698933751737446503776990460040206796171360402070322724831388908995889753753187094887482535154600737841282478374154688974084947750159119418109017552043935445997510633981957861255172181148369788186012797138178911631868091975790252367416961368223757690185190375087235111555734571036925055201591682097032867174126098431082998085765586270434993221617488711373326106971821525622707955664346053449083336499387143769721852106079732285172866789762818836355085426682359076846884102990795661181995258139956010860946130649525888552354186862007287279806534249487336924198137037602084552812372952379688481938990127789938899016289770250412445208345119389069762761730101190476081293970524596853954576610220345238481636170814812129916550794270140001102861184751734485205946925654857763786070104627938546200191451974996960628081683141446374973142197756536675351593680971020874884575257376505733294684830643012297548271182788864300874283628599157189708211995618125383112325650952482329389835411585637780439244698078776889772057589678260081213689833247728404828272183230444084276022772545932110693890021105570475931536553284504484150875788486853551634428050098091652426344055995620991252279403165472552319354381725666029624989664410425181453374444297387041881576364096021044523243603507164785418386948713767108958116686617688880807836357788289256223481473976218026982649018337063549253508930469546632509640531634904663630617050642479956325962057504890284878474354629027916189188112479826886491200418173760657352279202522735908643281358517042515225767046116173553276168674936886288771255216402386370783090792957233728443368381174361269601343485669362911877877679989573215086126062467816176639544203056167231833698072743406787653772869805377518322359892542404300883578519784385627605146092437526025705825626261701777335466486275545680846476903823654800468680993698338702575554747381996950710476845403278488819235746049222085882526284293087429217864734789851099983663117389815328145567679034238380617898663194248924262464558211429309544634274925564067396081760319941630331151980046340777953997809564249654809498038702503969984884825692893403760555868159709335294142840917866605927850595650472859690863095604964170645297633982123433854440717898984559389137730710914910824493839450641160094657180416214700867230028305048571252229611370232754262386864011631695764352357281102521327873203663805600996963339037282476954848697457046303279619937395640323439599906294967209535462243493354903701952853962139845497779100350288422246897034233856149010906763254206241861339328139639778214410293343484211440070634170091758048757928380138837295051275450081770283759753884651059567102581041693237776787719014563432771446083515829959881041473120632931233541603059079252570991781221415299277091125767791171907406349728620631825166266935018385549451720268609496700178748301859493044878478508610155405528868063206900251048007897776166542991758266506434366628185776373477467957437082621102724836230957506559875934464062753112817480953417031929787811176369719931512161477857196914513837883970762069466787586094540771228285161895297565297785690979470262403464670480322866245221442885356650577880149735501697202797070206505563618379870737336203269418291224005069975777265367602079017331933455426441821424481493801750804351406678604994547039197146772962977916739505670056894837517455153062323204247067467894315236117685285780931848614768040496698241702856936268631590168419185836551375184463213033378497003677554393011428767994303727146733825358092533304897623186049231009370420333968992422616061152802626932761549375551243926071693185628529604269306761498491398635574095479301535630366046358885674948775089978641491189960283888310825345368449263912550816656429234621467634483665904032000751283295138438569265762577094864089682135453254020642151632419680371343021367023360773336973380578540006371185402121776358336136479209068150171294261516293343823741620836242753940570451004110786606367083028733316924000874685689060786634712222816187287201228507087911517705199066084114912750776196957069486933953016006214329342488295964028222091376195886782724111192055376425518972309022404053124372363154809303293552222366503929307306546846762121028494395374058790891828787753822984073808656535836923167412098795882183361729553799146341875954870850117053952323886491951853484509014019348135535233045754457012051262294120994548513808695964268555266457775946551667615520623632257159501484212100669405108515682645004009706208530551174103740749791872063981720266644099687414919373198348186549992857475167903283981647061568281373626545463131164874885534313881736205613474287490555084150237275880443182321293939853602396038705204627281121758890096788146093877423144367854880092862262750574220120943591420020519275871809199258350135762169123319709298599139005068843586183371419267666827425800647502790978699138023805876531925215226301132425160336960914130864953563249583313796972512082454204899177806264977181528328471103868726269757523267617872406544930982709257813913043914160433557668210376385199560440143073369836639543487676453779423501212884079699145722425071912502223272030217307208708153331184212986751162905263581958774757049731982360130174489581522636047002609673827823037224477886118157325939986419925135466625937918528521655748358101795795169766554762689825314708346302093347639292499007030898718824394622958734103566571127946654084472355868488322462389244279122715174343627311996166133989066562162502429375877914396718136265894446746920407338920841557344739519921467508783768335009106613592964154366988176731807021343859931549917326593851014891679410863662130537038384747613187006346501336030254034689093516066520244653652299545288292534963828383030508909570578955550625497090276018735212405918055302002300349108463784903461778907389709048843747480130201923069810275870179294239589247331650952324292645862451151706142630455570783648500782153869125286947952858315254833610250183886179681506198837058289267397478586953484229188618106032607270529958862625837551303855010232855820999531433212267893592096440960057667267685580036418794597804020444611596973117403133949979698676586914420314867535928021458269582193389606177353963806740891864457847097824705191225474904821461212630086405081696871489827925144225822660789406570788717012175690601701073014685431129191317239436544177806357956912258521611214142078392777316029391089448010107818233247382390237470878306792500423887547101102842540597254950715677113206574211500449071051034382290418123056616222408665336625449299151166779297738807871425676820753603932266535408850320871707170157997623953396564926589392982285782017937477266943218024394204163400650339519920468978091156043601728696260493115676017371783926129044948250897982287446281435291445511351819350823962606026830943206250417201815102916808255956603754968090986310689034170103019638181230817828165540241264799304315075003338654539367245044005230371218661282131762174111462335940103275320123950485722622792923309547932241992315675520291671584182798206217924746117617747801705443173766160008411620740364949859128117345530911687371537277287377218623210717797799025868563691415209709461049793104052760679632383386352446077445704593487409119647728621216849212091375758093006269071486333477484926286787924541763969822748684871565930210612001065222577293865716054723870934879379669178824825997709264530856511083235864563292211469072231680746650400067736747048630355808015091523009572555602294643629208549817909520251932422183165946037314594801681352068163773491224197225745454530366457060491465289784941432137825965807936301091366624974328083081602919862608838048967650024909144601002406106878440242324920514894967845647704213358011478533298327638539387769548306413896574212284388293172052864680841379099455983771622534585252206760982218332674635884920437571324295503185530202908767128629568199264943876809563767812451961253530655422485924153174329796470308255128523308433195351018870107314842519433565985480878220418280278242760974508349570729169770899203353077813911105583892159830536716731885226181233339144742669064399192626182380014882002960589366237780153259965364871744315539404216681905697419351113743800788111045570710101700530817713348632536367119910791617455767042953702782582266026520429130321491419913038070104432530166742752847208548288696124497668438310328263722158982279362354092415399669877967924718001967660296471622535850141049914154045170122006199174408521234156781854384090146983525300481623214969374392211402223337026131694009734928904550866644835271527706463167610464840063444224314714653909663555671492264764985897193111340695709924802215176683954804099604130794631564442829032066307671334784483015316127355757832885329453749144468075392138707284453753035867643357959545689748242773614562226071803260562110207701946978280573308225361474207986628335740787853927080345134428429838807503690274486914538947702479728092826072945016400688130983737976817071424587506978950112115278846903570542611595298304045687029050880698455382748717007819644418141200367706609508971639755489403964242112832765429949649489055128085152268885836227913307532437092156730434319027058575107020575772968052691906454317968415254701970037100121733146019782221176377631785625199297991650606794978552252742690011338896901347278763503404554950006201951388093091048353913701623021657838618788650858183368967444087980649384034329852395231901558875947602267385907268268855929960009592335532069464664563057640987119496512752984501373923611592603822829902709773150284546639695528014725032397571259084075017958084708863479148305496059307786701935526253802882431077519844413549048283301456011177419354051850498306084495557888557030487580628825320168304581968291295254907344635841602545880836536177390545876734011305422275842242298053827274055035949249516463014797082694197592234372313067320107058652783987428285129742708721147798110296657828374535170287606302835586403083482326063078217694049312275504473844727007863515194352124395194876640255892464355149584407450586884453541265016990043293003056421760601139257337708370953574456194781592682867433818275407060951318792423518765188154069685938174921782415935159625549941420112879006276205736982126769598330373397343407406819736878251406952701359556312689957951712268338282419578638790292911441153232115200120046631361279531066603832952022044064154145967539340461796798387066763558934403054217441937116529524106996116111481694998211513053246316039680793758064148788639274387876938360260998793632937831794611030917278951718368985387263529581417654006405243157005212630320773179479578784389665143856158895539989677455396214704393947043666288106865341139696759275250982096268631687023518488184611758680140295294558009080232138988133760440918933583852238016499740682495664996217743145285635484843984241283793238163595033573213119499780155275656309792569998996034691771200899323680826588903033654038683907440996322043004655145140383005535899060648845721058754827609724000973606954863177070831947836433506459749167972489900509921334918173726033056970550917453877770045619102915207404317439697587425569993485829642148169207191594148999486387636111494851134261691482139799421239716469184308459312623609032832759473485349408539502484929274425422120076325670151574669626166812821492046438069826581272868542051949188932830367029136488100851880510897720905463594997751853133894582187210060832619386755659591769182115042959355713024469703113795042549679886257853392062217526469927443035794055292090001154144573018253678444437770221076558540724481172662341954773222491292457719636373058124509745903993612174713488497676514740990540059992277302549779005098577200440654834982607431054476839461352752518251209893908971271408750977284225308627419915584309855689014052998484718847474331270720861288250759742001049299975657222668571412819790313961799991345119140955275948221946263200608152640695467845338287697239190074289855339149024331206095836228800062753168303261046174150350232770412536620667332483273668450786370557319491641435110521609730459619162232186218345105214610333319788744587787578737627798914073517186375673372784598348646745497240022344002786132002981530027842555322179029927628179746051694350223475753418501373572516435612749427383382046811587480357678622288190548641137302734254483785497258189733255062012129227609359897534941788143755428094177525542626657727339818373771873245170752061146839297572065229976348365463250167733483533455125544609061322704362433834697354927344660118152409825226573543913749939656021183648517322852788885522689231323486982098345726881771111062948762889206058824745409794997793598146122206966433714748847520953377867241653166938928852455737269534786628004108751829737318290021131472810106362353038758667364411132286274905316280244390616016576792004802561540681654891466681407481650293710402482026027277137812498256295106053840189640175607996966889751620679145132299321118893199316309149933485069800910359338064641753618450514061591415879263488648858316173554861516880589752162920292425461280817427791509551254024539154898328065505468421903761086476990496589716140938810311907586053551842509927313499113981482174891477863740819301561054594692894986675319417528611921308276217683233853131766826949324126894225537950839540712996836900701056677003796449356706858905317476189464718674903509534000795995382308966452828821018456470807346974598983534592840043636238846641268295069995820269910997426092771055977584089587033049506588486042681291330468772115894588982723665681003251025654184603331319524454126671250444016585650072806514910395126334922064968382532878720680734023917312141049938706954366152129455176043701889695447525300661176364234751965655714357010726501569610689552463160994146817197725287557557982341121865755257487362947034829876210952424443898683755964040559491615180812588828479477648792129395393974244779510379959096940699123776135452016622938579676508953579760485208193043287651968195299500968719286473789288786987688192941851673527493851453202002860493427580347537275056861303013983878993382368388054122156892485980980736449300953918857372319591113895825948552319606303707555747740182115808702817403568850818961654530277909787599993128935204042907704851152615770988792379617890609617537387676358212145369615018539390181553573079492145615559823438031379655252442562832986731394758086121492758577044836165472883089603182226362921951644932614741887803945215974724327600488499597893807172991151581645450599322763788539746082965279472319977541915600357488933286868593792165857314416456496612546530213195507533991470310820810045973550736055075938867007382884028994430110822825344294294331275564136560193823095427705537790646589794715006944447462269710076795524637660513701146811121969594743142598184255447917711807852781750032032327892859914910363348096954938322986248766808899421548386929332316260573103774576498977119903210077618134946238610556380027743813937221494214546660396192714008370174784966234535332432444350566158019388753430273562256384424650251455696931073990122793199556778735059056747558096428506932300908102628456092526645418886507283901911662749649315449699973722622166329339890858529457892436656570443143879305375512904331505674698987017463400624333581185450465214691500306235589371702157864559580621575172490969395559708933788547298167177182303744675802095520814646183542769914935325908319550640339478454739537385522700331256557598311218278239297345861851470462334046159482503982733222124534341135413184367718279874275146436833248771368189843320813014499158248611093117298685732750810734163652936362840611351962437726981438681332659225105094031121063749453246009714957841308380833243989530751598780562253101609134392554603900762988591212664179793759575439827741628286200553855345282774236612070976697349554354055683938353345767605972387740517469145134938755632895950888498488578679905441043760831932798846046747361911213607484909779602072249914634212498278236196937147137435071993485343936323140586239529714343346760505438022281909490900180477660079594613033098588400747365172358700889900667883833096992488891636191181222413303757979144038952182284386330614292561947573483296018391196558901450203278075587396414136968593359639783404451524735233254734784057460833701612348285443256954123717068307514798576911947435305109729884967495198171005558018284398193753637042634088864455028296143809158876388012059248147045061331119421049672324228542261492516768311689041007422145091895587586634333283924449630566614508879630867533254350070073822025469943145589262405353690325218351649487252486895802609861133700169251605065606337081151198421970950725132576228909955333739707176598412818588669433430333250500402996567327982053519509262490956896501880105832268977288514288608620383935081256189651214096735548037464519341061441332352595247610023428267508057667353959223684754220172502711373117316918663285066536256243557734279815792917176176309677554301081115365857712427661655495744476573662098877049323643709726519230390262270290743843019365638283397284665161481040471468597780091044059577152446696464357667843544930458260460748720719689062817325759751022937408463965349663943252466860156925221212918226539421048262288396276494245297678912995039846203245406096296630567225550680004575697586242113144013394184171182946985950404049594948345273449419157864150312820823263201466755398207113327520777049855931026501592534192197878217595644691063545775071979948242139549875285855879008382300372049175373724356067440639174359801127818041288351347825570133810982450842190877130808191262994408114021052569674823091851104881485285230315611883096897274746471453928660878494893982518879076701855684826501518330754129241379663727342727409443829686436567157356445829030321587699108368986581772899571505325195812826615124745404763531734525489492868303854154300148216071395225963020674266091344142941592287960809655405284378120201638326365861935186286014701493158480198629351643321115809211011916960522944403745574236252522559254665135306727030407888690113919651940403244020949859126880949142577464077957500463077174375671390153249931583701753849589739320154626446411422029835482096862422776317902284270820045676696287956880560690360145072998525369302132355158743217531935167151878696218926194239930448668383543571546904650646549365503213060654226932418657492683870413182342055788106077639035563224904647141243333340863725553256808488188761665661882575847848975527879530500463990081607534630814185221125103284384361993319471322904716677427467410248503902020131326281593538465986153418034467023189050645277868746665367811951104678773649543306476506828392522401121514246611656772174914014769212399966569121017117231458660934040505783292178584548522998365181107311245402176912134055966506960330042120873487522409821064856264237161065094981131357530246478704795214442997246890928192733624934721257137924633748196573543609003172444398354191495659856712704389579489414193005004440303131476397079393943872429424347060977511880449218849080082097621693397077923351039930198766004959918689477727028100143029434396923536909301838788518108712270085978415148830910135110089461173577277197509434539060889783812930746338327205334650848444299470390963995078313077327639003962516811531951454710648654237476531165148463970175400472514604244775082093797909557688045950118153243298291960126302010596925732006124068402425453915055510801903238302614163756056600606312905565373643549511204338594316869976456336082892473537684138989318522995437607205275686856486144286474722588929398126256436631499200095125985218095239587731899612963501492773174484268744624346317476741514610099193662884901183921888155489769179051023485353856733938895740006337769755413059673457451967821670832877231130069799078675626799334770879845848086618623512929437507033667663734601205548323567522634949341963286114742597196814150564327481483006685530754039561568709480540637061224269741607630266092504723178478818509885152122037673059723927911804285797739405064781549392212526106367796394057463263035796487954746262225727307718187994966988906312272720217055985693672866712844241077057050427172047958691045279789809953943031022311685393064749436997957095392397548494038649679247078346750202596008128007527099910369744795652452665937488877004087578619219804423556194594336087074128077609140237698059516532803307592121248925772719968502575277120564425854005769015971455997177030428191928566431588296323101245449526621853163780438610564767135325809274916461902487728433926009667916691830300823276674547331257832335082598576671408204284051151178890100548614657575310945395840479492269038514818190085199290966460604727355259658333788995015469890740234298675627500926875851666752523842349838596721787962158400158862241460600432878642003486695628923134400436845384870263405883268068893347337353778063270427614347925355873971553363617987814895038738901911593171952291766923106288354861925787864300356758793747987031118914494796172069827528430816809555064378102388219323956095358910268393486382241016588165073172667451334562805835830416812749772524999649734542967980350167353428688257685286390901647784059550285282259507840378599096382070120858140557723466650849878071760171164182081025758927644886129506780317022630949049455246801426274406269582534560492584161314478914348079287049189314733481904007516677598825654085105429850177259389526864605652743483422335053916269699571164498307732281368920673493585484814721464358793017054506083199472294412596014732353633097193897085292429803321528227608882594681026481997084980311230256398433576122373884380776189036674240128014451827600904636838812938496054951866032646662602978089274106782294904515008727186232923582690418859327196604925831867156663892058893024193406185193292208845460251066493360581845096318258308991454965111610212830586764179419915238836664625211724088217366603784708087992264745434076094435047266082013804226362918757193913474776058568231657358302481678923676014657341447543833155868251617318484422742941286538577452635331034727258914462975248775008292017802270008319267202472842800914722231968144849806453123823843202703224447838175785230735274200558706522133472747031626277448408358557332872615379312512639275368305845691931714853906060944963752052985483514992001473409736935859645533057928343011981596139381441439789975263506118931443932640914771593154172653485825431905718278747108842844674493256773873581892598737693409001424188763709952503113981093465302052457668422377508365933488810535878026400134620597525453360942853288977753111077897045294822442564390604183717703482642037499398889716282041065479469236464968448504797206455149930381958881741727166095993851166081757799459668878068241820911684255711847639695928359989920593185022647343746998405934098869414416220234578137450586130437680574567544229340290476833791388621781057669976589160786467745519211870209092411960760174841521855583478839607448579575361475434854635103706813744019904416375705037000253521433837507069862753945036997187427264466078577057037018995516119314796373051460158564869424387979495843751642965868922113196803980669731090891655302884595144423022334339904872856563726549813995538895595494223055887622360275551343985244030232456077197669508879080696936103390172057795255593393848448155647812775129721555529115343496721400429834747516027234974531767684628907246514537611223950015619214822877905132425517564298162521207333863521339376328054946768827993700126029866879807325015517559597445393599580267154355493599184386753448353160416094058495278735993369466889377821804637829348866137676727311236776901920608844650344622194239502161494255915363380212826646464627384968654685180581624136930514649764601122831341880236493732645188810616485464888157785219078160115801699362489372965704715964709101525228958337509373653910615493780754529650651599536636608209456163973768400417683731552203209742536458920501939747116314092712742892703980621588813109025164217543029807024508057284894141728161534302315954406044213058765001477149689894255456111396370619665788884674644534759314016913290041973374745217015293731599271788427061056406580054324916938658125737009342839366368874632140230987818544370972243965595143882478739215947615147892009910073986513258267248728023914374810496418660265819643637637671221017196330303064296228128027314915212577377459938361742542171726664727975881503654474757513411441011095368946523400209616230092786459254844978098539588573378091506813446107090225150918756890614723496780253492576330882300960737047228723967175474134773585526157970303716753178016091451902506013281372222687211107831366539516641774835678679157682699871134432260342034458337704153800201081398881854988877502737052845538976568826996227400782177866641160137903944100091806947642374958702810481140793267941719365855685346483131416391594351723743656948594809949377042499807277277767279575133539505110613863112034578816984280356596777754887695666918022391166088570334974783875459665248454637532203395088027536130970384516159704145254067085080887176256070018779852868546476920756889735666448623162245256208364738560802835326863670179694716318715407992624169416579875094496320655251112344189890652059898287185491052215881644359467085751430939921314154861243839044781661725656986650631623135997971377539292706665667447444909393015957045728258299734799073009714443855922430788697766521328463684686839159694067230090565340111048138847914751137108197350692716342195632398011143553216371694466833911389586153476787160224567406552223466763788142129451547047875079983839263155517780146852291526204552767932972898277016091915439667351058395011458853562166346091055842381333303902009118369669200564667996477484420771261749296399284549418599148857013168178962246823988911841880088193131496988889247874536585651995408793008349926179339683563444627686204372145365813190955120284560573731995290385712766011499126245322308534452106977161968500656062191722325491667728607983285615790755069456616885410374272915746342559591043893970275789141793764034663700452563760020984760013108304568246940419074983840735999016585007904970312920681240729769540822732632896453887887426425386939221277415360467143887220383084470925862616330323504601306295852559236442691880538703609718419050963434267337104736410137486590719231298886513885299755108409322965545473834165863733401115013965476837354436160601624718976044125974741672643972622879811811292103545377913257167271911933722406701688577410230057345136029946113072480665944912642101564160066421721758081247629904014546821279493409276420022474455474442846576381198754459831985804836591528452203012276604432262373437252210333201730366210807924734667033943952675138552412609306006166098742197204621513089734534392831256356390106969408857774888058346446133610776179990404506918609938076688431000712114335460775335804791027282446544005034142522260018556301297218480590031859675976250122860990826131623808266404013782405574381048520790533693365769309248260466287477145616216709555426828356857883970761862896340662291861007605707259076756712081905488545822111176902588570773235205306699316365921647111480625304264280865825256118931682901583265826652028970403710305538198342319168846403078332427350800107974993813111560431200900953921351467231044557470833073236455151869019370695046857723875353395131003500637318737548221500489888843383511223545636832485779086877555988905030851355153165230842276789076817648714232416328338239358005543997481869406883388513106331853604044959325576870718435716833570470791181555189974587478242085789548015148200966400206411045923768714680709737576778729613395791061803838055221844796855639941092528560277218450124948208487577225487659898718006966931938632958414895706260430885841052892265355208668154388440933414541980016513109260604802833876182522988932189053615448459176594488034264940719140280606202854524256033210278173163174838718376490346532865279076200919238447172243351787643995952770075810340813800502604769580873981306272772387040752045014506038680823829327223090814823540626205856628464466846598693579633016404674413667687867769060144234991609869192737383744954326043149655249626976327218258496970304243215151724732670953888446344472127181745226120987195513937413475745162830886596204901335383818032276579783608171612693254502637354460703305289819672582189080934297504544366172306707087988532899681204453716144727256463786810699549618235320619615735896521204321263733019251522791148387980816774818860829655524112383124272633303282248157435166373370067391883966095505091984398921514285720980172504387667909667326970364778391546282994973989849388057955772223970747185523030715602624740750864246497782358409694342350699946231411041348314677056578823709617072939377123117175902988722025961023517050317067146020101757214379820296899061095088319078751687006445101954714239350751747119980179845462655023972296458719106687907727762003046061739689547371530000160337713937756150422282601884838920074876538438090475387541452925901810082773920472416431093187819440214543408339435615267216191808566284960753068757385038789692978228296309431246205030800295790033245219804638896423019626444814601654523242780622684411117004493952358982557043609760512019888297606514675207051425252714398402815064633246950167190461562808867987389399733536282509365978090591155651724598173046524784999395708215359552169447235980814472919615404310459506690725009395299265647814132761386727991541886953674183382974717860107347742119023588030450095390864116746229474193215432652933980130768166989202395877968643749368091661861673458151691383881103799223751137303105252692572987503390295565482598493092665980353783897610951906181984962408681318244224925251939762558339151667108251735884091518272696864624872283187339979339711056194674570326063808995379886855688078871338030354950661191464493570355653639582488247854050529877240799347863886430398071851793726869930397166446871319726602313457941805810663368137492116652466181394868830222124319734257596655380837729137647093522534819372391434074859569441873518866558855019759807550008452245377169717609123154657107910938773364998414956092377649894039010945691523160982699217801363560436822113741453691561021724588710917740479994853071282421430045533087905497518188592942939650108547842760470193197911837165336756265212401058618778900812709627236040173066675206771359450274861042886176683873996730660410928943256057925084339523217324800032649781866447480172814574769215049516538277941779579863823416396370610078431333090302569923283237142772754796291952813669551780452691033292527336739348049671616513212983208729420411434367333530205301026258557636951866531149689847884978463578464524628197942048279148914937905354465716389091948214982529972406605901830735825823193590407140315403805925101149917433208549683590516089901489324920760799558286970013597094153941951201289718396746300176424085606592687332996350711317245329831299303283248919193868856169204720366297874136399700524439679827182124884500485361769809928459528030870727826660303521967186971778897535566485219095910745190037774760061875842047697896042575657699411618488598494202554704629539046679385089745580174197790942182282625427692689475874928289499061110064750591521462039429894452384949318172074982676413709686978964956369137193198158854886729525180599755845432797380626236834603090247695927634679741867953269521630128616383191798445804425257017706424720037324666300667735834408299979443725158612370960132612802389260434869187793956403004598471834830982536036497511211840818672569246271349787462525611166651384247543416242531058665982836969624389195430602784530091727292011035708427991574324640973303727844188255768267210290837855431041127143397625302636615907546367872507329839273364765148408723101546643613032379976270208323026007849784843570492184639605592740614550752106029064788895533355564975402646376538848967179951875105249699102230330807469882895087973558523838991227388209152341254900837294780365801812965343271998466482957278203052681822450112567372059024057047596078042274055433635431001339603970552622002169911338868970183268831182172103508563513000011665908442624849843655716986935707698274110050853362675240960789036112218465231607182052590678891700466771374908614470329566649398150039722880292272680815039751384827866942289293218746202430728759512795535763418983229704941431682078001437347594896170611062480266480052663891697280057930293160068826339076856563718318751613085056023543473466625010103547482070760552442839142114932618775974497089477685824458086721017785740771670523309397691496540683377398867994656816077685889109212675466243302053020240567837966284306239833241521824715691426545265604319863841880140223706490184475877610975834183769149145322025834182059798810087556555809999128349121877975619975634823274518496333248323249213392232143685195834713238085520461968034633173989861446991958835208524672389280526258248151240733276395993214231234040077904222595822630137358551585991065294239074049896912625104210984171869080565631918595044057338784820437918666183316452030328310563322226401422255274917508681252226576746147168418773301338091787009706066795678062080288482012543703769892895108375534459562843419833959749756995375144594799434632449552713846410267508187845138246635695085111824864997832881502173567608217325604794216412653318590455601876171697954241623551673591531990469888034870337318624969536998206312301636488339832101550134697521261311806567044018122851017259106760256117681586959247880609999832328726528641092118276153592737952559588141442554874819220805059364365160030687279581888507869407722507294086024978811295985274918279611765819094186975290470860086898169122216012174638714897663730659504626179467389551362007364091992528505590939185581910625412688012866116381420517846737881496863147321066946570543137514631501890452950025322946320292225946238221725814057947927868631819398249817595548393037438432963713420389105051479803851784552094461457871479499967257656767770459125410849921598232278000424345755907598303687273242132368430178855861957888712627541957247069431524929392774541461205034825190640025585044484439426081719740617997248580801876315989829546485055146592715762629780900877322714224825288383523018446378430928291616806138953358796339595382695315283556783851044950308481822777672776682954101964423538636756998532273481777182918487043301296246361480774399666236762326769821587696220398717669144705144310109612329837758419841742344810188447870087210584383468485559508990825955132346721195518511363994680508839353958360614929782904482093826537856141097638924061441554402874310296118438863656794764731590315874161487770890397346477915591627189441267078214376422512805335684420163627243608295765414828290756788078141146004201677961928998302621747126851730133966329620074480108011042852233081309857119448385474167181299673930390001506774928159332762879339557899171962676874921711911242353757452099602605554120930788053139244753957668988075773682196752767901988470432521339480403511635441884462950250254134790572318295588865252982977505796676112534719296101900009410522889298703203915171617903618594227870213983919562166148757250642094759810012049348967110834192989298091111883554443858013143078518210499535838551651804757562236957052897934235518553245166898923210112396285495380775526324859438784267438145928720750735866956774015550793323651160847442348364839151766374036339466727862765312404089311392033944418177838402864541994061782442781222269902479504932988059813368355920619176337380694661914673822482561709429281465792112564330526726880122239600468824405729783331112025311411275782255377119187928034060725612365731514237125951996650842596697636767954110213440696686037710323639006156789231122497322813215000777487089629160845602540492089414034495841419592001892354276759158154977425560629810615049047000951595061791627771708674544217087289250313008460798510176754186658566056666263770391717423790720335766117832852773036889888889863703972441011613869860321694884891155133675894407574288070398275912100633945566684949230989247440827353703009490166652943583439472433162728105636960344175866376356666327605026580767897014038849906020925282173843669946707844976404169954376985594048138674286588608176547642852259218753780031882338902695858492160466101084406510379527039179729555715916736743134146547093236179455409509343272631734640542963156106422756853641908902333176779353278705917588538860439711390669329369215138522097195203458347770279335221301861474080109825611175416207561876289563377718394746570313060907135622619531539633554638644717332179998679923067742092903317193251308987478462263741287210527802284182997624365950030453065642076931407422089752935004211121005758980053693830867788197156629785963560076068752215380078283332035605940560405516888024724979646425597888307032507116884162253832614242160955333509274367478888344434047614386121052191788327330606654801155474779885607168602545592778149834734511009468728170439366032122538922900358109269675019396344912344405880058365816799119649390641973973436159105719170340067216911028988222170108917445737515705304334239378784426009521220603351546803851502054015083104928125375786478448000182891637969162559145703840152182450604439011452847519275823265965031953947725225881936020013797543478001532259320295170916924116035167081003983864535677777035300321634357634126933954116473125615775437293028694494566819701768413036967475860303372215236440188332059212962616500124882844787102546233904054768752341179803198431816322032432549440468907108042821760872488102986336477929277159901979395038182828467388424407843663375253003747831518132954600083551956925625004984031614954926704715673587414942312978510372418891161554731687330748322378699168765564965044405519441454954339387405757147634152434932330429832228454579159702316004569972770661965030333648727706533422768094745886414852466824606774448173652347467937404961625799781101197739227884124406810535713598425994346763796798312152530089800114976584035922361661285816203293040303516876617393487054796498137713843397923858585503749448860966673375629008127252256535582445604908747317779387118001804007577309301561821359524111287453003795468558769497581308185358653535000921281716951437702745112860942979548700270751050049855712912416122872246155588641218316432947000971701456964029955814918924585924843123213572040539917785288719197517238140043028290860807358452579122026826812636222076852284914663737333049608664966314837281816986568643196119676050209688165175261562157302736916890584067000553267261547764633294944533756883998141637716417356981308839974037719395766904932338079547634720346615616875263386166256952207366608216336900523216243478524507744501695989148696113935992090453091379367273480637960505435346838160659413217515086369340059732254892955302740376084462245465424334219716301952460414040332205989101626797608319848200425511815418006725622139546396875842379256023397423013582308715714665444112276517539869021325035843698903627201712796541025404466419204798427628200829205548981851158819958384363356642662447600005041424437514559410090723219679093373263646530669264623266014424354941983116200698697453179999887183795690847614905873988008723231608531876591646772614764744237921868972049742120528605430648739698120847381084880156589503162603309124926734304059886541101601050331268203359305564364546100173135363953966563900689466285973989553418010275260310269368796640173526237668677861726790452013311761050240284060247812987224376680189107142911598731181038538061719391674529080365131170063443271226969257992090083351945009833522730877688177221757959877298976957265683610069843536071455240512656686282875254382328382614786974709491969965345839889017802633660040594085858079729401191277511976749643587572272556006054279345225175150039030303083012122126492667837993419201862254987434885262032674072328166638330282671384464154264820736376580164937236992886707628260153802286383299926757097976795825171797248691528631144224523704336226971412171019043980268385859175360785934891052321303659036138590734049648288344879969909832570452834094675411053377507306489036965182735391192231306825225902459867885398183892855183576051378307822905485041055567169053857968143255296577494771796639459926360755241161351042576509900243389947429066602078308876399907240856155765742720373473286343370136266113009731662535577139033859154308963791048940344304956440449497761259931828643078518460679749528777310472736012882379162064266561531588864506925540142929266828940465932862634126710123976027450297622476788243133742627210645758577583677712336990413557471409703875716796799918390501187058144206720147201239675955686633982704055569158967873200696543210410210840625424575756312927824234868927776722466626501198629246839997021201357262932670908607481597621999881559069831855932350886535657165490135661378108453558904614847243249328271466773837570811219625233248580470058897283846514080052528733080360146333748439510476888614012429055160377929885673778982330393537341875433056022186035765175565569235955683874636372954406171572205337317042469302471668967332111197315317723898309664462821903948538714605268784253276095067823935915272103941247456403957881335422146933769329824090159685879442971528213306733310105618185197929711854921167411887422774559922965819179548618814568160053276942467346548494763800385125841167744595436750974522602024224345940877475126100186796187594022565100339479121674992894198219007616501743389728509030539582873577297679174360346880850872004952609546487675171249313238031913242088982697297153011644426988020279992306932297185695237579187688988320692628904862283414747707057214760964253418967416618177427444204265535251174757508525661369891152143211704906169498980761730945402620191095068713211338196121890092368280054065724557642799889751428861038415527046197936557565722118589080018218351175770720688115409918716346741276109187134372086904667336573095044500355490217132428648842552036701191435837981547996160164274545657072792145076956016400147053839420532012268093047611877518965812459917096573907181019476105428551297817040673138705474857996044547050821977698905696978888821737548728158730015250299490131603515666760750914420332759758357521076667827928086931609743979751487766655557677429263031185961380696023146059540639966926068890438273243627876159585300745866254765075197276502665733883997405763673167092364293333089912366621541655577383718589909292404255094328503108365667921071549883544497655954463679234249894903244701221205667609793728339488200069682542622991955785337642358777987966219216445316627579833689956555523979217322568491875527467759025771699487475152058263403427246570527883101609540202970674873751222948713127813190826777103046261761859980129843209153612554518299043404091938862675234405326181137116781613834605619705298114377115009018170265677456993049459403213479850154184853275470926195644622748644376940645301934503991326288587143328595844369110052559712859318369082683746833571115688269503173724879874991366955339173320090761253198107154317450220915893297017061141225270166613561141053834840549312237300282205059832523057429165997987997802569061500206131648951483466217280882738926049224808735693064247568289077739333880028936202661899154873350396406932403957197745564632520079209193914869897931157203075447740745676532531000278955214252850542507292101914458294234449575280381418152038699588868021837502811865798745081955312363003370007700656662760796694576425868467899768491165941317593686615870242136499030104262027733070436892585829335575333799043517398642033607052424538644513016922920687834144178488577756572053899825678328709677801097124380053656657749781344991585969567619729979280616371845127990542500768600558964882273602951063187443650537412737028573436993877694117680458005354338619245116305299654426360101672181712818495163790351004575549122561638563297171784754603212498447049964286553755769827794025828937123257716040086416004641813763769289579137045076444560789794640113497021570695299933586151184675621970351137463292866193683137234696706238633307750683650649319543191156415377019132558830942514914505474151766080969054986766176084267342351515122900565912728424330927208951579501269557415108619146236290628072654246574824361712371652813877327242421878886454339802806127683328704726861240710591355979394681210051542506998913107627366020192220442730375337835923428484692265036095071861941573164044640535257045073003933237410573428599866432036733897776367767231664748340696239541465438136311193350250626271470179418809755623262049741325788067750199954692820165181810977924915020176991514152466877451079809856114403907348094678501783867222761717971892073055618541360469759334061044437756322072516961019005433491515202541653482130861316660308532179991831877327631305169299958509841156547966262283959256950709884685043367174137707051235580416722507384544616452141768916622917333177194412508005036386104145555276295768790183753217383986163173473584818953253578243680191549759716982061392421028789599547308582858340963345609258940464455651054660323056816869599644051859879419569890225608235824990359669926953240762677649057638175668685852888972083639204733416042536480455325034648836194053810039259011701095205610036018098615517765079868787659194831309331746221303405256048752897651124246170265348353591818474916320928701699712195681624106491186094103085631894712566028462748465086497178460825609704513336020054114148182940300702183056428495939249486565263922797577478683792798237707329120341064981295359816963350871010819923036344848609813952858643106295563467755506485036949500139785120724263937700981443459795805354028979644603491237139123472562714487220514836357509754016324640052186349749102449279361802183680423732993265013933074442662627771350331227994234323399282720388476853105889909775429807904549762473416995737188684646051825988976328572720759542017675058868857256600315602802693697023523683045783769943312815976443087625316844542800846769743735269555805275255952787796818109447892352937904544744410504774967399088189951940944628513236727732349804812023440583528664065001284953372721239514554187192561058342154386513062245080837952277349286537971775581752905098311667171122954540825326027299765674540552006296019130067573980394856662987627043859392773155569892462245390653301729202255414149006072151242806517923974891744728693857597196460034851011324391233872072799158961059978805466950458530355313382778880425931024415945154124632455557808617162652651990362218759961089309936516168019004553976957357475779280715021138047394241222039653840777010524208020176692007082091884325095683302266770991572672418094748478545914936285174358243572561091994149403072830878448711958503540324918395496642749102249254152520766038845954349551840946348375103179079731274499836641483977213850137581786788733351644167964099302847246434632856654989717343811136797718523062112056099805600812152825442083445470958507680864868493912969215965028394678913963411308903469453658785997016179761635753841853633105490587220525366094627240439791335980828305053904378888720976448672442797110600671804289059319211942317899354248101138140416787197057479581117296665356871440588516014491310550631927031527901087871882874457812487316071055776306978905026880218024345134946901453782802185445344887502650389078828258818562852419655467212650482164681577153294064707753590120926874867172767035634631153920814331422440861421068017093722176050892162195768555532528826525031527141121529491254939636092768017013664516398191202758118808237401562324619554667566664769441534551107240666756310883378206269053767202889188692512772616143535747999044591949563560508251357380457041509569545773349399278509557472826030051194174681809706822766444797627281376738137131544049136330775095169424039061309523371756807422196354511920187074001166327953014550403541241951553120724019306015311438217535641309671995510728125426082011770956374018866686881047259686569637501515729287537148744934266774190040677468179716553863830778125529891597866440212596818596253978843837946325088873662380174025265235023336232340215544412139486254564338412860994981644208140356731451361466665203048984225775834649577649306366678274000060572717288763051893550839120072807215720297308526878669465919110097520558574336450263185468937059080064414772512299891543460974901802433195070467231080616308115032621332892413660959843456603057698363489604724789889183754282515126875922236435930702217604976528665289736802728602818318867441614605344348879018731251754014832062023899956921266167062592060168047349972921383153840334686984567720003683629429685476913432979546198377908960200375614766536609009001968098845226867921366443842787565006197230528573406730835489301780895180044965349331986129689204899916265207317002346478921703503929231524670005409144485591784310262365920114583345052366987520721152917834152477037998445796910934833341839722678936670897250938797251994409420140925990655802775194956622612033970742485825597397170267389647795731143807041861838837742402663892966933352191862444278252335325638739630031480614260023226690690705747082143167695020010540162076580106976168088276950186704283153016451354988212990034784709228204856261686325976835279264822720169068282240946343264159339191596220385558285640171071023226843801332277864604495097241787914767961702278368318358083290014827022715005469820217852863177518888002923000763741163367430581815579778715064319049717058432264050292871194133058772667916917961104258786239247469702347868616617613339008411453865857122913801596314631714432259014721103553757072853844152032385482314234901401372875550715387870168812308629351170958146668687065228223531413112808984762618979738549311246858024883864590805504361598629268450362796037756790047093690670547394551455958433299448054718492332437033028831786340730097559863033770023320166014388927360095570760588473819532100495875564720187249751274679947856773869052681218856390283543753075417440195968310968131683462704156349548599972135013596557898849118628145976466399529001442571027569639102873149076124034027214949873180575130617918154330016737008146488999074962820026073153106815219795189628062278479155672985373594014547278970542200473641592634096826579399309659291798098328033809655408748573840826165409513207005102229299318106730859829929462135770072152082153606783069388085807611178588172180966799587706579579328937295425119570355569605840230537939961163664593221008009721360449973601321525141111772557969672400537194734547654900802337911404507391319654906330393226519724037296192291281742506597942312725829852677969083584973038938088478205444365420609296214710223005066924219785463829621626198151175681055081300051378466175687603314256750909556863977902429003620552878800379970643805673747848646017355609194082504433345646728656521719832787520292526262179263578239020424309562638884019189500194704936168935923661174436542012201241139688958950521989517218329111613458104817942642192371476971052504551424086619281645585153361218458185262502194311210249454988652707056313559513737596610247155513718479935413552205086176203314199207661321983417776896066162035099125367884400070972713610272036797680109717264534116641897006374225763597107970056043219284312546186529695813106781980914566247730921728476264250880009526106897590075603149698643367463737841639753811826571667586911472289951095503002848757688471618042974807856580338700882842614222376895405037469803616703901109207873852288113886952407938046071580890949052443334848835911187826400607866718775575614405314621930342563780673796358647979865118029018648236831683635520431779944135409376390483518994201110547104911348359498924528029172050759482383267536888623364340769530808518367895231267605212033946448354451005390626808437533364832403916154373564687474738133503272786098433482808791701962553781689854233540088585758228196541107179689295017687003869160933010955705139699920293609023776387333619777500764962506797651750219955102334004671774549812113809938105370081434988945855564872109511553198582127572709842066783902039330840287409605733751410274917386551553688793884885893952361374437784144548288723638157645748069845452793355135843252586744093097078719883795347396909841971305165467608521086205428122738367258489659238720773534078485185784876339217495522846928809083528608108518973466238298086756379795325430121897022423745816901031929670603609687605472543061563842048005654012294346672550225771628004081874456638655692745299275143198086845271144104400648012162458970488888723602854561147283736391339123347728695899524370214172996884770475905840347075370502982434271302766779594581911885075696250342285556758232052933883794466650373571489288888927728617038827546748713377171513123059873336722109964671945724891249558792725312889329056231170402593903776530267676915328950188729998868955135819541763358881277247565581209570861960712580512399739905393906715655931282832342103913928791789214010346374245138215814820681311330588037142136441117263766458575384687052033920789394050310931161336728701440069882087906159630649186888475516137834798142357952769991909668655973779335056351750934990400553761668928295498600572087845035376139260525040946156974732954802871766895040044586276458613787280564130362301754249826744901118388371248323652922917767479545371380751708939786561362091581678590153927334620374911400527921874318097765417669918753929202085607284927359207409643967815575432952328123541867420765891621722344005464186922034764753004527407283187769688584603596805091943486475730321980697049517742810041546859111611151146791793135918059957899327702391894711780298994359465918626660576964057753561833561736411041813310712866782601020637316013665269247765558000298943695289686631144246233222772360289487558231446100425404532283879116683474392722441280513315379496438310839189886064321244955678496408608586466842054402186859005519679076494627825965355677617540227056559639518453059463820367137169347163505464280730727759896996069915888347950556697520096361282763133173312681311913902501286064687433637068322351715711014031638413691599839294127537064641381836960253500090516153463167538635944576382407156259590880772427383435360430308038855929809730290680048483008333664226617572105731378485665093073004007095149803774151294444498139217030043596729319463225854690921179847229104885679340722990736392880126964237403371400849461132230817810192112192847093649355113190000060685564242219625868808108558230516597838847255197254250200131918218567536360686425322432010773337258471929913727384811890861317120178384139735779470984612318196492776445188427376971425203639395269025537067555336868736567004259420220003621298551913346310639165467190715531172932272363011528265899999978440771391669368376839634367495715761460690166328555907839820632828871576183860376029581282866717682779212888750995116676000327634294439706527483005375537918083418090322887481790084871783640628974728261222431572637905449469197731978823970233297300710483764003180177235793157343870589774012020424571501206478344786640740846482294232286448202812497132358276220871248753273137111510663506723221816513733601010221919968090523342167925665061143355000173515363257240639398581826354167362911216176139464337591105868780031901387197127107574611817891367148536656748356661302054367951718663168994159306190351450760626839577020211914703598025619643808389250002961483717648194542622951765084596300976294196826367426724215315956482987165991860037917504359572149902436056690157004191530397147952900410874339565687596209563786578076655023727188795533143293348600849386653308906048433334245529253318266328980359828815812785433214852402118461267455385899001809976412435393473922002306104150596236792820444523546282714692129260099842136942853704062073908997973294131919919123631103820211981424865263727847113117255546744222868550381891199908646643867387724496109640212294102920078423752475869378092008327153651238352997425376572138198622289826571672851128346341904257522456646743985746207583049600025863686855500062984899501189758628443442505975028642846331041749469896283207258066053827050131687845484927854925952591896854623931207439873867190678058675523589945185077627047394125640083168130593617587681930273547861707170163273804129662769349288106603393552022203956385083563085023550763914493521455772849094785542761664172538285556457034680509572643811272423258389548919066242525190248687108348715672767240710005121305686532246623179665800377165568383744604269727471785094153455137027838879786608430596217799505460884719060063001186453034798621446806878244965226011510309135404285072466142218413252910417927851982193209531324030994824032722708614836661173999656508344227173816326373164867346956648068778434416971795157398096574027586763337598202483488682253852382909436703956684968386762156056653874631843373425877881840674466389777941085825756617917861622989325605303304427653908873877534968221111828229505602533149104055145599790188402905649702951786521678550219735426544687948255537246878829163967834857474399008914914288179528747637739682173036761719640813538731919341430476430937788660763747613228887858432025174312147808668392579663904209045479761166020136086561318575894958417479701044909460363419536885209317400965699326264193122555446220788959978338088127456921565088541816233349996157675515557587167886020343498455771201542513431718873144218090176217133868874895680952871961731148195374256563481093439294820398183429386413990793141473783911041789360560672488202486961224442280218633929131743200413023434273034768794570430025398031468526991048489356427243652382129340521970356067143108659733067462763691575875612901393694701303953604261105956730606568708480238718205839369622138524927639834756851290854888876832960957252645644123022528389453377151621159480569301029641278439119473345228340942835614299707942775678772412825486510418859366359224432026587298693604656970917881162371718687466707940121702953326041836083823743876781948090895799630650429429665289463196341872944707547246297110156288959902949135231919736547424973091926557444509658528089592304928719687331377556709015476975891079350589329690156045901541486271564997452441019649522562499866078472310640888390743364139987369596457071591334225995432604864182793585475388140506227873251241239194782955715051088995764697887724132882116820288521462013528854489379652825877621513919692870514127885484994876704406715033543658344441356318142312511712939944910614219980602160974801940227076779857391655128753668202189527936361040101132685053984961811620625980591990244926607123188923039579727300827607859577040815410519007184992122276838294393297819899939075056525095813345245498559565168388254768256983239005746687483703169689047500953404885770484960136546647576250183080483023053195303525047482268050842007689095168244168820840555764708147749862067429704719466080677948069226408500205286101825969789488508554831611462637647953099589704517427561520725858116651253208876942316319226090999465572864424369774545424133815835693982604546159914649632294690313304658506162982354948954439443561819561429476846932277994829345078785667808178205822011857759786828936057084795295026537936663705008191629366835563336397104811968629141322704964050223112418534569283671177941722820782681224094055454764709231998819258513001646988818879066916085246309294590353100639659650015184972690618452876005670930372675770932158864425213240861595553883033487995507632691263766201770472318277309953113555513129180597120218570759069379063261476960720978217341716678264544815816150111585563825288784897033138483466501719673697722131198039091827526424779729643113806263799404294378087671869440406472589641828491981587118131024262568425936088960754965377935279418975027697907465999825749100496420738130382115908238359009790962720029272713142847884876227131111066511164539269482641480557481898300908166932682667004738679888982906515567307903408959036336546003406922523308337294655256432339047428429613093948150969152760663247147323492313696565090046410608155801660353642958657424541178168582205759345930037667267406561106721729860547244232611816336045177058252405243651009681364687102299202250108809898224594462297496458750749015532892368631439748073203579790302857303011175535839547665778238796636630209730455770874740031772069172311595456750429359949964956671637360711227193403867663385973195025160717233939991029595850952391717019705162228710893009380288778859939535514498540088687058927133446888981287594916944412510707800971911539325689973592058619162641971662476538221492622146404155411943238302110923258120119956113536990413777905650083849553403653813221440280829688487924724399724516756302314854401774825211974858189514987639280164500511009855592436794323387231056760236349046415009508499529119630841181999580300687447013419405277549994086552112553644796193813198188034483604646673979662756704205655408029035822013002282821880768621593475943733009225084635095818710419189971994489317479887076862443779478443482040042529066582052520557865379377048988653334107499824189674590969625135203567368699438892363181467780528624118964124522266279460212631865399639151629786723626724680754381447830282641550968297079352089866551751288833662429047097797320711150047384420340300824625079788469054947978390829606434204993311627460988519682303197040718602517614142067857719084925887850422117350522879380189319020654963058336986511950974288050540953780219979162578838540006730992513943301046458832523083529483535707868112704045787357160974576354472304046780000779746868285975489605699865461648637962029204171652688092674268953791901980289420660089106600696898508022048293634354396545052914740196625875558379910668339425987986336568376677252033136321897086531010184763517254472875061028452180336555007680188254572837543572872800511206935970995600689047421560765861752795014263000559229352150187163972852913234698126008316955490495274283192798208885462156808641619839965626761809332596573476959510456432296657077717688703971385493395290268350747071505535938603349361566104057714107380921801930121367082695111413971980377304636243945841715522228906602383032728485207817339515490332538013860388013204995524215083389041078508953516805420964524259126481478532623357386695584585518712645133567013853836389174698565508832411302365609538351379518743641276360124270758389097143051040190250860320129810999050564347494076689490707988405659149042499098217497241915306890414982138189822711919113207687991312261534224142481259803821392204433871134143038898621407084641952405710754752378354903218866658002752885479608773261632641097884385735529887204708241305820522657773045027090494530686345304243179563097888856463777590328607262590730731406317851010448709014030495095716283623536945472520254321415492906458363068374543316011484794887497350892963355625754732449760990925836033658550704992130241961263764130921997472412349310219189637878820899624239538940390495414614543812613787868364923988346641578173096836505676870520385907339877556516488917398445506484439174797855986218707146290535295267035967428576830662433189071680333608123905965798761401757583091633400445381774737795215587536813129519999117015926265580114684692395352817746794446678652768084337714491214302603561895841532224957005555035486288446030530944003880121593530812966170227545695813899890308143393111191845478425718455543657847417827278317817026653248426398279748105470305779680404042660791414536816131832008985646468480198422439168351836141168145147851126433519170682589236576097818359239760070862636117482681119735001276878251126103361047061957036579675749168330427791047453337788640033974060197317553304389789321033336732562210732896279620333784846076705288522349441640880900629196831058589158763793640029219657497163083831975049169700638627046629577606967881942521893448794007355819930682949516690416556054917052282017954398657869559999719887902296185227599882585435125034218703621296851015030550861787004446433728570034397642548008127942089965612110845038288368267066583747260701308036177530030469156784785589298007001772680081848989697430900114325063802519097031717555696715902570174765902916250670728204687586677265140402213089485074450808558490533271871305757443596972923801856537850939879069251670289391389309961268674594183608900345666845058265120463928981306660481543982098853348823107546829678744109626485570555417992334447913343146185203433407821364797679726444768820533612116565986445447431940557730580293992389136552161224838886885693088140886580835867467382321009127569338646071585885174403353624828043030657333657123009046651165659108197352236532204234381638493781757177627844920262483307893807487256251388971061272822995348040619718255568178162366676303179105525661697665835037317022941282480930349840270264309970079657093984978451409410532158967380217185223904636660737569787797973069958800068355455183788347563498983900766012997485409667893712308147655646451337516642913735615771696380828551644490556558013737443864976732430708103614368857199282351186700479075179170533245559890381663002653393035666461620778225267254515833393024571319193620555425477077218307111456543521066452081920745257038977779939215892745512902269093578973424972590176652811568494942078430548125302963960827810019870395483529945336643575901563026591725266917125704072451230776741461512581829532190649113987445210164335845463258006247792091927826601309020204797446874155772469231832928273906766741003220321194265562320563079838764713286041601006815988605404292355411457411708235505536374484325515062110791449531886197398906252028810896229075003549284399920850351494936272945868193462171348312810783701819433906131186594975731107104621541316639832602796037288993202709068403295881134286353386160604540951008377037771038750238180957625615114039405056502666296322573195556877262923558017226747599011519510572310906072142323201582279360096916768209197105943911791602352265614755664348212581055688457248507338558935766979739622302370449957176181940511296152671200260031522871776999274205426366991625196350285140593823989356864998349655087308349586236474436939483091280722967847908417215776465815365040383337428830154286761222519653263311840603120510858002258104297534571915294195718755691346610786333620102773693272706617189328162315470673418133509766442086030242832284409756209615785230641771918364268263942842224713553067365720922225823162662875863928589218609382314191122736921962053325575644764365754133727190210466630077907216159827747499898766658159082511024215153920466434502651521167919219751735452935007318379062746686025627876024963648817115691375501837790641245897295369947222009951201151471976931378169687975126501224716458855776417202853883034023859383304710495077593348705934067385965175896213660808238183641235289525203287671997909234143053400443094632306757982619508396129133061448651840898489040217830522135508392478320489091673882693010882910366424337298898094179444019734984681929843020200217340995853763894068581189135313356881884115389689776950649335182018046163557589180767487823736181660920462122846343460426965362956177341505533504872047905291208086751089620384067442375741966650173331150829362970731616356154675777138302262737709721566113968783446711842473204846728449327114882525530109186787245738296734276232611858691217092229477626225739154929190299297598257568403851377986636534665405171969168439603044962376492899128905569447247412599934648123114046304802652842321725318816774701483182827179486433748767093769997345626203365511697784773860222197972002568059709632005444132772651000760098458912838909461625658354591536254502303006738743746882203037392333453467454380767979458406425178574526445344366282694536609233827256274122897943117503203583030299429730497276360931668006390729543253483672927596229132632890453060731846356815546474272525262681879649369511738189261063108413183397728778416336757237247274614939949106453148581919988822074884401981552263164103850436471654682033825195040241809393134268568301954881774151347073708777468278376684750182411389999734480113159368868857042343554104137235302942985072091415276706647895848547478570281208204691121618871344750078270683669207322862023478707577119564593417331540355950761042592621835609802552521482598806510405150499400127952192246721972014541416360251600109549006323701176357923880822103759133312528640196931518569264850844748313548227089788551514085355545270106936983606817751640171356558761112578582444344055040335675008799845386619809059827197992850361572532127832540977855747388760623459384129561190094155523656280794196152772443966222146221265308620418316626768443742468670957650508446839207886557020374751863389714117966731395069381643533944340524509622118510626453451835525866874293871209388486275185462243644472951316798750681992255362681644760427449866674846600190454681178372674032476641029517076035450512011136944458807978310549574774153063506197437646028513641142441553777104978049823265628341323086229260281111688795961877024275990349078182731293782925179173142855243665010592195481489624565219011426110643260251820848872706306638042915945685304664736727730548455803989587895981231195795740157928579912031078459609514510797083185975836915030967712472192663798155278823506536732890580988999651613767988657556418916719427141593847088148064114663908125569210201027962976601319456596386755033513207396117543314392325206545722415757019618365448957839387500723243006918072345643497974473791927616446316983153576997685540188169559682919374825920316425220163397026556280513641103516330894240748472235243066115404687991286239773262703286593300150675254972632141555341235747899330965056157294326097427198874984083910699040836594689334427260861421378903967606530655115521176511935695609737543080416429237399244945285853230443980024538948870325455267197442956666496512592827691830916217473378597990843044434245329585938186689910655698606725023380077300550690536730887501370928945330469011185780512918866118182574732593050709931877727716436212065843994073174451372504384837630659315121874212337525917852907241481900261692470495583300947718950193393149719923228123957900938601164308427799434851883813626685670610675034683772392298484757990892056484895605978119815438428393391101463472816758779038571113159129423954000743009590310838595437369880837237078568985308607000900855478378404292256958350813174944552045378249199069718804108241515910206407729904063345941923797723353621036854758771707520371054536951030825724536069439062946091026714269784010876501408992696304890204652348048151047109063275640973752464545762801549139596981552742642799036887830952263129349704932272952891794822679461402825423552431199918061492039147742941555714457581269076189922708916100586361711511404349451625430199396518695173753529111162051394459915293651873689273788080958486333967965536450253976413296268204467603516483979323765499216585857776491494326425619537325483223252443957700472503841251318064660738955874837493992082754405435894900453368343677771458236015697938496492102942487348702673716259627776968343667842965593639448398366099301600782978089786266082974033430623492515941021907817675524560363079832201364533311465108498542939152842306738176480057492422723443207889869121687358568394698474819603014905895928837649323898345043073123987270159475126335516531830887637686104993575768129000470651325877394781462762397974764565533468396698289846186982328430718141444551112251409800724074358540586609366590417678849246783949042176695096026814064841508431770222997490436266224173774170460572725939279966315257264481348193234000708743995176266572404508061716673841768780495444791619731222539339905894530536401539569469720560984721248150035278125139775316970066429557262100537781884652929092629856794576088091874689042977042494754311850845270602376012127037958481968370396883063915028444697798702802122300988470986050841945009193087459606918479778419998122234024715486891563130051103517254646332951209702120168450716320844988182554690658696651472414532798477118942339258668944937795843051332679505517857682054706917451060440409777228577474765564131635190775183868076135144984477257770142844367686776570148501490611220122491968085607744744865522041486425845095043984921150985316803494446975200445549735971470045694348913173549109708445694258420945425159898077820537969477221514688323870618015653877293034408586440281745147607536809097893433425961284054724683547390697281675872209022228276117530557397674479600552088102607786892361316664584314528897992468161278664344173763806864182259980799276833167987104235042570482371185191537504858657303804065451579288143439423584331736742372625173679496550007493836550901352196486743845809325735002016117200214535293665498740281878360875572276750427728319122976541933797198862703776944967171045300684037699330910636163729945201590181918695495303689004283795802938002976947148392878087477660570488983173165349461916965424052617414029634541395955528490160210826815695507028669761997492507219477797016644458697916645270366183470516355849011750628004836589609313798275058013088996684091154375396718455078951672463438852898045839889855206405792702607226161621149233099125924647582212128644081838570725123528299854202583726177647377163222873041612845361455806927558743191410233563830059910976251799923108226627805418882487525498060284645193715697218561973535590213729971102921491135853510303558962382799655192647660942831015248707559944367988231052460671972155501121680227144953862981674711726236373826446930950013765544021565911526841938653333198299037781042927000660085871559597450652363507724771729812464545489949265149343403429643489751670155804342070579961269882197441816323041415752595097624315272062951332865823257301857359808203073307533264117097283063378282932864894569553915974597180840338234338055120063749185804234311788764142692999699952987444181741517769382611847097592930387416533017440695545695383448600930539626799418520236592293897034072520837583288817083400258922819479674629988542368819222329794258840565124973186997601170074712206666302419011279571182648835873456187015055107257287166500956276840618716150039116912328798427892011450714588450090049070871857319312535089210491142767052022383378015688253266758514848678535783684327761949155304819440587083350603737372908245962233219018552035753858500069239803118100358887883597793737410165492499870791075879043631108490843327676122220423896074531865893893551069239763989667228022126129296020040292293350529235443258581309857770707372185578117433025375347996525853868042485111513154518019469092969244567435872487177397277257460020762836871315785175251660544209338107662752604879017616952859518062845491618053433747236070371618261549386482246569968638561044102260127867685448414534171261925963500712763297321977902740716877272080510370288017236444119223247597844981354397785523746422523554730694870767417171487462180351912022828620593065717933672035920677712045386468504632227530627587586310435720734225053209703284771331278322199306085512577274745324588534061732703425780989759361731367752806387035557967822190927944078303038812145287350050436626863718365114369057265536531876465051706462619276888553100982266273409335234422410877135483654674382068619006194152082374521141627828235871526665164387275278109032317921160716278549541735235900664400970565833306929915085865457628570807240168592407981786696217011666305976788256018454348424414488738014834244087639122050593978002379450268454004986726747816591573673261840504039499794574781281830592849388690895460779328417115951359736902068649587665929866019268724528937679292720611303699255063195456919920925526318152315677569822037528288495070442972248044732575162580608587799331386328575872885648927376838548062501517627882653991766694609232776486769331783629038351011379236865672440612082249115444521662182856522798718043702805036473001287255580829321872363787808033165264710669805192449303905059229578575957307636385087615559745012476269427731531843484837795030633763856756883719021520616989188770304263522308531758301467334281547044924515414449746511697860438559988368046655208544810736880000203038125181734809526662528864600139618860798678686099010620171270609480639017198352185327482298399584430038200029177482310932012839342471656028663366649442161157321243622997333065584669291447173135091352630861309792516106957582287574810772418012385655393162285225940536648427306087118983995287513907093208082595822649157649785357789969467704813904863657306689555315903290697598678413103608150274956052299555184006572473432001791499916424537267415058084915995937566526752287043977167044837977232734667500170351586110831618157041319757626423192483119528516149817536110096068777406428268151919261809496208968009869476942149445110690487711313892529124263964819805742240076630861493152716791561327380521293917272889755113638162091918156809770398329701400040905216295620143789117011714619363999172859102926240786586918320577661164995063456895317915024233355858743283262458292371845317949536862168664786750951688901181839684276356965375898045113451330776990508851047478263953265843906070986714986432275701210487173210192860735944757168132955187401549294345580890463338424647580577438559550230373243510447015705053667147493340175941336345671391968693898206764557702877660455491340959427901968938019578172949195727791459660579359144725216850234099069468157441054702474266594957597383844131487368239627982257065884968934095615852250688292765064748384248240145937438418395118132586649472160684918885232904535631758423165493872647803869994670578769144372325724938027670507992132850096480534170017918520040887507604867125975543539167986222788546876391562314878370557257592453168049439237947309770714254184301831219870071778012031180459179774167597698298036050230003731025716294731305133244819958719320405519595031750873136527994911159937896058343208475374736483429227123354551776514464750916848660086864785194846112968854635812690993967894306615616672878392973651356109870296412808257740704271536451229448389453468219991541777959575737121460383686493865373722672437118710063938896847457084236915044133538306752069839678176083672102182476351131464661436144318312173654670683178514420761159543737565457629171580964579003433914186728145074124468082678070935667632233705111708295423231955872183683930454450259781879286694697177879239615119581437523048081545232692308974008047739576447202767170505461172906904307834893789602728993355575291903086422957875861908922544908478414516911173269400514042591863795209053524689034292974341303383836406465812885230314439002888856032004927674582571733864385694324406541754306684392364218836823900213132762098078645652805345138435363796140852499212990718712756495337786287706032217552611497409527121389944996387305059456354203284548860289462593398256566660482205478385042086372840711465842998636348894010673593619005055357524243623287382430201797285635879259386047987056389044013565177386486872758832135756139213801094153410485914905890794497857927925394775254511749368680131206543005459066216905354263749765339187693131466572353512548432428841865697776794122122086557524341804278493743170199794843574398005321997988235970816269486917344092925065014632324555007845399736808336793155259577780789458500728043235754220490727745303852409592954452010853978412714459277782071260337006940018688300774054078772098464757404157523880833348317785379267251660011941021946969216686548495894969102348750391371236913145018436020843354270695488789874760321970830713588854629840917947528994338793276604341080550229044343126778113619862187715571805053651148232865922485613077067617893765867128079693972442081757164093093835446505828986879406851593592898028024395745117005364141395626908429242850104375819209324427034707012566882504088346695510821437429270038814882282023465079909786813562625653689166104261905852519581469953384188788138020604666415368140030168835875976991373356270978713777590681599205845509620421143477431812733456130076356176738524456983182390594296291115674872911406027417171090811275120249180929302781600012268107092478913981849381923987368235235164186307758584024199102131096353014277564984087052425864523071806420505083933236865445005244420449241458343059429583898956324037187419777493922462541827534382676150051811277638909126741067414499681046590710463519404273254808501242679139726636517110181638864332168390908899938992480849971404788233556747932180364518963717503801817617101893341884795526858116571929262878069966506361613626305806778474093912669865668924803139912816650944629619220504163490800258868529544028140672722772242921085746428713621802461722036519405960165380840845632124807246549792695315231901991989744326357693192384765036900620751297477074873651510566376902196082101252960967032146079863358219571549443755400923393295364881128063228754884567429810977834517106963683893785761361190197225617591741392655181877978714974033367453888440902282058849630571504210131943249127898530915005315226902227747756807323460085922522198029155736653117938851681051251466430512289827293575450219701428712727282104521680330947999926242695753278779849064125940174826989945709463837987939814042256939392352184007752580710068014136816628942753514911116649467645039870653622607032851102737218079295330869671422948650506040746332980025830332751791664087524372333205059787193595834428789539858047756597004117199139046178277881362143305797923772498284197712274673178762162061941550922907597400384314640601464564041500827033373238770116073953033764571756599473861078997724920004549436189797174758286108332358178426558206672859139576943599073515138243379316063308684503506310635248621443341403588678589274176887194261405590030472795487927710474327767298703576794300638152814905829457815038122544432121110117312718300773655148336842987079750331690028276916133129207088624410202160695703161308100643662875150660256166148588136139190323113260990687081816349128399832801495495999122650191543842766717396927990175419044347525446439643706560323721658188904837428620895747179273472637016923727985487690797912205508445331675764940235406461104122352990045849659620162114179629154914872762362511413955048621369566986145232119614648928925132481492906206514694785215418233940676257167657004403147538986597840178645860700299935393712282252738313340753900117073160321040434661622651250897513695182490298503932911858996985344860380813343184824802894323603897706937118246863181109119475359367413731906892300165642998685823194175711383085898681013058228913086260199399213357840116643654584628449937134660187402402024862037092786835811174692354370691169466018611250689045196440561680254086436844244356279371983361745615192413268826773554048181545981728400750457641932062150512654299373959237843372447800998727104484410178434138845735983998949240601816259905125059735567323813041812074867095853495753614210705652058349272502173698668656648157740842967613137835865878922447404962690102691458196773514417425460068876908106432170981533898995590629983349504204873869025093781924660667286660855831434119520833413147258852329344259249257102319636461825929358133969618738365924878036994492173931386916503786197834729534764083320359545428426960701619867726055543802001644462617317327503951298554147042058606010728144940983305680632678505322220943950405876496125072458254194996871285090301310981702296247844862653447657881007774308791190982493005178555284725582486325016159523796988303560355900268148021110526004840060208352172651259555646292728185602637834258831999366159793083544500247652842927687763465934530640052562088831258174418574693086105783213116906900637847591230876811813025699508928915750500718362623587965940331629814532940977732799564073082305210112398444339769944300084007628936830849618936301994751879487506117718966309656518745537728083496207639874852478626944153982515176530048049402051196926491771819524893286935350784450459047743634712230733979573474045303748488229138425682891644676441755952964252364002492172369058796659191708760513290162361933994986266368270587937186849569901031186690874818456382749686501430221674858751610520238348682799977013014476185424043707341885396741415365906081624936453228774673707584528255028062806850440833742645201892242966250527469733424653545778248789721926858559437289742173932042383162521818866442886621366258075924753896352796087682384592884312391771619161685819913779460122746536608399147698598458700786386999014021925866252292996914243070506657375488113580730641469775066110773632604004054947020799741432375001915609099584040864751808052753462856493753668959113269787897111922723154097224276826921213745069826646394118900214798580525471914796847593219884489273146382681166476499872282014947402519820769837203536096436893910113663710407285425488834337311019049418930575938554813870645866670279010768676799160842876052457051706037083764546843535247815685214195274583917967353957805546482416075806377039086963256754022301224087526045348078525804369534130938066096606924719049107154438600418797141929837253161665877033321652456468926721545921801360499135962302985652317889697144624094235992117327706235571260098728867376942431300755163956163776558223884015856545066568290273985385102388874283766336106425053378434679945971664842069633308942668554070823072160356122321640962784927807994158914082961207990469174538236917748408563703115636428474606162401947303634128893077031520278364341868914945468984698057992427461651289094606567454576555796988348114900915209866547088944276813360604777749882209573645934170996384841846766667693728628084960722922661912619447656420095205657529497702427138817198535243485142595972981497204385736283793001993412062534565451461238386576915481055936300777698167966109429278758243102934787082923542749309850861957131370575164474711469026986374291078556205346564544085795200478925129718974345318203052769368749001934107896672396341220286130728006756485544230043829543672502121184161926037169473390844139615291186388610937281514222233227017767364651541335097758201944782080800353755976789242514423212806137480856265879178868064412422201521611794820639976896814704528467848876802417966306461895667876200445901712962715958944947534587444994938428646936645055191962470296219058089354423659771845640013530029053916553752203059638107849627984666263685300199583672973136697026390613870613494118807960128163808264893700167077015423764193881093700688062611646199908642646668572338609198847299523399839783749445440196583326063705419972669276746896152789801254839256192997191733990555531473603492143524418621321967508441873606377646240102449781503866745214923439422853822293448319365416487699859555266864788469399838955869419669540488362319648953411792736818846184559789019823719876812523027251514204308017229225229730358682112430827093585333158329243888957995519250381183521649372021266719588024300904206666331560376379223141308477729549360564803200669759748090481243274296823110152686550038307865536810954591225918001418611799432751827857284179609748103683098210837585987434502820047954028726561426584872724491652605675494586398875419140725854360975248934199228106871876329771598556828391937242521662458483240757911503565992787278973223498653478830448356680794790865350263300228706406121283269807276260123802083486023052632456905542047654123083055829154242883975597243699131852511231200909116422601043301938460494862615088496934450402460229769560201531433925556310397685935578666925909475973567777742857376000072560924955481935226453890175206965835880494418894753621232156627547412775806034191505966950031513700292931978936405390762344883135201409277752243885922766148115219651561417684994206480356091072401462782671564539119655514823438749190031705403192568728357346543232286670111886147046259512134503805265310357536172876490703756546317232716531995928724623430224783275782941910102684823987960767608227846658045295615949241421386638153767271251331264063857065272781305268718668597071735247492096843949390387441344433426613090935330823241515805730705351138361771759352343189893648041307412105429253812938464023041419974724545599190717049330441875713573345317167704313259469098207046687993426515590817217774278648264575329739072253313279434884180884257227806816203883235869804765975852085409295404858120313863492449817455652807554868762648226973943312549271677953779404442355379000798832004448220260844295134451599252605051414411227980598484458732753152067051132965853029311346411918615546817700552346556647950816682555355059775520824241651719219920323415170520125229812338355557259476214956835954975917020046725044113651372832500078786062683810481268812169860978591178393316105203522851445604010553478180355901193836178752075194699863700623145001381222414218947696629939277870976639612360838947766858086166873550314069439608663106988667838617736368789502884109747038321468956970005708777357343462263578724365045497408009262551376596807341930891863481654585524000490880967579990850840789700040677093948147143838268785382482901505764514120606185945763117078092169633901955730447799358191287329048131203296941905803772921365346376757689748418797633855945266019326562855308202208650845535245773051462256139699769620722162014755839791178057681531604048179883260002009032128258458437683321871406223512199056235221133097821666239983812424885899973007816641609632328234849804188523964718980525193512752952965427229153123113572803510506268034236148857072472387595214236896206905979099618900945401243053161851558684677412591213037990000970180060309499824007151819086225923727843197554280498742072662873263194350293094481351764802045324377225605115912166281886803739796519215522469799580409517842889734847035434360095537258744832910489477131061957617639599657446325495814394313369582455870753836597392159153784296017649382856456302473891601118145810367130250788642543215421344945028904817543612939737634015871754351265073015491670747241900839247119136650543710720464557278480835211198408908377492319264384502633416684198854497015914383307844136025019913622347825791758018073230561501111100949226991761935161513385576242806522850169933795180550153475029801094853468502289311517030918613665378300515003217769983689082194818126106489403367474986556090668319480302504556779045477600778579557936024545793127262201973648282923665020559810324017216669981166155867649434816403392452314324372841061359979044013081313573322491244416767228470827917902764425399387846458324239229671551685867462618827081865178133252193591855925832812661126347571938359371938567493424930484066461040034949972359000748251795350815200231855552562157722626863530361160514371195159640879852553192971010204914134582886800342625496432862250046939945989196329777875967029561868221620458335562404918151552559106404151452341001604438633945783332144804443021329133729145415539979213791142233428576746054157345694092894087694832784608755120618287948925498418411073353597551857468291774532335054278862835487460187847823702707198573839483619919395273049356429352514919521093917708338830240811664076534298260297223973972172703105825111130883154635539774910629534379255533828810803269470740892314357747957574310948942839178898162243665576184914864988878070409875102675601949072604871806125828870644058732831216933015747222419196723158353172527381049004713694716873780506027305079795522351959184324687902588921145876024536721571205005925208090544448978916560410803030013788472399228180263722482886233353432421885642493622958631256923503554612030393799733337784761278059806593332805547938507749500729432008993048484516184299544242070153918687045091889624058261716034696175593275330435887354925472502208823368576892152801429833227023932845151544059109962859639104996405037579743587931258410714765023055159771378906893369165439227805812002070310189012233123623656443711982612275061245070504492550597539760510604115858824212583225556135207985675532401414039451473750325241861870641782992254036845210276572651224233889965084267379319423505449301947826206044613444147702126379868000711334912072130189755154633621483962414695282529510661852238521338468173604240909630259374942087419824943816279724378542899303285649090312502173635460612673187899970968609778315662070620023466688350027895050281696724764951147439958726795936359177739333036980163051836157567424343747767789568343957976076211806289284184213600520972697644045579241662595810548203383960318035013419696340135303549610299729541387568952791745591094077718003869611777240305459816636127996945270831086187232477024020744006446690674769790043698417168282380437034568598830708437542963684862811878676360765892623173501819860699325761834491099375460280073054773382004844384540877223359805497498070190703554451989753815057275310124713780379178514974187218671808301673884603771918006815799885514156400532213510640674853561291885605987565282116110890507642885209036126725099814562676212794161309933169152528912401597672160737722851030212911717518883226311925690731481723056781867644753861349762938252370253525797799775636596296363194018547637591475383829902021726932073933080137237237162915785376788244880741415263197188259091077375083847514330717135334962647615639053111977589173784788924156070032729567693735210889633387646814194530852964961632921674449131525299871345168336671518828756687512011145085804609460359408533679139658658705603271044974857924915228917327261206209337658724377698350612559592652742924565580527473201251389703857932874827538777403650781507835138817968860116189927630283499168515868536670930050237506492452766295364323988858769295692135052640819310489295989456556839829419926132137459722858596279856287461999914791321097635556431009217863779339179022404510680946161276276950930109991183562101492357006366972172651175575353638485639315895552925515679221392356069213593355753304914821003602940104568211218116813188477603562957592446835223123769849491643233157619544532500271804826496136566479115052313851377016512686279186948801478255622398425715388075472029422355238484114263189547866670108278272332899397181476806951808979624832321156337603958955222964389586575060486857243921300435399081748892660743178189904675886916818000533582653559092971938350080638907056446348433277489550486186000091275489632693504775335893935290458892302782234531373733786091030057485921399011548793071306292362354633618964185196041018726687616869783347570629475668424003224770326122290070741367835312679262837326881689870617581562855920417512531426815313036654858177862172984652468443949602943733651118096444134861825300067959196635490212724497905812057931969383795494194927315795429515221921265106116964656272667185441479131651029988488410936615574841291159831750990034426330447500348212323531622309926384692223238108662100623399667601867311808029140348262722938433766072070953754970477155715726186713702059944231582883908450208252775123787297475645127972125231072510122232584509302529427072991528926685322063322001442414742356843709530921239587031110349837663822850970395130895227543095051985643485264064361544517403995163408905610643220734729260238080480947039110061301793129662556781260507192785661176133161713458267893420093148454862317204680726904331767913504340133650152833845069691077281445989471663845675300925643205416503969277400155493839730269324925645556548153088228644993191176981142712768901826088285138799425031694152626453907332046183545832593757919094472864751092120690576353162359356799353317535331807535323167361363292222472258301500803555589104508879990845348757278283468230996017517131625452966754531970420063702591654224583965084905783083200423816477232451101385953250727895991754624837413093547917680889747620079176732641944957371108485398008621159047927280359514390526194665232246088872845901358573882855331338844086796256183715606433536832734666646217364722735704098815813784865912232183591429513007438522167070862329627226414515383018288980806326208650092138062708952839414437701230783834423819967892137516776812807006620446245250196243476877443268570246449945384540450630744096817295597217337314867600678794353189853500073625624106524358593953054678473804471258657937136173975502294121878566223147725434297541551977225628813986105655414253350032141647022319760669319701293248852451548895925486969538293832936236974046359794089217128465701802001611236495729032685994662529641114944294658311825777348313553027138397853500732763663159276338167490749323640766993859042977910094378718360594617294622627043581799866694742397793563693366966904463191487535355384980997160394166003609319723409425658126716560030548203014790859112961576922847015099343643146874378211840501963266746524783286652976647478218849639645562168346249849852359880040130572942792711120527158419769329522830797378421600455972058398433535068205022350364555310969885599563742663603737890340379579382222400651480849073594026733236056759245079694608448915359632964306761730769294687080339206187682377545517579078352979693993957662716591209189847144792162121723784080765658954286100605627483392573328625187449915464062927063658080185687536500226873707911008996073566592964476939509953720153643992852578058158168081625791990044463858318018912772905852088641794940885766096467386467229296254160635230837594124477331398074373097652737799501092427972797461947514618048704191630827694680651738573278440523241173981590741007022330143919180764174055022651071475520668463218776732632520189542888492880414896499732822596119137640558886343704562356909861127179055881227415862276658873167088421601966105054386532551891722415598295803514481241931875415116362626661985603785022594787190072663447525707881319147963518468217449767198427704374579534227012236294349719411519025747217875255662794859534830400820188646588537839991223926229838976503543746036706729146974853075665779263960216213259202501849823000695700997922237321385022767293920837792691580473921475353263996104278462583205219689558117778798855202806968959997468362450235415765554949496192163236428471007066633741201872974225856393169691241377551199816181071731902385628869472432563325545560035823095509087965183494061283378760881902342673026595223174807429128830817183043523109524088386119110368393527074866756631417915308466487073451029185534596655672995020772591167933495223046306955720945211378019047456834922953079608911728430262567210402588366389970105081669390171589608799425565445483010097375135085271639778415751366218286233115517498648349565497615980402805389629798234752578280745631292913249037262685240054801688635380891817346392102138546341186721722362013115362719039790363556031351333734141046375573841319648841168218139581688027964714236105402852997935844167080617186370258911963902287556691782465929958262335072349809791338532825951531471293436645353842408788910403510539545361289539558350207787825032801271993160611058138053139022634421397961161993901836370586611647400509041761665454926811615013870059475709210534419417231736174162019118646475034758505361945567244343320237937210727992106389374764636455900480794667500495359712790458970678799694824544884329612846805311490334210812848096477689258761735120040392461831751867575296335602519990325183577934320978260938563093276917583249073209827273646199342453734743639104141625855874730843616494101418057647808746261707294805780969042901104561453415421473489777358488502590426160811045763786244738593916671433428795760593827036803266968775109664321303684237640119720484157792223824481013855333288758730639144605269761453617093417431392345189846370258417007668658137099956166722800659356256339754864811945464887974894633910242187460527607972407823236634118360741253156975625373731392263636626063397755144693802091597015053681989101183417367072717858427486033133477443136214289582495188480526673587550403720510332223653728225877677404574811946009768840487216461411117551589541872096464923159254151463842810815128746852177449150603630952495947039575918685670200885570502634590735673142944851990076631501355414643592733177147074249564512014937610867637368441905389969315557843891184821471348262272715647292966833427055479669103069703349790348006104801895582991425293353244009240675664694719865949397825339450226244127646258564951411455255749847923295084847723746024395174049648534070334329292832378875132539710159263835658517562304107442567383581017827370532278980169001915838715958120205268940883797236621538642329094907857592928546791300285642456678682088011085738824688566348824983257086086627563453433289748481279802918367056624215468469290077451152050432571099519831556802588232010478281269130255799208127734941758035897805888470458911934568012587660211521207381640229104634308077011824660314260338676765522426901099272573372794501036798407840725918361226264340435866193861706583494352645461415127672432651914530798983907886931710326893409594248256722566122490895967674977372987908575942501056032859622969802664685827294928588963471047288183696165239980301884968080895410588632516351831459634687771117230197180060282874112823385506521469261898511002973259315094751457971275722867677456716410435334914394042357015141678992101578632981596807122607034014406813536981386591068642019312643369755895398031772895275740113869530171044933407026333521316914974519999818060905275508447648345744421364509805678622652120328204480177073527708879090037660532970588618263510055165709085334519703725748515174035556988738595413385281392849463299493687558038479243992516201317945796478505944092258473513684820982279478973437296336292839873286183068099459649383592660232524930439586861474019000938165751944657484601098890699735481540154214286763130131270139638255905390487315760488451412641385317281098541614573423706994732479802791694919248841847171205638813010895613894767822940980732536656553575279183406224027529263145413720176402720262727253828691344489178782146475734759549830078955618938362299353519251698901257869681037397368121401638504862555094458909067281805890055109882394837935328010467121093721693989098885634008737483924195563791647209625506130646905714150732917549358799857075375099867272525999692505463737569147271421321422385073068737619782032486887879679581147385058251039702865220228430709002848507678920387334237747145525659613014400948269990464286093964763408706563604350451959590584101715391624054239625487176857941740646059956301273742402275140462273797741249673822086149880029187608615413953608067342328849568498738434642729589688893212209750536053683989698161165787973700761680246806158179159014452556975929921796942368797288602440661356593943475676380869098280565486032278255292505257739359904736581598342869652828922147174997982548275172516212791647338937009272744284125834477423406783343548972749101209996451304528056165070685426871662016861715765092516543658804837276225507063249996700722420471156563594210142561217397891930563823105238994617836102368335948775120515607282160140072873405411313761745908027315170429978549223758125072085271942531291366638822715443671708376520708655349947132765428484402805668223435995961614867945194423624974683892787354636854584616560794057267164611121687146672427788436077646468229782181808184760253898875467846648954336030496671072962654058606618954518327570312487945372677329639161044985116152506815141727898063424232512830921420921583835821090355887462850104446372579863947201488625710809770415391165180382505541150824335868622096659841519198255684045584986766615047138528478189561818964852686830798970507836663350819306450125516948499083076391918828266543175842483895812913808098913302579200887045892742745670712943459839681686871027676463556568806317993711762966770543650809648191575674189016472885961813954999506723973951869743621699890340656482850078555423144917741643645863459189482265639673291661968554852056078140841957853108360911594076656168160981150555783331104009336668325887045099179727486418957258739034609465720756842994194880886209519656557777318454332395977415530800435200695373062613580453602385168761805378481121167660147817226065663095826126296335105400387812365786435820062696084226454713673950447631039349207930858776617973165872935497075817132212400414639109778858960555135775374507299984492108252961396526734147302726713590360465531102903427010245891801462657707875205152129313767156022606021480666364960501478412039873470059064185976866858202996773428196144480097324896747240486287680365045400650243109508367301579805282081339103940652535867606461509739482019815532298304800781913148651257045845931864548239173061702006232644621470151323736216506208462799845559907162566651500737446496019816540060242946842482000943438174284307274758010398731783610788214001630485835781627896559859496195177720788065848542437659662352547068843218033025832468715431709320353183706581018749025185082635476759366461386014302630207120168107442998295737627723428483689761066443282042431682755912143532571580742316015404974633980253733393306061936632875134453798695546223833234548476907072825558008233707741563965502243846330613187459274585736722911108183091398203220834398632190243039897225547560971718639710300841204754515905068452245330140392359907113425876153309025504406414846358215494374753982469857744918965332032995350606272493269673430908126095084749507593503392828742278973969110792245662976019464082560719525922330097958952963027161083437550698221140668289043994176158672083022514849486544057971478257969662499087160018537914496361434120116160967309431146265721109214140647656196631131309756419784084134066330477491671007541664243893101480747122495439154859219343050262621177680690441810406247748997630325902957621017684053619918507038274204043258014531715703501452223673865653741204238914588320920794985196873386875641166855973644161298316068969457973956233195095089795369886065721148964250552564108515261927443566990743160320588625484794352195755778448872188977612028835923389610568092038992146413622875814479708113948737398202433034935326595826574857981203035848000631876956147603237251252912775479504888908135851510612310805594963512768827772897749303285228066435117904752358203111525892600501963801387617320680086741177835275493518897342416167219295464496491057184723773479177252421272369677343176781621035231805056158248557708460817804960776685804186740619121823026373966333591011734609135314454252702086900030712051811093771971356493930446756741121160873812481217258345608280433030983967424335005662570817866047365197728857705068715302901261677639973382650424942252949925661385718922620497436294967090429827641960290185636297126748492698398024440302747606732634351605799768485201752535107868363148521799118063123047829987058205814934219270593143335502015755685644387634397190364882628636230645480063573976158057124960094251833237622458209749056944468982723538351275977523377292078096875739292102916995983984276960101675493409552182160461837117679035258457019413747154878745848622554681475771534317560911089138178848505999791004020400212713119020886847425044886892827169671789020920863122727326328133357357163177467630758943599356184063242101318210459405528546930853065580571942614431076066649953426551145489081614441288820990647847951676928295196539007874714319454318474758629058376559585274795931352864480846285210435281032411916936458234011217336606716269949051092004928296451115892954184675145892095385790045915671614898946749790579321561031854695622451995832673652765290683887532635660246146268906205397985815833580201972423258259780790424458261221511283467637200363788350156046506050097796451956417453422729657364910809797013909411266703031802618108227109577046849047360881933381588295417365413059455898281142246974302813651893769743033703740484060106467679664895469477449383123448541457431674373032030551413501603125146101352407793919105658432685551382178654486110447977479625007197278591616805118094260620350339674642426053203922956217995527402983853371103161576801678066689752415860604094167817907277127032542700372954148421828677525408253212811346177077358671042939255665932768855628349126989657064607351614469753464203998586313775042637177838634378162563541961774914381051753480385008951594745261331446905417070397898578684249599584455318519209254748119256621378511819688289735010653447364791957854789584538397813434670067404697955784216862061347827866819555441802636626835527679677751381769384819303348890762593129175154141899741865943264328447516765955222386830417423730365152016520745019926354430582773115124410168658540851231417368402195037299693602058187500033678942128791943140875888700820793583605138599831583956686149011842364732220858510924289814737789162851724686253863606316635969498683319697450050773700533032800248560290023723037105262049527744823991902574836709924034188941023244885977692895110547100786602713031295118472118670932545088110138977022621835585992764820132251920692939794931061645838873963390678817033522496440135311162540210940512147734828035164280705994290614093848546734404018710026849795693189594727419233059114523614827339350552775500574240039697874970680104200294128068147675346183639746713674666510649447106474820335173428215067149524603020270851668068540789627511349940882047591266401814016165932849960939698421402071854267334028978882132537771753937828705032603609647080734233668039245887325949415134541606264419849028818853688046156166197334330743567253991066787923337775895329864880649917866645056301089307311481668655348669860566870784898195913267192228804384120130408366062223855225152014083137274147342553569617507485213708802943988587651103284287357048609076845154715291669279972056091399990195104589558815782988392948570057764700772986027108658606547343818062436879774785317880176668632963055625981191371102727967675462912495976756989731023621319998952674208277782491283774049874280974390223117338795604925030898394524966507907791114641404373999676179875567474695628575103581206032289422161801737470069196538975769737896868814306509116205406341710347148709124166504098352048718196266674644164138235895078748389263527635141336715810039273707940626347733167611971748706866889104248913907830101745889980782091674323524977985942001287865192696086394705280026604494994736402562626940444867780050142463778635711679005895324282676572081113756637828881780368099144376390096053892419161844082515825421902442691524654413724534182074618306557895210440082653322788414807826039626750664323125137639157236330197501349366240835385976968706202365333190940521613799647103538155660911933655479485754663471100255245655831818575476313373863597584215647116599467646641173525123557851384527575506196514938179497559737872464958080406185551150686963215180279949082128303005848244432647649954620290135058068503906223972063412731229982768555642443420594576123002720964077259276739643044254626232013048877772236668306731012879090548174275893929784689081567168788888664174704851001431786577415419291926532248085966508124468862349302292003423678087932925060293800853136610075827046085952422881774392120474078995684563118499442903576753933697903167628416866169521815524708857852466627151202700507418560593701469715081681718901859406662819126139469278827328975495678141389799040689701758754831830314108983383630119983933565639526972585824215721404900120086641010707367367833276591048583692604115083372372375284581830437923148583090750694845955184852616306095117785782937052277225561363359144436733732140156618134798015858483398536788427545476477512968098069056991317600657650401825729957746375843994189610009017131888008079037228288046798176919806858339379343644799049087275452429668034984070522458726628469162137876717527349271840034463592407635989606929612533397657168684305512101733372225912507020681092027445815939148465473186055307619178607939924691030935229333807711193312417861577104706051895711112876601066763031970164861244148712340878308070549301196957060516360973098052079093379244422452473350508863695746027176495778178274633316111040471271419086831071411099289807167137553858703703444627128539636939697396752946606203788806808117823570271112420761238199643253709745757651019992183961387400780868920266097117433060739368280136476274418764255154583856939203572162840324643604375155971954345852383210788015600426470590767337991833800111285686877342578896551085779009509066812995733412638767472042236143394035460534859903318761133096901743515198691212977400537116742377330943819215943753241499004662285166288224682167255752253956444660193064894314665378352598817004969873559572501694931281244817436738842573904828199244402028165310268059629738874287233078673064934296259218339917774234133035338662151053325588360768731954118337705339098244008714664589943495409821514894952806258960467558322764329211493781442314350392374754980068170451471772625226722398174068014081668798562498514372435842457243322989517826718909449792568819507945810260986193668135307684262023248541423771006833607502418128366992842296656024598260008964942318401659404993849850848142577999325949620836213478690230004287356574935210396671723664050417820314900270687633963897739331218561538621868013703519402299498941975703763264102688606949508297437359245035674441231084338865043695833217712442075146582081219911422574219762161429439414181150846819423649029641049805881424564190951660177553897439296550448889862122738759095694151305149980358989676811667353943529922707865630618240739614493426102240989863156237321501955650249167612949968348982693134347396472319820480576598019404335558098949909663271472417346785574213475905831837823173913817820054713637808317993581618523789887064692183732055350705526223450994933135473020284794689435512864669042633661557765707117035339979390995040098260009134226498308380983144242445310737689585315779410426696720647202396861749937618403850296630797368501241090587527457626914865035845619560662942341586760556689855857552449117470735009735083796064865839831050463022064890990566791950151687153122513525381195673799330689229439387511968601736700957998858600916457236734643480283365639772637169323768540798680572069546648077436688626807410199715973410564480517085401205604149747049395965045993554515527002534105279339840470801278231707933603322898598463701669323574158474965477745409851341523072841352511529801239109338868881899808906319456232053388052914230507851995957518862150735102864674102400675560951723573087058645859994715769910789133882319928362315789399947577943109583759628519585502055555789345841092074126276104743119729385873013087196184878451719873026773106540785894120226791338350590917368555160812776406502875300324033039792383068253760957475137262868649128316069556035602792354072369887450499139642108868227464401509457341723203128161092293645711036340740848074072594731089383099475659203277844311335452968596383173823337144457002666842888355510350012362615206185188971691368244136211770561806451837046497756050529186678180986517714867921159290243919847994425575874359877866176718715753802803956877314044845433405659323662204924486648242347370408448142790033696873334099191057725839077463590782013096186489915854652776272617950146254737168729949842063942539000229530871766098741388990450769736167182639584072714512703433693103305560757409627545227416535089635258984358769573853449795957454349957326319670842274958892442546043056179441304791792299847091458013179518242477853084836670812666006574032143046257579985932073859646228737206690110163309936587838826314128877979105762454523119018961671178738709399092757445064092526125565701145048351432308499042397345022572847184420236838259768947667615419614281994247158266119682048053882152946977112089845527023235223913826655281773358419979557347992426488923468918883425357539365649725857590709690520492016340324422781265657491863255160640761985190153460690781879155666530165303620958203498423031430235601627705550102059557739220537700819765250914127692588233280110783439601443395760789760364575614028981150360255317109266437322383795994335994659138967390211184155172339026491506439585538102005604906051747736390870220511094074311620964801882693631847668515943261335602557194209054494273023381017524909929178861799201905401666789149643408657317149626391970856487021823697206436035887273675889076462271623242109946612185731427221521492723815139784676733730644063517613709364786744759808308202570683592665449240346045657097194866878783859739137216736449285261499293573333400238015847802046774076140445179906098127278406016182530804785437527101163570216114666709160200822038450544907507974384884037477548913604875164867487630314560424118648572031712931135973214859055108758858959360784163342150357116738415240090495968750276531285368567574131973257540546258227120276352963939813307489076987549449686528220351025512507518406300375785355698430816407357802718203584354220869773625946621823607249342605550940615371361495190323375411996051304877381916116401932984990278070792212836852396910046865236140380637488386889571767569499736889240414959263699966853841831168137404893759593794345150125055614784598688652653404067853170935205723321539701942713375481889216540589511231361552932720938297463254689880333030214210475788381937119684949672494326558487243209225184752879935568209405068663515105871163385311183733769379414527739049565347920727401726542184647876437457370969031392599751169316522598290746834554617421823291138308654578360322360025394306358290718478502999919424007765110737286055059086239464381007795943159188987229795637447112592638161883714773160052021421958534369963212397850096936077744223137209911994822701811799086778759183897290471578240672798394648717417932440035551468146491918612943517155305611768077131653478505613362736391984929360528901356906426047619304997452417561166752691805947904824794107899185292749972541648598706826959778967523677693037620701436996301920014587395307530102578651191882215098236211223071219913576107484711366186016529335787329076794394101652426830815671535904142518938318097731513746558040028130345289432653332584860877209731379659873787434446196509519721640168593903165055104604615074089463225590864507193358308168323071528424400430941356279194765165230658495107029031239648416220619122693277778964212920914247034571046679730124902239915688036077021288161440553054888760779423240030796137664111111420467718893339609887640076628214840852863228284951279125924954659181841825755256041243893601445452442215270619987544126696456892690638878069039343232856125718852247821029149338757252865615737224110533553763647426701577507661799842548077761409245821292245650642229115012153664599814431389441412885972221144352078472514970585856457971762840445901806312853763904634561029288907888989386391321944338768919875634415154247140940650311230439016686987086113352408367404954785244589631833254549731377983436995563272136811950297633107063259036676448858956797986486918162872496447931272271049519961557947190196571718397333752086893575063053724192812137431977008116292100765692111210508539717805207513630899450830441645146911794845985192161128591874375622751619920348653431797107998539932674498468943345407066526912854014278425332430987872686649213870793908874750708724012832208588055612448779017037935855154798791937901993710991421179077363889261818911922748309287122697382258161866623555804231215244417437390965970873102686987395621996406954259034607935638210731549148897743007521344757368444131771741888910431548110721294868754921220074835056330187647371354003477415547019503800529146993143948772225571652043845699180162481180876907470885474259259583567938846923039257863875309767875417825626125348088413058801193335051251277672867363159240395423823515890108178475180039060795061798958347951258772725087735606438727677129137842980597782201220732458908075326514608892514184141325283203734440390939052170781186749349355652141610429299290124093360000334989031827818196664117337271650581041388676721989107286276417579464813433058561318749881742393481968211255328883305620283380117454318914523404321085515904939322585177840342853545336695127917955986555632044770261869579468368125322418558290127616948138052601794357231242469088554104264293041762317763748494640901361538727107898960111122082925882333742671463434183290184621031844561200524991477751206085714185057352012525733826469717768928485763952316622731296927086838715981964356673402379973601805228116560054401445729609066216295571606803462675483017450629360939671493662643191059161340339841338320396113867867937954882661923515831324619774695724972127323199807343887274490395652367346155702458036055904490162562366013838426168820196095344721876799873375329981515027585015788457650403762715814509461863778106928672285810333451089022101311431417565914314711755435625557468947946721073075139544643478569955468278805549758558453592155541292922661227677737874216449998991058780214102397291588874109083554802875088544987543393826397333048131912098055928014439260805462027126256193287614376042889147734485726466318752880864982535102280286295205405648793040727668349721195519846702583131459930049118216333325606739215185335654940041824662466692292801231381912607619572101257599044764198500795985228827473843228762082668810710838674534712208825126193910066905979846253487253677247932922678816827678230725533186138130428215102941620539497916150097421259818937505151150107677141508745268041948045905218241115488322772342126259417757316593019903773929048433616227149147936988938714618661701376976946993741089592957772333632964990588046011681286047046213660146789104675952409528538462383732405962814256987587376567587479904402532969274821580340139992657125576040306949283632366532950790748020483024029750915193147226324876468512497835823624757670047383815816486428219581957215839230733678337751075061668477870508215072282795190251679397284602635994301788407944708210617140456974032990369162987963364240577842654778137021174130980824420557188287093179902515942519162620632516648849736436931732241291764980449362490354622351608063976027328945994602571861619723097746307273510772910548599207183839543187527222640429563522939085930342046737613203548703510022212710075716237929132741107720858303627775827375111727318419136490401874166360973077952401221354080134862289503400589471639530116100867177806477715190346811672084423997502675930773539255899050978679540966754231861719763586336404358615887782884526810012069181114441034374397840036073596575868085961633650313995899948227107224178627895837448362717531730605421150674142476537265527611960834725728584009327369551533264896809376303494393625831899985661543573967534054804668402372355197790787310811835842168590367463110609245184930500989915821785127307196027700780963448192803296567273486222457717885800190633118018253407174217329169723571259545448271632777391103507864372221990561474757264198615351686154513462216876892384300761595861152694981627474349476829672913215407595706699772079104021251596930556100898472343077910828479549493896048286373133328196064748649825517913288632307317144096428883244428061402900797034092581878463866769556659559634551153740356915201050410022819402400756790384099782838417771059167977017843358384178125590357167860337456728908442747277747441997666273652119687403264789072062781584862388515214211794103003435449958473092770303405412950161616544503978773441512734302413267024424301067531384044506225016248473019680350574394308585205058379906211469018210369750253360624743859757168387330948367099872008172035325795472644460217704338190022765282550823627311017733483522632098114106168739519345339493147874396576367812108046773419568409911335127867538191734355777351727972725658456553939436016056756438778583623265126773885997298717520549678317029554619684348789200011074395939972440578531806780813473955053389938974375489081999024772237865643282188531115285256914536211624454162526271048155100183478675293587242915774957846426221364744948808401600091605449565839863528806973519042070484849061342329209121327211081853451090777761706091677639648213346561894925541566932003397684310784135398337391817833066622015619228492701573631859257923712457567523496697407643525897901695491760101951132845696556648103562323212490124820535707665722831872326812745936828043278877835110181079751967321035095550398774202248461694998884940642217414553161289824653793237698175528222276908006859857033074627417783908611638597728845472971944654023589771030230380075992880010739407784134115696674961812464254659556872044451567979405000758203902996446766261578731313892284408952683707993559112639560997387121016777740809947598462701561272444741871697972307638105256538442309838215032575438448702492742604954245560808603273160945019772575082560029953415619914477028376986064387712943208658041058114935853556939642884978262202812615944027673205340808046888549968643286775548685014030507535807099660641137046622593381074606778001479041667780050072643827671375036828029147656113318305170459588530118473550721677997129067468516686087855571459967711722045035590765887305623463272390103922261516604730225172908311216325586716837081949000304694365748239725693400665653734434996712311741041732847383425189351614070188391792346013840246303294329791612903019968444998135419774127981891770658604286817260980056261765023012069216341040974719137723713881526923196875161060565259933891925322101652061777889356022297248481559851996747306438453263337448439196395284732271057685268185451107209804430483591167515298705144534681444233059151044338658183598985069958187396014036358597151471423516970953274865448431105415638096997627756077654861125081116310942993677566393236143398597056561484803610945492069044844918173226931649361152485909546377143252198315574683046610255449069995216831745694297901754530347655911064975540305542121272306467210041377227684834307567817899837757862391139628591220803084305782117138134648724565619507738424352525335212082533798196592350630178650338878633844421419377356286678948614811845016272673021446725898615432381930465193265526164216470847195752776627225098042223971714824225767251300028415372108150588178103160098847275395710740279444551734170520420886440652068332851119592518086639834049322117028330153453050303768200044338570570975833723420401329654487232239418338883012197104502518543541302391180799223415075512374507041223631839333816573307903890716276267219014436050462155080356429649437727035425119857587594763380318919175488200682220200967076518002583174449126594444392690360966950371231138631041381779139088090546282945961750252284230354151973171897559441475919869452008068141953845441660395008908390825564269117901374178990655639440274895056178742174571003170983321484538856932314103027096775698416937913307990045754433389121721495823443283881554662809070020234775642699994646968029170782991086704770784519821855280221548091345277841663848954655598243422532716784399840254551300856234998385247695330230898208317595111094580878172955134883617376008823408736912841806581354243271088946463215314115696454760450826333001962476354450681895012338871039654062683633780226617542439674612620275252272386818453402296477796615229918822627150956834971554377863023902188884163706529665611195061627306986708321471026548986872773334381893035712956488372500519075321129548611773205537897414648196821304816216604132641091145215800490731790654816330147898216625228574249669972467311005729187700232318158936804996279667746257708918333630010313870833348319285781256477086077745244366601819074635457375886211115300075354467305650221543530340974890805435879723195682452750321858751745529481737531391853492922407883716467539017879873116377266122788454627776745081331569040042329648224486212215869798688005254310685613389041994339347242061326638005879287264950404383079207732785188194290824890527103802739421671907710310687825261070203004079826437003295433295794268143917708510362697209720977607661923465722171975605727619558377248036525218571919052323044748434138804032251002354642675646013644966226789029319856727921340696851832986897143025863479422527840942910219912007350998181827280031180064272613095103651668808596128189622017648809277179117402345257427624361255957343145419360676751849502314166398965388520391595890824323461841952790516702999591591370762745157217008277860569121106380944167449557756557937558759488863651487800462543165005631794609733161249884042761121852671763926469906120791170002504892488778976746391317978849583407000114428912770064006587862418793552630960479304631582366607756269490131582043454941151129067148298886456569546767555821365882502042163325594369878234166078132874569944608974933956979250154813138899720657392644559808456525576264519442473337354535178392769606021765816501017849372996247072796548765137813533020425431778892692728509509378483964214455415482998192615558711632393824323210329408188703929553631270670074428571083272096558994462845438885011650309543587124408017490745358678568421365615185147841601985695981767643948552200987951373436767642078306926771690478461781616962532951704989141188890361547141904819358145357634213743560053913601811369096719364629557217992567105971863008906485119282088472763277725280612653336826986743190683857456874494894852658147158920823221149167591708860045545354265111365856016627258404733569416559512057926112366292199143628767846899308073652284775111975639655183166716846516526197042334856375116668444067197962484801634147032071090663372554240979053121352905573041249686380763631342534994971568350698473996590254113836532328705003172949127752555420665420616159312776952397040765625519108665209847225624601865639645765219163386153483455108596600459274509590282773571249767145719203435559672612827492674379331512593744354714838180676216065672452799871105021103890749184904980087571403127509149336164878471578595211357666359299002697916476972552392166801319831638602993492559899766853507354647926863199853136098963275925294853850872263964195421319468766598147214448680321877775131025317239824734275134085759048303840906182538618528802037056423262840730661978816685418431500858784301551856231901741757692806199285051941784847876252515455878837441982696028368348688031707262009179697488719496356036922582875860507886529365145541703010369407501634180556941936729766905879868571310303884359673231295891489942778828557869457218280718247527504238580858506950920327057837806114170208424143081487683995891680997811360322336523278468566989298205488271081539617370857287040815729042855084651400467918090045996108387352741523307447550908558775871373542187543497200969062215592037299280702213578088305819846093632704197679347956366973004617408455794925141963107661991132499573665502689379390078256266163871954028306670206019389475831619266971513171421535995006880952755649003497610473778806496242277293303328278677178932651652907148686559866710800887250186248541643389763926157700578135204760309308221788188189771071507106866611989465918292018110793328633478137776898603107507227485639429848596228694891353153508245861401823882291566711283630903846632041856086987781273164605891140922988681681654081035422196695233991241084241620743510540968419598838883543289442570456798346125172226651416411560942887758466115309530976704290625275599689045836166011657536965060448022713558458283508425473412534407933379954722411190578059853690535437121522711392072204672199892363663214208283047386073862473167921312227128440156868181868564676908903241802777875659108379819528416503282943450546529925634028761556679608356965090426802490374688729007272566072262671638258528062234372536009087046091202812710480644100043322371477902050100014870837709682596383995453841176816867579613618447576352903874769406502315514536030130900260275948444815288377994523521695335649800088461777533866476778313716324289579509644048366508401985174065054787603004060518566882521564809735737698272310905564702424747033338088168142556033547848896406241079623957460651951119064374032856453989961795843183768939288764849196866753311134692577719209393623480511872460296874828947053712608782547827228591017579682709897293879342118094692952888674536075852970880423937895298060635422785105408346489500881901609807814473038504473218394298917898915426390903735731834826746060029161186729701660520878771739408382801230583173712777062954715010668295806843521133039662589297770571178199931175058589616741503779798548684528147045135249741293494418068041060190717502069788811574031926603116229712717869343581157748132450213734732513484072506859876343015426656339637037964253764194095939128924506482179688320369381820032034880508388788630400373732687356597883965275369600619788469864823985137624742995007910552796675584104401484696121483290531436711782604279302935929513842435518193459418085370576687701826278061721298858832997493018551299907047698005714296861961430718334964736146926558380336878627965333577650125023759275743907073661174523599983092538928995341741033368991677214370304898848318122728138181391971878739008828452823993029413658491672228604587400077629411982838699576298998768148699544155482547869081652776114242362731332759471725406744952462891837977279526298339750640185752296169921220518868604103434466999132655367935600794217897924223245956160836867014408593280635955055145054061011780672679779240394583134851862644274846434452744633627583760294019876313969073497840440199896506034885409522496428588950159070479726473621773485129991389192171151418814569397914022222365972339265593937924936398701675205422309476387713301255680359773747231343443694574936623071055126143381973304271972241797550762084740616741873367801569648240330505602439491073283628681554273706169322832602462400984604087333904426151611074255693405818074637956333599047475508006791931337719560342113731733562107490849410743490253409197629574393826103293452216348145155170184487449359627269805935978244659613584684802565348717523554960022015951892164578721454339611201207775350583552896382986044441412766207270015941183246678943117323695551819881766667663055524812691120348890312785330142160416230600964908975359350225043030025541240411471917980425746088934302987860057728674051157219305002682453640192161166377498764823710410438258111523318721918822542419770336388276490100320338542528767443462295393870919661293616141716738566382462024616926563263806856478873790604190871490810227464693232598531655208980973082673357414680549567509734842733697231958418265395094430417013042080829372568013621611306371426258321377425401873108855513377475059321925245700510667543633645292855860893327793253106325874555044753160561607700822060219007474729539524599798670333119257078544203683696173949978269011647202517703033284182624970860647624434717467819421212415214520530717706391864208958275358937450496064914504928334446109699439181150547381242419830906736711455890199878666197783725615512296430756210154563885397568237821126292268069974948642120011255516251534060165792967178782656535081898247494417981320019176642527138130419831416358761369216811774756414185398375151126861525784561540739824048347671824519002199297951771981547398484104462205414399688824465811347755342235006689880472233620638799552399650824342218364182878879042758994151106612079027141107917549611389741853776956521420259048369128108952865065244435702043187117514130019852338985522186403858145404949800746241315298245945494130375989005918741804078976266153891568943521731702876479402423505620865292423079847095478506419412209020027838653305607453659750348994363726823094955103667982351075461041950114323394713956628200024965204888801279299786978930784452670948423371177341206188883374157694622579212259695602153784536595889815018571788869197310222240776138129807379327535973366101683928835761086533985824478148524869705605566304709422313724777904793254583254066538847433703471237779067647960401809039636836621988828858224876475827239325252614968340856715966551053692613394662140868435739025418333270753700593861314068771894829305024267790693786319088498159204579478871553399079324014756101592638989269124959456520183774058606388357161310617492390936056514945241795549874126784970746128528891124482228936475234399717631220902553412255063389573612101942663291127649901727613598549403196582694974316882711975978701270009139344051915531041110883610805397282259462854102410627425129600707345017182082690297536219592024646219041837073110247662084034493204512925092959662394502045580056678566446462733164523678469698709084064688858189727292239066884027236294812456713059779144801402614528804982652487319559607262959581762284332993103780344796475888095999995648757017310781264992627574569908690435711417094101434817088741550409787551632083908236812035153628956624812142859813021016345181113906801850591112235194025997597570527976017875844007957091228338902740930725552846649246169230235378638706958170286712488604239536792628619323646847133709397590378738616964491898338562020187682088866082913978230494288668129779520430686340290312706674457894038094592692964100947393596943608862942737767550709135350383323097157510127982031040375203222075257478700926264543373850804710976338168128138209189475676918166442332944654472930365645289925508382408143555966888326459114598959505164771281744074569077418673355441563034859436329922667286599734240617972627451886094014956439909161230824131333898633187555751970025768054768929856801381761272599361970952389649250984564679621110960207298908953552394274109455907511494639254737644342585787294889085313401154296910417478234415381174833123882117555856828556295118538145257246553682395134705588065925704881767182090465773635900605090275628757382890128982842717363701339139972839846500101923848959733818234654825688609719072175298932703564918444326815051526561983293985507194942714824047160588804317201687745693834294677252619673894700907839741392387839708976815789438517135412452125196407405046058208083181419821480155024604386649344553615521621384097758610807877044609901495653075246219551854956872074626459157815745664274741048086822285352133635234987735910646940028207636300028140063737966606109567827555055392422494552798185238387269284927730803593771131627892566613559983892826127632299103824996426177677182998505028532401770204232802345998565098116684725881989552324905281869595395473081521288522667031704010924727196119476033171645987365156285926982938603013435757292409639978196348276145979834776097825322925261864501783382135048047949320578734888145186806198677665388382516472437879743048143203260355797644174237156867095421684660138571346809272002409009759691225041417874380686962700761828147034382517229523834315837347414707973829332186559962191905460734656778453554863661856853721199110868768968399335940498243978990914984267958784768488941498406238194674366760620373271419587405458961950249159924347118044356541216529615425072997598157733373215335925105384603476868059887563942604149267557996329320796104289106816507935332243274666047151920278564737224281541772775083445289850057552997584964775938239156219078848483482034898642999224188731762525026010822623933353346050665577893536590701334383548817792805943352289381556020038759020519261714441008472862203218036027164462029128749545445637887220855285214353331170041670782669628585475872044610964687261868568994086523520489498045327119651633690316992615254393840573554688709952687637029352784036940303355127967795644390858152236090784706206730102789139116257419765955330350520890546382301797828172632829736528097258672560344991555128686144361258075749768849990446778683752371788422810501753051493810353887562655878572081754064702218648880251776456025200564180403882946286531609873732189900175699799479238329581756865782404557333120318566521583839746269625192703764066840440165032026809978915382960424406295374781091303867189516858449626848011141337623456021489942136043604379992672882558444920054181553780856469138162708303436328125749510204004542896704731286829757219872881678670424219871569898705104539740535044321445684078299929123090259211260455050937487820106042037717124473602847704692810163192062423417692716213930164800894418847721816511173643150814798486440901477769030307913345975229562419179955796814231506994517297759595701598553671981109072907633296133989874941526355314552503393710460402129647125772843238994275910452426016039198098413362549150967967186872410014999192835833110212519407771813325192707984042298747024321725686323014933244232163103470731514543708620132605256810310773734801182741936153490100322351084881242981353610956544311418040876706871359815902196792802118752690104328491344751802986982699837745302006666725986878314696615303066154251334751468590002002435483082401904047939258390923111904851696137735102907322317854208052325574922325418473606883073299396764922728080781383981565636592248636943443998794200840635537893323513322930396568621951232602490313221415784376712339493554798197562193109101172410317744965844619127303961328623768018136051589083627304926628169715049004010459815388673941184483492646333969637540406675448401390444557953001579343562692283695178121340610277238085257948485899406565774441232493225814795301740596080383157823090812894057174623097875846920482350388175470526470327056664019976636377990810089074032431486116224034684078705678425118770316187708135250611812828341142589120091292995379332709799033150292163523531987987196621252611069358065647145471833759738165836739531020278903592886979627858032385969713766340660299162868798231733870846930029507426520718434459040733446501010175198914835656577533544303271952251314274936461106394060460677594571440753542575456338891004097466232780799745896971894390352643506850928868448865198258698541322867556349228149667743066775852159396433771000416601344918112341501095015400340335108046066713437652195648968820998057261471075264419252754403958725175375762249899607870441952455804291630996304764999623760994682806374120950235085641290052980935903241794065828493274388180823417723241233026106727523606664307187188347560996950025141845578818873937574815698621332340118519201825343103266358375436320847702472267338691071612674791875535779368418924987390632105610513905934699624418221868416187158608658957047958676541438582214111923433208100389495380835609560627605430216321261104270477929601361868461868965430529006652946732543005215126595300555937351270433625648224227151072592379504926735372955503239459201797041009425612412778202863752515165685665305538421098028886492265218878714600777635326250691273723543869397962899367578341866440517712791660622013920578481140050484601620649698869118890079147700575877468155094351935077308658541777015133904064739120828957443141033819215966833660461895649424098831713796742695992433857763848961812462296993637551627252575534641293032026738004655309645521332688394572644443713992712848727956197805276872394841803878338598021323906979647759131049604225405428039257637070132096111998384493342932771723359212516039386021111346004856567484369185527583744492338071015995139251772684010173996917484922330609348154922069892373697939907052985389528873764382491781168776633590524498044257539797847541265093653828383458208517499147687277370722409629391825713218893698749802555022602115493619734283720121297795979449439676291140129962382254417796935820499716434087272102540060912968181892087593601553855336412532559213378201488972880432599091540228287781735711387508273574421316564475118320262912700651464323926735298000140201297604379500972616602268349606971667414618364288456428542967723033815340013650885215204969744737695762230246440919836899893951395967297122732683770985211909493614260190606133580452608645673854860814294248294897527730112620123149953358146136440851600434702630942862847633435146175883307198737678237594545078967515411345282331344625475233880546693194514684410134063765493604223065774583741002508890152567592337253496040522711221287719740842248534196080320759601115085979503532339976335889044388354401968882247848278829549484442987128534728606147705554910953295583555871321694117974322378173621822485218118897470269630939099080869059660830470514111824792865801452122831576136973716702971011888258240690158772381953558223927632119398118652747477044464649071306254781802407497493453312945348790847289407521012215886377420105870617559142951177010215035104067374971251227865727722003706338524562518716515700729480028746760583920937063098121530434369173830732865556855943252688743672962724363195806456579041080551284378724455425098975139430994140154738570747375848988784613397695346424034203732336412249043182411610678631145076421019862426504126224567295584834001037689262940051653738723797428340550488696624813436995026625179350456586934101536603376678187365696851908072642431199413204077611896973318585080573386101436374733705086120990017812746655034688049101117853444305698121396731863912179071751195448096151456390547609076582963375100019172904050411179708159367380492235110980950768232006852857747255913757138929017780997406931526102531386600334962587218839934960770949853844302984233801582740200306136122036639251323383532073852801107225227349502496661933713801315940491258386999339159489027842536590644338161092108339677482499089554564237313549547028985093665320504759794966311209255861610818480670242094635509858828161607875400454809270574359951480418956282446113566590473670347316396657226551299045674029271963185038507796670789760269230983191117833236510449981995006300797247784826990800690548242693599307012438957259652564300484782723811434252735387968714197612117567490266162324399378887038839623244767283912096043145138040537754619416592368122548702780514020013677982043827365994502719836086882491231172908839228086122375880666326093878273780489327427924230414458394328800991066162245188299876705650812789922293882233010150768852638127176826353049886287128992193094219707887412560833316285415283004786104100314582423467086915077139553557889069720616428651820156881269223476300077094641416149465851516826616955141030207720881372709568319314652563489840617852714704840156795053684301741964268217207262996490887643540403533174227885101381743053418642159347556812784964928627910943631542700829047066701687519923580766199015065583055881057797300992200586602369445960005857191171519269661970141425804159239345442840923231239942386454426876222754767979957539698652776354790791677509977799840762303500269071698014474377899016639132488498036473330117231631030045514374315588622116604387872059117711993564438371660624328032822781266310648234462742686265691748597426829729844820689882412411429491019722934414576781039524662683883018306655116485363501257682331816206130597210970214980099982997465977641641841512037677413058701277070816489199843282741848670791852421570382546372046352621131875535496924425787224343462519250948365987688769000968926620322724824618078743048714393582324876754965297170814287323316035492498072369200515885643716642797120775338899390050363339415867475346301753942667694806814951280258284991568371861320130111744292315704549089276146493509790331809843117555399286801589829592580898181200877223400025999271025817745014221608397267799060845023028421885817771481236768584404979321309756553362631630211446421449089307420420480061663529964513629339952767775119371395009618544922114763273872307290002382948999807527466337925366846977151851024170169387415463071257415689659070441641195931929284877987936535386746906000193148671444997672037249873073777219544271314819870811561682607379294444186971045279759966995114077534307230179331858991518111576205786127127342665336871230883566970602319542278671521909417080546584644431540465467515954241543551969783667406162550944636737577229317727434367623293598134577976928954047241843272355915780818357129158027622038510727675025386146293845401557359515861453110691546508268477814677107869434748012717871901455809888098409779920111949560295366926845887673155175140455976887084644304750046924445363595216698169448237226582929767656377249322197744829902187513624198512752586552106148369319009817120584367926212817418560426892444637193300025429867120536041328624881637026667867756395858640271746289293821594356480938530926320026434683779490770950219473842697679722167768110461710944943940425028639576009995600069851399637311391176489615023453589832374048854672933070166662539646886821385199389608469330987423318972479484698386649771688384279293635695980779737553830118929772905078857119715370787502093699716259806759218366698879753998770576908368653277755706673563881847130615925688493182428462658052321355286461271609254853038586094049557052816531469902016442009884114665948962867810432201259175682104963988294198653852573261453715360551332039153710939382847652554813189410128053127510709242167071397585036811520914717342338917019786437628025191607652474622121433079843036458515757235725000535360939503358783089632106767714238089076580742632304494819925888565203294794593320129978776196637077250207558864090981125742407229736436171368869222950801778134977166615729350391794881964884899809963073614780100101430344995947923887031268662836938235796681936051276998875969712438964373089883292761236208144651082871380877886032345313095462607001461764720272964693474849272862606378018188372868427928014023925269872513209360958416629427928221708289864287166107209202619631338435596470000161765175857819811285210400786129475191209893640873871683355438119215231035345599442144870539230969229112129596301500847107487949242552354259377625101681984850018049468200202328832080404328465907432887300230897257469034001278683851903610907202316383223507015743734877907328775389404956585913516286904026682845946648872414199894912546196424161433321611757235457888699750780393737478459760435262540290611885008383916367003854923866927187237680392493370797658512142911747875493590470201028323176408932414889236974773922574347275170095544277450624994261438379352373823574905312617174544709111935271793143769357753876848930383131472549788897779525632440112931476234619085961533311221075243732798026850161869231545946718986422180617672446579269727731734777710153203482660688667179353864820414196509113893765212952266652626382046729435060463273165476306563199866710157354857045279354206161595467440749874943021638695685604962991987688147663541540566058936770486514189100325956570475609171257035270535688750678856100325449350125238232869828944021848595612442942779408869456907749265990053067094551696190774965717558162553699142563532324473069034819426680876553982700175063984002934625369447974673047097855439809905249435555077264831472153179755727276620197341347769737347693636987010903198338992038310596624577212209464632864057273285976853986708590936036255124250803977212432511764339711183706618522658447732794069722238940813792244906241279906009563829534247144178484841925049133094655891811614331673294493644692206588448294584465183985542234741743773248149698225868993977526169526665590474626625623330131608037710689557706697855329452248475807756287799599039643520885813805678320296840544498959636263187734253973136649948590684623199383063832469345560769469637837829035041965241192925416484062626188726962644636181197011644437010915111741680174260558960808717245833666457227104094178778876454419213673884124145415658538861814387996143294925873948013634727754798293224594897495353920818255832753996306303133449313177802371773839368772190743053231281081617494094444610199011692153164640333750724588707953938223117825845959063236310381185228914345624370820302957051741559283281469715615250405953038741806689075925626978291775696200891606445603792696528402698500422497071085314429457978645855089036810867138466774804451196301514683606112456752067618043935391970464913345138148683343602696332441147385555860078739902456522079619059907116382808370132156017684406039205965482702141033630546357524620344651926088064079584177809586503604525419651193779815593706390668213325661163451277368856107525475646739250538300200093452736299518336748611418282612114827596315995290864393576991104228528894802154360461011698344584956068954112658761648863928290203602472490521250671144942411892869211413960790411182097496482173384129309277052386436765482046854304009174346750198465783236550861210156924409560645271417697603916441099642738448841053914725416720333871880298503377939413893354624156278442722416236890226846629024184414790939985167507401772507122173325214390493548168922584239111158375892823233988397788048682142025968390294235657014319820788745385374514183674361769321119829139398475235830832650314832502679486967796771486576999014909635059547301562583128017251553220484934544898075705800615046412935034490213891597214201165302661539207691708484612854195448501758153727909527397503374261983203486582053119286458964715157638004316929415483337794498935668712221430129279974990821636852095462317913359097596145777475408179314601464840374660422044651978461265983019020556496336986606849444373390421948196725879624233246455621148342728179446036840836560604716588037130973653229558251133677682666315368469740378068523746232730363623394858349428337511507101672737029167691352864809634656361227027144556039081764224563595773555548976484851086636017213105660819337370748573502654721301716762494173435030742253687959802112833760330195676876527013253170754228647347554752806077431630498266510524371582815953206050734885444649764408226852438483231536081059134821250083680184059334322312591700308242596749458493929333650284271392148717186803636147004061391651854602972703233607860138501062065102277589248946367498944274557796599294381352925371016981072361134558227875257684237866089833320223133914319330580667737733779165508402893562430220361973777729245704266983792211519249595512323964699753039241660582625467312399253380596020967951288894218167588177817286504131454982937190935325761631698679186437549679508692969628792461715695584966034511117273704505768803584485106682019244640749861603733684486844004855166458990058379477040832521620052592098162355979276196672308319707294867028387112838822131196831242218935366064035843591508361862950213211493575007253354040898123207207757941784003928725506093305866171429290372356452661048930696577948188216714961769947688846244498693777509736234212767293682041070820652903297602824256794525846741140924490501384146330052739826048582824202276868824209660774281307370042550969841313808258085581702319167618072637700520749571644951031615468918150959408775601987459338009529099776205612701778970922997275616282869665961813647098352261097814615489481155248957748672846147714567104263241428126495921573854288148547796102414884213463627561399850512964919256207508539721276471492941236821364341133364293047871674878116948997797167590659895644451117915482725770417770640986377510155432392628890372908673208017781905752197684001836686575193478881632270080842343079426542914343929385544369001915000294195863084823813332653080791991009029823306680046942785818279757559493858976253906106675469393831933856151812267857228190475379321446659652251771117118077476166162363090861978527334754246043652081278586125996569460208240083241320446308941147618988466011811043914992747031921720665938848920065695590849610313120277594686489755581963122898670299645726733138807144190784983425942851556327829708620584526801991774633545130441056033742300105908569858142054536268314014004214407130911204374017205534417547131360524430492692332816691977537822112716655135945272514961560089126148597613887136438684528679799746163345617381978043791405744840535910138915142876377791076708962176623460340447963671732485867582157841034965437087969843517008501843060271183700772785025075891325221974818789616341230841718018756533221429746593591160953724109904245137860329812631830327344732275923623367206221147414945388949400388117765738672499526340509390053776855152384848408299846282359266280465669416032421991500210871223806477749497714553288016879374608301284687196632162568508371365337075473185279820934785204199923660221521098851678157734606525485839398775380914298847230673575789968553223669723613057921442101707788604692408766618461655969133792408535265215145797749431272936995676654114351767782263001674739858569366539745263971472016777503971325223865643273376493873607292242343364879986412805210896634114237939434387421868033946751226654413374430623789010546643510877099580870979335332156091511389102759595022329116162374201647400822547456847181306339610632509228526025142519130917869639995881795627287559256056976877516930529092197701628303927497510967346425666544045069255026610402215539361559313187906705255817018481278622251339971451853487169607455098834809114491961813127662753878719750833738930894290323495343565449253210121728445869975353417824370557931437582623823473662516988304425355957878206621950230061297474243396459819708198681199583732275080114278134283426090755493619087876367346699513381559279185325513704052693459327973739935658007795398548354341893122684115285439823450332210586477215629916287204986161465918760796733245408438540197550167735308025651560476413460972206320706261158596911876665503265969587500274520048321475426732078073377486689133063034476520433402591346729763243232095391105036279532171957471290510661819278523296483130245078405907546593497525987065998290897556998531129122807880321306681341451591441926375018041974362603576310125727409468684498273091476949312255588214054027725896227086040312418255324529995616964836005298758267581344940668974239151166824255687281349625292614869679429179942314385983604979450659628639969688663950855097927914711339684259495040885795346696413912230371176107776317514655508595981173547270328087910209490325820589512265548460245265245628737030703425643265849150799780180500207297567411949287177289860078396629068181166327617985427723350571605884130040941319440372907291860051391014550182655553346090604869280690873500241032852928378653649481461079247011250454997829244073997546412323143840027196662564937941933388582091968133280101548080680604421268246762592976220466404446618315608978120290424527116491006559021695742945238590577461438683650563329727493526317408835428659078575582026112966877832412395366745349405620935715746788604338011596387021603409064472925647887497745761599482871921670412964146758512420910629257876702583540361332077600346107736805062580923514598508011826135495044913928384283250684327625988505076408766061679909163549174864663606795673606183688359654173260246185926452527280686200244222076509723566403719975365462895121468602904234405640997124900475817171218473058283413343636302384578994447031571893283023319814800478768180640581687477340790070746057561766432486065362641413541023416380851893730062050433833937373183650093039779481090807440933522361105744379385524864035048235192839073221523580391376513822535681228288015080223391209410507627317965208861521076657130945135749564193923123376395966347929107488447368412903249430655862904189045373346342148818497333699523698772719035065440814676598252321008811936190083199457282747270430432161904640727743328182267230778916603795290607180418172075286389783392700144574281248071118007704716664150958489097690107099566352071678140923303885618417843368433658120132208678324748958143611717796705343730347084582826903379637972671616376158643259855359224275110278102016276613950590829738605765319469453976755231314244223625257820761604929200971121463442224197795765145597408770884733257665177653941293032956795704018720421042768025949824010047825457854308056019667500852476186000550327553418447316428900312505907052653444244525524621205040566247583292357179126499355021239655963245303333526641691186361890031081979267497459304863593249652670281445173234890348552458824264056383144564321722697269630973338797248618521453020081309468735155599309192373270453807836773102661369862798474859152481516585488264165118492826076643853892153970898026980156030565441089971312451373362513835098916813417163271568673729003156518910175890473818391035037512354403692577740075197850340056450367788704604763719214065452569030962154688831479794156582204098079343762050043735606616903047466917894939100610063671542689886455071381457956563992683236361332854967922046147311814743085404446364007876417295931418868890265380927536467106685782502868121660371494223226334518540553318750111642976051934368145799239731458442173360279582228638463210856024248263953324728838506733121682728063727238579227641208068087362629417528941736624335197524657535775533345225967697756693136013744836612628028742935591311574597106652002824818120324935828456369675393428113017603920404878288045236723940430691820738895257623936049863411874201889458660384024250619105658780432081608902031846142787727523900677411833148728546212896388970231551793975623709616786452361276285080575038779350923720781176683647597125309944598779670348030951809873118366123848654314478743230971945466146404239552413503464734467388606242712536390403459389551901006208540743347758584817030815269444908708277685678340046977627518657911536420176992126136777458309730123511792108589072738728830663512975107219514104265354194371009099600619878989665830926267552809823901283697401972748065010108242274042196560099152703357598488750230304469650331218505194499925468912095537171215054644545691688425270326365255379225593953247871310217022869192630076389871280637472870620930331215730911135672365725037553986214620216190767329158208563789534955116120035545318616360161693961631621179420495698570343450795345285520850710346973353631915281877537059687816681736302479672671440037626710869407454403538274346553606176116169234757926882387723466034299326551799728064986819075086031153491764277510126030525370491296340930183724925062072716734914799580650627365893976405446329846486699247543886659781595256857491278205838057535251441589130350384786146752624124425849103968384364849204608882651259429386069338144494933948071281311967323894044402826477589823244881363981779058006747026399697188955060397918695756645761954354089932468082312156349595765991579223845194449239852888116967034456954902509900638762952456959494842833980570299149966199637097602545114038098658126820574274018164069703124725296706986300638532895127592101526688729423372172090123588499567268807378079625439342712438278756426737106298905559768968086301443122654832551560609426783616749834204001574299873960486777744979849934394832657004663113699359149958151378809262065073145091645401906352901974289822377512065614399632742952301531589269366204182254892954824029226721578792879799826424029040806050478903727005773400682023889984423100621092998438508272616470844823235565948077203319414445574706483299712300927090004633912583136441113245823689178579218349890825697788564627337137877200373242751770343396229265465881103143538012301416522880689239431032371168441016879384193798594931994507363375861811065157405399426332351476702547365437116178143574279132219116902688537651135963656531031937269266979954775396352982140650997722764130472852859700561360319051676741684459580737856325439000281056720872131103462237618735379777132449898924263243222447267002690113739455716841736237311043430036883912236276489035582426739214848985736345761395453734207979740731598529479270192558509435705238953588996101963079629820546298980843652985578959526817693315306048230192594502159507175730363477676596990181842009107648281885252277911198874606924250166131698377450215833730423080154746768738717024739255398089431109421722215474953718552264051497143362233578605558784883787077057632841430469940568956153262630383636314877558099935034961867716949471123620907105067589769426071264696203802341875686338491319696474788817826993875253607994518145108202671458456714015541483143129958837335498119908566462468552895161630094951048124508742923837765248050197378393967212297042957482251256129489537857386164237536555325439788116107531243190767759904757286110727289997088347198264105692920237863290310997009224396928537688747201226116927391992156583235690090471705392769171319154643891624404952455088596793513133520275956271901633099189751931669669220030975268645079471917641697517575744739366029373125113213541313861076154180625766266324700479255710447540667671074867634841056357631646127917904487658779811978358623719655960779165135595367151240076012602037359708862223721958260126616067660336376122636905681421711698735107571877022058629181937782552512288442639899503397606684792590754320459513266975095123437066279540240691263834498202663399913440714590933309646640100719074537871939627988733953963135189357576452742418407330306145610497869693561200562022026465359917056694971987534928088832796694233900267890580493679484160209032537056172219955867592722848143937195203819206408137257812673013339641571524096687784122579076716908486459282609120247421254811274511191713927164964682268866065276885233630419699337242289849564746415170663927285521621631722818486134390193539861987297717289715212454378208055803765798220846111580717307730874902731271844728595729850184159128026819342834415885953306476354711197312582738327820947737495223354460285209722978219561711083122623051005970663580406009394672676409336842539758499957885952161892631473304198351205304308099913781887122509091684762398169976528242257806016146490969473142829141255297000020625833309055457611445196152969890570314864958952637846906650059886989339373455568032155117178183156392497195649518229522968243020279248865869891729815144771925657263043904752710774197487969980392930606659070471421194020269067595896620879283263325684444212370555123112685705148392313087789393177563947305290792825706608909289226502883783772638017460965184266738056101651208191398317401192412172113893140152872082027975111948150456282482333278913490685876871608777730296387506221005909249618736376565898319384901638837448906937990897616512093492575683801971715431924499111977884395424946386745956950938149152515697609971685826405985842201432573127448228243870858788796868214244131071167620291606518084483382897246891232050058172691940148330873600430106237030843408176733325057827459175200293106952983821488595529588688278397789606502314919775427599798562267473751480608952813509920113455633084699803177527628641430626456219287406495225864478845132136184427376904860269344955557049295766024836135927215761289274847707819170504898211271123457801925850557814837577546563255963951272081680618586329541599119769794715008794958967804797542589779422340747419518593713629358222720027904125390900463817495450133103540869436022268262893307159840277982938042669385783593778458027831801090890661016461153065243827755397553298566138507746882034836089655440003039320433214670139481460971268185192051414932349610691317012113862922871619586673184518372931328889216077386930917490604862673970996534706428760810499528360326662821626348421601375373277326723467983391043287133829611167729852718853735844188116914303904779413960585855657502793084283370843998954810585978924140135091689723386735217345266812217845221645312801909499399074043583218597248481836155738789375670565117817734157099325763430743963438335537516355836375649652659902282528620553072215106399705496194064069183147601073710130783358393895668167428471615650256477792665587532085646936985824249438025160601274290478010491998450628279276373053076492467372637891666941100670764233444530954486022326659249322072857232969906992653533161364964890787921610440714000857797323670376123277076851560146752435627295362853333580315991853895942811572502400555874852704637602022038833363800615329283553342818312442895201605845105005033675992084580854609013552925046057419429758546748539224535815238947755966023130900571747106460611837506399717828867979087346251327727490278108572466311439523943772568795001526648190894820355801690176801937442865415803464865493544139981416210957200156403265830250196590084985839800563600181469553473677678211123819971372729893775877366315589748254214460879368872796243087782563256615753930592802915085267362208316502376296663861878228413554946074434028909316195557730973078441206754548684083853609577043289582281596798403336271205740534511734805039650782382268303252363666944917763219519392165704275148616965696426705387957134061377562620014941466823459013053105428734041570587354063130914282382302737357993737331916532211147013090360909459324342429196644159797230102989466765730181082873769222612058593046370245799632780603984554610189080933159845608688450836305066517095123663553848556581718476182783915943135429803236313135032463867139580699997114043150401443160456927826564314540511848149391395196791063179127711816827754307448078350397661970317400217908463564277972246863516755599556103422480419110028689503016813953797394387231497183641833737842253746923864454771378640165195849747247549031508215372303590748498737282619149181721817730476031930310021511958881287938939275142254564392504677298102857672646066255161442420453164606586755611850294484854484157536966281472111961553096944731370054638447659614147682682892769477364035352877965550118269288647923896144173177028947686663509604368011564659384460065338860423010629640432033605476018574467746545111104944367150673178627011762078386463138778949773531952757973569876281337893467942745011280395237936841093721102791644419476869231281020808253652947672887255273781099211647205113728907063984397430135797093163060077700371838122198693062984646190839551552120343853554247377257706749454911432184838576113550032343429770649752382954177671867364292907876516033262462991075120715453694995159781106112195120219307328303647724964112546587195354824436066589401460488636966317935768797299792904415263315028352788580599843026098033558431135537589171640416919971200407083315898211401054411273077825301220426022639639446624579454076967123029227822893490277596684386199149188681511379947933057725257167476439531607323298431062073475636149335575212214712919627614068697645604006679624317731212378020034138027019681108299736069456042236064303678731018437903469886623751492444505146384231125501520448008480065325671813755122261140972274327342875732980731282452205306983754006770491103932669793814354032731037127629805128329522939033171503328048477951187245102739632316275450278011199187793036693630761858057629227254275448360688339645449029022085346807355674807540071078273466353933681231028014121208832314545658798515509135971116892190573383074814442061489077228075481851978715355064022218931467254445223920717844120062329979403780143788330361676673324602101469151709007279896267589149790756634456544246260108193536311113307550269710336662248501267579294540043860916850692997177851094949408499758529927552745627205667091135038641530971185479287554219211598925843771882827867448047230550065737425423133716484431095714308238776036190009662724571260498034935397624447358445578614837834044455196774305944811465139455583470618482587009040803109685347116259062341246035439718857893915897554052969304400572199776373087983509635259972975562504502573465780002313162222511888273315972403122840301321489748101380207906485634997858301188625390514077565455584582023407904199506863347883788398798418121362123342720471792560235371726722376746531448711557067999151879075290614204122574764173022904102965487717522476433893698651098856897289669258418852546895160604442735696171877322504795896703772827707699818634971473419646295309210717594241518956794025705798930044101964000196615122481591253206991874220616517787151614492700239242912318161343869133701089414028004995461883018989193072612411450290437334542850124800369320441486122699482119048378276552590108544046674944532297154270702963744272742516689888282167187465433613355729996762189692387863783862249094737051356136623623589544448825899789975730646277088629612381760743387629187736543500260598375196455593251629800497370413407538681880652003452297955268639996784025336683557742123763879114294869081604371853263885171710822484821174845175322748152619134088689535202837078248420045408865902749663002275047979057169487108793310912643863656882818559810278568906162934390325957429977762419271169556469429793817155276764282989064533885293315731994050073621260856376235303808572526718112363597876756657274654074143111904552058307950699423089490474933495839929310970080009558956581300337091268734137247915749653987367658525581350053664131508570959379092083811548604120587297191287834664570485687494732597403161836558870620365435752604146756713504487210176176906751608234771314971266793738598159556538450807550911234117203808363620110369129884102014330776940677783891586421244487588894354182781043779704307267937404734716739322817600251205324971080959613040374903499190303000611163988487649108381539690122375182963973769259505872231077637210875528148902316959192773352017345279501830358423453639417631616530044443154894962769997991616828962934507352369114445832716815797302295622046929333279565451191218493705639537485615177576804222027527843327185662350581921274424757270616253918235501011500596527613322501406370228624701094881316995472912721889026588232297540285688193842903311055717911749702806777610182885727101960929315114841440984641850073845117699672201778748445436507278199265819264257570290352570723319195129684074543746720660009277363317845934289172902112425266474409735340790737134737753302154291298708202281558241970798878106244803264353103500194511076593536192208207188246706322594992828401084541802590630794580829204749613015497141689643883084014677963817367138502770237873311498177009642481637692030125510984177315308499790764983177382984269563892949359143256355119078767906146602214904651431172442877153348164148582471339864795939803473170479767668933554596925643634506550238817151611067590029582233781306283667749491054920929858416792285440299802595299695524290782382205194143222596930105786216128554047253434651224194954318382608576774964690805754780791395603375144481779291850301348520107614994658270201478933769862451012477981436564983429145157634272079736261109189125003303501734786903912116204863845529590115396807595774603797971391336404369725824084866728469932418478030106023623842445550465499318163638253778203214938515439282323687985571087406213662997315071708393645038556490454870473258990082908554032933280295613749394540827338198846057298895890144215146152063858264759180702858881621773971616491391236337319336825091535412106579225922655311590075472446010625867559410277081752634355490617669743235524627086853068148174923036449126189919655460417135759197879247783321242505538966088954170319104661881790787482155612123644495541511560058455429311897338554425348296743281532501674302706491265120464995152720694699250882108036709198339145642215742512468440215500456237216742316053206374707561102691321250424956842306556539739938448028462323293308332529238470019085413319442979872237855074164256940321398317703654569274745504876233979104001176831371635132708664441816302645085569702176304621523858672838203617342424913108225199235437762317345115968460868005334018143073094980519684814022813107781968003346626517485486932493486231192505373083197888966724285946796007094297586593445808906234465923633602613388501418043431955275037670734409186007583874907427683034404480718720249170143191882324578748865196700558153268697877296392515218360528214523929472682074760736655655892232549398623493635649131576846892311080984766620362766211283342385469687083788671233811610880899221924166803504448899051747756561860154691487982529746515971156422813815805426398049343067076232337739213741470325360976282669133638567371400982564069172339571096263818726717941208739573999052895062489195367566320213998657605570199486850915821124621101087569496712920669261752319991419351089688042079833702776404710842923339650190861410369306190230664381805527768595376971889250191889860719211866442263981893261999408842848279247767248410594648807071656972428010732154648921562408154307669834941768246093606626032308617687771491933004516640453087713365284768104884595930568012931109628098261297806883143741055427065170478478905275034711441577280394390127024635031774574365786708781708852274769317108976424584142840003593162038885623022216379386103867601683955907804844570465349334342685884323899545094922816854957220366399688517189158118645003567915323011475822322264148967217333278591267100915596161290210910828893758413226447646625685839301342436816838568476666273834296329926337613429125443674429485213945401130331173541978015721062951823073585105684374477936294998271255676711176761314011628410934028221015301799540760926907571226761096546493171970636283150874365221696435742738266162573041391547469967202617402898917521351073311954796000101288565866811288032441202286809163243633452266900010359176881345905887896497613119023872325824582984439336084292379497371501827500827235588316284471582034096416913377647850992624619253428815643445768192101604045758057799222018608212027713633548104451644448887730488821948857381764882392491140062888473081584346344786880659261275632509406250719499151749705059840482230350504120942075221075102494242604235224652726264314826175738227036355714949658770668526455238571882489057810510294952843594580639847607761338783144998853869030072828301589432574021258758363986323373387285734007522782177526988344631276871293387929929296838603378615310097959240986416021756449466093098568703456808010967975704181833605641427020630291644749250927926846375891811821614759324530587785436137872595684093596210732184253171702280042368239102131728417194570058202206362109516247329186774436042729002628741532973779513358359832402729572915299206547099095232529011956842565969612371233615359625316650584826939859292226972737375534037400067098550681346699624436566491994343919470300750438546963576043107492975861877973762890044736964045819053324530940606180554654545767547635868768771326508218797069182952618785265729137597244629766342462089828059256814098933390941366473779284850587878140624691526188418389556120140068962566342675981565137028951569805065043903027538226506808029686309564184122108522664579161461641991790659440685599352298792407840731721766810622292062412949248942338940311248010657138594314857514384248125568020407379246684919652129664774078586808297928014694366753182949102788596560008778283614062365744615258771078034314589034306478394037589527875726132757835491562243317819173400329295505606577771123213377292511697308538273056883960888287606550490962556281321526558848209595333253447464488081619418719788328930118664450281558610209798889776143823943314070927211445790797193991341470583787289583674152083751510069775493854748754277357201906354330767804048461630073794365572718337345133920071871003610272116228749111439526751458189506454092233183250728351686953625138501468556229380555308455892782800574337714875671115936627858034182383418044775804563374286007878958769685627023389416902367894368715435978497948720001023664461664494364881632635126395685971639803983768939287360160388590968560112136111165643113843389960699885072494517480711702705132428222286441997652752768566163506040171176434295338683672105854037591925081037200969942470021536115912549023780131031368788370285637758361960652299105981537140315950425736563306194198049366905153972157170208887794943470730256157261980826319173086286609585637406102399794391866852485494918030538135950327201865337694859664457651330975813680735316005377456116280671543702526258766038996893566599130533506341583009796557950776736204584723979786457083406441482221850053264380796741857111565792808615777585844713555422062965332715283341872400598581946692203408839829080225207659274288791940195551142536452598621383207707162837105345255325714619538367771510934550121254841112362678938315668316679996993146369675608764022221787226957809566882503572826894780044276492183987190600294819201936157442029431584487764452680863671478984026701184454940522984740109970309317191335196013977377213525856712341485335596819974668217997135286393277967109359097770522069856850786355647543820325395345150657161643777697021204947037969914644405248988212776058989625524465048881659898445593293452250173446714655034399765504728593376693527197673362409667285028223089210504249431987224310809264506765763226226769299864173289005134634088181850172522856769405471443417843843872062219910235056615753964982281383455007330055740677301424492554296256377575530824365652084389987357571335952358234968507292476865497496401918602853086950695523925621366693437448566322146956971301029502493329219057543620861967765495636733276839832278944977669547500983747687892962908824470482390882602068652943669551642601447270043154647117268550844317202742076900413234394170773636422142294050348783962207608447864409617439171728278163868198617137068642968568035136864123253066329094111750722754106042219220672619820931772259515289815891236056607720444719252719690235233368021280989182759611228469113121407036860410872560914409941802194058232370138134711365488718312090363527527901359639705974891661833494595836661335696973282293618408731925491721130271290530511623052533034095042700783665780026663435964131458275254987697011205539880833352127741576218990293208192851207949062383705938975663578423500649382347922148660295272813923825226086626932164660549101789040055516213054128825896623291565761303077213960259020405481571714742117631325543707831259114743334337916651135790267128121610254758455917397871967580230675214923964648532843225655219651524507448549895948663923555443008912701275587854936208975566096820149416840539370529278424712692101337503774139641317436721313213355532297469802630783206532446499009384549555753504361409765465677427167110802151314708212189169532143377319204829635278429885547463345678808967718898186667822758842313101711952462907930427622119095198700131723271661973658964790492914412394173589239909866726875915419763922574027861812511142624326392474345227597292001828678249304219571350886110575802586652575986139873545851846020686750732023782974416029079040805500401712932036634833197103308248274783006439100955917282352139666202088474173360526245457187776999606706605347761038426844274248482265541947215931037080077955946449804104840739651747486811658946355477580170369098891508710513599439742664580914133829430857635480446762293279997187029486561697574943302347721270067080563108825285115898999522300739508115704545714766993519519049890505192403747923879945521924706915303496493642621303738673962228395226521283777804935124224164124572825914266028885120856906290605689742097227131629281321204894853475956440709082017419462143943553800921773148650821877715485276301429726190870031501457271572862928206363053746892480681944677994884983621224454020211257868742061215589034270741465188484862469867054076428892638535424261976864935028996307077209082047649884593698075684504978200888741123087790082393069723510990741299260313653889031429256027072943936674427531984340855579537896888516305523933636426558563014858027424811662883616064711000428729178058414983609931342218741315886523598351272732290661542061876751900960786175983924046225183771595789258519951213310647540358590902720569360043503573189083050968051851911945556507363626818383417765184628464560251423205176720056816799139412229842518610628260924361051018169123062579910014147185239731711843689869240666075548025726756670740302616788554480537635113340228202346724695940607361252294790125398554241858558925805552496440061858723147034514194064039464586340881352075008813453293246739812288888410925234050102131148512967938623669583658412671777406385178776781761447618498236984825355043317704022390580558759394944243125155092119080441969151427927747812538878370589033592797695829369833938156375527221783558092813082165055973096598180449192672535432928053376289781300133099773438758332863298576698736091786452989709700407919700481673611499069752110391772070731649249663714600033080765633280532711064726179886014187734635010301810006072341619871607298734260579030009859921216505313643954478039652179355810519101062966076757874334559562436428442542077590478355991868695392822676782045599794153698086840964185871638622695134370349560554713073066697467706201943000073272574167379720944097905922390556984702952483957166502274880272824133711858135165580148174952975244611077416617798001759806648493423766187042836947134836979841545593937932382078543206712456376618028443782448431542521775555781183608175294810815023827073905935809408555046579163600773900786097873066411107925680540563556801705234353483997541274481806928526494913843686550462775757381129787165408271243071781360720194201106948986195632361240386312838780211720788591590314559860114801838306519497465388186377903135113004144061959316317761882531271654093506121736918175766981381095899458279035026839952171579822946410023895251183835149172794425176470285655761420128077314757557787150362419695798498551319431212593720305087971893942430051733034643577901780692392825769662602291587121626648294621088970480627575336859285572650106097871885142030267073302874230047212983184536189337527079944289312614090238089633468486532136643684758486065587109171697670975996574400849976235407643053631953047220519434140902510263261801372522723399840250829411284859687906902156474493329100641023167713554091818299569219953242656336573786279862871787717004293645850646353078932713482163902380037530589555444943302345801459535636662214462618497963213896556291968290007429680398114168609581943508630379741868073219679584698633881661928784357959584557415617190779212270239439313797940206662025665463276180382896644360808703736850849579100276257250047114350803528653219945970008369887728703341430697640202423670426888724628058384857129022094451806014608372449600686807703887257894288709402521150151567406581735677253294569978515590349828033534818639646667201379076503229358292962681752353056071175797936084920695718060925579333721267358076922025222197699118917820237876495967961066778679848060215290869366637310231689490762006425386959433656604380646439704974980397125369737286141224512228811395578416089081465830830111666065860123726692379788176784097821999507167041194757314034879853663174716424600921624299809119753114734261404504960821820689052879424993898594346784481804138070152959281889275236398292753105787392686297712567762523107279351034172077969955913628795419228422687811440747990218544375780198255937070875155023381245987217784347166974604271088814849488472782431324673570438767950721126067644402700572504370792092108603254463219560271240224552422744973192412214519535500069413368141259698940011479734870775982711731195867574462904959850661743867330111695302514121682165013791998136826549650246527576719485121095655536398226016518410849296840344229538938548266484285563597180910770769287340732478595228728033382253555500281095841514840090926672263712803503648800718910651130178658473122389495302255261896340842057103008976095100224926045550619232924714881662552582482261719886294253592380861145668144759953912716010327066505348161654775107444417664302581709010086009611936858130203316798578414894012443704335631755582262047587248921837015340894715943759930087418618523376970959670488482922846765588089320469948024966568302203402970043924694665573257039520365588641139202470827279686251251950739859960444331139633153552667469491104439071361189042214397705971135165609365518822864798026172047021160727260378749280410337960081043272922010420256329106866769111372406273467807364541654875992349686667757138981316781528869530522677032393865972658357637926157622017984355711916839563175546250371404635419930042678809297024290829483163381702506653989544333771837857743894557089161216144383532426449568020349121090250048801216389713709717989152017741743253458075191883010066037957357751362189973005411509952905522969631397067303215357418190888430390727997994297025068833617944831686896359532360310443415172628513348537557022079542487027053170114083944170417412990786296805189854186260474518769504876231789865203589465364319045701839942107338581827403016455970281159888980881188247446441285790166462799760159663371987012056818476283224315030685815581778192492656461099865365421059764982756134900831168436398776500691397792769037888828491386163284621579549098036316038389452593286531467065486395785461338739730400959151704812280785229223901119722398683768488542375819059567773143042496149929915520191567833525505146776112404346238549378870541869628859625425281498508784306320031781364225591089734866737823477826704498778037970643503921419605026835691708521146533592727242247969029672660209189175491056334994134798553215029450063158699887628592807245230434761318625904779739138215420680357378768025710182937640075441459888848919970803193054784852810818471448757573149088221343590100206005643956205114947313530935866309124033893763180906776671581012079816083795499680241130786190752804726570381633394644332064123283507547802589384663883098454953526094948342839744411243439195106009060447036397830547083465896111401190822324330979774366225600686625612679550934977233727121695911175710409157178595032025339173390529814475572581459777941971006832139436094669494841621077500916067335385392308026457052162785010992899611853073485314114207380450699755508021514330080650438032624884378281164407629290975666061429311654204686089402387805500516740469621195429659239615040819278052412456832733267695095753776435276097427506999374081111202911790683292534040191067593138155218554323380419668940067024793437827901895342729631313893252307121682093884918734433509170837740093688999050740897484387611212416334873124604946276192275468329643333989109887511205916953461874099323158893877997528757554294500733448342532579827387911396758967695079477738806731544655292503220329997327739633863971826049377451324178420540465068237129121445010466414131919287157423863516729763611877280962408444224294432504126323511107921118434832742632237201148756860084639090777148309247029879988488184807916946409717564898495433285909857970017069087031902638295432504104644934652642598522326442868525720140124409105848486659255240113124593813868344360416216467533548312947669430678020927524878706893172423016081550064586753007032862798320379348965795061856671017532559614510405895129376002666019391644423204914679117767632408207250554353807091018147370040075723089361992307932854617980681277883473117421696443223569083956015062656354769762668028389001051608701069274304101452494205993103342610861626669006801402037599265187631649388711166720793613675662335422058621326874395696689569654416258342339517195871103426093167519493470932774674875580662044425985803092080876890085116793105297057197268813629810095039668205379484376854943682738852846729946689056740140164297003640661128127900365700103936060926691262487312811187508314898095218567690224926833281925776272839817375835710216085634447364332144221757859140448085076027802717444662484640696501960275442597450306545614277072666786906329143805795078564959670450996145105546849515839573786124824596262520611348972592430871745445932260775620636905751597747685325827246333548851253032045669548823042269780275471847179348442718855493952943392334855052253576323198192301210595009938471454118435846727884283549274057249214831814673912801567494021958060663220808116360903407318352352915144239290268104225203308650528880382948044269973268820288744266618753251398567292864502463809571302722010582499966436790744936998988506682060960337325367580671887499903481747592641053904976982418564662543976706168973925699333605416403588303843098734547095324021868445231781670200310589843827354015732509584828020599941152381225149290146279143225670070346925230612161749572119889258049338047140816529216680211136760828102614398170891898480976130183717605138219210130011562283628455867333349664461621446678213937522970876914420733612995229075640852897778789944064977640109831958789855380098478143486300541389772910576262667735478568954941607582345124856255820514819371950953116104418499328732914159277258295866145431245764324599059049758659196736468648044368358246085206274295663113317586582373609295660304837758866190760095599351937649669251634651912708380833018989744977151355099775073000187183542388806795686221156030844243384736731560075852216924316977607074761770928591537782438631727297017827110594927200180523491152690041329842797073567398110124552228831105738520103737402795542919159259697230163249559217767002337922497850548655822889997254264188185920365294745457900399241319026126449927376171802758063852088944926374528687406638840203863840094570786797550001465905050656787853087442608982899110211012519534181198401652599914116447014119767889570471450855383683517294493804552838888574185860948722786624991006838889583968290936081692483497894323377815893997720006867598172940941632306542367499629896917261667624618182075902004974569867743244561683428540411890187494948669278274118955166435720078002977225249723752604962729441175106786793106946424319721454369519037523315487634141999400641766483401052015774038927918781328356200686908081568077328803270496100203449283915940675141898204124593950681871230828927479469662681012958012189471415576104865440619504581102756830354706831057913121600919819884085393416863512238947113026522737762120639460282615297660174223505276540162491900646076979080258424503043876048900456879072307391965654463656952275947857216062849562763763575645491171279171594304349206215658848220388268767077694121337082886574644149477985876150513351731838680039550228556330337397163404278117755537262906537994092129246879725933395541500635386857289063853511955064997883290939832353504876527239461836962412933317767453585580374074553697170932387682913347523876170443267703271399883703541973196447887534220404842101807875378757458922574030467490388709135142976704908199059375484277150704548753510142803513389805032105008646536321792074496381631649164418404713687075429202495876211816753222229516124799407755562600852890763253937842920968127438766665857418922043472590391735859113538337301718793665936485844514134718987222214798648661657929636428470111383831128361832587706759174488313177796583220412500093061478418878193572460153343326288827522615255876232362554896388109546036729201894309666117743240829246455970034316625919600549897802704600114019096570695148179145924012164768203134988529168550159394993040276810237242038636859947612776808419164404017600149513444359264520820797657099249433082696493136885728215469059896417659018987778635192799257257852363762304495757562225491642529014484113627794761321474786328450929461162269334418253858643825916883088731559494477102438019992212714269782733825912405589100888410113424107626467219061841922237703911654456143459763109745539863860684441642297898683468478666088130390170999316172036780740554616406031946480909535495035722316252496372160555547697188611591198067908927000448142380264412002778148896866960672314468137503698360231325593399565354831453466301123460456966724275776473107416590567866558551372776851047848427365429404754811546619983249652533996246652563130531215957881607760144226723740985328263452091280764682303839993859855146739815106174004178094107549786410311963331326921701147837050311753070330863546399315801082890013298067657434134405352019703772298680453616561806214674458250030888276025587214039788287000940396182034549529660996657408350838324477160380775868114860974645023095933362881138578329408885084039280639573983849078655876107669922132153093384193074296435427339308439693018228586988204954280459529425413647798105181632623970320780369537867781662797508732252947409177332012643381989297339067672617219695075074347543051355498454471384077848032029187740583814941714819007064845566620737671787517084793704120349179735909139959366434617821912050289289439423491653409714112550519711138533035598957347331141710232175279177381163331954108119325810010551399863550279440321900059299286908064734497614174874073890873298205570199564038592952460204862646729593048639871795173904030277838844367704616673032762185842057719685744460582214653782333278428115534189841546194890694449055395569589204718375634678130963415464883358104398679593993207593694185327325357040260882767498844227704257534036721629127864752205963308944075427621960225404527868633124361482223291510157013280420376897208322387864688525115961131979185864794130347654453668671771035690184403156486617174707286745467253910392634347584776217073855245815488846341984981554198330591385840973413106469754950163078983683820029794982555722674603786785396218534845491276204361309032564892796574636530104075333265289513912871897148249568043033975124062908186462327537288672892167094993715739007809603538770097335759549507140493165820870994871074533936812393202327752727561455520996135796899956735040838811606916713722456446173149989214335964392677867925125500710967788391752580881265889147611764884353303425226941534644648833219018164026618253883406302390980214502246200193689336003244822758135928911108106192207954804331958263183915014911317105864554892919833260836848693084715107635779487094551265320314481437711993366947523295016819856090607468323501417289577421595708462979244124662450993637084239638809271679954778118809496796195537623552074786533783808437716826095416406367559611001372851856289142106035691757733866318480774402167750610437692069251354259025838219394645944831968802892637056016978788841830903941778328055223320978945839622755337993207149449256039070025455854018577252195453072688806457444024582623913184416151231331115174955984283359173294544002077912262064067070660531441612404743768935544568777180181882114558960742253532922421971728092857776720196636086632944169179038089450358531560457138744899445631391734388259555776736023221704016902791115250995621191633460044689283859824678855863862146372325680237358027725179761507078159613998192688821879987161910877434678390197544461258225662446031210329720435350478763657568018298372820265548847453847451434885959143179231036196589174544483594887255355691223817501951575279141678927220642518849940002489874254958024582417368186197981984720975509494587756430004519824368916554076455480415397340491307310578214306307193327042213285635486783812509858835867308726730846601725312441685438970361511593733030119517154344669711485870906720431858414616366115511680591194342071287727450232976579986524520704956019510715992641529992880213878686539842509563954134617238019716460629577032490515613579355336272203533914482368058468617286122976985539775855332090926425040294085151930679742902818841006493835308244618094134206241081740526891593372315265610902628218531785954754433175548391998330055401875880109065720735535693334309748480687790793625770265746930566288087233550694027928618401097390708995084009064921659180450508131987306279543591990145861533071496036294610944192251352306208020080828226172922228465694563102728289213176037907168105009469211607539757773771619423051825417815497414623872609516317523520644089651004162706298225312686318784716493987232532511471191256770406337889766706182960781582785440425414607768935758840618347265845489041391634698221341153468161841682554154485785488056754299618201478313666724377786647865204693894979390163801089191631938676664213549185421535859916462137173544628775664094434578993343583767029867506338120754146818054662785938536823684188054094853197177961473967336434505944457963325252020985401464508378262890388637288390432329195892507942516053246882468684491484119986524542131437583804009795431796167146098145169098401440593774625789600857598013531810196524069040466743983675185924606656236298150510763712183893296365428619563138687661716028754612877001340708204314874308440137698422020359090183876808273321842065771284520707737231571157858978052182651914205562619641831183385540251810379958395576121335017936188683546390031735173426969463678382295928930208084744911942222429455147042647719406977296636715402071359631283490344982600726891297058539464885318153283822867531699045272660930067948509661620460409743889479434588312635533202574859997575608697622802521827124702456007823978646443776018900409230682114654244492984156852421198382343914619005020198871750949099105260256026157092266401064932480155125640876516902142449976717230478317279230865870383940203778092919936015982638787220395374895597566436678450209687448039392724592297981451896869512226469475333386840313341356182318947685925268079166245848987672365937465268204989782541099207170958292462460773525311468395017731284982869455514929067782412218550770898495247692646780625633964750376477880470972512397755238972545430104484571372315531089400736546533415173340037181610507190717880110444949511083625088508686313333285002515477666077738230355428587381267549194868498003726253216253949815664729923671708146411445118002836661098499257463470689820287733912875484440065880287127025005820358456305050299594003820664274490617358140625295538718698051260775747707133967686125407246977541910998184199359442655478585662968760646456340289408352468512694084955562598952916064508996908736953598878110123910396272663913236218181505346543699607242405349058315363107614825918166141195182795086697523888481962617351767860785168632002958028821794348266286546222574859614271292966986528332904049768254576563786999738253116548248792587716692483231420896891248231123385824850460224530560195107273129770120627446274031486428794210072149834316011264610612272198974966432586531730627448669242406279108930555090433098843107332492921777740689353224044604062606369213446383773976013946125156168798458486375487654142904158693676205719918951282844600393757710172849515699110003533616318520047436760051670788472685626709521527889821564814907222596686633383562518336059304360999414930438262813297436979641872671570989221520609143746632860790516180430418984268684950643200889860253592944592860043746572700830409165351591887964893150925497349835528061226229741861220422089588055181996157527418702708694695669415164694615800025635478106495705592339052532513493928076246923170977279306109201110719206697044281157465892787299271388441104121708042115855274960342586325397236660360528353597756963278884085892022005840306590965865749045065402553771619708651199633008728591983171330662031564944168701224869847150022911166837153765310311871483851590830066777455153384078633780505122019580982163366682275032363578906834734704501445733966089570628499451361617356632990458097913564268462293135963439169443407998003573685811355442906633659844595441104673177813656926615287256782376010299844969433230461223305862899091919172349479042913572400955015433494836433857599043507924363660069965851495513177007130737317552374395724114600725243635346521220820262129590602956671318756705478507577071983747418066803632061741753381842783684478584878754572424832544400341204242309378691644414823523551268063410631510897186056112034670766151359779242875302146512978570229709166465225689621453737389888911140055640578320028846831237636522694171906611495034072746646202337846066826344431780743004234239627000506805249127008505943765661646823522035168471157536684904867263282985729854705003715518579734334230066838918127822858946528693143839064838874912314424764355736676255086219291861496102279619208957478733034609035019582565285196244679474599441171062389826264900804559743334697116987224663492681619631275932490411111797872394833915841195665480634603440685288249253130822121960398980226780620413416897492209116879020845259106826376582562125371994971412002291283350606363091051146642822810805110836903698558435747092917989933419881679762832630064507215336685595789807702045337420134981236085994367853057468551157097250334728715228729506618450887181186777242439436661196751072647656074129275220378026603253713650949035485602987103448270877105025929493628672064126033190037657937073813767250743908433412756466431501172796573402293065175574262919860713817973012204054547776734269822575034578648416745846321790909611723255622126041892947897083733097005851583652566602828905091511773169271933940877559064241776623109163514378647356497331222492522486774450012711888412888663394047666068488722992407489591242427193130430275822040560742237268871550948937335749527735639141260607756185408736977573237484688050678767184396745033425830145209032439054212064716187368972459707323824264858531038137063764248637028295642031970420931844669545097597360396752547199463872849730152611324906512410876500418251827357464570794309363445683032081100284432596287233522160221597592991346418954202073267068588142108939389535967959457367058776087840926720197210263853531612646169601032106840754704871517667728042769300118561139806724112019538303985143250346224315012116207752257394495100734463793794858651823531199404891266959174405446807280778621340055027743178992423877104936271032219626207865753695949399195250137437765644223398800784726511565918407787093205675683572672850383097880612184954412810844253402076746303246963904380494831380178872004182414750492004689388873235560481403986394502948818262406733755494714753149159687871893772374041587488240901613606089627990160215318168514279859763312195238511074880795461779050697773793543624328788172512243012755081606963337638058955271571728629389529622769085259846116144389514248510217894101661656281053470854304191175414987602473318779779017152269351492623464719295401281504295803674152546939085059190139311998994132434608222896955731876204591101804812677850665252659200378195667867739209711947703381938692217272977969100737152421124899249466686271273310544116621116548245240196524123922540992071149489678830338008926488483286461439097005091899144034232478658797798150666248753641260896384505829152816141756175638140865747002128844959957432332224706205689987912164914831966607721237736618554574438010041999131258986083884009462750663265279866393938240357374054724825868108193962822035654503435734081111112987548921908457737325795332619896004179471945872131499016410307436419866462555129472599365976254177893328668266390966514939349259990369312109665169795677127631127541178320921487253030284825165662679779454495927956930100757182249461860168513989152214242596587673009759467824249907974808792859330760286389617347146945080866132534343879745649131117723167345760107798897798641426120565053986958073673074703079098398046049937548936334481222734568905583795967865399645775990042612130516703725953087812604621893181511412020993596515799201392808964922689425034513025358581732847547466904551885252153370065851294390908073536707777074810088042865782519452780693826361340377528755969876156011368213044539974349210630779144745182225592119417867830518579025870643622679765542974449413156125163719757551260994101981202720714381966018417537315666208491566626202825467647781901139620057529165379874760503512313281644345848112858152319797908476925288290150889205296623550960696573540779277417901848041915225832757940445572406103951879659150488583200471100232544281934477022129612740728156786245752749994255321970673971136333925388752935279841307230193364760734102312479630841696104464918857134019718498898973081645401341758835225380242340098563218889782094990887252876110525600485414010963914878525428236858812027641873923724859441269978651376794757010333802059491651037523039492775252651544313682370691887961923689118665854714795473490325973491675531130597429277694316105902933762071760676801531173670953035254397564868587912860421019303825876206333608289890023749760122644112330195957931488896646150407916725910345644351592543098977647383189063479602877195858557411360243037748053499789125364061999834890280988694434214798057088386860315221093639139750404560162645820622529881184347593608831624719800072052538992650031320244038559412801374526679359021467376452424276561007845126713246175080387558377316205671779805313067002027830787861002592144437615613126530973919394656640847878348059569513239477180866003390237267437266257060480339480030280437451983337799683573264442053417644410949257935560448509762031048731501758568600230823081161344680877525063767873399684223758671240655923423849647723150874994134711246512357055881929270896699857422731824298769307430026183669874087796738059867512294161553319275722827829247149335787441448864740171251660022755627046753362270471933860058186332074843489122311463419847076826107855487097797266779941931971371981136144768303450950001414762342082675531916266905768058131342257350211835268392046873850248088963870446302190467058346164239867682953915972266203155319338837942459445846239124945118008695718966606533552276718164224466441968547469172587994047050006124925456163988429986653363154816178301069040219789131304144901344097744365780096611037251986599157321142761456417667238278962030588081401565060565240853854810365655052075914954414025522127759407947622704547298244545996436885563330405701368794961772338153900164868147561589220516686821257193113453089385908423827820755712301754812674592208609155890031591629426847767874731499636678897783537157502596727071190008785844063383167571961864033792889870056364492893768168279763947351530971981021042655266621441332599074586262521419080073047532536179109101274710936280112596926280964202667669836901594188663459825708207780280418396533755365736041912949461722209989148207253601755406614122811781574461329841814006379518520288730998976969858012416440726954749748297761079543246534093934195677278782250089910511223815218026795439737416149045556207344359812322137933142602566405694261525552209296493840047667658305528084026295982394062914802232266285921633960627068997634362608975856809431332250167522655812304000639115979879593599134531067120366745836450329542040092845463001747376419122244831599899140560787676143232338655194192449871397962186280531305044096464229619462791288304562055259073632267345475395451797970727397396471061931404330669988350505385224268140775632060729243143763888151213558148918165350787123544178841026949547328182543403517466158667972150038458029701659133357907582497591443098940624982988760626893509583002523459482149848009927455992388852537172563469313212989587775159504174462008531074195091481626078234145317981021464462912411952595713139262886668870292905960123147562428793087537529444422119826622410241307605357877674633261703021779157167551176264881055196819047483352158341434163308299763103776925814172583136331919430720487967901000622979205912739933431600211021730204691623700584959513800344520651094401956425280214533703680549925609668509245601390027438180041097984279612214967193557182485912454397914589202459811144695545554131756975069717425036464376148081280971092183589294449273887897527269889689071100532581913738187699607049095711711934632624504325502444547625136428463254877097371068710126110794597992654627700029093610984847108265521112022590242558646990221556812059825687798011724943860313364153304394692836050081262224909502765725314287716453373436682462040070153229246316763420213467762607722992642281623730957021450416602002985172906411992620338537700224470083583812030310671871025867318297894012509127002568420582289634310087882353173783633967683556311368870252365188368721404198840996946994973776968212481561479643538861621341235148477835560522642763862953470906290751238422474439825228081823576900238643747073818131066060384909260023056348943807550937836721409595760704857820559804191120028941062506526436473637394893740374989346138927963666021084895942143198492704181478241417421888174978751106052354448220090659104496942575621330043967091872546927731023074429573638478070395499831366002166039593035492122511574017139244280247328928691615552416203584359365879354963326619327594358617299579668952170433144599931732477300598808220902546192930089754862555059869688746694521593381832409079919713586452693189049783575279113892504478718127218936028276565966833466146709517501749973894329978482626952520604578653929352752516763940622472553242287268305968648698355089764446704632384681638366615369855377213903046573603556144722449632682166142601610668808424326866355461760556610698952769534239581587894587163288707108392855652179733051332976743588403534525815989484230569561781637108780260760627975543891509932829173982516815170866157903853154918602277176461678240629545290538512821950828072890920007554192187631401430853081637220263283926016624107835086812904530450029739243968116057390840301540127170918949985598225963511066588466596240410545957612636897135887419375358005674287381553128251092444171628774794195020849890650112955701893002434830359692861070498383044417184304690786775293342801675945383143365227457902493169178551579974710832062481427823781116952444397128905530383721785274139887574373259662998979580405259562073535783350213628733408935103701386257841605826586835703764875730619528990373954279084026310543912363174421639493951541495443929347179910949152358718085419202161795175800190197574377602086536837913614134023908494796537950734209426390653856107283690203567069187291379672875147029593621660230100999978900917312673778749425393335491413551258978478201586362042915188960271964157349067167398254712515504511966500208361122563323665200139425769404543363362768402528446618757796757585816606354089011502024558777400281529471966636782784205106881230625983933602224198880154876317690025636623379719851563677110134753980495580648082273589453362564926497784880900218537149845603057707571578585888777612824358258562300068897187931957214952380916081032129462235253383588223636887779157066620066371603712189387361440404271823172733602289462190048778337789235292760574731260364586977212913596006569257650697171836021412120225933865798277031322625685439848714149770918001631382899211484643383654508775089227864140403782766169092088296347778520908934898015905771846369355434832444390599254945591653185338368306474032013681698923980725799605072864236623166755111837182845928495528327256446516344068277070725450646310208729843485881465291729425327396033062838770740629347425848456743577525378288715760434047866648972510979008496148075667013952461067370159594967749335746878803339442762390413532716795246634350770922350820077610458546981539047651305408237800959987871421917192275055572051777089058417229511269515642793439882974908274970361506734913448099648190466997551746223230369321235659927942933173443919477783903096072033450391125417399383184659105055621497970637279840507458187330175027292537053026488390848111055244927351161572555237377065495707737167631101262781675473474995686053937475095746150170290787773260142114951920293983105775936517863381456240934580829544401103347430254392737516079487322513564589961197853126109214619904463260733849956404752051350095184248528319792121741944167343672116205864325303211912071669126690786493750184129931982361684846075845037852365356538879757829976646431301346185906208521227542310495369555682130946714093321511482597718712289427682530338509673808252063884675585668801809124543866364382851949408075433846684668014504123249288967870728832881083053978528837634595369886498427908482207770319448846042089274227245739077640269621035831096342997799484538336989813579850325724712682626700314432781493097291947839569209751462863232530994032977964178647942803629708134308572837758175272432120394087783824876892975879608817425548600702977022809262647425002246741881587343911953080723748595876535681052258945778263682185903881537195175891114757829068615317808363805921221683866964956508550186954187718505627596724515844593740749570473189437834579800058504562758635009395481540648555597304463058582135272894554647066167026310137271592528263451332545494644198870519949524717581892504778804159575092852364187513548404041016113685505240677314963433813484963298109171071809502128845078163370373590551885715169374251091034258538697219683369410560220733859237346074476306998977425153682413593617352068886149366758985325670747272379796522757955716340504662474025481233317259971608991813304143022057429209064272784417602134588612359680230638858222047882874591137001160623783892845576023893543306706307748452416045823531962695825850145553598073681782185100266602551319207798050182078164279844995664741606227124785120795806426023160620504166878695436903735248303078523074913325733055733331999893456695250009869760000517253604808115419523815422685974579227978017109201804517050540980413795111714221505690743739375538246807656697535887430371624201782944419656957921171917711728691437316371190212848365058822543674854359523956616561651263443144094971323552718801818039291784466160603241253518825739480514632586549513895250628593883510191028303941142219588262880668900044772077633964315984227528458909230914137795574177956028404611334762362267398369245084698484663313050334492060794714472511445282991708408609869547038461337453565914461787331888109393131148227256465544079386167917537282802213314722493437368067972081846872932851868069809769495923232548866391691996815636888664045854915763862560296025700447237407256327028557134493407878847793934860038404791121227189986712121523422241477760501276432993166391315895532281579482695661627875536323920010333761074382131872183946131514799218552627705194480575713376328123951595040374902937081993651865918088041468073581324461013522041590932073835960997880351314172853374292572996242877530150571580914838258452211569763301886239641732299355911817983120908530899035680839459137798466321004988302921836141064566066683000308371212090736710149046854263924409913659777165973788927762545754608956948035718783359722363476194561234485667910790906432743140933735612225930350667538757482292063421764575034019966671057999407836065830375615411257968779943747779619335689096418151598910534724258112072725419821721929134943001225723416247916051138499057801434414665325228076415055040484064978430131559866792615805310809642728542702025940578559024849291341770141677602226480040719598615171472772417822084063568009776478123490283329941417326114750057372494656792870199454544186821050614821937913542389349052384005840265674044431417248629793075999942133043231233632266948601307939082132001536767618507288829978448163898124709973566362371234600076622316099599014216647467640429583988881416963857637118309730268775195696982260580687751352920985700742242405704870994154946429937131353201482622017477666802786226493120045851615900742823884347164330870195657890076429128335117563583963255014962954385060704615526810472348041636329091649394157474547171770675891760871030658066764276051454402606350469044648996009877371517863480430864251909695755740108859401698101011494602714113323652759171489669468295933294767647062765876186302016391940340169839626568599086271620915187424821515762402641514791449049669595095579205644164394447915619551161625422940043545765467646711347570412552082240700349047975789681309631637929709551273691512090267576874293648140728551928059548512764622303315308387569265583286284862848091807520312288198108771996794837422995038392712806275131603086338704945743238923243457001628933595823393860591343458409961529570369805302941410365932482135638496822703938392100062594972145064839755165403023411382432753473238372071953893098095622532984902511373382507249084400378692246124998001244486314353648207899832374469582251012830856677904413156054946384872479370177696077462715373980671042076264225782113123185023654514027467355569231991044814868371086937748137729707734244255364842217867141772605778327256505242773043043499885668195918433723948906180950789092701965732269223995924201023940675502657727271338972584645002707687979295506810476133940467438712594309231400862305398236732600066790512823027834912383771332481430024042662554043033717359973409322682172001771759741758852189590670549934643808667116029453222600657959793255669156624773771372875793338333542791693636794623415052482852805228342830420602421136210827668187316353887612126277457198196647276662282519711451831029726562317183713613748419258753333625524258535991124624337712764407494030640967209591705732648016031025787809685616129154672188864993565338552856910614984842462702735614165896544829188645639960108257423607455558133721393538580431236929966534271387170292808565514922055860539194568082515489680768702911042099140830819942317487113358322002788151027066862851260214621598815617007259683544880279207945314815493646928359353399470854969260541839685866624997369623781896782003884749352670121093110005652187570833775932810453864204962134316284408041393063035004479999450482562058040088223874658853201331585545225268487742078807191247190226465792917436166407826532406825167049998002351085366566701418388043540210223292249842286608167537220234310375176682902289544358138038303758024054446274340415879923140402709383312050048261377675054412347479027426037700113350634445485505108271291044594244902808102033306875326777434918151095252378451346189724852878195802151299051674491130326247852544150826341433256545459763041221587863971000860873166852847742562898683760162276572219293539480201094215059919271354293175850423656089569184255956110724311993366496321629622934780298405566792458197968326573875263877985703535382147948924168726606239140783000444067872256744098297596029907536157888006415293283608611649047356283901383460272190987713843446269495943991338082821127777812265525668573347587790884919497929701510950747455592354517080712911481420212786804638746171563179285754022714801785468473719249666168290329502679960520980936497969216158964227446203353651129818669198572101480105427699691525360266612135715177872448968087930051992805702131533271443153721024601112557263432595112791302039652901574746085847547885566777783787429786671231547516373325619478268867247324047580510667845516439650827778617432465617585448913477225922705909887235610894994049013571240958167725554001834338883253829600836624024599934434968662003842973210575430256499737705223811647058841127717889486780295424965160612463968197571536458995308618988395018982007465369518522628563874570782460162664078627568292149169917747028441454965484826560872617664735208293720287495595599031391991963842639710975066181083629365792166133490932424316225272296387148545762446015577759927585160031815992648411194228513132472213178622425861843598612474925023482961418665688248407072609396924447743441802903564421401897721816086266661018495211011034471024164677686192913479923350963403090704779473909194774911140530773993504956546602016281001421787989134185512876209649406023439947516793310688932085526881627538315328127905541816720287891069188385543552706702473701058955724734461132353997462962045409705721800265945405539650728398026650365183174214415088010129770811319224262718632470482477889185488250750841862272190998007500539037595614570822718887204436209494339906338544334478796056942154033892240832494396770705762993635389222286223349476281728794424255745508717297181450755695642378581468854454611064885181531013854838516897037200650303791410411251029668641384660138616152690644053948411359474386899894252156267187513713948257450690562568873114566003277944383799117642550360653951126027703930738344259762544896861697280047584147863742325140892591659861545092974387662440690210201588975572951667773666974565259117333262684007685246236598767343205259877037839199426553425833006895006866778376530478434478152059881697141959730460925606689374227975894157976525782244285810591975785338062094084812840434786387366827192680743278668151093303533252894633856594487761309314126163481520514560753481509467698156221998911192026747757606512526817832799167646884335869453925214629992143290439600913033655855174393277214778002412631771267072243262662490728429653686932908785338164042881488612947805531612793591160542207100898240373005363188504193696350478135469978886227318071466479506473139192180179669777367114705297519765092204973810533231038928019878763720669815793185615306269642199654752478708290169299193396332216960882844463292711717330660005081096612940891355208378134543199277162473192763117770974483154378868331525546038940611655965025757750468401534954029965949583356499359700719231562236598440031768945132173360818994881362260626702542740619208365162108716579921336508079865670562710477877196315930394702241226604328946787107617193658287878005282419845294519014171678214737595183075725757908371328583775354931772351269881161974819997852571147487473379919274937646255756689166961830313194206800522202175809455775618390797730095964401526614120652015284640636402237816193910033062052038119243130366610765463461586413869216981499084888657771339500739470569310487153875556871376903711886439808092130351619011160154134223067972434598579444647348805732407985847170592344500904220573535762765948227768887143268695518430498302653731222244393803927062305466664988664860673222233230975629007248240505304469227157711614352779696189575412172325072050369758790083637513807894059985652828891655537862691822862170647217680804347638266184978405331658999820470448441120786066749172544264020887443982699896788436817376598098616685460251403722213683414763293554770230626148387905490326070001681395875214428853611354095794042234744984653333602854609210156724501876919522504076767416473461840315125443572396879815978584929194943043262124806419766003201029148742229992737114034986269938357743083069499908543008892918085774903927636587795736152603661693043367656165294424398044201137841084172728606253100455329001928133201352446764889154283005254068958149303849350062781515604808423567169234494611769046663270630655548214355660906233280973547823228816900806275662469670019713685505845952529415825692589612806364827599407677322905568605166649781679137865088464695374992456833219706881323224208361387597288372684835836506367568241733096938719945545503747368419750593040523434859258224753357828848201664715299519303950576576563703935285507500928503453013014179676739484319039638857338227188053409258909552802451542391099826428297770917679574183317218644673932103129341476025468884744704488162041349557463464642508983302620310303571036789337222779711401202863747474702946854611430561930037946120057944169503177257205048373969720055740053337893157170612366393203421328881648819364045358679474461152812181400509933331300438520542543790348460283957532377469033800152067338853998598267400761564081568113233092269153808601161977596354776646960847093059971538858588692358007687130232559282842545040364720030752650024391745617184917375471839932710014514190231958643532992242351654767614674544507963249556547818389912021252551066820694082885249826257453329836666323277266263851376228798807673231033964447524865987093723533537275920076089286612406975661535146813625850420243207406413651503170328578792354558784721944529572140807531861574710445547770316659248582938936255072467767211665615029214992828864029949694009383606289165364093559412005038000882609770431392543992691598470154186288331826147737447794198805950742483579928387066935721160310963639536260397421529551214088091214352791503824113161492912126868325210988181308766663910274026659480420798936348113393275093830361457648735591710245423619850281745060175637595057982910916346174574352795690638709905278628784771525915535823058796268199325242630577020036344008995993335279043709598627662770591933045288117710637598043440763311072041826342162980592346971695083646012670888618992698290301823464921020064131940731394925150181795615375048873894184656091953411151185505865382873650638620245461675957065804354895107817142535907425840855619071091196366968472483411402967722986346060576528441766222182128995554212071924364877630272424534662750502242718523308822821098205124478005387583369710949996197036932419734293360233074536372654525875744852085543770882329438194926989365268958270745374557372353596031438782698244626220723644503092549027822471289881295568520516492701841038362416158621277076660073708214483408716075336187741288866026948472996445197611747030926478312178435125292714574066418330864814491200448768605727273124285913542521516188238368522643519938387840885719805602927258910824799564875178868940919847279450743059338520176538134939275107509278110284949712730430269003451393188163189660657354187063979900769822614828806795980996451714158905229766938091672559473260779413609086564030308459278949857823983055391510991430052441493343720936702511995391531098081223232076981940286324645442781274363124222243079602245229512782529465424476662804231263891008395521386989682531269779559424237239413519161469178527370052869528147670672434070587994977227595655681748978658823443200200566360682652747841835240931876766160296143795783345363212870887867285748219822760959479374615983079854313015279220642115529493717686191379657146623351330323248858792044628789792235514864173255304983565287757280195175919897697619431259187237663222482756728023130884280171423193607796842445882836329520210548770181554042576087789903800920976807296147114441680969126294948034765110089061015608138153226173646282697048286216930994871577608628425834438090637709607157643614849777434888727460889636199687521799735172942453532622695418392196597504666665464922210475941368723607798382359107186808612904018520186296472686737611480826488341087824699191109693230499974390830352807517286692404352405640118248768365029634798469530731954853100976429245552462598458479553409667790492113797634846039104558388963852540997140393034882116682458551003066711360586123589301504344921485950595367041884245505492670764412158647745287211801038101870020060785650515632035461948176805941829871498795243749348896579480702276996061495782808496934720629983774540875685975601770976303640261079412504502788940265559128093852219683004708311786836537211284303219790115376431999065942716752532670606042818331400984380112128634199312196673529222553607161072182580966225655984948548842093483509450027313365332328215257601106687996752276482393364839486170021089794452294204697404442512363215299393123761209310618758784894052370331922950584959768673248235932755012645663891173845018862918317053032483967124402912699871874063240832667674352462093848248833289590227571972504792040420895650837384849233468989478299741818704124281189457519205145668106559143638765695171100874114077951437389766660082434670662543702214094412762156146380980156531573544722549754911028005600191825257288931735998464447041698951809953250495506704382812604461681789835584205202438263277106529237486967658033075480912081863249732065583146748758124637869226117020234370185945911162144937575456174819220966710777457401922934134885454517710280928848690055599118165421387736305972393749826875086006464844240677421726586630053228928110518014749347712908163580467595446599034223987975659025009507242481125448578927868428620737200589115540641001543749653357632398312391053257960816466128317034690225671070439673952031946134056526940930659622542113737972691684898548329409811356532423751339496020259735838527916171078172486832741081670108437224072479391478350635652336082759518403419699890622193606413450885043487877667529116220366399194272685913146839696982615820695034656778214035829955996990974407924402384259630281814182450377916210268872756938052851571371597044132341522738859878144765289721705509694251377543264054401514273789920130819209134028718915584122294186653732400666894668776798113616537681680587519680344586299272638440672177891469758722698096340067271720264545311555965882156411916510862536682456772603323994531264170991456517546602937947996474778028838660523311794178364664019959926569845202525276868765572983771939290487893303315601675335764130708730692347168658479442619637606944383367483961632483781297248267863584253362867507580767075991589030474514073682184183023852158346426507910313385149540748263802863190695827379015242024866887452261916813786962975602653938585645088601993804918963803687652348396009712325673432426120155295197131948494018426738913539480684301389094638700384633731571669228794942033254904837888812003672151441716770033420541706006315441087826925865115588979532712381366602550631312987001338480264041023764896771995672613860199229649285637927523428229682728121609692420292902824141390876376178971175015897653118505897599008876106103301935407184110696072811700464745886084213226329827935296753233240926331436320230379906300753040324304527579575311374069940511614210408495486878655353626879014220978842861176747775739967763610619643212733515588153698004837078475718157378929662130371716342794731279587821822629257852365725642169876812030684395302982620047256706088966103959828871910182003252520824669090512076621967456235010782597710163789053323152742018641377948046194855807743396106054901558367824090388652327767477746992614981023190837183530241550083342103622508235728950967744959346471104598704895121241961457927081057348598916535567250499496376392939477302622451162882669507271437424709111303076226160909325084807817494291956173212403232330124060236558119559457489118013728569993309498128333901678301806444186721227161828601918607777486243180142588019140757474267307300242790684315818149590151459586202155353333782691107901349075841844357222606588326374771273824188319289233199708303707256228817086496840313691001878393477078112759155881190078678248984432049167656858608174018716515126272756379374633729867973440994551992872332059811046249693449460248115029943815940235046547096259310231204455388137984619430744813057173375497427902457286804984469104507320439769369696082568240402158233325232507951772729212797545733022185372612692801048724119162180509696833227278290280529152613701971521072439711572563350713924712448644030057874722581498884934030148329595385726716315452091981993319758952926082055746006542163674767077183792796936881073918535374925490757567367448629018294216585206156474013699828034092467464065492419771501144012279818127915801184719130125948598127818065725638856105574212236217209266343035878143454720604904103835217650330488024097167301453259805548963573524893958925048621598661222350904766053644121228111442662254538977383674411793608679517402293640283705596674835364649382505578076395564499017874118969662126823760961399112449131126021838995757043301357979900189685188593985633391214349833942156492945631102589894878356904939394500247654637872124784183461283396665999279983200505811452598254590796470147826409561682366223124520062240618198492018992818374695028446855038482650317670845474680450516492057054150149631799606859743571094198110971154323816129462252372735184632694643258501147942931877752481900594144564048194246734543534076690277632593546771944874084702660417075413635543215622897624631832966163319038329590147496684447048113413249046017202013396150751118531783431727971920680844452320523139993460387039945438220210516133834328689880594103810957674427509009774344204530924883291345149755743631930137133124688886523141295230077423989195051347584137041017357831723712110651268287200216351172059421898430420013863009769513672654537329452855033949920734212347021541345822122299076692694169466339087790218561567557709276065181105911542525793667353338761004138978397591378980283323930646592253405214545132765822144796860041583895887791817367636879802772397286505458301709341788089453148664189808121243289515693859367381099695983437042611293456125117359962425001726998556076427735387993167610021432273903776130616883451580982104676493542218509997828536716212445429368982381814992733374973243160598122707592442425361237396187579968325994982900829970248392796687229066920067030042637550313544345472805001138038860961947949207206882846407105078245861073653822689566983432330037623987570453454690927400250390223734400392569030486747110794360860360045026799280388250086687907312046535811274012517687146857159093155912299098773602241745495124122197128280094339865660195660710483578837392593521242626039120156490156906952755976554552814435267210333013008008198452964661492243672396661827811190059707097694506986625086102706305690707374514861465856687076858740501841964563227350880127122982235123561942871351233337490435924463275570817432105463294639003754092068875265778937263235959016308000858425248945398407574809951828180065003272833276252279938384947509554609420508987777833010524810387002040143953711443824572334062392382086789575414535307219019413723242849926118263233883147455247146078070028788962064756232427701738774930082006243673395670293559214381683912206728688090076944267811945670807661774111886873593151906055666085063696907486835687273189564269712014403456814599917566590893887693961746515958347084611164211623212369858021380868040149751512942801601337135292540864449179897442716982059609530257926629928969434943529533441703214914599374648541401073112659215311002587948783950587188698786987192834672388901689365085009082707834407684290611605768693431900796210890932521369300696694605275880122818223641532971646373759580569081877079171954953815082015478041656370829461342647245613797126304725644685305423421447643888874474125238618062244248331167135120679427020540340087700836048453862369933567096922725186320568359677247034268336588122016972471886526435016079626018140640651203783554568754725292816467546464742793823640899673548217034701995461180976592323173924593172490927686241210638848950054078431870696605907055760563401386428082082310510863551820617894041988041317238687041893584541029804336182780705814439047626039578474286021144952383120403541470723092889024703089052653910593871422942847010595002592810559081067468795120065297381142257219104037451997109212090998973193971958827861255915246503784393001580694553827520319284468833241075629914763361846266838999322266905388103416052792319344922576975967752703809272370200400726022683777870893658866460620904323970303808086899350793701097621722793615783813695589919652718794143505937375755143666546635096979420858475888999929861344940606001416223132803358225149698159169958092967609252836312176198407916040341790350160269224664993717353597676713178782768825916458531180054978438896364166803169776999156938900555526858122411053931538084995934498386167061175480070636747851228116432702886611169856447528530363060214529666257159960028004253498727811557244933176074577241872522582410094152248900666418055604911459361723592372328951145585531937241196604536106389839383510974364587052268595108154754483910763053864374230731795654669397916339422491048030226998849701613498608754234294171343147574129100307326010425748104129638250299697194776091565369112144055724662961823168176434953308797594051358566818491642060933914893263079559270934118383592869940817341748218095245163472189540391354072659612400091497741919509248549654658812391960137988832326339560294280837565360367895115306411652555744773633267121904159077159742298526148083260553923060707767649537855530993103677884346435513994646786945207141564934672434207625868123770643931227097351820278072310358842349000777357770287337570631223176647480546452472206192872317776976517520891978323270520405343116724508620276579196028626365194336359536598097635761915262163205458435408242328682465661061569604400781868056987360529350749818313598462671818402934778326929456249954544788059500581209431194510540493253896807688541125237241785495013388651191439166599924266354800270239192524764471096961189678748475455662727845486799802163331702698766028982602796983278659493593501791296853702695239993559790455182609489683346993207738528386500564028269741678571464760380702486114225290510814746912802621545535987585364573206720542987121539755637651489390738968734895536546306460060678676867952526270839494000511647765327251574219658312083063791968695592427385997936763558391481841147700532589205760732142011013108481072441146963771996113559432982294236867040924629035855723695670318920175846669478577591038357529092996787676998493740959893795767863202932830588019635679414371294251142298813587607404974754945224814503128459618049576241154847738365162345542187462622385432799102183792546067286268235684641426444948500143225545992742579028672201034328212751078975267095495458906439336871232066342850488641457045081625386039162537416258872836918587352224784551698937640968676446336418039375140095899855878336550244157693029135414707389622286192486059859482535563550869714348392579903005391073650901338489390359351577060950697572876814654241549290073718921141180702414728659923067476427931286485281730101778875910939434621437438934321316608014482527812173162831649422734610313148013149812700562511163076614723903784710215099896265270462457512091872673508142560559305057042217504104645523149689059014333156684625416276636578779947847883453302291265291034102864379729787467020462184463065731730365319652266265011299185265443024744342003323024767701805099433071649556324786443291114691523423181879385563073713034030761687675034410166218892733075478756486290018676875937613184050841341143653179284052303403678161375065103289593282270721487961760256901809786444508207303944985302502384304585785779812196826522929752528765023229638161100357886896196362951980252651743784824940314307599497275055087294176022163766999085490996573926406539742729678588925599555487618365589843348968705860585720453800094080958592453775439757625027379711411368425835717512239777151545925322289801713557360890434633096371699778738446535837605225627596536601858468598647017836088031166243439001401359218137020297477275105622845807732262057514220309472817311690626578241790139855626779415957056444564736390377219856053136034027514920667236734684187981593609493934582017974137637474120453388908939172689848731033465346118307007331605571273369412735426692452513734649532269554734558901630013777973660864234392494484357282330815666563374495910380321505790923444038063219449491661170069901797518083853005139083262627822886139167598846740191954284491567846121585113657355924812425368704625198756941197994548999655212796346648732837118310636351275276497185335566399273795222442816347546055242704984358124631744933531321094935787453882849972688863250280865299218780632969637935204462575000139914995247246166240001409616242840769238094497915030394866826483960501686624406358353600446429322324524239475038252099260255114700051201462223003155483950686124171997874891199113504817033676577589253769770551186662532204048242955509851603444651947304431759978239659114168411230898240043353545635837519486852904151156147119392523120250135288991546214662965887368247005335828316119864088190378411361773128088583526925118314441534613391913933634642133118889759746761689951274454673290061026552839124248286433737617364401819492858406271213320499204638886686834792105183506912691240760455137449793749406280711293149045518639458897609233799237264759116847608709206195461250943806181008556117705637041871976798592244912690932269721752231933215821036891065346674848207880756460647354510669067266298175221118177709332125098999851922840695129469904058064308911009976276547086842304305419295810629939376341364539138679622712016696766287080397405741955102549880587820353748662200002536434457926527622826047116180759787633759356197583706188385547311894942061019711440364299831781790451767916330685084677391905740572128412406248369286304662330075553646996070395185302541355799070109943852261741610436684236736996314276623946181145229945114142508430928872378833464904453131063089666075017610148771057393999279196218911728076528629056222248038740786041976574768749574885735634637749765268699641427800567793588722507410849393709929188073522793294325175605215707831975973826659640611766476831427926031673155929700170065418866666267710240476371770342221889830556811241301148033892812376841821041985211631347935009873817130027905257063117403392581202721176930825152494783087328109913474055278576926058876145690590487664981379195458951309840316195866198214487514407831476582071457727918739488453783992679101247070461829944452777560038404842352916596094401131025086696725915582276513657746883414055197301642545750019535850123996816319891204138377230758984175812326841412696178975790138677690465894646468016563870851058844615108219848441436214030580393460074242903643270695287389882376504384813474158370681089693497059525950556033424491379785616930362670577396450590167358945401392785286708039739674963497695349649629154183902381069271012790054495253115699410717548893841871086741992597160984504350047068775940888555723755568611929393319657048430770891386436993005720867999306752223471911457486885457175739689693088918417720828895638097932543512698777894231345342733765403605461298319447222891239274928837701464524339648948973852885212756937576025528414767729826578145084457187877173471544564621324334705093972143260715838618181359318227265633528365351259072150290628759079411533387806461346688698164760932308143000442335723808976630692979505666752327776954867534646865493881988277261139283489959710027845758257018917048818892861320533992924173788521141060224131335371023918349354193480868605790030108552744823247738132456488524861054054137344679994424426247393369116525843162370541569468718725111361847719447819488488744382117375060681894681697409590523785229402714135528917554399670261365795018195212620095530094697648879191629479113481325147514321041623275226460943458016995610820194536437173899789122743906127667964670317259401103999471871429764732522314947744858310527270229694973172081976815547477961444839797366084514130323543349273146037105319604001542260690191035245020122370506652726073367997100379616151932663030658385784648483587108132668321368669962703125822736575101926380301668656033273345512470558871342226295650703397119092103669248363234831261204724769714199893776872242001463490245239901410330155295723525090208315123934886107400526127745213488306513712497329944381072787972081989824787503308387079819508584747434554029187819015895063698467721501822796977131869781260750826711081030958238684308280141621302940024776086356263807844722367660841442810891732934917762357149525167811534477254947596180109522068348123478863747409223937086413640890265845571416258219674561398669412989019648013489663311603453264043214411446303138017915893000292958418582109636401475291440340345414734000423633804098079030958624777135493554246239324927388749432283795033950952862609027694063474298523675637781422128770340219185537869078127955941619218041440713978824178224415980148219889287933760496928633318202262530834618853603129017593932915993526863717984706381244409114312797092549943043778941167953070988122690972288020057177122787955031860873312731193958003292833042583317068568215461598595236766427948080536548909156104462000327105810857720482271181325643454709717594845484250194941624655380396752004490109112060295348223712447926742474837600217247581775979311765137834131383449931498868888035695721314044421574062598081622411402987380954296937064693224741625707089306396319165970389928313049695132384256950956395528519715091731661498681993095612902193634272373136001387367528096576785176464915116662235102192146678185154140375496943667439429442375770473288060333335050982295055390498235109448218564241437317183034417694839064407029113933052225630349298540267424073642244721558907465605612632577134679707062396352256437584781468089418662322747645716003069431709566577307231737942929247156481838414778495836325541995310471493742041502880908371459929177069551833376809511381273226323658911275637655000612061526938639160502009648599809184979371120343513032132429462735209712424629975020293831874187773649914174178273577487875966256944986207505437662193259601114177435529538211713847969514677638858677911044712463396163308950213156859703053792404537707962183034240974175461453377474434082082334873326435622365924694521314197953341315752699686795552889068261219227872990759993639931167162521339097466655546211318687168195360294822268705000530563332014570013012534029924176424708710877149802068740083441773378692368066572226253342925238922671790990043365276518545445814230284956855155178753648987266889991303823676049308702756439996385965822163625827258153771456773754059860426846583199089319854199762806654000492936834891111901468965015932830046474575254950371744392428683638820182192652785825199725444902661255053023478434781741483124755703429832934524976433558757197813845380003044400745846667050969181835142809451802902004025271123518119717236186673176670514275377828221178624696050122040028758437926031716973220064938811726260214419957160159616862371156193678484659627343942652997305940442525727262272354398036705708715812139647240698252452620709516195749796407031629492780376494817456144979958635827664368870049969009132259137839329736452435835133291512486025946162853279245947451360044101350852711027698515817943215537216303220400635049144920098370343127424907091918111677352027689737429728701315638696734325137737842822887000811878565332394914143104596374598005031082403816370790707263022753369898059390479570558775092274373000492826847381286400491820664784755905601515688283844891834094855127112295989210652189859791721770923505998396591063308323938502828671467174519529740379547655625193349069782274618815815624390207501451949324514386162290935035114972527419624901734498545735855808465587333023956721745786711112974379505874922330233286287653149071497249820991793559541074063300486616110416802950317510917771583864645024191092911758475600059753965368174944247938008266102813472121069413946615092345014295616365275390588454005124406647695603467309371562295453196517175114853981894739633032612434477589653476448901479599282133390146876502427488867401276703228251912083549124162330880514426145821456208591157251408635112804739509987444385880194446419809437285439285802660742041939523199265642451107226568402986460841485520269438958039325030482935669863204132747594370838680455636574770925632267318617595625111036846689504322813625098910616100037086630709245952526538755965495277128532983082541072794544147998488586857365545679500576690789901583040843304521704206544307910115956966898371049457716481354164816160866581837918034856011567554718629419959388641480417588365666949441568631483914322346331777643816722937910155446651886005055160026818389437176203299718968022783767778555589126238255123315182688711064654477542927088107424057011942406398875954113211834565415368781083351564625217107742475448203475976677409790813493472604504890960577163134355555193634110419805178406465866789785224910894627319689067947553265902831118535387035468630816737868182627434460586375162682832133864308535584463786287040498552250007997919350892662026299797954169249250771676414027402569795335559488487449925896067510573147882996032186976379797100249168903313174870820707439284455937429770881166987492362038259039017058932910139981117204588796288767054589191740158064970800320455288733341995300045647119940829042767343793175885841129334108723542738422764346001699938168753623952782221192333032245467249331362345069022082567209328299148963144736259317137935183835365689595364151229311935066748909385363525032801142589227204188035041426427823057035089840735106059564522141822109634662769197345979679585681952167651254987491096827500774696931164476134285761002452104661728897600836574688942111338034158237565508983511976746879747996402508085656431739506233910257168053017351050147426063725108295733737084758984556097638743541536682537059842377634158240305337651235139162003546478908535683605497436806594674551626889396639512060981735038935020444838190121449158205107985761338768801204825389640337994937078165596283981913097872588548424694301351138381169496777281147759970690595970945789322048191379643891219153415210825615137727148904619639562517284908100746900519819985091478250689216494987558590227790450441774820074572999988706361535191116282803322869173136791240928998157075170529244717799120839780083341630770882023805084255944791450311413191399880260849901116104029415784700501257838367675213064449296465078988900392052996288969353011943460603943978765841709074528669032326849218190269794122653857454796483613991438586571186817437492061036259238496055734962255466682013825777851187163058131628731733648213473971889246561004442147570808624019924406328469742017889509646611019690887626062099557066659892931255318474107679679917658513982083305866323972139508440510033339497908548795342124114022857037326758578927262581751202179918704269467822012146950767290227188832504939892467022060756646534124523525715778086149114187828129552440738140117701476323330749038465057941808057350487173397157717871809596900339814889057752497005322229665073755228499470888132819201046614819531083565273841682460701676659363172879985104547002394106939801625226061479171886538075119654096497567312872288364351635904873261518549938272435979313006842356308266054448325829411661192802739220876073804247768720977531776637473751680234318465158469964419286652926838969225266676839457079711953241918407518411279214622983080175409480886984837606969874296602585948562784309163868234059951404803434165398290011975950058689385375236887781444394697918343887946386700623635975541381344863424620643974153978282809424471946237331487749064628744447174851618305034109140919289612774130362990232053248861103802236188956853115963475888869446280876139281507450157117558871512608851113106633228176195031384722069072651228279802185202296920637318894367619727744739765519524474314369088262585401880852602883901903064426235262842947668644664699740539489849964486542395969128306072803057173235513768509372654177042713712268455894292812723407418383152581196877989701432069658302479543119627632686412997343380680260285716420924951459930520129391788924521744792665045822470509093956114808353288212775137645826842831383114439358335416400211264520020575793239852101416480079085163421939939716900158361965102099427645379178284934138311938566974639469018189950105020208419755984178350354404809690836422404054891666545814496193703275741174239536656751393829453840069023018876216450036279103480955348212373482091688768418683952600589116699759534553440015632521018400363910372777908190235439558682817818774259047602407222196309808070289822793409603244684745533396795051690062350720827074870949977355762884957439538213108164069349036324304340631209784622559498341562130794792868998313896837959547181989908020398783839574482500777705024740698149276351985320916327022768025562563615036651565686602984303485341688742647725346877834580723872508975293981302164985870713675962155476127691249825519566215723897639406343086878650538857803510323681177528331240392666949323703343487993069270564227630998202704884471363141071218116709040459043338116405846367006148246586351088975151333019736850454231497230504312687369238339625189612892161199303750042703897955700324892239174342242295300140118802210661834154385393340512281402920696263625604069336150470983786668982009333055914632290417875997312232591463582092954093207092848053354766307044493345928257656040477985510628345300604496793752547082259617109461784405049018575889345823550556966133307224152502000049457664216643818752215497535617325297228605599638202758632913589256612165265923516983869270216028303787312627726358856455563484089935118545920570767902321516579532987059748576404576134046576699440731530544868111556997316441683292092753121942726490201140770474779808048825920163064907600459601421555397926038874247574676742130508165134173366895715243480843810540536706989334579380927308184325125165400471185434899460253015608653890473593639132734978412766283047342080065066945093158666095985964938676580438165730394918406110979165336666475214597797679836626001699532222165119761687731451935276495790706070677991527807966911916570804900277247488702705785766435309654904358501590521865237623693618234613169008924743078107518470848981428636120120825667486125505092154738443198684802245911199720959464765940225525190161790891610332849708223733015392962858857245669879259954607422075678903760708044970546520841074508588744965693280859400325750040718925248874105238724712041630388366242388515168277518355052773374909943172883291164830321397281425539235487853456224242901576974912046143584999410055759766068934971303748138640791815265737326806056367167636384041564274972709020161414587180311594409081182331807113067310550268741587132131970066195941208131293511013177080675120774657793449993403956473418467511761049028705902392033271675916235648067785426897987114406555490897012164290138197595675753208018301408122056755677599598057575113832345246704043587546323155190436335439522397660183917363950723347663640955581898278807201762479857093093799408546238214473091647141949096550029240235384467040034877550395133127363997123037398717092557890831815453455834225098305902814379356260482415975069260772016915108585637915943356433523136641708025173291221214735408350684151443787744671408847229574820472818425393686113007156665470908913523527252840519748922067499264357616634831131441517704679537284621967144324456481985270895322385853479762496404334464695817364456440781077718559229711098370296083399115304779058998774217686709306665098619239514902707546625264673430271650480199448205117185875081909984076831778128261569373863264090717429701682767722081011835638867635901699185340432542821038634663946242173308131093228555830476086920075243058278157938091723803383845192172872431501434553331509162347393993767993673142682950172166141773894102411986121834400716250276507449554839760923125774073448413768984362275983572789458076704250629669720676316122840128061934879890351991333284156224541377547049445563563730829755857199038746463712974070326254132087288484597588010767745735594108790089400948555348718226677654449838438584259814107231246963659815023729137342385231739326547228493194010380908588960278781221356314179770980195196528580388990150180159373525352434149738551359943751095169382873494761236128862558491930390222384178541388008298365725007334646735845334110531345009645203800180083119038567073074175433254017918052065664327657676054088276470502069584165837294538570255011421324651741024026489373897589563982966464857923119267771757952518262970249277955878474076543454454429580332879418167200754327617283111958265366669977847175976774902185662275173029606706561575023619321225092676178213064896909130565557650962233381636101891347643547165236504996913145792399240629650547457412193479521770702812422588985474350248968105392994942013641131183502468281391218113443283186076117904278118280774356973233441310295054393250782275485187070020908878967062390364021165924611662258905830411790792274688674831130867543914516820935335127512228064993538231473296522066910504719089474905323942194641868254532897812421122358558141577454424635671961678234561268654306575489523132816129885293358934784155157059428301595655662746694258113732465473547557556208912625595494226292834726422880774118649342019837291336764829445028049031508437668365290397267804439883983636381845000720277738882209693967209794071312454866852679159759670819917451472067247819880341977206076587010897221694664930156578530418255567581930088223709599392744347360253605190517938256337318541341278402263830091522044873920543151617573255253683561311788724387678108932433158565348253045294109411759325403895116076450993317891460823223456482135376580916780075045523914366509876363494053850794585254156867488341406499568002973458359245437949055389081803073104168129932136652961321802144771661888855443123600871366511175962564712602270050037022213588453417960987086271488790289477800731703987126071569653539336439207886119448103349971161210464176921419163098619778135883513117503144779396941047950359672095891782496083396394931884518277352810432755900719634272802811314039966617574701910286128410768533548811379589188922189597213916012021663056352691828232670580663398204596582601998748164070944854157930334247901373349086276638688102079272581200511907336075207786462124429826154227822276010981641348335050733013358191643199735523027215482774244957449638950802161312500820310245743065332143851483007137994922517002530264986207247738695416015284213123619638968934530791668210491407247989516821075638736981735809100624055961941872459125992904806925108515086781216956576887766819927349906207373202036877079124330339879453704389493378648879835359704019646842451782833915575113065806794372880852393635320071260072557029352903443300158083421263854094269652999703502688708178067443472871928121511607642886942161995818883184592292089732577226447376806845616666140323983756951298242144447589138352163630821272639876794594331684200377148894068847044101146575162344542875123392615321859075572892989599393409277797790367946880673849214912491596109610780874273402269713254993548098186546361373882285322323949343431907885435021788351530222191430934725117686368092540559645354833509262135017366305278058735930437814289753774937520399416717744071584176256747998669294409422590035047416304878633188738915192660796367563912777289451311327247858617567833034551548716018798352788339928058673268386147643405312438173798864060398851104179202873808823039210692111035135408526417009103120149175218622128446059908997412624298706524926300141635520274281353450522042169737227301430900295640585523604025088266327276747847736315313148603343591008747039781979249482142680055981039858069596266481517315671078745707230962397975786762605878701895015570023405420564096457853556382700886931114068412506781904752700605448788463078055585347554804215655094100465295911098811068449697719763358959507179692721978172392927694796297249383422700192563580599219470814502464825625914910353313532556187260904840378856798741018114333518277013276255750151141915400697200202917033090752716516083825855805763803325574585227724472121668609131353816257750250570536300558769547622643379062723754772795477223630798782990020639685901169591178855047580272365363999172904019102471370768326938401539119010636843866371433498169009123791336210600626824147631431578735771668782395408966210780211933332144543489254663581688331129102838799468026430586185740207549450361612862998943068358031601513534684503097052385419829477203800139787411672964364848771759169521672498763264717377750976549003472944200037979457255614667403686112963005022641018585695488626675168395357630905330658943871720864900102921688671418670738763538647510834239022928346165458949656906557089436279825266650344519238765532892078017892086084478978090061646358790270893216461752905763810001572310112570201680441573755387967019341869307774920702876835538738853128024090788260698729131961453870479941400800987121367982786098285669879972271211368294354863946643902942564557645159539569116036356776908263935742095939371284569011614696487001328839042082618110148742243023370431993251960192164486715263387667130165346062015336109639088405130644855142780118551943419526469774696874165339677562705161298918573673354999452120464902512822048921336921141283570039947118465782358332040795329897480573696716250619567043670553198793723176231892571206144226491391503411044831710612617851932381326115496913064587425592043498067555420784628983866771059681929511384570208178952096814716028941908798738447377358903476056563605645231402376093631156169436142737690527500427025467074753790212129955158130395109133841395852317483182674732094414571251097534292400965060333072921221366823709790690071176423509539034515577596232398388076133102413362852505733429096789939498356012277020775770478278523822098264655804965218178319046215609230865649638069015080995968728246813638046319502066056194829438490282765284270345400355602295875991546822471362141843750689287787686630867574499824572114507488184325804664008710396342735166136350345624161231044159433114918495122625476294364189106709310236284099886254543130202623732406292185669985114450084641571386952956952191570244100352474728181146608253028982022007990825605314575632896642400217296781288550020821757713148774638474401537513586715839536898316077996158779259495962927338454689753004953758416542172093384559241389066521124177673264289067436273499294708794884061983407511028597854391535794125947661830899210053690222812575854615955253755968262019834568484566794832500618714881906614470424315039033378766910898962173211382786654765537585095277818590508664205413782157583301306819950363887920475044973547087947087683817946403085267978290712118831214983945503826346504776767502585745445992523670177287667920366735021241281611459183876013617758671515045072592420212452264395220972480659591863181477344756274739146502936515318920988023776447400349195341286849692996628141375639013354673438033796039652984427956005092951453721124528850316733000068919348452039489111131355660733017980156359322695396281865042219068069639586373363535888758413020458873962137892386710084831632549332538215923771276323319743307516451422026988566823883185902905419657422987111436017210706088472324867328911501855607049112006776583179814079656145732319543312419347708012701620940078365169670310849939838463217778583985261610517094536798017495923745762723862955308779373804362847688450629090485713956701532906957791693111134279575372500594303861699045302632632989469653252033295904889614993786875237845119116995235370766791961089454469531688945225857028043063625432012045273880827252228805168327727330619913518770678829432502626443295641986509757297490173229568015694887156347300937573066915127379338245985675255024209148987840610204542723656985673866588667845500297443459364844442162573941372404177064576660847040136950493151129476858365212486516360221443438299516891274407390576025989493724598364022889097117518024884280239852842826201045419895211257389921085466204753729891364186603580335443172419434170749736886011339680245824927062116620789034277298716523314668653636516677925681425282891879602188765629060788728956699051538844333141112553241724100983831552515039362938800406479378769964799666325161678920973163414267934909039363816683232573128093221512288421653647294534834506560052142756907279841453420466414872976159233479488965389161767067559652065864025543297323281813868436923547488010786144237907368106356033456771254414920289149275776891673755979109773332040801235456813393309585989698410830712546955380475684801086818315927566834901900880012854847534579299519331064147454619301083143472275054647111830622214386919433734741890812224958760354563824180777438438432650391141105755220184444469638651492851180531824000149059312801423552320918144353581354002812149949921933621807337142215859163498583241553650306365586142489960115212144360429474197275055012998504291989640097345748358927779477566635909364724261980849513198554996014282586350794978620380695690191204305021892351221399930158834696706091139389228734954523309624558156263744765099529738418142715880039117761864620572528786645846050478470998819222912556666731192816636575732776076536139989809694119970003531164218156194245743403840322234477438048323233487855801847021858048248966606310331939826071423600077961767544104716743090893639410125486815634524016850295397726317197546578119962002725477499321541579301447329678221151830333105714492650355962398337503475886722308416160672553889895302498013526071465230603546156732336997527473815593914738329367052335949403219833679509498690072007428423600559367484031400414119361935719578931262081421708141146561647936680026081601575858885913683015146284479577064552766335457461500389625112138683160588373919445772258196457097657957405591746430696641253313074854171830914408362971088752805079749236599662453913731625593119948869645709811133916601050040155288703167473780368932499103029894429379426495035730528477663870246904037089352216172917302139155124917436208322666354205218314699143964469805489362116488210174830243843840109270965581454331398920755857905756984219301572890965656038527791239815064373057102893085685036715673334026465338902626782558701607533019582452908151243690955239898032043212343133822441888679066640361152820085357699716294930452180774712785247899954735255102489643000178223322887582451253309783244735435569422950782436504288778128877596552096608907278898082481456134713487587167863699311045528511112557428860600628012911423708630049920668335531627338184584797880360811010797779773567286868451206277419624082057953503734203815111203398148552806476122809659912748602142796981777043120972479449125789621312125312967179174921793809556908583904732763385315429417654084900532023239400786497626774302428059076537037420607635452154028522262460398919668267385416602579861155727331410959642384660606709079059790736791785547359466831113934331656542938972120087298748944485706499528881459887206099421083478276145786820192312650344322037292639256057956306138746407032526431012774807909186598939703524073798082951547984967842207637395955244483137828405348368579360707384099685555541271995994949181278363923698763043612654618080193081574349183337091474256478014221813411809922876814935116954391653801237153358170703430857069210010536125195382298894648225439398601307274845337973028412019833687371520400679892731770783712815364077888515740509966011774440882619796207794935015602799913560643044269805815461914427027521610723148705288079837841229207791111228373469008973982877545760919887007034218285014618849318015821083705735035501392317628685113216582642337718351861644892966649377822479315530590554592474796461372717111453259527570023496970705636091588690447722737821956935731691379931735165072415157528632043074982922978689422678728089308983260697180186261018223764085805302776489719146641329531513475823682946439865380477105983523595617989172724356293687058441457410395224338665657005470831435179631226562040092694277545791695367231105215099561114730919567862909940370059692581387801909496436311454645307624792683330599516396762143107734429305634503975402697577635285404404055078064151680438734235158621336974456560324752924007854348189005733046432990937370180998635582291537424147836301449208521775042647508190993955405351400012201259568216926443768179526596164746405410094299169663141622242645130702461050034117544304694399784371223073051816755313471031942012604599424441297684543511190134954590221644653117856542332894689321291910892195541740115577388644142167648171946376410060643501417957117865679894117569656773958661324417141013716072860563465248749572210131979257068455261332862096523709118250811559755255153339073587337050103435379202308006176230153908696513143605944756521961180893315988330141212396743196040559142260236674543290062657337630643939784493168218725576715227767380692233929770999647344779868087076462677906953094008013765055712528964381038978914438782215279599373815320923908859552542518595087960437637694894237598719552846376606341406748648973396335944573441462002178086260488350801969594948124621495088310324184178305114137304531706571203584119958114518597328405693963291356527351756660512802526074497284595390686195464183125097436113611263819645443270060583335972428930903055270214501714500139901629349401017882418198327714349862705422463042914746089192712333584590615238071556523197652048944179154836684076504913145148903827014863489385166533627941940094191375645360321783455491272593640113998262766648349069390214440006229549762659298558240645158764316449202840619767587134447126318699244481664653241518714582554424940398620681306980012415496224778323925863058024424368240482519217646594440232994338770022311507936236551518086613107363365128133530810850854870383098902610813361087843692337186867835284059163039247812027343192269580619232831470168023190857232457062193309210418400335888894199936684454730491255809574282679645141054943696495892771086177760082064550683865304066221146377428273658955344852553946983878537308277503996961290216569544984786463495167371322489729155592995041735621533959991405900033968979022243280381406658056694683744506607912928061126454714832445413107320230165942943482346865627483791244375111379252816274490641123461928074985513905026875201284587148777437028187283724632485164286622302862781710407223976247827891083672907689239935278406029084307503126746837699016126442651594677749561410160115767034866454359438614119756389924422697912306283725518264845579453614852162346361682804637027314645548978133046347876349629620344830949915237225418851187490329919826180912555984438822843007717297711495642133265992145845631711475321189844853144365700800540627253432166888878465794691096645448279505170277961866769251617326858878252040934203012476044624816531794786233183152769876724711383951178065119754053342295671595812709322680692053270172846624851706848735548533318464384066531115644746484309668370208619834867521620535822791420062101535329037059161292947758728974184561425366220324367991591198998430099061054256641329166787383319001878188669651185793648850448258627601217708394836342981963934590239363606885629584884861988788907574751357317514493927079815627318094731994306055409103202839112599236047117723920095884251969691352317461443242274267919098554960121366431769404439613270454946861740341700092858425477896530912393841469239411417356280112368923676802498387912172975213550493454997256024451893380501999789497555367560031128413688999786719856918765775929579355433693659321399756263250763422380290818115176789789143650837793573669148181528581232475023291565959403504780054554518313610021504513562688773970112649734261969801756985851132500390536999693963342838586816575362241755645592375607895537905258368194358672315081995290031936831387396855245290030544137285551010023024281681386969584783855614941590847007586084199547904990299037708184628918762633911256186840127943015870571249240042953510526083351498007317154598526193986389381611248084328212614429334732435451793613252590622268093292819153080171249619241548509038049144613981182093043789860755118970667590740891923940969040020849078835834979258641311029409666355485987016329499513511475549404753670201695620719946247178520623325308899372727914582052475831730961406925650999015461082702488703484650606634306581262151425534173100015753389661433252644324352990502887127282919827418427410078429987282300249225566569932947308393238163258995014714131214109872613406685703205828759384477495764193881468681341555503384998355589765909682344982065312215675421568866327520007973059022590625498628840693962158037285586531961876358112338726410090195228835283421199889991466503932292428045514743944079134973145737986015712376113721717696762303090887475882872273783602720025932301979568340562735911835874046157230074783113236589631660278569833901346240068273075337085213042186802778774902169181089779986091334577266926889178001391695986596163689722651153741501066356176276804108626923254001560075401949661220234007055094414709652436892762497270477858322311567621284299111064896519714360682043442916317597032439802323176766411527593213761194563494823356740543677648938641317581685177125209707037755118837490865557709003327610048945840339056561099066702650332889836927013328227324003437772030632307339690464620267271551283036024472839764871983436303079294606975949162924403642457972337214874723098427908234237144373461786574437941182465704427426653605716238695226649033684287460649686202024314275708244633146480632931419352083883383921713887295984058799567928923100865046239721682519201796891599257861266142831420364798351348550545423566925485735051797007330967931349039426251228677811002875384719816250870900368530389737502537143954044789899663187710001549621312297286304037262172480336259636343115225402679197315793737757284904428958755586798380981861275662208115754979249357889019437140671969786472911333582810403415014490192294860534369148442092341790055665579345437464810622357589200187176523189490903193538672820327312367838239527555762673149729323545653093798288565934600829748335729025794429535313298618841633008284667196972174567774821451156676368317452734208442638955652080741647936336494557166025549544649868195869170587171496576058300366963061310690973092499058611792792402051824214279712333408154146464368260980247287121551474894360172173092046690743282804830575449734758876589164912449416033088679495695740313447154420747934058003402722371118901278406047022523251849007662322493301409584914030861891368956901561895771098455388933813247254559682203400989650962754656975866783042034399792816062236703624238139329751785648583539801804007212736719035971240580208258866414772956569240052922841288756873833124783454503673708716402749842808762285034619149380320041812118454936685707680001227841426679330217934759162261367980463988947312060754374539712118328722290992951264067587633722394098804898166524786418119324612712098247105332864864978959859258727154273178799451336018240897804714464149759793036037594034239968117218160707042626314243229437524876849884078493979222775961255423193484519487334191957310057236548248887809252266542607577233898475527329162499220762589919814695580369367143436675710648015878235871642071856400574303077254002408936965844710661429997096491123529838657663856295771836478067684682067412340710217190216065156279220707549817232267465237219242854225837844110819280841032561046411450951526233949365203889012977026371674019611904577403377262909102027481750497280495223452108408759466632431901926297159521127775081061098832024781604299153048522636592960441331624765940911655629989498527266237039909405951036614296671237965961125615987939035993202734106635905625834342664081125705904903775494718101992021319926443917840309974080026739825250773958054512450290878479741386532400679879748402526701413726010885665222211472722749764809449533492937464041813026907676202647086440302337783506482351659644566821193804301036996753657835512034919017137293987733064153640582080281926425631898448834364140151057466996055360434510044128784377212074886602267830330030334965977757162491289732918344847470125602084644365287852104602488169086702658003714831864812759781848405722364885761317729525627468163502280564600847170175402153894721868108104221529035903047580995214585533840195630649338472564666024685825973437842653118509490793964690772194221082134448569500664476004406981036942234786281840750110227809191689731054853339983201018581230390478464867602648347851305950598097770375551038079911494853463101561409516087886767155161308801884386762236195323532499849934932996638709679433051943000247111687121689009732145763675357942592711009259018458716223935467529803745860730552634808655154636297047180172446660970782668113471881120849347791631021965909221228837088235872731579255802966075039654347183211982567567675947013788895071182116194131720079919165253051301716879414796753223909088730111648288444675323329194927088658460447462810592554074730732835596085792154510929300311785824292994975891941846461748750244914370124688371531457687678699033493616465936763603590603239021394373846167059448816239507479336531066401311632895404745380155741346308482159067372220248820690617074699595040510423602192923566214097182854874159733977393731246508388399916225423734643700317432951325778449328843684651591141491978831062906290412834676320162133563756571874237038015479606268885272215535788040089309460644736758528818219334143593632706706601499338179967250743691885664390597494824055455767101969599493964000109734448068318485268820424331931217007568381399728935831294925665634627122505150168227372993451068465806052901168220773015690369259762304794310912769762403845418184949578265225816593186031686080083448597210663791955316289393523465405628450360634392793429708853045280282441211120696945521712035932221548805303340505862989328253819369100981722660493843774061000441630815421118272147700978846778158640590244339025441917347182523298361833347488267301943682002374731891820097603471273523283745077666733800451218683423916320332146475746626269698671033399080315821790696677089846073164651674865926739793609696073400820407524906296422982323272698834361978309890934710436214392220151823363399947635662455944596996602888989444222996130476290676879576042919115272121605500714676959091719040488721689538709193219860201633107899147936486783934612697129213974929164493109090194554403006727270889703365470586217690886060033125463445138070663402929082196395211067384985559276312019514872898966746002708477596901873055560986540598666785424327148021965130184974297869234515094776669753409295130904449541112378655061466796555839500965273754523746432150434745073168924907353349396141479760151141145367404203400152330785090158281342828153377429994769250337126211692110838548152387181983824060671986312829950190862515136405034026556712445265584860561700746142107439060383693301735126218869925999996728208780931612710033974406334890885805000278992916592691576133428590387212330248965863479400650874097255384985699070376953510193034643032307520353501434970770561017391117349934379735737811615096385692731183217319657623027503109000292080079062678993566199485003056326321867703513853384764996829334031541212118787512094242235397511209125022974113158539683165888803848550944280450342513290134796093362357014071186042447198488394301422989756452449404048275036422814305263672407730628540271934345656710825544936274124083738509656546644710437304616881027816352392896979392678793859845548791866867716645809416567565610788864769781004593747488465053120752674027573924739604526609191235399881251725248671265536765533749521274439542304248443046447037176262073674818736865314989333600721242980006561651465104090669840158990482976872786534112625139610924672555697779132365919358223465610584037381261278318459151550742908681169793237247781040769167676972074288086042999527521000995384676647087999997517885508717503822984621774648010433913117506078922470573667574375724284577190561745689872626283136556146248835025018197913616209922348127652603240012845856196105786096444892497885729834560059684853408645297589411582219249470959157305656523076098798173537959170233173159732959665546558452007122826796432562800330520128232964851117854117074635638161087298707997595347418008218760160048310281882294654796013675045655193275667430099531161919349047680392932414566694476202481208878816793172814661588093576988711078433458521196041531025437072005236017407654130252675172916459948224096691516376799482378059612198667324023982599043608564822325220991178880921180185878130435878273669419747303811990009079080947791056994574064202257477314787716721726548035796277695795263844436726065502305709970131235982934465153574148345032776406741677886040985603281742297996012253787828252724649349042442115513653585031914885318997014185721513781533665062876700169202718986296278172201427704495800696080746644117227384135799381724795826952724029526425962954431251925809061459182818198901716655132815692827448063231441523654818520604368013423660208338186388811865174525865052193587312497808012957671750451311904143919254526691353917746184633788603847757372968792483780027528051577966601920798449062869866836115901448125391440098173102825431573728737246844347370351488851015731583204969793003094969778400255734624750828123162609304148573356165616222203692959844207343904569101445256638013994152761086465382966975617825595651821397443809282684823042658144006039978898550249288838634428480427055355128231781231715380922923270646259990806180137334706205509004586816595335860423224458580869096718546231172120759055495912721807694821146166914295672051921102577949152795780866473740850994594231298011112534990403721452466313458118582147690802262077605072679243402622136924913054588481246052727923276976235808758475991470576674621527271882811052333665725399435033755750323639866435845119017917788997287123273257172017415590628588246155479896030468765783838645825157081643426893273390384643911618701738941171883215163129953937416490965404314083359224059111909527649774117882034995981768403815775777451122493142607912356998792465138387252130556958250502302781685212736629955738766669931248967549295791876196060139004152127813847226414003984963893617361329586121247312194651144319776860729725455546093483330101664796402883816837392488723534506318774170229377623364201772685477214338613457671281858188533251222987922204949594261970355217847404373152787894433861311424489509616418700244332191677033271590825233254597956181782207421975169656948705778823536573093136217242853277481646140106852515043373753076861055491228964543806870659023538058331397789625709217779216729617464247610253230884681621272115812770967370558029463552790422827089035060119662918302849198088272142179203870824916622806300526183872526978607372397621477587390250357713133832178948051430378150122763835456735442579625673260522626468574825385132912959511114270624112975246479559592668319630704350450895431780375996657421439405405108748479438535275833736580401737422474108337330548945804879323852041961265174192168008878023504049983166571907068341708147446020127887310705479180615461570467242997543976163523032180813293609583284113757168597283894412652155183064902312143748680149205581140993332597194015642313845456341822997037863820386639743141088188370061423702960713105601716995366282998864555173434661008269238963523062104210816963869790194423068112863742353692639189118831533334176748628509469716823424107753365589200605892350801223867934423930235070967596544041499835996821445355140736641169405392605907652038887029737409478246033028900641068707592271638356596419697252562684144481129487477348280032219606285908852328637901128926971584942933014715684314615232073572482106558108011504999158879814542950511141258136364450421791283985020785519556418602365056575009674382212699077326332349073353959314098585957863478646249927770128305803317618222875683534944882284838287718781160317077307867607908550681364757122063901559388928684719150882918742296071327788995324546307480407382703191350393930489129499118002156127392775611216245042461227229931269328384151897324459148275779366445459305420273356093599037144404030186819472878197727528592881013389366230861101640440827438409052930980010844219004727661340825989943147581036770084659900785156191736483577225183155218569968036254661117388069967772891802024064923355980511089267168826683945966324827727962170490224129975760551151864816735148492505394618475974605314087790684524028998183683421004663607858210790324863304910296879472202829327053942932612514091739070669397395982407909622040840358187579842944737586750649050092708773407410320160952125500163545021009953769244253742224824112236868210970184506063696092755900010497620951903583926876373627616650717122220433123502513895124746048577229818887245563913406882137889915027637773362111277977629567279496251651301553365478039578625069949726102641559027163359038967617657459318015562234706519150920353992101474437174202342379767531967198505668417339090503927644248591012243476378993937916470679339745799108708558587884185210561104561496762768504796713026401243261729798584370875112983512180240345546741967327399057365686424561343360433613071832683546017694238865892799654318949385980826856666422265042751740710232186361079457934244767045260755249053953003430881593461986345401503687245115366571485367994542255495766040417035154863239160663164409155988151494350929358205031008945325990808784730630454220202277558713262902918578650678348990583260023474490538430308622304735501712998956275123448718363964165591954979822732314543284530614083793401170209071103929258384776369531161702538088875782684042018467438535894916571066460353912729453764139323410069816871464525934270112996513988345593588334026930225126235381867566348622056143719160644505652571666803534987150256398116388062314287649338563450467808459156391651168255765811216022796105157476703213652871789102100090077113052360467736705687084394851027481659246276001430552471160578699816799534358643505420584609936098720840207292468807662409275037620627836170870901847008649548420048046677626560774486251648610621881802079501845717056966314421926398990234761488668964639612078526473870354467905204968485039621418391158943162847928287795788980886370027913201796488423790418687098142241135362554561140495715304769199058754366123129565644397815362289429462938337070621897694275843666584759116070886476910034434563773518123634269444405139108119587280145769786151163211267153823211989843313820539930407175513661156655262328307389746738815288474441382354061170356454886261574533316865092829200770532071222160345582587851535224065145379909152685630813317953140687446417485079806648794643911454538838925793081358259975156137354524151510467731611670690165021255150952034610546021866100682440126082428392849871571753511492864755778854960158283746548054949956482816052925688461894635297668452587262809604380759957748065884977492258769073157973533515643666695945918203325988146584174570579380655253304366704931906101126020437481519433531118500761602264106243393839467316094663647605406573139417998181112341883604539121716063013900810142882438264791921599364701425750498059963614258715044044948692095251677885016209093733695431631218926220270503908394104987043427774366567994361912090424126627395415458630932745836168526628693666655286770600255314219671962663677956248798233550783712851044979929881090517404069937199939793931230001819315154421033012037425992162925319498337377822240507704855473024769560451137265004166255572379869323786530461681872746683506311657514356858317189594104630471074847330756506063804992720425974859451295267599621471148730245348280580115223784972636251151793641989490389768947819135882119017415675547756168270967311109164431298529109862948856101751400206565109768264073157277536848058790856009479786545516562997840008869791974222638395915943865607003077328887447557058883718822135344447481129487988068092125653055252040832187895774196912536183747314836678543652683729784295059979177875450731537295665411750358146846534287239340434882517181242164821931182323532136559391440007368094806775651150143119728491240601705091848498718962494511698680673872677943014087353732912541933236639057750438444256682765076820607601556616760328346939502704662728636538211250004104435402076867070800828500957526695411572269577952538058811097365356499908730481984507152490509842085959095037786197334974218886178579838112234900311385072509265536180211258692676419034090816101675654707061780581635598010111611413053060153502414449187103567832950127501011138111722999476053445150631369598157502505359277730096564837880181556484580413558126886952329082239887661077229903450414881601034330255486849991288878589197813581446470166473654072477880287487044023968694845083980948585178052081439840302430105180763511298002633298184493774388651092370707260113543035045923070421408762282529772144227104661710550770402612057449019115867659789552969075496949049681996746967670108125947470673527062460415291639251870483273020024373862108685291656914026578089007804175473192842076323539836563600153320303064386778047704621231289947094690198905209322436796164737188546749099207996025585434096785430843805856194438144387244068756558084960074442712000455135142620517639213235985632355469181486659007222261225563770351639831910435235332009873514559964898077897494469798222848307562593071350947747625699775442809062280170436644688869783072061064583160984110933655042988126230776385350655027029197985987599381328818550778851702153258659008153553699085205748717075618525419386631569331304085932956230045346335573584898065286898812810040690903703342942933696673282990197765935363633147961023276009789563921921221491913335386881007619689625197201413029529600681129516985062241465723916451908540782699344084708613498912148970408837535823878559068268099394006056276676648570155416493429098868895064465899575076815549804271117407063545081231782305133561663691258887020817263843334287609102921628153938745207033515145836643578323850128345499864429045845242842393286663584314956791576152355463994578156369020821773086505770329643620501619974167574951076356264589998257696431117748235813355832692666154535638046345368071331656995884771469164896992410079181717929112656051537840499454968549179062913113841313172637530840907765672488206692633842988803851480219098629185121699055532526861822386140407471299120506630665024981708475162741169232892014898290974223961940106504167155737589110394800875908866576909310964944397605991926331541957253765190675018709295196201839795038268667608140506862117696339510577408079314264311111009379034609319669647695410676269593793133946838408864120696061427144127124307750329672792249640065465711839333019102003739653582641744004098261703431747303306577806608059846702310486713187309087199359417104445597964637839345009387169588210498110425531537867209075637139652439902256107141133882116420336886082799163184278737866087215098588531578460489110345952812259196021454742246566934407615659375871552816949977724064883560366237305192124365509610730974523433830104525678864758489728186984443916384361164052384661743299619445292340849397837873997143022151660153757091514873568869308481528639105985630676360464664170018462567144507801944074841316668196240800134363189403607587707609789749085038693135174926067051913695605902826338521197971828014095955914623156028305512759432544603525042992829771964325829776595868718236402112306427984792547221310506650292352999326710163090380697194250924238504911590031946612110951905267807085628217576760197760854642633339692241558130430712648632723365716400109380667862172491734975849808565364978418723644079949238582700576207496424530841741864146205138067457409185103454489256795873473448423812763750947532814180350933623631287720198511802258648021751683622499527399196987226465340510568641624441094304709808620789010902506905970966693604630955497378168587728352834834966776617355972249486177661246719359574829587608949460610710339819641009102680680323753690864715656815445542191604120849263811023018973824994565976685642579695921624284093798318441254974876312522410726699427475659705304142192994618334059568192518509253422949035057148384929493870850244843187290817438537429581318603894412734821568230863151601738120212394008054638209696363130366840540902832144880323345079871120981253484819814458802646351691798985480819250892154664685965156933405744227878768638126386232990591609222955385681594212810904647540943761600762370909828364350861292086171421058974094666567079686121553307312028108447457315388387573592057772061068832977108480708785549831409777322842673262696550843307447610724714818724392799392847056466448297839989315447262034173269439922184462102165196251214387494932113699943880952017672891184349222847613681403791013736615295324568278811865065200470077052085657109238366102002291736502150996348840985694043658101781032244728396253783668478043254059876975371113944414362904241095579781532389598939899636218247334756343715408856708302567835919122381765897203117630299551974658819358673565076671821740406771113262638284099414563304828018943859520883620006943627115745147918719105563226197335292821815977319475568226360650096599327048479664909165995305321891248254140849032715105668257697061345959061234102773294802746626338302577096130009068858542330529857293334781030947794326353352556648414784118462555137829595470760967744254399398429825687138821247096291363316772138774541453173607066179730575793473993120627114761742341794903949788714309668851189273806629324693895207559652536681352998222533459202635569751597904617173589733068816048279920340906994565009735099136387644081888984376280327585800404447462804150150350330510214065531946389713893712541188241074449860644813871332288081704191431601531473596902954216454911773020312920443844955799308247268086356241789076199485662109279692623903894168894035273633051296302485961850196251833319108247577538257018404932867493750920372689188188895898878910939303768890000359160836924849095219560557572956878814433864164996879481377776553587691958811577514238306428200965027022757434863761548188632226103917007416618165561397461770861231926869667460026771069380353912461741746596815018311076304040333442659247242849181146595011548092400236564316514181146765249142661941124477595949366305616394670953459735108833353440693809575599401293565137789367785703488573316608036452325611864206113865253073632857831718008700563955491324058602156194961621293711690961226456877211978968315021227164408662347993175513945162989361934133553907515774949987894470860454598319212510297891917945688525145307812701578267349945228017379507406528017048516679461066764240047971076086133136487989490111017336226265958335281997770559242959990823877008068271102925343693035720863685706155642933499465173795750685341332525270846436455058798108481910720223186514044715267256923368790464489389349744629586320681057718082315840753574477491866368218498796502155117374239860165689224543309703104603929756993084920667092643099142104770074692654496014676306630646788581566386810598582768427479093669263657689881883150882321875191447185706307012567448730610261750889053480808260856849227625250630560575292729742105840255839234907926994790111104771082129099179282958642356350390981815516123827054322138256286265429245744075261727071438054089108563173826138288647329963296980405855290600821332562011421673296225257339017256037791782890727375320261928507921911507896925744963914655622743313080035388925287483524726365068202541123904663184643357920602591490637877036484702137983555019012370707423115786664695617856162467142586398586038632898290352059945234425414811486540671814825588700840838885642013973413881874593721855491482027096441707873962379656929708448845014837625019579675889172432114864092543766281387719273282755032381390828506795001743498461458947738145137029760490078517470938944331272265949046846741215936886519017426519906295895382537034901652432967280882390438136380559127258762941510825348277773447864170243503750803475129637481866653283108861280872852617640463348179970916027872597454299759783811536830163481107037444574337389317741398536742454305949234692007978099873671590500339133464223293170347264527262288134166967001756328892624225511092001771152108587043494148355878785059621546934231224484649308777552611610520590246703473844429247269087548422979592967364920003465614005573635535015572920230243653852324784405744199512723585193889651537767605664925040973707194489235700554044935088464769664469866013068608801089721897560582262672863133459190169533138802959804861096987258551365300502161338857692410238689834130582314821402593303328693085351287714494880897543988657501574043726861689414065682034172638361109467085838007822731288785645681258852213937675219525434825626646933010917735112106886945766285848722119342884312790024137197435424714664171485748375319757079168099448769899738515716305227719912743807969443527086838104797094266053593368595119556092110025366079730899137402580551584673435463658226122617507762690322650121123752265137073878108006428489069872092542665648363854043603480437778338085164486191012182222196849072823629749508251461845555965321217155690848053902636098345673018868953487004192388053147588660432416340870434604448770801285245713094522303247213213821089042279644017600146853535880640422707433844191163738147290379106029177546152025121584864574054871507619012283155479130601070378708289428798146109033227515653506451418792405333581574298877852551923889531420664669365765867933586364329648372712202053406141452556497473310540866365456061508707028098824871751462595989384452866171714594902735218575070410419783461165090086362677741911679668684511814843282671406063215900608875394452560972173740952360782371474685542895408990860273996364873287101800901066563096096082607405308047233846299428732871030030633896596504775645901763504110981481270861020571069242991496476077084255990970267134873206676514811951849549766899552594758291817160506066082745295292916561073428826018500098212693534783620952573919150910798425994583437715664925662120481175329682117014613902518559433579760887607379420577130206008630027335191212725013217764552409366276096605726650746493845625388201838683432801692801086700239030138358309788459550836586130408174067010164076937253838243228646848219576437600861619351615425447781689365004106297059637482030596654108592777490702795375712268918604875273130025405739471523849842036681012917578690977660909808740019197386554823507172699906414599278028182027473815603152010502476637984808479312869652261658194767255727340327955209571587561594999569716697261303203866414659843751888235635031056390010643564641588744981185492517228650737854108245866243235804571417726321808525914963138093917012869216626808927130237141926313113795903319641387373820540307825985197419680475454791170001774304966506201420548059206682915125035461489685473090298291789121302342714284493437976409619905575627791613000378244280893266586160690889205025763962368665864345683735991261981829316952585775818725639196706399002792602958943026115572756485017162267618676350899618345606944423212022742190467378577082269450058236626131033337878526385328337984868650058706290969399520947159491461765131648440816985965007336097761524671446059638302338355825573667769801793763696246878792744436402929402789380356612569012585503057359807035036607235564969108476871721491801549094627899384729521417444526707601641044665292738318471272039610423443540551980833592628742178541614638163263433729457379798984844747534185008860447984192934151333616211974545574305618972903374362475931145030627119109485902397110806654216966227085712838907988173128744544706158198750627207270057415834788259196250195585423199853329491471194639798755248239462168710067670403544628969025669499117738274848312565135143272018259425043036304459530373284648949463499437779078517329490468649762234238988398355603179391038792946510279244579666629260177376909572512858747584744260911340159290586346818824712715500309701479909378451023116900581089380169207261161655808154549294820222680461728916966676141940049175766910843013642698816086422050015333086896106965893048388784296066925989030157493778637138815241871567652474858372039862657507976295335835027919643917412023172412746297269792104295565321027384724235891214035520681332276427073857726245744477036363486220699458715664703519714663607192338578930027672947447633349550898938318723675849400839150085177102173699029500876397396906094664045417015665667350742907312541141389094956033267672535545650272682099945303014143675108895483296983838140523103971507526451879073462448750682665794437533467569346751403565507221890386106406188166850322580998769949770013768711603644629763902399152005265550280922215101263265650981492534370499309929838781984347711625976906837394032751520263974127311501199656001966116523420889489521875919931529472365259948384242657898403189107302327371532377345195133945319741062062243979739124356063657427029636341924647028308362029365420316320305131239216794376804059343023495947624722894568755811598372635627444549120105503700516587901624995822225678557701231914345650952352677734665322631981936595432261329973981460277608169750210537439486137538277038770898692799815333070901129210664373116987776748016672805778324558141969493573400745798400699034689054599247085635408553276963898666745625090323290774427643667038261346321496689580863439753255862364346749300471749854994939407501207438215040078901303736370880065503898907058640224587455264367257909815307143708280748463421297283603448453126926369617567042456740325245093368206083130555097336930275288171108742627182152210076323098540917027435027704301058794953852253492249258933793797056259171562809710612395109224243471829019620754052970678107535377891776715745130776346647495959391534973546934777261383490730437271111956564166279632902469941118901131391247283846815121810445383455321515565428079889168139941612914713188331098845988674272037838727107200549936035332298050380782454576123663874939966503852518309563729745476652426031630913803968113041821749461954910771445477274859099556092500105137870090799274844369372010633739135756771873252068529175493001311791434809332744946734261613562065839593280170334676281967364715672058079842022510946912184960145264428270183639177854543099078928407571316366659256450951180304739916472131428297464058301135535789079699288132144317392897272658494203307251044722586189296311219648604183713949616149902143240948188595774217223253225817296188658055434981745345657165150129606520611177090443630560209966036993695400576609139171161784856772636363152705131374654191686978185749476478942419690976650392268066986419351709245617752797884093189802858277734044580118777795580280569028642859252387097589862084159507782167635311208548289030545063517871877931155067590623035547979439910223040412869918799305508949589928285183047254296181107476682695570725920502536827333670104463470553352081326848405670710106473912955225457803981183515470449543137931527681081785303918913055930487393690983284916218799385123764607709221755056941498518890353511444628565385071691073185581709941651355127644825166429428151870349254748207298901428977777985845198798859632860463636642473617117979057021150011150662632032579333604108312045618533146850928423850529798699724960089598172663166089559589235240915918546012917719674438053878012846404823359594819393826767411262825887107689049401535152235424772320164796913144793992158096518528985403469183142556899442757879235759498381189285174083331822386985113966267101021172595626674844781241495492555542179720936490550884617772340854214259023052383012107137665532082096337228306714729213100920052479344279172697071590126206989993629072131236725443525083010522337450702414294012615689177157862996215241323647947445814430981051569511191070212416218220691729599568973460992572166264653803147912501951139637419655791020587526852320467630298928056336107073154160675047239739338658932690052834924795859789933289106610946895210564942854286817844915176056320279821474833191231927418640695213897892827942938635163103850823019192003390018119750004417248439517824316441708147603736208677228751969796634012348164344024280676114797748278265857347242336634224184421397005249575300853143546195114062530769587081358461881308621792757200813457486015967511615678879581319585321570890525797716028185206066016251132610726967335947937612142174114422442474942837613752799177514244728041717962421532744913615677603991859007537797440894455575808043144598576696584479595381729101719710280835162850701456534035883764630225336647775320670788553275557611335746930439780987372109145241358714355135663515833592261911195121773805995681820216184889812596184054594433734008338353134814403768499256180714894365431242249204218391350260638660125732009064267883792111222678016498877696015128324934568865959682909927587279900324202437594538645816932821358666525644401384562994485433423200560797595902016944747018141984190487436890435730527642669153897030889181916743421792665150658441031596341526258104491198191598400472403404385821528600602388691712514843308196428065618488769465832259961011981193771405775568210628150119925088189085027761402385566918624666422592271079472086078529709162019012886306933606012891876697993675394647078281961423188360917750778564861088222561080807829753625614372606519728067349872463119883392380088316306030897959657943891979399105262071310767684015887369301626825438955780480554491071493386650936572206401793163480788589117870310839092955931567195810591829377503316010409448155006457879538107657582787292066765997335529077035368980021696916648013065428778158758223947064900772621109468825057797185427958629939050444968881924608570776639332764966595175556423078915636962719929137170635144364988860297593239927699917138206587368859335948173945625638954648106671460143975044943685343595688086346303259650440115032459020987574441786237565219132926588640427163595637685150652615200547702411306019124688175480134911469276590845135277261958540744944802423593318052383768561605072547518349986019068023333269049444149516286790260938678875728666605340897189777291172037604573853326586368068250792569849455199688822600372364912250093110224703660563176294107448388806173738019101612378680435937585489622772185662975909521252785205617659817551556231300911189930266105730526024988033849919078906615353932476745351187864561002236029621396618505596160793383979094772323264885015271754016080617206820879011490074394475752168047706193749819748478871413700103566945005417387170887583829627220756240785205337356162303144771520393100022797567153497433079521103943865213827343460056615408178570265949903639457814835355748949380672585900632767658239591188339172209233091941384465973502302442032642547053504311522944100064257487208367487959862087832679064027493179144150863541189099305425239572480798510014029740824364863427232596742679805261520514269510881939009641469500146723885366245999874856067347841135442997059996917337201702235976159139736384274785544813277871461146712642045228741482474033364671496612754404279732028741893942218544645225672591183127494043997994369985793883287697203719919333495172884019223188731637834874302056542754251764616974527858637951273923179401515449473376676912991537714092645845367070749957421233734825379438124422939778347125006634530285322086669082452274574607986247054468218797472644831890414074787394823564285384013569460549181626208816736752689566308986792459710990992390204049999123658557344058931564275364074538159609103326054889712908909919170216721981021541167614928308491334572729738811800212465159439336791399441946319974063910931662393083345195245852299173214944735858937709799046288444572667939471126397310879757501770979747983808484012229144321766981103869620549033334468921325175590386306908824109933422392278728423486793369511874896386584606386911088341590242779646815450173629087023507186879468993533921557637028495707167914335451854897651433676409092592180820125390837941875147714192091941350366542859459338236518289809481682692292393073327075021519940843577943729648536686812745675416221455885935176634895486179346535440658655046338993157843054350748264065698499514995356355522850565984955256084615587674794989485474885835375728025286824437063723593597416553191260621658989470024269680226966039289089226097398979062290846387005359949403879521792714955739359878852075193029635453182401841062608235435856903876818961250075774781476361391027597007370478117918684204016232094590809170868553790890951085029989864499253571039015345028519642066704295430322081577860037255483977891019710649961037624266396697617849953176895455249209637758322186957990510495794243408392542454606478875083703097433015073106309124649123412987435082020651624873893695867116509505585779218199632383964879512114372653555360784232096790374806385206547769339979105856552457098420351940564006317889144080006152271487264328336273991059242628741192587890677410581910803302292734329426704267837410202208689446395954401089610322266154978908712935547005355835034215335563576977033378543927365433484044918516164966340488239988030848556756038810406083751689672628882935429801629577802889406728759082845431111956473560976248503354426618173474925058214702737161728828858166541151183721765537362219225486416333951627698987625471248976495646636328438201820129228068547317973511433214357877682317243658071045400369543569846540363874719625436966405141692120249412527196269959531565436054535329177433154471031890249976731628918952897985264572029867736673033759558872501033109857881416729702984572469769596399566584203359850181530012845068801200094196191103754834694106801320352360537772191473159386505017600257320531071187259347039419263614266333343291161264184504883644743162035952903462850124416712236320102407991214948604349453397591418972884750248384982042047260234501949134444090683915886445563992204541857923359017826664080177075302930587906033490157008508045491424124687633389153987184192270564643194631900601006557769058069247907826387405812269851846187215423778567594016757530404923882478308412607087997171943197751628264346228995758165682384079683612734321817038664148228695910432990207075403158928636656913971563298337813351275759044759765750142373373842652602154489406879979995037572905892274005433685786431614626785828330597516775285121758488888165224778286503851466351700582788357069296174597941849892505023638034201969016411809928185955878421797610574341549996837247113995372815542445721296926293785911333408097982432283329444593192478064240270890274888737838841575003244725788701109595442922494755745934700773109618575240176094746508146764942878522770106668541143039179951854216728315337522752767218341673149489896434882339308333005502907203163224588975705223984030735926092859306890647157759089651296347840386422481753432239497764773084556111943838333384960881248002574191795175095495268522209737055712852581020563695783362995304261367716192888090128441871189222647655272265213360337094683698281385927569971930221708145815274796578847143298328141427995988655007806305599388564045441582079239181194563318763363201456916285557488742031011160610816502600906872803349261445555164093869291639399959408612263180660226268750789439132826407461287776556973253401368587965846074071749753028002907796557895519755894266754203664501883267358069176158915357091797725637696943731552408749898793752263371399183311016392217704663455754666109339819643100531879497956580858494760454090405214361718071322585859289757409724096988177778258317609673567889193538581074661972613026578744709226993689894553358942391666017997584604810671867134521246942198935394613715156349081595406929888546312892967678038186383531146085186426074337630868500818020500443699027987822098106535435580705978175321123896965221946415725094301368470862317863671214704106588900916472413115333654279846500783161997518362232325819459612847397370733115466346353453794421589964557716129243887662873198628922568260127307378415100765929791132230169291692397341260327985870080953779746932931953644278234267638861672722777312601928419593885060733480672714200263506484214086030931056157104705709795287041244098335336511271414021934812381387976945333273361302537328450234629450727130576434335965650394544706501184430537929062063811037096010142265164458339270119061263638856659982264368813460073223062240949930671521446762213664077175048113968424948066209104257933839274758677783161385710830266292656006876736921552914553248709822430696887575740675252945778823590956009690574623928579440009031907916177301868216736156583434937734422929393090941364428929942140627378511336365610915619765507135533554356427294299719446120888238879756006737756671327085645374159490254265027557408099908300592982317782990135078474099196643631289514586692598405660926941443033105759738233469607735282194008007599489261130087836710345965007318051442892752356586569113312155501926493725240605676527861447093084023733175081426967523559019029632671407031131950645831887292712711957027113712607320519580578265560098803208053183495392065782542029628535165237042340400415913125463115493784577804171937552638579849090477852017571238834537115222284213853341187720351247125219440544828425783723479861886711772615664960336038092435582861332610486691714759167869378427271824282728602584939881719012112012902734426436759996745024175791342628675442970429736843360150488432136558072484849333315509749524347605662807886072499114120187794909748163162802773639646611632497528123669116542742750058463568877839331908873664264810400427527462248404391017953767377202290442510707134056062416419477254931355786225272138317102980426794257728294350424727875661321610633093358507682727327335969793341564149561149403685353838957217239289640415678930293232953825634535634043384560120192629013171151613537287537059211834395269809204199193265099731403320858598373164607735989582115544432700186686408720498010812985537826996098121937330421050250590081374922532282877542566255123386332113491214416431199036385374420959026823397321093887237464294591652600452937521800007305870880828216387545411787017905838816682709331250076784147943146202250460622179947727047357013118237653306973286713231014637513565066883036230400916478387882573234780458075047646865518161106817955974009566221964576740564400044787353787700801602465572166893386529734227814816101645877222923151534687265836278495133249660218969807136278708686859244562001755123947416918725851974505184413223555469596134467256689058691849368448719275356306863271261126365473796755497274754950669326075093952270047617796552655974858023958185380231929935778052639623272888421691097738208497539445334505066416819294727857439953907336050303532339920262795904644546623476995445336578229867332324305819303658876830076137023165720464152887101852220862547440264888065745253181322500987954372675205849461223047342217154214216187050954905987362725982318951989755254598648411155159680294826392589766107289081639588134135306701254714909312196947576433884944794258029797773087477840789327579071153446794857403630644875433705899471114830205383082142625117986962226703088791717404038787331010879472209717012756212121458258431516728875758553939568103529659407136781407395063254326207595895240231975419738336192114761697726816243948110057076666218381548601430267485862585629889978100565928088614754634357360219274710264012735273620225075746951185280970969558927920627848055776104801292732999765598278402462596190361139753023277235512295642398818798041857741490035032907863719988287136920508007109691387935373157237781391539275584787550924560199335862962439705826576982639002893515433265084419526399813710568967506056861891781215000003723921341445646912815275907004581531565956483485741990571330426004220868593250054710684308160941900857031057458005559021084667990441602820641153136652448923753964063997279935296859025431641504100160170428493163722401489674463768855406471750921683681226161596221170529642544637346125472696714507436436555725079665729471253489565469881108526167170827057773112190336041314788182910927054190510936341001010412832407359583879528675648604399701647167369819119091864853751188668923885322996150203949414651956473610314365589178821369497156263805937838859331549385882696358252977401754532646570958532642896533769397675668164612543003699956098551995169854654942311859696981704621291109515412015533727838577161558159088863507438372741022648525404955648154360855409769453412234085741973598272735403913380966578313359008198749411469158452545593296110544762006036402856082230673103899355718196261717766492783690913063702419698579609583382106385065227150853098694954165021758688782024478522449523356957445407372182951822171057536244996392964260295788331732205108703961479035899658102419219360615542005335094684189808390271687874857316771043381257806302453474495635443392951948479971972814220410231036859121767415022057613227532689921615755587802425706951567983388044266982325060205099286140560112319856480748562880117568666729471020617405243106457511734934944501866847492463668191563860547248921517383369482825761545633085784267948722749482564733202044124486563854750253155842446002302753092493380826143655982275298111388221680190296141220884026159890307672103416581999916577476123789962145537972495389990705473068799241748146202643228147951016319563907332664904354766132836137720705342591140286793458095092663735469203501308792187925518475818229905967662041390944879785515538192847091030544336445896392708486408762984228491831425397769238175663329174451855210848860289269833216814249039706365732616939619786313684211373694591149105562870073105296867935555557937927917447192623480583949013324432118976010813634208318485471972639185802543249990237464889619147432445781904981126331545825001848654370203323869658487826090300242251386703378823508057064992784876881752316822665492897056662313204783424404313632758983774394331626168506098265743151153337401916207759614396855492546064995014747780548842456869636829368337229615030071198190080143423981840448131127398068946947474579812028749777320641676668665812851944957576011783579251840966012445384730135027235195552811235435923582875836915869803160038238052760009810152628564471303139801062203076672256627444954773412630454690404289675629007163442137846860454791925048587795510296660010635502350469099436984031898240304856037208253903214942154914392707005281913615785106667161454719693689278696639119674636360122788794696867407232990086826652328355388136445337339492247764337159336154576305253494112183872849832560884154805274887407843415745737227316820323182869234262470232266655497942150277767994084449690034674601806777946726445618178603137606823151242941121472160865815544160126604252608464443873949047182739279162274603969676081365998989356470267576666994789765906058283489186028610877659545036827786245236396269442871934085667283520356090662309251472709705445283515446555258381314345288460187785062080469357539097425927715131795682143618915867856046968778360752361306113718522612227416922406799440291214383848123826758271771998329760124051000348826767951322714314879781638210672628782953139250280702985539686262890247215581670649933224034479999191991650874676152298585549464150498041070978772410145220079495966957810120308350373813162635656139275079501092967188432092351527419584387544577667542600873806354446978147192835714693945500155127511293954661535612570227025540220495710129577561091032306325815177855328217460408103181713733485223913960694134853056394404830248788092004970635539392664905623463307586917769385766828622565582075641535483290326543217154260953359639665733998715847666806715799892414193252034002405839539639098847767444920900850259278480915447857161335315036381345055095778331126661098597989183039012324984010630357050971541306042253974680214070105619551015966719927664303067939209631031822377652264059680388211605471389534224301585746970638618100433844640759601324808760425974573850352358996482507598974155690477491308492758403056696280565460798588301741990614749339961325347986604259157105121403610154504503879680412747795610701863499570267115515585173813027747793012456424785899119698460245519108961748448104112492067100276501583743890483257731118004620771377186311634981397730374558607121645424806975032256518760182865039457737229227073269489184445459307009876039611165615231895031109960108836564639362115850553917943119818588547464426940083978455653935862279239214064693271345970013612730451541106772983085487370890310087002457501426119600495877404740912265028975206134632233002240219718277447976973145514935879768738347432871130103160214803306674444277379586370174601709374677759265718114859531207747429161954511546485172466922293674385975595109511759215984988928952417771907637970381410935458145226988059429917502227952744433384788908331396206144825176182401264648189316882712118971706930495048579304103395447077596114395059048668322212260634504077633214398725766598866318285618920671458633235179040930236893081204798548403289315639192202177807947044084205114726797149290155602710610119366921582416034182964185632074935291398987613371650145595453616486931712483252513963780938219034908353602413862386478501359586756466486107868665973330522146391086372759019812232248291982286624851190730954780613306280303729006701105563591790591119868847718813582700721563039917307842535909506111517444845890928552999242000525084424837087300664537642629146497857222626609214115246586063397400692270540871212584228494697078649512619210552084398929047897491129223372111029798640564620764381274838036155958971814717827966388834919577117714884172813281627892401693665622968798172636243239867403796352468432875120272116947142519120374131829576983652261635095120783655425242330104931761834554101381334698742660478518235570983202417068208318660514739185540974280241743037015262174985438068512218855722531742560304071387240258172862468212543786486167662388665148252159532218062527232923755308551700236898460087410661602020515693732518999085256769681345947770715578381499350326508282888802040420517680971830754985374137109035739283295435285186094259319847663875645418013060637116755189473032063086793769002020570681968257872338466320899605453455982771116267290031519142548528794293208061386857410075948018967360147213876562958409610291237191176912308514569107018397516339330985587571578695798454758141182546870805252240362390922700222911944238494241991445863166671644454819028950405307580918211864429494961121453366108182804310104222406958437968307632612818120073627572262647688021905397000337465520212531872395663841882573596774561649785743824323961753576548431564515502106490047933331501670893005667251506134988671409321228198193902078218230257438061676841150696650472480719722452296965411928390181736555934896266699155425654909745835124315830745538394057107832348019520033332821851034018602808293929507950349263618263121274274218975153740726371756192424474601431630836081363947031645213201718559047236550234918888292223664071506183024814382558876022913542873158784095469137703540497790730333992609948101212336307231450163300184981273409369760947505100000393797357781951847523155659041012736717957047246611151803867859941430196253198893435234112438916019138674421384618525275611855866533841263772157249302700963188029430268207475697604360640075971280410828505763271500737826894304016666635397099330265525892045087560305150717484832972356982379595204775935741034902198453810490279333925134386479178786246848808901004940807447175737071559101221265764636098715642471764022420160164271210700378508386545538080937765247570623370113373541065337639489158058099704674821215098719689152292997582121177951226040061396382264108590657637060633422475401832825186066946608851986405628501190241083318241599534872855801884610547622696591528455780693995463911717761307925594286017638214816539835318515783717401416646710167032117632663518790530694003357316695958247265600415616132245880781226963898002185033000975561988622846334678721555235832741574754873529896327020020195563004587558125276279225450589213590860406087108789384128992803009705542966514003293769443209549627728450352366828711851421824037115066765134614922945762615013252149861493710982666244924436438224064210526164835726314079614461512099663860161336422080568364967094328990034621805055928342454162363511323706236594892600415295327728207362540635201494669658894681655618560837550352047536969167254045048492725479124343487035305504525569934278448200814682703113905803915241399444536464754826776756909387719917733162908650757226797143925301003942497272480287114217255949098372794813042573385603570323080291470584899278602270972092111765485902641620953723108187448117805772429122034463937461279892857358934870179839736355333830231857208520384841824111112235438547520487878004818404535913235443463462849974696208826300817484553970253482532141215068820143643994639599503243959432148389332781847999586551984938529494191459533496922001134753794494707482597472705697040065622404748722201874438449511777440566995633809566937906132649299731634133949249176846711682478096844374816171294088530709130812286108621029623497224769564771069392828295111468967836188243341307907043946012611617868552066236138627020545479041345764017906156251817366116320041530301383913199379354209913302707142011885678464395685005720027974974491842266278054906803588139027738669625724406391628306668753167386704652705114280352033269506325135923468959270062669000931551728200335431169742249599900130024383740836689534811595019551477109759498932651396922134078359575041175852227974263130279794160174734553298289171128089717454456642081573856984772514064099838656452277833103998757175488004216716503650097088534087241079532039434038915815414470443193792010236100562024756679556413852213466368878239684236351218637102592939719875930576616419037998084702761527012205439725100292210523340723608114885404614002935230413553066057683450438756056226201824620721943307885014333139244033568889368672863334706003534299961094049513482019034686283704553351423267269221364665436191374747058951364516185272295740006383216824204650948594783876792763207049270907188659565799585307882049623695488674917664485458034880129813963293642039351373834250469266502819061415289888557784150099060213463371164691031727292646019590344087875339825378765592102671923423301440636217103538757511734396967112547093972837566395080163293288728830550133068818522016771709082663749571055354917385201757713469710847733676298009228564198887117480594767319688516137904801163213522732468430573092128658104533491464280910362281443761381101289635419991710843128910580987948673449991993968204471477073213256875291521213559267564596982816678974364474090251473455844911063600645662237030091290257080102645950841006421270933276955136799795419188832021788109539197939805012652844673107908069765466635459937705961609267923282325264160375125756528549635901651802577609044276327267181941056137576422509982774242167933013418288321870004301909260118761955474769678977390209041070234008868967835773096255745550400234412645250574053004911989853766140394893631349416282492946058747745429630572306502000581029128260968115881091529433884959377714571399081819359369064274255101680366552892044130042526707144259439422510936635649727724326862785372303152781122954010998830868541836874208052986572011148554641823396689947951362306346374853673517259252488386526061031028260177432835886354367791655550740454116063798173352302234260583178165918124248613139861281254352310686203793825217108031098099722104961618597861738091691721172271584334519470152776359072374851801307473631070597320397873144583467370807803648454743641610088461683990406160898172031294010544217685781140902550105036416407310442507984996564219683331025645450372437271087828959011766847583631719840572507433097393853197658830640521468874934656600256126028619227234347131846327208284797003727272300866319060363225332190152399096105787811919398776643174304089580041319470221291619874522629909806895100099809925050538357143890491844705413487736675097298977680533986950826941003888120835706497804304676640684014274350788288463657557481216379277339665258085710248886600005077923516491512841181459052783199361368728018048280203944954390846089546043426521997304160405722900339663424600814161194458269290498667835582691656357580666282535910601037846445490299067886355252249370118153732827274165706380978537452793200803496998555126746629470959502533498758495917602237910378822926881713574155593063753192279461959815241327492832643564915215986441703977148151770516540710569880503723326394953906821052883696823736822771183635097109435729903059791122599277191324831344691618509537127086465517336021497655459827429451572996230298431683408744420463634849658706819581623416389818710279371587733829253829714938357257351608661576612392295181325940627006947051373949951298629557727083209302605513849653795516567766080982197859248789901123972771093906001371677923430799549618385238584977913189443543580661503502601708845321945878844805273191946488828627480623292223237252450050405278140651480554368623948201062787195931608873668438951619572642446576707264358051337503726874911854727911137781228429345671711303249330619305779296237899552932946601030667801226161808055198302257129836305802086425455974107788862684551073617454152789982396326515578692229259151562689341261927558221635835924407646479886458509095165996900678507184629959097951147265896562510104818600070783432570899346881398508068521593448697884039874479779509168111226641674266123089259422595393741565986932183959890690806967974203260045498704879629606222857896802452786447170205995500705487823169986447720954232532237238224046213853512101458161644625143881467237454959371771122096692882419502345916773321831356495677853863356658722726727874935777150144989792509412070498819363975886394214900079958873577134891882077271548818387917645840748772571409078713925115040077601350845674846350198328209620572218961404008273229517983384290005540757281710537442337355029765400165680054365570758212624769193430502443783649712589044682101501135374197182560091402709048692974483364554438142339160086759280894628485748581967185668335302206389085065319129770554980458442950414124369980669388151410071659457502448411100469831007539185685973937595458051916005092690496209114139741782605945879634401574029481455191710147382703075499024578889655496597446918694615891974918592223727859676047184458092014493389115289818920773094815418295158316352441232563600315315318927451206644970531267770011273579886104187151873011934772140766439391467115058992653076252926345084123451396486128109660219849738588385763347392793200980389431715039983244170324992540216053346327035402836875813827100971313644299000667446326819995507661648822746664065137845799993195222941943969307734617889725306270781884578498023512695076215479889036876984167624572856791545319930567080539720491054877704116009890788204094107381134150559348394578802669510574525808471466500005441257304011398336983670739480366064882881386809998128490959803539661359500861497296149062385800992504474267508285667532386538004039598328688915954338277283782575994824512064603684419081097025029590509625485760969332029656723940201784419788221096214888171420567757710000880502460404447424656872222652014606306412680350426914410417559717756653905337013205469409464967407542926624445666038654224454337304047816621861055988769599186668287476933158642538810882411690128363500843418218833649988337037250918505850036921942153618028876913697502843156412301590907495823660903781988952683626653486223526580045275339933631095825326909284470459603966313155339127316902834991017211572027921214536284304561044457945524373538158065217832645461421751724441797759311847405269515424100481227330966346633052622516525184118528469687859458725589273773806944693737617819364597838025511005334025551802729720942378979373731859054887005473113573560012065364373263098934130689442573065781414274743743911940386349891829117496961299481127272679949943932050892380196797624184726206331557480333995603821863657287951687393946957242520697532652599314369767669481851748745812223544082291544662177455761224572422285101766077751719956426296754675089882811617918223956760786294143974151429482939651407138981038041868589049736335323914436944832328530693035761102534800238267929147519515115335402979849991054743982770108888297406079028096034172676288429624771769504019979870670185695450562002104310363208978039774628405633262772096604842209864275589674620824630292281820070117305062010089035957521801480223934573631475714365158528860753936382447387975357377864449148967728289241849910022298486924039503141659416324138287636749612783836047218427029678743509891852495794192245183510437921006086301369373984222499065374174316601279139621132526827046955033321165679688703082280316005466089335441804613936504029693024028048567725794825302094913243235458950079579437488203250998100209502936550415498497897305613652544981461402320120923122583673902272621511420248149088526419708543948935586903114673396487220309006611012142763344066955393604885245385665002125702351886514194760393903252113165686264507591708798709813175178015621360413209116984512240442634123042304323206562407797974811685186162559152133452541079430410153639746840213734378436850162818453396072166759040137199497381049849753013418675433881185585129751443353611939046149301193019672960633910004525330461890072794450151699798715580230801733540316568618093974787382078181802053120945052319934292221962858592066350112743159285381807230214885503370558584840769487214268672477867333944966162302272827953810027500609323456487787577851936740382976941332139683999140136470730226763644615440240698252793482478816040477412411436290450492957376502610232672477202315186020670605969162034713281044151921192812628146101024935238110632265095299811999823387867574312160999498549886853964252847045374864222683810495063927935641330517468097982870016137339698825396309316650110746218208198728431150027777976202525388774019212795157398849596782046613840718083597356718015932654527564005115144918196947040012056238300855252844851454792954214973296324159568089146026439135003700845552044898396576659270498771419155305483764675901465474951861685907104501527344935819666568580227621683546523845958410965269520595669119794003109429775941560134734497996672422669620441998327736865967152979100946158633595967408382722734080149877407196017291985567413259063892352512719444732564686328389056440696971712236963267657845059555623625785042620133133665600333188990179241837961347206141188244730917508442821493451610257732815077228120274391897453756252999195879553828265644174533181770015231081292770971649680946734894833123925389505916056852354595290751714661632901409689578687632784275293027195711517039701514654119502169570068572694777018599142104257030000042910472371169389867810784214554590775948510052208515791017524929718883678879182987459557428471545720840758787979120683372090087860959215740145548539038543716969120541101087605500724385635208275290686823509551087766643491391928678422109192450756380325755365266249979864069212445670712455030663882394710505259361663053137333842912864888190503296843526478689724692712127614910058216178242863440532776982089719474607014364842644736198695605458355031748167785632978327871866516415779477837903031550422653348057950377436630082486827132990958595846032361148515108063616607043159168120545319033771783716871033242853977790061276652301604905657893023816184764838224061679372295143424691354415295691581216510696953849307745599434133713842608389839487171951429685651394077808396002347312350781699612502706260094398710286768972348326471943998696024983691454889379571129763845228514389805717379918662293542810324697074574957726571181510272489581034563780033909062721907263744855839910411523192439853896374928778700803469397594046071192039294458626791748397164164114038123599708467587132333479671919238819106909233878973093727961941901063333530319516886195181996242796969541142636509905665514639961412737977005063470407200577029447905766854049120807443394521854526436464242135698804377155507287505285390036901437576068877437309817600138683482086746570063547868236480811213630822105537236224680249145422685827912521961199254085363726425682785922378644553921822227753712116280587099680912089781160612525091060028513564549332590392547135226723903571600032681162541624966144173078028819837361239735745943546462625575681879202766187864178401790323486175088970683027369509859925720076821362086701384190021858339211244867113856266982591736710701509010212349051931412383697795540683269608488057990300034941068055954715739850417876983826948562649221154377727277440541105997792964996021441683731598183029850756666442685356375515726476445549779460926190696506203086782559515816305596608578611638666959370749069020547825905675846465265726170891072896353245654481692413663255265022410001295429754333357500275889904394967329494206830408336637592896742406594393667115720063932837945714687680897349989599904302322278870407403866576660406603169489200661543063960634737787961909336503541637969138609135957964860863331290077683256442670543309323960536610740195572511853323740472413874382806626115174380985578312393590499430504757348919965293242218849186595675980584325125901362180415533498832298786288159073980500462711855237360004128607121044350815347023258677458966747479875629370954422884006015505260187499736906530363250937230766107964485569463894538583563297409347098926633906122550272550997091074943471101913184744991568010372869384239771869531664163614389491327306171799714910119246479151226184993618544020584892318852065269679407894240531366805862599812006853542002046527008984289768830306634725689375625472344106593768316006266364697902264200673392971144066703148766806069537941558980452437882185728822493520510312021072992705659234756569917593903255694742667917339370975914151595534434699713433577503641836581484556307753380610013925569586158124120181112610406099317970917410979897654714561023719945543951358342810959719006436307185591091112980098481087684358901491444738040049473140272573523162632589775171863529536755090057650225766496897348083414936238688788918901995340975763705475357467797031404147657003482920438944980268956314703130237032004646494959235386303398240018861375474630484964562287689704924060933148847003221356183448422132556640634133066274167028995990061998300832859061787491913434056594921170419806228302044040499500749423171495187598319526986672393668577239219387296231971658050562061790968487429806463113595566442292839472798633949442364841018321842544278193376020592663377204255686922419185687939593956103596978964006998239727165563766636874887180245974772066145429329913433704135564483421950870915673340507224833225434738336042614421823140051977999611036795344178842938192633292111926716955555167373192955140001986640332906841629947292855240316104239975362064457700616652542285587047721697341717502464504369633089905133021179581480073654912167241913663702091075264043334201944659457851947190644050085452474958805318987778531757491733126002152850567469619200419742894552267544133891004107486303309682760191856071845890744411368055795781026878646435264106143461499224990766278240040060936659488800309349200624156553164222858187806117066794191345968197578403278829936534855183257348963023945361084608180121271001879537823584506326582035284456052821234937233735632505691169650241500116685246923809603239107019641801258342808653389882153464920527105412714104194648945784384351960539024818333450162443317954017246303630175764965209852610232598891863017107941783371893593003976345163057609190727045287762078165019784608257825472665486630089013088623922098441093348622448529858282494652288436311483659442127678418907611468552255363559764372487913339702546398545227456245137893251645172212938481042212367812168364979284901938253559671353696037981355181885280497224176878626108110451639191974318036165160882734422686788794855381245198275793547851633400065463032198309128134394140415792787631133065876088844132409373579124549566158004817957011827651948110625509701857100349569846602546300585495943005410095327048357722506292216267111456825271328353251789439881881282928773368595878927122878128315555105798769915464215651625818936017819681206063609745867649345559350692305857647738339711824325623405718614457649057689207232229205963312036179195146081050920662910423932493213896733116269588097362642048792081106871036025651112296748057051154651553846447370539987554336118907592530684610742459919949093062471784852854883562594098524821762755182270665842664650137200230407450288418037957661574491241383897670346281354139466597016687743026132552380887556880792527067987310744979897060068708125601649123950923737343035277859475470878809591244271057607270622247661430401087100731871455995857804677362799463207352354187386184524051856188318194204911244961659178214570440599019238133593891591622733808407229684572229810118279629763468433726918459310175953558654022129668552768635016410612806859749809940969169659924952379212772935525650323701537631352870360768183555214084412994334866481658103041687481633345488071446397194951915414301603507406248174004660142406584990990477001542024088397316810036456210135721991205190887024271057472217309418135010042464545362378114407102926601720599912487775977222944031929497570308740486498957398029253207950159198611647134123333375757272933048798208755426798962901489101165667585445034511070831711624237681094848667877152601994358129884414046622607230835573894683200757903859464613791940039634560846597176425098365281119009512928537654800916872710316175061466676881754914542638167590150962282773846281483956909701967133602372670686015918707847466912772166199310350352509603762002766497171445110644087938915532282229545210122996139121194416116890087742822544488593000632183661783529099279190763729221769908237326789146166875120885018316337740826588158997236614311836055281480368533579251790855007888611838712531895394231828955656527498053269420352021055550435448169267541049673558165963954470876148646892659842742476942454834311330736536956874006446815837906081335324733680513118859110107501509635812485204074638511734599942997524852307784191659996333700525691641036361014112922598214139815239412828393485333721641478915619271301314219574250475596633611333406402397694677366650119286378147474869751974249840331707084860164243678621891119442541539201640185530060523087000060334769638336386197098756575319065107650632608303876926272728056424390596975755320717502216588117825532565486767660163470063532817741186304721460095043166807048486816035579137758057293126655487636375924856961457233154421227764222809612612927835505544134278088403546249507743173791124716574492388433000574890981496332930865104501720121573331501636441977412790905814427699622730098594592231065191123038542449867165639781923711370844933338957690293671379511547189665036694675987959138656892864277922822109618066582275517331604887348812197696133644440373902007425845209288218335082676192938500421531102504834284360583717739582753323955019599810804604163891460419775286929319066369665984686988244847380641032184673959758697688128869537974494267532034869904416479583457035046437414424537973952569084553883937629419454667140300148632185956964843831691087943035988909279856780751607181762082984018707249607758322265707112585884476962688944136629580218342215383707779977033664748747685091965862860024528127959339647156912842358286743764851518173953800990993903488412282861366701117904643853859602224480397560503568957573572038115637424718532013054615549148606384035723051147345181767660157816559069424010810160447843690570775555691780538784752381040450483009631531152452881214820079276092311432691203058389842873437422852022103426652603835450193312630458107183563617687308901235407340430728802413484591462253349800887916034645543947448840236025673225688273384281153365932171542918399218739335235307978896585748138392941904258981745750241599027016991104878133783678726295426249082515436937261389921957687994575533055270765204605323695485168832802075345819801336532499032180309329091935529110847754156408707964908506378194764696781777793717261434953948949445947592582631639000918221493670111271787075326758325299385870246312201783951280648965027962007824601633420561438752214897395812158835378994895027232640738184251844181524200744984262856716630760513516908032370816214407521023931851732734097057794598081207498677102793304641998916965860103977735223475683738068299751334677649625657902663512823197996773333640834536401754773957011214339080480413044843536967118650348292731598580990787969271297512747057304933023294821713554000323840925088597938179542363753542655328482994797185257487433719124482633466884592909727934285321202863646725493376385536713987497687683127217966608520095118823626052967453773739518513061709287003882265369780960139727368090685921085806886137045474856477003867702855205637037629136243305709982520464422047308078873201295535712868171959273867083157266050278520329607300666921553615888676119319592359327407705112040552245846860937754746636043820610858927706924776492171878862534086364481715458178379600507326334570231124833844790768150796446023532799801166928819758787254561843209715510101900703580537494707033369201549857961258026489769739373287826354279821405138214908497434067395293342416493375908455893389494764489206742610195542931818398363668467915057784730008719041928870940693465281622176671249413098784729114803106732806602463684056056876765289969086963770421962815348488984498401572922138061730852632079704659063260861169647419434476569038324789504837448314503973232440302159166871495741058330421700353169858882352141629484197270663707089471093084919788883376309290272914495044420609445904506912255705955286662683162620725271977999452691404508799711865445286612820370158943080225357163041942400943146280491819091428506682076127557206499088210066506383376859097024376409781530524447256549821992731790251131790828812882535185500515351645976038268967829515847583800135479274544590241519514529977359698260142936693215536559354519607886862499736630237688669237454925574981925352728557425492983875802179910097167354366415592347562701164391919353916118132991263511705427949934555050921288126144585905233846642681362987790376639200899767605646433634672410277206642441693961567759475297041305678399784354592889428797051778895552551140615893767572762820340788456489633692381159594034583397125815339139837846802023662710412929849093212996763257399771051997734285792438106582603634228822825440855959350360754773316058559493378061260797706732134881891428246268014405034505195203081841945302408666860970161337065153771515325836058752108831768561282768811494254261261400204677695039089631163156864726814497234787175303481789435836343766901756086558756056977634838144073358131799257968122964885241905005045969005517329195279612742511062186883758277742435179998382779326924967619689966290596927040182767849316405566930047931004175700278798880887673328915769747969997441181944053498791435403154554979084706016916789047844582370415741583859543165236774120272037540209166065345227158706094701051825395071339305868654513142199087390389553462210494097957107062009944448615516327368493162169040120435901229311878356267012432246058562725210947071816039116641338329978256306804726290927734494408355242890191106315045984788921267855792632879266177321990896140657977710351160431770884632940065790726228958899025480465227824796122162947133414454541671506983545254079739805328498662573270006768770599074766921390721005281851487296156642723465814664746098857234141757566599211163521922749173305025697642731189415036024287584805281156201395053069002013106415173450261397933402347792018288025621209742108754327520389493496847674095494462100798975577865430184933291854659625996045945429956815414245767107784896330718249438178891343547171026353202901839731652739481334238481560565044827148095265350732573776299159289843321092070520790307627862130065075214734546310376881927922849858409056545053609988556124508980381769471778966272698310506131808696774015316739729405106189870593419472528565635158579798342039496470631218739139896661391049491020801607402154094943546341271990439602804500325144084647152507205056852160215780712243746182001572382418511649029257850251567677608203466826113426194287010112470222489885257776798261704438331656679367701141192181349037716755468903967585520122671943725511412001743778005933039729403278096452694555274724088195521072835931146964796094905471449773160862740051085150175623912476693280788876612803574104718139602009297874315634581708800774483351682471946171914058650285863078428917542768793111926972507389734167819650268426867331089000945319212074847069585185291690441169642196436806963831357916609514759927892733382591373120005981611502603978030331415493689293615816447475146036021939526563021625389784422023372775742383907131214216585836282983530365369627447532521411740623271440144848479580546909686644307927558901552524602837208145741041462104082573061188173614354687064285140713392960596134758256740626811656274084232887753636769577310674434483960833706561553643246460663961156636503626314214189772677485100869486467079684502169976744766032874910367853492614913623694908822668868573351837021034391641713784797119676526611692804371010820187316669436801395138873574285960525925638543504084771866992218295878675728499401478666351671234234467474795704347390520058596183096563290686485050839835949336032024779317095424832204074054070770445037251880426257140242572438890863396268700774673327483325599402430234446476887452501003459854227431467247072242356840208572749259304551901958603567247822117621377743460383586733257126794752758019330102868573612719731052128985282456455952884101552773282763691958234084774021381799891631641349741110700789597868719113975374886595235345469080674414507037878641557580309735972691238200816032247426765914082256404946631347947052350356298991516955208374365149288166678160923162030854403190677281880210783525858656442082870628918782331340801101973823512836386552681254130938355353723726928978580296694868654451034412571816278957380345126528161237132665446644342899720775801856699538910285011696966221541586084080050334675572972282605023680179311267037947915165079208082351010550997276946282745157244564204595062183736186344510271876704260273715954448463039864960495217065051354310614862338082304904157250160818323331677739546889024715362079594577718974214223628424530745880075886896440709057717015269364840634399268235754112041940987526236622580386276373875940753937814373952252379415337151282147931750140358981956928320335250749463286663213576141055549281284969162269164624152007587818840812900041831581096564741544214387808325002488382882026421703033370151585228191953167897029064802064185888269974158479390036070491933938205773189355724931391967454380147803555508351986235603963586427693573325300450228219232425478992256739107493409349415195283427456920147286569088761110908966429684156166710790922163072643685100489507249888525526142107083614543134319776741584407647439920220776295147563525327711296475859829645129890327386943435025211026018160766287655905453135036401682388053218543008582730923016549795522996565885686009854691365611074948725997123556753960697298111786740244353533405803370416673485460452432633854985215891371261037885326712897634266706005622725806700426008753616794580844139712101880099627335654070831038476577749525752609252974670138559853041986916432669515630029518298645982739967697436378775719310020775470172787725094049215557778528805322590714571457146646903918743982921149578468881648054875234799993154573913768608473430570286301928628546663892066053487157745994928285292661648156735410369238548271498121455651938727142964145821286952700859398198501898239438459883109015032684345032934169491350352800530228828631188136030302108442277247395740554137252705664146914831281604494505837313546554301351458024029861046891958231118043460528865050595280518221348590804578504624585583458391428571513341345342150516622191019752817761604427697857776093757467939472062068095006569128915803849049164218801932554157460490258612438367200401875686652004146363626316447721844560460962909055094820914911059175840969340586893330963054559595552842537297852944322108365823960904923487310363150050139317556633920421609739338792217143623184887692186581062946406653242158256107241981597375411551894924675803140510611382042564548759294552381175503890078983033017988769455290708395513512219644919764919961157668912926748796502484247026969903784117213632550088721275355737842861573107094878109552899783551017246182069233762248722759034191283779762189638916806804438373303678258820610156890720373990033165585001136012036980388987360603284692376258312344757216904890507135050298632647632954566726212849178072503095089833137592813266005920251342543129873735690469869343490437441239226983665705817936947869686722105651719114693231481015502614975606481799001218858312486212042712383463385252427621688123753942282822549694864628629338313728876289866490032331006757529717784970875789856545881893333523762094253769899962281910713455431045208239641625378467758986288956979851759633464486468178149373758375121852014376218808348252319617250057560061244927537820997438898627831566454583665785184641867946790392272109723532627449233181688048150150697249251831333429296749266345470265491180330820151995194424348403426427970825950613147728532423528046485022193689249831609181208535312599640441045039107838862397655891938404679558475428364720393038821896323822045206515221700447884668761242491333650831287794053312960181436231732014043816716312451770735746219541124365579992620894933769174860540821564733723970437914907690471991023963417790565637307895689106896973929736965777971081953512087616973894540560821653905550326229106776095072510529375850290241543733247847147626026739291805128240083352654400764760850021381559636794781076729675961231927352994688891000778195602162080250883040056589459685785819203516872732980294030708378597067832481298260597809846237036590091695066390298194599613324722896371191330437145870934636974114112975271570963369100391275615478195655282143184625981915594034718170920466595294217653232588885644930169623466346432362949600405254695747481944409597816205031710575806952257064309965245434190051218593764588338564300586114492533327322900204327699986362073826534858630317487495885353420448437640795093251492527497113900486269598612874239009172594900756390634811986371817102936182413940318602615961825059335170531062010742885636379002831038858507636794441364445620676430733639707688778886697511510002887874137770037117143824539516190528586300938134114825106161553042563624331840283671290359566767178674506504403616279486073648147829318790349034071110181153250503330062539116383700347234263111059159388388212740100477914483933211153370376804578221294376207696080396233953494670903368363639334521690531944670132177947404903910074842030578778148449903322319591049142695306392668939822880594662197453493595040383447007722962009361230918875796276132314412857325768841381004176130336933428757241034695057259873085647724304371544503655003279262000718195413196085321749889680448571646014370292329230170502923653052559975445904772440254358032795565238611227196335307911860084582458244672012854146800196357085235007287337729445539625050741726641840563191180342855955721315139923970369891250848130565416665069333433111974632602611275731460898691164236589326130105084108125626969734454369243652969874527676082067423763009716585444662932076047819011161024654836356924996992450673034021281567151990679418964897911324133967218851508375791272200599464522596468268500464387704771585978677139698116872562720238881560842160126483296888838048676344944041871398827081841502802299623186714481637668902367463232667822763336844214160686113303841161631221168377141377600696688433882473187005167182312651513811288733321972795323789696754436216580871654458209983488924184454740443507285647883062180767615226872774675974567813670915187606753669890913986499207596370163001459556482184523516882263797270056464881415804904427695748920539942877473635676662803329659399670435472334275917120171581537408866928080147583398251401659717844429473112954910916970791470240937692738574903332747962929280412132352217928167206600815948978948114562390067258853051886432470729122453752975958262596660743856511410313789956644956810156034083014742247372813134740769536533785198273897195711434069382635330236107886352011272075128933933673693055719012336360274435844092771403434198875632815373918958588006575521544541539969820366061012381437738493587171610934049173688899404525171638468462158712084837748313373423134414742156461269792339881266433016306000185209375928940665150436338822775742274551954599048414359066603972485586884056551653557971580302532017957292779340847456908376737090535997534748769543827136876566556897407040604794455600829116446254273886660692732192628059255910909898095061371305167577749009047792350575304526642899454542850822978107522400423211091210756120810151510774170214541024360135903327600281135655552315992693908981722601661114756227996812418016059550279127550901723698979462216035626982569015034669238964782881817299098236104936861061839877664980726902936022964676683663223595738923390559757116451239425019021510670147217795599068108998680036257598324898867396507832241802111869280987193149121299764210000182739708646599035760890866283382902570522548490457553500258771149397150070091263920363177106324079003010109355992136117318986133805812619378665620485979827943269979580067508644932905964019391598549689187908330713129479206826990920281078089370937142926194459953406128702854046348683144895618433698083203605052252522096318972585801435033779228572594294103708419195094815611371016150745661684717963790823412242222961750743917766084634097275861349979636019813932864289906900175056734375905041139865192099747898390342279265474367012302670988976811580152168587359425309196187909212589769748872989398901488501605331492445125869371934226601174842538954430077683783486637046641717356184641477570171071539773588723816682059828719892458724979480511819475739403225481987706075558257677381150131270251567060897302721413153691483678169583678135675016197444519696418838128716101131447841130197837897730411663942863794671837435726468275862648608745369489787692536230049820406894037562131443513428858118686889289851479813480474795372527224634667916545398603807212532687137626028290576506122386869727270953553731681546730447878283272496090280376621372335318933243937042676970642881000987609419449666497278951038215113058357989182693043103459452859425806820315683303685602171728417924026622087879468300401819491874959497238667681680952210734980357404633816026657461403886345280951689820784464372226335428038616534508890974780309198729343622844395232096226870382235729736426254950770173514441017882841604391654153396885657166735468528385442799611432312165201657934936793657045037314719763417666244767744468144306225838656493534444659940499927036241650753104056902331193877319419855830581882824936670717224126037814535936942080340440617448000507378430557857385992087203736103633233691784244606336504328090527476848240009635845050016977964076060798158590393172508757629622902320567233331814376023873208901375724752115783706767106414671482103024957411066395024991293008530717430755220835604556714857522070421399437073899920137442643611465492379881918315346506693329212318969775335215487574770818869192603352767600887095327056304759459677741557661946033576300965204673248558601048374070100214680646483597894684227766187551687083343360452222303639483438617314742734948554959021754387310940334981790580694480797177112455713924821477865294304167977846597028241434892292171203263789389961936466682820614679138279223239575787839393240034351055873788005151854276525634200869353265041079820787944868482194442491523519335371032105308778020061779621220740743358775187900569567742450502014552167732837714386587011849471345765986211575395251222933994547045819591774453135306077247320924656627109910264539923686821969283172366298427766679985256302698158392458284143715993738594842699811899357462492656285206614689241911239267440561029526211469931106556161890333019626491672908842181842465090417532043413182754999134602045432271833128247518589740645081895596970423574607739485116422888241495827266385282708982149336564230854832736930286095983659635292427420422763267149913914955673829067052106879962819649132159560203545340963309904153423871915852623329383776128409016685677559563654254511294457683568312108235191054548010906640793991701845430299870432065134068461110815652939798634798812837404308315156007320732335672501800824957244530577927072208629207507404543639080964287036022718733235615031726697781222177807940098788423015583567260931318234003815959273403875043541775715514250083359718345638765164753780855611121886048760603973443634988212262523566066482274143064874912728241642600672951057431324146263301335816643699294291689822963942426937864607867135937584958052673383405857622182338512886320907982838217920133107782402377368072302680386280877741268929647011258805357871654513182796745156884706048181454736039460922134003532494724957953223723080305783964325040883653776489776628447189091175138848152656550679035334824459102757410814118766284468303029084528147587256811725412283284954908281862473840790797136004425815275697290664578522591048624586380412450876667323645087862592505032205975705190299781691758215152099256148658432585018728970681724309035850152231386261804086991255150006355598513965263585944544187176152326948254388826414171025743568519597495834118822947455560649502159849209458507012045620408216656519203934316094665465860656728265394274599776936695834138401437145208073282642535988078018432839326103639296822868627096904931702224752098618127851004370101868131299611699656762951996778856348777228713307714629565830220486978370388884746846422636520377622116775686944237537068891489657475215791996974661368259615555360364133255865015269250566213355414871310495743106816166409653674184740465231815873086488323531907937328646550797348913158619078469092829497400717273288309593855189633779824791562031073320034136105471434566110990510420617677319388985740567562907306045507719109681291123117854829343161127514868260401608676167248083813330141488228309849474039419855128932631310008241764408132288574479555442950564452807649390218651628483799718412434026549217171174288421216765847602050243254213345239286543741530564388051845731956529944529421915635644937648817285211061444648071132733659262624560060060865124178276853917523134328572283086067189445043914322214877083157324981649720705115543355997740171940012148882515782415894043301444687847573454186096689306419725288588897721317918263589850308327862731700160919213134564300884388690939119859157871119869295201244216312723210343618791295995075626871188325114027758642368887941912014650007013286624100320715345295083914060864406574031963906289889438177347519924089728884337502622424529322151863677535400839679722676151048301818407409490947647167965125419273419412217686443737136033585398461285262265036559957147200689698695257465643614808562135905602938083496434087511519130329056355060567429725661594956130372111326323271543118131451648758704079640812572245690143398086640541964098862484917656091035649004515310932548007258634828239895011459233175702533241637219579404341989918461873202968526726589771469727920311532017491703735332004172135186082403706230440672728323452302853283192729644795349785529423745004420811299043825425630421499967692351939807456601612134438968721440225479332858787236191256320014733484208267173758805676492634614823694652840172223392446966210568007548141867701595068465685032831485241668181211256424902809553007356402337549218130481055147377718787983146159282537694312306973488348432806449807151087049402514185984058221759276100048567291019529874770352691383182134813012457928338518510330311147098634319353060866806790263618434495982098637756063530000118254000676001627879171642629965761891767289832016067677351921857672062750930562356778069680777191575411434815424879191216331394894213081391377378026029664303808581802844210900526191721925695198692116832515314432648532692089433116302360276592713479288091934669519555338724482181496346641712569730389174685659836762768362372695076021165134110209006946542674063200029026260530531147109179438671035063522382629210012642495612415508349202121560209579468774113657591557765491027078922381515132933765915622348161542199006739221461491171346246207251350697097996450444515351186192697762724755528568500572223736060930039104199230734814336831444119112301114207153986554268798458294931524538639834117771633451775541771848074234153652234244720313137800677393630500600825947075397461796078384504604207080292462200896024827763853040488318956759521053023487120930696826717223487857576278642923724289559472653089110055500997469441330827765734871471283464031595367545760747197114146242760424477312010708156033520380559477372875788935849272624756627047063957862955543889956942330851024137143675298025997026731650924838748967799468776022688266872054028725899770052000729861132823782412690410268763759858912925976606887498753710868713558099392833326950837064970569334828603091860980102611898489752799226260109837212429914012473133353406222658767715322586344934739561072643822063751232720440587296992771845750594465427269286715600554039370669951201998117994545046628592874948152240988190501868209600564534060919865837997890028660816299034451004755395164257999547558894288140141706021130087146387043825744916512487108569322197202551351692188984164922503902013414561555378867290466332249851518267765349776280972951403909742732623627419981303592874744257179595268567023877045545448037172203569045341134454861973552066205817522952895081418627388991769574917126810456950549390186375371742636438450018658414954704479733601802670114662718423727287335210633062602788904172977497693148113767996869054305785774466837856704857413720245226966163827664770125774181772713128169665111513535094655473461554821545824913467680487607386481527417305377415338703466616344642117076826760909747975142758187807336817550476161736165698087106382018756571748381924453587528540800233079339685010391022590834499766572702859555012355597971984493961680853409980385788665956028390367668625261729266738732842831099090160295937613650310884250350178158158492890776569840966321695823086320110481650922842791812680614173655330660086402790606976205474113919888697994331553755372614367696724607828730894272071705597287646060767374434163825449276569774391541337875563702384230566784243426783698295453286475281513805145336699724018704277842140716745386145023347858500579257353996076329619463889562278555437299251109476527919582446780536806721600009078983261082493372133273489924732650155693455800573418853785763926547177434217113283119529713128702452719672022691177747090586896830876443574514706285230247043560080658601316279296696687209655512796438186658338333164622381640141613186483058934764229703495003463032457697909860929929022968449231973416744529721601037984146185019930862096052278318155493139624041931754364713556782720065032974099981826384721760165680236636521281193611909212178844096991801882271981095111303291486519284441272848422901453682371352224433070089814759120250735521955623585876402245601445224652742518901258258850980847358637685386176091750885355805055736112147226807423130208767156432993711702019184187636968622690895235576665055690677248085332029441297669553625789323479341494729666603475997274369588851982930164594464041188274377315993592621965932634263481950805805429353400486071570249663518817116158819526743094161686471135314759035359661346892016258229267145694397019965818318043054237042782652369573277796817389231227128921544704158342336167099162521586103144027482411856508353302700511219309760252353895020108964942069177032045468467221435679228736406917024625183553638047242042507085575838715786448551781076705335584371918338285977133490474266624586345027931806796219416306437707825197334305219814920708786159352575469908059271575927835913739954996674369612468296866241485417199982266798115788069993232932320313029014610364491826045136414461228920980569713890254118642298182403047732188396868315926635328728754082248707390687613708234013805688918994068906073516755985232717521412495197902063551755348109037428825701884463904170811050302662030079699026323450713363996264392543679568467409775577610871248738215472634745011453208554670121896736075035283224340993825812852581690714608558662554111791164302051737066701547829963603485609281426614046601396903316696501367356171176509030443436414284814166895924372025338860334250653027842692399603983929980127115334801469172972962567530422884150181309178744115166535572423640656255148070463798269015504339506888249001359872468242414279638553503368645426065250420445555441576765393662786163500824996894601125069634653711677909496216236468773235692066386919137453427641644640030208062655522571479588037825647674236006024927026191412271629156344644401402119545771480912727237187731449186630206058297142568197380644598307396901048553639951277034574364963015042643762826826685294374995732270475641083206523208476859397034466802972728012032119298600106601787397088051225811114681553989777844210117623308722735619733209164814167905098382025222969312634610657157822490018761794036336588441084545040556430068024159133599347332147331157670037999246017542009044553441766497507748789665970206543644762666239059453430338193229522838679724107312357273203662896072139509574905262495308585118355191462576186212106665320510726010705656594207353448297471061388424456799815942024153776877915963227331615927560659653343368865515124815078337902908616305367842539945263322475003704592726746087759522281515611625923699300906048160292617216742573001770928495024851578303709332906721820732944027355703421886458487316361880774621298665734543439537939110279366139202012300215396604012413826959130873152021993103371164617154383650857661447764592844737396496768960699102380276925758412563042860006410699099258594270933526777551541537382530832370196949942159077932269821243967612401562563828230134164835446175742760545104537919001419297201737607237834603010311764148568034173838893062808454674545229227812742452047162265331925563702553444589057984917294347073090131047596155217316752488067308121243285904978552261596999683792301627602263894857592994824644645986893625188496192496239020183880934170660703136400016880203532918888296997061264523759924946297602639654056271805901500504772299416274042431294887687486818982408509991382180129446052946266926133224365171957026044469950386737226967054968383470044379413405198953790652653469033144724990209051907241595509231355865559682199658952912225886362708473305934233060337507106418314818206182685245825866369461383724451927379597205719390366313389432413358890895769622925971520649426169288304519539878084993486511151826457299041372566356482676916267230646688401435694925027331828949405487156577637508335470266279399419535785984301849997155202197502523832984739217124735962729859277947473939139849844651530659668357416164888613162160909930930275699640027501276311543364303411112343561389365349934403973858624920847986541414248477895146919474977560102610224010257484648251182604238108836378381036878664815561142103660460514567825266663207399212187591277703453444505677633813938718426348716563413008869321287064221241637684657489965759267918989513452651591465256178127328648269712109197191157719253687833306257046251502619853445861101480043347141328436805772994155835517214949405322942410580795980742099434167187596768436981429403024624199497071833942878317734342980572010187120613478818498742173162606554365907844933372258233311091203409423484003871241435420791946822809148272862104110236999134285025042541363318641646212387589056266337018849703821513599155552672748260121685222624706018703938382824196542856005119772728410679512806682829861771957786811416114841386725097187779031840171336991717958335620525253855640253545643146942874450200330310169441750205253988293693173716969594659691786169070355535891214457984200243832090399267038087726519166583013067081734118330486109523096459691383800244168541646155156241305824151604364673925634782757103672394553201435900806781091640474816741443296576975506765395120468287172735827206418542466550212761368600238876612614475399431293382239140044730078411988100448058686551455537401448658668988814848835035511892163368637576338198616100070778231633284621505749565620610964709324737838341844614055529679033378214563724492696775331439211692699616042918125215591698297250648701091003441823064035462806199589911072457695726773979967751508468556885005482626870131132219232986954179036117473611280367266309570260110431858339337315048718236547171316760237382809141955275587004449764015894531002534943933085252037982256115286564900162013464525203013123624679331123195482412412967343612740235754733239743219440091100968336975147536052456030877301227675367059035690914106530726342797459249196637910166042202918206535296615622180648793536279429980717907251053316275533304865936796484743504700710137897068991910911925231732523475308013296883312624470294753770682804660196530222187291200524032878131852365281613528359106322200345938498821552587053644563465251621857307518798812505520262836675390545537823279421671369532643106068253027239350802479020349488230717954486489137753523978271342629654907963124639537973648203301345407197170714573501060777378137578227781480108343474425314536393129811957308859613283963428606093629334720619374359378557034840469951918865034890616876010533261015626773812803509874608852306887363176813498955567140162721843867131560697379354434268318958745947768507992995761355018059652330475135038732532527823745637692940134022159354492370086241571702244683740991878894257651561094943645378335977240828803002309517019024030260065103085696193374492851664810336724403988974266778706614727851677935236061698304893862673586180995112336230217454801778096233458813791977058909906215857732175655890453097497685290259697840235862891756752899865419985506238796030230877902032280295504810989514536363934829508928721607630372127521375542650377890501555157160352721390672385125597698104162292227797978069377089894395767653406430670563421005925330843612114288742523848407601055448040793984258892794809952617544059859723503116477641637682197985666777898552423894605267692586521755796728964483183524185242940352704416891362260373952579643668937050440895409752451860978234493520754778389836806208642887178654069684739843696298185635940254077086588555862562752893946451475948662964963652073906799083192359912216037272802279748233748473606900660040572646975773422001770202855523569866963510836005546257363849180335272512314638725827197272729735139594534101636040274354545341848047837115293331036736132487914171120307414984201595625340733226219506637366942760702734647001429553162498996589252908141946174846157235905142329402478428450306630393380244141845010104658179944094694606573199974934115771942176997344122069817570590251698642462364408521694899352215395908617944268424835328536640132168001473283216140538901948133953224737397599496761902981945597283471608646864988528771661002670410237757411511016650939684102742900764624307809466010185027007427934679153817751618984703578934341010821082069496211980056117480361690746476091726454384609852914833299033697215396913565200606956410848321251849687505299140928636590642281049883837461074068710112897821716406623185289871727003143241158909131249153039715466360915006580198068485463127881778599333495574291043288503522278495870802996318339218072749462524559976984815567413562795403832558230518164330316566126184306522002187551205643554672768921048026109651798946624098472867990038605352653664588558177302968476683010139431679330037037524988667239888616034388127479466318911352202715569889091695050137027952784446944982821642893405062767900977604331361837074666648488922405834386747904578759204106795271952285399652628608859482628463600078040526988697748251226709232338599298428613894239270591980749445703061399837181156985778643365008470896954511210939045546183274747383304202820928687297599384317751252865626735730324749181966761413404141202798875019526698447803460600986149752448407543576483855437442356912320264093052537747516837800553577008058542531229602317151650724406193670462077250158875206719531220153948665574332268230745056486718667909992105285959972579688550777445584077527777616376263363392216314218904154474200100731969623452992516527338154189547410337332917563439324324005532403089180440611422372160129262099734339361828120736276787958126065537231194330581293632388506337103154516643512176659835273117153010360825470759343698667985904152344252373555738139310152070652163103059822133869139075745936215291602831505470969800458572072891123091180469487865374357429996534799591886923343772865298722749301037038479548254647829176357166106991286192665699232987205998560541564947181956972948905782725223460056550490168077353160402091497403846327317099291604064185654991044836405983698312756460510757452138483196728812675891788113192464875831662657396888352235047164042733167743117712190721430726862325772154479120282275716001485138218113299094533422613335778022638889288564214708988303858429651033236317799512230122876871105471844310057181789741308533233333546661203721372032033512795718126228946695868843155166424826777066398624295158529642833242613720312698273796230620971332430497066087443345154927491857536607770288224985613415238758124149728278533077013366072543040657462314973958386330510954105435342048461483001180204553529418764980155409665329399708079606792674140379376613754583806713701495699658670472729604782169275282925625319522862117617396101153368081649966962638884201138286190251449179414016610006801382197458961581611595530145267686899122195509024804281704762444970682874651084674526326739441463631815600157410217842867293908559452383293113080011634220298205361058652679339085120400356113485652210950528452746380691707062252964346045478901515085971358536168692282278387641156170809953119404302633363583157539838719580111492041745184180309891075963032759411610289680835668994186836643596258716460672052864540393219456062444673041844191370931513067320218906330476868310850799515610891721861209820601204034429218971528801177907847321031134505688859886514976776925525180818103168120814308143014877430025878223603965816266929438426514775441045188898146421826100710362903866425803007217328780708408463679810406525332458685836324421625800015922925696225465981195988370527594679145730868740180889192833864894520274316955752190875244178366984429423630455788283767500646752794453274213305407437203945699403803759740436909720002440504255029869498370878058802792117171286479942127363255300975576607905771960229773932623154413424507903695214572047711720250349263031966312958448722298177381066755589833489239683100700939454405658291853119672082491596234030213165322126073193410798753554114660662660571909915080386867671994001370525487205830864851229281566912187030265074308592759233387352981086968384597043684243746841954520366225518123797712020084925074328717672326680700984713013353883293692011556999720594701215997501479231199418545646989253460126289450098775317589545718166052047134506472074875548594269363716283286611212706786218773286758974450197859238011222095057111294958028303653549773167126020512454071773090212905785809403025416538993595498448576184273459858549693980526097396943269786873334598709672495388598586850472706637854411592617068065126202600950890796607620902593767696657411792455522460946317178500743153087548732718828172866648032411705054187557300750553081413260298685979125733155013055480699751645688854691998825740606756390336556937436600532017925437687484425162523589560438575417346167202490257011868693300423843331247061192499902116589243650764012033307856209064154620382222219206502749568312348297720645314529379401900099883795381823474731199310088902004581835899814787417507821309431069044785389180631682187275704961874404805459335805553513817050076132339876391999485235541706602623769421810663171723768059306455704016781891255019266844315837658192281534727030381828230210207062645963956541955697169770121773521520049615999389550547292182902936213259205746118954093531116932280526381226436068270498819689766346844645541818555873983350668855675392574345370292192259083022593414443534499898355826565559552861909990983544350374939392792173278508494041126217813426783890964432042946186687761696129750494227877856837455448580247073882920329075002464154029618396292622317335161507381665943712622424015591032760421765240358434495814522095665446991300475710788867814871506066464653418270060087003968727036708614556361639370043233394450953943413104554450116606856603809680412316489054767685621712643301323466577986055030890181977752772357360442233092578603870748930997569410368971925694289758671553943575358621483660851105287624804554531350698135366700728932602036126438345750263925354747811538157666297688355514624704940258011620368815148115542537424415325101004667155292149724481442718571050176981764375352544880055467129523740362930340880423351066863024861298528342278593795778311994239724412843337075396544473457268465321804439192835046948538957289494851735668513522732448797958294786847268729251754230442872213159385026586258140049344689788666556454991254326083217988391787642169453914507832337525457532042845155107909044930895900378460346810256030395171987340225412612539104365773999749581474984913773865378814980791946607681134789607291964577018638391782186561833261229106280002359422603849614501077724794420653125602836489251686462252849315918368843479814155135472926861397012337434354803892526367083613696280887922340699869766581494795930026521073556153807958384231313194432866051366551832380933287197438724737768436584241488923939685742372082933064530752438595474598965292074242869885047195526888376341496453931715231148164536302381679468839841655064435727313383368941672792773292272828704315124000665080473038658354809766738660627252981569567558307512096555204755005596273507659622033545846434526577369945160083422178961484920428602031883009042043313133143339451728611147148202685678196550885091530960079496716170660331119378560313421055419832446466821366336736921729059456973436953880283928728750051531411475353139633289204194630304698266710105008510287205788377287420887816920789500181783205375594174536062995172514011348727103867158154141616143060484903313371182548488209317442462067174481140762783243357322557527582565764305230398336160774388474698277463894667324431419038530447232143104173059081672463643290910994961226728492212347745331376542236140684441845364272961802401010385966949289863698737047248855949267612030504751924236039178064740921980067467928517024408458222404540527265546814481879407975032006011433734312322486295624575975378948583893715544208998110219820884373314419244601424506289665655531115528734118422221686032927887446175685736451967243052277856662154846874066787601457929642421704195923931630897124195331675160492476346402049927564086738204292328049001781672637604475270226336525370705103388789362195704700627847279735334793756560876835714198219784475676259874269835290390238500375502382999604875666749409264127570252700746528427639817547637367914068882220078192000959773859651584716713732472892658407332791328732580884459937089459946854398916307515579855272516869288519382288398312172564571190287876239182717766607130341416798736070843743880029869482207906305938111856268041103472439548063290742541888751755750611565683395058351635165253621328680242680527033302244088320302940179832188476964457506387032742458954656280513496046242934682996304855489464191726188382650871764580069194794534449547651980437015424517099030338140197215350505461773929588914377101793954424528511336807211160363728936033131567539754354400025118683686463413266691631417165018135522848541782125505708684012580544607975292836006567365272190149213073714814465781809077322416085629058575867267787960838657510883117100499265462711718420511706670043709244865960504978666258147605378479034405197101881445879433328231812325447576326477642743423089646598501284062167592846016051906351409957952384706489840256611663226193929806714033133140652197477966881252186714305457725545826866484691986220422596577971936429053297426330279101342590512547663135538870899838614329973058829554281672326606705211040014262946595951673341752799959621762556106121525875032405527357336106493346488171432342234672364593985976156311828241573950994900696555653211986449205529024366439869724216033396163610934526786694200380614595662965064725716207941471654157300393246591540125214213678247928017404841637941772277605595415382354456906912786210641785999063561594157228159444544314900321604486416833760968362726357130334266770468294389846312669955361597701043854862583754729612062781584813718341545595518538487205469582302610600076187980146638256497382938378631920788086067345826317713565070334209655321350101229293956648025771871515508466633483407493731748287535300816201444206962219978673127429407419053556107673851981745193848897622151108877161382315649521820092880139197454298857417107361179989482665046015719999451344499473243636415581506518247371227099420721604810929551679991680141571735321756430313033082064177039433980860409137217508499124173122749901222594449111367533813514185993927602969715437399125707203318360133882681082693498998917424194515680289422148051332734363211470121670446524997459163040814310405691366799264291094364767685638084332715666154907650355097198254874269477815499444188027753142961646981170947706357831437417606894861257111771289356050931136193445060116309565495684131871510217331021283218343636137613517432439266316480469556224557104955375623275504966281740778599862134951813956252422772245318419571485168990124812948515527535513654574999856558441118394269693792921439076551935602305624116626593756440282164496552565989894925431421605711940857226345333273053025130039295375026564872079568389104616819128148912241518557567731792984768214891310925112706895492439874091276714431903247986109260245931344457580860293177344191612902816594751381638885469595659577187588561313580720430907461442734655269754857143857049609417283268730987184876796704300702651477338314735075345791199938470682686784998793667189095240822524958290032156784553151732406042308950937243445192568545942130326763133357850920658861937302982160257999408184031507521574513438781412971987951346956072130641497068660942299372977257826702288689007971234049391841822738989796685604011859029081839584928106472218422741942472951716952538663501913742009570992560021358711889002088537411477366687263805507717883715500883950502749738152064894359110903302786512555179534395031856043021973374671188101892978364412268402453754625246909937921087640749859130087876433681418433850834108358873385665398650232945696286026120478462761710776877726625381180989813750085227800793659988052424449457056345426686482489349643469077261398257152283165822820884266865165408636428205824481324246017681053484770678793566399124325920898629304037171155890078888541696915969497588064079184423980555259530139415865402604141393499132344863758956689812552093560519447023176556456155922096038945414042866755345103648356484967208250828505498059053000886504893880484477098124876353672230696553575339407646633558603086633628344412079839650474241427185163418821788728165495619938833231150607843983423343090165019509746900717120469194715424269206332748701639666158759723098789011457743505069901977775538109615510183227802476386365079011358579418383808817765484019346707245965421699416766890376277649432729016073524948710576672001382459867341093905576907242767590005965556726967079171263256624536585512870659669500689293417156438001575464208202446421653714159858542789595015269290708131051778317542288644877398115904264548442056082906676197518250406799026105620247910394302519786247231763928987421537247486898081153768197759479297930873829314940974404760807739961745418203951512784950863541008764667882159409957590028815091233554587250678085270551356774236806566772748939115626292976409837791708579126406297308417504240283723856872590906004910522278611534491883490178620589397992561085162659247680757851887598082757981079203836021868784799052773978753919921975715309613926367859098794100367927315302585056926590562298423677452426017927798790780050374938815555992168027478105429764959184948859600802839492674336889930264012429781447489701471731824164560805349614613386689578687533161033957671894488114848084660192164159028614335934373066529291211097957306363852621069368765689723125744296021980488589770236167051688347247391089131832694164853177131123940835049975162016427747549472742064889137389763656369162103339057516661871802762834267485077688901142147034776206731126781798557906696498748851781709849777216791862100925952338836347698544241311506128614044000391370818020748739871892710331335354994944972077596722440911882997478340669344794332720662056476603060040083565165691840826596396819355449150533107159591375987014505239880113613305609966237104737570543228072130231799996474889239352359500008725134272012182132966081679992962895713331064687836585621838849869009092249911384614688637527770594291721881506140505416847622862465802032529838405802815469288927303556633756895151819448255927971627647984938795639733945109594506772023874847037800048355822999024630921479238178652909219033757091157494297840773114366401310495072471067911270776188990266276896822026831528982350066632963092736972585109966417819546329734945587410145602628491228185385449681752200471809224823413569544568031576350254918244247395093488669389806675609034159251024881619217496673853632697713925022128183598727745131005654410376908893464934542853613938721076317394271914072859370139182672942483185754389966379436600331892709287443979391097544612126793054247246762271600380693089564094762073115056883847729239092924528164907195374932488641935843449981717389047528167167188881502564223843408644146700155175181222099450125542345701932901790940714598295393214966752072958694516309482445513933447340904250138410884755562248761016119560067904708939891726567802206897126818600161566918552921982304747533900521981114505777862873313871213566889587087027940799697829526439512303443686453980474454533539435747030889001914060479358335752548162941488667847166706471686566413778725491677389711171881943135904872652631093317771093850211525160628630817206838408608463209256524293316989702151490577594839323767544738081397664819276730490252823571960138548173086987765527560291958990515122142909782577163853521662434499260701313943261061901236415255568572658859193644174987814302565559035062942415541148263599214496187524625639769605767586281686789079101426730400468509794496882426364718882938337164539127806562378220016093425167149813048906058840549953264626903067681982059421577038026428778683157886906714459318694851086784899541687810202031058609295779806424472035954994824895855114095398839408260147924468891003611581147714826733242636818208712193872182555763509036394947717361469816922287933395785921094309223071536319342546780948101050103352465947627525975285431023458944107812635650771380891503352253935952850746029059171596764066869812954936639029656294254870715794675946452865220387891234140479550840852695573542216497002066365954903239428859306120432914085923315624398528006583200249263253388667193563299991690242971717359536880751259309908622807461476084487799361864974769308873584168842055437843184948034559353195305010882193522424679131519795049408195772277044123313524811963253337540526238428803121235754055477096044596692771030677239703619422948909030320363423899653387313541246663155529258822004033024054673030287337605636852349934064889207587656439850368850324004718957371696768200890578026848751845167780546267535330628753170734133320311089900156248591211849468684375432370431075106926945385615968020173605897592262352336660570463855087223157003860100268909835180370884996037668367167039743975742198628750300349988989275498909231868660671303051625602985609831295681126087285161196589335913622942382617636318143733889365998991103229868777101195539569422441281536881579373968888852480519413970568762149515099446120845699466202411172958506149346210775924147744480337013025792704012171157318731406339229079217705022753974406486542248569151548638865530691968252016832863151393878928928835561015895196255535593783561828363770999724856649949348303993307735559395631147815806317739559023898304669521764494199570512719576646526666339888438356779133985326103560586343942662483904912249056789730149015537947775297381194289229944784077104847167390172954877687956657133002589733140223244933105187216549973733891890887865065292861512858252836197638782251330402678376883758631250843275130718369676952273357996405496836854558695075442943857005617865655380193724981236774661973765325623215377195365919591236375987011047447557410584506853218405158358254404673435337674128261359370287309024556793448205733535945885850388652518083769504545894874336484812448812120780135174402502395418829776708439091603379378919947181488948116231280727056204432145462257333950228662636460923895005284358270253142335708172264721952657003501296717898017792130571490433077215815705321661428039648010024872559659219810575657993879712281909664486853703919715072708602887414719607873294950715953624776854460977257750201804271363672056188068385444592687206954798303135842173499369948749962829818409452157877103520947175799816153116628321485360274604828431342859182082719689950212441688140018440484365719763805135641756072030106077208611791463914157530914188972177667018987923267416648513566212033221431101679103857241465278782270551120480334752989865094373148849542305766877637591308012229802783406387807274963956024334132474720997385877476145997669318248696948846763541392475251062160950977492884907402845461515367916466336005878594907551906337567514901085093314716461483628365937831683487786227868503011510177607265062070986441999018750143241005610211378714079573706073708166276115855781603693871375316003947300091300916116146574535672211776577044330956024765809289299254373223946126309660214541215345765632283604947523781878973903883083065682877406006632630767285870356799064516588826289883113051283166201093263688236492061461411557382618690952211874897817847210040139223901093115269195534140909565176755957421413714493914192033431748253800802744399221815730061263464819677595746702133320761841848435343269050792840892568605779625739976939627680662781060174014662125775633292469720196053592051794401963658776225780172241384602746719368708888126139733472349011852905832824939901606160469462670573097899391426138720213365522880314800170669133124147329503307302096742934395562816407033544833747415405694363176749912283507384711003236911434810996282426998560875800718808233160825204609369245634103825650030412757439297147908252079145040184242691259227455646482868913167844313680705300995339881315844337347538658346559256616746372148012513426193300185608377270860831337307611957508526572426140876969157430557383035561139934156553537809144615710813586505427571117562833178712663976952858332787846884954039065150956092937690929913004444176503938431518456849124223856227264241238938386590703421964570364077024956701377339158339598873051145612057878720196256243409141778928805706844754362622770400204545454415334577216576891498832495593531867123018415792914160637235573947814523455154742871630939804526553969714910513353655816635029831388967771450545798059249838905816803756477204787635078346973434695915545643236259606762720942357220670296873520341410659976357620090859116955017451611654956394849600380778865746632175811930358586032349311245254923426654172716878841362650893948888562533477541804319192945255531888232642924238307493135737555545498595695018769101457065916395595111888990767549226339404419979823745671806698929457980716024048554443461304370564067601047498236894560095586793484134190221383007541622875661945699511643526486684212210277414310457939093772101165153578938337086959914226361152878599545834350963169240286448507128121318222968032758796679050813393543638072434996150998957343278403551550796806169394466205654773942658226506825635554042787991467295687847820659994011633020575259609519287074376037929487218195212922791553089921847620051745504103583574006796830727133225360152053374848456259043906778568446121496909220706851937668271471891062425164091084426132814828388452526749704774471564845435903384903720769543599278896617588543124519348039196697788400301533195134190199307517069238295775794049151484800848393811419936071991010229774754955706747979788535063229216992655948820248828094667010952816912347395232576950080878474330355710584359506285485008686465670383059500082247727949502774360067955443555299058006786564630745933958552119921138668547933116954820142738122777022108664148188607619164256536832322345959436550251857576817816911360771591501098576706278846947917436684524422306022585680040862388888660468216602556546402443686126085581323879696340726784652386400339015421471372112040833652335347577364027634173887825931079431445034825700567682298616304710498925177080634794687529644403584154534661032028375792827778949373871267484220180802908111792509946973033004307758583086309465176289403128188068250535188970233424558584980040235684093107594820965318395227581228473971861611048635710684670207825859989660542556831155353531214360421231527346477253207643094613919674382709247429364694390776427818933873342909581604747628176945251557667546573159071994565510240212659762894557693755637033305144485929852677255227321335794677668599453981398454526772258727296473780583852671287226984210445778401637255065946907260387211184326722276096983995795746726633684229780140135628811804863137928305025605305500810010360610375640807148730962582038709519898675710870586998900956371503440009531090107945630691759312414724941411280855376237567218906439960363413139713558649702696909289808845572345467995904532629586305607833180189984636825496600140295117032982547551238920777437959850190040589166065741214026924925727065921321097942392223631122215707690507790928501389890631714660110761611624681627630258413117616820928258859907397401216003703230171402441342924043848719777241497181425868928296371594994624032431208164707766191423324374720585333809783240534218363719880281778446848671707752240284934602396630310355556307496500552894105177394547001708184848918599186254369151465757899022396621200534896784555197959544781514976780867134263783080623913870040894235586451200375871436688781470091749231895999899418979898687193663243810667639979703071323474711043525985895814443968704140968069415640635888017702139702347125265427457570700713004853843564678588514848059297625477884604486306383332274665070473102981968316795267158498813916613001808349513488412763160752951662110263707771239235695022505373337791737685298351613828033644605260519136945117762445564730961338139193531997828601689462828426454568189965909768882788978595658230083781553675868938463375335319327482733448038063060252260897781140118283782005152679619393166799611546988648478341792187990805543906827960005370183829949754000575907714049486225576456506888801745365102908095501303649727969790604064838188330687569150272754822694498053663712031199465579964625955061040343518151926402348612819834397157113260840240808700667756783990740032918173834213595627574902773936615935032680410305988257093289912014146779229849922691292795519558204423595518048508571085877825401344205245010293986942372757432928235101888338481774090106761456901464585429928740306216846877176166383552103890499638803013978869086239037105979205481194692606459363290716440039162641656441176218396849698109709905105626561298417890141785953281579577243677556223737796477999592838230941181722535378542037823701442285301290219662752641510554741978769727144523732636083101918175408980153842929645638436245228403263691439548551737661978997740335411649633338686576049137846117084524841543838057100648744814061532793872932713124880183342697126002810612262428158048090949185112387100377978055040145755717075266986216559779982256518338604305950535261615708207193315402829753808283410101764086393708895722286852040075205400575992252036686940651894218894927671388400718025525600375790021135316133244638509611154625993075184554499168744807833376995958841352616701863842066474682065978239737794682461549343676105606267639900493316919017331930244107081270080167713740081938238136885180113703946138859680687443728114239505991038273627551814912712248884569488252675674848882908219484017021191319019588674127449053605323210948356301020275857598221837213331896896620933393143755128964661493907247637643254985866425531574459734147369518180491683954031760142211275612369564365905963622498842327563902663988751536703193370838208355545865654062167867911338524513152795166340323953368018355185180963472731795639610003614672504769817707942170945672079972848767100024497185400531331185364318495045035634239627114696008399957977459416990611853103782343407993624496777518905280373528452847916066127089610834995509210593115516157924557238372390401794848603974346894018886378345749409537014982277984433844618923394520729818629803853871260682749746985205997343526290793631320771744383400986196348299601580603468732327248693200265606933897695057361783767197764900062927857659286666047329969344876943349871611570834321418572067729774050903588072300184153720476289918710743180163636555908382747302984966563890678817987101347487560730992457610163931025812881826186670978575267798815701768430339597105637961244929043732765641221944715109243043676890487471543137413858053429250270345592751276859405535136063306764037795306889748849790200333947748081764900008985486040985755505863162122628331542188385016670144168702576974815795992113274725242681954625360670921310381796511998704420493743272222801303898596402581437636530471591476301637859421436628800019113613291624398409123289633353014956943883162152835936347070018630858804575443855948599186007263006612309897780157876906065662527058850368706127056319361198419738712403280252708799697174684872971386709823533342615230813752473208497643525578177154934434649384544632006264590917862767754660487671961101376201907374004104393990609925091428184565716109518846147340869005063109697276095382705398889050582004759412771289084873421466300432467204041713183049049610540789701708984580098983914202927865430656953275950843787216423072097443218979361813237258115194480184721423478900460844655628137714843015266210970545421964499168749540878702183595355815031717380523199621777610892500255411304735080368799302278425875119927174399439635426644616369558188276089769161312577296037644311438057109547347472868262369449559505912205238414760549146278102035469124640560044290958930967992833848189327544678779676724334225945936369873815608244173613597388893220760555030704511572625635973164777449595236763466917071443705435167637973408393049100019791322638931783288427718060051542694143143017985675994934925174192772963102573217789310749918783613224353997555838467229269573271436913014235298354696653653312597313215159024895390829258313859651172986907488576390827155994003670618198759201277866220328786459848184523426801301079994017720670199884367547105051261010090306361226179144678275825820387777946771942701602810278138966245110703166830156765483879246557968547803306298668028351138775619995312960461598383040627997515444820378400390012599654454822947011710221828150128250635330599218397721010666333657620594270989119544013279788307783008841868192104581109790006074193889899185861324787336288737321480181078117427177104268191978352115778621956171132338804268523414266648314309598420360809504609710392918710126983155630091656512711766772701079080308804850963132360453029898802644204521865106214636649883500867007583805974028438451248859589741652506267894346030854764029193801826818377695305192625950146555053068987722277872372919938674473965782580666254587112502347928387608864860988735751944476354971062974175550691249090466329789212333093426169884905858855276406531741282751883867329707080855841510559277855621133186545741986709408593613976258353420625495844758030834131500911084709591563334349717038335330740415187852098606120545725642150480179036599021601363664127287261519392346883628953931507082640905597752898756944337236574065239597498814141613521248319577642466970845037685121000165833258447418522730176560101118057393430183466842957542412783651723175385583133387260511035811998810397442143268245970343221753017187718963344664627807901892091483632426869312925177508868663596947640876976727604565036402204646461371479984676907690479115313206661370579394967704729416041524082826914542973696995386127824180347541604712992393592500915046858992040116863524891104689572977737439202834975700638085761642075276834468823831529150316470768213150602442450357837289791546324046985562472748347451851546367112949941831979004522524060849638466862164320525350017882392299682621042484373926479698426132467862349480975028723140260683168581230382033757644454829623377808575733891162453684768566548737492864609979476739450628235498565944410545355488193838891008419492037434742845747625233757991398914856019453906591564033906913998849243268356379129422411311177656780647609134901160889790970416835332048370660809791580406728875551494132029963046295770297974021075760638730929661759853124605301631197619557241031110735700739903839243790139456759785671650218007153554692314814700455963451942876489084205651757476748295596726713999372869525775810535490430464710546978033671494659210907205063914640030679374207992313569743004642534701037750987647285445771804147073968781514064237329173959965521880136355000433512557345358017714415475373538850872084895055277272664424657988314358323902723850303619549837646852015576377790576179646086875681366855392282949432503414104030054605213907624593891091454865553556426694956434662742366722199941400777721618023888267436586957741281491054568903346448784312769884706161371218773212339312723980228431554764261924374386767553955261275235618932007439748574065654753613276742580768329079380608884877335520507453918128217257343494534393493882190861926380458202869446032223336088609519481979763933600402442628243222609797774280688453326707327805243153252408988688694389262761736815763976204964062048672346446185921479456074273385965382967504814910610975663354946530265786042874785437601199674966178187992715654581025971138016915715537559629990533287713624543103244635846424849883324180117366605249570342070170905511913059878769728636460601909975459069572520737257535448464144026195749497235946745205314885085631954019567375440115832344311591976262123717051789004568043480718894851208901377508213545269817982010544015690742298576944140316880661989853487092812695210857359702888432324552227056764781342227759435606751088825857840981758938256974041509704448348580241778791994925307552034822965361285691692418188675970085311662762224299832441129779423308678309138216803852582592458406810598367324564159379075745551556090428757755040779046648437414954735140322406396293731307573571289527109246998480741023581915829715208357815734537257090098249637000963543031732039489933947237369851176051060811758868271868435058342859228056412681659032462832605553264808520786296963936836311900783347177174638439847015029060269141867548370388455888810746161428843140692548520461782243463990971855123925035336268319971691144724836244163680974804545423147953604096641067385506479691866570846953815247070696971816443124356372487345811214391895769569369622256341151522504727726717466576860339593071129890848325942750018559743980765861983191155651731976089193571753770086708433968602174312028251450773208041156752535949260353307582995161492108051983201345893572103729662166845699929640339511902540348715887759981493531244049102142371153200366301781818426492315646678055318339338279821369904143282733470856233032027336190138569859020487486998643891479822321290811911687096314056045804287486894408579623317641528624455055402592925126355801301861055356396505698286734681052874528508772205923354446830549158487904999424561868053551462328463050638085862042864314084094332281670450060860375798199308840669077689872343583030252525802853657775772838782124738684191242387212113996310504269966994025905435419976788553214618983154793313769806283593060118617329173313527442243130779467142466595870164320096766848138684053840616518223080038468436961546382885389438761214538494897026437340457449472884812245168834030396829492383211761750332338451055379503336216202769625445307573864026100916933980253782420019939849833950753990649791585284036384215275922148955908386001784634970442044014994994876288915865106905709877233401628437353162216951580403919876494687380589519463616572099027762970220526807795618270282421554182746415515275591881644085298624519166834076639950771672713373401435956377318531632768333673624530721393758283429815993797297382333843317778873769914894774181588897441147644960630961706367324465991173882008583370452151517553292126530792643065980577501442575588992340288819240968638238719469050358704669183110253311285149998775688523188335039793079414054083506959462141396678313061446250348605830295452602439893626711620690662010067497779914658190687474004984346010214758261022782062673042322076632111905696532812474075258729666257471807877306106530292290110605013210199074139104054437183149201816482052932422873891181423664400043194755022221688458336997819202936710430081316112104512360166857606314420318531213152442971654232792097481601803062262313108705875854554382697731239867853507200670369921026869836939087899910081107373828938580934605771436832288919375939139188348064875879814915900197215293896721920248482044559631936090487236060702339858598041374450670176772912510333302303471403111611665198296922587004090573548155972972639031869415542518689253739487951601607756344982613429799741327272886493023233353083343314251030474833907254896658818170047030922274174579264782750515860450780866040867830330681999241672703565833079935392022030643364105402909075262385416147666635737982519951399635141431770605982123934157944319455020075261195004530046613292996283237018635382751157171790450911249675570604795205721424043414266788322695001518055910474789923128761702776018789018070514508961491994553979501609953014138788583098986654921455348237786714103943516482571378539373016262786442765653810688941287918919778062865670633621531307137892747406528231803851226277268450701318976307227014454803197948269379302716700975545488303809171608932898321340574327221269886442885640898232273578085988072111338487431265904604780161022740881647404175513268523723054691959031576195927626221214084499573560274244553438405041149189078039991157487792112259115234829611685768193911288072322006766363463128900881357669807142153556169196274593578052633573023447656616366798332082716074224164699590441982372023760416377873985235460776764751371381040260391653721404809653352146111229247668978707368121067341051878463528777864249130278435669815948703971064901806291752999692721103341253693970256064435455800005645977683424806177811108175151570999316122508202587057887366620470727843962460991961573308365634471743931224997349369967065519281269993498146447623231196701657342430140120449461091048745474832758438390712867848979398163115900652445002515238260201987843878621661844963564546934153915536425368525860955866428409074814659512318477160191151607940431498211487948475297753987999007536571650685664058927049346902559962882722611356459701701939171608264811464261460838319930688052569118069162346267054048669786609372105649707934505842800117408991079969225479074040863281189868620988236555891952615082894829015958455940512070905079700639184777752495899846462127761883500955924569057815576420712957145434619940571613097649154632671093601715583242997387527509303350479829646098843358797840570816800787735801306538452287535209214755789037311886389695118783426441190273495188336472051292783888283262364062237741263610354079749999098032627889887686438959589312215836621265014396461881572309399057161786520809359013808932407870175141628868072687141161082289107363944569353666720372260644326697442128579139333524474359294954893273957497687267694732300899958471461618864331620122650539827144561870654722724886267329480383086021420418364569089990601094172797978866314379714432827988064611164132785328411749645507377951788401917874341334732805907552275245499586639288520839213141998936022367824839038680089421197892796331476013913479870008042448902431272376976662947448740547320796731603842641932301635074508701728800226454268659837948111199123594054975272514288380982875698950776788926651074673989304615164647312423458355471628017338900450521523574094269537982043746195299297185198498347752855568589834925789169015116436597685847423023550262248291368122496356088825055985456162463072656645469415321314277311823638324423140730480355743386051515635438100174856309850791108448099388495512795309168461445820725435335070841724383778152086601828126719731989961716056263090917854745672947781922706458480005926651347492643838922461408778010522416848147352741621889836330497450293970480994996014249955579009238991958596599781576760737254538564160758553052231472319243654451589297222452217507884216684742120470725983163982567629588857161644646225344421145306573872999870182660170406265234178697128784998072997851750954893868046034379299371569720264098764608150137799761474286951214211655921075039653397124352497124790535133239699395584605050772406797986241622878436862775863580978958235276957735825279051805153995569447014890087955742839961720172081664584703109371281969360243070199040492641819805372921834445135705046050072251134369118575785667403458595758977906412535148208965443030834694516642067172876461911108560537762896544778185935829119340461214384609190906082497275079262169340752793889900661813216086796402346193130967496252776762830799167150503833353479478495829385583327477562612964808884423872251120378849456921649014064044340797125679215468262347881238130536945242368122224586631926487372655693425890630032927748204641391484481504365928786320355385286664300550083851567233518247747686694712183644622828295410863759302441848895519706396593242306057989629725651355878156174921874600368146166573169926195096101020912638264943364419721224696864055913496423331329798482036451523323047440412337109383015212550764245108654794691880335386053364121905076582006602501710169673680019819796316163036917075047016365193772216255828766870340970569773645999221305928996492083315544132194711163253702846499686115398848261011901767818274913954221822019894413534631601150117871034007602813320398575398722721147130615503393636337343739024988148559321432487162416263737264056961384393913853553924235938293478578905227112079463000669479607108803820867965618621390318406038779337222967260338383240787731533755133299442767551037387851542479670512897091140807413103763646296839166083309899496563086455111996838300270841738827045790793024978007473064562484202428964689390428389896409573776541233658791935890069040474180007734452825247964501233147373040957390321809401031017753976817051850709512286053436767530894398504251117358775857760656733317825676659292694579298585400860084853853107716447119570165153964674076909707228779297290691395558596633192013457230922407173184111435680322838477333334578600384042276899052122061321889160089634782229190090184520373813169693634499587345927688587884201189517697405857062217994664906567092563854206185445375625553639652371729996534855125289577578052596504133682844848416940075985717096794630957694876725357860616020149475134424608793521272166927806506883195493721167701445988227496732387258289621218141849795002350095802553874568276281806691463063990284522762537008965331459895420987957834083903113446604831527198424410738703822953386084350592235620368342339067857172730073986395987941820255235360053064866086555599627643538603046800484203526005174532693672386363522202764516064770250654901604819066853250717994227028569155007695202400692182963366726132366014727153672099715749173058994597288993310006757054544282025519389520399806235415537412654699797550995451914431723366117951921900580798218959823043882488545651185854851477957530053382172634754805299386439663375041426802888665875597723588327480025639211232715941851455806467068352423330849840061341225224154338172472164441592787999858471818423655371431127351292617260227857544025136544387185164295271871194976147852398810427436322712723506898711890630716360276216185841374075474147098806350894295073393071163404241642510344593819487630194087087706751013963362656864987197126232685713259721574922213206532814084037047470476700861138304000280571086021997102917889752120550549625033834214062807006700722842693788712003599794122319388941596629027158621635217720692119357174772972939563460626634433386976927285471766463426823830439357331456934948530757984776279800812089148034067122772078717752450523136544644321113543463300386871086915961912651169392857632829386954893056337017019380588916899456697141406475770506058051732107908964225819250341157360006858967246281697995580929994747962909241805973542082885346409494049055497894819592789888832947254219415396289867632261405269202107442233005344368715760343315621790507774899824655980596397968637848320287241006987349937884227317303154996068755911422748028117742287926932904764275371074561677352610780942434375973730078482923114543888834276984760666793116602043278192724531279270659689953246539214336483966378940003587767225585658755564596299738318646731476877885508458612584617652675099146345690758723665660171109214121601674640120942859300864393706992980373478495491899588492145174477335424680237089584900933943627190182419493722203765787581459496012585658487803350660767014226015301610720050273525196408073837169335735032724551131132318959547657524086518296700042234590547027848805997238957158073087550415239313104767887868471526547796413554985848046352027392545334274757057019547387127728807404160010756424184120851408413614899598358393450457269407780437728752436696140708479635173343578942348320423496598147690562827287090309574363021587817086695346556754610550651862810478219979967410911798190375467340676396238966944797356108191124862483499530658129377651492862485732102791020875759114747680599949576672030431020767954165818397382768599022756819134341745128211355326102140692687341213976378341836046024100041488071328082266312882185001284137706321902826022534889639665905432282698507913227468253860218088359812003929149440993149617005336966640284502242742442406027813594958933023554193363322624979131385635105384678150726419289208378450961265323250524440212093323978713443489228598068528066699514267532296766164515291259778332398491807919430370207233035572240940305917942230337144045717456118423202778452435586963489962189501771889581611527487043319432132364984405595975059860050235285366795486867416221265710917269064798133398055229617456790653043123140013047381997870092229407713118984636739546296618674120501638244965967669185588399190023005409820618060718045877485233145002173801611499293289553490735171895572956745602360076114774879243965853136033847347785698231697675960936056713875380802274300815767425102908114859559398578462058991308297607536518503986433606203867973595052276887356304204736668278695242132521508331169844464111724405087398582469558220561483067635180192983049873854652203875321665681371062462920417812532262393635256554478168021295648128465411383753549848617485147171793925228335733638602854155950894867082629311665587697588718877691582962931198815395186628478487363677099160026171706704797634877067170878061847344962047546008328462278374487556404015785476272894303188645262042978540326041465731324721660442657101243121702381157327270558306727700606396140576293393908916721539905267968196887037729841201362040609496835456329019710431909473791536471760874855730145971314842820734941031740820127875861865675473031306403294699611364297884254379373271378476152693311791262078686713144586533124058073681891092089125549030024428322988755027709140641842587927064657872799856470896412691943887831365208268806113448939165980902956907095371703678700664219244196292424635829676138401694682384982707267558152544425566951163504239712828593767060875148042988440548912847004303187268753451263846647441372227749710273728681886318206672502880066724508650892785088861903661815867909677683891129093237997760154532498526237002999232186614580891952977549303498228957504008775896217039915255793384070642253717135461064994932525450048083048483031597876010648589514567102460226379916975870696380241836410168950404716876632168606469007007725174561898907857130011817099283833850945952392917393637388468277871713220229147419179905605047022607758272065248302181884214176003413192413310466877388747564407978769863566515542391630456655137841371420414136460635038511816288297425110707966932463815440332308482702172428889354473689017050457785911175706411987001771656542197280416263160660096257991845159844829226237435624489696014953653538716366965812592378895058451204699081410374765812246901332091379901138194139352479564187783779307932031980346746791944469189411789898727206564340076770946845608147456883344847529809121955333837495589905821956150159297713933053123509451039865108203506475255571392956195628963443472507756451807221045122150929320681059802545999479048818807633867887869007831926666761210636752487564879002152685502506623034721913581996273096745557266939825161143102830778124332832187656478240838378409334674366248301628620019907862353860422988812898404825610678613859911216591175556796177965695689087319532058329644068303202358794076320482977256515343478657205898481999222834705930624259501049365031736418611297115261010058665896425679602005834437671391618258228220784825069815078303593716590655908902399224677484902668112943993334548492227605516626975595812366886946773726650921794626069960774061960099248596592528908833460698748068018835044807769516281888272524016226352242074135004848166451301902171382542119214148784727325421578584426548162252610419630037436989691452068587742634905733321727733105842821696094817097915052690376502895269881843534241462694885514347212898452908560329256093012081477147402100825204299634211139558554897854069363304045071696489173216116408128983323019400877403873372895806668342136871377731542018472576625532234537061846349635911510391117408831187317567067989532533487480637809627641794567410970665271868256953579927940076051920711755637647620497775435450187226082120274008513463905674393380056481387883429150257432175678471446905060948272293814016414020368704366902252256647046906752493558872492958680449703102296731493606274080932744230096484631775772466734777760254463757821019403073619129194397033825679739385384519958417192931168215186520384391803242975494380489630095994936391067558593064125281051844470655316386474080270954506903043320092864065877359953029683290606397405018009330132377360074037454445098570154911288397087832582703701953819629010487529292883390578298503149366293611301126038676903524222575943704309381759474643368079906290465849816523507898903418242636877572640322457596588816970074682600654063226417986409211796057651368114701019859329196287310689563186969289012018759532382374689394026584461144283158919426146606703026724241771980728179793147131348232282138672423543815231827734055075936729353692979884706576836972002012852772509183740775644772312688293362648733065892039231952102819431865411020610773097001577065011908285937322489767603740603958056994270082332229566683855415273574711816763899403950548268066173706031159224713624813678520010478866699067315685912601556016013674908139047827116231976081339921889288496034372156295435844829146327994214003847342570508840486455778705562010323214837236131803811029213216856225514830071302030993761712960970960181854298301930082081512470437712835238952344044595289124189465841585872332712005592764345784811949027509219657938322632757614268911544924896965482351129758335849192899125171291457367923687523263956955257118409450448355574633890345503989672179058884879676521239052582162264470800301932281537241454547175058101644524384906288678704460848349552264636979753194942115034339278893954095779280289582063611546401337586763761931897616463308155057301415603843695507470197264622674454392497386488657719633927495635876410160897096852241150519013890094215807330062162346939875411806970074645541637875211102753606888863742427389683694031867179564512475344244046240536419374757197481548660795129295367826861357631744735985693534593081068772940558622573610030687995783929854958184230105993464884624340107228613036340688517118638873538656879858087893792025476689115013300503821776321703436047305655638261142468870645483057551841449690705074910929129401683790059332470175138386663417106300729832229050411326241631348014594569137170952868514228473209144856533653727960445740473330848185197321702839975444543926461622363164303256023262486219543648740843968255837775110432979797056871789855667715804294875655745066265784234175655014073186373115665916156496047907136744382834007332777207901445771732379844763286178124064637947041795883031194488990804913677461425334350689647505625743468507958354260708857813040667453726586215631243809235646733396058842946973898657436782564541199396293389417562751401161747310405936813167760869663951592132536605280616645004690517170066463624102818944556603657159840580703349835874588812289722499434041808270509631118594160249485877057473453106560633018010609515555477874905663484028064723347115906887132665263261710070335171057026138629488907444860485183483462746612667463592467095949246097648558033627029256983576108824959150243929885523899636458267011747896116844459752329855013869651750054487371722553757478481810873726047708383900580815704025346185850417805771399587077320627856399536460610551115177451945968651558558087578075209034702983142240545044054147053376681643226712953423571064283973302817873497332648482079196040085911684155607222059573067122196279406019971734005223564236242076369928385241845071369910699010649390514107340972041569831897530837782497357400109926238971638084812574423336292151743210527080527230686715736717675887396620019580953663486664779411410402209779735297901363583643007832405714806254028909172965000176879916332778765588717763061512171314502231303405540745527752246819411667104518544066860491302345453879690704846193219913175712055432652541605716491056267245435918763282957051748041604006858835715217474435149592490635355332878688778160649812589460317436131963055921857166350382533386482314131351499294771384080100744852598651400279264266306639600117758216098083069436985766421039538184621341776430138168329166960118435464317371084946670339331611014650685411348391335597151622303545130670430333673380601650039673312118680920612931445212380523289614161246966668331731562773555225438404773136927531324277463244593711841502801728076631594434518299416997785382833510505164882801161974830062568317892698011886745779564615712084690869217149125225517946763200568876338373529801456589434763234348377851388876435814208219240737749037464123153863094041319003281634127587946519314753134266349300928358780565103420575065407788122871499754357882525778091927663145878562317860139959927448988259489774138841822329974588780693906152998609076091262131855143988943299985723146650796635780895914424717157375272418841730472811224198094762071772381458966256331262799102877203918428426266148344364753668231373184902991888352857633952452222747101513836853333564965938026042090259995408827153887661795929968946062027714997020122519958066202700838977202341751046088364113908568246862470122711345553242862399144292486991804080928759096657951475575748298833962736412187426190360667233676578761308265809174958385583069268988748285830077120950993433663668200759523922147864309489062524965410466312941437460126332425051634411342787688233950381215154769831390561209468469377693402845884668374191890450665043820164907226239013511216181818062702361226668667228871191484819429620343448723513562934421883581477049470419330075218972437111692250238767771834813816920065625864644123171975310780903524606389071025880909394025262936930462004153340390107008644750048548868131834493395802369389615544446486456763784551990822792851386036363255385772378766994642198971116421650212868773454051964633350040755463912021811965968189863359125837157921011446990262107399970782626856248644950379266325844540813968292447537283080177206295821644395588721599690349383611615318323271448833354867540957759255673568499337461110070788457268197417958654372948486726697991899296031019806319598267101395826598398181868354253020799494755906988818952450989715578541022826228950642733147824344345705093720476402583612899882814912315800996180240702256542650736301804057097619742544082803408618691141036172937917585313365848818967106824692384679543636825105752518763038077353605601138227892866435353368984722137468123348638906702647412779248735325061012173752984682914205736462236614242184545182749332912341313278643040148790483396055486817118852422287505723721401010240830064596911431321156791450287240852503025629185109163983656444285555732807347385681590105533579917197379721463023679801184803016398047675224859225427741387305579398366432993050975455675342063801351023320051812142487968039023831799756189321353755784691719895774522963575620776017672355386298379132353493078569776075813163827107345283970063665571800957002311116810648931265192719803271521177520592076770282338388681929017571724654463107272610707564947352202178752659096640978738500364279348746464555501477956457026680231203298911640223018581230079775824162135036563112187449572049118399700113805252785323013956746882896278283797741157317533501701905586817385346060764964113078556740020605763063789224555512150091555773223048909191502893329148209056868563061628754066330066259063110340044885520951832271164043440582476820314280995808764718182834446119319391717114803778652743066945264140357642614387225062656293841287566751413748920426038319842967930985459134838144272723766334580970205526559549568208440656404641751166969371511697258266965422647181997296070817564966966463570576785337847805989654310182458418398386648412051292251609687714325892480028229658459173433855707409058375401847402077219933514890039460128157679718979143741908020499236057295047072340226364956974968408211697215458828823405564275058238284926839623646217848341011453971763022838238724225461765011556313317863647889689013323062083330708690258965742403952420834390485663426394524496294234178234807893990440928533826392963935661245358212392700240283232024997788408691182033615908582545312225952516383453567835955026802101875762457866175823386445384623629433402145355911815445075710314629346565190030525873042405705349982286989930829522473317379072114892190989277177510953835657507769453039672053815387704215782942340937173042838244274426367306794538382301869752249062759872652773681914248247226417211929903805955638553346883066729604250876408173877710919172844176398219154860773267028858220741653496168953865364193428882427609023683419862598835112981384039237277317776840399455647074604957518059877772124909421537007169166296016344988727098657992831424877629956331350252945710182204656567857280897863596286154644986089030463131040132041776914361726768165247563484677254843115173011558061148076084554997860590503536049766561242049245579777920655771470200802427098151832326182175192642654917349823793341089026184301078221441415770893771329586994454095941441786029241145829596113115268798957868169415574170258674913757105621596331258598841105525330681845760310552143094885230739472606491325794798058154404218463462786759206191196171235425518917848817121668654988058374732369928406709472332212204829978290079200826785853728786707645783526731451705472018768271577767003762735423236039303369782597836041554709213630151632638504595679187018517857675499926343333678147814066512475493798517906559229669524638729184235818477443591222295425974514902514971847938764398267405154647237869972101067827472437672661332306211954817220660488198861412740853277629632463503001904921497772429131077074324362988969015729274334234309790050235991379572985407631454864736568467255062370932679650362930797910750061130322024759770680142314821059254140698817061227523958737671246462245106688317107224058489107259300101887008086252458720003283765135744964585635298421895271069442188289419989068104093339857195860845669892989271439816788601865668623313524353793705915955369190396856070231103934787504492013048419139459381641983900399585641057567432811925011400947305985442066611328459682938996160465663037394366098013053959338688452698085511992448294674662781077270398428877940358433847870056607066291437042854597437824142188100335349380954959605002946970068284030781860665114579806694779202033196502891808843390641720408820279821237197392567112115682426846938025077813203416778783503970127643978476812239417216458821895706083948567171890434271656282887076092673153592220369738120677322333640083636578202870804683908785728687823806733070968071177814704968568130801590976664536622081487106162347362321010386831497995556615732028061964604911825443903591897213600424094367376830371227788310223954834472904753694973876563217288564489772379317160164754203131246723421864997093473455163186148460409109724943610536158813968328742446488119877502839270990869843120724818014768127418526550026974317739249214525636754566215008517780223151988749618986898222619378540797825967695183256861741030688692440442211089954171621793596047828229802836650127560702360387502410278309695256583080871188926706626582141898555170523166077367676598030422228246706417914859195344367979436032095875813199562335579748576831785643866497495480391320353790715052421103878020731163270304745098480064774507349446563449995909639131018547801371778338926252138005728083617489378760781594120581365480765690545417129084657054802319632040354424249757734898425644079154771549710329183412750373983256325801811486996466841121590981031534282330137374668401228241117481998977303401797997975084307494602710222998867381879393870004191549215651016168370813408723515138604058206947317813714146284527662332537270951027597789032246487917785109816238612171977413405821396982034959134361455779988377601028766458929567744020502668998500244631287235065096490029902996275886519681851668506271072017913053206829505833367146120817325378918804517426406928001234011146062809203240856489694455162833283439335115371476997547879506719763935166847616107789891143489697524666816539453346089644152193552526182069505345350590462096597597511241606869568653402574769585798829661403983995114512800627332614275180224604802276818376317592017132393297012665639206373883479745812741925278797575602711978128771198220743983266514514563346658939600919270857351425549516809384754832484346665388527112542268509943797046913076832276194119729229721092556489581335042044726215559258531490932129069228211599835029709721954398203421946996905404098579500018850215408710013628744032349856629483829812994285254390157646001022629442689252489673838648546035335134528464454993966103829472504240137676240428004348526290237572911529247306954375878447160974083942958786329643398059531225853069005986836491464934195707969921961785864817960551636706793777715100504479924422567061911567297616890371387226443323449955686629156918768561844698235062128942705559429574659063644992692249421084905044910481677080849862125513450005110050306384418884579691667937079108736101473127231595984937065877258948275566555247853985300488767038373661754655103934874994634534551354378935067589974965392453797482506547229232874415748705059492203315242464005672564300644671583528356570223671055044782354976768633391308204966953085414353516325840431953888562130584543980414083894177637930925982821117141989068200248126955466040780302203109309279353773222538393691615010439722234391092297735405216028794997310048796015497452312377818888643353412405088269214005314115820121096001170101171830766870175709335206567630048777574497704392424660755644230259092202957457483159982157152750386939862218928866023556605303932994850828545375171090100539068139714700517431349593848580961770145447461733732704503985461379075203043307211533556854557117864564672630384633941588880387757249174473569416224174918748753001804333654572937835032151510542198384702995564605958005829540345943396122302373698175540211083874669024215123588300975084829383283214855932544388616983561791359753635514737637868024325041935373734376432186536854055852752565929874059999890965848932294437173409744182774359749425118588062884640002208090424766286597975153264897909497680714186157354566910569499252072882681376636104810273328526517130191989965730854674580701942589729438064329085724055519582980777216392278601488813679459507446159349142350105919128353136579026798694066261947193673421359740570405837436132978615175862502157944620235922530107916927246606498675304922375721512625898681186750331086316268554361657515627396341591843319701813399198688135305187149277084670889161402140550687078545082219016504360519036238874389266020015701492190596358710462060367576173950740946811957079059333180142317232704824773519672872094913818504665539718156570246253459334015678456760512725228114520131777762764104618911461454883771491890902438035878466301813851768413421028121993439081634315224293424539399334825473108038629215132398755568990232366915052009713280959731262586035880151595211360103881299530040441158143282254338223514538996273075398598701366738308098547108955395554254265984138352001552131490574588441782321023358148764283616744214482014405707533881411062783788106897477195638979290967641421958604355521125737103176295450332573808014751401346313877025141576304464814331478016091220856094706985313948699780983938902972805444044921079115023755236944732193939924471443707612789478519220746259103785351580633132513299219061680489173767371764415424460155690653319563227754464892858531123827892913395476491125894239785964555311266807106176703656054476873410046196350970310217188711398974669813121200759206500433005915809055538379415998389920067223088097711313898048737066530118395944779693404920135874547712871257995360946208795413770655470373515150439009812008200712987962619964715049520969678037397583258904177485904645628547653305198777520234650515862691763258726049404050548587708503946297045443330716942991303618414981472075937708583482747099796351319280209491961908168002532133445360367908480051688488620764677317619950981608946880810901746160418380914897816353714909195542439745471061170989724445075910609443704138069190205488850842786266851101420708965039122754763510000843648123641869008651307417285354115297649433917800180198104547998387769161218363630706402009574139560856773557078905945045916588057759254762443530675791932203244547193072079407401159503475794848795859021720270829068247137553164892824879912737048182353335172851263462313958686932726710249345249473075175804971230277287063903041522003579068284560794265056071670084111971856924297975329132321024849420326595049312380353456240025640258575915565760171045361543030798568250853552505402972577833547405169444008576180688721689149817846541401744361648782366395934133814254836097220535160692083139015828248696590436103385491463031786218856702000953712609095991898523132173143161660057116113993946582263452162579802635190158906272742107695010304039059392751954228583631182833037019097862518363682326207676033901599918302156802925194294316932488795305620482348711136254614002026846580526755494006613589318044209595657586266468242967349382456867674198417764908038162918836321484151465464837925957301382048840906565699203813516157563485128883223970102485637888028984492221719664110827459003151202234088238959233184155558012204444841548878433061608861723683248210055112600482395408144519593063695415794935720156721702534374743532860957584604054536704243769764975997719967056011912115048377864957665164111415064010784805285014317320055162229427811703197427570021262937631801223008032328822450247470067284496798719102683126124779130141235234409513593589006609736585266045947428837582971293446142735965993089107982188842355062260310712889451236358729722234458878161946398522759746425832518715034126592539622785285142231913213274314667555097243621209694159050741646328315582118248022687386527309260543311848430482665565742184295027311892161515949645061918530602703409031644495868276056729875303823432952317948823978177859208774382601517030491309699965206189569978799317149208969990020204099178198131710247610251794833746851071493618241135691471351582892000260361339038028598179314710843331994902662010807298632386037129571571171680772655788855073672930485059124844312269903687035546586695856912354720462547020468389099533857315740987189714228418119499006008075201259753495931525428153491938706031358188685459072620979623834513839741858222957260027424454586979931853022362074349089411056898283128942575786462764719520201129339139068201797964118780559253844842053063058110212510397405239151576706497012204118046163109654365228991323134355012790850677117692686431277583155245916191527862393304462716969097665076745815045975168917511220737856343300371830939084977203531130194726702511106907454690332630960043894852629903094376462958336893027456813004549525376489455748873954789363545931155984302615439659772551419069986475051496501793346698398506718114247677555993351544468687346910468449015809008612361227021421370123006279139268178419454525376202525835408381227626441315085014177055407868721700887272121782306716873579161695255374023242108758698224646325542359317479875025002734468107242071054420112979577905095766850813220451075890390620206882622370698746982285668734137441263417326291272513242970822863625805218325801467594130259736939441315450693814856558638632439492258829884917879767089287565757487386775977862074538660100186319267648561523001252173435332252446405324774319027432869701898654610085280624121533346086190019193688552553003377722003864554810480773470107700571574749212207954836242435956815070934435505071999689490456332625272157546805854161865267878258164287008799990605849611706587362048724600944514796389887402050429663957212306231852817268484140497426846962210176866784449079350661654086242410959792831101157035355730207597126034896225743500684234194091556038778671219625938603104326570891073725918086678998140164937587924127305097855040690192711668876946062662958319458806548992906369660429540004881536949646560719392990106194438543666866579895756279701577829532103400335114314303110773554232306577699547140282230389120221909778682872208392434007033958365101665704559202811590650303967560448331852613688174582066944792396873253521038643120838116316865872568291463993248777850456068006399298071436250824332241848644277751252744501094342258356858547812421648647858219415172611511347144568185952747859499988226194058499696307819564598123471237236907222592543398042401496055686822408786865833125070403270204551193653608974881899918099048665129631500980811359619022289434337235335994036035294984986419726376533988876849031101505642468773236173338619913440504921538556377217528298457414322462339366818288761153188248244559424269559126233183499259875252154496134553179917618720836589347935252886273032608856713938968249751814044560474694420947313924757387412022547740286738242886101790772319723055821393929039328169602210974718842353661034690038650465268956454308771538540901636094576320709973068658066589330459814449188308885919214950390626923363890861288350318828018094142209797136021750003342716610830280860156944424201219693925326466053411770699625264061622344946032090679706842452826312401245393791793181081212421356929049473719528782525992663308911173198807614236555068550297863385618689236521620617475195013374631416657646503816784511691755018528146936649903908391621504021403147020809536547166289872778502928648119008527322900118956160944974081970628157283449403461592985843995176529129419098591386768377540561920414828155921285905825623764969275077918493061904821073889396070697025880967878763246738330856235859635281975558837988626962587817871530134017412863471820701702834764138443867443670282843401103823546480737052915609073015564538068557170915265518968655888091451822032063990873302501564251248223213169689117362569549591526546969843885724410814735450320413039581313128404664130635072531010858328262108422660829137881076515141282996866717389681335898327573832509116807939490409664353181304076548500187775671023606943254397814715393943948375568849962796903669386381936928489248973468601695784832056987122313285749074866004042267408625587701516563153689827063156193399074711803540765931920562960855930626993645791494420043241423747389425940733322309131759850439848158462713167760935932184932921599955671566657473171855715746175202129701007380523321213210699465378941813091810517902005852433033793476103667787406845332838825114543592300864418171492531540431486487850987861061084327736354474455741567075953114435681856023570635095627715972571205206069449188208017774074630566225552159502954101639937149088078123283723261103154560105464529029903939452526858693178436631355314725153795302948504336732083284513653212631418464392246183691261426789999372161559086520024045736753521479683756026281453810123189263362565118024934007977379264788480056559011439581649546253193060196709494745485909520220564040512132096800573110103023718477751315612084434427145198906587481871010279727354012465908511456813033101167345408867045620449517113414309576004366525549619877525803073403007066741102967033696453356671562899084771914604980779798815464084064696368304397923897472611438857357879241461566662499394725604411567107911338348440074372521943108567320981348468659692068017399553432591938382981471747163605294590138445572273914367547924207302962648435350471926017711135189937542035377287596151839318808605771999308304789385097038465600326697011565223875358315354419388568538678204905045652480706915060591522306890117681224193117264233733768966546948637014968539951361855719659130637625214574726077539419725331342797583157483182015357072909976812238312327118308872888612631786194862038474310048255384591697324617906606255297533845388402752002913713802737664319654413934431181547313988102794885279231324237908283643416443064063165229861997756924475669437023957270114640088896425294861687986262925662172199726616743269135766542012303875119768734528564004750942428966311508275298784929028015085048375606252613562805230061381286610362620755456771245113671298866637149122496133511073233043773407400101720478554641824235928227764930915522011170825103100995338524314568156727955695886139302868513492100861161212235214461832358385988788771053251248037810801342803992624915312917494854984110136796125917164154016119040381453791035435378271923564462665990668187163389007395021943129613777459251909146981101776559421828068030314340981289690558703969773540975907727002919807730901066469204664897339608652185520664696739471040992794450901725626851017880508081080539630905624826320533590651448590558309332396750693637420162556407095623753690009415330449469427144900599661639935831565517274488668203664566300899089641905451859510302134513778048940331634097935287474793198771979510011106532397428557505118731783690031842994563525669846058556641960611656252314083361043769359872372160807935587664226677647276359334102392150032793289168760582925396457283675826900694888699868691541139171825068707036889370379756433566887511182592579163107478161860928478174847389952484228593340037958297899499391912948350883361524116691124251388564151944722900853886136858656132502396006289117187458435914282531723956939863318551489333116751711691966661417547386116329550811692148430163498156501262936049573526545540370491853722153683897105413489077813270942838906666506231873041820231857318126072918339215128586185084882250433442321216275139904087841350236591774658025806605625671056852882825116100032435025947959193684649828821778467515806536722582575772509272739180628281920311746717407920372338940245842938222649483546842664589633469437792289492499092425861861134673402418994221406934990015522857110188433559580356884919117923309379708345661948912008941670660680851978834853493029713768796543821433377266148596712830921287280708343355479306149390926308809572895090407536099379371632886255573316502120240772616047663819178958654972881920128763973207370214032767042300548544075523191782314658857143739573819854127053845838547403547648455584491903569471283907373335927675237633837933961310479263156878041081460773723694167581609258117719816657767857867943462210380621226277427267828391420519462367711407826829270365144910884058886197228464384220694963742223633163459922335505670253803087012076157862037885552102631716111881525813388938224634162805640105524082834757491890080077750191441043669961946367584115158004456417474282291747204821950646838113685037251720288533983407053254911510101501403584005918038233221912975475758769984163014455033931872218904210618506795222182135538898279691605613356578051723050561354423434342617036575264507082678095138197852570925821818737945318697046595997397128813649866377616746625609744725495551824676165563908189716791833717011897356680687116718994616805214676568859377051588997076548081577491914431230773782137454492366167134323593700061904766469393048462421873535922681553172616322295092436606333437841462913409950202383288704985815515934023845494020063606220680423020458155184662612803441694888880452439048167969504401499967438049671872530587559074030027277918525080507401476247738604829012037890555372434332300550039231037762006629368911112074364975329473106119081166614755961240519781403524696530805144181306704001448686513606220221384925262262093452561464307804989714958154358592014539452314076959052162910992770231435521964762852970739399155619297226670527928839666891293574929578683069594657423749311014231104707781509011402371794264899042442154136339700916044166590493836892466088782716294897814657204120985320104036053943504716006240000292201416255659209253067329190656899516251250729829465089224974147314269850838443499838310298492074969850078313419573072883706864906278370608840711701480345649192210929409464568334568200069932469925491484492176563635672894859518567786630071425371150991013242802274725957969065719878721785041716250587300635291813099805648240826003224851153968122123889149744198324807070473156807689096424882358993098048212229945577877737006179390929930484337674917053218892271631795079235302085541920136138831099927243846341864949208211158368018324696273436309612625211206347540144647331186438431249852807641802152150227367635255253797240563549034141095249364059211823046924094556231659743342822546331174859928057716313794819833054869302953435600426480504848207471657620622931984150010375501667395011168444771333147457506835907250593517477929390456777378167587713845040670623148330923307021015794813679638956072590348039218301404494829880806462351988573921540082984949277816501495252997140878097820744031342537034429844927681201139476347399030838213389224254706726562658996183887838442426661605013005254601466723954182681883439554594779519592201647836493252893923622944423835587399112920899450527713314169413338377995809749903903682759140723131969843604856526534907715874031793730388159691455375637415925266395056839854349796887154325016447777591579477729947632028470295207121261844936915511733747008849079361101850151780087446264898000233575421136412279647506846015764874174597142727347794207449261003090580366651629057945850140765564940323821491389131252176799875839537330157872844262102187039942727593072114342831517408195947604601195680669313317847026029919538429377908042819815087505035055861914108152763342850420459944677399292920861051648646080825624064413229531227501134814237049549892894572334239792962418426241521384217252660325646902322207139251254937266689558041722066319600187668089369803019317824918911275707112585364192396457581912735149844264562584499998373992182107513998113642235221345768033695475964728640873202127269863161708207473655443082562496255401466805897412588774301036780902641865654011112027092338681348235563168512792958513209952385339646465914800275251004160951645451749460152664543704734771311163173024432264109415581322776204263043245543392511992938986255833189983074615652234933434359819999621382702985335697642852671933658560905209826801637001387065866872205779973911912110866854567664952191123448997344310820519418649716737415772625278487931048178207224277241099520642539918961168795907734036838223468700454329943306859083330654965557258022853545932494716426100980635693824722722630723701034790452124913297888719323103956225699124006059207310423540062995785908416674298785728211648835633044332779172370274691026330727424194067596858899187711498553950165960829896845003325287906330654999274440538228465461014941861717182161991487836275230217382842930659064259394236821827510230285784027783254793307685828663357398298958438714017498522361929550318686868709645662422326660419002454739922892911942584255463210888137154973248654911066264234120624829430901597138701173262067946443066048440023204622845975708838472816103394259764548328933832740176952493449200981625224560566912637623163714804470431747555728084617566514066967860401520613276810759938422213544916476802066573980495199367150066095486198822130776447424326073351308245283910554905271936159714772899961236806856966138280354659519430700162923235066879415702937442025989027508971673716344120764804953124438394232357010953552038864076054888961491083568706211149541728621179824910408168755727241853629380006878730220603207732218722177020237008078257681512932441259943203589709871306905398057136861643350471428766150566385572528817338902013443984338350972631248592955187248018916605669776133742059038463493104487729779719757397633057663382970131207602405463920506118565617174093000987999303739000770693509788050721399074801606104867537417068026136541529998026563055397492370048796003513635724583977005599815692692973043688188256694063533330381827471716063425389146046247935647422293997146450273385142396985316599365114547560773160352390172164681391282003469520058726662005220398735572912984687317978422197453143305657971863449866082554118175902866350770809340184471075301359617349145258304853427883934011127952640431138974125260364139539591682405602265693288328139814650503830133577108846217986678130031435341962831912877893063922507646627790241293615811891115775598439645462112921021864491825052928475829746087175127372017048122315029780150306667045427242832718495462713013912597432076380213619396519744329118861526917898857264013317579864969069633821181340112522994123768268401752082733408814406005980209043520588483678416109557761981723457419551670421046197291560655469644806751790563207684710946616591075251644986189398267189993009047692223456597513062587698329970489824655775644930244732414388257026705340828945960000261628104829932811071181197083797829073338437836921142019850242737472880126089944197619723649617037726507546498367967820314481179865774874120186864722366019668591773581862759376072296559235700461592324803610386609059125666574928631891410796172155458304231768495611552187015129150994769464856084469384428318727088934264744233194382681035149193287993145531833877277196378109797002608547423176355034894134097157469194776969329219155515870931807172170930343037429530050278243463370684080772070626316693847274034842656851072184448390555726332749861775243810348778027214244889640155589060062689679241516225230216303700751786658119573913114833524962516740060049465817970824811476529108077531196059663240814521729480426932330152526794194620239479046706519731123006443177699241843316919632678672801507882514875535664180733684501059179165125456905842639949378496543860887841209564840531786590578761796504077121720131391287087875757182322546654906942748001711777576545054875306835282513480929726097922271483732161659757292104440804346265262018144151438315712168554888480706997313892296645709381663201747418758112736058461129931057606974153525633291785363150506730075035080739438834825617969061061778717890104146082126905371456086814190413805589758097661814039743058369717613795281632854260090698547575769222373558629945717631205097118077327732883067341817174625802940696107803299019904232704911950545971424157920935745704844620049244890078190362719209850229073437351837876171291610672149575868758591966255831508385619574421893323326404208640997606826117333906560415846326722674101435606326852922156743988998101644948705157255387775780931481052070574412196623202370365296648753441647216233989604123477041222226235944644493461351782045114332728865808789912775908533228603889651057417705521164970884261271970673647531537560811953019032433707842989427963375921366808304457326006991789378042394380584766086108607921684866979082900279756818132602238770059685106214816045157000983953790707450498834773764436883287698753239153502054978490953787541729539855185015491363244355281483307919969737736789496765298290976810691423252375429804565597774669150020356086094066251779093493171587762344896851959606311925811200897273968847052604035581301899407819892112194010731683303999734034733269345834898870156243420811402165554842996077168822840490530195924487369552335266739159460856019571021535982200836226748978139861084605496889585909779251183969008300964641484786528789644153045239397417116045452243801643376867128347042011034498476186406623701445471969110198150337343498081765103552981928174539103266548276075708795683368062866264514056075959833100595919210815731476576739387845769535659220710910159334025231996461564617282053208159590805685188944594036289636919788635199044672116659224405538738234683146567492069180737350990674300081495440937085003795036435557651977657589738993330140281492687450958952384051019087496514077150453827507598144031439587661445281482136333838921207083875873279454914869999014938536904501821245090494821099670428060498602758436294918816742102116735726714418718529314652131917814405782479626500795413577253627316106028257629352739707344584447377646153237899492380344457401286271173875396159007753204428246460791889795890828860245901540468860724241143223487168502716883111122701379863407084199078120983358038878631526915019177980879934197628071033654035575044382616058510155223045220631693311429337776209123913445900754751114941770207118914475298151455138652738180121423999715467060363793858906897472830645508892437639011155972873542058901835587581885185132675695316359162241970299141081565062623025060863957894772918625530057325182711692990198484703477876451091982048153734680343457811665804725549158398683238407037670147322607868668316324246110259090917993759410486488067399220038407225554366159746725554466333106666643766086279125459645148890290249699680496939706597605497338262803919559799098115265109288531537294519267969097346284734082769314731989459507917415152054505852618128693889162014245946252271538088023241465100121650406964667403237365571810152538928628271893654338738713731180181415442869104915230997293833567836785292395414408650595126509177052524692717850370911308330481398550528169753590678245452300842158748839001850013065364005641034556358403429546972601910023360781396560379119741703352844174339321807482234560022141762143365859806597761190534311362861491417305874955748733188825113001420350885935240010345295032386914389415421412852650838741837942277209909525516150902027525267769974031554972104461507082738111906862451732056786138476876512705541334486301082803708894771982881463587828344122648835981930002190593320454943469506643991165281580438414592214525454111826688554671093448741660967496424288663279284467240868634187299428900030525503872367278386868548389899002263753411279297283415825601071094586877962667699734847711729124435463943002957754476910936289052379439459580411772547930072270456903399975643373714908900256726018640620340601077293906269844327341854791301472259797245529952487819325232687366166043642011563407105434471355338925051066064143625312752379345162420496984083210828999277053238247516527629219259637894166775322986939555339134423095625512396771718085346939411025960364883035559035704382207742462006013651083661788315481267533388202497119097394539148413941188216231515998542207945087836516550329905162315545674851056630157456198408556919993927870908469671084621762579761771178277460962324710403358250982599437392908913899190102336729033936894960782728189889628956750850582025478254829057281665353771584439040988104170732021415636170831042659783879581493592025955049546994090445204505978211528616695647077594859694144296908597205015730659442008062684478960821272617794839946718735541499782459711912166628567053788706995528009826740262904823239037818730925971709291513398878775309512350850406378105740230278274540313958864049816005045310656695545648683098551486898291555185171896132738393045218881384810570500120102232602659886846273340267121542435951182835855192406552279092323210519272051277948715106511615356679991074662400340379078993138781101049781686174614652963686262455886883652712765375664669972461412767200458876150511828982456178452022880485708836007074099940659899738702178243227750905269947419038075783692408775347928011544772388545941533423200486987739403325917141024600416232272877889407855694257955248417341084394249772130760878826387523003696705646107704761330968248809012087392461976608170558919429311591039471251271724777675107054959810135737672346371097683813400228686519647327803410034532841821081213299795383000622259903010104992943728348081660963876086880043648658292571963729929191517639207943118346202122090480121358053563739003773962360890204301484927902068889778282828280242549367970031217957946316710098573867782187315519220734469768407130563749711791872658825955382577131739277998487294550273630649507508027828757936962848989206394286405583819140480914214760960838499998117581141900789637612902512338501981779984362827354923968731429294390729323644008725453395111894530382224046604620419746605970727984115215417684736246893975758427585477645150381854733723891912951096531748270065487274003232532661646087655934764999695136968423796349714024790318730549453439869511658390366733268338665443601322039170087173343656003201225999960548562783801267514528327074400679456619311145731299215960104597583823523507625792502095437189916995107856342333927999795595873453751444521364495793667125786039408068556629267123754051747977977305987479769642352762318653928294785090041070742846994324504692419211808369487765365376962235639676876502332188565721000777510043242532750759386189353106883785836305632052395599121792732336606535603623048316843986937787683415761524693224898857052198665328446628199517773739799103005462701642112890561724499559992754890895664734237451219150729995128797229883193307543587201583167834281528704408687791092509048684936907242640669310122966638816853645170147455468396137262979365656201559070603421704425416495063887652636832930270309373807692954920014546040097511102430934384416814762487511123534767692336963100627675972965012704697098641117050910777750887834040089041900477927242036944932180225698292716804532685963080456433445545261682092150423625706470434647242260904361100283183648769764862485553150200670829663623651460513183131330800468910023956607109504825975469214064191945025929459115327118766775970952384494781711140715599352194613995900352601815723799225013530651223599529632084946147560659794186498718678714732816885774770868553232252410969357168587301239315748219103490623834118746710223577509246720212184488121617354724110151290636845202796012314238370040345712813947846830216111733908714993523149837998348874359343144293930924248735159239425967532941838932455307083407654730946884922605061304018755799841707327815243151053733451748628306658969895254313625013675106596090483956871755233553284922603211818800407351566144477618929900259819842023900596538759672942760172495680157589274904477287781202847683619593000429978337432750981100589749216662711821449532501953428544406195806193744612332197736082029468262853632619765590124768984352317822135169493633125615473006187685857419263761020135879345988175746052390651848327248765859116608847614943663379324275226031423397688201250543918069385201073749074413633920015727260814158263277775834747670771511831943382409670247749908655404636947910070648059672822580207268309578691854332798836023399816014839430715877570863531172437601663425452952605590479705611920997945744745940645481138529627359412804867344566072285007009947633061562199785040904350385668844675228178767256997739924588321061568237434625329448639780312339646308928789222285845205660046826651085897690781546742696335528032128207295651364600790732292843264017755465794104012418673375538510687291700363624740932516915986109790470882206758858860573761171522512996416795589279396166161810798460059603483364772135553011063453179770351569916504937039395214410049511334336536177662065480248460798720517292246245239837942402437189594877182897941861537556419162846298083933520974741538246112603258260642843446505014589408046844513164849899023734594021282663608679814175805735600719722254014522379354116696722994114269801121044728982675939620212681597365425813954651205915465736620029633704814295553827757435267141071031690425241321326484991507501851443455562947732091517500346459962791497034003523170961215835577014153297888286113562579611163793360159829658423591269068272429674601698662510371890888501165742835068540163866163646458402777663543106116377522524857955267944121711168423557096073357023820885029859491685867697214569511843183410753215575417471021342794668512052335952665661086148971588869026271366712739046559643253766062262605095415244253021758451364721736112240521398527526149236375523994462337475722341606628004764801342798584987390713449017769378016219701443287924302350160410071449737594270643552938475097479122709993727960491296061253280826996283708712954261698258393161574666426368157056555762191965351584998848040435747499731474305044252389895575384549346962588315537580843466012520169007939369086761342695716414782872998460020299816674955393964877316892679613379131654665768191723794058393839194549165572772811516713202579482124280565672337467510322470454840558961770981841762400405422900466593143271578578548706922432396977236222261754542524450474261952943408378106274696153536784255788360022969652083675657726051378874598471509664178784584120141610925647755226164995866322822065749821566311393295358557125534679742953564704041277470954819095752111941925483261262270665458658835712745708656478977762928423078382585153641423527565237901464635136711566749903067702230376448054919396111732575713535783829804428730760824650493964386023984458730326432842081991192085004430210478494359299062566347149235314846839305791191780196570376017160542845618747309534219474827325792708225077565790973436768319236656344639629685231057735133541992924852337709443294158833981265080481779366342678364548472110791716185072681474686490952597246850793919884059183535429354743238481684673292111842404171120505083225623041095499898013853350870309006489686887249334639761764377546904876057993127027919028994367594782676083375816586367651741259559953715759956428092962324356516489417402705672428542871453448925898735721484206345567649012670199211755342538109683073307884512266771221100716272650250869585558568250299552417999752050984239116831362059760525642037546111483006657254339040626869711408652013102969934403524516455557658915888863950992585847218597306794715015602966508544485556095650147695827748244160314712413929719600258028860609480161630695755283681482918729563456185398901575408717147621400773660754483375301669087653785237840531920473220874040417412443768724512519647070418522096322099281806758806817452655130444377921084743325962631310334658405499701844982259015317830716275908820049587371991235812206317468618431139330324751984888404863010564842693996709345214139577985442999669635594295326721046367700911213499174262031945187802293303093948207687560314530856674427573620684960075483682797035870349763900284342370944386877546498903805486914344109595614028129375064057444434519195778389909656791465817199380031459486219606471036353903472737003225111820767513728620105935741393339370530050380903738938369463716492029773126673859318026946278560675519238682476242212074862350825463730230641327176787689756735688208465938910070905840017180199353779023922830649316156593756829136743128494619165607041507652001458831101424573410651442892075182564045445783095973579672688123921467577195452805302421315360254030134901390952512322557564644760634939774431439587785421341264465146930349596343160681614475655883228688395731330686184256830721341334223987819604652210420691020562122886244176867501833760563985339250083525684667605563660689431273960139310400949995878640870156379118476825298976086287591118292098792179869541898379095797378604437192229927138606700448071708267586720299996695376767074863062901212611643916708881890905061054321406273294998120391465387076650875807314345783768175266604385540455858266889627090854060476533577917235591373703815928791531108998582138828150209996450524268231645425020140820420795308641799386249081250817756486205936010383795063225648997642904503103432045894891986142165701210583423589397530764197017625318446736475901571569346355466363810834698765694006882582969465625838185613000024371630784392396170649625628994520930785924844563944694516242177544128913476364960873120477209249645240465715986347705134961193893047722793618739917628187846100228101589908651971884304978785296297049563563173314381762330127918905296073285446277015492498480912554734389075020075428484766424496840339962449874002169650906260464534255526066900781827457786807225739622775580675228560148643629558366434483106583343743101171395175885669807070745855159377608157330083043287049661112901942224776122139487848402620568011923443164501745992560309118139858241871897072907784384409526010923751443015841431565509760412449396698362928014751106122098806725474091922026801064560007966303037627916333153076708632936957536246406603721939113165548038376196910009385592430448210813101658821020824305983717817396489319231551107643254656484793142335450516528834314672041868790742199637071557650975325505887980505750755038355455815622956730310437232509648011971305008013602684470969545298830353355030307251140597328541702515106599794164654567909798262261622323906314897951282423062530044975633023685042895835120751790139924480916419627867674728600012366373435927265858206534513064639665857461318855327014986912538597269889936228157966967758312687999135736947598230360705504389604341566220835284105093946595050321647417894771083459471727076159231786512724704288160189190598643090496767473297612224674101564765529115060642108164834473820520636397282882911665592141723587815319400395636106571642802526854048775021670745262345685357821657983620061440858020255499267892308809138340341133669235057497282521984609935027636512043353463529981772564873860707946067956810112182583365422992098513212927970883398723880009940184077271448373277719069926802578033970469627620870275024481614727439878639334203115547451368330507695940680354359070713614459118277777577009890516882755833170327430565912488013669413978735290610990432658002805661501707250317562679108220964482912210330096663067953747699500772154056540392044952470743460564118712524760285336938815737128106201785338733563490266386043681598729418961107811817824703916172175998012230918665850913838845364315335354855342917602696708281088618034761029614072861639923962580797547056887781868148620530201738170793512597387418167895989275508358828168308263507181079858986759449435347221155902431542048466854598341147350630549405944365710788750828837263170765197668562095937154479521522591941657884311553726713081280618517729822906137987580658404454172136647597849126878647649418949003172969877048424622397262094970562875661033103661332494046654617294233465763265414835340196110517029132443355723422485370574484822073813604141449722631988871310486649576646837333485146756224875723688473756092700522959914039325753222283713695863142695061552861550084573036769585579894562478149838232577058843371785235833092969886901043938270720948362543335472068015941436217926517404127122737807748250967478150029131055153151325456970247876189919473938696624854895917163618409965095425943504581001623571456122606331404564881432943051066130756891677856220454207211270895110280917714828410335571389950839372452529082124596740952103091111680548060848113110109923316925196478353456938319236891382099052127878473942454647945631025531602476478973381869052391496780611623803164808842502578037884694158898826597421990523215937453234580126699665176839796739530637600101255435777305965965092655327322577252047712670320503496045294455665764461731185338864481848148993173108178439814368481603578066496484719833616923315090906354676407081710238960726769449106284600391196081431179715327372049536834961562745624185704554009919695263614852767644350769753367151778113314364816130899425154709265566795161727546291103414780096414122247273786897423540487584217726014304937664265648163487301822954364165006205688957142994314680059653027570035845877779387219001202051920594656755110307361214845330669213888786451055318449313111823349693881033045351369080793032993787100062849842128074258766538865632157098727935977829733776365254977405871360318348232567642425799356358980731173297792670000138581828548784640595464257188810273485433586410202812889893462332884447085730271417403441833869622922013982964668314603727030260329407186623028202813619967309913755238501400795738523694894031044548306112295775862712428013640020564643913791826304978698682059356011935109715558379640147662431590819737941554019565850114305578221096700483743652986917740252616665211165981781794767427887439480006565398747041574447023609707543455426479469075589028599740851415623785825756940625005039440536548434581768539002046886440729959114571110020628369340155938165565106678952714558283389637179814883178047168031285051891707658615381758945140654614722551729567970926320898779741054884300405706835566563961455341692867405420690466961301955807736581446830021464701013131935778688798206112164328558169568284264902943627781460394436688737425285781515611892283220272263482314423216470278147227737560846291561863064689105412116666132500652132368882929016228969298237600785482035422829167825801719880361699124156286372244176659631788189804971998611373905422747106690811906669083720876296766054059956478278423753081922709785643756989303455396836121307883089347412020938476592757551321818539420880637567588915448110187077874333647140799344785506727097342750611874227301773866893486960374322852370907288496228991227274605291984674394092418113996412809891100837411587352921743453416725366646468344992729676708965080986229932501867966853127237344543390944005478848168728534016778590860046051031170130799403669013507878952997022718308011375635785432844086066747144392152895400649446399131031234656906615880244035198097732579666723674490660205108871014828729049531684832021946352019208795874753456198945256993270983991103525436046692343788675664759049041463385255547797053407892698857138618774231431669220980725814577332910979750568884101440448896423632863119186158565203381362938463269680414482938172579538598086901351051648621932442591882511234047377093029694271240466065403773924330042604650932457650675431602116582848106123883941652123649012221108385435822306123164462867056287752950735099619251820512881427170762496215789202391943708162912820478523234443814963956652161460653496376033813838757775449455534230648043204311652236901892109736985887991304415427200979895656728369995090629012048264155717008052521499572379774419647953745141258908675813830667263421909648906683871675812106106953442451276404626085638348408647828294746648972387926400795126668813121931541436774224639097424358775541903187384403236313621663514490016854518082667720939249152108995015390815545615858468897733763665178367154640324131953967719642398834074553448562927375169172093568635639806069312466143325992993627082063697850716930584740772488869630323589694394400996490548661645700738237974662114818195391232442489134987980770589405858516333077437110485389276842898514223453033539616622835054721863823270112952704161283754412440917326326191751741583218292541977471353516195981214117940872288123810169238241515871398571949701435223146570023226453222324293860976129066913800414058405773430104768327552709827485096494123204912989422540671417557837537497851298252615086195526682206974445602930426945571525906618298635318938880068428380526145615319719185249691734840087105937658721371127632716407902634005347887582143806170276922428031874889142444990736520779030037575377899338725331034847446732554805783365581277273824105463015519149167415118967231973008047125864396076798611358701276307026495629474336736970512627783426844887071122349301030560003405381760843142268357191958909694366249935862739324862192623819462729660696547308162805323045065019745325864163048261070199793159244582316833260258700805844757362582761938882230242176624270917888348296205507742417067596838744328070117718538632527668236056451901349304729092222561121080855577082744405835753913354095479848639283195380605995495772148214533541547722068467736738021716225842803098839690917226919684478578651730170751212951429677900411462649349667191699940632691812938538787599973601021341021487375029804790857096780865531444817598419843749755059126075383783010072206461294538482499915862270734061272930244872224328029468378553394342174305526013094012889288533882158929210196500431337361676686566828337763598608566210330921909843852801801448139045564139953940088672535438199826246373493447646983135806954436996035608281264896675360586984382568607511660336904025840000982260560753359434800929726967075060993043718430447151839770165056885116758200530991117153487410363329788103268986982618321519647566780182676144045649860732897183472262319840903825236898637523158298909996849668563828047921111883894799007945606128238702064161129560132499279095638159661996069735177296793657762839658820113722211687110959984732963242340523831238523808647024186428106661295974614644435531600964960687173676066135233328510687385547817117657080430812682086373802208183732726410105281633040729966201109797255621502230342503968055746898052228377795724249320300367887769372400151781663891468287181070756309218088027384211361227740594460747583035382435830317995052291011338544921891383050816762552605043908459701404389718856383998299569889808357533343691843333283309531558789032086806827436509277272132589094461088354357376978961675113543269367093396751914441711544763713141683031368748863664765038783872136993839320630311932609083276403227603026097902412590575661326897962543436110855622626721661168232211062085350528124784738117344210475857474605355660791339638031362398010912386641008324922455244264834006949555467231244078777820104445219371686466815528172752659088440774481715498184691291274514201263856165289383447118326917458326630970933226319051532132795689433688359329081377923197688944969152910768504204516898631232730009692408602985750557895655311392119412798177518527249418008905416827537134129313199670061279753174436330104208619338510216922154027419698336295041330367018455997606083999024665773036430236117739833021219881237179331494259581032760662013376807075215626032057697152172909263699418336251025729990502185045599451482907611901530469896587693318005935604155774816922876893117091869331264033925583786567394035917114800923625956880551855040646572789614352955555117962060572888179895577758178369617380809763322116787728642015028398815771106993234473763450234902016065652506627327604625591877364807954577191806367151030785420631276999948219066497751690988682104604147927010482847176110262792094968677552234272179818557190506169075896275077076018923044034184657326440021419757792509778776138395343844766905023664574213740018349688560777823256470676604285977628720471708314096167787405340381204590272368960552859826609521711498457607685173380002625137419990791374469350299233919706374011843331491082690533168594298244427208119199694569027993947679879229760704244790957110394784789430485679706050214651073018893286179238174458366732082434289426548616418681373961614125137029956428779957386005611637836529731423536804018783081085965716356123931328849477180052620257660150882149653063189692137955878906725664274566007454834733718951535856768631136672188159925757128187319876389632951159020995603039113450239241846356001871319340002458128292263243860040563957360153475052109894582467353954510825100364815794269799123798744061031675610513931470165391005867171745744006967998955057411654452714142093610245641731412291484838978243978249892421271554307357053427489642621292328146319743000994990997781927600903769949120901079731728784966273832395747102200686832320047903909140427771366539665930869627603334389959306659042440320849821260625745580101502672614362438030977166963453536925508686548887405419887777948978959813035557935142073860802532397163027815484758565447961475373688126074130641778741983450804184198266012844526563204402974287301583989366166964304247686124264390335672187624932739256615906464714196083476554353274503192325717414963663971914090174201772161622204415373899390506525205127288109912201155684347948723667333435086349843878235913881745123353404949085922254721219295148888447344959813104766962724337071284008021366430378005332254501208741992894547878028165191813557685731721183866404096652246398680620253417400954112634605200190799033702118219878948763172147151559457200320105519093815309879573653760588909423036966517779460410872181259454550170827427469070125137911883044490007822161944859692939884898898988624252720305685104882659369909437761068937945495723938662443897354422167807321071336221985179941148915445361459032327721634873915916408253440904017680772058564548039237858095427190010336244871344431915262633659855024979916943075560560131820674870517334708442523531554812932763000344897079905820874129449716299828107075899521801368464368073262025713757233876814461095773403232106994710339116781565088431053151001128055163142078830888563215363277069082040026313616029703673935127656176502092492356003688064344678356153053731938652088811640393327588637247106891167661979506336360485862519958621996376466202614215360665754677456824042682743399922722612952649016948840021631358911932712450081871220389829179804111950288497230651553040489728449588395034838293072391733959824801891386754444933931305083599298674753546426052540769825889860957657774672748860471503143655353599216502764229650458627624090521457207126453127730138624074833489650418456244564371525983032549785526268965636994822861117829823741535042844211390009190538814912202088769976961772740018579549752196129062276921250272653271899193699181290061911341932357143154113334613901429325871879286742362949171866277587659389902326806060045709096922015260250847886147938040696290607168385192593329511599158485819111971435463118086049103012193710005944156433172398472505643036725562027780392828004159798840351374689776218932369265267697795689866585272817241956332719434176953925032296057547918945931557039856912073810447215170253294925946942974761284004011777930594243268255453892484338367101018587379115809095931174467294372072483241379811536957279387954272021169194399883966646292068373719185417800037729985168219382448246721778668661175112357001891362428080295950703871495777513018160377052709810243700608756034823491329742311190971671090691249613230909684617029651089791360430770557522633745375801339286855732553349715725401954164864606631602956303907411092568244644236936482378122896787110646058869327144293499575238121217304455146545837407158224356457858510598586237754959481817884691991266096616610492522971595618282753708976624208813198179134492356211488816958706363096423744532903618251980992572242404552322789188959395422032144812641375634519147550687093392290245478037642603606157262533190411119220496298662276268500464269741383736244138213688372083822104728180897634428880856116190598250767214679869151908729646261699222385648951666964912427300060552377194627783987978805096961880105397536383019034564903589090897669666933354817293577277187179891539478191182614251388873540431363838961822861043027566769510872177785079317189440369876180018011748084272798490825047828231638225226628485134763306101984992089459027110545941176837154222028673637921820209941626548446663440984930596266518269906685960018905568620223436982190785111018100374871306466880400011284007802942728652290195376253710579365330097319938431732413810963859244415392004418456332464944203403494406028162573159533851975933919436002985586354739872998110875128450523235220270761313278757937978075637341489509758151045041443495570904607986243056239104008172971341918663736381805016354444004111619635098053949971166072497697298073116553894358693671460719173435032385413040570527621106296917693565967265341742808268889104870029085809809089918734828008705938011230890989222540129832091276529718301945589730830594080242783311179958441923286005354851899744154920262326917099210185134454340763714607882771917196412541403097684125881509022819905512929239024016956429909250972786255075795055636317005220588745531026723947523325113385453815607924164327438480807295923016773287080489063800554033474677154613318736293455680749998737014961971148886787427107543730511345900514930761113424637543298493472570289539712702937932057504964553300754061766654087829326087160654002392328448321336689567040408343889024267401722637278653736355289474830565470817480532082826660075040939221197819845660770023161419944764198180132357549729008430105990827092797626753105042465176135763965326969628167234020997261671312537157647492346811439775142438149451494872857237431897808257133313083021005838132974419506356186553637303096197792693763446322416938292679903589806339138182431574672979987573941009074541434149708308227906426365181210228715252886238068467487120452959229378513034237225764496997017729810441498896617225747614141687802629878735732800535869066183518085891127735117443613371586157496241442882288477519752026151336629393602992703634560691480193121252414199111147169509669295952027173308842645769214868132855203261046664254375566296728820494167792715099621752002991547597249093166413147299844019892062820473519099812074969970321188214291923755529970692248499816999941992556036828342990677526994271243519482270734405556518547456522293524742636950706487483515321641136590643048484507427614914983013271999917413858940660432219127531283487220789510342048069470111396502178400953748683610236204490806342873548732240552573565442345601807454791624894077859820779026625421909308572626301301036694336349118894877863501997053571784167579102678153050219101281251135877601118118161491641648203999000803373488226433541082280206414120954694443919258826865346568481824206894839533841910732277235614755316392347770016518870175513873441478301460871767091709314583622407899553520088400003586100355888708738725423216292252207955004060152418541462923793183715380771342292156328208095401026807737082097846279213519088679352958495553050154301448476276358323892807588144031309004235704629640283827641376143954478981518233723546723101781872214025599936918399266894506143548607639757429504866467867476920666095307230971121136489915638542787731781975109231346443263819962488482105643412309935774807724901483544802460672819107514255905746928801505555131033818134468544760178802643927129196897902134759301678990369050109569475218670110148774843693449720484619833995403511919782429673212054959267210701785217661914851606750126011247596102899553565119408356060577084791542301816991243757331868079668461253239761547079818209485275338106975573378446033609735311588091919003003316109460401522941619319570091007263655875707680946400610382123811246746059461376151779888400610563673433521321569907122204894387326962008209134443332405521121655374570986972115820253968588551554598044422463647697115219503151102626980934441739311830047265567092058604301421012674328425792490629225541644694556616719370925383351869523001563434703673922253160488753706143603848555296112457335021703304409971167577423997135114404960161629098661234790118560109217143634127762933721352800356058200594747300681130702616694085328898313152709725074964809503558572960253658557187385506147667435386990353494388675745385476305414450239079621110242451534483169549911944836674533542787129479297386939710822430405800750123803405593446582093684220680091946793746099351555460514478005439403686444419493557289829204151206037252821214417339704884106461042282561071255323003183660854266643478892468429090711065843801630450146724544770223198323006936532758134371693732952131110845969522184580017678569304946673940596452026182610548840133655727256780308396706821639896585021368179389845969011266313106964237875493986629248527979255041325749607782943321573338532383259482848509650342725177738054923364094253749801933989819980195742446000244911102356934684220333403609066239024290354675382680330719424376570288904392678064015907115455773021894485200876661262494510970499468538151648329206702583039952825538120760555563737561243906855819350034579433113839470216882825197356059126959980624299086801228119362403311210937546978828795801290525239315777578361499193929921055022892722733438216972491691843869041517891157747731860164243395545712278742415026288068638137368330767781210180712284181430242724633580533283733648090479523732572223338414840588674502182391554744190997051165540531380959256539400542575053344308561738167587189597098536426414786194776485327427764318885012273951979504818585188965526728065288887132141862461160893307589180402173152431673549732642262809247431926969625885524482475654084516419717578940984690762486589884398694762616925062557185324996677930337642828413262741268937108318368047060409435320430499221653395281981518263889983086057120118610163742562364729209907662125924828880562103709018803504231671538252277445484483264699640636486748934039958856715885446101524580816603356144598076554965112074073020875597209710494228897638843246675524879400796746760460417632107645735847285963529668350453563384553781719407244979080990512720472269709548219017924498341711419697094204434485272555658932942180341703821181750952497639288757005699125171282034609142496705207971806492473548949161164772652786647774538959753380538620741236730475429236100269763552368169495666192302754125912324928271149430452577889141458679461342128738057310744356929770278759772773105154158649899942425835785500936307848567618610520394828887874407877212923324192683519450532792670503383829489835717490371441678195903644764368765241595739398613283216969337797576499375310606072285741065097678969361473558606387168634884775213667726580421519895993521359164160756659499601773024811755921248124239123311014268711135641498194916578046168918908436082134644390480762518361694028491747062641883468862267142278618394038803310078013758086297173460383212219516880539699167379104658202375456044128456592111653178054527064536782710640561034936886964988372935933065486644617945288228675148945068498445515737208691248431160675323186703352527861638650652273478616311890898850478763059609164312307324852221542009376501777168601523706238591571001218766689388879785247708479708342785885886842433585403110850073172894227211146406191352921775826892545638961798809025891264377985450767236497752380079248461456463441798767690877146845150634201320739195480449024588804770590579717973679260332791565285385414854666064148483535038636265145971303598090744661856653471399829416369278479497847446611109686459925777481738144899133212732718693446664521663261107296337075222706998282917061881154775501821221025645765133266468357016236257981813682141127096718854482439823437118905080977878398160971104895174613488124772353487492628392574493406521430555498232018684189234263668990121681672732930910740416129806608104794490008014222896616976458679224057969263030708188961065005611958433684045847680126986942573464339368833076667285291258369028849633842403486961173160424605377913588497000632816096152424618745829014115320420875393308354648346910516930557088524810934674230498526562292427690355614630877323918846521715693789609349501996921858301472910030568258885375942405791190936572062994207858313316871127120368768920100499944103526732028722569878456664278063000979117081963367636468550078402773802050033422022100604224363080341254246695287222969053853455621877522180838181188156822151086675252697039397764535750674599050034392588415277177271267859852746169448873666710824316140151941407882608533623234116424580381535319718366220538169553449618091802765427418618388276524297275860138670760252287337342313360330886294119474591999165557805286036056301633498091830982958054420663284841580091235141539273976567798544432870113552142413925468251915503044504849874689615764717131820112089489003288582523023015027053142449653881559601678789909518325733308984141274168778730478051847310655604441688014937146959454225075373912817367110203508142276562827276113695974668575252224449381729466605620010313138897058574569613875157776506273405770982544209978131809678025048200931620181016207835490100342767123121636234902839383370470619270009102763660804179453695886731382107912387531386856589254066333959270782358863482402318828184182312040666720779157179012533114894523947272402882622565769524721113955910687658320592901903134139298985047431949198421126959996516771229296838087314183340105615075379622493823520447400346875095249492187540560454522416247469455010482583529837204221175930995790387685027151433509584967676547891174698974199346293185251337251380717307794887165673003015018058106290870642017768942740652727863854704252886629771179690135974953236661830205949011143213915473400002992462403937702828707839013947995618366410517921756206925102756822967541254019276144431278733228594652049678077160764003663488375153476164766020071469326435676819861704419312559779141021459231048786189899658906203477353933429893359070936676618199739809461040093965343776679245109690387451497391728393712393674842956290398102466245450888794547817320663854820448994311084647905074195332877255986183666099376087482792426613699698735761416734049832350299487920024736482781758115210793462832008005521075416595280413884317665399758369640312838709317962755162651392134537677716147705005696090095818040004615002618409286072348565928941716213970020065179792185126245888383240824701647448701279849417929504849756027729745964041798551436768225708985447863802256298318209703577014644792817680559213830108220596638215721939127955939508572871613427757520700178719995068041509243269451920782586446756619838277833615937791350536046519876734189322860885415581325940373095107728272651605174791437957220811057619016740441283509475783591372113108609255421601242265876550025760359974266736348237886117088513070096957867271633463596504888825757517550004041171552268849718214713455438195822606027249293302604814283862836205773969283807620687142505953909869818647946376019353018951500348961125190818601933961427675684354845973487797845434438611546600651911390418139862261390039543255791304407275112665155545300285811531790550641938863325244969522338845681042885662273152354634744154434447843430255649418753247871892853888938955744904341681413338564782403901588230409422589416737224410200735597709155233856876972386101459527002269591852369572676269072691891896816579004225189981420080379650674167177819793137397946187071737583738426096401942975189731601524249761509242839412241177771786800260214968554972833542326877665468994041599633224967431111762858425585151489636008711058892513566224437307465545957573724233029088302494185794773303428801877330241146047602894586517342710539610946579887984766056169253767475108121759228454368574928223881178869395777687746759689402134839829866277204024412058560079136085170034176841250604135008178545262380506907849476632153794930039535474308075784458655289442676604458114285863635884785769228202490014509825899020710908262633577087001580580731132871768949679437864748182412770988404282030255633756713540050270283272442653869715657335278424787500475922135833150870175636692466731063062475797733124850629522190303198629781365743528190862830697472686253000637322733375329481796187188587400878911429355536695217646648887637148866915091605927234022230540400963757348475100427474907149086050682409211700678724160615612358062244453583883713055529446492280237000858659848815800634636931492522781378032380851056616705932287925713448460920914237454898147853615118432750105794742762620464904592180518147042594847343209296229926368861449004913499084035740637326856835584762023018453824416482831396273996075924982032014593172657697050100671558643799518285003769529357941935918442406123513802170807288337321527369379506218398416609952487995824165245173851602114347562541653131071162545207987938480835245683259488631396434447315884183330297517728180765729726765757100810118233875439467082552714573212748506746534178130441788676979872359545514511961061372944883823750233932837108766671980873789034360519964025017243470191089025802759229252498730870986562341848422745820906425426225432512296753509678122398953931309815459394832323630368489734547259043303588162264992570395189861085443005326011992161865915097189988012259002623482390954613305754611447680781148124256142833797245808132697587159954420609069912964458436747010138350114317993712179222354529086622230684419787837527131896664858522191049606712688119586372938651719491464126815074553425645477808306292724920548546529365955971785644881070951475834160952653051275340342495362774010740690660477792745610522441501773188446898227597911594944857255511359372037130480391155276433965046419343801010732853285610746231226518624539568977635695680147012254072613719553504841867375501681882941100194940322182239180825614385618886393351598719406907700241786905360555914452108267928773796885129299565573599203048618880094769119175527499823672204086273709291303338048785753902732953052178518390006323397880366616762364773513981800662299952448856217266392785573353514370077082746516140935767518045470469817536733133337885215386516054930529390907218918080209614221471740690126687817608293041495543714585931736940954452219828473174298818155607151084661171901815572788926145179552244401612673590830653009971835277441471599012154503917598730866126501198349742475241929529256520990951476600007584867354625653672063062707194842093758345796032772918241646756110375900142350780377212462843213189242416207409261280798594701041985165276015700112521611166413008030779330158004508558478392979026895422484037546937813837021747462456081899471959833194693496638838785285868333446693076841842341635226602531621436926178870664901695003633918007971887789783614482558575170245845330130171709527389068361939429115747795283506782010341823857324305425593843503463632696840485158020796665040683878214106938693019679574880856935089076020451749298998062190562973184166062428130889860781655495531606437528377607767665868631156448979133214902574341118443215937453867855922761426397647374131673324753746108297426622260284660912715928581004755971837762094726809384496490893955952626686533085158879377711118359685054955935745731420875903564315708685102758323885536148345996664645359752766099487021796559231661391399274323265935356966738385972388866298503884859025834069085989331276501126517984856814755763201174262420216853539210737439565149595249752864142975027871453796427823393450742734233574196419192560147705863849748486526932513781197312778103916792934268813560330973167941229413935848384317890506215029461453527672212995104368493696229687360362870671868330855566008850552672943634162314092751218335250247728350556421402942018762162093564227279982889558698309836077232716613866857340013331253863828959982904019423073975346300832029886462576507936783396544219977205265772117708359893841157280528004037432184639541385312921515385381344632522100131192056895534506697759587381902350797748955632351686213495592548304626875325096062336004741265221933361768553581284279087019987922724539535056689374158911877631604100482735130876994482872809776063273153409362003637215900226309697323952750229850127954355566008700395752811375703067662058909808552821587334915763984604088141220687487460046823759658107666650511801159348048025700861041513613008638770843893687085370241918688579192468674766481230633227115053409549053549420889510376918207184433909713821594030883152687700655481788193530530491365986908251330387936179944583358894531795749494528906029704542672889212479501392880234170575100197860354403625665885553173874639269845017899095029358810043732454190100164203032819305710807215932364170307252226567619860193741288258408852899502434768730013993191523561092015529030450240511422230982423703281496527636028246778137792541229586723115364627649023548493568889462823171483439408965797516530957071205256299955632547905822725301181069045849323805260610112061207099375067454162576375536586965647772699717986957826433740891971145130480922708823408952863811152491668595972212777423199905187311529189953005634666637397649317017824302541337292007105589458418384620179567991302141164068404695368904996876156632165515255790981450774922932603809469805878244495628260787187849274964677993069472083671313440204254748900506915540715250735940460593656082320190729194166248345539161014070586535649981829544398277629423807621067221755386526165729748363077298951915767293860013437453869812891905981430413683456190786574579983953452632127938076307334955555715557060168836422133289268563398836627539497070808967263038703978132364104932986702046703175907486200362471518031985784618921414873725965272039359563877133148110537348213949757243223823519943471575179507282617068871911397173950955426965009973891579799512638848392373620809178002804047606653424295951812440820827710795611898924936459196318810658891680562007381505138257550442171573002568850861036010535320484848986341760842177284925046643125178762628973563165044584188849954786221257631404758700702411427417915339031618276255834948600854647496408770265107883880499200640878085961128510121401239223394146484623985753494249693533085914866200940784325183761654606754371148763202485999163640248409903351065559199168638337494953259184063248063766143000966307512621989629689090079973564169306419142117786460933458100096379758740391957785888401752815481268443869544932884481222913392017184458271355084016723510072725011811297971721544822846925589739417457196309571127650473484239968255080875655807590825037404040635650234172813015612732813640465689595217481120724559150869715826438419890433469190846454584071867922246015297577686526199522949881561683310600092401189974146428837696331226788954226466382850782720853201680210871712154341375104332971643853224803518904171347087734377028223794868519255194225692118743274250567493980185298079866481170904615117064278374019440505276478624540680830205357828782036571614854925919935884791084961920084913725519829146445224311002725181143526429222936747529900571103378046576940883020677052240183586890669246527328051446820434391779206703739606875475086780618786593065594266867803047477892370381728520269400810337456438148887970826144163589496539371085903394396908463446158448849159367290943004344637668999178319562916885312807075810982997958349201419709257612288565307382482080172317495459709428329615134705718772485935850287937150575467926627615605754836240358316330439967895482188770274241381765976052130496491456430742098810614812943751930075215858078120537317871050999386482521855016746524466005087685283177827205965871920838508738345134157641869783211036493298476690726989070762731319301784542698762638458844769661981448223704668851508091096013004935290175843578643613107441685017250099092038471758852644759900259092162993388090681644192642354285023897174859456327844812015394045019107949119111135355521744755158274126922585476262612338127199837032562430035690301834704776000520602371510371761290529247373070085307401862190267591673837513370167403766786700588871235159861053484594400558540980363674612200431342908372525585501011080858462708922363755015861112552354291613531584370827583998724542387683365822658253520238329072718180385748157084232808609096402167459063305934758826528496839592820538181818830635873288501459167972504690520495158799610892277356965322768281512866634196267185025902680046308526663088491771552154770679753583850099947343061235477458336916648537838657783336018044609269727235315571612715980021278951376106761708451931695645238738504309894090807064883183489600773353530067598403295869970006324440862885575814171062159055872989836222711674541646118389356520390725580944481413082352806745179279980231721733288413771378267762708416915640649984469059447379899337692237176629314865227962484662339802216045477679460888332587420264322824079979184235420663584970286883191485104274080093672045599529844290920939276431282714426170731863647859597610714820781917011774805625036376145656455030513164371831723092383238767625381150044451974752854868490827656723638414680102574794903469248764972368325014909050796474563976938693833048163154658282334609781345667360716707909084716801765282977176509942815122804279885154142282204781226150641778631061333651616473135360454650019796923206052492171065326018615787475645085584634144111795598563296382380044876671163365756929425969146469937732263232611114281658858497172969980673940526673480345761403251367727183541229441424916674813981915440018747415817469269962225965666927560671541267205647140489886028077110858162391269140344419000745757708132047034777448355448774881396786594436529562286594656537645250488268183175180480288816522269222015774093208237622735860699852672950122235312311416386476345420121902443316766669853343839949663888356313165279412702559049758356558140675271905088059335542793783129663328100371061081797242720601073347112856244311273475253433043655634502269196288840481956832268124547203336996973974915488999851838553026578302296284009090394108477535446551665378042862289315678037866386226235497169027664624694080278296942234857790541043423801200975103543995204996175762043633546042223037970266586495809521146885233001593866247337335139270464606447288335076802111178416790089195425165174429271527588882540430742337078728393213299664572037998293008642205703577866759065041667760253250969058203578448330764269924525016396904554742562294886010201136213425574726651792584931719416715675565691615163080687661773575336577153984591909781614319836149855627860291571190088801553844886400331235009513353116033892506460236583683369037824446523450373923319700729410238861378350267238436295422683840313224606409145175747960098387197862423428613172612154368294586852621920224370480854710106309612805610406954360508735188966536397905759711918346847921637615111969108690709127509063897245375600871860287502143299601881134215439897184728395078933387314533548424676144029533006337862332847520626400205320482075347511428794163984028253387651852478155492639622558068725079074702970542482856748893739709444329909642527176173150405036004703004764597570063209380869387144716887097809738194797200831006536248330553749174406219325116180802659271357102279024308195287436416264105229703726190779535143167395905834556377178176469461274611253293129723937665034239970129880633876764990588086463778326927205422204241307675085260505848795406838143469019241515960075913140389022990998648349577184039751745422107591365478737691228983756766879615067557834961632942149884792713515076556213482637135983059528112576458924810362353220782195269467776118698434006714088296811843438575832533931425525183641453689439424684088797613798979174728940439885785114772970656642803125181752604943933124406283329666682454628082238345875882542442722024095263598563667338319217011156026613991145452533583842013609617659798938389590096641450374233324674233229258167228040852723264158614001660567813314138223154631514034477998520039833970788890901750960791960346824760642423224597382707657122528385024841529992150893959309184996703427197051167270115324922580044136450198791732463731329549091947472616565200536260423797995072497594634673968780067541025965250742286001558067138156321570715812407763838020707489576668255001557069988235330589553208233306384306281017131467699114591992906789208241352152205048240720561795417487963731090112470244565562297956036580430848447038918837967109674827353515727387738603030848019658443178959754237146350458820016819507366138835427363963676535013894386592283061858769930983864557242981356689483309833882754748360278968651879069491516439984068413033385178242878611908545683940472124273764047067849949599413476791265143958535547410679034381338030306230241536257884943067874626080798522436070010507939825821195674083289013239396866588796623142598619394875333450931431046899265028821054480628439155158163284662110543919040897191358515571798607505006733415389036182891229154022984133515350706164977056543116651864346640893202350600295551311398744170630294480191774248103458645861064528630417479506906306995681672878908870704914204535680847736000301946863146376588289349160630147408226507761106097171232217306195393423293437549231577147190633130030322402044448607891749321568380487127061988218869330345395750071946268680009593440847935164941684216864264674570936798886733154031777664759425095659806981399121216177783512158955342944990691124940433133246198789427142321177601857546729299604454479885874945463109605331520853002127966233326151468089004799606263833721280755999359128373432502592874816623334976209349551757835344094598942833778028130790507264114167140367697496585400539112588143682537485173917281601104622282911895014737239219785941341691303817108649684325563009894622013259715766690423898813159087569234046963901641147697173945303073704298367073286835709756443240039014459322352763419412763739756057538653302368929678483515123462336097311454493683336195581441013830223591664503105306362138899196540921615340799544097522386988930495452038834773465684392039085613810172818874172980389623059284616951625567646118536004327316787817317679081557898946498252510825139351085679077891597059835792885418481097962162780536688285728723104824287467524441754088134331203473691744333090569323964555075239209469693899396227370753658625039789244113274346719900440801801060928815441370432541792666522092931848151878201895549310523154161925470824369604420800013624590795075849402882032318700618984627266992233938680247604617682013700001293365923795841519899450071521581711254958828406317516764243791182231476753795417645682621835303546105565192799651553822869989826277295451267134374738569251382141421636040668753283287507431869286858026431320405496445591634367862003702371884007975034154670015014772097629894290020273892748086789766610657178199140327084881188115566566252797278901845563120181126046228024241637792389435378096153302923402048108690744887120107558596299096638613845656485631087317060202729831070150922736534469093765569465854056025090882304943274084414659664815478493317909615655150798020591679468690986446110313444803706846399228137929335727342782150301522474011042556751338998852683583700246817999460451814361413260369120571531525644639139242982614219642525574733086138610730253329510919313385908052608439891849953543912422951750248032053849233374803362241777819566502096907311636687954844677943182564074356589282396292153409770899824960960303117370784402669175255857786467909984867721674764585854724183388839676793614619764700629844938058053757159569552504117205482215840463448881266815443820380506962617851327249619909515835677025822683507892537829158210844513692632666854191886876335944312811521978418749280369642561647956604590157809065578337571270512422932437153421521925852607998742632720393198626044382337455635822343233009250564779639948780727426245705299060551426730061643202282976851363783064617769384148760815856826724248154327068981185746682724728471518572681857300457290394314717613025190496954575302436783203544041125455117748508417239298337927087236671980403184332369389971544791109952734388686710955127128987568307715476643724215603145574913655059998158159838769666676631978291545848255188781061454795956909100043595117367055606635319936234642134384679197017680688471659080985998549362187960384001214246516766568683634474326551651075820733068037513372146558990598529132643444177344310269274992585314887167291150788554704964462499178917982692898444772564038201828870402996485254589164511290657384773905067762642964444320872910093657914935638355640010927394346782213861040269396770283332245780838608002785616245257422919176391976013148744490411971894850129707812572001439246800065528160533184965102548312076980717335834485884144192934922338951933855227026688931973865545036745780446159308220544121738897833756981895381640988030871757562259847601974784207069327379021795978007691944973156134460711658631594322710089156494684694255050691141059778857147149230928676243036615782749904743441879726306022313571685332350030529416020919010888315814011981456963979102359084263185533024445446442753158512890475660015533307104393979588970983131823042282671721404481498082796038082199146905566782945708931227399918048252981716534769744329137875970326134213413966852798516931941191871571535490353767292392269160977203585949715644349482541047559073435213697742353728259305573980295643205930863622328933998327175463721586803026622924270832905047147286623925466978181284439589465230889483004744355786833917661153251010596524998969950434474699651101416536738850088398590670476506167845223186254509001715380884737967990640539260780509627494654100266243269584884472945139495203203588960519257754722827905645591669382670240439321470886319105343931161928929723849728925596943463053805596933592295214095220304534755777068588902342665635124164332571553790362106070486658225557909930908904035837431534631983322728718681487993139529823256885023543369487844248571635304225043521851225644738549787564813839976295761159112021906315497738438082963535452920728691396691156641730824295420887061816100849154906325461566219183944516077327459553508311767873222635308279021439537540652708431725626207945354269242222236256150045768971582950475598691204097981829380089149586440914669544669568974179902518909293966768612780448466934489198969970524590247215786089728017438608600078046084474600613045382244399795438013290332254743630484447638901960755449102112547431701592569478438410216928580135421039993254540557441578962671308875254349567228204603515483891831780628421337328419683570257121406381378524832139689609433456391149716108301981799824548040237490469073158869870325920601088533286624621174425996038530791301243201399681721455841480741389527957253559091578120703416713519080548125415611085035183501490336581968359470531245520517492714618830554276318531945996863950154540691802900515538034055651874718862642052980981795309366624258533373742340486350863552789744969320522016133574388570880534465721296483130801705970715826565806969867651521653951829395271369019976143906881396417838742171350887842122230852009412289302664055264171148799291910218090330262154914716388549260733222073492352712681881455620644284079093591863685615988826380060320558770639612635803414412105521858968430410097298327414424425821547995929204623447146756749152465988150355327368445926934180663209030672860446210716843802566031349595552646107522670349434462441774621593879648069799909862219260143125011706635378114372146226356019361648346699323598055412446385272025054853164522649815754275086104818081605307914448257696856062364814921032295893473509066809163633591166927653892026223475529642085143268600507424292022820513043249093852754791025870485004753189843766536522371697086166333277438650142188481810616319566568147483739584994853306357845614480935681052093314688328817580558504182601458505838823887913790660465053785616450298023029067958506221928741920762605042807802822444566523337930346653992628455064400470307884225782917001279097414650668543514049387744795431888534836580521920807267777598812102762151111778107956780978336674745402298599665858159343056662050030211085974778972064001013252435841011670054675691680087072606074025747606550237636996721482537713414684974319539836338404239989096328091734117386151699009549904064873343747458738658706136927821155634044684439833310142099865345923262854962883360823143362433662940238850043160091447554522541727986912533030212271305813649514120074245287782848817563877968828776650744718167713160364488346193065939358266060373874679081341237698953793530288634166904200090654566961185621525311162476695853719274385640442666942197340248117212142596579047065323381001295758784455934153203812183771701110504287991222873911637967216706712471732849005225947801281799788070294503127273046362368467727162918301357398806534639767792368720937492935646278327613611573076517403829850125271762770240870953527802666200388994510111466487693050664561274888107069248090010838742672349553321439704910308751120201762856042119931070975507936337347144477602418942757502361136331784964374180979966188728624263608588063259827504545257951466599863961362206130652108024215582595588659753561611933556759935160165124121315001373212270896777377019992586586036003135211994381300922884754862065064090535618293435800584336141261159903024102432536729904482093566293806400118655386582682905296791852994479659581573023604015545435279172966671037637372037569796443593071691336435368984215518334759075419339992128349672068467276611643610994402566777911126970457952457873709119320265161675101587515625317538690304671381101584575066120716728441076594413335701638005241143670944247077166062975858173615870979469316859800224052124434285868582673010788243873013450071287638995683493808915081240447789261568587209679251379427309965499463780764279981422786387122765334502486170789870713486422935932011305307857320104960581627022059601419442864257965737869143097903340685372257003840042661114699815701366898809504255739398653915594894905603085407229412408034506315719056464581130027058800904524187341962764308526122392953391258776188734381383220741241159080433172353054249466318068209648179261187179221262328237283297629145466509043064272776322676227393647482659115208438172891455931672025611338971178695841363383200846579342745421238427988173891085053037428928103741094732676934686150081939009395971802647081442661949256361261063383266727948219349583161269046094224222619605770719252185457648906928478779219275211457927436134658064130272537816581775860002685850956870733562508093088015591273101190741730898889582014317894227195870011436909163548932372345655881253159275658566333467066244261940212040867850216319580109999258911418589317423654365406325487214316210589539991712430107005595009238279855037470737331604938403401244550784128868209690147724084604965507649406070432008110236675131685161204870259766894489369508076406610735596626666915547667510139768975744122564181222756535508095353806139439077828884603145373519095449126122948524451666396048475873727242143012597480562803983093000591804290332938404989669988998119138673987714793222957585567879329423909609430523974977871524681887012157754912012079717540672639661309792033328112010238224266937642821900777745218099507027652480440526892549829494558668753917089492970792830125452028964070859867359650272573215908254560161288609297634734665762931541412317200841368412741747795573792450857804051271920056453476041038962526871828184746714807985229213665745901904728181297836676056871283771486806715748367493353876732450051555889813868677080371530791519967538316621620577006542979398754762256771721966193208492093669509997375113660970660744952582298837127621420081949612304292762141878797345085590729805357505064450813221045032483819337386256596540837526513549360459725491721674537552434206168317856442795160830079167005688313080972034944324618221266619098721165518545213826867068665242393423948860725325994328815031071981993028562706578907510385047990160313084943632755221592970035280287023449156008075302540461695715927103437428952065800895676049891585196214200954407985065159631394075455099504750480896572907847242480584842122373033512567730337347763479121639352058648813827932316798668713556919724872954367223256860487119738580627219998165334831988541413837732095047882920708066476144112349847389236054403638392333525629332478800768265521161408675442089836398395256766234968320077115947001597941199628917980312807960898440402321063521026462290440028269285941899012316345768095714764825815600261277417161889372350804910556155329888751894761231115942584125458083456647102915176899987839948575115974820086436646134293368132272674599841633105083688120177243597057538466676749375111932498468596550600519663743939047754102046016422553598214071023573903673434344518566016225313052733496503773292841884898571425158001758110274449091361806329415729571911143735145090391900340415877290372207284669137059034406580439302628187710729573200942439168612987702178484415204043419160763880124348508049389871902727552641045963237458718700583397502948000854675525568885673730876602015186166025475220127424895828491903207471357170510751340697729112080512976830438913938573989306709286814559299643627995556441184695881857497278382497560783249412571163484645841905649703567417345223583094611219073018132105748320157682313695409788422487994964531911576749192417006807222318215047144614144350406841226002710838137686304160581949260015143551567928244038171716319246915521508882795564697049624674335056056489378896922257146537478305677244590763490159514429440516645794253183123011615697466801735711215021212935028466744562174863565921257930745398389199825303499729921543653882911282027876876375695041039709722834433071684167713131515367598102786660653226056046391771173678745005318782377762429921420588917135534648203549667539357788698809530618717737943260573365520698486380789264588427212073085234229388113890722897781067549746671925463730941467877721326171289527191476540537213978600668432174375725068292955575504277733649770762019911027268485191513425103726258479343879170551765996325325339589294794397338976658898835275733884504984370304996181474404743113228231864880966487409819283519052756885645583638079651997941353313719164151049567478230283560103797146605901955725939874515098725156288829167761477948942491617793754291257856663285894081452714780435531687343688892388196327975043534243768758086917502393869527664053147599866457693757059621544291284834707329612656721583132442148708437163425278246798152948173219358509254083004609403543773851314443632448370561130487750098175457932116349418885104907775685071519565530360179598841428866367775190785590349316472631199008437127870240920930100526899000346794700681217319028468125685865955187346349635557241900462531151812791805874881564474733675922342077244745206927865211568761987044847613588090388156046775178077031167227615171647183672800771511392420126539877871547468288176648994422543278279196563018808803299415159506846140921265368200295996433113533497654718839671665530653306534693581999749472700726052853088275305200124606272298432982626150758378903424002150608630273691175247868680920821599336069606772204342644365020036552092492440567910019950004020548964680175330035460479086540651520106331792320414689079161198689708342847445178138716855282970965473713765987194421387255035135618036577971831518567848082442699091254376321117648090014205543477986245438792801390333161066224574857391755317622633295920797578925645157699358172844708500223173636000396404843294505049770268658453577543775278821178558416519979185532718652761420927471480108025839778966405918257440999266837232081408826049435616140892718653137514783935919592612100449823915660286715734666825537541434913961323656904535031505308827537453694802402014969513026439125405230747354426587519873053396422542471548430658575339018064900439040242631230060614194497374694802161583136973522389758835731304256158834479632809643438676959324829728547022455781637127554668216952392216138311019631527421727991571580461759474274049809226962997633242272151293149383535053165985970784820224296081234883473722950133338188741591264868462701617639854532180775929307531131048171064997537648904593313694187579680561503531408753398625810280055521526529859014309859509747721333072151405621148836315534959960496964466470108583607435259455364459632642116775230243868387385931722490733025310267114578047962588722176059274162015958979671909564572999516095578948591191992658970133351022545324560955221424617281287190068072974040111565380060911528174314065292350273326225877149827013847120087410433755178952791721789158091753495903946233728975439259108720210653948390899894781546210341056819597615067444976199085515203696141903368095532635589971670580647871117091303300015554032480808985529548727783990341246534057179324003782139814938577575488612462053280486779720204058383569046819833138945080366055261423530743064159765784727435672487271436119061326380172134329566013018166307902459524809876907089069529735749058743550025649731430677555517267585026182833874540952174989433350752747376128646324012547947802464610329856085984430313109363496020076714280857054851418669014225578820939263768324950676229462241809638292699300542433900614265056946174248907950108574160021985967175385473780740405702013977083432475604981821094049211350573185814911846048953378171089639319537079527255592664007647525092060821463677496183128854062664651563783577630381000725659312959307304282017799526850834087655710932090120459312967316243135489667899773387374690805201055594314939684895880753975949550071437352241289233342108620817592438111976379572592121480943030721362049032673713985690463253842580228404715081635694854788890738836210472292948303784663845327166564805461247685451423516686140451423190235844898258787205404368021338704902136977961637145116220189072013033583976770359788099883320290355828765353846518589658038926071211037373677816344719781476649126520436950385578268452939256818290175312791392214190883425978773637812192700500906830442330287970277386648753243143542090195290318349304440610214672630921642010163812599703024758272220497562093180453712158782271472722587928912779286245593692652433274923620299578096437961436351499467545395261907988110437420891345986135523558568934725628729961639343939871669188790157238741553523983658359736013815117522502117173815325427784258851426298257307559911649909452621719094476125365848630903658739344053634178914390646784283807458904807206552968993258987958612175005353636740280502334655379785354057485051981886253989103994232664751207898620157284637450025560109834482376678510488999306971904387980950285659223134184277895022404583159523525771751586441457620630014705435599728510521093802734561744702044521098188920939417025187574865695160656081246247232341441299531446521552128123854005546826641857469072767941619439621415739847312069818173577725016733662784169029113382501692299475551892218671725133944652672011576554120242805608606044398993018612037488174110862889398576068524871589797117964207324944290519421987047759130170543855270137154545489636765819566987603466072256885079031344638978478593509031120789041525254270811126308779915020671520756362592978342031798717898229091714834580926521196935457427614572440716117668583263571858482961495481959062698057797633264245012792612700840518534958001045024046714247899592558073920523303763538345482554958127304643917662620097819436742328466043420733111268918990623276739036093548019795333228552546007845219086990010420573481410452321164001096428381824735927403219446054222399404346612188182662515199087654686715362878741057198915131508491625694499161206372638604574649176794639683453592700527842435945728694491700537975557499402817947467587506643954501891725499312485279857710254699981670076925702791828868931003102169559391213734754222522734174314129376776412218418966525973621586560646281623403339654005241678555850763475730751130173894719632462110589952125641509690763345514804900926056887474121875404417437364290594487308241671793044810380772859223327716487531016274471165127619439041558018507930346691414719885405662706260475290934935142174781517742025742298698899945565878429956354374372296742838504163596206426929743540051852182929462003211994237600035239791034082469553676012286210414212393882479186044350586027855866138223256291501359774005010809426516096942375066327228170272667047116733689665017454165449056525777329507359660721787272138949503334390412005493223197469979802191704059094676360559537986989894539801386109703513543037095592512395557153902673755309079944292973452675287179437576923083710821418137987196051681468986194155192820273744389474786109052765316925627691328542402398727693130047766988256120196589521089111471827373568651749730110403600304683750894144248412691164532265677194186396062100274569487923179636309926855480457899610559015232731678493046627513837234237710507812213939250729354958818855255945750472536281707987376574584134435961194260201499079921894880751893694619810556221768145356781530769103584649809304571841907203125901619163196254176322125901026059509789833378437520092308234348354448178420318900911701259854297280086401587239333453622287815305933739294939533551936543909783959845386854963849855639113827381066106315184487085268778861303956926162244947874019995283820831226078959695119596605545314667234670319613679176767172305774050463055555495922438034690661216421301311057879469136168704514528553503221400513454208666400362884974844901497580076755829528319539196228262372682051043275151448870580495518112176528942630604537835831202895624050108473433103337320451091196034514570092979624705875902108179125513284427962333996378696699948904626798672832809009192101845984642511195404768397875298455718265968611261533602367601328899851921788412070093857379123000932380859874017673720634605928837919190299563028049522121738505170335780792002962501543216831547912269202147470032384060560026955836097123064483818983775850865122323198629274562286193835805419046437641660255713887151566675419424117338733078593742466631034632257619939172489159580686504808434078338685977849699345936325573699988565220044619774263311826197434457117544761748696322870200053964774892072022913648055970192169290962390987331725605000778949225520616028239438630237226268806627487278678124305161373082654474033640942294116993254077313405768949900682672435587109987117085192603004089060563563981417952452045788438616998492313824316874650819702164526083050387984862486361386930870561085243503364150378896920878415426046905089641111535591032455180411372021235008521642917135756714559365058920013635558772041303690425383563764892694560048856098729517182297028062516387563024142685024652387682185796518202302591156335509934308095409806797752809288322042530667780599424197847328063751338854109039849633323979794138189987427205181684216560707060173930747546174470477843600973833118030640377973358346680149886144321585775194771800443502167319023887508751433302315879351485743380242318376403904919367358055166968136552411348051289164435034076293494101009019275307797668386470577272659786191534474266418732731177666249222483802520419360602036709277985443947377605270575211423172715610438681749189512473264865692260273395837501448632816434187928490557248936991005430519786528636015984778391460680693218004537722825392029317358008071575507600364846582549037669897929376022983611137231744190751118731883388327944249960697654091580318912479655256860383473356157926247807053070688286586765192231318207533704961372426470143135538322419535267517462644941579291142399972577989975174536020007639107026597389474290677957558768707162228480148746760696333327835800937359035796960821252051380522195160825690264851387329891638956018042908697973739985782300461484048909563958988541284184721106888852160183837370840662285294481749524558015956585494027848958207484599983475258291185825341763191630782840432813760020516377593327077837577095587228744194857207049019259108219766643891873798089186097136514300652245505921857956084985062445766977580777903230751173393675885016344592222680773828381735028475459934818649969185624568320396697376235183149769443960078305697897809868732397629287048665231502937909884011917136725533840740089974411018483604394387067408734680082607996328045632863705982021653500088158445298413525830717740219606101223091131399408323361974705796064903559036623980595450596886726232260482515703632387821780156260772209017854223535616966405812742608485462805375418163000854499939600608758101722827074953507550229341859257620176333650667695591479532899747868307452775814091751536318634124783751719438739048520628640516530423194646529261706158795692113745242937653946765393360440745118711492022047917582800426840579675059213676557092895192646565333134798872570795202719334848241834186345121048045211826884623043020678439854685209982608400486716327317432151038729506407079256705723841116796317964307470834385000945898947671441229319022723320334936697739668978061291701746936653690052106620724477321023994562421976618739509973909698470515201559848676179573692302423213486806953154086863080213139726741999718775036720187145492680321072085471586230773979910335619839616804526818954970626660983949862009953122873667517507010600745834784098755478044419481324075747625814362804245524531202588600423170250377577466805135876293275988756988070169438326943297905038590909873425285768227672733778968002883583149372436491110258995704330122142145298120613859383343908988665029184208593538200776781829920467784191386071838109516738466207803487949954302154622634353600242404617040927334241205570180683421828524614122716776648061812955752581964043769388097160058720226212013848173568469072878081993861563558534105618625772403675860718446280696042664884483564711369109713443867508299732922805784114813060980630748777221095642231783057669949329754464115894247377688668090748867369709452759317391579266910479798919261081573078431698820174529111984532739036008773158183536210930889296714073626493271006121577819384194759334610732890372784491204536983900473105448125542795989250595125540688926780673323481533391293153027124382994350850257018014952695214215394963554967111419592158538841046044611386653242152240924313839943513338925231605392345628582070380393782219175988731342128008845081531956782059246401833713651656040388873750435331661512419120948993882859653700513664070395691396452983552964723226980131309130912821102684640554906519576633235290147994157664155169208787050657883063709550687050332442621778589719155840863976020902071514930211873030314702376987308356085343198787986245569564811427505871585171909568619601388224851906823527633749313339737310042345230023513963738370934677288826102650010520346075268331308012222564279558372016949683505327767874002896524903124712035388618102121174006442333807132914998525292086472880034216771716112833181079342136346572883101428949844131656149110243768357777835968582727939158748623178582663349581950040098138686625217281483822748117435486593017950354924601513181364072841048609677204343499551809374339161584816792565376773326100412225305148597342227920631252826105746838094732651012293235985360024886129735546869786016974547364968859971126999582653341964817545866189002595967616182221232172219341017526657066199257311997060109974225370412434640489471627293270884598603116333413828421546328217361440271504118840127907394095803490561512193854069492944263365898940976613405257955394073161551007065156452547089187676777928798178800651277196526518219601536885054234124135082047649129615872272499300028491791180251357994211203075198118309185239281599175446490899514657078941796760527164074450221373562351805130466641841908518231546301661489447467815116569739710796955417889613719612727222385581762660382738624739834924641357146934730170887614129536783697705006635593635111109171895557219489483471894161609685739768242340087672131540462665891469279120208246342202555952265247257387532922128037892785935298681441074644160506660711818262866689826610147274686479776308547611203654195020787232579744852151336927888339971283864622576894110050165653066010167781151953205827436774886148665324476275291183964537651509908438602188659461425325169129526768290696846242364049172844417434231760693921221475702714161654116621029722162946983546826457157116794902619189948620313814445357966690828626403345379262371857951840793283846019985703975414986288282674005631135379426245776147101738894350562873040377643256480339559220191016159386970149465566885303973402202825041881733877084781772494463375034299330141251335375501675223190418796432949573896901009335246265161706336530357396641243058953237950949331337344885451651242692729391365019765274062826883891899248391712094429505400870900615012982783577901608222804387939481616810213501354112521872290948453793585667537244109772589686430369744175410828721693184064111803323258366310898445917408706473570479112973055121650549343886740542909801815675602018433825155716914731985457998274116236767123845560193304894539324495589637148296791709854753418666970114290399901927422612709622086125228072452924098181218905619693368401062946257020076368757333419863636561029490840713205553445295804409330712120543660432398734055800005473017775951287437960304192571230679424422252593362479032452552321849582046733830317088774399928371060189029124159670472777539655942166298214596815667322717605437922470608554246978232776503925979597715711726400305879136245361229304750518247252313996533857972427233415952301249942956616937272094415819408529720979613266885119011078772822973716413077973346390011421264299748564276261171414525306323577376442914796440084469778334403532060433486089238808209315007717451309974269665813901086517996384789050976912934281924314723022435648092281474481973398843352183834370259069992087233290319102896226002757768133029109340237201903215025690421638021043836927162724163450927117008330429002264737000073351519373729477968064345511243158287090886820018332199665485681282585213409608846997595434633367438568280808095244263513606459105741085705609628626355719807543728494333584277225757435259150397449648157214935695391471790271396584091823581519738509633012766634262635080961094977926459833005989673598137021167054027456173356948467766014705928386770941324348177501451014235765455534517027735527929725718329629567015443832163118871644981856922889408616441001311524343388049969924582525721472798585626611830057800772648525923434728221716419181622937904334464184931563882766786539928676565503535969563790273459437365460399101592187365003398119811024857337286599833024090218183978265085524119481677352099246714839506231846840606400904498942444449248509578390509474423720937081532918927102028525471998303000233552479632448864774280715386425012303644403216219148329258855890084733475457592551305859162440483994938438504461127435252666358441583862287043484584787570835006074670895840790472262037499581709715586037787654877396605516575223143572323015644780229946298216906845157591747719837202390219677463027275065468403192254271524683273721471733805655119461097337835236681650440398969745125319558246119310521917774629031169759287922248782162377182357177522019107891105414656287124271429302742003787847305142260251280195900851563382233382741684699045320737422601678922146123402459552920679755818587161195605297079973445853966049858466577335223845199219937664237070998742217815186425012098009470764498967007471008576341444495266742110559359118121012063174550309238455844242772271137106205167075966955215080443054066676186994383935902039973042693082918396570356981044457390604027503304547464610250531252621024345273124722696083948843827620405216692554030412135873940362786424504133367665148154891398462626380199740494124838278650614105196860126605424128056452787727993366845440553750667706623381733417808201345996148845248751547252237002294528698833046393750928445755704332745511242346544409914520091407126453501582086233406753040592643218970095064851105433794403400062206141568561054979210875090846449403746545992215429638453008122297546434743131522404619457491877244020205219052289206049185803083213284488172302347871397465115377288966635740632753573775768313802206386658382799634317037419058089033066963515908755195652053125343615020162721284635319011246426636126649602344822679809767225126368109441202283985628109725635987899574752413792287296518438471313502343703968298560585877960533105545820211762179951994844409453501439963706947110219941828919269952002028477330438148328315518319685202824769529315038058618925701390259838897517407630800192398094701577984614549673208131018953712309155652260231387396897397988551037265789986587775427704976181705760357262158891505754801171768648182421704460431142285323520251365846219450345242365123843710195818880889448536602357396276794532320328698491542550879795826281622688232201698121364181273518509275951552372163468656830476338615276582202421722655175621072148972488892261572418770391956413159845623884917421358135050044030204521364156635094331169155087645746853214295949269513445814936341663791637830376238168528926823837617266740646079217029878070340920130752666951875527179519371674557737240074627650981134856853625859663253386907074548685746870917320230475833466957094982414583923449098989954432667849254267508458293709710596363375973913243365610432455389313191007120093168315170024869301515464181493481020041491267301506251837553158980211300265947559471973972885023267390893875793811639417712832451919260025130301636189512458665260814132717987972815139159094941783195680249883770228388027608866427390469977686334748109370536922220647542821031922504078058988917173010050406461603148376318915173309903092310244597928640378765588000746080965566501491854873863299767296827766422020779673620218457225234249196173028814739594634082812780435831642006268382185645384574333414619534480979788674482033493971729100981701377291278754506794595771535050766615009081143651534727199343149412781642170705466516744221833726583880096481443769767570359112637758726274338702301169431758775541457302334841927416254165398484072216805925210897984094246764724381502433921220445592281864133944829596428173821151048873995703586439235462554273204868510682184693867635616327619834400555820875374900008616161195297330334819393366334628653451523807952233757395888679927448710475317485591928013725858377398613716861414689532651609678746398768404948290450161840613372123340784283562940520182646426959016541331226286725186566661857632426566957824743913986622617415299947155352545722263851086701431003338246431811708898403842093806139932494791349765940663898488678386691187629433562146725640711622824943407830252597984884936794714363127635112050816066429923677309471235564904661488173021533720586344624972558268144599441724969782661778491094538346613495721807999638323112894560531917660965112209399787981780105265126225833862787751807456377173204606365042500153888787071132098237442426326481792621534270662671614108990374404676289592204741323554296453883491493377235104228240790380779496748563503628458304849620251901193833292339090085555468940132096134282242496663528885709417061985783015710431505203766661806769310878041458643187412660927498399614537827206195820857715181113456830435816384133076110014049488323556920268958016798129091857175927846175341730552220048666514396802216694013814435319058000626936158469207825144449482909343544081712301152071965999914239295239865204688407742051040015832650062403783221089815397795577663698187827365594497739493447711056245961414844560958539505804172037950817577683282393499254223965187600103695300426965454753451360840914405022617196506901930096488578928786568117526453056012777548825514982070747916823548286227581688244837182821064076942485139167117051530055346539064802152380129487469692684951535237735150226006177927936135105163688560473996548010300769068151395110957797871314598059455779889755201485143145772573183978596540983562618659361083248840681142070185013424450943329873427585783102982509738554332856671875845810234881265322154890848657477402861590407713272316193066460342214595290220767930633956837160155058165130751644809654879979213813294643010776313967038766508304223694748569509387684026393373459390129784799834643222701376381347986323307632702152229872007807401370208102574217033950842385386114037931809770004818953942521851113572393100706573575163103969818810799310194400421804616694031328135717034252059986510267902726494471909398245185168996869251185878218995482744945463827238626351168764917605471966165423073081066532583790989112690379106450332405696921482872128752869341610233974784331357606802589338513368967949020546200735616336836039298096170611294822463763474764548530725196281673829461622280607291632201583768757902813055286595345103663654620406562410927138892786102553372550870077387761615708448063139899687760123880952837240302061021234880066931821052089798717579333049779625383463897200789941955847573502916306385841587913073700304420479303458457743682650119352395624386138559089151546207036517266282973711611030774360541379443895135784468470489856614394159920480595656989287518643756290720706368059205365064848625148801111036378048547371762723076286681633853722426996674503028541695669474421461216154045743797145642427012328850064973808914803151006686663341781610747742720198877886364982930646875705213555898732255071394176040277897528139379897752577154143986374270468323465487001038656727492461140225607511627725064549078730942063198165539816354505554171089096767824176343598888851842366649211913717977598295812035180551630577666880935278365865310900962794420560848212598992558411350430059802185697415102186518161130162879034262054447770946982066672917784044063740631499476791998107269777762909319072417272542323663610975969134240224403321758236865759069549124501084534220448853135459740199388259838212901673842159206187129405370741972881534398950121275401974222569903771233652364256308227810470930998803637748036964162809428429179722165394205514396775313757966316799710273343374939878790352326668240445576758525859680124794390583057485861390803542354958848612369502937322549968039279362165943429887682912685635593064040389555571438611317791753725710086312949828414545580010111989466991876463839580650127337467001935975505523121321138630344394124594936147154543779276510716765349629069963326987666445549873352092278364036964958195145698328123449320660203182257341970586336188218456519141193673657418649938373625097731145288584711737219112820162842718888316691358439857861691168798964201211129781959735001718497302839533743244566072302242750789819104405652871146413109753304212918013414006140749119833985009689473894043201828920747845551828620440968217850766202086776406553868677044848289487076093564431647251730433217310142887789685068130615715954122760181944690235608390306968285269248186083851977028425626607543061284077433457602405256624432340024137605081887296429475045158020253174011396632960428986809271317491114278363186590051142604772118481198897683965050782056980057929074457033196332579769737508349437356581209891972243226423319782447280395338092213173291989358643698009022727451494050918425123984629484221349154078646359996150430908541543865234065846982398834787164956932146777597826037757922502610101011922333529563526236054611359187683427076033565963923109693592461904688074801456641974867099408449968710848925272136633221705679478606074842150537222768473851657730046102899998544605510234506528431734560241747861678948150538494225630691824858934987777432309223831342194880247598282505840369238004896726064219869905652362924144518366948633401156925557397595140423889875386612836522472399836926374907456319435084237051109617608410638665481040986727542691588558674760063407607018027274213313099413985452331392290465877071715652723764336406462792845212098569325132436034704317119442868497830379261921485389903504195882872427640435931349333036584850739023683629974001410084511975613903705300665294192854978647927829981187177114940163479702922855149476926735369170591717128059955424080529108708165144458320301804016085301773528964718904372248421625919510628830523967504460096813783469537288384155423309213702814465820275500229331879821966928090291642167917381760332002984780649722145215636237880770655750534775300645222189610142666714700849423729617305504615193364361364491405461124064341863604175122341940678189795871993784190294537007310451721520329944537077593994507793884538017189190645908940467922360460856558772451679649485804563858767771399313898031759785564626399731692476239499185186246006103948974356471646455057348844699578390831933273544159503628430642878643577307871167712264857870094754906671467965661541252709897344186914254283416000545327355654030906845996468774575851352728192848943585628396644682511836929558870277787513627543577117518525583639224798434308801730706083251243170779343257692772107586190232396698406319023229384859497169408271015168293313909724459479765776442983972441741873348470618370948720289790203622280017987146875633578909544002403298424150973404525940707024001075301414872070865520967016487445491976637918529031016126414970513464172522341570888312046906459327409842995160200310021176830945010790042050403689233904379075244608543361636978534799284851105201729044614812916717962671889076024738778660624777608150921495125036443810356320673905221979998102134378144610202092274864898430275086036866734219378376123916968211457526439406114511013294996608494890011585530975423957454189117891897484056446943475887052436277354720727019435104260950343130719519750304147027542304898711065022212130606151575646443016960704524002589314160317501219314173484373488021114568855976262658216577261599383622483246923773193140103884352946995913248275344022966988940367986219236708366017892026445692362861125542060548837732309914990673897644349249734136376634544574590399836443597738520512538379171585180922345171240961620909505768037160708083445665958461720576077571560204929146103407894314180345677327994697661152792472720453723328094381008298259399813149173467597743719816568251552171149053686640082791747200975719002637991162621798717900431998962798707168014135254392880537746459487510386712335959940299709938232932700405435946557296857419641657180251824508107563248176493021596783126484576053116582808220509071471370105990818933136596004200510579314956810319993356617980110145673020894891475291413183404687429573239326329091149933514529469678635769990472072917265993265084352354680321924949482106430773361733916414133249159160778839884978347845635693709907318659900015250401413660647805629362092841769868368995860416381997315070853294402963258028932906859653531166908812618860177597596086040323529057068668410083726937388967503771503079409916193294115646253813729120632686455040390598586576387786289407870635036910838037643639589684220224027504904264349399748718501068367954977040580226192330324543699605033756043136145342789369666797046235268426485448692306232073551643483042331778649748388391553377984691867251055437128034551821624926185062592378070392369631920134367399486131058908757427415672798031015400901144219028556081758519505982763328269300905300606602753751074542519326338870456148023503635874373749037016612656662457807594078207680374736409439084210751191119189443900853441420591048902471776937446937424727377670977054411061193718053339178684567310939752926536830302199043713456606114770547009384205248441908880640104026932305578803019554238534496930307492847483393926327072498174707933219352792526430369745419239302126177867485298930929918671765442745506178370904777246892118222362135520963506408319495230382887971640161151056872983841354763539357310059346512542708537351621001873106316707935071773530874995708805708423391947674877262451558027148008587814621306028978617074720958576311288059751371227693132458271418645070083765756550746656176257663241065115572604398666587134405025976686088136284186602785673200580295909612268558894326795802831850665725120012418221850663965504575560393423457268813048969993283568543597568219510349876258522338507415538221616523895640802958934199193621133402228949831753119174645478162696828980786680226491100438608547749639040523191276595242859431816847438391744360403565265479095441313925895375916593366641951057955059909832340457583169734274729266446429377259394308951442530001149427568640645047565291204793620988376197139247783296017542888100605703290379431413655259636068485629573810889343121168527637478050714997792548790633962440365414252109160650003672280120596977693644679632777558146833897037431673965272156168740908312294023564289029780600135000700327115327163400600082748719790113292904350151501561589219478233878005885449798498975924991223145523716133217257014855722120810721398096977509527598271726780623351054999641468161602438032291446205914062650395291707991051365731697536519338707405709060927528242544785790944640584180387135056523417374555157197383378575777806411687601947141852866590044255474771002468904674565999054617714555442213311028082420553393542653080622254818416312969528103056084906650858437106865719440453124117971093162147389416747895508006625793488524094189410591964305756300713325109756159474068692689130323420887490059771339854028467084020519927151872015189755237107471700168828029017212640924400953000340718534816067969562820884042245769050231676498508201442818194804014073626669193631477110042607898918488472683201848081527616879712200112459749366932233431061268971853924834009062268748399510219594236035123968331257536296016032720850862080095315807545041072834032323988432867559255234816266781420234327201545130506349051816529655530701893573315196498440556471607528880444374283500466334334331267828243557904312107726816258604298840880995179405533925863709299432834631805848291606589237381650409726872322449742310235444582374381110735864554817670510719147660494869168768956495305838939439011529170059963396555013092786180519441361167117547738132626850331536294630785246234456909556043884096133458999169339109674966372983324560575491853621723412231973406098974564995779617927963390823034008417629716876618274642525593310037171616718825850047899634680839845212986970370855861416727027234180107735554852678243428217293864996395326803309524906611952462960960450143140105180233037873731100247302865194438313962475052938140910862823143047793337365415506715349984640163649392476267688780619194983734691927609554748176880414998304871001363810268684985969966225212420478354143779687735125402983188494135418661158213697929666280148169640217747421608573575190558403467279845148871777380301451719619063915540200585940693481749731984345073485956991884079276481924962883879967732365293926278063661270143997226604707840026063314341042292669136697786911343849282477896672607211928108576177367777183056117885381642027566305721625162321371731590832341686417365346141727300075005340201795494897238383665757139121693680818173683651428625380061625655459890458607055996610943785859962298668661109565965299384726110085372676208961080347522650311810596655478342307370816222316279133582153141665269528042488085235159997264127713985347552306351088501421109203405399598058503072978362605434467490144146185156385504794352715031358771006690306576150127615879657377795347932642503918423516194921934447668277311989297739075155266904419736165419816965743193491622579075684048909717541817563583879511862632805358130274420394636078446938622741324504062200512972322286295308807969347902578902895992468178391751397971161832826397662518179717887973337383426672978699231282759181706360584400762827548725661452623070067729092846054536332351290485978607555858755117086244820371120603698450631868166239169339321551002237151298222677263055065255296423787141442712068154145621958820279754890795796865273606356445384265494392743268145704358665301124940989677679493574148272780112780771847865094230940127390387516649585423596143740407787670193591692122260786380067979298059822814085343716321484551590246575948389037441539819562641213738754824897950617239078857831875800381866518365153696021308236822474980405511948763586907601869393664250006264914332635933715569888145293584630125161036867889831137795699303822767389675064437042593746756953501770022799278362366184535490409096175164705232579085160383038347904184353810021222418678419576849345360362778210719346459215260743643420944256925785220749312466975744231134671480988364411175502347247914241932219560123257914133287551526336787877645785185670520574421062681360776396501013051515723475380063082842485838290634715010174750841810160564032139050239790967445983926875285986622557980008544605855812669154052277389352288835479277880800201849467677588525752379655251751022008140986707661552826558037011214741922442414630633683177796850941254410365169202207963263380415351014317855839495942709678342266772836553319699778700770875014291527345914599484096109310159848019741626447280687640773416712994560930595087024942826071728510070974087330546226244390402947000003006680859722303666471343998543937474560895798883658276109084447541207834432983526967407634925415992890564999600182831933928023570173006782103447521175797759920570746812385989818720121091867071797536234916191987092236283961466412583537083546983382329073688344832293857739387486017635767963700834577052068118437676100733623608708600758355083000874246202388797137475620762554207547163797018428390208865026957647456645896846435688884456062286210483096701828806589582844159845109848453696121933250524607468488736588497922840383380599324337969629088265436048348256204633026501482733959188056792972159674033579646664432506658812437845157260938289755028021365855855753750507401727731973620710168897698577798429906601919114954010599921558781408953519320074603510770087051710658673047020238907854908819606271896241695899593763802498287992586250719479799317925706953211779827885009256502452303563471216566631590252528067356055660417343194607866419743124712834717765750489266715429878636259848182906806676652315135524244800836846116093727569366894978686477663604403290503108832536478860585390902567448434569104805511421156468972971033076689680229830119678210322747504102019506656067958952458183866641016089354280496563117032497024159243720499914554589075109457883998997793069990538633959445651598854554420912677332608144926778711033826459437607793299494624990848595900005108554290317059568899984135122540160009009631209703932819993235914401994079014636970469833198599747297681289638654244088824913144557687335748460144812006778129675202936520711761699980844337340759012763569152543579318232799669462108487496963916248511160477384584453841468959771511491933763583275740259262421779164616646883193738639573598376945972643153820430222752246309527667958120818148638132724766943342804816374737663703668266763739618877325871589816605708341298507688364615995827458686208822694055352227920816975020967916384054550194681666272308459284569026873174162741053518632714645881856744657016881087582270114950374296179497678567768934413120621239688281550652918039524167442518116568497895333833822592054275339362163622753655878847599839437502197300142187927756532100186477565534016549972627663996320429763389884416496494506366203381227615454486840567530647911695987617617775942363158590564317522484693043124739248777640280990239012512589992268978460430186249776376684379415412242197171853724769710542946112566107099053379016090261272708529591721144243833395980533724870216678540471813321896010048615180569888014827152136426327534575481501439828330970884279500184560326529745328009912166991228746948078057380051811577439194077187707405467363782661505869742143348891813956203047008340274651140041123656936199427000878987385275787398094543954771807583749746655821150700350336115920629005517328235344543378412886158544968019006544950654161153052634610588972526768714941718436473604188334089589002231069619041671794382750972814573960737835828249259045093163214349392834714420469325378718848232248298162886787746823038646047216855206140766857296071044776044239528491336932317318677704877622960096984283987422969742407193387652139583128137616967175318300493668189879805742072764213047084830150091004160448504238530704687877966383417793007918010735316079130633807939929707595996888648332378132774790473397525388027453979168100601680867764914244640604036763683729101023099118131307323902486353409216475153526629176927603007716598777956476844242058852064150515258873082493104025243160719747166456611320533500040794359091163420595115975584054077827330777952948179803932260079303972838649913387718397132070435557495175761413765959063899837305377405805129905598194825734438122151690415102922532438776164468892953699449378119564725893409658916442259969413807713686400876277111896197553494269378822900366074330620578703452600381455414077968171804174852783577214644739840712420623701504489863354178945821716195475603795136750415414560229309523942249584602984229718033348674353421672980533349199219721179874935370142775530036882736982863553378716813840289111366959748294912130290950605705368337654646791012694210841567558822324115917944504680660220728961333274519414218902370295706795315841607430308008230035439393622347892106308682290081194857271298258354336906906812206223181248978444857328513078434451120513901757104172694407783973316546851904712991162499023640589385922725483970580858431035780322541894736494575755775338046318363880442254483405240959129792182622388932586738878328950232746500212181679619246924091277652202618930160249701928628233139914128124539788086946114022796806715417171770121147000393099909886570036520438490043251748976319223973218742526178003815141924195532345192288662851443016584228273487853126510558371338705056350541849883150379225370830485123051496852848929144458785737772680958409014644233311993705390114791230834109064764329672241312652413904085501554648781238855551919340323095656659283378754646989237694563978187512914877434483631138532532297011150408110248801504726041454741134101404599040620385964011157444609712130483760374220360892676057272816991823804361131862807543836836531255240565080361818693236308372641593043430517256242317930282214576763206873767940622420676336047972925789321879044784747854345589683727073585931268319810598696158589781957866255440016609435112214365929219811485225402936058644019930293846906553522699667549336325651229090875700585485115871809493349704222865589855438809925707560950957687592822185258589796463102433779710320024020637494232366780676731230628083207206978409705732522227843696853866772211819256148303613991148263127569906044619546623049879904909575811381880514595302837087299583885815869214451729305328352301784862133474664405812575953190820183844629324610845457021018472996476499744878029923706606224528010471808040620895475529082556425839844234057692794074345928700418771388721647361861388103413655531633186236925181292607149357400147155728935199231464981468503196946349899622690228467986339577559432558292728378816092320125298464108828849181576836148945799054014903306241336391455451265382558355811061443424374127582834747653442921493963033505833248106476544837577470901124701395782301506741112790661319580780354807957637624564099698189000178317246562049592072940597959304008278286362222250734690101309807157137737864408447545032851193424138998377245253590448293428279609306649918921612868194769897270646578730039308156606272377073394956638169399660599087594852830152654204490669927949198292452544418652378230017912722928134584514918695984953685821186059585029517037664781222385387688493803253146612579775830562313287025212260907156722367870459577576108617073969939268494889608050162089466153869162251768835630880165641020539705029218997201465128539667579147095758149666118741991190176169100006947308373159402923590398446169310663589470594557218500283624976970741806650120166553453565331779155129604237720263565888674815512344898061868856136884873115818110327853042514237603154693615205564092054687906418568031834148043211843862049278020931672306687616693009744991339943031009078743407384949334390814145697146471564173305176564540984905963253858859430033608946736379554682771323102740539609335786010071830508790976465820026612431838419255052488654126080172396766582108203287912615083858681919465871155931856936660611256335076404058278598641494299807715595642767671760063008367344965703300643003433226289178008742851645414516368121837770046866600696782943161406649205919883907193006577216591445554863786892709029580971136801560618767700295687172064446738204125502574201809032604461394608585748310370591944816948367443392962813036703185147494262278515535030399853937664159283397305512481680543827667490419486425587453618625449230930255595571606006297865148618081846908332820290011896512270708629687553045026677269333735564404007757634467151317577044771717498993198686557243061775412901831555432909510258696569417321987429121159691045044040260333572210038545943137205251072025686940033531223044456963920653827296973434824607992668337578194662101782360146145003275122667243505108582217491631053340390951394843501264051595396735093160084931809588619587133201377523057934994041322638825417102750401330823660734892152641879448245076976591475406533723606723689835346048839373781213230682209187449318765886166522549557687509724388001841794696488119576817061364785705103300157280262574829380548894986251125974390404353313296832226017715192427778536202906221972626963974382246560428644638765210567948790193699114687592027388648926179277726993439375877663620485586252041438744514531486656235331978658825572521046420457754790651961257547392931327013150543067353048985252693204337067403185606734820112613282785103842380029040103105776435715114830539964338576479341602977185620023570589058656747622771555420303557070336535979469436753440220490159076580903122170365333431212835122018772041296859905308757123489519940527365938841522459814129107360003531897270680303117188293296360693390819765077819174121038253450976440959331824180438704254972550763584045911464867750057414530782602696395114004718281531791873294031614964279141948123680444801149494724404822684203555820150031161071036151328370225298013734785259067634290804732755202477017743135834051197283660254604362486835335821262082870502867446173619755355238711126887715353421338283524042593454432704986081857499529300829100551641703198735374637769989466637139357956188647299624488347776272296528628985373339718941618564192654092883788573213401823157152361059340722236900049794552115178031066704333472223340297948850820675042063131807422109330241152524269461112454714277385500602467620814537311500307600670129849563532824902163845355831794348905498545177636918674674446299039108643589086983485514570266195520073512785275441974012465148103666969660105830204641091479612598731208256756095349036285105358860802856840376461007537616010155151510477325357602354936151627879463052218423783843656253850637964886140942510788961847857833946610877426986731092716678863406479939139548251663315941913131600660075158907754261551163124783887013604727339216353745067430662677348053899605487610381498019303946551866610711301951505758103141584971803260200564292918446085732239799000145451764446489028904747037451277667071627665022396431433745036985507569635682494799504423655798649110899373064908723904478599003899685617235286571843429499512977956536988599882710424966398109119861217878538077296195450273964917501400003664092027562822697467841272753440605001398648559033933482330905627469401747477933852320344591128050419144226205513154041036698829622383499781086278700545205475946126667973551552239618350196263687046673232397682769085377706416644140428220171751230993068432562104274121600057883494741546277262776287380314233455208363746241315620714352853339055788293508822022139162492242594792056180410699976306112542583953560212800655267273738226263910413513032958459495279392993633726348998773848302081141055260012393425730158144730398185534863437480794907081058028019762279240834745905611263429616296740888050902271543278362603400486121876748798312588448180207127056948720295720504436922847745970927171362269249210435412268918291413137985481006547710169356898203839427918044319108433204054845829981725736577266079754905405817852216967871107556295892431186002352021853728983470438662278340724512998410336357829180944673389748695787762010164995490172361115561721930502027508311973440270825538089989026926686559549697542391628361259411397008811037468821922876009244301964026834015207796587460867209725135171660859897395232424795699731610674853857489820095773738299209303396508488568391281927136853996692090498211208776275634742622329799963210130903792288055683063654549825392730714442697520574939190606039841037535792598379434838364246374982648976733378344705320865055560756910208448804706157561779463924531624737090923783902340853596414591136289788262772356185821063307071566136482353846416646344893019258531768842423071445312623267050984071715369880120479511609059326212662762186463974028165643879525102400753631979362339832816547858704042783962287912539073912464121061603773941258396073775119354781940876569087916118422120795231801125041474305835814913936979085483607960814896154515827931688679309585562809459998572636028773898381470693619872251728518061161584987018759916068187699859282271540037622517492945710583523126823748342126872390018568261171351601957137866844277500152585782016804422173571878049270461417874865732512565511429631201479812854051081083389379579510213904478855171429454743973091679959502665199480271878305872177496724747313858431646477119632411008259274671302965005018617683296173105967001092462791379408464478929707033599223056979910315319302643866737029680628733433419942166869831977657681321099925020526426704114283362571885663008275781522643825464169284266113014529736738158057690122280136258675636316359824566595022854782363177731250449972642171670620437284902654009094413478714715553243721012281936936422335973304948255955048309388981581708901868766137210081124118637089365150714725085232614574846967561672727035607473764319687810949900797265136954342029986365883177462489863639183713587140483150158093789437482956851892337160514236990063301496806631678391605381020254776765342766293236630835039034607306876973083648478855434885869295173002863989172695062674109165544701279440498188668026768031048610757784311218659614506939477398874867027893562554786068599753530317607669784911136283016816684903759638052695795474126620638175463582899479475084689561363902033438964827611976238490665562606712763943257608709760228277950914586757318568343772953632474353638705236508795951920995338748786573018455012054864750085937906088260709384945774766225282287389412956097119038314759513223922205562607788406272305288393845829386315354610010597308905771909503832597228136035534195153879835114727305403556799608988215383948659243748327678409708712611215616262305914210160604933941012708618011000904253091672745472292239721079687752468147006818535160679906099993637689242613906603797114556084595230926563848359534688151986067539904018248814448830936544709976502003186762724979190778678458736102836218598702622229793675629566204269943717221166356841485995330638148925338605752288660440544944652807761152939910731194353687664071417576648573033722661993901479446077103898527889279882733897711261253856682817950851148665233679623662104783463952701056556624318167234242868494436708860858071809903015212189691249825119692512810662250219792973645488790638142367351539978679133067046470749604954281438762583638884395576364163674024356008745860635260558079925310256315323512624222397323023016753341993308830751737721201287781114851948121544072618591077196979088297822968713564459724686034570220776939341805998383036737525058380150241980396923868320465223568164312747194637811872980536740670589735409638827256587899455716133226337000247906210922956154217969972887841902154053978183684709311172771454681213793145748206868213402587889323331037420969856178113939690931001236884577230773523314372073974786057466494371130321283253152145376485686495208847688754189665879991735880398524318739525999221010418837572000472221353230775108797132666650214454810637217404419316044595306448057199967704717350558264338421212768806338721846270916279054429416239756311697497268114881765854878609116636601719067017241787224871283844839056023743950877681658022331874954971011960839754445879398525606359834116316697705271396887040340370611502311282450253882026898373912735226972652063505000885228686286672941805512397232156149385784821596768699777146297566164001251081613107451713282751536867207983700464462626714500561869007029334775499875437301269781652690939441913121066771653489533512827724774000516668595750868016421490534260977364701224035613352667103443603716109237055439569707718613241378729897379624985845162635178963609951933196256183150885290502387943572508660176984137417710663023050152650670604702521796945725432066895943783399578319771184783946560990085277246848488137433099394968284133632940326196588565334622062948980560142137841444067213828904933052301304782359184447688976728423319610389705678962554447993661641756209370674634781217675752187888507351604431065055056672687581103512404371991319932305269748413990121646441752533033045579135914974996984727354123035258203587193050948758064738778793292564975245126627991217355320042232745724494325899656461504246827619401597654371078422437272547995495641522276163506842059933746904886300356147021924000486545624007846578898587841068636417865554861267788237801929556995153994221393899800028313705001358216661930165999900133870920698013505512081038780682610670184894752152691052339895508404264076993489972696125532678227853811700510532584996660515499427938182881701594806209692181369160983305477217409462435721307421963872701245412697364105608353364467486363934655243023561553323346945399924473491957993595381781275448902020980600516377884081419350013161030656353562228431446268133282129181052612355984316022627243679679817180125449809666712976720173515951230237526636576170921978123890578722401580153906822151112150017205951681003055406286931195986802606505053263315251875797663164818796540264498927880581171801202616997839609370626525782215758813224618976705019494754402802529881271220909743991008525600069227756994014089036577955686629425247117721286920253738355952956239979641760689192968887283942738406386068114459107035299802507601485158922913972107099995724605385047818319815316851759637817239446913559941909877908611643680904942727982984623933382111060597669734255648932186884488395669510619731297002519783483483845085940658529176532346862169540569102982442540805066513997517579290027232718211629612053729649578200395743270518409542026277419232116154150363116869609911626609384466852372582756159818549940107124721044308754198296514645425196180961592489589615490740799012197126008419803479522355898271208076548655200979403392422245927738349815662479534794304773489757766467537098911612048644578504053045121268186513100379972890314240776212781570320662281537262768991460670709805097025854121498114821578138734458421291336038431091205372361102681848092079044374592650449235485820262722920748301103727856696393614685480619243960213371499832190421315381046893908814560864805279516527154598032004222025423757719109185043964640786989859473975553932134848433885545917697771014833521753493712787810803362548342374475249127909166245317467256081198499199279413027197791863558710844011499386880475235716393096779262800071163791780063812535211703186489394058761977503453762882484340580676857953391329884587058393866412073886165340683575351590714527599482866660384269121296230650530813690320006429987407794007463494440739322211883402790567955343729476511862781935942530327401718615755214516560874382854735868361599843668700137753490406084664340479127300110190395702781895326133891965534825057237011905119099116571365296959312428957131007431347312953797365947790512076146650354365580401769815632450138024491323565620235611123386652016381824221443796289207929267301260777589853402804094839852966367955816843649738270402711522779749367062682604487470721486578155620470315317295933327500927138237309420708308887255898869418254545884200744439545919260630128903501394255737401024281380954920724845426829634653640624572726062989289779132128161036024008978974015870321521842045558709490611067139197373895974247634056030939255537360333588830433585313325192622914306379984693182155782224531686362403021976232134406597985955738940688097344242355466603989574960481499791883515496214958705730257085342718146988060309206496801020309302981485731630567586145075103779148221015829383876313922709681872213297497339469473988627713969336153028115355007551673456024419887242492815370044168535424566335327946128921534669071654591414139620270922613935155743640014354056367094863461084926702192382854586160247998376614033505887309541998097270104541450122217192546976770391446361713991616269120493301419351663964759758397984227881020176067088387681636223348856751076410413251164184968913818897234249220825352504999231835026694493480600586753392449319172202117846074513006177045687243369811674453060767891848998694414404684384851386143308957832069137611540485456374857087735564010912395498529165951723308569255012726883939575638959983910165560158506136278913554520984924595986763382300155077048481967425917141368446289354984674448959528177750563393072735854919008299874231091005707498586658926251561310490792282195816998711987112686564978175344120881595450492589928401388520837263781879646637476474903740962533891709697223958428071636410864232958146940442600622433720832796169013043615226500441162644564571189081138837391017197676625233678464249557379150441500247979030345046771710135683629028663540747523534260974577572767186811953355907431651733696769871296624753872862229986704153086629043556679613223082280917706300967360292942415342536620140974286525103037610037098326619524488224883222858553466541783322272951420676402618647059929536224075940875771351916843167306063390401618946504749138427546425303324177246535086850512593580772203779625026930000345871925612835592724418929332871931159400885523008494574092956081250995453637517252918936940708277093833388808338718229485959503366194238402901074965760009673995323579425789240102150600811214417777571716420382532582833914917063932037439643218329209033291229040483286783952036114032506019342951868824682783621654691613186269827888112840339162545365030947364230457340956395810147687158794710497471368083146234966398687291872788171939921456355698865220071893236084705277835834478805855095658504499527750834981936979013647593311133344131923200081376009379389087666990687276615312027505873705191716291839224139847524230540627050884253208483223434174322019486822251544368327071159898931555669835365185735139383394226566430913303208889975304811848395580291381450012897157266421884647021631693820303760569820111467035337871943277709159148008939614464447971389817808494989336107342274416990496311155575019348244926633568900193847310360818093634435170889720505512845884693828395341177457368484325434825634597300695764442957123905330938516178633535455799587164845249591221803405613798737121775921096308881833193361392963913150303904699034119078187237107570480265582756638782659473366550748295957173781706035462804884258862995488177115208894925287018872129642889939276710152111859751916168999645874751011828997420788309392107678533614393917449592964233847937352938850946055681570825019308510335677283365615029972766107663107419292176168241555896513301608101069095002473485229573368377862865200845430383220368524488614551683392981590986653838927795743892516017963665308634668658218278181827188669517366223366561326733332169074995683903075880674492074126926386317186828110925658705677626727777725622704633019581169812446064749368659383025150980308322192354311104172662847714638819191496101363359692425215108083227366129833916889941547866560110374063509432949679252478392082064991778677378811447984360025281454992727403978398714501369760807275578564313545797667842092711078788750724571475626843750027416706512087349066170246087945718670307680890152869788636901523621251464665299283183258835916562569493186936271875755370197409912929403082642648986884414344168721948969263839834104018358289603842017690048022552492933093657270941577734304139610274281713858735957722468955145655012911358902498562170218833685598678127388554015916266156917604811938106978875779855116216472972540064995775716466985336098166215273713311103923481967243567443535949777100014751004650787464012691704867069951521699859558610797483125959600922505084746755859899343462545782401254625476241004401659334671707600371235327679157686107688068182174879803245014122604056600670268815373981744407264691876836313269838181132790675627871545080826924066469188165184092504099630553634759311502290334297695244218181055419854336464180157680119484910210076770174784747131115898133621977442093885631124889258963662864356172158506686302548757546053492251871221434604446950784606642046150092301777520643965339722196181266689976904060982353514114754283844795030875084153849716963704147603914337664275013566657694767678284273697535427797551773731041659979105749437808269921743945854671596979801028986388562240078824625147481718185240874742180833698231954191971179275671956002243604633239044979680152785392772610320714816242770994973161377956579458777122548705386494219455825590341276073358471168699301307593579905892269058317175749834461110278952588549645231057941980378296624817690168689894087762151019762437864856777088464153508612072641403603747294536766339519215783238489761742122414382579924613912837894290227797102741469191701223941150060340788920655802875137489997321615982435200844732300811103871640046779412239524038742233027111165834756103213849000015549894186923043506926232821412037753152637896836370899159994594559166231295411093937270313113507441248593094911428781100605786806585208045115570995884438634876612856055650348396358117046309756159336521951085774701183184647349668332986728972886881053432168012519451476684924706304196205413108052696362363733008379663759848264218421695436013407012290995740506308210870181359875824978687507909928842302007452840161075895576454648471889330330505542145544177927802077911920563988642993371653636944879700980876659329819635486552322947254534171764487656978894773388788797096591288572991763727770098263838731822569450007546039618373280586136316889433987813657416830953728868466209386531637898657145106878028495931954497921695036829024850868364413099905140727921521465831684468310988363198082667091296327712198646356319796295750004477393587482498323583125410801767035888657291434728310470545036026784846188916134994363105768106421703526485884385117436393568278889403930751360742659330314456011616714641594345229436955540292147542193398353792295932479518151143579952035003607443412909969075003565441628691756535403409120537034324977259268239106162521348147983991978537303310416582825934531864624350372351126251673206436786674227383027944549015401239416561139409931650408270263046998843179833321286869634744629411816314016958734661359181110736439248802387956159123892728709694878876051536010578382519226266218582885972200444416342576901648158795866237745229457058382700416141929668086274750449170135209716972081808595241724744503678973826881830720979184477043513848292899939015048256923053583492856643841971616734103663571626995305431209564468894842709154853508124573490268105749117700326531349089717450248110714979554617923387760440513090861348208878194137405567863099208054948450090259815252554244187362315237405015054378269874579624581648400445460438057988398222845233611837576503840701046562991936914580169373123162005545133901006039646906052990018494224402602006595922559963318402336311045918413436156435730971590020299863394557383990789945260060795327409202004537708801024139011193307721084663280108847983192261958085162924104741118259032905881109192855107476317015914914640310310685503908113180583261175014978192295128329488964068234938304578108463416665938168192920929476585653453783448258674088861277630311206617480938555352332924314775220518653093657666645709744824090786952372696954516280321490580567533281023123683375559374361197871272781941525598126335798653012395485157442221282262704078829159830961975789132845966931062762823861780168312708418422454974700371667200118753273893709404622592076754474276086786652034109727122615962560716477406914621245773359606010702581157229130457202338903561786738930066239455032320323856340003097628293171593279864203547774947237323538817210760580459578627125270722870467287436982143333821376118214874492843035231887000519420040473912555103899459198834002648946775281134017837520548658491853506293209318421434332525576112964799315579997122553352452321566856062696022518576712427666369763592432971666254298840694806567563226193835098611345478958618559905738216910654557061056573855268203064632506405468231583560984941449375198531335322857993884168831292252695720828514670833668128819560949857767268754223832018399358918896714126402952350588531907885986002198743185361032856941193577091528936321047951157998453279344976663942840582769592459106607929867313831503943745843467935323775029328484431708135125993696700609567412776172277593463852995517140466793281144987442293346912291398436987938043841862113448742337528601835283238451338154162044491882925676885933816654506596353475146449136887128897199692675305056648535441558760794621220557814520265638437275589587400517945988846245488787053414583590232247387731923125003835511166341140136120436343298529949428170697012765378540417752035451246665424237489266444281089785855228189744498990603310088738807008268580401414946948848888663875968436671138391504972746725978975591479631098949680126386007243892339622545848766797203425637635193250063304490779719407561661711857754839974905928826418495738913531638423660741016436805591737059083907931460069384772765778025717408730768098540197895612122577597682272129642851607334415951853903132662373219181542741600592471093004021679110677025789156499191687290593943727441034319191377755130537305527487121837053962723168245064225584882011637267513014233433402764824875046999574778654521464498410399732629528169541071950083634178728218521721857439604626368423162023341526018657383136501188048261722893593146377492264845596505493065418036141764414887305401877131132083696635475833557683898082265428977758583457003760049555641570133075934881373719432719539059770152960389501679349501701337967613765018456148052182586278158040535659642143404197435814505564535137956610759789779614356443624940521171507411781658967141507782171380148960580494329912797213497621564850116691364708298061413134621163180556669390852240171114116506741286369098585395213352508633177822547441785206586743368727804327798227182684200936071281663518002481519794418536476395890795141671920395784278528308768394916663792886444472501691485259673303025428238563680648613035077650739479699617920237154069551792427208181219125175185389593100129507466087975382531916653739075069556096958451089313730818370374527111223822446891258539615472559240835998646364930964898833278108439567576567695282717319697259987017277632892123498856950603983074840893047041068738912896515659734775404110390449080871071770095425422003017976609553080081085382207456103816084751418988265983772464935081958922296714447906660816148510025566778097447649258498705066241410994429038512969792368804981588828277083993836674447936853491415757315292355145405246432980598445148818895243942243460268094853676652666500492440360147565705157581395016327943673208849419114214757404734625903400084873823474358265420082430860772033576903469655693833836429850608248334037051694495671981378188564815761308008459327035676819258793535926733458039725992274550850571679097090549447715870331843530278009981607300468754488876740882714062480510801401476407154981309618359151313234446123384140474345947059880549714428656104109638384157720961646856832389216797446446033984983787264588057995305922965025187246755380876145682892487581022804075252046505017585670615684158728989056691322773839251276798576767631582472224693806086124239082887750380858756604169341085029193438384175632794502339506608604507642165168028791273632611786776330623236269464551283135497858873583509660100094831088176777411342524672090197668406119425792810591120557104406952612420720975459801857752123857025801480956971626139285208502198971089858688368535464855279563109369574170284754584486800025943517819119820574640582500543817746551235411320117167940221553995255022537840120769819086124634085923454125565579360258690624486177134809618472175576370137487476171463665077969087434564632677875145380796233866640798583597407438971009847603465181860037235043687399765314892969529689009823805474328548260307957884095339279430916307895274153792879613139105661298476019425947104555792061273577826950483898341269016184586648879952549562226696869828897031936823137861226948669945549521589804219064457020692831611478068168456375593877712180287776266224690925472600717072925583386100585820264536348745533122058446905288321373239301696127733973750159688868049456224058690439660745381664510584131067534889256642400058576288775218369968628437617527475035980691548383571123164227158970841741181684438742927737106146398711533231136151106742277621232370665625421191628763702927420847543403140540958659555028781295025975336058961372959356119016279600401619438243002840429762707562921185568218845199600674217594517066914301368428174998358655435515198068198572312574692269328197995454350602059477067345215025365685987195929985222885633914312324619861700436215426283882023864178821364755809332012675331633341472608949031891464772674752879066631678330272728100758288234792461397605209904404375805653564764773167801563422912235363008646833003456701420429021789097519698521249293867770141670201954659311178254015481449274397599302867383030433619632960398131055084452722571562387403573428742649773208104055350537806233699973347460360258403845149084119218373951222163047614605930791247119549197855870822128666762968211760655268775245068711279936019504737930457835221742994411889377156847497659423094596570161136972361032879977708716229157672031048018972353100571422992598366702045498095296180805139318554269086737164807692046443282004232425186110042900425092237214180900801910755659016313147456333028048623238502754093044549090038057371416133263374737988784696996054755886904871622320211699105178667038034822733370033865681775175983615903642326541558639870482711257280840244803809157284591476291085602777665785929384693633203936558694012299519672839356828216009212841884720083027401985307825383634170658947944262744900416603782062082419616797746093732720251532022607585698458572288236228445158411778700035907110327560352304681886397450566374046144157638735269153803808663718872214326837084659796406828692843230525940299437426289285835422328528218701488001381810273982841178173575480670754016715558161631293155724309156537994495978511250985303326090855429598684009818218729588220458404356922822166619333403011657396141640980307903073025794879424175969191746998233419766760070566950846223510975935172729868481996066990332723552346848962963894808632434930661810545314875608698511067606376394975622983204762958576474687955346454912605523577852094488304503062426613282816829245092977583904214868820538966292605870252872613654976515621563183104728503151166221305447052462063094290892022303091035482399383887509385727107034470934953198638659821828067140971984039053208887132573166825419986436789136580765203923548253182633557052868115254192301259235816057396964682257180927059423337522159822960747298223600535295839238371753559581413041959494611715760651700463858736068506705588419958405264291136752604122381596437017785050259895491238906889061571264512692871146768549804011150390115650989058046207484500750133878607832616037816699720870299645748055343927185834652910083063950617233422183210503793352461565678403065056340852245383581114889158426873696875078921770724057365597396281034591442197888399848459776651299836598903932349139421948879300688638787883599650091772528195272800103989546519899680868204127546884827326415563842181414352195678650659432690685154554420242361882313695390886941368272117599633574155003648897589658221279977278660365124932188183371170423000770952261038598410685089430370445332654651816234871231826916049195396731713878759938881596333026325550354777649955784359130917715798902957455814252714441473300803943289553077493593114895665393651950562901131110973949305847583676815454660743337984761140127989760043629390235813716409232386698619151449879986266693838476940052777170406014306887822310667854949080803099868770092480449219100630740132139704469777590590591392062373307266811588531040273976857625490781011445246900031732290616278108485526593438412375586337929675335399234763067460672945826530394540236913641919231895487935806945088010343552196924200768860743326021646314699510984018679977727144426950768500758408539455913623737887471041514987044962566287059907399074315736161225478800802895385603867568845896639219598407119941621196368456378411782450440639242473659144694883414414165803823041171598515618706460310794308065061062759062652112342860866806206367108061621319873595352620505893268984154260286715511423300015868034147107165497129595392160748601263143546188184244662417373814665136223499141221055237989766037436594341767660574094959812715374894772323913266044166401590395135996622667223128609538794608415489044070181131053415368519411494506837903237878064150192421348523131096314955812465351492395742569149181521439343781952411741482082775605449793504574284470871791454088507658311747224325427988094994877408384331982120266270245565923153862740757294586535366389941506627414074752235255820162327149425391170234908492211843379055656918242843165517936933524514302477160858346514756369287870247068243763231906547782943810178826982414251851014963206443850020082935387547539788018352829078653211934920660239968351810009164858072563844141152892257659026177682289479615668051832693243476588621303392703321255602259630881457367667093872827612331983918123921758201410822930687663011465030340385544368847965331580458230942990326578898897490685060321817593671230618569703575714353307567997547680875586336771511938624669770292000695119812060131617760782727605132771489080002076346756576047223938173499445112321977675919152190538366051829420963192314461156577355291463243388895388728111237586190256434725936840726667994192486302496949482034935514423566852915750277224337430610117014088159387870591014383957742838019920558532607729452291781696583409709881622289359234591197691424028241130688672910992978111508477517160527669441362611162493305737524669106053108519342710188371587833417893426536568809418156049469635874965619145013395465297651536548398425783950678339036951163277317005985332325087964056356296072225233461106044823642501675359666129993770971471707892972450933782663167949775990877934039229881070965980227598210421425249860685424191082253357200576767274748264439397551713679483183813728191085519975722627277910363805729619341231868621764535498768715023806675266550289146857344941298176445238962888580895946684997665631045462970889867635487043833134442928680140199723770414413781698476028838261154704584239644752959100049120742123049763902632514917476699266614993619305753684127897332573894704348640695535369704899856233188876107057532201568748500832289336251583012999121618521312797201178937861872135648882151035860756672523761141135101874819366256679214630557046434304676571748312738723016255584471237070777159377336167710192579363830413399838360493192477480833272271292902299560569208529041969935297750293609044479340518213024240234370198806260492224903223979591798548421758205189488318069389803118189683326872340389502583369604647362496241319734370269328789938013642316749643146756053501720942596885651424089526871083209705402453871211118014028042279563189172574322207838601727420751947846281490311064969988693360641462459731356163778698944322015318474610953531237348410662082776839813164252004103229858068970150732950057723531479047322868663446352926391830902120557478631565117649623307263460138680790060940823648123732580202361361211103784133749304960317640470229977390921240605290017733290967442754376914907002350181475252148423134794615317695682817885802529682041681866867425421098223225489391090306531930266749509659354863366953597083221501966871307911428094084824794229768325188231424743961580609360520652952950313806878521628611913862662538505489300232139129388833707766943770861977922163924495046158318691037629796514880576092425980256176572963588972135849423447846117522561415639270897455328150986084890125570516711574280232370054969694317076103516979872123175719859080707037520012460056844500820400703904731459550426164705858877696751197358641405689326354964591920856975148008522671837693684875844250125742514192133537949945834333739626313792457504112400786892710720983246171500433761764361939477122248164099982289365156120992746982125711888514216215975414925034632743818531148163300965735497198597871281130679519986972450036624308665468614635119131329922619159575827185856790466200094836923845098961098490028139326635262075052771131540501757217038523346223859013571688614274878580412149422277871789357921724968515778189243302158048362254196901552170702980367392345975922166876811975463016682566942242717461391235752610024620202692681725383374141758123151294292174488332327673341803620387687152109702079080500306750371878476942015085856246047504238085636111514050620570438109007475353706741344279954023935718730579493883744610161680249319055651003526751271632665472672475011422059085656413997984950553934178742646114834536837518419478036001186767165937379420941693913579030917163168315638119559971288892557057422421843925978878707578145332610880006148590821169931223533619957853473031005743140969001767124288146237146613681036095988060235112812843084141693527221744787931650594220265664974450188317683402339309768116061478589343419469195017380752652375180783864642881643797181857051225248205201484474816463251790376032736371144232335006975772305761662350589638064684263232928970157784427621643999635541198397739646821482313517194137979741123818580997712851087127055458873998727557271487884648289771956322190564533029440994690142089477323333822498623836468688609679956552838353474954435760215318279337058851364150116624715815882794889288899814708483964478343646417309501479529372343691341133013624204566368073933370931258858780649113729417018239197721054002694631391821437411610382187298335667430979852840378292690013557193822772807720386911252977186274543031060928361956579285773862841071900057326582132250343615113416681481848618513690706950023492834591353588719792435096372066506599828895954932460133629284009558629995718644051194906189653866406753826491344439105938559549559395844328633735084820993394709264680730544786678408824580320664415990236337531952216523783202388895085775449440875664378150634677298544332612974602657029566745714197674364419414667551860183071956961003377349057681893285630307340218248475903602812882383785525718603925801258630006679713210194884159974937542243972021913725201632985760393367058559635056309901810941745339769300946127647652445455067658316542045381260143142402216017680096693306040244752095022275471954396021450408905536698319361633691904935113717731850041910047273107849400300110279823391382178115406166122269019566806040196559770718308761986569434753980765189363512301582889558027150258958608694132717250669894308266195774813420948491780810480857015133988384979576167233342343650596251491525606119035698434936654131208304253589057408433262134810004207038258366818080472501509345515227809883645043082497502561119097939222210109747799112718346710870285194251416098443322464771258761612591444617846904923363842320006104598472681526087558577462571566350817690469290628531691686508946784941135893444290401388698758447414104784435198820695550660234860756465062191136356153535158483034629540461753067214325732302637663470941957338369364433810199858926324007590021189367236158996034147630941234337245828517740944804857879841088139822434425584317424680700758603349619779339878193389372685998229947507089500779229988850329078221642546202502764845908921632948211301804190781622686064598442810988431226800322960937550752234995571422238230761446074321157341433865377645502938860853606754185910093249058941995316650500111924803728310846943260049147668973228699583068032343529704327149374569455263879094300172684832541252327617891253335033886826105263634145913772520839921543302028962690151177306021562920553979628321715738403905769976791460837716626666237093319277897471409083449158374655162690402731432748495699513946886559503550080390840326004220613369405093250453970163366906172297390978398278436565385850789949612193611820904654210108872655233548704284169012557015876938417848430832087915262595706429427342772262369622012525964962802468959578182550079948694040784821925114835013642699913842074107197737825275516451215278976303274434762083665571195763047493131470558621514516401644847947251094098829004425228170953364713980529242819220122023701925932845629098600097034009584157232489409829812511881795514115796366618426022942881718483753964652364535319441954810641623751075072000383192513783174650764844136353369912172072413864873323323992241454453132856502839175900279028212991419782927666797920551371408821771745784879819468615492499178371993853128152330890734766763954093779992122876652909893846848474303756722758605811314138435280894695360099392973847905303211901225767566374797958078499078852995440538432683680406254490217848606467356984352822954239211987979424124928182887508515399693165005956169282310984556081146248169770083724859680010080156872524138962109636167669066960698838601116918376938292637733682487796490787463799395782962321831120668146148119229705475510631140509613699050450348310754450700482185624523032839012410387166730295791182432310074004554140100307868317349953985503169323949388301459024048854472277712269583920711351526485619850997542723210181310950300011050472110146728249613557979636537177995910610126793408078259432276534301150454722606277043203562093478778585309830736001112363936313919215303335245635717485222135740827120047298765904755230669468633781894714543432319439669580307155685614586895364315061801284115634054360353889398725276613678954769052836322587928477918082499282421958339976201989961663715735873331783311723964968620113244056915288990470762102021409207968033940118388043476064832185413699561156301001770459372938530452709267736119827945226973669441144792136582068257019513221938127527933039308807033737381598112333036517887566271015369948328202296149968234458288789838815715234796426133278846221673657775051976489923030870548754107017839078960619300694337441231109388895741843775774779114294761801778551084460827303308032868302948408827226933898087188936632382847890504616817158301640694143205015059443251957259631716904724569683621299679661245178318090136321670730465596752845659130747577141598917554404910278144982281664288502497823677892878695052394705086974832765224607182045074657030568209413864193484360451465684077131670886658274034737806636049299695165082552091519655133276249922637332751877961340415433332818257294638252402542988782127992607800779941124349752714614904998513891075658931647869377250914325038371260690488415687176564043415094232928950732026338469291054487818796367175586419906413232194060627371321818069378788318624564348918041593022665350915932044612932723938796876504300939885963668029200257027404805820164216242237041997669957454126165024277798871007941442961901470603504307367147725981926678781499156499083960693137665116675899262663222651603875207528486847187773467924390836410099391539802438979628555454533351038822276162802049409127285598933978183924441296366048943752962119450709201914042655775822941280603843958649726421361727070531619997871970746637928377168629348567794929943450929139210809985831451170894718097253047624014387526630030197932468376526200716355455582164776130408012045494252596374337403104485355534758077523395583159785773188979391989603057881139962812589743386219369254358213863576713295648635090683487794178634972363358881695992561388142483087983689249436025543624547212202352330044521434244684832911082382275238087510030756093858603756453539949478054216488275443224785551034109976823148158873839339757645135210863642831452776142584905652080163242119832946709615811721124245952998985308709475061174645704584891327074792999485064884068183053717819373319489984354324502724183425724674932205684953466190525374680583431978574754589955002952120488395333848819418529927672548999299515080963527956903606268459135711870479199063015901363999481455059584804445417000670937039370388725932956193280610267265073209179894336518005874883561366861563087045473674299439252264449200411093710632157151115588942254102921183785164073167105932153127342392669635108931174384112945147428948909288627184984823189935983405908634330725590943707268179273927007960249584264793785282987011951853174607578847547259280231910173719014063680559117824773358758878401225441578414977315341991912263162098152191386970475027203544405747746605102791599823803156408420006261892392288094020205163633520108543948426163656498895322813110938877947317143696399069074613224278460135383838423632432690435359936807846587953796613140137361499448858879308802584627015074047822567324102257125659576406436178582764363822937572516266124526014082935942794415390105955562478937048169032816088697751662427117415468393614977323058971035121407407220232865257171584493233676594271268848203526867213934005938540307429048239163986694804975888454524771257356716242995458362658360691989964210133147044507705909022926069045205420680853533586476318207204350327126219114846021924684722135519449667531303612436343938053065289879447909494463880685072003003960898336157752308240883609658182512116196948454301562841531619860561905044208313704883898777916016209035490681919179081169930242192852990057790505776706194018669350177417182108418470024370038216077498271880139472615816873714319890158692471029624498728893659477416400098914220325229178641577207187538106223104019513255062193772500504014589662466632650785471968872610718318886090034213220255990223740725221368330358062449138623389566060093077006648491924177138148621821777163828826316969457552583495736673589670568000652268748068813864737325968095474573747208744809408119079041335502045835969515442761295638533030063212356536494984239049882125735649827461136145978148170418417939053051950084837881420583211267607130919490289774932778791516270515358368277701946522788522906035334724537349530192915627354584202500577560975209698991733681132387401165817754313675631986037749076418125438143118769572232622713309116935261329936904672961805703942113653181238597964808771805349588473106454035051638635822454632339363467906023038695485934960305848891274865674166986534746427998376984031133610723973054504700109701022735411554998092142677267574770250722518136220848158869865347511075034717585087328286653501222483039554874968228504398994668268384078843844458985801509125876602734034351745853354772757732368761259834886246145615890455793190026986289321670159824499342527966243619408126552100536918615121750619215460076976806253155283353944610163213082088235272096353012923001784620256891021646770361184677671895994859240613268393349153152205659224054337314807956429111293570906099301921571740466353124753173929085042243131128584426403376397152833051387916917233870533225044341560745083773952378329456721454101229087983474140220540161981840240513031073251480801887758461235600165142080185401044243552089597252890102706990666069543917135897076413671825973932375273627409798706092033146153276779261384064134819918304443792818604321209747052987350316938128930048450328831546889169334942908087437839276085345053362657088845414232905098870316475246571428623893098349191145989440047227924650299825144123439753495048515877026744609228331195396012742776017322903372032275175149344423227585992738829686211001657858562048168815774503226896494360671445390028927906304162001120607833514255744499301008938133951290111196483042957787524015262055989703480167158234080987070467040165357074317754991611188183410038559050515849428132117134792051649093527813632071402704073021390615253662160979668353401635223195143720830442873311513647287251808337613994671006219674977681090821771458086537804719665124794118777740931414918485310975902390952009086383546424582923182175588050862466726534002645951627356096939946591436656333080730330702422844297112823688135055381163338600824283216747642028643379158466972327724746666498385780362146040411120290645128245241401365426714089216465399431435759889610800614966374284567278185205327636193638998718909984383276790973607859950544910232538336651899812733412220298829528761932587487448824111878276022818691510782683278425171298435876710613717753759439413081030266092579485255988298288189521555640028969996080340168255200262538520801132994521908738636458968280673646780947388728772282956948975047007010724484529700131860063158401902904490859342341672477426597052463136489568204344870677725986308585052502213268795800711526565818815101531434238566504129918497444754977434853831296268998005715771181246613859313093357883737071453597219291987674667066396660458288608441690217142734218846478221146824398507691382489322460108684121830908051787356504861807186895987481436677832804831933458956494784635444455846183766907780262254897198300388159836945659322615456719266324224649928494839727780987221453581175616146293920678263387013360022877996164246974670253766083754294577636142784391834943752700871062110291008189882867593720256435854106229375532536934232666236485288021957988698740241809063033446403648951772659710409275612725099325142768790710658931130630079199377981361482547696320417891376526435999668374975055016451073998717966190823030415782945008458726913446801889841028970133585061523083452225147772147286353196818917687282780579802204959869347959123874512810788237098504343541504528134531208538233307159624275233999818435357535669641332229270981912468269694303838401501265264401196405691075164386262429237494896414165938130948059018535312561000464534216987082922063712731319434998781609067168752333981927107841952986258704386941647006594512786048892321510568459749525824258883064708441201777749412888330890163718689514656292550203082609241781765780933899667132224579026042475310196805458259584426120685268528651500286467274528523347623770944356785798209238904304215140212704335623783367408552334426550116126938481995836092207449156596061437204589810532449824751323156529694251149536118691285796602557166489344582902745351958608664827455565483841268204528640978031123432991333686864935838161277413945214794944081328835201182195519744491043466369172112876224730615425854870592404995084170680526883737520264961031605545640068138206813242382904046476160362709434654232980835739206367387190447263762700325745070662957346865284348619731243640094592050675522550542877245117757171223809120593818827146693507783206505944468780255970566666450592787297180680882725720846528793388303392837575717298856114389150931001093045833264292964986847575520389596700008837650534510064593218528228267143433120356993263478013527537790825667810802242025343017263150583546431049963785988314792144459189895989751427330049864307334409181185112357869365399050666169162336151964114931397591465056810739371181670477619307480745064625278904988937390226116819291009992963241531940968949486679339975480665897878396162255010489861843180854524691687977694306251491058002812933685479704618374964798661646602670932907091875963039977165120485045239493785104112346642927230825145864221680564257332692984604964953440512264994412381272841972931797270876870943788703467827635806074663440659449872085827777870316668864605157288856964972894554122161689552483627995543483146061592412012015404314271116313727605715514228807709098737606818720045740975986517762578101795479822515520041934808441680570157732437463720522504964541530147106697213207653333233393067276642551107380267745249138765033565951282130321854402651257503152804373259945116908034566956135266045274883342223816321445846018577938603394365055155846220611816197108629701491128379837261336474347134150876748447627483462332628978520833548086238831859282723417879816121550194848077459784634234213935392691982434350259029219030277651086535427120148289717638353836238588847257296659308368329355545521020629148245691640340806436261159666025884979977361857152751091332640417443873471118634513067213606293699486405240580850077896814502347362423514140755563736440811025463683036716208400434911888558121616611135775015700586994056156945221081377644905139312609892483708168868027404212827261636605242810826218026475781869562742582373341862189950210732561916385746898695997792395730568096555588536423575627300869210565546322195811331870274337914891256541120440518283803845028903538676763776692549091471960298503899020984887675574026041599058037789288156084264467623528495411179178646966066690557762875791684767631969173206560600793566855373342060377594242996366433548168801150232929631500517853178431013148094519579541983126454709736272334494747818994555601757493157572649549980666437150801315233333270878704706714009494598942947254911497512188509797484430582932310640835101617873512309943014139683692531046052697885891784035320953713889049896724876529497432420315616762961961389570794452937139452396657418989758042452763742503309211930849505775778570676920307939370549511836907867393703598126963485176836347010350523969731175795281146484959762004058620230163587814104613373680256244074325667215758927179364961833870080128456789933480943553110920067643367964142302265129383949542621128113935824562936248687608362586075788703226318509904847572985690370321713348934066068111357654574991861159437466655152250864636887245601007214461045470787923824588339297101161472624141070005134279467197022955263468419309954529771727682492664739735535374205152020842153696306630648509616374571385104516604168298905070087911091653637770339673305606703359689101477925523040705316393279951867805049388541841022612687576608163152481450519666329956692527597451320466488290951599422613023719799313668103410832712692540889476617009235232644464265187545876953679126657497200170953873227472697430782165869660682941875522345639231698729718883604137185849406989749150733660179014550457203418065038477587462057219235238616771886143449938915916001604319914606602529852418518676393736099302811552182859693690946003357494613219417298083644126604826386261994180136449114012741423833658784301051774026552121551370799676640609180993187925985733751129841949284228173896196352027308233202515244209619330784204891035135452453401815300601045038871960988103676372314313808270152841760988953930403345322982201404586174459220588899372049894841255775164540312632565627760974864690920536775380738521366157869705220511175304556831363440669933733337133752741302348692391711289339302701056219785154785056741890647764488343850496521966526890416568482523274636212829344503686152486977807705232232061461882133389492601714642682404863387296653449794605779158886431926989274663803356656550472614810562795456510868426816538577318822141118163948926128385050752111478271686771658705203681103008734184584226307528636027545435002616652444483642077139904606137323041351848768804297988087378555744199595951094920640381528482673119597042883806329760012574298109798846481410492952776509259585851558337578873865607925025136799097538762039012140633613847733031284709686092040350146648471052495911406992385582806189122661668801712370371761419010098605122188289023800060551973856126591643828475465023439185929063202698861588212101711395887940281571294630825925819765852723485008552410651925800689799434608780148575805522455141298595957918379051857922480505439204294100116778740386100988281820640269434829641514549304322374341782987680718760480925086131490199658182765039427388126075265247440742796812361776123983588188683879400744719696464292511191493635856349908472152887179201456595085810819779986040236220191522017989344753719042602600301378622405487563189426949359252728773235058431529913527241741231520609581608178493865205230735595703579229917786034174050685217089867170781693089061316503106305249794670683292498207694404860313205106975803092751977446678424501338329256041767335170876134941867752508279201127386312239966858313346263659693705799157347010070036241290755138776676594759656962820218207325080236896775307841019274228089069285241034030764549209106198092237829330891383740712767992805171371041520600086084282190951029988521064267541226285878306485847463689593759741440331795128361492332541541199921048420599226228561246222632268062702986755730488331412236018936307547184037798895386497069882807542927892374801328952314708651299985523026717790065999544743600591494531430094416989659585488271077008142039045217122311163206865887095542821635249038699778652019036208137604574336096401215428296430440809622872001716845897163598626946748800044543962604600270954501157067827597807043449549615247918202813610496954685885008900780461007621879172616077369709221885296382143044531031411044262348423896734659657160163218003346935836252691122871114630024231769538501746902986133816571751930367042345004845855045718706024345752221795127371805189846027738615436621848107334575671813871657825733969364720282716550668749010020816364341375772322933206410719559679372330766030015248218372702560914496770700099475815178263099154933084637988479998142171713678699976547152372239870182879103788670553296295637080798380691262643116301441345035193425897743683449468244614971248219307420975187360487030878778751664661385600669913389026791190344879508169666646372076768543683062874237064720200086998804938523762925212128012829963137230667417183795641610732486063612617023623770575695400932241794673334614626365371832128046798552626909380382058614598803037108791681011463169854305859460648337000528365773717487714615629783342516409248414275173524983162504849602411381737384472612450989920913459508216910543274832424763218559715450542060082741969867955469551463184081831711274113787061710689156296028851607126191158497272269079956093410229072788126179388571438956672162924656603237369866371626801956924238897862717188074028466871751523209398771369927497157728636487326984200192602222955082687008857921794757726473584466949662783266058523094252701299088000822711313256994715710129143550958412196202848705535749310013478567508205118443705365671620163996178189300200320253262145338850065029177694823959666848348444045910968388030635163884125688675999932735876313424406128352184236698876591496648980021401780533105004070650861241860766781884958748598277991739251756359358622072886749398968116108884526351677974533947623550124262990048354213395009845829270721231622086675665421796184196989403573968069856831261399909716924875249683003526903100766403412164168144670003163030824449347462758964293774170156056656307342862642747646378039128862938418431840969474960512926795550946632263504742145566682041097465776539029044879736916002968538033347910459802887565146919294544724072952735528621225966793466976625870828663547985467681819582418323528596934425995443388171524510553054076744159785818928850688775002928183319915567612711528607615104852521627133197942410174884732068766965539336156790058332500032778906160545601681779862879454208206031022345326531629279693406839193286350583745515811442518755762071370062359354798699274867727132920997448838946425001726108301570774688591590732879625593851110328111755330272612871187724293142366763977344445017924965682268469659716412636225583452661534859990378956272144869456232202738935749955456733772378946632724844376105684590369385148437105916359821603558239028557318578000508888265662601814826388077335315541764122481781123090579142864981161804086569882850399127776534609596488354772081162638429352279470172426555496624167175431084947660114524381364292991943778614858232304059591967234921305882780668236408848282743735440522037352079384256330447075571598997170851591144638501540395144379619470788958628345271693189921786883658316854253184165668207747393319180065859289602440354541050990708548832527526682917553181396254332976250527719620096240497399763522142502694983305750681941518637197499619438074259782686878268474843469162993117409787057184572092016442510381630857648820686499621169687181114448676744376731025365653595470687350024779866481510389594765664055607727226167384964500361017766948253657085208951545387932321158602242545588520497772032067301910750679862696675926200488134154211077358251132889892639893494949530845964956566692349075252346996478485404665654835369606982745843060850319361230498923744816353031991533080017375972922913179587285704214026229161491926138546117523949358878607205466099227389280799731588075436803895799518110167478068285345697135572492603511367128913949779760025471381587405402609804448739631389412201936513665520822429111142100098357477964214422170628013850154018975843678231722205491427264419766749565971609485000061081089511609288699512924733152496568050308837471352909012850387268595045740034090951019114119066746326413859010081212786258558707057280519089976844345826194070390973099260561201809907611868489258409171969029850638429364680226257977131471628272597706047459999999294697860972077465568351826192921728616808151989854637432656503318633620250063515640012441186298023396396661782223774538245364785250760758122375771506652668142708103820805654371687401708597246088357392837556235332117857648577633563571591989816708964270949871071956749975741757863106442644454221597268708275365073044946636973074820585569812982243932515128183978191701706720089641923260070167948462268122954790652065060386728711914348025209629959485982435030118857855532530107642070343858536621114331105978841120801466463251696250783265536135480017765032153398941666280739379073603087934863155538928373816061662329122677194478178161324442754586981937288915532756725922752774046679234050278013414309307567688266221558032900809728479074999354527634073462543523918777282108848598467040211112153114988094307317647954679636150117111016456950029252727179484695356452606640230266487027656320588718884848289161063579164287107111137511882856224548927238692219848384486158213504153741255905826968976281580037244232702146114768470265352643725058579691320276458288013344897488040974576265019296172044059655360863656130669937771046030762234695796660437162018359741993685646653809651281215916406951235714656984331552395222481666492851465299496182773085616294863181456010983952969500612991185332913676927557408231327369281251105302387697905728975370782951005303610535205027977137086145364912641142138893156249788578828237191157700191538384655321150633078709765056255698204825005902339421858596803192925949999653692459988401874417913918770832348779591671924897563130953359462804841013627178037869660648683530041398915385352108364501842341309082517415860822916602189639999763060576373656053070827033454911386942457315128273572448873794475368923737395189108307599863227468919834294385028823548464940459955574910989707939333694862737087727413831453668574719432396311980495807224447133060265860650523804259849154944538495566794100206296132978327084360977202296155939264255341917764963455957767697908957392667235541938559754601945618979138896981601038982590262706185165846973006675103808328362156338340329511301952807151993303685497437642916861909528071375477700431653986998513781696767508252288252503205461926724370053352342360680024234112952303408677035231044837007046434417380318979711755104447731605351918469955930567120797716490605253195249150389337530456677763320837445617387990329566008521708635978580724221068573742073222676794728586481672906394204809426758110044286804319694180300249693928323468668509140951825009211889949234280494194681592699903410962977283413408015247694068408168900227954993316682557050740340749821468716951858942498195522093515151734960144820517066400786178514128126797854549180399595655560003955040244093534077394530904067518713949706672188017588470195893535793039007447724541854698591286178063274965205084502822526884622664241796352588491158855047816367518805150730252808334780525017065445346154511469738118465409319837022888093371943861783301233058631551186489938621324894714589365739692695693681541475265718869101927571261247036640125109329357365623341570700470201615604867912996194953221221835072179037706051039881701753127646454022640470541002130316183372332374735295026272994186139390626123647192689664473040400573536479874866247948177836709581953975961931718534040438124694779207551278355841777346704770341383463143601900943102263986431276052525313498221277820821220568733290415562629558810135470379572419940608229109546490939829316488506237789456796923325979270039659513208915507088725772047662593209717321961304812668500798247181189480797146059992716340114283883457990980717944034453300212509368082786475483223238920878896244817893795265908556726471819238371303867885693726247773586710065711491069382869222702215409840523410727726528134463547284593585103691158166708785250135053788186360282962774455296627594034669701975163676236345102342885847738725403210072287197014870141612651190964666942601493107227033349740099317543646939604741594326997785473670577962333622206909552572691233655987279859631401206118172925290562763945831113981019432442354316132292915247877158689356540392542139834451011055477116362196779536810013086101060240327182799779403295334986014095926875311714049413021770248787718082295558319975747078016706921036652435998931278253092297649818855338567730429612341884569656803522642398108975603229613533345701065313349842257504599744748382776072911453023853141245138092827680512089957276120863465238095723213785195921035751869273016368003471005933476426491742884637270286079628219956221298766394932776682888110609739248161114281401119223175556515499670724806037002112508832045379426872563641951263292120789803537495198339933870935750476770128881350539414277829242832700025313490083071978406680257832207418740998699257494979452931459245915736529631015921619996370095752377862445049663743359773530556167993292429925537952807890693219742419473007988016017524385861790343746825405369080684784681818381822574796307935171849832931343216617384058182940664290100667385712753641523349152492395801143949551791272461177784912194768700168211165519824194687109617913442631271373554400994339016492243291701186386869368138330350145361941285598805063191519765277877563167711008888503630333960065378819769605274548563477121610767231213751706875966909074246702523608003336622747626885998024326896864296195621825339589225963127048033989724625502491024555165695955821695154693829917325926807438769704711414860729586354182450962859494695726604647102540095619054778439025569771568326758638844135304228252946553397864224731667538154600677305239570387657987188420598085789379933705676274967813933731946077742542238427187307308463015284524484674240450077298675731684074654000962361034906929325856239826634558853170481883318540897658733095826774506514975868376412736554960523318526763118178109694563831525957779527399189353918807597574026764195745899494850014494802958083194928919896425851322300259693693957862340624766741033675502418739385147650185743455546826875100986679679626230583307686092508662342227889487964084224052513076635198658432688245663789373894015617591509370084301447834599479197234248106008764288569397669314826263599338594859152687480960462402996062292088974112326552888938736815964755761634598189266524224935314814958446309274591517360902694898214370906966325656972916893986411782273625591459730634282597233938444605311421510654053750224949314193617534058114622550476781567626681848604376128389248112657952098976749330880762045250541455750493382289342050112178656920358742769852088705226192905158520420732468442850963732783224695098114377341887125240942958207797317618298329768111995658530477437082264141517558925821169077992162443916129203456872488372167581193290953522071798793495564238586879862786432477327263225083687430349588549776353435357481800671249232425361036401860086352456168401680806134366257890400125546982353853973315850760724012651038478275184552904806525104150861291900950326254686415396632108791689346809059404243026671043641991147907632741906356805448829815088682258983785232984201725115820113835751252407187446821246238589211329121750212388160681639194059713749189285344818981457781315728320200729682101982639014579218106845212362037508043451226986433390711915866051025253767936155176771527189345801118854246527792809625643523027773717244643497581834736460214059925591432976506048943787229430314875949766055220686520276238207254949586695728928326986314471917215612012529514864267538210187032513673820004869886994470819547376000092390856897823165719905740940994224074012416740088032028847330443320270664955632748700693657752924115673284562440985801710079136183830041091650957397101257307366441137304833120250000801990043617772755563685033709280641311898429770209288411369467732077601377032816394360053962652805718541675301225505834681492244219821475246713588025012963869762339154003688514045919574534674635554667204404252981080778946578109468606992831148484130702900817981305076715717637709934614404626344598622873811483807301999488259214047040187883753484185582190623414915766018414672305177444364195067703405492063851693958913527396247596336439931948411017427804862121538514870900953140751464329977765771976547471005132066866129100345344812546367114948394081183291269618743479674055948003609498413649954045980390534562826186371151099948808675170047522391417902687763128321616501169894761440352803910553011240329237985195517742686422414348634843014351047318962746293008456876293847967911137632962234446913251311901904944542449557773886618351701378561001094028021691686719237619671474080116100999471017042918203894196308863429312041812595426268361814684344768957793132252900304944809602595386525287091752805284545559799644464002716713410127713346719099739684580081038335450940582626986555603103190913949984952112533136928073924792074043014126883301922373981195717824109371323527482129470428427985622444052243143745391657759135005507406932774179250044486489543431971034732858019191242397329840099419300393631759360040898921145522920459567477002817987746082006413188086089353357157256278107240391792624058677108707274934749467622676306855770585872003618732642789652766942272687008458486601024600248029014438149929029980700660652758398498226960642533972748579816422062228828773365903364041676697723223294575797606056572726327422292917959737898380356053982697807480512961224647632432489322764900922995264004839140657425117288882297820490870105325203252769176200963661802704096864986244085248126275444397423676022361454059846572742107925581850369092263299356197478082061083990330164238563970531587281915419071909161001638982335877984394738149989224483434287444535187608739730396012211755426186287706361363903364719851982035213763501277690868205122438838728043394477831161597322061360221048155590588321307463761434298965498660535287821569325362520498184113790034152738508391287490079181624075753296184217857725754905718993305454580898387608668662052360886928470384676320044147505590214308484817775842271553420952233673294837962539788622571690543793189080519826609141782932118927671525572499094734278165849219540806292838735600100305546171446449841962097510982878114920514016346354165345736920144072746389895536920359228337087416223173011256903124365840607989282614305452348125757037589643883828164778853214584656212812190829690635112222377984621637547664878107206550362473066661469759366155351571947297539899636369707162150526803392970672826638304238029605230523278026099357276186675203864929756438872622186158068411973881689710662228772196633568024366891232884476338652416680559142289679561196762244152090760699544248169452933709055132128634138707343616080721826498608439982759613114518273322635634391892644112441936811500085409204192235262482364487511756241014659164637798965926941302651045301754155517923434878784197682336264566059222996887362245187290084893403023649903123249649830768726633365431182460566481933981940322171774144161278681824453981359228460692906514531349541877895454465636582660884367063270972664117486581067805540551405067243857727608096838836329131269942381615229830053805743278511642222537102815095852404758627015414542697349841942031716503511665778752259856964078718294857019317580418974633720239381971611181242480292843030295899229633537729709306302775128846905671495205039227157883137663366792975629652641489212822543212018401371379417076952469021585454612185780385904725003500384866552769822497674589221942185859157677850536507480263678635750492811853770152027513455469653725412568025102844636603623756323785556268410180832336782538469240152050849141217467991892586162858488133863079742021313988008051705057804300035281935388350547775638628635546149752345537548894550537144331422837854984052891818173688919962559435357428721648830492765838475405766163136623656122957514865304166804118499980735337381238766985237527097386989156189589666771927731634566141868699421304264501335324894303530372477636388664586963464799514964943944352364705475164523183400147025430872475366796870657613926465712360586301383035244923916207412157734652956847203558239120767185056459867019749995258696772175462259100328998492241104053496028591701526694905352180935638699265678129595098899985055204830592814137328345498355540825884770388722403276206781903125852092141226097050212066967717474499362257147999376614143363380210998778699399092526967948581518111038350199576109888389549922847197289255651515936752198200314968398606883083009624478317123586991433149632428543224724223558432485867666047317517290391237843054485259180637333845185797191804295522070947138660022476178379682536479439160957577376322865414582301175320608387346119467946411543705075490793521429420147778894992352511626310028491913278086837016800933523098983824411928287992173915974211787448522967339516595200500359682725102756018032502829036576732531768380222460616299627601154906016755689477192721253479508696635424941986477711106528124208708784511659587260669205772330235675735872142571195052580021552407649003261946951772278562954782234140179544053612297430810410268975501954735545088389196601021313423656913923620378492039559150607071002021645280506385844598857869174584151839658429564119497418693078792288764437885648373622794952869916891130839118103556151119113753674903802523380844820711029446341888593648746375177999230520667222999436352630754093715322947682462001679614736659925690998448591226892385012173900723314548332368518345824096820480561331789652394289781673330499723220309995492679696038955762485945452283794171756663721748892287879494765579451880605988471987178978169446147660930928152088219252931424967528503852880762918027261780239894853254885860262959363361064781308946909234950173648931452520239308750673665275197397226716618247844199598034249509552769361918267359242326156159805742122525502014500450367677516527364706428954684929016256083284430819422924189956581243195902230456111508259618859053308040926875091655817621882828384970439464917952577620694481363664513400184197881961847720862877908289891711997108535048302739753334498707442521980545189714801444650564720648625519276042173194033202558517711641772223880934682139870935841819352900635921161201434064452654915679833193793608036199823832891510017356434919000660261542286469280751259880150594896056580802430759924770883910079867245196662625354408094169043638894942146885567668373526177950964329796602104839538400425783335166697642450246259860441015055434899038962717595057268347038636675471040943769628291389935852672708870801350032878166607761270132594089823158128003723033408181985995503819009626778712314528206611653863435849598746330157734540353894670323319444438769959950764351626782659328388832200727689209009668284425805766169052069012696715191935360936612214927424773574235701978781652385510153065737079876726338727762933111114780488701845006913743008531472356801499448502592137103720981279204760906333704207258473919776134846370837106595639213364467680867679240150958927276916718096227024533481329372420909557226431096135319257857425559971969867318458207854629292357143061814908574757818106027181229307737805449250959456840578415053328165976547247324154394465223468771913417318159139759179795301036472005018238780827621484524318385049371313220836227249214710990948560930271031972246191435291504030283745761358789864934932333742040523343090605185854510711664611585348319988910642159243671002836771826978367740248257746568466397264299117218641016911491119252289856967314571078299240465674519340021153597210359199815014961504304944044525433155011661054123562071316656349147540006859522858434871846792860112420585001042871614076617579134853752285726822932616122324567510361069236439079021729731965263342385053936899745191347745454351312674413405473162016993286768134865526417414148817564034801893760128406877757006354771677340542702777200984942965455414916631843259043649186879990359519537294189130578244549255815225420271327283973820572623511467162277848182554932747968710566963023632515735443078768472300542817507138049957404828137938036239224883307076612912837694848547445244366989265143863050969572507002960294226400824214548679811517456387309107743403191140541146865033376412514341844211075505051880086306808745636824346218050910344114728414663852945173399252525644690566460856724123059937907868237355896924680328394061766741289558756355320418976131097341663067238052540119800784128339986260948114983943536468625021275401174245120446950253238976188930847810783311241956587925006597529002300393613552546457141958385228726471357426841009829094372291286276055542837937181228847582711933306694173768540720627439432992410516526787116171585629354285886687449707074567509431028672933674358084647661494210724684520781894776114301198752869725370527615003389636082348760174044790392621176016637857254749613219398971766480729598784499386944481387504920948595856974693791801204184954725475363949572428269079438029321656818054306407195910107724072135854241292300766146017193979731025742380168704689185251694808607212580295869204361495130395810885380332891695376547851722505532896687589188322993245849360870448504097835508459655260261081832586774223421828497676837742296838595999257593842956298335667345125843264543946015107682688965451360416207191060742732110315924046514240736405060765452388875008291286028163925914608199594070980688509879698651402134026528318941258088198094812056910898550967244047045056256922576041770182054231004382089595224018533800188876268139659176411771234412982762257050895125259195764535757483023320882577101215259566012491884090243720648589470769147092726692612912787899906817158324717223647493675594133654009180777086657310178246207275805318394371197211737999504990629653453752889169325720025261779983291760959445275417700180374127219850479255445746944815673971208385966388068836719634594742969722943393850319710585204867380628714280403769963599412230470835340318687117564110034488683501178808729625119304091178402579551076472623040386178230991375524862127759727424137428403231014018532143763802403677540323927314984717352312696833906961465478145277863190609489553783744084547528609245018668594184517950344369291376890609555573603031777701826612587562667260002131943220148470498965242884092210631930655214532455009672558731496371931433508387977730109337024070139239299645984096224803774784945990140946074404325344608490517578565527901774559803949249834781945666238941509867465963962377819851419198733245405980208781153930476211673964872206845044954739341339538666885602807350143228523131855966318560758963005306117273226459524426780956013199085087717201578948829575799368950941072777818149716899223489110167898968096676275837161867858766697953821018938458975757647108981818156241416972145542338293616466147976538515501224795798007984100134333398124808310309005461411185443228367949859554199049217474311439169493500593684619747526118665513735587948245137315958047137885951688003180043422178000323282791050527648318983804213103447890595481082821119299065089443653257559981391118434979050321040740696777505715847024523806661577785576371439708427437289697436985874998488644067319045616456324791841248640706352340947397312508336749635085238014559684198743619390515484643636830498303855000163053416778905969436786329604898543515816962724386591619907084678339429491394596016900864010667647694928545399359180292807322856543788316290387482115526128415927330989889763311439923913291035805324575387817672038483005997865313425295507124775866021486465724074264736761578730113272379674264533479277514010371927793379236235965511487967979896290674024932505396873497663411131805884774465425524262071590587549152631982385333524040029502477639450998831526569534003763536750578448852022295904855735386473025153900919287048245323692503735745031692374009408497240490697285590940335879026823335046445457813098689671580665232121387331203820300071701027041547171613067502532830769864424243311738529791156559816817210403003564149972986322468243040035319135322681983774013766654614658216252084069961156496819300081926911208670749543249732131023709538173488138928852512650372930736174869917574754187073537958760957615910436970475159294145789121847973341532936072604442071954434819266092296528457199122128293440304471340913414989618552383205191478262801287890873050947969294567028830301300005921182903714635030726615124977599934684694277723333836341531836528315070824973279488102330536377464025663789810585425105022391886016797467650325443486094268508826871407108079482394136911824450670446685273053981300650448649333423555191668503546975823161039151140889844498466853268528089972524372786402881222831400740125774866749106931229032764495878958897076662189736889918401622472884138905580489108071776248477801683021047126889924647642878532488443677436825750083550660068471261117979268025304987070754742607040090476496095414170109761386813300951514995978689523478494827115564735580115613323648256294935689953171743226204464637115008566970701177864010765224919273257668071942634720293560766822497506417018510040129989707251029824587684633135310724571272321410570657006950468173663164986299036264117174839927234522769407160337969328397493401430666318509332185725342139861726037652414483307784082098650292489377331068602986180814850347805762557375343360044740436442211339280244454082930296202215028972788564315420604909616727414343240163997130038988780784429050034190434176040786342230045712355458114322881820597472776601168946405878733201657816155187536688257722408067873820816229951766112693092283575742234966116694546858818413823415160447436720056904657506339724091282899285502836334988685208445858274739157570218347486667803713062357175429295657898977632277544578611544540387751395827265810118165798881120900910929112797326776518579581583254933270736716154845986544011131577149094195592975451356766651289311287119997666558030407239349211640512118685447430161635834378538742561446593334995337229899205520413866450755465798376775875815232342854164002071059139712717506392658558702065074286869849507997460855265629052070833690956984079006131680349517534358583248171550997877969568032126509188119064072961500836319658429530583699267620849582098720673189340510867736643985984414724861418689431295877217556679611398148714713560713201585456687505376855557093134882886090599254380223475872700079656840823467523621824422940210271357792384811962161174042043307755280640110877945434789610626080819517246424305174572539135715169014666749047828838658723011463643514483882773349128897312467607679396776848254201541012087280964691704821778637640535281495060593232022250384107996612689766431276175737566349208932722722414239554477579166272837281801059429104376235503499515536280452632418342284041264210003623385008702648058931784472679629867754166248304872754198824321833872015088424359181554981998117195982705319463818858718789606236378156703467592971649979366629719728166431611576015841087953850503776117439903026809932589986362639699895151675038661779778376915222087930068732204109576252479370773538953459453620250447906084820380767909474884025613838803422429862536097701476618935184053842642964666042377628920568535777061175960035871277393502073761128402371035379876979537513066700515548334420811542423508861882277447210635925951017870592796377650869549565192955530838179704176240308617326361032078771122201298947966287568739695949842351722064540887236221394082529849689773419836701015309347292963928702003760543690590603367181111687615975924643619573729371935443898109441282433720452896735071629880416902947985389910178870915526404931821434521633808117585828793040611240377726741057935017185745372100066022547641482611628487889051464313442411670708533416241757312477630368902435763484022715625090919544025727162678932741684443275904451631358896078869948739869528419275676443447902972063011012474032776214139781420454638035814407604196507374953555535707941480641471366620832437103380143652465972715520907508964931008748350712216016480996318646175983956854521018667306217401735349685635524534598750735582349408766001198870673196877327580556134220035112400949990363180526074269188449721520154858614277284104690144550171444694098202717362216822695613034934794177980146078553330239490992904222132650281783391257210245052492626163245068762510392515627311913067382035005226892222005391611247998792634356153492687218703521384758391018328110239182775729990414664808051935768083673280650888019845024237331961321987213436952402730058333135443407732472000466020835953464124680053054405041566672287146337223195027783896357893325182876903300858414366955125365380621109222886791242419306202911873059680062220256259688579138384465434160723737270568601015903687264545445312408615495234530900301549864776535878774676924490235243631393369672863497868647509316770428759602062238440744650096715743893713388278107978674248586217422668718626907350521608831555967328194806420369226545428926549058226374116797956545633397925263595597255620729520616450199951562185715507595182867337777158346889643158644226185723303013465752600637416182391709113411943717573358342473694156495257567540090088636331249662117179907549613010790986089665447800341988493007912702740518293507610991504838351023963117238810331798800324609977305712068286038498813551231546278549960031417637373444225975858222041476772740449195384855475654382766500128958397840144405636176169622912108271092476328961197954747757839286441525722046001823456868233437946167246191557529006415984292049739261270091295213946190528528778428664577056481347872478561703942180281280282136364407324982272741949803581489646500767361071416428260285423833902757889262091744016302490714708187188940260121644955822821465648350016857371087298954203442215802531657811198970053510141624526773280141067076987297631303024441112399240707697388548305611557312004020718106348671790566834857119632532750301494926444728591730450138930126137225594872871122624262091207682138181071371295193897059697919983358579774224511152952147487614285977625524479148149361871590185563087755133553970340643159377867185648249568533925276285615960235953265951340839911402922000652563811787229265057974210033269091149575832695072634843478444010000618613890513251713746558344186714519799610431926910859657044245138512483589650938204360663714634685031390270033415032901573063214512188560898493828371434420827203641668227275811077131030009847566844865047426620444752064501141562326389969716485266710980080127819923460520454070978249729834756559121541201967834775670929897645520160983088633046894898725273952082592626445280682838224681309687153029069990500090036381018825707710299308497067682734612063859710703104104522078507903948028237777539906941191471370866214556309854762548221456562050726676459831896660062116267568687986595401366944417937192733977233467205918093072084093147540261083256476165004004906635175455614274321269903732861497301616632221608589879497475278161567644069938195958354989126082886810560314535613044818710590067887423949359373322137637180147179466129318684190814306328224823001190383415063682717120028682751593628605129844844803156405487904918622253810616830855103266192067300911124621316549561504355585958988917514486121876218935109773311969045527172945477156309921698189747329859401563537394530432557665215960362792641234574466733820408358823472034723336272629465219219516079945339976389674183668392794316688354412606007977398381337248078469790695818551601664994232527668468476787763163501622780554412773378411720763650055620527577031483295411050274603411160436709988203034580769175239036958611937501684316592719844612134147273838260353757356929570201661892183885987815764271004325714604123383633909724769331585610540557136802342487262255307012222362568746226789907991261090615726939283252987822880150773756072966437218243231377065443787906963390273361445418088088709248559513169131881845008699202106218487736055445778900845386208828604739924120528052530107491417627887888017997716572428183849233329558089417368428039837420112767211954147632016634455090864248047376851149618015306714335698066577304636524015270022429304357663506892688425055894146560999368539647226838335873803529772824391702630891699802177667928406664587686645297555868232268538213406121790717673989662849888571273978751793026201842091900481881470145978598140959624082704281420663127246694345952440306927462956931052400656010671416380996856896969261269949684301481243466169038160091000492945448591059938888404350249766162510056888854107651287579146421040835061793893551588085225332990591030083712898372011197245639240455670276797675949203761841884958871685351149193044451835750695173122728798927442001317235892601321921721437873303633024851461726690260096224097105967888709799483878687683063643620493938148173063298959864866750178240661503402237882494102332317131276314105585602498404866007096313111453728946783432450841317892927877217864170021317653413977535917349839856621703479640362946167323733079737094647847428296972730723518883361477695737964669478799903856111741763300656755198215945679058066301300456819644857432816577250205479723192605978629611730285702429422593558054968121088492928288004448399427482552004500130601594574141376185792691910563256210300381485245836589960157040714842413738963359926102893447542286366026291409117854537029783482695535248943689318600510547787957817285773145900532628618578780268230443092540014784218572298448009598580176018413454735340042849748689042519391783577711158949356924576052220970161520269732810173502583433632713313923098229473921408304705923491224796612824845615478653155372569565047728388586111504569564098304905321574329509485265705935825106372879337377782393684308951497661063233740984948613123682683331156321129766169411927049788810319782449737029158292632161395404878460242342548795430885756729729034408341314621772890805664218058019163500295044400897352234043378769977079497902495304417907587694493437100797330520784233573044164576348403639182908643253427405933415095700753060373231717738651005902182234901542275684755337705736879876832815519944933648988812132612631764162504633348308465095625292589592725737783661417779337135660450302027261007093373644098941119514667750358375358848426811181328018327582602781509417070923255046893029114945219663899080394822539681767204265571822628498809085384658409730313322272172987789453236220849426922884940779423379084562375212193970583589212504966275786974341491687635613539195304066610246267731685134640709876925548559516154170295923655721015396568168379843924306331970664023436975271124496625345784501334944712392220131101547721016910594718707555047850937139995340895297041701118201263035936330212103298976873896335868195188532433505455312574198957928146270756432468988505856582035458878587317643374402050068404751923078842785615357034770924507987316841648713659142239267736783389758382402748555174281707582974981584473244695046272534942011032312203380037416842744335990193927007892404734817627748616038458020024924970789404853558534022994902735592663945976551852357438532079018141626700209414064147488056182505648407090875205002460992228815891340483982268201618624384433742891074696492570621144325159448364780786144376585613717333984230603105277702495181836957701166537498050082931015543388443588415870471208709781644671255458944564129514441182968083556969291172314299732664957178430024808608235728548512480265089784472685081529544182481548521736813930558604198429634317631083026814737758750137291861450448450908245921603023776350034212917429019799243013457337001711182878996954744789840913462877049615395845284251240321351344214072155549653303204713610872609455029032117737487541711599613296598082114733937603352506845023676023284269194204115664252272208765323233449850857838543240279090853838820446498984801856412130746128292235156815897201416480717009667745646761795376186304778636236883669876315664734363496341367269884212590178374132643046168174972725095865386899427866923082358476688853830877368151313758732017018959316273574847478038229884883351313719172929380090721741344016635258361411804272569579055456351973716611074834649426636504940901581497678895131015533084868373637787333984759961514909138053266423256616573754342012957134001013740812918056721359628133866761602755730338269351757740127689612716287060416650807513452930048804624553298525934320011135206380362910307254026313286458248164078384222444331272613095607513968777064483700827829902926953282676834086510762643366401703807657251640621187133688376625531639315450414012120985083361639686122499297148160271544699502760143277686645886413870707357826816985902844264363990691812527895750505999911012484550029018689738314743416575516166676330942827564098556755018964914854569149044342730271004535159664941525324257319948024067245419632634013398056718728309886098030293453902720336135095774089541124622529678486378726189137188018043427185044263437352128119009507128360259262821867057579264705225995222894799583891836294636301313867266433629759067691919672003444267381772120590255489821152790942337868349388432198493035270232618282282963181145766793786853097782208379296681691573669364123119969563969246930284646615862354200772490931994502614802092715875965144733049382229811883984073438646551643687752495077714150251437154370455116759609254496120140935187930632864006030283568916919406164496797571846301676809487648607308859390504023579356517753193011158799970954154123152433672978702886448343479287575146788542893317018169661030427180350792875457013185370509134809026794566586473589354217785671038057138039037523139345466818366116098503498610021502405772135814679278057407049211106312625531122703826278906401037693810010188172673899632888499930318218833146601463522080608954622067938048321040527436711156974160186335749851357079914814787309406082566566786426922570895461310824805660832877914285020709167325164450695377743652454042309990931010334323707199321030146209870683334890563216168106042751064120237660876235096289127329191122759453522475885147859533988564821173476410574217355828469403624731812129041293870652222779056238587465330664667917530221784879832003693733214657845589266545321469158675219413015791470528368823447960126777444128493475270842601731512227681385440267684917352341182783748662710295434184307009445209152186860862799502881247459104391681092831863391696201434538625856948135201869574881680243977369894797694524143835607045242507618838890271248728678611082964417222978381922939157318684407846686579793505537134801283722863944963164472659411990516596315429166257058813988359602161261086130498961886976610339627117632575458844831512373904568111630237220659631950492206332659131646363332233863664146514982467212559454528013661166308344090211229679680666420488661156136299713316944380661985604274676871698688998630256994392528716493152399631488896294936170824185206939310909346720970685864590012793103714609394820930888556136069053914145067634626022803008834904294317791359803275493771267973652326077494985524949958575539926384945227721897229678411605717432887220415731112394449595964640284761000251017431852775081662395159089642269800556688934105793912817692564335522995879780270158963526899871995691154920681690639658449098200973735269534232208568559728761732994201333160977530167810505361767830852642335209839918813611782512655625430351726042314830665028083145767586959363828174838360408680316894270231824329854732190357823156253157599752985137021010537269467145053455813319636502707212118819798741515297099802216021989788531711936941373651438487931206010789757888658212429700427034803877397174226991227164056289247587465991047424681812066368542449616887592294895661674487742582012345714065372766683423818177975918346464237565804518099426514590985959636177003904585503822775385766626173500273490169331986477333119610501069813118133383134453680803330688728267004543019943353801686400062375713835116341573264595290025188023305616684782137021684762582667231739729472415203260345327925698893216172487268072123372593826130365074890802038008300159391509954718761003087879427874196354170058818285132874598093614600224613363226237615201492487308239520745861975605044180602041222355142379790442997332888978330788405438491463381973614730720474718453256383481199984871872252082385722005378272606448731383282850666465629567444905312592420858875347125180476410481709038657939411242227845647497416561877252876782001991203287857626775254433206170489375139668118493868206900938374138769385311898486290897756964201035082597760067907948961018600155973549993969466996416321204265181296804479497367169537790874330869082381295447238610380295304143426367182221983853831609077837590457241769987641070910844623692976580664089563585326761337020638943531049143601489103875851744723822125626960251909251423897772678633982105270076735108595714217332487467631610763100048424549844965457814395881261401999267262697800485091841128327939188476097713428769378938240533544956800561817132868670473341308815059943839886997266366582273754531518742827239487910729379075248156591323926337599111365328322310645253527984775244341196577815879906903521095541157101110058299006313435256383187329240163984576004478490390141703195951244037579302184190578909063384704291752555830637419198716270892946228989376641925557800842212115908910895795151428008264908312301122513363183264916547126873577389100904363817276669640730758619413084071928380407671205436036134694560919888007741535982449191630309753664332736460897145767554853289047837313514003654733548113209251191221892240276099870360839489099344014130779574697400011026400445441952685465893433403164842580756470940565263521739515361058078062558681244313148120052743921978012675576824956252339956501389828274234037805605598667685452726004523142406894767160613602245492580473876906022780056863886524139245819791701497477975140590250652201219154732736400217669086573548229208116732269707676981383171491252795326494688905749749618788548858962027902042125921946071673456464334790576643377521211062696454618153998406547725903642080851354074315912885972744018786447770087653716096729146578776745375803194898595765191971550434084553997438283727975392592424199858737222796959314734968327512456701129645275611945532590945457952462800450322091841616830067972290925564498870551827868521761064704252651801325505725188689338711564882981998120299986463502489746658102297822843948449379696627422062895243886797087178637027575416113957727026153057415346155778330044428598275315578967706613384036270493120290507613836229401191117520392749172096412258571560402615032153827635111084743455234028905751455397785744924577119500422480288810828631017768040250296917176632448434695490495795977755135611966309993171114927644416656950665608844325035960134890349444413556443372586520559832837193519819229009279079934606873341586741942290049321828469171764189811241271647949453658094429160787946215179716651307576147463130970247997873727974067511283707020219686526924483417263880154000868077453914690051477713805271136196887358569046963869805874571753608365283215328700281983457977952857048546220944228671701660429569822276032208906729931096933192160572246295149693692476901455196091537594941784574707892494257425186097858548428459424376387662497984087646550320980162285901325282201521325693438480604602247825007677200671276514250424436175928956540485537808694333304800219312153762150810800380806621694893078463769892589977734630698532910809263107437815328898044362853855021834390912122741738977821758300377311440623859493569633614436494267623107933057582787027597031912302436536602622156107038913038940526655313128979475000599168436719230746231875168590479373791358058107237116271439808534702286595572509773971978059760962297210838806692901261680904442433549818620925008692748873957903923117971777658793329862555772567469548143002467019505589191718114530901764923417989786757928499371886541638524047161339549602277682426765082110062162631559257987160796737421231536068940718483964029024248661034304778994264102706949776248575148307561462172531972664781436601284715011207166162264799398748647602116589585376854934679963742457914953051946691721145039571844998266849513107629892756583426945696057263708247009994750693020261308540780350055558490172405421428289666090295542825603841236555039780035240440324300849784367546887864831624309606898143427571441703057371816431575507770282526122461728642392196192432816942415458311434825839898602618875123881521308982007254825451992607835427407177997295729377002813073570210563685237550974923467114714000844989896303257018250431482281667125636301429779711791390686442932922244329613664425131089600404163319655508686293527010169074435132978080230174494366645834755590504680452249683087759223887073155621887364122438860254629526692335792189273324276032741533539502352334386986518776956432957938048665998880685325290212335547712028369697824183326292992435693913540242716482789785209615280651078755475944192782007480624737303799458524851070403760561265639457696317237278904656596660505743544365115492841878734495128715462336183045543206273809934658943395782103957506144616136830153405407358672266936158857255954734452210342703668390730541057396844593946839938033465689811307136258086769583082788587054086833082924887832543671178028645044557073239227098480513229458149039389913591016002468993177509098686823229051247876820798718243982414945289629089716996140366751319075301008020175086432625149602238505337975167186844881362391209125416902221559195679769426054425011696343044441918659403225927881097343911211243717626126890401634600435427328209073743461753635820019186112083027909740445552812289346975200345531357531299075729236405561508685552397590674849531636371829828633530530645150208184503151182651776034534194744759998909284036198635024686944881704970044205162894498410464009707238205282140750726864962879784770582807673330885004328998928527533439845175362057085940639569378043342472902166469267354482042096418116504498525752874928778515826838825418065800864151849444632106576861985646290384156513611265334877529323532006345807609779521470628196999718866199334986572956688688506278103981051781935300282234243586993013872468803258950686426512771248907026794738473323458536095926070993334201089772669099761489882438123644663156612435553803271458103926488688903431986639130399828638561357611965952003716861371421661233314812849885678547384817511487849548456929528125980595700687051316151590203277491211230703166652231933569949147454410629979561361192732151616752748629332138303450273757944544065599797800855402300530044004175834183876209535886325473212271684330929891192674317443841517834842866611817630148638536808133903224850598136243259681644376902792152166169851732829372672942636082417098455182161500416331024336720233137004114379876566353302706777212523511838953479566779818673774188560722182713430235226240258733534175701668467744617696262988613487346489764273059082898948586120439516132704274542867281447783049542957601321454315678533721728037596892028026651635540208893373113097980533710736362456716780078013341825614498103176540566938974143534289385832905323162235130066346757041352727952568903091139101942344602691985068600415347740725201674699480886139888934356353800252512474857912718646530344619821574427433775670457984972177579541487249038248577073020243939923696428643610316237769871195571828518029508529448461411904153635872220685670707642158583256494308583456859218542165243393699214164952236443496457748958402384156494295595364276343604678312646427230023647172451189898124775410484213180064228912049378541166827575225355594773136287156666531819173362488816156045208508208560991938234263920211833337682526635380537430431835477460509042192602832315687118580691229655900993070581527037459946102592991337214423179220364896692530163486660096399335509644828684273165111475740727987927734447121923811622779473238741695827121592757798603113706193063707946814253008214192923272253779003968819937416524073838247804501615692377061449275363170456935861420965095172170751072234004462442294878330428162542632593858783359001195253466694892918488164773914471570265550764062179588877649605247631543364109358753254735611166180342666456958822302164239499066951730947138877900798149147279920812939411544509781087979695941476565424566741824694142849996719928077205635241446256591700017052375030626729275412031508912559643230526735373464019240250130578556576536365475018046817239904331773938150633599458133719766670228018226078668104350218985931811801607858872990720699935384851367167739145711172179785137076267766564349302967519555659978324958199916146765043332019077134838466072075620370306652540560368676995749510072165494220946129856329463133036049554286123452571625075732475615543177515639025634482257405120573730667318288324019004020861970663805772796592106317394567284583101979775872197198811044806658606493755898693319887616087372895674607790255881400485951896386561245079240964142338233642767110625142110482322549447137224517355450793647413303741317552884499683302078509447261863212375822733194312276348135852903149197199451734464275026656518993083833878499529203609008288198124435541172337704953459273263671169599761129808996005437623878581216323372999970550060070989403678469994756698414254226039855264470265512299007765422305768212884535416280079840993890332020197951825566014356274206818333522499420503358548177379425374190524273878672869220973421568506855561660810996584308682468794861442340381156790168621487657781601692379121128325657640432337237404599308650452330966847979947634436900426559982514304980697560410685575101853132893911196358234273661690960693600085637577529047439517892207135414593357246922941529677325561532965672553338262869437307278197926661262707717831835784518436929341491979650310545793270813421017445158186542250644549003772501292593975447709094415043571369421926134169593986577772122204773275378559871506421444591971525526533079234950160589259222544153865722632015954892032719008407885340235944195151651622513330146597715991460875584554190031990070627910554931530563649342905063361202552540301127685329686396976659746803233040880716123016441985467927321116696088410616181190810526373174600390435928875523062514155932825894906274308483715138520614394866256406508051798602917847221126877668335579545451980132832385133894156124120078968509119403173711968409031800552014828170455339412200011978099580324382619306462144142127502309180640326033223641010276203615262114687058028380085588941867743261349370993973702857018623847616852648348034602141563874611212563171992765986788936087877723607456347009653865441619579863577068148510774046411317769488196661177108412104907381097810962101309587928911276413467501807322160255372837620829435394398834382658963725081504392398409966006969501973192186518102653918569991867502413169150031748929554026722990871634637214171546158443533351636342167061816365296284051266328496011236849150449345461055740101117681511171514760947140012968790854417351946071407446078662072640735220940059728332167328142354396713110698069485082778916626606460686386151889930033715087699922699783011335477505864704469841926909515548184737141357731489385804245469806958768944493721703819392594983072573674734726648214920809637583282514661713141829745427843726859140470801470624265586023828223498623370817158856809239248288506924924674750260623047276524508345243278623391722725977892816195262309775109450880991140148187027491967830677135136644230580325996872676205590312997991518944867219412669274546306231300413762632811401298090943439682589185778102887843900492803132868767122423818542658101294361272002251780061354453866056250973288140232670293044581782728468837687250006442761536059470556272299690957997914375967613967172164813451554862009708309374491317231981746429893927144531609688712133426310187816456731199475189751197759465257646842371198216460339282750633915398557051799710027067632676733439427724533788236645593835807509444175906154450484613481954000647548711604646604751497540807422502495520203684754304175788060619129535801371738490250549694363937235752121342801489000760082136376511936454765154795684709859174886233659747483390225721739821302510139331468724160642610700354246860827219015582973073976947399617594041128886315366881746424244602586930412505521378424255017380032465265667215362761316142421694691993940207887762504387166421236510867528566970160463089606759096124679187278095713660918618553384971127668497046021678520648960134879797083726161809988472598221021601217437486770489279574976361947415653752317097331305742096201128815074105916148289444840111935129606988471265806385476599180816687492890773225684218352816179893072860055589468584048285453436719517525640982774194141058268469048965577387225400276536516955425367372943000110091016655674003406060712250053488385174148063556209114824081555244483731708955900726532150354551782937966147258598810543823936753686520903517318823262011585917642295057775139670662124868029436972330160880797315397252909792981278886042246204165193404270783269801348763637152601329429992000408353007312437173428134854395937425277953204304961776992824354267732858151105927306030694158730568962061308546087508342990363808189364174184810319704604004520944682455714777846565524342629739727593274186147290029681070548180308761342253460877727394017666561646232594726555502933508961786129219597466251235027763251027138231880295901774170846305605998506707318491007764601183662161973108893227192905274685732905696606390108531875535865845607079006794959894432216825346045478433162206787234233126476246092364408969902409919138566805173633881690350397881948184535152866612584334437623348036912757704061878261248687490911202951528492608741837409705362719582039883281155136359306190159231773429663750448708682256062882883290390959005949467971978699080944702986357824079255152234483809502879937573086745054376257206839120785376504168707646622484991571343302563271847558822950754647578163225795189001364269377415443431710422782531545877679826553482576047985151244982569375881503992430880269700096563487623339663976230593879768757560108619301809196542121192194972704740520795530655298970071263357504628638627533412757418480570337691396585751985461965155310976284076209332758214506564848767389607311544333365776722779764817219811118023926122147604067259581534706114697758273933493959563002940830239915982187754749606790761284597412047733480731981727354181156519355922506807949535330795339479786394835802548179520938899426391712518899138395165663231141465908883039598082489984657894341821127779382248403941536764165104817336220572044898003113240973635644090763276572253489642708643813811420019246644434128085268390147668029650012064433783554676745439782098737864247196176750556278363600470326095999745481599345713923866802470753331416049037484825928223707995137247808037643731643029863720481712480803475515243029549102763048464917146346032431332276014169806291563616862292083365745381074651893004549160852482097305860727789631191160462846211499611624669809483322177096478214386721148755093261388472128782891755506186991973392711700001321745383379094648011803624940780086582500626550879932144894414054061299960993299464639186614207608052834817979566517791621506353550288865317857067375336928417554898242326643196462129376596568940112319157092083231499423055920640594707432091262111550561684231811831240466256542713181661597325958813993670008987174373411819710450534987118267162514376334516843936779526126429488310208368808310897358341014757108094387247512659125375204672675330627686288590169607784290548382110410058557003362924709217931932694061345262413228209268120907907728903451720137313263784236452209519674516872634130834760138129431038655621473521216802639339903068474775103687596059768319200003673099039031130132738997371249903251328092080011713840216507708578750160367858982350766590059547132732976683513275005610581822003979213868857710946064747200573729568107986622151806151330167807812797414112223834832219517002514219550307335432325341388201560110123433883746360886731765925147032349433318034148429538127442864608056516539897732295025184045546055971090915234408219419363892553685928619276481611764838493537940999202086132801825430624487940246779554549710590533236959564352687355191838167266177256923557582811726668692791363306750136571014732220624279495707098223156431363861375060461864127399659143010020709492584464712806566059332463443852263573188746141040569625772990783331736156103507693266933526627884679117745998777752641254484678908174238097357960328096286643400027347347431105105714554945589782806642039877081336363740086451639061048854114081154556564108109375360471915418874644227203064811839653836220614856267452619307022961355573788032024865781254633314141432145523356862863622742567995203736798800226943034018200852142419328829577219241808425996861691191676979268291996394723770034006080536052582980332749347682435176253783669560519312613723671852693672496458188379899280415929324606038423494459575572543622878136353653281328510324854912136022476754917815479264857448093961387720511913724076982901196460261219290233639031838025187157778290240699177610903020712637982478742558622277954187459890246502442527126923725941289530728636942242832851408143310426671049305574154521080783560554848310361268328219280056029593237143427062866481394458072998598744947030408110969534802001560591460080390740785182557255516741512098500649900434206967200545210733459726795315501577964826470187641471056764277996659346217148375320911702607720921714040614242377549146151176156506715114448569291548994884324787703034866596798536267280427868856128210424201706120739658294611662198561038637826612069784197818108869684958242668765639365105919286870795160538742709811775037673922236151478398312185635328339433526062413488369092543040979321224061251182399550386881743889384045117128712288257843102445303653020288939287606455559542320088805226373679388914567272338381969548425397475294204135004792610132530445639602419270944271360024193059684308005197956365966437923470080212390620520236662741725615260524047934138459438354074901536064520301455227290230699483169225566580922750370898177666817567249682074124947427122609057574697109143966169521798576310018305039602623307400821406975783255558767061318848644905564316657112593418706932487553487084823274020770465088224268709812341324555661673804930060008253137869826855632797011572815035610929959148361352051487105834834312747125427289920208732795978170579199800998631651304054257170171239706887644128329832763616180146651723302654279403549584954756135303989937648942299700852711339717592017983379807497366930577347094186111086650288182630331458702579383846550818569637579425952658330865038712264576434273358318198073136880282674850075285650928044878138790541714670530426646737239111307745660562298857165022715666513628114812065776674665103902976692487508882055014627372012336897521368112991149934987116174200869791368408215226033600417247734248669477886259791122067929510800967054320909525902640074481900703964491145053348993039434618170576312082906144468445362339496831188879902902401686921327873061222055162822438462050240844348235028970061079003992007401371846031524830767864932304838651943009973465716372651183333762888861308297907137174549254870055471234492275470560544387148474335460689321186922052154817754108715399781092501394545679942377961440834230839399703501282424938862117473330941979144312957049511408845642929037528886371413220050966243400743728757966901399594733383108665510841799496865630895313410690256299647525750293542279650681075187839594132902031780910820336344043421308129759220245542558019436214700436079808853060552384735257370850784617107072345416919221623720320999579305055712048754007100336961906716366550809295526612254817523399578017268109274002072405671249346716591404021209983979027805450419336631817340490400418231914046551539315979196190071420130309587007758679172457585285333984407275446464283941659283478873947691080440375174208704811618936669853224033196155338460266057732287668377356977665317593419734207001154027549021556419390977362107951566421571054406896125736548621527568397412912957015034127333727869778281334251175568622902824299121006814137122994083983399136166482227771632731400560183766720634251329418897594161773060539802034594038297702712144472891676313706446883987673410282482857862922442839398528040737788751259227695966845089505820773015759410684748025414528696598479818509890981947195257361662161848018494532134849322694639837614819459373267651815634283078205348721773154392390412870419238473488495892811515807994298659002654849175879010822018570863636769222446031584460394166429802534317246020280869564909140862911348431039253617954560714335437675617085660987457198648018800382777343558620590438858557946392285193650645979770905926403313869644604300044144578702590306529152578132400888092938606922750025105773851306630940172674406990488052642975595845593990440623443473615665961044380625303753798228363036789851572617385337245048287713603893830470110648964481559954755369820724740835023142908817850470712273944720793449865072139460264361497047403468758753544040606242032544904472935367555612974720313408861149508367714224361942969899129846294160081140161785030665766445826577830190854217260907014571043002255048272308732865063871224654475173869808022286958564139238905513594224259933914827532561620540638955398048807951437147023274680741031766350898373014380256906357829228782050945501924714916437057529593001995773845639922802479146290156873386966739014848119037461699803557735343577353481232343654054465852621261892548043035800729898399680892503871146423534536298394595141819152349629684270958247132030018382162918354774319489028896324138327047278763676751377112399691681336151540433907626952482216839572101013563114148116356814543333516761815864091171268018035976074564807522802019142345618618696814611263293585693156454061439848648603900232418839820728293364439822721228519664093476065390130785501716472020512013881438102925445664402121066634483591707682023713762252847489931581220073214382852544262027057730508555587819448409245752196827211663999140602027921085419695109417491889099084224619261661770368620089403153829471226518810717594291344092713636714466608358201234444094167500520046098380245334274100785002344385649043847464734797549044349046738050274207594175623450307847093148516747561801983631673468340363148411395920794583850127413435827019689884025134801825030503130733772523089511592252613809466459646560234826445906986645003638679935813369905250534757893587367591161306241427519857084922356671437188389977560466508731303674453315799665342857790005329508615154514344351057953722412281669983352283551966651289277644031412992652556420221168730558277324945797955207064664516125807182077394482827117530995789311678045352671773129406858631025481124440952970811850590168977475179311417267473329069111125093731780508892756324705369506527508249163983351216527926894861984218977493597313070316933832100908821729001280606988724571258935484219895197973178500340631271658920064310633979596929260284722046993624513717546165771518819117455533425122724931605017939707736775967866173281393085457772530551247992169988216569982984990174990054802163524032153382265080467599150064967218975123214215867679497440718089633047285601216245742058029710242043099917856942668802564372609527198140018371849283446939672408459076718592901668771190447258672534381906956094259834705752574352802896672804738898790474131152826592837448174955607570723646603111344646222338553776504597285347083983866457718200376072222470487189945211912752927113388840831610213717510615848823830613377930137564108788203577200455935373483532650850323029470211948298912829435770050016484591790150761596930307723963411441078329712648942269143794756337068282856171135265324841946331075371123540130992828153171339697236930189771490107651982268765343752345038627147410354508722630563403933665862959196950569486411583392282311500333776154665407593707181275835684840581971644768528587288256537919446463147341432176943485540640638011500162557314533312733621002223429892514158425837417217807007314025218895512992102390902605386164143790210670733160079388977658844333157528545770062514081766560620450059868976265153173403035083824150404629275870038340456593191203202225943499826660842662015249422405618678357088360303833257982052929184179912763079518903302474226922582173054990863696253028662208971652356789987054551762440697694349009644261663016729394313145180725787271420924908579024454498277548204327732732623757341698026496515155990521488987127339689672417073423274882985032761447277531145421108498063406833669798132963172792903170217368606256972626163767385288178847146286048681896902572328754019021210420837535161894155453687618137716004291914649156508855994978493557807743114968049313695147623765819235285456697276564463101417940178664724708313355732721160484198723554741911187842529849793997714688712286126396049519976447174347613280706595510771416752266593313880049167724528524012102194790785642813055442988597514650133966302257607542550288859393109304201577239618284084632519690049242743586768698686361122018234596241289780019890598754053544031740204817767183762711324220339476719380770366594391554523386984955595082424390217284181724290596169968435065858599491307778640167623209760086860000051861165395529278819955267931476493945279328200977376490397307639661770280051984581197333525847514068522859708231583533430590681075453579572889275433851071507790269803486296458656243409268239439098870783872139087050500940845869313411311719317816542932549687157466960586706081452160200660108805239440638419851185195698038963220212492417796030260798689082605189889113012557260473683340789566272316023166159885843398316842827135811989529073378718533510235428917681111125431440771502908281003600082621601512092477347658730689430873153097048302128888718554041933421593609219984059496326605008008926307020495254926102225643738129356358907683502057906011840976311215599883724147129958965406685601312085382162003556674613717060969718584523239916273949810207154076304662503459522466506926891073211384823475649053674185737008959000764948106422291401196630429599323890337214287356165373833647663239001547062314729931502552105075207013541767087611426117393308425243681729099429579497263935928989619246994697331971369827592966147459031879123860178556416366276812162485452087050779281653243877473247465776277462860784835073933428133645798820137395754385314193502378117893691348538092038136883870270610962439440068827452203829206459556708424059830903352282383916597391525183824785977895227792145336412972376431743013915082728476087440897997848086004758934920020014660097219430540031995442793495893024098669053903237996896581559947091948601414031757477395978007361197718537641120962275532069028606137423304074255239108102455387724628799593901187627985913828143998538137209748617878682482842537626763467608428034736580417565149856142564183554212247694860677891394986998508238748279056294743140870445768545210184926480175718277266800394782043948257903763213852621871871811327547136405307922205331888865815191108425836765664418640340968369673011077234813261762055531565965897729046443576825313996417781176790894412445391388988961642208766798833909523692650936746047588894505310109899625291445163633643565910504304658623047204327328937760882475984538574445312793364633130118486681486469152557075933578135750029167377389440124365774890873258486299109816430963127264604373343212546388299104318470571906178845676922700843834594985617648588523722063809315720707210079878234678766312468075749198416704630521529272588647877756608821835089813360566711647738549625959601381536505177148505174690231798650437726281704454153270593121067541948801926936551600287041106948386506020034767374843403843081183869843931977111787671701603100111623755312814958158656774073272100743682458878323444589604221597433657784694606100114914806848610745791546403947659827554475563886637246126635509644037745212323729321661572544436681239870929942664044923537114536746003822010517964663099760649436827200218647415425869152403687399173859812559035698759386132513733525197917438485199139593572518603432779473736261324320953371156669380005777408446812593233247036316863813154688843968117013059985060175980738336680886207843259513688627936552180473201795478032985224702537798304761034640577599234114684150395472157029285622476608970445469264351409220553768361597334456433827855650648217466957118647502809230245178769639993853239738925567806056675716876682422283017282936817022504273224396866082278208601232418911279367184549543145434571978401847330101982197320430494010753457273841180772975839167843297439260033361306231859752094207028384629379307963375587370120892567327542875276293452068075556238945784478600735023962456501911984066799126696278178866269728989460302571144648244598131768888633646122161627087231210877256034481374002187580141821951679981630113956701573914537690756270050909145245579966175210801112012642210154796842316505263916579507368566680822874487864020362989135097020324624006314561116321403709138346420980888946418807556037133407448629163799056708714438913827713476182205169110122602688866733027268528121234810576902642504068292326898144598272995242776886965453015736237396935381390431906025661293708431875178523108517508757391785531179162338240278821952126088048197986450068226774831723144943759490557277209951961830497862605374808155224939469636385193266339305622080043513218158622449888425194456767031245581374694909844003458842317098241177417594654073384318537614014274638379678668211930355131264939159001460646212542533648724205036334339602569874885284726819606594123422885041657511386164738919067002660814461962784015108278423335095936649190380080180423697681591915085114917252712784566150227882849412441298528419354323964532258496599814391370335347309993765997842664457112192966148228694470774600611302305578582480928577175160944295860039420043608800423970317682144078444465944143988280585031718542335455872656811595600875896720506082951496810332379790229074902781531133015510611217935357356093933362845649228106004772313103640832365835282208394059988471073936800487819328325335459025396570455992067581003403635612915160354811281868500455806957935494858744011266536066265275337467941250036836235767044570839366571008086188430158068632249026438325710540462716066554715033625927991049365671877045233620467551025188147262429800328414641232297138620971161975183440204832899235279160134240243926943027169253484725841307756182318611640207035194638934870053022225259805700356331446246674073081228989483693330031336010089482071864279110598625145344983897334509700107783113785045412924578937553803563812988625995478320357711762543256617336738451978922755935153430577683602557292693568580416041832633170842619420217664427754876632319771033653296746607039562410206389184969993352629447879346081587137339646733343108379316820874199929323969651819293113019679076718937071199901763172245050345578728397320453782431961162000099431619257636508826708541731166037208290351018583744010029844238601256135664229305066042855785268689043261634433823644928454845057121797801308338802058920005316302499552363413833248661123702513436303488511169259736030232163003822305081422419026389114502066805481782156632694861502754979243560756212592245197523100807863937594252999186131408694006428330568586015307231563469737762677675388942047928346408208384442498502179799681008579988782149764501285641435990022530946648040665481116824811780747110833640343100007662077033093947677798755296019847508392954933349493926563601016496929123469875414558834040643857493609638392363200155357454201467877240611878584899999252113145965341198795919673383577017944728928968188481448661224291075753708372018567016884512496026068212008615028176939801929167581489587685373819884934025603597145664135242986824020083902996487021096723150892536492742637584310121126558613127727284593968623544195167414032733545800836776127631761244968824121836721084962235787724618141336990676448998813852703047715213811637941288489849618499384779394665853990153643431735120312305429920968427416953875976251920851842068366777543816728290264770360398365717898585281245102580533488507853486776410636099731096134403206260996902982488686549319293643531637720975338062774442511093372109980568126585997800329988744328417937246924281260942342373819008519113823055639538525275760856402707817752952843574031630595707952298354545184825402335094950404259348636795663667703926268293732564961633151063698112395705142314537083991616950547779280628471281690341164749499012447299165498546194958261507876626592787360491405411433215721441490054319100635813035960834132466716366392163928603603775055077875149876684756572290446215528925532478195239504384635489917470096463326391625019895657091839864779191248175725359707188301948664312890479342943089700449614850302271775425977562206407393465045976297908436881748503833129655382585647048244745091012646196801119289339432854950967992908086715516503074965207409278619149249914838113005249725576418666371487020749530217638618692840840072821991266062627606831919077803538452833068331976421222923743339468413059347226954368597905097544445124696402906713020159299330180217105876523429467859963198283395884043234441936542161234769819209768736327688106295427043115172200092704484926576457914183388603481974316092329813386075170373624259613405426709611085765308883457402971332025952521697265667513650193510484500062887874998660115904236491664649419003341399218689337460181854236429175866740609368392209643656509393424220734910421608932432892637778350933286136668472965088690971278839421184627681522231748962175386299097329244177097068772329537678049097352225149723190642045523593135249019711930664880728153092847353043116297956631874335540580307815023686870333938368953792453811805831740565243188350840503972347994695848759943144483681177359511209973586932417924330217099503643025041183246592586063812059743847407849883955232171216227424917732695277199556188066323901975982159010389501074390306012770789692374600650404385942077761657755105411139244644013346573216301616819524115228757784043027007123693541941401714658225992398979208067121598166142097886846604714540537275695848162349287073009962280028602833233375670006721665253326322345432390133162478559081524695123051861582271050889809291722137988332965122360721717691942982583439292355162461915520553277665815958380129305824092885755576633966621134019581077695125789240434429990936554737830527630381180367967363556368967838610313140411722753493718155928482320431578255268188957356019294199279988125500614717455508391709408654808866589244456151390207578813166474346870880164099599192085747390486084139302647713779807834071372217406370768139555647516849613030135025103013290471302778318452925101500391539186712154181001849833140623040725999070308189518619646651870107798479783196007126996408652387133550514768413839597174129254071371568450954398032651309167891267067032582838117204325447925262469383910463386741087078769331935870719583986504382563629495001345355632246749038518924560449334304897138292560616834420110300868130561008722575356520098752516019776657569939768735763665398082819461885388330471300472960213655727800851155902151730939501417639114785002326478820083053473007764241706185112027132069729324858127965339989302342271693884788916163757913593527137408790149746505005218207819383784876763974143102044884158596629248485598798646785434119320720894565149533843488020360070167466029516706284990726422905638963934410231358544830308528793544439296621972444352446155878443076708417907740238205755480462639318179234178597450632323103215983570107145674471881943038334080910720916141709699508176199564801710915737209892947202671597222242599369447550477537066012459295914031100394342308995198579822089452055364098372107449183888069891814122111417520562361661472689402341799952700534368155730477437766782506420392299202969593468582919541997865711599062556040415558668265636042215243018191623897998578974351318367237125296134391885166899297398246726241835780017634780815567634394661506179970505947911132449478139635670810527684317520485862040071243560309867391802968020957465324728340446526020176506543649333418193591613892676613340408031150923410837825239689621125403167603867876950247896037508855703546108569027823393681273853676770820321096743546950687374655063874598292674980461586732293212701542429424980894302243191640472431218711516904909600618984404881052592082797456698812403950173521367219084861696857216527965263287004751168716667849513767174890377998401063343534216679480421569179678294322232276011831679020808544863451876379955538941796156580475236294822673058515847570623023037098909854008847276995492013071018074682684147416003546993992844049414836283478559561560902447853157681929517308452485934155773120734305366913745897756015162694665618109289487884330483446872093291481174627538244927930772847726427477892567925462002112254551727639001364984915294044318704183264876330055288108462846390987587410902734573590171353649158462320254806512808074080743344226276996750518151128847731757233693890213953123327482888157497602922087078841110999933931187990724076886374268119326457480000777430699876707938362853479240347082703603632681568081222599629635348173073371658287688481447299147771042593247671615178352533046259464291173515819511806591055981364826227246883780094032704244741097343465606815102325756020882845396930553825052002716385332348078322251740842474724543051763119395215207695831903287919478095720245124441735368804018652069931775742141194110251850091625722519748386946017442140116633903955963280552795458032274289201326989732444420268818041715950490745876341174526919750791023009209369067885498381613905694211413351184874279594572616914932497686412574823482348642942377215521130817269849862373035127502044172927702972102213367675780721590617816429708342104614803108454118338420121069255591518101151717642879977828661910437675737999664153497869189504293904082801404512253402553713100997770767105015611092696360380307219298350086784063624968967337718390742088115481946678878428920848933882708386907125618398535304133030177519239985644372938954297065127561213811763836648534422887493352280619868668522682653213039020083540471493917474817415258011150340401448436913776418233230749560555964863425754994146940475700959174109774286502815240507163481560731546742431968792613542648037649296511822214595547741235489480909640530766781665587665097124166429966947533713247939177792572521079729331311637247414734278929498283959178646836690868930826394840089986550164835430341169750986133506639782924871210752117495700139115602181244169295653672604905090769926433182426462282948857350701420864430248222868837220161296144700602394330045085191561651650325862315072573853659336035436899720800094073921091713304618397636308927718578418555528742864034680270001241393139526761324514497649684300839308189603369587938354219379460681007411167913642945967164366786950914348441003443821979022213218593455230191939119548297458930843353737183095118627976252628336241054456625384696803186011431710587274115638758322587412721666588344035716554057802863985240467240547244914869350050031330929812747191058073948237392009341894093111289604830023597320614484184485517744156332120220477504852698604091925183888272388702861430914853222306948591887908022680399431983541117138719492367437971933121844248738466044602210615658862867643806043568114117650697963246704341088475683318530492822626493675528600056207463353104984225216042321376001146667738107564183152609370793190749147956615440759358933843699246946937196686169569987663121080588734414999469475325564347279838660310645235648321110296544656813928105512381987918558425689953471387076890396190056269218911962219385071027359475597003944702563951885079175023541559780924224024034124683866389466915823514512893580818782961256575814772690702363304219194203961830534528668328977051143334384135066489948799000720376153061703599843072679199371658540159259798498101196119538998137556866351916620571932447031849328787256023977897866481863624752862517979674701437540748904055304974689808408543835961142085594072296592410623170752675890100597888664211917340058800124146841694829098387928701903642728565063615385443321078787123711944665483534233920905636456755288755889459606449704050685460727301527084254176103491243298149136395296822734789729317753700256117545737532455497527225479199007334222632485735639564181082679117416375499247727838159390304003030571134202410693103185804812325570163525296069319623816145599163730185922921933905536011747475942031598591647712688969663028654594325035153693078918089312513754148213063007668618989262759304518118099043410309929505403041385974815867122190233577250150150805869916101958100614470034983009292551725408118006611121235951346641895761588663196317913380729254231291004371108518551405994450022998606372775936377098861020556034093490963080696659201469792363953314772131078667632687274160872154237958460356055663124262354966983792733507530019524175566914588130415449053352738154543413594545085555759055746859337037597956574802781437517898981201260138070823942113303673680089366795376854408534629898470038633379163355596403682073296207637813132958858113693355594759290634136747780256967259708228636644343223980028474587949186107600725259936392735777121013570195824487856273151858319891526573650812368361563775293793916846094905488060644011581024318483129279448097791799320727239812673380175801989275963391632364653891947777243720184718107373640456602334006869206841429173895703059607027392303674794907743926171389868382128004704281024870403727346055138902650587865247131009773189120724756372845491870997227605598945251898479582914250725457026660736962202575766663510191378047703632617463249747784114730305858149455522976550234503328850445550133121500224757627502560055057167110355654643248999224360229261177912654214682166321557729060626573733839692283621107356948426803375404630846018959556224793118486769234503187944831400099228288470761715267170648226523743464058762034882941518471450892565101278777843730318198718801232020966178437603370181179421298316590661029379876713710662043107341929169698277348783290661710010251711313238922764794822548510020134904495372679179834804592464237812286737681331895851289638653091703758265816891237799182795562816315101776199015801173936547441710685009966746459129150936069283438578895107091502601227078825631348367575661466056077169348161896770012489546918275833004588302254882876831744424073712039725862480421360228701457764058514219130492480281913579745586645103772562035451909884607662630561606499772896904271709229719356755181654105571964128440015382706514022312333181334156539979968115779435298814301442163033985706556259229171768010438761852481214389431330336564317125802021113775839435637965580130662461958456461587999725297523090931906887090395905587484460488022696441391256987295995114962855612921806813268573760550290869681172218707163265763349191394585680641058819338442964575777893497543280579049079916082208623887040385534445617501669912225967980975381230593389413413218759796685965579029112005136678833832894846603598484179963571250029060679857043272406924819783437562387887049057203390627900463241134076256499218786189770537943493857098952714113018981713088100529719204562220680560013733214973141795869809897856976392623866925724660485234051846053601559166877051642362674194174820953983265496759785673849433929812421293588367185067153551207246242491951029055310902784737829235498402100645557085210178182068859195219476216251720950182343792746544692121519454299894665091842042681152109904619237098241865601494516104575140969754137314343832048160976452727105815566407007690117009874964079387966075430392495469224470813277891161535992211580729175986933869544629901908169879935416722800773228752447763465099106115801730990751728675468974618625470576417729882877131100267354292509390973347617159546332127064740630541204540093265710075507336304300653783397193937130102608152566828511601538068154490156923550509614560392805654701873055563195340574253259510175465260911751315590068082450049182749477224271591452192248861087004180695772290008826480869571598093406896605321903528407569608539289291414786672890722486453156064041591819292134366062427908822839381566166567456329580258670076176758243895126754124603598355906843032652414783663928307706545233907426469777180998100738562034800192366645331414623127319073470527795488244404250505304355379170820465874610433118755111136637455192163124647174892798319393075312995539577966477052336454877957358395317845223877758242604298820081682604707954022843489969081079381221538822179750381954974672998752589227094443243483366590955772833042346679425186834398282094357517301580364846607747388566512040735733525306962182703435858450880939797779273986911101756988178070431517115858528814114781376386329356424518279165906218843250556095977019685869887809501388199098019183711496733948130634218529632215751283008053454857796570001226758211644494339086018810960306542377801327562717888468820676278113366716331619887177135110884474470597736289569577613693506325021525068681174664371683983963928449421762469188478138904239480162348294003701952350893647462968498004040554297719975367938418968757743617856547067467986835035018427313676186475394201971295713904648812542252246448777749724963858252153319319118892372780296643892218616882361320975939391715796397791265106692354182629048461396060214623235469220403942195729661443085405736196855883187235950310560434715222641586839206388472357184768090188149377194212260379278000301009616115789509346955330974618002637561671574970438653483940551400196065992171486275401972502233912004058744035837771853403128072072885992482115432653976756372276317963001895042087794915522018419612497988831506400181176097350338553942557250411447563493412707175720352854483293270398266351282736375118609585119451047293442288390067403896008007370741629772976612130027623828890541476663856731176066230798735236744201352940398672450503578926887110736039483295621845744173757318923114666610754875903909575134096255267545076883332510204975857089235435284533558832970196010961731726551326725430490826705100673316709511463581697445341910625559896245174804929586826330756978629916459594866889281814486477009225669401717031352697425282111062180726186485080169233014802912368022033873785084095241560860534047560820831503305772285274654006311800533456558551524388280332445327450192854118424551026782478970542558863607428368883081960869587512797889886973393681795745904343104105586395802189454981175255667688792599638457491314692160834361373539411456334983294980179432636271096515130144504623543327240580726171553707605978681201760707421170037763701771364212969948882137509703134416087085843772179266263026824774316131553101639438830052715884556361790333492734020216963727036799208552933717395365275581300358206810001366252681437808844614986121989210889256979316724622893809356072227221775963299591219696770736591898943153007279718742215104495018152618551273716973905066308264608326469560724347694083737329397928082693882882574844707402065759260409629160731158059116167643945981392167030574095591933421714029056505606013326830683214888038870654426821851353726659786217098831594493282676369714776297972093024564726700621978907938273985302700158441624965398944786606942918380122639007147185495022121078788505720325907638439705926037792612996917031366006489393252966596611560172838578304069304256615852316499944507768187386073043562010030456739883488749946649827342495048778515903220943634241440226491806295711559153021088712182655563123499477979022384276631092598922864363526200687403893088687593484790027810171958409814196068143318901108871522131516155256823950003588174961669130425794919754063949527386549968488306497962295573713926391381476415560658680206396927043169393998306397527866133049668741673878361301676546710139772549599826747143249933325778949191216814958460691698370849069814172167215243285738684178465760701010972008797169256915431902556811168181123780294645041131907525542879783811675245385290620273530590777769912507008256454690210893856371201107096074491260096891881950266295225848303689666039574216547424051423291496010237985433120485671891059387611721698478004893210942427081713466842129762211769882772902129301679983237751116457735002794080305972846174883940276989233906511831266129158836040199385907901742122967345764673528322133056954039753121257941323647458084088593078142940264466223180239661315727512057210977675535686483242026227067057515366441298845896694655275141299714335538576650867892348346132063369408446490463920404235971002789377854469734607856155805823104626859533035143194138335443012611944891682746804668623920342545846459527211912031349954855611469935150357856027519055170485632797295833398409104475351459377476975611306895889648886095954150039495991924711770512430413962141535576612027674734055334630390491685200922083233203601020402775735344229168178790012862274689225453814026915228501673071061784536378739377465272538868563343852779906875725975247800620841512767883037346704049746913518699471085494674060488984157340829038858455050521241578249491875601619809027259077064318033598859674398390519775659863038947809398715856818981567744353039274423278637002374751471998574316096314766642576637035367235399768556051582524716364711483426214950590196581875687874078762543464861038149191396609401627482605196965164380518033911214585654410777201586802140299822609038678130258962276466586574920641487976863326633793611182245675087884049800433333914826242755425810510838817770183492751340644206699057014671142444991969483294045859736348512620545027847211790479017222475094416408685718017053359384621439318920662414773636976923073107640760579016724335619311168905005023311106651685737029730386563784832555374660923038352665963029268433667660336115933935235299768127435213568781932570436299534631948730981144541835266820435906179537799974041566811022887588610474515567911417835916985111309151212303385816390075650240180218134375475549378958094765833455466795493131791026394526246790095235258380823263624380217383657900636787965438962381435166987013942258054390096801756380185628380354133322128953247811089307974441562812878610241039591266199763512367089240985434172834754695279976170176682727373937196509148535678073228763449904814709756752988932565459491775071272761886675784850703217540016881903461446967949381514219187385120400311149139788766848376250454496853708226581491930478552809318545032583355277457131938585697577985268635848011372505030147934817297241997875075133767450811786578558582962355549416945827488063198771562854753759915005940155994341317544395226563674142509163721251801754553294675824612343231489248226726223057919662066721908419784622176319746712147591948408996350409392867072992853791173372904425991543482198342210968729267001610478424142790236187749475777478961203079686043328355821522822080314270791624515761808535299693478355187066976332250475975778821790514278401101607552081784448581093796477005214043469860808764805590130770683237875800608068576504174700655949302822442655631078978756546501635866489010338952275221614953064962973644320814717786986740380426191839118994476176445700783784328843263474426644392901000555452137795550651080766325155613423826418279500880259284957857753909377716585149586385056829750924083321319086082489142346994254888456225463519448736889132703086733663610627031714552658937291996251080038604442317049588048341133924985366190562059666044787896826677511783013068619205231416443554602306312515283068415670762587176139072236590624492419344346190255807988059295860268566272833317742941606582074144151867239034618574195509098610534394938314083871680047516833925015051071284111570840891037646092906996760012444609005484088930042733297881302497631584814409976008582477647269080533713987254769375868981716862412477344533154050907238099296184107140814108907306606757413900851228539063438300743158120824881791159005204190556733414372129602031179713003418597150376009025998722486116705432199941838969118032723331662520627958802234875250488396544741212657087313294858403540240024069610195564091670593476454791438521765770604273224168623485992152976291149718534398955024828570304790766150274019767916371670501927016817497834741252184744757614333209460068107274375957017886997673485022464164707404733529058692844499907833580824611867734562473634410582347206405642304695656363279281372557302864033862663918909609828056978271451218314457454663127523045672149197565987566308936408954472976320332031614397047856136006040045608895892519374130885625396244604277393716851980628248183409163469196603576589163095156659226796756054102084136409383121432528252834947631259150915355196292870727119704218021069608068000399567586857890956940091773350675522839035350797563493686013574109183331043628771048264586480528202702238678257772653534418821633163637257961822073820189834124919197428438067690569352038711760467128784543681939049364777584645184416940705893409972369636296604868869073538578218249198286091634218042517009918588943565461088565341263270679360800324738810095985890844014966622696263027557913803633209311030309794525601195166060436980371619810114547868072889003279303681079715823001470279268295705865205666164667092165438046867025000617679383814500385876114117137766432019825643628686160732285670324015572671825508145769791750774408940326850846376595168200012410089452137046612496923833684558386018759165796913132667033567464430541656739542875046034960625344042600590674552402340160980838733140420452794443162982042573313554747436693582656563931633056737836045594556026764390064368488793657481806804378838929451355447478392752748333667355506341858824337027083800409139332066629798767023199773429522028415525397438316286944847350216336686788505621869967326158442972049555501940271168046795640871316315083054398329221370747085216112768476665792363375594542377773344769660104005376445834466833879416122588391332969617124738347284714468011656287202906673636019737645182367489266552405303693614727604344250803120390204332574454139881057165234514753395604919991171573180337655468164590358262773658758432156129107304398657613405761552358921486795811380178773297424294442547715410762413090458735081430860262793803278937363108390114982902282904603284824665932719753020717860584249898995227244947280753640306934900306862155207184631483512855285059279053728803658139846664387501017464897533069191859499905567436567855957382788462702373532076592926937839814214728957158197017206629504593349305016159247951654241946974801272379176053115587808026187724070492439104801267797136711435209558198050747435106594695855404545209651208366916950154739752397613469627641881924003695653965716436501518029300970528077838555271059874224400899661492870264122069149403344949686055094197099661924984040074370583648577168308762231809955723736016503284036898108156647505515909593556049939385925558340990838669849950454436881028399796162945765311264028504804182324342521735366316304005475979358500746440091648374644745594257483612430803896927420622157418039830689970399059265101436770439029550872433837064147917603215599622896282420450675652449838007372230324459701248651614393032433485665789099914790485055815157897292308777707717972059331552768419565630424539766366764678309295899634853512444591938109692343209641350292196019812119513648491701682962203737927265799226481437053519868260422418377659300827044935366374433119135880801287477780416576975148935996411687259681732667988365643227041027256914497110939271702153401231128776301778592906920912959185010680046005197703750965763149324877717043098754717656227060777945991945290596122647485501229050602596517974450425512642066897662471330910080075412326328636946566817902657691845637322087117017598252465839163179063454556878838802871646913510513808380199670579036644956161629235665683769528964508977705001044114379445587503423813641179206053097621536422869679719833031206680276701173176788949708905167470563820060274691222858398370883348118543214684132421328805621229647499337177185151916846167926853724456312615796162761290990741834133995111960537712403950112680872624871539865401402942683351302683664465659085839728838610532835962391781504199212598936497333461128305076433793586972445617572358408054048131825937855294460044047936480943389634268838864837897065700610642433684644491237112251010059152400580160097541518651962478237765737370037658086637656148579289867415096312411399825341275378355550580806885048582110581363441834467661439222230385581970502830306816683367834237436091300990181786810300224180122173371280799308602395986300572329989253930957592936598352754336718517147348121167907532970064751282970989063473377073359994595474629192391601103750757657007184034596563531622885485549681253671319322074676167294368008063785923808614468397190705396948082484255129366760158325004175765695475583806150581535049146581769762912294073915450806188163320616835191827470242235235326370501837761213124044397654181875126595027790417159844729300372690177315526703905039682811890301439171524242552231652129269450782215164679649900532840500424020202827867720797023773130157748144482266676931655203435991948034499613268919770097409232462231943723884163176733080245127915321952130526466840833486001600339991611401085884765382647914061570752962640283808146435000094141976956622650378650860977985282966963248319078045506877535405332048254216987084629141490838658169684785432964067843886445798237113236026982462897399647712946405891989829561445244720222655569276036714935670828104173064860792824331804323342246520856823198500005473458940947068178840786350007475846198001343179792968296002960375100551574876211426195990575297434273525020377271191199841602956328904280060227621217620344274981059858547585798023596409690170636679684622786036659285562611336073249843502188604428887395275644491335256248268551309752450058770065749489886107623505002927868785520061248379400859754453500037289163966525425973502835700282315197703962376674556495935244201610842362470689780542337944474997905545953332005807334966566978104039663519179916897136996964648392062717271909137277835451300203933385766188585341894767936327574510984405286519077229377625715054428417135953571851656389145568359968012129543862052667372534290068142623390556971960190640573705269363806811587615116818987966854218620856115884146668031452752393623836088792628009242767104262176647585799413189892567228210859200396201390771386422410370018918673641021659737701065563682010971054486524761436683308890783155717126628350602745745119895290076524323650705193669693170782369358369528844891517267839116422789332887847751965510160724504430645620635875812549672926475119251349931402284257861946515973009566771409079921672626056382914844771510906886314430655735774056818112453178525470841969307706050528600912404032356543569426228868360189609699866231472935919524473851780974406004270246020185832708121572756655473954006933416433294043634974842253060377203956987617089470699641873584845277062653577970159013421261724317037928074096593459560885959044932879506133300424083095231371059334049647134330923595766354075134026864915237469818823198595521167178815736548540947251286442119512970836434720259986722376294048653034005252266810785049059655365149584227826416382779778893782751245240046857185451449419882067499163594370811102705594784458168343727418847061588301557364544419847493554667913331967587361631789796156628127176147129343881452968726059716196633937623541596498505012959237848961990171006807670904662519955375919619484951074973553569466707378408373122789675311653240762392465071553702964867770627652847943415788818083388839511207937465546294603128598600184786154834730976658815331418815649794505041306027176064474120133451345209318967490567129615464838309322730952087093719049963159664035797995112937201804661792560237913474415451327643158883861716769418731097822857155600799501872830664032258890142590335171885858960395669587848009377375065510179559295248417267775386750510143664256113453631697209982365249655790363618893795670538631961749255134302275540933463714067596611252935609382869570522884034594437800333401000300525562340352552982703609703218795157598238184745759396357529647271956175266676965599806099750076648393832477514088572414538719163125316650165581404698566184466480786505882183805012423870782255859166077740141715249464551920931378870193032879269276824112924922678099312484762384547468737675287644564330406629778803297791037441514994041835180224953943156401867765604382407871464306485577638265154490333457710656815922891320656677015963487302061290375483113464364793777067052427282745258740203432896767518344193051046138710468705469757536246783542773696670328887364578013245269335775260004946151184763571275743532670500357728495733833013524940325007123370929490464413235931495345799809496482715549169926756082555052051475681835300089365247100056696828796144137611187797167391776211847657587185997454321074748890500598225419047669264730865568210983330007721569534089940626222542826960343345480514536387111005753576573540061550947060334800333854342973189074680181581834869080597313107185881577930893496677581987502773258287865114964710504833504956051260079595281622679494319665071968198609264028855309359620573484104478659663111237175583062426938780708769817542837033279118407155307428516077487601695197655484233346417560080196669949207425220898678358730179822821359567660775982377888762408272552809672836579923781988164358874812625838040597137247340116908380578530100541092504292542104820187660476494855076691867078802515739327045813484314412502009604203238436745349747946952904151955754642204223616955431352210078435461695056549661949221722721486393609643143362857395540300886571982258293033701581709470848291729087154142825134618774507453881091552333081086283180568044119817829460039819446445291941560127472484707494236811198309983853161000722505367767613148714666660806276778770555991503219945761025634979028721397482080212244972215419726274352026749710700030300619025807626623391162310533269638155963644360054366979448916926927877430858257153675477022123017240038977210064988168499073988893907098986739940031323038516513118916142230685771266273801958214314977442261446115466066520560922880507669191361887422513790534771400382237061817790635510459067026529103707729415876459080631071623648287328228517738530503282708924935886118808268879962859397236057778398952494292126662545723482285021245594742459890950507639120592631502372226295728262419242405454550201013710469254016826707218710179188082216880947018197524128470407748450745214146162439300369136637941721414189729475190568793372061991502087462022029548628724366266977765339948959276474276158018923318299105484753757051300621303417685238808358123786848420760238571889412382554851478194476446918180098569228321554397238423687589371697413467241490797794564248938656494272314291500680626062148779388512242425042946141917061701650038250137847538976044977295998228068405066256657412507025810449769966662659430202698376276899211919060038483979601616541634566930758511191843947015325485707107454936938090624710001853173782789859923134596214991860204993666858813225350435245989917996148412413227807146659587213480917767186869685595412096246653747301568892159738444415319560304774073094955585771331198995582655770451699128347798348852994273950915109744177936168797782977013521167597822905207022003697831559860360485625810451928881480841270181357338411011041741225111427472721433673367438255544363170882782009803136268970811616252786672532122274397316119948901516140866417620918716293338997062743664859384774707478227512691128095444825361259262804036608615423945672709498667284228057422906839378657936328953304906878494800792294791530814005220081473096972777551339545500623160679546767289946524569501882418068058910881865436558792234880767164214543130758850392460226689269315017663882687626050926743887048295666479021560881424702794121016277051374784969754643568828531239910530775675707613268095496691773237574058185060868183956470614037502300835685448485533420121095580662811911182576785260753058514669924958125213143775535359509749211014943142916027445522484140318848963520878509288808342617547443242952766560225046037448438296732010130792777193901937540419461393197122965664818448467092144341465250260605443556859458863125503570255944493467096968020719529971093160774609868759090098559571664159404482340776540892675010706805814416318214859214397828896075005109251400644890589310000768495591517489985571683892427591095394243961279359441033925297594735364368061943176323222523140931691859406858531897440326024703955456549593990098156144858839030115588240839326753054024132333389554772286454350681519973831408112180453958423627570711375214205344177796601619341021876896966430615808922128182287966298495366475795544996373079423571668610679870166181133135693030869933861518884690559699379002023539838402849986022911762148235035391191932298527869483054879814554974345665781796854646860624120538760823842393606418482169677926213494568435809334390358530177441766060870396472337574173095630586678125035025966120138687770525091111407803920476166869984599777010151865084509301596991256570657632470275595265576294928514582089053285112488180939606495610160592651767374579974175296006276891334475916493836855638701872717788710182979366568655102904750659985445945724214416067678554992232259322673269714793436529033329948793848777037264181325878160070612142153293406521333529448681005041799432323851696609814301689013834051308438393114222659093959844866929334343422709761410197381427265941626477940246881952250947387122847483813279231415338734847821422044544415840643339782366459204392912501173206572054890087338942804492825465632047890224906914004735106689101911568260139533712969210235954889003362593507515196928670004958690863985010098126546361553466572314613404900033506367195249132562883125730389516524856075883747390243245760281669504746249074562077938580674884034057212731142045128650810361906232852941969180993529234995245225147902662750713194433608493513705689282101326590703381836255841785655259689408770100569751649409769613411857018707766978236123174255652147801823286800007137579682643127805968751373320579521842190126616298264552429532805160561448201658384928960461594284085292942026144377179916436631584447163514447278126168838058484291933670684105075230392808781810525509916521067070135121325481990783266855778565463908176757628715476008246225155682086576485020230577512423254356860876376017118232153406202992975286838813034902326280820421759266134840116406969788058608519041443941264877439843334947963633301862168004366653479087069046584853292902510457946761239485948219077455394033963500330400082668845549286998401158929504454993720531806191071987639248755695796808293166115287221608469309660868981921567716298533506621523720498289213878016869799465673260293465479263481022706566822506680179098925031279136562838187977826757996499126862879838169359090713410783284496728558463147519280194717184296065628752070298894486530329181670840258557967188938992339613863857145010224155311198445549372920039087425780591686072603796426042031122037506741834506513070845783612519560252174910946333133484695207682003588316618766312673109825732245512950464297968250975715505115532321495044954833790734485679487641867784620094981464816307665954250801448073300320981662979419131679594117331002530309195078027674899120051140093166333612530071965362152341939209724675703700625602374990100581332189616888391137127135513808066652568827526328634772499235321459828043297935771639069985713430837598674754287767557613068087876696703779523727399510445684380053215422270438957478609674541038164566519746881418401257983597625906179089836731416889318345011797063194211138291533483984484378911817587444884002506465365485333594546433924243914995684631241330046095747082763052971171760419210291818475583203998101581643583828758495340716017906808666371033828684397247060534717951818014110287115245496062425563238583683430449676894627671647991591472302279425710872325185570821065240403460141352101702302206671353037227373767747201490798350180563336197998685379726383543846415794413148058387166232251297561028299772525679041306468899967628128704427048347466602659000499506146774047961775324102231625931364124027125600794677875049961110135376166998305067684215446907344742322589938925332242920052280155398359791281728378067866677370764960826145715436581572233813184746285078001785902943029766638757568636434826759495021938227305604298650071141143124882651297811313448049511241038337220766193342640729660194641064435855783170148062627422456598174880159118550721090795863606827520017479308120671271523560029211784844655599404106916198998059315598464069294593870516805670845320407219484308948536194448134480537039807633906848253326575872733476804177043267037893769106199999688106774507497899101329858413654695865798363007211021748895015698606433235186940737149973878858034291080345376861345417705663712835690431560579602987968497360239854159320684845921622570159462819742720569126765888444042551600332414017495340755771372956986679058202602218990719666932028321834883562405750286302197078578913997417743192259300588785209199233659032773679057904852488709383460635639983145747210498940003626093458302316812601181494792836104776716708370241009072386466193064315207323302331723297681501616171161794649315475912948874814887278797738877995301750181337761023843054663802702719908852711036394899125686324862537038556242141166491692590934259705083519893944345031154508503724145189418919694276517627157808526320925980279417133370031355006806822196056778905334862710430543686135175404431974285350871228953721499939604898029655725360534894020862502860530960881617161810027666534881398091453362052424081213031771757695655847353144875834377544121475570820667808250899940163532298820518073899103879169926147563350349133415882903351794005611979902484722111600994818105809057744467190610406970214840223922438664502452686484692736879128011140953050425275608554902276423771531192222683102029428252613868538330386260007086223016384354503132136533594196682873557352907032828130133938080644591362740859621103597180177771896829698432959711973174621772017811408280629500043538443055688552317457163180889003891704235564733530805529903012752034898214682378524443992320131754544396994017171507962648603518788040452245356572157618525738680293859139886948131335390477168557152287919404733267258452373710919656285394158384419959415711355684875731777580984304418756804130147837390095325917916298733150559824191829844123497453820658934614046084681396181068907225589886235572152968639823015527571413925200339584472591319410594168123933633749756796105328709913516774020896142421571495333899365024919244872276138304821909695904318986068712300583656209218874017239851653751034078407553756405356225958181067651291490243725003987669175131553029490299651206688884309858151508754400895236243669890922318926538988608047011272385832826382726415413844867961824203897102771759248559375913900269929898685987696362203876356755992498865000098973066759073175516459441680477867568630794188406573990225049210984300029079194425952939940165878007936091947363813624662564970473683687946755100673739029926886214105278697305049627166162935463018962897849347892301156237596120229383362571582896984232026758489102506951870447517418763206625327193596072776412397193775759894520559981772448987686070883424062863352942882280133099796537705826275409744322873221883236727116492297740339033751601032414378108614577757528956776135938880955255919113670811419178854633094213668908192142389465371680931606577798098074617825734484581318649275546892792221165719644950299564474937579075826169723596546448186651620780684181817368190514674736674367779043783251840415150374790408621450454142606569759635304127181139202257890781136147164758518382790687966122694107081610338265969750923451376268603419221830608267501278001411324075445137660196121907420947282480212971933450704922581233845202635426111953628089230851012644055841227089906140265842545415795734491738352436613975991505828940899460799191042469993742698353858758510265329084386427116909879449331728720436259940229687915495263224530946867023061491259171505517317328535762788433511245998245721519707890149463172314327191206140793533446350600211802881498589734666613007189987513854914307649126237929726428688113023593663372017906695477035967850743806577469328353953469930801296081728215189937817834495451979719651589088366354323544864471400225751672666187672516668557978756141220509527276356668810382349724011785067610765863932122882004042609058741568851706311124773758762212981143579369768873045652754084711443850900074433130685417223079407729524960807525078712780433129409095834914777496039337083400833103134450037192964354440128229309505052410331560104891545504227087643615401747524066098094749000228312458439358639673987526996424582602701979046803567810288200987529130049554627775284038901573938776724958002133051159487630407596228085495410020019270578099040611595924176732899965915936416139065285555053466410932289726541253944346763529608335335096171725595295440253673599706234513603577931158920352427248835987948235895634276330625958655333320586210126253077477720764372454741203092723125986609698025018112138414244830333189131611217342583076868426308642008003655422541581995942924136452989259177938180604341260023737982600997576404825207391615531117510348350259799132924588970220704791837529892222623072811751419883040011651508416387154212982368212587101858535900080578253756171758221900078009108367580317398929227512506150907652025212792371525528693432843423607044471886395907030571311327296938392066523525753410332551414976285554294812722754497687202987784539327362759838345928447213488129421986932628021295181924736333533935654796784475182995070835067214084320143529663985671938136446955896834893276570656867298726183984500599433194212303433477464204384477215597763674548203984871023014292697941953371095597712652803078344013781536454802685749059506994427007286038815845637254199698632957693135757834371015989517457953651050312563482484629728485414980222297614854922621405091992761572700927087801350379465872050078743761474046403123966178498398381274044603421568238271913716612344453411061822247461622149600152144450795014485999421381494358693066901334622641285335547047728007277115533795154257752245846293648047934388555810860432570958014048635603973494937817889996441184454319934340132688538013378731017970666097912525786713735234649457153590350990082487641516065146945349749308975084986180363761643371561698872284599862142229293330914930511386093466433826801716400792062061431089828664224274760650831561994339369724263263956668785847760514470724043780427278065171905130779380232545888889774740463278626295089542995797234266435992179620264157020363518183447199852522008540129171567655275939161438800641399334111370794280879089993427189751010352449200072364480490310731719362808516876061737648054489826776756677448646608607224139238290938273553255463946534699354249466064347617622487763500821909265687248132325174406894757230092127186682335855295037101433438923624554078673176718224936856001531990740785230154504464821193927272826695962684911688230344841296360324468973117365268527720592903107884644478758173200438403144877668717345550378455250627849832918385132570354943427452445067394416938005225975447362208393449463049324638985374173844194995278872507915945706105593407111350554338992689948377231307696175327075885865556344702811058533205392674950271604036760072209127034893748848913816775007645623773240171435602834639581280768056940709916243669946590977631253586020501666515643453055129892593393860422146091159328181230769977372905265326034374115010569677631999243479324769324428005250557327672520672175331409912275821553095082510610546337887655198061362997684737014772896395127484428807781194990900738095239032395621930471704388496273959456187589355663466132430521766349118875216889718671974549658764686575442242290337212984825308848478895773424648733446816857979890705347176739345259353538747284493875822574059786524215740668564059788320462937153902452454155542540072577382350369523584018893225595471844909109964467252846169536833571187387327198000370964553032547917632777694056478713789386343135577843429556073445932175774474832670941786669432854703504608783652105551295772070119557133454283402437190820916068901361190759913116105527190835732600347048474020468406466396305380943713049624702488797155491177818751107562958957687011312599553086076305640290739188306173293928238565148535839773246971852028155093436021819915908369779854143014333792566058186136498745977958991345084654144442398316898399862260944324235697287620041318184205816470880495649123363428070937613921698552761306287939590217174760079874676180379659333991529944867221448960492532220841468777226881388544741771680726762703640628567372102452384380784064265167268314879041855051741310938733740571245342180693263347409578664548891519672757902764626886262700436577211572542393412566028261111052203928968826856698650960305647497868696011609106690917937744265542256855888487571162097018194985381213117281299661128493831825198723163458323777258327553658146520963936328234630739658213771120498303151003661504681330145084352340153543581586567821505091384891470635283872792791657401892544628511103922514064202412964237342722991323070843688450851645496831475592022485704301285896728404065312907132551638382511468745086517445514160214486468754602940751010741947084998423684614495861031329083762498300735492607672945245984400267912573532962375593059677288515961760164730715768721343132153484425449192864320421399981625947682152433023720545871261276825110752473643973367313787685927013875620801573551549766886876901803215110869250597521860654530333419367411787878241114964830417120230251714122926202502202673781001623150408919503798983214526977690791651462544386097928216617378073991699377917985512882182390680249555089238973167396807664710691007732629687564580296424187219448497259787524400589979261734867274368170359678854940240580442596251261991598264037760087848736011003629381987107981269455410186715909327736528564324943238543968716025261840425525785052891618269197480861333493381254181589288517966645373419997736118053579175885207747254759528468381393590975022620900082428576256270927190580305317502248878511412038711416878696058188037773333784470786729469344388559906004173032195239657115439509392060569726165755371868996909547017872034138942493066928441400385180584283320323245684339147268096988270106725155902261546998505596207053190664338421802857270245637139805481670917346720271782516305106236023505489064239448936870474477617942287556558145517888914675880012013025717028215962837464285975032456599041494589369954053779708471449395386585894146392530637084198257550775854793253458649452288463513696685517810874565219784499655491310574490099657538357812812928838659038514626280270867099931774571344371352848089262669780329326390307239831202204377147386390056728361649593167926623642567152112955177556377682870963117786446953857955593958687236000992598063405931350923114045154979170656576359677537632353388071343388311000784252292584261057936994813822406116978803087185312485802695237262317101356864728684415481084357272115387141565358048236875054448163397752098507754380260743789959966883614428468065977564709031856345883557190670894073200186666875625712444098356195221962145179604564012845319890064465424462593395011351118322249274117811871788486328287704866235052614729878692582117469212568167391061849879988988968992632321370999179955984268973241607606395917482033334073786705062279374882205261088645474082880105517168175927411642223487399610596701976117852850265478103147890803974286339126968178123361858046887905201156865005819231375322962295785518213994478725294155060147767977142268860402184454287497717393510617007167096089859647878462373368786045373271070037264601344481063671010135256303424379393625265937441569625389236157719420573554748074782216808685740049224977205182368543490737200525393552299929327813869764968741347735260953264675439617484290351752236229318905757670433272190826047861423495181866254014713007473235524100152357544760448502856320667236850026887213539990770333801413524774100408081570373440813109089421213429951969795867107776427394337571841402049784562512029448663701565383373837495440878112199370312120053239624952088931207849403526145290392011376835234660871411659689983526250185830609609177060778517358252723250784132399919458773400702412120458043786365711550103073771479177960674908137899014883448622387614171113914919416071812763359934852412540143043174101048782391756699945754049479651783023393425895360404570111765002293451125788438462331643951657041091432277974052577034891167930504558619802973907207943923193225037641066271776625579372043406728829640286627789127294801476398584324662809045275354299093151124565717089222500684272524299625115186370907744738308404930864814188968140430871512136864329652322757532030173076516572082187982495307911757931977649558217456924230057155126520018215534737176888890679287648495273156520487214911181994045533787716398818667689841950505839245707092306155015335832145885820925302143955337861830416472401701892787468482669718274380792587981566467441951752717368492188057266637433554718749006409572203265800823379108645750098838419707419317033186014200132826449081363722484988943656100661441451402814063609357857498557271962498003733669054879656514893405223005824655774734894000541064207595980159321798817891888452740379565744027168357360539729454284416413836214246276866596663059770294702178134469090418719964292878530335965178345314791390014505939135786831455108401592451594633073432046980160324662837023421290844461246864926223272456298856261700547719585564113170731527318019122874619557213545230175950729795616274903304270234041229582432160446917512893567567243498438966848274003505529872380462241790571325645661841843825365280434258703144712435309955661949929844006950742936803344474979232711417196594255919381413214143440626969808436864867609141527463690687951495293541783931736711713181355137901339380020262750504060076246118500631731758729963159700912018176656740955690031169917495612532024129688995391526588825772579012234651350604318162751641851729712442067056248564085984241740751457488166985126215266102654852126320448436750381271337061285197895878521111859669257172708713786132004450540637339861220409239989542231159040816871192777285711804474751505680522929172721206975025426466599095618158689586738208297160418884713881130937410739563528178676138588431569769986998826422445709200096377426027037312016516334245117221296004517212410110891732258110147950422519364911462150871222893375231519530586840413169977342833602150482124200391940245823286810953209706703090691938447736486064440330317691588882240839639145585960139175568145040182712520345284952126997021218195931453281526599484323310207956078226221889804063642889142613834346282220164665825492631155591032309232227480889118019702491239178714209177198895079165823100732011039892981678841662926259066987048847888067404137545763400943372384729615975260752922632152022754305247307523531968615097282023571649084519664144549650896323746796849547624860697678229915579731202066755716782283532024315716570647049993583897981788969773541407329705165009961449689392342139237400895854266686021518204903252411147364708179530681098576280816202336550939819274027705138613662826638450454937931015805628402961610001432950668685616520997485228895750162804303330299105321347378604129054247636182532820836220428598965944731213570428277879460172566244969322225156618959509686542531335542739932130959419918629986291470238774476947917292671176780519516444347858930638201880368021525387830480611071299277498121024897793883861256954244647531420332762033748571309609871418235176906731228847783394111348162452828511239875458663180850695992286232940719844464765578513433471553501069834114811243211580542493769670915986631755273404830350544815690663782179665568845544495048909354446962319789745994575250611579226791522076281071128878047501386066875404907680628052892290947963833988466429637452173416151879632445951027610699532400755439347862211207413087916104937321403275212491355377670050175287118417835939463022708564893763717418701238718501052330957323277955609678196622940695829160463929386989734982454755855100817993293771162473544756262032729905323054857449843507661854518020687137134701067439933474805299642402302510632395838956335854146995794423213963847222866807859746020664665963139004523397546461041999084808457091954142293238563627818612691266683948819257336424967397888390340020700689226237673052878362327235062348496850958859426141480820528092241776533150365551753283550892524099246723090318931449694470077487664172492000879008261940383194100228531877918453564251103973742586578744015158728967577336936702821022086155241049064753767473768770731081934585612351453427758157420933021564166668375174634918745304879448297003679352357415554134307898599732757649256906799758159835612176072617849051233606341641228408396935560654765484377544654163477181856951522587893522344351048971624523592958494158658161127937032220593785010464581057840035296219405003581241241418375957439023410726973723011780755657654099696284108029191311470943131916495701463290960129506866651823729916263158419151314220013656000738529632681131327127413732298563913048130602476604172037222419050032131306693888662241041704391267717329826509912495188484357176580785121376511140723501171906904987701213655651551135192015434648951304662606930406051379856646046300276257787565819415626338138088227158381541716444582307986038156860816990234320736480074516409741164820375987643275753904593703796420328772802975396780363413318130531223511236595084457768610862026539134819769669791332807173659766199939899486665736848448601722986315180034148406828343639766015638816250342985609121695256845766419806162632686549704739701741980051240139816138541261241058684772096081894183249820863526175374419972191241838516473914156331176577097430531094970431019184036999887846348567033077696022509922634136958890695657318206806676194912861735522839909505546392707404766792092506435506145750831963449255369006399385354105199222470870532329377307093895584492396111976595599589739308625421199355099828732964648976009306731921301063112568106719207731807523257092179974025464146772961809811580370027795406091761687115139475609719264496150114110064970783743299085589841536397401083645078286755535247170322036062940765072965903720994039161013310770064089773720447316944841930147474031711576811334127538968652778503412943176512944447475061420528460167782655444031277240851721481398000037405731964057286792307866742939561649679176246686940416326309125137223513795993345198452685679610683883808174042976726571896245985214467223967835144067364075490254360306270848029275193042207395154701647092580949656154153916498159157341451782902636521249508560385913889858590822198103784887666746648667300923556127685476511023795544381598935704525426075490881726229332930156380030055034470967994719569785689062390967915876528294203764066459934926150959868182428947638095303808425754342169038714538257406142692002433320216207418826307274034854493192870077513600050684003532769230156216470030635311342965102935867200782714724673703617524168400981463378538492422888089802529967169690442910166986375968196737367844734215804994495920751843514377845395486490932330137387546308641474687173700902493002389307781986075131693512120136727187172425670238591138221727220475368063293246802611089787109096340669879697934236239709881209834552950362474048820063610834035116793009522565091164019350831070142491429650851448788831894635177514029655577216509265027439915817956847416773241138389280450156842481053168184438287158414381374820232268294574076200779672757255953200308715655895083303236595708585004290287920946142529451475631137118449064974423567304846872828676383025257074128052111577715896313674319646409498423424109579947249736081782926292612762935105963570803847684902600719815771198727421095248867576177367467106228459783703177940897259070161282885699481884927669275060865473640028512785368741149861846253019616239509549141669079333850919460076497322204815791144648955974305350742717599436379367879315721359832449605039322878189423437497068067832484457512170510254048596631108375425254193277625681431286012306366611705289182108688325842889045118417239921353442109081136758594876110982882991146297514657867096233742392838562981163817610997430973963225820578161547147919846506171453445740221300129537019424131994795526411707623247342234022508077835443655987307326403675842267241807150360244327890068695122590010607248195213263637476172382241324569419388708140882128630815113506350200136977241134319938754760581815674671480786312348479078916964258435347589120086203533740574046347954138553091009451409000629746377935194240025126444478622526745096547921103853465233726208171449562525768778732166625178466520798105677546618840943400644503354431340282143414115662426720764336753726498563218404649115043924254675021799181936558850403587553444533585122565982180442659716153569256997246906031134334909534595056872952780460642372760207186766249728933176761405222667651349128021651955545214344804151323023048378879903647061637733852139202330264431201338217266725700218573460360927890257404679356512550536672878713040912897376134382183869471352064313947611956955286611003393665455050707236009155195873626596754657956022454215951850274539146857585847939528780144648773360317637864256460494769107126676796498738091086128886297703891023677621243976875187999188850721332488277075720510251977688451797201844236466929877959866161564245357343810392714000688222054933879369951950671380640011700785452154510105146008193080654832483124216275332657806934514686091142820054109259429533790169819974943132354165929527445723526354770975981430629393615123146444008874931755528394847239866191196569361830350451688583670354657649175503231315109761650348602419608082648269185994981926801780789516299315305445812225464234388193548743075141439022467517795668100595974665565598145363523486654126822631593937450905990584776685086442102777333190006426978485236041500622090565515114930991945565249283329956494040269835440701882916455131762188573955606304679696653355709573850359956156379682551297377295062096670754987161975124384147671638237039875751858870615132348315878883853756391337092825938819413097633927936802061309966328648526092387254831642503257500096396737198645807077150280137616691361389619565528880546039745439954471541053223649603935111200615675338891755654609527238239872663726091568762239183895446458722800172107727430139586322777627623703034631704973741675759153919711677605227060314312462375361189606472729662912805062803527858238946334555509299644869421062837291502037852163256677459461203630560182574941857308906655622124706800151769749881720284616005873856844944862380511670970559076980448061984667382356600486383100044608888296922885314742686432835439485346813101782283424189182886353703494158285589654454171661646370690186472808016654012353840980224569573659749099249676822772237173776478141809652827966446965240859812026971614316804045019559742337355642360077745783732808160503689993862782924485566876758173349106134145784700242866520063058141180688181088471934048777816542501122117068496354929963534577535342934002454695390259913864551368574894674435969283506050912875803043839922127563630736355264682072452824324855343202139179578975531843279802140957385412216839805439573719254218360977301860067819860068000939917644416158532524086671727233119807025274747456920308353983888674398313981346581524472409150541692611921174065127247139350782888816848703155314665534222036363287350109913528293566016322346620608911682588563869549835443567708736210338463241881693621085546955189117160679164512229655576704873979175501162547886295503957892781872487972697807368029062181128088422222369444702644992588324911459769587721695468006084227283972759062648534593796610404531075586779012388850148977967324826485105641365712259809745124092967415726084270940685124294077880419230327597425817869962661856813052259406060332197812524533973280666396811937996032829492820821316133039942622407684442873638446403388284484415344003413580905356927379072314784196163587935554729348932534847119130416206502864697426578473344874278210533138186528951169330067302918747691562935528104666839215938618738900988131054487080310855046903650830822866712635276672924482933277690613344189868941835876003378309136734834287109937216452068257526245085871820733374295671481585480764955351797334793181817146572947690322400210806997985430707548669963763713432926986455270192506411258308434353403273866042987487748379747962328400699486756039193689719913243591011259502933195504259960893840387396926592754697351847184649913730205259569615941145559695250960901635571132894102071633151019358083310016813194477871139647293316830229190248281770728210268079643952691140691343208554174575839711774227349012476110754826679328100323433839852665203655983622774342887841493269768093119191206643032075152979302666011686776945854476663578694150051320983546767380788841920337681355900963601932513339085358259861256312564266933027838993828934780715584782628317628275186769235288489656810938723098015224229936518969484383951588922045983133826825325924740016058998755582000864561595579626329779630966173617577018662652922307623276161488113026203959084283509437655170096179035533924406742138227795731123739080298486544056136508912923259874030477772333310952345613509673621521826601828502893921716665802040353790495280532230453628766109676138788611311641050927449093906157352985220414137480456861761515027118184131136324911229819204461534538333268733027179451403572548268489683858502446635767627978602697296344359130530292487635199004086551827029520913271266940837897781217129555840614332564418030875136532508656983090926098663615840365435444420844880605254186018031301633367650603373012059643035921803578005655551527812692589649791145266816230914373447733039239224079989320472368138491035822221618322243378747735346340440129271119913751744065170650094687473099352206353228922151606060017776079523562152586948261623329515247826950565108189831098707218487495090129523710245756835797444484298825976960961959215575942403652160352354341427564694675192019259567093351513692503478101981966080979164664239598815008234659500798351150920313315048373405429988279759165407160554146165724418918193835654462756738789578615954487154794840783988778922066313758783128323033112936423581481600531515281695033659087648796122032288399564669907470379397149325054358622303547017276088040104988096787824418972645387680311435992812884836750532036406230561632673299715658562511475117036384902786137306413886533586666014343113323858174278696311356949907809123235053357741577319774438957012721483546118482612668629113434391347801771721788095543401436515697497542776387680987034511129161097162112460231612209837750722454310138775561539883959246059827382129776998428348859843390195944380166363866163406666491632369863157553353230114259873396533979483824148923552726654590358720157631840018244078407253324737192179902401565654570287140351815496464606336216969693769933726241706390574625930669251622943710992730309137669539917381030662386847651324984597078222337569312734667191349249655112449434632115751775967831839743608398743435799107949538546220259670081268730715456899393289720927389840442175463161246367165849750081350558007358217017247382022095214676264721856059816601661342862295722416456026160938815688266136382673166797264692569579553450037185265645414522971384639270470592863926069649191563494756628387176602136527633863030126785037412738753226777363306911342729652610823589867975883893287818457871692476989355274079434365785182931277984818760830018555494741182249476473700525492460328237860695990580860598057550253832002607523370298532861156461625587518392983082580420046445241173345693726718405323908753416619422646262689638280092257487147868176852952987753617126493835282657997051377086525308333590167944408191760093795230994919838406300779982082075543399567198671034045445341633880577095232049358571855884935974202961165241142596617231728407502804264149474545349152953704519169307890482828378527455798888405592367795823294612049303527533290012268189670730523903702849527572676056781849405691216595775022132745158429194849257128853004077251041642470837361303647288788426344865435920717567459508963508359707948395265279108658148199845536929613246531913537123554534847036508922924373390520112477247051527274433856028516312942397907733309802033369746777827304319519990570094212846423262154632193407583159348529943680184859580360185849564466669344619198723718091896110797427795520747877785515388531838662709457199079688818323848928352295447989655859127107810239627780550769013573232168199306190315942961388370047243075179353928946239544505796232888762414528914595151953043792601205632101036632447036470429726016584701004073466681836879910130238456527221194256584896377275819070189888729693928276673342754420320603893818622027517191609995923925757563918552525592239050940747987328788187593219612010183343572907443238130694740717141626654080517860090215666789221153530486345121817438176787823316831501220375617593501524699037029197600261030700945736131939726063907541247779177727042643268597799805656792337134748666783070462787075639746953290726367273979006096640690132059479815704398287871557539565698046204632949464848098839139398318941609908776249035083661024426109302297662509893915652804808401292006140891268658616305484255365239500302557561738152214471852204634830296593751860083897724617332583351164774311903295215675226032094673203411453256658062847963624324408663402111576034813833882360094536732491065581906450709955506385974971087626432568331212968034784796432119330476732831960567641377352300448596548620726459466355851411498532279416570202942232908210031903837182535501562820933270367205666593039040503622249782489629946049110196044029962198883569063384369904890741289148287243504236019514202928679951357841769733915551912831111001857854711970885222299397969690219906667993075558158522420329915799123711226262486217477053034463023573292150066344123366889758887444791092543942232499192108459911020881520197151933371783912352973122239043255174557262511547169498027984137668602228539568254446231031960125013100234365641984669811615920405304067334788037029441203497511300599483235436423553581403524173225431668568328085208559446391525366108207708999695926867439034376625522874573182653380141949204132714914334800921543785462623178493090025733354956988650774935716717279721028596724231951681514169588011840044716653170722005941344586038956928256234626498507602015334129017271826385559382033953332314850724768719578028101555872045243707490535500296756918712937351598795124849063912430304179628172068429152946187697900172470870703366939626880248925184280453167482167203467488415279177622395252870293271046759144532949724230849965277580145369644997344568734513991766088329984735646510502883299962947545177488688886370328841866671725865078871043367708511662891754736920884346330736204512635981715885158561494663668165451005896784449275111548622672016308877170941090253100940228514880403276579865283698487083900737651234957522647302292721167158680489873768270668549299781060554898609698185968628543110889702251636549111720459399068286522129605496404760592018507819927525026019290658382220524039109286955120075834577374588583067407031977388337287026305170544695012323893892547323439487088866421609589449926684219431690738195392907792435924963561849106234667596874408320149612583063744420017036973441817296612761468430216007178204455898931360661042964811055606116214854869313621011467684068692617925385334514442078076880416453308280750908113393536145248885973747986272895480454059683353473689133618533942194050707126264099925272581639836411841488074861352403651094896214300461201157883110450051268798028333712683674865926086676842415187500996863210556698003637598039376198594121923028764053549776904717357581861078059163061153487219559833305523561010068261691866740138063044650317305900440370988826045024987103275801523791670651268893330558220815934506432314618052325141066099780451578111550729774857045044795437021008927580139019467753722782899151033566405812531983353010882359451949000728649040738548429350796131287602696025500779154557535160821262868392515687644249499679441011918499414156831586181400798114836533280102685320301320326631870784038281277867402396475105475855244851178184789565458221125937634875200411310686578046031710802147488898961843968008838379874960350403986861848110433749887567452465441215663227884784140477892245938668125817174906918371084061536346266819243816541291095604465449486843008508652916591106646402874651216275493856797963934112685212242701586503392875730859293094425439110959255567082054697931215322538960085735083887756202151679693006651386258100986900667975042261797150275980055999769979673870673771121489570391126893416638762632973118117622687734878724016812615345604852992552586349137116598047148623419431236470558949084755743477385592716696452758641865675057222874830053732987838371887838713581118543427453775051452662278989025947408332278817019701466287972894073630428850277621090343394178572009821081894962306242273509945867477597266767006616701359425531005192776913958262328827806577557728452923128559737197615912383187402882448208061436153548766721583057073766672488848696101327490175584762186667904501789165953711007026457100760388699218939425765323420625074624640899467073674884334054997545586589883194864029987930101002348587246757836757362382805605796521643915754299305396387950726525755141017599416172793119372240624262081604601044381462144141203977267293571699648750079523825047515424951482033356209690867424618579059619203944624258774322073565043315903917440090412282371970384728934537891384532483847473297032809218750402555631658660886641542593123038289107657231850093000108859945581741539993576671455014166565897966574193711345279193068045151967639438532087576695085025780662939073442377708871510149161746807755814236715944691778315574972928461456142888734006272476719387561589247059312912671242499220524209745106982223885028309792034010945860426101711686271972210899877204965850051279639859956399684511662694457535700886821267553629755289207390170176982057657752903879159449817034085570027372245531142717116248398089230953825217129201081064057942836406117013200534460195521029585469908756970798698367200981189044773529575875739310491865598321721471527078881534590690291032405590602914117848053134545185409438659569014039270310100792761408399187219147255281489204704154136849500339675943219003110474079593696866121791233004043506728395145427216908678687908565806036079090607285963079252224443469025035916385101025252955297187901468551965426044763329746928292575549671772575731610711304603546305575435957837365885887836174205596412867412105516831228753991262446505646148194352235884157651025809343823412268536232282807376820794748346276917097665480864215114810168112055505386734688527968984011709619645020046786795514505868801381387893363427119795340585803599306293542716176264115825022825860532076001124994413561349240880553961276656469009171775592323313653450111096138359558389483583123301002148517650395223474537457459939931576514196351609540582298732077025261480492085852112440759496154789906490541139274146732208038643134647134259656516002719467158701221453719722981864468357364697554623436477044288234641112621578357115356411503985002378262783301658607047948778377692966720336036381171916228065278746387101704463608203244920606870435370958718071613042167602463097910863474657994623794401746273877869874297983789004797876298869290807718552416933584870768415529229717034092113127303935981964703327314388648154538650282920990781972575290577325343264018109630719001261146810061427788424461599005148420321039910664179660490554831990357740170731162280141230548828586340557126614497694156451689815496545653887170202494272489222248096308518999744923432046571206787913335373438794097699029877865358508904333229902613649409701826482086015803426689380651284937614684002515587521133168700686490499149682173688921277048811336952936033723194616845486654810863015406149044322464209481160186341617645756050069562108915373416600653125318769097632652670609024691593174626703601523358235840777574369709218485774922709055657514407877374536351767890937868623150718918099532481263330633014463012620580458845502228862559419868872956063169453143229003301353270811063082333888419249517430906810501212212939360510305093458597339335544580006147824691890383630084688062725209419555096643654961691323244788812105633222491974528254548934133588862348023234042785575434541865052334850429717047510182959837953051275767830060529816425030707975652663928154864468153710244681875572340735926568651033008078548773028382877972577311617475509717136113549768724985173380647630933983430516235115395019216237465746623209882194985718389352170139915029900686403760428781684231018689374181773661575423563112830428034658145638298141210838744432190641129860623870847500548364444198889703811907822625021834815443011119028177782032368909018123900970549027143285793499939357562354217282633230859936659649645248874054757372391544410837813237020232653653352351553946013184448431000419800698678529068262486210630188951940766276437068562976096843720624381008530975059170323150015429429457227995549845511877870785449155012764856988412675671222904975634173868947967801167199974653276696840028237172522926508597192014913845151302754717814341418796650236111586948772685168199424497807022208338997101403234925165661612820459778265349382119171821553522147181384615699280982223849886237847869322947737049548022434603365374947192493855181696595370779932136877082050156970631698118057962238679778857856281070693416526677978487583156566035360491206331381598609272389566355520945923144106852844098056690146801605542435824987795381567766022294148118113704780123450179822548825785249672099431658822292583801409893639573473430048862427418733682792702222655530078798584511166363471435012897108131709857404319872027024128864772007515606364776311192222413425913415902972044886802774467936072236663338691903477140694669626099392665941108095925013507014690827070764728648910224503118989264950344349224573802400999551457666572022591681458641359469793035648993632016109934008503731354325026274335971976072580210322478993284980409022780887603553432460171299393686510755393971664795277845284836830106975330682555199172314145617144822689493878391357020443440863145458072811516846685138431739982247032783461121516928387588882476757359627286255245331592999218778628370561144693153106078177786278455318327417974285460148386710574938719924516591070989332183614296690389328262237913744156562444665481500321924130108316960642032377440384580870083553331240276385558432052361708288959729726588728455724389208789406560584347078360697156144223072626716352370397072562355634479397964385947009678816871526215390653193148140538944745842512463546888333157576187301768123953252843140290031389260199240893739383609746836655035501286658345908390200656205169492268898927183009055679600617053734838266868303032834857705092433955257471260431611550798827579984168502037236345738596693492096403917720912110802610849501692562447676843446288529327395414290984981620392643988095372896140322082185579302572577716943385348586105468586601090762468346798020713871942505526626177100434352022121253372903509040751588368725706626232695676392449237016896914783980184288513297264032261404380527030002186056572528838467008040617822046179180634734490193206163639222442950762956573089029647107609090178946799730046384417851622129204580915199243677878622770471280956839508726477019631063455123584593437503985450836477620684441254525042542003728190421886811363187272835000111871782879914131299208950594380565043908646887936133989292991158388556757753908938398393603527135595799122385470769884733815272333477565723736312077382302868614672847998944897973191125760571231358839385636371243764325522668716712043366479314501404669552464711473232234922146573870805505163775944087678267259189863192026068141949164801408693412826588106205858322015219902297618087674037345335552261507319976126377065349214416095574643432690867313725453486460032259813690057747887250762933144125461679615505059559503999145960378862938144198629018432152801731668945509449455906426086339995672785218327388788026090419428161011831416975504546190907952233030615387353976238154778391194067169130853631614445283137013985402583586771539176308823872915244043143132697182178665174010414641239901968171697909170311506333787722183256639718923347644756393405787324551026287034110888911474499610887830997783220272295434223708906839030823690408509330767665473336935920998892760638800277322084781126529162159231892795774184052042911084177983540600813060171185009108222398624965384419734815179559929774680681481284228421275077333443609934254740056784447231617607596322075104476225574858239914608142616499048411048328736844246154311702437432257855347475508378147348909147105731949377098658395585179701007006806889651377788328937184266369656081589487373147253511973884112597321620317351557175382338749958329091678250011580926844477222821940143699784484631057840350284714909787766344288030694882854201228248487891055184799971828809918007326878557455002085282778828249979548835164381753000771303840370165552446287340204194745906440100451429933297540625562851054839541725920846766139151810493101716924081667267565208971302673248262408621474149566188580883768909705705142423807438112315086728926609821186889346810016380191836763659467230403970587482475973127659620992366574189009114485928207161914143361906361640711943160175773466713288911786441806190854123971813394958842372516495172708330735377862115649627014877523153450213482171639727834158625043714406343973129279159828839239950668413081989070094857013846737451976900558738545091742394484444959429630126883444691603964986001378299087949005519248961626705018930147104554959007491092907731027300158064678524057429955822503374741576673347187696765133739198192470237191219611836642561264627756980561489252033530757619981768246069303447870169569656278342277176041748350898708424952059755142340361274566703074099334561827494097182312648110594924888884961304651659144585754334638431118608821511445017113773575127071002537641636066058960014100364531056728769321149499678064891510083759957202434944421872289349018255190984845720336192763878129196604122538942995977455393815195460134591991402428031788604432765531001305691741129296052866491667633957716921155263544715929911707608662111158631418222120207433417459454132080167959981656941798544921741552273091673333943267402888454458045802186204537395566755640968472137667659885350061780972740613687183486263011011027594879441557849186056014072740714072740334363357940320094093392042649384331867274150815431181306569812302834141151095513589756223195320006235606590787159718861809083774628808588852796585763089603919306007797377747616631028080595356811651211451248440481018798722642178052013698477547515053444951646393527920397664488652092811749657708728628861127242843375050058246568595869534374571022299769410063481179546546222453742830173581450312636709627729932621613104937049003654850562654492796054828122217129862063623079412585804278451618602162810176907540824683948537509003906916339712632775850644846387587836348478140951181491648320007950381692716453156528233772521932990823214629553228570860543671805609320633426401204923370366478483356350687577880458265703076171926191603441210634459625698291102970970063987210219999666584388058726989997692358792820762299994801481597465763141821665895346033398566019252164236932441568414449537108944550678380899283035961282982877389813534929343739708380344097769884277882605240575050857918910104912867678641852543134561539506694610692663277254969716011600324983329709112589495159570917261251074010628584048706781495873261311258233987516037228141722125977785365030828658902791129807208541568596097346732369206353696259839410824765533425884830532107773277268824034943314275923472102996375664278075146620910503942806700821786609598420927958664595812353409171600504244084769100730875031994841854032168499747120144483358299308956469222850953888750282461183318794300933242620787986255159525895278853757779372068500069103746614547456831181900262838320733300888337012122714258272488831198139827841196442942729493284825393498758456506689075657816983678016210902110820015246885146439078607989255569628937544279668081909340275507965292466081133986943878529687325254845218229706016689969534592149182162286757607432139915579445610800076217545417103326660811743413300832823661143094393166928256020866109506636183394932069038485997620703465347328001674749242624075740839429685233811891365698801434119950953056327295313862401338409397801223510046684655814879830979603434086568486410559679840997690777587164390409252042017761383657682259360719018757123047455906563366259980618994496003070619208036398706352604590875230306205656119170864213737586408036743042503398940365732150388056132419093044417057222794822065229038425425291105436010706977656903098874888761751419967104215261138190785964002067914777349366188672222304296694621774814264211908194723276447251880647371283915036332803504297531145764738180557553018031128843293861823446611260024045358510127700663778469845028121885669417951001443808250762698884485699189888293409705840963345349740382624307364217060941954430900674643781976267138828636275071430059197412244131963570031946670798027276774337812729751767870683024697894571759506742239563760792749941168961925605625786450871763953137865317982632700117806093879452546659089701875843394952339932391411127437687898256615396991619845349428686130351981671567547152284629364046299664769513711102319530772715295697265680818826753549175012830071082456669461398484645700289374073106299216752431738163961533376282350357270809087527520076878434171637231108701322346398875180966240924171286017233146352205265374138856461274903348978799026649570648253961342249428702336623304628723289252697825705196726670428736578055204881215138589124445520604209804991705585396400332536704203477262028222160604326921573125216849505574324449864801453978555190551635092865954135720574119850729857582674139111173198991986405068556856446750664356814798997810011347887242180676154362212296205145604295088149018178397556656441292614303005614436693826157842509051457051245653745942271613836890785004667944006846227124531846794195438780737772253767856263943595905153044893329567713342798008610403244403073481552372841520165300196181442541673822845408592372406035166693349017771841612437465462402910158166625507054001547025762077189832114803889930146553780331581903799900159328455208453990843284886344123032015577892129789381394432260426033756048385863820884080678758376602932870476449710553541736730844755723054817653802964355027219894380560707757912669576174351037075616570328389882166449759055323195449325760442211453076050337518132664191027128961246394799064870864468513738031081406091600128705079157583884460062774578510623130117434224548944677470366411599844007710800142272088740253318704243119461920328590791622524669157705553525523128740750095308339194868524200637066061529142644604393649048793677140378734395867027298837005619743826419053238340675066598096304826693728644136386542070374528380197668730288397917069821725277633187382021497835829394360474854940081001824776901698287486591558824213659516399336645677159805393238454382537310123920453532855417701167980920967114139155702086638258379003568821949359031483149373528075678663124305178322575633033693311735105260427356584768333584433521472875387763125588016048310887114603623442586104815265476622227796310371612283558437249061041817785995814046397146517855720917382786698391548668829279788765580224760704229503132599891409941184411194772401522789603620039895967225585061872115060112026386583137015406192257444085697791131715575774610416106252932371339101204201292249260629636676987923110879374117629900710180356021004183318399376915946413972035886218977641849745585648093100938795206818762332294235090502601460648027181314638963665384683442445973398179797606339608849047582172723920527516924215974024356694036929417516040596520786689321334147237766986394665361409142145096521196656450595499607846411164134060306126557070030541282213709715924644875067527211573825382221254739457889084715214025911393919614685985413505798830376025608101054730165440874678723850966230930929958516186097225822655747733568983462536678417256104920692765050145146908076068322074986184914381277581517687370643088953107480989579790713787705978215843219666212946187566510595168720525312099314132462616812320543733035456064250045119245284961577895690393369887797560443757324856735174324756003786930803028176493414862852194782704916396478506701805980983776698118811204460754824643582046054069948399539615843342930092429828729575827760179463592591098629515133807950562810448235497263643904983823054228480468014109837662998841425383361908213240174474655584660214919765736781756797372298342795039735561202565452687417201059754132886518377543120752839399805003228402947870944987035921191380295135769070701546380551423425839421987525368875376111833713255361264564250882933485642864600770280585688937071666154215819188925255769301718347880403142391801438124044425570250602508585277369019222349190383461758223021700812848603178202866523100392985127442815993224477683585271466172058636597804289767406895953612268148492579583605096271424512884806978529448314711432365934608977992659753573983531089390687220743512478600351711707606392417698293065273310743328340078222091346064736688015237589598521713032544507164190983727887323970585216230552582866265430932022870726969397722144907560418559023814755985976104119320611347901914527690503334304267647255079886461469934484787600304343548301736577630763623475976032668101783118764687157778075242449591263364319290800916001782052749719918195410124576903008632201129330676989763313886288998465506390072516574964584147953687676950023180587038555688552195903569946494542737157682927616189939054179878510864990150009170716603970656331989414887684642410942837090407450287381613489405745352026837301198496388802920927812084240534184249184844498200672412979069858076149254799436924962748627730000822603804064010714241223709953091509287273821093218513888481436702698007298177105459674391536907301503289825481851234554445371579353720950500354134947564334927860701798763045424900100184298031961143818476555716514182777589356059937188634027752157455240857299300406221026435563892290180004342889372333455707316566409137846379525014994362468835178538652306254432810841014350018064502836891278016688704959794991523840891673467058699217571364489428648910653561118687096347475053758068780560449950741647718630909259935174204348378189598352584621930493473658485664249868010057736949604184640863722740800018668737597615409772328137253021475003686168086742500695506348962840154796208604813635778770727214730640627005083063492854268655484973330197617242436509027785263459554344243687228202242785415386162443233552525986571666131616824446128019244306928321206867580189946037166275955938628499758486297548965749441022667871545075321968438822446763824460152948034078075147004104392377977772752466103743714567522903509472298876696485577261630843485889922726671416714205503942147971172834205833200403384243018601631891145471235026342111340479373902563040365754074763782108880073981915685590073054702590000721388185106545800286412038824030690444848253073901895821183678485558368147776503908198542139223382762569753093652851406071525801876628846375203567078972566672586944935672056761263218729780371020118961982444818959188755294732459715341880762536140151454750482089405209259361027451167177688782255489745231934636200762912959616703626975851618891885895946566045496011090047489169504310702050191571595430223007982060638990280775207145135002056026421232661583026360633336439736061802943354228430581587732847560719113893404482405050927259984413714244846173114446244873703434095227663725980627019320712970372408947344844319587367657278144645850290629025676723359425130493778750984714184643746878533834002503181718493929367179200312421290014167056687521388963071915027970270973596492340775004466850625330467365813851563179594212065145955194390845244366839874522559459668641599569670927199417676814323570887266848879768994559377041807895686145607866066447447021435191720626182397517631629107038076237480743029992431630343228577619717932379745737405801996688470804542392792066638884101907378587185885202155659721510078623399226892332465298144903852680810135841610146631384131706850207194262073955900439304066595877925068221006821879145411597695112195517481592179900662275684550471906610355978228383956011940740191116146782180221283028179476699210590654361711752929680845640703397325829771484460642177638669460957792628019980223542136560825247900928851148005779808473791977578265827342080474514510081711221555757925715417542790457517868410940124242312494923679374687832112974635510704571884539419029531082016056390486927801372527439793341356780824682057597100030610546842870863911601039145439583484772470515143308005875312688951695413058473830905253537845442039989667304287246873004304233729118614830136678420862222817502357579713832735758863834829659453442502353161444755918630982734775251794270254282723493196634622090205218780671292518930361969437207191481442930381613279003573531637556594341125135658299035725806582022981690967425176312268761053313764057677875805642477895347658822239757902523997558686305752535574329770257395187349712055828916632593902996591774138903870344333038172258495459301977106492281049095039983413206076635906140586246871517804152001192014852228143921527817236629859155236877399070819488400540593502687123079067104652529158868848725339017585980232349116443879385748015502411382845119428922864594475567951834620000803446959163046851476351854994460124058058053308131459561345618829368776016783654028979664861731269610653887956446941519654377476294233410747742890171253651216912575083236302187555000357864735970246252068009230960727225919385673578344140174499869579203812618798220267306606553517244981672187390936533189127117836919193969629461663709111585599719385400480229497691598687131679091420961589910818074746257840694254935121973723459891776172652192523103237779557059759510178174155720368039174893121026624849339032779641418124340024708869987176059209632608457306604623998785682619095696535535063345637257881135955244410091039256905751451551329827186679599553046987617181800630297819671399735524059416148311858854037252311837630341188104555349788139376281206188708124279681919999113368989000886444577090808543245326705438815375228401066831094942677902437740927372845744937136654253865879690970315691256759139646458773408397385485420924298417488977859128050057011300812536572386554640595137509368249846684208512882388266059350880354358656162839663705871877160278354457122246780799059100348402203129405607066811209460115402139430023122250662762860579115968724390588157587539768219040461152678736993983740425594513789912125443774603017315416352721702951298410418661151246526888012216387647542026869164413015270302490329228229064031844657911660130658630957726691464492172243133485516347761422061571872119995938472786256589110706310601976681258962600637004974566663496418096170141151989422223137922409389112226000680446813458923533975760438922890694749709026680584898680573337767479363520196978756374882980863403857853995395522657180531736365813604412818487689688783385640898612430097403658735035517601363289816133463892670409491974766249546528004873498811134459238696893683939717967758970565093366419973725311385157676227590443954487284851492388346168273461492281981817312390335924844593961355266311186981112918780968626631403129779095448903369976205437475878035822706139903665854716978689738816231348818468649095318120527057502793161843180543954041690031801740783846037390290659612214346508336934910707239444392569142592695614001587035435436504197918330185195590720352577529171218053273035162657369179776778518994782399863535429902480844997774405989489206219277613328368884827330083942661042714475867748953814906913861448713661098323159153970097838853777556856609994850362062915411331536067703972753594651299644113840418499114051005376822658546139136969325912799946271977453065021290502350019053363207074814915502762195942348689669813314477589320360620218408598872226567357206501308932818795914327661525108666111060287345379955679399999582862344951718996715233330910879886546362181027298575355455023965860250524482497555630446735747969756003242113969732408771389832671555238311135952075956828818864041853209160879756404062949473979056462296722964239530374172787207525209124838973293719734402597586140176303989862908379759448367530598330113236753457591066688049085070922439193606796866008698788398802085346408168200120511378358025797328280767332957151558426883732480769201327177812614132642110256158797135200645472115636022864526886627173839386997942691631606144520561140553705797162717175891906647584842854405610259580098874675946032623623828606585419710054912449294424962881480354551770744137412823151503411620067936541958570544686705190233865456208736811622527323578155874269723098993972415643469142682385816486026253468706851136251198111198984148257670277406011646798876388002820877873060117715649496802760646493328509076946625142831604452565583275125006864068049535707266296917656114822169676537282331943577590087251113182268464384230526520164323687761088314396364795661380712005016528636786636990379369990493938461576409760273568340794531313717852272371056310290156626549899171936103548428294931004168595425389604370988163905558930232891192527007444675144002546861048939904029722292770596542512218401316690934599363972384710088702040283738120080907638000161587203439213970572402885558835588696095401509815814160055060007131929860019485005322364956324343298192589524888172002972045937066664586002610808642713936505327610473004386498641042467094118358680601590667100350761910230039304802591696670981026606740562719375644038449489830731390365236657626607414991661051455336826539069101394457218440720701896232214932262109765162885072111180920063120610321510461516727134257991208194391367174796269545745971380249500405108438704577915760624996218022749059718113480346233399567072534837385524092392402446102394370389653116415966382773106829835019694607741258992976822840149538590043563662890362020102165761784158805494552599621061520393949079358484485630329919100949701042705158692185823402531092892630515707608819509568097782601566525115727576968363739386571373532811145987461938664487486697110040781955346028276099167888935138236251460205156275930535373475409488076684072440476761183531161136994014585071889217143315283026745990594903352557898216004741311899240655333180080689722378366060498281629642934030688757153938827415609744364372068284406964290009587864422264557973150125433729741756365181116899606221013708453685165751023187066048182777045647713275860135703866503905225363753532817295112469204476938318024859236693565719993928258398827842944995745085533168796553804794866025884073696569019299198143795087189418713470217842767591120351747634703463606996368548003920605039268136979012375927271039536442250186857435158278020192176184801805662524385700249093342096362266031634351166128292709167497461673203734328358423244767987853728583678592707099268481409224959841735200844726376800238990370315473580768468419916738754471685113773141682969674973154423260586023469482265028404606727318911977556503296892285180361766507641514340934613335348323813200708938068594242359020856713273403182091867194321052182574448606375073348894443944183217771414340795024895283577560151734387238278465317101902843709982826478731819979301932442436015821836612337377479152397232745636838613874798411420424171532938072217465363061687785883848548924853970324403083507497836586017430163154278889768945390241146554014480026084887360441774486264377628257235266720133613603799500533443598215687001592659688607797294897488794410416862370096880607675225489305106049707988841486146899219357153424256190896340923729506452877610929228001087653650427188658042763345883487717942275261333284590453649628446492164876339529764305546235229518850588833238047993030863741857710247497919718485209586110378928494565859924454783281052463423269896954829840907551097119333720307972521115795437235546545369158585568261299350885005674051007101110156005928414382522908300432818366475829656239021422177717537092702993034953470439794294043511845308632376658724103406853765099465377875564325703373960711376451137973355423992127544139283495805486677053026457269226829661500420528047873757235800462861197521751943946128946804662431089766135914291043700390885499323208254049074461379806426604912587552616670381986270149345577041887768235868563487961863067640902872753779926678599910125909956052646565683627064958102117238933216420144898620669080893661253029680743549454087251371260160077299965062513975111014423509442228638641732903518909776221025563222770413200797410698347470627956004960103934862173889565409681301364692422271524567613035932261765969715662715579000960453100324282879682017516756669802423838416993554935318077841835175344322663293627208258616525607940215353688375579057709873152935651322217071151236522375495349454579365658870805424277483880349306459597021315450660751793174489919320938555374705142461743636431668080708864724696195596604346698907691383986751561212213412527641722664089621295494674383743844702543463573665484071948807929679210362927381057205841698591686378876946219632675440174998323094208454284542564625785221028749306575789646823374613560236730014683863345944457357300372660923960058052560685815140861005147863986660366611766469798343721598372250761086322755670749927802772094642978881618865009986600838435731207059535365254077855561184905141675206893898956377678370587123090871096837292457429495067859782182909862478397279116317194567006655232180019003576428389966070159797713230020615815093800329373669202539249289763080090481034697419699953957087937653437829137084369502482886001359000418707286272729187640672027619424412696558457671347773799876892694358353917415080016935778045353100663203156717815746350996311139548033085371205080085314628380779092522357670770541916363092906629141261967333293425980998722868211500511342506817710960269471337155440813873155117074418237644862664731540127889067895153983753194473905486692883774089893111819353559630237863656514959478182930878242927351223993302231972913148651146299516920895925370924335836049951749098144102121061404046589412764147751698144284164435980991748720789949371316575246648407713960982844237030226324597254556055152533526789780596240721413925784704314343454860396885667031152483677354223807548386863915818424357326212382161944724671095866177644633997541820230518122689104024355828398162730347392229665110146610491181698814547298581518324804353762724272408391715017571074446773306437825752823090817363045276962405265483112537636042933269910676338207826044244303526247673600769892974974696370294959489079866469065895030893666512396526566643413195588726163851400127927680489326558772349837905158257020692320060806169027896132999477706344254368530182653004749402189712632612733495722167042107061320357209086059547145039881865699258405580662911957014060932948105661339783463038300204329267344616843728843070877423421099626877136035973736047634097031120954681618564560145665190744243365213474058099903825212191168321871557623628594911761596275711824672975392931812908856458483591856743731414933353716201445689791573812176864309472725749082838352506695655883172428134431702411601491627736637542203867315861384296729349057731746928082684232732169475943940995676903024738969714419546609577983895453948004384855876038266187929753442827528634437981982171038642913618650677064353271168328357571306196658359739018014132808901018341408293488498377393518655631765432749729538885999398146079309600372260671786449652221361791518070225701214661888387133862879165233164404306966217436569221940073032970616886958542046673609721405397372841716375229087881295985626507703381606026641327961112091326731630141639363711319555235051529556770261463031349434771148044306410602548589788247590494863749376301447685192571157414409657330406263499637057057110326309549704162815472597966023371873744155125433422420890020419692907823261774593650572451989280447945511625239004585320074252916160043367831193897006468158054959226839004868592690994053795391018118885561014132215082957035699381381582256837729935639086374672699868676398450071059241958362543908113152385960810898281537565777263436402404619253410585902842125153601793897089602130786521509367058636854111814286656808213929025502679079542769772585652220039203204893524810056353034320671504755884692711725705665484219675394349749916591532749593637485139239870264195556019209273674306638988736106433001710877614871831172293268677327520251277541247144087755271811741676206452630742800246091177196330175523390973010584448117414238326055139709567768797355508652668687819284260342864799678616663647476300075161118499502876675634728884098468897939851654557627137581607266656710603783788105832653912363079966679010881259061722609500901608461190196000201106902257545096924738384246790203350710528375592061021609946880177031916842311143970125544104356957780816932420629392773579567140517433867594608704436672039643630319506337948538472039644434072302605258528703745671794099384901137807085818632695802662772421298074656087652457761382424132962717543308398880766061977812992864358963857759533637769480020748542793558794202840220035734497878777673954871637911384845419765250592421228553897661794686825739169412923786820750613482903809693478019292980162372486544962630162157693034545157229411857913190555771435427356036956567449591286957641281521752413948753988880940875065466115034082181532921807507499169164579369925819843990015360790387592537737006072162808039446217358219271458350012545383054196634994282195317943701747649760391329143446538758793671765192041738232221628049560780650602051239795805064032131876176135224595282842053831882418841384791415577556895298297537950779035332286061247468119521722460182687361548431832190319563851013954732274166886362969401816226316169735419110710921281057629610894673115988089627258898378265608292307285784233749339808216831103908958705982038874866686484752060961911180192071842154395998013433086285592122509067457253872259241004157881089593126253953372500448921502769271514226335487012751523128987201205489727413337238975921646366330991889157378154874691155052378847948240713120956678526474823318993012644043177140881449008967546841184685224599485693609765074438755142737874024574750898876804593729175368462144176641160416873984837797246355458312998871554498103324099794431447305867677649816772242585708435475957224546375699766145032708028870566279855345280749120555402418757767876730869877145725086480515473583244196200621524586423451579070373983970837956207957566738011248769601302514885433149401864030923140157184855520325718522052594416839032582363338826377380079349222183239626017207784638245734463023458772790076167712883534415314728243473597898202500743313327326424753503099162126889837844917020259103544918581582913034571945804633434077092298651902925070479520835176936944860702307211735658589492568094771436837665312507649506279852202089714274894994670744053330547245249732859875920827127952611988917969243154884594653851061332390067058025981871976140274987818105637860718727100647340586168248522700552154604938519758784117911318529101714501562611392293076288167513082575362801786050396833464365066772095384453129848937762889012007983748616551814912484131283435391211924066898168675333404656109094827666459270522404228389467978584995335732300627890469322193064753906705997094410198161710908715551430557061066074781167096051977773762470704681864734114431661244093351972529541823456122230584838486842953552039369135347604491556514704029851669934791227064984197562064894144411878150668081334879817877831713844973492782998010528058630580563816998427735145001152212490972992068039305225971159628226527458927946984293842056713588122382060638838695268517074086519567570222974298655521455346144333792382687629895406455276696690911905889856932315575526811999146614760384103741581898682199434038086723482958343352989450148050602507667039409267097836924914834893747137230924759527461635683368313078481480966856515579539789564856164130249133858745082194770085891822428122264447438380195006847061285040841076672404399708537962253199237818607277033851952499497836315289853591588986171239241785277347065620197596268667992113787308132567593748899377576587229568551025677141458618253671120097549376555338689821918354435500932948362965732403756530279111895194119021360345995116662772196185540113015298411128795748460602086907763251560523351911385940171053300557485485436932702740410073202898643197802074456941168578380763621439722831957130746410770178571996389377184676476908116760597731555057212927685273906799579073113174835516378914095826658359893204701844544319347398584098717232117339756024586360379536720989536757845027001539397776828337402013444362966480119888452800094837593657322762971216694544504171596947340013904651258886974709869090665929961500766688285258962119985271355902163310245897561413911345504083252807010702021779647531074356085353664596128399688024082890772442809355195712324837410350452871488246955479453322696817322408311327649050732498044512421172330573652205433316616472438891904329140166540305538483371819547915070352340453839078483932526768687343977574645121940979766426564448098640719745980668363443485399322096766821301404256086091828090108007955336539793365732867763473957706196814487341289165620070459329210703017226734657557220900409810209931985746372903382982830618166521395448475195442285963186621903343004419024748685453269258245789027564637057458191193473403837665721545053712515504678569066283866013897937367012378172423991327758567547358713432615165832398005942647826977199212697593434225474740918775488349162611021219640258609709863981432074388172815706235112677924150022971433286129555838310178151517168394019934605238021429897768199161584541323434436449169091451616774066268876526439273694951288849295244013566794491240667240262545457828893149886595085836703893732296164281704708443360271111027161935841127911370165606272883109179472034213411875464149426678516957632742321116003611229277147123167656817689883279053178018582275424011723045127968736274294961209820993007287700074402356528896720386212001649781346840732798295088603316469933413976276595175374338861924168169030630835733980293263418280491574402422452188061984912252801990820902175995456576147466807194656882528649640180885839271305808055969875317496248456385284331548818334452698279851928015429897617980233628024766508815541141561369848065770002882562205419660511002326547730982024323236896256263447859205497491700651268588247420713641534727552762537706003725801935599543975195655560351804836048305355105848349477220800650706155986963306195205577887736520532737596732523879138581145313931912184286617490836691077121913918441505856315673259759684929882555220002774411277364405806257443302714010640816540800229704538948168837023437691065851997448272900687065783529183026713732833491225808803761543899674937333316039797448443274293504086494943943934687673068191549415676835124574405440619136704139884529800292756229359090645515074010337740138805185200110137012291836271038737418919360571657218888538505912723918294767881935648899737444576537349784672872345132382599723711340279988762373034729468706701046056199302714519004833869749033664884020398216652762716264717013205806878017665097686875104357346564308488466096569605703433778224017098765039681953454001115919639126409209469570272275865809150117756248780424325017096981761959567896143205520900698140686767090701447347493021545881567303308593384764936475079931151418409368839551018977395049740645971585778426238512030830737314239180880814585060168495782092491754053811255170098292656049946566482419371001958685418156481898601391937988707430036721808425486822915783342897996380029821082232943140989739802222432821336031672565428676464858392812743380701353949323078561133689086372797159887254187949277688492903504483045722955757799686254523064470425660968333926884302850648693894590611226769491299459223373174292157499898849631337290061841388367092697971929873671979906325289215306729354362350299705422247066281126450025496910117766615188256584467594051721675221264348490978371621714816812544986516012018698171454242002209833999020824908863843599781026087204543838663043283972866775852388590323321741721165791993092738027651838104764909765958873498598469051497332101110129197736802548544833005825029017647401806603114896823617698617546160114587743275378321408468239722392576588062981509824292925251367736429831175435817319421787365242419706187615398376223413799742421087351886644878230515823212531078836100247177505851997879680032780018514400002672883380646049151146068354399346777005493228241365341484363009027958762559646401802331811823544976826467297409993388584834759115054236485352757216650514858135139208228183207525982709701087436805926443039079991428357804473744301512143473706735416691443363264893103373979707168446515298772994687826514585820622643059436188369156973901647784547730678980174505378498536690209431177508399986668415137875395854897744739400896812356742271682666233446166224772363895080254029243815152172168503362321587395790296135280585201236311281795155252446602633148834018642746211144225901239899983047641736300273446456433483244930263757120130517042593266953856863106551637151055019113159267298519206638733040121023279428324041256805025710569527167098559193927955676035552060684422319863381441883644430823983250599657395302605511415630858056587811390017122582111512830399350479719943425306759695655382639554693246673893653837449171421518027733647555573752429052719448765721577775206250704902264785178891101919689048131106771427612404588758632655646021596421998854892840259436634827111622806609911944829033584329107080266950927675367061864458561817065986020668404346813353196715006984624008401779696679562813300760844806669516286542035974773413671271286740958441905066402750964441322078939873538786026452993090827171404086796285539004363062523814679261839970683735794764830859957718571379670778340299992578367355645451848672223933295726484754199118041516326181876400551941787224678114002016927846566459101739148121154877346923560498779134542946199828154260190507539255476332265767206146757942203762173474719979931723520724365557723275113885718654291064038219209211284603269170394102151142667284491615105006835417173090544431512181301133270011183593524899461249521764104548226773539291286293281711075164308485910483636308632504800851960593831085628346550168453282015563570097620136387450835175510079053718048092196058135296516689274460787729154582440103709463548023924742273847495566479633058245907903672934811396790686772376065411030633108455876486947096675239073584934939519010529274984828351645362698278967348771144089253265901835928852760604578737041801172667652751948184259012650010999793421682647477141180823437033273966396470802365931919119809641323880506713590180909948741812349649018834820685340462046799761676912757792507114572702097778894844494398105235920831864985376244112140618017325225657739915615486456041820723009350484455246505529815857619485072709445002427028049710210060921757592106068604348273231064566946801806873749607738124585945004490193514570047089113896330958314510006064950754285132077123540070473414442777747271506363124744630386577407002555839981098706265867513409720383286671272726800737704200034231465477424082701960248305309355993850359405032639065426337701364991290023887871180120620682269616550723732677731891623412874045857735445280631782058037143618947346601550504752562097603987837910095490786180705262486252775149780015602971340487806865387056303101909247798054325041954621391305630428659118335646401936388856157376472357977045168288172944154761035193842461358218236494080097039227565923018983529238806244555656770259164970513433867642804749162357997983251266224776228861317596117240600781353535349496132078832872863634139263741552650493006575116247693651083921048412714694015644673480448342344304767862991585779293075443934953968687627401160211709400795403461901784067546435773727160109372684568782231936629165807816751929958740171165573928036272619057253596770188551269981807705935946103341366679291234708864318459322024439170499484339235587087573979109946333689040263057647382657672296912441673054674577107108877843344330043506420814772338738936015680466945157322363375763759069015873896264498042605608622766124945043322872566765722562532116900552023127905488516225572351636705732845572522186360231258373672902147806758807952102296353308446482482779458540301200111791439050861759180391488776532626246684974066199321915850768068875852318871994921456872642229860707505456565825430668007416068665190600440870713954487445846619552776050628099907521798276202952263699674327193055434594983986225778907218071726056962166894829509326056008057783897961686066113254440442948568494177543580438353608278174326982194158008867646762446825312059888027534153248419714299616723603463091566443845953184514266026821846858516462578377621020984528894573380002264043952630029841913664001586120576754304854383667731552828381087511927668834915577472117698910788230708239562718509052986753679671664512961915597260172771522873368480603024172067739404404292516058462063711129865756075297203262350264727309852219756938900880516075031697291029336928594952399994803734789254262026252809566277024958291425344007870250042077209050897658272044016050328954342000969028397834419586630407729907222602659570780536255460735084414231452526878835165865516947438131267922611622764921616927273574249790113228240093536933747239449408798376093938777760156185329301320755549182098862450456102465011410842698453939710686781418854360606527639835415661545020785580784844090299366603003138594813715067909542705500514059897505225648088360883213601514620339015223902481840434824020165110761462212608507492912202307760874438177277206601713341778022500452460789343892274120732651401471659535311753819144991628650916308666351570887406884046238300229004876733593554301345018157216751563748101285541310186886580076485370709514512604651814766189721876752805919929926443948892642064062619921134475779337781507231549760373701336559372495436247510143805674893639968906004671606734809219869434315405693086585110266743050173945268026682229612526384766269319939044397370958953605305809908436739313060510684178218961771716178023975247645942272613155249515289718368467162690682955528659778379004153118094439152032604691402642163565238220506387819983842083710199414890803483479023774435571840875844818655249398566876599113085217340132314675719250569759769126638230334023129975773417928404484770806741844492510545997757943876600221036861224108701963524193510183639053583870512863311645919100560586361441757733187165179507301583892476489851486046499096270316629445436380105312291237549830532242820601991378969147994934139481631412525929064663955360467413586864444156180617854381302667524966514232032671164547185882809802964072322471415280910002518909833314467059546667624543823329230943122144549653172959480438665550420680859214257028287677343084857864416399728520882093785007810144461645798255715963202354311777788286948859605116876134374803290322912387165021935241319905669617273305971757209606854597359979991171763164476209997904299043823170937135851778817928751953552244532333077841376460720402494785051737766857168717273352488930481595205129189468225524838039780945284300973036300426198481776813466247322523549691477453824852968918212283138370782158928069486887243711358678333306159810120794196011737103106602855033396256043136221051230468191733673819525364336207164243384047124929481177169033594509356648797119685728059413103983213009862165811698255031900903863071023559859903109411160248619993138563713351617236007674080357199509372014616111755236986646118207053716917364277579200383111466238433931156944598303217484706650500438860705237119310841923379114647699219862570086185275246623414368953022100097411905213910532526150154295292121317865491540066918052484563557420505255297803128691432954699138602460399525615545649757161825138844003258615932543871125603896436499100332994713124387520146980324208953344444609893220639173739761021115062638487788104748477134777894238554853951395809346676500176061621296895087861976388227508121314413095077663040355345878916741819245627867183089915232933523599923134282321464578776367510134328048047598850109621034270882550054404324989707394500521562540059632347720705662035022992830797313453911994096461161152447772950056196371269372743059403730420773253201232527077319925684884444446455300493178670508675530710373549233964390734718001193745144694787771092865838494610025507060290734599110483248710647594186996937885353880139696869222301578858123012224308449582609288060581378581689401078394389158064374743724813935248338431723009974761874284455657484506268778646752066242021690975465975247613021866777356550803236807587235900611335073250227668334562213236118928804616772232737006556253717306493407604948313777098102501018561508237417727074601514043888196633698651245829527339769891492718710296274112427783362773446655938841727181160886281663763971155764997200548575906919216801419655227208346735594905625597798406780934396192841893439304623785279098620345783284835388788090929666117102662832163147588415920928734094014696820623858601145001390247889098886337740338078784594453289020820052714484430076457840125806922043790126527650349058798498865732124524834260162318761868425439084526628700067921640562227716026656036715972942739155914379928478560138171405489097062927111852609072622080425288547062476516762052223433774430862459104695197694666560109434379726794039466685419366217976081406736069099178643189985045315984847741705753863908376473807014350862005079814589726209452046013403168801565124704680304127045696316667695402141069939578971180886701077478918927769734001151103922535349121975119570413171219762620286979779060902618494040201419854541965221997602137111519574954912577412714303143520437658700656275216289959705949929017121973730360132425561683672138371895879414278376670004937096644459202616342819171000977217428656775964120581332660543678744546628256710855427779476533738491044914391979163804901539784922725301432555208946282447126688038725095311463427293393849939192181249811126243066757977439097965693340116132242746131182171749885092591010523000322571601783100185713977430739838297674086702093922802143766540828445151330223942016920299506610899163367415299364470198324943344889987674278452645030233791579775360334299291350685946534559810381236915808742494503360141967538417906847492163776494281049304073428493256375383475853189035484714673948293099722572899281156132791561152946138942994942639947320827569838612455194990372728625705637860139291544799646410000362380747206466712917105936852677103359649206348757138774738405215403354591097863611637119921042824471024638459614362488837019168325928085824982303171586993459890498829986503003151068235593531798523791900069417123491999098245656938609161217825567376848839727492605792240272545615475561780403452286350091579561372701764416448399199242753035545384203137141893332421323029035531939973871161859141374226518567730684323349644097970304904585659105519941625682436785122633350049003734030230441314984299542462486868626644744418273828867990202123528867901646822319801687638469628397162335112311465556613839483183086977038598987773228231318202167051914999353508135086525193174515749727724238370829081451102197835163496995042354105400609055731972407372239719270676493292944619320406296719834238613854156654476596902684382491565191160392986708887032100091333434165653976090493464852618211501537229819048185798054576873292704847115636140867662596523363850606095883280158437846261488696754822098272986397992697608599719107373696900335169155710378582617430710333837329984831240448108900769640107752520964119272711780772289958700536559553773741658845389015830071752737031526867368844966422208432326100638356673346824169946062467467186237191517330181246985385110535563986814254432560207776173604555182236000175751036323038831916261634473266232850016338996079565594680471544033689671616175158977688311720061518629220101964273038428061572363929593923025968848207236052578329809609183234713124042421510004918372113680261747247654417845715974323284514167769625073622205115455675939297625087435323562779490937092163507480351802973389350438040230819302101862312229774133724997896091739913759047213797193222395639320870309591955726113124168588423570550558118146258141388172539739637682330227070931427232795892853604933730242186379454348429850001603652140368126223111008453230830746982671078782337177643926888370097648637249215509315914822003072473397670162723860869229588588532540887331968794807861669137570176345426360413923964619312390737602777640962126165815965380825898983074501715669527700444647971948788606764997397882289167423217783087019976038094164860327685930982562329433950347794638156342693177798558704622812302583736342733822544188274642979168932046986441653979738746424556185021310499207127273563143567271041841113858500264681804946305486905763554556757641223976060125035612901735145055129631484474468530073069152805897416611828550513639131993832631609514332204013905388055384120619115530397202887626978942100284589443860030137864635866029603584781790524346562041691738449355799439027111887232174962165413738697888812823561854214927518261167755157784879055799122261439808339954929015880225032466934740555302816553900043531585012153545278265478404792813281779066342335488530492211100654620595359565850862440421616681731840551236341803715379320671901360661382666762593254105370142082358626083010443706462304441732184370417018430318496602807603977490489233655798681301326270481852529453495793872115560709645626159424559016774367931573502387357979343575913706347940651863761811029761203616269472056479925173200648973309762501893482845152443531739390567112510640536777097479581920660404094996968456845594938767515360555742763270498256264392520881599917830517812584500865679864337705765596562392173642045164403802956338916241368754729578908954120432904429251972723164954625869362845833304654721562912080612609995999088960362276987474975815194769835975841876868309021418619348201033130239555106695617621696887736593788743333068722501703438894316994693718649162138285849328429858898736114988969541525820918737062327918264596152547258638703856987599167818402281455296101313130360925640982810481548499138936027579896666099394009255482945429846340877805304428900734293875799908842759494393890488884428086959163249069791751552358722369865598088411016381658416290013102459225883410515097071975256483876168352854216371483327134410176812811882802011872067258879564343135626821145391204780687415256943359649232453881804925656934011056615094070772904733877954392816941478289442388571214900185397645618505973154412244294585889461286104334067348452354217882449187195091527535927575092068432944234416055463144989230033228061989150164175958322678217867385756714816997496159402892431422444313865338972615198746409740762004479451871157213821121833351829143284573563811677757661021419741307221269462099086257648860234026653964378924528572395452946494541330309084426393848517105779079348237875859545432727378703734046268664742317963227399652764173625051585216167606139825710151208721082727978636643442954723436923253679733969212017640999198459056505292371492142743704793042818970444224557127968711728945437996803788310185926723778779138579178272334862160810778835540962205008907238313853610739323642327603832815852688223552365323323360537722472268368237354357302670432190357278450275364121932509018147055574724404084025384243563763375705492152907845533003417588170075382683599069220213792549067549772582953115742889825892824757485205540940487907234629854682003907127078206866215823264525565513287218909189766826924475423655400809615812379987592894049732091718503153418179379300544476795631798591086712049836547955185784891861246796341485349010221292694446192180981462199797455625973228592409310888198508567131670184408520534227349341794285905365178445241281519830966672769939735119719609163874383507841966469838501071510338553505573785078859382041316950869685129859531391813874148651959735494306243353097857606159380958911102714700750617479192923851590853208325013999014001876668375238334452087396069579824466763808718804150026241696452264730946088454588688928903378653269703061539200824643796723605224600927542848860634763154928294071275472244040246654074154917920660317638136056257717023937915897794556224798568847213452484630848438759846286409064704818925731117778380170533656903318860571637311808066036989993120738873005328052183469046110844118468484571684557568560207723673073941755555206185531144406585714550627990732044184274548916011518408531239919313294138471396028497696982613974416274173060169157767268210791680768541939686718674980154997241248024032848883771582649797270317358930248270609002073860924047442665766374963360054219808799531148339255436655521646492561641470406982264868935763636212536559232993889053924015272310203445222152784975407515398632286114753001688157649628180522273235910311189057771450037040042008610362548179081756669599819001277074402889190636852773285664314354561689425712369288922958490989837976508760045359772707969405578764185595413787370126158854897679017116870483478058233561836346674488660263729219960526263941930677092113733542512735605178982543229516043486200075637941503477929157344634198849397039353432314501407984025354262168264565671811264624416282381722938907103824929684135515423218303412717176103721540904679162684701063240239393315305520841013455095351276569212744842753395471337621321968320627709295798844860233955192507082134060790963114028011120767138339906992636003432143290411309305457638766970213580983417556352466824154356025624300862074129056415904901617398970167587106458446621100065506872414519490748378096621333502040002689137180526116724832224059295838703771462020078623279263926550021919125629351901063123837231719801614362628514660385057918570684832240023097605106788670458863109444962427700190603993995615617287296108280227610473984496259687605578011168361906388510839564514503258280882098645505078978643573740414247855812091356602666639980998292178572913396850515395692852776008031132593106936354090701211728228521356010427575933538565567841393412752351066396947888072222056233097170074028882054327966971125611088965480942855636111392147210741143216560346764138678093222331907241016961502009128008209476299256886740165577622030278717636570541863737642262094727974743913510821005274363480261268602927780082937994398060396895503111347977653030889500099571530867625196852791361575550460490136317025588934651906309067646321823629534341387657701829587219198060500128918261282863221901485587752789399522081291960169121082687565548787244938356008642211399787259344612230620590815180580742686552577022898043686937878088414853745253583455940622332644587134054884289871405372230646695834214755712525665043488715517845766161850773312183154016478059355212840116173789236333804476502110741329909150277324371526170776825791165273375579062143360615023676183323075880407450660629865496666885270072654299743255213261703003183732172251408733328727936041450443104005121817210153250588070851790046435392348029015410822051766226624726369966687633147448314721864506954632521083273599201830134505387567264200130769392252238623246529133666866711930120514061861215946424311841991312382539095331653119020521613723114681864802108576582448985926269315650999658394509015568400606920078531575528384439732862626165117204264379103370644686363819439011861142385260416272592068403537340331378100672587231665349290902152338087552439863443243275139048697609654846221378527121948694502790913903694634309696565521131861055728331772446412688242237824401793991676290374528216428813201342705413950698412065871983223072050229186472288457457120333151986696656537877911980250429963853261008957536855302711181105267317539690545394489699184183382198417495418672948509948342634452657065125272778828305934657069702120505548173576540934515722874543386210372995253029773777535333209506456199905558865141004619477195384301633725601149639505433808831832461803559750756316813155013375994569293373079037025897836823462190269119603272238369993803706338825899583107231364789062989438224054486322095536359448416199662180910406227859168903656024572713877805394204241910738846719473897760428117038547843068213614620511423533763314880346586965080444633582887487363050706394375423663062854244623223432115272129406020750481170972348267940518057629288837921454726763816343713469950227137555419326106225664204435707545570855308561748661104679523980390355209762159302949379866220201231638204965484237981791307445215679984346821540405694243368037705955637210073364742741905336681385292634466740518526974761775984599432659482430343601370582788577548744436900652693452844671656526747687539765377354164575053586240602785611662845976809272472619689384266453524694780739973862749701765949908970788841861765855891269574879175568806143986669017371713058095008425306110630712805422252698926241190680908736802921098795347242032550792754840803287472314937740027407237244944984489182035295836764032894797932805979040286122322543385028292109475688037541509168978020862824980825572405133581406280208608686317915392829043113278166128847801271304232919563460890161828650434668483140204137814377522826570362906617490170551065530195472740544864755913933077530041219332228438693671814338488209325921166528187457371115990833376150419410859388219089908621152007634990475287979344272703729163093335241873836313057109117831964314333217181948466791487155814019516987888597606882352718244488496010238028596395319548189005631837334007707501552156607889188080011706013785256016367185834536436994622293536529325526794559702577296287307646383984332655697580604470357749546837453455073978741714206064540782203362622422951934058657952639478690468518757652703853557417872861932904213265266375147999898350719215025543964574338054865326755750171808551567925212862113906904322772321164386059657238290544257711541551806004681682906441885655231969490043704768494799377107807142950756939478635866767189004737876958659958967845224400362129812256621241404967153115460920242257857237816382648268654126852990123387839277872288126554381186862530056210288271139003035249840362995699544961323735790190853016828377256769453979458520321376577255623520790524774722376206645691597972350448488573469581696712760154404570308260840484490417915068663265140642580382803611711065046421311162178004149764734475253020965018469203469036992297601789709363127449851875789624547739581472841011122247363738558531180698471133039614658396341012287526398282152645109779950508690915510236886874807138808220569995533947636228640806375505852664962651022068016301032143348209677021619821315942365500502304144903754919348042700158397413253529530190071632105251289419004565058852620561844390843513141752933819922318283771384118667095417203696352924317331555891766474537433959155460314135640342396437455248786708135663893362351221067675780769465197560231327471782950929681648466579575012132390463036372942280367909540706593642408606659052266478865735605592684435986533728528842320887300298633017755956771134534964985282760777062414411876878459700628113248559296661380293275648722961518673269965077016979492213573465528111342119744012349859473464514714305920253573804288042404046340532670458670124394799133845859924647782959709136320631757686483445231195184516071506747520247627014384872199936826724416566316341604136060808572668281120061776814032501731511042106133745985196636634801213330502111172517082120605372606868843366164792272156658123184981343710291401406620853569327734208509101107410070023025657207761421943852730146598285098185206876959142523897778754951085331165990955685338422031118014064067677465205681583488690794820412653570903704558166142353029490743708350610886124126704013706643270642682825681694526372274072098981686551001257462210352723101058341740054986862766422624247840041408551860184795615748596101478770334793140774023005653282146557978969451255518668549788702027416738962671021133812946628316624799920766649020502318599027662821917812622132024068929590788928989069468323978946636163766327724409201892799366198151695695895770058452516492911428252685448018698242558098055715342675925918651949681568747537282513368630499428886991242265301277993383830559414172116757615051283811848725438577615704217130105205116791386946219862076596152750942230535387677162918094446387194712166817766361198189244642608396524834998094171341902329368145000423176787951265044533399080085611656031504020606265550987250708248943486933367098646785021744231735923554230467300163072767712224263965194107871924194578294348099451703601050321460972653265953681931977378672756407579631819158123664514723111531985368260045820600775920672168699946964104237311207725241638437746073223114498138454510189664270258185475324005588963676217515926830703945341521308785816764252165636206781159766278031626086824337094675792775324599322923672298728400567535841976512175891503391878677593159485514662856220831104593769420525804304910598082667540017913271465983886100125528802352147628300607468251850671932076026383726101181959654797649722086381910985075878991134795150694519868460345624026110418038373468983210458161299279625147067739196278641950383194249690788529862487335250722318836274637098798930757075666102096101774926554201368785393219272045649739469618147423530527611466002152783163520542536662296841564533273039266431326524870779163891487248742750208726158075721108303765290446575385757940212263928110026803252063689027771322580103020585516769838657310621952775126720753394861403506499910030840254667331895039742033035458397178195450790520026874574189781195750860517766988900517803775146004264778057573121514775723948900247569794968075985238950736481689011144547912912534902473709482601431815284048073377811273777696595825494029954958179369160009222329444467390574717001958125332278041618462884445154038861832382525220836566121580587316364949401727488766999844974718624113918753973731508051104701072041984007131282485585270702989327975201469618612032202297648088643262517365570451633870759499822120335377509524989463955151670772854247735788413523997935751772753488981576107882950474570921577348056248994567412153217091609299604265152348789769931273795178073830428101531239055938187332242962580573178891708540827382278873324829551528670502670597305479402703259974971093137096435956858225970242338970127109259794358041351268456693644154572229145449682812490184822358248717491609922240793963097935586534114621350717489947003847407636562089670125019865588360740960308864165338649466150989644738336699860917308847131963230624278923872268101177078069062287659409602498754521060699709706656938078631768804994860005581684405384200782061799654175639360587720551385325453110820417385982538476872488002370937498780719426479325188951800395455753411823702000763328040257455706976472431524677894058421143694030890392191716390518500134432162703432804192774751351900478949324156829890606127288002981945171029020215988228194065494215602677257341426053561073155886237375486974337892941477378022005562305206288556177279596838871205084534380412314878263626930272062949802156564860745944376345212593565192324179258229694608963162149867995987061018247374778249019116225521911115974326299556282541978552671689755769017342603991590463994688947377085415898762531990427286712526161557700597723593614356356490378044136483991269563517220207627456147971780267722543187159363872120458549504879280890334825878711125103354595611253153610348258911048944539818222569114734552001737907807876653703176636567942202033192180556697065392455053928072417895306408735699755938353108893643209842122710590551814327514557677899833566014461056476004911445921075693794647858835520811240985999626405063761573469893134034440156805786662986656787457267902527344837025200251341851105409414865502787782210394596603087123568486081997272847519652425743462559084438303042118722049727335453503716504898717332153109377995475297957004092083425579824952334614262211163810551496700711461262670891603882511165471649734820287720324233548709927467056144718812372096579378933374510179835596723442257083949575005074227021363423766126141797101649581431875892751308099595190080458241938019615848642900145820562263019701867869884792871022660441677595495387142512033175714622572311994203988743420547362799782178966890770008362330681355993150849072442472909838480722185751530122892838263434413752562294693448548485182428815941761527053040861275561185595206958810058545296840976865490217328442759108956752863962897098396939856609363818687933532242866137218020681847139807171142358227580432108149455737663198870657660800148737663641621322617300272217579978329917350709900079205004879472947528083215423418635002586740181902614130415406571244648810196192006650458134298587333602640718524698235034312216142084345395347466079101681772495694364176008672389846380653365329038581688827808062471095258722639577207863906608256521929613165024324811917799592445938307260136336455071999908550725316730664980300874645902133320558078161242340225521569672065155043406014265734816972984329201902321015577174852224669355688070445145661510592622172182538997395619428284083421411357737822533724034637639898431757505764758765651213946552015812956563733769504043337004368540242377907828627502514738703141987531658324601634657906997381525145414338186440471370176906489935564000824900923617730685133699819184850991574241761695662707039256637940188243251006828087518049155557322328148920035117218582170183311746842544344536762884139712725627179105232048371201467007579935066195943096091997784229961308204131907485557121472749563037733032972079958951359597416765757872513786935451031220387766907425297587404582756942622293222955391408976378114200913041197025663471222694117127312277856171136089033361394034711033105901290556440939523805090897013984810594860879656338828226518160218750546778671245963313229286329986159788776842236572559606919590854788399874751144070202170550903850389836568470916955329527933428933759882457481419403995472001007587208481803276348994616148498131663753645882006423607065900260132957217478609169039180084057996910639933358806039107724504914415576291923008564952641558043718277084923111232822891519752448471590108150357440641205267436990199732397240128313767296424375805740612407679577042256894222710263582722136232638009543951121746746110327964754003026377261496823608154907657534910788829444493269972260834647309976446485862631948097767906968850020810864895386479433716721768542728763891157425470376587057599639096032599456086255860306528569272860889265464988532285824026946088423668616384363437344670206304697570481507765300445529409779718891116997695413587403128724340157169642735457319157633619219992658607266877879572924790556641464396545452410689303219550951043315148462381055564292489965314203850050042209668212594752421110593135077022885768511723966831013998393884180001139506587102096809365571384621233250884938729529995004003216996234592609677214382440903387092302538691288004554062216348308093355778026212429743298045991950412773908246959034839904033208763529699580777985658312641594697559823346444628335278379676702631281761601282251174730548239339769705534986316228793625106117092898012072490747735959254246301597497212785268396114815357380278055496096679627714440589217052876390172461120851130486690074031402241245493536197541351463131978313992025343618159446336780870290313658858008898691742089152487337991126979815849708307518262889161179825304815388658846601464461798419157635849949102601443350217392240506451693587902289047984193238663632622814280326102027890376823938573997576224686908802644983710067063137791185106360794477162251282064371316872827175945218321931836332979144701253786446729645282200369835691756040982250383957105649291578279623378381554239843527888321906401650802579739609094605119783083070174734672029242404804288669298366492823132634151455892310331325172225051970258000544152295648414063756422881285189495003843526279793514540082694614291365073727888235661348035906995836227004709176942432875724058279375448335913095443569190932874931729897670768503764126714213182370630173236703737027890749800827180770868084077506172034287250239424441345188213471578528745422951318733581307517147917344343377480057073500785659559850698839070600955290603704782390162373593238088539239412111429400023256396841084577655768709186267906004551176821289036106876161474594700013865588197303038457680276592345782181042351394795646369133060845249711779727779119355031581062809067635335157620547430626081765463262902023257732255981959463970942755447974002292645042061735025108582077082355046080963966789438700946479972782758726627324441534097502590416787643623298055086464453684774627337284166600929705865127832740266279796334998064682450734894725057816801312453506078770027858421785051268749150609267084617707600415667687125435358620491676639700405206296845281176362564525688133348040684410827750966881286989961286472135657284040491670542852609916053211089053401100833865963099549443080877472238619146278974885042414530057426781237268782372421470349944779626450663785937244253279001956626112879043117486952369066962335286625453993085128800855338984328730690830825502278719940452286021625213149606241809676902029874880634288215296583157707013599245985465178860979390528649096486576168553875521011036847756548701870888550504299072014863656585706565533315812084404678726571599676549561616016342593160565823252496009690852377185411905136257534547028276604825827211009170567212860020319356350410061460696186026473220377624671065207879226992343573278843452241680040122878346050112340999247024438788722956168855803609614632993946301268879661463941793287206318291556929572086926511757652753084197368522928666779881681732608021792659799508251857600229452362406116907681974471138287433498541464354855717754762755285846707938858829041205787852302654124290754232375410513185696040288274576911298562176437873844515110483118189530767133297620791501830400286667894986141685714731887245978143400454453423432947431494843967141688716251085632200056648803591264916865366059190147626880623774940221903454549933734412567897774669924810441555641904715571035858663196248788934613771692530099852786121985601837819093661055299321761304383855392964348580146056398461509843705707774820882279906466332021548002737683212788541950832019513493844497591548901558034886793111837451801735052896244953950994059118269677812265310920220098947371479285275674603655338356021615014835223935420043966816233574365320126244261612941656441582597737170395938282954494661111149449383298578769191598539774819992663935447814003678667224504420152851406382819405540391968946856918516260041328051647911369958217125862875834879534379266608905665672410448114820379861238967315342544219706394383116970998734688559989136439668367624095711865945175252156861175899844290240756367311638775844741772594943546432156282750539528955913437056832768565233747831214184914058266152526306335851125303664199876542262075753407144789808116648291381866461078950224856556156457588767840944582976581482053319412827635337761312764684214004929388317881533629063303843484198696851843140053197665932809985923278702091245984730306645293866560878615260682110453411691084728260444532200312406296217350524345674095153167815426196570717131897122035234745489353940376618353006917571058327484850566461605989691084610121771330595979244369588050067081182084514152503229528549037051993320557636312619396745556835600005219432802375740829046407421490630552975154842120857546886107005546861387535620500352204567366537522417278480295175622841882768927704185997959962515996438262490052325891484402496831527980890406905029377192018321725221558030320176684303275243252615803769655443845392641922407949341092154258970607650057048352371786980602712835129571444325249939219019044778786497994819951778477128376007435058941587343127484615442796854415182810181680132061256854284714885533054195622059055018190932805803222007328394535043678962517269080817168917425945327052233646483833296374137969287021854381003699734079287548887152512319002513668625931477646618339120900859931352291580548191665625640901125445361534665996305237680573740889220282935277269097031189126019781354083125428894245695526119185978292202585509459615468917889872976192013191587762444144400912798697668294052491286597688925942990050836383639425515467843105626197188244405287435181983360929307191878682926130295288551499471026768041274695724146461167763618191178745698860570762756069113032357705266447920129803029101938612498174268051218054937046838571754734870828867605481160216272359026145599336627262962583671497151628554541656454067007097239869362481234143956533605293043692044711277213466818054393346620208840929118399728938003657464045147484947312581054931580997578661438305797761586514699521738853030261563746544831748828419402968736452152550789798107168538459288051692894141417782165524074691681456757886633845291242690698360520743024727378059529206101227711199949063091281723854974341612879857363414664773339959788230138969071689642768022270549215843946544214111734890227266382524218961994212676939598644555605122411471391478892527723637393007613250075770915170471111596160250225933131350384346571242695721012138384622854112998640590307859375094393761447172129539086671131983897233298127342797268163909740170337817679158382653081517083074079690146416896686922457601947726044628755068803610808304295360722003006122832388194568772082412601855802968638272884459411006255657453571198652626747252467280965202827409680973117116560208243025160960090771067676356005061686261526576423190656468801747261730041841824020699502574960976627702047462408695856441109698210475332209375140403732162090456408254495501037456546851937976915686457531597304773628370853769233827833427324844470384100655764771045128897405288993281519786788608954988421355565246737672599220059531174303804835985725065743743284166997297492260001815056157025616398831535504505476433354876341890522671442425562842060333068285660042120124777220483132796894950870368329294504279307231545612105882539015153343782959771062885677302837283000076828969298166143493858107103845263097659181251589675404362123904288093248934216655730534720019457427914017143769264770042835628968882889022226713918183594659361830480581048619576360716447352057933526052301345794192718296163123545537642620428359326694883379849781846623790197291010019812189392988260377006233700837130052565575704497691055601553606491243767165947209483314647918599681958805049820897504412827256384353527975003842407781662911169296686563425402129114082952773105347738016451601720580668168097431076756117183806707986204814740114727092676623663548533520912600579863607933179770360117380904541313834089678780037779588459840822571641016990783088356358576497336929581522056363909939500395385984987134006139135390622669820196865231577242110136553687269696303731102778150166400108136179513835675958797970974167926974658491909207064413237254952232973699005808826022133123462331460117874754234475880514205406739659028103993893944344189608696173582446058920939821302395598301245441663437397305061829989710407997408979401210320039669578197828831661166153035021843180329157206165031213662452366753461612533474169392161383270432269103602117095642985868248959043140139715762682679040991306974203254208399999754839470974801500919419840900868759156752067421964575534912371231276672388613737142394158041657582456423487982126714512896825374102710794778292920860842031370808937893932734233727766811840773469654092749727511681738048273692056324906789789194527579214395799104043982162308463401899154407458085270374919204856414884706668420975405135250778511821949563418249754022100145051249601821181035469458983993463852015180767750212475528424012751088721072571217653880716953663842958918640727162967422478356866138252650478493998836727100749308398179600549094198177913339023937933247754802378831968047590516783211843666321964067766837709356518851625095961184961117090527518836142569722814510629468029031595627949822275310945749176209049862483884749330976419383127069560673175435014168860234748665727188909053527439837648329877648349573463640749441257371600348101135937640726535551072655612890985052549595497194402834052657000209396938783374557367206003707129599291322678420681999029392484793151688355904702046225238605824696022224329911121494038779328982474039246839583311126236003466952592011280581343518275606497275261720782029925243068579572217628811271618084104232464302631185787187894582032848773826825527484870516800323078837452660087675982356267530477388663242858904385610049761559485313537891457157043005740619910977793406405390930771283386799543670765293069481073938971694922719974970788919488664291628310491006149933580679148435676521203021228648664927538104003676500333125496289602360452681194496513757246005430713396539266503353168786609020578870866895778330323004629851797451936607514966635748231075177503137800241069016810287094344922993886186718616615184860127391798335331284408170375330431444671886072127707457016686119472998882361839688326912353239100410587706912763370583482711195971806176960290020552593183520125750392840847317858712330337634678897254096842770303675758686023449007381446263202901685503502952436394400960324997777190464382874796706087868381916395124750942421396747996160205134283491005603136599815609302375703286897530904632610295976794378253212721479075247950684089393621371279670997248555471720233218032336501192128899614091696081713828501827400860518360989650848797918396794731411007141846621844469241032139564578343876882790648860665532540684156274863346638539512451926066867574885838971562890056899051160196608293915094845665990144195588029631970657827054138370908387487699059667663387385042096672919001262544943956133885426301190234293609715258535133634506989024784791311857504019443735781251057659008148051174419348322690386216239725679741102954043567475098268691936242834613015177079186477739542608358913046405038966752591027291065577492835167624168801601641957147960421772788290397824661307612768219986469453281633276879160056596903346453729110463149835804131075249515888251748940683274166068313006016564090785073111339272252271324197549766882413032556663663258961268967487481266711922321520786618026545226318193417027118014358710070476311632815213602859060612121475983539752170902096179621246641029788998598414416560199516223380952375093147861016479068543156577425647317307030443511303515439234577490610790445907022739508660733805442729301258371453637937181201159146300567621395913287371549682776476477425216986524348130596637927078277649388678567922978352645328963132681981140956144085305129670769993391929183250842848388950013693399052514082259668975703897758271677912728592830270513376225725458156787620614318508297699758519184262563405438436806957788664714370927167989203790191141896379947703868275263475074741466630230965085887039725833736081098689192230314431747316195272028449896376737595330060242360650061896931583267672431555709949731866044520719497706609089840790071891643339189165579120317524581624893007023733230735927457702038148445227603566683415930711937279598172837303239907597496453219798723941707993278810337572875814748000629456069142018513083046600373096864231613580641701259123519219554631010758699305148146597661337317690978304578473878594529699609704556075605551491284744338301094859655687063434720848647431322603539781842090335449703488773968712166212074803229622190558469970160318083329335727695036761989959057908531055719990140987027206507934481170021408946922063330693025297983938983163510443313088090772303930655709228443057532735053450979573110247296511325170665628252708012121975081701107385106797243749278155728750602152693767747906477205552305131847141681828479524572607000621073075895053086701276306997764028039075552651010241501173217009045572870128503551549658752696900416325779899706018691998874559377221206914719703956329557216880844977125954335686110473186933823039973584543590127438390391577316814216520807606065278319695529046212938554522834693641283158523019633396740531762518781155322550110355878507767708286132374424672177879091949739895440080506077271381225583848274354797583044233128721676516051711893797157541967684573244615502881659443012228867804337124982252588249294852565390194821619738218658601485227761289681225556768776621987631110984412982696257365942422970263474069435935360126208925522428156834093717363799673957418726110754214884376267103975688977109659572156473454318054614488029985966593508349214314702128058844619157841836297751380811079499740129356504121488081757512501424952795627760050498926331334552346921828167677968703153791953028601027357218675345716950543841928575051702783938755068446870414758682438292518886178038883885074458896241748512139828060014958060047127996778095504106119866040473662897951741242797934337087108840348716626039382597505543432084607227138810567967153259294298515795489546934213678146254753186833402566243093887536590388002710715814886652126912878161694203693743310683422403524562011598057268660869226744353998014332958354815260584594178796393635670974527920916058260077343012677153294073326414660128102646778801530985924912596924760640799996301097736225796225096273170928757519700723875454746546849378119138347877200782876151915633428030174628208565874397969572244705237615148508929071443421836987031486273686569678542128055574162738539050891335907390912903836582493864657111113669513320192147756116971992436732480291540992678322229021258935341847696417424620254032530068459491509858819916024633288240040998573802600022921933405134205641972828263770368245995809412772496394401553111695424785703435265798567494453261897049483396508115759308279414643687843222031419783687360375349804145734412236597005170304310790361642365607497161216178735125330594320330753542459564958878517251616907571240852015499987383823270495654702869874833222335368927728980065928346762238262572140656042656320532348694033372339240889165394443098537809477540643373646552239773300451771073406820337125403533044363629662195893187942236222257965450114451026584536035395646177294956617045526284596089532193473464629668495215469531826975798900461016910471107659308262610094944568994482575479391531586242219098661781724932147567787288360915517406539806485984082799545442810566998882293984767752112377168804331557422675546649690809012146224350967986686110439147291344061482092282393352125727870630845324697737597014278492370539901727514676170171846195063408692782481267631677731146299924478228812516535710335553069484846530632281449823955055817977584169838043550773979399444656052799782259370942086604895191032781809265341854293105112110635685095590359758765106533118096449151685945737993597352562270805314107532982098357059035126697178725704848935358786131739891863986774777117648938704249398700234013841586705155515333079155102838462584108488288813743433860809034055588123510554955254414559392572980888864444381223750539507890891891046425412725907157029254762870186000335369043089542005431701076017125505115758570765090022051080860116639581111015301321200009319840340147354197700717341524018919611834083756016965281577493763801100794641155930616788206132035453905901546924909556980728944624014230115640650780394670864777061262418176842067532225728928432709418189965290140028721335360735907053993232937285217998120739227673301358154846584371381474968962447708209778947380977155332642915494145245955110230830168458980894111145529447474446352632250792796597118472028857494755970766248698294009290441769162517546580351643276337440642115926847682458392401082011134958896657932358741425554003164288488542712133465488521851604518811762847349618027567560348144667754204529003165185767616382658864439297800627109024475003358489054354908177065606425642793317735008067501373491741092194204480047945499510768274960314879596101569959348093889814463244013777168001822961218990790419439832943116532567783518861579659345091298132844835270140098716054444781431329663182539406822031233519675807615731536708695920470021931100032427294954339522774089495149236741601105070493249263775912548752335687060693129349337648434324117517010170681058179929784015889483787927614970026437652641851468694036370713364237548533656983005623873352584034742191296444678627177899405462947272972249206291675277261134048574694701700100765650335997817129569161533114312014027987596450151862070569299937745352401235591011993599650632121175202944756817512406708170016094538662086532476348269716064536520509744713715587453299762444819377938446201977041060432165684243463810464251828794551407460302792234447138547858231190680442041149401272960875203819317976290255958119214477984446605227878506752215263418413335123597830004395040281645779718620500322815918402180548339166702623897283217038109238096305185703497592012051666602618310457141460781744333766531384896876450049786208960995810654443335104288124176980115873884019999618025829281356794574194159036001513305033976766557968298382103433727716316166378563446930666841655771522843567479603727792941963568253242784829587762816334087530497810823701084372538124561260085073320454393642446660065315838426268524688789752385687760922461182530212879013786264598886341761563010080032991659029608858856487871267996688547874030700755065903283307832857435170814598674851760481955022417873118827012647071932691854502197762894904508861672005003645736965529539655945012647946180456327683857203041868673285080791525799890638415669440510388143502147779864710012873813012122698599512756527329156478635244558331834844216343475466159047734182561519959798201072616846258802581850337465409394131154355078665424137652727208211122180086883531646023826844502324983077128438358870653858600366226249316882368214426870415284190368715940996220275325663985915260853729499747494227542554085374612561632121697863527492530269919768019641262949134082749452268241818664079564189454280744642809798597965917657807732192556943175480414250879328344155593686752659276562816552094928084730522879049891881735620809612266967575402938082199601102104117957120186736214902134257920327765752538189854323121082526933144101710512624046716940453472716203412627231030403282007378642879095013991366335838579475998140021156590434601712038378113391080033752931618647782110879980974752327373305635893614359798957278698407359772801106697822860935469244413594652242837139402723695723668802277845755559590243824804851885606623221108589253735952504843460019200541000045809158111216848799857523418783450216650714470291893404098289393291683980710484597668914655364847014101956059172721004637091001687496779416730313771060570756312062042474899945071806596151170962947990376335790868368208288825157689718167718166697538512881265238365029186257070130446331814759498430450296780596056039042107957846347195681911890522757460110377345018398222678117322678044885611807501539421761076759098446320669654611268123018605808000639842268965763784188525928777533633259806353713211171038406449607369320851749397768482478223655041838609543772043083406926194680342321219312597215077285589793024483391338562245627117180437686785305592243219648256279425541346703822025310935946698424795304154416899940957803655487059631965409255133839234105095017272960160070244159973804470631408841577769753218124047595183812258259612747725935327040884712150848705393839716814097021927778286142157739266055662911268754016721729597107261574966572024578753508022451510498477690827967925846638497987998222578991482176026968733045206814925188895949352543732051428811162275647879781747595258716758808925960122055685758455972168490516979807131527144947718169604176809302041319374557628320047206914769624254073173050542540597283991577237129240201193193097998981373355003006411191378089447137852051544709127779435958975761043369668402072349505601464580042621839138404162963944893684697628646118289070659247826327153182983529569872961710860867135055883180744728212759250671591001205402023350774851560902035164123774854062515653278073263284614708747755916074244199026802434692639100593667011920110331145435669895671085852635824031044398364919184519991764086384142721616851383363831158420169030408081258638838948562857300388507283813078414919800274382231477329961452325294867965869785273798888575804712250184327850535307477390461149581464857281064838396680916163296266919204872954610790961294812500293389890238399166723526084295088861830186636326968275132616684717466467886661561702358443340107315138330818264488869268286767674215566864910481852170316690034038875641025865194870983116578103374115734331314958714744833027099102555484195997941823857158016394015351377942481677897749853465671047990286628985090631269950918213277735293329157194826587149743862257510838231740433683383333394883151556532650711286866606005182597885494599558841182284796329364882092665680959106918601392803759640829770378441416649493039102443159654980430474789856154334471552182462965568973863462480165306018146547373923040069805675212597352074451211630991686887017637384753812669522880239390059688202518357455178068301816920554290927468671788706700168725738627947786850616148671037712329850532785463613502803525253169244551948726028028123623648529612713768999488905343925659550532825417725691607295858913444548886465246529243523832948040714979868663318527360390400681182586246237910311743109221293215093321603547686738585114728147254498152303018511307337407543812198954317078726224292224119164579787189418738335645969062534345021626385932144124179334359263836706412980839927880190406165111942215101913071879757995409497439087574197414913366866344651617016998939403697117955337097060254646456843203323759125258070399623272166560966080020428827733507420398652220057315946725322669258482059769905393067798155809557459775602995980464493430391420975942792214357160027431933593340009049573726473836479291403532191300635486927651969319975426242041565207815276324876653602455550259408056941901914134102735448488611675753269655949129512241702304374317278978415617403336811476440889246368932962507537416325410237390993907890201351773774686936658190321382731465701188972148309770223672204594444517946676272575168219030357010437009689260303931431710462069121502849440092520132957878335756898171561980252717343245209247532608994980450606477514103918239157054991689373194011124071758658599983749493285666654900224698464732790284621226614280070849809743341182133715988658303688867055872766908947772644032943110734720935276355789352588254105309233185648473315579941851141512242005133460972343735372102045419976788587654154673184237909811661330173642150525882238062167280854548365675249276347174626862449311010480536634041197045783967581058346424203188283246924488949838423181577467879178852863235636955366782366635181121549446133381204632630364754240168917698946661231122949735374518773927613725594842728614897195674460975263327311042256835963152388324886430372690319985333530936219322048191253410073091890691838253104713181632375559171708925120632093093007545474121277143194890658643197570089860636407733396614708490928801785252650734976117281627646835422005324070471147799555444900813798396569296371426299289976992949790890048487114698065645585404277310865952925871123776826503884475492387335481180557435181110469400891788718238957211270158654441684113534943641909486678770290557176757619818013453015407094112902902196627790144932264125673150726569750414477407807613142093300150987082578577353210794949664898517548729017948440343653763996602000847721121800219461884583556159615753992803030562727122551390028265744960752149961173324204886326037043880269880573130178850974930316938568190245117707011495243321045585541481769724395291427368191584448690752940924440057961177320352026393914166007167446270545018198154666085672919075413967762076561850941041774322464106659785519891287000153467123186808978112889269101896023270494524524011657369534046750216978393721599136629494702266400098149021312928414621224322532042509327261443230521081210073323259637316042041386661306875805972497536824633571552895387891412477994340452778606644898071666829454772927903391819994544990271628791022065978646025659658491373474529772689647276065823702130631469176656606137024369623729371975126199087907314801301918870582614444067311794187526345707228766107541521558220819929893887124870967240730851725839402643902525488964044578902529979675833610594776664318621348180427774470626254865149106790546213157038272738026404686369461025719773766735162914743067160450512491976174570753748599077045683005613456339211318120428096757388330583772576841046032927136216438931762915696818326615299410154877003395799829681030528417258732659325598608220378634411424591706454783408192390721466548969821189842652395225208296716676341800626760452352418146139649779049150115046960329176457368789972529521294369635131209971854602575787447112642730657057085135653599621470015821127483583906467287110406009758879041951571223901407199880865453563934780102040846612156544185066488755452705488880803699182199807016087635474219243542071684355229175465825373612938831272335645485227007550022984537421963578793999641378121867406111390870195583022395781008725165801593077058352475607996129024976347952952425885662152916954022893531770433018547212954646973593273049491647436553518347742438381813515167341548288268497782574597015691231958337234471103721057877558105620102763300893807310536401348696518742751596425077970961305134164904785479444798069303905680778767633302639670500381474127610480302211170635597725992382908003847054141603708269746674869258254168393559648077547936226438435565011899586502752717996008464524522515106239929512933661249534786937591985700671130016791987833297953229669568400313711378623098680034521755881246656837227679122031594499883985984424435954092666525739739733287709704168441968495822299336606980406868550034246068499024712941236290075099440936142897440304393679131605655957570913978168071662881264001209707824249590877528810659569283169708407836944520385667674201221061445451282646441127307964014943844745504692154179849482969747806456554557291832834163226031688812888467675290475819234017286728578585206100955744319085201069618490776019650340895952539206722460473851612182362149597043591074036910868240623983153880313163385775537383235562754666699240416591580299669324628104303423357073446474952469291629117406166502551371967187879525263490011183486967358264565864148825535903686502384736496894241562630270911901581844726830903631093167617247838960466568125964805013011523387610832857401312173653473422333247768828788489477878689584126147933136452896673884506596791382876399883862230145086162998589253254590220492276448342361151150956426812236190251284077304372504594294730115462410593566606856705148662552311072120018000155234935265157413028202912319212038067932405872159057945196246059723967865449002920872104780997582319664117942849591367899171329146478218195671049987126425355562214082743677638670778981663433510221320524917812382311505696961890503200894487202816454275365733448649299115713715350628317371782188977421176294297233290102514969522318867156168811658059929509267956620083372533140515647335527511754931003154555710518423865312862525938792587721370773121308033425821092838689475288899753289770259514422582792281178427959327985987270106254870775406490352234806766796394521047935399314089287499661040089192173285785575749946874566244569323099899345241783028345035812721087310634379075126428703037336691953156101719648241734047095892368808798503750088219529207493137804930057623408639633972403438348007775931706524683777794112284614765673261340365261518228890738722069907114624508401296898541822479175841687919846388345348261258167506202530408789233115712185635534838322365322901390091078674435877752894071334095057286738519357163363736681716245321008298013907598136870549413319743393749536155018633208451054270484610502903314333031449179069605848715527564629302997133442735493083456612026038481178991005160853398916782270427975831390747425846275683331940670625062871823427367863162760935496301979780179314418160158408320130225968903996293072151376169453992801615305775227427149343334897628279190828266887877116119328633987870979286933313371282861677607699240391612797136450903700099503856204590487527066685478782298420778985293023437893972286296308206491513153726198839470499597573995624824456655988426180884307800072502938213305803679899420425156954753068259383161938251334642535194794376054748224743460853613788549905463406853536606908075170948776036059574977845641300576266459710729806771383648375606065832067909331394471817287981153583054955839393040163988539279046780960928107119884964753212176136312769226602029596531741180308696212681064244409326707842381080815477494416348872737089629582646239749347445487586779597013182029392697360491394331195515848601101977720553848986923568952301618174558704500298866503441629018477208286506692806039923770299169920958225330663096265316866590341534268335256816129034274919003899066114175276686202441603606525555062357081257927215915279537723448776327016690673520546592884094551926428459711553801959780032918437976564594776372495685914144273796025839602980279619252010824501041911865583011774765173062689619138623026075830397823913624605197303430815162674591641302814006109781388487853165182065417841407505895040014743043272796668896020908798173092870981249197752453950547242078638332027536267034535577338502667346174885672217801285939189210655234096320095646343093614420992493348548623694610759686761092336383650438280772781057069117814953257475476153036314883224699139291200292175493512260233254566510705224027029152497171205467447826051861531115316314542654344496999670233948229918985734948896651044570918991398365161884674915265016695637288948865286413604371383297058018424188935535004125068180503218129663507900403334245921876224262827042882761500347961446316917405302133458424649332539692324407069919150447408700442661346862802581720376299804468237868363447761551721119782374982916205344560426704988821551961243940067175838548509099907432367983558403093085468613720653180674466505429368327602371351843248781170219561299091755666526023316542253128746921059940875738753752315260767130526707719646436724941760191993400317693998328703269382230965260681668478715712596979022233988570440245420054723321647490893229657570453457864089601874941951330036626197263461941260611636586178214419350887936820344530150028098661517021712139447014766453891293569643817841174091603312748602486766099337884483330359104305659879595214478481599010743388224517888885868560621977727751787782836534389247856044576328087197132113913385756818069434874436729952287637487679430258405852979761378341604242708079725540079307962820484739393002337220433788467848054435972720851995488162870072370893568804266795601579232059917896085103972920727048254366960689453775425334768942610509903136578243154143027767262863813351548838748908786034474939774830503153655995983414030075012438081164683213991107213207805425899099495315785176970320447731861502918344824374139366825676333555141138216190520038480167100110808977583148122820171151330513254913473593484895936961468564950569188410493406920968721712493079871877508977110290591350065897119483222343868941525735600487611318387918513026717273375078029227985602637949641776017130692109174673265770550668782519902436876294487492290600388835504216396571922752257754727785804041708955081570796228178698671763083023788176625874578034111809709120493826901440701214582126730185569344140838854835128869346212243106193436666009909145360033926980449129814834333202956493491342308386260226585049117477338180929341961797210454115466815149736805043164524238886086258539941688547001529862908053034017217414972298425418675621810875909116597073747961841023040090858880986957013831416027674650462619546736343942394085335625460668854404703421045902440769510611101859104828091624751351797369962859182384549241096712108991618701534771262160073663685416505004672673350772865895335027482162053918476513108646880266462548871142541180537070607927461917779421127861566363350299564188430529799548101399488034385535678678004014259474219347807842969685647622010313229670937186359823915512595278095391883584081392830326355432897789134707759029585690163636503902967635702669943677840078037945672190633898851214437660422242448076795425578305241203413191527771659920169640776222106601477341831304898512605376365009583611369357857747920447210964204787761403306718511683242083146425263749901707990382463639789340508310781683172336059035344838421631586286229152569541253810598409592590844777637384449212506467035384544190210204649480052020750786231141824128550828185577150537185825998597873985951688251242252451018999555071945313813206523675249505881762017182122009710131678782668512941957491210910814091749176587968782603829386344879194028606746115961491011240070501497582811854503626599829216622515175830487938235152713017621983491105639273607542688793203877377228844994716149888542137162218023004169625274956341455960298295555182033142222131213226282951620008824998891001968436588834723370981982281923373527335045684466942051992906716296104833025529032029195166616319580617400929183532215000388531783816585880883800909119296183996642645628420582081012045844883253700666147521012722418004998075029092285409730068870108444983193568110842323903373765717447325511313903800199945320369166779511596464559016925267601096341512124090880001830373377034191477397301313202619222268145011818863427895101533072495496046796051531304108884966529511640620521048132220194511541435457448326174893160590616794913212905508196228289389777749926779432973947309674366429264321749352235415453866258626118524562809741081282955447327422876894526656800298239544478231918878045705479205951242840852488448014294590899493190423138368493966258413403287716202892382475045795537787343180798015747030436724594680168396364191598711226091266918255959166252453617019851730652033212585501249614749559504136511734911705828841254395275444264844119359806929997200379728073198088178779131643994050759059532233535934622690722222357454290119110130107258993371687419243807611050359195731330865413138752038020644356121574597708913526801890485003324751646945746248531668802738476951575444035628760163921802517814827914588975669127536952369338578127105257010065658692002487209237186263960984679041023183770087955293023013063794759667957503534518429682260458601980577176540032096731441834239193866351549286714225295152165967228659325412552968468534653832776600767540286824204630741986855960348492822959150537475621753577289605518640411762536144320651550795567613458637534158607261560457758424409553948433173111438543168816321519449031115335131926171043820816738655746284864445054572311228399879811333585699652852025292006413138060109158136243954065954444304952338330305791127964017774148429433469790536276507588792869869156312087017725369340712807001537070469593456067541352967440596190335300461416094637982528774308297365517174276330746636273118924639694961701645300536780650252181642655808681858106241118482722730772185562271520020093022711947804436873897004178125425658218784599321409238360142638503047066397909188411454350939199013426183668910043099056988980722234786514284444528510651160160014155088965719916662541138305796214409682813901261745787595294388448876463715656127656937909849281142152165841301985278056917897255638157465388277464918625226476025541746125189029552837502788517366902547006087352170795438147294472331488556808042614231468502993866041238584019690685367916114867688863815580780111889534210686717244627587060828644450899218462739506478721769464519014338103285096942545584776695717850830329754273234942551133408425400260564407421786133488029229854649956523034859725240906711174367894288548655172532900483961697797180504697688764438207447972856639541112349929075956232252271347247162368919890345389674369243236257049970176248564031366629976065073996365301892391583463223118657056106322614908468824603409159617223505108522723786375794757120098631960655605062693614467644119240276257128598106753964388417630053478764427264126157945194905649807996909289244546504500499119334301449681534690260156044629193944574345706788424463908057382706618479523341324776151359294605703659545107238520576431816662891328584067158720179106930526811852250977943585418235659911156272687308744012542201662841460940723342269978499867257558103039769990227381165365250412965150720189273885635194920309633383350782641093599077566278722172464819873969776679741698927170483015111757614249719789785911005332872598022809084428256044837458317886088212559727173835852929260941712242990646626465425188111971125504219388011013416434725297369906062235498129800709060378498362631778242905035231064826818765093312383795647975816463006582291493562392910200361324898895156393874419151591299388360800461316930960564129871875672017316789295469933201116886954821477254860206795091322925339844937793062584469223432800719227998524663790767896812828832413322281126212348233947674621338029389484933299576487900441067863077421237276391862030527605688713655319420283212696357738269423923864668240133454853787913437212829471606963490112050538319799817283945410012904132021224036833225036554661941340822574507684996239991822954938375549355597180457300637852557741595867669198712752825820592572396909428716756358434574468419866051780500758705091902498575002232089181598773524062294664839829362113632601704977548600572658920170568298816355178403356895758962674549204638425716788910187642007173723052334693838165179798816749066589188488287516499047187124154302756880288661041442798690090662227336949696350926000147036719909845881513250170443872374428599952545619486854419673419594243522486063490662150891633725495328197169522678882456605692608766361546209723908270995602508425353640747930984811819933169650242310301967080938828650461730389030117185831480480328676970381607578973242707075495810508766943176959121252696516637165643990845125878384649960908091534874004460690648995838701832319606431753909190518227577283148915580926886369799171627431373513118265016533020155259725703540186587267104951719802229312783197240747226564011246005643974346831326926517509729067366710214410358551333802318953637397580190396234754258903137629869582845294541894692046875321325841290421464921685541659940905701414414513855257532054658932608374901573934356972862422189635989839270405284353927067449643928657479278835874403715803157701496022065040835974924491888965099894310150938450602469032812930023526343516376638552723254021235042622545050773640981184795393159990754866525022275729067264977847700155550712475609511601077140374301691587634359568570856620595322742110650384616939891181602336142727563547827888460633906015485204997490560582145062618480945353030435000676891313618368269352524018414720156001552377455898667273589967573666743795810285881188954737092046090776166817771352485873045667051091418621453139329852853876622060801779110869246332017948057790516124299315904891649694021621335254933854882505058527851312677208272568690365047275615729154642833784876123251425919790173033747268808673938252503955115721491184138110952977081009501302393993586213490830425386048942638437303328456804966978107616607167369936647439650996797782592939983627431752145596264981712419013974096998169605405939733128697403557285226460082633133654207739359665879913372674239045584258227426460978011645464669541675614195032462507246202646734119830191462490822222598524550133903178704428337850115516059462794728099403961806320371785570573970488418255980455624600990572620927152366835110924616249219558008576667317980703002932054289739001332701953841670627249274315535363661252738633138960698453545997895059837416635868302644697057016586809565885193613764842704148060790645473204287355128364933733396403440723660069689653880348276182525218294111010567780089974516948555363031169427419900584197255256811967248501723293835489953056202673556785012380069912335648728823374386047959022236201547228082361919503976562444276656449427762710711378379907197954573504136895579217545507014216440500274352293894108497252102239269438115829971822840688685974948087604958492535974456461596671917848281984340931015954758153987586833011994626467923363300297421095602699873247552431169574650440474500702223320412334218346914444466667452683985491872858849134840687044732421515287330611080423414015242140892154405009845856626899416368509666087473239047460543926888414006175104997377971712614592464694297801021536015679711046360814391404964228023196854938281768512763130391618634832095250093966944328588828875273508089515780056788125756850698107561169422151456077990707990337439819041783391643943482494678069692548853000182598804286333070495089134421057997145047162736416176739751960281631303434154247540180517351592700983315509157226010761625513379245878553038352093444768522147032894795655142724866636404594489655107484824299898004618459007537365784561931349387398909574821378733319816987251829867954197541745316010504662624231729181918353209985365871496544582288809739269947811946219209738289975262563782018908016040818578054518456906248955313834494491722979582638740942350523287716208506528093555749140626793164486295676981465680056070421585446804567454332781794894090755381274995849956313210895401095888426384108840793484592553121668848374260701725343464514596865288929321183656189009657755464203508383601619232728375169396527598422763345807168221517610946183072011388628630586752400258109637279913880550066106271362742408003196796153409174140767706639592651967473660434565837876222747167273784680459639944096641068265340098441727420570294411462823358342442875205040624694082853115417848329549686099055823248479045056968694344367497908183998839390386873328502479932160675012617530416832381423966980651224574516030219368662650821228495910309684271407216828154340965118000284560804090055803395929356331524095638427120059869433989497038950658847778221983420496363600799327751164857669849916909264630864136779199785889627912306002073123676633925093414616442161009288254200934681539420956484507469244842535199663280625558766048258931723468335508731815382461489034318711024655006006052395901504112045975975083229219101581901544478693615380631265861932763453158167763281524907629959452386210285542748499993791208607918596264547118613322466496741561109175440686962944764537516830455384795709698700909522487395591738274930815129435832282786740300050544798641800420880329162462047820750700448379386384268308832146191733871367769885382370381188930684737709921456418720902394883101991712854032512461223478665394325463925684600997947813359591178421983781494930848919404141734972838581081941059634208022415520780683364040089841408289436265817785302204924215272727618154712699763254236120159751894458721763488346561603223300782687983423331771484034277511758371079522492383264891727787140247642264756446664374906887223370018809244104136803735093728583253655936302667211575337930275385709462289595248825765050607043008365641623983653976614811779325583762999912860796403186276212725668622796877869888018655966880234512356043554258058371545399132473676634945766490013594396156813389281583727241320088605426754193232643783412697497209835052735965963854103964655497424732944585542453992511467409087560452532958859196461089425936751116239703734263609600180835280350947103367263073397022248915278282651460638835324840418393736960842224068957117715771707311855505738811166761447814518948010351713972683105799956425751655437046391394125631591610978737438652921204841781842450000639401210350339356744592156128521525246485862539715743515062762371497100837642149033463530548857740611838386064176270597333204619764981539152307432375425674514337455773593024298298827697684929111544023071663328673006943828338978285653252483613827166874520925324169618840696995094980685567527984676675722821112343726746796669579419811494333731381125189454124696536411589877304717425944054289218573611122014693045576910332748313829432721349204810810498828084147377603478455557122755915980476416341156356660006880065185104311765125898704678937764033370867412706935559087533777857057204470886572416666654768600237297580165856255260691025122490286868639678957338372031756397356661991793288518696943478196239367129406100941997008864812423812199112007932393262761075055090088311075710144495926646454768886596794519219434516232878484884463947570538183983911559692112693627723636825114381489973011794476784494961342721562575358757124842622566491278528951889486250957633295445443226099413406637290865691570796005850420508115427356541130634132505773977135173921234629639741177365304451950722122838173739905216444360915385040598956273411055751518722322488682370150878203978526050081547278556415543822714826618470642453121982420129599364276539546244066725596599789153899780985722488773191508184036711101451462441042596749800274675538556848855941183294291358729823005646704067853978980815085298352949136824320783067409942206196095894858121740717668319522707619564205633067270762408742119666834479233787509647120095531716985814495337552806653597011095093597976937896819698382333481824352850819394947369733864905536513271194691076115270261382573376581315546174551488474063728698679106347575834774477605941890996263782111197992368425211094728073185558615607446433265110707998681538992958306682090174730621900666879437096182839957463360904376927130031292631180222325399160077867066493999535872611355754992760260201444185669728698275664129949187109631065089785181838856658133972211268818762293092205316044765758322706174686134960949540229741116003743807663069998136406021821421084256828146864744880055755075714165429475394155092021406717359199027199401355796602166381225145682630397360427178479831019007990271195731650940013374727771680100845903814583520207144051392745853185733463274429194653856110522352375162085500322702358400163516270881463612908313067172287286659542300562915317344716468504300918765145678390886109170251008282939047281787377147392524123093021686389232459051563937158100494639081093704635008636290575405350395253088685326925017407063479357278132505082796080326179971209367475850353824888261457126721418413686640587770947322545248782285605148487631523940231701441510922063796242018129131003899081823621904221820237519927321322672359920101700755725465924002796656826936301199104355798341702228952083961669280562676924694073698608114601336077206942461634940763166271511020273044315560542080461746128422291365998927148526749126133243121754704000753274703365489354472520390377615284596340665458915410622316192378948109967058051853111394588097954577445993675184091275095241358755827640844681725371437705182757225845857034339534611439927809483688188426210876509654799992550168984984370675896008827798658311159692184863250657503511430326693909823165274366326767489944186641461053302681933923524466622696327999950341265485296067001503008584961910074313933059250252692068017544802031369038054912694619060079068432289593150918457818579659151416833210033750467488380789234120627275681204679942477262630679739989604946391736539200132247538710311750658244579415316047009026726582923994190871052149669863305506307561029861365602762463703951436731329829881545029437136325265694803979061506628319229298152148314878609504882064118403929638879910610820380642492760542999658604791726931641974377567204571427146727293238247146282293204001764866233339947067277044351803646404327969750146408444007611134127400724515253655604868226385692152776724238032604155731060438490855951029667239892231375479978506935819055170987604302084644200247030304163877291880540449157732515258435093712405122553106720097709042657233090627834540215654073177216621282465777902165632253887369103690698220712723598171879241402772918451163388040225222194046738676561287737295171271259415560976889473585719132068202753557718290641943748385412831885324950948143962408388537537642094092090178991994371376269869620941471916285873695130924035279333111342008569823093796779202829181668744811340568448365563951354479352221483882402113136079461174241363050053225274544652790414195842268193255408923054795093967681448447768811652666794630944227747797085564390345611385722719057740650044190685036022298842038717173512077025691986706179409137384533176042433231881982868405964017963388028582813552336215538592734924722948009726386862443604134644078830785128376898293690433492993937792035592064854330445090975729825797113745476729627634420882109220653170292328736426547043656120941639115024570574269286903558866955740873418480096254971311532870127363727450532112513002377375678965304289857769807751484489018329390744171103105335154795413352066089079064781136336581669206433246295672823527518106046419820106082358575314336397134536171787366086321062184485757023586921078991457275042846045505857491966933400038021986754630045438841650849886949970452399259395623083588682958364548040323486952107825139116781388058063878431985268801445571818821849857757866772688626781601743796829613680116356623275322226425654824840868771742143834144599121782579531579648477084556768521508476225550580776434551743304290476560088005723234941924581073072580941580214302978074629666913447403137754427469642133827664447449258298164881291629528833412493696445197100657216501631531610652573024561610971528593998115666619105784797997752169894275087429688989480349467269321697633040284883468194367894382106149855604052413576701182135368547414454269888899204618249204843183368028301108071274003730290758042465967483009171372372638634554778666868230388262885124198522714590177391015946625208166433782827459265302309527241639859517394577003101974384468338035888297455438015098000142759336977628276887505756761195980121548882176547852441147993136669185557576213853198877865587747290355621952139747549819684035456589234362735830009444907418069958056151843751355430819611366622164192192074463155724939142969219172133906379195355729656107973684063046159559987692354291086355288468685986063487461224267723531596397205428370663253131931424651319385157337862990865230973093668767654264437412066359837836337431715136639791571016898282957961341983421574235262426864131058780807027648831467730498074833097333286074201572901789840996161534059470103011143157069612468876641888528980250904621331537659006579995111233369459497435922696190637163262070611247208982069151325553980890062630350324968001674253314359346773682771838682532287823940645695061893324485392647390916115676846840957460558304894567693841623483925896459875894024533894074752007847453473558881906892335455729655339225870435899045936395075653305058544235275120821271762980717823156305476937249642851625767738682446452709442308890319516599373028840049063947306428048722701516398904342557164671364581211296220047180954480907895553867585497237900674279768412676135310916132978415619737492857187795432471626200269719959111069274101155337831614517342353085831233206798710280134988119647328235801151450725667654840277597323690380374753357518287218060073075942637753003523700323988118631947946054892930959722387995895440318918291129340491356399176851650499448504595831942504329530906917670128959749109458039949650235454713398870913648533907378797970108020320731815649819504831291248627435849750079055602945750637469730458774168981274488691099818481759464353520842304951229172997295070150594760697539959857184811820238310484779983684717589754164471730206459312047486734325959809348513725285388421990896368341501373120860801099058177656538784192138091917397381989729435600584322319342977330077918147776804336654633510509014991874339614112518690172945201396995949568367140102607772828564385765892735218110995545193874716964772448203622969077552485068515015274919622754444124759133010110303537545695221024797334233201876921605610484171824425732349392181413393256171824295868941171721876472828937706357797783467891793922277847827620984437235246593118012084286515792558112212159017488307962679598764550106530478957812421047853995196815490130273764287414839204321081288234580960423557195937452029469464437717545999751053038102091189525117303987699858893740816688005985578513940241429986048660802600874687735287411738321435322001948928300560274467678266140469891667629715528468066711736378283384606137032354172681036009406210120222207240350856231085434827786354652834575624465483185737717857406718573701364914193335269420053226700691673249517936865132877587282165639686584375382765692599520481370040963374350738986539833952178012645700330473932964109974862527694963348695363405274033829319107909344113533680760098166268577576289626012204582447256871954128231291194697211044742164019850801581511148774335665992447654856029609206670662372931978090178596117601520303189212258206889406485849487571461809258106872755177960131888118773495477408591988252453071292915304942055657050190127439295111862379353228992008035642255558474364206571362386978641461094317792416355730173959772102051472262471177621571337896624093264934996578128506338654702294197023569882136882865081898932827602640217523767998856938957162956260846829448344606122018981923202786208796541160285017912970308088866414614419343132429338846199208848783615127531830501887806527601672548160420123769528347169365553074109405741728447103410683114179918509246008329935883078937765975976357275866042058914609365235218660838882824054245673569929218468735322556580807350256527235719199853366450547691852605912251898509897301044438682946721410282706446441636169741459849251589335009710647322212325743840041645235096928225033055762692437112689752619376957437567131333451661354144413625894757716567866395355165586812843020000716187007442427810674422956175090159908977456820169516476766303605866910970896566681169272068644477550847785651641134878693065203018650741936191998544724328685663282225527510265629707960449462568587401531105053112996989479901754825192747023696168603794045901614233764160455697813120649408730917070061881486357739895559087130776390816841428783903944601185856566573757162697264511866495330806406013570733044008871267291442530293296515126041845080885289036110410446925495219503785733915684010368963708552939050277074882331815453650110668318830237891079314973997178451032759786559692209509682184916939325463724353876015332455769014455534478101573071365217294506671587351720868035622812076239889371019767809525509946653448408739284935603379264773124469559117175195920862132547978060434779989138699636802358069967161892047627794854529396420031873376001904404687207778667877560311669345994621859620629165370997609682000976512457366080371352721364254080548774041854011590607196921228954811221547127787155542995351880594585719598061352030641921131041664942466553424101839862347161018295294507484766664936670730109640764089340715115719304953624778520746673602747733681878722123199466555182324589093444469222063345950304184900070165896506683414941920405251963965011527952947218798458116855099270989323895109005683265292372719487692594977112817259182956918035984100192059728018176948115192675527740443107473328082702631164423818784145351318534181724999974462041767418566238095314176198221517101001106323045987264827969762745868759548888056984947727063237973972250909542620413509489110577720261080627175740319527833009307548012852189441877962028565142686609392207762020993588313970949027906505882181352744712144003259274594800907661513278604582380914634295652060332773690463324569486439531516681985340758632129932821819796594827240927383770507416857489668804743259544365019518828044646440189027924645896581248285902394607154158764319377495803984687175559230396178003198792546914239218287376146566569116124709047266632474277261328109058524337150503687935414899037369968946944058630009804194071616133767045505163695708082061898568296676782869441421092809308735041637701460122763204882654196904562166900725707318405759965897247383078065825839964849025496149541535560476086031236427178534689719637988109344126968804132599938395649248705204389194577869253770835186326966436583570662531540518330144986684921433796290733928822847185982259980635468591466092690275218867575884683208871235051820312466519861130826361812440258556143454404240843135992399347307604391994272523269730940285230202172252003703303712496911323405769816550945580198617185368094735070701963048319102015866676611381131212958596974557369986555218273192339180081220501399394390029915454842700260007854106442987649233394661945589064697689949564821560745073358772500615318293540618816077881567809861096926078239030152635443513691890591455041741554060939579761613671435665908454733190512812141608836922726232474173533788972126904375095373558839016697205829550789637771717003440292824293510786683144676558637282317073636386044909818910838585018245590174206551672118839288024525779974282902127523461760589368645507809173728568128939476556027347372592276466923784068103375067388257267123225272929081959658249884067990126941229571204527437262199715693694505347130876884069886721383805725503973652113453940262586541691612759302817616275910080315669290535366383954220094315873087759310887421968697341501818579409203078876440390119030202494557626858050902611605920841513058917137633872127152324711335561681610940896131693133546911296248684848695941866825540135100367493730529840870753549138759169216105199446923430297055940171081183808039949537681215009419556719494236225589955875893932463285801856729251965010820933656959221663632440811385307918859743928024152889986675824022943613264278627592150256120098176007996370894262533289155725570040404284019562080089896826304092968778367519733666577370452677602212802789876337261766027819758742496267302063083057143719265797522303337149232932602166650960125412903973703338106201025768929329472653135097129795269508897641733909725473035773169356423570186158547548613537595535855954431142326970842802662232809791513883644816441382745809242691944393075061164256586657297321862908403547284854190386875572374623289071293628830150192501745186671789067077907995161777043262213611179555809106047170232836906414040657068564641698264482215419428372756610936472241093482545935668824540009816735388347541520098029268892284036067339008679733711029565558241536843390345354904555443736591829540624202501123217504484926993364673288240183896044833636538041122136651786134939001040937023960904085301852454511361139749307828539684113270377991808800223173487548166185949398633277001721990046841352053016235918186758217815847377780939623942956218052677935530334778957022122343065970553343059928523330685574076205117927596843400049691078555601326431376323366524356208591714717370362925442636095791535832638459548195516128189865519162322400823906263180021424849788451207598504816396499783704855939559920988824277305583285753174675630364731240547138357976513215303490989680362104182368645736812606510376785885696507054176447166329931948145298912645374781400171361810248505009745450186642236951942284304389847883743918830972468074395697029119985624012375255887358972991602943223179871227253026864983700747644442845694971535235037108529137973981272959541223841131025112962924778101273928085534713364820567503154700685201195721237756076236683645186037229814258928427708836401155168677413833464043925814612583921720810972479784721455934339798673661634071642938350012596462425578577217547009929428901662217523533093138359830184542098483257045246958204061336859379644976940102642165302888664266849000819654129356023016320219798587551052039867841834290680367102788363041098364738672649655424755593911111342938865969005229336304110934396894529528250171403906323204885839244815665954157065180893594137642585820635788999831544992161599313571274264786996674739017850366342610592873191557890545243108607305546191609902303071219791782438415550057577516497048568042134418972283394752268078151661058660274449779135326387570833753709358980846875415742087881139557542852260558206881463457368630251294921415059922998779090954642348918465443200910693136131035237857718662328074273290163764285106956970999354632457893595298449562879631450602233382322472133340932272317078518616845988181922218236261402375325213903609905423647743404047271725592197826592141889121071294480446123117590700344333802763205777246897152747002701323648235057399683248777901033568286520007866324154112348288062457078087156872956381957858787335925555238858618614475744717252778920698777075663953234763166677212028701357349298361313972147764380195728146167346075620693426447672283136302985023679694910234494589008541923538763179618059849755137672215494477032535968030504201847017035190347777745477557806014233028069351460703664996798216659883855369492385453237460031127309369497753930366224869201924677371214817193223578170796910093060271654593467557441386698110390602918974042977161688026637326620036179846098230897560324695635775008542758035137035527085266754001444414515590110135842768576080353032198200307066856936860722651895331368182097586331906885278929858068093182709929238511147485905766844723156627480441211303174826437757080306140157437019803095613696101743113877461698237132632077716871840685234572801599455298689339884327596405724804689263058901307885948586936182139860132492136106088835415850905610826834184362184991472714119463724520164252558134712841847263106395002620362721444639702135407636627583519160444985074386251607769537291644492950867050561259226116647872474034236528404134468775803314371276707144596026260987428259198657389850075566861574107311796593656782521918022069495556304938124300579251971991241789105245956233370914820396578660035074973561227817116303345220958603883241096741848786426298843849357631504637512407227919260725514642394800993686956703765766786255116882517281449378226720310753020978123406259554922226688930844060924144978962987258917249716868236398049302019972241454565517289076565981332253574656121432013794001860856583483049751068823535192472832846419332735924761107182068632382314182477816406221304998875849692724943661914640327156579340736452830673154721693316528649625192473987696467093588883008256708444108038021309669568318206001101194439972353053623917095692025786577535508329085815460267498829848590507413096294149880277364562634103970725142585998293108954421154280854574514257950204984182763456011662976449598488086592016169369592566762665660128012217036050589664784417358276610882800077049781199880755274129840092034995856701949142061711964246112844653854398300907192407947320180298619509743452835375533971281865186148221419747627047134023533125908240697921776616036609242934568086089794544726753802483015311271862380254063650157144650165409127247370375767743764892372046300232772324758071884841425733064645126413719586412986826988903010640859546554467658515028193355181321758624198745103665089796718043755274932221351858942849526990697905147448447870500355095719846662585254419586722946122404676897462235341803686340901167325869646546764120551088457929589194370737050026627050256537292374226995465567076615623828518855240671955388057506417128758626748437514181430135382526219576246910841864314102885493164236525151298767179125309029831066381786827439516315873709525177296960657048225225939809224917282794862265838856989369002059833373077740547296526870096864494016169264545777149151853656459794512020086224983226872080053089893515533502875567427187905133467588991562238555857856739079066937840063179174147949623794173951496557886312418721492769578787465807679580481996470715950917979507114993279766845630153581629528551959010787119997367941090802291574981911295321708844337512211363526292673395317118868576729352639223731440565264135192620027799564548319965397192959243998818158890554108562521873737428776089616944327704302392147154760220711963385137054837667764434341902462274076976861229153003975525078068239209377125215360553624950501412982267572557545916196558960683728431347473402595107087807342373844538003157150194502648525754002964340394627601152886602552022290303373138751428743550689598070260539119748877281940300540255622169283402199087102920292600378145880579057098267186545186576891229502349955825977520837967788290758931634493419481016590536927476713725281982851705230894127281417471980921307938465785883206281863569830763941420439189147136812419445628815917002637302335639881266594182481270247956894038590082386406069209366600167131154096196369409965844301450929392980440075792664516038459170416356448638913815636631473405573837715721644645965981047228605209650539906453059102266470976389291780945582241197596559714729491844819215968142748884608109807042073272726044346998043207145432749889181916915805275659056428438417947451006669754872220761115712882336667191016961697914279140968859967594743135648483029796743193157300937854388518801405182803767844877174596687004254368012490615125862683068474436259175650064933092889673379833269086727912397005094560318503399578469665625788120914669399718088592831978815141828912899869202519365177900852868662039214309482510826591331081926849054104415530925456128337431776651235160577143867913333634969640628690070496251548181276885523802010493278679342792645216147863732101057524431966673223721621269663363360308257695368248889988475232655097320502527606588893323101956969343171880917037959415553057771762810567484885495539236856647845429339227099864051424743645143269761298178470328100422475757086350900677040440206307056760469530295962034909682962129720154415513972315758958114937227361414932356704496708772555750594521104721242630123082705257418289427581058741916590309127260331317557013986118588817983080238906484602302341087996750723475385171399398988115907272915636174922303514647054388574754903692312316490467133091456961691998958462054243129856365124871105520158287625712833351460235369790323312327528563052402772877465286484602734830418974802713491458699338596699338157692637165795122005364474265428546116646564139859121582566049056000865943100421261400460232119537878545773018948461668664906208318265586960816125674801811220068645407895232715152356263426256504893655468537176684769908992079199073661680429043042564323248312945610251404592359601877192139838357356042743048786944631890844267542954335856578832232737808182182130334565342615434107635186535575786398966613457136345284943443043132717724952479130340031123471657869474297068655917383918656744788699752824054571804252158148152591574018798640554190017421358038410308366170356450232758572676838957656094292536986401967736541859840601028868994739057085301230982182729575750081349201062022867070830310645452014565446384418106128474220475430486940289606551219552764412969657745736212041842386708818488146867733902988645391751858154408258314870772805883853949720003339222384141754134872323008544752469961612863684822396047068827244342741937654615671483337847470271185678592998209302292613397608085650766892046444691455984408789060344866356900604276390521323418830041695974540663879139274775831951467869067301182002440553125835578359994794646154759452079040327999120488665343457429593051532357768404526516438914245402892767217648062730796191289951485089572858335757397279696220491850476501213475467214447125612138325055712699379223464847404936906946934724117904528883155816916131140863029590253043513006176423829035168258213380413790279109326788211335896250076916117946433526081691135240875475642270499480982654315109323745038997050584181715638896421690206527710904809570081988516074512451717291720256302201473575959082430889718189740870826797045900162329038420605965554509473287386100826875755262575925456493689206632048141018369894442286168916091337508769347648175608829365516830833280405843488870184070937005525516953697943730342852770723988709661892823574739115490373083110771166809118201689649738592952188190552087929714110838372186167552491705846012019606862603538316261705257840165050647081575194341327472669783947767148906292297084017496322907497654303824944606826301725165910627099006796299272320940278473840612089221172057501091456491066451131645975753926957501618918658036581701857417493401471875242698902838161449393458481676754377107879414895595958423453466199350892614781456736502151623906214463567850547679945356470208737824407574154867534851864763140927020822252529938397043663588344596270960534590067429301704475976787916511353796709286749272114086991679687160072476710991674229356524565577755339076195954549883898804287326559450374540574663548134010787190310373810217526605717542970318242214767436291783907306788026759831260656414482117770651418983107893049939853285038934973751517324337071761119225806211025687160458426310118300318113153436639403720547763375802726742204814133763042141349038065142085492313015123325294735281735306441019764302516937641579064391401175196335361537141108653477950602520666011630896754601569882390991268046998759478389621851385279044838694845864872481308262984565038701415299607210651607954833100797597753313021081061664510294542315368766518522716879134989645836054142110405623933082657494200071977951608447334965098015572617820916781271731567218353548024928070016683874590145321157092717151817149233798335391946809608091476832336870542866519996720784759463293665212410662854295434817159645339655949713035862810888149153256161377072002881766358053204951360973755419586480039208362779673323314767416100082726144659002781756650725932100659758773696334000961386161818458871307909091335758113171123653403205768759124355905780169740372834239029984590511117903792775616655912226943758067820443801104355432423451153832029027096640929827640943512452246983949296656247374189519869205706403808133507092996691815940864077375738867506314409120638697237897517602483571247823142576254769089331309536604450416778403806102944251406687946236793275544877252513466883435539432593290097333735814916012085071735662867905180440245004916780546568099634610629076076689865789097084014142094174039646390381517483825741130172988156972879874986537213472766979920720630341430579400676460765379641737553721108345931784364416472529946260949305770318219492001743599099169878244303786314532154653690893920575593673563938972440273439798804605334219025405558192390916681897122382853510479026678216738911312660904235285203717065040824419952781806327251428136045953066840878667960910602559696887532433545645548083699770234592544301619200440244616820050985054530547659001148979266519735573923802161849478936461174460705517572014573350432106669050697507801296558222179354875030319875081956180912250507247297754453552137460044017369799912770603395405074892189797414934518219118848120489180608635014302579789758291652879613636320347427054996706556187685092780809100458188163726102673517091848730832632170698395381641367667406992731043088511626679794488277317708157415701574756480370491510009712873957880601456631558025805339592400938303128699498314424729570746761503584392682326935451568209111390737428115780700812646472002851847890936740963976481550770652653433618379306678968232860993805415681504337524445579891604662289506401190979280288443020685949347861827950431926180326799258944204914871465971425726775567495464793362802978344963466387279572360302234783312897682483970329280304793338249013766419613050406844481240429987779172389305489102476796593266578416788875984079054164955374057975910033427267864939393560124162006735263702678131673481852980710778573037209967210278087483966086126500583172764278584797340252675491877795305957681042035195415453344579450812775971736474117666102791638701088158572027578538720043771285658726724581569833676397328787563131774700460996192804364314052950036619086437369568010638750181098930640659674298893478285463493426663081728927845795849763888155339843261074015433313315299695348116788943855722248891103831706261226315173477251861252007324619597573805405740481555256642697962205346704950956210757246812382305609328021143342450183366872431629939023156412963340242529080250081721563013963865662216609956709129556425220471472926304999538295218905035205715369687971706069636243902576858110767475049724611692585785669185711839158286685648894671563214017467557534730057584546310058570871937882150635194046496660173083235590119136667198293734529134989722847953128786751925036284553071429148270128466520010313005972014205876169612679182902528231988309711256175588135677022863206837949851272937495981681829092134508844986356383007341811215385698198730560173525306525047977564890782420657699208520496775707006433747233311988574659169029852641409185107876514705185078993684587838394198156391289558648006279166006859669895004107641984354528803860888996051470064364644919127723317561847694178340457401311682882999007978530439885332252938573540174038809632767945026391319525713105123435410635436503700962297668930161687646704047844189474330979989301039478292943088759741267850278111305028881461717063725058989414702117543974706608858302655273574779309835745363031307771766365280689540277591810317610078856941424518534943324535403464302144342345771232356321141695615993700689484874441542225646670599433769151951864346990030890326853270517420030726817376927026226349574746499675684748224643589283547908411889334440515386792535042102104190315441072585698417104262526159620609438252293813722050703743503610363665428371625192126306268671691183503110959534911679006015956362360543062978022851942871720644322294986398435952642266177199258861288823725480870832914154693754184798339146943391736226028409643921479041163220528004460256782465003408529212583557276838224093451319711189016189167823698733656571892216827258961289145960849833098289836679832721703704520160794952727940895123751947867897933453464391798388147944368042124115761069658879306506735272034314059229200479438814668611549609490429128340239867923635527389179132806838577213847451320022494592902870502358799253922205662461825554924599162647877028151926161833275999324941503761638415431979776497521598826297887439348762338183848507189569709735533493980659890090280006359533383694253543189869003694578051676364753395595808016822122473525360266326877457817146406411320119748621843704564788122710307594266172149887485982571650698380165315280294820037309185500496561758159786881088894763575042572213091303808594054804319014953814185708945068792100242137023245443012027365697107376280445505664203388107471777494817952282212029851941456779150501998374043034226536856564358715801593094609163304309664755115348708038684674980691730621529971209493790672646539302152714189064492665266137420674119255822074375075242845491971128391997003108975374079365147203976039032092578356335736930927150823204682354718955672647296188434294336502326192493194596002542650024793687750455676768819820001557549640073920224194143818383553403443745580129235620089924428894800234929121245341037930827902399340683267947710092787448156830190865525963118254934095164231065764841796998441626720695476262589707022976543700758931224488898360586521968713472126054671550859550516394557404996268153676779936472119323419060588665074101815578250381430273317670853810858739767364219310346599608826670648305839701505058335544010919029056153823620819094015292017256912838509432387225525755707157930967199766828724147648473468660107620471634631833078698297598105109125103795193831817159618557089770289691543793133759244161837742646600848666473981119952648841611914410192315319543218527514351755801353281585172462125869875056915680430149340395454132147477925121154661873151858054654624757540801584661657254728584431602365973412608799488709641908625943839708328292524738535165790169219741220827929811928292297289485089382524149301115216893559348818482448612550398977360888983846554182153501330688720697050790017920525475784551561049235189984446144112043257977325506169362180197554265738284027280024070640546499002659130564209742736474648395114110627394815467033547557549196842420375774897288269665690126059392173958582695074363816413033991120430043812056531239553473963824228366917444178023909775475434059319941917101966749385089578621355918849611780675870518714679662704711565740428962718130880825420014012735878569538193216235033294837928435209781975269456984679343481971606728864271675722644487538854448710764415664944112134821959777942756480686567820501852832039132469284842513347366869203219000353164649899682467363088573715131037858279194075323663489872763866448680797148378417224960055601199150206368223752521934107024632916189257509229641598729941085848772786422748151136048303116723646942665825921823073395641516842612864358085263533189972707773462841541254517100265663634470959673634906406605190004190290604484890298815386964311633095982622094616280041069165154133516358431156666908201773531434119641572187640128054018341567634360273653411189119140919109502384954256086395135565143170002047718782257844458762054846503256323491136523453080455015309051974831261838140840770566122865992400326214748073250502836214245617307462221539470226744520173997400610667100605392649764164199815796070144996288967443335579607370675565675656402555904991282135256569033719260299943830654951192541824567672483907418180956305293368491899650120302408758666040814665270513136917339184402729333123014787661827853166437474054687962767206288433997307747067332569763484750163436869616004550177068164829543783853635906448008147699251576343910423947519476000937815792007080892354273308946056934764911981393179385547602818515419097367435375960914708563830337841458966046962553714628847267375605792942191570796228892272308905564738612470924598811601666332540234499194078226224377775602498498812157537012933287266998244134782534948424588235104897706217605329257963899097289766346426767835192317529554918846792772140763961400141444414188170004590532593325694118332732970968390685420153125977013098823226384627644098040484597311281711707849473718977206392756165558203105860914747347225351972288119643306425160976523201545085531381097086573914009985185165156811147965380014549316780865202479686684144365098134619857633140712993437967895783185060222186765997479299763801574255456066121513122551203292515000702880496369046856424937628219283767218175335036622682548581124392548450087103840770929318688085427410329711031807356724847371370613352885648220209029410886510266579443830025578853328088504956312614802920373896824371466328474866236883371555700197136933614087364693174660233133208172578373033845607915355627455968366119026447600340643614378683139148883991829971957375376998819957217733688616104443139193753401278143804561838959577739036889343487920563130969000727643394843620168391532335827636829526819981783419322664747533809982434736498469854281333620997185773346096792909166963501366843644961600451552172821859870699183366377847923038094397011128805232412250128848968864229412578922273660860833650446396261634643328314941413118971931381761477291266775461806263706153546578372998147758965104635655647051142836976740404867077286450765788418347663873802658033527868990462392473982701374683220138850322767683840161004191735659120438056119090290204327713486805103762706731412561197375699834102296051408450542174580124569581073960459049670964195466927066138016596150541621561172954578738147105621799238498659963275797466432355837107036280423447114743456541826142519399476295519909617028817358889713367633516207243619839401289092761591895960858438691522220335451104402141070541225049600679419793382447159250874497165576365419121364288783588062944543723309804314471833527323252749236687728778423852479116673118769277374027747234467620813326494265709164963876768760996987780690675201610331305594535225600598029948828336795437252620052694263373568931179268316095896678870979778171975508422279385386785134093180904064348760242936062264889501957765534606730151349169745421141311175936183229199443308054452486927236813934555054711623938559884453342615294805575689820173901227381549176806623596041880506155738908126880989838122598694044219185394016820785863944485093457410945126624531784653168931912984927714196322106185406197349299696550360312792310415905464548860150256052515473950250671254572631827899539457815598912396434835423515713696125212400805161964965068801158127885816577327017484418336063025984481164103749169583133051746273390670658069201773105974913727413935170615494390624076586119671997807091998087558085276063597162779042069944202585000849147031111810782673617282044482657722687133695438010132116565319478198351533573779659730122902768874953952872000548879591480038686257571423720781000511833463669033194167131078966196059417612365426757891919720724540561709319313019854081918136336888759356723689182750548164197686299100750038899774087087608167516452650066263602361553480824616167312020340892783986592728536543825258660605246682543022155655908215084562096639624885128093858329785776768339821345375522192753242569657828133936109095232604951246127573473178681814223925649850148052054414948204719413605133203732076379771862897999572725137908850547701366504357964701782923967758569825860907112406398944454453615094584722154058989979733414800297553969713479359596745852487688429933643629140279247122094979592556830807296110079172444066903118475132363882778982351255530612387856188583925080562349230203203837099127950843384622864470705470663696252146148815424764562279291866902885863124753728765037022479182972750382679331430463123606465980911852173423742462710706000129022690505824814039707621682304884810892638668380885273695013508536903982313060366062030119431461121360364894284278620859554607119317918335230729244193147772214896656530055950798260540337512439183705174990223767157908755724779673952452662589109994595192698487817570533087438222143930252800387956184142839000376639381036795122257317012082864932376302230288843610104592440409811542719859520706068099046564198633193552428198527744039590388731276818551449126994706362231440661886888276097980156994511213467016145138947717719152073199687378124105086312547324302044061811566346090580369141316632020264918874144640197005164921877214786058614894606296105263211253989831003860889189681770659987591222634371465199168518602089443469196972770942298180800710332505157282674401466482489322845438881864947404141754495995225418715399712457409694166486658715394540329376177898858433062850963679751746221563390434112542374761303520591142325750201090237677057876316113494117132434273172883516537604456003301613452956125085534699649253956477917776364144080685694300432126962981576774131624939078750748790705446113247194017407072404335465914494956215251626069508130994770511314619805702902547428097252161176693457133019819619359497356595582782620435732574327121194474340530284652229521892665309724039241623193273219235265173851936303852572726171102347445962803408695087091625436572154034680322999287771104116316904467083888622090883242638142935554374065257007811586830651602847769932864413467876958875520937975262758590816069539232576531322914730083352101025305474413632100680700763031012499468123830069254401879691650452376571902702133853323746843130254529174456021967792485254723993388167814418569849864833267409799931112040499390009766135188447319722982276658371623630173455032387646272866032528928797221460502488513907386621027442128057036935205508363979886890352060631963016627690843692538890659428499699561495315289784401539544379601235138691631446924798230635366887922077214118223219360885637138460560140840843525551909503096684374053592936706218654291089101599595290524463255764718627138213558926304760091861002988447829795427652955205436390200616924325187631249211403257567523309939885382036465276143723852925290120847712520562279264942442876889493856572312748120537118917643947941395316025847693729579183295210941158625507776516888091038142347595359451018851185239264922765645570985463707332155569895170920458188850375129779619620622809717783069016366175162565503561597516676083668790078446524547484907050371442048628688546971328350392962772021110652760252584408509428667797235578184209756953256086110111146425273249710601307265307772317894307902228029577366458071395550956696048777248989847308970138261069558452150987803415299098992112676337613777622483600362402944478845909513176075446521774142841456112051620969744373787809064381768470304692345419529550796012806081503282502142494946064614647584932522175475246752859826245917336645911724175369510634985688386728837569622028720079743875623305435209422219325536465007403462950587547993455744564131124657702051451317635245297859056661243949767291154704399338515215852949212809702035919553459192686244941559608433974082139433051151255982950559723856426243395652605717491439575021661469919589072791943476991487195118339390446624680380356618292936509778044919161850262524621698953407553007322643263157643461411839016698100575595481404564595178938466471011074195139521525571309562500743845705134713854588279197324535284036416847136500846452681968309622560269887706885421396464143135868377976528003785614115225302169801388588744064025333365736170598815131966799903416976579542700321126199057210885261124895451625863714287090329420095631181373485369007592149599839721110903001149838963398617100478344652097885618540914405216743171383507330088338337611719909264103619541092952497361668701318945431562695685554972518373180076642857207627733125131112785321267003419025587465547364837988516006767184119355168679436122616554164665913744574550452155701361640519380792303374583410714153312558259485172014825568069128608174938827237840855888833766048551156521516073267498964707804166934169583482008122266664775404634568304451672347072503341940187732988138753890117501016552327251184723235498034544343655906819294698866819623543555414702093089199006269234081323384344167329370049102890812068749111823035254160497279553246077174851189731211778056522865330905045507099287185588702631173368409515840981074921902000769115406747992492819959640316808947940150481030743941916929141933240503277229534626156097764451271084584732845210917614065887936679311755069238559331203589382522366915188099774995889350858475454801224202380907394007273268675310950322401263348625124480531202965049582618142137372872822915472704234645600083351633112139527266593636119703751639668228394069603378100105812289962078702939819136139190481610221957779835810857365208035406363677632895310461925588059292630758088176850991677089833923745669008644540010284141409199304553484999142827767228576502130042679857846443373764488897575785166206560566190093952187020272586896278065950323318102368244777492787631676997042156114392348770042301893722841104070278307861474640130614528810184011620936429780790067247136669511076620057082826224033343835938254063163272011617913157577364577225394951392540817192387113013712190305094406909742804153520653593978580793578697080008791437691747057627312192342084571643520532617175088679134413078462613791160242365707645024753777936621760351923967489622536263602885626708825543356306704165944462249077706386616382718897854485042971148989254555443435263162887716182758609861750620927153297800443484441400729296748488170506891269685833002017123940829628209432440784025946805450871684996415618020082477406434671159345362730818995447101321085468577004849691998440431327289394940082473403989085326703330482746087711045657570936422421173129239990295515566624327235318080211745137398319467589736510206032708487233900794128454056939966632033793653555642507134828286392313467428878220998855039700295586732940427611886043501183153920356908483748262678944689364323823247157549216081559445462439349267038278988660592312823093281597059610735223642611062133694685223673420165215984581309979155239235013827093758989414724168439948882866948405295225292380019291822603170483246945068630906437177414470734160482384827998242808071939467610615443737830868279918538759607098879561660104298838849275713913899880192186399638586175653996750787105168924312639859190900147887586084282231540223928667459296072605363777386018602014081623484454413341379783577299143747054723606278113836662670460574773988728721976350300377575961300424015275709596656052405211551924897585385574143618834190423486422052814374191156637663180699274711621003923840703209363131957850453711786877332993678443539416772282183964780766540381873540185108351697378755001098326107029877926140767991715465790685466020095302892624450850996095572036648889898668620590129296392651904433579442064456933666152335881125346192849623832419194929609753031079263943482691969936935393615023074071086585632038043768492411925859827641218147345459820677504319481068818955475221823894686675415267420335931268962936543010079846119708097724860675384792754908007444898368871085298284579759657215459541099407485697299912511133755996766076513392316818833728319731809199415647427231218967173678648291665404829246013891712949290765244284921440897390297376302983293195981167674334012050320130505861311602422618184374288574071871848136804445963649154204429312286530817200379476044656929562850200731900092139031055766631873437939125488662996564463171248850685816311774421394581903990607121061435947049023501232938030971036487691910427069157010751279233567459166097227630099340688007202135855673596384472011304323113287717202524525412973124347892025386707034091204754292623996011355759319040129691259078176475580245420365339832049338828307227515276610573605356068015113195258656428868351404032142455624981354436444559791269346320916337110163341669073960355652243025815046683238644196361125916194050813215685480492466962999091432768632672699985522742411114491711040909216585406449142379749270892727976309531428943635615622101292824455015615842804219773192927844635068017689374677192245160781825753134570242939674652414620365651264773753332101629770314452962792675678550732064454841306431877596864484098454311524345565042013270915607865269980797952013175763620405105022382433780003707792218047678332884610311675332831987632960900914134142543480135070175165420492201535288398592383744717545718772212333926947918778377329844072205280872772337839011075736682902142768468310468336967496256420368374631722474149441539284374418788825490340848862503368016980417682408902158925327070626935067199385642344125306961604124834505105053513160184492490661475956190210157867972009945648642710467918269932975215214626104620475128072626469316518076967747989420249586768279898566632443979822502330116478446267860002471615812738730922901829836301133015531583949203761804697064292296688380372864766117037855164909011817345103611401466873701620647705033993832547195798948006198699294367851891649711888713295953450827288468472997759914773718936755715140674562778116052746241911562333167082513200194456651071065574721918484393044929150632865799334476542237797336844004793952711564632154436960664003689993306686117702207041079305905450297993553521070546949692649033674826544513450038497862522698960293596848934356285725342974792606171419979361292212016590024406218064450841043511301175224740462767294841146733349656210001821164821022218947730522343595223592753135054918558627127108044011312902236826198236040972177724162313750861435666191649446610391273493272345943824545328104114515071068478582978399219988491050231024194287584998737830554504533339150285904920016282449715458117250275067353543467957304372272069172687072334564858501018765211360676039265635025072736806627983688286660403138270459526227448876277602907320162497547433684204747161096160916517827509918226837810441530792177052506124747832026486517615736116222198863208544061653653499262949519442430665621190977776694625698506086995564954797562126081732403114854202028344877081129353195599964879434772130605043739711156827105535779641579425231315764820375986117656531023109724308742600580546954094103972350758153351529077521093056674272210703745142540484675899900596030603931393147390270048720826980297450849504307125139931491748824593314096863886807431322877322316790218882828078269307212353493559245794006314274288674152038244266197733904966216834980413228053656993647910179262821071008285548984836298489861520071622475996983707576875464750287618692901795513884125778213619516509802425926270353978316925852296036880686228964246493556873332404978344763794565255454598615799302627111832614857369708865685545012863657901889758104634652527709500653243146091872784144278539188392691489354815282043076974315206270823067130972429424661680986033825520795046993477650155826709320044846254460871814888728511935559289764576812080574581811106445720521009113253352039733118635934974770990896315626715678733357878154746676974384973494025080180079177187104577069150378082745694383650303252659924994523754222042796478981492984699198560677838421358282315505182742508889319282697750798007559137123028253444866583577944315311599414899742583283094129653266740897473959703344152348015660115783960560172163532818339742578232267502217344747277003102753152440670476530954252643706192831827096336517809562046096298667769661451875891413620408973015036109391611776752581109949643539991732879163046525032939057009530592755672384467960457349832786074626901441999858437847765173427637068270850678838819599173132537112163352155089792299621374809992538318428335429201381938065100029491673810179613521406971407383342920244418263003342420256959519158327363997148503803489207229427966168481026836506751811814450437250576924040797269552091755196067259375595167501202574227053978608527892492469940517703559786459074410701029171246275502839662271383082224681508394831114640677926567110598300217805986170436916470966173108581407955687313447403443828525512355398780674337174184541693816534192497304673717845964740734058409723590112870471397324440370424761207806565072057396059979944382908407934333391486164988750173369116060770898058876529645059182880686069064103794101223905117785747993797042909569035278159622835248399564041788351853221316252632586291780356009595086380132975620995201945160873230860795029045220017799257972849066629157502516592793205047491476348886273715159676373158644783859575314340281775489052676304675119630632680070245655802377915852335310748692779260010144356186259642446178573247783548817757181935846581709384480575354477852992603592284994841753668036876989320621990293922158868960832141331028598952883651591685828941513534558676268646764286385799559454029022287444810247469852130366889832429010025074563741914780090642718224827247299773113761158289885620264206630613210870612764963356699481647433846429736527721282927244426781307973131108050679372753283811977218895075985741664821092019492671490032173592668281726989760390524200386983980650481282534679526543324445717461306030717822837744968694080847248582347899671436246071761132988643962063637824992731861601680208044950430064274662477025435821301553273220032638912181199296881425520720320104631921793284231740136731128381541858056057205751672959542375154367587025491537457640607475452425132056442570160550944237843054818559236128153296625759377988616016517369129753352495431997775588483817137835445550715491814223702745186998300120816274167699807817507440625863102011282862420365757911579068161112021215640341913374819012836810556890454900841413989101114503269908599714283278134989393862832082245152014326750918359067107753553705400948262677631328555660829207163604400134212119734641835578227517686324513794348093422435551440701086469031043719497418839666463837170335396814767744089962589881091232303739042216227640568366367859838251363860861610379265990822538850577127724206859681758361297014754832577067869375578615707646478507341149438038806326924907080115166704199713330242697552830607663918795879697950516038654352609520810476398784120356579590129676116904151918478064359472848711981996734512814809398461473539941729357296750466984782764876825736931273519704006926623664496531645043135725627043150544337868366017111045487384342504182028991777451363424554484377891099691329929346134423108676644249484168392321596297409997040151733879871072527895100255447448675325444668543960729441108722746193247270505058262598774874967652567227075813032331543658981697927626345266003307293565178713145271950629843228791629526794718400463298109177342334303410016671530998972910150036098239049578537250215654036199444705362024472659870880500933295102791151989868768667590320258761466902470311206087619102292988495881387329050662465135679903244363717041451707618400912177845099629703040727043055235800754424205766935632245259665731955333273799485452141640740307393564083790555465009583308751042952219194699962864569899001894153158482427080200286366283672678623538805051930820354745198404143499708990550862421709788942211396516753025336146231461337332312203942751569794191217359879675560782404159518510438854627825070728265851914470423313024690997552852019604140962536346971124752443521154069230253355207126434537510041729852852087519245113632077432782419267369775609336431074726254811644601881686904779397612422868798436603525251090321519599839257659200377339976074566091585161774117432345214305670820885999975317254027236476719560832923165595869749181845416826427130604052158446637656472150960778319936071520614806776067348786480375862035336981237602250560732292427219949301605048497127220268041791648246585359551596561655782785848539240549802593438132652810302804803185974697738854029216052081325965233289636513237609848533618036254875984738155075580646026063590260144887192048825894282185230691641375385419938623645222708035728479538329655747407578216934142562764371064719764175163567500024964880296878333884373933945850566782448188645546147425144735879961984765668286625875526459487277972965263756860399402174589493908948109851052637544274107394843867980829424381476158677870609138690200459710890467232132094632752172946463330671155305310794516761154021509748833005181103761319504811010935450454701013129760627637858727626768480859824514148416358755175140006895119067327827018151792205898354738104135314693296335987489509475299021228429991277772153205198586597000652717296873321315738845031243022858458663779037933658861312908805783360465433443905052744694341327183402277193116060212287335519872843896914037493687372308592018441814971940734689195392851206069433413898741255278861920087665851971033889539930502988777764221824164154539454685341457881322819902412146149474178763828376856290103693141073206463166709475901685534638783658393248466681073738157057203989829215821261063094494319678900955982826603449827959557849892784700260746952585511443883572036616367902456183311239949629206576128105037909364346382832321733384353959835733083815401908321437959555046493096101808302629043727249506548505096246028698748312990392312249868024626230626735068686663668723188677260080959309482358531398188859641110822524981115436949007546059591850949486501109171813227761131828596764907240275275075131849642897501751718152910493122027962726795386848485573893120203991785921166982330132625455597694600313094461210895084807172400177537623191513157951193941250177964364441143964584328752381305583104231345725359052630694162385655921292313353446783276731799421164180628594875443766333762989784212896845400322000343476145154752036549423010848133540941650271999278855798474506328429202859087980203022540093570131054634727651536913112329124114059308457211031549050081846533772017310760729290976277985739194988216791066127779238614155518466697896827638397078037975570557899132433717321290139835302400908969957132364251425918008538821262092361651162127505038485084336014123357121209157929201505401989032697175353187932875223123637708898092447743931710624598022287992349059765614574529365835666961947174399882426945551601375808521730102358450679129500529505392148635484733013344317070888770125764061584410366919425086859562031845482859049027010716450803160697326546816906151214945709145425297227732806685007878470278444553386635024850562014081821192391561092510732445777683202013570047269800096286757361208858616313545469804892918093278368810199456353461585887377395568773146473541685234832833008116559802759069883665903131677199768460231101860397247706586585983149641207983105084787414825587220180148434445259789302396254659626192526639533167137274876895314768308300814466423447416347959659429672799676185910042800474786439162505336729815449288565603860537037095284085825176957041612330594655272952946969346267368649843200955495437018305103460348622738505912308762068600645155541749979583284302294919648561347304819619178843395273779864336518324094581099953035280314074089713800403968437982554257820296710714556429149356733006310614704963350042716888814540756971641460504422179048896776840177204004200436200763070151060234505344770465044082917344580012196261214979959631820488581446546622746999690461181459333247354205275510237021839640022962076301890782888287811020282639150807033752606034770050722019955071556790730869289281542043237596493911517959885838150236251806219356714904586021438146381077747032025498453772115863764604543970715010181090129346692187594672376245378440316083138138542896496531974405085617225123891702721130280665980428824509219543792739992855381493614840942522255347109377830000126468267253076293803462117578726056925931559624566495990112119039727501637551815581232603572941913922745951747207337316947113909708503606493132026219872433163257976853123828425101170618958646276860783952993792220034274170766763597276828056638722577485261171466502743145542784857598590944481803201958573384622589294734219127136443057269909944389695701190723756231263610443292571778935969405548527729175198220349580482751603070753306071116468614400340361042054368669331534947073360851262265882991731127837216751402851851369882629813918650989332752533557434670821000297008461921808391096025188132412223305359266183275288853773664801314284089238406529063824606261135212255038913227914881100376052950982141799428714482332652449239378094204170372773460939654672204267843383499520440023550813337127749025921199920386217299203845670263616862975530411232128171834749708029776824009658769855551763637953651339029754583084657504519824222579616864109962773635874988060047773948641068799295089832216535232231970565702858435460870241523802787721764262062110012686560324775273755260817445240959044369863195368528201444725536678790534831526304422544789418436561500050673675100232477437241776773309536663918300976141964843006346772236027093285571658538681073814936571065391516958464560482637090587146162949844901171062793146054215843587708299316230805622407830879130211804588101143191757467960633549646330439155642761777185371642675276908078597884854554754158834289321478071025159195025366082988731599663813473540166677206961025491879896834230013698178754966480710544858744185575002489479125955173344691440129444420064777577090699604581181986205184573934915945963719038061978170574093762370303629420380794292469999244927181709137056791438541302212444353812284832646105884390543640471948070691132777956455082051082605684474674436479713447380503172553040825833370446454627186455402386233188891642111336699686136063733340491548653294507489335991452773472230230576160320103718329807905502517762726357772038702895354279423305862203197806389548619511256251854343528963059704562955898122081102209839764115605755219128343554168387723839911095270348013148091275065257197425341128907172581080072084897160661075874167198062063212751952835442717973219213706371503971313811125219684179295705807025839582257930329797203701840823018434552712934865378623946447787305744019464173414693487160614202143842747924620471895775601743815729100358680661929100645579953649765999736914967353618086695154536199830489683749953259014898860017578683569396348242999588533100556523375881274969020494048912091018487677978021337344685957891384976771390473177301253186176616374167052632579535464860162576610044950363810119820540399237260080815332631006039526106943434456946958200233782840718139125036755873551064128965933883036883703039866355789245136888110654542086780481069743935387403738718506537137021113339007561483336690316041544770512491802262452095655399939978242641251182537155140626423389851330421344050126845172317220282584672277122321284321029356637740361090365856479020597319023784018580724116965056239099148307131869180460148926833776093442275442810612552393734135192169979340535248443655267562641969736659050209298388342991791060465563540177819394041109776838203610275217011188038070222516248151676129640723493057538106342324082220887821847158042892927683043577246203451070707424184070744628785759835423222089744402852317437033380986129648486622336578696872072139558281311962395924353110782286186984466112373123768658074578816450830894364201202120766796077008445469549625631143159056492098043373015965696852164713676018243431175258910187375208167186725908273521673217193169815482195030708104524035229047978359878991186160907331932658286164430414715170683245092929729456511771940037124570129780169199542451465901448298865911684182277663836960203225951237090339535303814823147855973344135697101809226721236011364936392085030700882899849831049491327820037020511923699884588589870111150646989729594402381796209393298669189519676918212636955844596024209185713814721079274664538171025104015311481794220483014967844037572920501008329859262132536064072395692260949804038292224647556274975980957855671315825316923998325373323754737972965361668812035880196488396345612177421189706796867557621100128325440679499526084830729417096004056410332663349265581936009423052445626354724196886787793414678764002485087816487887270367158746646589600591016419373803643762938656432906279291347995882332255246177716515233680714142155922007490361786783752704511516177831325259489813433170515496402006379413096894605837816059876314097066162206948037355625061088368273061414617314452461830817328625499573974565511053851594848671642841169263145512245863829001698063106032938068865017497982891474915044706882846310533215960400260453371978173448534010678712844569375336066923222211799078960440940281825540422086815303585938028648187864921760870271613985913025019360718679283813516924278857719858268379935881273244851660794435622774733405307049832020910886792815754940124141290513847070605338627529539445405777535642880939584017469420761224482523404632271536121184046362403122287602648826454440627858591370461161505092730334836764247332105891083067557775262427085258954383429101594634315290238105474697371709320779840743783721531224711204897638801204026029945358015923087554370455359035494561281613475793849023260341048970589951933279497967012166675548968746935407299247410726579243985808977792641237937518040702756475925255631170211436100609991218211377878517287672730396122320748034967982235602830494287745782049988154241024133452720982243465653801683813286372124973631651853875012862745002371772207084171850801657707208871305629605929810682320032666936032011592699050409204722872158105732694687564168991993037605129154469882923675853977026767382404699154873869752831922941051902916063709857530005124221992484598073999300446688891072200441571601270884524862411259257105168440296168165859337998950486328675422007910242522545812834988917583185257770906073427268590800209785795921377934692468710807819769276490180221795637989897848336637387527707922554001320614724483100988428819947617088183169124205416799618490410123399444646732121522195698808798260456648028350530032855208803666335941639852579408850553269865522318429462869104558806440305039092284065833458797088286178182128284226071204943324294276028275722073692268969694943851093594340190250882368981754506830349343714004817132604842853542217964007479568376591703311964285638512488573291730503116658826391777565734292011910376466638527317628383817720849545723295186587197358287086146802388340299243179976038054275430272190144922119257688181823836732157088023222542727876521353620982333612134969045628264954757863893936548737599815969177606450626012474723647357819951491214543603422871879091151626022598668590224552482358775410993372011397196056796814681827321617450846777242247661555969206854988634178575499676995743578419668359702086099093811660353821148663075525229628433444850585455830955848700770231118730305986158101059205053354028157904081596136618850361190514328707404595992365609313517136154144820230742033512914996002723984468213616448498239190002765172691901830134837525132420975303137429369018369839695799523164169102491218431079040385130947264625922643113602181248937926216130024494310644413029327087147765821917696372678696787659667579746020562085934094709729072496477849567045085417826607850741451219121310136276358264392826871763472230523303197264226530019419964368387574651848281914293907708493059843342820358981718880701534454597861585148395857034184694033481269596268405163516210625941021804137313455812547080296070991522195677601725447591907020478439498694632993368088485669609118304087511983169781674795449688548743195797292474664427274910609482173817090809386665125523420063273193067464931386880738380316601511920217724737201688892177151004207129032360758235185594732173211581855204282338491334641900541555027856035822773073360569022339738355651502676060603730595465765827966103571243926292402831402791193647081406640856897956171007982954138546017692248275619193284191928027603069776123358619376921507650290163389970786521638920306030595266530780130297455920445890345253849369194073973533605846702960283797302155603098946166933582210953541585368186674577366001691663899720059100253531341162503401255510747642872146035350443323587853217737506434650338062564812858455909419382777587362677941126415805248982161087958435237801463594947071478559140464257836142365238644451810204975911312484585560287939169256621986809055779584541619598435195035630803938413899299851949691025368939995247130775435733865708592926481949771300172249691371676279601495196751947749559449634399061669908646735309369357722883272763000664126363274573006659394802174640449274097408926122444577359073623946840656838493131315778757408749193697610414077946498342625356596927620546433541923689170360843786467046421541876593610614102058732633681202728738728915167499252884453068145842362474148672656177987118047280245492689223239897713779070165902746760119629783448743379474947263649643528290436644836794223329478813205431080885781711919244300442344477388268626019890149672613640984609617838289591731268118803174361690085749153056410302526209030216186130806678756975905711798200949619276490888046619996543150133943146362008320343742371237230305431360395087075578226292427329237470762278863571929617145357960516702367432846830927182004572825293729887898322471430732591097886786793676305553767598317549342755961746794019136538860204938478478667624422222797986823335221312193264136340726100975729894349621734947178522823283761303407838532590323085228095683029000263728197822472922129897832918684683814675527656304430812429358579690709121823343519396241181215571929313267718873572320845410351047845746648427175605314512176930611512155308216008656429069505707539047228011648434859756259480789150323109892992639845912485232190571942883704873297851877136296213968928374882683608842495111301971156209777188257629334773801459280485488264486320858890867521919406919044448494796612846885167601060655733546804371935397267850073399086588620678737107422213166529668122369910267209267704391577728910804212185815572503900662081581218801215464891267143897156307552140108560830364899720140948750176585819685987446936254082753703931497132717261986537606442309442008295537971863671758380854757239684615887333745388877906962332565526827324995037355209168219203790668633494228479172151070146565389638436157353093522851151693480421214280283189234492965978568378659171276682414561770542894339152620929193930753754921805336431261516739771942392636972590909715161427602841002142691226356481654045627257017453001935644681486160353056336857205249129501303410200870610725223503864583277433858093078742300604939373285048921543846726467610968051151261665700548280454953657446500373468193599332461065571668635308242948048228347573676054091573180426691283235339242540024658438910814440878551691302099695294725031696081828375039206395570313958126850142657242423497578293174124512501740571745484620027463527644451259281548852282919232274442208775138659892892617481222171001720709287128890771437426467060230542638883576096386594155917248286550317814288862670130606186534465780021186674045300143264050032676394136581006752460556221359226852252475724649268828133625137570974869723560575878204541246789824049482760318368805503438518400258484168696953251065404930153377570311443462321972824908417089702324404943859971289216895691398344800395252473772391415139509507983392637023714232643249298686332454330380524126637587589109314572775744812206784667277789582950525013447485275891485813461942890023523884487169437056707490740260965187832803901179817630859262212588468084091958075777184196567080077103636159453748896980840684421339995261594035286531077401586664113891173885673459858919247660360659019226688499845841384111117989419986531027875517829069328206285967814497994435256883821841754717776715754803903670720973203328475689821484785197861889403900124221488162992286371401729456235829981918042542110687954649701011769757162325805759711659721969849004666083380489754962896088829162367534015611952078834927528479764300650644344945127809680508234273625164795089906444386485166216749325221118052986462347985898805483983939082887101905393413727890241312786450724864372444473863976951545046897250363567677151363225702091471149657759811187389965832830407216416821215549251502413175485341896423315498455510227331265170691394895289100147398097495698610556401718357877363317636309522723952375556267002133739478708913678908445500377245680616033823176990130692646406497331154922122962590877838234236111782155457847921532060751006376754065766853027235415126358520126366455145574486869125046928008356587598983256892940601402952067172868521932744420360603771081621181746309567731178340506519344675165022997671474282976333881470624396978276273710008877264549172573342085861896865579205390445437611029838442207836408722816018694404328928314048143265148683187181843658576900163388201631779717952315034242870377012035485675606807101186333051747706310641367884036278027630520219390457211395560132019976782376932074933613706422872114640892007998560790764106778737229353849237339213915912691402608263674697893395018152046337642443562019121525143426753350894643410773764165005870462847067591782791328354951174329441324031393753346245664903690163937212519701120802847130124674543049789239159143672168776677748534425214103018511535695303441854010842301996299619742471969761947993235174330009094655267237926204411591987125812069639362890407511324324810662703568359806260823667449407242624659015268907497149259128179002596556152777194853152781318101155721407937995567681449177175618653910895574639680534354121464324198412367384878620477988419257711944188691917964688479067294590384179422404923751079424515176390131622731169556284314507357877064093622096117600733136605362304836634112979353497573039062737852906754499126613530233268386737793161516346137672373405037255480315947045724043815848622916267950352653312538922522605818463240520916477796276961234611739286537992200936572327624555537658622050544481024429453524526529766113572713970290144485355435117698353133363090415171407075939885731860860356399675186392342386032474384817196165809228996513456585465942276062916617798614977728299148088743534168918502710652718315241821276216138682141004641976625484262226092948273600142841543639573151253444216149587910500793932373182610911298488102784115567092635324300186637197003357017748872563436177285446547002512205729194809034454059284367596529780269502990938439449517528801474378367774423516121267623005061431356623273560329912713352515907719902078345452620082132688055281743900274941768032473541262704748609580257223575365037120702141561906289511188730363910419325321788669122198557515312673312419874155253455478421819464613995810103389644409339270456989646931739357635633133928142913355799871728499646048068041363002495955092985089273018661778629705318907482984806981621181250347768405031544680180761837157643697774034552450366172361434374855125735968411096254448346354768145983608706493985630603064673306296701481078213682476759237920116012317656182860370493132476382381291163857515371333336732728638593147179882951710778690189932468889127366958854867095048672161781992849420084744171249676094957498606568654333273714090870206578912935989004001843564454115482813583019498154907849160797797348301779695013021526677187954259628912631835164082189278063223140037653132735738487183407352564131047446691490052056756970459114903152474496841304388409310340971374942247357488693880145227989733814434885200674394237380767649214674899605797247089561362164083147173899514619858976363217828757077195062219018335869809525423391150668035009825914828736667459533657107719347821957651492179135515806640925774086394463995172177503908340920046211481066150239281919033004006971442658790003149544950510897921369191913594633019575446583109392302071819686456915293171367087372190715986587661212526385267060163950821365638871637658996716591771054610753520570858200476775097557438263028881070293954232296855237917668568064694659582334865576474162254700567365342595075730559968721731069669409219253387328190768076470126304357788819115329195178544155708974727621403353156541066648387341654188506871370540277176600032676270045518129233492383027456730988097880206944920327040708056992788403450373249022949394348767280126964511890874660668969507229178463344456137033415625441914635454507249912135895074455339157623534482576762388020575103691508589224352246898919867537571631510115864447889241152050092109219663318754407188659019933975867801768278342359458836912323477533300673154484807958036769550416829406973289502140440817387255833994102689267634304943462698080995741889918426707230741747623084342483808313108342104021469468465620209872218110679455202258546295039981906005746405412136968074842419866132541589018923616604311420964900980428908884411143559831839769784333246077354264246953981202061700301187019985265161271340305092010736610101687652372276878789171043907865907819526045840519988286772983415950248693691117856436238983948869141578053059473401437547971909168436244684394461967885539931603728667742368863893159262259681908694414313705395976332991393826404765523856701516159033316296709267764423861399084483894670867376603562406285599656246587266502214241632911993957548285488440469816871522334346098362091103526168040661756787140982095927957136097604986821055006384728256884315040518866400738266296202790564590493492102396942108352965629243185985780481316351489989575923610171346657336607717897902307744533857726523512060990898445743658969856105841272000923912313836100778465418401484927488565379706453416710322840424410814022871721361801922148371165775567996746924197857843637216566078959424001728119628748499303430232276629283718020535554037392858551431715969433923675442274277682782353319232112019153748422771414424605823829138884487394811566888605905601118769129671299631303575543890824438193402647986020710575567378031558768127040178142559869229535004284649370626585669588546680175518210476697593921628080381053659388447608506065594788544047904466678636400529523594404243220589644794409224399484351082006588252769212142950844984136751864774453523910143824500336876742648323286059923449039404453074511065642216604500650655254425542194987308089082956965821370127681069397911396556240779641922414579105565146954641118014304526746929820832259236841843331495831109339097172759180336955639642415393391810604290043272442857198515375011322217110999763972461410626879766826956754690900116250525009092392137803728344717554533976783864473279475642869467752377663264804054154437427436754087896898792606028715858699175339599116721681828592677098135852224623093260915122280548752742716048318280931833159292391212278568560132537183403483963064501749883853680072389920787543843576498234659819918181815517668348270334376609250105332290600957913211150572745733432000247682508269703551620255862333557278281059269589566926593928931391116643267219767898248782555559627651392820551361121416240430501816798043866924631585609776951826777386522483342079410085859491751275227879703380990605998371314339181985129303648444565557771251317237745849112704376283280773718689448924346920420018962336177692723466913712581165184304550110922941117561651032964280642588173662368330664766566225606913371986381496487788717731155730021757865087038730470168812583730762111084022958782928019208085358130611390825559529874871585012031917751968678148045544373678251785377253025849972065407372183899872117064173623313711628132774191091782699746664607066278119326497703836309992249397603174773763265887087425299374536016678602769822022627833302187610845205097365746007993777346177828430291731087404822614919241367323946338990012602836923226256853795104375358346530288794667842609642749582465800491534235776864614937666869130718793245689879396734110704561627407528801980543042741220943076106541192552165349438549556016033282016033954939402236955190019879591546804258792456794806364317389641511916103008716138487825662627608762531645795635569985366583420051150158460166597300287082061996984918936891535629207479847507470939491371168052785491768701986374525044744604836824493882217081137486975764652183358664859262911445191472765911013844123635956559615460328458454047392931838614283271789642119779547959958724702873363333722907911174482211910851436384104937973770567975687169443340328088126173575034771904214116467255778406886244960992320341176048001092710570072614030109399942420801075711328493540690839181635431555629092983647286958277905560957591222600761322666106731161600911340910269311209936848112322565797429448962421758369528993688499469296258416054354449086001995192016523426165359301701489461092042208867096699501498404156716543996404088325269700593213372166235823530933456100220000798134688786818791797884768776214674900227476918166614798377034180642007886418723525556336580785381044676890681375813833218272136335670069536883317440025276063361833901575870294473696552571684302520976205887065906662994223107096562135395277702554090423279519465203578751267962716012438286198287622765616470648198236362103579084165679252768981361269285409227492316443970078788942015278619922659186225068482865552889820578751871836019065308622252845172037975515948425536712140728057257355108983219371544825155552841878954307906423522568614968015480344709767326789415521440894041611011097878515573265915673955578175183717480135513608605087145967772716858056491721462399598305486808688841002303915112644307357713092849805775104317397414822495483348548024341465582887984530488783933946876538804050348765352989822627252223042118103780824495313348486511783785865354599380337098431246137531363536267519729772401298646325885841915805634301744938754142064567771857638651007082070160536287145931756934195165836658170272009167569638075713063307696105721158362790252021047000903404673640770540639565594457199704831805254353396142228113791736082289945974294751633483248042279822569538843457140700862497970312098344537571741063381657557771700359072225168162451542404564472597612723081665597591783059722750585072247942318072882920164968918079094642466291991367722544997397013468571570762051512562959717919904569986554921443752038677037846573614066951442986293858509627273998586008637058577337840667566707051704462882958183336533349407690460307103347823721566090418066365462755998219959553516046833570319699514573970195524488273941936818357402521383722574147401025540697579635236299424648543687459927012501971567126370165081444304361016112453500271770074562756896127605942643365474289700873854780538554406809691910454439069830901379261940120666864263203870888347126791283680659405373717573494586526181351898549259014808155427446685109688644570515820331513546966678701846555344786398457636232212422019948589792552639731226132533124148129547737813787563085198155048597590880918441315128565325227669705462946557649674727557678948782057466314245387626203785907022804097469009298591528467587653214836019664078408311348728144967936036948274538584999589937916279706989768999169753521433035107975196970206604033505794225799946605114127371148460903274806700063192262446596802653784465715441918675384784988135096429485429129446043446997240838204847677745075415001846843469180013128950447024022906631624939370481424483022750774756965910309227645704312439315070760346594071671582215285010136427952716040962473524791827350632411668292049911168969948663755822220093090378626374606718983992928685530095981607712854222184662755391111534841424558112246057598479058178429832486213390904763572201094889118772982314397630632707875348358043088950493269435423446591661108679209983226383630186706983442881735028522698058844132452690761156684082648769793418757867346505454683669564116780363568787135571470557905853800133489172939516960827821641507992532222780739107552157615676667787960864516468560775577728733431501434922924835828892749409466031124172262422110727092291483900416509750098823771812790239169760625937421795961063984513373246142469699609266622839315994590311431073220832469656682817734128894553765576840713547934444458434035178643157595855926961176427919147646545243324345099136732212894213125812945226438307316939770481047811167801571353380067780396764519365448146386520499522782368259576558219529991419274711275165815048461762418794668820102568674191537260438889682078368370955365700568631659882150580132938751852397198459699026744126015568145009437570057595053673526889303234177364303970197078592677843490347810729277481645005220157880216491943779010043051985443922344956249118553607982288152224869495213884424306824172495325829810104431206631350078418807638131401293262135750341069570599456850011960858162643011708542824576615117258170125795768620821942862590397126916472916627179411315685989891558839402218706010210990054970831696931619570837731525115241126990440966454786582583680439915756664109380245560089360368529714570712627018002098325686033975320788127896166752444024576443925226546745022806598763272822588510593003501458623847574442856489462132024561521382534448209910433397717055503233543240655508602840354029521594001606409683189248665484910802224889546461817103040685335853787850107367336029138961363809070262082321736628662683191350809408608073680236421016634015017571283734950832618315096623977263242184491363200045693094413098612358437256458557678481191270566143451160013841811408617668618910728918001993230926232664282471243463330040893946723957653718230779750902280125339220935984405508049597156874347430055533364581549508487671445535084644400152951238252721295169767637149952034162490754392563804807673425084158050496901218292124526287971730382124455197840137265025641365119530705394386765348306507224953207717946772127129657844373499592887340700489901698363362612923301188271192368704122364267282096533920995014217397726284491333881010956933697828018920653887706325390372872232701766780190270030825712754568677027916237361083056420193698188904351679711973440849493547504086638494683546127339774330402819928408776722694955276912458355022541575073120755849125002394960597715738170346239578094884378799948615669198649879131413758519903379142561114939571600036780198454936460054972899455575250397519050114128977476000582692027337058889279740746062153696362952136343942482466318876596231029124855512480507337356107468435332633908812161785900042878240652241132435615678155814807742256632356215817095859042493023198406132646841961950646825805016901866669488725913684674695125451864031360761970714394177145671082206764276035626306752059220287563029650726724560942301961779194778412553687322882625011578802057473411365873184392323695065275443818263251889599278226109414974209872491021610161045038137619803720945000369176731448074918683341968753783414538439063238613841823483242622699352823361481452865278016995548502403498874174003108292163074013964505254348745301332723754942589828473027406843838014052159793866898820877734155089279016063909242658462677830308820490003287850978351576306508727279651105705612401863209179740436875618308058224781916422093518430963572796640841597645014861117209219274814577743837978906579323335365074677621775958235055987371082433276218348724913728481358868176777460784825629725147870599634835613327397557967178416449251477895168379030962183177918277687118290323548471968755569888692348659419366938651538593137198806541154798548172815952967926505382564579268068383543002088644568833868578122340333275107860147433939931644057795864425390453236826970253040552562693093367477123522619560159289886877947958686116899297380250359642771310797458105587026154472735201791964380269793459937103210714615686023829287680885999289290483221898769834677255475321648309481999736333314066238579098670129142957641022043452893160328704285779879555717283728489498466122323100571821988631377394492913662642107582720085672913899135683875056128594801415736975727232909719299823110028546874738615278074148259574533641788005982844783521943986884264066870389505472187085032061991252796164815221854390260026145566616269468615884530639965696420096081885830588997176839276197675762794364419267840195186320762067291754878439723898769392959466305027591288165278335048373425675579068942197203330920975677372080079398770273010235615481527030405103742724810693632482262109499155986341066557575079461715632349830038880055817288330354983842386001757455582194838011054177876576448596791897855563190520057081325896774671570742685821023497630279633835413560479845497514619253958374635938006822751954380234888082862240837895529541379255141766272221617262154232046796770568335523075231045752970648260010300794479392548885905530575403325485642192949670876684145345517786592994842681476040283744456945236904144993339037657260759943578355556748564874150461817983810068629954313118309651952975165458321484660109002132740798394658571356949784131755703064472799388047042290359963482678566517850904972249089470045804842784988082536203074546554201578369984826151451596612604127942697268429575586359421563932125969680434037314751981679799759027382742837383615051838905979346968295721449489759612042281075143993639044655490547254317160584094347066758277411217553856080723554234158546201205373394039147868396277661718749812749233588501774046051680618255111885539140171172841293919648120011752688983290232735841618834960853763473596988881228344959620696606343804786979164439633524897050460310847587917574109544005182294453750331394398006560640879704419360483181228931967943739169081463220508532951640044275832735427806076849666145028418555686406172811010925616642173398791982614809575472580990217947345086424529353753091151067598929833742071285941602859321245978987840320844670925451308888208575187590629442970319453792464712254819831087239999295103967884001649315530612393064232809019024237791960470809757170217593774885564304796525791479521995689466237387768804115310130831561627804518399648585016843723655411900279895604529036199555882607622691962868652266952578749775668615473740493451866264688841441032777514955399809547371774658488499489990224172103939805786160567518366048269364592430529402845109268429697078638604998227879941893210733421151705283091701520052000414758277441336309905245878609085571946719621280784159682459748054235607612091533196799676015341174120966272621115683786647856375025897344899164116385521359269490562710017687419289674292662375699589226730310023405338462955296793725938051203181963196527201914567971925012965938595034295855089083694636329361266886998954354309937469039844043818118943215731466271001355097177568246592403783513071944632235515255736809708807527797753285469290182538920959892705079206190789954851886560365598116518176449040834082278769329713855300173606099936026094392554472537122159541950271319532857977910196990882601322454106718318925723600473607383482186281498561919619144602070241275781887104512888859511242709235628885719726706118749616350657038558069614811499731775238141276839254043771135299789976225514484127889277060856686430501059047073464801114620671564159994032137886456052788622777571969530173110441363689281477545567019347988479168913511966996220689512633145108284124878599016157072884479205571877316472553495577358804807187236741695218989753843629321204923232362332525989694983124044067847537869150979130863624763452153241815313141173195243897028901052653611881936371442523978880612804940458932609622388767579637571979375357531421067476675041420273719786801067321704423803910601103273322614561988069687809144050064916784994838448453961083647380108168364905152497868272621489629338241382995815669115635424581544256412362590533145894982957518828020564963788909134952524073987370264172403904256618932512088446188834016305620365834944277847623608751461202397491801233386861216034823096245447610848470169297804174601499710526762493770868499970622626319909320649231856036133356213360682284763306309345251061207122835098719625075513256297709836473716982471472614708056928968669315547198778539423684311069373601589623333025614074314383176046838525031011805786582797145236245019556566811900367956736282669051480340755762750664023360150680926030468953834780998776641413684766521543703727005233357129457723071893466662385841668206843442662883593485571575184783440202811883756087400004999003886297219344271083518260861741807210866883046979394635941691638084154852927185390943469785270800248124167516579421380560641296199346716430690729714892690821790145924049598132462788507951169072727626187613488666434698464616567279374557031511242309386109576908184315419169846468864164204643992227606009418003152319438885183314393926889411507332269718549282759888019754115760438737978553656149792313849868057250578892154438220142111839752529534298350276494814197135972810942923484162339724301688121507712554655105895480428235163260011618159198868417016851204656237550147240091748983517257261393701397252635488065018128984245434922180151518633328913272414728992564753274942533107246831910098613398818255507791449307280250398776034942186038640402782708908143709116725703063571610146437410697821316486422303505249520377017631881593392056223784385713339888682927668074446185851294700037011339771292779447335654137406833673085309210296050307198728744106181526063670028928170187063229122284288161589018915210015115601830712228781351037003537377477144957538465350516092984504854933082563557846715144542342700619636364249369000511792793837344141432451427406689158959062369047614814814950171899967047817314165360882280975971039141019288719687666708844109706006272299186890842505480788358714980894298490567798786693131111955831574312923543016432441285267126253783298787934754673697944001629493723004386410451574708168967406175157875038898028865458068630463460981395191808630903634436783487310632343681956503212455259080844187704796956064749321842341503983405184014147127926165135252421907449348172469539444310076318210637467541025449720913567031342908258915580303516576145060054432749435313138970673937977060163018439158948823783699781845772868761871412640622080368156292446088388590558613383425167901721513887001317288774776533791216370038232946737974443737799858082961807360529385557442604914898929257713373975678043298457631471484407837835733520682280906289206605169087765533420109618839167808400686928435439052437909143342480575336644798276998709421260388976276373168144582361975140512702909221546010677131867533857380845244140532099963637572091644227965537239534086437295175248243267663888773361240980408417944750865873875573648765193059727970317804156115113513811880871818100457339756935350660854559822678009839611993800222192225555450205233109546726782571816011543689517595095296160619175324207613431521098648757715985355889023000016171292702410624520860276052106484854474197287409095034386286293884504297626040259655558546370219955491306615870783069955648008643922851873321572047493594805009201323624969671143695818688693313334549807618814136408883832075216531337409777615381607035624656114605414957601042363483753006771343576348854757723962789296888261504413510401276745163211952336238519467240951918542862052621061662103703724251082323984101390024107330041681055893892287784665350274433631364386102791369636110383710227926968883368655298186593602126112511316592283649792051416308236429152864974349188015241515317943094173468932550257651436594267170641061234044861941859224547269369997902591484646104592369224673511946084317640084525653306904493572662285454362412606165618152528058325336810319206825299093426298208585541000250257828400295435045228654536101622954018535687000975065784978736496838160374143640009006491474431449386554342353409242873486722105361864305495785909760551290489336473048367260710605393917147048482501788496595784407064303207138579492276711876079486138999135066662743480924661807034500524868729972257115961058369920907544948063842658873408370203892640374044040583253032912858968443790720829371981073268206655149582931466832844588186462722315450912900881375539879967996285508778358103267517325426714640160237640937363849448497250512084565867994603089010906054860679634478329444238001882742173144047888534809752242794880822083909787917288655747309330218655775029328895887235251803082124232170325154226842465093763741175647146161561746813332452715158327374590659678795391490690809161264284725899919349944224042074948719293932655586910097847821014610807918756261442562262125378000106111152726899952580742254483417161333768119961081898339062346206569635130322239512838035028805523037972601882251493760005719916804442332403428129375951053708664588459288989765925453137682727431180702801277415566145387446202641577076876709027216726928260111937132478840771114444779382499541418796503549089515839544123864019534063827801706191592303836140933335703485276439347699461859711520672570654483106923153790736688709457104041224642232884270261301432575689825479507070298783678752345107977671388601353053923601312037169632510016677436158931935296360694110454443837026467122871601534755684504597999972233310188880841060004866633959020943990965592002379372152586614228271101171266935122921898409953903705394656354848463363482149700959904468431936751265156872228594058966102091424728376734391739596644516284763653764649887476110646733362673832630348262492698027284449910853219062853291647813559776565286325422433509235961442669530827997055872858001169075364893834208879027419969099976393473081198773307001214826962838557003829957610678945227584592619035605964653605837450356066681201857395786586100295489370127545472868817889972458603227802461636177857278347725697005551126482336576384594185913594035915118598833230157076032542279420231831581957740068378052396764976336178082498211136786563146181186049134113338495076059131923681315054661642793488250734368854083615949693520050529315711793438802200890985100151026933043951962048083336867818983915014702513492494082076310325106754057833007463441290795135920284147284462315127938775346839270674367784185619574603773534962052093990795447291127930610301638285112224664956635025320689502010979394461848148326738337534099928043262887645779301115089268169193431040598393012928763325772914144399260713360608943824039598651594533260563221599526126076235455981073312627856705082544301720118709698125431400078131497229605077903979363903110023398646801956146966796474420769640627105179625807704848575498197075134794012911813855772488692137752223960837365540203962203563964589013855597767464756741170020021428196736773528571445296594469959080983115539483274435765882307073072368024475087915454622763032265801835842670142710902811631466258886887879137204152740081412581145704703992742699444658697514456068586002355813479151255546321856853564212326526851629651312147376005979364416878995999111872252491816115661449155535689214445220257156521833360864097635503948706896505948962165196948302106704345726524041739255463360501662233572791477732588432128567419782014087486953110255645082376398088604858135218522417389890606677542192088874695667099933287013082369818038194440845053260389358413695178248193620418489906211233095673441094053284383001574660892092594932589412616525774731221764902123314106285056728494951915560224225799569044784318961051882693577497836496333882151433230391517400854378290008907667129528118283638140600226079216308050817142702958697234088919077521264314119872545162152034813868693139747341527273916747157711862089024069110090876760463976957818774106785757822894217521038893734223795264538546519613365915347690568456873523972917984220599856902547196199784070798604494742392052698106416246112555438810738232529270092219389232462266557497939345217277656563928071640763901375898143951023727714626577998196550505249918744751690312804939645639705193714905324978333450316511052118274888262828862265630846274020274947430087269807277127755845773462340458700684181004657970646142729470523178520389587990581910665404379707785757003069036548624869387642541854954596512034075519313366621246158283026219859353852190520544245245869810920255289800270837911271278168519791836724899369221733435711095043702376156816899878125230772208473253928203722994283052475801071717110952321703713900137010361447619313713058352329648062924513807457508424025728596063217536778438106363619858225188360896459640304669864870860911864589525854687264264645773038347062415938101687564428902247226216687397521108623159860874019368685802498798799933420394006433209852427016268835236894779019699349697595398714901031002262524886000407208096434374087775822997840292007645740528722972684516754464040381405641778659220908405639959996096591621940494219746914561826881735242878412466355297572834803238872792897845625954942348848836041999437251718390161391726371487580580132540172980458019419478160165695096407599051603262422413744186439697509594428547223645715177325917557696111113938996261084076565804633012039453454028407846873442047022737870759700139494432624881456184497697495265634161605607832923854006018005284391082475345260539226663724507977558803054171421067288414808389921864409308731664411111313152441987901388890074584497595848264408315443616810971329582284665358632191414945863422645162129528820549788355522372098296656614095193564174075369249069833091711091331385902220355396791384426865325830514025825607263759575323570199169125440726196415921477241188719156894067186516864201933133541382507703650393861489042114043666348078875467346184499077454021961691195407328064904815154147423109342697996837894352364369699342008133911088439352123863511101130930164536127658327388251721202525228071917723044719903633930475524561232985186358891447769711102589047313410894984925790738003266773965996688904216860030872151550437390859307340037091507828381665098423158212658144403490426726749434552141375603167799870437117200056937051252854723711234532152876539062927544126134816877824123488659345505528744015344235491038281438031649039991236683680843328569552301264353359064356379003496224992625766741916503019312269830814379802664949943323680928204338537565242488380192047983686988398778630791229318054967014696472299212853741206994219018266833707509736153694769387641845154569822616474417787673863294255202044283385217147392405526427186341371357966706102115153374164054166666490591183192613688988840772903111508252181971105263530442115485502356881108785888081912346420171078065863855369194399030713175172635111819548685901088777169029891836682584268250235523143440752685454475600775145488134880552095140781373438053342425961366456301137662985435120133400336868891257967046152246555256193627807096606740869806867216396604912839638712571748004587065116286814867027753545746885054831866478275832185164595706704379161132973809949699767372053569568812143856178458645373634534898890468972047563874261532408356517922183876922317663618450575251905098702691974695088467292306718254802164471883515275473188709055743220181349963669596340026871155608251316555263919667826377945089952700469017267248672598917719844239489458492711976707305408491085177797054416598428590682843415581826343846953540137395989286011111328248846910468914058510381782209834627852019173715836088299432477794917144345415334713408328254652413895732277028203186760027184199583124897402530733429342905795722094674901327321866614517776053072239946408074402711696373866795722834511245365304784663123416868122124649292755430332321791810509451122684263289410850858714375321817583881253608411016370496186014239379255828720985847531493734756308833797765445400925356534142955031540971950770051816783189437497927895477132895706751933678641545906413931530688181603040663657313776261590510314633473767003262216307374623652005944349869484797787105516242372535796041911911263492744439373591057026658429944082748013078568074285953639768092289579715327663794084676125302606071515332032863600316668220280469139621711206249056908064682995526542718597689723081501229013007226241201575986885773818009560527803321258661111855255137312702906374228409481977966570063166406709248698809029440840199656802095539035355986956329729744652529982337588023421491652360111784487395324172657511549299676448602453665082150291681826445315084822331150192403857539896539538050434264221057461736734019946220549828729410182675910775132570088733976557347604753855312222434660572072729501786180822719818853341460993687083006013007384140124102024149360085492551159141102029298469470862982620061476626805985700656827541074928713605092574427804785061116272833576133304590081140604952658726381523961308529931746870023305502500248442855464174981094984443679429103358021941376416002971869578454573822378825675834300234448373233766188994538600495752413225275209424255160358444378954767189711628086890251673030515834363612926841458238986654456736905953065180932532275128837853971416245233979093607337133847560055879589750036306910534305374177690435170434210374505948075690836439856850930986427599059021057793089657077774834918574813525493292792983478406407356565556817807558136150144645592889069888749303636815359404517452649520030905608570047389867037119108027158797066607039623531651527931020608438698290211631614085062185404949692862926050526187330494016734060689992853456166510110703759266360612451781749583903432714889129416389702949332429669555840229017674339661107693232083316211963164289959722866709434559489064807764068858380768495179305895684290599549148576976897081926078626195825742081324068074880770959530915898372254397890242853908134784643890013576413135058643732467281230154383416250134334149019784789169017607523918582232169477791112213807553821523133109096725831932694243568849367420084351870330377772006848437915936921093994797860283121960366917610665958456839621333696425780513248938398944425340761515398608734761842538116412678489254064811614612167106532106656141847216132468066476882653607828840182562655687546607963162992458002434552166490969438942674123847611012133358339648708552375426739836435696175694331622007114036711988443714232448745925476070102199662560554789062709055889749819928683737438157045506938088009880186127935778332137289876855516428958484108386507249023359342177163611466472372319451810060048139024213445976465635257337544404023122902264367800711094818088791636994871002305441271472286450923357176632561525995829451587887917340615166862293670900237758318492224760261999646553130924641524123515676647874858527087482151594697349996623631638144284783715840064378648210823309288024320264487177282274857014547457990817418751985133374622196002269387066421099565058245337588227833620882919305062031219930105876812706027427361716630783704316623107308177157316319697784243354936754286890208279188805162507170254951834523655367507644092670763175601484692212275431058334137782857443969614203537955405185659776292930873966839838374815600467232596474772029608590210994838958414329363390272373091290575704588925796491154183357821764634473742850528271941275736601529118094162868879948721679930013695188518917087622293425275766264432054909663536939890765753427336705863142765068169851214762183818262536362676694608079836628758225544502098574575845571144876156587778601758535830756453032113460301923152616188167298239916404529946587844895075867934080421781378651403486665683006878741451443570729264716183379836098880489612338835256359691280234757555589390772759764471572020499823835691881683333294081150270662976544380648130276902019553962653833032271194561835288847688447101852475268898296840270422676098415841735052545075995281585797387165241960494109269474123507474625080223830638192731015021903907311419381806530231757408092262549584133065700088727371161615630143352408629231834326073868291569992075185549415131990935936986395179924155181033394389103973022060343072403339712428003755646694810867239618224304223129983296561308343135011861175605703775636519867270291237845086874817982240490712037159934001078796753931086944850207849461268053350497067556510955240296673794353585217862569081386008230929616219641569672905384609716572693073239745113766393075601234966987496417477927691793281047294351313675809021623694911577305065524771922218871243596038452062220320928223428690911151720354554215494228156405668440298562032014238491815385008252928642959668609380238678846832269711648558142637469614908858958944158321754075964997752221853079946958309890941752257771517451313341689511593418589047792716916518067102710817673529220601908670651013335538785405982571579973247697343981508538336211927027452623659302457765687936611411091908227560985383430983579068385047444905545381125446792588276524302483404022246429142173048169528289258768739117208648091071624504218370898946558458417256366983706741631437767173014678070216142243877565533210016212096829413888680779441624418771457458546733855590839826454848576006298731598942246402413139866862834935717585995302166465647730106747913765501380824313518457393263511285842423180035692772850643101315088291310334354930178232585350880263041646301826001673417376832139180579750261985211437773845794817668170094177341640273305566760496598013570432483721720168485377115356353120871066949770196017999802759512044601352324808373102245611730385026944424149592428498954955620938999580945226349011320307439351391829142386707667194274612178442590870563300662660979117160053315921633264154494917932571277339875339477384205866806221712907230344826324552933980228091410482847022308349886882240839537536638647899300496001334955782872686117817108019314534841989021860192894227405768305978942986092682718980943269593321232582898546161732422752077850759123498862169760652117444854847265652213611461148712628419697888313543859972197213452771114226772152318927424318124671309165767776082978999116497640533843974254534987641005322346489354692737476894486876529944098792847508477475312945616120092290577028166619284963634206125319768447336010606675815686310364235012280494289071660188786546549721321808114140797707227480985501187669176202741416879463820351647825200867671020780708450417676067259387016409810786115338151827278454469119506996103159686043556296100982197022013242405589733011481254602558215795105231644680829627633126113236411836472901793402303367509861532063064120193863443002225442193281043392214062708820537422101768344135927256832829755584772741131451855321350043478894570823035365265493984368435397223958029309542779262660544077286816606128781005222458088469069899782557453274984942146811640590703993023235662275841814643629376582692299434165908891904937770507024991299083278913501910880684915735432772834888111088869279161299992842572886175274319135370996961785624752959919054944464798017557101194405003333281909856425434394935571856071916938359410153007441838720615601459379195790025663524813484917792659335626597750636680118305278421151562175418904149742479291738951777869835435425719336793705159512200215244106398741959915270636120713440473862445869974924702153266867596278039497385580416312739677027694770120250788234926597641734699135553206639182315055106501543610500145763768696885612611385469869382693479542847867092627125892658549157670996729500439794192516614374832492510846035890090993749789578918455143602530543305363848496725311616662644082835387667009320097611811333515983995256470443096781130613241597081508667400495307005351316328446489006935334597730500879848711201339089510095770788370140258935706701185252507471954505809829407641826799560059002576440193653309485442165536798668301932172379874205455988380719356148996128068671566933413523617772018650433138800445516819646630001921302428415607054814673181545498404312407484194015663390093182262693909953660836059116560211948139572760585913769458548256186481941584746598020608121439971673002413321778040153079450241849661507106214233795436125385660782940872448610828756567199301613416416606782674869664557815841565044772868555301732908318607298145809283256847139604667288810285983459256334454708620779138773412553615946329106494764858961035484503198775662194749327027023916219647761782865867359696639628812148797111507103181075376194650110141203368434879465705440822801726036128552583954898210424417325978389169729082986062998628886478671691112994107744885733719255129915432575479892318498823862745014310613139894671338975860275703264076393247276155099353388786904879913724871812037864564747097679295077648774218894283997016247069084034764027060663904055486952414366846486692911032729807728786504082839965153060744888311696473588919122283961619221903063173020937826625914969548193657830911308510696082809180222941500486319766068239118966101345774275810921538680613166797572511439284846822843683360132182985678759801160736299013794600289973900963116483661758681429478144756328711870897119763229786597538289694332856923532587256904436035267056052029851999573298246562875340016163110126411376363305308965825591350037839499371493042097621268875065941994537101550553364681155381577100404075548357277486075134419070663991754782485390694496770468761085782737318847986849327669054592332569626629999711932677742068992949112838369035542327370637009564435448226141687645544176287929862686963767839672575888031215848993689618871419705538240936131040790975780029024101153762767428071049361526467277290160755422027419986467070861064435302398858450353046022182402926202596843456546725036840117132897570607135901706779721453572625881480932171548864846992494916051103875258519258097150926902910405456106420449037137950576208645654530198018748726451933576504444618248427285176450787210363733857823244876234665629177363224905856970982823558996474661688535242243066705044122225194804755168204315476605376022132785082217878696018259477925978568482168610608904186001022135831184939197162855665680811281095240154392069915207814607785607159796563480979194674995596887961318849772599409385081258570086561824679456691889540821968502563848061676572661871665569014176900306283688746306308595805733341025542219085780699225741202824254255615449509281609085940688635688246599222459353362920020030497605726321905239089525725647406107594949311936691440521380276098821935030936315919239663360558228737628578244976602017438484552835386149275282583408742776068566224900212202165659720519753619772156896184652573944457426845040884068595801154630606371536070355159753641049084113716482557258623184464379289246340484992874428046327359027808883396170923503001387081375153736837118982491473239430749012219541575653681768453359546060907914511357207768166891537118405133097890528118029741710694961774487348836057461898770651564920767966400713328018880788977028854350382955542473428588124026592672064561116463193697785151452332566693486344162078616739749968789955473246368123024503995902582543288223481117363489224544906660568965951321151667211116679246696225227059503877886861598041130153595901658684344579140373649419387302636862273423147679006189144891165016178655712220083632237016243748464943260254099766910162977648007495349154774826555672431574742800309831744112107660552086440881599491210368379638012049244286268138236369356913517521931975782853771682014427466522694065327604935689684516529382858659686245836771548028765499311597405372948272482328697986268215515008197635216617508317983734295112420591106066474442348720068608203590637215224416011287254014520273763025816358574602380761449433863049811652196027274317198058832638247365833386639410495494818097060923340835433997442352203035853513157544346566729603286481887587201626500287093540635551501754995126339248537780419588471388397720911470384361156383576989569950203440836124261899224225157322966631552022027864926659136037193993158979295370620580021226370021963399276611343331382880059514774786589336032424467376668001944739594469131920812832518885518804860749047619863378078440068505436172479642996125828758992631402421389113938677630342844712603181167804994727442618960120588030466513791472769257435074600698356142646898781298337864323012799126704658462589918697703024170543023881945434646651427503463084407850497984564089856893510414388339460296936334164449233997259468785788165830649721146147966287181509466261465349642084783657660365312493028288976544048563420990212603445938173348703325251100527692133736470120349755500870460527417218658358923834937530084729428673848675794108948236834707774648311221995475619261013918072882744656922142382897821209151195652722110009254705586035020537225079753923150807193348270056959801686617847865469253878459710237755591926336026264400698533486812426576571373224164588401953560972383282346746160922264869349293816887112774040272058094316320089508137905815534180357842436828798752398548163539174680957199821150365598179052829887175398056622492633226471881902035202817147130320416601480201519979384030224624214440902124134569266873173500473349253934045527588551495522685525490538766853513859823514634451831456947077514792532849893340854354015272514049763494706882607110357246905310427599490894101257324263269083099362360520950144138739263873546777520909502363056502398166050228204435712459928881116565248089117521948253652209891964115130676608798640952045802961358054367153745397786758667908999447464670911428096187646802738212360948592140846755662853328611578543109646762326974088117578470189849252730419794948381403173547942718932399074794505073464708519099692449878903267167163365542869493720904096656938742109835287261479806422965234440179433213608908160210967273336729085836292371362085364858231006408827679627680545250733921735990090609922006927488340819657549635974378088360072280651291368338401137645983137858033221863372552135980731775486348908397101681176162280478971503540669095572566197257050552605122445273351163141865369517925247400548691478599896600939203981963861714615771523905159079336666144174678416834276273846416970789333366971620236576062479504212263540896364453588373150628327355102519509673197766206865421091986072754653620841420600664877894532548383212591133662276286266844606620263382964505758656897231536602631657760017753082493361050285350793831992218889254088839955633687568371238035776099359646021174714239848428124697834141111771114140812088369416158923733196009478240788493564163826379674970773063635395041047705546233378480055707200971061128319774571651103385586645836448964532033897810321776371717339210194191485568447814708343084555905889825799206135037982971216346322989321861863934455222484990981053860965055949413708617113683841897994838551983054065712420360024021069143237966809121489696654548177632780784034012817118226038465064193386636028545393591984145307940434463350727497543324841815654757829447039409954445777157816789951674665516864447275681830925602318458477014273407611764479869437015894141509059037874838954708025906792885534166948342402171710433944383221973395720048476629782120915344032173615089398801941059218344849953465950245483473443392473644654963098627057753318655887814196862302088420142292323171958931596388326953231479549251063602543024016691401867084696440708525280030652129553193129241289844315302006412215073261424285536115517295738503646246912286280916049338868391452737125671111866038584044839389953694016011820580234418608553801771824597138544727117039034852509404812156137027455160831357868752869383572538327116626860222510740594243766756840551220112171131246034453209968071124071796337594012685415863514264949911401616338412914777475699628142369777644360648644031422473756384660151127258186502952487029887033731463746399474882888119677377682071008940117800499465991996821469942329184465774100464283288504036769395824776876483591041365507793769207509918723464459801253846183279238940210806945832421264285689694712828567953275086447621580772079393728074614394617849020476428840093575526375113124813803489445360679939798711162879119324630683170676612341105734321848259180774100194375240107984260117335737712658993953439842093227574008031145281211497612662217499803177441427583765271725621084627452390903819493864196921480387382022938399519191681511919692915937049898270372477019005454647757282215251731975108602936268715109802498946600829835699842657013021376227505683703239546916232613042955601455203921992121395481247307741191395778283264636530419764525044982481361996928060098089509205999998941452324562112455702421395826884908237125173790910964041545624374582987638622117459572574074297900646359831059849932027935812266186387344685982382681908185821370805223412984931243396039010177995396245727844191129371917740151294918248731887369566449537660371057539751063380134149868818995076494734113326855843368450604393292835073995949595606489957817717387501857349524499479574346638237321475386713149615842632940822004769359472216430822895230481895293337175056239133751443526619830444929576824263644881696505701135599828132505960283118992751564831925137628572791560501880079251942439742456223922884732077077094828766725369094914378519137147948613796508076519770849126528374299870955987719486750653971652191248283511055216461149400859688715979022736442541447549260818747261342473360210539573127649857056850186286026454977182799181543674384982869191418481605128522734513014237910765542969988538536282742760362590603244082819862244871035878199994351596184846944334595917938151931864547072330889530959441592638868876198733141529750904531931978313237892578419733422493930085334939756885390844083237889461063261993611566669262019943084366753550586354627684788727604149178649947502906137333231639147630410773028876709409589238416116840560873397415881236269262292757187747704190780548371851715843413667304561715632772729020059710443694941871911691706097373327214212919919537034398741655994513382174885308683124777358882262998410925395191859203266071111748884012925305344425674055368784325768006788797455712098484950359036126594395644518688870433264938935241170100914758406995132655320737423573647295475606480414032726912127124428663428217929737174323389406781430647888320874161442212666399014589998817582917855059584131069094962510510918296365096889287038099389000697932082183172842055841022849835411821579175734302032129370746942750179118246591794521399012393195800682950644875978710400386548619207592579098304583674526983458842481886545829555453116037942487489267067749710008779641624039070059974953489098999129839592418056941107373012289293115276747174755447355981045514783450538266215699472973692321486604506683850108810686245795629303056584757725219517275412236335494864387610799301773806711544280977111840858675752106342219658664839308517320059389829985878119884501757519812096643099400588157543794734460224097319421420765468370151920046806157348389448643433302383992413952676498023758098859542728627452103412286479292583461964696514380188854435746876415450277279776452616256467607314288219359484102763177969870465909455609884027419277481328748376366162649078913708157245650061557979524730602189902648850860347891586012065136904167109199138115566563708747145653754049095337956448874284697674772791762243638693926020505510421693979268095099973458373846326923166573807339052361465786990121357079907879717850328213874953704086540598935020684078542124310780858007231878341767590887090465172523556200566938641162552140221668423518996961061237133330974425367306957011842055989059485139189230058324206982232359496350473426052143461768353896147786284091107197557186655390541422583481773131466191598672352354199285409474526093760933393012535986188952283834678572438597747982721734983154119814987273148983998802415932323612346257106296531692771755226007124786819847298124658750394895087222033332949942982124426771624877865945451486501651992325984355555537436150259360219008441927778241686005479502965469997314694836833409005650269117751151450783102680625273652967768870167267819053665534682583311579377767709098602995216852176582750981422451959831595217750827016983803966258712780843972746595803060590025237584316746799392989549668737464064162208512446066088938632351540458257127447500405739142686841808726432930388802802992853741530544018502366193817109801643914542640144630232399581509029466940570664785778354305304774067698025682970216467736677357395422668862308330045144382335482910088133505694235878858275383498781009043393329851108024296589598144456013915078731974814272748798681105669680167670643219357002002314725130678120263723088590800344669035625544151396396905843015647257251908950776359842805163646383282058755231658047891803773369614627427090045112807093213457743195573208362673303726776771398764747185539994596670426328907343605879173603775039741830891416964567968913411670782923702294387178836050982683742017515956588069794534852250632636822823252543975375792765943825838668695986963873271551435361618746917763337124745580713323047601776704710565409191985420925612689411508575182776197725775453116538440839109742624315748566462511595900422582289988824573161767878406722028169621057075968267707079206063172813826568287374797038729065616755772252142770991144597625902109361536010948142655737965315818137536030376483334782733772870561436983637361967412014004347929436723866478128064474437033852445698888287066248748964566184076906425957216592270161509652950452966237246096874852818055768307418494427918260249752843055453495574770875046151037057811126834949676020213476143770034375116056298922111846900721781707346797249541923830117712799558883538478292040408181283488554914170186766158445148961375143905353435640677821331603554123486364286073769141877114067974686484769253002098950801668381048717934170214146833289868606114158821160641137911396542273388863420361426005991854450064166106453021481238253811968886206209085608225098935400266077873735100814758374567020988793790830994518086709034725405438682149426981399784939376422025273815065103051918086801992233289530978789210357140975582687592486382659813069719734241836249252710971024441364228906161372766944135392450465076782231899607229793557215506629896662983707612283293686143333739378652729235110771212447858632833298961080575331669611328399972709075647022315912241358399686621265670700111460952383847618407410818783159774087174210034044839645859977080984343339476756090612080978015261117076403413756902143033091846451642448799026957750571078374519335990760506831691165859371127114126398546189505173965837035799400847660659289584680213092969268431268223549553846904329024461906828829828355875125548620486832764778612677147640651969153560420702074883582206026671428856192681964175308826489831062516548742715573097336837644453785393239508512601594752541719468124224680334224943804556265960989054291502718941856478621079412109312173560203385205444918501430882799553655952260409124012059201725140707189190937870930091401934166294332891852018493839902070312213809555516527513888126945315218059760655391726616440865845875054993417838086282380772993896472065156121711227961270619827592109358861720582790420958930165133857017895435605661221990398027610747602285833611798192618482432949971385757883138576235273496694095695488928072781767151248858331391719177059114174086201165603924849002108709312295273987480593663255177040757447748186400708028719130080135001426225739150336213178569858017522088548535314608707098873929230636982039197227482050969986967969339942935378703803391431031556891371693603547197372041134660609886581311818058918345849703561000275067055037328763539122932786169590969526237368203338267585791490206163830698777923709439534334150440106266122976312388571449427353392057399897542694705109637611538331769182109804674363430343883600719040520708461097100920264225202619238210642142888179287209181577282896568953698647127111762201433226115294172090763966671748373451006899541079928776097408248925416289434994533628451187753623013960978773256596323156290414767056365056206530355760144678297348293174200276440677155437756124215725873389086143810837585992526013947672541057008059020146707275918211254432275975391323679974307408402478181428211322791018080522827701147890823796046551320394205706755278460170843465115881515236739199871928424463530560956301182959578059456192415079836897591999431174374059137344547651241091227493072637512044626070408002638109199186640983338804508116882041221817946227922658744700859032847333315085138561450545303860734393804717885535979721806375905639655930762637696134101552677484902199008265337649740443606218714608974114761994812681481073963916511796930914765155154836894065487429818854236794490391602828698862567690410170358837858067362941386429655859527683556237241748067243832090499422733526632936251268852555422369157835089837748613858232592821385098328896957666931382490676827361661891074993808612023262563342864362229174596185031767089641407166401371650096168732775707489033938926275705044870312992900660305696160828290187245371641306843201569540634891818166082645118880087171177752832662613602353074452966420488272502765718239466030492814689536147622187645915751371635240987026907838077837841913937942588408061430451075244790070913085590469397720919376490849922518369979477610037931088245657718365553404080639676693547654072090678566758710350168997546782253438891548036062003118746289163024386132804337519212988264425435078587006228798551642657678453044216989514581170959982860380502822875638127471965398180646152899236966456978125809032868722449551205086113527483255056840781599738904610267953581435633003924522835836959215700676644676984924746894196782908374330431510063088852363402185085791169241665374807558510962806550045533042101337843202804297644725018546021778082077733319047109788724507187325691310233044782274259711314840427924946773031078916637803995571641458561611393293841106105951469807418680412277378415139572053772598190284868056615240567783760165433152059891557494517101276822977112394182306378411228583982318024292580665167331974946659411159792287894361296679911310070102485930843370180803042868974440692883801478152191568098829029619975519590289161977332521188625307050434987411935821178776012343507349600653668593424743409848064051358735685559380235731917977636381488748837880963389329806796862575407009203621341656113327499247696146568003364677987017032700630284709486319665363840474717229476863748851900581693669940883659801358145142626994325538091549993096712907649072425683366074733445808892634162364376355825034293467279276098461265900389724121984483227624371387466503478918418953084602460665862124310951765972125099737975449225224128514893995470897325330942432596006395838969226366064401616396297459346740277298753102796203487776155262037060293643004779899844404713072948942313509335590677379721889320256565848116066174659263801695115573543426843658179852451549205401944217681531860559965349792923238195216593535114487940572870064884349747468388886003374480428133571792557283524533157713648904695816699639297123211425901304342687691436994960032578796727489399380561721841387585731362456672213834549205433008996142383495301781949481634770319848642704822590609368362611625255474501611517951204542741132077011279536904076285329274173680416095418489298550856456933392618713150768025219126830461307441939997597166879647496642328168963660390245001201623183378178575002468183010981856618920586214397918648196254764987311512858632342759028028210747185611814747040279019679254028790710833647245557281980978042587645346574075022373111409894992721264929402492779995211515296412754271905989467452381131994715732470603724328638781967429362176024807176869204289318523289856414788656539981741420074027373959740092233047104523696661130421377833810487681860808070905266933557820344829204594068356466143128644554202762623509808925710065942619424403806141832174998037532118273793231348274178100174447114303803834915129610849324548202285638671810449393598544580211471434674721035544302210410803093178121045795891574360473752135692971408842631548895699008459292160268949432482589023758440289400934904585074758551602274835218622344134060266745875176904287060749809531988654506644722122989500541559797864124904635566002452971740876499190451958284042861146710206814627211052149809031164991707210801651941387526154629664383591695170897373608797960957930948656869623285270253651820563418773975140566908083135893420417738266365711246668015226176408627615220381495251500812890230520995369392388369970010122373131419196511166974224632634166828729610108148694334792017423300487867645420751310098412165341908579762883135124016025185278289211305562131856452809874928090343878461325141107809544161588372253820759580145857664101678733044145761083906876100690087479443640805941443361485257840520337895419054720004132358763594390390325808369495109617953187986999921162862749111488730749847828329483198705261374052842982500553068156782635984427759930147452940931410061645021493184228285364640725894890960511126612523715237320073079099300383928115514387792072480887988709053180971146061324028391495071481881241132585045811312220883266652155534702165364807454181859762739158425471816365599356427768970811525843438961615853124292006495685789020664525837870942981907429580692911517916548685294363758716713062123948106769255587028911022925697620834190109607835166785304491793465682266939877280322960413165163486656996242283425975738783538532752694338807606407075540735084397299480469076967289826698078618222734078144865971066931075484241881799581144935688386139925036943813258329588194109888032831956604001316653898119497711292620413644701419897634475482436563014876961002056997612369481002136089911447009665383159313906211155475372664701544827682214227645636338316383371977471016172698199637633764514003350354530527377157631871329851495129858637133623746171774766910527448355411262669774810416900598152013120427277572026381265103410145787838242479432824209230720073068375133149866156743803920831618704834714635041490232143773386624616855541021002500735717378451926547053693839598080616203099160385685136996135635738369072818471496661245552557460613462966559305135158308945689921529296815149718617447444571634890301993424070215372927343541393865917772197805372120216912769322053556275118281707430204434733160225473758854089994032824476222576882728995458879301665493238347971427445883183987278118317779497971496175830121828700775661514253407099197632591610807329073042501423196156743764867540865970078855656753611579022694238537567070921711321052266960334023361722163348534873681905079637172421920142571191993837566348756648597857146728133476685732924133641187059587331862704571776792496808205155024927599141004688366837991972960862058763572628896585950971462439316741539926186683234609601461757028528138450132037148826525376994773047682836710247737266871199022146688760990069457350732863240143971962094065363567882533763447637697329893792751806152998054618943301507315058098086430814913885206713959148310683971345508681720032228100980628453287772651314144948459412448856589249663761306967166014171777330040259390137378484183096617251891345691482131788965133031161231052792532472246083492246552897857514439083809302023443440086337106514024387741232986742227892377912471811858479779048292258573009263343127006610120170316138546932603089365774934417402171063586273251804891684555132458439396558268655921029791430189440258652876509152244335773010672573944256698896809906210131183262711866731758978461336032834740380019416917818990099469314157718470683867214337776845935482490311994437039239141795194499210573044329410714460795947177893419488327042356539769700544918577023748804297290133801668810323242418473512255118778680809179629616445798495841953861479197147031540074070504433124219243919298622248055451192671426771012682326075633798077589474700246117489267624723029557637643573913251731688867725330450394032031924567585445723591267177195225161320753290859701769115887821692058975926013597986698923191768893603695532369792874010809544657269965061494197793367558865470103385572670064390510876691510830616349144852046876073852077647029811746276784542199992838070914535548224569537508177013830642567265372426582238935801390378574650224429382586823835133996438577035255725844727791355672196862561691879711806531739387821576691767105138900554275452923548350985031811559159088139884260713425317297807187271234443149120946947634450394935874358422317746369049401668370743393782295918944821636134228287661369035976694044986789359598140014862378347623510874019299706590111552750182164053233059148830420641477083569295750837931784048575239282994908228082641091622176556513653213423155097293478595569791643688981815119974014659700863365262204563784049469868440578904757405945428741279822640623324432745494307596580105907665761309062825067069162784069841392970123337773067870883858716539691150224559446619566105359749873863003165895638337174104019338569926387396963879964936668185543112793907688866822915801856724504814593307402900812280253811576042197500444060182595538773666295956003819621795696223971438231394830327109720413270798902528136658420415525187332632093499879369291362910142098710281682925655444750827350675075848082072159765073694889694003344387038413294024080961092026392415812529152929843446413362009983266054197917317272606395850976680001627967182288005624499190339497675820401665977173501594662203744697002699879316659356783900967335610772465656291798373280950477255036080685128816380263481548935087023413986245653047873328524550721910171620422500372923567294331591100422949012805489288739793032136588523555835371753026173026867452364074352540039618916741145048700888709635649120670944870630230717431992488166097949594972052704296339341594015163434353604296581790623369264592291218585900815660548335258797257409525159490024839959853532826359006415448257071726087448727836582937599931386154454965874041821145581985076452954202933180415989665870140449045789753363811353129357216199419568421848526503515331783103629630697342320302802975445504320761246224383717417957927449317455653989025204535266988007186559416627214014379808013308664447708126102694332183293873877427616678283328393147121525584659648981060680321309514975212524866554080755233994527968517145697619377573276245993741039547311902320919140164166286289747473074026363419501298119066280319397401540423132496061925750419034543792051175579332405557736599500220516757144658668901764363662108401822760964486775947993791251408616918680540510244114920731019661983468775517835347423873044182831822005277720102827370806883894297284719104381905592606199014368325440116627470363905012829843489238955252067218319196177204224555566554366319870440187999732371685047907168131818010139566658228787008381285253306098595701544736591142938242972801902062377413796260358782950495048708139104952784375015349171395419946584003072495990169938215262317813622493963031396262130233630668464446663745752440935141601604794210846355602870581215576131844955600387079006039500616168345671200783864159601333654484037246741626969487488000411389189641793505191354445918596502706824132301827652241635508161908063985010435708931363293479888499494529305808347284068156499457048542076655025657155845208061876480519674841269235690112462512411930671281811404697466124797542543882305770690277979834549404820933126360994795879235362839684982896710399212772528813324547005286828417151465449533374141431282644275702103399950737026278344744347166456991161514680516647171092414901598044648190766026920323700619175080476628176899919877308842131371373908456627280660156238367305520839154370506736452362358924382397488654475461757561494290159738552587391601150971950560281767833612490118000501234227925673503201816561799239006390435547453226257324767503314722959294706361516484909171647916107378138473405941291845818398891758730777443840191404341401602159864371851060936374325635240853337602399389555134970160025720640717787155604224749809243108067283564728813957545425379285476333814645694321380965911086037795887194304929787961097313529965166592287692643846399710886875050592799545659303352503936961822402892982470038150673079164527251359326307961365161928295926370683262326714725400863584963868423143717206416876634703663999885893059127678110151109739939275999374413114519176035548888825150460771506100094216398426188004248266047973567563910878555830733589817871511842289017587366923875237247040903546274340850057622884277538828080942513087165711638515571765366053510931694533855903709123354918197614339660151792490461191911035524674573513155299166718072469096439223914455829812270545542037244156225241370791432821641595253907397893349283090117363532488145551421054426068436939256679203297932250237253116195208614786757380264655553483545177915248971105714621871395382923115605487693008211158363247719805779018093631628862764309211383241133802165839774999512933219821260176166922458229781556469929481471773657884589539945289031539383779643244252316507940768765801372010132953316214195808874683459011354683742296357401857778951796378732153483824056953673862836876285015977968849527665848085913225917267325608821102249437430374219558981459728338663190705037367245615193379776966739216843227298362798459857956746589347579073298785529504069430553059766590003192202247341727685727921160713557683000561525892577386612003029946690685561281750634751140685342410904543006273374445660187859662954131787620013730639567689303304803363140533811206895481363208708311049428041567999411700874021364566443128907719600350114660222886386799092482267560695175254773411876132369680717447594093037775741844057785218496509784076563806247731707634229162296990383323953789160312691179446124943362620754851952783222169092434909650177469959759555380904143723463497320720552429248730688254842266588639827232227498150707281231684797878884231559333896612916216242355954568117203295894911175047234374025301673187047727505889604015056081956761698765354614283475706111688361461849327088622824155215176585183517884429167496949288347567960635811274471333571451842478182533310922894068525774549760713234503037682767735614907148770241375420031928359934273146896648192352732122311611108173074146211509730628995652447386822622630772840732129754852429116653518695138713049773304564240437532118682523186546651156438355475902644504639392512735995631351757575150171357601297811137706564667548896655530142507940714273470622232063199161218260182187234674583391913110826007188484450315377296063126309183575615453334839336376924387648507913208559092398258897982660633287386597326547228843577159073212933775503592460440731752675347154837053053205128427531025110717184879294093546054502846728257592568234852613285461233065684393480889905504858836076200734216701621606456087078824920822602330567875527725118508533304699115560441981042938022292129286185744948394967005943642653550974762001663319373262850468872356033712695808879946017064076440428203312125257986737159137248729113469106260772536590796992958274770546197249822596160222028199506745868269026684580332675911811885322036399772600322232211599085895388955957009922214501607780647532351364389316392044839734772293822679179932617439908875285138251147120676738885013918626091214591087463368408536301297855541079607689030939911835228141284228937448482607978487908139828550705242153172518656322109531881574739846937893917039484405025610637280449524328602437524787862680013232305334469950771513437813975570787810599916692633456471866408267408050027282849871197953749929552097226235265178120852456865792542457783461039970227547164883906180979298470790338324761252260083582978245484087826487743144298226449280247138152271904617115977645945576672529266414296510763041524887973417330878136262500899634389032321625506425354951466865573926852146743512927856681390685562764324261370516918178448143854449279491623919910397252823101913930096850797849121545053260283988118152335018304740240115437326111051247536550894523988016062684176883051149958118372626555230464982364425428785259604318796689334766737040355005940740900142383238896426306091678964004315147875668697159352864087575905664616227244422847657465536533274966668374416494623828895120507635315681226464203632634116264087644637538041282497885692895355774047193426677031676699800368797393509948825542194144350715038435565253868011872801362869594234144392901433760592757100196085231502812915129639052111949869765497284907732024504601825263702580789995934954518179778006507787634560824026752863436911243781142567565875212243166897019776058221758880673320476777479318243262032570162620807287004894250979429422442261971989344655622814671177029018413567245839404950630344750192636472818914839241916637689517388133057794760813249798154525443612070667400526297892675979269056628532676206626303533897758767663332904200038856784379637642203530557536189589771611680699157700405906300596231829751286283353684206091033901082854966640399759213352737504625979721267441467878678640895834510325262644904760643483796841099062059183071850316707680761672962499369171245977791146147808548345727352168640538884612730010090115060505715396225810107145957106753002739134300650335540940586856346290099091161816350388384448185787436090562044451729149959881696266742126388250441103079908797912441893348808546746141572799390110826864327994106985544070848750743593726000807849427248745344535204783322847946289556379060609409620987812853241124821534827643496907673565691411558744194745988771022203018691612427091654190183102516023717392896138255358010289556252565029832645983552997814083720580063319208279746762307949129518745913483993910190553240727086516506572919925440495000469479136600856886235627360549611344516102834446264191761332424465301820887751707675489148524478778207778408226028588454367491399767982134368530504973336161706099805026775315550024297207477037129796244321164877290860382920087469248399671067920990374602093793929792998289077581638664310597394845604040179441121504801725922180357069521056511089078503006285444689878519307173629822468617182321769028126291732529380155926416963738836070831559513585073735315929097626868011812015680810135165357165487970783822358133807686025978621651746520087365546257331702664797334217521258734500809591278059000750914025995269131208210268320038555106832263744220731599982869744549369682018708464412779977826355099771048729167303063807397993239039326121301714831231844751697316742885572875304862721433746777068884059328429231738772481775976026298304409933929654513249184361298138922661433251882754351641581984200114029116091702462650819859164217709316667670251008776007299568714946753026811379261460649829425520053098417506692580222178608899883987898920811229827402089226769107431887635511219684565375500932621074088574011856481070977620133052833993467159212185229419522002017106115494899492292344541497278268275856115796843387228910092933708803256934984313569652428423013101647882571630572965906400672358580566136149363549321930857005082264632685071496555673998551704560220918945026358269382174504844743782052351307259910215194681045830215054289371514893948781382232590788863972245455642948075771116494351230118554858107058099242064835934185631194244447131652498468706447618230767630217343891146663958555217149870020338111706540860046288527605309495331623624650615799795547165462593219741897418673164405700925614984652997747810220096313747401731599587423708522424804522813844268248495226366859722030244007409248599168706627758115991068604420669325913650277360949066011461283478974606500349945522881920180243090634684655788991357219598626045389427305919234838594571886662450942167877531254947170029749108794087939700903106454956750239957590888461650069203566051217883257771888627982142226670619304844758730266726107667616279586425954315327650330119740624385340824674593328850108787604860570349062019297485149872208737818335477775662894814050621884126422351608712683723362717872511879156586073486191519313819947021563646267191365564339269951018769675445297098429465332169433203016647643219286417144863186366398755609287048516901533043423079322682909428675771125803889590569577959841527633943911102099464696078416341416059424949885479845231677419450073807641319027681983133666831325169938378040703545215950067570287519772749248699656319707900517198775937531920347386045163990738307347988269140855573680250022470585671031761044192906039176480625688967311507936009257402950485299656471643858999453399008848131728531618205873461412647465347343201653588248863199732699153135881179916984844965709610740708534770555541098398449395549201226757697933908652679656167738689370339824523064124725359580796155921973504164711940807456826235502647009859133049229453373836754748141803186789873026757631656116913723067324087900985222136815398475419800456721489153011912633710496035312715552521881068461359944890523514621394911927317521797385100038598620167404647359528558642364538185889189428284344098372100340936928986856464146132676736464703829177199507595173971365409135970718726824297739829836789989102916638578181366209479269615788416695086943981358307158686991449101773793364015589196322951883591182249068688802288423328214866459381970212401141020154305082862737920502628286082364325157987455679702731922773705790835192414276878834575248681455661964477949593416596786918423338023769289120822457710660613251263184055507969472228505976009576253829209058693189839961038607042694673977134765347904566271958021435673228333198480169290388850375586226171373982242754435096677352796934700748266393451129397926215454637361912562938584536642483519778359742645180002643336530893727043818302782835030288465776251486745789808660710990884313991623106075115951709446452469384417015486395106340829678287047499796324309322513715140633212367991559718525356723858668319345193136620934148627534163902530541635395831074327453151208697065235276105395293907275626038669888176491429638671336816461101168392715671473095591136834544847358973465975574674558695186583904168137396149630748495794879070885152538155695895139383709719735747423989794667199473902698790266018890740904033753454518905900662387805504147851320356329462603789206237916836049586784118000506030888014090992388186422167787599163099556629012487592297272117086373562158344414290360927952743658793542833834477082484450149941448469789408029318401904894167919732624208161397848961047064854622121824097851028331587177218870962019835248651063728020839235363636189072519303646103524838338639710663934899371123124397345367302254277887860817123436130433664908733601845732517811687223631678052862930122902808013499381132045173325265326286062159012872577553673307113532112045628625510693203766932670702933544484440903925601982364893969200635876330989835329823378846435064070622171403431267106442717459091094544166913586154298870075041268760258487210322425020545396808430006262052270095842057216230225368648120558243419333057355382137607401835463920665516725008049035352906018696600622801584329210600216757498042799715420964954981137625564453594212986000834850463252136322683199498111112135807596744606194622397946581405565578393360269435647706805310992846471626086459926380528153632231761510332357359703211465248090345333663811663586979058831116351787788617509767412017782737912546240138540731477461925661942697251842997548070096625510209948361655857077478274671027696206618795347353218475987557839437815420905577090610078624153803547947201633340605446872109609699419862716035982502716250912251227908753666605147288458270795471323724508704931828435876780492104703696050855287721281095625259001039119028855001188137486628566985836236875551562164517874878794294939485066652454385272598863895008775782039898610698304869009646661852946201786364584017490272217368220451846503888838789396044872253591374411842780051012449797088645846523352720624363638542685796556269396324999446549963368993817436298943677232878026445800640871920441828582596231065385116147941118168931533601099477932368932666182785272499358314867992482009874581430570386100134552963570512413598840731463087550967995697967446637576017642067993360392606659363866318077785940369627199901142901024536906323773457212830651224369474087239745496025352072083051683250826842227152250278320944245422382648081954786571672627928190074497286941547221565465223602019512737038442522420555497302714305997555909017234197844747946513678060185249359610493060999633739307861352211682522147629171335755211780317867038535221518394782264398554023979007050909596821172418185271268420809380974948455705609102012368007902890141467562410917460485500155554443134252562025306306814701687812179310465553213546941517126029074563794485109160282263956073262578703922041397900666329669067646021443276154499164002589738029238789009838714288680023274127432927662873403287635941182167093720200142694934295326552120495191976413830617786194989728101864334444710423042070682730596801733298932745337794787085381840122368199775534155474134573140353430651277745700327527554072711706038294132841853288274018797116118370400838976054362811580946506052501381731379044188728247980449855550875597060621481975143952523426327025574815343634028749376861242347496141655060925752602061468981149368211171273941046541262305477324406399957478623057682445229584714653443343548180550789200308503200698026756262886115227378174768731842993032069209542443674882460093121357900962459927011351512258635282821345552314525703041430621222029888807862560780571690821648570177461333791277897841166416042114368719019449296729310450169823949940259989331928208857857526229302233258552596677487094422916645275534736012671377009982140427254841418461744464820702495520651375267182090399230302271705549904516565224409735018897272282965378400106024365368961212671396377124502948279074541839909921240530532024746268167901223525318479523364207949998837159071479127284093826677154012488120255402667545018517019061344494014626780020958620862731814783993926432185891493834576628659388880389254327977906706661642762342056156116109029054736896090747760565609442011929671635389609589086370582075615047375640191082380880090710312939687526856025598174508515688109746831299687454656093039941300241801166716054987300906886748170073900300757868223394804161498085334975051459071386905224316180875531186340717810179436970417204631604768792758437916266663212919302269098653968787507619604975637188358214657178850277874878793598361760504982500542516759369226163352411195117150710059958969593008236673862292308150013356938828486935811520770466944311001038068389458372028095178511982356290631970302206865371433869111342128747264976954962169078688786695547860935262574525619748315546444319422046388858042431417470884566368020678821554620863635740641752852360416354351839403960808449029139898504892152981060292023691519718357425506014038872079377648842747542223677886877520064984656670316238990197272672282157116191333439808349288669562633838424086105581016905997740862032041613444368150310567582600016580193912588704433236153154306790157517881892993820183119098431171944389657631154581721169183131262690041010502997340568778772647305905326851421350363381136166481926846989022744859951477613915217157252447095378174394756176171302281287088692203835431031186879445204672723502774109272444082973991722925277217258651174164888019326647138389792570747281580496335341479771074762545133187211049312963365511154921407675153249562004366149795667018246178592864367082772739061210839892020578224572455546951334008789533939193189054035600816110287587415023366530048124212882226055648674883637752833276893999510256916448189803994062574979622217375305175187387020098290200043412785236829597047767853124653725906530331751360255285979873989338970170034332573578134905483873018533604554379194350683499731394727210007446739817178559112217400690006493173925489399638688257666348021359155986489250920579199907298246913828602707621597943973113052456390449439354659277429962913583315190245616358289175248581471166944001022530824282421100462591266829009493870065263644893429651495408002693205049564420781857800049900234522397399265921864752125250207259659893290431251189465465899659028458495738734036315933639856848330102116359383790583152736003512391707423125004835830389623810015799329227037626442009552922482228573770929373850502920527827777157366340959958557278938774784316196017803640753871785486413358521456613373135131335589935668984299209400169299691114879211641040889253158033186152317653041298287964869005228215408522556544907012402075211473799987101124125822962098782859976313558670317488825477859147968338187997162190805587602976267263824558383009893776075980174119770776153964668704420118815525842435398272955002547501844998123301920022367921775480870607241517606997925316977620153087435667484689514300826017692169878949113768764991387844935013456327224716594891781603144278112177729270757834527799761722042655825102693524129770216360465646402399866918645430758205130773268219523592259864505884285571859978330616602029504958019049871213648844632767753894310866284244895174879357933511596107932465079956948864824958759820286455550447679753855789950197674964032705787572660718632906830232370728321475369792688091925340001223809113508805609864964600887929808577846931327796865976210683346847988975573730528784167256866757357815476263184208267104092659107527570903498855387200283307302056724076639231995966994405917385450838619675011058486602997606030952179969561424636286609273490619277035803987590062747991092225183389721750971397616217590017278872964532732932620409770176943634455635600631720697176310112787369834257442050670113872315004132264607925491571813906464196916247274378541220236072293189085024587997282727006682969816702390177588730105084175119157296549370419698756300832712204375990515082544202829405097314673556703535497329515263204392559855495271673805920374075227495076690840528991631208824545022484816078970433251650048446444900862651651871436615423196498020475923502809705104091162514597445491351881250805914188621383624405005316586772669325616179120982485142419322724970329829323047296770488200283365395848158499811976822334961492775612899596149624894736076874281772531429928026280044344353047591952262813936444233305076068272550781369135449264743928656704198249585174714109393704655455644181261734287403148033805892178235533189515959729355259966289145536061683141482124955462409877775532010933835168209597330039699697333454298454728732249473071233723313186844279804606685540854230080944593172248211797039775298292037099203356005881265397035558283055155770408788148953055014355647580874138822533576115970364422044455062304744238019452215677686393848391379816513845969168326779166673793660499051701310695434294857625460391876308752440692804348261173125077474436083282810123695948130830769947302658011425145215185664990192468882026300571792025634323471766920944458957541306272286747740591576871660248746759599722320755411659295776533057558606784015590918419844261909486082816235724956089014037988444867793089723543823183200518637918981802990116498941723133707445207203817944614927643063167717144881825741447053120402338698264462743039237597444757015305335866435863218016946637268678252267437308985897191027283621169548483981349772012876603600236839977900843669356449425655321649642245002821879951393350495626208961273143005862363868819434037403235950494429446340554784355491588677787199219633128610661904146766550123903081524255132631276329881438886221750345058418351686944129932834345349213034992461122987189027089356081445534458044719627383988441844238075791082964281230593470441148596197522643138446084376726728226978619303732203156552159534094896638895043743952160756309725168923913921710393485185992894073512296276544460658573526580681818415055825608694753889372418666582628459991895148290058406337062391333926679773250787883183213543455624789870342516125021636974042250813742269490508767910415562426813240720993025086489074097830984031398363799918004974925523352918409225448469127969137753326813041130522015451585969268927138718544177188286763258153140775600539187948664034042681985043210771156705403253997025961748202726802341047389562105932354458805196120152194917806204879229282588866714329472129804333944346087906707749652386483260113121716261978778671555518760088833261743254042072811906343082889949884332645983402574188609237147027509186945671617021732833769906702259211290413487956582676973456441963656070102601077720028239730739184912427788237635327759747146552560541154114254420428712330378799078384016495042769972798073871606329057102528272161996727181563419133174968436574611413575945677667622306822641739213910633390995560773694505941434074353027148021573907816013504564321569759151761893567664011434945634584763931205841817410012819581339913298562250059850153100138479970882053637202639509001485979419209566892381949415845779257712180408268639507129200947759456817992627233212538825724884229669266744740386043121092046528273510384099448344686126575201145126431414245530253133637169862450225830116719914802079594203561575070746611136200837553709588447435461185086179420589335822070310783007251226868403788300643988153078203269817593630917540505964924695636094461511537198264292838743286359767201389090553645329733488059697444432938545857162955836296403591734010617794432723048673846261479598340260938578590543839830716387697203357856788710217188464673776303988352304956082193645364233309520800401293222889636316945119261842113345552550993278842592849343956011957804897299172993119317913401528983351032278587400205295145721497443509072156333964948729814155579078640749438396652750221870938489672453484290450043861524887509006429493599170928111509458455661771745937798487739818575568288450183838683411115619825009828633863271547311554054468284387885386624821370416736415584410992689768173651106261685599465652961143595425636929860558712024949480709379495714951987140147663711742316616724714122700406081878454569809973101077005162544596846259279549410228823754268965198967931576718819928533107101818168232350168345516756283617881229354691138151592059192505113667918313792631736068551809566755229817427187588366913606084785627149880029009430708810410452288218197275082013816898314874011821177486939944485270919035000739843566265975415679333684396328429273102719004892516030603916253508063042448812285943105282272372760091912630567894104972883435359157268228866950051777320352076556249966520585966070808178060199848889809616099256934317938631429201959287686371591808450456552911272885826558782286130165654880593265370815668788692067609725818019916860790578228257535453506985296521119760180487991655141850466820369754430426240926061348686698049415906443073592561916279516219442743148019535478272715607155290762899615047276055809968581115010331673240265442848713954492046372830972915387702373813596988217984002803828088889650374046867377776312820709901307921882812941921605134135434617922944524225494348039919252332105033451904854764871825412432834693493110906545822954288173469154085687818234908763328154746672412845952219215340211578017808538685415311187224882645866131820362625673709066647187792903311866009295149922326686286598681672342245628165398037290814082561724036171027650285286816796257856242881320783887021842188202543405198597856632608601612401798531782789883463113775381004648861900192376399654929822256886354279454830606924872400116560577505861900120805819637446868760937656736661935550388727205999199182342557440980413269976375354442611720197049547643193275099619109700871309172849332780861692437954441886133431013186986692147900849536317746021277837677394817779063783771637935729675876519603240152869567124716148531855279888427246421189630624369170767558054056022310348314140979624644308883100249348951707282902768488397839368505539354669482367782465483056045784863544357121251185943807189266723097005262880903231674493480715228001964723548720426985823552226395062650815293037923935272290863279778816442076928156538900292542217177891119153096733170297477069762439805666863404293641618461129052692883924794122300845904350187428592884623700270122167244279842652823892871779193994291227517250107047048116401806399717151526982404625573189071177317883355788460956382558633225522653322451703586748550914226517482141431633502753535117626486901400596485546176291337503542110885227942694620378414544010279132957990952372076622545896023652566228586687536301404524015798977197634697885790693983695493623285930326106713691553917877833224041852874222972171690124408604260279685175862046512623175496002378189171423792282236003057208602545314789580559794589294045692728606288433974664854491985501525987688038801821566329882882707940104021533666516702300062974132051461398794749119302713229658874409448245354537828979176419643677454160650886189923959512112638528323167040313274436546163895865214134090749339984407159654634771052948375330586924808003493749606257875971975085829414969126214041980310477820073676447958346627148673499533490803237751462496528925913836385450320164184889959802703922513808759093539798348139681558514857257909493877312303572392076008879705787320759594486948462349445536274949012899370215079901366163184525973671708538455214281067253038776562739538704961373284016714629661819821383219199388306545027978521022712139782517517861918157905391440678686077553881836343830388281519695791805954941296906876775954598615704837316858275878734945468145874557419637164366432218085431258833331180169550935199063167016012656632908063769094528945444438049091737159138784413195561641560648178310333725532408432650966884489093092762106400936144424784429869109104965792611465334260004795372848969112602551867673142345865251188865953927197722278374365615443351042734248720248627902167537695011299364368877793983137851269981804113347624463785191903710792953132853604272938701488422328453038220379351417502032158412564149224352540559581230178299271173476431791101294054138114632333834772523407912608784026509740946850175887396204334073245153844332837146244097670433107479753239346970741763460611948995194282050723522690144761904677187581240278061932909655180197130326152673058522474024798175629874922061902059826101358358331776448124033041096586152145225587496266705293447943217736801488028214208719295534131250476924215048478050453611538564171816120596977870983916294085675989239880509310278750395519271911458256704231737031460062869445733973856485321734818800636712827370794934477729091586436291328603899163067857775583056529624715721886633514339941439695685687605411743633035518667733286574276592534597155865644581624950447281497341688972543214909536990990793610528741930482670903209005736432641845372539338367518939982990742117626481555915239802749294390207252512170450181555764515845078663389767849109070182301975761733196763545555676812042918956647204799426352685235821268053974428915817805414642652543605198245413199195598686973425784741759379568737502746733415291366862347714697783947874779060375240638984406130074841164757129344611092211502730175280379881807517378518557870102564266156019009803876505696131079296771419758317752944601465906627715643647574331168958616851765780477978561005661256297387284786500109901271633875140445643494553535175872084433228318596841015530431287811786133052080248612099964103475745846942943068219250913791731447823265726553227039482340085587714640571510549604746873954183405678525319031986010872761592327856932139195896100943344654061720393052458039123694518216500828760780454771944293459621433350402785689354541483966814688963350330107947630271635528701551641551785294144899491023075684970127996155379157364884624851414374910450817805684846155706358014470712224464560750286840305958737732527468613168998383623134069370407346648369282572304239872362235426257422004130322975208177552229261764015516261174613534812975096044352676442347982527721964153869096808276911578093368989053699578378890352353746195737231897312271908901518099215150224680091599239820440143622600320724573500609698322090692962712205901790804806974900614468122808904848548038605981763387913094632631825212426020544583370136716653275319164332638345373170708016179354532670040515424299115857483075341352805592795603952790250289900002079274804374223640591083890757325564453985897961116929884490424166466709097012827741718938693718493939062997253421880238975316497343858818238604817228327748109921581465014232605333695652443974788076708526610656411843364389662341509737575866014064706354301129430078657321359706724576235065788271801491830978784852401542803119813499981559048420273685107521286510898017722121315197351425090237480401205136630679795910723913749115413312802293569211573284392560931622293228097669421256265526439714357627499686843313452368016279014690119211700456576954541959526504199796345289669401998222751109777569525538419360923897923867082800128695868607764322728484487372165127043811354527493439009986688397978591395390565522807837992626363733230985144893801276726311447676313381753791620712126771456811428344193801936373367541106600162008726774104277477830290196909658231948105253071019996013542841067466043786462509601529978421992739619555948406681870855281794544238875790263670544514200262193956938125960813956742008173360855488284091246409854463506159983657352543563532815321025517817422634158888260337612773452035735153832560356120525131438669741404679482190226028982487350346432323745124056471006025736767677504503135265245618219316387042758599011788092717246037471009342985034515950633126376717435264554314593046662623686675257373318469029261038452568909723673969063941702067113767983093746512611792547267190880425865869898491873279990340354939784718709885966797097086010058906200953713108656375614449679982294266644521052249841872170301219498426959455799514659782955329015690968854664719007145800491687710281500157852246798414408085280227135900144741056145961808538509285518498525344084066090446657956957924984533992553078152320340380148988123262049859075100480682702964976183162417077637300429049317177956287543391847828974019991687353051644891808185001608190211941055241771492831843628837140544260066745757083026813547846946906268866754686639560727326153045715327294364553538493887458636135961224273783429871319648672946006524691310340957085804710695509257773461701493892742888266485177406417398007655091612160647033079842999762493043090402502372761471868146192360343764094668325642857730502870553938838652998882018868685711422398427362915246855205350431620158674126612674859902418899500673358600073055267261924642230530481584006843971092420248193456648615682930118893368761715555076882134091123515410745579167751186310729144473258532472836293765714221618411405426987041904051061407792659918846836792467452315711112975943244461002419992614830959077119988643418359930163576638435624105407022989558111989272512666172105099240991046089539794924656445027669575094880637065238220929537084853743653240778413387265874238801515412813214735789186836339243821153829393745889535173851635389860096998614877740465176982964013750255137798785143155235430368828891028823612032081305232559480809405279186009606899148739186502964028944112669706570169443667325107350114000826179197115232688843207210562168145416434989613918788867910217413994352809277165360049562874977061501199731922992666229639072157696945294584831245339786220221954116556915646283743182906596751044454262723342475208713011551558238157303853096500831974556788541336008333801734878037469412553015605263404931840931487065968225471053222580889087264562743825260393103837970494992639740609048926482206728793254812920612506832481217248467736929109477645058638512841335521095849617054461702489230747200893712670201563498507384287264814650017955755769107851058201420629277297101629340594046192155607971778370741340030841669668289300231654515783786465687993075712754425085939049784298247972915693764304813005370998695775107179401350502023558707689081596301559655145196486514856898507501007434106658820074510353344765211198293746145033086410892975758101456615910243541525404902287245996030621560576065849619480344341323841772327633071486456686441497865208692741399192108908843450528857386887935252751047523956333906430363672697497479533919351855986333990440367950373200353661128754623192464637632478122535850416960400329119095656883104775806547447163634629009373045733715113216653244472509679990892429039126104267803861905582058687132713437078850913075701493751890743626177720088442547562045770174445039396249289965859031247132526116631478106253570319605232103534524334855728566036437376132747873513153816028734339742432863173814856094248664096758393055947144051826561466341550758356727070274754405311439484349880454021209296035808568362573944699570257939948150927366190795199391966998543818898331991509887434319979041717993544528379362525476051136715429584609406631520055956191704785644432735895078000300932076493580395357258382976579732281123291751981880646767470393630029671765952701648167892923799997264400079007376559016701318971114162147225288020207564456370048563807468395964105769553048111115205617951821194923923211646472769122222605448443146796454401109252538239168627765902470037842475657376413727901252118797569261483829001683890015097961959251617786014542410345850950844776345447153399199800495777293120887449205197488682473141896294742949164900062824777077476322184018328019388788264426349544278033429409316229739869756105062832058306312144913070958320934273385715493428134405899417032322545504586956005366585755619332062869787879239996944756287494186471684370848864184340408407803389930601327435623692815511013021462787272448846746054894405647287065040116436886381556227527673937204141416321367040411302695691293272702723492715409575704134934590561062410925490131093678197900385937868519278811649766133712254535447978512695808046447361137141227438675107947848026276737005175705638162398420446194691739559340483775833928828878197309155632487072044651197994988220254929445504293662013577021271446007883022013237167627694583121889901545247734213072986075312030959683298762017410575339298952766870653213209945512075550645780341269821857045971913034633229069641026528232430382288921240389343184983014056517464390451477466804420845870448941800053321202717342718948508156357786041340065980284861029555168060464725955888133617103601012239809990164427591320220331995670628522434640231079645514516584720116049898437719615632377558631254224877440607677068355549286314693206069725649273567342900002109581892202853204453384724466795905323388228129328236789431269241695514643974547070665153424462814541821260547540842140555932159131400232670282747722558359449114124247022932793018890134645521880977191296272738459730323088144165657892326067536323735107995593138207068847077316470805986463880298263613073339215969868168575325225218248232969634380637633350829899998121616436092432345920107149811352031824512483733645095184246619072887288517951449825118021745420004169265022068654597584545053952881477616521068381973542850842399840514514857680050444154128112024004458163644307182331446069163904968188890508190206132209926397087610707559907017853234566406722643781824965419404146748708948569251214036912378133952924641041562717555075692209414186777067742077673117553894311075590732440576323643700274896298025640532671148934704156538942475477513187498468533090464120949598162673901037119992217795079790050889434673073515103898239400786764630742663170989048426299150785666752502502155709512272446703469953174923538452781377280705379385648594285439059444576552968101460013002649524821733413080267735569454476593753451879275657438430276597985336478586735014108843108035986894838157985264118541250044259615279424898440035110057668394080356189775141540670004196235443128205694031112770194153635213988729683718047605037720090195797608996078010839412745789228341487563541019654254547472029500149933860017262473837711690573803698631881395882003926841934275771497725200818629563521458968616089271792048540557361314582602229176780241208665423370987978448438023600781248797727136377525166954178091781394647065551878510648268852775477305865442654375526256338820417375498230083540075122032562047075662284852575586823061390894433357702699268543434023733178863176615114985884385310189084365598928303012568679950158965266766837579757182965651520005466831263365168041515863921180579103417287047670643823569810709807162071594240771440607396582011841078492672161490593805399296405314238091946808764381338594188037786748617074281333624795068424806676533084144162191014909327035044746731663351037709265574181789587896884378643477223932701079879001936076491095289477745467496142668976842019360923809317984120187677408160083676036508338440633542571109855090421452745100011297186156155625471314207820730107871532314743445364851084553556240260203377074058152566387189746205511461252386851990010426233168022671846245868651623979232209973799522281099019189129783227657919098927717689705481098168903380474648619842245522617972136481970998167548609134405928235414080488354133074516466418763679505489588873893875575828207590453268338016020415546229327677874758652957485490296117520571972066610532204676604674599076397081541378969225912702897640178762550641306969759015113689612486681254413814152590000902597656449480116066169873125669313169620675354974141956649570755312726319509105240711627493315347329773816461786789556249192780982619455625088877687741823777839707400877357619734288727955095945712140737894766791782487861466717762825784353617093662859641902762368756248590012914638151498938262163030149949751091576291916516396518915748266601852168317096899700010999290340753720893496980977376709069682769814750770082365992438082335743588722231600830964743456633609254375990321267986293069602551427326444504535382276413764910415904082840394670561768761365276369747742855509692972547055798597280088613259831763298548389366995156638030157169445287086495135383452298107026630940701668040959041091267166838340786183158284055292880393520461663628829029008274030034888065862746268588886624087365244526047050980679506755217694863284314959589361178863772473435263733883696373883025288383097152927895136043099538141286455563336431221347151900291024470189703613866974685520926761225400274107937511112171516264733063849269414784247153102259939551812747793644164580759989217863703216440411704694439218123093541572868349574783303538772402514715490197850229501098958819125445023089518907641291867456399324193454670638726508154910689793823638155853010094419262385211627878940287864639909409773206143062270420604328461960892902743459650288826598082364343068330328909240593785997733480095151843665473447534903460707685527773044972824500626150484825597983347429324635001163326136679569407795574390887071501190743393259250662358639342517261054203870665755241033897999335743316937026300079408030077205743904821500154782808448345583895480943798395866533094367382987422295589197490201282875999980057537200622228881140635877805877846220059905584678901400264714773839827153401467140209727708291815487294115105942078084377956354576934513528619446377667716842963946750907571346268529057877529842147548853057746816894553367516026080628734862150973197255634360421345593535629503132994674819689912190891118898314517596299711912337378807145650251910635238391174734539431102113974346642978337717337482808750436492012191073978774328147388703471921063026464438828305773762062844742318178738565555522285345914427468507244917622400818718640955766615197838095673164772969782364132551528961665839246510041963031610844457161312376396941570035531464111247591857335620128536315434710859444306887424164298748173975347187374026101380340316637828697993181250668903874098026886577995834965179903461571512361489340481025446425349413717906202773452184780445807039079322118974850632459428896173832958379518741044907423174946404934921797934903478908454951457960739671966590228204589694163300288567820373952881918043598040188965826896420382859873013124574390115671862142380077318190409085693659162932980656770809459354014103633084230369834420638795000060721845412071228855947563999068932775730808347869982091038566791174262660958074351090740666494146337409735322060858138784549411707416439083846579193940347040158451605817302186400442846873069365911584381818797719265130706902895496299049430581126852392167045820866201592034001369097669054163147836726190012851163675027076796592165984082039963762855629384051782542709878175382219272902084860595013931577675900570276270533811474203142269453099310146674916950844323693176632900660964173825540548359445224915200130620593403270953956706229414626459362943298211460855478680471592463079700914036276590015216644002715710358633810335693454366268023072470677308809447536552638449111536976714836185308548270351288074458307898219225802069055247794319849192090648967617946900516145662456832940260032371353147879344446477832504086241081773472119666211121080865032086304778776329996046674352864090491354838595587342981329266791836791274451066862831136399455180089820526014545722446575433734980254373775887149675520479463991702462552054957833539404266969750663494785034491442161541144435138714785517599903010301169685429947329352802098853503283220275763312551504264518889283414529447192933935055906889380094966423100290173482240809852173088663487173339463200072440266640089201324431830314330017083893051379675587617621941664934921684072882488141241040800612353869231046218364495970408568465045393015203317951379778247403412917931140423096913502994472925923239552504978743613256952160513930906437369548891053684614396644810467587634441877590154312014528206864519895013235663118569291414854200521977997289750140978068408941365401682086492754884386086042482515913519218873404520445836229459649384510148114691259021010619448968695976449656220223371282333776451685893290190710116206045132873201386024864820400568268684605274056771138416894396019938357780480000410036876766267554565710643219705719672511951402254182562931481142808162672865477365013578444436528192172022877212214841432653991907708334003064502250457516547229313512942999052594395054703750089308935327529555782296697550869748672018656646542697254063332390207396106254817109928858217063876693506164036092836600242607042972243333192515999526362241965586960432431625863545366979899999433713275358720976960839303159094636843282857948096526272098546204645111119185574749368020854522931250138397695640641052737835462786487992490123810833233719267569740071274786891995860512185329276130753757787248887527292634159536849067589825213049190274371053810983154279175807854389282732163448935513712444896198628504742714674239068330971090105430141443499113612232658482511740641139447555943102832417158389630444380353577606430502507365518528109209205693700425617206251476188934097127400870169264666848423266465738103836215717424255892402890896789198694071148975659472257445184718460697220757262873666175119452371525192514445817892095242161739989208181621988781775338863268925742855680967434710511412123089905993520189587938518233740049306922198768812553363907346875363602005079515418882761918295950115481230376917817289439527483401986410623140035263002459933825026957496692123586489289108027344617594461897139335685075958892656194416140699728346050144303609481383498155097153285448527548102212374377954790143527150129811859291640725673132073056521792768535865686019285291433776399141502173536325973527143726593608928797288164480789944143924001255904754902934613608461748120336264990573772900109898497789233280633116160546974972807355115649085734864229404498052986771073185676245195090805023121183288916603812698645728648908714502995778698247909220967234296584813424848095819978673856789004789993298395445293030657897641981484519311756435278833632624632435913969597459673486448418716437128991649914216617253011719023377215507863149150602211948896859774401304457828036437709059380000244985397922191512706532930060421609721217762328377090490017335108533122789610833627325915706652348007928539566467561126543402014212983440600594725489716000042772622924807549045570672611516548260064400146596515569446179415806051413909988453592113820110295072626679048401897739204198370042379530466907318997036672351475510106008022031725969235689558228284484839677977642609411912960949637714489959356192010901076915574324208684529967987131575517903261077038147746977223569483031919571166943997696369327886209990139906301532513728910165779181286734601039618058175287330842953176086164562064987932323345639245420267439030757875631957924760776188815245407771882189267841916961953977719485059677044411543750237195603896570643265145599610484338165893689407094549267595420718607719284789666870267421313248480072161416814624014900598593568322270586602206537592287761853578547602428099088205262693980625192336440212324521886679923730965147213678187864940085906363795980234799919676592606138146092790247460769331302585888435614086744906615536725919872904687221120355282980157194032594493920142814484353861892410167521565374837763213934280036150208246805998954876522726070480259712699304254829942023513655092567462362090970461025047466374515089506701562674741739930197178549239664221027067201477595051360411989635954602473932855690677264643611580253862808972877317822376967164857832402021666495914605785787223856372910703598261637173519996638615911438628290230515790495266356026791984532311422414542466892048126016873594631803502690387117457063092674428196100899041803880154757268345352436686533884064921477561915068247468809872288644330387680063310454802475908357559871353792129829450671091887733418419652210135032966506253308298145317945326767746349015383766657046211620348741479347095477038199127670023295471367458379195644353031121899589386643437593509099397377739608770994587511116174148307237535037099197579958411005684065702315843492456464939828710072145869199539918016209508411015590304490561253495657046148822477676937064238903228152995835305716201094838605121987694902676615790776163887083403085806075021814643272905562405728384047679958762057456891994068915414697479334355534617197413196630216883361801502988676499301509445967246811487546650626836945989399148415789412411237513598115820539583842037086646553149059401363874753112685648920808091965195100594707648178241554800281469036580794532695153649685763158088163886965812484493399443557954239600681496183499015159484025693789808641904699796731334069660999671967769648146452349473225102158114141560381372128790854377204672535935018863984320042636446099459354118138687059813665902576164620225395116551456457887365087424808610506823018941984039975035287441795769848129217211460472294404113932536576281118179778685019003662000902029755875483879496169302757877532788172261062726518913834126593059832355023884999822607836540411964295046267619408843793599418357978546812899581381468129157443137576023755532146879068978927530915313356509348704327067815010366623286843782176157377267690905483086126836039743771699623563670283657350030764849258347978036179911163379999614264814093964971415680495926014978934225529176079414743184785403945646851392295181807951224330013122805337059095963545048557687636330133326433971964222967440663203685472284196895096294132822844835925930047243866130694920516637847720770713371976425533218078858837862276564614785324094960459109681797643266247446513682429572972029306770853291711268682721722624004968937836855091809794401136425534968800904223502890233130734288986674708499134498535970393157740571132350849600093722017189770750801357422100959380718697177227267407188668963657366161457744801993319250140476454796297088105465902345676903335883260639884787939213835980348008171500351066043929505005537978390455381776635035974536025996939421345154160825497191319755730842173315222439704848305530626515418722675418430170429958572803657834850054934278804119845067799378744673857680580532728089149743279510879768792077745960485739954543004910322336907638892822649661235799314315692219890168557562210486896166015402011302636554771493580200491053076841817198645131067016081593383226361043681218822773091365672293839299729689550233766067176971439295591210030761376338871523357571709701926490231530692940207440136409636567589377189128526772813903703144873573128337585285973458549901952134981143920166461515178933914551517689132599721425402029412421983535851496122563553333998967691063493579992610071644610885460282431473468319459719087476347319343722932067415388675104136709777819998628635084559539504252306094874191272805650672052361713049150421866819614942635854720816976433831967588931917899559013376262841914671215216956537466214589499539791285716587917121504454000448374896912401530199451520399857687629724803182889253070538199557505056134498931725133433779924498798716450914814658488525739168140157429924017518915007969964029906967133312336169170888964393211428276625578542225888576587426694746889352194635640168919985592111634057312266946591612572923735957138319400711642690338690835371562042385823922934439832040450586520396587256604205904253503761681768273098151487677794045218013138742435640180139597861962338421906928414412038502236033056074777345779541202702058610612671213936680544117758650676304198505801733902061095580826301531144167235882173206829495332267080081551668154418393920919349047819519029218350078361749622323126259935099539870905279618675641344641235304306360189424379454380948332353580216873075793779646583240233271304176711771474144871535123005066309552048045121885390263743477953929262023791679860558599518045453572537491994498632304721269320431189801301104650019570260733904763920940060500821433453590801340042834756383157405011037297455507295756598681081352071960514243057082002881348782481701884606310063915369122041096760376355159873442699094150125051618593025738821934223939042576514068421491441173069317747712749518842125589010546323341639660300743493646264160344739676254726069106419440344591296927091184077880180200287462550257800520380695790361129814718392003872920763267894200919414594629269458207725562679237066894126355895570407570133833228269741208400229729092454517533685815657529110633218033862973536449903020431956041926506815702813517971350941492887767041563602965908200788746835151488908600370162053661427597914911898024221348331598357426210376818301849744008806419099597713692536290175182821737875305654975077646211975412977127625294777828232545501676287659363096301468618850812932828492490609008079378315480411911885430219197118759549700515266072509023176638321972940042718159829518802208408839466197396648088715023896997376286986003025015156530891537479103309800638279212822052624610800459441923728116282020424552287291648553948487284803995056496473590344531487075441631208625785871847862143776183145875937874162966618618847997766142487414469344876131253516495385657723232014615147317681922999733907051784194921156568101122088444537773208062316276474900505245820465370473411957727249269813288267037979228203814596153061458344459729852269555919138610588381332579432147197563714523410028874876847690708298128285631954517137680651511431231621399616919177886019719199941547411672957889207528500081290823553915046467102415377571392051316788054287473200505865203140629401529993256278482700145424250925549832677794738036392855503084511505116881874954852096719007025990550596134353528671482369115515123881382799301396105854997480740095296193355192290513320547429936805680321747756866467845205377183676575970832198670222068795521582703035385369303303287189384423523520470103605822650476967293723740935924965953990701614125774467698426472892740372333896760975533443734906446867495728564481893833796782302357956988029056015076557693828417587551434713986706186064288415505231035651178845603142643259674487558899085431198308886108914379646231654449427492572404784138370292927126410714905269495894756442673465325394599940292426797301658517072787021697923319641448680277932201355268979667681939031620257286366745289093976939631425591332951114886887092622484763632290565925875422841003313090549600933586726644344126222485406812522728351922803414874891052811383674708887422969669921257352081472404712983181384937585720663514936469899238443703665677667861872831491784672507957935739516853527669928814806648219467923497586667601952897288562014880798152965497765829585723912749370642215250293695700160261375763364222732894591293246247326375769684568912706986155120416606761946014210829921942128171210630977931474572207906914966500272395753228198659601099909661756128724850583130283089175038857898242169001837187503017809999621447737805421249186469729866401079207839115990563086436687801430163866355620832637794732002443564199706697690764441362144971686114156596541262041830197284720531922642053814713956645027074412094192419871812511715963453560122288589879987989975593217677764754353854627156761759785166876878829499202427020761977818997089113829760300534456178838981672770524802578195307204377161293006437594375660796401604660900624230848068767203987240784704244814188608646144992281098027402431781841622099506775300250125901237484183950625518589261939544690812151165110075216157011057469048658005724946489855490384510272111190944339241151700535679803552085060725405290477513159303326488473353636119570610210618291089951294715793242964200237985547402098302195607377416433479601890344712050719877505600554855178554064182029136604118917842762180467480564936210833475787342611866421768618195076709516866006110688560090433828276580079912249441703896579997366295141527446223565548043486880604610910102670292139386866617667520388955079146787879233222604596621885073402951577641427849930625547288725027305484416638137300698667141823713278069586797097625138022292427066107697925259677874131484757813501656055175284263681619438546276486376880168505654124963855206500631446745504903930077635472814770009772639381178969420414688571910988071444927434159283045861873580507931193071021407819882857606359816899684046870656690945854217156643822597379727758177581452677604364654228092110141324793028324679128522839080687391876335508486187817162974363333662701242353652470450846051673967519649593511516085377502721062290041871707051818898522017614639206000112343891357908831160532789334141744382453446059105946326525852210776378251747661506559313767463771795325932103348078559094777481641116845691806514919945901825849656564470661441439058732159837387690560789750797590184021776846279077981153263150272560071190001932452947359461886070561200824270945258414827641523923123989319135749276293339310230927919423437486484136998836275955898733743377814554256036424094406182312292937165145344302842218668345466212566679932371429895411494150791233728516158364287962544988543796960902042510954413624852093928262205945207274866095381995938497958924178932184665930702878126324666499044249566664395810916720870513769447603430362487912501037959807879835620241612266293182947404029030633057348296674666002473243939475169041188843729508530727980951240673997421686042120133632065538569638929777569043678311065516674732863120630470819206797456215577050712449905693691294700039486976492730352300689633391053717409548530594805774465003057806091180611911192266488652679870499844210503196321924917511460780046695602211653542154789280679750342075140931953153925857497689386337032256227769392785297128109378837462058040014409075832080835673499208614828410337905820774999085096790082281485902305319623121995807006992573630794346549318848133005947601300749169513881414924988608389664919443093335927104665128093170598231127149456400792740760318309358277140502933908540100798556162525246760288537414578898218288574228314881382967919345966040951907084274934401071338208924462989254943333372398918735351902401051949511369552734164552889826218426724074231509457686957974107333946522211861550247599659970786770284096668921812256157750824133629677425399973769830016781581252659123613641350331736804852192472742504921054857191932717933180310874026469255739430414997914042290164847816791600337285874798404214080307199896353692590774076309313083981803734075592925873328566553104359215414714649464519498505862334177414056434684197346338334439865338954065862082788140670180471675671844461242000131101746138402181282237949671852945413182817601211670832854901688208021011577802971256601042383677845071472494734304304620558696793159159501979782157767339265834268313413036307847770690278317762522289698898717754886829753306846885365411572876874855024759826108586752873074010909337998572446023803231256530944439567827710333928001858471021903240172052090784202509257861683393104629756937117198996887713533389576706744453908664283478640770493406828102267202494917611447796669180396617743656145117380678883308028039784007379200533066794501202310402746163158051346454187160717087277415175668757511228391374121365145959282748518845040162044124710946610264602464266222777654791850043876765166073813745766907894258082842950324290116746147913198033501067625127960642723397473355797736247130318396795250997307337232143901294470833519567460792036640732453652732526082841492796500344972436367563881428734048972428788552923328362454066797350182521965762408077881173027895076792331585509841625550404741062752947850280477771002574014172794932256366931993449528599419220461106941308244319232348176824005157952131931493267860645145489000877612009031979123258580233929213179137700261874779532456983563885059272215794919253333544058665477198538884275363375989288572934287491657161235878529095402615214972139108302989794277682628627720154475749451590973692785436774693154577782222966632247506098995291925871186638578378920020777116141797477888249793614423121534689118810528630618084300775752361894646600315075545923238660782726501036911659760687271365591660617325613454874979510015051713126243485830859393323312206544632178285122601455895123887006844302581346071109298870721189869051354814561166890865909157150740088755054379191198342043450496835854871687616576192219051037268045116389477951085524523926623817878274027321541884161761435029119885645244049600558063266954122917631573209554378589633395991637040481889136941845320583980054999424884144931321017066261132127409627910176615958507363072692675667005716716277412056375525502105598288762756704509272364197895478939227946456325546100964679186239761314284781879162244291230051019304747497707723673486275209512037942496846301184921583794797104877911648493126179242991741642825617834931252083247714491274329544741718774993487481794775585963212937462496683220303014042308515906562952782734270177508423332631237641438368109422182588710841120646766082931379648261695004475953778313589237855382797978851208948430561979834417502780021819590763875562797845600098277177382834723877806454658017554661299721354269000875314739721301872426038582261639232684740620461932192943991240663968680035480889585402957345044711401054910281498602918082507578370738916573658698317831518086183056560242858888042342021710479717646717223709785593421679780047810565798350636779271703416501886247996594407837266689349258252213803880150416450978829167505688403817804191560891250944126436231459983077917078320909939979634684541023655284667288252664361994165885436184936651001945008538759259764208696817496384439986754663853407359456108950161604778153872366381785287622783216137694271217236954144735078834627246752670302971090667353784253034812900083265130766462175511677865104838130157856345609023862590409010395085952188225815826167528763734518968650007853872396779823582557118667623445619061983217809894018677257446367752567132385208233182524533722185848881422392180595098224043072482536662571160434177244701107057737106464502664360122558641834868896268486322460746745479514666281512928501706858800013763860743342436040350800413202082480692588506563080663829004384673169882272965369999324885827956486233999449669866408831276794010708460246656692816112721370555766526723682301371004798728672662084755387074990013845227526507946956168287560125565458685918395481009655912845256525449346764655140901392706701480657963029526516594068091542235427535577406355113678161975650443077672929530801996929016859409908570490196324184757319983044430697056008610907801124928758747385162550918760390683477662734146755271108939059996174776879563473344114976710843688289921877025178592757218592248503789406803208073700519730154806401170232625177533214413742211232116274764970954497904973183141450309901750328644146829294176931405876964824375905908853413325958612101382208326992187121952962686591583251362385529642114224084238743381329954994008031731445457793963537555139416545091192581771636451979680418550742031370988668926592758149445653395154785795687629514289061537526171754037436147231059067276277545715384564015907696449188282683669371619935124896589915731710350349475885359873139673691611016590811863154561989242599200394655770100986966168337566815875489541413295957430779388852762341980831298873294332578552535304260362637836569664814489053323136959226683110475017235727339269363154609013505598141188223051588751999412646752617481698158123744272330899229191926681318627779415534241900194921859250373269878198859311227174659668823071473924147844446690990251997670674694746850758938498603296697316314456105521397615108743467761383099098308720776564815984110645640232995229060165475607439669567845120199078405829049123209497772765361448099114180953575575339097841208750484627780561056820179600243765854347308218179136125170334110174684564637777671252471438720801182497940067282490543996552047648966573186642255623068796850644887447969547017847287313822739965558708023420601670652462929997187326119527223538178805767211978497705214628851936015144878417930279087929896154758494643090288031015643685524114393122802248054200037366356075636491573200805910567774529627678880551661065095112789578930786680422753137612607322340428823376143819033660656036529243945121784389482384354841821705362794683551754983622113492557076587829574908434105917736798894026623488604257259937758884284017686408174673862962099160973434362162428558047192051217952593437580715366624539392682008650124994603049793172222212572372863350636530054295906454229673198963046155206024288029218826033025634660989487782281987681048757459620606885331607513797806237794091809254879017623232329847813297674479642256467091829175736658124513248670080063706746044250295661061792277436674149064185505964428208029213431653725037771963906604170831099836210738334009902512203814590359775604063408238713299183791338545424113894282405399160189165613532350849883589071740260459565419177733118103442965474431825169646868852621273081606197193028082279815275004091474543396743486899701435709305190947370695237117806880254736004680420472607046964363607097201027595920508063153878993581705434958643016849406853840024260514432194381802898175326357603361824620341282410747171122429143104442557593158560236304688622209632723714164033058436376919934133849085801290257045697358666793017661799481357003892162640767062391421266844795377189674840770790927791999121678308222395309875326521932979857574501293918723448591021383968554304479153061404485767349062690449056699448285592522984255398077526828302357155548058031017533118873777064224917850806957305357254549068254321516984730099222273625261930983662710617928422045971965921294163191926530313477381433705475068381427466028866848975829953008882650192480592734345872279091413621457480263157483759275506539826441461676927590951909174133282013857657952463617102611838424405060066598270018432948150006636428447320794125720745790351013198710571342508511264976702303635201328398424436898786429688841488827085573191085725908943574754760577681937645254064665099409779987624117366127597003639493820274061083469312497693789670448088151262097557923478643772455998419401747457566565307586595936139401250057074116313934676393236271724724870382442713862174426923936214452164293426413349440037072097170305914992290140917080335421721416462671153131251926101340430397454004925805244276212702951474267062039576102455971067809450584672438387662288563384582235519129817158481347375702605450965739443286492837230711884562523014807732715802097409795410834560890286502715222019030805167863237140390466533268598983056623311425059846063337460288804287589020720700050184402292750876894980339040490463788760491372034985646590448733076005023146851788117880353400196624400256403136740219997692685982528707363584884299495729055566135358078761722366213561153603723367137606773954021037807346438394238614040814869776800113918446622028042748257537872968963583772994629460712467125088366943283644080507277390400848888780859577390436947583124162889215223469989239831246677072065829496592471866663868129821721765442389141911565433366791502925606937516215753321274378343377992196065684413883895332135165370697347371920491531581272759410110338658839344379929137795121022682856382301692723599276368411605628028648917054864586873997170675108178772178140818859138560403807902777761268161317437383538274044641660476045713385507026737150044108680190004549122355479760934017316150264162542665651184442133488241418627167221242541844414939465192582518124175354155785491758527659525560053745997295853929806874475809429643475815114375021162859804035748933324825510276913889149733461671675261211117017818519945066341682155987891647747754483964037132315994556690154221294356722469866577292855575923838060499612995774535867892891254630314369979886209803301249272024059033599831164936423723148222926076400008974869147689691514575332543533503968555234260277998165960876854391734496887725566562608255719449571749222614565601603980412896866534771962283770995153842794027144581779013577585097200984066456958129231536430456971381146556969259731803536257868143716623240367086816909094986181846209331657128806143674663866030709242110221113162246674812256507380861077301658473936665118004362786607732594016848442663598753796048015463224762817330826661748456741689594553541149446651500732408886952320101847829478746535285630122898144214370896317573477097267847996455574402063962333637173489534734638060577965292501210992916661848176160772568766723583823451817876492339116534346677258279349004202149363151498315451252739178160771333162754342578224636029943492164368221118641595216916700544102580222656172680477509456662348798617867554721222964265902717862117004899421447167417272324177617504565315386317794351802847851130917272815603548276819050478166143921444596259340447160334884923501486697676785118456758386674001779355810674695717804197841520044375280722729160284737707564529736718062080958532391990956654640448015102551808351396376397113758978069093495073254235710355407384430653383067740595982248034232876890611282445307528594286895309413811850928526288336070189750679924770186582796160552596484767925881991468766582401823487323919852956875721944283815071558916411880346521267514293412494274117678629521826808329662452256532276736805804179598831463741194234873455468558853412728463950102877222871195373558794581930206996392368768187327626511820932604142796723295403060731267348306305625617938689262363638838350506662696786515768809186680007439878294478028299906970601158226005375852791957900021702894609296084098669524226589751654478275260298922303773153102589989609230589674718486792770568150133538251649867833822088581330070451370449052911913194392862653731441293482810070079543481246858141927534483634059615474218069735313037108541297345833201712803828787186673250837810906761329421633068352175033592733258520077878407478741797421413164859331077576946674055861110175162400646108831887419265203701680562627009322915758557719941350382989588424510170113601983669398545524275367322547074812933546892393390686443732972857706984187604956366476426178523004924407793971461833813394323958751425926470326867207938213637483196457185723625071666568043241022563651109873646889823049640012653013438391149681673801195728990006669368171863853108607481536594760638685260337566311878563213640111276591611668470905309984757185902170829086050314994822154263614943094868183737565698094598139152768428212443223188478169268130118685414252602701089471725419210806823129799278532155579029035571890843088693950449171488938924874883394594883705766137941093664769363264258952005945018256581618691586475081328619628924200328293233408555157027373249824466048359764244413150353723256381187222329586789794671360629873471722986079302178703942993199819806824454967503369574322858454011780379494329675312136589252921055172530484378304862618701959073462346401662113485289910229577434632657874543125335028157465531287538484502371995613572438568558098811986690495116826509489660341535606770535106211416164602541221446911954762348970082533259726748378013865843394855462084315566118274831342189519998920294429867016878621155103789223281511558220721776680068496952382368343632045894370697371105625176309623878731098927836154200473163191433718031678318883671451692769382144833117580855697903482562047814709839752446661903521935065087488874870921769718718526199550568783694391614095749762516662880026922449011236563769151694723362303325063636903975273453710819210522960230299035586891470560934511248100197350245289454069604919291352999720210812979378833402071393975937901381429578036644839927102889488537657833747181754943225112683069262518258387258698866900068949647158995250760772203670105032458790194021337368237160063993476258024559641015450000854521188749119230380293486587483870861528611100250231047200118064666209023700974123551432181964197880092626221745266215213789856092110502891587264855484226783435742507113667341552649425511766582923624378884413252978655377755908238013932271476537167955686545253801953284499389062676370153070342616354253024097242933298815974637171583644967117233314570895875068643538492744557514269653183430947886122505072398723005061010205769176635270293239803603195770971238603280376669925631896502883600494053596069290657064226183999998895540279600218219565755118134569426509839675751989931664073495184256802960617976015176698245156479181613414845668973103525512544924015822658590468484719687684432442866123255234810975516048672958203697073435076192649956524596443918733892397392961732881988135316165193366178733058403231702260589437087229262070975512713152913655992031362132826587432387686305857956681988696709839508382057166033803758746782373512457834576128289031262323195287813616413420809347159447567083136154054007950412338943895584592294307636164392187274721869018361886871088174477075981099167589975588520058212210669137543337337361990306474025045586310813050242807555153934394822886870020806366335931587265716417905993268458485399989982751786018455659305577183314629031566807276310130901581964498776238806713760138684550997086491977167518848858424543328436953117356714356151672026700486784800594386871562473782320087891551253485967147925078839450930547794416420819872662529535485082967492916845996982848094817912449445502015995313608346904111957165157169749452790559546423528499450019546152858640367596775658196845704151585038393894445337365808668178743566246705511617574657796886044151081371502353605250800382780096107020906906348784039671790943165607929717113879383692036278475896343231093900557398086950741021181486715331604234283767103378740791485870578263440956013346586176183343515377390102903396787418605054631207641388673143850664620425256880232825159566897683524555825068373538051774842937359492273076358183851747556473704250602256920494062989751582327032768191504710797874875238777447922620461466950574600495624639283529188752057827274675255812511590355870255187943035127796625825040190483079378967978564865720784121040195371123648070045301143625628951780059848084722780267752132976979540888838335268541279853747726961391822847924074163643050486256452047487225294976674843871231674053205960532693342479678026873862429440253493717843815606779590560920409755284487061872513440384541743955387567875856019617812363970207917558120066340362748666853783127402188298452794409436874185553737530916259446856922572827097871841426442981531216659746877904543188479784458079634861974168538821928425131676320968461962425561321218813661725485042778820813140837369790936528804090035448330471933571819943792414536296720571533522648744438354242011053425955437852466718572425527885799226240567710773940039426828974075521674785544221106620812527831619002004773696703427269557689449721997424454717164932634247366427965150681850895038912406554029002488538025602044154239651052418170889970905683641749857450467083837596151510745131810720727140111416254227136542750086405429456798350618642727955754348512618367142454146612251823679129849060822002181280683464611979839963102914095016447792112851421924961140870791835031928435945334310830016413921199909310954853413931977152412131934485611878623855942085980701374155613246903333320182728603130416998902994187730955929169720879169565453531691255549473248125699952464325740652177135300196621359349555362227842575515674998656602430102359711102660347375381133808894216279770692619827331611636339425398305555175765137261284515611227647126724677102014016278901146413549815578579474825151335564706061580739373619554390521519932791405089506556201085196147096799599278934700696269458807853093518824502707471973677245207098721161102629209620414183943379707681188901305435312755356385035118353411106489472084986156017946175478195509116572463790539009519734308017811911478167724058260518253375253948070727581108605516380495595596176421031252907700126936533037544921160732298317954838004335604185848167462000599839738437803070202385555205737864408888439968998742865080562990277801345745775260235362304259625601590934301396960233350271074094122713333704210037065081947998566740825788358036663753744514813899394171794425057542742671185625193329932556673067594016623663913637878765414026742900144778671838357609277833054889976333595533302131475946962855873473250096515475185964139181282907034155008441277180702008976479024166717600750274451351229185832941197759486631775820000895853930455337479243341180778241396402292503197976337456928302052055363253922401984146599457446760461713646428348294637579457596866580619043485515658220002970122015498845320143875486600660041136940646842462212642988722603046283680963527065707399230046853967943923478187944850236335045959439973812849983853023171758584719784148430112627897622879387702904955833190832055091203488529773968942609864880257517051097042202217234749946779360684337546339322018164796757335094369513517681202670636821113017226864604426829535453126067287257000071655675932205603036739016771130528011800357318272166322447826306268506744618068437809035554362510911979284630783366478384044311591423529263532907139300928909867795189466178484774699221689158936420625866278771974042255231646381864925892169941175511955149553999819201924409653456159611647244905238175962468627320878474782680930470868796302799917770830117450113995686067202852652729261136881338349420198463509539511485549177286322738212631864731786341437227151013610289452657236262120985386988953004694042551863110100894615767187015826720933703092281560009807686754140945335226686256001379810173416406331714550479316980662608964869997744371814816903059902166185063594743388989904211562944852311772272466379717310573834823028462447399154128300103422472310794442358986679388439346222735310970538323860089349748737781645465515672963160672699233938141697672039452712445023859410678046227730968458278527575366016900014777380673210440685482845899524812519971087055333265909534882564456170639598179647397093192461986924280411203379211546282864824484560038314990234435942685545969062175006214174533859656910543773009759821151305892872041196451724476436023678031230998234067084635458932454092603871972546539727312512803259068726029845926030810492150414582035959614023229437238970936141145386237762245043485576465234415943504997454095772144971778068714897531846165477357486658041935717952016072874465407920084889649802814659079120366905458439004299989629498874450113707248472514560794338527818437537371238227065698677657226528126248876567321103418196148221494816743286046238762581088471389359013433540407064516391307435391929836555346205605682187539665585477526509382155888632660635057703255451097542884168936527194057964146576051456666816937758805466514860882749134586752317708854443711067945741995399575255489563629173657601669898637995189302290235715725405876422419456009598092450045901909508497328708122686944093226838665171433502275451505521486121859599136245163711141568011298704668540186642166459482222980580921698858576533165657762891842255687045059127205293916569617223568054160888144165992858973878186325144389506070606912219428987910242532750635142130096574063180366690672195328098160509337269375850320137554436554459390592549132830932810479336310850090826838791098817348624282990116530856607692363302002525382964449803642578195557210188371985878466958428145087592093700782599422592060096678000619545450863169945579583510366905680046014282493982997638284715629098830482850799033519657213591200646300113244903150662486766584994493355574796798666867394058103686030884400344504385917103895195087398492088995638465031406206489007359413391858966376656330920304583918652523220979465250614732046542992519903512400306061838849556231571161268310626526622496290689117363001849212504514107303232089726407954601764983099200570034777173045331977245964568970568943041184038050365593169347939213609077733177447434525788832216661552286497907409453139953142113280240826846863824963193380271437837094110389021071245031505726775081532789968970610571010302750872846815865054121582044199384703371383078503565856594789151317709772499751703724644463985428250265506295309809056714570790005488712554111535006667269611329705972888995054470647438145427381954030084830636342392030881201973246684373261143664876088477009872753138273293208403035182522552593408281098860696114990557928033218061143882290962899997752357718568270119214686206007589525586945263261284729907024898692033654300218211927383476090616455486056444089449397082464007737045138797558067316651300838226011985034242990648142778943494940944525077229539068087869709675750285920927455939883295549082926161045658599897734049092894790472432335014451474832512332574647920763527276367052316747993454385814570226756752948940093003801202202415337450771318439008773393600702316944627790932752286941242180813824076779818002649205227462578999871748394887112266817933065926064941081804947855325003477273724856346352365849846009888524094751039724012798455197521672695275399521250814679857609913666580183245655260573984006528509660145532432497033407408500096185290220418376303994194318899575277074568435252377494480277518433314899187568602874850917209366588395572541120018575558499763025050832368091482240218657212351467983842989116270945982114361028098830181941759777782918088835032055291212751094981335459342249422212283969318846051663874511303238368041386916914008282830392495189075903166198070484859774480268664548205948698162687534966164613610740062259724215438165177578776069641444591836816390803230989523725392501174638830469190195411122845774994405487654125489219370552441853070395285017417540099862867904327442449855451171773339196703051404924946373122970228291393314434587104492357584404024046817858323007315117998590692261875850652056260323454862333456964558417805145546824073484579315443951282532113440969627077621083488867307555635629644465198249577919021032227312486037789479531206078499179530585924377708638616411899068467201376201615843301723898566545933041305799845893015266351356103470492279599348716407699161351143282499457770759799675252615990600020451323529462225479104963827769484001953033688489143562310291112047334934320297779619383522894745486990861414470993203849037591300711366594344143556282447423890856562732051203816813567807421841957233704327651407916417594154863241760156428941759830584942904241412868003150547171814655792390221738538210448180040283966794045766245357160596910729023176072314169062354127443843025203288155609322076972381732432411897796539369367479033584278429217816175939813607701693371274809547270787292548676043602142637230880585033865610662612009959304215050332290244376649230090885394059412055234170887023019594961426093673263854485849060847520820040342627434894641247525603992261864642418968338988246798287665494155563748303780911789871455701063402806719051473419500178521437524915101453020561755872618258964475451360630818129661430923588350312811155110477745148591173116184670752811046437722165985492562833820610653754040384127422001303044363814206066873101073697869560114260123304889797718753216207656585751654474343074412457929401495711676265669329071972822900710406840959034543989867617062934965044515136912591300486994334405405592602239995721437752686033114092787805071122219900253699692764598571665779227082303568471799099626459550682068562842780243016576981391810201495351109983197528137462152770826275767127661100508193975435782332006778865045897546671910191597670527222448815287234765814203100490174572985122983697043111757835521353027214890870558597527617914519658068025949421238821453400329690672079601946653015060678199844932116114572233963636301293186313554919055373181579485088210962251678805593118252747410725046342490266232996394070853197059064207821236837297638376154822670795457777718657755125514613613699991982204561348985916068590932141762335070222402182401096720599632580196127847430745276370650937798158422844067068968427136687496633677031200141973486946517076562342887918590330682777356966109625775642854717166303704381873878849397044756974155240694188067733952320660032041643127515919151940855270637988220363200184334144526366655214543968481810959891199220282067510405268566828256551871342132747944088488201547812817873545308565875670498312293211907638406411855650889468328085982274263751700847007908069382819473573253032261764969127574291109306117935738589201830292740452331632263785330306583881201536767018252743924647274357074289165299723864793049182129639845368580021157064369135563496137579217119157591600324348078157841502437557966962724517611342760985952560989160712368211230988892299983248997219882570653504483237849884267178333397877396568147830107509222376698812302147641160677250782676414418366969233011123867172450998811673440499166347987688027445085645358092910223461761192815105456563803462706254144679730761628029692840082967498860114907541380356545556949878731805889462114645802393602548517749285918027030785781571452301890605774601973142324303406693113770597249782304818411015617670966885167323514142910153733387296477834012499065767054495525362302481212165333487077438001210982228817729977430674374631618691210474991716733250884288513096206392000235242756591354873014614823936907892666972482141074697603415171240008693482828205454225717213814216008677503851227384887853212707116452872445162395751663335972445387779999229621419191919571241967449277247390903172855457362501206268213470799837001377155245855826712866370538690855349315362618141881834965471070298206014784656158137356357738623120227660552525540670828464404447251841110303141393170011704421338820746814772357064236830543985273960277819630624227395031282090564584557810270276945425937849864317047040885039526145834127230349336482751940598937879965243262628858213116466213678537475929788111656376001263655256979857970540556669351180357586580408612037417184143673723238747160297324962311141508768330173254226696496130613774958228991601730215662418090491111657997052609187768424724288469326008487261625090048476726470532680101817415334607731353624716957416250146653051200583367354189823459390442696327969269775844147227218444969163916084529533969105099496944954976330611862625083616152710663057916590982661674662108293635805382983653552888001382088277955543026097018143169633030535871254905397989289204001390270329924549500546251700956636108978473085323313482776516880847088610974133010523887148231489168417792952636111906080272050628035904522173506598687112018913304308694629816904110990567230058677011782679228791146552423501608112877721033401806930904441951494918211140609844565380323671496669231228029976610131236293754854401642586998064439834105241437505881967175420677148874161352963854824326150269943980605238099475218738879834464785148722411094224586437113470259946373352563180097258274232353443286750615504981254862076107967580035369918053122968477205635614037376590810986210953897678725186996165586212430817340819048084413864751254388438716139247620517371817614220380493650210196093450574175810631310456416654113613513009253232514512181767737366643043281996958674130866925453025129416010723082793687940401565575435106040840617396767975550804866334056365661796157535620798285927811045517803056518576015129673112117228861723467227660189853482517202580905147911235461162473722221238361805763235243196661521916839359993746190793413309888011184590228089493019084344218806333520856753817854302262765415628558779885961254348122781995430345299000415936494719327056890534520645113756365976429243250144135460714149663813372588414947351633140403519912994255506207253133241343567192507953648437583683944095417871880414020617322012192025370537875675289716536163073195923870051746645463833155001813346441858382536377412496372110623084524375764459762885625768588733061153464831676621521946984107767966436774140823678881369163090425266241269407124168747223433103494952557831932724303005872160044590909959421226072918111979209132860904776354972042795999695349797356675867800887325832242680232625239901413618964483529011998902965631098111305218084057612606373409510870956767180757544582687359607710178719845656261516192392277174780848775070462804066758096717455640318181022688442496611057073875506352472312488280245300560555212571788970430794064603996518755978213678283242315448512252663720202076024703185850881810205805867742481830549458034379037427669554983147808692113005046051561972533435002690520043219367532994214407211410715944320981997614076267170926120449817607686300927113850721932910384483553707411776875152654602655731463111780543884509933652082914539122359015299543907925396229500199830893428745604528849904392347918023977563069639477861524953306495022524710244604688363596313351653366616576160532167203165609110933552981805692281909080342227870247098471380143460751949975760143141460328985888712832065780494927390121526698457699450388843780792115503594890794824289194106832321448587567844246276037343452843686355487756315596111088977032961020960996818572784664672505792654710373153527402853260795749194653775669100764181913885041411845848305088684460160472256047410636244694947118072051032699435352349468207319449610782257497115205219502552147161227665750988107024112242144321563608141662056293023112128083177073405087865329145946145321364607871737916171532343527471615352142822982541885985221776991624179263525162731419717921525683981477580414991148654722315714004114297096739122146118147849345821886566657052594640595502588512364512634751345120622143337652224735065404288681692024033649130549653225852976318985747995330495611337974586356489315682542873398002008092023205131407885576313602381468030025510812297321293780707466003279265803770619808752800219423834137722817151579027572370911464567698695060375152504858448476553129634288071510655358679948815250826982664891144724359212294018633209439690283311254258440883336572717098598373094548129680153458597716956658120310165626330671131156556596353130655255656904060575395368608042598652906337865288186043427374570083423335403472656153471937871958233077114764482523364119774273099198111531596835535432008065996340283452940006267912356574795561039416547138353293013509743847892717981311978039850868365887739864881173161989875610218775505102568317212231903006339019682764392816112716555504740583256410040660416111740089682970624649956434012930866478957606980140748995248851003897467995674867953016805846699708225356822891075841172328131259214795186820776767565622996429045795130631711233354605745811913427924006035409219085182553723276294259054019805536228897848538867484823363274030215038581945054635151749030863285178797040787345208905640039720734327627169658387377020469140049906770417464258256698237258906205523244427703556361788772768350744921651474972768889791520331971374576068354549946096575055161716826138348485737312265922346312744605341158340927358211449944640110272804883000600813629163279064916451279958153682246017907848769621349616405243291111911238254304734833000000799697846527382047000472622484206252744681885840877808267488921410583457095799209068311995463361405260666898119099740861607147553827925646858250272207035409520730196631850429191856408747715099985086827606286192841746375630891464516026877376796160846255359719779580958459079636459617721718820500144769429122843160568841557220698774729528777117055857938110017732433975841396286883729491250978341416646419428425778517910299356012951854271610441864233889272115753233890308437464241056327921345074256042511876681729620399741249544737232128793515547454217399945188696976198368052557683970823409330468896599201467993409385817180467227472328679033813756919915640582536479106300814070828906813190232998526549880771749304746534209859017381635962085653217986861486063035395934683791474733252934631193604804577507158432853735211054114460558136730922031062994465547302016589404887122102091453283343990258968067694613295586209003261102877161853972537761762003934633289256039280488376908669419454359985362693285060705885703118519006361087792953853322279451816218228916616195851096279386264865985315569952380706054960260488807198289109551157143721270296666000765512269528980861075226114781597548183762532825137284284929849221932409992468449548167305852348749934990779419267528493185801718402426253315458609670129798771368933692676406157808436942054941085763794856328356771615838132514497618537623447359467136549546685606194510560992600367894893682539854080909954179821802742754151952370016540451877288692465426354370590866132387000707313667682550397450059143727436251210631846656095853261046923651348152510710232772800412879996374096614753631938683112630323001446127166061201986891503999064508349876119740846903248891948825912364436187528637572272408117432439382690182781151276596126010981571753611948271168313434334523961989162470891018552279103329056536205128358771665478335902879893633148099362291528502850058665060884970999819177379458191661521115818582060568189360007908696964908124175103239376527412228865996763610046434636239943522040718208307408011796991823808798847101300853647658806025925675194834623999237202248913601788776641627260569192218162011316062168950704602210482479685822079363798488230060242337288860457574881273989149535626523721293578166070447379030113815634883522420607583191985319238817159671830198296770175445212793519582451697578326485174308576130904612320093077981916912059829252287192007363931231476244281708099416483905517442794800685286872626008238838817567365184411950904221808738764759317244659706281204935552403499922502059168267756598082437785427850346725381218452516101534375262314131970371158717345999193798747146768767760797375517816411206736294792314902973772468032851182476862457050650621885690173610311501253207006796096383238346169618963591718649155064572239843064551064945361028668723037147132418819729883886632570978135410401738835620185550836145684772721186447929780704850676902711445013800414410066495240573589931330959598673742388829684218001195947183460299257426593884407470732843915137681489908324973315786021954904303697082710697828039769922118046590876431131834294358219020485924867718765086155597437914321132427842919975373334254401687530153747675018964548796819948564329110563526614033808134780395555514028084378264772418390011776597605204668377098758572493215854402226190680748149515973363598141685618917302582530835359248937666136347969610127043631226952323980628272577849368300299428896324525097540404508279958929406749083260311526476470628419171903862177602360108950629150804126297632626310248072931620002511469056056409742333071000778378634524876971623109734591199900410173688782021425446657613115586446149335183633087687682375591176647408905688333523251331041537196320440527403891187692983699515088284969023711801455994713536431494356808919174305770805654739491599954658091560320196838922155170760550619312483190001834886737039008198116415278813196345777208601046939701063923589625258581313118631333873756277491060580286892443857571989274825260971789123590708422738561698724439462704513757223200708548849109794710172834753815289888351697160225273347000045308931464187872470563715426045618940164675115717967946243571461779368823872984703344857570086491478873267150189176695600681112129523815379890223889604731513115959347280845603216708117441172820756930778082398202201923579537306903631160082585988513544966499626341974186226305817876800543356431860338948381567484860611442862977921767587836159527000445797978773919217922855065812765465547196832699041480168423153914706080720514896048751157001351101777575842191746867248412856873759255132578484933342951526075118630101896516024218076329679206545243318080713680437945643775375589721243030811249691296173058274333605106923504517338234313685606533442755265931585717239673730608604901597029985137933736975506167881016536987726829980949198275223587247621753925734610602702310493606490174618038785486659757066110650886301945896008181033253297894620797356138254685364317440657404837996114692450977285955423235062870209313982435535410938266627130167122838957209677391903074175357471518085854531979293598561293856139291727620170135920737551851464066362081356754889295224407047538223288753973901732352631723536304282763571033111432449609467439479416758603958307478711008185146913383361952420232945943876896968948829397801883690206555121661187469244889930668907409992157496261426073418897242407513360937951600201621047091682691252429261321797618961711448196313866846600863887251637141607439223925589278681111348416614461876416383556133604362261206795765540185141742213749540075120427911528646868959478767224139525528097971857842138934525432716384788399270032272515467074930951496134547799710197834446166557330460679131258340709773016201924170492641989226953094573036607422066180257617133755536645255592844066853701963757120283328608256369519029551342337594554495733000861089216783278661120626515445960126569639343524679302500407517638492337469794686338258807255134212365456849988545435225301727137986040120674940910014549213954128345339786172328849532115529688614510941206107882368970511707344486993301760327718427322675508662770425617592864869400451449187315769452015775785585500905709353304502011625895765487074077730348736347688518811905205323768015354490410446600231153222632857671620608459967408913537577082402199016700064665644610283681121363880322653086159380158408197420242382319191292479723503835983046559411179781322978317189716866544344117857415197923811007108878346835892085720692973236695970917520733494902298320878140943982904415930577924018461870084138987918930409985431719934003754214365512295393958401124436237735720585397189517886276734155838120311154783944477324089942685817549171375341208621242866228639541818926774879199273125411601575537409277304919596030413483021043495770384821770707878522607240755334553780132828199835799089761274148083305597742331487377870812011291990641266139342296889471706757269930878811327671078636408580249827071118709989811154373782207172900980897366748738084740065176768156264632202967562080264724320711498945556239015032440537972636849552657189944893353155125726933833498721139982703779859519193764625862163607430450957926396786284670136745313183516419900829151801331880945465488674092477212345246192333365679278735072930491340661472507746078332254782698758927352310083669380030360730973091698122672211903106023761318844406609786039447827525676221414385723575904998790392275218734505522711614010569440067467479521727195511254365134151691400577323632793469069891965409130760679421291158077424793205054679070754311904204285586647706876065857254994408279435463800985870460166034401280267822159895748108706157932786463045304714138929308842204060708031369482537636270965517430031659161353760768249211367452838861971044762136322839882720081901336846152475388968232015119429258676472925590682193886364931959482999889816639813744812458317601974170618177203162977753366624940453730095526377229102625651501156441198505932401060732303894280012407635287821839243449628813049163120626248114062540194480175444285740994046876962316423116698180143621248159870834901136020584586926476936546850804559632434621160513575336025992522222524299664196460322227594994478111699207411722441692242564027977124390005499230848764150349769515678658154258840004459064060658901379673919382593615311925001842999095957783340453106829351223162933625499018389683331722728364296657167859693383803521928627452950052903979553543255748102631314759284915806321302214798851816344619738138621038193889427248958256304722443011540651472620080840875190547873184733049174138642392827610918613140434992250982756481574723187789754741686242247977753231043953697826250865239612719908833454625726617219351655949326647987044458878880385687483111770351967421165406846106864008169964624893878849193126921412226203459890340208665763315360152865459188984779477883512239445281718496579884062906514941233946446507461609826178337752708693221225123927046976854703862809321152315348697916767354962114677058937034217234099116722387870619688074791558564105004089350444936651815739724296828624022543819898431035673494949709150940472942855014320902203959351014248387332878822590629908622235616231352133912244527584573013360198373889946122259811641911676910843199711731353192556466360545635552788488072615159426738696012305961084248294775931602899297642006335312176550086546596402397803256817680007093048465867073346702631522578147329335877086658436985304524393786403718835341466977157244532057102071549119188234590002519365524445970643820541348461034569099852382898217411544082457331319869217990983817140385724172300593066963426175901620264235277688460603778475143899704927279344300971841436777826109087146803448380034261175448784940912854198861841399981278304801566156957816984046578011871757702056052144910329868163245659986141599018351506603993103981343353049387453188046891795169646029809693614059408635134453611524352174034455162350825787252555390448004813465487794549142974480627872186245338113706944747463748352208698881738232544677956121813592069321085853076630947840537403635221082268246622408652881765463654484955805481560663174832577764267162048062765292930818511511663501053251786549116620482065645601775854462461395065743511670950297349254654598963532406553408985550641292802901961227005972684561233275141414003951358505108606476607266448952461537143568448594791049186688264977518797056004882240165260761618529619703981111515551840905426096560314323715395289786319833043751011051561636683944878349375161851519103470078398602605377835790120801122492859652245996301236792603817125567484368708666030987033953788225857998451489215346860990984733703006061436368131725528160716991773946843224746866443478022569716149377273204589723457551790291197854162655333322142386863404526994908369501732416392204068793692695007531658896815410996095538344926957720140435983819839240308029618347451991216163476692646359161931721682092021622829559114925224113348702369474556572431686613243769136302905061566594886067920663879291501925488451929336516445414967838936201209152579384210084778428489061675123745722281092680701114703233072933116903126176959471256499927542283079368843520559400789704259588920794291393276749205352948691156913332529086586601670253864964679096659569191176200226211270844721159151518610064133067315003048523980693376938315373166571886826240323425010293990986130459406461707248172554001283487854474609311660468812921125743154783911289379237928862152647875119256359560792763425647200973783933733067899246931496187317378075593715781654707865108379818758084974356694728736865471613370786273674570909887029470792287226947946114621254269243714065538864080565024955551902461887749001410310516182917193179019700254523501490139434434003835230123242828801631838376160414553545371864272945713306579681523752266312078435138433439560728958675527689392160152413232381655619744118603372816459224933880473162770093962928584597162671515076141163923955470643602100087744193834301070328991628370936083953246616524811611455247701079438804960018518049547955884018057424430168843125299708891244098969469501342269080929332117800738376799593473381432582613660006714055419014318827369801167587911675500382508446656160940167154151036243963273079612134524163920555437085563488699879801240733453108641315814474743770995808144598338373445249359562999486660262427534777336301241738238275033221752224618966312691722445169489624760031585240214639912884520883865100344068077749435027830975635327081424786185641770202616295600619040162401130286305942301297836403795849135710266826832776029938974983118918582796578514949662154944347308749966277663587630245315167103188669207036130042641081307041317716531725159409407329645799994760143169557505731975012405952038723210480394355244844706601684831754218923815504043687235178775418554306662646020739820512987836449113014757037244733073965170989123840565337955253996994070041740470976182933088349799658559225094078889521579500239240160775749662070058508697720352342712078616493077201583796213155033222885604045682617725767889752836372497610507410089731103098315862858433731502651950779181769160443902623352311399821007574474669172424578443275555479243061350580451892257910224227352770129420931308917553841636074550177422349512821846160627388817959760799816682862334023307375831853286606757956592626262732970811464060252954856788271444167710901290985638300116411309492322663913164682719727289813996972589097524615137822258036762511058258731614753249863003286862447263232439051861516024600478738585858292372448281436167533412876993036497023958189734667818682365125788475115239422538616205993661006239382579995834253689490414653767533869555039971988574535891148451958277533586519725920803881362981414465130816648372458178837247668109299718779011963623229210264101546352724178677170903634109339316229384286758665117492809477991999949852672125835367658574188736912761450355016321679724118380505891680645524778297607455095040368679989391785248054510679512275390572458293749007237900225907219213038822351299093730804477424381748698761528092299965677295793911104508811877616700950055002646364069729717432266881147249835903042855148075340552419889032904180320659520407736669868747090721003471486207637776593823094987749461807276999330120755087958915595940900178388979111705276898815116403925764076603829904851009627506276707141346922360766248900460688623311321341795945340789497471123843951958707943264963907518550595025661751949160172659467457946072526303938673549430016962826094816849655054880581075137634205861118764613538002458262803132509621501657333544192766182068753895126363901547191453276476513448789517296748236795809202325437306727740850957632133716168321603905645050958230439238910712315710578262915771288645881023287159261928528387254280668644853856688007562495926150449781194855888726867194629970639843947065627650973571675039953320843305262097737709410673847786391766596398593322458552387793644790006982283995323881506949908148097649200107231718289362460669820713685522879179237098454000273907906819711605204479971269622430981137103825904622899038821230181430518310631877569535573006642222563407768286840789991368206620563312371093049441853041864875976262974322181897484416188548658008279612653124222238289596782588292474910409426567790201929353957930141919438113884259723860817084316460263419979248978436580729209183162187715981286875402646163110033416032953721416741046471993006545539478228377168660901273811022223097900736221714016829281024505766280367415866710927010169985551582909308122934051466329962442550218493926251968715781290737166811081125098183030739089661655038093681424750708560412571300132146975410249185257023943291934615807230216341346822163676570844798113073820047800947307949275577942383230331272120662374734677215138271163027077251199192569049789271565897926211933321443391441882923077202104035200024542308416697564240238609550324232196395743096384353666876204940530098296407451317402579437357868520583128096429646255815460386783914457792721976964551493814336227903608272686726403448065089906834125446914912110831688994117898892922754100697238056651073647971408468982435519343634452991788614450048117295346862835828099605025061504184662312757199337512071592175834200808616341196319209379421596128997935519885631884379758646016559278313913151332540972407678719728914553108795687823589468216095219480909873993433932945604995597170222491309769338230187739291354805984883148257937419175007958395016111259639947929678404567956618466650648812793013900479818135468513650985844398791413146660695134776937392458129986100105023062218384888642775682549246455862221411049322269330221482592813328842114908490142325459614854297836911827569265511219535246640309055156294328657782920225653451456198577570138357658255276850610509200217521105226506692404951345263521275784179691510073350308134476441967989854663033994249088992877780290170037996939062810876376413295448232700165474010174387874376780674592779398564595448123057424346864281902187016763752967437598952834916221231302455941818486638294366631930976114265317248129719725405665030624158273619174936542488940261325965624835139291835351865312062329948628413084342897278710428301793606252843907813483227605332676303774993626159061107332463807070022897321260179429208623858358956644888271385530503233577819464667217266218457755026305351860355015288780113317635955345596008519082369127961806962864865554674188613741290412913657208330057072604367608473359569729206181716824874864561009479758891975793753438100149180822861938632625774749106633777639851379636653192025559164921659801340531420916581937202947313927796393417169237473073337434639627243394787280828467974516478298534901697281723311307000872287837498803991066108793168135638580929522853963038922430362748512441705433640420709976525935189016951348107115604800279139808102470991266997485762348736982440419684143181717294915986838138581330954388800269623429999202912124873277598427274485017619935413525899154910308371551111740956775003671890547628190594572312252930130917517688962212596004022288593372358694676937536226029921322365631562714687701886313738637468043661878232995511998622227474180698121436957594307894843821974681189349974891478495015251770395327383889640027542411715949576734759481766909939467836774066162177489624888421791734866104097350637408824971535060839960805425438479491521919957430643272267154376351989414001401989085722288934297309306661156587826387154513032964416340247964664133024374760717196773190904803682607546814788276945257061439465701064220481880105289574865932068292820966936858964602822073454601611062186123482454578501652640756173821111884219620901901614237582172525967365881158001638950123656417069913015646079162396407684361755622886366025186424867506486164712419828691648496893865212294565992176305210995540880776321142616003997217485772313406111183994860755614113627928229855814063033483425586890941226257102448610745534978952450228030952544952167468431879674712054239296754279938590968789957332163036358995768169472687813706512305049237569249238646470591070460079494963003781494152650221091710562927048348385446421126285868950068931355509638528690722043128022834017518568888821679553300352073756368585116410007287495226170549043593948679246694161419654180305154125650362530063137114672480770461662436196009407749759350376937429289491768245184013562171369346083593938896175902402111372891605850058241251742676025363357581775293182100083086003791421590454988828552334347458094053185886601707147662348300555805195743403868139605053625184760089630282954539709431360572336535131230612251897681301314426170445414383232410494456828476472950955875865991469322847948760614236673778406728115573950266762169230904717135308793610620330653586698036163910512836938008799766856555492828904499468302591273477773821475165167133582428567276072539008423576970992364191771450353263805153012096052615895061112616938033791516624201592338143699277279729800255603662536648407590827233030245059369143188306590741354621431291976531052146251343906005735453006315317314702021904948255078293442063447330001040766390336461850275325601216060825930659612071781082993204598358439952977410346376965889390220456047141084102009047512534737976121575796515407688302242728856159823734287447944382460848424324892977446846181328084832723484728397389002849830563207176677274801128194221413084312735877667708045639988839321912558792355200302033961367812540754992143509377846529079965277618652505551635787157827427867203882653998653284794726302982804364286132187993045381397650579326287162656288115635520369913121972094227634722957117640418358070381654378627679193791748503300678092943381319302370263452821358521261839973933491117587754669256132872265660815805373045858996897054444805895556099339341571493845569078991942621991579514553863539466945642513077945041897176329391136592301598908457332679395295423954456695388436159049877289627506891581320714246804560935156526747319606275632066019527203178473403374405420620670718463162788014670681622896421791297836822138436680190517362568882984954219807444438768164983001907822303973771414304833330237176816883347308851952195322851232984026742001613537219699281434135092907987985625053877973336543492730727814604330468385851728817606187925933902939996597476829462605582966433989323548201279058567748326669400064509996122665816403672771037545451353251211666404790212293351240716880328245369717351168726427811397710178314533473562541379419146781897605549506981210540100067521625640039777227553164048184227570940373794424033092912685077144463939961015227302866190186925744962083963975301729821995308359226580371510779652702836101095940491811736801845260206399073796824256426311593993249943077033825461719491979497462680112830310698581180729189594162280457809275803594843628524317908659188743374021009940562845597921775857795379890899522773983618347135143766118343275281211007631225912110017226776384610435736729021790534534868130618133070800284374717695404148553194615039917131300062150322860004587155015155921305205275039916917897312228829299581998298536844528372127056362948472967131484648699700092686202660635372891097560147391744785932921669929843999425320991503168546569554421449637720144820774489298276945409606287484590152978565262955984507593359182956108860308819913205328379045105615880364981171804181686878247232482357221784379838253652324327873900617894429091613610867463196965852770941779561044913895421079806836125228654001419873670229510682741938737202524578327750137255023718481402699178211511393810333895632110496475889901122894634874313907780757823735119219824629602300887616055891882504477944229079753964767965571764820684622805768049964943906607040490465213712158363816131548051775908854791119824088629187150572203069594041978877703829715085733007909694011368686393304410230020559288393919848589036870954202358283094535985597202347011315591004567898154482558847681401542000583315685964152391687381493945168387001791090035065582089296422413632747069992738529767674746886034236354111294784106593608873806677259604957584378838606598565049782333672763589779292940446678237434487066411337661049719469249867053502567768323106468171078902180927545997477248133755931843533880465048175113805839875368193070843371184274882896065976411250044652051827730745611359147466706089813639340366626559312234266766062045358661350056904687641128696001605928440784506067959973193129517660738790859512724426364816127640585965330668579588980365278478462669522327409785828025461174909304304311412085623322141966903591681345922214079505804972875649451422231332784690552430336020584859172020655758727440308280783088826235122733811023223970885588143989779399215863177851156441499355064083824618002323715309086856953311850985109653178631686001888024060873114312827000819380941014698385003844687021623884289522004470343269486415239359152043087831461225754770417039686488305059919741988630697621869557982558974658452611955646196875204752165072912353691577443147382291495010614853091120811835179297226501445579067655075703167113518246698551220551540992392008613840031142081877582306298846939760942629531341268331922462632033979642591744763025272730481654624846091085414998694598492135705130472377825740376600804834462824881331865082891033464080256238537562849041604834950832704912904466145080258203904819020151224654070529310437191104179571152562950125310591651271569356254420929911346564292501646723797143419038229020164687631631210179811959576202757798366767502448883790628959638336684593736976422005125292970070311516338232895560516407067507375429939015044933857967642407646024148023286596905679500125626657152460214531437961200413912259947876955672060027667159173305793029798305013708295680872769961232522629657528107268995689710116510253948996104132914499365381429019339312180867954910100544172120918297626292098491192072009830923575441882169131496873189901117568090204895118314784953342871193874789914590730316448425230633479275583381600069834702062898376358557792172073515468205026918706266343529221922985494483406392008401213421880738458863095818093512417066741561119706599287097687052064256618161281203474447288323150699215972428445970776260068579138434735036255984291613199512251566343811514733387821827986261657319422933527850344868247857770049503944160460120821002669994729978784749861806895868446826106830581583675562825881268519813670408681770366085269844180817039372618249873429042187984455109796867736650835918189716096022315070131046011126279741330318849524664154092059222563706722481027493765131247403092540918885623543095217331883292473532126687178042139472458284699158442807903279656664959376927495161509883927646502498447473642089381390456301001427728611892941695390782487326266154679544731380432093264656828142366367242539743525731131690994410525932450660636013934364972712120422759630750403801269525688076280626221262941975231756565058304746166531614077382282645490196665370650134564738255481914650671552562711503106680093746335884119073243055404588625165995536528830826105275145691863840109008159471641966397906321669936595730915791197881888677461661926634285335983188696447094806685625940005211604785717437295567705150355688143703869423951219522358510756704981831480056850509156739060993112526583610840193310083632358472849608758342284519442597086573959223998040381614006039191499950956286809248822986643014444624009760882141683387243473369217204743352102679888072229582112454834074456534376076947378078897064397769072293876989285932874458576233649446369681931593730042976047092662807693444084900681344013940227215706087474739799741730428240341724271983957361412613424265568252986677484770966578804097887960702138558084955563942946166140963849568069084650680779548635689970165174361036886789266155436280143965670574704653169798372277276197485110199242490660862806251586098813835962407358921428877057369010360398698942445558719998845559342505832320867179160447138285516727478069821955775350431532456481066453561286797648348607279960510648109972649655993302010587174704595801279843132434083373553365091845561430333671159467766910533544982782459622325043627091408483262197225453688442661899046169138944151210892324892982151280970515393672422853789215091443426434048729425908660242651969298134978430591784226355726928239732116036714882946622738307647306363953546390132995319939084924181862744218756082041625419077519352619980172798777248126180496113380016202075598535273361418448965127848523901832107137667397327998351625013898108360124747003340158906828109648550895298279402234475380589447320580700639300496775950790674697579851311085738023474474737201292083095746439924225537072199423784983273023728566699633222882548702143620748517005105620854536351850148903064733932436275995603088854345391538554241449921785462533497839619438555140572097347172473861820553009873008037246400043518828932633965559402923799265750954969811064050989918015093533342216805380114649836501099143328900922679785342108832219237381294220778164545142784337379851634584900260233608329576118582669914902687900486541634080031832543369360182780845343740863670721095464211861791884128104260336611651425473670658142996189600175437517030452451702446481019668096220234440049531202636088382559479326683421369223057707053271102843354519535358706737622998811765034250274905124073009568786653544914618355264405853096829625919667877576010586883625857742683312453960199214164626711739651101462747615110288789330357297335143273810605742338255639628708741227069421874180517598722071935684594104491388178158072190262699428497579991307460356509837612285505672991777042563484956292042857928049735788298628457868874242849482193765430339280279644385452196556088354013052859040204392739800950122095168624333537946269533494114428088705920720572103701884481379547197821565411800911830959107835937562725727545571509047766805319801214045186122964123232490742445044013313234268758206851390259397752190878445933220629148946608815472953845704364366765558096292924211100262932588020121751103010232483792632007633882264509422632656118605233312747384784431109248614352570522486200180828202668597955136426150618130154392082312386472290449858206094107520234107608319728981633826410587546282029121928559193487171221759695480704257390056613314362805433819366912793038193091790000692419723971517447388350120067448029161478635914790867062417938072161673319425080228458372833628322458731708705020328636997126721156677013000044389675830777371305792274731308246447416688662486413253952971967107373375352672814751436357791264900135875303737448526496807132835720802342247503512587462527356848916929429653568364510474070384212511832957101135926717258782940618562073486945237622665463463702902556660377637941668332476339526006572586844746743194812507516458853130225955805998643249586213509997898116718352870797994205773343613990020253492709224037429299604309247636629975873814384875631942228440953777742306691425874345531126341484010232797458585072574035167380602743801620265563525118507751128990827212073878121437114503391018298102474609112993663483022672734203082138412598078915241992195085485092830414314302968035218081987695810207233896187424788242281247273185492307343537933794528753519482638602830187388341488340170052156285881408293165586052962566030007003985183668345804549357461521960754478151164500846618496121973223286983376468608620609715911190586895595409886051636596478262969536551721367333957098156869629752575031400272308784646592762455931747974030011562109494855997437532421626300778772303148611010721056658122850387086668124644171325555719434292151652687259805828205054830225326223511721070998923492506168662752574126115422570337963514419852838748488051489359826071996429825885607265674287570587412230691870109503230703155958515979604200471860689007866436366790397869139118238977927494271060809687487156868957588214016087880498807750304527000190200426628521460666496470705756911554976046391531807078733622289350516600460343466579339732835827573025992222970016307328506377232469550274857983912564135423901382903901550302164134893837879442547574072005905237854967251670960855093519188048233657730255520445072567865639088614660859370095635351495951237878876875831833955936376138608913170965376647910824658657651399493709524891838448166914510760592773723591084795365370237101662865292889162825955142510999659539517833544920762848800132798833109111839816267961490542140619063148624416219295696312977069511661785229318952948950436237425983266416897183339046060277345067102286169728424167495687581749355897670393363859306004989210015680881836916322368541135936663079616657287814547131614685732216626613243303539623233376921900392774580491006753251370408806807440781697202209825896784035434560429848922940692051841658251562915173966748197495168709822411343417990726688978058967786078597191237831906743973862524705207566786746356020592061023352623357362973130935619424859665962939637669216109241723060920110924261182846094179018584490849137888927602304394809368779096316504599949671320680660307315576466838164865591880414366074083948619602030095675911819350361316460005534650345554355852202915394536071074781006602454837506436311536499549943158218847329217550307656828743982651839824908940639380705346890974274615525545794675534169354431307745926850491377524358481590360624446697008299749978422469124322927413231196261861253710516478429114284607264072422131538949216593662887323724551714280608401366140031309578503129108999003582486419340193958111377573374198583889583910916108674496178271701632618214385923877599146409187107284758387623464120523373733309892360374671404226588563069519616838324946255380248859666723884425098308252721275641564597714905547857907636444993210893761722507121256869182698300157315623891129811349316573238352852201604519666547764337772129459950705895724805911068702479814000385226925099974036556631757725584740278889967279090923072881795406986045715325774336393766901642628030083666363165854589987119001014355774851596464537703675804215986682936213824572736871957291167654511630822313567316399998906802335659110947851972149180022728358372486336209177617412972361079569148502687543187261364226199585626089583020973098102244601361956824830180346261791538505306261379044009982974121524152165441673725471662424560311261280982642094378652353256441938569261704618179155850584225559317500580952288868038917416504718515302549070251259348997992663251939845074590981404436368165291937285034555996313520130486371259605831497496851307479179464158152849872591213015291909024983854788470211836499107479626175233252832272109009581935805996448382971931083571465615799639948006316083871081504006466285307486033346896317808555846823595041061664258605713513584379612470077569219792680227506758266234371889575296980519868636540395424421691685106490829292961174970791873088956682341945751177015032585060746716919219438627567419985157300901755061564720618456752952095229840982719135067682500474765309833760086391040346338119113577467738371010381289235902593412929787307043147918689881964416393559015776851667416238821565730295062623964390877285025493485750014465990573332592738767029321127676058092762533976157590957726323810585793269517085142261195378987228397782430686767806582896301210416839683350384631001231127727203792634323466311954200476842826295828734449080420572905317813302445014354220482369380775657595618375628739433920180974821306558626201554076409784549935579890004391356532621776419400524013996316439645811237789365584553756818099166371614214811654463352473271670079327183390378941222791920448450731221422828453423047477593481129209338338255878379420606994917776059772088222034650544687351179463917516470073592878972918936599683152091152213673326734341240881766846111219568245369461043427361491019959515645556165807044689544380674352811748231657879095203813508842577456737147121491802141986192873662814734008419632514719990476753868682292387507283744342694889067096536488451051384702423919331383097709417198397495030318031360806510606983896543845239080583682757366640404014639242730693655932617826682178551136161616209045197501701725363927915803310098657724387469190520175859734805498605333451394630037808038391720829018095442315664793065806055796166684087005299930283338229262831602053917031772157554235453726364241093851675614402162658519626384729921250004947076916094604642801895410750821056923018325262202541467790218192023335911844968300308597705850766069336569359958587354186260934157278015579496487709159813370349447006784559073379726279817326451666481751832289569721559692898972268555130420496925846374016215338519072803415314045648620154766959833123929297543305533129410137040666306568623631536226052066279065898649418259177215505583133524676743656966261848688143818047120361166583836873050387206461649042288505603267575075549075998193041305855509501848637145109385830970086973959595116655287866711239442333269332897708466554705420456454491522775453557327270122018089459058083689872916995591689558319011107919343863139432086331250609158162207151732568280526233943337083711354380347937782126253168414896007946566240446914576002720734156230833483410268224885800242330786473646385993443578022650746187529517415622068267311207051785442252953330307945115240616522076623047992280678381644352639313081380893952545564209902695103280736073563719351097851423907782749771959777764671605967885901295941407227584488291045078467064875545935528302290001854685930047298571690155995110065900097720252814352155976012479975146228404059278338278579743745891802209589107185682992112075995674475872214523311949307984486212099450049717341005706699395300018495292372679346820565055976929200694587133185823806142704956588050241247071297783618036993543247050712257044898744101372369461461585488032370971196707444600871293417774465085429857159030173237298737723043551902582892721201918582166168504633326919268816783321917086557174952933536099566195904693535896972338665180835652374751498020848670089302129777488136833669423573898322004846253395002269551931804794185593888987208048812890430743215641260360481571850026632614460995157160081253009519349138765210959953371934554761081437843430049574438349365896315557052797756452020633516482303373799857621669559108553594202129042723949671136216772917320712226430334430348716264009635622374474137017410266867042205369011850982854847235491915412983256128157761922926524361947318073607299534368013249388640457971307344779378384616907706032701030572073354722719256848564141408890302887557966768714635949297352670044456976812566380352267788898770415532949806423626719832864230567141080853760727903822657139872631797894979511628561138769730348908697097749189074704746877267247187554523873298218250509478579080065990571975762442790536497563437984979609656770075721417037927792799286464811240380098870455176097999199077015320707812173660424047433607642424076098300249253537029823579889609823602244077619085724081633803097251538317960846624416601933027456459863502923490398182834400290170011420033582125587023554524530183237729342495284415645376899162631615155114471471878127512839054413116813210311757091028369280343371221465364970941707424199266595966858442870531021643345883234640701767116925793987755467005709340494431614492711370939598048894661895669477926419313721936881290884213209581841492905832600791930375654226814467394178174118042003595870778845331773852470805942784700324218929683261345860802328811567699689972943422315363200791319170763230580133389103764338016442348527932704262966718150514075350174880595046360757889435522374508545461357802225759722095923236378920559141004703649174859500925067997951436523467024745945972969142757169503818726702700736175657706209407679967652938779137369285300402490647648886390162580323950792986620229085901926834675028874885464776458630756313719095632346152091738163700627988337897564216176845188068029333131697057677100739136539369080517753170656628291632593038376139854375517003966927700946059823395171682440984942360332559267355188233025570465945057720007079437332923088331684477768357629516073661017872282136462737271189140949414025518178622189249795683216894755278012645343161618285958049896867647168783885577909434517073393482385397735973491150064189060951654093903713939101757198996639004045671710141195403339049252156151536699367659361280680479488225572459930615398282408035661721045014314634812091229117164799433494685913802254035533403804799468074763059838239005891832140204396970420019174757635377831383571225051351843881031688827120272924088207887788953779836793177459050251877157167017351913518580118433934769053391519427121681363769166815500698305482378429640963478085158449352595957411347704080111247573025783519728482119787938589676693244348454850571886625122032790607748302931439778846571734527266670568179958453937430305309055044036908232175127208612840319567702307505578361947613529217917242466464495516094688087279455291612579843711190722328060851631567865965515537806392601116031561806153776432626699421415189815193431563567685449977645320427207259767661772892847322181462669602073380660553356601784154769672831396040790427824730723067186224820667553207896839348174019172373686200565227587906302023668560219279298358824220229602785587295094353588621513155831645556480409790513743918335849104911055691274893381919170702503964728107211835906214589646585866653178536538143358499330311374021816682213641170382147971182231301026537478287570037811781316270260692350770924166228466434138843604569820826233952733104672385621805398140860706817956637917629159662278612612875030256631804418844706737821814435458902833671446360113557646533190696773153257300463441581825494564009266461186553606310361905477328544053275927168713303128084189292096403768488533269564771298244757544161758247947070173383994356956537011867151128818121807844972805233041426522114636392048830472616047192432169464931142582218872154053733369308838373328596248435073171869455536003649181738641711309891074132751259285181086842873551059143156550835986207685577584506156005512049817079201722063089801375435819021091955221897857023341067916131960238914684991497186535314086280967113262124971498900623290423723927899652762737369105967554091288671872440268899793371299033781303142725652569578130334411229754950180667193847564871881947804582987123969458143621676482718742215660381628455553572132465179117787331038127213450073542771182435269277464905629567318686765944615287581995240803819442191067056527848732488812911726902306688340685038179090245981856896963932076978020426480772130917469807605843918059091655337620963362426197243385891223320195092972114868646775075637855321488063920281811663365842890952513960917937915657742459297398034099560877267456846441551285648163815636881109086704129352220008289377036654332939088226755757690702978460620474820329994098294682352003117759607325689952770930928435836040571104549783953031068110028540536541503959834459093829182256603387120133132963697454202396854430615797490876281596479356483944073247712577165101719074882706206338695474991183364128031701113275475649631898178654898667333001827885065633753018499838452850392677147806414666208422325938612486453620481765963882935584033501776660831039388069722724159006492603256358138844636292572829198451562061142844770755305355399812517379868877093821915742495367319795547706041603262095957471378911475490615686459983098304963534119849982373609600792099384289503380697988785909522984622549382914524074769556571252886793865634263191362879524250542218482229961557803676604451777587172878661012477503560958394547973566459574336846233279703044627134348012599397420267664731627575344959013741964640395767870579230534011916734290352715878849027454047075082793600303775696416408497423984388437650870814317991694413869241970217872377792668301126439145374972446720435853902556537238541275479459122758991593313173249618397016299486632733114795566637311903815769514468841871647349319615835770751361966462274244578209277915411097084265533687218177395975677523662977367566231732121730389468742808914812032041489446843545344772001604964925331765576797998620868002285932458955083623577100944287427844992714687021136530822927484726780526825928773693818664712789510643616429307821227096711896098662646619987516102573273220229692491366186623668380895412933989960619254970123034633702022206750984125716368834249646018963075121060969794825454510070285597941334635315240814810376197644059582131997137590565416036226695055563796953918320314203832021073858927827676092171425708733722579278313563640044780896257991189359625226319585835862258410200118511870366972737360502684923871797691992293770951888295821683043638220831665386379076972757112108288749037811413838306534869201528053003713402824645866101937785342258294720561028928680303695370460677052358671847054146926627126382851360544867816439862074184692759617061310415729194692493002133665810108181691778475367817559878411809532793350138716147243796861340831948300259389067854062636733879549481524719317667878918874833878156743388334872156881761316036375981197533631462404613870352859322936880337681560950218662893238822088322318188301243358038653561968882238162794430898246662785853441249434396045421480783644781654010139966470218387126314130205247483820551449541094036970632296007433136950847811256965076464487310416389194632638071113160211904331338517788795080723983946585572906447422022594356444451723649500613806289863801267107315664305412630868703823089044050768877012730843334233012982656544886006247465940475519503245363044331471809077067220960634692421758794976070218935651226502711903488370773224011405059020164079649166636367970398625926685375335531805345343434744392587169829584222014377749831700589588774406546535950174593554443273776869455822117360098781458313460962578850342641921164794195808151602870578727060611559109716753445088050416269163822542698727034100278541979113674234891037616767813406562879238481474257174953184901068858420983326806268024929296154523109006914397618036772492208152749623688039636860067352104103432537246651540471868310805183612678185618503652049204922785891108633207514095078604106640165459897703920196094522229454629869969690970142436302201562614152020520780098326814186550155286304733479149331117510370314192060352602930334084248825338984770746336397183269042499902187644877226326889451511405980472341511909611122518795088442033568446380263795378802839005326343941309406930551047493683939625457282927293098460829918920472756512913780472071115201047486103557917793984446304117964993052231185317883475687171161413169820611536297278624317146531526505782560069111956226733826354538807689639493696267079673985144691121464766537072794080863341820010101096396676107107015178404944097628944537013300075272153148846993783140096892300956050224165610368055456503492156455339650988454773482367209812419364012188081972729226044674451444148765799255598413346983122419715899818752881985568442086384862660390574540180735872985598657049747415887676244696788996700840941740706373311063578858268122669214224701075172689103800876671319048285962390185932202519922244020538870443206284868724688648994347751657153904402278748118019285147493556220079101752999270917789428885497143040234114130798987134838675619792279429274921145935706998286753615609930420104247873785967650014116490627116659568048474946312922896906985599635449330314171428850391575843053894204562445286802857982298815247597891408771302326703309941365789288514933851679296673249288744290660487340740156254545841568735021920203529748444313246806511411727601623636621894778589007445030369495180135467002822620847244902890396902197911220631801122697613409200580598837592270411579107320082842790904812119003385275513322360383830082281959854476808112619659801577028524545581671895035458695169057937077090183085480718930484235204569889541970559650400968579390078528639191889255766434384802041562904825313588442110505244100310759355202273260501394749476584243802794865204335254230805202767486173620321340885769276161852348730723204370265943727328245317529850869022189641901572460431254681463114675510804993350712080074115002931336972067666307335135584436078782612164721921567594681017063235789223956230100983517047395968956961627244219512490675461879396917592612686685173247820858668182795155657456463557541507354569445782535501228889644267373642401325098011482958701462147864986822460550937376037662378787255735897949767296591933135977041109518577210848377283483134890320373100483364495345372938283851310507838696390059421333612993886909509285008848481098916884419897105310443656126682085573560806233010646333892007467204172764157389703334917835350439164484711424128205885291916335505962644800622716115134574409742363587065765955625726897070827953592902771298530145824368307770983403584749909152347778514729863926483140643995186260483815950427532378483937831665802274266122977213662850818988111770748736617109057170107651440793534218354352490875395880761858426511814942321862678708995971242124946842754151647329862667292775744927290398642503732965378877891096682813232229374178587346542174233018195711367040107300232569503677899504917567290613829506010019195758695828120938758555742354858646827517023715669383028192823019633759202213002737588908301708999780629428407405796244456119870101126142554880324542996383760305552818427961445887451399859281346625483023071542959668141185100512006953425039305079895382062239846954824890774360659639478779996024665431298012819238608619011503288312042254702959365266223290331268585553256485131329655303650519446743043141461220986802335585326164258960141683354000447895068467913132911289138705893304327956666546821838234514669005553667011383599488039273924825766450759788783118972658319093418684146688828904974772970857604875682724555944774518897126671604378820264291897264434248010904991241819989708082880623260990054387138212143678348785719998755625626031485137995979037205853318587447258709114286910430347413428733380095176984426560683195700261389554154754541111750606710593102283006985405142943790442824301949461107042093699816333191734746258349630753337835973854615520790713928161105268207620437119533609632392105545236710952159211090207514491055246866300050260096545780045243696585923756184070654093947008729111221611734551243005704349795525987817381617856316288847506418664343908121877580903768634858788841325843659694280895774210945283582234551003137957266210254487825377425641832906134568506498051723985918521836605893605099269723919778390218667779508198963224150457419201173806618972733237082841299194238526281278401832399345933211022772945648285323722916814533348457040772197635878343143550099505728769666157182023416406245278332006808384743756370088483264534255794395519286581184173988021989382923219066901006037346980890785843484178585522296658325191516328327080419870757358620234535423683938584257141788167146455277245012648053633029158197578875931549186342778295413914957583026671264078847821106517421802306793684490947866079393291946150502397523106159726846942984344811469372134591987691734997341431888627093171598709111120127128684616668623073470793751062880914153112366032609127242151821346467235820480981844590346747450210202985183650614015258972274869077234223175302752747598454860246743318748432572713181445275256278083781931725139477012027031579798177161784817673319559036045425137141275358566730540391803845091237726931852692703321903229881072253610283468537394578828275253775409646885506310468383414535235639616388101450035337879737619660394438396737568850600072478412483872858654364654066028232861613146783562267058649777183567821596636655495014158864074320693157356552734195970646609184185430451133595412014338164048444949109139052962539725301745106661455736052687389690703884031591843993669739464876639701399966296278643126658267523448117208816094293518126642458079882657244184139768304273237021191753738897925896812057913176682147208302532783040714551462146100503283784319336216115051128926251235308493101660226040099325261911556168956084547373793145249272673407301790700285225098863072228424419691437962161926173777228259547164842420661125103026161595100900401877731191388022403165386439844894475642076801565864946934383794527590185109165857373416930344326826841103002206576472694845082946502240720892193891960028816471898978304096189504585669785599677628292785020833674443358209076471679941954569106756390716230966592794625398197009659788465655796434161736378471496300374293055079065183825410791996163867209185607766637423029532260364325103958188953754040716677555424659408389732203560747507533744494783324965573752530385148425432145278121289357233743454691496566110923843826558743155454274376309300201784872916205377446666185113364678139301621741194616330702572875385962996287765848182929227362935314066164826269831315166750381701029207534873695087456802518613784601340557675692658732308915748115786851433368202163446912187231144930732742312208921433826505577286963787357540281856981498560972330171823918319466910379746584343735934144082010989501106269238143138587724601896439940703031148921979542856339389081618621316383089068683721357382877691396965508783406951924589947651798339224017412995420656502488139063468255698677943628192431715615322921655126030870372065852519640473297400890764836487184998211239873331950004775615715357406275066201373752290621688791421796887516865148785149349776433277191974603427449733636584112779506431527709128147215308050673623877051592474401048431919618175409400824239020937593685143827525942185613918131520897138281760324237325276453511293390158782525217033435980794671027490377847574288962414404559255428770548158245264658939451094975543262735467105624480037635218711449355092009930359438122004003069753818709952907433025548861630381165481484267664427204917954325247095949829639316307729069083949313548310665502430630040674367383584781885730273670932983147087769565702911069342317834716201901024407307047987531779053143117248090599552702802715889069634363001296642140262760289581129748939434852619778726558562169512000899200319825147419912332282941439863952323855882688916221958753089670983925859959218339458863437391306798523119999351743005979902433120469955338844926183450104529759671838254109363241446107430873966095525969157591286512394708980581866878975021754157450497516677483615044887771480320112141428052006167148317682512179066383233374060382644602107252200358770914142334485712935303150851574295435069801150702787914310192012546081069987072310753940951140772389816284873842980776986740569250512344858477033286362223902966122736269926839485727539453443731126907857798134198245490844689359967319651496726747053219027520640862260953156228546543857467184979565959453726148721097724420043579189420073006309428516448729329840998594814437031139772901119264955757423384557587841361345608385840892670660949017296353568256528340809862217537566023639001793893332460932412249165884270549739310395554414716095464635534939809906994412671412831265997930469760245811456065527228067004622448232662108048838132164952067792233445563176121606627601224478686491910985474087018721851827693658160781816315679880247046667198121995909387551854186686447395954248193973429855700732539648912640545714146189414725750460802154090504037044142095790519505395870648271417417025687204881733310610682179362632439565527662894342354524111564776819448585268636548994713432645525355678563195224798400249947746064451886236594255048734746886952932980871392382515203531135746822537695756367487779759486738149833808438276474398467707859711133984293210837843276829407647296840164317490857042141280915343102997986692234817133760002544346873980398697758762935377543643050088167432795537176882691878200597063379868790322126454553381895662635341215654496731416556463305693217764302933311556070224504075180962293514346349380344268244532124229967895546294320979072500747149243205045271683533602720060579905479626019983993844537973915718395840615956936233023141563795769539280390941428453100676233525680971254700559443759890312438101803693660013933602040588678329671106119057028576747482339803826499388142117716632091668638511600128383336124075899089336204390789852271582362589806858221737314046009784347304072188153973525668669857111887345941303519670446119186295863071065607998143431359686913032661946824742877889292769395927412688846620042327387890353889911151248344785078786370062888662183505749501884005628770284685115618716450354928050284299152765030086350295933740451533140239600024896816755149013972798372480023445522071537121435021840761349226425553838447764595912668643230910874275850084425755702648567028396698183154599127919136969428414617871122733400302274922838981678342935375663094666401017171554436426877415848248877580540603132970152933793136564108557313150069056953561150970250012799013483759825455179142701463784314835713590980777896593023829938937273384624452495002512938291394220253009227993574279178805067867438427053389588071875433062060181318421512767640566438998364581287493918154429786687891468116824709649816146353899886934916803141623381445311736286499519630975988463965310039688794959684618842410879512203342747792955085578355403927204071659379014971876654146926417801241276892989612521127937424733065781925756445989143791164342183254903348815966664191466856353399722224109225206737926345597936952243609185090515636552652593817503331798099165949111543613394762264830635515002572532287473153121784531984155164496538466765048790012534986034854468179841911761814191011620980571866997029971997883871729768630494725695815571043623928514307456016096305168759033958611107972377734851774697918743982531054210109350370834786704598991405596406674987599211605909199526885638262621466373641219633575740956005170266788151360025164289979572051008314304051255509532458167027242386115541158519686118887328010680284086139886815046120142942547240780738403748278198760858219323523872475224292212667883151175976947546689479066104562691859461834463050746239520908071703941877602447714958356953069155100873581751997945355850315993094659645122917253914021447600972671997865072109246776369835962787179783173941931344493159793602224129788326790370820398934453205156083586143442595364368136824128246379106272568210446409902119950043218765835646376545489811291357489419720069590163376553846214046163178057283936367867297264997700864292585352213725837947298986967831680555016234502980646615578769744800545871272685824507143206625863040984456725904367817318202363337950752400406709688359914496683943118624885104155985135662436379179057063546424247319123219296891592374102582097638956620792478989830162501875946487011738695018750096820209523942649149807092029162191292223875273162328287380256857827131027576450610555080974942292395073157473752986198514150818376615173652822292410619363304393826516845272007879575028510468517561351585949272565711598852509829327698978080752585858178857317185193853468230617364604919983092471715896545754773826771477818952415883653806334655088594562156388525593085510467212297119165800479824497126569628024701059512734411046568461142552458940880372578694233051672161488480091548159396313328253492393863040722254654525875531984023476163515068621646791365172228711584367131834815059210892810811007446410298600389852791417919681622255672494791159043022158218601426056364058552208808231573867523529458709438710027186773325165903646217819781884887052887993691521248035774123944570893596185962981102700888089277531380163246693454475487524021540181737074536134603593576294763071192553182398162713462129450425878589748489895933763363570853977898866475285457868789058143456209296390038149059421230310112024244356563421538358580994015528619124383416607288768957441245923447268356472412874070286706991065813732375297689983880647037659610042719213632778127265236136249548351753749055742070029761561344011314106695070821191728130996706795739977484813739899412384785328745493851589759065148297937900594518807541154889953879999173535577625972152108012121486314437890228838454339273852082960490816581349486202801222414429259961255483286156420217860973077762937228672996108419007429148183545936160997445304862642547279689684398508151408410563360479761275658909216822855023209478776741185915707607875259893995575337407567720913337501865953432526156181578297710439383924038260396985037684111172942870789712884120627330090561036217985973946872734831393904262034832628073525132711172480712864372228211431556716139654803091587184561459909288922061777690908553221588912960258395980529192695459538873554313114191542680803047792809353574719298621656172194473526136365204765877555935295772895623230381334886820416590081679638624538393543111940373541658376581325789988937077501610945103391860546066274955548713226325413305471834297445511385491796007778142678069710981473221973808904268613298019979417396686190495819850839663237133196965750430243381164868302044353503146764495471003848833279466038128580187164688138885317455135388476862950129126947367823958879668430724932145956049046249002250395360532862699359070966375433010842907974994956847625415976483847458494631313977985928191177590248759665903298513523993736809193151939477695992921701622188866600632002777766153417954611670573496131670372575514069347657563796799295998073197905193269220215124122957903980679381608470534311556028377009137404775904794605827442366245401412097666119912058816046034256182789039254275277115166874097735583026214441950982411507465344084319816182887728162173399407559202688597590609712095769459358959413147012396751579592170258486848577124363880612612672190069154575338666576586034220817826721197600968317737416022980886997825634644810022149032895092390269093848714630988356392998322677714340290837881907709282904564769289020349444757779448519020190133574841772609090031146723860145133342652458663014629765652265814126936982867240417942908662667665621460492772700248992798048222316151391190183192107206082175284941251281595705742594292427491629525968769466327482338525055806840107878754758310419734716423990174969305480088492968624943730361603691832875017363690142120412099748928750790862917544744397084915669185155271642510024153569196291573552611277889989907009447991993851834651810652606702996189281422006796596940723017512561223734668642588528159090237518379316377124432984502491756545323839735043037970448726758586179646933995961311941885828549481245197404944487151646565030173046349446144333344430750135787841341028138305660557544570720017039816293155664114999784543790579471241330202476776251551039571151397683248317278310724747118840984949238416525642461305106239311543478689374154694982911042179983524381767402071303577458020228419581264455156232366537559027052246403500412096157624303253447107041652190708096975854007477777633229757467552009370261370215679802485419792090428164387865368070343326736917691080488561311357619009071338088360464214596998966901431618592134660728281665367266123349460782076905848970574122547692791068448208508955416245620261322021153445832828852365480300749876958685057536281384713449054726420382220735264812529945872264656050181775586169493371147119637968702557674107337857204452640418701332391827215503893836856876686567413513445796310700448740493437352645275838985243935334903191625321772893259263806242147612487964856004947985047373076225325559104840830998355832761530623908601308546237481023404446520342863489816819584314661881214918611609634918738954132156473554848054675222964460121145566656993093452046137970414433450716359522253734372343174541791251453273040044057793276534048848667304118857573263938383374512982523077182529101586577896362200258231884356808640426100781064750011151827557870352931587518282892221650243473348093848173516690170498752568315519797514085947684956522604236550307339634146466474980280675976673426797043706136790808429971631761161436968627509863327007369022792808930051116071748316304807438728762794295112026997291492303295771530875460877101743193264559875283062713818706291294130319069640982906631758686048163328112830972814566738643916196077703635882511509777609153881298403255882986536209975350979931865206509581836228994664553134727288472379558800823030833082250914067136205970255356052775962240095774513024303501269143891395259874253914764780277114376941801021257544534218828980027414806475707040277006111932443686408825119484629649139554041883674640996541493550061927222723282671873680377977398713467121651359497248688142610785480539003878253229196911190938762393459360090895654981834743719209122887519192050983221139554452133915916556606669941147665096416796280100669133911637449454070173984320612052377610514376117285874509393456068010816429612626231486178210600260320386269257523919478678312733423366946539582362153510990521088470466041910107503112960320249681963078791172257234914197031161147879948633287390656939073670494565727706527731813885233409557665440561021037879275832006873858344204432773496803178576181362873939340347461340381658569766024225440998068464655837776452299874621582936716711443976935210470303319564404665311748899340073733644699122375411452296342256533505616609828835590538030724770746870169230038608475125300869328367780451733898327804880864968354013249544327213108039574843778979430702081396782967737507632682947638906755671706745991452016699555201828780826178907559747572314528075536038382453262087321046894178190692697124921728707160421608979899870202410927500958823535099681234290094328612071529047315337692004162183849770095928844396841222948752361406024599103485705293931730698894389196882114414671315111983270087219634412796866042792568463687392443358322112949717301934165621805665572362728134981606696919519291505635881945185056761870867311946585799714868578361547365114993429960621062722183158803540033103398503951092589849504716290859550819624018935382640281654301865147158674706011663983262526367385616266116619161951349600010131172605214620938273515327172483967902089786850662263304638719648617519518414723788257918788653293764903376160635955802762668308806136004800966702543986994870353826020913299022683600955404587945111214950784141025413041543697252252963050769214107772497622848999397543371731957333379833915880192093930847826057596047139796951924140104022246440150346210140356330432069859040720914628243125664714291451901700556501656430713993516396033097076648565690988259343648834830980506007707906420854340662181880257339125896159781893062717319256039606452807748294005412958100399854015968596469030414508508878070430318011712005427112313389726347090908944922482125665338252668939465460891906646598407999362452555842707340766989379626898730870759963392182664899198765385868244989646229048406714161471218574207156283250154454230133254256148044388858638605352746534352253116591912760851703605615790171018575262763653850780403826286951944562654728365356013654470092075644837929286214026769936979119350206835404156435498319796643071547870589014177027196981041978929927512969162941175830243110277367298696705363452488528039304570430196505699467442318758676012903867132740267752382866441412475345378180982675891674804863046937361830674830965278882772660365632178377266909555301901601025484292293529755030526156301981247360992531581964533860672495942080781156462223487275859379788023681288190911328809183004156790669236841349642691667248268503635392849748638123487054605813983610877227588130535745667324616947927749926909886910820672832897290166901397550760054122230955282724131038166658289914161043354861786819890165871904873778947130599070340184661009775331644405085623031750245134413452978288679041991804254224757440122293285879810706468087336793476601456655878242530488303250169508582060967566356899844647043781113442444777450984167622989533350795643036816836231550854587898003126626219444231004539278842754888690243722830183845272667879728660277003983845765667926419774095822509830170779516053752662263240904432933994184695952079576917247568328642963704949241543159757762806274297303283743200782883497948234325577939423924072958758119462161289926450150038579838981407057081389333625398225220610816043132350045994514707642957652292383977388778380455199755070923708914789257774946015942898455413068548568717008515683329876942244016257664044761522939871528430930376751062955909382729659557303865135689673124252527705239313981969057704609573631942042423862512074254469086352710569276649729666937750229185021326304787487162102047287846088032977175382559755353517121905060363594208076541775464239587143029802397326450879494734275251310897034943279944079653200961507772350801913617182840219690239002472556007659530403510881823003885441899503009398506830158199484793200587615376662214187203123327868918891008896889955430798339832855475872457118517981010586399976341748736718841536279535757346026240674032446830585747121808981954856346975940080922520367802076532431802688653139902331416318779164239264403067648253635945117665040858521829226044772761861221170593215378332574512966880122577730296067876774172307065168665760725576595303434366809305360612035114190919577940661672195187936708301008120846263150810280324749635927271543204175713551587023226016984713655443756507750640225751983536361642968246100727847869389436947484641277723337449773829585403695193246071385953214804061946691194891759413411077099000367959078848034223751584079316762644599069462015832723277294149655474512669463866257872376551331865581262217421279675443450239658676824612965195073858290686674294522260568935454471466437955153769713384203939504385186992169130211051404914807974858025409850074564668576405492621270899983191134084193225626864955221336092814875049078379742544149253489384062762994313928042879950428847459438462001437200998955666678285410396438033251623091982243605611421073876947316079972707204241177864389990681203846825943406546227532551065798568592819279413196770747071386844783663331821707096351222167052116972524486733848923534132596321254710190262960868902679311633256695957291085839936782042123603050274259581114578340962402331615962538469422304632576008914280395816948695720924372067548858939060050409102800922332461514673753850075744868049785171097837292002546637136974607037194871580387633435856148557204032523408279887888554823061049271710221218591511962606864531248249633652103684055133770849949605515782901290116676108766136082148192021868446646404461573241693401015211350835768098176290948867840122049308234631664886342553160002424315497344234265436120096596603578861438631939547724960640861463679599345954097798135792055094757957633281542286920731730702845231578751282018175788367906242145425800576115841349285157342384988147015500847495775499559046691327303970012399288759993613591802559589701225194796882831359788529219376841487421350094859749829989849833539849971197173475112980077180393833120119730810436961946829580956270515889567729257131594894073040939386970452407362603481506114195003651776957064890141221939440543025210079868381196952556597999950149072716040741023238813639121552645481479165926728423809964540452529701798551257610723188858959879731826675044297391847698461501838052946407330013924750828411455382052865687715277692187352749528597210844519828094849485233940107682448182602334193080213960855489022622476766014200129534002363470318181506533057344441919118587273570811983964101343570507453253992263707484018134369108752406699245123708270390031229575846575910120446008958931666397259514763727238959481815067963578104148482835797808332431641389560960120590305787536462894210325186855779218055698757979816204043703967269151862546716683412263958796693249418572057086964072602722701796307810311639982726364401451723300418198731451836499366630230948148757956947368918613114382018041657566275150444051861413466718404103469361424359920089491714494897350340677064493241655822294589737799958886691153164117625368864342141598866360051641419092284408645638512977783872906838825092562135954388633993940258013809374834427118538864498763057457855352170921045845486460295021959855083511045243668601189668660272457986971503947804069022690533823252091360775849385317340690139436649580437990766078234939316998742324860958424748702872032548934111805573027271636394453984277409488845603166080892512451600478757305710268309326557792061192803876614773216711529379580314233100726557763017904099808879063974864360289117605068591381449159062525295043341096232864882678342090008811253011727615467546693363695998168984924875100552186437142190015038842275652899723864785368182664397199492118924359882507081091475559437976450086681764329859040838982093542808526329194954094900040843857182026516103039590391213267976589723733128376456443085526973410144086451175458081833069566084737361932904762226016326318694130901731949894995424795402976927602764800958090444454214667298166011402720120930818134674795409540669504588963205926146443143154049079983745752683673430141870460181292184616606034015144698568435930649613623487881021832358452668637843288920770392386334708213273420152566001025579927467636194166487864679340592858790615913453222081661052594881626766940532122796948912868200476835140451945786802490697002789370821202056922367830915815663340373979741892787413412244298740751106112942479802850628410001072530616206489812688123880415559445350642477158335976657022505220294587656210760964214601606511796844178644233665056352609377594255406869721686679113941277146651614915481278728742748274318321170048785513962993280350286010159937630735245639884346608053869142598339384034683933898930960278280560362136229777550236991174497987464189233995490528312684800203256251906805251300130749072911815201845159921377163000276741749906216087075035154137094755311788225209694647940417003101185417437090982378772387774215540422369919882988778019490750755123445241331346523507553165761395192809996103604537558129787311270703862356775772680095119171433071013618240432956398061949145225294955236639490630249969721004187929075650153661539572959063170251222497032243433910530559973329869789997787294337210082977465948677433681656969514762233584758656284805738674225085861428875569409289028377179359735191547067837065091532990694290496448957865271848795070298083346682054683617700111607510964878333478595579117176674300542916118838493384407129892835979929536000788626384569695526636127279856210891595815078859666674467017766629795461953059117094938815418907450736039934910607415269726098671757424851580034287778509124665724746501361564998755892611832033881144302371313614340430512455595278970519444290423548427159515087722363332898361228948979115857626678972498111640971317777637542605492264516028370299896610114330476388434029462568448111250264016687943198683149600668536034160149820907378395988600047236277209272155372851913173644540788843802368150413387495311569542880821266188425599291849491532331410891262575352150401366500868544393609962190823917095263100475811638992790781063640185013132732211791316930850116162739870793419654124814677282621592858147786015458518194980215170236259544859009242519021123262003984463930496234261194475415189810747850153220309261816384233565366606792154774424367002235728584502595777885150307505369641628008059282265005637408316931556564772390865147170982159596279492276867569775400039647106053079562145435099559689992777260737188039069678462142716505691934069585227361149151087615021918966265535041915026263667224233088999351678539901810229519778849629775904538117644782122584377689201816328460875373306785444309674013263601902625792833541207001098141792184256791987324230810448510880272032564760830881270066159033580658104201049543523533549300578285499873865661640078877548841849442576650573268576486575457014980590361691466003918601242219206487736241071646469721386208176695557477937393796680466971040622343534979917229819739940165810297032542419219018658013826299947959556690652084404667043059719834021524740417349803039912626919730160877522021846950286533580295733464345830586252622666439824683983856274724764874568875136411460107754187987369126182366119377312786270076491520682543984161694404407158496739973627183344626609629542448765806342826200527533852934804848352036783150975233880609487494010127977876246633078778169522850453166542432872254028860126001683287984836692142646118181150958173941272554537021686183285169555346517851705709037370863464283707832632409658630480037046475009396609156277340593132905407477816067548500114861497510224123246302337955739782939138045435120159530106632289281797766866163851030767320297845443896780467064280645762756644186830491889412425794922303644492724836647919335335599026297189957126321890771166078326571417614135280875237720280296138298471318262496392332843696731227074164697439254412378283945693967432513562998370435030339041997656785056223414515746049099583013992690121750294980920093478315652181719578205209420456667363330928917009805964678299963395044040492499008933801250898279755723329573768984756828372567966147994639272616385710091902460784762432718841179325580395128217391110672107224792545275230992253375913508647740984636096721905632206782617904643519089069096909798431119779488550825409461506433169218341439641050670460830348918621256951783729362350246860447484624086939918461098875108923174120389323694227281895427816168827191823644417709248627288546385537757970253574351067414218677076324559432319054968509543960570033265373675484515104214159212699623894309208466124376608944898681035667596279889515500432830484894220136454511264099060776717994287076463679461209102268211122161027989111107861484173200730950061790880401016320910036195407284633151575933598254792486905770873371878590975032340159599317844502287927019060495205951557983646395395618824517890414540198381622949242893115472108667690926621465452338057419444304982029403537510061967122887455607061682860556565704804493343986555403880366399455945931098252376177009494969775145034870914323552873795771926381181328790675214444213067595096129412257508065063903705804985434085423192271335469994617789791237196062327238560938123893991603639844057408250781392442871779267936072566151569892058584103247770781303157058285530427542714196073391008021419284441566229331235427464233552144658672156182308467811376167173121429726958948653557417432420284420039305855832579847533326711025744095942992867063888361034112224392230196823121985664032791133534408173419564303991808050740909310314327649089196441054863683528134528291076755982528930855774710047988011976492682435860266293594629306412958579984797174141664530938124995572696760573785721002376593044251581911442195999259922906796569030177031271690581817679754146944668892510548949900737342351985403265935112995418330765859694633242518359908350544899421936168148298928375781158921005924135169641063356393581770277775543790708264531321027128639608675643520598817199566200566823137867883772858854017236820841940204761658321208040206278213221473131074030553454665878312220061980392272253030010725802254659068458951621802738853424948519981993444075112371773303947400615394508853541631804318468234102698428208744468442736375831941908604160502145810220634351868003248255636815596901956902207993452620047635782370268539579954439802114335865384190437376518335937770501284742923002256459595715264931080144900056187236862437463437944999371309047422154417514953010137475494386449688285088081247082338640409786565375505631042524182545049996019463514634598334935859832987287219455464635251674436873320062525185989643057658525240306721357204955107967685939263536238484492667678777473450902541605954353785919026514813788625421273777507812102987140247493465120182063816059613760170458904198309500169543944029999347470669326036197664229907161862510399771629878146529469435503489132466855287946153307503333634486683017943829210240982329861571923008954602754773935103499740729783501397235310817162289098961732975532074314189224691284669729306560071337767218570445768018499035364412590716060219159757276824649807396396453961034895890090643959279417760464427344116602621334646138260171302600199085335789377644902515392487605710494900184322785928557221464458102598542695510435982621187746028794349983598468915062208104440943541398310972022542959218204301510917658659496054732192967273460749096034648210608661463774482032086658813562997714846071631486072826036079600983711670712048626366100540318511573443201314061198817430952085971785945494100934711737977518379928632333830915294302246609511627080669584172061860978943085559403557389759716967624493739597452419502181902989936204774757543070705527419759303747960911167068457412234635420861294072820768844640759964848398766720188497644154565611626864828509704986387906604133686804438473338106372351128487057969016846782077480335520494434141634323364343874845585662056406166987509116605198985808494665164765520733823723171003994456842486265918874092549731007535311895311057751997766836921926507398112532281155961268865029590279674105754708019300113719028491035244014047409279249195553200119760850254678863993375019763129175471403034971485501308911490691590986773899374147745197673536972549568922493217319508205479122987329829800702125469181122301896941024467628206903916120783252406747633793927421714493606444621090894614485996776751392174627069418690322734126887350192774926186630049586741494322231908292662971058383358346372742185087740618595333179049522333203105176291026128148010340373301440654823848194073528127579169443430142782494470721547139955666600130489670978394461163861475086968921188131883383277397688169196954304477941595589790258041584878637914778230865323233134673356859074312840711987188915778720731240437089044668079483727182436322181906819818670210931040582684228202224077963559308273267779727108053555836383412565521744658877973024700443293172797459073783917090251850250076842059361975712230168662903282592114925668932038673207129760852943574473802611372242359735498069696244149126237361023761258409241523877603402980036673600640267754548339090704851305959053596950456040625138307570335241193824561572636105063034785605303466627835548688880567422511152203213331047083240725907458036913909722986652423044200255805868526298777754288431749775223076785775042420401525975825926855340254488806310967918585999080845071983134818082603163771739748065375042992268121965945584946911955903854068887889707754079802124673871278877540621991610666353243253376572294423924532798707120731688047820818397512104899498110933126677213741792029230315946249617399315459728667278454916310087929194382580785546410905441014586321441163050082552216681439790081332039173971013016329744584337568421900071908090283593835296484659291444970708673291158445782391874204968906221808723223130661891987930786139091538673663250132211639178416159835805429977823188480418674780698910821697631376750182044989794181257856802777898710649449959070900227707981757530734315650877130137791581017193844842241482099451609492263725361078356328392343265360485526259178507037208139699210930078086582611026742243337676378053487170669051213371526335177720910877294514814982486430719936625605319495029062340030943552824702634561991747805626920509923367969905415716689601618252221272450712118300880771506879536313757664005307844125692761153930513588963133242524317858925185907230038851928723139179813318277006353257433205187728537767092859393354781196062011277359091261965292642872893949592399688336290708160121662413233954957959649275071827180909162683851248206535600352905912226631246174287952031931650329165717834350588965107504907688461119195346340201746008184275277652046076921947863022611439440131526358272175948249923583180758696405597105085688743179800388128509063421579285351678181075917609141583818976362306020918249134326046765297149197981338951720567283779795699409477617438274796830577694159737427921948250316815034134426489078621633349253943023153287491693032860219897899835608195841866591899181405047639284192332898936792741028032202104199022586500022725128302076707649100915753258523758420295180749483856529254745117839270631056584659660255480976141585056531668171283512989086276133161265849064952863659109777275932611556310924902366361776081591847256193112895190175039464525276035628582282342842162475676058257695912581024819364900416282654791025733236891063252396839785279443646614168949941595041523888826067882443959999691354828531043833371298687891914204571905250721098778093586603663260356578011041057548815304948741236672026589905905746960989797057822212848828302484357487240027342049432739459123142984544530108763641069582677885864008608196560293416902156432505429300729508207762769127417061110382633925494943751502928794455699503936166044836182928100833136011037021674249106938625208156655122617360102304705836266272576225001687616375809957991727914373073025117657332117664020063406319009513984300305641856366097186295353420788663504712458102870886213766727198765988247294692354013730798374176169628429655255283536666460927488868202291866484244116050310270563950465709235066389255723712152957894924556003394562439887614220113610840488910234332039720313646590123882336517150630956987824496393376655058621884618003311115677521459529574670313514255731719956549320610972287565202822824647489332563000248914056224536635100439546480838596175455624681339060911475740587174048590808785610072340234851127260047014465734745551186742300139319570615216503395925696867125415791221100417261333487390029451026515303808779819470388680885864234980111682659602630289805785705391302182412314647044272304719936203198503182392140096191322580082570318336348727503609427240027028954891170998394462536251875259781351412727830907049214216700812871212997606400764436176458015398804783994510956109771576734360349783180664018004477699999592475608554945034530432600252472385064587509884549842190506051476727452112467197190172144396671446336124653768811667558315513751678163363251728805951147654139579348309925812467362373527244135353971230982728743596138510549068240793979565651816828540074354073460197947612955031864799535039240371982785601563441047660217347817027194557869943966348131815487449912756630721707463775926914873199493710369607696811431688828885159005073426567807054184148650145188574183288685323512805318222808481938138927421815931194689021961494575663131638802277445387301523416934041339790701237613414349620888081423639436726536324424900531304617451833681432222589945504647094276948809178118432331680902983796338035275353902304933359163941120662474016647499241678954920347588779628570903598129232404373173460263778218647305380342967980942659425550816444729474343474649969808440311204898273553817797927517328178944993896101640302331279217541136489121364313676300313924458972366144151978337341900830682412257097727823564934987585983957029832335463038505267815216676199626075892730143893415853615377157234467290067284517765063392977038955422998617172430624465481363907069154641505290751233337564792012540049395477892211691968774118748430702420829860348965069610759829913990416988961973431109715483565660925034972404061252178297675448028268078783616546670285976622547178365996398540455090317339520077714916217840801540720473175269530165479089681178479962607626393237681602802517302065171012465440269475204211613195240567365057384569980638692759421950679499443625889366538167249474118025211052266035808097940860612008751291257730514725621325797347666310604443590178894229479510278179205475520411418172027558587484800054423232337104769736059039951832276404214080696327745529130090045157513819284304737302830247988864704321143798078000391772096192663656371326137561400473920313063424944248451808894320289275138013446195035445764667281520129620190622431178317992968718225402618615792898196766299791401497283146404854395212673624349547146121540458972495038122169240637316835323185795743114417662180138663269036955380048971190582454809715637707863866342376020055292884133583056680119391081702194489113640895024871732361880783110382439126462256627572656127143947659133727020128937638056747822599951161588041290715130366742172380631365269009479994632426877718356029876137361965168337502289480000317387431262885146173763252189177503049201023766879095285319086480030728388218005868062389702432876276555733211775395653445770111485214125205079676064901754651362948366552728772129601431373032476069632710885504983280902865557383342281341125705343175494191791827055512633256389019030892473854528583491872949966493494461094459711384524359157300631746707114787111830742595493145135325847761576852330885452156856639229319299880867347411182761089237438768300777422297096148665867818951921311441659136310230905110080102300809834595546633069576629400624171977556446247090011607638004146877572421379651387203106868055658286130152608349376508494868221656357805101924251960337483732082786301314252116491173173926257098886541591259059552787773759984066126541850489374872499955913405308619414656226561592265889667427044268518731379938291112669841593504575430685158558800275679315737280601393141699170516976806944584684194586263751496064188031274612015885263575564456844330666559213303669247280287991446868975131000336586301377557833935027801980130620192247817501570112614383445026219409698124948519806246986075877660869628088387645084296520411035412245399229944891722479202391871278032863340667951720368445001709274255474248405933856701061650119755024458527173396395569298394733879135818987506101162286536779197953509189737547646378433933317503536921464787137684653762562882008752595425866584486183516522671143626918167846378630482508206997712100791666065676428701689223631683571612599459248203594149727428847312070266887742680295282037766165948047550135511285483682003442579251583847406071000374574210947391811661403572135948248194524011597625462066966330656634970330573745702341058191554604578887807459974186665683452661014312626964974639396628773594871921428202263067665457599584307685504953825447413199233634063761891703800262151691052539843238400165708097986636079098861604480920055293082839755737302529019574373371746780856787085002151724643576333695558330477498922238647398701676291422704444927414647141887740522572579500244450244113124424643926691221974586519705975686123900867694207646280896059828274189419489027584724146367640472088768449506175593695205656801341249343688101947396513713065384992937980997452450409804636341485268008158410876081069004951967597070807633198368792925233308070012047643959556165214576816799192258273230314043116224304902004763890827943838563504529405987019381881694504201958742312033781234266599650589632948877425226079999967568242064837584121491348935364484285301020352971262279380242292669863816341711082379843412996232915119729725474063177782229732516160150471849485663320351942768927549739757815731118984877057323969261970428498510971012453198155473655874356216454466546512154199919263571758647890421698338822261784489737894920940491661052948692258828645283564239351560558839966802016726390743111463603767536604785031572904261824913461099393706550249938126993806937741592436867392730855455398395098322243174597200990383431670634947176821893886787937037911553090737287606905100050076059898994274491887186577207756281549750967548008344125810607457766876283600338613324223455594208566870033883478063434966395350558904999353757063658460486725078155005247516814234631056445405668878197444365439100603941925807399714174384695284307821610069130270486733712366648023516457119072896875199625162342641101715112764728633856015829487902006215035301196112148060171052843987985484895234582234992180998711306549603451724909118283005159774818792154197865689043578072944753134415358308125225996100166156618145069476032678610221373284230888965780974178617860430317825445063599362647831256523045225271767116776820156765023418177897413316342991698921685206423706922899609220930792939689730698228605754465431527590254742320535697282429775551932880594702290032340391833748016536073799074139874449952606208532926952195920302335221779482746991018432800591284353326818765497560395454554014619594874842686310223693793550842025486348214865353264259023331068170841595440480467485191409340320859607557124973630175305738507328947158658340944721502908404846649164824869468877356591029510141954281155925072466353044477920161421070677037418229809914439064750550672729244668734607312912955065452810514367898103564825064374132854243708093386466990553881667189616505184012144020658660186702574996171488953856657182279390928169670034125599349846535627547264122099666809524900263747152026238332303276449936331033797785141813863671326503342339920599513413822264947982118242352219082760980997114924081495070651827871312512611061015346763254861968243236312436260467852242392209827849720103248931215842521797510902360298971883867216292084337812582103792713492325958046852418712470736472932822036332736421085013918089566504249509787482297612934690889024738933512004634298089274178644054310006058188569113378918687749733794065309393547788016485397315349971725191742077883098171918130383798021542160393803929093206644976178488314254664705507288800971672319434947557943769568217854837277118610317969389617132810989025775992585188796193063353031050980699080543968207114143821720868260018153638429873736520423969675659220916549731974119102011015365189992464997555434246608273231044813086618136117538682796925331833271288543775499004819247120865149445003416942617359487355781884750466007088896544655389802381140655363226859284659614788348382571654654820533348988031036257663029974682333760405417142844931668450202865756361810712992346505563278106688524490503426261332911208006285864518863513159066603746266660127482138824408410560928755474512956076746897566517421999179243850803916685782275556182830784974773237501178333734525688928274384258784184152847053129242052375386319108320957886157476526856459500654767991261307341923425300342835672328323028606385670962309693308101679100953834095706622792089237452735103806992887454343712152909783018659243244861202675820969700401445897403864642579810336607287551383131078451079096069364918355380359610744159020403436001947634602451739264728426725733269124906862339503182152629994329231296048188094364698373001760204228972423812733425989476992856175179019155476127216318578809541370947831322046804264529326819717467561384533970853139830873524813435534908602247138285196873132369579548451471829743183098061751208488025731691342257426000551144580432775338077734133765193015369866366893772892908694123268955462657939295791806427360832073183482860402016602536821051772974290064227327242869824508783644480851150455729896383876535792683672172637057294544963632385977891029623511461767886149111596064457934192784970757790179745107304614529816020350999947860719865425831985709228732359969666135069839370818672305086252370680020534491178392811511972782899941654311004594156171742799925392563470652328956207239106462489938734498854629716879276763897377075359146075764967566913232092681881709346096052631266555706104705129729875166483706788360433017311210966635641648957669200415122736111552480668066154172163013759376067558930442471265571077383883663024005441092542689506861833878956391209191474533887634346424272730137105887811162395511166656335118841081819178403277116460565733313898880365001922028371109281301696159321128644295858570415620182898187654343535866517319345106393355256683773839537975490074023556353552862254764373269436410400815871626963084202571794217645092326898909036782690732946024341008292498655160545487853763522540091385772820758546558767151745474842568320785186163618219661364460215558541883811007960953852418658230918715252260027521660358707879468761877409816745662831520839499395730219929278362594687024443162473420905999989719548549206236929931720909825146478659576531480673131770299120825656505420995349491034414053288125168649746412220484533035556642186978777817638968941691451829835232713578520982053648119461206057476532394114082438842573373794083351196313643227486502748113672693814250809625092316606950351650851182693093984126928108231551805152932187574023412815924713122295299386074899578534801302461485573579427740919335112579827091249780664540827728794085212119158902573174212593909261149943887759015767908425674913962572438557213502646675434715344466074991855448621693009108204815462267555356455857173361553748228557103165913534044273833135908116840360042720525048420412115313909139659640803106553999276092133086938741254287410502043920633233641686089139144101067299962601791399528313603831841331925855259812961833433745843098686374467800247138776144767140214828984818855634039247496112590264561728250185562252121591378991839217930982916553861882453518084088842189885136166860464373075795837601917912282435487252487987686466987165285315461403021917292281623498873626585237183909635570148937258867664129028795006407740132612973239105575505000486706741727066425389013697938734890820965993051783687647219872958091345928103690955787429012366269377722721677878399477648746556210277172738776848834994194625930943547822373700022957455741994082818041123893558150008525400077469010127470143910691668215699092375093909072774998217022300244384394424021943047333888377993833008538170365238886436770553879498882989524618590950994448054719523631509096851613793678684283599174351500891056067401199128697245934738281226454378123684796651832357699455829524777774544078294667649377836994920227037343401448166363306148674153611627282205501998714840342714851735914629447939531819360175128906440849878390408148757651399641386248982608658374205892807812250984284461106147322574284073695199352138390445708816236944139323394820293842013278217691257709370260733450037678972717993378167613678602198101521412237235195277667024827025617912019154162286583401705547685435153809047883994448094104929951629413778960488738374744271152818729946746509681582991018457309512281097355025272375941581473275397650988157404573351858515143887097996172489919306758246117547099796213059485358302421615244880042210530335125960974918492825057741815239689651122998133079159283551411162335451226479373226508130129477539190138422627448926753673213967610405448709631738988919562803952766288461836175227255461792675736680893838993656211886735377566887877074266084005803052332206741115025888972069351307149997329285615381043791576471996617816405343923745670258185834166654835056000073953989352153543326170855883846490419192653963910450991581646554055928956651183968763882899265920024493868986929148331713951092126795622971395466131082834713087007483470571377392053028701447429933397803371577442181988664308907717159169696799626163989984927656562132374976869475561471702192157865849220160570538965415140196698762267637655599003591332222562757209790368743084250416526075936889830491095309511460587278097924801159856038889251909185879541742803401755750745611430853566202355901723825474045891493118294120144947429550623542697113730318953960321979130925060540842154296704301878434604299319636436959535539650226745477423108643149755052807169851401949334774689541583888033601940400632564737848812708967740865930147366609136089234359855235672749024569379008709055103410390630331120041502354097762978916583991691034596209305063615443064945189235723250971282375947210421327013017068982378645105582014454448413020894207070174907466337090697316678603431101928295309777046261182689926104297490925360567088342225778899541941485155130141386081724594470336958915456324777955710862651819446646194403072355484923642752434849607864073028792129415836555456996969346756481231847939397093413613485645789888134301243543237666716088622619273594319530893561954825902182558170953152446718209748025252783003915468688911459919685556001691856381568013870089343376534163228347488904461071974277708491810721288665772435264693725974524130520423910292826597262690197476433365039918392799913190538561553867471061945672985010674035335835906115200792823785387777845042935220675441451705275859660461087653740015106494527460563569541140291937438371359332988621695232149070302730756402798182879501694958004053404134045472401889551137242232914691860890563681241687391183057280430488598542139128091894430886867935049125491731863064071248708020962883390979372652708626620732319658088777328268492442420791756576844366390485815256815174233477057955469930305329172987209289801435901247570010779014544342741090718559854132070907621388954731352479187669726464822742427568044110973975132683833879770107894288014119426112488666502061508876588226042014764478153919475190536414748984312773762057048290356406238227032330520031209011494235204654013646052071420624286737794708966400151452920471858372914073770129784149074956567817904562999759083293817683889303382703343400812637716874917951752891118639818188331341056171560440190850591685942336932575925697294048599733908452558990761496749635124663675326005177738677209066441172679211931954334810229426899463521528627103103478115871282047209661765332483554611071884300601729454434767966141444013999166975576893517453335923033537220629433265072299951354731776198563489422112210997280909238077661402832349512546302696647100302817561099154079489386712841686984543311546184566861370902450018947717263556165240620753184376564722647109905369187267020969055442014605629934723029678998573153339160665584351197160941246722826980995188108982850562358788817620922147689312207759745282263005127550509893551095612131204754527199337960753279304228395050981059875694705207044312876251916260557829489559065481506654894739712260887887078407119350088487054056780185605991616473210666994068812837495198256677693774292189972525400117774291018794683623824974253902493363601430409640673303963295942658059600932915521979787855017042158530764838490170120397270101985401494173775019745588358072909485682498599449455802450996727567057323569052158271770457031675515308926386379388273104562759945573960142716776082147736569136405649993520807994412682525337654792367437548807562215636518894744335814185992572145059719839734540822597813789206693137981116701371467847762783641356842987784109975172765450494680947590066187740200292090058965881438225024390803196626344752955679696657157903022710368380271542395048110865960534493538322076064722283587498300900910596244726232861731997368637365097516379785831150101199648178826363840765525038347899135325393368032939480846789965167673213771074381328336854390955641353267401113882885071300451980955104779872935989623224323073309828119171289282529833836252319921579952574534513110562459089401203119345772900158053727425126280335420568198208993613490102526141788672591321403363146584900483660853111900890340696655190212409963561013229689147460802617552588609647540332474546599752204155966617789344561851883352206712296100762593185901740806949315281580046994455745285167142795450246562680653929636037071388252677978405038697784282337824504500038677797701641243721386984887804053273020030735140556221136653084991486015546095870789263145060340063577594569066414032938392773508145102349116725614060715815251641397428435658579762759867888088442885052750852200158948029104629207254987042061978131725183830321438883217950644009662951248276112531825728761322102810548639481778530051228087337100771601774395498632383032189099402151868445186626459105338557966608669854018621468397574418761254877247831093688381317986656376224220702352387582787759226271523332162375583608390905218622395610251110951607210341360079265987091683406908789095070196935639116148641211038369577719514333544987317384963767110974905974188868674268940850075745239327606084922605983109039960781332651616360729593504628579342455554070043978486074420122920949307568617423223816225504501998280221333714485559452829660157824976801709768568988482457555700006337498704190177471128314226484986178083682985076704685137697745764870143001778924642829534214994894531153100367613420727271672507775846972008820695826698703074791233995967305818618079138169364592280960940609072793806212450179441944101967305169204916113207400355610823381391723848861976535669315181753201951762475555820608714864515806962556810568449056376787248685515007262026724769813491597868333330966434148507871063788526258480979630776718886031297410206903624037834661598806798993965402118343674247462433607618427719539565121911025384504066464076317215663002187667191783037460824950308325626475211316724537314173609500488639803999949993472509161368652881083928842461946431465203788161490019421663400929863172004089135866045595116056881187772022940274750670476688179543414125542961249861676085736119734758547383112969307103037661448546090606926850130253083612679907683892691204030868697901859992510475446201390419411496317654912761127985538326676819039752582227280031983896778092542439126563957344496772352028897888018964444539109675943225684821791557075509689707501680608748500144588417971853259509611317170700738819093601998493876589616446292415052911608896488341873250700249439352117268514400670459953125939508390396729158108863110474004897197150333101178135647363245533832824783507700891605256063232043538347616181777058892036945022516453782571128710114236721694367095566780294458793949529096383014677917938764471803170412667882034916527501265890614645142160755023271515160879683445708716579331459145214453302544748266359148040474656976697618574090837265100395803642449100932605921823082176210351265365084354323199953990695039049149805895856980674738084289800158516700195061217273623430230316600207241453970846505950896634614156869303263286953911593501056577756305534892516945933620992309042944238802162397426143353713263649552782947267664478130521808274433320645558778538289843286530789274191888768310525458419371516923622852213642636157780264425014356819285652196467400325182768033639398528693933984100962382505948269548121090779403096420288165006418565026346273109754012419285759447941231742705403859352089110624323049890390808972626968944606012048482550796337225630623008179673250288922192916790442758906132859605783853235425092856481737884229204195085400031572709491788150037282979842189813071483461565524321928320416380701363299688251901179151110140582940143904309602891139669272583309165303400955416702588395872297232792349261446321386494251081903159171026498015951694726248496576849192580278173048373589553004019665928153081940354366067419647571032815057848167684897887483095830979662434470854434173801937976925217547395743186508971095379787479598193198752413086390438329773055186368284643024040449240329532564796742864834883820444096124754071300013644744862688335441195757500350313166546893046504335858510214894671829365679295572302252801334049200806519487430108128150789129332906278039637252136874100406238787810831102298942109801683433094124606065674137458450822403118221150682297972600982648101719896855089564453254723337789046649661042888299007756950257273701021706253789475765873094741015461035192810886426421073061687589028894882224872708630042549980478447423167314552322931265057704985572936933378089727682111920316653197643293136783853415976497555845473717754514311430599640764121230612078545356790042519661325295110246544019752079865268256071952111690681070910464891344521705413092957812723443672066244337493218528359844279424814709426451921309323236936438366600387358959467737308725175664548178203480044910494734126434808696935748595690733568119026760021174127536109466254453086943826305359434532179077284830144152959201085549580360482769931331465799082421779588535763716728721690923093533365613282176766906406375449931589024186720990778484919938870586987964698490690631964314439281455204024199201194366724378282407172890064820277374580559082459959718571157411199320998548804782051659660201022464373796952813117295564476332081937273785361484057318757137024225328811844253415410147419693728874159670823537845396230099628372134598173015693073190272460937633887636640767465485458184999651156842467213870019620185596532439903267945178220208537903088423652841606811695473764089395867119837275973983384880032249565077259904988260035506176377942801844710493005623607745283559097254208051478252209620985681964835482762989396745149960638106731125720584093037695483427632856073468999425859904844921713072137908378174379502393127074282681536706999495042810474950072894815894851510408667274068952650881047566842273941975772036885828493267639416149917606072052726131461942749515656988324046768361295067433097005191048720435742647359654922854402579220420570545476032383397393512447167295603724239716524493096845539467026055296605188097146959549120059100065784780765698094241305366371559405405101490820518919458601142785577311706823289582411065160937419427844877993387178235651124373716648422234635193421773203241483328277742854317733103908158112413434202583769514448667244507190901789665123127998957511922893577524437219042450416142929218638559321815188105792434463122837707811262395932402515914301466602389513249036584780363463993342859207074075527324518306587913952588302386154950958668671625733498970609253105979835562600245322614645448154002716208863026404115441350612433153062022184758922204798068038072045904967282508890603320327229100766711790014354482211719984542829347219557182557930256152133101825818276107366711922807215219094914913267001551493190475204232750702518617090474917014902383084179003584592443543901821053970974247380100998437304492372838644352967869175085927536046041535454395558077099913649439441640792903457626804096048961059860352503848425558235003965220753505580096641301309620721325057795483628821452222424386440789084932000022105439300751477822525602204903499330022409926702636350248023325462566711897428750947940158815046158348623729289260565856802684434076258808142114233086963074360109137041327622571851128260652260466452475759665732373738466800402803726238290891034780018925306228789199411494247459666188050914116889974650906066624962124701287244616825925641339072809279143154171480742612750550808820365651372418098963608200448728256810213246179291219574971140212383845821678371179750587179090947080704179175743485509105675958475848702374144514881826837130703243674452317421247704173198456180372087997935484843949829148116465605772854323996533517156413490384116072979148872119605105576732622609364238019191063163955198052970868614925581145395199225719711833063316241919793209691471738085065773681575623090606144655155366018138235830010658414163520285940942660818957647055388687419972965521551696733989597681137685337567675344353817152556781435998489899461547553234071099774390575751209209820909054171796365058561692693499511354907263917626825680149827961158393290531476934980178195224215863783084016893642575428364177357773057066586877840289856375385226068748469153465415350078805181657357994361920004148982857809976075692502334206576143360958201037809926417582216570676245387477938750132625961453862902267608823332140084600293806029499543521720271390882103593779061683817082990816812666960732893494457307737483908280370380012914824930011425648508011728268635764949347064318417598607071069351627690281602644126866217730881164431764603628381324974901200130750576490421733305488255556926504109467573685421873398067060736639957515329131102242900404625104380690003129081697403129317277840590198243881617960185478761999391855131286907426201260841466646748769890341600061652651921675519964933401528442915874171766325649531236598037252141078250615103514616597178612544829613234927852316555354335408687905543453320396267508024896758826509250862305770660440351267462245434544144170406362863145779611230264418649388784383595358985004886890811671435569164038188325568179912910385437921232548620091345389107159641490666470467357066685934965058149724790869811436020238869921540842057470578754495381701665926593339036736830527447014768333684633120646831504986632961866473064245405295747789420422219631720130103052686236796733360065573663833362158818359189767773972883918780430624023617354577014987626616039491006183890518246784682178049418012764835545624871153422848635117576802130573214849127402314909928986599120250204449006324455573204404615775029447269227765944458709347125735855925418641811123340026089980272104695732853578336392791046831067548571892040078037684996476414015276416283790520374574592195052064304449233222221656859366575635514900025658698436666733390333107032180369400348363200268324945022820478852066207174173101407008841252001423130937858617086720529386488163521772020667689548407289314806261656128298609584434304037683922795579343103413143552213388481167497214029469124212968130622303138822509196283476179148911230457180218457595733122761703253527943895207662688762396691560685970908119511915247580676540750100931091540376227794522251538112286559297209001275544504618688029030579906609498274925692502056553820349349279826211628716477273556261610198574503762477299735744735794196197117664907929236249502716055374570648156217462321899264022908754575866556774361981039906437494917406009895481381138832666168415935752614477942934615860852849266696141771346826820486190773066380045182586845788720322330918672174700241583394372553176875826965752423513968527816438894473513946173265275192186627679053721389747474631826899361110366613097399278394334801176735871266549090798416035877045251373721602980996980079126821896983692543476731935170739880188763754121466148141251568788005503478529952755560041191323270337321190850386943677694712985487999426038821696267323234667063637194977264932821837748072284863834798158294713148850158889464397249890340571875191521239722412990084468708726967912610212480650574746017490749063625569537520125385660242719478630114385501488579010149514383052159515197449041301566921645334656678888449341509931809532766451422424988221205911529783761836803083213740016201323229000807483757159761829419880501581077196688438703996742426556515309766755081286310865637324072496861323212451450853618234688913037396315666352712311904154758842335823093555308447432463036060613951340312084786077316482756043121977867083565787635870542449763983481487131000173157127656889763021382546386086014659415005156307025726929405102706672834240330218975327976306853441442324609895233978920010249451522954471021059041744532555871189982720194422226186553321603540331868770755513363863337707259052513931390213454255354015725783787674566249410780196068500999960603237470932220755446992748157688878526365672551572173028796769546107408132336422174388651314170236420610824800657748484610641386224413633813024616526049053762424347451066808983970874934784048395852821524821835259981873905849081462325418137240827555570421826033231973392515584181943113679322743887700873523398727351615700058551057746261477007052220615687555449238907076616981769874437650252204201541476229167760869356875882999839599531270031900624703635347681976625596144589667347866409783814525067235501277826019195424682855898932328946422292336755535605286885052942611655237796666455456099763024374489358791255736862027963143095513445982044372684584651968694260585874164080153871789708622394678805495128225660431860902417168605184102494545421879347337980143472768448687418018819366060288412974451715501611446771403029639314496005119295878764278823303077100354662097648501820552251546902125739421535565100111836193275704833050446992296123497621191917440217628479246046287202969945668502519815257563543876572183518958532024719860120708645332770184255396365454018776673805717547869777901010055029498189395648319916806000194604238473127466945686464743634760208334049551514184076218012675537471794586905244459055750813378789214144743823341201598892650526571168107713192542353610290815307843177142311487824186011099020231269980930088625947878210151040773139913434127163939028563150998699907821510073571282164768992063771512606525753828294136395958601746116384220114386452205381043259861019639747048103540145814624700641225681758549496061035987432150574731648308359219958454040764023065542561412291971261685073032119152470650773883554018108117959047325003801716215431023892503458422073275276387818725850265270326110411796981150728093522119854529256195554609561700238124721785794291825466239411453811299267778905649094625748635811390094042842011614283425511806569830409846666036720086668770641877057529402659579818768997528070859233485256070355976809068419679563153139833825767405801029371535356357179841632061707354816114700247782013527753963943933762108071730545271089640802939934538066864985221998057647462575262633023627254307405171095085028897936239414799839596986085693366066250103511236475595155181941786718932571723293171851968096665925331842565369683686788081969711681853115692860400261662930603747853657367391409711991957430160670087666144719557585888132982151726019059092330762166641777306920234005237025205395320329761823315723217681351971465836826682697170368842871418615356752355566533985059476426079043919907774872477842043572955406762550425914685773117732354932247693300365119323210061043314406016117875209735401258822389569110639080498646611252482199420379993622025585798505409074801556223780016031444054770666763467751653469360003346863337457984904993986517303563676550408563456929282550226749886237996257818347926909981641697239440708269215385457629436320235856588372776540572455212139900090029851638385981732252653889779125647107124538453988340286421151168174405735354770986160496095725387867930333414031236584724355208798122474917269390601396281865053451699109068766076961005762879058873496574716583793452020597476181682218461454100833049421529930027367213728435804082423057533597610116584165300224164720113020804007979880226789052919833942021116647597822072208783337079835847987959948446511074779338465714251670433074363841101032708170435567084547269856752251582233077936188665480115930619987083681006234763633457000259909071296594712462562734211695032754470751597074534212244537764685197590174545223413230726826296803884801030520682834455214939367018633183396126331088807761234979440457317280499835446830833984198373770724168327861367725683053099808132621516657582210134137647182355871693117874666148328319155296569967682513441997078177117339758342337484946182635464709206310657892635557916769922377688588186627908654420426897200669754362017975919590685685701014699631580303932786781868642430161973727560368971696005728409048827679360304655694065303410402819087937763415654386220054289338288278272753496410132778815924229098093840737864842774395955107836356696214737838717918445381708566628259532474393466525053325867450161357642559890109874845206563041653896321898794146843621148325981101988504486189777813519318238564713249067495888319097821472527748589406240717425955534434803873694640813484839275427414627457379801165302311565708073999590495623223572078730869053068112332026421510626950632905277150468975680036153494646184813215287627109260041093824763632783357730130895109270452615364541153250865718887653404417247337760776624188275989191232712606633184140098694437669514929341774138814768918826144769054722362047985359018351055081046177175731261214690743735766468918504682342667937652183068662749664369797536030410971418241821334031594701808412706727610035677719490463671071319024908327572432798502975794530851416228028213935478858080030242974175336658925968580039218563371609929588946071505884728217525775735474378165274128429189282426331211695300287516776608183423504301904481723351836539199408232429522758116828609428575905393568125181727462246354924703859569731907418655143813270041483947843401998847523345006025795050305415356900145052572544581070451725537845912447820800025653050601898226170798948682319207322963871360384347242203567731876185481298391616044414700861689426650259695269535674239089162544786937696557817641044949598948691424032380835472376481118542724436463221782552508010356496513529612936653537435739091962331337240276038141959141669019612166576140724843410932439447490235281217249970627416276082732102610960751399903071205945587742034847172502959554915355291547137687794091848400366050933120729811851466306184936316072255489575009257492492481978057590454168851321948616426253243148383870511587100868212115409472613602242666813962615527341913873326882420258312885082964586371776797202762225401549646671663426167862325673819654033427938138689731569786148960713037105740917093571279097691985763811219842488151638334317711350824998304374375347963725689012657214735237373284686643494079274548974004909297226495346492803747373449501101646643725323635812434381130585344167295548393657892760494961113721470294769053317591121277265738786763154127537860645750551207339046616907429820620219010859606653859936737342998655716345037301003716093181539018575791212028058957694733736191053249651878361038600818674742815206229568789636549964876624804353518505464993976807799460581027457485202250119324140329690003009130739223655077875029412577857932992249521482054004800882826725493291424727514315274635275119005349406530348996773474334297147773490080604367859033937264297649480332235793083923560916515439968247260341849588916952951514330840177985256650190738429915428392023206989259944359625562681753174022761748530909274019697335113441713417028886840474471681102012555437817627018389403592487696968434530503762445749171959660696794186899854859390141395174969698177629738748739073839289586573571560938865008293567732755924460394283016831923762713061724171778651043572916693168141383790958548343177756937238625342155584302529318429225540961003867645284407731585226163327667333696642955841194799943477040256767153254284605849782228913670315019938659936656341138381103405034912699490126747179980744039061989020898397820502871182086317861557525416463625573839015284815748750828045710092484853105216320493591972984575449898486906743905005122199453273403253593830420840386254523497942510181453991627693594179158613893063235278695480485527719795024476791604220560550091714381713255253187194412373379771986788726878703334843519067210829060803007832677481559097617287331103862940079123617019787433570440704458482729467597041862542805825038833947424556458895007458987377978383144257285520415092427319281202105788124783132432572117893632348856288584287862704477928186045963345088400349124778397947441084800912612060556287801731423403456466204673338232116702092208581281372414035030061078446899563882717897200677020910056654007894626926598236569610556791854884599595434892415625814773818476849885054867089902683657932907637616484597005951689809326116557646153165195311534017934570383099574611220551270961685177612296123902739253227138925106100751174464044773782725917674034427885849131559084837112421227800025640854349620044146266606672636924970343438221051384675384088805195582063367198504427581616790260552622281866486646974587075815521662598367577090065579306637253300360102901194921778009864958083646003448139430586344527130485579854474813888271246703364080939851902614576037490024102769385259647624384591780002835483261597490709918503635284665790876975095094585334228889420229832030802335258645890974718854128390558973262946728501128891242897976783054751191291767448587214603782707373934790198526558009195447493363396892237218093845223557020690887831166681207287500728248138411984713438284489435418661254519167360827188604764205537177484096629357016060462088521918732634525865295394804990297744359723337467614779209722138968959874669427210876243591427353764201157075030471962103040528890040328710361990248236135049265925369398050822124677035117590555369495889790439507829940876924265242265812533934656554400250389924616755856437997596661410862949204960786030371618031821843518063798912024486964457292444864610033829601631028402349528065339100395559683171229278856663718185697228676008513332507566241135142913082208420912045188498439747849781922533771730450464825184427090799199895051207438775109859094732858351368887998908801140520145718703694373261605964729328092014302045918971068963075401032176386447765158653658040832950585249492797002488933980223458488067717988096755593472102316079706394637490682080162655441226411966216235637325549461667982478051337519549314561024228762376262538054823122466867043936409364369356061214224787980496882573099152649256623423489164124322234248775562447939744333037093918318799096428947167361672651901390110095439898352526741140354888423650428643737254378930488793708231242205441058812124864813668438512176195694585189921876281299814444232256914176272831591915713275706273662370116579537181227228999566552888920194574176615630134546461872491281724699459290037864759739341491569834619445189981611633435709052905528426037172743104016817741884730988877826577177282670406660474228967857649767026444583200106262237752106753965212542708273468635858924995550295031344739297714590593963943117983452508764298698496615328904709849323327051582656282627139993276623141100997955469067598150358051471701789979838688134698128238858295211664124622174800327568514130080616552151722645195488625784033916637053690972753112274511108801548185020290461621778306332650669488366892256573111790759707721985603804328955844658032561485908084353497549758734000546590884594393684539126062082679287310807001689386978363893158114178106751670169250256686766101671866320957484270222052049523846463984634966069647830999762300694377353227442547772083968730193721189874120899405202613721918467333587020420977263820583380156597524652186025698358729913423463616415706186889575371713147006827763911001150493157507110196930168325867447123155454413771612122593915679834029668348884083663637114827359140412416392446102903473522533836642997995246941227563566084136090520432233275411420776238465377414622336359408594013337378266328599347666074511796132028037509515769802435898732560969657958290292070019855782897896758561949933012530406648470746327413168433812975685235771687386934577372599914024050628375129337710349554377728839849308930860866958782317861307235303808360683469193250206196782831182580925365283774453312505964592273172208213495978697799798473220414121652989320807888968808318991457689484521690873525071778017975849131830669647413352919568709458485542662770867160218214951151963533102956453356855425016019841266615682377572218917269965277904679616392711653582773799907391356877781640318554017833997845554609796399385506226852843102886715151524751550925088491535094797513213229670209743043368943581950849702110635382508516769565844980320772254228670920332080766539613451133072959694794240501156646957630892113442832658976059699295680064468747924839713832404855771479232127968866748245938470454021645274214565327861912054602134833599092642296554377722050875789368171363946384867425025484828631164081307855668414138296814694936736527319394761968559151708216278041683241437497315386091899305776528595794480849988954632571578695360122335165280522501657182047505719158393025696140927624346625727407019590465114172838824010165078921351713035070412766208712494979305745475664902583292720099659723768483352637170599336721588392806546882071585847901966203497544689664964602912451378161077834054440807396794698931106393915016814153830647511777217349747892415549401307581176370785093969973952902323174116689295632585840325079014004559552949055936050156429118433149347027845884775915554648472830893326476678541848902133732114192994114446400606730160892499063751602081690580229676060988622153257335476542867439184864917412985027349922407290876115714627958001732510053309855058041608671245883846360864019762598080937846080973963963470466033861453271238332756068828906136248884791435326987358810000753903070062683950792260058343737185051891447347146974266606696120660465755780847918972594197566833866842996871229592862559064289912691381416232786169421380459849306155973146158686783266428467696983178520272631270751831665424153469790427968566050191251747140075324180570991849742268059591806059155112440543258976739202404827814202213297077998265202141295733512686854550390748202223220615606778038373260077944904049654843898615610093011856354997158940467968475321213312085029691328561913522897340582067844212675943651561139793576107398925625439701071341038890604483482486263815369669804895424387545022296264781792525683589072796774893082878595015300797216592126707099532620222083401377881871394008852576372848610254447494318462692866793398409092225158830411511741339153883737541337905209540407759505845374719618159234290660854744261039349178941577100551516018368103686092149219338124570905070930359254409987067369475300437560372395553107352802365342841315393442924324155193193531960620204408036077816591939825737654215847380034820151060807323890554377238410177826783918212563656197071969138899330045716375186561868369317697196810922730333089230709452854056210148850665876090592412953418738174796426879697682435217305310248319821866046071276180359339658876658720986029718000959677784218504367190553816254583153653505456459065783796669147605534507590891591880388444729014239245026071302194530216173988957663471183485457514776528278629499006363287763625141316426635002267020417278212888374352367620955761312361101204822580832721062547944421811324046408189066595263055314838711067047847538363676707128461298179458771032023426934902224986406996754492442931909981187974277421992523264461137131003546953203856398953133176613455057189100993518221321613559435181923241365240349669669575291653612259404372102046626200370380491767086810830058152033012220892048856296916087769572111915996915504129342084211929110606520152982884767523518204554857165729833354822820129653258221381251464861177347505184395407711263485386441202447327052775694264845525390409580073977107856792390303946727709784658170998526633494629001083664270091575019090604659469589307892481888241124279640993884628518238828422784663049174168784086092412707777467527257128155820492348174058661365216096804945903005871936429430423185098047196265451812291465876272136873052825141577522196753097352321681166715606204306714917888713277932943448910753284898214969195946938525142664541188897873425979819510348422771480921261283714210989617743795341202220485260020724658696104212857557397518199802862724415709175113058140337106460584517248226967388706484053104022062716381765775579383806906811873731976930179496648280896493333561667635111825269613161715313263251534889180450985105140616271941306994555842865761581967464670702131391828754786423730788078371299892552498872884374399684099807868628038232230402714203999398810625439894394163661901068957337161310178856687565970407484611023674494511547892887371472575994602767876251496470627257380744889487662363910776865782899217099718866756846009732736789781457648324777938932726193733433310377028231077661181177682457327619633663602880519165211349502334261709173321038886677161626223387178011504956645770897517923400089606887034721403375892126346508363424037196545372015566200195599613896427380716695620795355956181155870930858002375986666520303476884156689148352237803944672629893735954321317601616907829885939063251057425787023487986822645608655540458605573204234571194589554055856494316498964473657582290063938216710478640506532704489566160474507978286121021501959814127721954178533313174273302170319603567044426216781054330598035792559377492774412484158738097052652852209079050670083885144956321678300415503283376241523667367264695331286466169195845126055194553392227819494740155019127172190066406876183736740594378068776152975058021863200226685865307146510587240359145323811403535377379639488499833648192817276607964550665764262972112807846990019955165591060874343049915775135347063787620831793762576219635177489333530014863438789185257908536629666591030063152520097482235312829645538217155268634414730585623273477296714698576168847740507180792507549446608307777480922852440785370647446060793973570746449340458257666374085198805673557618041757601984299222035247000458633633012711358437929718056570407091605990671719594304507756127256890332888584085583177529557016743019857350614756327150925202331049281792184457289929138354721932246636779329678219435384470337717719030486064941135621153418383142540255625043773322595457111601225625004848046783364744227786287713405716567910142768065144152553482417276150390570267177577381343792313118632444952872745890050054567803092031472330924358056857391174627400822321242027681697826388034135875603746105139228330313586316494364214823516452704315780163389184590121549631545665125785900808562954421404640234321193016839687007795034288304254120538287791290931265847853028601667090982681632424931415495686336098069636761775489300119349189708801621560049288737712963220750078347511634944293683445452663255991697637891303310177564517633922533350083537172685291972786202816944699846250683568966106663899453738697106101662006738949000941359859013152544933939534681901744995167645447050223124532480860886365169217874864931878365444162951909689284017254665771461607759221092189408461513312870171146573102650197097743171930278673835034135433277127861041228130540040314836569007070196183734066197463051089143339967248411710112810417266635551742730878392446164384106402540724124257611295746875341736656250558922994669006839054665014415004282625574258160047458108298805627524081015167789877060706490351816149965269025063252895226388745137506462380864460460308226691863158596579761989175742503933482386462033982035556620568921848621138073348633059953234358093025372434892458588658832436748408069936022940923893814895252995653480438053918402520282411140950060732110511277596293264774044388537655798637235523091226311188327610657534905138060350780023820945879207377423278411303137838981813457686660297744184060853056228789740827526360185483911199328695154911887758072958300581591358577297755680855574227537264414302710065507328061378407930267694688330076184573304286708429768768066787802891133675713560635360580690703699113827635888105481506521719213972810955093909703893388820779939004816259971716321533678954344880691983107072336292990541584737038879933908508651608757805742688740587172772507557443631313913516433976188138040443670806791514333793152505587568507290873932198870269941820131652278598103375455851078156216351640849016842805116643012288175306612854569465264508997147698463947963023717029727913920282916070821436464669098830807775206801891705360781192285863407422277841043467033183784851326184444900015701529839840074599711606285089999000375426706131633034637720541199536048528804567822908489927496804832558591610688125207870086018147883797630581738863062501263843704301013852042298723527245309703101270242370171644878304479648258429836437750094065671235635652918869536835066502171153251371982791220096307109987046025646588638005030862540581511772975271470049423955260670247894120125846670000206082613319924028527671183605408579526623751993266092694476690870625019940898968305255580112723764413367187978599746823478172476979092126910822756090101855533700198749327497362687315466911014703000427986375580175586734288647178098730815996423672934272782977088834177146895976722401445732985206693129168513711361936197418757369567868130278730332881220390982332970822546001357946188953730159435149543121476968276004671104855174221451976138219000921283904278219465147009091002602298208676737757037613021162661446945439234024809318768356977211222439887461786346923560703240601410317797821787498266134878769014996401607410491043402862179513323631821838174137179826457192990990818292069877594815964463165531997170245644503168396740030398108680115734819387517527336598859464415929627900725816906646827216396976882678762452335195721961432211074693731375849424250741936018735451343912029510569209196527903277096698635338291457949745319885685778563018131898862313371070720134781316495670722169602738554698700303406977139915804895031948498458728983402444736958268174886341815363160254567859284934163305197805207613662858858271310635865372050530230495324098673097128141638119359576261044364821308964217082553607104155064724310028429860296683687412969379948378663377621203431233461894455793900222225086653605616184964805567611253782613498137191024585620293029681297275463945823004151762698141483750642791499835114246515180460288779165849301570628548556330098814134588071019893840632391934761126646406887017535720755445046004148906211124528547110874223685546003350215492129817541563785270469610957522097340636543987933649945993170617697848277378625399264479251334406077787864090480678738435704765128559739313117351475323468931905457518514733175692946184337886227835434147435751273562595837766926022434111847276224860262948311644608669126150161456564600870826809834254723980909827704379153757232170075018432705798549152308459915184278015263448857801227591129528414166993968721142399696793649135969138089512227458947013310806903614681708049206854355464736529723716763001822053401624258067205185657512376183696768506057014931793413348655332646506445399478594812732505302839885445333382435221598092461544027454134535026320164278855152820725473436703504234203846946051278746614097526252817925975428686184784431962664329394407294152114131897680529958008265156520963848422068426285661347502152662901799567119873547566832098344329724837544838874007955484758828418367902789838114248315214735104690897502414502157532284674466300242941985480616528452308675821518102460226901465129648882426422406930232790259730190688106388309856649976256318741128785441116260024913927632208347263920440741866882013534846210752085298158269561554447394674363441430115969562570983140401243215468530877777605094908040698625298775985825880259130698773019841027086360262113038440468398440198611920454654363993710603952232709455565786377862053203014489353902555783800643629863375887920653462951309194700098073193153940798668417427936787042191852929511014069557322485299445511996601847409861538751193760614787285749212786751941718728958842324443132425236039778630458958594881458466169581204429444858978572973044237158822216325717546386047474593499878845956280757839232932776299180606978635540537742069507349373550339735490030552548788312988460331799760744832927224761090680908463630738589638334702304856854357735527642749332535016243961529427208570150859087642500090897557815265898104192021162272104783693681829099145306978898054847669448273430836619124023872079505693836391313740026615578454756207271459199797655428223259197729816366291880130454092847341141026973676918578464605683061567332373971727221978537067230300453802406770591766626069529141925313516264213513489043679072288901244123753532680936174070110078014472231356525364527800072346318832315046770511473858578953488676881648098588059203823702364831194921462916557584344659722974915111603029285961166774958998841616337727078827570140293866161815675425909468407336025043330080776411517039094847526458124552250328121559573491224069655038874917597294065503100941665011744378324134358602521203924526410843943281848166824485348286847866440876816424288395162985984503776055974052567137473504585808585665579525248076841594256111041142945282285313468083479227199070242861726065069400990383426414478244387224670436816518489032449299185867697998141557754504265057841653828843994698769327696303311021532414211419512189005879120152055449401879053938420965516387701813050663271322440530615244308102712238160141614435414071657365816080139087296761482574151193597099452896419613477023165101618015956924360049770970467958052789856653961007102996565903699947983384388102545011277796180585500817876049188680461680484816477047322777172964943822896892953858084033361061827221182631378671380430493459046420032377913475670609313767395392268624494845355558911090861614012894612906268304618498252159141803730092918673854798257093384384253076784702531553058516125366512576052194929566045943371861085642210243742874172667356321831085596161091954045299807412761348816123752198516602587462782474832272083137614850058874211513080905276858058125472880544336706106598280102146710651204056512174496339485332483542833124472135970385694623896588398743136353903914917808515296098833096306501600531321639516726136391354228773353897491394125282087687719208581782853569132502657484175945559408412273557313176894447539411592580893261518984467805091931607986482909156271082109265956692336184043287606035284307862494213265536229932530036342590611085643530709888058354921401929388927138313673943249588120999621734228403605691097309168610548927474253857703727847522320328441045297299409917147234146094129119671809375501082005251591336783165369398291660887675903625219210055524445435458318822442690975948080792621591710085635062187449014188597354513969128656998917570822713761844950097318526387354814654785997727093933864852206329492490093339880344044749555248225098204338827605936371353341471887984798711027256371673240666070795344034309107732679866625227887531284904095444582534514511816221810526127223028952391521399680357905675509811671196840698341690321871876642287954528181470924194422140376768046168186402099662521083257632093137481608389005843713562151846721210169679017884687388939450420369364629556631432865771597654452122043230376368085572823193040166506621197942547200952213236408631535416706783812038231720142389276289690466634249070703494495851196320232564854547682655571848131889536459173721357016137823493693106446758969341899480167660078575627485053438500932020481535168804655985591765453935831846103485748291890951640707291849664692459831675336173947107001322709971872305559780677412835505231345688221759633624506489818237662364205231794249178840831005866135235218396652514570761112115578456170296955929776460904910178995039178699018417969055793727376420333210728953570940893019878573952920550615073053861611937645794194706613661253688527512661383208243096929087475392701887741427933313931600618250940019218014211396099934225380296700066210493985332971605577731136669229881346194484424126728712609002775081462979618326873682016142103102596906353301236545089814824116851550752575395598797571858476780292529282656951134844176905682937031987648580014614037635190373679312985971518874054999650785040356192464716471105191044969141559863817892031303276148001436858085819560324454963655115790087536194722409032428301295138763769559919419051430098877435257753849096311382708118188053991441867596178644301029649599663906249449612685956724764041558544548148029798622602056052673630224891966478443204328868556674039435041602925111424845343182632527769582412608342406061920104717106877866204024879054167863727660525409243222084240977114978191895982654272373694483218188572995068800610539082056358658243906734546108942418505133908507223499264211885541863055362637850225405093642144052205948696573442454371429184428298456161779038092775085671789769976837141735116341724524306670158478461279578583869444099624899142067227948445653406311061295753667090420062494590620975891396422491572389927208735235464057803866569969294033635238728226026789179650385755408592810837350706585232573100937831438646458537978697619186660041303768303779426679493238898134812966786872350830558995765195975395380383844351835137945655760147710607432090847773822396947159911161630104657594457760069563334058357412505862507593710654366710789137298551568083136987109548199951675537521453504582859723869869344363614766008408728086197938440053061330153370791628804789898789822624537770989959431770742978063213466538754764455990161909218127689611386319327501753535616415864271584487723722090396143477624542894234405428243888419832737490389994135092358030782114833284290680903334601911875313467326175235828979837687011169066984256101405159305697546734101247875734051070220962596779970303326202724288995573553106798628741727361234283727791024102195771944763848572823269248602062674774074390409855849535797017544261752463648241906435714753489099792435630517540556589407513009214177428522505239863225108423981099092755621805096770975546148875258135622050856905782055226892963081844510888381216416105865857902377640723462114111333768534211220876428220073883945648688868915849221345968436485196901711120750669004613682616124384387204112139992711284251507977710499019475066988196329946096699918505722020013665853727976965255625827976969520599890299997660165950195455549245917019533356657579590997896264826566257032859152329762526608955642679158200050255544616406289062866127677566499603899987358053125927654025313767421776597793072635251668743262717142503948252720156948739779759913212946869655328761638688605172354577827370799899522418199346993155991061254894423913126412303984542972371708947356866203776201301525973112254825432214837333742485036695403776432505061576852915889880852934613828846269199015482112421301305228307025136862777827992139464745175277793265245767355586508214452170269039604321329176051597465674050842319596515889610302815256331185336319597942964456860599011157761646246331669799582564920432177062308300560686422117143895175221609962789592114517138849501314581725207275602369361049956850127142621554190473872151519698294658598873884621295969737264878475418509464327035514812110402671295586755532570593731610904250988691912499269596350931673501498745371251433052149423873012699511042944004032277180528059024135802536782725311992450057844300560682404998513750240259172092278681461766423683792493635439519107730336046182530992599427717164293763654997430357374503642183983256460049908166927331605128875267583610629192677500350431987684292037431319204768921706583479703091757325829724711865061675243928547440167859650708594452233937938619505936576687767643898966149022299803104394593818875561826449484535062306364816129880783500185323500688599341986925349291017163113084661910284392692631391268855303658614630371613743079959746242591459120314958401560910960161063701870878282288941751771634972390684658418065908385681955766581690201504918414926404343421602339954657892950908197912196366887669363759781790081164314377407868026336222396532308380062017666000939002799499765502301916340726236400549198530048932546590239277434761534607557133027450064499076525886818805579544918963133783973526597920642926907966712702369685662496517638614515965008925929102674003476697846900776391910304368852148084805667128666523253196232891850593252927651370473891445391351179647245126401497537157899867945719089159324181610443341696299557102237294514624031307410202824021263133212653505528305470407862429675313882027083775650199569796964791528512347611006448807116431353040364904572473106357223965307656573375758662112206145954271188526240149657205697145144882148887011947828067973676762183664223601230964154226958126483606708642220158707698300811148929575960111499800646920887679050150511918557849614745873337926723979563359182640326079650957094578785566502771759327120800257089076327823966458703357720118273992310351969589640414169454497121603843403270133054824516197009554171273333125009470836639431283517077247754096430371458975248310078510145178193963132944881420897430767008280133774546280501489263069843975296936381724549048876301557427427577674110609023420146876983444241140857356576883377951401566813239925953246424565144590037914040284182716049301312051534874132428323875356818121096477346058796876624976811369511816824722950069850675523426375054294492855642828623853565703947061467867402225047063725422746612391993398284469142804008222874943451838312969843322889731341148012427890659393077606847516255296123997444830479463601934431271518855386188452073649019968829318962956331457041995573218075573192838074876983486256221274699924532202650281705913473921676222244096544654964276988125170690194736117671510006831088696479356826251862345885448416727045974515304913312547540886033255160263299248207686397353443162067905225993751668924439739701926746988730341734816203116069952221582152151331918659030445308624360099174463627078076530603277539958457513167235586667991664258135211127215483575601744210428741364316552420352451814178040283428541673506596540672982516704460851891862805600736008700267831054275645173815927549177761117299610893214105518255025874432364563426271819664869163731089844984356579678883169732749709499253965750712087064270233734112517523130244767814260448776253587175886569616579261601951135869815856861991243081204917460515176665572574233323442006488797511206746427105137164415810188653134744197931218426678823473374362886421648534884682591514624293700712791352498103836608729052407084620360011479210393317439214053946234614962951671567026578138837999996713309043830190729938645300795023063626871877027949900290820317331962463862381977298707345858421899295738154425594360062909423585854404811001882656324091256428538820775323779854692365422209517409998002599331063071188662476531899950709272904728753252855448749853604735861262567272984855914448902185052318150117437465982652409155123028199676624601009931980246686312285479266685516925083049794677809088635686387356080404632795920043986061210141931237171945383515630335849916266253641849423419917548924865862612971900664576023501032350882141079731075966011807669326866713039591796514353234443616779846691953001319498610878888678804261538816217029635905596569544827940921415358426360410611379718471404842061973128117705343058832243866577089523968098276749291392675813527700544011011922634544511163967935280409357230330517383956828213050416968249502482351429338829848909956744850620378984620538631487130774424303779977571512478047322560289261131445574162854234334597494849792313461339008123607295829599002666983326383633776636418880888939233032063329948005120743887625203325761471815570974799296548053034714203715886738696787847816357187960239742268250204319628722099203511761607147768021727970325991469077919910390728717091298180525942302953079712482888589259880563041728648369126031501050628310237155249727967494227358794672242266945197594673918460381276651275482503227896521182924985799198219348557489022821798100551542532119173434379263525929228638030573963615840461953766566038247673113322095592165055196920556322162879688882742223595250717996227326670604899652275688999389601249088636306243377118741293640985084468776489251979758961751666666277805566656000664386809431705425822800106252966327418784923097603685017725468064524618855817952397093925089482670835831862774657184270910270727928571342402984352101896279299746141234636892851600829352301414727962682745825347710975786480752239077699518399949422405742460292422817032882430161779359945775350538556768599640415493631425283644148011365206965374384312946807433469552939364456412675366338014443925996596911739266237978386429348106819677569723687265557638977888111719142390615668035341605258188054170854787765570275032716112994607400037538060478550584764458957187609729789588812348869767760777359681733521262904055650323480784420702723948442507198468503198147928834982871597587983379872752744899932269492931050691870382097213405784618138320534277681423316348625491392348194743133712729270883699225471634728714670137371209853829485709325260788129102849913166922012742435855101531177952544600223464186323572065121701554382093438724394908394347596674661856094747406120060958691324977964253587137855642583120091981187046858771112036729383063485047449226853379523356774287176165657993587637762766073231588089024332740389173811169420270034961202692329351554110305201154126504288882682436770793314837583617692065710633265027220276701472821578783260961414126717888132550939053278730662655992204032644218273730357945700302222932533235094205323496222386033350079044836314134211592252971061959745399455406951176677302418556105660658221035268791877446520215664954281889489724079898957682987054832508200993283468728389623917335452901463535768516593183271047666188672045231792960786567532620201801958729630127430885348415761745034243274409372141162444024423289218389832788185297365914158703310395177721130170691286158803950308664714076255509689025500426237738607226576255549149639146872915929604535420280031341485528597620799806660894975312547692963454284949522943337866755899269187828718969985338285886988241497263679835278520046162151121756359783615446840546568653285774837313974854981779754037070019527765690753679826218187522556571095833102882386141823253462767523359897537371337147950049586577577221826276703825949582402129201332309923138097459028322402922987739105659250636433665813688079087805786349552374937423233779203183092487649087932582777340886667331205113788917851016488093781613502878444711108997534450701686900838711757662869042626761788592151693528106397558370134149293692348734925692953465154583807292328136537025852334711810733383638120893467235547807509666639855007773692708427368967264033400763410719531501847074639519848932492809603258377020570900405793535967324539982245492215355956927782551830922199299481207430081503046738059896980046892816362210295557392961452301672177875103456410467914811663073307591971245472711711138126701590074725331881449231990057115390356299545066453543129308718212631887775752523063523036864225186947681801056078512259715459715343178477735524651894016600196322735402899020765302609819013983040837270481888701601557445583390853924902383744825562984253339121434388920322550894567387628013799825933271896105541884164346206424859416777283608182576788850051467705262379533898650071539147575697134535717309478765645162438994482521364036116637156518134455960791011609753294863391328999250680752022974488515518926958382798470606688513035530401797860097771941160983149168639943454317347426487044639401874976972021375360830614629498407378621942385324883254441247662590074295208301897494270319887788417005649118132030265654612100769300208374023995909002017459836231422846049112496575183975795023467782078848153533139434871473879542350406642929159681716450864014161963698109157977105735206190936913051360022577631745776700393309518592839711791466205549777550991485603334824119222728122607172583648054273869283917231954036395469614573071773043115679178907236971837023413584762166824798185777366285642430121541225360735487274885543744453191298983711279979821911912963129248933788291484875879000579448183739948888192944741454211894058530879302782924167429120964406263166257679432701519718987917850035753425714138558712754382408384137245293865838822111990344287796366648742073621407845697735162533638963095663930239323154824873864398411336261184062863976348029949567967240234789124219859803101275404986778551861642532785928306147689895597971466291808690883159294667263219911753750988076855606787396521072774366814376030969369468490959541041755456103217860754016950824354087796279207980463797669311384929967208359066448876628371758751103317196574809997652401122576223738566023741670747739355197828867864120227789744844093780393307143473096681022334348134340958441194193692738048907565841723380365459603653424257564096013062372686571909704087842117005036570493529489085929888201662730707969886332213923044005456826711081266931750310454597510851048972967353033091382247365646017703763059141187566728577606344442819460220620832314896283627460271561105196309366246954934688310663897072332656357557502541537635729988700664218235574338804913290629710899205854056612230674222864642761945786701487213394005253843317643844568495756280947449628327284112295545927001350323926937180101043094967734145906980594927654983856776639155840077221860821415670295735894116569872793200028724722953196577051376206580733054530697458914104433671869119424679664645207463614582010996736740409036212864072531823194883332255763640990720396065013972716845288872962971811650996551929657017474129259292380561726698660720099733169974604640445533630725601280763589437900240377500803133510215955917743891804099570065430180637711336444282015031008446089882004174310720573482638560274845775981717816202712852291436124045262548974600525309000658796208554311920051285423024585868362215847464103935691970025604913575975080289932384199315341985310967924472265047478349121837139279416153494749353730499703184488931947819109586407802850599897672826133978242575591612066908217647873765931529936559852795629043627722917207532398677988209224427360849048971197465993709495612941060449946081712025657580055146134852621213835253686388370273983821907159478408334383250688926904170286502249012982068671061034521072108291370150485325082094072885594248546893286012863926207161041576448476257691353959743263233106924267389508893604187424222690357278015041508596485326077439522894101760457938614757624391720990945909576413849769126453799529377760126665389043829129039850847047235104605914184058022034002825968570002599409072178477400147349015332513208537783865352106240864417905371990588953252034105344836722541024322924091180661980144561027449753227182225276815915855641858757309740095911375248270711338173804349220638140349445450459033941834931266296243262546734202563278073786878525269570425477206274717266899376200303920746122683325234946569759129428874548151129576181236610542918297882545614021341669383113776233027252026952804022082867728524091316327823474528924966577804345244436020501833305315546182294304576689153038227581682369711629473142775926475697238231912803279181696561484683888002336330859117471840646118890204453925477389824024248364772618389120253290595184975108136755389585857669278208657270775685795006364687533522866755032697861805512609337973080179630541950358376006097086196748555467467945062863860352919867392068168618785872040733540943354516326483489756720478896469902831774964415817899939005765652270491919074800143554043538460691029095064835310909066802308471789580185852423339557431202267469810760144182357221756647050195567073962712337829787588468067443307379436647096882969227751599797676968885714949814976250609457188595064575574710915057004283779250713627930132727379887988705950158980689359972181388584212144717014698686570890043620104685680703059911216107845021788322639354787118269194600820974666127298059065093230050725338424272575052717879233731603138137285594949918321451188085908561860593333008804600388621236371532365105283459362216437209879305754093681995235533714807760980909573557479293783049069671029198165419607968460165990332714427270594923611245163411088271048407701191586268068614318103333432588215123283966237807629119784267625386153219379632298921692310419445733414366689323481474113917148410504657875452357373730233506407898950047684207452651479142978199193914979268018230069870189930111047568787993918094237249247490720319911069752574672228142892788493621460499583437090603475210266122473620617006400504969511893072141675917697586000610156476459319715630062549354677033680916452319420280185865671375320101009881123674965962593327729905289470826962602795157686040675788431249137034142154453165044279582532547227649149957611449721880468547193224974203324542706568470371550378457219316215361074329099384170920170002843456078265595124590336088682268921224078261679968090095665512865490488158547127557763474878315997601638143690520969227214564516381315829328182981986694407507555161965424692217329233765191689579464965345401266116179936060443451693461700508430559876531633522336620197604352795109016514050882678715997747436140221402332604368215664101869356502413713098885264499406947176819346478747674499544292430302466419039411410913144300081806900198834065485123536117480934214508287373463162841701571735042982986205499535454084944714759624276948909226989204962228201128352161054551961395316431362731788531325080625883574276875546780391282884150293567344511225964262258328588674132627078470482012749065172743387774620833250528004854746867708581265129763572772295859262806606949957315680051188111573803009066509197190813995611826018419423188949218864506940111658187508864530695149113679910312833276744888829079530574775271961395179609421046740951409225368932974720678970049594078360619117403656319704763615399367327635330158426496758065082341205622821161181700731021042052006264228846893375986629494132992589802267322710195378795030820071167149042983278370114317548479479891504029826738815362154942905494165161061892813516252819762722351227097638043958499476815002068594970361412602451508913466360455295942335628139273655129826781206264776134305473103310260221119249498280033051890802313131458575375483436442497122149903865714601019284635168878097556735223740554920051823987047039055026430115994006801183953693811817653596620334623930336070580017672498847917101180921509734821773849644836866343189012436181423511795397049153217946510730691481946285956195821764204837543616104656232437240041546457609483446095035033171742629250179182740518549390320302399469479841221422328881340125757654648774509803111049700473002310259766917091838436921642609566367565664505829873906779437570644375890784365901066412241859052154911903669530717742664868719269983203428363940466231334674043761147721301437196007820652884574941299038050533367188918547582278054829723239818987529993056668881423656933865316930716479566445168102826026384805039426447112519582864140854696685477559744966236833238033286646710249215155476753837341654441706133546415597667102876337246367072272382656128458944065806940192447230237466284142822339277180367372286639939071969064981003203334988183767173384390200228770421400801430086540974665392656144604918478388121418772043665101215071904098533533508837581935640628422269726019325298629477362779727744432721769329581606937107256357181481206983211786769395164352123547344377020752125458180639874190982239389302555649135505095999534093516126692546435475109128100684492874498565361674655084641333583674038061104981472558677581065655958221014473032866088209923528725168992241509189431299180489836382246252934320594595306899234625328687508145373130424295713469669025930256920990374202511184527469347815597978787999987767463640095858501750209670482657983617107024528662080475040679797353430376398107639838684774856322810616855031151208202472326222496544497638892682380064440940101829235892459632265351636311681438393974630524087045939572127757862816890612099370662350474368336860129315749813506198851005844010885393943296735416275595954253927600536843423404302336860682912115949143834267565728195640039159251126801177010638205075593160049582831005144506459112880881108479379869274630579143491505178515881660678580699070773022603543448221444989385449451405270412511989644375595998974796632653540804694054893843393870617299382427186053548637779670994408423148238215457682066922522726783880667452468349621051567451672071290098545009580212586956839737579195240578309677061683472227051200897324450893359741317857994291549390538560165259671174593185911856881249738553430858386420698187610296888745606436775839230219663585896195864715951849496314214539196513316062570806134358011938616783048820883063191834505276915083333383422419740879621862501241735257844317434283014598689459262478786822963149356276812866237376154166886782492983460865221347744147640543925601431305057576873488862422762011345624133013700266079424085509874243220935793338516292810826092163173479945141878482598750283055898709428824892387577407030788325065314403745981360911401895528415703588956369827558847801736702019414221995530545931168483292566596727550115274234722646936671548494445865077859746226507608074680312867558596478366489767706051538419180028033363462856502258175695156679495603567756124186532453860131882150749245380380460145354688788333139186138336770692118795601351781304424115366909604463207817725146895632304437024041600482008654518327542926606023137822112898355156051973805753426067111676164507696830896436746350162414788106153214833032189885252886708492299868326841062996780433251622096329064144188520717451739430296061514315814049516678456089772000272409288597985776379900446739557374029050308524968474112009578009234272441801601789741833364607097103519430522216171692920788694783637176052661367211215948756818774893850595550588020078858605187639557044942407853868885534452736329385523197206013595655519671685478846951281902915432353164790439440492522374659654127484766547232015241881454106219137014650874928323944648095884833144602337304913506599801238028166279650343072343410188044017348175230722133848031954648201123057714903550014186741636140603709546271201086195890138649738576471042600650566610986676304042679263959598521475244793887577003805627012348192696093319727951278263706180590767339654659113560056524590055167009273989810088242510103571116343551914248116824153542750465331167367638241335914167885942789499102039789884711209135694917294148254986086763551391352484973491571944583727426403987776455871106666920895646314662332261692472150935810873270367784834168670956283113400359782072949009919676066046152974192637516608232108333868102674732878521024964949034800427294610515927681586719246171037085652215887003997443523287048834076040334643873158197620202620219209978996985611732054230186304500403434569572125333668951187353793365287348939686098188352162421773287377029737133272880794588394389786079388074261734349464425523740136646133562231079995817321266350152546370273338090454880782641725616554839881417543273108076400138586958420105004996145172665657313301112143347438138586292111514380443205732110711970024075763248173349285712746557711929225848082318428739585719491296070701735586592779401792530931895547708612609373287853278952831138853058314983560970608498199092393683009913256072967687509768719589316390886487747516063482565345270642547486164514412641423348191478107994087727877382944626128346082097245278453919935191353298078238474860882445167308245957318085214255564097395475580026805684878254681794605419092439495932233637178046401318140359187297116236807722459074586705840678462913827434652500050152207652091490343912203427647122924452242247272836027028317166678684362092786625990682275292164580537730697964831757409796135290487451539859114431773122918917439731486626514451400390785830904413733088453972389876063029525357959646696351097740435757436679526011802215521617101667915830730916095860313190375753307221354119265060477154832758803727370764282131834365551820423003235536518463139621792532943894537314198288635068258989442067906519404538661082312137892376586142333969058927990213217047267556293904768090772801089117211047268745615537635889402387048332088091840755782959809839115792819370570951845965962330592827105273801233958254740106955340232907875854199637655770441027057596257778099609100000980198422152460341985146341752756996013654485604299014611803280684722432647306756064425263753646052884788484047172925260038521826799560332133598121702683226216965904759358257355585814420758144890799207649827016593901530168397878877989155802908042776160072864084216266956953572058268108686791662293168906873123108908659236957526798775687878132346128066584452375611296969140645037910448834118837591306745720517758072887173577774004024513934590190782197825991394431373874548364402502670475640481425957524095344418149219638743397939566310831415354251864728566562084748478588715747051276017808935756431532549578178391481035808356893899587003937633075949256790183221599791028088508141247447938034804153626577638208841493631547225996543663792833594219859070777018346908598965720246321684073126928195720890463782657115478537041180205653856603146979244652413813563671857825104369824826020465779297086911716940073411779962468729717287601148760149432289037254870357044667494459723743499085536276362975925881618422558399926893792871335688475526479032097742658444301677025649467615444627197451111204155102892726144690236638074594069602629216244774723070158598409446069247391911981770083681056739513906126508802402779066801918445880877914348783229967574102094942063239763188119264017919603592236281568539390035537784411930735140950954598828774428279555105536130155171550288259476842701526607526403651423340424251702619479711236129880565102952784859253353986435850777489106855911912116571507326093229905776205513235825343301603577940579437423042186709148707775387684943028038452462879830316943626131635395967787884132014079555639073238514869699803280119498167457578416217742001680267119339238927698872971878180429782586499352818402842074785408101437965380091612396477605891089742610325562751204753019736608372056284926455382223856681724762926039275267892614149553265303907494897900672900116108349011590257656279604029670071204668154723093484596892014465668335808076428500467442377442541612063629034189269613924399140977645131069279164827491090212517914195185102726814015363185721913111011773403276038760830671369684025813893813390676314494375943423887787781772553590322283294619365586876545916450267684514947484924034153202669976813937011574323062097171793427604014907436158505046779703637811268554644748172408073537901686024073564485719134995033610092431650298276254916373421906549967710689192226779962176780134571786611604752447750984077183838663724016443540338101181099230169669865066878862849776706696325590717248678611085146666393697253357487888365424254911296274901754151526597511372237150017049058340240675927426888269685945762675375938368375055466657269486210425746427366466243097238906770066706379776449553319106613540599484526957050480902204848589540354441511978409703182033797177920577029425994385728225070282279765814038186263058668296359073454801620349198074811978829160749196244570468771283056400155808213016933240960422925216117307775138363472903480038598721760968683918400126840939915691324860076080809509953945322684168091148506201791400039138438765758778103366796509436927069189350493774560375376897387722575264803571772870651548492716712985892046218542323962984836529736760111840329211912079583177471254598160584119677713486892837646160961211247899357338062303432800245952415622306249454243051797572154084142702409267584795738168035086359955847382390163784891185306956715190180856194478422946740958064678222603941848098217926824314275315137695564928958136140571688261879771382279064850525614244171914559861626166374375627122165337036247008297527520245694388783831166889099983409642165441016452368243593118386216375399795756265723170509689051970095074407464943350055339925787935115061818189689503575977605670949377656462896915239118760099284787437306919166164424807867549181335156657103571060559309343723481741352389234248677221219448893155096439964427951733037318368863871575541858075715806598990139017203243802412992017709246050569431536375244449981056685629477633579316910876013097314792999775751870878771419025483122654256118116568689211707018103496044718474121994785528341950396095191762385285083163782302629468355526968651572092882896846585076372023602851965627049813404224736543261508677035818809449172548364816560238668332294241150632497197855958228663971257567124300954769285852244825822394468720741021610287703405259777084422327899349327811427479530983467569019060485197549773637182261067425404688255539675621619408509846531387192415456608182536763051021399326226487614905986924886051276077995853666974433622817586161837637915415275943915413103549537058801579764125813445529552177312359609209243360487125362556985004611043913862681428806210965762543995969854805653037334331165522229049070311122580395826434039904841704858915287238081321185858005575258636144981568165072370063148773187804053303711662390308579338709241258523008505870709967882140416556926937306982492707606599758673156488834995922364311924515440721616170101506633710260236537863096827990007200235564873656867516267638385564135973366389715316001448185274901316390879788893106919933753546421487228659404626748082231916028155982599475537754801112252984648650989171473143829908634638588363497653960406952198702342343280590884660744491198133610798021376467872899776889545364435250621158832665069827630809992877714067196864474902390834072030078872039911426158242266776904549033105253664407765225843541201189165719087068353597018429156726919147274170911436495876274608280731558200940967553820228630235269873374001778269458914199314290420864038337668380504417396521482322785723875217048616170961922368072566528484976385582474696430993932743172325379577662829671157449051554842145007851533575814986244800563442998506984241971718814736942802725662796642752086667174997554530927600271315127833152618635289131482439222121766091408366202504381069896064083167513622335941068968646088745705333275844804385982759359431814955307754436941465447930258123175497882768755010366161498622532396892434465756027660341527804599968445491855614118867279212989516172946737143284374766997033169535618897515543405324709139329855069705098560995949332378128548818996560314982442715058504496766030086605146118002948539030024744291301958423823781393069732201301819331931079270766260268128328209501233685352282527539601249907018120858913473042512973876358481144777178166744058351786340874138127011403963254518482065565400367216095848689620062371804846219202132306774381685360084299844488463446719764188003663229809195006808003440799867406857160020057003163049262503016527229549159378508604246262629773917903354196887041062908743623585615144304957804814002631673124935444116828060493508108566218460884018732750984396928625213325156661203090486695721405490567847919536265989066273835047730688456208114165438339033979947338400692029905005844431451056485961636489234655503210304616699896182318290897436214357579362517118131148530845612714434525527324182063954221449934645798225797563351008033100320978989813193850918330870082153325997996047619972548060648230609899756334187692437030203969951210981360910357714265149648616122714889213937541446139085454419417967479248434188187272345846083170827959919561675130059518072213417115189479045032789232702633152766314968904486492651852812372589473438495952607360345034074668360878539269757490306784342129103854880021092128662903851814636046219745808227914407626369914855331601483285706665719301840455853782861773841830908112121886696082762279410355439972897644465633760201920669902089272538100925350710245446927458116276503164065359817202758856192172378792913851544098719468592621900352413601011602183857554552446880029059764522483104116650126625185782752617483520718212717464741004886248999349864278784248954833317033833278556911425950646248682026958703992089096116986356957982143712827777024857672862554699374010414118330465503292465841781016808963414987041558184731456828872643739237110412391889180073017769258096635206378281514765107073786489162238166845930369789344105117518266775836410318223119284791068957215432936590449835886630667274405340512307620291325850928480493309258253097626221458237806170354109670841557872427823519400345022627664884719589997966004505416506428916796126030200108747193126919732575506572389165876942909212672699590872857519948977628129099686897039839440931017680039969056182149800264394335475914149363896891708729529100408123139574471924096945402662286468309891175404638129937224013431379221585426884624719129256148572902309832079245608251713467835076827459566122593167105522913696993164821753103165530851598805715325957628644559462587608842950610320638918457594199369356029119060041201628977743803099028018610513869113943855633493282522351192004055748411684474741302296094741649265559434763150704960167494311073404351533741974876543580315991097825700483815367198141265661192743846287138441101752100720948801108397079630172846666350912562410400104688380782630126291290489077580211951330085222863668959857892365605596210863520092617678479683163450311108603968212850668541034668362501496932105211068637472294010692710521665532629440450457921080130995521926417219564047386021208831003389251646845709625639228278110857268140942639459774780612415936615856462284451457713117420726700167177278257631753221130227843044617278239185344255317249694061583263354773240981468896570049434467687012282464142539833626548583989936659378058535820999249043898991274128791343408821769759118235678130268938874757192933770329309131034335372680034193794479338175073628298145085777965183135981112668536777629154192177436166561034673818990381968798857016275345000441372067528600403332377610611944778356267398615300912041039572054220770060421394092464376250752404418682391759171079628505698326890267451359807920766693400603582052938171776965871848528064159722870655984297725061510553440064677041797663315363849474051132499394726620373610741077476273383290717967355612163814344190945482463710200661560483751400254866582166582461538924455791782355477787562285479410196009905269093443723324024960010362092132433045903614708546923661270052349861104626608150068823511680312468594461361125343475207599154139770374483461833686280374830371976590054246453166170557689408783821282960684147534411037434596783248073487077473272962590458515637331105090118083799307942814979757012957670790155299406320103563021072769637382401304189401476710978631262875915130574421275395851559800712880102509484665958821417824599601232928057326208649746855056493040755528543991139325002742257680716538292885821790834614266581603850993334533753818086785641760622609091895472459877021595956514187006902897344837761163435786225135858338640245798040999182968081789892039496212697115056914287748409476817089233315382010334755470781762779149867081426083306137256936038036746434133711708906151825705151377380930726942298762471758117303109949440528266868867908977604547590585698995660413241221133778899184145153799682977194082613708068188019798097037686465565777503552122768858320566005969154790692116689945167400650899364137909008653879199381082039326436793318424844002916120088445526035789963067923868628517436260584301779875136994221702463018294827360525837608729526396399138760714382912547410524397242872430697629969662402295399984155714663959280009934798753026962802280765021792500047915137024846269093060433670495921623344978210511270397850716027122072642567984002128457325930009371529058398092368010472872724015926517460819551078778377619396684052573650270603666296813320072872949734207532254594490284692960976333891801074690271174484349280669555207949209467119128076157593858851982914323558257080911973016748770678722808558525291510579259009980966849630832666105768749758539997584541616500985822457261417393759387960540241696095673382160457086292881979252782527136565409077009575755727815066269668605362541696381306230015129441242227109456805136154319861432351066534056927017608579986599209200456663528519946117374036363847276478604405609544195595726627113591452253305321423771091196287384996602285973255842852633673699358378104240534389157267112635038638242939694328051629834956192956480257612479485104288909298041304668016361296151932803302948962693122056951118536942788904989736206808770617098144686933529762262754554913468373487768844105838575236401447257307789979562143377180482856719327961760133632627320674675779874030127664597922790011301347293592971099114268078905765125061669960648754792452222145294039273313815318940182358862484878718430189801703531050251527950090739612059604646132625496722354136193514474707893609776696498441009186142976317621385914991308952263968173060168531643584755070930877958751816076673748266528866764995026444320806070444229918333859666731906933213868281150516171590165680981156087428035793453560858970433264519094558517496201721327787967363226135400896441320061955628802776064791732453042372780360339173066343336396381395599206001363054107876945316670206587025801468535865999766193079278556970176764382355675502438156105631876443694591838811089262129565121754799238034258843052043860433596457663876186240784806905429120539776094013606199729122615905263883302685984036152063827598240850806309815909466050346834866854427931537756725932291251682653259296604424526943744822297931178668781260493437373058340961256921425502923959781032516491362306864568455296686549952066074344500294091675729931207138996136363874256158405527930405778392428832242669318958067682204142208180594203198922243536441093297727407471702047347565639142452297757246011532026213489428015657775584375252777002002314552823225851067613010025935288332142238251713762105732309007513527067979329510552973998686471592402796693417145379163269274019279981945266768024705358032437999622095204683127452527423503075399058749643673796492722366333617146497113378658153325634334078081229563640226182140464829332017147515563542398767952375486996483003294130799888527863413290733008431028919954114339115189239796297970117151592563329282795509293740435896177275010435908013116133679486602186642139345347116675460143952424293783140099997143680342690135283728493726860120582522868517132348458752856758654695234022566396906357635772608326010342182191670758800829806104266414125135115951897781172439592280550135489198673925946869471578548167179451495641733160555648963763470672405855058910366324176732541122931618217491660648233844401535814640306503509988665444448752396100575025950312839707410345981366466119443824108368828982954435764076041286803533945589318910848850079938222550980379469989853753704978037760729497360647410849111078568245841441865741483302938558813224497367789153635059511245041296158165845087613821317947335089963615606601364126856009239357889769190740538931093956731316249452928711471047126088646860058225951873394182526514565193013453774733571903976915146380043547280887025495998998244024014467901360647030249284563672986069869843335174935286480334036834950133461049531516805756528527108197009605327530418780863809273917421822908591999595767209190993776914243394099862042182903445088229266018221336199860373387047139311222821071856457505428872153897351762063096300628696333139184710943094208472586415034571920358880937767858500958885825475649697484040785322576489790679683854043141426933127679915779081093675718269097123737156825461471183797318154553923710769049700068855493550510473377990975191141517317368509555685216227397688492281234273940234766847442270685590715259646555191273677465930619250260536826480313924625388015628941416913645738112560468495481309353213088517994746092809444548589693165871709202498464163182647351853755613863539415873223377591735456506438402694827306652350632710064468537646677465719370896284301972197938476930623491394063584811058762637695907429082767227136808888611266615064504540861510804609923452611214045499683477230517656500421775239935644202534363461681403514170962821325026964529433939538240884227195829922102094086323448410024229466669760332683410108199764633719429509368232474605929644946595295825127239193236762995097511718110691884893892316425584977990738501087080154864344600411750508674085338911293041295428969457241104215176269505232562030218244103552267053810728414611899550063151763222785190894575084307530295555115111407055305368636750704745139429159530303108660591553152483243304475511108996861171572942250543639321194568672535129481183272473802107469274228595245778998605620341874970606109392236346333049463503473791153381981729687856288365537133675056204671984580189075437861409732359004342005173856151963835204590821636866414660785280388962070899147393277114278077758838888510613762656420215620641125143347044382221265872432461558908861471228484421316292553737616249763504062955210391610823227426194011832967669901229527117301916516220028495354480599228413743848581470600141196981674231479573490448439304991834880211154616866492927975730055652181350516596590348946819077203537252005293495223757872554363603206425177380252908510339425120795415892535289996817051903577252894690924472673752113564815849539806934356144699313850730408829450470183724370936618772766988888118297041414343703767761649714096506198222276032465447952530647196911697002971887228605593791838241543320825853758382990350997421882153813891157525008180731794313735507920517765355245783193518844055912193186849165117676709335174699642022220555176620733222501260607308912095319604535177286930704811455182346484267642693044220338693395871045871188451468780712293828721656038924758249800756257317265908221064930193488957860060790954488443902373010899990652040510008613580026025054420894747459163443810012269353375271023233236890663164079235304142375675646073504018551898235273687837820901309953437579726327433459991359585389850949001110295829097706388782107738355977495446466779287964763020385558695965244159752333244929340981740197361161380633363016956474000537087550027754740904767987313383060191282570659672853677096077370236568318990895263473869262289912310501532436421164428111885666992766133316035284485559402553903174178456484019361890076027036304470716405488914787563975471361483954313101149751915620908351396720839905062296278248690869245089930065597186847791523813771975803419578660113256306834044682160618534102361241991912261366576101402677794447227414778909589717492326822698790480510836654762297751213569777595579799825779183073483220398931690593023429184870709031033330792317798262815264147452215319535168567888597472538814769631692161504482904993026484790371220640457227038661512731412470736328931430984973601077853177520853006067583292687209369847068354999789453775564522081729994765902817491895633671437565752360802413096988860632065770916812240105288272213373407448324302995778421999984060292926737076709780382966445831134001588735797185886180202576488850158645007715486152938491218325305054707345455684963026524373422102366411160267610700701070944190136735533206212749648400499742130012989976184892271578081856265790171174675225385324824808127173160915647774428921856387811354049376368387352775188593896039857021560566140813823370526316888362871627620365791628907210882368301942662562900684837523460758315687457846878742791428586332711979747021677978601306352850465131351995711535961131528533621000956288294916287353342008608540229498177713496296416291645839303918810530798880024824818153053994522826053580290607105817689845566534216379387538507519888742646569095691842331832161442326301916145846787440929090385436110357612222830706469763740591395813181791995009303636810681102616970210322062439817458134457412817875061696570009727626978035131431233877258063669204625613615112919869065797996231625058551238054339911045254335759988400531114897671294701013118861628637432133056462311531924784803705024892264467289680254121637591825636019085191022019198262817339056185087976287014606417279395401015676452361868204896909792652819580682968788096994934135652160110659344386398149789318622018200584230550198222500219732124701182632550404213240040764151684372342282276096492382273454232787419639045515410560552553272981583663605396547550829211122030384016056295520633321477108255078836648317489398698520288043680771526914374087823686095780914469755560161602117937954267300439954066434437102003734359141167001002396250285315416767255523246097353864063861118141972600611903916035361634208845355005945184967527249719847572370191274739672596911095309276147307296336977978463493091171653969766092567874534676587772729471059375096461443422123626236794118211207379627833541620977980065889912368622588501809148174257907262871502916667803594622460706939801217633350391790823488517965011423601829028355690436708216492631918504956706358648831351538860491943236475954562642316718409600998931645275120246435059051505553719989158616135389258160493202963394330011529500400119682790699034940548923655871832774451401505285963416853547691710724674022202539756096749514323325811563456627413515376568615303234242349872413515583021987954701281823915715837121702392214314607633958043718868428834109400238041053880421764567177362414901208204267386106304817043712511142545990729255008101529833275862554822131521983920767202409535652963794809251479529008105435866872845494429770342184500690338043686964273278833562550045386068847704379585385344975200932983363056953300915445123756477396281939169704781748854341645663709143134107129063261082331890450191199593644077395298692154000462001794929974869427913464762106381279229112368005593175476003923620923181779403893851174998348587713654340831555289737626167059317680588308362162700999971689291479283064501501059282983507793283804419659331733801187500438322788234693643551545954016770240371699498167783870473227728337814361159286055926317184743824787679972175313381727674130297603148196807991382232106688426711862447891260046634169477450763104369614341734007345374721257597812861148939623418669084021306127701834400415966606005759755326531704625643949565834862458453676236276660509852751522148694496401920523324546941145002575323427344546411444690865290827725033459430193505108102588545026379950120869615066865096744140125156971313237434121834251856683662362343669534889163894657846473861211799884589554935509177663416173126879431009258199668415588638759517536361725559670284393866799989677269141357884621583926878378914941690594532190037614401428266673687273255039914508451937889617971956501036739412587446533128821138664359543053023455141521570850528651723964164478640029423418953248554680955995653636877887395156983950613990388900646794841108034951614188124765758332468846121100487568166604085539275256338979590266086295959595606746840281313454413964729236625679463239476237315820659287269523932240802240273655180020659730442874394079302218001684344374480321070212361492624006892547224463362909368664323043933022508210207366215462775297357865035527606016455097879848924903925582254087868437308713026304798305257018190647147171267135496531263446342981080702804972858238677174954975054571971027062283945188305431525303313158273420505876985836893739804857538622418066277366160155081435054292834314162381820889757366402655637811091386941723836715951522298368562732962037505517799365463167251286018706781269027593623927321748741921045119702916822884535524976763619615245099803213814235703056187603782037229902522761732992416446826194349730688229964894412302466223158627249830671866324566991881868443840348149883062139022499114389419463215298034485367940279616258278689615427597421727318827879305788308264543803092424369349131496260813822599886486763417372791724274944745273108181228358688544659024095940720051135363529191303743763407955209350478625120563896840395280141506570254635125381466284425149616015946604220802211138007500699857520617014024520087916561374496898519268127328200764214596123274121622074242999456372863749764689903348870974139027861533292052534259798738226979145894752728694673948245603932884280761182977953788556845726991743199868189918531875239800214250307967258288107303242585280346760422974279090316121180896900228273774923360809251271778095270112874595246788688218828565687854814470157493935159441907876501452593222397378585543168438289547831279152262115744242051021439957238872618176391090741812824273425020603870967083776929406313952905159347798796108406323269031941916188725334017655288978210862659518942934288798989400600182432691171392342485611292809702947530260565988838551624200129937518188677729520142376861482961990805289963127195981594927865429249964036609042236502453269005357487978086909743030430666566369147173666289935688711922721169271070065529682137412867921888818582900269611080766272917240237299193253511189310545344569940893512261739333706525966474609470292840480680176340138615681675257062689302373416110979595192552900688421337669376420499685113248510106571512068154503055274699107940613179340334412403816751942685839086496724279865666708125948283797009203088339981196838110536910690769405730886816080145936341993248150485112427083936759167601621544473354518397066335068621649741082261816463353516098686414434385729003599417719679705867633097728713084375275365990038933675032929861970063755100035751377139227134947292358181982800854474287262462157726932597272380885908111339148220503034024608581110223253721998338305544020546617277328828143770662495796947048539356709643466457259590895744754869442210268326718439761824105713962734562425617166115332392943951923560250832328407466544298403559138645533461106164041303112092340282099001565384059490390502414788340419151153906284647565962946258739202378463672928872604107554927391496346544055082654893610445521942878445494856051337498598848383553602101111550570026685114400421004508242612843405975987052319541822596076720203028412442056466646757530104391593556102944561535632506657520890525457747811708486953003604325911744179630961306096289489297681716654817572806571772371933555046972033617643240528235649440108536130222409569142846846197049514016334764942539466937214270324543004106077917647426390643115842137514348346392398484527422013598742822353594608318224452188462493492973530793353059406440575027279447319687195844473811144663518819862625596080286814245930409516508814467594196942831772538238864443075018804483879874785626995401978582089235775668142907871713953095807878847176892889196912166553146862180015273982503887836553957168782470008122499625775870714201955661663795670086517972018933805080565652286698655876774369091364418300390463495016872184233396679673528818926648923637252324614044020154026673595538471807963536811580210471298375101485146120459678281207109921077604349301027419327939633880253377204823510025051944798774259954281522153896211249940255292892891519144031252177903037196408521342914921710192011886059749466986210286505730664561340946252147166398242019449195972826910853255599662927502236875561611344486311278328349239352396768176781341936795842495742335641445886567650898549607407605539993033789698138068091436223197941102165621160967023006107432360637542351744739365242982882886188946825010237649766811748132388733269321395746423487022969147102698672201363212757716523810814316091099862041805492047291759711722425807285452917228813484977403923007558055559446584033005850690845014969932323803706524194155102062750330865763700453578780515563595165039854608286459839172435378992738515807025441367189581309270894659752069027775103996535337199356653533511741273958223109774784786646677165136527547170699031179198068333458910961469602345183174682647081413548691828726861801172327823532642139751175067456991078542541077043335490586004757576705630303170053251225136589842537214795048645895445551021585217005035630314877251076292753503561586178105223242367318531782187964633638431309140160868885015352282422092672677755897277173179938896091359394985963826792493402529592060162121952667608185516570638660590258088657746634523576125518543981913511164389685785503120963429642604018534960082596828481918668124673214222277634597224931389283037180997005072574903800054878543494391044301799739042768814462203094975945892644446201218168235373215927656736460171937368480552284409945210036097932514333941350064549781363690264691077432941264940426683595000655669273476408919163031711552595749221841096254808773787761243375304385326830787731895342257070735272999645242390925152660925811967450343302407750764045267650988995069006516026515104109869073348565327707540022592207097342667780281583912113675913803550972554140549062762478705453343597757445944389404498054363211197184736884296088671023036221784467107592591097527904884685484505314511960171917376290582388017541025463406110963425808374947850604885081526485570603543723929469589807771844112560091261124566517883699928640463642363121023966975609319731024169554498856655273253152406777531694503868251224048113481426335512660615084389313879529681687514339082903119081096709481767199487245105208472900540721334185444154654444357782053295974514010511415253009791003606623392504544395374373057422882464029786045335870155543763962809240263997235545956176477513187118357829734928187215012888299667064341248131250722376091621627044704998475801258229835332928297361937470930040147231493368789174760866610952894461593570333436737871511969049323641780519072608334690954099859139080101024334186592184646681200922210660277107817892571272679789176528122699422173820591950974774140724770786488808582177906504224711291522449877926395918759844213742861013133024647651040173959889072326589503744153640266481822627536370884560893108602139065178597652469017041993523432240890596540162395625521577604395729910804663714891123741710517900661540836416286428628226523752685853387194777248074138794140164348669088551985660890517478109186049763532701932221498299275568118082433896870487717198159176938346692218880834961668740336781194873855653571633745990794948411534768032368957777310826735464331054007246996442635472436624355535769065968627633914986584722589860703195872574255572822113344242241460346165616135221075636891838611181825721909390198622524524966010451263876083698637190251633640200388933289953293894469333333403071438254520949957963658290793052204709235190172015120196728512450772194815436459592948928433062270820267845931496506878245627904658886052788560672597511456481064751485853304336848708617359413299688029671126266331659675427169631701216827677907820883271275278442534694583581436879023306062925365457757883337410568496111272064197057743979460903157038578310921059964366562926970779568134376489432651722474950873708886503284174494779057505560550229263139671317467848023232369790545831615489620727033374233492710269446982308767765390726534910089229487705196407720622202926956440953213797730959670053635781443422179512134720900499159246795935986823134042779285426616767963897719700678507666090531405538759803358447509232321416935995256683521381250869723901166365932119625298060280385874502662230210888443728028465564565894758465722746683441220780969001309210022804104595900852737215881479407693198936901866896652242833940008070059757954662964256358356409107264833775398737091371416102023938754094445523119380029328670278122049443038484398672831326952386295589458285589408051381022491906443264193498249280474334693311156921477221664747081193181145556144609138663076306101667383639396857354495022536921633264721628086898437186676235102002731744088975292804536707169858058377908667891128463551858729004637875616047644292312686568892757483933335260278234534908026826392426981949387510403150655875782625950496225582902848225512195250652299790197709016774429568928885427213773027049407364345141656747662936382305273520864225669046497479899925467558604503542583838594915850610242154336974669096178101137894213584222041223089782126378987117910699977359546189938888500658651482603823107920720003951308968100750395428580816825952302143704911546080612441469330570749885938720707219878492829162391484487866422999349798918237350639622120243677055332686229310617333400407949170061262689313514552927018966714951897530430233733444841873028773598856399627177511921019172817901621752672119447297896014401550336983833657603045955260544966075604509490978203175127696136770698671514125471940955595546883878541781798805906191933167673546652381051385839215226738061780136281770196897210425262454360632989550728847494112095493719274537895205370204106806385145079218674976614611640226703502622295430213978067361417087846597278870310945671543364613401975931139694691200929088928270138473106418631577074415520825845167168114465869528931298428695472033120634090293402792510847120011856418849478988817770678055462812769767025463232477267183509344945533985784123162192068267810941078180643451418468844681615739785222517772973377198283723259991733964282373514796223366024485457813143185973424725910083115857406114172223274145142770263135987847111217000779193830190576982143270920630315618263311848124970096664758405854557264124873019641199600380398509835999084901364468141949743533490729036930702749260695721452799473218941748709852517773132804070682079115197489756952257372839559538394053707226383515381628465249072136664344734043277667115130846972613422113492429635642737204429247833001492419593752223752427554638672254851688214073567606839702424736719862599114329436706889434193536321587883457275814991173424243763084216932694959245244838489494114323918027282595281785497007669391446376403053765046919777198034266550765419412459528830276499760712300046922046424017173312190765800268413679705797183334349041115946081894937116546059563048923197747482285774620676958608293574920768431823159281458760537930295032399938040837308059808057446539179243744761754611108987752396860262497396136964955192938058091816492166847212266711177733288039371203599028889204867896934491871923972752515064567524768573644835451037991483656994412293072804842183754703702974688001205762825496793386944662556020241619082850199302163511422529087442403944051293458429557679387460071080896427898035696235136538408112951385075037628407242505184813383003165672187917345657285963395781687899245839011659619814977005791530360390096127263739207607920747526048929020725983062059709982533183094480877693210775336925427929890418796857400160186749185285908428150035839016149710089556211250705155816251571597622001793338867244848448476622347675098829002148805800176505968499775593118273902305809365248359241227175386429264995854182857532468043974422705195064867694286594564525901197478653575957755335001661480698080011908929488564806733526170011419747881758221366098343094235475262508663423940057561666108934009744794169107945609742358276143304351201992238473046698075336003363743338327100894463121843335359951553586875126108994184035646463753700096933462707760042204138016412219385208468316079537032991527293540773771678883784487210991865984185375656913132138735224225029195451877915366800306068631906617129013875016062739485166011034896850175390886487994804430982279392145002015316711588658758071259951887350976059944605806940387497076063333941235016821715575225697768332222756532909824843302487242831155038517488838939268080102114899770906809892530272217373286944996670966347313233678395393034419910065121898858175544042232496434229494662608286494049235384077645927025093857481680076035227706108987970479172223193843616959534851039500178974862374626822557353845829619239973596180416486096454383248235412580687978817189492142798803011209292695727291330110217223648760037633507621678515258015431238315270544405326069219476121036373672301436438266623100461673588447970339706972822447016023952146246531499945493468660324508826651061451086880683887477615871813513970761187614368697909352345043344560612234298331388111192241563791230430290613217404839081588765928459640579460500123342626296882868289833368259910353202242603469376371557929893294670886244908691174957242726755334995530520054214596017525023360625275250506067091744597258010023812902471511761046289387760473967865047675774307301768581328988613108897604978563416668758569463129525717971244162272055739481681654627042841737220407152389016849287281357901870552042402572597802878534132125699153232362425549234032706461375649712878790699377019945675981750442772006382624646468983769701196172602428318311191338924313632523413612272446882405648342135543112061075572235289930450473958956819235420454525015771298064414008323466056710940463815223989712167404366645195770170171255711916297482751762527616566242059225120360865681330792785563975932240287861073206112748668578991376035597263997235608862050012973967690802886951012667839060474151271477529795469688454639706534245423470147449457593991024246904691402576899769556873071974965651452451234056869017568137270187823047908251720936990976366620383226390940316571252709248522909667262476959576735521761944533495496975757424147108378433507138639796058226735471451997100499687257905422322121566167541141770553957821275624879734760890881502451559534981873680727907632614671394357117655146281101419584366526165863183994664239972903610234605924995485124338130620848374394621913338164335201543874718928960458987384213685426929673997137451465747539851818993436327481101212255218023094565699197171129713646669882041854783799107073786473746140881958622119846164756665384189320901819878832679141866362173672988107025367227867199161067627925117072752360720626721824331910747096954481160695873451247746961226093726272820523047806395910108023908776489688717531373662373802800800140385499779366616635878486755031939027145766045029129870823527635372197074877429573618892945146993545249800240700890466868738224069726135828907811763933618766893765669792069910812586700169006158935534637943585997415523562034188807612867571335884712257473426530358574812960499401391405525695771069975682293730573806380001261059697780021302282994444348654291900657995763482185923791564829381733139869991778641488222853944953966622991360442885699490468851841746771712378871528830348244803091903970539183113092654732181487759198346243860315388735587747737218680473310772641556283556129100918814768528132260031624130951791189912691217725562052085833076195348549791488205531953978601356785970885049596362605567465926116369555235644080013460556745702796719803870050781803134655347544369122913807199685070974171459726786333679718603259922011791031879117216238304278439037942583440933498994056901999569550216142434157607966166626535883470164865450751221428357674975489173708669537392860435131330607715081950340368196997673016168075815715099149335256775364157708503294426830818100937661630722521793156706026763145266886523313948527687333306678428111188514900161883736937033636697075915045218491093723308195534052943557190876029541419475708240380570098737600670253849598788026995783125654131671511725782368871973372380701203860895527985345033971245857012444574106371937822351849374968682101564794283842645590226008877991384567343882678976313954564085658132724939453273904603900542612578576294950498599661555781977158963872569977648486629971464759136922246497264141393248036503975090951065393146478008608593128530486623624384759032138595789609438711678569128085976400389579434644606827050638072388782422105800776843113483987418302196608921968276726531392336935311697748887071266606266203603328013312188984916268759844942239059170964343372823207951063804270351169162604572585747983090076495034448632813270941647440962716740722112396818899311050907798724552526650022167198267629821264937602372575844314985514015491550713838232246611736110292412630556714736865435668555723858887380171170546399916588822807186880467578858396680455140529977664973366304024106424799503796454285091398050787493538957233211213943799946788532113045927498368783808878632927568332599908572896590032169136235777768800422573279542469984076779540108850476821984240430068859606032168029338298457736776645947596271752805922892172027005570275148777348318725839914910274575689759643007647105032183215026027393199553850616845780288550886729141050705392832476117565706417770232765916457834717585862255711561684832485039690341940555857770508907520162323526038100828012482839938638288827432466188729283607265989218184738780748935871144687497252507150823241737947597695786828308547441021282272660641335824242003045716327976496066421995243350152805664018337111457342803591182942906232918655487651582620229934751195871264907028120947094575300255794165839735541346870622507823815338041396415634352089240122442536280803073416193166136654334570474803069527604006449515868124315093143413778973372223028344429239747065550061182229127079159104595668718824392492552671062991868835446050841897709279871797116689455001157839473154132086077867274037091779367922841234611328767470202695425225310182764666687445875857338849040152742438791935912060190233730510404160713162568507910924030685961382434034262298213744610368639132360484517776216240216786584598417847411372819348739539487651202441255676719336225547504290379433688504596971255429210592213704290135010799949154365841221238007765149140469412694680627913108157420620578687899336326961184019439005382175838227283473412647420831622696353259657252334828036305896805579714206883175358493426546942395541290998885765713279228968817758938840141217262017554808567416254397171429313843576780068765958217899946091408423281685849309927218484908823311739796013644784861481613650461917801079347942422548645618379003777101062172995398145449939805203060833785557691927305059387154823862439907105465381469901765553558450110695138730010726724672092850664026957777033259376136881571574726663838700029100360270446913713445798338446682323613748086062734340429547724998701614874983706575599036686151386585156564363964168224528162237809686438860643383035482749494402639292402620172670932286458559103560289157657882401065345073175043861029614262210406249194169027866052888194714114198415193796435309529196621541914677818651630200499792222048052245028328097046270851295311796230230150577341176328830454056596690570773572849451831650655584141833992856966691247066165005055912787428503696331058544210726534495597022605555513996507469602919790808497230990557346603360238462471755940362212640396859375054279285376828017665407945646392194689695487983444772637993832184124491289927706767481795871950224144547116007674395212919869196210617664143027839540084654315411293486624195183176914543766016664172378679418862910575692299073402283863201068020953416884603574137215933637335289889894672759083513581107946396073510004530829868904325780224405298274202641481696433395599630873025473559817516208388748478527435541308110204506864588833344791337939593172656293110635923509995714761276984423259827583209895389263052104946662879097039893920407735871497616635114878441958776597985343112183037403772458761161103630148485053936445363901730869230726925420561502749526928261663877798151491594916940817337750264351033944963235147820689929718506648553669300493853617553037512575134828835607145624046560477836693500552910865747762952205240670067240575050594740834508597542673287360485795798944037800371454116228896235537695186448302565613801030047669188657289075768730202512390080720033695380254101365874352569061614377541474458558120481132243090113032137834226114965454419545018699586012857901735364639353597358585984052152993763332098318759253447239166899918102543959222058226782965526693727496633962289456626613248373730074457067565236929436546938445714427463673166176153344830414096708893492847114639243302441499039868958052891535308573670916446500261549009929228025928476979914907903973452224873498819871601969594390812553506109826379506028204666817010621119874615880674246613198271665066414924457609485742262534362551865241936773189095762627841122670406808398068544783625124082691221451548334489103126452847932020506238506696538995319573782751875251032134537710982441571870737960827978514050662841763888347320497210182372056605425626448973260702712943462132453759966356272401826139813528230880403713760907358733724796164669508532072303384335594250458621906445183169119376738232126231997529183607291884702121242640742123054327409727443475044164524105237155815426099923516242038771993670259047833033374677522682609428238189701337268303433849591473954890839333402543139289338188014095150807118625642892992055263507878487437941870472532873919086748801521081148360534570866273379360513146350564604621698484100050322010402567828023872064436726958616138544297232905228256076863094235167304888657832883654776525170265279963738916538659561460808405951860874831309150049734305743911866668533129063911836223697397930528275431008123880370320776900392844682879412606357374434024358981079805336982867929593006365143556970585883536837496251435124211129805217182316660414227115901840276011392430510654769990174791790019798584476969674524698594867212558889322250172091451953812236627668039409634938308505751866166269737656249229358384071113485007367704381572813256317003387754226783182367415672837901562588828272465556028499015006322489971549480350353882279357524841232838347724999393218238379721329108980529490087109815910215541432515942778088952386314398494906026838054824255163097643606762626253134147066473551441757418162856098971543274051478832379467895191494120165147178855008281799126502276328557249393966017889922026135907823490578236109149263097366257341524815863792835156272396567859462388655937284551365669873312843193875555008816494743602663197999850298886144506244145885343879958189109734568232453961890887688479693566982287361742269302435715322757703100992330749238365276426788245277982248885966470296404122538732444047222847835824746783709150084672482308755271089519396499491335049448206264263406207871684196653292347320797495914469657949607941133292229989861571681887970894474079629865759705151011033440151043331118585614624650239067113710730434236849196351299765131498854741035019740851269549802516376200681277734709629582686962585273187120815008933180072253679308930615022526516894809423713967455196768255522361247965547233448923066404974925861716248048394668375119991877607266831430842734741102227491602687403423689298491310259697004057001753874578571308183929936156362519585176225707575943334961981963498969768647549383835454205140354534022377042987280440304030950363082336071859994956499900419469516433814041862120912238976547193440780982211337859669036084596290093716925941908407175449542330454316238812540838402161550725778067770289251799660516311776283791007602045780417415488517205343146731233257511234631693161289874842380494372467016864572723424945146158232914559810348080453522706267428212102517360224161024844170378028893718046862366581984750734649268152651893023350760505627691161804051576366544879169782200888980775244669389636367109340276780022333445648495411315872442632247859284063783944623124618476292590806534655386307067869898015331020323090855865395475125573524217740580856273276617313952323108519843399042267831213717566958355795284824599861722321325458551644217798533089146645946044018770185622584462273920868773320971577871886369685700532673465474700187204154756661856546637574160475857588200253915091053791338805593772720151516389028064196948779562177303333927200951325342824539967602281024252983973354323276256833194292424257588400874039400966354313445631404480410778986826240572471905805052215990606067453926372719026061928191213320624990492340923544234601424697901386464923646823836531273255024508746108996064217781681619151186226660700347094951359351784111822096464936112003503787644210098791562523954931047568968787650587120862475754593837467498402614007223807301366038773380069055421307552030570633536008892839746020793837134470572461601787469622136820381329733507327551281241993898542633879366683229135029095099021839368908340348386903517835803526129040790221067320871497991137704098792217157043169680745038923951266800288906727157903746244380933278953878343836867084070183881795279733566479425929045736925075678665980258444336971099311323751406306622744761285540148557482498168569947274944272162624054648609554149245143060672961007891719232841686067658937614739013399595069676909248325290968980968175403686556118228079229751608457785453414590852991979191685571169593653775938169986958403741630623594985158913693378614112519000795349225883701136564549789572314682054660785819100552271428730292501571103021507312181523002504807368043745081241448158664221684234862846637229835143036559385248719229691284923781088392852385329152391445124858844322499195555282299018232659264598101036629509088682235351004194131924876681575658290492487578802614959154556698060080811194109287505163473036825174066036513515385617109499897162902616131884875023161255513194806268155882385146413794661736507979542472608013622890972507939757539857208887231376531250915602951472820575482747986567150835619190884141394533079022222945030363809146296134631345973634870026731144610362246947623671783419205762389256094321166277423320141259392806847359393905996078540797195095740932700395023674116018172835800770543680424288605600907986897008946102520674444995675397536985819519063779320236714767398045478370198721061733706243290116282678482639527027445753419415149364458996059727316582276141479719782147033297231995071540593252772946859955335855632670494041225454557857677094150282771155895796554350503296940422422490862294288720722743792489661040851429165499121781354936275573883239031912509529611495842120128308423535915945751650288945088602798706782264568653978648327827301120964171786358959380648804142844896534125790063087468044091689541536102534644372654303286267851369311465977385582326206540527790555759110967667655127809686792884939793490324625018535946185400244014343030126519269388379971276080128024239778795420184767249729171078447124473227806431926835879437591468444594401879092208537552887808337344006591800137344752973531678985778000076527227748655533675616886687616627854502943885812673325654886823796494603411428529351469067210337425454986744729578661143921406700701114447402357284242627194755207385506248696663164713681146607655619431126561725459693656690674889836410359378160494262251615342080129728221498324338597272237327897771573165795488879647600497104762444526007678597697757781772632233817034772435807539076076596598795373415001170203602031286768566470886244594683881982048854373573432787834772975040189279785780477408169262616734488775900844744698093755550290449397188918871276780745427956152016069065006949285253033987855900186885012127118939933070318810911622473923808840594245674111655936938426169367123010313447497220067637749719758408582271265295061357407403363275805574665241636101375823832517525613472817162500003587410522484373887681065855374858485248112873343693944751988668223244228697847353291978993535161095344345597791911917967296018992524623616591460883486399261640940774594357369291566818589735832936634817692867443747348212276780918834653274978265380479197537033861497484262017827552417712682513690803934494081719992805059940947310580750750015637138791900962141243492539990426836562503761171612571911060587071076364017401533015116006769853547023837247246445020734426451381782119938599891237899996466895878938015033713573886370961269391872469911596245248152302169781579723114742432988117718297520346980877221981553721881825624205324703677877541965684286275821768868334431479214142088287030985129929852584938359826250182644153481979451926092059836764171515945476458781920469480218814531256487228194929899234725395813392826418419219884841514585643982254465698947828964993945632123678669242627097119157406719425057500841642371208749024070765562100504869913881198738346522296876467772101338198004070145603600297914461159047511283111295492914590047533812694872317163432463948352438177536301964655289582523073456797075066815332659145513899407390942871988119127923505869951559698623179958399284942394499737019313118285503789376402271347718326434647827420444942999810240287737913448539827415158765669851064041219673030688900978002899220909222369425044922345722197501754893024036553387657051395528870390832087840655111121309759404845503101467819816318376032380307378426924553846884078683831444132580801743301316502233690571191496097479069058081068687663177799010212049885858346507867877490856671321133238690847966826900978255262273174765577431124716967861638607224016803321126627036532194193973321261837810855675623634401512334130992492140950175292289136652196367027502394094079966514085178453483475906248469031619572086621303724737756967386625878111750212613980124002471303894962220852439758596007990940336363628781478744412071659501129857035984529079960470377254390258802185707049745557144876591710531631116264287613835810077999343825461569462927916642188631377417217402709815979660920460504550773910349900925911671118058140160564925678028526689894794891877653947297338106106055736428438170927598315713993605208255156377477448764330009019578383096425609663721935729942228787442268452181692206088916880862344264178814830720984813078833600425025521840484301285194278619649770793970555566011193281542884677268670097290892554286521637291733585671363948922382141524567552588479991590839367105470418510494106565664923306432464597982974307402203746909984752433663931825390815836722252553766672116214628352416099644354351313104731303786710935401360608239953901928802652205776221730176313618249011318931702107938311327272772231459619286758277244483702383182828260853466673396426474397847343746505859235195755837043242421014211237237678334598557676738552189771397459933634345990592431127854249617060885938210186300266746341704825716837088508773119131651170173001503739097667721294757609015463054098690793424135943907350360507162678259851492214005634054838020380712739619970295338660307670757747375176694499641987901045818455752895260927133715062374914683440875923902029177475585954602672812957636146899972082909815722663765200174906376629127227431153937855339495552552850940559815741743084750563157656481165920970112849937855905919767168707699150276551807576207244376402716086746881638689666849695765366456477088802697258580873468672020285532055269631606504821644931365191457871443436255829369603538415469843412788320981410515969149764226431647372653812384954503144061301781445458494302810547529265058075478829407719133576259453960151682962556644822921483555132684812229100470620664619486619208588103416356487500802490611588030117340358068446918552279964863306371478321356938738032827905069968081159404095360266495246961511290061180583596732706772564962594193348517758125957351010704788044607363950583281068056291940911915139172620696755718025523726936925535176800845204104323815001464918627144300963707838929429563096909511413297154600310844935994009687799201109108321905525408685002423766395883006091700933447010047977563275451260971464612704523895446935161145320437161327757473513985876109919431353128990306660384803262597641029125812029173412352894990466340508052017543453294492622216034732430724600920028557424429377535789250566490505982409321647268221305341826543163884273742282739156613017749769236717277709080344864306353264834841086009060964960012868027012674939292301303233217495459349060408098323698559052653410440462838727226400660786255788901600021877864462253297054705817824230778712602302521552275873113883535459484443826670423469289866008922194195223973112841907233308595694135074376797797477496734657474951716992024951079333367563403421125249886077303828707213003388706868178415496532346655710430250767838439601185973480582187542912120686273742135824861382551838938876925810217832154282531457019458075310550584552021163741273885869111963622842713779163427072892223572649873075463321524921755018335116672808485667083746699411568253621464958193991504759822356467805174351599208954191461016363920819472665024425596707397126257520432771743098309082832712233923608621253874720865493238268797683578957410326605451244358825509620516852651979785807978759865936600244371854627209002459568671506981338812103965505544643940544769743040759126241612160423896718559764138718328128810099836477051730815699069907453848392825505230772808697519488825332836488623427893356158090370139806029745871871667941287038667356052371888811834084954876737006130988749209454444369964405645317690952504860424065493222053075090805185071898742069141326464863359077582604713386469441896511271445554821416015192253393573505551805495977025722795969073675174683662897159479401789900636395822638508449873720887915382590039572736670457964393750938959060086665515396238238408916581002471384925572561257732402595999677801138916284370310419399238092590636815543762558930386603484046131416915621728076485903576543647296290826830408016866851491612334675190568350548073998604984061591784387258994702260345169590516238075463234906551621399341682396395407600691631626007711768605491231187627771283309306304459982783164664113662725558329104941688584832307143202655016161141656439228109744930628481133054386841838843376715212101174004777864513734532478362373349956569376786208308461464536939695743665291521295566542891906065401372667164210953765751860167036176780727779317301552066972778118872804504018250245949758247341755484850888794902774360231463000376527497713377181857324084575728221844456163355576423438806013928225291143215355206347980895953204520032316952118145309805340647400861709542701851943737373443255207756265874214216168208289621210572896528811027667636842138574268559470237866640347125023626811678824690598319030641130648490103810791261132015026139088918441237719848101988584817839301762627222320822632817467036161862439383410944095856855104533510630972518978662115442203868894923319962702193538994054238633154946147167648772425755699466017347942612181859313313333968060686702053130868944204148664780079604574166364336834965324185480697020493520829160931623720816349958407321580948977271730114184412385458399980683002546938732371137924866421966122807254415992522100286231273311596739761775943038368903170152883565126628026321796309925256242303234100467662127386005391744146518157955064553846068110674165374975442555773733834248278426989774734264733177127804517900503160274617524504739371046574739472397873336537387223546193227711497879160005095443477824767439165951759025251269638508858198650358001251403305068687219108785947195206639449135436420033136714116898881876068060081622234553671425500568664059177068076950484704026527257119196857846776457024427032150219054081902074369764049505412984769564360851060245043842976138929091007694552263560873629523348794327005369329872868728741786329777643366446425245449224736080203436902800618015776783850675513404994961841931513166130130275276135835952238613197500619313323735519486766369949458400033142796138959461315264687743727847483921978031989383013213994286527989044719481805069353895665312790561459551195734964369446416367187330095699398204072301888249981673962944893238998277382928818521407701088284939266547389240175952875161086082454682306491520104288016089215707397748200281461776054595475115814333538707653219481885224087498016858299452660129428029251661563492660974901896882380079188327123680510903549755660919382368669647554436314290769412257131357542199489256541066170536313879279738834073781696962237062740077789997392879617879152507431272044523576076010202820733613367552753601119924578989757830136321389052130366391393304402443372120807792011090875410062927462455915493286970056773336261550042816088858641866885399547452216949832338069097786479732658684565228661747528729448357015147154305131464312304139822017905373427708422030116862452734442106519861412644382636049344270934814863212363102747572689860843194218505838414670725427303661578699423091912672896700227337734982017784114288035300812968598757410451279197930929264315377982929349576356306768351858635612169313103354496007334865385876305987590994984516563591124331512525846097762528999760789087496421732857996199703297038706658984809418474933426024506162473548873052894295477055624638251409854004646255943194638917663931636112538210462493166181539694562464168190828885557938633069524783048204106083829909172237350610366378434636548230172673268045741765509937452151022839419709685067669651882667706304639095070265847959723297956820908373047139153929490352877807246444628930072642451310577061764213522571494043806315283338882974459379334601032690366613326706250474399150096204755713636019593183095750686919974838325150913583257529188022512761864678954628104261199850354118837748370307404153611277153556198893166144549919903471310976759961460523078681951815238294225691476530472736261193603687797887779481670833754311210716364916714652364379654452412297067840863970884100780334050412652105389649817905146899695429026911914817420953634042659026040806899360215154027728046585269607276413247092799641689997281654760873988802408941660623952352000225919257029790204683682560190528937530137826105090448859023947892073002532861580935926469500382596054047817011085937578062786652633956307344254342168819682809622010219004287177631421727938993692937501614841760810388261499509677152365687892235101006242633900506788353685476238213039112036327411906879029152659250724637922429961836889890559518043761842100035927580379652661320959145479204070916596863355189959363907299471000222689200168645587906841102871039275388337641961179593534661529870838391731854227725984874091129773934393090211733276531237045824571894074186585920276010269938527076114427981398484671865035248785834382138311568385022865715276807465694700730338086504649674483349623766244659320724422768424284277807632000140774681605763235821552475626272390453311426724383276076369735164252682921786845652874246731112601236973974104098371892045618300896363470076940250526162477544476543457804221989993487566230780033780230840929620447678473934705038961790905246535912132995869290355222888700600969134751892576718177451405253103449870608448194448733942867012671888795329399297375300387796300056967110064807161274658646655393280015850615027653102149602465250328864029341193299585608773799722968774438813285780954687707976580928210922864761468011060883898627030757685450309763691122061927364366067317224070726235226899505208889654676916612151490418426162810242805961728245606545364474607016128000418983766190026524410375602002996855245186110738716395123720729192627999422628765191230436081229126244110431023283420805373417654752216454683632893760959291175201984579086595710450526622740732842067719843777927210702143193829305528471072516771936659989815427162145815622555501831833765425775725178095376439034580542101076048742285018591001083199718816186999993034554060260715931845133211097308846232696182697657139950792522467590895295667339783708839603675687314920190562358850807523413420225743002462083043566340625275498977687122240805468850475117108163438957768794324029721001661518702044340916449080583345982190484374666570519211108216208729969126502301762677368248421498329668798692408590093787469980450012150821772348526999681534491630646056338436983726755199351889279093698497777189125255691606167469701890452535756734568601228920632857985783804152580306088214834279154672088675576665885222032360796055442194487387365982917648395588844985585605269389805605885876589932358712831767686576858137270658235022561298869453158392611158410253333961595000900952791562166025011189100660916607799100117800870541640462801068820354359602373915390254474884746740514716320309060720424831592410505919437690717384161008133070516818432276199508151148373939435213872312905687072889428614023042857282995243008308989676915932538370211589740627325830205210789415840230935915686288720785829113776723471887001706483888181052962764212261013069315804347704640827764511418689729350673893669470475058440856543577607383267401908920030713766474286698213927794385180934256412005195410154739047542645566014377126614476787871043991697077428151626337151264467021137382658591756895108982157687937717610552126239505651879168208358172649179445404660765620911306158805159300413303579543527211702290371164498050150721759421066560632137713410195199820557765777388133907987462928818155339426689454961806592771252945764812928790102487402879645280444012465459572097439974669181714360466315133203767659454587639262699733224307612180200516406669849766383087420365221705432120668065938268805720948555595585107205571976231713707130107160192488504233647577712773402178464182846167508277560147821617683897375763507711746134467623873058313235893102926586293704439304141330871331238737747977747074077871241434255344170675380963638598311702419589931158882175022280823819169612335664209733813550373129469570147042881633031431239936450176961429106906182403138108154347054339083371360254774847198734423644851337209390252592943847460879398301871277315745049495458521045801555047641534644192200566687452887977546176536967667255873870680427865248464132686008567875091757430107535466082248219830105190985205229844201010201322067275107019694762498546617103100368781948012165566431106474207185364150837780302145791881906181989846887040030979311114788190754980668199893189229772740700800206522792801700441450051295776418713261273579071592175311916006007070400251435366816995987360912927022478713209187631644441246237182833089508354599378990297705236066170036325501491994233198317270832640201709651275545895367152865844291657349243141812833442101976495448869649906179685387395469635481594687224778822052954183933437948741266617974668792780040715848212007218596732841275165221675021463169820335965530657443708048641398479853807089533796679941460157255513337341294995056893830502169548996428694757961927477741886263842619903172806179408240706267829232085787897863012373608103011679906494833395290961466063738721932542080283038521477607750093543369080126671243687177531799278695874438516266731633299057370432573605051842594428296709336166211852515226979578626452445511799601864299143539927949092885352592716971416103556053949987665153113326992132934780247016966396085996502257259489986005397147035034884905340774937234468078010949192239451341185817610932900932683341622524499235292387869415191441147455596583227914704902415712720751067892523705001798788300893165897293975084075868018243954216108210667561065027104066524516158959283791201953188394812940919262606783002943879579331501836381352937992442502731880637292290830450633193956283765010818422322737646326071216102823247581729348665195363892921539166357364875032682749178440234838937534378712756890174343375163853334217844974051405526164118704526968607445323082185443273387997017896027159374862969228571308800449304841179681962917149406194396278365403932634227025922034874584650481871379337943483416037803081292070112032047154415243382109629747462560340272356047901098121304377150165804945432595680489996476105905245530145707294395875910193511674081055324369265816430167779550254752708294717091715113692746816639035677220940482753913911655814259251562749820130707209241080691995007979746462015003497411286528320636202527272499078011477282999151751844661097865815391509959361892105165920157262610647959690092585986930036207932310854892693858155861749001027552764552244896708162434540954314617610602030068298383677474735097209488375140823634311056951110229971010902280003634687314171369185231322799183059398804671535961631831958247091543926264210306841978954980762027926207683253912357520992978234383173913234422169137764610317847205127304424104561400694907668859430831194598537222167564687046028681449269011295262407785136696834590248354077438135775809088011996775415478898200193276233831571924441450737032348130142916977444737427755631911063501998873229977992480009266823742731566070353993482527591089702836852070433783880179212246010723412877680854084625928452012048759114669635998452415110860117425893324450879000363971985481655597626779485441077740775067661660676813044690148266608276193853604500325282984503826992704966300992098214778781598655145262947127566377464369994084739382362076538425059987169486709088447814966577610936924723152729271996609731597897819181070985279224276494801651823338538050231455793036438647402134982993504854182722025365837269733499393433277562823683426486312261696231311425782935546810800741820242416606801486507876884354855560897085253270637448576763321175424024646624623608194053273519942925764942115796834308075458932530254343883196538747115100149439115469741550021484275117540430915647165330243036967931606398497460436080437458302267224598700723194578927037736717417190904034924972679629689999168191240783163469779731910188561933748572852154236061025100565117216277710268702744795701300422557679131321161440444805053451144461059903392051012589643138378706083048266534744202477240021261837051443586613314206517409697934704310344803648859443465676305282017484361499671089010518271188071679002483178938472684167057405133118468463919757031734664635824931748433826205217750276893717338611819590155737764111205632505462449712180167725102017325705713902287045521889273154534571490362087371751757286630158580850928062362911690498625569676266199134272468971821480715652471812667901203030823803863803079717435190691641263741212318024134183290051835894159959241041125902474586852396249365409278974147786042655932597254716560856211378752157750680799629521326163818505766395149719428062724612985762691415217515567769728259163462941500457055107922544544462351532784135961557235560600339652854728433036296264352585398000529016910217354565620061879363836347341996966156871424682467554009103529592572165639068066590865627224489694555703470257093304881195410201924067319988563217144469661595682020356161788026022801145695460907368009779420633424478274604723882430063472618099535976718953762140210207945849594675865031014124287258325679956742693425043795613685917939057497988045313915204100071902129030523345689529784533987091291265234720434411702088614317565902162286539593299262837712518900985427977466561772227903580713921598804440796797069178660646680742637064490004533870407257821273229159057259962555865112615241198049746628516949327849121611771123538867741512267447629994882938694694531788493903695473974944904644579121610166941356316371491687511006208275727799777367047473296824716542207855619844325246176223459599082797401973641093263610173501019541049987709362142817265701732388898948285790919916231753557804111744599924152374340261598113857419506947592967781623519939830042743458477701484711012374637037662093343325730721527361270093027525959548549279858691915072826846919249735051014866708042267791761450479570936134203495840885491631538162463537311778641199470577203609553292276505827285791001777496805124062050738423425151082610915413324237459266904193084645509155317976174768037127390630830044807764932951282072687482766077771945915979394471615837054340188151436218615796929854266012510159207862121213519865230478385720214488127304057663218855171523119488141974317366352245319663170523067794567302684001170264896358333958892066477925208447538282436119014117751364639511679606606195737634308157717402005161343990542756766973831126998459411689954579371362258828106737721957929487237802957892408035132595595199852189987311312638751053341576972920545944689500238475701470287940111179227964404576425745202912115731004692009420805082501672787038352979159758267153925527075124645662205050507449051218489517238781760509083002399774105101058182524038182988665295752418907259671323185274407430101164730092421555317320695858544474388335861699156215517859470786110553816746196612690335675199710661966470491900870745541055241948606492003846096967883142171056957083430119054583653643857403918450312748363119100126900394881566228024196124812248212675022077295273674584218498781515860807354135937628753631661776677085328572068859212928616791186397881388956994468742447555118494562315920459983391177422040514417387563691191709024294423346961211868718055148075324568284587975326708821889267561935281409961688554321884666440127048133577037719789813319731263890272683442944779673912893829939097507887428554309813558015873378232470218206336219855703546407364752287951904023871961346627138660313468669507224562591203535915161276864748589366589742268385656455159963307503113964735749583071898741251997445340812390948950170684523369624395852673781703465835851874288982621139016494610460552596987916353878080473614032557857235061702830641679965374363947214737126884165085166136086906645089616339514546217593988197558996086294183462383116685901002336686692798820095302450210078729757731356381401775670925432255819548734222991060246748364651215097247338247126034355194181002575976689852854368258522518148661103039469535478343633682331557537670006023398267303444847397916994834188853072353964515140645819993658046973024107347006251613428640350722457395395001788898509794584975920905811267844231256728325936059056224089562281081051546678798224608217747638432917919996024752818126543833446432011902784959360533313029173255263202464532742120484373319163726989829371986410603691763851028042423864223944337784520814011543569673079443401311233132546605270496859460849355495187934567589918895441592415294725269411751872067471568974777577173592119294241799743935745370385515529364212028218395855126804484118820643294853737834633990488922310188182267690311715130019420944001095870655753991989667295096903866153051260464937251185950760257133348139787082766381275421129659934908241800212965835064995078474180441401114587213751204494704699129478021002294056317261995934301434747745216076188135084626834906305549574893177874331612046337340540837578877921274576125543310538248708677000507346813321083401156213035015290749554813357258147070266713863755766053647842333490325451786276775137186488007788844849899954508290533191074925588355289671988462536996417500904172033872799578725728904539896482427436527242339012254660331217248896082035217294355762079805142872277537244396461246192748546585049513929534375603311185415857055740081230420789762570540173252445937112470542829865476161197163746857447069236040913934266555871572905241795906250977950030743491556193140573147140175270396353956753498413704720150621628485451423133936371055104857347718169402887411514059910101108537349149304588149237454240071104866335203383949193161227562598607159662306668167140310040409971384664579920974441455525886820446217713049197581098135412683811585688384717978880503639970983371466794750453641020739417456787823912925056814458727869738805314364355357799147841454564052252839852684989373898585478959730305643670145428949730484745841860617150820828259616667654182698896507198357416863616062051159079225846523613861903128412581827313970636548928464469210882405821021439495216404507747282011731778010545476229686292542642289473294069551361673849529847440305131752346539506669644120412436430167250153216162915558060843288150880265370786438955437444017694148878673529288106841607821272947446611760950213498392831725593513129900066415790233754345187440182616327021941735719983910419090976540116519022622155601545849330204770714277233696900429549476374646233894612955052560067863002241746475370206276000464419952867312012681009886595108033672131106213728295989714673243003845640499695736433991823936827547282206383032440545451727943156895870796355760311858444504033917877085330889287209299418869634140083716308946535322605355361887931680931990536471487420124235006459348984213705423082080587228770191140879061030034084238213480867808657134896662837400396266828173165475654264628970911076094590569528771942810077062449085972872409530523612636071330165037920590563860676710619203760210200338583853441810088097711143918302613016979120503579491600534602363316457230133106439604576469041824508512104946753553181606369319994620585088440706849138711949397154716764253054064202829941739183962554196417142204558672887571645697661308841397933109561146632191189106797660577618363457262152090614323023693215871129210798281620296163606020215730253597641708155402261078302342051334410283229805494197013739982492872066720793512914837196431190561260821977634470304721823802059083311430237219536758917560377967892111998090969506776649215251064649509403389527636343520213702033811375266892205413267764390839445230099650026312218299514422472784998673792680792807195710157342731254564056877451744395969263654633554754836713885320080989381130428721872055487495988013815109652092160833048453260155875579377460427203439404840401843101929982649381231149574105236587464123273405082586154343400341119965224453068960504853112883656188856045474076185585109136256645630664461630683761289816517888916422640430825875055250078836483445438640349166897935240694461793960733194935042033535605248141031039763255942489110909232446754223808346610710647237082286370828371628602156485151635288322092841212082544854055986737924021403546561661065141777610934713820079789136678849599655885341448994657562947640774728973041113904034973092776056998182284799733405021047507988378434872702280666978673011743118177604708623121882715463960943119506863245405050598400545723603571089018381789768867319832144940460887705296713128696659189870407386151172526860432715674719984977213064332135438520931925537144170591394015544401602102179734714124656373735037309931605619758197440548116285779040229340542040197978826563241717038911618668832196816086038775069083752578386346348159505437269956121877262528285537651674255691579165005746977272520028620512893392990688192940254442711320913739516048907830981200447919654641208257230890447957512862298636624758816998679733729268961899013202726014091590699257374615121043472974794766396374357244495467798830206003875215106741434859148941012189280430196497108852823818661138108093891115757247231401275178110587738775137057066435277418057339636763958503593488397898755718156769499793208791259714557278308685319378903480814090243288453908580540210107425418562967669505903780742381041700878854513462065464929007124732387823911476545867358836219553692073395572724536021473000753163096353594886429364563774258301690136352067507326487462760301666323199050571250075249834258832963374364948013552607989684264349419692664998303250926728626391069459332673716367602042159863825290811840092694001994740112637682864589832588458009172998491921093695267937495372552939044427202909591557504387961707979886722408947851475745188079265005534866831493514761769444115926776996898792605458951743441803442074296124483999258134918101561970865530703109808415017171161846499120812992021018753481053584913818839106529345713735630645742414179306011768685261785756597458807078040662720066006932522525818079714285029742220521315445162434608278558615382407103793235459902219514654252600753244653891099501025940536122884478069815051849832555956044050334776710279985154901193341135898100449145653643656753335625909889451024153716989658930524076535232141207849744169797029019842112626257477143248582378335335731316923712460781620416496748532689082876510712431112762604312127384180317987444285076784491233926728353675158838589175151363003624205283902559665003424813762979978615009017963383351231829460189005983908105682223635586047139564763916356386589854660066253118061580678403188062214403829247821466467414798332704548987731407802553932277541946459772935964246037953572029393113714228792316276467286514426448882642380533354379756105141725545865734948036387493889286173366083092953759711324605959139280482859831977149806517572501852552409603579575335833770426441596555891500370381562047081260231105338595026812423758559916039745457050496257592890446008248443875224405039626083182245655780751901414847814727250005570792058968157229513328070824081868740090529211220184264655800769981749923084723305938700618100277035884283666996756500837075419856342324081381355729782033386337004451016515017168485607498819498965933482029850503885371688298741949173100584918578607710130023011844967414421394616920963053699714508399877635050128991225396266651485993317957330593503899166100925962450902905391077370147321400864285394142465842465700406573705051853298486341265124157048970208179347405709692234042434638385631721968351686366131909532483653032383569824089633633391976825373088415536826586241722160731115582978620423259559294345521225627253056184107481586275697578782803555048550126272232959721444808560206541761158608691620160616728622838069595468568511471553947256766250276238470233112504343454185398663402236117403631158429497803369925231644609929904249538509715764600043628305516802439125774716441738033236042992679035079375940439707529028316546480512741821338142344628324397058306766359272494279042944744347828572200339959629066748891948454322036451481947909755901606267364635032373832547991122506107219243322199940696404402381741876665429367739316025251780693988777476580385011952834003654196858139985926608882149539638265012875005441612871892310346275548718343665755130047467547685084565314788774157366332666467133691619796037464595214827605623920562973894873993693694474881466526200890453111944757858281497286482218911770970518185336847834749892962026684137581717455543092903156179856755395368360841999826552197412798093084534425055428843372470597858540017450690527250811112805843768952003474181776215308629524782591976939233934582780864145682387667367548814572614038570369708709289745782430372986646804819123916409031975171098905369031744725552911724063202370151131253102114481741262489632232476403120992760704399743157622044747751172323227888494740024663038686908405158060969709805038297139452148543248025760965491470680033348676456644052759925846021599534988791338860237987876476187489227078028325199797106072777663313306567356271919963179809215363521444731038352347762949579921136596059752198864207903016339451349388239119665049357845445752795769586512844435051603521777732167750776807170913749487301110940908320851076793221897931242527542993266290834071808884570994688766446717292525603885264440608901107921873726101218879402134782306903359071669010000566078581366810587011641892620934955488015378601768778860183739661770630756457590463697940577002222002606207915125646217754532782166035522955129155388563715773916490728298081454838724392095273500997595201354412501473531487926560700879827953810842593243133366657750896430418372617878079879772435223172735212532234336575418815946290890574299402029516527383877437570818763231371931161733253009173312730873741072336798517167370718262370699645609742469216951818888647068005184824437974482929331145203741526910004727975458159063854893789029698406469416139147349616471570802964841749581094887690405808588597763695967424267725190981991336459790484617379397552476713325121638536281425790039757362882210999913653248539112167496226992028308518548652547720772723482918374592051509685585929659453270390274990129511667628904227567826978738821453189998685840851454396079328109955870023011675508326465072996664820148261434727115226808572516004881322512006428738517385633051601475452260161512140106165061140245672163607182751103171859882216715807403361311515592757396663522667408578201456626086686575284754514431497388960769552147170031627527100109775190878582932058772202593359485502489737653970098851370178122745958915886701811748813342701633103570707252119076669419945358080728579925413651203287615023115660566110069510218097399986914598917909179329353270149167119681188442474060352053052275598345467886134051550487115310072241304716966533554176891578831169540863612193073692756951172578814740012666594603475820094023585690708821036134062271440310690570279374230146111428932088078971401360692468261049982760290232121416556330273573769444721324021109732732322018722565300480754333441252440841759274432884875843005308984645512827664342275838663019433085732156525040680246367869709869605593038526994345735326288085794484088536478882555386530817220471992393714407313872892430668780763855887247049674101957116845191780152518428103216724429342184935849321636936339155824432774558322430567986559313555922397429944704511958281916189586293707834935257236741843634804222251977330184217932260775450614776673708848415031320919520386884234651206186704439131854531554484505387816313938045785843564218769169488443589070356433956874849565109611499054790033347132661208365812970990496476213667794002540110553106201507049173230631069629010707752318516919734075835611540607435677266845850454391244383257373279103497726681158609793305528550541616088455509081158062713433009593543837681124674570114979668351180213836176006088282832570103620801371896908272646658303629264659314868953728297386729357445149254356537936302104018529292483041145737354373754855837195300123387197533143844927420134760407331759791135562613334692940459150564035317279610271343738453100190725886157995554737158033719544554650733549238888652298791718839237340960132812230734980234723688386796157570532157626030200771346227638653154830051794009070892634954701821955619627880279070764705748789268513302633106784710962289937650734217548424552282392110701338475191901173683699320931801089709802323829292327690564814978508165190618776871308559083899581914311986308336560340375489900162513016269503309765371698258053625003015744910868980022245740689217726146968552294203849729110872451514222105750540333927895880990853838739426945991860474580952429960173458733332281381505266006625320476101059154372511098628530459155350055059524128754001971995705384350756208259093135315616464797554324513503567720903351351379196946006282087958550775964423231781935914515808228261865016074381464248927707989890573692127456756870890139824494689662418127008259582026998264789858349357599514391813641546732936527276536762940711612188687624975922900595365611078299133829004239505994058592672864139957243626862830314148896000764784669330517146751974288982296151941497214317428931336176209607961143648109437948870405526389752075229628863348687913013921276224201355679334832872451659918067917760834859834372007192222052152369964712204174721108912439424056739836418483345722045203090246679931918385204212389726239480990687940956224869896772076274754429783034055487036108164705030180583513092117787308524086293693088160778670852849195462937638295306990592862759858604798779185059398300333395217779535966839019539890748018494158124438447319542713459816058929795501328852367560237085460642542284929543300593962123049838154397294195181669362677073647838881335871882404379689635326909665284398924357769817071077167615303459185935561902218402448232168382511147911325625717309498953501507677059878073709336013061259186912977773901357988291250302963103971123272754903103784180075673304337367767238767019133153283240241202281054003868008388269363018788248601887913698932977363464909994249686516535162529305547294936495346744917992423637547086473798893365359544163836718458527817470821420138069903775348855809001979025899235059046439159435034893470415349634336632772656232463326463594719495011298171843238982101754016318154506702371487342253695377548168777273867508896686595531336862441333519094890703090946519433677964785243858729328947220339417905020672793182470071685556640250152173841823305305163438047596999334792266316217153300413040446168510203278178241051847467133226389939460259655491039496715975524263776159346622374896397540662233528398404313342177454458461725952726352998843344111472763089177742505495085597640823445823542793797531608979353385981174145682753784835346037779572281081438053000842688883375571178700240907723283974221856894059485755699618652701457485721113220770075961285330261328464231497338847025757985381261530096053990327792676369705166561303130023620230430479715017707120893087971816794108659964759204498149322571644152888585877295058494259094414732651287036202864116966098062653868217579178893763636462347671571264444602244734707182054403864989029140020650817378053741856824760225426131368496907625173294001688620208446339070792272183441137300929852327052255149989061049998667189952538537545113569229940907350569240162515872212513439716691805923582967321347114216498967810190358426509237199858462784055751527558729454589123597085210711364988722371644395602496156629462925760189943156728873058295180271031079149153192807967643143204373596104120526396083740456690766629703943340532634374882708252491158485100367068683875187247828267181391229201950095571156091818719919736976278186985965226620794940773416713963885107085860769392664343262774375351448064891256645128621459516966299414162437400204329053192397999862582370255464414988361151550652096897818611218156335143910938263033488046275075378940903112498017987157594629277440523483406522124623177310131761716567843673588035745995426640601088100448586824918302342637486748292214750742165325945106143608464289472413612464231479246763019435218289769940937622558572328678753771218651943459486505175827671230273663666482272982090059889693737634595865040395727452862304071336853649914921940124578203890021914120818311859349963962125415813295611642039447685169422075357824605289174482217185119793288466277792240418773586406870039869312516491339937554916591039491248251290075635177144691717937375494032113689778980568638626740933513509641135709101833245750490381303254479503476651245805595980635458599775242038029372590697177839680844181865717840457696263191935177233523010520814090627561825770016213933685780972447718132944286184264286720379208547269524025918155340420532779763133613219396452614209550920008532117750778278259564273702509564492804485346192647292581061974977555871111756041481631613185768175028018314270681945773203584713328033963323535891838171906613853982827077543288814164934183886909109041161257134763747905024334432209163798823619518094525321019266016409747647745690650758317482207161935489330985164353935856840711151691979232472815655178671326227932953209406628593783411778406842457465588618206173427166481131921645212544582482190571403908289960400946737135271116600797827293450070036597735746783016312157974916976678779079125435463937025324619577013533959868042296684309072945118911663285598980253370552306144523796748058607043322910201852988713838938831860257446262568709276921105291651565174912727511613224422451258448311919500677407306855036363000092277466302577605743315857309323407459945145601289001055830871205126639156908592875175895687405082110348283594739603542202914167265157722224032806278247052888665993273092149558468804024893712900804473943655086875279306585706787469234853946847121622801796456090560434153975111385399654095091100290227083304525344447110024069315865867440249930026461733464201014439970410752107931277950113625372233065814648613726931483143790405914357329752317746534822001106389131786252883532459193540098598650991871653545251509011618792879340384498925244386938593822357894606079560881764037428028413462086294340494711673268550655933288399263269215978239544610245209623503615438490579360398494117571043559300811533313155228843701649329475393543720735653706494116376594332882959088948029491328875528783950492334092587884468799604075531798488029326102154915499796770885048375185330819889354912190573389732664197494286024770709762841905913873514739192217366531886914618400889406416685289892610482385788607346103508312405740742536706211173983917015674825942627910550849000019737841455952236898382831230943348688047470470704725753604328880698386145781897917450534799060422263539287455384848459728179315023739895864294330543531831576530996726681606301530759645468230380129654612114285794339169728981743814669775969318439891503439624805703494225973987948690702549223557840965929033379398135624168240781221958731403576968582298635809610416842530545878671864028426501055275852012896722394126730491513092135735505197050364891172808403628583716564857067001267409971708231847847315833316720227658179903026479786380606566917720078607991361408853682873476079985604942090493702522882437380654601290081805856653649422644757553620705087188366849807127216888417474270374273782746385069542443102506893739214524111572372664731245376714828421534050852867313066736824800791139410105393083623047215032634428929116108950019527939531389123750683757413380931378598341382362022468573405448446380617977290506585677237434985869202793942336280673841968829289234029420080227682579373108801779611507621309121115051738906997515374931233025130383636376578792765404944555077456805260192376298280122557935739925582683539396089696672106803511936257450926641251102737886013935726780851509014772784922368919036789798579312407197622467117253616090318910439008264577431607175203277493455611865219826811499274357175262922273108436020541415022273932640677515682210720012001853387104028864125326168635690872249910315596630621216770654601112442606454482081157564507951151871424074652421106166023165102147755045412893902896582461561377293928333754417104295302571572337360000325522553598720603822468762179763523161636391962259565399075052429010051972117918305827281753954971863944676932927282007373647658862888559322039990068332602778277240342086407663444505452607996174370806105403872809724870106337942519728001200109301592506283904909957202204253917188166235863915768238224970953412848796979332746979484333782311477626360659410683594624625419145310928970366795260559107998739676916666471331206708877677059415224448440667543113567399341147510537557834574577557759468599588145377834343755077546694820357022181419394364327326857024079679122817812376946437101963837577072084888690194232314625652857883933507456584518982816955442482066241923184893898929626871524965517277419762852060876488289248383192516548751108876254338955261732601184404542354642830381831320944933929498471602374796962201009413977100396553606534674424242747850789148916580802008998632195461421592800527249609829150399802245892077078468705071414900998909093675773806618078712272718774369301043375058436321340306193352606410908906342144542775933555325038497385559953346367299092693933112661204242241237809494175530880543384043718376110043604947165069537435816910392415652729912217633449837031297858726168840588028040843234522152066405426840025032830118547854661192772668719979580789063528784029740328224539227182299308504850486312406015508962179391260048765176153819668608900448339825368427725775651236779770230768928262831793540024344395095718836840152936569140963787372255201822902062635784296222408187646268380043573846133602315792889924242318841586962166026734701824020751641800404948004612514194752225227448002565519401250550015945405886585068310290263851464631186089999662665039502314466059359416875657446922133920907735775663071293289461424130595747311713677027944173357260114312590606570075019123656685338553215470024008181373464957726430355584972649985914614336414776706492424611397266646199258404161876610360701023393236407772401943795728502054506211282247526383996480031879650924311111276420725240840314277972780825362149894092667769613403448769652806485593299623065008072962678891906960035845180997262322147346249236496985453154038821887929356996508087092605683294824245717612006333232389080184317740544330112052563017976314536536216504382959021639230847762487415285771124801654389696013557703947203600101889957222804055095381071844515417923882879521145910813644521590976991842949771381625298457231709725669210677215987936352840237388378076389325621451009222807800689498772425935588325990539075184731572550272586211196665849536243256401449155385239222305848011464165728465144320532140413797576724568512596228146893701933000005019878404212600843196748494542551044165439641672479805737070636221589267752561971710072625915103921331877539643213171568045107300705513276112799503330900185114856414469631031639273471781483619753125893483417400616046050116282543908253445799146800889476671022092558937023931261561234761476014803551209584110954045992288604437820963040327690593287490396974613753973079174896087573101085386672977840145683935180347271644320645093866828649535702969383900327048709619517454111357375297311333933718078052840851472938666902389615725984787579834194219928792133691356358880855192485407796361781597795474493872860410633128414288943089544682367465949275040160990437250889826823454930248341790172633844679273876376827207389512796339735530949034126241196691926465964943089457152972275804915321745992342404101593771376871335956383272188588047781827840852777718312765151152695855653605256328023531071954870847002644844408328994418595807651943479444350069837166157215122293578580027193992503596217965449716045712906026607737131074071181610901892644397222883794348159221136707264317422074172691715778935902984842739914446680304299267797081415411820749973564760169632208276177672248019509715238633300441973433416517065111336070142071970137797548049384086556839485076212825675820959215461579966507210119818240122976166528039649315162584181153906123102721456669000669719734668911207464835978155551936727079652884073787136684973183210631883764724469674684679121021145916520646873892178389758305123815612674505863591888034096096864456073886812918505703832762072417504807749741856109184565020270024528940851821778034784278061953823006286486262587828916455345397514357820395100628616809397046921532154266039221031258523161551028083204443425462685561469351735504971597017908595326850786603624485098136428279219025750504022868023947405297901518645266805096139638358455724223974658233951077719637624630534467329152321800564333273315487374630944717798252301799083098893511174472546094706244003506802342472935997293048582052210362774490856826102504481332216940152852673277497896453888633301350064374004251081996293041063452515093890149436538124797296541892150223500807220116870357749726792941619039898125608295255254392265791862646282798963936572733655618744161205715633365373350835212267850276210541968355809654909198467416753605179090918189532853728393418137887836459089343880789687924708812997080079087613399171359937492770377550220204019396621608473043355400622243654840472922524083446388643283015251601321683299230682788681210884262903875339324858353896538918936033470758216074532392176725135756004021828423228230956112711968510869143484143535096768238523722273121005825092530036689950563577058255903475107269786126517483624877306932384757852955485712765953434738605160134506339781077046381324409662815476393707598164773710006701040346397466202701954180864088347214700952396912189869590974380812749532710959745371935721874868916276793563280392080016369022645336576401999633053186247721239096304585869441244022817387495024715661413822087568654075876546583493351216945338830737489578811303313291174972785150177272530311320991437487859115936429589183536707718801598504733272613503494570192868317384361878909418098730345601031954280662050076282740483542651071599600278800150041001261431696173938369147672715191568645039673359183075485084539752709890760605988305854118901672539007195224311145884424426343259912889498353955430556699957309584851173947161902244752473064008214918775147510543069426508348178005542477335959658686044706345130894319733801497189804921857032563686094626430681103788169341292579125096245627240302308829684117527010738579177104015838073274321229734411885324219051050233204060931909206367502085263488712899790003282829392236996612387213408020714386234597477639341785301967042286946545387649039430984445323340619807596781243992637669664246932024540844120625936565396151483244019414652501953843340762622497515305128709125904379280397293774650616701296714159119275804224933328014593070485466612202977342369854716449169544404984596005794199011418426195410740363419524977666016432147686880910609769199615446980350057531823181981823958624097635547378265828367915494242760502104506055736558979798334809337125688959480274600106102585847674277500310989899111842703344305365697099607099438798107095072209593105279286826079877278244603708610991048515001085574651990086206553040619516721681318406489412654709080062835286675581726643188523652451773048538415840364581704491501117239770049022834683747903687779987795742350651651234637624246643454521714599880199783385305800218902399102101559415098283349360254383797917987348273040311395366614335692944945004153293090546840753097270890135637382481036315980425903392948866856140048295811239606503833872177992913355102828206433251955691743307005927220195018151763583976394461353189428120072421623618015032042587914606606971088009559593315386532610063859758714190880481910097796807951942001998636727093651184699371668231456992188528230680929169263642582482162500050432658951612845198267746352991444783879020497220934787068503408939027686260299722465176512696267870835729561903689522749745811503738793308385786543626400770775141190592849382827641169849947698313518862357173878188431313695206557971064650193724937436111912994679078043186653137882611047755399149096536649045283589993512332576118339317536443816206353496677081229184646522934555208683401650825262180527941284722218017845255267833051496228566217114693100113049997696536608912432972085246589278686462656445957212871459494278653736607312151772024438914133979555120322789445163833325607835563851809815449216884215679010755414161607978000314683119109220949552747685537889352658934597697700471422017609935565548337012514929686301810680226294605947746030271958949311518869364408184372162599107226858657324937904966613421932022749256524801138527468836632876911538761614767641633261644039381262180839393519408740007524422569325958526031143940083033358851122153729273572735768826618697614651138671549372124330630081432585100987320232366982561293056737096765481326781733680407560013736289497575522583290108170047992835189871852081724435293454446891629366771302279565603926600185737384881821574890444843223402200678644233489892549278888647089402955124748290088187960184315292978801744078934959782187739106192267415886004320892585269639357858265714317818185209043990701840956778211193060177071753884261555230755190603937091742155550358821654561783752876370814519270902020273894449626430592000038686602352632517592136069196071864046071605748587397790572659605098888010065554155707385668066913274610252027679396797234548839492799135422960001786097917362480691414833571667712643358529820895806103840920447299978778692313439560615002386054448786143321967476368477960976957445825294535907155591436253401393976276726036404185274893321771395847607934956663560986576004928804837932173103512094743777702725096206176264121137719576463833722452412428392544715311505586334144540828495581348003215934908776538085570417155633623499890394589240289674889165993805936512808172798061596745765553473961742183933496939226517194540455921923587502857792865703047927263458775151966259885312994099495890861323729109149939405578406462469102652815206507370758994431085081334727848609797415029101804574462014410844524011471279583995608238458225061041022439998587324671554810129368078960958010559126929380900424053272822077422645600020418580071486271320413610303270340861973284300306383554514409050020204764471220158824278605960139723380878414915448905701515405005176170755418326752901045085683882476393990134176340004436297099618734634467007078223096223268043999742984103433358771348621285749804200255906988751623309902132417879884480278789002327204918938065944552599315810857029480271869130065603491052650967282912682008003865119336151480267610526727093365230581689722119811454327069799513904936157609519451682065209191943367912610533828323635593634449891998397898871869791218069691387026117580636834276763000599112338363872688273159582740486861092253534478250095099057794983764151867522941690049968830149954372234053015854985883637629028155477467474085879373606843679195602335056713525954790240761315004778330865336080746396649787075463984634306925983011657683115158317485642039724691737690497449375144989649480128398777719315340570024755904441070958314249683924451132430618469140228575263424931918132285753581997934009622719167933712902846027038944002293479902613185538126756713214228482250011147155188093998868770574769947768214933547258519225529431880861135247568061683090627474223256374928498419731053396035328475613992847129023215383899144520870622530924500292687581816066987436890587655502920232461082161699034224664576650602057454846788283814164266676111114905763453536606559264582929412143048397025795223226934617861143367820993496509194185222975051184280977325648681222317538079562519648945183867488341295627502889119372055982900945732853781806683525960571301584018480312539384300311961938798146142465110347699633300641519693203982953892238648707247787341587932732553707909413937088277021516553302039851933052732371670412222655953844241841218166769466880541335939074727521084312317097126506885579497398376833432149996039772086623045249820494235515633101623620138850720037741770782990666824692565994564022026565351156939258452670826131995869689072836331090938625975020821643724723728602450242354908962111802850858917444864685298484656756970707096855257544462167149308191926489298813316459912940414747319431367359221201830948067850181691638063088429512001376317228277702263362825623761593388125391458224813003604559239040425208082943317660831303808484137692917383958241663769444443647879520581780337720874887730172563513581686466835898467598968534984720066843289072419271400973099353365087960567654193195648583044051966888570448643379063932510140395630408467603412293931836392343990869252747115849357115148759648491573102521958018468677748896657278665789881803273751458309259435931966290664555849435347830893096640784100351557438257379716628154131068758097230820692616654938170694692927122896208062348516407384403100065008063912022695825039004484554366084256250076554214991973663887066299525454988887605493288455263281254122747467890923957258205431686294008005745992791787316620348678962147110653440307346862353662699670653857367580946491738332539194252452681034849948488709999730626898841346466251759460442874452134878949020314590253276556940610147858890019540293794160044715685646519763864304957336001601688151909128264274963751048252769340314273483264588183338961257404678473232956831471386458348829094565569117517566571514633964338286169380099624707423906846788335830289360971520166405775323618249395866934235197501104618852720153296811490273957579021809611585103054872003114380153747902632237119870886017114462343047812541156252271155429364123337881455727436902542200825088996513478684452455407219153754691974952224881225739714047922323215254466580426529985917354457017012623287388097694690086165442609169554371694509447529288091846810195883310573826958219252959025649135369197737789442483294977062498151741158525382927273963155515492474125260505757455337351114651407139412226316599968419662925999284025150139529995425518131471038779273884551424421682932826691706768223256031126254781826539303551892209179523495624038307561660948042561320673254658463252520764842797775760143618818178393380675712400117488057355931892278190612411625664453044494381847096848343953585515107422797454010551663915518546644108751844447399785298762750800875003240168958083225478473809605253504739483780120067118308193502470553251271485199178733643684120804466788619879279716830709643802270931884253705083312292710803420723114081032890109328119849262996146500163786840109965236128600866417937908263657007295464666274315993596404279712180332456099421639284546818317138394575590521001363554666463855378378911386863507401265393681108518837013236096240470266793045635100660701933918350622406404998764602373369937536027471466629316716337913184860651774677799284077436744278590279952611428491367709372589508545171902648000000434183381896806452289865491452880519755661188898769096234783002096974055369837310110525068557467767288251705477048203466987736616138745030700168874731621663467642774214146316670507348972044011641506418665056552156544448445395599427966115032204875898078712663183069353102472173097790601274964132689477054300892527244400804400266648359737597910227991157807889838176631308448000311438171923164575321232109174176799331175074058533001520500828680603549664854337413967635342751475391925293703488553919035721911318756291896998905345473913775252833210405290140214743094155937435507859187769000934883078668618314186877410496595776350032390924564423446002087432017508075943659188874710455567141255265620357140223917884982118625484782187886085949422540124056269287283170730614368124184663121788274488722258443833933227787152954094962445511241908724668406514344676855848636134092691608123753262983287688332033762627480156877380471474701380825565468366544993677816728529242234068811651978977893216359475416304007093680682271801180999680692791738156258278675614806979914394294665391961845216718255937605077445567766665931896008919067747460595931159213510133806784946873136435785320782486967322918210346049851329026417605799878682063429498270137854349769413060241889925798608392635526322878589814372789182765790052324780726488253107514161358438632768295618301521920890086431616801817285337569627443622839242981332066192936910590085600258460186880649272852688886065824080884860872332101396980936432689385686664456362875037803511843334688191087430443836354970548567207812393774316335561126741843415033919893383055487991500410775832988131152387599218527154704591415706098926066513818356439696119872264541886247079617150243363752949408973724685185511643383375768429302768193209206907523054225496663164774355412640702544347248016795298582552356958971903700072822698874697840215973082622513890108960002453800417292624166441515466000014257833996761372069233301577600467629083424565782482035093281453110328178569335422447012336468375794778684018199821706328511766788305596064937774381106228924435656899811089537293574261575747344069303306695915806821005255819285360947685939852202507758484562220974642339815946260013913346207394518548940564978816797655188010109200905832816076831277152543060637762514835933784883423073984744157195328040032126481204385467054039972862007634943267677637818168733460939845290253182885629880064432214282992949490193571244604984578438945055665405542090264566699939416633200767496311680559916132541272223348138867429878578280755320979406610404231608973168948453558956558186768515062726392471541531843316385546497120741239126415521120656940295518813606842594784344942737091009615797757434750002379118342022690989802180546295458645337930773363940585074693103354908887801215643850460742133673490721683785885695642045731285039351236805579828734042986681309697471709612455656966434864362430948420324604177557164185130187133550888025997641655993633808993326791136119302929571412966547584384890908301919476027664296541305576239834551166566951264844239581835352345927243168004168387869450939791176048635217594538348682937763868483435216977963590435758256156930367264961447629328352303538930097589170308770259594732680899326283685676577012478120716309976414438077250708690621256675882528390792249398267677252942131456168178955725260364757918044736366708023358087610742634286239821114436955478189504903324655980284429100303981235240640135723896021257834185924712609172771102233105068886312415465105919174161635622535689982746399901887161439241928093552766973566966834244213384131632242242973675419118101763069284949336112356393758428860630472413893295322629499409296003437694624066054304382167030157617361269868520710536426892464891015431243308372959248390313679001269683558525898370710128748149177961044297517084670434496163414894650626585415071400848189769029309383249562313041804385886458226962825373416318754685488183252757085587730820750428650293854289495186903476602868869306661370806246396725901133971507385033080250414792204683163572713581749495329917467443129956084172460498917927414873791261968427311743334615963878209953506087710314399824668552311446896362254161580007244735307748213814882195024789131049402000364207174394119600381081998917290111533889537960788375552896382991774882249677978852558608925182562460494114404360830365671442561505480809007192165455946318351626269479824522863671668054081464157294008920998487702571135608606810335145360540891047680207209477673308967927192215771024547031208778594047631031158247803479945468154270224343500383919044969042656675382732236055028656913395930108599188820749230015562566257839392259183935863894164182520876317088514389911304190289103253798187386681095479056295319276297579112039040806676473963158981021348932731025725319504391927115047858338646882187769246797632125008449630530377499654795780427582875796238696335284809554079496894255487210760745524689397101270978593801764457259249144651048825085913191705526068331572664759438749807141635347943510111663061484892054654370538165940018634526435144975487857316762373093719366255657691231643227928860847845181579423953550644945934023572728956202593196804681782093400619409137944669721475147980793765731162933823035803983524205794066286555355353943530568112390805411485390337611217435596087753878294899331928231174202912001398735477371834773925567305610167840803908070185774406480952960524300347602491917368972371308866672341583174228679598033748228884385565723621415197298887535599250311936959737649982816135830917516677545391341234218441715971347070314472647049425686999488115823094737604813060547622665824236949308370784178158011211155204724294448724938436137339034059865532511926158876517068088302898770546856300762186468888509286340211659651942302700325414745124477995458250988348830601526714214343917686899050469261847314400660608470615885729648088971421234623500839953854404678868765695771977279241094424480349172921961987096958814338435842063728947909673695064672124858141735648534297338959505844197205760543409858740142775327092911138785584920577482748022174726305301980386473034429622758336526014165769550868133044921820166281954210234333675294132579423309237091573744801917532050354335121164420541623911105744880516116738158981004284078032287338116203765042706510905574291331478267586123696482643865959850340995158234955119040784149693664055461373358438608386455332738333073347629293658750526897114273306958081594174959748855716139234543611844888370301324316380180627806139052692305713989112901623357091061073296996904861497802938629101285796104933566948653939372676427777474014160554792744719838800502007569985509578738392742625883916485165631539018193071240758554527871857004451599197978954027559597492128135062855846693695548782357648631489608762317147303495767057897872904685457514966997628190964113576448536749276785945089209023295002719636054723012851829841654754536802071239673648397153951894512921682985841859630816899668702544130406054070243776902211410080092920834618699157508283148707758437875556700642313283950618765514555682833462125246751481069238688957966553596015679810600630450524412235686235214055525986181767065873743158701375300004110800492119714514248844585182764425287375576302277642668600135391033637825446481680287025557031291665274182677943286228922766558599333289340619773449125979808843654550733185748344957451557895243777009703068016150185445915006445420660695400853344968310722229990717910798236859378708982029754190994128898835224949245277336791398131900266936198918656449964043664773631741607406823196817191784912912843290811497657333637224251558254756315773905830984954403555630747323216691111811078009219810220657279611169513194874015142227574568453495153235794975154337073840086831288113043353690230487268495711983296260797799185928159431331425311092359421871792938618735798886366736769270918607211301127431528355000962586640495872645083315029895894883547890087969052663049534957483868777179349964135094425704812131213422979781763262997024833202266795662235128331411399163379406698870191302642426005762431358007695834800115984591845895084075665696944961615526702829678145655225590965489434918175775036283961335008769901891907327771873104150423593293506572871845173832241378099393300558616994552667888231290737179531678373200757251973169418666996434126194653803000877706096351203527532264984257877255648670601293372348321997259196542032447792347486157785397711704142379141756268408697486585351205377167971648034424837547965739821274796736086873431049172565878031069790146940630990568610033240773546474980516854582227287692098715327979104525920060626983445815416180611051048211207637122546055498387291863311579828346687019556770824701107977128707960183957090910823269317525111958629320537887053459566919721081077907545816494022953215136093658585744426568291926368216680276055431009534381857745390000127937209592920214340674754579769727999437121925002878928974787801834201477977754900855049836308672424280667514540276268603180687478427013571407260666068200212759130653589267882830766198950270471919538685279214638627094124878181340551961362551058615848631215251627181146187480031173761283259088362427642426193614697200513892419748779132140198082635503674111653399396577092501420797080501365997999392534076724492849326960938619942352391481404839079922867810720477640919556841471629396678205880504623949100461341200215167226201266326044239726459012711762406902957851352975166347252729085061976068852130081020943878893639469565508355247734487586422394363957368094738382949772394184084876649904280841676944236608073712439560391907593529798345114280682741691595416677026451953618378361988870717056849622084074557393720963610436497225642409449115310543254107929487588041324964425828986901155624202658225666704669831771959997671691629946214473425972134979565538441704127102974801462125582422389097366561103288233022000523727829298097522776898512321231358804359050801878781614426218392971208209219810171552853050516660266122236353004020061935799275764071949268234029558796270681449825269212713727356207061795847067706814086444167153448520588909047662455479311221736635709925886269691575542995332398726064792459369250418069337058472462406823545893521245958601288643367055493022745710512995404671702611497824523606968366895392075980036729804598235616577551041390448875219966270614074475731187743784658715063640729285359882171801347915272325316688107911717120563517580403906636260027312856494384871611676923979565770825688109774321700767830247839019831936734291710975002479703259500658468726950967555638633018187357382487716746783330001509209360682738636397609712017136555121283283679192370854821300392712256056966725933639333474767219445519878638257118905698825748471112439628184719868603133800630981968193029708613254006120855838212228014223091204664120666774339684904916794191664901631491798105280819322547678400056172630314508765042586818236240882934825302004485123465548444091043367083609283562416966112858071789862761914960452040743690954664382683669731180016566036797353484957340776208497927741571358574416254075534575913817445033340304101562702102396690455661800010016787289264093894698486574582849106039788448738621859825512123053043016819148906587335404801259453462780862030615988309062547043778411863871638710011450006266955944610102585537850451046302169991287230563077439013078588166402671896520065216169724983892814719738948546315002872985770132106960804154423473314489566718987278653764101810173698500520811107721250580968478821525771124047167020118652066187851161300756823170960056271510264855401311906889519850921587152427564865624993325202965032828461145109784753505467238586036448842112390092047322843776176718859029763229120470852010825576980893872897197553674617789931057590561632748063903852100347765787815313495656973138472843257340279427196010053531929702779288801017291768484527425644138301291943246688240430114046442750301420334246695931869493845090732201869820170715696461163671508824525730476452541159863216055294298392876435558627567373540597916779402803813852007728069002823297546286276468949006796145576556067794931322602161672098499195592493193904887384145870743295928688542227833477178369652337179766052821123289671120356007120156483855269819122689613373031527059708678175261858456020811071467749588430854292585291333797692632793598677971234211265359259698432822562165022063837774130560185921015310931521325337416484705807923258762887319317038654314776033859120278265113214813893923781138954185688116310476090996881631997674661281113039350194669325663160891888992628893568003888776099666878659632098117563089918877740842084504029436030366485187531297406292476130494962883423956881716381228360488127584599451504312805500920555615367625849848444665883410346820134263809373490954742290769427793926784244892695791240629494184307305738319913010564058854732151184734004749744776405422436516766997033535723490467817962896857579143851255430822149222623526589648717796053153084448551504999933130461447374655021749831165646270695409800451138679069235662685167924564959889888122209417879324942263372592525865734248512229821332029329443071044478580422017703217393506901054191348890784153015776037999956052115505354890260359685703215849568582984057155919497304829397772480110828545251591553740492638831671537053317414680578638904519572774185936626750274170747716170952315518379369119381384277864546755510174564471527318935456416169565854472339560235293753647188477558442248748115580951701909736856355320835444154932488102851767181014883136558132238529799761686340041036324466209711255620727859568152868436138232721671171471006177406698877387517296503554527604227092275285431344875114647704924738321674445997589920762910919990153317748142930560072092603327124512515641744820758529554989445446055656262084736111363916138275518346518901549292908915984118198106346434943771331587759299380903787594728343935496139146032271176861030804656716439950571092459729536557186773201925243274464735302150743181222398851136406411723707907694207237709668748624454061809282027411141132209063646951803388878776211360077371179318072437232387647822955491441867416315409962835892916809831222110045391561632583544312433506245451086609949911353118953124660754267327489636048671373133292253571467336017782465046739697694414182767492134606966502170487011903322179873307434931182078624601089505481164135839847454753798186358540509603270726891992676937609234655561687575886468890481119956161664488524928411889834363603291153506464340431920511572616680175310603607050157345973463060523676517485792072164584659591129754244775485445409310558178165920006651821299714718369275759510410026331953082422925384916730118426501259811298962645752212898146358470635152660162162265653118737223933567502931834225113557720643313642926697097953223088719058393337925117921232028204596282518191309193480469578819202821105424657028371113112685637475230825599487400851655293748980878160504837384350262853323109006658752755918253872791238044379240277150992375869123437147473322458479161501002241927358711407811156833379308839091902845075928857816523205835537616688192533587509879696592638476501218525653148284833747047616725998710254833932045534676157901575200011833898243440494405896550003158565767473600699378373097310123860715608785539561086588090828320616672520656048696482589504783906269815968680977356069484045259073973624022961652501296667514571578382012981192415386371923729924230561153042483992593292036820421836711298062017005413071164122889034839996754823431715115990437417058224776482977858742334432162645264948854542039593888530019663150252807072213249852773228069312308233195353517443942651578415761669095798172548012396299956785232400857595241152458408589722941842739791702414661161297981593280723193522160210132234345494144165605627756929325453556504511440944860768651297639107461896856127472924333979330015529630941959832594566950374098489361280828849355174511578642533491712209870687266756150144093436208214795495402906908992037585201708245243553371725403651270484684579638579027128395802506835606339760814331497509168679474042160351457236020815855723051783067363742720704496323613912641793396947578355687610014882348671707869598783671708484734841990974989110913030240973896897461193103758771602727320591382601458135856641189006841661388706934420429980025705363974467541520122627403646324411371966057984530217655072710336680966152267612475512251333720082152949429694280823778961802203218270800712083376176042548990937022345295203936400513740013518780378650325698849177974273689990022282387263953619330505262454462340805495393665437306712775397849594303008869455076673401459223771265675053117707134007958244893357244106335827621154844314922977038020561807135851332905082573249836316440266576424374712553332064757716008650754138626490528735999990957963630452721918808094555123625032827633524091425301975333029454266076676960172955204576405860708277647260929629888726403337937531546914944580000526516289408295190374654340998141612837776971460997228065200694982708706667456023177879201268693763719581122830311068648129651703007055639109085467064719883372530877860604270094759131355863209368399797557381528557575230590122166962442868680112675914711131235513681996410613637255172481117843678878169876272484357383537455650288879299009032248584106300665504980506299786351305515678166326097501719227894437499300272599435501601668143456178658232437121656002976498189530950723274264432520537634922085413072535008957203121735271538458170643973863099395998515716439259218516561207630901018561157919059602351354226640684361953858830756247255216058165546528334332429904314783859547237200050400028076620708052281587777728530152147520891975256654993779671781769875017927435242968666567423806957522094619370561584434441741005341989839488257002891685884708727578050712213779467006738822922147373374702741419012189158652412350143470724799849763414739110919011069312598830919396559754969964176823135222046933115154820721723896367988088828109509218067347340129349504258109240318023614908514862214851458588616235452469131831587981951313661519649515663865122045591513539303008049506044000507857388819275759518795455950947443765808050981544058130908243617816619497560917825328036931183978236104578973591103579327279465585692478879248525455980102712700596736476091110307604710352861865057051515604722546513437215318095356102524543773908452836480863640185309772022235568942236124371814023222153308324516252699990317903710218481541508818323136296415383636228978734156986230065619943158690460961067902319187020775703062122563007372098408268512953988616565300574887705919341474695499994016848809152744042815420231389361979768598523781858054211885810681526297917800694754292934951046166203614022471479013720522357759435934474581195579843060845282753386747966226642600085940390671798743896961563159174519408716565625214069602916880071755831710404136522479263435172389714647261510362247117243420764477184096630922225493197558627603957051207100506064662829779754210755787448756980823799359061785148428640426955050904751716467934881062764207615447284662678393143447190180978458081450326499739398695129188335599556970811558610331576252337243733626216321826335515026481434774415937944002692225099329035480344671695609285375341865778985573395185023269741625232693625930538324605495245657980318692970401274962083669490345082116172512404420431878187936876987629945942312767133434386955336185796129918697700248515441300858170961604778685872425548438772784580199089327071655061722997092669457469701047112264662012595575327155380249403079002494224889047280556195365080073498149986000288470699606834320095099895252650000668255917164215875653037537865475195356357437061744141143160554964331847304178910353167719151879129084763251075680748153745963182813259450816199883627873174374988088551486926023515724088866985875985528692857112170652541097368059233551987592164725542511816180059880239794681049347943842543568159413349872642525809225736947644757330086326991286210846566708206954072965885098432625418741098907540055705068800698489965766770438325886905774619114302448883137407573235699242198635776343725123759633707029845586523966711189751646113489765669492062672673274064550505805905891228474227132252262465681623729785858257626021946373180860008824987869199067799757344782621765194442533396364337765474044708760607367389993015967218482969889774581305481360090143121356108369444320074970042954822376881091703152372731235654593254407340279999995418709457151094399914516171179266109821246846299169905131556711423921212976961063595114933123356526951820048175692308448621446791428142027083159606306503366507301303249823406455356856411613622269395805623609532550036031975854166458454217142773078976188845566672330260713876738316236189531609661357455187555436456423067197433343453537811792062653674311345452558754000130979909701334167541515770215714195525030344562632095900478292051695800435475910657640797032882401949034260462022579745836167751888602590472801911300666419340532355272761621546904533702612634768732437869177169496782699260551759549132084676578864391451783394913855260689239413221689914885834842276699425695985973366299953861016706119493234717448566926628024544985520413115855822369511461483096011965236603425939443672282835840119629850953700391302383032805942778730463227924332119048759013766551729712569428160216110737839537112048402829018248451370241901879950864019320927910413187249652142112291392556308187328185165930965957031830367439350647815760378914806984435232315525183196070674527001982132782131965151564453213526540397868708613549865174660522062870693851494568597344926954897056973904896512882130123991118259491556269905909291496576203445322009010410052820547725646930439334851027685754962168505260384825936835856764287666738123491386700789751283979639942552667923471271456603934715471651660478872706963457804553626014834566184406371693054277080335713107570638652085277966081287198099345514757921188330814015299746847685004322103390065376456332354832012961967433299731205606231285033340718892681548832460015817966867490498383370669211408515581300959777143240660477234290242175044931483244144353707243663948875520368002161965662147675979664043676069220975066775131161997642094710487743174626590922287704799746990598256305312777638583559784890378031253773512752196642990468341833909954151890106174001314006873715669503010246077758251279048382217360980169707415081109760716889206963803652672440109392976965226097444434967675991862067868529237841455080883244407665024349431353863427949511365885028464494345059405509995061387629365878153174463808177183435103476439111791494234810393864320488919006600920935427284399498688440496677925189715620864178963565791358488654481127652886391446434916277649811574370110139645614218961482425481195994355156397032331318991529387788380594777964070503257468088975795258019453542457432690136944033714067617449643019069608201588252617969985527312438640884735003680962823417162530027169026898530001053602099279213685423071878621221487993986267148809228533729354627218954478047431793988764831725843923766659670432631158306357345805017954598911896355068940033634382933901743291508518678278707827618780241762125124164937238582322408781969643861816755214197608590344500779087248437497636489203174948961582702609038648766284565786566044110078236152624090124075905295078580492012223909193094227813967483791111004631834874773096822941885800693957534727389622589375569100480209585267068826497422585030396473381575251270711021378471492638203296643568085058715198883973472142978408459872034038132102488005835767392956822782154692498250596311164853528661942385498289992278978128769162956403988194361045189930894388766326016054548234587659648541929953044661032385048577753907581388406922129710398873910572125930127610904531423098218563420121347992747348481777306294543194332162903221245090301545521972895116825947251029564341156663199689637856387988331254098799650713664865768095952438332715485178096062193110173737954357064838982820598216959056194821491737293998321143574186842856884719703685040821454147501584246825822189347896462282445241709538343577291863064343701117826841169283348224996681373624118650956825493214626866466724682116495613210795730350006575851070089147347649772011736035481548872120540576913868369146427806488958010697628547365549549654096169742447961234593647187663241554173704814606905113257106328703026923567987118006506109215020715706864052277300327832828558474937863818844274484757808598827175990810984430869944931740838088199695174452242796382891161590305873517904263914751950119264315644300347415134061314416592942615827076526280535271597985331826443643372829636219757691401442659693322064397327016850688516300490947605968266025801759786293791368535572821894549150940111505575723678124963835324258211239508489659905964900142416826782197860985899414480620569955231683046848588383220378731584651534841402459167967278589866973554014261037056386055349064266228476218682590309102141446002559990030130440425749909156408165170065171966928554072827962256881661720876242662725066124391115138718158973877979728211243270428107343694403869409341851038704372031853876700044595804970740123206587112905201572218578452157640007833287956528610865355096000402988582408158543443293192183009707916686376134857274135781880344737824838575175800874671694143284251457390760438362492566240851929834679645995842883869981484882020042371587203927255101154626611448806744278745736983823436546263853413315855742483621035102846136492895866730732771134225374409963174360316734268613590247222413586976268035498704163610879866386824877547956880860873445807560500330561765111230530557364426610938795657636696566570427273494517639750957719245092266619225831930424217364791249217370217169995456604897093975138582316786391840143398376979569556217779012537900570528575514679407524700549111053133523245866805729301079772863671023205834134883130948503842913547746134433231770208806008428383539061223729513380668882296201085114031983218400854234251577114757683514613413430648538684365273444170051876833736145793972223168100867930391797345778242686542195315545307926191205304900565503228588896859639433977515785441097946955033796473944478191631367441122218046744881926220681292123384726804947724083230066132376607407709564750396519956131794066931968730840523229359871566097055846653420901037197549356340241340468442174007639973416534567721715203307134075738057579462042014510445666375493223927876968618312019702382183620962001132304484929296749392689035871238457764462628472050136260086306319276323333626017187897635543353353516104716149922226915886287234833145223684181412022694023730625686588825725263832523544888816486495116920491661437444474079052996931449091225181642966426611100954140935094109836904243909667325354095008661927962831744474029343961566161779477382855493961023288883350301986860873178581882567272316633894036381838954536191670809412058891093011173572671342732441046767324019840128523131751175757819710293061270037308131904712889630306170475587930429639250841459410610211658937729362744010213833902099264169378577852926675938631647440015484109530335422706916396812130142185813000598621533091542910196570133128047639168918943451999871717777952226052433525567545752355219836521650699566579662386799770086367217450635188131302963843385769055619323000115381608049069337917029614876923106979220671560679423937987489538307280344860954695955311152798479985986763757535599270024594691336679836427561829434111589380994132919242632268002599473366112100292641091361185753720549354297383217484207192855418463618831691659439960012821339567254853406057150866681079627310888424449944781746166347154857605917481182190853542674286579015699029964050923192619128181291363057494954927857993053419319017636549896249420379514337960499631467807413118684245864752905911027100777764720837462989149713598571775704768575324730846231712549383726853334955425510046465017071422288025202349076996473807608855226845784372860984878475125231520397094929070047862077693854075329704531248613363405302271346419685683154147611010949985090750469665749553539971210671494249951871678061409680034857292245051875296587234962079632992539207666865727821978764457381240151884410010883360977859472528582144891520420476949777574711772843297409596070948454296030367643359517321332702109878072443059735102609646845785081948295320570984106465119623554884775239560615577154256762552799184082891800559204189993211562174086183447793030329958862862590330735700630266100528744265259590886772568668177910051702822829788035016288958945177420962701245896375739336405906785393926599344118120141218788687101741412051569198343256497876428381299044477963017254336055126435487483447028685910073481455457299813942294798441866123001567354517460870031450327290334592721952537281973270557535009600453609440653528564715001130421481859605966412027546530448008707515588832682601989430808115799171818920293775176449168952832348706217266314899474174200788116418545699214542303003576453588187626965748629724224165874849050889584035405969563925401828344570477535542936936095952659941929335064959380277584989188645884380393906733019006595366566348547606233637385824482308606533678610766961858103977335284199161749776649933301561162560330264548294602562465657823094015009879575285556061025191386791781050316856395642252761403338180641257731490413485854034467735852798339518801794277082999117510501899165977566588356399466093204164695525864313458530097478686744908216437708319022096523556101858990299320526905429608004289429482541955304459626060506706700113073915481325245720695552989655292174477117990475729607617091424785409204605964871873962586482945036554768284256357238276719247512196986003053403777744709485167318574007620282573328080364089532251223419995665903135601841298543430952368509474158256249189093994547916573896984265702006665339341702211032398917217312975560748171290935194874005586965170021585272284752937484593337653175618522311282250873835594220327516475605689917050847434696219754306042203321015008488179985310745198518250364222908153371695012925931091460468560973029054330015292902032221677326976037494892576464954960166628850573857499831796499087813663666817501985629967251378231311304379822537753208749683096503164057456667046678677395519172758051946408067392632127768219998898122926811526176921548463063082264505374276327819135120946805272608286600876973596515416427827765834735556014021182773463350998232107702091181081435165256051503371011806792203011285465251574329061973621996457798446264777251343205162413473097317889195036961447148750171624603606251204561785695560133959308890899452259428544079808200246383755001592284594971309074468409071555749043442789409428500616323200543011571940724700979009415041564788760023770885673706231177393349765264492651533797487005960089465522615687992836510471166485190846330199072392564983852285485932701531624887880700113429654391149939419467188232309577859261941648255321174653185451089057140684320639317038651685330711242280557309942599653148980206051438813769250153256603378835218554198498450625896456152793881590002821218511297926970379842017513398446219327640925345249192582619477962833465952836767066962254158889453585817836457613242391826315234934521554645888904410942233302630905471902289762416949369795370984029496454720153593072832282839523970667292056248428264257996287237382667649059280955002765736778835756874991727203008990974089011506744216729885121016364443289471385040845824579386904695240109434857299422789262147154762073960125023113640343794593455152429897665207758083648597834185922667918421402358655894064147989678715357619583600098182781846066622055203941818520531986926219227815540721595232298409581380909626658507609059764657497293051677992264261815051071641537978287410073141166892271592352634745456572683816792752905577642720908980734452955458106482018657014024259059072813077792166253380159967468058710522825261954103724060418435095548116427382075076510031812762836961603248062771534044870744651773413754729189232937821084991886973046972814396661130202701509870086868636761869625291075623532915730129393949134359677348412106231684872956067204913506945307898599928631599872798876333602278364132979159373382746439022927932290911868722345654836888135836682299580316812958806388625527333642934700515413411557249394871620588352100391861846291453982189350449951077667129321378204653281523442782056242463252496523914295125732260688585509876393246844618172933100466987072782902288112329953640572825799226855081564598980564156539776387114165802108581879584974513244826245684012751133943776086061837931915098637433005094773929058221462191820486643781642489362894133098744996512730904346322211270412156492412318432174370797702733031487500529438333676172178011928583016589646116280467558542010004384395060030847714684192145540604889461078793018516947126761678937979790491577176052660897640676531761750194246006362185019344046841306022247686507378634906182888468969886939319941790781341987591872649734007023198366948374363188436571567065172207044392735993099477392417841143710242147430175914516606175977863765197262945207220261979826255380230167097630857746194275387682419687433706185050903685747713988307079999437333467975194600476620279630790737485318572711050293732019959715534357287973986110355496758253981630097924949099539610748534102008043823372382243282433929438137150856913552860684827461789786651596275092516089865852581924496774749752339579636495742600393456833368907918352742569906544117093440304992247665628347214633953433814206441660217178331499983343204670776028298782010091424749089650285312573919871818143370854797655391974582721597947027994298263224844628581794972390936871965665470208840565220577854372678403135904703255458219315863414826212208531931880111486037445447946564464280319574445971452555666240936445085994789640535902124049690962311599741298579485953897822930160005939351545153417445541052521109382610377780447608726343238573861208621501925228127874055454568790871183975272250231081234705072835326778443128558199839036213012158586720022377267032395726309918899821727933887682447384879246005487576430476688603826662242586923606162880597283882876083231806707092297786524288068821445523027331711195434445755959786007187738149545465750525716550266156381997323691330215895101353127064534964826234488597788716907173549654677678658538271597534986311756098412079001375920703775164815976536414385393678649671092418440537624732637563270750425214454390573229053890844889694661667713459331302106255750577150130919511852433927813788351028876419202750475513974179319541136540247044658780228513482353951666860034445985657671508479240065166120404618560618992569282130279006471121036236237698699943868671551486014122430844079724089341618673772778400123268823275387739800978650501378716205900209672545621586979231373687675109192705031335070901880393487849825309562567717082979029881433377969387658642759027242916902521201856512312342495464259612906488959994910870607507945248435843775363194578848552733789514461455804012506507500515518911159710529720870466324052810897688474121794232246957468581435015254645132252272424438380638808270168281307112222062177920968162148909392412463910374221305156658594896292527332289150839997631328286512523803338602286655460108882387013978839348142956090656415699003735008885995357180976409853996742876824434329060059785986299214455594847088989368846144776649477364224060658474079020640990837913697198210030266324102349047819895056604549878324523248787009822157039117067874203415971500954849781336461101803866307468675457509234943817848245095091958984022259357815047752731663913286349321701090911149275377641312704696585029597937982376593410640723859149185940331984556594833459628960022652275406427533464074579060788275120144259795054177724854755268602686692394984696818547519913408147493698853994586407817598774109012962060712481117151141924586540640124566857058952716661548691683687764475243523279402575998584252924080236248709775137728149910249260660652047970630831002595515727440372841880560174433766861818708301299158691063111789445776439754864766602719714571792033249671367257355334060801479617094024026771425976957354959262501577453645927648282036389971589496801277842915311352339543359927179242980214774841499743806655394769900704791794908964691088446553041957380200886837375434864378891902875245491833228947451554214226357355867149686983078577616808089738651064346304432324884452339345756145891614822071198861173772550503120057198620248267253555409666318764562014534444086738935251805243608206215985567794762162734901557439502556217696912333987449011851498158952370072097624371819748821267557918789898345112745117088305623663930553066933826994199618329746168670514530825629387082382765811680849000251022973424461139306741975148489771522207266037402029300389314536464539869825663688198593370885040616469603784465428305917697130294940812193344736591641463119357480255028060375534308557805451076925212350056897864110364518474439201891622181829236161871829724226361301696849119879305009580295261853187320167955878573879633159368715669850636497600350726091493120731258539099613090715189644881835773543019259798157499553943576977959116795913041625751912716416004490775531753789745136282791274410987510523604019381061468289257722325471696176146218409575451971095691248009202353447091876345422587489089025430905650843754238011263823581678843685986332214455772114306039230592514019994414973773817598508150785057402069227746652821356801286421899806530518593384444560485640631605156047418486742045387204474957997842504507804874776144356382440859560730820996882139727480486626212309424199771340978817231153764912709915545876272449058455566765167963299113979741579127028271960542352283248266607241210478998413436465224363367846655249247474872298901582714606036803161101359180805052834622050142450496019146787353852434615101531724164095180754883951059962267770201540987175160271379116799514913859292859228474999453813940717173426507818177622409983471978396111128178006747424142675103584521216732761361799745557974909081842067254537027747222036671944326414058966726031498418970500405997938188530053427612913907195695696672713521297023077663593070151758121835591809802839137636764612341796294717707094395955848316330134547736534381676955639012868762300741509911687409175255796569584774238078368108933014656562268634494905998029925434901660065482010716054297387981721097874767126515474559654559894786426155813706427895265453443124509628075269696290629004848012447586621629550700029658094606179459156787178079771066046093236133617910920965817096438943854636966439435555822061221683625613436631367707766056584286839771864964152266831437832899502482633808583180352377704807827886898771551561916183127095976223254973686180729266251467168895453980643687597191678487498880729281431048935981676540652055025637329477716972029296989919947414965010430222242202232292047650413484773983403896383623183209842577723051902258274001064989607378135619510212156129542514494447770572484958964313996446718772146530939958499849840444743228786008865593791015642490287980044642453312578169049200528481031558572740712041027208719661553840866877626531926867215497835249767316880375071452951279410010698005535928597824986094019656938683796784790622461710044608429440377145621505689508806818579665076593133500059515092615845708038461293068723737079172699830158275970885195414996552389379836495481873500429898322460847319401018110026535192994507510631115277774355327347481727123390654971777129176086398924073707503947747479074075820953941313456735601576712703903467004256694740923219861896069853639346572880496063731743200669095915209777139512778200885471231426553807254504079035012857735935790403672529318478800786831596284655092203756579334097284238789472485606699005443232144823931837719450610034541614000978977002352323022726453121127682335399500305967453260250456540692221722027949653970550775374734788352868713782302643548141328132218231863552569577440742700543587611492602253793448107319990575141693249146102756633610387416900983275188279984701765435596543433368668343537945694182251299782055613992194922804396211116874817124806532467064938159511751144690629360540314757581141643522450291824581770759826686415852659935302449698118566946332152036294501463643931138896983684021292639742645412202402251673162768510243030985129080295310156254658761903850018370575420140013568369024452160475913126848072333911469267414553091279791902764237318100910914951704192420916241756772671900708058710308249758059942137089614598462423720000491745128798604635848481918067703967190313459259395631346123551917060791605690083479902835212286577777561162434825669894619785174964083544077239366326395613380420381012689672177807038283831592946185409902890615351902942341310939686018922567076736687786715533675812252577682221661720066036140612314891425131643592693681914399048022349544808853021672723011334094504832481252535603847505627804947194288953379019530160130487394398858997028131479393284458378249380323385106740889324426622828746929555112400686365488593884483099493759720513373513521756470062816937727685189340071074612911220899753669967510734645307001901973612366222912554231345567940610368640113080177466827498280871162406294152149838856529530073619823298255476808554105398704637341124348980742810792517421320387593098136739527683573713735938044216620685533420960303440908689134452656951901365935985713514292360780715510354116128136200289514938150453674940956057160368919349829975015653077639633089620087456178651156951038050140151975061201706740977998067106986647821828190911828476820238210467005352149140437567482818457222947632936188159500517648293109907065542330865313832911175392365931070337532931545795561778572662027434231276941877627685083381766465960603554604140098110743701974076527415159834947867428486287913586398207916851901257754247747165297296816507003786606829083336312565902758201217680613935764296388275841915436108739724912832356545134547320943248459300550832597436122088287309882843724680749783285675906330129726654954166237169518252345898354471002370460098453598562856819230396588900067855341330590937491910188574315639868605004072204303793649630830697105241200414871321929639703742403465140430757827716269387665920726964701387227536132160164213396629300269469999600186254686891330257861889524575338417872606222281243403700592198020277179609231735581198437384098405263175728580446559270193405108664459026931267023425589424425450119969308088746780377579853433709539650183963187937303661943436562272597079242712336973257716407394981671882967227924163619888125222037854361155725272695445605240373664941876367172978564269409231582695838753111085527538877135056944085457401839527944184099945843645200802791658595773260126834090163358488788677634605271031931279713889106826587382719201785653014004240839006104327943767268407048880403021331754241315939800416691184908159314492398953281066344078834309065250417873937943356011341217125889240017566842837984128499179893578475207300933968179188690600599879424287907650505878213305766524061550848164997672134808534123665364052090759422191297907692539650687600934390488515572556610885750824724526227877074736433695325329915954018265254915401070946761011020184566411871280723541011565331331234365879592112608770229920771883318809739397335877008949245523780942029396749078175749861576797420484286925101700518148201623333711960145334467654667368850340644773002591749272672889617999350001113834770479009728919637414384121441017295643305915314308118573439126408319473494743145311626860998643934774645502220723861906875767599581980769788649304149476483355891351751714922626498044423267956536822223925498491389134178088841225832498197635154846376176861882712127256667777893889515141723090538226702999836792005748434728152026585980146096053330151839671696668553939228114219272830024394087019034729136943708913110941959599316064177646284544906856756266880066972150935238743485645866193487474853552488507352939539358325428197422408378326510884157946074700830086600112423307863222101217171124947709083656664346589238591150572568067707381875190035815657382646091413046951640933097957519920170218131628702991383259134732001558643982792013681031812657837748795059722336947628206988110443442055630890368140463959596344529104643411649848241452308150362761980607919558857627048248484660024936884833105680736045081090825935009320298741157267617009467067262782041022168715603228960958649337006020761984087638330795461351526157535127485598019541568232389253578435127240251776635152682466849331567543053201407102240972163969388180832258586635442662491784968811623565650215057396625032038641489671066286171293761035610975054259389077767483762659949060872270661335852810662101592649672376953671571854845290217406161836182541808721413809194392279312444123920862736769582642943068257530485896051615838324200411156413256597638567721532408973835537309954068070204246303779914566747642859973900292644484842335095056794983567094662052655711421902289805708568109631454795672267444377004951369387564328386628684130816848055047934880032164057766911785593412218319622653598589582840257853537499063577041921133730607975886489663855090751414897952736103872257077346712438460614936295705756796888881695291303698665176986740117881613555506056083782568122373791933475932581899205846839330843262942783348180500446002562824223613853105356110662163054014130838372289259131937524228577596046715276674063117355440918799344022989608553130893142825348570756487887821085952440229439830922293851540704024589135400180461924090799790455603622579642457516820563296530429500021247652115826131751610127976974432929561975112637266571288699998700528052125203909793833714159244849780260308913563535766903721712421115983598784365312563791914956758258510774813607596522592952283977889918264003280305736275445207625817161445129089639826382845948529159712396542195303225828723669369661591966623596010365228134859326195979454343892919145951767667712528585051765900589860895747194302500517063162057810793698739824698157414559731184609170192959079774124931164453721326381770137558431065197830680359482216750118164636483643451966476438402990807885541371571927635514882043061382414636361523272057572585096036416408014754619817061044914342395370390560338117747453616518086102660907552785045132473132733122363024038092682677215234635570017550864043052327785951005345628308039365136406025795086029696910616802048984025782173318245973719578812577139800558209675094445587472728045921925453209648075553915930626302916936129720649173103479029514014484794709975101777474088609088749460612590988844811109638594249849896989031756857053566175763545071388610251977516945824973194716862271580980717081975164419960894182970949554080053644119655710403388959162443766614950372133055616767072717202797557365835508273206000863750402446838052420615162520618601899376538468667683811703645451633722890211153903177589954114214073090019853787050255857252537961584447168545424844926183914510477087251666081103805324667305736937981194223758022463363119145245444418092024880660142339952095631132078370883352963583379624160749973802151860678974572179936683185905720852728963348461479465448891972996811781786903883308517064872857722634829316212449573760330098885883748429054376576196278165072649487056737107164312964901501123553202217767492151489956965662124180849386522879116431817057215596284474827208845385365968569676861457651809752854925929557506602594837109539552788103535040189561605428498901195312716153795980300287051998405324489086443478201455903969872598239246998117983705091611500496488810210713554865553313964826146266691333542444631491252557909011505682604311826847529438716305024461632440304934580057139128314936791664980377702535127237610686679422673417682399838655227287633667814365401020570354524737490216381431901898372479869006608762234314558574176727957193961265093671333207403169615062860260119731156883897431587932012626437605324846024642608632273091600184013561194405591123727672811874245630035198678218094589369573120240846287233668954582346060054063472153333573161178553429573785088253266394514763069619414768179978873114332123538838883779577437523968818770057220731869608670904970030643587578996038283111447486155800087617111756718106695865100457063394182826529973336022667453219024948505743555480984171527135541727821244253847979366619606127714225103319300305095535456317213323410985756770939412492855207085248174413094085684732921278586244893044832831463067810694075413041593428625282596810575873710858465614560440911939998657122724281189003143874255576997519568539273815970890463439087943679560199537711583456003234827991268214492971504886524715331054344907151747656909362266114455345978160821180694519778859659055289601708403472653052715672268651421324316093122264827892115881965074577703478403901063553738616857884871141741859964327234510791826861277464934415139428361142697479811259027289708793873374244800355213281879605525262159020677863160146303722752199918957069109015623793276068448782519423942647438822105319727124609863263420082826785450262304273202820913633017172666633066581183084231635792277717606029641318940467979186026052460658244337273994636500501367225502611894602512652476809718992304815848842048708406071940612362950569919134896362160905768117863716506129924644698723717915629575360899116021409430222959749998658976325608167438880322343196616792352507480108889400996016169483697390217206063883355465772242649707414595681733678437101458537355094687121310387555836440581959919565516850194974842997825466134829675920836994680639525953942016011095523986099711202589110752386071386949465771164855686733595826655042421069593041529265859116939620363804281152592721633533192761165716526688305147921879643493378613640845724149381032511776820009204433119010777928562663316469524403681474232532464234932856938548436924737564233306839914783748584512968104589330714916067486048571195682409286478475682962789561591479670364284981141886572458920022608369607024471705513853851488519814899288862669559832823845126521703805950904506961787663486847702011371929549090221534137071418296336868434379145573013143621221163284539778429028792104799661908059114538351745283218709579348189074060623652765505967534255010936514976456446272573750524124179101054076923560899544409134764448026462747906861068491880475864875596613031583804982041419401766016659993635246413010349278736011201008230973039447163759435793366530790042290105098421983133274138621749934433115345308960879970268157411420897657120924775735855509099684665709994296792691860163767315907703538816616084066804482545786915635453409160924694139576915480238442903889028090987364117435394602906643733480705116883265669342891634459542473681623677167174139039695835524632028727607343205675544782375620420750212289130833436110717637752636714481469284205059396977458357666077067332327430300724931770860651293280814834089172920697399072541466309700253286488583968734136984797000864634298733995836459131390278762819476110114688510987642011993230762016880802038463769796377644643016111384355797168644508136500901447521748811704824256034640760519355457863801317047497185818539287078175936955236982809053959776047842171258627491629570928407291256508100030930602311852304276975298368406296738394349434190497579673970889076526379992850841058761416417347012761585082418835706984870565368606201704979623245129875131132709048829693421775065368060395596988517199287050978186498432885489918779387546324969170749249691101115065914307850152196639721852897453099151185020814048320123876140758044492956844627499464716741221226335336909112131242980761540410556056214167072524439902913714540195703934169577505249901249970308964914051948436283487420671266241471405387434576937532674602208538050937612519615008005072010016237121449601309261440911085101951163651312058380208909847608950842148996970069650833840982785805653808743778908943231987325064557737215133062920638808029715968897059856335184358814738999709522372087776893046403698603294230218754641020374607240332614268790627511276328493887406166408493417297202882772846442308691911090849403112419312937030133400266178388615305593037416050531111161600580708039121757552193326455471701237186124427388094341457116862327328120183498715597935202922708506708325465638323074105820288990718956156554750288383501560106548216693981353206951075230805197581583388914952402596997986414007243480980580156579816104693649827800794698739823415987324685787232568706287603648301863166680656098119573372802214328832319898878696073997426311417111852512686563126867141850826678692972092881127789115156142096026703454539040963452461273760951292157235867176295276009264232318854104239370756701398153253298402588818321699316541336319652565418877920051577034192380739606512417923127400337921061946067442244879445497847405507907643323036299919450558151412156711028856069185181867585576351600071569648337446096688845578567233510855233611772275980243128352604491212761705674132145592651181561254161488051244598643337233129948206182668230663514334310161070569266504358662263748767589215678896106406440419286251355162859831483650349835322879132882612055220515761900339974476433544392145940177137143867999441602716121739427044360798704975586837420325724531786755901584740232703698646879377564354029942514521422794599908600641683097525091246338059669086710239089823041319238140071693715576213789848640369582616302147981033025190164731013937705319983036520722281572148814788287141360225155379925336826951219494296775662018925683252963976614371083754920767574589259199370893481841014890458237115175612023385211461575193714525404134960153345016163214563982328680699206863322020399170148127382990542161710916695289465316051486092057231064534094331698674742827251507366617928113598994933783554533059859353212499310361635190936605714027288239459952912526620398962771350365979870383504952840374581054291401329135727804177701684636808371302867570968744428384011617671523606976761853015415931593233770060023761655592223098262208149966858103159504167970709289656697218141147395662461497819589777891981754322481441084918453834807022295938931080093870931099474178031736940194026391380798406482744787749234820304446742988234911446672325456768561228320909402216714125258658530215393993025984039780322499099811652693248407461816465455232818998748458111695883419342714384838599874135755516121187993287436329987102352713561779002483085642299879264301201183120650219670909340091342742430983920262798528605037218455019814488136701462031225372805936113509200289884303534338697773735694344135525807254143580424254584714141455910944771664681620227518375844150421933133232115050274063160337156586004097423458608852044696430573984682302113019486817612632007217990704401641604066808884222500870254032369356418209552351913581077152856067021874227488225009121287936203505478599283593722998001769470269938050125274092339069112183552767541594238409218258548528578886578849419439684475707103057052536980183653425199673696550841938526710256761247453615664379355803258965525499790134097824455135238518930377323825767166201781215023476445555414587573242825193409289611277227362729079894167060046232224513988438627131907390055258977723847547906168636042336291649951877188742225669415226255971227276500482200052731724958100340011121973801370169457532515266187810565205668243506966653244733329385246012121104943809209171127826123971116808610315363284593758771510522199539898325602281839043124333656698227986132323194554282923060367364813741778043590020270332994139529818318301454636203943754375941066008121534208194438486703186675067193837096484942544110767536358776382102245518429630844638676640326233571584071948961018318491679586066477990434282481275687967950382345438314631069737666664557763055029013154363973174206453040326512089816054250574389152343988744657583518834146179679503685752679317055699907311189552452867005247926953908978777496475296466188933684087162013580368547998308443121977900274783011162471298319317923118523676816917474521435022376354671546294644822676084397277511454209457079856092959355607379961111955645767819467329313312679190001732621216717764446004055241505414593136029251281796052249203280878785010535559304290077927530759281252634131669470144671973409924940080149358479597008905223676386523246605414630207536470811863775915410747351761388035777276433903870233054967257610270032464364876972526339372847284111680558167172988655872090182120821402576764082518027903549778606114630691138077560500608431222487606532111975570149222381805060697821490830599596897907910890719062135076658129447960156434805905987413065786749222817255111634233003264954200336309477704929477106447468908589717610189063940499034480248416639701383854054059319367868418634122391837295091419738551126637132699761259896878724467645830931021946237052671315835820495679301123679487244182584447691499443138260821035711753687012021407845139904486221363249569127226088026181284658570010936690590091757181340004564960345159867300242254554924257400444522469340338987301564636850688356758830079399340129882257256828823571355511650285043296758610742922636460407090193513333553829119843029996855825827331637029244828936906052910146231184011493260638136042251780966516997498406317421393031577078092022922755062244533700090257439768357091898697407162715505483235601855031759855471121157599350381092380232948682567982446961542450263413003771611744283299928872620624904098930109058980567780938297160025340490499388515773105164791756994437620265603673339817021065733948989068271272388868560244883482294016182930218563547354946640271621172589294837704539882083275622225432970539095915681968742743615929829368315477197171387875935214605030347356312323300929619478310574166582560981951011624204456963155248609157815874609122580370218202446049767937919159264436239251797654947473297814568327684725664733853776177219269165137528833884450396803426358342701205183637109906666520890927855761098997116603519186654461894622371876649972651001687690176107526185728699093754068120137310673372082445439787212720335118784051029971221819465949047364757349396022136709126148512496721519967606928689531493164865877452998313747942932122618219760885670921551486430634863451776634112429744309327683111182284357006385906906687095896643206295777194403733450886135235067924447782296447657937699452042233304019331783507118918129534971680724233163295953426067904541839113137344498021045537659998775770004137693818296954733416005574650025511844882808490644455957624222493642300125756389649396953327924538008784255420059434000362593975492317809375197376736121264984830350923627360256487623598518350347407652211759488724684917818826310855322030094778714283312550912473669214323697957845556096770472391039369324977686243304198298575559493412318525559794578529598818001711578535679054249934903961069666632174973923648600489438055371129502600657299490779861186406257375745851781313190021724252467866131200043980990187676389000910290834104281858765471878091320023690314260802284550435681691460853630444068260839354738110208329889659349219520069241544443656694398374289394632272693511216487077817438973159789040106145311765453326799345712675358905927437785838093678589299180677692584712853846166502430108839174394110915394565752434204932967546107804429559770762263402276309422985850771269123343638571285859181060638447083328163695857394777890308896570506279954125391018584331866999105671886238703734229530540596081450345370827442669193895965045582753678469458978601712297032649083854220696835420264124811537043224900946976803346286798519266678974271755252570872879244823822654388698490610856609528653437220591620880131650751368907521327329763256292689064609923928457297845006993747545617923952814441700837483602484109341115372610120146108511379749625051184950136648594296120154894532716552797958637698185077845026318314620417797575928834477229665028685424949446203550336812674865390785171031689321945801450296645041853586827581248532400686020270077605238316094181280628321469661366552649667997584390371607280931235272709075860847342087416059175977234430122436032700548103514910202953958259456831544740285060657729552407827668422987483452586622800847382750450421503961124917378741080417256435135027689358693461553428413919022886323519737016575364074961318798177864003741192905173691083015093482951459354785120728629323502503671014294186602103957171191606393990468587160592702017411756175247132578559441335309054990502645626222923229679674786162349843457218722759370772168052837453769828479811464693866305465047629185215496289771418828456579308646252968256811008264785148512665964764100583017377213294113745510610393212920661300839778103177938553969235143141130627763524757577806232905215384973066443912297741805681616773945508449025089396994991357925961190737944400212269150714952531863119267728536927475886389565174385441649841598607015971755026064680530131698596925826768865482550329742409672741727353695146754154946062769230231624959151689729976771978022184000427968932277588627102137135614988960541532983506959376899395283423792502258369421428525042871617081590810445365784841616221584517088261503434022184412707076054362566322146121256797018244398506157168336179328844660255249984446654476121344657807622325146160969603641036392097228764558631440285839550909340447730096490919077566220708913481043442286947651028578417024148308824727364372059554040368443016971267151922371174246784968774825508894850104015007364826611685580844179836090229467386605073376258432787969737225385381456841057519011971154730094161860561346690645981167414792666135036237536235417571285009054473704952421925607693764881939782446362605270629014762923250660565243188840679377481586650120971192672241156176325726241060913510277597790521555089753918021110444759297877619384491315311350266476490432183139170391839095027414950855213939534580182530255970074751144771317596188187134710956887582495719372892193350730499959606010642929878921618147723768909248407157291187538846728295032556753015613864755790333928436738578708806004905873139021765579521322173009248382628209481192917724643088785434966560546149439236172578969946832599122059726043656408579362168445719243003986160903083247596105490575304802676296431980527011528919409819732439749824770534165482757209243828894022473823650040864400074525710764375085375484856937724103933205087696581087222238595281993104900689581971606485427743934778003656085122224706524640890422745974299481125893645846935176675217537459346269185145693710240087756117460835864039523694715354379538807308117844647781419560260886858176540241881701654641808876663424027522702731191510635366814131038682038529285355357703724781742645386344403461309755146196871967096025432800485177144009880822495049430737867026566675987616951803843390264759368725439291619370641397792657309922455716209943113349748657803424235407559827956761412175558456221329464437511236587215550751572240091906571017079262422092184304635434862953054858115322854493339963102075645143974305185982643192546782361780941081768276330731117697065423007599761519313189454415057700736384898090090337541644120499154217601653051278578900674750217064548038284311901084096090050124539765011806752606708828514975059336047762046378474324843989638926793360882984143510295522640122015619286241764375074088291197177024750393663793858274783720656988316265027238439919139038076391535360673870345670236179069969028183759844117181158170120965935268039466057383521643521345965426739979382461054750823407762901350162142028434333096068141976376805009343140791131071063218088728786324075216414162198882639047493479302341078386867444477663980537106053296972213399653159899304922561783580892730979994833833841271242965368024500719317260063803566880137945865906709368336400312329415166826221287468058175763271980736911537965247440005763142920879341099455778021241013125637053419449956012853979363246614821106310137088402102009971073265155981140227796232113660199604772606816400236943587210728667926161355124057720131455970931837403995420542782655532457718794855525780003215364957064038552840938364777514346783663320706858486106148859784186220452805125443784820258606017875940867900847011480018200111152058455962463945991475959732751168768788855770267559290534851321370707217532369312474641319900680691651815439083894968625245886265574945294142148561809288797508982317620545720592012708466030089413396826630331625586960311948134273619500311447293353902438872934103075379182715794519651800439220474682609340572694860594029665837637096193689379169962612963838191955032425617345134461472543024957709584591547882914008683331641748839167060134259240597143052355463117004666668840536540316855548025577613383068043721905409205374318949768740976655019084902642123924466350972168310093009610173590671556110312266369132520109840903745515768245574545813969612084295131415156043441013663999455307757120196341777575335413248772348336430673087789359424460489779314100817824003299996592883639737743512710841804547757816257038128351165595417685654420222129431130162269931632837119952376470891785809802898994127217336962933266922816021291189757041012892077460442745902028196695495532183905423841892523606177915757678846926926556899315513577665234668606853173869582274337542893580583173914176803979914760539469153831913413951411015257597591899628278294180351706962409004370428275580722597627937860582213399689268313638450971785713867598883325268636657585785282934538555208522582491616236748048818481678034508964279572185909338403011095006995789786805750571610151267435026251772915479764386016800306112037127863636441961277957991343111253484352065315536085386535293726077963215098209615463173356812981687948557366760184030445620187346327863282944103664718926215666590682706110831674074950740505961841803544623533410637403352625705017515550632285870613605656306871630691893883813349889320199003798973515193618845044321053208783701364174722665224378255227313705409236109931766514397416906568998162096241420050927147399613904327410124007363247739430038774548243453615185859937926093883341955341506010161439438498615099509750744895738931518923323149055375349769080697733414656805211743472127314399783978652638389047264688969784213279595328411657887403431430536831110853466852560518055885228368409732768813240417565653510343228791909839148457155827200438053870367606275698914331647837099232752295337376045320841222378294797924506191169375648512462883392749141601331133322241063485129429479384081512515751903663607232068402883384263624060202744463981516882345808834033410276329706334182270365095056250991835238893382164426258945393594910583964074128438668805846313599856126145022523141827090477228106120484992077267390514270877289315010855234214371620081685550370067981509461070889587868039333905430994453202042102382212302124334191794143460407397867928927790522542678772786749975222730815203779291452968375626509198317342308688008559368290954969128014744586669162021363034855881103147369582946790471166750950389309199863655390372053400089647622470157057502735303835590325816042139379475034077332345092115168042809869479462850429684327254222151764088542137838560244448599372473643234708974358798973246957101784145307941241009903804204888386111504266181515028783358256483699866846055540693124135817531414964432188817179212176205840041962920833330713213110510443591995849131100319899533541033477775774251653417448563219026702268152882860875293499663526636196942559640233724347942215026168853134975603735777123955273340392469811324823551806328829666423160013829673980731934237347144157720354352530319081816978962187436500117020580245669422599805185377534501638341204726119860540932669805249680454404030443873960521656763999366105169999517766251163087815779875055329521027230570891463487900473797436957798609026175237451960706725193762625447512821941659763452154438401721354813961798244785210073211582982202434194885689505907566266958674554068190054175064074111273833213308766087234886020610926277562719881570819723928170114711940689606049727268896158566708397383367950076813646688665513433359052002053221510136166463149694163212393959611086363438228347005366637423083070215302427567568452663047894274008635186465723632691894131302760445956400533550609340929815994216356775562307086073562854766084436428776361574130047897915851392781131750821651790240799594001605965582266619283443048103703291925296227058491177037219211519856138159701175578092136986765953622862035558793360661612181793057691526864567224939227376152844485881008593026604709854615954246784815977226328740709437564953977602753197284362745850981307708129340477057646001131326822684833823236717746096342819046781061033510195214868640339615673745747791935661876683400147494661223246789960807915605544074851505979829344711155735809990253574397373648871904064317502715565667529227768128677446417764506736006382426912329613829272283353816525498978419506473624656961427256004994896638596842202236721362188804930745648754366591126852626658800223741016665528222406605757063121895081497339585947154545649257310065796218601812502935277016165634595110925950439444489451023520406416660804705114415501318567460711541804504893291215538674607579016400100180432299387445096934860701384154620089887509530383480384356843091327217285780313083638595675335672093706775656212140218761262776138692949551385534276441610643939766700191826789716874508829784744743777714566449848058718369934805436853453257807770999325052478420492636216358916184904427147795248704503518702645098990533329268849176073557697822965301169304363750127129546919223591059398895024352133093874580346606131670350596074613873968694166016704015581551564885065095425214985136631386476388149715982359653226164332746613366195117619358676146218646934110988656783722828472711792182513623053154494759938417762067746937439974328720573029105919010650408038388802103135935802182453215705661821117505245675924381415025568103397409641809004097488761486183683445641358222015027300084630123209715229592341971986342315393629581558714372060992779891142073313732672310368659366446590707452166769786071334839724738772906578435731415061420539079347142714232337319195267351015505764528912454256156229760799097343121773261948280150655634064440146399632759249391386938249664637081810894031999420144630904463606835310342882011079432407884638353387072745452623196900532600361671222300330122912103346692756644170734252128308558046857474423273057888429488926551468956343452683824495257494796250773266333397075876776802443593684449138163627671531125665078679745421893963445043926810639215276686686904978383974071458631382966500797936740880205589860699138112808319413452058746539766148501847649887676552160798747854928497911584236779842176522688524658209704731303974417274680248863113109772486690864261314161270770515803163152570344112975817172492106811681501462744962829323211179935617209738420287313774589316246245020695463212834474073690286232070350115469087146883462725395683051165599879249624767782522622427769847274654713077240550081941162235167072867983500784037173662926220610164223309954048970836244693028632148812755893251573250378546210816451760690026091899606256679416363996484413126180224021595429253152491431166482966338509361769489757586610272730715738952797716697698124368174404986994238876657549103085832663718154422069521988957130565161353510650610878593454351343574906490134619948696583379657386513026430043314466648145764885849504026822285987036608851960140657096822129828011898586462029613856342071713949974544027602413183024779611951970178097240130159966935899192985030114336694393757060898613355282286066344995459806588564860382798278359586900442635368204457865474236514126231560688928313722550905327991554232755481595586979864634916548083080146495820667015319677241497119089690920852980667331355175604533990734638541377977322783850227133800724809226868704778819724637752829218138662662247569124442895414670409622872663737597266421042575515440228899638494942193908726209718519118748906418476242307840815197658923842644901846932870163674932772323113107947258336685534457088307290465191716090618759161966492741398826803280185129498673170756918087439310032253066002267853951988467048752122359334062121255975483094134671367359736098012823794666785422584947321858155720788307724624689659272114953471529133395148866634189784390209414144567909243033442215917000197449926916581277438484526482794143258748595908358977247539630932334061255495398530615941165912951384325434589661526017710853453680087707647100805360111269605110290032720106313584660606232562968256085012213436200496515061974127700991380710158924795456572862583452399412538089715054970130996096178668804105344571165955976898315134390316276852197708660214535414477651661129119229898909364489721403880972946452750991306151414800587935527443731327908593044951032582767607048560258633659845586662806552307417172839867286428045527683378014321162852908541090456252957432520872462591281052530444755527825520069355183574541193024944609581762591665670732212267470630591188766168860617155563276946035955879393441508590722377583352349257908486321311493622880763888240257943935276927255426355196389917777666984347746275375272047866713886438957384921011368224669680023999012714035214061177258680586161141639560842985151675563944822480987268725238133124651505725564304757240737429584872551322959785710870078881464891223164349313216359427211386400732701447211260262585857174470464110657976957559058085642212776397609813601811399244023542603671158743477092379510109792826597531833650193451861606525399640942602311788250272036807914656765755398358871409637344095077736236273246224238604402120299289982049806703136141915497674816672261147438992975768986906020001767828790967776727859263606696413691972862909285225478164724213508672204060540224547054384616340142891904657858146992234655791989585076196957195969866483894025784051969844407221926167462249769550633264063387569452507106659781797426757134776666532004971525985794615804111472548147512415755112209766159538535869619315126255680965758244583236776206492737844171285913602469580349339143041821934934959532202949719470326614408155822972931321062517961432189124283339089042614840253185069122579260590434069409702374315147480334926177908734656017908693904191436297908532259499297758838118907783531030183162234372910729810535714558289805294850736806059934225419746654070173298167350973893036863819431798384352188788422339770024542954114756277500836613796703452739560038571648110433212561192938243480119640591492783854269598229551293412858799539590034251867924916549456690064517212338553189423791770934728698845114714639113067759573442824999750378604508514748327900670963894073036972770471118331490593714999232469594866005409438785914983153657318340836879914821970845008959282036502228885563137833542113322098710416785192914719970800780543034567571906963892308524719784889532839873600195223739634800708597002117378516517424163131558869366763795685024694976383269986449225395877412082786468631907798601734193238542504788922248511527769528319635709209750027736605503449778757591009812824101829279944738709197679373722493273013379106555505851042796381031912305790957377026235602047334895317701819550888559146319853339933320939702117927586408197719325837045043773614468222596014656983819146961546535609419369193410482911169797915011019331918374630886370440157176801325247301131653463291867752514156004309984298023674114368538879013321022393954877153350408923544295898884384002893613577486371609658237871702864467003309103762415953565252807687762260944712084364053946121508881929296051632678133931385583312565831468403127508648320385642776142199499481660656118374530893307617268350574270935974345925012303175944369456320665933386563412926717546743491100816960852632551193146623326644749304299912561071564566310893554969466358126664499222742931938981654269432021810649861434132532365600297413119008729412371981774208748440540933090433621625044581456351202228194938921991368100067627881246622051283231347124429418167946074339620397051396918670111685855721209572561830345619603959990166571521100708223406632487107829189545263777476562479124762489704576027853712275803181280746338397253374811208542485579475598591163253580997414650884318793661569245512567024207685587105115013600389373621702577025307216908374484681240311097981667959086485839214527228660212763440317537475897746303892854456079854571361206392653723438804709823707621731282354834565317160020856004626615335197075869642729070010362366951081603062846904160306296009533925885712988838571754611223263326198089593523260483926195873329483503821535353804939258503431350453483350875091765817577670025756241051739022342016204019811780381511344132454542941342625305334047135815687382370197144146250337318623578989913789920526783198048504828439583731512257040752241623616208425518064830522652789563989248224741517955832803382738937883876297071956920012228092528765630876441867363567700279369016553231258874394880020151766670168956869851523097452766021638173162354452961861835909367715533773987601096799427274383728272977192585914740719421034646323950568856481391856642730446803914604741416765481068271739606802835518577979951182346458202166843494755121577870261343003946374985581352460072266086556401215668613346953760769493268641438094442373027118441691222787004435883139207416747264266378634424212634090439293632714183747614780485956899822126339173892959322738777942303948022101833819498938528880917811709326724736040288379453749629090330642352080828924310405600193049350487789598437248329293083032426387421516453616094450212279997101895132855399078917845630946098881060524974822655492024467909319902348891200542179440157467832213581819836930687577126183255816473818082401465311835708127086166107840219955817226450089261251125257827066900887420152156848465026249477022302358556388945318060122006710835180819284103037102186458162246706917516403419431530292515217671796985219982394804025635246478363321484881099631408716617442302970830697148874675910332132047534810332790752982525113935023441460563366095788035110485853546159255641551005953085907345997415811486085789913420505729799037349740754499423538734331848423147156325822909986116835806279092644824060648548217020762450611265320379570857492921619224400531331906904620621847844372107263087199208691443040454330396501994899007571900189725032846119509985779176110566644528123735302740787850791633601159338606608706936285701866460846131520246614506160083537463564373286306236372524880756666101713556434096047978022472844462899635627250102358332569105905610227211275159031864888188101811694511401445781910794094955301935013639378268941513486127378830513286615226300018387550973855324377860090150871145745173415170276602503737754171285588324782023354110054358898812701009685982808097891235133739677410113696790542077418047769030104497080132245287434753627533610206070702606758445621975117767955772251484410526289510190349559610629546673629301206273311074416221148038765000954649586658212235948763002864285527346353529691419490928512510011540040204494751840257211194864029406553384102631564643053868841672488778989804504629226852759255478881966244580182833750683622313030359990350148653863815192860273338687557524490730269401536314858445050533407162778004945344613356826250910709251911599637500878519408581623075755508369907271747060955853483595964660923677477868107517546592730268651171878785053094629245049497619050118537342358066919347280276543613040560967783744071302360954704364098079607424834391791364296695812235123463008520798384958374142258853065688704858067342745946510032419834509677478848880503821657660443937978556944987352562446939712835992111607196165055258780419961191767545328349372087589304944776610533546825892193545595285402649673013617578240972991721127437481605031701042266212996726571714328975901646682115816235539103921222686115591029913803567179480017852290820051040451806056527033846415982729050124691901690540570563156974815777088938124232867735584175472485219775817700131908428386415074329507327267498221571641231872192536401185298760510710374961087526433959580363219628416480706270503479805792852434225063967740374504490998342921348750224910598945772024776095906633707508974880784757782614485401816674888567571535219615714202763354431933543689140247047473430527696616903546530521595260594691420861218979162478485372711113728096088859618567087248309541143683480238699672244594027297881782857069251514971200558652089813862875814414580440355842337962906537475580562505822511649021134019879100717213663015450678574620829193418963522677933355497938886590096433067084215009362403224803325050114082863867003249910212795975167612051914668474002169485927293691065526779780125596858430937916302179875836050088269253717333659051477346033070689673560353686009946809643529636802155063963660440668942576346484213164445416195139838044196733310588819711980382782241860939412164450584815457271840702977350854661649137309240959616603014246022535038698936310034609026905079370572383405632511684240591840247044513799481725364403003660822942279366882496147037063369713218979020592338476746154828033180993482313915346741808504624865089873253699318339242123234025225031603431083027568240455787337214455548578577150403657815333814852094030885959338097987222032361645093215648636915196852964243526972648197504759787879292879197168943407081990435328951228712025027293301009074548401816883730543165986457163804949931110493014784465373644715384179610059497041227223038919130317201687806675531560927003161072785756818285368300496573134409594781242196444118967535920605622312305552110340077657146517252200208626345711280753034610038540001481130958717202302980467907615412806064853685391214837966602163458578319779528870358322758220054405721116197995672200844110143643491448860553326634813420045839939402933076490112417098454665760588926436804576933994014034773767291590119540132658844305543437142101541217944280828788344367686301911007346768736147970708401260681196959657473739829617359119070061985326921204613495562004667962379092708042181048402350375034047735543564522660709890174020504119659170774971568985412978019207394427265265094121051156274324443001094677011985995897800299090562420901404321307770756265708682361838834011859098335223502281244466616876067322154839802804797911994773787434808226118505036315313442159178626194330591976553481430656066914140990655521971357083175426256786571623454267062480543286522540158284590075814050321726923432206418116451295883909105063748765460401937080946592393523097135430667080382552235131045321424102190515786180103470178410918788920037643745940496144511009193554571758599792577696273999596064124579765301462219007670514684214343888685358181590702222907678430274326643986409055657997477678805943348847922451501616016389238433899782245623682368617191599980517494458589879771033619254183223869938768677754259852738183882651914774988770535682622504853683721906508920551998337458864110203582940363975665157265148836303718486288784630448021518046844099818032196872090355416082190505339140096758626958726165746404246528816463226175560187493801639482220298984506117386766346013714699619988333166054088094957206012239703296452898098719326593942876812399134587366485646313559888401348559992683316149558879014834185410872062302659757982659628580622760893757082814037618888447552738447707398144719090792727733632061154837982434821954322232113986803549525513924479407249815859977671114579696589873961725531159864731620137549843111125287113911739655982436256385731349915629325958709990918561790615651282040329216400453183358691284857332086751947559067847450316117306375701336892906021669693235892610649028424999635907553658821894561106281319801458709971511191771332799246928811524389975273234766046682679571204183406794065349178292043471797030904764202525927064613878492325454000101923377725900381002540282098729571075503733125945771064988494710223139035414253586541883728704360100227595972717722799409764766659343019473238805067320287675834740391278979179275233719054909102039101188438934392904078654054079491104743516524190418097125032729651216887365268004074854471213466894286266197168758477573536504589007125869392716506579105439109433057021942871441490949584339327917495350656958982591523311128946259211773034771303779535044198529475993612693607555264783266036449931311874954671343673047709997861837570056132966727080514876342047256385460005544426238914533225658246514784970339130889025841137195712871043369045294643089472569878737525887383161550944428021648089721949885583369864869254308464903699233543271049149850673913347631811792764692621551264686335804158780909628706483126873372319390944334580437539566233674652556756523249077377377121715815467239155130485634213589691540372510565097848208357674242995996284310972084154879587854014755990302572441188172916527407667673497700544518356752283674203106532939556642104224306896355514360923102051259306439143427005904731837086836450903794618679588368365466251081467457363540690345261739125391002948648742887839420504775082728009481513390456741085089010737197558795263805881713870691092321939392855749903848207536562261803263332316092535591391491148716264008074083428820146913798042875694780653091237379921999213349453479773033952570541740078227783684761105905914412756358190801341534582058724682352140536556293125021531832508370392341489101193973655814762772322465069659073435969194153055036993456246678955008062833354767778450746417615823652687079169107310576514982424091976789997368602425564130845027959826748067319170347241135639516652613682527171074648739522151450324129120698985377580842408916181002852272715074493181641455328488972538648552514003960646037126482918431028641407047054594389680347408931328777760842538212072350602639219807395534911133853335544094164969267831366153162254824019863990267483507265760172473742356596121824132464408492965222308714591248552203307417114470689826696417256707639572702911451520349959656189031296409066262120580587751194129062407138496197850438109632986149399643624275816097154400730958900803882283633339686287792651440840772646314884079721670648569728287928474446298657356590215071304387571827488090959274497480907786767008746025756204090292966180044431285214163100234404800914689881602358710666618588090162758438884582427643977168988325364705355783091975585184582789668918770329946937693937628115889428170359313883873052067321596883694052473122348769613096612634871918604095666053531448718572931251239525439061686481032178464241509100208393575692333587742751199994325115868558645544028773305905628572775890131987215999399697575025858637577944842681649667359849294132726057360816648411979320627737348658931375729909747120054499058343735717030576669765493591633319048922484348553319341057072640760662291778706420112356566587973310614761688565038257851975322957118932850955448750163943263805402915273817323514508714232497246380149978401219447372117879520476206293587277454401306955206694567080465507891696815050039355842578563091102485255115284974949415954095841987055920517881617867770378511649770194052518182034595292862203545364617800927407640916505759961831081960912002438446808117488449718127482927605215740127874360141013100111401516234725905883970375154064492881411853472950713056054647069006372628787729724389867366548781251175231262728790927437460551550256353735708560072382266438899395310797212244161140963091102014611490162266126702846986497724157799901147864245907825536349611732449693934233432640762205404455288178817100192835179703274306350240308894337268568295255641329304964387645886406489457973643766730154936204824366466553246912114759533876990399676633557830382805914153594008239366676173919748917104416235885679386139872906325522188557782522547798915353858632226160492938403313391913992200237461627909767600232812037744242071225071846757962046182368154773934510715089889180223491316575321886009087628971648954660729685613551857506825996502470043091879282881457442796315197781716643056068640707984827728680904646929602881648874193037003670739488183479428209279733999994724237430794103935572713973244271688515505757685485708595993640304450536133254696341669494379419519367574216016289147428629043156645323030896504003091726114917745036786236828468944814541954140302429785366498371327260245313917355766095465644973754076180952752526927637416148163314969166921393633282255850482582401432563531352171443830527526306156582250127382714629177961379535519221396927712450144438057741406557223140557697865353924854943138772753741535004041078539289916197942469060777629688639574364407368083203722359629726260808528353059122318129374309641107912858759138883062918940963623814040585568246740872349069791231985525318828288202244478001337132874125441231452391070601064212229894463412256463739413989218458930199268119684482959163678833764398818495324382436687659815258274514093942293272669492277683053769277016704397220101150919604750375614286852669155239562699290941822433847094937768882454391842938251674772310052675457228215509003290281317221562683809031386137137576291480846512533230787023969064331129858137304651486550272725615327573273972698993814955846489401838528119463453064282048263569156170714555390893557603506717025621339979862312344598230997326283823353184113172932499810684005754298507310037906030609222932565682918800114067566376425416743896537665469884027082477241472508875637538575739035600501726911814135730301680926022475489904963835516389352355321742421919753468217263847080954870242610069759320023414225181661661179391763558854547820346647770886121977690854698954713729152178707030191807378356891256040459862296433400016671411289535580024241868479208713553939212094695106041027548877687492126938432334551726267273381094371477571054475952862971208794826715461670592118873457183730843559940080758659622058094050268675786917955726507561298052112812082020224066802943210983805110933908443393417480089687603813085649330795452821527702748259568020097161262627114314388481030699554813562047267149575469964784067685030817517401139760159053846537986820505975606290946216238840308537307098249598556317460542007894890518517472413299201386202050938343861356685884212513063182500501726443915348336190223701633463085188451438640109651400211222597904485707770955297321486313726286898476258984664785087170145311661429636662532377864366103499202643207211820324337843198760697129356586564399737118481501372534698408761623160348042435212509782471245036179142736919207786786025126336074739983263391597698073063377062985766292673952552929617563802567604769819315008716900670368853915693895134724492181291141687838482478523842112159274668274930396499956642979268195314596831599078440917804395157964043738998787957355490292868190020840651341220975943670852375875848696752746711460936422770556653823747853885643340363904410360809167865516107482687379461269582344337612639155575020161713366610852703580359190813641912454818769044668299371583258250651397503455784862966540370507455495350331389825019223931769442926024939509778672048858733948427486954070782552357303450154731651208464726084196621674112017218407934101153410838157308574586702135614675363977122016871438086680547704445740145691832487642726028265700271565940358484510656132520141865341785185479202538240292386453963374482201241479847461777753958053207955909759456123861339370626406753919004778862422679362797588049393882466700280833533145636669525237858372916218455866534882361601273547290281264428664430828142106121574819594226852235605859942727624703520098925838898897097377787926779270459998484332248656915850479448045772029431847020459969037989064273391957880438276803736966928115635671622326045495175338425090924107882442918904135121960302141462968410363355534159767138295175007889113566306589781890769599403317963624723658751179066836138622473125586995586374263765588304558481793152852503994489199108351233814860144981863419787060823114252259719939166002036104522273224131984351721461899432005467346118551764511181789999913069678269149829136455062390925608051030768108131169168844019989150520246269000537213458464049884665122221830414300266890332078403487966882229005307764921946746326099375424536149347861662547762977782658175201382607358715782466625714116526539529140011957575558318409768135681266608173262883138833027442816173503003593798085115414364575277935607839949241799389387152073503550818232448974504976388934046013644214766707389776053202390474378336431163974262398571165970939179760873283215366199405894534747152732331043933878026174563942404332385615159697683500653736031403173010335505982256284005836061646381487596629120325515818785436603679126425384038652271458145095188776094673139166004571131601874124833004744441929053519751993994047080200203570098288563818875323474720087462483729176565994156751526776592062783856499327293684244529283682366415384557895570688766196152739412161832047667464567406431928022750275528379344189979042899538497936767515803080707565667125430937975913906068610187396933710471022445363009163392737320761429788952569616708869880885027564588411329558426595046906249157730818842114231891868162437178109012590591618219427500948457513544704541269966288091726675020717679751620362167964970730165341334796432839529241015896125377765232625032246272899275410002255165099217347358877252753533257955281628973461076807150767414758454121134275649299468075483038313274232429243314050156755856592462848266176774693716943115801531000309233968670521180740755948463169341837586706733299963084716550476852320060645874882149962102255911725300752411965524138171601137260123178899085529816019415707766853090766964138595643262383005575508864868649071441083749821778709924403874092777937972241292076556766273453908242420228163389158444742539441238938090301088307029805793724910046610461554186651019731995836442954109685757007780920717767316885959769614259060450462197266033874858415744757670623210168004832774570694850346428361915854872251428483120740345283150459137599346041447033455516196481162151796163924099245490216425474419406039497531746221512474973150167631174030642691611795375246284013932288256501985393293899967897355346691671902916773370793218011848200380962904620608310305704830489564317928820307323959618616392872422577704726575120165176971122299144733613113503371917659235120029434774268560398246125629647641310834947041529421904855917835210647705278020051378356517576965580486128287686776802897733283190680015224455684891361633117987937257681805186752027029332597352660646295649331164431793675995440685395181431291380202074974798794145799676653736511346957711709498487217536745760860011383115488823588171390597139898062112198205243397401592236611049564871853635210318434213914791585116386954082716794423086825773906814846723332342849570673505060511242383604400060139191183459757068924102410685568406319020936865642008070657744431632063299302670976097742253940695596559355166693259951189635059731360616564820384427266864165966789078527564322162779543444905993632224636432772065226906188036897928588306225127803904105048589875097741851350086395877591587436409015820405468683024912594881275629170604955689733952676771036056790788306147365524990220437670368054483530328874778647011923650226540929389873013818547288098786425771040356019813552109606288245636778430919838546425585088061403493273732910027595197420800178188988787185811147247649353472069467068696119216814741433530889329779925615674116272710187735019630607062429544374446564228221108900177580885689914739885146622148003963737949029738141582434761489137062036716000296133495150883784171629406891717308175164606260147122783998289760398631509544832216845469973524428966346223583117424639760343354375716567084076488965613790948730204164341709562166236635313237725212234131731252555593213874939655539328131803279291835340062561553436455402804513193083206051369911929075580904949833425056205090990174015826872544674889166197729687994464350578360347726336836089571618172781891620037639627819207307252626474451969722509186332868613558111969582164025715276110263481372818140886613218855101937012025715082329517243063966331480905410194977669000139978133365275726928122952194796793900275002981294082355306268731562837971965750599142004701813855927525919053598818368708179274912750699534088039835749159154243244629297701439229380229497312567582293874191999169610978763567344014808567273864612971339673527063915234111326568251332619937070938493482980934315813890588942694677941617925832481876424266472090066564339979985592388783348217564191783956712191633916695578747479110185638847991854338210547856641609665359084725185700275928721178736480923603610652051047906049714004613928993995786696557098594249265269828751659849284901385241603054866297622015129877890378165563354966129532142418689199216483699270898574983725021972735024550449345138762258417091838501119577216380592122866499436279372991865617137427769124927938065563266756417314510734411357970640808778148279317024962678152232001691084809872092483447367447688137524209084281094578588126738080872839281205618677873805877422616578892076038151366980791918878093361765083904245383908457541341908182783972605432174155762415581490962865623054559134609807366015567522264658189562046451623718001727397392048802068590440355954854114832026835584437354590735497908641037982178755641305413890063218036329650989658980203538686880161375490381509461975741169316095704374947906222985596064419415747287636637941363206660465331783246849851002352675509191040240792976224998930508083540319260795679506267696126593454623055439722324030767787132822594441739601406119445452157239421411571846725605767495452156887785326088698182856960395395664348235269590198108170391708369532962177867647902227344152256587859476210814834381433960101594697007525588283773538859574270606231824070518635794463038443872043963076065835707432065039326789905473777560221107170786628759312451857052486687671590515684392543715549270824815990210050805824028858561882333430077722811293880970964822249875789294216858786026185772742728319914104743094797740769611541471563613327906045056807715575758524935400613625731147094040381903219366105746326752684739744798596791078919168917890664726904906844443333413220543070870091306322038614612013530818502642834946978267476600652455927983719138810298840740061490584657423256898268431785114771056239369773584138619741647205055357840321366607921249123153047071480226528502006461663677953160240754790820377065470891070477377978403499547884730579053170306159565844156054253173684376186999174433993784592793812068295193730679597254747866851049039140081584659738672432894963519127687874794866224218467777489856062174432055867780297383208681698669624415819367156843572884954160204902774535275730500093721494344845461112722517460393435478865961846624663937253615807333619499743875879039936544748647941667833779617741774160525889575961524889237135829134960747918658041839739818857904787330909248149320041028569999198500074903297628318379151329128549327863611507308676969950054760966852320338479610601239653534616461568367145902536672282355285101900231930111424246548691511033610965036242598337449492650565173287875552339445523907360628365939249597284486970637298549528535525106597300787622110580262487432691110912799006027931338896050591826065261383019322690541651974628690600240505757990766249715576840437796379438608859705934030730156572641352342047287789530260697570225803611269351782096730815425368000018571625219913279714207654365632980490457996574070391141695001483247380440395407714250729122132114897300112712169189262959518763140553677234465326453414209753000955225946981336456838825517710665516782444843503285081269577043610217083474621604289616957936620041211024497457216545449007885168475072103164238340391957581786317614262247141890573898566570461750928094651909123115594073710061370827429636520009020599470960174672810891484670617528693517361867266680072473828374733994726472516660264965508541450753514690419859485287879431458346460039459438269601681264992800504144004977500868042931268559846313337041945126839419954240592465885247148099348412747236102735418879993589916880355594006411462187860335114529812987283399118125362730497418659931985489433476895056301273623593476939703346980838839197096553317277479633909841761625582355956083156086062618089142463240666826104486908338927522348341375645834947909320799167422857130439334058184415950616554345381085594350143223131349924202913893782396434473189319611611841086623207593751682513815922946953072606203931177803076043968022234723626384891112467383030140752384020307101193414989725952897161569600956561408367124433566716282977395751012708934872959815134712336331126729136945184531088975230306842023337855289820930219173442631546517225569524573556870174872174010606463469134031163586531283644269940816310447218481689295851094982902168618524855209172347677978388679605809986840915859386093533034865676649308778058254848339856524880408970442201967373610669448960493101193678749741341511706873530809662963695788594480459506851004321131244408248594293816601088621900213186196954090920143105632217560213990447008400214891755821374923077322374388159818841255281010855661749400164344413149523878422068375856682743707484671181046839519826378416743309438701362834133376305699924296785134623803786477505371594706462951203187577704834464207789716200384665123192352209446751124207649275862942841652326982814885718857632499322456006926473313707326453114331158997495040550164243468835542908283804996441191075708480718904631429751835137127552351491371772542329178496051373120517916290775552591043924535886066930770502179761100301036824456608520165842887137312902494668128535813478282807673742876819794951635021447408640031624919345790517850781954231711365124299802903658562974257298938040132432765913544817027279497771381948507128831617192630369682439132725334928878355164798407548367974652351501583410308931143879095272111308905081641846876388308111175940049683391673384780017139764862134351946083646152561187081842047788143426937781364063338738786208425389929914616051728442477480315107705398528369735411686328953651290796424366607082168781686736895968189688245837959746354435400963323864258740207470809337121465415472872682837155663613364676313202022943719661867315988671037037128548796078481201333011588772782158030186714763534609270402495844911442598938257317562155950360689228406368240210672228768343797094679628362775930961790011206803042009224853425938064187557982117821267983635480633713253694176084312159488758197949425201843122888529734302235130496469263593253588920514328859777240485464150483787159260812637111263592955942381738891093618083735509776940596725084865738588108499102841008664821920375680543567487270385716051586465721598391908478615139546228090075117383190600239294151700123907490321759124125506377282273455685528860555561756775360375254802390787864890447117267883737809539417918031044566825802224693450476800997008692105713983103868457841654085445004483020213072033093361851576751825692090505569849791325377978712939256321518806961817770686003215516770043152605666821911208334900798652083538287897553708410399605361595096344335074199986528273506842788842143310872024841171022106784993147452203278994968590922502180116790937935122467575471774426011716645252553658035534386947107891569712047560564464194078311905473081668271910335630421622960075066678400748371781434610955672514330631991344987121946161301429415756288116458637656026247420039970717922449189691537707536534026806387812560128990276900496518940407706129197135446539233984029756403024349903344596719996909716110945720869764962361319169727120879859438299567858721121999342681976468109092363304859561850143879212610012514549546463093057187200533920521331087348842786823957727426558317290972913501198891987698349560746054965375364768203175702969411604648812682252367547017205007243566310077076105176692035771937090651858473780989798189504839019300246282254818748019815477363648923931718578825390923725636632042306365985446084499236222578050811268004506896752354673800705071797727325094585303435342944961949617729800447085055223669104517651323656723519358228113651757415685501027950432613728331822290761457873598524165828002712510778832288022838205463420227451551586180160662590421682707842927539115515375309328670252979633061887202861173028076038577166253372763614732533629396121688583212791641350579999355802842887086246549053824145445501225045504286967224809228691447576668277828364700877583104606479426479169866405302051361652786229381594886574468880237045163054950374324420953526806321455123579471776104895634244713089109051897842429378340962487797148507279057003946377817098840814778045631724391387524460008971594551495907771985783797537948986929734161790417765885912260015932837071813752025474342998087190637500070760722335793161184393164938891290133563917456367026988061633136004274301907381302519035959791940883930797060175944286045321970853415882456040153405630798543834247698358050832025770960557799836160565974953867061157647851571031977401548759586183696016628496160749900467751742251485723740541187829654384715645911123472342117248919560982303716910526283074362998297764201338938691974480686198892426066658524299246157276264586381948550210035289075131672187511170610152104253935427871064776220106974000117852156816647602851846478550584605260061923228811683275672560154102285399079191872618931054127759796208933920245697978169275348130260071412747243297301635598724690280701508039189327620367760996999795287496932456840776475050565962643820349879436635916654300515999713599906557319248750712049306715244982050343896910551453024188573715856629942760652844507683671563043956115683568485194233567845466621314109594849242216863101686533857191792531619228067188319867422532454495050329198499106375361988075894564669475283224832214954687152817146900818137968016637819795955355144052158966092424035820114851450762293886959330089323452789658587746062255790638326776700461695990205094880494892291115988004705075273267809320139888099558105294501938619849138978384749784342535647035140050618702144141873922200503053753015894198331797472887574961893771550372600214914718653055809801679555083020175591912217127567965561478025330087977091515894915855859448956428879674873621697469515279685010885805955058710494705743387239509214920322352606033955585037268424803598923210143407553475924042359417555871925725144676817681329677595199818518367185769744915481075549807309091089840431627456308085969519603619171862382400052952921438969437018186535539218016303697053392289171257915048802496865884483971185280126310770867549062945875985138890716332363945427732190140545469644161519859314335295854883689730033186883507976776772855984281525851424791877997997100208227429326230402643076988096342904251188560766887299209371598484586691190395591563406441685395144777936634563589300108517558178641399643559332767261683988496937229938921430484379170796897275371226173423287789218587725616696542682334532797752373288665364775375849603317707212657871115424596882918363577293740295562929205250734966577289229696268237083544494520025842211658694981652413645264839940032752887729137116845921029012275313176489977797729349395696571107076202840840925905197369765644129686925713022266186787573576798843710596390939741179582400862060577963210967273105930618474949674596145638809105523646771331016625879369155421552266973541461491342030914003390111799752645021057992543331095698953451293973489202457130926672384418218720489080870133021809195558680036714253218336363294866407709064607892836016060108904088318285600007113025677396836952147962307657315384973418807963129252434449805380502110854463730258980397510208583561388351091440016279911211308718712530064638884990663331730297560194772049335708466160490026117891873216939598691504003303368809353207362898893823546417061590436259352493899518179340183163570832247278908032345995309687039178829686325230416161439601478320765638999009635835951849082155150955734281140485919674268528021604002597949700916955556708389688096224073236946341423458738017590599632215532593815747316344446292825501047883546279904530710033612145092709963304619382934020749548325249562818547513275162623508188390173455364142683663390261779402310851088211081373936475415383192716327424002711399885361604280715657596510269195052185960332766623486152615789633281887443096900343435582868293117437851401378599189836206929074869164702473902713705224451313177557008573400527264067226255460374278950881645966062228782013413815522522140040771495638509159864555427968065188605769461745168204458819245483686075382229042955893958578732433998713632533328168156990595156540562109728951687264358524273446644339638868055490190082702155892677661524132777680585761570809278710650097993507223186726497717244668994626986632662884243775853706214480930124561911493292933662701834367459690009175971104301920675259938448378853146005179545323731873054572388706008429401155074285404035891711552437166913635618222037295173764244390818154668770918116744954576442059404397641592332906062472612326470693475995906915585219369696582462621369948080645339200820872883786950763982083851444040527809524061697296268648229934286807868156921331263323496557535399089940867022529167652428245235470866822120464204654372732885036815929610494789999547413256645836918309412903306648494737047626645150751434712657173835474009636276950943510823406772310767655822603018434371066522780534269492851304746884463259688923678986537989154460918555455068472211563471110491453291911388207406690164166839633053861226295560674824132960618348526230200426559952453420081709307919372473038742442545911013940827563712166351617041891615182696659126333367080051324818311376507999989261191549425463174845842493792090941501769929096477549958077183330214277478019033963490956139786891043502971119540112169575469377910582469980303385898087336677162705106350256025841628659451982750739916052372653920291308364349769673303475548846591549842681872408808677134354326191359594931331522095142773917322170693120738637418342420851990898488869495474012056823013463380530023334898644158557885707451404395611649256050358367325752893334554426110138264688178688601901088072220192641326616328243077395030404110796595903505884897293321311569389847487080926983797793476042560438356637705191666271160475366003513078236238140300598411394243066268806387351996790655072842678675428527950362764350630263849646840337363078724088628846779389415379179536401794023754944732740391959810598542804779521283012840314297746363185200322459640107071170450212876742066695403741671402365693381408601633126994580257771940529941589971052144723074266673339865041489048755620469822340193512392523271041490039483713856934649935694536296251721730910369049446905572599689259007760788070159180971527876437358399871170324333634509121090460656784742173423974060491304132159696905523118801702598245842412480004923717654871162129357846218496103716731611470796271236978015834445257372796414612392652290575235063205148081091280843728455772796929118589864752624762944781601432569919413782242283346303877664001543474426469353665681675821591429608426173461882226595885799871686987989654526663944065479683881119098029210287496946312671327037478611840040676123694826529877650483326270063345670043735643746137124114926842048445672496554979679761216650672192318068049408853820437039981822667614653796076848301667661041786871441746691633409960394490541422102725176585383854504804379706601900605454034403005594419073629502870186435935736013994605754172335221563346023240672087474786437908205742280774277336579519532198564424614662518942789351078654293474774090292922857910752395443926531172846112181877687354375726561119877301294409509116518434671893900091413241361608223497629733152648156921819260476859515974478511048825300013529870303091322863082742168329936157281179043472850520197915881463765042453727627089405265003651941952759931382560624215154778962130540549720920539168370658756328815741466587386685383594835504111583604828519689805003698420466681015210746428910206439665427827649638249926376883537419422810208570723992079019362786605107248881714300815215536236842484083592519741854134251326235684038302307577025611587109850505132375090296697159600347062535685889650620137383047418749161494418397167472671652185571179467061429447544440047725160352374371632534436402889807905840135744176053382173852115418868843530209580703852161539713003545566446246313635491324639705476505631852076074170222300763934636510678680501682590425171450188939065066174460680827572258847364842739816141356441241080026133491721206664097616463355977553978006573442085886739820175701650882022247777443834371365504733135182079346432804276295979756261670289085002238358096855972770883382249585790098282472381331827898037581423569039767003975768720927144977331224252798445592840006899511166344811516838559798006136951725466954659082325862881618241765358840505061944452579989793403737607474581586568783184603448252065436599961395184536262466276707678647293277075262929027191602620926270878713923158210828179506851931181878493015581041780115054611979066600804108272934628073168968551261036980566785358927960850701317504489424783829970560270992844739194055105678455690122934602972435297514584290464813489585745545582815947126946912090569750311875175713995959314124353548761439370770606641314749018740571587070964371656083555519657063394483123637434520659950623856957702203535112696565420648962344013020917211827822832248188923871013523495521488661749807727246505049115235257522187554243268358086396461853811461256503283582169448397258834632328869059430904789147178572655494291933724726127592784674410037482786549695198528806310921444585215970123445522026347356452341109525395064761489111176568675683923036106007135862444963539880231640589878354890895172860599685648840043467163505112580466085545865232380051520761046964109183340141049885474113134200592376388104948096846768184844017973607172455566583531901588899332819503739426933337328727300365252624312789665578933058679819771482124567025049712295397130438139260786992601611689831187887321399442720191865743399306287943687775059228642898402576399421043867119996740771230900169405721745499068061218782265885555052372261358955718829612659131231303248340163104059631570985849912223669867683432281261542970215921175733676736919447322142057141262750462882586742192776926551757069925787125373267734353522091193913097835335579305362201678493131544240479680334439769935039329770597437642859943328704867388571787455127736346363671209631100370488918373796074986684001791471309550934257819633371381339400044132908649139399076611077759474623868083456317412268726864219497558484877046235056274801790512880010044792174658110056063889696151473518677756034176403317945327402328149242363553089871982761904388846210026538582825368028772990215127379745463100631118488027332068871295485493304714154680708545340270810463710965957140604868201630691855063533521530176297101648955550284913774277532693457803269921668713091730477020332590048400718944806136664760934126716194494448601599737533654555047520608149313857359316455229100083926210598887024002422129002850430774946233554488385646388727313541203958781706238103652120083980670454299673120982970380368244963622488635040680935375247409163901710000240291457778495506471268312959882316338080753642360533330959702078054059751130696680929433578978583218819258805289782523671807745495178181886108093049044617344250576861548945897622559711462528621058636474918852593215643986129762875872540881012069018328954034241235434224281163078070200197209314368401049553281893677462033560151021419809784216874436907380021921320514196798610689394655774045908070652205728608483942808450246066374719141500826471971741893545127135484108800479313678810201049181024995236853962131001067804458962288438323512369576844704368938725322565417757899039223388735319379281441176283641268124053291846840673034526916965521359194975521736300787893550920442565203174574423050059728311616518511714579565819446038177534079982646352483358984499108688021968452604420874169161596605395276953269064008753541127157659837316757571378554828956201793023689505192228702293768265603539131234655240521406569941556787201278792707710670615810231116613861443371987501596420059809531139683822015578769910145694866370848938031830485885331280214709494872722503318717011374223911239254546877961317396901164845753619900659587857449466103512961698303153394966873806844351328098952128766251491970896033886461149413964826021752805554491819260722397499245802131856472412841728085879198353538901820675903086319475228315859344433784553033198771086833236691716774473278526776048684639804910648746603162869833460135327771535960906100188903660382028891381391373196130656746191795729073142527645076492436881204805868175918988623254526582654064200092313217617295463402015162550870345261747311098687024201203379627921655624604736531044552993995199096678310546865581316390315852349668648157161206680916084617581470102278768329874180653219786069382262891101132051930937221759221185761029989919111149701353051862698892176833591530376412154221207677561580721049414465896039843411093524052634079435476868074237982159067756965131507628788635481591586330696519152934090257903778193486271352316226199882507071419598488216066345072825511939273464610379609095187502070457618100946754364321015127033205510740994316216769514690094335678830466979380489648441339065140444755674410401399411620237552059559193871797835306230817391318301959114052234357287839630927007285743468757972204101162139262756452073352618208554703634081902671062484038402718417532577034230707546085162964492798943599582680722749170175611886710498091397577082913317557629280848807233450906797291299549892512254543697972230379062956656387761134853429228760955151143044347586556039967138957984208396569319371105706245556935966169453737079328177929671596231021363361962946958510414862406721695195796713192921976997921671649132324693783527665599866790197768402191437762690004776560039946636812081092546049408293681108078201721470298831024149977762689258845317309904019539240164989726819551787983505323585852746023228192737783623477374956123705403084491694351129827296163655509966522321241260348498917154924230990972752081541503094072796987857826087903201874232394994412507792666997312882382092594425301352318177166145601222904004312491084322935512606714031896447607702446507623786956501381286165090063926050495856470341006827129914323331232811138010422045713713327296716999571641009461736053713654644579244794690938788124278531570247057418235305737409160505045145538269125224843384992336635220702708269527295700540846438874729238209044194315310008805821150869270323762886639875120213766013039674932943280032053153586037171043211920230020901456454893576627533351991009840787653644775572764748593586178531495413748519793731044312091143309091438021348486098025797486177777577585064083365476734631525101328059064139029623889886213929865119697886777440440305082734611981446628405785159450408877358258237134974989445848763245813731484072479637932792538928269763296650407467552468510257441737503368900673707651407922132344824721910389761596513746214604684088335062168751558686674517779810640148097729402867511203731202700577308077614653939348501282607856134249349846232589621054778252406254967421847718343707351336063630716667452738946040969043368787079182216358589235811942276819091799457333387651053164978259173432480544479318469068099773350029090730391331946411209024329739762384103121482865916397732895024813150344319623447304953772563247409774039919970564508823382782716183085007518888175873085323786381339825841534921097502903845640612322684932699260066063096722487324367175360112379191740382088714037142059821958927000241831796205727078320888884107895440742796928548620726419105751238607904756033123109611467834676379011839952449753936961334196613848879400940357719513690576852324883458669824994183275993400241247753648606974163856779563875431200625539565438124386475399238339733589360570694604461782127353934314539337419091748924916284085572795709554042200903187621308718618183386286736675859277637211844017452739332718495016336741710378609575178055051520762162650824502965754103955095996413602409097248760059670925219885891025528981870979880608855710628748911071512993103192387113280873287029729403386581486639985354609264699534638358504035240356861819652404084757187451902416530370880143320551454955051573893349268047234119896311713918411147463824102685203392515790908760578814075909506882326340336853821499255464238775992963409120937022034500228700896668884104332625232675799200127923727901645984519684531426922244353599298829402930820172165007926008169724392359225914974469086653445694743132261252921345140316580804836107047205848621140131573439720199670741750205698772533112264727360031189296033998106614876251545291292354413050515927910914432557556578267047181550407185101013763461045395245187552693149917647687263764990578709244540483050448913219821493430885665840072765041311406905863239489752175227220414956542400504426830156751126399898145616425936977860515986471590841844593165514881495907340242053869243402456112792031796386855990804257910400438680538098799303763477013381980708996841300281456458808274249386030123391872007031133981912058002810311365274501257058325455949857372621328856089192594875915660235116137297677566121632473529447860118932571243081550862477520911102133436826225712841479164165927376542166204419654751251424087363577031701210164749359608382378868550464017680298951042570664920768871986878646699690718265121665197997006642359711046377141976418433717434492404470313277753579389442772865146897058608364191735418703168633968182837941289200178655364949856072712811089286564445522688322981370933787502925665007942607781008903952306652045580806835317700345434834637094154685338261041508899173063688180670159619170554396950956315252857021372837263032352411545417673715511851917008894149457438822541296589792754446111461347680485202072781092508649386446731275678642107453620494874321521922387832279532334680235716151483208623384006750568816196180022135411574595833094207366709274344797790510249137686310904303079583953630359996195641712775163464839049512541043244957380978235960503990369879562805399706205577084777161169775775642406745311757190962766372096807479030997911282896948694191312078578949005841983455921899317280462236098794626403428469066598829121209214835996062503815951615453551961935044401598103958641841994201932273973253346951850005693656382412138743678222892418278288827939537295486416061251262432845717273107574720646198277963344081205579919554135541105628734524194040071516303119578304038168087920065697186922044540266850538178139651640020162849297799819390795889492825496584161038102989374039292001995407051796967914712676475832210338905299402079063827550841694446372439522393825626279291500986192952488589793438039092604749096111190475960641047365114549619464440064390087679812016178161682513470367148329678136907323453699141036374286007481677417232697567075103370733515071894719739598203841683989790283215464654358376067405611026561336400273563609855929649252523669330252276865193668411833856672963413314002121331513855979690790900370102896071252773615389654460858765763092439489361003425494535092668807415690169820995406975309650031528220822573598042714738124079897805404713071676670081183554634130580865264429755275985525565659813419271679471356238382153793481587873020698998514397941604384560456206992548405448145774749436060867468827470977709358227947874131986222233484512715978569400044446014597699126851230893829251815954918975638925948543987772320318729401787587535584083034111887527726359066480143069502063750756511010456302357735118933878368701468306825531100449650545283085675697126481151181864431461194372463674982317480272350491397474625829944376578000633890373951809580803474326228617222623590634701598529202138070970290326606355030071005151568457831836651551159204601578451422153961496573707191086777152912719430396496307662857825054153819201384527763349614367002095077274320927005513526901445453139482508652439406177685829541047909434536121939728929354083251356044449547307437713932466049271143498668648309911817224515635235785207952254970485594982968272612626332444831144331337078270586613950100264289516601715427126433167452706207768418524428146273972107530239592089652472334238476918710777764528875208504403843344800159247145404738122241476087214055221472604470477180389207946651509060872782013804129476481397391155613294020482068074323703347638534162261413098712625885539663051994899928470272192832888953328844477723022809121413397971074046977960951253818161417137512953989909423379135010521570959572606568126355585022236322965973745207758587125457626604298770256587590542121834560055581501153153159154808539949583932151505351777991675544751517076224750188271328387016969039450468722382997152331614191080589069093996601156362671051448701328859757431830839466464715014485575626033836069129890991684241571692902921031596768475268408196924301995871810212300247192050351919112575808153316502971724079931438869487179661251333491754089790576769490841909870835478654853183446248684198074385938634490480235958036306070448719781700035083655588752153954448440442647150487272404490771521274406699283730694175832969313282621467252942666459947402126468651686544528949454414419597828371123954362436705288185751721393066646034630637026982662586272153511662236345511333010831957271806733421901136900862233945452104762551169572701820930796439377036060818140063809530423425625414758493055675092837619501532613158804288890944775097352340001735647863136319882800064698398009187365578854328735184220191598799326025138846828917578556160143392634518062830215646731579064003700825641647261551250600913304926180199512406946843900366205584360295963111883093633652504772269387055340368046309747402001894683803936211030009062401790383167098860998987502650891959315565407598836076563260944810761062988985402439897628570349807813075729860002856030414672783022316772550497913136405059868424901013360551955797117863379071561784042049473167173769227529460975880821595300860022316890962762492796658207717435411299606360684141243485496821658519975176946984171300221694358180417764878717915618004115906551182248832667110354259268931904833700802861273478801165732758165231091255678117614468290075110134538054460317359835360848738503424149857528860025190416542610334026345442038085049609119914357147084530690377297030810818428321308488549682579371558479674175453723856960467255975121322852631836255674523842314347531508067816595584184328424416759749044269321739725282934962628352994344182215260621407843164714100819592797402468523995133141282291330507729726394248893606728911183429571520689948768729200632563933547902221011681529209660807693478769432894358890952026827357863338608356376986609233257973839155259429323606279877730285721592275136148034260778289264935117946452097467330166660347109414746141482272136602881257246813014149649597029362434609223412994979231246550681369798231313379587465743753272275763623493001024165944294434726815283721719507374018772133772570347374659309920748926808716240114552078202285554550251091148394713304399751898810568999785332226586134358419398294990625568875725061283927005265713432704121923835933535144339698926971073789403182379414214934706105689927990287760066210815735537305073799432097460053339827217628793903654373987581775383894725867136716334976355446236896056009703715746093719158904134092347630240816168560741949185951707142924537101294168554841734630106851743159904616265662620724316683120001852139201317864441709676595425885940921288577181665556645775827412490878494873332252332283653761957389354702239703237181856482367693867355692135752982700437873924319415486467661152152370537666116981255461203147093831160451765757517556043179026931414181275855702784998225023752307009119895621181668469188042410169727915030032911567312125037218997142390869861099167160620652340577202931456985510256990790789850336897566920941993569050864745063829178760616259946158951294855534646861512708092459532516563946925904436190397119691472376684384130133126388402174676839528188353285612299727026755994800784137632728842577910738926820385447148361087473556215461169613414983397185173196309688600212431010432738785498730162037225697110579451772594944452431100149657474233750878780558173070055512144560498569453822162174190990807406140353425602427106669560665021211473452596927695116641458686451681226927012127459416596749515901861808218431371635095240651543503504213385708864445412336091837974577908762794313314035497657528203396509897297843618934013333090978640340704500697926639179144608488099231130510367413115025304099896229731390182137518894372548883396820978592564927522889165998169509410643634490191138947896450502409938857262513728750772512909703777651548679764161324853372199486351757838803642804431890747329449954870943662068969123381667824625962808377382085045808587277291682974428662477106988275268249955868202936156542359314076753827556904981083453253642338011976943655624313388228337282122678081041511557757614588203023291827780757910853890711702308292052530770283333100202486170838356169687246867908702238527623145417010170756631581599294060900028458731229613170188132436791174369554249626198144885002777337523288552701193605998467066746552278311489003351113208428483259735251264949016233914123235912558864781069644869929695707183402915735339763515294636595178910196070229175924482597984229432213318586440211334256072645841662418138336744847083198275135631647754446129852471159054450459698670775926672933970823781244875044153641306974867165260773566417643635774556807130534201767130358040281001006504213814184643538803074327853444361329959368547100877749520092736213374696970854280571429626926903423697828765434439912414781398461197721083100732493017312213823664112908731355724359106605972759906831672233364854089922246893464496399151454185631708349538708491557501681858572924437349758813467051505856730715546447882155481348713044165631630568165000023218267213888197535091169616097264586666211338306673937858400349582827479526160230733860310950147968653068956231814711454401613490859448787659717237148037446158719729509783622608798972302489546292107221436723563014848394915688330447263915824532220435103470156583128394075383865751316909705670288957003300570602960481854755621435116142173591430908620284368586638565915812441817625021644817635591670352999660180051920204494044209958883365015232501586076209650456198790695593136798065942622334011062128043661070228697713682593190444369198956186935276306110168608840015807648709192485031791592875739677557037816131188847870537340852598423926672203518466053604690381028183414621592153377998723059640472419112446436309689711847884519682292769219070606110424669735138257602006977533613377652765310163213135866526112046145790682716578223333231810211130498762230796340341625592571825543435629792887833754217578755160280323619339943884739871055089786041109416960036224084780579363844643029985803245347042937078689918993716122332424374464577951779918527897966677549680543247733303899300755425710963591917341963553044777916340346726250826891083871003898671092473166470150309243488294709862827707777927777778253722488524724059445803760587939864272573798143971406952636189622747700152649965941323333107732376073461822543136863423269230162714233524870614668932300439191306946273388277722758944359467462956489897911327789364079689231009265514573564698458226566955578067643206516373667901962145202511314051638223597291895220626071612417738999355650694576343496505916396689391719873337478408133156041427945336037451401662335743149199987592012902562009246579603533986731359896597360313566176156243944666073022912958481264831059848027592515381318130992761574170460441429415606944083158186295754276515862805441396595737772791233834352080052181527559698400095333887715715343781491084702656808539824336551219319965512127952161218831185884435367556857898917497855490928799122964268374230936196317418719380804019893892843395793230909471995478816802897966826039001322046431340168204813336472903179420612787942869144100831071890814077381839262795359283020759156239356039376754428315880019843082074233225808422546916812723562459526116163320230171168009129333644192474957931123389517895816677163034146379008580846972441832808151406538041523057959494458623382271869477564345254077364354297671070295670384454072299207905113467311169594009723377802303286964697756537375714539714937729091093907852028557428971115926769394962599003258914711326745243563893023468064140356710390154771459238214449255959025281683887707214342980129055428741436022329896164709291201902715972315640302578952035770528993188990048029169255691611556178676430864887714784585517414009938592624491084218645293544802007489260555686168415502310458403909069352372847052714293420397235982897730068773708247619694111081651425409889636325833936405972619881322401988054314643559849252919734099660894500673976643617766456288992850674045239409866827790421518438305369499322287816425434879480169239466221478947871840233037861237712134789160810043075991601613438049622179199292440753712442667480357643059616721968970327656899907675989343932304459680718846615953091515026298980745276793609523262530195894720906603701285564099968827991838673389562393946256355778246337029387279063342400490618486651962763311346704999699446169516261621628603073542119553191538383740894701251598592933362986785945452538402330337477200033319224710278847414047790174509169891383062890273068589118077985086022310474669362625768517210236322479216796508174924499007479326065296158236737582265786826687703431187251451482656867458990689090930933137956305847881464897720226327821163791966613441456257953083415304144939505949002769714749832486239141724787098195634296104183898695196059681319282533475772848549346357876572738372703860382615287461405106997453428147726800797979971903810799887214965434772455306548227715679652182712469701334190099721592509587116624766046320029358864316798145747920637027992882970648331446843005784567169427468808564078026708488964745862526271592153529868999474494049216586001236625729169629214077953173672007426977126430428171555600128087473288997052188669340280957806975020678703740498139732674243472143651638330717811474019060625481410168966825273712785691882866058272701177590224789523303253957433245872650112088902311445530646316114999448109241183158208704774933775132290144957635932587995809401029914542412381605114561660551170484615786830162580439886143433069304429242401159761782812915670976637669747947504013675649900177172410717284874411451472472428780208558232028899955110740058563705818861909981636303667000459993237556779937004187816293607621821717446895120775159617488720366450485692869325190363270168949139492344801103554598397605144864585706146684749000814015469664254146306040345151219826982394873505899745034811001830371030777528489654689679513939382613279101362094541546286839189981234274602834221593494835655763081191200001773740910594893598898086371410100643551347074632030666032932245323020181362816671510760694968510669571790647599135485455367409290828568725082118732293868703437060483851526431755283500590536765499982681730648152806224912742706800869303620945630854098779185583835047704126841489555684448401754159497811158742536085160478814765472712630944941630191108748711950259618993768175505748516644425833099235601774840426301108742082085545725111556379876776652338150080269388011759106594054478577359688768461752854730578728465652874876312141585836177542076008247793992731385917288852706777603943350957071467091616551270528317477920073437987977643090617103704782650724182503703873893746663848076617971129145579091067744458764076123764597102097245483850696070317833838058626620835158995610013425190025318898541246999552384962273979271778130398431176426612898056464451797538551348558302698465925285003811160629942137579845140471378993845169164341898595574496487506487962462055981757621105587478906721100765383415612710731524182945310109539131026502024532780550578799897234710793746987130234346349086542813746468913474660250776007120994359934129868816704724071864267915643083827023885926145357483615114622760712999337693234733645704519340269365124873569763615094329098737628114906962546937210752789782391844987573343759056696996131798674028992528155669622027241405361748760890683826032077433522854435911141241952630042858296886815755603028813230418301325777802827247524125759570978160861677826744549287259467729039667038312803963874500440238093936435695707360384586790985862923347640778152963354019873512246302562928299375697261397578621241515965604353133325864384844483941876536165453624459639058784323110700765663651605480214936885205952284605223667349528268848167127993919145047809510516438477639152850207211743435797993812140600221103349816661885071439793911629643521345446129838221245987667077807401596940310626711960119868408715752285036332195967306701281066116014031817474516988178202321838293334229894934287267242036856944397876409604515579091396820472233452807281634409999150627919794276559955343078080120996912591284258883250107418069015220582052487382139926491214375450835220057283861013779726312187846975025193496364105608607265544815308880382674285650172833634016965138432118532272935076842715417406189015566760926201036031685513539533637970901290139706488543209049068076193357300592116385598828691024436152982153223240375549046521726451982301300294206732527366893976637836175650070364622688616518262210796892354567371011206424618303022614308482677818499399240423675560865310613854831368646235072855305034928991414605990214757159158808528319424781193246650760876792151799903551961228877218285526880400725698119064542079671477000548395258953577646932858561384980708318667661853025646640258179831204692286139198576321214677288848946432854179263049416750308856863160377768839914364336798175546343984256140496928547257655536833201119616022940357832137259223873784728115761036557096343693797429927217933245969944574597114761359021179721455485575380152257888868048566241765300465190719299003872551757782392394235673059973200900664049250239425679293949901132255293695077059978474379705108054106644863141750831568298338474307147682934047590991166648410361054293742943492877904259845852856449610464478423286430858025685666531380213442695127779544265932283854651602549372195308379427867323835738817456980544435938187898705916873729386475737225988168113682198625683927143139536159498191183718259749777642185287309537156438372757842547791131425165947816050584366235697151735405623345343576879265334989089167199387562749296273763894711343638115846343604700994549604740574137909250503016249941311983895857890802953373144784940392707082796115095672217649869733943171328952348039208462803734548833809025993060033880020278131988418598746246935320756039408183489334343747562182412928102504115582213302956792583020545209760785056321360766139984138265001956592592891991108613642810796650357500259027095616271884691388355463408243639311146009437581977608272537690018229058848392739341695091936577418353134700421744288348873555755060907620910468036818144079440762230417153730965423722867594953701307057431739621396492145927906145440146598814967437175794852032847031668632531902444556602680795605847528463204329550281564348073775859558623570765515067302504274921360635526881772230068635330662820825042736615667585858813699909651751074624805200741699038302556083514002883047621745771933537387524006911079274569388129578302804816430538867004962058214222655465893673263770214700967079202498997640795377543065733638664468380568004594704569187315095947015902159726813736946799583915602538395398960090555046723950168253141450268409877882640788285208271703337110162355829516593918199308911588692813769276902654800751030086453947790832625157548710207744276159659095630515599089973619684049710086352625102935817136419480454382524623695005509012307803635813372469708245428580398102421294406311763674471271695781401673545351962401981922410494348348578085024593553905804186465524085665778229402540371265531307759323340180182208066471992200382267619317062750187180771168717804642882003799136143968590622879000271984021598042477630447987415109674556138778896303322583513979506887005043951837533229608445116551854514700105291654406982546328548479375784921274321619423776219920538572620035544013590269403246338889649672315579368649140716281440153341969286975405134562649379666399172954283397885737303513308177482972103988967459474355330881977457661228866772627383313274464205768885517511073506059035763295089926320062254550304754003691797866546011403537201140433694007026660257543401170221260821176434654575653954540414129441365740781188507259410942882908227066558224580943205481239245869736448976683870534110421909233067959202151077077695144636580061739153574026273702195299855975647502804024737126932867638158560163279711504484225184423797370399127880638892465403734996700704937289815264206380076152691841860007139024956092010535084610462227370126219179013920871920338937181342063333678668282190288302069889331023850109060953508538930520571843156436063515060254410485898456063733019649744364515197454122374405080857899604185668515921907107451105023502240890126011443904634141922701443549578524775227531377670453839698843950869405292996523529257542379200228592517591316637115294280936294244992332376011395442165113784179052359543960292972153012527303078158739655880894315153300799029626545870191865163136580564475641011641570219200191103129941693977680735239062729545556901991466018467576660969478962827686733085573556209619666875507266118262336479711346853279129974685489657684113014204695792198856294041651980187865623513634290965210822896963427115783226123319564971696634209852257937398015216495551965843604423906984796794966212624260404155468045100988968765055173761933785415111090163226144073388607984769971440203787404092497243853757281915618071591419380931261560493313491166870948621688074178344292695466455014371728790480992308479621454418958419761654732533796771694612002670906435855661641263569109322988196434966274025075069856286367668589009215230415320014118518696864662992470911423362125139756478810974440207039165545332455544670380986615851539650399285162709704053459033822245171678720157834136394333143080468037776704335671818307052380461375463958966268759268789905737218782064585796002164376060858806328953904640519123538913956137981922686903833013492811869258430972286171046028874560919305757707827550620992603609273545077270631486873141666434568889782600042512948455363072297271856593105785427096646079281996218149712059669549158308489170192990769692478929119801714287600382146235322520075441858756106006138924637860763942521502324681696609638627199430893643664781890068710655284313667484827822427054601468456122852809623510039461275499801223936619021839049888478787238402948884145969273948625611682962776968249933588118586850421245347895314181426367147915397976455235646146541784774833269025516013137885394188042647367795488256602064508805158107336991998297780052665279725078460849284522558178614287025623944498686912507018886590450765369674219069414855264768317246017235444201049319690774754543473819901430206541263556008676166530076296972480028389902080556979677580258889940382915918991749549106967943983058040754172714115273743460106048448731336429078295778851935196285392827191807541797802192483574321783029865022384429054224132807520026113168810869346788888760056496209686373206721684161226328283874946289294916335561186537713328474932330906571049306044307254079040368879103702356439575620971668085627914788937981631030612707109804953334111809421419510013992103768554457767472295938911751231765994831471323470785119296130574494575322902826615967363977153076698467868134238653586070561020933520902863650040147522913313843600399609029059355466917028969016457916781923726652769351730628833285102096120304565196169404132540830697456510743279405136617427364500625677425204961682072663751756879236738105829714421288010245052648004470907998965930015966574402223163065976726204073517405474906252176569749329511950291276803875859643764801060037232124685637128097466405939981680084859646275587732072751755054694434588410873400004000398310011117531563237442041954397417293698918903752883573559245176666150653822071796467123457013119915347062312449311841242842707285335417835539953409170451499162972862135471854746601951284485603112227544023488129026890232212902071008983343807761239809373824645141597248072482283961720681816174360114921774722928411159435788429005504273903692896050371064782551143040829041605099426928078145204240615077685754800363408717854629936298936723338519438595323928823609013325968585244287381766314412409773649041095376827484558777955907348229403873795597653676308135469678450523092328955551810941772626957415841056530018397179137759020383940663616475496469152173081375444348212658045119532040806353759290278338154582732881486331976804360042143021690236828255553592399689445587624932574805200543380533892744252206658170306903190225498196887325525200923867499779850354988007686332186325063287978646766299953898476985436543964273751312889687660563925815443988982025755188474536170866690944695287484003074899744003004812491553648746096462655584177528646225869610797142957829125452621680353147521993625072916051905834887005165992569888828510766629956413326826885349745656411179317709353054633021947940847983089821384874882591185964240621429269508982703080681439888405892695196866013826716190590869953358235691145908511877079976848843435125103734417311657017969545923481135275409088975559197937909759441301661651661961281783455498438778200149294484994138908205841655676142907603824902330292370386581184243747180603263880407360581970347952396767896379387188368360373525631750238873472078968340318556699330766266300463789761913250643646374318717550265548995223222768301983226003816683815344545991076880781808779441509773725764330213901447414876170909630430926600283765597921328390844097772348044978668355304845998334362184705470784120905700290361033326871390333487359004555626294680514373958560325545232216145941858152187253401854469681559011309542208561636399450286425841192268745027222678474958715435227336803727549591436223077443541868526580449128014952443848244342744896599929441975516718877020686352211875455954282512213945818829009310386946470931922115431313809124678506983534078795989887724634272735619706748829447996664307494137864186862226941629960403689512348066361216970251056909869112477060499401481862714235389092187059192901630270652525541264913043421674503239282686659726787676429606025979283603491968377929395022086214694501811642334313526125961184874531126220186106736853735914365320205669475435421704901274367833065187909784458199175501948728149273826528629869646176600801990667115429088717241059849861672434747757076300295387556351290882644406040460451583080721913409087170914967025319809046235990919052119591128884680479889567662946163094771890149653317069412205124174344225836650742854262916348836570650743040186161985438342346341312250732693519659924246692684053090118366513999205234983707420807445335140733024396912454589577106001417291723513086038404681983258847105177512147213625428171227145220117502061814102488977130228996435413760415704381435255374466284653785691055223750581256339293803713546107102370670785812138467240220400965535606382867698025880504303135114502562599186081220932438213854197217884755383586909146981870348124869942567813434323992494786843793119053660667655722182069571558870734480542972752883266011536898454476432461523587533733927783527329435402476250299090063333883628531185406897566912935397715039779800991490675439602863045962355296262926066405672743956995463098381184130206061798532022436471461092394815112867327224827820287513474649937819427912975311487005921535044352110140592583987687535111155266615794025712963910841078483308277728280951277609510348235709793974015229880818320214296908222569112401276893904566397920785074125138522068214450254744672503212250768872618012080626707891412897000612138897987983460923575096248664368145031027854043590321129978321620125181595664031661402147449099959850573012965278587004121793013489889055228312884276299727482050089089629366972086741671195104229603487377352262104075346584524037726494495152267222220719923588598690716372667114981002622962963156359504000680958730969662111646731861709341766544508456793780412492407109858559799020880091592525323818992665078105773950311506427350867062489057924284191128650241967004047689787107573708865329571516465830451659509593831620279043303605445332856019714316055224514934685770320002582759406485644757702079368866091240469713418433738218172743903272156116649003484478007736814333910826716589111710293876771574092761369924732838835531301861357631301178440548404264763169855086419516847295678361102637211363604911213810253553074086423459621153913767796119680799973969519435914811090330433352334518986822125109884298836278536276864365748157462132125372706071934623506019273949783696836583716674690490687095962594661882476064336139413994846392898594849348068283185845948666254866224975668158428596697764949945612609688475041643889832951521389618211551810938628464442471443932030711698353020086308643001055848898251334627132817938453088335251995675685203561647549430271466506810702211511552427881627368131959432052141865624826539055567736545508179422003427546307839320191180371857938122530743745296602550337873059175332250533028811579433149868784644548627091691351791577673408786221052053296524694852654917397662001536793462963825039897539341165630924929461936266685440078388921234465484498365356033291860101656222132099892416381464598180212780934133006682651272816501718764844440715168750115961019736826801185777301447763041782736404050518587956823205443008499632750187735811882258032423370071458794650395805853170347708768130020018973263959301399356546201977165821445933909462726245540721665514491102345346036665767898823299244517142161121390092668900848416810568620271302471231981006426654409441284631165396345365762917929733325031792690650426396776732395158218831219561918718568306898826801948068477429805495454366729425943996260018418391374455667562279421412802959223806774417772661890558315855163834684626654764128194029486260782023054146164406033621971270763835656987209994175353977099744549680130266074548036943788079515026141593310121212814509077281011436251456800166704788240285310754326356794837251634976750281932250397448512565058303754564408580211932583938074304080869891885245847326516448347770821303768457665251607564635318503291874578201347329493822990919881873434279946931206382892634443125191276365444543278251162147535213188340666246394941797260854661089460741173473789014038588813806705863963267884876344685427591390230571265242587417204490453435803092867653360826812638951881705868485887708421354041394186119221904775133306474502000149194522500744551525552275758255762888237035158669762099142751545733330708308525834232028596922536609690140712128019159349539271675425131907404424463063320141299473527050744325403697863711040716206118192993448781510728604963700175848996531975040456093015766136976766451022535747247313825656352383066316637419983938932936656000514688495110225994985125530250894952270567981323051745082438315787519813733101175875270512317482089080960388325321326953647985286908877134105791991567455992319933689289897671773362693916343610791037511002830999561071955979588403679160071468818559485532409334608886302290621753514779248840982329499337092354506908347031087655234255508410763862334845543423836755523265801852531716153346370126318790730183145947504206973553519452326140993547574332783847559183264114939550317582242274815646623244060963517136461861204130036017825592764895144165233521243690279098807980489277580481333163706575130218061799886952590434873252251309058898742385836640332801790693696446386977750188347902350610169444907728196845299920578226367347328525746766729497119798757789360625667205365366295027154542777399419944008985333533907206848190582248373578424272560630598326686006249918746969759158060717278422364277924421625031898717681860464291895795113514642928020608971757823332204548535692767275094800469362040795093960404707776472613300090231887929560415293157970493606058209322080802563603806555087110668647001960116821734860056359226122339738965980314956051371984674640715594636664730022248351258749583728868255118385085399186049590317152538522897027805313312082650637411433736699630996117292743458876871264353301136391276866798555183035796575089121879975648302802405673296237301182365157417647913591194569289722845134116056731357882611139139781846957523535516874961978655795472117603002022918593762593052077620336819412734175078485389148367769257723556606682012046633813296571648316362145738196128560585442749327915533365569535347390063377267052928703471698221013003167699154368415402399978613562769764010307879223590344652101166932820076040643118120619172469238944168872593243707920448294113359662204405361907942068323784188397822949239919701626850230066234632647481025623543552299417463957003302174607877202567723752149661207720554809431267973168839554181507345594259461296161541741240890329433587247493001905461605361599075782631277702789322446153344069282324561727574240847593125631173375934375320975426301038790006253518464735997645822281551484822773264141172925886675934411131776207298980199939910692755280339217960977684532058734843124593003077183162012602963413492403771376925131026607061216106001897252852757271713831537839440444458693673321494666400866229943468674275498422778825371895090040851146127309438997463315175835672344846616655126446528760758187550517808008453953339298598805595260951482405503122728806357944115538601507397857105442035233728263539852782952787134821199137895408061625092677037297250002081628917971653406182396304299354691232534683013263716679765726279557594360382008796140985944010951206368545452256333489837944159282985144303953317823141559274016596086971473473415174936256246472023541433129867909930386185579718331270154962320776254532169485232787772255173219411398778197324117930243012620899706132734052318576478618098217334873861039714408120935936280472024750991476821248115834110580073287712321191086922384287216022751017065337950710127979251221635727047800587687764822319825514011585442654235069014760688940208183473056417481052004090169348777812800605238189100895211550036446275467013091683933180748551462473126755413305122882523130810384443160215581591518921808712101394401949280389832769394942732578661967376588550637001485167002120280326549217875285681514022159522064834193995707304528439496393070614110635194321944164543951067480352982400245641437294880399335883041853580995274085675074832804811033267872499556416416136746449764902309274355014200929059522487126412203044800607566171902240249915145381912184393415902240403437838622335832977209592944093507887287230482242279380681418954249777460906540336251945040339653159328926756418906628182933868517404003275781869442057986509333562180542211841454111993139301318777127063733910722998871151217048009819358347691282327505267714826489807059010754608364241215782494847486340419420947940841647164916993175118742675542608904473612775751293455993442094173420371623062601034051994452867655453805042621348489395343723613823896429206257572418518172698967676203067289153432345713151461769239522051187343657366706005276299253646671729525505569929832951865221472255852236107027563161614117531551812149613643190324119434068498695248134814483223481746529905909055507072688179992418317642199020759297605979245806531756372275082189194454238482819292342284403878017674406407604084644828391096489154765559141870781102160706867401515130945258696273200501765791840334833195160495689406145020638023583061836430101448208212890173492618726206668924038432197463452524079565649323858528313634315654944933498129850127852326487714401146365066631322853673061552769903744721060543621221920303114708877371468496228348742155606770961526422267151838667416736456246026303774094066720806290981986122589072726653049970677605909845936030870467369697913086751107395016622786380712850742650291158235109525328456864234100536987899335151197168458406906407097795751627786454647342401446434642612644143207660104539720028235976281580195775272127253771748539729946067714470170221116684170916329173134216385974769415552880994232337243627100891969719614325442236585895597054060421184964201720687047910602766873984306832838330611488368131493860655355206966955250159630634621421767097105030702068939605112942199970446957287325016673049071365522937984541299306344209939478483290577478415595026009773452513892900692976553605231471119137710001592827788576428707081204720512270249828977322085206657012750009099857349286100479263467816105448352304581259780587407235155895855993225620181519785211154741149347015563333107579797005978627041914416463144306511704871869599049210813519687872917941162889491025356691192218332266065302014203221540131614046191184789257318816458337630813520246242454531052908394665103062134528903136243494722041771954965109825490973183699968131047988905205831730734387018984655445321952549219926074599456368041333499082733416701104167951750171334126003001381125178842426551462045078072378182830422409761018208770835687904953511225937455268462346902124234924476077242836835626887642922528350751082272697819367642233576528917785644231394782493198425146349976520399226160488940294999068192052089633118310080015341528749218653822835782805554823353241891623007541784449267247132690511674788259685295578760715449124361545098365365450353149746969573183640801420864324985239770941167468332036729922523332909523711524329329056941450761123320732357896604377598920937885199570989380381142724102871820861707088823942043762449551631162346225524633270969319644784074753288076055848768264218245498034526345656414936874186127739842202114632950885832533684016514883396773406411550709810756148241064758787843204740725710729294331086538547767348592336809818851836460102799272413054029871301893347703219652208687266063795973070518628569685398915190417442820202524118466792511367202363302147423978845259333914149494814833341214708478448491744580968961249684771988656236634266471324130895176962455351777650436553418950329428753854768790704457411409047862795989837291262344858801581521125624701690554489544795165649865064629112706358265942418089587191032874758004061714389753036450568890648526419671360792590162078289782189158577714745571923463238536176159145586160164167323867221103597320073472571373227367952466633456008549460143334916364873035394458226649955267024841239677647163007743109361211800097660830491968065987867893417438928954317090076115609831575825253126641483226590113429998144322050462199373400832659277616775779183618993264675195489357665699481449364961647767764800049538114188993074743970738119039619294802989493812337483953573882366193787834754113720311705806068075072130425853282139392084330503929645719725209021375615065829133782579275143467817571537401685986732116564524928904673286002667921098867420009306941689945540447743927140274956164418324150017497342371461306218732572393449535867332645980597911002938047432464128599335213244440721244363846659674303164977719692162054503210710481737823062860832365037273393533867734823167432440262102417867875065443625694200996824913745126703184795424165667772311030338676823635612604635855963455133212042491533069045647002062136013049407940723060488773148902640774900724820940635527397381393336471387225580234342939780377780112124082526373345205197927552025549354419921420915642213854741431429998462157903899736307896772746658882615665220970792885618594913366689571378620131756741516742176389319557506509856370289193707570267669169126308341934075187675388900950344653360822448255976184500080570242767940304703453207163900944863291541142178487615351465793537354273209177960076550308170590922535202408528835950705157435576228620118966923468111944647968498767822367557940192527958766846169771848390289729967578375350079135077610593177007106811925884824423086876956977368176603788093144756640430479837631711973443252033483830892677621198598984441746757014950064394024975087446489352526360715424385991406995547600630310736442011527698379138684770259993732537093863900907887864686513219007421153548493162015209899391412787416547234175949313418632018352607242086185516872217522096045853711683063770973915271971512023752658094824951045596985244914704120727920050395825533444772922425760619558441418043878870287683017246402956679181315788080762778836902326423589947015468537396135563699984086081735498180263387333584709581665214999308729690768101109777113904409307165758609359308764638791538336145660204269254697888520326972840937605613698640936188993588109328278648740194411910463172470512317946034140175167537001301824998319497294524929740563457917530318396353708595404851113914548051599257442017448655561272804470770318458431293804659685447600723785830777184425537175851271456984506582292343368408642446911862108915820116565831958482675409598978514066090353683408527335430346174531123014719810572504373748665752640168438924449078910398460375277842028166789409291511743132111007526762385980650156861565805037185108105667303834706733159538183301443917940531913206903760117814986145280953565612054581356331086569631776915481710036575806365005753845003822815816142334702131415086147541016481859567048869107628150386596617571288075875335491840740339027672949894209150432790854176896157106535430511889871327545161667314947638387631385857382974636215146371008363582351871512117976121951088437298495715290731761181997859880878551050010017633569917397932108261872797445693684406379306152192269842448840455526199726561031457946741041030266844670077881234651916657903070110075631744844867390530240986407843184029053256886005664198778194867299715756376073838363535524435843190372998419139167610225330636114664416039992202488148725410115001032584524416162519125842068329495530953878681097614705690974409485204227008018188545924241857326958526651050006891938725887168635267537521820851271081160237184097325149627018159246744750129830602607779558372356271722887904417671828727554880823794900483724280815593069884339375545621888011535658030601934296178486892885204279707649009904067877133989651663275234552056919422053538204910916550157662905142805658960309010943831445928490694100786312978776594447038971570558605613236834060053923876124590226078715566531491597166038372981960746729533180014566257833947712200049861009597008413449206091755844462107391499895670129502718937285140027359180569574799640736693390314741336754255196728354433553070690377325530709205262833492866843413467778854939365348318296605475241772977538335453605849246024465350041196197627943894640655942459369303124181312875927495384759938120817236194415735425081614934683318197840461105822349497847347667226447481294837770564573936847345869765177051447454403200658450759460092748955914402624651877729285423999201608834425035217286418996611263962982080421213323004539819385686807134412774129961437866448612527847494268967266885561390592247917660081430471114564090631159455562199494107058460661122846445027589719302428845678084482978704271693732901878387577549757024049503247925232343625067819071107915398132671307999067123607547799417334763261436055437883125583675078758061380064558745420891188469928078863142940703882071107952080197524637034223514140975857723771038435682792301530319226456715675746438615816384056633100721528214609071058825234491270555217351648197800078773870184169180841389719467392442922144533180688398538020318796332768972651573308565877550469571055523057464612269832964017435404201020710012449259852903572881147191768857795200657925834812251532291200428961390114367229045880347888894752296559989600514409244010660135994664702741231488794558617021507762362457833008928260224849268827799260984908461512226631554085769585403409816161785049856983366023868207492599367916651220855642785242153575818755973701238413401738939687464527534169259988249236349647950821781473583597434655159629274620021442901055295631667320237826652437763177822816975306768854407081359398174617798622553211903832329540900868106164400955218552761899261066311480632598135047710077067188272913256200558608953359184929951219787425845180009801667934864628541261225821767299529465791118051625797538867117202244720620821520064582916928073283874436782286422395385931253866407974381500435454725123071397834773228976494942977203725434355641420917366519832779322137516036197902365695552544211584981949310835960280027787554623957812955964665525555118785801505317170240033673255997632195939632528181294562680823492498646315814065172154506403350673776758559637915441845543456873693386431277338943434699499466250847832011789663215574867607041046393425119440019776401776584750168336817063765303151138154373963820157773139843328746530067022751858331018251830513525035914629166877343578694311193610656030811206678076978783584498611673086695662717032921599705474966124575841617102420748169499768980482145166509196971749099416564269733824666182730134073633257618564951395463935982939786498504190470845261888666994465630579019582199161737337421589093822161590363017804542662574685209332429904334471513150725571434297811198715205450259818795697417103952186190055613869884805443298456673022342204677473241621694717627765574504515844191627864757763175933694464318095447126821668535060984226407974401615737401106550304664513211932914530958040092665926249381050463087143937785500777518475918721572070830454034672359759625654618804321494434452961785229436988904829171953335138608342710256858913068690366018246458962439958446073881907615877054393612141801617277199369018401250070463843864067648603131038537383595182388997216172851704805132731131219289998872641657033317419690350608217818401123291134883709618226111203885384163056061319355500235818522705150000321371520372077204200591095751765432425992601094449907624169400760332028865604304931710194335567485943064820974746575560674932248154316100127092691730053745473835341266229679610863460526859059617191942737101966605839346220791475606118111660387522812626450518411503202172238813864545536624132130884862885404140158035851052052294413995907868022744659892463707272252056439937556421083049338306141959450587046907695545747037598147128629030028498577526527155096703005365151575650095549586407186659359851563831862540813041942569683958386187684911931818818294571213684861243373980197593694913487132997767353641075278012823210685961811123025761653765221220638637631314876065728816250289366957478378148685125272335776817118833881510584504591019275493973427358953155205722759330004684860065210598416063841553440579718860269338432935760306056306368786503086471924499267759284050294543447412388008392566712219975828821634381717523003850235645210848390147007078110738512202833032925841024827506703924451924880380792486981358420497681973445863995484628321944525797352116991642691988278220637359369008513948466940138776061726709165863779910389510127611630397217512828212194738714401820703937830798963012622452625005076394110256164140171459264250884178332063883854046012144682359815803297049304172902351563651058296686481653135774708701631371501121008849824247398845042102381191041332737631953223404366062772974555366410924716129038691851840520048915766290359514560093067361077078223458734816665496941953606857055099239593994542816085666083108897119267792271234313134231312774082750907358430651321154648326755012938448960091677538277038324864397596461547273512133088491268725745010590507556637886418416343483380255267559933082354823056571615110249230386846342686925760841855501790173922506866852929659389634236097789346746503725052443618956350926288232675037246523116359720872850341468606794801820402573887747062171895572962700011075310752000493936052632996242532565046067345145897302636322089349173742220835552164411098929568673371163794119712662019174122056774736973014131917526972855300097349065481815134203436613030736229426434815606431825896607631978157900153239674064295024279334643232621602270665855029718388508388431902037408564252435587653552622758426255420475448775637348482755740580364839230411157720178469235627823172560947660120313436889298810613597563479306505176191267539403736914601716315224601937770277241263481589356571709551513925561255687917029138163965963714339697887137548275195875926610612417379219137242348623666553334061091664693258947010597758535779905977824460665156145358455184133834955430433001487105916368579589056334118607817970357196516188453463203014296827070684329189697498521520672324665592445184552092163382968347363983874850506709573662163617236246864608307192634514912971397562382936028885293701982049291191226538324689031093663217674661367697046301183603530251643517371077122323018528836461240625144611749528007138914078479865185823585881702979885090621822161196484334525406093108505532357233530210352801964120954287682286239545240084142060742469428134721287142673699549815099145636347077384414466339871384471583888722125795335737421539925171111680312127559898741638939218788225959100589224293938301518479597726280625392321868796810202896518419416510157713259321442742735966557003263660849784811350565434628711053094653181446470636123965874760347668713857813331520712949826569850894803436469642001239585716096254311054519393505186901118546440016258002707226488528920965049259051437463673292592626404277959033475589836424247325909992317427353081156327701462476343011486846904054860397353866899956696628103936111665121883975876234965639742668265633608106244956125590289860622937355822467605511958030540517213491042559405511102057900007485648846870702986970295816357653220391994867101775515563075064729558617338749163761862549344941225156147853832434451266824184469471024999585458398121998078640094396046938915060044655336006468582677678015350926974993781464724142747342740403335768591758107618740634751637579222928444431119079035838447079387338323487162954278025698264277511784573949927781962810480013146053598850045574847285298479113648573726934778484480195294376157388552239056800727404681378982055372308181654716694217347983825900223242848432423229133417406912120160204542495099596919598475406560412536914083445889095989842164122475282744873222993683065791438907156189437222927573778935637450597785478590896385228054299498923779784209760954497346520194058948274806754213237768969695234800306157967414354148128802625474655418971095492227324273543830392642755521597991950479526143520597568978330491698613093197149308001125658395734750011854092384683285851019017700235375243947366316339919860981372438340075987406323342496638235712268569890064460731219927894503666401851844253311110546585448472895562538723437796052917825377864616762630916119731751588621148091667068601023784768483981611281139824434906080275140090806831189258976922616056292775076399577680154274170853980555024735134213812307357910241982641356181306565397138655867525590428396057704795598125178911301968562941717982540594076614174307861698768268605176181602243829962717977441799870195988376882709409372657240610005567031896731494722047893173448748928850584530263879346822497014967334834125841586515471871207566362094103272577315647940325510424793150610284592631176709817277578356557076072645592625116280353909977334651236638571651835857831730530768829162289928115153140189876379691271694263404726813688725886842914486344114796247146402251483174902280332890369536934754758843611009331652970898114681407877797497250072481740984163026181663520773813622068762789032457459681636136937029915566871663949286488490896727335287503974315903888107622164392410183263330820947082623432182042836575860622738688832275820763781027598150866189320615920928774301748044165624524833764141757971019186737539110651310697325525118248965041922911655025433940568084460688469768812260947194054336526624312172834598032314814429492981785473410054612231090565955335874987908511012711703095082251717880297610535638082744889681704519416534722745864254354355172152548889980955063004264664934011247827374993305007289141832289601448088625782902397946172607657511772312571006917994448223213820600680351900470737514240028850403618297557593782847248916073058199068918671450799948088310658548083224192133810453136618760596680784234157870585403818016811841046345055720920263826640541402443827743829114370971220115512874434749632529002089461144974318188651334824768017107039786407344127213874140081245931351791703770849974509201411225596598001294337959324703020613514117985113041343666792076397472559615927853406222787767910290225173961355402431168502922824680080318750930966815247503210339355342641972989144470698500440980566043554486913552704671971059151595245022743402071350858569919296368923080843452831456106096486663433719663804936868868412458390218636985226553902136031309263596794017638729976838098150773247028278886808736428990282417580855253410723551750482862883338392582088036859131359867727327304981611709276929945364621868971168829455017324646345399447746307968205498526739199954425156923065659113006999575865719249582278828997417986312807413163539730479609592727575855069688207992562514903226029089180391528734256071872629976258036077743478360646180720664318305501283998685493288703352940026355998284238086381298962197612765723840142005182639450836555834395964682366470708906784136229948342681998873416426671061919328019275070821621423280800090605084543225593675332105151439762452447312929282945672772352672907252902647995766121705532209739517205487864733667950365068969923784254385572227617111552538933724793785256935591911705854084765664819520274532379941165283405261014850020931414372343225073386799838507446474152804983561486307554905983576024284604188908274815132417815318828687884079121422865908483747932742594226720574780416416501359322713075601874544792537404507185810525973525061465041876076113796752824650294629403123855340907556482693312887758481094086022420855009694482870717093921701613635581296763507671494009902230273258715957233082833399841327429767753563153799956135110784841449594674237191691799984215545543195568813007333731285868520172521375386103927907764016291118324472271839087537520250110470316779857232160031485866537420718329116081589304580912966558505525764750165369545620558946929077384458186135331349045554760758397882176515001022454519053202217526708486952703664474220905175696729781893437268921552563591904571858964352509482679276221254351910178426991620952486558146394579556502215949238363871224967902676705347398822189017495344925094766716046091742661851296237720923341922586003050629409415382855987553686792767576998961182467244207334685710101177724192408997902950111815024498892567919035166964769618169488415056165404324114528212544023792065258508198722787964320549020743384440381743378418680723255893439567609852810322979752068428641886393522579315563165200345521592419840851855287259286822214932950793283288665446137148497464868608465881711023502850513814076462934971913869578536987861968786806281664067426590409913496722108904919310462026818680348822981098507644155021057715232565809879823939407414113817538555239638475982576264801171106947462927012917659032336014644387714215147763220559374843568457934702157076504517522849160311639026126932675633846625019615482728597423636212835979208326013256444511807537785745800823637393664231312119086355046328516897199933369833522789405254451852494158538539970647105089033640606824572542027363935887560212543690480697709346651645733469541293388965522003521329479969213929471232411361403906744002073334888490473551391427689759303344758930038942139267666392539066206764856637528305761778558419775264764358816528682061153955109178639740823260589742324853447131868100274164396902380557383312182271472085065697244127603665091108880156300772198080360511324985708009204570191985211363373652700777989211257907520840263083034770192074364854255659805433085146539919474720211314400623948643745404699116702826244687359666030506167211533875473410776510869977205479747978603194354201041352896258821476767540280289695364600770976691371555179530323097233646795664918139041129728259776377441239361577713064471789200468777966009521936526545660177567800234632608359270284439267932926574895913926648473501692175636277652194719313670823083192125420137472135641936841710558562879383365201353105894040957180262198760166470300114998650624967445576576143802808108250610882076542739190689646807426293281540822945112852422752505523508239487506315143702839160023174926946871007930187338561817885358443094938092793885810927135820361851205600502886497824966477150400467221785834392810800797313752425039662935227111610425059867571746144512247775460312797609163425998840327161617598912700505475093968674053218195088453038760323267215708663955714850352796469441836071848696053912771746511236247413940521635641147091055469386265330089153453010944991230422242663508884997839370038348525515886117068914646488466204222595376590466463858346270684474120605701991778761876399926544548322609600047093559350167918224687919192520726691692265262139811037849625493210498787130644138712263744045890918075052178963891088600229700878182496551283699747666272296162141221912328227989230523713668895754521844218387837400770151476388058081451731893341712919204901630894478223966675331252580624646907523646279614496409364594082299454770387231494810845290720533588968107971568878317160518863299998199248664678661906176995677821959748237170610890774589769108745560800432034825613595753138743442036871343175147046602700466824032676965877587467905248609043272701709821646100848344443704232448322004331890834637697718741159483952875109876794678725089452746267067769964380117598840626734927768558394327380302346111957870580141461432949634367483478997510283269757261161414955062441249333461564966317070706176088524040583872780963343740417746968382730738035258833186503747780208829588051593828882797558748546409627393055782245426648196357244392978475817228479971664739086523497040431966277244955509329067426827494273392249541788896876836373983649051231086966848448223027600625353897761106944823011529680098516599631358605205598572100236603862011888571616677422604797307445585437208301626186438093661159904052393822407183027802311500815643121568493421135260235477811211607326578369438643309454584637858169966984450432209016955505102405188113219847943394237753729020592464660308424552716235855011714109426554998325496405118510917125157746363512565000057834103685031665045991478298369919046665493471423771004879111574336845736322108680927366183473443637294222636268337688689127735518282932176996513334957882966010577426250262413130235502765472629839915299717179427126683977024388656205280961784720509370424960335966137025572345846752021831573340563449831169033388388505841825346025414966717831945205495602101156416606466641932501032994270087935788611696996475426018651977494296228474377743933024545660991286063531163719020889647162719865388292481015112097797092698644055830502621139152314943323928463168415401611671433186027248933194755767464728063543521236195040773682548501625471205239221472391228734015446262780892898801628839170961085194390890661581206268411252637509590813312897434431466111970293293023225126064551465256912257297053648747871080703665700572010677922062858735047293008985197855550667376416165753997561802582222642475653535202810923544770404625858526433291711663689495479291591355109790937086993232816185140917905651830280046444767240655094778215667246303851140690192889312154782821893904601256984268111753573132515942381130813484793395750503668635621725061210003094238028158247311196217774931748892462948842434232800032340171937685021838447849646029902520032749503807185252157423783810728300859328986034358451050066309977391742511974204783882573862315305414267543222360879626333087424814176212804345882419526879876518702657452426080830007375890049846299099159984530920746674270135705364213672838136579158719940243077648787084768752487766132785199305919344458586312548391723532839914552022484747674661823894055448832735956839426445480199008543937925140589217522637294472987555020396883190574184401956044627689802700470294156718761990096090127727211903159587359290691059778212278700669523737339833338666623206916309981569087788140662300341764423940566184044799634207881844822562479574942602630207951791226034184641717090873512226334021249291758072412775380084697805282384346232295877105294047311831358375500740527651019043267187741261642616714133465017349475225673032463964699717678623172717827030910327954193793184439772925400890185295780489281888968977490522666948953545235716804731943882286203554160655801714184678641683689999766526969737849998520159072372604480173419655612858676937711108228134488529728170474427970751606344820173954908618584978348051822195672660870615951090733194366428094756189221194305007252473447105660492960133414378770535548347011418666052818201227347730918220022144100314252500480112666953637014684352292709103542521593661658752901155644419159843496724932178027092344846691418274658854579768711761720146993379687465303659757050575757653846886191069845324428103876714849514146123940984469259435158065867855956989200022940758358145783810323280913947954136291539596992915016517389342180938634481410576724669030021778992993887804003502235317464792090505564616105740343463218070303977290964869934207030376816577407511366807127281973572763621548115676906762753383003568291392905782100308293265914218769032815558232767743897345322832170768856966660068602916110499479734951976128381165747881677088452617218360237711457159213023036804852365268184368589031186099531029551024664659189173220426043261055040446547975980143904723833497379358012909370028245078542396410646826033762214650985102635831175555495538009720226573677962991961150465712072362630577415913201886724184373818145434192703965578905829211442955915818688157844273785167438590071887997374497695896345175686074153245958647745107161862261397895056189372181084910140110414121126743494590845951331510443214923626556431676187703217887397050786147091622502265650192723913460916840448797694969972421379913738624952346215808737179546307995356366556637387006738254015078064991994948435256954954488069041759472230040858454356025614534676792546497511619462039455822021396362706566833597955255507645628093749305352314594353099027118138498114696243836610283944520665037408711214163651754236337796079636721897810054430017080848656820799746790793171131971733676924252691606062820230506299933591195466911245208204235054910515046532823681371571620211641926355155404742813185694381224516860594731461203945925451821192004572132892018872978027676650177397047382371995819032960776779615383551124979597141326613669698949011586272912540231000166503096564394063746742726068880313985472910390276306792864443748811688483510831628210059624573481272390410116401553667382863042304600199959630738679926115271454826841248378182035413009098507059310559893397136502828941530474633053544810146610872366152404096476134128498616511845773927507996864119634709774922877421808256500679509855669134348985110851918858437103793825296248678126573930267237848244822712375900267894323110913567006113749991784630793354501208768065691164720975590323039073252921398729421899925131735847268628111484714050922942025984218220703789774726875131313142810703429841865183111056887461475913644782772745550835134864663676184306388574251215815750922855781809899100601110009103359765780978369089788122371295638162698846023401773690316885458502480993120699653432954625617609233566437614171126047720224634064541289751868842878678994064761526400971096161053330124989673366884614984873060088398317796761915258000934313555199813756620733315041459079482189770051659940029055929968145283816692251001816273692262948008403967450641454535379256386366120375519028776250426770737852752666787805156356476866710717905851453801039990132312192225571524657995660568714490518546444041802075341519316007162759556101859679037293856906718557069185374743046708517806910855735042683991170435879843912796419601483763785083702562538602702074829052850949646257297390832821512419314064043953578144299908375754610674037802829032274083362821795938436042638685693743881303111448713869436542183620131748955575279058686079378681747735773635274400065786790572868805846517948881349083824597020718592322896976370150130356200564134043043411502660746623539898565037946940274519543258699091818877080957698320556537064496096916688118076423444435562713070124187955639934231883790553452314984866700130651200255456606585850217674599252827584766969372305870778209898033335655519869732211198824239926966292640624548831406817810932370521028116747427073496935584836049907290531821371011039526890993148720043818038324661058127084135182266012060146577847104304961006053615020100352274738473567451188725375096229822194287202459843395986581227064286788327232771702905604007320725522552275583888842738172128388036018536233541770427645642754186813816751897784477111126649334624739966374485701451708715803908717748362426471798714092401550661100311529908816903839519852314626380723238667699157971974461367986059551711091187516072005332604661377767336523556393416413607082263759695933086011546730918489838737302685788786658682443042031853840503382074975046683322457567578244767698022541549035941689894185152196741757099179610870447660097843190513963182807860239455303006997701665101895122502493244876780672013049403824231262941210727393770954202505069385047769184569082534607948537472704343710493305050956026341800252303710368281041973074712494557642904156480937922427190266970815068133294541446714982900763826559473183288375699370670680993517733088105704342153296276516146261998042912041377453429275777935059136759363100135825430256618941820366982624350152029167034897260300868197949936295249895782329702462638667280937759203176204767522073978905740961359309199862192310771130353144427242207159176453781714124816928591146042272329371670465918053645816468562943132116281223608379422054610787397600058325794169106952052045380958073549627850302226688925641966705622021145193550358636452576183399846665803243214957119024492605026738049720891600767657626974737266981087304699995596416085156657878617436813722295047588805434977087262429115775267615876237743596193252316921257570732919449060133140374598723617737145212378550833755714469268688897283072808274031731818390327838822818570366321583943563678216159746057626310807145458390296656373728863692603682983785441509320615217579967517874197059773531629903602300522012723065913200510309636902837407163475701177155089410786915736759537680908557780423685573368388056238922463956420794907830064709721658992094303317781183393631504507871601199526358770840235746761682282404556292671988281554538130791110236875930274290449682347754041808486895535575347219714882858212114352408237606444016180076722466200100693765856172717400358681496330431932035617496314378175507063878036763035268261894592667875581596694432183195008637613415898368834631169960097055717317135702561251929864413346119235799465395165025896987700959572568369945584798880531160878623051621973023372484209031655306416732797081930534644164760247833734938437521832774538012247572473211385011324917394831368882257887886082160003460352839216554431757846164512131038690913297372907913694904012136681410493950101896555535320936091936567786099010501353314621158207275898112163516000193704726377901207043527959066511872969705176112087738408024226673259719320089682869135923873090196923366349737210548180378612384850316541766018095938774554495189179593418793601686240112760295700764394693303459223962966596811315715427041261642897994797628922921050221583131629414408099808692819206555953744498112506735385113169391191521919081492237636696803526856443841105692837032919768013020826318317364112211171073212083746707748453267348946384459700226978492208333742673974953326583870769731788255719067993325800448018660762286533738410757282779741701218870382301666861020442368576658086191440347724899716475380055368730173982144330054633877135662500810264278811827707412030401844523839813890846411474284736057646217691872526073941612378183146996204608495627716725799409478897110630110678009053806236391034714561282143515583366253565156410721294205302007636303252335727209930073549876539796816029749380510180234036914906955700556477526938849537032808237479924435256375608825048846108633437738563629274093129793053749722489767533452897993312338635440870047493074328429602241197696146665247438315754079499576028139993161570622552085109256442298359785742683566941127145314457345751554801820644484255129953298663913503608767030249535477331041997158944928573847784912847208243266414396199920859797122642181078573182703423895499423039569505469916016609864309646572831456174436278412073638920513862876088656678017314539187038707413178136755321707317118471842744684931733944535923317607073513397014504323818470172057731733587057589266586960363681591497216973803960170747582329035556823422069327668968700996496796947282076451733621354560430191479780409029096323238100612366501317605601098935684058452775997959333023704462140509922640464443295617389112352111201352524700189880284469498957919709344691563652551971576285742372655250041308821830007827404267433750365067656584799782532828628981987767008656028206774931954208463806266932912948722598551004176609052689477104615723667705394441765814468898141902263722531431064821366308681477106770485106367929069900896701609480126132171425282484907702793736845552993176314940754507608059786620077435306332508716331568473348900933729533383232469328582550843726035622388990040051592769474291317303893928137475566202674408133806890495260152880755749129477112751739052774174596280648034305124149151992557866790363459004448240483124251906066332546236262498958088066775477479200699090637683373025230708381692299944453596156954655782418701697809049532733517236035942841137599873953581881394415696030678386976132971619521529105413483103823672902265221825519483204767669961239253825225402411747309073278634437470301986520323866830619734173857411262173691530612781830304230659845118503632985120130568993799149126656259571616371848669247421984693848691912869519015043560849583085390120860184146695554623290020037408598285748072851084350353185827511380919123899388846891448801072151495086252684514354935320516128937658948793403054532140143383249799421969988935828911787423096167485861831865199760967015392550171361765512972879542871511269843207395053107118099607212485544635704232196582046162063414019548505995857512087478922657087738824276387141092127172667880771982783562599135947097851057287470007132824156513266021885599509544502990809919255915123139516757939718715165468019440535083212944853934534815819154099588166709947884432467326645170158294662108451988952846204940732747419258145673736291971191915913945148795967946857605354650507496702259198013695617523248317431040728916948682092309558010669952606969387902811389338707908228007384182137200956175525572237929196718609071339912766839743673539759388350818027622241619683324076579937079924119621737915516513045488789439341428091770767019130228002012512098577337294970863275226248927769753201049760215610679116571998566169073112726513393000980958958926100858599327273919530815003347730392578101029587320315042267104527505428204388115680821462329081396511616273832808469468955122204012319659987995126919410649188236943155248722974876807361210431561088061260746063272494400454919232368365918957856996454584104111723239153184561108393996667668130287317838923893653259972091067274336587609177945085853408281819589812215706902318367352616636320113691088033614277256648944561781260616122426469651944649184841506372665939740354199966627309960501564022301206277196617071590493609810011623877049720334761980204367997018356760890798323464066866207339620882414173877295593836864636725067025479067094167030799133711616607160682302445635190313087853144631973570116533641651816353417783227980864106668146138882331204166619599089303368987833714969032412422290489419044782662228368094417098918347826658001402683677408418011565819363846725601020486722673272304925722057353277348955898619105423181898931973446759664795213214227451717379843262882403421102530590903275598211285903817405950551944775218353267709812960525659338564155033829553379426377309747820733241242647046380976733358566646485751640194134114385398544977785938884935018307281342633338345913543393627832110060253340222826333591623330062164753056531170463289204150958431893092428158807037889938763381735940065144753340683335440737448412427304111656657137849948244320973183890846714293677118640434250957718352983120236322080855545311706222878898188319924126555978618076790391339479841571839630244608644884977572304497928189746565512779425893652006923650292960079517947579482552986871184676391987969555569796606126011790733256772529566381814942479810986520786879947223730574065984241449128098273981973103519742442030683640704688338375240702192031767980429335490958550300257317075593265271952835132410155886258411849455320537872351590952880165310478083107430071127773502803089096058622425135711646826013249458360963007470080047394399440079294263356481042560790300554320190440086043664137196738989353883165524032930722241578830188074091099687155432420256729948363428497998687134042056349542182295009173298720750531245620044724225832616917168499305490710173048804731532485257082115526126673250960462369619057783947741152073404663544161287413890287085333199523884989911891250640874840772346574805641712321137982424941391332644263499208431753805064768361358743186939184137853412079417840271445158433029788137156881045190406933287084046116449995301488429938039226083407800119636747722966076853343549917573016439585160588544818039101042184751393556906568816234949679216230478026158405578983451318515806564913775800230496257057359710007560644689701813317486125452350706735326715449035133884171316964702901132647155865055715226235090299400592414461693643691174157556235528874956189484007174020803034069732361134454430454459780421450236095606842474961535878383312565575406140570347544473670735481867266927954245490656913699389245359827886798813707211585942542440552053458562105148143029184576451895949575507952900703703557786147112767336766102398474861135070595267600888738911280164909273734313441598084827879041685745686166614584638468630070953827235599216162416923782345949686382588514766910203906678058314823402522627156907407228048510790440813901715323272674164197769534561683016707646334942522813105006214971967765770665177816670128561561769724642559020923048355422227338162644256503299983816673543139262696131791133276513241816204947749229407932935255618818506924745763827103195566371844969867218975897721929852742134513211704704046275944315087933732737059606677986221488371657464854705729121183904029043894299855408763845941925534262195488865042253839884919189555546438084957320027729865578987055250233141729960927087700885331879632813358676863528295184289551206083022868365929798341059679968146922758765581805946859394147437443011835901065032618205307324473400682933515733171815929972769207555986266332335915866613711098342167198890438652780059422955367344462012532640830047818674270940254602402770348946158033261426982442112757426961963195929833677493651283092554298901220603691018413333756838589462157597718069374702988072152079197489064509403371074705223098876925576699046124213411887584665919558471471802546663864213081797225663566000833833567671825812972097967482206104921207168243728003482120198741342345946855697086179888655591520281933482743569700282693413625052550129338626276751318289868767493709789659223459498340334107454139526734005304228180742614281980790474258730147598586247949098554704587240536486605477116839203839729625291261023765242761711777829833394432262969663038924574184415022569638777767443969254136751834979209829939217013064583374045811987278420424250554920442671431322883788029068874304287730915330098718644454419967921985765649930405246048483849975176741613484450411193998432542341145884819296566520054069993677674592079294701746372951481393417256188663387253032322152250863344236760484548226634393082516450766676749966861527204485458101734877143606470887831955997629586802427355677871796904680206187589232817427687330199505568957151546311041330320201043946619582277073078628388453570616582495418499503403207723650217294372527935110763805624526375314708546612406190853624130005998706505948975446419937120085532168833466342317816140420152988577586378161649428461486872861649578536013816397717596661277585714996421817021076066996239804697999472113288428436965927003040143602243263321863404721587923817847294173084354197632954476977922345018468694527306493606015898296188667952945790113675291914069786801388383934777228754425004678406210615343417509607166431619446360995363626475274161431020392227106078344991503599762119182889332794078001278119972513804113793611256564587083692603651266690546084013361923443483087714702644250129809659184857107064577804766344150400014198835995529507373321265388284118631735503594895983269513134087471704051692345485832161096378366218800507912793070063713549259511172363522065501537955045576350380886575408341061845661771511833720273457825215480223951796535681541985077193031067495830732206922999428170540536701932142000653513862835665112379030104995276670216949667264987784776858229269847841535346979588434304628942346147220113723005247184752881002079709754703636597701560538943056431245176459965743855357866713022376798874502640627530312634401536915495084040066768220890704142538816449431124452685572312340701100994270999247088977391063283478835182768021399357622977134533190880115552382837906734396707447720452141790575752471620451241623844167732728500134093534522214581425107689663625249872775900524916126289132728145430800518348144117463152943250528272754079101919589043054601653968768106287757793809845344395008637630849863915827429419144584478916791431265293951859075711941315390368714655782718100375816564075526580005494608099360600124167989608086490061219819378893034511682481509887865926021503755947334738772414213301550723054463207818980111891142033603390336901764915873151714950095858600340325168367376923359025869056526878709020592977115458025032382582985522808411080628901255759886842852065350348204731171339440849239633187250046778314584765677397030262418584522979701217929229232103503216273770689275007234190507110561548971175929273768851042019983359932000996360971789385562990219164142335508420769060514039578399474187596978280083782410034649444047509275574638827093177480191786412394013851513445123456031267600038167552938268880828799969243329421874735924971940504723021880809356798173252076735813322625791559935897242089793205002139159747625502217392745403908864908978165618246476993455734158023058327302451807038990054928251862930366198862542324547849763273508695096949424903344980765329887933395029072402635617846112413287886076072264989672154559584940291743384833416975109718309103300208231242620598109295912596930396129628778449023957171019623051126217126587454649795176993758733154885270886444693565875766299140210201008538812948612702584650482012476304180221583499591036656475146038964270929378968724853550759617278511304916079008347078116932150098578506705459620511657949954766341219049107843780390899122612033777961223448001028729757026442255245661144554773146998400743895585198457609226522602896528659106987765122130896869514169956656852287895130651801966411045908398750160705608273596109862290172758946969628426772422675000178797467654920327396970915300192057185392802632194001764461417780791983008574355781479187625375991089194941512927083808257278236397177149622639561139854313771870226013513709900290233067463571374621744955379695921982004763497849241331719030377891047230635198743503718478709341782229277068375645938638329342967983966454224520619907350975594136456172308746876251971016822296283113244529780844699463420765195924487883213747905445745982915410051555111248968503715561329659840164989158106680569219201760079146375168600918287780705007918477729532170661663357215063363055708035932038240155859473749572308993001538705596023556741727628413165387727474867860761392567925062738395324051605718128570059526139708625703342117001752155779286180220457232211553440260940262086616543892888491260721901992340646313138213975762776270943047533318357870309082752584238662798865523519056595128501556847109680792531636616661179566123244475083441429742187113702422356558240544259546084113208097585589019989003964474410993442012239110586418290171947402475313960270842126664697056813424827517171580439912595428695205170065662809938955632951628803522819988900946403506462222465124105802379057178007930551299543249907429227651850004275968227446756612213536829597854193938459277413215734222903341490434160288328814892811070068469457454944976362510092732125063677876457824639177960455588895874868901971654536464673103994105611963362445531496270490228829612016442670348891964900237170236203822683216454097793990467960729739779216613402752114003899427370919599314273856326660093766771419627785344298649229047822410086930302772431503070273112993708391380793827809517569188587740650847240688620789182591034869506793639555009761221876715090196443009886297934210421833664207281909488295070076937292419919368105707170710019310551415969707701017444974310898598409265706381582569171440387594144759560530116822607096005515508529817376680103785279183135617761748130785596658420696467625922630705670846440496102794648974615329789993246446691161126330138133215895925315233800264636029485089326613001128397496671368295745124765964694249260114180617546397816937112946618562122476999941199173775456749897646556886282269121439102625434735736553428452345877923124260090657721478582792458843265587518751207384360937568550715547067345147118896743557518664879622631460384171008602495675625061396317419830750966373789937288682307148726668936547876390101958263916055240595239569516654435124300195886031246237335605650127994621015494327254823874029135391918663091231916037020077736397590348753641738763401481293339817837931712480618758585658317776252276236994776154051126556071389544720999026771515530249360374867218651029290765879578256244721749916552034426714704675698482893126826111379763788254638285453957306383764845763218487762356616968567216810088479410472853180617398835618694624188907702175756344464914164727380077345205527939865880388993209727700925286925952187017890640273822233824038327624922970303150388033996024071221401215650801307549703505042030560641339131108110462340626362258254586573602877138902468007313151068397422544609550476527819021643139535451784207878825560728679595860719057632464721234947025537489056099762729988359123217991672036591969849968916970839928676177660951161063581127071945407693722005995894984506645236645732861184094581712252097383955113426130210222329153520049072162245491989788239815737847359670443688702062420599835783737929942820238863723464312107454843817611453824355382923766972169157228595653300666249565254697586003067879604811494574082497515166246710564968924394799717159381625678729377205504350674332589383624221657225737016277266226995604313379244801447587531321744108134038928103822864652138893149609947687262515786647394586654649217471024866626555242709869542547232961488257389387179010000767784753544136142405695509459384663567798834435137551098949001341631218963294958158894380335385520193052522626511512789626545270835013648645261391389231294001187477631150444411470262077052261004765568025519652643215279888449390160938814372465151402931484103295641731373645233408263203801768008649913320070026175161595360998399942898242135008021266344181811482323108878112828946472203879274455542792944872021054516986879937707607134498570752898442337049083177954175887716387718653209408124717142045462923976624173021335232425905386434306302497550103029704368102826871280902000756317601113156600670277120379935435573736817947935209029174045173145179246678925011307089370070989248598557957639438333419441361257944060993332575861638439341020544780440324449934678725954500506752604504495633721020795417482255194745369054686864559104163829717160489043753298207622669641763936285851847272966396079975573113159011856028312984271132595952838502551951851216753329515382058958459838169055497044760518917603789017957596405249601275344104497498114810424038090253677900032055310798488020885447720949805445087114915920368502534472107057245335256667717976486308663355516549605916903252690131325334200980376801847701487054648361593899636512786933736338832563120519361469911997149502659380728273720576306531071199741354234637348037430904090157604860098556977732157747122617330052059072224232078541938288330558743974910228481848454726910292140811146171572469111761881749764446521124723454386250879145239334072750443383068643526447966273798835619961674745942948185393553093499355306249247088591542940245615562082108992624555223702751153059052157792004431461606480490413418246674451211685512862069955834292464273501140034816099356757875327617229124805062440130186806692518061430911395428371370813432230281271423002025066607954740471391196030646196636308353300271317549340418620998912766089085406170565286098306648953762908649966259278580149876645087881789505733397375378209014718208817315900167474137633007397011774196034362554088268890215161994834428829912727871492006440874632175547303153366265871904220786799784229358303902544395576090770697080214110327704925917190616784060190116733073276761943710046604474290699491218944588051712148562242775905393959451897179922623143881881359435955127954709575206364454612871306116282557340279962949248779413056453904480443827922569754542332876252687661831117924337836785077230861554071084547106062999967766324821202715013714106758447222250534024908377640724833100754747566924671192870512694252447250285415723438349265190617909521359137624904462486235391639640442736269361356874427253975295155826552936007966687658281939855097367086845459926190140178657850379642053987440546834135287441755699800134773909344217801472815779972856250567604195403827557910445419126729987771168515315466667529999296668170380344613786143228344302017493394256066830217030975405006444234218730196461191226004490728006941135207092299848492423921302035093389817874403886178405532551729473509783950690834832424268414641409817277866276737912465778280720919918533928882407675348153909263242792976392828907566859447898492463830213313035247977265617708156455974574580948826034301024300147575739005942685917097131901980055896025041904998194232172340426629866288829577056651305934149105343267261729734584151864696210688591555457068763210751934819798882251430275606149850254154645552979897066568361779495665803659320090499980473652788807508617360298257030091635234085224794438795770908348466154151851729888210529680916751977668043126976853644907993532799487374538686214654238806334765607773953315327721358972696375966313343156104950581023185916265977182671236932892181149985007360833203988448341619834349594506474199281711105664628841262089912661695745859104736723272140796007036073671829412604499450846323227706185565866053496356156937798170134788290384926909981473698398450054600697448238814121324809177890994407177932732525741471277317081919059830286637408083054853089511232538609691702919558476866805792307604880016959072471735534335802379036335599378975563647727077592157601544969149748604030578807515333647937020337630958513209124093421439658197802382337799486554532420694906239432206678339938669436338671021464555178002813537454847434870730530072578863305112269232397838300426854807383226343690330811128683688669215087997320177256291901786310494226672709752425657300931031753358968129195769028335873494174213991118489027044830760326255577994541163551994366436718221167732600285647263784522602711130777887893334846624195538354725426177060017946246537714663276896620692488092561079184447023289711670854565522243423997890410940906930709581962077299290451170834041301728164271074724693855925192601966533727491229112244931846228945436601288593315354635077217833067385986060577077860057513777332248755948835829691895931264917857710759611700910266121505293366280986305527902844589336014315350011079274068364234845378667155913498097503307221790655221840613080614022614545059922573138526782176186248053179799462884777646276005170405848336146945225489055286868533464284963874336260741037017810075162428390334274482147027830644425550958150462675090542749334082077821275038093050094135666178452202155796031386112853383825720725277640052438442104938523847108778079505129224250207201163735809359993913430743778428183382773229312340061056879296890745590753959275765907474279121372677981590941635684518937385392657152676115807003198868367033975539502891736788144758702025743267675499773295685249105032245232887385785434674513354151429764556692626288570346496108943692986323375693375874806536936148716302128226710110688753395621934170249071454711512909131846015083345825274307275780952727373324552278547069632519574186479987954730394546956714878235690057872427553061174575988437969794956710242261474083604445663542260628355328231970755272914919354151224618514385104527151433637404217889483094002058130797241279359218414847281253310543701027801018417431156088523432328180287846774857062476082842044823230666091937334304963262962470479277172214288902684786757968214381580809218023214395577910299575700588856431587374489066861728377696392070166416408779659891395637953260891102077569729885410306264660918410875570220994556814148963070727351483864200364089277848023574187731171684604809217487366210854968511600308471034352754394213018755213232728312267236761896071536042762825698896828363989857391636563215350175397471063205032763084233509750592436475076595172376490455910954933523889243960284023735553715893383731691805724263580978361557284251145104538678577546101437667132255875731472314239875348448897716188755778692349909119582001006558121239401897865015968648554930334636210958445478888837848625457264277559064010745873911655001917047301764994860967618219992804243189688709513123434804171387830314279826649031431869890127750448721406844503183423706334624213570988924586868090474542030990048226276815063686629216113534811812323440226328659132452067981715610706068825120851339400279009191837508696866623006861275582989673935934676445332145939043445602844958286891086027275916003045650213404426907622406598042229481494513211497424741461742221954370900180475064632880282089437314158188390756601236537885582132497985264453100873228116237843388642682129252766173628810366070615522465169707741852809444002576284020949424455852801613654469109450597889939789473049603484450667421646499256572543459133895963633022284085935811604896734715496905481814732502451710832021465701216525531761079149622173517721330297840527005422750741752165838215389659842263219018990060731678321085363857070656867723883520540721696658712316599756059848751070430555361258260979272235400458023479316926499632894879305195261495370443721791348042254131364576767288395933586861951747447571698545539955570113284278862120685032363602119777899625601919956997000726342858158519413243376947979247222114415954108323944515224577078890177201659393666469183372669289642128079833111230975601533789861923287375869357323976684294360151796104583158924610613515035360836526371254635730573832665320094665474244317576192012599603296665430147213242446260149176867904298822490288104786120895747747285369277291414479929264279211362876668171595799092854923282536313073412800018130136311625378587546240093891849605914868580260237872672654876473443806141206664888511395373018486506209482269660146765354595748000727822185717782048255023720295984686211383207684742845631937642824261321224350906276265171088422413472336021655043382362030958337620077457201430798946983318145977000557100709775629135680259636158294911415409977630159487631458208049588891988138919103888801472857855542829331133359401733223421611028085409715526005947306022527744430246115237091967357669748441932384968916892125075380989989752743062694845349489215343508129563391534433146577705354361160793738644807735481877817824656999911331771800409443918577707723192374367225769575046459051654726281437397139062146967446178450953581903529021552645991695080866803942511922896967982479478835453776371317515457732825760114076633708114418600692897141262156104124614803951393423897888373725719930333836193391240280273445085215054541322489962949746072035217295521655291778451562126561093323120878976646003519471730308529227572743374297184596878466312556585342207963916516881878632814440009570218218657791922459512958763637524842629784804852823616134977868030346199314628318003333392266146763357441239650145803160172972072694039811854117740326046748612246170213226218747370830834825579981685279976842029893205297116433183926547212738940960074351449549261709197016670305212466621540160039838498520857524983973713347252220008021553622271799090548859492927688250289807682127118637953494817230838328059320295098358816766296707831432198647051661249990735204436126642320867359248306477542307022373443793669699703259181684153553084585408090558525499427919496387143011875242261489679116248044895035345702824853182324039808313494727525899411825957086561278290447199372217101975736012220435952722429060508510219443868588193503365640093867180565021104861669794143993734710661529148769836250956724890590180968148070559679737964785934848435122028183708123222091043264358658268420913049992840672012681868992906131147787281813805890570507742687576680944579199746762630878770923368144218094682522648975148346014758873662897741486604452863681171301794074999728010282221153417502828646291184294261540223386512244840317657304320546626066684662438243052204865583696604744838728223966331160146630161920396443744218314881547617551186837261980521851198666862401139189558322035031845609101705144738478251923195072634167010537712643571108753691288731974149363597406938635763276415247619470737879215944278735975151665439161931488165154511918733921929005036635842234374859282649362093462983446736761203251771009167578577078678288236982631820522037946922144549595717806461561377667216189491738914375497596405158347117697262878376588527500805879464417481830098331437047853335646025607455523737267058335179825090008337642065023710392304168460075856968623238471897707579352526139000419287444419042080491327766348651415817477118209059896640740339458609872454762332271025584522871410350550144079360629733974324220736699122077958652760548576191892028526619667749539612823666272743079544858739753795013567512974204250950876503310398879442560369969046913725353208983361737237670053449650654629709852930591307428205430956577803642607075607312512332356422014077535110488825797306842099219065368278200910065676545113931829385970482127013166845030987311755444217438211532078205980712834215914409621966868741341213727453689158071343535922680169925837983044039371873250469756167704359321096646972490049054845549617589464330348633037220582406305823423490405136122317489333623444315033718604421026494081184412386830338910128082395237166539680087109364573198446218632248085499859516355849012180022133796431762308580337876671396851344881188174345373147520685762268945653715321553484043440395104262462437555791041393688036093176565057659443474432880533664158359279730672802865461008333932459978428332405472852679846880983900538708078752898305584987579558988657022700094826389693039858794617749881090341306918581132356538800441870360852621483388714190323347002118656539191135720069473486088681073210590821090847569730920285734322985444164312922048993792061523033802029516059280300411010267189735590175935974580207467329131093579434759559706294503753840663592002940318600596157073783132667392825858999417550343039172113600758335664740727278163663032577767541447705293633982130544640234384264268860426913606958296791801252453899231865589409050466548830166044659935203884318195010849775886711822071519904189070568527074094200268348547310772785346392446654334234299090911997652105729131849964900238123283561450298766478554452168909953940842601468426018562600320462075275534867745189563451824019703174986342501735209364382858063824489949121199588356523232417714834466078233675392636055158333798436787903543018939008712752864257841858331599867196102397461321335946118871303289313127077556501553260906790362720226176566690572365032912446217707182276365200482703276626303017276362175058563759579753753857322860159647147132266234919600385067305184041148883194641571800099140074524431580294709345266418340495542783628312415625733286915366946262425846756589804286477923070490681875342350272426120234683916159153331090378252654931520091134607576490471865747074471992360699590714230624740518827701912163349281987569148650600334825050731029913158657393147378624522586047272367620428922862635047426957854935489771569751336936278460888532864139436400381439344276693860474249501110606110435353505070067827559579943449937184997918463722290473167858756438105442453776043357352141480792089140200368291909689593469849085994708978273910427099262152198237354338287210836332889674201152921703937022889209560324375159672611788344057608847827933961506033613931807760971496817997480558558143296102558063062348818564379813079643446747487538515560727310939682609282887593789224076439949414152969602766032600105206435028946383710492053699618161200830021835812991186989541747601885918244638123880369269822339022963544039581609868459529984986715896827951515647690235826086722491283768443649764708219435504344701038071588810494433144066264988307138485563319978421701144131733077429546235151139017999834783210917928868987631890862023455031453946253702477837889060257334615272721313093987303124969154256111648682076774559497812281739447938445727697881975471939000270916016030693283677170987601691815069200010750544207907456121908297093560893181753909189625783126499303547541934214443487017085765973891646420078008918179233844603047736060685390417862533525411326118375577478053804931279899730878278281811848478326197973479286211375603665425983985189917017096971212658191267646978561042347746917181415222371319069357486837041767372534347028745553223715610740024462754625520313371428166076020643753820859163057249254268747447254821456893674737733206148718967355323544490957674254696426060433576057562668427975348353454608563554456549530992622775986563581216993857762150196024114223513275620787289327493946187646950885348265449020931586178863003582765657331650690652784512277570993371412633436488199703577882371687382465420458781801501801528028200307522927702392471881335532676640580346451092576602503027509623637799555273925139155479065737578680639601224027046996283052040760450199708241703101481666178265176951447196653126779124071692284301796194689929103548855131307679005199535567894001486871257891437444214739416702011053682684677036349046351632902535189261039734533800173082200206023813918289378480798582755385215637264227763047141430556855386061660066370969838723270213782437417213662522933281350423937743492101934055119224512964156953626020906355473353323501455839832887858460803613683305198327695764650559610019747119840529313425934677818916042730873784299825475495720974707960977262226155158719842387771287650301544822261658439014452713723688564505989729830734561712282915904380552491621492200280982985186408490135975315974650310749177664368632312592006936040438323520824523803513426580875143963990556331440532545992321883663398717539582238672997000731906372140629112933797942127091075923537503969949125090522992781495756293035846642183734428175935790571462483954836798037421139811226063887548914298037505270943775755405593019530996901439582234756252711553139976541132887508872400822145708210779304825047919152461881029966445415375610581354132386849731689246607605504223170782341995979857248326592588240918530051140718972037809921122415957856360502900803392318877442095027324284861606825135445179304201180651063967998736603451767435282972161227478696568825496142951886020714562178068028964607589951449577941211484184733207740989431885990647454626710585042226228450461724036521768424719519963327269996816855182241022098114433277672274873277075078453060093813045290790626222878534518887883474140082485767201923372021890735075708905038603023082305621693704070113640034779188325142655793667210016604133518263884191210167118014468714639495434534699995907898768019349381211601592154775721690864599165904811008130668032405177384788720311756454975714990411020912499385434786410570128192096959761818991368041678075151629582819168010411396775790858205579164979164133764519460320528852571966251700499496461783371945838143465571685118456387948276340664386196648250152202485906953812769207738006829506353204300571899342542070941798969264467388221866813340501347774882257295436897812746173656878918737138740377343777118327383867723304002427535988869630806879446966493782038095292932658534006738855109625969369163885347690272859557892875324150482491250006703328334730972200988515864128333565423396815897885424329043761387177933040897574144244758500176268261192329973648075637464141847413353478526388525059251756161002533026995937843769139185604858674946456808127755253687363913957373539022256427040875956846441958593216434140568536079278266220410823855059514391753015759583075049099142487695798713492636182858678456247195357582617816836536583285458570713012496982222746804656273071070553170946739094631651715392486378496236626841461748278041561641438982581597195183488136727516174757988657452804212042120407151087096004857967814245441323082707565811655878819517099863367309319984262296273927462373914312722082529638821865971113525517279842820181540068015016772042059295244147827711268606445841665998913110038286957472172779563530525940129522825812193122550999338123699189722827505675390964423311458472425538823336922103264677530957572358180188103889317374010435628167033036473481953338618770962316189135475071820622790648846137449121758399133082714778360559545743254003282901685478330556074815037867902515374681987926502148384655538316537965105824218997817212857111517435309759188826898818525751289259363655279226438436093282526229581560339175917038476878275281475138467735612848319785363164304392990553929854149462211407856996734309113112725203799708640876438076884105011506650343543185258314014180680884514848949092582504300104219928953754325228259508981918258725428098484390596386946263405993137807516027527817391781604294305860017213168421706547978571692321037470673324671681046797760517169679541697235450755199540229584410544934787494331816158678881091294931801439361010319460542585520817638497672010080036220715147937217052328803208426566418118727571229651593345908482341353977935617314812853580017926942613881121597394492607543382854842942840160947220870920030806435649071595195145593460576821382399274881971477654243655742016610595253427226115399733071909379570527145503511540065600081122480734024480994430968406818041292975406996905721185547791115636807628026584933186105750865778190015706360165821731021821366628750515242450826920696522293428168505082297339956846529998127294334836580241067409293444836775789922186711245759734475311260525465488469262161393285411661570580846068489086698321390233823637318196140358264063409376542302395762987165233074572526321650269139892657136081253149532792967457519439542954508266359450937640334582237834072418330052214092862633424525234164514322143359727178040437712461834221640784255946339214539429272413471425454588338548241076771896091359830501053779066452816890474946779566390481581726265313251669408466566760700991824745681147579522040671319930742686868073504832098160671062217595762417561150116240609172352445913766153505471820972861317258503371900519108577365554180433892875934292836991346141309353269982780274877978351186149831289335903820783375720883620086207184115792650636855907561814053920548042193603787317498611617635302934002443319360831509453893625576417219745486420278331811501923066955663690123710556732898146418825839621224842556638683159257224156444648995571938712869217910001344115878492922567722485251943679158134551975345247877034726646227388805563164635549107542678454141510168217840811570341530811824763593052647471312042261483082233567835773882521984415062806014103457143195643342686188542867289900461462705866146813372884118706998924348621138302876083582514478281523824261302648812707560020259441520853336912380048881444173924793873778192514578596582683557548673826076491502814363366930449217209839806576537407264156341613817423930193890143077931271098359947835092473888587820955743440244631661834162780371188559446623552897431786532616960228997340073948081350898814645967248932398312936044277447973145412782241407745111407792724154767916718726928316990975456488489296525684830917536309868002562842967623088695450948802602700454328079669903319732757363928788776927452527212201600939867115468425688992014776256799032347575388310038785660720133128690833191731234641992930076073305589394053188519921509385717721821561571124151681411955438172456464791637780032937201132060767980089646760903368893828962444182922617268704909391348707939370595068414346945605733432114019552015359974265035132881712349747144289420174914881612531983411837178415374323247756827556276445752674947550882394761429135792607871625878994009297989479581019784686770324786991576918934474432535340190997363021925797215309661030837587164895847269018066234143281353400891453558900029783738508325703838029470570500453845631162499974987509700688698545666216975818392921028359959224756385425907175025833859075720261576236698128052816648210143010114045574245341464960968057691455745719560254484502194334985756675878324420471125318411143247792771478755333941427556351861728337162497628175257683650179352376474052142489774708947113560170120008376047750007173628813323656401799893179834675002003413594392750084115434738649535413922725338155613909701527597237315942685687252679520221876941901650329708895069014158902898457612199459316428026980212644831238589997090913179395677082964791159299482585827621960360438541017651627214133016620488674657223288342687727661201044899469770197666345852733170262559840176557339655512357882925266665030956577709571834730280907185615676401562806509888670938242719996854646112999158975558371362166778987882917635005763891833249235761405576281945572143796790765921603512599662865384607820672020193530868393856605416668582520328918269050476901880411050091123317245369005057118567045548401737283333274281392001449473131306863982523404804916860146402230741189782480637930643620419085245768989893827612992729867094191568131073380894198097055235717148130439688808130434693814030344244738770932089369008497096433787935355760222153942456144192573041165512607301384868413810465451258389914939461402181540331698632378360540320257723348526178384428107977433512931420222605381541198295037548826743909257251565446197303074524505110185866798476458138108242515432495575994796345036896912037864379615574410810435779573485106276367052046947815913749643180403288466605267614933085069264770742009768211570809151925617724139739389847898518968152341586955749804569663063175416316235491799157173520651244100558508685179604140585021276605670407698092463189298606436719993492085146104324368514783581535948859012137067464824683790516592273466592911983962354376270126006910534820594130751012877223838908161702200716436552710698745760234062789815261507659950326719673277830621246528248663079449319355140998631229909149802187471003142833323872797416639996892449988736268539931852925811035099384538753129730076605073745456583605700143086020503860087077122414993137205779090819695252659351750472683928002742099176895589797104769089106726699191298149086741128048703382266070858044304315659075496722122928775982261353405958749146081024894270874974049567874655886027569460405880026080537548846502202643085803932768900874788828073534861384946022031761988660745486589999207287728700147477242877662743495760964332021488856397000935642821563642787487914810519390480109085967725990201721405411431165789327317626543368776664346086164054445584546932489052377909986611232647334510349741257017281613931134717477297932442931210077224597325777742658486287176025834684391744679148395148453515526329881734547227291344413251163866942388160952667637587827189930091559202608679626901353087232886140397088504018714854401400956501155448272538578229454245650920918062571916261133711446196115458695943441621587336529394628562862490301015862879493535315221893742324591701476371617092800657100738866960462244498708131582942090500144762422667999624050629484078201270034948923682456268316363954851441702235083132910382615713496976391958973657460504525331690822917304441766476233052803813703832438582017750678583267957609617118707335187648265003767010907720308484523873641632681936508122362656534673005785860072393402630439038730967043944769764489166785415779206858224309997423585400180458250288091921256183212884376756890492072566582193308039471236727549790389836038724013197214362641625886120417888987551672348261447484226336657553914927723328862320231063469910400676625219925062432695379693663578203748266529451979397743246220628754357307885305939402071032963374919160981015349579729040043927670383201536959967761287501418348463428164098107571022578041921995413255657576990383089343752589465430041581930346680156900343659470374818541429156778956342675858705991087890930478529930571905626702270955492170655147848982344820132367064692389008324768632068136875403026492552270928861890116060751071571601770728107108024989633757215113243122953246648710216800617469057801288974434442249054058539042265964134337328176418400905353128684081839704275325797362722623207976816588988510758579801090425485320591478018108360066373945028904883064038066300540866376342265802138418048687340177476636967872852599359851581480814577787634242330928067598727643493769592438634083279386004096199125797234808243773153062788436176106966725562873550922127207189285792627261577541831518569769167031909247307861144083921953636307577620167769790233779118076471904100274647582631339246625307456258086858217220342054559375275725732554790836365328150450252222258917032909340491715985496768358134282334731517950746219064474553253743984435913456961477784855701210918556120088396725801159505636160718089635803144767846610384326313678349781033682943363161456062863610990701215574151781340947157800444825708247222452374535253508790018542867496447360534935066551036869307640572834909636910335099706777910023595017594544517219916673641826684973073296129285136760692275256808627509689478353502880463576526908365098868954476260345992892402937375952060117379285215008485823698519513981896399309776779472701174516591923617000673445613931399767124610119180684133588624388708536278501864507764376961749002943225213904734819837243241630672418460234893916091848934231111826764316485879222566963832208609152395402002098047533719911479068810607314498113189708299382759614608627278951887433431294834225956729225489730556384561194939641817184057608608738657797910384834714881083443665516679824561850108117978787236155243502454498593983468165931151047758321561448770115771447370088730583977744444211087075195759848912840632118402511157476020955674359809283529509981993694646126965461461984961208858271170133027747643411765716627829143293251333783828145481017269570161053477974017555735605056259849828358186528386292378784097310883136786013014418984691464883869016726932916399077394914873749727549266396471123014684117886222776752070207531023510310482810184983916166670676581207675121169547216624300777266519490048215453970428443647304456843706248508404744498301609044687150355994446581803625639094181746820782239601822167549921433611515517694196333429153148181940362602500962646297349052591993286393260892565180751057618779696624739057340464901024563302833612960962057727900615348901131403450773976348696974877096480281790470949098945643988727975696592545214659142131182820315819559489270075427308195075943275442973437208871418771831159689021593689182096182195436430994582056258513079655144588531546872908960934212122255947897835699603237407086588705014251710996525843872720622173598158960632394537800662968804872695983250809845524694887365110028454494286961520973253608060149422041893691490528700301521063468463696197459240033904041824947759762933070146976272368730725083718007848373884733367506214520838244747077019466465097886334009017955060264998201019282765352145995351253424704792571854410484228839693918909566201218108809699571339422809547075723208963911758943081095807682906719386186069681628737741740973495346648839195804901306258329170263367311632731689931978076010932378995315330817121807685509887877259267642568585856468011876716550160628613315556736324171556760378594713758900147077461887177534409241067538850640369203222535420937990531313242207882207251808954571220439847092686467223733230294240950278058137850685437702794119615778566348905219516730185866039897536915491309064180192611767496382896093607198290362247364179393927154707232174156185350748842286565268666442602524305136755175013673755222946781491090743934176357145237884471483332110929728037550725374813848984848728279875902122105047911891220726299925039566895372534210132326981891783783334936025006831944381492909821327064638928593993080389649277430936593190778254193834217216266807064279375221448525130442836342596234947554727661104188624669866776412929854003837869381535255192251603995613068210854755232060439386350679103019445176579766608858790759824421257406978738378980211322433821012255134626765452265088378943069696393084120063663564737696452064578322820322975297790318738257875011156781841285875465094537421432122857288730719977613130702402945938591570846911423046434405125739508046932069289878256303033538036326375312034966874427590943503169222458823356897818264421345907354909702672560854581070613863288412189895376957618667479225374797413973880249214347944948200356663594136385898871687351951126970554393117462486619335675819780362850528344180539989519738304752300955748340851516323577332014097789088395852560759673381552932381538445137008156755384759397909176771679017106615598274984104916311693220899905838622879985532807338232205649412653229865315994886035206318430172595786097717264477875830589443880231812258110095913350091835577760682252846215971442329175536713981349956685589881830849032046945942245761423723624784082432235656630525207873909334297100676784299754950950658508374522778284882592923689679174496219043827196919170967707569275726711223393920161984985530545755252558417702336591539014639986939329380526434927104524531455191295421505457842814526242131687883767535185573136043066673847110821788927152032386925933241482812356765078909271349869492230711464718001840577417459336054957223773357325851706123785052739521410760685220531850960888643410727866458942117434633239144355716751042560693067334901860423160328907882845546321285464746756137625112302194047890706117286287727174492988139537459670634542703593293875981270611103310919893679954765296747297771940113358065247886149653132669979668234657034459211397570649427064435091587369203093870943651683869946496516172709162698250175879828035266357742174117444852636006674950099752267205020175792599872367530823493958642967376109445027517605268036257501563655680108580689601729211726526437829970263890514071042439355438305124012921599287890736751722568357623960719232269543879778565225010904982920275902114399582950623994501466368353816165857484142766024873020667337459815130093381074385456307697402803835013646637378042452443702872137152548054296715923310103997326166124475141497952156823215709689940600146964659063683118357899297750542207906848105147717405633730447843078072816160183224186621749396258907936186065047649457295703618826654672684186755341549255382189542530136797919112469572970309466912441590185900124300217804507459295073635589015365410876663191940259032705566127224641819939928555644500847911649128235914795730971560536014531763683480602684037903344252981705332056440978786281185863610401358146352207181734978319046551372470355652403347135211386681928196248014792133637063608365707697399322626067672231970473870851694744199021415638623977609529598105226787384297350421601044922455416854092691198187642186946757074271744164514603874697801518226530093213018628848332112089176227236555324379694948416490285424550093846390003378804339412231472904421420589852366688312843387157091686309474465172275152568158282979788083724757754745354818267041248442083326394169390359462107574508291051337211172162358730086864838742476988664336279611129843015623992934607043552919357452614813025453327269433217985849379069316035422708985004758648163704176843024029776525254911221484962616031039633465141488794542639935115974599386344781671736574640720222181880956483286644274201159402039250687278127144061232121210726985294125041266551971128604379064522749330242401931262921442514616363259481808821549231495221978532013999888068909149800547685819786602883288970945922268916941653038565346671209571940473905804216879602538281186325555175356571653871786482604967977561673272874409111530478760967306318945504950401177698246708478683697846920950110491444963698875918165761153629440783762825634497480283233065550503054897461794533321223224889019766927642681101846445767878268653209010049249671737525088657755113708696200501648475494104883275053844387268180526378603334869259872027372373053469664520614112765188368890502991621293506621328804850881090750838577180551888345085484290519053188160551673323182629463734512720807320553109203816418908618921141139697397094462478708063684466498665329762710099966785163443217111039011476469435813976873190062441407520531175267769802224584624974828365591883138945673678379725686528502409684162253407885242878833437816927908250484706263505323031778957217503104853749082949600678311321393628727713685132779815120912461356690587677784303015422841292467107297082932507955865491823070911943181395000067590745629142316519448155010732386474256258567382770806421241786834153867967948320180282408065171521468932297379792123843733207322903637715586139626417601924232914560342639828557809235642358916063794527142127118038121859343602102016647943144235043628481507880460583445501789501928117349928629591126171502003999075925192039027626820517537853989674812096130887435258826062032355028932900411581963868655168477189423463594203990360680068571999889349264665092921710918948911211158764652976893262697622774987164091408176078709079689052548360773878955106147872758776378255843988022007028463856414725199782005791313875794619708642964426379141049481809302264999560978829186871794570989324888639221678582038330797970659049357723853737834892021499569681402275120371911293331918475539670066447290335955579490369564649737239008631164962692508603694244657016807237587169285181876552438472657152978613801319816019600386446188919712270009788044330465383795392752095906211976538698118191605974084944687543844924214668874056084618866823938646096424115096451161427804625535915575340370415822806847235184289267388927533959142419767462535991463094456338617693368744202111304272175276570668189347322865634465371469116184117526811671029728363742077930280368112890178497673681013120461089888439535026080078945875969184886771798802325086815901773408554502191947134910637034504128711019647111648127072069577665627320247288917762822023867988746244550746744531049521030281369697807200839562379681577246435340566723193638961077823230528058152317701119111481446101310345811491417201745876041179950913071097215145473378610117754948684696788201341699528819419118845277378597749597650220594274842193549041555129484042872153173206203507974336063952648901806147534816373729946466149535937866109909232674119348484626263026916144110103511284092714811608854855819841827407218146133697099252032621776223966456957975857609740569070887472941417791357027154404993173066201796266255083908020388471370233582434019630536163613661778268268945968017548878682412826178864063937449497848083677031674702594210624841967097603130178562208307547699023850706013100185153150256241214781079423127796195771755737026307346653936379883039353944007824938292680440020130129327351256723349732716170361399866606990192454789159540259863543996380568401214959511643232030016224122041614142526883745520488452833189199674244210877858062658435944647906330433312498487157710476383102576322591286986313439319579801745903785694757369305154150400452685281986197075990848544585839954672404666367185142723862171041559394207250370838409481940893511700978624861042358328715737206301620391127965251168408929488235832841124883072413655414332863658491593917240214036663315083402888470234637329118020749141786725713275292945948186927025941698811998157812498118797240404626500271939300247312850697656425129162517913406624505768937067043380550135165180634589394890554289759590718315734837717045834153646523844619479545983697493747244293231080974302326466239484024203395397427651908415967817558308149018726325395835524044257454726017138270483119951838982199211634763034793065312255282528789590979366106901154450342800305101478468663079815566811066675666542377931635973723936384007176449140129078137971140891925848191755229355344381328828665166975834642923401651540888054300931346517360246938204743507077196959251510450565655635853312672507126908278246118249614164372672022253739004074636582019163058984959283204467522618338473875737863372383963207052953732963898423037401084318937056112506793297971740057292852669844467262056292998813984513004192057651692934480162188334828709965441041368881691938849349155164141509879734071309853223073934240423290736207818983397575869100669061024929650487728619050156064779033536912543477372795322671989167986095031900948455923530291366556492660053233268716123235323051430026835094456243514389322219776788934975136569345845267620257258375854257605904762862698788650533264890970745163506001254252878620015789409658776090281650108543633855524488156031861479558142594402729529870187033368944790609374511690523962473295716572340230417987527137658986156834854587672171014110107753068237092424502459084619495810915654785137643369061476417312796345964116437416438020158645892013315864623784323761390796456103884743625843433114037396565050625530178712609324294182746174589844978005570716687920077467110816660041114932931996378892134767609563988347009351011784352986501913098672837975334967738650199581879361021686961689034153991754403217001723859937499931462691084305873107290103392503677651767041497181991222134853668200126025211429254930124590164999461683015109016254490325282494505878105940793800397464113067445812784237939109724387113902534610974588143129703473486664548818342426844386226668350554521487094853134782819936695007148353670164173337179374350168097463995157311417636997136570477640148211217354469260501180783296877610931810199549498655031256373975222807054028055282513827222850710435536159374676600248053195875242835632631848252653585739965381621755296505299593338683566233654888251739746486708064773931833392533680162998534130809016888254663075650206082611921853365452558196695888609620520303147976854613086460735861223812560962487005744851142367179049876226311918666184235239491729559351474024216862268149551642927294079019907995333191930853469218257999030773469945756377033148927604434445609667263657292787296706413160087004234386788552678134273530435444060113122282807515647471054932887112789748491355379837957973519474923058643729864812728589706781300702093073791930784969857169376784684566470579766531337146171761183875323308163145381049308843994174534153142418274820690728417812409597090966691061370197884405486278956118051381013945566605904239614159071235744011683763160008118169241118186794228597571929126232140874098624198338978329567644484045504619767414913307896863467095076209612892602904529317426935797887304694509940107962335811809235861788842095869909949316048450386781280344128659688290308698688084277037318723310840055859052750973004140564703045305888101399778132608669273817800986215884506132129730001270802195813084872436179084877886511402877897946123299144317478327328185525610429362665411709831029194287601270577102201621571373614324880217967529625860716096129281387034757578302369766319919392038418576112646526538500748154550968169779778102268233180919445632165014119189768286035071374129298331692563713481898121454331091029102321784889749942928869057170372069090711336368877361418720549849723825969172761466027739693822221777305006606318481118131865432641473015999657265899432727325859458837724956928257240949642820762622252554222030941008443243284926977120279141009669811226159505825314824786678345952711725852332861932849059145095534048454724985053406350585407059627021286458033722730451280901820041264465782106244316101666309478019232171658390956867890909093244728079173091424459278662194808100775254609262618168047006271771703934230601042211671150819985195411391034577331156384595361725920785132832732116725850550125632930679964643172244357058510855196582719611829755023328457815581577132684325605281067161846306638222439016798833053245958726188409017542748376752630452354404188434557250544287517145929915957399666753305589076748651491566146535770022254374400382263403243472239912710791287480233173710098273926209542549274904390817491729090526375702977072014197862452841619401550747662223776849454833172633592857104336827394878457842828030949952437093725011050751065076835590013377946718877189493410839158576080693037798601955542941375136453763179135061394290575279797022246252076350708817830441059309384079069609673803741591622701025565848547050667161096567512124948441705656086211325971204931284115536377708539602347344625243235539836390390256661452390294808734464822977365738887292061958651103467640271804081607716799163746815012738036329735960692225506365227021050386275615066623326733674361126220036300407654715318992893756330153585921183783629491573604540641019410274982193910222612651524359936462642156695577446607071126019582547933211830520251672798447772261164389579314383094324611522532738128026434517208586389685578991330369023096425454158317575099536003847961274143213999266933605090405993848546805760349303696890076773590608056349354257769626412455792650283415270025958279477736403376489526966721804483860156776115796007665682942390437006679773016261934030019481098888831343364069593528915513840719395500079300442790035625897485437730418719718690907860864234895956181078944777862078008329345650656285494520445291788535244674614994377024823022544900694946226967756937015186960568234838077807716974374409290081492370647300230357218915411111436229265878811237094871966733723835598169300846900040985730079522709358546918139583726620821579137391637527488591203495682529896080305822066244866446490006589562992197627157849743815738801057342729483058257616175765696194011596288990605396425102920035476761818412968906889555279542880110591667996916464313891568580683930938522728737021482668610456064344805664542146049044059634142435335378281040553684026319313910078725206599983623851523977494355805123447903826028793055497836702051640305012280071150267555881506447307181783651435673499529254271287538614137435093242095496047678394646072447541522524975608557374379699914808166966863227037171563467139311950957433997976526359214803469487432552662101988069382497601989150299516033999565196913413319468796841721045215178800035521800400218391315464266622867934184849390279324975235164771921171397597455854841057628128211305576340292648530257414077120966124986119882716850501461011042514975847163397693289169096126375921831756686056147562021121729257312381102041983948222953695243565334829661683964628922010066820712181815352569144173981839924234725045161789003774466069162470775446504739153087114794349891328755863989238428853537625893225411456875601428344944923622149145461959082621324328463002803122943422815864892503761649749524710018780175647712464728758829500094942873090841910931305894364349082033699150069891130568182661425892872456802396103382414562521623531844274722523465899661626763478105525572349886157541362005805959563693822302333939846356123515203098814570962426980732147912001630028174639732001095475260743289630719335885216110910401857756008811188723932274511208452673477702318770915300322032942894036708830732023794282546574608858142040129261102198157266354639789577691790725041711125994012052436612957528731561751331011399457872482226198430641346730019071726113842919270926023923332736602350555183850820543963484581528434207686267368490564056041250044779551788539306231340909662638602690101623734322107458078194592112564910048049130173581501408531534332361437658650193117279891021807391678481231933129828302928514978167503307469189304911310508992562606455079956119084776089372493207295974932993210344393337117501880902400985017621551328581306314925290770607156206102382612234688545351250627620249398600369027443625307830849878523998281941264455492042933614735384417685291292147620317285029735739635877887981965095836520780567300176564655710260094895057428908924741617649340846763991956263426186768165193631694746946232684042907229197303305007636380307279239712996894488777797855137860555633939871373144381043216948480630762694271479142690645722929189188110610389453342855477777742943187686116943500866159812073635679104531359068046052266052996763546022971102202408941737793134511543503071924628610054087488782036137164802517174836653305065675002510087854341784185654254939079384028432598975400072390730417486168848260650984653048843845518025437436618212056179489805235476039768363331184217462070338837750730806170725342954296302973452075454701580537304757117936447771547018232933414455096484164131774130538711161590047381317709743092814809152758639424794486457908492431885316974268579605838494063589988247327602878513572119109919400475596610541472974903327152797576572782257618943488047470425155251224111388109460675087865753914444468217377944413974980526154771883769076967512651566266853991447728056758619734256386591099534475622585323793001122397483792552880335066070897527729255570184316039499004462483237239130537277041058789995509273028265551120005722711223208697237067080849769800004723628333874354274952192346222842727747223879063563855006593431118525176516562741521224484015194492541648426737276580994206240514707246869429199417572138010492714256315271037801368500106191231300816233075802056341522541822067239473010162208679858954498914399854341675860800670966873622804858330201144087819085481526856124992914800673344228677418392984727314236186405192575644088583399438958333572772176634235722723172422465346082179924125193270894214801923095090855488092439650331136591430559147475787613000433917856330333869963317929146294044222950412700377030096888970317025171385119913481121951146213320160944464955731680521541476908008161206813127922360859070866342039572643050722095704393154572172533596799436958862502725583873868271232486662041161954754052974480877657688795868000344956602189366741334294620528916637923055739207870408252314757900133924894536320128379661713159367826026079133544884737026487601633909988230752933710362476559490345735596971152465008606962184597942864825649159721778477997383722694697346687735160228737860679375674884668984884396280633817750993846507575123115694074393911790535256526408186616886036734646502473915441585294527209543471991489136967329150187409053028236563875275130364638701823475437824809529201992323813684801189595783950704638818531510738546391344707783797055643567007156641419220102252496500286101305353558990893128870355656424649572022674689283845755374321490178879040670970189502309042132573013685614291438222940721177429853566178858018691857868253978981230977976984359995797030636505840896403791124201378526903553225537637044600854671306424083801957891123819965371530027534753113320138005707816540741099614281197301268683807400970554182802613434296663511200960512569020775407173433548762707285329926001024495734307479191970755281701225440472405377468086777202359502039360610450073001329182410327704521628864328448220735181235345827293884491079813172913237857999741674839311856444374696303460482191246987387519913857821660772800582790044735181305734610332341781855280798344179950834745844743406594275614115193598775568610822483922403981259871078308822777895673656696636232618828558736046783161760115432680891448328530259666144129571593525868830247784300964072118107597078421696178025724627686721485498607109071385265968301704289805991876458191333739339721872120946736781179965160463741650890000386487550756039806137804719183547195027228254451647596554289896763082921586655928000821823208955724804811283716757919612079851022990023596394252509209519348542477745229320960877338157650194868304390094063562675149551851936856780858460381544071395846704390160260835412893171253911768376733504679759570235388655605890595419361397267648803643300597788303524392404982108309791586105423767915643029263645257559650714621682602888990151510579221917384613881150310569487421517530902391923776518631318816266415609494810014275412884904490888023221663452993930552157218000068713278061943829234580623568262417999248644930749136057602572972420294837215212231062703565414909999817805213892155260267685932000207160745777313313073337972510782233026743919643832255793522533784477573748462369203963181624796160271479173159296757094347161605313934673015108592425153396596431388696446451378728138835194152290261531160980033875675700732505389192925138920708318753915391428391262990541570556167578584996495880247817628381216962924973594134321175396856016515503703412891773882119064683576800714509827311952587205153075586837776484169197945608296718442805365561250903116915736131898272146756694885011559317515114559631552190505231088208668773044323468356631286788636498822304417643337652359494670551207241508390028351017834116581220755122475955765638630530880215561811715547182964539323723977379778033911302355635373943207430696761442154316377782750786328641068722841286282262400379239306915233850945491853121986585828691304423677738228141954414254303817363604947828450773136777801718032544766482886822595843803685535560813218499747663151676345861584579913834883170801277554467071685456028795591991989253654217331144334858764211881080145108768533414529781196794992729540457807903641889677231292932372671641556486414089503256065002219344277275157611754571580028760115388845117470420353509265453682900427229614329989795301298416857832962339459792369873444483351520082616694277522190996134683625653510363972343774197819706001041634625897540333058754606649209889225410743410028468124199396391303655473273961604692129371325527421625911229475237000954262766905059460966565251347019866104517455908267914192019630310161219444820298400617609366605585956070877176167916891430738176262800397688963622768603193744178005324854600505775500452626796406215085430105307680229810114902527134236978758534588302777589596141068041389010788785013111514275889557148854416562892735121165891016539646742832307684521860907958158227520934158391460112146296762101284270818762120996143351724375331969589919813155867413713774455233680825055420027886154013965214307458860502562018843477474913744301351384403102040440127107979801185292491874366920819649633823258829985890403622351022355894023091373390634666541979532781623643484141730955342776027889218766918240401728076602937812853960930356273993475659746544730169678604284269593889284275410418847000256712913853268163287011671706140728384000899603924987831436908198580316503974332720324897926186950854857318467478968033969107888559024106625489600076464025413308277156244481534530428348218274419498938025314031163871432483418556197809536339435713810006027349336794132580603398832334224984671680023350623414704274822203442154374506298513632945081346055152388085262642257071394333772876589375708423764749512961799833747219970443807600535201496882318732099092750188488652444748358370001925847169365147695567701976786491136552990628480276000881846916097769464731676650224831054712600521606758265052246858891193820808986865002191750215817598049110910245113091286866093916543738919331890916805726262026156901344773749992804093469956021396617013516153667639851791301154368308605139660221835799962000710269458209071759255184097667817781084813926270817737133530516230507764987381306323150602590771606598082388549227117854715291379869684241055441467221509639521553627274455021783571008910823065065488758560892937829506531107150412088110596118959219513496300710259677792023450528752257891813610481144853762257347898620434021189239385436024813187163689631026158264238052392074223126637292257409484082960733449271036727130224189455410931278851462724903842094434735112353377316724147795647212694457288686379228571101608953286672674718695113889303525159671790385152055155222801076864495875735224565778703628250357323837185224425239144655980737868111122843452920497518883803855109019890299514742764478927248502454118527631968232675655144354154399364162226743242339148556876236068256475071779018154213717107867570942987998064719272710461775886405422341300799501701967063147435252585056912712311173275745991788364813804512031343766961233611694897199755670365185905008591468930468831996037245814857859086907025599471423787218301779779463684700884723686977318460203042648999604545737480635444223542020053097070872593349268016740230098686612692481339138220499478688211096699035796787986860578013914348671374194416469547643864469055474723578645132609872877726368837279392626595466877892820778136294957790018563759524312261737195282783834366836964775280234627887149128581536142313256748354221312270362730886480647166177757531251328789324535131113169314583624921306013873466456810494352878044543168567807592987818442593898365550714303414518246974739150054520241921610620880813862022278163976593652098718371352824634589216856427656404886841723784704904118191891620699296790266980277375201612113859868582361354010126917400213244691591751422532953551877342125034760994092779214772754573836218471564878325777819948750065615275958265085588015441988913155389791803365534531408924300683467493389318478405469884142929571115495871934553921357055473914135103266364033513840370653345556056574745520144331243873221874944992990570300201265461133079310370641066501598467569780988988778413976821152566840842886904503221365672276876724459380953111560857918966866074891178949899580720743145475311363517852359873607468767041701556735329623721425923079442906606510448165783387235749109125092494516322004116015497836162405273269668702382762850394067300451234303765803683677917735594550285887686069422243103706823309775312865969310432875921993180400748369988621205702889508997175137184251893919268746759867123136515123295470043693275584251630643163921236665206820891502862655130082330588501762472334929378092058036080297955986641693392950260060981358442509576351976073617481716754369839844932020319653106271590133398420873964042496026411981406843427331081429565660238116694140794194924113574701076832421949627348923089576187997445814809569577659351027176388387259056070647351719901997139485897309291054228822484517881917744540169266868552003431108544875666484328019987686524644487263767085423851042729906405920940034581440602533059312731007411864941806011687607659531297197992828164840557343881364364135880570017465981725606017047679668756177460994633933278776469126840591076696012098955960059613349544217344829065549686075288877691398706317089349651201497786715598447964466545149023568471117959119868855368516401864034794305225196485617141170111426096742471075659954238309587608000493013652489561071327577300992488241663257576121426721644846292271330451473465800570320524010419488829872046857483439428281813308796404000520749117486385350587167225342918699511481259319962001952497246178025659761481910124586219672324972328966307757361012658653272882638400583146729396409220248647547578661993061699890352609165219778016933749432784214740759280295915407882074783934089252704797267457248180433190958898190505425642085618929505060495597355953938677100693881999353396891830543351931404461527793694679690729520890052032327969204827132678718781446352943972633872292813167175475650437588788355630607218388003724887674173140569338858108910514461533587887916480814817751783507730139420274266153161238593852986263308247891973162732043560722992712948323459775226958429187003106982463652965218271433272528492949201464175560502540763210523565572844707011729076110372309188101661791167005019492387638996298215212189731636150683385822886087956530993122758367217075336132452642590768848039829561088260240561917750303969301276451434564926890730870797978194013464456354984233635840550710182053975768996756079144039839794667692386283725998642356471060049495354286919887525117805822460784491707631208303158102970451732591134673030696686149468988629092229863327852940008394841984150637782946548986681996453291954646864242669802914004497924903448212190509637563328415207825937892697486591013219913911072605164008270190984797458429522758837245589515429590014708877296941442079175749513093723682540808621866591598554350495928867931233933715601371345302437272920517421489770059985455645175231055635302324052765952652662776309765500213873870407793367861871522673433798026391646579086483308676196439629929288486971012169344618262647436416523003926798551241530585549271621807805788078358849386298519504231263213734666079329190741829332590769666407238556412369330717803591188488600368963817647019761624993475304162521858781860659025638647909977813367229744739071102426002451561667845795442372264826834319708306497486726602757469609643566175554040096010040666925996738585225213007294275860853568248139522281384999848947162547225435900543785408923863182997697389035718637766183886777686120052377343920624106432478850978464514856805575665468950607789663330227434187584578020546324739535744250988561830691493990187047783881318320246095835452969722120624541652851531077064260773253759541159015936923461472794790001043316713612392992689536274954875477346958477794105771251807918445221275498365343941230106930014698022474002627491600746109241986519831002794890361039289874900199785165776104857237779623923131562626526490942261766815220047413122404580076293962120530650355775119175832381919740427090382308663880728405866257409193702403527101193819098201725419765558208381262764433847432573264657566387198452998604394446053613521575932825287135024015397028088343598389562145155264219449337758362971478813750576249553925235205991652418594832400805585462662977400486210063320127669658984433489584692899442915262029780324972606789936638121973079141213180175516204895152433515817361083836187918691366972480850750564567764988788033293413656707418267657989247640248543499278158807626519292741903815890751398611697852714046935097802603273519587033815024415797810304222410517142338960202796543224580641138683825982559107030143315532665349564650531538134610597918627882151051364639260308960255707587665426977001147601457057282262957451266821189360008861360261078446812495442016016306877218935213968826649715256843653639055955867621750349282180084053537033614733599354329719810153797679249941081702935231861842525872073488580792750583116764265771291218678580769453526679339977397933256507014852333840568247236868546713735401828708295685350652625730665762587499291842818027687357523376187080785383439713342570722454221819685367954677705537936524512254890074879978094150765356227979900126745567566936747604334664418000974304535683391142824728079859370954397380453154929728082807095834579518824227660912337428650462145396302295654614030677760043170414844135189597881898545527005190836398829945147857280286244118952368263161441100689278893068660816357817955893055214426103854759262663074144207509202410274096706231968379040378650408281367742395110886305290765356325821890604081521360349641680883689549610157530466609708878751161043734207853447932525708533828834558014935288897518019282694608935097013258749645898119214189121853232797717503142706352645758941030348868189027225286002767278579232803866679069748647806369689654198432519002520946975646304490364681433514199365465323317062630191767286563129628325984408627649622204287208651777631042350910608277568977849478955041534792339101603432217305818535173642603334697079731600033049002156151606606731093700006228868940897192886965010662051918109265524832754050394491064058852351864694246266056213111920810961924248512417203754457356266141689604753503842349958261420415460312223559196857994423235747670013450140110714251605014413635949192497387863000523826996246181195352973686918444980732706106458529874302612512899019841763492000868556706569944119718370025526050177968268053934841761908807010204596207060357308896533387590159952048710946655356209000679424111616042396988466151984712098271265501373950330883699207737368607252097208314334638476151199165463924907452921628221669248647154525070732277515034229844040338913286472743454224886985639883134599428150966805528387133744583746008822540012202082537086002509693034319527746411521724315697546005545002422887311758120089912004753508130744665633654606322474311836347783783404645460797568896821084778996436795200750215136746800110101502114132826749690368556263356762132357644245316322884937822947378196951661360286110059378467214303649036836520145145957892146505447832249564883946451275557570001411419132404043123530834377595140302119900504498626862774587195415756914735464259894355431956481526634872647068303060486381290864050191343568845360171961140678141966943901374568347212739176043757366800860746498910948800631119677159586194510234102564319497129451853486572483659943662474816374212249904043709240904577668089401435917366401912401480895476530309599673633195672785535565634395650549656380390714856089797247559208505129667034332449645270411094747145546467710743304391615168293139895111115733298990893838344467761620052073321558185321726298090136416662924772199292303247534265088577773776259797269259311555726385118779228754366553334612548131652548634393562828159529611243749006393571969979201504468327003094184625787515857870880423292589250020458708601171069803991314597846408234810907283030987294221853960552818389504009939013930961521780889371750781692268792223419660264152537198869577095672675858967270646791625133209636146752237669552417843949985338071026369577282584460317706663030348779370265493380231080114044504837527794109786840889910981853372546948802061878874365722868960104225048048900220340142754661169586974174147712339689627303463108237331460782951841060914530621958665723114836022384644271855552519076251836596334393576861373462332406697872265687798418974297845142241358943237600988774121022545610710688350968551814012011813222171677576729140155928208247559673331570463183218594677682429953059486907669731852367323329155855316001737093210690766899720409280736207177105786409686168901730784560704409597584225713360251168776354889480824822294397292237823780614324157521821067229721705673865767888372324474125515584374401326959519552740309467585759427164776488852926151322607354969879717975351184003003949216263450978551029348129672149913798560119711236061698078119591833170729810318258773083100534707809595422267261074239312439432132195819686661527122697784077007148271545610967857934896475349407887368007912818119762787824104090292264305486293473249324372654454257777661692099895309911775812841875368870743775773201415921625885979270860614277723153415425326795930936627095092092511058731065705251362469250337106111254379102807071913919997694008508604777692903593188255838770802776693450403393358887519440803610054657960758830126085876954576624396876385381709809064977016232397789587329277043780062372782043147178535594938370993838513641878239784487938294521667387094830607544719555809428015458216517341382511745753927224994682778883831930021334195097613897927101298764642302907847495463603858596862884929534560176491462350255533882752750818284758373998290372735162565179493332579797182206323896019588380172851050942198928912485561261385970776551223525679787250126731722159744811208684826322520942892832248180539094934343379208078267713397014871351857711595871686719852150701765727706881072899431620563024546224141914320528607620313564507051802032013803392804432086293844428560813013350091956001623568918482132214644203291034355375532297953481954208974779081546697306545409293658444773715434381243803319746970134416875845109365091091922879524088952553503870775108004535829029941381544079864296856946396843904623041564775123799117417884461846722243529120226110398727807860940213812551180530242078199759218769532601809972746028145364412911992411893477017995154983213954533288551498372355887515046974377975292744254699969842182464906610760858417489826367708919877925098979286957170885459487016758872938678948957834303809986518028797344382684305485220179877812584876329212884643624313301047029539439508022599036173788116377970448747892561801600625009694676574806359754875613535925701192061032621431557259681954553362308865087371943298035846111372440583288917362891793308423101639410565526795017104507516113897704381470984563545331943006325968345852405987899902991828082760348675238423285835035851185764047592307600095694520254827637827242356570806177780283850450067000193766499015851006261370061365055955749007060273849281092578244621106298697952840216055912392918697193630539119218002811187132420808738207413291349453963091194261537201243674220214375168335900379377644407476764890746058259563548738008768215000990647391364243579089205204290896185071800249531307710255472027343498162020539207056337715281534135295321069151192562585091200766371508049081983034893687418545501476946638210924136150274152407860634671322006094330677512023490913680489290099440724758663032582425580141164580699234463242561991595696883043221052683431742286378166432673488094663329503619796788349992842300475839708069266495680434032535566093339499591496686055937842001185914409567850663062233318347441716467006221969514864879280921043778919582498921906948701566389153070037681923616348068265191383612719620007715368470558281467754507768425907543583344743088962608033072759607769417002452623695167944584298238237815087728850219968918485481429133189455510997749917905346494823182380358597075017401652497114115888141106745236606105238735285035224537519526523583296912555041935503407091972778047214209863248282153453354227201693859530663496335799132154487853235242985371762355076595385610487787879847605629803458539715251224045027332545008423941043492671252967868070988256877085755631841287335570871673233615427832265175659428404358582598906308589200067562219845045709891156555642895305823032236424115266109830792750011025095480463254779777246244872946942425964883274159259415354256270603068915783583399220017966093268228066012848031581845789790219069997114420208334511436403118563960550612548904780236136983256064023331690499323228433792191539868590583617241669624150417849955744651723265956480235405930248280217064346613771830137240359979705142902846178409235056391920932299209299423363954151247200413396271027737327422901594042238657939897862559225815627946474511678487969659017132775926836620811686192668736909141841827355249366838159142486289279167242078495122636620284073731667807342134841788206939498287728991510259564924124330678011020835305459708437690155328919864717087212591673785352463618171153386272348046015087511183230677500008338199536947618610547034372765953715632590634733623360461024599409043422668799428979124853601181026776584875150390792021358066681907370486368975404426995591930871399909521915025957619845085652543375956152749167559163600148065771989978747791586564994903539136561076584262971688068612548125935053085045065511517736641318501818326099481909899848047738621487787507997452410729132562459817422050121111880721364085990275909047951786368507876140309813049299106309474423732656304517799484041425169195772559909944433119427104755333359403625313899382984633137257051358444456120413105907494392343188704429283775892701556966985568048509344223130017239743770791379546217617174999315512347438339233123811327326736840941556321573044172676611512396763724776013760044768444130995573723881246606134754379205463937085529438197494974678999142393687883259509646723843374530450823755556584934903500395922834694044453533585298983014679024472510794627692425903866727520307745930710127689353839737622177800110687703713364712462189323131098774041464141227752618418150257586711241515373887385163376779522256920396831129056752553085538361547252950382085176338898587119983528814529760979604853996422737639140573396281359905329157257954633877058617079598239824366916948382616935789927117247511072928678037560163567072008876411279144247595398179805641505967785975072290655928099729051397067009910661311589807060392591027418808332975685632482565849028658307329944256955741885736233880738899665896086982491657509501539469542271395420404164840151017902593300558797961919274505143008577346821837970237082741335892108417106173603763400718899702079963219235782837839890624295605408104977102630534455746224619047822134302768571901753036532335540473539008503917925241531853398774851754545844608263714762811846324653693900365319092602783840973444653936343305430186739029840682536585395444689322562881884190394899159379309287901210450204206293323465857546351213135110013148880270884628894598044615301067693627881919965796192276009454935907595667208270995753081742591693276984487283383192259643023303565721261878596390449904119120463061715337167517135946839411837498832187431512532716581432429646956390127904306014736476361223373695941769874378762416733448981443724557775256767874550538342386039566418199523826838567449149401312979292079307648022852377400362237160988297608329665192424205195018886395400485145520835182468389314392445504054999442109920054648923124640390203521416696825991594141640247568281594801927394178784879812685574298991790396404576677720863965134411896200138773512106179305001830418811302188373912719152854753932115396328871040938275517589872429227223773222287958320514980827597668342508873348260527829797272139043846736824350502187157733714916519747526936542562651138717110173207697129999990320244016120677225952400228977290952132102512243691381665808918680199896371944105596757436413838526200013229446097188352874685343207686468491353121519297529099610844607177772968876242771118779826675328933682053485009121997235648395074070884459827168141548247409871366202105274722924258828569686420723737687439164931474306230423953080570720808130645697642388656096406181088242603317307413084069349065529596974634935271371127567720738344826649827046756359894817410446745256847943962485271855154541326300285213828286009291715609232085729970751641105926368221729806132007432055226189061363382365992996534088928484529150623454261052735965997364064321018508850038888295322687025254219199659944139878403204950853081965609000500230569500148715047423500498219812701298221146520289415858012419488214070900297417532376573736028153456301787938995734814560497261875195294917192498791606508688455055269223217198652076391679962859832983805465556218189956634145959382209665443933456552831909208485815123527533255568759664587719453605499705857200714040672677971482548892040228401548841618314100192684572591912630415493719662967828039793114369765788979396041445600701770575805597775289056125301814833800055269922679455691301975578519012988314391944532787191006194315691816298877760114713628190954156210528403625154661404626596874261853945425728169067278076053467566056971956796350772740758475005092390725270170138462261955833586897381455030316470540547236459542770199044480733875291917797965067425183512736628551730525270776328779548981314797537752073219416031517831290724444672337104629977941016233339001395069072201583288083775863192624761978328487182364698497899963985888924777203506442617339973971997857377512459477795462595630419607097926943333043708057671337245786023860935980061927837702045434189382137526248598689778958064575301807354932579435361602485670323157311203484660341206219575477789809982951369122336030358988861004848296959796712819003595971879703526339078323631569072888634551283174369601733788691954861643497881082852034491640708772111355807984942558998001631130963689635730321435504909375143790634697194820498515575680795516588813058592020887395657749460596463875266615439120495122822893290719641365259944238522260776918354493286428967188299650327817068230570777946371463608997148966813531080732142713206051155395778785456742168029616630740585837726727478754500555937586266928224218717057419332006284686254882967607929515083264971459544962802565250191738250768865242899584560494973676039947139844724947316868911385892092520867483821263380906653607354677595716545234149928609695992450260163878433622142796579691343753516557975990361688421898827901342508274008037776471612840552009183563313375070828453004341133950673244282870454956383850610374783311084542783024146398085004463405908103780023329008503098043274587645329734123660479750587867647296388433339034249808064041197213566469799113042828099516187152039123025303263973709713013607362593530264962727432837739243772060368173106577139770924941342145116369250490622736439099765191131878628902369827334052138726435623588839047997908281731421663199846036421956441179048889721973303280520168480948783749597704272292429059266797561388577468662424507562909802864629136018374783751992968372292032757201219778300829018109846925306508336455035120145593889526219898509251073578909804768491927151965062212334050767965095980741082582623363634821866254112247687808539485834693534844640666981838023428651294766497990786886839283862202966979696406325715291777403085606274068301867906009349255017090312750505722926887405674089637069265589134406185647981935948616268933959976752369559486558182906016953797481976574017649439898156530736188964752549009962690216983647104416509236701243170739869693517011394518641819182642594204903437647589580122450891443339984541636155573062879215254067536431643767788304572671477779737229523424963502390751078780710932112183823323385666344917691602244375511751589386552678198437444523338096292701737270294010850361484608666486175293412004783518586840117607843436150352457462729675904334687394773216800635262988892146536701257051133024318408912402145270282125906268422613107211617148470021382404373344743322285911140923122430223818166113023491957791654223705658255054192885102812160179396606554464203204695162475042463794697709246115977917629304165434369866881701835918868159528597905505865487600148693117899031161514472005815953302892924068840873206697636012291528550091065084273163252445960725564200107392546225077219486983342163663049709290193992475506428821382410757617770119982193830563541936469290420579871995155970136076365352651987723207983161556871316562558053173752222539911013624411657029529358335802027642098636382862037957772222480131005105526952199844629297385517006975054429368310358033910693637865881306926152189328943147526925614686240105206888194150794917065267299115026645800325141463540977453663798471407523914544823723546085272390299367902300745948981655605886322647357756438469270488718708525436389250926441674655706814571555927664451707747252582463919639680261762400129128134458017329914764446360855789363360251626252264915275785483881844766008993008040331516562580753773863703606590077055799799439677588183978411684908706347058990642998687894948685562171793363561182075594923481426614150827830739295656321052871925015046010735173576405255487180590254628526275651422296333764767491701089920261928706270850840052329538429514775666559244489109987780623268284887656682438476346430202640636939287154431945094221981815360684202163627544472148494726483167620140611930939146059703377722165328567826687990646183817964628385964130866166790195119966366892347467817713692828731349629667212827561908177254175312741908421946157269773676652852033142739010927292459651748680235937266587974924472101496721264575035929172436454111085927572921853174623215238720211324768155135029701877085976737240149966530422892017038368505989994214882017575234572430949430113883742436044738901453972382637279357593258543854495200584873636902615494720094723583538319515624258940534606644389881006578129635799834795077570911389308581895144030564303175907646915569760468975866338343484219570485655745516955107931779343885795744489516596556358190522266587669162105007277844449588448411245646449388355596331601078769379447904635635982335255761821255522605848565029146341487880579329214462747730530239295751113421974737137766643910761204133893604904090101155198556594011109926183148787694984742044182076426761427831164015825940827818119763240273376885626479927735573570747550060732347775463413441276065777703975819689774876995790907913937425932425799812346637943847433273363023003720065169545875217900219688199242887541111961680744860549231625571361104110461705376682523075708052495998941534856355020371119548479180904188925996242288352307605876860431258853586669884291685507495015104377737820422757991204024581526487374536398142440861197450012947858054509132105308115838196275970673276924054289220318537545134135125436522198889075627575902599013550503987118132365820317292830059461195889629922918748054742007023242004893903484897617230725584366286316276191049270429268974890870820516703686967460337833691936172173258201725875323432846545114040006718243125182392856249508400443575887950018793484104947063203928496277744101277215947366795760502672901886965015903764669916663434537318545893351630224983871247598023536113134466620676719668790165051002629753184875553196380172105801514005308916551594037440674416447822183786307720909442856201144217410712922839215443535261735116274316254474533248857485754093095610900697892833465868574907830913576652719329126930719671462627909985958612984587036906926825812606033243283038898034882893072513028815697969971824581380067726638223951868040904154559926651404561119507716850515366317917677658594362912851986979299548876902025416692045923627765147575627962766635128686621527983083163433326627925720396557452960370252253361276077784200471547947331636966403513305948859714917983429513706758196627309329398459217820927624920592740182443574207471948846805944608498849801581961788635422841548788643087104502493460169330175720538549689011264630831793352239777965096544100424646158201452395154712410719211039570630934854708576122930434860670856643618869500083591269425733738125842663298491270955931408277151420662431089175451945713740573896226860331750325868269031560799763046863227561812953064880286410903797667180738060862164021204837763174879052934048006668648609277726360238880349948014423073962652560522799009843621366933909078247301784181047987649854831514668169909151891932970553627973126360091053985562905675030910180097198263848280071884534182526770644880483600943131050300741877090372406540113149807347523314662643716621733765955276365674562779730129546164104858666914070544333389421047390233549847460202704566702745739757803534661664416901776397519133258754566383017272281397502278187665945466486168248798012828858982942200256785201533028522140570425804688130203945084867819818509765445255135051167224361819475629351056747518663404083576679943774347910011767228605749690360070207915890524022910094568182246105942001212446396317810514194579171717604686879437648469849367697848231307917192528210630214569540435036024344462636170217622841372301467913925090484315410648086719644314715133580989756870878546017746603018630760394977457097389912019404769254176760976834736443707769554819093777638400852226321870901332012673137261260660763837572787183009017360319943138378485380655661961743142881556666995195301503452672024822520497426807910027074247736828715633631451248220967616664409085134583402462738161198263875484466148439263357366822862874928746706753155024010861880834222816373643222032350530558641498236651623609750892315362912952315612307143373971894514079777543142678550593425958634773505089579849709434250025442263998542856308771137221742853099507648068023857363834842732881237177229588072628734082675490399049623833561656258236058075314650245677433940653110619351405820908282051229258426058834996109638639612258220803963172913708908204003023718767106251134955329320416248912030592635935137415851905348047594066901090218068850588990408750937746226597629521815349626713563629286395402900883204587302721930971600609694519920626536320047900722306097255829621915557211973553124653236205021037590260365784877849344577891912358510866116765758011159890118388648577782744637911917176003320767365356279822041458821299933190180455987837339683141793904039102296590282818393472808531325233623269865595684709917256474261834892382989357370180967066037759945975217117378885922200438844691304154331848339173798446897505763544600431886359572282024753595725822835995954753785776022251893582595285167714394714678412740810879225140616744015841661752532275512762828943715709037037321718993205150979932296567550972731453006080451780329026769932133837087396077770253529773679095429665495687623250545960086898172006136128787296739812827641583791783919782221174323311279391057371544544022408911792249382384581950356325987549166751915233213212175084117594454820833973998703539363631791297073498389622428283260540383458965865731152650185173608242492872846378174202412142931066528513517146943726796076618414301168974262420721285879546268334249701427508667301435662800556149101023124630072208961820469165260836105112704384595327744086249379840422361279082606385449967547428450982186409676611711272704884907246129512170897576599919431915515080125494470726050582189402885978600970043137633411234180661669339414553518405651235630449913497443785303586797783010106931435589261403353072675065659766755311586169791934299808827478465394435879733695988036942383120341652402194231152151752668190681782358451335052938835869727868840418910719614362239854712053123652404418600087764279169265369640882320517664314684322984837474893720253538771644255421888061947249521550199010638135217506019478879342314838889901197501878973404937758680091175208645140569980286985573605761870488818541102377941595797292148711570276483560416323677682118983701877114651587000689618649925395586345254032197905215832617385670819503808099125109783045124119397158685840514076800300053868861973718461375929715525363581193300211359773935618210909829547584014247870731057191824725423085763091707491347559234348195841554521566243319785898031403584153850385274208393325502344022202705374267316364848791415197493717535272835923104260528124675074146679744426968853693701813499848071748687596973668200710590921916114987861444285017479588833354402534434347118909861221146317376705139852428863297498419602864730529126040050478907690110221859787691410626145607422895760775718314044808811757237037226982083292554705558983644598226157927943535710287760072143936780396059100018514259086830826228142301173204760040543792252951989445109462099930106412455607705018389529096902526526006919386155522163462646858287826913771009019204814097757758679988674103637007548824797622071270994673382594999224171080947286677514824720409009490280820064879164973696758136414940575065179717023219391686494627917334648285315717900348491946682009304720334634722983692055419485309765215345374886456246705926938329199784484643718203476777785602635819875277626113334525630706819810752907045501970346722126655567381812482137028438647467614371057729713730717071411102248748004177942730248644211116985558793045985511544226137152597709932223775637298120404650519722994638461305663774511177617942145954613133445227313212056553324272857125738804104942508482671865506374468912911499164786845541499521403608583321300079791863443219798525488700043064832518030577843513831563305288300877436072236009106932147282608533530518560488101423866061120674533210270407321458604256831380813617235627438280240890851356999259168036851662693308204118928977848319628423827402148289062901610419599958370372264506734785429434326191717537687592468002438977578643007931614930700048302159691687222385467298876309137061992220380953997044273343856544222975833237820658217194869241374811910111303168686184878262319728670749178225079285914504179675183029088740010144586457644896013707602373736611811657816099262978303992121741027569732110460227030848534324482362536642760130714403733629657585099808746192358648799552000191879667947749376633966648707083152260818745118416510230787575577733050714221963882165811421767364397780705515011633642011020823662333628142865968729951543619352889486471626049097121225555014817397493954483829165930030990676276083672191634692877993562918992603855882425233223093225107945636244304965896788626776931075779118498860964021438303821576968461941078279573804153950948332615661960207516162256550617867523836723490576520860555476254556421031197335148443566285027205137253023182505435543405030124420061902396345811863432489654775183773569735344322960280831322677155063070870019143276080444929224371211740221999200199429259991509230954735707340256246110912598602701792726532310795648215081736713402826967770986051264876166476079649574501287100504131387561413699673895712361980399487265925113387633706245449060870989738348217885881730733420008095701538022544309549123425755611369943584212047475366128170332545233494463775412354752305091620036301169416808490012528579211870182558673291791538978552801680471301836562769692301265003200557286219922927288877347065152735133101278495059065578450419873073761565229109881562821791858422831718000695089169785076319929408286661810248760218682830731982537104479079063448943501293915323209130736471292141513522553575997713212566303523759676729457121502267920807261773481957853595272122690277051516226209070198409249662567516408549142042424201478392025585530912213429301789985327938883457118718238083505380429710672831306396793270679789022134586887624041762554807733371784064324434344413988579595667160355089612378393626572788913749235070612957441453306418714004558555246767357400095969445547904778862431271096336599868930278473071392744933398591993821929520411525267697592003474967056958428341102369239672520271764738342242651129132513942101856083456396413345236618346644208605681078165597047731764082150469522797794071627616224109985363415595152689789180280560578447933296989965522602237953915513480171232632661017005317304733919673557401040799463708891832335622212281754735049639798724229552099089442974052845241115608935669918030880413698928549362388312178460360262846219548526821427583742289100632127557737808062841893500296493902620832042868819505551031247971197374960313214713481339068171082295911616888054912333400790258631592412151278622436937416157014138618484144747253991794432084855579096490066170510635544938478151825049191631607808719483752363968445453105398964806251426878028024942919130312447015978917749056225610063940658886749667896936428500110619562177104234979542274339038376781882752987964384120396078252875346853042862319199038628689727068688576715710511938205867932994985319469365305631829224895433983138367129154883892843774717815101146220190700789674893831488568303887973303535293142306792825656206860633296401989137652920583471088454435165631816320847857275222128332824335629382051979269118286375910848120112499561695825845509913752835450205615991483432893819720513957216583280740892239367933484710602596328561294997419312061641127558489108174694689725756376591099744769198095167153595837303230975720575526142442052059097476935786431978403738634513356754709185565047759977539574963257747604092329566198135737950146982507715670231842378194284514992961529895734595821573123823026554038183460788552662948200241305284887351716007383539266634837250106285535395477885648621727099642352570079219889606380273027892919518465958958081294739624311595225351438947692576903165038413318506058446408735961849553764302806995287998456052015330386329647049823476769148188500666237610193464296908207936521494562133661137442507549576006497135887046758260379260938457995269275671146648839322769434916208941182414559269619463211136082016156132948347988727247039077760001178266928809320495928836054659224534576428397502538782485753883900456830947444757167566971350054378718396015891558206177369708380816196644552665433857536244668740724797954035145561414440198155213022631781253029041097711074746902611015829932985873829978864043763875866236840084151109650353782036717306988447539025576972965704851101304502275858257893234553315947802434462247363516164677716013060501872871782026774656062880883567516082515475050095660970780084636301378168151541300715776855371355707990785715500065055067296440345834504546673624092601287345233392072058916933626615797518499781287737556031632079418617822906810051947303354133070295937337122258654846293034174908342303954867143264461381507838988964083837105001474889864448690421421561770518610027273038323741038359514259528263106186516679597368771965462079492319952111314683073646881466143116515583787038862683736179601350244969069498602074011189832137499380457655492424900469355307609879476086035054443993706935399151627229003582365471664736383356254017339397882709796913667716035694335373808433661684714028248678953699597235147583041955221251916632277268856712907755785732684803035491163511087399789850611250588547115344711499030529680051812782346345099770882732841882289869140420122933130398851805035314548293867942060646922601913240318324986161556918402737618239500931211160035840978066366632327056764659703425124326049335334647736215933646488211020466442092392644429484969316942961074893365376849114223510348852083341271345875766530595537655863886845756715810597266834233985865471418642564920460230322206746575097608725083093359302647473229833804820730446023735358061855078844182491485807012231552533755816133969452269113575171806082222467297114874927770767243284570530460730730414415019814802705308437568973899698962840324337708509798500799828054677192849829387699905775417955518993136737601307159604869608983699562572674085637567789409099525807823164608260351511436143872787279148088528740860519238238169019640527995138310333978838360408272719979289854321807374070902929912148777159071448348480853552048199233991091919412198374440321518430368749653143449280912555383463903497068482103327382496493361690518396236645088489841017979276613857701780032883662725438244914659174899440940154343423848280914275989892332222906399189325050617947463255318275601713163985862655187346171649115951450515507391372489735391977336385412892463935326548382246499989795124001758833215263500563006900741672560954579189527756184268645236337476915818421201761513607029440886659050347182883496090168869795763475454907919058020118730371376395587525796342133458571698401119559315692642078976429665054664199138564119401232859600352924085493711229718255755300887219612524648435909029682177560612114497518368386105334614760199659437152732916906599726171551792675556614861976693398287234810907327418280096745427113275377677057101658260767434021797660892425304718215141217551430956042875862467435471605976150319410915657373331281286624728733473499279917930008379508093870918889192737644278807545085194206421394581145088527808754122215094964116869240655786106480483252318576768796833959033856263933072660441129059498841686557697647348501855051717146154438487287599789316365312215516435012746748373681764418018763615854038892344832709444957811866074306082401777874180805896667412405572918485130237106002060967147690732602246124817395734073506323801039979345048902172921993786421638860014155220733254736021857397706384358822030528807868344092493796883759164602271910463297526457634363805081460944630426906821825554412960286506099432045770452535446473582816367960498445919807935443907380602113989598373892740209574781855524721851574878673190670555717275312770614045225337617168577185674740507934625402190718620108628427570858657940421552897093706694756472325135794985321424818255269907724208589139360379923654854312929432073091540494658480282520406961324707490935222188326919630083130536501845001412799575673910138551105315437025205129124068677449322775865703218746430043860840755110398656362983782086376755374327176434171019971775262082377330052961704643107094888495468640002817161428864133224414942274612277934915608147480045630967774940159966709491917903100078796756048918409769673409544149888787551975525668856827233828718530722239681139652640139450661671999694927121947636705802620000738130894054299284647169384893982980737801202114922475049143691252564648705510645871646497635477703899505426581971017865012003836336017409352928459882603071619760218097861194306663715948353148623523036288875064159076426210912408731014547369730423178518262791344584775843681070093650512000307031936408959708455036467363413880822114480334177893668523675181798185131000869716176111200509232377078438013954602356650989066228244610185300050900493431326603940130907621523271596247403088168618779668742561812505592529198622066982727865456147252173451719722362265346362034886976567575716130896881922060116320641331394952977826181998792814705520089552192136823053920038969699694324490724946544217225422019201611567717456147375407736317856620087568921898530324960285466620936304240261358379873256787788474056871356157800987919420953054793797067402010405104958474995984016786513934262774438993232680918117251501067704768036274545600946365202648317516903706321056602056399776808098887349970678707853511563181953461651753470813478713847094233108976828588057542811080416886016764677261488340361242037761238338827600848246988807016875395530869421284904037977008891467269229054182436528822925144481263742181707769041917129913417055918365019168956850806001626575723764310510535144571900104253904414799343305859039756653913472836352401391875516664714568071876719376189064219334992930471934452202113331752392761791665669961670794464014093958490596573180933136081140647389684126733517754540692025335013938935944922316438550810465093199475206421560207953984793821985846543603574307897432905382315150418506818716641656911798041617951057832881596616039746684716450438439946251110649616999375210304439938504297812750198632210774762683666873259046862344345679631102660010852349600317960261294279123252909489067060785182503891794526444103236653891536674077967377123821773271209180172188074614459595783430776296866057921442156421674472855559784529265036871837676595517951122442800111479089824546628903618828451850765481620732273724464180668811112964588522496975495767862100178675853285879845478448285438420742141744497303268498522787097929619363736184499071955072194855047383464265664023849141147225446958843905509613506704734732563973338936527976375472945905190461391266294953475829625654818640331292745498799207784649014686638609957643246482190456590895712548124289088196154898447879588006852815910938886182863507936382552807987787993681843847614836498073938412753397569669322093584631263516666483204750339293748622878681366243614782173056018837058785063437572430856077535569622111254968074770644683648781175349102594884252440110291551903378391129542125200775361638632413371868958384722543840156744380664030942633496028069842672142466759235462107273637803931940559096869954304459943301701506756852037106033717922540994821020952211381771359066259863025561159278179551299932732726716393022579909724912986057103759441164458059166788207075359379259885714268006392300337515284673041077973092531351854736464229763208023920340625377242209348670881536432573371847282092451997395285086943991938045108502747556335438642046933052662027355588034549936869864514066097545668193254462257497973740347597960017957814211210380585808324318382923070036559840681515980356496310452275217366919442491626742801021605336126470543609465330727023220963389403672820596957036314779626066293354445532132604434669889680625340733768337246170172467735139207665191847430329254889187344581310639963212044482718980383230626058188542359445610015248212622784461450948252052001505324989157811233899633938762674641094945715803344889763258217073517955784680046845195428494516580398255523487192214849795183066016147753738752028998654181549718517909643255549100634815044823816407871058557698116263143040278472944451145498965832147938436037062447877216384646697739952672940978652238086873416882217502240206410346038911333769282801388991088184723515046496019478274023041320614231073833220973639008846605773795059494842128856635044749775983933727795297374110315535734506694600853031551579932248398222611885473369298755549986521574593307691885876367873609738087047290906222191409758857078777414595217594181230505204424866081428044980109468444583161185081245535937911273695924237893047012876049798688817869478269655809986191052009865705512458598291033907903675018572649725336747340353672974815459075686465873001621548874201148072492309400935477950752971093422767075795216733059313079344947041399307566903730407474512945008836301393551659719049595402186178206695997260462299823688842431321292891721382146446886615948614424233199104642071935260880605622963445423384430011617646876755264943881612905263827478537890359327748342597133704760590040597874975417813750748795256334967403279383042666892416505188495802208019953550779974121618797913298421219342355836310128442106074043128451148796791026844266322095588414284936670408616881441996274878296943042057131028429822356684195475910430919476853480145041968889157848367444546721040831931129440019611565565849461325405845178322401961485741994621413230752956593980918704053523559107171394785035502408213776917355112371414413820809622891916680212755004004479811960391597436362899462939924032485648140295278412922978174847199883666874946502090567602018940054910097196440239429437442488419775263657914490193420976900600899447336309083847026416873731072120213228133888734295215814612186444782987556089881554735419843128258561706450261305258762254790797333503778413515065734600120306062588482242105195295688683438636986289874637296661429517971968244861388789424008511628593790227963588978778654307249687861063998054265840421130080236573320494344611499310783243991269447408740240196087076068130755037967522161099592807102857756115610400946957594774151766532938832637870675826835397843272693772840626657124614425684492019397851510461014123388634833173269583447475742524403740605916421069501757685388245014015534109105027950611482641753075541825134790367765254033378231332458961761406423886611706318700631586058787526421662400565040117764086124647144073153731867642808389512854570112423538056543177126027404558183653189444534852718355446229863241911916071778749262152823741264284818562436426924209855626608102866481133850145863988283719180469749610792597313873105242005238535620956307438991988469285588629075808744970964941772108736812468259578363604536760637178286287891075090124135967808492599515415116807257669701475933077112300547977181123334848549638437105360108941122823066489275194261504117771147037767197995577014716692010241784610451379024370125675876743603483938801952781078760396850981962110596274283250875532539884481368163026306048199866467998968513095031634252949849406334300978194107718772091334048358799348579406577432524682470521333315435279219567169597248717796038693102208530697368266922273397129278719531180355151209977561067385507623481935328795959651927022824049676017899324134383381915361659435911683867016601723315311555630725997286219559349483485393381515348974247392244061632777662347294439115233104026909672094355366582129454278543194927266393359272540767132877745593023357685716418011908794777286672342708930701330180196090769637388770512242743203869509349226006472612862906401046736060580961986152887085964574203988139989333484561705113829456746082044378514051232352430256558800802989057109045959317764015271187676614143338727621754226228155765620007860318098433761797143793725308818913156663447597928016454680690665571640649541324566183614602359389246013014761612192089695142550689607116535226483314209129844718117937207713280012706174168461511847389209626448050840466960674038274923388626106878414807724155077043042276840119627030642596804133614378732917325922756833253497587364877028939320622572356855142631594006126024171851516171808475672974105837252608194891225580271925272675488083101923044354952148296578497335946522381795397583123210467789036803752311309001980104469556577340567559757961253656732461380214334392773972346770383427072213828377609248071281011199894312523116081031286944359679558563869273359899843033786573584254272365546822929303817467844688011378319990231675293908617996417918759024424519122469505154773761189361821510193019354712174209079069980867805315556551900302328982839235531491339907670276839675708627255771256938294690049121369184920872704024936773064486839921152828073166774256940771535878619705718236628664939637424766566872823023251305190284851971450094636738075743865577822741787465863149375888526562040163502843609547439804221867957408360402427558438622543310077673719381306247946097686459343681803716669226480479372775807533449640886132717359948586308411345891182120749900193427122825238643230823249450448859380669990071320568958855151684451444892901503145408532351865514494594715936297238085291527379866084968643295931973077599445043987819823179422636187120463095039985394898775456160628514230458572594111113114277806280069218495449779212062023841816515098859214205872814761810008951664429577355030859601307596083745348347512277669107604735589396002222454422621375127268550941685143344663550617129965979238594117781470586252567511240816869872165953403475747019992511906928610424433171784499014567224091479958747793875425071275401108339101132996809261939286739406370246545145750449745238907522619840036572314518293755247564695292744707916394354985206051590167704345167573582818759599241008553039207166978757267197352540585202232300082025346670534723749237446818816401592874880234718740221012622595280502564842573188657690265818900416820506456183348593715430200755830178008198200806604236455738657426847070427997727760129492041412742403096832083340035068208715503398294481834516108318528254176376288664774500557747179354476829582236939000178293982529084186323566761229826101838623135843550122563849054518329690045371279154342693435036533915028086401669634315812081839568791962756671681667760116853537913583979331221877783337385037150127354120910537117064127363556997193428551036417406325653791780322782774932876777856171705595725482936386039166996078872726164740434075868597616485208679884008145030694692936979682325270451104117306149535213491586686584282227786761432902172111240551232018611368026650601885469661271058213845871436716698909469596894829755633503663576983177572648512961801695481055619966647907174530331232814956590747971726110122100984606986516374434678984929887459730056189294457126269330840966760837771465537195862544965607801670179677547121058324559251073176030748980074658297086981149640954473116778224192854087712479531474074402034650634298556777626690524374589285908187394359047263009154068335179752036123619590401368893397662320251363416224214822049761137261938092129845451102269330803300030904859710022101434607031569567720573678092969064077829968997105790523199081126722568637001372791096687073683805276610297366796266276827136237159549493376456608070493598835629771679595264330621615062081265751919694245856945823413931243288340068610189208879431647994606729430617508125164722305750505729437057116144670137788225726589130125174726774249632188776296766519880657098445012091385817955103435562543864441838333532184646224270560800203276890240159640223638509455135477858235430225399337664668597613590144674076493344211613155423385297135269882643606093636465172531657186287757079944969326116656283450835399575892776331879218792182399656695188912232140475161316567714013445365427088283579093917144073718272069555933193663285484876586798229488483058633153002190400688955363765887827498876964766958533343280715331260805497488427835600456876225494585305391330964071261836928108620051977479927750417367714146513419296545987378634093670504548134601121632800080450010121111969608789756113350496343136929993918687315129993448633355012541367094545810381360264437822357055259165742028046473057140697078883292497981794721941969154446018410668008204336534838709371761458544270132257448891274122418779959543648279933951616483897938229330366774025888471852794670824805532283301348005000703273392213635678587462910643331171078419066788984934795156401915383445057746203348565349978784073674300355448476621485958349942507147016792432688743257804824205964579309448089538736486100652032399000661842926357487499158144905978423340035136958112617877289515780603805026004296514807798084338929464442825457988316682131868837254421677828011165535555846234679447195889080162554786047791226240486635936134299009632905784336854689300918919892464923733277919991122896534999808447735799796621517991272035595583157328469473544895158229172693574447240961579182493014998539975526418846562446629241966788062534088837978902848466137250563070484219193757839937829507110959849260826313827011180817498084087184628922828896069334270099450141751245705813831921048072908435253801042485475730812752823219895811377444846557009239772027351080623133177632356084679782137161593281767293529354931421039066175879927954533667873421422694413508528668041170477382100002068307557655876874136246740941702610757612136738410406455274399306675108863011657061852199642582063295454107931622521095952407040480946305571572659180944117066318834651784757361083140003046073032074744210747146057326827420166499196578875442972771503028763811052118006971003196542194559552585608150048108734214198038427059490259376531798598981884867437168124427247888500500337059380479501543291892819187123653941529140466246403273290515132836409954813185611410408188382304429558133066430205581779134473000456606148729563207160087183193619681636581863038395007419492809358622302672278299961486644204227320982378023973437414679748205887723616879625346643143709915152178264964415708692080607503965661636661146357077413412017762215655715274026672392688747709555442763061080958065600695684934579927102185399735309114438568909527058596130955365209805396789397389589571062816992293996313989418396335457905441187685213103716045771221451317600247939678553503203809349240408017435248283106047883458207467350966788012742624705420617566034594062212477470021074774294186133983020142163908348312601153502621250641837811843946451413785905818163054758043139970776928402924785994531103943052380267630889425927747478953429144245794251694795431950202751297852660421574079045091243344627721146031614686397085846590993829430739454210832996559168484981837132216435074262834319974609894486145477979120741486909502687067937929522127254604496236735556863487098327421085131820635581349473473372800523774910649437898894946996189588886452294548934506680078274718885033908832064147237383820717490173681299869574829478054491763545677276255405769178430205708549844653552532230639846470536040060121951108291132945093229707060937149753605335833939762122549305671004661279809755706046480735980090599404714096703833853639903588390731456979103596440073950869321580052194278587661949876858702822541907088156683757711206480923420272849170625067453451020695059159549851041870039611472622122574626035449796366475809827359326732903472362239902588283291975500424706105852774877747430694795961501524246945044363087461614907009084408767903395394967021590874168001527618847384396557489799518580494036567429429929409206171521659583676855462704012181785855352236224571994051241420407234437735800186080797925196268155239835312497867262262442869022529958675902789364211169354239756210596282712091862918667304722091951245903187749236237632245824667270437079303376211111988483192430431707901245256256857366695553140248242202046358717336032927710196154031984594547896891569202201850720242478974876789194702548385155853989121822827387347512553061715072953292393159960444857247103489613364273021021564849700514020746143564486037053927753264602474761749033802751121156894862104188785919518713959511507065174105314227029037432874824947224520890071922212972248470398197232129608459211445153827284099657934984569677043888910889927068743309317378661902054614057326304230897924325682612544022049427346988053858171000556166680548396107901387309828738352677486972942455464748183291699837759435170980381830575041684618632547314910301937192544651225639873458039049135886988390596801709441164056338805638717509075297438492932226579133677944046433841774779700439280788788015702913614730780542664567684016555894169914660272416253609057933321009496303068778865091335407334583531819256828064389321118875677778589017240653715579936931463158217170108359177876654543953846460483952905781878902632089099355161864726688481419776953070550391915407608531278954833098766761378858036902901249890877116327880295077495637039595685604348018238211251697524786817817999846599637217843120797595005384500142318471454200915459534944917006174811077920938434676508123954134442808648691467347969612391406611534098737465597023795350598326737169073071254211841136584105650962363955200493211627538320076947014861843025075509399818945121988469031391023477797492379598517357530799143101869905250669478462180609651033621659764798940345421828414594702912069322808767472421692360681917130055890029306339367378405293957797853277542068857317140259127250503272096249461222394766488506026366490704655848324942704982421619207238918895752236394228085373560239665291303299585163166944314456051300105282628853829460879915729813185839322357072402330669841656108443171690497642686884803098712006679743394581343178014707751602218766651135790372070462131344236492355015456047447961016391590955474538796171945845303964741053259089137911795410063034094804629854227356644543315945021602712371366048940315484220867997460905054127623228954102045805494117533662038615241055370214023684274502400669769106457780935882099248556520087088647007534836713708585415067854584331972423783570267262243842973104190800727016820028486553710272490086819852266368015769919949709554512779320409861418411018971715070489848666500233755427512138699365121662852905650228544143517526647225109323365170073505286768515215562741032009911113472857205792452109677523021831614210636794485932236367603897826741702022974190281283826472862585817873598795720609804915798444282589929073621026263642929013483023947314541654318370374548750135620503919999576801238393783677718141083845908206070210667039045837140362233867598640093386707171700621297323489699422776912684476482090029856462439773936509997035121810669417940872410027115498545414685411886832093329454265326700871835464150232623762497779496947444202173143641340705747899674697313340253386860958945721961615386781913141853899171803494105045802569546800296620070295755093762417474165746766187831909974567630037845584407772545319775418363810615472138063912214199420911735070899758783575246996961565284252404445174913074811434138522724046404603418842128508957768532362918113043399578757294978458342302294170982066601416484017998145060476528690790771143779209566637066245872164263958572672727151630204705776014657762913839680103129283269273299725409636259790526814273737115215615580136508637223703213106527496125825953613034087840635076379574193932321153231357012797086171772334244083175768317348892712467689397797914735059448592694540045862804988924742656510848874554735339985444122941142051967872984328641706321506957440043707744840191024999544345233606895501083777434771854241727104530913881162503680985650056372470854192867150491983698784705353325498386473625363553012816846512901028780116373388491223199553083542656555239041540290677509661657424562329346179380445523294359460350659840934394092975237029731671498569903218822637838452675103188653462851193294041920881206929665316723493295867020751148909321565622181860633063906300847933289326017232425594332999855839916331785943435820332273781897386841936709221831154419228954030886918252680297672958094219616488756444887591914287195866149448167990346266736499074368596078161868687114365199079733869614337186869036071193870568931447343864345557012479631790510369785112432845701013114177611575429977546063579884438077714359767602245527249598209981784889395771601812336852853695865609095156070438759431155203484041699690251944097361864040573910441107073744375818315400614228928886333438291532853670143367461739850403655941777832696172598721854880233302148632024733506086596742893901117223577717033645845313002528854107720196218130880482860471472875079665912085908307714804498186896975315086823000483401920928651372568587228640569324661030238690591055494170167468358087787283131656530976691696137614978270538462592418502472415875809422284287168798789937398521112301201788464447599038979958534311456918986228768144588148223245015487165201092715271285755340455976205352676954782431101961343007005332380192188051266657864106645079779985433957720133438524047606532322035502649302757887330844380804963932116706301703816766052176542422392093454087512053823852100042212260591082197393568767905541504616615620711815354043520454863155623332978695454103295566696687497013939830117347851037736009094690271073319128173740182567012459315636014207845331575485270434603295168884573378086183861028969644070108742012629860086453339256425695522270882953578413266722107586824728035463532582426378419593806036845791219483736638881666796699274423816674247718533768269988303963789027759007354218771398625751221550248531378573614783684268018212882243424559182390053085728430998175049552384783053264720903009247431357560684664406858356664206232707086920692101288725738202713609391092849942272072567588693721718919641304392484156136812682940676208742249071786455433901131502797361735006910225603987301026760416471168878564647268846575531764274052189469481657652588634261498439297749276661981261312138598277902224747667174824251155195330772245897601862862210706818721506195719757968715742271130800120107693567043864197472858402748894041604706644116024016181488713633667642616139639926540561697029129477940035967021749714109748052144451605924485212146875878760372690074776854560877474722603713724893016036695322166022157044662517939990287995798347199671760217468719311302361125132085775567316604568348936721993086562400869412714321142884402000278387732982871120114238234424470754592263185907796655482155109720088164347359334765472285390261163467417624499145563957392682773902343674992857700253782903289172718308446683771987885858351433945846010268931014081621425239282715609947563359724955721819288341051804157425056279601927020972978158929383564645308920699317268685991261217814902579625726880121858926095795775750567951022303022194170577108876733561350887742116131316782367912961652718422110714494786841521963415957525204110674086563886387542052047733629438606885179087082783498134553344070084068439477604587674828655770839603737603305771442437910242414561019269717134950649024562498834374478031808397634906445611569519773312700391826775900509110476017421211672941704630970679092643358398620675991564413885513955144228073998245555848532211288335626130504922635696081197522282962154467368657666625016808355575599027754212514992034217437630121787814998911684826570768672101762336346002320839466017416563174798262514654963808229483908609781180000670687618765375797844763497512759868007697312834317439971776535870883235730004106916520073481163416099903523833956825674296235353962504007183946810655087986415560759781073796583458813063208757982575876720320646543586378742130302752288987799233106458144469674109795956809251644663246918867943655379791939784197160168095027174331063072052384819704391410691568401326274928801509660926064753579572493429307515792943501415390861603115455030332024733239428504439145125363015451931958161155036649280865591162315223402348915391806086713516496455508895779446881933199372583831134055151393863841966595816277148324219467995819269891639411384994245295516298385905227786370379182811921261637671068799788091166184577877011820271249129077912432957442018791276009487237398032813953844751729416751727343342404277978642112760411900104307412998724713441870716406953535848739282273543249282054432349337449714549985822593734629730585491157552551886140580331658356090556777916666931118493129931873235434206248013518730280029099146800854622862258261870547256414587995258309838031936430257294477645896285066754819427829423447275287555182894002236013545364336714499036501864836473754612429175454648407345992270901965422747021861980774157678688037123212474152350635094089851285660875260951818080115716306768601022212790457200340551819370495790763682691447524788959178937493903010234907305638439565252776361056146312571116724378965373264657720872674767462378927780593760183529022628161670663792061182390789434790941929172037893488798532171643188350103310129173828975886879661588346371097052390194170648563189164681333730435317497719524266720902580680624481609672996597348892575056483253079955297129996440942414251853510527684301982388637223434434425633268609951629836150076821420254447335649745337592623110880530691205861773221392831117322441689729875633533351782839219403997770218287269147383770913203431416388116417322498279801887358712188013363335154191048270583789091705622975900253385824896362704152510149110827211981288226027391260976312305568509351042676752580250714312125600710789551217335865406470071136908962680947518679710351109649313737649750043874255598522631455804285781998717090954077475312811657746347859153830777043298338736408465972995664636304703854224192660539115707272322670081243418485985265484802022447705875163715758539964559336954993198270449101657007218600463070607769603877461830930812938107526579172679888754666301011500576003745550953397182347217040345053292567640752521293508084747264801646821460910384255379090093866706533689908863543007060241186812071624575536289786772593671400845023260709088023826011338466568278757910070603479083653057398649446509762125962116817626292693500983359282192601547182211767173150029264610642064034812798928439488389993812729103883584261983306764891108687722936462566811758413521647275349715362269439919987397578114026342700120925052120434514543120348241707511357475172016852108304381293436246919700682151224703203356932532151748826266582638003272689563728138339764773570136750927528816555121791138753282126606303752356278524978547207896073558773490674605278850229464068165182228443714295940589431910762371029896384926924031698617572871696435791251448621136710256545029765940320934008449494290963515581639367220966153160723627895009203697625984783824839074419055356459295427904884118394408281207176596388020781449391223169126946854580041031178305392295944641619740888443292492173598692261748330500475195028613370943277867929252879195991453861961828988606135450054576016914672485530870623775406678560681072170977750468428835819397852260735190473932851233498318181272512659970142113136820950917868778690647878716161826129640653844755438803022661695121467594409712991973839096391819283373388487049227468591339022559791743481279501779316708879618350044275782814043665809811186384220626888871597192961415632086566814769906457757847404148428363294768983248472119424439718663182469889244678011686403625651938725952190869192686658902849349300036728735311087202593026036390673703454398882441051967374963741266563809643622213140597562215848394344372051431405339701217525719930366455120843960265434091298120610100032536492425941869941098990503358570497019184767751247094504599532356055249840922337186838195620741026581025440297662633815349924512670114048107516567802964240073505037547061724589408258220654553991589555595955689064842758388202634705747565842597636623745653268508304547541146650331489206970373096618116076971867261194260796928491072117383376458370324183984450875833864728053905224057142073472187422813611319723422515200104788435674934594319874256069954168044403974992776976336800161593311259595684354387548677044120386969592846905553839552123433183510654065379301332420068945628711536075398503802442078772267669666077628402800834692162648568992243750719952559824730276421293184771070645453093818776337181430276368547435645402457242331180608502035545296181246877135234986412316767615141889299323892445138934337275922872618297653483827983137841048305313212849402115197066615059631277381490953309601530115060180676638309775932319987168703437898507959648245588202021548091226435398086155921444297552817586841121942416522889858267507593766379896689881645751255768001539834369666833772889005204290206603773456968917067235552276964445758787969123307269756258286857958163853604772576274738573563676547640374727931735791995293543036050719680785183746795063349047406201107668126944724624785168586722504292773350244836836298720003581961977560538568924224247087126670285226765341637740820800734103054447191851422353537001991746910455037100252752640663217051565512645157362971085042225407015158250542786562698734287242418455291674845792717478336664379827901158460813086017334978906418281246939466115391297632077385252279586473714191427905618192549568945850767951173637916710311141926181720785931505071064882367957774151107076121289823527264274471609552044173723087702310495127796936095218216002419849201089048856098892951113748942688625729467163789459305050673230978244343924664016338779317465135509043956281706307569054268058861169182788088063334592656483565747150691832282835929515548672799268995977889765675711995586979989896117434728241463863037398776866500412652168229637914987319192081240470104852801495431684951068885055208544520411240150970567727039651748667246673711816017421723456876472763809449796788619603884321577986185707106917087947211341581051862097937279109017002976225923891462840400256075474708243110205090274128553100260073627739791500288568872862986170350701656800387590908889519731194125397455478966277471870263187170495800588157944043335079660334058497649484026752009968020595937047853327079689869322098360289432953415341217607898074241825275946858917939498643402846645492211756768799334947136826719135276429071285980763186469769171373255998398529392009440828861621463469511756293898055474774539139118180426202114765274765992287634841959585725723977594491189183586202281486728273890211838728006178951168273335480432301743425908144293719879464482098992121744053270748575249401240112058171945497600898076024627358919333278251483721371239579207505707595022602702952773131378445092971437540073915226821438705206781992694099284021952829348276537977030965737467480810348428291845668557168412062139935652950634425829086298417283078710318465903645425259936422671354252971717211124750876599013266076887466122444037454686658515532741110495533008637673131955873008834632793264829226767743477219736725942937321542714670686028097901753950770038487844174050198631792901463177065267431773459048548370622060619235258490864859955048216677989397536696767412896847011132637008267998053205124242502044608323903315508854933653826671900391652837883197717171152726835051171344553122097627927698534507154657617920102776405226292544370514755017528039256946752452392044297650602313580080684698933681522907045079992244576936174878343392581291883172840564130376742373880266741123188303695179767271773033016810299642305194736118816064866607932740700287514082708899036532713393973631530664426520035113079261450882999457672577559817636368333685998889327831689150045015359529337072955591422941169563408803238807131073992930921618575432991597751961473033011306569702355501966910790793684209938925247349652161400925650108206456928359104182413313151965422882186145781524830299677996092155744842705932063229846066459696629452589577129212924397261617383822016775622816614445327777052529127437104902316300654009013368100957637559707745864536794230098390509654120875309002403781629952253762789622222295883834926725415075143712013631613611092867250805057629791092143796110696493375333366961489749076524290661546092644414394381768576731209101962783359338363863210454272087257945484535358490656304482669920927175517206811465133550880183019926946135029085255106999207175064458423289641619228117954198464517350814404890900900292973537772477186758941041955155320845724012877171728632281500144433152708665728790275055523015795372957976247808702885503876532642301456917856077907582409940527686439907953884073171989521238822460058153071196842320406410756396007445429439263072910908118709053544825229130694738109357672828130428641088844718448943845760952729973745116040095810865801022323563027372716740758781138864769340848449084056253430000663848710758952419136698056276196282711789773856168929373170206907492383525725917608717127873286098396746455083741106271968950988124242578478736699563273798748971095254795372761525223774636580189829413581119966404341441059824619731048476258722816384333134020062458589816749973934229995456211470180739367369143325649448540738491084923997446238888898156250141540876723931238118832587250890902796330119882070959612428779673201611044579173119388434147846737727540737054177573625781606196997588115739441207963804916877304141139407729982714043338325476105031256147765027312468282990425147429265242074390327428049980570264915115056597639141975808038155027537351619988717888347588040607467617873923828924761424048382013907012498442045999211104822580279578734481086122705291744454993635995358266664846064751940436185819196792389748888267567144703534873982383696429919137722464843090188770037391411503143817062468234856444191688075812742316297594892710544875203243657536748577047377973890540420757748475974532234266221761204884033349649667194727044969516074711864032021784156409034964249926885660023247695238760147990419103648591417142206357035461997781763469849746517097715656833417157159288305289251091147797740880830717688090449304863693647280238745317455699513539710250804437438537680839924934273946164479223831897253534602616449896499803139136194226863388602646827488347838474221168174351556871327720915440548375280320764850461272231809455805840554504364396029747187292403312183413385064800772098331578399582515826430184718220322664545540919840412173653664417832840344552516106150683363233611486357827126180851513233775466910537297019405587220785375221942762763907663600958909294889858713113881336109948281621015289604579709270784894370069562634271766782736650062252423013258870133753983992112408340793726739499373066115639420180366459682656807610842318757690934961576372200856424661962807039753453042483732990675280126592140072936220804471771254977306197933642379020144026304182676465137514697289819143907658336753829664644962408305397311492893927134130905296785609265829316621988774756989540873437989982846533541260903870091272323493280016847464151657279404525700448917592870561587484742888173059176466749775665107093090664356490322441675370150349315628773640964223050923092161059176619840073447096478659493029962174098161627406518895127584576386044677783891512726706668491168025156951383777506805072156829087551080794208644778228732201053155087387081512439091154369611120904083221163750902801266156532206263022725947754336281231022618717360412706361132405293739659025126327160702973235341169347830142137271635175241349622619288024347303033964717497570994771454368153525611635974240909848866059907386389382230158954484928054723749673964549283153049708258745919861272072026534512761784483028366616971557262268676817105384301806375323044614840323576616852618318106790243978438250641711996212515759311479985548787043538915866141930610288849871222198646777757726378800243332700740890109950455352488344546859345295095165620039189607424930425265796127731741830730205312272523704174634222174239663536692045563883188133387177628927157396659173578480987204717105610745787135828166473881327627387473130835136313086468697864746480579937004321847396824315591367529859197495147853355360941317446536316347224468799349526018569226300445128428648259455809050565828613043312041810352942374054661676532236007348172157531683777464964357985408013734695941704174435376122498544443509761849077587366291856674863452310953110100472391490553353470135925986761516299576301261423463260344999122912143409502893015661683829758159003245128035160088829699157723657768214953388862060037988872664795285200972191549089197125777560057544529408727466074947818842122336825402416056908079885769936852691166187000315660060428368418038795091529681885761043327082595075025799874453622155912196779802059456022791006007027451481238915707300887851129658151630108078065717517836563558150796821367869752716761566211451600832609713123793094902018255242246479518691081571233783590976225606070502467985710464419194890143488765579819677797907592307185502141244465170548456092435757652095261420071935789047685075921465330239190807610620155832458183525810801012538335006867598861814903534097952626656104442982140704928042974461084433970857740043059549751192995746113579586166352841904299562447008468608540979122027113098005635054198142085063257799709872355942987292329443822835184943008257467457135576076722132315065903290552779842530592832836459147509733764678393175067107908026016286810836334833109798656909693386810375840161425184075796045261452834256808175555382450153364446738130337466986907600354196631358021714681439175071095897630098660380879633977645878930666984093448454577402243590631290252605515022707882731984336088404141868012006183045443773079569535876704890925723100798953319826506407998734703876823297108839668361124390067076781473506825372965904554656732869485245724301267348120498501280584572243212170706888553302069444502016141545752957150227914114676614850497161584309441112011305925852094201365442864502287862019639149685769673369638348190898743371709085395907273398188009933385525479506364156786327266853518755545742250197572347152812093110267773348802284549616818880595718648747602095324125268646079874073890540377783011475494963983009707308740965712634119138761935085162197891032341769681648586644135525721272450002043679070967307879344766886044181248851687091924978343016463993848303072841985841778944365911884279571627602429223030966781602081429922042786315997692082553169649259030013129963982323065516567433215536995869848990499117747728704288090213506155800149964461257232683504592800321829349790627764489529411750512664083976444704650764700042773280176519884007837295871498242024655300204009151068279672000397266415231991085577812471559283942206660475353433923054232417485351475034166326636822707644748211450367430433593626490723592907538894606051115561391371323027589541158454191813272758715154960808616180838850973879313349313912591750471967572483293707176261747750546603801385256215096447809489479309664305812005542368561657148195005917830538873149226678713849056537645004867332801719610257142507311941756562775465254144831647048250179819798354364574939323125572564303931656487479247579148793830327113799462247859051813430978941016205523601663372003746596693659761689033172763904994991515623292524060115122319657418809491328362792901232353370673694572843463546070455195961625580564569142876484578492826008983173831797079746283680896239078475468713475435379259941196129491986415595362210662720050446294895985434838446559715875160742938198891100491794278435940771219294042157470693010206190117290475987971849216851065492556845504270034477067780447317599696536334238174759332519987405981023078589416476029172561437023958283332862130599093916798029644815518932786506899080126843565970442473940886588334198100736708811279033964571825370317910306187210437876038754256257963743022264600849944694308048558989350542153382911704839728942395667367897813812588460223555465987746451921927832949612174528327135135243388375104857305833078625677688674703192762817577178509352825414358234383683637862654260640558349953515162380845300153608798230066954041601983328198559451536196298306586726331209983039737060504960715887377084915704072201315814504191327040352855444783679274179022035415031989624442465090989166874337645550314943452309423990884871820666642605729416567220701553974021743483382032741883248441563273696450770592437605341351943569786007789466688626674842290046092528486592823784406695418979014759759840132495555521718674604058038827492147110397873956236882365586482233551431510149836554305271534204725935418043172457379936254938716740854975538112640381522475090436505476400144705224871750058641116576764209778309120634410619677162933105557864737210003009807647871671336938069490551390012955678436381170439491573615916159093040325958813608177557208677536856793021555044144349169799879203293256626676614747814464491336776118250149327633290321497497759204890506235082011813691478649535370389671337042676396613154064940482054689891228496136728408525447945033474542232035381099797510941482149824926477373865726324943936478123931851437179054016877471843194195670770226166816884402135982421773919453188496360084110618319308564783168041558474454472567114253225420265206967853221046891521596103096563609317736791477055587052486455695310894838196389519356352886956321182369619748257403351687321515538831303507773732202884083353984453276422214219435875815760592954712353546400249046271128814415030739820166339653723772853528305081794100140819599949033073993855151629514016645724171870367745441389060575175524274120507779218881479344419061341394025490242001909414719117708737241058261380368367090118279755807725563952638245493766663001066650576063170642063869785048557735210821144428146750047073095654114514424773880138506171663069269915266371457308118789412572285571364131485564036624692059599801322662503329260985308602584164097614504803435522360620339655593927310841913644848699557724045699226302036505825944517982623931807504269589783242683358244421793603602833019799757291944317899911155137265244013239760332607099725012815762275470188238027323308259573591893603132938590316427759903513653299414310918214547168993227055128270455495365730884218071091431637118873498198407324493772411527932242088211160594682501552797365046513123432464118204804598410654902920697581328648724429100912220124137414484429134317674274076299635454108945351791688063905280249005794927555703228417640642668305970586483241279308649836008230151359386522682188058648494181629832362947832853984626993334860789219277694863778373071626691418914014794954546066464557513892948664790347060245902092320886655836217603950214038577126003515861462958260226924815257456899108984822126252544597831412600843880710879071346411443688803678772201577042362447219451141681747105273974970783719681909043893620273359558660413042453724453432968266376179642433271657569428159060852579721967340094337097726800964163665437721310510945782740366005859716002760553553406570501087232234169427407561805573912014309868651799906658456038106495363633462984406938671012118818724047735383250128934870429163059733787837582066958273803743300626911534431172174126903861557131942029288157244135121818435470661768867699591230311506835885193497533972290496634700907157251812261366856668250808653344520253000797228018752509309001546461495617687145193607751922853557194093559604247158638888395570528788283221013305315822124325210519095273548672074534316991004632633937218359537395271395979336379636618088921117618961488325292486838046833794448803951253805173211366240201166009201981679713833255118001821630668625230926376823688042469612750256242843933341609154651968016007555695466469220045181869116436193793171168376627009315848185196851613322076241716635645336528221588630373468358962717075503643209591636325995978529079946402803659647861824227585621375592528062679187681353107288570669883015207361923436615101615168591223845421658690468004492771716402155985182128362210706647071556533023122437292594323058373065948373146681384715725416205428650042474029895936623566732653047931505251720713544640355662705023805286462760693758448941806615984333852661579452882067249996011321121162330387678138374219841157537650073152830023952076497967567304117205186689189867375263394130228198194500748411927434396975695127430477406682676194902774592494674079189501130808608443331134268501139952748802475705376198962869333491732491494311890454142936526494862596085785752057671910708045651510773037907832082700507274777624938349113214949405114224184034824243664148456396919244395200335697209167251644304380213733121316495608877195783082482590445696244646127483296613185117618338788367372760911887365227936869892024666500041634804361334705834936665330396177865309995558030565166719822635688435290069236060516764644229997739876455446783053127627896378880583798683411282010555317527047203020829919073053253957439257398621661631470360230920043153462215031745822010625233420549101341578263483030048620959083057991702565619645837149742645646224392244627201856215721332120207524740339078977033695402220835831585334227220649877365056651950655721198157633241170022265875107850526418902544289248910492266994419305406574830114708071719558898992434315407004886919416056434943610634574714840757537352752495938630428823200838401079372144194683430849138664488203626545795876444788296673656180018608018354849994228089643740571072457029794398165629248609824237245240450165778832978571436626298349723780526755395578778113900197269380661432696078980481988398462505063599503598146870074603926969324099018615093193677206070739092800063476923739313560595647714039117880803902449153415176094741628161118801945435482407404917303050793932926965157479124148272531535509003746662331669118654839868678266009192675192523238401938899585898048747624536552800851513842747068000946603667686339326013470182696346557015120476887012624425931583387391016587287910437580812598307828322158445827452306621845319161824311944553265052306216376136575079725597215729436282770692131574513728168697202295013403194541115579896459245039178289041906174223259003756716030086429621127130909302277497694191065829364658670924400786347282357924834414987619519648214514921947975795544873378921542025959285345531705937159943564665098425893524799754628767415172279613320566011675781778903483561564479126185335514543243316332224660407175260644557501199748536426420566302126020495893087073664593466811515148441200113593046018327379835350902270341792893973877332863745052576435606858555986220716357427262533002382332776224867881994182502799393675322834875493496707868776261044017059336588608766824084055292412180025569130981558333020893061875050224809087076481843624989660090018019940562897082665826615981680261605176348950360485749338681482313442288409389572056403639046822522326176485064511672370489494631470232844575547298446160683525852420351058190334242927210639205793571733341584240111912432460752105572663250746039553399795905682827731057367306518983085004073583975743297727210157018452898079687022542538139714174790463802817949710882567470962115408587684331385409769592949364182826244971687986347964715703023420665683967958134542074600804765730334078211325059704350204693516202744410718393113751036268050483503205818689200328215185099256573988270624826243635570786673546762922774614404808679972764805905205002052836321602651112709782968108532823803456354317751987074338483440161964681796785538891405702440239358264747099339705577426194038708460960513965885098436834195343554293776762496955987030813023144117410059458104984563067755820751842188951889794967620516410311778404010122945125814420760487000712644885225038902596877796314516306674178565200981949629692216847113561679713978849554821952494612821478551128743555224985888476728977353240123573528310309517571270094216712090638289567933349560960980284711628169765318071547878777454181307266270383266189202636479190764919731019886371157283143347833445621720202344267878842501869471723087971515767674648369200625631834446939882246629859855138809609579224349617997375723437771947256393803570101315931938230919605987765736835179866987640895434962544237161152779952384577289941962257820788292686168023187067322917931853297756462126002970130625701568464725405683082171605172810806843453009462690639118981845899093899708437862066305238089191716063482196978256603007875840615010423237574988405665662690917931607760807408055610842960229616716640053437150812389486983234041290597658128320462869426706195049714351061878762021850043285019685630699605367871764428239168211946912721640576523480065536305936715072617315041993237477831848682832739358861721267695000510863430958909500228123576052354878617628295666094950732831009735825781499617165742589165861228630222920232729977213719704392719154407409725919753427502139517087785036121411145800939967644407678649501796926774031938462608459618299455991671051031936006202785195481669670282818183774513710430537083229915847291319214033364581901342794686307660191027274981555665770448986182747463689871626458529034456315024074069950305100546446188556944472135544153648410138263574630246411952266624761865409976232480672759523135288285962018493328167649460269450132470706001882032386373556041211540782043850601668865168590718146911293668512876307612183055754319513424149317222184798241418831977724971557899892987204460948739142003413351291268078275308680240816902142707601089521796371476904147998317449643122359525123310556833093785112820549719438002411530373664210875668500819122119777563575604164602809257254819647038081413130227818308678661382124461672822048254957789193755592724325823846190777346728271100809948688878130609095357508721117650471809359245719289332536942368658737093656851833647392449692437178927060164685607853558330788986573949402544784777133719820775867017095055356210008144290561852463226255786941336181218751255546746717342404709634467277303944857599168065701817670329908836865055498169484852666355996267500381168121861129026448779471116253959350081176183518246995758929150926754329988216503348461117375489012036101506645712756933765427149103179157102921662316405622425911753774629230493058281812305002522072817159305989675220987003542442652924171006160225693807454309119574306139820408177214343165883154573902992221723962377077435642074643219064214316012610308569883347069794043445126280086760533281326845009322920206636995673926484904696312986290851075542572982591886856789405501710178736160489791279296088081480440106978411847844745531652161684979094176999232904824573219526047117037506149098557609657867517921731244782170348755488010826535707209709720081734332915157988055000645897059756194053542784703991948321158284331678603040954029923520049475772671046312562743839695990602664051249062245203136615987807653510187528432853707124380969838698478824516266547165030161411220927112778002711239464080756170180483471761951553982516124487952320664738511462504354964167106120768935061185406885659118596473239031564631008086908783764788562780077738709451208959483236281326389803486809047646498112949749872748815873396475557187249349557144677712902141868358787736048347724956109201824334206773825938484893038607874147903510261183471154594889338282070187218370851546302769265018995227758727919859624599204827423225680664090317496991841629828750823948523958133606979697761931041430271889387394658558865066685245510674185241667037388242172346225402950149635182613987296548266643874053262694114239738129400557625504695274045995842209336213140828902964642628812370690723778617357128637661115974242408501150408186199073276716743619135016675130068723926401944796432105001178380115926363989973441664082013588727377741225685586957137458121567168804730539397653735981141825388097817323251601205484237814569448052791860437058378707888694106024506661139796967934544034407656687156290171436995788691713486432530257897240015657729890799407928077965612654952287933379568481043198991042217245115964999796723969275620471500091682405057399755926526980438517083046059496036266556056084607297947532647764403246497777872304673896568236974947331601698881068029404665267751429678632942802327011845393747085146689957967057058141133074987335216418467486196683351530648139311076069395760765452349462817987831286144240823915261564256561632839191202041418410139483741620555639837429535509567601226988629358823361399551113333282180864916116472876507922622023085753876564029395744081997335457378155607912733002017454736987753473333520542953539713942982594536567221602773386115534766889562019126649709552858421301761423721152181535357842386146901914254602317785561981628493665260892298090710098171701894038148829667415933441431122383532368547692507363928445986726860854017282596732575183864671876720274202747163740401792401584061068727218795987257886081191352360952023992366783231360540239833911004142070205591764252468076966024771818312246750502554474182418895100391997732685081623002746724409032213355682669704218923396919328200099623873625890699290436219575430100683805901668630221053722608442137828457727134190924763283024705632931751623037753336105788979961555454296311150241361660328069417306667116306238654247535304875976815307805875900090807245513024640918658682875301254177337678223052722495583281083801235110960597608336613705695495450435334580543482477699189422344793613419883485834771414375180771772682107760425593158154277844999784917816097320128988300510761882390939069264824530562477062793873249181449392678350550128317173422086229590803466135536996411513152162385095752815664455262430406475495288534196566226403928125929181655275749987856620000075935939802666234303506219829772727293308610278589890702320375020077231051633326928005254091551671448831655176248955186446597413279107374686447599430355903825432550602935362646113323769125534401777838968188691360426475716572298157941777340866587648406689990721941635568009762874666260717222265827646150726863525107899654712214159005867145996063025082350141734348221468995081715550532147260435931846644843832983671567063001904987212069061299094707123026622161763584417120777826583731820572387892032321556828936343830094952191826288806424216649599913539504988481226913589322166334933736597173273766413932955987325060017595835727285125001484602883256554394716117313061454356078315400334386336573356546577277345357700069591999375676295103270785993289983764458286925116748510429124305907929175897517177365723213312751811831012219820940293592697057434192391464657711608042085287832943407336554440105720307574258539351852030808603014819798211973179513968083965197832221871517807555985744074683444974709143238369813318749990693880493799587945790220479044515682209593661073318513602474052454811999490535672599017469010842161208950022730193102401296650224831233714519491990613762140779368679384729068982180703530576225249068656459217750135700862385311306752062374865112948856591396614383466647554332548747316230558676242334624924735013745093004607102055445715026862597528794932884547031182844701330343923096941170949900291370156956664870583328597037874766152956634254712410519533040570237937642729493612079160672898973670719957138716242780273737737646507989338817570960113451487253014559940345209959001751928613349352796961811557571587347446221687980713293400699447898625365611957988232094154798226194087260217502642610420963580081786919003034023733861635952368027668050567844566623660727333356951182478508498359663689472574015811055805314098146966253776374391277163749783135091055131081499211439704072957212971057935899559870761958927989138092390228202658154303368774201739059815831684481509191480272409649343559138593832239881061017006587812769331484909080078164029800466507094674424786954319617748504379078481118220143393229940657530588815343423663796217274221800852602090507813582112406461737991712797334644125183529386836617175386030021875303630424995282775311445179512489251110748461512930197407800024561744049657997880813667456080331972000445220063932311211179316211463326874999683823666754685924581944570831039286599345971254916738986981463634614265335681576041252895772568685407605871051654615035215425176991188150784685835869272102705713624012351295961598241435893273253884749396070638628707962051931609138650051758955243756745576584139923781329206488402960497723812478010463356025566059987012467447789895441034009329519691255217270300053299311062839641986723897414537601136043100304019269295177550980134539233638275666002768701904295442959525139539219742681928156689218660710451429550788232988652846829639932791706904090441252971179252793699035452545897535462364129337999562621318099880130698620170237962231190000579289195501463505270710891878074518877259873863929452540788153136495180666677059707739484400786779581885739343832280294528388315161585612488803928489964648482466918739875146578688504321722056183448024670949094048236213871060539878936287836793738659671585065326588836051104691651542441560824066637065764284330320407979579605281137379103426209864241405943759044915361245516168027801479557332163391638712207263553154339083374141011531148269266439843039657390666011933464661205467969466467280096318835820520545499906026143564799406411336605285681611511548858819185380162972634278230814972661693855347441360086799916774889183767584018730011953671811498929448922413967622963240557563087863653224513870751606953939027306747262870702463280778634082238628983630555821796286425363633338109616290358673068438617002753095234148365214630005556475333929133895634997581851484980435577157231206171223949739519976901188896629669652581402022890030927665758259900960813423905331092372451600019734662634642078684377506433388283203888249093808537914455054204704604018612736546653009648353612997418445040460793046320150148873395949776063394959268586850317616666921159574970648367008531043306437225083429235749955941511218411850707516058500188294170048028697765056789238023739939776409631441240503291496946419776322631254869832034181063334668664144644314777833755262872688854944408552304203369265599385782925551906429895510488939111320806783600887657728340063382348074906657349292426188732815935190383932438872339620582224551118176720899236978662657610121614688626778107225307979922041503887792465758402229059021669960161280482212937604168419154779964057058660016709429450289200867704992238243689444169138640834892661314016899129949956443992140814967650123925038550862500800541098963964993099501591920467879936639642408886194456072762950289703465331028261077212655053616842948604025459981604637342116797198479381875443417735983616680552758376249706189127174521308018745779048587898887940874627634459886948101237171318816428746448940908159471400846705447754613603619129406624811980934514339100064379279636347916087926481718184999395253406816047340598675788300476089202973686331640611303990444326333774100557734932388793384744429091822658932669983151838552476254550250929566598169036363075231259834165532687888427474274934771540940530887932915733299694713178896462406551957733663291151084559108329790034068787215893308754233640747290006180925776935385790346876721053384812046614515113434511606386193175982869235235739870303069791266496939576523025004201306293495863375612402617273519700507695370770302160758743292368235843721154643991248374974377464784190139809708722510309411705884452078932195658642614057462159938289470175180160553441884316671416650964246359524509920919748427454444907048951854662198066401881248265526518664757365927155301792991800411498677339439471819509341546194851305509449360727866453659326619529104028133238011620596967794546323261338895918879102604164873628574916747999148881598518039384635101747051526430062276559747686815266091968702501488248803455103012684423907668870297637911513393432604507970487774241999381123028790279603904575264825510217575032125492925299303918514210141290343394235471632379286561648192793824273106898247144042136394651311380021719157104832633065261230986173258159864560101585066987405644954813261756332086800800952217852832091757723511641777223432554611854604640252396115373120578000236385298377830772989706350128776877077243594630732702215624204982333355926802001341347158099129957426909747511864804924321313939870005495784610028823714358545856692647876109167454626609960933462855386120905147117503704462529499958149472948282631137414670043371056213871329591772566955411083609822125193433862495858675753910452115517899875436335795953471178870405224743260150448037862342945686878244091462977471578982645127842226641887098130522106294437269583313021444618239865114141825049674773950498583220439461672222069638052942252716367842795429372299737010115654581654275553926067698333111664036214632920233955595642278544111226774642456892148807048721577214507501721266882713613713175413991248439575970162858136872621679892441536019301701918183252177644727699906161370096136053553736895468990068208470865924410339039528471043766518170206246921035287341812534421032689711929644980761416143694179106684919298223395932116440238862139718724135530821694844557593172320401842885607805652032718900076770421287046154027048961595204728982053477310297511318296353746606907315967758730763851176958021202562536115520282418625695653057946601269899908380266690942101220942909377666842620630499161855263857213456447936462165113477186284704505285610309863887074270743655679156400767486196408427602350380745729267193524625835878119807784419589758757775629332744394824332770194661714311581407026969835517609321161889425725788618630866006546067598379389185688002206500532282614366567482561140048049952985802645086396019338507243068615889096235883224922325956451216978248727801440656047553093211248244190334286292136359157217481918135267019370892643675694985247075923163964686908594456581652826492941659490266197088446127636495773950270765155192038137768464692265039401632020106839184364187290285829832087037756565347006267970792820968929636783019093312513872767623541008089780088752151471470600664931060449033512407942477872494625383871066358443686444493451221441785579656707373657981537926605995421394212664587019601977178769477319815762887139953359532865108308922688571836071442304874912779008648347010042256780363619694138212044515776052078622248904993828864005044441836275387972576362859864430701650494729750495133295910550064392473984791688832094546411423990213605881558030401981526277564480735734325230330819005387730840759299210828442268080946941331554152631326587845654773045573378014331749608929026141174262780550842012065991510781239596250489973371438637129661108759422239411376693841630406184185581628363967634098677728852969966084415449438775744405596735387339400007269232771108873209380829454343097693106736695022868911674639214349589138431264562489166126556218113088929038544460351575973598844215214799354239320288922180185983291095772600807972337880682587285292789605574977909128428588571056154276189588546567697308666645442374165026664032816098854644724451786564609465762567014851726601683800897066896900151522140886196319595862685187909797511263818497883621341399182486364744686666569326817242807329714533689260974304033434262944948788979633771342579803961851744894310244786335706312810742929725464844391771944054075535361589504056490622463937138761171730305747261692564564790855465952572520737501266500205202546329832184067837022965164186016839899294897019674178212687276197056898389337613984847107914263576790200969397340627128472127209609512725779790459131092141054678976660389576262197637295162461541437750356115788987428916418626953423816371120011843899784911789191731648373386520115775380683509928125542225043229919949528994829253583064902257373986711667943285990689712945390589166466826769484949440917778705176314803700999578517201729494616094424918913727309294151162470617871126010304059006281304396415003718355626765388544672284493652036153703508691876070439806103081083900741343932619307627138036060030798087494117031439959227766893743126407420311833233260842495054978823112329974170375875909857937811795159461690130488483491714564228208957777121452544321082464370334580142374201744163655946399130394686348896188659939586124841042389228227205227109949328120283838527665822881655824930113326549578891604353585236169855748479786312052709221646920927947731418540072544004429260108484123949256405705544232460729278089341097677001706273295366269936838959919272976806166770233016005574134243791821129866380429782193671874844921913269471346242199592235296143596410881711693480469815176762338395978925743849842843660040045387005797515054900004757089161872621717130969720639659090977203515874643097417739798576250986865907371652714587545788943105338313857544978803540883214647055632405405160359284199755161069692858214574023941106127740789990449315054503886596831162792473915781538092154629576131398645472148272323908413074183222059660939731076517235398093141209134936819729862189962366351020352240290115313540568772608863871494903125356306947422844128186162297249240860445472673920267992585868641121536834594563319336310273163409029501646065330928567361984678739948591347338710411410467984133688253503116194502171859716179376708265925347716446068163914080621566234018892406431566456591732390438576753725336477304929522828789893252729948263349908894134370680735220833707909953624039084983153857990961184747056141593412762970352691578173324682141252442859589000552388932634850215539394014471856008079322513739991965763262292379866287209153335705729407148619523168424956947521771363037856793629708104230423476651647213083030049379162168986464569776626480006264729094081894454316489403114285380305347044619416333224201922821452038259930172355827688600338877664670719658626801069919287669422950264523509968503759089377199449532408015339064534320713121734886957052527653165273347826148018072243946118598814412854256097393846201303512198392108952433687831361379036685846834902330397173626590999498796807704609613153059932176214475861115458510370918712482834879945320786117424206017537916673742138129226146426498132360851718339442035795718162257468824404420636399726850228873627418924840190356526870399097425587977944193299611642161594322290117509344090634009971357618188580869670892690997866606018927183241945861569126979575137192443162072706567879803361488219971714873075265219969061212231460856887340603181855456754849293098823434580519077413407607524768042830157238122013465843483734810608647522055415333489427138989428307975770987117012806304308522934444577583007108019405726202529150387738776666144965798897455935320193351529515568623062628131580560815742932647548295545225728893422783427457417526490401261519804468059756997674502129076063791492517143232454203412245659328087079331548833984219760993219716357661475294358203209314834356146280187878201947884906243245762873551627577588042117520077757615040780209105051060403810759784200940889013429567232896735394494525822045488351668312549686192573342520150673051726084760009591541621052256870711011947004778625555030924749710978372610728508409439469502786726866964643689351986268414459657546459637584839896812206885783223180697110905650607838964089098992146615218726462727733446847126640508517596085636736415537078098911970280071514330416555949887070503558843329420644634003353157784343986764381009986320580625232999405401058449816609841125076075312877195179327979737453317935872173319033629887771014667190055491422727735765410106280026345814611309028703824193865056141567075529759927307263123954219780952732951349653948927595514434606469939649693433903125154157426205828976346270973882123621557487076348884459938911589263813840546349832021051980632160948836592527595417036770062859953600246779846268644213806880261665300876699358400882757772098078059561824124310291803879167884166259829513346902741526146427806355488830497703520210813395911157988304334142283397148360365340435824527597691852756333178355278159827740411827646965457711946621551424498730163365438900934080470969132818817392540885951886847829387619036827903363578616743882597904109940302095400231152883212596295465031682644543624702464459867418572487769194346218443939871947224889953214025417519471327963190487589949698656012628064573655800279584838899699963396457523831273385084726821781242066223736748646715266892800506910275079960778479374617132919917463958087429645563483859946506860248081393831610696103856508203065484909944481537502431844336855812789056051839081815493895710328685905158978734019975869467404954631540851533283301990022208440210397944028940663324236130950311951314382236825171701836962812522075562154707595055674512222280355817695253591844380891038449090228219841127992891561685895519178079989752109328741849984790729772716679728989361239365107992557260628760282585064597085068563339346178651613668862001225582612486006075223895857724987425455412218901449529139836617507538501549729031594828646635492503697908829395575002304192430073264257039084276262637996043529109042692947156960080308649265953381523537024784009973257207942140255296505562145645206046610692771080899110717424222411750496187681847499089184598176059769581087245420557747177286934311441546092049903263104318313036353004198814922173684994545640984419051266076301858756507100320337023299568217007196008597462947134867196263941390038158096088750648211578904227856577724386059054684654048095408882262901234251349303450738199467391560217519289283700695410350396628416021899714694812009467112052874091541123876801670512586068350048765277968081897483980866956919797809624906181296304039889026728526916088787165810304155360456015362592060343225812564085623473867314215498688166011035531768677047394639899926079604749792518175220113434293883029219742640907108100191614427745971768180457309367451889056986805766656817771345396812286465866733439008552789760420010080287350805989655207874093591933371285201187697486977156338399645363152994321900330825487827313207165422266852535199031856888843308601522368562126196331339451968472049987325732073433900179108319747038214256293893505846053913764076100552269740565526547555269052588060666469020434628217871262714348935104785163780647680300946716941140351602431626358271071566703995738485958423771641865036012231591038088506354436417718649126704622937941456023708349204059304980106413264073001955097281142833379479085501001332312662510147181291198715316257259809626420107517628996756504512176791497597197831922190175172810791619106988457634437321517875414442380272576147643791575200090760999523094004219030856911573461286625884706972067910837264150423757243366179508578590054751495588378814531579224166821407327986797994406430364518686678099585479937504820660525544338447916693736660601631526954419959555484215057615465687505788531598201548067837440064378757153568675232949101216680833295522042597931586867683922318686321202047267359849818554469126368914283100813725595276548794858160790335407046928141124110322266517713558301743772915832039855457668888679898764602313772952448924163768065778869660733195017475130171905225578048994366103852382920597279504271571841470903376299103615463539140650320772411234153094655617685402204435193221096123880168855261703205670012140110223308951852457954552317475084761033366220525675008122375335761320350888975790313882523849705823439721994300750529847201540898538377157493036901047033537335183831630362843543008766662277179719704668128045676352028853782400590563360305653148628521688161262940998475161304263477274492450203872342579704248219009575793101526170915278291787257920765058547821677705309988471734587594917793545559487068925279900990386875472569366297529639525890949900169417754839295902779968941632159258653803457034901089201583891679419134455358516143334799977599748305377019454665847452250490570154630291482982050087537625574231952928864776226664296501249207724319220978257669665621376247817579004501392071004755884447829535474550014124508766502064231143322663903838572193640818447548436693699532173929692924149218700865887077777061159466975637053108450976875696532467521281043861313746266542854833646339929672559768335974013377869719806824959055073690560477924933911641305186929107017098815133283010887331214403202724783967610850145578989073088105505882008926771159488743505849669563068773763482788157797992442348075573178418256154262512064285194773696334754963454508309451327663860165268309530785097117047597691045603526428756378563799013373566280079514559348587215257019519444203585384259604256609509061402076105999821557411224262308051030297706383862703542660626999328450315528881783624201290177124047491378796966105985136294687689727399388150759952876571725789559597021443755769297571217840381818785896194193830640067094480649519672741715506505180407521307481519899601573753078595163950643308955094444955077978501823486362022947873901594000191135304818896744492968041981706527126328884779100101762248462567194099141601796034957907375118948153664263667073429569442982878691810397450858467617085798383199905582252124677972444840091623184383141405467073924948466144680166353818454881937543263403252274773878471340997108251486925707362633534986811946993681729385302525781018073048325669579273103356461914908552429996931418198199796482882822617286101505155815167437212962479713908873831348439614711610030493291900527427183105947747248342375394339741428462599737409441713805590706998358345071738138714016604213659283819579700609407469282665059497989359226584930628578044128015672370273130774160122809948072030525989847199087642774827372379635936775917319788550697404825704205147302266346645617848327201410103313449419275698508834298836359989763151643366381897686015597182512083345732384090246385369803358597133597386553889983397447417334270547523054320585243480943563339466419298296637807487878559258971628834055346870709405668570632983237470108461077496869467763907408027032567174108422086656905576899322612709936102801667302651969845211379629922360624793247573654360777820079073208789732260144653078269585546094841410664428047682421381787151359071248727083185800901236178759797372570931211230045750817504857745043127240099568090103757785207497788158920626330558785725635472239337757772830349953375890643989836724596622453608184316682063474400698459933811821172241199989153347399809694258885708462771513713918632896267376974949990758653949183406548496894750354288047125016562525198662099814430434342521895096684881708475228292347188221375236241859571526601604297430661305394666811391308843140438663581241068241931102451031632873506107719312492799985235625852703221041777299679233942759187415275069962342503807925955176633191826554166601023811489839344031260631007494505459439641559324962319262705022548108661188673103707330731691148494123857511625683732945445741927957719168309885511134604909339780967010820720644996707171919846525312961732577638727394406361398781660586136707800638527036513728994607947000269034508914319278463557048595369057797961564201320997774460029395914563627541987045148675716714238524801924382544530965556613371925378507647251542134253374653225054523236751843089252012076004219586944121484532032235695812733358384394397074436148477095402799266890584477581203749662446355985175843749397818178976637960211166058366491692480189425864763071223781966903359560581196160499622730913755062782186955769685941529106158449749627750501817821212961873338613686389278385919267794781356940128578678741095644656283936695497843890108814718937016400693181496102226271201113374922914028884288332344360590787974168942642373192853074162755741728968162384812555502436324525972680702312365875146173331560667004214060676065387614122244630748384166192384989577092768288488935846515558728159506022496069803113354336661938562681441361811751671103693820842504784987436471257839217258786868950081649843502879977387090140383615949241717747232569486502189410197752751808855170358238381667285620524487709775938150734508348256057905195959351930810183583912172822619528980164423561428419217354493252609350931551300862168762575673565055113011377760292398367886437299376501052925613665563357142838728924528580107913854341752002871816413738580654337230306094959212680607604110250711526687536523457495422140423821532128893170863773746354475143211768574254337037337372726813427235905039665512664884130144233302593209103976621104231431336462887371881077050504846483195262686195636373508715016771866888283843960372191144672113365876217430185780428094340216347547951570585512080331922802136262430354099993176623212672124705198010503200199817747021465547413813726934493212445549852892889411397385657919765007244818091097322905425826253347678379631700075144684450628975585859460937056261842800319550014015635405552728481488017260502713737744786703469725294222737690748260866705967765741003539165204920328749653251169962442523013432192567497448481414620624654262588285270716362245875153480711220988396537923264397560177913729175313995910040308652281106542098031910364988304196393024617475460173388878495322974365685994343657315563942691037940498504063570191863613009407043579355967547521717108858276783173414787521195935251413923483482205072732273037234467874652109374316618134387781635926638662795507963039365338551415873313018586376866266204782316435081820159559062112397626470975256766514005273627701933151679399454491857369927688257359847297877393869192440254993518089441520209370056030493753951821365648164891198353843475387031504298293158197805423678689478172653263751840726206318825975245653967353520656938585225062050907293065608480041073442901456349490563326989358462293278215086742446102885617777120658555749892106738913201947935175008441277686346018471628816340775393299114632185211785281803638509114253391498959466695277289236087694817773827180903757558882642861426761588608042830918175268934292343418417441867533466857613071556255256151867778173993198948437425690698534367337036231092424318033078787178028908049060952648643911668164263428709676364557457130332469427195718489435611035057314563995363685284593711670512263975223927414444863284221765404698440280474793555512004017097059619294784227020940508201622051625332914378804287832686257472983356098092656624859625689893357537350787613781527599693238167131352719095488069612215909898811987604573516145705562538628289287722216154879729339804055813157768377938985137214517398067220238250452454131977947479655107000898836118703921038371202908575224909767433566263985024284396460323132535792397011767795545047159215621542818469315500709201652768143715820114190253153042936889762525503673396932179128901096209161080776603482472427818050780341584552691190183319212317214851817836770724677873482990477807011376037447547915183038240176695184672282460622424249390493038628344895357720722499112277095033940122847594593740200279861809600814823907190578431398800163922271397836667371567700535807334182204994023819683882478660816220033103332804062011227820694049933753126290398480840898119202110487202375465969813086498059545446512696536819488814575821765654779033743779816420945972597103957096201531344566588811934232808950948650603468066719246050526184161584356066983017209292803714318861015446971779984607905024786755511115246336143524713468576312653492441670187074832801880296600788721934584281876771538544610656181111726204155887913719821900955027632887472920911486290441961969540233105318879710248294405948892297152695836697702677272862998590725167389619005172642225828274994108637896291684529115020219385081968418477713275398846687896872935901876685351555210895961143849920873063125012105450243586515643793909377405422747604839000390459542165187328299846912836361337930058063470185057704261071246072950387577853820873050061932435370071415997349294683812458335334932840887846048973475844433507387608370374000231293880099425963389558935691476780586750126529100399278135837358556694668753048077878117576320948438125372985643294186010597610086992394397112318949174826119552805368350168632946505024463468995977406154705604621300095709718284970291944265437852374369559696448160868146445171201931722840502134342947905959190922218802725091095241646124223509067929082159804060093229613280414181795107301334436786511911845780631906156128875512673357015199673781386361883638912520220562987070717002233735830050308567264273083569328969876241440581519120584252203847133225116687963004337018797479567042997184686878053783413494546678276464193509608483452283450542237815308328740181182365882295452791155971535474055206482540513704646930662769893824603974163417808479457943818513686238457667515809635835249228099767146409852856246588539547884318707689949565171528760710240163925508663039359357249618301712508866541953061841445514781511454885765702860107027665855405573958087390601371816563668756600739442640306592683252362233211201120163377303154010494141072104110688517757436498415766793527272609484695407634185081456610738557646788779600079911980453926789270659643149247375200099770955062359874200131281916990556649034842212336630906538930873226624918068139630354418319854575368014177992940039232251181956958707997526028748350171146522530599684837236916451143021868081439305943983485300719043513828606028620312977487287949503031602087916080311192708344915285305710151270994748373039445436952727969020885645209487107580960354259756206715976493196283028584043649925218883372051136870772916244022211896645584544330815397890031912907240015571899884975036748924587452068602236216222225533943734748071037428914957579582460691777152151936264779867913544648081371786115240146488415312769027030076310387258766664396164297504531401674471993545661700476833630877145986690372979727308222494406299410000836800174535606420149009815331823090009812877907994862592916961208541597331383316694889401772448030544299436026400764122133010965740308602854367410493927375766800028801231683265591429875259602854371339332331643475366503090385860277284608808303206075802689783265905613682029004668433206703798593586343079309287512020676365403955126217043207198604905806989282553014234478985038715622274004572144795667184528594737764254349928026117674345807449738925148246759533606708806812187378251232321012216450066409466752449097545155512274524477015723812533414726890268453321989089576983447461007011690465326059290171565546978335677721424079718700691425712778680481755039903571463479868150760603005627316619382124971584616901919572899932150869936208593844691398046786149421160518453477246317765641026294450998552478987863682224571975822247727331455468412716721253124415716212488571775032370144636566328858321228863262845193632593541157175877850697132267387385707721023818063636701979942567712359499486619497647534172355752220878734173345910589086151641390212500128028603715319353158467417733571799805476498567361523089378594597750160124580515145602111735641523771207724287421032270685323932034526581468416137582879404764917732063363785231337469342798084544515882124092050556058973080868071339442553403394439572627156039468089089169410829644838687667913756718867912852952490150721543061147922729315295540215711363938962455175038185932643110005286552722597191813741339593792439542614860805526744165389070695580430256254936492529374973232681825275039459834240822080646839446337274830291352738828385418181722711686234688119401475661662927401056590287733894503575621857313799726940393351265910281879155395476048557311227827097607935371697447827916376962757807240914953544497255495720864003726560252936202581339868999636819915275877284314565458789333689819444434673520840936406911947890251482943451535814819444516599949753593796277564098589571051151128500322140394836436046944682571164565784289252787968520759763954621748651458351038869558854764059588844009496471111437434031262631305155934905280422324811074383183447512611305547470271421773043495285064126072986335765859530999956832803298499544612236935698945566065930908322259065445935306032848859110320322230280654577834450955025876210732343693467121075101003133402365003109314775202688204024299018167146734823893149587044034994231004017087689053629374769834178694730013957917751294754968011091589013408042601872314576273843321637093633532362322239536873033923614572721137793825267710156077066234757487806044719410068364250906988097087050699413901009651110019830583094556305517060721122586929376670276493767471552458460827707358503344925371956648832109416724323994183295574514590038525662152582640856958670848329313058762184895721037369366807291238885560372411687085800373069303359368249977875180945239132298932267889825276882711286415409000908003813476380346144833865083359090804581510822251901444824352834040272036875866503385101997134639191294581866057746960215033276699312688668506218151609018002933635572733540767089619807676087430632976254915307456005943024105277095538229876122074922992247192819907991128026368258642455921302224081733975965829310153851430433994415468606331325721568389494722514008261051985990853364380092537054464552119268947697882253534854433387459187145724950863725715477164044433399142933832639271519560790012375583268232487778268956280348304445152188543602522090437764355434967032615040608669790293440675892960818717178483762821130719600867548002647206917524835528503001988224949829850347659225214356304595695649141550507078371522741824021552918856064318339856357583380029244794166148171794354817534046050536726856723476685884861979228328187810600626938598037754057533821077393396974855906420539981936507995885884068516976198248633765157116593107294332132657988565115585510006492157912212589539807040492432053148686103223726612256701721394266267709871524085203536657532541780331989317285882745836288191761388630294890543593847735417760400565453738670701226522485521642876526080249128847205369613544178356660951825657281570686840669141596280619661706528729506117155346490358676603395591257000079577664968244728151336824464289383271188652314188215456338532490077358110566125941428294733259428652404913676833190941044125554925432018545281158642376871316582438968389547551676507051543351961208326788020672192936466234262016994796319848530682105864985779545064715569222482994222897760044370533323784998802341131691095186420793529256810027517295755260380253681345041317916123307455106272249281919772011428991948106121989432982546543931069845960859863726042390965579851376119980801990210286095482296900195371473165187468860825510075192041313215830511970878208386978079108641126750254447275716015957331038856985044983745154363464427481658209739527317922160989558315753909396366581094253238341410489363898701821435648349385878547195998150451023555130353611149078113191919114635381306777614053818936324739153269781751257835998876742791139390192484463979933646559131488987268372428798256233868088426792797433729253752124481496000710053958886419443038006856257161841556279113853911346460973753572709482409424695544479997177652220477304492694177318661736836140591685231374694822354771700508268141422246186763061415706213601419150552021132220000102728872958567674210247070898271381631134756368777319615294498293383591673843965164683879396592184371174719621453411083301542857111882453701000703146744661135371604733687515310511623959145395089330314483709488344361627785663594784460040852363184751871637997252337606713158673112294739599714854422544378296952960860770954457879538634013245076412231525865151060391622131553343923484251854407566403732305428736390311773650336246197600995292022588332767182928174767869034591598321779196025777400364401926715354680842569373755042348254143725351895539439412627405070933441230046649597269339035594324806463822304035386852065915512675921313942387634856102345744659823696892018905733823791754335845561958208112576711782304366582869778295161671882031271394759496158399149402732125002680173233457842814153973572770136661538611331679091439126206452578045468805565841526404197333109269745562465078621521243127897215545926240703675390828602537470282945253649633042719491576494972035874891919948363294972165477998903246735718572141212560345350880678814763771307289023610166418986526644956725792038900789489651697843415132724032497197055759325085190042261595301729852175316999910310860397553771720160697059370467786213008124932236428980941726342705225183398450355119966591409808529947352300482799614713594933364797958954125692276403702908272870065017798721108133082536290285124672178762378705246492429058875152464915851847345295648344272543749087813219434572096479958104406364667128752130933681875585298316331570983199876902159393667120732919822026342242592314922988596889539840268533782586924955154443572700597701746754165703345093308928982766492630158531898859074374190418756677747183451590916768017898707148442165693017534743450363923150449342569507453657617327577005909696532055828040559572021311672377175085979274504837054006570277790037303642554109969541284243968938264670114910094968555389313479030838845563976614721010860868611267454404824906067332881231675854582226341741696267483693176517483502299039675587910764183798778037769303393991638462814726724183617268241970289505789457982518040671209468720946785741993684623515717608104237625256755717153882413637507809680174782808607407767746089316154699287338561441278406790841108136111543754284989978049995894228232772279314802052329360683670519618091807135885974385081247373317338050586370618716952986208826883718107113491766097156753611240392328132709839024929897201884048286842506006180586736557971525296132504558168288925853035549950311471465961107318019898627800621525487010546550642875245602994717028975952010507136902941132915969617762124853859881237070682067741500836818320221485169597614575296903241860468947413532481490205054741093446397388523134473095171409335480760610420656231054003662001682026855832133820282456849213812204994674710301310162765380173542462006413097907228656518547977041124992266046882328389705215384812370917067591798442130951850731700550792129662109823887184369731433735412846197396590784978413469594271605687254679961153217035964170577350062586523683080715517897559067829868479590355483016826334724980891979716661771798126005912877623620291868889989955915245023424966150131668635418896631288910074958468362680417928041558137670868125835247286851276834858640837050589246447096852535054801228274506388667804324666130854244317777851643157061550790941181634877590503724128107025603835151608427473336705939439264676962877842261275643597061663630468653613351487435018710048847237794183168597106250691410710056777294220450462646383888063302636785897007679264706816021956438066950829873079407335576137067890005481051348769369859902887080642201463420681367638665819400605983323049854748673124129534459198028405534643504262021224604013073158582217586081782825666141340621861000034560825744330235074131231640046565408893632970791951698194954874413501804364030877359123754253922267165769482385367706963424008666928327287787893811326823288839182074959483976114134134995658600909944941316354675084212303570282925222968114367869339801016309432735321456700941982325479885151489258738371205211338296535737387597007484562996935773931188694488409795483265741470141668731615247482407068955992975888326445286580033137649426702761763756671934742780774913709010392151297654788237447920769869263218533352343152040960982267148386134663126117279358298009009727996700132109622656757864755146921092964010246800567268716245569338506546240334667606048536904272406814531891358732731582135251274485394761327117314934463024736588650872897117512532229932432580348972063181586859533015109375641544005899147004141396842895559789914962128067138875654234782905269333581292764528292922814769485580351099027904225897096975136892702974729958125193968525009945220884410933313967590731512567279878749772898847810041926122416865958673466135842727879825023939368137884541738777821585024754583632571558542350587824865836250763440114562867819538533162186628249436003237187382340911022519078097599148524238121021645564753646613703420497150148869648463452851416174259390664949549061111103766339569912928693960236100511378289059898981689970694735963064072242267942111380375778626924853380588426054653309722974236987173884513477831092096511121346681664809960131494260649409340731529238645183582443756200325637364862425134562010698481139071087850477631719120643741646521359680495576103094177089263088526896629951339704979682176858769157846605556207906297860442355097761819260469185143626366702805519821904026661182483800808284954372868697494051073370731995998751550476593765224592942526628582420476323063169346962480622375464006151566166985682812242476393001156492412810085582806860853533303800764589588536689060946317232776521060739646003773830768886179700705013028193298615002955795470916009233979913674012640489053879265398024898242658968234985475216900818853505559567959941292842769668199413095631639475498395039128428351391535850152768872145070040260736321803503625303662542332487448774268394003095471716793585702806098962804886341678844709650616679145871530693672731211446780496019205635320123692202672289064203818107985881830461130044067711343051548697317383096556559621761775767508789943159300435339566564125068842237970935947636552385095810554181044407522706577316590716293998984487042489199609645800970707954447884687455911051234133955203509068033046326967358905248386670581107627473240613344995245710858611685911618655830642232051044014146117532538882359109175777484952198516668777526065071973998799174186251099758435244972842005261882824976909262136326399710935683972892657122815163421872358387489549474256912603548967841778804697460534832111746423249630955278088210250809827127928712111211420891863014534752813843365780175806974688442390274932371915238947476808885236961913925691540363778668815081126517740338385257235627904048277879437752444940512440142902676303317326926029761631036039923147191132455075083948678996765223582888334152047065944701571029946749045232039859508882633493672915402954997346666038308860501681963532859634895853028368250343997275329068706918892754882445292990823706374148027203022204043882977513091548643528354316690754301673494324540550335881873293951800386187125293509858835864670541947411145342440973158767204753681217958576690616942208035843177138958665734983601033346302252090952519552452750287686502489950482866633682224135986312921420166974730985101853736813038846487333298842906418823714704595910747454135961858564793550726972275710968794952844648924763132089986546736609258003397788021135599121536023598451668138697819661807089744292309036185975460825230629044785568116647154055774287945474658821007946875376243098393281858793163739982678513495751800686423500418149061999007001680291833859331460962815025588832184468511263676334687181672376885636000865164378868060799109534533901441213110667463300955982091834430336405971731237746908426170247434180722556275838779083288525092930813045480200723733425078706839615252653329382969825520386531319559339808556028703442382127535375903815693500185656405997387581585561968673559005166630026261556193195777196941548008668751011182953902506219046915458465788068337454349490768588885013396809935919057957153715637164265983005539251273980096586469576805599946549841570580808748628631512970469330327832937506442842983167399132761065398445366346205741047803558884142092723847601025158554996166004110932031937790262222289703561330528419027626916776387757235857020464293791269921230942671794078266203231484518697958042305682140220221053646898610474501043160734346572800736424927479123216065536910247268807207245388692373761023838173817462551170501195854607168252173430007417557749247964909038988606678717896056889153060431776335962119145068790004423712517865535095344617220754507714311551960022948789042401596588042664187592319554880103349864933896196762964982409733601515554474348082244581220435800535775209638177428476939704768545463739663367177196363674411133584614423352563836625699616802746003373609333865115633761428068301771276168723918124017440068732613573369039790668474670377670259355837616687785461330034504389365125225601689532229150541699538605115063382785902921501785452944865852425466446368919442126323862409664851932624357717656460923033286848491501915308862450663747935105805087560397653140375073374978642617755569664823213431846071717186036152618114568810945880274095205329932859953982605761284681262767895609434050119817009407540560064806941559607136876382908156314156560471484897691320753244723619015747694563239363827169005308711051642115713236371853904628343446314484921739638175299431241696592713560804314199983115780245451225804417641259880300403360678972769381142152171389411719826857246928910539391975444503248483875492382335480054199229002883227541093119996912399055511431667555627633435774666234638453836619803725305962812708224378887708773655381382108541357958247642372105026673405272553497844072105976965497148642401173419216658864924891868719439333797895531906604199860716133457368554104529882360915253529383244697988505226107289023538566783597882442228245437271195500914266527023951008808463487390377045044012502526157695516389879253305730918345247034184167202370255330057889481947949992729105565068147946640770568654795793142414770893185419642006413630271792176676882665389033913476860344422026165058963589086815113195543796446189246420244530146820332092835438454036654641311411437876979091479350223224408246227283653989885370078222099128595045954262114657032343420526837863305978805896273971250198719525475030921987968232435088308391375901547912399691585395855884859268986752610690820296851851983911027622297852620406264756455069863716472334859217914149127771986037149466118436394800100554744392277473802555599628847399505091966067146793427096064193197652550168233243790414893480457409379433489009799804511915062842067847168732625820488443730102711000325555774999714272175897586225998073650636521549896840149579871394621789627877603384492383103269766011912735257027754455609503658634459411784548175137313450782052003313746542168235494684458256818693700599103211156656964443870023539632284598112435863950183168978997423070445209420662643919153028641211270178346709291726580251291435178034362474446676809382898386621962419310717775192508069751761181751515933239923863407175990711575430857361675735793752446384669789110530426158004035338928507063802531291644849593651514395893531986874566822769623392168746465796695893539928517208287140901636132869037072627244203666976725577239072458664647603198850910997222260905024775435791073849607992784486660533180325839309613610265484296399187814417464963015926497829671655603176529934965486516981412124821489943424518988768280539161727483729857505761677070919294010940016159206745551732795605617958197919950185657480868518929038552694850323180387501946925888452720923908133086884461414017656993612136815725194028314892562102979814206466657728170290201113543939795252975646713274471637769600488029407042554629125735382635784900426961604873396183254956699052638899928967604509540067715637497617337228457945066134979285791626669780492809306031345181213749052578054077494639134201860873500677717322569867165981885163842443825409473143367593439567376130890763207742704438926717266225614550866503196477488762368028752701746041273646194322302795858002184104847475462527374264392652010424399388489823122409697223846273508485298394903824468554468515720750683651024895538745779204278384473790828887108201151207780533349765213899438875274001290049313767891315543374461585489761763602016140253372876155317335656558875582483554810459282191502983199054656977542042938915193482302838017560533443783580666524699754970951117238093174546486787299441460943530433964054919699671279017940380893839452618447671566117546269438774086720198191793805508272806571557864397727570114985827574017940961917703785992958226812840307090793809178734117422932054679886664391448810842684871911928698948602166396287203901197212007852695296859550179079436582197396346506656263930023980178619004868505215407256454235081201866592036883026158231419323160555589558581759645163328803864591423256398866292080710218886689935009478964226922164510967172089111369846838882377729142541235550018707709470911266125605426339269418765775441111182465298246832839859487875895823643901671744960711286424768674744996646995331437153205039861710995799542052450654939366228330749980354025335387349791010792861486799699321702390281745948616748505556061211655124257440573036920871176669461971681719575898625350704430977412667501692126787517985261089335984226137053677490823435110384317244343112068032647735833161121006031773845296538224445771388440162960522157224182374906375388091961734859134981598168791207915758775574296713682449149147104966812412144463817785061021927275703767532206209729150880401437421722147019717610524617377781093203264523404585009453469344708463257256095019485734065392029023288887850150884778333582069803188590460855018591840515886424122099599700630419217164057367122541696258450541484764378624587661173920297772762952977321662948805107051815228420923150732222825287210645128270190166351546691317636786855740697571359537295146087503201338573106260469018555423512545958922397592689465683391937538409190517672572367317198772202277018982429660356260019149372377755181047148851333553735378671220857931169354867302668016334988041605328881206691686811736482886569996603367342648684425659851333641686362085941789029077632414831609281073850486660736234289369322201735820036600734554039046557940800597486199624582673516357382644939353082572407563219237052591684215685649772066072971863988130677189739327476479289566190819212610192861946950128588246977290958969660939052895776559275849581930625982488736162695242567586477810687444730905354469614106095458916065100965241059526721808061678661104617759931255383125860227838428401211557896523099231495552206367815013792547467632509732990707333494589164464480582410873223802881765929112188885280136056721520557566592478912404920405969441798264189382210800154892436850467789320492232285390320100280423984909882801897163591850986200568234720036109122726232256196112738421268705740605394660393213070753668154830851445297764603616724871473242437710001924534728351951344338638751400349320032920771452039472115408030375581236784199097697806248811215865797857245721954678090198240246659165055411510873591116952512395054603368074693136121899402846314572402510914134749122856613999298786403459888587993934637098272226032957767343970228836982335281025518877515499023004355204714819873780168976171917915288525442976700782079180410068603836377741697625859899772531087509873750317995693666470289399004099050526321382416678092752251671484127744570140422781121963489175688493017211968553358854159601225982736620864656676858506410002083244840619444965002593413782159035985728366564769420151707563931002716824210774314018593076777163887073623944627723683252503629266184378581482124933575009829729860768047662238590182666806510089434384674472444320536261573433797013142553186341142812676201402611385036161962523871074166178282283455935153275127220219372521860481680805321965474555550269522429539885739143007734293043480511423354092088195103764129621098762748376765230036024884065135948780347383358127348129133951018074857544104163988853132758407261092371711638042276132682504612354805617859106383762501962790981460293912051374080353262240497247158624501092993262588449534409003552123865474030683594033477502133098553106395165103584838740012201676785803543640540670017435926507032213030575513885264006119829641646283277538996701759471048002392939779740766779525738288747620239821674243454211394544963094379504972946974131022429198581578238002576253336956559380622885507592322493796589983999380869744101965558773952176352041263680799413162613651555010315632478117688171755551834174891912948640066647807890102349287658597529421687566684913342038962882758602613143382824482358230317256550473897265627396173965066619513599170215931664448219406816894403066764984554835677587229709447446559308483187443825995114680345254024572173755850875389631777335515540545403273299517333715760229705658114029746906221951393407609453387146363845298778104959176909439060345623208154124516057148260395420622164660300032647473863753243175339449086355273595959777829174585451092067363092903825795329339601823563029962912992685322464214326333370577977812360817393964529493935343112929833152124516614396697711999053636377658301033063732353499653124319722719240764847694988856879522924903479564670018447549318801807650812379189699185021088589767154646751510765861742393518869083720991585618015770320306566858972662077281379831189605657199211306328331210144716412992664950471254030576887093137870395730877389990904813008253557766772800187504471411276523865733732949048367392291080596697751733673948193455965243626756059280350435763222743849515996697129950582762554450096071192512178192734160033509909329867778312806114574797458749489042241015790518937478373102316583964798145377275222312254832261568717300849941846384684853301649984620008570042510761962275958316284674765156349103824677988635172292330088600815688054357317807754927524367038000901387586934324737613402105610148344074409807256197988053007957855107100886034484077177188541686524014931862144899506374717941688977009599449726979100228526467026836255658671053449547669176988852567591349352426082947400002976334617711518828866671855480780604144819513563285457075368252009099450094866030418777982165671425180408726142609914541472227751833924318791286253191336975550372961269987852355121251172279485524810601844389297947994646787144436275410942840294427027320746758532433671455422048674036787924314544190939737943465920608557622819841172641076361959748132262918302145045108614144099459832353414533092237731949190151678900473826020665011438132617956414050368204500511127347560919755213519938190023476154930532892190151530352158809458590770190152338713933706245108976503650869895413185572471882995204077630607804556811399594039845542227294670478653132000749603209593922622929506934156917900532964403850806746920454765940843864433687077869630717006558509563976319419873883741164563288872319357086364691363797470214167531791687960672140935423342466847923253700667983225451894521688968937176486965655200969667993429975683982452004525232727618230209752265678049204073644798679739715147433636802715513540656986356643055732811223835540289608422099940497810961307659245460946520206548100134226823967225514560922665192689888941457648808240076580324793444957579562454126043769926407876901046668717284512014559910867843465028488267605725262514576320158189660064006652958495523209604998376058852229269810675136659251121568647122945377792939196765177618177324456864176414949281239645808801616044435717185569644080650875600635365721487082767319146680631849637008534384516308438349649408859083388449147595169565263889015864911683498918389324141769762857883073154252457749999094712241920300997289172647153572204031652841134006078192985439061043475088613959519990866478852761966165959272670479302401555487293266897703379939449729205132933886868358210988292108785743394541567968377613334765150292924871166397255224594657970619709446123993192055334482183811680407251643527825262582745828595756119308359209001066531355209381363030779522775765138021271815050246795624259375235510641825717499846136970711348954529597785328060823573731910429957372668805922138974951041872770460337051098634862843206137140117046807517456951320167061301002145899333587727038166641824018818418869487535777033850714013155165314738578510565397933183643415508423963223728244875871323582566715344020861201788384797527126877714944662002346559207730896778174244547921505508906917694889299952299406516277169205099261933383542818698106815706543829957877342847060067922892846565713496712408921534401171095199059563333967342546652402657620102714148001968327258727048691843747326573387594547557761415800131303843022184661143322509455538086958845421644557559991119264929245343491752325835555939794088771102087266972049544114348848444000022096898928627782729129227482159872432230906508845175399683274846868461183458635776533891492812494599639064969279964683738821886235754505274108852521795398780788902810479556284460624645225985696083705883655204249358014797602933447325950677820388766605976433817576914049913233136339034870072940354670575679244473421132473620167596840190745743901075236662309044793726530600823462032584133517332293295413340443541259989045256068668473364348688785600393256308449164489144189573878500870240934046011771497122700817586947475345409203886297865117834597269584590400917578605579578042093030988753718685704350132235154770516860209281972839361051247077720330331026713461040500125461938260203952739015561069732009583014268874593386643227802787671783350080168445836967706552936905683217392545961546600030431633276377591474200647119790133574827979805315746450606028452393014148893931149572426130235087809012089050829522546722721093625776422730293697751903001799509220515228994318447092289531089987274030012462482002635552982063654178497639100122371472933665704550196306842868366519957511151480734003184247716495308861738036084316704645574126503071072553948276021134034896824937522301736812165969869073134519504235382518069594268394980498159485279688647600848551951208601269284487158043534119886561715706292683427790600383978056974413441138042886066154746105937494603434193209683864310721032733237951246300902199852582189312830736661295330687006419686254768992718157516776309558885553739763332494967871356217439475458475708616581941760849957819253893593057517189323275752025205273120798608764509479210792168762830583390647474430957074625133228886552443325966167930052738851841681284727776717662169495324531391768641812578867726706919566043436551054747238819282382748053203359057965659175445761829398291886585210148774088521228714704809891134866145037510879641450969627631776528404049361254032296876034807492737472840985094463109792163707639302420668068573140238244957573436261139484004663444011337152645484203480756212964841489163712703670422534752540518906154020730165108683283504843045131711231485432976046608212455472140154952473091431966515176470097828089987273014298901945516623390850699270454720923694032639942793071915406033338297815257706105163054492908958408595278701890434864301593586334449284495737329192078676508154558325397233361619814364311467742615214905137137135889148871657969398618137434845085642159010691584205909796872145018038400087844551775931015649617550159641254547213651556889540343539170663198365503257217067793669878300434830612366450908112123657167035957817338934893564343239937991156919673748048333891430212707173381350275566916608307220584166867833580779447724043737368968544081638791687422372164419753037388802750859197683882804997661921522260349106718792088948346184633995321160029800916483027491201406460388363415036174841498860186909560735517619372966068203589867586874438400343849315735302913269680727026583484686802730419752830403813138106022555029145821222176649605812105233137769066421920389492773163542455670648584681728767233756823544751515507278065902447047263529829419008574341525405436809676038230707653102484956984041022775412634767386183773118737009166766181536870715889627316815400357998437967908767060523379659220272224400708487586359386451025803623206691690800800154472706609976958325201010753663851620268773637961021291484515654767787830084355001979087714281557742276508011399257756391796487788521133677931137003870985670588191780800653770693462376974429950811076879875450420033081659765427075937783462716664222552128833618975565569452126109442193917628542301832591252252896177380733131882253975987313422376104317502619054534234299862232177418902495472028670783203794116602557425614757540121679378004626227293209436030503732082423689114939409099680851557316542051662525909086027586961563593376027357756232918765368881770330954179685698943324586990020719005843730605163018654692178672554798169899841124106698114536231956601088537444516801290771542054049495622824306406105644766038342560277906623386512505224530653777386856976326640832400340164828710775425161596203628919977981379297221196431068929101962584440377751036593226921837107674294553445173804833362500595724884182853660951374768376928365635627309682081537183145994925058007307776869066443244014546886507049343338555456300185389428442938180173448951019816844095292806417035118663488930010682802890229461118984596367943526722342424154813451656490666173032810262092821018965061215375253668403637648852449234486309713349973777265022751791676727401693663814792412550568479769802592916314782609037509865972655897305292025773826800446229079299500077083991930938006875519517411537145050991286030375299616368862784560008783637718726776624595429244663730812639012709423756509446395032218989543700511920897270020951967720848600124930006353720037757049741867957848676411349154334083139721896095546450162436442726939158375169148241948584106601183000434522609813718964665043921812947790693912811901760487324084194543426441243505313653859706015797735767463455523697895761243132909234551299125087138770320958630411376482640309845625975686083611886782085840581807815137880433554672569559539081336122977932972662399072873169768604662234153834485632523411748605867301031461308564207534816367860817945851273492538691454428406105669645728606812893514656087368875353875908356118759926837424663601783822014202606592934906568844340975310881044211192106497593834078474615580867056837786643874824544648959534220017249050286949199914924618482146816443118222727846013859704058282903674169893634128162511446581559388460651889074634028780747790473952390720873201944651660883997162249926191060313270667848620996411287385839983901914507006130439271703074407875333379140700623915582812880504013257097034519158226831090506840050466987304526525548348699120145522288466763619418081942422981516058147670757198555725878383327265643785715256853659068137345479644912541572055156203303047863054998924217239706677454582273158365148172863461992999665437003342275090012397568934728962929006022604260831495447686150167866882410481753714046684986607452394473616598696148797274918882833901139842881892350505577853389422235434524942499396803173731936948015060616848489496950629776135701245861118627610596252209134430736237729166058119975879618161550296668916593669020219464403672127815757970205339740038942563772102326143317673282317960664603880290485575620931662781595985698388971881705578447401980206172631822742618320500688438949352778294694914711689195004983098182854194394863701003884480516452231300154782197605226666500545527888434201827457066263265302181729038175775161690450115212278240277377626044683026259509255702755671677568445990835646052529644791320757949055529782051740769390154319463698429041838251570585044674126367823604008298167456336832733001241055602809584608186021853479013036783521203198937201666090657646339539315310949830300922559107783440617473691051062770808999537220007763972483550666606126685863217808044134100354658554831802734402722472916279867055113686591051551702013095155532266312510167933910111674045869151948231656343919643323041919596307290239381187100385981691740501201635779584982415061534747473111090003122928721981032859536383676925574846770838399712926378263404080132388979802255535328170304694612925155929867784451760613754695113216584363285833775360768189920685766713770996879313799718182546502491803951597199485052569959175669836645428759997848461001782771244186362505273559572604627085094633556469116560628262398111790021309028195986670181441207917623600416316798905292100945299501727092078748194836880568692101277636225837458969526654433522968008176292318158115841567795719033765381410141163541379634978369131411909721944085533862350427017934875527531567157437906839568056039874210305899758056429932930059127871583291783358406860071347212235354436737689782433141149381068406666392096806501496746350780085435959980145972609310809971400910902518179631622297857715219287212416179862047572420216691765984375546254848919447057299720336737282580028614635764609320497835526623567642825843904564055214023083419118716876896576794618322137084725231230426812766907021264096437246938594180325941085714786828592750900725892036343324207003345449121743844174234805864598966921549704298863451881911671627776014778482077240339780519306418320541825458944878229392873888405575671796496520925087641309792767941437573494902887197486407894017893762133733680438828174276396803378885731612517858044152762863058715578666472892305226806967387188529331061911571002818912991718352862226830963099557903257028695912104773089994492961764898511336849213365381092872790013941721466212711213307911992780028802335722917698165598577764447073854200980719573819529743058410073667408737624566690967618467692062611780581322388174897714458301343135543796847742011091489538140994434349892392935918868614421924740636635428287661128670218808592511961824638500512739116955141712324617031613398090624411970818863782303183214506314683674089041982400090639106057661509950667031207798599070917373486067240297137131175821010384778221351544568788078481627005481663404135489648703461077716959898171739822350722356971271279317761124444058911714927802676599309349410363766076270155399770702588883745643924524894821257558040802468493253249133265537490623558531561388761577936423458057559423797387250882310055480516591650461271634639067279556403177937441849053900679962693627591000169967800500317912470111322699306423025394789441748269165439506713347072657182046577837129109697077928060266504065484574934009072917772489377519510303114919079706294360386017381928664490153928230942882324487335534913559389187333209348246036845851320479814097252793809400455396281842391598268235550219694327077475133705373231993947450175755925846688589483158455547046205390967020052285974266270862318823393330795341911695536989528092445494110884063724984472385479547473137402719409485232405806598529434562635555492506289233235603135256471030232087582430696213564202227153010940571413895986753644378349947073653710196057061084406956943709286161604630741105450878892490559626383978901503833443862565401978670050944474696719631473585536116392158858886206228039405747923314420130874904456503578444459557350938960057180887373635862146645635061351254116661178469694161358787014897175571559864312245223604984369624530716025401945623775585895647012130048702460090577686829853798485358804323590463395798472429360773138893490651858234040593538797733637635563496817393195179473320395751739828424453917336543193337401496637681728557495258238599859600561128060924825339717378289840157199154007758853710739968622167634145396922647730853499859234604362697543695143651429004796712265501885725663845580918178841738987256248776337994986930438802449046363623658838038771136520138332292108564772550121491228250022004839572024101964825887935150413641637459833870229602223054063103305844564177060907003115255988083753637996614284363795102220072278305667111907476243242377251063831524714388701367775793177114855960260171237607906953628144552050110196873035335627875753805176410235459402224541683926543672656416674791427861142061274845836351168005889755258303224250514126823038716725419514868702546846387101984100668484694873742416930455075783486342487463867937131699253118093479021633722675591422167632272544790747278263439452927852430720650760832090158454635958536890712447922262979340092798099028675282301066109293256344461513075566573246430705413881851093180611571456246830847065683092313191240585772451834685923597268406718693740503599148641744527330290162696690900740509973506267330146267758404615920073080682417026155328194694774604343952819800057777037656515597717871406482416845327914709918451229650263931163401198670924612765514258918176876800661829213139391054280393180471564533405519364117625457871136612894460905837658151865918584403601166442777863828427504179745084296694300351087219225469422125242844996913967272455595887644729084161818453148028958531598686143995898506531955621658175108495048715411157615349380983726024691550713272896964996987254386699852876146516707920978909075746929886835054276388787752086988987428381510240923067035823923924982138244853063224372809836322639263599519542017816854852143835681686374283037281634584610696224512935622439360881475650678850821961351954713705050982064544097048622313197871116914671027907188880776886670252279000034064788635869546674400630915573446755940035621354704927920733661121940695768867346662813450140469120147139891268532696257856875536969428080842463175826320317168141483208326559921034671498098437129243958975515881987048688090071014223540307048684118348307212944433520118235102117782432808005659027864254745360258132995161356224918995457197047846022729752552991719383607488611005916436224055325131880276429114810010183031832707218127618370490907335246083370354569800159731876981792719563015966054626189277910283707927758348883171054011954948054495307360660814113702115764850352539207648860142030633975567332090026724774983211333756370598258137928184390146517086067055404937821072930671359296281678755125045448241520899536120378662273708811060593086606705270454319584945727871529617295021484468311861675523753942038552347582046383260028547699920674334936585263735615370866676488875368407556833377001669059551964935940498084167675965580157943878507937208364276023486421563181759126336576899972289424616793209815989968859851503221258317650614493394374762108619040625451804508158267341260483780215115385765004336580913983313635576828796553440113224546970900369690523001944340961829059900929551832668215285687458411106941461328188143281711632294063312829609224086020715933340644789926070678878573063794039253745409125428699585479302523793128423672260421290705056218137503797232043274982676476360284801453942215054368741965289577985810824494847377726299792301899055892636441155582289330398959630353220638642884896283352395997955169406493603210336397659140281147982350271319437813849058781013768094874734729390976512865525868482354119414165233805857560748780251235379553967371912881670321988886635059768931010524726271062100910706658489784752123007898045337617894888476723292085799492768540243252836049871986845479138361952468150802895337396139331722919689088773963953863177098881194788953481367966739636361872478967591921995804696041128200163033639267577805763615505132273376654663310394859285642205995171712809522649366707301129965916111253114474859797133262209126149426614320696263884601322474231019369850724964846450260983885590595297717179202535828286117610977582041690115601755641699894475388250505000014560974584852250948115971592416618648287282290830052258687871519837787296812966539286150082544658766472508894374286644605079254887177756607478465681528893692657617359475618853201172723074470956209724102270461182062824569753505803311495306957869433311835574642853257781410843731055761017037937967947830840032425059084589642635125126433005376895059328428366654166287482352530624830147062357929609321243298976456279410865783207568090058543232279026723020116708296322114046408107258648281961774895989707463061183415592334549210778123490992305837703650521146996024201640271140686855445773641783477293336697353774961647844601714037937015567561468089985599509759750281266389120658505906418162645223752205924186340757991696247812215664759793209474664049677154031097693363667543189188324404840635841922517201692666703578379802764630902268738035220497091240119129376486730038831207522161119934774009462748193215838307901617765761401925139832099296913651955630151321471790227443070623274595126179804118331344665898649500841895905586328483845390179897637390389208847899754762042561755816393436294731827859300079453885899592361281240364723395309117689055546937580979115823497201936309928820350546678451767109294446857079880799415753246016320742947421030447726228123124878043483897174400492384613535742197508625143548621509999269429240098296034952129654400418927479551817432613559238617438105747662055935781283327090765985534261264959329007919464869085323012424415082181146189150898520296503293320157914589085907287831679070139681282915219227637125590238305326366315915539700726483370701625505728609693958793797976957759653147420659994083333703521800563435782901416818031301795263638897733144752080971779577070738258101284693391580981571214532879342744741541578448900124105840280773514111362490910274015273006252972034547091627134434084155681832638968837738559469754497583078335662170597818284219357530471368468951970785263302696254209050482691795627057158336846208027382927407384214130606515490094804569057054911826108626597820964367793189279670061989063925050044617418284701398291609942072877399329928643753713945678591654690205218638267831229586455354875792321578884515552188124426189824535301018301511564063418173149623496737173747362083673974036681356521449481506921901405150843668370036404076500400937073604677059214726415296335989236439533999374672595662039637258975556749100880790941536237438471892391772826431777085771315931193558848258519579674119615120894514183242991541161718072330530085671630206437819166344416606862813563742577316165742650880298379445055349045536876683216739981122950504170299718578980933355538509642969054651564632904029377478965472745099145439026274160399658256648604764834221825783378861840818549480788491428255606179298714047562645001719139973558391645643436389000038016344900789610262943831133520585851998942444176691203231633142704979714714107544921502992976749432578732063576235411804981494915922147682915939567332733854746325538764769530200096172605939027447134885886980264463909337781316311088456489907002600071589980376663067390295860576310218719284805254995833952719271867567838240975354555754296507138744976592873513985440159571760060428167254958104238857488797645292659436694606552752627794249066205912673687024948781072331893376870521635510240891215457775101179297012938739864074783169439572271509439810778763225815175307055854198797021142256985203750562344014558380495666890514540840120922064486295859961830074707331459197551163968845994751230749808676233772639300742998380630178229505731788352067138915935659754928173222539913608909573711886227271457468838988857594684099725907708426541845791532976008556275550242030023609240709953895764070282184559734082067479110855780047124409417246790983288342638315677258698076207226688781767047955143373783812584997988697103926351706302715696127678378958708859251741895028651981759148480936877226724132919128464016314828839595743042352309314858730010395047736883814185045656637342159106826451770732046886151150135935628042593973876743981769896842865675663862079551757565049012224489588407538054118747200088048388951784663376529787154758491799839928535448342657541970265989003253510219679909091360607440232434348599548722330694753162093518894527618884590520114616272459279813662665406583692085160052436483221943860368552787476144091313738510061288797752842949376540732741422497246049598316323884571652764952432125103787145832341291128130711877734494662881540615260255696048055271901579721474803381687216113882389207410712705619872167438334501505218705732075268984088879055283943807572499368238814392894775248442035519738160195500572120114528488020174721883462369152589871010140477426987667514447258830984777881018875548086241265051682255046096368558324963886612099606900607345783317937551169470859844116020877021826139922792968995556799680786625486687687455650792265737940952234386864862690418777220235243654038778879679083294182399939295209117948122333328018313479422220248444381378369657865103698693342728566378897250498133318906070971149365238962765143208669020359010580907465926512294395755120050835690370801079262997527026796958371998786123467271607250628004499174535878220640493060970120756026268747742488750154026774391484015499300025595545864536023810849102088135840581791873192255936143307919953767263358918764132340542992274663618323779911301887461668707612012044100847951695417911480119114070858959587507117819839494417908084163957140230878987781513009393191038677398945694784660289426880716164468369472505581075148054667776978466247601641642238265652299988413088368828849337765852655933679314419483036930823216443285424338189662509865942033808451684100639866602944263387016705830503919320141422444840749282862503069980455907231982662075334947546351118315454614822042286258696903878843140153669569933587166768186980879195100934343987736696991214725126696399656074139959911449958194792543792188455139713237378763059178514130528948522547805538451499382764038420904730146870879335945563482279866703809825166042429938163739700307272467554833910721116533517365698178056111636940636468084822759297267489205395495372474299005753465478643535678683617960601266367283350456007892718923894327867880137054662145725824810510658759711394101523724387064444407122915094429531095926482846180609231717073750721062546917550368708514379516091123731149416229668947744346048048133715061096330668297156198470702970867578639879110744614381610775769657485151812703391547593476197186741687252706070834338208005379419347762401658927133563415613663538217607029211734356769823505019896838227427618694019818713450184167051696447480998097779419214704674415083988523929161888039938821021372883113149709596894997891886952480388417131535930516704928036534360428711490968186394691575910157810336979826188527070858228282425174177257450064846968851079595488545264421175169107433818858818191662849281686469005992634121156553031477516258732255709728909618460443144892878522178441016777119583334517066385371617955562733223929169797563789648288506695734405325024795861040016602251156106877043137194938583646423490481713938164135045528850440008136802397700266749130329915999673703108982504151801324860976474393838093665215610068357155761258260577813968345131976773227219812629362261304467769402031175967260069874404217135600328252411830576553614130653438091212396968577559147102170240956270231104367396254843982183114923216683344864250977834732641787432532767942380579720876344349471351053530446528293399616973008944570498955575388451626298887517853790810720382152876528081757606029444189516768111000681824213851291079654243122812389874551133077012165297639434198462086833371369419839755887463786455005124996814435909555088735430424252118256297501980191512239166579821068122040529542256332928581101631742282388669431089109891464710794495440455556542746034924692744389373351173095049821759842017356704775692264013980216364496520528812771611036291017172975183278946536800034047795850431854124699423533823721065479984347056344378500012903891779367302192781713122593278188403779700959569743591947061918042698488119015409631391468213771059502892173451014837055887932263600646750806477082725182312768524366431638661342394807697185677372832108099579475958670166396718595503763392058005767995074729287355953545804024308978662802327467673296357779425308897477588130654126218428408795602762213239729661195088443626490143184998913855312729139302066088282384982887530913439406195951639917041523213677767143561277899688211160172308267714764508009125116029272468315484075124002130452856082512411366297223849932694802997281501426753137417910226956096808613220014605480360440987385623226112754927880299902399016125162061711999454950013926433951347119921268642628664586247860737972579641645102366157346190657037239441579566749127414132755969865575380756031300647668442084156515751269814045377032740513756565971897711444678110086629507043441050945513754535810276532864642927863605263413826678924144781008773791115158650049899371208919422165811123124890998668330850874283604586366284611710987097917216046596375047465880204338153736399945068807534438077681765667044737875945486976762581577898647010356523968947997245506152081450345085735979566571829660505253556213046259850835521741562633549353102365421598792307219777964676681407216501954344375898356738230482782428251307792790421933407378740432073443041669548421595468595669628945216484092625169834866286435631605090919410335727232441284843976351833120408573496120298132733752844497969642361895656397073044108483110545849005889138954902749578394481221978472271493355822191011865431650473143447265229486881719218347684755202491461622593433514062477993934960484508906589692377837101511427950073128547046921812341440061386399672033292535268685407376352177488164203057048125078634798367538612334493493304297484786185129184648602225308704213205891186184191112167111716294821350390123621380889284630407783661703773472307209769657014742210332272978661430483762552102975675295049827606133606772215139990279720917259248174295061612645637860706303193319846029414844689675326668508586393680925704030796071087862264876757403171660315323060499221215367583091328466766411135052286560036448934382995807418035660157250320947550406917168137484326223839132265572096729148866737005864516641137894569793306836273125668775012672386268297596389758426291116496823930903611838421680092349857579014235829251641816006490685888399378397649361589600101430543616669380645156891884121524718759799850887760773479664663219685435329029653189300204125480524791512203264515068339660195548500160036111501936144159780452186697910439067056625205231306007080416722907461205773513150479051076308763434902398662136715794296396352211564745876174828134346654506769240248335422680157847928336118387568936364763492404055922865029087862298074314936188934343834494565095261663313345389041854589454342639675053797442882673477065182298001563438446964876223745340014814740045375475890508405434661834529204628849085385726277317362350561284342648086110198114321431234871787552389027487873613316483661420729914992901738917725269830741826256024250525176413832055998904117258237505890969740799312314911129985709740358887323840104178267428034416084015305796542795743276607493510286387308677169660101725381672078682934198590685390028473985329165958591179730678536642769233163980157025446837385876247647298820484648762841149440583019559965044810794602992037472533080273183190170374815554032371600534054710055848203369064851231775134170781001174849928574230189535820230115246660260685251216627743145244336939352272318609851687143804298207657292026183235932831161942384743624564275416923845580484610994662192742585755215200168485928509261664927303670894048260096488704993925585131712244837363206091901193724803802368176601697564029865154140661600143637116817748510753181074622596785784619463542797423507279318381724402353549886317527001834533117874545473182338677706427825140376516560623041748855263366521668632844698407624132323730865465767092607201848955719578233130414567291998109462231207769862361940137466460255895560314385814380761752851982656351811701075003087671161046691057718112392391393667642318267535219366200734640354198214530735209882602492610069669747303452805056396716076436550299172626526813934495417178080529383206716313470191842954004659604536401810827653201693886536364896461181505560661190421972482067409654715140384858809355334188729716881906433839047211174622326140748881710148565601819500928171440734552533237035786603560376181437632354310473801499943504826610971490184131062685523643960376138687710398961093974220961245006032440075424247760495294714384794258408568995613028826984972779408331160651552507809424883686544632529516067044064853071666242279173816875824303702616572293599053936654511034840118203026515801074013874847282816376157932834110103454861189029294865795005861490695215621306370839692764549608452241678889897656233118155567078702652878945887307630908253503191072427207222990125044632688317301188294743327840995924159839655045629191675877599200554037349648157554813260975284460229119869095051620115625063883125562657714313120014901189631170030263151043070873980137514238649548568062967388935002173327341737445849996673090393605536886251937247156907690676384237033630434783243417494351664865380100543385128219407606125566943692323929287350868420977655428744640949055611029775592884232804261228594602805837156712885255079177331362931385806551462138378606657186341025941116859266610576488322915184244102490221328109959473792624630557238978483493552633572157983255930650376889593911595146945867196283163378043551082225591679195506638862594649188986802075546944935800163849302950502151564321895120977854583669574950488468714087668998429548590786079837634388246505578874756200686649588086288952820580469269524691005296983986663116952707211125439610400311320762739272855414618541391832290363113404632208784104910421901455444438366459109330958538604490914685407733672091552058149723588740388975962517098562174177651549734846349323274208153570879382911822215028143851629116654333715411964844213065191179413344230452516977348948255744190887173150820868376747258973075130913782354687944883890866386573149257277415727647759097985920174295493265898180167705583042947956795076028876275380220424642506746212406762921469443374154092195762539925806596984313202728363011723080124699574913113118270370545221715358616343900066637418266552077432875640520161462713867512685832451400683283668606264096219226503913110035696384640240826034147126667828782526669919091607334528507454015862006184492635957914258198239883739173349072168513880197409620528258129638044303133435198384106201063167025627112005524279860701177432197642393183967296424479357137383918828847241469556220452835535289694572796257109372869822863466907679953995366806230658707689851826273657025195332389019272239177419813941844963682901630598582614043636925295627613351013713039766404046243445259440519758327383552668005011323150483357329847148762673491950722502995907557453999416571625074053325951804589358467006839080995036615281288794701158587581894964591678790102119089219787975961147036151843713253169481969176377681754276705896649595375406321869301980931235459141792663024751601672759406306732665162270260252315260009370100862712516874703409462488538162850038710571391332782829265713633897308836319822807165974169833712490922348532824241893663905343898473246376240390979092008297603717087614094615957119475547423413139574828242393196969158214356141364396408498781935197637371320951174357330054894998665026338911494782102472495726740292283853990377115114591982223199538953899145248271943020828099087157747367500403344870886291196443464259775908725131943604677470618663150366638422175569683547517038017373528650272545424059320272184183621862096549490562025559613389634351344649189588732693584537667084849706737712684644105070116354166204669704453291643308352874230376752813160293617878104526219939287815987460262564755368862525476495067581860445584006564638854150007000493088195770468546494178719157525988665405282855804389295288200503949783368176693518727295117317442631867120293727789962113856607138013769336537926887891203769023254705801618655654743413705642383441266054916922408404114413486635535584369546884613309365509817513699712442564354016372877340419176178466474996302874333936795623374465235340432702177909051483227773462540316386499284385349372398090957436317761435901918695300160499700312177641666676339847887393404056319280755407259922085251885244456454359616829569995267915276923845964603846718150149810324567587405901531859202102075833391994902001920992663097334249397172895694155051266810804272053507330401287917583618838518822139775319592710076950185891170714357702100290569529787533784313599703490979704030414509223396303092545107523700027147587089200730667183499830702842615583619726070710160393248263980930395011121773604742826382232136269122985284360170574828045591883506498779740969952255431024843879032653011721903698605454047501081606265704564068493399799708330499569874381956871683970970876179934525420313707129125041884525004788222939967205075643971033962059285746595256047003941709106902377388811340700806388309984303888076262062388906652560429730900745759149876536600859655577261773279710545038938644228217399509331312744215641916966535096402328013065064946947237730693354376025911290469328937725852903208323607232826122874379157741629734511878705580088572489393047565066657968556696015933712956083807807221794953942282433577127931983129888885680573217787825927113958483764179808897700668236455929433258793315761973857683057546890171230823885435952822876684099454573896513393294156304332927037684310178610448835775494932788135827987096721546612695941074949853703918390530261316869534047231843807031010055829977891023360382981295422915657436014075093766880966575140325105543166562687434239576135848545660585858552384171218676284608627263438950558210627094865744314387642831915318293033565840506149759053078953213442326499485909376687212297665755371975179778984570487449050653983100959850012468760210917133787919217310070318960398206859107778301657852748693746152642708532148201911789209262234340461831340595216506736580822712651803491286646751801845986521692569363212305115988355682278788428983042454367056885463291335246747870619581864026252660774208822544697912794592766046340454792970681781295404578153618427018594145055584721608886516924091227696830758157423925745371077854904549091445632428353830128948369959484756368307483073107804250295216041720626073934603668372454583074570287043004569529031340774962979844472042425011583057382600495320332345295748658411697785333771276499598398889996302846868006814323484064793157457598985339969129442544745462483760510132772835886556886057732028039280476500548207410238449644797238376839649559731433250442676903984021053746365669978140238412980557278989939591898473165220995603355493106612007169096065624505189017262486964647576539161724093601608513289704627114358177802431993476593944299964164378609116589115752266884495002179205147124580350668680728757376524922382220425443565093160186979538146562274015306033094939293649435743314274083752119106689998077319015210794247850211957968311981160225347148024796013395202761037576049761032104699738127816051209213689794996628343052401805350803270143903978019406871529457905161722462382860646038401033246213630393288084195781520388857033081792634196128308608436932938189315698357674476611730590307952493432115754524178207971081556105531591720056473251555460006429567217759263758763160300533225997348392413175274756255192482626109240022157065261056768338938519390539761428893738800434089275272906925832547323926678038692627669371647719900135407048489868814937962607442442020197134123099808008015618954842946903128309059951467849635064378067200200441837344239818788179286840858330673775521253271128387499615163720832914538964144510909788255747468672756231237378512911451547383319165383862555654356091476109351789219057502823345009814415695473822948056605126704857127966115667615850952958480846041783603243550858954622994737580422322048708756304025575994888108196898771168536705788800213449851229075956701788041930946849981818257807410365205523546329600619504798696645600404125006334689349439680036276823940217934777221226442010844254336496809259239838595061823635812590254069378437923956355999802208630661623874699453311354608924669910699904968158480209061285686722518117419602677736471910395621253262118333199810653376941957843569918951918267430984460463702972358371027375596671180127843041372042912120632729329729831291315839132260182075807526825974533639394881578105869435894733003787800456450733302326116091376679561567455781638520077498894372989163059218917866240346064067681458239562457838652604437208087766333991576377232150450255016977371379623117386371917316114103495777763830167608852608317266020295348153428628489657464354224485587786277611837539545964298278927202975580884668136948479902773472623428127745205765564964690064056837204712063954273932032434105698593739840092179312789994212170683829421847164615769860422055073992302804956979994868534026720393093092138507699162881481443796911065133775538826383950194990181338015195698084270614115105602545261991430114232359378186575474477656418662445376010396984446697942569360548573794677672798542372266739561277194552466819928896804219678823483702620599812782801950722288777527324812231248949268111834816897743952859737178564969601423977335918494170942081183434506690560394088077964568099466528206248316264567186671399341643379348956531885429449649467021843050645097305834803190430712402813921793656538263293202731240449833139914315819372515930096714341069592593407111209303347984468101042389722487594537990578208973156310023909952961300312432253982818170294924230742621433559851128666992417741647283278131218307377082346812384260662563257462234149746080992863864733877390540625899896290268643719939949761605512335658296116391349505117180045156827961342251182091616916295207827391179467827457645147717601009425215184827725419430379803177835838598843404333657050803119902875786207896384871933483168429386143633445059182985141226105889357480710926573937830316120933722818176106709272663551764688518710735699592863363260200951442679158371889405423878106386072593237033162824147721640690466156584963409519448733142432094119135319933040861379084927917151114715279908550416025741027669476559163320721839642591665564315382485135182879226686354011403946373739239477022260853771085116360155881759849724022870471243272062861506921390487090879369707556212674475692015271673133733439753064154866464255303290201092441497443415753308613599964373856420347077990303190345513657174367074727591576543394168516954016351016303939963990777295828718514924446687720686978231724745970509859710747989293446678705659697538019652310086846058018665131131186649580181928950260243785903723297813673627663654082105778146839534423818909260891357983471592638720454325765268122009799613980558414601103935710587417197030589534963072868566172794277323733714760780195879456759637856642367019032308216302143758599417934909611221125086922657350435395205405507627589656963173852934413736379457986121681699983505146443942054765387088144692044429377288046849986866289105257027155060200146340658363252273325496660797042803539511790018818331719174381150721653312477216629330384580318131648101123384358063299471277863107460127805079949123141339739868037593387771365148833967347449631627794751602007764998811424048387960535922288750124102714378423360248578951503531947562016592697930273798252189892808117551570584188491033805575914935995872474679502573980228128879477441458468192587492946124644393122133255956247592364518138935527226400841089958176994080478170407907564419761557151162834494827468730524145767415916509798618686221407915503648560050103864258830717045943891477364138013255217335189293396785182817539525811861881900289026502602879369883946939261629884467073984405690543827895433786059869376775778196486184142942323949134532599383732272262964171660371235538663642910660051759319551418160110887511204900382877059592010281979165134897621141262811508526555400957126120463299604823325951051876111041084108781111571762219890566079169815469906162152201220836663187527890447440933820960666656984300637676562100752092836475768901101630431414394087113168568012743410339407396418423898511177100942051762417115145473596042176400649779892850318573879682805911644919474339855338575717996896809104727866998504904694958989940693454100309351555720889366110522979091010461732823595984651603336111274352093633451338767384617939076477797468410532715913067839795395018814959924281522649405520606577176729888943922149826351345194401463959757044502247664236632963306044182842002780845397063663138257131797388708344113149118826367326722784391997200115388511923548500678253910286265135773263541229447235125071696314181572666181102040627987979132665066299832316424192943424624334613740847869688032687286972468301707762081667102479015274308413490278366080210985302152196846281898713164855505844608912161707484726917421179865740585956216080502607278885853908163386665764061692318783903245948614266264688882528847947888072915970551605787623326216865582399130222556372656071788453339928923064770478449249602917731714145641440862150870588477159631698209789094978602950876025402170374554677019260568575207802622853809350856764786418518157912186851365613990260697985662936081545634991714901896457076806022160955889446775959243510872589225113417856098241608842744645137096660488473797817667983489599917659566536955184838979006595601989174263052575680527333058647442093538288598667025754640327669051287209101965582012121733949923471399885785023726323109799622098173779852511942254423110067314103636820700779067842866973140513106052427588719959175611777727460271561843945403046387140737035052308520814405862803278938422485542888376012839257670954743842034066762405392558621764527272744859247191281248868852693585411908174494801863697624709256107721087391714162328542723619964506968730695823934172277806081146818185479615568708813162256095165887900725758555871221780477174988697398849337592307267620257971239124291427791580025743994098950830102373756943998676318644727561016469065320499599176441487630890235477676390694351015196322739386986833906741821323523134086898239522086244190099061900710195777313815009752092006968551051954640569038118751871946986629777507796984850618808049252139757840148624394580066113351820212281223418975105661370568346344046357456064707219118904958734193368913463173671673359488404538566596925280785414961704959027874656277429331422939303872781700263777418581868372140117749242659489297171019907918999682476275129081858740215325689884301251124495689123556795156442016184718659145538860716351469103559962820073813772392666616682571716917341096514804546175305565283899471265433835678094230581854967843453205091664354461154592797925492237389399734225843331091041352479540998019967995632187929380318299611584967445681045442332990295050191088386214143083120388256523806404507224466651100838071743615127226007441664680784803966867425008825774596140588020188474715732091961410991000908020176643965999619535202873496435867434412497065033211870119496458749815283030588566455093505238728715204601641283689159790793593204137625244183023877750973311681400827361436466684731047794936204433335003315804195571867953972056368609689535055744549960820535930857927408260657660955029186125449259901135952195877460953095934008593749565798173114277519289082737361132151212690392615042347473312632400216925932853860274074642576233940970032863841986574207804530482895181371399750076081474981919932909918366109974281957702193387448366302538990955826415892055035774513560701324073766121385295653268133847841174979104101459231478721475616346821309827341169758226605701190600909380656065666926103303040139350062812084187450510021267172539867559732418756612803048192515547410249747746675032262137942027669859381377081793723778523996416851950474415620646697079627201006579177377124606794859179194395032624759915159371862146793703854447701634747701776833714836178808297398455047222806019769505398761247688640078781350713500166841829470558451755299468574732798646081390621670681262827905347573639441176749372734126018657250640087053511428852322385302761717077769065023108886335813374885712214386244312763233175999815669339236329600605368170134192678939773519348872397251430763363593134215733155614036825673057412243678843341227130804410479407762400061697250234929935586225854471431196873504259067547304733824007878878673420541693947235190207637211808101617208075756553958814742743384011926047285149551882635925083249521371822815238101454788913079198683643431337566309949938867138269097655853205538294738008356275913888722179380438554716995171315113883745351478742602759452483215812884007209247600460748098057355074202525788782765833358626256941491345943359841173972845058463100336285052159036140730199839728698033778344736894635611844795239441936514419650374793846871918328685472935979670274156597104675820864817048330562684565845018294811224489373059020764161040890612909846116035679931433079303085095223421345218126408322780488009777094775706335556144270763230987547776499370428679869984585319430414161644884966950102681588405210327673409328413544914168899568313440385749781712960553084033063707297999268644937714517867033538893393909532626767138726925262968226824741663583169211914960161686821987344842669649926912044969439169482536791036235380775072020989041852747009653757010894790387223087684572173333117432758014783823247655426649996206852008614935252435595441829956686905216408074264771421682038675173030544517887545389538696588909046785250250397280011829872252855160159737756270954857127684728546879610302272994407174585888107559699479840266675474383280336253595304804844663667172568251309557296676665148045141797491254573988919946155502322999605248091861853839125425493489390603154188788404541087858641556919562235648450789527151005465422511931223865220616408674949005945638748242959007131198649288135020430239081127316930204667780496910275780187702661741541197573447028816458161583391640071566325900262382168487172656135788995304844241390289491112380545010657918453626364301200298259916470012750095553982824905657573091350641728567105269461134113527897108664050273690594453775721409755932478425653058776438248563096081651551877110045672636880264311084905312108568169669994498204351120091948118078723595212525909258353852069053124700877528160808318269130416748223055906275942923508908293778684030496737817392763950893606620612048521021053800439648616178262013747644058643878726764376215674491552473485991141729465206818443323714069782587017624129845454454339887494226225165067461685888721343905758766806939528701058885321939206671002008016585714762804025441395575602892909245027108350666076554022911761303229454493144796895754121642780362239562744948512498587700640849098872443683464252295202557231895009095932544873367338846648574298810066868500837144288064899915876745403700040375643825387327738434656349214068081090506596531965681218170030339023661203664097990393871515108641496660243648875419183966402589428499152615842756646623864115250957978138199947206506653296234338298645589031475616993617510152426429323769220628835653522220509258242228460139271029307062327575902294568105997165477254192735404055048111123943824600250773446820049850350691740791259019307060297480035092918492502161935721070749114892886104468127347454515675740322754815280226887619125809211142948510348847498655107907632493476524664439256494941444869857484857785209305426590280916429540992884726937912643421741708034623455005820226390115469646323273271473952372839898317980377058978279174194097767686734691585628185322426146289524206100565475169065020060658209744029964837985995000732451853519005289402363156308099307580466956113970887551350351193643627979792071634730262877758257469345876827429770840196996128569809070881402061332768036004185637122524572499882756279999102788291304800923688736294976959935061309986716199208016705747232679295832665887469793622075952496814339445297776661270222297356050709671408720908298920434951603037907977063038697318009511777063879766476354310002602426213005152117274595311946083884908245737879012929453406852620315472587902650593229259443426151287664023268785024845081565869140991074237424866312209606267488692060875798375926148147399628638201865490657436095780858045028198754864032426175725260000130228842285450776813069455549885855943976079866445277718579157587310842807713660145445855122837884726197304864246180217279648500998019022152135260466739252910425110709140653898249886106757661408556925723027811927441245126152317783816099568237289721848930822988624475963269827721584548732876404387006419387478915059220464235608694640332393818713333542625325159062318853826336208696306591654835357006110398550961987559790062564749127101547627721607438016955218090842334908316476404641099443271632052651980731641276073815850425152892541946276517305384281525028250825981559885986914341250538181442701809372959050176609157455092935651715085014516902724294059993148558819336316785948877224828109636539656204789899556754943467131694906254115073801181687562346270790009418200180585260312922848416342685189648401178184435319420869033216394778550775931387854126766196038274896723857238396387863860878334955488753490250234743107980648832419041781279929027218608389312634002403143079416621606134719635679936764364421484559221624797631684429629646519704784981090965785402291491534435896134505147656826032445130386039916201535666145493248725384972321728442927938864185466124939501522507867764155099622413736224332411496128395041543278124527736876924983553516689632585866863917016604565664163041521548506395568885572122874693789622832123121585772200553172507549140401875451436571926140287020122744902688186754665552821328870607804811327421598480322619201307845213904709806549113405751587731527581655968909761455420685121012117440466579587869857474465073870866470463112772804044595142744029554084578526333527373403937825823384936650201177079574886364384399010686737025619363112376234909847254741446319776619966980010496585130499086263272462832644010677413889574282131186621015235818279289059888094797418190585836001602388264373234998073204852288363249952071559048128808271364570872838022546122085308337322566601868026537940442224162213941303263899124578519064507700232590013763035268550424350599202004865721959326391333485085777848984672711281067031091706723106273692505864459891194444004846611367717306935851105994502906442875179452617044169252292126523900790870737953117877301701318767735311666497859236989665724658720747830719967900771107985100838929930532378796358092876948125075126373891748627110211418115520145110285465263231103084487039161030096186885174032526801839079336382039787467374499140728041236586125389753043791292678433705068820514330082001422993676486649542112970748167877850764015118856766931576332295110956070485233589163559057125654138588003779838523952699945997973151836060412337573096006693276237240140320994819705802281071830608183990941172374530701417454795716565666797282883486419542933733619862551724122341148098660602839259926217258989025467518734732164079463590209943022197208521690708069068219771541637079947827167585582471773051903970445300861377812431688060541576424719071450197222761973173286666382965570604624942256243276129511872542972947507446780771022256433183092822490152092716379286897250837012132033720538419125690527006800728994467445965799101796531306843619417096257597940984924925908496005953852408415599570020413476408384401810154909067595602977458501006152336347540609930069889600071695067268337598206392801673082962086993860864554174626590315651612095458949733916500447649165824677582126977538310524640061807324389666235318489246100489905733545250547306654957249233028096531745991660378915204101955050334265841688305362804729648507362869490736886185263185097665026416464634931102926162097605793160837561509960110276567232093609116095723297436123595323228863807810366848379699921057324189472436044434824719735955991416695409159716639440335386649170667185051438553842184859156805952839377927743169762879545842802429980565931937284022130915843157332280390276415407040982980110268284597938105813953995567444146614530702667946290989846505564636195600078613136351735544515836676357268419627999759917561636402788311826592613575351176455466754071646218396432287205098959418842072937979553362852951743962176274610904140191537630029384758519257197635666205157917260172122122912142462664310632242184366985344063747414183965775039355622654340103503624379152788024135467382914458038794586379111011414034712966847996899035193931185884590755530928128236736935549661833275833531568282463501326054834636990247834022978999112620412945740131569043465982573746887236095584660354575639535053267608180945896541378539065615326619582407516750733970894293478850637076197393677500423135787791154778914093493777876933574048026865432312645165380740416337834779262958460515657090195514833530772774243606669989067184876800031775182551817652402017844162953415240448437427808558093393789674747826358018047351688155484293059686523940392842257643486622001624804270698448889629017025095564366815912832262071925574268292818016379183337668910907406821652600642061564239656726951148938450326653951170637431982199480562702477930301182485158521452058098807520551802065180200995807337827889780599419301899795369898730701117860872690418903031296846910535340458260461859750629640848940089550758313857273927584804998250921924120027938653840517481800790995995543133208003658532242724110969566453736554144266236001878592132335532952257788617258561690267301718707685690411081207779898825168322324542879305112323286063008350240182939877496412546509186307208182257702648775451037455880121687881192695121812075409870965472680389677892732254101946909779970084561206515950411264980754392820936009961909013025216865513639750222088962367714390525548413685131485060907149453904347962031746296910490141913912419470342170748121357821415673620882607566681894536026241905900824471738061383440754635186523998773098418728042002828593325481601779710445239128748102157551271307743304918711198752036327530252331247086921662454347083267633048539233361491899531390798613165473175654870484038822450159860436293963669828166333437596708132976985802545136082669480537951155023752390643452927673740980113487838495198546507405927691916200576102463012465143083853128374606702486308281999078271233961873365242530581340963861436578532515014823880319591626179627857516458730128462245666336327894372310115339690541237117167013410536527111903082475832756291185060849822069514033190325733437669913507475446128643249395865443441927370922784172851366204198995083391853092186415687694544237443802289659665549404268442667763073996296225913754807569378953234416400172858316006215458171788598302823034361396923875713752321267995845687245551805169485615750198989471024844617141621444531955370136584378646931488498547777257281517062796135273343222241396186222704619264793879032340654112386010731949474354214018228654654014447498823874785774702083812752469368115370190720391702200840967336112432012260723373825491665611832092288962174530997052504163734895461357283583653343967180540194322917367788196247498193630922493592348854829690007788626077728108700741009544572917221740626174714073088799088698015124749686404063627186010577140432963133615834011733633086712990420525763391769356049427962628589179304628837694303667661874157041538911328136114385691220932262450671101060992253638083553092813684636000426630916053735272087731992839515309950013681800951070022764403749446601838258747017936745677101095050585901029637399026903478982510446585434038844443887636005944013032936076163493335425999825350341269319328576181946276784520787204170927602747288338387959032364063095506323770095682507650260391698137672224644744484558024985547461037897797715007055099180063358072826092108092411843056877561853290509181945861613929291428788466203862994159910093859206979293276365205606739203693268065050189355965301794479976049077612055884895330742750597774037879206669526328879261038529279123621640559476036488046165673042184649281067099620472335197014943427841970637890515442118344673624979296220242320434412845918664062315186684016867452963871701710461996969901756149740858852355608695819905768045540704597134144351754115686121650877138164891599488194580505151291124146258164548843236675537760814633762870976703449710010940966939413184987943555357506202553871366172924695699529311112909054122332168805602672519616370497798491204384096761594184802244218948612498658458624415121295751498110437842368682433575685811931941987892480547175017311735241312074217573505100971247343017701677551385006104869350989699848898145175545138814209840415218989611745862210889597494097036757121567494213810161395186010655401015510674029069428445215735945938946833636735782958193149981864518716243131914669913749553558288722892885587226641339967378209755334127027381487041628652720354699098898673683333720089975978407430080263814873330292606517554863236792305583744539556836371307390694453391794261328116082857651986505288709414547624116709770893827437342941772606293632530846678847146386845635522095585541600653307155645776121910149009397509076962092337981007222472541564965661359202864668334235167306469213828547570392650635275032616273325818877741042947387018384579495138083716314497251807634498795710482292969529375660504647451097772165459732696728138017310855391484987961846905181871435140091438667355773791972972664845935411370408651065784108329455163046996827421540075071856135886557450328292428375528405940488897486639173206161546400122663902689874048097977451973919026629556899334841258208847090151349415366138535573364091192067260861576150669754166558460023044693087569871065059270686675881659323063472470536697767971068280268098145031913394812274382390193661036331430599883838429835937085837809573446166511624437680316737292042657509624843061263963788911762856877567030628989535739594669488438572332287231792192466233870944946623935346247047663255468113327233275794785047963351287683868586002738381399413341467442244816666230678830458094840479644285808231458314258897988443542885007267844026992629760502657587796227018105270695895574113632976675919014662348501743597426277081197565774607263465755662746177656310716024377782120342233474102142610163089058221414275456322855087274578950315157086455199532003560441192036639040741527172116942023071940662356269671431766406112305439580891135208309467934738633111550984964554905050130855794959045259115222145788824863595416743050346919747683000830600328979472612297232166472766136439263192123688516822167460572986606305271072340755842766195730902813399339609504156158144628960592264237063500550181041472392873837537397511851340284243618047738959869581803953485074552360283387121214942856681746366997934297506229108196191314262470455588239602989309023674606708221189773277341256287593476152577315148677549351701720161877323464411558778830830411793648225719436372058940624965274484257429550612526009599766377597149706544106710321383111081321931991264446760496058688060175806179456286011521236912214143091680229493774866181211581508943880735853554165157045528108846837647996651269015166774577494151269297112931654570821935205228775916522087861735753933819840275563669955831526985515966303000136354084123830033670388639173120257072530213568788105194462294436154701049173082761575525909779437778421762181371392336818536777983365771785386035727521643826692345520057224740751285145787323070151751379545977943707260574353890749620944065036260682749837791236400229831557715784546529494628512052287603992778061135781239802875594060228139179163438870559769113587378173875057994133290144703803946716776699635109581339872082881397529037870366999903748594327984104750814830251257728220863371965492492808490436520883082793861399216535993779955925298233906626487211895768676101127973862302801883212608029653124574070326614887024082144263374831505558661234320853467493096540158277886942752070967877376730355084119987468675161434793828106796934583178745526354538735164177749268657332433564491717088253101120344752445888705465111411144781402530936495592451114772309800605608977761371644954351825317177215989214081393539166696308684255498889801297604286449133095529318396817789908723674630139107341321623561968599896356290591726134592153974649634361095699767379659531801199659480023787675860578668509121051295955277775697704191375111341408631157769757866382793575785505552301341585906433775215140989113978922009604726650854673144596656919180159131814201348663331026424374390679140099327856733049231194643264718302216976215334233341587490774885850782771379204534902300936600006250066674294884093810113369281008711320580307591152176633063008289301572681415226595198304261012254237148496030936678915122258554495728307703297025864623503639070041725212778573568244046797419343745777885497691844421797154860421801539445370469955910283895231190227153342604991789093644233489508765744633066025904925439675484525397314229512219764862616208769096187150206370316380624774938027222391509672611514970596215320308137705960202260411374233799870426282238631273409404551169615714335304631821025208762250135704580703732879346863776695320061597268279195740962132603541008833256575026391782650833048799688515764978048501631636999700666122675838673402235766586284451281122678607041478433445386623857382122775191925929278165647746680832840257084617156203726126154553348206920665424096257587018371204489428245631070197071760008382131595380625464196560145044815390148299452733545625201282757327990644621208073084052627958619577394632147955613729016938220466400145742454785181037363062788744864566431233484071743008580650296071985632855052187087927898459872963512369058239302172646358068998462118542391328043279077210509404496314165934249902346377669947139394321622333149469895063346983987138978985833773179532520739202168151528977146792598605392499799775919172774792882458537675497532520060925488218205879075464917328969699849078438297168644078696419400390617111123095560758779405141818622910383835929172431327397508447379766667126387589881791482874777785426066115558873739953667302763858235192652315779811396861938887365446572818026098245768287849233377882139880522078202299129685073885351637249879090602536252413356536486540919556610501367685845122770421193406270194590145165294221113936096016690996584796687128465429717439742290506632363856391814444920226132063717025008315305760560953571912324376444659502310157162609496196143255830914608861608808023392707284360914127946830799257903804751459487118414651909808959243872417244118711861912741274208824027060444326589912994625749633589540042323030191961582130739895821417716190920632381157488657839740140544151538850598695206133903912885363628963978073448033755899968013693439378253727357267915351570419162079493909409274731192200306386381259123083806842588754208508430795556942288872666046939814920156154759443137056796902002616654321739793647618611099736320666189398717567340698574966823609436374055063025623202281394376071962909282922470174474771572467949551739228760219873393295979198471581394576254236446145205333520101385441578178507818467117033374767329147521662559563124008224594310049904144807584557590192278945617827428217397527325395948921626749915738863154289020718338275747329909001500893964291683317040254872948709513982025384220121078929120731510294642025204476554950045030420953692829162414915103890476669812143650962956136928741333426288515753793654205018046548813101731424718365250229471379461474461173255221771675243291158053914305478148979665233089670212244964198670807553507888511494596819643458054747585716565592933113762169324901256736674505245486421615233409218687255907313563053689590045332757513675864062929013773522366439194850475268916209736521384829140277325361346717298789004707166743173227468869901954330489083255901149324623953301398651421178250589026346725909374355565917681175859196538807513202897450915536974076971433689472953037565298803274838398581370071800779095555427014405593765540422064850714050606822474562769789644267350124083279857149610723585312673016460808072673682039371670309342605866893959375526477141298705950100724099048268264835116334943593644169164677157550166484630716607964740192962291983015545506717336610223292893917386513402469333857006245195288031162937058559802729758989604821126065343599480551236894095294664116423839712502321321350081102236489757480073176106557601332192475141014662941933316459890036394821338319373598693567568445505978865111277388825252792017543932159934293729964884868023044171759670578385207243148384801262380380826589701157250191197549235144883229432350840485880344787172343609136405114357390638104570299890993030812212965958824322510259914337994646275905102230730226187432963785129285932251618160623263793759452928342933572592623498540184274582491526952308203237352404101764564601572364893584586786248341329881895403621272925709844451370978745920629266982259645145317987450257111681553383335879709984858811276134969665731010837849367384388427407268817585764506518956077518378991487517432737385335102747574857483525933376407669854262668858294239676986565581946089977986821317145847412010944250410360196327377262480223854026007668140438470910148539185722571524204153858223057249823686121045208265910909736418954784775097515657941268495091532977641467939763800917898197463006443849489100728690649023565862873917753665444023047984774417558991404786349315793878787162224231788384939020419022637342837363612752363513986537866270177254151101036206091429875494413968035704872655383241110225710406918657661880355121254991747056334922269673053324421973960772451509132969620138453363192933373086364210359672902275637843641140549418742850338640678648014370948104532524088773759789633534042429544890885093784457337786419548258330580031789982234467830994360588025329312855447566180578574488560059808610568305307262174407526913538534350225478772470136422628584117317286656481915453958558349722072319393348303000685868921257819181863740445555262100605916113523211093393750980862284720565406061399627621059266389948484409422919924750724999685662089653304543744678891214503628714985831186828724694458472102966341707776345728739149909679888256975574432493259230016320656753732792377316317332006535282440153379938757930587148056459826194387507338000036196304296719391297960145359868946798874731895493041109643286171016877789059981805849231995859604214969531470552040149193126559572965709638625051969985188926831660816789496082323782827454244377948270981701187208395578200536635969579179607477869750661324020634193423572383062847847721815261742630216488383967378190827683529297172758958361159707350348862511751358492038654709653165241257095679207888239260996361101695094285982577233301994565181980878187325585455100159768878713478591365622963947524316023339604645102275206400573556184937286296058507534632972642388708204038601392725040387273876331882649887194498616038187965496005398643987467931031881463578162136909270907348460400638705210149656416830130302708056291117369042214438391821092572673936014591036474119631547136546535565369627319127740741432669919213802358907363037797147745270374460690033027544249814543010934945084262811343196924102125456739187226549626296312877860342272033533468759055178898817649161104948736010679229678544615318640481562334466072433590137089407941125779280198739406678991434244824844335376061955513366811301398540786901247470073660870577307231135320200998679051638861122555509910487366257910860997143535380346488696209877406886546231701114212001974996643086853948307368315282397906777702990843270129244621437162065360596150353440307117683749449141952289472511450191376678400462609380281088203877602109283196157493749022355184484281230387791357464605017059452577913019728123416086291277947751745463720604234276472500442147108324913100016322249466515455414211240598197391627834308966385940386298972506825629935770820636672592602664165088836046386515136717882220742992182187160005802721476535133304517223292498050003421785089304034158746420563004844495231282532027231950358710356377421680419474323858087988809279892530291129169490241239306460114745497162069518722920058091314916736245762057181379009250003271031556755396716288594419331063190640379441746492040109246922517893039399717105907982822965719305047983942729835896994848457008063319464409397216077067770620322372213123540060764938193340732695542248434966022695335245744661511175265526489983761113667039234123720300323132461187284571143955113609994169325458319374022509148996962796640633883099842789241524994527683520948952187522389520346284415116221135129444100084998480632940457661074206527561279792400675201144200971451719695445239803504613078548356700142650866438105114260001220513353963969424079812207506395290979100147843161317563063654174923542176139357656483045592224521754869351889885533209783385702805787691873724561161495656389708050764580203836160857326472117917588737117262833530432018249555201356864760212424324652298644657163355973360193409026790703682681625233832988030342265695723160648242397121486874697329639982004693936104613690904690910215739085521868155681101822967709935781682278864930267292889847641202694901565463337742976475216142488875943889267148892286809557713625946282074209349703146858143645783571215459342719268531713293091623974672751097472255994470451514456734554027079996132707507831277451817531820743693492740125404706692344430040054374847750690970860854664559137573487076660382541876733443935140918427781551623994183816744029019688088159908258913080275529763107303893766480315200750176587930538267917323420991723862501585740634211099146569280192188024976273611676560722629797533033656146685899966512971395140755137612012798167656799213858560407138585503610295790871989539649195849178578356738023710230798081085713907642663089731591650445722810668865010491770504143320613319424792953867739622992178577038859168069560565670884061853149008931585973662208159796116722606928029424576080979556106063914093711557761034967660239019951529707855573323497695878558728325225672976434500128732840136695457424085373946912136501941959731652019076237521258716575632335861319022895929790065867146056641139352334851837676579835956362297198986860162236753627402812507946309100352579331205484745076030142516669899020650950085778704202410357866943271426682209161516849856561256190049260276576933617127337265914969934039107952555838915453236969784974954325892068010008390317324482115603688389667093378456361946366192387258569776859020573873982976310770902952667191480556176043742837426080556246476973533916776985895731607591926377395006936099348735524731636142162934155095702307911142457718525503434303019612150512296097767902689479283590925799988004169801345764610494518136548767329461439229428134047206411788164901439339382033779657495499596699770340732666976292296960262231997237060304914268678783041730819772820950404155668502659842170905792546502523029116011027196137654218659364646210390432598881476720458289241805228943458898726910711076596523957104929045853838238872265350701879839306240364665573278310639917339297503788278948618710279848646515464996567030353213078784273628167363749784990129897152928648207634351086553470299965158564458730968664689293207011714503269161445291473119471351584596008191589603610361964717995540510739332988489928253258948977654512901123510540607442032943251575044040658920667433351804625151676646511217975905241499935414230357527375542291099374306574822845925756652902147226415144107371460555376196922656881615484086152079325212544191978103199001927242537015452986262882166835918258503499652300623795066622547334570414456461293480968144949274827308435534288717198211122402505104468841171151809351712791634235506797259330124606967428855975536519339740490976646356063347954703579765033263752641263605836558957327741147775811756319288136922484994527530946207816275243479463637420681864237786625650444519767090072990670317064989129158602412704857124751428079894874797935048382041091400149843372468901885725440527708062569836161849903137461017625421805534003873899549569331154022247345536322134780329069142101902795559381775317086830810318428095572559101945079465657527601835176844250051317194823788483660934511302677740285902599237661211083225687105711590220230485829641825364716539833039759644547594099385978468723740977430882582358253783188332351616045601625269560812467311491843531309848983448021725221655112565247489107339867163053381768810558044890040920982272480585946062958348111732913637623992601503460951249572351622982097318458752655001504627397862034170700107758927889320230707362304109425046035445771375397796074004201164746567247602640882538206579067684983632413363952070783969310020696678052991432535302261245471912970555090628965248240665526185467799254278824656306740196483348865183174825676526153841517513947724729206006224878689577654115023238268770045772433131186019618692218698934187934753487144239077018003776998911728747563691003915460488285805547496419315875493865995883433517334176773371466241470732498509201343658891957002033383201282370365821613860635788261065568869491888370960699249282263308060816210689938719188240312244356999691096617475429869950686942258664434504302670605733478889804898289442560306731713337831232349374775189618242155571035237022607454361851314649259651050789451943338965344755657616814860146545096758982493630199581714433550601860020074621680962564225303989230127490526221460339006373506757976795182550637906378131762688032651203468172466918086998004094250212069693578704118870468615546652540589704597712997805729895481787819287325968078435802068801891132005633856005634778336766856046128562584750741970372633002959050748364365858771103724035312554337515048635685313661609331885454612786719555556015138090322692712720290992711529389800849051416070917776134306307352637373128607976547858623464533555624109581397608423113968125089282318413783269977735180828356138803732503785479466757251541224766601734609651639254629721128295308971341597825696743988215297331841025609333250070044854449533844978851150632734869923194764372093890413428004062531243977050242910709433350069121414282213788790726228557924553645215751344493963461424953769840670889934618366943500789867510224216679712462198058976124327970287456814277333266301071259339462029307328091441776985244184720938886471253578709538278634807733483625380106799649055985031115346395106526257928754145116417078088287622092460807474705965434092337355123968840358971328566206363350011740820133092179816027673753899779228089208172248962001348769979766082218395401809338264022318116882838445442011464349236880741535785102466962411888501276186457339133925523297481617179602698117245717132649661461610792669334989998519892503434635260484608628787255297978517237494507407940471399293322472082054817133050990357508545569724415383782006936096195723245249952607022180910444718834611945071118751876820860013923806419338044142679928362062287497951032472873300870576247114602428840857118103818622463266431984759642051418226046677014696919583857769909643671152336763670055702408518064291709996198396345419956256551247829590412080108609372034914087100969169135364712897831420932356310523638638318408452884863669637514009775470660429814428227784807974555794731369125762102768452885748194133683957223653824456441849385711236131216102050655288820826888736098946925213921394471622474255192116935584018482147108349630675366742803518618782365956344376564648625523536968291545694696031196965572788564427889272352815106739212516752917866112329914255939394401838017628456694527522572055266394231445180201635859253857758300667848055717007355765083788490888692544491637404859204267381642477737689288842505901116798377492465609325706314249469627619055246856315017434351063101805743275209109044017583834366483638995037843831469605668045903595762189898857938861049404822249165291284081717469058960691831374390617132572522253992175592634285869817005451348298026910415692869954240061176830349777688411891935324497383702105298645215374788543190877857107411959962968295047653877052741354235841504376466529559938710441766384749846071470163931921855504010564621297961614761420434372956374833743619391431440640043552279199885154345275127959784116435286694640183750251373656437545976129006498488463708796302577615005644356926213952330836740671057116330151713767371199602879906027199592977940948607074446555732085105201755560713646502507738005980932976252769416957049850688977442919377258195365078952935487793173386918572050050862931510688325260808964778372899345937396721305602530156190973736428546782948563949453315796623919668037179517850931898084802661719995127697986596969421937811644021732521228957143477701710957457779657804276298828222747886391567501502023504281050568330174565258834826061364663501312969234605799313362131100626604099992574337693556239390393135302295554242319479534178928643238915009725975560494140381021625754275185371994786759586112052354770897577969406773109899992295259372435721344318073641694295040179079577862345784808267011269375702330507313211195902445670275289154830131383629741671506374456104489695771210304389679268804286828225072876951036803916858506816663871237560371501297403090364886920635288725883808702913709106548793448993288316612896042029499301082736421240039326248477971642699763177075048310071521734526616213618979697465226950381381935167568144860933495802704195668066821800606536787699063090218348307527059898912413939478984002582363524795621955837874654181873212146278100904670632620815785214180121523922645905561867161870435722741219027184838751263617522112026081974219593677711888812936233168294733195170248829030120763888712526909427412399398789905949936343163193471382709810351106039639148500443112733742197731501640765071374482170862151807867051105867891041048726590103365508459149813426066302458860918859776329746974390793216090634490202336476576649914566263898350885964297661293554371984558428804559868947566188944535226624375340135134660639396702282492262835225870124850241043110449105526810809246716093243058155806645569872074827392991977874663989612963020188445431120309556137558081518537242136184405635767919086589126824109608430461030912693499994713033436881183748362040690754625297323211638202243601174219347299899853578743492399034308871506992013208602133710352784918484524102803016416429079464977694194503541088939022260040642195459840765994143292892114747472103061791816171161345479054317080497922300482050932726453113515153266460431610623342318683665954563028567890375650670990638413853354829479871738929921010795574763077468173580644766842622747058257850641164260357032483672155748185518422767344230696254917108978336776137095767433552311973395813340668888420458094225563679103348013580093938184356905239834133815194694410903733792788763923444759327025580338058246849773727097404256520895762937938901795254617294271702533498140036384544603000999980993896909629579663306532909411857691698204600347865659074004403241820059787372092086451445479950976704083836471848384054452127242614983893119181098899938402011100492984381306596179998421318258707921100027307782848190555263088217906326447904137709812180718249644557344998188369696949190005182019883682672093539635996548799230192296452613840061852143738194438548124765801940564557765519712492410603768323445580285897880072034562824743833711807105984188442998981878776918641927824967986435959483477863404563007279905846083148801772006893466496927968276206212824083283326853858524317382998175946960770286689076856429477439292631713962577937726314162590066334289314340005156952958215136880978297134563392068982489593672573696614141003436853628539059954430222520138905136383394824227876895142373056832083006012710836519100836743373314875704016568193872399324691263242799260306195709654155235619022919574244128981735543830861001108749292652747783047365727797490471971405895780591396621430904143008799480842139603757632551419779961156721651034275670506110410888045564927541986769892543660930661780048016876738944568651492820648023129119938084174869359491497615257997995306227052156901914266158586133617202928754350210060636990730930297055415999408988568785923247160014168513611057785246629540294289771234395132406295472057894765061451211083702665268201628357406742619437716030412047522013082413499906694121673181731508568640750877396003726439552364683858623878130412655493430642601041115878544857941054893241158442962233337701986120048887089810419182483928006629451264677709818774599702632012385968114026254926811691750525213317783503760145407160735087969313502368637073596008867789137424811871059212212304810669620919183245200676003171839261314252067753431985191786334902538350639880686992382583974657796965547308693661370431214291450231677433051215513607095764253114917116513873282743056566137793939832587266535145121210971412972679384315919392194926783883078932079458360637889686710446905268666710775455040062235269714216274712160260951192619527501291272095151035200486130258656885918487844394812691896026683611933181983608893259591342213583576949987188001967909299070790490295618751450992443660826676977622577465119926381570108538140246210986875665001819643630688288692354273086893952789073477217016613196168556120725674942394204594583052109122778062188553585765195332341575298943462775700062110318725711942095210978227944249527789124922931424346695120348404899313152033433328898209061130483660155858814904567538198923429149143314202270680104216167722414521976734372138188263878917136951207050804993633778393148679726443544936462218811516262044173475784948606662569839959058627826288949078784112502644985516023549541491467699481954562994163443390216332620225589019785648980474757720155452750920226022197538266679062186339426423963817470870352420409524279429521664020516542878370854771144999005714613801961041867270551268120876991826533176971620638606355042055291862679760744047938322066417001502503028242861675586578598919108007092414056104163961840779638462479601079197790254841714432170277721985877998922841010325155112395665351084118794799505333735399408460186729066643160582712084483199372777976237489993414388775996656271346414465734397204598832540527599371587731726159173347255388181927155402859326273850758690690609660609329129813019890847257281496661986184713933791065498123267004737606875708183298722476849897456239526650630702613946572353552241676950034951043003819695823493868389707800986539263451438665989393641071951245599654314172993205408873806134076433545774295169425058766834537754242351441962898237734802353016144922834283414783527278410690189520381729799436919936296771967340964931037047628454340990235960627977073956258898634269616728481760820098590582227190509487578950507291340188380677540922415083985194276979127836788137504234551358622804555188703208095048534065228094417122453262613828875157754213273904083573553258286462267643013962363795688485957214849704814178706464724923414639702514925300891341350268160458495638720536253079197712432404739635509699966859884196593480983930471396479142806922164049843226093327291158356426854122052583746610397494951993254165023776995052378979841905515268559024464617081028362769887781212374934404983506284476193643246049473352960883356475709511216313143516537395798637765244496580498098479041065734882404147691152392435873001538573169158496569451546444103825207254348636880059296853280887191328878004728386526465522357915438399649022108759780720715609086494110833454800612063662728533302709673936736755714829479425894154986801413228920100643217538851447050161025632702884938859969686177104440750023991114485001918670712460914451807234475161769968241285986726321035515132160256440114233323803018850617653910939611945916162418047106369045421311708435774606766851529164655191056890420167430613339502611236320509551988873397468053675984509053491506416909735521140384526997062573982833889114841955072456005200568814079428322638323077934231762002306370451167857068611301850730358652333203475868880910009498249995338197510193923693353185718763506870308522358402203931419255468954147956604615457729202860865312461828449073645431729950277226925448613743818542499312122679636398934180415378803010211204063102727591555275018654181855175802554812767749823927219168413474229112971717021754295902059322327521931574391391727734253285174141715377903903765934832379112098968932059420607373607860712743363837137674020532986682566585291484895764897268000496500824782387558335108390588525354733764194505240085089204743761793841275098623470400752410865671168753869239591182551086392649632719092498989674223087551729679764690611583465867779390706037159910878368625543768182309699966701137870118776119281131641755365849292916006730950160029008573635092607712374223903523987962689789660432518430883163637113508322546930218272000896952203907540596251113424900025014690534612988806500563004156617682625682777703502048644654600690111303971389728152749758757004629758227504078320045929762804757384103448515032735307323227182593576500305205617947010414819092176761290986827024753458882807030924125919922623353803700421145865324248025464697432431564832213147476705635916816893018797408530077017335162207220442263002578669376939033881837771283243918860135319646438299322261426354206320956644570516084441785582025275521070541902968552835450117785329122660245507569688753905990444633597147226952961226965357331075964939614728209994870341791920833879929351985130427521636143116233595646547153104246181338700218173950743292533944858849262288692447370336517574853964247297623324532584505791176833894547063900963672538053925802709675070555257515745287120652627599912688395413771811139199071961667531790104519838000277798904223126843908493223027544255050532132451875271513302649254973187843418983611997643571684652385932055323858954539663227375659670400016182603929885822857674043269810958470618612590642296119345597188778184321605309512233234938569297720450546829912228754386705123811158110355458655606048440128033924315045407560239970294874998891104759550670658720332967720880239725715635653120644852961254565991463312680678659223256717257712173894879828907354881534902364003167398950067229452930038584322829616833926541975280071466831039982874740609341306997334061677164805660740584028935442739831323775171104274964228303990261215805720695245720097122600364802483755127995476876422156744516133578849398113167099192255907277720827797683363276027811254109143089499676403165961100282254681182465197338090433608721031495683844013174427137527590167698373798227918391780951340695301479548515613348787409667884910386606247274040535819973380744546540997736835174353247473354992507737540567773196255850157355080389136536784643023791487206711313345266736723779882893067027527801893969320310468453883119545116608231474646826397435772551258504073254455194884131737927985872684924881554478393398331233457454593365171388906514848059098380016692093462044664748158457501723535296057708093790421613090472125615823444859175460762339001460631278612985546171324608248069769940500896502066617031747978956825758772756777593547432405701212750484380638639209494048621314986023130900643182336431171495434017065263673230012926033454503290258320055970146539929940334543336867864854667632144708028837749299809020292280087142340782875475227475914587719309311554598344716410532764818771064357913145698634163830899916940917392829389363618500570990468375233262167678522778726522531275157037466802882153023857358380449902467495902194889651449574545662039757551794018022862000966753640473840716288936345546583707605878034382301879094951416000940058312595721092759665320266772935939813844334844025245886296723976813745016311105724231791910658745171561944180787850392472596441241149875100987891385317741575246168205750815320705901658211836184651410762996986364065281281440253261087968961666631258458123194076805816686105933035599854537595115439008409241978957092250172583024947752972971561966132384099340114738956370374060818201328096894019495327752490102525511493058628143020393863908036313171404668832872490380358742220750001427359937267077017415079123407128294128556576362173495153041616877402722981161448123427780381545539111995442733054579489099783406551896031345714121716068145808424840039830433639984485620385961886162748162283475931653301841498167338013562691813728018775618487389358744050917413442666803937867303042855943563646556943792293417364958280837423809715511988312874248666150554496323139457418001538539935079370286434376031327378748961427774196580621303889918738673229073598715959298001239552536152075422882005207165541643575010441335393009044726664383931417185891341379906041313015396479515781428143277583461158437955047188710188679656681080502250837028966493242399594455013374992719307646138440588556690049208959441427754027126250289178156923789008026345895328254886560182560360152372455888669462763628041913627911985617222881023128755445740270417064484749966429018074833622483426841427040254686537203656550732731468066918568684032006782469829294987639744135609521306782432182281449849092143886812818386284694235143692478709505470978286902747038587145875623029603345191814814715395949788817247681753800860038383099952181899794156862519918944426696685335990741843684425697256207286387413935907740803376174535234447722535400032564998120446651728365778683232848617139487309205120923939508462362810829672249243752878127839422504835801296073754539500701884564661757440028452160158595608070893218156754953262189354941510700400851989222399970014599063196789187299974507421458204479228318494271013019669731815595367175029746366808335780650347297084342566788613410375160729413793964843821663535547035720680446422938552779688802994445337089830661693777759409109452062327986967434065506173025196996085545321578505700483213194114665329167531155774699774488113997528972092200423109092128719967971728354584800833959981487704833144473239712393173421306894528118110782442159046557845409994091183945281395819867424138195763335080508721239576039314032150874503112461666886200049465719056634830178263100810203808458263729025766852487333168903919363523977099313047781218224888240135171787386157633071170832142855723260694711676004990243374787341952032289348195018452237051040510198910644945920887671092467192386784040906846580838712758544930352618976952948516773119640867724369221177773242327809217163838618136082613740471529768969701389696819126396200425019247054626426164703469538300118153433019536911201198038781892878444113833607632882959329288477104548499069204170990895948911039143711007752294549741589284659644302886196577614554626816039093540165858793072927251369404657690016897931536614184980476361089913081664802016516436163538668473633082314989591535943985889048948531327123201865489571741883111276057429062590300174705469547788150439842564027853476645264469638734060118534020630911720221418043817567708341025070668369234128216017495644479261010556942643306198934527102690747249935454722620043850326541151425532642545185029854781830798883695675511460844057109825358380327577206106799255536287020599599434786506836258524571034252198416262042803513011418029496430877806678955241769697719927647466646679115304934621729102673022388567727077757691771589061766080745129163447295451354012549321969903992769159919540165151166995052638720322459447197968007147324076606538683952384399042759005577060996057614985127869205775736040156405835142108298203891183689757320126061511803765477945217251250360287325405857205827810507485688815075470539497337870527775765533181267859765927316674883148831253733655809739696677548336307868504039960848177247938920570569770229203969431618949219290985317666739919014101667821557291455545621926064586719510623102182358230235614531390186114301175725659109366858629634032671135322879228440790987835398607769348528856295545451471853021074592142875452397111712646857205440111099623624376398174458454086057119519822633526507955760730379290930441506838497405958864586036188940823216343089217223474586752133117472727603753192407083254685490829662060126380384384299824566398955069546056085153355403079400895606000500207364137271307812179938529092333053426163687056676822800514349191980946473293574063514421459042013060508115468872840234804446645372920133276076047478836475501274585147220896001101678015149628268092850454971865317275743667722429798270002739260695452693672203610409378842323319038592836673506495888618742406533163359277976891453466169459051732823724932839832728153918451622690933598158288203436104075915005086242936272166654815720069639465598278494806988110700730449989538902485087343586001710506352322659088307227150060986585420224193050307039788498460410718297780156665915537522589189448464515681434534438147439822075310071425073393027232622335640881436773759507284656363387259504132863462238174194269020782013899644943424887979703560060203529205989551208744053955119007695009762953359265732980428356547271756776726038083049875684999596952472650172507109740524844009327800610854602104883318345924744181196872452951558270791373700999931238809891274367116729135192212429142291378071038585822269541035863529052401665568555846985344934153947128919328406067483407736503482562934006676585964271878914028190032760871120107484992359236931713945110897992577294053536623536435718748916877908070658774115746633393549306633211822141992191242402693453408396867725101596200491292127597837124577812914902690104799387926259334998943004847568869362795488199316401391577022073464013085674310268785798818293282050530650086458620718203508371593053394169595760745963156881042917466489712200814218034501203487875419538474450466357684465863702823676787457128556189432255759723651496069907610312930996304763485084465520211288541866605684166582158677757726980484857327160839380943840008502246774591830676472278384410049085370841354106583136793900154185631062054184390010992325500835304528384641998202310753488877566851073652354692396092751928401621624251880475250968782552961766027748159255308323534538093810200977966437413662774877602848739192439541700405727978839057565875075143840879556108920704733200374151628310111797363411318153040297476521629316990929075159184840285932737358909903635995702776815632619298675813153945257740446186512651075029645201998068733156519688326930474059215619205658503975243364603959678636276824946826292234976857669457518868760413768683669414222101307852062352728704164820663219044076291922418502984686484504535565597791981142424628044318016376614409359793165956530426407391517066669826526850026027572019687073481883940110214475490511970381659598125277627125897681236868095939823666207328775199423361251532672953944406365301501148771002628926214068023873055007275772311317056556365809140861220520454838906582776029876955288078133462390029918612849063374604258027475964946803446921533490613684987381498541485106593773314036773254629779093216481449095438070634764647406972109262053619015538142303970204514092740858303792340937846563550067362206732351540483463057586519092124397172449791819980600975368839435814756431218857986843763025131626926093318509277197324199220694218461699817839448123866299005971578740421717788822539495396474905770046677817378169070766535780705964930825839652820950778721626648122902349850737187547980127987111952197160355498004820907381221572362314170190934488842529241589818303554014755069893236773689719284932295493983784154512930787623155218014249972132792097237197229394967012345043869402463097577872107305491629394311833948296356696141465673382925459142732766073691378345611541819235587307978725386150742521866981565655200234317389482968786280742256794095296426442893000804846693353974635227760367883102986841280553937810464843181529112462651766405786977494396149406637250913492014923924793046237140616113024820453757485892752802816940515358469759658251539509159252450701665144534678322407477261705570547833435128702194523357341328729112595675197636506386049558810225702765955658053775899956355344732742387073284632074322227332689871666063119309123821315481589871293053922317596624025526766282066252318088483639988920133327046304720040667228517118049809105171935442202742318709199429882760507178476499251808516742708304807012261549628439468343746629032893488887750600373060010667535718194018270684131429943768202666292583142682325264378684300323165543922772023597541755142583075145820927387018769627918720005651202846583751418720066402350856965750075795025908540227758739471138242826212236955661487104222114134767964537239941865629346197690665262750310906077164400122620006065091629003140004092708756903169320526383670900208810834558994648822582555585162294693392586888420140251359296993513805136783554501756352195427791695542895605342204424588193330874346425317313984954496637034634833330320925260359337543949428295561326040344797258200186527997815067079770304242397363816689728774703990046398024700658347954021802591102994418994487042882758112071540621478600146737284703173450066602259687880151014896732714386972285431688396402209275259038929743157310223580767541737415750862009150764106773956695893164280069580550545987362081311703927147834748355583046265275835374078245119168295096661791376335439655018947983013383372316304755822050305484012895181954356662100890664858459981739964872585540874481873052938634564993053628532539997063015791953867576231845498703906543993657936021643755622840558819065497409801075062825879375947825883656012883881808337860180095352083156932241114398635069344371805337320740367751167505953180179002596474227498431367174483769510963839242410944756362577098978234806321889570985694601550892890996586477494514607592190648321427457992619776977993999575169765636445582486561753532240663347969789207927933343468637874332749862207781582865445069915387581471840006249831891837653631655066364926861076987021064275539782143368217250508305128856411806832505569560794299184849728043156811225916159742107207021433817262354441197675624647528803801866936061442323518501210429516032277428771395914617519519795306880622547154455191036582505614244045742896398848401521941768980685608311911378308268022268651156408476510977654694364216220719662242652559677272708346997617103368888907768173813194164359041772538845809290013151492793771037938478937609596218614281997715407774503684635910696136873320766929758765547403291533290995239475778252366835318799424314069322294689816675837732720565650641558832427759218433860708941982041197593283150638274996836414696759011306546274262469220975027452375531233979020633426497209288805675778700391954269376227982252870154530524602185673590411800547899486404131465109702567476255400539379892236055489139450979684361403650918474652853527208047382441442879496149233773454986897456117230603842509910470272038411701948699613433023644323618050485851243012667566667078455817217313036188137420129852256514717767938503819802167223101127423101340865521244913756160432981542497299638855574605293569548493625385121580861377048256814011121422881791416811596548208168852968470994049367862444184494012604896534928948786577084700172998456014213995162565482490660564585580438982865083004072861978599266546728377160971833169709141744410651452496814902537779405052486090644428966980081195383995521084324592518934853310472712162562228619011188113577560793478282768729013901642440545404167202449414594714426696238756199277552547073364173627536057540347749471219237982549566132511501540757709192930231422792268050924149134205599977683303100264402189189121884204140074715981100419523578765798026721324321953787206491210991288621848767800858794274569486574370235304125483643773018363444091046459716116888660446087247563536058296428329348403704791412247511215955553601763177793640138300799960327612136464221142277448974582411959958048268411015345140822107663416041857545908686775156774031638312880135873222826543109680782213455470902869468830128000693371781164710760564069487840868551666600466743903924528053569727647242366135872118573517890388328592816717754709630331242901098759270427580124097550497731571137302483435693963029493482120927439451258991166747034303259060652807626146922797101395977375779238897444487701205824841835485220948644178854645822684886332319857516089887289705756126619252354174672124304303273087182908763905457948527229278631796529438677003236251529435128451935146391360760107017541408725453609184757742394183598015060041822794453798112873234248454498177272530110758607025860683189569451606938128998476914064662546122524089776965324001222805024432065253632933544731245481511984046344444042743449495995746837608240306025799708014832741039573903198042204926933599298810194693767480119836905154043803756432128965663029282739156757694601569666853619366726804803166501991870376762593002154411737066501231081885009257820856292550437546995301443596278040322469113753643723707953757662247560684549274995768971577859989032836091129962232108989228755419376239405958814494363610140947695402098035363821087367828613080232200995691732790813728687436204100898239295659145007125581560489836247257964053935565007156653541153893709062486011250229816030967021183656317253016997860305278440888156523720857622772583025861855557039455969171377742503093159828803619556723253000650289597244915008110878823501693001054502640433859380576930037885594503932876759729712727169271968630736572132288248864720997648431950332685081299285826795011478015282379219422257583090997079987845470262552162639650920399625772204141254696908538150646017362935936829111522681980413458218855034290614928465830681039156633741652862972237482651625622560897119170240834060223149596434050232584106662203403914228060287171664193767917805722717649255834177988430439004404750486493687416423925826271035962352068664579227126998081029687890479535938828319240944426986078077695886524721419775831088454873903041575898873357912044780819688483056294033593226717543675316550127680337686939167038406546202680169797852578836608712978828915585880208985681243357220099834732308327453749621395935501113499621106257936843821706589465127906265069693727297471077283326329938052672438838586425487118124442822761521377529733794420596691054251707979855811647709158250084629258834732240750604444700727315574721810049632797024193176925659325334920031988918395704756895660134764647422128734011334174299155667181755514410275329943805399122588444491465581289258435243388773119226996974331982259198263141400563671491875304265075401789356863032926274944853466326927047842200058442014531024465733603914775547224589356504405354684720768100157326752590096241302658518469548976734227836898810566571224587829304007100218955057358972044480552457176111037912082943247654491734512085116499825598241680078150169976346096039663341468099216277405428366012140771798501992133648729792237627517616606522174048474102493506479512055526501545708531158411450204838374977909292459574883792402738348710169204400576043768006979510770336915133161438057385745688448892767170983721730899112553102260445518435877086903353271858477242261833829934808679166114779865773538914644654404240042383638762763964023156665860720058566384141916550878765461864073076175172799393956070234397063839432522739119895339208223452825588831115098021611380550941020385949828575650657635144364074860256170064314983957520329242281400440392088606433967690366079113393997461860005988012708113504522552884082140624322317506745978771785647719389894298212561968610650164093704423893671801787243870894728804644845709059087103120475508355611577339298700471109067122509533771987348553087156015487386802229812836967292697976192493570891933293665285484694228570130296089124057532344262204778269478734987767549135987302124696656789953892041347214050880615470356295719782391345323488374927419461232176051776402194619088837278436838242096749049149907392672056221882524069084979519402876252986582992034520320008186012413810792451522649097239942037448046080642061449587359045766918038797436980420612222919535467971686960285688242460217878871799010458583063865555565740718978160224129432383178488655233435661867092277197588117908914355337011589375064120305033042967022962351652051529699900030687352146288324244851556007194140925607293785646856985462684971266625000619664157766914492505546186568156615707210658028365288025717929189610250747751704939695360868144086793405261416369881608332384966334453393331443559377804630302903572356865695771318414474840518730822254191843753323847976552535228793806479594466037571911820393955324176664315372271226238860924734035097588666034751517431642153493035634260183882859016475931453281333271589623666922359501169045232295384735941800757297697802695570752347498836965527581702542070756033656479144198085701005001193964851904687227721070528840699132584559940538874314822840907682958893404145308893395573070257613595357697524784022929034846791088426984496375410006076339474098592501834668441127773069424085173677779987279353942831765614392125766195179128264138938604605224404089056627084439078520836804832297610556322731927141903648846137514310312166838896713018010933556487437040436917310712984847488414850210243789337058864511824241608775389676148352412923784381392329636936191814468551538248798705269349770249882246849956547670113795101196427746808518909558361980134393149974440753355833530034029381599845956567681711399275637654136683355845874519565809256302277750844527026416063722757681237029262441974612955082913512154508007999081492828208383339881449494572525463438876819600487991403911026325414304500667182265382161166697431681560106817923750841968081061674418497415319718016603494155722823032424171567205688823738219934519056591335719608632145288999993638680234535821638719867757080572508534866874482885882377560435058017314768868729994249261221844329355338928433596358873473417903698792680504911909927782611244614266069284928698170729973182194218931669479011745214487344867933442901784536310095647409257574581219598024807142170286497156580242815585183269089221921952851328381023893174381616923418130451141836758741008295343539353877866838140488188803331821271491499776499009979434509517773505169402028312839938701346851883124429971686872573091220726226897434460412142076594773605858928298046674554264566725148475874188450558160208364866193036685914005713627803323299885240661166776792760242573317101201934657473263928860800245854935150277036231013764927999382911196941635931322028893328076482060228084183973198755085846029718995976172576279526582707837428960281980694412729189951969793590050367599218407432683092339186523663798605516035453118130396347779040777499941498255421931143687169204353950984267232427952336006357666381494352995013606537667557722018766908151781042439462013269034184311850433611115002430958775393856437456056852158480319664086845584842226358473550530942753040748798700357398134341864226947181531077361656440693826238953480770453250102224686487058443413548543432612767121165928248093535663347483187013063148434887860000986350616614362699463253114036238030675300401785501682336012169424757708205826620745247703150905501262134637925060986812913235418233546884904946952453535488826748966107184854581019564897746594209837051141817379996588731414862662662963757180494754846675654940784980007974495763630686933167802835329667791880267308058142665020357114688032382189926499264979573479827207057330382565106770037076421863807814535908311868154187663274208921734801521576196670391028985118873472767534749134276091582888753456273269428245672603594596276854124077255863066589978406170963493487114298318181365589021196247434003236475090574772820728254346093363343230941313217234877024349046189257375251805831005486549938516568729035695990471158831713359128307361781390367784733339443056523795856504318812348338528404063602258372832627303256194072790691528504145388809198940421530050768851564097510121204426597766697704171021936708389739388575467829514002470702446619054610607999284045623877738978280034060691969482707550874092486227595614444424918573353186781562289386671776149368243211870893923281865873792753175036213214847832108763244409177480020813846893657279504976508881498777056127489765715568304949434431669601345575599233821776002974485724293879083051873318644564202570485424972598338949292423185501624594666188118174944212607680775191087507926682159299073424453982201330263597726451295402336074425193626194981306272129596467558831543305659166962358226448095691233161331306803667178992210081279938904543367585572750110615948796543288117107281924968490833089326227088078595383048223500132175928321380031450226006414940491872392320809504334234985203683215256305594203769373384878371701600782006117364624042861193798216590062414167445917134845550897425786597248843173167887339102525904771299364852091183133215082421655197206660634042012606780024530438140382011435163395959662749748157803705780709828192971453615084241056099300831463632552448998720918371938707549024330843302667701260752536887670957929519529438386156623571898028894500306690574592976241496303078136062258396216321847254743952947177351967898435947765846400204186121612620343251924673890869207787253347711055710875373080309518488239178277608483879244675534691668631913762664585975155569711376959618599971292809853863927570989302288174843987846536063415956354903565702006567211975461350908517554771823889676456117101269795130056775433317761531272054170796515237421759688168488773436749546652637731968278827312424599405698901651971268989129085429750522443862078118324380565061546442823974287930282860636999926861924541342867606693087919111069983333597859462530981025622720044748308788816236466500770702805586249235926356574644427654075078574880565455257108084659133451021352945188550739860937900998680023356757449923832533163921173285134704296409926538510315628647417847159528763159063902549534410567971821765784623909719951447479505745244095622153134182360455182231124953282920677313506891193001210112627741464542082165557142576578122205251879791693134521117422964302160517255121559588559598435466043404035223269533192429097197606368416354340702205829695209651462438178448531084862124392062099581863861181032898662317761424190571640896264828888817360733623921283701080172324273968321101364701315518150817844582337213362344008376914571736872806752021053359477448794270729246129698711704142283051699767064260495841683363882438635069680371074523923562125789668291529609902809382793194627377646514835311201091244951156220009594924391119690293936211239022244797664803355607191219142415370744556621572766026377115889834064905806087032054585596606457376782332550192549344581744219259525968617953607673132680633090577311161876964351281224043660503679801119639820498104463286687976810520910853323633189321825792392063588508083687949545842298440319814240536501403810561407252211476882989383300709771751283538451188329584157528087985501252428451235761065581970105027123945943613658887573913583547728429092250626493653110299956657502556461500252189371845976082951127713446089300334377875403504492918329099283541795323287186976984182740404827888527493989717634441402006085623121259414174774151389316448637605495926329979029148123381229733920370908238314225990297250677646874609059043027992041444620862026484946958456343746697309410794649517118724688083306709091504116923015417483479728640772108472313270159915131761760499497885697384759250610236141629969276164219243303644518991885438606412915589205460837709116150324904041790713728008667681967418525650899439745631693419961783463790016012392467314026761907354913203336154022945840224232314866085629391496856660187042464887811070794669565056971243085390112519808259297840611526032025150309132506010976059357371382076764982747000424286423996113405251012461985456543100451492237757754296153944221612056491465530785209867925884638360241518122071442039316357612959112886560033478713480747274284834049687307485592176643735683252411358202020228946314766148500489448305439441135112094728041131109405871484535506611672155117045594888658386072181083249123518006389739404370408153062117474341581536141842550372840431372095045454318432312416830403327673800838367816216001929809722196827898845668771970261742346966323387506227491912283379593707030007758356234524440734400143771183140767310712103529019206119155025628975182667691877970114057724058338704167700096497983977458309540098408393266587631274474126875374001645982867775617099711135232351854478447927846535776555692653604921053031660566418198111529250613284666584210505185241695954333684775452168717313963774412609991321464907261969041146637502256454629582715537611831589614461600837517979489223624125770045067070410718009628554222262128353219034282905467412474236596153884754128634124249205030456495429622027461895586607164047560107636255282267365023068151913465719689253377483343460813122415941645892214393711617838013853874725271080674086517304581198297425784285580434611114077815077591945495587436707505605173611135551363473265819898218945509153762211620781914251096931737825492626549990070126340065323708871984645945959620610292951706360985085046003094919904908185827748994177502313345279188191622366673404597412393454636139355563072033741975903065645804697050216290258037000772184837968763390767387201866215119410369227976931208741666426876431058936327418764335368574882084786414169688966848000018490228310099098506180308599517521511990370049523594185182758624777620499947677394918766032034099703568085366273967714437589606116179864175756506872417384596275337412734471622372976727203367597447512497440866843416984994163269191570670735397795096145689656408481668242133870245803001077284541735389332951034978066236083472927406493674171349820036916703274075274720287246400194205142358263411370331273887667469943070152862043758424290362765619339157254510837263035619863080201736160438036289904686979042468441249002694584615621986572709104194464235028342301099578110379001304191168654116971982357516419659695359059336735794044088398797975312678013459055510574570999452655947611598890923534072793849475170004060658993670054253852075928784449376505591071562150997408762781253962470550807980189421505314606584966931974783741120568934940532972805848740767060048975988931206992137000116865684774923502730838131496798138936751648066336094304730168166886231604250580865340779088715737261750501240545764578997999027468636728719735969778166492283825651035991485664598698021876925411808989774583608975980070234258485025166780822850225372123173877930310687525656897534473404233499285059390198654645463849473257977472933377226498939165871625728755690193790940790086834032785221207168648357347063261735623332901597025731513362002764300726513114184774101155668805912588450249229925561009348333408016340681308997646667711135748478157616185414747074949176914481255567108953563133618849002600892585156872310922893985054986037216937748171992242396638136030196766128521036906055288009277869277322154765637968919550502318715961033509717566854280685669140649214129563634555868640205401226690493175127659317515317426193456502619086055752692060091592520686701359135155725820273246279760689325313691660929921126716590073263093095826277982247719705671007949989056611681496876433699286525566197560366731414846990393152347343340044644508786985401084448273730527946174525348980422420936555832378885476181214143574195720658748673842280492139691266733436946994611534413130843315656671248212982043483643688775993921954076683228533805627576227076235029728409530454939285650255295666520515876571606883912175817758877029088161467069476988535443540395117532454639025861462979488129997793377336963275236535371658481147250621733428582683148138726279613138240191726669843333166001671139474051676749811960807359206530673120176134133818465838746068933845960746529572679024579269396037399725579661698359363830815662924290337342676711452647281342784108817003523415519033543736354565815385199807129969850196763307868752143389527855116922023252637735693396260051168747374230327381440675329489578236107246306430719498921622716757814616111626603923605758860600501576137947507380553257043998982402245758316800253267731913472371088082307262102463569931212585454253969836859752624330962159721189159885583619011168061475347800882329895352106935603831147989434025595999162887687668058818475041387177923548499176398098239266750445082883202008269099068590238229123504843348089067954841146974924317266082493867948047883213320226463585055106061979108839284881800806419182359450156808541984710874741674670970333284022606033109742523955661582953075791924222164243307294493588421674396344091372842738599212166872808087944472152379959072317985823067918155349532076191496791439616791156613227178784941069021401323165297177830901360671564898157635364812925417969115110181882064385278571544841569505539189459807675039166516658324414687117814205204879660945736608277921778960236945536967212800898206572879563360934213845061651322300510985654733549336666800036547899413642410692018174491398110061576848143971156919154148053075413716141242330090269221984396605785881036162260504686939608646844910955611545125950378926293300740669156527477552450545290428004017437206430165711840595224857066688788561203424906842112168217449530464608074115471332466926580075065872316829041102475487061631079898556354137510842352879433597249630145647017312030772073488039252823328876974897635274760311891832855764766295221230926803174983049635691117627308998627499073272852198018747739293049724090875873885742934135919011254830944120307796737669180554433922648630520407513834910729665505763700692741855364476801135627750090912587982737144197052351041738048148259635500687548094797579262334891484240315767482106671935921345679684070800210492128008600381109445730785505706824748957015311441784866710933704238118579126767929645351247107368279940161941257124020640978035104295852090316548318190163923055294174827541243362023840800987014052806785033148963542390850173751407444209481405030079389029454906056997111948140403505582952218398181348484890476507448108631229239707737868716342567500522260419630602323995709098002831634792467967966146839049043215858628862345718165478373053918443258143494547858607291567310582563551813820078354453569728684623305451637262538832104626847829181984193083783673897063740664940359439337417340490573587868673738107847864982732251025855469200778272917103094286550266614026346164073020132099376540013189681557662024544489095198340748920451848787694874685732369524552450500411608799028388769242197240776876079776232057763378577270026777120994537840878438184895036734920129428264018835784082522864284048709106699785773266996381028420690898291651058654145961041119895701766164067983731667883094042698387483186824358491852123980617285192152956231557484332836225705777200683514973283855296740007763542327548389615168188775960211673753534036784796007429247330861731632731527367529585311791927688266383444191879966183036220471144919949570836415575631357445399037512026315229859372433208575608638352515278579736690391865238037996713778659007078515144786512830574448115886945984656688695014416298328913202892509294322740494904390434395438975114484467031285727923100568439866516380338551751081274065471246334464707245088677064193390128588402980946183839015630538083662866272040561639556279795562446802941483362786433199990977400468392375700841034153015393928307355123962855700084219474260583346774525262018651502880436066564850972523299110882275792747502414646415485312589067883405408412157433719481011331365497860677424558612860392202409970240197185311389294748555462228686340873379277552218467463295276948921665929351877632284094530500420367687409885808183298697332902925037127047403637009085635294015702644086352533210510489137203135267258958629937581732451355289915390819897231209289826417928992135092719246451544643391140725965597095713085356007095477344602216134143361839073913322585448405031387948730091789658545380110554744237541549367252915806537920189346836863797427893465232622954258161506144177191404592191705163620084409572657904280313419918595399150400454377987152649967146218574018206346992667229977761040826529846993915224993862258403009876016023422174359187259820890278609909480990259482009410740917363818951623042674598240273768569125774604588243731286974699328767232797939425814242723128577863008911786224473796202926205837088357545530382255397766933407796512381620273816543879540933564910210609202220619907249458629211401643661344537336498278565622446403633010416988059750343181971500842965988063225910560534855574500811024996616615343124361688091621121748886265829043778033254306072636924845771201923005869429519324026579250747706537692137714533527654684275158983694594036570586697338305513802894301634101417243029065802385993457512477770897659356742441105716985314934978357415694401888025174616431653161790419835273262063391845924425169858439414345757731127474601262941295949807303490734734283072958912059506729802574536755590908531758296316506693069444787634104096449352918733699156634676197645144296705976774138107109029730347525174072228614284777567147429911543663002009069122966410062464751121853658693260446162035249137295182611282253259541034555021672418999749575790974178860252932870571085959099854323385032288884255694989418652036420401623806000337492785870861535378973955281247447530303757275609650911247828001204377656267330870244468431038191482793219391939830837193533092806460880421362131027321246565390636463908450674349673306208287536769876804651284461110434350796188645507313117968859272132355194432841082416247435256992921395103535049630261347881886339458499921271155544840859693764164390559146960279108234155750824057234268170014346408882544518979283836333886461858668725641669131907005066257380092745656562777724989247155835275930599113726862387840792730131467510476853586875537908700863083347521623450368014001485044016226312800933954615495421328022942614457439719401066477267322128637607871766674297681194703437104469588763790067940650450730557934194411124813328512146871078208495689951799289543346967542412309773538523084016312389855825037582488186631174638731067058811385494527586291459169116919649164542793808950486693372766401918014904726890744496982199952491721639391657219169863118928728558376581579362188539712270486279702465528119146027331810754753116213758397944278658220206929690711991333069828230080858365017498353945427637402502783427541794157241643198109148994617756119297116259706438325286091543441621513618561356176227102867870314447968810964615882788210763428928566808324839495188466454980187341452864243210145067100731252779018626184774484433798812932761830918585858809015589921716786974586409389593592739424073107090985199222805151703350628787874173100609775863174943148504963430120600224316263983543928073230510869783886603507687352012665044495337785853439160817259323483638171149943964922562385115117500804382608892380990073088417031645187911473289766372901778906390528867709184598320523276410897044430169906054393093863559921185126740221435061542380340825671471718737468921556295874182700439078225480563990455703327826425959743752722810622066912836629992148998780155824612991815768106761735354562719979358421460691488997242050246049383618308546210453870081417203921446936559125835121441117398144144639418895851534804492435075570598975638702767434785327413269096392152879160566584392746038907226622149442478460121115129894154223836801671050267956201904879657448136801090688045614355580550306752995333671952990154327415025890087257832422061242172600614289241666696772020300273630382015720228935489483191336198667397321857093393134475513256970493869395550404117502592117093559175563690478421782653344148532470572779768763603378195332401406176601629330348879345669890505685360760899061581013746515640353724856537789400169116875165822898270719712229038111940374352354245776446892190914924359289840111652681148661318020166398782982427607156174223081282371136996049974596766966925462344012377953194446722356694112516230188696998606001994096689538104360903586324056290131437087331471686952628857204687668328482651227961400989389256624126698785402582066894798102448162951074373840196245814479012445257853384487020495626165132156941976447689255774669388702454282052209742839648867752704119062609856001497695576644917388539492828131332059012364315384303270258297444462307816802288344836271748370572569371779398005974213575481616438624810707999107172549057965032321944205689943588964355855654122136470699298882252073476628087104943870634074796764980777607209486475869797000295605920889491252714294428931663811390716347556425416043678804119021802912460051115422041039641688883196814656936783475595189763506617763826247062180762654483135812748760339334121345930361795929924622017338023929908456821227980209623693829918740241808085978549971019591868254279542429211271447694961138446831108673015902029016436197628642608509187064145851539990144121373726469591666232202054633193827375804454460119328913996794045140340107077058562507403082535362861591752374466735330435765637422896867172859891550271219266994912943460421258930963401327422341078929235884990258935745992670172115038392070538383553513734503340712943902329096329691665463756129183902278881853595246518001208358068705559107629009790673820356927740540105792296522568511826561246947281403648709039147974028776976774952180336910975371343661130315151695779129571758941992923137277199064333108124968581167193177864165214389930479667486294941427822735376454577860894235351917199778683702438249135237657248809636887796615794906425428975131834017468733608929604079663702894066455867752055656076016988710024985158298177333819466460855342978967481739842205023781557452433251257510228515630460528488304199491798547765140914111909166886782636955014801675734568044271009836270222418111257740761331721937753559832876365896874906397731808146463809371284145918577540128665681326944738586795846649342141914031824550811755838749834671888079335325824006281004739826418426146041932982965950418082357090215255437077775979198457234079345676438082744567504734716087698661313484589956252250935894235291834335093404311017347870919257205002581935755697916216305750091375168113773173839694423793665663804051913915354712939722392117101859915024865334449850856043992908022485424554522773252321678026344983821210855066216628359492324815941552030485839410722335296955485622173307502656469069302604133809562999615165027507335386302351887780168261012608841617349449986835860660792924651925364717452578761661995333737377311311789942695694140965754470022334201371361210976681213699474348843542937053417833551149635314741095801616904104826214123953991988063297562219562096591056034635402687821928043823152045343217049935189338288644363749720293532588615785048371447887905527181171916983490714049753351973928045637980911705591259417778045776068986160714419896214144936905201598672948199230296687330888175432428924748163382556395977917427582521423122916468873066822001461142502148728215542033560028750086854132028058871477135644506639766888002597216659583273634858750726615881846296396764931658122968681652412853129989247749675932972543110307812009587082065230038002483090630309339635563806546060486625752450523948916298507591807797666980145907160625534640130430900675360650733343491000494514253431871481085465390431132919888816853885516189404217385950732561173238989732735506414656797018820878530194623752990320533170888928474999620193453451820734215758337517699865590448836583083325353145872142389468391683823695802060454266558239516811017701447410733063187442148718550336921912279049994713527902166660204680105645312740119266995407729927154287357364345174696011894027046994006981695780587329325188571051406857486713877661800822806966337125148764045906121455134700621565828951779491233322158423220216694855575440007472243869012069411174875860702181784064867366086752991221830407346448096367866816486814845812852749670533689964161988059243572581114815815466701882460536741019491881393798786173183570544537728029565797154711747133778338010491225047815763994173424029864048494097920030896331697842593928252857056111549471143705784208752155316729183320318011486146094172340204803883892521979496053054974174074795144078452828221963555079559516409475900607876063090027801302041387408704159396921312090715432544050901766355638234450068821430926005908586781329427127909691480614475536050378387706344756236349455781248303854226948875598655402054073883737387318297854547628252466555264033132302812469564480824681339106068351682124939634549917134518915154160193348182021925456912435348395215553208007189839175162925172100838350807582493338868764685872435896530960585864609337355935783789069765298301923445434661449223696907406190568938985420653375517580331842967363017480954539142802806949365930598187138771682568671161003142386601617103494666810683016051714925383620930635830733994604397561068395945657944893189344260133752008193766324553812790054723434128140480767161385719440851883915385488070031966998237809770946020798264596739181649521495251029945865626079686765373098320442904594890495155013429424277223062554258910182339595469481285207958951777621107336934935198804565230902570474748423772062844483885404847976627090981966836961246409176358621558084055139519784947422087901405142837365491824172195517540005734101550402130269431966372144947437759913957067801910892990039344355564218645954649516038624547478902014090331125801197820513750915445231871228822838570319762959818485386569293466463986786773104562019050886816879824308437906568594423357892017818112974235357064265071171341481033674897801544257917884464177946916331510780779227931683772524031688413250721102458279918393524530921299064523898564272283470064291061327058127912633012673284753172960609891017243839143259858720555645849180180161921412889156548853098364862351610802593789978403581647614483820082902952176245829465897109667590269856566081465633066333654186065536348314159698823527461531382636556647156943242372032872182185462931606467020798556781331215541598065604550011929457041252970027328209091715066098522792831050390571499964198031604727086201332272531310576875432665312206603561237888301670375430242098587494500909840790682489416355777373055772605731830553174061341403462299890896522598369027386866614741593326654446873962957533164045457841275634907776082086772980366859679154148972391868083980947100137100882210592466301863978239025367088922193511521571520178751757812155970235103390824872856396940625608407304319900793892759974958977568534098854526714232188238630804320498890233866736392298653400489468708719683485491091612539866028393255384074662741853559528551181503806051701480089546604648017146225720490742983860779933568486117987582608589423909919713850408515516211735506316280793416917942555435892545754343146472814848327458702135511976522423347314050257286145501048702289749745328929310523296681186474056504096312848155233175367803645645474974443696288351629657022494584305130181377407030718194188884604129055599495132269899055842156698086014696758155867397798947741611310962893484071323793151059135866529386338197997827920457497777583801749069946979448013561326832059648663165518638877449738681691419112709559303559550424055476848177492833715190622137791649197348865240970954594401266908562608665197311429444562606243841522716882783767476955125778104060425724917269766301925942512255952298851492385715922782363080412805081802430695009438197536082085962505687651544109570861563788648609299652569156045747782352982877685491051895655497451420146565904694725900831348105256512837020690027243500112616915833475659455406820938566625689977413437850394838258403850380477817295096628799381162716154805026632690179017880049445858551855203484806385667443617261592571974526340498345391037881658107720246216998748989570241204312290534270863106177490657866211010288831354455946351236736768782087937364219764289224236941027549560224564292983472509763592696449554057428101708027364122321127753344995596794892417125888010894925877542852001177783980777251791864080847906156141018294730119882555857976481408090150216463964263410172989615320842479576719252120940304426526647637616653601983868095690717130734449636435449758390754349321463449488149437703787682113067182336723429141605209005752636304441934907666501421220012557483435824335984086578972913584359810657222237542086301203442969241155430020818192331475056174470984856390821720778697981001991738196951128630408014305831601434508296654062727377012484088063041508954474338618195863348589475137751247669823529906224482839509812573188503214448706837968412573626117749501927737844960289293166799743136616560757508297791989100954307440055165002705348088217426116605819061509642168605810662438615928753987984018119743376608096262698108987876943228893526078745737570034092829083329282559425351996959456432181269973735396546827484587918796010618337269419729469985286265560129734874877318273785321001790912489039404313336770526670611395632878152046433891797228202334713830719361343635892378318558239969916376694291588548189388045154110384395123679921133671231826707857929081927078035054682554612192901637751015369903909717204011576724604706874066506251046188365181113962125875127701442873281885282711640457686120799653961458869710552109633021382493494672689563090268344838507525706717068613162741974717829452351515638348460973385217344264355211042320624976446176345767672961548787118549118699058571655797926053786370689843664893264502278540601285271216508506107122643422323160795141829338665969754003810455810637446277025747294211696004416104486899858221463596173076940220713196413701758461585223409866531161174999715850964202188162248974661369097946763184545904834632967579282064261418509278397416616585978003112924732825587419505266436302313995369944387199053004585638369776634791441923572086106388824833042593203383628237795669783259435852697813076087276264654961121701470698525691530753748839246988186150562329475188023308931459918832362550761775402938040277958696256239065639280927702649315218778734627799421491032002134365354979205021303392408081481204588990060092365462491396431507981152391989373440430346453102671159557308013389234202553782329957299502597293013905733351299070432180763729532832564348500058065355397439538477953647585381091817674236247068887664919745430117567406888456260987235549623269144526325341995995976791679615416378563257175090095105911222529055466889186749418329203917386910254858806082423078421226828045375770538602511203679457079461435683004360555552873290617477531843421948802561536423460888264071121696130766926183239883595023238566387908561834091182433764991796795709361730583914535851729497307864720423973283275821861012432500928995478714096621056321849487147945656308845413786542359484517977421721545178365182757174371466537666725079001959023603253061660610610704350303491764910298831880849423525641811461559761945262585821384674059324434263086595135512856250029914755827814035954462759297152536585345583925132243724699833303686240560761680643709326519056690961128760331243294396379593954465984714026074738334777163552497600916816875312071937754328032620050087920368759508235705974526431059407821315689317903273808966334804112470034818764491243951465276316094215197313190097640419818564240822583876411328699428004992394109396223370623509073754523907914461537836573075327956505742359160592731361921067571088109324790960014527363667677402534150260075623062738157922636724493936077810323849630400783520278620097421162077170120469452379059689495577289681716234825451473862055307258864209313488606672008547033083535976989823407218007293199149178017930757450186053528013807986575873737140417143619892164162231218811092475560262089741488251043248986942952481104563509482495821868795009525869396160819545162880239634862409629022739963109103153612952847804029513188677637905083458472922807736930245655022598918086454794615946315604184735004757499416225305926320908429198313910862634212024409470178916062592775256314254461442066904231457699009170996273442345756057929049887246604443178733266192803869302384574092335807045548700141107065676904677979382037843812172616214487656066924617452359220787098634670050912430783352402965432107863718548782730586963164156402696901766477451007383545270426201969623312533525138093175773522821357047191068443116118514903269947798242698574195804096311628284829143865073760034218998441071044114261053638943637484168013171187962716866266008369990267391076077510599013863644559972836459054402768830779771972418302952367249897467768374733490335637117380363489257647611690275967484530063345914101900650212072148717147284700446346936014831438367087797714309418897074585778091216857894837110722300847615652027247511009263046696892479299853487153069566971058607950873449902361232787760173668973063918852014334984965331791588963362992378895790174927308240693246166711588099507212271612934460124229501832343508143969293626765651659300591234014962452977488839738255417386308373418616531778049889233671128489763286590857206120029852218006899773967158114527895735125328240561439978573765784758281135381640281567568209273596221983925396783628973468142577771124917980975924077204795603896972590556150876721278529482774979572174950953693214924361039077139388021187425484011178349474971257723530112319200350448848919054131889745657590928952542945444097116296563715180000734328853236786927233261722867544415772074232008450784601224905155199189809825117493913085242128959830308713315009369031604716968223473563040653482443760629069846402339724135433698566474187466579395471260596088061994033346147028417805636787941073763294992074380948503689924694136815871536028412207234287665284733833573953897758640160599303532427963422733764537320219132796751557547491147963895547566348069277836545083160966616448310369495864664903733308016222175118170327210874323109441211501203072298097209212808827562308416475411042144923285444672520420576523345672361291320390430423209989874248668774380214334827287800018596109382264420436008461812713851599234256591098730233755575623424172868485820661872813499468631952201055385978972284557554101095276664723830229879778216377326161092375522425529457238447877987320551717616229550322644718869291552806329744932865175065978341034324406759060514618713663849405494923627496051081872599541025357874089380424419509598451220061020600129415971062979129297354393508156841399979804187762209281975248042237565739409366774785274039667291490557754618255581928739377314359616570834332430091726078366660293518688729572758779835682810712969279204267659123062930988873670671969200640642332992303791666335795360151239714727800447833656983501731031134722584937428244251325949312778961734985316958673889853279617238799191492500376224091547917869839420835355108817055489869547097315549103930141584004710324810475772551658942374800405646234091052773114267068967594490199512231171946527798884835036140924859340692105790061202239628748342671146873739639709866291223862737167713502942413645972469335285360947799240051785926785699312285918445904453547323771998259635525731880511466682527857376346931518678978850579881224611734116886024048218479354607635634566207150717729279024685689635035821552953170387734730427271078528002137222491377727684095751329327430799438907801681228718972364452172015808220168658502507551870595010193890831037411066571025486420550023761213263861080418267296847113236174521076397748671603222844069183098195066525437312807267722957605436967148224444163558711311019876773840105018040414389516446760780662410905577993901624278990137880741904191878428393226090894485579729089052870317674055624254380548851715929075139950360413300563789190001626357848385116832819609707601722998951399394673992819738357458756413665456022047170723679668542091508453095316492444561586427512864992217538079409197711530122199346384711377508130413797316987816834684893503863156385033225092199317673251050526348813052797328647313408293880885439850865024287665985358099345314449152390448771001715023882153126777355581435419979214404248285563017483001277152082109284849669133512073288567237954159679559881748734847795333358307085130123874146869106242508616811559990651815566262842590152220609807414166529632273348959543940784377411708620728071469765288200022409024089846985336698735008237729066711459927487671867061687270349497935755312811222883416234982135057061608042040377285700887501271091072526983205546082241684905633777021724497198908615865056183526628860374629681253719222565401795106706506883617027333009648511917144357877198007008908999102338539994342755147913111849683421498866411314433367809781070603498477849276653867093936900313265918828413027176850756967312625465670171256336189193775243837575700128853447129727759190412378639331621287013385350801373838257274233769591532363022785034537547557933123225795103376218574364161217159498913851478998316773373321970821298774756349076142074741025019795807600486931279493130368766855208209747462871930006706922673895561559149524468676100118001509215423607614696050093158013145138372403162693979625470610140586817373483957280115830873575534756076440199722687694973310211079603719711826464636099381779348833033227672539995852072577206688429276126885707697348695558342061199524455731601716634227049550927330578286977633359089750540138964145676300469466356775745383497626381767714479297608770373186605200103916852933668039484928167681259113286701527549931086027692165002577904236030769611972256907973212453351240126045302816536879262119702857247189247814471743149341938897264112467167351626234685800964198475141493017791528540774627856592174608225180760028807217123369628520431093115632641180841270846987642795043483282941016616427668471074649773034782306281562789916789957400886326264244557636294005228540597255332166567459171523757981854713640342083773696787277860636659188105604978508621568177285915442509261341045123247298748736850415125177808358870417035906027774830829227045527016788343630360634650515501097830482540256829509574061330674288839171779623722714983327612241540815400083840444052887672713166594393102893527320565829898861051795372735799154017886603646562169829101290293651155821188975829015553006588520547305837337788702621370586561862113291692781823864162626208302381779646674397042486443737521153557329990103787936207817627528279596162257656037512143740088215868026317610968577989815869679155327829767330207266951297658386092427045872877946397753401719157597643825883688089983576700240425734566145322066308434798331337333035683898960309331832837979613249685755197065459483557089074080135948335442823568831287626934368124771387369347787516928822316473616347494269602260015175556162894465760542394674376857996840668168840288617640252028954611163507882216980847512776567854208460282400321408929171329503122953936540881178190011481941035817464275299287559444703151301501759081662650981351610948561328097998474427904587813892908965271825433018382340458193993508643524506248999078285424683598659498196236496716993264844147972982738275720118406428837118584009060195649470060196983678693090150222240028385121454669663624035503230379084600375143625744035742693193268226588895757371778676218953231254920749387431521259017045133665927470245059103015168490616856981507690536878917247230609678340351750166600622991523508656678947831044705798805863114396799698660613573423701673639602067845356590939270667523499145317438487690368200187388925591236216308477110169735546821712693558717188834977149058694257802971916231275266430139368548640810154081406305315569613977407381524143014916922947997870440249936076678192762436905563940347193501836995298518072492633097001002376014595978200213013333180417697601535302171664923907160107576050909071761833467743067739922577650239388409058452466393507072487015172286446453030515194322798915832724817293897281309174379505241256246231641280122931848239155883504496561589791105081843146161362233711467226512012131310416664288606824170295851961974807578236401337577075923071215495817872690750347478389740748832407639678660039269346518063319530449359656028936096976282421084144275600820893812065934970721312658474733884796494277895444983831496882683203613130980874710410151889854889693183456265008581926590134010552412370205498001794086872747497913394672911741715590206194189451601595322446943774785769182880145277532972875879598210813769771257274672152896122116749524424498350645750710935964745549262322576936645075257985198362024592653158022729991255662211391887390826566957083461602004601549164476481976793738108896312048086942811133651634280178580754247023893482874740985590730374412727978777674756187651769263347868014317764790689425405591805095156888348876418581489376797279592912795694291161665449385064350653135326395727382638393197672725284654192250227836622393524584861122922560489401737587311905565343949390374397323069893956033377386047072535951150889757540071405598579044668066133436491251275906358105369446683973123825233800859014643843586634866888237940142087849501952389606882006349669263615332498323656470547633443451335601325440808960268311012126293133864145163267082196459133910917670620884443220939351282397883050546473649561207420023008512179153261348978547458756428080324577740598937298705364755164992065199959508883844608908164132763223108903577236902524175173058609780085503403695871333205582189732586095159431512314977954806701130483198361880719792571369124205959345108490139928326058284679399005844385913448167219516436968772274998128851369217277544719523225518135625488225673070990286055947117213879464876790946632685813280452437995965069717528624613880623121749312055835853310207835104680921701064291143523508087635093674686645128650578016235323956909849340691236910180549701268130973827772515423547346553416596080249711647218743617780574203831456465767719591178337419782249736706518607563573015896744028975652415165110136950098246835088064506978055729321228006249270174222081832844903781654617609628816072599293106254650962846355291492979269518186535562701212330404812474067788813265976803839387722099930286043027626539436142710556723134002545901999170784730185158689650844109663795657409607322012932528278232914337944969915627882322516635442018721007829703299272518187826442817866186206869088818926842330860865999281195643431029439565618177293999157336608194792749214166953789465396694717820982663329829206608221138827301148276417675009853977574173878652433689110744311470381030126119468973421271042707187747408027584984291738312705517282607503957282558921668113648106180236968524836142137244189642292581621439201580051020135799527605585207772260300907241227549326789355131916979928373572070478865340790795424717364621759882650539453276868614438414439448433421420432595803088117775392940497555820791870334061055367758765705862119401554412572021970387365517923588350666196771677073541040389593492922422073207073946148187598511424440833763102873142394052597810312601231468301195940606191194004907441696152431983612982548695610113727227760247372372103529570134692912334732771793237230345887341551831445741028864538139033431180010476447093968561647163860616647672573521604921992694828859900880611099894333126443027540101019193017940274495313514045872437854133020220765375308850907312095858411145696449466377816185011798839795617032759895355880374668259836292505487243255664334634031350659900556557022677790174790316045659387078755913904467607076260698511933784884527093320914399356074565015067674625659853928518247971802890376481880371020342798305777841886305042065152063692581154632200340899024456226564060170517311511491480212573952439357355405321444262315714715196724416482816365807412551453095464162615377365902224390699843386648007486118315803478436297414649819335762982036256324862944351709116886520919256051718772892666607637236873778184120831137244925638293519564908759542414630375230056252136970629134336228517305521024698958315145829617345143702366746154060711456299935046751250282342913911135856229338366277057714243464210483873184581607787057757076612244300201217869798962243684596976624628145532834401388744814273423077016114060719123477049307880045793767595080954983353937244220466748234838037636161088758535608278723252924743273257100859967384022308112513842375429999262819369449237635833663754044642727246857751190311350734367010437858024447074072499218162158216307915832525845376368316682154281469302631536608999396739965106808245813664197426108269960966534904884510882818487338372594410435593452823352520168350451866158440827688075837784783880758659575131736367296056670814278673417613952565870944902153996472999106889433867095728172449252406873771054195486275579754055093649664333306278747520691689425496839304527379832822443075851496030778108347259525868156390918612558289353123147278052486284449458728492747226366307091176939099157624063530630734047548597913944380469296513805967703953056090310616259240965175586265506920121961087191959785502897973113982097463531563461313452607768575949739143628997425302896888742626006453767841588052200759974596586372721739064516457497369446465342029141150586729831428841166406966709593132960659815610295408268699735978718365182712341435873430476171262503359636173037739788205767006290829059039735355158824275965353397085880259471087419778766044333369032025181047765302582886924352732167438216539837588225131359705514714592615598414778569232051039339639305020255085545473416778564034790023465598267393834424942790243551468038288539509752469172916924656464717947970510678701240504211154934116561748626259031219891409815776001722478069459694537275777093946247092414691686586753310500225239597523612735196434512073409156033268984815231973185350854248392773484601087122788927106863659565301740617108900598805885216129952551018287929117453171167477097434866820371416958353679012043756580919153978952815101963641450852844085946676652491650358598546460442401230801628203702979439856731682423854139719556120634778913127376014821255178875243221495298730526792567961360401109851259412960988771693825475454877546786421303101712946824116155530434398849785046253088589687713025947709899130824543903201711902843645371924479142793272385725065306165900970951562494686741045763329175136242863584946181802047119445047816020774718771297256336335961624464791862543311938467073073235639280342195711944209926036324282707276915699806325317759542090311956784381282875754892292712896427949279492227381146447479932719011402179502507097742541939059359063764549560209586117306516066903554681294206077376962381569488935766483885772002654899047009483028449810031479320157311399763295902718477381318029645353797629818877324260337494721017014512867592892816091170193829986576514063706287759684326899140158247535563723245054293037153035969952910299590326520990957576602426826499843106747578194383865865801097372979162020701984503837791376184934487680661204159686524616795524318827613866623839196317369937488396700425727512428418839605073914191382822169737643396262525744243264078154135715112681646398639761859960243451587504907762898520344329202658564462999758588593009374238871271572000142137107219367221239124886547723744131653568019341157889803723009091848558785108904725834338345609702639795315128103292738106356723203811969775241219499820176384473952650796894373331716479701600016715978019732682258813281480734526030956716821188404383360396897142082785063938937575456491469237747653521937870778218125485195671807386361922651765472485351807942189361576430342918795623547871278993518888010633446606879896299104009554076744819348725694605903718828582834951208034777252173486562323939988835522077854567053497956550964165862753768025979307073265186995475147945598920141702736590776867037396541070129202669652135242969050222814470481889040888908946238737483965407251413304983206050890597540727471324477658425794433628638101594883159132942349784495049463945412173063320750175971262846807773306119876726317603382243879335590198743939976151757713492285190888265641408543504642534341692564105852021534363467766316726443456377952810984116070297771449533070852608118312533255652042192111269949048465256534524998188419643396910264033165001121852328837809288401811045641394855568401172698631797723146110274085414978173181053694579617030952355547027534003399940313825731600220500508407825402196488121133890266541830314617009593217043942213193952320868940822189322244267657612892817249518150389465111849116073587917810419453727433081904048736807895616925869629941913621346990250584631035360493012982266292850589510973486690322867977024183409365042608485633947731570056124639506923720454233221722812503086981043047104621905410329941725813143329368282044431109897335058073616774769843274483532472363254282293334040199531334895895783423176725278196408530882649957055159571942418638781371194736172592259966211408623685049652840427601314566415784173301456038120018249430588544286883812056571793650571434469014710314085461578712111871901294974292720518827840551165871675394942709593001183461282023496201599323536582016932718930861440691945602406559279385681697982891478339575957978607664852751307278244841773835992169819424193367274720902055023968555271923730434287231728267551870162041348555999542455671681073615524603447822138663479663672706596698129315287900330007490547831134754948150707907006442989068782463915301317845778998482001665438017913422130524710382038291962876110234986550496652730765621647343112090824765275406794714985128755669627633911453224304918275437812987543726994760371012948355485031448591300906979617582813517040721681346953875502100679002982231877556272625005759474868741252610459991008567018639175721165200948058268173109799336269369504767928214724479503407186481338421459930934193062628309323625047174741067110682295407713829601837660860577498841050879122328125520209692349318288967615963603590883108340285273553478691469923935700781216812747465228111884134874652847561338541931146092195769570232852327382454661411844278091552462569939953526429281321913073599222506418669837326779560399919590167581501439670530472954665573532459261856228895759873976520003912331366153986699591632105445416869381984046103378256434670013436666844650004962675348437233501450483372010071504854368311044745280088639154227566611632752996615683446263131351999841457496833341700347043430225327320944533559452828038577202871675332950241994426402536351668302668424571505160276515440865286980808567627991004024937794899926171193674266303757529767026653547873946355700132554896259078837399973939750849995289412749488289187257439376709672495486491143900926663512730462547417612502125999361153616495927535625796143122055645944120646552277393416854588977266831912167313114128824668592980303353594237260235211055187423114191653620151014744188641480346413427149595328836503721915257937521879384652531454342340510908232767323312288326079762737563778268524625043359891754555708324541153118434637445097967813578973614055934791714431339677420133045331814202142968985869598819914080103779218434669053276640210968396130978357185236246625315567354171911530185074226937651143231604167614123409505816791890335577226617858861038757793274097453194409235743794056145962161560995100721817038167083246840172062090427474335010274010870072101015729640998996298104310807612645723647486780367424601834113336089452367884852548795087260042495761175868417307537712831759822787147932994418661282402447864627540163797669149516254424213309207008331740229783963936739855496046763949379778141371974019224357973068024585356312574619361251597943568646641879666916230970560191088607038050951128551627700314530321922754577856142107804591899359293277415160415142123863039686976864976056941997013373677533318961343608241333152544751585783097859798804094310083204447189297797081274665338660076548805987228868735052623498916376751564141881737441948116272396623186426065707158301003188273654469373445928266737846605552270281746295742058973138271057815937149969631444909623425609588462205234891784574193160968341188550624508368152773896846049824335339028046869860929952979224435097219075343195893849917631173744839814435901315264303991384274434069076018108344685713218001203956923607502058544410778577682962155694195517811804345464661352621124238624638103055760232463103067619244271002722400935434825419684890425166687656243537245859738947593651778173860019778604614614259963684576888088908572081695402951384918517075996983973642831192729090238083130108182065843792789348850347788146305723381555348890260120936237689980181378693849722644204515627156656418598567420281628662684371360555978967780119129131858826265186976418175744305036855044064866680265367081993838964429911722606124973175878571789966755955150630237409645680647920011125500552254427538089791049606321557297567799432748303955496367851422111604153869295990959205846909233970862255884010289609869837634780737625996365720123195465178343243046682500064431897311827897338917213589710466742626028676003580046813096752800031667653957769886576093712430346446179301733413742395275998305077915506876249084354258233776639984754610675776120115806428067271172246538270023616529945627322584706587252633679536503979972851928547529642675877398251577739635922976954269609118005338286776187135918824612632848598967113768350360748257192721006477010665498531893774352187428926455643246143058994264305051580118413223764648264412811458450393992024110350668071889730530801142237456241847236330410258294086149973661027100483930033881940277959062739126131419855123672221989853758024045185768332574247530832523988504907373767743538964662033428754626434315020637080067037908100710492942520432303046168319928527975349070391750681416927206687689698534407622764473926149733340560899778027778989538396205501178363291234068645361109571079804848562545143310672786818808139936478472302640687214230757627315053496912757042954768381343857856968867045934596988645674806975726085124624427677872828407854856108621050452409957038148385383033595023115749050865692157418921514597651272722426864279295821844673932601725346067906421116468259251609959382184933461054762767977126981509778050488040710312552355193293031489649352860962251119901159760343187108881159928939214116126217147852370816052751981226097216020634847515119949967319358587688629115642079096402635502449177817671261228253515480588824904157299248455916910014472848757603625173147756120094004610850560662723533160095614915496669740784282904767535108723477651625967180173303499286044868142934631754175399755053761127430191337566945697035366544036889240504416471645021043049404730101981429521790716908132397449686671228667315583948968875258011414484569481866913814680342126608189831794556332284329461673090362019630289389989237284219752009281292589006482034945170486851690595400364167748112750762350800500103246483241133049240101201728448381017530849620638148782078128853813238268940959550724084861073743665519087391105173610937743489531110787980100309951188547105069433740074789949227576585240219474418366759337173659623027911003216302612848676845193982491893743116528290892151668239153741241826718171825216408713524424511217792475104681560867181830931078821643622915074908226142568406893061675973129173695723198664867238804940098758582782578988340626489514124421000024596908940352605270558937832004584548027161013163404219540457902489426299647737826947485009727834467146180382920718876400251978666052876439543809241673379816067752885496022013286277763789884131933218931344353220785854580253790177590700374176747704365606771782863879504274108920126618839837812834404763149613804003505759945032464276467786033065112510192352854258550623875275588673777337616407535255588904553805018585912839159098130423238617184096003995260698426942405149778602941879359165732017141505119898928792014654435210000470055537492803720835081808617343485194456211436853801709127967049292765079159013778492164691411996629077518106086115149905544302338888153269136328829381436642167368208146523691675292451429699114533182358527484675915064386930880262775074986757432928938609425313973759755250413860169146021280759976956920768913401687077889112141727012717368347121648733861602281504064958485706962081184377170860255297747293943040157001197592144885211140034985490923526926263198813479657164499723816563302113179652514751261906988695991186158544601566172424245012723982900186521982318591295733219802182710357108613550220622254397960167238863381949501108272142475950600203568335320188275839227084282402763263442689646430521113420725659025200497994931707655965697326968812116942063898664949970954243224099867405749484999833320432566834846928305218974362436754906730917435490409036453811475546399011673366120379156229371684398883370467133026206095439903015642058245134365413432196854162119228610450850109383574646616677049574267750147936771851021899626493143909608504825554765274600811257316140074147892121670850502879969965963183052626560284366070462037115834339306095400139655406831508634549957046250884471866543423027662540162724428816305598404764722070867540174992978145156897538351331584354333159714340086634702332961677298237653232543515336695424346694055231403795841295417671552563475750496151148972826960827896397555908629447652696944997934956988310273213832003302001392435264746779502922975598475813849814009999205055630754264878826763732004037056094000370903146537649213677697906125147887875412083133571963704210591362122222034664489842468031255691108438052849292984820130818921545186345010095540636419843692892762667311304419827570793733482663643186163337764828173124324029071472157225968739363711666135700830155690752988945960230646077991225705284105130294082281031295377724756971371669093117712887403346397184364749692521478693217814696039729905907187337285753431613390771277429055801652232818695166028248003283168951467772106198711626746591560571879132504292680240281945795349629960547621293564793657690433404942460890989556643450777171707411628126144560262565637464041420509062427181481719110517760410360258432896507311216998685327730521626382967003091587772262006247896426813109171850084408894804716228173287190804908162142776769172509158733946527161426402699491887851515226876293274866146627148650569640786375800470780579443890508018662706649705434926474483466870670460501942892225531477482816962946266796540343077041116342792439463539180657926273842724996792476669234895751259399927263646752570155500882974390573423410282765816283429798288446152386567649369272435083307615905077165585432464416544099822845179230215147091856556949043819631364131894151816795430837488348059182652309625975130672700949728157420405810759813997765947963080687850235367170154322461082973871400851944272166025664723143465754431765513582525680555322148598990296544933113719216749661598310210873582982080545220537771228201390181264276198192543057250706822692067470593231247949861190596633283047615098509615553689811493322680175744703886702827285878602451609611092634691028567516295561433631152556842881703794313049760567858472934597050596714202309769689486917696628335363010885434454932163576215199570736063234896857967303552954579135823251019631727466376814484717901845801280689416331721001907267877588443685603433589359613586163713949370737431800138957075624296983274729207174753672171816099044863643743520804597215919817169123704211403400192551418990118807825306485476715369085240953720740645206572983132516212721724330534005206347011923902744306303756253598800753832360701491428181902772799949915039613279248962104195913173994041491730907199431676260321134458999929899080731975260286686780023638934755656624660219255342504616626454276188740034343320749237978348153047478923090009452262031509592039997092063596815402095433361948773556343088127985944253284012315614398764107745949802636358407338992133751004990782397395736068983854886897210215922241936788421392985797804453273645699624183801659132035243694773233541643594355489289136777842120309533953791454802249805012289653189024225859432423185118856065403231446529315301078695103081203725960487204144887098344568347739603591526328215669430319990720863318458702680401298978823262323081359718392353401884530193065176488571068948297637137478746373690146758977531254641633660612361614269929134107508631772678103121438936113594779341268740863075091541390318982445604912927104236456572755954441794012997443977912303610226092211819593280702165407411872285284458082701068924725037443191239730573422992448178626838831530298720347674433891738406377096377418842687160555770470935371383167115493521029240805754716235058059125523414394889211808630401536368212668385517882967004936545112081737301100141353683177062065443136688380341461532640255776394003161715388693932383586890007297411345165461254284129778127337286281860711772354534839416107828694658824284758756964400181506044209697999475170055747069320083172344067696524791441270537279776053838508549807828925968680498009910632528965089708055063695768197560284224136161533720448489732086209011998928405382302332688809349576012206873022110289080260506766604925266786101449807533454231435209599298341052421248891355976482626757314230657205191374178937047366495198685199064533329374298313330164704459093591825444667658227465383342472290416953895530573257271409544651191259514506585868439061781821791169714179066862484374647479201322949945909034264857201600504503068394825544936387750828450830236250725854665043459232406174518782743127916524883723262216374126464344166055102500234422920740641565688627315567666414543557575828793665179989999818193448366991833051185980369890569766510399399203403121585495388547311467909374035266892431843462668479692746573707797428754764691743040405694305683421423748813830764125785073586488157978192341187037159448018738842569005057898341704982589888428176874997934405036196658742394575293052352469747884620345650416442800321455959049526186420826831529459630678051768654605151229093520919721579123953480087875530838436111092646785148276479448331190799628626586663595490807033553596261967890198674682141253105512668220543030525189745801891665842796476663675217550884756650931076781229783784045400898496269373602727811967552625083811341070837396797282212925109189364015944293342001078058713452259045275724802805836434524549915403130282941968489576918749067882681889725749183463041244836324912082860151803421665527299338862819351759617116793196976169615915704213375672147738644096728752435378083422485900161669998541286125418787368915859534381923455513119665142293032555414005038209039056882004471085644202964839383457474851046349713702764491509078893689791928805662752878984604534578411416680069426242427922843077263412993130885509279354783839387377883497250946359474966411396170030169339586822984260542226589856979756228250684079415326235591021905388187544220868388516523054597587201775417824856762064392533984785874913382408293391749695426963285276699064253145522792475566174904186518746137818315868706095848243363223382469235452128070866741096626204276487583914697735590926987277093454236648397073028888300048345231337919880675525789655336432256224826861558435031580847920880162320554417696025135511275337333662870839443687429393819424690685299832037081093761333356326104198761675832852515129352376190807142605047145100698446651852032879413583316424457705608292750190937759327370182151302343400052735657500518257151038863635935916457668984918581886591537719046160770290117971059862004048328579680636031488512555240780805260671114557945768720198848449984133298251026018034255416536078799439862324935829915942285455858750122067513164897704052084941380870215350356120690450920901564611640660267806195123754709012686875560685890945664586468793748300374300393583681718479640545005783388434554477014926507729150590885745938465600444039638482167308245759446559140460378437061841431726926102073477808057534680108758388641831043756919826295026927657283992410806790768867025848008545888694584846474188643338865594171170065758150895511349137997037826844809855420705744437979283850985650187191559576796541187013408956152156021469825654045377485332634832378056970964067103594707196043677406612551987725482687126010238181148241632757565562322889686556362772401618831704021415146881041776246558606994606520571148599793829362015638478166971268768692372867295598067076404059825463552883005712175118828777618611407552471497735915767321597934459747883611691531236515842072650810737321687089613148460317248479111349926613162696394440937954198052802597452019720147630231837993888172863445876917047544495843158059848998685925875164933152156954070329201099060670443840538937202117775645365695899824328543149332810564093492606689774702361131454165652876342018765460952798727289065586780567307676784326366451072540046788061448461790040779109304969802586518047020695067692532316076138494496942384860397013470188667842898946957025386396716945967510754471440643582158160732260259183115532896300200022685703129442223449510156312585873101553750205061982940866959050625486006152954091019065479354997130959170067885619286742277151079612135654688338827288908662544671273244700850422739935136252419949453439893194348052548394776385031503846575266931420715589043924901279092157685386907641532245200326026717230762860438883961960132949649433842799753523037370195993897119036686934801130781220691076478962662790100338786415185344363128900824547027679882451378495673285777991072251329408965196392688585401460320978455568851168305418938520495684263982156543266962584358254388719887178754154910764152541792299030144815214547513663515976665029075597675816915117969515688690986508346845788860219241770235488473540067802789366885315310477609218272038696281467905266774511454503148612648561146460886664326538104171385261146972729327584941935815815507888028063252289287506932002084464780655344322070784193151054955675154768309200738311853915247420782572079727457422875097701953517519215258922982437935735826780701539637404473675769677108012153713514035029523862831122813953848526718836656854328218603360298265507773296197152053435811803052352174967441693977609989701136085285013008945738513556398574294170159059946905820767515802337789675722372950373404356281490453726447322339063013071981918663144682291599867512651587382744775310535459017958134114264224811165306505233514506484733718206154740047395906009765582408382309086485485283091279431471588041822985667934327345533277683172324563790609868046727455064884388480502503147538293539655714996667204454520084328204553151032407572652366171836669755469106019776632221364227338618994067888848704792794238685059630478670730657670870153981558966825901073045365857353604574346499913256475336347843553554819301907178779987790443101833237390340398901162228316186919470454311040097055617319252840531574389495441147594657418220124664562639048768624292503980544382245638278243833449113941445488449401605026561886301347738342541044682453398850151521103074668893026918442638229010005945779159535093508011969827993130928367989202025083330572274201640675923419349159370992930642151270041750753324175129254255437811704807422759667856166238355952189202976462570689176790975360446429453711068390756077750783429135694892558200577187933685725038845655779415859256641492753550414292622926575024686541047799519600930247505594822561560898398326449526659699085833038489385368895659501373769984550663586094696001123787904243102931111043828180340221272318821289984487686120608660939228458333522965155557947510925234555105465158478645299816618208056750683395701067184661618490554336411450690415320060894535918453339149603412776698614409276266949816343162255994280002140663528026036453573430828700167893706534882181389513761324998499540881240675065891709192354257594763394639049396380323824195310457280705211918646537123480721215546820992894220209655688387489787545993658262899737074171372237732169338388081235828688004153437318589117685352571204733877712838358506467526723361605590362834161698874054925676535093484075442718368074889102974844814976677403500294151399530233606528228782292110638812431437055935849527217917502965158786970724876062798707009878174565192736087281463513569017933373761384875663736164121118321699296159135548028147297564386784742766286365672634505901481772299354187492289890953763349914938701986907553097836071086302515263490478499061541620658872081206298842399347233760083259844269758690138313712503795071660768775694999975184715649192148694921271338539405211144270609414875630063693016543170265642496864053962771654317507941558071069628952599144095001729407258988497918312663160395750436998093372175971724234163283437110724459229689585096313752726382464051147810569754263632824737161404645513841671132776976747527661824883646146569021563819936156228188290731552865005815015208876339275865185270084312472661490225406141876934577669653068729420856559147302292183591493987546777393237279750003467892037579694071155646181616172398558219912980684528712783923613908323616672735460834585655673386317552280953946278949785923207580039050073416938260962579690587903535739406657578411770948133166806706635545350444960117598969008736167136489949845893423804622644656135714451088656557899373822345427722860181277200636723972213361747444154659144707489292755819129983422002727346096402950697396561512131709380255497915300292684562282372774523271427603198078236408433862203343313001685191237499096976943474978157148340632910978590149867851821583725785995783335345453990118632075218040087701381532314634204751182490809729326518274563249430096353300613579531408120402803928634504695791805661250617385046996673654330199549226268517873557697125652277475817875766689290533093598124017889034357650642658002072814951204268419231952727996104063124636520966594341209131343278106196593410771386374844588228928423775671878142695222324771326057891610197180172245099695457794635049979802447091209521933199856562283197064958437289304670110322395870232824426518285613568811026841942289231359930764731984075921075227504423925926000335374037517346747093830401866907896497853395753120874059617500327414291159733557957979420812239363575589086158286777640918289721567464546546287723975971274513244748827271802068618490902060876637727293434055085813856159282082803284183024755426926964426562055511843570470552379894877661379003215187183329701232906210710155291875592401308633509101228503621211340607495679719957547059439766882109679743680886112050986916781027723541097133975038920774603906368342974907894676834242165223703989543009656231351082441769152045273376652479832173835577582124724351546469372248642089146622621682315057155464869010319501482746322659947407211193571803406381405486674962107050680677839285380405040428227814331098411712656523961052272112991041976056461648934603866600866007113687496805644111471787599851876954263085266101098936937998926171720138037155670393073186296110539028457499015080726877322589541029333539059247647797759317794028557614178130801195609704635734225408186066998734691799310433449718757011228279734239776559097417624952415776352530036007369625152591873855156843758309499909036516065873223530183994451145457966724860755211432832075349077538686461563412306569458231843278303322395790867235659699209734138614296044684126932923267661860488824247396654066852704773041745420914592575284164737284179177523132641758342378077895197783022743064979850880539389106246129241523844195151459781975483063011804478361125353663913930248119901365092814406238706079008242933601778040119171365692376760053108983152119110301547062615373127383041999362760284852819940652975382143609068335972774828178257497872005892527338447779453204310497382509714136004922452615520836750740299996961406622752367927833891438660893139645189497986300208940382986041496659197627864768366680875760608431951026612532986403779101806289417680389808652558740096363472635927720479726247069971182871664399374831837974262072107317708165351165492688960280919308584563159922725502070623717587498122395140098015469066209963488222276187415933424190962972771977167322600480004005524183705732894768965790433008519851975294384917483730328447993684326443711763322757585420988068459736180853862773681319200806248874685068213023328151874572628319942243828734969195105606003007797681764867110588008759051159886047087898451249616396963097586339895442574686973690249985414346500025349128763056378422582258253844153284011918750647952535069258177455162159965088157127326523147275424606651550746759369391792079498238790783966714402539382664281392063495535939949923334140310654445073126083876139185964779124732394393350920304088188142052476003076806894210737380350217232875963367272053477204250331090708297962942764826943978529449971290888027074341228872846584170181652554980396504403822289231327500490516537874126265223092288926209178392713909225979365836225834415102277336304398148777972008156449872461480243780847533109766589697648824599972379058917313363816717712435809751225513708901230370951631486261013061338234652862748066447349893921569553571068895200470339943484813111939784364619353938466860698746647546739021149122611194839746622720156860589634779118593428110375488257017973014520228934717632228239556075767044254488455177600633808859633525478713508396828719823977840240462018039429223363024107641368874963750135576378730086324217393071459131671952506849286163883509115788205854895005120262761083854845923561791083533619829894321739505284201781264227407115620418774261623945513166747446048582780474669796387608173531045679799512343140450316494951447013341177867562134458652540531059856055992887046975707827839416661348944796139508746980777681517889883497275410032711195544482780504524073720273646998006735107067662639445363014774669371155595355648288120449215956780559746928315426594186533583189564321425636433649062643717425585900434325564071237758676667926059430190154204433230651001497724580405058095191091631408976858371210257029359430706716566503633807820264081666549041648978479755909726272548179235051273988776360790766194499256220023547701424056798502003279716779227251722429226810474903244691858163268072294567342070471828656644620332321917074867102582889166285959656192943409790202343213393094407546315973210650948677149379410671519496864117295010983976964145379057282246185324878507156329925776473452790756686053039070166525195261198648502905134267523531684094818738911899783334090725396543041880346240049488015708761322252427053514839811010703728994997184814982056913971913748765936982189532878173626228834317827435852815321263039736716905255503224317396660956727300654097561501097792603848939626802981404858538077227130747373968129725636211807919041175495663963562089208982831210274282447060603413139366937597060194262439426566378931864527121165328750606491172751512939403083067050803276574632080890841553366382445829413779271236451180367129957791585039637913145974927341875176348312532499973624867951793945665870606025910108266141065973197304596848836107142507356183571183058167008856041585220363049732581785199413420022789584985034472758790109929853156959474981605550522024735075348803196163736050605278581216619364840967852003723197713268427466947843226424199249209558827116045024150719262021709327974899084836818482621260018052201223889789004021857215317085823039447986634682721318417535181007590397217799796988685091404795953732265988927141424705508559030953649063242280971040764136102129058541955427879252369490480877603380809809064418854344234001478662557082548102251924997811579533262630623896301107196837313835566271900991542822615980493090082633185637887198623832047600156589568293862097035567738146287080757787307829842191553903524208038332240330278468340321485111656437031329653555712210173829843287182287474353352549695234460417166745228938775236392082160867601408921434636928502996190382660500583982775969168556655116323630527895661263791964659852189057844178471395915045548238903987744402760873936794826029099863398483542246722187846574167168537890928718477074382167459151087168481053237394723987017414545711880909056053991047332018295514370397412680582553092834816908615719524073200166735943959451384637625535852819332054761523917208846656211703717650148558462650010859275220767004635277294561896182007216281343633115077430692570621768178636326892436048566228065668736540674622130017940875464706682385875759503025938277346057838219426390717206064004089863238249817068784136571099991010416618598571617608502712596556818521446811679154085101083077115195036965556949025152371767229837509053675396993364569575565290253568241165309531140116856489238587529160314223732546514181156152991416481873149434408792371909880330262384886629168215594669855257548277320879178792874716959651991073396683605795111673576279731663698618956824582351007299553559690504827750714521640703711952938728748637795566576730845061446201409654045570580835238778934050904236333184004216028669301252401353949316369532744786737559741514919850095390805989193594211860537366394844959547340077264921278728123076872797071829174093148006549126303630757373251278014019095237500980323686830903955137147991191771454975158460311152243266772133943154946328852968376217528949249773883776840725271273022498332287933857330643343202044405834078778548332758981449044361726174297450915549146854110850773347890658142103160312640113061412890154113636325138661968764250831436546743800791543625418966798512291917445300131001832875185558203607335744340917540927379556051040303741545690208666701270334326546104945961408213999896007696659188647370248441729460770662772043856230754577985893277706455220314658728161818551761959898545800549508175656791853777673697156006910702589947076304806184378774755608344835795088798198420194902619093089423600048455362914353042861670203604157082852291616615109222676699296349095614688600084500424888523855555571535028780414383215749559427696945354943105051582932135489559866430379160491387129772317969786323437519870415172866731476205059365296874144550283703061645635130551855281900976041955091405291918743387297342280791158583005635007586872618706513995666036278516271277156124890230545316930928807216949738795315318029873024564035560839334534116131704180665419654083616324873927884173753749533061154127937958595596649134639965072587367920537632481107482718070884488460374067878855106029778073049974793623637749975472662212115432487636531218654289867202664703420822446420062137536848675271075255323296806069957786312865195133916115427489860778621777359926202662899203940958844623763272974775265486638628818575112707014350641026378244590623293588741721392316001907287801110122842246526243530392609638340998102839039189971234682659904543416964865321673195596368720421436931133656380962601058819462005482178914611540477691555707934712324003332646891527010798861692527564256711210191839773936336809254986499487071630897306689386734900918155060138815016047716606396166510171538894429702127097012465471651820539423059652253343457939575954739086434401571736319944522448310156189854133270821466254623203722088260772400083775571657083663849324603854104888250929769992690901894423752040827180624447301744757155743319631389231559914339261077292223032697508645153761655675022357495161699143055295986796885525959280036416976967236008246149271867069864128196762766476247832506529778621158202778980967983422764961043018474862053754426804615759179148811866217340152722823430273074247341251586694828130949585122436370986638013236643593002833785579354426115086480801224074924590220763901085472786403184415941402101895475009384407782294565044178302085965653262336346656792827437841752788200595931452002702856061451144244665044723506041775430928537890221459274468862046681785915031889862595231189785458404425911034642005901457258445701651089941277119547784391267948286956955781794656614363765002271595316654252380613573075251338683959953958745202125266601014712911973598738533498872259816040743341146359527764150583888507047365211093850237481641932666171879997325460032410124876241229160079408741810103687336163259425237002696454293601914257300933021770393849901261835065159363294985957590304358672783913995774131083045966671049051155845648215910612548325496032984121436060489090539812585149712303826367769229845472466010429283514964919559938352823346047913474621087381547315992198895504556146984363765270451326048076444194255057235782463539886489836265513252279319216603875416184805799010169498514429888417215336167940376208584407826508009350515502658522264673313594599581065818249119243829090448525890787271137215336147744886181294902717419751117468053213427669763528271339132847104444423314522061662014326828494966526879434365551487139963188756286788993290740915576140519494703918508863093665577456280383293198773099647039286928264123885802970852337458623694142490335382297396926866652855156576158958285028094514611352722376172820942398372996045950705534819006814244120070405930185234196324125035148678568828638536001649194519792543384027872171285933942630197230222587325328920723355514583626356463416027607250031836181458535784417344521078573973002969422791728400129273030602088313317046814232845530959542754849558315498450430763273457986163499438318260075814183219688617492149622545460554887417350622927383809951160782551148981386402202205041702230366410576473873432134176773906033115283583561273375619921383657568580708310240061522880790720972243195815810306988885404870574502790741663147040272767925922634545573960887820017041455226509449885274133671991001237957002187305373343470227822480335475484826614453909101233466601333618289247659523049378116866898745913399543555919675556539050820747468564402093751546144737352205857579887057679630497394460796290277934266896829514887651554381403085431201838294407273894619993396284552099604142504523930376119993683201227374224461798613529900071391903212752712494014670634009297936550424997483398094150734488802102176751552418216527425446450275739070894229872716636784356179773140917063419109217308247559292722303425496105277560287984808771016999410083492514533129476377522701290051067605148255136765620698723965962639455613805773784728915576510582585953620290613593064363563814838581735030857307938286054517969600949124640336980404920927617682338861600959530242125858156731731549633966514002587462592241345994259934807880976971825639824605918052433026550835887839424583798846705599482225199604920002307588071021204752284947257081039940060298083263756430570196339443464247021194106227267103993876411287902333861250761595012079862794140208578484187161060579018640722031279055746253332615963596569109208120348522428922823932691819743380702802166332560847933772285139344032287722093555994367580543398069476021697197507511973134541594329602409507554116453203125843806282649605048150379118419475286605305276338697720908105381493651982322384439976744386077508932850885194097309727206900872095244038273660988409081156505031929561315178203606295193485248469560691992431494577226743832788843980479376049277463138958104899406439500432036610422791346206803015150355979173561360545505213310569673319218035998606110906543652579652099191683222202164236403628540035440670540454826998755646045998570106852726048329564256515963625054343954541313622857160843617300677700223111563256315696922526594665031799507856646713865756672833464295140168619541109444295230307259665238374661233933841388571222546999884536509113299424065832653844602796980531903467126697127609822591120527185239835911471516808645682496524312779927818417529356721578744553216279809948680001651827709221476836019903798580429007270706521447131087083068947711287991604449424694226070236142283089388736463942309904961905811535596154458192979728183025243160503699613449581173811119949898545550964759591099598802163651565242941903663884248377272367683856540318809078926200553893856560922173653552753101668506878513966782389200150813342360122922782098884472333665735735146062309763854927617299339697417220550031100039313730095377684903405466441579135870145544989237776095544872628970623859819825835329669323773083934367311077793656802706230095835200628054418227093440872422722197512404713966674451778401450736327713300651439629115582496062107606019612224645358989961600052017621482078966748612205127701581546497985689062742752958682304379230703785766858909555637221063447078948962625055279233744393758357490259259032161703872640870254865534242333914480548582274372534283264012851212171515069055215002688100392356924124369600732383296462562619951964417457531765431954775749840849698093769799838325533508927796749716505019091605764484171402090971442257969944899189286421305363148676479347422278126646868395222688751576618699707150007369550221077366504461229122686870054288956861293806971729593595912383783819253551871551951570634321845915701977856841007880803058137104373205097700912215005228562974660659035223960135978036138933660306825548940100852380943192713324359594186208307519150587212668662557984567171322445953773581070157663664547445479189668517726780742956141346232011180156120851586744668728477199055378543484695545744661635936658883382993839894699653441905329254241203404061141231246804750529213793468808328357678663446896287573017750553081939829320917050479674808126331107972805145145256904590455523070871824905516000755360029506431128563767656399076190585070654592981452855254193019007655700253639092636830091420214341917034656629270788009791001019664379189280661681255467641103402089448145664804783507004937981768875553535077068622047073742181863447606903030792153272466301015688879117376137779700842925139929489722073890793390637927737087197908093681400307639618453944053419465263120919398787080126654322711718867289020006728547663619592287427883504507076054615877515318342547674082982597149100203781417572671323195537824727393892931149241195033844269273705877940767691083774323321689369604948318424997835787886346542281749401491999125595385142877946616312880122088162027891818882250431151626728643962867290623047631816577545426404703672913924074680397301003344575759093056432037868295204513230223998729592738939574162827516557977958997857130843208759786964777823213171430885791238055326432855567041621504727651861937076838654322722250928612788379659124400568667472375773904492738026203951857093142597552616770215202437235842798929117851334086455643652848140082548797495274787814438658511689660814303858864611375657478331362089438229116855473551675183993917732414934365230445590993165753263724778671649680496500883447855276306737261630433400555640635927391430117332085786025317953756595104486989040669928580479455556422966822854860285817150764172212412715283384147983515840697508716063989511039066026157651619007389805933136126209477651238650062033216590765594644721343084329018863401501335855646944952737406135475803805079070442739285152111164835842735042094624629443487588208150936785600133802293681988684157589059922676971440093954029759916247805584869917264554796502568259757702188665639999209899991144867027205217744021467992579956091888966139885995970627251613360044219218555062936134638115803990960915042576668806241996151947607863021401691709892186650631317632935546382559356436493722786160565167070279176615207359193045114636964930459793433005676560570893358994257380955971588359965299509786971913288442384982372674939025890296419599844404416302863590655477238744491674090656217160831547472425574745684056165428346439078290818273055043204157870583276969506298198281009126345547438858175111056438850761981189200424341483615825537598128049114787839214443049959426718917842025087391531847678897948992489810734880765532483841768155460773201553395584132979776821193650887750002577095243419639745859842038786235562616332448348984875729708192851710710051296023550074417391050225158731428341377901990757981500605108726051967633603078564190142149610224212183566430774547239320144193865593978966080419228782520063193215066679886309447453752307390373408454476206006047716895254609427350969245263633350227265729570994665728776346192015139011581246580745293235590564766352983378617498530803233007839733745888819646181445391658305552460641555984735906978289491730130825854979977376241547664699081237786066227052635133827181114689456425430661990837676306802104599699592562752964610932876448400476179360785575004356234847401586010422145950786359201553833399550836272632808501801724653807499122291115411306036489770603125495994645383442949275279732667229544224954371282376598420044381338228490944437437105306913649612036517031445218969151784659215632638221816850425185766342315429739756380636429183575172174015102436783350043909777674699376788194052923267696426646176182818579886683489810282981974079323847919101820821154232461252038521058697797463562891712967001287706587381462224405371672066617661239851240713444450891518841416750500870691605787056483640461533224977325568991831189229457670223484777841661573292482750952970204846548264083130224588918986798554083546140235349136631573122900497942367115849503321215718409548400427149809466968169330146252204095673883744701504648205101386566124751657665049687639791557080097970690947833919610059115819388911029985027961015439980011956066890484241860485752328758998692077246034648641903659775651705157824282742946474730819955738318571306231378280145095083123627330176048036020095876003544267740134168131421393076323610139447069124511631920238623292658188778994771898861774690348018139606872844770419718822419438607316445254064719411593413456626715356158895942104898997178875573035418801747420697097360966177961122191176917015076920896026891189911802624972312390658235223464557309493657736321165428164349933975047600229613920763696187190966517231689749724804851909730774683929818001763187053696767699600254929897356415463627386502507804249332524228169720826299434100139202406665655266191687253967033119926104287388547953644575308668085874222153890532890694577459228406880505340001742990142535405013018399492091238376990474529720670869986327603689466545744105790998533319170592621576092045055705598566524292263103188648627759772926312683767284125756486902788228028500974999151385384224021528306534187687367350995697139147229639856003852252097276284702805708833215443055456140749441045536873993120163625398167327897602884014625947115377270846346321286990430039191630950937204764157339104025380284015753791807578489912920019005367333165071183769253810384186172888207763003275713483056209986909550402039741496688532951167008733234520723611843690660876151477932669547021982581475953640508230060640770322364731441692913148192209371361018969715011865698272959606263490119249924572364978500607830582404034577190882199954064692085658373799606239922970179983779742165880692987227192187287570696799747224373090905017558071568500907777210525504309718236899539403360717750079853901310171541561532477842785558384638933556813983772285548841205016589614346693659340144433173437791898942848210994488732674480384062955909281540040470042551941951958892321073991970083829166978627362129856955264442873960497744719660356896865560500849772286263703079984288442196241631857068262305498319484926145945321149237288837391539407147966956573406758007528936167544391208194382672019052127387178223629344499228189253150435364991314309973406258762437279590957765004202111187289752403570579298023405621061119990885477762178668528346838818672688034938815492344382087234777560869111605529122537943117146724320608203762537456200864780236402333762465513534934819484166711444540816362739179755694070919029127976091189921430887094280028386709178262238652416339799733752514101620699313475015410168686205899228099936921313493483927204353877594340513835849627450599695767510152408996508802468426546499631829595092641179590548225586276704588637202302825951242395059099487317683286887849565906004208800538954666073023931574207100253184083621213631566516394527217402741784448914772490886545858112684642644257810150888140197889960473536428696587937450023357926194080283394378640925355207218832755261182142172199778363419543754365398451552328349195750868658446385302103679274800512972635002994801154440280697338504501346097379003378546605745595312648219940192300133566665913268145366622489178883258667497620650029313554565271863197761545400075226239900597466560850155123198719606251786184247785005128440917341543849632165543197925195510306697032727952303289408636119533328604257745033356688824930748958563735042461995435241602351129102850500781533712811893164887233964632977431976889198558650859328274843221995308637406277373215849004899239350303540863189566277409055392996924791975534207774974307704900757064226441689578820853672566937289484445543464586612609761198381513135159767739334843224609401651099939926188711427253393486098630775760403987826404034281717478891629950537684640952310006154666695519370841649127492611975940963970695357611191457009460537627405019288324555279348993752332669893576136683496633783803668050731745393810128382182564136755110720911059572806757124714475746831868777843827822725760604976199827166859084583963674387954783376899508938138758816697006336960050679309989320623339873148656010224713502033192906638286963199953550330844913688185514072825291826957915896756853851394598390194670152397593267088489481817551907652034483886408927160198655310767784531824473127060302763703405023310649857307688374489282387749015848422909591126293471851395386586831681783911273091815931154779538028725378781674022229676418238565087186950493433288582160614455391701359077280166808854993879668339223794883680203792525884878334443930193765662399471373997419141074132552825485043017440253837486676014047674560233105316057150881409485883549800423862009830804333374771430877723459733372593902810933047300973368543277758652143982445155391377377825842925116955346922908285220493247218908099321245166307785843303854519307350105602548523175940294670558641816562888193192254210679672169880504737868680935693982437229923244354868899526995217127041326437294135772696520226629567446602958188071579195496521599874557241662395285948797891500564158056318678640141552616376292540745493001409672861977244599603111002566616894412351716329466318896615451315602445174166614770348481509133740166809798950712644761990894769804582070523304753846072086895341529705449239284826015653194152013343960599511207759002366265961504969475174667638583298490326987682738933214703181079471478586455571088577336697016082066818605893265722935938660559087840816529191484832083971321822390852543399820719401988143874370732169188740605511947686518606315459913201365553051857917093342171444377854207534874641096189148688876968512601654328149715813325231950612510881889314394881474117123134240972667906785562938987483293016403575743900148149814196016112486813681177538456262625043198846764957544497132246385899805155989598609011716166962262165007144466141012305008303136227460279777389212450115417572313706559918253113016328473034400659147951746676114767235208620696898229501818479812718998039964590284974674876961241283756107929080704545348497567168659251101584636024424614273893176287248761753656206277859672170285175785421395455931998638767419606274789779393698605178304353087000546169684326478090051631575222621951666279530921791879214606898756220628356953768420507876371768761998640014077517776188081910387511652059971829020769628524731475652868675766875473852992787002818040463734745928684277380419676243621642192178234653774784000216116344416488706607141356174132447822574662128215087796857021541680475983968644062750123561013339467246585174998826425080574447102049566675695674643528031320374445725654387126152428557582949943609377808373562741038687530247237726157331420024704951190871886341138576105649220323517003918076320834114620998670240840477294569121518668182154376130415493407554356936944925194618768115020736970316115235968075818377042897324079127973575218145789513766380760620392694228739084052558417142570251553168879579505462638152850375326952531997533147255321833404080613309681164408011410126312718447657903401202731761669984270200398792504384688715969704808408258803569929112185401107395030907155776744364408236219129429765389725196035918770705134118410213857368423680839773182259774032978862205864435823972053530795103670354796140423073622732522017032723224071718274338855144906640055066417357484773945759366474109979640333143836978041867190734600377658252016926403034682026097378612927452516167196766623669197621464060854252272560984029858710223117843940313294964491224821189237381332215606605340181937708246866230834867668142330183922237206474056694711234462835155146908855948603687830516327491197800504557204246974178590499838358334570507921905770786809320798231548700358721949807190258977898982943307018066054396907008615033009106133370052768307862662157330972905333187518797395464308731906557488659759653295876756588608035386926378134645553266201437175812804647969448980874208971426985864415899628192755328858259318156063619981193004254094802376076802171125487717495712114736182912094952563031071478788946253688959686666106587932839476355102225433955938337557951415572618264739812088690148351213371315717013251497936605684516644363766853839679566112324920674394288119424780290311010587847537836660570055463968868585438060629601260992056078171897757482875540908998858419180391619145739497217595694741385599148330422360697627483510423331024005197920009868124309317116117835573101669490752195071430593880798240449821155340308424686065125006139635708488351919271105186366532544196522393424137000941491800852232168982699949172874406096621039929870137372191112785483900114109061946165225069444926631470262617308560745443320755043840192319022485778161655480631414808758279971007428986174191988378051263851114877488893417216476973194083758403176229032039588638060205847254639005802142955250570820400918467615732511593695579396583248532078321453303207267753708813401309635853391263652762501843147385707480129246138652743724572470870119411333150127454953157813660543205865855825476762033068554386820130139987858362851498525005259670170840342224417431795728335030530148384044342258958421316769302205257865847568237449980455826356839567836686993500842893753789452921773736425387924561007721479365046626222415604193517232598035959584686413584048769113493722358561923097736406994754655131953489365020190515550388594295531999626914700119887300641005055958480946240169845602703877635870083733183269519364255795214219842536714859293269372381960375145469446162804156985549804040878030615250464585355780658736083950195215110817087954660457365389904567678931401489405439992796490922172538627734759483323083782723233040666020993717683393208030023245798134309539790780723660564477779825505117086388424824132132693496588706031117735984877025196758838319631395692082655948160452188687094810950890103217638013242780816956770907607428055302355184804905740616015548445088248782530703303939578410598836968188838629909916783288551736393377628524178397854376049905720269872305236775657442508845705688690454917637685858591569248165834636884864340165517513417941730365908487716475217051615566441823552463379446896983608365770328733239247307106162884970555780465693143255817468675593134252315428086901792840112775056420434650085778946476917533162572565597539174972036822898840328503215633120629517873160353002907676541319478952601928356474342406560708394640390093583967752533491095089191158453835238182751450922176022305526972392702748850994469425208589342244631654123446321888588655872299165139391289958726325064665763065770353756660657305712072867700180084858333303275794618214002799313307448739036761498526470490723440420447784881373583077114429555100263953264018200532507963965541894521079697547670165931200869879846820207074410360242494105014691625111768039764006152709310674573923414950081857689178068168734692228598611949556988416955281861083367585906089205672069562947862850941597376085406753111214214842135836648140969982386406716128399867675816750415098234232529317427097432601345476210850004793297988149150632825905276021701411951309999613564704173689427704203261182638261611210052970643206193499244295450765485395157632652216891270897472593605721555807349367690934706098090144767977598813539122163851164961764097207055735329966051589739750894356608732576185583302615007919278756269195050681132754370469519467597865738323922182545049826403400196627346668380823434544744224572838563389015051104123834897952480346485146332981451485459205842936820535240817296616766397872006770504681142056560775545947863741417636597107252370379079569890130659890078426184732899443118479235215500799327519100162562610994890137563849447611437167994699380771846301271057484685486070191627400975391554445846660437668768097374492100843615057601791061895712329448697535551413433914847543741014442827048904276368764166059380711450555080548818962812240368155707931451624023509964610907629647049953802047294253555361945638317240048133204846447038679487738981750800872140336810850399035428399473326404715281959407125120153508058103825534236228966589069019237792878727829554150480462081669777992658706002514594228293384089735706675390660747997422642637951782884979749001325117133298452012685223254232597601624147644634810016873400564088501096768828919788105011534224129820356124115075322845036820271079881663349442461521266066640904713184340719900351810919107605286975324788052158643830767682233235902963859096947385198855962354585105881157050455417825841862125574259107881294366880527849224971734446209490916603714999408181412919080051616685787783464352773546807126784586253551464055821418928853503399760256259303112356691691007235389112598033657834026360049232374294691753065115148703007767887575695809515499572846171839184873885513093324690181023690521072197507984545880476381616049132310850343381048471885182046105441560755266135833884090126583591928967580284218161380876535953119965239090827178317789860874315772482131509701365472617475757193872742307368303488928529018013315592528756005014444719691387416183416440018762131691793976182107669050781619140578357309497514426745718996767688643355571439219678363304059391512079036248816051563378710833490283680009364771799936869697721811552788588028473982430475589764605941748621813654237576453842267204509398062540369531102329127960934981131147882323768220100138718919779285358740729032104005101921438570746030462957430965785607935713097782797807518247515785628949476717458772109298663979006785887636699647791401928413743920898428845722894811064176484484007909054594748232925616775020454455206914095548701700071729000233634927841923116226381436177454012671420156572169669292629942747572320174583611421252071319048879333792299129248358409518252465770920160001007471822483066429213227861111922770703146383393621856743261576114287912909894001137501551209471875204769774103694659020379227819657820833058202632351117235080357117732483411874148691228904381455029654275719523933526588482229705853803441654397466887854441453871228185691087907220714785004383301170900517559620615985433960348021248113027318950860960779424950603039096167972038245274038432388226479738241158270297229830698174478679505815207692731290295233332766142031859158846945750214098013091425630282574950534984025330596058419044633812381057493152709550647188588465758815870286813977394778603376329716462472260493052916970603817906683107956056852859383832085329154903574840840638101683362980008071732339821367733972856613536135265286128817118959800488602444132549738186404445564598494202152747512780249461578209660386448827484617047855689595466037022523559563376329297807282179566923073588657538534253739380143198594582683946785975841518795303512159352726826387047253657518664306469053000000316219357996162658270097935594522409873958906730842084138649435842506350161223343882025493515895773060899236275515572252757932737175332304010101933876287830259518241443944309557758416401650187659530298238783497307353990006747306611704040802310843626372275983611821659774825416628653048487349439149774915661712841872200853233886299649575223048222880291723489557040722661000377418008068295798838848718109838952433600719924522395898168609644312665304487495938550462223041740175456347988451405809604957907817150294310421359736124748223619189357483660340333104921588442030704251284574707246987767171843848079721348768177120201078682206420786483078750390630871446329693639502019944438469927178801031263018653343656181756329881978273863399897863892052784019042673796663106045611129552994987795755284612101897686088203118936231465971698426130589426555341408714058636867794431660478618500028829358261659143536441789521210060183115210277162832928135117147065503252745151935946734659350536263348154305949654402279332434174304854659981866691141128488548203629570662900825959914672945630602022626105604877437542765315033932945510477818398596040644573950865176796657699106468095706531383944003518552808417442600057828023399498648384471331916008125907259549158655099386949723074221823687468146390084237863589254805891344221684964034682271326681620550557106770714595100715320015843118500980505086230788486684666913663787984559604532817690138389676211653348902497031475303605158304682867205813820517012110952378145421309964990044939182025112722779687757253581051562975908869530277960319943494334439960133932742865429424109217875304595810319293472288599895758614680126331607257153983168319997277827897355268569742159113477643362355148556176665271570827821164315976496802493539955690260442937180630182651255980483518285897049193209142814562688422923898400790457292052424796925374452015894631444451926521371020437431535775306715631972464652110213667427715455421340395171705537521936380037610379983949633801229133702142864759740266093830240004032400780107838127935079595152120147950469853027178927420297083211639195369302448839784717627694536289124103929359628292982419446353692253766747659939479348495083313117467602754846508511428122732818184005774107622709145526438751071057605220894200369997580268924964232646817296735209183575688995826733103670183074859754663516992337261088392121945344970945156548534856102210288725896316331229338215794525479758539044520292188360157308895056395516118247307800811959537357599377138768819162759951572053298516982574713967037998334484126296646491431299806517362161957190293156437695069822296776696542980767776841317289782030804784026375337225958408967065257790471401735253709304923693864704894086638685503793077896591795672457200536715202535959043749595199896082382005883081263731422415761276989149317307625643813118737989897408083572908742849764859156824942085347125240245606145490684225318937458186782699938429594885821282343686072645416158359988173685274798994805815690539630148996769423529151249637239547921169000482374143392055223458107187658285710376294810406152306327241514369317118353079013333324707659877006274484119896367460665255127394566925244757146115651751128287304930222259168061005675067950648004775757528503654734742199000424063396789082353862809629403508630022242051727666560399030638731526357345029577322445773240628481028351013255421862083638231625003825499933718845956462978535926263426971833457422226673683629039511937454525362888446061365369062356806149608817791155249585684868395438612004108112543303693932648477470501613232846688869514471811048751955325802579006291891685425311157338575978152369133529517744638827901983855012183244544529491455790503118828467805440243668056608784480490540417379224605096251182601910253542009009990315170849781393606337969378481204392596158558831708014296063293473960847362794420185492875781620750350263184958503498429117976444769249091924298746471216311632514436991160650779817894484981146583933504391151221856184094119306275538425834500399396448779484172558997865420774263510660013960854545250336410566264583100713024048565440180453913569256458122130142707093738821274453904856601498716670490428864661910621382383185074390408277955162905068107435368712807713533904822018173927301105708365612655630605599223277620699809127909446836925724306264085556968688076967888559895513277137024347892083156670576927212165333238788325042697131564593812447130885316625610899065427588474051886808800986557439309850209737037994816640599919155886641761396711804926941102311708422408601365623033012144219074192096676798832426983268861626587204292482331250038529346438972755115551333449014848902489945370776783280480637810274401316396953657363014746900248223792949132897148355738490689055297450553024690687463472029039256457601693424988676875066244178521784012475239126014585637427772732105234922859486906791384217152978222551862318391891118388277213014605651123247085493005469173544655167679581196868492469470106130873473290659377956020937490818730363587713894084996232921502416209607242274290317419756600857268496613526930023618282437621203647498966038374984532944785903518485071547689906997037739890142554331461952365336500211486900432718429310435305378121059840346686674283483684394503831445863711491287309791216240367206922962043323956218843789277461444887936271524412701009245399765294291542618666110428285999926532910126422905425278683403697144431945633866793327663554038321768010680585438866630726829898569055214532389456994734785663770700259745524675221675924162686668149408866226369917230256219673013861529027386493930365786864912171327681834125644667221779780214196310477129177269184705683600605902468104450137678660876601857294554629470305443530451306785230754283842589072612451451269520096104536554282083102999146179160464294998506449426515968907195417328026140777083684243111466663614989929306059705159069293690384744421680729443342890730827273304818374571266918155919698192949286123795631987054046282033899746348340354747613560309298663777407740449119967224891451933754019672280470478365497557877308681369430931779947357682716123370420658099671241260863449178477732483172017195996190834807116079851413315867822177400179206967755977616531127885634640443475179040679221505300469325606479079714739996158186873973300285475427743825323959370983689876949285062541244078191965948964976670952284633189412987243670580180144681748931756404191749520763836044607730663621923046119210082404578188180456214690928298226729081182544946779380825050094973069066568442135380426524043110968441205246926338522395940977788426046425428706526830268285534930508860739836315571397742318688090467980029484112165079524010555215763788644919208700691911166691829488051499254976960640280479666425485854638547430394652495041176226160616623969978386107407710473699559519071786132015208829737597331059069886832614769299180669178974703698861122953478124027829689966597438000545213862104328659285248371789119673654830625453408278453882234918053241348798036592949822706832149091471430147474297686725571273871578044011992297235569331544050537072311533922959157997328518591664220186108419933790117152205133616040715684518286556136909170372154903038328911790348097598451082277263710515989641203190087215489223859754467892842951747272813837772363436305491341197628102801458344951577710873196218741093085268962875233538995378515622753838512064111632607816698318711726584671048682169748430224854244347060963165743898089966344096580224996016695098808405059143670230748327359137788076056454219282880397045162199625190202367706227378855282566868252154903446486915860336077100597408095328800893916226898169323689589690859651012487958563923364344810330244154786560374077600122711300471096752974324245731104613671339455963676640525079912639956426122914906022244537963591890719692571362709012008104842774872916993979859932969920343279141316929362968830091088919996401232104642789528741871302715121470755856038375729650930916834468149587394077406328033684446685287016875255364391576704247927800284002741286629092165257833216308487568503738534693297223856801974531503071675032591823331691682809052739888281286227665101903058522368484051387344978363705075708312581188078405042163831180051614266805562293518738192853232208200932953618147792120346424443642053265136556454189411806496018267922047141788652496703407795359055931837125272836783592982563258243612652105738717091490153189451520462907522519238138093058890188575921566454553646835055439604874225578763968793975296220861025493260777999084714306063024207190825605493748269188015550023855240754914550866635670938087440392136071820997275260759742232485716505948228007068126673012112718259061868441760531476154251636575759881702135385203365430135328563779770615170584293893825776087209733483523972024891721471121989441470992114996945334454198620509513278546588229325116459230766681170582372128538432425901386831453477933797625095865122105824513231009645919131230353942234777298262048330001114020131618946426074845680567350855802581195885332037717610610302862709498573729156591538808482821486776299998330115730635402492164216389828225212399265982253921172442028487049748700557891180679852477594183421577588371201609177463244616519959651791236350030441489179151246458343190579503047545621215408455739209509423570840229638807789827929916576540033028570701093431843351700454238950484885405981821158113316055880881413352494213816739140185555059362786710570996409062401943531948208180448842068636060214213731196478468382774574767195268621736440258056986457985858853460851180989199228031139106368940576316023476288581042055554863927349549178797988856764753477051665022896011526490640859779046645590855662748061404664883671104226018486843332016937794494743601639066388408681510028539336112760487597233921066395803887570237042251099363794425774630859215103532672781832342570533240774266155798161159460814991008674872987293003992350570903502461921462944700955316920568295708875039239779112678549992045264976894879753912877662080358366677367889475251588387524421022653325296203969690246286428144415919136898740121471744003406943439928356887878600264477094917810489066805359147666160355421419618434074656568284624598104605458841455314150818951612928879473262550177384821195358296924305265477958892675250015956131550563026910556970863111497959717157460282316548030738603560754913593445244581174285376637950815155922203641937995459911810207436827308090001359617096570115585001832886181404995031859897813707774920408467847645508530739714446280158954911114764912766653473223242594883735547513779489128186105418980819253124446972727450268413762282735552074543851376183652180620064377862581772961243066318563518384976213079430019273864990019549511059982532833608531505351308182038166758783173105128087746913348505255588345220436371652280313920772261218897745333417691891751073763279275125566471242783305130569599318437612056686614045988002258018406946422275372494849314674399606078628561249876428789773587343179121906719059198530816466481788111544899677889985873553777515764204537416494180583796369198311958940266216141761726983256225608272811069068195788314541851259070388223606091953920029412152529301183372763611866307172749291403928603832741045596696737873170376017049114342883257827927157595641380364795329293678033175918056486351876424336748118336837946608204974359008431749082077622256599436317812429124346893084608506089795750709684472527696208783558020392011560706907505070757054455570114422856858085327226973449378259282081978497215872043982919890988635643381822681937255312425789156523497617430713449050236452973740315613113790333409630835725392119199778183783998021891757171324942727834325327919285270732204648952179805943539464184320739724217429089879224444014101666219116739170691375644623146283029321345848614445379133542237364561330025287552840470738120086778519412519800086516004379012527792490507587650806347561168959065469364675137842895469857909294607483710414972916155752703058954906118748292158866971972900297433545943519908083811194446255502700107770403822399624958471896731952311721966763760988430897044337129026812872314463628274226995910494838429420981456191082826094922181463693333050712497394977370110475827426063059041717937864619664478018133900872420595801715352606116089017625845936545796377555297125804472262068085448420930645862065835995024636020896693254780542036234078780242883883730332811358766539572146039225575662293489541459382812400210164979762694908656521348618476998719926619573178042799647016361018914461954025831625303491178717575920418408586345966947467766404471802862469170612161422347961544571152300971249066808563223791346433560830447011383740825308069767423750830423933145504920353614482438815475828975774575713813336863584255866048494595268710996605181192255958178641601511740886989417785486702528632698822963294086787006314332523433917198354549776009349313537809082519472843610247208458531280339789106760550555472452003835978461221286449184033360626289997629070413642839878613665443353336076102397910125626403837022535826909596841626223730494222572338203948844263040216727082280276128239356175872712897568479560906351638014315682955615401385128575468665447923755422260507043276901808415155894956501230195271667461605186886116177279728644588759312379012681857471730562606116301447083474365755110052591096001605829212483443511249029043437570770761654428860767955832896031542836934283824957602695301364757708669434565726997154016189378997870494103780072659533817194392577865583335200071415813030100651181082004301800274795557368588028954656255361437072350602032184553121673893441896961690099719920228644861142568508342568836327716784490429992040301275958976954793977554569584805498097179985940421826888001826871823317764451968776067806144064814625205146415079733837152883614533077872945555806102414144008463950209992930579656674939845351052970874114793896590891427452208164345075163273369530305888643054109294965503228423628744908240084993001053668364147712283011144328908550662078046376691130908617703763823760643503417810568298490339567623414963257351005615111773616066236161819142376878589579528067605389563146154900634104536022846283219791668014801392366795334400176422389628195510818283708139121312609338531373696113069825521761318110388924438982218950843980472007456825991714596189993699499305593768632083520428712022084419183598911225378785581503295291289413382354559268223497177696767244589186884914000421568718102088584283508703330830931003414612957716947666380255682900919200454795693762120569458719706866754407847924699042114076063118883583468590918943256113734671610233014690441588566262007826809529310888252258285209028915728449636352773990367191255123023365856937343819444223168330555200034007630144676006956215091363386119258534146824635679677637934944306887766236606803003139128819200552435945225796424393529729697111367828022118868580516826159772303805444659088893567358589796581814379044303078759397331732605106896352826693618662710895148350115014551823675728347644371432142047057527254366467727062482776768992842874506948107015620491210717160956922555060146669860476028554984096916732853340439275858422418807040429579978469030481567658680596013716802692847262820737789163006821591276179487740091838315308661478214010797832236158542828851137664218112797829641142347747868863391072124972225087495373615056013319704422530012076948280105737456796175045505073316911666964084923684239375046118277219509682275777976257017510450128520740272699572246517983652614321190484187889630123381792597662494016048435877694262477897526917432986625303803786933153949479241341107992020012447764932556547587111576248143534375373654338833338139503400143175811350218961399551250624465238599905571209983476884008629183691341283725461116408003094288808657097783447344702113628449220901306519091129560170448012577679452571987829803576935766012806532880060403030989122834522061410942773236194953285450111228806250390093142892599503052374508729371756066886713390512109262433751128370066828086770163555025283408866075613552943004275449795771527822751518061499252632779700489039806124160218945542516693894038860506757827302163178528934582068942288688164934340600033289426162117006560164377279186492578570518155602677910494115845692934429687153067005767191380609338732602673838665457115369325347862436018782894803927357427028937638038583743361909801110147216076780004917218464357589417613270090797497212847010181648006341969054253337333018345496731070749244902300127899456682853817755190066391507867153769386083942720247335579907328143793632280193758998086642944232531906220751256959128360766136318301332859449789456778250414279249924960825043180754891012573812027822703072410539854238430827123084998550640127581445519566446988941285344069163139838395832387692873987458965035698917590654488456301104631618136401978384236876640388960479007651908728715827416103882959819036909478228373082003125803282296474305797886118112897108595870051029434944829935324853025060341573338624767821851446505564396102212994869718855111685053209987327181307011702728893109301482036969272081605393816476120376759253639803624069575965026607002510714567742681341038026936354441486089375663468993645553689205390537024844612680769669278297354949826266578287622975740381221062565617982215155549593257202543813892936234098584660074343674918357518064220594421758705449712846069325910678961885030232615812041375616176127699614170825999574142605758836861244020075500224068670739394858523516448417663870551026322335462197705165383214457411449704606915721771233243388685604468377329742737526747726920130068092704964282123079484662672165914754031249446093283219742970480540253595941158988218644825659480173781138114801965732339782840348554911810655536889785566794117839414204050584093014313168026096570541146746862579741099526168924110850139058895995829168676170180792793483548304574431190212127783711900577305844082220010907707791634642501126167348970055249684056936984706247394415551029665237777600644377082077218201835294455383613144138105623416354674288615740646800684102092853831558981668844081930444675985503427224847745664644068290851521082448922111150271580739387846248894584900238897600857962366658678363009345527015081076753722064852293255231901898038625230151406830817755678182334639430634965996745280142875562872479748977610005742032810898580080812712068921099284328615661782874674736713927839094591242556669213982997960912952865345840771643972645973900640615101523468816237182136239880862860460822096548311357810680192291171267418720051921247479991150838099458936816913897402850764296272251105903125478962851168728687444848811948750288280517745749177610652360082163804293357597192088821333849087460602156461524857782215043410431199159201312546489610950102265266046633478110706046882550377564759497055691179929266099602423423693029506610069579833970773364297894641538578771657164922678488400795160047240888662434939625368763082166190421450026677062930292185080355417828975020535894542459089892755413885424792002526394927077513436934052301132243481556292915161716380970408567365717603320685498637765141458194661015588943733850821779478735133602915251055149098976159020036654526549133117220133116799826355352283479490749593792058403523556655689867480885774307950009716872796643822369187016259416050205778145009599821998759503983122065514318489750430540653275618837475336579623683415671426351511889936286248871456753567835699430645670005618110190639643485902467802631212865351266682104652279786573160189587691882362005989151236312592013102257662319561697254197149555617974062558674747087646025632705938902180458539120941190871785374179849654431488656130398021232966669118755714985510663088885000056501541714735701407198896710030905373542134823853307692765880413173954872425805745455463128981102137372102170060390519484622567091012733462330498684317577618268125703247347272248764280084121519547304647295724376003673900905873182980487221737317607515863683704581572216540735406158231969144611913882908263282217273049632215884990986588432726861316234500314236216005873492168565051762355171507649102402478399644849956943315224347482234196204976650417117610547734634230290214788447744256143788964920830115685744184832846257198399889625486106130523131647847248130015728543884792681875522668519590611249755944376686713802426927824809666695503165716258470755916995813382919331475869897212016474236204911653698959230388887377705452393976467481719174312494266782868488706295183332489500278607968611425250652031375543612903057093610260490238633992473749712636091742420712136178002684008568447929804911970255496426816814624233964306790270452078318057516003573395164243483974694833530986834372413482153553910427533559338205277673035056221528292974102762694202489821098669133443669147547696662841573944011383200137384526201836040598713765466312629147322113851413218448463221811079945725946793559203223162454563946579463471650585052750856631377648106420056484615309642385566012890236084096514827799612376511453267418414500725300739478008890076638303344110351365620320954220746973406047440778928579728067784464766396733747830744723191995061256001430261677282928813217645896956647467375842057109525111977146590519967874468394551107053074500341410849510525624590026432737651320437067405916599130316981629513870697571691516290638449705461371481195689365210865384646352086406931714860386450981694556020741433495177013966152146612644022127276225732227368735756868555419189150098581980589471031025951803343430520000388692833261801643775265352428392783006091988281756604590370880758627077945693314031225582549272024514195049169378586417241088624830403745767250307432088036963164399261110798090696977367635335616898185822489178478815237820504425696119603694731695751120239207989210870607048542622259767046254270416935237702620993692008650263074754786140384606603370281290010319311500490055134134956798251224974355788246384527425523696115507058897544959003265460693922313779320630090913757176632562455582253320665699193336043305798350025194830305383626658236091590466545169972102288541679387588513949594272561477219860968920871515594218206634385948036154500605921862291085496310322527390896208068062365894452583918714985302421580640290142562345789318725259179904098618627430338562870459395633405491064781823377065375822447288147692753390638200543395924793038377276850905151878883585008828904619189601895470520219012056187513648340876046303262676207318763671061851969943421292125774885869120674805409863863081106581435707250709199715595116388766495162233109156692875190093622254305374489623934471151681645508166320825544446215425525825088917980016496780048260450097102867555832200703609867125787886467903571350825572000821036078657185748773315430366154765477598016668624137120108517912998992850392747928504851279876589614732639698322536290470664890749149615149236419817147943181438169717614020911568060080546030637739007177885724184186554808252051077949393131491447771847731008522860715952322979501791445025444993651530436611337658419302333844109569038864712055351335717884399427915517027942092738329409268737015316022621522038393645813719651415539157747631080276413793155800767822045317205384577728036469814832320237128324863429598261900738040046663685582443835459250373240772743940733435838886461518210856316421295385278814302608748130342490760153672450135558765531075119072015685332222650804889660720982040353167658146597014655799353837538629090261457231996853837469908511916902887142307461428088368965426792930724237540636535818473203332049385740249104960361779665870452475900346696927372990566272539979259114442390731148801829607346980090238567522874287280148760024640206962480154525492075108543152555140132511238074298721861812435240933935916894667128839908944262515578298861714066446728668533739736887534172335166422540496331007274381604966945647034854612156876221299370577986679402246968992028326960386607572559013594166880940653864633556824390525606695194430131326601734449250502911572955835679640740915216536874183273388925415944291573890627853589305146512228006950386424306395120328396226349669478891002559697757760962994499255836528439822971274600014356397240006810696784252604983231970605156591024799500865547816884984869364656876209721937355808677700745202072529140569097480451376484656100982527051894377838988479846984869908384153911198627262221721658126288593742712425509445382192958535932854076967561843901724823092701793456536677216785009918868315660322104956406961033083341195842258508480586190142652280795446106376011317672016206517890060367964045966880445738489354365547214807477839094862923087148961297659287439596875116180528440939018425338042246500063944018225240257496426884824364823200869503588846682878001692637305304713052924414287520478415102482198696859831797112390319484181496466527734854551992796758604635806987100043896586255206100844177457859349298839767450646209903772568051220339272759080103000126252871495254735801534928922297051804943096064188326351644870717626596709313436106219331956760893448268104670231410740423713587787648948104120916866801017099195181671591395553441986036353028174373761708903050472207141322098837280262378187012811587423950699860816189906264982974371646297921559843071569618349925089378738734430082435400157419497905491100979829934518743109834535198648160006978353902881313735196046578873337176967996464138345583458292480001468479248863543000806632777238537579127234746005442608046301686609085671830361164014438571130268018774895318981648749410909409835039290661731297051105658013294030116280738470480416717306149380620017071962498439630916802471368363997777892630892517362702976578047807568842419386943411126861204686040171104580056639529946788708022954565377085429898217422080088608811805010457400625230647195203988722139682639216287123179681487826878011242452408210086817119401541388370865639798185198047010307117334653932701410766010228931224733094039381199835534493955974994511645952567016693271786319186544782676474723373948126834703081252151490992729508662454047297231127567959622556605553473674431177018925759330511769741279059884328534898572327429607286053550161004867718304126490556739802743639194349839784392427366026668218528423627733954003802766116365241254948332718559249825563442298562030503427795865888470798034772141273955244535455744418303382657766802996027556910041198457869195481437799441008580554062074085838881693282717831411382193852806416840864746444175830708358274606893479217561602806340490068896993819674555594013577341245433272319668013834324074944335132601206421882454716642626350750219065749641661476411831567357547898396326966676156379703887652662592800060921277851314161906289962087690664717340511517907975172734593487032670092352898382318764486281122199187444521434526957473552512793404456127341045358690445221930851515416591439229661229799540437507272171014534766741306188858111227363444110256590787147539803545839647791166099013807307757594895720329686579951865251812129505046359918453830910699664928292589503354127671883172586391287693182107400851599903502863954775916451176351952259165682658580245772401404497622603910717120427606654395412284897586656891043369623895048642028598797434126909283311921974343091803579272695977521941256581426215993007414391389663379750225776684984500042788977993396067736823520720429284170632611678245923814200276527407500430076241286276325775064239516214741098189701394011319561773298015563362781828310310670142728438226620933962228670264656003545206561423980229685032618648034001578515606210729890669264670242543974298949093031393120349579051644533066542172198745972333746752023005077245538958765253172510372115140607985070350515391523061076693915819077894471140777199759800150360724591543160522799650131843415956630289104436739440828230751418128166141368562461308235648370764867293189160952756452824399161060633141260846485271939699665515392158226481567998993932583550528692323327260200085165887983913398877563796919538912215906999325946216300171926589692422549781788053105028038675356839733702666917070277996173922626458029297424109825181944659310175707992076465230081322960647952920183586398198576363205357554472017433204486763799119330026546136251005192249957083067435951474312489488797084808901722543975110244246385369437714476207796896785765408103289933114785586770597104660141930948736111561061095255239287800538254351505688948797313883328412683327515649432670938743097449277955916170819955228510673731706536813811144274919207942519978791871443917782859375559150976744470257273368850192784251262380337690123436701233875341335399357928498010608441323465190932254880359299832807910615429457235453068108971140143234924355256496969422743792530010288785289472056159689242924316757788475966943199876390099109320520073382610926772723587148114772807144579920444825942958959786136232168936021510764311415058033004659784961031868545523437061562057193356529088859964283367221219373761978515746994262143729668456934766629316224042643788765470676689101945571774030692372048086289828564233705027579628046035686334178300683096151439325668666500199809524263603065418934532117410683392175982004335712548007658629607136320267263882648211125271691109630304762741878517821898650312569262786758271177923545379564601485701295960451066765739449974246697872516203619234986648177186873120253157723972285174471314695820169924277586750384490372043717351025747239422074266763619899855065384258379393985241037238836031517766544313835889505984417246231659463940984230119836713775147016228456968682749034597726915038439326746677284645638912062599371467767620685881358292660349459106438161521729044820443880539905585073406787014738275493605985714322200537239282961325452385793412690955593655184100881124683059043111729557533845966549691424035204599783112123292143206761867892546834750639915524038761735134508044102910871364768115530109794775042108483649805073418655655487863159495027941575615367006495680990818852079215876926372382011997382634339518511323761385535661024988174784078283729884272340322861710396751921200006839045988564580070920892376630712744196759977559986269037166891809902835093498027769827645625337173849802083695657256547456502546742408364060961243231210763542046404265358928155885661559130006957261216713340024898165877994300482068436700148801585249866006900039018999596467040714672038489613635363664026018876995019733298901853941421526054024461299474796111355349573727281694536973360578721433469616600277021279097273648613027236772766950962361615115288135586872229834071224378358890145142035936229835013143908226268560814461299031947158730425909895756895326044628997846157749952363294910069338613387333747497217577287922787428366261090746826131534645341406201012920597075732356959137147298451205529972765969860865892566196529958711239464313495826518713619110073559205006209293002350835054921721009357611477047818335196629351642931412715111007205904315803058666401824530124806439877112266857505038374483713191195905534505895796062637950825549177254650963827761052947296590346622240310333459609656141118688487179278788714004994634431797050351214180267850494341741739270792608596280724438548177733327756503878715755941628607428144620787973858653151935285542670738896930191458247457481996916196968332315057903560366498265387308896070626252151132877447716488554783494165063269834480594100255915933790312648377390421049734891434057205526929016940949832973042258444121042490898188927691967123057525243248657772532686662556546300870990690916112164932452988960485061878438066626973814832156215672799222273591738266762334536294383979774326309774035878786795923249235055125104681108796322982894431629965550790612882963517811577792772049631389470300873537671624745872522612932709152991293005617477839588395243666253463097314109848351193011058914538273365553356693528456538525787858979211619231458166415183955038782144258914079080702175543545992428651546257287207711957247602031284846378286047399598478734180785118327815918991229078936531318449581622256654094522060216001218066871117613751538110324365903536896151834377286161415206188378243615742588272573951246846471067953542966760991349456913749906339174753761581924267902204037564314684047466844696786299402722486667954563656963805497604706779838505388448141846506250064501955639102841739856765778794330519691744528130245037826721508402717001363740778552222755749297992102756024877461171701353403266817548354678301486602302754631302945041977932655514847774882013846251949725299125914913232709648709097198666527853103378976112271332207086514355692460438515451837082421884315629359284945550154152946895373192882144062613017131540590624401125568817100161634742168267365880171112362171085101140860195451307956714490109865264062890234088996281107858781876734428439880801480876616198244052034611581699453451063212234976321313770985952863764527484517371111728848374408713517048884428676116077018125157584391844111074777426602264576648096306457104176592122310110924808749876414783465861632633840440000469350309547180457856991373548706765504456635108435101243354075889648457823813991215937832060255741939466682516554771469322378462257325274774606636044249471946647118730743473899585543362437940707696004239223080154059193203782174374056198532489363439118648138801010762960213808254205600191573264114198416350185573828510462799557338842838861178567402490694242384343603145319334117711151541957458466469187155662842348223067413313870168875995899574068155853027425659408717238522920141440423772854227580908209055763134660089644469261692545708768604755762783527513422577618573465754580218953466580327787624969710315490506824388978157661518854690325925625662542632359570729283835081783304755081895119146218590601979485475834520788896157633716772643451538414040956819417342499366002941840712401671425902764077797844952654911884388776785429147825575412261732024180161162049953738494309905616194802730061081092023460825830844075003957867086165210242142135563042554856673378143229614833623964279698471563830042665285726965268090036537707924094421944486785946030903346024022047748884754907304214861581307252388955441703025172073887639541843551501622911392685452585745764945078750388232060313448351734036655337698852360566766582311111278924594807893671176301828779411640091827352271134996076959615542218989689868607005668064280881674913333924560999913589237548660733168942519215629313975993948610990123305736953297074929259583027266901284045846005923018097329955891032680230467292152151852898839862362098303582264847596561680335946734263532555956993049068150029616841656284704013987024014350362294541720597432242573198282454745883341062299823947866161373368868132492491597898240346449105558676899648640499123580813754896524424593418452233066898680098421121422667913149025198066115941377416769007367408407434630593750709544509990548734122218125162077733022423778946806049639138663577401437616487356279641616950554669009798936172051377932612264152244849690235848400193336169502839848987840621229645208168680314269565724010403838808044549543526047777626671604723852205328465955941835298703783835425514017467730052805946344951827315512422873697475672152649833100803992367865698297340615620644212726091120393251904835295040345522534436998236146433816292195736004664472820646169807046590726112440662985961260783392281241601636483011713200268024059496685228455409589280487929749322228252888254964673382390967131297787952459733545098951780488523883979235932091445163536924210457101278271776385508593070123208326919332729876260429396379287800543722737971307125414812366807189421787748939134165085674972322842958408987548724622540421782240004021039647355001587286373762718528101196990249667775804614778270162599486499142829531799759025636265749001477611258610304448806561571509961932792073919749700015190034455467394057087647332497868813036109937182502314367229728756437015831956929761132856075929363031926774221342789345423266373576636823736811861500609257091761081579936942553494647341087163275129280644409380898066512449118613061947105361257840404404664997416858112285314526989192948883511812239469950430987663271864824227920632334899111765868426468082093166104407172199558649718698119005536294422725772438316233475533938325308222732461347635724519163725068846389280820410019268064711823158801191408976654208782559305166871984195746529290549184480010938850348688126057146168742140767358703688004282798661513710156949067884878651028199293035349723867843097410287852054196607089307187811200061477825435598951410409964425461211640346567247480262297838542379235046349256262555981647324566466679060727625656198071730928916188913538467423041150790232904188053394154705101296278167742974389538457207753110380596007585553173909328991689756108857339046928003047516580534895253465727610775023915163602773299925860295622800459294050881891849896430049454296717799104344052961439825596451954698703869028182787113012127525941090582844591526805652434567137312235699645342638150024574628557280012556194807842976005998810954855610967593085791165145267684112093747619821723870463981197600888020173182822748919827181225409725570373021467584185359866323479094060102554911152891942871212386547327061569059904144335396158849998045447209985149329127456093384029389296235237505267506253367068558680408887680280097214348630874160399292653496328590171645677387528623754379421737981975480694694675250477804525499189283340541682948199899911062879772287551142116468454613479562111084194025704159679919588106741192991412703435406553738712039961889666537726383333095977634412856264577335998514980803614622710684784403692693968410537545520669673033127410628969353661814828349117472913736266927942677039187777327937561585887283567265409243826658997609369998762269130707008045146556396030314475427705661208170104408630310389030979884752363253651398095725891024351595030583914175111882482602558616438866320016736634733149811390540337042359784077825873359489941318513487992391412450533537686100328568662291787823355417578231047457486887344367942131627918240582095013426835058512564551786134372418103992831638243157726478134160760749415342299732307400877803496780248024263170143696576883992019643042834423543331210967551474034558916242207573403538395698972010976694308774066875060787254921444148323275913182777677120008747601944994451627475645859793514897904204408082613333077796183050581587205385842108178103438662464332838580626762463304797775721106057667068673517751951553114805948270680495933847983109511909360593194076759201711094625813552054116691347224309268760702829958159885985049831105607784522449600646590086559739768452855944995492676424931580417938048542472910810024502173866284438934556988163300470045159982677047416133013958918061016001333916918567453072605827511717342123061498462614182561468605768312112332893155148346330912252825125654008768761189045391155224433135176171101310757526404476373697969425516829635320935395270611764045804943843105577664689795803378204405073133362649530759246085213520116796627701021312201393417966100012662187938073753946344028294984910328557099768110811032746813185099456558675750281478023411167272577079551865492044678136119571194499683618814021769041774557541810434717057769677314127614347021134859702413341908877470250002318308790147417155997669383404619201602879525210785661531988995746336439326632767985880160360154024372813182988626017558468270203365162215923554184861937135268985189020307577101733304755258621476122880836110787635765231637690874420221493760925007821565553832236117990844923812965737268637791348282082152278815841101676951127166223939016914779314001675952850814491328528769707639428348257763047557866124783526071109289706431911720602293422735061935366343055804908934949592834538644024752330723111866826368098366054453398793377657691949198903251672633608106554627560899034122035016670122981812150456155940266116351130603788334627658788081678605682652907934752024668917650062388910015924048579821846167691859390454974786550334785175795952176514308567836800078497548864068196781280156201323721957505953293701529805674277608692374495417884007110219267191375783262864503402573214889973133132208270434242105054335152694325677324622718081821822062225600366778281179750604404621450417392635791037958767142079532393333229370202011125889478902225018629355881696277469740888087439057868198079099426543855820866063283691494269506047876780422584937619138095826824665395901600154574199488624047999837358126390178916645312419434464093085259238051595261719307288043816454858290117908021139762666832660085643980867825024750546284381028943276592436555614307116228030181064652596525948565048993275857419992446052314423981014801751084151418875768575691740777556149689052373298685540954762673472418704430300848174709031665449262906215154977723451997196307194668120468981070593060200350098621214395962987071029057082122233831062875677816412764159688629383944637738450152938851047082195138083050756966955349162826107710142327650895185798130036846982817257711070935267221006310591198500691194935703135177032278990087429083435952847851931897258752682894278446631571776457800866259792939481875825671231538751997854673910972860658839275823573433457352970751121476731195271721031303479977810619307416443037391952956701763313122943469127039217584398590774998992008914830461460951042710963927474642419632361719762986246986898435816262721457005922392473096017630101572379295666334490701239605161609132682148721714829020428244582606535542491210475187055529333652760086984370880145027660740592599541523842491931148488053543546453713876356452399419576944982373588606465035896401121417609421961241024457461326668604258996074157848773200651249071159111120263479971998079872523400442878189171007406653149370577568828710665453879766020490307675541563889391701279484038144397257932132421765177408270262958930031741715003466962122574487184339927296953213078719340500726448439983748297823273917464170614765944362210177236441708736260593597041713502264814466392893131069980304553973666015306117892960829251433031724666485653929292945939945373172434892723642969239677862189288786540441345887524721036171921946227470471173148253347473644184396781260350864183989483770875043439599639431379060999558405443662933646316568176102809621727663181294149694145693682344118789913938076568875538530925905406362164109450878400671715965757835697553848222856292798672936181784954566583860997836519461121852615196429243077370708226088201254401591831963919559595301831615157719522232983903763939972054466344131348419626594862801355576488987505152072945463937813127217355804641839285888286151118366078632930331509157389059017475728049166917228574430626742336124858498526474285348671245819780093555534969756819258921213106155773095498927647379975544910554989156278720572271273405785614978165363072478022674997422008068596251797548264926116618513303918350924561808995601521575686998895798805267325297943318383751968895066141812537340076374773437614343178799640526638776631297672038464084580182288525799696525705644958005915578101908965015352037791482929425755048364379826856111009874186730037891266851235074492586453410437260989371850902030056628847815263080321984842766641696457353042070611259271642601780056253548661115599143879075194254623764276152372184015507030159002405342674345287551064876781068414146013951946873312940611463609532066876334459065235625871981473414355809196199239438602270806724496073963389908625131584445657860574015744754892715918217747654181889106877896747712542238466960063169535795867992266492192413193457799182842058400367549371146245217740866845103047546610381898650941825215842063447252714965478474806006032009672797721170689472861854058818517167723394522544239471644820219534273870390587316652708008853775157133758483074057458450662789241926657919562681015107432366684614065427931122603367053859184020862744226589833072885354614029910425170703341282126951565346737203538319744574539771767731819856505462561208454255035556335007754100604908051011721262409262042156027095536786039154201891172147265562753557310043531359327031642594214549659168338852147121512779285978209175385891554314203060738926048489138505625254665124180208620001058865121505401158264238354660563011332372408324693306072732015562656887792505093480969573213009637440013061799863431413047694767329077726746579119485139855685792899762561869846777134984913982115114234574896170447854403102596412925063047019511141196579726949678036258926942920869999254174814969372853894719681715646222288783567365187482604771846357002919607359444115853795366999758397688036774154312920301232001663491344620960553013060973387044679608551966033687670628217546187287100415820625922152059995129167693955151383474242312377717305646949018589557428084478915839763371609504606743464556614191926062326237665696580230183589203658409767893063374612405339321131033960076487295829226423199657067588491333362579093178346499265207411454857136630463854060416412735890798548921288474568185408626803321519101778242159731690102188539717806058034538014605958533187302591475286675521462322815242796228086700999681277533284371055960697784731453431320820630126784665990020587784299917471679804136977583929585157315940836216333519922957284445403882246352458604372441623865896888760612265959825157312608780014459352024095018521177814218542234229933419184044044467319119675930783393689628207301739416029832743150034661855569462678229632009353302898310845693059038468568125928514970610764204691600907735969919678994047785584916213425919724700112677936140697401698636829646986321447745529819786183124297930815887779784953032439530302947604852724758129131412733750003997423461472988290296048998539013993534441513361936060886657852700627900099817641610516391167964178148211151797920789567553033094456773354219897134322015409404525462299149055006659291990727247811587758898468587122610910088021351642578655126147972926092062769736522725843761889565063448528318958486213488801838152273411899666005477382790806611205217633214929226848901938408558195666520464360232491188348748892228568823034825331945252802559740847621349920698543195026310771089753080740450313969366003924543289792191297976903010215245343843113697971901915895278505375754229107793857321202390053874385204594762485168201013874953862583165324952862878204328056876341212928055848184740669276908159369256447495141969310837842693579544445876969661300384248108281646024426237862817142878876150116245649349959922394343603091050099755926036917281959481255770355632826007095129021578741317910808597620839992605365164314677768758372874941482412766381239208806494398192207853975180723384754059456134421293320527147746801487136164268024289512430167870279813633814828461199463084413319713390094503281180852127318007547168423897349437439055681506128121165522696251229936581464714524574736594552731190618454710643345900708378794966096391554742077272544161073402383307813377484400466029373898649024073694991890244464151971120880620061200850663745671188745969692561858613201874048287757159986646045995835712614657083872234363102747844745843684755434154133709666688414863174064471295397238230242437354014401198989734337077759656115520547231467736236675429076802696096800699644729410091131978245252353880450262335024112078698547622391402308110059472315673529665246598593069769605480545201735703195180056305966785323079957764703896106716561614128201849347109388837740084459524712739252755083003154616625483420683418935019432671241076085099123176281766170667496951894594091022529264840346961724799451057441113352198569197476326503406827971008078080181205927294124001958088031648402481786827884357313057646619370088967674499448876281000750442059420958696096327986966056562124006341809426876953020380222343123115450899285549648560222871743837611909145108006648730852819110357666123472875177464539310377134257330483122744055804005269085613217129900370388351485302937873519726202768079933931054227756629936380303785899679308230592604992157182727540047884014338093839490116896451506913400584173168880446587264253235381132568043266279846305498983865467758085716610254698950123520863303422388891108625642387323329369267042729483223933089473930078107555622485208135147870982117224157728867185306941058622192770460965839344458428662159796682379158804753375782999848638450983275017643026293507260104137666817370167991027881852443702286746514460748714725263630708998333349047313179454817325831870623375257970855626331768468251606996957097432564454972720450317318014922245138851208312708608539380411400348995291253136667181205939978576514162348239568770873231771973597740948743486171115284616250874096712664703213133454216693210558886907243296995185723282312053712556723389059699599330422985377301816553487050833779426454438566734603950996613987231012350444500907262348666375007102334627653736302912932694833340282715932015137487361229230923235552956628813621216808345673737551443817253277957096396737447258268370151902669116793825282799996309888075593365132728677502391058717275614087277494738672406427112729035779955483295029024899355357214062334629892979170929310294770696775438225160171985274343670777441656435411272542734004023304655475681131871501273486487021505377999051403051280736825673509736752331621483255487059107245871959659692682460320624689112807097958887089285900241288421097733132539635148249530295000310933715581483665124837863223576003514166566840704255222398280524254394388375901005518843152679027536802236726215836958086456275841632199434025735770809168623760891937189831897308948443775470150956271988344553842741187073795484135194327144189559931950289870850983646684019176089485603454612227856549255641134338572114219077591667436789168186108343522857865577058479741914436577506478911665658890192805140060623585770899822447063025876229274811188600653984363985750423103202450118447163456008730170421704557388120675678676058294477307337764168034209132214776464780371636168034851516314643728723124758372713938922281389980908414850987999560589210977461848763766646427489821650557289322858934018376637971010511333319965508694806791324137405349876718425437055798231421327157924350253357747406611003288550875991198790778775387399830961630152423704623732782475282925625828075051584274236175393404683124771531891344651165819934442060718688721075503853159418152818662611614506588382899189297411726431553342605379222581410641585160140973768986164226795163710803642796835393980727806084373936865614969722823573256013922201166604261775840267435130364083492316693429813644294802893449979684807855304336476058472567062200369687733629719894275181372834508860290494296550505915321701743932942650064796277793373821352250662379951754386510519141507652027924863391713707669411965297011373833257031199436953184184891280392793095946972266392843056790780984200023317636923144155567297449081693429613049120101683955359036212020390024662649210139922586737531025710307949289685021339381210881275520150329660290454867513453744788684098621384788031509483935115376664258079650689257106340188147886535591376599826116968124328581497706140559329061796669941334356964534225245202736081474920720813990048452810911214690103612988410279944218491361213822691563310213278518930931713113540832126364839812699784273445813839320218825034093720516965028948341955180308603310998413650340517414208146468658879234949505132754724051316859711757608398449792494528049884949002898361776854420064909519911305711478301282631173996861370815443746203796676300044436087222694856510205632445568844534000106991204640368403255845687172772279522061442430479068843320150086958673353870603881866929832230948806029207061442539179199336702827406586380714861613438962343106098690664517051048079040338265026102624836113690213881164014275924016491774683249128868420439739014148331809958982771785226995104109550993825398144573850038718580580174309038543221810695219376379517416198963212617099400356687069326971821101699730515387366581604659572397187081922457918015689470570844933855360619875199216207507622949902348567778888299483674475854268115934903426389437382068545138062629767218650514645128076762056251511305099074502956022382873172745493551274344139533742216558826603524617575010055533561363797980631796995574728034319528063953693715354329312141215545214883823702888552221854724293197543156370567169677056242145062958395700613572122754019915971219810017945895229597334004069612560477882678121692324022046575338990679589456396721816048701571625919040484877322034528947352286903165909946486710345488945211099011237266208001378963834273437004105127525783451302784012482900717191102329887276648582831195973615775002483651799440174934762439487598619845551279320900978996269468238112454269017665108962126415838793945975920243043028214817118983991726420367393116215993749040222654014327780353069708081006101733258972054827048451471735447122127888765387467040731948423887787805786020666278532814006225466512239003949094927625726019134079907692485452472276671413885751556628478182830118845271587860043523920587782300933712529577298103020354568359256025848942940546739087110649115828451742815860830769525763353125444369192538966592723752946211445283623932514778697630061348215251828202168280498149625798938225334726789010567578295247373001876011228500521396998369011253340608732597321293091082473407654347251378169157150707431425613059567556637130921290949109704837016150015540776038700282332748382348446945371058732660951572349284559733249209311540652861877697621979306287117128903203144186975100388854415567781152315814521184763495617996652719215578074116941596715219341929769811574951733224597362178820713158118318176504730351954941684411864558690845255700713320198121017299880227082349949980971990398185840696467578135004253294152297500284927947464845022215511884584463041858391558351982156874533549501230060978343945196082634419415260164001406975611172497351771114317473643946070171341022528058650373133446281087760173330683063523016460871426869790438761970837372581121561382911868900232114687591717031991585003503801651894290694651555314870009013051267923534662780523809870988592318264836229837138717097489249407601542600702439078711840726119377518652343169676526425435041098554219204238203819570579158986629734703809749647951789827459266635028716355115207581708529353165445026046399013803395245628328966687570995260633930004826641369772965714520010030736603921149519595282372433892594583512734564852940978111539147291535983179130091111004591285851980885600660801206293792353957468735997643105740640563323654899546313394233550505292813426854738454056349088377720056505142617198937905220655367678536426540215017064113705264304108394452960182287507042439710335884516401263477197962778714089426592857797504360131470922057194090459762168098772538248121976964252103443310203171624066316687671164270667765552168314630845479185485240668512362238381201674907294856248816999705097881221332721107872125907142209664234123120502758475719046998445694912018587440676126703671148801902823130883732108077774528197097890378406971034412511978911603732354109866337891390963423363279532835007333778514644138220584774702997497989472894846609082190046631037724374261230313549446926090945230898041378599616578898586080763157063575610467338550559559964700196851111225125115467256237900278765619059656624600994656693353674521872049442709199049116399772319343037046638327560546494646327722841889842768287700129038482235133486241520701149502842023199381452880381259007449434822538664165412460849864753631303126010847803415389141059968314919299404623272165234250449778676009561547789042370407351759221148619522213108791638909357597242823277526040710674086892489279003565005556838725693478262544340072564470677289154074589906597398284634617403521048923558330554786730593020486417446237866396193915427854815676106842838301355475350148968304789177592879517922464902951130266602737211830647040471025413313169691946452712647354720672925075387436298676867877333411843238014054027171067817686024199641222355393273962839495947312431119895268301091012155011569062198618754564884652306837755967671928304615333193409786236618500130805405755300516172827073977498763274136118886711010904653655757787308961624780589464708181068409494751180351994733735781484895062502866200765259375331611457827025125048692170535607235112119199723878132375084554382979093913071014393256609843689967694341805115622833706023265054177718935340674421981760023847842884212395855758123151736432407644715451814306849371925666077400596645364269273471519684725877397446233003121541390201840521717782829460868847809114669520543196643967305555892078317025905567077769836235088187646644822886439997100858577532493944157920505875459067611945466583548435289595259742375478736527547629010162106930836945295083386829864912510859041073754833795238060424833475267089524693435003135624285392710173576338479005663572327943223786460024902932362404957933826536242213690952012778859540638069521232798597584136052194447700852418567144071275012147805419196842912970850429656016177815021329706046693716946400048394573533423091551694192000904091271028054878947253573925965316347345445571941652790484879252975439767827159392494857805692149851189622634885517895277267782168187447150228896087629301037616774317420277977664336915383185590148452376473580699014673688500100555391854601572266613592925256456194555123816987157739851143770347107052905783458757647316324456844911137344061939651855576337894312465319324865577992831382180997284986678302211065213901989253792829331778384685010076907624280640584701183581547546855165817462757406519568764761638793995338744037091575041397674004437513553126209379157596135519260996404350450455118601517712232895877595074484537075046181089755673482292344402171426983881968847625636046296139045097160487138417079200546433211116471321333578349740436039799451587814004550062080363652845113986473147008099821554250336627492063497653560501991196718336498227969862517611083143316240154891293631776075639157185935460952582566919932888614690642535079274811306836712457667547271346220724084151009638399930162956202385097355219022198063327535656358415699767817932978823587637723320174817040228427187212721939833627048920400874340599535262457135045697662540680163709296268295854949856685746482831136860195763610930052284766263188936088887253098866795890499838753123387174119694280693384115632136743939283103545036464392580788658438463265242314429069113374944137892631702502525175468413091068071721687245515679089406688900372905949896464291107026429686510967638939103695616449875534562886443383616523338908417362973756872643091489447501830159444490369587140865146817465555524391064579640538471634718156602948127024186969523313075615651028451608705644523106601499296066775355102752800738366386268091451495135698826583718572972968177346482716352466271501865563031396636783075520790322130953431662288675861989255050298646919626244695425299270234151316119157672784515522311027895346978616113469927796095039268599338001108688609212724454776346108834659690381745014622416657069005229875278687914566133000595031109342679443408952857510858456863581145686490183390278152997681484096449064136298306276844493603422302110036560239362440532613989612631328284540660243256633572247035449270635477638691966817747368960339192353462772874242067833428418559034992882538051795164841850878511140636314562202114841555451093532487401383611353798298869226946235484267902331320237357707162859764136260576469509635203014525981895612883540298350904654643449355140412207022031237568132433050552249693304375466421290114556682520676740257836007371877955166854013923158855721135039755199474715690270953837111254360794631701496641838531652179777734591993876379933717461056431259521826933140227007514274501219167407044622428258819169985046861652847159213137588972583631892941162675258022123836535824833476237239678832820808738187497115468647483524197843644279472603122780192324032418681940621802825108663027169937000148597906150615414495533910544867434595584219301219731393763208139806596901713717924450008226240575765202583202546989410477036299675025195304541451696231795035596098765712685802767099265806940615281665994192903152450105106666419906039707106578512029061544502526087028304664819439607973574772709193037530505635016435540552079500509839647586571694738802237544679914288741151817731209630665191041295308379108104418336598926155240258677441994810735717340770196046186983587863925958202693733185157750148941210182742535834966577858049858761392192200020348740372915309188064142763080304855490736585721744639128512141956558824271624068744743057492176525918370133099968340526127610755165536884412478255278056278537998555906462297669702504946615367049470576517101024283159688034283365582360481808388994213371104669401456043406874084525643656077366142191686287522561326444431853995877081048631364909380078012948806200554645740569286119941352587373195738924689623962781662424587637829066413740150551917405063629663583070178608009006505940247730819858075645786622668775042888520414298446834009129927659660416385905302852390096476334539249715260566380101917972942712139486193087675881121754044551382324500907627657024169930428625458699176993922290855835771428528677630915511014620091400594566585293928317753208846465356675420910738045864679792457849115671732455102412353346438241862933227811275264572924069607207869831873424259205636874433417500120366664852758572209165420748747512451572126645584128102520038861677478302662537984801944653264664966170362843611607518778100256985519751186435743736950383467148399261545363656648014408974155627040948571958005768293547700218935806273254975249775836140850321297791383719694597260829131952641513490292691149341715330267654014417678635227086564388582347929537042355345999555035218451163138354375662787520979232945042472879031002475622035531779784044558333545556480531871846461418095444732171850464772956803843243548808004662141242226904364576920718952129234435409919126570411874367740517077466643542720010609732423006170005762725362187893948867192600551340744099604966374820349665893956894151179446406204553467433192767006517648118874813857245199242702399723954434845005009813307677956420952357606046811129635025466309355429067386645428419944773302371691826523459226336369990626295671964420743086153264238567088783522970791014916578785238802951435259425344375765326868822126928230681878599383255438090439082279810499968895300617588775461942220944541094636273150015003815034752657474037488068754845954564826744124649976182667136727169952104654382103298418947864980968697510246860471463964126521388605186234216623110728920585400329558500861095901489601195867844296889176040073011599765124250298142029127858329405379513570286932167298333279802860029703439987887522124889168104759819487372276543772623148676747287921456619738802722797655947598806665511798351463347663055957165465868646224321809622303834932231289181349480266829590038813684646579450943859298983436950194658974533604809562742093946451012934338462917320933463282397582350546054008252700040109666387571660936337570508718452018787933759904415679145028381899817591124014843372773796800058222950925172799481349344575999491209960038465831161332911204959049386676919340331262079897528478520384136503499261412315269276625998032195782171642779326293749052332970599900900473829779423578749730903029021882493237545034223753607530402989547170794034633807149361630991639367584960931787423256799213758338178587290734379561737553636500410392953852128458613031038685801566478094785215290749583029012311191305221159720179993827448180006803387014549299100077240104753807507039764332248708936525932954435842691155114880200252769209673934934713043924826433252122071929083889963358377933540065986597718712950882575793674832710978271413802022660370041341778876556820964953476015358287002443021602354746704311954116953641547940456570050946262085522719144451220610757096421820660381409423559610997682548162051687844892763017042916467933701348253234497812838113496045439465383588502083220942272625194130242400348700845045400804807168670246663758869681428549813338672131546781815001919874560186189011066664509375193356663709309256278374745667148464803674822021368091581755555245932168188589431414517239185937949648045772201637856467570179011611507649777000004808799767688290524797802733923274285652964210223426034798983685905254697334796112584691568303340883917435779208757826441187029258654666847902277889752389783324825443830704993240261501531831292430974177493289546476825041181829398766466835047134847645879772727328402668297821906718977407646714399129031220248043250774146642658145758074857060387944399739078728677498153989016132144088735243823375822326764715071219639186168434999856454754331122021717306954095143956114841316686085159748503914015898296594051789441561454905812913435159251556433440980610819738494212333030207878430788814337057924935226478883944446111186705849324159765104480483672135678454724769136823964462974891369710904178009304777552594618607057472924416087843807797810795900327573407964930428513671828490184035641176967385768714848491985424296772395651558862605585211810965041185016131089077771737473869302751331495362105282081405821969597486417969528926400262281425204081777067564700883313132223831404153769989081640451674756774527590697938475721932188212812192587048061546293880685139303809609402704311428273615069353352793742509893836701402733954054512900853586560328922427281647469376696488312332262513816278514424142611498599238600615862844170524631624910808082187685373642260732115804630180425357907288274867073112148985903631281885632498542855026445501840479735255925328818134482652661484996498554008894991505967461881348637261726818513013597788654855333433590803765222324367137096506719735999642922338577597393665237032396288639416964754270509139954573676180913854007785814344439830167609575327861288122842924938042410947807603433421469590398612173531329895506762048747807098348249101746424248707459824413418826552714343670812233005991898854948202479034643808592895505909424266411124517499048228773213062355615717338839504117113573413696688327980769887341332830824970553802497468845259739201717624304194652407496020301376212837805065991007063055214071154472386010262003087941274117671993104904334517883623438313565339300849744430419252877992908685901492408027300300818827054919217630101721300350688237686009853682090742928808747169131811274576071109057561398163874139290731167400834668212621812482842780900919090486363916285520281943940247576661085900330532520641681955974045556477763994579532324246180432339163483426455088217194420577786078872541541057896388675561738602819229799035197137142161054167867501898219924530653832887840973018753195231389379266922629204759843452999664281118645736455115540342992784359229261280071715771647009189122777887118726728149707319179807255343877780099147650553996137383759567179175529175279149101750631625336811944382770323555743462713634857207011068892684082812334990052356814030246204092525457719579846446810978633643582579346474669436749994897684091949601827472100071961329429018764492220110915768564607057084842343172245350520747376398409003049558956129946999013782009079453491382208565713566345329514381000699372561049574510138043302296679549070511556569254163343577633637031981037901468285435537666268339498487460349179188053576475195270210449560111407613324948742064970703492195008714455406007830246006660288541267023156401296918963404923715582236847639147963688937478037132247861309434082279224996065241975392014680246685754976098251794095809329950198107018142979034839867510699851520177334944082699289344069493345323783345426905831748075594226214557677452462530698619573571140978641697198703151018726676911698311179822169192320497852840476064420739550670831052740368512074136317464673919779085186651278873803933535817364082270934495178982894526361972695561324184486554726453056761434853612905396084113128907661173693798593359266971404044828365102853166695610263954220508566655796836257948449276779083061448649435946276057797337313582365407001602165706059451511632223888164703128666614639679480747029579757776294536696084851140259731794192799111115410181302610313185537122584820525796763797161540225627812237288726020585468782742884494319518283156239229636911199166856815328375355108497126943161247136568413457222538306257007785257106398900440141620407008888397859892911806908048752340430375625250100943146621054434972641200478767471932927845096119098478992905116445039120911780088389452285154065837412925858868433897993610365905615659682169515954909060021153604596757199324838663789035977111782059584986974248805184152330688092535109291065356580961978309479096786072820288591782389923867465950861744501129671341339641640270067326981838397035772411805806832375329975404967806961872032431333874175022996076536351820259409734222688109674327616305919935555711518353017569410977204611024615728767600128988607716689334561107879108541239490007985484531416664219607719201657048076198031957361685023822820183917752535562108156241150940032445799942770093973246200567089985031775568464773437405478362783653295492564878154789645034181340819217674841398899302484710320437367043332149812842741237373791918213413074931450253241732024827915663804727217874087990342129294945096501888036267521105712134300064280750868936409027424299645507240350826369291415737249226991144067244959847890038319216921526069018424476263528588253854191755609761236913103458440608660928204226275065303429313236154584216235579179533297388939245152814899366223213758254723198632726301020811717494178915396310907990175164441338528117200403997712648066935477830491169403139108751818470888438663292119525260035669549489405113173194667179525057353185787689408202506163764116630893311794857089909078312661829690047113492915749450045947342704406079886465956711460581028372780348684074003875232050048125933292146955682003798218641768509737328642389812069343920762272298859761878309623673345699726720115638257466128751919810158155192599060950340610462214483294300720756473483932428247805673210166799692055905110355545660893643744117127681951346673855998040235690436354681959587082953616005174985336433462251000916627764060624393184710817534376511021976004549581822993772082606704347724324697743481421102686923657087727122948248328481959311053614199725217729498945944658106763398455849580091591209056167297564661874046812784834175228700512853229456918138243349986487313225880758826127196133554662137112660604432504529847006418130273900963073829760963865507515477443308950442466092824478347689377108637959659598234431130483492616442106020739604038460103035354980885376131861353470557516888554335107932897298474017493113940395756740197302544511287307446803873421926343944570329987684822980694931360091620080392682918293435054034871388296361221124324183641782232392779204761726194221980336167929638748551401781194703017045782152979084210708253710075312387450899016530570003648168627383197774947753637115057401811081893855940558508515613998501951713024175621527186285230597430637310076777271363461100168391697075487690018877310798746973144011513075325617998561511404246427281816075033825305166011494226166650823709413885797816440206357780154337205037559680061859228808094613027819516744126623893807354091146683376239063956348696739292727594090744047127594014512400447302896570625002288034007564571197756749344339065003773805618294272955447374677439692293654193144117938486883515033381314575893101380775163068199468471376555568930102557561186081499852687528537532574172485843953859230168638729461139296985313925828756595258899650975310924523258947382584592236482475416248133618190860878023102406839666746820196631553403749751930402665924275565557464378928831067660209786766202350517881803836192901669259390329038123445280069802629516540217143380454029296984607787252264842105035077846426426373026418487738432375722359128179145707261436907457278242495877745213276125420462438872090543738224960714393048669227202228987293116351314200398598098049927994402193411270681667518109607523707199093983708337373090217834625632348904652778828454236022364546843229740683983159467469525449292879120313104112283090096687753369439118972106752707135065777259653406062043087653959155283174956577379724389504781944921309057150626190856399354819575355944301657498121070980842488064865973751497662814484911899611395933163998357763409118784819784555017990719811877206493881748024260040930721104676223766641560020618010392017351823732254762664098010742827188634191743672264540030690233811089892468725304063896881906745843860447775270782199924480280758449611179709807539387548139297380194188994443918667325444837888922265868393961513270815632952492315655693308537711894083856859510945943634337145494348675071807575096464507787402877636924759937813755828178798542993669686868333748840475970280403356962407809373912128901676499801494572438211131763663220073128570679497966512039060018159510739942590893083282662996078517691209521266126828103740578651575058163900646301490209547552323284373200982864065992461124173642477415259060628032651664076673977120417172813928767279780362662478005593026105457240823961194193632475587138453988227205475437184129613750269825890267225009991686914216138397418420255178213346199802955948761323655771267965870966484589870283894197140519740848868380103158166468095744802341171411607715275719560424401535286819643557478480258700943217582523010923106296529665756618056972600687674883032609131183849414132166920906152039368151240033496138115798227881845617281284096451504598421407981690292746702695748703876328054243510572509416300954133611706305472273139733802117046623884254528607840404477201735334469083185559544279744934203196963487007331760794466201951856261071395522237740227122818883430680002009484432480179844068734398338793584242898699473175031491052813372741780415169116931919876821045238205022054606228475026188829210681635406661273960960946148505822080393276546858777169129548773304843535004596090656131209575851901401610411383201119293762083400148101006909927752204786243070301751149679624606345105514366677399438911858578152543835439856401507333757853592976081389233547021564109301440008900291860508503628070472542043330162991223210735257816895927111593723136363368222424291018921574124384746852263314114169546880900445969223764412358913268838365545027468436874627384879897930723413503992328189063416551106680270295108427008205656975750364970266425790696897333146549117429491890864654354539279164292681526881140454780844530795049528827619007641787096259036779610744262470678209126401666673434318353669949003428169597440203893733449748086750421131879968831244199933268765400410720295169408387643834375156995811840061437852784163700133547523113956417112081304895567417343441367361940917451937417258243986881637462568010654926644813244296046240803294456723387681214947711764219397763080648403705778108399940685935303016849998396199136448143589284583988518526172941653590860775339226607569063303974310824238286906250216202750480619572632364673402534915826864726254597326608287655014238865987730371881654837950029403425179355655241097759059154051563201093178272452858981905186448366655667688068608432332845024326643395885928623591253401755930965959481483792969507582053608725383833567428459091317127356738283464882696836749282219297555481393508667738421382130459697369299482622950853638133597692660442606879459634933024553885388882522755210933409910138413406664393695871035057831200229863701529786983193628487239154763907484886062959483853299278668852428247290070552647164531216349341443066045912274940884606860395673980570380914415534534928923020878006334726383148317801213205704259274569872074298629424328099441252879799326786137475701533125400333337405967468644402062927312641139374908680765135827304794208307514562473342308812655541234288195890981381292408948677935537420738833932573563880100623183638496680368158484689523299301145894862297695198844219629653451117251448252795484899659579221817278655861915261794927209830473106748973177386159895021523643204422286736849676697730209960799530296951472364299686266239644895763019492430369896648675860336691084226781323836954434197629500228347837375200605424111394684693355944796428738541713866201575345859986740824893426965400772227491416953280649119822449151401010578204546064419508094516985212196578223098265736205654647866284532347537867048055601467749364860132706775493104506421150171917722676104672800403043667965779161382498748646584953229744998129899234918633654980985173662761975680615581952925108863205660483375193357253902385833896572042600789645267813131325388440455221067682999659010556578402945775278725076049051169173278424223908310196399516583532000590478625363786029176428688093696077625084709033850164926501864672144339763862170178137246481893339356190725609204593604378500752899379971109890484942973760936231653037776429168124436603268974524091898904479116589226898269412302127493546543733047976167123784554551398941653001853386496141616587382053000476972423975993547550453482866244310858436984800641124532208951129676918353393136877875094730557254676531702260683150981861627199744849591914518305621051205818429903293299761020561323122339529333597914967617620811316954486722529466091004475128387652260331849871582522182324841126980231440850305452593021633545979813401109967383365123299654461299856836683158417176475118173347443800319842969497643355350905413223992343059604171828165316660707786554647584910211091718012616631988792274113586772673828771075347152643187101076790893478394953634046767964589943724294220990670485272740418632978810724528933374525542257752774780882203322613889887549297421508350371298630308816269115555061434852714418258232362628289236638269220449962214699319646516444653075955788590238757076881535308146354183549215011787303325734850897253598362437422695056351256187837022149883207795068831981057583312181060803437703272027393929317453698059515450627732380649330138174633782167389000730977600653964976751383233850362580161502071180302780309931423855202270089709249244284017322988456611902433468543393391163487981971431159337944935919192665138649120982254941488676054813682810003348421851319271630050900144970136435259873255826939436705449366611718296990477179165018820847568436463498456805390889139861483170746491021496779245770203157066800922075673415830303799224598078740537161348809694530722334922780740753805028953110062465988141631459698593817101444282384893390423335105771289170733843789632705036251741019840794666812804073181982712905136009335078205689665199551112123727161750504191012033264771668974469150175406250867689402324366929125845854185219044644544416130463543776166648710132848247991599322739592297203547612617899817042674537206174727766413016582964084327941225441824225488360297859775562508024758107158744481397218989463286002472745306336028323308940489438025488347637101320939648949883648228279478346579775525865779889138730403420999492266214451163220707622174028142856460171936657763107993811836377750553718058477700751379063432501458161598206566313116464944683282981433496347777696332085997549937891399656906753843204531290866384878666885575426522660474526554874378802508451832919772510351336105719585308352585035547570801582882053831713203860814895188631926090199599756420968631060447102943197022328483778808088964812138849499715811363353957734055654145247149141477374583688969808694351500277244034111272907304310417076723522642290282432574572249306442265292139915836741303675779100566102239592264909822858002700572416886793979941235981408462912234372288552137860345238214688478235261652030980686460329941893722460102753466338711466658012077648220257642748742787048099951738244169589900428334523795608471592445727880920898350231982190278147238182937718902645497617628788518151945045555044402873883862400415250474473997923139162269739390262313746065492275431053081717363318647696618421179430733323093914529034812887428712820289504153228758522936924875444161516773958344732599738257567331878866098862923904195825737801537875217617739057166380936776795881119779550430716944977970670695527940494421582350329087672477660617960707791887214797606107373878264427077650632520288203646005704527682387346553442910636840967214676422436575777964075209626142572463676800316386602653770999837142781709622998950296753076920735547274413639104767200512053752552181092032492066346370134169696011018638913706090895124645023440313686757779543388855765582580424357321660572381716399727058004199736553492312311568987062789557863918733172408681789039968920291377242606307640555518858599804687191132602839494897163369035441288461775935206575791350355707400969086360257400429695661479773152583464169852500356324072741983793866414429424378512640764793530994908866235496457969016524365297771909419801441630003277425026098739583618906978676765723167398794586787177575776531143602354780626961881446471487109685470014627340895156858384370655118536575842758721441066049460904053367789821671771975980290799158793103551538692242793031327360293923358214100381562851036646859913812199023632996305623147031788623523527656285215783762839563573702274328001390488058354658898306510280537521144259085417254873002108418423490542303605522683620968979163519437078694758322132478107178703702612969029019865301699929034035104533893353414652171893595426945185719117493694869606525779012746796742652476905453115620587895039137627115592294042388612126498387023548800570286820020771077614755857244952198448557523619202588703045874714289335615754019595593778170820237441286264861006713348913465850823234660032670171988472587939463283908952733439990251108580683875046407790276938098257845858640980432564166828300098639272349496571064346301434610098072095212630791475793187572772756580362130594221725132077638601461784449937165668398744188864591995006754828548408341704467797096896997200163251246881592528024728503095225324409551536239667781865549193637199349160898599357499844665287277030811424495860609373376484799183136927938902688202004333023397078094088749528518959674539232990838830047801353493292589043608081910382825777999932579335180853972729264531466722622345985326360415478003931727781572655188235666882878588230881753332607794812692592620604164811444023395933051908591611926397615836805805952378632273772392690593788215341809576170948155436796649686056131064147333102925432106426734742559850121564320329455670570665215483712336772899879869005918598326797072806625390103093600789617445464988840073198334676007508455553102095212154856320265631692753083797876209023363521737603482782695016063192306096300414434425371334401388970196819329292465659195332148843410766823563832476435550710756319707279955370843648702580436564272326015913960464307956018736360118581757448537966785383465652619153602744707265643785691601894736834638992728989276525042456212346256433194705872190251876875793475734684436083550270156383918084537576108941240844289780140968381089106203880565491919979916730757426027467303377302623147070933745876205981365345009752639374679245491239142084990721613841090353355305242800334584729955382589126105465324580059977083627430636462720647426777641619743672470335823144931500500975154217147928936843546115364431102103323039805572734462184326921840796539588265664556104217960845204597476992215531112604951900811375541584233597286993385007581063230813152665635530949115844018985940051159921362609249306637398716223711420632962716644900374441647960850075539024295846189066607244175247856535061016096829186751100107456457773197329546747693706851932390203227842101831043464092114783680214271926969553516848744967974779321342064578100567610959626982763562459551124584245249932413903663906642585948728895591444377585599627958239306253962288668623650342985267792511349971841216949691910161870124944703598599408872981941807969869280470499231448279248786445008224549417859207110024798087696412669444097747078925134432749778297563011286179393868680065626669361269868730906276089754434668390902598014480375650251047990239431059386655274742065480725144393058822607180092944869445305861089861975550389800822981254489483189948467672732390340298901143849717727542906322991025431047172864532844672929396167662284302105103687971984029759613388545899245153729435851427392091263645262442252352359786360987855468091196789175975904504269830725784543912054082466360809927804390935838334332908038669482233117049983506942266022300976266560942207826510070304706588728738392802712631713191800935295080163579221691861720779146845407209430937830722229894733129452503615866965144103371593195933611296236457936021350893579206085356326565574865473248017623854811544475067131735470924791808098739595711723101012257774088449669060832212397486461744680647162257608663638853823128602056036317805362135101534444074429085062640465833878367186472369995418598382403920507130206067400238132403691339695043180632894496467991374889239567610478584926459648373963840347390265448229134395535520874073932883185833206606876487685491836878081157525262737738341754733486942933301376949079707251724904971143279121778119116024876649467096251452817209936781717553184374694839152238307818600474466156932608054356294090149648958023623460962508233115279447958105092156594275459313033680239959394009447340686045515256089952125912494522944026091274944643899684837908143263416101232060175331769367820209387016486995823345727214123993331194925162929776652563831580433154944317647470347365226234962145202071596054695250342874546552942140543798886143753548236718813086578572495167716112704481872510928754782638505043722902482032857185831167468712292274840788386047910271048118777653261699201924959411491135119755474092881762160827024752737949803423151696956970525018319668454524048129635858799743390455454635131108926159968607744804785170119054408402958819900808854103994707679794129043169220458157151753140104402653948283107421813754157920850191132216090790416782918460334502198723476878464146202546101911945090167472297837556896913147095436619696969723693634065334872430680778892106262243739738169874155660861245999864768314263251799859270254465715763373345024861262912326021521943116081695149839114274988204761775877379717728794795426692848834767353586607967377223800593460430776681284627703990757702337239834422463536269382838508480407277557434821329869450689341238610564501344861512397321366491145234991993841924318651240711742334101331265066891188293551182795686719678758381220582719104291936678616037197168397393619871487652395663287714016329429641770039412808137537132372802572203433782943966584742661661051044456577405163307111161980747606672241020060174056106315313604170192878618147194599911995459979363659164738258187517954160025012587211261727488539236071838818730642820168067607375443888395447895838114283521790004895849924541468691707977116351612049603900487342115596791192120070199756520651262578475197519622973467479239033437794993539144337291062316803475603474920203592883612077540611591518990220538971222674145171605420827641268901663430025558956076372757201028746227822542695955857687750184159755181858090833737930283905775769550248911657697323873114057016583505592413549249039399367298657601365752242706743343416330722924937924559147256357131767139366044559401685210493849403021012786899176552913742599773062175708344665744961923229591600071684270737135853980453622353658797800212263572973889807240914992696481981357718577553787216884911292605452567934466819274131251221123171132283214175443311533593033411852429335373294272856515591981157366208277050264146437015168494785282354020310895642851289432417648568492796524850718897891705008152899389914596403757540247624926064411214044858904696514812334265946623372211980994680437077743459086764812917456177808220089286772602003744666232305647331757651715761649094041721979795568161796300888830899874659572231302608287917299918583137858908053222046250067616233986474420184821824871420061182768075690783060494393856536274689650687174149915711146385964911105847931301431272861967050532516768647660620079534878244278174506189389873764638769052467587686133528659847688340913456444539255499680366634933507270379075588591047335224169626170230230541040847140807423629793069537393388454643168671680041315373867883624918943801269881369731392027569813078293541258212899354761484392837347160229628318988167384313807028253662998308360734465489437880275710804864760107806826127910108250256486739695326713728778999853081148517032465732707704396406251052701282230109908675981930704990374782655407394964017787180768663055765218825332221310548530130591017591966694145520962413600214557562630943870387801079645744177708150514641277319908212963808354571739638930265104776173920400882516447313665161433646428830938683831358211357013455879889522891604412758381577112935317624235818220169553912131894796092627149348743944559519046462946295836561938853186412637203745552060663576048851594733967273458425353814283202907517680379413500267201739584361810847212792044410771393175698479356357400871506088418134021807722288219786473973300764148488996819715671642118216862762510218122324966586622656369901066938946907152831858960298735061511200621122493872543020494010590298951205930128431605167163397522404004891746392133614635783626514160150362771120405278126698933164931201296893484934681091035985801351544392347672106182677279828951291751807929150312048484150063782352500941088930529888921022198728774725396862215683175749464524585832279937642985995167870700106028241801063970597996860934118493409909251870325278287783443943416359099562355007771114656268432289052334878410457821881354701639337354730006084928521958271703551004511506513218822062605836384282727820244540595152711641676845454962753097681790589067509528355044595278185984973177687037784926575513020654565428443129296970493707220254837652427363542135184548463654024638287773372510110245690264528769985044893337829378437947767936352764728480383104615311080973585044924608171874206514870416847012635545936418454258391083983364344967290739583983566654245596807003890193041271896871890330621306926099998646322152001252890503149590731256680710005269363680263860253010827566219765524249030820647991685948416908009503755669726700191355844075292864567644540680647844440312089949069722669916136812331083054755582567537493230826265166095608753055499444228681975404711964344043741313516871545359420502423555565190268581228302020926238471653521336686691740493613666425644896614104081672843088897801131454019769007117986744280454342043279657491122266637117649805632325807313836639981724445005151199584530913668826959111167184463530492655904843804372539035854803893540831722854588959688026103941498012091768343237244831673493806285892918143095366479656502458050990289866008291400420324156400223734239861833165761898076970698863892692891336649602323866261390243191756725363226491073473638204197161489511257298716424559602779318888795336657209457438038048208418625539436956713243206460934935769063765754384561155331256604531744376473453486197074195259287925123258790242819985372980186406115991651082810561053595993590854686415062805880098570960690760410780994073107299385446253907673053771583717653021786086336010446717496062154446723407648296630503836159464087578986955183619016184564753820095767288145185999410863696264500857127221748541709893340479954095518424899233191901529525560601681147814907074309623982802528004838144599652353768681375989934757191873619040265737636152880971701391014381595311628840284990301324985613901815603359400206446818284202590213928773155476079335431451236788733120828838682156457402612149437952138113005258156967672793939291342010803082888321295846608183907366292136369800066299427736446993591511841508780112549014876130672383267393911229003678105418972849535626616341663093960323618069580634432893838775066725279909074775654114872058006630738372150794581661960829028293326669155317461029115368774358891149019648166622618234987270475030966736835257102794525698448485421762440806473990821900282618203731652316272224569084515106397307760010887993749642196634822362398483044312115732717604152531167633727899948953439895847974117939394930472082090713770833867433423352751722878283993219219121563721760469430572488854239323266954020213817213554106018407940452574086361420815461330191502777427150707514206272210879050321367486698242851772664235545022392848173086551035148412184076743927035898877159245398637467137805315035843267363177223131266268396630512787886584539529841050547003714218838173463163506010611274957227197973165559922201285095297957131304439242798288476568439272223780674323439978881953508687221186604728525522071907154919912241487515120631851584025409277825001731662231443392920674075651999884428721260741163791369431921703362277211813355205420791103008476147071681815646179413113089061709556334828264778041986740690197120300969487504454894278995217867142129795240876652967526102380446889854971686788909581760546332044455074373932239930654811055642043216679609451358030276317358492338263398395875875184049924646659318587332051662489808239986444090432120135951936764712223251695725643433953593339007582480273445480638964460126529959089508179218173745265013016908268484376607419431520688545370431148414808881983241855717927334713466432316451197245086123284130006244619369408390855929143877525688246071621829789909853621265300484737517821902617926529981503437778735851096368589416335616143043891598822746434980613495411108424208796285137736265346127668652117147194707906463356175445894905952030729077222707278350585011469256264761534900441447609916539738203543680750587169123489220797009670585731809086215132392437755049178990169141839047656135381919247282417174800184510217175178335660967029966662855098045956891256842358001934095365100591021156515980356612635573241618284382292941819309138975192796759537918411169457262054467667773182306823163475192208408005708640360217991085675075111113937398314396478571267799179338618346995370104163468946228231697638149917554209975423059234115127766369512607590223582105431247689373044337300197234879860365671602168577434846923418968504193963632877924267217186142362732736632488090263912319049821427297908881295259949874078008949876305226050298139015907854975158951817783933771879195681253871457843998914867925308905561391543283577885011600941453094918875142371326034094612327313413866448142660131467505525319523498174145092563475111468218308972237628910781575622129391154822305812988601951315693894995303329705604684631636564036046885272614019747983629487674327258041100241476226742298222207639473838489682240510456435271532489693883141263402595192094295253048364610390657496190377978220506762077526958628415000932288832596641905708872716582122836813206005645754823783500684966176043493488554469489517613134615528668975895385108988509756129001552964360435525324254898046676080507908171242350536810872746131007963632050854847576875459167921681992977489879460412466370245438680753456446990998781088532586460808746781908361800309813503064847815628903708199889642262117190873429900088496995444361681878797227698274505997594901484603454029833451069831294699520818888319944512615590843037600508814218694932990606638074581893043148205654873873401086983465758383235446238323918693810368886579942010046242772641457469075147770813831339532431938123892752100928625504717239971779628318853656073229200904021070303883436765800123941964039530132782031430458556489406490039103056014050791788557271458788990879203303825044159361890485297303539092894082287532901941456591104754848172960408578311424553011630465881187395832979953761506929995394314960018165412968244891503109120234337842343725703021708592316710640456224100169885909979834779375553779682921412206313322350465118414619854115446500798631928350768651946319688157640086221335248181657054353989186993294196243884012043378512352210890262005428596927286861289247381651874815028248686208299666478977242830439020780519920297622374968730771263906386373445689425501714980597590534241195678633601110620231169857902640727610015612564294860759774784423366565852464323092286774563885167100962299601739381073945601635844517338149023934255797038171772301995180338951279934510219682972205278821643063758345450292110341680619414675600568341577425359299504757617320916460974053120849036580072845942989887569977749306733009928111711047269665333895927239536318442314937764229288401303398523556908978887205006946161049113807882159897215160156121236155976106539696076528231374184614972138667821945269034406646996887004376075340604911685296900907802120742831375672674503691343586149227533573313589106474442800626974832046345889151904703391951666415389649366360142011344894336339198686564626437117818867015003413021185632048587567915046615903786286942638610785497115799457272034446386915612597712489573036573544455335752457520173122011246899782014040185624040740497085205735368468043311998294691319925950449767947574990246390359353243145994737093883037157281249733909895189985868803278732680186747747847622385836894425828631209856284981522752240788985146426024846036657070571409296900720531163084628468755334909802739640549443236804004306879909129037591784145876345199722647851395300035936430980125921574288854771057947712746044247059817802947416570698852231261428617137447166244096955447381624717582245733547827253994766919006897868065755390731250665162921875353397016468301658220068759828271804107835069254200526603136270871778325549070648971593529299239673737028225655275147983599860899327213568028026290255560288253549274595356355125320126895328662328976296127358434724169169071322876729603238412594962667218690057621339335192974888883754687189692530917701305917802685759312960518358608700891733463747298730995190150379283864829626687375353702353856195113851748163339610686622978482802064516056253854239144269100962831735508124728040555068245742163731134309999141220956567714088424059171485008198981044335592120772790342576744066505723289854102376629142836253832158387114809642992724967259207789327604759866570251187741042890300639483968114189739340600514927132231199162290592382382401608679244162807808996099973183821998304208721478749403623444002774947535407041217938392154780924595071734273989432788910550964949867829535762557614014630890198291181141279015891291978726973072897974098000370219954020650247766037346357362013549947730208445870996340393849134071813726976596078422526577821523080079243012743979758024386897557521064506321901384473112743435977840250396997198161785549284052017397265591169786404766673785491855719867938399634223325652012505976324231459304949375515244740998855968155185778870680861432387870417765320870081176692838896396490373862803696275455350861539911775844270590032632463213318910398888149842626901141786312690811057509738267814760588099348522505549800679803535843093439313729950732188401461871136527371608413582741117815437313268322766955634979070012609015519738539737428847851808099892502865777451463422415159296423479235340247531705934198122898543482348328410255448862427918757596741730906820694456578935753904152327515163382882774764234043139044364261392590843167843706874192006744979845075547896602883273797561322837983912705482783893392974074666393544617422297611937207984592756665767292565540314428213684665648371284155610681702994142007155193529586423688150474424120786810947496905033560691154981463945402819399220145954007970086822140995967053311256921106649053123804932060910372027217872498663919056268734502249914222916933539538278047408039673068405501050680703321563695691841592479283508010986556188886705371012091305971373422321456144807254780194367812642149786930194469627066737529826310130520577552435622326585679385732597621793753997381721225106724048230747447612515807392149047476465713430023545793318215759691173012898847586550291100905416577592105240791065840153203400350212844434103900156382845646317613271416463817696526090154651758061274734414001502660782185294294241785977587590899588210949210721202957614317678822576990626431881016800479116109103618686679951502748212775317215021633212966856195626395047411332518605018095381722148470386281007113805765744666780418703778057049148274886742697204755278721746353415686496090909591388007655225407754004763442497656867089259961203897831148045176580409823471206754539146033783043066899413617661582919187316424433095088122128848721561463572961568763068110900577322860954314409841008929084363862141596681856619916398692778236223108172277499282460239202300755740950506042304857253631610137962758001016921324935201114532408824053691468907132047172306713151850253995806611593798781360515966821027965590308374658441096321771453087027648204159721688854563900234652064726543661079880786575329357320885995189373282617140848844911892198963356817181108123087961885475977302467795572948715541201763927456354938760166003016171020329535053242298217642524875829696529049215971151744687993740598083909536627868075298883235228602386142763036281478532863170821712139478236375051903221856667502051842589241765909917004301041973426666871619078892850583911284917541251594809500924163406573053617078288637345011669641088834680265573557215292051486077243739560691209271229992461962578883662197051215615698573374108016819762958196365820052550534819789662481315327364848806082186137093852447598064267265044705724567241557722455280366052675459533540616425071140519814310247248907300676630342188537299065415899600560704990120089174831393747406291824822922202988058530600708834003219337425188481937660143574565758906088430533907019135549508631317636842702521508195863932076072917510101300606715636858981739217980291760504368955155879125715351295872071551414600302079330032814029543792831554549303973044035491216152506684195074085786354806734239215526436013757507507712405350921524847010967397857581767392124916342376532150922572342971695352629607906955658326857417826583466990778543844099535711570538300627183127209316095778927190709374314799830927558742567160810972697886891641373223343773892241295114645591112871143035417250541912678097215576842251529276192850030246137420534151609438764248689429340917506691250773595873146751953032938119938419180197302643334387528512469177144479922796655908584516579293303064856642658469021525963581770430872680547952542598285159779537159862238921532358123139944682061002495644333336670089370357077597550345382752626603976036412322288007805841503410090044644503773743541340039440986616541708559546686004033676533578160055308360113287751156570298662406627526315906538059229193171626782769364323316350498396500183432731282721761875445584117904000299275623989395394502226932254179557751445811871551813941367584075917365274567285327183264953695199414378397322815016451575329776341030020475610221058611109258465016357783709714036689250782613178625454931699296687557140386635250032007391014534192333581851681045700231690246742433096092629444888262309576038466073259742578938011106640820085511072162236566523974441779844994196541588695802292566910181627822662519477925731030654445211556347333078516460084784286330202621100164084206596529989640686945980305468474830770322743034960938426048543121773144353654173128211440928349381062552832494697558760682942999910001799203786321838760140831239774469539493708419186707377803181083075085135373973193241375116028831024665061717025846854305275845688096794380328043291391871116303083704599903263419813325038978790130404065783112756832549600120500912501297018951128320876671338866544688302454102652577129325939701671338384578081685055753847037818209668192726776567663669427513997224979707808427447992969297127544106528150305274742588285189466533484272820641705019566947435814570820291954630557142591036958971258116784052866954270994626197796599827602678042920473293076536840124608125736421809101069297337856566035024821084798602857657860063784425974081958617419384555615469452211133957807727846516967733908704683869389553476978644811463565204459168940392104049017546605402700980787495620792432919325285647171347874583344206352299438290292142345555430769029056243483559436708377979377710797426228914731710462283079546082899638816531545692679037484792610934977726720509437348731996601322368385039001092233544011352937217194935413513364524085924910752040890043467962709601571854177247837251858367264160855273101820413962693559768409840980713441316164842493299024796379216004265349652727254314759573379334665323061080422433897305144217899896293240683609507420739632171369119739813074704927343796338510520416293971523601913258101637102679556021959460689310095131493666491637303717426831255218155410236657425287013571768923243134176547460273627370688771407624304680786521231356767214032359975604883019446296812386019542210789791740587697900570074917860478714122374755723682438736538954040960838479669983470069406250251704522772645994769400743550208489934776942684677850378227196234393432540816393812910113988880629895581989767807086019980037080828187205627924640727356345108820402854052502662304295455065023325507555388396499548447394650965471009108103482340172637964459830716836070455243943536744327242379866852862628010696709466032597950938868845709997173245564135188427810093072021690516463903971494772917338141518397692927621346550597528683337980238681393087778179460804374440316432438610684265079008983713906549559526754511487186029673030766463234073637495525294205836895107183473085683433315242854914538428142675983376921308894856544449623426819480771044581965677106362214053448869891135239143409261573662821105969733892216714309645721102462819395721035918366409422179551353263489600300930448106775542022676743683742202904567147789664940043324904781240383408634067596144788795127660338840856198569837672406237069635701227509600454392299956088819510279295984444459148400411846759778235387666606016018249264254149177772934937242314125580839299252224432696337647565360430036081923793612316352127167508471232905845433363446118437600593627481216077498855103485136938767735866300111558376402413771262070885009911352591032770319337054779014246467748999626329118673167594842289876795397220062820096239556313953804150284254494802506331887221290965979247536074349459694820321909109613672454926756111867342867005079110762172009713306504562615281841175371393176462721443565326953232197588268512223441671232153462001523256839053525362807415423394557865258066402608648243286201153066590319255963661464914472224091887388648607253810846267399025563698787504575673685773507616094819544108181936252372113342554227170076553626314822814462949839397045750254339110687514055091992940921592257684009949334247028089386040791187319437470985727962939549361270517358470925525395512354690455784343159220769418122634916757806965571710478543722413471160472162233452977070791422320453138221533933200801754553750673776282787466023202144008285388790607721652436721324561513583208219315564876638905579927678149563787282183182847784981770406230717230797922720259494139751284793196758019244342800424527482259118100163350881892480650140315140900737199561615251233245734293036048009063180888488713275417014242900850500269535868325543419314263400226070076050741095146658354987218786909964934264238781659707173385901384327895380002078025678174348993018345892536162791863330752793021405935688057957791124892827311739375185222424802122365029442166872344044589132625404018104170186610612931001910739760738086861717798562647299243971383530600379082132509638645493081130814574098523052707452354231290604423797451449637899744125818335325980964407998952858167350559484076290393796134438327390100356587658282612430292527266938336610291457630384700988821033906704439519603417483568353128712946347110823994835212953254512977838144349205434878735197620400968300768102799101776499918162468124967911796288613001377445326128921287066424543437843032142090433439070633869949179515988908144932971242509063549268766303138090892959986711291334614131259546253302339220505398564298603986461528676359468271120344636340898672690773108487117222353687903150364641042379603893484910534526614446341550956239786627301603609889307641423848014957489143794432145427825476867715371613640236972807837235959344234090969449800031039010927020166346766114733576108646291658690601000277968602696123342122439152607319896315390308703157302240688298495690613400262600286686036575662321626197422484483883949663029049702166948538348004586136723233737037157810304697728392256586182334359778001029834684110780784087102964268192644754477278180119877864256599780336371476901495760750525671632099216647638058041865314733869592933189454886757422227453142717630864616097760859421365191749163015092469345768438378992037492395301275902297036992381945234593617733538753721700799808763587588546428778570298317952101175497641311225463667489286026185111983999297029764440403950846151090801090256052452038735453434470189775106383202679396992102468983351098838407731526923102417333552886716262712973328960021271783018325128145701509720808614021179995874963839430606642640529256718781342588853658397867883266539192999716746184494547050985383264197092310288374528646208773283752722389615265246650773572835630545449887734565566854783743979658755448398487615506609401259175986461587348867446420553514850442507681518527878141062831412846901759696132247487928513726379862601237511301000028427202060846633615250826896009947730174886640340859286078490142304041826665170126944226478770767988269420737747922407092982629679713096538240599371690208297924303290594985595929588496863200484977252038051792108774998074244228055289533807761140046587758175143678845592104813454761924377889612203849146121241215051987356203294382107870180815795277603331721890532810760114429369418565312113189725049516451457483505413157483961829744515403852331976376524188728008365201489101986826944624218678847611624876198288030066229721816884826213792802513565184580164756713930939837952552414672536603598353508548637619214542687037653773260326110030105065686565212923730988674383204315199700741119048768839458645565732806178942706051330295362349808312929402056017503871808065726269450772963720912548881477485206189580676709182443560892537311351134046874530506583352349263997066180443533015829077269262216625028566598155902442584793871939937433757920184971021482731594764813449159316856703159213469608640280446784264804515554843730377557018172409222569204464496225464380871748561776424145849419167383710638752025020663410961636425970270900236436144784866114064173272080356621978973319837007515653272052088684847282517070520026457300993507419995910342527600318364722089878819760771433238235336499754498909163381325418032108665983427408137232673008853200399723819895441926763993137381556570775018432817569915340407557688350783269254821027303588156347878073494538996847715280985700397385708386727288415218534568897049585462825378678130676974364652701282859562276514087099379361192614542571579078307236543855136352297993819852233250496211328839460790540456094970694104359583066116080035381909155622399348034843004296351188065582229806254414697769370995829941448931752526311621177073675279872528627980744381210008025923753055097677036274830304455717891589244557471937230493252743826574150846911074021498980052986201475828654888379024544262013513439405949496669716098733157419986309732888634290246041336822420128420333003946824092587235744911148526252696756257051770704499208348838364631655414190467978498273141758516868324175771070828901658588760734372867444689527856128239956012062736461737827599383820457974020854757407489709327527710593874114291196285082359618126889190418460139288606863283487610315241700849617238108968139451874884400345932081234433212917383178259374439212523181058092002123931507766222745629502723836048969283376685899131168036532724912497257427603873867377569834275423445699982729294638460063841545021398175097448040257906925314477667432777646821555235464858818798159237807652434166245403161429857748817771526572262399043522074999282317540216935823554734570524464079497682911127006313298915336211606444729429909455077703034252880499403870802982881562984019198288950780389980164702725941055108227507682597889176560148856739966623000014751291347471121484857411785899493440686169709276407734562679484358547666695684500847109250437694856315342712411202378768457359459425225632356063785165093197547807162150873849268069382501785519663911284726133295145804639094404822780240433791287834762108165312966509976374952099511098988438532484040594812111984124323236768669082700336832817711849131665340870561765974593508077907286228952511754241284419834337431669183828004000096906686794199754046528113869350490146707128435728633405161053347087806452590125928323354276419672701939498210437316644434110807226746481037750916292136101651752850505326534123141819208836092340451656460472780794881410482070680577581856557892682624814970348036216749515553581252067678644476953147299133601863859990448077382349746186763747322499284649608009592737864019351777817979599083169794635982181623553511652540648476293588288455466947764536800778571712885739731206665265854229566076517466686332808392131757512502333304232173125310586049247153740812221128071845899142742930098928538890064959835103902523309100344714199208597679324491420827296501515673467360211258442583643327698311465935504466631117899545420452800484918236702153274969584720676510697059750870218674098460885281269160007572174922801723698052403202961426027105289423381843576159164444932793224063431319312144139090142257723154172369084385269165495529374508734278972522718850823042323312427354809866920480699420362733640205478940232270068858454441452945698217983852189945627074098308239271362803975485605039813824403075421539656560062871588287707267979529013724388954181352549013551396819204868697636452574389192893808834697116300948774465901265462082337750688546373189439270820396666535040391489714244130034970060818547172637385175283217975292379562980811259745196060768024167477200478168158127850662108122755839638029326733341823047912938147274314274601291589013568897467770009774033364271160504318292884992957738370517708091716332491133218814961282402897365022649148499038468677350262307002019508788962872265497455488153954691079961594229989049684517831322007114522495699363382386743002192252517627946234215902971922333992984485376912320091899948167487196491598079904758717838244000382879304255770354624941960214985498710337267394296455330488537819054097973070005589712542763616649425632295632218051573050045590672200866267511046131270659948439315741350856441142933233637660540461267781652008479353616193758910414617377247897291604465926640235614202438850599465467526256968797984432302983385272763680916913971650147189550690337192000611249166310362990838207467427561012498289774289918439632719515583676350824861313179518944438657871177467296323178025209578948332449862494587277974954721876283727091275505381227227012240502061267297544302132451466880670722984479378142222482148794956782173591960980711688192482887772008870340097281309490664094319388207035057929525388923696955186967263273372303825023367902253551626716310218832100112333011795654802218309425484280081986863996762239153832106181627530132406917755838792870387044813950314176118481120384660686598607521368883765939085959187964335670112238183688091941098270076500652202474683716209290217482702961542725247545941201571979396609484642744474294887615390495940413857719318042235266058321151279440146104236236213225985514981740898066833027937887363411858327192142777107677485888107338530698602927504174282432245372276693007445693188248292292981468870948954031866362423566443720195506709704300437087190595504141506739779918321966245025036044948247868517240411367976036210115914701628749830142886128517419552105212370251802749552508721483159380697225523540747479951913359722593073085173980561162751672214486790855748566442461733570148216942735215949500238498213742064576135250856804691163279701884736670601663160705745680093688737932346932731062288183707816546803039211272165269411340645047335737391035734001269845124578868179118619654649532408312916275155878452816280411713663399141408626209052798183971459805018968272660170142051456892684454631207669925622527419533257159207418233001475779894803124188663439432956515317660558337965086820968175168806336207341003956855176794623681487479492454204743469258693311467418401800650749297498607394254864051184038498614581173697113710313013905932493887805553578181415349188980814303637976186713028709093538863250796917302973650734764178090650946874638088641247343396033817741038941420619715078016449317085648416297431370889237731620296811010787811024570823971234344254797102811790807498378597780945608430211467808680854542132997091260882218968965880553121238755780111908756633818858311338758628620578158443720352600185581006320384084201804485897052615537668425351620370062040510165336376454851738680974593200687403743297858503731901526965307286456026603139282774659073262861421669350529673940225148707226890142190160465450315479519720723424072932897158027412227075828167002209305996902911482300778596248121897732221723531874082582813299883114695632512695228995351614063841515686683615877716666502033802707454945354225896299209310969898427974226073162194996095900776737154478880670444077632831736903498609005083351046335973398634401771329714772324161639822545053866909360344158403717159377964372831285748911410519233118152976952340192146425082728255774232218775685010497798749029788193996528375612527620720861693997246935988493913660732017108023927380618331537006255231575870001435670013789846858983342517124222770530072633507587939170972358926640617838572582448332001953252309650259087488421449554064671758366394654966422658987825382833641523927102501475216971257803774255813114953829939999675574683642534224759431025984207701128326549187980590159141070998740446006461470970563844264267750904841529021974893507926599948680649999191709322247457377949663786750136212892254240367444239477684871477825239319962957008153451596920744335883458516490383438858961852905431200877068213588229700917940464644862896825558024277939047384837049340635210124289435877859225315695217938646588893154959127659626778072508844264458145327322967433168798804676340587321915147969036042265937962068176602156556273559449206957654214303089814884292435902159412235846161660141391817471110553862796434484842558573800047313855328118950165062653859941866155684175623647332719551076717058042427028813867549112863468998220905279082153382149054754522194057796810111819363359315754195908914572981286525426445628524194998035619388222105622700710960900804130933848302622220965461993141582965463188206716634874155470556321575780210136898509930755887935308307824394345543202731192490741052746052599746677343328024499403927885739255154639746173854246986008732677784313908249549123763440190097447180798740710921888703781004196163572319065267754817601737237679664114040512858858565970911045281278162215117783908337936084081184573953702763797670556996947154653072473729723051929360036201948422555759763024515867730619383057951339461415377043283534301960525975080405463678908405538873376063613514969735291701825015058688800004620469581635098007808302483080780017683162035393084590628272909920190338513930738742299942028441798468462844210004990666721537712009355362968041139050950654372520389924577034812330735901976524098568628188608823077940697246566548511631894601659241601187651144164444783051261300551741786989109709631998547053337870865115504668145816423450570856872247666895563433006472305482026924720917313213927250602059371092231133860888301069316671099222343172796862382835135588559469246680735674769450310247300599635462283136570925754814825360162456142047426154658228276213762977369161036501474005014461794814905985125625314640111686321758387791279058396299969278021163318818735736377120262562480801685870771090216773011970398832707719740981893091822995370200701099684240625811837891819306301725086234327223283681413331878831234155336618630062588413325030891284148062810517877524752502323358039960847640962994442987434174290960488682904715043319747610950311829466281010138974799327399978357446718816082274097545473592363904535842982613362196022086078479834722872851775190633364082872504221221684822252460466271290574803742584395593335273575221383777051944545644635780046501129079501509251184757401714211381805125126167123004082256309376742302330122729227222620563898844362509353678033187354517315593150488385158298603240676297387433010119570462257886778510343131492750447984982267357625165984127042589187834830235923292874232646222196056363276918432296377910454976198965949659056864059735693670578764088226689056524254623927325413059765445540425742775593654197938362937860581544562826185566730119662510371080734443606579356882093988474662406092572543197562628071244754697275619624659513832863880666122905676516030802545906998244694342436111893835676605144214717884404491987451743030663358759407359061873606105849379376182776868310950487116809871346007880875898939030949009188704287581083093673583093014652803168970395740518546872636870258582827481344762571738396887931101121399069169983043531595359708514226658097111018731838723450937676110952476646837526395699869696603631526793115460272589164922064778382128619917268039833581615898658277036307671576609421342867245745250808003937657127765785760075512325222675015313455198292316215310446620652559282954689811780827287400075954994967881751588397504299613054390867917257872711404163561837878798231802575548999588580200710304348280947262336492770047483837156383919169238689923183958167726688186464974836657013868342809121079584081464560024051894255200878035802522764062785334945552011789430624690645273232913113547397359705905832403806923886994000221301842186970844200940092341121049664560761397020338717568344104115382370103372464590523529484831846687337702570135148583698788923024716715845040621472852669988989324918978789120478208619988918737456354125577086784231201963097343053812820715450383562949211821562307357387435725563150784403749439563692986024069431706075892598496534965539216424656861318755731948688341385623789837996134417496752107497103900434672217878664277948473856190203465710636125219297459738984325188482335078432483007501583694580527835836716432369495258888138317031711698585856880903692473665727292057668218607883683781151446169162630506917670971949129443951180747650010055165295392452702544179540961385326226177585559779473070325198240393522886075117024533140567778982586146658728289398241053422756503025072976199834437488552845320634789061159429189122176897355175170739822693925428780061570467042564399130693549744621336353720317185847713914187303943980939540522647666835906113711513720620681540057131850697722091774493304077481768108626454991882708215217045441061186444095723286051961865334571965712050186823774590611495737664199282773620428082376384371606951688065048629526266466783627047165615149604057696697237576735921464132701141601196381947297955088640862210993618389172174350808058177776003314664932750897135586529624778934526966314184300863056377703684355564016690308451293458895581951165448653604281327849182007332735864945315944170363167480050279437361188956555568281313909458815822247478169102605967288407817194960871504752849850258637079065086248630902679228297246991818490316232572795558050823089692128459439419311445806764888220528305780431189927773806495912059208580588175977803741111509573685890360777667345332125848947166876473558989418710468220882902885527527013511887318611621830617701839795093727729673645587181546284325851074355695902211674839611257622307377407257182177966303641750461610831066220970536482388931520933310382049397016850924741022191848300315086095798503957682954998568975582191745436623950141711504452319377053838555018895050831606375878422871013456220056206188746239891973555945163802086871105248637283714298103332583773653043871550982816996604718916455671031215347409487218366781742753644413936815938126653098803561372934085037967814597490233875950071540633075641393890298124775559757570374988402162485673792010780945462814833385338164270771498011274031069606549424589314440262903567703935643196218396727857039991744359902802294918660831487402459776046497010090984964936016243096860408570611173307245204438245539186160908345166139042171753555187380451572717020780350461916574596652506442692581837449122503189360155934650873922308541077902153930084801827021728479167160685624582224143273175205678587351239891487996024646760990572340013085707785781294673303058525386068678630241006725231778722321958298345092094330650088186063300496946729834533800416893405455323490409781989239491702762163520227916999381429859287778281098914270282352301553554523087205245984589185392292753258804822608974813194076826313573548893502211034937088926078602449539535493695606390517623101763339781097954822286908420396671910862104170232731613659862806932025426178503217595135972299348475947246750998352388625169168742367096698466626504739127593201761235374068742182565455455811845284824479194229205573307499531942490134860949578180300349675349773004846224048508706516332808789739441676352314443950966236446051213934236008016393789672794562741530224376849138320703153757098346139403761576628245642858788482763849180230761128835164454403209890619857112595238283950541136321314506288971946390749909891532333561548445735810962609890411230825282164782287507999654265181968893938939287905964173003993872629942606431138211262907008044270305060981192008175911192479865265725472131477657846706962044918280313038283923405160972191693396865395737569594048982391676709111415562831517867468426795972826584111736453446865076401980359938008148059786689988117856936434773092567221594228733333701465963503937714233057486579277045830273699698302150718728437182628706562384079734050447679824037673761604920929404964280845668332353485234712673093764108708102620032083286966085770598526606378725726320698318029084631152471657668138866683983115905606830991846636347192948054738643446447451973858397333934765903710336238331006115187992240671317064663310061075569659109860734330075724498957763478433588863990202908838654868027742314300626849111502754601828925851382833400408869682395190067501955718950025320007941862914870601336169019405109495038747417947042570101216712305974774199893978790198096642439531847579841344891600950998184204708043563430783995865137520555682170845114676415332136930746324791171938139565176218281226676695443273905739787725972133479664377654016402390535009332993202357387607091022775336011959965478213988464457902319129568336905965794338227135955088812538752070619936853797413680754915044748300399154206674283757166972968559547032209704727429652397069249970890261003853176330482299407199851456313428389569392908546588184622218309232824979163438253452734876757804318142782401162910939319137640818843289927017440343425499115134318712952715926267071041745991162938519240343919983040288345352512377219757807937876487626774571591056564987927145621508932591150247947837412919300777826277794801424382399031317601800940213401340243383064116493607909886288615918795940958636575108434352244633724117222679978441803403266537677816153801686839095603680165481455967311205238719694249511663575983196089425125110581647451022431216857457208877988467980491020219047275271478020994379180491783080995928655830669964502186955279848391019643026580956159627600926365893930409791417574178626220826713997996082736842584473456954797236806816159525099878745105921580214765646301829188870041870524080084978499409399436534210730883231858967024824012809016133102721650199506805400103760085561732382880764351047098161770928828187188509300158327110466345006240032763555857804851038224111630322306691150910277773742017329895312982673635646416015132327020070734039807712801823084942653292305768368198027229146031156196097582384932046238726875564259659627854927720347021711814165963592885394107437884415605268122771452724558560536886107068557343973624411287547863886281048178299296740385592157681004532690572449098304745867440635641814469944253939747492406524072136083826306797887270543501636829915275067794431990796383534519807309880234704420148469347744562817398795375195424900827394768225780576544548127614361025632675245083784192554875332547064633180432303277889696750705185630759552584042175336648992588234593398400440578185099125956365377081486486396248217605913582499808370947276594370649985708605149410660641262413985313510907294682477142791191370529607441666739341837500596026179614562593872186155804696871606388575810873640770868016172118197254077663764179028820039705664815604037832856925778374320698627295594441794729667371474394662672480275086812263985153010807738940213873172881477624744296440758578914775266859173223265040972895776606477157325173767229903916030722283677614917900614537593250304139912584147339226941127563331293012601480543376499753595542800745566354388567081523865858123486359090952329911411750902131259564271077270820840991425721284247520985551950942080170716935035297739009300938066096000812106521669698791094115431041862204032973062669351587070355799408111164925452390845702421189016620217522875157416712974872488170748696981828290348444221185030192087509099525756023201020225749568621188430188415436112036496157579843063689496509850037261071621221697162295206952788453960318132926656694976819582884796657920577780788395634136815044443139534506960334752066228535911098228258065768672740885335980568277382314080476515799327544308509490328193539147073718139920208485470844876441402175966378986131741607500333005903138349674747226488621653979250410002927375781408156472139234306742906363665054444428125072919350563653974041943926723537999590197939860686399993951382733276028936686991408576566994962909523346441287340501731660547599689846004610296073834787779987581462812506615443039859539447223982900788243564560964699795171891369660465347328478686449738137714945952719987675698695577227057482354922142794167307753197958157938707447067581426850637240094636705526725108339533520388011906310534613841399079513494022688872582967059382271378354264696827246411954051512465824667872866653007820620293254358976100144634028449343424831202963621736862935862673332769016702537578580987825204762955224553654863339228435628761829685335256228620646916608861239446601535261771655601975513326772685568755880318603774837141716202060287024344307343128614968003773543113487381862038807897557505096744132014640025642856430172182809394252651820625907995047819629024885191668290964317667602966645614092318704309707349495651284686803928330821127197917354965902595548225068090215793043559412740533088104119809336511314782190861683597099429839836012165211364472659387441650865046515111528190518670547589517522917235682097473537655187877697547668877071400979686052786797826733045710393442817887377536482986945104040870306483276124893291210783907885771183692847560210969252944102736620302826923776488424943225027730542495605461853437558165385453336665572313623242407563986810180936025068023904546827308714418803059664322587446626505387015003268962565281952933951119281449193629204717965310051731963931176707764285976636532639021993322705043483863759685465632999353381687098202743065887915575704788779910126130263290434740646536931624772850151519183107987432422341987487850392185407708214997209384841905067855760348045508615022201557761217417568167091274178483003504766505459870585763761046811499240723798235280721305202335105291922867062019885150934168372093598891891658695211580578074150076363708624664356114432813121797063305729808931096694235288446049228558809320807200719109600212718438127940203123909583931099302149587302764988641973475466968347916114199739333335829228980708648170529807834130547777234532326656873685037490699730590774744031701192534472862405283398279727525045898526542785949350808687903755130119308830853410073766878764603290216658036329359206795981903871896082682767635729247933463739194730312865694569697393012810867892525708089404772096538161541908356245613609264510599193620467944476472835599361709115806715368289861679743434101434426039082285138702611016527072982062312385624508250592043747500122178186111570517923487984660627163508059093167643650114098527331029384392413081287587024810044101704891196386571368266407686117271462440284706078372365115532125656853921236149505894851204648224794863801702600726864927800219006142313179741209556683822657141627840389492860602214326188490119304912113577564972416761946575030525087351497279105758502568007244942662059320251988499043506748385030064792331789078982288034420996872731489905568483557362373934607856269378728688084670072625541726262028173659480649263692713384973921177530252930386278550036389198265697833980286391385903332173996968728223900795920819686614407967146277626318808987592476718873440858410346805702486352735636971507489204250934189892980800053852789258135540393323338925909769439071082709848520517480665314344061493934680920531762876234465983974707935420971293331790882744652300165753440666177164543632712452836423369544672356874864731121245636535641409030948741951484588606967161540046142327766430697991778227008319521602406234246156006137793742675953933825474244065489372237343866832036874338985766825969421970182017827496705106168748111150872254294641692230228746560460547187232900375608959187123640704369593995747476899754712365507233144933240083554177834305989788441803301555486237543417282394940813453426251163515241638163376662542417412421743554451255954770151245810463342547380499918515887758587228441404219425553353374304698751283368990965530794296333554121582106366281896036349929359125217553325263733620631323876825809487915793538596951324356741906353893461450243957670984566906361071076844773325589324567295825470065365396215070870271204833288114702180232346947588827168659444455314672599673130455321247590304899380171614352455722390466743480263475765324392975028124348547435716346482255389908052738170591112117677302638454097568581652775765013095928999452530146752648511065275563090539387875106188797463687550837556679454649968850200686190470859319933690185391390713965511383296155787557785349919319373617728607647455651394577810772672949256854059780820087235994352834760262851987329529646925352382335958168057122459548229246708538343314578779887953176344399584570644998044652530866203420577322525273278206754409797497302570305230018717599198019442209727799961412955510323654840548248422773322856273639887149610428249793082769311714552550829312346454129707516687197188945931594300900569876861252084117222572345755931156875295956096164940412818721026706569761515917730274416060980667211771978530630588629215707418747475219748073822445756906071973992144226428135071637155144668021764401582780097469509757344155207803984183296701707654104836262319455001369991537492326371199902847447739239916615339381645827477904453112819583087820015903374514159956513553088717554497721727203852678578185364605894447521358718307601839388191886115644074336544876246506374057846270056552441079502304680844114419017945790507870923242105085102365824454714245754141037888779734344056337585748462838702295149691537266139542558681581653523285507058795580544157972608585665100576859983518206052086829162831923197697585997170632561645463945138351690618040543509136929532209960466803387087388890993630962414401497528266902346359899251184564314416084325010275345904176424487293984163287168663431880620460555428251166765416792870731951640912359127793717762465236714663463081422659481079959069634337353423813555622353601038584929233736418948451532795185537947396744071411651871859979623574057969172527043286655527903367500765255536377971353128506049736261013463908230402379117732840900530855928695462137476117399497423712131408298663330307715791822027217576935770498271602077777890630681615625545779859767525660533450499697500802097564543737451705821533642289682236778713442857658439495174517073289082552059886850813363046453815822579931111868720262225267041413544630220747656092535817591569148908329640104528126244146034009894378360582195373847814264379889318182265259039667955172871711634507927059189855310222898676287263254467273364201153920649406312369071935887670438450484381899617883249733539805405688209706267703643488846473600771229665129163019470603366458015210655766607673261115722674151868450703070985767413014128413520366101705996199248222313696714814645501360603709573713983643316187131252029087330523941511214369454969041935732710922813453117247051298621536297353449157704157189062042729787565569311845247195009388591217454392546421046268073908975389442598045889095997752930125534367470289851103058372800145632507509925700593354994928133286230098325495341172268428879937864441869625485315998226676766441837058590022216782478231662370538016202693116971561667053920834533325036509873420679546852033559006297412698731379515555686032016654861674748000347234767628554160851322311417984391936577421505038414597157896882168953089056598715627766239256694910028422996395786088839883941170508832461756613661275991033102344816515196485082629424800993871251156592409101039933328018850121235977425312052906880747845391906888103074555869534457309394701418136969683568966704327291289997450002463969690436368793030323609722860771530036460046451620337147591451060541223137956593801339030705803476876197320569075647372161476491976946625510416747684899869497852735210344168836332419792861928625824930152988937148657919247479870409724736433535705429594355205490797117652936695544392374986711255136119310174057868137479260688944515439708843061075357265224386454050077265466799053804067661655659609940068497538738447380394955300594370776551021027518135164125382197798762132517411209923837704437499816921068159654154759527257753762956577429858315104598202835545950597677570288670685180412575541865466568123365666950727075212962477325361653724493274745514566358791328368050295027632093790489968326560277553381321702764499274976409424061414693017930001259743419086884074934356597549714143387807403973322469701085113440704251649470725623834927913589487749641531550433776369350968323395569320713703192172395335321334368272454277953026823587052714572035823035201812540883864856327077493280942537154745442540665274228703610760626492412396255405232419538464434060638168402249011630603079129538184149314624883247175863812804080972110266124122975198116646561001880238970944875626686535260777144754841014746537572839480736187553807899459612176500509734218353688560523620921595951399077472083770906946792007661236370309065725805299521789420517640321678483915212814415907982403829747319126855728775939758962744805051777114785733761112122780766910967828199441105002328444536999243362097957969331752496664894445498916660818561150744683684429596566612287678909959281619781022954124300844529848039535939676122489955920591215461766565943059162432436983098590691179732578638385834872444676919583677488613355792939371434340323373382736058814773612208418429538120490459970934878616593311535713999360436038691631828315808189842029744020139393175002742946432915394600018519689928748827266260008351635237162260955024184552780469313485657494759528911778149456513406836014203953031958673072783169124901815095014283618977639594032079327156306612766366016748803320054372719882881972578590805358332816896186435734850335541238097771263383157797039985850571242234262393745928641117590624490349256827537706910213812908958452080554752998824846734061099774436725452237428749492059594550650089299292137186283868696645106301924899803555267169440692808219220316979830342726261822868416829432350059310459597379845415864563371685437719084379574144971251673475988752682920772638868362332014545268616157320517210029320640650392206284158932665449114029801465694571601651768593777371143446382018162556222299080870031946756840114381844902827256415003947146899489431568852042743072591206742490131169184316457386078809169239975660625924355343610233023153415399131755071618151253985547020844250902220427922775517498656748749218708699418041716086447340807637503562028750884876255167225546324235453905480528929121469176505163686142300303011428668918106934530141788731935643214869944498984410519094652529677455527993819400770912590905575227463285139840395025751481639928561463123050026684952867394971609580414564031770994958171226647686947820046917301404508862833952118211484383408979039798471325594515213061550648863868687164280608461641417682010493054296938587823113101792587421435228216454948020393335516339641369274902124007073598640945052056786098991984424327505230663966061399374256331381236432387689340191483312384096028628869057472135439536651140506339529532649191181900261120106511111900810187080329072042281291684820767164958493170445992830923224453075489153143212284174506514339361268242580458883223623262601637342138252751718604090883418600568094728531240645835839020951127014686535562634192156632482677347288586205185184457848452211940490667832106424007960698986045487120109050251881852007660331618965948651300891609012901999645119885738803750371709573370192716301891248855653649325318621996738533255075991289818111013207007143411494432507793786313023715307986714999223552606518916493932600949937851419375499981397364328395814581261041072182056920316284962236847563464626402566255025191224414814456751496274377762396328910539995803941875295879716724270297569227942457824173887040294028213036283086890373810582209939391561584455931198943611027582345741639668105393771090039367740614647731363693940730697681824287644580370154112859729658421317423763593578360939621614109572099445423570146336010974346783882450977928355178251724918218258821527117945937515972093124584443576521786593694448863070025654861836401906472824670862544561107906572483859213574195718206716502189631023414766107453497113622064005913894670131251558994537424997799040932103372733420369297101517068090899750374673629657114894147233900757707555090684969375253883395910411690884480268560491410181303594854716651220137545625653781628436956480387601642295286037488184887487940368651222721170203909227127828080825300312212384903773903466687013013684169419663336571051783134806949326347255902989568171817385954352288787490177467052229383471776192135434312862020994339287150418734332880303647897714292261352238832888588694997518252357451608704242942506784176621601861969828394844229014382829031487330962667506828267567854071208294922926194454976782861188391386037873546179488824977788297368032700339216932699493153649998346135540547054408686405879899153698358817191306007721076784306786537563464158066566864381499767726848034001237683393925157787456384287319866976624996987814592843116292688348392133053205150991276955474252204782930579143345155218258430903917420290852310132806987609218291329165478863962467491903744596239718754526771098795724902942571369100361896529176280402744700317113885974359408069833073729608406130311230335283733867260026649445771246301834682861957277222974111147994722713032484468878822508018204119669749391588332617985063736533298261082048429689816932865658765257958093306032106067547774222710988305639222507727467306276211441227057855671943660279903025447970774496972398825602477494800739283728546975173651632952832372452875626614119556070103158924254805788514880312854526476706177360131986406335434135777298605465991934829015319047663127466152841637231645496610961076795622337501646853868034123091916454844246144629326064822195458419670687905164533966314484774692554763073524344467385158993902942320995226332983125283596972697898970158961310528085045772035712529125951835774835302589172218965245428770818735176706907743924773952293545756455779065287352543212810522417874703580818363693956151779877171172266618440773079247597995782280347679837908283460408828079574568983969283057311345012018012249248033896768275867714100710913515872549446723751609898718838818321938354807417458349718566067505120219622191846998193276653547960439864471109754977395715895507376302538640606687199161059678369388563635212443426373503572262445526818804517235850043538936053937456384312520003745976624888309167550010348292706633578870059086717302151668739756536157091081705153151488634011654924390361009772716074345267408704371132328324477127096669652032457760947673218090625503279352707870949115148027375747000422054709016802735872186711340877928279587022515865540151768248125548213657021863244078015181035498228115534195209501786741124057953542624986676753592512010720075224944225972870313353597433654345422713322201759678239145020169704501956490007636181416585847769293197907606476163479910401798145406410712996505255173368843560030109787156973207888628879636396407375711251929437042428413000096404564240643701721769652292012139184330912423821449510484844273427490679910715267612338974849093219816419135361149567324983839196947703825324256279604079291487917678333456234305757728779297585111285246122231630750338416526815488195877532894336947258223892448909029823568946639021405963795894263202415232795468137643334058794902330525678954981437109302825287516650864615446116078395826007330537031679147365216243034257700794919337113921273475040105010927693764228448332118963262121813969067457967987441550035538653803853287138393251801573198009137958350225693899755671404200418374347814210722935099851387753887121743836179949013545124450411850584514680025513699457313570867471180779147961047704349376615526096137983557471128448508317001378511617278814108587891248539052900166416278191439899567520869215264967602561093183281780617252125686855384697073295604229974492727969986935715845024630933700810039927211495597207692762000437893344260303315311421082402820034356813182803330740255168786601609965252525593365355637538371041064429514173218089269283121860978807567858368995717579831976971501829441058692817777019733817362712206474688385196193130037485452947586669261391818107638846987199774265059600929063545274257598588033273185940339455100853567369874679836562214603688836774317756826244634732195996082802682348404804128646139358752665020166296676167351567652497513310553949356280440607016279278618568985234889638507644626772880542494813813947313948600842905854730234065313463999850184064231897805229660238472996660251566480363100351246638417315680525911655041598221517694323782821705466000322838135269830746206582060101533574176187565234695515861972937412883509726953994958183239764863308118316400051946638028346142345151813611110929245756352627058286317645079969622764702802594815843256389482293484691776290054623054486418228119471332939109265288298800265502737877231979371078270429078567190668243467290798042032898654900712483614673351990904718382647524975323702170664430273591933379833497843551178975909633168215389325277334005029397381139972985119624414257797428351691688137284368006976145046971645347058613262201638304299446760061868560429175659589897188037116301877829217394891427231961668071849472843092931201403431146580117551936428336708268876945442345310125984465605964900923873840225431590766732270501623933192534296905677634618667648212195627321059971727676849668229215051414605001022391530677301852981890644772349891936588808164571521903478085504542725871684769528061357902348496051318181306308543964440556437496554990128868614593925529027061880870148914287886380481797832187155054424340724017509197507547446398412043929708420398066306829172797604319774851140512821147050895199523763704948537271761479057669125495449478368460069038859251395205927219874766274537316989258681876196225900132842579246416893059098906990784659377796874574700515022776554169521849236462611464717069141107754092507145196752763988796495337732223688115981042736551944244389528173750775361013690640854246663499154768683821012869808944870732465230958552108311188136825084080982826635504940647310741415552668382447648839307461417765552083109663918818567914111796532988143097843427924705076911097200835968439723822832052194048006431118150951041687911487523100886361316527042547264858660207396343155636792065729543288723885578048254742832404333440940422482449442993570623326493892980738617086804564682819520771811257146974504875629937221839323854820118845055932413444965423929742246660218491727090125900794428563338341705772278334335829163221802719831901939157197215937863188752703454731362786843922377287615395314525376075068869136737628309223206526209192065331117265814801485697033866447868770104084044565720285290445039012931227374658619838313779722302611273795173824844997215382380727145481546712510248365006380152142513998194230807369445183799426195240959198631221790438919457768834098496643425827169181264911591232214468772088644121948434610416266465560800857972011582229591388264934659767527828288193435404050589671928671758406451174717207337853909067475362398708285714837582074896301701912551557180275448449432147105067191149033923805824137177420356654641839101174222931118904766328442537103252038702241036461083021234172746946160097337776218109794814116836166291778420398866303684011146533112721237505704238803148921606861074861514776073102228406033122387721636814328626522384524384502486267680257925223703440214137271358130748493756870632171895591350830891134600741788229877761789038551860219957451704742280568722519012950089983986825425536728025531412295164591508309746556731111935855093527531510003747883906200533113149832981942679103366162082809937025806398288736908043771771029969503255883500145231423647528746677814520492039561818886947409597856254180043486642443094245630800845675359407144908862657457516103258357899602478162530604296475139791353361348526450576453490602066323009717422663984579259474394595746080146155015511829884214667033154587939470943601506165678407443591501908820385235245836360149046337222298292904125154318751125713728798102166703572566783801839183753823449843401467884484171653222992030820014464089872010639987431709100863781188239227969132994050463715354576864836358529219545863608550538701965124953517462696598020786893864372212727760275178810305319214073701429546729714401074820147754515630837206904164155085396098324819397461035617233135622972362155904513980647935885159599883223316168457981023996183080477601668512819951727841512503543467915906307027473372900490931812525853039410107554330232521361258698663869625440679577689737710006547268071545594010480117823931921650124677505084410798200649068632561781344879765478384043378130156782809309152111245572226190170880364398040568202999245261649195186412589397305833766114772260382065814090694178400092234922863174039872727411894637023770976372742556958832752416544212396337473083166515526531512214701627309039875855777995834241085927066681111940158195493588424664168146004611841385500137424559363766627746300201518573934770810996263851815749597773031336416780640111238605640543308232316854553536198029057170057667309425266177282982331542252417220951600040345951829742675379138802571694094907574608861301598928634882208489373468524311369008092624268578268319603349330474912758421826333170374103401852776476001182623580483355492059732312272693730595289324858146820339124405445010507636795239278133588612950460547624372920820801501690207950830112166076022794304422676578805755239135110785042784010989723337444342415061154683621286016703466265392879913743748317576108915112196352187047250828285703307686549134379818707125105883064629993030265321211797183908495586955735780522571068787736693958305981172897655654053621030432554242348676098048542232267257543238242216656521973613956125625544094150064388802499566175967825969888248073451008960008552908124142661192845314850909303481874769931529413946894374092323832433192511595053365920552229335332921100887098098209179826496549782092210703041341603327638050519273660773587105673249424741196553247283422826761426255405102946835208665387469773345110509175128719243513868499026846017072741253722858431513311029028520132434191186889583125764714983657630118726895333979103752500378674666003702741181026767407949958000728013173671895293735401319091166904846414108414618182119085154015235358628428412769233575324925010996641956506426726976241238430609948037607901935722939821640196531119165570924487424164236134451864943857699264607345148617403957293026666249645091842858996227835689806640437350327439405797501348984526519306035837806762493506914398695294004893561526283907315236225277123365322122865315279874579141363800477257330637666997335969526004446842893423567052275076143685999877861424069315367779071369496084873085698134231008629441845577202942916896170422193845697414926629013143810448784405222691993134243751935303386695024524925064762970401636655463746390927143709253779612428629002867993007634676615513840329247744689233874912265887548465987465062008830633948460090467560219572547612785360774034509019077719944405364308048675961159364545863685212337197696729591975959128703465943669109925275033345409451665386282742359168501137365141214786624720482549766237335571665762834524319386563831670397050755360084665462852550362405755871891184316456177947621954197072631350677906131379343673354300202845402970215299130177803514368892194263636120824601572150022777352145283054352979144489416791921063243879492849507951300014676223041197863229782768942750792097861081161702232770897614603009658428383389634994466390820877001310130934356565451706172340230099961250371099881257138229306092822394621024353679576657311779110780069760788091450180265769926855583887655816427402133212933577393597866491661281723686684289714510708393509854452172556264396320774102608957274060226019886968235582167457324034501013370162627962028696349265791157758097101670377842234371614368253116001523504537409703073030383552893866318986001957881647351441502781232495823808756730174291319733558427419906486608652062945604938807926338705093200360130890340575301455217367792206160688627372976982862233912217694682743880964207536125305565441332883112251194688538158479268574813271458203591336353115125173113495223746731880923534294037506213798713715843040163420102813963317110852085608848692715325831964529523516749616759373220696152175328111090785246796689325040127688861162877764086208832703906533397783784715876455875527406835482832612614681849448045734770410013051129598681752859607894942317273011763914364559115985628907120154853504945668437176251708158474411648818268615934844262640923956391861466173224271036316999527393921759944793718223776762758701166276986751063620192021942138230307953942562563489094880327030350848310048653394184604815964789297192013466140420650356611523323035126078922876805464727577736949931998334649731531562320055266775781926812984060008509510747191483062148920020965604124516271261564644037923369636263117003414966711834323245924878190905543870880810493242531769536370010995918270824294487255155227420491631386308799574343548214868886771188550295955833939593749035894028383689083248710637288877677907693586887643376492922992483570437103126774294804418118390199198036274580877520069660311519527632824364922931655326932523016771922158234735028722067283727967404667616885000050093380337307148215841012341764332718503095449555257396168857074031312492528162930057416608379245319216601015164263095552878145608956119242106633176062384010293158474042627235905714040370141990877054272066332988165401444132779704123538754284032535662396032625267223619229857462527325343455054397992222693382155668113552845552448398330019602390683458246620218914691370138601454404708651972964059455576002132963367819409989642057371122694517679403263235533479999947811160573090563350731715980454848197591656264383833098969670000010818994138742440151162897219684274031552417628062830505513366608440629752689847952936740986541492302115825382019997935349929654743372479088261333277527041174452855387740010790861675470034960768671772056696805863343474770583903103016464771412491574854608191089183301531517255042033095386150432432106236630806371595923496504325170399325802449404076944905914944932834702134659114315986242162000302701026374848625470847037704058991261296745083231514164693103208300633429447279057290687881638412279509678511649371263977722394227067599021803634248445248184125972144185593300524987892339102718341770321796395369659145236451879242305637629623236892537704415532813047733115021744502884427238376512492214207734341069365817820227656060520115402060224654709848457483625504962085589852171308582746203702286555015612907022140453910804898781519504561456698048608663149881467264278510502780999706512358913082787952500918110624892288439605860695130755742263835530153072730510273063058109609647281608349134586489327426221027853985356022481317502520467255512704418272294901426221374506152813285584945041413542241407186504702573354712471397251179274824977693760828174138146030988040273931768534648216757829911278271377890706114652746313716983520910156655596463268879010571925290831172715769210900819082696229005148586611789197073809590402754068814257646207528387642335985478594713144804179190097516104154355596834697476826795375295414529735750402975460234059219383918228223561802590277084493483671835432608849905737549293851891383629705435414890102157004939210707299949791545340808632056093716411378087828431165695623776387954885846733422421396730587468593003799000185416092486727294111840795199325157150301812409467339308536942999246290830199187112948300148745283340266476495265821807762432281885305513547583852878657171642204509367753772032759663312690660729481003285277495479434858125190654273922022566607268462587367630634587861889190585448852598219313338966396961978095882835943163383221503913051210080620643481803777793278218447880920915996486991133106181427380248492362323329690970728276502314941139225673286076791476051899034021837249818159236974418220569256720661508879232017878482187761447329045661717415704055285968413989695185251423795648332949595223353409113732550544964306380959303696326206150235713336569292137093054466533104421967491760930118502796873814424241054140190087010422701282324524836583310752025389444765797324168010620621808723824476153507102212806467148768712469837936019224338384102740599215247478159612824994819020273024794253435078939661340317209298769067710209903870513813041179915771143308758845481982643636504254110576057209673540764604403496560013017574744544917157110713919973720221961165241391208518553617407656447032168086826642406021523934687728953570040066091616795072693409055046730439611538591662795110429415616425181678687393701137914806225575837541681908303458383598726223490211869506543954215265629969485012659165788724376450592855500585360845219789202230349907335672655607032420180502784857747449883426840193547891115901606466312985354191971260297699744619541118758968448267968313334310841145560229935746649909900093985636152746051485528096214565793750542365430959345555299533550761241850943478513614047441719046235547428858684367837897295966678468076509459444989068027731118249185778055628098139565436564463831301238572959357906855547402430397205081704308536985441746473195957159931285011966166417664957673909713991746357886983988667767348519557432603014646833364847302516625418886182423370289780310682753358884948590715902780910776395928555162937681692851452223738180349231102391108636315487377059004925623244228240522845124533193093236914581000887798345464975323093402551613788405672310304293550216696476396921611333435043494744827355074442841316353280125069075077063404911202105024602603814866535920310660088875909851976001906969830026982046294793404901638206826447919343448218766296013240434665237369802898727759680999345167469457463691652342678932580534054890712725874964406022490493002069402753197824280660130541129299805292821730246715740406343460984468735010821966878738819991422618379935296667226358745591109008081224742571779378371094410819946886630277200715706678317795775401527129035398295668533227993517932693347025681236030256575779770750466802801140723595383857352934158354035413020108899299934776740978382822704218856625541896216339540655619978447867659144791993952934440888799911753541508174110934155705218108853692477426422198297628598174322371037297910362044815472048889375101246536374580027669194397596357828788821065647284336969050880832594798339491854201837983389190624207123834389932945525601536525269660576077794752239203052437206668621874009788631800721020291687119747683129114977308806274728625701263064724052296457926700417483133472412464113003850127067863237859401662117914842621036536321312849206018399014963924882131609692205729093332982245848597446825225888753425246775720659973659095235021398182496613340371066206639378556721111049310096167378458767404132561272299137894247828448349325959319424067202414157854652563503569409896706548692573215376114156110356519276625571359724228309894262863631663369407435101442484717428034813863691294162199887122121510378165556770968626101156353581290978230135611160663936519766998938839961188240752813936119471178733769308896897089440649776045872475272696770954717130955321343188569610392431678621243416108692111218757163505101100174155327188465411083767391795919970123608783659491680813937259128512648015204580813809200007778165549863172176514910978387081354214248828105095142538533957027051485957240498536794356886707333295850221875859648858400791947542217124516222720346179662806401035461759480219501330858646434816768822354366390197374211935495099905087985025351122859953015140238565265803983228873233833564481035288722888652489401651991053955644021214323886024412683225598375498753366443478420763651300637604825801570572602194986758748068332167912721583852235939361484268097230107730823653680979300676992363395511462842942932526165743767436394113964380531861663483087530463329118459606672482863367505473546265226956615453345987567340658240376029357840581595799426691267554327045143073371247232504445972542809692674286979469536564359921424151714334238420421331260438619131942345463718648235383745737827034645383342381245975085490894637992206893048599303531423878651083152346295836390794925541557386330128402146353480298868481457518059369755486271098535418205004796352103410645113683101675333761628822598856418466429690719288877748325057940119228563080147493294146713495218298314564487289145169041985386647303330357760833562887051080465369415109738330817540879105556314963827990831973682157229805114694557390893162593565816233908419299436893457151450962057091129372962664755470399351651523778051073827988167361590718982370184922158022483941246648975243789711034003835033451625488250878260034822634456012764070550290469260410331280621913447861952880379783479955632801138738408217483571169430161380965691678008586480902979054127500267177398792920492488383433709563625804076425165725610222837408383673813647627203138363655451827359167742957459442847224046237599942775734934732423332100533472484807776898888654281503948795237664680129092858942747133921053744101627331506494799040274490429824150157359389479225043452733714833813648456817793041964525898020613866145707886391239031313582629484568528927018973631545542540021347118356232158312883942119192944952336527594601629217389613721688047376539827736570809924903158050174350486078072866793516709497496861289882362991207247812238424245025727278168178435153094396841449066066750878866305384134643402277877888330519973626458217861094689883304313873740566908223947916687715472930567521352903818189060121950155977789704622577039656772786457106225039641522528750371358892927260901269727279207886401884808868320919380616765758706952940422539810008776388260509493201225817952743971445745831962229066780753124139997336497431987819764754961236071054454256719869736781545149902778793320484870140115538989455622793414272791744076064416596681927383794020794420461413315656195594866447852727222886818082491101171283137661825546113893074601039899190574037819529734674268678903760760739242416889162409492764624352310321979806076823254504774480388226612178456196360621519484068639342902683847882960318436897711510029529696066906223220040265869567640017299656767832592778859364815937510336443198006289770255316860182757274888268883625268375916873421818006955129786031428543414534501101383404066571793314895149187854623306740497774658473211450528033989227990918380369843682064131568327912698699588729645393624860871801198739478576627767273906664756877068015730994904374808288729955885153637621482171159942988236339544678850626840217984853942785713234142198702296947924797040228090891292556669695110758232808753063516556884091865134218959821310808484986775371907090512141258449819394894866605532657000297755313408767643785933641352253819732066111963473067922733102007750646566497850740149806070610203732293700124409768480878280337686541904995047449762345975215881882651158366120658877270423817407285898755816013110435716281215076558851810044538183690811842742409139825632665591080413314941651348949884102655608316332114434988617187711042452305195352667277853134893370149290744487457301627182165463264010558368151398613760128443209435296705884265699756775089853181969414124135085596515643135607245952678713055248217899755184747956796135808576363726188399050386800251627822018706890047169389609431256173062022940901857837010332463796027713660519531753071803788275922929591534122711064067694245108008301173836799451566983953678787749597338356951499699431108756377059247377216116281021122822476808032875464711303421210076551065562705175613895410936439970478267587072924951166265403005141550314652952844437675259580921009617609908337793617063227690249512345292013920313044335098992801044181985409596018296373752051606203820839962535763485392944797498948880557342885027488203696854392021876837170639654240676124193666323580846464720043688062311457314614743573281079555132709769578116508320508237637201585790334887532402281389564395039702914001305124866430302614087958926528765023349624840698529133964451116821235464372235360850495607306332222606037884901424039239141203772324339681923336781459096024691859144722571814472601631462231425322730680750913261199786950964861194786529837048288053707002044022947875540042683562239352862517482662212994363231102169397503923865003742499909889882891980261834729416104099125358480462200369479527739313307812789126396892104056186095570847932030812052154641530247336101881210003142923685916994386164507757698739415400200596685306997765804245970288886663250849310368834535140340234743247690194998113749260899382518175322685690306483996627430603293199222565711823155688881189146700003409629136070114242787432953977649802744808608706762470429688702091058550026788536257677361146806841026564656327457136711132725710501583711504935302516586353307859427499105491241798764497789574357191702093350148206568333482126108005517456052769382958418579788699874861184683873637970608633945750746493184768670257069243805801998872058198259457615919068856433047488017319802284816816406132222568868206701068929523747152643978955357859762056589303759010299693707147081325443496138401682565532192336425245295453543061658218415115504583913934333330566370821298830001053976148279665550072932811641544000612315634591030559264134802946930075746362698271743887423245911078046355738933571494982106955443072752423266051112971671153157237335960882665608138856560572507795586935911004715809780620387798065230708913030089714662542295145677790920718649115988590381702702734251996619676846674564744850719271576759079908201593145998482527836631915908733545467458519908565630286226142679363612425166271179090018336605183250137423913710213918736489635169280972228569713947899626440077228243777312982348910256058762389226561788928077309582240898703967168556300060777858085111387639026065667943062427954158407045740947470321047309050072684289986103631347006260625264098639448309834097133046635548734543663111318837050552948937569066044674748814138381931819295893025594537106019725753381806612481669307673435327946827039374755772875778374389031595868148747021329333249998509154973264544729568423849863654353932125432877391540561184417014023917399634425902921398477874277096398713196827938103367801185260114150907275664258653978569176174590035896165401750597628176495899154074581092625999486767702524510687307235320470016419102060322520991971745209497666597507372775618801463906694728249770222342193799913883951215432560642019187756543188860849811896189884106751276861031531016040728322742441682202669976119232733508038843000662062181599819964965146002768139296801444991811891090336197586074515917046634762322036279968863525986484760472151164688278314585536697608181451476525211146443744541019527007273841010450866662725235109440212829535156686382209612167747207805765217798541945561546430729226326905751333833413120562101832593197329280781689300724456755553646482585596934484425651223683335157164917991601973664210874668259397724735182363275149101296344108271660634104331053339445196382185654459629329007929738136429547696984284061388819927552572023686040965015828279197376680025365123035986430775429056528240820590465744171454942751770195278409837418203233067340750594806061699782466702695441117752067306373319734123444474431456764379704627037436086225448158094690192633072785608331611776785535765204578050018288594218849279135921866887301921771126990623302478884037928179966928397517077625353160390604329836910045899099597528450090404814003251381083431814472596632964051672614325230181499725080589881038022052931689694975074029134449385757791490242318544496640240597632099090956571280893190386749948335482885273567798266281860630472279805396008979976013140848228080151053442913294703680775289355663462537614447278516264271285546798828750342064311383130116066616953218426206811813311525792939258812801213183155409208593903031114393254858708681723090475990227654990311391693192156526603839747805565507800042638737083319516574752591283697947023792613979430375073587459762328181171778606632627554038648730925148414447301799480509148908042228561371806482011009095501179103935538871749758880862198364424387341991783307023180764917265238890225758445483858394376468734897513971930955729419398282799468542880072371040389933968865708101045055536159544561183799860408254145869226606826626802830715198260668530607904607953705273328466920583459427005304080607222133014206803463257257349575777643060852938124380854947981680165198903677257773742490441062182346348227396025634048545843340347113034943065191066889348398470622660003879248169942116639401993015581749524983620097239554383138488575401118018039769297706847763959318227270941942989955949162159381088529765935339128624890655185672330555006407047607299677086511185237979764862821449511592271000374386870540176637051782102277117383154075987430330558367612083840027703431937191529952587727224648180486526175938208856279051633234832410353200787050019161878834402010204897311201107371027938008905843917092808398672520188310966365940460265066146563183180880544287373533963831306165731604777957630331467011818325913783742207005106054129889041566650702755150888432064077919104458578992356827918577235842940821546321998111428333909029774570217554714378736834531796527865029672078102732026877872223195168558833146389521332760831897785221239535877599753136299777040248519734081326711907702855031093445588503137473881751094283137129915555867835750351752690822056825477709281278846099827754257288595038877050586465896457167372181894406245267116034442187113142506493866863227289542541220562342630337669981660882215943307539231582714935203376804685511691176863123680208824698722241745223908945507668712325263387853242865368953517753059464438169780494352416544535572314719639904855562029798562356338086713898650358084665809817182660505153182293347666903139804536311539849955439429331121515462527363025672026255878174032757598107778082279586463977126535606779290731409141865737605037053538233182385826675293315129432093763313455474291868373027586397018906837990864922243872106969835100400004091120850821890085524093962471193455856253250225219843719263990271716266319291771474618517050473581714052950586152920407342731670151555643072314379350726935311661922724244653586198842182925328125814338491995461124184529273122533756706325240617000482006815305049401950881957450318265763451519034715381133136375708132684456270483747468886084770659554044843257051056555955522641077627376892767811578396282522079807615315726577141948237083271123357884666123896216647613860846953022939956548856490141368321012399916965685072677738834062868228046017646701902007409069702238447322386816502261644103155933197924446987321405307314418510988536498535100112380229513227003640516026096220855829276055195333544302489750377573038667185516406265670136888265495815355115876580784050758569606585637309244380752216977830830764006260725898680220211580635496529152618273321044126400139666579532143160021492166266754700000630734502321352529558711402175441002590280081152020494171345488926243965460454769883128897763343013360422554661136764799922170750605540900051007972721912103258835669790115181128676285544159424022899855052689197772316288365797312099717419931458809649644819633839436004224887507862144472408333929227187919887127601728836754409047367500761157314452350991601808218818162501871107296414335235135895613704406906553724609788119774692176295811607183656877483841294648745486075181942084061726186426556879293734977192753840444768065762433803561162671677682615764125404411931808360376719607904608648509242078700273239012347746797822321699408271484653411836187771868775310597741706931594955211729037627056399088985241839848380689606865201844068988413302798398346230331100430776650704971005584216408530609761519262172996817411124346432428349001947329288384842119973288889008893787016161273207550983747952452548385009898113120839276002582133459238048015609225435921593516893255443712951470785826666650510459054649477374044341030703957364368986623397591964674085239505639854871675812912436863324221733255217075676813004418724114440026242551669721204594250073368136111566345649123969412376577401741563714679734351567376030053480265668308721531508291335555162648488540000514209922580853924931646180695334477644972488901642739258543549049063564568952464899867553745914847480039881460730885503945261071139160088275374568949393867975582244645870873587124569200237889767327702256661603249776617847620468283571412447577922614766437000221364133827066661582242271373899269173847346395466637557320272682257861165579615493761560566678427168394182078517295591684696374374792776203359685820325904747670739521357707845443322854898341862510772066563876041392343791740320134259958576036294244144372881009999807313024446408850704754172103823639095598982021477424453773441103286401008920609367794504002607813194755657438988776222044446460118422328562624053559668442751083028040855426329743789650923629178357774013177936893503745739755482524222726133546990345884043218844771353051284544250299269822685484467674734468775988477474640237453375500650241579960374771838084349698205267740076212993161633427500250524769320952632100082153607350696491361844471250757716729069441195529423550304328868702062364316828342674627470850600619268440229663780774466773773482566282885476797925077570246383349828346848526756651895402180992404588230889101157453075352832885949100223584217164705386387807526529680492589027110155071925656937835659158754315784177340320605229887097952741857114248425808028749144957795998049873729567361222440666754757891740831032144190385265174359058402579525927112907153494633483418138645528379001677702515594680514119671758906879080375046979611343563753285010678065409401061176850537474325556708313398947616421119649087906460847803140242191037675744269121959562553858964058318633383325416513798695970761500593848075868637047713849995279249072159949106606734785956416006392251598099347541923345132921722211833538148057833088994755951635455476937402664418304203370016025799259330517792670893225918182777468786801297978342765031849577803947960971026150680497128583130729746054611126730457888003487921245363401901161813033032057490533401044736782884485249708856811365698833065865184976113073267646511862523907010260412458959569472716335604017016472723260749800455979808304105269258416201535452636357968824766823265579298577443716535872497171665322521516263532081269221650051457337034235827538988823153890031942446322706694374172395129374597174942366021565552767119656939985052587373192287212012449425623534881489549277449612512407810967081383922073219127297760239216658246635717950920228991933414467255556395846253515848683299149765193301902423989337926376032706056234232221639538389919128014708111326988675158478499234399826672598207684740018950499986705126880618381231738508511963942857119306744043946491791583565425936342095534760698639155911243932606717427183864529431405929450370501460773793104360853858817860891286548591511640691774328372296405984361366754132603872516859232058307291829707275633494763244110014598540241704994889930708993818758430991622897761699408943337405780331978620596312756079951925157270106413977974280865387572705531273573877585782398149164838153000568246664586150277520952293784925482743690929488010857091631155957053620435715382147382889785034902459081520131835416540959351327389698460524899049719787895403115813994351163285383048044385026313901696019643015334311708565049689887383180096724971325414385888206596668802443007552240744843791027122713639436707767861613385678676942816102373640423746602552362081780512163226227542540765847299545445544841726655952115038455612398268865883176524357879774485686673000920179288925222072394984579054475615944979301426591843658908936816550074207492135624068350278525517140333236936540574366565417841270667296302410991265105346800859288676924666267262523939798659802545061955324513382936038933310259645361016542731635855798833331688165594769418257074656213556353558544127248172155624206719696557561595047549890671529008786779939790447370073261365033773695494047371851787847692519436518433609478795763049089356250021617718081199252950521711348933806588983057237917674665258398863590199371114911352507963238859559016048306080034884213437088966101527126753109079250328824970435180925629406956665527075538972891336189532774964654544859275403381347310402456299235779665856785935565672639713362813636681711472770249406654939715786369357569385352124199952511313352394174295612223880691960370943175588304694529508616956677807992536232482168929577968037231975870154705793700979879609149171996691565343591095088798957849005607510654477974761210359715551927164724975743971032821638075928424047876054048891722782077439134108573312046353914289959895404257175015863144336577863494941302682955391152613096458569309812474182698626597198279690301451817176956331869491401932038470550483423329575347941459668721169848383303416395486870922325589820940299737641941691400712626535314604382932870398181952256925640747656993946704173320735311804755250718707721243943053823849348036181121080002008513796355875516975322992959926660113532301145627729190808566028561444507189207082809576672072531902868014137689272958073032305870991670216887173594176600271651168671715253831648807802799910837216485705341586802132217199171616164655044189387521614610834755557530574745812214796960314752551273187602952187427973719020021048872032079660491822744764881543340810201357856548270363486203883123457886597487141335287806414754433381033172212958669179576639412216195330169404302607137351760988129538547832460514755369113568184576526822005609438812416476946703412000102624856932514631340507979888068159101917287746335704500996784100045954608823529410006155047987514828717591746510872639324736023615012454186557780051807121670914402173899121582878333658702357375640924867275308265364521374638030461737570168115329717811344225432922229032611022268917980551528151052650270941224129980820889755273675789862658472688326788151823267912503298582998607057036134946233913854685987883149613339817555057025084192094367602959896989451924047604117387767400293379867683400533169460819782248016022340788079424721782286767146157758934626972668915850596271081935689614123934504825324059251074039940066077787970195371195530270336460732352064252463884591941483596994904175757619131426856502139406592046135866313293819148635890621026011286399887928470933593113847273437040879940856132033943622412388791234203935230006762192151837272497152465546859890507499320197904730930635907484341842695657054348908840196612611156385802109635100995994448430567820136537825452962527424440399948051928454404865515885130063068243760548454494307975932244402224452364527577473776243301784667352603970629620938882887447598309655522725067920614449599962355944469257833011575847678545160981480124097175633445185008266201057544776666978122017902236484359211452676433066035730100736956820917730346703973033291512183967353351859334579767184890101468853462582011302137933290823858782598620646057920477898129067881759854613374912935260939038420693245800153528013649109037788292667505488001877773141495675385992106128386715540378886847479910263241210295482314948672504099829438967999530195946818415279186516412636831475124731804964071795005664897652458656765168076622618088610427093288207764678940826744986375742349615308621152373637777693315433792502553667187053601831893507707107949855780091318376959932561990315377072016621926540695044236287347343095466695221962492891362862391968636343767607009009623026490082777198941073894211691603601746456070028158043240574055247463790756914683354918971178099892442026636118559512725126914690989599232491152693360485401298011984530709218313647838444317646513635191218149317562560021308826025079249060454082982401533181726495710142711289913583901027883306102558889648857555177749792405530122413721335961662773457260446444695111885892505252594552669194925493695200092232703430814332770636788716317801006545851215194632415846390129563303847084413107012117252514651499117573812175960923387378141471774224054371243220264693331860666864665105855276432449495580896589431377309927479057791143303582451064794919577018355048868741316781031529269700009901859523593320799323096677043701475043712073568673906618684084883905984506493553976132379034817296256497212592072681534599519490157261258841891316823074919023477227048236541601597003768273408353970265371420334721035311935778080410070787168113041487628965792446644234476060178298621495615965491972174627081083365635403319391667184324507867747786478066648907816575896084519351643123664046491538869866778179731639232011968409075736555527925805825946492594288486365711839066624889247800314579384830680270440712108482152708312554364571109452409923521885147788263949620957012536493879215275565884128082727856576546226001450997943318565806801545882940077254135516058504985974509264011902181488826031421961746228750113070137003844516487182406805373107658306273494380888951337960334326111816103179417396202613477968777376746952004895357959143138490121978432021272069668379578610163756228592464632953106507228264053685784640700986546863212926296786835937712737270521421775711345642073697306838329907165785618512939268283529450225197225239055655147452802270535837545640866034179988700694894966376654922548757153549584271549048205430592249621224146649644372181205370734160853386936786978199402274792519513777858955734540498998848938426093908082992405220993934471462344788995353385374037611814735511337859594724867292491176811684000726881464907094023880406592710640200891123349395690038389191876095185291299360076007422333602121736333170259040549740196078185431462482787576519126991302178171234071868655152074852597359682212906541434443080453082993751188783699769608824457709393486766196837635833058190931135370739320806072499007562046648143698519396839821985645042060091743639513474560128931677645142990614796504355021067460776345866409358129704582848577444082859161436076605228161731681257670367432845959555363605976880227087668948718734439884365003636130666993624135015587600954819856099177995510111023970404867338082975474423202612570531796725074833597316737467305710287843465579574047224081107688874158741917765301001546657571406963404820071148589264808910418201477282655839249761551455648912855593192954679402934817149654982410524933827623360648131870757641892737381325857778078153478088019154086355082712993350543245827519700484313832431473018451140644116390032689065147057851037664346285244909495169273147920502164999200950737068786268820317254372361634672026433037236243044164119310161325924232748125676794764809171035473670107422847986630267652569982313818971801599017224043903250544211999078322583201888999963498596997716965540899021592945443777867718428390858844788296958888957098365750744434844627956748982322046835573796192935309428649344323087515545192665082172917822819580802350927807911045740976877534329234899112747771865222335407650774797391579091162912021839104880701013814936111358570761826348679365098705408769911772357197141524270706413105682558102837254485771441515352640088025891147680650748150819093138058334252196288389671061776090328428139848303364299933754200984073128120946923833622303327020284868132883866802792530778055970140926492757386720665870073977361955873948787458291759361228262494056727502631751718999790754734025179779036733983027190814193909136262984088752142234504896535099029126824833725346676098944925740773350552131685197826018315336030250100938337040373284638097839099565685445342632487010023209240862531583721475997506431258537914477376258370675596536869140289203102478737700925736231738905696248391742226756804942210870357608408557723709928029124520501096912091922507084147113695702304927174699261086195851915824980393184341581029910572641201503265145978682794270546390687105922788468515644643862032010000619591802226898423980882075830630120994573696827972346300230183374030712377413370834629700388544435569962810351412891639971043995230013742283198023738241658313835765591865159141221951710439563325891941375651039195178332889794882682793500404574469363781205465529354150928355062719468298193654111056261923092388177696234261021570645553220888117141289681838712677174525693372039015971459344263143022857511268678683693534740655108861011136069097798130780108738465324496612512635008621534889225738973515898345631924649283719502676117384104758448134234242750254333793435748883467136908089112663329984279954270954587227611707164837616936891282524569056815060338879154769899381095304098776904491833381042507185969633586580291345749175125400096670388664615808568737017322313529199537557267332378917420085484499028636819208721709927116817432940675274357719911101331976888565359132228211093722278292025671214374516454062855365883016089992867016539865656206879201837140042207080193940546939148503193467402743033575491192129060998928964465622726432859173708961713921430818182300890607411750758698956044924442813546313580943353619649504590912401044498181674233405844001546698179470330644602117912569240698504320013289138237712768861209584561217249161814296106371193627930613910429597585936125855424783669659500336557974513722868849031251718250659883253686826364330427830717355811928566233890655160073397559148466682495255508956525464787869893204841370089384051648723912387318410008964210567030555196316598223905395314512324845224940643952588422119187263892141968177845009561889758564975271623453729608993427388151665729065298926539926684569383309008793674270576800753518002823397428912291146167689956004696300175410253751373830459551209569709769500904762649044248179404027017971494480124802699084388847718371053862546569283424652935040217473588023178938426154174453930964343837886712363278850251960421213793992758414099653892933602299209900824697678970943913278982798300623950608552027746461570252490344754289412451623093274897317063233380222241074994029993895980154347615232197606029887131671440558918937574304360330434017003448260649920186586148625595399701780027815357338817944024145261581497626662462894271831305250420259809419726162283594175954848892698335363450357354639892012394466857156988025630620156344719355125135356609579143140070874334570167861420546802550413823649181328000902836585736173684117399820293958013914468600375239914094976692844775601423417640299550807527978033140884672579118188736275901835686678834338215182364449847211373060088889232425628178814935667313209807057442469475102796693840235158688267737041631427310629077035402427245213485233079932503250516224235446592653048259383238226967681006836524468422181176460998194432349322317165816051147135264383059125945160686518195134320603356543603890811510664027924562227050405061449229035898169797643909150339710488807252738866623813633643497878965758675447495032854513996573957797272119721417827660579294714447210309500752677942329391161022500968433712006113231960880668178109793619921209043776683385441018937787369412673895395455304102878225229718746409330104016240760728848637734331742068541269923268482043217921988161186759115699491224916414995707279823036156169880319940211260184392575737816624422061237240852034393000458232469338586549861290931884110456788555761227517960315250557612907749671645342664538659077688628254433298839738089953300200065640183151281097538812033782865991326225140489285224189458979073210527891681104940157608705857562841314899776181753617511743515407144002716611607360230575601255718767275023643126431808088555969762739085578744086045628675554273276800319216030811250789679223007897621302710541429124407405327990241502339205618714434919752512601484559560364363814073355770580934797876165653245606109311035559291866339399479531678633994926912766133178961573947451780978093540958118433782722675908108087131557578407453317798171454871311217929924759705856239237681614958891058452748381293037441759347240833266657525449964852283282664150387681025527000344092864794255652862411835070875056706217220877342523360244432304612252249842321063163797331403098505732984049861920517184524068566425866951234311592794785222692591139272733707058817765764784230769200177164976313658351967469731472355061309926563452545907012367033503455434881716463332587714884222398180289794193888068269481900580008114333625989461795614399807672702893595307014981241775360923388336545430695053436478751420957752761261059515075545904392531332899800830056284553870899060737474636766574811648556666508589181405270614453638105351188753123704930478024105340509199897095725522645897548153993706116026877805366189960696796937141880468508050831867406588081322487615183463684171097251089626019152836414011590616221358414192594968766388692170252950190615111181431904474859310484291242631101473095727427148976344316570900114506204662643117907235982938790087948902756046839421921275462556911941087304257230382487509644378764007202448054473770873642219636971857601776099796192704779311000353219989819140298247492731821148422008994747160351693196038607653221352772063152115147388021128284423099098846689355505841736648629195369315412098384091570557162463779658863843934565547571515542056201792171040126374821951179583683371757904597987576353139910903344132703384901474340443227306497617908987418600804458049812373969779740021464647545808586526280342383533245992631420297900636463474349619610802566200965502975651268301264522637001530717306313388290380042663649638491899353877509548606119555910323016422184934141462121830563111237443441428887407773459604747349057567288226566549215373661103117740261361472359560652372725176582563568871187633705471578298779455455214662345188850443623243237170058662911341255555942766890055259002131184529085206991746701126941822586846699494386125361656279664226659601964729718728908582098905052369853319828777733502924073814189318723768140463227047418605474980414208247381061493909803604381419112505981572704780086316788829418469568512930358096506474776032467782553988019575022923496033519097446884974972661630972390460190234523873313063688772662778978490978435752698162238389579916229790725589989142133337082101413004751364395147366645969831114647570640031745881937427178008273517595104711060978140599697222599351673413417169120064045202519400201425294049072096138964331783498583301049990502103323937204915294349623407077161802453001624959467319592776657573559619974864221078425036729472875962333891507347402688584113615805969982349684471573565391393285071432948385489705480023767076522780140981775950482659956998476685369245814273097557531167506971347748913557816093811783858903587598896279236652223188894472049490585401819093840258477223605655681336845555401606042555758427624040898026313960078482445493388877845614964617290947809178249378114939600666339040165725701374532630320939664693038730234099888870546082326759029554578472705416305415477255883514845073379093096389262071029374951562987414496907570853720208119323230162062639467840990814892063678572010619237538289538281196710218192697277089154130413888461592645001479793473649647293288482281569650173395251415710428028479391602433448397693398519258803866240226517274213156656952662580501009426818280807206399204717440722008615448960981472965039140414325437945371421673021000700245395803973642960413528300107806573501558172093943411682762185035105934702303002052386659581738001057984320720724720492209835407865975757609985005635783317170351530099069481780369509759497999517438108588864380891448332934510347638565936433480752418013050092046092152166765955026772796359483139695433519661437104229026127449242541215046458316270873463050236687189404594997882230779212525902240192479969759468290482129027685347946625138150021627001334048575809019189583002446525614475454821094959221795593568337491164098015496329188702906517552508010893958619624087424376421320334819840099137402639001768490154687825369907794820818639215056419275009826378116451743296395018532675181526716640125752146322281771235276979651253660983984361916726306501387308763480145907308540305384235434405361760832919537147304162872598028865281628478970162561499038443821796005115904333807917724210484308970359313040277289451713109315601485615547436696936597238318895088768356797440582157475202598622127838547408213551512517187055598462838829569675999709333925686806814939541460838510618353116921467143641993428178683317683084990847923009189059926144727121356464722382056836038111920586442387581111242632855548785033953219425936272634845958716227262816275602026097426342190522388209121386623891954889969037252491711474011686480617874234268573636695873365535569385533135807882096076292067370343369818844146071850238365640242991820560974152419463224516739183071477708479580134914464817162022870993004565291680259804249291882602522762105340994756750077883515569675793317778259275131276114957543417920827515944320454235612070983794637064005427467834488329685151070904871214986902447661152908956771152083290005498833469466195380701909114694338140413656891049448129416333422405065257995276697735049137510098642745906383184431959223741715466669578881182604567851282127068243152122709307971459465163746445772259810220641178039228820596672445023953204559279854259189271492050361321548187113701815464907781488654089675877454911796554758065539099255911228162677071464264162786408825294796885495825756147255738469070808783342666626016985055107561238465350762709839898639930810035986125585560072822254414173206322434166425418903231145664803146669561922455631243758521659944568767859904417481898531324916830025801040532728663435789482975633264205266141666773214840845799543247413927104536029857729127370490361266325412447586068769518019920637111559790553150096642806600919489152355239381737847432877759030894330567526883487796731817637333828820289907738125496748682425171806312371975331184934763088060794260559065106287751326111678753429032677939854320606977366862618379236516877368129488692812963072808054388021700843031454322010686662129174141759628314827960710756402008337302382392359187914519299338758952863453973920365484241325843764929211613982626944608654062658084201695049170352241286226517185921004393434963139443067094855116274021200318609556681081512535540271246781168166079892928367137717642783339683072510426007239890935916132865834180687576683892783154315058600718677193199759374486980765739407121442855894157833115445299539621446692495071226443042451111055648656031024672153574004306838712318584540368594729369788838581934293112182678879060022325089762020103125016033198713640744687876089390500851987424709482481697812169849817909844699505193745664776285952364345710502118866878305579844347378683842354005026438757534954976167824588946988138674501089023040824783187705117783356880320591117805441401957026314792592740899354686026430579185297427650093685726427021989843894624330714806765229249663351986909835829625247694063995205873630597143502224285296853977806409642538518115787537022920294523262309787290871402823171873006865352829376904285537536378809519135196970931900470364150845223099584621769103110430218527389203508143759809449702513569705311164869422951121114078282672058151288371787755549467653186885009450449872224862692170248382227341821125594203540946135829590430287934038748510856930322296920893001606713763095989759948721359003741410089433841828363201581286795785357046501749103681688147294855392843760130391617182271037041529733303560769358533456940075922211209599296487953303717243426191610300521508427615613885867765307384396660202351862702154522189545016768009825316106497858428235280704647022490966793859609559365567750233406055655261109503234362645641389604166204430658435719999129689885138928872746479429816425549924095644736709518909343127778458856594864461300438719271593101896425851000546071771854853596286751120210632772312940351661404868923142270860051529709555517634030092144480525163243721545641170639418629322672961117969182125361051665544550613729769751294850980527861851552240197237839299151836231916671818039870254685881794544243950867455361968211419716150028554692899699758435385658639111085136437504121673535508638019567951068518102359503908130999100085402994576823766490317757130332130527009290934783983296257459905876740397595671935562633525143513940654085587911157634710094861169148589543425760817179796177294468402919734393098461080053616650154634809232741722382687915375650104685853728487548371734183383582208694761502158309919265944294497588323115765742557463942004028288074111080122146270314692846241660844767461535629111999094261195295505949633190563190902406147352191969212186837994380745419565679198614386347838394009244073770529176297674104016465740763589322055653102861267550806339283092174015952728310259855960299092360062491694960315011253717400160318347730703355191722621900716363316783615987097334085822002495303549800557446109284890143936253242119352686484689605999449986734118213447095195877349956056300441590094009674467404349854618946492303611787324984845224548175051331225334783277586698171267708780661869016922254997158979483727429694551604930051971740926860586948932877684489591545940337840715399289178179054518906332819307196055041416490337677019610851898737669322080515492021454165106882928779718243690254806489518523435915103867471690729434646596184472168809322020106959522439069035294753905411048098862970958062570791322804340334258992656219348559228631004323980510439578615577591343828749114856220812357182886963565139382842815756889050018972490521136269832641398515605812358561661719468416469974211555275849349309659947239664819137940708651146071825442798642329514475462408275353430326503709910347194353124963705812499026462584704961414057474519170249805312542031919447477000033567557130781496483053497897483025500225941525536702569398303842003042028065597749695854341447754707801204914223250115273678409825064966295935589956320075926616909039158349637649730160837870991839960355667034776279387208838757225979730722087661558860322532417913674996547694832143397598748918570412884529960574984151143660824959852707502364264452123691601573915812938195416575403797687184328525647479150176565936491784204529191575726371228897831495748080764595972807193654477870284698535169738403713465573804608116555137865349226938026327032134256303710474610787926051989711735400947550939787791969200355128948292012112861750645257275000556669986836698087578224996242199802468037515727161955534581640952867424038159088718321002049822060647284726569391748548480100485299688225676049888803208998063401373861580485041220439541080901874060204777136442790049400100382727918692018540771940968240922080321866213909581297428382725591024354255112200359244329685989414942106678961205438651807928659881044425646347898434215045967638536782583147800744501224828430610831530287602097192941989553399835858430650745148237879635452676572738634480290956334723507720543595999290834158057048574553584103713838101670427172813678513950938651889638320762714258794689651021684159186926703691751853814707499854097728429354196664938579812507909603331519562841100674654996249795125734029150961455052286937699613178822003220397176398684447663263689881856077688790003353157945860942912543975783584868201232299535766170672351796604994224613966839683725302484497657439910113080963444457568706522970641453664518653073130834461559957654688472234096363583190240616095525924711298737428162715793244863726847193890445926393968731379988783489814635619145452982331014357993645132646786621131530455700867752411366441020429444922118416544700332274592629936365164196807238848290667985768776901968057874681341506352929609350194608792818307043888391330689412531343014433030575234706171011563746525900521610956519212720128290614198421786482462312498439180002990197324107191034692951789448724584355527034772691699560138060967612815827420110081597631720985526566874885325444987382943730568406003731098531249304098725523430834131092466411739736652502159792516919934915419146503506553750316978613764491722748688758579309246164806755360148551964391166802472422817497568656333399539441141405926627305876483959606512701182005781739547985600168784694825718243975669265858765146935477010363498798696446941377070612474269830539744468836260837295562787585188471027826464242707937405602176690793450720526974151758836568793311557407654670566212546482511257687456317287459925883852132171181003650364087325248252873548475274848056999823633462342656511597222363068899428588221658783156960867512450813403256172453321296699670749419713571328704152763054796720184469026939204245947936674768197626841224871437901531640758244952752739011447835723552563011970334447207015344582016193197954757476972334189084658192461236635552495509622873572814355351697650728708432570297935952655881222507547136026803794241313899524602390913504272083220977169186565753914358803690484224538032318711078165556688682031909825189035850588594473592989342436616523611688384252036586836188193162669786223360253581029300506760200300617106915378342173282346115561304753076114767472018211868336766031764396704729869165980163580806827024584166089919422374915721615862511778879862122386070600243894581893626240051195261132420759979323165630895857105916255548925824481157126301149740477409736907743051185571520195015841896965832519228916613616258532609830978075567729723886124523953000159418300292547226328374022965702865651421855937730348577560320304352322881940610820087193405080298485120521590137002887038627654988244660112055031376777130842625428412754582353411985540057036159211801281395285393260071814550071043956278515106845476121842253280029115893731230568769057539459725250064955096211253696798575311219126378670156370379698781158668727482289443332776512647165723516155914974106557671681824089151666330314556918897272569261071439000739215117148366990357249104279311768579395496787819248644743585203613270715964399708951402950122714334067033815715578849896941119304229104126237182940450274915739277423525205267211038399778269743129217618741690733584582502506253001718619853724565983018121654829128799793268070079101495145868613988175481449062581054529830144712398533121172470351472649538070326301775095394651385089839235366648775519354518398609900679186494887966713804234761955335325502709347888316573324685629570415280644084642694277297773988592507475148922188903961720222156262659560310573278060246413697140872516920681562485224939132791781561779462943819641068108576412841854001500596585835715905893074221203664252071293579357819341824780442304494672448043317911413169917529132937811429345387357888927625927702376861432366888267139276755002258429480997158916809904485830044429764652007353653451374040229422882643684830354427173331951950848213457820326643710822031064140319586554514734317303051257852390250305282695425326084536925631256828417019021679450942507797776301779443295201832987223920119585955485482986249396956396480637030333465140085718132099876537818659714088334557956585738572013345668741295179813155122399348399077586352576990679978012749053828427610172392629243936519259756766164183719814172108751777527681668959440434832229856075520298794680970647205866626740577803053526629905647748542943401582589921894987692420506584656079685433934588371541495495100029259076955607338824690252158692952375132619259297777553994764676908047131730616617328496285030939072549131017733093935079177169322774358821482251029217351837628228809942525028717981170412696236380966425995910789051207538080417019521186442634462847467537462143042561636714670969264255094993659266816193211613978454154546510777871119827142820636200567187146935995743883451077212940605736660673532178618411205974972304719861979482038752119229291407732000073413264068060936317591964363059319298447425609843127855481699221705159173087940851234956617237992789427323041262271131191394425726630149359786066452429112954805496852634607100804496480331608665615526734520713946780189496056910779493780180631099750292857031742384262359991748998564831771441551070026608095904099351458773324106108322224932683856767043233898999555589796838035889361362240954205955147146925084749051795506710593109983468498517393755650765370486213116871680186478443591289185439691860898425953548567343274747651489377059000026104728279218194773767495991313489928822483003615132164235115679805446351367979739112946422245216993446687958491618972723485861722753533218949308699611202872983880875132555592623633434245278505880856277378280983450072932934711917756320076473429908119597046435469347964624740894486782811868587342946541338258679299219008853000255215374324737351147393091708994675921820665906468880706798480291203728624934449408663077656465210981161423203735234016514796143050751950454965370704856480645652351716092455457799925856850637156892833285116588332548633776905033334367346634935246950159944251604584964884106137539435124349953674975973827482519987685434419531071639317441100330813682142930636064979973754474043564815231284403486107073295034776080980741967084615329865348277294286332027313541397353740473312577598889656433564477031393921609344144138018062682744742422224780926961687272221060543601415128799904066308853412456669785445492933977085792368146865299127590244079430395965800881631097075936006639931110395241694774237801954381211767370696450769057233764100840184989255855115319911413798358820899652345309959753837255544710437717572300111222148803221014798597950812675748898831555818745631952414049325311477920085230062017130879739359940927304045309173952926509694897017735422430004778335104025609127953315552085341617094603704857322542811696672630873611899659123833832710184099434281151284787926880878492583331200982869609943385093223157976706647993130594416238297372349759499556931022570699864293835712366685324966863161617182405459657959658625029874190818370063849628402245306991593973938544184667831074137697360169383739798895459753117716816648094757478595151733288102917091398156114901256840380560364895100594568414993294993066820891021161990062106096130137069726962693402610460090430785698517137821965497098388832098711476816306591981184148141995496053429795105836168570115524216648134321033376574417477873520283568438059076013053467005592807979251566972999168560592376830700938508715511984772613722080641457535866705470178284681930070946742831940919288366299438483847767507258511822736347655741455517540542268778246142886621053610445637273866420857240468765685316191451752875875071947406285655938565777521765545607451114374738661585939315365529549932518355030417212293783973500795494617075086871028991643611543896335459540860380595361635773359691676578803940026142939532799300313893033157000706260568411962929381671615380856822871953127728276953909821815823274154369299929830682975163912777156535187893160763130489124791006305906708376800344499028644787901912481108798853622769559800604001699145346864239669983689184138203065503917319992175265145802665580482554392415397256546960305578507486584609959618790138674350773524348079901930455461094884233170430643965394080729373258598534738648172691317114588699518474192144104774857811474644186734613046177802944104090479390106194561658373648191702269814561140043083454752063157776342675956701305694173556849602336751320690934983337230335471683130305073998534565019503867924377890627845988926487698114367646563950091315082581444786907752891719074247305641839270170072317166707886176413210378589847585894317828784899596893932678354365311938999770730552817103009232109295342783546112419390244227656843444862242851032924956951603996673208833080560296430916253299877533968313080648918390074754003467615221469358092494145303716300655516093698595033588219298080218012588392448843814993174021097748962722800969922800377376699217961162943012816147125050127481021166244131408137299889011962593978914545994853406778530264873165921768718174055375482679790646046059400849517366411034622779566672347251790797162652721688982287891976371222788986105700357143727210202973167861366750985649054953927937815180883521784507457352267398284275130992457810089352882280977319617466977650360081812737599707627818775762807145229853995973265493999075700786380789351867280825033041191913129309843268851952804874492938460890555330122880226982313668486543746926381865247403687031448236056100475441378091429617294477280426935186817623082764539332910110255849268171462840179576587604483768092184710775479789960692810335091131379694815748211574334804521040593984950726555625947067647949546718644421400405351972257565774494535017993691334032875691232043912705232385729982471945327787252349909628719533333122302304726286740623249348643041719197094017303070552828530694515029655142669059544740277346871489262557086007980095085486540012220462530202472940158064882559330628943270922304880307731541440481602090546222239417046867698214716565067643691357454119959625327882327210357968833072901945084521399788919911950404160802211354305264234877249539714377718980074504979049412168590240157007899461632629434139372551093722126392191892159773391570605321795102193462018772369411227722744873052378601160382446182617610154058866919839791395945843104459520716400454353275457176472920358641486164035042752724810873431525099023928589088860355639378956283567766402281047562516158234904895893167082289396660939289552980143477165260084865569710847241276428779982084728489193835496472666177345706084914625687112135790415328891684673930533768858590760063056800576426142574682965511252721130054089318844352720543717358384397928409742684971474063984062344909258921815622197927568087780765851027622521916935265143095328805602612128346202290209575572236236539747246949277261176506587510256137429001919927623495126182230274295506152070323933778380258626873744324937882508201798732171932650035924911124314390002672973170415242483358355072710240931066369600725089960311250006572657498558613173979603229802133445205169859834664495423312145596809199881690448646218844841832838961841099007562968092425417221754023536453223512709838689464695612482855464123016215705917332010610888323172992641553140165648376543643605285775563156079516700099750578593703146870468582876937955651295164652851976635474411962450138611486347528182037052062987606874661972818835334857438966899734616540302424477763329968380460744841063928587959340459304767435497411449339649014246444160152577400238937740257162529093411346702921758791290525028935687699835213079027822545231126980395776524909832977659541732725237500025808558646977732694092789224080124340446447946166503877525660810723609153371312044790701884520933809085731975066247162882839210577846778952697530641666311188200474738554197033984138450016699466062501108975168278417783009217018675078305460645389658962992518084215257424536809723509406449597353214873386863128390856751305062114963299877304530513109447911961287353722811768536234367498254948018503230958967700044812717255729057594509626718484204708694899002146415719793048169229682564622076301851097978474238066299167241309606862624730578712519794323330196800973098401470175641035027992129673932333393641956682307862457976648430056130345334209967146494802128336088278608550146501507946627172125164128561106950955290830008604396142223393501091338883398999676916896166378716705830100929940224687510566244033781115636085416392267186842362527987417758670879871648974968355595646903540654202283377998363752979209235456645142874701487235828144978284646581454647529994621381115767067620353626548863639882458497779645626956075769293767353964344799755580454753013805038000316297435680818363294822067791473733699789978993314164385099774925290277995106983452911914613054307099818173487393939742151385481859658542220853666395599810223764577135605649171879900749371421825500626322359827082943835748079286859331496036482405862638954092679175763112570242235634212007369323966129166312673318613653359248733559441873746985227432765831742653904422358181381739630966183263627006069972466382778063020055350054083560392634800586241654836344561532475893574516309161365516370660350158871233225566650357497411044088023709647436341683436439702514191760885838770739346530924147335355182452558201599665112123149510945857334969762255307454382639853102647964762711093047969043843303441843354262357604426910207657077714570078630167667987047376616739149941082401699919133552426363961604613398902936721808242763555454372725862550696267016588560931278478985539866422407852517390742873160856979487568861043040655780705029281975247671209661728115887052667866568176657079358917004573263741999545499525788258497594035672206104413901683741874101431746839906422703893858669633977280312177297823273763937042722379487927529771717085874511648154029572407576863416015489609452592677804795272220545944334676982797977855122774652287135871961098701719560573464087813320095342247758233866113731065051654418999640062465392492173038151271594896103915738997470181037538096170271280621098222190436897938635598295315090891872339958885188544169231728116602390434097974191013507432729795989964795718039913441212268026577410115070751740416147810801774016686405959791176804223698226949316387535735460137974932578132718780743557458747680984875010162410494775421940934932656487911114911296451808993269960620724157763285410000913107176077518814177319107374588677916330107824424412153359015593760621513164401325489489821333011889428726489104076048210397111324304032639873150670161782006550502901815573014171809800789570890701294722032807890326876204977361186334045717273045765175929093219177049439608298046897818327255784496794449363050674945871564998460778096248726403035384520889037469929181739323167068938776923503277297824394403907610143684922691455990031960413027312991881666250557988692334609930877058732532519153507756883756106675471662724202878249944723536795701511499462764037308498090812549191045253804098264867792449400834361185196239018658471785441330517502788345487306062990431658739363025780447650451671009436228038313748392287286516433360425558418727994531648930944323372635898512400133646502324392370177794222044016139052357729102593922901233546256222295324876037673855136129667153633648724612318483604612751794670642250534363844413612003344208604209441074513627412398515591928851856912495911156850942374688288183201588910333107418779057244436700516325962169340722909473622331410065541603597914765198065931008261472612787755778310906247246503942920688615661626169653538555314226396919539813652603394601310650010581338967234671331055182943065325527095757795016708549312031082914370392879419157308845029623732639852783249226270609850216958609761869877664754259971175542154576593583299685802115524963141023436854502812960399732907855163151061229928552221272890248188146128959612883964107673317284347711278881922160677518916175112032253039194804648738143795652459914339451571918651969087212329027970304287628750642845371513569388935775259414021380999199738923287175301132490567355178602914405429333358223811436021683471301634283344487987345973915069175486371134888105828230733010894715859000355533428627742337365193821776411810621051438397869343161471178243556081388261103146234800766933827466433239579503569425776523832313278293694462748766402201786514050983963631162095765022109805581382427639781316327109424518992178159009202356584189429805661078460998082354541110026358746638959822236972635190897080414598116825354165758010368332920385610000597203419142618709440217330302387161519259355067946615242294880773840671517991333544599891081621247199765036751860906306285288516502997651617756567642362162736480488930358428778084057154468788971975133132168697269787349760421240562721901164066237079843466187242557312419719009851702667173688348653926955062269958784162712028807289319234881141733266995797014032890133076236652267796764670892027277207796037869051961955722831681613961053883116326826110154682585559828874683461437373441377663419983976901464948168395929241998284307965353444171534423171324924577710474716163937060003353929500631257444375225238856960164878563645680304162742625809172388183150249633435275132157162822816542472457848457340276338987881056968483235800414990978424195887034072506537170887479014042711749290256916127585012716584713963599207900755420681082827329503497175450532126791708792873430443087550471691912408596927429120117374708352893834764612819272019483894841838615600710322772663432233512452814484880846662926280153185341286146101966114805976906876056460372586070994073713899130940595578345899892333604782986984617035871936528561149664389932771517522845014786187951357245356334894748078154528605409837375720208500519211245101394178356613954175009014061755920255008668289553429325859810252494378843377342109397958643396251036275018613213529700900229653396395347855461809473670215941116666217313191397996565460405680684870717377105096819015256072243271775378636288408577551590232488562124393484923248388527196549569925331232487732416099333626508092055297854718555316513653412879280010906572337466819325389739466564990202324762312067467425612591695301658233443094381396208808017930428510418788398127772787935431506602699722656707035064148407195610192707864429135804300017532910421130436623241436720343729178802725247280259107307522911658952750761955073276779522416724559225618242284252201699803583359652477517555316860138578594116584587703400708922064249247458965890577272200259834353693193004473885943341498704805776338527521592055357195419947100092152273465958574871334527201906905637995410869020568453923105576044209445698998935939009842283143100784810952396212424076292901582375403626725992034664046207880597363238534664912721863567779930985774415984161445378811853072432732025958682981046207130732080014422525798919626697908520871597323360083166432067714677803355645577824560653733496303869354792354292305269559375937446423096716637634305129658839883470746531753390914494843957534652637793317225681082270484583868126967447919583249251325259076676697004264703589582408915230072965480971457630877970633180391445510549757886075289044109231440222538309870611682639544944126356062099895930300714229976158114431334982193769057783459831291273206049565824540387856064014406083003100450024257127693620135329712381139949264747718075949351993569820191271009786921945147894703632817873437967509833674954675440121410610280495048662300341503775110051927268172907249935325441566078841172452764722450753890720949323510855926710726736953111875821166952981107479269088488014287739536657651699461941331946643129020683287701095245505458921204566142900795054009114003177891986518697813137194781816905512051871295458044594443223485488344122189435127177439958358162832543212916702847792825788508196677634588759621138956933353544860489525515144232457271785278027393947106830214730285852594483767126436591092606559186052458560657281798396563057074503912710368915104594855338297876841476196802581907272058441457346463930720139707032027402528296045923661286893080090222251199232879784197170170130872030711120830970945114296687591108852144749193321023963588161563011743480939561623739343900710906103962768860242048619557010135482473849091722755745137984049598646760896879040586565335451376273362935326086671654508109309992216971893515213448903850314311792984861576149434957303211478777852916120304265136615360434924373388316188607032811701400108852885879281073861390077943500967465283687361693868206097743265148214959271081720210791644907331593012986426129746813009225487678413393428026953372555894242190998671607854338303712157193695790684979863261431003605948539245723279441243609738639256408189529836546696088656137129458092764655836126180614046424982282645921239128559615978180118071950076585759320895715379625040063246498643545260566223999624929950706825968596729290165512190455843667351767407311222875807548984346103727476717844633151532316266830679838448678842865698083235931820491553620213015743701043789232757769827580370001836524136490121109530906885372201871184884038471258230615058295398948901988204787329772603776480012684956990738565889529545949705201356629532757439213866181724823367498409352382278870868956599248141590160986300983066568517782195673265245923230899956840443721318751486635033655610262038339517123595602638501778903020119262463417952952154973555071873818702332702554884432049201870115215759136986001402518100852914558673380483451541244975010655299063586428093047235457133549040220444089723687980066847172084381960047726363500500410488118270702074872961864259410516983448381835705048607255551726478521197321621803610755340118358519578419562209530690256780481164071544694430236923746996803379876654659097671537240325599711172509414227169249190325306559616496918554402879658212649884033307736193592141299253916530573071485696134585763617354587006342501789689356168040733449287811581340698393010460179409867929783961787228065758308813350773996529465922328628453057259987580332042391836636467280123300220371403952027220066948977729301117080788065481683332815225107783156144101811658342429613898399432555285321460218773989044817954981015551545924933278254006005539088977735733017765111058534732776024809612764287167116300807372654731547581968388451325381301022903893065635156559783111679794000955263376462593664098501867871980718142672100788465089565979751483564386913706593744755561505906369878583919100639527382991662863993871665358504391020995905740084252935917448629265534780111213953556127314785810490007289200269452981090633601449860712287016078658717707376878411236917203411651323040799155489197510500095382413338052007126964355441638918579224774239903328946851650583706797239421615247424935884937271574140522261906033434680806239387887552020898122889630570506952949830380839442936460851396891260761438402201361811807832432323000012688630931182524020154604387162919044062059068956955714992152568769793263946384123262857488929949642607709999620370907825950661895886294857971926870168989816706068887327470093645566143558825997263658405995677501327665982498524598195447696951102523428935456826396529831367134611080415516478327047004529758411561741760113323961242787500819771783965645602310582462585864586454311132902452934981192436600176454495140806102558518551302815674995208122298717594520003163112750549304743979898552862057729993739361801740890139628885597781260291840657860528905108144244249616463846771213828807779731968338300512592616603325923282330299714853544664041483559324310233076919241900141133129895393436986161583400188442258861073973756977018215408195977539334787013126320496916621944883823535462587242941909494326860668698937324419579516530981848172717197791691263089554516932442043401405705905927335611796611754264123264127949665917028294375250499360426343886208926444698424674134593689812864895191482807685026708360417007580527049958445483177337742807342177684819194337313416328481377238613324731958112391449639511947436090334399210379380793083770759141830282328323420189903239656687561953438418696658647178976884814035417935594293430832762541806060517183209398383079095300101903181243747766638708608520178068336874565078090980855885673077180732752621190596882688555411482641565071043578334646526725967324523039462779590051658499616964897280228872401209624088476753014166668253671977197761651320162267829338599239659723035246754075217890579664399189594779829842969426962805599114622436270247339976172803183796674544681598575339291812406987097236740396476447028294480920309092379823601990529107218915715033443744361414087173555066101893881629161833781598855124509732441425968617147095707370296982821670233776887137807597577291605056007372227169771113260957295272276509371110431178935390761966008392851145933679593639749546082880356755795430492880867073056129474214755124859970419480054564455764154017062938959411573775766898247143113844683176936449473674957471956836190868909408918369103851313203895001753391102951261777035274372406155676282807202546281296137685176803447696169078673555159598228443745196244454889395218208175017132145350939176021594097939286131675963055452812313793616366445142304048792706425620403835532394472113431239992743516351589507273682909579166311454376345312380950296922779514644648867591995729455082440389063623858640380139327080238391559109903364836045357555793891368526216535091371624059055809876134435103777595196421792361439106551161205143058712667048299172000763873746409325820009636920097741426785107135164537064904406825575461811521496986775532137830091201362106404293668257881834603165470028524349008944687812581625004341567008842033497278354631836353284914870896405926014058423013050368654932576976574345955530039019372369367484223393184321359023882697122629704158475977328750688289562586995283519680768863745202000060212617809749552744040597347322409104826926371181094335350111332374671393165038940647368191849681162356224590640570420462484865508565008643062588801985406710783912932106216903781789241502708867139465555138677616266944616313811839442681155439973936269827613802164239062859748280392270200590606176042476528671426570159068943639651143368270802710996631250508661282948353983109472312581158436657006844925168040958584120950250403376162468969289601091380808464975779600035605749702258352730151720827503044883807918708530354173600336311636386154593957286377116277065702110296206399324180866180322727814205784957343505119025177776394875446036087372775195204478822835831643536178936105532121062122342838534069639260491963286233651962765165987475108246324929357433231436961358234776542966693251410197236429285062905381337057980022322296799302183454543046081098821956183114104439141907835331323207687452042777631640210526715834119252605145687940073539582479907713531985975265111717162933502450529549594821224942740896738478183951885206588007384353294637362506208572071125918628131353461784247309728904555096332685716112499828002843144505617343806120922677533310367577519158488762558103899525516242882317253776859138352035683218392654414835057110104998360280809231762207703621680658120450843138049776398030874161757173089279747999390297359780684843037364329746971921421185768848857500816590414155145485886074032060791503939346425469017739753557672248091705343546429832867540277183066068158524482055893629347063976335214382505927847176927928009097352968986843425291286810718160012584605486096473309556676798689400681903263190711772441982017255046079877236590729664281155285010182694425234008485412769866939617920613291105766735270333485671961370798450687304888198851299789936686948458713371916920579226262979858059174730386880044454429640279378127287454544056668068140175510348214806992007601168871391075006481542137246370931694800800964170233588499953257407353567263447468971576431157182934326986164619335551145245475839575699392459288006552070870864502359589263740785804960662569548937996497428819090825935570865503746238848557097462729641523039645514599512441584874144920019497942235094588076706590822444332174756842717026069495396258952623744830381136527483776911566835915338280252071530893360182948137894086755423382161258940818682980339480138597701380883371718973325425313937502485851167504232673283948708217989999622756151088173560053229043163330721206340581616313854100884803513366865417193195505398976571587199022098131321012560390535445387113112898281275813095415829281636590029129506806480404242129547885940367580710237609905498600123231143774655438432929305782118665776782508788489442433994254113612155005208274073593239245097271631365119570518103671294234159155702684506093170984908505066109980132844599800876441006636080198972471239534414860587198887060466479665409949708555667837408215531078973093370718477440826288842384311526262850329796464734660251996101139322382772029206574796357254376959453513544146153474379059334854395592233481408377026352331310307378206878036254146009116360955131190671601089331008432169969194546453342556846478881885711356328820103019972931093281043481854378922124488753422029249205912203589442485381688354761819200044813641958470614407686410557977205538805726168792350220889584440357481797783887561829852774983227462581536079003747715869071423983484228054759628576227524317095475141228499282084213851786737734661110646360548006903148390041618932308248239567443136724714753884406582079439139913611314446124711915212431134882644151927240350956359630081776841072024412904857439972169216489396339209897256297649749688335620844493603340047288259146402597860089651026125799134214387961311006120258891791951396684617842604238311262206297884489696947468138051810263050082581321234648945526770683054048061518573853192133117475997354189094178875568151123154106017198103231082462075693875911023437363454360041470796394508672425450797101422620693723254163893402323143541431380214742766759069145880607660826491801929163788658128821714565951104287694845699808839119691956114879806412183977416954119846005630695105165620226640247966697325431207424535898301406575276759986284939321550796818873260878024249848097643915061914030287985162294855109880053073464900074342320350278631460694242039142122599721391504922074399226677594346604778327225283465351528499622658313050054508302974785986080750323964318385486564586442381959957432310038347064073290665500756128494805946718842994057861689615144064476991176729053709680428829753191566814215247887408805865678050811379810153546782666503869954110833537345278525714338250882810482016379941519169971505347176672549352111736765710796216556847110896060461604410136114815959382308123393396056056146682014663705420892609493098571206234703672608407543072417867765694102595904327470632479559021819992155002947297046373023672343173437644859286723058016666514022946702503172033079233736018885262383385037392727370756981725791345301081081468132362407360570709211080081502879347827598493644301282809136621730668820624550250842091365512034902911302636601691627355475287929255251807114765763823722961481392330225975529561114454401229631113687292981918146657733145050232485881184844930437733282007674813050645891624842449152756086545640839603222572361475701362008344043659532383031226903652484262140716743140095632374174495519513222530094622464217969924682908758611101597537982519578543142268677732110644014297320608557687182890852104043570507547855332179562276230204041973175825280528542139540525152130745258945998249213183407168828451620972942993928322048175056959958418026913528189165827240115870747129355753606473043790384539907359418139437526108248212093856819670558651104199300466826040539455614493655069146525345781004505534418862764565238859368107069084995775912893432959041158037299046770072404802895131107451592430657875571725439894761147205411226741229323567290520828137402678189011119150340941477516784720134181700033292019605819295454069559193080541850554955601922213325540170262363325254080228934462575330833676040310347814224815359171059207174986773873346163756364196511625288751082870716815107796492024840085208981344823416219157841216880875278055914307501683693190239759159839350595074606418929073381121024026453286910621011268589010818069517202428794979161307882870127227361185540530797298235907599886208621426179155302946968842784074778737607036045283421057618827497671655462133167709646453261455615385371784616308765630151289958741868201438131305819150730130763421428114279844995996676309996577743908612658053713320324187970375195544204260298576693686996730920950001792196307766483805833312701263139576481052542468412253359149738750171729018327010235017074601679423065942562628584525591980126296901577708116810500530705927171623987115549634965547331733094393915202789528721187829341165579713518670267517701847610473142801890943378820656663536500825564336925249469353299999340230101426538217437102827538955436798096367380880033546444168958774100704521500234902025484641809654231102564289527792390844299610361571066687562193452856950217670073146468394368929029830082864184040195815884814460250263339591858713384064647673412529221835623356056181341521462152537128777016279011465856800856706715365137690931406427896724672288217028698835830889051804203084491402066388488204351552407245693760206070865639221159054685648481074083522122535881411337054981264458669671549880156991606452515896625828348056929959156728487979235959304037681426277619875712389945607560173276373442006653502533676691013722411690917245482784600766992458824559290740855263934991847872868406194406649811043607642794498773261266660706596706743368027818430363486650764609796659123353312058366494702530762711669421173561419324277477145091039293816511412030065916125516092410405754744113923027718755450426801732266914315335217494764737241731629082784284991170005509357025409653154411156665555978308497264177310601881233693336508420020351783367089244185149188663235435722783177707520851292716423872067006924568818335211710293292708196187465487034662223678638086734505786514893755465551963039206309577151758251246439516462362518741883987628907186806747891210517580251752522301228144012910547364440611915353738833690919826487086050211129631006907347938256507126383480819387732658494822470283791102765529112947009149065407426601864956662260240928362889471317772434691730581171368300528826862239701090674385591976300714010087288555392509291315858774421298924731346981862204347946144223943645344800652814074812170021047895605856310152751682025171489960954101286325291283844235409623946107707662678768826681468680540135351609787642832649063650820509673700652219251170810260658253397224477793840869776684060958859266017030723575470303802591157686019600980485279259285112175470447224940983813723964467856755615437840764057753444979214221635808011338056049473423562910743467924555469923557200990085272298523158363683979199848666637325846917400249884855890746253004804438769044445048900312178356165242172759777690197867628191099810401620255881586179358870500421571681419687681224080883958662705007714582865530200539069189933120846739335413403791903917430783738722594767544237804519696770198659378107136554472621296195480075460625734551628779779090862276714546922454618224948406312738822867212440956577262088949606733368571165471729576940172549870286684687536792812290225360966619263576341188656265832206052131186231395002351739032059675847124095928579248739487110028031793942389521973926102442890681353401336856093008925674619994783788883579904818500470026606056017978006907220868314210923143395360120080771675587014372394747725597231299406417203616229591721290918217137623217867354131966642686029755930626888701133676538334943094265542680930676595795040340894540563234711755324608326607353493924021013899183686648197188123926813683343977521775345692556344898466838288101351259669048297036988537142545126679937801146554146728757034975017188145820030084749018648267466614447537325621703190156726193819875107577929968784276043799519237179368303034201364424035486815871348177157485056798397051340587128224076165712798322024418136948436893111372165403234036440934012651346566924365313232203653635641264263680781074698057467438052359383204953831882915816096017043752437314554734616779948228627156016316524285290155618551601420529490914481888705159022062673760765128560554052905834974870299707838652829105146261262360367583552743952072987158183486439568539695689159755148767759831681377770258309132719908079229327463664569369063408389852254989554697946367132349858064418051180235431459172525758742548979039726848354263636841069373548256618520180022400114384480919538632119280347063418515282223542674010350332317832760875263818843196623231716822134168897097345044557408933100577635379924031216916588717134480322773844199534139478909371453378033510735636188019380461208658625545803436214475067980320355413396236930416588170773358553078729021179096905313966254635740739142211533468404001248738621041247440738587507773359222185603332410776139228175411440465148420328278003164484850091816805599203177565600457750910153587661319517584483411965656167010723937091999423841692266322009049445655692970578190765676861788203148639902830037272006595058354678606907325656405347674340609278917685033035013034332017139145430875637002904228493037884412963471280140344205262964239651321195837671176633255698582966600055520076471503317513589164763559448153050524764443607998776800711541245856535339411323562791551743946581797248392925296649785197845915909782078832081720780999341237265399259832292513687573293275849385730811297929134661887409297830534875220321164705014177593752484990989647994547744761888411162249783399389678176142204394439244664776010103975809639286490321982617040596553928121628498480618604828925901466265521712287128050295743778340882164195168483142566591098217447616209491453362313169430306818611533452341056205404808023001523015269114811567283809546638687944000944060267879817515352492666748790901455002398757215376189011795618210474030416979464653519743409964396705995231910936211410712727524199063368459679026093688983890192998592996248243530380435002151744925305891794095355267714361285479773343769182395438975340373054738828239152374377245576794047884841819026950649292539122295510105793260511629930356131194342880844734848727780489247784088042942343784383678696114806564164507359973973999639737210476033110417874681748369937202674035588450879815349435200636878602889921715658115005043341000464019356597075645743547134813936294560727659297401946220761355682872158923073105606393149756552264698373453896462083632098701942562822185273370879709451791287107179827564735508251407755294049472915997902438723631254695149056047931646363965958975991741686634074492913180295287907664298102239193884107929244864621726924681533273469627837215372365305273644959377187032917134111341212728348351559378505588943938998289929404088163744906740612399978575168660636554035978603346088170986837110513132066144127180267081690805459895550803649666938653152124462038449930154242381408594895024922669965834059215424581504058194510797548879115587024980256622718603737972981511204668340891202335139513275410297027783060535783970637779626530018789762744672807790514119605404656817454709068356059464221508856658168754307583211557963307164369825574196199421144733544904333905637662024554226270123492847183645359156065155972866628124178257042376740038027441247667555063780235998740109207180748768638849091709148812891714092276252247634429843509448944635964625269917608953204527932686615206025867269511782331109499222419413379682374128270976045126935306100839046645524111206037797946716637720064837139929917982823186809565220224998807039765398245881421198317838076127314463199722179832376317007603081287645864715814324156954171914195830599148400125492369843094024735051411265104193995015937638660112990175358327627108542376840833764958054779074700839830773647232353745424121536867400382015659980715586521992051663003727948833994706422519731229050487565833219191450921031538207833259710661344924347498697924210605391575163816264203738424100656042783682542576100668729495228060693736065141291926774825893501294583504738787182026502376309992462577713461151739471478230132239099650876104123629257550972945778989067496487430834692891352717992581875799744512708729031301493902442167916930959525854635727417639830957505252745777350382594739159468330427414461039739351947347322341763019749668603609609554787871827436686315565114641256588227166913820534602995213871950211062454620966145288432345464299919378210567144246634758122156749978112489937572077505303292434400354446500885195606385349323361191175766237155353252177973122736249157279952943867780193522257886730104138079671216386800929205181256537214467418259249670453849559120390760718527398952434419145374751035580869755604238478554776970084846198051215424263957214790696823895669307141854834042358078608542672692513014177868483730352098112525528245916650504441728904323643043344330284504359956699186991331772698113327992822063829785633939050981096515139876668945897444958643874930227749031320401655300132104066855759406746037449070618513726682906719730611994751464644427962121912826199355991561527154944241431925362469395600596819919598425214939534191312720336035598388809909566822641892251838537794377990711548743627595087818393678698429365815250387491198730194977075637040704205144995257071005595396260104395772172710770083360530492017209389739709894431702356221887568372007954854133405323829734491818762327849430402324966933211660067048951446107247774085550491075771635713316440481402808259124994137396010376734478722037921853826411677908578412882847542563517186110257762920174677427310028556879125783859839929032292661539961228037113036201188759682268438579955729882535806712462461553146630270095016339789685848606720886407289665392407917693219089742034482075402245096974433894186565435217600623885779105142459166687146080208526959804032608365126831448680194399354884651986469117378654298092563847603053204417351917164782371346044587212813103736696409513651735825109943799103131398406554162338846003359875430528130351194527751781295310092464990495772628518893580747232473450473051421327701526364825203593630405779964750280043596820537954629563473760528059234177367122053177923511526147801618197902347173906562995698304342095871903748148592698372812179157280813971699379453075761011132173143788404095141624749719669260697985345686464342012754629743228011694397416597775509568289303023396127780742518344612519071485938589062214048193993853057150795078703571378231356915441228835453610301531295368203529988754065549624927219281667040298180745129701510663132941827198095347374864602991551661924414582842763263456440741566669729213472714832614779922359307951534214909619491803562982994837863726991050569532872159477656452773216229601953011102234019677649525821720341894794661748192897006774365419607142195039651185447819493127856960597557743083673776609481081032517362786971881461674941706383521615191181320949707884475463975479932495399755143031665398038929345036076000034281698192135313345123748064904483469449439450150016024788225040073299101336256870367680717319600683037040276957338220058662211884613567771743348417050133416409872624365178710983447901246830505517771476156710245068189629964417983182922009848890965962138085333493792476894106958550590574508746465306159966669249102038980870195671998260023139262492043719168899480794454210340387761633667498845173788673903033982466294310146827457751338616191144916360680892712655259427699458295559456834323209534306521800201454757514740769530867442197186198465552512415036116443678520436454562577642669528077733871638291345378080589767929703660367904140721749863170901314750907141098311238274396947063710781211762174273786351836281476469327314478573388935929544465148248947447301397092659049471704556068470974711489791251008430556746181634195948333084024686561748199569723051169686115119360263878870204053499546547009188292061371387141595021222973587379867114688671872150036392423904421374645595422781610603673752529094027038056383017519431516860621655159470312605488042142305115861711440167236970346944162002502626818294464623681773275825143738044252669332918697042778023008437178928839957896024977284409298363483235506856207173154669088445707529342932974651355220604480958746743269068087888516442612795350226467736611532243856808252000790773611561026512754417282625718285940726762660773159312238197414498008284601986932973220180852189069751859139833904592666822483557722652329509271896814642663637488929163712287968903201676130118840818953158637379359140418632846106492236855146002943802685194167147749995075785860983222559524557936648676145437092806185943000384633772075520402402251820202196646360639044963567414937802335319546184238029590111339973649472520563617183490495231400687207996636149296584681331269576219045530178676391301853133656627417742974376974720736361384552355102335522422392888268576350663720573496774078771431584636556727913430745055572800455645903893401498815561146096140397835237092136763801879328908566215075618259601064083375416558536144343523056407964999897162995120291223186836001866369123669910586354051512869211022506692389589655902990665450033240649852002655343376505700616868912909870175583643675774743880659419917023281782909468873337149252799276611081412660102418512226226477399978240462656315328487260456179479170362942044434249620741864309961200386211823189215408842076489625546026586279906672002016215702248118957772688514075828658806244267504568705460677911128086234722186807503332095445396175323771027951942176032264568078614806503714175006473412068097282377455543782938300824959285295558055491210792068179647021295377704946054224021381563438964636092375511271407465997009265046333689384513572601064964074420717228125110842746999228185284362086531982603325025174321597194679955189113200604777027495243226331414786383482864632177334945645282278277153302563885189615459107180083672448855383525547506546400989313735649426221371468661883832530960686384763439338075600516456525207311298709449800266301089864214240680434035384197549486130860304807626484803537634897338611885584608530370680463498882342609744163892455565082195083315565527421072766258103364228341623912281313055948275893395804584696672314458826562546236893587635895409917992935127781575218287366119438593271824155506882864120196703743055779251985928518394755954675604319395398223721828318255606910052166352639557635998656367430957257115272923376981978593442436138078932178904950458327894630826988268995304275673078476226237380512329152262918660905876785163146342632482307649928509412061716148739656607256766734768086316859400640223331440952480747086553829725191753058911131057426682622179677294134782103925354720608065512003146582872330188534565281376479937897645207967542824518161476079402046337327733564467054446353127031385716827891721152764219515937041786362385619599197283489583362016764592319210478772334392931189974892152183806644633799163766897826101068073419383006639507998484852963190654581032248190541717832901372686442103200561007811327651075209584602311877263598801051853074441413135197154522303962171590292214949161981658027820990195126080052179360565982817311103075047994346847245962460366711435396539004283621929534477106380954367890399754965759678939451656949039312094093192915896755260880392566583057785134605893313844590224266227924142505337167937341672973028613171345642374639265463181415098537917337608465332734864483501140024671705787436577117909455333456966881072044777159985482360100496398255779564699496560653604900864293792957472357512558092370296728949772760854500668165773795809786906806115329198123746705148246043091464746572867481146826303560007612829499949521274796965296816408861763794138382958618313207325575833495355990959643824737517708314216413536483076916228205234877515107882327121041968237365137810643791451460570315286540195774116922153483982834315661246803987473057397244026527647918392115501839974119170363136878132943912528419769763153242771344746615966344143792957337170048129758179932605284528087070681047819131759315725572995084029471519156755557427969108258848246431183634241806409876045638062664571982105794904821911360210249175211677379729006657513778213153034428472402688499011008938375583955558624080961750584527366852879764522131996615605464578308590831334799298384006233285096373723838957345588979977954646592963249082351072451730665976232222349528512618102156551163839024647829571835341876446463543260577929012380494457840435608527144394549933307929885135875597492627676085996249874062522697371567797624548710537010295111118060180166024226649074272784357946352801527981330097114414805829700633706564263389236312202181046498170529761985328204396204943704412292268540747297761902472378306433467624989695016300318638730564653733104889673127052696894796215653243591115501419571216180541562530278923928353491927190352704219663832839577220691570297399298671823001863072783986215595425212771633142733003290375669941885802409704463357978632567585443560847013454769439241476354195431199610290395772082258959305824338505700610740219234816487210081910743804417434245275345020319639564938251932025536009470606777229699733016398208841894038704256204604017363838179435309586981508794739579424651044860971164010266068298463279331231505846322489016945902051989606573326620479579523112757252843177500557488340156826354077714222808517088787731027723368000946173017466312357643969268813759796229896779139782837401393642654967805339994744162499009390329360233023035353891123555096411774877898323580723530450897394030963110467113777869610305039536742538966882385046075542865997179884504060829955475598077693611585832739411879022045470931091112908108773762540028922664306950539655272798702622267528445488305069151522422418275408186375815705026484316493310712504089530015142369294530597766793707014563609781370680318050115565372658619075978881767938966996350247168048114568702202868330854091800682700836819853807669472542625188619612100367687233665239199687306218539741385255953067991645671946959744786478738164632467951062480454787903378689019416980868398362957806517739137509611623081174329461511817814449669860620999522747296799364350900318793219636348874535350053410220452768226199263907883920085990964693450886891425750098839565908213729848892104482286012370789896999269201254939310851538589139342228291234780395882669207990471374836365152352785200664079008768115473962478628183760956445359783546925345941926625942535377714664017772864405373188513249526267609464571478906006979314826313367121374044873135996674854392613775739728600830793892374165718463254107862579724302930282642137277162819156128076635808148254974426599003935554342350408483765568685905143768286591385660476172780773830954982091913472406804495096144262258532168459927925073163475542580181635241639724052291465989559472368091564533336231761192796546336244212406793447159833340860041636025222680667604572129247167790163671868865381953042307258676826337159641639041419199922388365722449878595552415851937124879076874326870674204830274757277787335458858785270524768492539133552031421671611661691656537499484141885295494977983646242188947385851384460463487227328367594263132109290859827977678694890585235417429204980370588668227696605673650194104065353972291545145240925941820530373876462362035825118938145784339882515617076037356828264670697650127552982382380865902381065509667802215379182123943572170303899175610288954752138881938735545087310582276730376943100664614280377293078633549099765280383317894627347964111645529052090862079822495360529112320800627609019571820247611988746775767868034076870438498331281535498263537722168402288314550546339218141490587082240864835085869324562449569213375950901829886122268714939782853228500394174978185960717329246752015177690349913824473747437637500916571281378762399695896599226742656152493477401702200145639454566118135217642748883333256099005067522766084452596816392961110320817314891563955798581701511315717382585165250648802556593216985083615931464415597801895172157577804706540447893692553332025644206724082902312086993393147765091398702448736427275392843172735463355070052641723597267689230925158657354242678749573120224361282665998780859213318523768645887239309487226226649665481621523987450226462742886928866320647318655140959083813741884199250601996779776889403536605175481122675925535078289596556201467221792764966843992464868756245420565150090060913698657461610288271298716657583671486615599813963168211119174183560933803709839301560179245689914776089065392934111435960327631188818938358557220755676082901191795792232731757351357296249745346097287463351523521819474738548290331926918415910433024840636199901534280100598381828723394164587029871391002165428215869940369820279939916416638137498678908478298868608144072835619212122533017370790207284608695800726658279954555110518397399118813264418852365832237789957652074438200746251444805042397600929334731291447720073041372761774114230715578698454817961704641885087863058658008966502989371535106827805776558035127318284070504656433495165538418758297215022076083563639677841757244964515078262056837045195395242150104967328625787750512977193193389788840386469644073004296038973938064802701953163459355349777148263056868833342587324431813811794190718931381228700064461903878661052533880804615523370515812341712101305873428475840692263427392629716049223834736277856742243590254580827105813065511112277267755177638160150905077526125532119950961851485734320211384690471882283990164825574623154198301245748344984887168124394740292434791957205275848904889946634750895713122528849226740054394979780053870896445600768209722085985618123942216622687427292416331787882331222327375928455284574940820804731256000086727597518745764069211400242663555505521384680391738891714072955174734155073116102398903492579942324162939684282592803550953576865435518162343911784679750282207686340220029633597339295372121413822445536440708306460579749276440386979316083736774029779968479788720830931889373893549469040061107874948846578747959111824284280626930605077401464998087395192289530690146505383257177292027228803819274128594195179640177983004423463653057859389080894900328885169933916242804296952211857541708724302489428979564770757106066800665557765272773350206867183492794954884878013755832797436221201825757508933345277199973168344916261308883334064215367887939534047190171107697548750862357385097508706890556547643800327340445898465802324893220728895592696893471616649994817684810458582638297015012100768533183343917379917121919579859479863126215613795637015207439679328374571709249251251381989175177739531426599306394785719568693729946793306003634522670610013052042713525713981798828479179884079972381662676892521022585367891389484858187373749775166846307923328447080274574326325950716610814955519675968243902366732470369720527995927138739817445131310253840062054157304466853402725601984937367762860839659915507578836820879990770207669332046203469168723855044362725754448671535015866200363700836385838092918532023011222545029670300322289715270483460475269350564835556206238512781209243056812763741852396914364815214525318312085805824988906736095404751972828798739511663765122185583579213959717078655961745210958902633581566992222652927855739771978717642702956541125870199887334748746355842261293452047268081421280586801359736082707860687895129356796740558143879304283396315210396132080415780895306747194434494837031815631787630131152470699082331620445930466736211089241178355219764219206452117478505846926639645672816622997497286968196432493987207032846597693894744481528894119572654480704593041889982582681746948390400888085188013852119311980017988424674893245303687981173802026253021949102442176918311479546376640413147455486916423168245622428010500322892497175094139764275067701867765983275272315321234463291379468720663405440984713297355529640466142502578911160689077702840272906331398168913450918201252777632522149967197743534635517868552036324913020970006045116577421458871986915226699724398826016259593624203067722931676135352605914952337383429359094867444369017820729304149219131625269497517963386652829443743999056035660957531582416730506747240924372786358357559281361591002875447348621495521307525493107698051909900962308451502084679481466214130847949690710843742728098901412940871019873044778807526833458928266861711431632001726069673393455816633364710108447114877857238097095327863849389387000476807841500227707107479109728383948126465140118681660406855032024210955795294420832387414464940314155975363381529847377653289098650862669193690901282572625229790571195121684550603185597840595765444435733788428075663283105972528717086217332063639980419634854140277501147269204375707204188543025759343099301126826302042400163591442424774011378171236435747716594954439782503271356525145546480170231093835433486953740888857883265108092353664809311556718919873300689486746134689494466949678245929298150965619014939346619976831344280631936437082407964246654583321989403856168681610209056247938731470170888044826350237215704907047215661813191972429052153574359671914798567862803311346262292091544421942943120310281875740601697233321254442208199539993646794502409465381247521696317865958607368773518437873116371584355234030298126559161642103257613048120362581940760034675160833452607332738376970659192556687284364196291667068658495841841005499061151059374854165173229202024506291513495912868149460128694517989130918773976898678553793328585788513300469533077714368223397000586678207946855801890248839952032894960425445845799931284530278676942753204631068180157239923133163012824900496690867124119974369310433190519790152978903263099287205290024118162929349178743032711334078829885358501319812683879411894528375545097732280586885740861465109178883689116340620529058040145872975662103221248410640780544182184902648787756467468244021080116885058648232930874913335261347155070820665971316804921330010120117096383846222828543178204831957615374407268130350967328729360610235668974999322621183169143109219783667387846143769485135577858143227306073362844045677414134353163467296527390627678933408043536476903428556803771841782458394690625009442233105803984396535814753063765865944348646641540934311065817792640866359835918570989132470479181630754329809312334053322213706347819804900287504589010426916739274696842041072273134415916697765404956658279648443525196062031153735286603969461324914046342016493823420105002809608327467721575261747526867574142983350197315694806546566816668334158890224941125018576698206870716944521169311816267147002512704703519027843577971912634563391455951978431690470911081590696572612128863312611750346747375261400097116878900544213900024422869529728573744507042651745617539660111127778593584241624742176241372253380747553753092796781445991067625345333412633755880303902234840661131934065255283940651284373434031737795954755342402557573213604449220577190466846720955372280042230917194092998744105114489899806980547424778164321463909243375712840749044535494602852326573220274366637930376865296093377498983893120448935780832486301446858582589266443184058802063616611103475669142984399406298295132456991606534424415097223823747681437036560116065729054864456998946029464065204278904169315445086968141479893187890915826222703989400103798908283439329978793223861215995393345467802388975651895131782421789962416281048731790452114895079891948579418369887552830052595061174448174012704312657714672231632052084819106454915885964079355966005524942967585682709366745717592154501649725569661222986852941193616112967210457177665168123712034694626893714043527677560559938099010497961830367800661723518186599129670332812935990044777785605659169461465470983147258337643581218382132236142415410623744433170408134364080866382941656918945386770147589987371491292948399432349567549645842336738783425919028161238344182066688573836566677154091689681164901574303796100963993762733086233217753618329762990300616556675556802889793939144979631143676025798836972404831874765672302744161851621828675539350714075840666348815988647640753050879314225187478133875069752748697880387187532716337246758390897942340817898886937172087179856841707778746761863428225552061206861240060374910135746712681723552208039613583864869699759122786454915951594541650688144493683780875951968793432636646578863796884497939642266867198659735077900000669471793688739666098330393932103694891763791273850661653435568406659950459887446801844391293998113866122995546970133266206466213341560582960992996194978089387552999047747087396317247631161674800082473142357118400544450712797244748205548612022403134520725367261360684433719078593694336870289090605106717066913793122464885016114605771021035255878588555054424887962129101980757757134988550024558552684077569327099542553802279780483236255749400292995167201945256208231005852357831126515166706354461091311829609256757170572200389031907725782307375426953390156174103834914734240351280401469733813111818010287795904005161078860232975910468635708459357912956762124648940601668963341977343527704811563840893091351700829409206089718910459677084191674740472544346795693781912006049603872658558267902737247731984447315972138687231047241668468775003702013336849622702791009849954080564577659843837856975750311884360508878936941493269674722783922434838238131068410200787774310742658031994642997203805057240501689178990332041594502040272513600689053969887055332517232579121394985639424298426923331197812591326016019620054593037662948750009810104331522435910210816095894668663287243644682562752032470916850153860330879654830574526040442358381775745998982779999212821959480820302110773285410745067323821602849459768761154216077463837371431805328969157527309197539390721588486623419397358602686671588943355109694395065911936294935655626539427466806358703963934630853016747247676846076061618897440238682926219161426365212750555952633734890498789247013233796751497429901312420240430435080993175525786633853464013138526103123724234178672889833651078431089622354482692958332683027816530854821159625481151521834147126416900017407956592367092087184653643582793015103422191000458213091595758170723580005286084268303162185267688694345968091033530215724658128152296689353081462559208013150370441987784013723708423422562250255954567928870950827095520644038899374097393382424928040212695045619044331679604553105577282564407172780750442907507562632241634501520559974229134768407583815129277176021958964215363190012616884924259951333846445412050377081617619095338892794562567509707666749483080544502810641169662792312678101505918787133870835018082669597796112243202375817513695522278612496682897193424313445020285601957774747730350868530641522352285408349057640789850905650698491574752824297806420595025511852962173361139596866446249092439560674139667356329717348398786454192533858406789387177237560146494028651047849551791565435590078891286724840616898754872468046096062107898256572409182083038644679396942967181886632914529792736390550974602260816310013427207010508303945648920692780419976805575017645481961296871045168527860909360786175705716814121327093746336312214672155458046270298337775420890647415460141229051390853286457264096226422460154177318350436903678179032109481634602314213714775164149393592550162588290497461153071884551629988158691334712723853675422760408133112618813679921827012807777018054399136779282540168669895921032003602099736776583017293277656567784101630370284441687520303409267956563706764347908580528313088680243387624753533657234265480175460354300151727038417004507614860520018674378336568275748570705465964127957301999295983492919372214611659946086026170326305087189193581467902997686669890170282326653328840240423447833898817042849656978674047209522122484823076753778015019477595484949064785458235993602550525891057529308350678544850192147728766012256855302142184385082599241472053530827213274168220168475265448164686204562968703956858989142492953322382111041858861226099324312167229258521067337453886867197709807133702306741944902998957444152207601633536762438873148390752334567535750237783008695348758830577437196202289325467438128077639788946405605613066354087285669648799269803769402523386533338171335235193568176540444746803021407033882619063463395938363852019685839781365181618948882319945380968579351380949399483131374521757481363054032762588192700574591894803152367667604446360482339011872621459555415247066297480189423554675909949984433684914108330353170813810260079111956384073063030061225194831724877775313518477202788105439332640096421604060274195411693558261263034109039670506013084988080566477754129872909562551896939799866891151820033089442305518017764083246151570484734041494742254593476889163146930143297156665978907704497955570112036591023182350943175045458006078699895164622240652680296689552716721666288624316305759190813189026886102474077161811565163575482460708289775622864482598032265498362021580867788360476228192755566225147121987993994516803071768309597235181624542969662048215283800646287140170098109762807142962860365909769205795000929021327461762970178509642339768661924935428634633367496005774614492369271919010149536026462232827166494637626243976851193221636953440565296883036481610414466154243031839710301033158131438871288671362588980317492734874081687342045673592904301106466000685783856793254681361540884964038330489492787071258619418444709682164006789503627099995142783864556774123010956509718685152572786549027955215141897654523421339117980717385895614475341265041344823365744729986355235608385476635499411241685738986668638299674342051136982749098934407432995274795703342070421746998367560602646004908360584517088103557917600328638677029104787150322915976714377664395352679319282216595670324727406394906663418562001586878926259797576207946026194943411161691396817747718606257907158884271513894037097321100557678062689342549529525817304530451598195395075316356055243933037195609331772881733621983158333754242018183658356171156557614174558101189433082605996667645655114022207675732565539605861350571755793472115646022781089354714983245229624631264583967971640894276093191929951359288587990346974218808958986530709520829636669267372277541148455720491700099612624689976213325986642562222766327713149363573001483064103424113068743187173932725839075509910950290294797625207175936713014672259452712937425264252551052397664564018909929238967054320024788444144170804725942754488986527400020775009976715249583772377768099803768133566871792090355317485193317996363441213767163170811834020885682380928305018764313262803031659232450422423441470353283887617446754627753320107411193297418946616101137097111861604195266532570183683737531737514866604229967104497567079971378139163554893535481152479823172390833393963890692804961712896628502679041019473734587109592280153492177318771714062775869983811489169655106823221983926300530175804266059794772528432573558223578416338871927107480055099809460381732796502954927807082439955681776173428727654324200328633624287373958148877790738201616909409247105654042303997192916956512826092996864603732716312807404391738110883995588304707022899834678588267597626693193141067212484455648770442444274336511457326958880711844013254212769916564249978598942021631499984583270941674973471892355645951003457719064764199090997079350258811871878597810636947790062131408306715320451607389812595930773764061834995477804755702580152673862319525795878517190834173166869176390462293881199631265882061028296872001370717598250228061022553450043124577016168648615389725839607553559279436322150493521035649216698142569108856315241864532297193607754526616868022002880009335390465983320176857137723528168536906625327246885137037005145029527658749610462490093917567296210800955452684478121840500735295661074164352883477591630298741793650976745602721476319534527319148617143159613753901324175718577530878183202217044388354144010123609988797462566645044954641465581010654498620399824533219760738915661435601595771623884426027074363042235504127282495994082955108878853168988940473165889637495598245915952361899355915389292351778837021294953431739079007324852803775724619220176131638108015213229535578400328700399080203947840854690901848412934772644763650906684918348818203854046294932161863780156738895848786035742697666624147588484929221170653288988982074444472331183855836262721190750010331760124975495742249713569791188715929086898076232365433786171450642242653514007520114182798459840574453464205288539587684764785833611010954118779984610516719909509628737147060687982776243915705602065440319704104220663381255565296201846170674244425549053321335362051056706286856980475429600670532421716134166987944008246046781939770696531132788101663501497777396015312339683564917951964101631366661311168813128081219101265457139452937852243080690341384500566684741692174370408396808322290210240594844937980020418137802201266944410727334343845284591994480647400013729371508939722964818756282246215640101248564395495732806556646103753796427345009461750623091547825326152588127663772150957641184846722853667295284309322381504721950848524159918243207265385003510182841379948567474305044861143199740185395175047299962949371395020796375690029477700738797035729377299086513904963050816051188338797937238731294077294191494311673499073028657652957309585687773584639306828572179507091737159534218044012314194361532732350577422172081478298116902805604424085433345987142406027135603806862561634079966167097927610820827220977160268956958476233693107308267318352297283336023685649624286051979882230658991743844808916210309955133501348402813410072631514899851752788657973161591067223504228577863398778446912483056270396698782191029885928131384224091772446196370103514956289480694579850549160392453026729264267036332839468687519461273838588853733592144429994998942375763242124207260661276382461618712138276501039662634876178446034227168389987380020887751949675894012243872035737581474976572680140569152405239816806340700368367286622104111060366619353088567395502241696579703505877896499847794941108996290925300246425233274157605065819852092489577000700044538342902292608200572191197954544878884271806663720800882841563445861210534225044618984615101302517163913066233858240108147453944830282847375318948805360051084674578191861031648773517281668953069532808822550393402393622153234162745033097830639480234460615985784280578104678613959330368120216846031220903248536010610654184265324651563080118767163222672466124158103374229688955309269100209434734979246201501247830337847025427282924457229093662674428324394078975653903706140335912298702430705015976168982330091512043444856694072529578858375015008951677008237183410053156078672382560810645217701159168746229749040071377526070585680498073056543268140280515930023307436748152354051154455614102016604333568213778304961221653221615262937368147722049465132252920653424653373350020037686514741651663164289709150318736367715476133771557917263571929676599609573127365026075939172972589843315077038131832098505269217438763912992206575389337976401793345804536119416045450977676405826436252342320300875532033118625369030398184035061725867666429237612385409953482453422680064865371398226006081034408747790296002158913267034618689343127260396359695029332559933034433831051705193113512559219253962570066075586371634186428894476289562142811324750939762686063160976739216153833245781325326262947398690771028913682673195784552468137612320559791777735279481580086642463881570383813691599599081193755798421576244129996364673618397404053481292084670659878837691558545913683788300162259408719584012108709823053418913966031237126023417096394218565868126387076023938562073610995450792234835401161443169817648046984729905011439908995783731602945893031117477457301465390319544623371768680668504154443008008933601189741676110292245410000669662087820811292531924359331258262958356728351905109754391964353081339497363087789315785526187398195753284264544834243820933657562838893338438703007168975156138143203228396729170980506486372622343473142804301789942885334759306300362154802374924443924178564473837389374421668484368722759311996911070541259251391912156345212920936880806580409630614310825987794704103587580201496295678967786853065175959633381457261093237788293266926674467192446235444177247242397307470876639810885041128103374896146424799029121288002482129977407188817324371223496029209778503764259263950808432883683023446198397926317065940145181494332573850525276901518468992980586960895099609983118499038396629622396916812818738714950036657110815617071384580868641733346081187680713534651778484870420364211342919590367077460391563618973672164229484064866163799791284273082440090272736534316217693283032458045392608246413284443325923403813732282785020745035443037747804639789736548853277936450566108209751822800776231611608569784349512794638289359215292855643691911809676028356117493847387399332954700465755020027086755264920812874444406376891974571354561864932268201417179851978554397752831291622306322947133096431990943869908341214650305307824309732878640591732111875580529743594926738942519222948473179093820608766034530278491340962193563366536160497606935145067935198104842270709816822943741753374524924293926438225809146721982142922026540518994726182780061882776423683606849637458135250244032558342984376916785457793322679524547888727453661946565209381205366255611569733604424472768352692466522792850876237116414074783139967987974372996397022569844755564438425158545910975528170426994697833637207702113223276232405734377916058358093341383739288849321421927744398501915464159675459636790481354128147326204135053664843620435345374123200645066091328795684403283350897882271388326080647486908124994995352943668918729070924263567947968729990243188452512638724746898809278471648022789994308474117185790245422398401189076295463935663304531519917386738694352939133943596664262825439060871064331353993767224317038323846908901481018274652430442067008559624346410315355179589281958315917592496136352764357387923103364841270828808670077171406305490918624971761862906393332147211505822743526663077569296698904294480154790944140054236075565634180582839407834019270357151221287350436043093188854281150089766919949344985443387447666523442008476543368635484275052291223502335654893622548016607584837032614258845188178092442576070344561789144787210626839854192267848094768692289020728328505243077751326641635125926301089098765787816689148744911546446997337094588121523966498773116773475244503196352458734920233127336235500094900617120317577680316558414394026703402371973641827221482584668102558215925478793203403891874206697885424032109213771305930316867518104600681882130786386420572056391008392703860041596843523563056891496486947313736643910915443191945729968486337650907749080827755086200987169855563797827426183544106854092832250731124531643894591279601164438540410060337873101865950140880744177466473506492999053820677904445020295565894007612024265826539221215022084837074538999903050509604364671897515456457173667978656899394172356358197917221898210506358183496858462509094526329434954723553271440796542600433207829767837524966344300860252677692873839422799523376550448856746061684645876364786386185978672320463692880090803556284226407028478036347995878100877525947949250152217943994757034346934156836459527157774370642022046608605443541441108961039443053341702561439996779643408455612904598896616026817029049454869294487269759458078333051326443152066313741595051602877861107555924429646793503945463789386393852368682931661816056416781578340190736163483900068942577363005977212606437988363118146889021365500476091985217804764297152924917490478401230243817572483378494314713750196328795026865346336391199432757210276349198420766313003023788128702153766875941894712457081604455700072937705344105480894484113393264065269590901980756763327069283029290794440383339074881813000614981540013449643798366010653892649490429167069610957147654475498268654313691016549324026188763829318049719808954086405950739809217094225236685228077879860048037634612600189118799796941082956858337473981444005497420178073001565790578419832127309218724497393911127268092133718887793552641338553876713565367544119309804129200937947269077966867132092363225914633183030873829836590445699264777186263257373009650936154344377943586438571272078193144988161773112002409238855292425067216116656418722654403578012711139224989839078752419412308051900268902473328489572063061570025019888771818466867746226358407185505956898720001766593737422540306890086012982645047247190242817246022792087835010738765476437686339602920128026270104981739871116520006958039217910299522431430961661912021071599906396633995823705405356807385227814073074321529691967638273695513843722448993415049633160849867452380774474200200651059359409014551011662839950871899489479541065125074141970755974902950680562659387771348756801159236325598504778861042324262255883532971258967471010418801526172182179339782326112348042097264730910026339811637035342167424107464384906826143504961105388384039762964789674923919977947940899171771112044919520981801050296729835708620332513695898136918349016423983827752430348103673536770024384633436139287425082190253486880628508327405346227411675257821219264615815867888398622602529715419133391407293322828145321042250753328687252506312713439332128674652872484093161897450838995516832598020874831747450265170734140851703236084899131890136251631598429573789168821148714686596863335949573155706144225780738352222649964999634064244921367150869108171776619922659100730501105414055850810185410836292450011436633280090475279603909041123294124384610778881335202707030336964041653730639225760420672588077950370919861275090671357720439936846228286708709326879555407675776882391957760393519844289131157973067901785183152335305709982458235225055569187583953077004211308208842537789642644918823253091063756130267870212566030118250181171575300344005587017838284277848998615068320238551265559838441078194972276183177573744532971693855540640496364292225478702666598259189213680345644765661222255291339106732389935357673634879751967359282094094897857198627970817230777675138464705425402296391051985679948304867256423388495774579598283383526560388262841762679089739012081824032386521267717572712277451400678574473821939764753678953555179160641408830234928799013049958665744296886708191239181839900994259792451247976459778137234825951178802015014139199953670930416545738858425314603230942453881579061663211792249642259577531938719082309157014370336863669613478605564823356485511238664500971171067390218703547294279576089002667260270303346205636717628707012542598276437301865748021463789207578581141528243597148533785241684692882640465734071888346034072794909309682068721068867609361569576670254890339562639818321189100608432960914035930930238612731027388617577654512858694935225388169041074307458926841240998894577151993037464241549403869836090321457078934884136122431660773112488865295613293714299933044314067698612872897363128013062118159084586746524011564254884586231987422931356938924878620518005475221592446380934854320735394326587520766284279242496272916967011964866640371299523778154015481780746468293416788470827638324463721548675217391649024762509985186904773583769041262361510133761363419656231335730660528970447997559126507511712909198811976546039280882956082451147335703250846093236433651871293500337055815353582750268789689510435031218039329027526781713696234816990058830450653385578166065126371008937520746549732586575083635809898297061695328113011296930521712670663634303777853141175596637348710945364776096471623678910233388035246053847790754901026836011113688810209678791682651810784419175591481663250859707067945392452920751241727006773358589370413942008886544611611536027741210845074392597947906305305605932755625249580672378416277283810150070276048653056851511044269453326280146854340501687983708907868516605203917881719650702739180369762242464100392986786536161503651315178908182018633394846625280081972817695263519613573152324816959723348664885563144827866619250029287286110009139472239332890615117043288648121322099601605691891796344738695204561345679325319313373322135141828809423856887604428445311578623144365916327137879938528915373306825491326867847141982679652829585127473723830333883703127623689237721612456839332158681052786893045824226665654382179994995160095240540424626045063493953946300366357575744135758189404545673566911925667570322489104787591361343096871747725459610101422479476193646344566006417522294540587648493082275222923550327236297457144411335716845122341322317348765437979730661673762413364411596944216961412701790931297594392608637832399826415967408675057469838975843373139785841537921667454457291912864316209381145697017198220999714341956374839866331336400408667266777904986696976452256358355559579494106373101728199709113566521537233252131838582515446799322620811598879392216186803609336455631607570270669426234745782749485385294665725113550366551233830486477360243018356481307442232913656588300249199980180784351241378004884021913529517635088545389807056554600995945423682057830341419145186574109631180480501142653758468398729747470895526410325577258950969861024667371120548637378028956371197784962933931668587897303455738383711079739604391233614703917742235616897935108448507772273125727759359753270246309755592566319408434259205778594682868400743180919205702502122323089350694425372563649734893449508773575567473349962409338849674030589094732779990392900180044883681578894576173563785469129389525042970128203036255975609131392986743769955469144885458988245909336882032113721117157595794796638149645881633572930738212761647398674727881662797399105247480069936500135505034255364352956738430964668703057521309003828491906374883920937973417542405400368390350132960210124177196540180691509455328171182872541262989822094148872888416458307512409993269036601582877522976436093301059328316728699227619346633207914690560383756283470870563490877829006753464903604210435059465359331718907031042086929139332078571510751185840776923579509692770424679790877201472103745641576331614782428806643173186150199637767279240631453798827535006173053613800934229269361245219553424989798472353779157037861995445177903363615691531526153845307302591226687278351787415327305031073839619561308136891654051849874621904018213792769974806187924198695581704019961022183623812185205594428295130236935131998022057172387509441198164080454454173787481276994849448812831538542633860509709301036193057589282572682111841509005077867210714044001601121671860601829065536148219493877423854711636061214909717824334904252064519799246232932371741080370923357630274460426467975628048050286556732111821983672511557900853946626751060665718784112859246885612832771178636095064177834856307749208279554332370237223364565089048892953849386367011281144570921133113559040162468766520968795579955458436903112105835982222498891973407188531105475034338060572411946651763867802394067534788286203190030331217799448321259330612717357801740829639615347228434577239849301696817067300110124027260800720327301547207569763621214615112410994068380376787184321225230653913913423234247418881004021016568981993025611863970488431353808189050464740380007152893650673654314019586951698236222573825754000966568593932539250501783384476956910108675416356367266009617275074066335991217390835970960765917487206930153521973720844951208246037741730702585097732522314234638108992102837200236163979777428147547303141530289259608089850201710222961375771447050055527544569564768616003203786438516879560242328274129216093435365309625361454138404658995803954021126484413790451117572348535192473754529374251628575936044507956514193404777968761492159130028089408632584244495046598062313230113974441702519512947226456444020628630997851091235996999752290926594593426730515761567222947688006405148557003726638483040099411409211904120030054160593040207190335909302742207091074892743429674802965775792160469575205923696564117852349963901298183217935049577967564140618391654473285942442600476833717329778302738242817142119607211108087757326109408980944902590171047055087646197943877292382961800665298677563315131366666360972394438758802441347859589131277373417484955736542267903925534574512980251907805889144410512106498461381540510310246247391919222692302671232439013411686434202377777884844823292120167524629244703684479606614493903260589620712194539221586136071584211071563573887992785840879436916886339071588873292996026899622771424081190857961552572387359173385999556213849853940540599905014546930784424201114352965326860008432288353610608753407912529819799370053278754884009912988011154751774352742620151034056136326563650326770081742886776110502358856219006622094685079823294040235796661970097671034670022471749181911432511182199745000252008384003963582467045885563204480725250244249336059138533146040057516885981386884903476325496478927124841984962587390131740760897029827797265951024321814939238758387731920787924304088563416026891606237919642711389093103742672301517555010900682564378429464608040177274886440079639632993300412855756499691081452265231282192763918867598353995536094043680629950467777597921980977348394348184521039940264855255193878250420097743973093614260792972173126730045387330930671620360612717813837899055300517128679006358050691069278174215014666645528076468762985859880103243644875365883872257677722939609760784198898104826750396803991524177711463754646323253402730461028560282884906092094365199396419969244855133989606744477140312465590149296420666141811023564312920530165282106859064760342082342166537170895812688954324036526865431580545151364442293983245450540401374194281384561310309333573343692536200668619350409627964140680249287525785681620054687884504046871242160864146607374912723726503650992116706732211081756975436436644117041600275581977337866446890318580887576609873607529333826374570394060108241197030689707219984920437132777206583474104477684763359848171892111082207735197474733113626653388729346080538623638746221711216602237234699497238943548639825897923305632782067168430610492396133994553099209185128942093028902214254774343514706161933867246333496754697682196190859354640612068408889620840528461485102044533471252295468340230963349144697662507692448015045138226789978607239357868582216725012089118521806927272879442101857989736609181884578091944727127863685170032683538744506230917783687629352739039318979023271282420347463168984118879127095259062841796093553662783990864283761570599298713623996741348153562938083373908483654002835542297688678050852450052856719838896888958770491119243063438715490228238677418635330761501184708339001256983090543720320406382041794465259075860833723315174818130147565199968230863728264255424809761190510151055400332426642888485157461544049849013205083403037814491917524551348472411032743677427810694444165093986958244967834560059335068339422499772696618668621915634448250197700870224217785616161330797381644750229606052160119326819230385854760360185558441094456537968734183724094796598578644548557129294302307234850916836791544379834684764549343269620422880453010970465944309614781793752195169093328174402421437398849120110700362183905535556484451672296699508597237219434567846348910137291129829337303320518694529437086319586429986110678451028168477300193272749919510622310734154450264245308249504901567164145591459225454636756958922497936152315090444231742561138091530027135698182574133982009086855242021349105819867216646125167925374610050751303449677933068004640044026231981703336298955912451261961273345614195303008461448233460110107191230654993351082318753284515516663226552103777585947970788130703494355743246862156305940007759911115104363394711887033435074028881834625698588781760406512252567588380401120393062052805818219517957259933130387164586450814795762175969207988619426978288844829402222883313437510607749858330260889374392079639809330419279883093325634524851850744722662754166418661695922954996805276269659610541160004377109215750231880308139055666352306271749513237793688144778388408508971788829473598407278892593638441960515628603480708928025649203871593072912268739304770969042483644043526203905063157337309575231447524527500615341289646546368384993538174696467663921117496579528721023075002574417801583140498424252718991148160290035669657480166624892275611917571336129880908829434183857283300443623813532676653283702945889112920807843248818465537884534256978011216817825773267493195141449377537831394321087966472048693132728548106930813630774066180346131471527518148968309517390817232215039328781596013106761353380106449500221402458572422514598333541556944346204698891598755091456787744482990024566277272848590842208071675857352317374394929721479663736132078274063651365586531953907589021589289509483644987189604079030909524725025798417588882987479817900492336191464223559354454895221593439334233005209578741467099489403462997134297977083290109396612022982838270882909634133279289860328059811819418132207771809342707068356915225574934067105273022410030465072098596626950030573309426217248525568862432875715430878413691912489115755892815514079967867270822310079048215768645833440996478887046579840872273311281389464327634129723566125997792997761708383965642215445834542731004675600896609181417444344942127280089002723763000492910541298413957020947143639534927230402504073334690851282957989014047559100027818016791257109230843374006320261527139243784161549349621205218267581210164654136597368309092521302439099900572081152194738584743298980356353165132124630363572966947583651585839163014552716362574961788752585824438519250330178989799137226930587563304839088015999210478108322909332212084258630145357065067794021247019118669049215678885553931095401930033345060111429891818222372096766796672722194066660467332065805564863552677194671087511929388647966195650768160862487331803011580223867252739662310065754951774165176758338053173737177029471148916079614471636642983276835586597038106080110234025104086272872799125165090548534156221642081458929097236812920766097233288628829411039949061328417651450969777176538542952915895953210156349149458959105065313802094418868612794065828802774236903671173824170987375255193739139948861151096120877104703480811405012659797128106084408201653082597248937805725293774052836764770274622105933772214155385107382713195417391338175586345593909016962349195080083537390214699579754034466227168482423153658697288751014290658792992322180686667769952729241672318773621282935652180291633634012808807868307079405801071567664283754673241789995064510389313972419375026202546801745141857620238914010072039911079449114557618280560544937833043316647964838454428050023695268333860822521202115912394362887420215980843615550440767636465921772506719941316415161271080378396768945245580970975903831114486926110082778626628505980256678994641013153177507501628005975720434708643824604383919364976220441751424137955515059806225851588831671895794723054241406702727619795811882984644766509601266400123866838786474875475086032882095778302903537798888067004824745851097184481760136389597169777767002659933443414613641158371035996044603147619038677082109211652692886859356086434734461503919972660387707299288018982732632965473887014694404750573161646059594797429080600279592662858341659182871873154570366669445190612401717005857837853624386129513778697144249629433506385862130618389168030212757905763676192336407612697611239408483387022843813568990108804098227899792006314430037663778082835713621964899078576009163096653844423355725203030215214332707634978434675747127405389274253799289083229234159663414837397733771020274181658306960942506264462378582130740153995934521701507245974626602259381838686164480389007957901656963826365334386625959803729211178516022082823390595532150743262765404267941036036673781663695168341485939024421136388272652432692956190520697230179878978702764273844268090260701244448837021033870601222399611700802372437404086399399496708532721139738841592044748354665276231530677967145928241624807470466235437116920452443352263338174148546910295425048948224974935208622697586427412262082231736057374783595289963452052559869769358855972693037356403303012951699331077954229507086414830595728538091640810970761078727138657737395734197887193220725134451276725245411043316393842590741174508529883008115336697992246103680482999228307917263714591751571251139795873473092135706637998687158246693867321822060161211984388702970513302920065536066278609300432282914838685730068289917266859563187014521527132414359969729390630058807107602248660143025495248013668175092890995434332252595404491072027213518645037590203719082799230772539745638356065348256600212758717586734809675854560422104010667856215527689978190742516739018888495094332184063115415282505274237403549458869320496088055793948599912590768436780803207943063717684966451878572142652700071471143661135382619936774731111146239864613773565128023163000265733117531428833511485760547591092981331896535079681574556185687325504652840218809717631626146846076564581909162097843370338173245285536030344512918693300844983572874775438691106407071060552670409397179049937653514856432194093512867181637807615407044980236490189024422615337185965608902126567835582114790162885186612418759312340703853636491823257851117864577823180964545348066765721902291630430693163877963328879454628007522970246211210281793113024379630697992356630273390949251410799376986699387375552837735907600266777702316565424517941665620069688153796445363654890805733706601549858784933211299658935718005158405410930613897481451808308017964749803841323500495882630650265799616573086079277789606726750357610818200351405604138104708745548211554617789001058118865756883511919339869986630970863454243766342881839223192914446769895373577406594509975675139698329840240331778564089472186308626287139124794963481416915067299567524419175396696899595949997276917441218363132114857019962538702756195828511544120004592272336857333508642478660582141011618326422678279085185835443472501021468800767089928823461241765142187856693753535530585014740244900458366345464865455589862200173344231095903863060265024508545503402933604601751152267102949538545418136828359447812489478612298707410273751488743572981712763193850705806871089587322052444569702992939637051359402675767743024166240435689560335692227110159092471536361774990694177123482903973278959745358823839843959546647895306589459222278455080768698849775914506587018927921305755277969415827301993856048060341466881204334841597102785405905664943415833366643252097385921154993605778132638025727482729553841498645249070641602836555950334279774682103145346998826059291794014857040428983479662600639421337309853820256393282308352399065504138031658128797227130743924555284878384965811521721331341552433312653011719104811250043515209481620214039091932407481062609967378114265578840739989182431663608830557902173500993340182457787040601603301151975456003717719135903892795182599528669280666690374077067501396242762915807372684201496252897034288837971880978817274388089145650588964903618091696511449642730516102910499689912619003463360483011806433792830101476237190809278249273659602909958904630254717437615860098638394478153536076754302093647450671977879049191851087962089875872312969977670346424220957897226647929371628908484440330544427950499932908564050139415106075123279270824511092604134488251154252019907382299330709384145090134995145260822618329283262706305839174103433048078842007731049104478525183743307570646668786595540924936612029874760437613317959895468017719015879931883185674019640040747799959153281803018995831661247344234884306178593006608647902534957744893354866715990168512218196237509235981536943923884630739296746972693112798506503712306801984522337053452674172562133460969235251461165597486625829671581778859762114380517190921103235360076312491255768286114902381637012321269451187472986272866916425449867916241448502851915269597088491526963331372363279183138580387237940845717167449076840344405565650568013319207881755754429176844891343475692033508993770996633685080035876348629204999271842473707958497125738980255130404157718260616271499337192213198030374829477640556972825863189734047137237979289205846698574727026815252713894259523547287453117663793209749618754564788819780985242917004352573321403377664132001002946674531056052748060172012199041754842271551446724663738358481147773189890598168048763310426986472698603913310695171543502850083225320285322276084528407985774858065047211941916566946327055174079963841295705828332086867260472453488594559946445208310896615672879756431975255379709148117181710525029311386490256048108468957031797869156366821675707863212670149255155198025908761588011525452007031974858854593668079445045074911398725610125780808000819241418586413254938172777844172920016582761448210631986774971582857118673226355257552279114275204283466870086942746270543881128648758147663065196262388704891109512664246321710574432613421240901306613172821758202107522176370966846084942898541794678867918608270163359014361879135990608008552610306996881079908454415383425458020368518183977753535434523239756553229474000183347321392143083277744661446960672496521307480972656847538006960302714928778826291357652901921575551827817496906868539883140501001263023519517230986526546985449958483423816167527701912971257355967418482923760499200195500100266780261432343572134900589977968639796093736310251724486014736366799798969252421246985181023892829519762945075443507504302604008229183455446565157839395523665679885678116518136392085039156580895391303940362411098549284206963176143345787061069380907340883217446507956509331934603714266711562766049158869530147278731989706215598415615942617490821279183313018362127651989831570386753905029486571244283113334699015703985853380240022800050504496278370638675076734700473019918527450328577470296106247902411309528833203024402886607402349903676510124053155026159676654161201967934481867361829680746499013255136134288661277223605961836078617005724616680703313947896063963665528305234216876972434124580791590602304168510550116536864942350856990520721304133197335008175254849084538607841832657700137794752142118090515698858762256661316806902078457585793613230102528629812817449373639379958016831842049334766150758053602765399860108229569953406387003768296553684741088142194077866630506054170870047335270888094599607282342412987519253293615697201865181034254781635015532900771130988880498982453325777376796286185356121322263956005261758777353085070263483790851273572378338697842425446906792099573762292116397782113524179866783812292885509714567660258892163387246213970485130286444534511190135440441686655642297229368601207450088523441557911104822785791586964758764367216259266341534509308890550731530324545718921738277400757301756236945285213452615747930611696674720089450308788401790920355223580834977844113795671181788572601920597994306307479512840462251977466956777842619597113039658637258351692267876619710164912683651773671980799813816798190698568642054073038796331013188844566984179661467969816669999011640634206926404741823853532957221781741341745032522884423106658588158743706365677849548998374942332050216880419597752659063114827235648409026889927341876315894408799636904259352160398018416888984315858306136139215175624873628185720552273532787711917946503069487815803618577705775064985207947904387064436343866141964176043766519040340429366687897430210695695160044709040321322066204419639236289981305316898311929891762676091607552769935381860883652883863108284975546454969626125506148218522905014593494459305401035918622809323731510944316887540960070377675694320260315848694384168906220587302641315952698803080601027022376263935655739240159815270165364273899206513021723419176443920520013510695740991470679586052296652674983024366216884843378982340235521205814988059423078872932730912146559231444924591687845623947645442408739945441837431773930094899993653294435448871915710690920836562920810930724086171596881844558247223881648986853927446167152384868717883991301069464404473337958457306137474209870072689061170252190806057461046454814969186983741004206819038513516188455793729854044045105919975981983086976679843960440824551482718947725691435935275623643898524134161845290644562134575837491180246925238898683071741867016181341933252565883504684479239235182374523600773432050818870185899681266627520198188873603520933436322287003365410378612784101957012706699619530500703359799120192740631673721173237323519785956617268640934038750386224180299429168001146198562197656020821873126678441313109248420768465833707647759288198414120326727277338940650730151300147072401558328822036364965398521455407224398912669320614048590013338515845912223853470321646951447001977844179040204348182702019909014436344922893695386637321253575144262026318206503222940614958784852903620437022124560604320173969209538946798723967888324867568148388571169824570304932514294878879595531926550488298507231122092719839479419832537866025298836839252998918573530255169645174426510699567813891917220936220227171117648946451463002732238642210912539848902912015978232630124265381063167349967771668584457681321340511675576857953823069214410999072145806168570074086931894397326636393531100813297623649718631230868910653535002001055082799109212154826828530577767547251729376819195567099964116627231641063140835803185570917686822888209465637247364334395202873458119097913784098067511277347211040941377306449372955400772619379830482909383926481105416168564991836286045466171543811425940658466663847165881043084192166130572491260628488652766203128106143513747400727891703295324009045548567524201276751621126893684420706280648959704587722918909467572045581581081881854006474895245064916350285713651972733564435414538544681027625076304005162346725672031930192331332640406908106218839808419980331575040040674289850298903405530576867288099434550368341807843042586645038951730506594139048310440286842516235974295406733133982422774688551734123430043256634048701469694496512185919524749520814008409018777841948822583564400147945261142032020962366896144695582225799146595464124495234052748194849684695154505698867250073313115249455008327937920369879991743597570716573335927650569765219874303461462680961939238907353763657755030421157582982992878676843712352441310436268253923302086482106988868031165620210922621622296186243604306248567511538018631140645367684103492170758733411028753965260786623880832274489230779739757811423741419823709001616052971638491767039831220718890863922453862396252015520767916918179153342144099639733054492252578002954498574647785875458550364304854027978586909995316303304344393684357642629643855724525819564835061091912506116793594727338769976388340094839680196627512886947610951647490945988664227985057879430067330811184991230247048922306088824081743246499882990094535188760051562379718997306029369946182419059718904285194129008771224623241450420048777673982857117598931347334875836549184764856704702404413868461177901281411440249645470864487665381651901804679444154709633844936304567748770467144636446560881035517132524445718673685256733848886661194758062152670302629676418931117150304944803279036895135759283907798515474640824486104445847194993399040664904283210605643485016202370377168901706123977631719941805858954644458375334928377589556074205444524702842807645552085134332765615986320621394703871384472929127589034725521938218512460908293004522359274339261689538815685237976486687762081619902310986791473183233317061054424255289231754447251567073427224072415938846416079706099616323996573044618639848219670200778505851007448411068649803737979810763667421903738367993170183050316883297841823710817620278706659616804839135863706589919480005267378286715347179038524426055613799668757840519259781953067567753142455393047464181920303763454909915660877523862135733379345530046471725792832403662876901007695113952276812447114783234989907941015312182912822325208755523165439346621510800260082488742853442622407150363916281055950088528796255523555018871757024729743023274261913085128664969865132335659641419701618992154675367717022369114893400940777181721371611787716081430021146670815869933264633465871074569013140757688235971364277147706100252521646711291053911582945425100160223450237606775830950030289604164448118151460837686216955322859050716351039451572361079576439632930077784502897291774633205240264798344949325179600198578985866228083871667695675858503573331047549505827174097497815475720442044997570500099816554791094888585367034489402629335308431280577358163325124018651063062206908579578275631324335971479027317988301019448390077835264483517651742397349229406658358846107652747730692066573831199595511409602051196227675169211917817232509618863753203851342885681132609369468235856435243530328618886851374200921066248588389552480010792646128539499784752034849156669951982086931089387648525716927162611102696183906964075260011047322386155691265018789705193050150015171257569363337519024496239137188470993448871283967531498130402816706778979301148016513064277472535781019861832964026364604152784136751807642492012145227447569834778818064186738748136981720573025474811112772726050552595438090708972465086478066220802918176639454436309501507203208531083836940993971854459899158535796650457959783758476718057509406951417545662001962430580713283014287880327345525763689404903772240275680583081574868021389299046129926583464415116523406493960281099436017334872058524347934844381716691953955102868056347239808730811965563758742601170724555773292798111255517429110968148157598513237855247166971574741127305393834428561403954838557908178928700311682173513084715622331189206480512198765303979344072657365268174682354309905440079429274335699356457552578664310443443159915946469717689115679639351352849752423393575427384093887390256921755049819798453446531780662568613382477184032507844256938088037121883016490874053834768535460776776201676183809554448971186189551495565622239684922811676555308081743469266080594414499268637754330119673242544334605991435828825880047440003752183103449461269464756948428912441442103332619227608201016345151591590451335413768444411476192131116831136153551583657052276996930649743698694078272153123182732233017361650671085062874179381213483898695379422781660387072985591790563780031624666196822990081618840048406885063515747919097258940529020476297312369699697895478879708055041829198962744181131913376640680687801247081381122861547097042520268294852854821898970969538194257237490953200014279718816274333163810972309469121679921849112648805964731106206949580294266867023348809284676992101374924988487285622547424157309582965850237870086695586519859709039894950014057937588837673626491866013216613008049909180729138711345995805160232431547029697366878514366448850712539854156329095384685178322783942867213786633386808847861434659935355615920732185147321186519883429769903496787465045356614353268056773698245541824340961251105939970189397420935458328605929026403988831223551114062326392093914639654474691209147359943602737443360667085716571316933805743774962612318354289772596961807224677788361054483881923340981419134436935350430407525059605342436707030597733151370244652288492198981235111085460806710855709909616785595595375379151260537605927430716290589023629206592513908792841616781728797274876167571904034253440967960279435200879209837497525368870643997979249649665717283316315076773990140104542628279747059789761678750110100497281887944494959981235864111568112286711105534544205842140374659938555079888608500396215355188642906253974111871395689723078440545266145504101194088896400566928105833834730098062046040390153127538670103235190936636819495128678768481794753647580862902415997425731596934508227404712563277529162883330484731975920134909155337993970075406971895806253678580668395406589009775279143696269360022438546404202793084189224312465441116876433346255396145189126105837762408923447353225379919882881554881982000237601787810504177835901823423319501322363409675015214219887969532605779149684499217051391216892040749751319749939074365091512141527383310524955348786271312469922724328522133105494472342091423774907166965974124949540941553851666734203978421960036928790316243130331665546884526510955549528461719559949010316610166338547969128889121381129480264404288873951699883065839408798533569995009254543442928087063258764920673839205289100179254882196518288870685056241276146187434211671382302869479309841568870834802691792751018909247915950649575512427395006721743450456397214572963865795831928136850261116561292823359643529635316474149732510553423643170307027983875890315434640567435928776207858356152488092823454750049148390023989838382321312993820255150392337111797999941952402177629866388606709821332590225593144040161815429608465764553306156193404148965780475915905105101683846372510501899366203633090971110427260223928997839617084623216550964919575685902179559950275705217872411789266548843383755779138443118121216223330566451988594642320860466786580887382856473201242201821425951224165906301454260009900067252634776481494596950999689577678998016813191340467857601891754639171602315185494024850814149035839255794501976782946476134490443696486512676984963702591287566159098051417687423432819757080149576008042949875745102487431491974633918857041039055558434331819999099690740104282356670625498635358489593559508386137733921264915901446246445640270581914720624423467084168584220108396043415573491453672348979369890473640394257605765086181015184952496649462139054210537347121363755176691297060987908134498859006710870843043316694541999939685600613881559834900251789979746468394577884910432206956474327437216952772085456320265548785058401066172482778473152363731385545666150369703789994616033184950767526142227270945884783756187347619128606631554727066164063191114901076667833795560421940810826501360962227568992127665035010806902826815781848322676151539866482344166567272654655614073329516363957629503449945145490166914806418097055700234383002044397436310733349195316917092419551041293814269919883528373742847771835642096183119202966937792737001273610250976339607506890427552803716915860228749495637642264628443190146489409885135885897073640161138733942854872224718242609440155986271249701924036031990558388393735109114271837289731388619642143266093421068406616010795192074848823122751065414472480337013198403444341463268739192821922757540608430952037831185481798755143933092772886770579521833124605797426743753633553965190302287476900936849907498579077207625746492144161005916234926659299285299637597042888705092415657295254862192985320460714824246799704471760264944549816814912009785720989224771382225857599903879908680892816262829099905985505143038097219325993379390088261620618739223156141916476455239853386386829353250960359237176781327994630369412608005089930269941063571434231189599704449518638178354236275367333823616328435188186939266600339571792165813232927736763166647675714711899099386124051973470073580475657737833844955642037159307854217656719594917563950361653015569167216653407908730742234813320395524020677120260336625105992368229895968883712683624150922957774513203718101821002659020123748519760415832736415240732387221698725425548105343061048017746509396734312133153730435208245864612975392956675012121399273978371664048194452775368348426742936627157482159642135892434740427640048386388002403497915575669112426762585313696151262593351304737663692501476247534751732848416806041034567050440862437680741636082243270383877856867673951666448320578679294011703170828890665391383657912923293178648803124661958187127818288463024392373801650875071542145784672490255642384825364375401092441058078223649024546474171393924895134369330165070922375647000889404540795118298183981062928148849501672018572202420291258661795228940165305510517315686422308935977941447556795303275796818320999740505883900301778416577191141174282933391472539613712814316463714146543557741758310746047644086871468593247249118822745521440518263111196783738193180178489269572936822098155281720913629016976113468364713856575628057059587078198964718992029873800143998232005018251808491584693413086785230635006762478268725599465641103406379644492921847199980645236564526614848672020566262491710560258179293050043485355813164211876666974018932541516686526757545129691110434105621336949955548565564207038119624024833756615589173860861396838627122835489202552756397275474180621976305858818242587621010499254925761381104793064716111716760666494126167087793641701173841526531233166129675844744696564845117033565458945583810502429309755778421075752025148562103606399110786594143416202232587825217324409372317796102687949230405560013022793630257602164254235185287732021225702342512776977030466931127720145360515273653053146045181569333986979246784026090507330300826736307875807698692916310207532252629745446417287867222043822134890071701766711019663853069361676443315977050517466422213671596445939666083863861684589317349675961326890267660531342711251815236851411209088652607840830756766962197287198833313220014661605736153390384721754121278082168982741987231670266970284400041114833358829624542289880224226426402671800402261067498874239944204951155628794906549328907516243431086652031415231989723601592438844142009813194768007083712359778172949963611468695099173957553066888454846925618067160001207483243952514908546125208711500369702586199273441193108663244980889870275421492224424197334323808325661602392811184187449102680810433858051019060784518228031174342355450926967150888299873813989571644937607798450358013849394221701792534063102976902250082514213974359750382513028122995793331950021135987007228848135149338168582276472732220732650616665257204249331393983162229859221420362133207933226478476351244348599397858937114448584120815361242989588872536349110816772143328713813910835989291824864616087984061258534671753897034032787463464955950505474473940853014936058433966247758013865207296865665082089307078832445817130922827121319672626209966994652685100010220495175516233712631411028605525586395626571324140433198317528809411741708370551711323626132247481599658298744128458129222037155015027860749194917654326465378439026502259706062447343369053681776674488690918339784791501109209944267170172177641494021428540434016387946881877118783921874828598064090756968063454229837336224729981992524639736318800643588314586073519322300904548255485155746930911682034089796703704628722571092797712591098189204562392131165434677725072458102110673865990622988794350676743981574897950863019249091276767592094033639225010728616605480741664268109847722708908900098790711510527376330426029339662576629510571247480871765573873661662566801427035596015152878309530115916073303372472512631816068205791741139341154047053729000057880271346019647954026149345302953812733649148964656559143943854470375868949341116080240440054523894289472485762852839827437506455640535237691097359761905049173873396625484117807977551447558089367810483778559674263901912393526870172635577929456083771306011630802798652582075444683290230837768153511499574895958033554833038038894759475879260103784405823713683925008018797794163534647201998048197018870551722089569281887854247511863784305751810906478263460897128578074968941836259459939592374995883576258408334460467792921761412602270658130034186131672183353178210652778327719609081354827126281919634236434350130739356058610325691765195617904537248583144509646364546155035878084154593454788014943899692645243561993916359317863481005636898444482519641017341094570017159230137244245630254603560721048456883673980219158079181070710866721235245475227715571434901737795883747654850353711629331450951849269653239459513147625677793350125728522029984378387701196628131791346454463531770292556837553173311334692716888245566295593617043630178978374852244035896322239486105458162249621224640496100226527551782536463701350770177310643112172584719190399022436317786861327695412570787332015548928834921974626550190597875553272800944782639495234012269406658955262602669485752615287488562191520945974585381283422790189602536632349563826633830035851867717713239586270403733078825655725099598929905367797102646283023106442388092001986742955167964905434501086833818318828816323846645822588085852539755648250773620763149699675140279892014045931198044845900573530167243240075756184711707023961763327630679462834215858345411220965790000351576876894267684378099473007318784565137899924141514816983204335808849620045179278278796026831840877938856538412890613692238431234622853299485665891975907119330013065555097244734424083107503303098459785247189353701637953236641161122945039364044791030905177654597323796815586781625837896601596305616063295158456736757223662925885677910479385728338384395821136427272650820379289184698956824174864434220087962122108347847911220641532111042038346831551261331661450437130572275422517898726005838829544350116819206461248460558202125346563105517796145565623595757038190727163462135669632064915631615148577143039476359221235646955193099405267794448384480587166412876180176832918776924480702582013584812173655191801574511387218525455684611063022813205027377235327844829577008229666934656911314663645210711495010990996549875639967303770191593260368217154872419667476123706438914648894867144134284818330072788367945664363509524961188271242010522858688454021103221645530124762928562810942250070667357645466131020580901421518030105627234760461491920579024483950117757992600158122754098561729130154636978142717540639643776253055474700360374478791932830099027839919997343992620025067591538366413300096138226711665112203439809572507486355400999658591621180370162917097760278530633107230225312571448122552291992085775458774598686693397413473028693321678475742269333203220895833072012222992389599838510725669209748203991414391026030829692033560677772314319897928251888987531569452331867564284614436861308407574432826459854628551391252637370861869649557055033722746705341184018152564046493555597830613856738201017613323110107982978991984651091059882219194118589305230206864503374476898659510933003500404150663269547602479472340921859423801192800498947144348688635972438132302703471043850032123583037491002113965423773834393092450037870265031411135356736932311107562341241334221967887328063567729876418318982114215014866284949688938420897420257351514025495717601938424215164725581506156665961400322512007830683903049091108219943282237987304657347500213155749135912790927780815452451441216234675384432811049148831549737438425341544685344312765220101813706648909158303118835392525449415082271947011680123031235598517567989463301825486721868980777130777794799347014411706013004852398179369935184599247312745950873587922800029891246790741415670949935004492906783383907201839138555658323406018993681283268121778473886613573637350490525546211427973245003407759585114885915590425061683939398353466503817411918467250062093923070327494858182090436919128247016084980273692334260621618963967640091202588008265924655873727417904406520186127210605379550247504512202774146869440068725143672040769966229399211268413373095904388903813322601671659065124507259113710057351821359936688274081634373062097678347803605112981045345564114886516974773179294701995722962548416927878847280891232290547491297423118478644851871827530415222993280216753888218647269240725759251147586391504713347519222884330077296163816775278194313682704955427740893381215702336601039609754936672103155015897273300487363893979726839792687446310516662426785783043180202721048635843515419320759271129261902100707742198980692866167123875429763197317858942492239673927359774806494623956647718539021262326059906107045908957253085248609636999575165490829969287804913989885377226692365255487484732220412707640282654704191604397108434744317963359027521441532823936080621962839343057110347432916239306270905010255266427541036054588648517367240340343232697085425379039238143759036681324954365282811465442329458638455251914161232745778126262016083834905231008521707686798291940056057078651940250565295922372535198723842334639632123973239851794016427845717004000489672152310619400419580401696556170680836986437491571775995579319925154795166975513620295271243459351143118090157742482706504814685909316121416541812849923345866597931164762445499511904800180639580379272772510880229862920467660725540428868078475148043874483263553073221374812783763932572911708189750547460036316857038779118499964332780464317242263275275931272061734586595215125222351018259555346422759453857436225454782880612880553962006127555707381648637481965243039488436175468696665011712491474074938133032908094416815393529272511920923764334151881579111883244921450625193866497398061509133010111513934065159006970684305244279352706210330467786671370916396977090163211418114713658152198133707205731292539603555827948518302586608380913010297185398189108605953037327306338602393478125117373515860828504983868477860477312615785510235106304481724765569432732134000034809822526538597091728126828932559726799351954054334093936772052987752776031497352358924196409967042325828628553176145344588280957007247997592724607050028276519530852976598581840933487882692996423256948529176743735109847325752626128867208993326116128372857250157175735426093062996874574880033652226118640079821923968769565067092045949204275386097547422260820862679998000428332927270138874560785905325818136028501911208896022760689260555182794892629765793298394635466427334440215837858086813224744594774084013673435653199468574454354194948231062965140922276997814368855550824087687490234295183136299320357637495180723883026943903801001099645453277286627893223954223610449868285089904262109746442209481728234762865170964966711685528831072039944603875466223890152748824704790683088335515258572452611462811822190231746969199686422931366124542353399369443507781809780477730437807593872976705640611581912998537300687510268136380632300086326809040155663763033131893168673953713934915845703637561039790167823886313039855919352803714225984277381009471748704328288974260831942725093632697828372479363499039617582344496625566118453967570759398078640555439416670309377974640899032927574695504344687378053128963596692663215207658496620830314317983455447205242758313501012559896217478743179189370128754472217550410063643647172300977678085165849707678120167801691562671732891091451411600253335352135258902017779086636122060075931412437948861724642501933376368716297228080491979115821886936677685681006427510493525827943574456468206287344741751287268512061415153713660795975182394538597501955233985993883421151372115614561219254719658155782496344092648329488927521515790037584250109101700001342068217734172263635503351282516894726916345052660092834926638060692286636171412573871243368075922754695028135167867418275278483803104634494807710508008101187465020995813821330026518269833818823189494450692720915767720269676996655681932436923760855399571285806092108752309961924495878949275719454287404044596125307735991384108550481313868301002954465337807707891050545428566830698712854562469983111636885551008614860129249791422527263517064977988572400042326905585477676313342056804797638530833237775412224434337523216283505719520688800672875987701267953343004525777289521159496538197858552957573879835599915887473843976895105237045755080699706442938777834376373761944042461783237642646207699642919416751089248489940443665519248469673548870125701257159369969685138252686946685395627774189888951990381907858198298140480847107023477206509980547492013426122592636492731001647711726838174207524651265956392830169717827485038930007173676253920387626330175397120832428233923068923134802685514674482503490183827787564892874317665213335924380334772230386981506140238010122966729010840341559433572689027825534481547690197877079787895879473041227222517619318493368815075979570410816587102032630364081842219539899891738806332685412561488059561910137203822188511561570543736113101992594174787481047217893507493813786494529656275272805270779850783827912136404471310036050126757171148307648011927686223454498577642612102792061536113571901826548472025043055725638485996185432437930486952442725761012265205391824134575542323192558424671959261941889307955992531115924479570903762266150495965832231633642193453595624711753230933665145357676798576662850657878411279986856807253727777131287401203369995470634635704590830918467774447446003451828401158994589275097294713002966396307928282980129613332753071495801932644464171290331214005284268686171065220243838625494638718582619284712268873083009813915845529568810979822505397041876694548737272470847415977049663087276128741447693986210575040035527066934631032367619140672566340586483637722112219315796807629088652579175709219632792330654021952817569583195620415438252749146627615931019001374498674472107636458014193394996044447426535278117069494195610750373614035614039945463094109762507351884577376860964360917794659776668633278867688152927552616500758348271699054547374314162912050406867379901922720935097038621164632697632733519192128979416940131929678035911539417853851095470020066235083404550313065215676402154360740166712312713562621621404078417254392183792444700181377474381548361939666999463384528114663264854492188618787050377501019291102004353524551839379192660820690037694093126257432920456158247820323207695142084181832647108962008920249578043253032042225771959352690914806091106975616859275225239181366952137489615216781092668363113395170699574190152884595438876790748898131249150713523148180838916695710930787618324938193072969754790524291195917704780866181312442205850466950116526058945897923869022554294718860877777724112147365690615559234979849181211995126843583045154793973453037047622044083358593773748943538447565996080388745243395216235805899697587112933300017896242764201955483334107950804363533690382068292723083068569118136146165406372480816115855749909766886017706166384189559013950973640776903839761788512315886684753779824553453482502149449986793595320197760668682825813555547004771329196392690199480829897861907980570571348826922589701164617224040685588639392723981489055181930338867091307187074023626383185399029292842146488587020020989947737678936444742129452617051208705013785824652733342099943192117540035958324152914477250438433627712194885093378566570431458249272273127137867426647823953272030169206088034456707313624600264431155119080709911346031859650849655152734406123006226940408930190534645710773794896337821091486335160174572013333114223974396942173355977420958678242186882352718425637102953764924275419189745086619602754107884475620611620022398329333904331111642984388598612269828392347439073578395162766863942485080804095264221671249918170818540459620418161814163270112428668796236777082856863288911668800197005805534285334831651798401346102747900410394924455160668329355449104650260721034551645216995300611852132194160118586583941970665715839500266243569309880752838680136632031106961170414156575141626186495422485394789774701894959682100384398351370550888619574292028014917834974520325385517144532764555678192671546968906390545523351480520413306121122278452041789233821864683944906533060252961384044930315689484820457298960393973615079941873841179133567871936542189113366989395551583335042749687143801667874384625045943907885956680372648162157124698293815674706421047561430316664406063195700112275660978422810970012029795443971071719206484082174128331319491735791397940238828586050047271863807226717649421448850039448396332961050422908567099542441469091671534227686046181857810342453135740424127663479089586678402161099705602775601680335597357821532286939223117064980049829366946035628496508908792678030636625954944920663259743786027001568074026813183346157821496359461727923953825295023333964722632742404415037183956346307750587863216002447065079974079284269884656562618295755227365948218173418417610913458204049145529942331511883873928780079527859687541797165755816323918758225973761104376235367448896947457886145310817728878182124703920793295586203655044526598993424482700165005188719476788350816611583356194049872120671692460819844938294280949922562699674793853879699148356728583138864981604505204140376768701991492790728809281089910553165638033243137902759463318982032814772882757073311201893375766416227356868094858398989172518184170294618257793761185632492164478224352319620480319580097867642446799075562440616970894848056818360805271638931319150635488245948239129916982077268426260627202526518095149921196239180201811588957560751809148505136083633567319736635555803461669145338855168582957956899859000608578831428367173558744532945299445644277938160903113337006994768035864879070836923235559826707825046822663417658993696744911722552308481553894887582394755569604442736033221653140491860284829851189371343841014386560711669751018519577856462702025203692571600572108638732953913674124655286413243493741110766588494093636918645799722418686292904323390679459576652576154088223476305536948903332928311798606897505772188457760144551678769137154130299712939069852939263972257785768170008437793952008181640992668484678805429819991312280786188877930584908045822688860263893455041517097280453179463209149753382067783956769122392698857608109674144088099611331601844285583022002435039328253201887715654857861961239952766807753043123067431399792949988385310068353166482900352723473755772272627234305141380982504786736496776707196615108692767965758747637992310408128881611598566656421745091971563116601230746142980594574680432942886827079803941041444210511347574315205415140659261802773632783532469920409832036222553150406585095693585341087339274346590702321974231235166153875115721900191614493422822031455619105692441306389270642155196145848140824245995336420146653454697084335834293169738874584180867683454365166107860407428398476204265551848515523451894542250397179063202253170966567736988118591128199824644592322170896118159663292915248540191551430136646864232155140550364176308318454981316906273043116824030798626032916941542841254258142952281589100711131766298180340101182467816017299653189549215690985349758282171986580298657327073259472129728576393395972530765601463131699976795354670540728785507921143511660129715703338346731918665580049879383841731943977543887412626812605603922505262444602580982697479981547930684692548116369350435540864158170391339660279004941076492727656995310431424234261557030449546858134336493720833557128814451680197172634906145818914249137372730629331850252287034906810394565395104828849352427165469626698385830250881339048428015253282809153911753214767952028639560315668017735482541613377676729043796405871441824497302250504008442084292272388789967535916619681035898605176308553154504506079281713913957751303864574723398553811236343200922312168201580332287858752289141298821021666424298571551461798712183707555209065299295061347286008123349857716294544838182940072432106961889855306731555000424294470133061035409368822898854608275163241795204606473272476586642338714852559947275469870794902806952553491190331884478031985284120255742787137704650602818657186562188239667631410632443356152115602172916885733887224416346983188798851160136117011619446755162092465153524008310166514531087841114256959224099030852355343547696591620123388034908305201349579217207528698687684926407594403853153584104371709771236403056607312899470488075527802387882205010433054054308462155375716238708930207165020569048423830858353246863228151248680526370867098918603160788012606379489599809607463327664770212319794883187502338086565955610695732097981360482730610382948940208563023700894957870483953230953081976433849539200053779078833831829086054179456601070689931556630566691165189650331117985079814555703694977579325035254599292729066156463168546050490151047729051460781239304789110960153528628875928846963089060938039169263228178890211961504839801710219745314603881907866306258915823709435283724505911596569432002144631396717723823967197227437507600156081901176312085140983512858598579668318766985537829893593442461073302099304432110739366627821072473110775392529411599462538374614304574669506349888157763902652873548215768245860135188758631812151796024314390877923619171233903658952951620203261620970150340242549398242321626122703660560702094074830156172354818647463988490880221462196247337207767807528559125946855632346082056215654277307284729461464643062940753931078935896531792877510930129478536109751874702799355893486944176110518117502711941331392911082089251604479828036115934638205231274354957067667653022142602740216091782921709006931147884286290472612983227664630300907023841108668049374893076868166457375265066664939386835143172183836100142138020939563054685291625639054327921089624414018203439852235738921427314950187693613223269191892721968707042149065771315398549173321327855729422527954117406720711837983021996493399772669715467981799702708050870829578398889868120534469396610023116820008191562483268480499819615110245332617788843005313150646677973413631766097512749399726353739755250232019833520883978949934465968132233326720352898731079291161469938463652682354728860059093860742940658495738080217386456818513786491211017557277249655176252740555507154731052273107011321061000079429222382589326795961156810789708642280595017134644011534395981511571136718798547570918571714221423303456793300726717668499344051254785268531484138384642084259776435451935839833978016446679001574351495340809009090528442471744753639404900585275302721443314412695032194659846133466980914007785307354670009416068530831649416020819066082197566211042317039607063738790563838136936697275916803386995310567905736863569080345470851505903691758157845956136300336260476145707497498705219909496217750711884321200612746490219202556793127005660764238589573285785522083425796277660001421835317641595071597262936248470069225481460972352689769386815470136299434204732369048138228912094987415513256381358602639126110675567954781347521483847459628140529927060422421688108754885711903319596287661677772496600973060673097099736046359471567738663668948253406372156389642495590604561638046273442543026588617803160561256681115756318863047550151210777040127773601322736812848542327750696160325820754013053971147053511917641665163302432701187451124400101493505699836089704033337086485507875767344466405457488903580933781277591331854840787859871387287233321346423879426261176479616387439471334978930834149041727395344672335539189752275732048420040980160388330268489990843866515252145216887481442775311165274494134218169328866317959084635203287612307402693840069660025247206265224055197151268529373555534605431612072536667814231402948975826837074742796178700949978211775880820443426491999738659122951454830228676750445574561622818677562156132651153137255800201161174430558251801635684976376341529175718038124482046582582858501642793579773968706098043325942793346688853289460642751993728071949277683072796782676812261659056670774446912180295813053393646051550453260200658260521091206700083506028507618841610784082614943824892361033305104292372543611107931581157561707519602630114436388589093139510667432792564116061338876453899839000627466966567092872120628687930583464156734760134895453716115662086847787442599587598413829305131866469050803730763259222934542536069158073082235027785625381981684016815306444203038690095083551680543534387110729652428775040880564093881174253933329938352914466391666307661045467374052779996496612409829003432044543326283975776518446349423549240798591236010602640591599141388165810078436854436003493728497161864020975425734182865039537353623050759419778826710426147265583008172039116967711010888407875793970905929382638632021646922447682868731842948834607486518091999405635514025516980567099864504508727979029153603863961469023969052584203506013322721162087469432419173840579719116688604170825498768825657908457777498168085089860919505631852551075598266429213719927826110055218154178492618096608898795057682481235976673605964662552715333273111738064930917223303710848178984805586055101089094807070100916014098602175696728650756559918707200025807155275786518775847051179485731033792592181003670432481292520663717729030306153093443011558118008417409867034347634879899259126752647793216788380334318937730925365898168029720344128532129320157224973672166332002510881681157042833953082060999596257448260888076768802241104898803993505404493190281572415876920510552290378580635747301596573569915494729273973875969301862735036066884239096767330156242132945170932929396871901691642497063437826496013975660791253408885461254578257458616243082503332480906866057602530283545415172315511611696879799615040281419437211227943122990744535405608414639105185562161688708278312981609801175886265378821354445181535901409814064009303427048821599040110749094017204387121946864598955810372989445218613490722189620924795259903533851013440294399263742388614267842720438546362569283084914489747488346028972637301040011744241035650270938139776870405392001719006884668421300875958189719712824847539179972477364103428505351971244203694494481113840053282832142642324510835931917774606360901080072660385522972575000780285331413847090948130852800141408105788750411080644878302124431313228203650969712860826125301872564020145235482633608298247277173814176992407331252922832383147558349826029027193735183137515266552918905848369346236415736451593754475798586798044135159804989086128886063176093447121377502991956855918235134371233041110854043955660539996001198520313030602335573812007375553351665135944193113079512448546401305619834019430819712209654175036195048406536202656301358928536278438525168012914375570336960196415298263859122685792652697526044759484254183164724191777635919403246105138157243791125595522531482798644319019157263047525205180395865776771061890715919741485469014157571599300611707412746787694152760647282320308994422064353590573981100698941845205489026601309424663632298457992395279138271656179699873885046969601068567391175779911793319341270556075384345337289770046823224319049757868874843114230164714529555198701929691358478841759999252311280955455532515895327046564571657802906404768393327908223364022974867781642973403390666156895828700186499302613425316356920188482410253141580769135633723034940365508418369187915925053494864866969607999053095747261732021864280113903638354417240764723915122230695634198465431467957755758743126355869618323061544248634126393147388638764193741864077458735481842083228525856574384003455526238500444509072818033385981542352114819948694385622506533827369666563198306429437814094765237723463607311754500358721915919897228133398894169819111368360391368586496571073577409002494229051973840877829929608418174415508336848774974279052660832824530594080799180296144993999459009059571371854317827728216069161781526130004506510035916057972336546604296958938453887593515402596727054021717389367120469207013444456097017177764178664465205567530237761267650461353600833652719950579275999124257164521255984888351563867777592399900743854819908411405788971383070576149230590569197581683928068042033372114055648056217578566177456623849359118181741799990171676326264168110030553640741525352268138112546397620953179735264795381090447487960281436230421727825606367117376079772383825077254163225460880395806913451824152166505753986312953053231714464007386656516519766299792164800975288481203672755547960538394803737797632963345127816770694459046454108862343921431501708877546472011387363167179039283702179359779181031471861208491390728407974568421237394340036396054053149019227208797830419050870904469389113181361867168187243635501872508512312200715781766819509649115446839671671176740285042795730712064172600486587732996434570965967160703519604494556018980986612529961333541352243203213906896130968273565588783248096005815435839647241346333698218809980145751908061261730280849526992289600187596563916734720944598245799047366470540288904983202495810596986473482804112964718912428256044308357425668531548178344934773432013927082210771615390544568923086213452352357583362909812151871062720392704845990166996883142989933851395706990340897422780219623899927490418375571851769844274986523015502761029719006343315433955521640247189285383672565443678085615734835897447522050063541572401838534447710426764835371315342534884269157658121536236302874203518839298635570046016737860137178223691515524242224364549098383693347537247482588984335600465734403937168105123923819171934676282826019017093150647601552444763404196434983114657256026373807613667291384986923805496222894126701865580295346804495472371722601381603297362961613660717706688605941877096040052857011914842857537148097488933565696309373667502032194523853900015849639810956306476933422524989808190000903750286308703714412101308270230209543183413496816478202993523416064210020837074601803005309513174155321822212209666469076124840161223988479474885251209960366459674318106812337468237132886675800962721595026284939946312371015254613903027635757390856734857543187752094902900059110753215879342435221795830739640375501445483679737876024605452899554059316851659277430515589204141525458185719761516180782470116149254157057876878355833804063379023482853410861754282279993988059182390057607882694040598428188185580887893500466448682762986211865721849440186420131297723715134198822390829886124313042505684060960153579591944774079895138067638653043949367605408883822177205324202898131606098462646866320648324077256172289490694511078342728207130555120868858564567898376784980825956505038534215713211564701179671407792787332111848213640756316829507483641555778467949218554399808668647237677734441602609519761928595985033960805671746414827033488171648200622098982048074080066080514933425805707437428392049455917761601434802819198792354344544188826569643555298791512367695742805486784120925097224374452008720794881434941862852705006555253457802154537635078747763288655181058707403682089583100073272662829124340489290674968709637936255479448237256425349381888255051030780308694402656772951907377129680114291966529407387739431057903766703311227867589750348380831929380529844222009222891477604282679744563436944895808571968469832347655431051680805414450156264190036390964791598227494673802506219690661902632822906765620602954256432419141525057156422548548455364408883940369751885903636638088866737638780172320822159029521321367492928817225949270272924189485949582544062325733683581141935876123107442256356462277780364967834988918835522879999861949399929248523596811885217669229133631803980544445076307712258216932463926028153511589283652177639284561538484763934044744464660229160267373658914662997770296377270654081404277272057201265033407562894815824402852826394344933324301466228112362592245299375231547826923626200520386812777991212086861089922504457542666657112949783469262502596097048807336804609207676097777696576966085698424814187763440455246885712057465399132305417338881982909053438447060007550072998758836510862194553673538420713793515040025408527503163444257153949282341047052356100602113369365502653714515538240222403612455194806823374836231658488006444885852831406700787106683651951521362311480267742065667170762681701702470114682336563263276892868990469450970307979231231299279784487669488744651463320931183226425452367747848947661145271288569275642217939471757485582851024893137995391061936431495970405056861770452847512313187540236282371602830369030039283041934614680717054236060813144031369437849045254267610326120548527432873794455632315428021686770840322204406771655496808433497171124235150935544436024911587837968393085252199154242489340459309843742179049175125441739223349151484895274906185816780857873584848388003812193798051392674282279718883464970223151820633570381036567587770135956115966067929265708301854191845812338840296781179539444198207779391000999881657171412627032982586090623387151544769171169015227059099816634141958523872888817551184564220570072075438998502002755958948427181416693769129786965628089783397872972980167684703503839155711736037305376211857907206754672863540170502345795040939819439585845597856937047997061292614032262292744431593714124319284162960308233400151466030673377321314861222685945774051235917619170503298723905707119437185524353793991971864101101652389585969876570454070407264757719269101500952540077940744316096217529940747151324738505260871628342043944023034383541280182989732732037656200542980862280195086822879139262938023015673032483791564673974154278523220916388666995285020807371282428679400000825751649016891462132194907873509386566599005379354871622806590521703085289277894757802451292911497420715476792733133422636643205317500337552411020265207729648925419895189487862328383074825318609067691888714041949310621920852229041352611154135212812553506639457212071356086673959662678256030363507590571776480074090429200023330800631358142091116525839088494795947773980478865946747610917570189369241049398650986975547850926073449279363628010904825199414564735332546862399352262543722506817590247596279712052662631722443315242962074103693559875338197385873848772621917703334076192913816638158833794782483482125540891461924606455255594651023641477659247108765832592796349252191763768989802478047440730048646856420982395252142326360780366046483134888675335405415010185161511476507153628274970763964051315114999001949374420945567876255117224880413851078655657823876875375924961333152411895259729705833454079366005587232481190996816531798054215238196363287732176814526386452887501252834371340168283960272194470517132890044823452062859146036422327509414568610510556498677417187736773521867452804435336853203633542649428516008920360356169908692348456239596807569295708705383130019403964784406731969834359502951365058673257091901986582930440437515205503901050142844149577700532421550569470012176913530201832378914102186134290205718095189948778676350176866689649620614639958948494092476525705178194555685343064858806866983036849904835612242469913295403232841837827606072492053662232259139488097763334893570870295178860667901315735721591176042441498965564748389140010944336183983577861732569091039997756604276171012070448795989855785155859023440189933050312357443810638762967148396999687847714419392009520191613224091150334598893015109744407932068638147441929067541474752914694177305350092284136591203133258570421953355214131430903525706871659514151808482009449969559152796221086730570680177225222031692414447329536742525197843429723415959886551876047203179482363174196423640679306268148555912870035628151223449250204492957524377285885500349101785212296248416073453342583009227425413044839716484694686398525805951654300342606604277381033895557830613238635195008791790585389304893751353623892741193305353838429111803971907201335620239052313687063949694210664366889374654543637149219874639277873955708689469661480315152839736103192882883414416359234927049125422269174425834338444585237200639431650965031248225213341462857479322256485892589217352555768396845842105247031458626903275998601047769827026690494748019142069010236460208662461073558802721383171087286152385937708091355143298643208695759280353289055962649432701089996078623021784872201379722799016473365571059723804110480692302528439077167309735316662407666676209649350121533783205659601213314461662385907266325857823875598560806883536294725116193017403456015368731436887255565360652530628668282181049096334610921402243719189826027759283623831764871214675061574778453702221816515874077457807369667000431057747929028516998379642465916631338542654800898954596879500039157446131103314999523922385064786941389567164845294729616124813946322287783251180834913817196790359979912678399301632317789932366663263268339881249316033622087231908026924795475761521690920922736824292570111836815100942176446913240785861417587362027230482618934957728634679017577369807575247240292301603928068194036165441464068357411942602482851669829805431211569069516171503956935914220121157711997247105762467574059331413379599224154199083951678486518885764409947512868111081146337922600701267015558778955028032630115268445990956411305663022580129985549954567694321410550324436944912018570838688669165563229713171624000478785725250745440265101533165876914883706839899641331190681037297940032107835656622253918026571851194947569985099756488999367921303931752838226157855881715663260327197182216387236181166995735741343592720136493731251285111225060562018803133176867496657508070468901503790577452679960294635090341830004794642020405007417671801990662478889681874221164794134396534139565900376860804783767836201670353550780241714956780538757502351993456655130247268730398827304354338140418301833897744853890107369027522936414446270406407462977682944757680102655065245049923014484619287815106893820623901913605689051805707461648386089849564718945900716296758852889695774209826340978534562569744823133769016918769613913530554490250116510483182595379765131215826514884422810813911861396747089394955310128580158355387696027202178640960205047741790187678712860957146047104399419046106520613118703424549221188895141833333866243611814571728534486233032790006991100555719698216113565703119380363908459036802146172418695673801028908471383395841867723610053437059808770224626112332267242129956330067934107505592550142232469384092728488513138247573794069299921472145803756990986349951939997306090704285735954143598329739300684650015093597918807955075374028910408815775832550683431932726343973861894818496189991069763472770685196056867282470491424825767427151533655850177004688258215489174146009843717755495519715812648943341480621115914830479922466081849175265159131814005117855844641767035379518569854001316473904448323553308127548843064765627296099596077651811472035054694616028658589322354768807671759655957996391955823986490831098314839077233583919558002959538095274857118385991280751957768029442171000019016269678077050420099781176443919377343177308471133446849942269205291094998044818956713023084165164779058688492228284286935265013150712748556789871765769702630960203490867393908046577257910234996135158544290730567722902451743763983176161346370705417543873448885515647217906625240374334478483690353964032427450753956213490789362477090413740532122582636025219038536474594645156393360560456938681497280807545223501370975949487029058033677863202798055943882877138330313983369843077358676423092686588616101226681396407768098230949940742970625004877196225483475088487944067373777408704041471016183371051016781462639871175095017584280354803955691356713359644195958160122004743891760801188445249364926016731673477346696809263321449102878033662382371117814346325756284930728695397666193737110076141678322828773836369195946682526934775263829451959169972459793065150382826207548620676791251305395346865570826858221556776694961262455765281927042723768037143088668711567238636544406361274664590620975758636323293809210314396433746857138138848183994365422675964342803141345754086038273414144486478248530480562765901867234918823873051331180028609363658732355660188959490370706001869598859369953215750435348863181941437236991233230738101004177105267358127629970060997862090718056723420879305050683549242921130631855190082718939633801563263306935139285543788015808865332869145753733504569779031576710024652262424222864731639941302978055006559419515720236389553944653768151540131589362227962511442967025775556392540094014982996069423868317839104947334787826803791161252535077022505288299834564185819743610686937548521057845595967794900687698087578917778591380281118635981329286866852259041944330129861135422275843427103109468772692907906958779464257163035949960798741360115509726287723169412370255744397683304521919039603828548541870465930730996428913735177556858379216256506476907590728381318684882195439393447539526703822625708322808627960164960140116457732045416163710130583057859373140267574220678132145322738115317044608251193064072329034185614408114118488318068625508153582265305216815967597994398271350900658912532392511416421077622713737449747200135995703623336373646010528367868975567246257708728884087815674132524074420534593937052057332770685126261343740539771650912725833802408495541088975860667957417667329425244333843918128980533479167645240035271491455810332889977457614536107040553488056438686673969222982465398627229030791561577254096763120665518019611457323751256941022723857760619101387099359037725730443884541508507187428940959877196093003291667087741100465071199076533765880057641987189599391815573804550229830929847708875817962999236863892701004497500017865203295555995799252999246286825800842330052705766398142980145576340761513822583382211006127286568576208681019845281473562973794202389758776520588612109154663476287050044703545509352202644137235462815057584116456117411997035000448244871985249401952211376915836891053960629924909292086301795849481541570481713341750234270851435349075028914511484326851608711475969746256509068958777184470356451932309302862477058187024210593989984327913173360167405575819233504834050415919432660097455770546709925679408836604114445238215559677232180894256806748293255973443616359617927616764414163810070508031558762980102346581854288261548708487156251235740172356150268596750976687516146927071467225664193952816036290165075776916755758512229365689140223831330994462294019056435005188970547398079122850501669938656257081143906347884601088665875065240930112750338892829470232296849391475685826664575765123249786053849033052652435107126887348970745999936645523544259280832571665081210276187754966271298692812977285854962528897435477252151871416562837055248877477022891237650069618137624178907110342891672085313520139439479569117555603333086413399874214861415205433112285284423511724531238942944728113303859203535224353233982558468791733332032477205312330341509918794515548236672468264159175861358366093238763992685007380272994491175666028799959927255535704610054328820311424314254189119397736399172166999208243844653830608594104122815811328236014238715766444057247237676813515922652005807924541575649820986036521266143269234007831701681413971218673037644159409817416942062755589634075068319762545592151519528208742049519873698570907784491215064387666140430339217279296202705688338638124659398056840059080010479266110218477155600152349143043971165390425407392599378177894486939446796156948595496963788070738401704679292008866580807749348862241176675842031050156374071038820123005724021336412195847653766031987021627040675343585386490596578633980556532618009558741033926044614904553985261801050901990919013537649614255774323780784572774589991061383766228632539441159482692082323112211647044850860077861635397332769930192768551929960885466838034911004611816091935918153244265082452816023361378260582894468690844051443024884051102512120123651973693089804893737872857212914222072523708827470683730939353878863733266562063741106384488437337824039554066513855277872917087180093499121059763739286910083823531942081739604619623202006014156226384546462084570159925648961810288103088914943403964865223654702318328177642019003360134865995060538410386930322406462418517702056131022143242188378795179112230335180773196981722287530730474679045712718592051308798416210032076056328012198447352456196487522721680513238898677031707292100462202947462282939227771309534963872815563007922015768422513342300184547487224445691311678855238658134290346156672386417685792868631206671462094186907027521984659979274616350749963599331124058780951463415178280151619269144110752688750992306440652576659126772468214738816042956698161464440723388311269187424604022345526339635981984958380023269214157593775806000757519041339261145899647728343264202103712348691011447665837316479575696220546943120635311442887170737267137210004835665714104406026085919222241238992606975979624694152802483213863868752903642121050157414518914145887040674717744564237443521321397850196852256170576672097035329134774537085435141249592750845553240947530883167041598033415720102767968923955822392231321715620041527942170646103104930655360052879990025842276775096141602497371447866653209658317603234343741885254358149353790837627582703384872050225101492132834775905458321443587094469915638995775878149878854143818467603178829829229382537961516904087920811357244782691745482491841483594731134747735471546144843746069091980724761328965178624652205559597416209887635527835834129426475277986528228116456682409351629536585911932675247651133902507147607621139578795266609875036027675413734231999943497209549054445282588585465368455467121667303086185060100488558124418458869495328377913546894175254087874809485989082136200724627387362424053640599424792647571810406955037188186965730730396559372265393610580327087536318354335758831467038227431484691925957766201683153853146509527242144528557586724071168994961461409429054481400270121345553981847645690711272088318724635288984104210081394283867172922906894306509407998513242463390798366520272944057658119847780308322930741583340140367488378878175085025842972578468951076608277994256378033963494647871903485621382179155080221637644360275479836382491328564070615921011245059355972413492911624669075163248527355144087406326410547954923106054323168832684871820880543558929572362807548434800592627337456838194460986266265547967707620141103871711293422057206476747512892664963733576924716938566746402885566735812368073540595461268433685980651244648322805710163014056260486857218732971363143433124898926484200396321533385004685786345315580239453607697267781401994959532674610449253555065303619791063267221531162519696835420454279179622749137701711140962886309965392472922635727507229423218655748374445212056190231475996166553927555751663447328308539376639290812715961046938216882212940999683079900625649794232972741985312469955961230432934959427453914904685173400941995139188594538041415524961551495712397918491035676525486715178248138865581707223541869181248754802988423129819822778287802589470529592079971661626378688804419348995404358950702958793451030461860485455362343972337789969921837219760916890168176567570901193084482258943035324462790804733815337524986267352600708775828337124095347784957100110956006629667921473736303735316427652110174495194005632261177341066018349904956090996396519396979275703152403564242840697554056564548892005584917010334873399210218220348911416268193662849662961570871231091378907289929266850163774598327329216551490664658756901773950278918848778610755869209512005187775806801385353977375838970159810503609650273067135476157165203857878453680564765225000104488778092766213752314312716548960941378765675771620713644296053138719087774364819160390705697888726203859016341526803639287706555824628288197817803015545636885208988139888306807014975826112673924560550313539044161021472882200759669534592277876524794445925257068428172678279243194203591858711042828520206562909035233464802180328948441682351083479959435019394896803595553530052113477135650411412149666833401805319735558041488972672154325426924880301701498083433411182539106100053207839509937252135833927837301421793356795484611764337849289602965450898623308456985636710162450140615506136406176634405206786884969652401449582589209535645569291584053657187147954955886525130497068429635368133792183469877414741012237233586608434710794963755204299381957613672512213271627940236357293464742521908471913316308578468190924275517382292032693651971177039307309853207961825413459293682835312907971518044762791843731234893318250214527605337594756579871928095574667618500623555533779756968726010807928568192261441051718391367714097519429910030613676874255217568549432185986727181325461012975788323741628142902323138221597694703917928399215915121597140035584706341521930650185003391330238832926048096452710146802679864793660508115063062016003560173422961047662490369765552584934752856864808546366161478859655658067457096226643309996914487314669336790875827181079402504833808815084496914086822676707363937751164947147168586511122419112541837641036135304075994735585009504538844056309983146323415250293298146034421175245533595772476524656121213384608475654008635486442156256567375000442541867284945022753580643772767746566544930180251463874027111477697544043931869450030586849521482859301005066584786230356242242614179399313765538408727788814210546338485544272881586709732087002683513628952120749491231261110758315580881342387986090713140418593401893620208111083754348974607489265094250210573062110688822244982263292990452908386628205493686504084963710459761748826578262298006918623245123715066646928066226875471330349803038521021403711354487307653343992882145510145819035960278441705791932890374511742410003236394333093442078986957470646750066198993942706756029318298676958354193967751496758954845305343763683848819730107169336056780241249404539601434880349593614265424905224510984508306489776640569310726147623992731585119131257608081080083806562574173682291875760385140717796408541037909964055065121732793402526029641105624753164693257827563887304132399916012173200001907071575772602197425636243331070174909457887905146907027821123990025984003187192442505634856547310157295665054511972017532702607174172901093952457235104239016312955761410727353004812364293308760152829841812255382968544373712759929745693933629407211735231053746106383995890230023917158006811453189934740383016435625192554153568783141384193877503696597777098625520527755808959053505624033403615068528227176899683472897778888996823640286103907408048444291489184541415144720356820164924011182698345165290798430663884363191915240864597958612066826397417778268706016324072186459820594027989204189079841292158600281271087819288035944455041568621676382911576413740960455189659571929758404976775558941547860742315677824364915135565967297563005744479283362503069458309892733926629081186886092263829782754849982627616946665428601007544199730395030296285019823633774306924481153498314767065299965783627344013778447798316743967416488348025537873643229066099628444583138577554143151302908436311352393602166990744949971814117828696498109958638093457688227260861200808450900304315102287321199303403419096503771950853393045961674700806018353945060687054399562673089194474686212957630518622495027212526777089216180326950366446121378313329869758325205795235198735598719617951076342443098048378386145071738798301751208381759495889162537557018594756229404732514947839305145658259199601053145633345268376664013214440295755260153508476202209580813486420690070161689732618136127937223558570774700528752995325114524612143655369085846535833899290749789037638750130708369015314685368102870768309688093658646848442707646202357847610579419248349381472284325450203325846757558974559839663283123226675773404126943454689092913608279237651592017990568959593688369967497974123427865106085591615578430154988314971655674199585292984558766917359802779141561980200479876324358150037652386634207177823580953606062948791348772590950556358202823019944940020596655130540298633797523914337772422598866636500175145453159591492003685700595820485343839822410011951396162544907274309779735896696494649278977736432069062517005400702745362057416153325771053130223518233773093835057686322161905928811115879322632212036893379097621885773962647312161012337199528516817097395450771470079048388421125303227221089752182803559333022539342490706852980340662701949298137807298172022285449064594610532027502712495266485735999430392627503973906336742173323967196039198568969224163452016172898313377459515304743680402719272973979645802640830744933838493243639187858656284133023907242119866445900478473071310555362110550549323804799480422422171109771700025438398860863378380919311693248348133009946117478891712454265404877741991763021487061216393052132139615729597249241788006801758023624840576622160609089820860609789167533775959736749299465617656175123632738487200489179468902440232621197909840231817333727566317696024301151865835756517490810743209590739505975363778268440442322663553986724255269352758839790760272341019125222105272831809189528411652947391424633057305597416064474228416629093176813533054543271061105607720877185379422462390195238582780028420935046873212204092374026122879604862725662338203903073952181994967240680851869908170751964309393321819703733235213664038782527598708144834923852935828468315743161522868966145691380984810832722091511955283959080236335980550296154308268034226191246832169882038938632767297430688224447588391271100917060864757272816397491511741144638304721212340889050526004176102671602662043648075996506610808033039498141730640940562246480180988964425470883996770429042130257037038396037882694486088737581230754816548203797866628912205272212116185640878339511935217547922900830848428560658366288032888343155473342504940922045859945647081044766972078615530931370554352945211892206843810870083437348051655326645534938845167320303015381266524684321090405727005646965395312785143423839492529810226067328784916077466317463725591915668339195127234599592432127193861447842654504004793447537480691675892918696211008738054342145253976349698657639316613438328386096695823892433820861287590059093207250819654917257608756567530753471067684546333932053561087080509393158152591646774717629490023696502542693821792939196019118194284574773817183396882452665059261545744731786295200831110993747787689624718813678974539831199496917216640312999405505547579279959018930739445955452581988220238548845789837026965644468108008531486437076539508265022845806255812010506937023872897896578423739979471925314691815740936802454640254450853328849328343341496742780358179266308203192701522654419777807499625778553401918716938265996433240943740124614429933366979169444071305507278555215026460431712840155460024462111707449518729746409270871766001107621193600171476751589828277411155689378436129014033585559096899518729736798850094382219347411579721753963453201112585288132186510084469541948000862755577191512540329898673129247056560925744352220732455447541933219421960664297924128874748487520368229089971937355271932576799473672316026003543526148542540902472202318566593875347821163636656939336746953840678891005023887780491880779149339703471881048583696937630358217979610373241685830241497863736955198845533567332491557685078368494196928597066172745556782488407036272836844163276657453847989959953027193940894647278368923317789169986487431311380765867020609634914681898495180324294297876191049115500175512501339156165430708440825947151485914671562128979780061885313431031372020070557912371473455023336367209060635424469112001292841469970178216618279212626505022587855510385008933643048139010506026661472656015066503091396802580022434991844675430384172025900804153767967554719057904929281851817462814055626407624361087701955293558635489167313578683938902647216581508111700449791113033412063377606487464624853208504943583636128199981801479748679033868333576691492824351587679587163090053695606002287683135920300897451341048176983263175191565567587359749590303443868001084854430850503636421796064967446874260145616888712950385892385482492254176999683678618079851545522744995284891306475113124680380577281835660280155260156477342679476766285186269920959774108223414938811136721168214623002385321910576763372755874568076958875364133938387289471824444816935094939358759228182074303810855754012849900593954631776453694898006449365738264542336607970354397889777967454268725655086899341627739075471215280271186021159249432550072818458930390316173363700074040634718786417742782814910765585505885643940208881681643023043325470055857384974492006473836608011003733057068640466873040573206956736257923550730969417757680987103882759292188034741181200025886387220604910045565327661894649341904353085876050285245115133522369610757155145164845362495799066479810893949089745723363804291366036104108939821556224606927811374248878624401030980466629133829133273314565001963969182680917416821506610370989035842203070398967418289097486478038701976697423073174371526646140218561030679869015440973842035789659990069185505124925134990468721173060150273111128549785847060887864679052375091488419647930487903621530527152907219462903253945458581628813269884695618373652920743477616782913132511186222205833489859854861534172351828971980859422470082637575267434792904563730251883132551958702003048604485493595239323663244508488975537142060737024353316820819620572150558578251446677406039366214476238520336950965605061364441532665859037547517029888797754433468461780139415740151290376997029586123300315140643951944567621763308358046619994105268877924415656000936344631886903193803113632997536087536661572752151127315220111436469022850440882957509154228190521385338737805833496085776069966521854349006445464225861704799400174237738988258632322282091063620376207076922015902207491636292513774317108074245927913904407230929477950709855716591642084709903225620920142441903300475777298399746136980435321544140705155170190416398719330517603730595384763183262996521868630729462447954116254916602556277310390084238778700244950936187998548329595667783242065800392580792102337013734614838607165848646797288341788923516082708638151596349510827353316019428797042280917640761384745847678186364195530993150373481252101853420413949774351316105514597672864985141081771127171154224224966303670069021011450864908331128712829122884180862120022961332981948380380899159054953039359427233893421829705884392824860866224640170482088613548677156182961817471596662749432937308649777532324959048907316954321061744670313380368272557410474380084972056395349164872837261162849237388988623871084487129096398539143999211652097259186085088830546054512545984800409329101092747296733715308321766668039328128721142283982008506605670591093699353778864704658484638123991819651456245023087311007816932183918366973091507279996633683591252555363513117676826157212513119364806949143075822783671713496692633604336216261039749672812530188519654017822074225403344079466514856258527598201252035023015090685759755723825967038428498843584667934315217646775465948349867443752856542086940638612028325571312544676307959755049253467324805362887473246278976126404556368785519087863722861130907371485009715226147941770756721728052427893676464011484180531045255658497193703486891432929732966937207628110418095033208405626317268221052633187984245456339772299062463663249092243522296350579462372761707681896125673674778331089180763689943740994501046729302285822562328712195718193067343450320845188020402721961859910788825039787990924486516029498345096897668294251916238929818795149557570621639492373465627789850466991043842386648401446379281748153689170164012627441626467781410810351565061287835125726013711354908424430805268974782439401214986988986596119161117557286354557678414247863687795489900400945765539332949529433312499928413785813274787391874068956754952993490650794697186739233805756659666902902654602320563693081718200818676511380249326038322972168912059737936063727318556114808472704206793194449320361776216860482756686873889780279904547509077011634221170764900291534639720032431630326387660950412926265449028384290381992904013747000086219446361479913185194668447530059563492073246797136910634868526922138893213748432313375802118441856711105086237302268744122612976722514204377580832088096766045805916467178110580712057786434812052748291728368117303621001347131222460675035770372743644818259345633559747017265024963907612161053288815410252547393717467647864531481212596711241231626093589956731851416978246264182745985824690838281152971102237414991440897426642301979157878674639380112813546894393563247465788133808717850769549011101773200345420573492448400428693920642371062382664440473840388373397807980560770678381159983131890528000289078765174469448170003886842680852310526188168994003047908682857921199188153840028301811405219108779623840479513500314380394627827384240264001384123371127477749697434205386145101254555170864887427183320817567495477455136687510769784586836634544965552715431950547389777525908984984454210578316563702152696729158275148154749606497272726825072227992652848170710647127096517503780348209979990985405553860417584206043943451862080229623669433741298454788080904402613349888220659767186199078303009981663701522389903949241966496634899514348540021676831596942034777896637059327018525310071011328672426791515720394840303801172656903957545804502755474648392441268415972424263030257473511309661602610390169690699687552677015895370650924863789282739657837008343887460969647584046089028956798931708140351839560050299191356543827347258043401697251741256830056348338578691924875578941340211359778157828826841948918454592991337178200606774234903988337794089776994983214363038241873052082210126075287892702256656676207139012014062269012459974905031889866589419140328216422395944193334510910810344636975337624526518168790390889981041022505108347892933890152491395782433017485858697042694903185481361727478445631967750267686353462779531265090074840225120123738185236869933301083377995338774234201742631364627181930893181857183383002149296417381468873557589516113660188650553921318423528275572732438537387271132245919074094213096711074714271305276998391718186211529057873507264022414501011441638892474049464029128579311368021805145555033750145317060093387196571159068204758361756765965512807255602750925814481271320215461523061767437535629303322778411246499312387930773532943017964589727903589454059141689914522576570860053011401850697878804199482542501527570308036366550422170557565314491192105954277363859470285653409762631839271296826871059061260841878552960576876259752790911465602447529068298139189078426630675340816958654525238020784315197273711711862651747168529724054837890817365636960321510669063473982690007012446472204619785719489723205211737619860826191306246570193536414190639034861012066229679416533216020781174480480679337611667351970968096628087430192384049480240470234518538502948522504929870288305650082353776145088509190425558991096474583595106254547436215710750706112976642728970851557564143690704681969030568132277451498293359365555330355309622072052063339140130501216400011435739135201177577117139784960391142791857198910704569706874667657663122151485575521879558543131192301945622003894734673152592828856606501569884209270565854342464760070976434451711675361819961692839656490569454858840107120701066862583881937110226664994837650239412308163445814905661127955491904306825678976718070717125554194170519285765255911702310282092666836126473621725837805298302660400938555094422880275392290915059773554054714615501856112336043532404343909428052749431900556587472124575074135488650414515814096948890247973076356866262857768685543680189040651239458535279491994880281532817416234809413816709604808192325797770351322875676996450675907833418868813553514979115042747858975686211605465470504895491230572328060205902856406779807818468021233318986547997835740233739694252627848948168690880697165348136274960826576279769291905327493074918408646905438097155201961450377145662664181253913440656887048712125951569586266386936561764846129232499440359676943355580971911131004029327726830145203257925686976763543134836139710675881537724283522327202207667954594058642976867633839607143306034998720505419838244979607231489499937193250942731720754921003898112339246676885243597066006390164666751634272608371179155810172893571430302728785486729121432932956490530056105439577383785586732391022356015940515208354265414198875290254822291351074150850991989229692566295503845886060741775658250205778111595551277677617393600532655793882199201396253733729758412001536313719914738103570156892862308591557704498744911559896270037273271104933369526635371943776932156842167870871887691194950993810027332401200525316197952474796713997864918626992116336552357127774687771923274072013683844390147225509546444524141034014423015110423860413374259111980898905642993166507806259877201069806269571283485302525742248116048103819293471163472945253298703437897246560535169077157077780658417981864603006303871546424165144879553139785315543195364954106649872559728141790097345412658412856525208686377102338898538832748012850210491808429874966071113362564647374208187748499535391738606652819796857419438641591484866024267495629501839421102024999263998891201863176292600621140284910167953870338707372314262548117618622960158056725544478614648479751020468490868470578924999648580351909525718049199390769999521616275321961074326567610882951499968111740537166151568967454940315375798008147182144630345950704144096698441426866926746410949754064564867770827816736070250917098588690061611693117731696238739127145101089256940205957771914435937957129482767180504083154845685136178155523486205967603983121177646142957896266665552659460105412713967140797549381518085042428365260222015810507070902344533370191946977579666010002943550118907722378392485957484038565253072167279652169475103733513699333203722889375378184564702760408313284544904066867623662029689536196745840749965107523560415876357479812620125129374832589580356013190292595123583473278755964550536613557180570018374769200097642170047908346459093338320287495913340086335610553121388330152239065786647408153004269109172565026261599332147565653963627099166380070077629848942201058232900890894035349431177778730535825093583702505524831812710095359970580986486657256065049372814265098471941796169083388837812435232213741611138445446500295905416222243118335521793443236409362815000761809098301774500591023439416510228466981922287215974356233105729095350250244889181388669879218529422465749697927477404893624037379813538473656488387924857128254838842977382228372234385128047581442564761645611611095353395416887649134439332120374152343254073416611095631027250922514711841929512720027362006976241740982997225374523521266043646750887244655922547075977111676854527575672122775079674946714620169090504677457403015548595997745759702249272198271740860891105146071405176731276170821710620798058137861340117021958564883858225707574135909817529902874851766814784684523252259129859111770695190011058889029797467829439568565912052486381351250334299830388106364193548373628490763261423699353444949744824034400516693559229722347416768486288375276541700072208096133800266653519582150822189797069958555511085234720342539531681770625615197553782223575269013508500343674670630355149986958371955138599814737100608938038977248723729112195944167070850973254998273016647177932005251500736339151862922988554970169157188279752004829349063106425575995723864856255868577505795030760002157634831958575584215773445411312796600386663449688510906192681197361394301099856090091625870296098569446546938700846021524751129387632954466271421437376105894316462441067190561063474906586913610898687859481418294692614101476892257291181398774970631026616492199259557030470054786603724998812098973915322792548376269595991798838838352401660193030956412426115147744456028034067062650267919260033100195170809847310328746810016521376321919571043678292852148636525254713839948105374305383134783674824381742492668732262474575132954042067991135714582184997852429985654467609134572321929611662167149678055923746013482733483705640630828747967167959929510996225145967482866807983800478306989126402837829899000041880633971931894382703023127058080497852122884375956893711036568698224593253929639556376918594554576108341450176775401627541007743993789419259861523266853992655891100739130728843805507621972629280623721866900600254238724235452531081773094132668625467421426201309232587901990669268998150851321219702508916458145034610890485093215067694471944411768760053783427017239771770627940651162162380156486946083878364855333272442878455062604126392688514596323831232269360825478257307304453811747516268089138902557844148429593410551351769221635470834165656849816406773693390663743317009324741133988286989086214581770137433653604223309849627960127872556261963569297586261788127650301511241892764217944694309946627399107600003179520965500291725070182909472411413271729128007053927031879862257718328329834060526976880627559551346562312795103174229778465341088245990767616506307963106621591341064444028258248225074501735268726855297782200478126850643399913482335906101739486465263471798274958915682874682354788523554685785845270094428675172977455037487072329031931786263158538160112241788534220558495661462164326604592265564481818918414201813726953965105346660108392739176250828234671479140528028144275273463070715164943009975545973514367460078489843670299553026995490758655102413598347307049964544223483581686904603535536506368101970247983591736994894753776761638436299542835459975029651410347082848377412022359213240173025685895985926551268131879125547064708764246937442579339055800275770689881648043870602687022273871944274428383359795632527221524199995408069521681064707740461002720045003074236213267115705502845444551151838353070861105514445610606756344130511934913008044359127750025340546675204416572924143377741025714599954671394405722121455201669268220464522554872717258109889405438059915421930150028987752578025689764142046106390771181006954271504156642297179606408547979855274590297217964546724656141678489688398156353832424347512020028578373511035387558151587298757242698620577788096242309957646866761709414099578530511683793190828344422970699140157434743265961855504910689838973029507765436922566315804313098190730006483996003808612794383224642638985978926829797851805686207686424534213381465354484045598101382341412242853102477431913275592689235674721091682429476241134825035759814000628543742795808901737505546153519475677261022649473528225267832217134001653444187168458215673376666452504420097243220956523846314273765879238075536831505607340727081645760513114364174206469628207366791321682537503633110505323156903722314155829546081998958901256401010710142647903601073958226383097245170303625653964874887582911924095477307837695526814802527808458569661355024632813395650081382472822282639687012380068354099583070844895387187736985724305146691349906278952158506895629507077417510050397687415940920737061028732803273440142681406698581794993316292309060905898684133558166813285352073851038745664402408966753053303046497836944221144353396143156190799496917678261614623112133842215381699199991443614578111685015186372927921188177297202918251395036987812652598433754013998224780004078226416452609426216019215226122651373281728662142537887882877325384309916229204053453355938789117071511531845109536304498761245966809635290558105827862898971024580432621403048471292976650417429111603260284625190228324315977645184089586997313095511222024223860413506152220893155754881772964550286264351587009623592726526889743388247553503727843008906500214559663696401003226139711960271634756772586663690995028959918486258122132928267595813711317615538574705839203865240703580484367753804125935138075541968878346223902116457186269698738409341854049256894331147520984502115304678069460647292872607119319687942586977867627793759357374076703299423058940875267374037495842798973872089427438692097620763438079524348368753373303362144473315274250830700548329318490663733304735209606157754214039550930141392091372923642546775178474176012890130366489041516581373336958976516760659073872136286696563979600352158361355548117373024359576645829315747626119119960836182598693721268938017542273967556270548842385719170179774241288676471846792180856168071677294163452339601907579286187504781117237446755842827072168741916410649448931416495225160834363886300862260966056201226691934468818196253163954354059508236060112607015590800562118185893314589342477983317141823535320936240656819465466156718330975831902688808101147916214855285121443429127429343439465599390241649762780048384517590367431693274393186589221169691900897749103708113818645819083730978706890255120738938725838727860615384145317372890451665756455453328473066649201099141715007841473587314190419452114846628259368790842345609112505813962899005927509698555476099795391753634856686976574584121777706842655800070444621225094118931462910374283826676512645989347666222026833349522146974183064835260231884447339573900820936041989961357295328992853573850039313582912943916808662554673745002302859862438601962044668943522773269366881450417673504300378328680804725625748144266170732036804445980053758914419794606953106105086548656784293111518785914720226709070571856400154667471570900493672980608934065149680910302269992170243752644283300640876675679444198385219452865606014877366702813210093805221803697043724352573773088227617401261303563401742212788314660440730876249722904803627080744750239781519708477560187063482081231864542904136874675318187040349372770455181755215652154138528557092569304048258783718649706515706305451803477390296647494454090673164763258003252215093610832615225557135406774373560297030558200254512603326761079141022642257134046710212520507505842096673015258987660933292736386793691256543884349317907366570619637689075189177258115893476519323419701928996431272883666873006185618038904369419680480875504125033898554150820500310777497482003152010981536948799712597059955547493668059849733517470578548625296049865398906558061318293983781471779073002230367306842685735243261835658922474733280056633305556218657018108533444786532866856550425165715157971917463503078131468205108317542700949148342962319359914256548541458063224243758626252660738878021277312859805280825964929264878162102801891326479412818878452253172634489695011415840571044841055383842494470842957466645063441932193588046192781812848029452604175739886763169967846449666708953582202694386471984461395654107612318082817819559366991916829517767632251868955138690503472744641542658760390427604841167461433450653822908074623708211058740543662659183339442400579037882249666205780589619012804082592022861768074338051038241954468490483463936478782408072096932374750287362766578636596646027751006056561592255834449009294067907734249283094655975033864013146417838901236600349539578350743243869788651761658886047156950892553288657045474982419449493860489842858233311915118125224924118466675884580145218419186528364068120872764276512688684118055372742530710634930360310194934869446970347191669398594253159975342123767688721346716126845020060099331593658728140052674963108454387626624918943077511536834404704976343580161093820273239227569750735226909064344514544112551664635188262180753334597892968780002312371517400730452485513239456568293967644042337104739195868089977975679620852868849035927402154959790673156730352349727445056446013378012583849825420300429661040111419808713552148415287082072862150387593786138670594072064012598984863567409190062077791106535821371057012204612769285808492268105074317896124616473541892421000261581723486320787307358269226192364972862216517541463359175006618413548584655756231843534322998548109671787068381024269760072589127361344877785865543501902746531699493337145818100152114629376855380099521623842733864812738070988981410376854924704867892195610038674686011801332627052824623594946640574256786764232836549828362756679580158838532728579724690523275148344728639834922006272831760774194305556405203508368288138363842018102603323872156264925012751370788831985257754016196885604401335887280962697494197462254220350272690263509630033978507865485067045827588147361448427457677727473655135746734155147029029776630880784847420003845899990841076828626461866478636347544212312728124115429426094157899633141441582493414525866505948203858771589800860492250679371436446228207437817190226788049451576269105241858740172836666171072783142727895452314056143896364312061675413116147430967864343696791336112025672589025178270443896655570152066189400448810783838968861778102033912332628892211750107658340730525083231197074187663332169009286467041595757986605138386416350611322700484353323479346518956946511712812361205043214011766110363149736455044500805294970182384200367505221183781263241736300000161544363735952880605963044559144795715719640372974609253896154428752350815371083097059617020657785981230555554779147109095097517396781378825189907372138568062401941463986212483227584943848447151205255919895851282890640299012241416166276415804997623483433978130277429033908237795254831461451148604418800735960438810161861856308992092556050015323225421203212091271939776696891552189729197073280663448268547996829761247835827676035508164394996850523291989659849338110906469592585406155934478956265140697314589106318978502699277578543808605587156286811597130488707698353877804359642077128387434368762105786919300422030893232935071323910646608917897932835424651749613254708135892211975057572934653464198368402795103081328060097748145475885288024822002260232962401152086597982896268780035248932568717580846439328617804316674634148356888358792185070006649987287030913297202589198075994189486977252006885851662511999177879250173823292497311618224108737520857038757220025505239890795202333985260148172850429362990622004536458430088355502932403205792713690056659194396873098205600366273997236298811766791259153256057295589137231085317043459057421868659458989919801499481442198370968198699465196135386203769278088640765737321546761451642727085257474175569141595330073154741083960107510675406288305420595823104733445019623061692861896411305677207468015188706951774267148034864579505847871993903700262374230321104143782812110413080200528253292330650240797924974748862731579164087385506986027595016575633667436078550099206073518911926086269086321869805262629107972116054215769749148960282172162870296236657056314696806646816811586097408629606844963657016119357136051985218976816858460863135909039149942742897827182538931129955960111749427621116335957791995492066107380150950426871076852703523427261355377453965218261848379487487943395914210201149461917611041162470973537872869769575256653754787212438937393570212081942902625509038730132122668766648323057946915664877288730536853665498866863390375063370937450165753024797317890527288653159381786204286773313628192707610149254635237535450349598742519035241475537264711874131733085716628066611775796017218387438708534122613252979251333903137275696566944532903350690962970138715388906148700693297961789161695159142175207987310039190161079814781323074648874699252169051746015235724924138901298523263185734853497636133603223362775962771410559427728413535166972556114067829583476086161778958321337329233168033960825225396595312752871273977279570522695055319511228464792224365659470475115175732327915518626151411674407901966736064966809980090087504389408681162673581185196100171511359907858428086641486324954383040607597934580575325073925462103129079634145495849206131269488814417607928708273887505259259613124595673073878311425573383709450137911049536110147989209829108553471990299101768069368952184492671495123289077688677508059437076972947120369202549663336961567491283267040971646954412347140513821529058448225507369249149552854196617212275271694269601305650275436552488369369298882742018159246448435490166118099575217970539744225499343974304045134818439783558869334125028492065124216074701037412875592736935358312650637420813910123998002920340188966804568921536375809020399913416260803380565402892484406645230496881136433449134192862695653049547157125019968834842701130473238609851670338241204127773693908052092348887030580572376996245883434941574438440584634768971353512557001184677838071910446003777309056724145334827309367611272693134457458136126419546765330696228696116416355697689134466840583386125000106591316697708834078141391872194363494941581863539624783753837812269618826323248368451319532426783601565303496450484193431049846084620117759230839466403549295198610433830160423720654676425700424667479543111208916697153493773704068702022637891452127067726247297261528471951506705717821723554182537138490440182824115187583676433420046166829996304303418820346091329390810646605737472716095853931854171576198747614501867230798109264525561833146137140136158766202754057152404721994859844791057793947831090792650853806769990298168630721486859229747516443552084096512805229285378536922122154684217782437398862844866384993049191538459055147472718144640288294400988324453891048039852461728834837163697338808624923770024212968796606863015976125740448534970024507624863508512550172631596914033181400038058253918091737070471297184270912548121946157569402187265476718192204054819198112910339161371014552448833231858122622910502932519898760713841340011503336653887736642525323666008534575470113640277456567872486500870066417055250813811078924811433351514096990006694985397809321721633278818711066574012807114074499407410372181494806067332966142008081153642011975734338713812175727045514105886003976761091057949293517268912355148119508306858824664760441968025333342946736228285574838544225856649126928095435396364131794162048502813777694756916842500185012458419028685741731316789362202278123340521093461685433392414124966017274318153803455581921936591425862144854215202983426515517924594352160927290806330909922790888217091860076622088875782566344686158726847713946196718984703228109295692794304918565167819564471516569582687865097779220485170102223813907369797542232360544907077361683320595413814185330093986691018069670314752211537904235077436587379768061562546127055399567656602491183056455305895177737953208996823973588432191621344925142823239539645713138846270567557918136029368954873912624163053144033937579715890507610135698186459416821231319328666703463564794554796244257555280977777661392739013254327881195650996717768405017575730159112778874436793264685012491747717075079709474526033914864701958464013486369224163123392410634938353496449224129638769527159293149588406632335018516385178419075568837269777856504806447000231472703987390985943039916683386894661450253318859544306028495886519717093404010814881172502909748525127845189014166215306956454213346371400080456717123742438719489076844503317536726318472916669946831257862885716620658034437486434701191324734734029843440667922859844606932979934464515117807177966763294887253232896913042637899993594899666016163589836484375439563009207019685694249297994660098253094059409171296324418665380938318136331433593183121620852787115409071519973217535078649823340330068120388161357710336681405701473945259005391072123779339739768833185641495303521231730613132533668649902252394161695310337032036492404026705036848826644871740596060468510761729383941745185029367021947646484436811759620208783621436980863021096542797235327400236615111513789255236855666902440224067975893117784814152345593518916942196817271509185847474467905944442166993527943802296453635795399836676346592102161345463855627203315434171529496244861645438220689256635364530637840644363142506242407827012704019157175276571868216981645615089756304370738437562393285493562315193127532779740854284105094043653963406456024728958667143738938871854166545409676022348779090688546812101029717434755059299668425858977050630110282665823054737391909652935460726160825726628558391962580226892725963160816211953959011439628085756514365034961608122989362243331883563214422602718309431636777849509521130657876741145553885395343637094288437038704649127016402280457313333299234439397827856302179893572708934599644564806848339965880561353770980783104954016628468606546538871670882102169212019626263292157509805420371005955738533650612433820069254002928076601564424516114831472065893140245826002593677501831070787835589709920703741170886323384476189200329541157553715010980862643819364741208568061665956693062123174689599558742604064729759742723967895628206259105085982166401684929715158184263306345896790657655862143194341423765305802405569228594634138509652129738427009854128029358695720139336015364831880918139500119031134107265007931136832020442602186316758615199176337291957966313992371560129172719284523645369422385167147803173493431835229386342920819337827031778550967754612600040834638754557119196652967201439378274326751230523170183504487683514598236693574756188419778797507430106608121569405289046511639355193781369942814249221767607089151496603552016051942346605285337188580493261595899761834834231519801690127653274997340454358985383956313398704473081834733904679480702668892830993477648288617181712206123859817965782109244040894822399002334962097633459465725124193433820915439977288781937741295045028596056847701373935017166434323554406012196847068579792181736593710261381066816781858251160907967806762208428066662996095222717912752486855168646839804138053157456763417161076222467480376512936421615181767741306729285799654453707566346606071651434040423703659057254002200232437183949163449366903243804269053830486198466802810855939107210639339894559965848629625527406438504548686816341242724676741399530022618108899928640888090435313315138417423468341147852667368145891258433447705682682966448868960428689801695844572967929646969805396922571882347426609942885295583503795415586387265684341486576251828978531731993223151166522324124023369350612149068692370601318408614830418665934330950860103853068229094535444425549650030935208907477489688496930780526433083167062687958994924086212685614305028225969933132647533948935435078220758886133040682424598435034859338542326413541891201329106538896456100906199847179839094961964482425550970458243482234235555053271616249756217515873885684673243901229011418853225704265986140341767218273863105771351639553949789360751584565596253424079459546505877600731726945826492151491832769617316245891292409926689151719702909122176845439683685694203647019632894875780088225880309025008860412819583736305223220145084074378399327703956214090998489809574687070799679796331844745376707349570782782342522125406712271959145688855450626757121907509265420606070887902449766218108237677663173263567662383618016018526570098168595216844158262586545280476528892971283178355723079923316095068944225947295736739122144961165995274355170604485077974376049153228176502897593770796185751902293778608428606976292685058888160023291729471921685807754335705004723325196413979832496903740118746482792298629157031261632157040906680488265272243323219479276303451430983652035662049387346837211481624148621270103787746331104726106662156988497411253400949950484959951472509260568460744312195518112666212092275317627954295031668059321835674584951922872705040310922897043737413756098440786607242422146095111097668800291920546910814118993068835891786892226141532464650208188600984454106560376187327036347477181393722117767845075326435492910105336575282684079149157882943937849074755687541728372768630698552490217109087285767015019856901373140380378187490895158481804291068059066219847890292090819001452822839801458628392535686274277223944787843676338472505184648094243213551036665091577545178605715751337182777179166576254224240397604260113181860842692696266498351536520064114788292465894276117639863415073889920410924754279553883332220977169350768579787524661287900727185030739311114438946956828848799334834760400276957501865233547304161616805951685427714958752752696982974245638920803655647746318673062976448585066944211909656045958938620288400206903610714541579390973068536406757756067357349663815163540315247512813426423139573741900628186876253101618469864995014442961477437047473015311515570411692962691861200953974599176907701262778237213046064598224155307676205980191897928251826018814449204313645868920804415586826387725554481893535981184553376108207930145959073203954395250385998459476672781970570810050260486123891545905775182591409362999692753329934902648668463232178570997392977261922908556212938399044478518917710661383953139561141259748079857619023082522230123310482738061232462215806099936084161447010922285319968626656896249382560449649811653635282657445138002209798971254778105873549924182489988225855010579212329871246263720136493296637455862941282871889184986255849911028042993362347267515487884443347414875056561793519376170444684478193969738169538560172360968109740150884617615276431601030548996758011917811299479855681640730102355770706233607637169407079648858248289599310038064793275635341638843517121499053444088260476134572097738536735552339346201385298117551606826234883571358707649572906087679910252452461605156078612107712159028071852918552388194307307917020998800299754981234667289891330408794823219500786325777462142384773097352805784889066800142074309037733760322104072175409469455346560745579371673016450444808670204286947095580427305048890499240510547026670396402430612306557646468864433483117940352819603214928492945783052385941552593245593304169524136932376235428849843206728921347664602798900989708483605629815649300188016821998466197547027543478856885885151978609958382902909634483355190889489459248464672650802454708403582455572646768826845445388945995908483945569349482804428594808048004365510306739712508962307123701976232222309576721225493756062374877166565181130575451693414090852284694605292306815415602258826779265068691538759218453526430694890567820348747032962069902558814205676213191248136807295017561222408025119172980544870360177489153843151060638863006085974951693005253868242575358026523071524410510318393817985616707919710644259510904730711888576392309728945339631214140636491424961846369955593381339885865644073940688283623973299447015528681134264257798807367696517761593482491785509987411513303676366890435455986547786719570346476936032717962605748112775332848270776635771687291525845311677710324093539983443150322331631907233158913309407475379889575027138391958733231343229600162663987242540949180735667396248064838692829527875332181256295571689239091141663050692834291977833261828070358316756282802386888919666835227741886222813405576482081588823279809442567851528254303288538834376864391214241129786681429816504835316099255636559830635423058763054042783925793879600941442488388562236204981970374323966348590622243565708003264544200112170148151376091001387358320172342114886848292045210934806277551336405920905662800252101108536553464385186702506125782085506542334113228053333037583349354368390770003478868041962062688829035435636173205818398464182920772502673151426172178432475463698758317080465485924556373701843541029303884272668123945985831376999028432335236071549725215384049945719777137933906812055753801918944276288582724754069420049856130042978022006537835176338978096947915260126271907250284596892754631024862793280662647377566230136531301638115719265316309319793762628273453681210682000399435289671551906243342587965599950099158189388459643268753449314785832594885469992679138072763928203175612209410813033098383286224233498079401827255694063176261721894294542933165176153001006452425188972367136585587124084917938951290873440762540928739770957255891770303763243699121414052461373130222454349740170253961608091670669567645998560278807231078491701792534054921048821651890830046041788114924409702976718546415288669860485297846597854983780371073669158072327869984839248398518446373853796540757218290958101221471856419138601254705846665718063025535375626995691229624655973118648335659369812704990290001694081229356642415160357517700713617696524527848063034126459142048740509544477543994168445269016249892498788027590348692784645434357443962617455568677093179152889776820819953101630893766006699337945049508259836671880251442432719637798711280515142876612489776637816281137499711085248173368904678403474703300915299464300282530341738769648671519538448702078445904384015307425164116243452517160798056300268479445868177927274433511631091807358926130128558027137197530987498829733157117965662268804831916135058489798207943371341041248881920887247708015224512973184629101971813528472958085404493558699825477092338802878637152778173510444141703626893333966027317175553370750533972494936470448329410875289032195778324921047879187440280691892349242537812454263745882740202406627567568681157706962797525637970931733061578076732597734775796519110723505911509381334724835100062475873177853337272074689091375306992142821888252539760035743409424966023698839593642907422215585593611910234792421665643283178420232097855134672750632773217135268262688305254659380819660715471437063165070272830187379929536309130447123066558102908437802290525688307644417488374045263390458038996925020861964806205998277746430031614949563217431074411288917989904025672261655721226733401382116672551035893021134222538561621870512674699153019434808844967929697203779638332724744327101270012042012305587430005694601269052676952262450447513776799216347631195588004246351635458914231112219254648850007037914842868247062051503326330616007569856712036809404016970749828488660203828407373401830697030387986587141635855710129380856412616272737776133391676641335591837700004628616598491418662059502858551405749479192551761182240013034732833533148144958851458249949863513057621913828232449236528382081744867355923472449588239392617641087074881281687271565116705290280134551800569429844487190016155256480502062532486254760902961514068911544342581564749443344554937478996554216944416138924109396547748881939454720805538063099068510892681025359153211215534206588573488509970669231000432552372369278085690403449847717839371187635639865340020271761765269155124085821074856874417046312649346130612212739994553674878731054664227856200096874163111007208097505033651544450961241976696998072056556333855197283314582692849103848717027395254045196264341386681668583403325823969562075602766671297238772568644201075789942397954083975407159662807536726334992881188640134406926162596223761836439839187353040563168892120276270486677916143029491044197025742073117147148764697291259146744946616696517943942367062353568260298861772886847072174238048130311805327526961920964035276795941683101610817247708479894056024299231722709793446047365853868062001870409835136588746121642021721390800063376479888859529896017266562607453634378948120062869310400247019176131190363699645597162772953684571260949203992979998606825586644428629225289616271223889880116744757841364256350372269851900749219001159452225155351468751125067143541790856562547718937757607389724392720202742627562216907077064234467889307261950244498470439715313515962759095882711977485622060661161369811587337487649683179726977193247251338974935199189589715284077604324257381530036290172592082697587326285827201259615290767124959289587643846250079891726504258801388601931444773871665108029680748221022064754814036282938773035122030292053185814085145260273203355162294856078956408846595391401853656739912757379473059645190320564236244384392454117231386321035555139952512928930121316258058742325896055508012338828041579431255194690088490585976848458932181384688428007726680142117994114863364295159221962345676710177884914493971752349907706044564158299349360661740596324086575041812350538197699317971631871866950738284681346247651088200332931917173792914745501946314645813862521608149397093142319164403805637738997627417730977903963124835252578347181335227103868826289261346141666442201073773559016752998659240385581210095064999598299856319947948227158648609395053418180409438037190799890445050047076509462527715807626899394767831960113092288636748700251147504731362831847502518815723624735639694564735064235325174054674117700328580715867486264034375143979760623866367523696269708121731833623553434782014306004701629625901622490764526485444868940057160629716139581594512994041515386042458631761817880662975776979815056907023361830512543933178836027002600273007977175923334903908440468739863239846515264042901258554969267266804295248944136462268017334661174570812676420389455473538158196191888344596839192582790351794032103097911292532541567506004233221608800033052091845448372523509674036892943439374167699932748763548302484715555233152238574381105354646554325992096172671162458652380354007869666351754143075941816009906879909639486578160543834488607429549721097475419638004943321190786032442605256744993080947341230239278457424923287056386358486442542331065945375303575346489432895789819100321209306542581912356573391039997287670021500359119267121807785634972243505835637634723898037726824452526496869364221110068536487789721800174627800599231926085973321187251674092720607540929582320929901405101130002449203171943213485070416493701342751316457791740675549322303179988128305778040256049723125392447213763424079432538995827341572932369966374934608090170601859704094475536730639057354110982570908262665841765461461669741238181635370848045279804792337591483295170779761890911011890880824614474557886022108282093322665328794504977441511114817263197451972578346210190107134626433321476985273651804275329695713820411876718477280093234278401887755959751040462334364933829103403277256999107121070807393615214376397814116103323403394622978419913181667965939118563098281072686884396949430426279693017287429843602000752900305669907516897965131643299034320481311958111001920447128801971737280773729325682773720484903148417167511934234747011164423601647555415137877658290845112214558961419564974730946586362232342872994378878768096682930174886397650830938318302291517520572864888823491089355235923519829402890504429355472096146142386506814902890232084741780556992171416293470193803027699955247084445148517342294662041575436928970532719279006185958520366128986622499648080779794066666763084005633787381405389910205390050964802406890003006121873332652747760891618947560313500553408922934844993336359827709945755952943466797871741058494220751781086278719436257058640968197007175058024568296339544919309299405562400998256858440359791935148108249996003633084958927188533537771584398194633377291499361011754491027587444373615428707762232187386649055900852854007324732017566910807555474930746762135877451073314443518120825813443335204481102375051029607956678651320368287552345897499228326164097893206261491984359634495538743623410622787955083952317291703371273415132768043894459424004322036097230880912656478607307935888433927614442178277035922950772084918130630323613874117140663906202167948183077781567840267942437419147558876436784374066531637065766973898805413984609014868142097395163552011788271856779413468165086694087065792713344318564051811740192809447765840221115049852943370590312455154104137849689009860195728193995951304159641144269433790123382834541636289764053406961976425746202644999268609445107269333674188038335402377147236503334790498975624546491663923819180201687312097522271122811084049692565759298911467824022028088764485941142499149584894998322704822184404739889122602148413299003636240851029732468688620397616144260542749893538667715320867251621133116789260716758816093821099926065393610329057374125822202061622767775498001661950612460151882180394260127706277343821929648019322001883237755100519619740399901257571940056463051157031696535942942736987542890105599564163631780538635795568608807248454889362460253348136408718710927405716390942895428486274694075416286024256960455171657636662602411556503480845894106977946778229852545304770399821512702794981877243967947283247908911234410338912544666453538641397118348687558604945525665690766086000588837727453834298889253936914302665236706772316097685600964099119198494428836007764795885196626965211311381326036613899898626624502427193735100149935517404950170788328173413363732644928925005137731689011209296673914705964907201393461308824725412715832998981713258746751564741560494665415872197449294292828545451344016889159433779191330828183953881971957335223245432772883264945319145769997158427106258890289425353344533023247854411929620177789035564850299050676309502383005248678390381411499320829209978632427977901732777774411475151332172541009940914878479670704453904141273636274217142502455130365194851627279712775315419697336942224839363299164801768483335758726582241022001028870674439267424793870413240838422855255166398245676245602772368096971415076804435920577722589195640475126400793422457315482942810036951192399262747426221010430011980314919949482126542383499727014973395484752551057136486297642818494118986225837838003355698415036967287077515914453194814195889580864399179057511533711954220767675679229792558021574104521997880063899971170036511584211606586966670879728225050573256981747383832476689401904581455583298788993445706747808019518622383056751390229054343055153620728282017236744714062059479442901586138421041778210896197255649336356207582668272270154261113710451666027998092445574658085901356970342978892893228495961970976692076258155082427809702188923603935276149095934361011350827303493838525101117227796447738743071107146097207410230709185571297782828471339273742059642880560129873866924198768353918057531819762911563411585698315671719462173367265475610536306277671760843307900010739348999302315084183321745145646465095049190922693723829867036662631924653965639263853864221019384067704943930887087903809391128864345419094662754117255926365206704276607180293037439454594106883347105799073982299875090069641478227077207811354159282286909278249625352915178408797647645924545421622552696810148143455252243683053569743524147137797211784339756139704304780170601633980186048898262294921309048033609225353171312296027098220533616840326645040403064640790932941100589744765452254726499300518919662511677139561206082107440595779365798508634619402854973166220459830204104045307672022623239246338132229903524880711151607404582070272656388769624822568304120486947747832012361862345578128931566769110611024011533131410342717374950492403739138729476107510472399443357998270106746293735794683438273835749921154307675687984799745017079744918437993474740035934186034769920657241221609993153350722995651374749295204489511284076415675984408320598008721934944622796577226792223640726885547456528594885653497516106475835021434110381673089355660052750579175288531941252936046324682772650870639129857138084202485344369986251418238998415914446100560387131061619601047955607084848269821432213219114561626132959283894455587553751922217032607935690028803061889349474584641025953387313878605171400129842801918580056048267391695344802488600408277973641603947194150193795924549009475898642460364836029328023374301567520750244650908634594376965308717795759546660330213858184340493378790203544043711150364612881401356739336005774437027554501864003280015251120678756293993591363573019483271659793466583055177831111299751669430490594852689259337772305503202093354286268727732443139335132713507529170600369589067185930964060990199245598544624734269994116345889074094047549128142968796638407596170756428371667436738112934980265379979189657345632163654468014235941972052695338950493736984608023332937474666338668626982240466608308784420149465468422692568290000948486091026056021636542383567166740695645120487636091933108098747548846853105683780161582650595715568713618216835563660375896768805161468125738201363369435630434331565545950689228915391759770734239325178101331301857930243009889708835902716710619582518308034661542938687056668984488149055596638292066355711444646511964144019382990486423704834680474132482067715978396925097379983526465254456310029437288080730109825246304481980257740970963525329673412204063531681997770346335868521869907337952522066372267587760360648959395447700763070409414659237732198930764646971142789113971773915904231435822160712609846753800676202141975315272109896852712457445569772057338750293365750357925123317368043585905018718787558685389145626461441782174214889717019232505519336305336291398971928784047944457689732388355798448622233655407833627160138161152223439260920752918332227179644622204975907618279687812169797463267857575904339353627811168716352943817173072291751621980951445352013920660759766659468461944523021736967173520826799625069295182158640660064770207202823244403791201502858017861767205755560956017173643495724202558976748318794092705848820967698180041664787718683953536043809936186446023343002123165129342442218813171417313665647285206929412249027350142012805494137435714147855041862852890656895467095302976516362777204828984534674619539418988951848045297561365704374279780156248036575472389652195265090842864084976226843002667882101851059942586515194300112246596142092932525361471223681969244600861500226796945144092289563541088687845017077024188249866319479379227960171329180097944195320457901403458284594940670861209796748886810155820119153011627012793330762711173128477721984482957294395104294349995335022096792310320827628132904463310670299672655377510677612997934017103380369776136717246762336917151377115987046879542865526051371312636537471670946670413349600842931765273162778492661070916653929826802577956576988510800704436726423643438382953076815966034822312774551765063438415685658092246117939503562056253326091210902694546651172046357332217758921914703201603276284950347702139965748058957799175300962199962505989723236261803452130197094712063072081232826487109133206720772485278853468600454580770593910272520774547889262106155040318301253976615047204184380788297100476891029876043077048595610792755561585129840380662889783598759625010847978108939683779070036401494955628336584931728157591226592056710984136368615733865120593881430225241237057190788435540016277411335125469262594008583227757382545045865762466560781463282186642500012170952847295754779156577884399518446992847258753527466767892942206656752916009496236700596521338869943536403273416551995143022307644640492494336781196385935885658694622924236142941422015094185425836627570450987733385857147423321944298055437442420254172428059232912532466431975273126683345329440366358024064464821791368580551347703022326471002496102304542459222401683834906877902270689613041540760452245250453769713314614258010769425409928477354704181132737676594281213883645302241191213132401472140653264699529606302333059240478573031979050456861663555296295905792405837626376674251186685633572543545003145228605664166556297550741215333752589178832917681548903958198007133186350479953291017144324114037591090884214388867067936499075699515377896244750743098717239580132827694754976703953365576113107199529040931692203923447051229887208422379197207986797329721882718353514567224200283969070515704395090782817638882645035650615788916883232340035399515777665164431842449224707549101298662247518120179029968396830349709450000798127847199260792675962214612491934440535982039946001234253609884117815606427866227901288123170148594120119495508248060775495086439744106263974862960142361613340616913165537484896871479628245223378685530952393214377204949675859888484141815122336637819575917712324137057691160450301858150049611950426423829400109747798094906334309826697285296141555323011608967810131362110838095262615481122949980947199426760364005555072671169771422476128941944929788467897852112360461005053537448063848523112167379861559680998558578699045756103392557877956987431586609960631874421873522887646620686056027695724431595498752599281357859205040944153260273799242536503647646230469953030429820522674317858122759453207677897112197036914588117955093651820464624925205805589606446331278824390833340240945460044369986848698788117919427570851081941019737546730026447108173951300135804965557369891900640845239527015551596763333645633488997519305529629586008740846947110389358876848433674974021962493399651495053025309903547419739934499456591453548403360947629533213017001664978056236929710252503453122409905215908280193063341486053088770097029394173028766800454306012550904540009484481045390114005443230892376130907671049049372483400373677497321170785223171111937430504706689846040936593631255755629646325532018974452922215953441527052216879279725466298303868296319930669480824504616512357096582016305433522414000436291481671016165047860913092904750720983734205236760486072965501600618373990388580815995841343653889245902533953871655274917453047276972693064956310539289139281373209654993081803470210353264138557907047731512247732858587240883818870067735607837142781406888818881485166210480250071403015647453887023538548622061989303996630800191807071623406855507565174200002202382778689023624154614931734268809832123061717994670370005447309884601753413872706556782022439559031216005721654244724279679665316193087553428487254102530517391956848697669705598079500665463243091791951040005589653490761254106233912331019552936106339888324289741300011330121982857241577932968239189378728068857343867454304218513494610124143206775992789671245237312606877603894641434194123543073247287949461104675808404338257268062098380519611474051370895203309485965742818971912321573320848859027129295651703966603537154687386376993588305056777161728811690416150612447742527482319995912903993466139365419117455906279281693408768215319484629842425147161049101266685725434003910997169408480382990182006118292362089044635805255534848431623193822589534977153418309312054592763186107746924877066254537613970321746835358346156209458528923530179249972785650993513014296025552202389611809013300643689439800721902816690365857237364840483542209787564012619614320765580027076422794770226340109123376723534398034457320555180197983831968066568311985770008828964201466243061618067670828119158685406611086765151064253220927014900711978502999938480326074303805661882792764791518106554339791554360068334223777482596652277090032236522118711911677030965190094835759220525414679623833344731954552081363671337966572441044274039813219030271221892780689774231661973210532330785596615466624142983252941841364723098292160478533229004436197454388518580734278613944496369140350315285780939288133349783345102205519144127803406400518178876959071176283041849904215336613831421194827423903968888367272728478537157800734351847447851707000048194634799728308589251872672511925221902339462726089685244458071881141383984683468929270904170397910478244389990919179645032931155437638080408099307611029413986210769295456429312006573682765035260693202091855829285853550480659583778443830430088796280146547329657686160788286420975672824221456901823179761585909096204290842230348671239525184276000820085741238107504192145021281742845972569864096628451937664914058986595170324554007867857670281772905297047682158459892799240131777958375448321893290931907349249475946773768096152536773193441428227399109236261965339267003311933526032262529432295979794683675721843026915382069675778526161515152915551181755974536255668240002433502496214263394678643094969093387851943423567227970284564745913729816783875040994003961623020280871755129762015727818542834019652124302706812085346186562666384602179973782059861049997528231888769614998823170486635262291557859446458352416606268528603912671208428752182643078143052435219327795185265715069390995127338552529202874912244853906881614008049286941387001767579198034463454834007030514941681921938949270320734477250081813865725379033459184606253419705480014651178801926635644133522475414656698588986083158581529811532787492664224586888941811537927688340018314000389409905672455611799269919330919698894302437651626160039524974066354648036463026264207868161256125821800242490782651801872460483354630677233365471345172516266340611461864368456288477251730754970867496828630333645723954295701466046214586247181749333555717581982614609661715563972641850578234267108696180416308917726910546867530962148466064541226319353164850154227085497874563829784866668670936627275417126367130352215039985317556748713337809042360242468863353360155922904527697024567640595919796629390130044259253844031538607321742126539359611528091824896027033360303672587851400793669681711991135830988232298534957154011480606121853056531020231585390582426453975900046844535334284876842970348602680245122334731941587141109929247954146078164276913195257900062796808790780048487434586569686942988677858635953596772588068095431645256145172027677161396201917269690438539228587273699270269123868075843782360408473441133530288159724385156168900328953511079984403956960071524167919834040292649124683915143520997080331998432908804085300032181571276255157446982256562300900965027731727107167317353193311840810583426982570971323965573182502249301337061871103871466707382960948656347312929515817413062838764970468970069199197473873389224656367038398886907317434162018190284340608622543849173270242632146363039966491223511576524830162071574961966508246102044168290779726820745805236113736996829893732904344370970312291049634199242245311357445091711150357838150869035454294994295049896771799315704268371687550402722666371831581343751642007395125033544924967749639526087671076384986826727692692985857134757280895987700169918978919412493283993592301027700501594570470436867766764886618933266807687935481355333222994217181501441955857411093497729584164552625273805788219438294176264951298733197274798628535404967802466264249475512609290426524630021453072550535203444250863377402679258814285613941216375715188286585312380249492939281140844028495732769654267621292070956831883734895838656044183310375198141375077830314473719973062434132628533771885534889050194582754377001123621267747948790613223423684540169769820406023981184203931547011430653048280041087151694978317583337167496131938640999971953011295056545197442519413141070513853388429951629333109952523756275594550860791071292857789182194090467673657771282025891050974961003410881380838275842016301084703672420885801316664179402118495701832036834174666447996760056436429811844332531746377744829980096086388776458714480908298547218783168754086155384080790945358501574922926795146818229182152553304009701193126210162867306000450655292894974430511731109344995252250968186456552657715949462893019361358132330502706723991373033594114538553121419678110427535053793016238030034272105459730604298406486987715174823059590516401070479573254384002628718326724673573002205011514429001867476758680284266223957099803172722044144682577302838425514559073052172355563360843585715189934812500572494041694547873822554145605977189428031701985303533537689585107786920194362495370049197810462076641254210907210794306084350940270748147683614219944260771149298285190654650648181228095724347453640002547977062936648876267142722935745040896629176276958524342037051613804726843011935734706203643743193046088126133339399301322105148552031985208294814402071873460784668039939056504681449737248964110879303315867459800292092644696858779750142613489670926473250608172991141053301863551698553193851603467742440295408269108554932636261689499518915852702185327656619300017379502340746668791766334254882596676783544119288622654592029081863365096010320381656333925221436681429034601184422002350102600242524993624950698061624879753149833991040300708678796882593321195623095488047946623709569555946507877733388395024953315251904884545687145065771024710912925405845820200615620410701513787306337328236179976244952393639501244694820895807438050123042723261804419653159011235240938619319467165208760758708893233184757391428058912341064715254995574964024042176015184660514968703420305881840887566612015603894193712764782335191575305507533109758765757475891184528192322583522944327329530342537346120253019594075742224471590286694077282222660600007907000326199255262772732890427236799659202310920633704462032691603692763966084061892389889658725512715357789283001597507595604585289344801544501132327889708002995935726453446912968675061737295153564026818052779757319330187950852181895256086641874826865786189014501314220695142637365837996017428892028826135654083949376256041681789177541053593137791667711644491754032423422931032766403376458276602826674547685043990859941136933225353274798285487310095660627110148117213316279352605777393325788843455085560872006313033409447761549178753719785096834622410436237079964606694968196843975051505075328406584662273046245492978243748839325396753497397903718952865062469901152254709423121570565093047637135025616896090149288413715488160277060944029050489849689930033647652953317194789386608162403759640116875158770912831899219726466575114797070459067723397026820596267488019934959375203228040619254507644338625155529710851652146466516954831225074534432411599000547859700879122489724666899542854784619282460058678126914454739138198962695889922030516653431108879262344487145717080259555096695037099484512629529356013054914178208550991815087642556013016868123461764183480561144747068154990080098249969172151704421946045247578311166419659956933793201437516556098059996599760555509253432290874927977578324654737485196199039941962670307377165363805755492686163788175687362620920851371828421259412542749380685409599267546137174908323991470166047062368794346379032246998170591650431465190917845377702133798528620057308642874955488821914911265402348699551749558855812698796524051849445992115401109787607314552890013973452371931280699539835175936356298077200438353194311077950763210955873569425587701150519436704057110793890079678704989509423319668833453808175889995240103024422803830832486520362103088873460950616344997829915516086306386037102281189017479249474390899119816464844996053805863282358624469883153449647509293676476724619878239158015317472292154499212310107257757851673351789788500504364870926010900824531791533836156652136349328153704761443687058451373042401277469228264941202216921723783079463121254729879440925990537930680894205051122199870845593879296691653876454449580273475794947528271826010699698326768461258712746625327275101527830382421695659840081589001021575716184185191204689522284736829026906568337620691621706093844781550112739832997911729496190194771937729815690518035126766256476194702316356979379783489659950484750402706262566143270430623297637529009366746786849199570278489459230115405482167420462669220099057031631093390457729345736689353894262160752322134239995669006472923837377983741113852098173519591681339561658050757305528992464421553040737680461830106336882264474914583236863626693394755666779829680174229359847006723530137688772852294392455831754781358829849055936782807137466817733981558892410015141440327845217856115532103372118871115004349112633991792036738868692621278832482916528720622561860844366072164957148601885868163053744241042456632636534770500945783220802080281452931004130896260726173695296953989288849075890532956374283963797815080779642379564782165080439825548649385022878899078112344293166760755444005470316852910601344966382356262320768775246456718356823321152751007175414299081240011556330869013703362173562667903368827563545156429366111422660062670421162771924025504894235822057346257791468979395085961804994120289149672689901983424647518940566510214274447242028096877351850586128359577619401912306204591209032921623793163204411692718496834278303814250581507947885572836627775556915340643484180345806554750790976465630453799824453282674379703421939564804874620363563493234691872493438364754309732285843257262709431749658635959269439505760954040623913682245166511804216103259362560217361495095306561080023350230507860793899035860398663321605300200493706455214804535294110221220041865176774201907197263143727922823869889440969473213966475964182141733021793682061586894676170029185930832884548511889708791353986428417694271030172564613055201318271470917294950952381934367067608060956420794036495661326419986973282333552489355690803221823685367318409477073275834384331089335412804880702138643285273710936434861096485687207648535198519376295751937370111988808191272948161142609178795270249344377085468981222872427640194265403365430167320191378954370714964790513931771508826122110212853155655542434044252906896759274150233566549120684752324899503169582862864667773714656022079151556866687377435527321202836585622512412373245836153058168565491020491209817646218411948532626553756580936305322646184917869722557560659291912483757185263811971795233194924825181665834994569477308750093451775918840803505291910526354062474181866873800718875240295910396014458277000848814579460584735278814398389824655943955364842380995110026861945563163467725580149119087339958670025650143576907341361980367548661345272999610696273259345421694112961786675187394975129317742268812074920612660349432390676687460084694323156827166502402940669120208623764755038988991460586140181748500336711827654824196273216401548748783594030546532957482055441482486567311878470433838747047563708326425781326874912164548932815777833697202891569349936116859435778059126510672467683114584393368631228324774347343378501505422787899902641882984526319845435859987861809255339642340743995389012671982014411992411563960200696047576611441910052877549219156914522201942551409467216200181394684627819467738702507974915989836552505376239884303065376479998323739535162483592872182334309354588264512753716710109885646388468709545143344096551673022784530626091504526270438107150115459864639784849124460390916512604451613011903387996840152734939699889645906787244758443406572440805783963479643350291676782412866750332717873479458434035743458761382848132722868339165499962675943439369972683687515160693754930829757578873567429852446304054211037558360634903315013370767655594008965255088092277532228845299470553749143356372311379475545068061626019272310646168775608114442686267939600603304412231048988447946781072154271878887084276102651294146500713703533295475476614442682529206408289182837008033265168796732175766776710684302729718163922557301065681307820200765613477872739311919070304136391938939509788374643292692944824561279999689986117091481766965873569299756678578223540728374124313320787305999912092775437101040305111867398411959822331522100622050566943007536696929291214940167372959481054126532676751330263656720417473481144307497510196636160180825564488075755062143642495373077710230922039576521175048658029848536931740523374008022212278446067834260187518223623912857335190737644282628580291368732781985375333674761828563782893563304705072721354823865585567956898397482294887433463974517536572833915798560189329032806930371919839459409240353240833748703561876231116976056658479292174572913167722336491733289069074283577317355534302896777302395876392273371183954798285236885783062694428008853159672218157819511821417311219619642928399404815781874837028026370221256490787176430637254060856408808957063532122787853088475725103529804421255550735754845599126603626728260316984962949101719975732103631813245256754757819655444597680922327114549123514431710215351002666586264001008660284437094829793044549980915652013402686182584463484074265267148282393207764706391183212387110642177717980302599290049932128562914815106687665280493466552354340367930202418633455412519346488326095737110676832846672978941182253502967477237947449649274822744459803253724629643455042912375549872895387781188991459135556963645705109099368463407014510773427450755964101092052785743641604602539913474219603396687299867299075873122420308234113289904585771109581757016731568961574563077406247561836474173153949914513240028995769884402386864375020578356096311509272026381060214882179962679219915973874251367658975322399398704449838615082264497711712392167609456012447379733304860089038454222617501913778873277246714032653867262197138274065085218692752652488373996779259857220522059810339139507133899467198961514320172274614549510107063720338491288576781585730692646827559989195242095457945929972440892136758572956772957756040215543937552484336415459537310392646428751794631967653573999774439910456931985567045961575842901355663744091820000476866526355519062321560977919941221607999640667734251878911315864401538449421190832913830484494836660158132964598523525933962254882131210843262798677699082634528119152844668229683588039831631195752714712179307784577936400249582584649980175245993375070209420637850538552586159723719030650499968548701458859534737832716001618595966035549630599972473878580941028782907916695546396673303658521377141722604736608585127587645846763642470000288929454551046988060770540928482145583978031563267484490027768044149097771525532003281024334278751226358572372458082533924326045734455229583168389169106183349405885882364008278798286218606839691429798642761937612448059567519905674118527020075821694449217142697300863443922099881280879061711026089494772555664560234310008184283900168502464557620748947785561405691145457753933877902354804028097889138350289054878136079702814173904187457958129483627464370651633574485618002551406086502613942908408519412257794974413093458591385322045670677054969760926898002867102194755161431615641449987358194259787297820298776132375867313522012232291526739403224528231272957763130276180199322412771827626906618901900659158673554684351542610626147423893489835591614028370932745419193967441426569944113199296735974737700580033680904224215757071664666572676219474121725304041924219334034664460778412021612842129242836544331912514411268793446814253861634606800804115700812287069697504056561672586769641080209917909370495266137903635654007034854028323633486074143755280629037367794419063217506082896731158772921656510096848765274164625922104422608717693637379205771351904389205215692179835477631308883730868124005925035018237319666207431441022265542189170975080958235865971252896212039087706145432265282164748645275273989427172341065812956618009360100576577127534212726542874908176664392159449980935690498015346379722960288163294568442065003504055141951240134876569216296462850864036041833183430542454382588372060922077443851157156875837031025533060966277809464393110297684512204420912387620647369520983321362831612566052411820537461505068100709827279562305294073937761531182235930836532257030794269186437218100437909867733716649869112431521085396075257756458508471628251333130448697059990924725062514265796016124156470623128156750244583845117666701191982474363134687958269710742547516577428697102882243420067525525723805182857615106209695431587274453948788897727142160412009500400170574790569561311814316152820528608565473718755671501127270117750924522680011864512832153697371279213394954735228596660777069687731334923754199758013686785579400444587319586613339255404098520906756437750125074124471658039954602341515304483817306600623234351226097089276324853786107318798460056937745141009706684309285595415359510113433058475789165783799822587108292542933531312199643383030761014911485820316392942402780257560621502504044677364602084182070944743205448873594646217325502250680144655540064625906387723600136526553710668581945387037959851437946545655294475286027279160315635464952296122348556735513932735995815667650817376990458890520666541594302969478257790195795659901777149312857365601247814721143938291984297155100534060161715899497059059727852356389676623553663585761016901457600435984048247949538574051006109122218767767084928814817671491914673453177004989256995252447521279548171323170709394143805816830296114737591065368321644845752506614878791653407509469987524323193839721935021972316485595671489252332808001000181969632662967681929289007810276391476942012944182999389485218030016014341209676079328254066953300959716985857730785090473722995814442607228310819825633710003280429106634630648776990683641394759455046984533281737935873711632617054010750791933067317550595382029565383700689592860817855761448984564417374134892993646725077175785456249037494783221518198561706065872407777038237530556047988597939488210008939400507487722577293030494903244421959358401582798861571550507167447822432199835075749589888902951572178851654070656916791145308832414509802552203465167309636216913055290020798297923791063544678555605308098152300389530298043020980842347969884438947363756307520395208194666913779659310379091585580828469540676741160021927944827394228503317895586085828967835462356656648023470096222745633349212863922426986503431715142203284446087518481564461850154952069860967163540549179903532181893254520557069425951340893650972529194009307853070017309277689582710337888268124226029893469650205381930855374119840150654785774608411442773840143636124569008997919348761731991541317419510174374815652329956038442519783032628483378081321057581479317695253380189961319312907653667115286854612240955847189548429844642209609717000211484377150006067129442641300891319397437059922063409942472803919705409791499473536327171673547231887092705535717043370564929607642656735697463801532967558802395541547104128067546336858451498501507386143521159799155773684591163475326170835222100315695559634059356658686682912670685099130669537984420327333720581286554006847024900761429418471195811559421273578159046898690839020893316123432223376745545436370932057226120986452430820703015909575802446584574927921763467006523263320438969588030127205708142068320941003366733320916929482320591559218665641972578480152731116943657901508543676954951551735806435609611427389927383249408184674906873972775752646824729699126311687978747060853108923796513716247147672305965699894151490220833991325829700013732080035827632849099361436452502811167460624819393443368997684882714774916299903659109914556753851673076247662270541594386854925444817027502740054301458908147756790051053332004529035424817919770540751965231749489137438621279942593101704393175111228700328600685804848152896178989681356115343658376839219463100068528297768234997748035724713829190093354136102133516885891583400759889495921907625198810973349779878295009841374783723832368472791069537398980359758395249219656175936612538014092095505772188013507206990374404664252860737998997074621798890522948937712826032803663203410441330901274240813434628997858062490590627950132148235965547055983696834730878287540672438662440398790427225705812757077787451614178942802635770382809608346308883453790326233995268947524022092280577988551401604990907476282743351916000495811720490373257065836072639959743472910814054853129495937096261593028317479463902035797627748425561669185162533399626984417876363671494169923293121378717238859469355734109262609350743948401298951522890656169085529418814330709948499459628144341405601287350849597179231422634133951140553175546778338288378048609905818519542950829060838855916801711618674949362422901336600423407446624593836792058400472567794413618001292774282468320548011889310352654880516054403288439482694620679919408031416556801839547815343554483090697208304668037513601322441105373965296590795238904661834202276065100449967456586876572206797120292950752124585351714599616786974220865940119348683646072408237887949680984238462327199937872947057970849546093739390399744286313049111494260077828631524818043000716946724199925392688908579750722682797588987456950695156218741292479366162454566598075440197948949908994348795540246663482302222964240006435740592925905722540106768400540723675700875602456224807249387380871227612087202721756965238947399238325113170449237210659594964349336607010525207607520814148986728149388367883178487582739317816907379108699802029771259548560306334618453843998928558260464171867244769537869877146382326650607848394465827214545417212061630527706513679279809898897784158187896433232796157878413181030896149529138176602787733713944887453801190398696401002654415438462285878784912712661088838984438517658786980487512365824233703443234411288305195160487460017610335586776139394465914022357022849424126097573667034649109278104878511937484039388419326916622671749593110054226090504541202321138175368125137080689145240172883900922103642336225976792995332870651914872364421811499888140991525185694110626841705738418780271540086615017082146447477787677201406057755463712634175034245491726605336181154625215868594564410836003137124614741998200504990953089313116099553416105878596772656464399337368649847876565477311362528924230367937441743661008451733094329225331418241524715984281357780519936536689167973217708880953962543738588754724024402916062898538057019917899810268658106777010605318126951373383052073091756061340579690791812851698771808404499449283559691815281841378371566540923641031973831720471996297244315517607657392958802990326359148198842182130133316151819423483790905973996865649062958670541030809894165268648711527930225265180837758858244826482157685525828701263046183374581140399005868803257212865695126504271017734260315011357903088756497087384629441907872523111476504099341074963068948628634947017516787557710171101241060427143452943163362654934053242716093225952695013263680850976346923339638407494700399053108600298225490516894449451500789017070249671567110939889348129935179891039791897994823724920888125216128258791710486516513155727616687457529178062649931951392360973922997756479585029477139394022484733021784412129610991810934481704469504616585155484706948046450435925900008830740890773761303957854455823557037247221546842883364013197008860051731526717566722217351084936081563734335648567082530738985234896465076119527377368688472138534256942090847281540532110088338754579551793792869472262963142040797186974655355800479909859110604964543720643520551721464790396352231492296015394717783252587567676669549231300856321805160790566106701144551539975586189616190897007119029972519498850730824875969587127427406973921417875731040236844311849089291490324341040357669574040359581355180716891971095080739825105686777311860075482764894700015144195477879075407799319416530895668678073852744241531861210625630658675601800046219859026153265699289267118288537433443533083316125638779240437494131062690563092037742765740457154016833365016698601758212931732024047023256215803062388697390370489576180050668526447124599501715969310996218401052283575809904475129491202563461241243569565431087185020952451378624914590087018204298975478477424373218184037314856090519143906504308712275463045916297337202553784002705720076226609075714907373217669640093917415596229987582652298653123366649402868810273765776741986313541215763688686232326131617328619863591871728792913804881935065250813912800116737293074958088951296933158814053848249225442242905319503005899204315614433920711370727641854499998180152967495767066954100651999458278904934173212548886926856683944991925962385618326268545181987883972994214301412825913705625002273599903316308974830733200466200259493721742873354201744546777257427232187646940035906123210947463073578410107969270377204740124112332404567271549453638374745502343172696831505488659658055927045998360153573306642685593470326865272708595347816432296411206174754472656475754463556563905376145797621090529276469323101896617278810833930837458455157015797434091549299400729464332998029879561234291367004135185598622455264225804707393286141812023970874734874162294632902279519608322495180426130238687987459834809618633263980967816067157378692022246830245179857428777787292980674487163463827392023368850960410476254138805559931925052532481727207179630280056303364128680664457688687368813759062200938809806285348844305709705014782906852299970573267743515878327523271659046522978542607273977106063275317629249254696586137647956308065165673517857401334785574317336021485377896174121572727831219549429111323703411332205176311704145019551844597775201210893951801249278513897859813139364335827398277676623476100584894014464997496237588540419555979249626038175957343507214798349888948168762697939860146023319704832863083651225465531318684474198422824813177371728800338630538674314431029973807953770247955786713107012140025701992519535316157865846532409316284642975193790269237514082972146082654953013199107999536215954349941263909321631745980261544886947978939161431470535839358658751344921214044215006993672657937738590351693724450007672360376226495451801453587331498640809742648191842200040789316107593503130828970776579851152053752580434197224569573404129855579845147361802774186678439927863915866140927530214834240154195846886276442656263704711505144607001157334890935642785854663849213996804546424328814228791732703811322292858385226788221958637794315239251719660957418879662964904895984569652777458494042770254534193995334195378233258856984607522507577950272794390843507133665619957794007402318235067129762679200118398080537123560882011891407467370049275136721863632877441293074722910176521714959301364490089825833980693157614102537512567320335323786953430886867447192381792876857222721191098750760703531127507779299515337839718024842416812546639885428659442830896920111262485828400211027842560650999971183935401551520906805476450213294786215675104573053519793226445982031904807348798711841505081031463921902552096421675072885957612359311100987748919148444001600250059281625845524358119193008755904883013191591804032352275275453157927092898395129248807874383833764145056670341363205596395395837350504796706208315309286687182711908844777941753311212087423929668840608234665052915353740639386082868433589535116004877364298401273763945793440262918820955386102240493846814142915218021268802897005519732364159247673329977060153136474651781518469750080773811964388677119302704091870282838434929444016349369470498231529842963554165724071157779357736583653821314885551914355860224214556526373097875644037562540762505175835084472461540166661110925193473737318340486361289468862366491766769761159563041415652600543129900024229689952843368408821015327524203796508579521106558701452553058661518058081549035896030389310070165336927984078250966168056679461130721667968767044434597971602586789608921033722312844041706534068375211738309672426022535973203638275167987790791935603590713302007994858151198345464228771967090567690502412839451145440866269356481321539384325600969984436861318535187140432287960098434566273238793377463438707916021532030303656028650322662695148195378665600498579114767170345164544579110853714036713927883511041599908970071835363765370886125846843818384902831551847966475309122793776965747988030636016100822423004514827568833570901526256624575145074361660440329698552399391292809215554156421098435651063242936168973031501079652125069485900300047205988532293986450514556839322991210916439414674527392051175203886108910861122687758016126656350154313470944669851656869069594907227551222326471949798787528483157993341386068181012590018090028624999901170469844020040977107297923512191353645275303994689274803580597737220869854097635241754098514028801238693175225894872990433928558926280915431973498274814669170298669420913591448459250328483603008262634301467071311426664727578620431500178371312787080849063259352189872981672408071191552160950108107715707315346756037071499897011072142309952275905370067341353847421873148460821287868799954093011801751418110996139699139176693388308024731473959085758761901950125504426214028756638983154719979776069580238196253655901268649345990310973807896701750709266374409096184147130681072400911920640027946273444440797433318169733617906555381888206270014187902783750161059161327810951508449184809972310054704487834163706787056293505894071677450497856768409501160093461948865367649246826832809854676649239488165657903461955998696900435109617375735737092782893561789097537980433792404002888582542731089362239252769491515583684766216322071262806224808648781636386689865483430317025731191509685299239639241696470650288002807968977401507588886334525358381375033994741063290330986647751586606840012828428923837438561622475048881759543843604541556293228840238071721502258410298949914506368336385535740668656486259683224472949898639065165359809750564509884469435532757407899330481631566183948940891236859065940343590554142122526720499728421987931269872849278565649744704382902300181212082811083766739959858486610689570401232034929639183688860803022445009817406763531798090860600343060029609746478112913884125230213647107326745931797478405441139294868166894532228545028045121498038132582673871639748101501775120567816320518140675829236548710642844155259619736012588800547468643844036325932479819503018772606532080528893371950542415775895517624863724043282178255381789168964086992665284531551690681563957536995105621763492905453634798628898816591246120950778512149871185893044579473279559876130608884197024618104323635921650766598259284523512599522810715768745415209192851252145792524845709445495220776028024836995492677973046991656532449700216325629853250260621662126866135278539178614565802747968619335474962291355947486266631358984646707659959603775204904928397174548416881001889035814775894412995995935153570322867599633830179482479368347523118090200773507281993179359993311146008690504270834191835319077876051836527782318465852861032630107145808662235396910154913366386687699715060504872585430018129163937784572256166965509551491674967090044891278236830359661260336173867623498358761361100071753315184657139258261138418963925612182136681376605808238314151002893335969347384892149521330168004489719260717906504149909030568518278947547433207426326272399180418375551914506370469930740473916539981300943072001409677128486634975014424851879029048847707293701767185887803783947854254387794333858699112162269468692174893108754736152459493159216406885785829441742549033444807871410656549751760716473172453118601397421918779184231374577780822517702969943837564173540296404197455584134161561198155996940926150617181198599346797212200604710093377621746559925316699292231057162348841211469036759442319439470440240266208860379790581238026239672220116218029425558514328060552741420504804216215485355097619917644337842004540919327772611406592374733303047142824057771648994787406177685447291264080363990655109213656616366440987669299876290934771990387827191903203759494904127078072143737203372400672886633739736061291037382662043473457644208216719671484281392201371635070113531204618805835769898779883286862887565700244525793559065387863841627331794743598886654621656338294912005259350529378395695235847176515037437837417054631930323158059441673993868392917507726289058507029329987378195668402480472866039014079339816828226128675950696189173376183941082708542072379155337838028182682282466069846909361150173336221852794071490335364144968605434143724882394182797478617114947637671161029321253635619523336948180962819172727845799081311559164108458807795605278843970458320216559466647037843379110028618569069685392276963887722597164568138801862488181705573641287748145269021955466565859432607154433526942638575854388502108709412805737660063823816578896669444864257120389676401002105736536879408828106754257197757157182324935416474103998564583551816650037013297913980783924375865900267087667695025900500014262653417790571123201797797198448668342122802828940194864066210263277561960117366022465955325766653695675500997926075929417519694051976940577652545789191609034438915242584635741627085800181356357226791012029278838547523113118828517315011288899214313517743966686403875373057882225229212929413013933754332214770981419792465816604124107990747770165812113256984263778820714859429565206330251679053132960749651150883389809819720470178658153774792466473541774522987023996614973747959321303595703975854559122198001310222877886570114150890679394257462953229233475477038197412659733580141411363806285223412347553286915786328762440044450424007920562199722005540272450062238522314814093575504590500627324611397115075008626600434952292806942521887419751059010218892605592299344332724138708915710828139179950601448845596142005959033425659022903135739110277451673579250652689964890383609170669947506630537790353307619879383027503801633595477660040011638036461038133631637152663666266207035747548492778428645219564186251202574229589772824950895619694233530828241674850399706396690918733581656129380147082791693759700419560704305188996541834915634736399290151133501381145914825061543966886300383361518338080872737137996983504792373000854302403502539855639678723671664383752527956320180770506904103754833898953282294585501954267737916207800479283539137289395132886401768956606942875933021264242788662323427959582709441482199669558951453716181950259660143377332942885222071545475377338186675892409898100187126925833394671827212649212412614034170030978379353814204504564839240832037494150832299271633023794695305605561335588565747947642885953944350717653614384675428574075659731381488599779183700510839274906828887906438185290984505270032031043918328976713591757215298621061889739748687313583223913437222045713988336929628969764470098360022007641791662633411912169086735657758915428239913878874093606220507830664675170803854225435051936015058465257547229306612222625791144361818310365888359840997551434285219529693637261235049635815304324599062066229271755827399267541934485833064310423137828517424907185187400722094486124884652020105225145352666469069638114399909838684607313461158752217028107173419854556187224539605750529274521965920375358814834289240292135360425344291582050284616573708296311442318472838445804398246606548095827671469429684796559726168636424661537994359797314733260331207441410122891456960187808502009611801851954480391206075610937968692643402016285336190038667711172678072373220377008362811685855295218140951134301450842236935531394400852674492234866148568387582709944536204106169734268408125671523202728704437396262342202229684218810053494070394935471053881321909609496551150385734230013624251738955736106899842391206605320341315713805404967754568962963943539000924222379418796065162550557634368071623919709297754127346689343743291729611046902240707383080291809357503374763201628321958019008657374747566188121634688837843175188651458115103714127922706838575799506783766854460755991978914564363067155180320439151399691676516715774222837338382745992581232768999777444346809599417900466302032858442316429803154811255411150042977215813966104986954715217324246041690909626888340224737163727968467754369726035126918641404545949670845812612327295379877991276111509640006766038587362034547118389163303628768531298403364240812504465167937916072220619028449617949664879748323506774305507530171919546390476128588864119354714666072331154130862424759507512855371621439634709707512763345832860023306247170248491726611311013950770913242124389686590115041470207322678351631062168797488401667026662877312492145208436312723545690967827776819775958841589073107941706601453577117482962209398597820253173048053141448190474202480672456908764960908058558720871038678138796270217349077157332618193511722402872029044571466452420857502670447645332671751082926421228603997041454919163303612976349142252289277847216694901159856174719163578983750257578274810388318378242140104883919930460301534645991750720545415602664431514059541902450887001601576195762390522330467548021208298644661550053437170322253742356247977578143223946458094251568082500325928465965635957854546492885032226560814553253371866565897178586184470250793577170912155071915163774958861102261625902815211463782363627430683155210537750521971937118244981145071483472771309576616182533082514535336132537153222733035592406388682742185639458701427307014806954304825222594320334411927604535543431866455480675082997521483942033765123274603919371899344679397871979024861404938683709071415753853414133337769767666071235554032086493610930940966485077832911812824122015565114616747700336021422490810941323897832867437855146252197297098533000599954857819651782156568846402096947550947281975730271702178917975173354167897262887087997464959912686084738316163347803384822350163318093317345344115388035087944523600162831752121132110670680304778423452705712875917127921093766637415118843450739795176523022626138575959987408137402244971839783211820354008415814582809810100160358744901714010160092687539245960768416970735248745550553173924969946891623482453338833194939401236997011015638883802891645538710529276400203815929596781997483533519707781493656228938646725072705312164595188478610862050083330436853862322641609447659622880409803241473030639783982745558228693263606804254873073212606578497370971820473410993652541172622958662206878704867616530464212137311028907231823655854474135351304048201352715960087536149270976004739993061733867162797246329484715403414796006750591201780818973480370904450955480599891368610527310437620835903123495009960933380050887732042858072840391590617278810553597487720647900305300111480638580381426630582584566385329291832452392124517310711692548834079316686246181309499304670137003260183602389781854128032761650801275365300077059264815762702422449510464006502296929147817355681499438133591609454392061233200278240690676404651024290427041675054197776879941515801449255380742280541905428534556341949226678502834450555481350724830833238594772699069505102769759402514779930960290195883016067988496196388291758072462831289510569538610336905775631051646245979917164998633016043702050642423927613171123060588125454534059064707192124996520856914303294638803774955970535045261269828706487113281779057755081541708809560947871726426473128092247251379744711362991859611380654457492065162910886170135049258501801034242574586477986613827309797915767010158834784706540465242156737632116312872640177767224006883375837540203741828902641725574822589352181420594624650020692840605564030554958110696332869374529551830205052705375922507747637646075479603788513386096148960974070663895875956465639589580587892763503210797638405178186977753317638081341451023362940468406496390038826836042159794730651150917568843749186635105265123719889781439351847255922869778588311359188012368557493053532279298782459950039984737491560566693876562731164066083239692554817077457323716594385424485484926442249440340876744415175599730454323606970711874764661821261226466911283855886418866673091671210953909242636528127137029033176716819841533397542147492506059031189726173695008486943418614532871971618945611212072552297850432403160001189410261576775043842557843261908251953002275919747944206377501492858541769932565334016060831979914952197732249317050535722350877419170115114502644938903449423413223393784450427121263492668631668262080492976895096435661567771129883018934936442624055788172176030852468927977556107348754480156761337791183850861079245874429754291030120754976113402206339434604536372308557369490524735990769949770551487298797641924484854680705981717110285056965131378911842649871238029721292788684268743336214195874643631663436386255503820430092419155836902601764832641992912614353736984479384006331179687409591622519238435597952443142096963645587554983650178421183790171381665905727437342724721476189104346360242569889172375616219774167684241392173236307458246464230023225131164080018412159306825737065436909152923742159429351261650770315697174124180826941292101897925768470742473371456709278593829232341071471645610145806954624102999452184320812692553100171481188592044385709696762322561701770056866065395607536948975626642581842754801779046711716587955337197834225503552385175891215527438351332319671681077611423837223684520760995532654153883434611726516341218606709520062363356837808646837113339000651502461960308219723932291883539347837310961659641020383634320104010724886281327568825266160592098409673723673357692125155349129223677266748572622856888703216651953167875298581850283514357344891848422299660509803273418643954038495682987177179814624131934827967435483622824191644023106158834099402813723543997524661136273492068368564017910402758545011087808074617321942102741731271143675980243791983834488138969711031677988393137779367145214548927207684018671149313097087922381189332277289335796589987354166758147042488874033213870680178658849962452388601730115124018954812825378992497828278696714553264292476569190207150069885844029468479035829693834883492400768575592795344838556122691130025810132747808100793594808518437798024261059392872257215656900794066471780402389343621432088618656284060302865664069218287209624700509737012750769694455632440345294083195451609814296207670037012141441875258613660297093521717279954621784253856457197020776731231982168568915585247842859172505427949597834096574598604695398695285650799968603896070705440004016424744823484820136744392764840148187002338445045592959521568930819236946007318055363305007839534144786391335903200220608532713335142754411963261945199003624797320545514470238355678963447972716851048766289198574635897229847449795896266655492235740930329306442183622208604908043498897948007671252150292054401218389005753886995760316691927162931193619687776447214414776191330698762287863113550565692564116821074402815771204212663315842998917512262286118293224723201962567975422927832363153625520539470905471766538370505209008315434969374034884579453468452979857016968234362062192990355814325744344618816742891279678301800838855874708209588457818077075766460726783991819188412325541943031755727860270022502347287164500313098417707918697821913208956006059996729429362242635160965296744250995257365437079376157166441541504340001689943307113092192190565877687577351817093341653352108368863298944858669208567985599825046872293457420076586501259309129025519938364803068048663524353899527676260190926816954907052886692530152967736870848908074535783142577266055833105370935096789315785909789995035698835665186201671003974857425549747296487786320049716628163390256584700202087292507957445835976436379529219698557653129346443213407430328028632774789408226245264539567189621855100126476771131960479548076020151146576011720335201574924773135764204441301580606177317901026580494122474284517917241102249433562882510909451368090709496822828015867547357817326492096152152927136810307010495121512861799648001758768855467868716286747702552281710158963219938889748645079076000716740861270102471650157433843701443207873697164403591003696267291851599682298043418121390249497622798517267855493249635616615628072508414429025843530577181271351522419265548184021402259008047613494468551679063930690624730169920221330953760581524310470380650702097840295240573155662727181011015432135723519740819460701864326262910203286820902996399315796470529772057601300875235718567153315947923272552668772018582978971153974130374981013270783911933098254699894813942438583614075194896301235736131805716582671533409472670864535255061168984020531437701476280740370106335799160059131649379756168445322359834071920164226331692483143779861652214868055196980493786181006650152312008016443522558567498704208771047239096191556533924176190336910241070618129754038757212570327642827659175688421502352010657558665736294018891825066409760400805075665434353436669237200954602131183970842992895984689358789326509917695743079774663695663037050112398979116925379414620237512969854888187269430340766120751680463853435102120448794087329680205964299105510070989699679821218409709363928921440673424977386968199632072511304363425503708748023171349195838119873061300973852931851687262096932633424371300456932305727032479672351654221556323358266139180713780689168055678668077628489796491353253283562184901801622624785720942424773152677525677642246330627738019969621789740750178735954488096719775527071017066204495086595430070482529890415941343343111522398951488257359223128238566842816376458805941804162443076526608160407198693541949584868946954794729587825384963361202664820965625472199753815126424234095374284071156205327801976151547417659949470450375594824758781496007961575452672412204786542373307508550615284870285086871400815874805918469056960067341915677591008695873443824966335218347774953830273194266936792272679269167727180363784982721663195709179148070012550904864300470597993972695732351082297202311155353290347469019823580151242748468707557243921071825879076890732198696666422115250943188078905786662037380419696353912133649132957500695293186619480841766321888665931859190453710758898124520320914528208158068461838581427223305514103234211746887245190520525650834819632467132110002522583984085345502324986563903141241678318178468727624091245392430578419158067157928066316068457485514630120234162196886864426807607159904198094969781608771893762140479462779070398857590666799684162370359521739223530689575515823031919961622154028894548949958016494454869432526900559134312136086292295869717794482415986255762483746036487767825620570039312799307588780830734174942437328801799366422791940833162208892105916626151171379965877477898995160535285751949388570999661510908912300542653476637705737772847805831531476474754982135366104058591385558324818478346775107767654706279878318882043607032819514914175735440011142546419239348743312321643520814555322260420812167021634631600650578240460889336411074306712677337625636089911968740360629386119268973790849329997080862994594018686321913824394216825171179359483250975059032126693312948433458761872679384852267798682125376910658702776704117889862639449611934927134405556350398185959226394406119537509404468188502610256142952359525737745795467114177454538782049779880162772390170908054389442372311139998442783157124375811379890228649371411103660252283679800225476241697896084634791867731960515367910400403235903209282737148791232840248094450039606942485930977808897239714738940991135097146871241834282988287786879718432686953384296393572247780725429705271010733698703150947753891229205390386816672426544997490863122014584091820301137248080210991562401975362437920251910646013202059676247667191242233595045889093989292410183928539971795449666578206437603930185906816221562895776535427141291728850651252616741543513537701746039043610664622159294511076837225871511167607860420295001626304363289806251774555186626701456795226408680215773030445384503623148015380834158081536676576568887268018966570757406327354580711444913002518957115750537180131292152563091936561531714769802423384348725845106882056663696417850602657205670559406785016499754985004514830345630661441618045058993553355245964528183168907402146988185142336330483144267474530825372072385320531283940299354614102001598890857641090585542634624483789858404175631940794249425730985871058750130220084163518412925275846031990739841602347064079307468311302688393064982632608355546148300680446430065579328747817192389783043763279113842404092134038346424366756332737547881810301341523750135685421670574615992049787881489544071461729578055433935990777336687354752527660666716788018894230984630830746928016041672928864681206832868263556768852104487985402311339426262275770656225288547310658449628263256443870667096041387512963088460239671247799594301557161345115468080470667802016085141868057211773893190595617051603684299685876831080925680158276869780821344316781681916718289722651539079859454303926791723496593465684286828731153442076811780826104080863381448931418484863706587817013428443132900707797740298829114054054811625526266443356732909931764353528391441969389820363398228717761336085765836048556599061594881319839857959776077221572672510026492281839399003790352995278403786720278933689485773383070996413747574583872014484284111865327192866563985305363328895236241853223709796319362063029596409293612600556411400420377180492573896559458353456037530809586237265212451021887163249250539848929776955642330565431259745452618181870219148622591084447891685956418714828605954315200723581024647360570329239941237234442152963067875759760906028206368187590791033454721550182312016173898328709938497793025883075727733445196197440080032933847792938674921852897253334599486540476606902915988871509468618154997339571733832290721486930597670025448880827546677628357626652881514889534387653505505527641679021576461772158898911224391723079305095754586428791481281239114070568525940410017063878865086552980452632817563421485404063508090480043559657813038713306549106743604125305547158423224152621742832101245289122568477340853969694405904792627165278483690910867422536467133832906762466313281473007138017432976778048576720661332546184581129450991460608578609429216610783410403217612078747916023882442175538474808365657523528544773037765635207612486266251159373121432710507885791104754398498740973446089548263204127296975844056019219076367796188933721253418570932099388815908723572258210358111474717640051112556184519277789769020191256380577600947329391742471062359855555138222528017750316448884240660059415274396245696014344931148272170616722564465984191182336467261196609186272984322827957041715451110927185992221068961726301065915989040660451696885828340777334343389395988445305563460684998140431105858812754364156626624485737739492382166783276212319159581928153982807401252249681555982407433184017933459581036205689627150673079610070212906368944857435243114946867357640229608543685362238757520008992246516436246549783699723364379143153086370783115654547781868954946877497114859430278304212507686266262580908375811184146066267286230752805494533947902972977382047980405436632639783567225013855776324556414362722075019611836706652794310008981350710698661772603848349920402256362122691128418660103492849655077462610078755457633041386912564847571120765359837852212850098748126166900944963153009867066552100647145779817607968695375761662603222890335351570670006409879460326007758807841809768276058208383583375530851292881927428836210310172868607703296990616952647816036502502315165096604336792691244790189226433043574658520424077501188027491975135263899971834001226680780177929475776019666526361666810347655790598968191659707042838274349642508043576455168274576268950811172999152095821797096622807439274546222614246606835251568184769041721665253547093655098656455902287880676449875224148110917824882335611800292704485504200035972030306229208372721257983624820871271568827593048830303703927970681794658791983313232159515104524854531686949521018470337385611187337162749508204137887454061129729942174085467107569576457255037739799943440397235618764615321545942130053343600847305420275080170963939793852617258905912816334264762765931377166027531854123103748767175158410824638541116257672242233965887612746683205980223698825288080166233753657128322811932925956809530529882946668797950339916320800599621980443571234739262946713603602094758244170390997624889867774030654365741234762308510414592603919013679406291434526077597453890002111198923489288953438920077661672740494843729276625066941646910547974769290578894970918806391768361008671856928869446574564621536488322074464805776825942505752294759790795546703286756112658410638496721899324897920296591361383397832591880751046621161473708781787723372030330054826974817902461903356422094058760853323953389910443024326897817037764920383999854366237372777935798153103019551404985394583847261813075003001382863058749885392068345715912509965251772645372289152170362453596516237488220194711854540064286067179892751468989575512822045660792744863293586415616956376063051058727164557646055653337406446382383445302005475937157357579197991981072018346778503242822688580711817470117661517240012264224844592967686634899164836410981929737615742924209023866736679565224419138716968736489041112623952057808156951793726301269653156165468987541738067345171974461265044133372076573961731209594967978364605826982954894760443714049568623149860897814161865725097812646888609870713537287151118309699621091985787339091874321545241218988532572237572609969031397363245285278388359750984474235663608267131506309920825300250616928657695706736583387862068567946123273789325804410084441528583212324491959114109137997020995358756106250262088741716746833275704953641233818157200972692064871933685776187863752964992930259614271938647821749476803559670898004427015236459211912020803866136529900526096004039933434450139212298777613389708738208256781457820754238550639204388611679679332610141618842036638978388574690627480613848428921069500854118366253790230800317417027984995230529214853930604704419858478345010425004662884862063654791933009080497494130924325332444644513928040760379616558817479674367441466046780949539981406624542953266482692724476174765503102740137925984958040046981587496865558664671893936068520881391328904369191575001826338462154563244153580705379718918778704040338830715884549073678273532930394397165855828175291991606415356063884043514279604141019244927616527713376563743384508978291049835125546807766310264891457680170078337087729309518661163441153244959566067643408648618814359089745954393712581176162468436944298933218775455805172487798584300545366901284036483633170139300491634752084606238467368237022849710126146185678242782100279354763625980105416782582348806034071559256695039459029445782247142097527912758185317049782982112711878324445211603670826653024773185978585675181987429289382526435328783181779789238810506938834439426725710576921304724644212496340585908651174229227668297669252123378820589871216836343043762901282307479827023504022594409074798846193165800600329969407856514252366751141447409783148006552657103127796076673856564332570716177614651843212974162326694022757568344749842850356179988119271308671885911892377976816011616155181552656140000910633762077659875204481911214339943457799732926318703596570774684755000859786470627005678256629852471502991742717010443819188700775137002487300557545274262141829270845815766562310261431854006071557700419299447340800670367489233016603505336426650488561055752261792578133098987035093991938707050489816640900381844759736019238027683840135323421022965871253748960738251983779183509157146614411683673434737253270236876511956762238885158545707165373384018486403018892806525794584017137882651414079924966416549503955253787596318002507635853448736549732253051661842216480136536337599617859966858214287386372381446493429977534807320773715917614750563337890075038692220090513702359206374767309197501965643213054498085870381961994166001893272837535776665231812621107831644802437548608454487366015331255264600445185420797313479009413091641954337047260089387285669971853994678345758089067659305785802979245815918812250103092649456368055093281555690003459631962511884324931138346862593935552385090129440760703891056553076929711304542049051181449903441213424342216326666340331371513553109243551575646867336300793273071898791217857620361206217238910988143685723500788700551446981171669227402422847552578328889795599817207236789221820658054470239054988070612700202843411985444157018106188764037065388662841001419458913306092231911330890501082111121295792311839697993616088058506344812259203832107148674053548930581351571754868368124353474111773256989552277766937701439881606499896610962443076639419914385815383317019735881835482199617299430087767879361665810393093444435423293136683103127028976001414961826284074972039651184303031314895600574146589057348070189301394381792769608571273116142279073808780274352818575403510690910190418630707582868905870192802217211808975071459645264330257327414481480671777215050740472925559489450694208693317817425270521468959977492152420451244250816944947716935251367224824657801774543924941348430455029885075066363874835673722254704103785152011120121222203174561686112324481643458129224129839427066761951673684834409473200003099265279291230708808661792478999865337858825159962314247630572066013833765337620552723019349919417146635066268655126388373679353288720346222118692315120833095303281401127297128849354373880276335458573050088153911225331676943685308304872370925985228419307073419233721326046072097185872801274689753416064358861138015522487780113126838877326634955495180266938190792922141019972025943438483638700719535838773430768520529592131683266510926387832954410009501187435581617574833548163449588064290227807379509570424924426797308600426681556452720763341812902113034389221620426018956449224850591610239129400918892886135768294458273380856044382666175215951263533618487484994929437103977629993479058391342318165322005254904857226366347048970496995035077974140663257282646646043083536981266687573961552053258902603143950091845153685600152313908768509359616257013555284660077808120872157197674351798739375507505613338167980500896871036927692754859300910992277998264014963654809383148472404652548651938474888389214206305800512050014088444418743545579755858308472121035095783158000535054001939451638871693482927644933116955091083428396755960433958760902994637071371688884765366088235988166019727373382641638960579686608213768754726377969037055562710438900732388023376756132979937849389347784757655828940572459999982507294726962560224870305951334861171237574470173809244200707367391958975855136269728171651756783635220952907702422316533633773658741541392537054983551761777475444563970402588106545957002011980618727908279866523573891412440495376959961628232543228707317903921026546185469137352651226444145078783072831463435709701250375724626073196475265193892784304953473253583020378581609295170699479459386087774755436137277070854227751721118138137788329041542160552814993899205897445906291750707549099056435347768617168324735600455868359890683419448376510174319080660017433016959923367296529975753118001746367808941659742701873364073124805989889509731068235269290498940876378094953900392909058345158988908066164859397361999458821769670883527177739752965698361058527308980432056608942386327701549311379613613291114882678278127160283635014919499416232383370557143474273126615983623283607463228051335955135947899361306684323315170444634450474877613495200661158646062456252488017890477510320188989153265028641276793761701010343803253207466939841427197299554641598152003913196029491716100687378336697039119713381134584308895782892486770367062973606963264493100287126342955359629092292239993825356737018656618535148640265804795121068359968022272573197690840621056844498309491601329633775070180898348734753022520633073046715851123439879699737810899405264823994406948448576448885140491713233580178915310450871486353734156702699946135943881924390872405581597799791663488023235235236984078175421126202012210171768496173505952854820118750014914622773426743153122548470364957477625558047051320890028859927800509037909142966115836814392564268836427777147832292121073107256171750629083760401724957289644599924872585643699254982699012941828517299373136710916304768871863740957591112418893202575749151629058369223570051724951910809992036047140953297693774270512845652660273441880955988931138488037384574995600287386338070551652205648438095677658360794394903417398923926830363517535516394139084625070739720356443765489013634170260718484211424208252658875331401314380606869289158060608216331588865610417027738083469290464653285596449473189091025373396518551741388059731865022513862830891733456717338583489651066867799317213524163481271051411296705982544384764609333753353071694279304742243269968580225646140594029839155266473526199134967333601028437714098517659641228522645684246923522944394023269011135899662792148421992513702582319120953964845353028846152756099322808027320867368003088510043445182877387391466809774769053549303240954877074980237989878680792059082057761282937059265259227225908597261429586533326161028429911011831153968646633201310372826108009303323510067384456837385200094682287980778241322421652217733000932064773551019774380180184518958322290715251357729767301613370945186595255361147325942954383921993608004817751778130435813299461112093767326748441425242878530246381399968701629386674720550974250675487749332554406115974897368101302543015463694567712958633084060946330326563928649293978350980086078849985104409180786753406825827005315741893338860525452350125068893264400731575171597877716372968978504247070259806817787214851022794829029443002332379408872655720849019042248756749927601346498114226973372772208228376015995646426536509396818244125957084626408290894754572710264499355916301433003792532219501570345058801329019624021991878736608635055483737115502967684049626794123243129155050093322506906949683233060632993252003919099260626145725367390176200653438387495060473961447726275121877745273959093016728166171062032931011944233894769873298168499001064366306635705357528148749933788171931751197734251361121152512440597066158182561237821021388051119768785149707303762530005899334986090882721758754860267910877532249223434126042089036032785042550505556845294583931380103573238199373842169448490998689394557245430600739101754593285902254356356851432917595976345027239285396440990273409529447765743262909370498462882323847739059936544401759555729318949051944838223043893173552933962450547617298359172666437670294893280736395443444421447188444786553384047139355348845409616212427395898875729947866430386835590142249425797047289924224386910079683401196677708696593987632320447275610699968908540962699495961460520171523484368517326335192724448515226678619322422282004225517459208829164093678717659612372359566626370851126031797156593108750768985425442979072950684302971656771763674751625282106175708492929930076661350584274561458288574182237418053823656404529099977119336890914435979828200432156397047870148475593950385729497218018286779029225492376295052787464456914555962343243067991988589695681237822899352810341848593268799478820161959128332091353107613048148786191424984979407067071547447609737666607211642240034919816842674050277369420917498202839938097297984307627705392121528161178331220009322689796465181128449021176166910568173093424762073217834459073503772402964334536699085397293362614393733042904805782551462975121541917227535119726327572469505705814155823573126619588503854417486564952282999642812940549428324575206379334879237479859204455156228671021671113879850468296666378320519978191610816429033161521271159883858942057362371587096728706503647797141257454447871761615538910043904247866438709378578052527303194669223061523337087391145195089562996855292032195770711471522463426972714509820290279650199550395877130035923576469144454373252223548003914778450710508031917888642416957309449728648800648403604861345242049019622446154156462292014544289121612677028616631208981168495077705401295772914770030092061421720227980720398304300201842681538548637019978049805486936893354982077159171904966350911134934669921413511170935019393900543287241513518302863926306464921944986161548351335650324110163556682521060427021777204069298248128033807526600162886827785154858539796594598418162690965744711513938473689745056736457476028148801146626758671636882662528881085268298548961378506836888394101748326573236316976380807970621141685951506779503213256199166919977388652279190956456566299951273023059995241414342460955966754101627219792306038724602519053044507136019665472716470745145542797651339737110620664184411420036091547001252452035724853053216089950277311447876303942525016035815479756371794049216703925426447560307987643508227691140150680526072701495609012554221136854699286705723790523775492238222047034254144834716387613867473047501297314427743515084765502922665621567650699454002983257091685792352306939259041424225376728019073261851560712592769350261780055841975862149923111688221211107564607038434278268412117070110534515458177840152182117000798573993863650250121405825184305610485488604257693507342080328162250559909034513761208745967837601059702864086616397828734842186032160245957952961674438225658341398851210708522138207530066788012850449886880186709281155407318511373742619149712310580546076475200134116911754544340352331901729223362639083246747647411045710536184657041878618648579692526689182066415335270675653058735129511308166952922677409096562538882322240163616516851765755736131888772049636285144694844966549707676684831839028852472894195560404385319086998280696986621420098491868087892057133428690946502879098910976427371284553307086495748199629529420480659372148566376672595499149587336547593985272875117645306307668518838696948160449380214200991223694059212192147332213822244053309221888714766640452184724257384639661399924051612181564106098936429655935795276263305920739088532348281131295858787963922485755010188936477193428057037654597207124499007279496095710334910153400791160549446940963098866639212006052771767191908453800864649275559112662565666943967018188505835993794490475797026837911589179418538775580683814771963137553491947447043958589010832555926069335058216794717372265427142379279612087626358906951823177567216745688719141877174594544253280588872512647316524870477676648591847154375116737226147691170916528302342426029639239345939399320151122696512959054037986702834939342191338170774524991581351464835822669038473035836765936775136325331774038532308991659866119466140057682346991186150427428982224185522330787897529744019693679022734091746849488353488422926422046651055725142741488337251420110777032880133473559192245395508984552718599992489899225909343517052721886478944355299622595616075699948856586268575797295955278663480881615153798200847659506850033009380655290225491950281520554794844385749285731092892013013268879312033349222545691561306123748827601646433719940531288566551547584373236951031296563442580213718809203061599221281850424800794396928047031322034375191185296256893963674977754776092509551428617032874733129353845549338352139915204262407168734664437197769226969220773703397146531491202542747816027466425819555518014951095073982364842706059615398608125579546022994862523407819313868490045975921213272579998873471298784408161236104544793169149486882398174214604713640610272990249364086491045313039105051934000657613733110043678181675466593045945795217556813716458784126045840141319614759944128481377489790559363604834435037544736404983231018120485111522582244693042966673037225020003118075997517697619254583208637797880847979332968234473422258391544014127965352523117964408941577334756855028164879374635289735679613255117575839160978594667713482246655544265606014781691977511106742105676293536745018552894326020455751963955736917764331426804238191203300019017443144014004940637984513821936092763402359054083740258191974840357797438119449818082213301463046071348385292153570784731127042292276226577922241444954508236595745290780571910011455049812958082570713539438657467357768062547943084771393628383142223903530341733846645156655437228056958360419979016316848780657616390446151678103920484904232243762532045659085912333811291247749337975949916033332319194875530225659051654790336686739044521957798589389782461166917364089278207156914038029747985231039652818779795917561124348387390002338359651800124223656633739242410515709614520066930168535249803222248654142261199612458133805320870882853507955509476763928709215268080800022352068627157757828815621317838193453719345062332893256845221437390434836859936552898681480850834116169680765375787705354619780465396307666477874468582240205688529903460209636209490465358482337442652603972044161617552238230855436684582198840979643968296131458265971789038755177820013005748816928241568198186832565957795189672819128638186660206317484167476101594599527085404851448569560497036976772109126283859955905056532610553058746101933667248919658630279698090108441281178962240151383333644665614159842415663851021723403400359477132145590647419540654421581971835017137155661811166543897752212921206619436507756780254910715205254532926757080905655618768258239542444123551724764764222345050600102439400171858396172951775848555251462232681374262017414709444156784876692811419502022538514759159234220467586611905823657545614105024260830100864781919095456887645755525736075362546266820048210857732258717966333832945648489605568222331515476413614811427713057496970626178912899054558763948600954450848892980440589688408503537486081728454587773114559925962554251354629611269641253110689327393269100781381774697871031035938292336531041675036467921878853895620062637852950407322410795256149677870120126562758007942627081140571934559634664192538878045535563128231977086361967774405661913304096197664211750144446058924857000399527621177540999183159371279667616807080141715261602825104333064052558832768088186229258209199794971942475791037251248041778587158636519960354144928978398126309352972154932966175073618475435494322222488273194555567353814113398064617372555085782007467643467940101028454720481781003805679449533150281025973730108028929746929731554368487240794951994923565269558450745534786186673120346062257792673412648061701070681576481670771759147703975934836532798177227229765433164242037227611619067825558566452338212194369972882543215479605078548088042104186610057313350032568514845777847924119828753513627570365629140530517808852266141529691564096306044933739121829782487908282881333136059861807041767603620374351017439076787031256154636778550143945505545415395258645097694848580528305156773881980038762005185238148428203379926887086393088916645086738756590317556834833718824773713570368211212933917728122844876111603574635961299949333104832861073568429809430122656774429156357114494095491855244371936798891773985662438966797144259771145469103915343831742030043817905182121995870397247910797117136891670383826832564237951974553326569104217762509690917630798036537170173826379481420080865263809536981119945646279985834970779215774638131252246947036909334066503590079429056948803064252097667354627861411571719369258500198479903639059434665655287332991621362112990454127281164171330063351094115653547419285657435237841670465735029143116389173656693533366091742869997183532401509107382649970884822643981125979583041136174042563463608842575879425264730597113950318763907870865727984933389766618045736220840211700031052886781098683147944322824526853550069627525636971548913214154408628562185434892927887555312811016362366560486032420604690392743657017956613341991828182895065744787988111388930274250023997592070304382590274536460736991079111083519777658076395382598123051234000920497834418577001037849741114179321396865740002959151381300772183214570877376145217899773190861704408489691829777746189565489971736161660150270227391188436717223080811429506599657610296207118875025940874435769945343907334139203393606634814537611492505097616338304919243969418548732523543630573296833881079236321319438637462425197457101723847107136130459354437604453899750322960473892195403429543251720331560124000282703452986131364564082540680261358055666812052824367872648896953496624570612206478496658015133351197094710762030480525603333608086350791259107357099825401909795367107708629042722057995199223374160260990051353548927067662790238898301334212119932295659518712793493637415941256033691444556293530657171505197924919614553584742957139429764623835943395792686808037010113349413825806454456306454916834403464908729549188401091712868863498021392958208493910529551649753387954813228097548622152393609349654390664039147139576905577502729527421455801642778978837755815474664256674697188495214377331007850887499531638552411174340211724313386547039146477777880092499550918508444366110361135913891231405136443887580611387866301498843962670060678681302066769823969452436477826173590124515166576145326185458723057065656503151912228341068199883773492101445054660734952002886676550486145866617844928246586596237569092266955676258339694863116408169793054040371018888148703187401185231270309390577324227787291572625670507469376412530326939825129630854654106055845347244183890676141672110347649986593976190397566214094124187100131563637437510301953047373398075719241011170251042248293006593132863495471966859664701603509025929623628451745525534036449322252493450034938217656915375256507895164092204300713470475344568200798839800431868091271360651123003600031707859137995494558609015740244809979864527316195808720482959130063951995846642396901145614616421870136125688297010225755400095744269936002386299778060016707831224152563506482648784030743640249092637484873514605214768425144273144719404390077550235338239721259760874972060655876174461862926509388934700949161306432815284161626904180830609712496397692051475330498497335807840451723830299799311417867868913200989201824335760484771843070834307064970624893270373102726250940337556315928402128851353840956526521557446105053424189314244403421632409981366219241477705778181689335816318263542117470160791259848050982942078731749746417115029708082283120462386180821696743352689086761930322840181816440369912524989733744817947574771592805370873741372878896890952643923840558871774928750973722598746741468895965934132214668192081571953907704541037265020992665506927865457423498998924158919641985859123037696948830193459991606569998713376479340924243543869975524661429716440778045215289186155299818551539486040575305875451732257497642346498434780246432157965707626404455700596341389358673499623332647484317550725124884375074099668950322803188111273750798914665294946083935924383603240355426630312903980743373087802119480279531168820257675551304231411750620864561465078549282792365788401187031871985159006475802322804142514745126002383356425845835968307243607368950932818959540856313560280003889553349607853298543732547661900018174828693069860668887756628977786294298559025598598901211685841694443526371755739617797846889187805697838369604956952875089128298381592011506018539651723544690480211925574434294270835853850165395362175209719019100514221192086402870505994451064355547348233922920054886951742035970801955781319251994512633778501944415158141490538661671844242507729998171310433898680124773459548933118455489668796327010424699274680050246899372765694682830249840324371959854069565973606476799924149299454734224323327838036328188081373992227000380525086344132673676152774134779028078166608827199814708706937606983555764290151387729359740547242155208929705308226988891981409977042376522657575161199470935102711238703060804289568386489045664681895570619790659573032245900614933297954907145353845758433210533463609629618160366562426819858359301422302751178431956144857096240652374752236823987234762703517845427492193335975809714548520991197176198440820820422566564863589464800296836081367504516003685642387166200116054453611999292492180546202672131170734302792601532653786781367678287854960058325133088771699970970235806430905301655100293418002679595860506057711496639126987671985905897484405201295610910624591457885700580677455516077058956345555279564844698594152989652896455202056747930133887460606532330645475074830833837320618390379696241593078840771897154780992467108860792314725742666634177759750610081681802320243431145810214429442668023336107505542132814401300831038749451131365531243858049254863518121544815395995452663353805386171291794028116770213318350861380299136244739410715520734069448158106109381224623499633184564682441270304516946114757895741387326520133292964214198294965122645800189034130691113096179134726500279234604047335367994367772716479861817443950880525436228082927640884402741910814955036126351328401158049294617510013755181691261504711873883804703381266346639646768720446424636440973870590630340255251846657850289231990632582696721620594675767657865425799832283840081825750723211422345717084784526844378358727182798096238947839523980692473880266500972032236975629753874511486022498650216810293202351208975039760444087115473362064235780513730242079242862682232570522210425602772765105130715032511339956410373229197817210307020963736543644156010464515673072039623138425245263405503473592207921444948392182047948935953668313123403769588886900789834068636681270085013599196589776785234340796497067154470215923070891238407325452034561520239985361249425683513365112777951130775121332891871968643573693771879355882232397842731313603880476690051271469633609659899999511446550184440899786730965105191957477683043620486636808196013136446882592788685595995109336349198953537915023857253535540251523026715749142582681196122229441226097890164164539309180029555290657776224550732598594849254460832035539696045057301675144468432882688517784406168621167341402953349724176683530763772237257845223331988013539347437721691618675687282647728694797828987708530315888297898172381017606449959380593850496127001487453693505413231731893685061637804057786548237582546442508820549634617353637407196839364639899847513734741370454282193383183804451758228822741226008149626475894754263590329412236224662034734441991247532007309873327114663656048596951814588045514301021576949109826862562738570506418367837975562608834821535864982131573371658567451691041894169759111478802119066918704045604406530175864035723579490082969428768422147230156356480662789274051177642986161716440861118040709810978147029257179363681976566576755734477427564627334869410447983275637072128579716353418353368031334828610605017974154737279267540807632478110453223446377567633772336103691583610058963780481273291941425426360379167123486950000740270848836494936174263351385915108278488416107230423454300701413679637137559083594944905990420723263302280011008758620858768426282246885441295546077773318989130225116568830511630371803811692778006517817866460374398932087266994232309549773362895602577155730232510950957767804266585098943604597643987132074122071204311982330291402818538417834580302992640071395617360017495894946911608949674566926530036327837383979606419709136817284643466428050443550392212865948966132714078885269498858652397837286014603373857266644415087151890925306451282636687765301196247127089661600726656324371471915578567560798685407667068754048627037643558123040462117929778078239190913391681102929394348337632800243207894864602224759003678294546280724299886133203076699134203373607132344252680795092989598794712320005134992434625627702668311614807713016645265410098578819848789662431395960262914645540651626961861969679225925586932806344782213901221494997602253279213017197915155107710086204258990258791795288376901196767151673642369533520197308326375998286202250266473844669042356403751976145452986213334998445257418301042301760358623070743039005005765157080715469802329722189014607903770772435985962617245800747223468202343034195542534135913924108646315582526942924961693528628010517680012243793654880871419928636856642072385004729451844147823768474350623332744367471920682527541172062242559416858163551629753208992503672081492831796645057294118655342133235598653242081466968787021415561141468280031016117623321006792484798061807104745324355131842386727223790617775628097470584258203632766785614518182374533000157528699275607488425997591754160377742580390304214289004098124767521559457285141988802275632426891560566122924362751636229540490430837645080340338637152151018316862566602606986189898880280986397184277507821770937527904196490567365018114858124872315400788833157194557548816184322852465192706885344608400260283118092579948270458756888833908500404755835511315593027526024266180855692729876248092637632532189968379338630149363331114894908369167301122320182351426581149522963809909958959989569489032154128468325385600897934814678644837772962642512514721120093627866654736295010499250162806082241318091442950386739419311731387448972964083844278482821090221358435402330915110740626133192203897712498966332049707075862446957493406731555032143578253941956793107519120349579558763162311441906244457507372233152794383263940520910614912347155882824773233367581324699749664444872907669074273427636771388323124674183400952012105848099762574939671478050558614497306214285364855342210207840728551224959528463278452819591694562880464964286698139915996083249582444493510347841360971471336282236889251639268012224445353855690919337505749583113140779978590796421643908650189893004498766847587457620709981399412724819236971665711014647952499549885759063003796297791210784506768453664882991816760912519863507705315496428083188010695168301902973759244952205749124374540429127458332169139657291675487136906896866829662070225684097948899472349494568019958684435480210381414516621976080695302133803467399506664647139276332193989214018544727731942710735926146127012895689167769193093405822475891516988343510646349483133858501882995100478992031242971041849358146616342112671786304381069137143370215608036722745104178537140977889553882180489602647892523896078607212461610206393062140645213552316334530522123435573707924159364583177747913404866851195458765161347445167089311769180034794966569823264267584691001197762050857260788250644933315169231603586957993607394532878691347207439503361627161808863723609727815616203857210781173669241492126798115438545609376109519797132136234677739959819902426564777469765081347259009207727781341370088645713617902909714476393138244277323496993702779528555745579312828655871459504589633983109965552604702211073651024568296544072286684161233174390988433531397037226905679771686742150094398456891430699414039896283349107635737648525448175179812767941770535558883497582649857765557998486987500848781240729054789162476340749840958590891278608884950924188804692035056192747360387855323344877258115341469955860836988696627175205502980138574996857808622602119379580819186689286477969330429192358283569613749013569374961750633727516302340741978194377274150033365567173164611511997162035741339881973808641646977636232143701244213964519448368199049670909795257134373051881830595706953268257806741842266090760548620755544759884402760355124982575663484546209113615195681266941368656675124879289006896376406127757439480466229637469482267401292555252283043506909441566961284225059777719534538223736786384449149084109791271896315851834270287742230281809460027581849044809383303882514973990785927580018093984694547278597494827241562277081209996724039637420843429004041434567199545890013897928368491540041507009874465041793596021881952020057715369504594540980741580074105683332385338616782883135197288710601596507744232610976911903381390671226197134459011831517009734489131770396839949001774126685682469714316062776176777503926461957885612947156206918098860924702497806204350267381408138921546249791010148483416324296773494418546543436209408007494437804022673525191145151843990810729673514567929501884698259821041394622043077784471343497386855242144986054832022147601291438156759915352562578763804556278259899371089377689214533862839468038895966782229241220907442095405348282975683100561725782832158025470668045636758087552855892742062080706813973372128205575594507658150628843610980601442687258145267331439635442756008302334573881002138459709892214028794343639055729456665017663701701635096884883391935489263144592696323380923560649712279028306848099592554934777534764698472419950937551713883970693662188479692108523373427570865447747508306341372126555811311922449982473777524412508161735085214731463423230908723129212702438024382249427404800702546979131050910864433945855763834249879019197187243707655816599800095397925785685906313343065928742275229322673633734243923614043555192153388922822513572622372224915978905204275020276296380261223952911094888865763790604421268813155405701138494523995926633520821650059146719534296443569319299043599275703701187194813880768766078391877133508672963542589797871814387350926702063458486713155502856938927950207129013548872070974696285650588630421544269684110781814985801609889889319314420302495173565697504181944356454313499285549046246005539365442455320303116158865256792886638288309385671989307332424762046468534550869817999727668009626127931866133923517819733678592819097288513635034958590416249982815543499810872845971224039230373305081083017036081602564442352497798859667434907622851947253592185812930817066430142335389233359277441015552605120432154189418250780139713172376063496502499279855141460310007457453578870418199184249867272752251805792498545126217567383959524470414926129838992213754070275470765642701635762366214043424434050916389258909216786656015097532592608843901904584519451454980244874262012280047032841590630736316555378647000694673095975430686556798346700369159173035383823542327532809244810898458806380058875404502367923888783880050356882392943992620717757050759544033357827134783994092784653620574541929959633238811340169583614493940228044597695637764130249256527815559223101598109911597896258930732667492691999607833862025503473618254065297273953568219399952941838160772527694827474740580649645945940321933163159971714599773665485798116041347070095899292040963758313692377730372773756466996047928374678542261523373009082215570738240609045924656969236633046700719324562574510009817695039573352042350252533855046951050262477003589833479717683830166155307365200999033330521514263922149633099865707767145428176317575472753483206126868394886001256418045213643289195411246952178406248401017813798941808707652165082766114582137297165007402988876077948128316225554047629401126633228848454017456232763321892108722119506258749531984602509535793532939668994254375587008080144621428963930953596449681615585323370070196805442106928106906339072522632004741739456018220846424553447695197491123929518706539182071902230622414226791969140914604361901670291976431128573050677033730884919757233190346972112870501702534614519794242137428276321162814658965334525533749074470667853547499719861782691664562143377574546363058357071208151627688544769320853344928126461662810047264781149027938027748775288245768228027288839982926966054792681063125076886339194698917959702784748799850957536799821784301394905269358908545437215360927939004062337924467376916550855960544328161574852320059770866936098418164128204263150790195870161653970118328632870158969354239228496920266883615139916919049556043373546501825265785983615875635803620484073400363774648645645826796710436456165441717847189005654005583252035580358653349070636373550345147578137791437575333594678704560125604486468346947319849828702995142254936519353317457041699392694809908809290374969672033789375611971262014397746687098075263390703250641110265507857125936782191077585156971724354582370721701865007632668713588568564768046247158862011020173022046719554057463994459986760813341362744492970810148874416532810558281408987989579884926312101748001583295348110065322300106999429654479815098844699747804214224568794584341276065372911320066641760329238926966092176421115258256024877196659641592448430370135006071349301200396939266898109793965095688361551030279479106254758482344779734963402520234161766118113114439695838085395713644141949259015701329832361161809677140012412164211382616926181234295313992196085943067175228725524853850828410969700650955882912601777317815736020041404298547233647377729251730927385445810912212921317799733664872357407766549877214770136770308154444067222679822806593598823487875960599399290337824433058717952457487965915601896239487105605641037196202973688136714299140718532739477950330487970960236220416099746734596877314938571717752928852512366585083013325838713561788684134052587027423675902683358709032349564826881426921021442426321999214750618065363884397747204416139057806494666058977271016769497259941744825183010831326548549963229693642207334385716472653496275266383745232778238404925171492834436817303766289699834720209819386983828865413873894277817137999857194394121301721625601944432320129867564180426795241420489197469807251202940797704128203559866043402102531537010191287651001493444138299134731998111195196346977234776463696587495345018260075760749908974429753318902032545651796892474732730436552278369294734047424793415395948345074634821434952280901112613988152406738015706154458789150225871854880427287225772517364879593655000409871887908461513551187160334169874790237874388366256362728247020479638117560695711347155191104151296804099610744846141289117946732065614177892967446879188110415991251700202067112644772719362999948301430235155003176800527833421776066949250239968481161574388888700645461506845204703214834476433648282217486259191702163203162598525527860125226622724496339263687844240478886996810398576207751393816559544815368466320763162731305725320763827053828675553714826673508426358837262700214639010867446197522199633661796736636730371361900912887515514185952297945894352167611723777040576815078654494414621320989503445510281587036554337825830710591870548439877670390521325844199441295074810402750953422314515749873052876452797096315644216639991803491207753330862197159433808012684257573906987987719103701111293177604757716767429158254026939988904176283176886290787017301253412766830735709844689088591816183368435364400801648158830835603132244267748773466657796679711192034316125576979162292234976044640838111762889105353785377623487544488040889750512284901336444884618890622153703323374442096466528758305637335701468110833968647275748244959052194690418389023910096616357841232128405571047203732053616309444749244849934412471016599948853341567269657836995844182800601747943319316622878856748912826786748774422971133094986989443688156256652497273984441693746971620402328727793262395915250758661871185767927966716625346760623668714974535571675669495618577169494357651220647259930726379368982742980619802961371385510687783216021193374899962783857467296644451930325963491448115259020175724612474961087558013836527233996762324749595877163288893168259223496202095688759451442849915132126935441517534573306252595451345754250386247047708763847272731495275111153691301424500541706008410471354917190936204520022304982964792665161687108232696310220438052504461599478845436163835173719045535297840479218781664907521342924408034923231103959188336045578647283572468534860357334895161490558860293795115093117333017420673198001739002266740519868270202252648882062304794942023916389830724324312841555932282678737044802073421699255493863752059398089484008254951008924077783614588540473124214509615019894832206759021965388343108506165994453088912980446842263652118291278712225817848892849167437731686926522082502067745322804431517669004580272940526689056680656290294710429091307822899443566884625107669944666985917233130932009996733662121671656315994343824908963964390827122074595109211778928292835248181681399390677699765803915347685936646196652426288895298648223842173557629377042031255312399549433914823008999182124711898406824634967852799654432826086296473776425453106752875043921508303187836004925884470787912018506634453046894218993090106917351573105719663467676704635935420744069046188162516822880434641337669265830711518170515345011506356168576033632662337468180930111511981388392508066580014739908193354337492768011386081019533584144248013791381915050249877011415615309496049674874499384224163567107008099749307869479487242233679560125243166860820632863211355346496323773318838556031357453548640826236905214216819523795656140572005070051212475057774711232512907973342596242820817698958386719398545196862654934664657838014282619298788492463739871804065872376898264421476908149782304105661108708493301449543409638905146867396712192819074698873774275730173656709209833607498847112823438322377843752695719772996195982142913423061706449024187031848423519539516422346458656780172529236117194504777440243466781044002791548178044024288802067804546435149599585223246598621355737001783210394266751238021978966599405545325154525932118742792402598582944571141675162609084888173001988697562489415396197925810320054543434705375290781576733618180674827092200491143604490915487272628702784455400984865485120669568828159560548373622487680122228389399427891803310799159226402523898893701794546381411196550133623820709515897058531906160528499705233880485766427611804013454468242160492935383638616518304230267064292590647851940507346170823361958329572109157464191598186256976939738186390162218680883837018200949586347395033880496407317147993944827483739480169033557231483273756581251871429969568897615949950313069191989105395590301948744943154789797045775125072801603186315766996266841411597947969453020233400401815211282587316708721148664254504424419085894963540155065203823534395072340616680038400222532501335385867135609813301843535017139658484770989251319894702209622798670422039246475975149329352159584210696753672118111458942090924853936803730292921769644059741597638693620554944713498818387620138727506847917599589332669118143529938292059998769623659514932308200253816256188731970457428811617396430064573615538844387203551664769892646491363650838533598809976027296283847894453660778699795092519223638536599070255449299964033751862040055966084815592857423819349390528038018761777153862275526635207639697013725312287019856266361349214689826946316481060062358185947912233701927808611133503249884044903868711215327888006471598694291285267493620732934206708349143685206184393874570614417689700273695088636978820909274710630857315081811649277679149295426596799222797579682280759725228508375121233303619794722164815184708260442378254384737343072911667009265084636765198680301483966286890005659833042395842704676556922580237131992646721226284598921435420368829765711849439646429769435974858550771254354859835078026831253453493499443330229906029391875283538996359183158177251387640084761982037312655817506989159955567900484967691404012989976034752499247209844595080923873462307409637813049757561951743970290552103732233620158157498101055782266132670542150748094326483892583481592355231834016717498074924932706317292362068404648323846134109141632053889444758726541249710548926371821542612825002516772062138470757071950338305413600267094523020418819499565337843261983124094618748366837539485807599433614357637876086946835909817972134455063382794013161193516652505249290895779509661663862807566489835713359177185170454954467769138993707096981614596635074205949163871717799797767218101752745750226797134133660733498243601918058487927474160812027271212261322899567084435302502064246605600132650615124167003256360894067542612895566152551505632306978198317280173911056007982023217008653055128837906176254762828140822443979893391726281656926802513671172185126135102736424870010521865096453294581447157230952236542144530464409499224809009562497569887467733750707126653751990735588369309320644205269535141442462432640812114230217705102753722978246744728918598736581621543068595246180919734040916356725603845143776623525181313284249030688040159492199147658789654950239273450348331000752382682828092325098331819393193634751795157529288366523452823586392961180014689936691387821391932760341755707602516678778813045717101340895528084567344266946104149057063648530949038432289730450889113247443001965527803389690868017732056851225842280729390376914515898071463859929279117246357059809939798161719014376759307490108895816388555401077296576807710030858829964696880475563576052064287920864885980476782985478379322726494183269753738960348780365543879902260991999934157293504331305688257539839110122068290756000301471032499856056224047957993409773004034989474526408140015027300368113717656089875654483960138449753186880999864227675100852348534328107299737841544246994758707761401069656390316603203598698345777146770836060202887586487577442387703127624132366465691510886366445603071507770563137292538188825933587364709137894745399437084207844976411441802950251011874065053212603718848762289976456197434758670906586843861367927632080275109204733835008984008287889482746395809316594928240223869150405341117672969285507171076428223654485600018203675331030551208356355098882583296621611870046054303188297436878281771512149238624185552083956274445164956543384290631610380610904340240176968528579891555345691324451675311725799602444229669073236703878025454926557277454773271792345924983470025543156385199027744345322993058618631430929071364206747865780330464726062513980395601544532647896369066629688357294800763979988321393619540940208905504725077943416964229545778133107111600804465375781063762452966468363972191981346357395229483458764318934797705481710448575179907668357811317196994710863764463452253481353864094843870020977003772017859887027744593057388527339506244929811552853879945617295018406269251311208419180065301750576825339963526318841447616386984123639271544406376024372207572865416236378217636531721557150069778554502218915446492177763247752271151912374478051295029585539013094843710564382964049903212529442271059418837035709872617743104539270061281267957042739296123332224023204602726441473686203657353646279820135825481863164994902067974687201548850265761866400722657100096287545678334073431708428779405214844057234781588055807716668992150826601448845409315253867230663488666153922117756876508495427278656841916147897267053854784439499807519943014556532795841266464650983047545653124538494080637894117993938640730985784631141382265566601788438499473687665850952609097709593325263049996121095910483146937333939591502108603116503990730300699838366495485034556555388073728842432703832706497461816316061165114513463968004517502020629091981455026882353100571271727882017614182801853093188338103543623168318494773245140944524270887573234696150689787129569525828003544146133910959416872962901389762386568799857567464160429853366648231857591098905224078116846840068256023639366897339748490861077039448958178768594014901325187696067429736943780309454830391628133698962218862004234326075188901390710721368026808630605630225402919218455880464080532931193083110164792749598304319087278619754239181543798062115023345298601363862220828763884729097315207273097784391937136832405562560832604631725909314041560359346323823878172179279839337946779574609804562155196386183412839788791273255968263635952996171310885894414133569832607174717352106022901998032577817787692031442805141434081607095711259759548320328498178737556975835480080780251351788876567062439235937857752281501846912184307430523062401312896276952777543837859302309995420274753647958295132433321964236081887872259652108699407573070947808045334395038310452485986699581804174611427302382558095226183935169131897841910426485443562489910903449600531845209872265603436813299372137079122857800918192383913633441392246092856347798522791505695975734349514857624426806243383297707523002385781914904121271599584491512728468888073311689411507857849618928601819274818303780116761841196750243191178866713481998615820597657109740793287542951018635366726315506317596991560881213245557139322183876939108515258234527445845793869106451281243430471120680565391702665092379428619586061153117250110966905653808636573627246892418496310992691168590056123950875367599159199642767431193803396095751593241550031508315074231280262536462911522498393166539291444158761742522237258539225004181109380042905774037332186440063250077534590173229049908889353916161457944958526247477271736721834913432714467838770458360305352976838410088669804881209281927073876106863133678721279670710128489309293653313495311324893909959053802578713594042123803357721316593383045040315282697298329628691192518535684971599889505274122843509523840837985499225612961879202968854025904568240075410652277345107066299524123782509854227546931892080510598511301954353823947433366215705049884384525362313689746123499040999012477845394539544746695749909959088984777605964175996743586066681012360521907377162358591428373392734033803090728109000995844870695375418623071215361341927519134058245608143724943671287128910607638403485938649190247934761064315968051572875373220879279008154827696405694870358553275957947489685650973413765796455082883968391182000780773104275796297985825541865127695280591864624851148810822517700323519948924407251236580723986088995515186784504274706548598259811087374839614466686739063177255562529333912375202138296976780794195096914147296249818673585091984082222731790315936343887413487293243045155633388361272588551189042852322570823671549551701190891075110229320725547374541532207454279938595953316217406952014612640528410635070423870346520597597945813037677875176620051530038480745048171069626466397377562652175983466227268725232556245932178307402833653958034418163865021081261394159127687124027690814617727373210557121810170377937986172662393013744499008337979114896216456109580316319679188336825139200154064665920034716916379129558061321953637354327671951333232333833005950352423094000860844802190750768968567271180342019895290263405691583243551480718091849122553009314582964223340468330541780144659002794121473069495431413347644264720580275435765437788903847281784152830716588669619300288486475683985604042582780228482708234160148530260140735203534448634063588226441652441435578896482765296607283016763948383514877920005205121689842083256038076313078106180981250015182951714661249150157259496341691493070362307521260688601350631677680494699247035632714686055923048144833235305935406515066375631891068462702235466576634494869618961406625480929957764280225279556512242399560130769849284016032121557543790178195661666278458198184466972925328787424456352096470806493936610248625181372681450251119878183219911360288999146006403111207624301990621730803111201456219584769614814860531577675381541963441163986393136921626690439414367482209290426579347407139630787919723599222643950462089839723791858157492678951584570818725325063737460676136256250762201941212186736545872581090388959764025736557499181764482337775728020355677174983932154687282506666441076595240973034260692779922932142831391120233024320548767193644358035065351457067163008525729562354440305651899420954890685849772778508484690053417619222530589278880386362219947965705878299052594808506992522713935070306803846174539413669311744336529864321408559450574799850621785751907056228940327977431411255511563573034022975395811979609388146283661138059490107523047362313728005963706714328346303488905048097498859819689026141236637729942986143362932048301437998733851403946713270662548069181911994485283471677269918862576115119900014444545049090652233413192948769472507620160144453588942679987177815787056217156059605472669234892862051535864077513635552361984382640834510644207728966024295589494153996035222187607246443591019466634464412891831533172135581556732416636382869000517461810083738227569493117090140604310307805934839706981181203690097461496062753588343491441363370897012417038571027959504544422499884066009472601143357189625605081621848757158603083104352692930654555532021440874613316724037364200121237325254519115065090930099707575907371960283791914958167415167550021726929913681210663217079401214359252711414577555089636634557229755374518239817058531047317578827936009371308885604394408908557574350462944620239175205992848182459371921888798937698247683256477759552680956333765197193405150725430009106608721635745303493412093869233986594609921764379083498711463850855974695126492212431759997723243027278141794022820082151163590980089213018676976109722965146371808942194535620637034761066815884458647781506857983979602576548498838347861686502377874804349665388267356701932706648057469037632980590292350617135083322601976359008096423245386005833468396190845864589465290968480934215790289821988207064151803937887742448518012745010780866224607349653149829835945800836399938954310574226994325408513646481402966286240744441545581813061472312272984543626666860555220080460269547050881425514473988772408913781170180140207319088847343349435786086317080013282771614361265452470630197871170136167719216612775506517334773653076117166505905920465374267030740460165402965017728279781472952169891989869070559644391832025770386440587088911944131641067191107414907683580439559695819138528624639287057881041488424838078924574644850110509193434436463780139943859213879714139720676423816836877654070208791721615402294991914968402539774042413597073266479371199738508990387574011657524579203763696582398843182891396580719218067955419836428702893251714950839702366889090596987391318632578625754695984696142065358654001549897353173728294473870335704207452322278035677121780849038519043782543669908932117832467060853146780716934516018548389630819242295543374922869992689196544943530871163496943522108679616821765803496368234536516218785028801021361670186025458346084194979294856125329203545060455423260000577173105707754285740219235371213579962310839066640414655320489852951278368345011986337099119411919146373341843621570752428784525605044264906458188213074880255729887566926703602079619948395869135749530148735157381315397212541538045728589357261970905167418808066830639679717509598500470146586016282869226244195854022299942523807518102876496913824260608340498274227649855755665050757354936169132219375298624555424532665886355960206951541105185691481502974258491883580635641190379175694926640922995875659997884298208626689699877988042229998108438596532774499845467946782059785205395719215913826800390487296480076930714407767887162415743939159480859893272716536010821330537921082278275028571255068065475067563422572603483540357663105130834711171005428827827466410047474636066089510370449936988723951588124307467294274087411332731276906287890161191259936460729830870801892339881590061460014372165295445750579255613848647939378558442557442470559098941557571879378359561427633194392436288638267008188148427354673889780511236587902250573017525723411013506285976764281860058293000022091483225022042740613009963750691627862678998114500686232574324891326056695725626016338953619477052797538749062388487913026521144075303243930534693328833128019742880955241512161949865624554833777133271752286486294962949947145642116496796754640693254880370889978422682783453044933728919016123745425912991337491373521476561629688032956287241551366791845998249573386313219048999581798361437372265226131259850377879765026378305577182112417754736847896805464485388259307517470959566894626543987704738246525141846335393251185883344581040421152650739523637033920909575937591736063604252005609140104715183036441205101309083127165822604378400198192224074903499301123637585335723977134632540791407015343283621057454882917004911567450363786659678430855904977938133523127640564542101122344046627787007131916562759990308147116338644198833371918834103109675712397895446232756157185608533768842880411654077997197463289071987254735434410394904705456252085278896370998437553916407431867643599653606403238995350520793045582192301573057829539808852467277872827927946172477439349725244045334568650670338072766117787816823458411320560850781052289049922061220676374726441449400934057477075550722582482999828324743223730795984166439573543688437799833951449110025081053183923145803416691240712171316822574049950584829262981226307137410369913979792297162474534686215195524918471668105079028360205778288251805957526976283070162857884321986325833707530971338299051602436210202229984499389260384530267530162498716244702828952105655825582690729954340681513300904929538582804395431873769073615686245096970526616131949576778485427811845057398863900923177971170496568692294712511499793278710141539099950249928946188826920873792390499708278900995320722167190832385863884471805385604108804654557024373039229727488811899529374774784982687322112698982413070874463855821505638472826633051597534396488791710995330042000354000198725123486469422086264344564178225217513163185501174124067892249013963317411155494056944855569779969420246781960723142190464244319332029883107187248332974579116212568564620178926260434201199051559646130059062906965615080888442063415318250326120554180451529169219971037276773115743518802277670420117315319328887031608563981424083328825380843051675580181914681261688761765569826523858150647846618209660274886011188229291115617354337951733196188970417865203969342390230673239229033484406281877057210450770756742210566980427812937121286941597869467976184295635868917597095186126938279839004618664373255263152874126947230511247479157964332812841224093463290826169666046079192754821963735260026502876171801091640900724747029322560529657588094661783325856577788316446947828101540108530198609931936766068112544285593567613153240694316668078776219364306030346852370713000502627585411742799080862610674201712603008622683543653214100249466229810656070987967570726963166522963494618044691180527647759640729503384878976468970714859028414900439771975846513202263238727432078794534256956876661349932083619767872876721536754755160092306077623340291655095768519832630893264991039129045345355281917221688647025312121347616703720828046528780478708159775176505369668194621747138394204798933550991636332822358095178197405902554910970017176455812378591126190793781063858313951230185293190784123091108083942041898311179440123047496535556650394334736822195272764709470465604764438148319038165442421488342825108963713905414383346616270977664374536392923309089808440249861757625550274089292426795651851335374609473839204400250703952959541248026582007165049062690398658275714961135370088473341532976623556291333221688954002673540789785899073819057612897748568761323655365677563135571693066050801575579672448446705990864737182976981531823205245327158832956250156858689244829477324529464581925287534226691116258190862492356875277956801884980860592596893971714502075363098418869910741712679346209101831210187573821080574703074293052389390787097096578714998331587158278023181535270977673106143350683189728375204603352806256987352739211366933014484401741922196496217011965112415070953140690498576615735477699782914744592977013659223396523793058359948617050254086919471437179807769666010263313035533601940962173737839710627324317292116644721312313534804805680788086373965494765704516565291149477675652626266291059936286159056652939299534611163938067453038908368269964562199578052326906422462132944113239886642048538501583629260170927180029362499952761597879146843374930912046863774387621982893612850788084873557624011308688535597805272811254527523898617954503835317834196914051480749294995210822871108065309813962630579392279205138518797180298220016889437820477319389109292187787466092063503150458614395076611436334510473266984035863582635875157819758736081284967036996291347871640631666924024283976027762264807576755022227467306380504827315567244692792723579358461954619531524173026687105090093265347241495822449730400567147970189664595181780282908840885569041548279409459465925452996648643902297655987292415905755016899479582556576257750926005061350984613848077029780697187770924132142649033334865631452193862380549794007405692531964234565415922787199051805341542697376366352207773583508117377315493374114730186314469055584728315631561763127373473508721954926037531341579559120820736263870769585967700201636558767388727302789346969185700596842405285235897634257416645497983518797361526394678690414256939699210895481569268843225333390946480516908980681787772413337469594694148104903125861067726478374510251249282761504295987070747086129903181246013723655490048343757032591333786055666476175547335438136905495741497912124528480613183679526093200440564581041503933862459345766371106358740121389123556751345667011236188468102964211231880422509285326022174859604795083689065532489771456204825397051228750789830037109508441395586097331566367434112053699950036720661916410169732817793971733214139315524034162684180860070030068848235718843208076774671900696599041689906422983518472120275856070171490174759651989660565173251223071925149332007252688054982883372029725565166243446343581429911903078959673050677511341829642616734494107733524482845749234275833057337764288321523905611908055443830393791958176752099714872069741062570910049076657151637009419311266835732007170822324232486343301650316218335767672207639081334902964014783994551397556451164090608234410838401902036728463011275228788641086928484536523029384700052007061608390747573475399262675498581914922725805559696271299406696724304809981997830879868218536942779008208637264805358621054809954823303960216567768064127395308714352369147787236340200792926145049880954985032019277512336769012937463709209483088400008260901716764666698264759346940663635341054274871417456855160659805657351181995697030215186166104890129295863168991543083450979309687070215531725426710927270236240552198284686032392818344618385503490456941186975046881586218773449808752810821359632030159716291780446842322634972421634598061254547227797356803475018492547482820742834326511662399196970388749215764310735209880712794547736863037429990926793212422636888188659600399787118961342040318628263222412907058061849700953937114489852540530129176396172726941091259132494380627573011153431484273493905790710496055678340320826301726959323302905292651678804131552926209879078895381853775170371828920351615076674492656822237132315121715189366983137419320338742872199925861705688451363424112513822325205952513951078787428563922857638671284219076692270251115985027053638189286892052312794399191312474808236025579793963303524129655713002121388729581364481383252383012884408184092267280114493459837833886744130065318224770664430569204996864256080962867134807739597293764869118402655207531548652344037353261007017017435603074940173912085267287591322442459447267248751387990348406995823954620427904680849316245498554478317906749960601080278656570520996028356891872083495664450469225391485475381211687577036166946446920744121564347804823745824948823826638788390885204806578038277865198547926035386060362781795084344482155333118641082314742488903540337399163505638678896596324140974211525619494307533141576949888401218254062138907316665533929337797237542001735860573902206088945854445124658662108349779595920179695203352164598770192688111962868604212713769037481537967792337143931288283121340005988741257764546725785057807961763135590245293023725202083266888907294072341965684241905082766594868204397563534334338233135604259055481928590249221186540929244337202376691346791091716912223995150324599191353243357222669295496928332366589001347976950719349104091594950887158442653422624770663162925957201218185916492617846460211025705898813403482174672650887425627109891460707766762252019335765343554869866877118439317261222982563206913586193589714309148783664958333224008922504388919572992013883711730922164210414037251330771527269815813287088205389367610570625084459436948517953296815884036204308844576787756089746977875721403161943773592240118892518931569500380962519973938609693374623268967454867688183113241362509805731186755169781666162995212385372830288764532574409472269858905199495624141809645675209043835212358778755902820709387845673085981490758334858822900289978796032843292350878468046530162613229168342271696857592305794202221070888994731768441644779361192940575717332250929928557954725684134887724451395718681502060928599688110046639070848946470943882429293282605682701328792986143644046598874190257665106394517894235400119979184222931985832635317642438721715330813695703807572494066328082185652409142717625298398112215226828801381917744849328383420202615513305145165026697838389311715187926766477324082530682393795421078312492905364938773814863741405344475849070025783767683908301235806058522274499037429173207161440468388123429424677051734666494585445628098553541521527311971557433322760511408192179994015928175123661915071806735800109379452564347409764314417332844216028508592828670897452017209086336318385945055569759803799106286954166386098247117979971012601906976117612578460027589287992601099829488398541737444129936656906523742460872047871440072101772770133636297640870511070076237406000002410129013461693470885852406874753118620374794049761914355374978986428487709377939541488579423246666386047311216295339720311983779322327721248717520817801983293622157101332816372706986486681480643388942504866173186411858387362921254389674968238802672606703722395026249118646276750551486875061604549172346354947411786898670492102581805124857093786984432262627060623867467648494921179418410476421733588769797700741477513531050876499177597917259285531286838675417032623015296508096380753634251191948133769031598554938182890416740107243544293672929782139713629480222551415813516885191178192534402074816770790645619875201244911007401179569443353900729931016163271519905569253610129938918806848358960510344832102814416505978163602532697260695635246574904298580111013943345589958921971037882653041007922320439673545697025960054184673618584338435619961703565581985863467049164015733126512447718208391657158561914976520547012954471837564397592207419920251480444324889142948033349792818968916150416849583018344595624966566939803653045528756057771796179322472182260896013886335143026400523811458243976921055483850569814722527863098270747479875405090773358057386764897470201226188691678225292727138221263269182876457693863676534739778320692015168433671528918909170619045227923229381154514912729898710505065299724687958358448749192739593241007735120540525017360062089568836421392812969050954934949256733953355380157390833414114921302526561074529096912604318261189196583660281457228916595099402345864777988493035621534948379722731513332499755822207512541530612618809501242064940005059687532155553709181346061970322458437671034819778061154739051073165782411462769223102875240939139338331421529108452470134651524633991138789773019567336935833779971946257450593380799622561748163527906777243128787726889547123148268535139484485822019036750657476546123898815923906533657913559175878330204606088048303787005185702763651926772140393749833943068730115176250450276375660437585868487878408875633729384006346581390253916468665115855456699412659832903653476455036644887074393703201731687769353338916539770287684699850732709836976340362574982389775781362129609331984519908612674969345255429852463327257821338365830983649786341126513984328499625322326154722638938261894290704774301011021650358800697837468422556668991109727002597608355387181218940049211856819730810405289489464963968377588234934412888116766971578272042897702532797376537084910072191774336451250968496994486751113102922457265421534802305666477666983412588299169998003298543645191943894303293681239518260668848950872666525151977356489116158988603792917959890148715258612399052343477510831069151632195723545083541314071938536689145240900495092077217074200649323009788750098187107537887066097837663268675568245669749930537025296091653837175533212377040467178063045075685392549706118033899749078912140144598626538601666117768051298002311166491490940594317961502303713884444993017245185806515314024809696530979571755759487902610066441461796593297743861551003054485935370260560189188229964555443973614267900101244258237400220534104903945248197109687212003724029815141708516348436620286510813989933133654073787535065265611085563057277688133066125993059532503554236858066200644446025873840257460061048010969579732276797105238470205961353364918408770493930759910636024257883349407805417458896792574020130018770271020817421995080739783502804791094904501388714147367304662845713350698725080312444240866647245767421946865332656451466127045427384645120417483593907222501616273532880983128152846288041187594593973961694918505454965344443729198791486255877121160912167017329246592203503804099377647059740541824269154762371859471769899277955536149397085316186062357872435343390555767521726772531475889059641870613925583967812924573760255111699017677776233996084477442466980566106181369016012409931034394994654665949377100540452079112626763597416084521579886087439957332195702293566155076718484087178863296711402626455744583647321239492476358419759208906398228314326227306601895327978500958983183898569723407433049069743261655032098675878873531365173732249948547832835839611206259078356261170759571401341160705768836280197089346629708965763256092526676122677771856291069419864280362294613657837074339220229342892881359848368050811197694257419830108982544291679097010637006452804882647511571764758692083194809577143648075633244624078269263309704320011119928272737200941327803808551313227467468795808089461679463095658994647769668509851544463944623231389000919001780244168007254812239694711334414164653218209096454793979769313181663430255954325927766351964826255373358540938637479798969192801032729580137756915783439819062288104449091800439081264773858137773064238773236868110432882591968039109711259317344837660118956542541656104718106229276786577207265345006408790381610513158817368064748018957484538324962981497393682404802261084925625673068540997836743715713638281253630643387404423038009678563079919571616864772820000152568688972840077693038576482777723346512820042726072460497544882717823550820944076304292670925927413641698552396480643249019864349799327467826079759791916892661593210066496381638556244486459812618169586800651325397617166125140021304527893712422922904619491127669483154610642137054761988520439624037279068391693882645630878606225865963792958249012668067078355647463687532328460378000833952491117232157074534149982302254737911301270236536058128942256321109272800439111530980692893672088836192449646794633613417693531019018994567791342305508145239403066240156857204399165051089305217492478089035313903856481855210959985238042754898199464867797973925714026960393256025445208720278797790110077499316132941212588054611850498714900890785880679648404368239561425654668410939298800215838028787599947250924682702225392484289992125497222439673933554679790199452136295813459793254859370621688878474101395674111921396053524841797933307715421704742040070568497687625867970491747563344251860786690252373461482481969167081479485107496447788106773364876295086279560411402380483210634493084756943221017210258194127132575514163332907906455835156251664876240150638571119342748519952854730036188793958325783931911394967330248490938963933342137151140921456973779903615636173344799882825287409326850225279740187286836418641921338660729624570202257739403691581241984437601962514592603635416933156226226026302436781020210436567850788842997006856234312045324117357012798480313298459145294714037817327970990639898155141720197628249370100521817329260068333985364489216154029619952430696706070117144757611277655775954424071700709309864270636587475966289391438528816631091797024080129046159716343648964933922329676373669860886560541787789355931479856766567537229376788186138283907696564823612361906768801216378491182467060258562173913513148156648064704197685974558294157043974968212699130693000769875241291290082353678567606638780597361411554473199402642269358143957813865911328766017475041725159819082209208368068749085708691185999939732184206371046120371581974145522272021029572095099430276365345802054869378096900070875750973123095650902501073872691258568575549873260903353623736495497223155092192376486460060681613000044911890849604019475484783391401174952759198709766207158056060327853352122394807496625641496719770921892941427386132982922404223622928427595202772679363415198803027087112744337862951087052398205419891581994597270013440257668299412652054907179052019481804609040283859690361262913127571827186492449687319204592041778348593654650791910499876947775859432716166851731844003875047317900637814617199377573195736943040493349374963473133488510756364874461967208549361789721095693865368050470412693743449749472288788474023361965266015952859672130010411718855440146444299584027742002480360679188885953762089854752052122142574281460432384603552938357777525567165356381011405777330795292172724225197887273842775455043075981929923356883297936603405536000735679709122857879347177391921086918935896691499376727089561266097354606476270813066551915093964700990025065068841322088456249828762811452786193131345232405579783231149202210922894822691140211634612204187260539610160706053642508697113260136876511248104009206103158307095673313606055209623277531624565115906680585995514849299418953855425192743125613481996011080915700031001663525586026529746436045513858247674724010036778132984480639249139139665452541147405682022249542906338368560281077885758106342877744172792467440921441743646018635264758564197255544895250732530766133117010459348253268071353717293816073361974003814252179626684945771708936211385079273486269947001154292623375551333911143418444004344134928100168581907116614582615435688112730669543271879991322188904235384191791582378239998784996775929045755581279673490974756016116470434877251415868964377028370529698487005923305809934123328360434567126424531472385059567562281502082793889976313129444899784750639457409677688160241783831708414539538405565310813323158710378810168068515252424683986004312954467926186446054091518872933981263663672967352261499355383749536963774618260406813771571956613978179433417831235570361588697776255713456287975830887115228356356843229394672269487254362690606795916543813631047079154948777549271613357724962766207720866302472246507610367972133414952617904520969664330391978232677411884287890558399659302659039782904026804840681922675813141812655385164717660815110274404515490188250597778638419051006323313194117055732151756492140562881259859451229099882309404059758993295785945383957332477667051787390209862830772278674921292726032139240249131192081166274380694210337709103222051738736205325727455942579922168152043679717410605000740942886425146043361787626763847099211019539603925662082256097524044250312061531131579945369622436881912266494715523139614196111551107293973544802941410438152495464278140195784420970817852071801929390906904818867493174891645207360550956052728804729887813602442031373550296263131722788519925793867121157469899074402610604036118126770233884095983747561958786392592536670612085435766007617476675294240665868643677842072423157287937862629788973711314196157747073038569963896735847988407620860737247224239914773125614998211565571748804913853575358604521680791362542636810142633014072187158201818496275593881794324318572280968743046654835500310392536053587864424335733692426270356124517304641235787129196206682943496127088902678034926071513412176704218081455887070168747213548993984319219373415073108962979322586818417523727371520520943142831029438415031203601231340370078339663764479977154862718322001105518280558732188754688085399914023532126131183877776661029507077733267108106504857502026993368306563460599856121085097160773508090637122573931704737240822308546875008776436917973395866786247848415779740315099763133868435247537596736369620918164215731468749941946427128187583624376184536486507423497986881805534913587741830453754826025703612492734610917202477996498925982161659682753056465637461686778481115064137984301856112272714711843236027782246070771530250879400314697377075565060929396061016753508122111329215801761387892464435533277124052250671396455118400496772697613067807546978459979014583689639174769090975931260462295325883302648594780289428974443850420334498371043644218754079521910908793081660311158718678420079445217204943631014736004286645153264975550328902787168591516115647294678191937173184057111326169561361725334395404208419336757605598867302312461185564681780570003883424065056241756553409464519598196858974180020470069308471604479888578572767860797856002074368364538948172242467603257019415998383462024691874651885931518605130511528360017377782373567125948754947080285515808418347967263563890698795527707930610585790451669331477388025309625469969449452003525599314583922587832013114986460739314044289145202481399362461597218369863456832674037772684741216937513684648435955542221985687764278331659756323691252736644125717718525341465080293173848771895705632972555793702857240447325884643976212192047649254933761674771369813268526602188822778799068752408353370167281224655223944327977314642370581620159156701877225157212696541538404118307415579241724945969909950695325627003134320739127415440134919462451875111150448047423835389484974450119150708042460829670668545933258593592831368580769365140158207970923614944254285179433962556083420508189208550508257551013478840921836372653847693026750301899102438449861548103016688122274456828708715736849286531336087793792943967280899148973031246525325871604939738602221507951264186194054725416557375361018881798981588343550965121533884373251115435104932760015023061750922748034781851697241073935575775449569406559159193109466724642386299987535876070366336019553998064392408295548768232193854115633568595127941174349864134800752354774778688199005499969792702765581911409763777163149495573114602906786353858240984248467445574899461808461538322787951351853474476225376326997027207139375474587059077348523085041735768301543700017736688931100574166263058173147750940978370371647936817349256720834952224187708907335530494724702421375402198640478798177685050839217949382271247513204170209931983095280642586687405097612276264726273974382447723611765197895881153193872750828493588247040877034972101574019831187160754488633658951987034726654515355126510728423978735389058798656092281466046091256599780302188179358993827723355519021484589430058578412567757758619360340933123429530518511232705577952105475323681617908376804232251254700185962136124869621497812832615317805025931397203725899538830076059178703575584960794170651119631049633739947053986693156047346655788188006635305453217747999696639545494893064909438618098374213467878796203021316178907532047609074732748732587170369374848293186087181339645908332448782472079782250792443008389101125142128901341128065164400113059707968105750045161015548537905144596462016616516853512228385867911708599134586639444276696625327987752372376501245896442227363895027148221935820789287848257111961152450905434856000568567356802901273316895092508264956247602918181436933963794323575863254025698068500590663111690920528997883632306166141293220294059261084843212617929801532352151577795043533276676270050985919496174105954211649756980917487108627378180418919295574914496015187286344777625366742377372080403796200592590184981270162719076521326189872443082362705664388549018345773315966760477590995420660880272514259024386829902047379986161389649899196235580404405318674774160415133522249235504072681455324317817772568213356978013499204935666058529856391259649245819568319364911909675500809885384212823659796885218332290169887409476490857853215598977419716558885573842908062186473316959588400893536161214242150716882213878053712547441656244275451507625937490029265413896672435894574581725580673830567684877029137679109673262997719905417343360137339077689436217380189568788627349582375666138418275493281971372505388915115190656100450296086762910390204002017262739264164681124860693141111189761622536167461475706600166029637749792218804851058134324930197847358799065567924544293547929019104121012167910503677760228262913846949567978421157834787927309369723413665333904517550824798345161378955354680352992573964391630566114714501927217028335430800286922990058001448530359530692209214046269724240040399324045957593027506022370845184677721151803818064906248954218941291064483709490940615181543673886886699566988312290256801294134818822764909662698705176308957657828813100925503429872078027175045459946853517913042446496576070218361385574420275623021125870452891342484525890040202458779123365457480930224602002303191428117536213941335811489263178991613468737376426991180822888796288556054891422292413652231656920334343608858443927517049009220742849541296690835546708223830731526917911225522608801328572483469476234002955772755686031316268124302655117556957989913176831385258495342082361476006385106612196942663655826775458362625426586865853867431168064131273574588020305858134753583115317311318411012598679377271035226238286250765721762095744821775049185871342852087468473990754196135737736733721227876096501158739869748744069282972222013723331541373856510386504721106300438224471248439327714444071412748660611648892273201558922241996918438796035917874929663579495169001642614179894576724132359459411103174298325546432111914138335825085595228585878808189632064850608591102996431203619586773906400838857100340579738268989946113318239645389550632840864688551262206125749087952976738805175297868838103018708173218520869462880079379729758436469055376319655989230216047115115894348207632291108971292295811240073434677984443977453555527494341785418114731366585332722878550242139326279924170609608774587081392237558137562216221736173136209108677138292315296684767523922241211567261172320169298162383862490357459655956753300574260163972998543017913126157564542149192746514787187475423988819454344771026611492565475361184457643520839847077769049170378674623038039124107145645500932514742053909895853093440898750440962149154753467494133951433093047329565560776747639399273650545888825210338487288794490271523839686163278131289394911090325962479698529450757861986529078258799754811049594015170025041486613419409564529017234843304066309763880070402251085303417862757675383321690728071960979982188353500551469229203631276381445371876371310156446831465674470161379589980420410094386100514652768792807138179528611866500121514229140773604358033691610783945856208753790452331691372984796256248817387209635750155179981681346986673829147088904442329569009383536150106778455759585713689449543347086829613352777190116226025541409564909049466335095932915459714000922172877215538601413151424433458288854265961753779753357454116568397144663443063637782465808881460319301783278755696281552131599890524441123549552582852549445368912963822473348768403954099924114792856838688811700519536181143666713326636434701595382492892143497832187469477339314740801796771881950996834375472429276462390308366955302684516129621030297199262521298935516357064129418315925488413018121487334324881757097955630895267713459174072155741834835664196017830693220127277284220541054954621617873150265312592411889411484166637127527132700230690329787228902644226400603392632330848550093868975181493543485337736986661065490850929900653897690804328507327712093641525267031040834794793748046368453808458035791156680256718508420449663394714237351991986659697853024218973881866356794435895268881264689119785236738080228263100039547832023782255337609882148844139871616639155888806666091303637053265420584933257473404510538467435268071089708504339810561945122578201516636389616702627181040228341146160035273098889747128875995575146762594313280375462038336516345243993234423348445854331053665909983754698186552056268471709591124460693584501549725105392731320459510831978529191907473693152216247651649115942495198953127508990374976609719419599686353481097236759625723267078492544185889213426028380780611452586997885046294422885849225225564684736735098415003963244556942420573139574757167584979942771807615839612055795463039794295525483055760333776325975289675049126863904420149135447359253783917984413309018884753802659373901578364097613902906857427208063668309800480431401903997442100560982242804058859422142081408553978785557423649563198595116662114867264261032144756673401870477012692876552023738314898422525308010707430342110956476205323005895314054503994959234455945227020697541321313946142543658264710490215913158081130892119397566311956189734947583311194147659755884500317351206743517935294360667273369136620818810636847762422887436587963061885445082263224507268476285385278564929429810542446290695818137879403401161804802387148273539342922697909032344061049880011253952149599357331758148745001255306190073248109164669156104757586053798593889532908285338692766937752139750318204435112335183824772014142121210502027965813181455741029110411151250314563186577375848967516039683329211406941588070159007589552401163499616000480438005101077098049944881487550773436112116594543290003938544445324138434714736318007789017763561731873510893951320157037229954290154113884252898994197688220129494516527956357959243322901104181304019359374373010505721352690475655240657091822932029325731399231965902288181771657661106912705514636605681028526427593868773866310774767871009171789389157804107541870846320951586301315495250562228860098835494004868463893965129206123845489054462555783394730806546558144753260264131919409974729536080622350764349048215859643460126172549940706506413961606965464980928000268815148559197155415039962081036017217934879517746484789419679749159515738488570771145148348551453751625171053640708858645964136422799231609036006397171222436275926607658083611460628593732457661207672116642123523711807327465549487954064786534344516994286475660750112222987631360830303030719616704089657791790650862776440503914986146001813157425261453426163424538785474939031938240211455628235519385655640195808047106199531013170427019587590543134076116819175133565026350248301009396134819957283626542840631045205049549515856043576298219424608728849038494640201534367440951995401706823989441807871234927530339470242731488521427200379122798426947720678095270326243502136542945362797494453656660658245735405988112089965891231259156024508951714268922084975966495373804835976903205219346498331744613925886009126827662604706505061042435864549844761039769327799555633990508986075089726635772595184322327864537252601477856220041705696375362279434841623509327233059484895158359198079045787921239087049432950688087883136791454626965039371564445921422113838456145486284824091414682162531313655972953327431329900402750920240695827735050572172120790837187243670833748958377293723361769799031876640090375095008416813069994161159740824373356481439777660824488346789905586731981029980684357658028758188625455825562238690707110226241090390493269445515294942063190458392450519218939585434790785045723429869506071591778846832510611299316852798566027312823027548294895737472218465980313960424608430388598005635983443094912272715002122098007247625049545476215544812910512128639719206049931645852756210814506515914184083131457863729349612679272593359576573144112815748686972574935276775011384757008718714523536323755557077447815695428513038619165412199450904089181321800896819344826155151982604896928899281110361168571840264842282052258300396247621789075301666462659788167735513527699114768010988408884135690863515737223239122063948386994875643144010859384427899843121716305744349572426286590558112293181574244839933736801485386622733513272296228456104137167732562846584231331240968719991500320865362975973768902560065561380288186682641434691927767971681571434758239416538104191553311301755481086786793331934065644447643811430730621260885430521757613221847543244669143660480471084706443754660417338342921343479888874445612628582336485249737194865446050161650263197978216971008618930690996219778222143626374578821672751948254490219452366996100600479764166970964933626403181416005137377385745729993179537186816273360026145127372414127875012196760571672360078069149334454510542643346484478302690118171785545308696603776699760463705709926851163067559482501624973860664593800979495729844840106918899790252321198058699378172428342083536212927584672535010082948003972834609890668918371727824315747410610115392582659643123745789152308145368743285692584329088043415846149354526284885863848384794818795122778923874346739833946980435867731309767419295073789068295203912509117828167085954489375706328230173946125626350657990501212065561415172953211582532518206254190302439239535591676745086049288239639534114644134314955918415088359457339510562920188864017676151959351484245055083798011769915084596278983290284117590263118323143921970298161161960320118358946473684502894020050119790601969887815277465393028310073778864302256852408072160509868958484216118877891362976475039645452881842126616007475565284172194475375316386549800854691482335885228820635599697341379812078493148841474279810812379832804704226597359195374647023483727203505665396952516078429312836100245923379263589209115475763779693721414563137521503794529475478250318890696984520398037919128390231246970115753909433829381658052652268438150517738483945870430834756388695185154880989776576160187142953735031457289131302040860094083325689866229748622751197619192616135665474647688741262315731885116270322513632324623557483601890810438024846714888777270457092073833135972061404924187352932770050696014069511606635991990047168786391104883862668278698907486875232879610344639588331023145111783911936109031964898075206842573637696864001130121113499768431127856649325319805738440157833152322027694800190067900129323082883676958132367297090611857615792674312938886432148414923028990054391303120990769147796169607771028998873223762890148805942155850499984717600221520371917013313561717666134970012209539595498159139720164957967703624091121738153402236178156636683864705479652862724710940360179191382312943166095025411013302450629396759224301087871998439100328094236432949113250703652508229929025654372980629686505545439621229765694464070834970358394342433086262125317140748580474149307306520027759374131248118705507499349050887636399623129602339914136606563316126273319898503879232267950312040835195362166009650486047620899615678707767546837128317169076723112060147124516718343196694052857449409484301603771779041744576547595392064671778771599433232774663329901199678794103678930724819271593430271880756587965685964578316794508068761336839024442044004583330256972405382706400045666714728039103591132096220602194582697779365531276349027304285386449665790377968706278080300892160899088527209440941980761004818981214100097836895582480944681782811775087059520587528231533637484960332563458575632834082304092171357528730021881932969293150895498566739066291103555415110672943040140230350934179834432759983614046602760524702945169516389555517443370059342577547940521048534899992455601218630278611571472959500006207858406848609509628262668553700712056932544477654678325814412770695926135290501323428945548093622890054387506318754734118020772668804766613990128839123940286663357551267460948188529108156056114606399700890757448674638274081042600533706753062903632152953077414721358839825666569871807045827189208453492878466085928568675407174278654019458902668743520095155393276181483533080440829227946356090687977892509198110598140710987031281569205893879545695497060315715995555930707684592904599368981375586713388672401155405359286939367204410270257322536063918834519129339372899846983967829125826286051981975973942321046103379608804223508644664323479306308774801456290211519683475218484430097923413682819999143674638825139796789645215056362940900786522690742200592423793641665645171997996155157290493733173753858614820583471610300220293608625011266049409815084676480187221004307393901650499622153356191891454643077958701384029475578072458041917742038880224203479154162103841056670904167626492806709720988181231362854975602856764672097826402422900997607688880785711597168568382336399646489727122222840555409079699487941213310311649188113967685961035736826839204115479177677690725785140360440236910131691325849097730245615544394606350532544516586572487204156805852555931736306489891147659079144254188554164801322991969290166349581654047998780996769923500183486778218911910933366273681689431575105117341380132000593878607755806436681918506759220459463196206273091098474306908449323662779000110153751533937933221128484012450993231315756788070881209191242163803409854140670007525675167432519177985843299451006152450090236872300968658682741770809550631159567640272775929155076652572375212499127493670179804548760166649178688716112212967449367746015733875404746421324579264636946712046380095406733914925928040547070351332254873332941411136541133613886052167616476178863752951065929739771750997219264263781104794139788383608415614728026694816530485504272815790228949444068639111001654155522774911469550414945454471076434198419640184258905275175388216726131635025835993456021894711361754054557805534802906042878131994359199508759088374290013217991867523094585578874355425672437798684893400799932914663351286308443948872057350525472838190455362818190515053833773083655864330869445302021223620168950763689722302852990503945012900912270317999609909399742578879375969971611931573105248942247380052906242804484925676965659408833291134331715999331233727736609359824756497440464518066352133984419362174747186818809063648832350362451649649523695767253293629343847511457030141370155352763986643196243528785080431880645785322420069840231114830346883260959992591944581706847272553045708650679979560420369108660390959083929245010109470171294471300406587572179915575522843333000701674498863471521392671290998140428140353337574392616489456870647157119836359107204860002175995840825111498319117786850002733426818648042523038194825043668442564540168443383423750975758294349066091625357104613173277281826115948830905018551578034952304988118241346837974692305146526792404842282649643820394608683221559951940630713239525138472887102062782539966248122132600298173313616960773931232955511224252840190256780741033523162462900305791322501435010876496115744811348999254044741662365368198757210918672046262060720899863981927809305799912056979619125110993060360283721516645661789487516134577514990341232530257514256363604769015310702560882823646157382421120879076804963826336976757660434032135431237251276348729683410883441266902528067724056065922667752489016646419813253614210549712171891211567660921328065421660489967600729547779166769078801151186075832349337793274093866543709917252479149614382158828659193764786556359364674407267597744454066475929683194919170321058181548699001137613027750425216064851575175305978155896569095440677230960949776940871920970247301924159423858391172610718433519808505737421258725456461719726556461391859019603921990862421283521811251355411467074970164397121522512591598206798125443668632518917265521177848539388903556342121310110203681772338804415408243224276601121809703472870107542582470385169479785563981490785493370432974888372516563235627570092083376464615348353765292153488085753367710617839667067779081680884740682523653541151246871572116273527137575804631321451696321409616690629415160123909306202225909485779020564015329652184580905374436984010787558242664628274583311450667091775645566838720955026188423099631110635169156480099909920450776517178762131316224984064545058437054992865937771573405384130270245755996456898082245847907785182170109323390183280078319172351491760789158933486199923532729760438237096103917347468571336755020936833307569252535304124540195875444173940417162084168012292076560622792636173937903042393509205876757787806615187274821582746321319655259311114596911232433645181254314858156438279264376771525140437873328888872006742231214384759394880863473253806234089529712990739633876884218585941845954604491728804515063385076610466260981389069072488396860316093223946678812924304921737672569153251693984899672270750821897692429374821079787461520338450021861413901718836394494371883705330732790623060384404468545323828838036399081556012096476897351706506153568976450023055961457496785302568650849253845647261232674958575280176214124618475698276879049001420719529896776342377652855503187698430819297008930305280233557474576293211186365392726006032147064439550217935288071313164681105850198745198915992648471770417061315206230037601996185128334617448927447991618266932496979075660268276759262500942996994797839895752589086860581530911309771390103206740842637193248382013557972304862940591018953291407829400690191253784096432870813648986869176505013764171789336464978352942283269265000007780596462769895955000698049034653483851316529283618318355035610190244494730645202249319550984581772785196970885046512759581229565277143129248882946848795440304256198165513861508515251199456053855513575957536712374460565463487664822717550853819601249147727667916968156074495346581282954139555605950014571241947844384356744336757113530590419943616587387156624678295870782626277015153253329423633428246743996149033400747857861007197891726298690103104758119755710542453476305569177513470989903694163256121259990684740179933618294424255596422746921303088879614690788618663930815882791497541053890352399469530559885076541044159105279608176991879695769975753836619973568657559171301009230879966832555589216560803874327874898694436807897254006524058685390121411249186094506511566333328634260724412538633264768690346760480197682948316906089982807784775843448665326026498248662883422249768125423984394147555080082779929524091260141489968188534267712841133348963203093226794780288115854476011767265345496856629830989800308717219183144839430547059345068517613777066315806342119484113745079103393425571657422202109305405714454104755374069756954072120037867350394158348147873486946228695408748942002261787828119068513065644561830312520743638209472369427929271726304409094918667067523198981973883510493732615665452834334500882792816860983694933477473274081270725138180157365066160020989017708654885897189904586696464795537064091025988297462858329613320451600234294339972786465539393570814699237002761288030229176609263385132481951448549876016770529613499012869125393621329609536804133064171050303784346184384701443371735951630990872466243418469886981176614256675460341910440738027028791566514826105163026721084291486176908742383629420067207877570432580016052462736319435876662977669406041166773104127803598819394090829714862474459486396760743989609641593550242507330478826378813923831993729651472742633965565283246512388598997989208657206660785844859393274633539982610402656810575405698091030195976880484222250858207189197191731456942492225621584332913714042047276891029367691361412489951086759397454310576060809313815328506238648110736351599613567682578515415858213711212038061480684007441917649162934539239417900840476690032599426543453965699799143785996219383080135500456661584645059104191576789513718575183142953543596877243141195330781015508937566203061317780617252351418376816153489272456326166720398951319571671622401964035640271030558830442219952538732439901380715459141218473406201272602620482152999806440547835543568455400004460124663685171968032326867812986964558325052090972758177430451994956175238407509396539452600673040066172783339351541684069815173912566888503368133940774605884606596136339805519149917606784847428107466094866557736208085725506177406180794377947505429345040242213197597568009832831793633827700715432731488511558577513143733842341726404075463036880638786022873891830840202141053221301876004143845158770141907991881901163199226457138519651578033505098962207485156107911022428843740334180770897978003110380450343447100485614928455158691937094773476441732310483483885081832493143093279819716927808054806674441167655687269851284843775723670224995510922111158897673013361167532960433414616848216363943370370449800975200238456252252857911872137050397185847926885096171177122056276936293905354753286845178301524955006920022352942829460180518381278420627138645781286904601872311793769127984417803164773943598959133184173475361439129062303968834766335716137456451949591631610595057229303268064112427681469580081883091253945045479119074392336747553676631909663804269166830465789064324774998180507832771839821296086324678488479029440873999040291508297994556150872455460637560889236222603532124618683350450002670901631622033230911985117614211168833277553875206657664703654972470376664225164335166557123410576122540959120065615474113311679306734324954182807292225979316056189753114587589566075031902060719819301501635909756342241700063655016896544850612086814001740211407777795372376343667823476362357010468239098010330451411060052065226757596134153310354276529252208608459366818860220684194616733590849059135997089059109450205677605819457161871181605562575735828539071464031566293313842969085996762068498364966083478218183176028197471343538853622640763324526722056065595598970929060141728126029781805805580962411753777737895463562405147929875837681497196460930520554865536935187167822562841889248116960747951161171158457602940154971755259684843772017477572041889384230099406638834352813215292835248144736847795301510122917706682029437494593905394112189464616200004959009030838455751101552064432568575907369366168053379346821370168498910143949233499592124736640956542417838266722219638291561877705514370354149469591552928031223716052816607828025362551573107054998241830674705017380809476281783150192919205768324846155279018663244760904710485969401833435235851350040846605487062061718582473909576496423945584551364079451713892557348432959013565793185791441007095443169815999819827039602363094940519655515667621599565619086253865619387852820930190165597792959602374572939369539375685843057365076974810050830521489937488463874132262396087095082128353942011142858827470978561822213047338026717757684027059363304680277303335461083404555565595753776622167376191165262297073439807054650826759536453177710772310394684216538472215374425631115823227937255951313263519917526908662923815105358424555824550140315510435016837650792103240945658778704637602939512723678947633201434601552681946838040132004899028076610711000868910236936722917170250704368382184033159607479679410389294095909893460264102647006102863326993977453215288394273595647665273100503274565726340967720385347623022383779967090752240575008629383764960984771996795783468881787048871656146321780572170225253558078320883549619576400458788952156294630842913193386092591726415065979893540489509248644132661945775806698869660955805666958580541648590738851653466900547851530498171625434997100867676015068437973745216440055292633467794460152985792137146784384649493626029204182763698811186367167872652558588210183142234017391890644831396901580425195581187138574505393433156084970053591652113831087249214822785253658150632212114020645533814795791589952382139836586855029290688579284525797161648009654583383123784249075876614043500326981039183006586978482352156605052062574526194486459071952568692621425005616904948832756055010056160496566923972461490598847411154966852925000527482783602795285528098418292490378611543704807115402253389837906525039483745686206365665263118849996235565666023955427032065773177889055186497707685195439097018161772393704551684903335062743328156034757445462175363534227075536798513388396871122310026504595096631592415425278229916231694665334472438163211629246758385509331490482368458935500185743817136693166589096052093490145403077143976504341430323157287738221248628388190232354356775109369290031620015565555858611434304974648708285326376818486566482505538584914718522838006750786771029681670873369483731878523808587122859461169637122290732494176799641463680771029961093244126990383761240616067145260020985964370227013629713922188134763429394817507869483221128614176269546445908721627119831410099768293451412114091156265498274509849574515811773587180819502982259411505893553221208308754995081583721069595679430655885165677694391431192469503333245570523128797995855329579366932653124831425065533108233961146733503376684454412733421242773553687360499340574436480834403227339634856800331563500276377228388654772063170694020962225290500020846290602223104502896781745687936054279827085990670249636828217508992308238419603549095436176899178585483929185109119496633437966032407506163787657308087787411502930268309842201075172999575092911544525667687647752257340244518949396474726886538652593100427982871569647323717404069369458175952475385645585020573980715993609732834688377286380828940961393050931150061879219614815790719599351630406827890056868956476225458381686346810453401304680234638032278662133958838196107863258844335922275288302391300618161399818288500024880878744140497255748760380480154286043752829105812997471006768053033132038188540032762853788798313028036787334889587769489604658990760251276624003020498685067932821438921269066717973221175242633014894936484853895051362357455002342556244794166489977243671861857379963330801634201090301685639568465414195094226666861839832596956681539022520349122629129101117423607799140383589683097180555181512859102123272642428384736986275848120240485345090084758029534383543331431421201261277210689671820211938807960827052042528541770964921760927222107267814759441261365162824072143610027447291578218111804530847820462148386496878138169043421989129514544569666018308570610303099023244880994088777950925615065760922284321821522540076301784539989566653802681694308082769108896380645992173898649154832591003598202681112273861430660623247358366914558363928830313818410322870612227893773606802328640445938779966649476657275608074934087848146944580681015757977715852817842531434029749270870618799552599411486806701045664969120542221353764572319242897624857843479542511317538048275690612890841262557657319776933327223636747124259483858297161390250744388791409033199104964133273066219100376071880264611633367422385567384911772000228624711376745860811764307816898743129021137381794259318323380690830036288258748367991143852543761349715526936978892997230595822989752897805161418857520151890118391334700366219154184836087025846337222986568008890471421910533608799648749262791427155164140288074470715701956260213697446431757118515280101719081707486836576520341152769843810217115018652109141985317387394929730273769826150307248085151939255215225880170268915119445873580175125298809103065939655383376506249774017828764834718252141181465677242219932692272230865043955402842878973702019284041069618867233426229048008808835819234908850402635922988519190887869680556460761380806453416376227765245840818751375113050429003487855002475675692566181637849192937817591657926711292835258204847971977406085473404757095422510902333858031635918687422929982573750653974279691049600246464938412517540537707846793157500661680211111847081041099932457858355163403307654674110497514937971475162873899651009646207854041179933219211860081250959571548719487238905364454198180516959173294132559099318149782334995276739211783504714753231266568871050111623359118785073925972780714203128545283108714356428949114877275648230234002496954782366181910133438736969101486071926737860511329387602521486172280808005935109593330600799598180746311699131820709559313863119974777032517439937500637763787314753486979059398614659496931544057915606841040293233144687035527472156453172892256263931550363247444169792125050266697572142775419294593458082853670189799101955121139880823758119596599362512630240992254694779609786957165065087584003604820341959114198736926680612085370887609533703842747866091469241964147105161493459407777166875870710531162706648961378681121615407889630145246568157852303271158661489387200206405947563407993045754764512418392956383662927938286880111767670803325681432307632092655362214273924595178075697413516128800752821645282027445613561104033308259950615016203752220322003448786917259420275542602167742742689357258600226770834690268856321172803176944987728008757762583777544931295121153304244703782223754518351128011578709453505804778111871869606315323678140460217143642534778578226290021892669606124898784822812600109808769701609928999263988309004899374143839042078349009457936242128509538483201960616448085799141105923131383555928326876062167889110391207914343841940915885637517697553705279210359786251777591870214501943286430988769155155314812616205353601714840500385527574351328504044766535700613674893561060065067465816002680995625301445328198823388024369491600340424987595411648372379185734087059465883987701247909852572622481606637455222647238851314682801631238019361033213556001528729012629702772796086270168302598531154206513814343213632784061281397445033725470174810081508231287140853166326459644515946860486547120684683653644391626971531742393344684456352650443560006068901334051051295017383271925815143209248406699661785339830972698205065929285785877122629157129905734546363540042378796388422267952665957032824061578239976673604040500415960493083694184962350457430860836304574315172325995416834205716919042603726446518179454639860020848877063450369132144923574543836498238650875454824879478160724433911683453367255332011036830867426678102766671368563182750791691056474974393514119834891604434870259614969758645505415657373390452579365059002946875193646999804389065098247969894069596760513621202482361415813181730184816466054222988472253786888256288642940303127586587493201330860889667753837488439312061215929311922365170117696560118244426992034593810796147304122782746529293201286729565658443755735699451877253043134402932959228913042199617533356590199952135146920696545345863535065904626212347952399960198141081684267385806288754307231200407887975338599369135406652180314166850559149900003586017439959652661468726370934881873775884044919784689632715377960023932805505596346922826178626800500123516710138560410889620889479929823594033032480966405007381243711915720323548952556394938143448143336947874970952777034589364834212886531604425861986680043546841305668204047551025069508327534883423228576909005694159840415198644564877319153909320741016637914189524022827185743648072374505054282318513774412380858534244519354258382543098593102027618989099677500603491150568793265147108549123324039961497565203615205511538201426343318994787989501677457195637620252931686520114846146176974673938116594789329779389267398032504297747460133927966328281548185138412523824056197490693268918304943493017226911484803714612976993880658893929387519344687897269203878020800316599974394625223330635365943515177879066637701708980869774947143519256985383028862994860464744296944768602989082282416888433806414703247563821909167729107424461350655492909286733949376379983099896199023287576373581996813026654047188404300380196578222183478278116451327775866680604280396817546292005772763412168187491090926365598000486611510792164782566702713114330362383093561765847636233854481949398954901183874795575215395768351251304569190246233217277806727669338811478475445054135706099525776253443230305570280119573620395923019989935626029578612060506943311510062308200673035632810344915931194604981902739735164338905593850934661001480805600922735803834925539920689575168039818030087963670615445993956646299118735761325500935524332449969928491859768418327571861602004965627157692314026343710730061527282284303975264477490864632403581483241621726638873983274616654369534292603019268162562743055937293822985350921554387880855864043825075496633192770118841747652358869167020598400528623925317378758791418228247336479593018378386242817694265652825845666595717465315282754211841320468432275382589944055065301606142351455630430220025612160828042034142407904532066079119834890624749177136367927894503498082594633432158893790898620229494663233937428505217555838977565133159057318673765605818337830631254977290066930308993468788412352741074513312869334830351622773876260769160445688504170415508416309924886892278924053607944367316564559098813194013314754352727736608883037249217264120256610195050038022197776867289546612061936855218031808036548610839065454072317630366121156704233347662379509826765725753165109718497778727046398957335140158407775249198945182457741590238194302082947587227105282286465761183524330921650590437807666500613595115416395364868055276133782911352660912170411816175091558047818114631056860678928069235596548272194551249945913004468178144086382026565706995103617904881310576781793840305434266619809204939488678739933028792202573485055923562716883556112086430023438220268612201361278978975973090623302906271504673493348429619894492920465694168027087073235367916856548412685754650453281156668591635056383609744825172658867635681450130214107240724397069519923791759266048054216911726550920979943160439205354157712314465177375394777682740080683019916130845468396558682841169287405720357390446553007342628780524633714718658508893147725673321630153764017125999233058554290631320303401138886541207725536788106139936418989053308552876865124260663536422086629190972424669587639423162022122144281630954011295290992846961695773793605797699211653527049636944321232920352076471547421203718950750593804176987365140942056690737151058618638593841381853771964180371423174632125715401877443756912142951183931558936879352787577350082681180373289956803275799125825726677800349630881701616007156542912630962755405352059607572338982809867923156635176019622293424685943385528513627355879644434964192293775547590316929469761178161407532436737409457251484609719265790265019455588209608688435973748190872714818440447682190836800217942578561763443203543576713742058437728963523862057934151680014478975082923943617545523487337543851924997388981600197896526541758567267980966450587138382040266740721200207956066620111095947195119474362130438418736548086148452928958034293685982824006399791289949373892740486385329765293551653282828276006214209928321563135815213281567606525732555826425017842157272571153497535820056728360963078829624551940559455035600199401606467948889998188810248734892555097290612103091283113167115219684676828245432975933175671823384049637115915264398866545000579391769131580064835652488723314669755697908453650512286218743909829024393375136664189977620427358805376531819665420087221944560932149527075622525473233402246585754585127223232782502958400989036584783507549394927200649240524627343325185773077962493627884594191400827532884144606037277290505988311547893731396446256667298665593264452039952764509761044107903204013054113496480592731188465137448126656261076026938716086576965589924139600350994868679298048532215535042270613218264164993950199776483881737241541253075357296782624366605311947170249329475778254354854060179459371906911462369928269876487212029136773513245437513374396940052727210000342595857610712632948458754455120396005217833087994000897913553137412321692456098586204340654575095183778877346682197351659731746539952667470568665658842395365600711366133828905372592524446542076299271944714279166378141974267323896706241085852543552764041412063891629574894172739014210555733595478070103859686001147870022614201874846411887449745910176619175782356778741756491219308194594535983231021266066766462995909146790932478143215118468742219854236163877644795156363607219562583354597028204216188977899864739408093492228238793513838537876201613948512011579559426780366237178078375729314401996029642800761016980924969344171301503794144443501718748524967008898209647163360507555845563802772681770838046495077466909758351886498103644390289490184479640164232142076472622893712178960097205631306684182870456242782382399587266970916147006706827939280069265920276531921637312830625109154807250495942506593251588263245554386881507344686105990341522858232966411723715404771218687364461380092438919936026090289781469160833655802898341226356248373752632456500291051722360780422837008530950538929312743167768257203615896536478803146387541855054872579981629500408367274686943817943796991355038402873199771654675843809442559726330328699936035571323225990771614505242345814964195677654959265156439519457571551268211970254321630465859323814367247558518481523519864027003889023773015779025819863932865019066203860693643264131405284054866481419574182581625174138905610323068770518339736549705748953415893019112457425275090032344553046577504192655758607528791468143611376293790681495339991663103876349255233145799149143984196758043019814872083918353148296244914823542296577195300619238635592457856842786290999807580310013758112112823026077389739164661906225309987692775264254791801776870621243353265988478362171372339020812027996041899043727775925440211140926324554285600398198191739897885635634073564652719690436679335427653951333553293194586223996225056901032204005875496807254274468972234320181176904567436063583329935899903760960299131584091217153299576374241647559493412296053471995921921777218474545379646823201529979536069588471860380888789395814027172664928250483953707339642203383475709521178735197362855860743946370570794637331612333120824854707154509253184527518239975339556672647112632962132802929267857224412654892638066621460153674504931235543417367159571317452742805946215524904873779153930392559867563667627364609376959277069491869727797765604390827872742326410305138724099180789135014445507322477828814376467392704212219899578975110874425168330341108738013355066699616715504611001741510158297250691283863465681381622543857671930110326803862226382356715142666281836511596625727245103545345795597130482285123784949694050736094781273352686682010421065859777217977615810556890325306431352059705531250692593858418171195737496971616052741642039422010661502479191959381194689617657676454667705936249444177807981542325870015466522069199876217971837385646786576742996256899914972567146892908847857219419901961941733697525024678699795742382538576159570385420319410609007021467785066106188372268474848635480041904756400108050649646753561355643620361986670389809588456135401727272714255706310210992241719167830564648416001525531069019076178171673511705419711254997409020348244924059693421665231208296277835893191712530116530833757954129053022416613402120409723053327564241872074233320656721815168686673330017897314505921146690381431373041647027811179886441408480830599079846694746307747222213754646191103732564267426619025787831984144941234971178086668914028891941582516615560811950592843557130797694094936411678701515569071650655782139778703000374536151671179534545252630540048031592440025302466922611108468471427976938593281340367840550367340980187102538122052858523851641620883335446760068001797190240873168967118821357876683127541322301454748793981953311883649865714371265938226464543257682930241660608779334033999971943016502730502007743997309276844971907937062546194372358429798387220036200567315217375965893951829111079835522231355998163730161687509474793972443206057276378751577554007710209317937167451354612691176878116281446702217499650889415836011996428389555468474740584474900871479128241382929572216873891840910259181088621622000427504257236193497744053052002405676507044787263842628903769896209169456228701456639432186009400500083478224045755017694612219635891903022263448824564259328966024040236578860489028546362749770012549606108942711863407858749703341488973023267083145956605747644699929184391464914790811139208980072854056424523317670745866047994477618754156815273943904919251674478875775856844835522951724344237734423739752428437550662914523657050512080220048809672279349296693689948369436757342034165077477087111129415591706256072242967342481966988932661798603745105854048105061665524889315129957444731675109270086464049225352502538348108996478026735986580227196054399778372201857957610817734919251495105698087066778512242815309494540255510441354878924010657876006010635062171179057442523596585609731092479564850812900840159778753242287631678559841035406871598168825755623980433194036455704932365972615268672879661954269641603408767000438702267465422433119761614267812085566456283240315898556614303161489780365593928894436335771346671267819337898796475171403643210665554772170549361320839436163619142290001959958410657223996720782089763704628680653001657057244551880396137178240642414175258450912007010932847132701188422703398582271011045956024968563478549040820994180212210327796879731182995800484149599014006850511807376534446161035005389132098859940813635088693310969852144958925267543766279982769022655282365132098717381109884809541995731743510697715187676748151052861827008843561857838152045650443213309300210875542051757445268997010665710879896717905651983888378212188117130502406380153734709093120577503949974585853503223005118331327830124378445663166231951847482232667704062421183533801588499439226128152330500315022859932975176848100274467072741465651222240488843921379548754223094254603416981614223992343908952538247401987028892737361868170528555563214757420166704068622980270397852827256868441041684513378461128893502545407872972275412026280279668431285306093509407104213453606555071219636561473435599093396317780499479355633019649373650880752540121042528123665106935509424914247944330246352207385762037139790919602840438702091046995990513424169688391316656183756036227321669729778815631084253273896409441430303568402395985132948018980467709624908512570407282433431266939041510174152613880149264281538086706910708024857202726534375359785633528416021507709852134479674146517270075922922199299733161495470700870752114884029268174418227151229161531926809927551659384567825563145678502692404540378899657343790023191424313089532324827074438106489875921804770503183716096019205435567374802126866566446064310250631182968178903651007692300317451612850727116631200349401842170376179056421830068235727319366816190880333748188798456417491428145499203510504279703873772402767030948033296136032925967894081871942399489313456544740708654516230828117140508690840676391870568522689726545466247418743008623217946481638587774356297253433173223065585416941460490443391717158834648983187122010556749384873295308908603679766889004493268472737116284975892816583749993955768899328705881566072568330195898552208171321845567704498809940390748099775086004810998616745365466582082741152631135528909635888411554429713332405798170197799620862742569382486760200913408725869243409758904693606541650383867165853293620456924241255280581750658715141963958726199213862313820557677640145104014544777793043817229077343928169631321761514036472883736431422218895068343923240953163837305211529371622325669101942153786283138831879838492685480383350948413836198113605952968033813869749412150554242262838396883345842778826247478366236733048559354437922168779548742662400539714049090272463065676829578617767855673130761597894816123047869218380602787721615288830877612816552837811932779493956109014919177126680040034915758574532644024004834280644106367230107646231649849718430397247629209085832945224645306560336195398716374243928006873637073731707631464220366179495490236239703332347713659361754480524202546686286239137978924924803569397568880164757600842576094312867594125910407129476744825027915668873782384719606948408793620438802024941140201091473079661216595198753213768735082031908381500349122203237854727485165127606251881293878172093472047226180879493891276260648065143168891119905447238763795129578045994263371800685980596825661455134237333985704542309814935271833175882960046490304362668090457264505166371560621179304801325139578827443882551774734148145811692508201607922675690824250131836450673936291118321546547914850314784583709202010388427966338666817703492732165475173152193619638632368378672161910418236489120786514005758382261773178060526696588164903268039486125203121549363179126442629464134224452844882864466466909195177579616897556437923721379835273759991723986285322336737915337048833505641666145471344123256477016657221113832764905246104799893157317579498512827626732539481965354438471887817641536776266645922114755726400444923525510299435492673721458654313655899406451014951203639633839542810912154264174423915032638836932056108655560622170539201354006749494016409850460675509671601951659234052565975812300858939171201857934809865146577472573642559141238897400508280045563622525855542567700431144480556714865272751509333894241989297659806965887678714059207204499756181423326923117029582913268093417134325475859089135553142748903154235098485011645658296644245221514262609578778687138063816895101307446117643245259311699016722839327940044089502958466608997583237368792731987178312535161880099698659330830747430844422024179437188222852338578867511444249200761496563363900549325864417603904289499063312237098472209510741099769770514731345570402531882902934485333162542623558197114744953430749747190412703655864785628509079937083989012506923741348924520540318416079248090679289424648480701462579176193119010236905101225870169906422843394856908512105388809614985785818002913145276546922725458974704061707444757852334126867275555543461518285475348827511973713837453310284331209155353321579334655624520784706943549892094420365274036318309954756087876191057062056245137903908105248343698554166714774917211577342285347838740411815893082314606929132923028876632601511198582385106270305699494929247648577928089148274524716614988896158859313953066785617675746286713607942850632894271414146409227360864202308809686835294337146217873568792440675245700243725516106792205138097576374681635991234038615550861355261109726701071082345504909547378427531235910348586503865788653263118423895764132084081512713969939449737989923466161338539066215144334964451924026863245026031939671566242454723175929633173642996864524887628722189893801670651660392817562055580776958698694039549448412405650199377280116899613184894408005850861962371629439955370257940031333120038494229445683789308162583014318560385144927189847688507369613123228951653934117801916249083831195433173681813337698163172840249342245870019222894075145259039256704793624307509739107564701496419986843847816018441226840749414505490043711134629013876611922243805383316295565459967316006233490670741029518570481019788567285557724132174660160671020858077309405375740130471940939074593109962229402683833013058947982486351328749127686999113135995502744161715637080578302223278043472397783892999404833095986725317061274739862446354400399861283766386067899412135716165737504666332351927313509211694267101914227402464062556259065867853365381809371821185163800042904032608590181618051635557683690714539258537698997493950971902914249551580515716299164594748122897799863412933450801681690788508044594797580286538302318126965151012228423953372392622914727187358602651397992792346593618465898967275859449394847054449027169640924401518088401432618536346814793708941319370303246755343414118506117308184132935143198013259228778178752374358316895905862650231122056792175234386505815077314672054988661753501479679680898275285525104059505204701473937452386764255790551789093543462844534303929232636621199207688499469366483223926145317928344555735530351174335460877844795760961605156184920290026827496602076280113436707145701392939504815564514532755259353024856993101830361719534094713735835384595120847102296700011067170403097855628383853912843649605062102026310054587328467736967466547160781847742942557113914443878480254863059826861595254516880929766151894759813880629826514287865820800015138228120077476849541396618836045690708044660339013957861087057416221334623938176787975887747853093629831139422227859925836356321333689051647259965984458612940181093262822553823611198422760188431317612805783745079412525061796293683292053279213206795521118495669749607475532473710663547556897539403621363444519488563574302089888470467321933103653949300270888383060496159025020585313821870857254640279596552611820405262755279442482346564318894457009869532649815822677829877813447692238771889292349200504580753523160016103403924087915487503324685855796588405070438123649855215861529723002577469752879020053206394195513030797132139921224316533213814414787157541793788270251322986818266704600209629009234789283941326107958662982713255136462536188599949707713378926941816414193751010049378072017798961364098008619252210034121413467513201880792001792089676715933862160066315775507627764529808197155385761528627856468652377367298162072782480629519980365467880636695731521582422747871358869262507747299637008109682122069302172397626869281519244745956240751197434469447494484783500131652379604833919729950172954452047457058856501369601021702602852677240201984799673574619859247022871017758011560866595823287183205351003101005110227951014803456441362278451639015439146106857930842208963420111626266177149236025355831906974468869453546979953640101662877266441742379218289801184336040216262199081374547377910015221603369429609224829707473556311567745782281965309069339874956874383575827402364159623808955921083303968340279744821671226342145945793251664555493966735498445236836022015469331360679024834904844726921322009778134609491038200282616892503875567463593796993686492606433707408987164339134112887449370532086104507411822336704965931416249325820083744930446318916855118481590136396608067789067537409710739597922283254263159108640427333483738147148127384301673456984328278214402983225169902901762796054501126380096975399058318821116794385842216238881997288532732154419319345388543481088380669068206518954039021184910614629998873677213240872583169361603657450611019932642136644287402942790768873381301266398431484974659216545610653587072459837155586441578528965463825169269322281974354812572824383244318707493723833599062141651436927825802857949355091051077849526188890700838121145498416731340905610926283863187252927303855762936985339074597041616013372036561987867338546074491421000237833716555984036961951254783348310886341892232501198357605353633418979898002143439464339939289188682751574541958739283344020989830174703534490451713869874381667585673886133505245653352198908924260400701921695266938410453078379809660470345543870231250953565839378731600026253860751552312400037223623422431974094386814363409513860950537743461626281540662401092289422577516881449919122888190738398034458998014098526208639473335819992905298459564422105267369735909642756505210226364170536556260683338776706495578539672394377326775863128220228543794279485601531738577822071125040505553655073545074180086614730610047021784028188741274296471643313101393745552915631069232343339761113595139985248855087742092080865028864505088604710554867764040045669041298308124610382315604317548695096385302433953967439354564878566753875257599130680587047199604809817135687141631394765217720330097664892644642054613770418068540020996788929255903283123934838496105114495672219943484764318489158421954329227949071691874391445225264859784296085717270707871549469482892573511659313990211903291132939714734076930875015109105514749946774294414721963363374374843355533497525558452379248798198002426179305530035542173384725273140725967406126705071008247944612092942100212716390594375493792804948588195193041144277127782144303683711393750104853682361812293890661300322474858938469688758244193963043055108851152334260008082706878406471393229410870884509707193643146908501138485076089388677853418125066151761967655393980273845517760182197043079627602032775485631714144000204043072930083420196046324089473000621289150190440995146199326892294787152759021802383739698357536771222661387286599814002863389900754543075262213512677938494214371363768828964654701397113382215107017120462743845199221307075887589211628002152796933485055306805840787051947296906712463749880829671522017866405442442023411918940952474292966987598748828222121235382252257047329688530860508478517324177251052741479144361300469783639003721631722624048642048761137523965142362027986926045267766963069387483944140960923609722386584306680204825571940481302965954529967021793749943266294199549014392543018696750111118394265739716769533106169040616317629640830267784665560158490776476724913530194255830308265169205705418621702326499241435773282836064839806956774620241862824257324875951755972554714328702240526038839698984429315994742524598391481500908280379899076733315103954970487077566512498082200248842389316773966163338143248319818086714975137308333311843133076437648887978761434531377937876065011389438292224435308158910864996167820701431603152928482932895685105998693985938090605310077552951686519065301054032156222501622358552421565915797427731377361693365940693158821710231527837354084677832677670673614965197183578020638533741545932334022112455609708351282160205637030088034644920496801745625253339938614109266172550061872595725152466696985599965262069150905529219475893657171499034504583921548381144176151417245221170791824573479207879395930492733511859735150729182797765647917038262284474030832851639049778544424028075343723406169026322514337013586732947423086479232109988331376323330298333574156980162686615685500891247081219062776962942195092711417252798149870002572811952099425797963668053633231556638423358977603936404768840699960346914860363429523234674286430419485955703472646149943943327939932086464368885757194992264731916415349406374610038324617400917388221580706243019043693559117638935427401478042611142912384219090881005805194708628667984538398094886667598505800410734653152613527570140198694260050658054837830615479863963502647258943499349746574913002067007728013628233706988606109790115591134379952430611708330335964826333649540436079828255736470817278249067006857985981381224325920046691424426418379887047220760984954692808515077073198379140290425684105325738095233931070238388984457295081220333703143746757611700487579448308389860883743579294414954993001836459499337623588954318419397293295333573742574941260840101396874152851864730095442500015799028103195057407240884225512376657132121345842477121731485895807871534037266068972554687733083354344240210141258746300991855963882757695162964259445876777237596205709424262192096573199680206255927105944285373636617021959029821154917160581645890308289743950767912140721073842372465652070456595396697134860841757506455198072791117878411817429574952597570217541458604461312868216687660963650858514592699438740005679433740779318469414913718900773867656612744473342674471475414180074785012128020098720166034163679123174678649540586220804265306384268152176866425033937912840564035765059254011171259613724768880598498757012853567085959531483384846940608093865626583253048491098981051000841122497195429143560597490939760797769242367024312491160381795130761422325037489651552292869930248778334358487413774986313153154690227213943105902539353901809377892229597983527444103943031708819259066088860344828691442746067359802861906581126054345631963626826518999349625352766018872791504821834549504371989483053700386079437161988477426893113507921761252973071233440706564969482316397108551274124551445174500569716287098334121470667416999014735085422119620239569269911323565741856070186555917958595671525185443135039885902446919246317419430194558924854617379134037888336533974835662979468805198734336296131692915752608251965781368558644400518327622601480798410285558234751278964182207362263223813617433978618938306497598426864239977305960647908694654835583254588388573920035393167882135033986457014290930721617656640000760856498754357538640519081943840164280823832930643806691737608974259272584732720291604640509034962498968224639175204277622691620696237636655333251628951835549212206573883237337418179591304057224692122806059372499244476774884060300280852861003087451396965359728778919228177037466573874394881459820424795095223120679817430585068629349849722636988024368298529956971412123563191903563592265688032146318250086077151542155710811294142645440517469285294267855195524859048323319685803406996516835957904563330237324271188029873574132625991447986817371324548953038529152109236018219283708851654798094170054404017759623407062806382500371938266364991771929389651746992696900706924141155823477719216946356321046197657830540122149840369450765868743260367576690137077757819786604344584916528115073809626678676221145238529954682939783479950482677300861990239138813277200702798738296684178208949160705703155105753842277204917586777968269408985943784544944383457030867263589375134393442002644276491630838382310093238516291431174861384038461438854367905199671847497503410858955498261121584596361089601273241253195498423479008008370640374050344228684432178896828788394295066057834903971658816136465890219344989072947074743989602764207749081996651062836866242140272376594651383588802482729040348941388822138957802771490465278938885215826331203147914302416512864685269484835773061129701819591451362210630978418587059892289407238831931963017297970957227610373076308751675420324720441494704058088300649379439866486314012498123037783174829962655190519294024201947680941517969451011801581584836530539209497724017897897629238217396907247119552094980829331017404952558251358208289739248191502931185077276888203643086822428301412314587423138928983498860102226589869155641231591688215868378591247290502257155200129677714318029046418737336286014415412401750419785786387844222069414609174164059083058137775200696075726706371395585736896260579929464147699506484222625013751650015913286589814373016724386570047317834795237749383117732673882320710508337500584723156655500282227175021981335748623891755289302605896669359394122524913736713229276002398178713691034133684241754181226022362664909048704310043616116961665798167848943290784289368630394874829530103616995845562828376984424114555684633213258491011179630743059158343170942940920517626237101698517457220382613740908305925129399187626453553123957034994165155789867995051171691033555876161858039410338316758661941810803177408124811538980394365154383872406217490239111873164498490446716418843338749265648790380735849989560301715472700312320051145445691859285299874024290826755147562787675573897159922924555422875053562486461758925701262285353917037890296612530319384622461596368125937878262628978591037186434897034438975056202692496791466892035063195037367074710293037194884752319679132118972834849777641916807243046176545008494621061625768657166951252272929448143405952218733359412890011425008644761809293892580686660166308523291686749100180748957111804638303255847549519109933316198505743155845841140850705019124348979749725176020434969808708802982374237157664091772155282312061030233769485291038118264330037584497215735052488333748011608548072582023125405774515566482823228735427491087611405935706183708031307801170005625959175024649537156004493449791723136933625305898289337251332306205134064956886885713876766314414621121254196965190533181755338878047457366158956678864394993330210359784467284727333649520797254870030379492105573242780653611308537718181765918817139733634870124565401385585870695948305917566534775250732902194063196009933527892406076694787254808135030627561362685438318155665104536858217669931116700225034140003536301324149339969360115126086115232990683962487727474075398479322959461340469625765068185600368353612849402878507182693213839044672792499270180056707815338431602910958686656183332423264356197952349995997144580169094626738896468828929227959219558008704046974125591479827330133343098989109864121327564794438918121870552796400873426249771713389749589438312495378367434021080662258544589369640482002774984274319824950344631193277936132257754639320527552496985697129695481713564100148061878433002512527710663382215457383451158539373828325070897106199968894669649350954518014617741298224230080675262855029185867148455133380043389486058581320473597264827154460015219394538481411584235488709332523554945982250530393695578617109728010382726226585809821872928990838188588063165437258978606029478783370508147419907873928000036955795899549558370925708525034241037944911693076734297762227992979458710189642710838513274475561335085705287344609797116758999015164559504162936597403526965516341686669455867848642412404879050625691322275514405486791035844410724990739920588356958606747206755624528598067074814988305935343845223072589081956012108032608582541966627074857866192583174036058876388553397228163504780397163133824590355610072631378434160999878029667582458681346897489585295699871702187671029193317113690125758397559927531200248327165050519502078175383503217368305276873346758877482372088590814227383584713887220755777392439293021893767215607939532716837376454039711437027759318616051252952368642132714164447642950547019323043578772997464187136766428190661810428405721954345045954164413597450852499232452975353329281781163406142862880805282932062710823568581065257229120041402215905237794494541651275924972878870713052462743507264261017044965080448192055950632413118700118683318924124941994979809848795792360710414498596792047039372345853130427461137887150951276057099228241151795286983981760770315865203873154361529010478239828181797018619181983985071915846060366334719562474621930082874310291002311719068060960302970142583114855695060988262710413415829095825642369141747849980272967484744223417742785131276121030915287953192221331775650624554795360491041029907613769688219369603024079234004077773723082667886296420916456496788551473675181192467510736699407697954564678476541770251529812577257852942672642654913815469055072476787558799666412205516021140543178614378974989216747769300933291026423474094193959439304267085037587702166202361021939503235709606113293259262312629563267910286536230225651020879971161055301421219554884800331556345699032359361808015793373007767882478355741205909004007306825787486514868912804232481669205181184766101835747925684364932835684275131327288805216908531850303602986827168626566084282629494107537773110728157990304528916830790679275150545814750614646883194977754946481866033311119213349111666675201324654489251197622064039928796637156789080580666394390177231309127067470246476880277936109709955599097256098199197082992439136644314678329615650453619951150606526096848738818266615398977994487157911154063027886934140183390299521155296605565650469032294563065960374619360501831914589148029281886906844595077227604106211186974820688787159272318037510685041683571905222968130702648950113585599056108011408831465393229768767941939689501414313116508649745355465143147435549408250109886440963632729461816899574969569455513297389093103027546049031248903424226777029496983142050461936447631200211931362488062363702663468082079406891957117945714284838382595299881691570082318856474981664929351621147903637252675860493379417374262763334146772440612552491232050139176332544047410026529457064866197076498380652093879084705292382053242063061712537878841815185183504936479996273248926298485284619049188048220567389320222376844216726748273736636862677765260961520070178815862074971544028021404461705150805653226273423526159832895154401943135379137892538267192012494975206823978579700200927003036519843646518134666914662425450735372691337067701169859435457725999662470806078553602849980932888875270867098017249079482210665328552700203065318899956295101980184419908428007200643246924578758983005931715784734063046851958960306038353927327329924251711836408911624678853420922570620725912022651396328271223662506457072839205115047020910309295993932084122047616041698254580631139700212277113532193646453702061856580933216898805798715241213369708308593646858110128334992484152666909470245935154249257557120083754705781479876787464297371418859560252084735733004061728385533273610497846453507464285168362908251614511915970750009220726771447718311491096613080081570099110784992718264629576009262999848545326672379843389633046208094699337011769697070713660182220747798601104070136239665083454605188476025191625512630313672468735955714269490285607099097742882657771511117429187535820616522247230235491724014752254258497749912533266722593389503217413059575582208529349613632207872469363434226150316824826124881402624202196756974430212954701489741757264359700901047291929960600766024544372289882056639339596394109958796478663775835684251246039812734512014580145600011039112303047400709044575882093573165900284753397284826981971929343363480350226236418849951198993384884650433082580626067902562560855906036489164938034202437495309849760630469627924635729181466335405843151358964446209240877783844715706063158069353512038323233072572108992228806322102811204703518069419366990084585431521770739151895283632362537182185680450659275283388311340983220525394392668074890118512600414723866067027508128522089678046901568929096764259466986160062503237007874846840454660287260385604860637242240689350965868964056918313655778264034960418981198619802271919969231897193143369616704648821335702748430382416998076321401844016748628560276217092697966289691947808150338451233694066886169060193789828184597755342881575757051719948093701172891630104065532580565448917907968466695331201270559004209691289921333095626833131919181743921538541358378076056202505590207853440622602093468679733773374314376970049684749147778419634109037728400456853225831505812295970023349582968843158840163229594423230606241052921214861361773980275214498516918522916551482640238135079041010378022775744046657809690497738548539439045642752199675333294859684116493366900849985780795782386658640816864063345935268211907908771108575063000606499578984854524976454460197168050314723232469614309710554167973764421189799032966770662993943219607474911474934263196500917118960818306418987514128036364012834900030601444848113660913068392527155145350959767877198664893244501228764348414425787686745964842595115328508950495196683762415787291378696395919110254226022165084064768582534214756152159464219421378760603253612373134412758738293793234577727954568737059346476655286475786321252517355711025285902626900275025639793115680889518743751940471102409379577824052742908339183489485458885947799448144965389756281111371547407754667537804573957350815875940344707246918890832326344814958058974730255318592765847091844295826479248067885992704273369449429172736491714864285760326114105391798852448054567683408358214013519954497732176325130968157122027341913486279674880451447570034122213056372113080302367890420119714890104198715293541974019300084993606566330195543380903060609011762480403999530549548326844749294812008864623992134378666392049477882757220315220165934527261201388447926091822673438724230540358294017734111549256619365583269227672296943030873755817049424719913996024277895549339878711643355668497811396622105741720405455723101492755176469770845727207954215638861212463968571757935259809600426319825609001145004477153454576752169820175141334417244076632167710517538876211403881595250654730919827263608044946440147449677487303594947578687995312304323048296849849991067446290070370064935993025820201303615607567176107849313427493453531263325811159041632356859343370396341287692347104867448783752765876973427637320877075877911239707974093443155917499061104318236293795285182720276154234695971975353840535063427190807656998521461382085122030214291979307164892404601382430061062983712443805119617376964666543869083216409930951275689569912364759753403765411484659945894308264500647632240175273210008567816324974870054759327755308710023028265186724983303980834493427506308852880516463572344130054539046523659827111844232079590226869108624070590582998824133676850348096388997815288431648725349417167712538993827300036604556382760318150722239273668962946800348021579529227570483842829773604667190403012090029452440755669362578917740661060874499920516179745480582969618381811918624834819695071555317412103315685576741626520503392334131467142445893024641850261577239547608571959428862260694582116959450243204913453282951659167720347935270530502579042748281225223197274115559340621393163792897462018870636845284360606440965670861214626083206892217764235261163905167013625124431710450987413671642665726338067690749498998223783240915881108606851850919331491890859685398455001941879205666987485444789074637233624378884762808450984400534382367602047088874172814527035312316840926890717655792062176509252216884704570085499452728187418794725936133237581101311035548311128845229815872503586468404476922030250680468000580642823910959006492481952169029485027447142409616562444414242667168288831015209230382099175741370157141592499509812218300501524295669556552283278769720423972292365819633067034127272776291466873927068408932324272725759623584885730007658090486068982610866214723003042027149440124412196898291389257361110999362161313427175297519099306546252378869174617957915464301378920753278097887454621052163775716380589677066664926422183119665018603115131246816693582644759601299247416955958663198656532461014587432579388683173242132481473524053106390148367499628201953223087871849401431865994125768366075697785370980170615492122369542901547793396167041113516355998967819320714080792136749152889968084271830933369196635790598535572254525827857331191220986674659105307747523827463170063828837160367195599923200009156237644396586185810084325211341734555366328536541550484351210682246709831139038747115425910005249661358269222051750798184303387061395090064671171038717709714956671582211702033996610011624784680691728929823157575671638132539917606236256970386667535243227442885368303675444251465232407346538285920157229158980379422260120776580652245440261905259019712740210902071636455426860854979468316561946822266848419369846192799510083776925064788120101560245112763985026784295828152518965495649981310494115080428096404490799217469925599657731189436100901972166152833111365438998620353155536034258232451187299489677174203670287357421372360176086185677152486939786782463781665516773129612791836056202153442636586025891404708997294612557515803314732853363468035472991752332776384726659926778843540206059632091264924614328575783002724832988117292231886693292867915139692017624733381205909219115208371889683495831020572453703297585762047645028651218013325413786636519694083891058688983697225656613139469255744157351286557724531830537114300465004746763568323445551825961288065068830096266747758808875007832354929766620700242049810676917459030203464127644778343658083606436406376705773774289866787403992178950521820494529875459115066955547739809152390167213189212968030546318201362954649219067061529036851255013001228541769029718692623376110756742591165072890996849637945817730215369520994885375622801788893541999230140441487571077802928545971685358494752791517101607236260379631778663928932550518650451996550038561454338694801403121764266994032196032860179135676441620167560445385228087717543552916447191291568616846474020347150180994822487600900615753702164904416481782502088406132174695566383055735493669278267662621844277776730683347864719389643451185069894625868199906549308448111873838796876996410859623481148598531317893604086874799671884672947708261504411182962212574996373034115491790239648133693286085748824112514103810143382995283413368968694569061097667449644584501859736329144863677306794722782076414182301003418431600731754168632754333775087497941037545509267970995402788211642631243114969881634354249576290885162151496304419528448229926961883162856790371714634590376245090343318503912352687472026307253907384408827875283602562820873334668038373547316253603767023547651363872419600770411919026680266200476574630195708447448408221444377406500122961208787771037967754187192244055498755964304896236167664875160164516865651333236394023755747254479926715284988293913448907708851570304381296525472984182092302193779515429448226662501494542559791428213665580599142684228616178371180302997104425868688665431227072157333019816666225199926436714250943706103254439878238395887440411585784392909718280513503020791215287157185668475022241445383576024023870178454667847702440076541853531457978626496955351022577190409894383923476077875023745060597284115844797991286829856609294685822807448882016132589077010379991534156088249048212854507212591795161665648912958648502141907286810788017057857262521232241954443851292198396474427428676008257656533353074493723201124982903667968562794570616891824854659539114383893481680872502877023121091170245946586061383412845502116330091497184727649235248638756070015005768619736260805821869154945581215477056829353234324877497260853805916374078533020103000591929228680377826357271184294750746552940251443358636820291598578488637157544204970490735121152700856451772938863889059533188041487773683906025304785273201302936079307411795720329977379126864488996219629962039256758202023067290223968143729925853386472685742248972885759896995627636763254315624373222292426305621455552795199325089631220880125844573586752251630282320106449930331551905538403757247149250451346653419520850767987250045004650472423429503210459511565734509200422828736559023788745131898811580424174317836631020398474288901148923861692006176015042180556367084847230055919877776256508034014924725971111366410876200447312311236879487158125721895905123196529289234483504165086897807521902288435999196754624504850059322242770320517720069819004211174622345224081747388710514693612024307009282453419879822052228152274132939899806658645288578461606176978899550484552141321163411566004645007699461931342176409382062287379014114245427377471083089903502329709978370417050496717441681584917181856878870312239046231925738321942746945641383349162785120911354595232304732495122381837909860163560832527385813272131607180848556481482517261531092167098206859261172161333426078438056029776065525623011396244232633391136839419419363978007911681516959601431056488817859577372721238561662902874566246021651520285689504527679262977018148733066454854708487162038166141842733519469379202163622474851694935705415524056694247401423861708686334246701831951724124114064092421669804257211134559013803799971385587816540901629326805754869352022226202047422229699711301212749894702480374972217888042002233192085054233173523570229391010747876576459036265059163159167174792487821835753336033109666888601098820117343141527491552981128091305159785480425541138289361960346743288210814338964743030201866074976782739159642545023324653304045582476310344982794693291755921694212396532103108936786489880430297887188130070160973137789549441734687510214857580679723740746664386049923243617314763784275363487219961827553521134071875837459116359043324824216069713277461457888678511971866364654918951457794623828551278140905260596037401869239051298178693797663097035823539104294626008745193771699083108523334263959760435273778819802685477607951948116434419836641085940867590476229612510547492811200058594461268020383683135500329792489354454196118202174877169538235574854765158558028832520508333124301448279020426746481728157864621874464263840628735708519545143114367104141058069931088907072087133960850608276095401087451900891573918356876929588035172122083638680458565152944096096152035335814039093859109825882146350669538908250731874808966228701397772689720459198594170494100745816585491606706569989487533412488985550869490986399231890912045049845728154839391755113581597979594116841774437877290778748889291725913282147603539228586997186550062125370988170899382872630698819923054609612488123920191191719986593610987454099492181655608108636595581950365219754107256511542411417976701497876715328678822712455327196586707506159818598648450469605283535387928392381559779566818485407551708085197926065788465245079399539599118782813237447504430902693736013452156235533275501367549752436960676375501358593750863735231602892721408874340155390258629155856029354160339644697525067599743260143296418043581160094073930027000289379701515771369058499330587888813918935953272754686884162064686939080452270595866258358964721665107797166260424810335101299373898338026439737361189481069996058104511860428914062873992445147053428859245696883524029252126274899578222245494838152433649013698655265338452102014715680505894209348367767909440962723213733652537420504481856458913041533047619938989906523226898750359353352765068620969411834842425042514317044186034610187064126277926713564996658073509887349653054731987580989502962571634081791188534989109857337594448072937598660295445313149516337720569710022414572007128670160975608787019026366180472457706351433534208411373440354247411912861994161295862041115155484133027364311683830668849123288071433288148243977980344480878512817685740059378333411762457400606713114456846372962994260420483341779150806410552794895206159339323269376300249302148590850359180532330781845684607966381277922710087087054804015463325209820533571588962308073264450927975728040384190025469009517610133052933507095559231788611344743358193915038631957915841347727825738753957848206875605864451811403874143161914650625903471255981252903308820511236164725145538997751374755662787743984798461632896078088175948650632293120825490745096895342134600691093973479484469966422022848151014353361027893072944981615189537827185445064855413228994786002488663871975855590132537930699744400803189411715271202838663909785603293508181203317546385682354909312770154733027419427483687537696969475996639682725094487090062541275649401120612513296113978807580198458104896741711179164182359589908585001827353827330130890978044796680203772589401974375519281233476836422722669413852603737372016164264742977377166401052670958224692601432689676825508275203351879432933794597160300728644718216221407873119867305409655680585272070222707300805000864065175136728393038867643297239945801673019982030381274505172811971823536418192870132841076237758836330578425617758173384848544228458184663363799157836909849756925203310684210958516640037168748204134163660234441818625035893509916977068043796159067012666218916062031706776645007811740021646756510515715492094705936476902227257783444992483201516801237086420177249607846927301447851625142416498890606888742806198127518203539574850710429061329368736338625425988138847128515655191416648482096292537079035976628468856456572699182190270433339823761306972700247609061893534362510312121630254460398337373616617779439826596792913555879889240530093925402180243957547019010322375677781569664921740234831758540747442835828183742082301886003565708231373638375628605063302624161703803512224666126162835918006576030720068249284984711782103849153210408576455501388269985560288118084485745402535894360021890519462122742788918262980025915525544854437383787354566017994636611578720292795910443338843589383439332696703593754502315514430340883989854076014643767988258962593862465937212527348822347058861007140619335717853009267614104728124689953524405994652313105290681082721416681739302116014939105877951700313034946491094385945497753647975467535099429670541302688020945613005174928256474658208663883097481109980220171055261359661856541024882103780977408849677625878614827426278563253979240880220705752612952906009601076769334518892575467030965493138537859008508029497083057267284863109355694073842408199037043592629456980789830953494178850314003024948642199408383715749154268817614430337035711608473770748951458441593110252474361999368008528783722889218122479438132862864380567915998614532460011520890077446347170316179494204706790862196863724571030905097205334722743588925350818122664385464820740268552875790739808619643412352923892997440954802550520971375565628138113722715949380945506651231003462374487885718416863130295343931081182219348084769191073865567050674993448340158705014409347884983731350823531604324546684021554704069203689275293140225940151013181569576354609745484416174060370209330718884326288799774706253335901106709282322883424324646398734259226366110139356702086931555038538419130433941878893330291540729176010404610558216563255441015227207605541226123004920153017286311689448013142780239786988724582116579696003990777608259249620204372553062655590929598611753430544593006327096983967930634163762339841905286105174116059019895925496354873140406184410808600091469315126495776839822093223837001489279741754533061474440187013791256335926744159863531469423540431552737370462868110047324960754752173573916740611155977410828736926654324441712046801602957381760678369811819337888075494536685315878448341950413354494392561406692226065133681972721330485142978870651679884729168640583462643127473506496554829538505833804365589198944981549391079260143900133541380302834581039835855504942555819846309016999742898519169373510343694495208054477693357558814611280944751541960377245413867594266103115634767456040291815605356190371626882102814187786787093939603184614233717935311589175116802740653332321705270445312210841785578590935357455865019738537101073639096917009066588268162293542816532200993777886216188967378284526008387570902417324678576865186068440340860271733435207756122261980681198324839115020757319859330570616579113238965189902651490782496758506088386938157333254634987052757532650114426673263922351935952138040514828035519084064089216200616397828043484948972120815955655870709806349634183416317319071403743979623271373367660752368831528024252229429065575672146846232385224196845367612566935227460195037157068357833499522022823202800786645224281960981292574170164476145864257858817085045473097994103943737077684381306085298712374895802209024152393005295767553535436077814116368657643603782484076912045362017175177445301290641699453634091091779988304474386591273670238276523180889791529279546484030806141855226419820204342110765308366547648785024877496592516419767658396601799761896883951999915953830483927547150378231316703561651495007877262235666079027494092461844560641508027679082771405937043539258326427312387552506091781607621888709252843735090382169518627352326722677093601268906250530068657845095411426809553150096728671547294351625317708809971014796846359560066129318438153665253273094965692074045987807063203659915860451019515420021132391658966791744878822863206413162744045051963198393390822871649676145688967672253493938928747513615566522222362688321719097709223835734447909411105590898368355007479340435701959942542782324075520226111497980086118763588714541566340942229977048764269302599563874190959281565156865025797588963375180822220423403534954331276407258289474533426518714400833984847037714770076094183581860295803839334169216232199247557513886920901426977713040550029715259686202459150229634510168994032512680332147947516377954680207792601391430949301500290401657708638932189941000751562859981418469186177471898657535640417606202435516812893413581978541499592043483568120047592200645912008198247905282698911563265682251020006582563174694564995845090259888733760847357402111608151526512806476439933632902945291456931166573859752177744826210837085657768366079590875657398888733598302969276747998584691195981892670993921772051915468844556133786272889070661882186846008797971692203497451414775494558855567356992042178677530597656298777645284287242259160897639676240469860747656308132490202789700458057409628416911855030668334630979879760840130235096766333610710197653891006300935558910824644732966482372787739593792243228255841562632567014763580607018540541232402611516599140031752133440488351571502021337407335117870247008045598365114079744455510067413034643000582514140596556616037442733429605854315131693030972606424020478194496739433016634614485762733745262667645127300315988998109632371074992642885982184522267469621558818522630441548191543999526691005230061828400398487288256913425410631479551784659006194500018350208443076692791268458945588816040751680919247429500235246296839226437524759658374486711673053348782443501228210161071773317356385546208376602584936029103016420025933050248097454407961554866903584649709687042426921290957756328577297425305320721121728899558674272917930671377957399312533438643535226315988706181320888846382225962585344747915047252635400665463649984630505342579628868419367243347312370472385390192725263918591552759590157541357222266255422432030628373871115306452295901392238320328897949278507291244919075284731588497649082642809327881068761386972973201544028278424331387884379752041306575198098837644067111309417819479399644360325035958857418472409712158086722277656982992052676661328589143688720995241699621966010971081402502092487669882386687219724342457730817498165426045810887599650094121526155128245050364272882887627359533277181294416360627012256775848558936053928358224994933837774771547502328046488625360400637236590875601234184860899026247336214940089875142240174479191710494018843849247435455881220773811922188582998664677003080160373512972531612386908999914448689913063512708394144817667072053310571471847730511727953355430554720955808890639754343767977023607993942004784719289987720106031272986956725258226699103187885465175091740165462373569260224264574245154275554295957754793251193974524420162831740848076850197994521130774825081872554848816459785200496240153837765328995573574292716024156467954788100407825695662052131511563483329113286198624693848987602808611236221953127586655626377758349850855705204432974515571029875926918190347211634015048508851054797486701738261315754048641882421445476923247440494192181352760382582658030909157905570431959396655614788341260983972634440390323138696339678185859772903990495858325119513947823974479745552590251336643408591467474835586082738125546352910669511281466719663647480634941251306715108345105685299283614119297521784954860655103746299284259279464876531511202238624773009373403012459315279119027851662001799835142576590386948599669685043084087777360062059117830582440393465382825506385102379354159763283458054041664040068342588652752601958651912851759429068115943744286091351943950913263640451487573138098352411314113169057467794285130396108884531539104827169343177505567911454404198543700856387818343497701342852358747255987352144930855135777916816120863764523504428594638525030253207666276598229285303055424058331695325847943217308382728677604734798626051149668163269492388640718439776519073871458966662117780019244782761310170893784406967979560641641505228414646853288103107578248150170589442290857789426349974827116825046499616225098403897843770314722467013390700797488235218115916349877770715429823455193123278110010809562023625084860993046212750578206429267693159879261537340474616687915988888805274261526968685662322818862393669332982731081614748779826255482883591144795162830753461877034667724482827751700942135767689809071962173137066568971602952149699137994065192201596783970117482750982689892358333466270164363258471825869209089089617729021100343716624714225138334234179942770813653229860111306769529530675447956832772860951071494261412462769426120344990244103350586526145622246886325741609605989404416543117110326503752767043973503059327646821703759401518544047688007980471954912520950179597769289699301756533570078361252475800271216039502937304364087632675987141201103844974588258432517409784093240554676748568933756919060188097843542438666158978352917266798606780419694408692005760355350945404375947480717714498715329962279670123855605808681313141996357675259834304624045581876193764765427156083028359584431588057874879942650867385963029578827781881376923588502301364227247525823682943893613257927472108115010100070810136548879600575120124616146290837224472481247612971706341650850077642027363759525074816114900690397926987065928955172901766798898276985777924527989032864983069593946680052035477783173548852403388671777231009644018191953494945741242331257502555062845026243354390438965160935953340571225681234218272592588388372734769324628014434190228718147555701116073262172954852235418884419201695910314471000042168857660000709930292559297077548254510225470251974480376000940985283054053950069704684916874820750225621838693161896857178102460553083660730847449075351613384903694132048947616500953229704857251337469682122559818593014363972960588193850948292426173433017273647527249337964449173152289632654474967536821098788477513982714276100685555605437341347570331843431401312332223055325981022339650977316256687660103959876173622178053234129296269776927430293110439347286338592048089728920851160368706263072185777117997319675441838379884928383439440443867532650268716731321450976185171067906218296550868881987615597590700182111550384910137482551067664295649375180188784171728352550912068868793984528477933360728718014371638815986373457629320674532633734133161758874643415462410954622761172847653158297563603313611629433766864399210258687205128439911063938675568843369746067527735443461077920107714895397325072638917079873256155133981685757679844898206886629567884758642184621315585880366781773194878096038146112172625347087734188475424261968164166529495033650951598025500610137556628744761515883856661910748668812758927080663263087848069714306250438432621703756208817860793890724409512965357994603918239675134904504645556981345328696772529279661395047782461144534087011303383038388098762158179710669641502040001541201435358104155867466129116053534650132755231284490882545859796389093424515137248035936604127962977499053804352717749188691663029874510932854399022904598984138800643680206363863628832541236285612846953667832675770787499587715515638686928853004912765518112458009009707896970811623926258093407728430991694171663884980253597163550995576343246581780712851195543462820913492643209051853183021888806931245345357533367837217456919375931314633577594449255610690946529595488323769058248661868294628258417112224764068814388197534250190969285663794667291790655129579247635428650290286657192838068925413429676975522068564768521105470324299877135767838933690296217991508921337129321063300116356217973019602023248620401615114894970740475155877758951579450473772435052449716913839259283841131928720371417030080642923387903141111564002518413932746114322269065632712730008886470087397058607688934787980638351883419563657784529767179807024361091905541800043456580275926396489631430355919028193593190219335806237528787853854058358415988372859341810424875271443951595952966234829643851028049040172901283030853556005015135898397077689799551548160396205372651648514887076344243376429167131298684417189463758999579390032218956706892618285369054589322055604685797287504793413720555243626837988047128266810372749508448886543844757570729567538269078334209442830802964281683864688163525225401068433979350711229698771668973937174056175639793653176584212176123841864952684583282404119944406854573351162493214883399928136298226792175056246935730331617822102054096659424060012398586960281716403275629424600101312633201487187908565744060291528399431354497907403746545323651295165831405110087939040666030252066354949884819608344309992971464099806858135290369366313028775098168922613232378599061014374199265485373895758533469058852464875839462739388247722196052228690290993017390322581078526692710764513311736191092725548363128757074045517439583970913711094756674021209225601581323655646235730482218482415979743415184914033020825619821758292935223237984027616031425368529690938412740627072152186776264001790835945147530290211740851424006101446778878858259744945448197910374752590963557244761999310399924268085723497769464089247085062510174891954673910749618215803045159926156059311782754436808957325212111436479996616083911158275337303223727921242852391197360428925558220172613141885585565007045943853048450848144211875456211210186349149555836346909064945417946423427889800346873918897558934185789960763028320288573642604667168683372090928180818870777591297443059701119817084180422690349320862644561662486192203344863128800115868773342886746538887992944985599051697296169777545817086932192741757402382410009593261599522460817933611147868477151337322024271387764593601572914358125388330917077550407671477111834338663290476944851362119619875045206402699695830820040821876326689485039147896602247852040190337961791301030487781494133515217294595276327584179655545752982101666343234825951777128911217470615780458857923550517525859881086415479007019771850953646524715217294382440495564345067943865156248185218908987898054824295038231809541425237973666048117345173409572277106717507105871552997060212095651967260120936179602549740896159039759623191305664581590635098194521609892061444596966639255841414225155638631974017514625580680377708298143496698810687116653298889891661024531278528472657297604545097965060198228253959806344678927683679513625555184975762043122106233876474820904819034341644052915046625309699636646800615522025841252001033580983969686092424908954115165187172320743554521737329947836243823867190916943533604583183917936568813248467996132284277298953033759774783860859402715202373419771144760062882346499593726126893501750175964286301332178589526381651927514359120221678325549071261703691206900154360496606256564759113600668964804742709333538904761802847840193053425874358968696563314471066942245317599401725017819962281753190387598401146459261766740604973181974138596447794965673157699119848955300087403741606876816209358697047744900427276872955275376990141804352758939143308622546271200800672422311306623195409328818180080548764618074476680214278758362057773107261769107901103582471770888549622453656673526189800263392579467713232915531301021258666248662207479833530265396522175184887134852857898477401554255948456053663769114583052343565908479283354166219500892327098227813589928497209170567268468179336205909549359733071555186029468355639114616429463869080786296654487180475526081667152155519853808702159445791934726470199808399240416312138926112333772579792428351153243041719817039290349385579980377230683218004371988984908000080772868245469319792155139210736375384476674382181775899274883599389319398631557466732302153329823454316446740238964812455106382577919937140110792286775631952782160758466311543341054386666303411165121204980422309787121617627738368215539063462592334429531715888856748494249297568773809626349922320856992449273732382039914612476013880491543169583909508530652799374774700961333836877851801836750321550347579680381246933422732330153693724123116040630498746001325401758172730961170573123203370775393989161236705781843665497141132876167775681464415683342497775469690296135875094355279452831753399806138850457811166345354189294164127081190158838609930228200647279161027697595762633893357225539085435852532032127570908408621019379472061561290126760825287027013483394925448459521972993422786743645297020701910271549314654107023862650209397811142436100515158763154008537781062946985566213406434153846686893416026446417674903100651054290243687061985613359616513213838951341393917925596109190769812828109653102654900228119038348475314629873091150965237949112744340125493078472530057019094110832927162314471169236401890915581065771671503544520740864109910985196517785849783635648396506724616617378587858053817523566217753103693286548697682892482315347474688170337583105092167256575567413590032557339136571668241409749354286033313460664400324896746377019259146657740409473660038797956089749448398076928635625015011526528642293513616808630974329385507206483294687985017562621853011390985800655779155191986055151839832506663593806211343417039889213554776712108146162475765420715820375732831597190761037758507305805589711965907727052102715078158956035790890123858413501221652265149304484359033002564686475840983782551207450085835495638467450927180973863952206643217554623230559908623456151432364243152060145670167305230544279891070673327668953946892221080682148568575862036156883408216331525272385625192839658804197416633437501677991510106820607372901193471186248175264428829662720696000561757555851333754796307352177137411430173190389386116873378522476031685896084252519182784660747956839369473717324342152580637866469318522332748295082211004472991589936068136820558092763165410612843644833542515515210031159340816170212605047127540060343689949373418755493293366877024428695965936111235600130235641188375277039726004507562931290318745268200523716479858863818927907424648933332753501256546433273858747050668341647292979138610199787611622087848780198121280314002993581060832277261329111413065112737353151627896345244547347297407276261354605789836704205177027467853953059560713722632876581554432624606382806699024420592583613231899346004313183503681535186442026373086140436093910318994475737941275486498575578687189675416533507160234335868824730239875263925740863441853940312482651637308161040813869792643298537656585088685379348052677642465958053160838538795469207308029447480668896804403974064403266635423256224963530810226282383839074651164916959648163366161988742560043248223010161445418556612371284540479713461573364451446016168873973345378572705667254821950931468424223745817684855659896362698742008379141403742480837679078584880995830635983066497906162720418210212355720333490284872192230101329730776385430047754397746426811146418401627364306291902355536547606093735912325535805007604975635561263936234479328514639315665144658862837422477515319677608551476189499500706629902861503938089209900513594484124060563068612034280742289255862050741511425449630840521991794626808312443150634284004029824378691217562389410305317493431597757274411925993215720375719570287289030832151223058721899233381095030025144690939053148315917983013029399638268201414241543907896174284951875899830113373457527498816370720158698798597920384114527495039062624452873155674113947923754369872500210003413252546430070389254519195838632912494876411627696785698549077838015412533273780911262902824336847937371106258798103619402089644622858153447983663922893554866673753574160790615279148515396916005152874529645025036455394527321572634656022559531189323390517638531947653186497784827858012340029851614882310275348255739476213011527755000037950738642608410751088324454517878364471312920490561120124964854846618489315975976196988816697637003337050238934681773273961845831721212470637159378303784474682326935531409296271979499695001030694394705916318154701044769879476576463804220399709727687039347656545257861825061950939167075656840481357611470534441416004401877031275260587321623183784145988535197788621653866571906889087358746680048442088788632469703172890079185193894564030495987570179062586348523781381627748642576637547824000862014137289523859939680850198031907248732074775647606496200141458385700495867435304520486221259437809859170791273965479733447028671088119379395730170980871905861920007861374141762455120220403283350986861279504896983755043786297109042735821407668202730984834541794620589052698052786872087324943062316038573126604422723083414089854499335716105612145551512027013988198350901096845612639847440360774865779742316768149849861508001963498561281086737211801220159269482864943720736493957441224175688072883213347198962239908225712057053952940981625136749137388838228731912852523190139540204156910210359392914700859135954333510424340089689090510729257696150519681019009332732913469165173404313464158793342472343735299265701347920061493334293107646467010820984371034156353371115389901997092868022310042288815439581052574327157395493525422516662447979515915230993080160097124668174390125207303597997116361598749950094520782714324222146358262552851972291231913072756882076538401053122993106084960283114586960645255551505202451411387681830093275632379199744331085697684253899535981933446041193020802957019752305899384718756656349740096195166541992756729592719427467893973954719250589170440261663706716157873314520321522011035905714449206793000165272566370846574993249157006010896863355547655939949450574145168169752152489290908664777163680832664904817860182993946085829639961244549698637436395132830933681062637640207033140545980164281324196640456126756848825462881052085688347055250237199597196728571125428004438435539887907661163393716510389681528300890695618602763650927962787988912092325076956464241665546782210615466957478749626570768225979106132205294485559161600531906870211428004545644985689412578126314674764834340260222779465749225300473054967249142582205708483976664755465648003063767436798187247834922918098370363290841167504709191589813167059424505645733819003887890011060991589948096812064528844763679477697346549999288439465758294000035343672706207657658244421182666913696926798561135414326455791692755340364522746345560808085132409504423011136507714910700284105092292654574795708705525921239244074576898691844426846995266189940253008809962939958287911422669492850382051291100176686848136540254889820270923927124315338120036891014200658891544950198897358752090479690746249637592982892683370913063224444546126711714309255564007124658938573769098627667669322670324265830874035394696676618225647544632506515456068044580141637460485766528721741501854723298555706330734823544741654817846847683327179206990831610743227612121754712153754596334756343314907629605231679854111137866590420224656758439148047025013843612402193461779263379504732983769416567308658412367690004763824634137580436132042145634732906653169483739742268478507951662080053167766204907999287042841726843307192634161192626106666217942937631312651407547508537804324155068485715685887474178530510310127303022954265207700648040649021786126754728231764306157546697050046001104230349477829646757358559750131982778534959524348297366499935324309846476003631215725135898133959549064687752011057934040667550702421337812471474450679083331524567877095904227612885447421582338690047428151459644118169965477363742286795520496904365752272743934362210869177252273845322921379684838684037472494007340089224877081408952781171805402442086360361446249645715092871791457118691217756757886411097206305040404158366208303956803362132497086970567948053510047138258921307373724935819368349077664938084623429448963916815931206130860244808916809007499671269259064246615836451108308958674255150632031160908493332464138787402395301828535700684495602765584643339233188338528772909675675827752771629651907281967457833537764666009004965221531514828894968937872549962827964955853139179168701576998702410732874655633853469065893051222740310227114916946269892450329888815338754915793741547278258161509074030919673193654071466661678800493883633929794597646636559365439348641082340380468287375003015229046057158001468146215118014352769417706483737442935036406223385044283266034427552097614225167157012377986935488925851756396970926148078057174513876267388675557785852367457475578569583639447047426939056365549596861703054889524017989261843789859584863823017345920827557648230648462472954338637058688848089016270902717160308064363757856959813400701454625796921976568350762471553381263311619825287130511804182251098978912639277922993887420291603382475107984248872855198105844489242213202017750520934443223832917745728534732470197499328027667988377923617130899087750736075570915703782919918177610477625834469770108603424844192829746466715274072432676727394777995710812424346117784045128133608707578467380111530896381470394124425204813944883229354862165451315833603742019653465080174346151221139608496135935449045910779400714570134244374511604262849263433579225970529309593440314206916038436894401067452241033672411320576243512183072342397144432931041698446440737682024229344894005334177857207867874310066231961594831651750117214694110908363645751430096357548208419144326431473940468159099165582650682883424930636700471238984507473859644826021648664233643359033370900306100789842285154009024524837486457204157812569572898666538225376295548695052099855901767392784046742916369556650177528730792287940238146046155403746153012127578621299940570860379033164350860304673998386441295959743881362810820293109641370229687230875609900514084071609588258691022105332710953136614253952962092632852110330077240896906377343788120706224818645444762578071783446696249365843108116876676927141522900052394765727360702166191315770822359875416279903606377493230793209159323988844644529539783022644955885310394350687713341513268695576690983789213635235455294808265086781563989230898508223321417220291618658490366822276486555903641578318123227040816501080167688695517675508175620613514960826642434206291938664706150756586951551555998555708497660049598734884292501077262359770251660134383668897032241331125666156077781176623533154303958465629683543342327566232988873412099306955187739592703917411548460992545687986399552927860027753291411300095524163895032990939280614074243600907045493411277971303062692771040676124837258075936973160834296616354235932106393568497868163756746760192376523529663671556701432386407421448822432747161191888274506196579232566591240876756957969201043836214312150017628757282191478205687730883194199961130766663382527779131565260165872681736128274592735819522070100572294665526864195351117139351242651695209102758679364536029732162648927566191785995409918476667155268885502976828843010802485257599227429503312010557851107648873867084023813722337289745063739214968307053416321475859150153993480109757942507107380949501079588710745101600144463640090914025008683760191963070698283479107966750013408161258739087068973869082978521278843655770586605412844571219968417655160552773532315704542256255986789518852402485663724065237466126276076236454035232324285952641039754161963934289399768605395810261610599271353842092118887246579106517388315000223222465774749913504830174171033474199951835011060628211112276335002346428379048529383958606874243151945437425435656677123659287607811525054281678157096290311283673793601954089646455759579000440913826711577089611785368912583731807452233710540346916306386403266327946949490912479677423427565647182966632877724293982777440030568660870488702823858803926021420018913972864566899927367709057779148380763399437704835862602998099992001224199663538746446448633402955472884070244231921599101033839411876597549186859934901672987611505800067903913870348210778041035681330549312797169651683076680001861858516001580380929391550549129436731989569583476786268547884540958455762825376366277803194866297508340951670049297342993127871956310552580461673370289603838438819625594268458781435385388804645914349236905362177507129261010538660887759780716307362726808077081933518526530333013314279414427282352483352883531391261380607153310933150678386042955988637253658531329975898527644869678316906892057384524426259697075416587203074803359338005081015092237802850245955515286961992464175223078879708810578004916415615334678687244811400923957217784106621861108669389099648744285621245645299952766496052653477428408257597752804550819357340938288289163401852786718353151538607801135392335309069638064154739595152198285997417182516603266880497639152416797588388761376503481686325012337728075273392264383400464151135397030753886711131811218072585887523931665158484119236374636806348519894907528348662535047463266528130585416465970461806006651678980673303929037190649613062503287808048745347531423398063319587039235773203873397377370815076007640252084298703594886145648595102022429144500986452293252697689981488058946744136374028355644508104270451913343721435962162376585918137642205767508927669567695925662227999009936309179439188287236911394579515295889837677218821381979209836920500716913939948068346207087967353701734221114021364231758765882082012162164353130150278513055371724109340283105136801750908177638428681046848571268576033122894034668835096744856391259272678334439769748958303872669690712224868782791290818493434666314325495623907887499031249841666189934897145466520722261250881277027284236974379491420055001840222751765091972534821721697336488211363552970458279417166729259347322619208214084821964922189535445609815631402860573630851980483741891019056786349558743206800163267877114576823682078815462379433203889452425306030682855187714777811730905383466353497428358850756456818593763932875691369473797235080723848250467546909918627396958263192542946404525108998164155854479729690271014604933617427903520681980157381545932218702567927882800063027833139560768872366863498204162417282066200300783114435069521898869054482093999362690057108103639308085744292035512432964056029306429432103903415514051694759871029225873647348261314613335905319422215425523863262939741654927521768898008836229963101187121004272984975197374245132948032919942142282801764367559396459728077604816751117294705578574115641415177320209664196265857126428168768646679284692850741534486051626133887636584401896944029116923148456570045160781504185001072094935755716395874138710314151552478921977757495517606941927813223567450022909120691212286941846779491071975150602052417935039522204416390320035499735954201723659306816078002847357436908623919533966700277723760598189624574407464394335370118406577778959675531698783925996953181501645607513898558775921673524601572634112120856039679119074850240453964710698868275822122765794892247564283267285775005296968626652366594645876831523848693425730207410450208256665871240307930840166451007576125292809572705555796647337457447007853323352928508775480917574794887378019818888266088083129125255239991023335004852491057340786983612891158038138189559668868971683387299410562042747605155374191988358696314026935871188044696482572778582421104767611894278670918252711733951558607752277144139025195023170285940319101615420775133940437195420919347821372390500647060609066068359996526037839436133362286632382620344251936035490820951260792780114621421175801226271764305201018531391365121893943975420757576879123774979805094513263549561862535446701968360143350433968546687732585586213451901963920200883857674772727809484328873236055408528940203026967422439900100658721555377634369015572413865937303751735639986089436257910387225996845056336955440517463441959488298665731892990563717027378994332173927019570891524203173607900092026498610209715058843497989672244607830206150549754010803008564027815489693246517286661869419911412836863602984347492904656319214468202238988123466332689286075702066033221617953597998489811571827548211775303544896869037241269210090842158612587276206884535906530161000853216255695047908049394731833161335003077924729846019512784229547151647900363076666410711619953626936856563918803232004746196506814755416808065706590241100945369992256947757835898248321046909827670974415152329979911654518515028280465637158235278001794358737188281197452958274298761097103810649214323203455418952824810600851175927668152437618809112157338042858786535704434121437566566918728454120508774495587053809252983969824062581113047483074512772845642149000642305291487129225976212822178421069770600146903172511268991742225701019795336174345719386926972594952993053000090462003575263063997870920717764918053706489184879581737891033434053441193944650159117497810082425162237800860788917311103786164386801885653105159404988330769318063350483083625236969364775915998458565581478297534181087540890346290731504177251336994277445110776056581502834523912929456053033488258931906952577698928150232736241198673207970607084814407785684216678582156320073205805670826401120715232997417713944435979363830759212300789139785972938036802282463379256917671150137161767519142912027058895690403142682194296067350132675607738285534007701033030829588001615109847196479092469144503853773322548509697215409694459870812497488067469223446975515459801360063071346006738994801702704761552127813672305489352322672069212960552577380892419819158651435064709548757909243766971357229134927795538168933111541092488160656058118128258758576858597528983189420857192028687409094399594539831156677006422537605014649246922600661870913714902931443582185920663104410081807409791200505610102727006476574630216075382872977925384987498403310810733660121789822004869169292811252241863468906637405541404433303810013987248985486387998640761202141005412384674510103170070288492224745422552907634056399281037145800144176308374249911233603584151760801474965835835768383329224244200999075728113659849681345334722678287991048591901993146316236350454371190308314110537327824606741163119781158448459065404587678607643512840352839631479605922973096041053590426557561024650188782834692807421468220707654300932775339098096167102641170429594246836451949105557876382517498733421026595974777060682407872350676172256787995143224814128439347854190015375653350577814963182148067539367395542102794086514721663050629150234489150589981237833146532337731440101724405152733513172506757833725827464298795746250120735759078092690606259619991802156012389335686187503150595843487486821392966256753472906628553689452131597595922800746133464998676266470289550227477352713654187273281096072046655251220688856212709949593725951873035293159008667153730948737440210041365592543259983339686163728106344529448292341220215943586365719131650197815545314452440107075400945664460993120283670448656593480924636377380079203163949601695193975249607176268155508236866318916135860667480108916903239730552213772370814935676876413920734801604072610202782042761638782611708658802864505035939272330551782824870245069431015764839831370852415315802557391116015097408276826794270970204863954549314538948003777656260416476071240277567355096972279858079278719063680615558325064946896392181605602963636361329720502381743564535748354605354645491086915535459644681284638919734543815270817495875499777076801591160102506987169661828959624338927645426501380275431864231887752733034608344836506281500073930630626362034470907158045250401452304874038994316075628178770454040649580131405443074245113423605496094314532892294140808816768047360440930145898374353420214171424198106483059704637034485086566348479668050700076503670305563307074670240782107429538938644829162292799704650852554424541933749708760291457646269696565679020855224330662274846550743058112209140114668866568951854287563033535662846335006774732504416747564130440751460858468579459826656519102254637534476491648329148114402343629773883341418843844830252048809572059863888684619630238543386957456631350727265778271044475215087353276020928166725177218565852977671020196076741762028810749819867956140026393058056033127555981098934112994309860291515699089068107497121797322551001347412603801781963912463356452075905679718674436353210744178860652610069129779460154284447884821596893217026572142060538734532148845633789876186054477261175015832440607680165565899155777461650897762933883005667322053131243410351673436490042890649576188616707026200539454946812249307491646420186857544282035437501722956096514990415292926147440073241934718417779023102685708060357425733720189595955846776514460647479203727050697042672814524993067637475805755852196245143382932065039235414356743064677110102415286486515725849705594956420692018525422122098221513746786852964025688099287796911185946563438597767224083091944323214590316922981573969186158024606636250353050870696637437278719404323512883703043696927943512007928058371084796260377279211677810704716251212728055162608741172493356878252790964986805889363614206868942192587889540587824519540421040058420155539873220471100325093907182979713637254855336435563977535140455228363478909444981096478976948557104875198951928880672610843980456026066880887341763353659380580601818529732102235118143713045007654785647086625576967439486926658731862640279152452855850424385860799250957591448768475792970246002437167666706335282482598729370972366942588068771903745191740278800447973826029713910618126457525820816838642399613713262769422881698565082450614702097957205411572497074145460868748773593868951944925403710521721396869846523528995499981946933273392188167322525644867363820566369577324062875100028495638592560854639238265512526495158428374598194579698399961812260313293620320483586128754333216773738481756356134868163281490977029062555494181433084962156383180977710157707590571105704155441414893328315126837036380702163824362812529077854332650375462444454070668385721125857250159491001867176193901109141017637419095333847356172499122658069725700789325908393507325223352408861168849714945434333834331562687625190691871870639225459551394716631678183649929048632100870112095691158762090981865374730897408240265158942006628562071466465890148826508131994662331300708963780768465202892027340958322732431915472275717630145826583301326193215309523261950799257122242771891664889784372326778626828149781936378771527094258719654784183478044882854549191582356581737535958590228359223955254451765987047420119716164823095632421468441066707856329209731327058707429097918804933665010463618329871415435597224650272591949567519518229024370726999556265269280350453361934253541199529996982349072009023479979205478654183998460266469216606249433056221913992979096509947547150391241408316788984467312426464792444999550803878408791066260958049057806819648108839390110200264179745421301562244041730225235544301326137641173610884731020938483829700553929209662469375919421029412020685212902510150229731988508062717840492935045912653080460598350941108985843703825052354823727007287926669512053001399295628530907558529657384618857798453668357125173835122132170853661641586709920026702299775549518747455099722187337336246592023102827083451769825828324829453216973966550691045918654641564580446280093864719893253547900529584544339369272161841424754869287686950749331615649452994560292279280144752971031378543940956834135693967766931036141462088805388481453599251930997372672044133744613035751501023296769335556929227435138375747712798704253549796441981251884598823518473452444295062791909630798636814895053658360995563425803727946785501310240087756942578861028431532767099301776109274169105468298638863751115010799075019051018921851277669414333494095002803633645395273537583925965433495288099349821435603567785843068341230665471606958538862579979965073575554848774387033157881180596063896423077273931918226601927533448831258803742299743579372298083023595018569334501811510687185964456276797048370649152468434650715314613451262259610397946686624604336339261200710131971516612539883914633147468260091650781466461806813920461691007560784773896771220951693859027100678199194860422650466462836352838429791540733758003667074486150849025891626679735051353931886707700003126134968761232782326275206226256022284761070770958806699772991101027501891495580687107766610462381417302323176475471089281069243065897761204453086058925635023080926068874128051056510976660170952491950747360181197907022486255671124082443468348414309194849799461948356820370396084382485337541082821700894894014414179948964054829503919231684231464863445881551542450199139797686443321404470449906591021513243453899844616661526825757854315002195440588566215635283258668283075734533720606424594709497108060041627021872538077616736731085760692851382034501548618514055434938504497416068193067106491699481768632241093945663937156055175231673582638893979239164844322895790908513772466342194227681459958323275824690334579863580395637390707233490725686452023172639559562148683776562464396048684444486603211522625576822728425421171853039234071363976216800503914975642242584864967337748527400483130863879312552282362440607647816383616065856209801778160942944039422350450506989517828153378349210536415660423070860926557739344251400460989830765186595630104931459444340804416696155912579148777085553025614900273050537930672769329170288344429122193115215862854123042048771148075057623140806447548156787103633307371441430354643985217700385856918342999629781618786121350472898364614971501573817328999965143471238464499424816294019699192663288395858682026345375414519233197673680723375386996938519397927863833484893236307969624505671570164537542519270419100590581602735200835761767120624621790211397498053698355604322986036659746455003993195122915658649778850742877099074105283825481094426964154928264796032970408068382147056194631787207950803275065317060723447832302648322706338489529849915609411941195094498636101482152588934763607481915677537559679402754600217382313152394882931937785882993289290968032422057366282485845967748723894221788611704127846405480130660860490367428077706147441437733433765197867508739647150948910862758324239750690821119347340732605615118391088404430359907468981765874740579936848171049276052144045263931512295494102406303714973248517002040378000108888036484162678865166027457799495688898284708099216964938093586387296488045087733449700143283901060903200753342705153086300206692071293333323184126585919354116150821243564134685070732832974887955047318482450737317744155231468985076902877978804004925819735185606512449916646851388416423210144247557406690259324309198135955358505246798528619138696226845815319158351875497778930376318401182252910082726184134223147049232818442753714172711298198445330726410943551409107344566419950557805204616032102090466627015894574678891384916071364985775413588156701638558476160758822989542246905443465234072429583162606091479312986586414713520347936804208450526035198235337225211358063181292880266658126903984698993319000094148667327134227910765820117948418590436788374910892870004228018668302971044641362264241870192753261044201327658457720532813344890882042852849632330909450049532930450333962427186337702050087533134260279936778640860230909201102061684352164074496800637583272604301099438032545702081702819030760297688847771904768817350658599516156040651098030665906304279918851860068704158705921717985125323218157266340959490422860124250052561986797913719288202898461273608098067472152738676411554060915384892251032534347614818299284389276115253359863668727101964206212178982047589517039195038030066034499243447897582705156900616426017095039976285207454056359217166206237687830075173484593714038844286372736768504445695252290071406299178238015036479548300398895575650822340188478717509360114560406850732586201750462036167893689414057349684606838045445309501452544733624658766030660184294672543478833680524732586948378679871596702628930809427331259857470908467338309962201056820381393978997701718085965679179092200874214938215906664993166497828951610952347285330038715580170903948525244951741998511214032547319378315307604552573189883500284705060683128339711032860160083079044090357650653710420073255471350407899273025720675889739796687242243605295602691417324189079632794633669204873812948799297443312538169892237183436099104065805509710975158808877024370123971661107340305007357203471213534537884409123675603944676493378625483203555815056088617934837809651798617415213372913229276585053829220927615467527909458914794152563082953949090248619559026484041437969494898180605202978494994710608826590634562022646324441138012009686441840292270490301386029422671044054202662090312337143897382913750057703814176003011974947710729530142999832795377505301834409157122257864899588167074488520862036428640480311905706557396281332794301234630614371145240072068041908189811882935678868927849295951733151969800196731541386675382993650363100704135005623882936727496065580980580030314802683777075657194474091844372077864576671985651950049934778779215981170677195189990243748056265376802115234451069700704350815003562891889308973685057363306063676069705001235843098806790648619363103021203078081918138187053160195042783467351500255522802024513614315649479765873430564505298565502777753129914498188350395810970690622360761350876749345418990212439898838945565826872235966600946944866489865544067124550474323518606012096285132731128856006497942871692172473242930899532271125813321982054317566522176704300884325499050043541602884720096342073789088350222739343876598834361931144869888531108164072899925017507337390722988617179929038767350717842325328547559177178617292518218556866698337700657506996898866360831928385050790774435784330236429472324865549524534911991260030502067984807248773262934215837394193995340368497856310136809052864278314725565780406714739724771481373862648315868913103741410600520759088457558055120900600485054723027765738923469980176451787585925826654200721081805882848348022186938960576692070964189942143448148389683686757009575696501893135998695448902115203953241426193363529027613524534230509967410688457139158261352312581430335690998971917210632332956836859690399334318448809237383898318760133632794704213364106481717829465363482717556574730780478698872243964927735172433640565195411885278113810339702551692144704632928518028829627211921493908883061552259272185558184142150825725010187780660817482279706633402431327148871191416291535404271785412648785919492200188122376938835855155864749583827486140747617255011714345933018391945087164783206534403760125891311832216021850661130136143467623052074567805917462378801592982379433051032967036227513250161155468628952317098505703221968926462554627336913366825351822048999570292100118692036252209895548026920850945481457091894563196842463313920042937829111571218575245008010224912524796507880206698277819559959118281682301524272383294942470653855271238104644424040017922354706438963065173968125233105645089123129990516916447268049293265671881753206973358593241142256668825783460910149037953534744229055628960927608727424800493810881026974763331898016534390872728279211570232861545034465704876930229301818006307998231325660688427403878307474478128563795545151948038238615194922333073194212809595544774248162787135180721518778755853476094067500357247058975186888196913574735383253732713876868039236135635589259311158628835535929569090260461659228263962267067841708371078705356327592294371837877636334012348935656436788169123075932233718100925165603969065392551007079952328410767815793307708654797508233018850505887204330956444587067408312700806711358843529121346576833086029694389874382259423600189993507974387058103247319634937454090985552053359237100053791336446845547159361591529756584749771900928999309276065372275558302911088397642668317026115607961100254302047101618082015084358454015195620105496015808463014919480160096975838752506770607581105370779774007689663133243154574367809341056574976304582728764536931441012239673508281242212995857798379170524838838725996498919472318610544884756959709718208239819975434851616776836148464001284899154685101391762316603184232962936048319630194149982404655583948932696885304876845337326979591857318287686180979791270108006927674944470878948533598792007883139684972218974028635968610695958164261609836255801503815305715959540600936471850196180861534699037481797912826416094648365182968142300873579826384443983985827532759284685823951901388296496717701136951893905451254623479733254934438133024330612666351835310689792439311606182965258525740899310338681701259601358632328295454269891252897762856240337002006400528668047200609809412731316234603594535928511670520173239693998880111433857345080230517924044620071206570002729134959794394321181733068497470883970905765121171708411060923276500056294653165280891957107293540414093740814038157381331924538472763118872421863688592554637409606410574610599287234011184141678586064604799778802343535579247293964452156733268981460385090267172099808711691233246351419239269759131718172080173811054481663923357997631507071658632121058342681487403096351159809670716614537532755944429135625194259066959625862840290688647992192541455387069848377844973675731023575705287025208687757475686824232415535265208587683654710123483807672556450417592182361897889604719000026397910975299395717088928404106486841344858590027498347578976349406615790135838171841130515973154476866505757704040918122017544459572529781463133126139071807775919684089457697818433719338848435568965026986841654093823992354767257071746262424977846810140959533070047855105602621905853192405492668493230680807859353281413827169789694575600637972253255220446001920575208913537197761971409944221771527953878885603105684445155674776858365545951222203987483020754613365601131936223787413644822640179475622222023979903383327516609430881677751412319519762673971317137616501675064086021261363164647997768337221264652087145724653198000530845487898862637654134820587317053599912108361532857577308528879537890287181636644331560267745010219080548957380883640885173553298128053585274220722512535495016929407345695354048172906146983262511918022023137612669033080971098552138194969478103939874064880820384429054423304406238987987080782075440264665850704133828154184270517378758853818903892792996787427714626897425147037951301791963245037857022959332072930535934774309684674802368795179459230341976299425517693677138663077465063702243395585703870686550617588676715475857911389593696525789474345278360756523405235566386924735525493163288696053908073618061232265475882149016803219703622912673678505119334932297599733279047338457289141499238001854913177224559246486551276544640339327545985529935940148683512022372864386016127062984586817150715895480124722803704405552074620252210474503272817450700498502682795830346177860257268108402800677486373215604138020638199978543277439446960220301929412032473511229925454109837237146030786564662322416810481117087784395226684169696400273974621040745116725388192242485353526848086768378434618551342369527634442967206264080137595820507285171432889957698071750980461202060017106138483192710713135696825596380338121636784452362855864471007920114614240152488569363923726372561042732898184409029088291061567802818649640440103395484784237131620435728327132883950913978503945491203577059830819349697005189508956347863047145993843150863885522069241613714836312695939769354642698893343046356975532955784533429970655396105600808041801610406536699197544056026848369928548322359370662295338323391678226878012537491626565296897312070719267890493670091787131297826991304698778190009917824761984921951550608980717325975643851772136255950454541840402264916478775159527407184277392627317254263683892712236340125721761673094171971712559917888517552886010410823858502682852188817408010174063080462102223999551412243644542213065843375064834535462699174678948651256038209016694225746415657136896440758621709799986569670524476822086608142748771016334673593017883584219860261549272965849768228674492133789039301586311704324182318484678335455952246895182664665667212589023736479938232477205238250579810159459833467356006670835578619836430565926732438826157555338327647549687318166210751780542923309243613163929348205905505251538003078862872718001348815907451905240975075031039247111632271063570706361845760449928017399599647703283347041340407911448447834172238309938321263297038554162110667486315037559865154007753129549167799905855424615809583541009018763079064703283590026459362271927296018287740522136391465247684878307341007308896737574060924976486253708626614797378550978956900219706151502905635483511811374792713454102135277739268721006097121614455197807314319093562034586462334353269434671051576395938948139863538474120478096245976580720640973815143303321432674005477436599263149175237604580564278025444484298468557917121084379710561262073789896679896136798911589991968309636292116044199008165063309358793549088814739322378536620577915098685234910546356681359304042296149235796548141142663403522920621117335474500798212738873827386439158392197665372939361145009484214862449067296607364679306024614151004918666105906965773016824789861531023403769424336728361460337852193068452343586939565464241847170784733000000004283339591116106320736962541640960377388126696807255769287934051102926212684094459634701569730842514044977219816498481355953456312152535519518822377961168859403435772794214847108925066724324939924743133296532399119080550584650091482011115684040601180518954102624179832491190913803989356043321329336496257974139152041337924610821348472290861429517003751424519576346851377549232680872392815857417354427867847636273373581196969074262362822602280227288425177038447486304632357683796717887016728302665602012202554013726810854658858350541166892856186753019754364233781930819674138206728504974058614038201885466394500334192245296701436637096874599420248080078123322427313260434821096370640611891436936018838893381578731725502210786690489423223999201154996097425657610535211249124498361668933674832405521926279180621494250628709055976375112534591759611856496906990941879390078698226870536407076142594181964248449987597135862438400427741843594101310077480399119567581273490112950668612255714354822617957830950711780330457000416221514504609491629958446379026251479278623912668473086296127893573977818113477803384726902894832475282141865517988372370213070170177649992033549503471308436705620173288390935847414450524147253206140199341689283958389201228406758781506840393981163908629300381969952319545926828593458175890468615487556983672454901769764499321840336627075043752849691296239008277354205872551003115522324109929291891725080814508571828786225672515452686350390359277068535222266544092560196553279774948483180736537092579166894320339851901931961416078429834497745698887648025514540688996700451650193271684141229824983618216200547581138438274584972442660636551488186305382961657181467939699464711869407121992415014437677096134808732929145983269543953410142860808262257760014599961847869831272014549217035012661676806526821617024453791426830063650780688794242612408552471498508090647294014255978418181840513263051207440984618879981840133461191591148637165419216961345578469955096084323919227637008234740923008369543276417385017421907831524225942748384251415707597388105358179165120915547290709203340126989938014860056838570839802873346378923504006051460264476433358904524601202121648086611356707598044116725691181226795974572265727961003914747400139945535973276679994417474815696484401886808805596333795220871903126883981781453991325494319791101264423500428389054572566755972215736835700112289655472359661832255089764933202294012677569976419351345757326608095097425533252428505801099984053103839480849823107102516569906217394733918193750753939515806335441899804910732669463990745947812069552376963882395447580249389081870859787689480743848938496843884840360312901837813776716074444818002084277917218092197560641930851419145074940596605463949342739495162933715654781260085887672182030766125468741808249025833290412248663718195473157317876543598879633253572454326407207467409040508340633799251717017884764642107739783079992230013522151410438317402657650181339060244867291269093967114070785211293877244600568477942220100216522986971214407518693838748004400390910718455135406674114650089535898176337323820225120013156075166979281574592501059409587231382320201927290195374057277761401128765323436766666354601206787083754784203293600998152819753809823540131513009013282861153772168184069044600059354965382149750764005423817113183634681893363291693444016482598862674074136622296464193003213991383335115297966932591019186297214965211723319011654708979038907284624445951862241303047803175540554551708698470927467274909351097033650818491276971163628053238212379043548688609284552920539192095275193886182043816270860007881114688135441791891525814788412477079669167314475011766533313401346475323198657590657574594218868691271529026228381084579607191232552694157475305022899448464700991589564348166996151834648597802031979462859259396350044473544306826970154611044264699487750993369399072008286887309049047956700937935998507659974837568333622394324613262474792597515335915476902893514501923811531112442865485200372188079157459798730169711396015963295178728624068214157620170589995763280335386051180910575584789530439900814175752514092067646548827886612033508729083311332863108320839123493129308903927118640620790200920550047453087674712106133006203314093259451279692152080141893477178175232598229306247369536456442836935738928818599560258224931635040202902481082525549783654498008385777085839992210510335858014678048732875476237137471438683208781018390188150741955607322401477719995382918471421530594483809539782826455455354780181557779214735057935641742216876896070131732149744695670875437357659260114146885327661311612642137817955160593995222457215547669592877913317340550386760022766284721978960222919450758608460714491568438882542664940867620119782491828484635294653915913029493039894459208653618281390878221413940813338354620271913793346974873057194990577758738387928732890948021156487158223524878547019957004720971958705073200061609059298996067516027614874282620535745989641261678359611292357755411514709271339812934313165335505526106287241389129734617102246145012875474520305572470867725751526589317281141293322602725231257363881471504520998232290553632800035749566332333189469953727064435358483253577710588299685846500008029259575878059695736842169862012698476559052141606824007945588679561326454572764187983275931504207817402702391352026410336192125937204382579284641969340967023310076158785218558298699941132534670042069037401776495192951908894804603250820177722993160115460414334720632756022097900866300886002670825484194287032398832125405102576317036338857310316314764006458876301605649712413418554409065546418873020742029418748742712455752641269639303644900356544192262725205944211566305578552937530830248202619624498304143949258463983466399188848096237371816286620677491878994025577224438073141017603315199436609182903788073641604284964673714263674661660560218859698205023680071713231143777085120584199938910931584225687250674660996302462731081089715299198717192657014777975266487879029671713118333481043044188476777522909080184997996281117228039589630731657380644243062496968664097570707563063273822919863534668389648570630323837487010814655004865815980519592760182705156562998968501912959521199123836738585077589703603622785182104970338350983249981090687476116879573026521473397122919567405757762947789260022263755629967100593196829244535789561536175500994856603354956741113650146831657431205350561942859013976058141572761926325698959669443131767299894607093622993021875239986370425370652885769589280805619471059475244653950934368459148250392514802773711525720127355831210923956383077974005907821360765522945656343366377446537903200111467170423771824526753109296296852010122465957298195319956780030092461180901471356323276407195615589216801809878424769011515367318150023778364272514345744846002524806213799639270402447902877076566855314103012676806674971141334290063674250958072244069597441016733881161128909447305911479055384623168389995818775899460562876253111362877121597666150901601017309672288863471104072808762043830092333335719096219386829053772105484051798765554060688646514764583718548341530433089161962536515340397289141225944851313944724332638698488773669546936388115598533669630470551604023623610376988585041204943171303240520548269093528190709379710974979541998212350669320465373542254643146111254076377264147856473645014372927550796120345854338836847754343077262874892819088059928204212585663959542613983240056074825306670362970096866926524026618758535296673983583682447493505631273876781039775540392976324958330285935096094567377612081243794717570839383028213075993794415618678918028507324735955696197866612768065597995181432853300679010784105338835314044544818561484394727310254502390841123082726635977793082483140050592290039428991773643232254519415913573451912028982061202375684278988929486965970718798370072150297811236487155465554599172451455842394279126279261879290002924899007016960037992606641932520365357687907768384397932897159419547753682564562143604212677056999645290000020218650950586840499124635574114852005318973374907425368118062948261447004372306956853921492399249839943376470795652761482673690395265874168592321105876662562952210011550233187395350106180615024481950640184104079838904331478564090784225503440428948472136186176343579141325310707347027575197008392331411766245290153679286988159991252178218352435224750352844084333152680674462509176835965954122520232948731082512406283590659434188710276858672105434723096471588609250770675677686060941883259837693270106531383804910683110368709499319377900001196780435600520300533078748942867501421574065790329881690697962063213604341747995086156873942381857272628998167591658396868723420857879266198755501262159235767105382678221383478496490088012018358530124074640656054980834255695429796988664487986738654891141640950197478231652212588388805919752820536270094683759705561334806942732755428113593716963529312403171997486444852049710872476441344388469578407493310154354525364245375397278057509650396315269863325723918435136817303641634299533558988191513447855365128386335617545223610629581316099328746142438380434007007572846383362665476731586817248917957787553399336007610778529470177640847411450325695590445388068922525413979906973312801515936742362073086098857759121852397428886496129034360682541991544864051689129011916800786954796074609572321448969062586426364833599980315114492237202150198663035416060747562354416745267015795408259538163691455028838172341961933317336201193282906692356870573346013561285788120990350105331806468421930642279010455114518833784679155381405612785594409266381182540121870032598952765460754572152044891006066026589490261664004763107761129986585410444833550047995209212171740837865301735089539488973361152227608161781498248997960824725139448782990038077818863507509088625542191122500541451893861966201565581176321942581367150061454541046666070380574536491617176244031561164575829330253702779107863848602548186970470942595421178033444016654101602934097072701635437968372222393080138133337716240029426448784057169854658204337269758772052975403128936266051427414139219642347890554073590041825608028415132637967151625061133273289966508479832058129268949780257134007863136777526465373268104956038628797372303689978424675268677187703654784758261916024493519555596802939230842158598371529135008834794678359897153905216758549560204036611191659605553042932939029225332707879127256358050240129265663323523877571386615927806954950531425454375832228883980933896192572796376843112243266165781037268597877443053795287689788382581644209693326046158270509494497276393731854511690737908347322201737912837018520653722543934742221498695671741730944069765654880389179597618231194609871226932645330413294902059899419518895354428769028710905975750895784073287109389533629609458231776431828187797616433161798130604004713340552713325891490632273061642632366846519633209898805314981757928585984683414915871634791622903654631727752177569643589548303812460258413775218772848125217898199230815429847445722611421276349004262177433322777432884549893849334052200328720250457370801983526849527945807174074889389310687892935698554871162100249721021777987934814745372614625623152605003051066259769641486609065308808135260296691102451509165945585990046228735242929324496596564350534209259701139039121331719583497729137685699114358242296341938551369962672798428565858669958831493525724718417072343444541969108057153172200260159244040946461586087018479376830806483956438860223086457445325070941981805365640060598766220142819415315345619711690703620927500303122390399000942424039739398920504116147227879306121534695542998259784509333453940543937011770362231554706802394506562666870297158822538774319992530447523366510133467924180701584228065682243288207003222254256162659488890632427221664898150599720819272611586610337635332662991621637628076835967084684295380465679636093287751162806079508710359531757228381088070615032408390173380553492275941455828088939361363500822081962297553651814668007009687222930642237963776083201233113398802453020775475451760597756363472963399376829103584972185066188594811662191570646808851272788610701733521121060925700423424174500447487027736838968930288023416355036892788043869293241245271637753043509542423135769296468199784719008730132871895453329176245398934205967934674500352357250234771490897693448023080942400367463327882470893424826201795715821217877466975451513897011560996442732142677286741696460780917967903659287869893284394147515748012532482230517152443421203460292499367341822339643172051452257211039519731486087936285225527584075893627524240967132470233094053551014543135713350394007211171803974974450911428984270923773276182440652717117097469484935765158465771535312213577708257836949465719726420205947676870623195613643657789774312607510535906091284060445048260148253902146881647288181183389999261154988971367341065911070323075965035557728058120257107819334291492830797759090268349529058024664033054937370248046287829326840813788260583994163312214614047417690474466371245332660823322919516715521067397317627985493933586452643486194274659426631340559822541364642228577680398752887493836822108737808732886047126811769704120873228251106948703810651859114867115568318371054990157331814476588267935940314732505877635557516706128059072299695894063418768913428838120433479542214246440458703967150069113948468175123194340177909463071369139370167207518163455291145294901971750470873212332143396242815466210554803268678517760419084251007628221929221171269341730566892973360333489295219480669165325123446965828233562933727635061667534775224955661915926752705630116970891116851888966402564359113045682364987721538668622886378427595056250205939339783456010337363954169480022523435374538684781088829140347680952736048098412213366924797816490105642354694926324018513976581117281219644178279930578640075238680703635346136130349414334391746612131003925005817150791973628795940793498588442743030249977930874012344030475381562968273825592467479120141200585358020762519046206023635024072916944840635710783997716484616177866378729735218870707168585136194782293090135554601250749297937678589455449169689531188747186345296072333354350540848616416217282375590850799184581831263842244642038263602156804678342068551148813361183333942831334669868936961449389207981904238096192844150573076371877896473285392266173989983330664926216114562420010243003248232850440245656526680478717745876255861764249540813515125414636265798328497421670979129949174891665638546987938861127597511775020684674910821458240160814254180814711325630345525438950467643957010319752470021399112136244107852319518772647414585499870857157470481280186180600807392231322806653103572953163134953495853723893691737066078175392236134421484455321119959731970429614720679291232302035032757067541538664035721198610427306913860616389531706130285943967995290243061658344321118583601589116752686294004998765815000573698606650335202485980572193702363415633680576943178453189672099560211054486051212885728907200705994516295244463274876752521488563499878389097551971710946569600163949159262165413002406249424399109635311662413067559063815990475405776029967332332632354099311251971528964506182640510703082875998543739147769008862429488221718271840420524768308912150832392609695151288645971867772262261792879348344950556050249243673161092970090693723148673268429364880703342655984828594207131963083734379038690315342686595309909110959009174344142430306779291115312294382542719614858623070133030573321544137218654666827212349011133156654654854007149017230508207830785547742365576946756988058406610639478767562294194635196329489412672126900073283881704067419848690874997372160968163350797736895054342592587521524766747611638746234473788185941523704958510774510272867858268380983273089060578875178051296015139378723512260289961859349813636986811817945187951822631726053502878996590204833629049867501711684746825782458180253530942012426803233527183717228472517117530556225051817051777205085293310026645511223241570356015719782626008228324247825007539385534569066807725427520487250334288698640995691880803849709992412980002763759038415131299938686496467197523124687043455931870693348746070912916852507401508027657885548461076045576602923923578007708003118224085463665386239992889068838032678547036946757966183230531125519183855229658285363886044731435267190169909998546286315760724597194184521868655276491308002430065857849925061385303007100512435493478834762184105047142265791779475568436412140181765638049061181468878245675487624251889772753984204959018658544931448674559434174313462893552670301219549649505180956930819516228900155416827682028515602300700840676788420511612339806403416457626366388615191928135614389849486655770802054802965393448581974156731113764784042299871022361570360849223712458326722425332251121672381291320494257565832582633347902618907071516981126120189797250231257108883872801494711563781066109338362956163265582412517014454109554568773437994149698073331653600580027268169845491371040307857114270021477989496072598974601278981406397309695875394633440855831496102496247609312793130028180890018644348952369887027727130771759625448993941482865116414037030531306604815976235333820180148599978963498359581912429580363494533115905186819568645288385143811674353190903116152496595903477496216415021121306577815525160971313011603752811246928065071861169449400047123296950268996671187070726024063444754422475000496287130664229305889104355453413070550331176251561848110383787616954835453002477789244775846601242111236840042068423306715343914290320796472486082916781631279357983987733174490934694765063443953024159539927130138709972915746658400627706963727168380699995941523713452022159488254138021771250209039087217566138261788998943410315752595537363690566641915527655469546733358345215756848773185187515687540631925477037042529960576500054995978263579788922421952688128195468607686293417619326351349908433240750245276583046108280468974435926843932203064156850714273677820337254270363551143406355838120197692791009134796399855038892963286686697961109217930475817643473961078076018228875854878820464605560560314778074772452230455097276649871997105912458712807546000486226783729349906721254570706951668911221728945029151908308603770610889147446141479893776725189639548108220133010342659340431593568652333204646814815111537490299204689847369823645664200719248247106113698208669026425914082714698692984932864455531968680877997077433160177174745483502653568751173608744580532650895380635351696328162546064377972766947410110372288455550948959183580102389879719106991699186498725910167141202425911008650518238997929005259340131247963961544560416212087836940479853363830446026035872409037231594772554916203889516261076227877070727147623041659304755456848487921989102355318122698745275959293569951570218399720191018203893396649889813423346164572131837722080567630667288908719086773948476359890696773198194239960817655484735356438703403847228190193903711469254682081888786203452808381092937912003738108350592709193581372116286431849463973817696618068360805745140186466288948955784052785137181379672417331528802793023810479306342003322363689600903191439024071335752930225387325799776498599056578198174423440874860563198176988959285686959102961030091768639593757238214182090537031647575369915370838071593368129759471574453713376755048900480566248210690845537405271644824604658160068515982243400016741630745199954472253167737754603903349356256437481130536795797233706471680609388713474051080438388241094416191713946638398563323536068045029848726119753395761956078177598778957230921270679352474835960233629969322897909413097268198679770270055321381319935976329472610905662047077778202895694259427179396548392166418169919872506559162270130979190622343490430309943654122247488872210153219437189530006533768346178825711651088726830601213020671150534703949443861367239684018929807368442154444329394617377851466053243478665208774309710752681185039182870901937552402184863124452722602429165693864031475544384481141029929803276129656647917643716588244265877960223552372597493124614804748618388123893623826399337127624911504999198239193253552746323178484731422704098977734453362681323134022816003013472965757297318143365653552532468015124193813854214372626993926226181620359600507751694299925410564412658166404096875497093361149691958486215443908217461303947681825408780629525546247193368366335200166801879163206184881033891820165619803233806943486260394656957911344376808174280715913146678917241831649289711590979845054255336705168751278726359686959742982331658153494768564194406277176366841528013985287372764303095311408340147244594148483105177627816048490848124062943802778444160083708488230032945168866001166960133677376803580342842295135659958496363054600727728344796189255140048786845729191273526989683410022294565090072553591528028255879131569695460937679665933911001950078339825758629937500245724859958959367618300216044356219305856152513407189497969864268410595353044935393856595824459592428295127522085757519451916743251090335637321363794978495910302538012601109125033915178596097643718393480273402900572269855163565536485620465229880049390722295138379280489110605728555767916834793361028848436832061764107528898502224963765892047114479657950856219889673725218064295976000556782930576574321711876191605923381827742258861517771678986921556805361001221175874188701724065052085836856399372419988705408864815815273610286233667268054267905399375041165975188720060491167726008116754927285534599965726526151877421070782228689938276288640705147270539481092492727752156653767813047133374452943982833525132488785149773659842709439652642286028322776518547636219255663914986959722523754092462911427557001750684969884269405726209426661944900941602455778990771690238521081538462806432853745239362511463670718700830969995555951591654097097914188913634911304590361557972850907924479116847924806443115325567224012048808919227972319349556280896789214483756294919219369632067928712003725362061289534718208413952660868804212932337968384820333452700337134043252512218697935963100084223293389031517625867421312027414024641017339634456137814591822081513950155339284757287092469625780245154773496467178351215737579145994514063895161029090349029034897678720486282193336818065711895476056227988349722259251597089186382574057362099609319701148809923439869031505960625642748648212631451433628631667485366251548506704553025126798666133427445451551492893820613570870000806266629197091536710569432190189864696703843871298995251424182682233103724412627149423237399241693737222218877191469998327935291259447108109155238942860241327744672052931898664769430421169050986969517133421186664214573210908828427971317490938249295064713689504006859070111773565119450770344731610199212823193606924974789478554771842799037275134049708667027787226961128206490419983047513917492832153382376585346064732518755947345939178504757472069635924395596047167125882670069287336856977578065361796083680853103922694378471606745388743102008838747667678895978947016990427048267537284165083200409375000531177695893255779692506424242357075137602732727824522257917512017946107123059348744100252930716951221734776483913917325876209117020762252750647234805784310405739827516805109674160190774531323419372418870072546591537468432181115539968529975005388568394431886497418140414448629424988760666006582806925308650338251285966598831988181096398211212847880346163568296329127095654404093745707319896392216477052030112412442328402629977986689825695107774452980764596711486037494744383278843237684235572141538885196596083998599324066131462164233952743560779284639690458695334666670534163183954183078165359824581100783571617443396859852470994699910069245285123264662705239537259948805627210095002596778975288317993497968321339903096543500401966817336937655586861566066134595516439770807523120530925978037253180245352197826092545919330848611430852876797643353828478318253705290267165446961618190255096135386369885446598858418189880924791775946495314691877429345295547861352816298229030335368265781328364739583519908090234935591148187772682879195657769931308082185661122065317147647857695809573227048337193316030430270246628019566238038187621428807751688654462530868056201818342907464870777559350596286301589018728341623622268541361227586561075875116265593577789208072974769965627913733328080877165129505724952144423548351141563334451663667124557173822003196868675181029839186694700497202674040450932554506241418820852384522014552473760174966250893801304310820375663168120267902578629553402190498120806465586657598944017413082218727051730700199869130306904416075013320523785238519721053113304266768200695873764183268602542702849785385245702302440173008917284589214400233351415756006523404580254671420882353719652644056087234751727543797520637832213401647908477856016449884317499527192162589077980250813202654261922180449837466411304334737550452431533553865247761976500950772622819554369180773827026726269623752921982666266079063923839088458708868742220199075869538532024876573184198030463744629015866559801808724941466229354318094090054334151970992064410929970313010282366091052152053746332121859297870235136381493540699029856965677180786973568978941908186912440186595847226023731132295425409172834335562177013957969040352611892543407664104492007295911891208972935225751484894525416080165176446106234933215701131310562174920328800111903406007641219275413007758745509747654910527094562228263279925247620856197035475107497135740698362876549125052650529617483749641058611986402742419343216537548292990574617441723325058492818787215917062241664518454491939073243008674237280653845489999860657068106449840140992516811078044317522307779757144785120606026159410849847927144404283009358976082813590136115662438564440048361625434868564106430653294089520853012443967655654021490055868137239496167155900702364516292591044830140728300316410184611240920614855197511500304103131529910063284239460947413234685401511047953235602412772711122286358095772400820283988891630911538990344834680140941731043673477484622201120297031661692139140797332586109190268755811268473777303975239959443949867621556545227060956130222976211648018075246826631226778853152268941488004431282517969674668593095955763683286245352331891325674873730888344430460694401665753392118829915025815589944494784141513765509234798810444276593793157801182824483323772372100029543678098555566809231228778950738282089228188869266020715442945599740996088944578318601680566685449944098134544198256951298813081785604423719336090443773947709635414951477676393127517997837642539662733486443348593167335742399196505939621011048466120279761572597594897972990342888839350781864829538903260553466027528057736526934149686033327108194224544101861469892342925682064325684411191173894485874394202327319282383350695785664365783508652020734356948035789734821397262572087876698469408403688796141075712789718279587765429371679530057184902987625508262014691603967598982835244607241617038667468080010768264451644619396559730412537488979991839386268452613459789047907018254104489939617528697632609368031804915868397955759021290518457806656534219163041217730837954171743095602457817857358252617603774494863218649134495903968161392927182213954946979859956915324223641930976925545420677094272029619141456127789168635553991224882514598694034258073971745358086930939005171068074232319870213830333791097509267794608724637432984021322189284656262081451147818613256077934653034565075630617915617321287956401037384738841886275875154001521549025760362679978017509296106180439514623801849901159736360679396904769697910863187820942226570120563094814367769652232919384635696263598643979888105815558207985110939404149049969682253681324212155608000810413096371268362738057272524878072057119214399072175872128472088659719724473966292343446193318539883512599225801902006961849837606785878189994901432025089095446664004476160486412501970521428858343465372100826532308098802817142726303587549937126529847538246843434539075578643134835240188396728506725633310465504942852043592702976706639058687297953750326589118208970771605630123818665051848588286682437123525212005851150584377861392791367659253650399205478155421308506116511580762429901599842754572523487740411347889762954631398470626650144007038241130194939142482430896185696178943506164931008667032711312321509962749807538886934247166882723740381717225121364260103335510660069235861604647808244067157075941855242539782917881581345894049077959278479166280483956898177603634675234487926096963673273439396674194443788641182695067929297329316246985493571037399732629445116014069866367429504149343443912043335949755516076440656074426979518198284772071202823430107701451757995185762218575324052826983240604067497302418675146350220796012695009285514501424949135370616359848330180116144036503542618614642774260139135725790536178406554136555248737094942031959119696586174469772230448492047744671227325810100114094124531171104133662413607049221495091813626608749378388556221275662947565529524162331240822176392959485766892272271765567602629329456502990974446078156317610224796098056800119491824391874951594871232810504289017261084768735552305783044575648389307152531788732181079766198357808338484209064802627096593970130492997588372190188434667730360851326286488490736008332363404835510503833322912323146890340272091564195589810265244862583966187089512560029322362125528846976760630890858258123931944997505123895967265262736545375340019080492143028745520809810145372972548165303596915864906314509040433046371543603355879912135901484212283058448390305592087612185316999573819703346779128938215175120840716017557115233838646335893126326797997329376119049871485962260939753519868016148453904770514809315919750853872629099085633752239947469971518448913873161201545246371279829330691962553327865129377963218283383230038758780564205520275740368875230349290033277173277311611166508733631659418905000093284697305532426483979383336967492278233521729615376407128959480455134941535978469386772003955066459656344834349744722983494643649790192254121483866685337741832553671197210167211999404889916183200047986511659589512761185379634008770575651340294975753639885108165507523251246380789822153042710318683042934280469158357953263943876620054326533183661709389971874909444727260618342175357911190725417454404778356043018279896588628103352934155103305188858192745432906516551366021998649864448168514645697752149984541377396045549242918162108081654452312754318392047349783391346764929035183994500007649134262110386701242330486964428752527861109529164857657223292835212202370245344513243411013654531411559902084327310200252551560520601682452315827955435073998930354033216948408167824765168409926398285985633684329617852670604697737021165936471569722688480293411338184230516950770196378727192392265605961164216040199418900926734091103334030643976232129642690492136045389723501101645135531450142822398188975128454104099345812257116079983230393064825557883343438506906105752555764179137969769703693573085127040976511394207674513450275458918693024206192917731283518271693473433325430116885698975109971307260332399004998986033898231490994050252719727240464312891452199555214485319423893868615298105505903872883468865414582244940218140450224688549134754378952301476876877621851854155442740385185717414614878205183441304687075399431133490460122033215222834039854629055346296108337418977172429268706567480174340151102493834898494141746307343170378819470147047230370271457886481218942068785463175391965935710659436871446235126317216634892439828424542580224516994516052231748041047212310378473850452766189112837541198821916931192814278141379015834019810403477763516697867345785347162762235341265531705832489437694517431823867238879021195905888698625174873550431633948098767477378882675649590062164445451983471810117375583558494073803464134761583395823299401549137626137531165202207869768944655510853019853877092895906020439805781522876802598981953563948160500638441497807834495811232848439407275453317726128503247682164471979590712380998419242622490098592614552930519935690741808814909342480816341753016751611863395966947227771582932366807359802661053730933977014355197701799475864760842591858744483830616957860658602117775687627843741206780519313227340311145426364110496697848550751475410148444018587741964620552577015016958306686495636606953798850559846708454808170645270591891231203779755695783473101404079919703100242610220014450087892500756084291628232117425143359156017635958674629675091431380411930235606623991966064097194456680530914043716269247529215053914438610195127667902755573437444334211420683392462640377076255037744660155037825197663427059688707367439163111914015286159513103676236449133225955117947700119627932728004963259323779522228894909933842124909029981721796783139958209917193752877940434165149185357664239891928195699474253265766742410960028008409467441392748797317734971744737939005713485945218097558994822140118921443042165673849857693994481623261386022193105194543888517836907242557567645541025768807559883956113262611493810342490855171564343229743881349450857178433608415122780656906977322969892623189367374959027173073222644873645373223412322386047591588196405382325746581519781897357637804263430582722447993181316907174339141380389805057881437929629836035900051162672874840624442164299836519593240682546126754036681417650894667221528599507290313748146697735687562258105888991084155343057952235352183146877338558791335226590640234005913200505414420559107859078362368869788287467514050318627910393520402891564266972898875395310296772994833463245450741563242814669762472798553635182349882163921472960629719834903345180416495891463093861244881954114853567164485233793139820468182618193258151446482424397182894247065486397306248319805671918997012742181102569248767286889632787659058550775786652575092659901308185275729926338545060439573128860497123326682725859130718338437664488032151388416092738594241998954130525281071016892271018178985275581422963369985043698239425342925123105008732716945797037601659827408370618382957636786157536580763011598557945116614649586131000106754454901380569601360524828420959735024899682517861689699043701074884989132617363315033225090526995895548447068286059708377648100634739563795686740532013072170544054545634364819574373954774588822084220401930484100262367294717851764789441577848840030568134307115206830142246843752365051544757043156604816122099509410195015772661322085899234286594159288108027901128501274816329198825116476622816044619160285370729984240072469644405891652454043505909119600770737891262945416170198999126536755701247588005979007292695566216425441949783568793184248298460635346468673327275727776799799119723360314450109226660740614347354515387467818466926733296244350438144902902200444700384175665296015754902371628337502741153780783437942835645294115275136631672219410151026716697191961116275190741521327249157070406963453571175353771827729495168411460237445289353662198108297976227411277772829525025700831277145399449474777612743316218921881609971260900713604445898431929398098002996635720643766750310196419233691196686376094511667254049985703012813614250427682287574853060805966669750864436242707525774628262035621105894316863588675726871215640328641358361733678055882712721963467628025320841297789546708366097727677394404249882612244809487573642813922969865929110487578177792990530871439528522879989673465949593395637277257394788990369773035763940112272692538451285195451090097626183415267858256230847313630676419156337824944158747191685349196457042935638039165974996679529558533350136735241404195481102923415184340124372351017033288390526831693735256947758829346296573077328608628894836011661034232950670045695688358907080445128835497486087984748208646604236839615346679878826146962679529438540314712684661583699859276265505879258068735015114964523611543026501511493078434965391272482460040743551802067938730454478162819561347013059778741445351211021200902723602881590085925431652485927851531209933538170497110465162397204604976718461637024757916332021131087146401635696724650238846253558594030426107186418166466725297517055399758506004544002537128855293706625052737490922479421299249739912197674680011794372770001362207928850123406204418755081831420898954465780864234446018101612268485621929319127412115438170435768720506343233762553412413267158997134887463752851737974404316588615182853933450454865723039186292002890652459602411249621185887329182607752049160108128060642383510550839911177353741416526693883312348572222418885249301041829940710321201197113581739358967052390156560763476852819022391220492171328430946479792819684092998983789150419350079892524338590694067889663444928836636667449427487753926105617094237798422447258184711890586217679624878788226866929878279318217210439419211675120827030877271287005404008074651879006564177654300408309257266838206080184531577144625615339447966163430439626303212218894158840552337913661338800484291823077942245070501014977384209378088436892571650445732167190253726285869120138104854854952932688968782379725944698780961686319232809134754660318940810246803596725842871624264768223459242089961436913147029909585806844712553127315153725704702165504358701994851138969569119595847743598843218800429481191357040887870603321047923042787645496884836709248197459406151219497268694667556340522882802816582439491639836407547260036989504406772228445895184876908593429384973380186066314725668562909561751047201875401307115981047785116855646476094279819708254596386515587118880492115278927803880674931870597941080135216750930857499922799702583967210970704179781569961360892634086679153477541899579728074582208355083752642616980535702714471280025381167715272544824150334192467763360363374299188940126496256254509312450075730176537496471424278633084909615172910183844051961807912613696651384658812846809048932914030460501764242213492679272333889761791973537850735463950152994793933266009936805797816266966993291554558940705805687691678968644523009834310978616155742315275676920265081214770905647615352769540341403733122610141977849150244040305138842675041670187140607417681900052350483647269028937090837638914723245856451402366021968142835500085940231975207554066773777080775193737011790624472639130101976114714498505254915611718977401248853388196831097154403006484186767132241188029761234610247112516855399696511315130741921475576730126438990933393017945693206834786375473330494347319772323679407788032480606395257293055150870869038759935127777423760848807404273075745676970457887794394638563858395666784869366857385012482053446960858451124805727616033770931010956087702129187328240648461362898193946624914546134849746167704458477166873625612405876428308565692650734553248831929401482495246130158983145386142433374905944492730138237244794125570699055025692937817205530854092382699717882441883529353282284747172539810605087620655036155465334276274716262064630666106486464090193730193874879988536330224560513751277769591970374226266482576408776827719496465883506752342925533066910684585263366672081663540137711612394944212468459129974775480190272113271659071254035107786867669849220100143241569418185243886259732664065555888919582477886577944162261406466450308705558458606062036864313374398741812280812239825145309351600715399283717417345627443026060945084031811577365555443030210630414869772734313248120191818965386431817419411030471782355552646321555681497504610332038158893853712371080897100791526538305959795376446132046551732376051968989729911668933186032665509985304435227865112589723329483181577362482962170930435663598204367767655364652027057174879913875913969441117216802847793947945427476735162282070103119983010101192785516043210827792999147852703892582236314144276895472032891421718179165901239684000437235003587710799112744478206611705814914417465357574429514456080460775446100496759186276971384863438796798126393815643248814946494060920938076068293387871427040830466694746593922120917044649029808585734367628837191016130424983203668920970106647630755773129024550106645946732317555178515615468556497487802329281863947306710736868903265510715338218190694914789254673571447633333839280118356238293003776589204142915416264113956517863493778317021752961243983877005581587203866000351100389642395073987372757556155974434645578213361336665522563730455701988018118236954768388699968196051614899793221713314146854006120466338820098663992221227476546636202611366086158592111700022364681619356899470583129345995217390797695743469956061681932236652908936235998577044790310163160128136645624348529581499146016256446422187493697152053575761010013762311170447966950428887626050587804829846747395568555508214202965991122285068491892673569830528778140219596386852758927408908550105426870999666492822889630050170647343341312001145831640343608803673591552692876097036510026044285837983282736217550037598850648421773711498769608852721302903151240967909815007132167186328066609991207894098071470702481000393230297342237571068102442560632687875129229336199552156259715617762330047853950153388420036883525050352967009581449703054408755251193170730513371257181525021071994379058501487860128833845795132916150030959809940121259172621722464640392845300388108864560855360569579067539037178184689879625589204959824367266753366514905186932024408692226643980472409781566166543109354184107276023722370489082138717407242818430583401283947443949229624575648557757347518175085941254556684428808929314003435472688620626073602741418955379235612596458350260144540691161343603376646444287350808786428716737838790418367349674345215129740038199123307529008966378384810083193154382764400888516816054307824903905362976685848796786471545664268727700977202579019210329593800692853832674061047502426697647426527640128890702422796257769023918375203232075304029326229775073890564873931144831832602655976150554544561913575167771154065555615849226655084688027684854011468152389544491992716836751830996425594257638737280284363853010004869070087416857882810936049573054891185872310277627688212292728250644563744914941326273617223885561135016944209421343770321193458753507254926477962359562869292640571683437804788999577240623930371082175245854194669297131411447501012113491228624137336159612090141466117425170646846354802822042124282762265448663613160902439891401454645499042655740391313054729721694686230266552786699711783451905648827017194983523736622403621202541622879778516624502943030334166228696939872099254513496444438495077124180013394547059396674374861521308235606812238652678579964259332217381658954809091329667677194893166180687619570619754078924213845709918229020268683131704135535571015541387098162420402574449561816626812485195890141232001934754800266922941834621519772883345590997660686234442672937721722317626344769434795354948129699257435176411963965397905533855482520216330056486501725021507087716522230968855124740732191148097947242638700591846706343552733796991587035030990281167091443658554446429705798609183280007622523116023750164777611915406291799987632105703415216962742803245534432291941714056548404845387044863754557159080835718490171551199187303251648117382238335381414438407208971467011136864153819533597641984632585665218184176691501659534085003785692815801755571706388849550549987455741973150070184035746057206458024365721177296619804753255967069312661438675042796519281220036394795262283512040203740103206795587620033917068833660092940754922370814440780535599491416761372656063544220349074329262983462243050013912041928126861071256349197816732483618195694752307079776368534470551661262313738747438129970364960481914269188024467881436543541747975160657184300247877190391799682652474663582334289215049396427748422280383103069425461588330980992338052378654423557172122966004781055313147667645673929651405027290646487392520253140840482411160963211920264422829916155663472345874856122613098625031359561583372331133085477833079369008355185449834593204368605814894513401651278411209454818332062368124497324074944493350480819370477185026764594902595929242656760691625808840323504640227797039447580707274102038943485068683382539494846931288970032739846486141388720929014786281064123261485493571715158701020604143037211767639031777649093082163905365578218746700307692516677938706362597803410785871058059884389398583588310071281050730064128390893450984652861691927886591674267619218303448668732254802212996334160276601164937629526520949910367912918315861802468875568398005871616118113490467144533738440336922975154156841866259407453430599937265140335834833737110514211917298446567961326186148346505394991479690527653421942602986997639680869421339190081030863119711850333932290260208603206136637816265199643931221611440225316190137716173064252685962182223611597051962903709428231645703961822720808753323122868292365718504512292645927026028683659770860527531423925856549811404726804770024470064212674023350963022572901572954249555139548302383132095449471914979032101046386144116237955187284815410574130598060754640681278530789727874768768988895063460423149344768111679645638599432788690101320379940178273945179177571944775494771250229950842304529702064704958301882177202247568622996422221077490885598279554433812015690780291397090495706486331474486314876278568011042376540451163072082733904726918958774984442416653068592295380777360589367045896900875588220494778821411170466214201096017610750979015870904079135224517055930196685152936421723406912206881325404371603777356977567877986485358064069851453315149175240344069153553809655369135401751668178148963181125196740092513049903471158604036113741170055318458795759820538003508956850088511341724998535106236635724139746785575047181557233052131483064482335827479540622267133100112703432864037275682505068649805367630771849896556716980221461620721054732768784569667444071402991772131298432699482798758621953707688039149924783872417737461927604705207879585773355170839913489034858005649893812215473553927600478685445102832782123541184432145022639996444820781258190959429153533284914897586510313074296956046531224220761751789244554534544080267643247549561088305339940964339741063933823835308713816263272285725392667556141283659988288359776673986153504364871420369884406583446792447391765040139067758618666999890510327090325328983404601680588929630919806221325909410826089039151708372484431428613802649084071393666996950262295476536502937969302009847881299949956510695256079237945380160869816256728295174510886134689759750261089244552208445893899784390250094004237267107688350425668677917458900663719767915399782926964076187072131669717435852835406081121246207312268039793361334387731663912911060800045012533132121642990371347860801851031521152160562577191376522597535306130595736588920288041118974170165656284451396307843570868969441788465982354909698565119560684374073191884093655833580584196441128891245192066731850695310311258657515823589019454177349472695750118055417602460377525656603203074751180706101157406566132594015317785546878632115926856112489206846747146430035160131883732365062911776967140086202667437819956298288919576799200124485720339609663444540797514200717607839209473138710111496762936309124482895970131842671949790046463597777108936032632884012343572509608121425292209750913147883923177591164505750927755191564688372877236197279512066252274957430442902740242955720730237687477155722324302360266563036619004691025863088848891089761435316873716666870146624255210931850673234421988327267882388366958989512282616533873296622623933907269815741043416477538860580009732477996295695495427548281108847641536449908086218421937562974262597479931643909918904790941014355005837051991709485395199665245768070507367028980531055746819765372810916606106666511070343786983719972321743146104981638781578317523042722254645257240414832189520697728421367699277901802943274268545409179670167362460655137880845622422141208705754444008402439744658621855651060314234900769453820288009442774379437764300062223245613699135036580463491407318027264665133565804173669440754883255185442895766547999918560318893775447139162376963065534590233249785315044031804796949184880753418968181094828719786485683931631101303723534557380738430319477043085095934732267867103742757397599875370918370655270563431232706475345955542179730481378489322156041463876508250938279927091500643453941557363088015184710888445205819951972573082614430063767923880364245102916856814161773660676577305416263708740866942373842292803904557711451286780812859519236385438873419470613879574206270499429952225691345225271507892854405217900856225643971841414915861227228170534709512854996038819310552315804327840162908605031285210129531651245869357084117865084350179749685796740121281785231254549509220668059170991134196610597421295761837991333161582588018148407159024231061325142538073598686186770606477456344741872046879761335949173263784342948980529227657630078469795557791168714990551242720095876151792624581045787925880747407959554621580693535586393916876914466328524376921758737818303589884936341718056067011146429819441688668435691916372300807981185470357646842920510441719453037445045150248985580584519568976966098324280805537349281861083904032846344584484816803773362260030477931714842036678173622748231672738265965011448583688294056030982211148130232254752432776879294665753810727802451040848077752155066483714551451584555000836305606745875829149418063103662091711938986771074276238508760838242789020559527801544224135753841775289164505109037406857101084759346863909880106544222295624057702360407340013440233760347652324538926920429856711225089563245616252378538010869971397642658811586149525610189888636017076294390163342672657159600686034637001976582337466296716324655735817266067611749292978277814852249746338791377728919353440569389552072823898415711979580159677719835137217705948772493250121665398083656857125679172172888060133850309665949333048412824329905247912165652473545776236384870121463816831728147937574177265402501635391421503764590955287128842278527331773407217008394824815961811807880542329373162878082199440348039540912935370449401466757577108900220100848570155071264571243875379195644187019132599867494708244736271130094744877732936295909129958372470909083512025044584128637102463509782922456187202697507571841612488181120547655274569725304533495969300582130094237433740508042541355030622060378491009466166064157197078218192046652453545863833626694440346020635055375583110518568826041445289251488943168284401614188564314896724478712483364102480375653772649976297224435918479006309728532405793971719959848277567658768678406829997278103391639014495809487911042531059101109343057275047223677914247636166292006654783408385150827789987613782747944201786322633733680101799330916330365666333375424908283988294473221191552666002967088754611871906742054681822104530080342438280072479808951376049645043442464058059389284979872925853105544233045008277620243590471299292467550866062333565983704330944271851886964841647924463667105538151521411941449781306275711815254155046901110427662430822502671065626967557437041854842055212399288939574878656794925097580322295089609890078991834165967138783546365319910902291886657998743380690311442865353549473533342667411309285058327702328831117114303179452278629201645315778988076097426655769444638795858228469530737462025552731144407270159481751284120310031039744541228184789604107706048051333878755044338110562923988091651608981980434818999953594400264617334987879747771467768848305776655833207922352183075198256875695803335200717906751929936494870532269067742235218229344223672087119661930526006182438850003587272738952553620004583990786510416478930412099675975275323128243872433054269628172662383204435175196085195249713453576202261004513764120042156647738505167226688413822095712048448550828646290743495866874943034278427130999921807313952201816527024986636647396752968407567433443721583692987830372990787717700546085018262219806947882025992451044594229705507343943795774488243800803889779528667874530500438856424655780481892026961183004491479022623209189403627562019616304844756167485752966842102637538145118149137169561146434769963778073264340033194623151063406397966942227920318047382596943800160227168399484056556168195824823850365423881577010857575456641042445630611852287494019202868263537403688900640901260074774345374827362783895406316402773747216333544259126359584116407161338471670707616570205689226492031308828690052731350893990883680778355888814162516819641899773055344563116647074522516102693838849728576841777821184689356056505647982781674833201113499367235114001407232041521268628407750442416620844657675752479447663919777848593192779690300284141744239465637104630878580726265104723996457512481983183725319600718027128502351229973667052524429202738118997278381564274770792657655831538207401411047047543330975555946700017461225203299939094501549087060461038661581637692330910427228468151220045514683543235059737029776212473664263308532483264761457212894605966143779395456225958735584325358082962493591144667265946970046174719821858904379743177432323729220320126177168335060257970913602870533507825993240146597711658149113242642459104770044574954030600692475290250608270529578038914940902872185136286056241620403587863102444732935300170229431172462136533417048031414646528194437059763434570715442780666809252818729953675177426598855616758603150943159247909233394509621816144199506933629934664176710122504841416226869190586897808169043697304291939675776220372508020398190592245924250616962835468851279268960638421401395411960949218027633878428880249267017519258138186902720616372810994740373754664067088195113726529811192840423536242533103151895668878473400224711743529251930782473685531220139543933374915285324777572232429061577530137981324226225281135593063860114709699223232923161467922565688954987170829447691748809013614420913940776250598593191070280734760658913074228508966746797166730471325608444799771608879750536258567537097962126815936923414727810377899439992326446741815565855733525216411745679975476614935085109289590150795837982271626422057189404674154511803614844760318018375426641640594062075658251522254498820858961082821338512660650345098753464592945383100419847531744486450488104640072579701326682774120080797265605303833911747158613849553720426123102203454397097216273670052369823462669677979842945219674596449650229593118905387003273216302432810834003098257719358847345563902541954594504159871288652136311900819301779147326657260953623970496603440318640640648261158168044176075944330404508109530672281534654072058616149843822711961353007505383639225948552850530586516829216179471661232490712133550755053062529681786094764936883537234931469392658555039507045742259538767212482950398786667943376950482283832163478617835700181361847174726964442772753215311017315899441428006808068761487358884755863721110693023059308715967506244491102753225865920110167256546371171910093292481708972000962589580693375377120096683818463038899728266587228077248538119508158382792345383000678854100422761013103309756988751116636620960376653573638464527183161394804598713686185350893165718202205419556330521374570398539855005562715032967189529260295110116429104376930169675467325030382250202758068412383043384938501791358818013342218478371474208361579187962990469050937446521158836800685152515202558043346381742781112337984318270280503584707645180396499593790999476338972888634223846506258227165398859523130770966116869925803069759015749986141611116273244855510955705083314122066676904568138927555757818117334230127547197865926493483279021002753253072172246973776869048506081227975516981090337720928534779131157534326890518115598290172822216123479064806622328511363737042422806555251279226653096386199190968451562339542877462191737923956034573776090900709602916211484782683474763164702123124142531890455158801196908195136863043243425157306497949304878350996884054548101754089995429587207682068650612094293593692846869654379030552077339095546807258731891828089471416511085190666401813343246146711878440981732139731847900927129748255538032025851268423906338556881308944353718663865016068561315496524820191511698167313147569616809701382702617531787209471094895460573846415575395149147272587236591687874102318476069209632741480164405848485766954273600571945656148398248373323506459011161323486619173419556772254785543107507196325144473438839530063742134450346844180571896015440873930383703771174657211757027475707324764224551362404909762558000186609664710865013048652678643476727728618673621247939507098805208217871671394965901898808817348618421834042908546421530020885252611423673925218379636146376168274961526107540576843416570810107985569161610233293853527972875118475554411676584335662749547680727291877296217732646398377727740792612655148926783922789556627611223671777287732033034438182529963052657658265676452880367531628952529671733718610073936762232763187302703700894167721282019958274870536938847089254677622274263049880021817983831633472483613935117366188669504472770748435225701353872244593807637615556371504019125753791107452450666008647755120375770352038806909324578589446990249771398585653587229221697594886925307254614979734283306793684282930313040358802867046139987560108515096138897841367939800279085907461603640006021915691765165750991815227639008648290430758486608695334725240387796442114665505198457204466929429437180577287798018482038590148248818333035640107337042843025684406419337691139509640444139649905849487854442701966965124428100563746169057597301430300700938283198099061333514076111312519256118682985875635087097828921832506695867791964456941603009355710063649753951652220186042379489601125672463308574548474208877870056167780931984796781164425459818968428761314379734181893135003594792275795183400263078870912990855147872111538979296271375334203920514167880082983017227004228626623423736912719556280089104751100787041808543103912696180938351447468951195169051914691782174532439721165022859778294768728513956073979350819448505724299216234873441492765932849931149801549647458739724366403944548555417469685214192459574702394420576324611058644102798744036210288553174687248693279486160861142179906098122327993952592977871609769591308832566312072959044138285963937748075390515770082707271847193691338148314212996050416155323808661642239864445635224626899164350585710472676807272578029835753908456500232945007454340716246333190418063063688944136968801308647753953501912554748542121755295667215218849161469742139768126142693750305586024559998687920151199818616745273492420652767853943250427187622651289381592728459874712049955323792262588212216446122566335825645373660623787710308638808404691352974125479517127352651126405260828980820183643572082576206959792373249025279824183456824900504879649957341562589567490589717763185709332457666669443975994858959098503158401143125202850992565154426924818423095182416109987830821021241493859810360422097120500892232640023766804148547843419015638076113194163495446896797444878055085097441580861291564102063163733456919067510797432839051463273890733013254924885107182964667936420736207623621062199169033357357234114410941290125083143880067862996895104440983998554014974605459756399783322733106141637248015171465605069775257197166082025342805521447413138089754384048056141091457796944011254300024014474377309992038031124474415920914590313137463188878951794916426518171540793713456602835693617811169315685028447021149765820511286167016344481619887808457492358666203769954414310960754239957975603957432740333362494233762581513970931737063402091531067899215987337829432707111081721459024096352174996450024715287369059679732008981274606148491038599939412679494858878739369871230725011562496581003075466645192058482596546460131988721297568085652038272776654660779232808739186998133910096568174205079826410740408840102124276297623167763802983062956044992414068225765858722304510344781342330611457024605020774667370023897529716190114562980685357878505689405597977346635029690090391128570234772255662491585316303316367106900015644821610591081748398958730476625293348901539056253068013381029639048048012148362218634660696063437311156175980060269087075782589124112259124843589513702925175159404013469613734806773161262302140850625627099255638708866815106010138412625445409236856747042481002288533389841895697160627807658125196917782877610890973689976094170980473436166521441235516793031856041587355808845084973573164644536770300918733437821124674687836698843632417780431140218880439888624374944061524985200609479224103132880277625118264833910251206514377259032655702865019133621592194914730597636181236797595156125034618814106770426303962116208557609217682479361013094621846513109365380495936167618653486740038718936560732100920249849315871176997785409747461991168665025906026666795467814995603764264322593453456101150281244368812646431134499253845241700536843117252894255148843214678906334413406585596647661659866375951874345605111021190969164398992620811610047117140064757134065399128692524637495643639429778807043170182071154508392616231584064561521542294839006564896710186340581710361937552983967765571750653486909692992423413086077690517124880557648774377177664360842475032241509656408512097402494425079437350328224777232448672170881406354498011546709691099592476568920406781156319390912137863797797675102647508705819382970921935235085914763748327271833947389752764584740075069504735255027739111842985991896826280366059356124932785954519929665086721604223613837778363170651659743891282653483153589084918248584327036067245073642850556532783880745337355594574349306147451247678932474884464190325294143407309029383397815152630807744988418407404720189748543889028748289931790545895962752512914814654977924458471293076755980061773655142794397410290829222356937255955336964981967807503792459699489204885440648796413420216433297777270356855498552271485237669903341345103040707700592879011856698558199452306080843874132529685795380703138653418931519768587634968506978646033994340700736137704793823060989859012459391944104530712977425480527726677912054395496254344329023348449620447892052030177625993524360756667992927496104868207987686658201439987019903270785976876440195369218553222538984922032190847262039397452991228153262750537429353119362636550288853779453508211727730223977144352769954532533553888378930177071198788125939665266168371787910035482615714211612533699770615744229081034250147939856560172641488900966795019734022719437950085235355190506509037447364857778890896428821369666705113261346506685118408889015763817324722857013110039580301600455487397235078546660255571746422340290909172880043213772625216895124116917201522335881015784215535006552890373555108239741582964835649007345097053165037251578517395572921993832203752041642381940750547495711465270212467546373008136418924618356399316172858301352743429421263114980726621934587753675147964741760569793654330201373915661129626194842442464839217407066549275830426419998582838475076806054533634182644511105256178345035134993476752931236673159282613686566908718274096051165050293670973029484827844623781842594211285925522395629423847205920936996161179525468414118016733909692496331964187351563024339142083562779929273353268729152133186904716502463984282261594695333360132069799658007521741569342051793806367116570506787473914114590770304825750986767522294997177813722183334835059856560416267202852867242245865473627794308849366825483052140364649292383145626145122482371600162351249136205836603763667288642773550961626617086231978945896750303961818905766643595907618164458122636203754522339034266047365920615432373031437391910597960720155827922608715391773835062046770646447510477350095138290218753629105677655088366492326450212945496087887501924275711205070853508030765837615034831797837082090153152903470553333675661712516204690749928401734417368053855467856927867849442906773205662120840372149985761611132717544089714943529531360197609663523871847621872649122187224677410693015168526398260662667911145405882424027583206449292984517093164620018527002605971704093698194976852988557116763748465097349651933765397184510067616517242259040412598118948112905281294860319739607147154911425959771144486659929668986462295790213245527104318210513226877121697101293565116056541453158866440296100633859502961652684700661292927745348448589269644124521884510913681972482688443711926943203568325708704957146499019676661986737643311468299970979422732667441045970067414103339991448145008345044117358179280178611238357861332329889197981425710590689495752245920893842243990504348964970064705024055916886119537439972074937492683795819788292485296094835546158494170937669744508660746650460784484812154940651975245135867187889605126254888931164126517150237274318110221978281712310705596377803723733697361257195927007838333159646518515161977806309224792036015254403344987426723301242164535791380941559727142882337085004254481921121433604776477683373535130214788432956310853387076244216233380124370444054117705284459028769379820891577732007730643465283289418444926675954063409457731304692868674351190674429602960735373429092277196447311346183559339343586275932150906769763035011978942574131197521708908788137967689893490626926174807276084866098535389169078499391776751482947903666834317238269945840511197772721215871288947954078546338208776606214268386440828419666273331053233039609329805690651718498097719887351540523494366660875955923030310132800754291410457107256877170417675567510599545544820359642019887082278136367112585945747941893051357567014994717474629753353992583546191886608548935546265692889270730163276726712452525088089290238109402053696060894485691709802593139883870873476047701155704524315497871351016178610494413317836770285237424625510200343068317039192216638061565765554900515468007238903756556853130321607418108557110852743148385110672904736390845088933076434423645104975063273566575709972986782368221279791571875679895667458925471273875998426224308356602552621668693277102833226882504091043038586977584605507327816918506693239054515514949868057055929651767529996270162287990798441184316405059220628462399171361604470696258002458634928170123654335263750269408933220032535577001709927444413816516137033675334518560731328832620241243999215404530583265855022262440061707761876018696487093268562213161730339369968970636962362379787145114635373331514009631791723582315605628502069519545747222387265320900616635145633902040383518331929336291379034940558342072027911702333277053861181535752977920497329471903062053147592205748923727244767424126157524232646794523065974135756502853508722099628648328397779599893971422544510853242768895034214219686207842995017865040854919469462000252457037950582390269672370830144082794030536876994152629224290529322857332946424594200965884647207198833087721422218637622595023141997650266633797006867979417034496047128143929268936359456517447059019198502250564305369780301530836713638122159896978054863940536999601134907237627435474384649004879512699895981990133856329849782196942086514423925511709622176418203974028504425317118997232831317941186861716718289275931363307821574812494671672636576439805237979810293896041176709251613050896525074138831171074864771000835136894816582144571490447491282759283851930062479284931517385730001721958288665197599385892440930700051067561191774574604208966652683229529108947306151495315158220700189281837959434041503146506037322450988617215305412389463568187198441076732793595805314615858693697379225995351011089048087879022218242236879263429114793327522519443588050464189657840694271553644860742782463329549452514485625068025309529773645325436284164719882431796471995247127886235909918364709350202098833105247973195992147403691681943352104148171389125504719736387176893830269726962248809639028460612773350552336040389550595997689342046649522265731818756099525218620171763883375788471965447256491504029711881069535242793788034156219502482626200743575033359057157313790464387538613703675929602289022759992430619483404148051199172099165171251322513696786182336541904119387383963245227189151368814754822532610302029692078186885224393083936751956051766069854060682346706119685839276069435106946187309105537423289308908417605530062691844361026392820102100363541393945092390164493364849455217576177816093489364302910102427547278527053871845489172168724261223692266273284876174184046800191744144897122523976942092015433869121866161323854452664823276605667087694733477269126816034719612792574861565016252836283267025755716470663902144472412306252410181495675313758140513995494329610623769607106476405142814546607874161264687401553039577274374108201602051353165009128718764424356208480570880186220529421674531989651176337235261926692991397718652043239445108764788317553983653503222687898225208680480705880307134865272211412664091833948638872048453841691875869984058494730728972707176902354948675392003370313958181542394264924745422471762042924987582418482725389134908008406900653958001519278051625108946774561598604876224943670193605724118615353051503038055979375587481432505606834752414574262814312760287546935283560429214711049252040199239014245683840448901417708658214740388914438527488278989444784356513561032675526525360423825737653446144811167492202407743465803289179058760751161295182051297521435628217710377831552549338043832498055968450689229358641366133008773203055585948972630417980019420161749734639300449610111856024168582733319055782074026833592854048529723667655204074939361692627286717297647999410880437419991557369859928853044809497910398954567448645963082369387118492545297098584221723982373761579427162992757977095708048687346480301713148096291386335278797079413622291216488571378416919605650805331102105011823129297292752601195730678127109956723266555126072943284496165863175487963670586899052297977401751195869714285999659943396244892777062508817085918600238988487226830370731180806930178279294522085425239287048014172835968993473181006965934059039201211934933017858845446876326659465591601418449241114543808287761864667628599105156270896796803209335967937059748290369411345232843165768964187828655549897591100412849151349157884280946387793483606908974694896224657010300795810206044704775848788258387744129871578465129242436461036466328148050181653435893445841448170588353529869572062142452684092939326850568780805797103918686865694426296482663231432196985419014585630292779650830257277312833373741054454717545021972396343370760687214910131716205506351873113195633180181557738059216180003839555206782908438476121348322803717660861831475296480685915644210978053577029697881266541044079961290312532638118434054903885325845190450796382482236877270684849845041621717760464851483369176383080684262635561875773606683500121802828729893709269515722559578183868899459421758410165093789536741837601487788559942223746416490591867397328314127432455915691500772747451462077271368088470785341421271315109660698103064794291963621880342397592840560865693583387589580735543560633950053517046835402891302798504596582866618651438710980061337116587762804274129683971425245378577790220777166998965648892013895243643176125190415065625238560785512331172520301519547912139000755733227583398296435290228016007114101290132414216469106040180199784407236573378758877862876416968799387101750945846796633960897820333819971546609955178491461802239650850356153279436666841248980855058813834845542284666707487628404272076053079677232078690338248364096544397635051412516388964599597510898132409430511737292854581278691666849307954103136420743997911330048803988676750449045942971579768510840134717616931960963127240943770196141768858084812010868266008523780585700547020717339004998709446275064709596321621485532463499228088904201299314777971836759261124810270826506952511128771397648055160658991192248967180499353230503380936035607536304870427877283182681251701915510168789854891448696670227574045310745218935746409792586034893875510656055857356932253403525208782050281758321943001388493919409599108772194926852423597153641999673100741809502526447057200593611623823441144030677477028556784317602085697367508671029449866664129145425793040488587083083445640760612458837652974320801543875850276888909049331962359342577009591260201875722237109447767587096146826940696954743377115798042302548563965947273749296583776487724447096612451335052055388291424834913950528425317367771254820172176191122861636348145312091179094122252622669185071970538877416192417948147156413574826113880476710292579998007956366570124510447524106858435429725878665231757564437715746452949067029158910161928547983703857992772067576983747786091173093925578219748193017305632971001361780365277774206291918203311854753979455940416608954974599570964193285321223104159709868771949682717268597892526686771965969565230227837244622313534793223212493523466368178300507887854367014312236456553580566342529222255200612779530498420767588688156267627510057475042673696447267816569421245470243836840037989843948168832690272939444111067628965339396137161716397831245936461642899990026513530833846589937257236813408409721984536088530033282559150149264106617516225399796113259884324583163434056060187968407026149032514528609820707292662243425428511757966355311887131593093461672086999034264034728295560261659465725310461539701513453738790578860291342439295764831749173388317378131302013783440161333222210765975178107574174694149860677260444143091846488556111466928437361731311626836257284419863444731815352680936193322956283322194648756076628887852438206324950817417123202599260254811837649586840160999612544352060883299020735746849502016105033341407346995331933243240509462260466146367225754064981147184274842511279986295494554535105071799005872808227748033812032908998628728676655087691044932879616901737375635302230386387345292187662364091989393879178572802067709957405708132276941500644862916859600381056742672107399928300149560603446177108536124939791478743566500474476280585362831952466048239524222761225803469878444710206222757913363475857833527537959672686565161333351034006022340414051757120455680051100557492667779760738673840836555325799226717155200815652645180974884845349651032914658514565186058697902353603074854340407407221148439106738364398096715169895658013537157912710104505695721458133561121420786590019971424765840644950679028824352856640371113841375770135853140516588325357127557074017756626094511413012486100897642652926245910109746276371865659205536066539782276819530086527869506111008380943916169279425676242040703296048572268244550854211764801336978618063120911772133334813891562974901133774718162060579982098177789319729322610325658558117750250439573958834544307937831883953175351771639631249876409700511387298441637714664985843564053090206800817763386304863334764301421685319757523878149448926711329271904508227125696543300999650057362950567037604109845883127477757084353608823813351334986369214860591802139073492455336959087204647157641234776494790391514972411858730614950112558778906042565052097494424169409375763160072379216364705974504505186539645398335537239352984837848621347967657240663359229107148777520508070154376473508432810530885817187807068844741031026895314667350449254830370928506280092925313020789329303488029714317502570149640741328338686058374089593572214013597852269896652669685313442438288080529533218627146783267339634565930408667653624017958826096369313856425527937016623501015140929969892981477593438779685565174881195610689572292065597659686061106867672259520658852904746957705707094696740161980247040185823045761387606157312774429275319015818280843890822341762128236948946701357580470085178702953813334163377233544224880630057010180156949046175195049568374993419607640788214829265816303107008065668358713220441708940684793081055033740566102702238823751529497164667611456114564773433284438209594564953964255544657421813756680471430742806816415168653709556009378115379667301937918949103248661212347045454826622701685893891427258785148485977547764689077354972497804448119434506081094243261017226574225528912249802795181494950756107542276870734967295886651263011660618242643452912596138860242665887368166405782727678049067003359229228231211226356067493732480266894323450920912944162194458170276838849893203935677187097143265391899515063157163034659525124979223963982236984499387047343454588577605201231326439747474736540804244523889921018661923358965555926283522033976595832594547869442087499922185283624532533506579168840427420781278869007748549459140277783787453979317993832163482935063309514459892639979129498948042800130989038097447949693398831421754794245805896523473338062500105706575924883485642449563740198016751512783583213868684844836447191199244611649942723705426743099419776090545938005110142688472961057406727913174904893038059191121054747460167740985971487632384531144318137064716145846795301060322926686065555477628646068874533002389553865566912827576467453699090902310768088806983961924417905632300624318304431040413808202312464135371295097326152261789101320825375081077023875243567409183978697628398074987983150865949612356551204634951911728903876897734253782111584229323934753520061202481081460626289806655447577468747901717050534341435028581504920793774202306160526642377850732568848912028534892717979698851082440202369329306623259518264772337690054762155160543133627342154415220720647013421180951250178764569124175988176960653080189748775888966220810348283005753707757844408617320078848266574092897009481588742620209568302167535818857248096995871323315434263738087118774834303876591517106093207355564830396336852358018581548645171384764414328783182387309707442236482491699053398366464707434743266978378410695916745920868911397027355552129520673977255568431063182135229447628412744489161319235721431766517543598027733769903609933825291474687452560203943056443538949664188470328208943852048391547325746012194462275312785564316461885282442339347912074114817269841713229258799390854051018089161018899565436957777695831384808213626737991177452718265929173919697054045663424413113471521534501600748029746940566875318260948314259469228608846376028393662126358639897640480738297735877990250471526620354770424756885147972217448662971537118034004545742642227969409088424534594746242469112619248220904373526680945076840357999968077579484477467977215567172710591940607042978009187841639688560001892774544004039419989867298152896946702085284342802554423765563147932306322382630948406899174251492182439549173534672182062673712415690781113885983516022948096002939467836239718229501204998561444405300714259295111444793582732178933656647549109944383850792175066944386683606856845915304360316905687174787310458188477211536469131183128193741272997916535287079004505940542930799178436675563666832586136390128922087773706106173339344753808556057985727034051020093037918288907448278212293228760667715101854402664473333329226753340071800006651093508851074108293227593425939546465127375970320454006981514848901863209528057120945485804596370870217964112872951258041114984301031820185854460189802523220470382903975507330089538701239204228695459349446240959331723335315759642484621857137331751431673839427044207524658627208371163534420181508197494536916015362912517243755644613246106039829306032798611816449810755058737960968630035868284389149111479655720000781578968689017694257200281248530243881230462193333078414121293111668641723323296752798008638331049054095480274239218670486016485400344736973902728945457348039647189786248673031001103926243706008645968428304348589043141870632396212736779147867055473132591697685894575988859410514842629967862750240608847148692296954498029254439911254180605601239028055361798166963728211985339479008608660279304570272762398673791985805135568744544732973156606794787048042427556630818013336757650296630682896338418778933004046857184487785283631887694201440082893601821520155411906065163456538354429798499969483825032422548510422984337516947776442060828089626900306796135073510132676105929652030912407200507122510749625781226482490624318022476149074549711558765779312341226812447020466697107397474988854786170901750305755277326946766437550602311295300701793503399465511535273293363474236573224977244852363722104631014995517364727946699131215090539057475543447749717140509281806099419729439426069865595098693232728994659822541089197948990129839576512923427871167164823816150557595449103134902928970837835999863294757064639799637191024382556801956235102196031626993862222400989151261140936748146466575820846953630608161275125960297349415997331415652812159311951189087346085266810060326004540768618265584390894838432563386900979834214440507567189324173637100230131420383938100311774900623976508921276268539423312867182503414148076700715325943306616022181490124241371020579494762739560262544143557121637049609125805573744989633064538012157838339735403975865745838744633366119435944422236478005710764177819879571393863803797341919157560804398521717297085432965518317796008337964980544141632726700293168854189413386407331951676158339215622559625642173494502511234991838319476842138470188154070560605087519519302691816973423062354609182461452036756890693614146029499856710785132253951129995442489644944032414896962236231396156558471800037848689765044866972967000979085033257364580021746485744605402869493662443522970594578713618106716873596927812550184116682079347926510472142481360207013293238428815152196731594738483508124777543494161086414123695829116110214095879061138008210754417672213609297925511736647502236142881848815721619091553029431172385620431156188774777732900613931966365482604616904371537246141101965187586885079619392467272848419027389251239278121959653646512042009767280470811767801058377245234892835146105199621354493462385770761615378318715402932561639430501094069706731532741554186519378042565591682727122523723666851410968018125611043874414707883889174414087087499485571124381807413711394710338914963719504768298257026238348796930424838893880959651621091221730836523378060437449306014862714368144497947086277258459049618990343931445845240664178700266593961461678100826185414623402878941887267583582850799996002171508776693857721373952668729367090687458779375321937176203189385176995277977546688392943624815845924119359638042517237367064022517945668776184733445027487546939044703219376117462561621346054861967435869360488937497114816907382456229388880722813930027436922059992664021771481959347002248416118675385504366260203338246133815302054031349392341111744141059265304263267222294915750998205693434044138303067329813879216342744987696937131043180759335479048173637603427791441852586409476243229308844167869447092047239448366256804073188573823251132305936772246198690993591211107057408771610145279189478526432740767762903239061373949218690552806476396389018917313900718114902971473604693586014101166054136186829551361696271421515688677417289061100654029005948555876687396074180787149579157151570809225159581889889836913249950790239694354415738702493745644405011128820131198043237339913165227733445734430483152152184350275193015616075464513137384676437874691921119489873014749760308788074693399054916208448549929002813600954765190233953991314982738072652532594213852101521247516072186776331345311664379821948197559703578791350459196878123268974951153023758264920276331849094478157241135235388240585565060088602841537556418461662752622647014765009661653184358725664346599313436362805674973274450602695421382924055800211600086849647960467818956509839900048939960008272104455385392333083906497164846514239648579843968838597365855432982150662546186239669642506313646301804065577075343374329029663877768962643836404651893901013873982695040510630390280246566784585922532394512666055354833119010109971972408288344590179960432626072558055358792416255465346959938705770119263260932266371612544318215914723322734629414487339516628476190383320929986849930333711293242956820079350271534461484047707876375459898998140009648102635699753622516288576493931843409476493734354046623101682310945331032562656478518136946546062230281898350486332080618483187529319112120899062499211723509798040220269993877751624634852612223397394851254523053728664910388007934526212043000044947601526680724242907536600467464551227163907893617633102814577590128156788883737091221256856221917418491429250344297182267505028094176409633310044147564607276236513234962770101910501589301420738926641191500745898980540110997118164866488697272380509499233493028967262854246113564992791274916194240512783167830478797551516232990176015179694795186062900801092060300030282600749392948292516640122051407975237506290917569902897180225230039734577953615924840959830864429361778541758549337871239356549064413868069899406948097933853278800694146906590583851049453562567416795328403090204119885098563848442468421690387315736746068774776158591371037147863351842359494217432844208324856458653524940083455780036178122398153725034577149540061537873218089734083709758378583155329747775003796575278617810810323435072850590435071942865662883644261206121995435851827244536694529989559350492279551817452414385861872646186038104464156052594138043712704679207564642189511366696244872057565196959431678463433868459636962550836318373382749669375753946477692858857783772827067644804104474432601212504116656257231023628941054287796756583579209846701983222589832937729231228273890889263239584414397474531830309100609589196974918385059419345602595992378293541779137337013301713422212972914831107938944471595677000285501231479801986137517614209469036729300687781213819392699473411850096078970735744174600195054086538438120897849061719740747478528545142870042412107715939008480341856917323846508655916089183934081722432990939089680578886564854513426192791338240041954147594213560832193371726702986415963499938859774803575773986102374412512111372707052642859164300173584620455390797629938108677712855311771845913403161201087089222340818508465514842456432343591967762991301026360979455438054758046890190562590302668773623401603072870964322677089106805236816277956103335891122545277636589161216674666465413390671620247905779726523917024818257459377724998617938843400332841766366614843490041580125198048344917487865850133922281529344251121176058946677014113105945903351354337814215847690235099682098898505275523803962092014354945325343210810239142786490398780788982030294419387318990673178944680991347443085223519647734182184656515385062085682990862096791506306897398413579325375817092441975864957189494760014199108545752748003553977221131410239548623766074776083258928770136673098150319698447683223290992896950503606590514263531554795980409870303514993971810826348588496265524739081278221284173751609571851296270649227584130896359345099322672488499725030996446535654162183573336133066160338695382452350921408881228936384283790919336784189830102199801443627525776588288919630014503027516531063859122685241066378540713438425755001815934293508652690941509665962040620073745189644066817089891788088940999963042974545369809602622188192746911104019952592206312243492268129080747021212635721374320441045189396405452001394808882189511524403397139038667275827042954613597707013381631613948907201171717788892423418073791524156533718684348205561588588988603937944590255743130748334299388801327817952774406825988320946278925732538585993550317409886921276991502630405056021073127369167781026339958783475629864384829241846590353038974519901659008270941574984800696773473171858427520394057501777765435624274712740488173381104320269914715791692086933281081498007283970339056223899426652202144825667004797861591838843368962489076997929413073024026534358955954483371823282088823364820048760502132892648254270465840099407210798689208149901346474140416211676344911515138333456220186970709754633557115692826834458296595017538277812587919813167970945772724116987150296387860328118595718665752172051455912355986736937330127493429071959958535428873601978454975217412280577204630807702662697718840216751667330977471840770691893337243722444229510860736516406888389826454308716946015312354785068167305387435359075544309944212660662386071596254429932878280639674316959515695385943226737969718682759364024010752170423019232798884614000235408163511912431854444839293330506239333703871628354509072760921499991723709522740479998728339010827163530345432202312377455769704441555876515554813958841970627071315862432625342593685833127840422643449315920945895689042186296276100334403150471887271945096704136124850425202978010018975453863966011966087565205937979203806303027821423864373567092894138938429106154799679386809520228403020943258858524854664916019261469041528567335785395008346525407410080140619168100885347834626147791159309278939288634843477442270101411701199111317206156639346243257968422524882303178311279384083180578272038333082000613919889104062708625512692324046782842688727472586877169113634253681022906621391571468555941787151336390281977144263141355704102063271262526480643197619154968271697924541677531133784042813474798156292180727491289092110879157754254063831384887584219355398697980816259546390721752467934163824830733591801674441896938128381006041883476421043010714003420611007227498707845188889587171143751264926674028774327262711333120013287486489040572824198209433900482784478247189262531475906125998661262889550506542592882177686593527929802767657064085628876761170145316128947299976939862994459376005422390805436787086314942375362336165451148120948945183606838761478152280346817153561133770642767122317277529669725303838036467634304049015498872097849055964380627436857446436141154876294743355947362813129512189627622722795134130392273234766878956753330639504849135156476415554839272617022913288190034182141000406077363985747273518928772281157982305491465939071709759705657266796324153534722814845569374134544885245885980143307157287449150501321380876103716212813663211549848005848323258728152576693301868399392663197822752951892252881816147929156317156901386959587270989319153367596141701959771038130888829528771154001462646275889431359347359865437125897780449318184547411680952262142963350630922089138799199124181535381387332057756189400165458459971176004050313431912728997106134389365791365301504278822288477529989100811338928531216023901580659030404805302540162608611504790662291123393381340034977586732225102224906381961735685451482905745197643295649543449757764243040056603578397020631415169868311822417059201924021464031687128730833381067352186919944673308111270271006043911568439305982443868855646572407967195922699530609185706224939404272562155505701904242607155002489988388414969266142884882475323204421750630461238191407726170454559679601184383525736061279416788914097356328929677793019091270396726631006865714243221724864053181574598867048030677850820974278806246958059681821753935985538700449700338078324790306364510155946379214383509042308789793488890554402355706549723559026181153468821337225269139247302179055353911452626770421262024890657192001512727073425298481856088441855204282980822360848066560286772218421495432272389464311131533869343559141149143798587993091411296814769412336861076480602080148720082403184887636810831134880265647019411014079110297122330688422205757103731262681692828751559694093548057713169321767490045865778885283538009363021250490488968545206196985190347193078429427641398147683007757746275031629237415468250263184461553398499825535183137503432819787654960312191732607525666117942695452799070619467035524192633684375670205495694195305414210962526022785145087816084621187773220461268662942011089098126162015793594315956339017307620720812384844123344188656743412118745060629730103719382370416377233135042746091717127128366903276962199001489718783567325733052226239801556365219360987754268436317786244467633595711149695088369483804672716896433417909064169895892152613388497838305462723136172393921411066184549097525008363621726631365264366600880842186501072204501302046599558247423274385358100139289049905067674703113257690024995510321371411867468267131462832820420303109060996759869562116841433512733268898149991266823432901884240054927680565945258755610472615107960918200337558965423219851359954817284728885669581554517621145292331879297460567226070670314148889206905193600573970577206508660794919162994276552664343339522070080981028454705375406914765254060130105206591022104495458936769149304205142263737865136550755116147022550476171323753080178428603525247372812555547180360869347655255190306421437599460020650852607349096491468591209589106231400547300624826401473277044070345071551521127818273064651375770730679553731106020687752881289606853260625260070342743723963126290474298210583384970436768475147688993153622686601796335356823567446359265990321524947380661911183389304924377842771456460550222639143007138507326442578802556668844258510512015087916665446504387603643986077814933380142108263873213240908621148663826665548122461956322925290145174321501007463838996834335811490154347041106824109167517098583450231974872121825072035112805010550198946693049515999774886475319043384241739679299011404714603650148444019362516536867241389933092523634472201543032296766826509424777788828454753410174664845296045304359655933244919978411160733062895832621904816715696095873506718301507155661207773254150459891011447499616437826065790645103080069248117688140120110408018688071592055767327070013899317999668711825253380924818012587370368696711167032298495809895549756080649172511564034557737568052959841897014867366047736426458228342570337272308733322453105560122623452068680007354488597421405244714954842942725051750473549557667286768413000194457086638004148688573779575431600569373721173893713366218780339050088888873291448170360876675206880471597370822427200353855700270605785531236617744413411014539721322172307486284978742283376439664902728560368039587221389433970353248483114503773066547428583447935822138502761738222245986702803233405703517227982093017154762575345807618296014423841201288948603138621737607545312845859190644049725049240319268968907148482508198836982669488824643050026674177349940938774125886794067075859414430756742263029535409382750537111755725718595946469858333547339196698041754118957219286419216254758412416116539295951939663603859733376364523985138384395947201966710550946393874565822877464321499120784219934491907256914829536597810299031916375223308877395663438190476749963907620363701090959683653276506112653651552214657342649730605825022202362818653187848554806256125203433173205599332203220799087504379565139656737814786497688501674614645180430494376886789579758719722982335211387991280810521878385346820878647176141642932487574974538631359166463204328402180946325375803768679407694025842567448849461041356618069402592925117268524682679511232049775075930343199924364624827543248308956585018754181527483493383518582018688560169152601618073993631322851102858393142474347888939467182922435051159183699074677743367832406096139737664585714194131519797415534941096076479392215650332808997291654166716186598612537820218832242719692492313760296964248639877878390970140294894801058943376634455215999296438958764597595763196192606827221947252502209772664575361324580475516077524545105508739635879069341495370160323544723241066971426326364071858772364496500029719803716865879962984491345122716265723911821574658492261268644345346390455079186494241905332688352848064023224438180159044441984617595063428347487770459512864427536679041034219234923167066757535984423892972473236760480325283822822455090167513632449529323219498002930176024360412833226293646521384058249588152660634211782244589886715749166063027141449966601683861456913845099119702552100059569012842617865469208212131496076067821278265188513995428074864196893382141422003790664462723993727566530462033686193715355097034421471965499966639371527363971060310758285933727351867878158792939287537452999693865326999135617387063841919292468677032097001598344371230639800394390015642219203765744006923872928087380888418403348378189837845331842121621672779392341941543753778787479214011282239944951923313168254936493703155156270298658102548195624102388152908226896777537743141677877618947418094449448084464567594379181744440790294051993502312387097350922280665394310578085446576521353907412124624121235401967200063401634590509436965053903647395708462669259461749888096241326530549339160826885462407820099337623994565666563775041814243673276274060074582141030122435069456441558317281264424229612992564271145462897251409778754262833158680881146652569198724319509024352106788152761211308798825660945134196754520122939451333181301006820811100497701481040811130597640311666831512620794089299630203105503236466293070335953171950086179976827425840561879818631909218051146165748481001335545728716990143449473105702685479102454469353938249400184553424343150349616846655727122139672416857007982113634767000163435943205031118604175032417444374780642854895416373485532435114099007938436796813400786291288803351050589989342122271416051974165807914228493334755991833043133308657733955084506122197694996962592567245529548895108695661558768153211108004700936956725252520504170635369126986672422475122001706225387965030756786292881722645730394855392350231717509348668486380380950086014752779476479696193597883445841836505013348373158924108930083355084522403612447425079349370027935083347263102041818611226297687497692996509084867131791425600699175056736610817992456998005139306778767231686756603245068987414998710599679271349352282434555985461879545711546025006836463926997966576970662988830528006340961215346182216291278976181876613629562188434578373960617314382753841315785765367949724053507274999762547964734669315536130651108815632290970780950896031764775822033231144816603385368486281969116903513333453780953366634120974235651896607016034449603610074858805066870501779472961894860130900937416287876237502530724059414616524631480452757549973987635020260350476871197785219801381646897110083623092538771106725286483355041059949797657176914828514176284991784271735390854721804889214487445313247091391122885343339533766835830768583293532102645478198495945610014544475319229351679260851725943444208940920181440973909525183829729375588588463470965539494362396646295424997269546977022978862929508773525504503698388094435403933719111808980783262595274933116144669544294168184491374584391336937448297787566929420759189368993544963409635393181599095793630492388383519731343628805190726042308370973324481853293995815023763669654029986272543768712380416727623146812211841942970128923825399609993145930420822870889856479292239939055888620652049562484569611127800645632569340405703861978690925785806053465290996724938945008589260550837424141165319419760619803916130865719128368273751029180818063799146083151614652928165533878556283237285266206120915024423964413702669274415309147190961042700493063263281872041412071097405812284143605434908111070874502365451238541640870018979171324036937900483369391973664280473099433516334403608655425004811301990379062123409703110318446221094397606932119209873386210890480115291946538755184976321677022998382362858178861590882300393983685410395705907002865844047370300711785592032515436176808653376688421752324489180589289128320011364067229447719283685614881422085895203320871871126792524537171765437010979194449305761316461522620981121537272444674797937655460708068779297470154766218839823267161924597533097394886499320613597471545310481032625928752945081746643448557479750128322523888311908043100569746852302992710299445180343199969523721656380479740540098462691013231442017423857961004138461697026179573534348294627799535452699574551002464660194394871356364312955102557808855133768778050969547691031270952829895911215130670484550574688276564325542262495644974067732396176425631839695792279465805279195787322526828473974295901676493782924948003530010519575408461523451393271704433747582141518665905147279781323711353306962043577840603175868864214595446289432260614938698001726311820681505580810050927119151566777151336204501383254951512030351890175032476738918314387856445153965484487082947033396524738261466264576707979500546220628187102858315998500929479026283676732706080081397868544198843968208910188384799296502373096130414994396136510684055025721051545141244116296437889577727638175512595103264429687282421309263493635174809393442723983395371856256799814994010486475581662859958710326684443624960657117542034783513685114464744009089403989644028250016689123088344365783758459817464231849294884441874320894979335102255567832658895245900163507953369684865978111722826341912491991914972135461546289690097716271407789815239839517907169157908444590331699057206367491679941881310756576474745767565026959316630780534780542464736977443120000367759591271277585594226847660568226807693171951379881711073896274830488387826584795614260411094574793410825333785743531918395940647808557836683195898172193316325603449853606042934671261591898256127048097104967383066667168849959258357932822939489602481463985140275564362359641229661417248205073512017969947548967719993934413425835794237407495675422540348649199361680027513684559524842840342474715606068862681455149556087585814641653255092707228812613461956584662672787007210925077183288482058160952406257673798235936801800716096554823239936835260976860931163009867827890996903474729013667417126778609714802811375959122061303115167290045085221028719722133502059863712361593531411676800733785078504682173368469046653346623509536137837943717927728993750728560367573836438700267555254012543040814896243672246602526831304392821447361456592850217025383419287454180485938189105199246399969632490183183029649586524245096502445206899495521733013707292830202188834776557625847451644824986646571409742445147775721486371038787924603949051790590214162432574853973679348223860970330205377862194628999114970456087106501573856152811906136177259240380207955423956058448128920661782731674693496410377058278380545400869397937489388877643035313165093924379335270098129284006901475861187456461968630014434535144741789994997026741230124290719910884002510741503619191981231530607499025271974807396156057696771870271691750144388951981599429181592387861957191152412291656247991104572253075659816998380141568221135928577337703782666124511848156845828877383900321936975471043893778984533337360554627681857620373764306772107118491839881677325323876045957059662893687350587102688667580264657282849469721241577845495592233316056240908103244665053416898574434610302653417268443734005161028801613380981098630649304497505859339879833348214744542199645421566070743931057539737928578757155208232125084088203837738555372599595059470497087516787615861079432609831342164870976836511296275556591488651663302485321630787325741859682591901086860384907062343206598756017521456520377600451672728149081385447385766272746443006664082241351159305264252253899950729470800656908611016230650103508651979570802445610511955313330665014423699648528582251610353660169244009638623302554914345221580460017268878507000739043306633289552244035585219927664351248528984036640723533215850138647112068176194955982287351852870275823057412916905250169676910041370433355733993268020023175574405560213207162582983634063293474827153804480691605664297704742180590018381086430681761258742720063288641318159103516062693851826678589158332331638014414484612270817020039594852462149253145462964111930895417672061123189138665955224919745299601319839761519252595281255677726119849255182587008518751888291383212459030552567621406293489578392626434529763083506937867393599793627980604574947075551027726101604014693032206921307595233085713307682510828313009902997347388108859709605341210286242887798317256930861266984713405815462100638795541144741041827953220006670709511421827420416937874506043609232783645155138683932812274194083663427760538180875285840456934907804209810223042834806563267579414978337742925658027082772099301695137329909139648210551751494044197735190482998267362158508053414357205243584130514918112876841895196505806014476178924784548203916429286081027431816619280340601690908496861476239790924722774905421862327357878262244602345049249391792534078721620509051106861886429454558259395545125687721945580528908861684014992702261796099827227838413653483199013436878996712331113196681405386079890248826310976869589315178388899060257233852360181667820934245385411624712622622364897544188237553832531192659037120464536783952749382107741372982972462218755723044132878518840182404107653408783940989884357527019308008739759853893945073207604625603382871350881530670235742777468735254237445428589298893689483733298387664733919664738015649182059115596123781537479272628856168027233031814163472031814423214759120760711735182201551190419853305241314756746299931246912581915120878235695249570953944878158058465843941769931153223804447807813331853355404310714677056907570795317377497815237453872419092329484903469092378130783495724024893660562552469940587099245595422108853704486304383987620934544494341074769759727383361505815681530889416620582042845866994622983062251105032376989309710499773098129170492223087732381060878261860219959387746589121063001529315278398718236553352643135184950432039932684545200422413489819749415503227118088705541639735974434196189563791070528335324021594145092140791743157045295827851400174203989022269573607686336204958791011554311568961324803751952079125218353871294946846024415263499436585629822705525207883163165022587822933984068437206051551353195400179146440749763744629630285032918900895275408533456058299319374700396008219243129065823661533392688928047669856819162412822574162507684857793664380662131954592125791923997039355292161513603377718369477472271418067100734644220996493566258908276442080630749827242290404107527258205983835701357963358980088653276014797195435373320315966335987495252305544300083089221052936632920078246123485973847309853800534214413057127325315217839390922398726012006771300704005287677864353033504412950987718795819174426614321853400882204667090558298801376112738317594982901997203346381440427683319141615797213847834440945459441517328086308282255142444924475704643807232421200800671088138064684565238945392037434976001577801763686422875468863501175006107836950111963329320010171332876131146449466599648001728007444846429472566194420736299323907334477687895413501495449136205319450449221231470397385911117020928631458357834447462373356322301005280158648318042330040177173196246109276964499457284340754179633287826884121436961335930476818409136675357073342339692198861444992604234358160342637171892500308317024269104049844159072390449717748474644179832480800448585829412017082500625672415062479179418520805074518336392167228939626037948037705212899450711976712133841523693162382178991027746267861016488532140200455945938422824945046847338656779765651870438661530500460846362400614369261241210891962293678059213398340236579220245571112858056954801886013957061588207849010776930572430952163617188156789317943047356891319288334046085800950654883580880875378964032154102160746908894088091247660227212156017015880526018669097484058092684856936609429296496278939851891826100232137739758208294070007174874169575805844222470728625205671413123613472044420463539383421159556257029319710077646247299378104832350035246746911173669373844941480225876655479884717168145132697872542196700154319448096621143107432345428402333223832471583847475199673023639375427582651526504826876738659979902184926866014095679094509484868251443060551138204588421818779154446223427758879831816942153144802479638436914298204067834548626742230779655003781873948100196411148487345538868741392939097330329461735584779667968033619719886566135592393189427611261034284518984931134650894699777791500265363379819125047194421252485063254818933351210423319718304421029433695865288202862727429655861063183100175601444126158248787848674735020902974070073848345190189278544400529377942797870039226638197522377664943195147192568233828015174023192910985807183544814928315228818776585341473065101282186257810720939311615781612539090875494226585254085975842934840105859179214516821673933265756911590029074821971751696973819815890681349890723638175167612984307481022104798272797280783576896300379549160051348595795531133497117942711623024890828981978351856462869466857244268877283519487381219238006514617834106727907040990543955000459964722092653456037048376835461407019776183271455127390830091582633962780145122876687422756817987077610352882743482869516650612935673126809382609023369068148288054753113076958870034728616709922395405471253726682857094270080762721363219773916683756174383111934287226690224306341214112511277987748752733354637307707589845816440512250506952589435365277695684315077810884858326304967873110772327080029903213626470019824335941921240416693695350696869451719634698385921373442335511840843018159532797649722126881645861117884880945580702130477828270913353589572453227675935282535452975064715524733177508801696760547275776092805055787900933499721573742542733980689854706410420462761357823253243029959196712861213761594944246746333370951973931672964675349891035375938399493276789702550002193887645291838601418886903441704665443679680807233994169225794299378547196096115701522616799132869966948268744946095316347604873533582782439616392923991134411014490714738234014513652230860431141134153722509253882476530844192284073255673203703111688991398971852857646800290848133201782678676625364881869632451840678892031551411352120581214747020143061853970189228434971909176188870868207871832898754963319387289463275831239580588662892239263954605405359239248400818307361698347136702470143604974906233514596870776077847571666961137220690137378172781726857207470334921679160337888596733048365667634386229608222556647364199596416242382440989986567547026546973103692869256509331333804758350552481479511663648653971143918712538945134597333570332926023304960904620391880779376554590714876411089609200558719186099988866652360958241158513070181752537491348100437834679472576198988735876337697678769230505561828476883158461451334493531494297250595619405337899784374311928134872208925910484227097197500198128675955692532364235019580588932763632936835490856009705164270533456347421969316105409218211333585872864923135156759468495226025029614421584864597085573675404509251896801343865264077348038760698524722588388860156421678978424224653634246162769512076353920043994077971149544387278855718566028080193538130715957533435590430211959543674243594000029448821534033410883556622007850743135115507804017567718582292301927602492714322905220621635220505070516378850605755051536277063650294012730655799290812391486179656278698478684225741352470561342319954805187944703345867465037713524635789132423017736992640388960064940662620456956090054791710763706468135615311386037241219880496789266898538078929257978165494983484646033060579855757363426627027854843547547007432073960874135235150882867398842852974987121177368435605378192802830179098370348070702907774499190851718040934373518020425836491146102513098810991658399837214988358779854760188899863182916445072478578884560285622227823733975967433694344650070070323574868309233447187022307845888272120123220855504950096097652528953196245969242349211792661474049569456224999218401085473289633993376644105744843885390244603838380154114299295849366051574278875829140834507545700008315809078106133063183565552760363240500407739461915419163978049092208587916716529159791346855423241548114962530126416423633168658161144828773917488447353838945765755336458959133711291919181501096137701911750409124691246197654904299301267126836001303619863523059319228703517535357441285048141121216315123883253624447302762296859187275351128258789968704019087216848508321511700470878405244351147950330218434400084496948617162014838903521760397748300961771834230137140168352489887517647310276797816581631567217505566086086624444504039433127913087860223520887772536931776426330420740386397867908518037083878739732603979813677932229462058862791024990925031024908975348736806758989038284737297450503038246485345306145439479855304858189858433998296829456934874155719756481201473073653208961424708326372468675593210189253504959466729931918009285846179386671581230959986484913106406441204423027680530582347698059558186192314943368482711490332511487330733126586800149333619826800298691928931828033367969289540347541091095194045205002322303075481955468869069555579989147000621615154066520069046490288938376460210817962804378550016458527462614892670541194452596448835070529791828725904356281436761200861523675375115686262424007610247646237498120825503310684617689222529485514052312107177716554110497111554895371017080668805892649630260552421645139198330383965323738153754561096304830735645999578391940869370076914940948642226113081541625451154486631799201610378053293853884701014189511117418739112781403128250021717868832613610148341627656104901038729996620178858429489129411329052065970563708983354433738800030437309170350119233259807660475379699711183762185358361877582929172857428629574184640788587460032573425003016119259119994517363976053567164034960359470633909679879151912901542884394859455759993377825690869569391582057874908103078732083114494414310349094965603262599465344519831481148263222799951264689562743893303966287667233130233382699186841806010481590540459844088891307577665065595298639835702977144926134491864139281114762085871703840541379379651576844354852989873402939142428860260824189956915812572785403170608020150935521172809606413430531662664504475983131815469439375529845734763368698037689940631043232605244130616683926018613224716043350052235982261303965214446820296218309782309464222062502505850168830060219458715469031312019556297966656206084030876353413680542403335183373264812809217552630225001045800814537905889189120154908582459322431518187135666186492160293973989952233988607583808588407397951588952652128490602515071899270448315413642908215895960875747438136549270367490497149143497990255698249046111216779295336276461264519389208760451968531330501633227188428746289696390610497452482969392177375578438527905103948282098419665055786364736945261641113765700015480967388206707392677504739261352281954785680147861854472984232057360256365925213871628597158859943178751682713503571579411725595480019826351420307364804851229960837873554883077829962522387090935524907954047875257405754131811490668923464491124268769482627229016040651194579916973139401565609110692710094417576355664517887482440976284150770573544749055007552003074974226632923535793468132366985705636232438270851181797377154775455783361546022194830268607946397648762332431731490954287661646465528524371246933471452939338312168189139643397340271680048411980790749313792974323964108152981605902698541847134579295930953188630733710731928409901331135832203167338067050109890576782067195344555144428813861244559537740221373366004293288104317523266645485520120939261997115925355175298754993942651251897138359482784202297217266848946181803432533165431699160565431643060532574670921762658728367716154771682703000726369085234489145802504245552828902957783864646140130812124439848433719126912203343372577381877258893782825199916364576121648271633613735301083706244308393794522393684799006751006873818671984992000476939871271674647402649496226944617179242050090506386512304169910057781242427528762037439183047094102552916511174767281939868720090058842751392386954091540515368592212437200029619239834554705766048222951570565382538657043861329666414065539033719767765093527907656177695790917041413397848639644751432349395800084489060245937705538783929652702444476372059895526345641559948575463201116012641869841162226014641752436194559858700532408259406587422512267734997218617393243085694742987740970612396038943120535466000740248773362302882454529717965372331663535419256466392116157608957957632604699305487328799707335539503623512562178176513136405330095005119087572306247225015864051842206629040376946315418956866709528061939467670974439019071658745604961615068981988942868385635860484371517952669374577397229521197602473397119752290886149031695713923480547030623080257862363755626370669844783692550284785277264376051679630798175005982448478400474419797816270706946183915302519280601631788782467652946942821384517061933840877240871539595972477556750921665816559323640996868029376995991575712155533170685579911396212656536431740634335625214787322984958805891883959725657118381985419024203340581062653553340808965274310019560621670393702876992897171126594184330413650157810229406681391041935250394441945611625043439251743575571158608019261513955151289626137114957893161309295795332699518910677591965190933282577542943804988589834472682360539751976378900991575222519929738559075779933404541613514349133482307116150767516535859169924583820428461767886201349629299834175667871363670593354867016761385732078484409517501056618812425279738678413358647536032063802757713215944933431423172452372224210227622273728777145518721819422915447193631311523272171418538128052009651713711837209938185052382612350255348657468576064548975840060553774938913246208054045204687824483257614311994092543555685938974927183618286304976556398045301248287594754452109954769404871175067349878669773443057465720993038648770265092044153270463851414593474160946478138478585805265835103313334153979844732158338055630740342883329904750958855965718865300346416005448307006568919301364827875401297439978236418565639537651473389792047135982221428307008975439354675010236385015801092267625326783941293406985368321509750362821001184827541959332042644745112337163134314859805087448010060691897980563301060593124578434630842931641529895057822923897038827934646731846159899160739489772340180947786739646097864702184775721784247240654300017134364477041917544055513098480342312952665515448048054232141608313242157000472345530649623102019307010192690284618849018553372330327477838603133033247386663060758961222156515661299886553889496818620366365186435358539428648958384905455683821648227324769956711885332334716632180474695481554287685044160596038111111471763524126557991541080197308453323231700146739984986120071173581555699800893601390946489702787130745671102474421463161374077430152697965332097367874394219778425260626115913318695502566406004865578918197025168449867542295138277042872464808954252201680431658665738491638438733591006973564126818967794189839875498337524758967135577159538483194721104725490013740266496299589557220321984914974184338946268442329676611556037799530958297653535717295456232729910485591428896054589552327777279319993647714195634042268045557940256634223826632920543429599220605897190512875419403672776675848329700023947061092435049976464706416998336129935951357765381741412147568096748846210931050238738852804185755232416903354716928978233634962866929032617852340582512692576591356391612830331011323934133784277388940890598746505413892242413382015999913335290680436468587205029948884134985288748070766700982984512319209991433464076907407526689098057834680892430904136566224281409302401330421652529430857035441245233747965626812925970381943771221111416792517175078954427749551062213921219786749375713743170526890165410025471626519301464791249939627291746038924067312057885660108885262620158011594939887414959968974776867041051339185585216630613010339909491728612511993168472465319038688684164220226608393211273404325878096474110435969776896622259833936424949089161955912068620684201974770782821372345759974641957177930679730090283662134755183274243038523846201543076176609546118507836860117546774294249736955403220904445830074312017946288500586463372987502142717719177834205073915893728545746432515593073188074050860446995124054973778584304424886323743966118875661432442170823870519892224183778033535310765084859372685953554448763946354815375568203578403087766820481293904863745379856492844227095551444014385852744215198237327172666242556642892040815051732943037171103755329758756597833957663440055290150268405592382950920006309995841785671699578193471955768708174797189252802360884148605702008427131897733453979455822399756112248815715863362848821615238808410099199076540705592836477795141220340499069037080522913896875509751490046482960457473420385691439223691787848279707739709764603144181485318484722675461754318125486597714887968467682823377991932258630817605179219338239160044133764616012369355400095319468382111311328962017171965523820420404009030813314986736931996103303518833525562846697203402922693108034487663070561908542389339942103670235577864505496321270997324616638274448868059506807091010946006265161433473898379268881894374875104904533709297150207293792312754212410808733261425481084321941554912687633248804599930626615504482906081860255974761895309223565465206528037747925775095474642138072118146789812681171836628306178270221384778016251076500812799616275308563997299280762065347218582483323391545053995761368846563263669023265604953546452552547616081865815576777854645992514128211300553032317447135475602841177257364529486906391657338897641500841512202512563964532727755144247063767124913228889250551688005729489622262657349399199175143052102908065295577471606043610147214720500332355017212598473645647369483909575509726204981338684687836302225360758107072379126857382274690499933150354339180126390137597059824571957658685929348653153095991580984778853337950035901946689349964140622141968263962032435561092548706418998958330972338591765480601115026361749511755191805299166255746854227805326463700971577666482543075908942522045094247752187043782579289728890931654171798821391546463141469372648584237760290550857046951740258228260388597152370385718822087346549608689960830384598125127830457194505971252737846090408509087070302038628173049515724149905040037830393493027977729770624258181910920411189185009059580412237596768847414186671329250297687337028695127826435300784260573685618511426321523452013331300304435028332460510272361217147629708077928045661312468797748266834997227336034439235595960572878699801102432316698857140284441386619910598325312274660149443073699500751217507857511226162430621042270330548522657522595148280079690909511281128019499186378858749244547425941276770318350434162728080181060683996778534758122673073425380874568656635164064585850040365340318069085443623526137458664508847735208205214584830316355432132934217291381135201531982444882360394915327044631288687011310663139672544684266310167189652544113276054017715223398590879287445325144167348283136957090720877388204375163069592751647082448607644504219734656034589340072435239107876137372119549400996688511857965577622356458773635957547216215747778435150598087190021916515285267110787055570712142088172093500216348508905677973839211894831119794619729497880009316248588218822132852691389387470442097207344874385186299176672476241487520497401881952190583409435100513480469898561950865060654935098972063011449791922397202360768104029297703900314860241236515181367965535919070024832129887372927898828896298890353336687801501935601080492958251375569336076210157363137122378231968367981786664117257831966297234125955915283786881054514145681108517492348676146959527360871477800524133872656326210585201650323773827519655489886130250145774731158404558911963793636578676464789222880888385224704529501037067241883792617604546872859946385455688082571857875678642277939072274207132016007610107179449532386816162629787096055781455292569336041582698135361575288504718374287759698883287370877339857578817078228859711559121038689562093456832389259146228045427285170849374689991741330128358817277943504722760517054089701057736197307039907405904512822427370717127390528529103555662578367745016763642289065049674064671915019309886293829671919692854236404306509851576392666226023147521119743290476787935548555308722833686362835212350190723459069153533803375689642971375992671239656235587235071746134057808939647587850848821092045662798893192864555226227226789801239289619716745817226448767106569185343026888206233434706765041568264819220496799865394629342193229979598462015237636473507941295360112297346194088245061617068061300038421946930011916800201285801462208171330226025305398966642639362068054191436427320074252161096962318212308818846263364901807136938724455347930003409583403140801256755385488269488717161002628997404350740543222095396430759394864669543533054233894259941439595542388512053772631644466536714530942633120802915709413152665644567441337224548610602860074437829229272000358900874233874107635932432727669998148098649698750127864367285375744900754865758361490141063261807213251735790739654965189512046232595856817273992596323380836898172799850361038941476835980355073957913120173219433981088077645257504900671216045611576955468165266535197824645691504170452912222874049997152859624832901761311776227675186796842949813279713500548544099297932690590708513315958888286364295238240878122749883981158364166163604839161551943882088829606600009527309354285637235356266621785500813967961628729549335313662876420110426465297262364154746670561817757606178872042896010549333725190997438794654962717125514093550802616125881158410944673482366592098474250995353781395897893402884767152254512232010854385451224914680909161210871224060882026566630124636397995237460172295673180802286622254544062186783857455194713779863390255826003604724183876383656674963746032512420701128467082625728104139671059435195812740305093036336463462213829056452600789874300038910768953331159233225225999459558322822922851644626801536919156488613183575344939658637695740748971378097148594664266473846940378731751115731505689865291105877222956383434648553110639235869172814693143223540305515843471346805207964542045642504140284676251371726327835704614164463018284652891692670082576453048680805745131395714814958980585448497474744238513551456918166689651188476145190555062532322785227797199009159947146703369542843652102666707305497496615340176587298054496162801069838644212396356461775464158529872092085421830042173214335357938336023801168872853407386798657088103925406662896935054312160897470889120139171679699775559977136524841498476689908241321232375232940600956321605872641184567476492597715169900901203347163564111697569738284067878304002849871748786850654478946235042253370356484535721937540892307396673837704593548410636859581295031493931935184487516004243781709945786032637125604147571501114890056231359364396175126080348659792232186869566838792955290177699055179367130362136006255072902950103894958548291618766718578537243500000098167047851005152441005516034674624772547446025209858363056122157238217787871684957849823414363335843257858075502067454798052186688751768060552186464037873279807253087021503056833151190492146754435649819434014710780016950364102192693176463989989908811879764902175306832217553210692325879240706043247594487470752602921233660653164566482789281048879026411224245979880036199995611230134770932830174453033444140007797451907318157820572086316564322958459837235447613543176967121899029816150622041665086932044863417115684609567036159743743183362881479247114860761425254343246305081928672719053969712780798203659619083847940772044570850761196577993420824192609642329772827249140682387841365872728899981434835807329991744822165788323032708837524014075720254564074357346590586434332157416569000708550113214100469687807549487297761589674361199203920444368231481081706101566511332870269355006335186452883251865957299059099959488581003459051943679691912798672622773933926923093311484937994882372766266911845159079036437443641186599758391053338889796301725626789021354082979069270725726240205448030917774011847215531393579240480519643101056007224600836965429882649265239627204483257517276946931496694390512198658746317498557316560248570827210202851060595584262480719951301483482439747768755475950354571006063922499184435864209411741406454669355532900778533342071906406976224017826658556477167083925407272780324367631749179816778130390864263456024710049948184911023013037933568938955361696332970755473884366285191692173674455817179529390622174034726761695018153621569790684314887185898502322618126591107001006390765860119545813836334633390099459722987392536646209815400935911756399502823117984862569322535923760796591530748592697591732073176153776312580019914652380574670414385581260350511932484571507037125451558632682457626451553455613496846351642513481051430622738466168691650002037508678100092912133659842980355305670010207179076755323543682887612795820560961547038413501604874172163718257544233033873206916866070106300616641836378188496981043517094093100107927973648363214467698029897801245645864167851164256289196722331647309327356317583028204189315176147590017276036003648787260496232328921402766788662489232067294015690149036436722545072389891210514872046022394062790863437908386095207420134342421288929499506548197522380746767452823647628406095830541440216184712798283015403453138871716527084740530446634939428248630877836349392670747452589546062485905178881334836971861114106761532266329910949006270222615454159280679151398010901561658583635949315625898017759471076946340034472480125041813900655844444797829950309730969052674063642427109428980708885796643052588384390663411545186304251387125105541036810963907187680614859542974901254054011212292946761031683110377820908983217586513888656271014233299434357018266829384774235255273559761460063103940781344694337619625933502401181292812414749946235113255078786001886779980816108829629020832323070112961435005932194913217455034720128971924309966188012278764024691646126015066780469704848764569863486847620284978560831436769670146137048063489853784370387088362196072976877021389987924339629762596463222079198999656441385396884540518319675129904156544770676740715149683322202789802009401954044787150545904572840874418573768271850995666527208713585011420464377094407593559768273694244737613655667019013046115764907495227302014409874312982226793486011361596801774593800760595186985620759263100131295277443535704668553701463388236843517368562312548451875274160859694057667805917516641702762162817915010305763395870601323838131984419473797379927118135501402159801765679397669294826512339186759872476857825647383181158160613912823223848525314857186538684745002558620126582770046811580543954253411368961894332608132271214589934307673554993050279868727295011083242666092572554044635065826353148348293221502713081531119171127600394091861305458878979438843932286603328274086856711161051408419980622039851672468641396818623185364156756400713916296879926102763817131459130756108542050392738999899036703992495420544123766732800783438434115193553195382657038166053409493644739390728200426253102906376585942177461422137001835689307206728974730069796429089473379003245393271561397478196065121979344764332542038755449885919681328145071949024063902450912545267491813312075501995185524101984209973905236708513700766417413941834127749636410914302196482578453986928991569167348404889866529202783971506444920495919124220526917560015450562531264768960377868435447065604847704655787643301102448111763527188778843732827092092766047268212228081862383094123055376956342397123864823856579909972506984524732079550531563953939623443162395614872311079804457107707314256736623401245797195566356604703431665717738172686438107801990117548382563807013355431608179182226242352480197457193086682798071702155528635099746208752504028087930192773155858868581947522490319901200601781855878983858716940052082426551071390968660031027380871790703408520318844128541583369390441138875962776276751437355505229572161454193211109025564946239092097730289952877666790827760020572972154184295590345839003988591902167607513661968759008590671405762928094210620310924054089238967245232690045717050912659830894839167427409198295735459615467049312526139513603853092807020386223890688380789174281507765798749521363347080186833115813452518389032098114743086400340444102149349646709861752181413355064989261081837662688143904591578108201934679685142741882086408783519944881360625583267867012239725348774317601530005976684229603655630499276281462412459731026218508909194232553144135500393920566634151418124286288235358416398221036642229497784752442204789833794890669697742777189426674462612961919590096381682923928716107342686007413490535227146120222110166788770757719497715101224971060166015866145403345040390977021649138531860438586716966989372432222067724957235285237395899077552949201744017455258790972697298428219054301241469138344837808671574736372617113038586356416276622975699071670814393503436241085440809845341169723245517625339586081321259691051349342868842516599978281185060731802626353276879380959992776057034706350525263851989949768706595218413650386161881994462953864827482224643195989574507047254388862773774811459317564632928587327070974900521552099590194294901762513451931192424912414186225263465525762527632325059017961374348316741399967461209824006774539252707953476983252915539482352590189899776895397800010428277420169630746066557336163834292964970703930778165660308601596977080415555837539075165554349764084602924361296363697996869488552726501413111252156928248328876324347984435101376397132107283632342620423079522791772670663763848865384399682765939434546232481057278890175869670651702621227536227283809647747537239106492155963463726888025856774812261942794780755899143481573450856685523454602310956333788134330448193288377305598677453501807192245835409603784424780554662868895606065632066867462967874171819549233032596112079441963303101626667378664112537022088925811349971851073863557512440801416128095161360680122203489326938390440016486200569953909536825741829173264742551344227765695830343878631410263975142458261605037456489104509144021198778359328244633335948023023962391786161655683676702510017189038515491341006825963225617043036504323529548023260304152697001320969520058465787935080378180558677736104377014593996088685440035299393437375755543477051796504486175607366672768413130803548703867410276355449309371713686581205133235768141869602795593514988268318330030763495060164168659328449065092453250634553364804804154916147678626114378925391150175303340863595870114578646316905027288268169853450384827584127532207193440002325097196882883498700706385452434754206105493480482161148743979682285172591014020759507014655189740833980649149770469919497476555874683294149256776754194705186386112111432820263459898955510598097491850047435010250592958541222219800305221618268974010034714255949352024568162047653640477466157066884011561606713679050524245830356895860632246707934266419326648423329984861309479440001639170057306431243352996748172520053123150291136397413509459813414709095298804431733289958678935409851524088278508423027174792815881481234664567194769622792924132892935948506039019540021727417017403565780066784844645021418259706249278838447531006032656139477202269100744596492966586689558918268630116267805985621750418244848333577289468309382020180299485271448289317516167580766229948517177744263330728173745477758526987100542457034271350295981764780661922122535260891922321140094307243581449983410059401058674506903371455315585851266760281979021216813006317435834764996062149003329112205400568372186216607826843687246734069702905431966582277846181919543577225265889600961863543081355814941149368204622554226080224183229739605793827158558414911219754394696943013982924706291267837274307911615142156039421189368529457572626146740648523899282237384744304726049446391055892091875215150822534463674191245296186810281687137911041540779657454173352399550489126008384756881979547218862026216848504714743676812325363221432734711228216706014011525649957735268598384467743943365348615978906761678572288561300133632219759189698696972387517429215149524506346575161021708866707587664640732662975173542045603894483253190714706068246689409558579828975572098004133280378638822739151030846387625598143973354005275400861580276492284302934746888211283876047564650129774263130074477971854145052963468009255762004542340329795037555479661776748985449258337553349923637373402769555629816240635911058156593872795927057368946449850938793894444047403224476643301715257757255793886702001668706406413829981674758418580821013621292120631831992386365004226451754365424096693268195494472881884702322402182518725960725237771947537546934099754364547645116138358089790274833607191400755046629016278672639816436108614624860682160136666867132401284987214973155357677010997666005370521123560682009138716627034721624100081103014656980817300707971727135939786367685534211830177066559966818023627817968455547234235831772802250871351506872537928194416595731713192765870362335418327277925430143503565671620355269662558559944561726023617429427008605673418643524363244907427500095203167501377426632604538672256437435911448638633486047399974425731107841377165591192529460762865032146179574279921575992870741243879686724335533942322823812195731272048191393244486846984850560892427462147390470645230471475460682850644539957881405715712046957142617206834218421408886069202162546364139446752777175896303520146353963897965358094962681976194273876969942756776212465827945141636471425408289012735402545421800532187958681814322886382045253893289685454563563360661086060452080219881984359803303605789922385779000771111293178138663119077406331723871690298267913215616189398285993681319351216984236371772514026659872707104237417211740467098520162698794583368804458369115378952120081889001739981100674400348017780088862012959952389863790449471053576298421355490579154340569649719392029656574443527091483203179713459938815041545101241443531014547157168224538440017267715951567875366246614958374360146323370714578597989492788041072863119611823660860903533895941010698348539140330475623792097782646379063082966281540042962011178795820554627578955875675494348743874192460228325075216849160181505693803032562094232164629492718843184908862991189022873049193129955518962472498430500118895448286347379476216903102352809668726728416699920914876962576522508717293096866194670924844597137231565515894892562923761588309997573181200821586049749006436195975081415711351496309359703078500759803472256076937001909888943094200021682271007130075909526848505570666247347422240080504621970315325800537304819544963428793742083285281033000762395283453989875603452943475127853631271534400714067099366167677065751728827981804310784894400317705415804963444856985975496526597890030399298004103411370840837529864142268928824726216052893192974658214721523003894510035299720566469872108749540677447174747836120059714452207558703058190715788218686885963234767687308428915792526905824558982477344262023474300853109335529336367543254703817518233705261727775798539486305496328467969398579210124117233153254796663977597390065121076221232255749273123379081120966849501419728131557217278643016364404461304092119693454991793465597845163038641102774760038211495318794579079442014529637298576240275746531069507117618972231653727016621565123475653463316157643238365336081428809690956875434233300023717055923015911870390174380720518872314776172775330351942988412957995289961859576576424787432793116133084941055646779175936425288569156783008806748474657682088839625186987068476978217538801180533368169500456647963317870418129741317037495136430126564752304402227572073253261027264643395759481733721009969934227576766571055996780024420229453586434430473343805949118385715560978082277448973108408703800825535260009503724478209169313106233038125308246347149916060247830153107767753859275280162536002188273998477681917382353720694785788126122859781086140383603688921158036400941563959807682728542222030274222964117508353367733238235848405304521864376865660321392441588637149866728189295134201915170084659954372016575698677713764035527007006482148240543803981366762844934055638333978695371012446469012233420818844549561862429239581738158509817636078827911628856366111053011841385859198328069988667008672832370527264329736792794181243105467746178119687535413636903086780231326560889391610955242465332727183225171916189706776225549569357633209872760111677633977577118547929261825259916904315847713082317152443839726745774670563921341411310678330306022056161256607783814803999394896496539397246851508243876197438065196369421303455047216183552031866500344608134465288951244896455243284366997975088120180168784882117053333562279488845116383720806640614974402882507547617510704957441145618512914630685541359750493005002673363322640320186949555509413588935181065210531880511218382623008782974547119170275119951014268588656581197398998423312276120446009938752499270468350548805014697247424945496291842549858055667032896005345544799689074702036920661689751974520705639715511838545676856634609364420150735938322533181835729498502825780152269433393434078822545968279673500197357193556400226604977084678982645683732364315712831099960727552425982425417799715876424959828242757100417073437583662513572888392876654083750315241666640496877555852970118543828755044792246263288612053249945306944050204112583659595287365229077837492268623366319927913977674276148680953550994950279397633116145751232789182693650557634957255550014490499401807948355103373861367486898041162378631246829099615860123130711723074723584495498293391702625461216957004401446084724833584588467064680572867336394567869985609904507108623978627054640951690111239433945341423847716566398916192807370995556647378428248059060581857684310853517460218498030694262569766795441322433424223736771680967906942598759230691453474454684438421294496951093900226645475220091250122706838859381134241887731257880059255526460494454380536838725140928322479028949065421718368374651967365937541257859734711264875452873356089029680566138865485899642148738316706699092517664375219634447014336054570697591878823721864850609912654626585294777908342816273894737658114026035443359215511768737584745031287926749685263263453084277884163603593178136310825309066647484978271893651970271480303871393269103988863296045170843199896269063662720003064415789080553051702003418070243471797999895950069302858366721160281958506032140558437915623508191055055560110263422392586358843204336701281456816419550766139713324034327079714348621666366980529989475570000980942982565432189648618058651691672017506247749926767943445862895433975837557004906053433008698421825976742382945320219139518889301407564890342924557613795808772206411580152689443464303769356196275327344469760954048094063665126876068500863665080416942369849545124348661786250237891228634178916540167923570260183602020980187398339681107382473826935228710565785464876870368669387164468454245598722301755440179289055616940788050372428667374610717109346842207294671471506254426501978166429436740598682160078715020562878169668833575184228259994547142055597723716377617304792608003982802729797196786800238907123877857888654511333277842720975293312149128897275166926406897569262197051693462882781696811653446762904596913506248697518366877942846279799616057680532895721767357592625011710699550278453591970488081490759109683443190543732784461482474870073555133476466303777774911394915624999804720488894545803760608631743425879406985214970583090379646918188261122517876984424001343732281483081566701310145077564859179441406052381580743341975315031325204405609328544013107374434452675790747664112787689426661895308463451882773426708400226764278040520736312901525955456501578345541594915988870199045061192759303873685880254000543805992439746491924220198123492239931547627452776732745439021438923686357939876361770674387589274650021957873385618968471222906345697746554361701504369704477747668364418482687480644728185779986805872973735859647848869325690809540223982695804045351459630023956612047114053159530342878136950591744702099102531996014191885006577401173843152996235943084868138339872737792928229230054557078815507997256720295410111422093762853745108742162153504384607851059327492353605890911170172648958875980785763956888810997841217158472139543833804258291741781849867565413698135818840387193137639987090277096240119167523064538387771631722314597276483034861351220955241599230662719494791308097050436539314100913594754257023307975657334930955845512944035564067483920693551393904409593913574805709697793877131884774390279506692594543470586059390917261619409838512095355943773785223369202656951636276521468501897871545869608964024735552294338037975902114946773172228560403104144315385581373429493726948514107513584508132892095038937292814324182978640657764412353542559443071060189705808084053672424895320878066349828440912306776524922244187304496454743406957287539633250457784457950977142520186519308268605618793764721431447740687995218656720265561095566739827746902259227804212788350445314841578899345594257923129445371326505693648562879330257075031755235013437929255494393552514212031739948003677384311775868639005073692919856521445062547511690380586652292229595418747821743121662893725388533986136552726194021300916474740711429880363767059564464836102194963720557591890446033046284345029512358715706019735889087182187643165958529164694084291512299193138557062034030124045085249816880439544516900265038267985431613165099971156289527357066282618670342023120491989347245364057544484352253663497679758864603660429644237437431414192912527383615833348372099304079766609151775869450269348978677576494907531029391028018233915921421223587452056915753705315223727958696566487615994675820575734910071085643338893992708405116682984397528223377302710641473419844745410042025415197504899357949750450777294680301688215208654888595164440912310442561929708785463204628093316602501671564892074051807125815165147347935401921524566467917712431366488422277791495377648793612801125327397215597263825070810269815725129573542938163787768669551439824839935823003198946283833352200093835192060391106467670569816402420903290089000201378915617516097783419974973070350768735788637303799585966330023207780219856635763585870943941476656859514533269158084733443298811090363506252586630031146965315047464498036416329484117960861438790398447569784908003312343546903230704022176495308785550319138504399748930338701980516592450614196256131146751911435653072003238865488790603086546743118970302055552168668361058128657813180631491107711924377296379326145691280194111362795620936169262058518426625653051217190057705415296494840092040469265680837970906867590635635062023117636224772000683410103505567692872126743667871641182090125942146330214978871822446592109816687627969357265793460460309690958583292950051417592562766822810289330923952445414617810885751856248246441861465884736911884471696212946515048660278500310082557822063957737883313908687674782785125893984341506606893799318457115613375699755266849005925390668165388611726084874631036294758770197825080425074941783137407569947865414080153813088921928138374128985767732037337924945274169155236631185740213687939220922644735186380836510754890036728557839654049632365618903036203080041592059343026520602737359819090680565341287364475530668297100613871148179974898732401060240671612050841772621801381507692586088253295177922206386461483755938140310802413456441657724456370700133026512972105335599183430186596155040248674158602620940675756498042693412212597260890033462788012413750739679211028805936335282735804787999199702901190905755591524897023801224195604955493129106864953120074712728774090481856888328394275124745877163095153603091269960015310004379204874764236685844611690515707803678740222572391687841941815185248586028943499987596242042164659729937673912070641268631560483658315546753239040767674672138661481285204901299886121232885806190068054491459657059245562834419077024301567006287052717024389711685860415629067056248289575979833017739426743999320686935223935715451235819529424328395519932243213086712757963671171039952900314093246569834042954932962751027831723825798670703237898017446348528493834143564581328460866796696289607689782540418199536558422195687297975963622493087005460007738192161273016276132323762660989058847968387380712372600471790075736284583856159617435963715029187398095157612052819433434406469683013788069332624141520292672253169608672649504201715823696768440478220570726958782089041185098172598949391804573934779553608465846768751454081718255882014961903109352073527764515616160026010918643159069730416499473588475935755237803752330965529217391463304449870346631432290076244824291057718258729659046910444917437555179323117530619283511410855590892759526853788253507564599375577743375011857964073468448236429475935288942675474141480111855051361547936358741274803521307489405092556437476411580299877875612542764923995388340172221272043080479893266373876643311531731160137333526840484266054249450860680893964744113767471874466108040330010994655004794254276213821263540474090645194603463300603466063349528166588361464038084841663329096385634746907226489953643781752588676427281707110178881368329345134802436002163029766371258842371352875530656175263216186460178630122395921292519925709323839013338993502566465752386884354186811886054337072711089140194256617029517839893565858686043171003537160666876360558569913723326605548917506587452331611297927567020237199477262153747884248352974707621075402268586769370327685045392184796787328546538485458282425973972979906930733157635109700984847335408418278823238442652419442375858683885689183345061365766764935296560038813668993637462762001844353493867390165711957476524107145951062962831132399057127435869113383711523023367640447984879787121292191977113873149258424033231794681629163750128529105406230119535081217661296972860936460822983602327346403995868547690773759280284799294348313834282072286447997905719307305564837026842409612763082585109596071079760323245306741273212380207456869982725921644778024085864901830974408224266739724044839173772606970539312443437334207084396766216973003994125825520010621363174978748596824416194560712977410128553483876795210567314513724085335235406379150857405041293389618063112493854576804002738684631044509064405685029141600150350940807435949324605198848688064090078936794855560187328065909323758096306968034755502525926108796805410452223091685485709363277536931209262841827597275990673976729805625162880901078365322713099369377949280664850270219502325478709764713594590560603555478330566079269533106155845940278369891945085093476831180497507808626788831944997751058832605734980213957513660629346282180391102136542846460122102723382961555023292907893585176246155218981338606297944833932128396881008013115310829409993298184358719783047501670862225813805418772064292017397355693119330596704574497427866108983809730730989708769573524979357418156482622153209963565966984796291170835473723886134130050313024553603735523409051003174581747632993144098797038728651118669167053723099051952824948856222985367172095148733804443716174088548165504284511103240547999119385314703324789450595341085915937084333415430182502091222753904850017891342549191636066641844097688282777669178329944551891159346642136619751118256035491810288376992610232109373003427408231531913322496121994459684088086210794646227646080949529439407765419062671059763459413154662083039582062976488529859944224094103841354031617374779480431091998765959895633005990675647052656722963520288741232843892209987286756607245768900809772897521558150966076654886431752221146787718376517416799763854526847673220769755051422612238260228713316185252209300607649990602181502556255603414033923541562562053997979362134075029553208245138318794746999956805688093475121563445992593299593134883511802547611935746162687805060359914169081923406160567438385208822999089590880479339514278887430843537249604728593513399032973469569511143739513032779668503306012510181910107583274285236314355323586305623191351572202108558888937751372589325867710860786404132927209685630295836767944736390937674627111716148304675901704608023690153486324205738146494971956813824516224348054610174758814891262721576914904867070762958459404999078947078134466109670730572951313151015726221064417822795000005478418241456494198682625619074674109793840201124421484412346759961218525145432101453498871508219857816070392049202488771864627220125004617874577063644170828383023575819997724431840118280570775951804499999391776592945564204931734044665362176879192104272414099299785393052803198259373167880548208506055491601171863827998083696842277692659241241310583373393072473851092379361835707951900174865546036228538332355159610208957544192393604732689017897107604538971505146349425269565168338268338542293001169670525149645835174829027922351427917716127425424757069888224217917628250555368087388523181887689016669821003705356854934405829000230449849506359283593923724465947691584976401207189934671958152063256588812415352462880668946418516045620633977954262347273079268092417231715244353278838684798694295018723526636927464575636926469141472894831893574134943242118563681180802335734964126317708371272401873098591479045330773794405734959501240082181536544444564710787690754682209480470005474464584284479688772547647657396921636683706167884243670203943323071206764926611340228854098922976895649534392640473986141684425552635567426911207952500590773801710691058021954603270683805810483115576685898071222886322419159139677256159476041365830341713606921496748725999381234655294266619920901060564295493905946920708398580692936237182925248809186716475559055431087842663036292810576214661932430083720730867041012641134107579519867135624025444121565689445794684640819912342075972844246327610421893089881011238911563507553011908518048682942701937000654648528173009019242974276588392455465094091867674544080419730153339545490592695805574423529007376073393797509788969810382718173285799400088107479892157539359056701744528943349441013886934993452951468328820970660868025051573386950590595289027653411521934550381178929588140386702797120781160679713129985387071951308360069193381091380776893595656111168303623591999939415886367630096638524062519926134775801020186884983037264477037750289199067417392637424225917743289037681625431052561748975316878930148467867128198375466090047908024051815930206579171416631669383950294432026644206433643128362197434678397236210470308897462856834501675890339801976458067798527686142026383606241142543373324747126928380167718622149626984652476207340596762738414341118977060963449659360803745486022147140255688111228059148754257057244697166478807828777111032339846589610386088452508455879961652255657923964415532089312620619682804868695347749634134377980879854387429028961269227085290770362945270020944661579462333570175606388740553093600224298263052581475189211553436149629862561152864036728149040968730497396106397134608223609299456340560126870420327777600625532086967272768265530357633075027885754729264458438641940820899733664071290502593593937827864321170273463898197467728720213342199548543011823297413900491472001420645252781923376027624439616482288548768393171926786919940467489163556781201501166008492680449457531404832631840519182032391039714105338932052893569997212913385841023378302403587251126932551165533768828018914806624780409004034274307126655291093642185521476473333395071102816092957573446029456120406088108963022039798597990613179121021145335368100347847282362849559048867152090604391910109757939660180087321585277394079593959172266475347670201704003529566571621929427320463089799429404727606317205652155644721815019465855690223754924590999172894031058205153826561710756410930929893531106447141680961662111684548765586217593154535183854895752507243301130779227135859077867304575334034694529410917993633205220108603652750245721895819574365578848417336016170493085678988461559640708573017426669869689559174094734088809690698361754884755235004290365039468112286246247307413924032937020333845568700013698628241716801976259458178276147677478297029439490479753288816109688975387979011734192623676491135363709523914930399618467332700385910746881988072586463011548229723603935315194524637003827205483279831484800305043853789609065591237649695119496996623193704621153104106481588811095664144749118597768584216663444019344277346423939501352266901651471980778899319294714946122994084152355358564632406026532886172013885710279908272251326382391353679254818305963910202461515308874604776652145863842545188263189655440775901645410474716693279437909401715601031873244473618296050657428544104226688002212170368626265906193380300375925902063877741097782383368570657435125449645420618656499427915060637950910289051619600015076787736478129450854345516804497082891200340655195528325963082448762382914068832025219961388430781383462946585031926794185828715584365599789665669588880208987203848560379169566494949310948914783401712777814523281752314149298139690372600046632120090810618662507329564539101427390217282919259184588029823603362118944684203598070741434455761946703051986529204436695005662006899920738777640557034252114277539235458863714842582393582662684499189770425586855846274521566365807165964847664029312785523967184828042923298879599896321482872878249997642532569685610671937474614429769970696867311939992814659912564874304246082866290687263088644211093936506934402458956876421019994104984823102816606996150383041894161279811392895165520945652747116523824362875447366706793140094363434076124907851776287903640495399335723788088637492299850337488248897386794125486942666581937933181745771630291564916458101435269156985342933009484196226842076011004214145973928298792895867974253646956540894048296716593608614991464850260445632163765526298769943950448784597804959864978065788001210002338534687567809310370098546702196002290703086021367494111651251001712819802156595078185906685626942050838062157635290576026107285370159164660841210399528855648464444834711868118570613833996684547177440361402711213840268824924557815647649859064228178787283647214692501860864634293025847054572391388248474961331993765035296098686255524504903485904706976993185905194228145434742780007169946966042808545138108404220260234528045446903619847893767096054039386259868701173253703020494304673039614284680269661722533421170266030988645666368094457448609592936746555807791496624929732680323651810458213017036917438309312619046406504879151834862567934273002925086151021522941543303055058844951545338402446694500291300773093170358852748948923478857477671396009390669875939751177291961662430550182704554940857318706252185211751513198351506833209939148758255566121279784161688614440816434966440944252777243813795725109098052888948589048864901956827183269767924434007610696544828757696052971239333242206927319690050459107919744097421115800952703438511358699840988726841158077766928709937750512904391607940080909300865818892056457600345892558358300311742523658865663588786865258812914240174655992363095805581552751838287877224897240487432128862898082568083312687641466127435091517166813054324364383868695092757468520752444669952464346502669274744826894948068650251442059018232878191415382452000731060153667526535334816037245980623682044462607315620425637194798288040484964334409265149701823709898498016381727588764735541399728785084406031299990701295295826955578118306151124926154583363244194629615987359840977894111926082143862862622707787262545641974993084394152118401044993541115005059222420046004375972820992295365314569924802553162024249669418527321981672564507794485759818609621844571915827850788463560171067535105113366670498411151796486272389297131588216865719222370448239394761002838691420037884585519541930345525374764675129386013296452317655823623555937791891833912806715361400347472559352190799584485683714932231944247775625180349492212084561147487164073713115090423585396885135304168435658481559653615708175410913075822677400275568510642427771323521646424806879474781558738551963772455469296038796304230077012810939513775411317982702692176998390675032973332640670494761196240451443644137784806390347247784808999470673932909376089750315559393270685712670122633258666011534231219997304883854217749281065174803995895772516353311159869342793733353977248853791376721937677403061013603219025250953764934753771407236859927406051969870766289251064738776260224053299819967691416933037656599220607960331644254175227306695393971629521605635512674254274618813079103278757915411715716279538742075118093370358811110620082531990891610087948118322589621631691990424569693956175553662713444533520919725504433912629341982464484970001631275324855636121888794191573379558139057066238252193988282664979886899467355238690149424787701490443531769771381829916452253411812372881835225574323128533628554279654632650982645598142094461505357095894219520963523255746582442263387733189044222861413914270602647561463227125355257896841320601669874423001829519467738776562696072462666277145736742396502132555563570854781998706507063080755269504433766724009576857343031201628731595071685398335139671974248447216674111076758316631860933467660556278568572644909303275318495192136523061943795497372265395149896817439060363610667296562021911672050796818531617895329423473988889578008443985166546503380315416121360483571232097784950562054789645085722915809436870873615133955750329771830193430858693046897609043609679072413697434629008465361529556960771873213808374480064856264913899382481918856928731869213630031969040387342838707314178317019094633327794282887081029596293623205866877622610304814232957817313867493083960992600748752813345486929635936739024836609705870350968438536957151621692399171872386336540769422120376092750428635344547281541699911184830042712033033687257102109451969736484234321148743854438286684738953317994007623489120252286776982458639627575937486670794862147496100011318945616879029139857220677744561883004104459696024733161834203683777789285625431993888633065191083966753273080505516478363476204747070175600862608688810687096653489755021664259576497274210480224899856537558391034182127589071782776521258891050119520939191565241390015544486063001208187080858838973007929304410251028042841601919474042789967273867021549364033605429323285139257258010663196601650040100548896259044145204439723675922588585006979022007029173873708107371369555000237017414994526096197195279648094841091299481657741084309299576221436158266405459693662230497233292396777422618451905872886665771483360411504829485881138214296861757271757244252826663423585513501425464494024711054851457015242097774851604245491164902664111689687341793979385455027098170734317835952214452416022248655071914414830956041701594444124056134639432498229017100379466103443381863521490490681649996428983579041976446709199465350347911247661277132854265226589867394510118759031869847044330199483003579803465010037150073463731169631011619029792800976732052251253978248416701388839535060007776129634680524719886020041442887588213310246286717519262753996615091168257996874954600651002830875523597498096046216054620323172824672198083028709791396405700784417350049702080879696518140286652725628319098567541041021201657901601723487808733143489730087272214457094044157923011024562237173761679276574235671857741948371829921077750182870614057732159314198809050764445868756825516684617937873345381585888861066512637510454537051420458785849666006440884070967683878111650679068570160360595006304671468670880047874573700856368957160545887992810862635473983032510540394692417681216987113001167215273049782968254326779606851380942051503751698676914315743302074895236757717225173048880874905982579007351871558401673291702076302458403655760014465886996965578941750243331206023296489109585381097858187734451381679871956445281044805191226752500015872701400802291858226853304877140479829102395746858617860524720984325517200157015105320967744447370544191529486342908949963015280819257486252602420034514636187530197744920936393038474677685788463702195912740207826144383238425885631507735909004278836269911400300677008902841610853929742967429398587038694443257661343931907547453825894115927494926277383518270374387589346260386262051908251567582681702397778391471114653225402002087704159299494340007832841006105142540565417591289878431553392822570831917697508787659736870981687943030526608748014754032786965722844226649435534801849771576903104711751464530651863761193848950872156792874908614839989515617914079741261900992581825879782733692693615556800778246150343199946235308194294097102154907314832249413704477545316617415874089275366080794110786490064488732229205434408037492193964794139446051992326387593668573978936092288664359057323063250595697363723063529416535253019860565255403388349654655739773111566301342880888633557996608929008886120790664539683225443287472435248643966855426382811470805712440679854247218995137913616827180342261002734302515335343835556700272307966009662446834802089748225536396126276089984693376309675498637300171532102795840267701406228876379444617607130128190817098758972980785419927628861187398357271272926751739990829651357254176117724324506501577153085180708996564297542143926598323395794239047584972009838753833659054351329539514892085574591074441949785497530254418543891761718629033694577137783163466263902802134514744689042546091433316125376253459154173216889675616176893142011636296817373001090348341872401449147895013552984670302362645398413084978037081638711391114040319612436342945370539153246627617992300502571616642378393114202339391599951103258403229941458291160858507376650467284138994306241690510618322456685957607642577013492378439809388227239756823488628953661963936695200693191754970863326092170488407326306399805447142011620559231161925508034827575620772454172106211921507057293517094472176731884692612021033432201700769383366084379835088310687994355611343020079818635647871238101094056258954565828005110117554476444016187630214364005086697597310329477786503170389313013941024318582103997830047137612403415026105432250588036591857764496646703196633674265680366106503150020187937528829687151627887999089748255143451439641280597840509426192696698931611597535422053178069816721408235665433167581274116265289034506737037906490528281863050502853146592777063569523203471680438892868813740600545911375308370092576781919040027640401647997333372364423248134189611470728995124954774621015743314383820657027708394627493627114846608338763538391631499358468315362398968272375093330443398532293038057491799510029133754178457482949474308251932129258056150095567629845655213368984320601563662092250678712010052364917035092740049370094430675129744407053996048628558857542125780313113204894804930913676250505999220296643756212099281990658949342604192046986023591499035585776314654654710781936082313018895192165831105086993279655042628021008350206324284764643071292357134401453502453719624651452334571636284975161029895576647466562701899640128307458053791442784745197113049325412101417621487140099076906518947807018592179277459519467217560982675453091764601275917616445805197210953865417532886692127144628346031310728666730263005997563780083684793290805633823497221897540673507489478504158308409901525077285529072650239932317089778896866031086386020162747747569690903815365681427837792925942038634125314173100542504006550128955080839050396023942078574283106719803221836869016425872293748580218025695389696931054276255135612500383569541019620196002619719824459907496803066916749474997219826389747745069191888574847145170666707659102550726633518769631569171606613537948337842191266424936461260169887794859534899773416227787059736733958167147797915024151420443991753818864445993545865612329539417785478601150148778882253569158457794751818932650389698003598149300381006055708016383367935822411457311572042002372503904204856709050568095797490576310251420005922428921860361410539812789001671590316824628430241504650290794966732757509168030430546511470365412616835605231296128328746123875684971214911716272531690597568646050734853622343938016061945226071159098529628453771700641573542636650136411162987899935766411414464016239500580737103934392952061432357775023840309218782338166064628331174257858922740782794295261739618257898833023874184878026682832006726326334709679588196096941560478308540859549750907489375084081842157601064495549283155717721733740801625012728645508098111969598779782058139164567033990187363784071680725312843760937943279154998346851957686765882705264304886238484852233158970443037767506479344782041459425925055240453995446790205812458197567128281702425044938289214298693715159339640354747428163896115857664251449640409358450239980163422689364804350671812718611835785764960159727967995251267179912061644124660600573237636134864002196162978399368120669283499923842343330732636254629391881497820744223113591603277071018919589737572806989642104252707369042729603850231520294353948940817647256006827024078168446020171450322718228712146056285767776711641116541186229347022896599858772122591277860146414297975681728730651689332945796737223012713239792670869642152843114152581237312022378225936433460961626566161564931025800724599020730396663444439685520638595485256656978973907872664703351560412026823069194138137745583834026080680793607979260349523541255495298929732250905757180323014052211083402102431721485128010490339912222287192498699090942108363719844887989951995143109274148999316921523866271566036518184019760575042989472665402657631516852059863061707972110993830641692168453564969483843386247294770643698544836199687240253270257924239636801184868200169134475033362898720373357394017852602025090026220104666667429009131425402323807796021231883771706794912669236276960422361023928536206245148831087575365785103707564136626059201852004341282210851135173865980532422960089414755575497518821391314429068587998904517055832464629181315931440310906959280140974414349457497969957029814808442038402274161169673274017316084275240389210566518395314021914164712347293566851971714630698093554526340367227445655327814697073225710437609755965606819267382493601790880115859520632841660573558399369476825819432311867523426575718033280257954060630519269128499553451876142507714326176372882697668020611758720142094496320665437090840660683350516054328620563102628409665440862916753526747823557759962136269455353471260581386482029147475617391359028570975845340987976320402135316549053952557982971298750853292035135584196160417148231124498522080404419976013714355469000095292909264887433758208149260250489212975722341862407377545304764271283748560476212869346708156597560448621989612199730696463122310689068422499653515567844845183768794137806357287954317209210187413399336779263459217086546393975077709339429467048768051105501704227245349081680222365044218683172643691067190399394934326796815138108691846130179471635048969213323427155612167827704590136421998564962988041207870769845104414331168958217751896538631198731839461535421807150596051065218050208892310769341539560485660931903691469312290905393632517706855957323777296649986196792996387256619817474552642240106252515464115134836061306062919525857715223319296156013602505270886629305330563850310158454515756560444711418121355017584280120170684566294382474847272834495484827251729458261701145342221402254186607207525215602419572438585870278800435327041397217591701933317841980703695648273974456389931480987484311951809536496978558581375922296754766909446399868538467852072197568713997392405137289911079108516055639312055966835072987175238357222094568358309525376084406459645392685253400436455720370853274156514713781083824109792332729932523383618090289082233045444087859420032272729958928773522529287530910012851025563726908464184667281362879078403160547826598395252954227258723476782515996366437634574324839091560464562307473293315503401573841528279669105297230716831830304849935299691565303708283946728155518696123454981497433721804820443230804146456132693666174980678870819899315015148948270444366243483595652534095093856250439462446188605950731863964541938885268850604203168740017613034282822821853477120564448713035262202371755814465373007563426338971516021911650629273583206086308233103433959441021224126729932689907499326311923345106099692577441919041473694653212966333302521232708194144432709138520077004421533969073772483631640645834850691111417141182567167702389723676424362332380261221451383690510452416144030787472028347934005931254872080313635734340189738909459303472873000653501865616113936232033736383470573127294150668148998748777305925997262118671348797016485109209703467883697958105226726012928052779233554622309406526584239679729454847697336350803237815860773227615042292226742071423821596270155392845077946929858542494575514394737264639417808818850976926738189409736818018246903254422229269143374044536234388343893526141466937691706252004925322024789436751615158834279644163194632786691174235390673028455723527495694234173938498538134563590217821992722897820105567714510227917289218982714548602679746373860289141338988389737656577620929210709834821663106446874575425957252113239538576185558902293188975158444555902268515908379364861032997457106366361043136361668783753550897438310191799941501291786377238053058384371740750933528547899715157321703146954291767977616687349961890713123419127765485306641856636669796348857046966953622481958106143779429032627391220487620952426517643119978345185685985586667542748399906290786969743867713764226072937094838820041855139665301784770007982897857808775315731279782760459313918991765598904115253126680277934834067926510884300392201219598869507415394067289129227140508021607731487392410903038071577581898277362293117978377189352957962765007054469961455943499887203457737794913675139670014897284337290887365908403863427068394485308346572939425042214692561006500944736377927351455477177554738884786373254993207054705826146828560127630489631351452921838072760009682548659741272742847362529595120032244343950284108652728939540567606124735353247944532936158033770686282235784618426781797127388348981158943325169510930015940689940031155200758582634982617656317149860354727609416363753310150519951264058305705786553463684087083386651788099664907905535566568530928194959789753367367798329740713742450575091988505927288404308185649727113251375967251516443122317408011857591873416210201849185859517644741890165518687641397876849607087380662280975187698889037046402721327182599718309597529268377582361421895761886083631734526035653675737480622897020247450161629668310712862805306542702067014558016840481034749957205077486949173863641057891807950742837708679590172177033572700631484968912618829963572450370058187519380342679926750331444234808527144081877329653077973732037732396851864968616604752182860591865339867343813982411177101154386112862045487783376377794225621676583906886510891219497837629634343038328949561596416266683004076971098575287976247084268215584649798112796493368135407750584448821786950499744472395229342938294620212845746671009407651875828545385364716346529469226422095029398659513137952507614281981218769263555101624370608400967083472215929088437157934129040597051035369076210403058525739462165306702841246867882552161198960059444332842782247824576748489440866048566609423074955743058191512105579746600579324160173303592427551304608027576345583453377073682076572528762989521665249585249719352996926253881029752244256372020422355652238461612573504361905437807135047766376973761644564745833097007846139147438899840439016902024905673932433615077540176822716598290818316362581121432542770153774072828525783156998317504452642355073517765117886611920529904667432715828346625970645382387763480275659761737567856132460437061607690024771233508567320573754134170443781293426610798149172386858802979313800215872032190567706520609891310562134220458357785755099632080410211659075807164708857068981008006503837710194633688436333946298110075130193911856937295614257848186384862508282484731096195877766267741140044076013382825601617522371905925354029251810922168566738723532315820640377381026531527708443310628353579690432772914486967553736762133583880485412428523143111377474971454997025671036442768179274204594755661774245670950695868729067155816217055146601434957719715476901875188030786183773217486686987295991040208069597470464806134740178705745593108329259531212892815699642722667498541544807605097587024534211790879723014283839896841961880097221417719023790946752850456560320105107016871916797855091613493616084142515200143669524741444008410524559333993101523491969221076353042948851280994048053754014293150238776353528425153654663008208868351821932694880557918755332885040468138985646785105064931469614255052926921099080087410760959488007093351204619089843645869829524971575249788694366167988602885518415720708341879181938616297349713364786898645130080550334095150402607568711389041544122064019720476385079446546190733523891038153202841550310558576849829305261725085372962024165422134726242753708459717642769645154379275719997536885606405352129866565534501693473129424496597931799225014591817322792395834315324786036694494273227077646538092945775107922096030087067669333597051212506655925011361673145184017101858603580444807082428716416396901791049989085854564628505465493617328495271354654313379532641784363818536009800037083173664871275845527819858688586458454918366354574801454311822253082589051978644967566870184971244479753224829489137615595855075332786365560184993270775604886284811066833481671915143669719315453827151756200027126352108329893276339099404584625214698061520456364032955432475498883807568581206449492255077910135509177716985412149787209812027620520756462185692600804632076068397981437055941186012870078484501288403060248031806435847973739255983516695784936964877431110545001664410237574105500477586410616503578050213689102269610567745291961526157900097238826020948236355719065488492369051732274406343199205624362458514624263845666791910049631084240821364028238697746292973464858919861500206480974580468503665862973841793041410181643718459609001657775988731225450631352879999432606969611984105583009139120708046191527073165297201294742835606337823862501239368822089096070681296091297277081645343927457554405306773368963761084757374312001113737915643197387736467779631101636991414304123335113443745612068057435195877738801124258923485152686213051409366761169789800288281652753731969319070520802119859267527681857270844880721535338239881478777385537806132661109299536237537729009412430151101240483084563011160928824051690127844056422065416797162591461127565626679192534131685551440082024671544729103905896838204081425412077834381907522897691858823198839890458041900401721341149934430806918882119052111355048560290832408426504605761590332927602301768033449843223124701695528271906898054370486801803771018943476818825952842540119011843435622716680126887212334937791432528838879080083242889149300736138407469403314853455696087498363385400403041490253336987655334167072816489914050936860171698182407015464951188797334751909941864026617665936415028247397476226458383294697587945008553822303209055590140154696170916337465141479249628079670096089919517397876509299859279062666573170633583553322263698335285540470512216611322054819561475335769799702861654778718189319567892707893781770564169471880753970581382594032925617449762423416033234777504702729778952825388267686765429639688939078282593246838908507652363227924976082834507661412304706081078145500286222955480503324307807497237104527661914728835074525424839072674600051046767196145231253468474318417333617705497930275100680896591111996986798450704845790528972965059562763023507438896634991084750313906731896602986704606364458274098130934157545058418692623567275704256088949749282241682944465986739398291215223793943719031281668724940047469366106551373046392079839582982721706158847064917096309998335334411865234531148404958638822452666670050293836110483629721636517368631677798066009878235887264796722692274176905777415206717627446878295218302313797763404923100043340615469926128515748025541680354080002148524532689550188817966060903812572666015616601714886485735612569685161177881832459665360204038383963958705085007355285413351487113139597437816379141518516579779325241612266700637663700050458132517410219561468059304226998978338614576681667196068202336354997035312715725156557369755108780249487574577980621292794994902065572261873773266325053682878668468395377306759841096612008956304577131027185980988775143716986226074501636930833739466508721546282544308627437759532953942145525734097444783327487480344061780576806456011927790940140044853141503429920580481595616911535466145380862922294920257876470143656064940646677501605180079632065272772848903532206044343971779060086313606423271656721936959166178106717734271088229912331880572620607559106046082073711038266965024893234680594095539974486784542195660183397966001626760531612311888128431260477687980872616118813510836772652173811451274928759182906369384498683477009944858625487866064882755310742045081109376896480723376199917628261408082681246334864826735078183519739642301598788487109634546898434847268251415055731273654312352005451770463591485564594700375769192442448342775521329407027278456550220293842944737705556714470192467773562012353077138553313481171172552712626565067849634728775542613907008786905659248095680561728214843577580058424272886455844112435216421577166087243197049915963280216293364320785387057190935902654354756545745961141558504686974906664452203187628580835990947457777088121091765203651347616295995706011079002131034928850734207094050562753385129102785797976336387039976238299382152176967888264302154688132643680586569937305416657756613318301683916545084663481075199273145267606301045423978958894845005111020937313351476497673564138988824734779070047053210271192012606318771205120886948843970065909413746214170573653123627910905750745846617745097562119802351701157957965524388886575507779094837971769534354683869678928563599128329065411263493192793631950839766806493532393694202410547863392665118619698827803417479572344528089885288635693482685548532757795698104576282344410657354094510503018069959865641023761826296365683775613157952375839364217561338411477062130771037035222000834869732876738667264762884688938421932603623292486115995683874754315739506476527858616776889492570749638979145280760604485474370190633089753246812652831791597295713165235385782264557499116021933899091621702126814971082062174898587806171694104456662259547322896418633693499429560090679578010572141158900576169433986188676567989960740327126204127522296508916705846463057373562215075482053768112734776364734961557171204261882444621366117738715690312616132544503027595989667887202941810311126790266893319112911958433390625164061215722574551926949353806311118294873468036619461481764535861783738569347251886386160559882476835220632369634026123942990122360121990902590715664804727851849676545543748440280008281398186766205457437118272242244640684322537988902315057409940670352907997185165772495801270931099719648406571814531785260908266822863882127102699126692325903880557987595722140186367370218607969086908238524520930203404043233777097126626142888318546791071346700201975074973391699231167667527316060347166478802678748087615489913110047549225226549612769574426143294662383391391513659101241362087859715592469805468200534178570655022731415160852897592401600009225514677715294240394558663579156339565166662967939932077062636082780208520983933228042877511276915210405241844706760881718719726240284172024723948598255886654839193224026192889823867777188840729195777083425028803099778628386393668150170178241954653342103042411532267596867114797885466160031723115084735848688956807484598656311711924467291468403312764442620395915402810619465633728546180125500518835023528334569355972086778322453977923136511726606386801463558073584732973900330612325670796226325059740646503431781431559196170816830528682518091043358224606853439789798767105368634075195129492854030272826563110494195748525294170963321793602181359591885871763136910058455551966777873565138140382753422699977608580128511125200749315113546118458280119845444955580685528090857274751621990601602329631113599209996653897623330316742701912885418285429826798487827211197991414408212174172203460364601662440054716564019954641814055134933121357426958840360474888308144931418824371099330854604366453900801857984460975872588940637409857379224558773692359338148627534183946299303459555370424301593710092383509712311115292576966880550512348019941940803083934464138002481017658767008360722180094615367997856115453158288641256590240959487276613903202385988407851812145639267554981505138611342900415700443635877894702512887280360972328467525962006748743339825331086355856977901793612468242074165567994774775038973275356765832313871442139438885756449676809230874047762979940731422572392423414886900678026161429942923531360414227373888086507919707564707620827188698518926053434099745406717543930905330467335024201715862672731697457810946303036188068807431537115768285397127229427227093682177591363282319042676006854977775113848338553857981627495921479683077112759034520115834353867220819455358255757940448691106824335982128878825810001704020010718980193836986427735791135289656758548704478686673420204690642158045139836214247530145206165579695444611082386940324328152741519842499023532080567923505411767997022033416473681215460298926380688073485347167034246433898000371248993728694377677862766020522347680239219865607320309447176412849768723802797463104788638083824528764542548781015713214790400023851490715086033787068190781297322866098411310750495765694715377304371192347767934654414574200186026423420200596910268051773787259266878752083960046991439247167695617503245105668860517300531656243617851312685644282305336525334767086939636001499767053936679673773007917279232296654384519214691881708825273934016695065461977141658779452550841771458100118286893824298467900966927321928976721876920865571996875849693388775392294905827244208194236231932404009868154189970215655909193368267175516069033050879596057762803788646502078797131967729794022557755055393647993348000683446476957464604093469863381807671271520384132274482893407611363268601685259876154637960745269662268645566072423211036927301664819105078975908757068253368524976102092336700799593614340145410868806367893858480375410866907724305439425326808273718611271777364796936636967228059428429681182118506959390658867812380611439523914689146767894526471321336644588366642944376981330969893928496993864272420606542665147344530590693662456134020035458558629588274630525639634229397879212702465481332322381082169321995285668378554146885381119250594656027833678251789328324375409068183934008480961335474656838657379226793101650746244906842714244420106471742951652351661111167667153377134475054320261793964988834606398978743297164181305229892542659608615625443548209451070822123898846692178359822404925212080378475049316018414581476082319366508969918894461964252408905285298836829376643400462235761638326802197433944180755151634841380661849675734648217756201882212598260734554374321883630933348941453975440380173379120010428946966481764202912205636152981617601589006603362483175235531693814432718668593150497616993172393475907670356092693212643092559429254358166525101568781116872683064612456633631990337953692268046639379784478139005201647068562188830012181515997677160982342570041804516965697512407856342298732359392838920873889011514192754527562771135043487269858464155857764477468814258626765918282467029800085573140072952507395011891499689140611356731583461338421119789616524699252821234110202189943599828393482379634491939249819471687003221490815296197325636251091477586431983327372688287311926202950882331628954997742518514166692293995386161846294332641880247867994111393233937550441373708639742524255136011775684628599662346427759913286540041029895384344895795097694434082306259784632684356365166881099811888161045205622852777584494710733672672251773010403348889187010155677347257951156550990791386403827222607223476333534488846699949365599710722147634823658557565956513418985098168339149585994173023421122087335340061898942804492591375571261287957687911448528580755611896247054801811164894544589352287216425544324602742530881037631025129480779748674610056471866995187260685349395032307476788586782998557506614631875368083240325501094687275947380290901374078139901245269743830463312356890128558089958084526954588602104680255347880012378328538727370784526367637576312111102221949702186365206943420831992925558735570326128566950243588167768708265597821414131353516951923166914140801958504963260424487731394952488641146517286939628219062277577646486644609197438594774957095383347966413703957927236506833475156053273141134592086661698336202347223179230135633934326860276721185200980490914511223455328559473549495031002980633490980512103873778972643018714974543495410464591233994640566866142988833620447939844500068093738673216493634612707719008413933587846533008474795165692771277808370460738877151526717223212395430384772958656180641813429525210103097198448568674464840426068182223707803579624951975960843695263373256097235255656267146962152717975936938442247568875108482856853786893371498963502472533457265025799133282782692517364204678874034617989632651798714142787012892766628223769812797441344923621716791136164854676687568699246005650400808137804560263727182999149858995551878046976096189243979033863293873975410013705270959380717208319219937619538246607810339444217216279060975656674730600176528978608018017079972108146305165267491387872055005329125218606219106987783608249083572682363535148132029881155071524738270682012023385452235984920882181995609358006194482745385383299567956424213435075464910211219003604526815022837702388016965213807719200140866200926784571177886600471164912800367874569935204442133150218017303761805556498075290448931330401013474907188317161440410629575736799115721670660132906422836957604260006816761328439708037417018125272118812389929684937728522312822078085985098726059927395075991513389753349815407360830064637559297299598047808677228400491801736078265781799461553071786461555773711272969026314905476022004371479517558384493106708836943011011605595753102826078910214062318026856325738566984631540257414162490835187015755671451986160331428739457500191279083489866432498387826956930211711926666703011998931252534036661217134068864439742172300719709868680262173869670753467324428261249567464285202622956651540912673513703507304647804480922217847483499096778165768049212575956204667534886991313875692330065532733154041881097309710311689171889098501796450282226174868820188321035268079061606640086208277790216540479355931439214984308549262354533304384413685718261720915878065837794574657833456317373473609988988183016203550449420726529987846220394427933224477751959008191149240218723108801610103070329854053114589781221873536586494842860604105319449201850586473932134514313072817918750005133535548728757424105834731405334108173978604467438481592871837275694891307679776989397881979050778558889195361855486895179318732619110512064713496402705027947657384508641786203188580897207183197972456700193693741157945043845947374955379385070563065808517131562884890170888761464871237131300769123419253297195246098868261167484858352131543694286236572036977466518293779200194578677843309486544189458814436902270818395768044885685519727264358222886608424972991230298239091242268855342911957852645090026751335845359196935523605169192636044458905237946696382415327438098188511399307398966969031342235864402206344928960235862753869536136323282771677081855960773942778880308912470200262754576864589119409801748750532269076285305059696934160160707091231289369875572563908779216422655386667109219187224759145178689058838146362308598464534461082543350275549158401070788462776754411083328619257967764496436523007882358326682408008627041121761275362318470166666511573728241507632681498957827865398510577931583949072325945928793704868127123545190502155055793633082134829694796177257690611752683627326270584635054290764476911683458361669581998297936700433590575511312456363465392659033930375415727203855120593556910658211888802649035488570257902705204811736960344127231956187932184794703513792725277534063372107895734992909234968012494526424960139489913721517926292251702978912658288329169519155533973465126896209768276841206149026639280765163775481178502214236135940303895963999556756265483797125625795163402655640893786100273544206211511516402792817381391686355803141400342459472827118939944845646115621268816316119230403441107904768057687597054832653902963009597708321304452781693032529728616447873917666519673317622928078159915512881260481590682535554518279990798545009684897937829290134316703276746415345387725061755105209747447106286470134843998115175790506404940271613896618470291926458485308872458729388090511642429723960187522515888655266717080279456915447868959460998024826298057945252058290726209331599446715741389626704369761828690314343399728181596659783727044918532094022626459453144440751252802382945772739909630261274450105149850130932673756548822114858647156495747229299233548008319597302058073307311357772395852146987367713589681552230607224371718341631733848792776766653123924996338047267659549000779506530324910814407871181097186416535906589328662154718123770551165436712444230546496701730460980758416613333659831685285580683420951677148878228745118200561828010784272168830567339787657735783194432199147047919643549025019543392937760666597000648934256241185687019230538695301720242858882853093727769378767778892563265095324103648321927492866087224269258744464148334417525744759122788369362631166764272633638962373791361934065378388450266626977500252568039721147155197367756266002195924286603867435785661327933766312316693201339765452892154835230285268827757477027427591017234832859759987764124167303106231443769267901108082771953867450975270475724615584936494959525271369533006512313897946948789488777822139098313169841833660909664502128154088935383530777701198503923908555102476474226863382459082021570080401193839971812594198154895427976426836620097178683297899981930624271089515143341403257525797594459845007723692731610556946497938432199064048106813884076496926596227116145301317815863323311337973225096090436650639845095661986953964427881392404161193668671722358662684745843938116245432171441518054419104152920306288713223085194667524060760393885537202167085314566260329388679957484401937489389367962899138553033967089970847591081274879071221190861108888224745604766388765211442483650765294260211269813803578846092862435117063498931032806390401991131435773606156530165012498140461884200647410533530435904096085549593703092467923353772446421050143389233772422002683626546031276626705065777259542292313390689815251317002751190014796775193649475395711580398402920988707283742473419619578520645021192772285107735772231885548340377267752268777754131833509827046540342959749005137467923265514690398588124880806002859265063742485358551680098001104407320724265982309828606409223051925773793752447810657898814369433571923254412260175445484660463074081784875696498311503700954125734000488564494559082617853288467625829210795570912406850068515602877586540625950786164262853105035489948943304195981698059358099409977241758662464743879724941130361307232759055479878237880790725020929055290273921506962888265052676658482510391688326043782080376445007268561911734509523080282642603104009883039033207305998841466507958230191610428090190289222979911156854012795416793460487660903846105507550445407442523004830341350345016609395776456851590064573915220696983505221103058923048401913955194690784824299295359549697530847622115309422552266455624487115931152383235347537254970425530968402526803501390539049645492926209995328318468372418080290576817760889781506837362245860549935068519110035420023901207499933482201904030624111858597324374887246298803691889466256228314587099590673256955395084977704553407735518225907830471153320435125467795528242293920638807771120488568446671995654817069112723065602159000403418317813504718033248977869591833173549341837808235252284085407605329608461991480913471329905159390676536490532799957635247689270254168385788556624287497710278077971080605768251366470128170071919192590810878617443462744093670954793518841568617188858618048659410519572730194889996658141598161558193853670050619835228223440352306507159235922536460167610952077030711007770970096104153513632027258424396447860640499632960476863971430465770197197408916587995887921730624662693760303642738800114786223078827362352457973600436808931663366119848470565721227868591340917240445893045071520261659846589055831919397243381243830025815001850297921089294537797487459308383351008770142696468737896650989632634153615651765161486024165783427615739068956232809358608618154287725064559495146328053242381147893484059380503568107223709605095916670473677000088760733079655371491887097662954206689339248906433537119931829367435635924311854606748283837289356601573003309429148330622327586591279176185138358615612926208325704580555579717967359059022635992040319536874685507731389860311979091305820952244117358737577020329467198469407005365474768872938999675718432030197704621554806517161036227742868026061866491903449665196243255058163996210797524415951000437891728535121575497214448383277313495326114895709057346221663951721979168330090075763876494243487476115044968803619852832965665037779121671546094861358377231903804872815538272695769371385758732529988149373819558937051614611781864576241434207126450109985840250030291267794762438069521088419663120116023508733502970836485843210189666743179365538971398500556505346528695664474207187860061193387660014278577071263977332443842943895425091548422299630057022069308981399014914467430859205823352410665806654832853697882977027087876160813341115407913843859996446420740583583090390030514766065421995827259650893195703578520924534503936498674571922670941129933377524220731331678324778332213361013951618826494515194240628086642423358936517514446111215249687541673605262697395438038637072771520523334506304893693665297857719930918976351646338279293323980617940435683653774929295024818173591390675951026540704813636899008876646299293165321453841214854803893588904345503640054267611828772002969335673612000774480880412344976373218801784395110884482384131219112633778482464638316701947070242377228380402342417436106776756185615344757081224921431178347258327876381637064726751596931983147593145415266407906150200105999743191941338901137701544116293702265966612190883165958413802965963405862932773534323875757255881699217985593767197101152007978487664109450307838788585794273292259071143366556774741570282623789732399507311519500209366102601818448197119878531180620087290398995425247253870445049071273223557363914137081123157684647250839671346031850724852222398884380628202717327365306983949476950086373104948962685131699094107483366992255981802277271878667831627642131336589373766973836817117720143970175317192356925264397365938515459486138627376639218786155515601247382027430921261084969381894258286633702098783626489090779082691389919680686006033786613565373760495167789374553318872489086047633163146896847396216589094105760621001811162496892932319901172114788657882573688063034077553101520553206076538033077024672736596651045875315995994594613745967602115336541416958483819996094729609264705363417138390203087087364981807537498070546637638221689959128960978927981516321430491926633974495575983128002780224534183545397407188757958694893379759223399628386943378005710989314137418547361497367345306663124530371772927797768630976478449146618197054846936106870267978087750456324235221698487261474770988512671626618414143264300720907375115981762612399297674000713746739514981257600040315784169106831671124255391342049328553407640760586521534038705045530428200490166223438026458105689591838449175136781150241076890691865196771577442543936728411241766518814814829814984924367451908079256969215489770137243549442932889622588859021060931792288338940500699543421911407188920662864122908445809356653350392779800524726139245013069333242298589671563815081411972334896992203537448321512014538385489113201757993857566571701720499780804985663723157389548465437028939431176134409165638369897041570210476512299757714836143489930821597892218472455197536866260339307741521209817361718732975548175961777698896326575830128735431630318766783455443491073634999066146843593576757665318001739376011709930012997300351581783919046343956298113648150181135577857739520271370698665517611329110011045814199796500823962559232988572834189302551470643459802691741596338779046287966929917710478688711007858152997303709435737817388628566656158453653186935610842870777865518136731517226745516265663433287172931389683749893456798422898273259754128435295676249149814697229342965193007146583684491782364559927954233629478978839019942052986313488806402696634827717362826375767048710883324221020742068925469848639683085835193102235358928920228498606153166385418763802179445373425795394175079375343072527093272057111019272883255174925202871051899985846473315088718686134498088469199849371521944683342428503039083529407684796229593288679062593138326906977983720883764010455701509295953619104147105822382402272645683342514236342953242276956525662809374876978662728399672386498028344058684143499265738460948162597003017381419437876388354820674782400264921016307842625301589027521905799586000054121587968048348018634898051695976148309639275347844002162652782235439395744087941464423583500659808043953608630426739716269717061675599374244476406505425979420786372947290886111239611749480387119554668642290102818201894291792192607172928699102725656075751462571427277117309397555945607318521799497481459631597320777988520366270994436406826677867576580604008718700668658115269094722355183975954476926971198053698952872100869188302995824604573786392285074645459889979466516260284378624058187452083167864256069362218746038653453377404862478473739552313980564724155304507030583988326306647175425082158337588613313169533039918956312549989689265818005108408716149573280966125003463498938206783786738104782409064160488917964184190510634933192136036598539178277914564988139705236998779381816043892380634130979829084317017293198359319959575603300516595280781699772713713867161995091401040284823549465932304463089495532354406785479826266783577009076024223142244488643424592889932518310986369518494481187883873706298278947617616707076592569354808240378351206480845153728057575023686704293327044220419651128353287664737030679259978504617432637823662561379037295635061767871624098558818017440899300242649674146803530671594602620386060784149365785038811723703619476203987975902651318575056238618068160751220270304499695720599015766938939337160801154597105693162791426665851898383655465011381337005765101735970335869504499480436711715563916797111001744961361608767925104107935566687720248365340344037405926775355563179133613215496448097589344076760322078616698179430828968056841165149022885648550636858100341792414348705981367985633032360255110773115126685918714586177382805637159523216165694282661994021918659092691615831469771599068469492753814557982262940789754213843494035826088539398989576480438826050799588864926054058636231470160162443111404130680263149201878846560182084422943865420423557665532635287288658663765307408067071175147359894936151102971999535935982997562424055647335413055322696623388288746364521682612087336371132239849401744034973665997514284628693876716026602166510539330823026291788652930843896539770087324912530946252090133266094647847577553327867940513681647579777005918325557563860563855818850281340253095785213006123940624656383284323364155649805573194316762885578374965781764275911599907357428463905534258796706141873696156033077138803292785127854143872818495600456222224539978966512620015976077866189766483780324346109171959567823735773801589572897667564375780805315206017990546584835877652186886980530918238382806288627416989995711887591791477542616134501616342891013269328901347585481258522385275538436761326731493807430786415293270755656013600852931358555650487765060120496981417827165809792168132591844754271356526432195319028199831054213076369426502937248609825774643792198930865247737744481822110315288295011467839511055125213289778025572449415457707676640335679162544608693185876352378766901045339516974895298041290863560306352224114713562110372729494204222126357843429859362445400660851664054347383555314714772059732935803876500614086682203844328063695174878567385544336503456066526502688678814778767648138849664865512164687520680302848481461487473697300723397299383988127118078844719474571030299239521094632068887100753429321996304173123204439384872645315406249416022770825908256537213462467821966981333784067056111031939379388349266020175800486148356387574636796286470586406825492462804053413028408254003273454932100837482285551747088966546369077245974803563683577447730097768533821968696775528140613089317424321558046982929217206666397832399806642155604264507944958576150922152996801379898817928337104219701905741623416241988880601486400084541411237102433792870401246536996478531343265971415495907443220971055346211642672982607581631749643963562042319382833958168404424218062964915892317559850215487016134250895577250610994726110653072413147891988117570823299979394199834880087534055863422400282425885502942655290567030597544593392222537433375936741013016922345585513297675175562065062541301767158119858915466530102106960418347739492311306876855488011261910308913131256296393149955935376691869400943661314913210829368012735029400830783533229585977570907982401163394607506629589532013752927576378297727883571627663247245742157088956838288766765937601777932938583047148431041205318546141394624868947356333916941195763525318095962653097796710774583597999570916868625761201212699815935231994543947698654533587634507788263187392686638904357667826964710928390625141110115225859410596893004405084692029065510771669342674158904608531731192968721369238007434952460634485490708969585691864620853288771113697287118651926606084734516911694974354250193094363945704496033052759678590544840649891113713150523999116551150417150295804214598588475184954698711918274455521860558288358359997710464626662861368389421971802713365269153283577675250050841116938730700263893385986040772750551092548022836209554894367843475363465002827410583975154993346983691536357510874715067242929728148820368356909376187597263889193821314298516825527624598655585921647287755648219411662088919991269034756721319130406574021554205218001451415938320732697845555464577484576667185307658282485162134094231460449613806307267314023857784097241397532487422432340732140586800909136764348918048275256588181373876433728486934064150338315346588127026208183592817282888540828071760363635366507108400032531177107467821767957451088910033096570826793543310668082307620055500762018774944432138802774662184851456917237647321297782231875004418423058600918802887907205965395635160429864024049732245704527636213183928906672285153207529804487885346822636534571768821348627932130095196188303071272913982819350235733072570363246045207722397987466338584393043123258192088125719159602379306892325123265361735622314107009443284235818214106485456555865735423050482647260948029441436932680738417976988878428639478157847795372506191377021945207859691872588350741525279853033968183639876813168122021714048382667603447254009208457677084153608901209321515914761665355239993972535990876715006306132514492914128474926524257853016528627018525766379828460074685748335726361364864501702577631179698948011508815322758721596307389070310063209479835253147670902533197233343701636409206505653158100933526940980853274958661699537340394939794833518812877696167422075276311067637068559080812721229349650597543389746470298056773095618313208479315424493396873763663744270519920180868237179020534505581952599016143597646204978828444714588580693149034215041116901536081656536034171445003642146629658484576354995428838429297879675483678597601154270325106145589870246647159370612932640832676102228368449554574259431507926283663506541571748680397322474065232308926245714962808067997597697626187408977893174200643482705203475746293349026997025845770742469165513052524395421794697449370142852000139061598625075278555891666887096159119943986884292665538271583389920134821175164051044294802027053298680441567449640065810516694852101634108318022845694176350889389132421642210371575280648927749507367443545695779260132469883232316452991503488701433910740272495050919863144451883411544568848676303813401430423760884997086768854301449303990226384920514620674343011660300316040629426923243804086937938984087409481249197309577172243011425462038199583735740186366040882380887938090863321530617638723413083777688774023302612998595075387314397011047735417665025880897967581601707298790989464876368628105754902036784131042692237452442089972778997844738717491622000032868607048701854082286293813562392551688487155256934628226604200126669210855514724182133664196087490896221723295809144267173155513095285865658936077239539569651539444741334149172887714351072959362137375164346335998427106115770269868386024569925553376537609200669965397316436855303749889154644548309286679539638483099561498914294334188471848880250431556788566514826666501073038317796414429426654663155663223770012158675865545239286661912086674384088822185215559406651998183469846633637719799103933573570448940190812296715236401674815257995055567294454575591176407617711866150675970778080866856031142476234093325759290363135853290307178660852022809911757713109946763240401694805313427336037784624027084117978880703864569457832996529298394572515151751352200335678182871270481051968580921993897930174874100530771182692914422113015585685572406748678987176399431637494502941099785965944385949926683276752836114390666087976607528804929002303124152932608300852115110842141585203136584442212481757264988284115741377680990022744221011251814102069502486728620925639867966130208080995821483709086768695201935090533863664451506300104197944083511949737172585783590412294623659177510868291853106530332415968838547965050177007887196344775927042243404047348339938653803774124787966947315601617418531239528324957211393679568608292681651651776685470521190042688898794695633578261628435573453203592724719075108082117565895503785932917514725204250895788163729714612660356107668906899234195779418836912694348016941536261878945241173780263161107503416490257001619941084541878231547528640703223509853667546077081798605816366103165342704191355096389797394991492079659166603639161078696490883518106002925142615620002332586424170248074441301793774045533500465657228965078316522889498449597392293360963134749281017351990744024045955905293275371098140460206110621127966366775667993184380265984080191343319476335106849262614913631022766820970660721399493815493638518852060524484637079058510009972838376250988135111940559220381730898761448959487877391804931217163534724924402058024881084594602471567525814640452960784529057639492911450489618503912454122640202671669461643658517535113335820869279753437797650511086847775695045331352820721421765206730254884186932842353435875741960235561567373590147806326864720954146777604359709973603532012141073396258483659018688680028816633903114752137813269504741121639629782076962549714227314958722142607937930634862906661487010169717478451482408195451472755181762539837582362934186419683038849109204502145528029755932854241488782467863857245473231596641206821884563786533883362036835481931991814339228035806331962947656487026060811889506825945799649622394110225246921498113376843899147594470721298916297379862946454505128997080493875282476052888833397753341038702961523000070681469980921263132437296334665729492589116649290868592704927699798255091356498387806671226049857281957959383778308633679568616063231045718405342339320861495254960732332736634056825001104972732916082765862965440457528050068118038794214745704066658418394744368804752947880545916369890329954900087815976871477685853488030094978163310376317165878517787948153304037708662808936259465790670990220942073264511797665222702185139362262910617690277682940653347553882981669829292201961575574190678101810720054337259504387107595819431121746259535141950655583381098468824392895406113972533069077932194401529378010801331113832302253298083803137313027480377071292128511100670631837010844996929500110663940710691530130062997276622177031326835081244677352561804121303479190453147653126778134847169737720465508625016927318720586438320569726800930744891971590261754499932467132675067515922188372591974074471447940775126390698694793675302159744047802913533943836377475186339093585156148071963970422123747632283463986205096554685868045522512220057750528312591410073960597618921167011653556792337137438009393594677872614209605117317297025435124766967995286336205474575046139082173715557932664894343836316868057652155076767402527026889655148916923832528365941197126531740433040610094234482391802952706602827759503837217226759996574067464143448085226986068288653687291353768055844307400480356908872584088802107566870862852188758673623633045169572546125828348061914454275000711913771114698558806777383892294340355439746407848984779506990213987551620574400791976459086335720909062778105346900321668358783158038219939085106207426660834702031650176279129494979679108136075524557604320429399473318396875614051114119333406031320889350126224597015736689445078765332824443699078564030739073256315657532172751816185828996673497977146364877833574941564423639229939962287162902447762196779952911865215628259056305256258330284338500116058711584677717075831543908467443213396037551063997534672806807185674161570188453186320725969059537359794878362522878977907895617672486479670909885542421206761869789824779932693904666488286025118068350839846679061893255615682953671724595377146641633620849397367321934989533406904047775113718272857499513259197759289522739224844970439747969617088530059411973994026485515593364871141039276914035445509720203956682501319045818578705928881606099379266023916675190580245918052799517811712834945557063266592441371785879964204954125183252176172747694021939874509468207648097509329157721184765802398651925254772577742709055272308523486757165765473201757840806313435450349486492792054987368257077079317175771931287512804616929279193540925282686562070805438106412757830807398428040025280237978772987313118810987837181800305014548385619362770721612086748567581468837779353114357916183173138584532650157468392242323897374215619196064539576470889675682166943789538716885395909618109723673749796002770476617997801734531864483873808407960046746044996389436213161780073842144525363962172249149411694391052741594331501932351679403721218704721546793359484855130063613648738274334325153765512212890677561071439583492611659336296766077171994361386721035360297053635406674899691306407401579429814754653240081380107827145274490486584337634693341633863913035979225251398599306490119617429937653045657119474426961127739793355808118774774883761854126019138550030981563252275743230170554008828349657195650037474631382728685634169662273815053077987772404105100429023076178486996071781371977718665341981408337251102070509934756234447125103430638666732239509205131765130154168790939946149014448934700596806912550834479839282999548912253084183659817642496516961477556837603364024005592393038548246873187076071143033646326352813403907201491001873821271796441620704116354149543629483693771570037499344486051034786617538748339823291863517850130288730198328910719165557438750096836990649054698385803978872536914305515150147705251003780055412368669175232966338697812781763606285714151545811430681754069571643062378791552909277297283658098616968318220861277582954089329494167980218600034134527071780463058669227654615517484498247545175275105803536901451306455255055326527195055322099186299146504410944484446252458224967830909387144201202231715034917727299494787918955809999260430102234972445007823766605725829363943451193857912660754510939058774768628183201414435942355837852193900532514352784775431543943523159724688532685588784340001818182522205634298359238439253648806955034082638684075731177345316502382159949794888827565939680766932795591296073271852712634116848322197722136216907402003951577957717887551489574897028628748840948873233990762552530117815969440826203142407316461934773228665164714860441745929195748112837258656250318206266606391509181208647057999841595557352668559816998151000056415042228520487364051635260819321454243596365830153030681439780907697882562061649425516914465284392874245657248983020589078375602376073268920449565156097967208427679917464853761030017716106913846790526945306635162674543108858454601190945731565556279428655280206929981870350477164715440384886343074751189863261348625867627841861058486395454453823352143491165793506827282841421340487877772063467457870615247445776597162428071871361625875633433142114669743606345615102795073370301543603360852446945050072789617737608003249004651522835626883296978695328408629902187693531442198840205035721017942492484804168734360831499271149506550001738165664500218089650978311031471739171623272425103535781384380561225910961195368223630684849606928803725224851647339402738591301348516545687342756501784863253180137158012678966701235128350423867406753640426018988670477588822740503020007757729060078826751141180127559105885599978543212111502279286178925155999871544505113460413350505004087203757659109969515295105288424469479260248886687360604326319069878598690500773749007952903815598361260230675351857176576902262952511044476520447612418629951990819083826406452971964704712868447700420890170145716256632996520543474203365019863730345689984239731768538595522112234797232499091149141154635973008006224543712802724226246835164405631009370786319923904088711785416126089851507790052119873396781349692709751003012916883661356044760130904175343485537502241877511880653900852669994091943798880863075712465973125216772563676732402961451398131711808484529423054085050981524670415559552354902251309990117291709515945581972437492309739755876267953807271655527759563598422871800270453964444080204693550054998511999452630308303623615982514059028265592125954893347057693127393568319983158358241344230393181845644703710481517249293582015383067523545766301241368028160388511276967501634291491597461503922581022009295524013270880131819235882515357455961012493170573874702409574565243520416606653004794416763260285340192472091313849910569216751858818872541716781871428752726255026853417564037882948266932771113867063732458597075821923362640589549233536077182012433499502529341838605592873834549019540909255712285667128715992833914191827751514846749569974317051223017505583512787440980255746566216386919436798401460287931597085171655088701897392422665100058288878004876529321073470122757391867442716394696857228918588957200930301261524070658295349579932171414966523802543009192114291208641020968122963593134715718046538022533831103099749791614423453417537653085290757835347518923071998106086315038944913163306675747711820043291075572755107920238938850201670193679386098132159098597138710878349749213217090812435383839247901768555138323515890836549744870963974536886636378498366770529778202887688191284387155474294799969159043523914210252429986818312926269092587149581847900814844457640729539558017103717212404976995225008548862173285801369781977615661106837480161915407792951675587449189580783796992850729565134073805974117143890495233715118968787894405297275509402708281442787452063013028413437694241668502576736365110758436640113960446824919726989436039887763241891383456569534392867209195760784151127277229074863605705710956588874394569515588218593272199757166947408823224210797573190374868992180280014582538232388780648139713786576989781527149207811593140503488358794348851913962221947301661854130359187745015392739140472302120242912275557002448804628356355431982529962758795116650554001113654874128761125538044100747811442239169050480772209154069692607521641112405404547687636028332230847489017360134664991352461654491435397854538043873637664442699386447185271274938263774080226090727461769947637398508470124135615392419671552129414821499151405106500783376403271211750598506766218249842003078071656290656674847344253966290827316664857158776915875956868254382443226244084089120862792067074378822971401819436012818473410825364295818868871254273650194342976520304057731238727691071031277967769359035480129434300024299966355881805041137244572017094995276658692508846185480811989939691484975937406044958158686040929358282285383991764856604757366855854555132187039061847871092625702388523879998128529360933360185039327670666967479703824339502933109684424278181786513181672907009429122544446654102307477924856971165908377433004481428439204522554092164046501986018324343036639296324235711250855836189986327732429460536616734671597509471119847928514774220399815974564378599277210664045121421713979412362350133188758688092099207267983398687139731345369929802520406026366222578819870530330759052283749797289319305591181070194789546534841048880653864613675368813673311136519303881316559128832516965141909112268401721198119249053146903398327010404789223354007541105448442107571172281759472792184736492348511936646733206588459619108804020142253509573632206317767542833579149795113055119475415546610956054097561000779319990047479821807256201329577993160082685655460268696666156846031178038987753258125287532061397054322417414675214788248620304508967808966447963989635666822020309100848515380482482613439407520203779372041686491522786289518576399938176177665867652916275790379844496397428333575335092260384314433010817181409050787708419694812737291325453975262896451786928344125002127431390134737220001464483558052904685330505123841195689807372728818716053931621233736195056009304765588404350241383308733214139716786270473345753962987249321809288421810178221500283359789006015764122341721529598264183713064793188189241993942011387571924296578040915732007106272078546466760242533316382542301794709089528751980004787902645015702918289357164757807702804404899550320615906616603670174353500607471032666808879311913742606159357163937208326132059251588498518850825171551303197352468027460459249733335407034344317308065576798888486858864624775526128566218414047848564486721476517808784665824361450337717237986851027267817320345148696083569833758697378741953481822388946314962765317477679618700703395519795183098509573004194455563436175590423184644824676593254259469585529962447928343033843843218624965562249592639209689893243969451151175670158535282670856116432728025348225241013133951253870160669865850027826556734287750487783595371463063134432630510725584395771429035640522297546508998462666041816904336559167987419180632245435220183964146028014321439641148588101202431115506891704116605096412561769699448653463297171997627230415570508644383574746461142432473369415115721759228394744715267369625120429160027610558913557791378327201193033725017904288873128157473696066470422058173513289257784466916035334147148811096595264584307297123141718245576487841620623542608957606874469677957448896565512608736603731752904923951837003186540423779915984409237077153993155561996477762059064760216111972862483839249735826018985980298839069165012906649303003846327579897774920226610243113732915849409458841537515185364588265321327384075569198503666920727141565534965624442668911180908781029729898232925614296146561007967327729681972200265055449597315164860817700776277952063877874127907766659801953614117610319074425197766424369547145323786507046312824591316936010328241291487052235627173278085213499519579086190807317068951893577014675927626140769284620624492047234551164808642639885954131010959546638405064081170628669690627068562551679637074929300726891145703523003177987521153074045019107011386171760350745131242451809022151188639971806218002888501785894827471089270537379985755157122898512922804076606451155031766133738568421840894590375750147327752100686525252537622067256526441154502874333973905181783156032567117587631242200052196961456692226328639999923476973447726876342441277212786163612018294275460848880723978694833257659528875791184644437243940413337613748644895619529820591282919997977030259001832252053579527164837324077711801363182367241021430303127709095976983721303611994547117941574396268638723943792628693180006926655782210638930408917164894000832532831187297460290495350333799671558164416955894232395826552861580404141605894593292427298079781417917901263384659282332269114806096229081181652019321451261070429069239292133751696876843380731915681620245005691430994170691167850038202574448552481625988441773677640325784754960631580082576118026452888467558930259550998963890333554608713388227908013141001222595544102266154556295679319510369615379755697305766303577204482482530627728632223639366714346348906220690375652583392848701294660818567077672787873927378555425520541508512977181042209459175902583152890027663630556796279712369785379113802872318088197782140663009045115720651073068405435960450065803017883223771617594938157547963267276116841174440529610657584098541657406410232190435884067557183826100318583021816878366324855803180324631809723584199774552751785591553161026385221383934465161216896594737587141203804861095412099594499881211743487605046247442934023914458800437520681731070127790536217267026524827888306012904184664326562484050522262881892639165556349005188834730734466251535114418933802842291363906087594000121419715461595208924641363145793029383631429028679577939282401917757835314559600154189593254250213191652356031601276196640463295435703278087239984014516285550190537278142291430445268868305611540296867496217890025964928778779324531991842103355247951895754012586529388668562435467050705126917773717590390619169994144436534848425668639885434386755411338956932725022997212634080433013504968377760682971155135349214475402436559332781484907811473820066510221246866364520928600617046558710322063314499710795666819925567325795776035675632626555838544765113170744088842545188504971530474681786812739159786044126442926325169669728767064511168226701852185011307587910025845231752420639376622735922171550372506045940540974756757824993525060844038434382983630672104282067322532349577600769461483067271910216259619511758056689105126951144945690345868516791119232694569771854975122124976087619781992953195306154176570745415285069701102463760919306666717789099580164013012943887161973841147995273388602567810628158016064083464045349053728821513095569595554461190743158285236017164556695992335357613669642647837417348920313222377924278749793219337697620506431053107817991888293870833749953544787412564321463685450842999889445196514025720949119710229707710433435398725215405643426619818890314174965180362269348252960502918066584827290171124511049343670856626380178839204267876109671083657097834432931187672300602044628140003795169209132677784116976514328465086184078246960561437014240026404934817312490430821554820929401987386492236578914506825068934636181486927628096184510527790793970657337633785418436319274425551310173273460101984183743551994956455749417578453680740196894232172768055340556081738003996994629872104095412297034343692289096749929163762547625732634715005951735182416637901010669420209711800564700620059059100204369957707637756725481490601596895473063242378803437183462280758391802504729573889105024962715877449766777937596464947698312368225718849016589210661528014031173541017733995093540085711802954785375210775543483549501870967272097804817904974317256818278245063235156797785018491094374293473234673612730038281949139133984370274844852068487387002661535382681294007490976651434009474112188454128120346066280720235823832388079812415945460463209839542157554678786731599128191892238067522429218496801341450277124505875845518978415545669285086064599198800908433848778234414833637629761817112038125299965293405922904262916279978577956075842862776034017068077568101268740840223344121493757441111909039379538607169893622887288937722896631002830997172273490644369084995633785319504867003445404190126525236143713426507612498100456494677503618642024789129251393683839733973411200917502484405744784073505180994207316979963150114864096734419396258254488433430937050876373173288221990496670615491457387205909842855841323728056117536574271268371560900606643029336933914276539055127835369562649964874011498984761946420847583851896554989467361242339359464190781893572368056589108789162143727631304901267948284024797020077498627940952223918562655841969749968614337063741423145237496142128425913369594143746827696419231996564056683903470748156354942642551490771422505308815902459686270120330135085545956484573770653807134653264006792350633818668553189719592997835584256622208405650673375895305440089199261265421435414892393526041769058750976345126930351068284368306506188561201223492571886559946749965658445925459065597578585622462864231776051217644453142168751353679841664736007337434320421467598749296984586425177008660324031096948906421588671090373605244605982594341621543973602327722804278925445177500300205056641191287914750728950533296174301430832427083026664384619913635569127314914184261278616676995983664375560290562028317746837057363999338432854685346918095941428966179080862547993497487170320549705620355781517068109448777031589664280854761492314229341574645993547512583798587552671528990636402373627667824820029197811406900302046537338506742550879427538144592283105595168805862754424708383614912373499513005050273771008528581221936504127228747670174605239017326147731155279308894545676971834320569140477991596854329785954428034079165197627479584087904355667700692250415909070418312458887976188134778394439227270987249955449947349315809632139285554833394813771626009952169160272263853670342707877732595716189058258683839570790288115544661331278020784432414688440217085164742278483850205136176974046102528627539413410006832153402168282890336939447554870138186542933265434320114619963496184689470038333241604946136732359747044253511576801770803867231735284637444774798550061301507145846697768123426129497580522101261431012529602044422693094176169421654107860054257309245803696231776692214718507040226945673540613811072923009599428345764848623648483646745443311940030775379929305438679883061806598400244430117380402075258614006446252970243153733332127814541127297830686905088118305585354261646342679087303590070692171635228418073629051110729260732204343831043300246509317258106052873623941694648533561808501548602501279318007606389377152055592428950952229824308336382603495693189002078360022189735909084059338092734862764710740300500059455769134607561538701822044593357713782807602736844839003921005781507311902500863818663576912251921476583093258437402820831386334337816621963447521248919862816190189560035818561372420527428906560984761444655990766301869221633461630988033774061700805245098033582117487099501743203567568346386373985246761080492507366321535033432053206465035427276308564838752583129083821166291735960178702481768216515507527931269639577274007500127922041361742247283085936174173029876475864874072822567432531816381767010075453641327194032013825516421009152653804305759859876841260445920148194796387908748897746783267621739954604929923480624651171552239961745345128501318273636734721202205954206877467402629441224508539652919397748421148942518392541208664938629511662385784210652863086939560864014498459174088946955576131852857172886077926763825926743556790549123273184861278777037416046708969066241253726260014200242216855298507120497714010454817233472088415735245018361752074050571340423208345344273501940092652720060760082677323243435379110320059328691515195328650415368783754436808428768264872669610869791770102673047383036957792437436827146049223924202666082192078152328711890316136033421944056807531294073332226191050183165068807196396106586794820277933444378188680196786664763026690470312425531607832161488332608909486497132659369538960831370330186536301943522297459417826600890814274948955982173740320823039886366406668093233271418921941265853468153977438155170286926344062100753013401583771961726981622644558883773789875379683013235222772868935162529077887492443698824784687814901942212758161408120937084082886777127119817506579797457071372133391314612634550185991588202966840353831693166733624244341955165815374794473872997946954281303142311463065951108452902054775314311142630320977988740579318053871548483762248470496511227097528975842893243209393349819071508789165066397161408441069412275643354353080624406680702352071476763637870088895084174150674998401624990054657640982430243086305915466493409753498879562969723337084002149232495797927198237772443650319899220678073265163560320100591458814683006962041315051009450361135161118302262440365670577141258666175376667969119570717777575629833976400964591641822424955207124010931146939109734909288450027648030931991313386177715156702333746143144329770251657947406765364503231301074883717321551986385858098078413149319770312682746522626464497098653692868259358677832799819399177510923410082914793812072156749929322604075988724782073864066095858269109964280739205921416645356969001403580330850765345147874852697383257715630595668272750989342492522498462309905342304657055448895577340288286392027807574075337631968230551593053449046786056585869554881963404560402213349615672040685416540500974074817275358938578931806516210229429853654027832804793477504239122920756594564145773686034638455515350843622603687448896844656686935813198077127667092318503230817670946414833987312730068639278923306340531235148112397935509700358274812029789550212865560868054895743023201786733038723211553828552951231509859754298991156082778409858598098677836105639614511948382864244141343404394150606601521301449232940621867158244745707591259240044728746404181362986327008993045531028681768549129976421957072260667237583649225646491746905487372679909162217347831299016021078160510643668697587994551775719461194044936243912627207714589377129034490705915854227071745472614626664669161183198042532879710275635993508849912197726461360935050097227169880083023332313606882315128269309289496753083469973230841883171621481305807210156739762247482959935840254135665011216831387563917244696056433992657676750387223985448008379052870712009254725226475259961398775125724798170706886441408698660096590848762805326065135668472338356525992543462185275758433906773851948876195951674662666048765506447755160305366109100996512066511029433911589180560538689397699354065619365738795822277155304350204861049817973658032846755897094165081611873186402338477133571379880118723044703999493192648308105092596137327031674100602636422664630230218180244442043748673100307419995017664734729882507868750467482872856446719297728165821438472145417812579496547366083466770882157955337502469834682896055346789806199277994980074230630437301456253029197401075576607957390698191582502726547495567088694054313325061150736138781156131290265482101862555785988763206870151797597538472067594844861717977581553614582401964225876246423777884419535760441660026088147425849590499282194934275854148150216948935967008572870786907973868988192417480279975994613868785295032737202404794311892641154878386584981630232925940270131962061713520707420185805303456223863683328830641974507051711215074413865937444896125681114133156114544803525474537634744476599269151303784253165238375014504753173188289540906298983762318909851222326839283159740440836771211583299138333368203240591377567613976258554908012074844491078148971379610178767484360244449678392483560603412193065252894388990629362228031767822809101062314253358058723328228607938890581159032056621658965833380436788069614999712791392302573158831225948833859443426022755260518726499989275637964925947518182428205842115529327565188381401396156648339978652760512892490687546136212642750164878701164979868051500414334203306711595667213903295507937468642671708502482317012611204497057988200289284551719378633354504282603782129077833192766295303782747389505769042880625582387679577019379360064217084960707259237658954703046570939559672601194516081588549305576873862166127538993942580145478489777863887884010309995357642428764141285430125746346021258782622935573157784726076064309640634428365290931442570407826685779011141916053267138246817420643150741308997471059730628101935507822943594197576526142259283309936394066837132412763550881870722388694257841226646615766147840646882059185427702187959453381307108416711951142178955817224744767932475230736104769503613057239472732738410912759078760866372372799524474772691923744497057918371670865015193520537870852699628948940705393501335042073456237467017214975262903510986396312088494185605150376451044537835679443029056961334823323640658092311744595306990444388083996608200087272298335516320993251666152697945093734480534214372797343613480406126894777889542552917365051021806177722160972317382181869740024292817800509984631471111816942635706044324556334145046616124881293812356520135343512222349479684748069160879726525511006792872600555534710560693662952352931365567515184815561196394381375040264412513347754309484419308798139429062589422797541043433048324809438338610148245220714535967179162874425732220108803138534767754314954978130541830203373857755474842169873732467756714088313007215128142081988301806287197169880162453444666540672202272538262309632666663260781577111427474159881805321341509812827541752523929170596656212680672680889961561522263463255761638124297086336045454753247399915160048764224422302110050480425565635919311788153998741139968983080673102314098479414948378869701425654332015759600811230282373835542777560550774417627384718955802059129871068668884980777778595528488910486033446808031634792960508518935962534617448999422820836667489128323362061359697791089492957457721135049879225406243725966984227041747540155569258642457514047178606986360282186375551745255926997326189397089849941020699005084605545391898176337751703959810260478440598199503299815378318541974348448170259557467267899734352304754360640122354357950111916784995825710895470841378784446406930722131834214889872103772818086150079877852741088186972020365010417433188526288496364825065013509231487758603527481838124771550417970262354901638780130497904797482135766697125643463896749431085272950175664112566526866510964708447623165144138356777441689401830496469691032842978123894632747168438934416106018242680765028439258068237449524230189402995744065755046814180043683329686107419013390815390671259591743216493947502679607670137262921765294615753234540371911571222166640309363009756887674963102478045415411785944404133296044417814175248357258206028353664533377238700520678909421574318900053587720890801599560384988517685243473015157827295442462211560533138192963422529003135490310553115425947881377242359958268026875217612734663684222276810685739096913185032399822377190495691144745545722359820792018968939295835809594796661560266565198172879854883019549814092670324915363478763129692634386467526635803333666362290874291982920178663792750908633399559133920274170298811710153255444415306183364192779511172924126196645737296345187358465713135546891025240817817557163886819132414084556607554214849612892051985436026048866871538028316747118806946710840618303339930536556368229687759791934416120595420456557812153063799817507415464215277586831886270949108588098220312822186684939859905113172688292947684666054566181777470976470628700509448519414752945634358117119829919990736418090593961385149823253013266860456414866404954198778036966537197474919195266680013010155440025689372793337421890256836007404903234473273488055430471286789976223028558555164487738113523945372989272371198047063474645301482399523398995777234820020995646494142915803480876899796840972083253676375915641243556443845675906844830910356133123997091093285114050798522396267602926425819975461427793496592244687236935951148470305326836975698718564931446618299998983674298832120633423820547419880957535482642108989026387752576815914993854711085850209649360626529266977665602080463970081114525687588269814097508901865128623693097125505171132474924926062223795697303407347840784220203505325085973495532869169516980497979330257175719961026425824853351799178226615607503731063975276663369150614545803561643631277232980412143770534636457592520709019212326952841028618792429183365685814926536193785320820606420936317033055240735955252034485329655429429165190530004301384693221401673417808104010725241421397579938855037702276232330274182707342016933571226393303397007882084777983093073683222076945649956681904717314877362581015616372754679928488065248056152665993738620196621313943506561779299558298107065171299258789352011921982650814616699842067631262466989818136806077433664428829145529385062283428812861440352621122436449207357966147793390162841486376601239689767029904520823311136863511599569504581787073605340115491102664005865373882194271450734281343304579529404285571918075448153984613841396834180340833988197870135310250236143441116683536204222840118879597563689211123645374281292709065864359770524919002106290997605008334318800711254886378868124941692158495473029158414063381477167429976227801694468991749091929566703751760624379283516270877604958682927091801299333064285492368218632928619260774749458194779658790183405021886227004391264554200152186333691156246450037868322558689209760082972703790891479299385622249963394879222947759091162500735424043600629400007926037349938831666880726792757575237304490456720858092899957168386801758120670711450660930849052324033857623664177403471180543986794994733176417360362876392084575990586593858715446433110288091518975946083083833909274080663954920389396563878080954207637749089506194068199843952435114843696227593678109697214080135204156346400119874858358589143492600397632531430019424985599086396694277866878513940649069015966197856412138751487879281600173270543870608869824832125937160088537423575001487594133549982021899400681594706214866008964352106558865230033685399385307180313250469392479049034598071371596488860482771361977047241911233728296211945773100171278205538697367383913240817430991444607854716554289600213450766393882213661386017319995457776870638522743325084027858618404070926289665771997743504774355511780791292606963482902433706408678336356130535165053468484857417781868204240887845148606774671212434211722176259436999736011683067863855824404093483197580363415091640934920480116093657360453810385604512198014693251169185579686595452968184070003458506723331246487674705621002002003752964657787803112771341640578339130066334118736333500837467013904137052418404530696686432847167289278089596394061548156995415944862941169564559177012840231106546898005402639752802834582363428314127319717148128348518322780961709956764386779807823049922115230452683310260534587085082172905079407975962062963835007297812085164403078769252608222714732850469112848160955525117252431494777981946634078916684729011210837051859498151572847004457368782073840536208043249498817414538782902198818217367520078714414435362870377779239096785492165074802695444361676763567794832249534628591189709783022640641344268470570313546213961814917977161299474575826498537663701263993921757002904112571658190577610010232361726555844305313637707457809557035296894105278930903376278062231473200888796663624426698045677735477816089386873535552056219996442496760159801184592661701636208960110023646939667863282221666464056415427510948801106365161105214716011693622530343773429925301504375895988005589932238412092049648046211264670973145386894991918931509486305447237750325418474825579754759726177940789047260544773794627324104434935439491795488329881346033454682434448483336992361264045751978519898200870633517948349375487956736284946788911442565668246730311915002293351618327772033366534994337087032575596107692974793674628307322908401513388261805774360223234481388717036145451592690933345580754797097510127872051381952776747181618258579599838215735067413896600179896572357676696969613250444831529802827474983003449229639596619331584374817092555816263304429201736156134949276889990068657364280731614346517324800057368780627525044032693232977270406091633279872176338445165277076453316476865608151786767786271147798060695175787527797217498679477453416123778964731110212544646485944195536215194339162749694639727379683567684626518462819343765912541048232598618887343849804156266780431657872936728182544646212143219721088473920246111900233369366721851682624698534926588253670665297907638688447644690519479047450373573971354268121106813417505595804496409080569716721869001658140963423464901788267807154302439730254881782326386604750319922539594616606350028984348762016821436829359183841030794512167480864633189715827631397202283921614707123357565019550771908686056854297136389726078060423332321014749986483999943830418408917034167111108652591877942723592157178396631629192901547440564096388816462451332329840833601811163228685386333642582180288562222444979895487739523122272117339167070314001433583348328124889873368629139617972676228654030485774203021330378899169811870763270024353284983715727114252657397532377277932643322371142577572915278995187665905690033859895976925288784577062695074834701123152871877555947916960050115302705350018824866695175221742098157737299255098246600549796640994948592544698138639086931905292508840165852748769311471296510918900844704518084594584307161495902729269747665026737756740106254528551867158526574363665103656659483844349871085121135640852592057052345605610046132725150289408099164964434773837514149722398766148652214730402906972809168846427169676990546058885468334512579901022911979630702570475954133352655975978338126479022590794237551287055679858586316208552409392750317593007543105545059428346872802259231487192966233748114799338037670718390973629003704327219160768756197179150735485555543040386785633152894822064493936058441158927178521341218536069613182121886794871183803513950794809747796026697507044436133329203304381329106918244387513742471770657237804939192367207487707224722923476645771995379234493416551084163126511276152207960130929813124957142569120843031477379198584943996438422386851641000568565530934231909267777373424125324321413808538772534884708687913157564010499920697627930832840571935119736037658933433015573214628683457561206915236954711464751757456239138681167003144629052029424644419631023711187781650704176672219704080623848011630143734403858599923686344071801113300149105811290553294353080135453542511427379837069552059666149785991076536611219076828566774700300388799508549027933217040039379541401534807871929352394652413630777664724255312318647766371426857007076524179775519894130208890770549632204677836098488024371086644929494138406251428415680323389396217717550173118711524587021388805514607866920836156300202118082325269712158640166840504645257226737170241294370665345930780509371747488543254513398472724138933183429343245566117399699050001226452117364127960086953312614711309107029983994831801220162363267392240312847679007000258700219671882296590350901846575573527471783199221312884088923489091887169824422467571756517353925384796840508975373412980347694122349207916782965048363411180909634330964065877330890791864257797167582845156597085742282031237781786766155720985843407399733407977683012091256409789144633408885121528940864676752241767466198971504736511824373719344800473197259105475166258687604170411956236207653238844534255064929243818334100845475419886541719941158968162765082333200126694053714385018377735212432851381249035954794145897894621421694639305131931095247030145617925413366935211526222306307394036071259349881516575325320845826053146910943736425530606280005974665425304540367357107131992512027774245944027362011941441349644924409435598066268803269932204834527281704630925539291007367981900477553305569969564740014631352473138948021755976811165348132558201904576555764615681593974423164499587199797760559749020685375755382089185809814427596051699015338454475009461700514930941866819896870197216809240471668648745842497001125454989545360673010901969948550087978694573615290500677566586093489355903708152702164755441765790334359198496839514168768733206494619104072861349117252459885314235013042515388313562935143199933808743465379472462307466971025896258770423828012625946479898923013031545035110703766679573555769451000480911095091510840190999715351254236873693288628739571362618519890841936287963557169521580134285798209764518612804046594702588510658494541010445523789226628459795093840112208030479761041365303852669010838372227063990660405071419933397170584580248677824834060722199639043107000451489156614384241643004967228158545140669649639737746997618547448986902786974452107417003431154311658063690672366534704873444450516921911078128022176961683978842211819661261396972333673737085516051706167302484942361656467357277965463468740139433145532408034278931819199653077741788452036598293341306188829742776184664973677977564713670898014469831744006154804752739199359745358125072105527119587830566605785445821579914774747144962860244606105671963529234873452098596864940739942207113075417552446073346109562669714131540541397285511882247199558253093954243313587825242572981630956773849996886139302344601821836154144995674158701318665304819044971940763827289247635447300416018052219611037145362744861305125331656125793474299769487436611869393245391781272717705857740415046336625189307595290530517492139100660950224137754054895635321176465967734663200823786646098901558545626882513892069983439202667087826057094201860503012875374436686747121498597275673870119442705342223560569824718343634461897121378343948506602170634852853291457705419582368581692358602760430584341117736281810495338566274005296809487393339332303569135429635736281381077172475587664113960500678704512362381700312552192745940814912075971488739829870804838359391259622702529413914585232044017245997973574648433991343318816522104257196449781308928385241592958640800092909599818593821799444755077086071983043519801997215083959392741851812939436478772211040218326613196323857256673520597839465701112300802701149642496812898930109021713449579796670763400980320241722133937448648478297090564941979867054298049474280114460488582043991227005517795011149963935345003594403233873287600584601561042044892038891918576995436425570501548260479982835554536448364396471254144236471100299652601006966607375491534484323155640734219929015168899578057447878298959320946119822879294135567487125476404161883590005602109206153479896505226758653659805672357494517908822728154518186222001028621486648088979625901838908697203557787268970187670437929656080646085936319425484051175511948634351130543580816833767693211671132638366244069145305543853128438235788173942096017704661417896139752691955581346493191888336791974384819489256882038735312090521608082195280755991783687571200466811336928302042416046881571571288502587018197100391911012434914716471385198990708297922133312442020332670284632861825807656451001038638609719294116306256730087534299525650881815217991937228338364881024486964845525164840847200313804653270390979205961960359214306887413018390633685727683887837723714663342628434484677851188202444314289479472987643963291184463155608041934453504685955580470553953019782077209124043644292618078498238164883779924440394517583980144958285197936111567984805509904147302840794863009211837775304249833183794449036973324670984411755033086806005771779158686994876213671324187907760767336063404430799457439742714940215736406833989807091512975212652176152484070081765393842773574923687516367292927410166448341027270801267958455245487912136719333219155328545475241250073196518776311089205750355514517199457661312357608857887999756061250288513957016655021570904903746282289047265600390377541826926239817740231240235602126252503932489021146210056419826684551499723739477582765140894258922922913863013706702885296119754534432286101745930619496656552250815693347887921152061651314761704646850193114101670457112166846431092677449493421204684460279794785041434752782000914424303268945206724546397117951106984406889605774620630093744292755536284050638906607460456990408491731858545812381773501599880513343271753300289026414870078827342486822253556014265119873160319214289965914737300115670001968190312617888296140168860240664379424510418647487206161573044040563126276019018290559583645712474317121733239655535936132647508892635672891089726776472085611582531828745745512577963456371986099951513339524463890592654222048421838233424897497116122148630152318496826568954440090299301940222569038191535537835491908873016123366185486343347528552484158847479881265070835275067295080572446471614217323591489444686879832797115026547663895132649765328196094051304257200645002225750627708811154654537305351226392863740622487988378759979867985274269288577911726669855356023710038467166868206911031061357190894637099554587659133553568908589281787193649211131869615636146807286485480185742516951836956375651199136564096485531497939886962165741205456458853939417015982559644926766850490883692624746240960863060035131035036568273542070878368388932557396955279757213640037758967127376690477668412688150311197884782298346374221417437702179181908319803249115661603417292668366786120105989611230064673447756157491023566779858094453708889781122455992096754610318882917429733179786820228632368394198347410574853211784788986654540289851749292127669387229683946543221313951147685762447935030713381520031131617498170260008497518795689479069108380712266034940596606672032596207884000803297840604905508511682920272365024558870628996038494261202844683254403481080777144764517792575937355657690439076902541116975789974187626863751178976480965920056715980656288403116325013253078316592409229894578207185877059905827001698033364467407057329316440756394605138663799971276317378230879203119239920914739874257533802049568144120558946211052680266085397674349061869089641986960143569407036826480660389470162728199050769753623527576625397375231860510534407829482613987159140220573002326306045918132421488418314458433051589733959272070854907298779487664834353262142933252225892276174848571917242488766281661082485371530790558493745842141499464197713782069984065718745487712216016995813398294373907056445183641275664614364248163485221998962491074038954313956132766324313094271063279375284615413730739294652597120136997989104008763650832679499016846624772891565646419687381585325531860712795981459291292114023066340514007961196493232131629721453632047611409010666057842278735292718898214428185780791056338199919834879446212207641468091690952238447476627097497833537159032925963481869692654952300095054395027267453992389141306239282643370085063029682969094538131568498437512435293410558759037297419330805858776610265786347989125618411704277001215952444406209908243576634481963274617753568473794205038443026832650676404688714328679320964345578464936408776026359992075316187463567480998409704070935269444494444376435546725244777921581142852636717223578928954156299557130290699627288124963787967737582924623905463068937587866998943887288879963587252180748156857077141636009647513147958303575490935688821984920970062409450927601093147157104537504856371608731683963525074294873028313214240023391771664200991041270569557710228873513757772377775339968098828365539590705929812597507125236540263952468113621293700892246834498072923822505215495512600204855768911127284560259834894173798060852063048831182271076756012449059014668981010759040147455107336647966989437770345786065949298209066489519230121098581900109515583519621944915663597346138508270533335278234929553568960050320773356660143963483961645216803325642698701211879843228858506464410338938731721242197708932675581565998945693493188703535566919795551511603394977476505072023965664860440909009578186461039588969980471705738343137324738355493162291340303335939070473508806845879953539882472307536039471668577031998199175022681615600552386648584069884981304351605124119827910237531944097764778948047397710043910970257995201859750490762516275646804077004813083027105676032609779160942177166858626899088781660588958268037146763369794549020673401844813361088616903180238071758577816825204244842895279764325387151757035843805981854292888053655125734761210943589770147660582619372895004722603072922467016230141989328309399137969522538287013717467241323661580688867823793365249668509246504260173094960931024386512732563316842722513748120584588684648680200344519221686123459510292832200009756962119225890182603903120550595846155222863525408046439299537827003645089293205042829832670125972737518237572593541692830630812665149865335056726014407832421469439434518017224308300932477714639374913173856402670886996296060308337872289846468382001774857331756831333514586159169120185446978500930768781608342915425787728880279182793750045931814691626295609317252028687047031981207264626150846215294044207069325023551408092534566426416168134610407814152957285552513915578667420034908788887203152614228253798920129325810953570897319694855948611957908680803677590857613974364587799931002508426540639429038918408800369157554487611207630613085713413273346258682891559285519473335216291451509104541976504776184545165420152543648565576667070335995019119180038564246174145213894683688394615456994002517032813018209135703050682859530661710573503326886634622884986518529644767342858298452252362425468064660791756031837911060919533203776928754977978112088960639520773680327876249091642120664774501264354235630959429482679111898321194637396655699085263703767877427830361009692072147369824076419914333125640475837161301933905316347944904045192923444024179326937434779320589342316824757070846418207688627725311901354488323767728296217269306696011801788666778521065098394294435853638098445141163139230640742133964044320026262612249684740622295435097742857158730446566917465484266165291221121670104020188323225219906849011694178699545486653400743859917651617140219762039641865053826865379760449224981592707763570696913382838025955146050424434331137500305819402233275382511802824499269789523016680331958076837514259761246528245598264020959196585667000882362628432710053141800381465499926300285247759076075778291012293562187516960251517594516746208928472747866345136156016865249943905609219386505434229105408581071785700675567384998488823412533901551278270356877028847856635951824987944343342879499443551063145602063006285355902150481653570425941606822712949367139446206975163228241034587433298185543989841443195134643489038496721848466743026530212061632658863695826456727366411530867535141778277460386160023152672565283903050324152443056797901004526523608944627710492717172749011366232445407289267358603524876439649681695803760678613764041734702096148697438358688157492766334697001721958621752187818297737261732165672388001699823161413262409182584881914124629387612600306540179182319370458770405321472964857643783936388071706049510345608320905852345581470000530732056470649894192421216010145636050472785417363683946129079224857490057039769768848757667640571089262989426019740216815730064041482502785467402201108001794484679490180105826037818070588170113206189697579350865724979234094416240066212168554030159945884676767459615301820405148318764540653899497791747070331122821909155497039655463780176896979026201964732149796350448731511948522871327477761324957342898365989848084290682551905526177669215910532548350442300226209811565057404531625946180304937354668550077305417490400989577417120463151171550255014829706308950707267359535777661343853563972437989605693820985783648048803740141539075185020021117153828381818571456158686442920430473776237886975182393797296347063123635797470027517917640784107079562356621696649941583415311412107066353470415799361330540003160511212353339013636577623685025593613030725046371121045574913948602037550587607165321032532430822465526431920955868330407712351589241378372042374972106684914264560459451605913159100959991768972085028424677438775617147514000400877625228685278206658330617595161631430253469005249418623800662477817079723764101500895141680962325622138140300244870734043525952718259484959347709673019436690355744080882630764488793214752547807794292292404200974436848127290076169205583431124743268608483910692464979957676730520727236047118702825093361548938272365570174856153120805273261125842968039955691566177167150397008929392503836402789019415920802429818094526001341486092412937502802132486954340593141370816139400036912503195564736165113178848335348030982061288857187484769106645144651994898388760210644660408500212902022971392014547541872972315827111157184240588896986254610790198909826857014160094609909901983109499176716509251180486952560915853986622465749718073428587859361422391299121399264646913624552727109757187873344732168514202002335816369570634662645365477452402939590095155545808128033887949428448907639317618176197838430519287573026655861210164547394280684187065835022803024788907540210362641473742213104173611792888141969533425342636098873523414098314725145712499129109115806857353387398941848623855501585202589680152275443509952324438273090016094536380113958513712363701902418452451196041460064941746937510220540549266035146828622662932924127141728927464149022068597288195278750364773858880879763135332380727756548651296776942027514724208517086827310494451679926700304104295700402112748750311296040890224583206915475082223927649871271796100370476530732125592246147024779529982197383482112431466353495344147373285541045818564354424123864718184509878311102755239021921380888007048101200418178891753444106441600904202375851315388488618625940569892973155235999767442374994938903640160412585063721104012807549840876024075278910698641480367365279105163680383928923389838743964475294095435670637768368390174418432458184869631993697465117618487748445077861882752211296867597324549023304905087790347592995188238730402863450829993673754956530476423546345572666636268356943598137409871385475673344175128806819988965263787452859354611396288338723303244918790513839692266954214252732302390365419745083726261347283788657783834721091517004217481709612790534165423086367909921392389257709321994570985695642243866208608559478785356150481732539193506360068257409715290126449041980175434414742785418472516015048565309302266103258955124382831628471409299297806631941264036436450964770047156850518986591871143118015158443825489387152659995820534993322113205222840616599933917231120362288079451250820240059171710757095619768445017013836939797030908825540963003596530852653042368385142853434476055954550694775273147461714389501461870532107383678552555264742523858293059278063709720332951141131867852121778466521530672139759135456320070448007470587163867466688053541917468034108286096161487069289351013505390641066963802627092244699650446729466803710079150834879437787201202296394241096478461218783075652121191047600970305324605769308474378564891938302359798218091848433775396194643058532920513502164500747360937918648119570042329029595874166690404230107857155886172603784732223515662152441380693507462921800146177551857534109052379122778783292032663267850768240936697355677517922809105835535388722721458609963309298478508822237841803937730232439380634719547706312421553712134047692630280801399528945365297098539487878068638438623343989730690964976206446605604144701297187152558446193763491803346575183043765062292481125637009002776393237751170777417553586782417076068124226768947978875567637975689909643302406225293171724443895792132464463337172444531292483942427742643618209297874294513826483405570300483070700100288287338290817761659521053937680747826358402102298674192175405689362224917346201898669053670514143207192666811402398834729191036006917189679292160285051573548962691911558707407841405901749624097865035475723600455339954234952114263304513425940965702167248521599079712230857930360974662926943735500157688346701360858617506648705344218432926431381236967586518304460594141788858179350545473981535103092128101166462195758494578353681855166255885337754288675895422256819320938359611151393446882721521533567053472097801575387166265423869597073309649252571522244526565966948833480799664326544967440876156179398339473203211821702019463501033981197179161237929209221657801211790979617502303119662547058133721663624166441417661896844878064571878631539190995910679781894727402183041886912797719331822714002829408471909587753867993246951942951123345077860073213683858566873378002914013790973429747293773668293154058414818628477502155613613391889254352855463121580246146214588766053028379944582819708303341638131640286250858138649443575169953162622919454120865626417782006236196088869601651297248300078365409758212588917875312781309075008444276185131443434995467618922010336612548054132665093966289976991573648409969166897608117990485332545702376801435189158229316576937883751370935200073222271051759697690570318114286288057035648019566644729369773844702531917028668823559116929387636888836008148569680794097279780133147891032608571428105675071718727977582061677980378813155649820442000207693842542871271263758505746279917108383445101593945097319740792948801528076919188968256020326587152495316274533073101495504848710201513849255359904655495769254126242254232333905362641274442918297372931551969806354859476464085166378983259911080072811706235429293192783219415287866608304547084641180408656447651567995681036144318177539228511436686218196449579201761345128552071295661547586488863736883692434860208282176801989046681487626937723653101400488172478579980674805645260649612479226908601341091645364200331185585043182635399068132724499236356600049175644430078156897530946958933784278485368669651141540900589447487804831750812210882259921255199691706683599813274943877048743130563176156587067575186472369339621674485298626788208818159344582567111615093178245719604328279665421916576610520890568611966033272996721894044919964149472017681760749358740125129318823417923839939350525550040161808046870120558036350440888461197177134394924740790975616294756387463423391913975880993185997653808600676808414402058398263897968844847971576220181322081673099302072286313958503454314979529546601967900346352361939959635096909930171775350676552768796243801189961657785617914778535810531873643885661735571157353858360237068594726881694886044839567329447620078648768165090000698685949001697827080887812959895119141219846856844526737416218881506999266535790498103181536640720005003445158744343612891000584343908779489764373876852208896004642837690101714007525433624664122547481496480131334680390548945034253582241299970587693644222220277929253731483574207422248365912895457316180089633162386202475927915436681211691287190153806264389472055374811613464234631327084984140813812472607346181424369276313728991971371726017628635402799501010700558055180297439881359252925134354106271692827361307599755218151932698457574227492359500861501277312663846342194139772554564381648562928550127669775129839084555449944809070099804412013435460153181287442664014348292048308501096948330885867333589291068265276521628876470353958881228627990092734826648996501709580815939340473510574333601360983094038454137338421511127873468497403658591716404308887111125758203835607300128388638728534231126875156767823313187933371516707137566312676337122043961774451368235883917583036954688329888404006668926272310055825920874215781322438654058819392732437931203925314499532961125673472151782547169086140753213854494287794558851505359687174321509136037501617749901396139923451917669160888868189709797282334964379658933363354123251036903122615462501091148928440906148926071718835238898779144558821134817062939822745377798636527854740202198699677557357957155695811516756020531740712386441982505835575634232003419222930124903801263209737729234440096155348834975144083716318079541764276905129063913606085046046861564922082955138539959384857497036638014859152457168564205778820962157171862125660820672534164455501268239073053000926072592513438616571130574064404441932474264793114515154516630764848875429474057953172656752310689572869198109958717147889122955273406674340785663893915693999005465161334057224264798131549814459904103454994718058520650067327612100683654002788360151306733446300930553225267659824678450575585260860966797221627042753640992361954837347217778144102963570693790285083293367327127427985933020333229520904236001775632601969478656442449691782496279959108242865210579056721298883822943056216677566462978447013926794757264249626229439156958432650050003357917184046667055338079450604614339707931903992046700169473134581973484304574732929868419395606907275284833054915640889446282793874472334085364835265590454943527768417115932376553950601145125164118632499409631024795360091536861567656115390913286497589290516733023405896557214167707525840706529686865693212235701858979567300814368374104489431812993096416926994358964970702543158421525276025492874576802940593001144221731361345889205464220213684331764363787257385014941522899776742496289755574249326709623052392279060106710056809465544817463964914103360802404624777212221654867049512285735231180821869857044544228680537755403121040376251004680320024912704941478468909136696784616806323525859226853821852939159005001791984363588352468932058162366939700375812595653494265298077745589283416820964884677217899089511438160950145680000834755950950855611392107830643775301372840787225944341899650490634223125958530827167430859549489804265143019097164112652655113494721403800854755780958947206302432616833424136907449113658866364074709093107635292831935274150248043118612618709864610059067283323854826903449035474849927628893564807268776534878049888324440440738038136875212102557583442170632583840314663508342443765744681537986218252882781465855354229674337312887346953419247183203611208038620514902975655943481984488242680303922651476819405368771403889145584832424525417072234302819005707963872390518557308011491535513092979138457622292628295121232237078031602035599749769262945477885247208409215867861138933730743107754755951862418112317000036748945702864864101393055324696530093116042170425780994368898019155946905349422219196165405866450273193588152132743909513189447503556539849199035631766307754538018628423809104824636792802227240955912099393181151888208544469662188053811571685888181264514206197190162659094953495940071562411132867441853359484307192311408058278142530025633471550407511749548310176643377369271400954742649759243811765497173407569416668361708729641693373485867641980955095046879913683330387798345997069341126638258903624084572654798532640419310520918585717223472289533656263720879365098132052323084328433810064311886565333867339211668376101194167909611890847143102554055523921785819233170919115826689615219948937715271152053882873657818011574571243157209457030808353739206714253481027807631703255929757199441068418351369227850661626789580416900231580415736506960813352383295702180456186333450872906771969570182975840332101701378695973439871532738512614883307331695862757807911296595131506866267598673371347598789107085516713783378925703284718281230400395273274259850088254685691307685823105646333142638350876887955228297257682663121200237449504415191854369906531874296002720874046931259939870048053207252844204616821466611992575266016884594798405679988118010701098787653540216140564420191317181430075752866854921587049433477216559673156596453747096938364960864090190379362198058417013979494134949411277657265642490771530486417053568991824951481753554643377862037780929659454019955907472741006960638953153353046141619350999258355046975861047181638833638394648829380441560606599527517037575004127311044182218772000746187612301518770596127852991185541376826144264246112848814766056490855147092521223682369214437882329338521464244452047588717640274814556877903727381599766291359229324663413867824173655370535919292138714595857090928360744282871246783982774086901461406195640774480745735596291495109696954857610355295438776745558920769903614387583411250808984871638748543253788848727188191930441264624085282678783714739582446798904843094208251591983827010878781759673348188013476147098522869005511342519410439782312404782687669198143495939745827160236655367193685915856917299879568525597837886116016983654210037717111443871831009684345655530724781592961685500642982514004770340743152675583570583489312594572334636451367849264523584424946543646152217062932481024222668440655477809639958564979089202584988926475223976958934220390035568016475234506593505352093743419488504262643829511782322437767527711688220680743716453297305505874487855346288671178157314883541479656547368229206772738911655723625957707052313543614191257832675857666024085541442583613414783306850978667467352034504911680260770584876621039006432013187567064277478839119681136780799094280093975367957343993887810947485518663673198849334678307257345472820538877424303005030679053515092767613998138197782067116375126733588091757296929904419395388840619511895118530067908251391960779508664397235411615706197988154680696338935143277904215839125556770100619441439088048767789632445542621487952075333635763270025379107881920663438255947863755705116038405637425877396900378493574251206768757424352353649792143684580028526349679251546906006812845567374598592876733362323086277489770911237632770618459829524561852736215440098850027860277850478075415240472175889891071678656517127464254485624499817909690846197588884039495993117232264769908891305049077350965594577665741889063025529676454362794792368491083304742169891186570552446046564766516732523283389588085611712172455943129980154313433518800018236320322147980482251884254443627894625918595724248689820003001832358979310081519728952963324274137510357772245818501247458520904312878652560011203931680661011591291802174948906776864468180173408126115797793925024336688680685009113694935428565109226304759689430300062768661671601731098963652235320228079118227168331584588682153881629182292820879174437889538553437835717894307266020262235448133006208683207061293565238511308662125137318348740369657479861850235596878698723195239223681190640527701560583570721070445698783703254473745057767460781186818687295995238093199308074790169692921986843324476798519309593331697840481334057321223323475741363671149727045047974305221517499235916623224465246183124068218454475123551317872400221287836778612711115185798336481099717067199284946162372265884391850933384530081048362631526479206297530661936299944593779377364853166602107460692457328712766301450387528307590078783872646459229466350629397117653142250440496292810447434964708402264117460771139259814259959501439912875082821094186312539684668881324412971863487235994569528683797281263569924379411595477467203054799359381978996494130195922033240633517399713524929566992553123720094318272333324708903438031592438497589296970080350404396508713097054839956921334657214395246380357092302943628022383726883769068455206612013495357443735172226987590880015130648398464321155922746342911650319598900917301001894565638576556948685434374750666853681703920155467612357927470063335912790650550854855191709651639875974138651416316316799293634378372764994091872159941554069149126619160571698646341531756982571485717733185261205832819338939989766663852468826649226253233528006536532657262118546112727351006132499095101852536272112772623500366107109511284497393429249518509345514173171955994032194674612376997447835153807413111837804123196975537881182944848908055867824227259661158442464752241035918605828464052090760808169977121080712396474632242433212659827244844614200446505952667848863933871254854872426420939399059707318478583379228828122199635959957795467336817259185034429645532762233634738547189425337950989462071157311747545468339484872019913046065968533889209394362500337869542107720422275963778697339306300924947088448496696980023348030894025277257448949479286909361386921114219446079379478104648810533895512910743462284815974517824080354020162940660257964888755332586656930044139528376442711235798666049679544813305410658983841439888172432192851774665898624067794541256913216205418129055938119652552047453321047228359934460122219616716660555729773886735385872906364608774836220761232114545339554939665799997753325385009516564100494219529921418402958342322447159187683907357119818483777299177462326413269778371764240402605657010132599525484637764376783975727511268181559301213667777023283212424335638060306973659726758897239260230320220991764378351373919995923403308748337969342255355192601385761027800276210610782445308424145786875176355282890951173963966170451128825872547665951325152860161599934988987990425452191755781665796669074108846370589633465901368916813714205321155140595994671657134472506269621897619550521573583564332636279050410330591336067810233641524721807387062165290354802769785165306653359713043335310569925319474770365843248145619744147058250054913095854566863295357625803380461636087819458250859212973339550817037596354009699168045887494477873117581033367653265096881385890127003760782920025952598805892273914188508733638758976046614602277776411683834727484818794820635532522932599135265157037552459924995849053779878542632924329453240328894878474872858229309801432860933598213560602801867245303008940329889094980736760170036364505525043423359646014317907384904726096760413448595918245415050902318399078330272130776567087080216328077529249301752934627472864127450136677344962973857110347159557141571694517579901994281794301149479011066337454091994206548729412167792041520577658558414708603782265138195591717354342931225081537262263615268391672255309080913588134115149223376215011631795309586343891657514813897018240220153172787234976450617663689677870415766606848248250906500428785099803943605302604290172483987258267986615233735514155601703304190502052568572113674727202676629321538084844054125042260017453139747890033466378857550983475155538150061158893404436493200528225121491995303046613711606005213750851028118420663257763750094429448887748795257562526918066875154027567878276557628801746446296719917755268045998160518923002029240577855903893236076179355506909470618565694592771219233359628122975674251552183943564363007440494147160162619564838995912366785224822031669916744186336219413903848277858311975990341800729455850559311321559181332184396410459263047748003641587547477562497249044405272046248120060686267357756568622288927627155574936693839544268314916497237055113062442284532236596110141110272406122540070608936705346110401271920633780223564245636000790460162524788798424914235570104600212945733321068510520552102095918408460738064010416749025553843841136427840352881947687747550284297202363646623121904678046128142546237016509644912726612781588206035835192331128202553357599573461690785833690805072620191142489067200039780381803660477352486254304684220439601587767544529851020908574560490240907806597062082573653106306915478497427091845913219933854322498057489521249270251173267227064884036888771694095085056015423517636813061357268402985217874224961650677219966179159984059714180831639720553482186183875852200960045941026027435714449908559343602337136905329464216350624426161100223710279906851859190781065136376976787541377035407113416743276580483318769257320115506891877367910820789232143516501676490162988757977936509134128398814353115587807532392636606963528575341944580694277322873682210883075597492753152548067087700729761023463280371792634479456915212681847809131382080605851597076051914429403513810885700694653942829174774343381466361722900099931938476502984218691194947555307021876765832629794198015817856237771195148048986369169765864448598581948339384518389022880113412261274834216427309802938762434238196944052710146957830334560754060254194816594657777952986758132584738849423901805821210928316672995268456943110993970872222776097669304846765937949915262964439855932058067510731203132805105819522079903791754943521847211183012968116904638417596206065166719422067642470896955956940907045521788463193825921566574927724577930571747241623158146930234393380354694999767239213242177187110984332462888109516848864507187960280584826531962947845860145698662224593258405565187042019746726009475976011125758008444460190058549777687301367589196246966984252853655650900885453895015931153806665386340841074839486435457101479857252998615378064691073546514668796704724271651163654470733008966798556569859390749001116797611685151453784480848694748147977446707937303899264661470430007199831430291972431347003538624366010584571980661929801434523471276232012363871296734297125474066675276738322106156779208151408713492318311194217251403764539827185174782669696423313586060087328712753505972336728353542110607432703606427180790218461150417887667255640120207398969994127461426315823271991474898147998579963873774798697138185625273574721765541082186993144879124935886667600539364340545071186947690333856162162925570436752056312696124415579300168506257916589069304450961110184469957091196661075170160959914273765097986803802185749132017811361256848622301122776599979453096617472994545840766026547741509151733923979271211848657627875860882328537024957247193743904123485147559212686905647005908516890463891682864788733881392907227266876829527140820765738417593910904762705029529587026061098966701844402814640350079717147699355479050774048444029146708717725104069655452589214061208262267368865938053923089427176424754169197766380884222146303577199848917880254227377820002113698567795405262095417187362013205120317019508928491618870884748716458878872013397767276923780110979587776295917530876293045565337493022888034386302692159455598622879071168023716912688622260691343638651229043293079280955377770920573642208756982889655453832119835306949744451684991115186622264438916590033507669473003702992870706015905081203877325682670761523902939576975712627233699417621958742612348734132125154772181128735264690816847825552902412695673860337137575564947332106238618675095491723820361086329913073615734398304457107163891033836367625233799423898823867852433779227579658353114702901448123724128456032704160006443942724522891049462657236422958839815697526880746069690239949141680298379642641212853808601379635414689518222512574455588041236267346130852441398950067285170130097844503193990111681886458259040483097158708993140539172396567997057730225132608864968010603794548667265464706388733128979015354634440214390097129904540673487492641008781164268106887463224805173510636852047074671679407026923186995879687713270877358109388995711145978093916986834025192622677385338328877167545994354179551127361606160534731867280873898972420280208648040406115821963039566943217583890863211817993095786820416392490849380556411747828702941109388707213685201478328151604829193289360727751545849668273268200182133747238341555890793036098510930893959652010819171500883748621878375844543719222704640941869317812117915274400525670823401670587277359026235402508410528099581887745895195020563154313408108185288316441476542074302873059673307595133219972409181053209455812571365047847869691726930373579400866573870317954424258932900856785546360994766683406484639447412910837967552154782228805198464869441605232024537647739497925077956591138638821205396101162683326373813209814305556034583406700325210096420666299490535250816855875721640972939544230400488548967212108854384775310297640907029544993924263891306627503070696838420459555008554409616201970681697005383712438859868333227900605228816924997108967662268231823889273935261340260009809498142798890489587743823594215058333424088920573619878592072763174663607203178370046479290371212638307035580962430352061988890158690394657525124681164674105683704209565944511726668080071073507964947333975858175367965756831873785809796152003297081293953105801226137371605513872125439863334865877106762868590987971891080481308518305541788877115212933861364331134907104431739641124367790508012983911318045731807159928139016582267895882435811990829810284021139956346070848771609578048902635041385317440831625561813128769541893648539620099466361164597276429937524746976992072264766454469975975907399123233338814616249914772912480084787424221994825833200221733621334082358526850594500645985154166451886804990927832655184213458768434120486324020519268664485004559390007132402475720841897906101743335890748279436802574643581192550286966780801210167406387140041392277494197060304381938827047983785135767885392333619941800297200951269336634776049447146465497300396325932870729533737469337537638520510821222438298012328802702887296611574261957641796705523612923166352925938173301788449886418813945019243403097418047595155321411850684590759607034671779974199025768295812010967701593238819277049169173236303687365419331612670061953284701720598477597843727991231976210248420815647832313828531409516424957827959789098091000940070075149732934880938904938290724201353797092648752619258475929283887574361790836617556913757938107458721290405948041441073358090721472693704434693679947534392050359664315634620116336647985589188459904195234222574460223088706578810562745125836218844942403706111449392828815228437301885369082413298483750315669058771484775606707543376781248037370258969362134016112354260644822685375003202108381252317930985651445782273233841864841074074557877307173651062883478052942805907818588342875218824494064196497251067867629312326918314668831876261189772125409280549097359313912656012697429575246431085832752068722571271249502191062834788345888533896026011281215970339771673075456851024745245746471002157439971463419879408268272374409340494467762906552495093717546209212107307706213863379349203837204988642722662229101082342915479896861850543120494626128038057839023543023849688777547258854273556660078263606813379598063671171360673512660067949673745354704356072891686926356408542081965620714388651563670192872757329952985174587836466161939588321776519015683752807269425615100030751448749397145142189436521799002784379211492108597011286773800532420974799531894885189844155553879178963066665868565835973798057765224458111468920950683308197864331489840598274449011869672052348929900689796648962882849080364772512877723110866677023246657526830934029125108021049504667685328573327167605793258322870940324927582447848140276204289394032260705575301768937344133965414821887333557682152620708735929889779060353114207527039021600304858917537485816838156907234940418606202831390385508730660570285359357205820375804338358161473381986502764333879893788961989819358141047920874849922347201990421890777360190088271181620067934577684469763508407999620907481335111028713104507229314785421744319364225236697962150959409679791354165546956658864142040493635934260094344786548261957806690521503868235077854009248002923527515878895924647373667684839804214547287212352011136807514208927832184976366349907077429392989594453302163023129843112894782165012648576046622976890665103200020501295210985978148238832881414000451993232445194682774946663538157686826952902713028309998114380629050210446769160405018661847701613754089108684897372938141702707048126869440815711285202929975885678399801835583411064878862846335655739632606989206462560935190164681316226456046534366567034933758101726223795397555355052858856978880662858316699420124808694930427786047767819049161123396853512917973850563598645794658665561770863530282368948250003077542717689355442752698479214357247092390937191456805798076915627457485977424739692886286875103167554653679253123878596915926462501136670536507299991631498741729284939596383071780183482827789372038095489439819425193552635815142153322899323135810752150269002082688486743935792678709916349752553678215003463742583361008494116580124452142758232258217048237075628537155063638009392784780102465813551445259559312532957092052738622506700928461511669397498442506844845599230065296579323170834876284353751948715468104206813800182411115895658291720313696288147893180253007367137369968633861291811043865403384815100989771267931573264369097302306460619202533130275788634162362424947071334724369228234980096740494195025957200484982938177057828786773863045329993737618045272794516669909490737354849835142058578737338339760488939281923485647662985115971847130033316732465991617260022187770044185730111029354616848583521662263601602645301260152385720918033051322242245378015827587647384859531902202835918923378399836998707600287994123201688427680379871490524298757579489017795257791488285392287163996135827927573418238807013806975106668001714518943156676860793783373347411964054118852920463929159720259563002908211132882923593261630207169855939093445396213171779858846182639087580812550246992430394947595730900370981662275989060520221401440023168438213616472131020908811239728649655550211411768472346753212248570206239471761891872105356537151248447260672657084055606969172923131009971013631155492236225620700298966171847518879437911976998675362937677531078122741166881692493707401606017677221473181236784644925896780148807615316565411159214582511462095875889495699630641937706514258452036030529370254077965507179696159356409368777825900215674314761583603272024928540793743320972788679431269042196186906910657023369665287726344286719770252020898631168187968501551864808256338643842577216269401942185207976424678814559977029685464821106509791998325843189461181654282732594545681831087863490120818603960659386338530756557818621136914442173667281989430158386484504544330777213375891847115669206162471418162960859199956857519276002539600378474528561035974227707184414425542197424821707072480924269602737046894336012080121738966420586386336588264699504761266392256233297508981362459384980326223942485824508075861684956451073957316388478456515260617294250935150886741489368077884089089262424521102903134331161815467197552723232686569313568767691476066818981388763100615367662521171846352884060890825864518548029046393163834712272211397229246366530315328459946666310650785012209410267360811047324736204046104679232573465118286110403218677663045421989508412038545148393043112937569472081766642480366936641127115642726775080117030475929859218612038943610319856784145699903093074560863916472032418224068213783316410887902298282811733673546347702535326979925459373209628001329154266911674490063221444585377675681413693405952517294213507774786704110030463957097482486330200105728722043480711069180615041326552971132703405274212249548399120879250132278252787279630866140584583433978288943165310892778533113564362587577691380597731808530038476431793676546767299099805604308989243740588033737076270855942864110765324837590283533986063510674119970320531157319937467424155634398696031053842422077870320842759308223509691718331467964115101251952264942426350668980670968550903025605384551610991446722772561940896575316899719592133319173952641751313097759326922323047236058906759433095400528741685983938404467098142954767774571463233072811993756447905745364790531934979948408458585710634568480781635336190096730758566339508590380159885998073690469789041281642030960125664837768564189691889720254524551755424531254697447262842875116047058857660569869123792923761655419632820990005937781628889979990912568602950935767712985106734158923068894239515330131326432421377150990568112825040630122349491953460149868168196618937340379781730797677761730827918169896488827506457406729624268719518389684647215298584707161590949532334789717940891283539282700061704761583239374060323251523986200906678168435581659865951031353545349832792146741989363752425184499665297991752027318786343667718682082098766635400500943784557518301689999897340809182816324385442229007056544427249035991918835434162706142897760476344877188270869836150413005114011436633245346475502417118453244283927006798162570617974860700647810999731377594753039594380987491523332632255788790878710904344643115218844708159377859385083325897076252024789037600948358979435883007948669074465771059253397577629854031805337759422770589700915908779779713466677757613357739038343704947678421612147287337965928836758819617684659472186806417705828197320729897082062496955102873696124388394449353041921134168470026933466728264920440918140640979563367435753883525494978913189217146981533789963898360108340003974195707954260979897048065014723406402501181174270285249302062006664826177416738110093928855683627763160228750565407569483297494905351899581074965528723213612311664605037478988197554988750619888426518639766240220099042492005290150517022664752982490212165673854518809244074351241064837700908426346666455434637069449068038116288843597270734764566768527055596235069104214041862575697067509146874701188923105074377785585950322568715043692623017018360739004449148694096843503713957137041000643983727750927493422708920396713057988234206808791020822073340937572466945626293916719560227858643605265767173719966869922223238620066345558816553846402709985251224956010458171182559423962868525266920648286520396849393372301364873137923195844309734963209464409842728181440977903945683502850404784873235240925855808635342514042388831217445994977839415711088972124805910717272827541933168051380730675368096600284796078398520147948620121510112552966958899564290514180289170671221848901957883775448026400987913367622430967294584520978700916457064351386130699349015322118069816068460286809965868737316925084159863439766086510282590563710577460332561984372820039320447872401371908990608873136552115725771277633917862349451737582814565352253377762602210987005313825650070047162583436679654520899846232183468254350159450686433554441026191312952188085929361944131351116641972362706243248581027156452694733098989753154894016033324572636582841276166951990065649446007255670364861381208196528754090730437217244881414530396961612560026438907821931612581400258302802206762560424658320725280099512200878614250655224469145672164924028002665742621925204087296097167125893680585927916074929974487998651604653069506062181514728814928776157456951185937447165863106907441512758488653683510619250354158615654107266864514589000914938527372683015554039520013825117726794391310070353337250064307998331606208158799637122595877634321591268657884821642185924893834257578871714810352154143331416634282680686393842024944271060431138428994249288879256054674749507482741936126350842326599986185302201835854739280028522365213173634721295286220436165788361279430267377754311063642854703552381799694648043828949912388752325919727314028291138558384407860899034861959378733785763866682462148816100552040912179788663545860231166543761923252931180750472290419200823194915850140325543693409844105965758897415740053327605973446396234253533840515975909598142382403835062365323746372649357637533882484481251834247973755109606986647656272225588975624122223420860305998510743221693487699853493543436869081937059023226682199515170379855878565044206937235721763247009328118729405146306085172652881060290171029710763087596347337146423254717517752401056837920056787839623409134990278455564732834779776493989817905124325461151665474720949676705137293145180718189616399802275425597047056221070965389252440911797309533438308865774172678898613255450893250265552006895184745396462532476187134309681151755466635090092604673989136009841706417192483159542133027024094114690230217695139687734290431089871629257786997927562461658269999867838747919105503805665782495585431489936570356767644949938355664550282941305758081808296823498279026379125778623831028705695691691275371101431084117643661738309341537378214018579277274936373668479182556269392656390154420685870882824727372013545829463149224628366533024953287773918487405106327617353160129317854675511414501619600708529473611429546918803005747658539761111157075830545080188578731423343493855690814747443961972866650845174088938909361897942699551151642437917580814671771437666588164808152916781220438934341250063790287087887058449260672021555195113813095773465914595849419817201279987307753229540649140415931160535866513046838888224080216392096647923824859597132000714797734210354320342396429375490066466651153902379053461938995846024583572091215533106023584562573756584006133103608026255412728258677938970674633960225867461519757079831892155504410154489748468668860467141317967182091562863000998416734547752770372192456719856045126183772303540455679000025174939413865980017895808860092920727903016999958443633661381881419080168218358305595777214598295096906549399636519842691657774967617786622004029551027948071789140925629379864626536178407977757458443417180078815331362186609358171513898862444031535298953892028953949992946773556024793175805406336275488706156757189265639071535274316563214967415066745676074270345095724039697609738880129879970290238484493818602127545009328128893033230748686470813186829099475175025135318696550402690252274243230948424404414750478784612392294200691854324216242647123051155020705666677235210795329424660704199434725090791086985166441469820398382084143383947807091578567137371894707421156057433594152006212040688104540000522235163168524836707690828067084525351607414442691880285664548268975466874090407582355975362754623312502822018899760462405224919784405319565880165053348338936783040996110659557831932163588378086397241189934061295140047943888930344050136557756196570132907303532448385295869588114560073755383380540287328086938847000234985074145225596135193551061100764392111558749405689517163407840059629207518751681039024766146510488308816970745342078403349895952830817716128280199535188995539405892884761726751513815003033453164303587302713288643405163995932330693451329695542071320524041883667747437442838965741922453803080145795143202184680700790170102564456380949173140763715665567319727395838225407285171431364768001459499398069074426745549509361291164474233741640212383455770270316170284805033356642614320823921218649461003722512410546452839220828900800963569429913826561461965586291941416711096696643397080533446901960695737723878059936147575809417025988039065949939410190721319175099904966655537910641774683053845272611407922685479914317226609476562528724356936902366781688887696998146941045520459550496838308184780876745510164074594864768118645779764292966016380654263343823496587472893989071209707677937879153941660778356666560296462358113152454536696197338822035316808655846139552261785881833557277678742281572992436144822198838037947798038132667503745276507134770198242588246973238513032318762489324999202380347379438896373081104948628658959929979567596624038616740274307714983874292030612615920759066303365771079536100841760755213400160058960749680957184814350176592171832601869097185381286404908041681060294292310202957978700353810942049241926590186790999765815700385361997108674324693096820455216475414830179788875847388408999729269330871379342176398842969884428552921612068760153137033787432590790176465022334636115225265697568117866971547904974714599086723539727218283450210230320712971077112441009499702865833433786934771126521170614048696293709005457526710374857031821729541135296635259017407937778736904095151091314594225761050637915181071166576193529879347076916033703287928329830473905266528567632324154929461103064448912886457075433317562040302552503441568328891203351407366012652779799437200544606491058068279465027837657201982335332886395703957344720940146230245647115937138028944044254439577188775400407137229553456371691971731724540838528087966416631459282102474449965666637381689722791592225356515242329745718953068239615145779783005462611528927020550203562596923422831346009834175955033764081381145809615407472000193763096574218959108452908131983001305000843752804617319371364712467897028867451920266920244194238301475160771297413703479957041950983939385271164366869099143296973390342439602913219393062581286938588859083577049186465399921986495740205898120335876333340585689609505647641244734316390447975901142925171248232181045296955910565401336021676683805433609527955994348278952605785632325730226725052764655973611106874126231308855852108975085871786868314133573948245166760773042434331921684138577714883367999319856978616777786380490518728549246754685414507347002348133482543027967773830324211077753003863126776777311713002186773952278819330836659423371212261394847752932357280721592045645492298220006997936800120168298159811847478779408006512173231446174372370713765071878759104396972083513053553077237039164855064472921582240889023932043611301949900131250657853179190186971631105874366736261060069258231539504608057026115162899826117634593488149005155464175886397139970868580136911854704561277774184958051093222529584906816864839899344549873649139306307496080138319977835167031862173711784853366478304781044950895518122978021461455989850094425925587699472698277991516973123525687119915865765136259733244115022339531918045807534360984676193150634610286921029223029629760690414305095879391702978331667419257725549455739032374501567495945646267961852692792938088035996844527556589173518357747088186317083011941116338232792141441573516201878828294863574665279256670392523035166498725002338604430324635437319175237181626260625634269016237850651893164824916720818997481827895549840496550981096120679979083248504776008601219267170362142779016855306894936798847767023704514714720716009636532049780936732239575406938943057080474104527918458895537362548537805672070418687523413395096296290488691624436000974669233111633235090583470167905327815726003216773128058642808899417790631004655140995448245444145573214071678726733524169954115110862331519376811712290035910977794896128139853011568387851226730552978001518607184079195211739780040791804065294413151776544455358838327417536929410012112503356866413394142046080634448610825237472994546992644300361410307028234101072264520832775068352022063783617770895020860103407960828731116512031383433000443183952817915948015614147450199578039387361677474045676219538370780480992312293866179240701987989823462898250105790631205025360846142348603520960602610633701929394974621654945507683684748636914995249774627535273013184191464335653717613015186513742222977787092012967870840710177116032050085534382610647590618106296473492506042516008758438472130427324638463209687121995482491505084335074200339810588899375519453475239643099749947692379923568276195957786153126459633009205144355255943871075664643414293329530427967367335191847812687218111728059360988804203817714153584357735954481347884681197661113019896790876961591652122944793071268896965627385485947536329093314360681021219116636239775416607040963382505182884654351122035351533391184305501762475225474275567004091029351160645586174985767230780908954205171930603234279442242715166050718889485489544018032332788583445176137367515929062543566339453282203101723179308479654837067043451294373439664144196021318345575781596389556399638433566470493023168738628937950343813113698907738900873662273488132854676544889233995322081388004714508841798884751155866372416138988951837866044119695903503184995092932094612797905083367355429204991742189330797717639317605571543281474002818127253186889243983822625602782847666451568380477494395708604562624982014461671588117039862800765267872819277911586839446287643461393540457470902361351506771608250863309899916354423521627568500328457684513720897882888516006990792603396188418927584571612030886201891440353330087573880630023555700121437422986629067912556715522616636420144560660924556422372996025271184278588280673790583247333241985115685526562745726413013709754672989241996490963693589313022012057017098191468167209885027921075564766063673622784127230155036052267113872661321801398835353346262819580927579922010749385778804344201876898675144110029603011526970737807890942928834731190907004299875177076641450478160743059281260185589615615763163103879797205120183138390042501163696107908847881404517155864349545461985630365151237345976204282814382675422419041584194404850435707069143741082914623244757654807629935896812231771886206518872842265255941645974750465453255952018842814127487853649328715520746759979644328676824144192125991293006483154658017335594646321129667140652093087658536102316059667698575505180943637128699471273341566063366966108556810731900673997891016962839514183653337873857119947209806075426185427503742649688606392979469625662588316530328538088018265104455792744260362415473983548108498247768491034458246063303590275328551658240542925504644341262114880260094836340534632071448613984986484949113793254213330977479051791427166901785344744688460777266554598539413022529445896690315646282698145891888277982015955061442191531634991692393140854551781363691862359617895570434584471496364361212879983237596747707535466584763936984830086951053475134625797427315772203981648199556198439606537305479280413394298883878627876239372974399790790024401225921661458518896634550578177417943520522752129354166960144406461341279109730002621832953675678705026360007188749450942521055240057481469157440813099640623135075594259986400121644118469143311597264057850767859374689768576437671908048335506346867111838236900411278010075036274773662509265167577732467630347332798118374649452020035721431750237963123368068013664783503703524561464932833350384223427993831605849388951934769764390070499222837060831735166078199762215495456313524635015404856424636626707515046623561115575641280691414239727133942162347972290529087300814310992653330524715873017184834290016753833887273722453740809134030925076285280809584722579610143475269622110065708687252266936737511294615724571889808856363670174908515952757373506369212670044947590535036784581670175344027486157304897001546525013556244399559866032967204255714707517409673484955717161194008431029223076603827438606019872363017589699551210751727104328953329788751129944686085777134760126635402340374932279266017825241274227821603359239965349361360619018362847340300811926286817314106274067953850291869064335292274999121222337275109232001733183373920979495926325781477931630435599781164642492216686774121357217820860914117630063679460822217577455075697487996140506907261631541563011672999687198772417819816329314448865948516269634707060868970986254251270288061957328339273006920553867611214262962352077863878380389329059973969889336342129264231372404504546270832898757673664897930722697937637514540863810469557551435496785032262227494715453320894102513805931137934089833497866832718598156874781249238569476534546489796849507546386450549564659145842074515148255826392786101392241097215347149607354791628374568274877314634848447167654542232581824793345177510131457268035350762429043841627576580544470549130061480230903694904674072216695858485151009448079654102860652149815836206251333170942941659245425047749764450240269593138227141453803951992814917696481547866866839537453084859080238806136986512133688983014356733858863976499099577501304953872131606361434871231410415992126612370971044797913673082295893275371592894520574705179201117235715546743266276089151755563412265565595052043812051371213976227677597636666856696503357764027856557156443521217259635517921239172329281618791893115651245252252460905742745125948074706780754548222432871160082364054509845732262143859449465450986198387642616391030623608898188888006830367824797333185561961135043249759206534383675327638381043318823862618877429352972487913485035593539621005840061917394027523268732036314369688156376504122312528884425648167387725992213642737683217843841515850341904609857924170997209523885970425346261381450802399853710489937137683612357807144330016230627501063606174927977107135724808444140294246857130992014882231708496182094290851241015718178702685852427361574105565186652360585737866641560823367375677845177126638617027575491018246816516027610084593085828719452203015158705205635206027222840181209702371538297507126970851055199508731980759158374761198990802244535299023304177805765938648735500727481999328421979628724316809101263671695411708109848471302143712212301622056208911826028947977414564673772315921332581402578417038941209884005017233455390940569261852260720864420069595925721956194135606589198647987194506626236371219804762829842379816872862539437339573968897466164426810250922398363541750087024103225913449125680420988341285364096172138089397662907975892983368846039610646484386376141198937867875070794623394820514566574391383726497793486695198803106772425215929815121708455094964130858355952028859664029840281200123193860178126658837927973866849819770161680757106992287822873371476008534488586410717155959061738115107343743003930788748805499196814454806695346780441876271330740339152804951862581725519221524532061223255188502600273345787864464144606728424407281648080196113560683968934772227969103028192139217742653485684193732222781344425989256360465589253784032371531168997798871253773372422133610891846603108475704266511869831580581295392115742967972923415386262014236569370727716784985308467181504959544869695201919670634187210639070299645722951448907709367179680375137386772142136042973546904568416948591041208369690368483982589296540144505287294052880972592892758397786481012746701007712420764961555069479564659442277572727321500911866315561126116854311866940927358147416991162022280492955510202046336819388942623423044812317018107571739247621278990208682611881125008015333885204706567064884015673059057205160640907818838265192299430130421728326735019286003029111400001597625116827468748453985952363822954081876638638809332348236940193485430569336552505179179845434394111410418414732940233961001866621964739994281717558806700737721683939806342448092721680119643728234570399149234549960894746861962523789601676700052499032254962381286473698255066530395954313228393191160230811897734716982745063972623813964856264381456823198552188014816027757641376543733455054561593730153357291489772727392477681378462373424333165347336585216602697190179407398330624640296938547835539750426403161032128123888278259451436548468183265052882415531388093390419058457501886511716429447478330839799925138558742838365948066434497804045757036574505212741761031895034607806227757349565936407533241928077833124257069867108648621385814648761203649516535630611548557066228286583359140564930386586662453960740700643635553621926297012640431973530591468052057091413001274083496122058987055461416808254649608212479754927923873255605934811104739874685739440803866038196994110195463125414108869340096915782144319572550197950255991115896934969896847786302406787715131599993931182626269526714066413230982277909582385168541697813272100299373093844498726963226241646469341318226168298800014196516242440447332567453261560991292219409564871196044555406728266983141301881400648346896446553525742702486485337658743423120825667144676106386238563042034870668767162095633374390939003049382371710058806697687235547238224993049398236741561335273131977509277059110910123631796765568882410037222701489137309255830270811102585934569213182538903716091402283538151022011261356736050753257778324242150366139364707640791669806016475081270113068531566060021537930989152649511554647693985624420620106425586332663224567630135315527162172615032273721892904639426149034676124765774585743620372287513607391413791344482848836488988625314068900970620403761189705335767088881885265337487623871037702124146285442662596208259628921892965074034861952118810757445246979668527170976419194016467581548357902925371086644771324715044971208958423342586516573664677693484743446815668491348208644840950875831518069306802176716357426225729095465523727979286094004319042803563583592252709800962054704409218370827564903200204865521997109941762471078209370649583104493651578844029926447814836355762457622736895264417857605706673579383763313507681129910180377907365740037810875963852425831421153351395226854640425514400260142166135611181940820409198536322057777917578595108283844987929687945521165386089888902535593655795287664666838074332122397755034595915502656866506480919763576288427142748716729787810319093484060102565816064919664003384414083198286252097394115869615606689372319414516941353525549640223690640313264780666675447041984557480187827685102583860449452125405576465786840443232040912060663712677900892998307514518966240155042878442363238831347177613000346501112346290345081549917698533465907637497307983209407611739644831448971254322190804407231193722573513805699910392481736517507297838056765691779990957024139600741367532391419987698171587534607751227816967968351552831395002519869484150746106640167356026311934687688929307266748854002355693255511041903389877748097953089876572273235794567641216139667228835977948824302370759938326079261961685266507412102864146126282342358119855584301830050497890819326604155508354804758044596655341561146203309065817340676171543393617965672301602813142321805679099251138555185968798871375083319167777616266538161694755975631478799517222630962580818089031645175422000663565838980975289270589548212560419241817977811421356124551724302112182876564896272304526380940316331849790689202850034620841887814176237813772726285525149551683416586011410749721966249797528917769042804127105063721756254121486829689379707915060564189975791127027485676346341518663089631001573055452037537842113624491617892596958863487268175282850117005165747603830321418264846120689384535612939951323403233148017479519268429096086232409950661814473959072830450185707575427205183473903949344482840724528615842824775323751117363266433053196635528500717923294351910691578510451523041301535980158275422543201148681152204842379757895669449358567716790357709271260573995378480429847955033983650424989705448445952337226518232311372734455879896076087991600833905950078710019813111335183860840983098028798816755965989983271261095283782474163786839827172766408096759316443921685580120602124228874608973853353427993964746147051925308164780063935444766217953640080580660754720789736697892712318652172664307974200249578372760011319502548024120845426884751598009147830987905411858655608270087419101708096975282488502210008908154128799730605137436023279744450318725965816538872269203450802307257483605610635802681093003240114363127755127913317099235400951903806893791881340780391434158552274598606758484644209814429096700503616282866164860780910582834088681314175767933742049903605962577248689401972735714144765804483489964674976103368367009327931829493233930086355951218111309586804333317380158141843783024031109181175990627938906256565889330982486140735011359764869179010091918968624860627255784640470206973565290796454039890103313824611530385281722359520719182152037068615786854204191418274466756803020773520480215646558218467336237015500720089586493138398564271275119723314318186398958472509278894925427688498652334292259853643169415883926095647695390112557114737625559347840583931518794551751872101661863295709646646984918919064630328470388816406156927970469666802899856114714570781408962656747213788792712820799168074309764510345632260178618439592011461056902762355571009125088812684629069453431624598974861066052385487740151519369898344759330504634381570538049661092551074055799226099466272715266795063682629236471425722572949542851238019192636246338496994787097254813285389339968560903835345997351606660185554276101923680213898308349831055131255523286356581544024880589115870308073579380818776582817764344816944215704956978721609626481633316412315816542004776628268743062047979160899343244260561393693965442686750800229190349294397416817373190531734210734997102601315460289004314990886674795574289037537211829448244071592952299512808352182303283092780191668197357652106555633880330112925739014056828705471558755032076491575455934264102792343690438897294115372766028035700504068170327007440038546051336838637735388796774834787614731020908851337123330918436251603103564013488569753334276456864392704825065485366799853067819261778534365421309946835477074884612679236141356816026007838112786221954750648133715530896143855678261252981052363670017636027373582140904874054869726114035499343393471477474362282752092361676812989329559312843730154012244715792693218451897423626145666601785185438698943973417581118208351490185749235608073991057031026234419516400799226581047992679065509134485487098019575684823513936811977301155257590307340678088748786567067358431934885242168304367409129855298271458759063713126492124932771973756684312843628540608546106878930741755141827061034229697153179285901849369301864793132781181696778041984386990986017242212181291618239317786662374163451578486806386483183134812574718737907447429286071134518712761526216039206480763827408036232931016446917166940418527551716257510039303639252278994356277707512535355430903835765182998018109717130649087722195314071140804327136647585384772555006007136742500041516342384261876423443726930735169646614059291204750699738770700104253032781391084288392981038680691260488354306074282581738997791296565811691211551731242073933393887633750827267468883207763140560251981126389109424450903201372342256239258785957948397733066503063045000419814926117130731046630938078755877639285376622130634689728246620573072564020051890651195201001758309810539209927288111229409278959309683323476097661586081046389978417250359443109959343591529323763671838713575504103342262541796859839463095819634466819613157586405474010328734245501924126300482241224885643039038392623625290667435177363673840696311027061560314916753120377380155130978665135083723172251420539608874473378264189365177672317765245681759427347105037925138707765834769496809240971349980304341030260945957815985926536613965198580825360140793646916872018452681507793494550502985960682733364005648482936131999532710130464604032509551749066020544661528551230583502312280635505823103970686725471750057112176428867831238620812055271727464121584433728373422748854199995301059942596630063329625613931624316752652742375956053355831449648304266024317238479568778153955393699936583810144375242861017026714601631491305391231411324470316344953506477547210921802362606877907953798720301040390268546877722743333119536362296688415004774113431923203789998194872276427773408717271098100331083884754629815570891037738916843853244373914817056844459544718973372574314661563639473682995666949827083143527384431901666296715335300838057457432264496244962047695583782915422451219374103817562027481830595050288448807875821068915002223531470156749449730209723013360281784285092636539192614936013696451421378370214535380878870246951830361204761723967772421090993171252045211039960493808395004378166692302020540724077408676242982008875008347198565043772712576951646469333870810068887234911434801377766148221449002876828450609206773505450075649955009548265932367793631224331171788892670606684575057610276099883920959506281610444401561998032493175631656974022765492498028291366863826400822628982806010913959661896355523444448960991167813188471225670182866938876535324144485175679985262169066362202217907484983974574040657695356481274208144872490587779903679167029805667290449515918422253532846117532665598842059328277950533532422720814686474280563243130430300348366580248986784927483781794320201796113882483477242592355527554555769368741461047422967340794831181857191143103798477605048377060725112030395646833688567219878875398433854445106587481760904904999875469107081115312773496164879803566563659208116977025256537715166865388968547584956827148717074666508227694506133761995426013397116679744474281167000128414955085931888918576467288371296219314579445959481853832664778194579179563495047513382151765376888187027110304012475473828000311201504220047239444394425253855649200959609681890474535748675783830431856337109067240182465845212185372677983445111467398483625592878168089099657355384658327320805823729405362075924526378537474791550985172516970854906730308340691506991461951201139123457419225080701660633335525901278491807726709075658208334783939475467149307397558018641013245795223187645341170760894419183560997184564466287683165992849199080353321912008359865168622817229281387006219683441677682381873635603648355453277685656557982215845383670804494172659510712526712650123128987201818117246039975178663324327207986461008361462383465485765435699079027129253975601985217745301770032731995552052212693393232618989088724261929759137034567036290149232586838683000886803962816053612779761988672867796486608478981273630759269779495783421594826723645573222335866700196813941551586586262262498774154536731808164567911722668704893226588669298925434897195363924537822749153755570535474281219558374405200639827987864188202530323259463024927309486875382923740466223453219201937156289230431053644936595851040587423309050750044792524748575176578402157431928978677256691870163154836447879764229668879487025156647262824125885035898472397275181806114953633805944979548974578589729582613827287935571587428518967449296805752270094704386212603381506934824675395766263167863211090484169246238172361436348588899237479660892537823016386934856993843722390142830205127730994939939362632575862984749556129747267169585106289246321593547987972494918214543908922655608159542163559756596444143284527486883927800083744405388000312243748212487412979409317631790066719960998348847314178749133655467931416316488431756609660987878649165093482044899588927736711933749493437148601514042435635502003466500995969861618406209372753860151478870819674346772094447275266622285882041068901183167202773771586915174183519907953049186940657639922561034767606173861147943609730219288322522736142254858580119245100489328976620392630237309475037007481595790171428120384525667968070227224080901941269988780428538343135672586744349376804326918441138893183697499838783803839324601051972998852012681590136074854144159226367846866263991360830463687926190854543754675152204266757718616963985446124829823897808592778796055852103910571312973314073149810430980751812948074814768325338460583741030617062040897885240863423596174140660741081898161836284807584858501474392044275958003518591614747546426394498329832413630257127127508446174199830778181286393478874640995519792974738520862209815364886907504515118817133691168886288462988991844791268015778150182960837629315322829437857856196717530969473556058513040987090325183856429007516430882397634519929786948625569003539898986236926121872681171740672056982565379179314771025436454912453170269288065910476065677958603196104031586528744244360794835535539571411403112358196943183375518377816773481013679981847198628111580102489430395479855015864571719411124545791994830274727003329859756137646119669463264228711691439196450247525317031605644590833365886600361299114647856447361109167248277437445015699522812973085487945657822963791390620407052687722287215163734510818390015333444589538729038923602992265612539687295602533582432257562381956962932460954656756117216790244973670310924014017588753742150957405689225843834533384738681232019115320353962571931257851343734383882944448222953331212524368617861949356278426696229616893147923307459294661894043270669163597632340484139961875099100324610571636535141461047680761775972210426396545493356362594757866930409270267301994853038406578454859432438955734956821462034356721727343901414105447514977699217787776681979345037915391639116631615554470186330227153540549832512792436599211672622851083153258875787804624548897043507441642675093869110979349571159300390316467050446470545283816419669493919287273491361430317521399907277104906623901843836818894333456056900660422017047447559137298063208559287143869728688838052878891098502219009677742078529469180597656791480769048044853235549492167338300392035436513529251696398264598802021565656427780509571719886733768759867512191787717003461337540489433106543698997103149877581654049687746800080971227439702720357160109863819535778626443826499641340229345112918697036513422163207975646128744473557198588137847545226510075250997753010864543641195816033037148852212888322533765986220823916814890661650649112382910122721584719401605506124633803030566572537876110127157170990442563404071788824200734409012049957417084162340906967453654625429869587964032712816905540237609307980549177264281547988651092497506375358490628126811412063751543895940369875773171038710382348040019601344201037070307459469109678243942446065982941456414983428293904604582847935524850226334746322783845265646870604325374114209719774605874914592607709008501143021424494866705409468273581127994922411855139013529627420040937545316699675724570812735360189975872558204543427517304008683930638707754720252800775232613750986883534381292750974335250472445547733591643331764016353494381551769162560634204095770816936331773115251357617612023531543230643639211310042252689921079795291429381867805831411505460247374156969013217951267694361854961790104468087292658620282225339785827844444102774491976373023404529218922354552809743842133041490035336246449345951777322965105712769487143631149472760194382879832283358549786262304878136038127220776183985390432041752989986679456106043899580416632028130292598040010440461560451885340780789904416304074784898928485001360202581439024136627074410786936004787912752935933953580808466423772583287932224214080625985269310610599949382317279080391180431555802376801890384960662315848279440089682430274780725011195800167638297855823583660807855429537517917424391875302193487448439005911834905463935587679849314038157056305898617218853804483538283991818699177810937763265517793394836566555669663460536374911291390934718028478663738129655343201273786971548691416252977335032818260661797101424453913023091059172646007774737956021988214993339208968745888894335352722946586709210840960638987377635946729774607490636825523587444787248614108608423937361535464358781747214452154501171253068026373681199872435910813015538696322898411876715404259359320336408215425340302018221862540536669604297730425153922887417707492798014926028580983101974822896248896810852897056542399986411093180225377031632778670911973192126957330888576379028767532694711866380475119479698185206948745886374071369206321258653739733892440318172581875850822953183988059105184981265093007075041599047757777694243282327777489078241399919942635265489730433051222105342474664402331272830421511841456777701292319220526939259597956757984029539657767067639348099451875702401034174086163013530242296990732712622161483389917744276947150134650308852374182530927182407249654086628908792575682109274338268961564833571929850381170365405608104807968976207887571567955290582841629906376098969211645471942388212533570624420661653017625724164006659003549572710302348955283707055747851047955814530602011878278187760019095284685434479741114531711418973062197987002158922590332801460505660313758701347028467959656181116393992381695630559350565826842159871143085467854162113868736811670678456236298943316200797833310517933802807530413287514683177067959264547265643154947543495381030656107796481926348226829276267368752821028317480967406467409048832061409390425979552333159825943658046627117444791933098621374365315113944225461507902586288405183392743112769190712459878347465847089429559232683048117760702892472966660869188951813698830232828418299286894552989237517877173572127982988062140633573438343354764399590072362828082762306169605269262708817829151977326076870658701966127300717094056418462674983695296152625377614381207428428380670539370974841064281361763638369321282085680677165666367495751153682772861188602463800188088201456806912734483433652730091576649114757285040138003307614634032965977763769169665688987250522436948576727336016781463120507934067023204665228912913118426655658228040066279984198848430714447287724001374629116176160224529822085983449097122879164629569571642199364458138527576978447441974241240646988063841564631921456963620110202760994783212805371983781527145330127922267395492822462598434687415170802210841352932078708723240161836951566018407010080934678107829908936082611110813650080903714284862071706760081315853418225899225771812200998937571650646343521687102203843265951428493597803131651765401418589873288312691949695586924483570062498789308809669055832886481140322088978107072648356861953584137168476425262199690275692787119864547126995247931304921830319192510203499666637990524940776942504382883685448961348335514629856461252209098572618876859311523216896251983238195564374294523034032241623415575530816810305141695669408219625432024931562409045570236967791076666052157739637158661726045443626762657021614131102342695236484920749309960347901027396967925471884865354917655372460729339662002437185992157217358358751696470680539175194415767804207584238559002345974547432219112557944621764323562194919867141751833070538776215802760921942293285613260956726864124135783850075126448224990669669304448415437093900541240229095088404976882928971490315011646492263387933572359430037553726853070307306466602649607159999947930198863651701598235958033483405934369542768432793450506323199520840215734906886300251174988116910572971826042513350446698413730061688053542153706363105543349475646934020858335195966699112660673960075188516043176605450666019624556167323356137923917842879941904108568586490486667113206160396574721562608807832508694869802434712378436623788134069373825943656653758038454611371421257250422073195138766355400722296656442200636159149777548610092121540821271911730998763706276260621921748262795753329634528616664428369162979003993502297569689402938265798088881583437405668702807932566795434077229587216912698461662632269400783155870395127626224482329255094323078196286325943280916247998992392428241393405115933692970121563517749842256373282117005099008542642055906578490228858300359484532405182628950097811747739775489219078405525774333846301210507184944177455499385270478934102525675893168342891691386569535273598318294359764973518520560143047745680694822812432981017743773390102176629589419942520616958685590950994961139163110968018639170578039150567442234809255620293353575795683547250019147876634549425301332635492782796465272069613164075542788465862332212044715252406753616941188840271775551309297893294833472342845271759609339863176912786851363964537933240581250188126718915275933856004296062762233469214470624779957336405717773516847520590242222603247971365825698808858071826574552055193717884935123850544706892993728496728826330558253001662576589891899424249088379385193631702877662517468342456501966515123932954830788621330165544580381124722624163610167042618974464675898202361565973856275875631939078940542358960735708403471164884747360213337487468040825890378390356225012635337445871017050371235738480786220346975553486669235288282325427650145361749983943980357609988808766619569926805993564671580242278467496598556337772433894701629026123006251702591740210983227609059664226546278724010682500557339498484223779882223968539610481203016791818253398872515528639685090124838596135167664085320606051990264969464452617034882221415922035778090352737080204516714633421236323976594324235933326861047151121323898028481140076252964019228626826337041923993033445172863662355148316597572464895066609034065644195950542896773400689036638184953921235358593172032098285697560628761500703545343894652075358326553707468344562663572447954603967487683394945589144427117485831529606891623623061972460882742330247417147951810487940757161382343746197938924108586784881196533103311787226706968182117496942786605118033797074172474527901275996078514292481219217350496828721419870699393899663417252733801267990235915976201357921863801136104256308740312850936283398401152120427915285585355587967518253029613954509834704140268987377353676726907825795127789682069646466470560286314072970977550409510315307792369534881989263730985248134019658517631094268195358265138196637814743522421086668760736790684987739275407582491596460784589780337304370730471694846072792615903063972886518789730107232589820313159553783191603344704871518455142994172831939261855701955046228702891398175448820684500057237626748048730887122505115732611670645040183444204507168461577439706503330060497293057083204402670680344610417294096974882878324882878500118084273335151457667197895881485317503470845648975276574676809756562094522775277820492045394509174072320551743292912359883886669713790226825251158602792735190046531005234012622653800337926741888811132860919039647647697844006727039142455723720708792069915750437147554128767728176477057237820531593403686220613707952132358090086539022518322264274792795459407005554005686717361508391346656703364298445922210244095989126431679175677302496011543882366528548174958646979836932322365748920415634520150167798752365195218236725444337374185587160263988400926928495025821835127986852958726981027753298498944788964994882514480540390284670074167451223971312002659892528320516602900919223859155087971424511405033879924692300029344047871395580452721149693703856557041836668305450670828821050316980002348761239130511002202579889851928307600858961655712370823934425575095658553273199489876361604662250940364791531832346099216134500956329918586577806637006187608073623265712536474998355703360005907166786216688914590866107693838780872267349657075183068586633071794951098309559888994107331523213662588946730254150157863373771444393229524194356388394559690969614387325773846252525072708659202477218696987146859388157767870820580612550266614586814077488420824826783327553949091137572722539315182088436945980674445820481732796476603182911698687676903885404242042188393199139137124043094695618896288443623643043080394147758241003572684609545686783775150336513152489517307641348189129671808089379408976197851265152264547873879980391335998936981038646943711315377034245107268614793165002437914061459237642375776773142567440532258455846782164641792587141467797440153732272917875971704601122267795355346712155733973956161401982564424576551947439206281807889745769158220460680031211587466515062582871737998169081901135639392290326131471588076968948918409691869181663969990117759470008884506434529678721156108897166725460994739622670907008951586613907837961271062394543494097047068462130506511316136980920285356783833486373836736016848705391377983081955261723623801404735844114218124144053482142978463833470901418953581123302628639225219974308648154217688219579079727464293662399078415284267542548187641952211903135478823758699390820626294229675489359948848962991987357767481648183916702525312579262679423173318038527434290480370694806978275116467330462894832543594021834608818935389777608976852622646983600510179773528185949453236396916541301045136971415147050372934897833942429040807488665853011005072195237224440412465166843579028334107924235875655997581289789159875169809997705132989640424976619872000810114310167447161202109936256525996911473509237205940860478146638787264004726779348749013564998188467262958129596973929622822941319932472171014361696758471772625930624523496163332554191625375510848971589640830312542520169990367355854273849342745969738928969392650660142129296117498235079731822592745645739292323203176126987045391791470978893542043849463981026934782283876522522851452563289785218521980982629076056223581046786912774715258519116475057582949667556367023200900256047226140123286316113528220040463173338722333037701414021537767181383827935802969095796193796865716771408049043526883403544279564405093692015566253162057740514520841209337041009052254035241595745411781510436368435769927247789443441015682971697027958974087147873633030441059103716518270840742940212286425769656433875183380900055186821730545165060964403723541715947554841667765641252469704998764561164533835168531525875244440027860780837292621512631601799153753124670368981899375891454708390628447919968214734117498796853974744750772447885819927298494175221928298118818723402815632813767007912918819873599231186212231637645607703868971602330867171213931100926241427893034851519834472256662302017354524439486001530976377198752013113667457313399713826715867528408745957097543793871929784208107994209953240995232183370685194260463864970344954735451761373406371853826987597058119510058548138039459487144846737583113765090063143810036930047541366782590390944657552489741209201842825475313597448071569409298363795015728453691110394941227784000373305659979871901376680493089652470911908305349728967112691757441010360897555845054281911443935542889939693695256100698966409911309336945791743921029821210335315168209194129244952320264637119117681673874724259205033682663424460174691282206803552047764571082162719540601378412948260342509519332469671152006218584593661336664491502571187965446088659685529296192630676676719043147856800081250942209234268547558687772149364495262961461778131684290146608615142303102847887400653324690701644010195992235994595245470337349309398654703864909203966207587822285079312696015136226068026497146465814361776502019581478654091863085610083471496787136319471935264982362629357623437743435092080999885961432350806229663922979848688032981880846922468449686324852075056793137720437989368167606850944810128841678246999236315161564630741625866286327960784292145322155428846401892201594491608396355182228041572779263946682334752377088011756941747697442170674829478026662478214901542139643449431324629702330730131188981594170467664085433695542758867366394958201486082100276146148021885605568749556953629101551232497461158326325547278511517005254676843528962217121952758270039766108801157679360908133899208246333253363524175087453672236277167415373708296034212809007276168699118541690307780696158288845325623258236208734455816373904303854041613701539313951835602968473043645282119626470990081625867545459161437247183382175176005778457773889342929046042329571725733156013710343106259162047143010812227452903608089396155697941885407202059506047658973321958326777004816997165688272202052230984715600538314599362071818863410028622094496682604919025152216065291083785253201903684039143805534853021754801924159530039574890949790334128040895946738111517869484825732746902988110932065007696767225853410208777993682175607353886183445683459373662501017699829416011618460573347146936417815415473167301474330143664144635835433072614410052206846691655555357816973600676971671155773113934142697890298749879386728367292767065356471926644071149122154397991317441448231408196704152211428236745049900942042331152747252307761927904529389972375539950012769296625988473773477540674658746563265063744502439763697090410888301300955568363178462217025837857500697824027566140590096056588365531571916876985451061841656559963895888812747774185692330539445324743161657463665814665634559356898568440837034457380482812112621832572454268371892259386336233396262609782118872512878372869181519256736245500612003887393111254527650505401762828716875107575188716466783337848833583496811664345554767467976069094888487198606373582055403626186967900677951926354625229073803146311650403338641767158911949306166510779320205134054715823999213740780859974606029316694052693919164853738404230523503156936950053118010725650629511100188364054362374348640984043238774679775766826874879393372137517034829115425377400655515840953786687687501419657248716453631792362229746271584573008351628901588843804491517364465820773281068221160162425501610592912817563901153736267572927830036126608509862874791902130311381589455328678173099479190897588754175878791653683558977417454645636114838367404099508312059525148277963676250808031269834062160706262668187644603234216545219572101535921428784652154131072120077625345381317109950170552572783191098155245316636469122847861531293565701069330390749292288663060756245763056586079769405736719661216749872387583879275388801580613911630756445105938196102603315623585796720944328607418696373508164914896860255673442719095776912880392831420961445931287102151411056517487887691902653347695312394691479929717920899962478693583147701567144669035747870409857630217740808012154096707996697559034465696841890945031161448002042564298647036748260426261704436297502114284537046416643440375810402531677777182934758426939469740635460016343222747304115292143707603862007027934482066805042351118042942559575194676392559496220963788204384562678865930398968504855725584064654343922387829403951466970272885434108079938113792200662025002679794279894014112299439631111160479351809733242756892103535457034349803815884847785999638897288764178482496092607703973233246128648781229994333702286706470379133655476105549004062094652043403766102260145235721864045386420397741091857047048409419272483320057000125766317150601521174719191577833807577022041858011822219348987389410071253398090266358665652001813511442226282074170560814559342962357524563583788845839528965170768754628822816523710519759466906009199072055976470122508575616139884362187840184299641109625874153225370469994367441661766900416277805530762169497863888270390533129208126888068613368469242071016490434576409978555745506566356353485692568625400617407373806984168637777096775018193247647976770503532555271550421523800238008352180742132702251468822077345795455213724601305055676569616301675707941232845660395587595864721190597194965170228976326048624026676285901852078799730293418415049612411656798984458287871066555362800173205008234470460077197477247625434938048234240527452598814004464970058935790641409325270543403652883305005028289481999320258038871150253037434196844886406913519601223115663899528851894809259541053309102918150343881641267582007135785398759789483641510610227933364616523639113775450490443204101538062340450252223782054050457007070768728939492080205960119383188409860008484307677216598209857528638164202507903476000315274798369140672494737065891584690584260461305724823584748643889007530684385043361095140752660298936108993905069586518925626234317411762988739819577436850668017768533420833727334266097572449610011689948286054689270359118318834954001459111958280430978066037932796711492613111680518019301115862150543856617881267628381747578662441464399997376635916479781313302718512701045237599390953237293739790705523946587325808373480350521015556644590434152214232950993500374577578567777426936891485097066119436227366515776107915453439305544733105573027531859921735391116084250233515088969315472960499020667954445911726271651568787325071421492549768098956519464744881054830410486890014386674304665235772501057186330508890609582685289217858164601941442182400292921123009670168192138890489548605224327917071698974982509258051529440000211215750082461789241445391592215310306476680580544136023377252846071174309681290446152745816318444201858957012099894151915739318136979916892809373573769117000501099798681163183068688814645352777905947243533720341186992882934801147095797196938152924671873491847175385022503806194203950318404052360560709371486795056394680898065922399310172200075086877163864443034469987553886523777153949637392864646939859957961506808721077685955516907078528235149568862777868677581710409328746725459467887386262212360318958733985927978579564807213003780455399260420796969607187918223943843895683332773711156166925359584395617971906493669959563168114622064425211181407343127723186075647521000651336447208334787999955237304271438536369322845094114004916626427049894858880033340639086726058061459054809291151320625617980949971498776464668031300543013233205945415803271063254240707970638659074219497133471582352973085522073008880663758663202021314908814433693420309961331617771137036680065579370781402186793301918367841309410594935312552564383034613355585417963178148222669685708506715694219925247915188336278572019803018660523526368785699072223945569008393598435458519973216488401608650189060472733634416139002337015259756145153720844043941002263544241814976882573888256790466799011032126303186272433455746777423994746817133291410652911416938757213505846357807875561345884974133226197255490675216838675093130998519109449203835188569779997199498177813346726997417987770165862773913666383501417314635260242758683307881449351384275382016421744286564233125508354580954633158624785869399459631957264676245206574752076020854099927462673834234982552205339120036816813244952558751728743136880690549249210331217192844703095976753201530023136829002709441263240413418975906353628281032987858612029880185798836735585301355408109971295941492114816431996814819188692853702310926053807447226081951323763517865602020312495835677704468648502301602549848995272052401564138444231614533652204595245011772582220674119692095162183882858635352828241286070194890593070653280259341938557146087522777063992338283763097599832896085423163057729479072811634164534122057497019422118479553406384602107975103579158263148893300148375965988473972752679984296087745796410278772696421889571089857826478568960965406407197322496130150432983615132271894333255658580315638346851294181322370439909447180621827018432691883491551436416165856075098681538751899876529096988968113902291801020569392656011165249448674991073906791785238667107070708889358695155336158984869735445716018427761466457311215779179954269632847174985938401240723012488174140914441608129304944950102286487910486359170696290495937175498048309439071727910605549828532175510369962926075344215230152777829465078872567350143053323668932996607455457999486277277432862674109498669972107870292349378144442009848643730746646198863919445191456853461159861140483627686611195942076513832304337021177213956992550525028668620066653776339944992047979028494736463398673105369648816933068820163269077228396061993156830451829560456761333783431048871345900657469864851256118480015299510493780973223641641370927140635423348331292885574569929759497335660907159239714287643584915367541413255982296603249389435416063710675546758366703163150181167724753293499186254872696545773480463226889564685991467560823951688381232879634779157038175793770342380666412058163118420075336186292111025485423977838452646963208840245015835392817630765527873131714085823717066901624773066375704089349776462269148601063195532609918608133723934590375620423123770238348803896507936070543959218996652981166634479803757289562851612204803892876397210323761005305280575042188910525054855486324986206781574472400132405736940982687796881116905956654830035201281575733728008965703814005985003721414944289890544809520737056800129366432744652478862563749789458221577195565825297280959251642761636319714942246587177104138984749288080058315706294098315209817272089009110784079718509378960821778628293584439780657091987333512324102973162780918322547912907696823129196605409405789302579237512942298202055938142983715951542526081102860083289350637080210837231286521394070074534067227657309183340857328974616993469960286462480747679364716671016403805139176958658560936485478304401051141716870789761296336107383530489187155002305286917893524790208699561070941211341268079668746581716749160052925566105842578519157186847223083597837037750021170228451267180219213262006044376131514571894979767926422452590463095648854878051206435943311215479946107727110396481017639197277503553697746690646722279492410503649005686650031064462322930063716602871334283129270647269945832597238973803692359618718997380801697390281316646224101843597425745021433816613252072526129847977538943097809356426401070671960011533355255294877054505739781737551387567333255068334575669570650372985975124084638381527398028442587771579762642157075387321283963647633715267401040426012087284490451055219691031126272022571777481537302813349231370694330273398015728133823943503477699708883468014336323253698641949692426430908545778423658275176927433613428103655413564411048006696572744083860989215327007762870901300719005892230990857634460008422156528129778442861400885656835900349504015411207630563749445702713597087834363204953827658097910513878922313237129036123972095813797096115357790798559548912118810454689500048650530163420089077513880753968932746678013475995937391057568838348510117097625213181920359954668534319769601810264673051640272246331028404783355446582489248713594625926408337779610595405717423404009717780247601401600888352579661180347578535089287215090650829389598674543214169331828275100782434759145853631288794341651209676738795272392911673629571024386449023553883956654815458951189881692666147811541476252209475911843171256502761217206783093975265596549687683998930253193555326288166954499709906919683680340623750888072952528899181816065607251992733024012475557131419743535677231747026759423052571179547737691859710419658698861558975045704348201779951387932268687353910561610865601559506115835019376447761957044401771070558343661684757321666609649304386299109339418239235008423814257953222293728939518566336851201427606994270816792457511676014963934444717533867543703870223595837117498044130921339634305106028075367419550775829551515454681682283660095189305256155039260611925033387943916879341605509458635427447649255552640441367886076898221493313681135282965116286544616524697464851825921463022052053898139619919337836334020850940046193941453219515510593968573434098498701833195691613116363987393030639242328275397504629595917695616012011985255940542127551322235362378989099558113635928087821043704074619071829683089594725982201183109962467892261419432768294307161526876437003916834172307656083060941870956225771729623380472184495480837359050525115745700563025347348208655030915947471558478460347275309095978493327644855835623956246186457857775657523937086405338288030592033724422243530776517261407692100012052708099071818516248428089737453557718204677129729985908481283723560380694792011731515256134834370723841255595279335196890930730618689364998051763643726766256310329247131513902693871500929280203920730206079510264446047908118920266036273824200194263348908762359368650991908164483712943429645481894392024955963345342139821270441321027999252288466028565800073380456237274840948492978008755624217995777446267501496480104209084032372182030611820031925245459530005463523734530854571928277176766411447249427168998682502818470721185991727335577576120359956112319320240608454849116963643376719854551845383911041224236072548551589989679067847644467372527341460895296345450832218138984019493319479873303553890245285188925151491516353264235822546875078871754006441644520287149851359582447232260508286936759334266907434393575919429265850506683437153997428570409560682809053395589368893327945696959611466664184545345845162530204241701887772190855602241227723688153587851555697970173511808043192532365511522654882194740177604178644388058697410833765343171606393478714539606219191054182735868092889808619426222530653952135227345481904725915178402589184412679372018031886331146003410385058986953689354582928104724349052091135938469936361481418669942112381917368867969137143644105600950013804144523083290360136705496456723212758890065598144006828279974190128649873942235802921930223996375400347672363500183380033013506127160000559995987329277275735778965865736922861590653100373213133142854403356038177997246869735890117565543869934522939203632314135930007383256449553876574976191588331448481837496708060163378943097524123883004462466142801235469429678530426154202774248217046987395543214267473637287764718048980914640814321768611013917866336327375309458730358830468534748841435794349962101579153757591991272247182879007071360134880992073072805403612757014491844196648436412489174509704376136928581231903586703206738870438248976028981705747618040351135502842809140408420367067217767264370142672549661213338475480273540889840987189753238990873377785117676664098155309336213159916317825975656873603931191225123958067250538363496863967056002020479648942587391770523120729230975066859038276542754877072761714448991078031274856739620655624235571524118415326956823191234078124791266713885561137079567820802615490672907185198364155713826009945110857885234162527197117612939729407785800769980120496466463266440170775739637862169706422375417193589289747882737352258918883177746103653520555877855907265555733958054417908840095971652030568277196243601717165981650586054323505265694896327783899806758688722559645028251388508990339130424476058159500309078027529579261128772085228323759997530986104763488427860008946591069767871436383329222708503954882507223302175312206985894089974915451979819497203831590628289201920203366512594430512019321072821463971977218880030762071209880322622155256255652875492710225845557422354543566516117947052369207844798835184067507479451770037114722436301799094971447104372863129838379767229616320050905444125568786615138249613720876760607270648231591592627773467741448897018704307629774811792870922942342815465386197354472381485563184470045107871705970640566899936141813268047128893138669714713427025465178610412497880753764852777676137222334345593991203578272265817028698546195200790010474664865981439835927135749803749351096658868672397262315583603534358416270229487868441949929133979761477227234543952552209403521747163309451543795714794084857895368653803728469008433327049168959542054842341739305590581985695889857020209110643753427632566942991426818509524755256567160204788443986878964487783351772326362630904597156002348159038919350669798705806838890769608736782427670467569061861836227341185372550363295006554237664471712394761615107479531854566976800774203255756466564212522582227110136368751037997019783382129986741139631292096129907853887442676946915601366344667296247283452490114819831246861301749046608807009033537287339992877125047703108070378035353694038610984161153772562445317245503098744779169695227485846523153206164937206213268871868221762974822749292690589569219380043675566971561855440066944784124399870414713074310585949378276272592961319041624469900479732264173193992513346843319277353843728106074178059419692289699050795160207621227831680581643567521180367629100221375959658005056533605273010396390788985486183587438391109403027885682195994860629586751818781309120994366045531393747261715060075135585803896593321639950032631392154976082468744048497303708165899224208407204463197928739025072228638710641395546913881116442137022532242507554908922846776221298936021304416301874836355772514262178933777993557170873342094221392205220835216197840219343896723986094500989797797331002241558608103370770015087218805305224327487712436074272731548792044390603234033210834429248265156683192624168864786893107249734310224093016315865716705208489487930651404147742096433733610621043813935242172547138487033778656610429145791380430715221905736415956015163802502620737170434139484178736259626502148677825632429107316464496533467328927729067635836687450555032450326542507883031055339823826883296562077396436445102837127728176472658228181199268261254496280483656465339885857453736597951029704329517510736669236077116716908473237531310485481208966514156006299712132166143626648397832255534577005303460242048438092880679068240367228468373929388217814775005847545724419856922714454933626852187456955462440620034870177638814758859110671957631865737584755396586535040073557057193371146994667612988565941916702224041495858009865109619666531306363833687023148429389076401274290644143883935773586793800590158970330770733900356074843289443086033116061344565102405056387946847848879828648594372941905618265443172227717670048213564022224718231312499896122940265479085837747672004409467404610335293897166236266093202868367057408828129037108487102518357876319852262060819507178180244515253536720913001739017502487017026543466911358274893101909896799141134884356192840277371301894758629308021140891541829120527579049599740295493564284246667875022097526017827550869268814437940186565397866835496638250660622103085529357910716937960447505643279629572711418425143204924304359686816786845755623505409940348279910795476052068172811649363652362744128872972877470504430168491092955276931796652086203780059738692826830514560225253725477760120907645428818173038772936061192198229541700324626084937848483709786009642250240549369852772485490091525838600306785896257509994244204108861489509078505661761107649437751435088284054932056264844843653688864021696852886491868692946456901333088633463848537094557690956652311246594280154063078766985420731980103901895319392693315620592024787152638680365655889389809694153889996144185559565195148039620298742493418246413638272092700958592021323963119619288382447993700051449115766418779387915887495730648152832005222886752531384776260321719249420603400907795987507133090105624498007101250707959013828038635518309079299280213497182855551640098522159243611562366002057569451845867591670227088958995304626748381088877489153172157127043077171123863738871779910630788925046115258662846270799552347996697774120334244004400394147660018595969816392601071432877380774221484878472933819809990892941333427867771243087348649438478331424418751989095925327802674594194879702239830883550329274398420084812498042093337508020721359634658362474780858662382403266691527581454862699603864731925119264777615964011424289644436004031832334309471948963469334015752980991469750183698957983768516208164097872384944452685575987405219968558064638592429779691226033333073461334019326541665009790877457247728128450590370137130380670887058079146666484869101268283845472222872345255284030464176361743251863533051405507526350612502238017852275899347812088086209172751399774038800922758019271921599049358888351751276549665696710356915233127605637637766772937856377740132709495730561894906913594266081257655733245418413244664670967950490237966809837662158964685512856930631719999287184190344756530015027435200967040952363317469336058876756037787781561062836763256186603040348913489777950942274351902159817491626317485667947174349572898868313335959466018784305017938309803405848197900921253730783113091823446956530984114260054346759259409468449343814608331073996638398167155820238788929405570156040134387016312223497765462936905792717415988157092176634367879635697786336002020214713731536916141660952434823758000271723383150659390434012147005995642449628859473342867264260240222487527225493919277999978857250232776727640095296528986089542936411499963556938219358340732479926403782893668576371663507579168967700549267950556044735123393112024175907683512211451611597956659112454225923054477269376028412611366381056990887755860914008964986615180153188425952088477029161933448133679917541452084101393592859812583497663177148101727208889048446790415557698594938153043220679687612702036319559102590061225285510458521204736910221390441035416697235159717739350138773932136955984461264100388227210520023939714658163518720197608172304941860060452227282156953199027727931836435064169690228639322944284930072011172468246148491014686314283666747530747244381667285018403974449177224806186121394723883226874816402526996124163254386679056482030511046278476489539748700074034006317967076401630830918405700239896536814968780978428479950019245863960351464483665828030338955871956305444282362657562491889856610014372277330205228178801704125193040364774549212670190338343398147606933760763330509213626667766053393292047804100053969350083181063131447411715802185479809411809643554062910553682067678804498984787955370249866617342159413842057672951330392870912321612110700208992861340692142802513706296113369063824858212999320244517832592571401930310455897633269591438005068032471720270407987689016065955856264196010991023678439033061738924948947616409023835436635565752528956831798535335900257842880476197208582479026839980033113036505644191071410548199022229297825447322468686617087508484842268516484153893697739225481100525231390185334385926234423117045157487998992696287760871560147889887468246969862559201750217510048176005754887538678059981045006582010262971834119958962456706947624764120195909343547296301666978558268296187509842868824458405907544275042367908595798587285485140919108037126418345159312057380227879493958713922774505140812927880934402854149510833171911677438069172179251623417913297036760000766275950594109757624384400662878685402886224866205727053996832291683183793989244989575950457463267492962948539860359659228546742694180839187806617795001755927199612625924654326945355354125683164535948509295495542699043331750549503860501156966145903139891871394467165596599785370456229418235461327915047739983085491570230442179352810509111735270816881099661466696113368366326365321581597373069979193444730440070445253208079270414865987774648542640952190466918518715261780709633039613301799993960717406699840254341627714027168448631544735800243623765367249802716338655337625053801629739858590800028248864361010355449373058195224376459476380176806996299034475257471013904955460308565264963476098062850489266340615259611583373723801880386308484922770678468801101493437977337544318520646111094885597632805688700038605325074065680779531668493590227545537263412236179402453885860288102133257528773667420290847073993965381395745127814260047734514168895166764332568400354781332736213604340860861055828563641512895674444075900968781770048168899077705013465266904794642596038139183510341761938296774855206217182818440969596199621746045793366288417602251761025690830838920272179328193367014744030594508434401872625308344273627900078532745665533593102660805405373909439876270474601262725752342840882389645252194745429319213048258022884254243996945018284316340573265743743111994183965958135814465816612805047259335248474726071379631587929572196095698555300006670321237946596333725097652774221610117253096073615218230217879069448166122222893510109206690243097004183693972028190343683962849160321421862525965407840830283789171674961825772107595786922742674601636300463257142791493755727921687003777570339592330593737064732972993499716893690671491214080973614553452622274528499779480365426096706146316115260201627172336383909646419860912901745224841771236161848237562857294950821754543613167448581560683818944518097389256023554314942090917375988851439491584398443088846089623404688777241351429162251921389943928023477270629425107690387535827813408523119800450139172460442856024725123979587419943488144591257901386421695034977635527106382378937213635728763617848925300156835618212887729886631136864041057952994017664167536311892344455297617080592462131701121927410059783608763577900353123739245593700530867245690799945546696177658570313125182593306550843115145332951288066221305465543113423566514006705588057214651614558084687638202512451073642129922818438152339828072438007061183260724742871414221162242937887683213242883395326642905782972925554714759528799952226713117501184261156336763124399863243394924264769165614357005238676023615827713460436062436884064559116112239425269830841219414924684939596547278066125862045068866154136915992062459355529975018595810350386070289028748276906727833224036115305257951456300444800243349898992535258658030305471912667577871369198654471416730246758207638514253942327909145761312509236913555294812446841945839139846750167866233131452435490530235328677738442042248821985033466350319460123467700021668753789582046748478677855692599238092385161421489423968900468125595904973357638681338296829577836012847500413400268761611962592779961917762791815758517781390700002951196739321345514836255935254320440331451096497136039655764706129098159977726279874368157660367542511074080966097196786496122597165238089123809607251340991434898027754861061957855024696722936572521475831053138021752292139890557596353564610368085548869366219053856367333902961070611027358719465061933183744945471725710967794200538414933887638386205570912039314389059769452900641329530182020828436833731209918450011604002189947944024147235226873977243014431228806676697586231478208683045090170296148237229028363922779562145022746635886158594953422241062451727611603390418625733651317704770273235134753276765378617123525445604675330098578943692148097702472804445809013785576948125561586992061584290854553987593548760855732268225065735296428908556511834411648061498930476523000088501725221029595004753888897803273105649573647648227428590411773312502517635861370430294167713974912181690969314830859705428820396146654025529508784568815702577257714460240253140940676004623436265325853935779698823784505368170870714838393321569265372954059419308609870908318151514998230336667120771208298398694840523178200564526224596033175553449206021792917138731155610378702740571195451284436068371394460033754467798231596555761082502822694271284758982143282631789775363000083625362253196215347506656127220683695756302604548586185494178389395871160750459276269170289424881944671446856226247481054516580154283608054091067277368585285184856837667651377280861442481438201355028875753110048850348565160607738744947081706149562899538303883471830546046673676958012202341233302061045872979005295735362923358334639740812474931428180618631022078078259565573941453106801010954329511312100232350304741121750445958091100928191602773425433119077283213101827321726791500438938074087219548580260269605839364915830761084105076737029081856690845852167818385290161985577555363640326257839510279142127514633573446554099114318978113136938216176330093384862515078887693139428673487703131233980329544750911448603108700990909243788800153971925359164257612909447499920732785842416872985064485153331301494900947304405140287028716410851987975887185090234296584796964638225991296633842014488452813505647180845044848892498975325629808691075248755607281494204264145711344826758631084188241074221967161834303062886011799788725872877515635184951940844627195476330929733709842975322053326408701318174986712411182163640209893945882291005192906185050018894704649981342089442343146197137320933828745023193264412018923226155420760797685063199135909409745901939679712702857347423968970146518925102926491949642268657507666506131643795447790868377847827413819697653460885858712413091514062278326089565835085873607125000961668274561315497081435403479610439864330532645618619997809158800841360351016036669164606863416477109821715659983325120211222012466505257344008944272777283013675608272686016001787596310818065164440451668128153494598586539103790123903259957554901064611382908613457161612253282358507369400683989799142527380424052387729723998426180964574917264820555015703717487799554550104070650668527062256705247020442029939697566953737656669188837683518101533968239962708339424206226634980408146398897436810114369938520693824207516579668569087969300464837196519382175211768575442116830883616353024095823068421599411391486393275791469605513158680593171581109076557115007425798421325531239887516089831349852860297374282732678316342657354926006801450046336674579122017961576765393415979946041130466388835139306711312277031206856912833008124622192337551660997870794513933165315310207556998221869357330723731626545321310297621951544355070360567935807524320750794670400077103176416729875411146153895993882585709778416924424565980086913472156436698834759231087771158867963113497452979900630015145365856520284016309806472927475873502693582649407362344053938591529032756897713616809180004630414719591589106648096727525849442707158828487149400818226146113193098950472335374158777892911754795984992793571670622748184594648325763431782468802255531718912652612480559873701745407341108867309046385896838571803620403915913281170251238053232714390383784027867709068338053944219017297373449557399564599295671225168565714723332133505825706018038884011779061577354914091644255520821064726134990251033633096592313266036006254363955928415658144834696518575569104211298248512494639855530596547585728532016903610466934003695362387322744652286095752884915550518275746736469874513253450382167369138454970640037876692647568376489971603440468066084770686880236367143560540059009530345885328016533086553218168576761724373046014375818271014192784397110259592168901569162239176502796278950917782970527392860828224326269158876722574996066186995349302068478051133875001284351372318688888002596963471885307747801893028240403177397860779377397421761884761484776192288657724800618261173827235756054215764962922285543095949730110613454204392335032597607686757149970419663874032000789439438392785890271126503218382161141813995977979293824610044299470031081915876708141731559256892997414592421094411621046570240995899875286290388066517309499711968869493766226148406613467523449861311164840963909829718891858521397136765426120560593865371220970001294239219280441837932735884454284117972777931340137159031718249988358170041894250039905125542680100755079914166635440010487328996571658899017370252129426214391648188766539669804403088912533218611252579241939561160593382158974483392594882387471630467978170917926119262712715698556711220375855759787223017219203139715718283519672005974311475756782414767543470103374569839370301867464978970126361009466150897126970297289943365472011951463064158662100403925907598719070057735934960901510227904622519743642354917925154460280160523775810284009324213555625461162902096641432218477591928753649065206927707645482774818305103811925168172821435381741133260602395940803292021767655279779983907005363489052640878563319250779002300445956650663473871563615944579759474808231302969147619582429433639471200086664926054199739603334158884041321154046315085519348809162264872342040385283477309581892639824406608793260650560638183833245329218415020092858387329012135896387629809369504180126508352109704000849080581478010825213662753126217147457454398360229313926588216925714294939132913641507404056278179259563112315165682501223415855770284928635396076620277480292342119892498871224951801779983625489810944908450419477887579275640795612421075337882395746526405786915997036725884133705277548347979208246582905514673328383806315823583503444695046446715063414643435629392426222797163515486172072964022057676769687952295178712877391057688337392071330621111533108142219769184316443964159428026054750031320121096956827325651564552996993526951906509538504110912297400302100577123442973906750160858470262433001779576492990146247384689402601247210000155797025046530470595749121358799879376094102150539307674362180726912514713816005378925464386249566073723131408486734721692156344889778130237416039055032835161728229395758296239139827312696680748779828397711717466327540239194905150941023366022002767699199611227819199421058870701947941533487715802383773429326054477407711460788623492238151132610358241365854899977926569555105034596172232813767024142873169430618252329396270067680019723467261301850614294432998791607045793660653349166297231020111409781829969218013751124622284600171719822257908046184123076544968932430351953619488652754036864261274022152037186125010022360902541272720909828713540544480635627932866265645800479896640919408848884424766686256161815028493813717939862020901663478424908152098629742896457783202253600838974276314661078652117122322312947738865495642560896106969469049837266826427663183197139565221740510102810866070262176004675172166655055696103596058982599611034368310917700872940181823597014823561084504620499512829186198015403900830986457774368293376072098108797378586160592058017362086765572846930312833267359776397201264681897710784123911420971596251568742045516156677425872746073600315131653193508926147777352937995961714127716912633925504324606300035182903910825624800390385363808773361681863956629733988685163743074551786031978575430979490175098425815822638337070149347980738129015639131465756071327179185787554350579005428736231076794877878862016399152404871043582335180031688291272771899598596335054161197886828079349827418503289860633871406198506048203849281926090822139466374047776101958742668932072775041995561115821557326824731717791235500332927642436398009228275889714832853553853226122017265191014355578425886723026728163389526187706951560660509496515742246278903640919331605110200935231473212772625279384211086147213749832040955409521400047347354268900509994428971700815891643533986576353596853312056929688023349964140976987856214445424893766644809672318817838822127106088305605248785162683873241839142688259508098609348557545121742616066462156356642105932632976676576311438030924528403700546957028917820458986076437793354825276553490473165233676290308602435508445692271851757065929179231163163635293566009147072209414209712469171794614351456428791867950537674602194090505387130753297739831664091378907854246703168709175180554201014556161866357525922488674355533608747377243871405934121492460440000961409705352108908337410435283078602742826999272491230106510855627600451607497044842729089118487736485379323261969329537611750544637283508744084862467043147034960226900695135459852150156622365519608577110867895909927088153353059919030372490515514277898013349240303590816183444628679378026768280107645513123229011281758751192378512300505840902036479763621258511731598042983283888929796812106687739286917566396162510630178174015246606914648406044744704729816992953523843754140145316140271149106573289270949080834619516901812841602003084435774757531156200024498064753312489010678578019098029577164807904593141690741439069924799688531313757735030442738805771042994132696857345750270235032998728450692775956578976060117403847526666637939596819704428823564334662227272237669773701317494348388952530189951220933783176513952125335938044844409082862078673984689109245503668567423243069705634069367393631627585454327776665591020849228609655541172255714109660243384208439181793168911989353973261487991452055117679152921178525509023312315713203042282310105915053848866689118612430947422868726338515070820782917093388689887194666546728096975503034560625502718845246549544233059205576351654198460418344430321290008814793035484098862938076268505016424461265428627775677440139956047790017909936694053207158837335750703224000992982034973061593532775701124875477241696535558780995909797224777949612013601832408870795696419905050024830365289880272011915057259420369091078402136425398816198549084472094536202008361772509385395510996271271691597713447748601079867273515077534936832548639572276115517025227306259114264462348560965813777989075372423973384841633441279450122828998700780186306771329006083337998493664415098178345893432100595275212942706457922575224717835245649822021813290939874247401257097338335576229163065850156182529088361577875318307370646578921312554255747739789706611005240205212435681767850545942794882399209302642808010571211145533888051804017493292574224471990059886320334797597946122820801986238680087143375698057941756441349522099882554409137060252377465485185353640872262611722157757619931775780029525214004274440809013611538192372854040839092612844780781872768428171480046831878514198883629439674438014409030553982341887890050300428356510793844638065690246435274709982377725508903908009731381123466892956010572974865089752405142018429654794371161387511438745295018877569248637703476050442239512940176923083661066056785858329603041890785258817728701361973025720528039131149877084873578497133440647072659734164884427682755124564567537990861637769195142578103203668692477419843966431417162858957163750965629714400550579139200643638353709858465532413350393656256708693389487337248920932835555182214429692167583382510141427997893463812155524343452802915121152179257905918755684089107111181541852663436809087571924251719263203002876841046870255159364380296654963641636143987311684133841547474551234880314170571636125154902566603047732091395921024320517218255513634884725449681431544180872885199927976752024370629995534696022923946003341509411770755024977653414254793890344688683867896867478777193543749107541652432090717061855578809451989363866082262159376750317877441671547983383201381468322328947708938271185261049499895701625768913686604997716308948268449165309848225005727130496274488805395849287192119884917117801982586990613267362482157709314542933041631384077005675293533835419006162962757192752109307122813400962643055094099458792138794274742708700318703656034663182648887841349115290537996623448397457394841476355590573816580927803778390104913121274605727159132752554891763381639313211343518000919469745032310470739056186212173419046575565598149130899130534047171882680950028145359216516295249099528331164215441110358983457634274009682200104277177644785992175443529774517416345178872738092724027371268771354328184893777254678204000965699718943030227619487848788689890373925049637610390826651171845083021175963167080809041824928791866268252395521138364773868447485728350544615272681523616183378599893518639278325922827711212896506841321935782887148446446502756970158287952122323797734040310457832920922098999108853972471396492550928799914647860976166602254573438426966012556583876480255560547573942709692145810343182041256292498790253580044013155764831648861538307755402470855206094384775491112415002724713369692825547673391280528133579068208980599606017850391264546844552104107105110262022860794814360935316772699480154102870170863476238150783379091047936240740600213978521126617084522017021566851870662408335326773505257103314004568606293194603014275494085515562100892796664262581536639987072788224515979146495964128139003306631158097105852645325379667298608766087490311124874087593616286754343863303213043380243119402770573135825626717498996514563639306975702246123217139458089512139021817952716104500272831293381042499237828838369050896495676814470050791439348568860080407067473390450488119636392362934550978908238863037674115982309530211398120700336390049770468341270651292791562339154693888758647460119745868506117579519848335859853009538633603952403311183920926597188166555809441115604688891156106499718089697732224807725221740849870146081751614224163110242762217184207979072255265003325424076060202918976692762652916632844971503452524829441853462850066571733447833099843366470462472169393756446243178373067448280807865152962723304936319611034580856634806549473882416240979209939478297348580701079599965956327884194691024578230034475202244048408020396553031576219415174910794111940254359482888529275234338218503565523080237257014243336674820333553765125763260414350814726326744713066576805889502997503794404513579139359909100623129772532889888752849651134718236272812557502632803047688098771437819699052053330346427139817201118484054469124830332116999463023496483489430596421263813196782292225027228409380679378828468809514037020141785291993948266759557222160787644395343600739726778357129511206712547682811373124180431009410795804800293376338458143064505170966254229755880522247157374367242466807909116959868780527886547789295758872301117215899877597702890922997567343760884208693032513363219633387996867888171426700336360968917119286504650320131938443463963521041042275437134873649013804534088363591167239069461580247271543126026383042056483888437231310434770872822877186462044136329136669593972272693523601619091717786183011921660087783745887286287925438774405962774391435187745631065185909096674816374500542861494681164350499606191620030312734042207000814088962937462219403985584893889591847046775199007298959210169138620054333290114967324341101585936752262342473870295692380653823425343859789049285606609741211823661205589954303004059217942757139834427570758445800248298710451422136161489539572144103947936237166757420338257688577344707445162501967738297950939091938769636772443163032182692714706783675924529956471239280731583218091256711489435397440251196455422699366682741490013680119168123773940733723556462747443754383778744202645101318428973334776652358199673247946047281383557048631696678805290229647624379936757572810333018173762951419475952327910853976991966231722175198708568956655622939255245991592240672347510961407175340089153896095101395694372628289956945104615372578553300908549016380180084826828191064831886834227519521003128906689353529660588442219040328203781192673860326934146652628674569278647950004508454226950483919633136177167055709231488263996723671002022865892159911702407720507713238193749706450710417524498994538091906667595280738175772198205066991278666115341549479307314201305025540680853995324232535330061544399233426331362713872456937746563967994321926314467992111430612829517105063068817747915813816167909575199189596925201294329689660421040354793709431855454697515879955703349238557785041373408351474037127573493646989965161058445034196272574528746851892844650586155638815062315973789605660709740048283626692391060511923900788937231250219945065065794193222953530326740575943266287220694492780624932237920231646808545970931249147720775436779443535465064128751029248570712522918024446490595636814034064268689288050661599788057469244698855710428682104185279457692534431687557369677480057618410814907052293936069962001721437049610603989583648752674484119974660936461308443313114833494729821428063457614451329219947739670272817319974732696549632242992763193836293030363605050372723124343025844334318781779931971604313927468172908698504683538912758600811078914119357574300225486564201931278762669491125700190399826967069332940826843302957651311823143928104645319598976407781071404140608766521538259545037885605681488251367815266788166153534484372406293918186178792605018023605135243814297367153238868044934734810624766422858077268454116641106514884309740794984730248908965982108870183379264892317170694601916147677188753905361816362537859392309205097977581256201986726997925061213478801841423095271820273354188364693287496791978881041552255196577651192940656718752710742639577312530927539336619591625022028837793762468755483323876246625293889899353257246912276091326791161136039229716150482253434595220548168370559467065240976615721535892330199064528545403810784025958532799919354504875500129549888516070843579478570267378139239856340797559761994827145789540079250947411209644895192287175241821992520470887396158250415006828583876403740224574117432400082914576118939080115247212591952897453631200726852954912306211747059918686826147629586175593108040296516878872972264794570074631840775964058599686122302004675794661652636179841060100287187872445866659029725761795688885346188507072186169054756103177208199641284226978601019871289376838650501181406183083319708590147132859019484303883349022448364941824221555074613791741318979072201780636890394465055572627279182512427129050739445191904993328749796240148009271426016901353785258647891204596060052611215105592541993677992473529245067683588741836548996677127483213646578456615682681948993952666088750443896632934774272771425904056527574014266391467183742141282782218434844360386344802590689189611183125007151625028625266738118140663595588592547371790070569943778973877584847869896507844791523769133054988235492946374727267352567983013860154860960540853045694782904650870848336405795328105267770301576192855503942656642550459471773976260528321827227956303636230130703541802145394459870702252396474799254954095431327815002309381639397479086137277353591900187173267695518351374223050398530608766255379621931331816517008934443874483663424377391713124506130539470154275028581817111697706151245007129578983885019763192530704914964221302252396420885879201591858030956552916922306446298794656813444987226371604004289367661301468903333266726866413027792743686385655853891208751429133896502321736285626117168930920712405593556820198097643870175469117278096237669567260103442250319904263260272983571394202443648667464613632634445119301425890922478793441695472131252535316178082891155152426941674235724715947674366901166489469410372525796925562475604022734217827903519972933078781744309456945374986596761087494234469394679081050775928986227151505340346591818111502539004765463211229386234654063760891112227942520906914968539659601626680146221022933876964551128048240303811614570343052332337026852959613124392772008259757649253826241554541233947416768914634104096197776182230784801793742390265724078935422889992716099023492621667322296151140435143120594140498369142064959508390727888028212822721320612980504788058255110712104459029812270443565959655558114268417803444739340290567461650413055238979348309663802898647261444895881441052747029788296435965387913719852058299101225492165705752338387536232786132870218194686067068149253495605711077608960614006960408198963155314587808440666806097956140484529460419135207928647668551476541989039800869914815450271824753421453762708370147733524235978011074353113278579245056301337815870981676737819605359269909101485404137200227141404583380131556589386802438928965053430149954574866932499105156784833491679177866826074730735700622403818243716929618559613434341813948549199820106882123108469095890043615809434789254809482551376045163618330328799541133705263644670238567903298202608982116134577933210491767092884284733300871799402888741172503431904025856774708629318246082973449724734596650707005097962978352930691305227919795403979524307556311203733002233313853706607583263190341897761872681814283069621352493615933389980575188249428152996337158555056208774268309805865890545712774570101058642797201671820226965304516706040940480588269198602952970488614246992399472062964983326512389989186398124937302829682089331549627992454363936251394334081068892469538474411755648630168870242851007611002961487277214680141896972605395859045013117992676148554281647836227004311814898472426908565828902609773643122806072611662275854701244230020481809353557835606081108666659512434828752737602936746835560454979905293363767715770795578699783730566902425556982777454160942045761324545923934766719497816941810710770367190242611414155841947209190336920694625068700850182608696566271032557679870870849658897126421995041491942156165229028261497319287613500006096658817145604587596692231665875785917661057226911300667890016640902637067141630256663021396235793055362849562269139228827204565959407584247262086692005440054778174578343716617154877949229540606397876352833627466440633462988066960720836532232798544639924136715325859604487513106510962683141630805431006833681199277087882142518070796254056194606424414942710298903955884215142065625160486538630975246462844556564704235707019085126070389041072340844620455650038959799486825675825344242392283736699956063996674814415586817803151209350988273725510934462094661491728915530310674010739805917163101766092222619388460736259115881468507453409521328402178176127374513043132903734985450609560636846146559969515159083204329084752973976196409927540945604274522864523018267849363693016107050410347189998828398820778409259047212798839974244668087792764522414774084084281230273152509920050386112344941323468215966920021040830730432007431771953046749546264244619011883346735914219809327350497648084211563914080815866560267681724774758771550772591905683280184483314879063831379832683423753635139735929292497962067572390981599464484411871479183099749956843801550619869394457972641438336298996937665354657981049647751824621252248751421193188913735225786655018122532603533781648558864948978040244675840608615892986409116586837528777643617368782224459700722008161207590604101273284302200497724196358046463703191950511542863581839055990169872124372854726355252676518946125083067543057951938499678551535600694886483878278778942284016754281819637028833325206975047438962756455005417311899918809299093093128463476288289345413111487853681934042780580461864460986376074118341401856299304466916725816821173862807783447515921223464815116410511125630955439973310824669040383881585328801675614238520879905895481938634095326884519653629967405859877372466596615979944247487925992990062243973251031344932929858653636348625279352600614576955224566791219709156214703144897313789942692067568093519260109243753407951516729888811877072301659262865510850644356198132879322244810255335084066804256096989785756472059708645134092421480558123713802071598493935120744175802938476607205718599962200871772651655351768458458014597896128672072575232067645543571720184869416087288971308814670314235740104852393641336570148168021916958196708572692652176935842828403132061159588635209066659350340858643754582625388459028717484333764621732354951870520110441896202097996695006597736976581979848850379192530196190043052908532890144766783543689544086584986583386432163104272142207919911897613955140429173983307529790507929108295905798443611171565686153210822725046738723778599733362251357677888317930542185420551001666273083109047516381808248126673404381179190944626255929100060159407264195242631630652478581176116558334257646227463649370011839925609877432790588719718303393217742580006179505286558937296278851449143462290069984882201142735400361080625398828574640889304783192279393089902078113090026204800940367433747798067759301760477539438527101877652508634409491060939779812270915286097085474151099426172327620631991384180793766151863491221992960602747263768871197189239961872954785529566370843926226493543392616951906808306503982440079426846589221661653171359732348690687828521967226195410990505463554691555046732269136588283362604221112023180722281509333711594395345784717768330341288478455896208008834444844869012574733813249217033054000075807612784641446662825799168733536717400379687853498549762080367965616157733318460782915012355728608805428305359782962494467918554230070347863357684993272735945706176278947884953630878699149975348481976970857977864307545541503006511787852313970161177845338803162117323006376612144881335874432644556857367902887090379817357075404137219177295838477976219618840047625525477421044225007439586007754570872828576984150122739093582347200426140410596153865510378834520593717315629797802614109948397837359165416327291741804968487595026280245256693713439185951154265800215947754523206541921833186063279259136071514955366437844805869737592183213714837836270731400518182023774055718352832493887658802663742364023375945508066070349173736199089589831802392704319457686825588403215981149966770639545453033783424477935790881127891650647618732827277058954714701801301472190653801377737602798054027135453353989417034370033506764457483933608004116963582497057191913340307356534405534793533306713116261746092165357215359491397540757320157186295315462556760700529538745896810126319471002507788051572129837888501960729162143335778751608353282313814368711441876879771102651105704096422225459133922779657709464857374763247634689108206890030090766257849711212845362831908547341195325975139054843751745542997521057355697033314790398891768167175049568374863512447552530359580749882924884056568705104564513522780939210601375571167472665811626312168930559596598882997772255746871435186232277885078856861029794812892538089256487519843084085174597086767942215905515901184582312109583525543429179189357100620163204029106246930410897504003570807276401266951753057539415366807156920996911478857642948880149679079965119055235507969091975724676580957332278807588580215536273025555492763094279564137194487774481721800776356079799117660026778403062285044256405142464140770189570203606305182177112512748939022777220412281804437935911924789312815318388258848184293583431989827589218806163404449627877205184529249398875867117095434737985658717721631652252091835522364513557416895226370982560920407936915064932444422077488824446669977866513909998866386519572517124319510053466859155121223986001247241483491859560332111215334836870800307101071806157529062216308099208882027182034533393506694295797490082730148232730949023485451854569154870837277341022524058329974946644342837057129075086941506942983617929726213391465964557838548344841494499262004031881352980865238549398411903606517657224860674434970966564468900718501969295411725729261885035721935589413778191816314566167566721269044291346560694967904317293638981132945170175775272263545611081495748772203305351452586503181384272285109280812026321882500730747071640416694678403546140107899074879973330561962242572711157835237939238754290479403275332204919554446310383145361715007321173253251806071898573979342616198997117249150726910078989778588480572022059146013450954328831128417813367297576088676222689009350749198193224700274169254117488410371061561057032953946611905367226437082385862415782211322224511980840955133415723507580802757750810589114042306735444743468715054083208802011371008310336796434952240407089796299191840182258685493578855374460781265334188505870140339777122809948955163269710991397388393859561565758604198396872596882495432770331037965830913092410273702878539644197004031236774556395622171127918985603467902140434515941479795611632181102649854190577183002034111953216438346590424155481539274011672139023528368478387871151920481133116757430191834439193567502435196285928986990330670881998106387661142563234521554578581571264371783144995507362935967559768913507337830475926119132789300716311964927389197147533499395168171223621811310994718534598507482812878676318463621016282600854462992044756828353490789624512851001472798056860747572433154058629004957475299755571709531102815286998846459009192861398169924379104206717983034305038604362249014378247586553614356917493904680069984795046229190636963738662030999352643230173856020030857624121617620802249254331641259725133624901289037686740694716891882517310237106445829054658843561370148995420354325536415727480663248241173142243479390639723080922713709036589247333613965053094430241167390788154321559957519653715336499712091184609334399072068813003252123047710181495017855295438304975328416361878580435635289864590567583001860779378224925744411533837181980248736552617578071363627081274791462999039188655840890734232204132432482829997064454745626660024169485250572286885841735695394365019854676130365336591490655596457229401440296123435864310030287882460512843795693808617083239204397534274562340028893934518120577036741791478160433295707671384447636896971242291242064628668523998448765237114884108168652414001711234462408675737988587465173575339095826784930262031832476248231222818756716069040944865461932624158212828442317705612654307967998089256109636379986292284055228881593442208599807419429534582118183106157227213897858371011593919510953441596036474371677035027789264978883871187426690277880398089477602503977178264648779534468175235459428842882064003926494546737921009566919426595559068925120734682394729015656200864110453015237624159050994735179574996361979905696984403058385692668134419845155348505978222519090885996176815698578964101092863061253006237877841010303207452036257320555542849420822911654219221017921694432539397303971950458280102044713007538030082862942010992653786346711590275254960454969377689795673186456771860650898289646294529475132786929604413212893255062993860737876828006635823228292156398509674755535750623625368603843634159112855351771194485063842898580414994592504004271773713268287769742204038898156242969997623823549059816892608551558811879132057629357493027606765620341443629873579708512838440830280037504141605746893520304821321177483691695551990197757198306423123460332544087545471014219519394715107884845128948455636610431010254217777919522258907242506484738946339769494267307309904076507734637706641850279190615744228598286510295347902933080569699477714646664974015804968533678222231347538937764618471327366938781789558526489578564328362095859067219339668157710303283607568618921397240349507459831030612898307416791712048644761627016213454532069065973260846164410975890301672528031339590432439515396502762979616166404240998434633881256208030827374141820509511099907694967942679174858455412953890200726587420790662901316095310563206011565232075172033646940002168173628334396051122941575356019898602765886081917640580802318683920642336229611972942052597179651370865524856466381940146915653488210863937386510100964215321684515099809075442544725478816024563208529093178356191994487562976424965053962654489857898630513024145951786292267830847486496849702142425933870601494925104558870824939508287716497632602724156960772023942214381839567353980870035050208941836869660897167101705161949773954342637307379226259269538704140064447474748574410405680362669420366325443177954728839059628861105955795747026166131568885228550066256891545007631217330704302479043019019042477678309464364860527271571704356437248596189793671615787284607399127102743775290622346349513565141738192649512635476972201754637677435835406711118337377377205825329833639330914270149071533977428854946043844102906116137495898290883544202131452592613686905967424974908741128633567676490551122108141357427804032209932437708407811104669641804934549192178643169410602775705151312017740577696485386861167623794094964958541534294839770904640319152969759250117361883880695642322681941536911424411134598905179997424796243347069093949739617783634115243789933197986528065077707567768550256386646486421535699519651687601589577372737910924935824454781347965665719939127021687743131406406551575463769470557925979509519066186956421222305859293340628018447930013210188781804259847336230590787080404152505197663957878848172468886893913227835586956205899282069896699940227369823837771716318696223992762523363310098180942702921717002734345402512763694612386193769383228783369458027818988318581633128440521993258308357296352488671561376890536158652161684611556736373826357662817814119892011881979869815198490233235145648410284680642354740296745064437080857173786304435714706441389356746375499955337780796494269746034380020166184406625502070395418805470018752104160281837477176452543900339511290463087921559932901092495193844875818550441765093764160366105511982190093113173365961108422027744302828308732864648547278067168044814320144986478337294213792008990552914725258387466001148115958180695247453539576316194026831228296793768841392517046879726027266845656482564382895052722677448923799842473526845431878649698375230238327921596513115850734233358477081032805313428960195013431389984623195612974238092910878713293033132065216201394787648476978823098154750795233973933566709540817595129668711984763036066368192774518356917888668658357395192256633365001017530299858644059408130176223793557583538437778908186122777287647829596689472117083645959719998736416796682400014688647433872998382802691731531807179336100083568866385583649296974396944149697010599427115784707072197602623715997150220233765473679331886060550489536844956715683609430022294216438978710242465335153638450869929684273032390029726727134794554998054048826699921141185703910373036035394709912670349479875904893477043789785802058293282864579799845869827623639168227897880387393692883818543267241462640974415160535259292221373496141498040370976447676210524466915023955194760756389565856257138048111041632140735571879960272022904483150761956647996280076449476022303575319621719375878213564436442389127589556863122851383697584941149237552589938276857660195546410794216024667061502697994190577206132898171594424532143300336101119805891777048783171646721607336782496279349538436131889167031067279760067368919319431379209672012561248771327071848076817166588366241463642898025263351294318650404694730221007136423318694540800835845234238287283100844825908341929427905808777223777014762453172418321518465417318750703867430124384600094907503162539338777721995804773599698129565852626763649783403957815211968765451054037318784104376215846675071636374776508793719695572234142479997392815541495856851016389797316529787358769708700825625559987510455048416026425297976565043872263926939544230117220555656027943343383546575390939122188307617753137918352384158684569349399359049970973386913254953554447665674027758477984706841328008085943039834504854066487929956059196364458634322146638183433876530141563465237232676200857386090530002214348015353232793979854958998067940549216059450877607518229518825183430089438384341830668381670289992067423441350504525288019384001189417495439113448090536675057838057426567245874389725976405513970968927900211391023852998702216666957312961933224658102004571945448243127344370270975189805490399510397254354608566878087694858292753771240323191873943732432673594653533575510582770654128047632913907666644144861883937709146998655898023095194617821086622875674747462212579454033520258491334989005442640706266496889289464635348983416643407673871389873723586570671193290004574840406623553015930687955082707275776773353573150621644602664630015831548531447937625433830389701975762311510560361033902856615118747018922750041823804498837001287795303334412538710664866357047865216153673421750099719773040108064973388678437403287353925926998113806474537998028029869416214938252790476644185396221388089039486868885624848133223180878326158187205472964653448179668803949548582718305881520001497311592253380343469290327497489528644818663142138540240636956741214859024429930094541792678447203969003825911601394446090909388953994138209341735572256490946918122478257582599805946596995261893708050047599871944064903701817075914570880494324834681518955388128054691105600525495154514397987888529533524907260371464643552245952604189985282147840069730214896070048197270652480098170022606758539375680474555866266985112727666021297977225675902254131551391357876950199703203181516838210513536427049886932423966848796196312825776345180235354074550233693837063859044157408071057845499847115942517803660312211600041404062394680037989936856689993071747662056436458324222721684467968331458732608921826764178981944265406789646645519428705322646996812894853092538929377189293277308036028606669310579495794497030886579218035726842855015169986740302774056586202187873577462650288032452727290879101062580322621555575476961310876164560132686575727019371492534336210411758371029350268897872968282234283294252564294988495355496872249680210813950272084359121090534071128635221025953207533954575276945795975580637961722977753608544815390048513140284130569171800279030214112607701961222251630381225819130769848198123548558347830746473181383756254334826971375997674126122307091446653480264141829300744843101559573587783049100535060718194165100624662814118324312086474302612526823149637865659481033038792386510110420831628674529221221920407840490440665689685128395952853917005090372535204575149838770803116336589963132825279962644095880980989799765084264425501822506901137565271146020428673476184635013042642245148812374398511559506813599824240326027705903531271582163264347767919362656326822582714339223250511160874022870210978820707077293853596582367165046740470063843407294889926793284812668136519738263596627729274358152336172843295044822596098716312268564313396796446282029581929575573880898084384654602896077582256610387418837775206329040434963430045093222819337235683714923789581542269128407872619488450753127414652410303520622547446950919507148291900489355157772628666170952859957774230251396275537638402015697286993524768076624439932041804830693437744405039514302955370008644257712482062833917576289828609820303189575794936987507209424092209008926091186712636598632166845159453966271257514610476807420880658390769429235309138005970913823058044386101555205251648806338325730998940658581080102245817517881980350333341888605733566683660638995540596208856701510982431306611715887722473809769595651952221693991601831380586135827299900298287714256074499709644569794109717168559817860447094721475771356218993200474214470555923774712404512896395857506555474061173655724055143733241771706935015560093981553094998444307504885730695053793197008434718186857952464603871400065101440978197479012593222295271791878502613800022684454079742279853075225293506079701313298645005484978669219846996191812241973492389369566371181558241191626244222937899017227457978998166527778521331310850485691517019560757775799441186086158453206057733410202271498587580295604766936018202587865232559299219381960877116422303996119641612122311053686045045799429843055581033295031132363082998620311392089141290152699363385962801316519625123007512359323551139814128805600470416069081944484716658136663699046293924358634148366998744916332977950302834415982331976993839503613275219954772928300003670629969971243187859974567463626174302740297170303715824369899685968538729072380687311491916645344936183597989051782419550147213470337992381977457596749445713146477378860261429032473616504988822905521176221045400617169197834644828647597435864154826082517440366197127822458572819784237616675082159031003411438241841756448719760845717883911486381625668496785016072961512647311546738435633048873122430109683889749082724243550559516715397178926956215370291067120824245917180262959728288184828931114855919637826346881522971558111296933766043320789589884749906083602300897158073550335446914686222754899413900027388026508045410846171094993396303374152687619986730047296733591219817072457357963199768920079581115982817362042129916206618257076883531405295057553319243327084358067303071241034963215923622184425293025613883114658379674021375266509718944679959111691493714154090935559262607058697581354905307897140037656764256047666778864047112433914382443438272994805797908909656661306741541659547105005510848236098356790503140963325677673648350653305538229496713121563834809511617520110167214818905540661010508114115010651417399170247584929143998603441293820973476481934179354634642962268974974403581639200326556246419563919983625231320159783410229128492714852095482244785943660722345732904367659038473235242296312716003039789517211098058358735256646368808350932166666123567600721381379654916671493495980637134945472050677264308065883048040681197182170393672480447117474781502449050294893051680004718422528228218670626910566653205030348507722705493182021815069235995434728955003276576876863172400800854352556703136655603024718238571454069288587270918345637077360331987795653191646679849676747248841533991581694444637193686862556432806942441150800522632947640277318827949648318196992318439184398772952711346414566239032776289978720539374026454213988372013581625334355626252742983316334126517936086679436148883527233815120006638883538974287637791213803407416367765740486595154569681226067310714984413932459330065317373910913345141474483600684638745532029709992830209938076268163129203188616507750081439403033454749433786661312024989441235598256062545042605431370088185842325742459416197374460889077262742982585111155883162256505612894641315267312667433782069025171410381479168230654209840891588757641152416257606278518561034559670151447835043306664580836201216616787155362355846177888448407780035232568517733530579028675479560238824523763227981870532849271108676501495660269751847373078647306172258033545450088351679811081743888664658314078632605766487103555583188429142954625723816204961906237610197041282348337710043766650628427714662424109592203332007224438737579325815135752716071483291268317117595307817467141007184376694208134206113304667975415942806307363083056066036000132512244212740618759394351492768305751737317818796073798898707900048437779500305398383211503406251133162221614979750021003748581982478711021320131781065128608239316815658150107884017986964166491360234662204330807214753788576522873746131022481008580267672142832399223165624701799973183876634551958621692395045234752598602673039681160482099397624719541948371955528987448357881112565614344933358507871088637025305455929023663219495906694515960217557704205681945224958449774302100309333693839073744253759446446360730799238105570287151184633294443651664619360859721408445128455907313547671633092936040950097145723243764768711277306279854884635518034749301224351846794758117034184946593522307681328970460989396956753261676731041671366829727422353563628637765279047698308622197010904011344273226693600379032611762400647427259583665039847647368732731081541934630458970741568079628746409333476581307729981704120451168223879689106473157427103650747982387253019008363810218708648042926062852560529422224778957406514575381092655532866233196130403935538099786925131150714172419498248511652305294578662162819310135373322401141826986588902047483176870777859936671918081047881594398205395336413102888055684256932504719436139396394119945122348405806847263926223041378349578383283038985319407500847699352637620895468717326291292081387238054168820496990439975217404449789709512983858194982930464410071532952850561044950561663186237357661767302383328079542475796514077772149637186899188319430528351440287516025321679921794239346412544454797339724592663558685989474940929140657165905231959593026301391466737678042371651361476483373623477633374912879987602747496540942437615476610962988028285319185326567946316269774968097676115298463759104390660995915102807150235721603072817509120349688325783993577251392129029744730182080721830417162689177455428410503899028677548701397531535674388170312167075495640043136815287500635118033647166010816271010944883202089969253516260261929194186416630345461727379876992059789205597666402669273312794860516970221753680965812253399710976754227706614160824890758699623112568192963938447259169134200550493456627848989619914484098139643064883829893220688714623450191770416729568254582447335849531393285363578197151443041594231544952155546980701535786517276495963316295647548753825262428915716952572238779116008395623561007122413615535278101698859661851388720739893414785750841966229099494037425552762726866109253108548223342444506711026870347671331824128707510843123087966994806983356098817442433863856120539566525362470717356741750991919631279642287635425393272011538086562785689957074628174727386189211586823668385308518866498919965340092622149851711134819504214480190986608327603617265046715468768356156060336781578604427668860140869069745283619885788422389321827370431261049390759436845152869437527837737958664072454762648096424858747523406949410293801953732917566058745304537103278476744869241230965109651092590493024989072621569646397644141685695915673660309639031362063161365206989263696576905565763424678347958716672364851986140717076418872804902769834269144227674999568294254500728656600094544630961958899752280209575820371137711555337731545621223358623789351237528043301665796265110626768577210423665107361917630293475009766805718704481885935501522692159824800217834888161344287740285684215222511822731327967633451591626817705219503627272575896927358063596856896439387527237925517530942310903986365662748968960119961293785272634873762266318758851771747846385992611264920952465496333851362692451201427146581925723120589128659481285261549643616258360542198138866041701323671013929440404916486819170710827008414223814207068487942921140361573414773622003517427619780362842898226734341201578932158513912012312320340379597154248320436049767147266096213558774715649696540517151867768474159800140354401745008839687174704252959104133031126926854619441003269513679449471276640979178662995347886434218723814792419666564294010281537095019507589562178432378194605038782344547534364692157877830394385994561388291434924715582518969655758434290209847853137143650473155173864458508297286106064565007483473108352108304714494983433228347643801982807941681377244723609978860057909039264205447630045647773890690326139702528017657626509830519703110350899463160029270575058265156959510516490842815709325758182196222494475132015732015341376287917172868527127862945044628300426490157714887117146133842994328751223735047500870766614272183366991667349691695024133315206929880458836947861128952891660453953762609690511796943344865856780566460524191790176727363913864101489741765821330984128779412433114305342013390605315133763119197573234992110636928169862074031360724287250350586869896764685391563612981653648909491635690453353009718182006337451015013567585342905855515499310172576731309389025966759236831530577067908240974945229304245230494829276991643088638803147951997412671736182377920117200461129892470268530229408376275796779753513534421559843462271863467983708464548407523042785985872726107249589834193136720299133265522137658363963142713970175453774276418788134118455692502764330979309827174423112454902397327882108985761495684775722534398436905671748656578814485590403970764617950038234900393071602276826451877443857034483839553203108935193970014974542851999106161303078430477143048646398408837331703559229681764326700934651911304569527150092801220616529478395522469108405706467774769365475856313191798727392621952697602819605802589026196974313956660520799798783932977275753133487676688604123929402934927112758199033664541086625651191414253725581632633520918563431441329240821031611310791914678843328508299771261915535422335159942888476856766589390526614144940233954363251823064249513903888221301602263825079340257125161762261560082753386492385671301066307274991593723893929674177447595527938083736813038036353632702453337644381129953379358512737847133618502192192802105466079647104714513069685950919814605991361261024217933603120228218764243274625675822438742251726300847304385718373761544506694066186008985824553550097065151759458250332999409258300367926248584072267852146971376410263903132162068562019766096987905364646783823266593795395254284496729582858829591185203061614401504651703623764105782847262453354580779046800941738241194030026562208317054484159140679606318033628920573761583662797565083564982006741459624981670219619747995586591551216177146788751089520546853620411685519996084326134644838696624349195810530362520804106816281844064109675635220217474166018835551331421608825342786002042576186175310185261277188631065025388163265812261861133945769246794068355833642523781120352904443919214235804241177403510649877013376203828771383979461658183692628942825455363678783727923350106531860716386049310656817863471307015264525406225710449010707069478617064560664079717353783749520536982888910019222517240793066182693418561238433155146568678579243837548439038508054277244798050068760603554106471991303233861847672685894908214388182569905916650639057509796338849767898337103295412684836106763768366808564671482725833155283519632072489910620811174967368866958463536188569119765482794867960936245854864480528988041678346636826796564148452374885142826690312613174977387951359046399403429987610055622258580280007832477144124874396699262044611400483436525157824794863408439394129182598554642013619156026359807216698807762890883604888941040277960431630717644645158161717343821036175777532483838547626622288103482566237756868716858179282013407046391182101629955348982566453047266514352589595293323431383192214500879884816846976512947719166609800364984684990687620262773430211196931480041915463583910362642563412713242120858814610621410585464462250453320573076588417742120717873653194402752305616701038354528740440275102156279627891412508974324758035973796881915506529187142587796509442945340314699109531894878604374024494653007912369495430773264110433598252017246178792200892110070574064004191301088156505157215223814425295129312353883557090857548356813551245612626048132718695510613812672501993691734259704180794620391374939903504194971487988986569317312270542977024694408792113117612925208120376317188274680988760997961085407684793780783489425087986666820659268670534307484458323872351062439959854363834009854002781507376154754998571219602519996465225662129450294907921388777899280367116925236476122965401955786870803206456247963915649259563459358776258459239612084183149157299501242771327557709193554618163483696508718294395654315723970858151985560998539924363942801149576343436459905993094439103503826544373062912147280321139068437394125280516610865564064376821393017720272301025667500140051724062637854905008457465645704967341017181121076669333174988758520703466785617423243131542225014551342323637217450018798005986372286171778334845300833771180441178963150738057029563892227878460626409869707709920900497255268452607859698550134414751587229185967707624393492480785597515409237529085224316940715625332366859240774003779870766904498687350118254558101714904820329480277998563797640372893216842973636860439858727949094567424184798502923662584632588394243360440407757231285104523214250744797251233811496651642752029226221893362881484220012504749469839458285120906702734608940195134871434130666157823404403591530230951699353353996266320606028916059051843005409989621838809214987993872653702087804941631308110794081757976555459556255939719844674634800487878797181240269356839853995492191844066430809954902470833921619864978258905434515679661133043182121494188170340687466532107440570709840464649803870491988888890510717965125026741462265714056411534211514067830430462958102353729765655138670889282937307169995460585706501227004977764202465698949901675200744681030532498304373223435343056679335979626940977692450120399041842674947812855188807148431815606998999375148775663397740375466673812357287707659239055207746062256850316171819119116410939994251136739241708662074547668450759013123337090699524058963646081884703825489197057349800460485478934929157244639114305161115263466336821094610574120867256429592535211400161851010028637430360098216620241932818499860878099074675766053019547675234454575714478687698021430364635108333636663175840549460905594870855629651270412537873419774844248862143950962597159204514617015783443079611119310745121795945990830008489913687892656685087352590723754376948851694104242248029612816933877010363981028830040558609143398270902509321271515607646526788047431961068151839605219512246331117307382584507059480424596618210730420434372231173411222139805004604703529067981223671938022249251933883911517063788929649008156226085501867807750017534132956659967830819846843386621041195182443803337150997791034463888635388957742772793469975742128842541145157597880356420093346831103002480677297134076667768191825434772280632382721733123408228851050795654897722666651402966601479190923531443040034140024547745323364338418966340968053752884747028371137632551688728038138711958292561888481105615766149054485108894193892190192578327208239228191599738758989473316415923252552458655735074384340477766619140071950959652258629794883506066577946676279075755469643696414480642284575941645473338229222341587664094078250034324535514526290891334010468625945275093643541395243874687327243831051268310098480306520256567246250184841215896754225814748348878409947076607780490068151777901499084310913009492551313611712023631231902288808251210604419347378132132239302570652638234819274747712410563974549668700419727074107516436074439974762028617250832576908862673692601177204918248124339936176917289586242612375646147950022306203690557407696782419860473694432590784880809584473855295945805877789730454439193421883944280796977985247799218066883916281325808097817157728344359582797669188268505071955004524846168145922410823364072355992063293030858604252501114026491027737580061800576203280435964955911757213158690003265143460008065677668241322974423322223237004004351996367427256270945988688406582698816299535265324943086849168331937037046644314479297114627118192618794920032996687355581223077075485236437191736674348836953581587226412644375631489711874675225802936367437523124067410164230232247080472222320269287926139505725045748208058783642463720523223252959820450805335920721740807790442035005876107354027671246548428638501980457108251008987333476061019185771180895076371377421912118718346835195412699365287895313819292873254609116622328287535840712705770390415390226921027254918283100581491730661199113342093048858035710751145734206669538791285704653709617197921894199142752578542818490611258478651133231222236403295450910859650441872885276080964349135422172906909868827195662493622706190459966729841064324880897778040354338418631196332929489462415152815163936674173084505143363347907855972087902683470556073863473963299950664689880524103188476958095101414206566298599275784393283907813737113176394513165964834740322743569005253304335121226213916628737732217147967718919444833153561696196136856032284333073211565711325620250252500101800159552199931441041931191064834796280637381578862520298665767016475604240052744819462781989792330235073568660377851744816638230113747341031147410578549229178453539258529460205539115131154678549077998037774943991542924222101239181521303252223991899276882012459263162611155030547637852854131186975956142802394641524045132634436407452940080062148403269034881729183135604172175425322435552110259951995284989745286866160270436895916806769166120092425612275648803110965421026134411795177173921150922894157497264417017242410749199393913539091683716967208347071181148218562724949624870820813798515390587823845452428587591379480762306954105059935801198898057310826258594144779252105547145668233222547264141827858150573963876562975285611535849605921574338338008235353936287657050930781284206569031325178105943708576109922364537979671101020397290829159420447021377730645252624030402150788738747770408002603903250130862534387867723968569977610815704270063609274285393902781854010676251035111409757691739100949452185435271720817199289300149313966478351791622726709288394335933685314565884122231629863439473632334548514824553516716282634219199320935594281436412631305927750618397496485391118052325833903960070257564769566121935096384749980739397147182099326586506365386619077324243723559756017923256169242237366047455854238866585575850567334470484838777064295676683519263502070911779979235362944168192415456118802705293955143216175541310824218384274899169208705209266582286004500170824186845043215949360191385352559599864271929246256381797775256068268754899682233512551245059110752953749596683444955670768942627749712914065740673280447867535568632055737112490102183483940754085824082025039477225355581642954774388143143903481335070987501067311473033834874207064085558923248053118840116539770086696976612607763823322712825485821227628498473989962489928837778370468079963818591710428219056927347975998872308659914934016219575343890604053038585301667683658722378637864122585237803159355859173357935481359669267237655577323936234264572684258544160804463482797895592103514729611835594277274762080376378310327363340397734735126153534134089319660770261888142258993364940335714784525132903643314444546911139518707492497138791912132405224227647223279955195915280208056409943738863490184029387408515932992944924978378029051399857495351422926379541839205307690204699533795324380656245629522457570658225959141613315430532932691940548493183246580358701951076561375537359055696829903227491062819812338547129526452443133556524483460090750602595180485000138924153870678375071008359012698824075382654952744527166879074415324517817332847275283009627093509664134549705121183937523306808688880164135665075102513363136903523958544944542920904508077182407689059013707172493845289178582074359055621706157003419696097848885382154332752329356041509622116446911812334393582327323285474942351836224437181059227144079150969907673406892305871078161181123644369782825723519579689610546920373753072085468741503154540282015040576753870352752350820512514125732789886563316673337089633945852756320873902120544332959229825074301439008516083818836482717191116282284799018193838156962056886027802636546931238712182638356901353498235778627821280341404792858012922530061317644393674773550757582730527471886745276010263188831879429213923959110576025874442111977991720040506578051234128492557041024768898068573741552388711688801032951571117264335587257332719323369631248819860908337137102900994528981611231707751945640378238106020409700156281289810234775876247016104054716818442560466010343865069817800629828270737891517526138408090739013857650967167725297438362892342992907112262760517251535216054631934861106641794361242285320001773210267532705078875574058146173571291963244032326375555759409543858320230176464165248545489255011842645230847567544203279684998812325738629229433933406423528689053022902484700475964547701437309392798521216624253703401366320750484270449438395177848120386252718346999569871210970659647706313328853271330216334996620364691793677923920549829434438844176509675650738848233231256035423156825813890535503260445713663455149327903512912368009328984323394484233925493189998464254610891965872699411583004737215847715406641587182640168536930953701916948387332388801974394158747367576521230040718490267659288417476692086089928593500458948298944148170180580986101398694524779350548587930150023497036502040862822589493221534693030202292228308148345107607973568007874536396984695739077963242742654301471020616778029349867590100565149164610402935573730735957923559909228550303686309719285046540584442730954566295665318194218942855718037451465641297021918283892353035108024347094619131277880769936235058974775203595511349197788847206504771863377112295979678571826002961140222435256519557634221607829539036459643303920088814804116894044589868700037127007927371733846768943315899694779966924499600033012934744804931856579855188047968779795717771535968661459288056030723213143437031730815332826772420076722608087326285811773214961537468256152630272927925901631896403830090224066252480984949664110793442563877766772356541429983426733987531447897663737392720351801431790190341592262187446716828978998671510476680983916609410198755660168063063931746537153314022042159164441291676498542304511028398859610669170902933866611676193213627293153225466856235307904734176704699025548470521527046693494516259476285300186592116609090933772874677714641804737513835460858841838586698923611731937337565559486435701861182728530743034674010913008044673824202604203977199585381795329337248809601697311402812940106744254996154615082172103046931781591265645213545883151600362819303821101893918549933587791259457862485834233094797457131418676591420476503714150610108688122524449769405426402472816393525024692074278382704521465999946400418881308275790531725694583391785365909342679657564800766882655241601599767530444558138683047649404625166101151037022282919515655063250957816023669499959609648082253325749703046290830494590967441147928465221740638421318111631248867426639853252496388419164454288919096145669316117954302662498171330513509982438591327310259654422125839110441687020047008796207823608107231145164531884024872192289790972396153041389209321013675199194107564246864752217201289696956780756871843717792580662971312213326634368031055271057179912841111362977431751385270936945872871881950393373552279564601202452336686768088864315809013643899230252387872307280543272766615799004396770578083403741303637059101852814171788587661860636139140013763932226956530499513754673367424009291437086547668024975231418298792348709704052520674098624353219965972178446348039940491056488085245068870937877332066677233588066768242487193750395960331882686089683765621087992180112260863422987448366984946852018371860571112244459767747162094565738989199842657016057373962404634432731871687361126255638500466192881587396368969280965241579216758527309375355651163329258851402393771687489364140512987212270073943872389833494139169858004540533832612608846464447083612561945434995116332970498355149153669761682635793366048962189912728132192464739066175710953321984905460669042947452338513007898732748657892653024009970285523517035142658681265589817008157427879322125008522316191335705709987479759171866464282571483648395651013452305852192210082364403833692069690015692689862417672142947172034816061959779967044321135256981203221326296119986581873161304328439524116966057546256559547503203037361215090123944402849157649853645086743890798979973860171075386496910951083469202145790679609992452937009902434372962527824306697449952075770670335737061809708402462077089399208071579808035085208985147035118270897814735690094739055031458134821621894215503954097933695743032443232814517260384438598853413214412891542197333680261465933611444920473896756246842958322220592389756742785569559978894178361212513784703395297438107764648799723842154705907900818263412032817814545830263846980619551228496536107634996181238508647602408722799531082329389486458951617741777759044966655722960938035682545040308888589182495501363934335132316300765523093195718269015996710875406876921335133967231007056163040197786796529500681310768762260526390993416842459432637058507521130903167336730119404999596049505223972178787113331652631218109117716391846490353496994031091065771397003657672523307712854396492462068069277062012909422704881809742658959957279282137997886638446788325412654872012850963503032532566808580413865770894277069104182099248290132858655203039959313834761022286786604663291121724425243515011158754714116598148788448984771742050415926308039744411974821212163461861374585781990632190871962825658937468776748616597277580490398107421389720365151625718905373429090848770505386337232248975602960002048525759458062964503171649467385950838024569144173276382810694679460800451311941328132054913182158147397562210802697779032513062245468522492257212329706911471408762058356294348448937940641032931533746206241503632945748938636749790633604794831306382022448218509506133635337591857349077551376291838175774399826027060846735608064698058919942856552056484540438673322360077430494329209892106543617814181166187745915184310069335462456324812188696385737434758911643462021593513796086809094356870751302743120094542697640259153584620090845714615636191928880690009851423229343485932056761061244294012273623740015791053884719451029504246213508747776242308595648946149343393087508994889035886214800629163750963187227878186045438099053144005188843473168737704756692662775490531125614383803969418335926670406798691441407469204185463149221961135767624992884377949056790710384308636170298561057627520551784558307628261269346849920151360909061200919500203176236261279667115349616577772303656709676026178334744782450732877654944857019090863168705343113877641238709875345639579627416042412679482737390296131446734976150005250269940827415111067060068612366718734491445251198150200780620976936436833766304555903892236310246015350817222670043047431174846070836883579874923275309039803659301742004600788537057323177292638231040162314555088409132362777590023860264966547346568989524858846074626119081845784477240156624936583924909707938092020497215860020022748624593765512197487581854699360414157474803248719122452412671616067324922503014033597552806203379552474285024731886235719536020164624259333445893935640021101147170677613263865199650808200506288111650755056101702979589952171140627395983280822895730078978067118363609371434536616963613446409455462159955645689680564882065420497598312458612762675063628322395497772153182285215396727748116506327624255828174166998885684853176857696535139366540545340945170449525362803017763835194665076237997568936885005260389730896692439710342817856455384154120666422180685668484146355167085366091154153574869167673819591103115478417351007542722678068304338395840427520746801883680247141744994826742434604002261925376211767920438530758833938754697828479524386539508451447534147641061949986486465476374329554682596888285493559804492837366145626590796488822822064575381275159998607455599387204362066948236612017722621420562091038352608329339306190399178702074676292670311163817366222174222211659316961561310554848773092783701737968309616303988940354408025195986256379764374837607891091102028620569749664266175226612557656017747476474540253028936730542755987003793707324985492074515090844690310643596962754577944245933329950419127270242665024180835578317272130266137833388962513359903761460750690441412228923335772588863425400235743879509101971977357591468068271174278907494484854657479835230034994466040268224657302230050065113452494099083601925812536506164987459255182233890903298030312311335751322878910453571852743716359865161903284150811954035789691889815224583229988812942859701786903258618805388696675675178688047871618050540074760754919488229832766033457994184771913376554862906719266451782718899810911400199566415602621420425142793146947734972185936438986443548321915560651818009372465669643216944181880924333572668992715932922874966332579483549192749980573048581168102600694089744188194475580503937061573353707013190557605864895460673811485159196972655662876744812823170444044778494661412327029336519920524333096923562054958781443637881100840287307753581753754030407698361210300372502366545155733510343855759549819067321505815772570982563677219391623232912936094552507266869172747266090215665388554844426803177316180638107718714784043290343425580531971696159366434383731277004711563697956222745461849645391485885828615037498840436399407646837491361073345323435454299305868488499272459989171563003555368818798371102402302420726986415843103794861011537747339056646035429269834497164701514750835658241683724448959069201472115453680540431253457907631350999595122480533626080071571878119978141134124996952378297592707946987797019698173726260383510784820373789178690309503121755219533826960386074015339739024057086930723543546783305873565256135986993771400187786448261120188475796516143810128340839341422139685097663652353895978752251026911763672035738844808715754219127408475195444052624981498427785633816523176185856992007751508008540224464432619015897899132616910591116977717479838596007283257549794396006945431955324347321155857301047289633241235881753388081081707799735814443653067228403363520421531344455698152711321184973250207617843883326943064133365454079648626001118125015442079210557420522517974997398955906878836746065502106722578985219194305408092239887144567794801089231244829882293282000476577177685744150921006502853921210992673845030308802848067981536434803385913014124326551341569962434875224708625732083695514033035997261564264691962054141576941960576336381616037423193804847190705402750892133644273072498828718527420857126879792001766265597627713194966806161473361931672884104351677805651034270206286666233590683652493234385027640753706999495827867847088062542240206567123680034696098252098060044296931634374977738355744894685574064337147955174495282835508398845450344015953357633103505626895655499679028736191287934204429986894816131578757785780474171970852484469358253817766992634857246477479291057187030936550639377491388425094432591317077823152720540090881322696516839725526141499590585895384716394761650502285656407290376688657912348895631693749157803372647316771982806990223724871126578371136661892581917566409764310017052990804364015641934892992731313688706404201789535021756613150903534526620719787329100256016871385448541916493163551847774675372374616784026090456909113970841124608104018688880794971521830043369989402412833908862908849462783053373235234999704265901952541505475783200849008643114364096256285386023622040011896090122526330112056739607783775637449056620878327199572990080678298643568807610817667187016606635296679371930122159697393496755840532977795588980888975598031530577840625761451641367192199366321323545400368043922726152231070403771952943464650797315247565943825828760904179947544302136489209712791652797673234108779730358374508832072877150603678890595314985526757781778904488534388352250710504980123111210703856724828265192667308002995166672319881444606906016921760377286269471004290938258626595567384531153322172433002566686497104178348336013730812885452487134535268248380230921288982560592559997974718337782226591469471648932130675577598172842827836203606357976367526011892770082018957492713791766603673714739471970509665845133834670573027308186141786329652784970488883183375686823266690675564936511560046145580043634023281377297430955105458959319436998975528153017854760837842252809487693412944401222640945110631201922371849426872388348078006078537198449874475459310604216231592651384116529656089387446227534258269612710057072191964171031017693689195974691135020313420646772504465111996584921001146300385764461378218854899235638671826173426837003355280849940251492728486689873052833131626813937473738321996603713372984293622771673777333936407446558635264572626484445440908319293552405089334917781168498835137421590849344653703427986854416816274944475198824998208283900412499542236862834727236800407002333461882394672612708790963726123472833418730059403341662790382964546169116022758474758515018915960533993248886504467702163873196997103530686438881110248434718135631455983979658626259590906017186353598980152117465897686105499020000156944466104242212105112390199120707792037669934977601413567525770527697601431326834166127552509492975206918536133183040914360279287516112070620189475320016285041080009170941825945641862340015945867680603174272297519864494397045762128521223300713934223275137678179166528246076267209390830239116580192267122106148282264545129000613087417334560312996719121685963240094485088343327888623887588702334778321001099201036280956191098035223712756608370012873302639729923929584529872011694438910898629987111270614698616504214430706234286479817167960324730071051930018032586572242635647029472476463672385082895081787486969375984170351550425641610391027563468888539638145568297938062750874828755103003361957582141944230465124056852523829566962919462272411496548277124985846865101222047252685819324044577706735088598917867436964153537376841308497265919892750555213361892414788783496447351853882773847928918840672350297174415130417478395003644382188671526114017367736213067080324767247534409865217452383047989715003018629379932921804801388537293423131015045573541398084425464281145930813552456746023038902905843874797816554593123646627380037680557550413555438202987048697795033410537237783053877197304547543998213732825112495104372404426024518119898778997749885979748477354580672696548053061075121778830459058442924334314022823611136553071858958724296677994637246106503796229360403429755301301166807255994436042256062537639023437768331629264205208417835015836549275936904486885533752332013049482267563173077977207077245804639507730659274706066371341136546353960560412489429368548368304056942235046447421099050288063250788660781577380418615051795585234727227887624102174739978652783704967834290424484807115731003634965068130758441056748896324106753595870004707837763271700742858273893604513272970365646425243387376082152346195981327583516020461162329344234692703419453942171467978408674075556382959351038238114591659452081055724346794747647363260156098737399753981660311912270327137184767598880120881368693170660874990752765312600615808207135385379369093772669256090315773167286348967490478582864881630503371430338164725605036646235214472717696399225545307146694720658275657130959270904694355597584115024050222885169349326560533704604085706466845220817750827167730113362621882021612607638164561825241447072236729770132477855822697786335943728957966775866789604599779414795270317722005231746124310681564275219768264158539456625153734922407738375900543950577343423716588084967868904894742767553240128179926666791081988269183112071492335624310492532739684499737729523655225861426811219242662024756065192923597287560850062902070493630116291577885870341549303487742029363052885288596612945665752508730423119040337089047134885490246816326603535671491086594361993176964055488089489715110611174986656379021445456203186361298457038408198984208203361145348629632534921662658172593691825652279614889779466245705665614740652587580225642366466210364850258148322030996537480077214991740247399712107680162012740960421522170613194566858685289618070417184716288824371031994417647403657046862691311833570670091499120350343757031507057566221389856672429058173806467199094821145092065503239259863778432932430624123739408770573644334290693388478436096855524051521825739024492287185824028013474410736588833236265683509482560652937961541067127450684855840285087140471734738284741325630077086978090397503426487154277962302546484085568409500078620595143707503579884092981970023113060719279590724452739202154349343631833718426198443878789410564134576083793194506496701161197897693387986516944065581603159634477854273477015443299004513344010183449993987319280709676991904243521057099200092145232923749632802464753547491516931939185185889687087239950247568521118576588314907164119994677146809532453044591408906361106776345115930430644878676138292859526775846716914256749943006189762221144964075991360653207876394815396150601151701587947011657698391223496913981442628320303999101236428795161080433981649690598184664635968740443741283802932858716707889426911526414208055023940684526202810036283709153768505181889818327878759715409844709892836392982821970648082042190367021599765614179786643129200595535801603999859359817801108121125647595955949236549209928213617494263018823688345194729204612416213518629415864243868371103787172421286219764157700226865194076049309634362475851886448850314311449051067662864786119048388501317489394896658876702279903096680142596327168810846604420266411111413929635333221918816635550437055526836313980274072760674720311587162296739706584857172951035334456654007874199336297907910514903011249705503677617708031248972431243469423113138971279121673656727317879575203820392745824219021559400847492499374397318843947710549076080268550024802411470924324909184223406202869675508641184360968118326941820053683005505284549044676977561179646159341772113436631919265524168182675108041852154584263832897423618592835820247155948329122102521187571630003632550095456511930222598358220351658517188756017577722721721207098833265170993386410825243351368406010079006341570869901303134146430306245206714036105252394379590237372378993618644820543382500543174599438575864439478493619879438039753167115241235272245137163463873113510184931012958177117944948794384033248673140533274143694499552652009858624625685965883698769713493154060045169545900748604468489228376335161109001243567840430906152879422850329342648554728624181894113191969046625892215803348819425824043568159678299660177170174939396706561589002610360436297218727413557714039175432184851293615448784294575134635795031247665898646772989693503626098901942607539841952998349397089215079874713250504135058716932155400489233032855188417155168758942435935897711408384312752026949634095922847829947908269345350726204470423665863158092639064986549928875442468994897714443654831290319853666947063079445219196555476115137049837925557892144074377563730848632933850841018262507584160421193788216931909219681116232881943262514701358914159286886973466387486553616925645963173759317572992133508268445874642116732499362057875372060322533997102528077874118681550969737592839303269452183439994466017469657699596731799610504346396395620601791211970195422594143446365442127298236002956818113570908687033178222132459880823632171610597353906943635477342658460977548899023078727133479559395838763215507195159624373393244950221363914720617301188742833781615287605203973862541476545293260576899523691785618359096043827348340569891149483382520344954505236264771341618197141185857722549564039159300387915837894425394732249881191813677328109777553043340009855144261290702063597106828346126445207125480154557790847832907177665467150521860383566500074026585274153489861889029073088344101041370078668286529679925127925569101463858375045550387934007604271252968794548803581765840403501342790554693066355043153658865852841537562566483798660140305260427136778483372358072821706234410787609623745879204905408165827436012108170187798981692088875935505474680379062020748489480881982831829352206174678424050800206194876904862705663465671841151002136266539720387041027063124774512532840819222644522071995839140011355088629169350996699308262174701565080330126361278956559658577155220647143900865484732040266457812174342369135392998718483801734877708389035143853901922520017548583012617382486223295158206036286633428005528139999143048313223487878747951464090182336037096572529592205260462474771977437390203357539515312065537747265438785667118513528837021245310038213833051259316528325928746853035520053241200545992696314047817980484475045354970713385182730311525442579429786262116673293173957841832881177579674323617137441939573800966640278898500941083094385265381767071545151294111790710433264314266012942951691955534953594923688771747398906376400911403797740351383160757390123840176705243066613769946791191619787815199116604381992215787369008833417899006256276244849033314468105222850277601304061637829650074155806895959146355154652147519467896920924780642916268100707055330833584925402137206767218205661897237488416248962382835375826132164268929093549184928954455823120614565582643865443580712723514032160076441061345914538668541823589604137412802050160028638752476169757740988348680544581788049347771186629212365710511461808806360244197420046681084000908401256321758099140055053306980830344433394274840714994754559180795434276418976543461257636851964835528117676150471469460173082936087314270554250203703696115988520064159499371836670421933738915838649129366995969581414897519077120848283177196343945953953186980987934163685108547630113695727813527449005905312789100590365757556467688571083174944757941761804158000412686855852931143696762422042433151141494943560897798045231517696980035280316194864042209710153341900076954808472948222600016834273905268932906085846288011079366243995346052052152417019713231518352272151594248349032344629312130411360747790425003989857621297043183812571184455134041808284787693629789246565494703061947443099726415803739789817960548479041693214957163468589594329529861460510245206526510659129588987447923372414014308627444281664739845601123118858762199478938321249654036796492371091013193880757477751250786491245884582556179382643186440369801040668854498084549702018019846492039027270080141402715269992219025082719515194839044458189498407052842000336331457277904131259182156914096756032930952980321730363470413925789067629567702041604751288704577506747879098594787023693831759133465100917723768247617034177639629492593723277600093169218227045808327873750628601457442370937737524034910435079186541236063010416715330451910409840337528908569089831200144252375251446740041643851059269035082089558640958335384422685916060587427899947507417331224868757100772372392353084491499154519677915131911109527464751716901673339715469734763230905498372250825678060365404173059647145085065116036429283501568313305709705483011906315202793006192949017099112869878829926499927322961109205489138796557595704695175909478871992191593436206566974647142065919173284594014145731418835017379330163807223090738880371135831947302824293688251059588409482956044650906027736590653164658754743519544576884479340043226655640063251946427972463879159028361646768959360312386335150140183560255633753943678902762517539623177148220932355868240961911009616142021569341033612737481899988146993083214140267497116912887890311156315233047109620271665101959502670123136346239024202668845120798247032575585851646897690305093872916532138218578049823658705441268160983457114518375870543824892522940813880440454129691468151650828662582326095171888477283624566459377663604932164454260174908127435005737103277406873652196690678995709518553335214362199630514099447920770510553373354493445157068437419479107479867730399772276084037279522952417914603228403552946452286142542117163751232721000277562684262836111867335957514376545013520100287662215188025531177550774444465420853000771033520865951907762586546472869357018503033498716675329213128495447454548637250980595501688817112612320538145967619044788503918002482394583854378111104254922353386641145018589778566893824121598087931130439714525162476745377622788567986271013088641554218110525251253357665032640301518402004154343429975199814538045510165350995239382200825126701969865781251002395482705570126700127101871116382906490280759296134976935055181138329998663171298988134576785465422030502330003550524740016486285498667877904965117271238178147234246774889460189884360813715130655307008761879181170513951588509363588754578527877325617927375996556237661580237850761957217989557799146888544881470088754868537242685086728595687005655796243440632262153261641962192275533856921924835825816188895148169221970210241343245617644280963973096311775501706638564808484049069969211705412938111667598450164481535255437462553194420721295083503757104864210635537657049155347312415358444359772965467667072061710182121259552610601513098852995070460424072678924612090913013152339307165958670550870375520954421200761777064208267947070673539886079237992419670264282408675994415653689961259346823617539796772811309826057190468458346324356254601197351414559431720216100277966246048746360277048439034881648510094694016026027805031370591950232566222316339223285781383576382361513163763010854978554225533700874746193385129239822951692237254595866067630603360392974970021530897482835492523202006773622784265386391281060320255072411294504576531943974184408061541219627446474111520005804961751649490882601848099351275724644842389230676919485179926649287041713065256684961713400892036601948181406455313301400325255295116032214999906599386829356213283456565357933846081786081161755060850096322834359011600291755456227149966972546601103006938336509531535754755374927899979370694245838586474042183595804574328619264165680635126957909690880790370840191682670525184852162346815158279383704619577050469609482056995025812755189683002207614576400100135295026493701138084245756120975321143882428142593412823787238411481343496923037644311427364970170242460082653374828703143357145247203614275186671645160411263663078154844196642620284829245911785892627238267839001764403176653872866906569366598133832879453291638890387095814869875774414076269970326474919685580876464488064764663470574273382839121484189914239636527387461347902414402987714176996570226021335924323395890300659075406590551361921644319359060080560473327541390132097649384103902976341908683990167933744888786486323771554859541029385552494223957934700798201237137700162763935017723388153130677136355671936837783454293141883512847301788585852111646229720863413439846521575298514369430636613335110697963594078739872281991964507431367198963895751101811323418593880226634426784284278002251471427781538923851495129159783511132556769161626245486074641880009464843034173499258347197152527321634050110631947746035898919311405277534374187953478710037666142156811119185365488017412325672973742697507420140262105014495845487691127793796060499863728957471725591074643295065411825631684954988410147770698868547400273975285002505861399864847332790266677683972048814191088735935238920923707280275129633717065836921441430354910595990813281761819219179992395214093108233355962055960195825802570015244798421861942760439785378838002955137071996431775481239910644795799376045673497023743415469012114026283793442379443051927233112809204475787194526066737382941404967876644462709929404659158548664898643179775412912001521261394957652884929184120487529668163739592207839632019113011014780005119810124851927624460646961685267098133566753146241360187821463569846199391771967302782015474086456670566283009044274242878910672359949082055635469654080703165604877875542351782279105347139182324131452032681397647890759594595552570867587654180367806768525512497895792101589397741401330883701354714732388248723825874803395791866447632841823198383654933421686981520051673113784871149621273690646756352354751045657421418699860196526819009254736058223651065773941208219756426429705074435633749192833538811524634082187614630663438829815954640260993253407297023574925951270371815666768562331774057094528611207695090489075507784548345834287860548135324857365591996530840782487777667989160873893315804458986715754038770522182960330765224748679297757811810594119418515770327654179320480472386310915644443530868118878605857210949849443683552991671746964345255653273205785365489869897636045557515130619016924572892295823340531233555977240854626208643574067303293968444362982863686667047425277516487135337926815859513149846213200992138998889388554650550509179165835274875769392043031773667043548989452468480329100841826319393163429715442045638937978962080471378983557331595556752497830554111154227545970968766516777646536986174925175290610372522515743545373249576433154664195498532628498503404188917744936544428981836528935050047058893034969675261907192716021454954876793249729928448274571626503026536969920362809603474946376259839222130071460644773776126319008941183189545839665509036736143656289033892205814372977061528729484067605303378589828989071921440029385900604888260232024525038589682783716265911346065234519589019104854352167576569716214717086847128878056500270066318702181195998378614012393678748677375449822225587033175928480434905451681460617177033730746190398705900289059180138211498650122186595298129425629005504123312429531978535600044832882408995885213670120299288421639510231411560180368222561318841895481432421524612437713541304195314719748929987499057974406788908880274460199117643834168289615285873627418261479373537405203019986996630435405387864339711324192839215860863691884396732366147804213694724770007437769226614916768794235766871842062628737225725045047182574289883809191118961986655455807022102545912294066472509418293497882788586466347410525230054068666325861419183547739311447055057773628844597247928397819783779832744502954401290913943139902835454844414783501738593808266669787296404984490687772071203837303556450134442507686073178969029342481625873169157264529022922368965907835655872648267420740179872430351141071490975605932304004581670208795995728076758397880645862814716755113558280550824365867119465882433074762349384381589526938428502439739299075796164499142601131732967111360368324934746454295366836419634255482421350903078663768888155691847715631068418982137843166211438465312424573218942060726691709446492267984477243273600107372237378148018782382625015154265752922406731907280669112860279639925919132208783694607844048778856375566249901702207571582932829527615544402998595106146205503761326345921789956310653355953888173910813456313090795450575481034181929327273803759752714305568029993444468092076174920109249233099517679312422429830907021330665086886278187960399452296981541963844835466651939907081223354050654498649659326106634078340033733939018115948779918058213929632523783274993785906744430942366502319485603601954935268902412336748112774829266720845787627061228638909705586308562714889185019473089568806490826540987475907254503170643251055869952715620126896582776274061732653079968870224563592315719117431342613856628115719582107980096662332527243589333073597188521087800220449276074271921266827393611093075959981551599444536090165519191733386779039022682810729901836413216411344565179667083479073571795118368149834331249650262511598476958346927751316342805262792192825839035089933987137759440583943554842188102372511631950132103555692468788979042735712730587766265677958060597487485322042536113690690133906650603940702776176389286567627921604364889658614478833659822090755565234548928536925597495308888266522758699308497068789691816516562214698176253050709386838260610658985510889883548227622872733122287873514547883541830927379163214712041855313830769262108001236090520135354393364916663612716355527605278389687741314747273643507915735432235728643962416778418133370444846245989486316601220699936804315404196986790663594579937097196879807085015951228293979162500788394748208302847224977857562472565247356034847507951088088766891391126589890790382499853496669848404823882593809528056822312968079740193117481715908082993420929003520667074878357323854879116753586491768354832644417301899298072492662703808388052990840023063082594642596962970328705683635797237388107616967993876542127654410758726058118653435607149346450372812892917043163180046117110673312871292268478401357879411834092736907630347186390121627303169051919037176058113629384478531420244152949644082911386263435750522070301617400881293767111546757377153017294638086739761889594207195633601154255161948246217795633912015539442711379243391499248062148879449027678107586631074501273752472852100090003376278773277361006775571665612993955414652252368282941075355679671627355065039503738325395047640242420982082108642998823276822226863210670232791452470699571684379764841107864470102600515602065663466842196951885562756836086029955694373702356887116890077043855129657429585413144177256535675670842925129311958127020214862686210944498006957132968196744828275650393646924832825987542709999181970392367279604218661887469524001844103953103314406329314760970676039959775711279713190400400598418352062477368083887970324670789344280590855312245872757302075410440585213681606466411322528821145124112371823596701728179330621024316589165895024904606776797572132016217756983974893074264733470152822627900879620599476104364656777655457842348437064919044163972709469244842622104699288393958424884759477071080725560630811951535305697765863160624311835340804938713096013512948400564605646430771117775416594355585497280371040249908370637036361637805246752706977968181347300420906822425175619553828572419804021889208271617698976338764228577532442328349174938305859843554887843435396407989278583650913614088749723635280505909242073850517233208705378162782605478060324211111042937368901473276464445907545502953005207205857453305623120146980450463676261376218801938773987922877735302519631235445561755866687476571156740587899602501516343507037689357719379424356472854704711972416526267427834903156179091565759980735610464569070014405783007784698874529461361733825468268638071191446837793907047736978208260361888426944629720137520502752213948505309527612289472919133114790719290203820673385131660555264476249226653475215086393094479822783232555320141505802090937529111926414161182159479880515714014634511986775883401932747397809214690166491520342632408288859112144211658865946487220048138203523538762574781212352366534485571976668153705159106876858810694752499558849205319362454883171787890391850795096811507154090743805974194860457546307153799387123380562148895951977321513985473202645474358824244093882557136509281954453759351453994106270193898469243120152338793446586809984874866690391243380989627142354633956688560969350410133795456557286679187673965535076086816674931212411900079917356071236565570153975568053545988539218601053656870018842004878297414831526765947090401940929756198594992589951691530757275421092483309683850746326624377888957657731304164537397912006740395690924996673520978398815267998949166510223719649631143214692773062989254222231322659722880430375280307050266339322962822943206321557902119198203188125825511763174196050604408706255645234357400649512279994158530573148968892910589027315282940910612831524802867089136193201586930767905270607080306304779787465763718512214742969488668806402323084006510184985128218781747979038862092184020386200707958750093751739473050437863936424491845815271086297463486040608719635661399334045534543232801967316766629387908064992774609868704222820469719811368738275101640574793164594935520207739271158150737568867058590043254067522395811893783632237374918587893746503897804067792375962119408112875581830513714733685997428344368958488389164363991094280112212942464639676045721030359664934931974825115257345418413287294559774418231699325291229452763855488757384305009704793498791019354402295592624045280966294330754055927098862707083127018021678750073852790758034566586147474942991028898426307549928260018641532432319623378778505912804586483169603300618655833235229259086795974528744585549034851525854597273227119538241659630999536354134126603762591581404834110364522828370355040127519397665206932789645862706736419364235801494351702572499530178072234766935770022752545994849652112137803042204554014164904660286508249850404827589854506848650180519215721807782045791280602053763015763716393612093197129810678710683582042337445276945042235571311925724893085988942979281779694393618521072869940881372612108917300427051516040255109625620734646807508830262405770518895535456570688391486112415795659261147600947819560056797095127312794492482501840242668436979642845510023459839328069562477067553174251701555541859692958582661342353430476988996569858465745228297089969028782825045296373508745645410053589765426671813600839258901165313858583099216824516175644743162385857749182698748364166470429282494817569000772705339451953990660199692178660404356312504992833103408079041251557307412013184836512323347179102223053290958651546334464319313937553836412318545830774858976946797337771694108062997780227359041951737915288091642963863039466363480193062992692881363564833863865850267418001776347308891576806607922744737846054835628579553924818111644401849337394787876657070991151483549810408042391903907316790867775816987957435888533602418478655182216367885112201928414450156018190094780885614470302939872734619623380709828226932731620993584923666344287530468347187357445857860263284549419673295122414879582223188534940583133380830535689362220987489656163204350508666319898491096239814831069639563838413096916810802319515609895487017969974188775221031249451202701914317382314422092585050167213415374601349559872440407938200675794507727080852568639094604905248068718584283903023236221105334200609830115459390613507728227180162443399944064122776894607901074042291769013737998110665082184625439493225524319735271006990383391050671180461522548133357779289620263199178118162231726056552662299842864971299193766938211199856568342990483491861868655177316085499130394538925816109433150962369920361309363732883667754834837279198674016057737805788914234859123865112224589213603705818359689767133118804116429741131763047947456946408345355198419728211499784710628450427244936970735654989818097418413170279437145801792705560345952607166058939758121292510427315409291831232407416942455276627861066881037751884485462365527976089631387871795181065701701544935434221731732742471233603717693815162793577374346702766121832494853341072348041995677572104073435374864041059324638484715731047576456201712410175763182295692574411891422665862854846725467730689637369598296597521453735265979692116733796569390332981527368754602840334994060813641794465101382376452839594823518487444199769419587921005333602181478887067265646201297121832169896062023828351797559476504340912216717739971222898267811560310592805107189901329973250003318477971385681108117801873580579235704662110654672272807979042939767816640142416254893276163273103912412789987661065403124127410024477320955480695333263547536409972644732589449317272769931554363252954913588926720784918695549618062629214945220754867114835421926076327016112020591768597709356556101489386356660816791082495292691775305400728723948991599712330137724687350949426852664680442602339315938538341108993704003335438327588119241432819341320157006607028606272299691442150324335422999012555907971775069637170769091507757264931248752963211105426264582021335758789653439643381293266920655738989864120004745154486989972413310942771295877039468211285894803682171863681215060500036063337370903903794027848884107544037915864713821015666288371700418257248008545949075576218828442342472988440215401113903208120754818955616635813490002700887020426331223098959327792876616289035668841483342748604409612477451664966892156996266180595428345102897760666124782846980830784242684431628847646792758063438328053817859027817784340667198498771930763128162733748700080451140271973538022376112776259353430443541537966709132501000545742197685953678170016322984741436662724059248276645042632975412198737809828455775649419813488113815816275429173443814197164868294299353576171316100931778531829599509548081896830505026612441463345132226493997446051184928711558354611788232147496736382235332450962155239457471334536684969243517526646695466014143118145346632054529369809161318017981374651355787433691139820046246608060369037938227568445069736843611791992440286285699475209137603463665615175745238260437944207594977766559502135096338094190370256872627325576528253203689968162633247189870132065789458695201295881555648473889127307362377162874489883468137261863776721556305922920856425673910078868300174168946380148541580948117823263954801415135421220536445734045249130889370607233976409064039986670229806554436471596969884911279645982845465563498492585744607438298924222177118062591872465527798842548461664764829954645148927476428072951312970696019207025264637543595711011134650504914635629692190114735371701657293890634017838947249709321350404373219891682900489590819446971512324526493965658929451439558618669763897500093666226479636802664540827776619093512179156715574009500637116933115888854051250165226407961110250075034186385878232258755166866976045715965947646549334802843415158028831627094207328958968519327583508135898084892464053306866595080373910518587256484716714566330884945446301700247335793736177721077785573532021123216111994157177341028065767283693578595484401276944817872809276274832856086263331391644323730276435926553702439798028568067543243522374150627756677870506180504964215350177016271223332565085874354788079655826600359947794977387694191263949701876028533351656458313367892200651875485504831350612739081274941701413160052901935255478354834411442668028959153842380967734566638357219435147333864457400732657638259124473554612901902581853584215218713195535614604443875939091602678760264999049406845193922441528363275376074535342091916145851679592714273199735966028895759272838082958672093418757313677692239297549173203146911960582142977588573592492400521157702133247780499998161844481096470212061078462576454194698538472061183356725407740963987362282881267970706812030062691820298017385335682267680668214649542542069663917186521076254969465043251576534943941944719292881990350602873170619387661065465128177328538533852895585494480504165830005850171296608339700790284252591157276921963882535422743388169255880450605738607587741287419258479252466111180467163243750523475611974625551233031364703623075954516504770262084742184370151275340296821617232296434845400747286707012312528391560648993596592808126398203076900512062934322612839276406199658734345948759970111230661140299063790616523583975381641424142915083091775309597172111755551269981933384417380797020007688182537476339450330848603084824295480961353683576556400202240307519278104395598682604203434382886458463089557066217473708788050356155678074580255561607346730012429814813503409430177865951102161637611369277378426301628577679648362061917746585025003702230748006597398995980608661101606028925873608840949063054577362368070749758241894618381726679610705011009065682562711222091625836154701046988814967925422274722293978016328483039217159737472288196256362820351033867791958113398804653555938656083713940850740281121854909850345783874982884802703476228548911493978849774205956287835198897345673757088240720962647191811158081952268154722392386904080411240494774296422223559669660152489786291417101596642557451470388837180149066893872593047071972223299618688237856653319617372555703813213063100568091187080676944475812331279480202119154001463858653375184552197168460523052143012635536537966539906750800037745636859431131643650696077138083622677356547132387408197506964141007491653353201237393920192279623094639796401005726355307046787482641369485538834808192445168916190234139137724912707037398161334324371480412547957478588273815615873926801893490987353945514226027883863629626251945727897306442637826411562367598942631701323233266694472360578959397189805868415209589808326845808868028740219648313749432193874431413512537855671385639932176923095888141571921949458348870588733294171910465408549220022325214367922579511719986966308377977604468150802627102170836273775066290326418454603707747530033645676038960100737203057103863991113857078904344348839872053670781301035801147451304666163341469766874743520984919889964473054343231223593119309469484392657907248362143695985646706780989397144988370649307166777292631130490472667803994319203573080215954004429273809958556539480853962178364678390337581912024828839711317698826918496610930908614129989500388228156862222732962969435233033053432257469609430619028037809027852826616805807355716137343035284742376085121867840298345257250775726253116293104799738771452148212605407848770444341916268440311719496179483045782770888549150226777755386100483211444659471116890177257659313704126357959280469833857975747815172822843564055915195872209037901602004870113628220826846628910471657806764540160322743895094986581426265267136714744228730558090795599542820472177406036901255863194994888964077314706926846060584034115688220465892918321908123048501699737544476166286101603180602870764727376464113308130236594044277937058774452754398869674387840887331132915101475582366497305668580001522788917696342536202833042487219070159126190789295702995139878849934622578346322920532499101039014748730532705795708515792989633705383495559471105688864508315173881749813782341414750284070974361509791206081023664667971820883066435457208982141761340449434662621016076684008780373128358362889645520439611132596541308357186599964716489934298814888039120252695894958081556527710442117064719376022170929699509573924366619505507139929114164546987466941083377039150639902655068804460296161681822953897825660437228720054934057573792386318082622254479432808457697957046561992650661922951608025041026394437395583535049756787656602443268215790681557722716201861683232901117348541089659311712685358481333924858368557726130459103256827239983975357792075664078960497722175965205609546040034986383860618810618757544180905324380287471303769931614019047375613963634021087125256103522710316903289355691231127412683857005930111745049736920057065883221462809868546580793666653603634339396427367569897453026463081570698873303785440744149798237610663712055773041110383967482735687077443434503385806472927303204904885216775718099136185271018088824593780267851604474097067269326482013217639259311833560887840499663486649760058944771936735036602096528185052452145672464158983592901126372089305934513062998049668156568939451450920376998429306006783248505569557653839197568319109153805076865621685116243468109369532363953274554598373357826240330125873626600938358868859591259075598217958660140941676188571740258178819114190740882481742689407696347636341367561131067488729061191766722761458610610664055340026683313010075625577828456741382878039695158351645409281452365113962337046829692005684034044165223543354999963489245856399461504762265338450429373829340846971592122626446810924195839200495348102723149123894884406306133415861957718614684412346480702417757073935785557536232540128442061930639790658131573881800140683907226426970864284932003378848439298615353652027283022022419955336654615195152935000355539873410931573200532089689692092611210270000676235551002921364587929995440055278036976302398700661213474377227210794835056456728608782960129741371348268105954561403528680954955208908581515940431533872400655506862692727357779191669687425297778315817995231327366262801731258438133974548021900479056125348074463396320759942820728385364902790672352166321545281263303808619793038838234891518266982426936116006720948341017946558146703015249222728813874820608900829362547146895007028372793101851846829179771106896133469461978258992383370988542257062385604518455460491195803970053010995803488289646383777960479597926477798792809632725811321552275027885873563089760307739824917990760115967045760610005626156040138633850662915439329088058177089630626066342050333094625356427182570382499373019545282038209096477602682676537615664238348162145488484647305296210733838514028190090497710897432792441596153909580052651261619115432967736237974084645179292979150960594921373887060192008906251885658759765905621859975819116342046882264039231437768307983740967957390448223123528324192597581350804040280085941102497870771988764046705782449087446723075214717100255598888489000772334343832203030142245312747761751311262268298377811752937711767323461958129313098825065036531103337813991634602547325478293806168163209692220058978202576818328136166299894516737255341318589608145094233772249935118521787471188365366742774822915500093564158111090669822238168691583505693807209131340979982308404628073382672765662416945417163456851679620039641122527960964168370098237988710956482620207753151384436591245752356157623357244836354050158220264092297944613865318408963073654282650474708001186168797050766495073264889464723681283862458090571010600128882247507723169294725049422621963777411565974011781784987778590160194342439290176126721666772840678464682267977545697851538402910173598177878727153881310048553185322014340953581059087970679957025064214854967455179472268177636550623276344014633814493978060415641921555418204686236027670584567521409779343424697876104555469219692647360075777067273058379565287946947480943255519682822045988603139774900070429058977881220415989740384570984138486195373892710339889972024298190735961172948623984432671323196864337523266256820529623630253613555511082685833492095924915220447208478395842381615035838666489600341836069899115162646874299278057045110248310420311424507417821129796308344322431156993851458861874212443178068876822416401630101428417161713106279268405354660336110516180450114204254766330114700550902034929091881404440131211958496421319254968406251333198046786339633698702848201396735372263163671607517889411886126950956348450787527570132408896751487260260699507502405122732718605628669309566043993132517757070619709276597025819743364637922510919187537063653409388529959734137995458827900481421878166675661916720676322415816378312519972359517206742064010295646134455630721629619558020419601877644818469012781211908676977410853929918524478963131250779425690133371698322164562213232630539639585558171534621949618300252988341068598918172149056781132798705059635747586282234174871204029561834731395023848664569848031711094704003112703169923294093875804296464437260848995941615575940162131499863493488518777286783148662888019986320209078900657779704670740755090151245156236486073514911060072475491729696028477418589655951585683341265629742199271659461039601269420133757443968860448335120041008888409641706108321541987149055451031903016864182947077747573951454618168490916270318097523488725956743737343951511007144019376351916132927533124387475649005801417408875160903171928966588165142951266327090578496816520753681999097087295051954012942402986645851734287294317181321824444735645412923729140856938794463966515385513220431320822816200615344499062843168209738786140028962822130403361435417604799307114271424828931105630756409642219491976363090122792239061441941050295462630026938599674236263019557014558441717840677182530454920982659406622562942201645004050529514147583980512088998107373740079731741732509170926577426871690866395574804560206401567905762099851157581817743511025130012879160339168875711330826444410782227190492182698732322806478636589715911251474986696932833335210928007958887472121994983987154734369277079990035411211929486050205305843725496329301873639410338971291662009883110311124833790214485078951919638906471333586002363475965195991957545880427855594669276821949980008712023844654468292772302763520836711268977949562371311835839891357068399884398778695277717633553072756921464289509797356196640090502405097275883961148958483894500054154256018686368370726561351244944535083916477418230409730382221862443185216852102581343438804052305509011727110368274429837562620409541031158012408873754845901057892533286236911328177863812182030795885511392466936248810576570603374637661226019420962553235113830996160036348656147314771330500363399686044995684632359687787329135804228968881494480905991584494146267796693817398165888457399016183548591943390662684259449819669508811492787263639770663612326656261285223674316665724820844600976337328314931678921518508821347767589718788179908501924980484691769410597519250036772243455982769759222500705400175564961928796361834474024489674236049442955997955776826153401527314493437395289495946681084595291537958553437984781676982956730677019704557530110585873286449200161596345876663116937554924704571324156675274788956887239476210405925428590591699579113595110890724490828048576658960227263058832902967039422040659157967911761110384198278633145486023937832524501583034157940033725220106096206026306673126999528019571995511990421502494000051764823400143406438917316324214167231907689609009029954574003243496044104033292597390615228598584190176555881187654761981752742004486624265673091035288460498752683740143988946870500860027934191899270169755156712436014461726192337874165653292851042079610907800794648099667493498672679463500144258277281822633283922868415797837557229622913120456212027964774211458057857643870237335759237901934657300998229741535442361812543819811503427682741121040325311781122528180734219883381587578757632983618587812543934644925954094318151525202006104030404459036907539525781232822438266055600935216313976566588627476407199315698374409901754970228418235545890369324375574214321954013344539548903912523881567771006600943250448253755983492881452309422099347182564381415239721210522159908175680517968678730030367363415565302895386361223518434897171657720831758650461104963635884211146811662499092932994195657469549320414198804787798684002636649754509465414678110287313677323885882506424153069314544806650778317481153072650772776688734977839484810487959939505179198498703002212181281369039693773200169442598492344034366770353889431936708883309258705675267029800389332526981160368569435002993845341023382274481780875224536846971048267047439734353641644343499152935931974144237253034309732259728059054180705203475164504190191567008635389534137520183711863231924161323958552597640903756648751534706936516084858934495924263738925225958642823218925924715375812803064166877016434716124538460827196962095248048142950781967779064529722118058465572707212354662120091073128864693811287489985685301608477295052948771015358606744003566666725541329106105399989615793662701798022584884908889431918726698014089637715201691751545302824968655303007520142221569474071952045844776752116683741512798388186481689963132063558282848557096282004603858222171788529818692835272463690385682242951526983539319036788740321258586828787685362980219265418104323918225086672672305434741399462653644469612375216286242420174156023392882103993900476953986940462464970293668918485606578082866189502854124001182142787021342265123190632221118862125525565770123379224041285533201284277824883343744695345389403166257271101528877150054984106665909862691921767177610594750776945362415968776389974051881848625931568371431204331750081577476742747272484854931823875447645404566268932065800699870510891048645181566945323326177872371751732372756000431472094238166988292841172062772024844748070111646005924292691393067893700911281307396511174065043423531855751625904968939207928732793633564757054623374086681849428894198111886971024613175359335139230796870841668742814091808662911427007790487858328181340878320396092773667297062971383515978277145096143732416991171103707185700808423468466944739576739821608292454427826098736666269089916899620363017961746275031106403778238706474660828745872517079242453163777176781444358943920228377865711135324833607685104160664133073061043083528229791391639327715384623757956679376449641836626954714786742334192480718206211435170045571232290611963727232411203534117503270684374380676380160632239024517431537106485521329903989366159700003056258587136184487446768936801139522815866826546624847890989279644041988631635677812759543210486625669409598412453253379998853104799425211227645059228746864176429566429144538649874538753204262800052535920410959168776479198164215559737727269938017119364174768340690054062399517863946142758877440644644867799328813062198365428284239251411743639531957027498333293990021940788190934780601517652014027252463549944207539754055388755214179294418692041055149988147157082061615951537295092610219121549787773306101756864405644135502123438374030005104899620508796218214273324729872207978822173664541365108550723551543679390523127296616244959477581893067286997832912671652880536719956667309992554768697654956707790748227140119163171522618940576443807765552207644983510664949692232541131917182113414000491951987553095096682946068410396279977032566462565904138681818117280579138784875189255897349722275579288712123747328717006651923878118066026140465750543833471464221682207786195903996432623603236812947371225151939369323664479315558932779578641681686792334182954210137838963712309613852754216386476764501802104212802311240965799396391208595455691857335278864083294495909254341925999322830244772276106776223128073726830714644080515461996339260036647719228678454861519976336941829201727840343329455712914543695476725587012010832758050956024150707011531816493493239580451428835706441377169239643185555272844645864100088772860204875148063844354556361677123902940979217947265394822040909216825225223480551964890703244011627130221910366246964406320511172927433004249188279605525957211982131366268399773957264667545620731607098009450010621480271229681379156499534229725719002337920848337470887491400757567033980933569257251099549123569304353750028256559685248161223947119624332403512507954039266766867683740790038156156016347983590617131663113432703252634767182535545743577939357953209714876545540858686560296545723531500987435811251761140177522903249248942343936848964472480268407070085701533946530271284219155917492865869348053538182122743581653816628385586785850555721236282695981843049907839452378567223842376913387741494479749837843925953175993519758845518662540308088922529304462114529871682785721171212472679231358910367526354963457078623804756487027068450787198156109994145717858794918509174488875188400871602634251123442097710708131255559945611876924264640882314377306067148014640284988469561852455742313352445031529657440240141386638717665540478296861159003198395185712231437782767067612231102305297815968555771920438130709589425614985503591255682744638480526816573247455592103005192438074059880471605008449666826291563993032232342720050339818631825770780974571772743778555027536341717362893243417458384800877748442737806901286266115225967061520439038473488034612773162161426245521549159545368095043230016136880420222028414066600864904417057621969336154597617451287281825856177892408368042390181849380726951347837077075416102605912272075973273452527730460610888699859286405832387171394497574400471043686475158202907688261684875565023414936818484335462892456868903956860756020323641447178279170960917115060862706016221610607085182866686694322222173234342933209721307020902000713057364699494560692733423275703510705667825306377715913181530058167909187974544821895546728338596070367546667722784695308435080715890365544584348004537294704745734093190133206913348377545550836074186931286538258647942801803613270288247666966146320923195102627396671103338991080630733390393485557443806718897866646149342114692299283440978455088027163946365501511674167674603688219864519795492611702466095353615212246165884461535687154486895553894651909974884399762442537572554777462520140613401016674487474620978710599297012251629404093861316355908594489802569659015314037353206302906517597291078433251941220236511441557582500751313532615527280625502762849807822915107610921088576161333933996908910769933716484109326360007076803541773555146360722017553629465662157443696292240815670146926460911901963205319655090512565675063334156980979922758538798256886069350648139820617036648769158333985526883371075920985301083059148674732366224588177918890863093478463549652336012443744087581969001488029592451773062847364239009495166273086082748835866240760672115808413605280292527577932040629779742301058342104343280755386064354700808913403102623583340838936624183057896870490063495850551148172556014629960130915948935014541299860286549677822221053013135477868767460462453708305994847214609079065718736923875563044992662604430056433586958324873507147033263627389812588207165228925300730373183745650440304957805708128653620278122130917850048907114179174697264042893949575504505177742868587707683940433187522734415903294338075600145293302407842514966591223672037121036415011993097893042908239359468970750895337969612942732507167393765639395970430117288791870236104242845769501496843191216604159653312942094516141490543384896580070331364638780652822871536556187378936795628074305443445833639143321329745804413821597783214297186085569013015262220402676883037465965598485011284268202013550297112344756477967307649148671539543106659694419266079636372505749910409815233170668278031673648125367200376073533914767570107539438434054452239389268737094512737315253816175617333520695093132612008397823099298509098893109821738039984077252988257486572451769931896463038806072840914023046149631375130725552814743871450961971037631491185741600828710936856684691436438266817736581748374343781354001365618180819433601774287155264759999809116249356238750906332481853540255382981226327846564528045170645433343746553836032167112214917291408227180672249181882154310652324004276143403092150788279809260144474046717643940462876644607993098555300521517433903710492982493154730824232236052123207949118224384603715047666588471059220458349139352944494423671255143513470899588147150789091269486467990114248726386836883024245134893260850430837697612512171268336492983472267548444878033595359812090840822207209169185944441891240562252916019572647910526534948743646087136730178047047921399719136397842832594059148396451391491353625912990791129411796593879748684562513024276962904004752022603366517760229772495096513344535922219984068355917327498167865671227280058029693108419501376485082038684452957911867739246964701651238186459233627590049449262738427832155554917467379358461677247453016364148672521563680422682811522476358345774596768982781964836672316322516465267478732436818066748713697476103183237389738551709065738757439300757362818108577164929217715470839215758209904181420344105429703698945935962613815246405698825596863033525895656487216717107425289792106113489254053229048353065493861921589381841501148402439581643311598141993200246827938646282899377908294506129771092013760631709031188919540477150198153921170953211584710720585451656952241842337695537441817410889770511889314912667561190141727068088954763277848592986616762889755821230671593504517944666653668350395080701802052036331093189186796708265149566589087423196141254472275178266357576150180765879389608984978867282294578773107416047909098658850991923149899878998120990191641772144478078644660890231309439840943511678633341920100670053144750093107046239100027380071382938495302189709780388407764180983703988494040883425431593037010394774862778970309195696896457384898891963085602679300025034163757237457552589686525776833212692419245358787658524855240996374482675825880766827770393375204482296070888696906755569210005760626610924192763975186336370995010796746783824254301220582704289771439269576846143296516569981168657994672685587977738513075869685056733165044878635921589390104965199511196431246669512450913351483623299362198482843860321328254536935963427997085617285198801340508698083008186508759222022762961248456238036816054609864153061978531259770210711503071938400186848720107933603351854818056705058585142267519001350673038645180237976621449006139027832097037424427358862536661679528550486471977981127456067868342970786304343656368965493456651013225155080709280417414969872814457736544460596497555233258274562762003004675742009262575657263580413229397233622350146708657965411182159580712099823040910324355393469695670943016650910024758153212174134247713703469329588626231678154450175610104379582347093525779890541409720498463761652618124115160326644051790273047062072990576927626746260113798277887498975584420207140177548651676853857620192368844183946612859118618522571157746247009410406099160330713687325370107974623983101659319114926843670168088032151378019945693740101443125031950737214346086998013103334272304054618546374305302567684669470306495852847334628202637795495721172693971339101033201015392282979268423812039882365741963591409209849003476969075819892096085593707679092825703083419932843170355832546273089473668230238688079040531296671288874391544164345376650784435040892589215840014885959715825186029178131659084480238450148010427622740153087437208883048038668218986275826494754546474871172703913856729602169778156641623439280512935288529002812419738618185418699470058911072831716519978786719679497951509239389725255341399150579810001132003374485957185672652207678591353205894983302071544163647071885130448875473938782550437505286460979452828803628904301343488197050897166927864277067713661565306323606397552555435616483710175661444541582277084964799386598693033985293720657975886697761274137862375702387313101926519746412054262046573508326944298595931916073702362527597939263524339912880301708167253483463890112982456002163069324302068660361351598400802431845217889258909730718282218219982525085041200181096555130247480265716104924456974761663862831595748458662843387244495988991451414207688541800846551061990991820484824663018875689222893162138210795575746983679630770484101936009412316013389596227851508429837681504777669979191137043472940584085425827628204555269210017247289278671617864882417854833638128353703296483609976126071546419561133318209927052191336472153315531516126649251918229121775890267260590202446080482488172932136520526780747802278668800009932902412764404860054082408654588058164282199820165056312829239985671498684015612070422227448752695037128910238416801462107779815287439428976424730368127450031101994185179300745672816412516949714416408404784069418925934689657181579101926014264752535240897370715638605791819828386128524421229090709644895240472251667648668493237688411871997585599719477172128176718517683757891132436658258646685207844517595926829707591669364456708950055575421963337289642144841093636404457097574867446318607312046226148507249568131883464468932889787434755562524911098254171181923824176500802292886717685993703009829139517889797736067211860728822922333423630087185626735613103760384945170127758628383098293648799959746911974225740920021194264406629416379732285323286839550852594597368913396363221154487831817782565711855259819035020266857693405621479822234672574935022838027893023665925941285409993120954716934161484247008164378833576367211708669296819458096019808668711644636845438713751057724430507710098208480306800249665992985814524435077893530591159027547865860126442115584498099691365528577085304869153312180514361360467540864320627175418206708020511133628403919459137908421305701207127066178422241773801008923676198962479828007233730286837247148581012926349227810260975015539150848857917770880581832872788114867889811789352852009481476337466433190511564843555650298943444449624741898849111114468310964253066774527076906653916697284222253591662866060385936900826142464862239791255685263558282760664341673872902469135047862386713013217007292024190654251632396292724377540857889464204920224188104172771425129662821998271707162702881867720200108072350975381458922908145273306206819957165802668647806639142016754372366063102100631758761177433879900377045985585813361183992284060538045847335146049520277758168005225810342479212104949045288229491141209336327869239822851395068494639558027725027423859826458387639105174252077707449639414991017928215415548381299701638537329799228035208842044974766507799308944317564821245047681136751583761456019870184154743307226031530920121016934464713885026580045263266723753649004397825794984476370784320954474482443622882218084035935647638061400988527288100952727526303998235592068850356481580738742162576164358172641520177030551939268008087184961664252728603773997002071648591332280705609444025319823270393242994242359310164344419887772002074944123394809642968003615429363331476382513738418845170708210621283202343975186679643939426937180984385608274750649753905517463536985067303526822024422506578483336060895118237029137058805487261170191380503383904866484151933464487085304572223466188746118098885916594779534865126019821137012192785043197214745722614322177516433931552770687162043418459390574954526279318689023172224308228784854744896317943451635346094025327972548443842353666934338963943197447217538755049600622487238184835342821903178774817638046568213703879392365320143172253302919510055332135799882564138983971288414768448339841816992649616516235630929751035707603736846136343808358230623219997001352101083378156878220627957334399431658964387908660712757325166549349191287670681188235933687580616044209158068993820513888798113461861712597066892931695602683580586113611604528997426776943439752746983834361004419604935704430795110660587910384266080779050700393677720609591864584363036362046877546708708236875490055737628577656868262466908031178043472959648483646799662763043747704600199967087213134503406524190006551907408771153511968486909695406931181511447283300403376817736445089453823581189762961611041886264196383908274572214434020546505656719301967106733080149800318818145949502848598249606126745944003554881453676582799142324755734928338854706110946734183487076040072508627529861988932623138908579986571826029290844109930770749558641623541724633455270127899075790644345334168728988880474816979441971330535494525329548207938110301060657058704355792151195655049688272817502781755717142874838043419409791635805274093241356830121070203774795362218015971976501754887751659693141664800089963914446217332696732800835794218425678635467029149371123798280707780848412339669704778391868787811758906398583535791579025606451406033691563164095675989709298373951808659638212425238004240889542685857642890221483666125283970475895634478233923590297510840287237968199654772790330292289712910633612182280029071756724218196773080999279746511045276854865408138027588080993612414195132755668620586876616888439152452022896740218125294778320140922782130421796496797687503990440100789568199751726536207849154606573061783344720874164238779310051987162118264506961173408256745728039183662781847106799101686597339670515315523803935220234658022763622699531790354488410610040790775740350616290381962417163927948769704156851263214083527322335706222001414711111388968737065615775005699154834332606597634763248484209552233215585671672174888901299359365355353848407777204935633376599749052013467276886509183222939656006192784499741856190085671581379369977188505305633904676326596285696217269347677281829471163166995697838454319724278322776893432479866802808056183031289424992655001833001311214614311500605592349159372810288278749234208539850300524169396289831349787131061360250463320665799372214352379963066244102209224052174867159585142252068449738523362210985253366839410021815372240341809364052562550247452676526624010963322456653712041468575729317318589342843703327177298474891768404872989718190562207136031829798909787346723450727706739848503260382014588832014861146130012433855297144264646247751071863179456857782954985041514582970986261005597959845132555631311550792524555923601451651863190393554832886094405100550569067866684364658170427602074751368760694151085703192716013306286247285603691808447715305065233942744750712494649604071739133725610759950250429577837629812477809197351074701387901210189508480509396335858046404428033699076185287380771472273552507914085842281306836416372771770023179229715059833079395557286160886936221315060261453800615010938948620476752769812125069649368762881807828950895354637646527018939302326115586582621739203751013052747119497853992585618813261518196748140087148440488782593117411708906785337725466027985009948782814158869753463668637922895780750322376597128258687187714138526777060003871908602851913305603764369121321851347977446024866102046755036570413073486249627078140180291102736671463364607221362149228249327415703581889769692127308877541240599616302335000053698662684907855242538698848938880859992013509305815918258412798609819218714553282505550280082000893381673559072390325442745183108352579465984147660167006707035946437922796794236904531155915276859102508945669598584190639366535032927560205691519094044939152455033716321568941322091649114652645246793119163694467179203666753449064153184890570058173304499189229325528323763668552702620748527581666931467377098338594392152433546348483686935958453655003001955772812696624381722265524056096427209086195242081814180486791387168386283080788807451489788089288101773849945446562591653280377186766754710181580458343099734986803102407591633754010004861114099557322475534128124766396458648055624013188762662325519357951790216452391526666315953034040635820804575501331149255052894089115276841226429902167135459136734471584512282824650032871973878523395587398540394730692799179741701049934853676913885025290702574968177362180621644115034269812924642276239395770066697061509087864068788680280046583683565434985766577525703824242672927820737580115966826986055802058237275337090390408930362196190406474220480666993455911259216353133018267726932090093569868548229822104933764686688811507901970665466861370781209736966777812708828676013865463788787645144019152440766182348868589391763719951375899900380312951909935470532839865294476005883549952242125642720169717592588321098267819251016798096245438292003139177035014078766094662821287050880382991287266078801710012014357159706071070904366852899080568954116968617603973058081292582290376659757033702411188877917215467968055239393427992251633729900969146546483631086468363194504869244550553017710418206418661149168475904215599010793952122158751262755070200668020730803548910965082491369789056224745169588054726667584824873367212766147639188823944939907631346738894128125835812210283089269386243990870900665337691036637535829126790429397866571225735462863324430815222648569053065254112717276607286303640036558507239941095706770383731846715163138465557585176861526525123141165717103520060679802197668783543298357829652231517273572878102474907563038404551078484685374725902085732960772802666270646691371091908906419682349607341983529417634931619583064151231634919343381905700739211062906245802481287493847464730671254056794625756348546498139640917720220708300501932864213135885013213272199696214921258639880729814781645764476457627637231273959063762689941107195507906579731794277801870094399630924333123264102047012602309175963088846711816494817875137620376869102106319136835554546397649828875512395399490570333635033414311534637127988904966476332075862093311567114957319081575128971016666079864938578332154201539685034659629912436902737566405396846863503530622945678127953203615894895648948558358314966835677896063146003646231177940721411367752607246455542499444062319775370486204689456582523921785253909515240295402664199608572014224246696994609473545541990860207927371539147995269245531351220644243049717742946609350810739192328348503359066325393798545162071595996961203357063422397839317958556199287997606392126374093803579914636756536074612197888114573150453553588199312043316606153771357963455939882374571731136633415839951742083010710059608329733539306433672844209858535374141352847764310167751159401407823148193253817739038934031625461796740909360595722036850068290608603196879222877752739461183595407492163608946537201173052993292004958963037582730281598092800310025124747414892361677776522571576651189869657086049063764572242532903412089132908083188205268996870359486592523987115325316589221570944948244488924846197723258851483238271034416169732101745430925583440684924342029636743957896562054332688817834665575785206746053450087036249876377985285581218807812471429024283458606979296804682238993488805790037264032798124078477221450759608649985356204725418540280495183435985941351878086344768970524793153649244119881830297511695139642128504914131309549352267178054521608661550494724061612891704603899666817858073230602240778474614841054391887028799245690182268142894663107605901683408845693280360081910028537609290044915612845202594170367815538010337102321842048588847494574953052306191546114150254131770442200966384519105508320552458757556873110254721661331016828761815830838265954079644187619406529658335875247091748028945129163514194868985563531313037213046640920687536592054875321549035997882075452929144724171224411659480510874764705869492397532236960683292945340994441426375384255163377179350013654641182132906370499817604339238541382981899213659942314611852651143300983767892182808930941543738716975439187241660017027842712184980010220891584027605765182203851053590502772151880601351131356716364769706083958669235762993521998422425440853932291258339456635145161930956389861934624739998794381461462385799279409455607831966266931236804789142284307734619949804497293879562745557832622529570083080753191496071085051937214800133908539408672688534008010651852082036245870215770685178026269855032769314099121748133917083893434051922182333033940309143991858080603741624514809982958276440446898468806707869535700243464563525212961983663552531397116184395378910140693051841091895217005505934746994141374389999472865565595438718509751493940752950222658067426261539462628285629374896182601974560430083490913940558169697842171853240946038366307285815894712844603481492675289943507367137553933877097429635981119587358396848351726562470752644941558672566267151890333079919815720609782274350816495416058855336692561956884126057536522358402549973354958805396447118963186424891886590417902830197193785957738536865030180525873501818859094164706604179865701964740075196862234623779999797092896611596038150904996321707562482367425724569700268910349329463416342740108007394478322982509386533512175497419876856856294064507963482497817153812777383435969026199041311060033136934637224700658187536680575565526266235792114853405839481717749945830348137515044452686371251700039321265158744356094735565707715201892620470891057854704729857089804703133317362951835138518534882328231428374261014371429749969067620458993860193305689552368510251198674488188983377532946960977131523130877019305990910931204595159133114349866134700473910130235903781760389677311876495868624792643005405473075446595184939659016624146048896249599427160128053634175365770783143614434648495480562892880568201026661669113185447940876142650282839692688339982984693407404512185006382002133106020692823554175432599891433780615625588322065832028368463661114742360675474616275608374866119420136174642739962576266225741133173579273407827308644409009249693589890948492533207537903119960922157774976110226738274324840239447598505309293025848819857611730422514540298346918098469778009060855680536435947096851754446534849528235390781529872906825731324901044430351947973927120112388168994896776065257279386402606615495021810553086153471687311947271487715590395764499705188695169552631669679552596595161061552286289288396848742185576779655138953191366092405868667664682332334334089496551569247027370354074716617459304924820236808704478033365147465895633980532654253718253347736174835129796695500485933866003867923803074352249471016307533528711836554883427769491532104962850730612808023723024409613408439872827997952137550165675575025813204682461245732198184982399393447577498977357842375628689315320470105215128847615063859036892876080086138622830648462215367507365996797864666300351783808050678396036041803451782101435670160349763780284416899948883581703046760062786075075218026752217997110968365430380227820815341280961415390411626547880873932625432492748399173751449640839378398626519236563516215023691247989050713485551746158264726236506554566717382775375123327140428307367688147016583247991593365608932651899828526844381577027056359415433949252818766701573281676186262496498624461416926297574954462862276197774350238357130050677222554104936604600205156337752397620286377549111108223453555057525370688109573231444714475298739970989012248875819636163775020016623417051331264360349343381674051736629552493564423448221176717255295695111739443766498221436470754814251265404472666399892884993447358318035469009045508740031480292253490193114936309133689209711461810458275524866029550466953582054914234435802838122127134035027785085469744297735033854262772551442100583882203641686346321964327630072050314160385400268363914288569731466696585895427331038256655883298942171026914152009563693557772605093801026952329752604946260946586311181366813851113949359688037048901436787078687430522925689730244122149144911554480951421517052771867937946109424371305420067802825609981371470700436273326845907499128372111907349625167044126559262581024671583208612804392702935365545526235273460391822698315439946626317614572696176037472068599807310791397224607402775029601728562130499212577102131827619520493236781962513522743698823255869595937719200824716476022534752822833327992060078733849293662336677434923342131447288782506329837306150450307449999378224979020652881259454912550204769825247172200288746852501954828849177259540467046206083474464538062421532233400086993439670565717367638568753142751850527842771990616661019169567290776640650700597944258442022906573312702164381193849692926955503616835389081470306726878809423469553150015368504154581301201987973610037304370495032743473112196778637204463491132884615725994382508684866994366193012133683396106345243165827288784048832747714419320158442121027091867567574173886323669403894554447821113590058348225825547410600591252089123866608231011072534071001172345633832186632820170797016531155490131007230100181232421472002207162888764279217244044718592590695503685074371928238527715388293553973371355308456491913348298169092377020116173634072751860332881441838788421291860615012307194193141529162202330130289441571191809912908980611526839955058043978266444312326034483077504395403221339522053588057125518335922575855712592457332901393696738933526548541828083157430205093797345603182490701284091758450082319354142576701523008423133551296166770767867733038778059022088510500611611165276816364912783288041626107231242886880229808663098715140909709029565786187093191811250007567859330465854553907347908756425588273531702221752922243462738519086660437382684384121937760424078285960589130253794713810856640505992558403790962502974634734328710621801598699779036641855882122906249549626991668921598082322917690289904838229351432390891571393147126079895219158570610381321007812737153479312006748234257614595864418008212603174065012358650041862593177872522868865892261984283033380454006645859144750411880655858503213735774661169220541754832576270996345081640581560756878739923380715086080849812253816800460101104728794871117298253271029738224159421112548036636543964947794738854848758838461222143871014728253913562221857834103203849346477625535212373687527479699771295217781606245920547966753962432291957590982813219660479924560550522865419065715300074781032628341361494092753655634323577627352962087270913236955138746215924323011863857656464282109420517450627177293859837361482826229326430868147125580860954168732666220196838313957383531897090856041698395834296513617076611770746592808915813055278495746399636979736650102767759777861400915147273471969636853243724376287767539031697424163637229684578912732165193405931385545149250649432725378978352658323457186717561213533892634505817152372113405246404995299445266476475751431485069299362522030338281378816623853211884356662752391084051792963785717460586214167105715598946868280657514011764928903106980853049153039858991578272492641098070574154317282933065203906814811540980497516869125636663422904159200484156741070160722518734764199921367018328159042512160242588680530434578929422414963926471683905676148113848530729223126949441182174987190846040310955870909657010330404030600353780778997272250134153723954000091624976660381765491803711130344940231356692166908002281675823138916599732283902461122617682328001621870232017753438389021723767032208785094922870291500061755369877341387485399992420267349401173500658498584656303869972313623677514364270245421605827147940217878806235196457929324999547267286708347150110098163439024426423313830929654639620828240661743914758917609300462390465380915548623100198113165720585187466917782504540334967399308909981259537099211422012170575714207279374281064539509715437512711749893031909449532287188784680784798151634192323763254110244115000958835326933302658392089532060707354420530799266925688973762471961001901444698013049249711334969846581288028376574777078098509246187355639784114098811495894661343911364051059744834313331236811134123508509471145498193451343044601600470231818544503301658677569227754305125559757023310708513456414199394369628446869428763840000737250498844489691347935775904491811340124682818706332531423913350678645104858145552178955547465674226187641601915686698113896729172968362609335697046050840765922889706260285103291086532381592298561851291109456735781154935551718681759542833798300566964881489046744392670312659505258222507328013793637908829578423606781943251173537894152083371134560264660472854583052054880092570865295752566393413495842785600318381415820893903158764958584546628049783748690091005463924635604169242849984541530651178884032792320457610630173157528513301108338306135935227190531172894609045090352232319407329083277397315592573782215298446274720880936978699452547099109759375445537640172701918053315984353799304737648505923230332899842337963852636040574801816041853648403837800601312204013965974240912880318435281319578044788724903195773087524726052501518143780770028884313821481112524239939256974864573167387161748604661675696954480910487417514682825887596368304640507020114658281368283783394639565039222137373763565996145293839330548472335070499988065737443464059318501180636796082474772940237892917788829149979344875921703443076904241275051496979759929934940135672352846665342309326992117318116996363169263194534368156238093367338402279104374106426261559280869170094708417052989181567552958779289022898738768822747642226042478146970408610290949875079854358897815168303317899949727154404779669775503900078575672261224170759741176757959396067721438101530853420941145180333709962872696927651795662540463741710598552378808280444794765001172579053157011925038137055284147183460774532926950497367132222264451108483352708601580098012214059833335401383981080972543568191005037273330360257946673698959426182205062315336041619467098168416262990193532597588846948133506670221150185210961427767981347165364257938602107572759692418604962873952041475492492593817838018901509433573904189296906218383554836690150136273347071771979296482087404229795811190077512540210745445291606810451712535612683407030272203712764390378514036199634855277144627226275774669933434790236846015171277366676616362357829111348956810791543801922502583971943390119211258304599112397840362530998942765742449954162743279166815401921335605362756477137305261676914182819936407873764722308972760183319954653048574742325523582160850289503879861690200159373553145972966363890286057096896541921111914722826293042476906420925003730848381140971847587231502961242363189106046109600869414035823981346213736562618898474422806633729210971439390443465706026382720606378054033169568155352545331794502233619008197379195847689012753947731536503748891279653541078471852201400801723048639811931037622717563667374964754055401473081786689936291431182966262274075163198659618610438681052772293331901140359712474898388477305332080130473713482762640198544478363134308721102514360179586888683813358685693187785241833196868924509833031872401233057661471143088623782292614933514013463883583031561987548449116521582575689073931099484486743023117309751900752507224122175421982729574049500540554410014571189533373564340410562421434271700910056571477327817287500366415386968606785356625823163929260063910341424354468570553975957618179221955309955302768338693963560268540427225087748375994658713564231723842768666705665339180006566858863247196654570018878439183661791880057454366480710278306730069557137864467330542664547166591210932013232252720992926124361569162450386362651803782343414620500126614766395471988968368552227625704680444704317448937272822949915745769005124593399962247323871728397343915455578777662135979526115875811985615764917545104145598290268097137609669178216989836756637343086939737442511769114492091848271218532267773335204896769261349464648576122399396048520998908355488494100010687771640239841414363694174045458894901537947807802007098013579727370228001138879864701911419756490934153648987609470614748171521949419181533485568021358667652970479710560900612018132587809824013279614657581495017789162145296904740938428655585353794690092700842659573589786871894825507476436494708473318231204156162781278473058899737498335586993386681172109745471556483729784586614249069642351633515076355449979286854321105224189259982413799271222059334943510511363535998976117201219202055596688702299505407848935475109130492669997966016913657288748573476530500565465402618481993561876903538901944871855354597205248987374089162698279204933363554654044083127105505432899436693107651846180138263622679600707396644820699854630425540237956978983665836066670656150069397823409687032972666137808718635326997865264639975911104231542091958826337786251974438292660080363014906371949007441005576942797250620104361300344980138386465380558417952761245071566266766788072565259720363048446237698866412756293555534148597932657380895726232151561095779191511116850810908652075299001369694404352319121206698303692496993364677516148842190591738653515017034823223053162177451156942445163062850682922703009727093693353236475085697922131525955419552563047794691432441942530372042462105890589575218353306184824298730903742055618071268448919257198184471745020057947110743885826132365325735803698143862001410089301411167901716126986756103907970568187573950121632169460867715355159253221545307048006512836569678934743426381896219997541002145535600498312352029713884699174092740959681543869455062080524922234000709552692126926531086277502050003017447902848238062312535138095872284726530802034388847034703858111297539098206343553062856231624243629236524414591379100885499421420470219725245032986343648826935569631227390801090992680958814097164718090243139602905657496718632595906910759346957473054741835547606775744635787983582245269403371052110694593073289848212936476382438749592780044112957354981616654579473831979949089227225692436909073527171163748483092783691728040634915485061819312821728417997378128068707527501048547949854425064130558427935550095335041347985082862139336752281543018779824072582950030055661917603471053504073382044769970045422127481845088122587295289527453411000901402813393555810677252482917892021332346331857389533103099685029927681254680526667003882111144530331694622865302453139017939372888575198724992139611000491144889759564139786470171840073640476633196333010487391118729342474084732500427990794293303559720983026827639925917150127856866877734538408718486215892953507646013801101180832879254042821775282750510272047391551492583165793610979441459533570151142307188833106700434756822136199811048842148246096101814200895222123362200540177554007783584132514874622538024735668330763894151055037021744470458481984552246960249358504735912813471538525639125303084618170864998061659252117661603737367854703772482682167618810438676860061469643177907973717490871925789400326802795781785160335321965926749344207184468357959090399006066567112324702460303474353322698179387911845658923814547597880623518055087741553471076173308545865160534256961765056781262136675030400625423728629498390574440718898630448924911084660995726305825878978186492412862471553312332891968758691332613641032492790076280929502419361401943924466082333808459970723436215810422610678914888434004566214729682649504553561770534655762812185193018068731131285746095503310090179559003817527724063071802140357074086636260126151283582825794351656885427463160171860505926752254386539861280454532587432987888553620780727135824027976784840709018147345871043730206316860291254996283823752884035597786542239519842375952988972549266404255531759816302782696485537991111113397059103117858316911590771399909363838154870939685246704099527363866846940353218154945473136790080273557163337716861429093195621424332081681011539749986884330061836978722886683392675140837930621642167793453477979037670655050299447363700713574234734277006974558642700873966538432351082105431896833671072367552019677314702913505399566692696809268458025493618591746200124072223138156825609000533922343845134864070236248440095977365535008487965033782274298111866803762604009647581957650589374012199167182249472501233957279305484129162935036950515973583068430621746206426088929883497651338262316834161343662046017749099167553112021579164267162502663973414623888235582219394875458012642656605009077996555337436283675827777392038854700564756988021394368394893131241957437208760235581101326397406517987220023838443284566909155173224408163876898910103230149610311834065433554884335860112056295237750558843895966893295007545897497381506132849835071487927902277708968411646494586137179410023571550440018262026564316978690716902836830280501138875053810212356358226393120460056513372666176552136253658825585146061045083504238103404634586224249198671107531082949099235145687641290242944463862144593957745177780637040709052010412273445230771424468338697639940341017807621356078845997490425827294814901588664488055267402430906342232460182358367080493002137195859901098256559837103185010971225497111239853159533443341626400300960964039274642757259232477755721097312035880794092490526563219662652283287264643403804979500527781172937680238970858098422761268099658527780102524158169139736450159184173838599469454207125170430823332823886333297846492866470775217664176247323067172308457622202580198090640865475178765033299772042047060429984510128212132890247388701426477691213313900758242801412092999215416511842821036584747924061472202330368250175283716827243565340666690356450628211364057040911724899910672816317727796170867478041010548919023729600179981863350020942154808364295954336586959288085286814965791272281286463943236779263767532550399285957786168430561445558832442615373889245821226784802516936376469890949634118477867915795123665576369686661871156860750813199308497631427799022618145777038036448013869570548864975344108732135206778783777542898746244768516957548377397097868695568528061659923867594738688500343717187716324680424754334424253896238840017019414864992072055908319053217992661325860628229155077296368793374245470970988057901534895244000522283575394188065522154596922375720195683613593330458505659554749330590910785513465543554372922667012493626214492538858796681597535192318478589875395606188290993973362737347209388041077266622042499131248954702341895061696436660465194000585061847735981928121825152783709487139131180064204114008481852598628713676139342057936193476247615554559124050095612593281480787049214904516812892808685307114218411198180507829960917879618123705770601654184725052565423500200251462547244371856807785946657254848857518774675913115951456903843050877751944701054343360483723147594167795549445843437942780211790084183580169562885997874342794122393543934922610196042426865781477418990666160734333683950154567283839011740839535105676865996506842744583300751294837720311443314278757584710014575257538559584111039874616742773536988321761222773434219391597745036524816684998276041318971364875790293612803262205593808184493164199391159428515748634923499526658106642766352626499705187694425458981701121532408850702548594535690374430820933900071799510052479049549526261683735367379449943442049948615964234136386451926647485659595105981695426463988512238038815789795983553140547051494190847078188517911531839035637941153621641461501693199850660424618056604908521429354784599421757540308262278351241688407203034678676574384960363932312005664713330615738019756167804889948649876757163060967085001848727629593992420691121147190841894415520179105043803311917774130872990399450989635334255646827274141180844665066543013361813779848484794405304358879650968897476562714102567400119346195245133924251212144217452555647971781106370005708560785021523779102983746625792089324602537799099311455497406751023938598876151292101171870523009869996486964357732602170679534849924255942433480788525799779305515613703610253844211673691416876828794474555110336183872451198735283469117746116311946319554527702547669165472498634298920027658577438887852439934677451736272994125918457808695764119827163790266758651445639638965191436064550530342293221061003131469531427155358282281293132877934093726574430502436391990447758938450005600293207088803943091311984712783725287622248594128564161963886256422112968041388765661101468945108716298017435483843899691055473348663813117151252424411380157550728047488656681959238579418981335423925881642409171003938268608127640849458906895767054826320831064135552706549213606114957027559875826531409042593423980834680902374725606462641234174277608972774123284935536349959591901636958479089213931049531872559219264726548620565206719877114923517460406767223352198342661691931099130146448612881607636272610567734983955908984181710116805460408964942687112672080255407051418399163535989559666991764503824846328638481579831464186939217573536975288188717288222564858959837280033927998062583004947653563486591744833995205574960448704168106914017255322415436256126543684027306914956742202377319635509594004613791439972075991530291083283809514592165141220002944261824578106582958161092652314994691298971102222289147309380385554206131872302821852106373348662316625297341403512803364692295899969141372771399297760152484415693755801962025655556954257477505998363654513428133355864203024963538620534579712408389028861415917735033127124496262625451211068021371415657151706100457813392100610175199438431705960807163146208556301448713692797805613369221414931867514634489951153170642189498305295845080267815460688848658054277933974583056247966192427743805298346530020960005006258033337927129255680696317033785305780910412012113994285046242489436199079398835007691546432709972877611891316380710761967144135141149731918987144120755210339432704840446633901306972670751116293246030187532659458556784451655579065007248813788498645916894790196767727722017536295111238901173347770937844752601935496271723027011813608936105355031629613495881842094522206160246474359734136084922029492080737181737975149970671439813722171219535509211709934007893136175708684000772769902367120367847898068356198997470762546742395830506301204394955855469691400303406881300428212286301109777843293439992582449698652435169965048004020654211426526871058800985154460528868237715890601447414856112339311725952461449398394437706384234426027373295114726133502557185403723420913499840003750301267010042086997826857183753571032982394874809080618794159384843962553510061537217558809837460919571287799831339756929979952762330957420333180450044536667536130628877899822037878504971809440162707001095408853516154692941798436731519270144739124340396217103157827391101675430080386123605961908110568716820352716824160195259035873565877858144637564072656279793730686096929003096423248826127905117278714809119894219474709701732203083865129917085047832461970257410857517132152886362998202892233391606589156551064658316544058718318434192292221048240445367022236954981410940040543103668250280991322923279900881966606201839067857460538485992512174793576026468363599676931167186469537317799840865529038318524734664179566929357260089229378318350120581282140050978341206040900998266740015852968921258989812011176076115968599446630743801728806659429303091976867159313647498255156468995312654383944996501612162369651328630004737981493334177566939308248909478139139223401928571474176703708670206991952521108345870485018394833754802823371683243765072561465850913747161190623378580886607858192291853799549723768858045242541782338860746219641066054054165185925194801675842134751343550063799468766467729058695713912595851998155261636196004026949394907302182357509492854668440432243285494467889214328998541936956614385634034211533147657970120041110757362515289114753102994547852424841363317428793915724796866701733058990129374816345233466875770366150180703141500106956794577597206158781865609253551016086545125279880834328473993429796379874130427897973395775735927112695088557282001588459931748292882056765801364497174726740240486645680761823801170052536574549269423075313579959351009091915671307402374195133320273669993622237877887634534518903170232459761200165904083729266729979102951008479432720005890062169571001793416746798174730953439928382341005568331692598312056644284154673695499384274227392040658375859554688653088112384954134112475198550734892075130901091905321647973074579214472574149052158938982972911024832644370814350976870182030640441697736397375676098026505175225684076639765538805058825241435472662661957961213772414167920581215698795376444324434521629770766719607710260220122907578479494374750557945243589599101664963769417963082596471961966624719400144841126253249782433130427753813099267874645371163253447665240856672166658417818793822680281045817695326220916532127856408080157920206414560227192978503546580882770098570928357981066198320477750602844030415148998896710629153705421630121732236869997718731977141317210895121585582110578579169280845313816609612469780148214896996316090295638825968817945377880882714016555580588876859001144769937003474451872210745722782199244771768998475706080107655420725609437872943127671911963589796307456349695628824696209970669149112234953847554597498173625329369266666611100023648537018296619674121955687100190124241685213674780668219700418665585316327200353283324188862108543621919940091953809882052874675709433073510587820138547842007886274950041530641799980875874942048571783800031493093278159537706657714170697807990593229693598323903989068106197991188859709703818084279365308315691152266708251689495038187014477480928904350915522427907582029287384906351890075069845942139089587382735743885763418647076382990971671286211115278333485215994863135777479675187762290366362948254316892063949664611512844913614933965114631798879130854140460185494807687411240004553816721157088709166817633183976721276167762313989054816358151457665104034411460684609223384091034558101646185086696279442509538345689416009563591017144612925788405587322523036543810006365651168456066299343782185779712453754743387475668392764648442549602797377946559693658595113034651558305969005521096382273706677157628943533390208120156533611371878004939683552675150165207358292739016646881672573903024357414615370942450028390383120979846628208120335036535753909367090217049678848814328354743354565511149859555030291988698587372796111732322554737430716026078587244666753831278159756330017617571780078544053148133292415952281847682969657381080731804815668392185074183723514721485766904917673476657533708620822490113489982629686078842888155989691293431666752981806120187059938452138205230521601517992658143687233849655899186344975729725601020995195099164355701769470316769065001665235718152020818936715915612951521381450727338579540777680407197432917253375394806642968327285877442085056074546292765431293519052158601991542342201141718960244083108839207486510693282184456172810594736483124999165322167890119428241870944645782184931321704870814016202442461679819100624030483046566080010081520893701336019667790072792894255951469016533106371215287982976652664430958644305350131229377280523183026494867732692127650574248151913689359562512435954351863321217400979427732329619460642798751421874379765810256004434502013764204449251788210747514390676354317543581658608685144263456390488883986914578987861029948969135143505162058853291514922845848739697294703709319084857801852953289914380904698678991206556475338079149415646034282716197270429944674716283409926414955881532687494190195404883682346693670856612041094883701200783364209659630827109361266949388524782173762352708633989475455877923466499542677164847406839109758383900545824776285490965606792417019514407325963809900765589569907280214180704275942831000209535394389453203088250369779630127315227917232890086208331102322768084308400647756232430534691840886074914581006174453566508290867763745587881649902659009303789366868447311683559914289282400534438050456080928298911821542508704698732511460171623609043674732584793126869128465912741191079865415699471562372707254595089853602747181478957332879922673856052144831971852886937959537027124067255348349958248197984489657610251904762762570178167374706476114158095349676041808440045658677004864236582453735189009306708241074736166078972562967161580053015960151618537612604099437630421050209437252169999906654920410738542850086061714640214317576549150011462955494535129372531404848535453815232867271167880330322846899550129693153833138736641678518888314927207146749289513015313879245789705863823981203359004030574261629857081724816041341118833804962731384705136704527980608399154232521896817685287575982638358944788650096924358146428502371351114315099553074015180866138514194765053284038401346459489370057876497415372331964492805244622080257111838257118411137777428120049902843126543077037217528187756321846541978135190530747659792998686191787138573985631458721866048161162057525680793543894479906957010574757779138533051292339980978828547329387876891799743819300140662966943321069083193071849489491371567248645042967911963831229642804067144869122847463952665066940661325561501491880513090409874306614299951248426746938445695922128302694355961132355136356877827977658091075931507710808240320264415162113047783171034935759948910912464270660456924488009830887748366102230703596721273606436408291348317575365310641170509882626084467270167708416947753285617544575052225071405282492826475122095096998970983985146363791684574266143038707337749550725828358959297438486052555142025786427578511928150026962425289648631555718794773672609266535306097039804784148887953619657256948606982135538880460135635061728248234044755754245027565195939379827175944498727746725255546996195808494586768975828050216940988464890677575644328065694511579335259977519698602761824335822203435685466421738393075941508413397428231125104643094961273628030665020452616959526309358496245218724133968236527263858141424022007619120871134118409373822513905256528176285086280242636075303458602692293057860415198633684979539039238199494682281282594086346487830487576604558192474580251968896288449520438621699328614782580672057773237903854596653697446192722851958101293378285387057141467174637615340646822250314219402654008496677160519234999440801444582516744259405201300300322029718504066963781339970803978960188244469292190700275648188259866350977605405681556331098874766293004481296759804933329109807342490001730654898762933836837532891148928045569397846121433858865954013721216903697421436593066034169831750756450501405874044592053069192837510385756389263417788906769202200872597398607803642090849211366445797894532906679433102184442745017710179319741488566884516295157941043937808122141683498562427015330509442090520785605207641282838183458545540895743910990346149726793606237655388091200757852586803757301625297946389275570370042161932309063273068175817910503033994830437936736286597368122688658570552535671923348479289733134917512751352236967268199991860099133331130376023970617458647274210503886038594615181202505404493654903563967755847219943442740479955351019966721601277994752534005190979338094739551737243557719559096954467584941181952344736467847028247064336463181207047465805961298979120808067863476563858252043397893308331651084995500018927837555382905628266876664338015850379999559196386292155866843443731046323984701013051108992160445914426932565881176503499142954655717025930886180271848073963012393998368912318001163384000137823641338316650949759692053564553912270234128632368915770983796002090330811841217247584112738732113930999589992515191662388286088496074204920151421537879787139832726203525729347858169577789094605171394682231073658302858801150832884914663571162401514161631859986334905810285961982189297115413505828935607287999090999286836950170147933684983174846982455880465233038415467765618988821509462371168516983917903371289186626609289439028245216422862693693247301238899439845494013177306112948287660202908577496270695623013720827143214310712099128645945515401539749816587793799026355559588338179816057136473439086499981971197482867938960883339186269733483057737641049654851652571533771839580817211073111419968075481215179461319410058729058733217414487207703280771659792917915376451696149304795806248396131071080411786330163234365297191212427654728149225199454337491925911886949379832676319785169720545044511290275831291569871634884065048739377481499303488251928150328279172931362713065455816420818985977387928260126332850698086909588407465567851553700740288848859682820797856397546203482174490898432290450258311960493504774371780737516720624691023497903743342317257091094180680092527277847941514598760725243920612662652002918433910069239244883385415910729366287873608666321790459315178523244684435634051096972477959397746816972506731745847234312008802979468124524763645085595930844288168126692286134840599487717466432234707106091307718484343347456306662282396976374538474651319296153693991787615121970065756832968980765021554594606551626938690755220026146328998439183907755671481974979735766014893916762891416756066835115919733531058240497339756616010706651732939974010536764664205385445729094285691719635354751922402183650811107620422685350811960454649955131229756929446158139249773584778558005545097891001597265761192553247171865125412727205738191478063450186555007911722153611544833949557001344624641088401775009092728666910166974507793818393958220597101404434077532206981095087839658172133743905731513746244586217065143222775323465874223905513150035961367024275117058381978461197831208970860296630860784251098986271012927760630824655137626809437650942212028228630014766414020668516336329453826802286309576197202658851810341017794213539928609699313446114417602529440808706753005822963231424622840759611855094734936409436539135286803357806035034338151191571946850890083044416950895146582944907614850743190522509552824581409498225021876353558911088620062896995358763184995831803349580541178331886513729292501223448087921286637885156322161792730045898797188527224177598018666067863871317610552580514658685126464619154765502062351721505045046216077533955913504663538052354624703312080586749015304370057647300241119675377924384644586821339517937659013939873249276113022993432429577294812335627069794819149730317552267867043870225657372570968086435158881885964514822144235101248943949826869016409364007589817532727627595696654510221836450144649905895312043685125306328956860975779202128940573284182105640496419814113655039381115244031827954307890143325410261422580428190045929282970965249996292137360046969040816053674791932128016549625009055616674393337649749225987867818477863572365379412345613472525192932461554164198126270272513575731557915440836826700059407369457034268331728793931115812151035396180446712456903789531278619140042245157952126020451796922958713674902237288698433042061042590864279957669048586878454550368612239042267744887301143665308080650763057474051679661877843363137283206420644872588367661175864930590181697502815404882835067885669160288913779548632787238538365195283986872210059385700127522396618422057270034852897027607778660626332025082268160184441760252938043960694870150651722279458806473095498482852238863683797324633979072413122876640320831963142822645260799590104325342441467760261863146998020518218166667020851141398513706181918404443379038813938447533440306828381059121998892033051428318905529572698709284755217313311520685611200023456383602764554740715569317398431473651203193535931354845734151628368346349762928966115891385255927209166940560622974739036022168538066482668475254150839345977812189198286116186449623476601486953157576793147821204468605784020540168179713213299292179434105611656698806192710858996134503755868620619673292568847429149403626592620395955923424566191265997229896819429007451953992883330476574053100749979362595651944027059791333374306357569365347018042467773250717600653247524284026136324805440980126403031268089557842138785143757187771921632022164884802522364554221679484642697211533979145319027184271510721605544045648013799972998273754362596373326253504487501144639810880412201066324312557964524833201929897656624780363815478408676775379465841420637369128098757577504557797116526821453590304224220520651603694818370318802698716088162736016839863175300377300600312604320475627111883967212204297596551545851434101407696003940796810131098980264252050316567319068755032398892656551534686740015500977056701845668365189205855886158574342886197735085098638863782084579043341746867204431071169715812554117112029033039856263456295939232520612808668644979496435103662643715295654584199120945649496659962513037476789278511465334851892957319918125152793313058718749870072701472023491677019793676904609799659683693771553631829255751314261899497791297698120994108482538817953401231714259927074625247616897442712234075389005689894237699245274723749243590208489049067476302300923239035431387328096580203493103848058737782477376082079386164884695953082185552455125562809162142874210355588702426681005775212829657987216526024473214401543639779673306749878787451707188545968832509242938032213929705566651763070770532111365094312207632811222530104749943989442571195477790503316460141625781712081442999374995028643212777218436726764347460834231333506204362840846276082181022711278910117049799792824345870024883532113921851978820236608366369320256627520122186362799007077967447968758338699812747082655410310058254555436703513412355120061069044500421490376622745887874881828465507092849920320428689077537962525384085907379550591605776369823851045939700781650001223836512389570146433860303277571875739000978924152100775363729691691001508807379694167292382280027040650092046001887095219935189820597651071835592149464660222914153703108404034282089142976670735094853903546915252955539775590645337092235574941237824424076547082810247074329459849573987801622287218717746647214721457718805630099331807927225877683064291311605263638007097425920588465840743602064735854636557680214542964573243528866462933812402818660663921781628944897520147745709596824543518423087200577911396417054711419195987033145470156631414442771129018454466075835233235167253528360818571471944963430161521526226504710574482306456280023359692336139626753631437900068059872745406762732991299671012636341972310622641513394402600593769622309079445551391150018673522475031422378568047487681111657557279371446416519608683027704619900463694630913397076770627627629918425311222455648981986172743569152120040471263952864113707423944810360070048000598893394177648096655501904119258325398118510499089028241673915281128158780693102333964983764723201982216751591955694531233258639933299874509246784602800445757022218250065622001801186647198277262129106291856494638776877609447527414948354738745233675740175720660879821367923216605458740781912245292796150049516946740441687056162476669260642220818011867611738722149977367489802698440547595870967966657780686061606241044755377728471541105707068932174070776001503523920774025165606274838271610287860536136811860964771866664366723780009429502669393857661090104897370003993196715636594044774719594266061057233103298055005831961505415404267885180731427367429689303388707701696829082837867689756402414257999703051669041699954496608547060755200134280863249685352200514106373907615091718808908729889947845786800139373521139287335489817186780135219604050447636390661613542143666665370929265184631921835120717902967204868748347202678427637728174747005271303887100676981399668130534805351421562157335967501100828550409176217219369524046181686558686303898978152944791805012396471816830691266230435616379545394919501767074323887831468211630480871652904741334509323641132309646036593397009424887116508233389544185502695364423892532828239616365215922716743566404589930383535141264119603148322738992593564149441527440588791495571539926622895215442038360714881438303501616221017861352111315798007860192437092328471737074661074768516282829367903508997466981856132402220938740958473902977878585150837264715595597909168140707507306383391926287012600084144397635982922150327023645972213310616953960453228828883712385552242826253861180283268733895818846125214623537911842989956622066237220729564781425964503701880670344700913007572341234237923414018142570636741861377292597001271425538773798789629025861960320310061874339028118989112596238055278149934851125772287310926863948687765585778561517289466820743438637848356629246092399025981106138677335669452034249004642940138961366892881491790156522047265199170129564542650209291682539880433529019234997308293990996540990246802424725280209815076895251091271992047362816734168173298262232803713976225116019040219992577987867095610110979570794267315246925652766396090416083197474544667023110450631100001640404477506367457713928845014208996250062732188944973653678999551582494594910087979820866800746241490270604321402947124786116215505271684183423210570372850635099919639216127041748306596090436209622034227750037428474693565221459029723087923947239348542936877111721074095553474624501581050379042122782316062764917725539522355965751866573405857039960919006350539495672462246087430868786299974989046314694010278203534828127876839749092105548477675577185451256653830864810557230419637048271167940771913640983333069550002841616262387289011020444261476240934702528268618289359219751340417201261861365991332451019877015891196807145517804776361106665715165555203358511205127638143895787564006005798247793879835492905337943637307576146940221121629966032611374150215775923381782141871247912214590491947946520025079311287212237561072965247804330677249057267263257657383017967362192022050697335837118873104985632724118797881220954520871687808664988248447782252713277142873316383344750868047092422095229607496648390178765022391850537471689791744227066742124521939197077443672980022069472703477746782871156117578616569622276445014397675024009057000967344593173331504478383683693314650320180397389716872032801076319084323418709273378770277778015453619953994194571296253064355343039551503853526866244263361268047905445847239465089891528960883164916769502314717165579419328500211294508102807550621112119115416340074965657287527696654765222505749375585382359763669466972239766756940611929388537271968002468542182912849215980709556842686693415662291539341143980664246436134892159694406038742623882479355627591673167198536328817613286640708111428709843121895153595026301570498945117514631076526990920426255336904900236509509940195338694252286863465158482251218427755724014502408180634633297643646004525943660450273124349444950702291533911875527988032020397378642725525216494155596226587793990040948422289482609008668828150222715165527750830845115690920158349065996999342461527804314105478245524227480277382542817086627958225613545093012507121056866827907057574410354638828791909395538939008684135487500764484202077952154124596248439400820872223319224503300093438976478503502846486742713885599793354696357336258965745383891112816356384138850066242711431150150520305034478524119338322126074468046723399175994959513486612031808063596903021090649344112761737526729730884197178052548003538246103985414926076971405341034513751184194157256570256415547333157293028241196151624501291900112062333714996156534242712110736984335244751619863552869752084982995975329632988309759043921699138138087879184219607888925245257532024391279176137448443950273112814851096775129471180088893575378511943742129402023963980555869236480888109920463920660167638389182992815504298018792301197521703284716212295515442832356258445259329032495345814046553432006546973091357079851667046465079613326578857850318198122036334937377797181425329365853325330994703404494625874741682605061596655561953400744031986589018164069566946120865114959797157422171833680179596188113044191832437021430923262537789520537071084319957299689598675023125281344614030509894764954825665813879146766350001624082693414763718968983514560055753353389432897134953866897018092724286195143991617065642528208667173293996152087276243400959599774090239944278084915597315506258888838997195204080101575447519412074281326753452753028788079690524460656329457515835176906633071153423586929933614275091803099429810313471300357445109565182096482920457964069828753086566765743766709535232569124499398926311188047882463221887498746421760975484747435498434415790409344863796471258591380454282437324474870861602981255286860060451901057009822628008205840571498300956195617110142674302250116512230005772617695339473984894296048732816498940442780343749004092241220107525523913180056466285449373947162810609055911986942352297123278420147282765797086314821834820070215677071167602829092185755530844040338416048637935866859730586127579659353895674370896170664336213918915490951079404780016034691179654498125405884307638585748988232305523678318165108995925524447861194899559181690842854910511920166291982728874758002470141278257035714469018443220148191965452901221296313084632398031594897526215198685374762445844300567043676413000378068102574652001584747816123030784028230180802639244747984179079356027282071804351305785490731056319136541275893187371765240658399286418933938324817575277545583646884699629429393861658488488827399984253477886786499283429673855956406641640147976720535504681232229705039504606929121500478443318764512856093766176268873746211112261067200231880208127711786235202447195762527737930700827393301685503954972348806356511650908488143962991227929428610699550748840450330313967365418017135447328555832939012310870898232607889879608689975880577940696860125365987321046637307678042112577499946574407082564268341487144205339383892226866104841268174602794147000455776899283119953642222512825650501883427241321172106622601698652279516888155281779333100001040721912762698501252221378081728007597208716363387306821185002699179983240304528121942263057150003634488401030190941518304841553711843823337332577895317809751023996685477409784492026575507874380723383633408247996212939009391199207671443168564435568422515128466191966954909616067990479487739356838953575898851437340760955705328955305703236141920715311760133938149888933686680527159672108993821278458762033016877503139298132897156257516917219687101909496732645208311053925399738173701480077321366072278689571812926868438463291694650068021816564087179261913696389533639488595720505298436472891825329534487160828798327216664039832527751535192467900815058392922432197340724435412143330343790098878206218888748159845164688561977395097375217088989853482164440320331356092697975696559424335874933289653492860417974196877561463283385337433187546612896751035494135570423761839241731200972657342080717568267246641408938749872552836289909707328762579367231901834542381670998133943095145800284441432229469905175457200009211837031147993855427983113706152247521486127123957395786939993928670644212149297383368830912255833522439281017622337649833711069553071204689227579073242281772970765324246369344533616827015270176899989481115222133872862791139833365425422211845507380598470320508325667573697120141782876959689266664480049633798092240635098422789847659310707139706887978647084783285760058690609718804250626974253673425612651285440352662509309384375017622644427572084321024869431899991171276189108682441106644419392027490803038094825259607935466656414255765522752518152107811221719881061682126280625792407828096356076847073860348806619150812052091836506532043327976574749237091629085767088824348743698391755471200413469280419283644419092370705365459900464710723355582418784610226124196627221049208072718824355816833699237400871910632505221174713823782638307180182999416133940230799458594197773025571160071477608002146573374844510223838945314421359245415448966212057355029743406371150555646070580635146654194561565823852390849987526657652563432829825107740488179672826441115955131855784094235839309911798471249092310809358298709481846162597580961700267801602027064900792079730106915878503918078578395343152162560677293414524972090301155045847591508303920540696717244822311790867195886086111018819025787708811143172681031695397687603238015061468627621471745501128130448570267294161268944586943797917759575530821588504623686449040773550196594492157700772655432042704482672549535836919528887336680814788492837232793305068041978461766882599828954673467613429268446217042653847465692058137134720690536152187104709537853279415737272406096627814425035251887551434469964142505389878918081141259867113194510875571365788704553378510241832723363054100064656084512393430610703772537521790953417323211480210913329634795379381916224381888755863599104627501641252198046358727951344826981122797340512276041045385083361658697151861258123882424052207842701774110817642812928212783195140410337352401912151904489199191378339198752920737191880759753443791065276862762858006757122794940923825738092555646226026800358691615018638451611208039376790798564475977888066349439709275422952744897451695922961416860463334688217108351695953969661591538620231379626219763779002758796910480716493798239725861539383771729190771763940557090804146128636792228348883532266125806219607581125124506267685438532574008068990055063192569526251550508479983004109783734148356662079737607522684580881766196819951952767632804566689794619611723541744989352880515616238769252851530999960216166131092402434876055931623221296605637362236910767451692625338013126504787247230145387755851498943873088351619338363794962405155630805777468929978958277755960260653186979357609598234154497071321899691061823307535193298947931201842112907010113043699639629902525824306598540860380415047411562901887595579093546376985390738833111434619802567365699623110407188808134491876797930292002065268668978303525222474624928779790048376093751617125512486651959523099273503358365183895404892015937392854315507846606645374213295852823554159511430770705357306452948840977527347344062485238982294298262334620583757910915286960709977633648140359452601010377517668656279960442940674793664567451230392765208960805225723305236417496799420418220870229569006877993860026762731182399508978131774456689482670836825743404875679456086364971037674310803940047859386726571296325887373100475953169339495935332801591075335351312109504034523053795760702926601891371894811013583745704873886829516129450685501050662713074709255952151739152292060910322460498491923211205995096813675248342780019910536949401402100326769467154513736931120569477380058500279210651735029964086600960171653013488532624885694917814712469968393283018761531724251904363168335461247671903113670912689391055162258232454920952891770391128148002573848663803979940179014912455261519022795773541999806468101319782770374314056648694576367086943621451424794977526699395034417358516729548050376773910030023198392027322431948464794035039546270492384016100788884614653932718180682382335507973689719181677855414460136637660380656040814623354741994863193763710634502399379635556929632501651680271517444599292478839643018404510446909696492249724615423714154065270020316372841781055148922436456903576323500769702002402565549838781997967738427686347996215081221088760512831027940969064533844089340032566490539020041591293227833802475589839507080222991958731025570620437493360017788939442039029922474594287458772618426516779641041908056655305431995510744807792071416446744056136980783877218896817494179370228262444978986493349417717432588680312426516341918023109159217348440490089122327911104511616758565729269235362813673807802939328870965054813097036124427117271460178176247633169475804523612588594204271368624351401899981824491966555456651915387331446505379176126288762063891827339969346308476537865483311874095112259621084764247537091212020463087413696322808768451249040694537766212203964073608738576263654439175657321908567560789710360390096313363767010270475861974620965287740268377702638735836010530009918662966327946881749527908824938307791439182871888757982635137912067420347602123432686517453305149311073276367615848722427881927914393622200304019822940694100767771958462620265495506157381947112805709887521925744455031843769508532682256148597062695697266249607425224640713293475268652360596220459280386109314503520994516911071378334070328476745177739178066706953752655274019816066640684079792021877190548422103630957373127179129426699660793030036756085282102049859786988862176803114437748911411632990090015426453012469561127086847004050143077078409016128540352919537421255647331906152120418034519775781647082890038165253316743720615157114468273786506290253569447513658439626440425953286696631564454852847225705703510103173986701552794521799754147091528719022675577841058622590889259574929071840730342436664915906840786270023062772046180276859965129476275350062476717913104129811631273803449936648555603367590267396557821226292615478432200394584585751811221357581274728391472362478829022213723677907250429749141915668859960869044393718478174291236159946896924372737454055685171422119335818057482196008790589967561203171631526005861940831664895164215530765997594241320605402786738403011472702784853829580141505677985679628532924026791530927535019196117061650565985623932218348894440993464864815639426032297838954827164349424151242216180715369140204410999041206792221390531784709969842534882315058534481769619400018172620027017656781518801471689815063943616655953364077984792329643363922267513224327568547664404322841649851504847108169172708001082150554043625576074099109176147295360382720390879792301707603251731346795597652018342444476644374120250111705443375836025315575802244314879563016001613595526729687620268482838577838046133106484338611646957898268976334084911612412669575799415823743177817651573628474092057664426591728068491201702779122790649637533458590446633924925346334501763523691268047052777514567990166240105338507774075954115260981629199589986287024227254219232360997164740370454734144192811179664110654430354824835761218377217142707209874568381426721954799704481308922508061051527721641642117105491659138862422213843800019729723322159450869128094270721616430094719229431446222420900894976908988983876119250467500911758533057280764404151536053563290287816021454583355181678356848274158296021049529513887660150670136314927254916176887110771239505279868624330000615707870032954941986059845487292179888111632624488657619443394970493023093973281899894403854339191205118152747449128477115859620030268140544345819672192883073971353996009448161096451476855700728111390418328161050555971468724967365544986759296376618496709726394053858067681298483058550735849437747593494170357450439297129981404289529912360364133295298019015358110661805820757840129290931408431486795433798536198739758881879777332816748752249485828889897618440296064549394723681461471253115092899655352541835319141257872011956330220684641913570741937220022942471928764240629285354351283196498471441230520013512073449702534292254278858452088973909996340649296002570723120821075841622223257159025137146157204946658858303869057630222762229459152342640499519421127265314534305501439560127385779985332106975972012685039347154149771797188643658606652881357483921166349658444632798340922638537918197578327473674166382768861388875378499157614083670055479067693843583147027508322059353533131448999946732580201273482734328986485404048956198608279380044505066965941510051962387157458784598583380127327292625083478600683915774597508215571097275499373714256236047415998476746825484411596795673347810217522041477943894154200209286059699109520403306248271367375450998745453868482051760658496937972639479539653703455310988342160700829369844657336184565404776316062500573736435972613630285795082456469759927986325974154301288839503394972101529669400766324442234561111530263829784373265785379763009694934919490899559444638751480729417222533073777495939156225996103610530159526796110170802977205337288471898788487448821307057862123581774795082920014263720596493576311026289370550455919154096920015889154337737642842768813561152463470760447789065302763352556657030090488276626847127962240333569459725319859188009761730672351685004748349156429866357321918594079765790395288975073053854531718523909320333844231839836449167888454592390954932090854056566480939490969774226875083760901047199713973588611549253948715748499500290707394056283355996220714479091815009137255548715536471564965951693993406933642942813764045319902355246853124176912893653485791461447298133140895050746675580771622855607031929900812149694321946738552817937989465790618963869700363382005648731340125882704070927293076894145656005679943807832007319148474042957170968198082671568634484804841273848358823615837973882575891311812129270931949003760221902852028547934406806796232428083645126897601284530312117710670384998051291827114053047716432127868856441796477777341420969687204775259659042667721347234686372701704693001804033623261080953328832648115310716178479012983313977208607532708730318090817381646427436072313430128053124399706583991517060027356933454235060445370762125464567102487524058889983679004757872803127120620409392766246054590733501674277472176689531643902978763385409811481220729040033026625808928208799634902108765793831736633018603269224512493823459926260645628855399708168691564026022322279215685223393845972878834242139120826248840911883054508537463794804031198872608498917417074632988615875430629006740932790611673865614598273050483377829817486702879142755221994480975241499547948894383503107157016659742376747206065730053146750283261049892254301914487899479079393987569566662186409788004342686805133221751417525978797846395697233818909199170116599662939294497954897324444509890348107292492148209913990241973932049844199807691732672199201884079638711131783191755081072067606303301298109147562718829975046998260414581560399667562097371949577470103402157433538469966583187701958739793579772127807194151370174626705347384287882703079584405764679553559132762266503136229576442368292340340513008994415703776776787970299302536695187207869799264698414067490575157986901816071725431152650816251896457700767418686677198064202881510996463408640294676507908344848385371857558448446020453425595913046173045201172151856079117571963305217965375062631957388549942901371057301955978403479759109085022522593469548619544426734878140953376155439838397008593229954559554588443654018081122267363903562576154438564369043845358880884920359164030378755928867725196223624540152626440695664383568616454735310668366817475041513024205586333516367012841637865395207193869799470507611347052183899569181609429656450958654026949133480463974712127448411889596357600235094494312445040588861483684683324135810229540384228668366720162685689459251533231465028167951275377998882510582879189091931709924612817951302857747639537055112237069109278744866032338222591737762791195587073269736889198191956912589206413907331670899062700044880856343693352145069492367602280958528087678184831331412115847930689615536411734107437945219047295414349106556336947898498580068378132245114519316018764348841469483299362401452566996659599296818273901573867460278028356709867854469294298232293450130225587062759860129676230612297574936761426119303899906996685450470027768402846743924210298039146308836637268793549601713823542133280970623413726236664646850499020278145343401998688479849953108324355183522863361354123317919785294471257986603017348376125627478835381985961797824073495996759579781950157048800441155969840369447924240216153215660577047276079524871076604812727891411994871207214966857064637992344543275141590753544503812725065943281962043149620048204707260266513659896662220768397792565403111628424418577953979240440860976749197579641903970207075082529265583128911804630326970627632342913852303462179635070873894113977972880396139084982182174727505205750639381057644186209323371907108669405128651945880040516990087331400909748277273962506158579660882841710577965646538969478576555602909786114306811445917741298345004888292066954604179691107666513805555975074677316681355333133028903933062150006282169449351336114164770125930069290107736851709295608779661374708969117781078572645277008287558309251938970592138240861270482191623949448651298708456061370898772423223985634578725040978469638304529654232589918704887934542815919959300302485324212724669219061029155779648457241845752283053018268842719549419186108979966175637637421492075919586033341365340290110357135574088495728192026233575631468749962413611002671207734166536211124348400401003447919262778798751306207073574684721276950658164395473453967361632725316914570445111532988679732831258254711092701280330429632392304917826080074224562919023204187636484021273960702486078450426966875163116229043261832456900868151359951007705040438473818965849522031846290552836501773546844307801321493568569502121734971432858912518153030651647304536262864963224077498852901727292233066731741145059878679087918105065029981504129770138778853166965275941113960700546576517747417988361674462426821821929342969728568148810149562041251459713727769493713600211360236608661261854169423963626979637013098991613685237303004859426716643903306835946135285944367956919050592212914680727052839232167990833089018843703464152781637552379775197422463335052216979059551528906069610306559551565641127361005871328293248411459342376493348972336109873696777246801595934269474358373364335115589875517010597587658813845299499292908962909607031235100254940076524101554226763257691559473696672710656405562669949161093801399446297243663807842840396780127535763174515427647509440716329718867248055271112116914808703222357348255204232980001038456761063057845344498175213068989176043882124457192252756602132141866129932194732731480344212683733697147719819413142219616651613120484292863012580780368739666450463939152658094350542837249484296041838572378822112928016310371410481273954721728345805439666013882873635561373414018971609345801594347193009874106824181675712619482252535976052913921672256049743006974764786595154200113356392864547525244976090570024675621081946522105186457340843050333542805706766864614490538001252242183813508402242696524345010483786905342889790053361784769916768551141607725240866647086943711246327499441281996097484126128716309252145724793804749880524610284612069321502365296804580638579023780705329133942755012916688997736384740583571646000475527143662599058259740283941547862007935693755526960937692415833933226464320428845476846014888616375961804232589126800742808181499540531423221410764038984251374631111033852108230004482195488525227037489864179711522013609609902172506205824679824752181645087514621835206371248622804790427674290838891432980915284308189634475040872237024475067177205591122619785986806122344931321571157379120710807198763190681339053214223127062724251827159517454159463141023096732788377688111222539652162930864424991857836323726368708967996434229918057515239353388852990850273913889935409382799543619467828985273610322238468935563958157430985006154092302794078623561999450609028269745647229522295680873235200209612573804678336475892240759761001275656917079472095947954552540749682644520535722030773330991080429711308647916123028933849293541550832166376868897622555156239502666960468730466442062628149068393592479072588365788559956722645343916535301344614511919703790665646914521441921336272670917028136007864719610385283070647199124499374177145291087311107747861618709830880161641650227511566658717481304387704082431196777619496442355705243097428925353665270135664205141650876996906065271424895725460708140398224323115774430210916425029690165769835175481753870528149507430908237809193609524562281642109013940182707033001106043222403968431722829678389285370411764966774271047985296007339769120513501707000624450170804989684194948048314857395332841361121382240342461482374234335684123358267874793757137909371858719684933231232548815363413603546423198698680171875809329115226763782569288325754069007097320397725509752772678873225398282676140244167862167123304134844008783785237359312674097974866625306761318777465813958040378901027358743762838508022020193608907385671208232560363025149735141247745184687446079506543162767898103236219135632757436344830352564110970145821356798137391848485790366525091622013895463902138976020969133825412619957563924012488532544530406397459946729179730809183123072979831755142847537548777292781028603954486522999390389256234198290310040668518483617407941426741078823177964860209402866146918580621099529010300802945729021626635774919636559524013712860694481338370393330235622669006969516449070556438743245330044390923941930147021555865417589459992869867680723356729028018788328336943420419229309107567200521474013844600684717749509219588345464324160013903378534502022607008856398320944578042905519950768518713355745277358323767405344991555081254520363848885631188398791758169377399927220685669065546799475279747447686262148343909115883341210776145170341847179186025990757243039182328267680511681055366515515006321751023924033046393069720660017050338445395588175500710400481979267564747099791715536201263421245890003900065818994241395258881602836484656619922275732178054043822835214055387271416386864087952800817496897604853070814393686287660284861678047842133072922837542535454718426940130570332884755533873893225374965432737974730282149168703335486044976631029101009511037531885140097839292461319811710370330196874826841610882199609877586715772870587119487452211784036202870659213225353821994993502622573067814473907893880827581643725650666321551231472380762825367944386789822967139455333401315861915352258274969526348523675258012804235669502234673476552774608876417550047810737421422615539227738712485528741768695680323400214523117657107971706114438283332227052066997094051959337573077577455609231776567311569937831839750265723173747375945075785415029270351306856317333840630035873645800512994464013288683776538035573781703363352134772798581061306590309685564263141142158168495209401195976630515242899945103636488373467846219578571079442195286643786806878985594608541209151995333118164593713728951934297785000084983603018344692282027727767822613205091846991256663500676737707640121507709314280619276958794998683591821070314488686439333107630654395764896203103220245680081089826083309460138539108130129938766108986159152728051124196755934115287401695722976332569143710384039030163858926820235231758618540071638411217895709591230778710222090461566820161717946243654288076411806411067766145734977461016176859002530248541653269561229704332549949252630467101263830565204073317308851173699321244510979983915499952131195999587981639299128208155877255443128070638974796858225149338116318704871549617677288135158566599073339084092173408356354982062174221640650293126831928503389781610040295229806773802304738456128142628083622376337177261392497898512359953282301392966650969089207989162523201267120115325533511553096139564023051751477016244610541536821386135192148289715093606498331017387016217353714675837669167576943594549225203710094274685059351907532666349036903240810951724179828439168720813330252240573822515874488261182823326178435344250145935707102735649423679509944919004354378493319090037976360183368069797956961726288822876970325153483750014371029904276926542096303813000711687062464188869358004173919618126415614755061452191281978748439373502571062723113423856415521010652396123321391431949495146711586545338854183704846475784418949385036038231928021354752275816310162754981959786004393333666400861342764499979855798889199189906312455994517479687730383393700005962049611263330899955597199248505134905121780698826254671796175713534659576083955283754698692755486794201099203628378676893410612251552235375740680111589998973325451189745026430346785925742152020842732196272057259892168269693848871879563002171884990572158706067515249340050073689099821569854627527239213701873206261492677304214787208141587552417255016653212125379956527061661279292827927000367269820473307082754102927115311100025129375830513971028051839774559783783406696308331309881025732371407071268799765853645430434259019043432694925852051473296420312591073849083918704451351609663521515755828974390395764639629304437347501627230550212942757398659317595460278315527738012119990610982248014609336541740173775907489090901912844651252282080637444606110673307943253377462213892411744243175235756023526526829960259005763858865289498257520131917182012687861206905140132922751295114746638106906751630870255833055352265207261682420803087849744847404175401433118862739727978515192314732846571166061807960829655749317628292128384923551038972495521292904167422658397046075641192864511379237510433927788194344080915993268935200816181017083727611852499475590260831270521345233808512944668874635482307484648421492719413075383191025679424984962499524177361332739174788578078534971963685142243634504726028220522917903238342042032406480357935557471703752304861260816680107914215778605334631365499204451612927699643492808684049395841142128798573018126016337958902410077465622319451512477053620318684141624967076959622442949962195887694083353710740919268414942958022948210865541697035135311758475118608630426367259990908359296475744583458894874265025472794684297111660830803333127819259062241579448941695393867534704951356632987246404193062694654578974799088981180924868436078610391349565729786444881246224362808842754631742720923696165141558921793182726657633423988751281604468503132491630887946123246393904819289059858019395951883839291747869778397563135311400305029923020348333740161139505532393596510729638814413586201435338299252134132851055653620530615949554785357083255103183202748108269275860513637920405472240542983130362586399129156751099368991453891807533630166679137902846955791614737338732478881415161292355229037378788424808291002368702091058874084486542715185287028574106213959641488138806494918451569652066504499677279881013669220125139844938315913635824935832677327975695380940035717776307723817942446334238895453311407948855518238848932607004081470002298545720963565390173116260529601800930113294171205350770496518374487353590511774205226531150588827567889315166071710025619122008729515337000934914958820102511912709643164830477474252771621829994265503346685205785134900409108027825864936559786822383058741031423919965590746605001497130393213352567626065621947013415498606108658031178368127696256779976278394836357592020339212642755232661256096008865731200357024956977883794718472420837302210198356170961015221804073572161037812745626469314808555581049521400251352579497507913260160947471638927703213430731637224353580575252754125873372957248807428602467700770285591951499645449230497762595974005989118776657285606721163656437421704438374993998710661561724318400834134919278242740329102912001380280447616930111578347423615786714819117722566862772043425498665787799592107881049324222580176938130177649081240351062226000426710182180068621081301295321250852748533438659900660001958978642146103335423300010501107129413819609966522364696120771660923722667896864887530539275905368392123742374571659363214165611260761426010594073644352488320948522815592014904466793582521798683366155261143227163951748524488707393161490342396733117648129375007078835127244039839503800106844835446703322785559636412217821437017536490763024627672311525350196494144270319745834954884499260482213817457649095891590079516972779167835415033513431479404663822639569477805472021241220119096706780125188316974146727401499124652108737007622591950671262779601507908916554593382876793696510746078349912554512593402660735492713552972633851725466934533155654916389202162665254898114217842473528079733415196935132491703519490504027590706234912179106498946795352935841026895353799885324832999952395513060906113549381544971801240775697994249722786263143039870485388744862738156044657302829804789548906595391140433007229731720147761551229209333771412683914244510826220625439909416967665630967973074733083822768044346674269002159804073880486413893343211391767342349577176412214892126932060999213099860906438958811785589070591514131220045120998918485512852221679396088643354386924114340568353975630912758790676828603966485987915543233888436367145997854845838592841407851559599627485174553691233387959445027875700445447556985063470454051804630845331992638769325472959907789369915758071365702340589426918758189448830929895155817882669687139763943673618875587467510524821517410730771861980584727962426897911570790401391038108421881936475755676243743086074143478369131291558028317408976456578780998330325937265022682114515989510590208091720314292002380432563568173295413669572647825055424009094566790250451276008139095820479104203933754806455699800963003156920672688654499690937259305343200517333672414579749672334576556182426657825769904506540744411842211301691594997700406901143251018734350524294304917801489299026928220098405428864154557944259441314291776150230373521638190071452949167506722670593626205601726620914292474745776678553670902947904343627193763725809153451043777599080533843627399655892101036768417130764741177749845617703416874130211721955874201253387156820606526670290261114594735326585563124369149673579083310376357024761721472736742685103315563408569658955187766079045600066268926318519902222692608180566026260827723018713468253675646426133338689505222336700922216407520424717317883646348738805995932879486809510821184857670008602859848675383915474891360824100184184629985203676900679988548773720436486590016898406239690099746463238635097832955619228800366511846394986601641017086105004012664913760609089071218517368929350834327707485051860352270384283945928444582138885485585622286665072728195781909169950784746087112075231253955270878055129544543304407092318958865848713458073365553111370757669667686277760564574794849395862192835258301808035632039458716467665535081023851976133672568454720043418720944183835296852959863612954919096910608547403789911320037767674245839198192995757016596443196127865426777841955432720867750521537474529577211802890162549037913609842725450705137169724002756095696665268996876615314784402443956146791021520806614754167574671210565925461261751680688332715775129913281659779743939355548806755872582774874528985782273832484437472621419959651937358990789994021279396954605823339510819877411083199865083789308314430774171141687806951410166215567663827582520339388739678948800951230168846244744327403935061524757142392077425784278111106457597941238460977714685226239311632724031223872961951598560409742569821825480962597588084167808117746457359714548366524002752715758096905733787921173837456524801859173382927439250336400114070495335522151204153822308911235094772903671474092099533965995062442269144554808013284847483214005261922800596921577587831497191898950061212308096320858474151984041994452180898544288026759934041706499652664442333016046874704852928951755485800738233174203287927378664242464054518305496733200668773840312475878481750688880346812724559615394082564353914424437067343514224296782484886218785772866554208893001994909876615907462886807231389141070987521995089961382160228482116849286661810560074960493107413142729454316924611410615109290037884785733106365565895796230621751472927655179298449282991641941592988646890292274584787023109992044975921381150890790667274530538185067783318446872682895960289127612292081199150628929277387837363677416885911289191794262446352420180149196166244112203215996321113896213782480699676083824404175036049716686961571714665673983264205943589340883490528320375196602063153145649985309269295556544237419400439446493293939212258049557817851158444223280230246988994481417277859109499939340275480846332893773365950860513658753667012186811980143118087597020341995903906493579371265907456190859741697826542959247614384749941399826123242048028864032183011654397638363894069825013992106219681373023083447721488811900813653318527897904516870807772567695389160937136948867072447474375851714398799595643519790353019715921986592778393753242346981467241145331553320435314944333074265421670065919721085833260677738739563578259658443153683636078769136565250094399642145307156501429744096442805486362927660746261614706913742346472974456202506686335177149854292312890500878789315715805532413487244293500130800896200785875207280015073866509281923616938781657253176859970765820716007094414857311175681815199734156826468423476413714948982506866326294532724679562938979018779958504061708328175317499401637344933398112623268190680547511320318322475127065198414405299324461570755286481690590509437759067967053403901731140232154920011898269432884625790152760872891483522200827435036613124306122679077506500478110145697416296842543805087783855639021369390275015372736957687620664816022123306447769884760095580768631310335979187489302199042369092866422714883052410632959093978211533371150086608483354027127774348445937730029359114628528880663768767866512630822242082471919052607903443923643795620167758419179551906807683158396333616632616038377995273034487461151236798337899788682085956904634983955671091533469653863789394385286936664132932893049258746235167211346188499297857328181507888293969441628059046806889662468510757959539307162897722166924254275023246818706068573878485023228373122139806906878062791255607512876930407797820024199510939440049452343356344796989115426541236219732662672402317023237817485116143262920168201165352177811382791861299979348717187200530631432183761616559328378221311113516172399658098344659576059525919358416233046587829848387847331580992793645614027118077227475289280124556539479233621603247673420158245637581985407689721739957013324615115927496272306376479822266282896154695498815602361379941642535557375953984699630540076121043520796318473365907821672388185810753990021374956208953898370865835933824799565816938726266077248941966023231294859242311870448422813581317810528685757702989734370429955080253430627482067926144154935459570442982206349496313708215815421868475037009745574695920674879663213542920522397728152701067436462227830115146839137127311923467608591615540338629603687791098010027499790242411731996344782063771614038092600242405182871190077232520799334575565215433900313156174746259294868553002589342673729210400490401387995371097349411811093772444727161344347719272127504423806633384503610353438841388603735794822803615776993601014331265073467161659010590739719041056671974978310949629959180317232299442586197127225980798897010174239879355819161775392055477910437168927901733208280226104418021430231998191196928627375298178137595641790081703135985245742928888935030686447878196538740711523231300489675168994483752416642570817933956653625763346082542090062441791369535181184263430955265288696703182918636833465193842148984840081300569942190454435923931405992859612616753860397382775304070940313277199998220081890129249375461936608465885254376996142354864384813175814347299847414867333206706241008715922798121801287331605976254727576130591470323525847090675471320929588638624986527922286609819257086737351747420580719624779771551750335252611574310327807328687912023342345090980368563973694036995526071299873251033248113740967396441157784766198780123118502109109543532084772151750691444510269051176893668660629289876013106676175072266624385347376652230792408497513206570927789627723108427721701961695679728731329626150685155691868920992416813937715094444900044671987989071330425326659248164183211334765560849242403806442077821973285046977141215616820491305116095466945860941739233683302065370391274413418689208427752561601975068256643362317918706485538068178522959583110353944242565170409494924874453633588213102406457601279489564536130394043450807260038228352622006674088141312262874722366189851094590345215276140830045181276201490803918641698004191230486642429645295369843819250235460148175629739041844661345333658064088836449053887520321846892335798121474048314779119371122887372073821002570562014664878968983202732010433279835437652694013110606941175048430071921844585061673390356408845824972697241904870084431748338517647100878042683247684309235169368260695215899477483867995014552859094322447024687328404155467754423316642389778133295432504337118822582748314938512066030709701473710214453400436499409453915251063868199389437133649480010227770843485504081649796015090078678454280326719422678129785385507619483937324494711685861245012365433909289278253481453978568543251160638130198694341863456812941058178015653361796845209430854061984362371882347527442319955814421643794290045116939376007996887630250916555146042931724674961080146734735817807905579738213366735922118570128416683127651014361706382712873956122747739557735889208877205643472361315204035882390231016921314453773935123076120603620330854175535359495280068366951863214197015785492325398144480600228753778459955942171071924534703128981949913278607992685396580258498903987013773823160559066933109528002818730582636417428960847517856074821495153914696034782596975101791332993322036253309732525941020459358468538046745316516133649688730597942976408809772085027388024313836602888680581519896762153773124304997072540429038629226375253052353027247072713996574500988471820359871451933164967035856848535557638750947175076145536389882497605208057582646472973861478293208073395698257011632018094993378492814357099368639368912659133508865254105870695889079556690035591969051528505363325000012675881123995308693953665906074163571622958746732827293905651420664684587795727795692819327871725115087584376077889828214212140528486743133712181885698856430059601010341313668918246915505036982904089040187801208046506623596845758230490259431582591009974652926319000844853220458081809925297048654358775613486954182462164264236891141316810683887278922729877486875783953018039873967012119750769297370737480524747670585954596757754873324558002116652407210508362862960750591998453455908107509252622123489322197944922201854889569401081998551852472636717379128368427413901310581007416040295699871681781625544571203107740252840742096454584015607159666999207044491572574857325234426234854033511379376219585172590304563555273631304939987797995057181296191430234098514602086648046101384148923792042886084138398851348521096764639618805487082247134003467913415321295759685766771013554351594762983999680918330984875702829202123551796435745922009134088161868380931437842987039187376906560074984816801969376300983140900858695031667989639831527106310816618568642191078931620208346821845341555993890331682161065373574302695133659756070972426770526023290544518083252205408773933655085446946265944092658138177809781770930090328902396150199979900272729029687826248532343351974726025101777846857912878526277687448879921195941330952545882591378759937007845198588133492232529952754669176883544252709676172819012261411272926148659435375357644468941259473921175348774985535022212246185597537668123073874513497205179868379178814246597076472079110620262476431218639297020165817318274061130196099771529683349308324169447032451465071919415347701517493242142128448969389665670557258195820373309739399593723588750412489196205251587738071524374476222735316795195873367517714935282261129697468185164514181916436272209752114341697323727652515841612190496618630544835645553861928665875124845656268633160863843484758461788332911894692413313277331824730344358631018346417120208894466567990304251919548990895444628413766546384351897978979380091780105468243108075619264222068162392828059594493917214693824998612578829093571044414146431752840186119800165935126409535260869438828394424630616860759470990442310527119983594682770108169904141116501223706588189526483211558173392613161974580383077053985180019144646809309164348106913276440041415008006214516926926397112830732818323610026186124812337724219963187820455392276674778004079897327152125063616752705009542476646912646130607796769044247945869804736052002520935376046596364545931741768088289255276788716425239513052622718600136688863562206061332396530834269029364304720279375801049645767028831791287989556752895851502079209910152743988902199632656345585116982901787916030375824887031449510939417132229109666576997132854932356602332130065079312949342367365339414778116449344340511347823205360410182457313213202219125926985885753814386660359769769731984686154562093665344129760870020643002515357300660704723536049545330979030646033545285374313045171277257891755777099776975222080406505260568427175174396022247937090233252120207239934626015846933778584817971497311976286905146032574548122232637159646446089903347893370488298593327182190716718774353913019691674906006661786560371121220964504846474978704056853877320298728953700342474684965952100988576838962843605390932709902680555850024707430137276266052189891290327787503699354358234827846038665797632910763430073345175528128509341261137170817218128988573073574738568317289512149293331365818060682911794192262922050328338558713361534561044378280918508582669887461898481100931653110809256744294038787304533963115688357053580870852082641352827191359311876175269713625514075240378687604904157444023069946924197523788418339927254571846174094750170151019888261230212795125426926012621256691581730051311856081722841168121499752057436197971454493928650779969116793544826782147370264357876396055848083856699910401140027412224592364887787874426709167801107161212038702344270981062427088259526800848683813589226953972063039811042736921098059157327139569236595370859746422638259375020947591765347223812709050717673558115178820520903112559561572956540603844785609788052727803351569758220783040832297046847617474789319627823680710263548896177623389763273230393656382419995181922495290924793664405784604415031647642757953043468046864293362220353079683868898197270222006544739826144777313365823925942297442972410237486083530000678025237675687279848557061658719759652795567495203001904524169886329280579657525666113450229581932586598248687288558549567986002335340113848689036540304460440475478482848465238017880941737463826478973697365902019090103106909993661840552167549539675589345470579334376256585089352242787274501098599468094338425401941942459431536056502622607098110180371974427318053971836884391374006432580941404094061871507800115162556127971151139200675633958469319001474251930077203743052089558049960271164953906740133968432659104478352224350304639937684378159603842262004733517682469039072349852850092665193633125069760214695926662866634839562859460202415612927792690544772384739385069008263343196840723137397259916844590265759617618405369464922287078588183606614002443958623223129499660558866146099670405738988900207855353178229938127297673869429749870655352964052687510498487412084695927438184207140628038490170024850454640599412674465823358538787360256459523294216054982301116857757873990899157644290319028045049239964333814463707750048926286815828345333676148365885881080187740274300033277481936267374106026967932464270505112476190361676502482776022694517430260654373384314345536420573436083009947617973096398201607360075862995651575865060370507993153266214637984373492806328923644047803869209420064328199790921128609176393018941859862113718874767930450398466227992243100494073614736714750769209544524857397155452450412479316393242480489301048616621893405013406693677294481340373217436578028981917372857262631616924521707769910280231376827554869605050234746971426672235880568767402730105438075176754188177980923260615492566040552686891923201218093272377107670674327038590189812035029461481961963706108065506045495132531192493722723255899659294174193351036748199664138004781804506871357987175490247573856566844942677561970045706811477586964343858383655103346896676976800114095331645009203082970579643854561708867788743711367632554076604643703674942575911637680360418345434566469517561967420710100529450952220411869554889430774345620992244067960883000847869086309523476317137527773271876829847218194342080344151037808351027067280937517013287243273828160404499722954713740963781712904724838968280438931390792462045704584108145198909356278093402269943144367705293259687800225341530426379011600186735762652847113936515713772503432876789944403848550781098072083596607748784946074775151956327633520061982487200533039950028773587680749393561930645937056713579518962121604859114750284960716640356263062989444825735506686234339600480063654837319657928863285563406620685594778496703341738133764747114275793146121576899211301294117144675615222399886697293726379096151230523914579648673914760660328741230132143596060859546343952755189429415387826489855297247776214731852206963674618504550101172079275787414580203067708411929039117347793655189866857263393337233028934013174387095231698902205919440514333397469191581757639075239435518821435543740547832371424674146241179922568653497651344167058984139346349865897164046872691346013497929341901643132496928661238590165352075805890724893597429956198693519886189245506703332300427404714527507354347034649294659945319114524641819116525839249059733038807191065735194903483214094486334245548134658722471419799806174034385426771734184885853098246733361858713327047043950178417231246462100109489344269604737380161171828223880751053242259963231012822540381165693454277632475449967944095925498723702363132834583787316069574416539906166934011997448257674599511299837704394781215907512239600359438379963395464057708794013063221002679226699160093326282775689888740612090960936670305716952893247532427236513487662949776083638343698297588230620553862375265494596747495944031305549188584882429594102961991901599464337655757160418737016140402177372646267461687270243686103789010083233673164519052022802537838068505065568049539341559614183977018490270465440462510368826151075452132882271462802801544736871400733574230479152652729237898510909877187059384336172584920763037484642147105440180453165497075360636387707108762329973550645247224453225953950624223423879979095944227475571057983927729260845639378120168910042860020301443312280880338298436279369390318246583265563680716590099152198015929340613329995068505697704686297692654247257885855702424920113965021537730934479828660477381627007238286029935073727924300808164651148266958525592185164823864928833608559586411863543751204240001633924246469780908692043326139622629305189510588557541983400140683100937013298909473130837378411577711895399654546027657405510435080187426325794837263189078195126609183649943159669655738793172268742656652874817049061571733322366786120249774584660495228668363439696371922707321174805993805429480106761208649865645243248579700853497439359222447025221361334616395867368355828272236959854239933986503527985742055525003477036735662701700139949141827310915652389523346487831128931577903535905365652178604427639366888766803863227587096398570853459691425028249813201316826275829677715572831601813899076104463286003157172323720715518146930689022653416023743835896061960851884726809910698787546823599854512459339527309436769203751983035754251232472852377535024884332364593862440086075090024392531991740906202074296570874582714614182892739541496024854706911930836173632078615409866413890213660986096065796807320266448706827775403300028906983368825135912932000613383726463928905720453756288169870238067167721883599414623785334526206089470996483601966148617505936666760212772400516461643728678668579895465357179425824620013714412620823210132993963353043577006559761265336489969026120976239585661154467431162204499469709204358488338287198059202873446931825335325902390306613545353772118546527527438980852120951355960988665282057970611711641600418632921767180197824659319946990446973280252926710524911315816632230942672791999751954350115577593586717562727436453686992649685667841073085924545603048030354307222079851602670278293710254060642299703431151181531630178535442682635574206918655974039823494622789556720258279055966534930536455590749186357060718364615223644515227418797685368042693915741032532122640018280234816222877921917487913423298300725380423655359966917743980891120209312205839274936253023133025188253151247729636478426417110465168357786941929941919012601087204223245904772717711410493285339954830198264779063567164449234055584724196666054691413612902171596217532094709577353345091292401667429388557997096425625550237682332187946670531572287272530346575767229441129639875189404592436263495502457916042790563404929709103704149941884355307359701523097060103732002848048876730447289868670093030887608298305513113729991608960690131917159478856547287081283619998029855788462137092078448246993064449372009985031445471871986390978308846656858213670447288164689983384850298106319700655632444380510610780208754804455992206505542912973917964749749952398433184264009172779408766878116264080871125107437310502702348877105981556982969169534744729949831068754924978722337300117925584803186540796756569091713893659750210429304549707405454695371857720090145927686957345615885073959474068743586038062214243107459578306434587942087297113386207379996827021935035169564616371141070437317658155809875834411106388852752300701911012429148464238101988754504440341387308166965494936572428201728349163186042565206840451952735863877716519468953414034536210398411453985873297991184052390519104453613937360580341254130302768624243976463132710646723265088511651065999286400325168192656791569200483100317027028860641716689135505219711774479973041143867283556197255826720412967919693200736344236524840021903999551484519190056703407364164776127643515053723966742257775230219688183569333298290708020268053125082054723495536586059559329145513339634264918319272026972810831931468257909774096236517569783837475960143601636108000988335803279995006823726368208082439969606196789957269863457388150357005894840992543306183766869042004709348062836328997619176289358619015049404928287331511545752365468439983556125752043761408214843358686534437282181217872496391957350266523653909711241192354141704658317542915003939700307132439226607889864976097690996782981055448510411988750296990572489406271173085193062070838917875518501317300264346794492416418916031254226852588799055724209357763106025806578578358517234549088662175158540638753207694076100638159344381596675376308583749374838131264032486513516401269602008653547286619259937061913668970575490132897722011134665542518879873682182867748762369616602743249342663674118285243936492637869281525266982824138182636272777937495522488973754644077687869135424937495835906575945742488414356499816749367581143244744382729177287775709854759671074400720129359344639938966267565223351937320011308200808144092109544645308830580075379886091714825062046970610066860570524870891295489418962496258132741527196772048192407010489809006257078240256265989245702950183370359581814608031676147050522069258106930874892451916727529226370774419070800060661714667150984149655436937069867467964732236811451003853665595721048644609022315905583458934515824949503931436228331398235749672142825568231212918318790477027268286677076288562905531584442397121690243761534258733704444658153513410267465727772425237681757601877880682114405349870597229135027567144652723772864207743847870580886077106011980457022401420861994184660197294900872218175917190793914719455673602397005047611239590819070212853224856744939202296730411503827068439099468942544308935352493034152115765742837716252886641185544446488290939618960213097898996835333951804058528765590118251371859643075163906407112954162755338514430096566779260027176989181393530157146642223292759239490415871801105090535642754018901155716680941891372595080988014844224238594468916483621476502310743959134017242419733462600076651584301455976238654330977842354624721350567745550632398304546993874104261812085983424261273537608945422564950639572446624977648438516961506957124902521903601957627081113659875568469368024065775819687664021011295368513587881354793923055663285177278538007060357636373949287216243670311013997070857700907698268639064352729378396659305769599534263654281476901741309693780770475065032963160017827818515374900458474197492133228762199755334636686962189614824800446835042017543547912731146310365924515313755153167242252149270756485738093099158128155027391093438552917685447722360471983344383054391074307249234441887921431971256633835657998608967289639837316578359257456664229216440077964719746676865912562650064968216743951469335374977212790362359008079814673761420553560790251119085316472782009406319153740017475769007945885779941118622569176335190965137525146881456611979567093658763177749433018362321391487985403236289969691938691187864627174310998121136520665242538348634115856585109353884486327939372423798506364348666924590833819107874168877190808536977793446724171597638144952359605296531466380367023970920684214630653509783514769656971061992994474504580707091555334509968278124707256808033528072783810926826155083824703359121417851723172523387349003412683732829273871441561270073178509964049844119799311461457406949058097117123667511454764993039254374885507434987196029329105824041153228977630902116176514746760255107232385102154045058288036123665545534184817601246655243163415280271086193124076590701836757926064209025318738313735189165362803180807501171044242430562012497182775929041937868311386022096370458594260224195608796835590448400474695902539659424266773295995967344963147840749333789965349628489840316337824128489628342242622260945937668963201340847642015771485943454879083530111846887856647195692526027125080403333908749218218110101295385459498778272702661706729381035034272584859711515796518875406965838496418706258295367279955487756915822981660587354956423615249394801371984920159050937659378253098465393209295431709888047992508067786889603134941206451495132146226798142061403355329617075876795359808842919757976744849807402233282235877822306452964399929177143040828264439620738967495898695258180488385172946326927833732170573652049672592976012580397022469855896453137604147578020614085048246971396842544493101546337622254163518108604067165572031533641444191944719968197562853279904642943262448171899142556525547262454383171403181282219363186923717951930071897301208550572533568276144647100475928539291625461032257712550561944800652715948776417772173587311265974337294209575801542732856468642909268692983455381489047634432675643011413738321870514494037574749137376921918171641668635194380195744302692599123040677720730892089665889163197848547470999836615207524241995114546537778534604921072263947133110389450282064301151354841918943532223934199816171089762986506690384184658785843259373644103793550611973076996403997282652861335319958978998066562657895331233130027503773265251332275934158659157867789077438911521907690396370717559234218687910734955071522621422178688758137165972385805327910255863593403938461123874774191977150981757764152535032489530883085607222640708870398369235090964790557249757387301574731364995201516173347870090029251271924785802214364706234985022988331500379787417902020140033770391661967948874799123591019232170769432954763107845581909727449624790312987445763650009518055895318665220619021453709093193023131472326913846760014618372320931109537170980924999718361139729599880611358543062672222047967159821660969413363129988944151380907928967255749823746858563668690290717951590465685371234151527527501404890480611860331215368015855350617023088112185208082812539035538780435639518364239652379570677209546104281632470466093245375147776382646804463516837305181181314041467767448494970447778083396076097753393561021321660173962617251285606563550054825137540329183543128181555662189894592682337544980882289104375240465118656285644544819674871667409630317442077872500407073230267043574071299154199229350580312303276959633965679584305569137215664384974395542840133427201535673513473706193975950176583564224882996021643336315927623724363033394001029021183073014824784271880694041697921010064763911011769607982718876968888734461242629831965853759598558929642919074311060780419211250690650942936358391599197103130780517460065179978658942724441287667665112485756145135601095133297978792152478119633187966595562718207809718124856350825123853299925801567674590653026561776287469064872231007314979791630418437073164753813096152294887348839289405086070359697023055697243387014939480305782581503773066674374772478937616439742599428154150514602540908087402186166975507086383800265175995946490923193943468914554913807095156062860179632354833963225196721915386503622698086283022777801422972111055462700510609534231475850303562448002339606648758530987531289103569746965800331277232130294050163163527617457965942193981321490924733575652397164343448076537735291218991125033252230895915470832668318875681847677098563310577785810069712721147689778684441379489605099767849947162748423050702309259693607511186621991416221434149231441286012400646202823673664034329021237422461155355979350559363739443113183557722459353114631546953995724640522476122356039749927744838572576619868088454860704475045375089293304479681902893688076080390866598385801307458641910075465143759837633348420078063512160386201234439835423724272919487585463340306030630668025341632574669969152714268540615175597210359285349299151363443276511090823911023019869242512104307040084513658819247271625646107079545936329665232939829408157687602564950233041784667396544976300460871739268846304867742714003712592779599289731372499876510415974668715750423311399737716767252227352213917938172633155801155897225033710720492731230350562369816007760374617960556063652893608087983317259597184353575967528189373850758696091678713808295453072704382856238681344022559077394501957182257165825804543251430342703404911215124666654878930461532541799367569222275720994818304178120214031679857289723902256065045475946667973389012951508258247598316985646342206379688013525999252279662109720204377873589215221930531323112725494760484947134002836903048584329921364631315480078010396060553106073902165338235776742397206628358126943514072610835433543299858433940217277612879140511045970125473803035275089743931795877729494443109733200900560049004088755501309091592620126699951197250829444605857804973653621828799687420195793675667495866713244930843266333052486640685904937308105838344544157820827132266541883023138114132763195529162405214834177349704513727131523211659953103755167555967164033621057926956034103201561579584702632292787833266752667977594799952252038309545692518751290036737535463947627989064582126710543803707730454986918136932638990974574288661985876571592434988836531165855348248409195827408315087234245719208050708391506581906775385193407978309904745328252922942249963608738571077834303830816188764095508982843499931981780136914551832707240788187346343321718130073986780641225654905330056373870694850292164990739876758236598466116806319041152887110426076024638426093216383285776773736478567120985046231633397552131143591598411903261281144413824176954738024346035072005604845368526236299296208844484482035794763997090449694718480083953621115647139450073092890382402585277658215066161639008531641856784474711404883276881074453682169410572189443272383493830980852770031735091745210779803837809044587251472680979392690138836853156053753445176458379970660378816353837764528650399060342638703554223641623346506406533017779229599638761815044558954710145424983246509828162174561217395964422424384903010086282683663875968950052246473293775014904867651107402870676952711543322161330310196144955193956080244792605933109195789985083595503048631400215450519257001706067800564124382203662126734256351536775578137035922155971836601376822230340236379886475751041064460063361530849328572192145773102419866078279112620797183944622102762632105595208563659724531888613852349825603324009934888165387209813701365973701568720526992410803466355149549919781828529582733782502452371746556979672408817575800348053735668560728918691968458789901217967615276153592188766551234952874330537035588762680840641596260621593978019037592136022280502199426676647541502246989968810773606411346796318863424186986451562267401677688091857819719657265584345709340020718430199777666616825510350581169719907687475421782303697803065526851454578017919496795311599393087967898105682018351826881995455786412979887692409722788300518787817308209434196895752602637229531524515744244715293080941180119214849396709466607891674807483884082193077566609771901664148236407295342367141336111237875211466480691232849875809352204556816577270184800121030518902358605473738633400819993525251783453541421606648389655606533089706533971417851972985197432552181615888324345570219232033947211143162255552687867056692930233267649600773988886000970563653012709304423073614410964330688701377716880984677679967875206788409646140919274404261955235697726147077680301628667707564256118380692120880322029010097282666863784214604589416222326347595066790599877383403847332938559585599685307209426877610139815613006594383719121883437961260901434381871850735156118281205682034729185517803713679536424596669125175524368019187694570791380265284641583669542521141556017810162886516476520153699169062977748612855289660350889818021037324547424902293788053875104578304562697702701027486393312640652838778601207435776716982056680970791222911294067433690229896949654868157305346204881104749665991314597144074003105377941247666265369235502668461542132423894225585167615476590888974446462904384206325586123485221790261326893379265978485423562516838726383577911657728075819462984987718224400592212242726420878692341809599683310610328865301789590703564047036091055810201653803174788776483805809163492278357570019229449530703700476801922327455516908781567309586916749558034542705025411825536040248733590433332885196412096653745004979761273467644023700941033419045704452945039333892877888387175895245440238478074115179866216515427652121916427500453467076907198641542418580687705576648275266695529519660176867264144793549079390655633994192008827197705733731748605195742932974033311283181345240279474965371379584824559848219190984863629268146760664874483150523932204520573650295572201460120529320313690696762656844739205090111937577173155157598221139944858424862120497923697246491733214325116208356092776540497985552711467847282657470759600324339046845139588861667344225755518517343775011460231798838459481328978493711495274468454510612675288853654895218312276772477007421050952649324851075092333366535237855105164430331902994988880304849933565849911832487643387596993279371483147073398567563429056827768761046115811600142962457083895180875335143258152117422903945230509474059295613942359146876581077729635984853663743512965582109650269278599993551124970324962744197341863552797652801924301629159902430760648131181215364048166582778548201831255293630895242011035852396643114366385472345553805358940649231562503755623448167296703489552603446001585457059779982867797376668234789699835481496664153000424493324113054788648591868235891661913207462232208347163444260253107569825663358219563590928563526251240057186184624060172558045413369312432474824828106360653034073930751227711302871518745304739857057321425266458721801454722094950121600729402421906268482215325262250409377026165282405308655815841591463679283818074667357378378129631713539060354571114937292949447804030118896848633074826624095961370336621745583094276216833927194480981178913743101986028186971692098263997788868524942225741986899469930709656421521455744107145969470354570081689130081235183417625867564545926995971400947791637591604102493449021918517655863124490942624514830830375350478816661478371984941642961435893504828557824419916167186141968693548800303525673420415158535270941396337318308434520239757148163974190845427519228142007163835795546005340577243661434518709747363905062812296982122709596820525902853813648593689217920410683303690526277010492759336211005838856070744085882004835152131361976013302131979862156371452134841347825981048121802431552880094098373443166273210334912204519674980192600697647602861661879640238037773490505356749065977077957110603968745806946143387889730887372077165635797166713325366120134230108732284926639248670135677365861432886910861929781787815212457039777557896743553789852574656286419718229132607038504694079629205890331894336613338581014416473801651279230415156756978974213284569624489196535203260994924033195651924346848829200180571399099518091819854145127692951805087509102550606058698692285126788470775155548702431839679000661401940171249233680128983006408302037825524007586690597912597981327749693596660312821675359700398002174080439084705945405620166227797738476441729000095936589489144888943107813187939160224914518752722958886055857288823358493846556776571570138065416303363856704536982737229723359664133244712748233884468258223516392051061075155670245454852802038296164702401520771406730630543971207563590221914379308533425740690387412132927656026188493302141142775130737335907933530319476154274091325061018079008449985271873946330091261787506226571984941329380559462320282303948182416124343059240775882227143164167174235110669247187485664800082020565254204198290053198019529798473342532208116750962916914377804216194009968162618964846040244653883540056142347738303594711772269590347886896447459559948623093073630553550811614194565290582699628551941570711019859850378952087851715073225810523334897091460253784770307363111960527886771630680008427324633236561200905942889555297653709255707578789138162878847929265577689928174535204507233687725910651430149600526775013777621092236024346643844670757433574301547279492949513396673185684965353025586203058934879070709625412948414187005714166799382333881373014681844885447127668403985258533767941606164829011527616587530988023552457381942580628981169544816142462751061441833512231588888858169175151894461966007122408904886580192324891384587288228300897995117986123145359326708065961074273268308415191519524398866758482173571074281996688197221624897814922152856758116212890766131745451353486594162072820357751601889632351834853902109098197927076757117950845410736876838430291971455393307626278018236585277244981511386983981448017845647378345196743854386114446455354490112529523446608883972528397150235699800637807951220525998756949018790289824778686753669488960476474526809659173310513891015256252824617665970625859104694168225076474215611560295056195789123942139212389387738733912798255947135444156769177400368203484152950279529345976539323356787203045005216990633260596915541004891899406682150084914403196238688663530917400109729530547651776749968683046603134274234935276816016543973490790849677662895160552043608326996403817110425965372953843751803617815541510754247913661572563757038324296919791536064837218986965661207234689414314268554394471851437666568981828626184076051336282382182509638410853386570022011518837150291931233986664149954913848621179923555753821429703693063796004837163836680183645425435263772862475247181143497415973306781211208406571222664173869161112078324244898379439696157879560670719335161417794679640209876565003876080796962554480128970340201738859669913725868695564124202328338628992987457935976775058942402951807107244156219366280271367775274130059029170642785707718944858043016400053502729270938920794710214653252609905022409966315942408514798390851543426732767769435788851884321825264016265104364185202485026074273969303942791006195398280805256243210318652844573426992984070796701716589482524178361106788586306315921662927863688717936347175876074161948613076266028652890489350080561713390649363718236752163657679158310675030051067062542631445777409116327322128364915624394099457580033220705872876631494283612268316392288909854754834553227027954176894026416408538262881119074139927335135227504799339999145347638155997500208722465276995414799019605668909086125693041147218158888540133748374766405111169761905889422488352713378287792497933517852968707412411772310156821499163720488648445149477634966414211014133246523525833730736727145039077716913931765737384914969620493964105117267385538719432730754455491451960817490892979396883645709607323594705518886520256748330306606795277805287260174125899748032580445916878428123580528778968336346836319313807927077304731357519455689233249622140118253342369087617157773422138007672199427283933416211050176718652390830219553531329895062560399160488036005034693242356240183180749675367286102030437964014056526232591942071228605347095614143115449019841690382640625929777951056043559060977758697563009180000439631909149382973055936376107734393502702393399056873836431165087725273743679204648082702254384531067104137415284151735550200000428295599436964969399971258147501134873631606884602226834054966552821277255565537452427666024242838747173810000058843965866096208820938307207229722438987619120345902536708321783864750431488882593212455247302989731035060462350859641363021552520578912169430064273425592378173005087524774055656323958724634633635850892602182865767844258500945625085214593246417961816992883534201794003865996269522275289486930408692656242119858653512560912209036828033096585260023052559979101483891038801626608483307956154222982493435360609905244504364432799278436665147475372636117535003407718222710138662300416068845568839253082098846562208534749360040087468659991393910962783815509453375573299659560459990844966396062260793109037572443341319983600414386147153958698775308494420935374284192287013289651910150234664098925563194138738794156292283096436816145969099023064700313906086102265795757362940185233832978036422864376485090314650727607210829406286632534904468883213999361459544142872274734887902262483419312791335358251299879094544548681571847962682154958003946329087103981948233727035007597565150505304339190624805797135091502141854234248015964805303149212390590123382894276948148586465833080223228496625248209345938457059048604985802816297283880029742879408593841368601254387245992961728561695149223923927924899366043044568516990362874130273980986466205014293585505774023234845007436046866504153427567236611320866818833011955805596510997646818986305672588261563289622421212991158715838499502204113778992477899623964022433438509229691098145497851866684914589459069005257843083692957087983417048463556172076782982389342421690670380201508079961411685667369478081556388824690744365894204410893554053485641687845887515366027294961686404514725304253954794689303501245454744187299515043849930122458957224609219859584157062209757869375822269217643284011892647074276519674307189089878485706117178828422247493615314394700779007107842903330817408611843974627426260779349105078126196487971519799769711337422442322661655489111165782565984343837682667772086782326675441360028877020886351216431492259351015573025042715717836134319267708782890985683540220108310080031090528608991203369932671544881804114465552565467471952873373720487134155900230991791145131845317307640491742142252246249324099785805486876168737844735610329427556963927052240048266029180455922598448422193460814688292517026283474018454493689450121089536234173060292237238220503818503890911109948784224929582739338690114739042925350844628398791825276605232078879766216359324073707007043953305812771796955803606567732429329146813173621330487639981980867545170398880695784951474582299755443867665781244681106578926412541962340456666419776148741948228733255997231202450969375151896395549775427866480801274687226299878312304743963360794813366739191547600352061572576165984598002918551443763879023456871098160707702933914029311581595408688830404276509800795758246163001641838233132841181985237281004735002865442782052735912553436978984834716274556985815074388662762306698727602103675607575265066110110854603910704702249455966514836110161818153687463931730305869378430461675267523963170698375504365357909588972851369374909080898245652920457311973923238296012248505988532464503944125118859994366568444514428295836670549840622198284220238512913228488958523054814638476997896005773945876055900392535749138558327165026569720778265148123851288008398981157872328418626268871951382906343909987607127583651256775194975647935620129387308938121263543075487507730998679263406006707061001279148949343412779669354064493739561459110309698638523091928994957910207656015776433194580703350149881377132463222671711396802288348122334042553986535007452274295810930529166255880893922550366382467707940811168864399063269633692455440441725518718325981254246826221799362787956777056662945317337419613860722653604890502427002507554954723683582035762481804207280193605377040936579713112548451090861015037529271523281431758446516049311302614253335023692470220633330145510576148655567727699167847655607496351720712738727903159287331718120205012752893814598728801204223492270160268069675971189126740471170590848495462990662094168826570111566831767004510103954139084605828724872403383930374437629035698122501008061498693244011116084922408736560350214964077176685425075190951641310538540633558379250437216578393157221056444434303158192036749652096758913248726705293002194124539133520323723260524032694318460865588660812942534180063718273456813110539396633637159894587839098817040932617556432842680665061033537625428528621685877158679106987287381188358217034708847852734379258881872620773561203766299653492010672328348301815718138672156913965796276304948509046288055819365021572758787446582828452581586257770716960402114309970739113474556370151108790905093204243244587368535621750743864303801547622008548983839181173811178987479480394126674526821357555909047300594790252632805035903487689592718602882293147277569736682714644235126206808521116558869775706795514877691626273024489243807298744799277093737856532817039675436047235578327956866277675906407227275061741903913602594270392205917541526507974996020207524610265402546468965703217656885309624977289678371297985117200758710859344555516967258007950790790126008760477795007843475148259539091955063429573991493115902817295145757796347605588711545663141929736550520601774712154900357993088096903069122839587840034111641945019080179040199572911155264624052383715957750761794048469987396883802659663759621415543188817636818227646721211605814996369726219082572198366384859298724180996059394928998611323256551860966100081259928192393798290619184897684438429761453187475247616313100210873646872713025039476238884914041657993568922970263475839247624998057492050048226177270592403006412886856487800408444688570534879672011036365088899283494044107195901488597235983362000522900686985735504948080539012347742630946556274903541042955787325751262161475721500476886500838973413795908579901345992599113656507849257793071367952822107262090442041753696264836032504489851196884424261007773545205888411638981788004595382759636396016872296727754550320782045628256929487641000579787257250361497127376794180878904040497293375371087917951652694379883116268769006025096639123029094943977551523007439653714174517326809394898074029553266996175958639609466660796608036448695473158547724761218000046362070955691715938064969084568023704500078188364057144402569125755294389299394691352882710727204047376111862940447854230978496213170640530983626823588426484597416195319377292494930991891839679462537021128281046640160764468697311288684300686894849305256315313969451285071934049042541868858260168408884996351736096821875765070477721070688591161916662620842551571683932315256995927653535230563128470541988753464328953837756152645463847890248797396365342888252696434644902095103744476684275181365316169004365574403721407746473646528467259289956742301622825293966617402328323661939239122540766094090213726652350932499995886222437516355840766476363550084675432965528738430564082020584000459525120646842710292925715742629036489357178765525561607939891663298007206358442425341078965381871977576880273008611240446445053611332859345724729141906640947719205726876655133520571196947559555771196706401867586415121740523701169032132355783628007472473721612256213612926425489094533481040659847206123428713935047045007731862840685360275028649576110901925245221277455830461583198679708790555439021844593648943529923009342788723624905564390502513795788858928131423248715503415721952162071882898648868460826313895898573689172511815754727755162987492758403082075191465840641874363268488316948805000503925391819350070061724118299701624313470303623874833082397652406553142596189368921591466788056670168432410643696804090806092441414988758935364642544793458580160355283528910959041886078563788664169637226418658202986294853831347579583475169233154530055283319356579615675049332547697442745039811526537987718362066531493697521512202750662610251860321936209969257665768709248296482931250681587539018876001655838688708174509600460431469744605217886419667116189959087885850235682257637217837933770993973482513841018271200770722412025554129996186901924999574009522222058592718492414215480741043138473391943889003417639106775713309054735860382279860176735392619210037373736670436783938006163611881284787064040828695021082501149387827217494770685430781530018666835654169482274393671010373505019057064890648393407006727312159602350411982304996666797186765768844647702487812108739399422855444753283323202664755500420516806853548301785511836588729939581089097511271976844324061989300869395969579843331676471160351431504741695935685731223656931924775227818221738033142334009463839616559745832385843408375592873371818046947785071945720577972275344531304502400376360454161190389853126814242952624935352387179777968446976312811911533913204309544154019293920348100262384531826288361982658936407591901254018934008589204655993470376219603443271332764301770015341176751835661518596238702473114910985217375995142419072710629317914371973206050151141058699040548396553563927678822907171929734434425761399733656543617232033907963358993452924473484470687954308166513230940501889834350208575211768359747179980427513560213261383652034136936188253761218313275998970593143635203375502588669823349215318543994690392875949563338462703664395873872747428382238627199332191751793883546252109228784334457392113353368655105554724282064946005847577464818468947379162802311155559152510863740669761648564197899082916786575497361228339703920935647315018541695253460817733085920195862577511912937457203089919060857316337727169052386361162974829019670194352089897811415949242099663579130132499057727677925431448050168674048860563462863383841189756868071210196172740535304821789245423558120515900937258707470801104286497548663144814594452759541625142831242546445173318589183444307665304569594558134601227448780615634384107673923116447459125380740800970446099882035975912770655066633778279436237608557544898324591760877511573476245706627654142355678730669698795939380637923766602765097394358411509402964220926676660122260239913380737428243028777366602904937484297990959657266458740138750337637052012560725679614569541298006381951144249905145708236531065616602937692777137726804368541151969416626055815725043543781966400699721327021030630307131932847946463342518428791880179781884097486373135777696144286007866950837939578430500806962213780950638952317651762166587956869518971859069407971455854884486781840819155676661246846739499652933940492555613121579285806505828428990591852544259260462731377910181596100048601572845808906369972654130599132309376168152783959491354193693468804329446061224214887008399868457237775353267657616778254512910201605428642320921353312098544619798765008424105249132902459444820478433984468975341139879894135276725211682901798657892444326067968389856871349616108313813929884824036790289637343890033666376269086516393689413866055021779874280944245024557321658505173376665268102503406541979721902366367646948462355326343965880910172642147523632630459784398868107157381327742677137325526426986263479615156473983361504699927487373159323354511074809767561757574827832726697496406698192875696437401442896808489340520984551380878237130921788157135916104360595146622659449326351710375320944681175010515976349592334369436416349117157626328117746450996255522658133548156360816506899331559818020136202016889288052968169065871301152537962338153881779958850300271401622960476837803315014192171754761591900935378027507158883285989955417534219403102092996142655607240304634924702835043900583090834157718783094319329565142113572789153888735427639562104702289498993062140668351390726714368519808714975305784431688648379317787076608467859449672122321539248974854936936631424450159759418072467426285803007997790116046983536249995001962560594203105658388921042966593093242036474807194562984106071803127146737891435260831339686496848872825830876918826590574428345649136291631840789090249707108580565885538079282241986779002110561207470158198436057242976189264549032796137289775343643100201921878250949935222740181815051212795933203460921086325521513932268097810937543814690932929783558695597023096416862828413665985528979342623694497938702958765400262003210367559643772261014889822999100523705464220537271670970578421550552038136618521777897952489506839053827898096402167514307922496805554480419069246178213503609195154616757438683180494640210320651629827950379438892659972094845445185423302571386681140132869011840272227679481153153861568438299407225349636603721111350651307220683142646977053527505819871699369412584766456393965043469052022004243097519582542913674866113658907209636626823727180522446523954368151506673069764337338308576423337029517622170872548845722497298435603828630498120891285043050419225787598791013152712666046124524133044153046733247446380000581556820612962830844281221233991962688811407523381338646127930731330788995250204872760821022277803305300435489213425377823407750548433690834461993309254459106849903287878581756217433520633971626017999406960823792445604808300172814649372557842516063746105010466924119743705247827192573492498971744558967408277846050359867575370467538741638495132813228264591997800746378315934360557722608401442091421495100049267159369148454424047294077511389306143651853841000957149979383882075533417207582845936475350772978080937428361416236366928298459726216494187347730598223826140312700738277803656651483667068391319636015541053575346504129331962609058597284984628395117323774946805819366859131317584594472203826821385815370134643684673443031095471984195768210610157694319883520224833460495109579599545573391066911623327128940992980689651093258588317838146811923863512036110957879107719669191733940464795249290596742972919839416925718956135240376319080360004549368219721981464042056017985334691269073671050764144602046272694636520562437845103124531690277732675454501543958898893065075148681397022325685106652224290807074301482731893803098543116234761458497088711727239304807518141965172188260075028492486633687045736975358295064820332325569837989228360333789573295140950800259209958831119407822387325906389560777896596094868474625599485562848143380769407145053246274671770981292459954234150877107729189082044106057051458580819877080643836418178498396531496460116004156938447784268732121612037007531175917524487238285335815468443128732114461160556869167800000885241123723829955568191004437771330063108619961330409698531318472583001406675065284870280521141307084169328501713250753304969110634881898397846599513819204005105311565035513253053751571544070551357126062037795255756352880804284893096497052240251884394734612373699342227336393175363470605525429042391420976853970882697323339982016376641695150983269673582695090115609723505200077737593601119206009521596486843695735560546404853594401522381215644448134448995835193134742780826876992780982461643947233226602617128253054247987283376519058830136672770875049339771991202931514465960909544546517183039574230135087337068824291066872043382118474163309301885477599833567567948398977432344220897424140303189341248555622488780724879284460045272310481994198765870045084398124449927206198487159328345378281515227873724991229094126304437714284064658531392553002630023798984755210034005088032208930876778585554769025370239706746073121812341819783957170865167527616036519224309334842359452522397030133089801290685543554140962110430614433425468776428914065794081136604196110375521823190808134385552546450337228956633244280939551876301317414837598011775607927610129326640666577099963593083051648805116844202214558916496435120117601990248794215227929634646959803315136719081895472753694824440447770170688727714810068752507929838715449373887529428065128552804203388068051374760411413408477338534343624150908931549688177151957053864474375345938972740385216242548356472014283976568177490166222809889537430579524932688261586087853565993813163948331732462753281550482121385387575337841209356061692307526460842366235940034151862446382436074985337592654924931978068839980273709317617366845456825062213621138038379644034426557254112871132591232886220562546604884911674586325953365545619016938439694039792510000352876003200772428445441912771206295893640188707475379871305278980865153498802475052066754734713140366277977249986751100258068054878127750911846734993045858657618068971741202131194461605144215888779285520696396235220956190411425724945503784821119576963193238901582087670300442550171637258732793031406991442690503447820364886653595225734289611609527791224810828690227029745757280021120535561389121815804077831682327744089584184754025784146688297068597959542676940738184747416234793316288951561109621087161810644828833162080155423171450202328849224705115546978968013973900358317098110854773030146735434555292383248420603196944466473231496420254351223151446514623611721209504864920906333324289329228769194849073872793768858228505582249185327940438885824751655848610909660452909024449997004931498697904071996308668247009768859100019703021714130663066457593131065580249149227753018051369241322153798031429939969092118703130633314367762658114571559464156312695761883628002193623889985054330761894065329166971599355871487024823375037586158100190519353125763034933321196059324292150177345559070371668898677931646039721891264975722173924960154819712131059430768380188759454161909630014234387563040853132391938794014377648431201736105290722380962095907729702817891980796808694109644787615031429045012684115212668539120669941466858023716633338950026217203926652629778338803062218796382069509404153187859123043347701919872670481092232138484573111707393491550942408484425534344103236933356365682194671945629995056391967935732914127855550390604348267979196783872390390272202590619597470025943832715611618758735778877573480750873650211774068769610359864411031612463399156034083577838818718424026949182395402400790655863645956587194634826750663129142439635570496610173495546776911685283119448119916502563176418361722603533792122869492725028435778052291526131781207525917759271133643150196290499394445355681941411898945274212586511400151895156977883418929533620950351318300220161700781360143701503666568346823347437413119139424899393253426376356730139823689870269195429210353790201944855371394842938425956897185878824456924113485817828581001678860099072666835125114433604979439440629581738869611305044278406514271655509486732954390545406404948632976094987976186326712114698408761047054132145977842372126767993554540936875392103991731272152314193831495189750421084108875381530473318588930751311668550975962182635261408295908534254305222568132552902706082304108896370425687914108551198130094337189741149756073109367158330154683402091548733324933432493485141205685039028468209963848740127483318350017775044070954450344129619018046040577087649322569616661633093484312771422553433665104818815926748910493083707196396065509300628462635863247699673592219283253938577149046003861244921255069423900753634907022535217783183708315005898421754326557939665289336418718586821330905613761770825338801914319431887063797905351901530436121335666265945734944446831304904088248146202699696299367663172939410461452467867490680377640975579368516948279969967200810940330163456090485582007294343461583374218736696545531813902395596383624834370205381214522683021941131762948253613368961114349852001406974455245982804622812986924218770819165691243822660754977914068518488257821827082906122384691072279017875384655197171845765068671908835155372933703147640052171646937210993943098117233919237208605614229237578379916650843634885561882296709116968840137274942142602272114104419321375583597381183619987303253195726121400343805055747773536201766592767257424127629953583336469375954957651736255009375538530383880497318665420144896470185255239568305182054838782248898559228322877711590858112977821468260107010671590961092601848349554610057703341803796045282680849713935139213644062611505640407194381340365157278507658086388888013368884338625323811674136651319094530181355867933347185740202347211371654443220441550779833383670292688820939093083055650400165442211037778289456950743981782385078006755436170730570681738963607572670831550327740911201971046056810669092983969073344927311597936276676998623503177448748092552018645393736515524894687296508605707166730362509330989341062930678332320647833778563669868284914468914766474404196745397736360554241224603756251660866596569068669040986435725394125184687411003496059087587186231436365470205005166508116235064332303978062053637018840281363527716281565251631763021666545869319564373581279751667118297604855041081525685025858154523971863832789541319181175696608743512305069081903781813264935602924589145673079146818416955826496504140738789772380881439147898390797928371129937260028616656358583641794200332232029073096668150998764314830074492363945807219289791605997592844501738916279156295522608165857049748129627940461743132753779929834874628937066286591694675061018375346952364887837649631584031968809051506542033089188483647007342699684864960396781058441204405604441978391768916260186422450389043437123865074467322608984586925483312637846024918676749582836778490459745271548370260207198796715456042298125762798378229606209301219028543259393052248031076382812584765098066969000148546986875912124402998316406325050045622995225407014917169984827516499119178539428544780000188091532863112960534425510021715555725088569578776229143496397924310502661963052271329192782222209137470748920785895868315791724577197269179356532390976209591941702172503339388754673673803015760831328363350135572266045514855842446600455226994528701011807176680547308323091477930443891407119941052181381621794214838548645930120744589822965394722512393690279170751811139466638994676838989073015082297571251291372875773655360533613454978979546200637315713696124566427672885582805877659547492924179213644647382061033701130833369603200365219783576120239099722190746416975811144224782143400430876102839217692360743993060255953958494517683502096090601370244597652451365244002293194752805666250309253167699265433110042833032069052807439351983433844203160589225331993310050274506890927043824409663477597521900454612192751538691438531099799534993627521683044043152407002518692762837042439895141865478084962781262015561971945748328022183834177016483704967438174837585774161275193920527167951134929163390008473363069053536790768643044143690747806492159874049623578829862087733423975299182821545914923969627422899169281602892431095314458919948739422858052542637273648989763740837799589817224365572930751600379043111437523400740305872707934797763504831795847697944513048350140253403038689170292564335126474050111869873145755578637064335214542509482779861742694524360121160890501035332644566926836202264457339549638913825687924964032587491675122083041131092655012238956665076316195360740794887495435170156442947124011153774983749517075635350412234329518374557390542276326360993969233254552121133301817825055418266703338043862916193198112437001367905116307796317976070186295676748512356527242709918237557514405794908966563611240132940925941847824155434977717625953608740032645686738448439660242291159021906518475134217582696210051297675378980162420423784490330523973436804014354148618781898197617552837718639346215848668183280763422700399567359995783916756565318504396688212648047660931531472217331786089341992853986082772700022986244794057561819446708575877145640945209968103554172109518456787395250699696575927498764877251988337430708210474572206848946618002719048151875833261079407087718755686279096702918671063583586212368409191097206326246273347236377511326992147367019153789443293213355478850811634247606363297468787091020781998247961913104973727113270458667737516528049660776408905090528674745981346010148103003853807583385110577181452605067259145079475649666099027493858344013676736742557547388864769624550092849952062703685206451483410866110906912012685249018167429469382447103841157013231753522595566398168501262423704705674795447832119556260252865447697247024780794904469851362091043533586530375199957497040655914116299315165722909467299832779372352812901027420741442686788418841613384331077704189728370223909444733003847678545401678162126645422241511358710489499736389046784819434394176894681585038589473411002095961848535959007539010942141806490928993566678059665609898927625078341499253462999780976549057948309631440982095526419571439924260323593396462405207359244493835683986501896905534240147403951817727398247051958236943477636757305618077056327562184275103762571201509603496145782562809900671069392410858049715198923911176811144529232424434909727992943099865988000464891386143919884757400342519517555956174151679824087735835303460067561532758305751812684417498744651742763304244507789830351484034332581937689657502590876144170417772108309779391563276129061057737236527046441439682281535342657506806750850558820968563480662895328231474296560700305724216432046521784782511382105652768039841288733781244095954050380658286856704203023533820978167430103968400529122705055378925126669703249471803138709287029099874187717818836302007812264813466481347350685285344497997744244257677880523206590885570929045964932821338661340581691999046740768522495598795115453239569963898026813977263224506315067073797200563276898708592373707228750230989183544313129532145582324353279077554401021739791235503700577355274974631659246552032656015338560626211140088001788031624105521340797783551001567475664273800275858886936091606582411179546238650660873737788193739057621237276403915647525876646591109274204487726629330355873354966242314209219032788433557885651336913212455084055325133513671007392299611998504221576154982968028140439472528878417436755035367999523839440738241256175322480707569834593503808487958278013152790533944959560237670534286727735837810005271219872037786269668767285147385341849580745258121069024312167432936501201662753021660218262553515193277627683313659537017722239185654140289999504425049720380307451557706114375586815512998039050946639392922912692894716076324447495979375452842785964221023884386946881097674432694875532863226457535664236576798951715917564118484960365671151938458672446014354725206377091312544174903254840773797759834873827969053713707916761962958105747515199683604862937494211275208359201332754703104024791775059362874463572674684598408707104559866784755058749892922730330372093060662334880029722856365600708985760110919809398958538567135920540295324480835251294919678349474444403590027106843803284501526958328897448811059101361637667188634311619415182529638129487069376841193463467951572035657986225447541359295321584628832504631900303135593953608685484262264467908041851609915780703222237465805828180137126584033532977832719919304311191991946445681400667429100594437394286246781091384748399053765497390798843943401474779265921133153673968974009722857259970936245877746611943853064135182859771059098909295075320825880014616449603565167479249069045868114490789465616671005668747613431710269643086549319720454207678557050570994813546984793316675317070042698893383849122803561123866086043083471391292487189318691102305620600025474737196542753952671236470087280079159665699213070693729919955112185295842409610348428770513730860253390103017715211673070913362908702993679404516113936705074561707216949385365439038195825124943865393496100614645890721658596596330616693875137644525131104803993140868007933934517411339564970519411651621177390734916157213711428514734969113492176490042807319981735771931733999567714735820158537111203869472755200100164047607039193225389510531656954453215224010918146561189874520527114504021593105751054486466205380198787042798075700112312917440444752934625962713155714989098111341016740711519576042503542586956884205423271763409429309443945772290791041233301423328787973909717400737957899466503432451181172262994849932846678748643358764189801315612530099052933418846998885050053790091968992622362396585563261942239364416617476795911819737008739729649291398773077010082186641903043085275954716653312379877411370060005419296760876672723414412173601580574149193016386158773801257588256314647804580226858720509488180463385993840667291710367447758821121061066738115094683181979909879154904113474324700900677352923760212333106977456066475231826436057632660843678272123127166012285200007422631091042736169032239137872996070898491134992976469632041991318073088935308949294193488792934947215504735939796805517000800751494107354565155662819868250891281534834534941045386415590136349844122231414730674184214134003560586659422092592475637197301020560240805634827146145119236348758117724464670183977436684280135512328152714878162860726245369924941846253256252000940146765125306095184429419625568146247843973848453131936858639898217570872237913848136733871648114075075050689516891111956413614283965537010607098781013573653296559291521954906618059383077980259900692909855920849868615031304133188446178943836663049241422293552910315934831991770297322756776560056969183994595904251989829527922067378296933880037806127962261370623548610768762013230264601508317003800907683921039480429801707136930486103057751654320530513280874319429590642955248680149574567026775575106146387670088314695236963740775992460267713331115054635929738560936868437760443462503826721244692039791424669649399279884646280904352434704710086801395284232244167351354095585614829372482384805689776548249998654368335314632192198345445948207007149610267217558935754041969892613300953759558620780849137756131808661768950857648469271294569079883977290910730019382326361322070468471655957220521387099052123115393266218686234509167711655033210893716310799913148146763864074095527013462753039715940528991315330376433318875956537850893884715334634434658390081960113917549390548451837174435083230605151111068984915077389614754009192713945867792299104833492754424173744170775734484583035809750635727102949371999235412610650800424017569554840659130265540316118940985425170261386312016629723955902576835340738273708409145467752731915701160854435336790567184078686129863915299065922664792266418627730325256083201010741897237285718851361612479813736681011838543403160982324901038436226554290926408152365337652359271602025526341524953018369940467982747067744207424418756771789195077427173583357324988294480696962511832469264684391992401658322758388638808800379057310057990547657085537228989399856120171243348436983108128567792591953759886667212504610740334010893429087467269991033620722593408122460110668712594605108438284253278107304344183338192001862106796168346519516164330199143881726795500581974746504737640910791025765329649686618727373788318185666073319305373820170637121084377423493226327496543161201656382805038012565801135774905524635835497468594990428513930172541732384544717204944077808657679509954513862935028997699771631819497408398235397530022408174759429036454590645461110263038872224251490434385764765763553869870830551257614971207376200670976996452679933345270318312580832307282787597845543688610029253530396585248655370982835365816952410776004292428222221521875198940406139223408474214542444310408737752195413127069922898120590869226526723466803963315229706397654842916418077924317030138592130044738613095095120769867211370545096560382604255568983691755467402786254916726143247258616211522692127107227799426737710613457591364496103773720222209920528520422674660842397019654879091194329712600709583984189588574958530687223292956962214018781184765551102953954666283432847943500132937355281348064705893642942081298764865435719301318953700725175107131272010456580340914469401719467662202201802255071846914480241873984455791175161637844193008877861797425838865384615928596932902487553003534271107910135949179357047649618465726725763617578911930433610770308525613190733213004735463741274566385019475416000527283927200540020672608222807317714197934890453260535508729248357404711483673045798542303837127163983502773859588664928645804791134746338766940885257113946444330463097941310977803168401628346441565515556879541653042784050936198176434700569870674598759118441102778750914355834572171128381674793121200022883181152649324265066531627305867582335440105928534984657418003844795707156398959943824458006466546337070996020797172766966213135058464337924258222911088206654330032821026385235303906727025374410278083444380467669143181387276315558860523626372916947185747761194588541480861032970269856764485695501703101878592825607299929581686961769776122377399007707672903033125649540828124666916377021018981470039335818080941497508774798944786754798457121078269694861989358682207716550266921999004675189703682611425730184593815974436864347996460153654347707274800588272029356075062382682838810546139648812313719199020685426176772847267275435855140933942476797494305815714824207949525815531301932991988934503175584409551862795919173195285765554976364690397100242225712549756240032526887864604175377688715553009118712055126607417301690567232056220347294356077440071987686198319670364226568038794905509967698188914719285156857961944232278285138043100373851348439737760775663528304649268194284519199151476508496505478507465231643391234301696646038143058942804218414099834959180099611992903985513422225535779190509825303243124380555961850893811933380066080258602756200921887921311287437663996684651968311766055277556306713674443806226899677720611227239053551414283428030084290284470334629634597902502948079067031495113483763308407636032413070898487475436337018824990402430144448371007726155119518246979082251266956754657020141637419854547571676263761344310493139412739134546631512279867728911950941466452034207692145777547812135038220612276715977311313211875382391954206967044438451121073045648142218230574393555362637997020815684026464562098613858448619061565443312884494689378826598744834769813300484968062344010760168073287327871517568197840667436121468896587728668403407629126855208204851461679360410015128195119607978524951800830204727849284630998173720698840618339905926054289400698067338867371788834925497098437107406522195796738266079833174192265413671096560929494880962415943937235494074732406702995756130195656222570592428273492568312161984655247672343268373980470600975510042683205711159194858545954095084129837940371685259713769310612759959673804244470250581596173315162566567096593933279884171187835063718404009130492182572058413308028963584164877220331698323846296073581107425221294306944787776160711451122682702723023941472616886672067213829303263402801598415954717739920740486538502930769308110184545111218402290346117531154307072737745288867543877118375641690414590835860523935518740167651318579386164627567222207240816197146163656300845992840460005976832735724610599157404631175620957530857664961830600912394277991821361390701815556406857281001240783169335979500089278263413997061519614353493508857438027209422206957066283863177153466418083869114658900678121523187552539345379656603208169062819531710764616334621066219697253694447055971114208222712832425112030276578220859988117313116148906924259032034547458990870504838620256494746235468640522532796183233835199819970912552202943770251549265272927498918537991160603972061751458859901914025537749832002239904425456990947829006618990878172300789581610450345519980785756005954633662268278982306513285599975926017752291537998847253646501437843370215590236391101677616999815196240584009844966797310026849026847593247360515794605779660732897566414366781900713490321014951603710461169951994486339353978088062540383301338033653342328909480578852098832268143235353801545494713092299240070971370872473142189775413128651526272767866913118121401244817660648870823871927273637886604684184938978859508814170501184055015818308661894031444783355849353670694082013958592758901000838645508097509654505580895121613991354597406253519791405609615020770278627259994371263477456903213421108530102675155356896589418458609119422165365037002429739506189800104051700405341250603357609003930600135103984923310260926898441931338849133489421380147824474273722068928189742081009518959685186030552567199576605761539205220811232178003316673643659413414178283226067995768893165930394503798699146105467384504670524780209044882163594614251757419686469056465920093889822234677103227310820309017392535233204021529963402540710560613748584498756240944202561625149271904861642505679029728520382847859847315201258005508532679799021126895491827270900680831588362426057754233210018452799472095190298487622551944781883983782154061483800284349309766929423597257584635475048985728023957637005021013917753502859916788507902541814105649648559122221614086950912475591405808797072251781000230594514672452752880313419132579179648900198944289543970718142427231117522478494358791888985453388259326571103749248696642747777867586003567054415185979153106731833446305440296397540064583829603101027365268757738437524858935065796511675831209161422505773391723563859681819664209569203479441399719898911910708151618050573432560112792325738993340421113737073710428564379295771788737250185247438651733835143807029133218197317166619485862934640197311450258080336464783620509592571368494091281390137263937222013443565346112829367023176449309319851353589783336085696031346672016347117901022499929203525179758896299840713013909508403437994489165938269825759126998245660183696683960156967393042452040020791008812694324237504519552637078789725762833370478806612503896641786119166657332424931566869628130743873551673229790720768424658855003627177970189603675725883125040639970168691087056928337035466656015859874304596082135288441830133267527759821264190784003919439873579322065782060934194119288803099584920710180576545002391358259300111507576476129502211476021301181347116322272001946258837901485246191704555617369660413724722930377484656769402870555257619222906926113562059169561769952031185871218377647806991175966466922229198768709918531998425578719397359258127146304673372138354506367730710149399854452563470722483277358626883461331682021599480259496983940759141719809090469696892274581235919367642240106361455896697650485442552405060121077023546946767001281447601188529217163236164631562496312122531380815947394969020191161697522751260831683893139492408363499591392079597545184966889411281419229875817106760890279207599388602342000289475885637634405125380026179599921676013564294890644857598087233299123477471501422740000542213509128013481986548679421680205202870142325782161999447224020010245294594978217362550837859404258681093251843305448282856592413943997316078272084156203695921381973274524452145016393968418276483383949960522313283123965454087726737805881054793822823855906164788555807097581826113080471870566272895977466073661677201341911321773958335370004494915174210863080748369298300598945082806515598282857674215816055866231936650534209177641567613839095671177165038173232814924060775019069598700160267840548366016431978646905000095864039345989619644885484979355422501091609412641652701503874826091415170093826936701881897622076178119684058204817328509941640602487750515166997242862132859993636762778420071761089640754243110504147685233901686275643018490645791045200879093918329117067090612753808448532388319479788598025610489907582629607119796488455768617924390998054894332973855837751962824136611581894783891982603505659395322975461535963754220499977897117535377778122608767882200927607898083288840865995075994352667631252378880926340017340706757354487523297145518620445816182314426366970976974589370347250586773054245875362605226689844078230059894707842226401716416024630117294348975756257607486815461554839340123819569186087198750347548199820125801932414585953634968904428508985305917392129925676993558410903779075503535860670444991730502763082620179217761143389983886497232116084174255380371186462888913329987751503622284311997228418566856349547886016447262204930913323562848273432194796386296520993567686825635056149422341458663418357384361489672099670079861957078422198835454240778237432606933000065815934053597485194896667110545206261255170620722654935055811654285551460744237834039257520515018010304061157120416906202042176558965081396925239143025410977366968525421833430931697498816498315153495031147078520127919416648182502247784493628444433994037909561763453580684491965362525257171693798498936904638865698999953204171144811964272018563882849429386074441586412275009086877382864459562760154436349873530328275898780837561219038485690781222238184168953145952906325050147478891268041289062134046717640495459295548257984214472061904983511896003311822431996343787855186740992294136322694043854706051547382133369746470547685555029178238804101336823150983604309952005803393650779573041942330640766843846640019437865283891066269368457310016473372551219582761374840794503478514226223137701113165336693088958658773993646571426274143698746916085604181576786857487549986758919474180401038921830160513802504825864621746799331775746424050183559743022994794765952715628813457274157029714496444685517564269092111296682931109686039419883984093693980702963930028377164509948413154787433277694808418042683187920453027245610717097674529330841429699104138976243536624284838065927079128928544879853117780128188727960947311564874805773616451355767431046997670224478471797851756599945696531237751561388472541754351720604338253689505861310728070704809245509965104407818305182852686873649345360400069244919570370472032622258871086417472054607363156634650930346957168136444109867095142182843339851099570723627527251206413511830190422078518055913758092774950056451224364150089788850193449889543644664940983687141434856878672687377198501513572401035527615625246212903192902863224881371181136790770941722312611958335139550832932669702173102852255657823111126897882397822642797330789819658024541112514787846213371612205330499799840429302421907953873379604305086494503005692356545972564761356569446075480359813156014970047336257592765572890323555490493791984208822084396777518888000961491071520905680803478129863082018778230208720814912019461549061030119159736560223790602894397693884972206114743177582904859149616917244848661893369534495067411025937541069811249654110459436352932646394275700970355496760622266781823649549453974521311461244636401345609568589547866287453259620817311559888222562634676310051991865099329042019180859728790911126741727031937910596295789219703694269004089327871788352094959648843957757729504423922971432573436450968955208041740708264667192956071005147547552872434374791528846213046118692079311534679802268451588011967860760097953114648655828889046397101309014126522768188948011260324919232104737843643645697167457566334146199428151040453341386228358421206713436346160324378157026562290153694243748400535376661290989028926813004249440399543649902315234780963505572856383928968318687303440279185882885697462747466091808466266075608223401384292729951645058261663467667921768507599012055941798435182674845422710970314190354911023231104891117809426212705491565694191407993356224521458160350325645163712541193326869054153829825033761542101066313785000311188020827891686799741720809565950111335626414871472191143344957122648068635682068448775764675589707091123118186558983024165748310971930774805703181987904249551682192792920989053448004030761753239746915482252812922150814338435424006515473168839961985450164128577778322926566711844122903321527337413040881656761939735500209401495875548019980569367561468488527391385695146906227916647229045513259036607048545623584647943920598289959863027797463330678281001041000094657689341985689552029073591690732989394588885256436138433186275009928391456034912955384668544235065259904881576498608933641003054470628466000027942501276135424995323127028921321409954468150747243556838262111540533314132989248643335265051553634451303891184068097995175194039567128323265759282252547921734917174979699538271246474605932404047436297502605831350862936037500595691606532150677410449523165285116933786657854614539500941125543817775084199046900609420378768900722101551560394293068471435183301789469537447028241809951087880178194191384588195642125606601043496077622376848276827787242330719276361138188487568895500745175765154651631665425016310287646583854072595396262689290829492692160904940648757896561824421682689262895768652944575451015786483209370777877594181774279538149060798365598406199723049823452185655919719471464955999591783367886210876630993867960086115079775781902943260218629470026528806213834308236990877898253183756153964180292121471372205573454101946259973410115351001415401350431037636143864624203414101728144107058870271426251848351087511192948285752072721554291859108476462473007772011302869831738600183002163919732016318181290129804909453349203324161750605991987448340097138638366646944115915112166599436443831811201908535545913692820168663814862187834673034048509411099086704166526050817081010788357744603162423617436513706382832712447240653359323230596030085818030781049297192496450798887342133077754151029983004532558266829213332864720756571531689177247065558519641621909777330969314402336335242501601243908821899484630248252844486830596233214845214137918703829648916250554487755906984973099356536530446729812544267470573497871061512551739963539109045230598553281164152452791958376448967333229902941117677221355361746542217425949003050386050531900203330520446355318821177683105181315864984667783384537661413119232334870322121373812385461662546853406042380672440354460851441287832263146265183999240070426282752740106126322874137358703069336514610772110312737883416677111456234254895845807551667913541632910187591716042328155128427023114583487796555870593379670149807886280922303283515536155034537891446881782593689015267985827159187402108317518907534885092803134274769818207010892744805133726603650165895513880548868413547212024687852526786191958313784964150673685761021240915773691458174308838452741267521225961285142980272102406996573263460496039581270634606550183475712368595251727824994339205527954755088927774321313099693238551258480069795372345732602961903103735756040423927706396341513218279475479288678854271976571328401541458840350517446985626379264943443052264232137354990139192038740286697275536987614216756787691254884551971584979425956914951387014765157399921161951427087830775051040575046072181973518123056702993332597457065544415927931344466494624109956384555954974455939245467081593427317034100883131531046107339316845329127284531009287502675829272989624205448671450286705703507284801282999912375137298595904872093793705537990874468208253294217398195440879602900705266305750348082103907807548405028366999430198106736499307008112972124269929981593780310013502768688969912168398164722218641805394768544367780812897608909041771157834141793197658135057443066847132086481122524183221836403882253014958626888874250131599185488456148412918228363069003957581968537944198398021962440048149143828467376746874457797441557106975296806891766244418301095168065123386573179721386682036489217605993811232826609627285467762942146074413444844565936044255195802799368618882877166205453221719665222403807794033643110661019533555530087865982955026275499071356461883415001620464192023786500744730313020209093139627098820180127641869110869811864525821888889709700597652243657629603917987617094292937715544383594754027883811562913405494273124302575914306981248173286494423464475222913585907110621835468372476112867782774273454434298462590434618334553758700445714336796421962771975440026283109933802707351683596582899183824797348089244173842643748457277284201646305711639090480471969621109854300655112856171407348964850999698100868505551371552469760969524898549967936363126666469272186818968926973198285759951886552629024168544244709658869660745474466510349059898989225769202435865537474522462980524398028957060967678986046622501559429737172326968908623157752886254272278634070249437362629879466560214210746817384937666231873167461823553784290349266439131286072506438807222810754532048296871688639326576303539212840542934195369004883529988167654919729556180756241056707762547081613934283010352664441464008630379250679416922599562289665875252332838229416447840244650525753039815143939559224536957071449687532448057366777588012285699813396568972892343867176860267287183894997579465888519943719712573460183008037636748919653213706932269419918317954556000015117975945156505619324054917137920074705099345224529363179795193428977910147362765596862475764294494222748386292846532899963019970344497111433126847420946464563740752439723983557413192840764706866008511962888459814740761905132966496223755792137519301036515764780227648392210169765510378339273805773444931494300929614580098174918587884924817049232266543217885201941737735623316937214258796203427572321168060729214410935765063811564094168697016643667953919043246046191086865836118259181434477482639028191915830719824838924817235760938541633928613684751918922676762351237997408213098422755805018607027316068562762572684079204486239717820346365074775675523064775001570901554715318974662565627033094396977105485763153781658733060018101015570254937088583014710129410781753652951661733248029607337882851438767650892064233964486043343138689148719624527871967110574019655612071010108623624103093140867541112571611255030528415097278696406058491819222828950801524645506513866681788676709159570637254571216164942277951027072704448183273725479006690477464893197263864048454395256560945488035912288594627996028714308707116008190452177484979590537919154425799114302148019113079285500873681841833925491593328231418074009217005187768973606999071593650871561205304321476313067277030352749803491287349098568863769802615553472462003763553682607956471681420508796236008627214436658405706815319823125944481751047059957047690340425038055996497286494475984626212239938592793169125915154547681124671317861075587420490580681004011586139934845955749563916046201111333559298760433491306734915358497461793567545678540058522289518437837783610033238744501933850938602513406889520697513902814179573875348662100389324396804948643643403406692365910206839059594489680756412587018667159461071557955177731528038034093984430492088417743569081561986024795858595865217697272952200558791170678682890567777402917080065985874018974953651656217020168860291857590899061671537281316167124960787553835218057011230899464892038330771986769259082852514019946011699882349856108668798004940234835006390619212940759116784626453901521391353623234894954158863206388057591673452170416083152822565348201027210232431018655773524809644133569185148849560809030206774242377074539685741831185432745017543057536145592064966400411317598795740787660502824553401460285562333100679151763313031946402231691556316357747379635096019496517092695503450252163701062307682149931893287625478946943665768499098757474494918689912251633316316207395276376411043858993929124447556896669621770826927228819059457100972323195522173689508597755089140511633006081973341327369294906099817527229967593590370338772430423905341369750976759399514221031985072431722800929453054551688054948410515055940321478117960213460833875894381568878158958210972402388092713517552326879423470841392464832973691471205284439531925616519932709053164091476617990341871941594624372110912546141437382675643366636683143166082811531089336681640640552379964387256255606577472790310398997111463561486164490033742490424142268723630348024904232818169233644709148204233802186543524060159817732674923482316793790106311165427927451369548871943257434717309556273081792669492955401006424737824837228173048574001944907017183957881415322111673437995000657505577658843584460259573918453565264651601392925633706510502521982280847535366706621580773700933947551265364254364492658224780414729354689991336471465413574097391632265886309047996806642867255078928085049785068387461244451191900193203169002000142950303864801487930891359178116714045605503798390822235573170657776660573870932330319192082689361388756104132570035043291622885300424099893393228176077853912296704139017827909631527193542591012428882825579144917472027589229861751263264908414965754849073693614050116389383541537493131539769249511055060606957200990690313474185405372802790123928156908589333017259073989951691131347804926030146879308657653708194413742757691066097775625375430685242351472897510455863702084838320362968237247758218389978953332472708072662679960080658828674237438402020873037319185834757189140158691961667250629146243677388717464245873600300575920405079204081792500158873275616407212765919494335035352843662117386496591677506622647611970610669294033184662759747378152465901011935764951252543056431456924479261892950935443251715101995292991705944597169950545288804822708457742843652045378579990728526755685504765371899194650254648171711481447866548134948230435288476565720663787712235848001695327783288591490107418886420898137317205894038411622712014189439055951795366521099431559756038971543464340923701586050000168609866559261962655967657257094023438476958044372527503692525832426465778050975375976410504779217693139349824238684752985093834107665885679167613111537438146620557289047971208393502988790120375136461294476099364764259022800614807730286886608463235278292625840195287587062717004212654209416527534723659542746104780451204096712989994609685601671125709474113336833034399661533769190141421315173168628003442915419224269961653698608471055161734781679025182452700307636741278505945742235162735836675334290443883154551393688728390384727400152300912613160562403722730657424175900353701061141260602006869274639559034097493960656293860692686968833847493104318549494882711392695880297187934250487503946910800900452867754794462338351942153142343712674002608994269892432901298083044011799189276013436292408957227986886326678404604067641435141726250240594673283494826193530034762321473389899993011986227310505710635713356265935550812740275421811503003604781034206431270547517013231930742536170561580787209558261600762418601265912463811365718522853546569523792797882054033490283440918415375725945059851897693239896227208459674388734001969141994982389174039386117180044780671988724951843763637395657477311244267084478451996022437729991641078669506170233588423457744855265814160339070749246638186252975598229495922983341057348402080745949537453253480317549021553320216726667880011236602560916964457768132050572161477491795602753816453336976321474515349388095222017240429774990919684304551833188854268607791063100521707431608675348795216657086504462699191377705939537894393160967923687437376437420194425269907549210319218348024176464840260588125601690409878300466241109707154998342987482894316426576754605848666178678008132537841671493832132907357541887427863915237893737007287388047768621240829166388842708540439537428689452705574219879903289749593103282120351398401205779809004478984104581373882266776845235603799777461726663617891422381578164847935311645287948640727980249064230837020649704656523391219066287263120735120381569800912916475085637263602973875323044256965553909475035896387527794445918328700999817101854154768062602143791213950592722254058127312752036107717340239631474889632259891962398368894465144982315327095941318654304447227686168536591788521026286659340627657832783220928841021230136445113357029730999219555155955501617025945843469144773295022437798120340140874606874206379044105686734548424355474550347514108333911408954037920656238240990489005837010307457615142608329020537236050535730561696256678200437397823391646888083475786244277295688976315389299775654921811668127061269848914859290125171152201610176206013166228670841304226704975366845387614066991706244918849517259091178095037997134229758742351421448980560609181774101070544996716400662073263506639191274815853296056373010006578749991718893963109826746067111233408856124473578443420046714298430299778943106547030742947864025990738131397700621619272144914754024520522845334795870265230206861552224017381076271496035556778767696162084202462179003966215159220088350678316711822239816619713720580758970005781572659971261412686784252173579049739473345422277117975926038398324760669008922045658376101224662115459644334685000219211055109334349115512985233062359268075857984660225104827284202358191695180550400048961171963521910354612336134774566736968134905185321198764767410741242848216918907868825823145253141636000644392518289677381748209989025379031590345086981577126404670948143914160404957216506795777985843668925419745465392991656228565603081126326131653116991710538849942001318642889548204607859255255799278440041587835036101142366800103811653081568724472618679621214378808616124793323746846258192607499080304296584944255569239926682798777240323552622736929354629563442438748229423419717154121881664095888986249923829690470939600172775913246910410307633477685526275697015097284030804747628425900554743654152386150337085638481365309816937391370139235522745398448654816699023533729620338149333335510003312486796743684410807483342256251791116601185054273224394473509109955396403841424135397165907884349318483901267701810674868966735600139614450917407917156851520646706691438433494052804610590029024116315942307302458281936891385974031085964029815040220379916765922565166192097882377124896949917766363440328686244456525956525142256180597622572013265274120568497800044329489765280751693902811038598155851175212193472094260244953614755634104700354400108410938233979387747155677247321400740413712050156810808119590278504268665240836621856717034752829715198552634220848450800951703642973126993653756937023134814938422534031535765659857342278439069531710035151129262047453831894928701165415768112010045586068162460692424125210625789997256839354647472974518603686575282616969050269377995284827647191198779915995970823715110873412714540705354423659643742332338964605714938869016973646000704868641103326572393437325633263228727114532062545938812896162992576504544052831581947080821834984739470578447080209188190794821018726518824792070476569575028769213670078536230915046111199368896966109504746827039710660214696689966986009276745869227587198126330915688960634803497428669744360008203727371856740523628696846411778864414403536427108610431996226215935903006771873809392832256107314850580422403366020876950347937883395756082429886949844768358255356406329326926962967058660340172435667957049347560343535156348924668528977325985108258088153420045882054564505596595049174971090033092313000510127195133918444095454125460586290348349319388665016359604092026744427228070184914616443281656199190589606647235853352620333005444116162850288149963919211190926585991987151236805379824017855449539743738924767466391459784364054140038065034820379268641913882676783845944851325857193969036048853638805667884101676248273322976046702137600634278112864343325526275466851807033626124277616317340195426886805732688223027135096420785876330287072890746390943483408191366655447377691188825687582892409431758893830421416717373714235126445664806472385728626418308853720269863652436700378333944864709664970279163745921667878455759158937231765933658869578635635853243792139382641324441594100961874039489349077788615512611316684450370910709931023075819079920467514810533390937472521327877658203455507405898077295062344283439759936476412535885706515706176542507955178962181918659288370372694264225800491818016189341374961781156415631226182176949251137255367475388879617393552604247321968864943663816081087771531893982339477432226286228741131914506079200780759283893863542930999394233589429725466304114468697844148888275554234756669033150977320813243519903043313555306078097504959578155197650442057785610379506961616525823391118497107592051384630811153830776543672602142555896275198258292147875025003113709525050190130089321966210549209981320282602354505196869123754827181429802450831535884793720463397017985508727095002931033969388676344395611419512402730543968765186141168100721045249033942980672519507753276844775743755886432601055568755786578642858053530291431550268110200769030322554584426368468278193436526690554075279054326969731890647740223884204577371430094685912710281535704879545828698276851294534565975202697868109036001518233126930323287739090364003225856331773323871418564147471216665000616184349548870956075420149445745322711470382923876551780690583778397229780692690669223787957328804916833529604275472224451619107250902738853815191683549954601930878680650085056016208835895132292174403823542101943970962156034330860671499874054071727144335607325152979242203580287688700406342977182231160085990296132082948608802376220957208897123869503757188112708299132493092320449947740303456426475092825881246342734374410985693169659796770526100687391803129576770620999168630409215639430763060049450101913143988408900180185093948855589887588059321895275001505357351823673615709854269379306723294682701500361022520535603952967767067062087805310574751197885878417611388187590879956277334323546496714668268965106786155488867075134754052424954061350927056544965576050775008519489489732156817025966669858386963738494535982635195855654291780749285868795383144635945338443369951164859342835828454716158354037748090553730989031759597329651919639041759497213931739423977161757605646569422551236584169332249149178555937172336293210895495849227546159968013469460863599618862770030778480187766030528093935080666079603399595680077046558327349809298716267623379492282456373265025892180263451264908641801394725746735287585650327539820112971579960018983625006294417993454026048182228907512377244542133460319961754199283113348067274377233609302950046329453331073210031156603807818004011706908140137018604904670528387005232242301659292695512652232257506925209223988152049745884821219985329225467425513407191479029166520211711080297769804117750579138317563069094003530907131178518303271085182017079349208287152217047733624158695461099723686466127122269783269343246229781627778926297273599913054855068439401062480878895607299136803294427494598062986625809009106745532306392898621731966460979281415985206907287889903745254015772595863777066742288571635567459379101496427122190289648588402188300542379808982549574922426921785093543056179079822581118903590192859015991537070559999418614730469070730179555139033017810903360378594594565249813608929058744706544426598975779720558130927206112911129317545221610372629092219300158499145313768837042459109008903089881426701551966758455452339381388520746639769623956840198605323691075967055261348084887448857423846039743110186347000523621436401048134846567043920852958257291490580073058003674799641013068420336618500617924189954632896293464851467200728061846502393550490078438897603473964636541767633719622734869500405821701807167343730384734887079424614723820769706136610650347344974961973486371770006362534473457302562933560063274759238116603395181431964118813450417636944551780898745348225460121145158548326793337006556423269106590740697386874109252245912211285672144023322321700240870993020900063276808162905075042993005156961101185367271485223908620995118492593324269090010017577781892417356527941304964444291400450993190972703423912464774031463930162617218017783916838663253686020280711838328603973518545743184538339528281179018552167979755835839269711497132733334685176153578577358963855329697960686455276443579284215336662544672743379450333114119303959088173682956949626623290540144958198002839208284345723504816322866209115732251636335400328046476013637227075756011042290704404053675967361257712005766401672001148258004080963605743947341819861585399644309025586358665000108958055494243475517403018613887747296131989529689595614087868328613135953899790916887480838287329084124835815404701214466795727730593901195031285183253917926560439516260393438229053568049433821458135960602469182418453482179437988399411942296101540445592422440381684602314097761829489018780441794558563174630946463071685728694629534492529410494046892828234769151358456370996166523219366694274931811256665477587481833195270503098767688006558320991078303748994180946833219765316266829598667402669501436067685306015560033301333396463647844464445787073162870741507480323523180772292539397110940056240866955020225891544333404507572761460222013886091320344627019892712361125483460651270173240516883906436026771999958930302628766636312073829378552753438064956808632205232976633713824439966566160847991658807221123677831994778323145611488728815268436028978241266245130084282986037330300865566592335463144845105384012823432048299692758709163983327265550303761559539970217822435770203287615721693435865603756355090387528899870129991535240089853076847467124510843235750290321439991581761007250713320436468726825003574564088920062529451831743419763822510724992709879838019071142056472345856545496127360639564972721982511461511384067135269274694503178740325109129422411463663490031510786691578849528333549329362240640526371362477117772892263256520759338641303117927119221188223473417458894721546157650435242217371626535711233864725208381779046381911155895986527026607090941514514951095370800686410283150501071056553483517509270084622576348781267165807935198772295127480657475876746035255086613534060601886712428766120876401486610883617173599128543858970333919576054448326657729643533894599792860072999652212448051865741742050842637280809450297078600299340969709915150537858456476389972463926341717528874229370113383699613667420938937771372822271439921378869545831599582708931675288536588510498809417983922345071843814387175825605899740694643993102694786110709653460688413568028291157873356085012906030360946881021138574903054247535501172682746617111817313544646072568699133701683477779996313873926064425914423006912485287967826323983845256894384229836951510319208174503034474675274912023996018196169127295577426929162746301533139279980592801551984233687526832710643296210406868569998293312850829759747169628899302090240517997408308783178035964298532390834039890729836169054237630580965127817303035133990546046806685332489663836655337844129981082484170666040881333513759567413694012170664537250845679852960317260542633955319926084218117665149010899279808391243477297367117193599606850579274926889702051412214833905675903535100186978888455279189935291299090983150158800289932816230909533568542552948541112599034535087532369012927664665623218439574269418002293552782274645455461429648798929605969711242909878518480927702828643587548309462152920056697507450215479228682742336759777258802545614597794879017669237202979345421032835423750349649014498466384479111683445752817014072067347233922538203930256331185589658990298329797167595854220198407729036717997735188275281236840520416744133096185606282884648486220297626647171052460234610356074254176604214228619922016334592015085885562536064634575218235192471413845311910601476724209274788523094194049413523535703705496297214634112583201734687424515973420941508780213746860959203260779713787575214225246114980925480476887836461621285282054810414140978275518030212107659027469198506294047213587577340570778956950451170616151607092820906117559719741210054424099552355428790162525183746287818900408932474670787882185233260568639679703993702743233697355183043703322596037396234049414542305114472044136442576107990409091535867894000211089209355046765615469160169158094919795159032499975496978822165717777401914100784413438999888557939088390778602427859452917604779758392094459555802970485988082454792080015269538353154491833368632698437166444771679458408738572838213905023552561495660946964857613784899169796490045876098523989139327755481398907945715023426560704109911347464538762993945385557751389212272157524669122103862258262894629020122872315235894096442944659873021047342110114438928837316929852659225108851795237190636265924414878067551393388060201379745696657430854539255582856807734090080301654900995286161554919712851276223407628502759800983261442068644445887648644648825820872679361333051506634621282083025060578540340706685926406606864720361976479997206177763710671853991123922604901837205507780844299279561794832722135496740083231829290875309416913552619658001295765055767883387317844605497867990738868096143930834869785019598274644977398189388069785841723454288646315971196522641907312948830943420858829003908636523252964571383535478577473570653994156723161244363350741322708313177435272266649700143719239700917072307423245070569442300730255022300894951817807457181014798728914708409803640746434291824581150658780679789112379567150317609167667219478081343555755539434992174348869155510454138495196268487848631908308605198929981288375296084985044626835918186138149835505795569479095250902047769641811287352584813489605548899076145908130420224703419549445930822331042515566659610866329098371824187877663351277881721973700145824106736677069572517044486375085776974227975154905318438342089849786517596637856268609865071016306651488808745280510993447357430041185484573071859781870371999188322607638025491872256856340834770412791219560560841979072655017831490099870652280268468841948032860965368298582283725380714009068594733607262336453315764521665192285294516071071909958457251460178093804871408187099029241013446730066525235278519343431847982996500842262930563863723780627533539246784555208693661329419362433565499798456842492666581377578520740455924326079482848692433941216498265626939251101845079297417401953133483202580797952896990680858981960781590989934832115220082555817798810003784171358819007653930984898253012952680870585239018464465461157459135273247795439489764745798063428750437440165807832547784791165589028103750671950925337418390249123617511185708945428077374089518326904518803179539942017221353040885037127947102597361503746409296441038879379300089407678236943934986741468815301376961958630236648984539644012543335220378853067095779865864616519787150662131672287145774699839971145434954371583210549554421010588581964184717823931172222990070325624672915859905513772362807961683547180178055812850035249918215746714960628162854185278055563957560822575870956530937133092063834596795080118870128150820262779435635429483228143596937547505591767897343744643334617182293806676041766786809761371699770662585930516635059678114688295659843813000320773797176334692235180868551258195334708344130701939958751651631431323048841058238438334651679857756946278330502856845578970229794582616766005185964388831646052512855208579318932503975358552220123606276216721894874363111461565306197342182362167171908044981315499159391564466069620246142980491500869763470235826262846491736487689720748886730220193256607292904585397675163852270549860543117393997356942275531096512778547578279924164346333325695737309231389094424208166433986516569582965103767139517411844614543292315754857183398770678547264991355489361858781811673270935314204035685437691542770360273456334414678022117712433550307882951805189522829832978414687981031375108794653602562208288070601842706955524855287921306794632019700393146951658003063710101020951005342913202569541069803796174927573653648021496698720866928337810412220419965035381537996343189331284819729241726110656351025488625152048375441325864609421900921212323886008409809563019005255400160069169046392474750423936430164142558149960643787610246610263494982165066137460457234011262828402066026507816652052888479735554045819123583396548761737462207714700501021003851144070112064990757358949982066295284273353852874175791222123331170498064960388188926594581274747157566516122469887661804133897015099806618236774978010466012079118828828987418376172350065223034107255675382747828027703408958727057811565866193182299200933690041581470573767253849589657068634806431385581860447814061437385083798903953384221888757839347087132029348502778576328038090266728738526701325024253365669883255540223317419128745351279695847335439930230044196845064326207036417210021639122624731923191407950927788565978915828440153376857101245010562252424425376960732451629815023245582516865836380911335618599933945956578806553407399221128934642462244443052332437012742224641406624128492428764103654668148261702343199478179139135513835085766146376789221210249568084721363554276058955388592189719821061052735305514329779308264275411193266073912388090741549317422262481803311213567999175288089431152769652175669702871637653374181418432382212881803074380382639568021098288122187552166539508582627941310809125270566785335038660494282402792569166116991708200409789268579200725222520221091280611367094896069000261346767977148856341595226438700516314877591235194077723507685824215541414354690196525481808889383351951588181117114648030863550863865276779321143121232408011644795390433078575503315209946741862290142510874211630916550234678679394953378731202967339951881995252985349181747743274668679644536712038742974517474931517829970088653259300009345549140594277368676932145022002171551242229794762521417854911495548910555986657814867950389884911089562481878436857557021863327111649606812861752686023778833588951526424444242436680865451993659297075550277131212304557549057394901212629601186468732901733726795403988427416984893961753012926461671336765708100386143970829595092128991068807633119626093958869353473199064160639056020778675096584083681499145848606432559095286136013649900223590024427063688818562550144505165434495287171060705454463142514193678811552424056433194223944989272099583277438307004169176774842968116639613888774320734832088308553660949359232576161389729255173040157760590223229050073874417045965659687241754921215511786944816233384530751663896440797699455865760464160000484421221085551589935334388308543019073110036595527528859799471190773089162797623668518827607078434289669116983232176423994936070212663503306702888508688998917177413830921756202889499288278100863912552612895509421667417492653831789168004075754137256080846070160628109829249707528077205432881840948319378209785449996054459681772626319545197102682060532737061799811292594439763063271298281671785430053582826898358016382236352140650093260998734331198192041482706294792702100037209089335372385126058700270107283217249148408306431382699917204725000011954275126480916351288175832168625656855203460538881726738017962063220019514269465474201303304175645831600502797245587456023235624140058560716198080051492607347964397014070039204692568151026232016537069906548955250083391969211929366221982335892075027948114413652189114956445809837128811030108669282338468858722760127455636945589894469039999094042669213018037328579530446391389907741329805363477615343900260090601709895757785981882541696101836558132646095663445179393164959834455609236648505675291036500063536488074916178793237491190101253345127755761437808257940900553305429079618944509390217123613888013533185277540694730406970146699771387708705343759483732985675481108664957703136525430130146062112508534017631188940385225496404869806466127164421712936193838926190520795096122645919954073507001789758625229794498298413761748984417214713995158562178247484873470170807988592455162469211320785353681134538424459583788442196986612646976645649054130878180770439093313336016040479091225863597395187401364929301512707206221764506882586843133185770085102437765224285488867132638584625118576129098889266154364399749782898748280815600784997138730160559846841595689304536818367574507182682582605610578663024823129114106991428733805130795305518677212495078482042418506324975751690308312827820803596641771702644103628867495275293215815233433906285799598582243293398448500182881684334801606400966557191512481947189294945567986687782226735979559519362615202460207535243232396911738955772130439434968928754520667472870544416851324727200742445707239777302068427475989648350611177887349486972411847012693787663918702581262005604655724468961295057033128900021961512568777695110067513452132452648289165174989959429835223912052215716988100316429954654740311548090922993227192878695241002039500474139266066902371887224690478136911550676648797034489258764676596037279392745003396741309446093232123406656383813445130001204552061416552411916546408809170930442036320856572864978712901857948705049069374693403748775722989865828991334709550282720451872138437316482679192154854976009141205929233659996723205708906716210097585404731181363341782623665331181818619223723291610441715857335809275506868878127229025220555145632771168902946846164451606897030244557458212350588523120787914056646928155337518580247012422398358951793073269638732945430366367715079861358998664664020542252247074679217171075671426311967127623770177596716854813942504874028936638723071913813789783994154588321629902213712147882091864933336490636338991035639245776132705380382544459652202505514914581745628655674875494548657187248755915532765538985829731414338761022893030104385411971985988960261171607049662760852769163716993537245887771908594762518278204783854629997741043803138655262157540102203760884355689423358716409879166271323677233536655606797680148257078489118018337087165119484284658224980360290810422309589486933101437361536722352726858157184567385996447672209052962843177937841449650812111628442647209795976514018336947189391163393561075780357270123127303557609950949188686267449937830038325406654582551974189831775064124159627515255537611812162669407483120071155489791025208964666494664491227120583624843205934398267294063406225626914785798029579860086908376225581260241302877254704302809439748552460022148398181815783836974834088335992251025837466555511847652481844935676369788279878176713011664917981898656020155935954372132048736641105678120966636223424644163229417403987345929126046920525112067655667587634890904622458017244978475554532255783027977374265889492345286574879043983919395961911700033351956627732671628021900154711250496972440363497269622914208649446540541373345858863344530642365317416054939324848970304533542908841632637408178998658777155359829723114579276215909235525381495531361365673915221906048498734292954349453429433761821857824042371804852097384155821739850221236444739425076732993272701522984796960735879297522230095565548819263414353519165859620491015278661638594226301722765526950182558811801042193374606058780942675597792544942712436274915161612763702362478568091508489880487404303249144657498926700835643320750954260866599144601524809139232561895784361114181897361426833251803429454918729067621048982463963873437485360667066241759233321375286001351446079384290106609557317934598314577588568663528865606643167848328465643373567142855137974989626740785566354422683106935428578391954045853848482986048120449343090592240116630050804326615670681385811872112826284280624084228691298189926362701964148484195969001785540673573831909831009056643626210090957085300522097785898134919454986324312326643083261200813094790362874989209154128191300067937466502543683345335773136001707753651290447761828076331398840701509871531497526059424165898001392663169453895158644508520898254981274976084028416332430373055634210581677214467841602725561186053321322412944066834889267655533116139877959948451180852921957795225561064600327606037230795586569194051971879192095239677141075530378832542195033701854400786060447414170951768013721677975976761702560235852991610574037787434354544067068365291693570331632414935185592280345756803533789388349785158178537529829871480969230823112372883741579013657484326234542603185000140289350158672577737154137038137031426594956134377556851881369077560738838628824429976980460141623089933556989429910043482316190140150534289633206774900205746651210191630464337133615046710174214596541546406764601279515202681637653824859741052744046895211654373409759521536429781282880215553948892156241144745757137718104507275721266526474553229799138990862306817594879604958137440699973743667625170723626942915625711572862107297425380470115001371355981182379178397489458709696135107410445655890644636500272945034428133853116092419998196502394802139678180791986551041803768900207450836754826508939614043433485711594283161762597000330892913999883496258689557415640827776168233991091773068412340050540269973109509284624842124521038445456124975560512730240249472707565274183240042329850096379579187354157138969631569792660116171785947624955368434998541486687879881500859313327265911281672100394175462251593953914950367934129754896588780031699515880372988488760370175969950693364412490645775540021230869527475464927353285232767781922724759493880047489375144651452377120765745695674824559197857266554101710676416204117394320364203340950592032175338608620426411182073761088171079942469336835977046072468168474798984441267436958246864423239494028209961264921691834835159065807886474758878778742000302873720144205084036294204846137513796046863204744098014070631087566172778322059367121703692681437969082749440480144869529340749406418390891463074502489121436844770680012548794568364410964475608376980627092757401355116103361689875568045972954474822657742077210632386919795536794043235940901222278206153707413325562154849296661996850552904291702498184672823695568437381672239475340005501448260447590036934374282238249715899778833063286457400882926311475098161078334187588126541302619921174821431265736375569689361604166610930471173031073992315216712168037604648977593438905147678310792689657538751468508895339336483635235383273977722930419756266160331723184317483315075514607650419868593454456862511719384634423077144141656326048050299545751322626495471248617986890765565676339684630909407440549232123684076800322373839387602013438429451205706405146066478799123737690986654057606268521915320975567228850408514335493448705416120771559052145938505433383764404412907333962932321676413034756417827744125842352343327050150320914739449820490034411553864160992747265363218589207341459020718972796755927560916781516951972022747328150816351728047601756910968635470762467990378523676063238524923769347138016853903899992558635102646662090970376840030794848401339816965823575924597380275210391267188452644223356634693219359273763723994869046221571888084268992989568263728759501045680900489050741107558733255176129784328124006362048469157199624838706657712367900647939115839309357158947699802200188875546736450386591334348961780300846157856402913617779154725134455783896879381525693417401116280293484343623442192015088233870222172977704812977802788905783558789236406308276303087406908970581852416068184222700208798538587147950939250459052796470527708870544750312960338410039151573795237963371301504029404922676797948453459463063949197209842849236979933204692635566472811089066275958458015394756224286184467683546806424112121385083676498456050521665927241486783360807416702075483047863271903422658497170102032747290665883393727330025847499368985473154782663949975432981127599436123187888154463247698722363987824654898899567316016067240674458033740054577509150549797504712449343972402961412535078102435445921524608606614847003224728761951802660347976721965893613357087423787523153173372204282229241406186804901034095681502584363960517165548264617900529446125807806147572879281420175909392595295890871906876975903611116987378825581021172400622694795381630132222272124586619564849527784094316087679512886320822589305623091733919304051279116928443752916757921710286404382843566579018086544751435496904213870306534102836162193879560049254748408146800389540119803184743381259371886389663786438417828840404448589721617915675423609351712308966042446534380269783950242929695636077803833815447858774986688439567610346608245644936724376469534425645689299940220893461254982491714582054443850679668505053875203533235780746380417380743502134958923161671629558151495190462242768407360415852875425745946897763110054584415697118491097848501672673704813921187551266289335868643831856717972465556079515149760795719957635958960444395344252785723216391952588722599319721153620972001897374949814938717190148654625393304720632465232122712602114754085985625236123580418240833196548800878079602325057672269325849820899523644369087773987827133696205565932966463635055713303312812412322403777343574662810854240377879521592830716906796283933803064256160382020591126418863119677141298114814536534141339988805782573771929206863142740205050126354795949079737140046663437297875026742393118205199879694181952999059790190449440737163279673569275258472611445956780905565073356545468175078065265490178618834143756396744960648102783574244702603255941382076272718411938810673070613515053357949456358066197479282878230584024449532159160038716385702400997798544587033820973029964115951493183101624680777706316981470050786597194121154138950251363782725308145799866236257417891444575607933752577677158732182032774542039370477207773775320957322229651731933528055327927363947763152817028315576192068909569550940204790325484507098094008644570772760241188637464846469197825938614428865234121167487497318936220490338518837810012231205645815508200620260829037833712547227007547002215961656779246131873217604190703812926211027704669749304345174307492183477679141035968527765688448954764112175973097397570906628469548249816640560804425619511892408442568186419711635130320870932047449063355049098544050080249020977325009413582864590248002510565690768270463339800485657019371176645057041410413292228922952098327927991089671738404271005110350582864016450078450214977634531887567768561792065426451030756234568509433483660310830498067122172085428582604125465599919481664696755894993152737900248003401873171740021064880048958297692416655210552953574747590197787809158940569073281375566281255750671843083159019213939599903690591375904355763201194218751325566810659487299614978318509197065226248723554251631956553875254743523213470417989423211544320115530165593188124178850726088325372036498115691391752015944567906792454122954995548975866311252628476784478785841704103457854078999091586582339176102094107850547809106176699097572412656164397169721117023963251102636127715095251901414906186420802061621124895683545259029544351176765168209275547232538621002175752291592641559265858516907190790814859589622231761697050463857841132123964032702138702867415375467177704928160775764490894430022825063957218062732087721595713910382131110319085963967875519009637688031609720566256380699827196523550239781386208935434293023211596847201152700804072991965899303445010535044419319145081292667056570628285655712893413716191645753332582608033346443393771264688931943183416611512450268171075538735272388860460755726936420694107867035638703244944438383946917782577871935210035835796122388016893161517061623267597703805943962115685252534035769648714993789665341542319818305922450324531947148566042546659437382875045120666127143401614444081952253415148640187462545258284013111118070549619228529730333126071824683240777723135217751963024291237653798869162074768397976522289672657651113994814494653822733322988080223501166590684011918947279581867525566170900828414793711927835124919344416529926688805718044495379656705348421564267710248992257589947033194127106999382689794493677751856374757531667656523694724259382146873756742882864346053607427026979715797215582028351017031156031060350720149760746869197469680419667738719583091861512697197299315853894207076734746126697322689688916581742573624321453418265581777027226932605379941389703156553532287818867584123840658208822405221565854819287780526531711977891345757999900363515023497987919636027206188049969338183112240473808260298305849074078703873265131863660192173672675978739412316537281275380808780087995009856269041765067747269367768390628109592644505252042221579207299790026102825721440645953449149266982614802146200764071771358120593450933017058542023996660091893257357295011567434542602706928456284565508656138616239782517342428326122263765682022947717375111341616159052154796836679165408514467234008469494979200927516606541112075934475540761624194571967026945914752079228182638132664010771531794652088688854986936149688339451695196276289881133961342374557735678756229054264987701725639720559408635677804617247817489285945551227781500849880633902900199527384918683257400664712129662765531887079445296346621404528848953569442549737103573515270096334815203314692673419033872306466932066977874523325879511774740590605955330297679451511504913934861626907037123214034532583307338211706657513627207950569185696225140551439752747897061703579244978000036228943658688212047095191423484489862492404170095331969011527089848052287203705393286357861279023231186207486873552563736586251537005577537084249039947617809678004163249183537860886253795468059597739565438944543253715206835922510460018043532154868079520428023272594690942982938621016174067692503576939143482275516636712778869837696813717618810797021705866656710338348456040117541351283445737700745756475460171957229583369260502127427611340182526450634842752413561920231973747439593109689530119945671775370685138216528137473870710657400245790790937262844359547493191197567820711150409456039617530159743105168246828734499754260453012734630593082431872349373362215388133180349701825405543767882728896953260753922991907097831817009209946409726592434438866482755655178752279595890481605603275999592426294330311154588906619133693618047834245756415788098542106554446762898771354550768338826710926904228088875064254147427521663860679410901753662614700781617890590449082491663682473707675625353631964016300234134491616541665944763990241819007459205002558134241968548017224075203338629336842831572063432461344529230900639986430599163413943512078756226507059495235146780232873519480409219941766650253304255050248254491013450357257949667879020486031214147662894682012773973003711048527079472745340291143208666107682287413064226052555779539619231340112389024612907424466978222286289103379139889462338778987942561956204123627892068411389345552016108247749935117419296146600659206668674998930013167687512438894532286375330473644244534731578166485334837890573132643227143281429719712263817147762237481642420494687013501098813258675158292913296704574404223235204434504965105533852722856047825533146470088705601898736733756217506670446009101348504914344528928697188454707718451517699260312793833419517728942297580341172157437939854496122323126359013635514815070924591763153638354477124244023500139952100539834596654334981540358251067174593538762698455993858707894951347770119955313747973935630085497203420025814303526983445973964282131737021626204462322270191287902605017075362224670262634667825333850486685732044167872644805212534533217274163508530261150061347148031741823126281804644247457007681568508784979343030033354632391635119179849142693158451615481928127371453186256261145982164200841011908362800785272285252908991157937589145769195375575925619964795991936565010830519540819173572372812569142958312849235146412511387858942468699762744337738097013430943915701148698076366329982585391806880479606407963136793512713105059399847397148468607727157056967712549494072991683383232790597916366750674154760292133251151925119787375724393693452342773941484645489054837773412983673241536249736219522240623092790300392552211974880733076750480235883189468184265930782151206036906816389968664062950243258680374541965758150797468246244931567353036139323997631097606560850135818751919732246503800586283948526617815264566486434637521494253739560578995285344646594578528897728617413731371690018457179596419562404023559702293016620422519702944361343638436720157574028515328868792741901829473893577729074041897260765889907031443181370583717956052198137964506969955144099302352498351939796681971396145133773597685617027929210859044329437838828018636827934960507356051399187441756046357522415015466534899640970048890882155549800566523578424227060254628951661032518017965406614980633191885658511909612775874718804613394537577645517722871208930832186333810093436141028472685322920765699959570742795381345652085472107971017335278862350859658402569518226045081218284345206813447683515779514858143979613038850303333979307352796361597340949623904664595998365210640104722780725330906217426634987211126490027179034085866634340556919056691605785995185714637834384311101780136161392770981886799232101223585419911530076818867810640647148026560466335015575529773374915882173124800117330246456362389178585630718339467271796409186735301681298820925515789168550894962068168178778037156278667534705154970584424135240361375731055308753021603682907049589197277891988188672292789765927522392779605168998186353507395244538245090800266507940512881308987440872675003410100544088125221077091030283951184737895203314432597930947546540182644660672106596498083853578863250553248485481396628894302513910876046898465640078791177183470062960129678362515143808583539273712513413244499893104890621434415426160257793333056558992191276419984488672425608449779352418794148658228765991339426601155596883976860570298044702783941645108131581012195155105672435305068019645697670344761609274208757346573458381402733177595587628522966947044528570935048007892452191406828972966214724334199862172881086794285934840151615026985342683024162020325429285812368364991066282101799877548733523635889427547483238418225701142438360006763882116315741270827614203966835005406520123390363641229741015793136902398724797764151032533518285834097656320627657231009195881901204771211031350054791754805645585648451123946898229197568204204778453355798617086969014294423636722532025763812724551875632113928441070853361534380655498800675936717906434233140389849356202795979143713946234100074629079164151121351415820797920365713020825377374626883536482977649899392769716875017386884526223016058543772944560432828694732623937851672423682628657734503276520921471580525855028334516207659624942388011085213826934874462539366926320030530077795064916117758351529835387177166377013275491758452319059232994482143890690571660806963955359293267829089794401866781642722040536748020433151420612886224646990350026743480920695396190235742602697387885121971187424438582730147404599813136674842602699328323919027104154721213671587324565921893211324464555190864819032254254211523803229004622901105136913433161703633217576805932358102511435405800839740051552308730567468743974527324330690797018054612043381605222240657830251869825439769652544730139044546377974784204697774302832064189571052344612886008824993750795007769954529438026917373451793929122673279391792491601946542851953057410108024955321913343242200918129481407517269894131623299766557924670495174628515462417229539758248845976322428570768616429829974470028725128649761496146670934259309851806484092129257594021992232883367033692647068038768435920874099577269307566849332173420655119286004341448110822350712237431119182987208699474850529677909256181621188198705779852392664596242648916272743422824893427317787802952815346801552397328690173045361670576422467019925270774078976096485491647479027450306853804504576369366251280289238272711586747631016176363498544392380593624783836730684055185917560828901715870370182031449044948267565119075982358699445766582850206159266712331505996849681350775413927912494546120580447485263573193039604227046810198988511771472784360530663439966809038762633030629770133278506532298852301549776076156418489883602520450526037194212046792067330037629717438623338408730230688684985746248663376860009669748345014118480514242016010843124345720154896499670673971286372514864750013924303683747545835815274625830175171663365098148757335726310566875930247626542732680816317297653829228196184077848131249657413394331604625461586265739562610215771002827076210205632731739215213769535583025918339511799454237649775928867531827938971198801406057758412899012148040852085976465809164667479683709980433775631296014273768204647186345117756824525776207376077960137737507229076383770608806180068265417369482956860521287869037472641017224961057013622513254983531690813758329044138362839774179319971253289426559959180964350540047428122021762110141982253699041201390357161316029108532018778082672414243390115336221212313578402670718867156948993447689428166152588861333438507957304325799404649621081669834007672329838208373524975830764444214848683569293369177834296684114135907807249047898784357229457979396942889497195504211412948320009693918774682654308101528990631814682253119597788792851388740003962646583350828900930977115224120139186190346885194581724406352951804320329393403892184896578144040411747651265106523795175625966804345325818953782852790911411117307698032086396515510932369967970970491683259106221334877186846405555605873983681520586007804369679202670748533718354126960627933099439887865264627175234040332339786770592695896358506677049527314007690370202880537058666589890902977840037768098510404704915241786662214356887515606485869396281581979597430723260633068651914418558066144471957253126165312670730081710845242338297605131849690575820155828920039606494443854083285720392225228889364808201532261304641130048293093762217369020251415846191911211900546505664167031077222827561013077324348027256879881593957882716094217799268939457775126516820858555580604122006133273344086459885912637984819542713065215493977370092843058994349739018748951539200859190028012158750890396320196330956566747485638946934493546081051250025094646727961986845879342939916654607540607289682964258576598235982980950199955110569793369189225430255912613990795794735258720325192410803421584713716188570845742766480596989290120271695884380648199758942090718628126199196935285884430433787160108721272067970891456528046111209853741654993073712763275795136328119936386192688874674737748444928355509234647665204641533333105309297436053285693300028858008547917633221984764991137811999514643083622233234864277237449116157450384582358477397081145570106036490147799586756004978182381191910170253771855491980036801863867377806711230710520597993361242349800519523735094695376366796392197874948533728117706219044725611185274469725119073556945236801449514819113411059598559766601870033415457248962403860699247149534312207163888831026479788120187191147227646031603546251313231604738835752842358620029920123762778881992981982506427640621626554378947011285654087869437226922166418045062784136404480252038070941713766108723808912972057184025865104969459895072703862057405491883418025055782442446996580299629803645893053258958819765403806779639143683321078312496126857960954806504358924666384502979070561732106289928622418916427773638794263482602593871527009115410221471518942908262329210429119104077727109896967829700124624329239140415730257025168062838079815719116320448978498327593406046197645997729824698570676805214803339386591955391762731841770608647558219746569173995569624400813084186282610323389308407285855184600077624266057543869815242187536228559807762061523215473787616521210098731847906024004199556658705120113380697821133540654490080745894637210930324462083830679302875449192244016478571135625412437838619149035931743049646341247629956200940294462728954223088647589803049247600068338466609840236017267482421772777691531733843538199550962472988747444973902029019235826147615670284433147934453663977321557465054898158796631758811920443125809282288556799251229540932563122898850197085084884381744944639597205610689727727292274287533057299214873170373676257169424449458692998568406618869206321611644397704364367217189354734839654056581494602197793361193168804193158591879294746586034901301007513102361646576198490137952853696985424999075213841747877851985202716082190618666345629171609181427946498725438578846059358297603500829778077437474669318525132647199395148742670457844113453531636179303320346035627883116174622102864996112534775366777015464784413241242667952048636468221240524197434516447694017144635868994650613617759695291286783978256804512895697220095713194864788990210683739242817792935013299839982104121637609368894960398042260419019030001211666155834116673534362634951556019181640851036054232609517350244660921406944698534018875665704321105585620408908387931071386233797572540418919672204436503365116485872477238519527479936922365869503726002562531487562071571223501580094231089334777168961970557303077544198956196882836065270809397567008389150110892993408480045419546987430056756832245683880120099288122823155838517063496561509755769723320655471807856930884727967359046424057025584601641912861786198853985527321411660206949999392828049077210587628811614719639792557156085866474794896080705206452469104401831416133324476297920506885149517793673389858715217460828801121127817534157389976440849292155461412556753524238481342470586709374846387622375191210823668181549535228671758306426496504218856859876812530469117774326177578583831130863165447524014791935431572932618038544328687144791839840530157168160541332527375523783938954705292615067019198956001377158221192886991954427156826409741041361967427713220889332141886020403476268619242701790663771915771856782922911227742076322737331583487147842743868366920504565384999231578603673028134190302513320537852321971035757392227907543031880405008288170131867605800983406272259367259134078174971256832313451398430097037923981154438435833126960414817046266722849698100726940342013673692737581909626914335474433792337655902542710735223242265224056012367185851579889545836181495314872439007914865630052506541134330009997255601242127244685235225208236293966797384169506753220191521587923812325854089691810134342662387332806825142342483415958999006722276178641644690582411680137876169910665171556369536333953111595249818693933928611506516507760130889322932706872784905032914191109938498891783953122203171888760743284311023453381221594084934521533645429866293739384725499977931063836133463795780827352277299375849136573951319197639500956230891700180332396625291221843650608674568448746885499135468662827156922006665468055170324623308002559199982550269341275031619773080844136730917102251668541524084834234236898523162073787166802733482076485329584048031427011793042316633263098836049377510939240883600357778491135649570673687121450569430409486067015905229356811250154448087674771120640288255015565192053360569049023281086619822475769039708804819590657444816196575400524189822961713093897431136550440204413120235253391578395914627156169813680292272377794269099925226463656218272022023940721152030355100229724260910227381802951527477809274438045243820345104866812335845813729195025244112356161898454488274248591016562255230859846161615747447407936247710598424057344916661314739766058109078992004509146497111472528577870235766260390161779277171069535955590955659471315265589105495385088739853015657622288830055262817460724653398162378699792175973506716683514071889622371105635990498487167962301754264733902411884428313321062141172477455621853290730995139354368062069139317503411325459258748607682560559575997941398591441449050797974484711040432676233432969934528777368857233831188122993151720459080008119942386987983301338586080000404163073019409918573601167627461148663694942124700199323835253813996552659838316681388807078097783220780656773053479281722716243581705108874616835259910292736674361528330619815831650867111734154324941469569443774978328549753939121125941686634176768652905182459241649647019130254997486841866695678401640435411754350055449867130479678728474613714746954932023054008960975098035707320000075428445729670535516768730781186636026083681367812013075167007270226761094268945736924318847875176170377099243583100507533263333460652402669150448355341516763484851818277382640716067863240466525292588838721735621477950942660422695926658192968347368273024314694389301601736450240471808613896812112778518902033498431669810707665981700798777045612773044040750201041856754148524541009076067285380816538634730162145390845653387439198520848966139839422262187659877716607197233934990524576228470381213613118601284393175865029771940028104174687528734314808595129081322481215095002863155847075979263357366279900637714414936640758529726267638614609216748972036880080211759413069335838768691394834683099711739579450957900707791479705691985971671257874766783219188747237497455396492362979321595913071571326780828311996869874108115182468712136409091778954128913910142123856983345689208759200393947525372392887961668886330912509773441450157531846649465499512451800852153660043317768707256790688705904905738354012307247287470438795861993666944377416396799162115047815942670939287604950245617283644531541608430047093857993487023066858367236099132148227746959297733068779404291677044220347117167881824239245564484047026954837059877290566796492454867810518488356552542916422434418869285052289869534423190577916159290609382275984998687013510648805319780630588879572335127849148020098857775352510168087275599893639086573944344140502269064224800470519740682962018620173274614124576789494541805996056790148758958263336391657368098437618536463578852074509869988496530842893496560039369545877121492712786584254107623838579124472988818458792513290195137142768618193743119235892038018028407868954028197286666614394377614728931506275427007972350725635381354755741595077787101280715562596733708230401996475054059346122947581461541767784058040395406722852217478177367725434138249201785025675588337589711152357526506425050068196034628516212254605039934969542432293735893946512918145015097941010972960420269629791222387105429071397308558366652843935569693270734654820166485811919112088876036861176000067370669641686831735005291236842487433474859981866801745548473831804348129667668798167034899846453945048672335668682591209698793282056497429951363372767457336581331700415286267417350038796502886586795364711395771049650768339061097409274617877412585017582289192209574097369453515748113100151670401023630387870767406783575473050095340826419157776652555994148491124433903144781309775711160330569628624767541148550401022413113674630009570586219199591173401291788408735525915824589023179646059826926529224717932606560033176237194639199024997956795808603950385429002085713576930477453688723249472533815536272766923756522304400810638101127032883064825227059485387947140268609546532048333972194890829575576718503196960929568994173037869958455657485413138999086886726375547512780743852017927088916724938413901579344269591486437640957584495084927150669864264950075035398531867625543239915721983744581971827824594957789773551165611228808584905667342719979932816339901782160932494222270008618003833334059581621210086947846425594756070215610023233271125074999361175818019913793135359353175894766401019555604503309406623068215649525193172766394429724312073231800050923224261839792583785796753112566155998599345414762987415887890387529792696553378484323179019586699754267757054707721204825791973101962238814754469914362033001667454238638617677730000787925019247137518381745724919552042329061320031563165063296712750961101860363077293255101437182357196175537233549043274051905380376769393185088411093228787863059861888252282959228951683690552362656077622292688527021545129716959557452963469014702866911233877196265668115610715657720022946970986182000497380610528433934304413970112615232450711362910217467870147169574998457173167385129546467055573483713344816945427578191461271527352252047999787019323889214643177567160668911068842809660285408005598295412746317687150881054930492303881197557837636855067296317707044159824476951765833698660714532295724712255449808135791042403965207519834750939735747897526658713599346824184833813052106771417440218052700623968494409614660783617783255195896403247662622737715134255723496121184928809197878981328515304168986760922857109981338499649775211136107144637739270990227387565576075391088657578256121764640354761334958607981176221955620878233878318136475205822957675717915524359124676121110492330463610616848024637209723745630038262003727665935695517935369841808942718906802486988087572220592238466383045070786586898030592721138612514983368734959207548429550068067688663214903560181587316448790837297497826233061949337760479633467370143592867285771679745511526586217942339081080707488496773859506643875016417167841276708082676303438759745183346526150381320530445784185339486925642730173883832126287155202968835470877873964908069333264554001102365267269118746523942289816776562405939794897933863103307053785199477608746617948326038833442060911743371296736461656191488678712527993893268488353310897432860795995150889482681301324862853652137750117465916061338537399008412263925324040068541525660484630632141468114154966004103808107543683432739975454786873302307685746383255311152911042184470789798469636955994663383505352259401413749886503555022437592565437382595649384945313477174530191575516127649907139785417562015821105778322076329817583101901538320506604798336479760004313120905182831535775539350687780029771966755883510995189662792636610019973513041137195748535772948479359252564577120845945975420097663710481107869410879999826839284670385724885395944381398276308417560996434611943613453665814632013962498267832788494835739775644311740978658038785078865418364257483230822645516311456390143835388743761456373657611823909790777293101261077545864688598911952271377177484749760883843058027003648736637637190799603948390705866662749993118112044925424359772675810607801859064164161955037651888897248946690309961543519004475698881194390534771863790977165606829468169987105146938894882705768275932615470714225630999934161997030568076870717550516514725853295717483670850484441092307065642389915174380642335410805812676976584228911726091606860089895917810250699409886442883269615935626392943653783232947555905717826927334143583386576010053041022463790233074474802621409741489977349154467639384184806727892251915806725811891988504582984264199667610516700209963474004521508165531864765186277228244214570641865944150987073798882598373226678439260139740834754321167567931591769396265007757947541803494554497372432578627719778745449726654538608900468310849934874268845095533165861540728719952608577451122416806536237065831503249918986656301783001747140412436414205144025745484814325786987100237431502451335501448572461573519791298640465725783644630042804855348013202376558898837142085147292364487216342641004686532739427924564456268480690856830293897930830987299922344564605675997933345884411370977834751625768652189024907999976511199890448685771059275036874820395065611081908558930315530421671629476800528677315708610161140889205137130304549826229279139310655474555687952729868863372393063643107585621182807511459762726372729631415140037116401564499739104940641352800953264379150852367963196688622103441508767088637262032887209359852261512392153905639060021606391019624713298131285198805255377906871649692859406682527401332090925985017922983925079695858827899770986889583054743634458691687665487195855335079338930649502772560294450257429375466260758806900655057075934618971966074022222787399704246037724247223935072544617970183040290755922862919963753205717623734460455095832621743746480801766118812807359478074437900380703486191672762526031406960985032827253154194880789802733658803652666083111283718014529248586570787586039740061855772051036583307933337297650658723172491484511486359274030254817500023819136101016623051746660312642470844329756705117146878180826087487558593447840924517774692396190005835658490159844335138929793128932541076225369688419590628586922451457472020536804478354770392913081496134203140019207617214183919517422045744840709730491023613650238314685934261218958313427284030027942232715062482225418230263260156101164032541104833958824483336115027990942511096851815303463506116781999137589783582718242540360826940024787083607696133976264484071602430554030283664846873582730675745656216234384157239946777417122586722340247636328386504100135179619907928561973609824517223261176705799893904006456890090853903263481339141096661708803598729091954792318602852860278862134745069425336939461924589577244082595023605816909185169341267242596918179285071581059626324020845263208318923941811823649311065914304646123061313000312855802421679177758389592767420119674005723911599154325893747590557507956198079042157784113895875168940191327803811583900065860788614861973509683562295543519686088434478553381906317387742016335041151508205048142269150194085193508945203500047360670459263035613266460919359436582321515393182452485017434743118197956620204494737649559808743157196382838696822401614728602356091977152688527089532797877768086752986928473849647688631175661960145377896968023340862234497513576743548948805118465551929231523467544103435444664760021772033797855545026779529017067261546061649884171388856144398693758262851163012764033722021743271546492303887113055921225466238024100330438577701838148215973967578922911481817960912266195662400116364676694951520025824344676769413408833725298266277458008813562289261838207270466634512540716223357974480384531549845458929266092671127795852008528167723018738501171860902627818167490033616906151247058525299547214956992251377871393801554546778032475016426433401513284703509016719167519141808917459987337332214685240804431846639850294300780004771440480416678755549902243017612683507036644554102709688314679068145146557933590180426100531564319017179177965347154893506535537635795590298610844774807597040699155294062705369616638475724662935749397591589593424589958951308677661983906352668306303380482842628445137149949643462815009689698932854711541626791920489633919267921124403362512987196158914923046539848869910363009968943414199887470886757719488357655096928822590499291337995221059437296137719941259709485423617123509202919259707516194282378371947436115383151805619925815429904103269298165247849906649757840954795676763950589699016695185557279468562866725068065869906907835680021323149419653325460705096105932208308975064682023727990863371647909335720882121939854756223367534723841302644153319270007599225044979822739724244956058633340109307479720078209053214148865977840761777419932950809688741674555140345686887222271768090263075492357736450286966162777395529094160850727697012542465236867087598130289749937131172487134117118214721401319551930224530201028429002207697863595963863379382956280757015804212076892555608465467576996138306577782829403978824605387169534080765601646056764315769894225181189394449561660719959430367368416806654163997217590277511994242468896747061552274765885066591474376831469158872852344435247519923691526686644059663525840549860908852300936700110654891365218489221396733848746760233994377094495045857689646892112772491577252619871998164792253125961464836595605130688426001382066988133342856109918029368089227001073599337572744462320085689041610363471454720176096008587396126337640715513575995933669244962394799975129028836953697374535004637935594267055334545758084660731365216500078244998002534060409529112165874904122090617432213204238736001657262262159641239142757343920344910111181871343620793770544529122514649665248061440663544440402827859518573738852426837325638362671180948114330523579381847470665199430297075361754593726804606196277251903004264888046990858558066209185777851891435964322586931314004550272896755760714983583951653344509913887282338694084339537810511440807554860147366072089706211764943200157648869565881040873891614761867982305687892495900676296349193245257941106083070135814060421383274445551310618532591028407111014279793146720739305006671736284403132830921062737940274037073023834947722094633929199671632640629216399304801901854401383979068969413842470441644745406425376976985291255409199264639492843078537681214968653572880817719418491042018092453918202437917294249263158564571563722106800056894578795759608036599543235834680168841076945330806571656268230548894549472964098176365077974876776632008401519223624994783118816330789598177448428220662100113859061726772619294701025087078470595462313628621495361521334511234660934047978908925893007251188857664308009476652600023694831990092049619640863950101340957783371943602773685047113937021966074993985342595525978854089978067888238970042555151787148336385606573680558662462177800925891103553466841986048461645939509778116239013934221246779487409089377046502270079394100908347316163728283495133534848365045492029546746217245167326649384057714917226799966473213319756123604965484208563817843759716391280336903043858815676936358629991633557863880813440436025448000533896047362973717291016177639342456791494491575714853609016026390536213279357573706250130533724631791055005659086916628570271409713480912558044482101491361450831329665239961040837447744096415760885883187587624613966730532263105203229323808809488916274721347147013562748663752740996753541113927945334961593277274791335819683821023224635945061852183600661199106781448346809110236522746479729385381239961277340201679595510318355939875983976582111835693967340304604473230327697858856388075956007166949098986678186141395012833069460792885643473635655333268868408018742639752667737251779514488742478090265623106756683395462795999223717380667530728217272866414757224986549964697144798487254058769020795747594621848943428689394054288678783851898035895873972972591902211755586884429560875820236518584567466484782180445539390036252988128226952951038675280691234784225641630066238790161215776042106981311003283464786760620759532748270270291764318410321912725279162387980268374162698870586857615473572486671319975842335651432395567086359613290236980087093518894986840979308407255802647471715153613159288867583395452585530228309436219513650944868555636485723264430115451190875990325253737988303323172372589824215682513632732190496253379710071195220963422781755711086814424827808069597273844578971982197523918596797678456621987633182492936010614154162459344105759879981593059079259646407937619387275105131123558933207379873066053800193834218409010848634989652766094940477133137776243063140269426955712920961934485207085118269215273929550560763116093632308590855721435714274303138384644501728172836265461936241226871165996520692169952814647045906685634497488375427163486930552982061272888515670485677944803295506079186891818459897922957644783191011294275884057508064711501295050610005732085321815364042128712857737842353392081713625082975864625889513613762400886425291751621676448148867340424128057620902750049152277453141330617569587686334742243852322085287022346224730694686397203718095592019445165766523302703310142325133235598770686472175605870808474900313663374998124666810995138123267669738506490323913904378553052534290295326511467945420581586784093880622748983679187973097916291384248678005780819841060769078854070082674933372392333538581819495203684828917657598718166961364460176726823498410363534993475910587267411358373501886623413502231922069057266533192332211094975609453071980982225304776009303360627962929393601400346649946653333412024115968824591429193005245014551543741183324993607487450398103905485696078280020913382026356999615463793865420070069160059981391364352850964679202063514599529874368923372533705833173161017277216812192171090392326406848426324318470284809530365496707224703015772031097297283237672294094550649923331691284745792369298635316215587832973714337169790345587448712020906623219773568976107843193864093409783680437015145396989620269426172144211880433963231433547949161448010518035057827376629986342846654550130353561780043118234483133922286373215898167090125786392365437107431134612112032289766482965728327357770184400065134097513940377195578349063282165268273129321000255568945057577320368578381309894862691413907211703325186954587321269626087418808688177299367701375511059002440234926868929050772302514513035595392989756374135556329591789089149757636816872728589889178410620393461449286309795121542816488380387551266603075427239395684863777797806357573144731003743474298504319521982252341494766151746509162780010744571434280076854291220530068695792335106088747245317166748924982896248214209628462986133521995307371102162926223196080802682557005909633145948947526068249605957208340607552936566226912016913738405811206999835366745937798845526850436548961762948181218793443565959862513107935000078621525319246905839400708174864039734109554266364591107265481379487829953181515454735429263669890002912903733174455597282417975186375848760660822322988934802644949629520719791950425379922831630827016883652173986853627481567208043662888207082356312172270362752181948675901256821564488627516930070286922755512432627727637791436945206507934205561098995046966021771136345848626020089007805432103432417784580224725499861038113216925604128359515876025511243810713681477116475938518752164090311837583855586014202076110386926106070101499221665165702353866734096635112108214991786604719000522684187776083469403997126878908501460456250580125205948276914383992711856246224855453864715929539192431410418974733203122336709424002353850046704719998325259578067007635303838513291453628637286707664209442237528500604257258410383723749150288325061825339654861311926684457993817424563327452239121881732733859504345745647584594934474105667441959035627604956513032393338284812498501901404882946730445995997881400891817889881309623499018285305884775986181582797134667640293927803480939833113481219612779202586396016492776096127471721903528915955083397958298983607177520594219180655040754297168918713776825524452555700350890746312386759331474732488247265331818452856630563771061688161444500737339461389725369065953474559435266877269777509357202236168085444643189462463750312580034356722708315679484333761313370022521109797409163437718456029917470902766381290901780665286923470826232674202737704235786632654022025759295309346950998756961591980933528510468227208529405476257674334121498501733315471041723961644928208394747276117711171407790536272037233649992085723877681752900560470491243630605124296808997671438956153906633610637800442531663970089523819757769642672676995819824856259019493465563512466050011997131960966829455993209357006955735669680433566069517280691261309154225534764245484470128816093845279884735888459820930174634059622047093521549619851811597057171788903063343159684289305925357063455192048422786122484626803390022593043299623112755100627507426815894310810684504989747086523345470420908710212395924760939169845733231038066688183836488826317981823539672929338808451272691944848543442049408442379285389252254757316255454678402967910008660678675049559935686090914272417888885581514065967923106212215477050783444176004665106157122387929874769724312357897589280381677436995434430813541568405067960422383076628713803546447108642605554103817818724596404999890887891126964131357797129448410503837261153279332888996908353679397787678320882100877146583883576583867996250177953357706592479680958962313136934841032398408893073649925662396819840028910858298815183678676322581865480185669737702097243593707009373325941275330467019424081117918573046914485861305951196604550159042633076283756667908044980278854889554264608549246940156513373178640751293241565264126354509597737225650982179860796308886856781439940887536463018279985859813223562192871947741165902174632124336231848689969883869818953520139586727556885930071020342218042143663455604320368320489203161424326728217979081972799154944083106248758906694269811407575146424222675909765663810328645961075012844228402296077430523708484965049961871877629443860889018387588547450643952854216565408023859080072462433186755016931268627475640606417690760902176357372284342198664872229562250017692932904984885828390726156967481286588779283496593028974730332786241364118694406732877234624422371830431816174397562274583036403736410508577687928578191352680195863658259143214359818871730687130901230703378728133216829398652445617484985816052466003902584511485144178841662007884551551093268743745814241815741787435821428816029675425115032916439278546871759653099106683775129622453173491708139738811183344399295279699460039119735845620394315732365397221425078536351867482717857897072181037746876119001099688701853185718504555917841917436703801047865512430964519123615113512996622406428892044664061960836851638128829537286386161424249383448103112541546792862094829882219387524167403443409497973371909953567003077751964284569900474156932028311741822695058726613393315748804344199902605271056770588854094912838322073141176204410722944496857121523068716451861504101985625573788104807904901183111605848765891579482061592852453302856573601782203723033822820575755370836765220279996776185990939416007577078328089026938984828723041939300089988952064888129244606290322689456897767549977127168018140073804185206007742869101560069723304776951768609524367220342797976813211445838020096543479097620243651189432290191777990660348156811154550495397950434940763479498719582934162297141295877418599385567939251273699191427337453536870420595730085077557434097744286097807180497046695283024510950428942434734463471184196570289453016622870264462941877977605092900025032379344682088045385854329781671236174397147936084212832714394607548845421411871700357295205046707839792966154403417485358210125156656663561937583207237872763724578099333610351211482206419544364311029098805320204926995708998730377084340046349992480385251627909931809960987435464567748492745644414356150742953198237746935024573867109658249103090966318129024296583270462101271339273207330234461162019627205736383713048117497409285987859099120328306392101850177910623311242353355091851758626208342117112967530804619565928991333019325697782001136541129014022233657032585214382558520275191136223220653129006455084396207729144208705568863368856978872143850669559859259667798055781933603922337293547891109451753364828110143820326156429224579512213713938693249059863550562513043768264017310168497044002705585010385644734893300841902594136070974902652044854697337503156270573848855474897626921082102649394028026411944011572603787348465376948768296050437995826969833489773483349715534023259920245688936834238347023629548802400435654771559235487531450177791247244871972647197325795139817720479413907952513576703883941282576628743908931227988415713581753836594118993702313008927202755990372226851626082564874251083637917140063368213562624506287051726410846395575342250168165245890874405414853016761584791076145265949705152751538673760342954331795738966752110211401407704067287562475008764627899823886299788631687676164698099355696465869367922592728128740698647080015795028517707521645527345976966047356464380000186381437651778920084152791750853516978233633549664351814723010546063065337103038862321052833096711995275086871114103043012117625427404705316997810780446454653601911672164148333588725692856015288251173730300541091549043743224363794326869731107782238167522490768277805835942956674478405636602198749954664924533625158924453410989487602035000066137525837210348047298684674643257668853127408556251066189963441479247058439689800793008906453903689698179980896347418870727848956865859062250529483943928444060742097848253044814232158834419673103458173995335234225352353819253057373079823373959524059274406067745124507552202309057441781978810494845619906817993291854980790624043175934494121811803853084587094904644612440077905605510327119079580114395765823990841457046709888058306103726743263206075632414753382963982476443427789004434107225158027913084901890555734900798731263302678963698695843397760465504934366184587436928480221193570436713065956885632071781067037247946582878082135237533061007523577440345888408431753944998416057750819896327696946101386115251445390503887837960055104595452092011811616547576928492329342664641329855833927049201360556520100838587064638895288742792461389230926823718681323917552474784253989264825465335167512694221205154830508570190591358623965692987195504676562778289881754552487917457953771612817596947766556811825978066889878700898601804971894061983433688375187715787114889881869368396458636099979067642481535931653229484007300624914587577739991421432913209550278423866897120795785372047661676747556262456059408061008226833696639105817837250879369399327655571194433815141937918098065362135623483582139196656244520679525495933933180339943983000972246829234086859440399047857668805189726524203173989020123071701943083456373919982848125159501233421534053542099190689055458704516930101576536804344895421227298550985492053693051614495803139478679858209677494583026486896058733594047631451017322291614290617658107935403455504285983585032277786143565918188262094003269014063502204555180993371632845543081706576549880145265266202649235940494885798187329065441076534946691212349190833107753609494247028384947795857375511369221653134597862604240081126512987813042802404014296851036455186590689776683447958097864436397945550039077073763169849848047986232366044302598153344068987354096642533570198095842102089566680716473007362528806740506187325105744344486126291491481587609693091279198127802537766513604587893934359893189157421637913131502754026246137423328401360269234370138695572068143495201745376287649090389677867549744013717499330440535057652706141348600131262474693739122398551915761950186998666089746452464884936035218981758927280066150028591908031175268864953991474385988571978142570341598304066227097940777353935915188048794396220800590846631972981248524590547419568075947495907312530483809623493695714996916612057714619732448476043951419163304061428816445905344448351609683500871121101804882397435509540525314512292058374985313298629598583595674269280621384283058323484929103409555739473591346374696954141033720713304363750517376575963273258478041518602730039700390577716375885677136837613766966957117314523937098342856114850206632985939106701853062423228904401608209387178702182444148774642479864717714452696807287362138763615714284936413782778960111991015474288527477947362424528753383438667421478278384132459643848304104569109839007932322295310319873343004647035983940776666597421874058005030946076477216237679034266427121297593499073051741359332799196623775185433896100515629455593892858897802805284599057697655544808117135251831195705781345227732623079720372377715411737508629633385007594064325734999983870604365193884357389250284161610832877088023472178232360733266531875442827139271592227358927274376477643146218260738004502519930301566181199468725565401984390827332247691586682804744539008514401287330175429023864444827369565176866352811596179873249862498823990582155197299903086304502842731656956108765945054733011730405576341717652054555956033709593650297906441041978752435948302863711776301219640492170368233722788185212095460371624939299206568345581716871518380949883966761128033263031278331978804439311912367178194805403826537308951158264117098330194234339284518222618085704073327998319328203005148540687280593068892501689003179044260316227701740965291335017367977524228039741797257098177743673263400577679471672682237403761237433525816782072255237325730911340916476069194471174782480922111992779775752372556912178235277476654776150762980866188713200058528400160601374669510353877670072547737699928720999965810238086783498591039222834825978482715973219981137347259100840534458148133306842347349492416014163212133694269454465374454598815379500416638890193976813438561003986565838570366142761303202069667953439918567473970075382894007822486281880121883792961455569114932693780627054144260972796638988411253949193177176205486557744396532514151437335621147428355784338733028381015642625595791868779891903261188682673560680280806398068611658477657871150051951377685690295583570172551917852811577834925053525427408175298632601996188048202838426188954776237037051009851060168677233121872081468716238508177496380416837799123795798640989390314010290236667389533734115964307685557509901611288223808858751423542496589512858832547799763056230029694879832231825420006766664035504779411279350536855367674581538504103286790020884389431933972813908958099496575232941391261836555876939635763986096839217639306690657122254649512530756143135677357086539240540051007970183365168373933072925543362237489633007377379333291999631405307674308394072094496650694294994814997245721700463143691302529177824711668747390937507733362972833282489715405017709954900960713219552908604445085266856290385280966705133408540318081251012426901321576721848318611742505322040744153424297117248536151820601448096379699301445200338611040232406526368897622944344269504159360013920061972416561464485701502985894092257103720014945380419593506530675207168613014497789694893312137701206502009126444290247287827030865859452787383149533619083335191206439271437824036581042545052555282312858408715300108209844129735832531718475315967397514277921996279942340478750851634218204602710134543017742770868980367417383031564321398877550512067357974043998892655942722428724209245084109923192768897264867375046691460152289358851830910027853910607082721172000709963917536323777390212799958195814101444942130788852269663455814747008776515868091401904246254507387895820330889095751332718823407172856802096519614417789071136938453960386414668422843886347875502171317620881777523216228773455559089690965465372857988344959995309510485906621057636108581349340186057179773112965704474520040312099835462096701696136579308733798823038963385674603356870366767140242454701694461180752692020434291256282776378819036338310851455645467071922746453464961995838777719101148272019793681985462332210574734934244293835761090973306927275532958707195691538518212557553964018428216220175740673670311326583919034146655226226410474952825034129329181958765965295199021714001905882859759583147472228309833340639918696917825094715431803137327973457893002849994463704092482495632288164174235855160064403864755173142654043034039722019274759597833055527624046708790731410530006849807779129446031453743016210363637254734976672429236856336832320870208402474120935873097811553277517383654605341841453893954991072747841452422315092077499637644642411088111376953090726647294614450954687771984724906560747652003472529540331027873878489150561244084801192266649757393655508991644760868095909228329750457627480995365239836015017294507061457184659489162591653248023330154997231238920751829914579572786285466269955459555919108219501160201423156507287758754127544569975452463118178931946043537259870339932128473070676414695799626532272307628177551185108743744407709457014530402383077148037909694771731504444751102271627654638011209447188457617492274892766527014826599209502125052386996829847346779358433803712693086619247559403853613163802016834256123913433466768067132278005336780458672898154266445842727540114877241826199884507190160842669699822036240851471748706939026004327796982901845711324444059760427811826917492648860728417247545292886110105754608501826323009655581164570764430846280885631784223029719468218002483742905683436114854471710238164879050291032058747985625704931912307499560046701514905646337688718819205535077697749855526321961458244814065661826664287816056560150103477893876010211873894948922862184126588777154692152376943750167450257412082995094520278363247498588011855272348386175693299722644894559742712243180013721486365936139967697701245397496600749156084434678347077501249263265024835910334998076223125223691274962155035564516002694371165463604830936612506925558180036732038873545726770738314660769406921195362896430953417382144724477604562198128782697221283530219596185863207460316208934429751870221054069755595509391898336973411780646587885322888631430519419650271596072083623591084497051227916956792547709367347937694284536514931696661187551007265794682993892873311464352844444317996470188831030092112573960039386663420899874612861418244718378825159387835813013521249903483442033036679983146508852072138672587526698575364994039649925116911116338826666154622543462732993227740108519408954860293139683219240799665270091729657323645053462425789537605539135055819090883868300298898945761541696808514702947433004913046258362893653722572091183714117119849409160421758852999913912363652987397266121010961366878313650346424181774494706490726291038984476101968102226799696154158701089915029633134339984775286635703408729445650228969652186604906207256444980582216831578324139056195775592001254450571956974976733794837286363127103467645020035107640648941991333268025269456588978149303473468980753394868338313526556562904339082185049979055028454868030807930801784001863188855878710718453154922613694386803227592736087987382687379371542879976841577814211389912330979032818580278106699832260144901186914964889592784257681981340245344272231537180395309328878138900491823834579144031450788607372800355694651167152266147997963605349983158523426124995139151218655937638980556595952336216831534008639112276152841198897431130268367284487977752947171717319200061545333353378436008067313039246727844627294270002749543348028452247198085729342054454458968339145006839226559276672613691283698926241894593458407549665790468851212770180175681056832865229997923767832076241867353411856546012456097576395181751095893049285230044914152804892247378272758674137237188125129004322473648086427102950940951965568726182188892908113932261689043429313377771067410133466162043087079799791504732259481784622606559871524163055814286492401969429732434985178862991375082498263277861332667816152474582810725125040510302954302394817937559020445542453165182371300305909807570259709169685760433799229330886661657483024557819836820647170209322086667907002482551023857348630721844886045172348173613714985736904744287848539975101754696228874818417376042530640867080524783284265128818444536076327365465767403516440789892393183637574345485394932834951945868780651850658305675840916326051521582570081657576190341083985603379705129287476824035632503094109251800027972933328054152186735077767504113945717264085788204770305387759397568074535084206103641640072255145737638667040930296145810445444445694989470272005370360132780674116635164705665392384745079143715033950105180016676463727234566423044049510479458298026361812262439296134210171277936912231289656772655035202889100267522872632740672287615486544394392703607405946994172921952618657281571690502038005959038993310006378967564459943538650239955399360814123729169293368136785800060201664970120219883047553095860950741117133520567715519102631172195607988853408748682962954773651412637109016441228908865760730505169302913300683682778524004020988533012374587218258769222736736110535891590192075859304911551381286879976975111474720667824684605499040141853379240070328753821618522344244569666468470310915570981404387638523572448741524072363517226783691582970103063232647035152902235798433392779479162103517738139688569069009933903354019517822375617056311545636024219182235206738333164245606358127577232245068213304300426946997987173886369940124818661930969368109648671011201425206462218042804670587303367566576322508690963246466576459742567010668869104103722691925848737669363309026838340000681352085262392136839325957596091858202902197435848149125978179911179815687041962348617591955506262501132067489667740091963013421537040641535005392726618670905812749972077971312454945481437011096018447281727255607403631335262375069874419487696790248328265673455171222226021954467529087314404478603706256406718844883755000200551193870506581023678608912546814962345815425692799659203250606677934778497919361788477472992061141753651019621736109220525396954678891068070228825624288123379312465181333478027198370501380106616037370785253511988747044847665344158190366279763637283745158213209325039361038651356162852881010446601056953132398879632807786246305942094308019333043501439707957132118849764824439660529015328209428421968320352799703686802834879387688245297303970275752556426273581960687160993962169112242794742084872624977310650775004286553804133913034146716603876217679785963438803036586532915049677595450226997829828484960066029510527923906865259007057546695515292958581393082400320978227972675906713435852480259563172600546695910976693492168865980470526386093891704391905809133509250420091133009886864889949475787423697942551583415669192766603104438603853846294284305984573703991485264193511153371046756532193756400034179117615636119281072952800385432382724976627573563611111715988007922358634862274706027879679864623850919306189001880436207607347309433203525435378887310635431779060442489219689054621147526787551453074553080668016422806334979113655961490894153923029328702534452861235402782124588791205105859574809033501666229812641335891350804547527440868763423766766423999892563424015024002367122341941786697458026120441141130786273213141358325545034010150169716380772645248187989487923227429334001912204400601426353520949497821623405123476947279690930379959962848356151602524496118182627698632168229983804532207442884875694015881450156592384591522771536617585177956031411567674730101184407989077145783704479626219502883929365915568035986819550238434148760714583079322405743404761740667312352684955848048973373697262480852726408632673576216279055699697519739406021252720269296906345081866892255034319833384037697624031835751438885838360649162075149108590523716715139242348393529806435380618025816584153498294785649140335846486902669568873297473017309290924204903107242247330521596954676233882841349989795170475393996087340938723399728778455872508418644475303647094721288235778417240775902594193791038299138351168985685637837016131699264224238799367239849672830867946055135146093670898066249321502623564369331694195896958041553578533046483279121048396998845265198361398559987123654422964232586307374891859156146464083666289225313204393122843517561011437230517964730061562285060287127269108232438727005866023102073865365040238906050168326422092777273706285894558638418951789414711663394742773995550950657922133395432042409238034266321709251314983583455657365055400881104408481052519587245905081766463770410427161659416783223480601572827926392317926243436778487428657560323505641472851465583603854543944020295788103030594020180585003399975751561262296277525369678736804068674709351406117380269929959982629658332313287394676162443675098227897984566770421341303498812926312003597130270662979393460266378616175854009078527910482044399554833782244172572699443484721682312134605066873820889684125783231074829434557192532275705388731177293573436038473773556840574036808825251963496395121385042635834354315227796642438913316472389527599090134608381362598841535585223811073125160320227183863064516222687721198295744229123366161192593001106555204918854274019420929385705315711810015108883102643960994753337687550545735231918189340795768234017294886454540562153710441035825710454624420822459595147996092306462238255656934723753965206799291269423521101934973699491865436012283721832048609764360802487037230307093804725257811742680233599798931748284225746447059511544703553330451372089718910356064104303404410638743140275821534672142527182861679924082490149476436359067064506365205547344407175045364962602780660123557156065368064312598023275330588824387012628366542036428414612920300623658424303023869891588339455772256450986620465528583402141948675564531227111587340910159109972094194460864373999437844799965857673759253020621624412051684589551297525162117011650563808162869399438976185786920225171232005914682858069577714111317525974804292127272932168209225612811079368363333128196941374616345920857789948295659777402646460511593594229845440833333612448258626513189312321111847779102725657512366348745856785844274493284548897865882626546677396329837479406807074228458750200261225587617847294670441559547787507892765567277325714878812815883935210076585411591719520109950594985680642076795123896654003509787512835932804430544372128093138739980383267781796685661288795174445270544754552440941811831755013735390185444478961713146167744322016787053818263080834297899384700832853211189524450228446400223113187030141928969354649268177738844702645205176671430420449982194155111034924376066230552376189625260317688905832737904446402340343760550163934857175529976503899890100187969368340910203563000131143429784669199984947019830777851939150683168268853860289802851753480952190236237486675142180919332159526952201694111639269714414146748110077408315985417210036079201646274636953852582713880583755301548477360922590559576821186219860573108098763144853382022068151860468338234146512802062406921368384639884793015353678050188779490986406873730882487749400468415121856966496494090212922539635891066794014742139857261045251139503773001288406267872717472393685619707589184648388441389848898944594251206198351538388848223427978821811659348641505276681078683521587480393856926475961848924976088032067659555491709704796063094074960764218481815389715656313007214216736985416442787532576088322011849394801169909422669834993501813862485971302887908101587857787478865012093428572928474599375635447994842655432727843052840534963027960571466799058509391070589457853501592210876497569147274157464992551290419701166329465672274702097672938151265423885501351124794021842713487106050874734836962127823103880127668190928614132921866178837706594475053232636028087836671190210298866598011847834880029941613768631897184437370665254369970908429300978923526612372233107417373514232072270903181485496237224616811646070494001530429024522557886936502918631032891729477296201084408218249885122402329438677316364498425130470745613730858937604814286848588177247110380920161387782405420714600915279358063755349022525205810393477037781521075409434306087451025818587327049012602416804159653026687674572614596226096966315266738244203228356385325559314847736766223690920983571031281881174703520001590309097619577366093493165791945750492656887858954687138305100316218449975432237465647585819493715392336499311182396747372190385770596324674794516047377355985547539555353163045566074461445286055547620267716026354803669600251015924804986116484580060887342913430320816241566519270146629071683367431725341698935219909445477412502329450108853297789156357636933512680766192517611147001917797119768111511694106270749784502037768992728962564912662690780145253651464978291781974334231539167625202430042739826020097944988240154163406881983550737785405596469406570212946778848325382818064323366283986478191641285285163571791734656106496607792161698789547946319323905829417732507561496987920517562133012567468519189846489091619636265744002767411456849941781158075331240682760926283496017186606513396079943086657100026249079297535871305210127114327938717471427239911777271419457603918618859276359419542224615485900371787796816230694117734506662728246442495305829129761383463760257219694066934303240516387404643120263988294574679604979788045055860096595768145400792060843187823907846047798293073824656526738209851337966716580396909435852698042606935098918222705582514875319852973852052115078293960803203832275560894920347656844945352292820682510910733935388906407614646824834881148021796876215691310795772992735983711465326909862514238191418921037567677788872851902077490289542988013879902170897710840595253582327928967466782223707784547974868050614704362452938860931898130569723515153830217990147893380592731152318872190556541748396809765519577732998406730469397567617094489926173799566269592805635118958162423179083186410550648038619409013559187554340099479626141591671914085603883006825723625411947242881524475263355183162143866466689027108364944543757916070854519707022676596241582620406283122549681321063811922946945950662382626212315295458264630285181654123699467305843949211818143704275910117122270288764889981395588659569182447354432744389009035650590184066075096434176000893624082769991921544436337855105105523058381771341686392261553951697909315748006020514398460155495173827070110990260492370226427350888877636542236683139041581187440137394924852510422510698213670891576655940214629240359765253543550580956571513420481282757718568276284782128940264158664244965174637709143653921329341901617146834763068424977125160087156526771681542776744880093712980491565252251191601696831554256948378764446624418525939380908064469896559753898485564016536937621239816394122452903826346775662358459472804762214052712016331121177136109432306795008680387568040024737382222173244123007764844527951152260992094737902941583272519819026490169833521290278384565786326693956729394643992070841113700050280762186113631232713909729566496099453522054267849085765803194700642660345725729150069989993964231316996843531595675487553851313813567572947105179156478075651234294679206811536066968550075364796918603604307226805947832318262278505744586653919483705945706414564990997219394162410278458012716566891903290084997790762996599077905924750983053860944956638814082918099067534066715673799888424170049156876618188100306440386933548155138008371580952106346667776446345595652193473937545094238153418495738605283223394221093813724127740560435255455278448835441744062758596418184322484307684600286645511040869103730101932291509691132733295572125801246334096286839525796858896249514333083715948757207811917286200308368431145950068060079136167266290600208013407326192407168631385228453852225778602463972641224974799566314651501774129982965277478010142309574227036257271214157345403873914533974353250350522390465204438861058280278112502697590658220491171073239462309708025818944116325951556514792490125357166811423974453930761035849832596032153609512177707876203947545484310431525550088598274260499663216079519490077787846269458765000142337558322658207427490940937596571397120739474492155947000333614663726207842374713196068194495215024128277221773680473335138787015912693241084288470478587569815842702044544314048748258927210847317342201030886943888049410253897445649970074981813796835203479299870266759746774120024181658915623460134272963557520018406003361705321651719456287177949440309519153518509711357115271684963393849589554869084918274251857917184203724501564984880001134021946865083834277769685523099419484776396025955821440867450264513904526078577307379472131383711048212441708888414938337506932614827177933942924708715785113400059611402128718552383405148884734402930528267489711149638273006268465750911582963449693547948693124974775832830084921537704971012602828171836920232923133695280747117715908205799157723259245815094179520409074999395409101417670794014876233766571432189044330675876310208572877640068098884470183663927289071049774525324097526758764339501874008157776677925377486263143159105697952383496541826987328856541853496170423107290707735894379361481889433066966512582271613930195199353531908489352006187243546776810748380803556578567599253748872665016402013553675705967130500360844951192685384670714248578720170440140561141831881369463836924701338040006056616351674490374471986230707862443795379480752013145726919494389626077314534767866710549970258563857991215091275678832793432526453512482333003390929886166692703564037643386058612568849665569982767082895345931523058745961491650207753381500693591144906681506355085468821245444981198150000216630501149898768473533055456850232504031104027623621381831195604086738661987177677045276611593000417570716875608842273005433662550266781070468785496044371526508705241390134466739777985795202480023499014266122592470154494826264278678220992303710305163769029223878236174534188535416063654622258099442892965770168131514073185773575303535481145952655446540924838583181495873605298125289169944900675160081014805864619767625816675688419488553953228961366297706627161307670762495950904471867535382049602433982258836836846437276565204571179830911673304486034517331863889365014717904386155549423633924717974082588138712290531198543744416725060733804472407326240376799297489479337197247703068846662401447027924253229791790283536580341734699543996181470658531662691373968209897855992970579029532827540655203026472711270773327315965471112173061477298834434242025040857962432817608507072580022845169693322774593549681412958746563826758600634633216525093406886870489281726534393982516019739923055066025819514700670737601656466152378364510264127468995127435467859397150890177183669833047994143885530612180882447100946596833368431442681137755149631336890302478594731726693617361140116859507000569397818248004438510742296359203890052098065309729252399513415979429309217232209368337421183017772927955493054100789085556464706800093209522135306282125157726866580446285570492056143175612499621805539089507916751326901835059516776021497668467087047869247948030807429773528988992707034452888444675094452684841667755133240839969876984524421014897665155195774921509943425258581480019132228574556434897396631877646756553348569118099753040696626922940125888071342769284675372286144645169951853875084753725452030787063966622309647394655048511496561946776554061587028728891892390014132151679138883220622495170173038144144276172990107812129581800551229414770304437547846771577059849714698838651437653230948459342515665520730990874463351130964727905372791137642365250359285072101658507913343447865003903687535263457173203293567941197656840876272850815570267764085365735404610089516546785932870658429192435133780870627576964638384034601195820914422096120347048358974806036940855249476684593262065146275919136006942986918273912551135375516474023138549335658886845056983231463801901625593048785136292039093761354949346729734303384366034439281355895678357636903756868249994935487152650175497670627092244302080270737252849047747239992354334563849422086001306939825416332589632731630725388827887588920189952357048937806414778373326209690036938706909376399859280624926663385290376687853359909061858009958958087593397300325955248434517468251514231759904715006127499518717635544093472425590363673007737985979321269491529244105978189857261179484504716966985071406051219218789048671104842135043968615324403441609768145542071627303711008925800633049704345491054374478735581949225423142950046244769719778526082321276088138375949505753417387839921187003130423480572110660876284287745897990209284998018348514651999626102625925672278854772149304909837207003540167500526269741047860268156266002991117240276682532687951119205037973734729242548350428652315445185398395731756458755497164781973959103880788713618437405287452820519426547599730985831700497532626518707229266630666443463597898108007660105403139401026185493629970960527474521242350117132967057304036993902905548483869993380380944507575236271598208113477703136612261622154251397391782611900745646475070164691003859259542840745353974869235591096556312944006351012747080337008778924398130898284314320242615836802474143982469325942941627122305573669060108045874622987157638734105170731276970367917768139074525762937254606471571506510625426795111215224101195767211216039051968930955449669307473592420538703676195646044095339294231687312781658206820579068990027538139021985280332073384049520099421625419228130378090110419575985831635317560980106553952524035892709242811703317726117397112710828192247463865683221581380186904103926268646940642310554334915569826125917187442722408319872778952976723988038227164618440986145341661882924367510119233534032058972052805503383679601385460249197117791475499429367611932277649732506244579700911414651510143387248905341359700248998308888976157980961692350177144902799007455397731466904552782933471260954622520256027951021173044868698224254865322344613905488636893124370886899895243210773175486812211218778836758398028404867476249110912730291150388429550194254659104125768007139696093308421649080703615714102766240086590006751620266181106440647661259933843772643751740101847859468548159060218248912607958906900690767472717542348132312295272549946953890423345802274987492463320800111405445580259457185175568844626236822263704007253114625710389173114444682382809118118373806505776004710341334563447558635675312648243019662732487012246032416042035556939818303413225677816651423509158527947106397381057831267435781227344620787260868147245896716132902480622901736976253439140880680272787387483634012143551845558762454550708483642133353401171013671132658554946843033304716821450292618586602427199842139634972252244131880783115446978044646911576935447597154060743292445342219997376430227503188685506542568950198888687384735273315381787562690089669199320751461813892499928009808195157024087653337795650293694302837709049905254636079405324089059081459368901833982187534491576641026040870569837473850910264335178944287972800294387929250354923462801969826145845839309343671814891141960152493296992542039072469363566562318517880856421558424766815147278525258140585992189761655251835214511163453869535471102836364185668257761234112999836989281781571762823409618610487186817513782864399859519008198253968330255339916354342219733754162929371947540550734863989566870853968994795964047683560547691616737824508002139366783738078422763435913828553921677325519565652789744533473049718943237502865521239428618907344440076704390961919871571835094310783287318967957874352131808212441041520756479690878695630291213983818256053891935867864057544644610972734284454136023517530212913586651859300649402862861023767146095592375683639470098050182195866850499810569331331787890900928346953012265390024858450738834729557589023947659098283349026217181374552773477826221586323282817723113455695794238955649044922745075892944808983723694293912014310997571928639734140006760354173478934934774281878128812886852817618868269065221603123212732331629459656737899116274993885848232050433334006280290536034833965071668860742669835042608704461312541179623591236514095053127440772246846637990018522451308564925554166006653491716680590775074709299849118207212514678485270876168760734551882937268147353928869804564647096392488950866727023984745664548823293244594072280603478447259368129786914768913453081091055872238125692197252806089386460203519680787692713341862522743132263856414167002233717918286289091207381080371133698623295891342079077592035104428253401994830606752271137035174587319660353355781189816545399152888072800606042552328693418419275836661770649960852403231866416155943569611077335181567757170308218450723465386305521236980392802357272774299576479356818056413498625143247529293176383346866348988338660074451545759570750581836851034616335526411630864706926786804332529616124770445868711991033747067196642604193308363190915275197582911187719376550701164326278309721069447811993981451252827474259123423512803361440753230503375658685288245677665601297148620957782329770374321364898217878648047159729907671679090087317439407475034864557213615501589196227943995711962568387344240227756575683801496628584486316565256803350883858996370306055596828312371249565834208549238125384677625801610977486003571381402341534784560095053709745844942638598389488388073919583052159624298019857029602903434487757517147389088838326990049195813883759989401416845377397089565662955604863193699794357831951715774876837059309438461603435902078979349930160747726157662422305387753703026297425993084956532258780037115569024989108181694449767771188675921375582566448735306471699362665112495669554689291158660340086441705196344110814900028203595118052778840399017994996172470202922779767209204646019067825536664474302824731045163023837566798299868704582418006279217642942740141302195122676954230322680483779729142021349789267967865968888309987246051389941290942146994067008016891135841902127141256397299979339563944990163289621614335952737906525585140989245825599357115723945679260716039031838238392006255730932038354732183299449368512303405832323675820302525420426011726760725176859896680938550948280868857353353312710396747270096531906116989574675607639959408263067269429342957942809571327658658740002911382829498762128389638254326071495419376244365704944911112669407626596657186772554359959303312233843618382684678992938701386493392809685411532202921917496754814397152671154759954010880783493979633713013389400269420016209962583564659605169826947747722354847979922807401582741328974189706219250176892147514731399536833268421398675651841320393064167241408807976872705923963437275124051116543362388908854002261106823474431671887306771346536208515684508998281248863093462474684171989888674898893411687230326625568061407463313993583703882765468651192792137922329402924000186858338347674125320356514392618770418681844169363081515508217849239583788504743885895557355328563148714753921391628470503553030353553232753331539760553786669680921683474128355405995069998874424580693195788760248265563338463604179750407139683990318205690015591362686701022004775828620717093235031035285470622172155635923713842051534239387602029259572949759800884217139821660777635171141326824195998741887684230979249207361162793780422251546246794609299893060083185987201243675631517727255791735205514240541934368588482839821349269141562085490676880901560875810272061811381097121065399127633886384319664605492112387739444065388456216757647982529720717630519125822189365173212138348041461803216801022488297517780517356637857858360656297294448274287933322227744023916566408536461182910204915699567394568219914291268831480524100822821428706779232885294980309820184009872494217809594048686488424170137543370759577870963096069502565101639686807771903431040995085108762521090131604223939790019290949482400529775659290685824599315351606727034591255119268020404093961789619297719339940905734985743772390656183359001839126768044018247144483268613955257787874374865490044354897782465378896850736307372993286242689560039004433929439201190108178793623785165237244393250635289353537333712779491043689866356232807625942960345332460689054049805706658164429565417038175643784811586148153106917881902713260237147962546435002443438833616815526432468202322200260431938861943825331849441198843428547119594297246935266219725991343646046636649683689700194886490899345402933248533351040964315726062314290169685749378879303313981908153660920934853286441739126753632252087332988185549652366975481031810504671166557780839395716943462529670618443027614911787714889640762920215119352255957310345576150346505077603253105276424155485086666101468347291667821827399230092232935043279789132933453897411927389421697208932208679661197080543843113898327502143144768726774249062568554874392581949929678838632742317001170140877616646727588069234587076077540853435264866281066189440971252538699742073291058389654436474264902839932155917563606109844678223484056420694011270042748256366761043141419500600866339860970083168742099511815361664426463029246350075341984497751453784674203110256332300329950708026298034566263019368515715362201259504120340315661004731455156712461107470405849166871211441033451506690860492168862282325642483594927144745287804532134369423731000651950706172804518567076906357470173683545221505426207636198918077757078232956897707624666791138144959428869709924342938765016230327919140636752069516130341851115457771865090455268547549777132831455096409661675087998821868378207545001063950472676267953348396904704565890837957321124225021097321978789980261736451888195359325962362492032388489972419049371481914415907271149781785784399876484085371105864044336076795806238125848798471320088977057828921521086011178117089893099140207950820525012653560567162548290035971484302238697776501011116049022828461026767873744077131273300426851079763516671814045392728083667542875918027106586043294173805084075043215847437460579663777840672986310401773953340827919503870754622796580406177473314380506796843927083150996417545666238878154858724638889786847358129239114177861966466638514001176666178619331628484705133600561169009167193351059124561038005968267045800314411365767226939020340388963558907142225501558442409379742339305472412320259378032523350717988231750917530477716856845554496559077256727575355967386094650731546768291020782771983957642709333964888972515812634063050763792258003575749940421061876864447256999855445821711520901894965937382597880610805965179873774917750232044888908474229868126824124465095001591453677671466639181291588185221711817720938669994832992641555447011754185528529574950169261979355714611718598026401767107000324367518922205598593372172886218528364208300523546212184323952971488370522306474119869466685947926422799920572881695462932783318113327804030052115494067123140757799926958257423745677134894528134958838640713634277718210116742117224160148382324331517379750962862736940140836854645812220546313168845350437775261360425720640231848548776870495700678463867212997761230391754980084914801779430465084318702854043344042063510315035493744421819120205219999153384929790076446426621782864213685152862228406870903435578724960173208123366833538358837945317067642271079402858665722464023469343708996048555946393952987591613023173793692955995326595920699372090398109212320922910156971102439927608677325903843431753222055539915629183289632950551245403926074593962913233978236957458178831360445217463057983461520021408127174495544057488457634558589563535568591112784681390961936433322842145291663855102651055897637997918677417921005947321564963399950423597432022283356959083749293913908823983086596622184647356756442494219348532365222731865277123831589027288604384532237702015452662008898472260921680970109444470261127998969285892197748062824877668232548037783794932459323808635811228629355144779933522122760933721844044952366289990094436284098812302935488539336388192563515901776595930249431275289719441275301158690870307186829247477622223023852485277552707308931135183749181069213597740515514667864263958563326393502435393110785507519007387303170274567133823509502292474769703323304976843109346277931936745345620428007585123788955163525622606213115675896835016428325876632941215158618657405152860893124923332964191405356579091915107244414301646552555071502524418669336108012079208839885688139523640130264713501556861507137729537898156274731457087445232676225208746601701254910351030432643165909179268116247822862728367158380482336624069921448652852269100708585277769197557059464870542270263709964011509411052885731144455716088090746744518812301053015941601564030933338649554350528531194639079369079988844080105841507583256002514913878150808371593157542673299810809890777337980824214748343416956288522033745727023442627872423847925282073658595935062610636577551879214956914002344046538607048170296778264900905886075818341455452018239369756645220266966974652931380642657662520151711566769923236701884545693132247106978336437013775266607720950890582286215234717360596568867450623836598551906413772701990277259579935061774142543710974006525221649420486515820879382470927961568235599663763940673877280221147668770852962555879886011316854112189512203361858586744571344654667511516149195399342529743082140203184407353244084652874923864166641607194119454174682573129870744135228204273546439790710234944502546123990598523638271250176629725580146785091786192323078529717790643783654702620434869305786672500019163379988656528932239579935774297861500174060150977341115209207966306073621470513496230250210374308639580840339749907277004388521676321600712297678995209507347970743293897673989421517406486910726276840346990449364253878185663569081086951107247268662230681170772656775832869333563775648125419691143474062913426441499071283835147878126501989146687994400789950030688957363075670581414602502749056363012062304784981038167033428122285703003092529112990975442697565734317332597271152447218879960471754950956574061036432228994498334242453066436682063694813092312687668660614532653850220723589272088620216844766753956575255367503095226408035135438244371945782722949283238386472533211349471430381748350886036893265779892302049613465033088529458601515623552969970533382415599825477536864672196110508865734754585580617916034155529647715712118396426459769424642887058284568987585142484138804626864232081922840382888965659654382498447164593814858506038887574685389888953764065159494574487142685465186744351173270755933675136047553602839673876097052923094747099928221415731592389979801074307327284157832357407796793966755847279546704849381608397010204594852863647718727033827008600911842976359784910148460053882254992044602249558382554867132715627473766883435572843530938104835344750593405531003889907561607247826847052417923271651740688404172964315572436349890564428332117254563888516156413039583936237390049691087574697669657079957168179706726081656162213999072697286215647443677321983821188588279640440569621911328932188414219151630558136245806322640024708138209518489906387447385043782340714714409323872404397937682766650356330074261525153937006024615048371525265280129107146946924882476772305163220573775498709824769841562859704416442508316478016218425291605775861802834723498761617947011859364735230896214261898198895102543015467374057107750343087289232211279635552639460896490009393040408762773097677344626103353013821402009909441981367762840053174933980157295873798150925382372166878551739812953365458482824581427393235624507881273411692574147033737783715331785668231921775566709426633602256970210871974770709623954240682751486929741491048823689571272729537271228807888165598280772239928258562027160989384414991188399341876794697004375322425569646118597230992362679558817051307196721192902544318191167986918955563338832868311244088802231772105480799726362957859167512474135241915280660703648509316605477249629613244684933223683053324886527254013904041333512045966679522889892623197981562818190844428975798787183817990596574754950486311429160105431159098953926493705807140550397341347037420446314301354439212016427924263518652785064063226742763599730448397140085724504436265692818472754377249289161504356610039435493335587191746334493197256768218144576650119627684428728383668572700754386172603838496982156892909025437937009487645177174154704225662744307125744998978493316185121599287792303763016178123813087348657423659311936878509301255469107041705661429646786635829256925772102621298830382496378305696571141702102027814102492337696076730328213477547868836198720779675607616418386400338979141508343327240987373874980294387385256827039938844744816089833321921173739061583868288532017998567135413405606194375796052887280007969333141004148523755034731495579396080322479269704154018716306063501732252776234021295466942370145132652106273952858135322304987800866655102084790276574046296653480656075899594883316219357026094603298850603265922400455181398139092882004995226765211837252657415345301006842508362192808410190626982686439609881495616590761702055915459495245720005479196634863398231195492131894584125980859007723990998982672390540905602985547413979981451766503306802841207011460912019388317727636959270981988522885854264515063488063507920643150869845837972629978762183072694566947223410670336200417614334630045411195696186511666201953412246410901406837317532474043180392395943094698457373809264931522990111896624522177032141060607397697773680966696669595490010049170649230778863753102862825143637172632871653234634010251614446341524424615499694978617401620592671316220606512570440172953006293462392468249832560671764877499922394280116458195596132324648874785754535584748836237326454168921772517407217068632596827280190770199843559842814107640630480446400421993029898141916110401945878140642565478964069143039309822164659233419124055267848941694971363542858869267005243339948253622542681340102038351860447074173113901060424388294829482824579023257505997791266438830066498699294485786687897795726548375849916002525428497493387987392370246674211901377805699828667972817317222983245311844733451524220942269571091914391572757568400955826790993844105635284811120243089243290440999953685642784754596267944165823113236119165465923619834579050771126472013350864099698191066365746866305488294633256995663344349947055705536018474887586483535461669855852887857927825215960252725371802288412973836300896629294251946454782461270366984014226025052238507084529984672311277203211338300493673904627646521381991095099327317539656694744582583616012820232594853668393461513178085049274646425822269766416893755966929509970336190860640610592763016954330492477099717267962375603956566580746599583455648393232697170674473160563744565107205519500560019193289721444572367162079099333041807904851158558798619989718983934724153849609256162134087104957111003270577846400738670115417006004248421700788719352933527068325745459936917870796115848377563560770621111046408723172604868644386714206877572812043065449040693612988479250069467735124639757290405455462131912831407664662389510740759876226845830386528941874197963150215868391282854120220491138403308596162132538749439651730385925538423904599689352518030974217586920241719219891292399405631564307214439249179862452877267842527746117644026470400828755399251530955072560283690718308721230753221740464380281336929926495870434902285529071987858342465973040901964382997118329422286719966998520537683136130610345096224032937791515680831562458024154809349525868996383882505826392377692171491773114551442447014367794053076779319278515677095457009959873923248808417049060290334138550697318746996322152499733297894056743571860507251737890270479487536537850457806882948080364217354745261802256566260289826402676692067015626652376357794320311622352810214613854474736132762668816214421716501301555090368891546411322398567198393901545055900118914676928895394060171930126757827351796049459161268289873632708680234220591980379510782316834597518417807988857460395091085366035237231698233068483521825207484265095606008805045095479413937387107343448794139276899708820092922826968863018723284399031542306009114101265170069795975431395846053533826446138903912000408254653233757718495671639323155102603032653169880365090886712163785735093816672781235784911310895571934502746754422680973536773460829591818691010374687851600768577185299464272885063121570180514068419925534467605416220603896509813911266824156809626754321976131085532741672071154610236964655835769858404501784518541757131572740007863809730440885522373167988839378044081571422646310325235000991714039345299239019150119068530329510125482116113878408762134414066630151821010042171639284747834511394892525189582297450069722106655408557323417672710266522013325864945604953426918359635657931722873241613718219719519988137540980122873288105153088857364169129126130190908515093585087493282039395276305742454835936427545949423846781280142394067437825406626269430056196600670784833799883306343668476751413629972074974355302098212066375961658305790653354325486519770107527634913351729481900639492455594830808621279330000142716451145563172819968885668507707474223505796156691870084061418413857828824017496962004002274880456528724913706303450369890366606234562667968560710391517885622435394903013673351327747887040851987947113258983245698145591686488748207551290077819153805156996670331895161336540980380966378552394976664884543282621187987956962863410896916697861805488874403010075601124186572856903861503972936395353679391755439072640144501894521697104981356781913354387846035650858613758436468333755684948591303451410604649744956679202677744651030502927814456764794323167261703722040847682197492736481746225007451640274899811022314387965181565441064192501423625945361680478721274336961757477130923766696678627356887121142186575947307121678536259244986633929412878007219403052747230321194751807128728172237226058327648733462208880375587939259857268042476409226924607978467314839855897648817044404991057770749200936468581764095074252665153280499749189426426024157592944298193286798859695552377149259965493331254545349926670484699981517048007325324115305778537564729783567225277665263985946673415321178076524109871447840886719372541976160877539772178771598784550531257508818286001705091361056238856412944909014937490825606543911007759768473149822584175008892298895398852760665082957415090740295438942440678267405723130916379426519823913094021997734922896158554770639710380987323506328152379603105749713218711233001038662816768181277376239698632045760740941502876592392994686724580388052899261372467312605894440153584637243072011639477648787536927125995495239159770237724045716580645374685944745192775616870046800286823923020936132065699235726861485431873932966946146696096374954019509602384859881779015750231109187340981365153381843255165784083665029331484313964837019384724929260088528753598090730660223980494067519206436135030977604376723530286163105756035306855817315983310481373543228784338189327957910917083143517281286327069699202200065876144827056006560391810951193706567240263700921368656557525243353465975766354415576211275108981582484710447558331354325698945925739290251449351689684112449259186931086485754952310498329912393946763358749144089825106138761282938850153175050199551762069861081774243784588944185719341237420312555417700443937360000209064010826938098498966430176692460003996990145254734849311248499282868829235630949156713350014465147686097184977381374221380242581497389083644556820181339106652819216251339772604862884490944857342543086358587293550494200959082103242811657201189370854238279884237016093621050124111476040421305996639984856986001275216030890093429507999879263126075257401195885595373185773607191205747682819409373988245800826872307201627143770028180474928050407075346616833055480021273505198694452026406145137487624891292551140539382544635236466706450969565758176250103382659920253587701652471386259366934542492840288926242388313537881025755093328638291329074908762084164214807405224107974704078113481396552595136844423351839097854793568351630223361053578084945211692990373797140747941689784236480614799208056989837628734985863800693467828953769920427221557501213557725277876844946589634963890650870463920037375753731964679734941431001507016834317479277571713119542232556596210583841993091604505207679407313034601141310408445994216315764078875200651041692401242502126015900471559675784387783939459323155810018665491462807914342385712372017165508768961791301003080593059893618484440898629182710551952195566078303692617392496222122893125163815696421559555729264597472431881279783715533237037042849348410824015127152474894521697747377965994581623310364926292441897766606251571323802643066745625912899288397104634760346232418721803659435214111691067956657276865420311515571897015985391900069577818253223726748091267041252570356904618743668170281627023501837746090251788485816027170189070625614859400820082302752497244101034690950008711783635672172713335605790766978520480936773683310824690681974468930744239172875482482376726605781800902957005272278429411646242025600612205275131030276901808061825656393801252097058266804316088373961014087211981849899993929418825211451073184066858644751668133814187349055880272143739020161385960019010965906706554475708085865380034135309236391773498536382992954239747991850391469526349069992029965777651438187165466509165682981397367922745300211067407174097799395584619527250478016030175617030159877052111577999836791039197067217935886917948999576114113661905989642469995081749167396716044905815115446569124502824245405682097242633840677282476954653081307123818315249369304753428186342344727909196340529151354018867620829090593039327946368031487395763356633934065865212615513731064198802366529932931720148873852124542077128581513966829288957064467470489129808130967872471679125777330558572753106435246390667306634066488818588012179574688601302724060843230965285746570676881960060948580062656882107968356110063849550843592382876231725345618291979259436071583217340514266140148679290853124317314451855931626555802429685148531927330721158931185662017319088013772200804183081487708910810943492858060611549820663058163846396781735089052879929054233923522712231838649994314893502348035567490462944761312959855526339112040742283580172361648492666464425716741882005041918250004159334974586511448329955130470313878068114527883911314585482338935043106296864472732518122085136708713816810660055233956815051225289360543205155675917016391915913257102030685764923197328098971172407556939405611649615308326254704854047528102094243507475661337407998267382638911578087276289641852965719236403903470788955000038863529938893517826187264395168179873287920416217139333943264849228565301863713135952673763561923140626873418979378442756571968386788409083473991233923835379171489717893355703626070677506679323776022026082723465229861738296637225877475161708837203266300124186525933530627087952330286365594215199440431961347633051073743906319303776370228322392608945995400034599431465687828399330835398022866413533529088730315464466066672631118602658195414678014844397634048809772069587181668260858238636396945247304760199449874333844107798606539194324344462681512367407547387373318987895849736704139254210927295497719967836873997363919788616190072522107742481722223030607478988376940216290539857510712496037559748172401423982185537675521990911466573144957910614774140913187647345764851929539025125448286634131784326925020204780624594025006079246942906140985040383244966786363160505853603164926645039962714867142928262338056618809419977231486362959210931095836585305832673530952109003994263082666381526992956053563520011009225188182040327335484435950743283042244132787943882762966787862797091846446174504893140831245357034338611016508598690406727696679406669320820006904082442955353927710275124743092250253066534862403057795286546571411164748577510351325926679822680438929992619416229015558743974694980650057310403690989980781668741197191258661013121449305684554165837033307226457447644061654026626950364337522531249582699965348784705237833397238526905360120986229241020206909082165989989888041699314847567364620789729560120863175662638953952170377821751853913416657882498353116230511846745576828246242598535207152862180303430303949674830684299458462497284072930636244457692218289536672530312546295831649755037230366396309099382372361487363682809702702564740164322789362588802936957164849069229308396940400377855403905389073845493745620988394014906542050326590180447652202713914532452992462252084084407047564456985586646577963981670238382558033242897081096671130712885786244309350786977456848434098628878712324755596321158391145380640569849213768945238351464551664260062946646188654920002410012191837541507338387934768678040752397259475906308263369712132071754435159569232274087183046322285215923445981404667277534855975182788691045155649045144652010444719240432019926720725851269672052827555026940339283031083093926606379927534452137115891876028748483477569658552831497341036061463825443352799013219484278380988072622823497424213300698362143200094981290706077339341877931536200358813160061253415720436985646494858136766371252517851580768070374820113560259010526038035797976208217038058212939283220238231849139717768458910559760858766182771187860926695300222175371612513448122799085423698779767674778205728369997144448761881515265924906985546177398138934366013661523118703590720335504129136198570523182552372060836497648508897282698132571979635224108756191027830407115778112739719751607858283877494596450576259008758579740710011736191018223926647921980498565460929064182013271867573423459207128636915338219812828981334445813949506100330556320267665534756303733202564363917756455134943528808917111330531575214696371873160406365853695204005654293089422378162269396277386623160258208603813410250703740085437827986220257403670383142826105555853192895865838107346623482133168548639161753258805088140664351617584019877125065120414576548042121322734672767174193576810675628934315513736005228309777360450086242045507057396143791141741126662333619401962655558095136121606547882143626934272015702912283019773067695733953672824868665867318545922406224679661651471436830451802512813798970470574724414230700981380233515557257260238080114801974903441008403882434469506986384426010051757876731850389707767296434227721935324388017034714748074357381150925158864303510468879046581272174018599676523961713742297691515641814649064792638414041337696748884101054175113362334786626962192736701148297359972652695918673272427975426588408464403498750329186692703949701095982745687943395458841950547448018682175985446788112683939897558196349333583803085926783281386220448040689170882428606927503852817449335239100060246140429830209215795257701177433179856404959678862892487197156814448352873075210421581909050368251460994691186266185200729490061704611498962816357343207828098304695818551697018433308890661382866649312583719619292193393243538132408922461770359801745213038198257041459858132845775731959853456801251232564999081343337123472935162728356217195715888646235635563089926391410173084949627792482347548076547182053568566661891778942938971976737411369756927920096939780625823985688692827101110644189783808122420812194663509361397447846547592871365444122826104053840302634711502834137947370141522944102318029172770713307552674702881398130186166242269306956096835373871519944526437036879731352665774920979774228103411024740188214005696380468666005606057384015163262800621282704058378634213590891275458562340010484146506954045770446993521286274414164255333480774552233885774414334115937540148156608089437238709662912439328832005855383493938381264345644516705265257184282442528228280460346167946702478825779857320291799872777786950157410118490264162391942155554217460017863210117290953173462848027725287923813619757919787049391986192253427218636088635298610366329815341912116241164141463105461487003588850565677094056428070194424004364957652966476325538565342266143525415752227944945449235429824129720062513263409307639165542777296810256381933210230073612642712551696347979145615037408483630690363215603828068264255678264962357081838237657141409788596977512948334169469872724364284920552164373641593120015292618935718793925791394077450307867768262096505921502561726379914446512734590384425441486592093424756611248193878897549967228973297561354117796254671291345243127438228116493889381976590858096708383123925793818173647979133578164621582232854866316699291438102025246723642923405815795563239813702717796253133259984736299472753869776056242918325119936964480915208137943616149084483538541649891331560626312825377197316313249207871899341807420349673123505142479072206826209278076457322383523136880031938526525606703891859844121798369011694719569122624172229647728241950965394051194298610276151197834114849477653868721411202237510856856661375156957980501662543530058792910886050329045715494323501960360597945010349741505484553401632469646581769416408365499306208302319389451857759853438631815267267924473151060440337702359549027588807557303187005116846011466622992092533037707146360750719768127060139839123185819396852434566965175684770911212753526572169554660634122989652085703471086448583513693848582144113038384670601041640368263548582206385834906863950330691900177232232881988381272746213254135506548270135773910632776654826404124461362245485401650838601275826024976793098733320813761471545126986456079333129067567260670017119076931216812236083191932141345175735599125624869269779538823556860400610506259644227882957549759334003767611796298983744190575608843530281572704482517683036749689106853279847972684596877505214106938842018526951826023627116966367089853801957640203686135691944790803746180528009171754745232889700988504300790677680741378455660067480223721405428249273846584044867691767860844116170514572453370713453965276208914032044749634745669655577402170512217626382384513705524896870806087913502218484460177353134262722019396701737088093869025878908777379707309452777037189421856236237431129899376838764121248626067602912019341441254894304503162964645407793193841627387064980945335425026730623136782752011215586420882198023743872672843048944457754282256119815352354329273141050228445360999146338719709904228773778930948852831287385121544899028883860653129001868658636810979078697998454248285993415461136974265507035337314350585129683031345153175935738084331488761558763215891952398013173348293937707158360065623676069093515510877556369861209715504552655846619230578539493918827215679712107109578882081125349719558607732533099656305123613493133559105605332834786018537723892362724633659624979537616481519590092237558451168953943267210995704185282845771987037230806746697526205770788239885187903431583387945527821377617568665012145205627442784584892050936314202738906577956661806562800005333901681075020798812076044947677512615474216583806489544552766965145143864116008090920363903675640799968123414339542546322560513196893106030451075777617158497543400694473454490192465643392620423743110855828106221096363480618385156676873047201559214091474329844414929008026465988776697359874144137042240514823095666877380026837792146670276158784298681594804058773829667576340776085155181505993947721228195385900200323067610048164209807453751212042601792341174620424131704320902388040783403449660106938808722161144263184297852213803201987818324196641986409672626501381514536666916191196461287759736466062490380210115828615938630680988061213222372421849549546340760038469532960276265932496933953641173613355245044373701540245909646344261615090991257536646323277180528140142247542427705663938009157531503498727436601169446778002500100748207997800595644861413979537018345216688139023394825837168315854678995232946887697650002993704154964974209381055466999738111401707078004145085713133131257670941412994206517992774631023507201678825701366559508861277182075480820834990374166500203036170297759883490027037262565270914486699913445716095423797427417564649146460682663341702651466425997648474490909976640591872632572114891387640588406059905418720004035582555407835596688540473032511636370807465711864507471476847031692903840707555999933028732218588718925607725014653806253973717380610127480864513137436827191264498087951424817198414151766668807891948210780711664598301527324355309967225184684593531632495252622206144075518660120416078821515699970642544862607431934986934740373265246837702338947626273163816891955860308815131888431087667471666112624605479426093729174764031942652518846313162558621951011125898066303986856165191254376058061180891172413211564915432513765204043674528239778713841996749363783545894417139814495154095955318292948156926029636048689681434041695829580430264436721418293639314495872401993999446466391591361039132631591686263254141744199378940700494731050751696887287316650010547965200824638444652066963702632895688643607465274783749804113884677194232973107012958605131980153647616612123645273937278913861328617361492140436018403430041237169762313320518950440683161588360762714978240987355625323976136581470146854625867190411528528908838998370536118751135180553499841409379331411084055271951227044446313537606115266826366366519444827370716443904356627491306617396039222986807467184108335177886963668851379700120194827050450101140398684281107143504561991867336614638608043287245685091400126939076917592332008294413688701646265506745635168546465853291649122279193524773335115626818847336796814210741131590069828373710644649160972925953020325040780012594067547676447438386421779957802808242148135027464049065320833972733019184259846805422211148667504898939358028745942456346059476928381105728743533518693682993716415376520743205721146255827396098363911170890260659988439168643085726444479703718738496582394232888417038366418078331529020980909195594471142199460062651450115921279018946434321197854976767662966199321667611455002094661595521581947846153786790067234551612305500062704089902123383811377269382782886273645972235582785474923911566830969318682883206735134813146776573725980506311776130414283439244769195746811157088329118553691452783371399998305982644466450178454728877353177490572874373396066145011688549506670118753574605872872841590519725166976684300391238245638921763981571747822481268699665547323206939283239968887244294984068719649024294062776053858134663110897610519945874001381292544038235681138878045404789130784223789289963049387622406564207638856877258982066319085152787527156341916345574754967281398946214796951031625645493006251621945592718604137614195000845962368970675892891619996968738338966239579383798050807256415662823844868927432467600133531701684408657158892147769935038957827844034448556954047224927142066107785747295348828912592083723812415830490578735649068912906906048397747385184835753479187931789007084428711409121331604496156765520248546763829658846587127485973067609582000451469534383368540544087098274382999034811889544456959034039272807215343475325571404906508137937078806749201148378796991349021917849009690461997821547408216244799577493923298209661840036546410164354951038274871198276572718918748084346457040512327736183941231161341013854261992708243499036109061442617921269351053358474933226607867345581014409883972314211536162747815902310572905006891461734472886163390667345971567721975665888596651887912364949038105963939106592351367575641720718420243048260674701738210157686703370330130473045625591019649497558217256908746274755966411140686141979617644055716621405932741130459232855144271113162771629035524838929813848115843827989019261733992872018402118307166167093192305072618347456884434007120763894433903248781790287328537597547894055367777630336335794408904285830819732680882003872122720724807162953827745851966544690244012205794802627473724887179090292237354706406201542639903876435016489152612431492240027426798427258416794273149423993602401487115406532809546159610668404936349858396635746322846383722304210125242285790106220690784400088737491558011686223298889054212003066704654602894099626068346041978319338591830262453370545560250269117033044030398943306527551292691418232452816552427005826453507882820693436978132061849027553627698077600383672778586681803045834993206061722012111231006212781987933027527777811683131519547588356690934273912261609800638180923374746879489151901642965122113202414794811837368473281628766512452379225991481389963014245956085259669460151705790324885452802716642639090353626948101395007610948462585364644251663030838717304100982462238836070011155002890350772583116731279472519314561461576951576509294412572263363566949313172390069362918783392923835747908171509232299008136321479632650634190873418088383895719729169021056095215470393078723481131557917089992862339259659712632547836624008459588347048849647298678660256649661073338640375405652023076679075820690819922226427925153033404254335071721179380484224743171863458442133014736589261654474479175039866240715764356688135609958162305206467878402366822862877653908600903101463614121655935037484914308894792215740144866958050257698061816252652858124091122513098416222888749620575297656491342837426685381792640039874140424029632270719014046368829744919734723985137060810605257477950537677150211621818022903626036384186024779365880274135390622748943091645244064401754168252477615923095432435463642866679797739677436263720279500993765339367369478863163060561890338379787663752237240657221231075461396399785457803540991745876400696822454776670163741407190623656705830132552023872759684561367643804905043411394875503605226390252427435982322205065090220856860212404082012029939092949263873147150246048020954659689516339988167208048095742300649148979180523167445916537539093665783299316223540437118795161668564998766644376586364274641687048827442299787859022571475693738163542458516074744686563359451407391070356805595255640720806749301155275789964591553795919468958060102968410639737727651084849500893496038330924084532199769756513993870737982604949097759066874235586403563582984109586086673777485653297228171794295839361945386016537679944256059541432550709729239824288942611304294925980929939467402844698647974468684431557467557727045100110210019005645268224898408743595070365003318515516592748243983937581293301098366347382045555456421363476948601014824991283582787580220238175500032048675483812340920155368663490500417492257286837811484116953247110119088348566190120392607124337066040489904490723990884070605946698637455665840549945510806869473732076591283548962387358654108562690275851229420950701940072562103539021864531168065000392770189282047242101677711820494405229829977607240585818032884477874290839641955461581618659201589451461512322802206905068910838163113557018601825074014493899627160764127444902051313640758043442934792283277630387281944989052716249101467115795593691710130840665963382045113071854282317695977418402468407787207692684784443822471680085215927063828012888295700791090725606371984193324275666553543693253303049614677586638603805941813150566980767623124737846498315092007143330125811412289295160781921504192214448090482382123444957432252262442921902618829243992030327731193918129031793547299945170134681734056126815251665385974208804126271931232330047780068480906607477696438862979689307056836967099035970237975663533331417809779766391880408816458440048714317376586157105617913940309157874732500508842382859975411178122835623241732117623954348079906977866545481347593537772542140093532584170802255285584850076776932751778076748456875908351686605248026573691332946587853808428183410205172366928422829761207070622392449141193427609650538892107554455430344681473202054388356104839434453322147882536905133454806193836418927381878318436728100542196806390416526731484333404069446860869117714464362969024954512546304994229727318663616569441978542909515430454738390244431773024544803677293473044201924693935959384769723925691568150614606023452885860846674786841235014948501959430508939140464078380494802440531803141173630258192179475155343886764299213501446781937988395358350035342603325339956501998876287348818247972001765092229010283665783338779139744298071743552551188243440764233455249149279782091768644503831086569113588775019756491268315832333499274630215316510976278648500667763074363716194110309408220922094380300085459638648233346289102670073286599768657245918179403044215490628556751864908582733335396196983059012150086170752980567170597701631667139547382516620348412835088406525971884614957387658291513742805369644023621341551143536156061790299622495701598450534761287641241443262263338006107345190300400516393554299508253205673552882895583116702706355513424002840008255634843208781423985299352520150405384561722953405281538012345352225233115673528390935084025022309707134145431168004124946970634346752511866530219017529041546506255449098739092089180275945571329042369781801631227166766960115439668178405409101386568523986301818377025514759240234594059195282644480312296246865052274088600631369177052585868996788049108675153927528620488861767298387234364848479632143433442879432073940325075311563271231808721273776538762761116932742664334975143475843947247800024391505877898508167004506191001416275469259466411147007556733860315304614148722795574869658088374160879114943917727949072041944996912093601215946682008176331128796330851836727410794956891692174120087255316756182725844775940910795883238955515181668347859857865376915761157419891591464107736109833905957226603519257819609192480344833098210142716920272616878299117453752646293971046043188202308017019120149618272002794122528352735160490123920789663882194680540809303407791452078460836809175434088290256739819576163180486068790144757892565682264979856865902005493649687893430247463780085751736306738796220145063951149356164272495533981190703875698336749949474060524978788784433516066373197394136262463408070316543881182354465925090168824731307265382135563684726798555687005920008612944655143975565852724478148649144751679009697874606848014826642576658687819758729876694519686719421436349525127372534274135358517066800788883929217168606222072509416022799436153082636458818636397483575646434803694163474333356712329237373963351921429324690371383484254873743023272487445222588461195839763088920568953192612887367736857342735207912285233430719490534490387676533002231991349267263938200986096252766408876172027451091611574813132584671688201725619001400061722391468557825318668858121315613288228891576726623400060578725282777136187922548448084638541107109896661448431515172748697758753276868383829663432329385653570611187928988998888917100728114624628781596982703770825894183861068035085244171661792586320318315871413134713287093899565255371358606226397283415730585973711233586015503440216243881780184884768686951077033719481979063599619054769900480428359905366362953919578138420198943668058490270061717036177946344593909206133878840357982541074801578077589712929748644453183935764492965164390730853596416345739749374773414589246643710310550877023310694088970773139255482515872466605519461419148575293965735471789774983813487991424355793909506175775655282379069997515162633427761129873402301979340068914410374236138052167443728399571060418953150610299744113223474249066916275294674012028575502214616569952565576476229507058689398467595587805447552829687334615844729651510520104244493004486909160255308340731554861250641218191062321049125248258140193190368541363158235473120331212256401605733311593896067757637337019257455036794454677518609160368232224508774653943517243684554699053936519180844436846185518977289542621799679476346225137029949626054510219158302223733359912196468963140520095209298309893768785123514139090451118343881296619038213805580504802037183367394100542829462154945449937330589997046697884963061252382434899679445318808464688487914182701318895818422581301151423417811724006531758037873413432267665854988844949371629658359539923438944287735731164558841751470962603321517405749463205051412234279091037439960173512538974643367465669317808825013749993403096656046746719243767807396103261112914715688682089037271109871284753626884381337336752897656465318581950979822951881578989266089592419107760041751161260506013217776702812978790746218500957796570846247213458871677761187169804073225688796078400671202494993095372540646071766836956844253242567274533451421579388038579854659001302689434123562279731308276259631039602044191410627746790053886962916417940554957874509713279997615633138113937716957676608605925395378824960124631432555053763595739907218812627019160869978526210311191312993641973382683352099986934804269495563717813560781491664604313651752755163326266459775305335133346430157361400600824422044395990524254416282001677132431247989230855434136388762026827740648787273621167868670762012142923760241595419341235957876908444377859812400348680922046551424493967569066767298490836598282055659651442607150381612981498062153643322727756249325832002334928294650533311849022601994830688585391885383364548872314524697714445943470164246785939995544185035367592368659885475701796604693196328620632684903194496982413305687802024114450594782693696676594513930558200370007383739191964419640594963859302367372687182795289782488687780143147025340649578191500383040063173297833259950984376168450451886096424159019652879400205320607503713231276644436721183866287501250639586172922107089692212736296865257524292239301504526163499118618622062048463438508898961480680097601076742069089798052243477959309479926277490728604019965757107466569210507147758868830464093251908841214436091538173133632374603993804297671301301539912186290094330874341068614075637649249743021076579722212544783988037201522489245569160664283499680792940537249218399280760188526197570712151136722429757427501525390882660277328831819455583993660343682301718810967929949868065316045844383527003185575839845345925432010987819374887613846649103378519572746944397021037330934719641474613057186096385126021872504426932138938762549431492899921829340330493193885635568117504471196594570158565527882836505813400882501762921453333501036997332028722780596004419999308934226295446963235430562291384988706932234015099594078202405016582654199174680826075674596471106669001478327621575694468439047649417408001999502158635830234015629113424111844393106173501593623670282407942402217355708190286090501219314244385971437191468625884342081382141908371716633314742917101779117700334161847900047281223130168105743390768444052059376992301016706286740844805245215173941334394717600760023886301647233767862863182124590178002709270141557186801686026592344334697938912024822576348525892472813304704193764974768174123370675275178851905831842771647091744461657420963701482753017004888473221612136602408265646924163684379045128788561584637459608057552347664716033848528183682198244512349288686826879356326048213974906844157778890447799570639830294621907494238944170714374371494678847714334068435698644234252113456645678643175108771503846078151639987266203668511950877871587891715730484868399429533488085096734268836109244382057312814760540136095229234598746196068199807577022121546092173474780139730239474123699148002469632387752042948786207943073344092290227843840215070533113976371944205953703394567772058789755088672823541397612904903564593294962441078627817682260167407870345679067416588164542599597139110627703189077984315298912801700303101079130385762942908912759096341285819278165320522203590756725513362410425152066597289903389411045180382303751320068779280527025417679502598936838766041897143969718752772452303025538624405339125369716834527052369249221959704891414281767600433308905971314024919119352999263854882757553977793615239954799888519132036586671726833941941303595304823444212051587555740152724089554595980867859881415711289460914320234090002259777983563537149503595361808055414122116768692311446533464790122547324073192491889738283202794247883958415094491643584840292863678656472587147604522607944871223710347863405486316563499774557997306717774562136604482840127891490474253814037365640841645926956373042313557660946641875635293474461443978395688145325037830153502927964787164530693455024976147525538982355657224718054027470952904355750633853914100292108223814279479726948734636699795269663434263712821309242446540394126600853782466918680999598737939875942364650310827048738308035441719637550276067002535607257585955992220716712304832413459790800223806726625248391607312577507067732021902232697857530654403052678421212176812078255599959565618987031352451314809466195792911661833567962195593177072935796025402513635149566928228893455255822550149323445407711183574004180790165948489195687043936643652264907174190696489155755816225425430181117217585780374607047116277827568629340332755212799499474965332500733364921747649920234894981349142964645314267760602237790922980579773502577315843605441885173106859177002139198476694887508200019023324798378712827646878863124653469382264346532270793472556170189294633099819160487393113578353650981690272731782552534571796373544498397275000495856653068175744037903205524868239288843757675514676295195334005570437928953503387203162452969241123892098828899515786116819372209745896648242669110409744125936184036861127773671745776169411697039817359806470381897647407901060943831362933659738071009361278672263047518250933317344804498750955197733719166486358289233642724301602341723141433920912119146339125914726133305650544515817333997525412931537209710629810909287422581085037369048686275753681024069081609067552311208836451575141528623927654142531378345781044283806429850108692605797695021655137783757555097809357908668855313505387097355528374674294072836359837641285101920486912812137526935866518172606639541810195010696185527849989980255494062897889546969547413657826324625586527002543019971631341785131851787068635132318925761118060191912283310764796603347587770107755057415830350677499586611785283808057294297331706894175577031004582532378369351675868976840192517238660283252496890532917269776199650071884401035848691422535225376350380648618170251123216530269317876947636302870375912452232388233491887737962493833142237391586662018708011204184353140094430739929317528772169824968662052035400347916344626215278462058767006742941400204953158039742656077208215237438833408000305326551711184594522708373010450306595774080012537270631557933907772267336088798958620063745951598190808004592882247523254181831181186339460816462731144601789982793162421118764547538415806774325154927251618668108721195951812347532572688773169755611474119180798658184318411851213341593731212298487200809577049250362344789879633483429235340548742170575487395714904036005804475163364203320310317165119247583305088082603002696823030495254388745578939479639869242920563196594658788057218287341622579871986031947282972526395333427407579179067256715337089810381441665935491140246848090188081590022940769130179017078986270527099810161436911283192683636540700433203108882992953132501498672686777068923386009423600753166511206007160826276577682659619732141180483384361697988135476868010169849407871338071021503381385133476876055384204944206178894651309252093794791801890080721733658353643560505241926822659513290651228952286004266023683133333070722294522413988701318496504316785908735614847240080092696341169819333664385373090784779202651940879230800084398471690401541591065191901746083624142274536768411690750772178164713974679278124359886883936266987711063833189878983060858604711039243133852143911968868375830154750569813752696164179398534204200975975393716841870586719273535922607433867523339082393763713502357761494647353564801911832516840723132306700980207194465102992185730046359409915441716634410383625983150349502784370785609406717460261364335833927337842900771553316087901754004784762571131382780781573322361582145972342947116896712865006093187500875314317241504550157361508483218961397868024294848786171918306882236299431458497247595756088693055530333677406342110428191423485864454582341678226293188319602026790205241312918200758493160944740559336675143675095358430527565398470121599985389544765273380733512636759804087713344492577892146519350144417727294384971700531064116647751472580836833347301296076634926875059950321246365237577939612659009324293963889358733348769283829137848688096005333837416712681220801738538596996654999161706996821857113034377827208796652738077406278451417876055988583644801733133472780691923076518382938164345696978819513607987214208524946639201905307163761895733310997095953014049735850376358999127395525299981821639166044049879302259867548061897220095449747983832139274556833274273089549069052184068180809083274742800154304548760968295963435936844590563157406567779500406181406332586768752682389165961242744783776998164052530666365408972390302042772217303072022883965097081024026816401879715824347648614717263595482207172894618951988061976471430445594510536729744654477126557875235852434607727015774022715970913145283738054661633921478475192724240022601835590022374737566958755639102078906406989503340855533341762898305937402799812040637717333595322810174497998946295386769441751439425475942066829213987400096654003698341414925530657541395503173235306376690087365781495694167044893346008772813899766509246698142354440178517094795316378747339062556495734554348830184752230403251632834739582367635252617113608401966552263541242821316303213105968944913892994822215094964370625211004627127275318500993763846930475884329147888024974115983003047833960854413165445385358561953304612320537903576936767881626079362337984363683930382235003304754752019428310046928252871437623436608269400050673281209556899877445949678222664652465953253916918339969495309038066451791311300478415146478565793506063563555260560942846981501532663800166580809328519722438982383065732641051239709886836597371545576307986377366499659158301340819962386068557001843266536633169396024273203264307948525760066773467491250904563576601602280639796056744376098790364729565462378900288981768448746854737266165227719734742612418722531660209199656896027094245144991757158251896723737547326898202437746170227564466869774995208071251697406200405663141854492489423227954927122594073913160069173942236787869362546783938280696945407302588488633091703376337901727277162055379656990484449859903238579234590515420386294134895811140824635304113216130581264391589629623753938215647776482619100835493011692600370595244528520636225332629815906789666128880258204815838423438663623748239418592349731156755312970581100598944320038568906448376563309472004282514087301868898118939915969535392564126727842275513038092257454782091010540566646691761369412889636156846953123428424883936870557242373097301805671913959497694086242268552138510959873854523402469026131398335513217898946849890171515607262113149712215057731981923892345532680387223276501323170640624539915274888752990209360853352724078518218453358441351944686857858477088806776694390657110386479538677855916231978479759054872373004224160661479435490965766319658577894065820493824773894454157619634932519292050398927930342604887579114125387585208501705870002707883522440681456843750246352945661278027200194158465077751531450409742292779675039348366842948687739570504443669544288232588132679529358040791806683593852097497969497824781657614200456138884092355982459729791199803518858797896524295118089225526640722054303861303175750472058078562059594639048775534089349668599702029006533489942405078232582714716245464648989119259601738738543570335118999660879940270645111470066571469409600549018633769723932192078551311586510911837598842680575531782136762334901025066706651585275502192219167840057181222274239946670958841359108818102906789407670816129027629812485943180694724458633232639055741127918988963503264095678762681042522830734411967953005885838499377558701763359248627211944605057067810636033565815454418254088803667883096596971769573036297081699824484559086745228126401772820316842732875920082726849801440888262571738340133492959987607840807882416656912679761929533205972265838985441593101490093819607146491194241048707514467334066109191834643353811104601321823636958384879101809102305958239548573610973423380839973501640077904303113842296260350003617225526241076976800183547456913312348465343351308589816664245860604804497593426431441382108776440610557197515079752316877813568077407012426689823010968921677973208464983025364056947411587411910818586551555767324996942820554526660855564738743134839993868344810048004971963140278560415320291349909728182698156630164730332238062202168044278001236556815361109454859313528624068950846957592837596685982677750646910009276858928592608670455498159163655927082334367403008370439383132666780741900098556042172787108033812341337275143646089579799982282805353498637668833435059735656104343811956967714962420661101570317469770653365359490300502739822943786633185542480947245526434287040928918741393799074941351286867727716174092430399171371173642413152674165639021445333429619647809459552216786640085982247467317269433733348159468189583712392232194502750473172546366542286146498373350430323271145711804600592094826039219742490352463292541420934085996926039252603976724106598071536499730507284365129178022522577466950308293466892957322180795475445218266685976683341467595623197084802959453852210331281833385398543216171212539504574776772213475698172551025516037191628549968595108819346163122954226681904422295276208685805493094720599252899718338186516280030814144077156951730042211017876024991380884184375974238123150499610650496163593426748851722223772732791907026203161858319573581366104562224063739361139833248751563404180064875761048695719500252195598434438730257800611519119334631991181376079364429142974922126855568204912621001680029011183189681754944219900360214852514249014927184311669620488298753116982816227547674062344828514353539062082475857583730487525994472052609216455883053767192463704992321661371232720578789386560422307487056294419901092961274859540331330354620728556725875948443221070309607990793629955587319846368300058365969993854081532940516747260529090113673202069610432159742988137510324045871133997102596549842268059668937995827099017752579631820489915901985561682930288760955560855516809737685524914818630201923718051072283470968484406217716282338276266258400605804544033258533750328837105214494675452136573279230496787932961322646222808755987236835374868504909338907033852203378808708354753018311004353434542868461491707459851066828213162616881186486173396564968035726761688908861896125918292707477388742247479997778630699171791473542675100982066149448564006613574829477665960384921360956711351820696940490970993930809771630299010480194550871264441309038627223411735162067055688032461242333760599608526698580219278993001100719902793310202934907860969751932587348927831698431466288793278127550158897598738510473184144584646863990659815353069345506571214124031368691566218024420179260141598634938625332946079280179860076202526140784511221432212099477005007073336254022195397506407987201961597754389818560923198362598850720920568463303503318335941693152096546183626262108002164541561193114732552532395845294836388804889926151776604432398991705393319019126712242412621969957750638436067407210080694634915985130133842077780510224074170654188591748046974917764259002703290290499438497765866027151249448086896617749170983459705095169030359845001597945144225546444960820111471196004385595311304647351194382131896122254321634267446986726401493208395878236719713314354563484298180305348122402877115136317390577588343687741335876792215005794755068273202290727796826850020210775665410799359008432011675931566192236473285602906403573958144497590117913005197108251455535367185806833268253568552306385604036608090541753079172931151565518097858986678665922990966470318819769593294584405174835380734561135112835107263545937542992113746339973725533466013224194690534260336289819286786299590969108111464837435814598912646347059692326820388946669439213309713183509971014303509362523448856862532788133574460884795832195893150189477941839846772330520408786242813730266182971229147034289004378026233476218214952091769242941807758757626024742397965676932809884366560823384124457353792379975351427890950094618409606240164424000040886312517825150842823508698855661818583422538513411341042829941749405927006811988517852941710952963500060455329755170432341474496911151563099994534982486058089516658224747797867263000194551519323613439516534620197919568594778405798872489631790360949630954461601688015643801157794047010989073322818350130492182321232392778375860520473268602081770121464798873619020041536044187133126963571099609106322182490933801257141449230933449125228802073178063232941802173129317459456981281591296440289152597071828230773207427583269143668472916420590919151602271679152163994195450555651198371611633275909979712265283081639267696732687319929222360071243645859723255821316948634026805385118912993485627728141341871621799957701565017761823625185304795570828609080289568109752962572665025977505468334505217229392559509048835133372539829217017864119293272340631432599629870250619402371015908076679744302170853908074223557337786998888528236343230396478404829221423205558150806512850387771863648290405618403553301555849388279767018550129633543795878083942345101168695396911578925609238067436937099901748361588648206637005266277054109933824310066974411861574553971267239170528764535758571744492461437529115708853765249936394841846197248888417266646542885942768297698452834338089219597472846519299408952335257592815614411670555800652950592432711367168249959440407487577650405194521179467086147376864831496216068936799526646548928395676217391662204962182646622577528569080397534702904698947288407360517723163954877649368391456859764118469405005266146374848130180012275358432286951103393659470517177204981499831492088678092178612373168678983965200823124851570642545806607429765658832269022468814900694800617939840287954621929159416761966602167732963616003778626500684008729052107688998296458882759804990923611297872462739917959787964217844173497044138628584370203059803845022693888654968355541027010042785574105397089233625814855876729215940859451926081773969628441779228637713360016053396351263945212998133084073491268780083410202659502482333028029524752276982294853629506622056741094775625031472443250668077238988280747934745808160872776580984572381796977898762339261711650168538244108069117342387636799831005392784876434901159027125530396379635535261887623172749826583433101732698532393294526761958116425517990265326235374959458481599213638824400477753949896840815563859304236323449899375867020247689079966062244344066984087600421723791176038669690888719536656351190665354783266414380971599823180700568852096956968801643143785934244286852738400402085389855209480972662624896893183504001832829277752479496326134447297748991400773962393252162625059828150993506609367120147827064234634196975907565159760509259762465491043264113371028481318184437784159628604272915405729171120510755522121705274987292739012677070730188626174282655131402909553020554866584814716981388947185094315245985676267593869865204839416940332013426761892357002318338544383120481235217034385091175334986402029522336102757914384132223045382499296500440176255885068654032896950178593497778200092366842514722817730848117930010109678152397654924700677061639414480793728304713261552000502179137411694927330713309012788664639930570348887622063745117129463794789508858560752914599978244234710804156240459167696127814772477627646674798784640634948964683701990216174558555320365303770445338174782273536133496111257038738291231866286092942133437061430850722178352012450344136004745707636856471954595367656656223252646527527569115825939424321068346400921572110194169841298364433598088112308822419226028234979064888517719809625578620745158415453758261653100775378278972898423820269733699587230997797668054760860586136700620750060181207774325745930559852156811766424699708855937038378195898676242737394240298473662468412027164166767565254334251093075962424691599412584026886003011972213948401379828034168048172276958584614969545250399977142871528325158548622617075211831332517555009641858560518677831924490149700324457192179856142135686594625927570584441678437556147499370502779865891491523940775367508165436161436726709931432863125594378950180357778480596983143733607328780164287052327177907586492978147004145752550524365232539512536568562962833142949958347629313553806980783581132468463824273130518231678703738477537227588395791228726541911883437830934975328814392192803556778948024704487379623543603787311076340710947942470530181927793065306591988666246922710833507970872697675174260220861359137495299831230232268140582088219830052630919840161362477269151605747578073525592425688639002654243282080076708482633976690061705103727956724063221609156709946635931052699966571699290216612485388699418326017694232872423270325331347783223006008587848563015681409405500448093428305882981421125863114334084196778009000817179226049859543222178076195923632753789114677379250954908019444445625968284773981511156819994442616529938371945596923160798159350551421122055821808785282177944811565515895676496620356084107604907692064241500702777696310525850561226871714821970809320419063869508087762012327878008423393940517697704197699140907079650396029107400291920594147234259564578566691485874259209945748269563341570944643686552541257432372648798373222495440539593259607375084915361951777869575813019001658325444487904118078989542566732892565545217737011868817464617704979399764214310304410130445749534630667721808440643727660110301384081680823157500575175464968524849440553678078610601829714040290565065278842655431678068920627738869099464597760524505983170994531665358675224774530404538643706169623867125137908684023202413092884981549598066196777279904686420951223332393322093057353341156181486065873032653742058601990813966944716653509658517706511888894178914698513521645091105973361102957221290787821784015300865091512567571564440788053256206450080968035412516881962039569923340597961691601835108130982829603426563329791090588739748041994177536920250585336587201575842511569321124303449206679336500272073900475001126397636841913144183975649288195601366969943160065792538170012318916090809487194541055278565377678718332500892240858926892052043567258954892344538247898560476901860822821346925365051196450740145301116863121562630836767773142285576528463969523320337444566375791457384088849197596344636028985798184299902929636103155542087636522409851421661083962322564331200857168766085919891112443676498559941430161477452912142758815060103834013078882723860747353871836766087789791171102004711190862912144400342543686457604491193811484383447507642289219463648839224321202634997982870245644761966545699678978000203728969479435993529728159081227346901596872272870949205813723116935572394093622201320975440222184961480227221382529879697570898799516688837564103448716702539683785075183432606228243615775082037310269994491159116969990090014378577981971531903139361899454452768654006646571150853465363463285527111756152368395242162406518468744551104223820855952194356442865482921387536217580864838063183154275777281533069791851222877526749914830452120809516857084730263799295436125476962425951765161856571684988512650724929806361660722981569715071282232642763840596481529689566606520829690669440009073592338219386607034736509691862219029130047077299882549556811456312682511242949036799882011126415740360257291706049702988677912156556560508301622144643727021121663552153922346426079897265791931582331928327107333466619093229034006977164099003338716006289608072429040657473198210873341562358704279391350712244134654621763841124456822793050810382357990990174689461055621485641588167177611851055681159095005321649366271603514750547516999701851932795068082612645620946932625519739122972171849489168678658914324771182584155488999810217083045623426801126276455981331401895864878589514009034824742112643151954149257437403396767977110108789207588684984206389689745011824909182017312275708242525428697358751835949454420978875912861083474167014404826426526844555887471138908190571242032650947119845045537322086241957328716091833885371416442793168129745717837593240506574229436379074034192358058630626930812555847732268656629517489700445998692536887627573982233258090711028688719031030846095903214944245287718161065436276088056327900246607213589951066008517751944036655994959012053217534252319681536251629505099764358564359929796359886073135173264283989248422906773871195276224053244834152014982083100613400929366574466824032865135077847545994157681126258285088134044800695615046899672812759515992831150621337140552288590730460214747440713761017295601366322590029518767292899145997825497017324217323081074449671545926887550175884654044514597432688280002161355199000280191960132664478633483662119566785651771719796040408226331755195583831704578503835378397515199496451876446989491937335498981511598947439632276273756228071078378054955816449208404674768959929511628105594572577985309425804495340579503849333525427339595904699085990221178065807046472800612618709059870817458440678307515882691274299994393755756665291914302553878627968964834827051054592234985548899840173557089753866227898254521846956856594574169519843391955605835701381434239348235058458474990351404245475577168009298666083096654651056247383732721968542480905778401855278266737632270024995522540851485211482094708833596940330648250513236660910867927291270061659206615266649328420714828859183822216579248410811523464676334319293194189325760515493313105515957275438616379214809259936462160539496615539760746390309776617749576865547739918450886570752141830899383798214493707725473166816471385633374480673743282755453451313193141802210806632153241027531677858731749275679280013128047616537699825923869620223340385988459273173690545320042429154883302751865785929438148623022569089231186079438094290983967793718552565136338580982881222058312038423548325690385448765054720304199695359283404851804075767589409863973363640450422798117703687951047063087242445854272399396102554067412027120548929198352524306075766258181538839576289269361522253425394571779802116104730459277171981113035766114130425033696945266970895857218791613763632840616824965513980692868258968834262155063286387879418978495331971027903787209991271357059411303848241182075727460578261500049582604473342045952415993599369272648002731800061113795022395033372173664424688210861404158912062422438145418004495860229359144432403408043959217835114612023731011724823306839939805978976160471546211694773658884754827191982316523788218088546216850358398540921998561992170636350211087792841052612039881759993353476257052513318784412002935174736456610098197678913672960214907248040336628839606474264140484938743607375466042550999928855225776566783087573956173540607657615981210671711190725308618787213079692009178033838954615633208339353267649848922279666706707139600495257708783322156687122430737354354884188631193372968926370393295316342897233110881734711799709989571149962004066128481986226406675589532392548616055052109950919425945457258432510214990900157788450722556698927714556963853151950227671852760012228886084326025461101628685157322439045776604400934683557696732198338985930342900345927755063591801398520255147763205032732465108091673619393838736375206458366039592019170533903087731087141912717817401768191778645954195690562013089136926860033496303273912191525678273845861987190303475079860063037313175437105418147354698861387189665401241746040859557944225283055050438818079667461787541681518514145040779210800430061344131765823773163393947328336096894188677127328632237494134196254029569372783724023481416611679971197892647110651659430312598655995998092242574432359510999805383569631329201876584924007305755068408661700067540132041762430229528625989841040614280967139868918618444582681471557468780550719717872181188017190844186635903233885743628209412522165263622365293508238706887466346450639345970268883900031808179779823298301462187193584140965741497968814059391144572724805109802627628808585351428469248749291463827489303974872874018437286707269751154544283176077051433994002140596065967579149727011811496712399002576640417565866512204524362426184124024574147692590593470280389811595638159654376448965831533605181263508672632510433537570288679009382160666787060727435710190470599174053465531761161958665295781314715782062477538273837673508220361615693589605289119657057264337002224454033062676975028117453235410646551909783298017509766986230468225809283012795781775219056677354485752620799910503119990317279778828883214358773532760684975121007710805336008456561521577978139568741728840862827582906927706819951340317150658732192296337051191092675091343338591806939599351233469239473081700123707566142867544972526069165084327272890121884569914625203725161044152675525269394435444277437104761557345476285836894747813291696846161919125790020492120625219757726590825902094106515363748165619051112944411721831355255674112912828198681372641547130398598112026160545936774026268097747478867725873047768653200272866062373668836214695173800751576104502638291209794068494562456415359489187440978912175904558775429343881811631750296588355110441435305420074389540122771820410911111997058154759198457213294168884081440488106112836419149123301956774318012820280337007471025748093643354781260004910881825953630268732198864889291459549380238104926268676972821528772620638352033537383460713678310217942542963289991044968300354683116091138865986118255006713152629295258505211051878606382948053843310703105284592587180428699649731717392041651571150491760954095741708908422323588621462792205752076899059684690509259060845571747211491796998060914804934217558085527915535416110664196666695512056417932121546670233975701201987275003661172340428129657861610642241434515618304335595289514268466767646443503207329973611875723421564741962407919945295563005179688157250982016451739850756619615733170090757292596442925507790506717788246890448447160058001022531096339591192277377364626769574067899756770298341988800807104431802149815521192211892139902627147644370259460220564227132462541997168594232573282386285364716399094066494977102694227300387307544188787686307673217096571192013831647749226400111244333153696398475660092580594468598607983364597993946028557464668684968263445076363557655450672426364801552429399751613491881966921556680102779093716796289046623446888300378397040075902728649728780134397843745675325056798437331877954552926902846065996624018149469515871797379598481547594810342603874938569536777844950098061133427265872800614122117147909425654836746638067567730628575516081101364083494970694516377692893198660751173840042055118778724139008011342916965754126163478331765794701668851027824851267264222075652016223092028965679433622390178954032622768777293023690954341002727233898650900997158026580952845238644827744870424811811175882218602540587139636272938953431470737374242470550037114845139070723131779274230218561547320934867419194495697243848155941430953477955182590119309355399102672224635918810566483735670291285841554881549792988979184693008464246854061766542051463195548805798392247260818891266880935060629293321201190680169171750261395963067868388429837361385971834082627975179356298158341652282183619248522608838525437627462134089009202174784164748428197046620159397489841312364013510105198697388843343717516855939960955203161076237646518982518274279089963952216384367603674160188312394190636998932642337960907215224169175579033393581892544601648578002874190544462865418610048610080743328361849289398349909375239829552940076455208046530132619190817021973506077086119678593597280535466867942024171513319506198346669112342794369261984011838767554208785279092640273008168544164542737166257864873600333847048324773677004003255292814553607939074767816419116817918701338398224007162722490081978840433703015147086306994193263415121523130710031847841029542784638232531473991204947112577020834367652252579134089071038275910872883643943434481226510492598352244693428665863377641251193123483541674557471575591180628487624409295506989937909426516135433928239774387636858991457629395969491231724375321882012629344625690064248645540924570596068153730067008150473830886727016650759319793178390075541622558342324511460480296418681425178757531378793044072654897464492097251742503416814626672543572835798397423203336184755901194654110456380728379478103859051031977310664010168541944805735858666201298491074601747333477515466197229807849428503138488217992668857722574744346507275726620740071688399487884250708124362446352142905983876209673916824737300793119052052596032649633958035770761600110909652758446053424671515371403758583615764703650826885826876405586778514257883857997189889814490620129543393974314226543230769743704960129079473807092054862965472395781704353688137982649958222800127970506722880386934133951569897624723544796574354773743501659524164221069079506528927036998031185324485273159456763764645732938233686792889871975159634016060641870589219457942438137393655196959796597502066786780291680332670666666800138010200685369761418995767897533767087293238022211932173690190748697519557088022614041273139665671671391678487852809642035253510850054611410411515010871279919736138061439346141779304324798576657994190111264334919498432437799109728203315466384650511960660796043604466833886154232941076974388215378933263383009408166805501770350019032211700285025545005759470487011909486664709915647249231960793314744869056672097235953166306413225140891431675200011823917382416930969915207102034132403573316697416582472308392028374743296671205911026080001904134928321178560401607747695416297043400956515520535202245655084951235450405986098999283003284839261253723088124177058053588119347802601919755341305559796412051733863827347621767829197921418036088815327624196196230956990250684038180325553742973478994688855725112702231053715458764975753891502153862042578081391513294037013421126858000127496755188793566886238981841890348416100553166112201981123239671566043702547198754059731195058295532766014724714015887654061768590789696726388762235983387118133069010150055162801221256087166101099976676075422617425911328391523956044408797257092261070994865765417818244000578792096045902735379961889016648741902486462698698314256750842688172986990142028923216648547497591692593975090685665602681312636205362618726102362480577867832707460176105256845499534623543444554158799712405006885876769730050191596362949157009545976365499658604819201123138220679258188043727514520140542925677314860942434514576480077739385218793403441016258582860337883986535632691214493994464852851622218091919225947413076363745064053481051676857085582168272900231218592791878378999652384697555341691632659644372767947809328878486335740975107614056934226903407226987321531347062719460767863377480690208632111055918004946919212479679181531254074669090781999208757640435282005287358305363415211554542025833720512348860350187497806243444886916915341141804665869044420287482403024831295418679766017587404736984955963194923667601965735180944464580707012381746738425753898055135914070684003677237003811348260971829480636848342019775569237032781375599610955753664286855734650854196424495913918117992605385148563326471095503191652595297205687302886946279810329921279287548273822459264912979642605759939533179846778791712115331852562244083841793950510740965303679655683008686322286200179528003028826604899399278748237037738530465648593895171071588509983406901418258165465927944151897620246370702178886088607223512975118591277057156918513580393705127611231707514025475504143441012655886439192300211226784833132002608423480875057769388360265559310432340721935504316931727668490522854691921728571170313714044089433689303902513296483263203630279056524452773541214305353576095736372441648505634539412901151829305348894529432536190800819402723515751831856571480951299704850170457352889555306110963406217256844761985282472670045079066122394004447530199944582218135165524856803701319419589954060236063064183484837798879760770040610183140891767107719917107898400011251261787394880036433406294976906429869858006848860708525637134987667890993181781810098394602106888325743148739417355397499194663981023675088748525936959610282401202988498594403434933536485372394342420091956486209328803159733940487612786015593340753920387042088285113396720918097020449946365274166526573166048359663019659742418334302070716685266952644472555973895406357040669538199151117605199637525871381965779488420295704822962123498701618572941027362584210269146228809119617621337798342767579528137056689624951188755396363751940053307936453642271905955721236470220135956280523127780269172886315630179802249910128938422577048414792930942673594152480762638180995657335737460788204910314846554540344847765152353299923234371998690428372920907633393456716436312235746319376481969388982016890715058919713512613013301730531427010379147367273796710837665024472072838344948357291257158870198965716772245551154199120688178550411250978625244944622869641346158103813872242601314684904273791890496328105299460011296888071990910063997849446502728880242766474976541078288588218572192876853119693072975493785157585857401121769759212546928763734070962357673762519606991634809772987154831365902504929235891931810719707503809770090363743965721878324603203573017728319904280981637124284298151660558362140523793329077046298778682353197570692694393570258746443776914029116413698858275576095223778993855140984117297641348484184189029224530550376710377677441883431405580327682094357121734530432801643279900499855424235799376064202333841922623237183631423135253078423403088780626013084958338713992013853145674272998892621065518577618913961137492951652836102459769959836039747578085208292757244410169105944358022687344199319177468658409329480416443156925681297321636616023719397912312089587181538747520570957354082083360524983313276379838616449724837831298551353366989208811631735903267329961511659056985100244859989462458035367843808986026095421561298669191002309854101624225378095996004510015130024353407144088113534156000750276601821938780118447601146572532339139145109957031968212997435443103609197337213110324042452612039966076860840392514514388146280770020401768358775970767975276471605342977193480663080735323820418554709796903434331791357343400843352454943806557245361539875133808137882815986404622056189245673129644793245248521429885398521084136122087902946392050608862205126602548557166202852707504950747892301772237044935031285413704691652170311339642908345615147114557227295787064743948630150326429159959412729701274668719139168463821122357355116701614853573467889063847608503922847167320048895898504860882891263092566129818471247823416181245450053453527084371136799767335956251544491519672065793903311877080186751924486925317270486875416749434429328768708808735258960196346979908506150072969295289209483716925666113662249298768102431820862513561860797470244434860779803578313989117346910773406415242827521410862275830755373467235152046626955147480078141533160202260595433249799264308587120545172879644229509921623217270621549517651647184792330242312180118935846542288111808139165742488781454711675904359732334891514115054643356408095501262768056174331463292938715131860844355725318333063750070798798385261694052538533477560917971783257497560221615153004541391181696822233566623920758098956309758534488146051854188444712801004545344162748422647208414245993328639218151460866545407319313688814090658673789864630826861558715776420606500984520173670409691729686304241411283804138077383324078913311235273422386254513132834695678975990310758560933514743097345299502921714901133219806940711309756543908830192460604009058900875664773540815642731759658079089736442537559310025519791418485590868566901203933809184173560888947553205620968010396103802432434808706729592442368344296052881133532080676112704755687968151764870578786935587694944404598203947749931337039950903919296955504097113963579007628598703472468248635951278559059523624037059599376871041269139372600177792009444268358206857471887217234816579222470563512058375441569022806202007132353347706141047394371547134571809753130214073271272864320405926118341209981903176219135201467180449702017617472459728636638071055978757585136654960112671243533646624446746121071239140726684596261558931689315535089464995053535911153688601100608805774909957983902061190111858651325966011433450868690699050089692614628031556352633966938012517805919380289372459415730795188837746254653177416263295665467514804158215721709988977432154708654055157971999817743831993419957879047990842436488678610932372115107347947255253349294657780061646921164612773764763243772185533874002723963632560375845119596842543030680185414351577671048376267547306241961944168256490617331000537196877618050576162596641022240468662836452336171259332905824983028848983844986370481327065964045604129898340364904113616355688978556184751246360013671801706292552941394842211010482149063925933871521887036624260832753162233822896232464885370032962003286585511286667736402793036219825353311871031309916034579004314035008270862579380321258632278398301750966791084505374101480979800443151752169064340067375759750911284193480204535523434186660858652184122743406761338395930385646446138043778133229884709418228514571498794060227498487782683262043465202417150937353704989729829264528700711365381752175703463667545409052735327267927979354064521756641464382023157498056473783880919994515277062015303897122185107359310128424209490127026744677823830656361773764554333367461618701020577326701930605866734351967104401657846564864232120493083585216131406036609272709098118914189494900681554095772665614131031457807481478629880337064124117619631843169461612136111735710382887477891687383899570400079654231148123928156010488696775302974003324449768952710016266055952846781401745075564039156971410387064565087249419647943816581411935712427363255717263245619234458042821457256063577889828260814799610965581719754798081395286943546666416312161350800037254337477087571915511388299113430869653989438573496992938049372664603760012461083261236179249314064676936393385851714433175843913713261479993905826733892019056945579301194957901540363608747582273083280990027088244338407512852894281875031977123899590834283315280826302205929320495595719807671355372307844917752658558432775097570959561085733816384513452605150552182859068978473559271379108537497309553166778907384320705496558514824517668374674835945334617678808214221500483636406304604532022114178245624516491089048577561367321953271654289111511179472353756436581846245666278614686531102093226953574639399590514850323528324270257469575117425283487338274082829529387429889450299238554196864896126000708138771859760753040791934323153413324773567795735308691700757773244844011962767034952102845886839463287054505420262240271171717623254839372347195501384803241456390669870852234119072599286554632898574024901866155653319079473511908116374427118996879127396059881429170811303367600660455727798737573351528081055562024703397837930549945704195702071334346620093865452175184771287263295671797862508533505193371064483733812509331260314470266857225636134620104166915580100251106314302955522125777651064512760780692289105367827408103905691611279081803657121892739491302773897699467619011940108733084123669582311723142808976479613067050309625494963323200164649634832015506564563970611341409357231642551468695752058445111092295885859262952291900062240493806194199368232570860356696285506593921567197811061698218930745321237049398019280175946952735511094229922744025896096063684628753661993730616394660423005275029778114005296776140078122821799989640812313800459326883861199268812818224036571907806622780102562946071160419925637546383687182708492020773046468405839730584109860813126473743412501075864255089727072146042359974217896463479050702109372082384062185127618775926417429250278445394526603853355945570512990785276269834670545613122139059620857854836203531423597384345688632368003108223195522283711594452418514164881964796853328573327275523358605324487045658847696696879268641532029971425647270930964736726316338569691264014164988455548785613966908256161779331282581478315493219395923686927320306588534744874701467569380581967571808399433249267960616920080821654426052593037195684316492605499431399205298158087601512544960464270876569839902903173106680425524740130376556886233412261166889102376761611707683548750723991620712347389441780798342792946566304611787688730239871909963151369360840645522464011557543560402136366833076539968125534339917961855418572723267407276741309708043551762495330247211878204515654494842598820590078973958583360610329063855596492477647223395634821869664698311758178690374278703437059769206205771328565741872824366945301343329592573606698767390407069459703146408688650142275247715919901793862115088574958353980955835121201060851291579477920469286163083810514392626812842389826739676928020016667965234645887936705042318835830755627182910047512502431240675302252232460484494136724723900098617693561561165432798938136209760650658769213635133979356670749528638048155308766344389071471180522550013823796848686353348950437676653316278076735730913178519838556816940286042601217480826689795192337261055140573592674761086938065357271775735246807599365317433117268195440204017186903358106894511439507822895271032430801482903812265210693952897234122290445524898331174568828028940368736327575531635017122934560352104429197495544571910954094896665780338152915065823793824914954225375748463038026439062585288428003047143773124840958982939275880333324731594596119890898450912400495113997021201511801700180742831590698706842956146647178832013067195384839973585631756062391246957390367942708226081335819531943089097227760946480382680839698387288842831259346051251077926188828739417461844796857147390797967373423748293665129976957550141097539510932754282070192881267930373771006768211098043574484289873268196391071789468030346145176800154156266098072826983185885264275120507855513345951514376649325034424083522024171391798351725356919364435594240236568850230897487757643605686886935982247464363277599790786692586995022876311219146118877983184574978543953312051465651876233769986553093798790884524797720135996862441617815858694046369636875458086651244980752727628927213915748121220991300375493536144692845901209704946044146131581735155585105837544744620610415149472935009412395265647860424761363780325586856304059338879341774394545465341363670130576353719641767189815669965764523501447665750694712246284038380564230910759713703681163446645636655658980035792692846882716893340333273114901627161851055015235836416167723813146460128972731263490942866141041212992626039178196203368219495153554089129588661872507108229649787375467054766884761869195383567828001896299417072333495036574551911655367580095347140047400522869807886765983706498333621378266008098842441009817046089481089071932919818272903085155475063258992432989722924073157771936022822075957580039443638207002789783458886140133081730967147395443637574895114250799682274111782128802311926241353989300416782754656500050275527010523286200128744933038462902350249710376456808002117405415076858469101156380916190557420025987874253156597384800617370314957412696553348753709309038799305420887621980203093671355689082702509852460228178728731217447635036980707750245587139113447412798533576251839378230286073347532667054987750460700346647150922800960122038794759013539980892511581136109657597778964917835935700032891381191013853140388586618799879109498339871407140024169186827127911565688891741821457257603529951213737717617061175286922595335925154897003165266312355244958856932995696662141005460802974004289609254773441273441667592156989660262940215800300053075167072302991196916120168249875439986382189648127346026876013769310912099283229292126459040086190688310611854740248408251546897288263034518320098120800458961916218708689349105653115634150088537926627686016070801847815318846890862441167318276390355128698993251361443473802410457803056073133496460869102724822209277842643660450801584715367068329284657332143644808586368823009932289251830669648679831686956565797571025024006188598043347640280451819711279035693866089761104079066845868867996833759278316054080704219926332246340397531981528152345297196290357577047733056956128406473854680948102833723045461480611234487250461152427752127216342005888727063957582931891121159297890141602769873729689147571365407648404075271794039266376301343991186771935823904326508524848789661401389223847223141693810159672790717526917971083648323302186557667546741955160733254842705771194213862408198677722102868402652088258502591350534883890034906249681783840395866161480969731231594653131584690679776110157819346020577767863450977140095961742570066038249403102432926099308614680564845792988246504935820347109504715876919108697155137244870819902595215339858455807198596976405663242549185524888771339291256032024422808696318651457467700962346668672887636322784969549700730167697046650925859636870105654763386968787836845458020139235281756846261813527589880023218419754220762470714189542062248058305204344200538383001299283607625784145292428350744079492798533117846831649180153070089025298091651154795469498569525086145551014042735648196231482312527730023078560710470962863404613242286417741728095909712827709887144088224778571799020461101814010858747512292450532239647016484059990538835051183737958470628473669231899496482393469812546003701326738205700934505906796451631135152008625395848974844751105887815816263997523603933838352209510366931624052190438632834545303368771550231294574521410205063628004117579579616798312610027044815405305205760962692136930860219229847522424778609274019005042209036993004820520243773810195684337091016655216350624228828651183083245574267500733298046153469202353344108772150861294113352198697169121477900410446854967497012491410395190345701953989208020699625354010015513091235792144110320396621504363480702467047804651603160500769091813695267821847599661153538999341657080438281641298304348724521412090420926481501660810669632380027054129281214198520678092886707096653226281395843010887082428551901348327642434156785345019349522772806161686818234313610104724160670131919055452074701210673790941025261882643347235731191061437297964691254708614303147152382712196955872399858911009044538111585436853782298746679291805816673882144460359727238510636309461631263774278591022443316162956803172627484049289686338822072309749424440085193141873833953421816175717077306255695132313307936609768425750448817872968122034484888892484025699339314958191450434754550206537674337760453504086390500879268982080811409477113585968005023290862684859601668422331646995120489102399772193728540099861932624346893499622137772836207758124309492271916053651931652832285332639324066536721118619306548878722148670954892055879670448545569300799224589343091048112692139046960248188798721992598859684910151774597626980527549780238156917938115978786570590090554074202600825836145530477086851421831088705459796260053023908742878549170346356915288091091554978321045934254845077875456819899578465948310310743460884920178699741540748181627288199883189809200786196499382309419837674470469842510664980046474476596953412009651513741714117685562049295908154169492978988955268813338425787924984226188783114960550688023905513446819308222893207170451761345121990241412072332247375287739544724223818715306681623821149565366951204599526939025547737892006694430166573806019417715837886785358583196481384276232375714669713429151284080255972274553847384912665109546450980056737077675055250903670695654638583372660327700232650812458468026820390673557001381860900898102195979440163603685400777063181238882321024962405212193249537839875220377553425899007791772340824648498046586328654596358640551432100037689818308380685271352467276926307633986702232420996133884919629650781079674127002109715177374275578787122443801023123486272117770579743486695891482495714903621389851114957569045470386415539783952326679533140516732601683473190223430035273119218766693993700133572999877417892011885501101907481364007098129566557955378537848783350930662624862375293687509712875573829390408353744275260195467858630175010741521439046666648164717120387401272366521834057198070962072904284485190586094400142232628555687750548715612705968558999290458524135379658592843178476665329229686079114577433296658959429776509651349912323686506512933144059964043961432346959529521555366762781436559425141307261063145363885642120859290202195753541220429047823985545130416141733977579822744936976112911077277424969851343484281284351040544610914276251302700097811080466745716624093134863863263119148509880233210558573669497583138255680272228214355347388517141576820873728444035695711126680948250806941439937022391260872681767776729958052951693794253140644160516472609227429219624451514056899098114126806442695584672420533687605876522585835342991561769319211541017254470589521995404390393334561189323637356982732795477483381287849813701247888274592418762807100101291206936712285914314615985634318918253902232526578568821477732221193291302303169361988988435047887046319096380031686064012386016861294189927995606065034201133003202618245355253969816969980080170706543970073161410960464524823516888313430882363154240026586228418290152040211046744618030256692570855798579007316415729302878769920449251092562226481974477044997237010016944863396921652343752208734304104598583086938109900603884618076385926160771261774063291438428681943280939682542490718449999881246348150976780272891962316967618066372596669708048577513474225766888576906997059463017098061449504148386466105696004478928560265096057702500225266582042782277096909156158579184724090714601826353217027616447972292490299858580026174145799528613209038338295651368569079603081817747935421429743170332983967028116815499632849255284728397962296793694974435352200224380466441924346397399155303528198699996688538759652690556562055673303352552854442253781728112641149587641396255415029104900354588661124841618896000380482346393767014760618914612120475401399833761706005743877391126396030128602975342646743677337872531719392842325225512009623633207695998412153234675526025801843295922284583164268328962214164615978511521434774824981332236597907449507419339763052753880582491438374864201399430240627033850932625037133215362507132187844893612744596063095381958998410945944926062991896778398054944033130099004020699449005063946169385297144287739669997640437761883870645604290460025063223444705158179838648230071653858355361803124597276826453849206611581196639156092589498777160937333436784297586794128448894551590744008353798787010209746152245502730255428912588857350782143033998815171229960519142103370678533928390993868841809950986325961955640356451216582126155005594552847525377939923297535417030161431943246652976241594954321240052200263213562850337439448214625887042496977641797454846896783781272734148249106256248381909685295062718958127656948816459242712259322263100777384538074710873618895048834349812444338721667435667276487682336884455516886483879742499117958782228504077262993637411346150455135696846984215046687257118702182483184830741184814845260163455467941205637936175476160358598793762317558957592696169850792253244210869132112477622430433642792730483603684390406283443637522209548661792898367881656532644640274896581384903586804342423099981024333744598679597635132993623200414416310740634334221461616397648281914997608525370597005499963341833900934794482021083540297876204696052147728067070642186214111708696540509531895401120602412660710307210487799744999628540531316451617269180280522642405360887368291168423748002347930485614176187046988772600503895786710695559510767249863191433206891721476807174030333182217369459247837451879667924598354196243757646247649004093133810789887973799975899999609064279002684209496189686518279055192008733842089195070735115048581277247683463907674346096510790492924110977412138033968807669936306488642594647197665327222574848604509781717702975283665589804123132543378397540326649297562208406602446447333674102947822733890161427265384622016999775100254159609997360663492762001392099416265680891781773059138322594301923196552853553124051519857658973801156165568838011415676452280848438126547573252535107331217761564843157218287323946783141317074332650978852350551280289699819459075707948516753957455792556064347498522273828309964731010272445220851948877097571366322235527767258940074804768812132576032879734489831209025836360814706454213915624054745226621867257599946468220069237699346499268577216875899093681072955121369369170628095363178159820753133139467530147102350983807537008063633432636105661049781121750769861505085756816821162992643840518492222629790474934658023381361631167855867405655963536373878187992686630348628106817118201611807100236605936013455699289944713016590223804155828549322555123191005328194091154964065304545109958213208402503521716327067766993651526619057445788030719488863073076570479962338686499075237559363045864331124629418416978641304092503081884715448358043208835435238420543924400963759610959603449975397430468214823599323268671628348822947304186070137764407035338131248655141264892513423474043941621669954105318654793056404199958853617958553042853406111575220576081344814862622300878484579030142729295246469963085432051491087933744891967508693965819069719830150118028753148413262779680885127617719985452977003644569044417299902138761062792182867642367743256502327224823452865346637357053938537109706718008001773452517335799714459243595722661469265065375089352982000335032786453367772145605726135526294464236240482110605646424073298070178444851966431786690301872468308394038696147219037623763288121461704133878128884739814107120821005957559192025592013532979472666395074058996288850102750525656774376359266554304909326487615480272535402245380048768850311945608260522816741137743422144783839070279134977354537145868428226890586218965845814359110725278018867357852560824797836614136968109837491727488968353758104364230950318964937593929508391315626507779571590255002569302274951163654599865812996992211130116044267872846992826859783193339825533583377264992747769475866746284231824271846290105219473021571239644932074754771899091566534190416741333658460295025424109909523028667803160736419128571076759043120238558977559612178254133992111805883965675080008332990103523168480333377165072311685282626138943465983352733595952455659718008835284186459905933859429939869157183277415730801418701272671119145400898866002836968687930140858348174438219072299490424144688557949574301549778529755538930265215188412834068907709765046511083647676256884875812918416040560682893888789331542674234091623980922947864441369318971727773497074431235031921265011553287754137828494081806547925907555802589870576068365413057420762493566793176339550389701606662148096262848671053620340886049111296001455481394562007482396981212247878205451775186395028968978505969220554284585810842230100565677711934906396628549354768049073234720596924777194697815281184286896355688231166334311028006151897691858686165572403240846375570662085082303542887642331519229901387519633454027789674577708027547345216567922233451687507243078339612802906922357942915809666684663483042453552836440375429792245215683927848531910275610605199990333092852496254577730255453187268662293290338631403556617023623037642871829759885017957852311132105588015675789737998256328442997106721753068266879482293186993784100469566310149423173750800904978012685298243319772526960791278056906343664588609208801676684747087250969607228945445788326100243717164826784393811965504536922087944351537756793492704913703078583101755512731362318410142811315903470334091091571846072245972221441599378570454095393464735329027940272810314884711985922466439709638110954529776907816381593042270756962568582525014559823892613123000392328133788481639023470890170992181550425996432768942982785074466042778845185052430480533602829672152695443336407116793554063498860657083194102457668518655587413148785266909353056369808814368470036893361755971047558670848278081974245970234709930198068334498296638190890083308569985436902336320419089813104261334770816998752057504627849589282777284960256312589762038128866470229166119007533056501056241513581998188149598720583009102922338266343304651106258361627313417672421451215410556782959174013753028256571642670909974043029346552341826550660218529288896111361365298645247121378813642036004088296727900666293044727052463126500845042519123856770559028745987877634546994751152987618583432305837743946976165007940392543698579381328353161364801793452469347497111066303673518027097344908220699596129371848266230834658277785825473801494129417655567855497427254316829435182320420093332294193929717941693703728339764425600702144700068084375652548774516152016792114714290414238652206970362800186475051774897850137610542953491724804590864982960165878945252021948153190737556999798828761944223910953003018359668071096541852313225499982926440702589235422365075755827400837062986425227661683274557167713424318149384426311147092687969994915981653312951724526735929457515533786886998152491682268099325018714987867981087778175934167950290716319861525060220873552280095172689666382322511249371636177825609483114818000922433174099883303107384858853787709619493440507281362912927483244782293460995005733836708224692049975359269774113064725830554726228179400951572342120022755383280940414302248242030712452443892317454935571379792046690644524045805417444701585724372407939635176530415447445392783290024652305480247686773512770496757103486014539668946476715692146156090927011081218716089784633196907940089198138467624252570522147331812455479446971583572567861693028350134543183193510309465682656405077398794660112676556183703058778304417459794607355629093527506925159985289660583431699103360028002169134056313648878979456728068925968618957088657963213991358762942148276248880007663725419034048596702294199166190595340105678637768506062320998977961185319205157803259481950028796316279265723012833234205454194517022763309847753549163867061921685962453315669240364044059021835196209394115455488155427741540097790692183598807500080756444259257744041421915729641106952047875421143233654718497473141705025635959117582942344764280172622721192874107588646305080811641763876537835783263369894611548441512238741271484520685643925969773901623609719526331119137537035205621864650806373912707426965270246728855265101000098219560910304918499264778570857316314378968486375442422363616295854343978271359320265192967875333187853528423040286793469512682544547006496585047346097182527943304260251985887244258259838543405427178711519379517881633633327309347752643845794578175191929871618241392202497649920504051114206598333883827438260935678727426353483557759831815132337256944762279030786237476477547690035825963623567940486697056957039794494316353753114797850093467480118772646171301204967828499685547096008285275349801125627572959987265955553903513389542136171718481034483261857001231575140893304024992688098915995082899128006024071062563597940764214586335760296240721117028665916578239009274274227535744036223199956001758352754404496748620732744803916974573227519828442709991966814631578267002479742388848006531952592014047501297947543294825425643005900604912751413880872876163224518538305601522989090300359629944371225865555994002076513590870289811290867835824482241322513422055109468272801114816256462286221551173695952540579095520417241790996286507318026607030402871704024812393793561691438606338199337040563792434259300115240794745576037092285746564611100812560557012264594242702732746506793669360988605289350626525728689092461726085146301623244202472687895133498989042811442751708110661022051044562921661087680758406895672802827152436403726589842295903538832237862878310834843430405715286287330213562558097996543638350030565464547530574317380528538870770298070802359693774029704596839623280462041303749484981877481237977125883275424467057178072609863146665249217048746979245513511364383489122752853711700780170921542535088877779975608642397686747053103855565101880212231406517620690762839764758203526495352932744406734437282804324592497051648273156068883345609029183173767123890089808506229063023547301540158149236489305564900292728817924320498909325601096057878540709704315673274232881467831559842183151763863469851885554391185858618513506275469038921639147765513046518377299427996639183371366372477125674973193371803490511100477029130173836721859807723500661724489869676102956410631135458404915676829311283117963741107062886801062112722685352476842134559499745637964065866234827412571078013003707697369590361024347315675448226492872536734339983101851576213342181222366656700081589329991796938438872023261468270810941602992480667436053075771456485336714355951637350408075901266350894905082777744673840221168995747704244193600076672998414694042120789185473374421143649764712761697646828553661154643238932453036102375055606462387091569620553598705729482984888260058377419529056808827466594560523547739917342105483060374797318371231148164167616920640531771681120860900226635957916569157494209289667389305293966532715603866402585639124568313093113265329156356901496408496828284901109545737981363454634634479169882385977190935527309014823266678668333479162003870769782429379224677622923067691197231022701535153533907193869691795392566862745675193229895159623376391391700927866161379359946511646497071785376540517724982186855947784252947356999755848937375388893607771257448476001691612556806738211948361544608211188856835031153588479881805215058559644779254250734901010889047333355979057777122280331842876897314375356418877593540340419220080419708529635901150373160559940489050652742346018442590192124483005931553927818640964295413411302715849152264220071223465860927241742703605509934153328566799061004549977514404707006009510028567808547515701124113226015230969546192524395157931301613571762747111192343963984720709673829665102340407482675373817988840984040788482968326629665813331316294899903068925847543861028851274836781094068575376882955279295306716158418809843489349633660288385639244061713661992621693999770669452584750942463446139938321263272308391879145632518680748800143389264301108501246056936007548953227130796016710925432890728626974233458886484433776814522571244114740256595713683130573931278399248721479664088634196472380342652647206349302551080622299998520383354111951695056096257638730536905921395621281899158470557833929301786238351295389435941171407731822352614233132199795805664958089253972818076593997364658296675769446516117358964976151310368827950050299972846441461615078833876891423814979940474385083878104713038616840789971700621898956731821077749335975796876018441211601376536755399847349459214605807996067087231685955227681850870661678542335289624258081868330323313096816287110016323061155621438569706625437179611895689034420698057939375705186240353030188708988498363929992773117614440409065380280058965193983680335648213862909236680749271031321205576275921261432182511972009182854718556644279664409004973402425088771414220065886297920251870376259747301352550464502895538754458658217383232077076609199694463591841893679868963090235067661577052287881007042718036666052826331471897946531179815123646642592548064374228013720531407380296570092235970382860195047457610602957138418801797200694308115144003265077039914320466558981344130141412169394953990279159077531091197102960659014997686358687377546302203201431364368827314529787387164912834518030610870054020435601043255999172993424396895868806418300445523439958512869853840883277612254922381020169014564306511834326215753885898742451333601571080149838141201922890854209749666020569174959837434985500951237075107790167605405390740532848935765399786444400104746375024298402703923674095762899642030317057530700773314347797301356419989694696957935033989262595660930586118321709753330637999440774112191975090080447067065548078394743196225853473460503399905134808461701436508366044553895541152899214198234978532496137464083638595267587433703136838876415552985043369023981748272388322127645390786210367396516468595194395699520082455684825575234444377666037586365732282592259354053349058220671782962227990981596774976943103027725554919193747260903163368005511228035947770851543647556947565085953318082432050783288952119229460095474790985335883424422850821998737932458378261098147352886567813769353905517993200195013389796715743510054311961364190161996519819468989099497950976525879769209828133815786424956228116306732310905644613512511724730711793932116794360481880812484630328791838219683618145303952701036210976899338159239461872218866227463916920309424941509143542101180556895780146118106478706803253330387863208834912325953643105932344551964091870276940139034591794462389575715143558619711002454558677044252910824273614114652504649305191042375858044649547830853296959611201697443499351739004227939483281822936046923345050273117468430906817235162200725957564332363313375548260608958385991452496116307000319939489811831321051157575802922482806672961947335617448034506655063623345076078094654224678895158051286437456759873587801641759187349649524504709613753388433989318815353910272144629021347260181510994260369219475658416852492359238306664462651560698661165775110592501145969893611955700213312217997844115710561599966226985747704988375344009078947181154950808022881063212659800443516496204927180166010616162139327367077896953914803031244118118670979463109580357645296313873552513871121556198014181243021357641298446687289575138907924246600906107759558658299284565047480900876194650798267019706584264205918331559897353945200823345468985927846901785223013359481140961541860037830231790584451669559972887340762779541504778178248227395881103516516714716822117358882507440629630292120502945739557325183639125111510782189411397595742582793496419157655369792072945314756739302834061525007703896236453555062940945577291178444424809906573724000295347932255528758028486637443679788122982560245383855857214300673810200665085209144566093611548257245731571437740996472863145294836279572187340271202920534095176056013955250145546045152148165647777501858915587651259553890524537016100051174747641240447744339242705223000742502070458968849711856834185764000663490845459749501215652038249269219673765679002038931867261192619364166000896250913093786075477555406000034023851051293147119006704740452937935217489862331540513506617030043164984375760695782541780147968033615629400169109817667574803444788564588706907198214295381062503472494841021668332293666740906222615504653678688503078658931922517468721623934477325015286336802319413644907000433384519997532330417757441809615837858294765267513707919197305104106212307455403443361244298225802383183148086948522894318679954957907592005649020215348790071225673761341140439229231671172673198215258346063763927536196898808146884417821238634263331081064906780448862867527526223767569507879908915646129768533894734803745192445219505867841881513236491774871185102421806553136803415924673362498951102228134434380643234867366147083342503520155448320534279521293247412113976774887830519688856979527952257481006652365820886363600645794762308895645751944018635341220108600972124431627320703761226383913978241767819492029639091756349709319125866313660596660942147476511593448456133957906154851017971469285609182158105170449154272117190399161966977568131349587424444694268054728473501330442607715792501373712406215859612524053311062289354611631821371950237831805270325559477096514639641419086708588472521632411701448160477899840610766147379960785470626383350939623902799582630852339345078745522410417014098434099737465060253499540660054812305987956316483790778262297849702728211528582667168353995387115161517457067384168441985195465338876468549512336796071126383679877944583368221944516472600638594823800160599829984814985259964613531357393896575989495973311997950089439560866698341406384065891288541849254000726960883958401748578294516315399114326253327433648678896240909768386416180364430847708204097495676701251497232356958647075163328069403662991471570401282945569080843595304928685260333680693964472200008703237537705260673688623998874889282547878646575618822658845832775188190696808406583471321504972680884130690943058039374750268469422585985141007608450468851385608422083417799884764219023069883535297120694716070497083941922634567835719332062135270053187724498118783093792377281363487567945023582691238813797989315260576677330156099445430377287956199067242192337849079697580533713594529572311639704810723495950413537772306382591674052598134484330078054111715535917261527045427962876564586633355336415682536836999585800825277956300695293779252103705721068142557625251662878661611957320836718164070839768288250525767887574407070440966515933841375971480692957746484373834840926486010692427840688310616155694610872374523129200439776344532289830424626868289131578908127969660589326212167813152298431948581213700913186527007660271036764547965395075674837510683748976149107100767052904801423967417680180904719553310733011648779748920766019515492331954356446580807244021218031853237420666879065249548529989403967800057167830888230694831054525833523702154652287759811645232363375380289369791622420231021879159169423649703428216645407759780096210691333346992651104196037004247617679640688060758625289114268951451718634985336293802102194737286029402914067801343727225599474807115547865054920724637457653085110707226632125021332537160791417375539803640141595521522723071925462230880918380945487065020526249283266428056205994587971026317438072623226404220559870430519154111354613274337958104031442476111188584853628178582831446669496044326688838834879242151894980732820086616530182103335805810707502314136524555237783578747471818387404836775848114249237259863321352722449937899860729116750490426607315321141570836328261635039242979748435519449191023998921422963232024628755354224454717270127931211919236494614810176200416017839624130055249333801587817444624211364709161887900943967228129699189855458029134084315603071615682894067348431790446190357908168473067170552394217090349409682852541222796967549104944629817743702753212802230594686954160024839068113848624493580530973629016755112560794160549181986032214989310112824664570170536591628609218180740530474256226761676978678182094157282437353178327102557634892435609632399050071690621705413285740223174626314194928658683338659168235394508054098540461486398337179231226050498109022651296936233271019574771292686517576923197979448104677460129046219539227631987044546974663076617182028825982755494375230539365997574528698839217147190142834433001976925521378744625219213972087870960275216027488192641627011794223600278147064018737946940029890621998913791148767913565888506821836650078789895805402302422474792115612578334787333623267212831819324195444765523996089098864834218743177383944559640442718449880190415260480070473880137858500087059341656091712975114410688435697813264598154839430318518831371188788349270223725908102911959662634189595584192231394017258777047135504824045527135897950466914920877620614770020584710878996985554255117913642980518333350346698760830424716985638805577555658126192904982149573785788746859928657140332823828992426687187641857459712950110515797324161915192910814191697960982363338517180073579268936846899576169556122628258484869851254893694761470556792855904091492734172571739784698498710717263905278771254640795826618060290194553498424459221196400607007993803945401557829021786039063288580454976384981755779203035132282731692973516317556053033037304877672271680798858167176157996754561198611936772438286984630986170876155355553675579038562618302629509897240420906635323960528901476665699375712490718217683750318835937180861696718573340571301456980117395481615626944535162410389951457418082461093960776636391962677873124275422634726953769043586435394402571160269750156719646198375589427466223441209691041192133480567844278456745319405205655682999124916303729928218558356754389611216147141093823240362018959230157109307778263120744076436504277757002619607116932705072351916237065013667349205036995962281398274269066640720538469996949994897779151310848203720319648053070708668803227469171726143168182713227617999836326136424716120245785379798178986139206154205098585167230624035521716662004773580405127986302469491416722082625042804267353192005559423825552996172340714661456450025883420988829218121012459776851843267801049248274558151592892699469550965825764119800093246785117300596767572158937243440688924761743935243630400547144710918324193849488645363935583376095111977437569570692836946518554121146155093144630226157754878097926605895554038526128673880362095995113256403433384965930832997869682068528449793269838016721626288769640817149521536901196858782301139603607695423661762469412998986602766565651513783190545322541264383327258392542100759008139736916803879871235135033298772354872632963565223399914978662708964201460141613354531761860430213700506749581767505178396875528657684902643960035296882212721424508412500748790985420177515264303620042921719966764032163867941491313594083578812662323720485823717708903936680936578782230118866342122931655883044608042592066989416849484359345664671841152651112326880126340225101407829372990158303828058241303939844493313172176551756172756289639081902396409275323609661980271565163799989035404054648419119935411028223097782154674947073259057055489432300027075746884096710352765607662322669907205640046742056547337440345432939715880270774402990631506759108195778573620626363231495533765255983779709824062186943720349566497989680757374279815687447693410529403429768337340450015341988356964580723965093281108925703843647896712626182297295899116896297162364522074850686321034003763947715782618346296391351074429201138259216676997404836022224136072423998220642472513983591625985623951349594184979546045212161359824104682911909244193675296428794171323044949874591777638263886073651309775324635124115354332635364431618654127718452190925579877695077609988417537827991085136433293211110539346887518056910505214015675836138338573731688369874095002446396328455944795334550127512282073082720680535492973976023095757803669372129920599127363443586986933042074749477690330822108228120418417561303465163959915045271521403042194472181920104328081146517210285207545635237991898508948893749298057572931422137669150560994943989952119070244333758206325001700609905557865371097152902935015385277196722862780546264822500650801710171245770558654628876846462039510627147736592121346036513097501894341922073298003982489393195177793794644978779839261883286677320763023695288169713645700870923693621319701246565588930735342304599477676773860417025974214475169483097949954121143168167004314845466964661745194618502547279501608364535631628460656193339018176585790772601697576112148907392073993623536387150961653078931447186729572892581531641448225143699091889879138098254613004213994355795123224515275168728988899203122676123914467217190685437729026467618064065753661774669944048987664780801528964828386946045600551682559843667291166658621444619014967000020929805287445216088962727415462872536577347505374404717357435925804071477213579243991885835764721552495703704623215108432583189864893894366490710055094385518740909366919152371119814218542641702089300246121576677660111628780241043186656347485406907816052745050627652583836514312831475562535385566974741542118681961272731757181296313966191052655257927185569260600831617871948618601538614139323676191804239096310762424715502386162097131317754932282885875130062264274027418837062764298182299132891804202968862779980895508910324702534278548520018900930394091347841465698459768281893836930934402467890374777590579363215314955952447981818955169119070527424178956781286904620930197413462305029137434577183674660889090775791980046903658265937794418349873917924013517174542826435075948313800544244716041978256076700379025264402032152916583960125252789920894106640581177479515304901105578010110933901204355065088845640910704573111232725259159735136342991625778947377185765956930559449894436257120225461987655565216511235523433062052322364641373276361351352149531780196984523711867709978943328199233298585797178492482781377318163883638478480610667260131869311055081908702386374321337662826414198086606273791369053357351505670629141768400752819402707463027830733544515158801605573842362545774853680735220180548856005061723414534728540132620135006131088878800633862539933132075955025811759019431767411855824193833093763798165602489769302469245646119726541384336413876332409286212853512390617254094853655254940775223430593717646690064205662350798764952673126819604316427648081356494365052510688499398046322888923074144818680046711604256520189834514703439180323978219854795019380532961944727035771984484788684764825440553107889527563343638323015041318799299041790081826897468430273571414036401867188947841222067071053795146169712383424618756449693259869625774502899756807965487751555496932562552175596786519630641369189673035327375375375702771870339443021832012181267796550292054741151560766281274582193527332851343291586427923334589746206248791551671646854182433259517539677448433915584183480440221768604367600857540385312552694494768515430543735508210894438791875522426607096030541942287596269665203844002545370737477129589129575747431740200156057463750289615472217310525618099469976249972104828800884685936985407106739608107400431655275072004235446137065590120320292051259596792764910020161481674387228453339232832473251313369494165678744241871973544113221580357178915359049964617411846481360829491332660544026695557983960646123991393573618165199242858003118537940319117380707529628305115778781203507022965701198044771293647188744798343990203015411882324972709958700641698656817614069567769713035961234449644561918486994369825300179767411340845891665476077251593803556159725999427624745833141820416216113753117167572521418709928573908410481348427346998635871338547329122573864708257825044473565457634211479686245249142315846410084395119749043228271301481957007181457678082163692121406165670736382740194113965667307741966590411390506010758587432883074615556783646922695239665757464816060462571916546260481039497126402803579986580302897092901067040362316413145011405152261075785459202074026404634856558390994355943363194287559389291313579476365081677537991012700283968064451233807645542303968463585742151182424197451079610640419765593142502807073100156474825553714893356258773934158070182097417717588914775902509666490236220860405550602788136702572132737785522157330815641976834730843029808691214375361172620499796305786845445906129653762220182649547089672184154972572946149784654007234225253277097650192766166930814879744723566134018779396748572184010046965888908201205578752566820360165360810157683999682214528803625849264153001747242618032764157755678446760723945804131866902594768173044242015468764613699288975845958240558144176751469853795248692554780808668768788548769231929597857810802525566790384113266655977229246685274086387829458465693426543325784039544188022016976095955447915528529055958076563382019477350944452637130092135925393100583425220916693952626134235912867667859461568869843855424994047011889036384515878858514854001164989358277005284598103757071674192008991111359410304038397047229763176789021919805144417859071436423319123988073728046255488645162529606049375645203848165369463441436052015520535751096463913827230498025179314799960035164292274786689366833900228100618973042641032239709936585703755549399766180597721960215188768934829804007647916120065707784757309249911467832034330099246436581043085018051231967398313655149552131315997827716351602515080638321002721664460413705581986838264654722685113064385497635975024387655671066946657894144115575734991711730184197340171844902170626361830508225381663801927898363212855767866386216674505174109198193462604510190482348489225783927267913323059581104933444067724267681366871946916883837987187765843302830347886321964720192652311036389216985324252675114526709681183897243332672540703424353349466255502364596787076565904040318426797402692615033357530614637273130832851086328050601335453786987170704373357334048698064997366266758952225657932456987272478402519226744282916712086352296479442786773686888800357977028614065282713383731068202395416723857830844005822382646213481473066196402684048326019894756000763175728016943960655621819718376064335559299892703480512559929428866366814111272867394339793185970156845755598747514120122102808740850735054613621163647709374839804436684166726600492931738758142890548003830528711265888879716424737854093765200614551291040572750393164874177956028354551655180020066218274342450431927836584459055375492908926582811197673922807208141496953722673139167618005117548527399198706482583435787738983794012060274719658195467085432329546167398792313527731619060164395316997741366923149136455653501718868552770019498709603652556135241481309164736932029729952784229709272277655535840716406951964104645624840951410598837754626642197957115138270611285373618972422985262541501205616383478337938205016492900863845964832293935875755786398671835294443295106336442912928592668373090628766304428463043300200615323824631278220346858430330504353402436947278324279556221428406746062902950872695886507105042364056905979697576586653253230068736450797921028360887208582340337987642389312673734973333047686930740610230673797489197931606231795898140438135271740039029673088527894709156289191937795956403196578819417231408919117065184706711949718753089403510555286299672092046585662486443384001889012284076074990318532347367154579268766498288912693904259467204500108997245453984870432566731939854729105295393747842580873328749409927459638804032570307197655377468878901803594427440620361404341759242119360947236854938757842427243739726142718718313148677490265212851194224867382992367165961778598687333450361655486300177823349004293873083301627411443061200445206487363491480263354430518825378520943441602247416610670125095433466472246542759858141814667382938254006764889748214151139496834772534136330085861748214932410668918168360824760891007777716015223428674990442267321285699645918070909472567372888983312016717360743119224687960058812503784133521810821366683445194072977746296922081342560160036149161659133628454570391985348883186468882344826705182684386330080339752365283225428354237777212422022439130496526536799748205096365887013078929335030076415814709080433587562499213974438085088782590306178668750198812508177407563832152233931124240050028525527846334117861570500508388482611615913711155379952124726085224900408741489875105212876473945655826224944512740676470948919355221684453908326580081387997089876127422691202776543360878985905256936927122607965512350424725861748107130919053605164008293144520803241268104812382105118145771623656547689819967730815693359524047084130193309709573522610440620924657087197767083870038857416306211042201828231346526598839144620565197015186981863097234071443803030728142183505473059382552970881339357319665003622779251240697720265609616467135769867191445340161524764825877044638800292135198188854462063248580821382028166613968057641431488479433068767470668000840438972792989845124527477381249801006303137827696953573590073606559849728486963617674968417571605913122529685400740378776969539196654900309783622018286284445510977772441079783138186634756387845310635314353631150210604299265412559201999029239914983843004739292783415657859631882094349627041711287452720904158665524747244762740202008468726093658971440168404086615252628226867059704693135380526635826340081485422591606245588610223085260902475475017196122989435205630615991019503371796958280181651855248466428611761963347305761045382641756752696210377363964434804840800906372727435042012011713442655169350064182472910906191649926759783481887891335184759275083162420500068994766998419896305838967511187913791323672058252356615585437226279792050332377605502410416350561597311018654348920991035818920155460255473569955750144617640276350784422942836799972162316800714120521642468131001692675975321399149752137424782042853017747833013310230954423150945939606378427833436098300876518090301605493925160128768327936954852796692999357657061695557537530727466323418103000648041321520819486957659424038405463394833162560942754848198447198909597021744990496737109031303726403035064827894414318332614993879341260598295093944793437021884866103114568708609742752272803022732742885847163553544649415892646321139112062775246934577235248549578994500423759610518341516741928187098466267247100012576250689173317362479101952737817056110871223309385988886180788286383689330136531681144864835332491212724212306822405327931229037925351995022713685504637278023348313237115962118266820994022777696950183739223799792194017251994962323317501568317044724473275045515973845087738603350704357109846229723962321386215435246278825636524575963420500043090092174281491413537421994671978858363038394863233277929116292592154388674845468424794995824961447027122292000495234703858993241194657164786684726758792908897220365209913059462477921130792859064140654949868917049014653792471841598405863737047514049881777649422286099979876955657972977456038078094839069696217779963390599872190602810782571919827130549916225305671872023996795832132154068019511728194634841783184172446051645754734057191235592710742652187157250824298519028467235210887291392373022255994171642622357767532758538486387015979440584969018284024726838508842382390939855499508308413833035646006796763928436367976176014756575145255080274347797177930415628177055118775897410213897602116188282994943742799252587145971727109984547847023097349612230971667759734247489614066391404364113322599879609249588230011002886946706286172217438824246036545003816017878595209081846776857544030090758074809812276870797623172233714147089761816944077895113368901057737923116117422595298210795126947028397507818658911156358357016595113339913169933091091584970791593070090828141840195118511011355145981964875994038976814463466366809280614034089567005381758075144740727543412825728619437293397567010434343752241423698421883865067193596424945172057149772734274342624561106550236806985786019387791732648568166141525929407955852372607048066175137150344885646015508892055667097109509935761474476571230362185493172242935020040810181883698452747954080966717501183348262698739940796018918685548262705917747214580780860806252340696663490951106580961131844302919804972147938613449345996168184483865141092733109651622580918364091707186240722520044373667890641106876709919132495775847269992158425931429653048027312976227282078357409664296789439701909228802394023141800341949817641414394036578456346928817431048994366441203223121606048138284832399498931143734733936000635866593879542041866614291573829137678043534291347439234467608203029264637835624528729364200094440082857339957737817825799704600026475694778511163297766114923275981230123202138468202897378181537699372547426710861496030673289782756276291700742626016210794175433810878611201201465409649266577341182595853670633036833307384798776796731365108968254851522665251552360107078157732059733436293598766241861568808083869270602553586310416261862102950453640014041774239217874466586752029576869921676602972526636123393647326485222587343679665271807399722224637457029152785106361751829025039507227261698353758922132312284763849559412637003511121327163968482147449058351160614446698463287678610007806860313481891495038920626600998795733657176542982755006707876962610499665937185087209818521960632428183840890947527231621200654356131242831576744496998719950917059001454598207034694036436441178915828826651692138777206164379017348060180305143866162525717165984049130904722288300555053652985229278053066734786276469922780090527441041708820386523345335557886554051374463742325042061846820591954831810824207652008053823321390594354422998503853522099504550281874855836283403292736492079578492886046506445965300772405338659020720112467618824927202073012672002449905603925744876074123052969139636386911252329131810694598998739474707771894518616913015633506830290003033652954659574540679643308194468451649628285822214314249668831894073821540564853118702863705354680210439826124116259967287396213894268516685873447156825584808965435508497905640754365624779695479129925349300452029861053549837563932056057374899465983253725703748604646577837268902687028634990343872316616252563383513781888283976260605389562671947909799339023735374619214533866429920405520550491702883452128105587943719374640426281018991169986872673062442870477540519089708432394679220094522388477664694299980956236151890090464881661247561167330721429921798660745302969228413953341640771626432699560034154313100547056709556090744807572672492900699117303133177522676316459688214270674215991482011852069447944793360320107666044873462738726213417545205890973041647662897160426900643510920772563268578453137503802997188456732655682979831517930748909658737985394063355023817368618612949081978282868252399238472740595498941577603108158849111367757375114374628800044623585720455312013762584148564007692335251528039292797221694153506820497677047861501530112357924663212208399750572401501894562047168217431281913492059851643789684677178752442148245397702032342453882486248462975418308274486416991856857291636564306073176054566024253393754410466860415172974430754902322474365926103585190786592290336715166764474146500805366692035472353422150400906421898851667330950011139690571344016848384195388467681757223226261258591568097070183459381975901203323696503377783640174528632541850078313704974672701688416123864612737834147641904183403846302417347889442222598801432902984670903842428555890978363964525453343379696518663777110377575366452857309284978161856717913697044737077081447238125097470775248718822438344526290988438331590088213062852674173229327879344291760917382810131416962457795806557670258941852740760242553839025046858388764395207837065674218242786700782943939900762181664319163064461207922214916322548230381087310516936028071109765168535992882755453183335214259112623396636041382878176639448222173564001944164479730493352080927357383232390720280958806025885144144259075423928493206935561654940662155061576510357041252999727981577363135540632561795475262772145762832070009586823012517224968131075334293140804656302647587043934293717010241809747251558059341304215525086339766871178314551210137198324837086487217709993919128472911919992401576296683345739559795114615122999827077297438785980756297895710049498108590307390065034376129576507880258009891518035962469481098034284966654635276096127519834182022098838452652161639586960622374641287109847068053036382496223639079086209392582580942439887067159087809163501099115664838173798731975839628008247871715578426375656640055052696417341108228206413659465443631674730366530165621045650136269349468305771405492603117902476685844287147145067337022624463231106690691381333286989302469099591416322177550440779168181503538583783213947352289484318196259038755758509745262982104061162695096147557464236450438501532648225621513878316646863184931267277868116592811964890652578108313367352594247352913208205724763208784996257200198035423392699913642503418853120404021022792459320718528092016635444234441987389334112238580850543503082290141099424221244173259395236838476597294616618013748942946087884260683815240613152062561812421838699956926994445439425483819291699915583041503870921646851054805785155591718846737307661320097437047963935767647043867706594244150281232889354932341950715534954428711748167852083387033143413054974995162512271420108286498517856149283695877755360218575095869659208909940020771736367683254904845834787610048323245488884851839322262910504769936733108880140088290587043053864746270173174077103672788722056700306610358216312396547847333271477443469963712190044543378105807839815434031647460131598929071728374676589995107669544549641909614204829316137858994848133389574261238893229218864065072691809502487713294288768324285094443589427618914765975750018556667868514749864601514287076539415035872324327136531331651699864659259922700914505160265357187476326991308444328809150319896961693961456194755976252276860102357979981892490318051802282483736371694696200702115000955986692399648540206520174141659120689590490698523735082308631042108204107890221835413348504318114340846623496703054209597754913494430189273634707497006685662853795817099072706890348915583292688861563995985294354940469977222738750467492417341488094873695810702031085593111051608295977375114754605990272516552605186747321467164503667498752313154860290270072241203166278073666948648032269301081043868490099145634707741337853777505217516364384985234662149874901431318281274595505585257407077579198617103431165262467872875539232483405461868935207892472127694194459037326633414483890400997482951103302805139008287555647520756438070424560479874866376833545257897662540853757244791628665784342528011284656880270815719999698810347692800015752329908702400309033528480809128726204900775761927248993455732622229175931553356655887931108547360741296277147460431361732940125958986123635527710444551130591597462729039751680910222284904293306144224175805391315923046962729872537312549702255526434501771932981113991532098724114668840948823088905868553709587682503012343216354797337313350738616212754683419750754131300268224978045767063149016902450461444971190576011714507070231824001529340671160142418062475649686482198010713174060331470249289903400691069106761181927036117911324846220161112499325579015524153978954541261494774917410478708511767485193320219307959957674050535242268980648548767813455436021670561121839404297800139210440176170840301100017953916321680667170312332651345384535081149075447263975032593015005596826737096888529934792528241016192688507321615767642140425222529572832734186394890010795636806799932504612051589780353619619110506282116511921493154457396584836062173633037719787177860568849055801558807869889347905193937420440534967543538132656972800156073276694890978351409720513262946890072440071879112702980127693116496603487543430910308197467288273508523464591167225437989839198429586694812223965190170305678650142087006431125479667342801715202253364189765345045219604258735731590243468754128391233702937251145672484724043116191043815661511121323127955571856740617290724888434659459232650823611717383976763413707032961455460109355592360857784635483617333278777428284982380201974331923646523705395374321906025343936657422569415665200323214797935514322277315299679646870031893836681433887098921703161874591752567611088754249754643516904379703995548850680099714523041770125601898080987890229680062760357014133255550015146618225296586766421330134997210576439874157838158110104971060993826901545078752672711977701673748086796530393567567044599569428636498912653149699402002471751275413113042498953550880004872939171086507039924510613795595297661452540922484821907411316466410736977792187963475475278240785095788397815935701629707429464076842849202205045366981845176320183348486011425805078001045305306703494162090212768284146886851649813440949268025993270097537708214338966473134979066161895350795733601964267630128787998112779365590518740973522519981916264900978919585510070805041649999180594251728235736987805255316419982950330104479734545281018375472423130339727642012216985125401040298028832387943745767513843460119967498944701345060949778080491181906049269640242856739028250260360474004255899721900858768131141186868787153413863811699675892356185261140273811992538712192816609835895526440413021648860381619286949094770029544085974480067265955502747414976465936121008224095231712117519414555341888255705221764574173478547932746760249774316998158416721896374895562936966976998086395139418264652717156789084522775978910483092181440348291486356513909709795867161587590680078318028613754408547397637788588555424290401146499812679156502956929525371202721191208226005478588665983572532598649210314886193275873905426153558691117433247796689823425229733350266984470367516992661222360254753728938443715355607539982936260693160144036345406573217818011520849532208134976838430134538748281576639160489808559282749890362463792725132100042833631327333542131136711265978812737115759435079405911551663103789319551894891925349856099127425610789588750696163414183787266235468449323345710606228918887829985863006554304640159490919601439227797594083206922039458196567556570176075569283853807610640220340175143077942730029015327085132056156560507484073993325349198939638769646386113480043754878599637739253956476509694445134922571851859765029883072907895621655174364117997613901605080047408552035712906325880882294662685509197904293612330991033149485932390907909517781213156877580971810576632681833920014902529764546657144367893098171911088928694731250396885859201176642069649686924382470328520866354707572983048612377452753029562951520562406195772924218676710011045763115678671695180108794501385258054072425028936837799810970783572836524434511767463709268981264418944287379249045040444638098009243368974844177275742513560325841545079819225833180674014777502162169279083967598403762453087287121830810541854510612649097453474287922214211559381259138572202114793622263743665503653729229695385160896865423668356559997218753631174471688958964951824226214575337253546683841846042044447846860941844619165812720270196293173045714803193114117517165256729651418248185274455382519374699775581656030090813854764573884368974756008869475955844325320010580732252582191790040440415405605253629649547309793679957156175693357179920421965339408996866534764715489173040779656429781881049028041531682940952394399860314177117356036877176107735936329694261417533107656081739295438972053523312688506926296682204877006689497851687407203861599018093732439480672416335945868531853549712638472854529040746122009990667013598888717799900957256233762308048845673659720208932374799232090982350421979616033042669209429931919083246083364373519459826646617647271350214901839771926822944785642333675522906884752984460442472576370225452645479825895188311567456986443069198835897956490760691999883080598585522548613948682544436578948326999016947123424375091308051708962023783020514987574415783169107819984182594082188837140107414703792956576644432147057990571937493238864296419875241337670247907631168680436081326488860032066952547309748775283685503981631811626373936430633248339923871266089191181600038774106720011233791124768235471834430219608682945073789992424595881252513382482444267433346242121376464518697771283131183601514963044021556870692730668349414522569033025668253648648700334345998301940617842771257669849575784784510586498346281890559161413439537310300521105238974008782024358832583869157806536539475796526476430339444704454431507709605358887729398882837767845364109933165909922999102138644410453994396355219375963956282757071543918867413312105467152056880305749822957535528875393735883613676421555326148780583364316060570621674464769291346718274295291036196197915116080653179605005160673586559070429599213332522561716943788147248844423585156416565635789611882054080302448725697847213462131926913886048171378571427575191948664970055647752318213704885806795504837034275912892018225106813272056891126384798400762932585775711332985014135916081687513839691222646410763972813701763468976326329259922833524957790145033181801168344575686481062923426934964052250075576766329896261407417550397710310049118801616259607544285561122296882462032896536046379284070609463166461643734435059426767248014296787784757383294786336736216098110634375182781463315105385673804358785709830817511862286810789246251603805679091452509556016246745442201632193642167107084161639348158657079768555601964461747806346746286131943339174316591392303094059685336208369176568689449314888823352601766663970026388800893173118435908935717408197854642938953266121881313922353950247233530801518977972141488182108202409972718352944096406045660068977568269347646189889455045907761886722958862671241000716096755740691419965226347335155228976357109466619654516301840659314858003139295903103921673441317327038381105559790615114035015324382451253326608422831037869922833640753604113548470704989741551327112899420164370514675644990837512317887232321220858387516537650018649374260395175211282637461848000329666390260400639811921172100393714329160372530917317734173858129985805492588835529173066949335085320341484364244775547222238749233779493440944582908757282443533878413436038416094295672609814655013716551938869797130441705112942072746347772637168103484580474883422170270975095855435858632021700974607809895456559101377776278741566747768665579877821944299902274828609017616664543200394660663912612778771125417161744112246754912927527083020445971608767476039185847738037192746664163069674078405561122119861528201014105187839371217917273698195906418587604412364542775649809374135640368135991387683246087775185981527712784102658100660721894329594245117220212480165444069493272232490782731494124992980397076746662273711602482285221575148295806522391644977388077598474546515701732796463149471668291117617840577104323590411408458066105225545187440431585552692753732918755041653121428184088145074279083558260846464110410861042029076143899638357950203020129791825528237826536791306724082903586349214243247217274716315849788719360450916297797523128197257652167054938109312424393748074811122274391112577688532650353232728562163071037269001332726374081739524006608106237823224139325097741882774089663919095043338330112503249647119281995517672433362598584961172925012020733697713666394728743156875112059674349473374863548265993575952795582924913673851898292650274229111338908542061921173422655874681810793163078368575835891600665165633688799955253100805216601422332444093006011571266999562844029174477864097342674868846269813988307477440216598420322054076191842409731237302579854725500815704098743876294522215525495954959698664831396636171516480083141174237357661818890914132889523738531181964358509647214419564632117414722192582081469169745890455219785967478663805876941685483472520893260091333088744731161059157510425267150423932307256725663188280749475873495723803204459698260756150391974932373085482811210497564904859423146326444709738859581346301858293164595514513529500243768606252658379628246407843461037711452582499920261451904114562375227838364250733938862318932803448350635343892454857475079564361409295910358529742272493844650672312126188738395553681823789480960298734804531373116296955360525527318663813349703993200976275313415271459712392145561812517310130889965783468198834713621826165995374179454965915023648887309821261218718918270138068181045223588756717753000713184466945396783025861627230505761966476591764601639610249713880418889642202598732495203308724239609112965998270386780761360395809225647295309123720336826719362255755605181250821428538898182051023597820037685020335547352736393912070922724384481603749527779911397503530494436479259954957552539587429189803804887780686128317419310128675399790945342286245347681302756906088330956209457479310895680855140152929533554242329250278480152108803381914575090929605597961132523610887066700682946852780528985949741056168592876731597682474447550390961914426410958121149243304234520044975740978831856206966047986576313649700710582871453790297723623297684147975028490591988913655982491957123449091969973008856204409256542656699757867400645543547321848302890007253385474562395183995170927376668043630607804710262993501900107724309726964197891377824526855197024505835057194611205003777292632596696466378226052516393058025105486560459533835994358967547940006707728902031668226282464236124432978725223018455344780073664730982028183171091937561598479024289645066011948400016050622397618585344940663139432310455817654040766139233399212187520003122380333516019018585865764445679398398439125710241064616402795851213061701659345959643209154480700628003171337394089601734882004467142425126029962507014843866122829372582245619102614707439388239327242774458447700213690038616841366323903213714006208363745453026396879012164497154851085971041012922086112581329805439507119257762584249649843575075091795713467427910536140316260932569242194656006629299052289653955176478318208771761740291068823451503924538753451171128446572581270204590734322173594831102089447181200234476461062740378973305165199531664968014629835383756045508395758044197484958597603012105746759763948071984306159780813260587548447764743631241133534671733821777692729270408359158731484815146085943986877462693508497281253614091350952233378835906253136179740595886343833213606566418551800538856686782454102182100027892272008920544087816238713929223521407650023153581291470280586153094055531155587533067007139486710777023012311695591441174769273499443301949355127330662482215634956234152255647417425421832817178904349333434208417802732743120349076662648766151880548471320702847996926340027659699799025179024999830840421524367532320517400302291723328893015898815813426454042763006965438485672474233994751171922966836602059155486359283895426533441862545792423664535437423405502012845375458018569741307147146497149595846403799149353417597862043968255243751962372465232958709514322555242736692585044512038781429352964909274593794914733268715006631605087551460098329030713493880527768969338457882430256018492429399711404819803498590922902286100519618715687098516165148566989246403910288202269552984012344441653442867908936263922825089904344380612281826934569243145833437989954103670312255588015798832326120900645770004119709023233618411946863372895990595763041034423920137153755645904118681963695777423155035081507296989841961259644178778638728676843659258276236219290779418240420444450411636537657708035477444292329431804027070426514446141082934608473692674374649759310849713665989251922372960522280270798480237928022440800877522737074871534503978200426563362880500941453060688778615398461888628394649817730372856247956465073667727783126894238226788770464984937556720239650240967218191716568666088550942543557253871029255109528258771699609056127760944567088427518981094274573027216171012221147640945281238832821704537824958095651244897958779385066540984296837489823380953494016202672351218877842578370673481015604652538005918677598411472404197838084966455999519577368775588762003649657908615359977005441795959847019700437148002349889674347324906422028104488612526432437402480791724356195759004765287542220448985428879952948451864754799877027158031413615629011054920764813161443814260214775409099264852604873711691605260488549610992183808980584531715516793101745477359347951782949898129096505569192211645532030248676916126812753976783594641740241851066121413767956984193041714249991994266391227224794111929364673382685526805099298405813876122739368349478170502346186509138053027226880239818305701459822945340075618371674933758130144389975183650351023120532945294837079894579235575128346069853844439036539177256645105845126812207089693340567867117015712293967755844917033193150287029204381858337555163306043045403015124880596122468085963278556605997124832717086035699101919254790744396756064664400409879123623911429993332617480536336063729207577608387430304343188306491858945430269614293004403483852274058816287556364102556112313102336926437474630776510904085104463403036045546266553496938462255545008894817388730913955937918357259786658492884818509539456624286728069306277774264022815033442749892954913620240933422791541223724577470672031781190120180048417561691375719551264387812703151565972347481192636252186952861768506541508366845878650984187554452046766677311510883310677188596958998280125476530280514684584210465989347745688013734577005276487424509253275708836843270869195953274358610654834507308725240531457751396762840009960539108527442400251947871278798176111544645249209583947361725251390985591538461759991036861226431271271147942932289797200499395052310060449723650053522762818740029038131529375658921605572221625444707807088758932438767369956014723935140244004803752343959084986271332741549953216217738532924965691390234890759699758540367574579456122987812663815089188356218381314986035468241592087346558233528986460405129834901300566812667421138181670934714029964750049305292378674299604795983686358583982371809238253530359591704397130709472756693682831446210230673564303573688690519969425077848506466732706272407708990643084517388240506707214475152041712175989415145918695887443710857722557992863166082896644611750229107643311531524932610601556631767677835412091431675636098323970554553252295221837657933408631018808417087936751811118962465229740685690454733125663302533733207344770267897088801229652762378705626432191021318871872977460376999197387086106228255262097335859089886189247466235392780227455607783431654939504547107921988742345239499784777837784705824859114368320629335344725610290024064466624037856889275738681753060469384669724266428293466264657141067202033753555625712846462044908966823841335937871752473362611497316570889926569685951906630418291958994741240624555402469578811760928795960871591035820149996320620309422282240228969278650034405636864886749126095182676768886098245711264648302813892692629826243378638925172971685060515083821298279325996586387317451769794182977276880015177879564376162298349264955138746695097114930984176232145804118551323544930704329422489536848383624093216869270237842773180107963800805979741872271118255067082267938142549039319006191585296810189350227755870278409225261848278429265245911985678852167114908995035495000583403727214731501665290030343619638340656953015519421408208454766582179939103433101547514886104584343411251924977452150413511923669247091273892559174218615568639140040893386615080685862793493771713100498521855659783821047453527770259083785746406041293094109125457219635438694151276570523652111496303904984067538935804476354323740709711413409769641803908781005658392148041617319733403322990894374690557020015932550954440426130773810395916298349728727052112155440883860464541719468768971557858500468593868739930289804351971481729868363291027332131060073845716162794365256690016741459829539844671228902315436389415219698475530796902370152698801206097753485232254268868804630476661574871642384802027017046724921888536529442174912356121068730255963252801963388275585446475312446434027539019375769215870460131019618537986282499311620779261459039535065547171631183996618567408227806457822710753901435044387142704184743748652906325278611486088582874051003956949998965259369195485397849999001044794309712204928480818197075901532534491394484817091013021801936764684198281803868217396916829805727749819351046270438179531430368761002176668064074141486290678274895330828888697929106837982456138903923661642411084457665353724967235333505846592962415535039493560100802553050901108245194888265358975930019296968669596538913144996518546649582346399505363337289001690455042376832823775736673897846610760981987318805622225800425699305996493180791068659555720544302495124910916198323561092948178343470342693530687921743225864810891576923612101788172814400564153307532051839525181825335131723715275160574476352832119979182658853905897078150968380785687984858503015487181022159221102737925152400333847868075667762532068388028862310963791909069497725448739559005620330665560270636749620472849918431940019567803749176526989510070062271986617239802137138498578961682615869129240724544865734957288572381150969174422235584343924227101228600114359267013740607610767400695204731250947876375308175620625588264829990579872949744031875268625765692614450372279452818084767432675188091628538224796783275215535429939489003712381553500605614625622588385760192557217599794399879489734695688691047240155692898598801716383362280525077982862097565067746883795654942044437081426100478623315370507204716366959786842230973196908734024010903422389546342901471470731695437431436553097628837726275059716736607116019406229294351753816019729165078178199519493924457961275195038741420886238889873769526183631009421245879256716782228638416447643728104155144284963695831475091818511462061043610405532535934178499333788828597732553279245466666254117407077337233243546725313866701662279687380088422505503529358933296645963116143523346864586437141228229386212621582451279543139260434633861659291519765226011341075200625045637762301637052238403907485877863760935562299890250318160855719951097512696916079660889188437794380914287026636135934429743092915705380712614402716192405961699759030915669305696285641298271095920226150971176213664979685582771484580717124400764126259509746394596713602308233834335671876898936319231730863972856314040911641393212000808936029726282981333589715498816351916713143813750999208066947517744841965565621405341553152736679460314327528138308497342266062035583574749987998643076898756566949092198890709450831103754184361356542184706454621507758494508162957013580453054642473051717619987604337035861095604201519525701971871396214991324962070776774873166754002827336643169199469615685989731621140130487184464895483443110251863430223210141594479364780644532007372828067480978603138693203759887790095323926055559976942379216059456606234899735166760848529109540621060488802065349661425145667264589837345897346319480357195741412722009392971611823418132422718015048763223682398508189534201777033410070113557263334323545879669939590650455137414733521447123364297811438483666986716242691166932276025652527028812548651613668337741018545545604315510573355773408818725049429273407139867858933408908605862642514401471443859968663343846089956716805025236603147900940077577686157634790714328895074863718883599959983672304826200023630508473823083736532530525639223923695391800782486381096635080166483045321280440924578459825770764505197915839135448612672484448131330462879655409217585726119349885023934587766213023389243335366209446188484139743661406319331715625514579156537319317934386213684816801545597088056740904727357387683698218205976891956583064273130104043323248689011343261811259145121698931194939695722844117128688092062468322005336059068842824502768698705522218656374333711403335369864608994921403706248967751319281107747830553735161008571178947091927326674933180711541036339495042674146669995551337377064216491980462294941088274093963730210605175028418103996005673229939293626423044142479898100360031928274445339304120479692326336086549798625174724436636324696517584585228449093095229634436586937208854459261860389102618487370154539184402591213682481933500493008386922453325992452857808305451001334209921630903694184865118698678918116406341567337725782006868052218657051983884718410341393941791254553923509019391635244113566120962805846967309046820782228286500915027336560616039097728497677538774134169126239956339734653026617677997879962865993353610605129857206180842463073370226700831517398473433641354401684800534229947629782657147387150118837186259406319612994667121060080072405324677413054224023176546282994152682895397348849166896730797535789710236319393120636318924731321553029871237331608296562437604147176088937599596460789859917737201655267209253219693138319739231478537551728160694965480237081950497928092456775838468655343225929822247115327829136318743891749455684598362047253003640376265557896737068152516939889317928293152299072773345692490772356460842810001689894178119746105400266706939366155751491450864808219731358655211253416711451252897737051570377624160218410153795414105766864957725441531391314197427683401109095699418280042497782998002924665219705317948958927072629974502713442487139177657451241361949716805188268866318778536672009703434279208414382644720228445890878356495676374767502347395799782275521738212740429450148237598285798916753259604507421051272768087469932273331279095211983626371381514112697586047860782881951517431889384376783334250844844661755944884171382793358307554026570621029723971199223242995013675952349657170462933948394074832244490296022551063772766723121155466079008195187101015310659053583334017997245458861441168921983475395871409953901722255181591116649924041267293867779422586828114012091667277511703454647387972128623643320781500706321903415836983582066132304991027334750263648634145973303241116994345090195962936193736054502747120325242461253333847120740990088164313214807954276511257315601046374772879115670971094680671243400828867793413940948342601192894897870431542567855577256638132953976048510584518102146075368203301051267848922247121206218380905307144370810931960484336437807296141799643834796384417805804101096715206038342588877652210002599470635780631377287355659211223389446425807640159795916562018658998652909333317055844185856624367343762057057867988309764038515453483247759979767163430515581634216956833510418499976180644309975876439104718960745807394655669550098359237094250466876803636651442081988722311842993372486029423663726418854124557050284660734350393359415795418816669186669978203008005949411341300788088612090926431740687588073989836391239985277850970623925206299167267577978032573507766060421227303091651221772554873380302463135709954452512566215268329634543788928699024277082687692245731811875670311833990681394337628404129542144404691402120807606358412092841248351317989416471225822854214536549608991034999168732645583430171875759501846207105359321875048307989596920752877466032904480819752605478211018241304056652544083779195911308297118865778176329282759809930816250082559309863858809635733408164441120067072311277430027275445829490161583929010640164315309599840526379619189416872319133540482942694956786117021610250055899871979005392759024330668489470833870064804636869118545330933227859381165568437347236273158230927853434027300371742983830340064420981541248211974980229827199413498687285310811023275485468642385611190330287436330080268898459897332045022659344200060789030319721235969120079572463018223976371750370506614539091389279608615672114554140424947485233972091374002458324743663800831104348088967306566854405006247843134490539531532425975573942777320337274673163827691116759472165872200851937630056121186640503660162224889796160373914027592423722568118802795454573048053606250465877308728605983448036518909004182166618988334389943894810714416278741073450123672377796821016182646363826480802025082601528071379298019937527211686289724662413706452615937119223327174580179966781587851517301180549365685667022282177977548818987991477660901116365474857059927380153070985488199873506389493499672052787225389815941723434240123444478561381100417185532985733796617842158076099563709351126850432753795150714679079491926409925690497390470260487585038288954920307272907038513408171784674514298906801952959371009148698118432126409760872907161676381921782920811186010565710504586173062645767727059754779680812357887056713286217461853450182922113916118024387029617903632191112111998776147327740223679690740097012484020413070122573036064194241701797962121105282507809304997422911200867826942801435885398009061469912310305341950779575770540992382406265546314747797708024587135323275528165120554778582326183610659219779438459765689224375036630391431128177260444198470609933789845493517012328637594136803919935718781431851131324102508702761177190608321473192656448564141744787345896395533390111725497520233195765650851148378094441556939552018072240773883470495864913184274891777666879362937999316732722830905728973047366587450468194758903061689183102049710270731292213578350975775718807724744171174720765923784341549046905667612315433453064478609832449659245098655652447329405112881464539031162591554424640743815018858495075150080488356224115971663348886186199948663687991466777281662967683616979765231580228489988098555842504835983637355463588268818926518239551372239840006046952739915439014584019249589467178590621993570527643296097366216418904383363726563654672636950344061948894894635260097401660165575045458850251140533260526157379277021407163166761575938807964254063473493533659013848721900444679928700672677511194406206380884657171550136520705550186326247164485950297132367619536288283807024159871780698187385467940358378173363478432316838073374674051979793962738089538602025030049515561176457068156908043536164700138042429449436665098411158347773637501620204987634261600415889883144229329681778673332467388637579482423822355065731028598717944176918711298913684179876438681638866437536907088805888163530133734782401408275569007003951856134111122047447336969048105120990105659370799907223518199130739557375341223546907342516210119173517777310476959699571956589311532369665781394277195720105781555490475149539286315559671751566880406097111205424234804079242120262766381870062689457696599746278286703536982384916366610692673463873671054558590321598924047751972674814097419078196165765939111166129317397241733824150985673517392512907824794214013852655720834638494961319518983148707421568838123914363294084941339340932855885898541600353980590292784999930214112389924786219798462517495632631772194272877795746675629601142957961781004305581092377508097510669479374916753693043767396543356443968735914381865242675957083710952375175191853420815157023488524413043623207769739595394440861873063460173508224902797872945540479568090936845939195383988721327403667130809868391800898179266817631261834636434931437569582990705687039685797652631875981606355970661930188108028664474613053209898013908028685003587235197097551631143231214628393936644482435997493305422636564336435035455126872324453764291438421251421027582778566474796014588439617501541357520944526857261262514961798072952115857089826959334785211370351952424024491957153547387677444092495228981476044251698524398232875052190696942792687214844154664906354267161017576088707825255078847789706853162375485894099759789411384051759463745302314311968358641282040734978293042466559415324379333186843097727848232259116078503803462482035043913427890990984816328290049101600032015800837267279603078459352284562082574671445254680315288657688520700319518700851861304191515382591450054665835597603123542687823909875486890204128815079255888582364252136633242821092772356096191683140411377545587305364279767409420235217964813111129372564921175610383007536567241441534740038340626380126320813281999362800140519277668270785950251769366153699753498450796354156323464520694337850549133298373214058296698823218711878595741313672726281118102900163357826850917201741259318671454317326126870878555466426609561649203380408989264202685972523463723087862587737308217151190740005198598318983389372390910186097925045011551134137626411894938510620221338802242260203300558523936551776099748496663080962181164108392869518326979320374358854926993184468620284613061041092270242783567772971682590380944653954053132475909612600879349840287635586418147601421716027505100803557388374334993673279476785234178422683783731392012428358992759770436157565922469707051400555254466173042271031406242759526907744778593387410765906975887651574093944118059015582138548394445821963041867758350290236257826598235532589441049456151998923055195359711059591810389624969155394340553186725272774937419014535902875919871309723719672838231061102503691399923363335718740006250290306385431526911195062931766846518425539910436316869573605447015321895334523535961848320457272704383107559672901881737562385797864762308282055754327485003473425220052936911866349894890216941602903864503042581809139073291380547402741152189401721534284054410853927675377209779557143921098046637748767335851077054403330124407559046774790797038474448351015497200240216628926558357062599850300296224084954804899834672179931419453679884990567914152231605569474913826743265342098092186820501480457737753423137895526397645138207456516480563742516910456541150001746216983070012218849019498206138085647472591675941584529853428068317264513186375383405842398747883695653901330158190382171135621077213888668420001490411088573962076011973837360512622098344666306951852485045397805196217412858213430187915566646415804351638177811561807213665819377447849143177440269319312701070255381922264761678305348991368462141478438001367354671788904570966494014964660731947609144080907271209728461716390933173933892889653339600943223255746694714831572983391784811268132353201609245724729616828546766005558544573157499236933534922959369087340832109807033545128057831150613832222267025752778207956852345985843695519276140720773204851751740387282817136677526426540004745011117998211315732584148202755683604693178786353426108860109045801287583852827184278204628298709732930026299495933573863859609945745362429282168860880224176707949388447876004055964398917879196134085751381215228692459076519210221914539941826997486970464503865437283510670793572705237705825204376881455640801244681852039050814353456772883163165081893805062937835399942488270635514468296013944536986099314867460856592928050393341623347564745529626482650150060566722919337887542944016509286458977570067272720116517727308965493512923506871832455162858885938787344229798109618379430965698499600523513704156476662018578173999465892501819224703058548463623447660901249070060853658314111200930808823713446713498628385636999412851798014101188457184286111131803153936483847720418791986992817414261500526581425464867514096773160626907561694067331833499046835466000945975709212849600747395480709692953434211606386900508469733556432307772984843388728006321422934475693514526329647884998393914020877925476375748834416342922594447402349477716653970983266677849493202414663529903684566737490482629511690924039258399803118429978774448158408187222429391964413989354861247656368669331887136621026275720204966007080344690608451516449591237576759652027045859999725700247835147015991755305556057310288352650961372766320033793578930268530236229616473820573406148555831633420365805842766640046896349569747464005573996196155381206639421477588150249592533188122335111389147518192498870062342535160758999998104297783331336018325765026858572552257015131229618451361005105328965614580204015651107258230174171756310265132137058304566429712610252868814882239531121450231093611326468112565392458564683329299157167079961159479635809691225553218486525478619248739486702050111539020032379836900665608922609564336682270408012292774218051882876343956300698323281661264758451692512900842421920966250941315270582805817465933613280147649361882954115532465607431121591878667996165906002933082213846978196852975017768318899901412154482357541958925219512328754436999769636570770837882876379593095269434146863862642315646313811409804912983998199858036264524579683675508198893972882538343534283525040242587812769858829958054088293493613707756182045668309681244801281169042476663059124782032857220478666066011872652563157985608601310010087028334886459689685240665452227968400596065583656518044320304096451154704832947402629159174692561305189653472508792706330527902690025526994357735237261539390904960387086778852990439220431268384780001736459844576747203312708305835632056599129203549315196480032181776327736133715996172937236013805530056031275286962470942975229411409921379428373939453789533953739826721831376169543665614510877972780179444455258719828241153175519089817621310840034753188191650514513841537255221934289648687682008898826087293795113873420043489869872061588095468369834835118323120962838608799630771954134140704808971605676055815337561710498123785585848831919936872202141036728747920250647269282259568829242782409257550803899304855565042212320507110829427957471323937674242645410432279691517706742460249754412921123085323507469832035481029658207005903018422260520656237202043138333068482929523730955211547367683401312378027267298492818410439868551607006781502996486898163413985482086776248385601170373772333313665128519173967791932501715190626424979124256745888956898816598677399520886777587811954505894971974107006166356112959873996454000171624524672651525168077015781795233281071704620963640511897569518352969942713080270452214669750306922029587987989412576767645377907334624429083969378190145256771663531312407959733904924912395409580031922009072090767769069156574913102714520907743307212831281971590973398555286935071525764139344958378047510583749278714163388436728026192029340160064956984173691330152162312759625491685436641841644441139105364681920467578736904792452608272674140926932476307002847027411676115068899308843925915416293994273415924735460299457653507216441728191654646341262801145420350859113344135448992597501945165048873003765906445859550476173496421211395730573414279335582279167038181329828409692283877557288873845404355751346678769469100132964895275498837861548636850471307209101742961037685522970167217436843694623054985084645198237096655975778711014635983200283579319744294192519650272272483053531812775515913632121253284071732192137765205053860367495505192838955184826343608726775348538858708342570483062326117544439637113138199882726643575346004466076934128319922792296612717597199579574640388977732042579606320578007992270273344874394343767215328482321664244922820829253739296724174664294937718065818845835993665396826814392795386198414796859051940485817942826750475369364837996222532300798690807754760851731708614619195719130625787488550836415697854637324021841949792181472642372911509369722941715781736738759388269079921587898189441672224709121661175980906944032665505773234756741183413317886056840508008918757783308484953120989972614845430407815385152217768887567106200665057089010674979693671654133010581146059744462026543904805812586734244588950891467258058148606783887068017635860147759759359476248396781278054079971945824341169930383847890751396533169241032647766406523725159155697606986696496837914858451304547343375547216972329152348199865559202778786484529415768749159910914547679391704475134672856198778483715314373442622220348773155552979133051793328992193505493570535664688658258864998853146435139354239008313664082497907057035853616303154401484602987198970504212024722046064867300765753690081678209438742279225426805427017362647975475467462236864808776378539392243745867044461846968797157430846333673153532310219386396367459227715227115700385212572378523416825704540069914353311021288675621526196847699260975280078083477164081773221965391001861320786091775753344939180342260412372345627571667556430136404863364819120119956274761732928831486569655597494545038186847378682041266939871864321615582794683874245867644353522891300975340738959802028444311348712027067772407339491794454839852066289863074573238509573166055734827818494200469498602590416140819376898676158741348737078825006749830391966605023735848704645510905898679474913184248422738444445926800704508682572213643062226374540512139464081300751909339445698815868119295686288829690209874395879293812884025543398737222902707421157858578401594854213783057724609097079907051077278681033888266641372090084363724990732494914456993250800335760724541927943797179630733975607670945085510294737546501902114676835405092882853569337456286352248010764075362373670529322490334925167796593319311348953831328930474059332742716088846646464288147097775362025505997157374657700164219492652458819122818711854894644201345499186384971137153854597966649169734696299954845888579356770103431863769785556124550094877378367884372426866522413688188670227655822248168609997950613101093392007046041500233275911430805727077046635953701681125420614225494514137945671143772802928163788851889280135690874733938849606252226248040145737096552228138308670381850003736127646894741293695174577296487892175669608849711535311485891182232018010945179420611148148840855182192783645961777441205568154240523496391850838031476441651395265529978525918321845218483979883056428474749303422535403427144110537577849378946013277306349034387457438504040946950496858328896893194304649283264125553599397839193261304974743867045933948724978957027551676013921026770651209511562648792395364951138661049424184668873206327740557217810281646382839947708105790002194085994582796907093128940964768864871116264462984251265458549344254753967117270974059269104583883153818108899100800947199485357413151977019984210003338561725400155694230395303472671659273132369500411893191381695909853858011994289965592318694052035475440952235367610717090742717811316548280699596681654695806542726693366675817506754204711724341551204375414305014477679634397093117748403494712984888952806739532784563977716646261463002877569900609142670585258155176355200932764586838299931859115370717529711182320343986396556209184249140407709400344990373601045843673102381419166929272521655550224688812179476109464067556822468036021384084395967065295179725725992495696785700698213890458072542209895016055275356113713228434408363161812776054661184185373473096371712257753404667584726310592348406694288371783474067864140975482642641924183911810649648382193250764896827407163133564295173895880189686585020166778640754658948965859427829389011899518357932114822459420416515544421074380649578224111785393309555775078258018173863928120618827903445593550716154518299819059821168726468125603514407661287424562839731130501240425204533135272711686197951213762083326239360783737585205695806693034811351128319319132167750096956031764641811713135060718080187447154136301174996785385328737914466131018514154936017864589490537207640208377310300892688535179702789153636803244975899710584577994041055185596241136008188041706124831137175820177522623271265379135032175630486826350220386128972017770870692318739941640701553188099534459896779413512651499778249416809190468554485571584059904398627710641084292157237881212373791751235764777980093563857726082128102648177208902728636969412660022446129216607817251555240612359453241874597085141111887395895867398305001600864918392805541560484913654857122213717884077402009861578877504426046551465562155151424203296290413800673510172143056457310486027274909866136727915719400641777591461247937003682937947609097604906703420499658638308663797093764802923815265805470296831662684572157778152818866720574787593424404752108836074227283464575017201889712100438323721346427059485825911780154452956295464908488970707480389689347283681965726906805036198469784006719731666788569551405046748160293955086105184218330836154464326400971281501715556871177579817653517451362107756535947192617602334580820691621812018083830579444800604706514777061719119929652227544386448532291766241282457641699719215695252188411589138097077331410497596989310846317466638081048183880636001137296156020286327330868498038354304488825702731586911672385351431596787961977724687581078598970138760110477884592101629803813171641812060339641877904115324860422643959482257633897205730171428839353674742814905189824697894898881361808690033819597231325443675398461550078028021255691425142056464271635300180035761817509488979248725484669031090595075779988070127961590779135268946200581795508018639150116922549048401905592785149007056750200111636847655950556061268744261615237349311783357588303807300153841635206003721332881002895674477842646349582118229535810692015279282056671137624697058484642970859866205948354660317810627805551370722214066542762178239334600506791066875334462892404837418302461251350147322188666267434832901329685364317624654895553723862091604976823004147080398350551826853981979464610084518804790308432818967748111283793927450785848327328530643991619352754570455997325187490184585141291087463266927004027629329691020279256479581385116318001174983903240063129174876524765710182363877242104789416673861228497538639124865332377649460513372089991095253134362119258544929771201061099105185437662498824431623153742049505938498328103590298717513713822599143992157635762309019756127035116254114184858527952961088428543335761996563392350648819152119678942449755603031459037349136448055978839739658643250113843597526814608302379981042614051644323771718250273057768038214943495526409302672883326313457836357324587339235650866542532800944107208245863087354080496890955796468008487036107677778067427298322906032234961691464062569068802353641324715690776501692798274445109480008063345323294408625212691673191418589827849445520493295769285431817154328935969424573809060094707757553780276347585316197350161772295027232629729295899957828905055151289633392147329840538214796551101639442819965920732275214128079548583267762422632089810419020404281855955397650310994937763533848653556782389367026249517343071382860293070059777062015967368442387515796280858186043897167140734822163925249369176873047497518509859904658423160167911300961588917125077605792039916641519313185915014115134623575614588896102309095159989875998373496949227305467617064909820205911797819203676625001418954655742209931066399440606634033401098910237804255958592559748386775375382716140680338992340549293701916847653538354766889567486118235136594632516584478986505051648333657176178208438856221711975528706449342413673403265828849296326976503119652185895592400434823440135689955465605153427362889216710017059659285497023437245421017302990273483665983251999743725686844220032990692768368340520134666375841849119233727668936752583971722366230245922843931224330019565216835913279935793377842476371961205667927681092274123973941117512879356304546400940333564795555152267380328356395080445938069247940508499945764940163308064682008664720927886612368362160008865365934816180510381697547968300027563876987212634423070456625104362003664094411736320464465433586056497915936842349286938127967728081191017771086105166798299762247858566454172378578213039723808609793978299272329685716900178741922267791940292974691036218692387626204252573400936673322135105898481017471448615395926768848451154068573864305344183205893881028651649868630797452319483016004709520408814157559023892588819640802359153785438932393903591593468794657444436168577280133622948300698697476318489322231616966470667257742279623045696824084907317139511368654834009755559252218188071517864167997232954191911327935026947209957218355611720256346961829596986564532279580360255155668775434635068177894912633000642832419588809495621523992587741553691523436252937694884910915018342944181511248567214928459851889132400549286302746751959406545475472427330096936617336150002190687299882822159243428666624548683041397314395903365618120123793280237264414546214822651250109449794779908192613404877057471629804341146668078529342961985390024884991098743441631724674941716955496202013672974492158692772533389759028328909264766008249076382933091072296232562666648176875445685513355873931047969522893738380691658052496776291785131730642359914503575504702911319467402680302622682285002800460943997086144113661551545917434802815811865437048771434608340604385834521189844368346009925981136507138505117494249661577216430722922796408649836479441911132124316246054935176760666743301606133869188787151176882454694508135571996984792523343805020876013204050674878804390093559262126929047034660481623534840959898452284783017646498276651153690732599806320330606077429311830777711810486859656059116478665809671330250870870466749657532606276949144691418170917553050094477263695731872893918751257869049206038451973899552981520560478126343366085787851218995189588818183357466104317701236120586548103580971349609351814332104004112661149425059576372950281120737904206582473444313997242109380290017791714987337970042255525627195775246691364105014293860322692037495516791833945607066275882694072009702300494782065905872906045161804577006867388878030330733020901649580487271825861596887930256816339363786847245002484287884125182326082314621853482071589436956753141445547987918472380131706594028531070527851924015621339375005365222852361783950457899063033049073912534865529749363772652471188723871249033516768029999832110161962216488047704215863912264384252719030879219343921817738185086741695560279803076658045541503739712926874496096425788583126610008626571169266887764308304276902086032374104510569862106578548289545317192951862936451432169731157396257028902128211111058272591251068621530198494126654237253100651661456203006669504944319597477255494950381289362673070020071843473131463412910534651078372923775911215643090094898416159698606863809916361047010152794516912224994745658859564265944451469879849986008066691560341992430276392683118760551204359451246712615578641234276777431597597417305378346640265109581654897548729953165266081151945073345929431993002285049533041271847957419711981568301331236910011027664717657781778913048097371180130179611260662939109975436111399735851112434916943465228129612531616320968009399391309841372442614874360160570348558755012434427127006269833525994507177854000844653138013602043941499483287264581895041755499731270677204043535924420934955807684081373936981692022126052603466416525153131972225760631370892201644229306047674329436684879812310653070891895084959547835127228194648611463495996735882168458216611599641078359015924474339290083834283478417672370482441235091986050595423619026421479953831083413435292327871748902346475251274818955764910256191716946523099210898957772824972700086615919228471262486580122817769524847163815046856823149047099047511089994932373591631286129518072443508290060837471296174218439550699148720362237301239382636541259282674669340942309155158252978352935089605589507543664887006196612512455906186914640474114623511441165733407640259549554449406355844754963439689553507148548020789039775964427296126352800983255393291050986163719530119194252021035443662638981824030076574279142950415818797097774869519488622335709570067741617036967393732204356708567058385627726269419958526510698075979703739241560572313863121855974586597602854083648273775274481935089165258514327826389808249514430666127732716093877131140017538009117813654536177252590460439528207412545267567054403494981461305601570723512249891645251133730825088235463274263260382682702525253586844219354939823627972645165121782167363909589916412856872719439230193653932901994880419024618671509891109290928898262464369244779499674737676633495820282296091885348645519695840206856197984627401502881765079327172602722590522197294129921342512610152238411804294471207177164616491559751535289413620164266111927018950433530065352467649658836007015298653712342978643727691348565933781443627649164700222819784419463612228466946069677113171724662537126750079056444553377371412843812445772081676186960546336735078438233069120961138489220214515070602933720548987363253559440515306801325641894848698162890134793194824390765743000701599160188043948467964600708847568026694456815226594509113789837476719875158335871338822025611655671502628122089156041797437028868958715399278108983643669113957145145366338288568652409753604853142664034923739473971834934123054749281308772610585228107431021085029279691202833155683955721025989687644028194204077307340761809926637134871173159380777774498187935846205789540630061691097030687548812841919565105865102905626243650754007507301188236685470885121827606044721935797939451791987784757139512052547885322559443588177101456697507071827203162530313408874239641718747182814897672690275718228972786023173405016767021134675190764777303404785751068752475107378397558468706559910574090644446870033710978656007794192394915151474063700176425561566455300862628890104286648876922920171086668657733602385494172959890995925000605643421416923710272584314761567334255003490260201993163644027886151685220815512671404420494214637510984085266576470468685740483332435173584888300526469533628923374953246350766038499972312205357821116441244896420274944975903790411353652488584955384133671170159362257292540850633467887419590399773891871184009409299540795081779604266207712535966443046492098770049295067134263247458530723273230218572991716615107601715442762592161336315449035807067138253774051060728541211430689396044617404362795783171603564680441754143667624883963429720356133793972720791968287115217343619742577851574738567423005747731580510324466263970120545008255855864093514899984234866620059622854848950853569991266119621419102573159941621943689967674776234731403737822193559441568571404418519660956122567520252600427908429474133828307157971816069235256061768133425945077809097921989472523402892596495185309906883016896548033158404740860642199240078950910039451513102380287663081051705742049131416310804596966787614105243173125898358824631161101896571004250248853499183852503049317914507043679354791951255471130636150801299575480851757201040941713425420233879667180729405537124653099036051776441622216548062714114441633766098623513491817300060937961664577507744063912197817157632689758222516694826724514799621356347864007169481200073644182159513702965613968263306193436155588805488401258268497439388022161710744869240887237950745383598743323669151040271958643993708865959248987324526170273186767901411947094676529750992696896589160354970658895822529211771314621856683374838613462266350036957058510570818969954733871270838829449860780555548059671354913957952954515057268803135422041317432796907481024985283592904863199152427549763092721582943749448138749450367101722878552189176795104985041182468740747206623093614079937862696065280017605000169288141560575122151548102481012078424232657201859261675869099325024609806852407584379477099053968687167553564307781484828416106958343743987012202241332723260147144904349913806528004551281493049142539696476248728107646121726065771940155734962718610890892010660164446841234206044382541750767508933767130055769256784066890915499558991585044400650135488916201884107870666211461112534512245244598772924423551504806744111548779135884850064463300505376579169151921968211259130772628609116950411407725448221985880905157975798447596576690105131180722411311437798355214895953472801619485517860353902476218502691755702089707012030874256571931137308298696190399118719122626050817817825161024336393351911022343399128220376270797599183080122974705682258026436750198069040627969770091266097395452999177544535308396610414066132073036730753207187104513434678673341605806668250241865978785125208161745871098079044104709770984423280734517680026761227158990217472874747119226370132901144628144762560404607481007398929132275559671439936393816988044803578351040144596046358146972665628502305317531987060443164969165875831979945207538560844688022899719958937711904252077270589851841218348701316466482409381936365519525021392491993724961189464357660264433601940268852368935664841545801001636885562103802221328524383268345781404093602579361001341659536019191679546829437354924345565606033952461513338397113513907773514310068806099200043379429492439562344071649735234119001475756834402089993007241951534176189358948664222088808926361210837214603732645940752457423929254277917448184648725105270699779442022481726411001979784384233199566305577715799262027969271789066689732568601694630164508027393832686035140910217625396881555522316735706448585730361875275204995266567624855442124773063643675665538896787459042817682250184397425333359381165101857794158666431655149524863095340859103872597794427215721812356121389350438132670880909824575240607663442648455307591067026096708271881622558671401995297140504067658234694662735954517476986732691465318116648007434069352098855315069503742636011966299832051388485045704489762413834623118732152293642169379899627007814554699109601980871432014849323571674303406161411317605656325575631126420317330638869304008502722115058884595069511584759500220940360556063348487892851091631742088692347554352485436900876834878740687047545078413784403960965816228360707364726053020085761931869745801266890384725642992129199348488261736069820429867823018414706107788187635809747267077515773239023442021488228267779025647713219759801048531644993697134892916472084010946984021555179828949730442856652445381579600930035301743561793595985475040320416757162961771664024759409073726574843254909636752893994701953744229859280675112017492065393148245389885451801445872747647092573639066978109984963102379036985117060235582723223408204036849026050080303008636368733875673276704981274534086525010590049736013662316164181591713086322957958274098020661620953574602082506726677496638219603016488937023305366844894984789264333587813816407809063931056849405144052258408363040832593085728980721632441295849077163296655168263557642440109170690845745759125872743702734240997294380845474341949064529058226094863049484912259551982174778336847649605681560139308418482834074154208065818865299383281688624763503557810102148079720041527072494307060319867382703759810556537990515223362021426128598970164015503628680856403807023538686080981145418654825681257297745720253351587813714064581858353847869755828068480469478685716875472002518517152800342150926707299055794623618273153413599697568044088715169380402986701874052244969617747225743675775396026509721927243763922042298125107153203802472180141332223810891968515488349684324654416271996575910544275381028304558546436970670487844931196361736868947695726219192685744679196051324104986786126956352065396053209139166423295833568447877750613276674465031504353036079258190396188708226801885838021600417820960219264244960936793315274522325574753023548259128156193377364928055615742962380550146373271728966080843614507983161076898753957249055074909059095984257540754574067591619919561354728414976577406977947344310246895520359233769792898151057389433804571877971107462468775849401362760803378049806793534840357919775897819832361417539650301667720606978076639236952894389997937932769596056731349911697951206618990655710416533998379099474364607446735272311088363938618223767118878768286170863049383803360839207359578347922246981438297955699253240924735342941924152180673041771537005693791556321651498503089481383326043338082760492510454211467998878259439015143083142107925289933600031175994716199341117887117728939294639720501121267420064508923536724986645380318100821787933683683798398460424262357663110313583794889709833936769455781718003826701308123808459028565178651709204617535670114932361392903441886325381302652531160374342282894675042094431990170655622376833473533262457052443691808250107070326921551217953333270090196788560545464115565198899984529933314805501715348278607109273761212546365727831849141915780119309913118893961442105916665243747509375068430608679386063734658388896869992846643894515853041880556642490699574776279115151931773698485788556954900378004994084294771874988806783027505958978775007766966517218429277704779826677334393305233213525040096679977835689556947619953371605719869661116677152175122404870281961132838173503797046466723602649141291932121625540217828172379217188594289433509564014064826490002852159908480269335810629658405017609553121233246579063539220146079150240272358371370769807866820455200506992100071978051327222050356615388013054967587344775835339075156357807839660652178824078680555932967231390206109586068275906812370298205035550508928900013960288400309489708580070697123695670244515691201433650160414355533598949336373828217959204019421702932100563506279998986098766254730558816891125412543002548483773025105547260798651370268487403700173865238246552794718074249018503087982940244830627808873433742940257151538487413228437869402875600334541024765551178854768343977042764705875706255315280024871452520142634013055502878019935248517782157894023085601090872471167070448725078220638606423617673210986468163578593096490764888976052391123213517994484382665697174274250903491654447269304329981422337610434802889231468231202955993061400756939465678545020670902568119548812808838349411872498790014051672628069535801439523489641987766180293945048963003302068723365965755194151660383867732022671247672777254475077183297775119298603806773770354962743336496664829072780277660604130812880844363363981609268759604712917389076621144080223952639933952794171189427488575627152791007535172793984678860380571734129578185358621183995789091305041777048365800117859558543920428358408823773938743513477648438467609575528212019132719735578300773562214264938487196485324485883416500569651631469879596278986399565250654608907456100097901385181023951303470285841815780294426042185484851273656358098129966491875296378734567339941343164553202547014710278557314210696679443558363010794167681805365054921729698538929949996215116306448674520873839118710966003527992357534191030779273327669201471287315239524916018227669525174469493952381114387338365024264242304315861541359710910648894904485913894561837258713219947920886207173124983958930474059797840136158857816617170147774946326160841164918627349636214205474472078164165881498584565575796365952604001017165960397014546521370258152462947852803532719505776227633778468010139387194806322137906775973585415122046425101309674587754443600365340340480804864707002204930625430324125295809364947040916683345538595769364421474123785538251442844751221899272131579180009246222261489092856539643449546495865963845154012386074071091674736253132596578447691641656653595138705356688757330498327285459312202818047590407363524977795194149627028286411855987009460268441171152417486290961717575915777866224005102681629712772650868530136595537988676117219621523439749448213836549219505078671879276080049422852123121854296411213723695043626458056455712153383665954447211048440019308169802991433496515595757591531328677854968504063524184776694247374637349631259902045892185081630023521325373687836334281417650601692933531594731726926902642454114102761158817683571531888681933648595913992380159009857960797272387856764520157886974222104156512727404264966463754866763596856003115805125485947666392425493317913453127192169865079894897875248808067359087825631472092275208066149000871516985274882154905977712173452899513347218324166637214197479484571243094266456505635209032183430965904236369231624562778380945424147586221175261596737866435593609180054668469379199080867368047507666681512556380814316952438958206943746684448446803487210875561477665018430590874089750828426138569754354560291375528203950283363524405842864793101313059315424998888657523910280254216619745458044272271317968135022583292505322071833760180651721541283085835839122841690707916794443032102539615339514141257987948442474803237764101660768729923016399921990388315196943768891358902395704294937478001613175456319237693712253600330287306657123927193693562636853981427714823762357331485617342192217560287321418547026088452871920638963081106546614039968232903940080446148600326234513019447515795067695889614294893363859180291019793302069222065822293928766963831900378929861309687139588133406341699615706458490926732120683155000349608759800136023209560702316574237094957177056449226357788069610550819598513577184313664369967922844580443567261310404485083582958420245556557183760032153406288367368061349284588685005974764739587261084785997008908017870805181099309741832867969101209012412595429967087384330263426861620378405151272873171350763473585912197487561603971761390549191233666009641779381605583045711041695562310177872156314068751820564381082635582530407298283522080087342851324622653381531090588786105785352457955831913085862924415561853301491158710669158653980104289893177684595690913072763804785278013295603575988855660020351425622510754390175671941013005205079110200914822509663518104931738157246642458788243084650450163628657972695438456490580045550603619121767182177137267828812150398379042521372226760278016659431682153229209444940113218399217987450470926914815934726128376471771085522682139149238145886205905932247516827078479322942080426111107644198293349549530672916891823847148851542304596095530967578484848702335932312545557268228597811912346624408978771572740471872327074298777944540334105222967916983209284182410929411877998890803364980058171013513110548354545042200021274079373831612524951658154572376040329038477523622202518178086886669475514755433830467137404294595751626226557399514370108514293231617849361812177012729677657507913439840805238116300645029781878630344208874123116712458904386965856329624500643614448119868963279558644480916138517771485314059202746986300344000350249435903286780709181828818092747518978914873528447934683011596028276942866113210997645086071165341591306615761619223513971201148716034468385880888715970857987274408009090758792644423610853088299794476881979484206989749810455603679182691583311379048779286261909596408363640582975547639283270611708405490352983525223139166321616097769166394542583519398386814563164015154405784579002652819821032353294376040436563192867036378188438904233167976900013025320300220686700944507395033027665352988480445841774991845860281739442381427082447214849959594646891076541893632344694478224580680279831352965600688310953995039956160990928336881765524384884913435783631470869224872971153942581017819602426728543954401319876808528014234508513924393995226487622976214822279810380331136789803877074157220230533372726270354156772345585933326206964439323785879027828304749293942688878690844469347917819474523149661630743705640622497903905054264024460733977651524844053875353681618184300161902262835990414541398644631730626044238402800911384403189744634853668230807596851409117890049838461177551482113361374347392327246059153656405929113202321528468525533292595166198645055436127945333634756806272103744825487899800285845088419004683846913627844966565971918225400863544051047184560095302906414890143106695076586867953664379194806451627818278625286569725774053004977258469400281642751012202081281390566186108526015524134655662844092560208802519987070573427506337455765910976328780104385484856941576558251658702856377118186506678803884313102738391258129789771673976612633676646118417638325747421930685284362047053346496906437469251612632945435041926141461574330927446716224661839394234149749300800358424244537337983719229539120826455597797584915869301562629401654551757617082646835704470158975290664957617802039369601549708639995548761770208839121475388873022559729841791548757933686385979589562791313328614516376448934942968621615654030338388437921454486000825246077302669146500232296255689471375091133995477509119979884384486480768360001702044025474386695353948756486298469079154993333969862542894792061544565878194163888918523127898586255554248580680432410011900954391914405595340419093110512924392924558712158370868571071694185995997766175039305796970378047329456617853516930458291737119311923766739737811961625037884552874360576528258834719531122210932876050917130776099849569129977577582813418270743890838510240571722449985992269515178967002015877904859773969224337954357558359336206791081489444514001821068000622978820471092640723074360280725821020578855996689552302423809756293518705383451729562717595323543378920328268217686162613614219327559685881819909359173758522856313739666526818937615350199535991423820190502946485537828930961904576573490968965591321581793217584371678750069129165141550810271222292257035945263594766309426764031440358191835831442448594765490933445066113581559196251783822592520247888492802635159537492352836663385811912496614848892796928643992406780625743660971547371587718368516038200565468859443799448796298340354973480072825104658822482908667983843914545425202342756839642978642260988785926958845570486293202498814100699689802210673627373814035143790424957136687871255050800737280919549482199156372445952234962725340096959332961653815547865869551109120387006633328843132421557223223859519542522645085806927588627887661273373451363891309569450424487347505480352641856796915929003357657716055337943261657897349445661930093414397889502757113488741704716828693377012925928701977698582169615616834546462680718027187516741453405166613150621344699659132878675382677909785529477931833588459164922563401441235694978847695718439746689620289302956568213131235923667540227591205531511016952732844310218868104302333129022935349470684037549549929858661450795036932733195005422049086484197255915132578036577561254560292464133747826051479789259805889094108859789099109088267379737681206921762261768667883780150506287311761829684949272677000157816195514547339897425100167639666463485526379684508727572258857469988213659960292390874489972881121445562417162980588038147595609816210753117785204932093524227185895460613826589681123887289636246292199917284804012548051523574207672834146815023740477390581498397234471375159128249982202595604070763581320587516211849661288656140982486967728208562076202230505194937994732823542729591263872601371070573726238070347167348290735373113955356628469291538445360980506577737170935268044933433779849631246624099020666256899243945065104663927865209883514382934435471075269399274546338593368844334250041796485861206242086404296035511922581417932577724071792821219658377812991405441270124851628853093381284993845721913357011738735315713318405746340230306332484310644212879874446174580813439996777629841636836510964948392763445861579697251872085195853279548402495267914707835513891074231003639629126710456463828013338845710482785995514807289854350782046669159862182964826743908373083186862796958953113701741531779775371839661092849918555820908966549637887234824334697997581432514036070241331105503193761643943854073354730081118341708974623856235086325753513982592429921435034555500855185599353274583933392426831027138366124061686590188434803143092446701185353511015636491794593355096247759709643718998436834158739614498454279317123138279317931126316753228433384408869925197468556128323151977915512224548166892256061313653319555699832519567177022696744091263362177003043468839951632636729432205390385014061743453316230867676261901577318431151067176742109045714696364111238523038771050767808237938536381240801913137528420976279934946978421668129185709911626647647059627756967726088662361020217190080504113746017255869484935984500177454235085753008714219320020215961452739098154344777656958827055071816559280238110425973522673524669410599895542707419100822339643279931912466919374127070265159380616822810145828340690994994526228174633751576634406119487682896677659643469390633010224935080887586998704290055160352925889578387784251544362549047984474202306362362181880926324097143720683178542668619689226908905841818266173654935399947395105033563526948868253958471158574200130425946971224669100507317786698861236634670801154018929962523365611787591103491491820458321928784608976766079060881555225665220463819835284421358467459998698276115543092448429773279741946368640541614515286986769429994386595685029165054314255059358945263771444149604271049423454519438507508061402937870844005889311192686686927720517615165377367142686174012811945780075223092457972655805402425325762729596458654555838053088325580178926459425002513128661802126290058842960033292053109558648226972652004610947169171342719083222393494470818114886514614820513664689428494476582083810134812277781019413322192056091100920145000802656524383088259865752558407485878045350009558999684111397826259814796427604101350279206975117280357040202618495057040770771140992292412828948626880322742066513983534409921270812904896724069422034280670334035375541001227598896767696741728404959210103615870878279855365950569546272739792715236450286267529337201502023768898410843951080032519154345730933474451547891695844938032423879920609093471673897760998232260269388582038136173737122246634374147112167698581718375776552489706016779031308338451499018817342173787969147059975386179809475971526001147465464021871254480342577180250370951984118956458590619007538230744478166507145054845326605338750754806443146870566924696868804787343137181486118768852464511185677643922272649254790599214999080464826143193683278488150800957725532521259187609941358294131962238767064482898238749885423908681795246293178458031691965121276065846698801861833752520198594828498071319488709777176819808456975596899384382521302170750218081359547517767238847212928777836498849615872036977787893622463937131928180961056767636050916732607053962786348449593195187285120184400635007873370631861010744094783053005303370211292361694256114726694634035915043150579498897215696215815419148837012631842847916022819844588836012091630293138397484885434878387850803619207881391672137240718877317428567076417181753069491078605814700058544775748263336521849874147556899242356650727669124872290870109311434786251294026952558442623912997614153306902131404230332672348072690583128121949493680105835267361886194010032238337244670638496486154157878113697804866040550446440284502850603306434121669690754743429369608445753060534116131878388787416017640233925665939747023384642326010909597287162599244231439761118299613197317213119342094327399710630608796448678667216729955868705010826894259648118075166854701276352787891537908194836375566373310234953008932290603330566725157586076924024947848142301248448734456934452956524324357583883255510034137482494323534024614570581416057500330557907512136643996069005798585448121681819526630841558259706857120723104971774417065297634925172002121036302768860997937211209433496406227541274231232325392263420530433224093861157981016944877180873073393349022962872196590050838445036202359191028773280983259383286558695938625261295671276522804134309137547169051408134632002273131057937882833660694343650466622179672694068050457048284898581458793625207001498158937539872622549736411062360956630998578802436052977176287255393965027996138202968682014485344036044925936663310372073056625084521503790463342339800221263737016962558785966685972797490275116799667572735371231979308546174392252996595951606661361579102208209304157451836950670731795140705411010130430137552972092630448102753571049793434056578890957371302818831234171247180748039886033493977705925871442438949818890413131084377934672993238555409865740430936769027176343417362641617036603244442579243718783583736858939324833788883632620501111255777861334009462384577987433826952862324895051896935708307392707107895399477344373743808041075067615650024370111081527009392670752340606500095003848535485309143481583733758629546116313571740884063784386041957669981039165788659601821290081405877510019999187679507530476116379375033796141371207755304234592084437211107829124030169713239991371309515290931007120232485384135974369101034417916235356284728242215521662441592314763156656761761354741382922073779699394294215880083576620003487433064080819330867147185233253795099188787626629292802250413896846541111980689125065197074624959717018766287018668402367156488192577319917423215707286463498825687536588087776218533586399353009000362707062049266020037937134696716899095005525229499964349613621938392501062747715833471469069058760040340937313836523945366278354606173214337947852097694474865266223457706966141297506681667123277359119744455393905171223420440305770499808506723322019888668766427948231926970939185434313468065976696818252137554996503655745940650135766003089294675426683308955576260512924475547058973572311290926401578683981091350159210450333672536565516924192181395593770573359292189112368933485629915014459081923248472018359265653516653220025499762609799148382694365747115328773403635561818975926547643844861508101896942881794773012562519344203765903679894469045160824929394982748790694627425529515690226349936048598394487794815432269294017225175177371261243945646172716814941542528479690588740818012057538782626818498808471056404711066742860887354514682285557168535295636411896018013587722166390523760751703029434592152478908220976130639583168126287377731069895158369075029870647694176302555558209587170026755238403407485723181523564496092574273202621990117272843373131162139238221592442123022375822723878708228215547109471743886787825712206843374709253309254646306679458586770961474948255962365056971724611909386144298661783183494633134697920194351853447602964064084574899563736129875138050264424502375455146310320449132059841252683334483057633623959808268342162011326565441672568754706727839521835636372118287880104928592192392393754907081386075733047004695212371638821855695025495989579768483091908383805413686413948571990638365753709924242284611472620038650714600507503881127383725267983342898704035322522430078469878701591015224502019592948589408993807437937229004234378836900785628244451802747017290092363223322468897929101470733382808614506910994387721913288479627378541972566772447078899003750033904228195304423121045081439720603614438277030016004846723199044104710680977607523064217444865245417965103244815072302808035737366801428026865380097437050311686696139501550133559327042361424505987476722477614195393005533232313031412504702208633908174198720836970986665718987356936112560090641595624128851258534927829041636060590531110539223101532463035581512824336694186914285493131872229983901757378782002392191998421828899397123179794856962593499834842703873845360967178516254030511110650188890500348502005239141843067840375014956741338582234874984497102162792484542486313069537005805494841187019100118600340112823758001912289295254581474825095353791084352690037790380219855170747571665690903146670880005342875916749633574555179898393631130922371503971519011293267925502709323229411406442102992559980631100532474203332850542059377164352721431726457110511461294700685517621790724510222636851200635121241297640346527050454936326437124482473687540293827749094279993495577836811742350029881641493599132797305894671506105061384418080981173949675045632291735611597866334360785326433400029350748474445031156269200278912645565055783082607791406860231174489354201573385131604732723796436587799794115554302290671068761062139457256761308527291534624039314769893939309901139020030490807878421772801525991123795667303741902719408779879127217994427448916515854713239835442176472720876932784168917633367033923643144089840490522379279994077918091416116591738481722428330494053561747611607491576894487480965662851196112776535474490918798016255710625871712695647406317832440401066263896093969302827562022975712403339913818724639618457815118553386578016190069478510850460240531167768386193794265109338432262501073840809040677383677534489236059801179776931391715135339840477817407178241847099436981537809041563938817516672092124678854188377608439122047471300863641987270526795412239446783297677249925248891030301472429270447099885890006669627207615848795119012876355701763744293111421268007018312172680013335707441210597952364165646435610418572937932201069277224093938510546278229278748366027570202253411012294684710541490108193159025306849474075685893968804203627534223123264516362093758748046163111949093750680835497526593805555321710686872428926465880622093740991477357401923219505499059756358621366386317748643636880030608342949876714306259495641080448384431437067651470829487199944863717408986811553067695145600868405982515358581729192124066812397296071633240861391970137611319799679988215925547071315088071318215529892548972936649555230135521761684621647389706451680250365655947707027625113071686312438975836488304743586493885426280695905629651049688525821411636667218031931119770188299070432296008173700934937525112886452498528542459220626352036298807378315985307177504052469870774753008925552523213319117919279226835874208625426500594151061204472986961398044575282902659930347216817937119401957658453162257525172909500166900460075495420197342677362509879270847030220801233315271417260909595200503841295548998296156068050957854494594369708117289458370141927375330678285532877804720695776965289469377927558679251909344937228708529732415623696829516763288047671693684988983339069576097359302890394316803052286163956311956242897415850548755035314736179088861764268937853636753341316389091290936423517840702787094646122764821164152866892784968590852151807325164520816146615440974702984049993756799131300481945036876301939992002139559251036693352422556609080683224207835821097820310323112098228987085149415053859819593275002231122306009374492721521767163321610236060919036706799947576273613724478946547678977429288135501463682030169276623792017765605367386956092712982916907705299375907747708177500960434227740867525506595595964364438037754150739652172915681316528726651226166735923312550820449724910949730617288948480545722037897807202932413247258565197586500698868215948565307846001418148884335456601675386673544607001713749464322701516787186805017260986221817858450508560197294330796294916441434240460781242529477709014000993463223943227365201568464426745130024434451024549934957715965362183197751582411607164232137960539698329139002751026977030840234035108831488044074752390052347223220527508821585556345185941115552080831682806504124455161262982520798552368893389255862420954656043471704258158868095306055274309054453976360961800259574600332585759850743618746203358438219054196420155536805861324288839514592906307099329151338302797772154647739230678121226347051790120868906292553138908202157843666880250901078304783658026945806371197280323084939633270367293758799523022115518608284504729950379865488205108945478651863912989169383639476756479014664189642244241596170205649109876497222166197472727044379069192834790556338459655870392892485598660780735981642007473897052018942028306960363880142613633333677238600038213840140989384606595904152398888621501287603902109298597590059204171204778244549380504827573464479870980674274448409100091673010019653980073711149425357563527075290650804625826522640773638756059037960720002331269560221856597169044809204969933952907228094157313094524199512570674895331534494522931900297137582985256359587674265409800581364799131107733380144554674016228462910754275111446952171257984363328013445628728219500061943667171050012254171918188153163157275923278182645180360957166930438778818266267068252946100726106472984129115703250155785533850714665918032839830268141239118917696625642126750546279718462818702715188066552606942374156904533552681364940771281806972035982391463971856838392124778289132822492869090877614580217309646510733420731825039112441118676556840978173449574575358751243829659001597429709808247618624885113816752543809496326628498305505325143684893627099150690606634635945819997880306631114008445674537631845427102670641616504216571908844769254485669389742588427412352020857189049408127102635538562824732662863959719010985750838640617817218088472502599232493136508916574554201701295708452673049384894047899925415520676442466928093286477606815858435690319079782979290650483498934792733094339332919150376497947790943076099472227928479736172646232851813888937804789577682717203330692131446052513649594225518799550248881752779427687076462569190854101649280394878320945983845534903045576507136053434802637359860392436134430414217277165619985962453141640145246174019392933745107156755999592136722336358142829581601264817434381431766867235161280523548322117276172511927276000720333733873011034442733363169648370752278689928230123322168673776261774421496747737759937700837255790932259471462766364558195170912281258462202208155958003767876396596078536940846530064542079056195019937739042608332571413865808932071071756215738872834081112506039480824795427113444163238411910863541592458172277335488460501174935531318409677050500637558118493149669956950956912684090301333680400243393805636880953213405852603392340130144719398743282709866773736797722960054681665655221434099289455728822419208575517727298503212946324153927266032734072808550599031942426982141938460519934469701730975672906507156265439594820812775369392146871261179295304322755980044035920016766443124615568642056846451629105484347965855812910200843228153359708166730299736589059982765103251751558932822451145109146487358352631509193692624458200112690374739897915059452070525291577172261587743807922895141532946379798053237171815777223789744024613793232298256364491383514663655008089953559794993273436575366675887261857207745122707228354976828727315601733256305308514044091000191712582308035463105980296085244230861641845669546924324884528764263520680545417332940734023880155245793912130750494065208631117585970478691334957696396729957513282492292940609774651413425324735632562263279367412206826119772415016389740140335671990580549283210668245041764308839533092132031824492111640026030312755600713077704739266136972923667605706007955314060864907158928086872271097757186114351271411995867528852301592955267466738513195566525844177894329357961247256385556067983689471701634318579577971233825712547190445195718609868079286450634435440837062679732779669775026231782711328794281508475215243140174499449440925912835369483202937208142382149632064809581006158575788708973533303766989772265878039555650217205618907206622185741092635476868158654280813917484463912579279308858903591690714115728072127151774080799895911031637073207229739168092661585859180396245211909669332561546087892858915252089759897538854317485506921314904165958704391788243349605369744135892850197384189087924626647656245292092962296542647014292642329664147965683454192718458274475374649107543416792480497297988849808309497960682101947987500283770041019216384134880695158349467316402357423625648633049721108034106832969689029251548037557186279771397085849670641484346173502481176353254918860441167134578154466819877602522045660463743325612593394937281873715242438815686200279602123412734467477505762283054113393054847662250905898810970433329133257371745292350335375464859682868156683113023191892922452455138519209456470446157862443099325492466065222008977895255341673457559510054663479245671255476255701355322896458413581109107768513870847139853349850094353489126915488310056706286748086409106950056397295808109063179760969597046631548077109613236473019723083521553989133696467615262655896021593663803750778440965420585275663914619734175498808877849511014920795985128157963558476251865480881895085341732649519355315802960108060310072092826703843127019768771715747136289890479754489345995060144570828039243924024076161345804648195474188738248670917933411751415917961052130695733272879543240562164710416152502694255392658715491030955815606322604147685429196812370638138378718748027159978431319554270875102453279491826860182041547839803785018741090698785439517421509162528827779604467337197379798778366048240844294181258221861239657644824676317753852466132695071677604515220825781480458690203055678348564358978929593824943307537858277541628371871233322202081683072742517091312080282041975589277156859596279415525862903836231241247058664877999469339150046548786941111139308208807016859376361920615468569214988682845833300683884332204680926849346433254135749057549393418391451124335072405961127618269388916670630581508128730891386160718409845582401943942843889820206470934780393825926187467822811903049433987582365381682879840014404022032863102595015633785017017917711231666249282258770209086264478980985643569683496965260261663308345686210089735115040450080797616662222593043397686614343383202743116052070733966515928301516185963121176155136952784646792943062183894821219928467977441167109122425727888992833063964849311096042653093230050538666470864998597760860236989226709330308865582572964654205223515364118965919933410527893346454970426484410662702353820056391652585756143980695438044471922320548766361724059416945061717215346072845531658527573707210637421789530874731881963396124045458093498669323824927926214161548387994505124898205432716569444446154482373540972427755301858760187770444551946801189038109231440113355998477682827289376926945759783481283653653569488169623764233134021635019459109131925701193460673915368490850172549014667560251760332898489178436309779213271012059962002791701536182341827117547180017103319879664872976294260082966486720420167196413896502955507161064464552797523041611002431529219099542858546918854796123272908788347592923202538100271426005248233926330464366096750915154650341592256101698154022409363890375391154443920427319036814500712798170802909528698469613528916960773589424777398008723190873044684101827679238553343885325121549100931240040417402612074907489339547689359515205073264245574130895120311296858610039674402045607299679109390523030624669203563383839872304446718494394767973631310729270951098936273028540111970288155496069327586024621811376344835170929187404436961356135355873777482510972830658451567450536043589033809025407714230871769665250687880335040447845439016259909947335282358721684245391549607575763910148873478520885400252870693204459777177739610384228975751044937822181244631458284558246629898848115701210842864976435854954659551012977895759385442097170234985057758701240332471008547264380492138504502766857751943466304472690595601771856597341300265840078772042577406543587209871057241681780937426498016066978556752701014764312674631057111461187343523573728725037860412498572501254253925438624933111565577747735391252487689860194077297421043580245826050794108604999247899768601486733588341465616485344690992060361298281843356550385892430635478576886061163501335061912877077101422988432635496325806539058089562628550248123123260060540144705196470307205326509711729213184800324619657794432837835766910256409333578920548006690131836139820112180805287651715509762020321961524461085090732629946515598302720805675419294202172891683258556558027919026918915343738891616469841747495794742732812208494564035491134686578735682675881060022483259618818228659309271403457311942461702815513578240646442853965475281148773757691448858687695650986691946878300850216504622762227436794671372703150130744184784958456392748472315481886086917988377290744616309559427962636667802050278189947104645426125504487515214052152791339725724375864892399055816561998702778321740093280000240825297576182424607002393506556808763155172815883002375089018556964179185995910310140656248481278091493134965517790529544151015923417231392036334774977122315176689363523438844779854640978891133812610263114323785858828254399892291234192118859631916052839733021348712211583361228864193262213711079070349507801300076834354985730232624148343347749132508830496133750033526317119663802492435337185758637449696466496162708861460550597237461436219433659151088507676624567620734960614453593698312661280233444149451027600643809269415282218984457089874954814563190938353833924375295989815839076312260245603941462791314143883338617697080227533603758168556746638051009438235178544126217672090698902083814063815692831451724125481696242596183714538966149768832779150260791738470605211656247318625737202708435651471003079118539774115014916434739799183700674714664384580176542262882877505749450026322858246249622946272063302542420286977965166880893317783681139657312906502081020052855078595925676903523141469859843443918040030627764518938008633188793076611445457480560332670563460666664177911908383725111602601596564934500036477776866293329003878735561696748170374342675465482097259478302694643403847590955250693248825395865604940719747783233457444693245289363686871325785392806492674887888914352317972933788242815804881967779978930935482293577235684737628028175162830987193352097806857148493730513448672455913896092337149429896854235449422117985800593898703099238566603665873456595746125946036437228524507081101189395920928236297872765211824141809943453864392877724826098484069488801459374092808409630447800722043328065192579429384490470392555608552413817180487965924944895300548897366613512265063059378504262130244217732535600947660287024913733581228259657656786013250241475476992024478841000653186039704544827099602561461621549636866907852435016284416825279939631885033882277753351020437790622380970304313889996254686812810994365032597769002534278133551233738491716856901697560927722826847064240013797265544143474596931585561516503453057853923422683085050740684843527599933742366675093239319465542810274493665769087978323069447053651726456137243046869100769636101607522741165358643889566288982912817617640533206997836346892074878558165154996397355713174178289218886412588122526206558322206425398411526729903429939174722633346027872484712944145208698092083547430663115823982042036572993792925322963717778097941437946157668390080782445332933631823859278081635290929987241852019533241173326384168873950096086440503328774955064334273190211987345673286858326235847976916484982815975545649708914095092622225257907507695563306089857682741713171785886838054110618285206081213160616183482241671088814432058315552243275014568252798666570329291326126693478558610992320956373699031593374385681694756364597385094265137654960292212288359835001269420395093720473101912634568534365257988918498504333096363283678904878496325674903106888457926049810803539112218806399451121890352881324336010106431645728282939348546603649064180614264459669916313660789292025697231036668293071333331009588131420782184769697067016738591939384032232681481295605988045244552438447443857650874628562343044698871995314250780446344997343087921125380245849822831331960191368237148073804898710699047190846021992464657130023899853446166622159133810901363472193678948362948879853542444989244767210271678815594343203130815094056857220577241767829783910903246474322911489481064434536466817487683441889539715312715938927754905883267704589455829898746093361944979822100741293070956150444355774619263148994644002121329686992908530081087493006381264123310356876187041628000739648815788298300752430797844516114779704146605599539344896397121040350616135565399803450101547134012542807250090787192213727373024962152852648794090851062479024776146133309892576950445175664229900313441397967262728724514389358994456502870006640474209614067550477071917993177580164228347919083353056230147664602752380817548694405784353660658401325335122630815668664999395767942828550632578738312822656536369844098895021462441161617594624278098595780987106063624900361252085150985243308062478521323828776086346338619454599418229586881728351861455593834240275237020865458364658146943800825815940511297101957601877547834683268107240899240320205235500122530265482386732540416332073673446956353261047427285128199647911642904692136619782148334757385771757758256114556333037433446449374950674985177842434413945479382007679966604000831256101798724749461146409449380698442108532875920370076980087794570611260354319232946387401355636402314877330909868408912810474338199417954044303501659060825784266141485747305777145075201109787107068131248029102761778046258759176794386746512459317958303469117522200766007449362737360346430419747391421028426590353535766902263448072559966537733409891636824243287032347288700893168910666649112388356096989259713391165998082715353388542368342956160019866759697376566504414088040331070110156162919997750767521306546971482885912997836996038089239709785253635882176074154356678194882916060014405962860681797824980324492567564197112872979549479548000271718728526120430583827699527252100081785588630959538786426673798273979581318621952446191861306753916773003007006064454425260760194240907057939925824131768341122026891493183344717847942749224168120208272198234673159690263978449827289288978336966415718298910560262945063860648792868025254041294752151841485081256912164054324076596798604008526548775908910023965702665863004769341421328831858665687744787073890430475179416710107176259072780929237764471868868289319765527316356665734793944620834200744054885071369738747223500075937366812851251334685398913532475586437616531561333546423318552861980879625857353752256743232728513718592440486581321671450208804181400305000179432769421058012618217850247556481415475697603305814695014265639582354477322334940651743443993437608211899981021158811723999475932983233538456017906994510134149819039895190156149247670333389730252886994995857973156996653728832017528378037103739840467223769328616835603914603525683646966700535201187348321375364504039021992842306419541673526567206101202804771530441193123250508326591789385173749659164647549240828531198134424349273894281982058075738557277192225299813900717666137093965328436781730290199213591032730126820664435337533538647554528814000534064139101760265911101335195622768278350679671797612474065979600601148207335051259429576316089119765945462322096823947657653676358985844244453236270613877408034312453460497786602981647474699916223552616979678063949039477260729872955113754106431417322989454000206495986440238466174104780298003993056418453149728408025328360139665632377630897450391466276296641510056925978403554702256853313236878052344074049359192591192312899189232344878069199363769832880297596778059795091340906987381155776220668159044560664323367386451712106629799500803359046841566088446058388801623970313511416780730420221687357670351212929785580598894695820612887950831972784783652133407357566309617726913145840325512498330908994966618679714587014211227182762299223951301985865246970813045992416476235812349621117867172419244606449287484867972705587154199271706906680006735008312055921310554805131194120057603831467519022424904487567579129422740945630084566705301502533000774458271738984874568590622767498303788791207264778295043256144962540991767129227079997912754684766597057291287888983316972776289279374406708877238023346660835521909652227497549809979693647119167904490657887388646002534364864017121851808372152764505513399445167501777893419789926314578923313626591979618850321371409095143906897638349269743478940745828797022768621605379172277128109210615162329283753295050424002853203771523230975400777872665241782675069294335937510335643872230239873151994295822034671895331234731671440758903243537983758796611039807369999370071962491077343396169706035565320490753445148669184807301006932632881520421741444456351132473848212312386909689943315827663404650119696737153748014979631034343518339837542331997433738579954628536218762469429486367842043698090472675476052630435674795364649758260422093429650300497116205241062125348569896669513020845619663397852551334685166979303058602936885687849963653589381366277396733310760079633738945693662846693261727849884723403455207043614659135731986914190322237936357242735993162389338880639200872548249245053273904361443573352773486160474378829417985152556911931757906219583521106568247374135971782481238412111203243118984380762718791875557948524628474523556493206187088721046351194401211402273305070704074643260334536371900124889435178928368995744493462885387379564454670533138730927361318592352913040173030424851720591543881083496892966270718820061561721982819270523209858832823692089520426457211316095558735028903807729999868627359190929420347252842062291550175576420251869899866173051217535648825393969926210744170767370180585980892648716308222811815006998384319701063926847401692304122334864016134278677405289365301049445662960345106852321955299487188883269528553592699587337498631761290434377299257797932123941292589153664410861115216828733684795404832311177449838367959497321244403598426019902118959494588327182731530620048655879834979978495706233707493390890318924495860118206251411565180985486687575002021717127204056671361147750297366280151721821693041456645154770686210695877671075375743196897800764941770579289711020233131338118404284777551800427596852472155942704880279514376942774873401422013554512390875510526365130506819645278830481533476890062824356450295100107399197519976005870824806231933684389766449765488452162793875365237310190713720118219785551708429358491081363465607503539092726931370071639660744649974399885524400369715649941367581507086423133915609313455390683866969230934714961469406398053221289655229335539983900589698269450421933626886787788019053526306575210163613077176631033377342212369270167035231413374246277932481633337022952783242587599340847211139426963597243243651456752876326292223063483355318610772717834457012645922215561453097016820714217441584524572407989233128099547221142851613824083458093632818985223259210409601530863192727104831701960849368027663810471429391470800347548915398819676345884043756639814623450005123694398215297508667638785768395793427288790153836039389809489185090296536889652189942121077647692351051636987419051262625547437537251940723163650929750186356748952818953792451004980771321595414427909041137429854196387735750329583461863017426481263159523190249114513272309179210709167420748387035375583026749571354808274870092713878344705839585361179560654590108012796352563912448128594101419692033616465167177215183082530599839633121002685577134751335640618873727862163006436160396857400852039868958816029396618264250553444634291589585768815371589216737987871472731864185684542463358010072407379391157300747693436630875155437024221185805877543212641879019048920821198588412890236740713380862148492242869608610915422649918573085704508200767758735740318895891064209563123792190835376331917288418591051897284338045405618202210311888384639981260031212012517732054733958446214432209128056053934078617330755227725607068312325613988954899961645775184465565650101160266136946084033703614287946835567195843104341058724088450089548796086830806953613473303457790225104864588407612631429831868364271334347171325489236096315411387025726809742631564851936456816318353558026771780068411349190015075618386762479642296554426954318062219254049218126744050528628585835177481528696406562752744655241382614205363047565118650114550709488647334190785418382696127196407332553829787376300295026028053713365614402648661607677493755035534262632164430865899568922574406897060772908003105907774080870192142639901781804631263164149419394798777859878826644374157431836306869075023780463459818574173508554033019630798606491343413333192910795368073148058394261121594291155627062360018112454065483788162992391177018558694588511797568597396666805273274237169747218650256525167043493628456500180307496268594100315754475867167567891442698321214891476974935771814757413876360453813868709884116456081157721341264701121271615787060954936318749060730904895985220147082243591480441025395092116094802132976620482213479037994496407337898025173986515596498976421725889314808219175649915069471921340323134289999465685179017538890716555944504941362795944332374764490542359817168714479238291843641587192469368153386072366999362695289333561843075051738907263031699619388152123915521029198078990258920966722764427920421578293097864464257914004584336809779379451493495840571498988157105301480715021356319398702853079162419499370547472705192908755361994162253813892661876529448927917138948451234139753085309204145199944784290462600705195433610737473974028536611197169569672156715722439878000318473956150461605718686603511908970381984365080096059299750250082310509186211806137235434995508935012967920308666267152296918686183844105712981553381974284553436315130447181017814011212948805984914966387925621063696505989749662254155947264306323186907223121133076476759030481767693628658120216765284359668938870461631545677762049671609090303718886261502251700129164793894716066498696639225907510384886215154173825835524224793961252737065399492180988184506425725629045499479980166145012673464812905866733808272456563862868614113689048682692129278806661065180210764345699010096566553075523261119541414846350459600188357298114747864080383723486917665127435618070655141417866079466201379063176511038556776979975739493723462917719851875671453379917345618765356201331949497615618945159682468737823929566489621531311422619610755590458617249241220359136882719690500055721000107298342663237942333775551009797373830032526694794526944442714029293707680721250268839570556692531423452328021600966630241059754778046796411797529754397619790925453021760907847338934958529195878101534408376382289116816196478112761890520973419413367254231641178998872488905548196977391783093657643963261656104464517213003867869297746282156488902160459066026801041922529751186174797779865320591990695757943964170829988934874036152892725693818897152310321611077941209403165192525313068718354079438001425967131039011967473226305508916242812932616538219732459452044084180258122077008924300214316489199186958651075176824106800391040722594089091154211023037996063720607953368085030965369824149896488227852581181215204541588878745102830940500487910677647931122149531247995680550284555055116261776421788386712221379680509686421437424652876923173239963485739662267558850795571063971825725071773256802243956709785345837058821934625667203908209691409917430698529022311760343481251352255461971097005644218148788515625630409678707838222936061124161656254470681000642029520373296670476019703970048552469670371661540127081196732628274176468886833949494475903063783211349841550227740312227906237227147593889072691028822614202888874140191944741922629217134481646321426104956390696209592778359190728502549570990045085494175298450720738848452028595120580553634393374327687477519427624910192968126971349994740788225966471159506605531968784857780081621369646242282325691838201487070939691287287787637113904142949554195191667790460343388468021881494235531759066035195157443250198832429219508797426562800054818923600592959386492118291518818545171564439005532771436679609985735230345693781595424494028511213496027786249300183956389234568746274058538710188062692666147093629291953063098019310201310889827756493090702699732850809460493745462786890958604442828316938019028614609155422813801743936574451088899916503468977555122407470824006496437514739742692394641574694322250935957511183851241162049108065986985142289695120908197748094094307793395680108537701886707955668722787508506364124010309049183322645927778086449231083801074193447533908405330532091462222026888266815828197099208241325182541735652472719224533945804760436296637238645857176869231549505051378100487959322020521624501725322577972805997691460927747827432760401015524810002034386689919352958237821092433493862991715605380306540877738007631215565935176764259232621540317002569063788515952640748940995083157840677566475614094154364444507886595444736134252217074610784410699601281131571845940494503262056717929658349466537328885347115307652338949230707125898961704566932483159075326210709535732310915414858962034234283534204617505120687568187687570092855928111876321081143825750847421355243004965800373182003723908758758145254276158227847375420453623203843044057063312945457636777200214190333280906606804700812480067791780197377439380062009865616007369267493360485814435531118516333779884917274174696427373732168116448262103296967111397122902125686024056013678126704042859088905442303619681530310655165541072458940861975187045301519221033386411876504343272497642543842885036031839776403481206788404406969615684694336177451291389127288250993801656733131615387658385016965217895133559423171672773596208026065548077985765557021296190732715692478999344398058524770317736715077215917561121006437823961136887144778035960676343316165272340476360473893359753453426086352735209548367152854832898199167503305794266128368968494032358656853190700843446816590229888354054674634744250260599039771435478730431656079451399850295196065821776110695116080125887496873358188741454661290227107692722932913485540340379409802349000124142912694623988187604659085285435960391665059085251473795447908428835045094743081027964502105716645460260818473650292272496589848551678216170074643137903460447765277355816863803932988650647356239173265708207752582803121541042646052290420534386091763630473152779466898339475548525478035603535353904218193258497511711798163690102162589779262159844387973212219328366872424842224522919056747734982206777162037872206516655790507581871047166643258642902019136030623079050935670790286220858946039071307448718098278413006380928347222039148715082223883203076802183437968571932379889898994668565528732032457476666097438726821615960541203870702980292106812163957353554525485417350708426412184844524119924583924765750113489914970469704020016719850178405670797245483390072320666338272022094192631883410631325742439221731956754772343620669932167156141606194259169783680927150051040899041513041362925879284366300261311030825104817103187622636287713555897109806498547574391835554008718062970284590754230115690875040197841541664826048094610010159632850969296658616923812400953754873968689374666309582042293776480811427766403409469805092460213524241149970471749723531505561719399714696018181697077481619284207936129092374503380081211647829321331750417744003946761845224757525349486553782537154642611594617218906827436817891103265799853052716682727755647891416318966101925123038647857883320201224642494628151114092962768148995721616351711961647661136912507635748784978372994503291258663995091367483765245850191671055801471967621521753190972282427334113730705173185473299583106985831787821829596302050425636712376733957794069820742013197039457615056569854322843724386754430422488069197621789198864813654136202733495112816711401789167107932558520943781386326305867811200337259718202743224815743975092787831572838826014171991402203706713569937871484204272272227311533927441508858836648219668693357703553226278453241403372088972500674245803265761648709787790734139571215697743131003726949111912897181257826843388508663238598653759793885232596454012658856286448539720384426573491829985372823174917095107859143146386691917417879838795310420842902583456445321305871965594640273895832449760170860453964290932332441574608403141193081431425348340612643325869866480134640112515621286365712402644616377222371216476696867701102034785908867179354942234205537451696142103113150426985866806105849839081796804766627118552789357533211275109986860504622010260931591902897771123898323378489531523773959390163086631983177858794368236744654085488041209919060382627370323437751334673977175669511374653618406287196447666888875006798456379784580741341627341075853388390516361429814587349922857088200792327079437890234892862542613512401536758110195975548195769129639393113053307306060414675135123917545944456992782584933463303713701894594971791287554191924898774090040484729146350772532240956912287599338796439769811191655548289088240016481218995131776305410738038905799033255402844713295639750902974387528880466327563757786367755836685970702788067088663216048826024449218318283204655352369329916060170599146969732230138265428265669125898926431783281120244437261438566044022815300134412884427467398699876050290117874908885825290792659621173533984392222210313779171866989391599312717777316644619764373367541338950920108717340776922489547804244478851824978398040095008641080059648658084840217868533840119164574874304015308861484997590015149055204819829553239995298922752665549691678983861394054432066569642667626863022421059080577454153306863048945305643681007525108389517305066973429670145436488200630022523478509967493479738627383644860149749099643336232176692473163811329176380442765681620933564462421425555207295631485776662550222540321147076038775618556845723911771117886331012501644886016568562583948753536620816440154560659293265706293734925388448669725063676680706369101601680018867614956533934914471180800187154164553318190296565351019408135280603157568109223082036857979444039250740977147443731887310924870117847591155035948808637644343837533300365725049709953563624841659996801064712334701038911368999551384726562362037217450759032009194365330634893025759150561940503892395879984087676451655215107376866233698593435716831834203389949162498413472964967254550357280511808813798292530030929654074697202515872966925033732654956798149657323952320688858388394809142755635595074044667569892141049520239785610599109212440595766002502544708213709105246723083492262884351618581605096375451828741840118882905068295312947370392970914403781042975158374409825919258668609855689019000941252955093303893624375274709372401583738947196730732214925485666129046463590446618171660353770892257872349736890621050862094771399439317806518372654927913570673064377354986193642043004952074505903675873029621740229891324537976410500280333251916279723452960228739397074928947167274866167789309050107544767245076151346233510647384361643122426372917920459787249074975755919557019000582369888031775763995137856194646352445566643691388652683738739548816577712204195007351221756455442638242872477397751123646743618612281853725046545380647753548884318708423814748267631574031816054507788938382467330294123853439102615555305912648696913780191447807014419112960341822611354639803958689100222469414903922247064182900280800231849891544959234806575336762785648343920669890427847259156264567965118500542205890825799951671470930384907383884681982873122622676522291392741458714895975537587408315303480325011807984742963138511214350398627184827881480301792875979805110750328207456214379549903767948811443751740293599002412325080659015525772923333770085639231998375635970041726633233813153405228193630831105490208220098584520238469759465368779929002052532818689425323895410772660556949027429774872782815852920456512726571201943661840679159780394728230140361352026808203824043709673330770802602470340240677670377438957330302073434066960151971672346665507751176407872369262766940941149652832321650179396171017016351775114113947621623550261434368528122830711188595896261919018788512525421400033038950463131987400639817898825506723396191827876648835181072652244180565347898355566830565436623170717377853055369824364605347957873301633821560961101031966110632313775307676187246361752090175552389934818539773226400689502228731862973663095204296440375169244091827211857756663926051829419125475092723726170083552125269829684824982773047393245031661364993903863315248867911279916530004370700855123451679193956628956161802613885526211539642550432959212790878731825047493918598458100474877406796339244365815097792095719980616061868548727135860730362610005929506810830106390150802935436379385418682598611076783821419881953883621917229705860093383129639077387524852150023437089546501592936067039913017119255824319565248977503031557802882025551504248785644697511123496521426516538637718857549043752154785118161730190588033607623041682858452746727176179454164780143342724464551528509748868352090373435222432264682862242057772971064045149906887741007742569997679208062835344422379497438810087636606285653693566241259745683934373623485799070154914068391102957965089969054507665224763924832665984417300219668931595976746660988679891691609220395710873873912169495869235856307942814990136537903732406370911787422932973189012270276692679200867863714562106808672086771951321034957943303629792104354775076538554638329248034778083984717156899303674289724022566712855695026551016586248885523666137024721575381715556408900789332908375361819536383913217802955784046668893337859747010558453353742364517506139123671970073741893238388980121189050406493332498866552312739126538540917368841704114430370253442992197922731216153888220488863679245663368315858441126350992149716069792741649462562831459227531309784708250483259767385371782966467626729347990446432879242028300983707738907115101520827724142825720834818752441082062406117828413445064241761367012010438786282442089304236912321345989548749390935480977077397781072103644343414949619425920717982734950888996842456549469465765608580725224924387462248917702364745355340502615326453387895631797043263557679444232416642782710158751443582526720561114859392341663008807511194297810739655241356821430634614612162849035329671807863332626922560850250286846030644456614012547930632552953119127959837292141742096441190346398393014486053025041490842288371587417929340527109077045021942304371856225009872548002596947816596570471567315075522547597153620286440451740024539340808181781064209608945208408629740989810486742088713206532437353071151534193439710535141170336747140040900923101204195508695865778007054300479213818953393509811587262364883810771394915185261325165200738832706840518041736416178194582806201218569719524949409510150410371255988926449251603710137950885015188901616423975289253578291141244127617185970688157397403895407282241198683148093574962473376756943459797213741344879783863007635303904308684287968041841236902417440618752977440514655185841853872986196010918125838322527245174117747242690254597053882665885413757440506813509672954095389885324642785278345389768435256545620954630876091624812863110149725362711524334519189933617009739087455652031358176989306552286883758864456201721450885248156316500673689472223060581468533588990954885915639530840026641829359353428908269394349237253254436646547474695525100131632198506507033446915650788787142758066088990518510729672820507107502947203146989500450953818078302123075141144864056196580389627018216663224531043966222104514767128324539045387612853178099580542980128673986232138700782831756419323401305546855500424915450487006773037037862934109513868841167498692421762635921614093034502701018030137174430797821912177327517738552200436820307442296748236927283053604657379446996218937606021516665208300792168351125823656181078739399322043541864564482753734417557229062952846574855338368416988605684711327297139500419534617377306833178936909854665429791065387110558243031785171104228143684647658300254969235896651661213679847668398615746776125637266696928211794239344636137913999577780854618539100994531534053624604522220752001670423468654381722426580597475108705028611828670186778381789512307731945378028736439330190374675282320920972352877295360539739604042234396966931191986394821784427031687041823166249445976827287591019851125302254322717009129964527082044901447121221177087520531233521341189445516694777822698256586182781602419423328956057282944279264827818309912857123591962849537841163720602329384338247446150663007630101882010510141256628757482529973177654965709116199985433834325276607235154066241484429172842589560711237084382331386224600290932846654926851844761574607821188408517066263111451065652941294219221696691264020831061196016834481077579788396461857601401108224847916398073187011735383617940412137101128858888210180078010910813514293703114381727192553235633358973810495354023106027146621726082149001040886558144093649757046981520991632465814349248131312404489487254783657990487242813142126938088671586693594213196865421611376774390072097171964575636642418574061987689177138690419777421583697336380487409715305882810195561983480463601732107412687816468339969016954867313802999670512483152089079794848227840137155558332673550283592711357340678707051696268097583352741351841298228118161054967159319792883535191023589396495000552011757345528891882755360399033457802449296844182789481090877768789338819919198698763977377934657733679271333145359241821167510182137975029466748364675777943593977901779272139685075930240066791723272889611714798747662857014506447393172545551953607042423758045450464653388885368238766482741600775781703549577211502862107446168727427534164939561881034413169989570638759340246985118358206586803016613676729448514206218132485234138660069579036730355085940267048918564446092617415501476106548453158988923613137231329332677372700956786464929378560588953665320961449257681919565717925218367997896758566800118625143074495588694566836767342225913294345325396806874766315654758806182062095149038353495106909406621512232823778764246218083210378843102286661937345890415545246050074737471440498359700569049933024106409795667362221952087293342148716543236312684757425943947518220084319728565541098846202229028513475960221141553342609449647005412381237976593242912928946612676477768975824816399104103633683542658871928541425324775525184961256395141221783708935765023276767721435685726798081920589179471422969451025712968426525936547650304312303547482454454996587189763244209051018883812190265137000871560904533503962431510223038104744404580477817593839633481266888049431932751372673576739344376395934649663570775754807997685304632067739758358882175419398806605017573601485755134282154043694145202518622247226082215054649375137998449421948102010979788825101905687853241676345234663545187634034398274476659690088431688821841807727746029784857979552276865077430859654531193647949243342782040694940509265180897693072131421680821956253692696355793358980536536270404195345694119422810916307855349406692355679846933091786942819105405972304426992605968155795468864162191123694329357285469263796228833808495159892489008618252952427507102262021818348586124415331654868282306035613651671915185154975098034024155072224549443714029941795751483507020408185053345206990848569576609271491154546530155546446440378686334070297315510065795675588764208152197345079868070509809666782415519258785878958061770219289726796807468981823149097322176590824143807786150883595414571267960264523644122157823959628244761867187431815330610543823930326912804139733118732981115455618629736792579287884402845745152024873914128375322620311354586342292096738763579828064995550688607585921805012971197156447592523867069085521201945852670780826983179122290257254694100832409745746202886442199881268364118933014436891261973363969166394947130674964296182645950264658446691914351331024187858678429958857610682898649350140467573625423888246404256811204800791424322349582571589642835540053240415753019640046154935354146120660110939525863589163012132421317611968410996028848878987057984095805516319532861110213210110589497406676904602464318308014988886199352435219747084313145063358825274012376497376099644503515462258734263576040185513746687529812390172388162927339181883382695262816468285790066837498015541934771069994414822708729866942833316469343948405082388666875415503521195604800935495108597626062387276435872817693014079811054350321603038091559162088182916114522863034897122664335683520725279262940392906547797634572081102234651881196226972155764764958305832101457487582146771808548497635885760381933710851350898913712618369254452438115186787168755482325339342014568354052077880989645041055235927461812528354234226733276164958868358543578329015430874997542599072226327503739514162743926729404293003970933471365862381358079373241480343542699570686725051262555712680239608270871148125136500539580757291748093756156196841696981454869574224844764611575443355243464834612361933244118604325297849609407545838299058136522375595100802140235659520801322930057642233251818409264414539899334372490982627488693557024577750947459612570443690576568598755548285384829492269120234655194720236489244393297312384759906372384092456132210034238781225612008857083596294326919834370597198888853036979147511714016724075046281578093453842629283457226387698839388935621985182213278095779147382228414617778829437738811761728566243347107403359831671575405162231303826815208116639518567361115027576586432603048699316384261474560879500951319339804643316057475546170712837211831913080755491806550789103865714727105508599965439371014031031336278128038923782672164306965914354523435696746220652866959310154187308901628840741935586702127073734632208939656528952024373089956482776721309535099414715449146298511517881433606639861616800289111387715909654190507400788269635235457371532797383917949400341050633042484654653639142238256552359954700526001958771434883773394948724850755315204806520985772170870895848100172505718209062808193805418581962276732757859895414589504695232507161106622586674513539149441515947835999438412136257912504871623773459374687986922082084365441126049389085137092569030922214708346735052488723032742082600131470283992166729646842555047220401716582266747559757637130193507237009027294308500811358796403445560496703322282998193635986377014191299568501934675290880982910439339739841597972272656936813724717148864223124878128297134511300281199397630502442126686485355642726584676504891315611963575700146483360892172619276816551126295559455499930643869536084595475018531603499662678285537252436762649016681328252979929484577329930956127533738321692517032802985315395474974794215783173650747400796852913010610999354593867925839708195667529410746103692123661609288377828949288053222696981818366519216162072073808650768880656753429169784156220444379971789590804938349528219049294154555495932760178062735651002435201795262897718255227738058622910523735688238871835357974214988569713458459671963115677838281951076293519732887237790612001293620494502307803036310693081174063454471480166696326495114618505330506793756753679259150736563804253952619788104482046780678022125526075239737818433748138721094679785584203148464467958169362944844219371966050985845990842381478782507310341761887865475465337099601871771727910305239699967947864838961242944362912460923767731159441737640830821803748883175979791159936331118364184686582243657076939644375218672887405750126662695107256838173758389137607418167747383873984990255091943866377569835940541466627725224815856166278055998242281124968358627730298722921470462849525445083725141821462401945157950500175183358686920653414087067627229219779259842834648191184810356153706601933314551359152021985242578470735901897320004235095487199072419597718413911257541083490952268264932119651236501491651409169239011942628677573086171099300340003301534514210060922853618758585588241884635818603874708108417234065063228402233974294960229731598314456037362713110004134629064799315274050559787636822316424155804143967842795665092836849080489436486147939003767768605252510795762262248297358604311843593741608310560762904910598005027041952958105714230697418506611952157344209943834266454053504457128614580430396709730929239781383965049856118048571071400874210048582755096814314512892343526065488721155568155029706249121913761153540603339198885547213293646972108925459031917683903398259151409523308084763375334808722247217911768362844552549133532289033909941875804550559206654078527568746799915294126374587667206858834257834964338746723955981129541700977150418957348341818480406855498995820082438266168094656525392559241255375629376119796777004678187909804517869510912199400416245170601043738105318148970184717242532624187132114223670450559087600746658643803090360590469912857657279752572747110054293361150506308604363748477290304300183440665280164370453293920707986152076792671789462333830379125133104533921786286508926474004357921780829425129035832165689054442193376264668017418261347048603222566940539105318246400067715611627665926459600917227632787879807622275939754026303691483187464655498932353650276447052789101880219847034388196671773508679856830271258750282920140037558395532878092912547124507121836751327258522952205713773587344767204178906250023093125605903584462322385937119431459245686787193965718042732453950016541612131614198960393345333991868210162793390147246145993171978136307035520921501262375680258651169681841819134697319279940718980471305530276668574735948356828492113276670810486850876519636588879641802881643127283001835736442724279031599498059452341697009978424525915569398187534939462825528673535385160526589181263738675314567102179358677778134380384487994085474630038604038550159234012658371709891640547761480932464093744652403829396948715260075217128448259209166989567717568535446862661538557750266043284120636797482002972191041778214560621980357511357679462371662667665903931736199114121440952482010809939664704369313484976264163076590389330076742248571605108906266704360484113599630872314335086742015888450571808810281087391780357797501600179651715883765797906557441032915331195917372624996438122607266604640936961679758785372259620155929177595899723237524462273002294762561475786037530128661975844454954860573189764692332319505628803170392623532123336060628397335792417003510043129173226200917485391806365253843920652256778730982539439089599072616990920114957206007395458861946914261329388202990912620088861563686249541371853108171063223934496618674840063576248221982050268676309634911306383367723193146241451498201741607191573145071700798265690443845804903521756582556306750795385660492560136434554203920258508092037223822423981331099372045646189147994249629357694008972176990566974075609109942310548988190201319740712064859651944125108826857789999974270724757230030924152948981768498898535452005842797911316431984560823232188326590509043037171745489902690093595436243858501739848238648079400914635263655464231643898496824071438749353599650330052763388257385957468439541038123806148219848767005579341339647668451507226389110040532291283703317491473982495086767226297472609805542928003169896419559218716753016771782125896725519785151824359933505369978856805256797915610533986744787551733446433523017927442153693355327265261352560287183670488786926767063651732900491129750350306777094889052694477431365203117605476058222080732408109684486985127803207111829880153973605324834780051905177738250347033043780776234843880710240853332911250607861297798854277891217640937161465282898916784130092353219466589162348294200227481161118919510315998322957750507421187660138646519924918697407439450034825182207274069090566702687451540867404598912089160889948991132415918211755557163210125814789515614940709938323883570261157992162088765714771680582015813493280929677952350169688406018158201822955061823001381589181965177717434206600795719951460980930973054082750206805565004749641324768516079667026486126725190920555381546165552566027902708435691231995804579921865571040291007129082304831867398000140641315961139008396239249671013010264456883136703546531126643516283928620118721737812683408371288313104163211688422336668879550623056894566395700916703026202835662753364481363708900125348985166042907326350526900489358284733630079210631486627067616135281216739634212359858782002738269271657941344908948436795749308441530911431769845717087052403072395400906347108254679528932382526170318304590006129718327733040505216595758158830580954909102454472944243218976724984855712034981265022250976875737670577848250072456381135890456339240904803336374630660053019697712272207660170482620213453956267546433084077930281562568078746652733151757801952549157781806112622321388521053458272290665770603004532581647819589740388507130578922956987195876064692283138952551598647085166143597738859670301651298080955973183876217188777030363798567991078702054948864368932646119729735286298760532331102291192622718587127760716622967831212756336603129259859426165859898819473280993696287528881496909297054049792068329127897842609992401282545061575304632029687393735932522043651625693456803491154841820260892402077097297523052362171526316586440646408243432485387877264008423650942412488743525563128923188778178423873604880694406356616792515223861734305779205728856902974404311134901936645857856390088126548142863307067958068953588552227088037456838059014935835544879756725801281956250728847200737271223276468226645416209347012253359367565450117966340477640679467568396049187527559818378843684338665042516642843537130964278416603487042025500572450372325133668553068989696054161585854247823782908364996429257094583826914430027857477277893239223523214113065594420034346887037026917968509579821734753292755585759432249394078668748576851863732639405731614426236484644013268935162916724907944062475767786103160601403878438760893956686470288770145237118626409464753650257928367766904247270375250616065728428821682114493528527163810396816031641622068550275080916702969484647407050301017851680051382890639852649301236602022701110007943545130861682082867009179915255594777824023392357136014966670785899639154201644925520146552840220949263439973570415762693142542107789235460513735671599822867422440714331812819371179464209911306418383315878178438252921700591656302524890224354281316965755768548923541767912119287702689809249509979341783346892319029849372129930586765298394207113728429461913150231510433908408673800504227856403565183291360188387411035487344706659319484025942265947606616252034070398444010850357940494013170839095074315352243786768938739055810729307357767928048338445617354010682644666935298187844960827057949355629320323030998499618232148291967441943026576708992245861358934389364135437295848031511718906223417288645911677428136376197695422745998561991087025131864086369467369840275045766417716417508204520830339548365703506530700520021730253280785642917524646127453952451325080571172442230792313449046168491693109356683301924302365469980473390134351312779713427332946503774385197194976166591708017139979965699851994881586111301857958015648730062041845159279777908752515840278075270146315314761670300959139483610846246036547210496001710245272787945749024228336017141690782612254917240895846286074510551257558859567390027397459119694519340856276850683134550087609495331191166211150672578627018484748717879423346788445511735027604238249475333232580905269232569753608731552657775332606235026520828713628620804017087819126279121942460168418975669782169344818854105877515670279440198547381747274174730442055580790244887388871847983072295467505772685146776038046977251065849354035713876095071735028836335368134890394298270708880915399136946341195392468308203918014349793463442815767180501841698032738361656888664604178057219419858829089804483674187197662687385836162517764787838662809267885032701180275988508951791023670204043066085390347728857741388200408938022942517204933565866866919726647850841394621553200254010929764464931176285592944028308559349480890454125521352989195598384316593365417934733637435959166952898597075090201171727445374646140035913433077846484641869972753505077226434434799041955305443601089310804727505192384767554357457898134299986885687549081376392168788418828670876692085667757852276274425687615832915646353232085362096595051431064676414168367979817682882744874804594673583154684019069124544450082260742837797852157438704355476178881204316556743092534029538645915019680600497436467824770590733272011623713948069487013762993166338717429041046442341552991721959983800774938375930606999099439822294790869351715407046028728788085126384518753218932142040740631777205589214890082828637425291865329488217760575499260744023688415441391480995712929261781417234862001134130493832838054931078829808541432097130593249181754729921105043555671337753235187369705626919578499486259525808825147447976467315645507436845622659187845556439900426056836145007858854180246763028985347995812637186862800021651150993211440275139703408294498656243542925050021462093328334795704392473955345555266753702062960729238611242394253816257660199576745536943007249980305716355035342487545669286574828187109037824718392513584763247163637448126002632470839348077149295056515073921924376769616626608476563747919916378402464463221514008132437699692311483500776282826747223409345890449389040870423995884884291053271125040754176001959452715770419307423925352302158966560128655901549323923881569754143597709925082111684321541848817263047270924196491336319329859024992371964995989842481560882091463833211633081043917043327864694627444318680670146165985921021652811709035839018194787993355417427771322081666864077776351096119727243236068080997127377943373029636722869844050000626076779154003448805802514580769492215856165677004101530523611975617001080189639207183006602520463263226106322642627887160989485138138760408415177864095628549311682999031202407930795573819309931732489575584472969969509539090753012909546143782814996361632424282208381192709479008026283949538963247253669944308782491666449239318553871036533730210874446296217259075562959868438658634126262817686171750268750514401131463997241717032022113907267852302522462850590741339766556519681373341696773574828309079157924605484491702265328296722289622571705923045999406637854550379281600722028333315358974618235331933420841174113430621371245181435937620400240995302217637079324352897795440937975745643696337047022286723894170257260894462563437432581152999407236879466565574998092179187948767743598327158646419236289113329629989745821223435173993288595249098525611361294883484594348597868835472775526824423461201434595649732464288278983484265044022886103419328866517265600641435377903462190456653652296679296618391982994914366514719207829540013633268445510113780946227012144561137680277510566110317006075023781558635896077225289219906059262651060183155701168847767452816298638736914195697001867389888929808857238886259040279286057658302458838999067569301934196683139165516245074053233964339481560113693947763446230922296754004022481819177138295905947722797765901019182941077073039029054149262739890492888731515602404120498973091419420572406697314898640789545114151982408014897529762183805512291335108511532983774751500174906956087879833407486826725873753734250072744815327750295013099254476576601416126146791343176886271357605626132523377674565189334251311592373668970105137453637117639909815932283866819636559568609645226303996881344584740751351859754411554668858268875434045545237247804284204368393950711966890391774901315354160904089163746986398377106177364187229632691642445155863745166719552034928516632675578984651788075964815916768934404135957372093941919126652136804742344196395736602789305162824869821902752473793368722531487145658356655240961826730132129378705868796907520885608456657094756700538159882448072910577319783140008085781959928719931132771498925704967989292277240126832747172343630445764786793847175909009362241314635279880221253332956748241371017281396178788338552891530596715798936185213434711887026151864913812278490455498863519551054046771028384333980138747277345433915681675964639718175791168878491446903688810638939983356206637740045209625958743013431931240822005030645871333946999564493359597479839504464208205734391694646867255856893835166716063666379167315164695081563200218242560058517346004824259763187634602686215711429154848706287909978528120991890480182451076658475900095944673277922585672712576132398129966963922544086093373679055468820936621889553421391099443349269560399999040614931010618518717919154873094411957693884698736543832868218477638631162108464174602231830617394134144584910043388402711206697691732607531271723309177076526008238382427562165140789439773429202323340364813704366383436199060184675092685578983526001771443707376248172987459924673414488251440584202630986929724510112947564651427781794362139553546878308147634727942699704693809977617746919685706086083732582326400376551310455723708827748464880611380301499242371811139056421615293510538959114353878967272354411432739977279186095585809109687726509895244865626551037691777210712503159472804104327245627804454359915496077791395110259088008768997328083021728717061740129119739868997622334536613016657455006015598995865850865014145894698307472005773889833718414196430444494768558315446758289106223604390901041426475059110675223812974258495310786086232748955129440861814436942663219852283268883041685783736506374142232877306982610461354746280861056068814291188154776112514519878109254445291554601299986520518834967240713573969771701085816152319637073979907114731544423363165892168063120740091613526472109406920123811074802958551158914507952100492151455813757896667946019386891802994142062739902265829556321484197708741724408480792077164730225276997275120535042323122659454060121051658373814407492181362288593966902677465667533467898928029958109555306272411279702522393944302925854175582858434573314882449575648106764274474887204296133743199126169709722121628679596904665231206926948844483592222762176029282836095740437273604686637043588261945993264478908868665170556623515450924677818658960056647559730520740680734062759348320289463660060031832358956437702930799577651544050802937346594671435897676734781126033167499506079061468558691411837608349321790751509461690195937507509545531627111544531935894079942325750880903426242724470249267311609104437431325787046280936427062924788477347201895881988492762733985547464746167330514052195833717059231599624828044905410824537590215310956514927908303418572120272624594628880023412358938632325195854381793568983756506145790505355850011983630504778177784342901969843198189335435859390117843932115227412154162200377475492118768099829193032605500161870427110578650764841836515726618445014222747806802805063391936326535983730983014954570098261536362015249745329450351180840910957234836171844206555852007432424362663343829040298102695068543311273192609960234681193880878913286633337706274406690603959344875146814294782458494230980268498265735631979144340036272784538011214654989243384934526621422281160564224735029436121619222961289218115326967232744940355402206854461531079731077689106274733137758530057445004898243771257166479927512341833424505116766762237615199125802272127591618541363240871832254231355064761856558259140816328150041807003632684653587895410000017212616124407394076469181701689389933223373921368678146073022085428519718589275338392305666528193561782506319770978218095653949897633481517105422538055765023887489347074752942156420198047655710746536661581906583611182668414920216446090599517825419833235368284891909982806088010497240950752948913514448507331716243115645101994752034574403838878684975837548413537135182204449458487209645524596731692961384059760122961618148370692586916392661491663526216341079524069478866646808103127031004452428011675316221474947838323787895751528462007853477744779904187476244758802552904164140056419922607375520381398812343855642501855824109892569732111944817805632181408007691916340538618808891408525369412502585194588669527678913225660256619159026089269982188409955950034447883320064468704267088463927310532911846608130109339536199019088848848717165742957776263056035244502562741710917926855003587275911115868974249972168655100047203602801376127713638314131030627462641227693177840054957818372697176910465594226078042436873623907214815039379993534638726322231869561539123606515642768310160339763110491672641224303659595341089655303857326213920050856493765625036833385942082553748563184951384835573879686623626349119403680864225230689477031262336775888880002761937662375127667873398534007044978897257189858933662258732728973805552391520172469201400715555898163253212595149967002349561696487151026269206295447566710404407503953301569002095833775116787723319868223828386889041208721611248056151991996932480880725292497528783279563295839067455150517018733962639814985454204739236693046609535856044916442059231015155315070297635065863110347296894932605258442961614041560267233394829139665628218976931424902761847314508460002964202490489659885480713351473012161121657210117366781950795693239092953487684013139773763076728847472338519660779112622751492196478257259989562324988271020011574110652247778117192363942252259047359041233364966659674758278416131292872631862134445494793404899970920149196008202035915764079669322160114908414062287786659607112651161452206766325625410869904530996440962161565108674663174052408827074846757786614120969726050290332426685675674647086338886494455798069199353341996688539482201214323073610852780973053022072408603624422026082729399916893214555195162176637368191500688122506937984172899990035231247479122940811255099993274323665842803487153908787573928607202187627150390287046325799990431832931577645115291902717747513792920844265088732009303996450891157876570389599319706977437277816880961875728103954473092518286614687774214423405524663970098580557231229166191418387605627617195873544267956136999535550297029094624222519176596025005159530061427434292258306333240751697074284937582791901449995126608119944842046588013231706385591231864217469925746499594379156639872316583004987166454408398961040069505303728707653511769622996642419418654892823317382100520958882889762071945298075415267532997410548707134987708057878401866327824634870464861332089675630789328300497778279374167223888407242371887863731164970892838643717768429506314149144581837735976996143833613519932848448374929764033047999311111830097096337684398888409943789754859355422841816825513741199813187072546621882581647022948071525248683668230135410827942055863176706759603471789602063811030501136615440097679114803639157679225125074434389457402750549968395321247634192977817586969718466194768727382298691977899349945641034557535425446293198610643679676464559995743453277780026131350051772545106736957422295574252205051421638006155096352708123136627255866679010677758040125219612288429705245577740515346900030619783825285861638068983361508354167082829522196090729642571329750799086725445387464770558102305150559972550937862963391286649236964656772940094254148060167776522168374207025314650657828663494921220760328763710567945165515548837330676208589026156796194000420166709897723825530967790554978054665611314275677619172036212824047411117707044587255555525110289897085010032895677905635205166184124213383046464378518719307159804431518490710628005877606286066124766147847932561766036626161514816139637955858712931328929224917964132380748286554096696497862262097859144256163138294024705239901499391088482184513941360224062074122461899624824197570788432169636914797886993256447464720642203306015929997926977381407764188463340327901327071807073115167263555855478959660591452291903724696181793629302674089585998494877655704760997895110506246532744802552241090604571594089042080569988433595061497844239451298559649159551128237625852683488465677987017034368700413203667156055992422793714920967948609466000516225046288086381877356635338593908828144755266184025321633216260136160914490176183597861111077938915083774634496250163126456668929308640323250238184677880411665665155278251519817456532912412135635639373976022853882204639081028723592109200524939453140327086259493348152726352625011957352816755537893357588711949314551990119993733976179717722579240385754558914772484289241344484337816255024295062279355921258797393141847388046492829337390859441076055942559188602606704423092412268212667335905795434338518867819306011935762422123149419929237458331726046107248194672435369144533705806533238276778626928896837733725800113525367142222350697617688422150039519735677463940241197141914841894340981888759958551403451187363902277423497974512403653887127688213568186907824169039546333752256211388605179573461838861088500680485057773774338330150474657130126155524736521458276735632370817060467597393698849903999247121459702737299576883073360780991435477032607928422343437269041364389824675546395931792444910270622565378486327310785601673029001731994439696459909487726437312259166587560379699138719021834248106737174262164476495104732224676805107013388637894798133643058696135365543752581087626636146812006222417906753870203018153714981573577233277669270478446629301846049471728692686632949351119669807885882408976557619353976104401395774886008603981123003837535943526442181192258065858000092312544644700891049007780317429959149648777084185638516827918325792164385595582649483646266685384860971839076203229797587285856359393286172341612620558729184160893258683977418159673727244326386159050812600774464196061830113371785206220421126672569368388137288657858198950920583401208462521623032054308896512238290353391954522793053715060336601554357117061127978410787469997947181106886771810848343409642708725969910030317763499989477012583403300030027898221607205699438341278837036688636660361630838084954649994969543166313431944751806735415288466323520125581113443495365622464731417462928124322666315934394442539567497934899765329994234232923818744278554237910287132630308534856891875420804804657921440975325527825179147845527034208594591636241326775994863230977882230930681069947435453672772173814019701150122658051990097652461492842442691113184501078990379535525124488624622346045751709169547877982743160098752232473950002860730793694866790540215830680466716278685040353709114230876325207666221088136726618137414527086103534312628409823938285699757043838927840566091889569073051682073182493312540471974009618823666523723689239723488860274873867213745192311681461591494789936342473045373537024620581232865409045044336231797255379538005402546442948358043799400709058799716231094872052380163363551187494225595461314026062136786314433513111110994362709503382860513973864779842402624560513869849338210993537700671748818650129648097506402974666679438459971067067796137476526106994536601733678461345088199103010912751392286098463738990814391392197811341141681254503691366108883209169201549450188720295221999097922749256017203643874636991710359818959889226632641830884181106653564643822204989464534114943243587082026862506866335367776799313691089425847969447714618066700678211067108298691630290198683263856736245228571736209883525791821435007703777968673561398065917565051228746206015965706910836296695314487117021258651635343713671440297633530731349749104421435654520189140018103210932347056582683194710195965059635333011092138327204271725448066798971665080126837760637907958190412789030195824827232191863872279476718710024650760254592104482523997659587517124135013079780422241564997224844502655978118437916006134373681239884604266122076902795637823912774339658226060787501512697366255679561497698975117856714564945102162651322865880597121339097996390175617711563508552939535879064248499533173757942077039757569646647843349046297044810132245693093315049277507260792719103719636080534533968794869603207252325239156401246292354301547264599180963125635933018804435872295930578204180911117416781422069305185197443912996308097766145919510491437113347609382664693597324902445353039043700687390789899041603059097577825933898360723558091680321570535238005857953095982638103280403377380444460619218828143313503086207132241444473235451358527973313390926099550617518498174703568830722854633365368005870573220062857454443514437496418312858797363175851666323785601248334381267455165254960721776573477689811406942463604549465525712971304974641209215098360022151759218756821877543194618637281440348972107669933055911764789159453586999841433166564671068146021894140822981508096537665861531748482374579145977705997121051238386736794319917397380174554757706334303135145143649136480418783855402735336787093720758873652563570278121424459062644764017856032202559959011919521125490006349075692414523177483906882065035903326811949260224252623858011457806899036976270112300191584395799977374668139182994166518479286864465503349781066509492463336809715259137059703852475699643690744236111646744172521193943561954641502168561764835410863643662408535346377110806130661507095352622010527004906965494137531411597102889415144435689225476867321229936050177646098939872117347213991779861633744717815019955214453648381256751998380090113747474630957755414786949232106726552221819419122383481392385753447918654521923677757133284542008613514301840150093054995280468794957021718037361661124027367004821710993849800484385935624969697608728541500156635251042328275706150731136043262844556611174612333493168604824951647628836749890216705777236216843325707135490574592959326145399669812382165154658270433761104323452035397140675230057923914119233485826734759197465943690503010088670483537444921356813518071411376243461689368762243096716171487468227412369967979285283278289785173168774434020376213883813244089687801741477624014611572450114090025892306325066773670717003125784146583732599548973142804781351005595791595899397413892763068125354865982870366805878185989456567478408681289133594762013923700023006737397620283735122841966837658521474199696781851060510124382658851180308290969693266395193769151218919857072919885153535363256514961947423314400971084225145092927482643569841516330307455458682517325584394139010668521137100447105616714554547631887630566061787056655466621758749923584094403597654238661643720161464209271047719950303266571907132785471806946178411125498139212848173217695842961522014076488313708954234221149753777935167780326634132206354349349313834437543460730751432548435682105808178465053594096693167478585296874720303165093988214530404685345169777623493661966603208860718849867128322543086425432140760363858762183699249071175369708465512450013676763520020615937409609861894974194236835939089292769281878532538564985757236456133803924665130149657773278588370070125151058245797992416880189789947089423971771940899317191245827695982086015476690955221768671471019256118127322040037495090063608174827002044313602448409969278235676085979622371816057132928800894592359973128127425386042437083471428246241651354814614050332887797042162277392599065824519138035703153518855044187412003443023582398052782292063415596316991335133594659043357028853253609504844148796501509475245050187283351618255801987173051093029264354996832405325847132797521623695596538103176915126555705492641749693323944177535198521325520659448692755817974190849328356670408887349198139041270668804761173061075595039390358617576112034942463484208552285324204829724921628729737889639573600615017761047791091898322209614955952281208769497053143123558603356711709623857533519794753455359622738663779181824557411072856272697311578859326723109598194150670443892403995627430652854291789411325531903706727208691016788901055968050691244680552701508242177429569154102398191414478546674124880738348573745027481326772204750069529231494546762783315556465304460570225169415275247960171314602910516281599767501982605512651372612229796405107503174899330312371074757296459858302363525363945177098805073737664319538235994417735847589507168004357216600004260059473733002768927405247807469046185153424873105260471801504838201812425290593980605560491839627411615911387957631935074802757190529994422099776140847355855524963205995577871643344842798491438921168156350236904595402276479146082818913610915615625069913258471269438702657667558749423133452872378183072478391262804225723662499034186316409560257389017484077488271725278458689313767350853705985663558265959874627251658030239907111965292731612909804583931369947301891432384722148504948361757454009328828937013010891480143716499414502519378251866065021273888202859594901301707609297616653335938334524106169433355993819688269238614090099806720013414631949324532988727574145660411664719389976805558435095626909644728386639379283655330187013774926501803466084031752523544860259911801891177349547300564014520908687936217340434896835778723282709579366115404703707596661049163854139165369988590583832951197556325920657113801131040114361759714903527842009477950622138453341753194059017761935615531090917353025736505267094014103186226024136063121100756283938534659065846660861655534469001133038448248453832847384601612640024309647942335458908561546326159835817624755162939422853741862990182790510974474122316494181587928264114324487677007833825072232031443558364908312758482883923016873565013229890043688483349841029130684890935826865728001411741826805221171786124381580472033658188955109098039107670477831732959872329383493917821656172961991587691217212954767209024132118814859573606986565824191387623811194175049888622591117138914575837796423125961212148641939562839560929614690702367672542684354194136662042761603910596611570276890847337389468911401182268895722099243426368564644348510170454302703975090832980660455190347512147797979221792652693045314362255614838339144630940688682145416268264461957811411397218981073709106449299703920945408864329791069974041670323889816983119263034573986763802229778209363304719450022595179232861623733109057147234939597759959563681731565323715602693448036000473339930601100526155277488678438194095396305081507272493426692043536235829664393302461673742208492133921999951333442106488250823237929023308748749285582057942987027674934697538529083579675640725719042996892969061442079612073174381861671773989163355932005184175719196355347906982283626081858424041368803255450960263716979947059514374301399525722305395344940645396199931127310871291775242733795784630162899994075051291834725092707054993179523158475728722972584188809870615349738916814349008923308635534313698303194405665766111950300428322685512914152329390136369994341391492202885165042124004661896867710690487896212257392540343550264054173211121221558183283243444412450701025801344042870142973409628692367536198673216556206706482903961933616042572261834125839295454614140048148931641187693521226260790559236485100121900588626673396409221029336395363087211397691651813859305949680320991561488005669838140283944884074540400679174196457751984484091637007484373912308688498271057062240399919807698823869923027953204389001771080521353295893264645158712937391655167343584577303369318327559133579498235042438391977283497896350329615640519632065371418996287710511742802425436937676800024505673051027500326704086325867669135911983079273986232648969470943090521409645472565811659092048477621321222929421831220345000803771525777638357128702569937568293911866660342012259485236770655232209575605712851190366021097582147273928806972409342086674091238659857462342734231365607587161178272034511545428487318015797669218626471420810061007323679253333031453400011059496519371510234126669928996453425820898377411636412158382263788819133794221020959032509572347417030493274908226761886359358341946547253736094427466089433545862257633469891313596468507537208869969005859078357637154896220931103059214618350701493007925542100297603585435325513994801467748966126208534411940167820734184287455131220395426877074971268317685411384240884896219226102586693086073935594704638249168793344009549537117260267585838842686391188090388631707102133020024804866511317953994252608303207732976084903785801855368831170267002643446369961940522161661205531672419204538985844827917243470299857708870082298774984751433978070063627311633610612588879873525274368883120854673097365743184694973906726417274775369201207544356020606291078659273721626782036567833751696078943994634480672850688661830640676309414264637083425044800377259641085790661722210262067772197001068179337181525352660041399099304831967516006317163412946829911078400906787810063079596973681728506419491703255741553694986716555383560134941968634871112598868193747577327004791596903434049736577054106111891539679786490612894310735307306879763445580478443990645446652958074125504958184308971300279589189831931488932546067702193002841855491266175183212139023730398992526468481248896783050851116520750990677900147527743314734562351961416082338678663648647948194687984161121393273043617921111191870108238916365088256940244147901886002851917615371522085749498437569568894991221389562316763020260593678131370458188624599946427698382805770005308788012571648542186057844747492632669407155978407084266417289921678958206324624128102318096404362415066090639793147385768379065760814135427388916745832363225040396110953573050381298888758846024593938578370452274525899626909323098062336663027563654856640822431341551726782374880268967785697086455662606843662535570873088403928463419724363498156252177977458135607017436080919518639756612276184498720262341037015126141046987451870527180508952069020292574585186094691667949905829234297394996369537338759273146666406015225418130720603119276154558285584738057261262420844267200610627811855128704093514201593948628707718832260587984134555969113280101909339560928690511805477970897771864689687932709480471943914608800223636661283221106405927872135216994624312727007824992373899733732997932109681473701817755593730474307317558921772904321941128969488908725739629824192660536133813892734563029131111418588082087148490435990954194324810982642259273756481760880961483981244733598503667174870587383339096652715013277422952895385399927087597782299793490963480804787777662819142358640141501197946963991248017782460553006409058740213018347208421487283030974593678871661879938718044275761003624084541475709872369936103120742804158666242627118731667348127675707530542478540663040981423087535811787456296068309485725616591939845861459752880497698962169125011389175232506531815905619122726756926485320291619884280292935754728402700405479510207466936847940169687049597511752346489277144602874676592484813227816952199011055083891509543174407430023704488468039632724165675453650600234800948694371559755903810560050944263128370952244685531030477743547122273007008387754320312133761428122970684842908993440870484548327200686445018568148303691749218137684906682276785478207921676835280607837812246297841082145147174757768199441529286456287685624626892990822734844382066981297432454570575349656251546594024105494574487676604437219684179785583026144970343369250708738331934193702255105592542999856992655554608387299884254425284095079944611114409087440483431041800202238143503483213018785021871375486236728650091998390220075235309669615807086711374672389840350938223009504411936659068453801985894032796093978582577110279487724765723332596998931706124364593481763100871473020297321204145148855239858351570639337271184705993256637030043816175423532130210062563237325880335835088052848413173908433115085101747945610880349462185589354661759694485691022041961458402274955853637048325150141196021479583120323033060892122161557316088434528640374749476218846910868970502426230317050518966383307101202269149401553333932281651766314245115135411975422758036776691444467657934049533098909393495876511149773772005080446823998559192979210981496541580188238912650942965277325573400085511861063847977754740858960461228709116860236322552659867059836035380001628918499367712533116075752393539899269184301089979225774059868661241273002370073957665818572697174589251532904544285656585815352954634947715291127080622604453111635664299390032043453834298997586734366540668129550371192925627484326595927773522760459647640170119255447896357147355520277012323375220867052541577654205409013333328566537585935633646916913543392774765915871105650372367377299903257203343859625988103723333685164067326541541399709238990039936403610391036038625625309071229580481274744547811036025060576075692423053723592398368733577875871818988673545009533132961755546078259817471023500323139840486781488888013344256577417516393862128575351935793019907531596984005348042204028423736898429794040191021057185693731908846584847745411253875098955123126910223700560181215024015704110238037087446511200248529375283572158773654672723327230097520620547837071327314960842757657572816737862302743851949565781345407570313011054356072400105589928867515171722252125723073850650213655754630775722141720420215285883431460510103287901388196735974341268428581880621913995653798343078414060871838310685845706063343575883667400899969389877827136293027193658609199971355215502511446170070916397399693461148205165913786220191525981027216119247807223507316515496858224336861684346764004446825681814905144220493751629638660214208784513332350863256201700265992231839113989139289182252739113952711297615867834378351815029221240092427596954180580943099181316524128344357580509539072731719419555253829097430558036969086732288762149571149135895173305859954196333175633426978138767615079849388252392971395139181538941831177514040714560191347006665646610901090301782028894115964554980355947543292575878691300732368356984691578780269544672635404410313735574016368692405746669103514730216407437235982387578588571560934647169026142751461768754872054287523653612108974056220808974710730967484716310791453777674386353056348891199510821543003935543729429402302843394963986583129384754381818725675150036681935855223880723198412069387070910669612050047651251729458486106756692950781355228097452114333554098384612512369750126472781946742285780927224362448274639384860231818027369813623973597733992184825167525304542000353296700781803563811265278634764359530809212845716261760637933711231753142378860221165155238353014218581768914046377467851617715898456664470202394798939878381201615656572370381822752240266152058147180392286329038514052183559562508646429901048851139534782913552069372139256401481060546486793066312959252049440148312427538034332190404793690282064712871655378761850526412022171668795065097007051774884791350940074288858862724924999957094498676034477832260104958235893003286982330297227751557422940941688940116726039842634166780353094768285864655798875255593083480941862691140850310299361756780416737922772756995453155226437542235926436415402315009946014017857295928737621248602360345174412694831587138724073955541640566151299939870128343413532083667943772330840246573515629713092571137692746506129267558550658825756186553801699917152664421046328881715444337185872042224100152061626723035567140024118394531570776030691895019741761661762474477800918577450499553155018520771099875976374218245099307965192285555521106623472848408800637974231854327507924041679036715418779666672726069186053659180982380579521835058746032941638442527376678448952966627262182230744489311837191660860471524312808624425347425496857826223997910460432629521181599463217645763078113731626128740006404008234026258597773530991484254300185781286103902501281027628706207086833058576444116439376472988750454333064731849975521659325084196406548465015784865908496872722164773541311422460230142644528558837877452262132147872478058706670663093212537267474158115450293297625781816829184948479023876963068656928284361646989016308868262793347891266212101720567769468097711851345423221460398245750768317648123240155027313646601430923108443669559823005914996573700785303196491277282904257004928831504117386239399491339780104863979997589914636932706090946350012324122633140517125497655914633181078898965583085326718807920723165325375962427901868436099957282592858961336110429257747949153359453085433058388854986050094268542635145810087068509498730638777143335061209590304369626574571967185639562524350769032248665751206882499706494570604548921126659258693359984250735542640795442921826880585393939781294373393292501949085345005797726253661345428439426644008925418887467529479105024830452375650597518045121435104025902258392606679915464653443654170845666068843622890406550894793743235098437941379270059792810643165910352582099082182998508364993314826059958776526067138286293256467810860691900346690080321761792070043178293413766457755934318014789545558763105733490433556175215653737118970538666331249209286205250096508734127106742331674826937610151691707901974772480089372176938665316075989678832716973879338380115310289103715822981616490308693928680378580728039618367228130023547061651757220430396389964933164677123756604649623734266741795358157195095780391015488938636772453954436236706066023703300034594406121224045132206806850061188098353180852113207020851922703993873646246078466244272592665074389449213790638550736175788394174754512422054468584815287201635025728165927768214675285844008924341613058649426790956095204294679340234889052456175309519415218822950972523311739528039541976809540958212769859442559900529669782222543100618143435753385877256231537508283500007753651396425321899339027376318866564918733169289498551773511264752215775558167123097338201896385253532557464166181926449057990433349626100729784160868224011430713910516753606859369921856039336076094944512751749169138482497149555633287841762619431292949961845159189534544136964659901667072829871767054536020879588442646262517491574148683721431971730117408471003647382579779064993413520863107581839799494038307072143966585918924269768905935299586929281010626068967081145223131198412250419508581140907195914892202868726767624545436789272773022469305703485634174465490769040642176194600674449581325650276048076843828657219910882797789861643048060973604352232131269242934300424138539954293374683124036233155196280522444512749705409708615151223469231458978814982229129624568585618410181210643401155881692663072604360986108773895329601051798710178168932049686843873985365658237079225010368964205922346653218096526949269670927045099116419216017764564504701401879623345297390424217795502366156891393478485457203963056908510094371390394846831365673829675730707928692061217576406321377633799339833050193152027176916349469237578586640998322478522462637386860425108158199380526889698125289680477775600487097186995414354964123750793502466759004016013571387154996010737056342997722397730580670553876893398699868823832132714598434080042078015887125792850678957685868620456842343533460391702140082218004043147759928464752376525279252368144267290090338654428153457356953192277910012022130031927978648065945562112362967020674189579835580260663934139460371324862974305174821981741397676642197720324816003194154756791270821434477029499288541171933566795703616820803630902190488915964308256474003929890421805653528570282247633349543596850784586382527746627636655694725255744984957628535921019908190098468926172736791888860082814513878708751281160193492421575178734184323489158476667041457184287292441719094060645807220621641280363703427374782065891363851143772369325822831954258152592776172341421448187947810509836394175298952121826310858098544121722069467810815713090112485651427856729544747729592062968030553485086908561283880724151325221293224585863478802818446633070111126898554333231001303407875575096497338269078742045476076267641325724065961945105908690808483410827653835559271392917446880779619022223968993959966643744118787136675584985032581595798368646824861200419102061687357081941266387359794670346395483098379266388265844067843388389236456104796405340540832853348579807456678981314668125326857421133931059488068503723538270853745908771887698879819688653128754283196338647923626315263612685062830701809948131549433697566386345010318995765584266924291557307668691019552219218345699448498618036287050743195021994839427681236148659232972702853967172140725987789861606346083174056195847016400381494195321679436830298465380776999141243958101628199722315879129795423280823273792548114128231663033346624567157477993382268563670746034357469252395898459768866144170786119154181887675733374700913452397085831615694293409295989869346704526049144858675155048881753500325810847315353397491060962788607143625234872263148659144146466973908894715470706895034514712614488495834843303842309941352424185899140647027956750950278535983426673849944447326269240052817516811874264213236526670966715647063066652865136079093801543469952863364989603012949555407433843867951490820812253015339486784269765541125389766569703966917598235431538654339780446426331496892854307521793581335769187358530000502101205158118171029517101367022576439506304637488219182647365431815055700800020910453890353498556977589362456130942003814846599989771922769545733092383177440424091443804451854498030051643397322583273689940439430865470460553888761731580146975027607090978048484226925899297132419230348041486140067919561167664443903826321058257753050299442794542980726154565056878588716898143228948656275280422967143861914793220202728000098307901873918765143179251159902073169496189288726773388565085868094305058994596876844648011080539810546782275937930712628953039176614824929992629587959882735237451746914060107849151684507412511433098303779192962128910676565342951634428700987110503316392130351138437919813368317996341503600690832437046297139492872109881396846943185724293044869664140011816424954343802050227619948049413983274308482064850909485829627675703746876169932620254379400647203047376083624575120933207523624572377168403921675805884917748892963589384795618558275691798038918414110673955186825191280575836830474068166011491454436705596810240131018728786833198487058768791253661732215536045487708478490548110545847201786222076216841586660377052575504370244155550950720202220280557849616987462807100000126238006722435612231680110972000236260862688707072027674626975917267360601952599442012555030554843779958801494197980041046365710985563955179941500283668106080967613899537437535281333488099113616182538485611172843332001893765886640205225078966471218200627885112650759615045096378690289117401067378394337731680813164876138142534330380370119714052487922536074499973266826233923717576652029841526481254441910501564216270754837432296985043132154672507300441754187943644818022857361650176794270375038182136295704953947028766808060903177511515705700132139667228288786100669763329045150263614172639908767025962209191919563966743890123696445664556744229086342835441617387204064226480161110920857938863241421426997132740106484275929829726468264254433347617992552726456904405562906814025409510117108929886795081987345158764892835831220846763084256998524448941567381015412452697139647922700415622884982952782975159692780402588851442717141256537034553238822664125787747442537501414739095569993927773536833195114616465833354412426406038421969668833552386173800859910584849626184372680430332484860748192109382844974247817120787395975316854222352682754530404470601631065686946930967032365841098720154239853001744173327435761730248781842972827231543813730190871276461825981888753219611538057827238676189579147331870633291623679235382917577167480175476649510517376680634289006683522576225998793965445262886927615772443242983032387366586933782000714248867500492096782180971651706917560601842570328375547533938954555245264091968024918564495523724269793233329963610391955201699928660351648642513486819907016401943142484528019744391739372476969416693681097195915176662585923825310517704483763018698375066434078251351340748406606239694660495001833783892226348336813735581511767297589771449911129533646226045947672553078765523692268091212780380947523913870701660975515904164577188635145333868073456410093391161903671629970561648325698070790069060621464510060279270325206068332575684556171623112568165296664468760130628155472880764344437532525883644768251120748564021083018382691738063343438568790943809502454713404431447438116787307316474009791108361185269130098916739955261327989429988853621861904603111262081516758925307298962374706080373366691738461159831011646594542605010071010980336155284164194999642382428336485349423243044038483301285635545005713232703408467607681390889670251064554404867795502260701926344353784484011710459071873816696720402081132955014025995483075027095738445028468932021341647846292401017921692271682242058284697448820607392643416594475204734799270591825196819993230863868343686516326377242013582859266674497738986197556014035328130198728383520916251716367809563189858723888313749999040588328216462499128841087056023373806683799739465376540584927720870896677465355716056866078830217542295512894561257384658143754170106111283343049949799326590942139783748856784641768852921071939101379718759961351398855442022847583968710409025057188284989900541039988698820036915529746131744836149513702304599066851843315666089930449092594636843997815448794742514846779468817832488578557307776480605467545084721665018276370212537737941910696628473352254216272676619211994430193666505189678855094169445413480695657829042554577863973313946489910617287040013724155040088874005493172804355318094964539562986791063576076417560392393350236749141263636951186986838714135804344395194779537917024285857673441980216419036739883381142156093107968366191192744356373737483347882691977122063745061789950908322252821249821793065385103739174047156014987131190372106145230129350688586504687644717670545011992633632429493099799613261016751121365349905822837643515630805170523892580196174779618428790848675204948605802510477611137510193060078345440317773156893677908757118594029888332600883451027309778248186731486301267345121720989470405769536885528247802773024510428971113919655139493500219508044549785706878531926214232705345903314588842028201889252452431587620538596254750482999413843886829558422700447370939096017752874123784822196414865463637159916682956360518277081696742977407746625631446036865792606438208069563344175456355083917849937745708325773458842608072986293474573376696637036021717264650231177804088247075323108373629371549443796914025324980228581947709382513330275251855806177690893455861082635019404820790006184928685824661653461568212060048256396274097120044545831178162901661947509449698268059063377685427218077361649549326396728948584606190540705753604741385271584035232407308437587509005838030955345821593475145589680341039354485243630302735826091204305420386728193592624935673274478808822297880065521930248023787526039330609837603948154025203991497223445626251015701355228946844223470419602523119051580299302933218959858221812897343919478917305360283606061930460407008812443305579468023090762514841116492122857727870134873281633899461913428714341799163182327656942488232282615408918517550394806058899686450118019221957141985492070339904406920510667061262704639500346272897032524395198044412241306740166542095579809014316640136016121448977640734227381050224626700002256553891759730274665904894596749946452075529253761770826943286015638694795609261174990322965236501438125113245591463073934195459746354145687930349324614898883596055670947007638472998721299499331191591099812305916700845556395119497425037423912811291365717655307921326683450619903976536721198261568069483518237909419057564040701562175379436998910137477775556478959364545045954203665169227967897927284039878152471680464704911876547675476433909563034393095589740344220950976202809319445013325835308782309565096285460865345097684505186080404635954562590843318593141821501590895899490674878339422301704973982866262855279087769062361884272158507606186228992924560802760926676612872611240340415876603145570234331787503942336415578055178734811875559384812901238927422511728755335676104854733247421022039212954961268566124318066974471178895629452650430330000348270457500508750236414302924155733871120638943692354396502722490099488437108167994654421095024973222902210635380941707549416393002075001084975862307768044461732827035211687832621939761539445659833211430009757507441853675904208089938565068126689402866211974289899517636892623212252718185272259159399094864459616729000051188321737824229463573740108104360602058775470567226668608189669776305597751551310487556794737514416911042104490866145490829153697586081860762717792778058783179177334756543431971688676266628600768944840744798818558912900938505572816841941430414798424493349557209336518710524931359817857564466056229991931145850623885962223603128666647039555902312710325071777096604692376700788806906142699199721186222659837030325609341379316280092735876309392717941877328840131185652783775706514427888717237776082790884728825272718047751557091423447586597385185042525787613773126770955399899670247164783291960360871336638208429241118407126972032550380721223982334036862890902321638331240209317053895028025020636457396578571319655098955882567624256761319511930282447130359267264184885116265908691441507293284028888911860164432616569587127039493646709163964539503295560348020474374120221446512923752606788939174854614499120469098405516063562990570008173348256303291198058059720680213423941976556580842954967429442496659586601361281434528649915454072188519032997947720347358135097402591747774073035376103954698295267084053783982203639004271738510800374388493151307490564747124166856696326599772724177355121038505954414415923929849010632862007593364620248833168109317216413805881969039636999967922950577926086643927854363106665947880355435534475493627348803820105245382301901290843410013151325606744710810507172282707393123851614477765814902470683644831425524537191034022695421844803772357212465646290068182829928512553392891875709300428214390461543943295847282972963414813747024556104949883682131260498256831012276528479892111071510643584954652283369308770586249364056702363380201870708258514873795426669254108621687156333872141218259773828648470288991208416735342982230116344202329101039482422685221876400638817504825965692130972736958463916718541837868033466094475783300459837231317867353535644271128370885589019647758333708834750472388552512513773275361619827939273312619824256891738765223196429603778565219626687535163112652509151998709759884177007470191466386387605295883502836162094517767839248573126768631394491859809169118952323044016763675662949653400700890057699642823291978075100990176414352701045202116595991580497692318777249057314348444280674089911812084007041961165560469123216242357685406974022648504808972348337457915906176279999516457837944105234872762978823171935334706279549823626996313649906461864487234939710523638654017390450267334730557252218780221782795709060998289894610267525474163934288384209220119502234915487133188111344841277935818741581397881367765858679271953157110939865029956045147899216382041188302702150413978975063957849128574979674687658500303471270362971983253556246872701033325675708007623994533146435885121363117013988364930125247149756320505839775803923621186885592447126322265678991372856175357995477458906320128213990651337421028729770864774355018827541592514607520339347798567722985463352982185426629328519405498412986083173935375122605180780551625794039895477548114794705348644691331524337333537413745227750644782066359744877519506698617432461506775933120647330597046471690904384944139847955918985522084382974358014604447497024064058507621692860540362858125188214836434675913340126022011661417296977297935601868881503852069960009063380222165067114091542803800886481273601212900225225342076074198435530965370396715501033991448180094697055394265780873149716624201547407075581268944200318345528753803423963228930039637307602736914795799762994838585762152718080934560531742752231183693684920733392866261024925144638461431207796286404479938335501462177428462057496854983143898508008099225142792031832247685373797721359750508141876700742667903978597239638797814147713857746401577991320262151362597440406334447221867017217812428627890847691438758263383365942700178453684779641862246912422529519440354793587264045287016029685494059241292342512013801649965424588675547098906154639135939060372902465798629764120845200512434780688993769651833967327852471340603661681194952530072838548476589594820777918546312738592315126270113909201790083584263973070292000779016713626446928959382776240474253217647636304186604148743084068181782329084498200366061397678368153159764801065846328088866671678815595674056433004278903715645676524499592047886230146465510336228988740702266599144423117931546179282851964317156426573786013755518162225726586958148189409460865978247984942527798395443774585070524177342379493876724997307768282968390620857182448163661357171672599618650721460088667994738688997863644229087410862045108332700512973826698301657009181602821293947043883660950493281163856108645640170598718572885543281859694832167779420095667895062802951175592864154116241174474320776929949671589209784175778012341094380774708258726665732619818379307821429483404384613866598045785054735479190036098690757838511232765457178438568864753475694270735550230820500760683570967416054721664120051940433714513828324411467891226389627828758079380692535046363100754062459050708000828601902433891591269849628088877514927613895932026805882214432626704933816671970071404253257482798715611071644754804306421626761392413621291398671937711140643993564032015449561859564444072053886614790018852862242759727873807400198756227374483086861265465989960436593312924326159493157780800941449958670707081404966172392261791459053578446995638665871805432298380108886044057638742541542793022155162654900988900845474779128085840525221872986603007013228735659291372977150744595133531441458741543501781892351545702505985961216356692570985898551580194327650204546793723499477901474375557089345951330262960507913657100101150905892466851584908324661530272300445318916507948092346561184843487085181207450874342743158641924430656885615071815667251718636612824033223472001612257555673889292666297805744925240151979251196757326233165880104296040526389743872548722535250903804572933123564729223862601414592877853407722449905539156933814137420578238881800422338395317497990151943378816714865464918845325635035937671700467532433177270957673366492817841016240131891119926513246530955831512792683171755110064224677288101174957597790031172028161230349061241195373589896800305269665523927683419138359909281947632778324360362275949696529235925083753981591025374782720074304824949185914538904738402800534973736907748177283999749010455595935979942055062723960658306413958976667970106933119010369561372135645036419295816418471586725588184651609777200828534865986540962874550681849492553191793139979393897394198716452835119695248465392760369503801340429697954911021026941665399508879150583945656614930198420417890029462007399094589689188452472011817325065906047957495212908889990476720260818351205404967942379220027674773628321409958326376041990879504119416510117758535349002608908669190441419813267035045215717762729372562467726583080296318871280773843098656409849598912448241429530427550288868128404838677330645410729637178043887715113488186007864487112093498449472837807352758112663150844169714193864151390171417430725205896169052307387035638949366037509212067791673870302033366263252945161606799862201150264300151594252060444335998319278524104668509442503288013189297562032421027897286202115878476473016536622330423199157831452179967607330098779320850123099051676837083373685200607909336635465373569956312255871093973852206214094418118528916035007200206046426843463282323550789685112791378392752572389133467880115934448961328460225042767686065234218249236391996349915322684133760409893561787012956307664862195828524496198204440496574870881724738258688562642335917218105574298641011890129090845287907240840666139719234062868374394808736820275320219337143236669360182983527723394903893897581751731041013283126757031431238827152709572267288118921333408124230805217913844589835266410818887855512402435250252077155808005724599612156352897685733397158334622379592953290051423303142400916673739660195235417592695580228454574724579592679508414558352648725086827097991496438122886913072596935867014041181604109949172174965167306378571080123419014075494631225763304885829852933467166338905050188986555634598452477827983201146971401664636286213119890165849490086842269658950818586730986183192889733590418779103239112976307604222488838434142275063811271808299851719377814787491491787674373884082713542293808466909867384152565198882746198488169365075409264019846845814416908397600749475228957508961541212200318653775017857017531354465735587501614579627760075445192092018933372514482807411951030294100015523868437996381506456085241977718371455025385083205911081493753119464483080272443473902370274816902588090816783898253468535988737534909931813812617698784517076305484869643950616866861152050758192065032863390813438169002789344166888261259819007964782931357841635089275396822042944812893670094220016028347468304516695730697256800409027184689810142172542214601721964418816121329416226739777297365489155304611425472260988421743523298080263590569857771215671403958063091740322149126532548446733262198684404812760151965183825411691511163502037986025343528924407474096982730127724994618557095605440376005241521305113102101624284425984709530401314996445929418753198935257860202084259339758724141914881576831378616145108069088517340249926942332965299411917971521813467225205732843388132948122541591393011377208951267130828348489134583363380952827260521062726842315058891365608794738547478071409841712902117519889955573677649626931215936914184033475229168764229179642812045550034849049081689617450603806394701514405422951969911549527946997743914656245211921985339104304803230296269866167371300653495434898458359943385738308523045521882290127170507102098287408860700483602251316387460072206176222680503144205366588901513023319148159951575971901351265813341971079997458627638129602097982788135884132117591100248063241291794957660907384385830995331807076318727956434623734922620617737733272982806875238759654654479271585644149344933671527271961986928913360880207449653064417107869170722664705528036281636540112517575468551657227424157832485706135989096940652495143360882633591447598073057167029581216307977628830294155378282381298547522566001205510502031990165385355220635561280035078763027203859147165760945309213222179569728204329595306377095033872251071131073377002224885344429213802857232105289047379318709793630050788361945048865728338125776401235422978164615580377676380294172277939179186145908767834716738669052244216926448681046407056711897709568013923941954638928037901695040224884914431943764192721420469937575743359443604305587415003491738421819550093658253362535753659876347213463996303947318147593598581525609614934847631037602547511899664392784638551384857559908990547954826792503060678029425414458091231336043613958061194182535344845292247249554122686135402838456216392708674250689861150422460920188431939270817128502287934227827696517801210908389610246386363867265494296147089874817812419625318718391481193593438088329428694587249064750629330373408463085715299333348824321155273076536290541261372994072389672517892203963964278990457939060226084178605703848595281165262770641910862962360330255824652652550439345083388200880542711670297068090924285066048422270607088233998898830487450120163287538065317558353099450791047227949246467949610274235133062580523428137845923227874591651324334133582847833651330379088932757736451544319850161654419504884889676752282531937919275580817257550081532334270589760009665353695780465874023971387371725628371989874081557775894420620889709705928132017265766395000096988544236391945703464335897241018979987625467601656032831072720489353963338991795857623583656459840247288885073139533834798781080933655230217268537990410453990110570384455681107912664194209985284255380598833104057018667508477973812880630292676389767215260152370497603561893152333365112780604221142703051759896933027219987920992046870134519700336790284907707484969326954236766375308834169700486339208281746413511879172180315839549274478785255344984243271501493784509874893069297284199242556103037095413710214759694625277509657305533637183652385936663179846861111206614214642297027687022864426788810752144436697490578509840937520995903021446214032780428573677008302358661440928135229856604195030694828076686185374267719813765692187427914430791681256435622840071544017091653208316059519520564016266312158677597225161407707225356579142429124388968876422734959896279534108443668050940057576046824701443157607788653755493884898735476199389029836643054137709733685367059981538516120830362431815274907595549248672101279486448781452007053448266500748866898009533379773571024541001918958364689848542663854995947269037714720826448500378129958186366911017886123604790260396875234598817217927188668290159320066138600102482178554532364685573782824587936143302062393827450404959785017299586650557259768840538855509350808856110056624699675965328632568538746248493374556268725608626273585689756185583213210297719318018561053537219765078062818682253172425916060928162262201895288892793731849687770133336859276853601086067044972046839507171490968085279819377877083845565634683650492438539516396039944781471572842460259887789169523318722875440252911187309379402061406375801422930807443106290886107949479432742039225936361500444454560784134551062929944600983883617217347780804089969889456824099846385174903697202158012879433336859093244214636787641399385561642178144145570467890780226617781873319153794745519580081161112436657768241861703747644701649748332937510720030108120460008389629671830555243704354763356434443877236917228778908962396572985271953253203070791317080536922521457806072585256649237616762983321435079306546552678265333692816882508753644309950600727781916504812329230257255925026673316837317843375653430316354184253870821367360037366431005389432854852523996596608051690222405277223436306598637787378631555502162295406517962599656327225130597750883241410475823267573143065750922016082435642052848859604237384535330556576029028964731637949723774595190670847180477208846768843572460171617949808393248597118689204294492820486967069850817535629613970166847554780239952538846331627281654201939106315889168070548195155972338590880122706727440230432846025808743678602757136152440333541207210781585122762924513329709718758722741982868872090572699550783984597724835356595828531615600507666819937611183899739390676564901871055473789654243502660130381257502684188348599367355886016775604082805764453178618202316819571337224109002591551548303942833429943565111704008829930771875711599255952453134552574858545054687306197849274915768805959793002249693577180694215174221331783504519618699521619249999007722082896058197444604941906156616393858337081775224782684507867330768077551788023819003137188151199609385972465073422767924423207447234119803140534635942230765320182186940101928766009218615560619512782624803502893120820803694510123909922850424476423830953418571369942331590039768098310427774724829952963580151873107980874212156391219639569772639179602887494518609063478142630529267867098231467651016784233327672949341306398955056965025899847302335630585836918099406503636407072904596725763065369719402937163472634232406906954961391192876294802811261753012444790803870384422919776842722881922999015940634286039840161671111344201979248000260942860127685415022942574690175634683784115002559038287940777627398557227035712198247372771704197869697923208841876056706571647949492741216189525653195041007752984372674535299784258306183243278724400395911463674994847417580319724361694118732681960318299657476163976926874637845132864133700391322565494465660877474169508046940257697611379379204830346671175307504742117106605219035510582124152462423050823970764933809469803550240975229499351326022326194489058681960105468903845158218048353822853674058161260281467275372403269799881706124214023803807228448343335547809771433126130834725710437937035634667340536240274885291396064266769834485066596177397596716601099966300040585650737558335526734624289870834024043799057349057769931388896529124692037268726827176993817267780525142216418287148907143545908927290397570185526365019393491849501163996927626541712501770367085149059929540477401799137598855473607824484624939359047152786254477038173012406246000613127433100717668550071356619964602555780802688918399843020180742210415731342594789722414303814441104914322025124058074987127867253875212250652411237746015976553196525106866103554843962617704171831977104845183207974944773565012674329138910758643792309276400397190631473017336037574321725883167922091433035170009964711581698968410755912074042133491635652100052412408173808243368369890787597579144012112220256597049617300525227460057842429847453471951315590259916581554976626958444831412469098549922442051357546107132322270669586760083663527594756232399957823416573404073808308248270945228632413498391645608343346490022056988727960311169913686290175909672057730277558818499783922777264028566914552119594933571491522603915917336364377742962320720704955425772376193200861235151402743458914893262059011259143801760486145358747315653605902028323627965009974681302031640108252818439097531493383743568755460469258755082317798446402678653986774849339315259915154847048600647902296434604358819174254962047636492605020193513679766855525275995913849749265899404873740921487818433008354091295750145726909040361019456261880312071607595397103582471874135510598089536038584419285980999729468197595117258656939844754254776428352455260759614511906611863232613744537572135098615461648013809129057204580330951617690221303281918399461988725932300271766701378314404613021324093582247924006769741694504465438155118496116787439101930633726296256272243584779161191048462501629711664889016054989388394595157615090080508457436735273333347412231038664750912844109721478513634896185545621987461330466607573127856481479893013838041480739525288332924059027301649339819842141038110262867176305737787570406358407687298748645945860766906443188852419672320503510252527520392545614396275132002788135001908005361868016895339053989711745008903767927008083379275593803929786834701692064965962668499405142118676931972713212123001651086488217290212863051989837591163485200708885498048816762880410310125061476850356536559544402923178397366145812697077500122278971903336928353737088954939351082653761117084371307285912136084499619307863066676835912823962640931907822076650302161950042080284631783757682524294241587684261260106395173267583043629846275804768257316323200219623623995389457599239610184262447557307813110249439969828483599953406883828982613676545706371298767840599540278606383834678930264176113876940138649753822205538447952134988558202034415108655495098750656609392113211402577372065124842600428271772122594395042072148464553822483005978209626424207745619216730133796669527868856869542443812483283214688903142365660288738498444714252944013809564392655353872370364903620891824946319434552492367659934844528887031689401249145749850980162948043839033218050333090244802936720216662382347241172891873086952108701789255133774471612249872145997486828335994490889142783811741926430010560002535158549642772764677344191778223994440591502288318856989380398987395977181978813065190480246514998026770826354680737657760571305832073270120362775812050703002972845137803490325491456924937437186245764411558862347592654076905701169389408785576091770627813138531334149432682121031455138407619439947120423505274607115883105424211272214508339391567303723166853489795817019687581489678391781366628737394196360491990482723852881404114238617086462314194206060405542919936909159808572683556316294174359787309133266503795386420202469587559420678833345877254547743123704289091516372656332872944505152917000414886593638929464438055744601807412931920255362637212712178350558133317934903602766644035644385471586083182242279710960328954413157834785350490762938845766417560317360798748154414015689168436335649728575646830236332184956840841945530072624294496230845041999309422392328667889331261090637845178940760293764830327824627399123195452172141314044168389640161365405463313604408291958113561584741109457723351497095108799253012325363921333648432162534538983205853776986452673080962257647640382356764415520499074593688446609490417397051144396256676095833947629162744964666206960359460954854204678661813928666123064820582989231792017079608877268899689488967464160345669533550867225540527273307153981294111816755164689638885817196906550263431776104066177751927500755495744085715035592621811146234113571466616914789161725503486087095620157690266314315308447196415652634999401029028943672518586414525394780304864845878271526379358715058964739010392673255452833655502177545534047561131801216928918728182915042709973191127364021555488822475280795067966977236404512020996808627854474660698585165479976547276819753403027860688766139542122733049073590239758998739997341832145661879064683160994671947293271598183786230272882124498977236132156384136960963189150218642123367597346460797708532238630962981026368746098366171558475183372850248133956972819518618589114760900900249097128838648485066702608232382850815412948101346616491957905361078347584485844701411888726124233000204428072584151072739434139508571622053038337581636470843319021881221820538028624050244633339256510163457742010758215255891316984758854104925468482799238073656017481235192815087122266596165205643156361168041789143222657982946514975437508220804878504546813809479471080015378228828155831989866664824853190177451989346355720763900337539245729288387128869122512130033066651667295301061831823347034899507793780505435938965160853780210691537971589618068131323056303000905641257268622666582668233408947141003954619375090898563908778284494400995149127880473842386190464112140183155490550926321855382318617177017535554049570780004854886568759287783605508336705654716552642133268164453748926458924504172312111525973276528203774468928690683466583788484577725907076543684579538412776757452018779293325454092824932716809055050881479455502183442796130370745509340740149907921366861333490159231532172667634465946629848752962901828550649790064371319217278523952527435564223483697062385474671854478102360816881619854195533336346927495446975965890899464308659681458547489499639408921249799350418391952003544726596776304057886983764452811724471856455469826198174602452157116411517523807407680086465255742790285731710207524141025372037203639350862730248104288734318425491328367810660267686531971757129973332577671930703871636454097102076408285866671695150909438222806346476436984645116802675797989174513927997298414813088167958973959129661953792479501819792511087756338427195238325320028282520738612512787058968165833362407517297425570072454184803610582773757852834489698387892359549264704252889067358072612384342002400903904421714574336196058192740696346432261857026303575444945147738161082481805833611093940150751706534767422116606680788040629097325814811726202102482241270494501888083941338857191358299304933081105936155551867786939232561874003078251833019371981449035919455351144691190897533661269121944821081921374971870793933485530112971282275353775182594847232287042780534724020199203811819428847347129956865831310360539969928764510204727352055067060937931880147624905890794563153082318996223975580669934843592454599040791013980611910319469805053967078151065925628292357135564028414083009324831297464326943637920781575824256657335965071737489705100918257687939698195521531973615103809432420663111607974640188439959264167435981007632954287401768168080936977624737817302607193562972901839447544399105928882462791214888246139622174918972370664397770762680266385528869219969827773415596888069571621376961675402274370476945660501788374791965482359995209979929494267679819977718528897133369854025014674794644816788139959840334453808933039653390096450687115719290572342073178083186566226230228556506386753423935744177064351783142619078660545131618591777656924158882753617859069871144996713471464727941843958625928137381677644091186351573600017883383759563196959371808000770759644187604214317585201159430198640079491031584133941902079041059035376386262301682998474167297604501227967987727812271717850858183778526351921988342857257858341883436290432529109332086203708036599353527496892141149784943965456674480015318802492367044779522672333839213009101216671730341534243693579449354527755604974396846204364597908546581199897719407416699838830813580135445120794533298374994991652820972610042549215249138218095122778344331416628395214248414277751530309628311525866114821663595747664398422044217915689803050518281175239622868683597288384267240867600049358044999811074197239976712233147263409971476358163137725923577562053364307357776340853837217341989272836035429899306082336350263173806762502552047271127630578298642910220668976534741487029073541106906218536953975226007652743565360559674990855984302503895534112311381742069650493121556782747263971000764471614280757430366250703125453128464287097008613664627145874940543805764877767468377944212278114901892582790216604928066296569575523059146263034579396533933341046788010100053968893998382436927584370725234317887319031905373440448603494342949620801736046298686479187767605592259639380976128910823632811442443276524552305195967333307625014608797835188154881310074773055111463760497764239202207001425674585474907297726007870749411178493208639964454656669903064616833901354637610664526000268523548113219765014903285695869560763949198977691018664546789195971758258525766917079424788798218979569929751904864179923993052879791426416261364190555227033567403478672381749180462932058080636105390472409179398077980568081124717501318901013547600239180588824841628135823037657898154411959872377880724225459547315970566881087357853181335859066535134150578488052825967704771355641338559769415511133497880967326565489173224455442111902935095677200184113022662110308848568627744579006953842808406841190553872028807126002655448507557780276820620282319331034636024087766623694117476674958246215363795718893804663098025888734577030495715137579921501017112856593802958619667450612192539009598240500825284773183660066969930634158041877351506982072901913126231760683444333853026540707958583416107976925003277129154111575399943490168952807789216213163604056531820261611883490042775597318500239324883446578975209654466440254845313341258117621273220282177043642387819479398357700241789247442795912420150668428176699783380119262253319882275059383204413866831911402204570212064816398694423308668501784649683196386917061976172069472527509812197788716222878139004488018365350262616753001941520398888976761016066658275180704880247237154380937190730192365610047688169088416125791695005567196723699829870505718876251972144132082991315947023295605740519093505742070077463059408819095885667663004159371305097690654052821706491859275095426447828008842272901782911617754200129381788872445922735470525030728544940420058664673600145405561826973274623567734174164076970372661648858269907110926853907263138635121543232567557756826317597236064249206027732326937271375860856862447907729745041343212626923655594489382599001139065519087360980618658643601618640115810608172627215957680209960299474256669842490573592868655857174504537508915504049989556821346423687217920601642205036185171289966845017122238729298134389884891053732302016125241819399447773015548603925103058997292577617208747741267408225257666596277112963559871791406681785505174395580983456008971652137600487467989076029966009498423739682981563255746766368897964785143108510098848740964605700627142514121718286266199937039663136352446052253808756609281889808976837476300334079541206010803664389244775465903689399076782950207612562126758199429279708211449893546887776205433901303537847829608557495407337880257270964653624545112800864530926627843845026299142468961320195838138673344521329515512775372583434200864978924481930931472572233869175719706494877449544188507788044487281483058150169590502218520919388543755756966793833014455638944300999497906252662265775464253980782413907581793873590836089804877587128808328803514320055916112069092956647260919171263344696709110972914543768390919877738198027110781742672531704758073342123938124887738656584435386415323873722585990986789865216242413372263635054058047798811888663912563665746424078083968170622292725340843081655051909987751651350946174438143163345267218424363261114360272635775005988940601577485943908347862569656812162937444894564811953946869071621635455336294529393292954213347099831560258242754655747582975353445348952344582143314729001946765089223568021248077374504493080441746226935799236888356023119852072333076029566043665734886399652369584363194418455177813524077076965754861759001635213269155762699987808025899637910075026849101854526482313994439963747598970914850774183029415401036106652282689803059322412282289802957343566018824848506137772165841983789089608577775315795520103446045149989655870544734184891463628732755015265802105046786857725335455201319731839811663814184739274281069399470654816983125265157519669259325557882321419335207272420341804986981790504212197376968031369185153025246146570043439610365764859605682443816683674783038213959525812168394887971080074683683515493637824723422481206475116237251764300377463446468630467432182851453688806851286215670698342685657889245647375192423741054295959579864530222738467805153758260533749506409184344647748528790574029482382301339632944816626748497511972057439109770797846203246969020041002121764630475831947483203351430786495857918382133789221773840794003688328123503508272943242738753281165834592362697801617624723213011234382796732666644683245720243054381112000641538419191162309113929090698451359526151701193851837876011341487753072896164733109414973839619497977541603161731419448614001205488655394142744785372580645544584314980358758775001159430164818062474165364136744335939818921809888416628833382451772704916923937148167950692136635067273283780397358229641187039949187931038662704608316283838298318616217184833958307407215732725381053545898857257844618537726518017725674283661041298884220523834067984049964633544579610385809714047269419813893218097420177901979204615990063890392503757309137171046348439065337620495687552367068076838912675351979359485391705312924221829637508287997796266348717448549064375025943731409216425390982687873796842766310680049580410432943601007987115115126666259769790098955506156414571786597986759708027677807903961443460744974563909266305550648346126381478909940042531760004259609385371553810179434036487080520096782242222347464244863273181193519479401127429692820245177744326536562191609722376064907893764379875459648897278177358503086118099118459889413420596935241184504350010421101101584560491055044355219055586031021912469231862342364727793093259512023302984364242011244493502859393879431795868928671104749122981260070535958831888431859982999312772449263431713674482163956549477467362821217278080616871285543424332479772185116017008768765083357691666841120574827185649638368551759178645318375317988845633252080699958470572910415635137085906379232398704034486524350365549102297267878849909411684722006323848757058258510075089518527673276988025957271856129378108741262578499681713990885065464091036573739336896672303121321307661388248324936025257000874559282032661145167248096736836095662996696355332645029469588069758851071170919253478846916642192221403864059168569749611859998822775941133415843260884246100353673088207968957939137944466132983345457465161904649944016186929869695034060910319116292029305512313144720256950965323839870840803665544245894951005780120163093612102285674199844946280251650721666235872751835212633019358804326529509144686911618279052090473433289199413369176698640699782689973835504960045606804744015103633510210881173757857945176564264274431250692823452742724767868298676485613580017621799411235754286658471888902570322784839036196840371920716850557086989368232967103896059490895980195451775066193381877988315991254575048849037880608300648721761803050776435434727270773927286932799434678686330746009231323812602235175718919184953497397191219049344848923288105546828325801156398758139965872227320866903537212978666516822423476265086405942176269560405065404773074415407112252801547488620741034384920900538929223397248944321878745191988432431893676792003844645412641351595654603168846799977741233683289513820873366729255056696715307275637825421374082427423680195192064979564060847431856265676700033418451013910631848471719953516105579010815419697064234887667888622331324729155279662936992996540646701696271911638749478546929010343728621910044905204388058467867081619349626370663411290013059389184828500099379850649297029761365070148687569667288570573324685615797449191196224097019209467097385685138696402840955216284941731660025396672464325342573007438263390569395453633529487817810528433271125033907207147234807788554750191885740839567091302823148178349868655218623039423656151473221453008386899353047957809307617036404535640181451472294112607439764918107765498478050423714261312277763316644723575764416174430197173037204732009366846611449633404216605245700345741476394764652503541679388512140847965628953693208609367198703760926905155908036978668932419295392179492832603133177247915892886603306700121633570506406190932356681695369572064268817906306141996526570869459639024031321298736595285296775981559353784809381798512620307645673868088675238994838126054438891789331901762593660873271418081094138830526356949194755663640369086556627717509466030317409787287915993071090217381340691354528981655222393895943171306109942987210187057672097299461523352146054726907194301999967792321598427589654033485581717188487230710432523487238703940930934230975128428669483497158984224673693784071639817198191115498303302283422158845990092333846005018987301046256493898122496915501565759318814217244116959763978641714461645579873367746182138404443774778004930324987300720397921813244567657564333538122382228013368458630297596506524592731428997904717735523599170819804423633767965600707252068886667587307416874605730731985358259605740989649404520353419946001172859292655981024779450014118868389761252941672146277482724867602799074720627754322329132848267244466856988501122374560085040880058828657984126249946851375479504362872004444408546589582024569791463946200681487897455169741981374519138841410298397423984517370792205332431137770349087272145191677014843549480873001546836543597025729171172767427203270853653619518430453165759042836979875848723197198829351368104046430191742388429651665096508597471365260973783743539261325386880443202864478692758045511370397285776428672752069210759674601046023450780738069212903441045042295413462221059511259697559522113309759871146495718406226873318099349195472081651204075844384175094324415035490080921724554334955533587560939484740241714476582378670188169038570913056611875908893688848172987171095154769193915811273613713004248050879598831926349481299860033538495922628909408458971699608148477381082019305211933458372121653629366360839000895429454521671022686759785358719689349118459728027819455291517038403110928611344854570304504109307923310337371771903558298016475190826272360565433298526195794890239175447193400967281389151535507733686646800588855515290223000267775325028717200282110600008543072576796381769102538283666434342514402475264281372994052360218169455594456805151604145906214866416842927950062104031648991301951639386864827652619658801726696691883040153626191629131280801343724781413467368339172570145010145716154010839597188467085466058922470666752805479577378688951123772665669706139325316742909540762581696880391831037445563471288187210289746518856521444674257244159682689603435974081872988740441570806625621318982045894719471336348401506796549257335044379740422463536381828136175843126367041869303631425419269913116025809504012668146586084311016545608099984881304600758376043941822894897031025842868861116065110707020562869215764112525035734005787095354096161789004791348689563882536811991035320585049227461344055759384142716579863985098264508160335234073692787224859633133010723617647710322057031060215904561558629066389199284415208552579309199842935607328082129296247401590918718122002694974961918554922931930665710285336248535178389718335982651413688599828914389357543209572513409354920108678839232063862484950623761418760137961668035839311856277532661163354818889596900823377810826553947652967174419314533036041782854274985502359126207073699371548729025686347532112629923599104580549963068653732765610496970086778695831664680886525535048388433966144097664971818731340420360432782492934646592432860376656401916575939378796247771106072546499629007308269243212104879179357627233456237689734646686524075528393922842118430242990738731251962184082354889397356749520562650402762423099657482557630836752854036188671523315674845459868069345855267469664589118090626399914599793016574769435428837696464979940350412260771294883916560469089762001072200918868156366492678222074618648954999351290997767886191449155131668604112663576150650862038873243474042045676099340418218112090459730855816303406418743249195967780668758174526089332368583984037806209891215316557836034747813754584159004485600509737864724379263679746674973298626133794566464199223112052040226297134607450878134351480366815848361746445388902510293741649841885015646573973635478164336003971123764809295889487682090498451549938657889667946893288027306326739613676135756875920940728165981276188183377307467021946403699500253120746236304150662909734887673240119663248122310959286045343502935745548816750083991129908850127600972092005895383937972653927573778379645212448443189269105895271484353957206108062884763348071034010815751757690872190277116976992574907235594280119589308832677529817374594342287186567483474363841966776173457073776538532927273099115100757001514501082026740567831627565054016012826362024412156817146560880726862178296196756655792493441955759241858378060027327292928552339934101044573539147351105734853099199655955378809984636782230263903200321047253401699572121230202693473056850741960759850791815297695834600068308515563360713764363703259044145277047724351229656995508528815964496285043323087899699059409342478969143665724975682058010379212544123667739854900721568527069955633732151569506269589752789228357800680361991692028923250617197745779019854184980970074731035170413710369958366106612793188316890337094095281490104695024291369144550665454546329827044551911310537859547532937697523984600747589486244302034856161119736776166005174734498760226230416380157071430476331464013611932265342159627197101836954482725718198351338133745780346575453053666283050845403452327092314045454225880572299121928741334175877177342212979266885299250285011766493203475776501948654284986220790591744426596279858322421075753136903234894633091965674847615602297196311105437836350460056873350963688401574519693510825975287283770138665937559630179882752689849780541048389173877407525925592992960278513842608201648047890072280341343500095146573484783400900493588901965750461496338224632219658581310768875232756036214410322080676994503062322826859306923876081947244687032788024586261463075589899014412361711509975792436989795652522703330233323526567991978457396964271985150542471074723838292092819069780422860399261828774478252937639375085928471266775521529909381803670380619892869353261589754605153682073772475286178273927448104273608872680913536730872064312135081373651736578859746164211024611401684159106376567994887872628940435092610314368852060267274393834923276493670756949203808767885203290205413592086401258196994027290499812625086855475521084108830187398726978766393445141359243887308492715476030009636066332518086871023291126261216598798957139751832703338375223812265813452718511672228454453791609340302198853100351073129119336008777909208477906066378576704176127288982229858159874795131366714770099322881810856110058137036346190088093496300227563657667765071135016539235759018225630848846360716768978714325889581431815354046709212474225854250054450932445506806969974755982267931553876616542822124067763303009706457098887749691690857183757565413008922014442848250333718371854231044619765155610849705168847724958830354673008670729396102023799190721410213653721065736720496197200512817620068293849676117662345690781719481686465042079417377363134498748387231508410657712173748020513092089384961245391389422954289259776031058151900069690953073328329026768083475794566127491695389331276111451235141703721739621260835556356846671058955888578801924725717895938568389636685792136145230250410999450947095476141261370179793903878641455083499138800878211316944016613231547009152489157793279084403408016317435006351036851516438791980069106897431809890360650727255053540221147807339127475352182903036150455204346086737844249403926634523505221755138327104291077759812089459937058208346577149107030017185002349061927057424454502146001607850665811581079545042040259667974718789412451702086767819052852927608081553296538180226343437919898389323567375672290094768583711981871054490089889429393217133709126313426964939579873130173343900600085028216135901007860992065820674132809046259301004949302607514499460648077333279748110736837788453154607595305757390650269210022986956925466051705428936613791721978664220455868560704315690242946160192586575929072880055197914341846291542977099071101184472833845530938854983387085365193302971581604289202782369783069997606138303128071782805984922816096241718468360537257919673675901608068159018683110702921093599911189548182347952117815589561617501561488995037667743570664312545595949595691978546686187964229509258885714573109792278322003604041386990712705634335674143831963951958684242839977894571013196569410177886170641539423601724306665713079425617506999947717563609382869604741184511771459436984133236477780855647607292688179976358123381158543920339673136837284887609909164371871423577485359464865869475913301086418802179128849288369181449655186656150926575700744606492142803349089939450653906534155852760604884609299348813818820814285557333679987813590371507836578398277956483193351215744470937970550093555177176568205176455296779605393903073597421430000423258698223323946758867460964547777485951123101167717796069635732336328313455478252943151172698232118472646826455627279078201365750738572369215653397987924571431760661709897058995390529051173266446894685853112287656401453310246710271901724976954189639578532185158981297856788769091478262692492944950631846235409323348679621590726229400815475005439883466251181954078552805790665259520773599972577461990167628120477356803609809413227973717384436104768139976360583472139981579829349206686168995776195761744530864768156357212407488063277572387431423264884759980079618202194002962904831134328483961963616214713263946029159920192385280322593141787034795683781471455923564752284395658042271047862755161669453477578295750172236550784243829906432229581993986780710160021827381680071566943001001721015441573388751051145614091447501761270499539946501752227765412593086042484559458137896182321502308576236076788168179944283535996226295666733415423672923425949344610198009391460254683164508868605642147228260800422067799994462413591224591580025722903126432812423275381921884366425230881755752137060166609590716921864165966321780028718979477707871446108550722071067792163325550814935798067869682893286687136506390970971171351683128452939049209068300294491973663684292156121687349521330325777933275460930978433719106661059173147069378399344140607008313003249281909501775137993703568455393705660796991840071295331330082027709731401870938830073056050854240262930585452086405237526293465089903422929314589267661993280941149270575014508149577625215790804194152895595126051654218709412968097570328592183373894762497884829985275853140902042597019891268127945791230049067441391685909312964628242454232984662633259744661259743000433754860923550143443638226269359740246501042162495347057775082766592779411762582185399106798439436040288613016073308988721765305209228424473877494945612485734638300016455242060773796605458277852614290640630741339212820990233353835588119479828214966721830318811324886399185302602286192700181034085851172133012201515615260002412321142915782483697404069778768499474636820091322394406949866899919329359736854171564099824979290955536785656134347962688040715518643697595433497933210829272687936228209867921795178711512596027790512609571374782667243807559472859285194130347019953874220399201771108262486704005422778020174064462231309925242611488459568956269837793598539645434491943037939663340593100805381149281214773792638396930920810989928404415449609105643640661228680813915819994199785263280666763756548804781921205796769737212684639507266728533170638805951582398029909549108284483012137622836763199455678522170411284029169847112482205742163674021206875084883449391729018004713976931010816313337627718134193663209236730741852964625303906749909704240116500424038298635741270524484402794917200510752005717759174148943521349814924333698926327640137026041175426983672943716684012382676849262946826579133252443458930918035676394229127170924665588353194856257715009364234474908513268192119279128044404084009595725017737760433172176376935156547192158619071431416687265597482884233460940042059432640903968055848747921844440313776920559103494293055758094039185575076667812068532232572952860234203488269105071830682301370467614736455804335497502509016414033250923897588665177057697436164763437824992890518318079210277040098562940629253550701374011507914066922778665758068858132368379127210433857001831050938953007087174264618254005557946666687892691080942691605700091426629273672290932103051932000882448940321415813386050228759459925668109100988067110424597387682304476737963100377639135643524655246283198040362881916592457766467519232720190494337448861645949902936215657119716215454899050343679546294495291198711865417185057022682749529302190082967759524486181614167141978805334439529013012083901894585449739669163788535498697947611797083228157558057239266018533583264055125970584550692676039414168365629191329614834764534911956336210037309642049001778656213291743515567010365233157872768680870680202964445815459001059316845448106308755780632702421369380190890859853331041249364751364130197387104374582696124407444395777538716009159591658668851552786015328949032543214872723866505260437928300045355190410826442602178824603063673347398457738989005434618576231936993458602660866298727100780759451819647833699412831620626035932984828511804082831967361352571627456157892227441642922630918204305003956038748086553909783533175391661221145211430426640758277293805474506375705634776660715216622147200949657147583911684972238247251191429669299547081844718582927529605527036152858939382433390453415228988315627324277801896873511726862666481593163676050303593753515196258848277679185028663814338288608927758032031369280145406550324391684586050132985209356503532768456292798444276734816334591509329508523205422461957267399609950026886323056434784905993335425590412030834687640058178413361092322669344495726450451002347961329070563255252239547629303473353899239996690877518509406470862099828031708827268145033480007033126080392219639965065539557035704033168070852526140095638066030972599035251853970314849335358284804041086558147816812344212984879723066389839702655199510755778214872660351999336982174818394204476008482218728395649369197504779540737454602489211209402113072100010530757651389744815192979295347392631717709820017179392222239493533832680170207095916309991381118499377213192165971734513214874481144523375925285527091614345139262251788135027368689285106278374419480458414640274205637987295957931986999323982121854689801633749711573029815758418960350002597861428496831754027532044643745614874642391358900000159097147869068942245189922180872369711720511394998407496365873142604855292315839486560053460220591226490476822505728877332437176537566983521935905581666026959970880052826536463731718878591732066900274024284320797021889434571662106455854945048969508366771591936255680571462806611739736022282944295178659186142956172689155896469354338627600848800569110007589007055109464595987032461577514678138347879403592572411967512573858809928779076881839151022616521737337772412213340826314718044299817812930647890472481092859354879619081156138606309070709660002345010558637026318630144871564944232491640870703027662408863523336373758477198436793834278935299285119967693699492440087970663064468430073816818107534164634324271110142388691634946231460576979023893206770356327197022290905065305998382508195524287843692387707393441917963071453381817055235511397136513562600543592148804288736580896309354405095174318899632864095221096275686332656958044730600207280208471537693743791339470011094387915662707840417510832652768060646390150675144009508625932481246144111073715594516175378454763813411512427770551302863043853170959943551642117404185422227626434495305370136348481672865746514311380596499267859946362271422319299691007829673676464102768336772804730712362803158263706121082359159613622345021006263830101159686762002392013882472218797670835729390631798502513909909913969507462577266171012455527090366832024402819303933493267889530475187098984028315227148601459049590151333189632682191777853052341649630340859582427876009971561253126724752629506333248830064534613525422663522308879747282454517113347451093055740824592189069849165990247736270813028430245033301574078839810172535431949347534736866641671715051536004711919725989281551692733816806859098370156433700304817195697953130021965051089157482235399252255260505736383871671429922700816143780182564239045649902009708148119334572410183438287326202871633504209810121287087736456699623282615433062024252032740107164655765625920376363018411507845805006842966421782705989964110953610594727194274504258733577658572092334720744382763489144310307187390812186217413457995318787818023871857863852226921965390005801076058315676070271427893396025502812737092089075206061065029807425846643393236643448842416449665353961474895575920897098222906975414543208221208035247640458888547827072827752847718936015623647225215676093079420226693622536352779899757018426709507938014744641492302031611688353481440987469697205404911293205464339417745079355946111266934036253913767878716204601070312884954876673490677947297129572530356180322729540112913666843327681838292445665484535136693410899685147980839450977405724938585173738927134002351414440773107842700818054742404273149537919102040914407593085448230412249572059785959201872011196451788364947215389676063790431844119809593097684899263089411173623006411539518780254448500398557026853225084512260610972457956527973238645091800070248833241082009884280468936808151899559272432524482972946190747161011534676921597970860431309147977304518868549613033295228373514388883823372120494905194473832435042572474678934546293609990649991616472128777383529691177809634261560082511489568338745213003196567971346699622786622203201408758631304934207566049040483458444331077691556823287705387481619919583343440403574738715553432384010627780075538514217975882195912090811114453439356802537990729324222490544696816635258474839799231479896996001475689338045257229117043721090352184787303085053593732861727077211422649791689033692745150913068619593057001008507333993236649138172950754097937098827793758816347956116286071561351515823352121877805243356571953265672552912598667153011963235998906071498275828822194752309829514995076383695462185954447602733400795920129923054847202978087023591081932044515271628692537950752723041398271150640960667508049514386842328350880372647368800511694997175404491273803592265156768879199252626357488070313316041091557309120065578858985668345213670946646702280682445002465455648065855453483905127128386869519756345693291846609541225490958495373045988821724865853145940067372742363212127026633227237793920350813765747878945467454022958763413117304938065142593938221353757617300090648665440342382337902393908433524525688035273762333206375565746601934580003637437886118168310450413192353438489299925857300508209835098083223300176417388314263217189279878393530595813560917349338057409157951438791445140059600856675545928998040590370504840458402129750508224473435605688403369959938268331591538833608173273092377443806345946623992035925592460662002084213983095213088576357902870730611395905575487199543879128753375099231978949484281364375801101633354748026433956146083676303256021848216091418089900415891550425913704926243394309436378629656533888150448703708080129306000767876515842141098693188127283384986668788238467904028669276685279139963900429033056598044214451082705948326751285411078693134951164706378169244361308668795913475373317569897795366742445072152041943937233197251420590692439537558791403502819836539864471149189006762940970872676883948739552135744601371643166428744961464775041368820052860972874978903727323383236021742509200908176559054769661956104699348776065398599280555700800153004013659313502607773554237203441759162333031410360505681255405667430402717964561393175862064876675964357584842844557763493972944836115517191372097873143341119428648578568778792886083382295920327472589782076546028149231326238440008283380003846193978291424433542729422786001904077864803459317407509292416770325393957707795307391410003440634554714632839121651474852560180479101161165680516708555407522773845934245191656885005594109236685723327591736037766266449480374844512425722041885349500370332672940609382699545262458392017198945994939906127546120251725040405658235851491701373948601470089004155535951514259580159909425291889372395854293737124581408012834824808653682066734108535120621377572589167092804143009092690341368483863632544933560731773698591603499265586104519784874232544000693431218096900760429159416213602747662747797874800066081259081985167880898398324006389620535711207678872338039812799825888509887495530425120133868507994093967348915666802677809638521013577141637575286305837396860196452746635081747552349207028937050727265518849322491077547086492619403661948998613353779300694134177470642921087244771760688360712058397104177232215576541914609776554114838414579951320342335102724255068232558806669172890682974185184200398827496704676558469365797403061943900793407984928088316373850047763695964368278864508738997161608926462739306648757308812116537132974045511874818587827983115602642675593736439120104349614605511626258974124934528078117656712790971406371965523161224797690041897288623272803457688022772924361167390758144011337372422022220303632751688954406207564086454122698818831056676488827209109586106481642063275334912072208819780128655450683491885987994411199627223383339434595960735642283168652747940220486745039226749776307274693852729294298720325089848978190956752862875705667621806202005722663531088178612387367624669784701765488205200561823611168837652362920863137705823430603007395058086116972744486724701229624076125364689817385222260388058406425864745500746052470377674437178300284092675429161226564791100290789388131183646494783258674320417887573916944100211768231151700728805568130726663683080782683791312598839100637115023153085982681674838562117336634623822806276247939546555683482584504441235886966264097940614693590841167602062759460746888202121387832499290645351992733113545928965188454676330713759248206416402288238978384268347224797748621012866054180054784839635771907214912639621843780293304434209670163824565124457121884403930721163804880066400501168837867533914423518574542751859164900412197918294500102526313649122611142200766815054365218191504109096678073392526635742731977050477285384670124230331677849169343478391621072672183303300511698155901762296818177557413111513417616209636721657361183287123390214140101371078347125564412296830428411068967111057806919105531424093415410681269924274517309587471398709546412684913728141816491027421114314713150245283109174513549302121723312585474179976597533413503345400261261607323973101685960564690715156056575478884306464214263219624073440981860941595368722258461616982920099552162075950716455402590666530395758202437736139024240278858722366323355454832797005343838720721521947798190878148357054912505214681977620962413065313539393842368142070501671039935926838023647363985027365446908812722595545066922754095564971579597482280116634982184739834906512855485086467927508587987237364147581669968002800649804456256301988356375570440274217104261351055688896021853066486675137891324704197420997599672543217155712475900891995634540757863890355626242131774595493022296662177553425757204878673273468897688565419680623188512228331612595879200085459635351293669927373821609394127376182492395635406799314049111874829744612998411075820250590988675360391725755805165376507705540543590503199138574155920755126773362423097604963853121792053630343618608162010642476189078770163407200981802606527286360985465579592511868446835801695148900406044141561916340114498205622321279623830043588244782506096498545374319852748913231874810238617604008182696942078211599599759569686757808218043703868217851112125039635530032383156175387564065742939704808563200239590726123703232296160067408536300371800819142808804345017902274787853250351039856361440893119244944796854256873537473095512080278249902633306138639518853763266751809644410055354191551178164781232791675124729722076183978376113185023024774622244113285245975831943279144258977105431006643021964508177433847254480038496763071079747531259740724204579419905037164986680231156184623240718786337597106435650614257777504677153227443573241016485868412413270445038608613580432941934393835157311375834614732218291708330589161476928165827266295204821003368341961898447397040590109570181143219533156202620782438337231175865097290064344024275187389168833852701244103081179919355673765399845417345688466590810537399680086967853049903887563698842624730770510839030038114181020537740769739982313612226662224474796410729342212241957775604134829538971801655365323997341221830850753143299747065785471521250635308968113962079658997427999633121249884641002771715444075986952315208951004164372920256883592889448560816187934361908488518329422821155191881131937208850484726892499328080135028697649849508196259646582100654988131491231240263432726474533894386101583290067242444437963301313401930938588916154132285828352053256992890972718431676549892943194890785349061244360309645377815437091677040333218788307342709832603798858891127568137483644692812310324415814073694062942330770017024655623754498827357361079898453692877723376313362046486856546139250998245237214695131801213923086313195198418747276556550386540555158235075929086173259868527625126134695818178235577200329484176930910553008937894515397549382330718335507509476609895377821254247767334334679926735681439553581702733826380841958467015065096742206540289612138732929911887748258788053374032289316612683285524356101341342103388513288073866713458745978982685084189694264196309177079663134832636449929450435094286282498986042109971173203622420876269367994932630534495191772512933219584411767958712065547161925911025584486204259394511634119595610758313452823753141300273720580862204916103286893000676892237051003237317204762628925691248529402652733083972756671590282393422187505008321017417965642168227308384348389482947416652200942528886841630481148178741230621249161330798215538057127608524492131914300994067007270548818387107238683257831758912341454411902963544301893154207661153418871866643856129532528134012378417097616464934776875956793095749427195747644229590973416526157386086883369796003149058943151751706650024583846932014950833492368190348083569441003875884328948588656685784500194779789630992980639220355232130602032205756423711865873141734189702228462187334433341661532485614599428620529427756153771336343199042803529846384659366013530051263343126546864288762143457270984569324472090954245808389769284173760895991312740936024353288675055174869129959787915542545812935595621061851978916146321395967281270713748375525615498155949813367633430618740183002432080670756344096647205118600189176232783306420965746259224176586304429334342613321168207287043522181978716773449797772169201837626197742249818292471882219343171353462273936359597784179691783459133676731802030286034703270238533694514615255463854278211413547306767813077045449150974815587964326066444756103381924909115060168500435917501727731622714195166002803459269609173527068141063874681266925659771824328987420611545827893375217149194085555728526590395516252319927057705077684239832813222967282984608510984595117365436113052056329565453551159280168582888526597250051515951841982861316935780345767310630117266800646854656659957864595794204352698034848029372764413782817963195911555394558329404311691149815518569148864566592269949024553529235975618698566338865432070835300867585748866958986253272137099952942802255416624169764304522025127640819319945138190067253158871161672624970311329135103976976729521071322932466802935012491428452568406370313856116417513598031729380123374048000228860189143370817937003673185300577697435098638159397009451602686871895623979396375801327967387990426490979480297033951547048243018787525987144344033896830402659471811578166351445844542218411056175907475083218807347710698183635495579767084572059463463589939816700467392194396448177786018068353891779138781079877426547164294316139005776764012077414683008333392712871817109292783679925865952837329460568843493037017539235054536945556455533727102692987041283464796492459520394787266347279424853421958628560154262701235534077605164032567057709146869610952197307660996480599103814895357038363544098441405876365872873367710907454099931379138892921503862312022489646964782496458196766160807013863668597197060203092343393621831191952835086130622775037633741259060865655952977546727334694056288810580802521220978506448514683505463334949549614468511712404117568543227846876465765540628255542749530727864020234115761398520177804760088381112096930860729762681409574683063670195037973817098344071558983033765052333321803137363453961271715363820889088005852175468656345680364422939410402038340134725900789253442652264274200236298780530833191818205280432553605155939279308569804724844968473956711625962124961787813899436830435087548547223213149213398250175274069910519176578790922766177139406125952193452674866817821361805578867646023758835703600968581476890573609079369270412527232572514354957170600620159927384479790759098297651880553672070943983341164638305683880601723696609910440660285100894753988094612341732870938432480282866774907769278742819281736761328281333956732113571151640993506013685941437225747124877647349473756675999122668175396931819383825398148315907059230702039298158788715285954429837764547086806881031864439311432624982582450509470722426771181285795132303528461493129370630418763945082036081415707577452523234366766599983575072509933710397781769846968881120930739285847215168454013569843253272625160161005340437520864506002904152913429780893856633807657813692129997322136840613791456513188591845496588311365870088369979078683686898078793801300643050606179460711117706620466701083300153041207510846056069307918129222938382441185732696506056768449752592632347859032468163962610853951652046389051357727029176314451328176665975807754586083011046105714351373905829845274135554390945118854650682661062888842637065844077044486731672489909574299653687541783867137059590364754931698140190636456340235727060539355935264053201428426564172857047074825946186056623513828189068709688187780160792105538930722448168335050352883061475404123944454914882958354320734708056174817387534249444899369087530650818453888532236665545191323781707747477027352342510222287010257562534128769314930414769065764981510205356201247611324780792809083978155527089253972964181653489616441431751764920497405633413006914969763516135873276557758018657390638354373362972878815019611250642373876796553485493291913388741877307627329865428409745312256529528660384617702023534451477342299338077427214754287914843055267131604769058766069294400985363599183941559524738958844495759603562664052644446325953472134574433962622987494011549202612556138334521133383824177588345411844092096386116820365765839675368748531490774868990225107260027896455698667388431476419581983224025178936857887636189305763756635218960840012881109637217057281257574758995419516212258757214383904093848531607329411402555741401829115354324195544781133446392792108147301336457702526520199075522249737670666004498672119363897517191471156879847716886638551107041410471971147967619880162632244705036243829709572224344673017301237800609651087716682622332715979524884332693398000783315393956716499612170015328138988225481994253869664096019669506608611002623068336407734267160336320827487122038497129333668213336917774123139110561792776126883413920093505488941542478355599264332919841813652178935701407092173496229536058730003657691240001982557611112253231234433868389671369222624937867975461934740964764130722335306604854021347577526959107094054989860464398062991046184950723152328694065197218227377128933235191139624274239771011276346877231877257364788060272125465609475358867854550951677151705773288451047813021856879431204830096527222011730716413760512841184033643675945445461345837411736943361376032148912163644477638634266671971765415626225603619319638691626857207724499774739981025599130592820030564920378990141196749795265366149404949870562476102818405560199791037742292475237410348344416992856388568746763660388657070127873096256170496424587474140911631019688055658397982500949653501272277773342032171023033443832339373509210386732684419716835306725839174573576425615350317306223769721728766576456878880571215379690719856227719764412170758063803461044931806716337131552192301535682599550173020809715382918877214268651464744690799362700169106548365299924725624240447681658862858425679196058079230167988483365678124756095676650911331784715785558217837855414134677560121489269247466716455523444419021645762331497419068566190471185812351884829641865269412637946900080550019927610119257244165592715576952905218276370292650849218224015084164827126566515610850388048300178867969209095939667739891297937207908081593120399193092117261822189596409438687979734262590126947084737785930819686422893599654674614600539605125600092323352155187835180684214132774540177328738966799601325510137421168793002668516611924161143568215729514225178338598143803809427617397796697125304835015464007251588616019808896390574633549689975071400146770610028815913525131663651306918034202809473850110269050972838551480809142087650627315054534554468900956019629273126688982568204403399292676505528963421806075117323664537454743988081811155739786477027784340808540772487286331879378182863824670073605361475195844887908485256184007337469727230997951554574155897050606857205093980941803477457303157120892080142498773355546459644490771567073408742693155206074191942708331195910483984828294383390906935492719409773750793445261349307198217863408395010431643754064842454518952170565496992807822599923244259385144552106382236515034928157403733292424419808970291957047418603096174493427954080563975812405802066577465004642678373149520556651168704926398259868274869785293983612399096640866728068664056332503960523646828868698422078218751263883211856955982521196786079650136806827178075229234587584058186776590413494571713955634840006063900583924038108511618526592661894399477624835021336655738213001973846252775373249027490028778885337728944717841526682384948754198992566415151501117875506497767207870976595079422836880592466888293345543754360592464687458619583181168628533125381604658027094175164455737762330410683191858680197094369132226859389206467013596257615050072202750847910499740772629687667136755787801306947745999348522697871874813233706820661725156989022650545554463263319129431337760553934111729820222188136243895165674183945198257187322574924315747062785680747817009804458844104099497864230904306206753791302889460072814548218558102120239392032578815319701321580416545667314683044715191058976036010688134783583120312710141893043964221594464595829643309743175234384475100143253275912413646036882237479963870071275769157626451169396852338464359873910562651321332687334144222162563436925677565955411154759832141916204951083033774805389334263701858038176199907458901594871788534902227454509428796060878891608952034654806198179014903583710092089201862364581804787582930261217773399572060091924261871248420374469927926956329108316973279250888353631813779383004813108272743851188352835476510510712265645347635743459485687359844878275397459323771525942889708261506086024153257453613420805162020258493096996569143771934977120604707389660643919208947632255543861641060774596948419760073720465123545160338432185861691424914885600376642806963151467397754390898510985636825217194257057370779577955409806194497110089694637871178096819122932005878737701972058968208433287888895941059936158006987081192604673604920230821634957703863516909980088194413480296030012663240422801571893052789987045898495038060485742776989311566282899841559919060823231365679192988039551409838347808595379001651221297901350385752219004153110933205853114512561660047433925031265175701188649194229787026103612607802071917704088539614969304760306882648267561744994765510560877831343490423383132241248728889099324719997753746780377755444560209557980242321639820878110880841939747951024390994209575663618722563788216152851192774200048516262862488725218163732329978150145538099750276720461534357058324685170123671274969503629192354672955991709708913128499097806186951495354909702383266965981333870626223758918438966336554483514946588983875834707292655050725544604948621825955536625373365151265336417361252257362767100544626435415296150661658551076988670893465731118312449922739490238922754519244009152452412939915740264049052518354715411094456541682535724304721158282054833037780225964633732418632034872228904269315792088186823082653101417982543143646615365894634754068268857935208760316543850797206341475859016431042251036850131609903205594757340700714970618174232066254284901857582540763917148859522583604746974056058914156945615256437558426002171336930382041787062859276377586530897225936826624184993341663514588471330218161287237498297877370107242870315470268813821480008363235875628098069224290982250299025741308916397172335507086260105989379836133379049962566176052788768576436630267249042492811801159609711213473259785537448638857751964480220639242320684672416875949778569367328923348765071034376862623150870974444642194424496326639355513153140892143244292982023657682354591592616182531869706795278748303268927610892902669419363777055560823529726854023635187698051074838328365975703733180495609783574261502170944243089988992489802133478846275201549908770683057631696152671180538564753026844333879283067696352662028809043330475716151231025699104938473613855692841318014102660090558314843675862012247663860700931310853793651016830110924804040564212910600651551579411086386947628692843498343748894398208605227603552254954169097811514974413954496645995964247795301949930151349711263063824005750615127325230705047503020979191394374728128403784849821977424218211410873505837507069633393031865302023271258454901803000362359413085550005573587148832967664372641305568147469182953490403906001866108531190126900322402269588679895374378971670508215953694572193428645936925756371028677051895212209062450284054894497822276574769060133568597264212412325194005093975891081165852964588154403531363885510280398612822473059813901906167542812458221437654903544964926828499574501924880349063171677282617917351753305401484727671449823381653725506209213071788735326013807366616986217970710447610608289303991816592353410047243568629645934064390402001927953570562575081282066732963042192413326744964366671407038398621334924513775558579738993716980027358389396135667526552793732329482996197290199396045333675483565912213114892031948021075709920591482850709205242893725243016421481587685414441715055679035541193082884707936595297516427076378629364709540690799348431906889891045296243288430410342263157032279907373266358617397967194109563471211676914216615046383834367043234190772366540466046846273248976551729133657280911100444121436133979332306243915020293955860267084150885372980662218975309954682238647517904383281419297638430114413368962776119682983616012293723809679990097808352553605895179528094743233746062135732503416350411815754554188433335485432031110345436664835003917011794931528274532814074711823233885821307694137209269794382638309317152122432667248942529947413485541054848373063065098246207442425384066621350687148811683453062618510858396573826574872598106910004960223412098412461457652338006427929516446978101184095261483558569539606158967774516825396014272137436924936035115516597749246411743770052092095834506839697055744798113575905826877649900114689448221029393842801516336040718419028302941695697435846657704389034222745431441805128434342835020454415350712980629657426152043697875341113867213574083183606430854748560621346950759813876423650892810412572066444852982995208054733567379301118617055689327775365148251285942024563225674107713849468908511958669458455542826446197679836460600052278273583569462515426616881375179013419352218465461322986131390723655432337021348841835336422660538548604507231852168224200088731789916500500037022619027126212591718257596766191249543660994725753312766110836213766491148096445352126321882112874655833275169661786382297037709639392522928871633732849960446275650114742977014216269510867240218985007913035235474787746786439953567815341737599526967856034676960177215365878099886134550543423979344457770419462013850990649989094433039451164000016343602547724127972344346836469382833922052069349633272132640784564711290593380750627065429217511787401067322975548145039138165399059772320182288918178554513232794152345389654465212801111057088599471051508074986862151072669980022499109977293312908868934967935573907059602158800070538271313889946681434152340596384657030297137442180650692418108826415886111693954663368452555501681691039968749900108196315493764052705806267216381892036049569265084732739162517463213992891868151780707455976039601606931587403210732413568840832615146089857636270283627499542769976748181455310512196639904330359645455128772807895605626340269068955890692584642985168128111120092982468917874465664032615560012360892031536309995063409964177100483217559568032578131913754479872961398726032756041563116043255894009705039861500857677359889358957478387473370391906535731784016013951482121827097719082892074334196730691723714175830729384809647122155929911657585026484005871912769823365779045336196427945361293243522700032935149153568320183235695031306877567201040815676871772884680104112457794574759873698057198556474044311410295548036918422972354141815777540838116390122862985466373994209767223833464103352056459590245279638141294557888132596436433457275186749331788581594610346836439005273744478319072051175041906926522706482662718700524515684874791477060686592320326596764151778896918624711125116207239325301073445636226951904417868209426704492168788439767051266752400498328898192599918716704227497101145616094298995444450661868201283978483662041173822057441391188545390253414657070714685215620909310971686242686863983467896775629690883689839767097517606568487962522917040053255179340317805473706039713357791482217541647739572831096047197740682451153055766926955958963428847398784048830453243459451460161868483626322893812655314204404590425176224113248055411279363995372458583337477370956578704250403896407584325223906076213162954757830864023366120761920454288589917536794920877634598815540210003240051331029030151270011794641515106141899271777520182664794875420409892797042027234765464053340212759782054085658287932773993804545907898462080486106672902356360047493256325405518034135567655023747464681868172051252274202615618805417459548451228642146070854001660484566126274524184102916132553993058464031148711964716502777167358722924810274974666043961165177711408104112030008602025262744105605552071562358510276262961800735226242683527746054676632200577523772651788332557355152811571796304046620660522196073022583618766271104809594036018077513762809326745900946288548680135983705026375600320329116891303552660926098958968747283505812629865309165392075765490490976467712464110187248535837295523395169670476284568323056191023220613667746122734968271333288321937487618877742953454269441580955899563529148147127724017016385256480310353618105378794983188835200170896046775033468359048607167595009142387136123119535633839755566322814015568654592679897226276086819688037625894626680436719696848186668439673100592061887430754729042377120689302175507146497084568240914153995942490865655424374476914934603211116087319147581620157551971321923934911093712208541023527494891323987785275112873033490575013378249062967590106152555428436758441840564676249040232621326463097934221174695029990091306582275900543333672458207235372258813893026195504040646073169337219348343115242808166995750184194079283548031051798787685954330986266579636502868673998537730489217341139498922947106132674776407407821620532472442620806241632196604656778575782044647346645261800611068765534950586101832917981294227174763922040160082411800961795190551132955311517799975828269048151819649980823160475449703674745130169454676788058328590171776640709354950058166740123355001670504830129817462434996707946253554199078166258127476827210490890642172686383030353756998328515665964638667529936009875578205312102920270518217559382967075941984887101971447328923448114631848886319042230049110451958800426555104035046957393316178958333443244849938446928175957432618405082498460560213508301674292198758161236248833162583489278241000405602250813555140282962268102256826198140282758982801838693570714048517494532023150379176750648980896511298909108670970855520715541284172547555303039534333576239873941762376590232444787044867802892171000650727882118130553325633341195156124039586804717849479807375461192622125048673145173931858753416114156232059098936981179488858504694165851801658315075951048709524035546109483183785238127712679997336618104742168145323235578874542937847544911429195560727566693549793667453185807320054919423264381175338550929853530071855288442016048004289086555432096369733618754084682533420194125714293685900754794969847641728294914475788245902065310821998498993819013620358097573527855293573999855135669923311897605138286984480565146975680658088969125445425692099681330195084240822472488391037572361886841029941850041310116102191345866462054798911631239411656425955732208189132668656300071691633243319759869965342249963851436499269060675688124927091158515791056965504176451364907510386204087664841630437625648023905637992773465728754343677787908544408394977990255542224844499571372875017503142406133704015708286836507378797930893453150112092946003441930665209901866158881762698807791851962433071380110738722193100068067132130772600159370746338251026526782899226590238129136889325407247687734701306210084284231611994324796363034052179428072012220066518999616337935620268576594406349259229279901717800032313064362284467813371349543703392426343076931103723046894592974340045908987018427286700844351989042214454386831287282978150180818893749523789305468971233321898597766379482838372716072554327534212369874190647369327308280112913971704016005826281711465331548055082926905788551015493401939695109118796761598732247601095000188130023821262111826837408057103856736135088136932190294189784803651849015535400445720109211365908850848566830638873326037056908793550783052664013821831891152919436952212362205268385962134248439279663430613702578591699134743427677388362498716699137747103689884981969594521566098398244535983908819191021222964406305712611293492733450764522477691895720668558591284369857000591720039627310417270489143136272349691115242290149691961892172965350952018031824640393057802240188552379227673134314368991638994715965078355004774574200895019472546107106644629094221213411139480333231013037808674254108416291390167642565301539613717464477392602890426512285366197510619876148124361341925427914959134770613692966847351051082514844434522968366441062760444394076422095309271856234335731531274289855503498028772105262203866516449314360889085408612227508982385422779886223090890968788386872128293299427391778192401765957356541740015763064907543551849069385018339279752594039562607791511910293508768886530922895494189348204508985590681254146886046525773354300513340816644858527782303240595498693942350753469468018729823102704801876013985218661662941520054262017499496281564492619249564206494119231265667113905296504206602858054184927255980771331642800828495686233401341903702781634354771666167435536678897531995975408337797579890499260073992252858335077569479137547226795014438934822392784825788167371618402382519696460029885218230260478945594304269236981072658307823852939164181823319564685235183632808280942782197373137697208641475248584364414654190229971845961164284535383111389278712105478330760282395979916769528347243694012312122420284991455695199097644330513872481144659210092886196734310516648203660181464185560448908016417959673447319856793846891057277212944398052481975361044778482064995275922983341345338545303943568332124670655146330993236792588639825013609115327042189590130472426766458714636978686762406331113416598704635348911801732353737990826916308271674432942392272993910526028386872976822745129091963182084071088920537165958740269636659063811663958565519732183864958966520988431856953406256879301637270385839393777120024713567194592171491597204730799510832248014470453437913099745230714901322160411535613708358009812559048760555560810729085043496808621579372298417719978919335720442443492353574655821655692123336912850185355360097331341734894319647554260653751333380022425471958564913847202449829971290142812352672153467563548933649637586462386505640168235533877099285854017713337747354457081406964761884858247053325792387283662546228440523555734161185246147028300939650452450358906427635035145426154731238721611893999939564122579967323327179321995344521811799793108584304646158553624349572862598765195686876612680010566967806308288836449058850719594682516302792338407192055713942761740175196151771697947986926010283238424256457194670702823797555519793610197026676293759014779824065028755597265047158429546290961198830292856374607774832718357437503326089490484343081992802253933285210183510661825554513300076392905482807568550861906535636768000932165010222269234291354843822574822527486404357689062773822898070016638726246673578036917017252245518338021873312213741429575135272026152259537104927323552671958354022406153974900556073106258563676875557561732048196212098327159735489683446885985567971624521494761114711085223876763842114584659059807812262091303116846006266408228848962874511994634624330097193228864648623897574114993832308903736292924759359575741233692188348581632743861557284371861325228503500410447165268186709712472915550765876745525092092461499236623560760768968611851631540754295944200369845940295083276106705899059760074411216856435415527980845303559760103272473850868590131382828816185298216033227283838025747057792810965324531431157509279188806803903214426679841362475690475390049549600570601103914461232447521008769535659101703013620940406911308919274562998464202803046630845384294269451259965735720026750271814470632779770340386380372705129565637413092926878019496006507400210340044308075314576759602711533864884718222014283760140370036749949884359893151254622263661386511973920891550842787444760316834987775205506292022242113450802762542681141219048296199868316427312682690675447395360364909195132713332942236482457547735415285023021656086470214925778207564461433537809533409985968615079529421833610779540633243172300813187904000863295051511972934718433514204561920718290877824695803657810353742576378961142691998979521671486037307444792261269627491790143703673516575948087981557355346671399973345039055169720444756864615787393858506016452277614698371037569394187835964755507698906510672699825262072054036343471942923208771388507334608167159874300645412108180735495543828073175338485701371366028202854805143477049278497370579156297241586372998255926184349676292041646595380548273693273613534527868019040995170316215439173768371661492095169607408039642972446067593330753715557077503924195503067514315612251045029150899005993294833830034998051876341569426558584228341321633007005206599479315933279647797158290366445944255889075922930622110487909529650364400450324892378389366937341846308507440736096941107295378508969948431191854708234755705308262771220517970085891937673106262801709579713752359130995549771661503851179396797807530363191244955592464978956641026879762877734435180615893453056861996355551853200916908523464156911702830166970361593714732240374383346640682706000561534693660651576475719069718974062795740839988110185066137748740325561087313249660075239080217742575100135353126802323108455649953803738200825276833753462296837784121766015079383937745372820863008939198062801438333585117938317774283748816748953784949012259155529067090440602502133063597446977296326621513973982442710782323305374586433938346658093466509009710194642848771620669997334988768796812540659591071191440318660663445247217841557772103729631893717107240603318289352047430110428249584673928324282135019309866435089842022829923229919681611835935862394161724328816326297512692495023964399072164314472372832001889757798173097421185902683819401640399928992587080038089803145111996360125790180482758415664282795244998705255075500083137967601874594607135466895238947058595468561759140433312559984552012970349737959648264197098065941746779728781126160339823628586556427454592177935906999432004162730255101842894666089581009658548209587655844646740712283212780912280794997503417751621563432673665222070490126604639341843016272819906431437108331632455376855090181192004636591672181666566427774522807289680367610686274817463148098498768437796806209224688320114214085594800602924013533546723753655803211084832726321977838402599102579711646493443541459058139883491611023432385116105279012274356236571906827566651170617844181709556335909713467083844226446543399072699759657288253354420563329532648962916324163894932814045398835401171433648755434562693690018545780229991068958302292904832586490956544722541295347996291870393557134954458856493062291737238046411694584829176722085835036989956070693258611688282257013761557115206620397869634330308909766981683301728858577744235880508158428299546118321250446961852833927269231532559685329989679556880676837963455240358664936845465867556888993967216418445333512695743557851479809559791332726886842662178477238571441903490255680788769284177312766285809101604598807254059079056971708297947823378485706644700161873303150388192622609550979502568946652395888891465963113305866133411209231860446978057716106669290282575221909883370559650222940742962121798483417099953273283064061375826547477295690672589619285309522375761757632182599296223941782207816927344696238451595171918865669419093738758808941661968423795774073574728421766511464908024110095137875361472288662346819167989257650900182920323723576824801615961866458955269943975933757657610456336044036960510447965355448310352691381582068973410133682623639150054333002068022828881994973388106153125735775144344125000719136876013280314473228782204390107362089147253630486762485063539051848060390206880664628955004515701318369657637304723317983471107637142302362047083555462914486906848237433436948045984141435909218887561656402704303457687049524230246505909258278442127992931265678613491929773900232215131723010477997850487595272155642962864333873608647869878995359277219900144805397048176570213695649466864593898805430819891481417711588043908503782001200165178633877995606006103423407804061942842918559283760558062847431596227860506565299088444018348370534213489051057737405570906104303242320799297226491421752481041940863712113085551683304456466897327718161738835165052259727592008174493779515972904798419442100052234078278073710170433275142460526924445690477236445669738596183983049717530037874892053753968543976364446821897558520993892669040633934810054688103622431643593022664288740090689811443286146642413255020337915593092852799356950692979007297507931960940066954077407543465479429376564159667342273604053486984420772232306513534966180540662448495284485227027256541518300514414175599231437332057744409161765146184872470647514617457643458394177931031207111713209722093124864975159143961442619091395165050038978847486568488213429058222871716931593941362909844052727664895074676898679886237510798971850561597636225658741275437062643570072904780401394012253435788878853602528168045700023061852183820041980065289477318081309669912020615231785959175900896148197442200034034723546065797557712070871280490349444827112871923739470385205558873367844814453320554512549779097503835237245075750405403792864155124509379990723998528317694158774960090730006928614977181653262781601737360711572551018660404693832343450517336047579505847873413987145476854978909767563440589605224592753621436456589761952755808963116882461906449331997776484380194147400565943235155792321129356608733028370056190969412151795578521246875080413832924463433549161070630368481930656254186498158995606938807096080961481402493915843614714267459198999389904882393657805012778065536548649514958136776867137262816072520921168005446184376434128484507211731120345540457947702674272541414038428027815574357001334037314881070376422004035248201532718160817414987729986732099137425634426021658085874030085482053207194417990837230699433366890335342119583963172545766994738340863356167776980468197655919693030181037832415274508941959196837592144628778644069790758072804125147671238000980535436403421113797200603165784478728478056720125719765329189206592953402115120881786760617457026058968749473359748820017401245883629876390750262130408130697699681121143847848202747157641722135037416077396553323223557720370409203332108543485229296372584299466709512981290395224974135253803402217039799532252003806256489999163360460274286932151268176524598150587344653533208935230494111362768931799999084979483801688156157114149955722759684541817554954894536786078048465629481278056157784302556747782117119399300547520398952455861074209500227245455816246044014731091503249171260107588336430046846596251570995613895361049123041554333121190044950595542274938637053318464491438561540516004669459215287128010465085557467920519009704134652931054742802869591351317391764154617956578649511146630679858784954172019559672354825381750966531959604210996242579821990473093868781458774927727744940608960029826870665910182164483993940440812176723879342546351430540126365766529809490294464612097827024120396561854438340544618756356810349109229673729096768191042790444202091406863216396950469283028791825793977025250655990284933681245432350848847253897086268157951773728673087724322628245275273841264126942276134793716970033594937268871252845103966954235460159189542884578004093936703030803379266246136182438675218986312390112515028211524224735245372491789708918152775600424428373665514054815196369689539424842776348144660716459832444374531220310361083133922005145139493037030620143748203269849398817209117451404486589290888245743932534900719015349963795434486599448838387158352636174189738613942151593638177678123181582865676514590601557735638492111592357143264708761509960146125708369727342994032894257545834590351275905337507724478465449699098313161067377672086968571153118126953161767967600257246745148204929048107006649977258392033606989933565484661698944029554957058148617338934524756761546358081222855675907282512557176876124285520729698403093484152502633381942264848844433086222086414390722387761565367720534063759885791454428236100714059421711005532783695200292448044032220970616992198042180613100596267239336699700443055955643322327059966833040344005555785699730800612029965209909831404757411266282789021440912692745271409510911347761302029565761789500003393016288505374286250248483098538557682575620847576711002119356938664303765680453484710042766466498091905195733087718380852588051223899653763137330852950161255152293015558842920749794861285042845631171243434242445730380153260380871540431339734933578510268838564475476629987657063867352750962476851277739559068538366414976976471426636581043999162442293763212717168982892893954292307379305235360756352104280503114389235838398372129690575990672353734640235648654449912681874061737014992115152298807777338380334896024264064394570051104982284719686575427500271603051318744629599930514071433735309247230558266801113879960253707548546374339791669885444731601345061283600062238068092276094637263048008688389465486033054265769024377164474027168834462579332323536191921463058288703864750224622226680495278440264274934833786434310082594973259045308592229927031787481611033232812180223773393031096149532986803640617350391430649356146340813030600685201283138286978004257935629857997059440381348232137003782652750845870440765212538621914141101380550520042637213979083772742356311997512343086467335105611946511289714990015009183256678013125465966653957481592691407361968722808862340255442654199096401127552209156148447146581789116567011368685786946216498125472998867232474121632240376907659403044260263585261168250491530402755945584657218519620453661941944032302441192457914280947605335385961285120360303321959704004195543324418649449578270419774143938494746324706770407960284844095488465128225743567658414441891374370431106136280251835016248288877150471671054930789823231680006188189244538491852442593925310755031773720066415209244266508266430628197115649605363908380528496945449976940017776055299850394271300243986131937012327567997088108440734525581268068638540126263161513182066401955883466177662586451680999756269844625708804364636202180378510938579716929771743830674555847903594045448033473130625744189768554952136396931591804436531433703259259182788594057093900767647993418409068236426554768795211295195794432836505625158205484010992667081742372530733777112757960873286997244727749370421781479530132740289492600097541470268150558574654768235535105890763769000422092591430946576499553278087359850360653401226263854388698547600713920543472964965509009223755492574381316468708400349967835533842394185574197962133738317994161514819033363491633540498865100207341853260077153186423807837086637392254696380534217236375038935180121798640802113865589938239395641256247270489879404790366438033049086795081852988058989195284924221260982695250111616041442443998641578150671551742990532501287823630144381989192398353259096622131107283431790398281186862006385216601952572556499174896713256477243661836303667270593408290862139553660637989814420698338050792346643823580273051419240575107881989560077523981381131174472120754133522616810835054456313235877289780570434157696021184029252486077376395888065715127832318611126292348353644184825908518789798693445544384241978899117693122132262225418039969742113056179828640010221316130956929935162241058213612394431638080653833512765538144275997503893208343153003421949604700516693922502005539973697103169369712005629053756180383119144488714421079764337967336578832634124825953799076597807791975563912094842812358049827595630910723145912735445423046180012580936269090782228455829062198807172427511380096495588900651500474368254501277676199527153545067323425648533727784442925008331055737781822904462616305733530289546381005595225467327725994499445101217378865888444094884046183712083334032321861203622805644911767294245808764901403231828512445167845847270586094537158841901026237627942733769057165199754573448502481010103606818830537691172170109591479926352210939681361305523079425706656687775211952810253267485135726686118299824667503895966883402852473973733158320808156193851052351546225975279475651888896167576270510520076843740189413073418016940558247050974386816150953753326008769598325952249311490634652441515476732735576400619292154240563228207327659891569976197197618019782169077243243396799974907747253792518161522868383440658254377485424096224163255087906552230865806688364201021159119693789007553541884251583450150636612465202858133069554054589108929603509961633120875957037818596813001254324384595020731617990642875966191316116445149608558029040830476146755274172893444475950819101014311187064594773601576892617693219278680036007210484534345146419475057282638125115464660355263316900598247970548808623586149107515560929116727657803559792170185312978908748483864992945533162270615026161110118726967419706022102192901404141744167273029277820638973003822024403564001124143218595219159303838508007369890285563374154369851775948830441856731843253214915597608991326030679838179952849427602012674929574565156414698954967663493782598782249242885837489727130269292617951184136752904501182164301730825579090681990138072858862996831177876914856113434230762106343671123297822320689914278768515556633571630120290661987847832556889248054703292250506848113344553722046320661952811998650666085791548231718983051639084452175245852120085172264252145298078730028580099872481887548109108802579559062820180466839645401875196060547618756101860232059812378384025827939119156631099630642329041409930274611079747746744150609309447452531371814258028032430911041093428398328358020901738466050633022180432420499279718902619928681726340054519748350135028900719110289438399250813403788640686852713525568305325058842379047629327387133818698225632127564590945095694082561295640378754884432473110715314103302218969907279373318692390664833101247304351904697322050221677451227898966569840323098310393162297656840813169513926007280694070483898548904510293750776315631032396557384861297554292470761751094807614625929728586559752973617239312182661365605968546895239746963790021997991097203215380727814217998509587937967235868042193893770222834124193280306002382059728224761677776591869794328948627271723107078661391539309071994145657852689426188348731626119332074232656366952823189319048053318217855596666636086603258616338249277643024151043777456713594150630703354965860244549560277557093122883155832978477551397619727987620505966457561872903770671224418812584889119021211527041382653991283476365223757859433741118545690867438852656304212683647818292922383566339488292278745942941569219931198020136924486665774379829829670359030321350267793578547609867516604257101621490024339554980993512876428972927943614752359496945399376964175912249570270268840663868222252782893347396765379547250047620722670682135621040787843243179243273071625467409288380423081336016051716419020455126591254136724246867481155676733047086636755100433338825171360452318054371815173376071744369358168124184875025543780931824748189494429253123279655968205448160928650833547348103322429120079771802748074056673919954837358226835845088827576505463177738594481449494946796493474022316786358000643326872433015087717539306178906912405661060411422576767159277942466367718881219105524005572405939328885293009625310733735917530861491485747147730360455150500789749823773485219921080573529695503120838176593124223794047605393169046521734497088596968779248926568349942883984023782731956727825681364271099518857622660357548256216010377000656906349072914736974490111586767566294830096021045120234873237347798604148123632285427666351003243297041046884496022922976778984307275606940957230741394287330822212063572160749294562323862590469734415378576418588346211337735461772380991418597869639954849245881570575025157876036114923028737454160613467698849519711822271370774562919401443025434522630666114267235254808838764152750314716876263098186991416681057261558200829325041395117795323458089914198219196070252987795404332464981302037161776650947013709230715522990382232329564337615544744073788636291265759627214665441355920404593852324550057662843780370131134469516177373036055718441087436229332857765387703106706848013890673864255954843370870669516713898875154175099306919071885646969367990265901610332075922464069079105995798735893920255316252613186112367998559447826260334075146008840760130731295837954056379468569530457699787927383777129607926985677280893881578239308720759440685570093135421043173852210771722843385126836526983829389810296440545482444868038852359677048654035746627389159160923354174756718167661293567534153702322591240146736198818467306282348310529834024905553988317188082261359246896799764748982632823568267714164433969108187550390852353217790692150101145185582522032564289606250029212997901979963711659040844944243092888949496214726622238155684019829342371193593128268456452858843873443095360647707832184306885410328841995119451500050623471997063876686318683263986192566613283493399001632223252674708928498925052212000268169742997341501728610865514446355280713243829991683220300155524485028674490106217135110965049197514504784059111241915949056518953028813735256283604090841731239909328672704396618846197344332266044984179902162904604338295820488623845712628175334762324619423230554400690989006255006019493050451750756636739819377042613044249980798163379387602965410173590279303578403252612991228446066789351790425409763641050787105891773990398524725295984376532080362991647191347970571144450812786242933867574107962830640747049999689849873711703733807675262155206858163957301240590732528578414333362406294361410758502555227821871664604569295418335408797450646686243759089363500167546683814731920524844350300691524453447248709375959445228507035836698018919148475826141376434302323008154665424393036508048296660074113238928825662720959042342559325959921241196831366970647201248525134692010372163298909871660857049178721473392333493775644553925437148873444175847030381513322660802889493179170015531881899127686193031287708294522468755576206695531701346577741970003380269218999552242312196904485707663254055304385174219145038599715684450578804191323940629724498126203228888444736526093264645860951203921247020860079238199184726413010571849822533992979031804503546335188447875425471577702823827867228395842154965622118414785299660313162621978163324965571189475673387143438955113396629276387409239897236854352898192809359212897876182004436448334285128807886081313682237333823121995565914220401085523650063959061662126507300878157606050384106462685666626559209767694940519547985858307487508980932427476259252718895331352721474712816818685119713845887301154234096235202988384161992403448765736916186678685834238790037545366673677209749048061362260634702948738933262421066919653350937755431566233086753445390974383287604147377486957613354885558452963202970410118515770697022836490575714696327688289596963363526288274383821815263869478614665370076118419904561876297299749420716059522381716058847454414526346738913869335960556383961899523564440500878678408834775344342200219251640652550367027016079849370785348769073418552834793565735612309461677119169606120347386708052104369679652018836710838895417019166372709989000109990804738914678969340451740937517617869950509369652635000177835350586550867844938027468148499918078669085378988107596827074469832247744967543835636007161835186144980722216269888785151382529289995014906709274717303593722466602149911869104835532881863367302019690660091639683048713446919519956607662928377831846161294884671358991392601841851541955287243640014097372136424312023581845874279296241700562909630352913933462244847044540577018787807567021297364034206790360722167227954500524640802510447087639859350515778876808645670938264132761399275019680386053601162071096235701353060050227195389554540278063742461514336228658641863480014520977814453878186573607038767481009941231736435596072441237553098135856922188626016095822829544624415916625080486861712563781173551956516598139064267694460153032440132681084447199413204757830856078121263155518942869216763336103530946274711396048122219566448480934084571045531117497895923804726120701877708664210980310563926539997290393788309513131025205103617353117417012222243377067296742841816832617960638264998981426626728100293693027473924265266974031888219949484872259903490774112009620312330208086604919817991446531013194653387877599921626932792385576696737652819735604615030562113936405402700217226185546155983741007981417382612051041068594671736122780253140115540080769206683141758603294045819486104197584925081153488878483749572830683790938427607052337298684189874660713770903505792797383963152028588136177900038105009053995956685695750263501255580261148147617443746534753471748859013853295917644113507301589213758849612484168632611199311811660743053056199957569526285939619153705469573406189522930558852331501309901497814408692110264275153236834153354530651644044659823124564901464750851186274455387727870664577506725543630760553783594901193113335756502336302594084569101587780655268909291574015505496919628769301959039877995245387489377740838123938513495736843043360538530364610482285464056162234939208615782824597516237305393795635636827021738313613282578328967867950292792473780853927438074272276877752045394161420218552703097806511366700066051426784046114998407364093356830040982362890610693657378711454324828329025352695481448728944268408969360191079235102634885063814351380796677056948055537817943203064713055082945527946864289898509026111900607636273290408506395516058527881260933077710155994703182663370061603848742611653185589238692323380847779714210371954596285063642870620959626799932306446756477806373507745389164407136016170187310382982635852799499382893287048303282023027787604909735864201924470187536272156709536873792982241184843953454938565440346126615582240758239075470103082271289935010634812952061990994896021465096760188179278259701848706131501711687458419031128310633532522169518374820822532447756781687381020180147079834332000642429490055140703757075230769027141535713769613518369406510082734550232182106537614156954345988762496678345491822027104465086311310776963825788794619961704914357473072598657754453050027786499006803535962392752750581701279006961295100448236110461325973310276513024215622403375324067205057632460703419630084686896705025885432308735726710172757053465440728560088251668972099902540595240308788010516133200080066299067704033415363985931337170707618339296122909607908385024871750824189905712509305719548885939871789798690920215986036693027893550702838189966130240291739688422278321926572987328799327072801486243821157207737804650670452346577734746028086337693429685093291248643630284012782836348383503804866367047332998929103898742569227679850160648075381919284237088662571976006167544736480148896985971528355383299042036624932721784629289697122601026671333944744951538265731792656860442147252753787914803150377109811065532449216731223735475423335157685076010093315757653787346733908105089157555710335192879682324423091321465112087922644143667194526883683645285166577611496528730866641554618619429021415305823327364261692216179597594880513556808674076459346409962832750143200077242517352511074347906019043558492615569592594701963046167274133536043997974925877982715437154606428059851053194765557692445954451952928836137582273293261013201707645029884349942217192360668956686919999573777972248399237660630529238553160750274690224406919867469412199018068649664090807812066497525653549078389272146689624436549301196537878792006227304779857043770823322815996246414614955233296733127974895115523591171168886386846701701944979901132076579069684516855566318877075930870410132887630863092265612916701827673452528579300382362923177136382982331291681107434741062759600775076299350981740981319539334685103556664041400588040489536447623689013722549133032518669867612199662102660021959956991035955259796469703948339495032425023136338474702792007382837324432992699049553168140904164312632274597415016589686296026460456457901010778059222939729533252830413876083992733999289569231521872584653640962542341986847130804649632496652046348505862190601022285710103912765736254800042464788441102534162147055538574720455161295835277303531115316938946894521676924502394435612030712924141669563270184969480359635483748577987304143774691691807887335426782928376943677124330213259626246984771966249093063707607049537315121167844669268522500463065735460229420418343773695734790372381050690735071849778892400548456698504370517276292782066387328035086305785521622813354293568070391777747200386398080273652527000456840595823257923043855781177960754534771611101359964430682157113283048888902845803589346029501834542132000491651316639018654165013820371467019090162424793443248299622223590977337372733211897801302322203533086093326522167243398556157872965733435229702773073362843212609779274922397869100913768590683948983038350380785748446884182596683889677093591777601983497951851772067297698813251545300739892878145608387993455974015243545136400537391686343625061849419455337235959270307751554387071393959267096470939519874167665978415632362534289284956087937794844127221075404921102098308497208626787291359094969876400778418988482352834506931430513056816585115298127205995473903374147619759062753819259963683225447376420050605514678513740788735027148214577397712048553342151025355300248358081290106324371280283243235489188511301361714828606139459655810164732110164026699937168839880215593419720096292428468860718219090877523890558582983171556848789800660726236423199118711736833855943319333985269525730398565510187470813425391498104037843730957417927497404834260092184343373146722909328581972219911218534926566309926674403875702521699555070168981635361093678515061535795006392776871627026811230696904008585266794079952930454070957537235865691596313535162141421861323505005903246732752158789960915771090407175787547106468067221929009006945277888410073038411337550977004384213705590521705103485159922516836561088960736184151725258490966016406454589426324594718074547371549818546869964819662080346655686408178707065768379929543247329830980321093483766721519681456095623942507486769437936254389521841308858948870160875818268084002345112038298634827507195506458966452956243010796203995523558236832939314252642068503557655090241155256258788170186080743821228333007284800619415464710225184569878192264568874313737114962722615090669093026645165474248224303380695177953398369200353001757524544259379786779093343968398237889363217438155042159265529433418827809363909519505661256062278788821342227199034027421338371904799925667508144619323116216977777903223188925748171088024946868051065727290681659001077901598388242622123203127341518351592248511980617963579798781466205429330305994080326063294810773552803261856384615822882612811148596496998553261452861584146511345543740749390803662511390364792571010539830402833977648069747294417516177715476333875876111927327723887915793062239223463565934431429380595793172500117742227081724767617196836151449323771820087861310584459667348850598775658256689625398512261310400221125869365341831466646933006253295391301447518402722465294277798656867256948596596951188963222365740652982949768244035939737935321796612323510449446199636779722111072920770054258556923692000351543359034746294399531965440371721344480513579515490196139910460676135183063110570694328642518429760165106710835929917714418882222814103770928802132291168504113485631052758542374781810569125238992210715754943388439144785294536917811932540732034739315670036328901494610160799850378298011586644437168599862268201746770473562089845837712850705232853783021507037967319115209734284779693954818564468053938941671125891431875292163751871916508847177130544122743171329433072628905629367763362098893044496520271537070199750474702850204962002002892995200133582378941983569927194446448721304122958798507302409443695054742424418245463129678826924721229185392084805575469725829781743063859669956574172598496596150869954167506645486635110909907332987025149254106244808863705978497585242558061899110522636404640425905932853376051416435595807608266574115554776870885359898905843691027869897975409723008435879483186736006510961516487806317560590356571788272626986373146458285988874501381351322294985171259734123587012015970939191977534977582037786159679004890371271203089204691354973337703407726855483329152657003188028317164167136187219156817546914171287974041331926876744107552307601638953746497051296317292071807277157184482933835540804048150160231608548508691878392927399232946622288162089255070465354096065144816958629963995633162030699388561278607107550288277121777136854009881116778077808064373877414274035794851043698100949694179057905150511686504130554079232876815766060205854171247059380958061330228210878696873311387087485503472454038778278697956687104624238294595097632814025227330917386320824763772148381403530688693500989769716491475380405120793037545797697984493956844043926101142196377304681597879558354436942615406532668058055217673772790939260418892622523652366741316010554280520169420728756673711704968460180064017627445964047570115295541844991848480060092567032595418690597130972370351231383522961743752085597614826790336755779670615617482406045615509823157149139830508924627890739468320091963438359733913730110178918512328296314340213597806688977776746918214702224837223891113724164398156009422944951409969398117132803512112064718386227382401369143886460373654162083426600986636744944830719854615426759425063865936592542650184001175392764740009980762676219001661936227233371888424735337799249371463563443042906928355726775948463189691687005619196220038835787540814681879412167686804102931142605209982167947121633431259639967198415909658120639173892810844075977120026393569224419406336109367676856789796487814155237923238870052124382630511684807554803143970739589452131375220631294172777405688597998106879809762479868570890662617675923381288624483583349741357037687127182435708879277512010845138886879836608351334058178363348683969803073294210914581864273302434882994039054341273329542490192031047151455420615928526297123031369129778930101522346426118699808596990887910754571195496620833581531257408306197452532446621629754528253443689511097483900753836750824120614395817071856458538297362775310133230570153290932464281538850802184423340821990403461739595808107457588252823998978230431855932466256962580927450086462549932796781243264239254916903434945435747267479955282580349325369443252125094382289404261700595211943218829551202924883533704428713108299737505903742785026505487848294085324333566687362913893290681376260677256848765146525527610507294609878346348250281856612664470870383439596921771971066538760662184178166136137797396683034900769427289153174850468291003820911926426882212786536235060507847123553642828289736059601573029085073127849548548372702128594966168617138575689226661794593833274051011834454935806344135952754966902861794195529209553630135420570998615813530822276959351960061055377640498666547483516273124168319853512728092300100473983678127293305009331095463008000865568578923044837204544140575600883943393113959354166413257212787614905104132706486880237739968061899248333103839540747035083165873038950947380717225942801416098192020314664620994056587782750291425958133011474869334466803810612898452397307768926961722546866923214562829637050718395714567051037258693677150341166516319472480702079200017059448518910365622864530184230854138347335814922242740158928084265768235342630312914975313483433813775836374136861880002066691784137769225295890862787456637626750033637251429989796207684713515357494424193158846758175919603066715708286929393139019407262580033833416485936661899444184076577225831643351544175710192132038236357175414302963780661717043941485581441534126981318183164855800656692585880267590754786406544826626886382370314955730672825038137909283203508110147684319371785764254017529543385641923260597200407020589650262799990046332662998086107424947172953321833118865955759292691217979344681698759411013525821769084700895447798471128681103057493272646373829782075146627912699009818672525777010709805039431464744052641951955765785790063338255152158829810968886783715831144146215832991051203553260260424463391437342050392389074590692113219876326011955333919158167804540606661708195449743711048887239274871794567215084755511710240587096127452107293918042590121188203785116931523710284412948643119117313782284596055727891326256956311170188953980313736524535157796224530744748462465268697467164067172603311757294788073599604819376628250139680530084840521381616284117442980248805382115636157542677091647360983641034962037322591637904048558335793549711039119064308249798899186888082853922292550007995121430047337352788911723109686646768135177753747452456254281844167741900767065401416963950161086913231996832530269400822314813257054356922181622063074809600330863618610632119203218388850306376478545638893380315583628873752314655625088049245105129516260065650527800601173141385435751688910943164501777992706204634164536741629901878996648821653531928669811556708837340674610013689977489646655789482588482272491793001829413957534103081542549108102680331272978686494485314548219775057577563089788298752976916189098417886472767458958070664892585794705455008353035642320107643304547863444482578855628151556483578139006779724864787325487922454399990790829797444895935717584865253885632043651245306254002075563211468590463120926167905004906759895032886867871164813895201441907259977487080181272857950599398811153222562247753939995063234160784888982423162301732562030165246600126288918045017606590667169794762873151864965678506399820824573829229375815321993227014249794960003946090384062237422901104263251310918632214133382930482316142800219777692748597486725912984056067120490514584977327330528747752381454413452992877776607525530146801459088732730816104814207411716122122897498529146953297473459405893645611217241175819520219962253098781396280743155834772462230976204152546017630531532746538906669507564558417172283369006277615917490662692886140012347804144606099044998647245341435565731286272339864927915570185948764361645873851539897981416758787901293129992132520282814663181852635359872440428070842255846364290535353803789946437509802326916192100327493390328535376244296262813921565050223719088828048055869132703931594007139694116781359208209335950678435230877637725578159350273325886056798830570948593422722435539738102236455130180838915901772379299227157589504211053534985665853434645282721989298381867249193891061258505094380508035630879513128031630358059658171455890682650445162757409440976332539468632093339162079858842735429452361527585373597458838270154657682632940669735639481287942134022837289115343263103228959839147129547920794893310719308966756883307647378653250838706787715582433001356147328912264861939141709666926954777170166211922833509958682363924889669416278423690150590183109305840385984316590335166234461234829993901205018188665357267642541985633660116857308158724037864957988615648842296427222435781056732365820065569779359754870057265099702940596699761001583495774425171780281700851505434345328090316044459787225817175362826905002507903389165772484569509696011991763921338108771748397399618920894657984780743463252870088655934689956413419953016572337054967049164940460677112392331796191510224969899887735311552384604655343961798063280519794762819471431730683344279081687660278157702928807197656543422169678806387567897437899466726335743527502850170132583160921810709618448545590779848521293662496788331269571709835949838654899231279297030302701926193152256268111769239375499626950571866092192539137880554771290861760634495161954149572854401859859573659010225092499646422025797150177078551857923424997999363365947253736679347196308096687231993886294732566619794729748479148705183320751929199128226404374586365311894427400026729411234518759451137148957545407162267701370079625819765214692228823833254154252453602916731029841889717526815069250698671704836217763964746479060949345336901166441519196662287994818646951797779329537421263604386303937911115905565640469569785758474383677050159385168936270709959503896004785072967745803711090526347965031043851127331698281836543103881035031633944706617093348526210496673796995175959874462048918725193885026609793298456144213763120792474620830379459466264999239810340580509602540817398673640371249024712964907133840680318811207189878510054189503673012392866752758743159751126601890032190859512970418748763959846203489308120042038411788951405359713431552266381926462745996565579950158437932112872078462899198415016939288803418386594803914096336747189988151856788107210865856532027155658110616440714645944926870732070678395684190941087037178751830620156540171673426918020382430513529463477950506919195401422293036551161186082251629287149636257948176587501778362937021586082733690495588974754438356222445350997515475486990890827660488657085003736934109646631999513223546126032669635131370971155226933578367151827422602100373603032522795089523465456419518365400214771222019198816180613585847571405907649725703462054657135253632542364125885868302500429384241980104750425269758190795333790899902310033853069278927365951637941666018402392356159250533160822146256310117665029700775484436701674692825713569828965328548197209502458097434414098052702929364219698984406864077552666865073172325652374450166870277838861614255318551609879453652972440988044311805311283110550400592882830531623335980405828407143951671140739548015089024397933921723660729056489848175627892663051800126122019964187470501324461224491416504450659757931208900624387689475573341481084138113986594655509033077507997619053041803504973026494463488438344861899491433960763223349427409145134739611187067437829906555656809068489067541320926469380723068528917489984570552628563314677566376391717316003471673856960780618323172109416728231645544940261668036715926575191167827244211014682548206703428581748705422485635046119955269303912870080952064771426820955643451152598387262396090759347726482110501062462910433743444031781261273479497428670770561377406677616176299822675235014204667658447995207182695462898730434663360835273007750834106948178800328768486126387956159450791134741445093820562977548337549824728119493965581675002999953836779761239343515357839963603384440045679609812315013389204914296158215510670796562639448463182175275792481197039666260594015145792703782268702564246784805090042677625769096369296013493875907222801175732538360897505939848242192411580921741787838972724834592582721385656523883499928569723097942269334468374151085454449213503199130312514537942957757110568982871347888589454211111392821795475470183732859662871998631783457246174952608102246502136131359968489114126465155530298894602697056832379120088971112118439369824521573882074812824089501958921011417875739743866012182541611553263390116459942918329903269975364090351440512280649000467775575658250225071176255758584919232975939767340171575716738891340219847881125830302492721468916008159161162646894892612471971340581499982153895126479169090229584161336409528115786713965413624871207577584667252813097230667974373184714218458033726093088408541979413975285090674448943006331844845767339105940339035678432564445664782958784847226677251706915128126261695248400789362054077109595982438783611490511993915326302582216061124978881558622322656682466853965515226085836061106489566368714546635528395193268656984649519674383357948063536351594443001237195540461243720511390073461723740661688367144224748481464894208828939381579836537704781283054120504374310754751022916105211700043494818248065937999383380405646315639636757447653505300666221759663479272978159802365112397385286810424891934495710555031513893558083157533164952737594974082974619257967130729242289317670973327252258664573093685993537162153949493202325373209869379603358416086218093019569365115631408252524777378043805225825853255956317050839674508640267921081911492322216633707437607588181785463060886850665202856611249615771964083489823586095825563606054982077489906211711627017955882216940684354146880694893455153247103251759774733040225887019028294047328517919637738269474731435543404406048660977671082485057670516604892584382096041608857317881722302024407052408320314331079966238805464662579724905690222779488142863118649638820809276903213641524871821406470256226401310798209890031145872894526384388913279073904920795998850527531058695860908624988284438796046935748950939710439764244262737106052139918460912287298427545511346197140094305264119280168531193504681332309430079248422982039361640727169701257094426693103563406094503312875134436952141700256350249582359645209848624367757250844807850752102259957955209261265187659774074161251516759325185099391578334373634884891161861379099960651291811674361405896169970102566117026719286228618570139044871964906114259822390536418401951979645536651164922771702771414154995993877152127588756951311564540139900654834968559590260374430828488491368841459078160809540145551294880719620019002643614348591420525095405624283576029356342961043625173513149815632288050644074047028538043790987811109599988007408737669246493902623687257426920677341756067476829750975259580967824948554349271612473444217091423203113353938028347028249992639809887502763830855888112490020237697933944774363399803236763850572847090039685779189614277538491418686032964444227674351688295518484030793842650456432135374125043100578718250575408294213520319075889229820201324278291065465566830022566835076816683981666235458818009233211847211624051592143431606836255923629135990571806209317121620500186361778482908976807486373341799845880795155002954198102739444044154823281622329038006478037357632812657250590390685247300649612447603266325651427494027735553337440347827903173226175620051968223817202285425413353121881723391457138462341794782625051955091251735011162634607887748457025445762132838535018385277753897513560052155460114714751069599514524813485967951855679938379393228323611007241481978281702015215554699093438550776842621840857813938496837242495978331000964591523177480855132564460037103336469142576008265824975615420227058169633852970064792830724804935119863676486588453022995694299034756675260314089347508218872717122071609700427390444766757846160071820156467424248409346497637097449920408669528610017241212792157040246874745896987264699222160722082471664323195393568805753806777438168558762349416070491611458781124390612523339867125949554838415183857533093814696224929404000190072140318909492797038557408192441751019982146850957201292860613036439459518233352399270186282567191843733367573228220045718294884050061176823498052745330958227366907494342978006823535058480089091212007657146292634021297150076211540074357815292813951836066197133088845943820765654689052846654558960360686337942141304734805462275890689526391719076352265044613499349019650306771641486874737910978081421335272950510296496139087825410481603954788380592728382499233868353858821876333615596460129651506003954996029967944288133284159175132531600557318332102094299666330058573132643127729258626651208722060980831289671669819844126703404907880535247321666027969266376688787341063488524336529743582695906505436824314929923392306127987555352812614993433946293588893475004418177193535746810216985708166282561945578475691867231386674839468216848470369871235265146970136864251237485181237352170212158389775791972985929819057633476009847380140293180516145546638433148440724441065750647329131828386886050290741657504514729318379968185670780383151499819329310788802062393608545902671218896888036382969799329313441917361256856946368313362751351458967686887248424368411213626393313773251376921196117857732606105449489150246653141423467811864182621679234147615175293044862059704681306275206579003873563857110746810563205120920190926180303821448240440646850231020692897344519443876631127845824143021563216399399519775752533092354047992017897516158910496714464506703790136881728736944436461797757299395486564804779072627951860040218948075525842138406084224354734512457383842641920058373600075977219741820925845145368082170716479772048555276032812380407375675366232190368185205512942510237495508956607620464152372673836238671610854885459679250145400982146668158182009254272137327905260075891136648651563107660639831854519390989184449087915519447660790182183728018163530645112021126665007349169037463955512109839872903204065029665484335809294669408187465186353337733868523777782815551595785748835124672854792593513556648349118132340368009686442628915628546771698114924242853740570817900129560243294649970933039429860654406552302578337403148690670327494977347283413978915158508433921376465319836810819618212844347282243331522794247640391401899664024754747821778762740967182563330131191756284885371793954108156161044685832455008505626375266024307054454318075939502377891115688570888023493546366036924049848544846013023728683903089229992628394221119776527321096972135592784979011294129988019694512160069278819226714102443315634858524192400612697982787774205832525463017462335520798011258116654428558376687153345711247387839676645283565592206439552488842205446963028137635417163497623841249407455414635020019254331888580605115607398722286694803006230722140144877513171729865294276323403859916940468269060147395755977926941081521955392949699077487523986588981150591811756010981425537507273162472117845442896167314842722285533850628297881792097087735113271576729287377952258334489895596682117480958089506482328025868790215614090625088247317466317244826274771478263363571834186885008465647340102614551307911364303026351093989432079769338327411087243893064043561787634477202104285007911803607139398179531841371499795724325871410603638604761211056699832082880349950397719409904437473944734478243135384193010722692362887694800845042854113112947641484519912877220210279251225754245119383147379667829470688559007045477663909229656388194515815868673086939098638968352685361902650006546555608123117622563960746889726678756743257328091408790690765295792497929659258238316135089969754479506323052103012280534745262956760357631424029420695522059583020697138317168355601043487920220606022216807519120318015024484260054311968644272637187614536204940682216026988779554005977548293462712914100858666224728446194335212364439252193172048088000885577987242446827570289547058716997657602570641600225283120912373319576628342666541743397512778305181503742009946261203415402379658515747793479015487768023760564701970141572892539912537147737366351794885883246852549233019587030120483646115665208785084058601094051029920872666604198915423004173777263543212290709808125641111777415080993204039328466690083947183233169036530318916777773418196482653903381913172022178963402615080374863747441296047977901960645075376081702952564784175822292647551502708503902313114328459858801996206073658506992623905711337593082738099229954127156079718946462362171652837524350432295884103717083811329753098521666908485074023179196177465908621286178244408266035738300376112037651073027171608190752466565701459724656765274559929611211209599429461167114216886980606702783196700896125024476107040949017046791966331967197786342587653873775113846394695759997561599364496705635417905493909039877241914598341818035892989525193687837208531664444993969505479455493335913918585370784638963074738372975429739262123849569791882947592039408002619504328139359843240423555814189967367840053689192374529425042434986042944962862726684553746687232549764381041694936227402268698921198758974797472112799910329133343715120985388669736612709521544373162428082289578954165057045024889279505154536415498410667060994000625441955500208795446380951266195332687876128831361760121519364297532591605291529020120758854985721099719861736933424771552036248027845512246364192401721872328659214150673824987750069765260973770315737266163416622004744386012273618326015840789542869341809949030404325215793931136250558622496644079708967310969582409310072088238680961930047457281676660816380373712320742586764942885782688055277411772240300713345777319677595042292915859184807869944814602570339339565101108960824923033616236949841511136507915798203282516132822763743328298496678671741798030303911172341536906860810154697390692307972449881347277406466762595339221215592235370009382429099024373291320149223864895454563933729430962324981926570971362276714737898391733617293363046957918889738054624341553412745023795300617531392578102926954531939629409748110168938829883736120439461166633131472766992085159966749906162780061563182697337958531691758031778856295884734511577870633768131451374653211252402614518760710740738526120144979757879726132064537037278227439913509550629092046787503247598145349015608087678105815255524549177476163429496661813514902224207069766702953042136777059599600633049713356122516305901105408431430658071452547305507910465861512846560263129525148983115279039672694933276474127569317332383048893252899238315822385501258240261697189246981981286212070121496020836465710674844423088371391312954447270684927748113151131143599496439541534860298604399303730483517675965454696772145035486799039896914534922721380872310483026397372154943608057024323589700139181515283135064497415948865952680283772513015274572700207096113957833462382256659663937175279743540135901722987701240573867299203669945449453970274079600261712808640453315719321327731892005980320748387121300255952801814850046894825366543705214027338978067915826173332944040049361701493580752529830189868217773889192300566741546833525215411561109983537469575995313574743994223678155454278007147685127351354780225897670443049586539501881159423305197332006390383774564674591111567082295099623658750493505404173119316739852303076341174623264778243932033193538308913832459835699297551756487700271873046168362521783491425957742437118454966061826781024743287986676450773294033166330959092604131091005752070056501346752581206773548803568389703570074770847782388469469492574377484711453283071894725618203690183755043845137461980601521710886133652885625377489012057486946435153581947755799067122792111500297042453098041414450262608553984829012692285385131509329962428389535025683305101119943067415779569216042852242039938365685430754033257782625432947677497867222872319813797174563697973978541885533246425183464539351036583786349063761369315588823716218834484041244234160467754946753559906533205480776980192735278926652277732173344611335731453813355578560847386282031121632083810019334878177022067722481095185303979438497087597259417133093774078472995393072546869788653171794150893155818454432867353647922305409163277866814248333793819997978614659265636991842730347420895856445868166169582618595001397041796706112309776648109595496382207439324689538084056669947132443384226426162885088693143554045204033979749127740505199007959072580660800314483992011984650118080915004729882110793299558162765305298604433608711364007474592063623499530842427434341079867243025892362533899691137441684813442279756532781714543817240833831043871944575485337039639268518325362555104261572035097742410571640049477742169499613023082814888165312260928490437484953560077835660730328170972135805484691590005123846841205318548875216362910189789950321846743078046257659424329364075471787620637848118159049816643891244819029797427659793011354868834936925843087182197027412480178111077165465654015837136276856999715749015902137866537776309404592627114792243259366002599255327482367051458787675176350661472715464165562722187816821425291897619384810219405149809791943647948924297542155163608287382234733147633344037425961519113781944003078847192046284492181884868738242455332925935629492471509456714910535085941098099021278521537273360017686999442722642180578738268862381355033933875477291777897617228465177519272147309563800703183492842141373071298980625774014384907516679809584807088383542869690738320956510606264732542192938523228852493878047131019436612006433189941942235519483158008450780777904328682157658871625776457729854467627850375531876842301532825287675546948976806850854686944649471368334057101223799557337121633396519294596079678019419844052538432932566342790973449458780643324811644057810552402160395696779568998400584978827717768254247545405277139810952177409771389431511211695613556288807902767093753439090236490295509585166699180287249252096933699440547005325970353587172776353454426146628005048710884353222349376499198619966099318606088914679097699723425692494407049740336788142007049500929814236308428224584786125174440138125843108539551440973667042782135953274273798824222019139266957049593784210745215716488265086783065198833554819768049008399730641321150811413527131970158593678581798389083341860860155261470014918938983498237700183641279631311853938804509192254267141031559117027394061399640112088330135988878524753687838885375052586977549957724499831248507643142242718768226173401208941963733004242452951205024451207194164919889911455458949346083167182788959095381669322688366064963380719413401723150991892807650448775507538757892096887008018649301560625549613611876504086623215723912737024952650992111717740421877429140609739552265848017301070234732619207300993250677555267850041328019244331372103908824332563214423736335096843472735455439359643285008872425109676482333870790569343457282795804327648234986347179379510426471315915350609078819935818620922040868299033693139107220199698281962946472842842499316071825593569336386459975929519690815849926144507620990726369107896016660527857468797709943733677172663462080398871330511358695636103367956332447026543939674330834433075163388911936395748377852341417121521239929661324086385817778082397499177939096244698127362448201562806424294451887138568868085090283941342330779092554852874900069037956693396650991158073327179833983228921557139625808657453743984507859189813416501306535451566106590211513669891180840705115468984167524238907503600517056863487252493018336370152816913887251044776577777517984245324467127920927750454460062320781724333331466083123900644517930542417274566662590368176190780901308705818008001582590704427026779126222528695269999948082276410387105281809688532965276067571986098675954331674761186371432542215913719295770364341153297207047659735205495320600965683838310938460069424814221018491137297937660789674659589294957378963453875515358026500618799623849501808499337774968955738227032183561913631229451081810691591739029439101517664565127724593617312869029183705917088624086878370669277037168619650023917314172921823067438258855530183417728036721513375559766530122952021677115865530350471187627909496014559025672308978978689483473856151364889404399200911918274927856020158346023768862420493214874153064963666144108943185648768161373893301697162631011456635057798168680355141256133508802571742116978960793497122982245451245399568333355565606880499754898999030289372988664156873244341604005639941754706575083868652210705633984707121732550626940857496588531393303640068588407448263333740027567242408442094164086498022395608789770637084108682226027668533580542874811171709512035543886953264002495738674097374753454515691275375535123570841826216340582607275848975430202686241742077988067512088706085176961116888045083187400899638258920963527974340095109539729767275726039931569878574267067836080982589741086319129131543985816697680485994957719292104534671615384088285952437982072331450476077938809724032114274872597115858885426134868893928038346531073459993590246268967847165710803227120656374021796191358836298395360013913420234621632122601048966148091539287202968697965918237836540704772087666452933449500089134751881107169756388906064856511422205948260384512270927036347071682691286795219907196761245271845000041202195629534864368338530313140513717715333552623863380227246176889028621603637384872290356158970660939001811446096402372109524612391230706988224559824978913992008001514343421138624137471259402051705174382958797112062332782365709921998714821948566197062272202304429868176434145336875373497487867715230488059334693415498883033381544722603512367325080177452460429294966712719959754550214741932164848320374737639165711657789655687468054024820042331809310601551251610919626677643149249977518316395443214602569109393489362927056336982557163623056026161155600424376915315714180491748070427998674241311248094517765460593775779102966822535459812989309948103288019661073781590264065303257512953586745574370387702339246432265819226842217772293146186527391566044123562318339570649761940991263879143649758959678411956874031928617245242336223784802450653977269604078965851472153569322756490652257101007285958683425996548653687993428967240237504411700353052829750925893237749748497283446303297087382772021185086490313729476488871016839111062029825502886006472645929895834798399951521818387702023244838355220085578918333500388946846506855669640914556213998916648208903571620780929029194655277085841614835695414273390774813930541913431994562556397240146601765651694462168016590929711624737309043408342250863796501494292067403708752602363931752712667061313847333305854531883730168669798617064659352322427865675484762309491717932876533962016653252406267012094500363148117863539872047677138978635135583870806546714706038094182808677128814935649714379002761743659217075399148202695491073031435073661143466607269107487597836258311740319148727645324401010443867226776156175042209845965349407421777085360586191262955616122574835037335071069195179250781964720666571086498083765575940430815288181546134139960426349044905553530683614566340819511354271096715146733115299022881781066348556539052720945386472033533093127821858146801588009013363853939237643118451472844337033999838205122789149568347333328634737321466742197684702817180101324800219510856592659749264099041653612660953516338401283838186104132399313100576674170478865687591331775430304083131966219926590375918051560257468122548231591933016684169782535599312851883392775529294209167143298949900479182014414518553255270266428058063506191822266527457251350323365202897697017528637064566347198066325376325685209043505321864280645885346425067486520976266946920008064706225766132872622648768703902600751022650672595980321068448496818651236466174909406977612142446345501308440302006087578566773858824389876844866537707808839168028762554637278006100788215755819715544335353365563775614933317492192715142950040960755488517623584067062852802503166169210867468066825543114149270583881401252560606422874988244466928706230911719436763762564962128682383965097023797838758071998018784603366123102445032846827715307210561731002754535931027770914136819923119380820398324279087095976972178209260961271768905130255218402458732793053110723966468800855235518535663207152980823588269957159135285374235050223416739752796957011333272820825084018134330669464173106722799231198575275933109924926670617913999138513381221013593831686772540518704126010523847329624258076029635964240235883386819355728198763103201444146166860286545341195851362541681785812662218190239227531313199954161035960224567308382600529295035204578252300132523473381297243486396931452509672905735707287760641817145220697195699143758679154359547080841941807183943562131984986586286080574226201719262764355760351132882734647117177145192755310379266774423199623034004827142107171128198960857262437899596317155861430570769025255325157910141129109468060745314170555485317894830398639319406528576303871298230669941267693481230545033292185925871114751242940458137495002289747472305026641971789301357833885245193718386723673053452935057753191319071287828635542526781182665172135805191753225853206732224145586723819016256675563293323814225372724740064363746717973409538116253410074059149888519008137213338397081156324666294112768489848160574496051431628321537692060638899877646046687294855088846575761176546012547402864400536581388005382054443142590889793564192498625519257271415039038609485536414951985791644795206562278334487557699290927862540186818101395452381872934901036353887053504087213749469757553316491913323395795485046179837214843446713580916578833739609346009546432988422589189368441380697994896416594370601441713222778581917536056096579903886304608233231318759151176610375357701972489367695335496380406242430764163343256330954346155599944919197116576347089243725680888668645943726593929303314940645092113627024345558666680313947525962261612592790199981581783343601516748458859005661994419551088775878290641735021768541191066791305610664344757265865478486817666065139838864304714643422479872702441290388478476568739666463503619609736575692547410359253660107964915548785741938683615381847525836540830873386627494359563450585917632460453002476999340183147538246340614859999930431804909661660606506651223308115255746676510621345108751417560835358028217597402548218572013111619722074708253780774269450071331620427213197690709261941285253824904999048680225413366366154731335111847154118529102761593302075504411782654593585665053156106324294428256363075556690189406029076526260446860950013281586258050561960079185157104856925614262035525531009886372178899426202909724258481755200308558881388747513234122703968976996362389006695087942042520099256454133699322622441089442267585153366038263829928894258286023557241075082426034838210234037030967751690816580069600034083642760685184698038233102141214751317101525497067784511668818997851494120792072373247903140054805357696097688734964238549442857210065550633737871769851218931624518667341201409945319099907352189885356140486785635550521854311646881254427475685125423408325299539807907081981573936322986915670630730774663519743781700612503668728733510368706630123690683133730269663833136174109598998023951350572419375157772658683285067418324043978983435591715594666321567342303835087896725256267391413365807813302804524429449888980571810959507185015657850264138480336691956832061398093037494781202645574241852887838989086492325671701578318204300092296531522188933694278001724198178556499541693445029632113381928469758171340794871778755561019240012521640289658265105087012672698982331226454418594218029896992437163463198926012304648876694147414204504722648049173342750432502532204978030570496641453047362599638314519170664043849914558053196730307702279663395499211055993317654159852668364230206081421883072914099992290443618228376656990566789510428535369171061814627813686760837627167005299287230701375641015768699902924834481937469058625268543463895909375352772828225391758685991974980675940208746892553061353741663252039017663401668728825000888742364191271575022481106361311231104998771007848813326144246088618930308514264923297911417156832247033234000725712741882541333951993566058004643191691676699477905220759585707348795519982910301291333074835223607488023277354704828050155237932497092982285578476880196778090051945604411459044460633172928285799540708592388496570189128160823557172651140163038004040908549505304903458906005310597960852212404362558698678908191634876131472158020325845670575042444918809172423695696635618744220159883378126448946009192591426524054856613810396387381527102836824078593280247895005984873549409067831610862266455373935396837326146922541077981328450171569318781661996875218588468992693294355653483909300482306930157455848156151033355967378237171452582155495308122617854325684731936360242943605298018344254704286291879973080676840354488409446642630142756590253750970805072391673499753551228716271189682438484210251868329397766470224599515238774679206791244526495147737277609094002313010506346161611329503208100727263670825688440600131743945867028288383986593997826968261532354546039470395878025763084583688382682386440122001947437862366313868697379662234884514575923327468276530163706448880531524925477417192313248830441369653518831848888286548162807346120909763990473258593657568087544975047790776156876090087166121555337628171343533564495845254324141971877464340941870324717207628349550467446045906948954235516485078725587172399603170652443267855568518321655466896370939661075620767809961376555868818428247288351727180668373079687658670956600829136684187682049515142060053173448949507592694416360870279484156226335391727918402962572449546987539321029248992858140847251662128453525945786897109683887385613286932866279380163559220118675469884866880408296554302592411121481615175806121065788263179269599558621956424559047905737066333563609008560894168334980824249681276809193181000044100560830131708301766912539492026417205057136514304286268514142099240521069619582426705497799908983575294407169427798309541176951437039747678168683411904631556693267960752009591628852813357693095979633672157900703139128920000118427889628179910931041455190108968501234174206575375060473104828228910067694450464193639856430387404134857589075336857108391865136881140658514039444253592048275776106039295115264928997959587641308052372229372482230004838546792716986636791470354785926333466857830038667614548825685450090595487090748070341937955431320134900020316116293682652758560936032285864335694473619865957056336961965867836647723158451428231890413345989444721815448103079601717032286755310955269559013012466379098021409902902630809630681549133468237188434399112675052128974275051769130709000074295428263635930598850395341008882048259807672863706513273685153425822906866217745156482873310148279933842802586318305893177449962108491030636189949967820122962802330487335830591576897310704136236606166924057374249805629371764739540543559485909719946392501919033231663334090539300342192796347392850241221210802618487071827473161270282541830652359517039618021889416882868712172516547132453976515351710270759608714520384544963537126178285591858631942486918916875545675133913783116632335832166586813241642256324852166612214032124940772238211867150609444603283486667641986108502863207488894678606476795109129083065481523299959082742143608764866602785689105006455863746950818061376895275041400718588838365859200111399451099409046324212679746397360987574894893419095415573191563688689360471858892554197517013116998138080007586497174692505594425903894775097025509144317657926672619669314361483925130188973742377943319336659290442613005368614249869999789745078701115549091479881687716589648713745673340577046222104713064588605425637178860682384584640935035579736144228473209008930521631002543762350216439375097104761162807560800112912483274437211194877200628831980595687799342875808687027815646285722875259065689154304338098950248633295871789200262294893893941108808478311718881063850779307661327312008007107014892942387821352988837575801057246223624429606678595389990934593920168372104524235273837114409367293557809453062466521439175781774326186153001759120479341266332070623774005338787959989975182920238433052203684701588498682331056357260231687247015595007185057501030697293498403827415812133911469895242625116596306995885829550116233052887445917934182896810323999868830976166800705598101101931418840100091922926866356080682929714993635726058962619783693141523080371032948933485361922643566068239223682979426778009466482442825188739696108652921517005431793897971155962285005609142056599605695109447160657062919462570351709956285886585556795539976716159276806868955888401839420857683672694707206088331951143333634643014760166036513248023189113861352090908286348151865685639783642475315151947080701072117782217895166473414184710996496946028366847922342394599318641625430406551823178925585811052534358921795785882818833169582041228221617562532368461755664441280601087254694772886165518907259567903301364650689094479318345852972970282039788319621709582792698526716329403780921703666155910192408388277637245686400189321548821189873867150152123052656083583271535333160470761117996162282326144584157282657652406451619735143908497083783097279187185041220645738833758911725975234640703344102423742649862289259290630839792266382727385165068356078691428680997898178630761782724884335302904352743090019526612377175981867464760377315912690179565668681963048114585207392020592263178308430878971116115053231849300257230452665093956175927673891236869168373966370702156654530508447069071280869214555587011801543340172945897769970860797313388774869264702328198125553230432894860697733501762366481727320461587128172197760473262271333728997396471238562281442069250967209457592978817833497414774106379465594180225852165217655477677913662101191847195453010663760562574078038856296071289312067194031156253003846636515370087390931845322717272418710836053804727973480556408111590267743881988315600748647061222894609275083982463699971657994494378673043890992165410840458721549422560765644571946661177290207966185094385090772386258832606996465608811439814165156743099849430520581994239746432785459859137672189574979117430645401978796649832535240131438943649040260921525126311208753610905190980223041466218666066605500981665555999757637297950426526336685654229182293283070556908999429982847039467214361774631578898239405604492116993971518217117712465037547179355830478444679859586531808287804884842181690441384393640330771098836866587808420119194746614896440541165101844534247412170935417812972810407457117274271479638836949702172822186423054400671848551645645456444601021750214962519173689371728942041266303210548342085303880743759267533959487309485451308657487711295804906206428425785242647584007936695969224718836420628851272768796355768554529096724190532505111195259696494965337696499718373226001881541578798411557493976336162165759829910600519768084726017234841996892864526923880311029822049998313845772884928279946497826153171761063871664735086278803622386848344473006684979075408449411351044396232576986515256603842592720551209952495082649830147173953291227823236318363594386834246192505228120423144865313002435828841439534104573521589593030247842643480063772623027217339729913744631885473770247819006150088864308333642066143510741333538247610145351592803274582897555192698201962071576846248833532930172641498512708816604045539411128510857149675015432138972827538019937946980650830357668581521660399088789340928095981125778944577951107669883591329760820069068897266976339154331281530841572571340531883218857243202457619422365458561855629084882737074310890811584832076292756727417241287654431414563898618640396772737876471489729527427962356400958163746131982357640530234063024441271394550268274561259553606744694598311742857387641785738587454162921686061498128659949842175531408898917082545253996422049422398273109051401191726793595836720094625232475969732181266074059170408069009852116516392840212926425722628527852663356127439144395170184130080169353165693344007921631960359778943673096379379418658261389198201185127745790429768595639982897596954404945891182599253133700546654351583408060339728666945054187568265881360867898069783025163929338191973869024427997464518642262426714484069649654256824786127744407616946690564869845883037329820046575371218993786236087784607072428716854119002956745983558761565917462665829251699737232409797104521942691542652918167014867981072842738362355499100357970452299556429240822663561235636743784734912174405687748954279044207518431877754832146201665328119666053962449268207026755288515829890973020333537195459811429001600144631359664429472214283655761896942974829856963645356317152084687168668781900956988693187071828025116747176723543071341784490726810969954263613242571043427404884551629293212669741781403037984089962374820135767901695391973815526223746898388320130806670765011712082398601844586140673695608830915033504325850951739300823312946687432680618771086139202581047287110943991541898627635818535140035382323718357353321076082545899372024488094376971572260686440860458385741091869080230682594438891774359607735045890143849127534843047229770597516624918987112539962483153090650354682836313944552253694722648924150603365865266491846465196294331322737013323670600397354569403396528950805668758391978401320707361661764995493637793840709684649169854994604636463390395257321990545039536861472133443011189703637038165778106699268531378022165459769363894706427509212243017158669603291506719000209158470053999556424122434360307068830988213189709592556951325528067050047731803684345242357948797744947839153343031596028836679682786887073585852013796986674427596405171888873144283819510888163593349302043513110833545277855015658491371702358572877492500304425139296390228380939307645311270695551401965705065491623062265708732429326590784175820316708499432808380969740405767989953627630246728067286936848122188707866059065193729111658320495786818559615688084484590501086517288352041376387656302358398344001327861514060245347506380021521387154120718371749325458535204540921268367898087077124562754654795823518373762162287046221482523470154963760268976314266688622472906707125367318600201108259305797573511735256843033905791037058072179336164737450676810243239786051526175510646136590643119741738047044312794351039141071455300692319513212962575895836479034424703134854431181499789476736040051481314358015545457383248751326348233782278255844764714054608882005286753273149740106858724742902799165269575845667457197267204536047149819058831098521482111321019053983376148781248148662241183375517601116388516671186481427154176062155447364327353331693489578528097175082347425122002182176009381935521525438460019737961064492463387296890176209139836947735151307795042219446975157640973262172527694689702671353088213314888029361245381736255632784661993208481384556855765863749646848041845013760682892155457100871108766309276448829690911285989870532338706249815784033104426066151448885316249643344351981229105303079235144033796491073028931778851073980119566570107959668057102035147102003228052616849147149863998964487584056772713133751056270875558298154467844351145712493691858307249944676767467699466541422905126280633903309738723539274095836321204926839862890729756847220250786680774637366801716744919281377851087572554107106105193466065818135573558526051616651364255113545505012707874617567905038341076879241038811954839150586132153938663425248599852430812446502490259639450370383336350668032520279087720093421030742764088563910103151258693211923389363238269454361413699505720259571410605843890586560596598913616426949456473510128473760573184281851240742004052214797639035849224078399795028128457896883737282368447707636214907619050494831428651352210839561291282809480585619075492155710828902986764815673697095924370342455879356264173872060366310999899945915662880580707745259811744985046470614619003708351046260732308627529689405019173133979153049189124526285459823140735401312274810971454922980831543690333212561924985353506384739015289577495385750735088982197242988980011618803521447785222050552060151493449273782298616722715592017746825758536386857658640358103378018363427959548143539765655102464500082392338831672723359976083097681828184055320028803747166897174228440789642881785325146807238930641832300421670035524815898425592763709468355865039044281852049236125034422988961279769407508178277115812377895325723570081492636825679481052408267194985862698649805354432242866576948750746674965590977575490926654438521767637927706472825645348906198491297487189777148228012363797445547148665545238059860141300435405023933139787716832920908875575581689917056115029609547787029999241227302411440941082544476606614978367202674330659942433054461423421676934418448225879177144260673120426012653960426379263973802526553845874128215767659731775764401625149161305862831110984888550645012733312200580693224012765420024072934635162683775481629205545812751686979430070811302176629811272651756605122886601814090918794665354220433235462295961754774841947014881406334325719173480076312790099675587202598862616453632506865914804716875429852464034761341432481344669444357984455880931832677074241069718599597736883703346595111139042664798373989802407108505801897986811379985611172887785958952537035454024548432597851568516570816728523231705628740246600509587554460811356957614411066726851623302614875298133552566389806354968407655095427570342895870981699387626726243000663053886813282390350668958463263287718697929808554392807577995405053154597325285665366688691523830201615430581502170124971592070013443417090548677898695158787135639006124167065407097508405844427658201346048641747125823174553077071135697461853255392941379314913638994110454824009880720703860600623098636534967432110355986664570201166614443425656539511932900400899190290087816348295382716282587239953327160622275398504917466137234431857218823035841587501700940359089650068326884055203895391653083169419316114189941787839856492946320994365784399786664495268991551853305387558707361907690162712583207754897148690290204399022701468271296873065622717747955101245564300671758607470298897995359955913764123346286093907202566483058990311826422685782849958077572037609801003570794885728184686904927365737418813811481398255840658004608876743611957430281451468416253826524486103837677215225136440569192411284540978048683005231544971166780290504659728946481597431748515127787998456769031916601078859365008406471260526409242852016865989587830517934783744127388974042940767084574704761096698174659054139065183052618041817970769820681547583419601712716293007883684037146896858525315915538853307119183843640429746056415848623981089966468941562301499574234380543117075175248696603937553932804943302792765726532910423440540624257337579851594220375243450827100453424653977768810629407992937836862016247484850062473197229391752887494409950945684761075121722206635943104298301907830808518890281863243106721964766933236868996514962987623384891033219801799112162377090730550308163558866115353079683838369940970121992813201048770273636783958095066684058241120144541025722351851213388737067943056294628722255136496433988284055612881603356431710482538854382904802954411667479401195628128836837153249968819454869708266512641550854813825245396984707616896357154471529626212579156736867335134037764800642967334935134175309760224869438561807930556485157986826834755685574214022122836182766995033489926231878027185812575842555245766646581179918165168266092837340825978322479443612018015494290596434271391941763203246223650924471856963664951597894952390636030511207267329929577346637134240604066011830910546207984140079523716917044442950171374546689631454742330959232976772898406322264451248559696687279218065093300279737715643968271004461564009762573560384622296771152741266367859626734155535065570080184994935302690172805506710804720520251423461793404282284064860794534792023950545879115652390212734379837920506711722654105160541406575901395964183983071897175321908380444167025715753234351949306780659586051889326146104417128630569221728802993623275569374688053549542815226351291465185578062308411906519641251038539169992745946856186034809631369034414378223102157354509185982294815253257795939070287457254617626264079176238651696623668784537960336880579003040009189384019828819199166498477047761074769935012524678755407474747752171108523690838909682518193680714775509650426948765188643421702354820977290817776885660737584751117701380104647489870453978201463404356825447269257729652810095941724077852299980143417172616981680565029558470054134182422350459382726763827478624328687519660561972465753056281329871801848572717145968629785613533437181843190958036896927838317324492927174752424645911219395461438844274051145972965965937618898399502322163747816675683132238725705393828851603398698484797618683598988436929033774044106910828732681869017466814806895737943708500429923551039927519046099094532737976696602381333739518840394728797474839920234805949521234629472891266907225082033822942213083405954256653124847631469625984641018590624706068791631375317610661125371103683828196634418902093784789199583818531125160902446497222860428335084069035924768304800619344401485149664365169775232875407920991518056391938130265168803546947252524092139367712275292002728957845311590718952466782090226960522082919295084434578730093650355393650229110760490687609929339900984283869214050587567005616476397472923279704169509968805323165668702289372907970599008660115860776080433972207842489185904655777318068789486605799288008013360304484048239638660531854787005192213596507303179821621407593483730688450369820821301211069903095724478055475823964564099294640036114237225572080125581808338907899645439014087851538833156632747129503624287573514859345336175735947525768347379268213824951572013558457880776259571639166729188942110714133132653393878342162537216929373554427154260728649636264747991236972416004094639612806473742727248239177132920819656935899265226254801883695263764626907744526603985659337061141181141239872456641288895403194760973444352544881387995137014508641810277614649587584007642587705594153993496643648592975625500765660310086972115861849801670745483802201501970862956839506938749905402363544848414164036186395737258252708831431988002064569603770352319461673908875218128543301715831563253708321619686072806421118029576767944667893879359079416573707023741459264198885607411552168107713574945605989136032840753193018876511295157219600367481976320456338600391080017786410157509291377421908214410309240522084733883570923932168932426195052528068286094974808074707102783320167712143032625261801866030307671968805181859643691904995583032989755285677018827897641750211022566961854424048569085947624197084017707584484703853186661593485324559379301692128734187274387607425930444724041829669767994677634464875813222443413578474470586989769699540382052220833534583492635358260273541969685470236959386251844401835131219178536742674352827675606859013172920946942659508118593110736498214439545582911592316367737007525441961923862453330632751816830192702920624253141435963844106981969134219251106424962759122751783744206696930816029798667988315062823383759414751078256417985923515428076111455619260927964716482052053092680316037327372854634892729898882359922271001917436182072803262279123753186236126815585755769944573213358975655516099419008209510278848060664404791183192567701555753464971362244093172302468200311247952192480349884538500855365303393300673044651922585431697300958433042181610161895590008519518529821705830579532658166628234614732648250661230930128363602401172590619146591941253800816212044681802935924087588558646711577723198447057094363570356408899379853844260545834615935075917073894368262090497404639790546064037942575522569894796691317451282921426644891408719470913637189639968583419375383124911198295155100835259645073181594363744778021603232052370520350604997011147965693893594759011659747862163080287616851749822425053625758416226276163711141669836023307601475987922590931412229678399503952343633962703197942801226398265804989365476734662451147334367905787004785085286721229037309230286636475047946783958220459756009006365503263781012986541185180949856149709199159228296295525251850272724629191228500244224276002256826413521849150591533474530406067364137161574813292319436747152853695751116465679386920211791973763010014802150762622033221975995270049006252220460132580456774756356139857878340419312869155249314334302641221607124886639400415810186252618398903767728723465331896678661311798410242549366487761337377109931812060975334808453464056915990536867249816085330641844550179350658492436412603866787100741662149761051015442989823932561522148862052135868391761750789867077832956296618408844663734656564931016148939384139881229971605698891861442457795978752490066005794345351020054960727741877329799791974644284934385087007416212691424619803121415891614378433812966291489710184140802668387103146691551625296991981408661149297517807431517183798238196118280175370276226427097757871835921598466563581106480222307276230348885067246966615154042020247132131915740962031815626376408302819150669831795979148569206416599127362137723376287732975009490258855068329292033304855261610204714892959661300860739835832341561922341086775245263187513376565604101112537891971430345494505167189584499252512678871733833857078848592952167737270907304786619442007601414798828280605104073770411871533626627164523525401616492560333049498931459256054292491500612301303031606702355546006979407363236664035673486665814304219299709127312229768572141488415015132053271884880437986450503792820572393744928010653270516366001733598634739282352635115190031953628334352147290989971021698915084401670448812292756521091824636470910850316986714860168753901154496715976765376339312877763987231114513334985213897096771186134440783329222687087723517026164479266274706280829114027739592637890649296666218625604822156479773773214915386709445985458045881649203093141009782633091844313865376854037046085619373524565885072305234078790707433561277967486119399154392740950857197959651483211225325629236603570950738248918270226140268868261202275900979032030069321821016534785329967574879957214020790483832087622388857315809904457513692202068106443563063208693060400269045888072694093199801635871005370243097023469340358028544886146893688689865020736122059037779623910313495434448558823830974499249518746231655818843384756163683838091053221186118352244645856619936183628360976473336208279305949640413734047300219812591617386253863682415692685519691287035932043406417401520730986257273304513855074214888109203212867734978512180294251853637462265577548566727668312505216913421205281138950279776851176973120715576294308238818985609495469915944701772111084526848636963197580250788092196162700165114257599253340284273216478387167029124958478346877010112825168645429281940303840327592289901798590219260865344694617350366848980264844751347219702426120675348913806248005165200591297174636537564159674632747562240512314690034227049740890685134211644493254810502352606655195417087824838242377849488454304990746522875488850887268520011552410646868504304878662494902034820563331744807917638687357992384602563760074878967216279987171320073922783828283161484996387865022756646676122119170222918518163345085323395541899488417482548253840834459704298000472813688852962883910590798130241014231279268143439043889559535823563118273060572442759209332943843081010764145819253484316666685003633413097773507200997911579859699562525125593717153458557387268490156830626712452223823134832028283577255991043649868351842758382937172092114193592252321888769895327985095152629450437134876806949723388789316311565624311309818322108204598527874009616684980455273895613059654358796482806285613450839886293015193028705646277135581136970597657184997394050109037258474622313675479949100501191292097242104764215633564485561145565925750730185494951085729592837599399744959712869140669620472717410823853504050509364991870890825275069038259283600734324265704061770676798896721971547809980515349681167335036659227473041040879479293583701471857607535078954648458789085107971031797889627025652451804222764191806859575078593117487337285822142592780822203089204986871228764470010014525344679467889393387463534090074125633794436608316656356989480991826012252247182359955807223807054684167535592850709827262460088091664759967622040734230417677082449613185774664269701310735339995789177847656395202803038205132706586078447693207909270899732504429090250735606507939219258164075757783531267229020701121838733348626643072150843880765720096890811502310347996824325204962698351268720682515333653604294099509015940866787745270292535841894391869783123239348142944666161310556609977315532813949805230983352951155934497480867433066736991831121233887598733374157956478039822097128684776891977828759639752041501857632753221574974097612493886083133905591197875141900932428392681371594667818781957765395064732149271499822642927272839202003689696264230052358631472852231740826115786048156300572016965159729947734592232733260984505423780493989820509019367378026685734177541965429792181206201958368582751540085924992931975408336681829219707751687203348974966622385894632200826013565761309400620401393879619274389142551787171772644979638688025586891254169853485394326470945839018491356993834503656529900849975689550353574406811561138252539111839501755807536462210073112111378163454752423492972851566730915570777369558445869840993019455464519000031958337110850456467066332800180294888241622764583011921949828443064424757169056122578666611976513954354851299426778876260075423960474330635138374970800512470968532897476642464580487604605984358460975349156129833122846777938971330846356058579203897010801667025564448590156299729062607357404892379148754714860953058721395972094544308729521917440057673521815832573155050672336911049558750708821298619662198769549047750229610675069249509470723969175495097583858922398518502106306930987456570807177097071267537705840443612279672352288766295179954015710997874275098740338753550105156473630590835407522453519525075096583253974669056570446520808317431667928126955952328960879282716034559424890345750221843246258593091453534709615056981102879987301604615677563379676968469872472964139950627840140533923451475070445941001586964706743389925661004139211022303702072762790448251495262019435103021198887557434068141289162588698517309712931215404891959775451886406966343426722762390446744268559974004516837698756935663139929273503500432986872607793084021355906570067594197080133065075869024379550902076439947190358446067250052331567814709272656896644525329417698112517552301748114632580525520139542434378051386285496614571781269327299558592766306100638080240005584185243035252487664743266139568409045991173749464984496061410504367478438663126436618307479356981959975696518827964952784168999230425905912674205344661895817397299651225778460096401277644310895996000134714487614732090048235254409968010534254092148733739470750337575459306453079597688788372676155347689348419698415058669715756707923654930193657159008179254994602435516561905232904792125856975006039824109734935197669036766812065933792818907933125367595160587326455156713552651381558235794179792793792872953795677974010222055496256555089046350484420189103482098684909502353410533799661398036898054848131119498781097670315302206785391711001272588892108882401984879313542535848732046353949626256903172437764901513719773522453485811810690887558668848620463666553397386360566875512542607498604079677956671218592884523805853452119437648377227311064188440914811767061722209451383424635087019006794764439701648502460068212703434176540428398541049137367767192949749312991159691944161348169172747767092385590570240617595284018188502966310989239730470438188292367497977493028361012555205792848887163684602944331455690032639980263253146832337450025644718314700626089558388675332988943974001460308440987143832124685486774757031267787787725713376499473268413072658510345012811405508867595187186970185123224000154896530768833756101810791300754367197066693254925493722334977739534679780437684172830621923402219555133342672644763727447438936609029361553574724691752060939261092783377656163427597240829268185452248438416456255443326576973623116891444455674397607017226754188713272914163670402207630965245059646934910078996478642638927413379681005320953090299798520067367887981985732535770196650319353678933907379458283924288822279444797291888795348230928714289443922330063471767868978455343677915345348269686469038880313923374054164458111340100315777535614589218618968930932749654259506846218082862537798801052199010520974108214267990504916908738993373013426182670398569680609201627209095382519749790016769773546597666460634920784105970752035878472790573923407402026103937054287129736818998269332604476021194866544727527770920514908719304737584190530287978122548830834922994251448363382358734048654021590819794737163906024127199911922316796868552709670076943264069391858079413217295051996897104760928678143496098184186392573279001754321891457266292486908843925852430313705564067675350199496424416310340452720078315926177279458475691538670236868103262241542762439451776445938537002540539994972537560809914457273331885929308517156757715851061379679486891813322503095578075429489228851337890354850006909159451572489350432591642488819850258762189839018798570377781562795151010131079754790512213821718402577129335419394950051162973016369869582162650822894230509814255997147902499503115757323961258398524739288052552407701385935312268504274012088233119729797271813215939199326525280618424338097600595528468389925218293176343099911911499060415687886600374624683087600990966442958803422935550496325811222452459574098523018748952980067955974964048728203166022455847850570176537714477325393878065088375240170865958457080088681587010161837442780724743216005268873496739463880007035426345521241459866423031817970344305637722978215425549383658950544192532921898164162673052710967278217894187153417226955929240850761027254392200780799884070120557399878111256813519262778479652286679932952038011614645713944443104473191148499694041565022191252255336366300083586838425817358534173092641904357560343645208614851337072291286256271045215543458548677676951904410441108955249924391694677065959090588136028714886025686985998458598086241014233720043052139018732711621442480151084513234720335991807304212777521192926329878422434912861734063329887336917699975068223590133955061107260688043493677080147311376450391851911513238150663217183660003828138735215601427064240209410800507706880010315168835305282709590286431739772500502054067607020271956209737768232878258903486172816556878996742033323959075293432047345709777030346442742221821572969237671377385175223832441045298837356020667751734943880629608042629328108234573812419705163377897641302200654008159619564602940855218941153092751719769811917335152607223962208520034705990945523791025326910111682642180742826065993792995892870773127529858944813800981967775525983031700005237069171861680749840174530139992502045803379588266820729488302507628494264590854341424845975274569626628394659908742673634207191526959885868180787187739469735296302138320955663342546649674192743715811802683132177287549427685873951005524771998713017016698087916306412275945986415150587063431765604806571065837614179173256394363453296392567301630056193375192065435709712343777987415823042923386508575516230118307999250331387673754634853531217436252856664446672647392777183286373527676457684470143822436132757271224608824917012676340692981769602968837527768946165837273465847339096298720953917008599893568543824379927160256904678066351650284797220785246258026363938904840492999634397902126681498272386627477815466415615789643853328523630108128995888643624410868833562189915343219150593011440443887533354998310063536466914582979332778064740480520354950378945315122971916076369834220135287518476319522029660690564121521171618280476850824412017343681757251343536622581883379101832298287424289788766405794909986422668810391317372701467764432119875362828276909633778637896058486279408134232011943763605948172729529495586072211574954060081867801141583793522892095738757981074875795564571712584098211014711265110154029001809686703931256550352632519537560971056287118688557122887051793813219710021531543158577141388858419433456634397944941809403577619776777487247060791258029679966989630010087703162515096584208407245085453391109755723579537472241963017500540498543135224716767151855650480768973878644099023109656736635632227803621905307227456829526041246055728704517464589984182440230375634428207738859129955452095755027938797216417974598062553085566933184945922537855882151886043716973370132931216165915562134592872821904927934779762371027043868923546768228016859318191362662750945191720210503837736194680331221094569478112921261831556423129147856059670182407460530375118896699940557418094722450746561820087675478014877415884091538221111524241412481073224905712300598086370114405864032966854577206595256758370816075676510141881367394077125371242514829279677223627982613131700052809348516785822456217299531371114399222082340105084164442584206845259957350329174246865232601067144834684282329943504946620964398763012306416966581562902245562684480501697890018269360911539187228011079725490832145774626850225825253209719231534540412886259074534673610899255112482425273804014771515177582370413266156643343238688833645640720311043682310872593944701520843895996711419165189009072556781467159964619201272030608563763343055055137046765843985556246648609811189872848116602026854160258311704989277671918045795730704860071471407424236154236805328427928571295832150313809530286723555890349852953754236569443005838557071512933689151259367574304190411639068883514047113992889355324295523182899898567185535273428554163217126732324186757435374382282029911250978969835610067452829306985169533764995850232509549137224608470875532207783633486918680412630482305981164149951964817477861108451979812906952408548734995289073331343799156645231385533243748081845819454091009203450408275928718686583642527508007005395505393137151570806872484484257719519855066953034447324957687785631883685084362794387822856876093917812959722323785121331164516729510806083204845970493186887975769438069045685991869281447228846719295732597116305442214463286625226907870761419568691766942214926376112546514655161628490057153479469128496011211959327771358280467008192726991759762516061820970160033479497466854316259863646911328193244162583425033108805444810032095958386739131897090504960573802749912272278044263358016355759018521161496648640133327858537451622355439224873486009386636186508046732320753649766794471519889291127161795300365155592227058358776053399508308333098065177435114026226765286192792721517911392116859741972972685464215734848008369142129957343134053009705760470583411488046328924533840312071271026568606979958290725870226902895381329654917925290963558781169287184641907883959671785255496535682382543398948636873422684776480228756371126155291221369478759497451343727840884810003578835749947398727461504742345368470005361886629521079266324069572276423367553769106190331113049682052523432948008543168787576893990389315919204591881584339469669771456081158235895435663756372565485266291674332474870955188392118303573766455433235254644148146872350672597084550197054772721859308788480002866496999205075021398567590211677988296725877194217731611327280213020704911550129568291488571812868956249733406631943655313559310694725266085633700643238387527217602944339188767708048726046458291053715818005979955493768058682381359294630338910296831900567019118617962141966912789792285758025533666023770995434587368689038515430983522813897067690646220928553569066879560552775367811807199785123299561645159643636284853930942539879266134162887972824682926488572751105992904394599170978082804897204040234375426167668023138289309390206752146953468087058309429247211021987723627187463402890733222301457668887082169970500911725399948122689924424497317841446841726236152244951321835254095789677405512786679317564581498306827577127276713463730970876432760229138441637227345702063021651276469206263528333687619209141764588422630895193821969085553464744613587059916713259035432011674828443060023108620670371801429174094626166225920630969373282132647285665836189483758199752113402094542281334202265156986907994852046990954145677881709573751644839637463667564311387834711001790520733929383236845248310635361924656970774222818292289781436825559712446901796686761782306778281101184055351930796212612237023637251127420743908844569911589565790079531783865470914892660068884965657789479663358191690637990483474577979057282800794430085227194309577099651174959316262203884167593322823307497738614521191961774716439841733459986670544141916971874571191515928498303142197482267112794808958591943865442851475296401064171696336841448766230008780733062542422582023984959689082906639066738119815421552194843093383432297864006236674881555847276197808593188178228982468764088863655810151220082293177122105771879651471442043325180461634202659551612083768633153969573638574201308464800675030658020455233456528560872303415561004002382078688405346970188342091510073664446284470876402312188903526199690001843438868983982572966450221673101446311118758883165096974651559629827362408849612618035491698902132712690885677046539707800169212312603015994192409533306889656418869852835378880699588484614175368634966840480687293579510396374953245823830382092529663172285740967529876309727513076065138288984708567396890844939491377558929203662918344564327152129946909749809499350417232758369239218796477538671032250459434214610936089562540188109191423182531090247038295308166741748473320182363429750115841556964253983253218683164410374145849080093640522353456096457070129679777728692375232616760098819347936311130001029386822183755249170482870994889971471610816433744747345163689039686405393139534034227738685768383499349322689112296646350863309232201740607419431020062125533426716354546717273825110104742596016500163836150567473363915015880647202315679998626041773376105467170412074341445684492862420308274007517340264035948245896281438424119291722556280143693183552380670993184402908709837642513914312166946179913677967755197025740920942840752711492500481640611110951452629644893935892624872875314298034481993032248924698718030580446571901066810623673322172542764313322561994929608112784095711946760258442206125535810917192670948660200360198834217353474982746340766859740085536103563751262932358464971856965729080011932712410409496691162322089303549928731728699267543987661216554539828915233795681198649540673833442107818494238211987377158419908177097001747628396452722048306150299798380520332660743447912003189195357161162642361676908100910539767621015667376497386573751024623307353823919398992668379211948536790616611009485971609579893393525673453313535989604829963982151398723445872098582924140968764536768531868382585810362149205051051534567213498327295484901040730441148505495282073517405714285447228295191054621771970929339935883062449504785945268218815036427910150345049356668608169110546761139792555718042090209034909048071628075051050900783247896457391593884572312824420756212948780354862830101244002412014361895283347695845500235242821990410367249199641652951152083930503610315254875250676460406249427764337706554560724162164042899328896941956624677791119354093904843337675580846208126238028240521046371839929559835783904859357440573066741749043945723967525282349475956653163296092237303989191209321650106637732353442947433935088215157731284631269071183915491351705007967951187782006710564038181415408642013400153685281628433300512692716346283246078591928951796019118839411353783524636096992687943955551664961988937829255265701421944965318163423816028422890022244231644060624461529198561354003317939427300048290286617981590171099787261670345280359239676189746624014503710928532802043466146700605060296583373948666724785184116995869013088601824392040834546785153864371062493729867362001334749202170320307990575245458243588894270627338489920856533924558866186779989551178156668892237095339828217622194539843376855300132950062214864743343552278493767555357881025556614141044148483939720283659515232951693925963041487233926788273177836331937680181841824701190300328243981052625283694099234874328791159384412960724708259740402123066297752752501957156991708624657073402513358528934884009973989867951023392149399751448221964275083447264410109784309338348783568742513331973392430951012459232577798812375174580922739953342053470222663417379032762949283127560534335542027362050460978397402730168179903310596281141436489173303113205971302924657070801990505815823236856500292518129391714887853106133708442826807665134341313237904366353119818082370461372447991272517664383951670168062413035966790917548753256032606903636436830184685655985098669190469349142007362628351338067169184507479728481957272541706588879865462366667862288585333005998712501867506002785714564278306224957496160546800969315538893043349409531275956957200588232429659963815079509123761564286059574058416565192441224864426093828017323551869998937187104547718519109915716565118049298250488794200983138065354341980523238579861357648187766244065916152839476065366959252461524298676883123747502685762357618982063495613298496110544400780264046158118088940612980835022706296544482561732162284132036862972037743970207573879666924649441147632030449391516134446403358225516900943824722390320873931814953853695343222544327080156683435586826810207117727701801055154469421349116100115215529492306352462972475644471640155666842108632650186366406710321754794611551353214452767431451105445392575838749204112121244123163786825279039419443185194481712653341717316880238431599337755893854698913444138754453286097043032085778343995204277704702506944301132130264875388058655480822001619463408592018146455228260289780234670204739382455338708213723708722517432657072545307569481069008866458500770290127423943215651410966199193132118651185656799299082062141546935295643208348445397165793630947247004767331292584003381324291025379636855594437258859963406042580601699209957874177721036459751426160173758413028097454674421237831696563762066125638093763001702686421538815762288444673512180680789540466255906167490002439983440033232238718054519909405848197005006545087672544429849105184670916078963016026259613526562918420897017249247242882663341040584389478592024830656889048199897921427202716982671544986786781189901176574131850149352331388404545816998293423844666558472258257427566642896352634444330633379870490748330517277813404455539847000550625678454922986929567535786110130202754771703074799124340091136099550874194390723408422057674610241765186302519151154441317781013340008587366634678869861910579153562011068891897855586899773851754381699377682709330385460219153086962438543557017665300720792486943841892231930268463760595053333423600395336134997614659492927682126212160115186518476435171765398344380059591215616351826764205557422161085970555135384744556913791034020145677342774157246050747941431023335647586050264068146568996606189550775029442187105610358116992599035606050287744366422365628501685006565575033494978848984921604732270024823753604980139420705607957703582066902350423929850064082209294019713015391327373713332425661551543086512518858621447630953962293676511561564677542465174639437295272836187664358800738348001041780679339048281076065474959350847300320816243473931415287272916511693420135929303187140926409374581375270994597076441134737508987215325374094126470068023470721300256789300662884712044075595265661631267936267525162234331186393571782833322837403643476706953205268778923055498619460408283339046485247068090997160602174506115083972212039115735595379379549808578394116991462585523569202156798519016744251741984711267614381397103596816165705125504406541413615321632246650996323016491462115262518483750373398163623329963480917267859319605793427329361275412589914150635737598601845978049486033701470344630086658411798524876457028723225685459471751181188822481803489403392204709470258868426559459842280759558482898948493746921855374203942913558128704059059727253595244330245735534251387323035247120672338276627760583542693560777471270597308582115337708858511388036104130589484013220913666966175320031993178592428567936256613843628381789689308963447693648320020078242091478223539329806581047948352427587371224504394608973347457296430673271482905694632298631851340509697153081672711797751747001723956442143675489591725674500043505516849538553504679862428483312630596017097119458346625917353186571771138242476449464613548198210592867488352128930020414960765812485271173119203266611572682006233255573683482641679729760521930615438643776495755519885392614874613610241131357331868645617518660104192387113693248671231386073475029739545536953410605278150776452719905607097827107077838652795189370741503563801746867091810327276777473829407984638472119121897926591600864135434936377037903627407623160091862967958621482177545770195662164388256784718174018862459027403019505444289611798491529922235450194597923719273109383380962438912685511869136325392740149931133497386148800235469142833436113991075619122659580172133349858355882411104124130049071168716444762455821325008065202667558689517360549865516025903722694016617186366577178072310956116357541818276502332341465331667799901254923440606021506506404266155996143747352677626983015171905693028325375403877884172743545506409831026154042693532670481625130462233465058104096454108885893812106712754770891916532898402210578118272179276457909923814927092449853003755483639726641694105810663878934189276963695722721490763433389977560634818119102818943188190563191271010274291490843810171688698022936739979105027065199439514480621083080133704873926941947264403271784338869027608781164515921972251157187420861492601903331200543309263496500654928263608703166780550839535564265234304921345721404549082115270500563879013866338408594252372500838860487705028522018130198125918197057147090267682775959530843756248086534546748499425753042876126963991249258392562769459884369944754887974216640184246333709332987507785366435064274337950884035386750838489216830773381854396945069048206581391333059135293653012300148019625383985227070398345442493419167370601605447328369013141181128851964527222237570893356127555145642031974796665500157907795318751668556419791518653323405523321775813888333315463620401029482958184193474446588461254622019136868611958447944231968829198166233510536126761875965642193288231504421518681026061879853213368546663135374230882394995440061916766825231499326609035757700522680738020076346724740311112158030022131635145918765698916275852330272525793199093559059716952962868123141862129790358550154872802987214978917390606138711427783975661178696060381464569659195870340515749358478984760644303855395498411134206627672978042347380319740922659212813357476495932074873069603001963627465319695258583350811460238796949831964550257618224933137513600436136079752195470834855005882156316862961129002782418607480786662823516182000601175223008332910267357315300554024556692303247285604363982839889939378279793689889286329305380934164233498466243533725467801725432333164457588170117536785556996187433458836962421105557435212879751387025266856599486122915607826936059244085346134135906477304804575551116636018342814277961847693020983731990271001903417092244583464603315326098713190793170933605597847996124160566879691510987600847918398964876950082182176524232291970152668077120273231949067967045052828749258163362326711864056066293054577515034412677478841288749778794652530783538781793554847149997403040956491317174134944278737931812944556481106559617328583923805013923702526555470931322914030131378491770596601559432034373472197805021236722680291477714633634397237302141486981691389699468458576081890719896704858826401754649290685039652996330277142724751378691333416106860697305102541153306242311572697421440963606605835928041687114299958969546017480144709677745290441459173553229107778001000188831466292257008669408766569443172355198247506824992061708077240993171783937187620763966336247625535966701174998432932591461581464450367146285304738463225959517048949133067021020915162303866003597238957298770285876797617850793825684742387575337396156396596558322263824211889658644416420036885760202528429346138793587709997074322506940843801324405799510191730334403579125145003735120745427798467658161271576213899112782669749602327192390639812327674334287903924633476985381853786622314267665624406482045182210665524219038110102484219474090820638820081719233795417820688745201050431017525882720715741280798908936742491316119291715214576167645189978520371691950837277236666116746778443504098458060969051063087680214526612092120316888386823944410846233299673831335154962007352966894537983407338342801744905525093494370910206941949603736625080961924803702261205718583987468267027964237339049999787948585881876593670764753597429052043702475233842867895259862936825537511616675372286862403798058614931795259628724246435430662349144601860037157114284832372590867954920306273274296422637817846776869075363151363546203770455109680780337119996858185374163694510884390265616409921638213233501203795292816802651446142498693323033029608738330819820813346957218203986507421793857721144177940785417156029638137203568044134624333909973489967833165160936388982695445832698691273671702878872885981586775765752290519469519628238640200564783361182402710847647632927660571251711673598582631320745893532920793144089693012883457099653458355782357954795615703866366137797126381884685650616416447362221802357770734182623895469215633851062810954911149335064511213638040908814332952940768252640578346455763759187529984635341984616570679797135622372635961992459287144203433069003899338061905741904127545738886369208556198091228966176194342533642964657885717993153412245958093661196423700162504795295478297146000776571503789325369392401732133193309125038176886416960706142988954753257029498499696207908245554371954133423747360743577066750932732411701388465925558099074911534985268018906158110810489468916349038340322619363450460547354634287123065067824270434115244982317852322036522762254933438077095464993784928695047192302323013338640293391437015706370216098470975687753081072160893227488950779861331668059623339278978866808642797512957768765060116955193291268590554942669800173978511180094561202971835183620008084740195135466737883210629489585560271726695729663098733493261176988187351240469404426764662298165628616557182250985352168211621421577102739033893543294626317177028025511793308864335517468074267666444479602038949251468550011955029647918722623302827318264161226030672903258559555330201746245222529655430702713207329313769532092108310769265456317783249672465114264073657189585627111938646498447840400829749053943865494345699578201930661642798765871496805453774950435004482460497478966872421937250580873077414103222373742802316741862342729693431603445686950435539978754741223767191497743745849721529547949694826001751713342802014105059385675831689756993135990873147140580544584967742896800952575092499972236106928103283163962521378319591195120938798357617108246063179451208048029887708429513037491952263514506851022930858128825524005111423273637766833500227081385419941482653300217503940411258997450824815690761068280653527525215496785097736585230818143910748376798701506256951057493635435177510459662950505056354218829192310115637085301804521770904544520757570041195145840431117894844802302741886879485369469670081345414809233534292632585665010327013547302004225700155409144890677751294455670951719997691132242540646207888120786208863197768778376039731579557865747603747325406831996755633040441369411756104763930989503185005330125966483897428149705943816263723006397034589929502458443576295865343096057109125877335258490754154205754785838057886212590720199728605344470630860648562013352180435681081489263091127143128996969341376825515631853582249122264124465729595698335202275201151261912218404299685825343569804181235250679249408110146788728399000625632868287728348038371281244507242086537054118651091673583920399246110029561612695493086133499596857583486820295054596580142769296505670106851149289895550444549679311538148424913288560679780705050880795129699933408878417443740918133436310420145726103626456641365485207133493718097452997488596230189725012932943651350150508135434706926746596340392560206137069410818098468980125315326558268110639052342321533773810129846375199498995990646425669360420289966908754147529783154433025892462915118787551947828553445516804662852414868804551175178178514100008084062785780516707540423051993674420809025788016125125578886264627616974415892995594201580734747353823423497435898169382264765212567703709583248267454776341607696997271944939707860796552374633014969964076106402885594363224788649175181774139411391066616339001537515135966659342680796578006769862686479631786284795321867288906272352943271070792638714737672819144408384660647392995283155682500666220552816829953321746433237052434412177556352608037590482786984102075048147450161255799250078294175345162336250982343622993883970879420214605376195210820103634625572404741699771674579148600642476017634549110388485268246916454780157387365676996456453127285873920153644816115563113486598473220889257357571691096753590511319619489803527533551219150351922839026798360394681197742575523344407037300031895672122345790126840385155716524146752003448384932819466332612312297814890129302427636275056912997825315668148709585703740091832330134820176082988746997172405752955644849346121141084467987673476213766132904995923604835595914709300367456943151144626440952011492538701948195436052032485869175254113189252317891506342652777759628988603074246475226003745307411994438743938925618140352993199458607992746020252186745351192900823872921369360918304092861164654999292648961576188086837263097190022663043758130757263672161779984016077481332873061599384181170495671716479347025311722507693928597499879195642388666142595321937270498399135714977617536187741584207061457883244378034173129265007746666849876965156721591748263680143175202573804127948225335593689889086344115367946300878411699326943278142403428651031334303073581205255907840135758286186369907731899687999763590947210386565217822245742996262419314392575268442631321704762064453092477255744807246489953527158268846832244667672142705336392770260205810135457070503543123476455737724851528881042336425686341549904718380284550990738029269946247728974299140131878255078988356684444006097487024279874990393233993072881053988695126842854652822503424572883748863389290461728935676012275053179074823567925522015053679410346718210562221830385375604084816926919197563583580391828345600162468505197990150331784825410902523268102290386764380734181150260007211723628132910524041730111770359573114290725769321187849555906275457241987134525043245700409070339223628084345670715516247682003643218960117685939228990116850257869000710211005857858536545082732659149562748295158551213689030370595425944843213061165729091635922333000745466240993225631481634242139017215356808711521617584999939239331425882122154595794524990830365944662319816073353369186922116748693494598698990425353001037000754148174243046770333319114310659524900675649717513880541100681367520448099627996344518373998385639579512644669386994088305801009083635849280225462744496154009564155389071466769423833058925038404460670248321305622842590428821104391007886661149983105059486367333033463213069997262963300398567813307953373223957673931365398183935453034921785721922842169522031777657745651661524623706205236921479125007537402030437443588740261016647194010139491882833296865110323076188021424225992135350523671936885987737174200764355550768605844951204178779083695653046646326410996223516451449403521020630495886492184881435547195317882871686502494290797213676320566318703078609388982887597070512320495849846969703125961716803498160928694611013765737729905602523339542571605409389506646822203758071411733778426253548388885538271435315753021399464531310772476477535619962273532058119866996079255906082282238297975640758332934502345670221486788405453626311537730356160767147149950672238803465192318333017612040736932000576042242662090088296322850117810396007623509852066767751832947767303034710270364190177115525416885608985085241095054829534793102855204673484892940280144160928260037559410974636373206339482212405314876501791230580127467203382428419456995673350410619355422670270291083397927950504533466048270028544296281359549016328033052238028665780791889640105937432648775572645550173483622307651099819447843725040540932249041117675814068938932856577735998382862163815076073141731867728635246582703890923362621166845104615812262671643881517719835174453394705140665414388383861448406835429685225764161900151665231830969212390819894552947628408229145546254896589275245961296357364993879785902927550825928854955624249882875567869440916312349143894516056485272125114123368444576727742632064747443189867861234105594685755779346644813351406463061245362183613470013940087375506976884244399448593604936788496737692134641459481774063469173824046043212503601113354161894694877531733818062042612270560017107552700764070583940249843620261689209941480094761977345455277083751484373419216376531097071365092208470141361559737656046542290462111875418171110787526587645591159256350460926849043644536709384750522804215040717077905531904403881087980832114255561610887821295188324437160926296741752098996139341679815292769642391527599772786293517046336929255580429355834507168781245674588871052002852351876323326528776826759551387894017732703267651039749654157124957109214647438275079059571140984746260355875945518966153696451678839691816502554115319722031985601956220726034570063484624486866302347939312028818092683229176314498176430715044870648299488858215374414951092606135518391109917880902129172068929681756441840674204948935943172043017354369216220054846456636634540856587387317323173369668242976850690731137140660464674768669451522098714208663412721565148502811377923692830102598156236796064257995303143088664037391394837449385021563187195693200508081629020768210401081637149790688470812418535070642049970044737291909850661517029385097987573309594478733554804318788657850523149194586942318516162212926923738575511550059066363713311564468153160028518169566212474086980263194557776171522713008875097264771432884846342793248892000952408444646232743120673458405371326558953363861944643730352739894686720945663342609085731032263838592742184577393161133801268438957079095903206392374457990684447700242783038971308604633420566035477042049254609862740082689188966816778283325120023078569599190603225159115823218546136443780737274977811235623333760126160287957870923583511861960049121756955516929303320704449099357755224954261472951511945546324622482692593802202186158748484301516122076380668266500991697276754354663974703935098422195166971570090168720400688801759947385872819894677381205965364452535905139702167585234852524119151311789850233107118362874871378196274041662636179181769244856275046788276980676266003671248920498599381347817326918653140384616213121785023877539877537959912565917278626595917359800717958688320584055841693262886803294675742130925232612518869638877838544599538276506881108975699422550239057076772265350256339400277829964729255077104437637479537646121330735614841446905525466675188460034674901565657380026926730332099284113779775549701464339633365531778227186269943971195484661771783844402712603378194860791983959290437298520854186247262656005816257073680004020516461056516659101693753629668699494294530286287212530090408316418728267218594446578965584423330200292309130580834253644530847300266211358010312837441236432246902372612220813065498199186061946878244043441310817553827486276041899535897534725721353220922005658134943456147681276058020954722671080796013558664543244028328860304491670409935742561803802561384083031411933720663276153307369911180397628026696961055743673936350768044523629664873144776923472932838917098237411321154987144751509979031310690286359316288219300728859153688986012183221540755337625117898033725948800924152484602187437567083755823287878800773757027829548904644466776253048548040029821541338602753628451567714851463390965667295519610645018722954568586928885488409755682591698265046143883705862379096641780538582946738611625352471127927010955211961468043997756352452687103706653449015668273871932115330319888596780353418859089624883218621331942025904867535966684162488342250667100082080612499271390448321182439418585814445072244614081515524093461055214149159559348626723101167286561704454874467701740138943080694063891387177009447183495105343517056429389012872926424055684856167993404175027169648017625749659007941785572726356059614710841074278092277348587999903639288783180760238754587253645130579986615042158305653352544441625312747196633139151747407535198404531044629231534463446157702194416960420981478283569166781049987666294668276728077757285037053819612673386067682498572757225589667241662498671301436981157631073332106938520551235178432829970688792817327259234225881294397252410375063970481245601145524298101972551324725401567624577137631278488398744565992749246303609586585316160947723908813955077993266763605842872116744561324288548577291503022317873134588688260599477910192018041865966243042999411747440817478321648727842854194872947691501987815078230183109816508320724334043111566975592325780015051591046552382173613026649523720967283241877535631918993654788532909180449477703272363913967869468778595003546224811011059110068727007048580564912860840439285434536803609425106717004685847981324696247805995718613807000662452734897256847461376309447980732427219610386737497694175642472218305951778968595874172370672755329105124202228313720101256095569005544695488700366325362832552708745410572634297545587895174107148598850447504132851596019015612099791367922938922898663479077683152144539428574031893469394431592116311777957065043152921882116148225779032144445891425274240988874706761288798988524186692505704210145860236823568224044882004185374431508975677486067394768735559416583040429720205078275484115250344477290505713847927006925229543664082304203713777318771242913036669076515220183733023577131451007850967676052537643671194001668641281356625337118444759020281642465705679005694143074393923285821369736707041460875334425175048849006538435375616295458604253949372194541818618759227718948389097282811835316531770043496434683626734911706304749339238928670239584791141597555143249756976140642389899519741994301469179900520252996302532011730086095776127761366433013909699528810633844310378428033984655767783948959657202418708339304545240787211678707821649101691562965681100926428616342661937759680640248666896809129445811988680725798156562635884331236515390538931338705313898594697937721935877471355618859988373527071311650789616686361034774628415789184886951104199437658545504390486277512976408919443855886639111849295461602621209473990824115826701810009433427248555056933209551976531845506144454273042827728582472551962900968895978534516717493963548024821909561253770563873931438041414641968233535400348866856149909135882839863697063254873429476994986711960611689269797050760346730092005363407313130309648195724856072909783153621239758157940253622813093910998243556000736051902498871450478995064997767666770403964503940900992521677944380459582771462414473950592478360108548817442498290747555265385562155162754213353415206848234142548875067495867466944478845588552171550943479936403464521036105607313823697620811504357194598091930765574771694950445997547039738127849412034978232709352888576362508114700810411995872235851262638084637159468011482807183203920034479437883922055618244805428483427202649897823392192043402330005934956361107452274895923502453675532322620425807731542779859527334236099682992546671892153637791424007594650536205942997829501966070649545027829954855045471600518050719799832733693398732970039467645852496694241710590509766071575105925347250323120454297731931228659606010732701927614279751842216760699531026149674276320308534004543352483448146975785110245007380640388294497889808811494608281719230813866576795373348471003959158750801803464838997679851776319612111879259338734973733755551458667354306440164880831361254895060785464114924096394810185059968319419247812773607250652640546794256247287612833203224872609679764393730604552069705573828593718101290309753544779735752068488708182886278513374101198754920871497129383451839555394346566707710560616151399177161060008691224799258151787531130991577608000368882835055373733523009538268913990608390614796702875116690727557498589411964650157389365800882033754797242124816513896273841766590765559060329264997961787034704956086568220332040251338767695940156157893306188908470921210038877743149963216950498627355045261731731407584245171916816516278880059481510740342467212463064215775630788486703651386934778585343074507986485213237207955578029428683946853257110896167795086938074520231137940750156088409922376401935302475065589337009503289491263565612415867165548623781200991040187568957666202692134452934177420421516034143467090839371143856772489205978034582958858929541059288398659612511055760651395277353889507550111876700679027144227150055343634940519970217024421788725827271856578875306456558791277524141395423552032711030915942422006156015710150271889032254916173207197607245346312396690860558269770664141118154242474657162252557133270791391013030346736657859293276777998367283235355219849638360862915656688414230684078979576033141955388332209897209372756234549014719008539602158576834397083744931307181087580911113228986479628232685694522229676714577671693908743961353314807589988121878718634687236131934761703830915593447219430315907536171156896761837804834027349532756277663773839280772765972868607681665767301936340974906439092959195036575096203255175652341428898199322268538284943807498593885778701601211791006511820969004624704018398508022686513351033769110369199704608951143743099785984845079275203741987887463920941607831089341578414782665012938171962642547759839043533310856095368760180263663842682787097829996399364334975068846382328722807908705219427616932361610512551962312546444496042566488178120410905559745447273304442891701735789567282331581799586833992301244714220181051599598038478128087864081806273400993938160566436382485329359841054629838154232102234694356744264153705455061399401617743057414577672071260235498692762121660156584557634425725729778408000676440181601062384536037812605995917424680544944317943098629013616839621930373273376632433953041532332852518773531918516329213759650837411206232518801210872534892126378793977249360265409521936364445805982502942581036223328894350042748283544527379497853397345568620355475885725679317607709426598503341166727101980886545087590004206321600793087125328181320075483482300708926920456385202439833768682720887458175932885617217821041613039613355024193296456711205360007029940327126071627558934916412892309948078517208823919834042477247288321822816847605716488882632545934576861191287431467813982351102788566417485975798902772067195481167117162686940889098150162794165007649950099697459878319766072470830081165546770562717218071537847845435104403457064302664809747486430548285529784311973207665865957458609171739379185528083040773953592009302341568865413563627611068319625820084135797543152158884529657196482003744111485124131553218859913811505196327815591809107459705628271713305015248086153348722603829158323887587971605741923404847806344924105404131869607750397854568811815639258253306389741785870239056655018164402760586551312530989501724495639788977670718310008290294790878013189706745427446423448961429327840229642045996961546610942321458965682936675408688818820103382649485683557148041795694202145205877478594794988552268859766124083734570567811251259262549713854204168461766925898535156711803665783245914052325481666882848659835846605945167028581077167644735256177282865032136075759815792409748573403398886773913086578692203026788716334151231827350380963978968320701784822790659863286432737376658482840176904253059947371721556512621437201730051688592466358359449064342407486939051175478891084864984208012708471444927995408856739599304523771856413470774497023308807949702564942220241862904020616837929869481170813996031012288086296384123026068988712643875031523249766074736803673907830471417993884337396917146765499837213251891643022353744257859928177157633891546172376241834119884157058771492885221679990921242828152724642441506988600930518166735398008783552179326413752310309540574557711794074716057599422003529674697064179869429174502611613189152107036380535777634057985584307289970172251809157040042725701174339719318172667217160434032681306286032947199388878683608476594062206390457942605930000328570973810535013184322992538675635408021512171105471147485912206961362273343069436720363524696338728534871424988218121616605244236196888608455535084317240392858307446545755069040650327155492331298638331674242443884075166398584367315188664852436207267058485320439856021325876982243472006855329484904446337675029893300814111557838282855030015084065483493169533262850428669779429115868058045410675969929105854448006142940233295633718877847333616219945031680856694609879896631816882254808444754627039000949345129049270703580520314173717699014429101596928270710980203919745041661659718580591208196095021241400145171759190306456489585788796770529848810620623413018640148664788696316489990511955314864264069706430957075600891277447410431578652701370063920931483457480757222532550284546365605975561748149529240916946754431049991532633181238606011844889672925720152867001517894130085139281461677472200683261567080209168045863860170467661826985682350578184252329039886992012206755930291275955968133382003444527588772810425213435335412820033385307322348677327172644709560898911105768291921135295326201915885936638713143108991131326428350172550671203338632502266764799345350400390160258542107755241326814478788983284534372483693932364722130812867493606144794412942269999128601932397137952402973839200750032373314528545972434224751892849685919627249365615824888645577181527282542824323951845616234274807106400561131647730821839527377201454758998417438283302994022637504628825769500027252694390710454988144042416953444880470919675728226735909839026986071292847947005901410213203608511055594600564922639636201365853874533187976520526783199490100097514399355785701860869506974928379963415242068239175166883242573571067763739763884333065087043094715263942355114052120958026645348727078450115471227292603113093172241941540870348392654821732016580358428867094306484542611219035651787778415493753239788741502310203921248904637934525035199919432832134295799096669150563100890406346913275046647059941134016730490838970925498039305182703747169455236220897656059025651621696802872824051578967645366342694730745514527454477185537047648522717716029220609276451652028734481043636197378915520526984407902149121987980205682602209632381523491584063360387074323287535894076467487529763423168656195754181281704286561267010859129021981117664461046795468134161680599821945357797938069806727175025741418598991809910300263277465456697649651837573855867561398990878779685384426306719599726302187028725160750459626524634712926806931411556796342768989064985063903283266649592503087249177368094811435435765219985297667102382304054472601559600906825316242928098251559615420228862300155980476475687444471204216742251890072333941702286888262773165523878459094232322925339000514011010400083794988114798679740718754662197576393124587217049506903502043176239366573748406095242455230051833232933059038679515667585381571215666958782418430599132547821418315486202880338439372712521300804900733085221768951852438921837303584531420115025459714479389791502555357325793097084759442514012737193407895320881814788400817561425312188359228102588642148996501077310817391024050301433682735880947888327706424863796108224066622516596040993465089204356115066196904591171655712902686874218345037569315514740464427229078941608545631051024098899724793873531084184326073740634701006202355560645308267042280500509736596285083964350191347197062487588217823265964750278904831400466889260174721208009825978394062865862830642907847834043662621899197198041905948795780124281463122660858882242160709965649002213919540278683655410717773942696446090065987835553418781488834738180739383588435722458528410073247015944129944078183955798130844919205069935136630032176682688169160056757264526434121160453612527341055988623378764202884938136161483081709347622722056199739998140111393679303363890832485698021448089035413994869832137132553023933894099297325233495495597652668695306224460306760570099978957444669977358695157300066633487151078839834879878163579813733917051091567516643631955174756984966148492292269585986495598787492566539074215497721702967553344661641861730251547715778801939447273189814017605335090892660540041806992270876102452859856743003863396815036975231760427565904966183950452946109745676050781549256373057004970008370320205966130130487833897968348522949687525555597158619411647308042888002548453684988713175887588269458345956708608064063087269468728263035706235830452437839261304741956945552185024940032877949070074758102974698622908120690409583168503116548659369081727421810108279879942349450858220483813517809065343045320088996000279675876143293241574970479088169377500122140892227708859515343115585386955117139262782856882252197669182788888509236789709241678237378337989155892728881207678872102577960777846554416478075253339559977619137361920617700738510218125123981503778120020821282670282798545814822239674284398236875426707412145984922122341226879600316481953950585170285663991242019088719879133474529421893910266492792007111189573039082658688812081491169349793633313565701803193236729721630053451762831753028820831028950835220402234477354928079863522706947362304325015998527914023471932087307729433795934085191856338108808323547862742442211872177774983759380589962200948676152055205149897546108035823151973283011057136984197616236451538061587823037042926513442311707812801406183271741959701439429717664494594947675751982089066450225868169450137885003225454306805010260733326394115415352854815204058722483150377001466859437827718160211471819260433591178340620613878289033863478359673118737902542300228532286593048283378260780028244115242492840869059808202292789002114723866618368181961510223753440360953687968836183145783601880975296268928061787186335479245869881081424429338000180221396837582927218377238172694311191143335322825546595326414447067873852385613930764727652694185022452678201895588909248538497765489794173205427712562863756335189335775148601759360420850719481952705105846731435093179756714219337863530260951380197176524480365133787753564081558141372451285181388694830768968365169622545639899929747766324150259866759774151378940544655232861570540107457599877025583392490724286574434773498836106443324752055461668759655902418661723496803879689293365671319440837572087196021106940822919813546353416194652418089726861518546871626907676744919471815847058902406157131870333159998668380067972008002094854961762203222363097943102514143464319206555516096537343100446546338643852074834542897716386205928850954172336607206434439233815216535108847008660642857441184690510589010190263777587783586279893195459567044771480026069784318677893531166749657226320371024117403250177879437657693211839278317012029560349741869187983780252527273243389083272807273750136334762980062765172998666740022055070860263721818270712113412122339014807129964100042188826976488195479391655461785984453953093115194320372517766828162419332416083854656533960369457372620469254537330292691359275545214935295643555982958832852891136350402189554139066368357965444330107877748709460497505148472185098552026855774912303619916700042809948456037301575427457411374471992536070399967135174003225907607134115240184526551163815537136813457672026411881272505079382989776130629889075601739193453496246998886492025500973432791200371316286703616049235342524780205291157407114363246152718694738557725410156548268354160400509918485969127893306120032220591535703432566167586186202849155472953086349597257955619992770399406537354297678654885623057297829496521756109418310750835397392990633880879276301279997493327033509589066292232654203226061959774438105725098733423929985350804648603628203768849251273256425381597152976588241088652513279051182439768397119277902101628914358259516383024437434097142829035539041112065754393971668824988493000751660210354499635510540547462771519824256158674362591118733141366426801651268975783558921255059632452833375809304501118327241931702317420720721929681101766551279946742948820650046762449950154988636361097753448013654272124694966512854204779695699947200358293385423939506273492086559364059477795254788921183186247605995791392500579502696124570701671270528009660068504329713026950091629183819772541120174150850729103646634354930698862360387033090867745205496235806744759606630869972665733168093918233578851262178154256246446680953230486744598651930062127730120631461863046260730147805192057824775480143416322553789221470259144724196380275299032336979468815903064341998468936049251436350831322063475489517239477695266013585057779309797091121965954819610210086727804635860830733443930381644186533735545025026041777797845561695984063343427759132574187917610201268625188841271291807864849528152589863263784876606685916666489952739144380652506016508541578556964988816299191548950917666888215506886612221670851554991289327372801992826621494638551753641897006806319851342885799644860181955932887883592929494331333183601170894451140163325765279520667695452445362113837950732179874243281758922545394227137568992509210230388555015251113817926919952259470981470952799579343422860074411946308952404153338229355742130915319986009220731298846856395600745844567019979165368256534125804450562078251977477623051400263672580030552278069073815522667027870807360067544259224984154814879908023410772259759359042350943745764379175416174725052368526132835897966983857824722240409276242448639617479516500413809986291706390684022873479630771452905097528444627219167891343033987720277889690506493884391685017956169307917654345479269374653858643086837412498401518913703756129270782630247680935965006457412402598059981758272619392650331496783571173646722448681063455122453259310642645828470986094954625963592120993087841233559100263487994027474911202656714239923695039091479114712205170511879429057270149615149899495291123845827365248772840503046950041315226482163993456973692204995965437549245628677928270512095285353242966226126829247462322554944615499499577030505808441688484076014639193423457944279746344404804700697661264038446563315787644784055331693931085216153706944860979869358694362480867064563410666868728923914440508943060668977659703754077591451938277613427062969541459005399600304134184628461185606716085012154450665292351351013135521892476255303463909283492190794476140058002069777197069641951439896125165719980303306414060738748645141145209567807123574267436127490370590023758324059028234246158323773144855658066166343986080546334539677524900378651773900618147997414347620316171863667830345214352082914655328647858370829798201975992349352106096069386092236646866854969117980114160235972321396351315390333254257104067887733049676549568832733793058917979676069794293639775339560402842493745349004959357554227096823826555034178467622652538362258653635984937593455444977467903701943027737363498919425950400047563386375644618442326359699564937391301211250294123989446625770397575552585050892350492469274034484244447440831162471302996175772515833493180402929164731876183213754983760247222395958410295184260834805155161477820962738162243538454130078192282503771115280081258632584758009685710167248089634829944437726374433464221687947682648405947663639887631748816537147859581719954771788803259479224867203644861574834426969852410217476542968595605876075486583424057052790775650903227642146928425997290393782793760008545679884059347031906637398417839644985092073145757245296249959796901377348770358667763802960915407053740228594645284962360126482109811302084311438761272387232517055090022697602857608566393282880945130745350182197877322444957459044935029738039059033171287883259988497027307575424403157993556835880088648164175450527372947351413039740069351980013664070021119201954291609866129400468651362364938320315848234297898486837670326851318748617782759136475735702818438289003531440647524975576332555920348620369882378523549107953513546575474594327636065736740635734341193160744896316931068073967785446611092979277856464656985992918994359491840724973633223809516447654037454877201568837844962225600936529727030494072275643112443429303083936097145259545378855044112640407921494484741945757520311476554489106734751481848594150003475346858141431496085283813965246095593743466192069864924873326545439353957888089327201067293817045841469399772552777789032473501704823935497435629790488925376920771133682791804509009071917035575238205830584332351839006274795029020267932316423674055628054476751436016074539244577259605292706593389643573075799680344852517975072315225213322375534386994199734986421812877909556649456724754613119124656229852702569872194800702336790169108975254227032822047187953938738214729764160610607358448603506321406505470090622717101512684061789685932053255197620319454604326457239887632998903140160251437984553646605471494088669350975664828809552330115274882907334402823368668325477085641292784396411879776183903801446008798578192150495344179622859847744347603833096799349864344602350314421517114382124120390102995144248913689450982992401519896255104437053725760120509141978771355800719168829687467778234527850685583735158937008050707998823482080942557494412965616738957854274924830701889838872994112936533731740063311372539586500223415935007712380292650321747066016985378310027393810194990874234480398449545196547310644846391248716953760964616656685487931199266919026420085705991814863439552859677094352578228007346159779473777682482178395527828981281610478595085866990142620395786711845994080501833441512571899114967367271843873300498630252499207807102480442539617801196055081839950312670062484213529588329222243447093185209683635478936685737467461833110674163346975341137056770467962084858353053114744561893750187556523764279332715857838093848930387961019339956319129187305392159171291121143963491588522272699073945804620877341595277108998635060705598800792469618894000413858650657095860062721381346580632299509372626384631100567873761532955787951926334823259687620526932075112133467628333582173521147682307194522809436277703214196750625702140455680845433391437234633683039736676638860351087295636605975324360062939128311800973398996769898635101463603787299153483340641785031514906805122555682667834563215151115243705241473607239312357860569101614068523724590618261088048249912005203131058386772020007279348984133914101926012976095668089000513198198915493518393011357667567775257418809788782193233805458438637728698102233571603402580642334561795897346973911162784715699715154452365893569017226824451525353267209809161833931569569707522464979196951608236832190978273176111325299324684303844666161691309075357123963450815809990012584968065126389548865069966643352496779151249354541484026829694180144929012963449750176356924493472377276922934201835964079055838563354048629856478650048663693934927071727971404588800400303790031693053293030920124723137245927263615332170954554835333302248872586994658742100583599749994196423255045778968400234980827801695230581857655039416398802082335906635060792259491194975973357484166348985308945948162646129533950688094992699092494030026059474566418814133189229219243767316270255883232102724207007577523041358556293514764731904646265642315602859479579322407936975560631247558869999533872604117466125913622781813110773538908425515202887621197525540099447494896781213452198007722281681112038384373568996859967068456640290804244430543363268951327566039344863007609120529450127419645960837245331082293051297020697358893759066120400567818129143281306084257186090027231278084354038848728451864233817302221624026841784876500210995421880373526836997742234927622320530577364807836558576162894722364683276809937644429398237594520421428765113078494225507856514039495664594433690177708405703326833148551003325022105268061520966207110692737289362167077260276424259216794947493454655120560593380908390437567099438704365609438263022483175736397064913391465178047911246587328932400217998226475144698947320718217802378237472607426771011691086725681947993084733749514398545839538175482285441642702924069304257103798037838134338073273416159641821969776407606393916286838625995181008017820491145422448620253478198919747285255285714085624509507148226736172508115543949208469452853642450124289206674296518101894008566244113705351130137384721020079806765085419511175627358256052588639543023243926753778233968814978428623221305425499455663687800897625151465037042815515965980920615988971880238845014159299061643952374503410207400591770001278067360087767230558059560376667003701395898931367774422187155730279224469084494784036575549668380449763178393651328990964442221815005964416681915498168717169459931395632469251426609402427382148711653006150461668919109529553147774951887312895129308529643160892400243619051918251208744496921239590716057630246193583176913216405118536915096666164315554607053562995353463074898452345628695831784242886395342890133497631793619000397305876845079569804799658015269901861632341961317500083142755923175218875502487346658998963705427568356865564367927268738536762113561585520011262492561843277869909598394170481322602445662231151097925395968227636539973677706036950009633654767862579462419499810417939878668503284883393347565428711468788729801035289991610688546016292796358950393360434812702158885296992743323695279966109926268503936699671823094348689584205583454334650691527262625658281825740969542566814073508993492440789771167108324880780508120125877762498681503915367486118485376967954823074272334605792049193380098510029923706770998828166591931319183197441811731642282953467685509127235260873933091554491105241144420250266165524486068605307413461138847724463824668433210950263886906698167474154546437448557509143273655482667181774672755743126401799212981799449283221273750609005709649444221801367759331259419802188056087541824749942881681096406680688400157768161975561528215509996337916674387900519767371972894439273321496801685687531499296328675012207959514855379256090870430513184313764720595965172263351865566748258334578992027994270922447413355470384068348665082607552331225791319745599921830648776968579889136076589181331878417196183518607064856191631037446015960422448179551578059716838124100703010309539461354409493137815487843978689653091633361482674226450640671831844011387244907685229296099196441088058042625508655728262629079743882437003840409857354413282292295927846670508117022069824023188127998336386802385895946766525134625920341833689527683808022277167202822270772101168131452411892075684474424494759240893963550049467668403772509357291914110528233818503611417608627946822199363149270737811808790702525466452527215481453946158919429039018669283076778052672727375576571104259918988297194908218700723833372322446360533734672905007639547807745529870894544528886431141526182031202330030877916521199547882511118944638058780611192671110703464885751990903704029069266598542512175004983843260813224833363642495853427343332650440074173891589058422573899272007985416146492066132722990967807533067445802800990051956098944742463889380680809567576263553954609582811899218211400352000067884828984755141295297643735080033764148781141657020560612796555908409493748952884900797882256578474264423493324104765797549180461797766726744775598630036926095619331445104614353622638322693292523033261107040039844199127852714212332771390990456787371204259730334175782189815133104810778049130817712183241130262905393627236468206294479164973709649459686249379301333964249804627967779599676903038638906350905339164932379993705250816428946582033232106530302774015741212784182245350940625738591993253573064753263924437453030430360701390571730204026849587182764748476089512104907378543570882058997392351708158930544077061702673336193087993461033460132716999058740035153388229641977553993981045090242788222498918882466676413697384767113079889817937031837092479235017588861654919465568113907796115556461469798682474326080933026518062393013306633126963865933370003834867620680715028951471826840760141341689785040752624909443140762273191870288001861931747672768066170685441341220600318522750612506522395229132641405086377138948467401486874147606171775339328347603814999818478046793406565493066804813441061400218128792755845923133535594164334601506906709397152233940734545414591513669949019888076219487652466640428007060921922833501951481885074675825345172115727849596934608631963735983044294933687544590400817882178964575884805531898947021466974026828358209563108396989716384993868569027218887537739886169056324348550671751084831798346166694998713581939057390122253942160592567594301237794980040603328446296009953603597575286734763335100610792693390638994180586473206740681307208691457077410121854311391859525900514311708108044859540483239837671536379747334670988209686976318275451201466410477400421742821948125126908825309043778980038977220174920283332902495354932771370314638774065380383133814928252432952001947306226936164922420330351476770281311458545060622579935141080243295316608750767592391932208610736211682278591874345301142512577966205679669929871768597027204612270408378373670048653087524508716791695644594701638789264219723374227204273605359322155820398374802172746987040240120421357377579660139080690245922323662073673922803653055805095455459990840773625517987307916760978082010504644154979118985022457354377741743074012506007777116863576527593679947049910462070436501224167169178049431164329236156226138036948413441437486275490238877165480089645782382753516172132896691566779771331506378659102590487370203324780860717799512783965313119665589871162114496385647234633232061738337941501501937003953307521823011206744872844930702882888532080565927322262892436272114950067344339414497923934240288748424248801194503786447338220352255577418089643772602341835010992810495619684218512514157462808786672593059560868339571405744723989662369052666431118361867334480327596601536479577924247469887081433251953714415767915519207509965607882877736370421819909064254546620808375863620280778366927197195251345141116754124944631454843789604469666614269912580420104090028016403412994920933375655062273854671346360184276694529801371937178171977493825304092441205129256190293117461533238192714431406827965562035745538947092429952170687544877203807888219004706764347433663841393094795039605009487033791492879825744395152005562862486479630341958018259211964983986591213653408134555528999891361803892028829451770425699544930902252046404979383468178873251318529784015354987088145895423429478608436906929413382444448424299614109363496681139898596208103607519451311572030408460130054228429849742639609180884768704639284197162456857309936423439899392050888433624872384659491219598444485750096935433828264478698525126084573130239610946005600913929567276657521892462851371983846138269243828182294142595037833447280041668560415802678944087409100793373785215503235749943870076551461743025217296442407789100787303784208393041519636562802795362034954261821006189770106562394185419133000582649298311836284553084767692109725967704559696515034308743116199409133406898450702276202632202921135587900731942137745028577466353357325771272582576995215641450995818278172640251279235758432903778896145550634923075659334754720733552502903796973582760623400184035765557449370351304365032860067240850315881846972322638027311791738384903078503425264439257367758675476907793601147060898787388350594872622282093867307528415489304291888982895222231886164900949433152422490309344313103073061481537579915495968089975633465899027169761833495295605396104709708531696659792267801340156300021979715325354528866830531521408986045224467548358209737278444200937931545108821075720608830153727966544329561404506798962300103914688769715420834451766901715289489896086256316673806627375271989764435952419570846889161786633837536036170363820221997229280307164626408618010281517917513851934029537519069557347055624691729917808773625187698956073658836694436924885797319815413796303249868798656258266156078142309669638784809091483822048034534353895007741284819794793564860645820320612445953788355210727903482477189908024705355873362699731759182816184108648896216014561438780619598160434004266117944949172862064217397546470977479823759764901502057916805679055492527155624075774554188641808137485803408367607580115192220631501030144774739035134916496746064265931686349109980885923120417924604892616081059864335791508101484225604138525057946659134123309638516439636474462986803662809531607425141944354138767336485168462671648779287653620462038789372822946991730595207658868055847456163052062396549239637757307757950646867903776688611563649991375969265803205438148097583237994826505104848580621319359033854892320015499928010106083987621085555436543688048428381956108346781876462113725604580041133581095614237074063215512247116522020193594766025379997768727330721400501448665923760684474516085134582029459216466453862593589055911041019816987098526782378491406735076042487807764959767293344871965202035456568373661110180061502814912947325450411544600462037877967597087633776866483284678766503882353807407101206895034566128920005410605293509308685396245117291278474067449358927582448238683634265340808477643141417923927592718623872251821627697771376858010380798968635111780394002578407380919370442932574896158303907403557409722599632230415555114670302860145481618689376123323817611090108426061603471057355039905139908513117528851006354551921410327116389443063233994053816874827087478880340827643597813979925276238069911455765133173365244279826068244854993595904296460492557609891934826633428166474747143683677950823924068021902137153205170306181544124519743453954165509514122703861505920148990492693447020963027020370558469068807479853981911878559168908106326750373202446451123738688814640986596451947394662870989841536760946116413955499641566354624780707389503197715689158666890434764739151579280558271509035570876040320596186161851146582367822259847424133345896874741799317744947398029714898437929341913176948852343660127678163783570752338852277062077663520454195583015270577599271359911410061468504833138974048538268352870475043421709081498618252670102618047693967149250437937915551513503080856018329132910341563863060495339325450069375450013993756249915453309976509936669195071386465732660541818966367155327993396683618737666722460062196616537525562612483251980508568185728283856968886239186005738620585525956302904669626675234899886885466043924679213551425278812096940824960267949165490171759228259412329174586391326266098377964074013910522829908404621927909805394369615271770574812261408009563350439288462925464186900146731109849829385430186686099494042767993492031882167569144914991544103340472511824690017495353677152463703156044696442913270631814041033413963461402331134876684322610632077673670303589155080019222657279302256131384360349162676767928659984607021917035681773890431489124013726346639664896689996646583868855522405287708676416111478514901681191581700208610388355417604996404684874561996584781851279861164302668476646456320633565564572012040256867685039100386516794631801236204618979848670395714734126623175061656311178418159041300581063158898174806137120896805391737987773780278122596420314333213736716712705058525115571458323654946760702273003415583480531871145033452838863178853045927013044669125497016608710480505042653725517745404335986619794827643968944066592453060363295728245342892383001387959238585208101903634593775241868215372401320519091359214071423532653030396978756892057915106000014997208503928549380736270204703970574619964175031235263785541120255347997405812799549944422778170454784222807338261721243668149395263728382302860006975203608947949820257843215328355677588224124861213722426134359246063597607750331090931265938730821545105535748504201520474310117475147874973663641030759070379610603182857621621039373770602181011785268877002579682263702773964491689963707519633897225157631174480385510971036961192934383954401846193046913826417197636530098801768516574936998082494740244862151515587186470899563895971615035512263179547998254839364244431039808159647599625535000522003946831698129356104608713246505491311246429749722833291014333895634281639447899198222782163333632627481221165464340772698938786082978989899351908993122420148701104208580755260285864147763009307508083031374248030431412095957328956520037052985605958159033281704558150771419835564336252776460058869408074244257133958042909635150983450285104379967882642479295760740806638992146262673597475807342561958745515021918782872383553928968706768347086657687475044247688360919815157247441704395757958154174045089547504990101196289902931769688377811325073518408034066793491662381242405286377956747294252508955418863922794583445029194841915892192880029542451143577352364601146679596182557205091487796880773918314710734151955212938696820043184510215807140448121728295646071414691572662702414206678797205332683580698013984972200552602902468242934582835985649988233345714204279908176323082941505567622353424923201226636788279028988246157649438485893469609361666584042056934747112484165024111482810119299727671952316039168352164097136990193545926865100012750758514792026482334866389925903027022416298547514245856126060764162279877543037832115866539721144341670871568046109928118584957014391057259115435522079579338250457712722742219923514393926622216680235504578131538506758118433967421299828157833513975136322682933988207158851618833052762223312196035398366372892528540161435272137918126448260156325380214810146175705936320083023666890733775729827882115986206357197322063774446280889803943110179355469476229244841639746164930853370255045392105329446275096972764980182477388268667260105804167812805889089370998029396559601398594336175800682587203662705816439266919098898079334751175226069705288498033441222170731611043625545606890797010082319782081308487153638576788274978395220295692659668587244447969016999951240136619987281495747868499743974102662435167099281728049685517723303666307957846537493446900338586433513929942847426517118642318711782143955878184369307060871942549803185427086653596619175174166196520371969580221789616559365438931453482361211707548685403869467447684970746313488010234001798952751577414042544184784529879671763909283658167662102163438169550832368715503536492185918978103400854913526409888699934782969860384715854995948950917496306760554358058082615517800289441774981734358892160767564910122756415700272262761660937843452864739584561427463859810255780456667039625628356196650487381786779452931842393817967028701435316758417216004880976598919210464375542067683917632176159510804754232605934006935631370246968600691953371285747619427885876168061677514382239257532672081448565978685730284378904441091391685308793274057824810485394885576155233839407889443204133830158810980545182058249768163626258652384401060047734296237445528353002606465864650635133539396276675161351824730780682725638030598783092236678777992714361012471710207303173224480654208123784351523617316029500961137507794536159246753911648762167152474381441330794499295702572900338718945029425483328718231077631835400981817350121468180596023827373401147322298031583108543474872336454484031396564683143724390586088208750325003094696134059342383085539539977020114497066787499345540637831774952252566718910792096686283574764123276143266405419385707765422019488155309809172223845200538848061665989064739218896909400497860788501822823492763175323992097599031305975510145414397208303719534737446792414401807236670881875570021013729440765979968075917128052948687087385469830713807884700893994419069656550314714838252593455319027640179572126814565734949828823716214472929799391505498926371544727347026542517431139004378256879942285207580265190186785367623557394172701210069797760427349177206903406993526805787497710808168983088844090164577439325424446759341405266257159127260212026752491862395583515766584830926528387401615938022877168333760557391638184423479298614072545608667417599735641692726243357997598405444761367328918565060233392574961194516615668200198618360338070459699520174589078664325800820475234316799272353382013837198560683940410581772907955524101663255627987762761582909846127774297042170966728213446565102466037207145005339983789248226702057551451186295331083710090006651892574641996143076737925574011749194096881646646095217550643758772459326984483017485331716881338212594613234031477320480266714930337771840161581752852908193831173575493860071054126361605498009757436058763757609872182795395825680710130123749815740399383605890678149904628621651006905084585446546287734919690943675843260433984713857447418335813636726492935886490803477293873425849323412787201355477768560130097636101523158503612717210242877800317744811745891617309788528303543578019136437336116965758024425897468106961211742477361932834893317693144893091156725722414351653694164269832007210255717188169624589811915370338319666189196491498430254156334176257166541606404765342043696512802541390728839317806375629446904013198246345885255473647860205313863722103875105220557058558682243545985541598100588781169275034541009158708553555725543566332388469524560974001027111192378751573165691402047555092783230714925504527739772296169886522032061668384071128032509720752864692564647339672619323443775088219081724814492314765810009288501901088619602652229931294971388130636604012417317380224135617292448887605459673956183466027964064794585732585497063420484600267825492913266641958378151037135475701618714638297208275235164455999062275294048194591446678191822824366346683971471511111968246932389291663321593886776512725517683310435364808126436840806910937185390241819971827455955092131572336327138330184661620572966566599033707290497104458964330432396310794808896515906576586142226288278589252557523162113113159525116812714125276808974770827320999319555916231854247998218356294854570269465961954080837958929038643334532308753173142090101956125737084810323916993786257232149412305930054957303413661162392986786515695284274996140752283690528911093156949311744532226599874265960917280271025510139477629046265208154820040305438207547549321679786134413292761358552950517376468910003576318664644749347905185254860198511065789229130912208458414566218258100083022584975562444862410136251734552339786357085514684248398703540893884413467364408312916363884629141360952865361443036555456770828001685044979435643266672831719378594952201988959136042021598180334710634215185093727888452629291864025358386364149068322656576117880974388600427217878415897215023863172364204016229456301447943578345084832864515662463203496235058052324787400231853781595270110149106421822718835412828533262360430206196787541845345375272295621102720280829661886519725016020858921097909372581917157238270427324737060732877722199338216318624983473209995559548355016484732705707318744412977627236965977256662583249877812298161174354112496582264341243097097642787868769849911616241520472285678687693174259115232825019067486136549196410071651980452509368793199814880783512149060360297051640178327715960229052596615090005923666708661513196536285442003147878535889133391551180469793800530156511583841946069271678285932753285725296777944173635478557327239751718620024298527043170539869836888707564191689802578421598146061404175745413273403471292331577572369871515135238180492746575532764731988506476065669475906035452845746608825644903700076757932892129522332560551598734716754060342743488400001027992847715077832524015455772062915460114295406933195422045066934722255932905559362122622580909673485253635162167066403026483478980244950331231647413354229941894971682786619142265973828557004760997411084212368489155554975788256309035246782087771928376749725371588087247835129098161862795623801470391837310482797802270195494179982841742380965606002505179206927229855278136573042198720722564198852631955380887782978728877514250509125902345388574645619608107744788128777894154828512572647929929018243947489888936999564757723094519959393072884710771821806816868492250457605952029724655248115199861514512677891928351103150301764847012645757888532797885837325846232579763054520769706833191327371641648422017778480957889691489672675832600835200981959909834602744119595213004849852019808445193680123469248006158401410219616382918881829594395914249099391238275688880808224788595047919712719836207017860619525191804898934095036804388585069101597389679407441227005501991860833792378897310333551143500545879055445489239403912807140685150621458359263680590230747338804778197030254463025109384193787921235722950459709660073115501461840303269744653799562153572842963093354793888057128137195744072867863821758572643930491727177480750007433975650958191571083163749254323344485569045929808977545783399695030756079552733840966904892545227237136663211939994508585132347224017625937170431418224487194710292811054020770666526438922281265535119103644836354684724624506589121444033238971691712183113528790158744034527858616125401805520769311213134205449011340960665429358966417032851949081648929685569006757262406542380631764116932181856411789144895341051137900883514357884458261148775103653712017908821070555717815666022936947164777315846530292488439432789391400909597227232335734513952018209485335256416587198870689155236305091678486384389435305400415748801681157087007919889167810187345130257667299698390146813601248006103880886603213691010047193981762830354489771634673746946484707472309119702778229350647638380326200876912435077253632474894662451880768613890735613980392720477113282155905999954204620256407607578833506950763457936519505969556189844746600042418564378198053890581795472552735538502883369074938266197548742901972480264399857458473385145247261807268044600880235834943762587970534705053397324121231001524753518596929217265056234364766654128621741544633451801063679257114285768093905263376306266744456496076474361149627123474289917436732658887035514434072725966710104017137906779755057174530124147622137539795422464156349672240769636676049088109749358816834281981897518811872175172764427019643784550798229497572216627781914937290441696156616310462870594011214435231286151943962407313322527927499973180394014413336091369010546502384395113270835139642305548331632853113734474637163322726984480410970231413024230904963516710818144386622092701905204242942305937531559096775651217466120129146012714271642589948727622956655498250248530696050040415946883799476555703227025876199944009935920420188252962172910902542505496029849749893254299544116868948569986001063474490698970402085564610976451628988335630971352262227914789298045192533353981441158005498474091359095854690050075309801735871513231777697691874273104834007661758906735195594627402689873611996955356815479827801871138345564527485094295022785131358523861564379820862719885627747351112970281000445185355892571618379723086591378398178632943494344210267715306861608432613880774762012550886328535863218241172726994167133351829686204321697072184199361445599092429829466734613233199365945680399652711203318076289913908735611729555797739529228905992976897532208623130633332985528372486186162011940049757932994161636130949413418294027116360410114578733430781968049327418806845309764326591568584267542564770283328278272253699921283788467149316428709539762027176087796998086671348666579421660371603792008286011413027341337604604140932162262287861393362223188233475228619714563050769500797908603240742091099184132646024891744571069730520417502870275407002883293873375257021137250707981886473372142482521581376724291560166968107055577420685066154625143020973163484636704008823575261037174241584309972723404141379655920164337799321608067710666288473611283717905158041089499356019729353444171963742727642262127034332676653976855625402320648333888072629507083308547081911430916463169257793791858896237642360788599663847440244734076505576685898185676011870067595600497891411138309350919135373809958963027973647553617206716730032963609187163898713979741898016953338392124073849666096507086269808884666664796257652007297516731404137522088331131083049816316733078164207732266866675194275484159558012359540565917155329315895395369358352725135806147397805002266275508894939330576308657293554746056390843874343289277995214045279744286533938532620914766601168068677900888449422263895063630433222313323236917657354146496457732521843260757412016891994604495334374017994939276901913803195130309111345100954881330314269763984440818673067950775555671451829413071702101681982943534470454004243690160382469477676429236124686505699425082335891960815637984661170307727554621792568960921127793859253024537719580581960285442220029552281602533674525341497926995606303932773478791462220441009693915330548256193055983056926356825962841765587242728493061903154409387254212538522620248043279479956719013509991994208307184223971969013754464672059800154383763196590267326490766563787532867681401040216285355972959265677324133046382424107163343755440234620041506326709136226305561930343660822377807653912196230513304845722443661136797855747657348179456367574325072242883073982281358958524646579213912843610836029548691499314685946349731151754787125336325448745086755813200068236544811850026336741806007418264388468656944812275010072410234406914658279707202832180144835641834782325700865583921795862998734407741223407587783620259544240043999415924727785043287541919636766432891123656845991355977353034793115234705688749863930187257810342080346390932992157078738130063962263588650990378482038099488592554381711745906362870864313347558764332838628666420027411562175681979523896969676849115970686002086438377266232328517419880990951557311243771262667374347266392053501641182680927499422330517140834143391669320862707578929587794416986850288970407245331003969338795456219307353004362495475210780170031688156313075670511651787885070569916747577980440558923217262642410269497591632204823520133229954129741976161608573818528579563205060659646613386744992191405475453167440569819306360245321668892761138888150379149132934501488134548692520774211026744440544254102086797786420898412585516492188885277129741795666220363562192523274363222543020191611190404358353245531102895779632567937682065854117922691860089900614519235767852667080038176398679769195332544443213210256161373177441311120579710954740643927007602856496137191264717827963170533202134717730916430448386928282480719258654159718057406747646308961995521866773155055435243450868495955567693435743919523260478629854525899201009285762572123058577209645310837793420826742717802804421621633268858124221643950462360845803269431397284020960608897956225938041008646582050375838057819206910475858426576860628040487381631065330497284386769272204357132167580422154003243768432982483126432130178537470113739866556205077123356938320850146083884632390485312321067197904267058696036445754043053016843758821610250090382807434096028993955208388315252446447410177641799210388208728140703489845826868116270276962268804583342380854228071481978947688796786075691344974472445915082891339101986596830491845583960585884312255856709759068138701996122161972089921739066398083643777025221491683339101606269195855158741472659181193675596265265078035367795990266585030311839921193865382357710169984879822847878508730854824376945387567173003532784987973751393079839751449485093296060909345492716497032229915282674544180272221085958984554356813539821258705881187050639943025310831141046853008432430086284787132861397880737854632324888319479049409149912789568902193069026244724394398557745701669616572712590030637054514853153129332149768852489764903675473423039199876286751687380149569196506073365997678371357882683496884762872028894981785305960822075602988401146005214748846160377027097285341638393167354219812982413621141915934590146465283446801825208684648579390587674322681344044726690750685516157543013160433419959789999458975054105289111595497976602786662236362466106815502929763220420463583463167467727254277698196659161114215962901647296065264581784622293677892451577998958805932097454268305220984564181133999598851878949416111861305977023035542282709256772731623764503280990547738343628184413048457595279584948122273368786116656321015947096163140266140475875913861777893071938418002877036839991004746057231785997624651026349491284427784783266573879367318340342414915717157194340009558621941383740245335441327297424479774994813889793760189120295836113221085141054214973299047162773333136851576692144612333115004424439468186194902358530991349493635203177031200987603690392166700980895751218949045181423653371369490413501570986670935656732908887683999800085223780576238473851840143185845747671134439643760759927273590087816197174888498803295399979792580272654937769295027876726228699190085613547267919388752593305743046825662052011292793134870218201704651717437550313052607981198668156546121949658848637305621185786434813952752084017159211742918632887135831445588456942883556997805520853142519484476389602614235728277100597253652008847150634823909401580538229108274995062491425882572441187514146300913917902729839225216907397876974706207828401817506087820603776112599662147941888586814295248712372965890755271296074211677920931874952948436199114554374098407397057780661983591012193781886281429870100801174393931084410171992544784960388195437444743190888119855472311387120334995743590684456299150010356407965904033268842159034214360650096198071226626864938260947091322283891466698874512839556043222018996676142759066042709353360667044473033278055783336177968435148915508346260379169342490736303959322563089102290655249719837033580873593436545433345000680456174882052910928261746426941402405978481178659289477095189998176107189074255943144633825813029304970998451506389585611609139106085323960687257775496907697251495287295997251479807251173371824284602790389128154775546362962492647285786996894351893342183549742207541876584649086050254798817772603643584886153768212127901392768807157131799735466299158695635648402022951209619011034751706748774122161625567674967526366697813164363289497968429630810997027129654911718301540167752226829860967349325482796787508438822613640105433745883879162836250678493154273911213907245194909434793365051242632593534512227202369949900036779084194681307228269861930528686942256575080886160545268496369072817041164340284872876634563818241372812537074172711294745493238945096347008947364872677282585997507737455900139260828494538873686346912988339093474019111866674645067628194129602474081455789742917110069501327381772409378317652350417634602472463301013913893145205578763522830288218127876495561887412965472142537422894554083469983485769918181543658361470148767302496325440940406137792689407816271618167577373324453730684434178247300897730951631403279622623443908124200341376611636360108818956969034582700470500558133013090385330926009326501795631741365500841540556835416364372644233949113411257900154498488878110692893421498156243954551115181480094501045491685076339889396481156186548262674767092044397533227902397096076512542448063519262311581938604808172189659980349569036499598692224405550743444024738243069081645071346318049940770583075082443314046717309461327191296327207885505731085558762834856328030706991224673940166028542389049484589261647146455238089788660925571445045163788849129028556958377583584673888818812487643700415137281010616193880791174594687751143388637066541084371305123793752968777477317458240459558383821128498299207890721379114792568232897832634432579333789782068863986111944483601317473984215267812801634087895570949079317908416197117984728765895433111543022365851508054937136213727399224628460821040706102561386612090910268943174540472039957965579704599423959557700459591972699016481407771162494567741255758461968368501001168279781837076333885607050599380335701725381039196559058927826750926482155617494528248074881229025589062282628540887970840332120302870286647472434704917910338469890107253544674200905955158771020747921227887691612790926744408362553066265683300960336112294176222150637688173376492144017042734686921300615749613040622788681257700791466579764648704758494341198895928116408250830301273782604025089077193963203845024552732431294092498733759396416284148504585505670591246804916790490769255883628589411909779191504920682267790064355812341912751042420876280586733174109616920369138105183843389842570556820426550597193601597787442946343960851415150085092397667679539080581518993932765487431916968969041319497807080131847040212324179514603680265997627366015805159627084047470722553084256265236403420839949470920013390978286903794731025035727761125263519139132272524659009397138163975462935089118579017670400441649622645069284914175652306834225010531822494256988049578021590316176681093612939515801152455614195708070557809158050735231578376657182447961154798050771779319487496869944129079298194622940704017865887707982387553767335024094835323055971347434039008717509160889973416613217011705097508527500372865653917490891866948008990763396733184382456658644708497965426548678989639777856029973242612228787325793008405769166964699194035862202933946070084526567711187953356434601899941670539414378379007080316613566056712087204315757189618540334553919989814489354797815211502494904932735626919772337817556766986594530006888005103987572392723408330386617435661846183020590253470074042386717847566896397369066507546625838852963770716396843491092076305362328950780799791191274621952213558381239050491984870533931541028547079366068595793415638943022033568344349890831002369346003259515866158849984670669153555755228308262750307820136126840945518885630811998083399911737552881603440938324751731802734648269089222583768527623164890126031585376619989618456076065248627996262203073641838091092901082351677246196505888728707971252601344178992937503450284377791427662610463194706314884989402787423009253805122117391570701259987011412085694899314360964683393175766006295331562930282166840893925394580498867487457380275736793297089518940080458385666771207834894830513388593060718295814350120574203972133886798926560077655438122743798843858290005735355766563739133049181419195369174016284381096324275005334666626758732015486317782353916064622476696120305678638793594354798498870176832358615455496038189163388767912708966923101583012140809119388446264865627330110289620166757660864436152945035019444478351822931208610868909256638421765894188058637060189331954086454039108940769687850944210640265567794999366222785631965393507472160168049065100084062883036576327817585445652799727836346065780772935467492765086441322454858912187772600529493348996807802655488655147174502029334965804293447678041105942827923845181116463034488084704024770418702539866909512444062249721322368818067470970021069317984975728425329458601579516957214277165530713212315174595450844548707637008404949668993288054958088172461168813514570636582391355200466039702670488061042730379853898932914248720534211816120914831413718958585995136655913466938002400623732489593397733937416082284996465574752150075448952546563074225170823594744241165286032166060369621934481874721560795694823348997883269744174004376596276298517514683548517043963890086516942401250377877168053297625890132668926455496232545316472851193358045487058599280491178871397898791806447035392550773373195476148871482357171819748491754517515141164531950178578756316017925050437239319882635632106083484253561492378991677440319877540908744838895809921316043289320715787628725214441530301010139207358985219447454587006355648169893993919535095548168476218870328512929058427655660393332426039634454621413210540039600544583010260226311293777437559478284135720678787661147801899337980753031517655510552636325717778218327601498782528105285382321579910891283653033365080230167969320752069984043739636442291504410751556430119186745374656786694625509337744962197945745825189167781432884346841947912725112226349961263470902758658149871123598005630637573206645073575086964874836156879033926666765316031401050832917842145963392137864843367288373390228701899561304203110691939383793103214859284882312180628080008021125221814314571348092890802896162996412600312277640584576063072663999356363903657130927555441372971461793902177703017000336499312273762582506790459740537587958775752362346969596064467976965408383548203033500858124616340081116252392924268935987789905856174527739723437065933573203827524218908611613433372004075287373888671877271602110554621285005994629091287544215950956707337995745907939107180750690687602692333297006213285250788621709159894052999916595610172851223842346425825563759291456157293067892395536814430451912200875622816329254829834975505232485796652107992563620883663899719643842225319777229024427553835552812194131711416384225653319628866483669635891399295497918455045137191652274169872072423414787846794905330045846946546176318830485104577251952011571560230156694061424749954891205875075842766347372679099165699250607687894830668090283371086696500256559490326254866746461569489443208573718903262114641106998965485560077442990762595625035712554308115133959967166733810721885413304201563039418343685509445127800622967247858787493146261198118809938682230805752760821309122792895581971837530949781442880957412223851571314127840822446485186367583205105917577314569386343686733214636526397493768839979191433079524837393784948706819455034871865231993727483310680931402487237994178223773938159322544252581084729436748557179603333548243546020074322650257711618643174248705020085935893149477560957667113376646003430305514791383223083976877267527667638164375950960146821319015013676979077406307487516717454565668192042779461453089042432364557899512701010687628342981148922845115387414470145897190759388310485043426833327811130290697153527742087705921114215112597230288833642971281482527641979906798036586852555190694792971852707953724917340358616771615749955426029949407044508181575813136306235900104553455434846618651260124897077820829577086549398635272590675596135548404960991064041409804917540986323615200843896739909965369699944598395116963432165587797124841823876937781745350304680493095153180346084657249993465529650085404064126079300171294238267613846627889322405531152714108263230771039557932805759161519005866311387308407671978489485655037024868212019821147386045202401571553732783165138685335618274288916853556994160050248289263323760998949914170276551333179124653376780000930395807097735536148847406437591989562882649740752084411733314170688997597639040282240997820695068022455237457931679361340119541023575306299422673849359411166042404259313068895351000561395751289129697971676704181604656106203353138165535252731603709602144657015475117109752271205652930250450813266896912910307967590417866443307840203743761099148739642511413325322442897058176485867907665556606024249760316932184773207754328229546499673505054364678830008359594939190868318756970943719084021761413438345479475579633820198308333727486083290582146019416548956733317631622508291480439037894498476341699337187159583253816220262060153321581612757864323372557381085802439851662616481358611977084215588928619208968878216945678066110378657138797689991265477751393485088255248064860301251368710943434102110964407799696425732626842704228876793872001303642038785464816779299524229001728683734105837418604549990996651026425808876721904725448203902471343720363482860473284373532942483111783213225710380701266448156970596550582149227592275890305770416595620922939921079742262444054317567186640058432283648060139041833761334762934972594052495786268747124186901612549486018654282751111548315472525597252612118393083965665243157797081326448007800379160513958298654947331862033289792377409380831302595890434491506925855636106179577800613968877511202952770629598169019430525474581735531600720354474670990516786562853953391738807732786094564852324648369332507121259307568043388144458734680261910567224687949777815826752246818261865682080423286275794359264693311441589732862608101619354367473001204134138168553009821588219599532811819636222522961402069073655604683501431518898502785532746618136967974390018557126693232670190179706698295715682462009275980377240311416371815517880791869984531546334962080927480965354688949973295118390006573631661784795775236433164913549776379321135424338916191413949947142627770301849787443638529838151762971596013649974999837749364701802835964775388606251996233542924036999673452665404779404919260210412783991807941237942609120997960333628190748501694900550064277755976466434473427981924854191696385927042550855913096723916450510162186785947539736331266938515168017822063340538300644900747879279419935037165262063615378695095533431681909365876699854218773384157688679391314863460941343679852520043124361833372479715821231340030752687312857354260909000194841695769947170902214065633905717268514150257321920007019423205464180224394999591078291596986948584092072054182667436779612913207217782639535014335630897840819482614444705049406215571445877047727315513968424269247056900023236356773960380252911725541337032939676072024137127670905072249350555528302629927920956262560408805652094873224541527249193255724993520043043266164074299963617280902468528708763892602208961631313859794062165765823286244562728183405658386161407923792716285372386709094946311743037102006370966476727057446452561772863398404994774458205708983798735947083286717654843867740520578978335804685149607132082031931303853263430504843390559785008906779602941311512981321806271327559893938168977477566906846699838535161431923997013274962842421836276220477889143740989149301933939397724615611020551082251837973372347931188418257029321799119942910026553376868867701117411705281739501106549856377481087890790972657027667404588152850877096866135183999230427690402637709281915632426467303652789177395710220460062118407861415346179730702985953115199141131124223720068142127003544407286830690094480676263891380567507428940095771338796086141692179725318677413561962519967974172882980748763621625501666141298655791589161825082799213378932872919652505973816726258155150004355469620712715282291878630698622509271478203749898960009834812820102616845083371490628635370843127726869711444441141353662263299259344538015662354385038082229649441961779599410278963106505550630885659284986319512582325669954037814043744559623733113579643218222696252498553626487896844609156574185289030573645634219929688514013996531231437085377863334520194462074175191949307799327971460162573861252690383942835283472358061458804815192317639953935967203380007060210581628155547230833626708862635579176127591217131576623397799693374492596438943108471311918493529878450693353610687949809406573737972644259487044617329900151415521403914358804410576766160726466222382843973726397747849685394037586689972951296788858037123881115506667905605825465762609416691787793476605102848214233378184166305009932655324620590797224676031257452311352163232289553271415152493980109040369729175161733483525459521231649473522930162566070278758039907537883461858937927985841579673242268682137171914834815668424044292455195057774812979005724638289422638017785042557770944093007863018740355485966342355915124009908836224545472067662009220546374589696132062564756215907709614888231975931319802099961823447797265586224987826093337027113084278670345859189353909703986197443699465619460298941651258293662872543036758677603418032656364425240687221681609125107366195868541067632445682405000831871121372604730524150464358442366842087770501156583806885416694060872857556562741785879874804386843002056381673003864514519327945943028257351775819867873581540409433971304263145088325528953785325372814325229818523618045902673236994596888576752544018573616501551872935176257252823316775487318028297970132889571956758028829509144302359839763294632668314239256079507040507794871896839819034306607018215988262749298856642074005623299793473512086949198920637518813602239243802143559192189494860015995078052750711147907605713455210957268716827019412924745784987368327242165662905519666649105377772836486946474208085291380423525350209790994537418223762088895451658144153252271715274414189470910717468574231819403100419885883337205950805265226121051944315862184984291873279845879497785502401724639665760923785530824807466667845601829892383362807332084593600090702847405463031143149102273636913623171481586445247873334201981686838863859674343841109505033238917041003695169426307249108826010751352878983272306066802740092193547442879454998425083210365459570530443298453678363449507999689446684367364799865882693504434292730134373138278351730738341966797459999512206417849554164286745734143171353213677646255932068383392536934225687284737288770512828007844308819780479728864574341787175952074287868609332943101701609170494098714226700161153859782584009528997180768614693399729616686613362052881147041281795803042556474788667204065328744316933363027136341992172710618778716645736934463298549303816800464586077521422593017439407083191367701089372493213968964515067783013766360251340302928797366971828353304875349145576311754875967674268047566634795769124457679520072842621052959552974639583726481425284620820716744071835910917013829742362340109639608448134970672357762279795181319196351841400344434482758428905843675564155431529643976083835564833840343262517903401191967928086658645531971298618818064026541046465257403762675792332214821707559657550322944763478154225487612392448727041468839140432415263539474862894030760569109831176223341433034946482481280510020579469589379278761025094717083382825446508693121712147889259494479538036513857644027789531215861817508537675336492691503982063949454754166971969650996393976180570907124449448328590724154578679744891315402727418151228399789911893551458324281419533258919411926997364023275104190341609170125731791857858135207881172924015581812999812481832688664128350153671944868252372957138726575972847368469372288250484543742321228683135763484545289103016397604411490889782812583496333623161281353066686782350991641020778894925197897906780378980866749933403303963355352998249004307367844702337223646618838285177439011855118899147760451776994892576061566200999289233773214692824777533819686591344623371454345413579407240631772039053309193101399239918629567441718320598507008869866616573600816907531122203018639762047558759641873341697345149855906151899873723829514183853719308795117532680077810208677650012229578801290394781523455818564071101077750885582939833495728806319009594210795170885508750371276286282091433030400261806646240706947267113106421540567525987392906137331280654900765892205506740829922914114525114336449337991368663043274147766368375829749880096256474705240087856338169482915874999092795180146305655005598379920756072660644581896519821914188182825525375949529657988001111031359583882122192146190371494137773536902820593459625332517562276736159580517103749878293480552386114055548734231959020835643613505407501607272425625459916329220206903040366965018198527650832365095550634254021140011856986672043735643226794326343328405420130630508713396878526200964958863821500535664325593850135079405961825621392565485958491713977656929645342043240788838673481799617598302616877278988845118159286984866299672455278573977315693577586136361692908352194716490179672311611010278434501477440681905155253586691882632821141981250524494637753817243888234530398603743490456865431581842201273567146167736351148636416467516122107840143760681312626780804764204673073278088600757749621860812528003974709230748107311866984054702938854240279887358173631099216327419870558881893187816538189597685571666892738490525811796597545788320071261153109078895546594635666692351172431111483601533270892862992696729268348852513147110609428252027382466619730057677444763242716812882172522272066325122970510222696726533224576344447002058266585544673985888808034560382767148629475615683446259081794086908926079914071835337584564963996152367240567944370427341372811743648112262881024508066800341676667868228229333823898603655608289977171716079871427608448020446508634891321440808708276329629765546008347826290722200507355593123243365043419317644361555739054059955355417447130940377176026384803751945474587593419786074705670170746886524645402826918737181284372334583600937203954505237818467664218619537888684537027019130539999481093074931364222879472297111121912651836522706753737058172942137264500144014456566438889801006764485182092981396313496882376152775520209125011323853705276724010539234259038347397779813424315370194784994662750910592210541484142120275467019863402541912802119116450083741664648828605697151882801694246348824093316182030718107521475057598925324724408476318940214868290713006074179606204113304202002845088583278993764439774967881942903152657816582170243660499352352738038909107707167938029043521632132214991496846512540430278284781453108749980385088720463958044640421075362665252230844572256120478056135747121364538911271751797044399735686549501722674663610758672917230290055278770786618463417353371322855268335880828591142434562602763800627061743915379832690989371665911437137015331126496617051096160659064566728367139922656360508002041222887903642242041232562447522820893173058758560113425697167308126943797609088317134321799269024641883419365975006640410873489856258859809292479549813458024314104083521070382027249381722111913385203455438604453987320139357444220528492633528714156839181543180714177546007551971742976798057443568176078251186418299554619463334058181507978388123314509192604397534066974660520644091368508111409709963091272845860112739248036606250643246953160590765526749556016289193809930650106338300988078498021159503797049294523127850447825749287585066892729820101685029413876613009069718499690767949431962215410227454368635713025441570622349441167990503270453357984190046095632403473643067424207675971645734615125219062834840907374595261437590940331459435380413944119262168536806886175587599818993136375379397701435242008131714570578994959997110791846755202479008226226651953959123796091894958990344158449772553870496226990130118260473400544675648116494087715751885147603861128797798698984083998391596710510678544641425874151044956655148679538527731791816252161202229390879554021401331327749772311555416329610561121968445690059857799418226391838099695456196191520503664764507828712351862003580599218944665648972908100131799849301359315625965930242535150020671071990411791900140755161847069226486733522035469386558350874793514556340626928118210479500478100599118731577561543700369790252864080741182707889283046262163440272531156651796384510302558638422975950089332989609812417537331386785168393137158416497664888875886099070190125296384597092110521364799392570333803034512523828227357261429954400988633040592197848975620907309208048996086762775682236698816990214692810481274188506702603981217024144951158935934176424173862817402958462241802756000473767318293766788007180599834556420624770989850557904628589281557451504085907490953523371152039426844137781306675479007779706430082103296887984908121786953975534207600104680392114126360534068361470441755406397015214544513132087763621286246969053030607308286092735152597698501922148290210341415097379971059467095391376164298186969690813893939512025764683702785617263627231938425096498563065564726806579439924516597005335007534173293418500221252633477319128151920950769334919779103028613010284891629342718021862839947392396380279962430798836324994007212334510035967390589887496369876432334429533318932447667900280172929517710754538758506492636147615775198888145232205373331420154189528623963948566955601042015307891311335035519658125474314663736893923639821196995372377176441569018480650314869016592404750909162425814391149067263329419217230729346237724400906963873006563304452644226281285042705704991832851050691818026763058967002805318911870386463889589970702547961000160552252636408291206234829405707213708213760571897844233473381226416394271182250486901729502765218051013262083602723668777401745726158301059393165783308140175128473318522187596491434925576472374357736647475030830198393203495457465046533923458378572147115405203382328026785125228988718456598177317344394677128938529344657536621200212152175576852740772693943417331992663840185990923154853903886400648256491257399856060670690503172531726178557399301940187057760260215394505139137376245362657230419501378552344084139528851446011912072751973644089524261450072188209568636996670511471751115036375895122103602867740049814988168474061318568744817825605841197133162514164331361109839035569336620717345454049711459936384035280344952222232532502220208459428871007055796082492593130263507191176045021378284200644189600142456823670294598969567966937443146741064359964290173968002089319514693880405634164388788107892652756957839070701049264331010991171473872207544262304416797001087274500970260727304108256402293820390616722173194581432008241297420359832059703029177861260862304417729116341557919570132120394254771533688756681672938116775752640567598079823994368743314884507542350179771395497440874059079638571083312016221620024549416192774475433246358933185830242334793406678464253005034061584003365413291535793666467345327231537715821785224490116823181714421695483596246384506502597847575929227952793928537968596252812963963359556492908407004875775988782872895723923417839273460911998364283117514104881380750542504703215444033460178270702204950096444888956532947191602082981835268345001515769990686481009387334733494624426411774014398578955402813591622284690577092793669685623380152739616131260575214346431265497883134230799417488335686780605570730866063766080621584095705542515569771513130674155226734865418619461675369192343574375313152846556945401384246222086803767209430296276545021067218873600652190701410175035903315307868489641128818816060691731657807456707500582323257826313937644636995766323397752575568174670434608524883446400246906354422348435373354665459539790345219592941694064830337872205710624482392594237492948472354263996605188836447026748340106240729283767997089331115659531804582419445346116040301005473068617556108912488957072656445906760676888649965257888077878159596457080474455895358993027071550895763749382989268936880939112054256773146699032599694810879213898689017100926617652593754667100947941773101860445890712098499590954137272999838858863732230059820545501959925204268475128758257571039586960169038552383063981410242584683195611995172215051890327960046517949458571522033794076832276805720494319930772699134943014901932569590778394790709502422940481880975944846708560768613351641013513963417002926263499046927987080177481246191653470300215870475687567157910230532163214044254429486609326065889844576383479627089207903556735882134299885977654150485658810585217926905653558172922931358504122897986205744964817511493351044219760962567523070213187271224007057507506314705988067139680160163190972411509416025958646288894239948772666509480952556662391270592670132011114993662386632130414153652329019750218887639604583729641004616518931772490877508468333319985537474233501733162679278661633943052638262300930499298949458215233554573784547430640713690183249288591218790136769829522044784597290574509145318915589823865947289678212604195985955886704850749966422517638070017528318754730940075782053345105978233794015066968810705282412304885265135506151326373407430959869565641255444389512168533673924527221241168392692315353088858129167716669828755349444099345780416119615192620217879824243206233646223792922703278177324469793837123680002964123781370714429377409348679150793382159209464027940767164317647034057900236994639357906804458332961437953378276555882515008351209682595153853157331187884747529165458023695528938979816114374757729993793005088704479963195355721081326749791591274605953284848442509464650817891483087616936388653506606772605648574591595558651444203819247330027907817866266848394485235235054298766671299856590814013140567735076319554295950803271134086650864902323105249959848174063002360308632433220030399172695340424330908841401070915300819508965423783860847493787345425099059046496635712367020131395674595304269544213416997715101711242397329005462374754037290068472981465134011856564563839282029661753222451755009599407530424398885157906390631404855750861584730116196676139437179656077990584570341190617500318524192943175440152184651757791290993096188499693253726553265367177902578151787004357737682901897499005014279989562044513324605727137131785057218373824231808548219356190085725311467913139936992902288232921423284512438006460826633041004563797219378935113531762132715770108879877957729162854843526628787067059200768702749548683534591535299764358487735213589680312216495430659330010940982576545991512823041604828124117554675108255206078590838210691455757901491609792872576255092151081486704125998980559022265716189606321030201757019743931550220268795130035594066403805450548825904451692097757611079672873886212147153021263468153425333733455091698355295066658425936645249915342523081547334608614264820748334117220715552994529591321334936744255973941909182319093035282397449229713085470374487755623238810354414888407555411981142198829698800223061346788472130942800824129758857157236132184256152927095431031469300097595669671110424263548368607832334293257087305754146169319902660965247104755600131595925635907045419134407463647611223105086223924899537765271059789191576467573445281406282830612878148727457403486508006855838254665939799427670460171880135093474476040877873193036312230310531489204338858920783111707564936328858480444783070828858337112840951077616594581595733547068205518772632591114048389411241275128653285353797902835677222301498789309366567752013611806128929163930672474586606232623093410766280836574197912848873537686677065791693513739830207993205812626193768899871467854756033854041476498082550303361415422630563658085633037162305574060716648944960604125079820299646033718076778266447996113144334400564158899691929389425869956315752416620672855505125949566052156268417057367483672168355666994673835401020236067744584656908884519888873398669014252403347631490263024055426355385396029639782147811831309717996148828274847029054892972127364151389356827864605817550759531679602599322601751222632963657239925604855220596979566923237933903457111475366071047370600628717507658047629977319207502486974295501214712336639938028235968772458531694551974115462643158644261674537204620087415398489874225573017510913063816908520082900089364654819479758190621483510400995349677087172697356008515016576922929455552837144089359307425222926407577485535279907612621047649517927240973683786651160299953230701587143516657340447480533455722622799261290754021700975774781727329044924535537595330233606445574228429636759024955319330436646159671035115157008353797974406332367002562257697682536611322086945180338982889992059073626841180670896931227244586193628565005261631681596805487728018402808967448682687971972550832356478499603336094135834591408688542455652742609165164816268149373309408343906266115125829058311532235794309694562904056514112633923473849153414066832961366499864346036094517707544201080134789975005121598378793573099877795280936762140606679586003343609246749331552806227974890227488479755248957166409612075495103250385285167829541292779283838890749200541682772103082790544449690360173030981570324619273967756559587695690579595327130144320846602302027857731861726933062258247593122758372927669239616373689662291642578808685433728033757883046424301807491058261210336146022226917656587195681439360698708220408298028327144143985309508199777508471731545173765267363173452313697923496517263720584237665721366770637966463265255602146175303259138318204463785197198041374924109327076959560581671899004677807826801244081062258529620037648207237402448008571818167992531369204289249631630795333601523222136556715127622406700953292577738900242212679978900525380222240966557204259263674614522560285936277600969578966787807194661829936317377792049235612381122280295027678310255749427832975658193151069819910028794928166752496425891364710304309818362466021802749080865819013497519506220706325694508096744530746943576133952020836775195799074701446790680083211182056982299061733473640799935082229143414111314925937728005317374359464977237284871236841150887242135640397942522906112728727064790440384428208150445238027648804302597913686072476042864015065038273696913621714933526192278350848204201289911684736989194603620209737722386273693067308956209372326453636511399423634854385836276561505115628593063734168235261265194850774272832316496181670959074192364601850119140900930918648125489616455442358064594423982798126656261614065793846183809207743886504036793096560429908332443926373817369642477143403671964274767244646032739634370747932708048787193833006564807483743221185836066203951440411482454913168739396953681626860388957968306883539404821980588576223914451945161323504278297098698289355012751871010843133244163051170284020764566357380788327021911267653628306785666346932141472587933156581881702159030415880103766053551194277163624092708732172557585538660062530352194190395654065565830472524313898665970840559282515772622118356977019906275744688924878027811509758837794511239801384759109777032589736108821842272245210698578689020271596191928051645393106107863444716842893553790605287769400586059842417449539068175091987776578149982629045452061781177272628344977946325948598384227317393402494124115190410037967832463213221398375238526270261512605292392077581983090941574877936257424271729613978362570627418749786951657717348469888923718461265110735139047541418784266941642606324503878136208236060370620271158310162951493683967564487912437359181410750429886847338021647992422605404308881327963331078778422570693392136704253543128437794316586227357440049188870648105793371860353122585975028354492331248469139720485875876278949854905010784839567697216624734822408481624860242215947753665707256414698415753957433476449388441265051360913153600654574157624012603964570549141660610200233912875390937115828862512002093492870512739818657698198612157077789902162859484502904554697604088345386397327724104464223354103366719758488037530813505966311971114049508785465774632716461764872129743617344962378598016828255244362412196098710617464910074402084281587646827663723498527278663149470155151516603032110456747625275998955964827630318918422601200888622886927657555883278470963607077682865067900919178035557844090205030977496849527911010656391761780804710379407293670307565577275534761409455936935586790354044456143946828761590802362343613668410409974096911413056603425342431711668101472376285658797415577543441491468969822861366685731827569606419337924503253081026620898996385983412566961871083237326615659942625723828799964040162357549693970838056751691545219684738031957621887369968855269736572068580500202088014679052209882946902885405873353109638705433217244734960581629052793335244780463038176867916014344755963204731760493636018257046472077343497248322325572201411835800521677027423648089709278382017253834614217483886396594507085981246824212129986544439756062865185892576850810683668175616690395373348116339738324335707656989077694921971064576332561798773916201153206910502877058268800302645117375239402850828335487725426319162851318311052837981688782524079352056452053681998745099411581633145231672959326253488867596646480425391779530302466943247643864716684867893499157627303242386182802394797474725574685953125075085061197648916932837151788797045241858040681266734401935826363179311384323478400700710822332059609098396685020233602133029231023947863704046977057769537970612327166295341613134431168437437123676780073448996421644325033039234669402486751229953632134008195451955305202244936244933002638335704421734337914295480856728514074383632204148050883024360580861174725379942614954730157102029628617308839213689668345066444076819699200724010462034649490364628846559769392144069295796431564590436104485135016362671066865657426145184470217876712052078336226700932338725882136074260225044240069144172477238470939482840097232546671352183989064078259190872857141965819772615755845181905549967881705567549681460159248894064846313794176540674090620745328015834927299881132401095363039163038750365302667171828442982138086052922129083502049828311813278701396425233919353718830809279574812815428968202300310938182131596774468395909585574958678612516825844227327502223690192762036310782810411780480255139179592619559191755176362749918753311167684537122234145274634308296017334048409968347481106517073838087811917718432884232661427078214639539714651916276832776673495917086286406253848886493660019739784771726913615279692476139160569282442337748968758850604436965345399162796288303092527711396618606294922209252494755114769702316788675440485283024828816532940771856599640021531718250239605982079754696624748981112217749445652405578996279667994878906322854239677659575369098227067483746130793004218272087893667919545836021855272475460343937013574376170208699211327106882898106397624419658678909204916347788409286689738998821207480738045522322114334380642016618468336643489826261968572116533386265361480800887634385997252706596835643621859446944946837106325953572134006691077767887986003623481201225168370986793831092483516762035982217685061427402289922636520667793558107405629561305534259727343650370664491658145293246760592245955890486950099284266389514834383046317737621284025717173689450053590330248074526911754020486523792726011813605875440823114708447541670652904485698579480966578258243896280434537862176881485524251693440687375386034190565273341312771850134513214163504926020295344861917144391825078553469524604759871043452152829751878562994710140333044533152004139414138472845304484740450996939082018676296748758161016329919670382638895124750564664592489806211698619026434700606872733361134359803030528685288274593788877954494205433511524291292525818487095882941199953078333571171485474387247928881599643136175557966461508231115727749580988077945083150449301411411338567210693888429321198872526494516969786612930848747027205501139265477169217445943643145857624939887109645305536828010970333243661955286797362769858890299794504213523471044675626015011140854034807693307772551782459732493734772843795491123939835634386663926530201482972855612336966476804670282370098872537276149596680073035575995497348579551997501929637643448423182349761575186343560042096295185602303162739870033194318630918725663163896243430199003857200259229343575111654900364267466139258592572855097098107494528403245642279635742647951257962412615809365845392937287018685377783029187849316552164291062485666893032045331789969668472825389600207327098895619727177173448125251585806862386488471522873850499605665451784220320938179585368385878075163423365488008202901319124841937159450455753229410883481710015743627111188615889310543827466409690369862107812674098979085923951702153761067283063944520075384680861418036680034558098922344073042612924315277179765367159452853831543897595178870141586148916224314522814379474016825693774813613113680505447523839802652406375238845181133547206244454871035306114222782042922667348986631310378069375381380952342077868953239465646878676525206437120736080054591987588672780347512056002307581117257092984588931875274387096686642567849763069383624428721323174813620274206166444832877764109439730522170993153252582422298262362816810194235402887177463402223909020570643497557954026467136383024164138024073020542820042076280780959315238217750196781526000044830157848608314136590054700158315824590403471256846259783222330545104078757370323801585877634326498218031028654204222004485214444919783496228755770640702475410487658619889338807581203395691850391865380647035671113688482017927861668581767688019801873515054680049008334324959316635133325184156751077339643687439017976531853111342606220851313291058496871789700144668281253949387546124265378618500513273315988085410002903923457020773088217639409281253627279692964046867816840917286779562469968688153176770672233413585453637705055027348870034273547509708180372210437166980355630127199404762716892727542339160416538937361561474252610466554215415978721716846190551715901265836457669523105185611459689515152051488744667740946641645647104422569776330724405141723096193180852398807066304885592623138205638903710762819224509920863821555314081986376048213165767739873720759920078731596775065222392769087736013604828190776668669273173319517710478795089564115760613611125685161997679417716083643270409427885575093059391637621289356162980667899938440817362217030539505837636379713761453649440505000410490818166738310210380904747915423091319927661179039946134753902064601620715968221065686620473921214125951685199788570252306964159325920570270033683860213959750873393910224374606064823390301234235016155852519986843139027741563740362096299443339759505130709504487468942259479751471229531314768016098839726574416231396170110939129380099653270502994342134990901295401693047026258158586345499651618856823526733459024959176014002839413565531801365703542934673738360757046153916562891307639715194944585732648386016663034496851575031277522754184350949638191392752574749365763189300773743679772727821886848126523045135568393390495875296856673584062389467027366076711430817892081950735491596531303813666449992408625789140793457900744154291182200170624064852274896150244840878940000575041656811855022428928347670978107164654198363964375100037373783381117305694362234952584230693564104432575927008700572440851019809135390649588051734962613439470987469501520480326019950764739407713330503771770396786575063272092289830860276014027260071478885014438500803502046813525642329967412095050075337062323999281087172703120418106583863629251659524229690969501734164950424533720746739295579834917464609808162097955109981585746886026512767786783521468716765106211398387691743481408971147055123400879664057893021715299779390924978986151481474753757193517571469090184597853141672282822836947840550701266554909379820304805047370187362438296051337105443320639821473398209018721270285596390463522424416833896582757847541516996478209757879269238945908543985494559280075871091679751576315722750860942303260036938832386187146267063068558229143692889499170322447861473743205933841109203995460850960374461332226519003771246737001998047116894505438117806077027561872285044054664123413190826146233562429379000480560646603639230060140454432049266261701814157944862014331696491828291007715455856459308602703140973508780387090171612780526022217163956124047556865843947386901036419458800474603471721857651536429575118741030733422959226528299566565518767446612920932826575161748807815093049466894596955585115053005163800920728051606326516459027664366158074757074833021276761813335846897960392501074745486301598254938974809365480983493629734262586114150400274228846365497851839013941454030258193077974125876474969338857861942811343783680031780012542611535289158249989736014291053379804630564998433964362066844016616546170350608858321866124323880471670777131941197702558261072446232912461365139799278960610337100598085756603417737524995130851695550401412450977242394320445365328715915421999665061376551853996607949763213397326663723194394589380462447036078209126860012491648481119751709350687997653812609064110665309580421336838983210958767397450180988342895373178778466044288571088607798447852461608486379427244025173210407769493421142159416137193119395596701025968545453415307651532478387891237686857397591909091828866039568766462743540494878762537687844912470906138642331201828714466333593414932741030433282949555398696320622634847635187336876811400767170825209691667194048785849319830062560622881142238497156171142639049033824370681553026834877053861617068689791186682441956956905433276748526233621749352241516381164127670824808060146518022866432723374046704421538617191486024007408676161639870716193560951161489303636017574219866302038107592822891959787879257515781528792645585300221713398083584161603553748350268636387893483844632345052996047869485921455286795235418224131885425378597275952678591984953778965711273090399887071783335624256481829480403798123753415017048037781735474364710102354012548476700265422875109939321438237937960158492738556455893485007534557308300731603304807560962831969239741335762874703427704908656555927353997309757393724652638905101177208669113371228065122131211646201112116988825446379670987224310086465754828327672892024616004641437974818667125986899329588213731803854677816800340123982192990395038015668097816354818396652692409109300137565348959236948555949836990606051363483200215595865816354391789269683181939849295262726434180272375282450924096600276598663220132624821413234971208456722226975157228668170190647161140192522465387740769249427780729925639920537828271255271233270664072722789680275673561601504318610047886867620460545404430776323898874160033729471755083101509618578611414051484804694873842642043907107836907246503347376505523835717617891189515004476926015124327878472218127139151754563188449659948540216950167273054245067341409548835770767850774303704996521631385471540507719624809065268392124640704446646276640211182352408454108144970357912660902360347623614917038961528797998672694002336506313214328972030746450288395894692070335493814847019581432079017952657715490387060887427815610247982036303300788520371327961445598497044531038543743558039126964962638725608754260486955952519432855224181479894473785450562566461112183597438990276068590227522385848439826345964799385551935971487413430686773864007387069891482536392878044264080937293296177357637500704291811741504439646886689552104424799181329886403354431779488227694776636871393330743164084594118468991683075909954431165037076338987859573164403497226240589870471266812081766686706276531712559476046372278731378993494851875755272460254619184818839334191599383237811627868321310881491064556965528841070791295943371606602724623201429915406905833404715445960230065799964570594392677114212356245098315083430585774866926999035834114132346835902185241478600029766195655136069232100853708123176124434246821458368391837756831630956537799113255027354651446138770724692386163471860978539605529984174224311864068139227502286503651295849244670810337653069287306299496047871232269841581656358313019754823865295374724559509380142151520801351231164829039685279342050427180198339267306256791139594196531970523315015331503020862162658852255345484657740262402985875956534629354493382658640140180923133511770169452749627280917360337471176202375826199782726701979061618609621178580239184211758072810996267727312154331493129141564993260901743171710052318685337541484166216802373118387599423322068977257132530159521837002698790206225636094555739291829058227132380521375807522713878319438626333945170239353084926771780287272195150287612565579193110962716931889284330681678922583695463724114859087134674159939174438988285215119123646816360199274499910304832530253618226066090844742310999095231605225445285084770243445955379208361196627671684216164603295149252198646876990544369728616800476710552042837832248622631693789785247806790423129942626703808074227779699507321109996896368220661294004061630090114979855517178088531214966023051851204699680737070199323976446726320711697148413596792238869676911302824111084320471769633711724550972036909269901762181322867599964307029060453898373383124608122451351907612216364482171115120217606820966468375938737830502132795507543363565539150793766209278649714614487939823047215701391137207526185729090012194993592535479883562622489851286027637955277315420239881971689902777790791866984410981721804394775443722754371471534700867480483660860525863265300133701553115444546287705212670648873902264635943444510822770560542769408354481249488654645767118013545990461713803713915546904797391901398287720968670022356766526262448906365126383856966495654362170045731412871041737037411157220246872730705731904459945696918656643334258430422224244234222146929089058166174128574902292066209756691231229559277543214465944365883889830793972775196396294804951785518933472448233843030017158461971399905876299953433774033794558337510889353910265927754974117146593157157432147158041094934699991942159067161471064476545750208343666585503975945741671573006039557994821301608903833815887056336025923708405031889510206147823916391047951071965619271236726500310826276896879459090762254585227368040920960026411917167439981997660243644836001190984294212174595915371799753766495427303434932851617359308976256744570253808827939887776066312971446066330395299805923977140848057418910065936946001216128789982254485703713370606762407272412007154875513446013824818347969333624952655339891935613496655171261487184811923406474089210525141137850687274417298343194889506392748960463873778995233280944426752351763352683579811338030201161361056704678499843617584048808943968233825353301720244191386435342321179109483143920304736652631030223909624275552966629657333873381400743476891999914807273532074740086197992428721501390385679987764194723638229723153512361612342930930143425452677707468391110542521340695608593320327993446374315534520029182255316073087283559435961275718622736566273510684454439130545281698272917157392528026715217400314235071166812878420857964515872860864617220925440024672478231186861269986627699688643701291114848320632409258235108244826124422540628745643343956474792891014052465507805664323726649272680607226121868371238707222582230565711939234257116909537624611373281533470961756416681222881617884096607317272446686210740740502646395635817453534760643699100403914916266720499455846977284025043517121305803144279562722744483709387052777220348007304190143839287334904517973464677377533302984078961018860994724350420890266761560288123151222063980069473340900511421432190825100691824372772863873146439946599862205999688990499261939587664571063558989334391808829109151013226407283188853808372711349283969613389063139257424888722584501983874077896475893615165798042254170132548182533867397659968019316875330616357012955598960464619925646102116078822962275032860411442029145497941849636886647084810157556402643792110189843276961631826949372260616357623112459570251383496725399094783485798977424418326848590226912917954174655644461231559472820700773669649717410916048908542685745415217477667564705519216322380206107739529624229889545958328109351101808985737820237229728620443361775879819690127604630174853293710293785235498441952558011669798349093164063176502388069827128772123533490118296413730339394077634648951908811815923226845144060180032624110226002100905759330580219173572996946360379264969044160782108944203889468080482579224400376123893363519480798912764830479410329736187599948474090681356163544154386998452834951336726409921558436546506656610739798024098128759129207562504628218661448381403663812156379177610339522262187348127742902386784369556613247504680476745701207774656526744278570952226988911217759329624021751827131434703372410270339816285338995030057271900267742142232333847571931645515804205879023069246889735894110536703867729422602293738760734796967115032375774998057956896606404581404520658704005011227493706837871697964510791143954842639048480058203264600713825306443541009346294486520916874067551305216036889969552617128407344681604214109851124732639394380750639238890568831274180520117941553304248900257514482946740446627948656837489393215552243107185737529758900589888722102685673298284395303392129762733190126232275400096579473530574337968309621520798924385851235488400364527807956860155885686168690186807799016327446255157886395435049622958466325956796915033878991025961558072367434196830347419962240167328450262392841870305848112639709448133289555942435686015000010752546322556871598478724906641858633683333888421001095820313056990187192518330607692253047797423782175146088487001288443941878961087290438139830682587220032992801906577454322435104109973251542007833089652350868362196339733156553573326324506768847168389147745659924991973529654740533727266170763076224413107443415307858482895903473838245845336203666547810465792764349400483963432324751006620146586248264061853565979401100608689768924845566216702285933063736220196104612751251070357407580623112289936665192909582189470523880526757995647464226529782177747897303075406719338454720245855345818118461558602172031250745696579476332747520864139735030826935924200796807993691495454236892330168662156307333510638460468130021639799889014814307260298137259891762144117640707352672327959077970070355906782997991324391402744628392020001629363387050952175896389193354469062853241896655342278969366883575305423511642508965816856982382820054444295742930761459853358332731835702396775556415428995747363373418354619039746886065425907155503634368666805963164159321196487348599223833451260452182690468781640987121744859775663830507746756966379169797905638048842791469075125944831463382600643481890917511072294719076479750054517453387426199129387592512929930143227516208636952826102408776421152946089918482642096227160626563556996498258366325926384324983284785239450702983631015462462403607767403661520645234297174298592908244717253506907817407136997851737576235117364002506226283296839509499980951197658380082958897565375437737845425396955427138608239700035822725846363215930740032718884139292520925243826275566966650580130580615357243339668715495648228479884193035102963580163537887899703475405723730789047434252041189954218360614275466349669178718940398781005332158524857752996227517352426825333360490144313389223220172513511924462242226629787823905075104529325028780486710641847285003707897916396914920130651193138495719768562363765074440909119608298357062845106132260554868714997413258761627491519720399572362943313700253224537210056632399012608491568076141507769349262971558732742327560659441377395238910297465869729651844800989752138070531991977522326777096819780030404365617077237550010761917906753019320015167013493419222016316835932795843226260717691185853975280172773695008419028666657316173259971873828953811212556754372137918357097596733989891205672622876231575346658379327491418085606932322338661909297560930629452172572458176027561405766560186454354105036782434964477904689540739031754684822052286028669974283639852693586230086949643981111746265540374390177953007227255889891178651676546032069627179968132194809570020117148489341708029759426667307615051376691056772841977849013354962842846739584220009777489726577901052149067088392797714009073767000063613272093677016677656365170856767542410934437467417538889619020221670189458149011621026647295604342511882501910554396689627670901273247349417884317865396984943953133387774109856603031518396119123303266956894864208168961041026765985806748404071788537781196428325012029711168324617728650779392532262591159528416845082211781137203923529701715863104300024917150088341250929036238534492278091488529255240476769675357998439874070426054337038267141351953902454095465933862432499795618338588852059432783171882823196543744492541560825595916991063945691829531924909279681043601438507930822752843625454843630823155648774725621520184464699054550874683915178797907504835518316086688731978435068459546670702275528749588588246821227681650298606145302752076259540566854036650165480530635537237804853143081623172064316448819939294984037917235149777267241985133150374020175462143811535052801939313889407313839369687813171465156145457586393262988692624706809510468974187190086354170883626657724048791727490053820614713385522999785376452075653652077027949609041587485270041281213964989702503138588554520305111019204143579024791373002281621122952642240966163576354234784286802612939245273631723293006396076006305016327633979141711272590363023878095899132963380786182027412000827848745765484451656102041015082223663991125565653282597955091402906242258481762278155893042942719859028288497101804189610622987537642606973260375226760072107130178125354824755635763147450212117231474914534135071255747437697223645129396809784436235075681525405452524042437546840954893703994128310081811293030154680526784893814884474340997769713785163958827838976571663135482375390814930638583520536175100292941915568098382985095258170085751961851935049628369103548416256033699902871013177874221334573942472194419132308904126760478420607631238745476938561817395946805458815958184220944360776060879473917068091403803726948111675464976805108687183957817731801530361554710982292918020443785629742668762697205544400856013558223083351829118561360278040137632410227378967956123566286570972394545624288909911826452597715589503773489046081350419142539505828543294018140746980326047350594305777605743544549568598022540075805384463594659628096871086736725613201276399934259408861873710161636313140036476969425194210728312953764773670045616987315907612356902993918304706292324203677124276806518647918863714461939440192523184106025184081126016263837868419083068017984425477804790142337604157175761504067245864540784574855179779066416101749208939036990578328285618753009809528098151394583610157975343216531048942950767185249437449459811521248369939294719082936796071338355142383717883360023600303572199917876355409546972352767116754600051388470954024886000142896563050622727377222929185325381872082397336751050743786952152072357062299785178929917202152523119743795533632247322147018920659915793699452577004997068494326755161664835047448862504479908857660741413246037835171743882058981031176235396296334291557917659615222161019746882328818044068339744386901752116870473899381677615500110875588269184407575833022860144787930936985734915463627568437136592945540322646057670295629767192601654508120793000904285480399343151814822184597569047095790300837078293488657131121942127639836188191085915979524614353863951758159296489957652672546530987126353006546376662584972690745465073494731994491086165101433031437791449460751885586250043413716106472565399336722920817205908990185626462352062784523714777017136157102369501443000204877985720670882290982387988725661625446090748644061265442486738827252976710311484257089159401963330852242413106686110277300628427843366890945828494680549297764751578461943779911032040510658810472989439019861354822540064160224638185968285889970110350975538691155179458868873361323910656500741665614565753438099468709426036801860835840845760366501804355859510059594636977586704798918499798590395204938751095693979219998842016217067578055652678995908608562532405427982231471496790379418185752958720937526414394887770830377175355866963092632013313674915468188769148800347379322358319622906152352423788534134186338724323805433472767245417663872067478850092985593253186587706708425763310071209518618829228392142007098165042136128290932371144057788960481717001529605567821770958471312949318154363938283589550135823735749933492781049316068369965197319510498344965592514764775062887164880838160027914422378197447645582893095577182996927421848551072404819526657437903951575840037576493982438958693577832033062517317073724560906286720294064198927555751075462140547342586080001567441908228249020803481546627596918520387094553145808113162215494129426278598963554984809641434235044156036490155504583412338992141731544068140164424201626203808525695927158588539266813020498719545587564717886064798129589519137244286066790734097816888517775133546670803613930580247217457597431419147408978944240274270425234639625042733530222013394267931797513793891779775021074419860683161276630625440585874445038873588110584287008747003523418746363615838778408179905906540461825194027069924250382216568592050432006645764960598829490472111044407865848399028905597062532342485693159594650393508861255461799386646715286438207340847579501124706782128906783698219885783259440387189227566216725303463771228394590337759053289639980063395712835539866493863190990771393900477267979651436566852667251887600967846798671541841648968389756290036101230833642055643171557805843687427350102216406786161868070592975962665121365786698796751597759110606503662467301749207537065680223236765031551258805972782576359495981974639482849358085220849103603310014575653059921602731168032165908856408387588233061634851105114163034318157553964839678708317805674751896836596666087017343762571219437699369778316680992912534713069916885998960132440435936366858819824213228986210286224916023090473489789589588219236492544383330139438096048898736414869336404449401792204778650102306944062070001057559278354330871095197722696677489619103716762982242195638274134682252816644864715027084272839531497515371436215381528682049523968312945880390682620562297473808378997045525057757873248919218496652598246294639140185804581105864008261301622322968966578818878333498776587766399435332096996467251516766626760993723978841676601482237685572315161573839592209644528420443383991532110012320290056695740083394335243741392039091163099088199163830258021788645061048424681827684813405211555235869467494881334938987427808866020429997295805535845207262220343806947475447430560903217939861850202359696587766577094113197096069953315401236738998803546362596504588516165377272881967624524428467129832299771191085367411295763764937531549424160141498692254442948707868719508346296083556508358721677421145907358238182509253937418716637329659835788589963267310408345837004101895943564736376803146772533825813366976658919283699158995617772627611838412144033605495484658390754287105538327947609338787335013798848654187525655047742973886060508320531208485960843693106375787781757236567760996714450756975148770217192868612508802642136105721424272273122484115814615899149619910160352826741657185224478477411979735591238446327217137488846587913196965865831391254978711134012344506129277055652173496124094174833603583162082854526795516932516351666042875946600856264510469929881646372872038554845000162543788322907044234211311653593126432875308329671093848848842412760802542178570320769827690928598887982767197065112170988256536954636397874482554977646998335093634191090010842484158641472359659044163135423510356487677182233518590839713409423523856849556841192329214707484311783523329778418027921977524343903558078677016242005522982853555563814542696460489460711026191833410401846846303796367967988111841479120415576669886038839530027388810249635818216120495130321722658650655594203083322501190634194431212479690352460715830337181545825758600116442087433894691371493994625868997625775653836824232686495288469140504830884282253376079953230600066035810614797864949625565386302109834660260709271312951768433366870295584331824037587722371868979888366735832455748773987558185069804735826445853788128727806779612300554588100876472888574693526304036455247922192119851110464048308479848336896215378151871572435536124767199453630737225449763839297508405128561817592553964838037242138791510461707436238379220276817201798514924357446004570159995624626390406177479077663158314289118629236555306390188364640534118239010214599290265455003327400246343058870843897875596829225988283434976862352986503838544572591167782636394557584721530631328585856896139657875365962529098239633622858909541595347117903683142604589587449504683853706114491652896391319402067024722524113162690721671766879093678302532987191549300643421468920869156138056129443642351176404570012272270708537608094765429221834350333246501975871705325651204267919269258921582541726931520573432731275763064436957422160893484566315330637142976965359707686250633351030789369003311547427604366165372585897293177709516783427997672227919080812697553514053784907811787575048155651800701027821248358731288692134106212809192594149601346443667792901969418758775261085196978219573594324677487772100304664541419442654921358776562056542331719525368791202203124864524629138337404695736850100961586357023476931804952703124551544190986045929047615265307361268943604600304116536973449992749298374827121993455580087266343468953389710120509371588233457820886935109824362282752795873690525280978908237692228008654645937906121110520675907092036342775276008392906229853355548536569301066559766991236252044327446275637260941470726917612128188844342550160861808712550153170433676850520671663643715139065425434226785691578067841179020584950707948896792708438681751317041178461412930031984909947248996314689931237004623492297411441651705760742298725164208667215773337259764425099838420322622987129621481399485388528951447141508295453112679364874886449859530791782771219057823539102526935883343831748408103749358986838586437591249062410490443139838565079840755342982718085157724783747730598619524311329765720587620598806722778997057429430770875130316941967552379418290302630837045798534328857882691595079384858818922321867504526919253279782725974942511545142314703864982069123145682583218773013657298666392175363576773984381755721648042046479094941091789002889589639252402597990630085231622487612171841609057205086160417071861705824487596702498925359957929274737961336279826555452485851405168642314067961143616651086627223778581740716239125436979260753762483492293287350667433289831876597721402050324549069799388732551334655584402473228607887800686258306031016552520499274545315026307491732566286798859164328889637918547230496233639332083108417726598810488044072368118480380771769898769316238322192185811001520854363008847409276894649618968857915673664247224038046566079263823459638602998024231018973515129702485960803792109699174975952728975901481021327996534129811421609662724318595436519810110512796885715034276747416565882625908062466062998093225055379374611479257814591991509660126445989511469358223541360496219168988619557141136672562455200917975789970862277551948829521580581933158919342685801710187300380200294922412016319578428379920753513568198900787831217933498723495319536052067198443869105009050774291053673695500806074792343927948332823740675814410918224983790916008642764681786356410678196755749717930197980500788946414420232118476617604440939897391601907193584298423072635056932478226102046875459352417389558599073605922315730609029646923291219946998498696292327929872393626287865075899992675041522446256003904603471695107658733007422370616723701168853411408228322354855330950520203994280441098872271930249006017874752826895136868090416527513751563502890584886306612800584409893251225892145745073868162714456472391262850060578436733050945457725533598981517131084480369988264903681130036036066602972949026916129784554568292565489042082619723339816454783023578673920267799397312899454630264683719093966373820323825208934316064429050721271753379569494237567116011039689654573053889559442634767582178904167957712143244105941063345341706679100530719108967344924390057970630220034130491480127999683785653192303380056736431180288784226803736023375261384932088464465974540376406621413100022822724446060869391554121397219862285736332599898520647711146540529111917343061474497439908124384772271153518524727111341008305408209211313672388643971381960377803954488895502845830381887673554584549754638898820195750786586021582031826020035942242185304957115209427341369380152758672234272590266024609127161660541771869762408293919557542347280106653578619979555450839012810670603009535154175825198293977061328488843138184967937709747603584935563235587969511190425802411668977161662619512366064027830172564162892536887673586464020169832541060673891220419249508020863815730921411453362545303336009067481727131242029509304246350074340434176064104041900354065498442392237419140724645932509989942011068745310491194798431919044547077448875061458071782927257557597192994081692677406273555906799232606623729717996756051881083893800160962114492509018341170704511234769849857055286479508906439647734476049787641870503356003363876845785443159027347554772246647269829199481280513841254891125533803938652700802059668630096685087434879812418833320170572750462205603350207837828271603186203354350634826976170607152177566919648300060260185401463969839194866814715243605318813054841646921759376219379592043133437386486602735545753529321570245510993564874368275044154718496671197154581002241352478378448976487371184073389819501878776535380102266689788421132096282401881559404615459673242338445618862540897861446337488753175252468213892095768141879134537831875437108772747676989152814865480976871627186074674083378473042197694957781383720025306339558512783431209079310299181451292722201454273285719850038906399088709725805180845034059303099833113251747553726649882785710380174889487258603351174036711669741008633623532519354216604036964019138611533213959888094617301038224452476520080800125373396086340605472739191443703484276543300799381430605299451316967096475431830308733338892588615121871740747384192128839395272936761182626913297211187977163023979063366228117283154413996327643996301674414255017107744882279752974485782646745495037903201843439510783758225446605820329354773227032371097979337783806824209613498442772411956353193614051629683781725964988205040879664176706896381819993268315839330298379875178640515514642038645344174816544950106337906749903585103515926740001172844775833440142706792733864491166779716547971022536092557218016193891054357548768249291246952690314611268719916969922967216437016733955258853799405193798710035256487529091863054379006720367352603914008199194811651038473172308846401221875646194896960540241598698785080599844408544698264289448346433536035867867028347493948692700777119400202265579794637379778417581626573196686180875977412009658287493204027668962228667899736725671508358141446044795209508870583893761060341964046137718291147920709891483261790263898968885633058567099212651969880608939473158778638713395038975962055412921960873847990534716126791022713388706388265447511741098647638127304660206843852281140655785410144125421338015633470152219237200941236462230253627358695063021181408122710170625368687262355265821275581861978255106167049967509534941901479724890972873839251344320034068778420209583413590554065955708816272627109691630173106903167382145617487973948992120581714073261650321445495662982097963177622548044290382329429709292165469869677195143557094803385609096635045032432055965076406758776697445675284457501510406890627253569136093427757255536664659266573889806746274814700890690572838007655745317648264023814503473145484109499731597873366403745050966469207889667097525962237907152356759244137399378809313521049753184742868668893996068001638890584406656483240512358062475583427717826909646779098430215861740412157120163597898022660631020559005344724665981322175022585381030207013315695375693219292366125046910108305604412462917335558656128102679742807475483123109167362968336950076133772203284154334800325827079949244883595239614588378544524855943428579803155644345394323381572708139709861625579245782989508490061071569813083241849169316613710673330919697524623960540091109424158923723990176572500473701474795080813379885113751609012727522456780276934010192593340208025778751555800850465213623689286202231357155882959370737977138210050025774521613557109539765702810897377995486898787608789613403422626742979762433859512801461751122543928665461169722338162415020481038506025579165405255906483579631556837167555601474386895023409070518238244274232464092325562746090560260349769753821393060137329227829983339229303578740944260142813870809517146265819935041177684739195718679983811102399142030141236286433292642639499146884570504355476313125377081333466440822555160585034442407826488196569462136935035056877989428033336513874975620953002228696004620086343352048883380651500718988397584341147254457978199062834830482741956274501251541421229565381166071768137376612270696884836493773116562585005137876128610263315865335161323137164639493285397538688161673853082041150338476072148889746595762534200064081838940487605021156882817245119417616578980635993781945502754567531617817130349083558698451270821030253569037698705346817684281997365960559267572971593540464781185236401188755531529252127697886364391943036321987601504881859840151842945157482528353235334498031158504220531159305782968703388902781394654490087135313352295871733357088612712725623372153248282207964114165888872909100816772879930520506917434757325675716032030833989043695152386628825997043905120333868043868430771403229035946150114701462579958708741254365023580647136597554611297838166626458729918053314854908809703665575057369978205853448494336600489192987282251850291749026902811393876041138264759310198659050853586231793129760885123729760463687179806055089213572502345662730748219647878211562391239260842349896188220287356742625957086116541723628887427547227882543986675673744575975842306770185006412960543004086986852549484272839651807317512286104306968105634258267509281742979643632290468722901925471046845547668494093803933862639312472288446802142842452688926247780740647163046585029712265977348607389555430845234620804065540499507886038227956595598832428611045274528379274058670458717609278945513018357781875370202880646718190280405255466633340150000711991261474410010491009388879211441347420618121278782298341275770854154343478747896999401652054196439866143813411211606788865651891028576162550936146027113539288227248128957323570369585998920944504586780732662560987843942677736847182404126905861291177962621118229208673377933533852128569625673691144854671644006020825245532780017391094377274158249059257073967994147990231256423610865514829957258510983058206552432431161340624039070443105591243587647240921575341212821284825880149297656232545641992700236287302064389231102718176678605407589621706135323489570323699413863535087021427936816305074335456493362992733609427564554601803247235487959120875484209163095659765860527581984061216481501130730237328231910108998659991143430960900927629717800214889581982293056637620988796707651597381482279718398479208600546001658146659402271692729278341482434600708800648347738841312976456388488616930636172006633153014272695826128244314670041723933129153434988815400168708449052340930595639502912478943814317816845335184513924677975553133371586422505204185794374744910136174674777228341010309224605605347118854867107546847304043300125007706937895028967403336811690316498796258104049937866449117275806478451282120178156288684871848882619803668310388668386370877477668111342770737594120007196823520186716410328826166205657375484724827072773843909515680023725017019725408192570064149391853167359986624529699639705979976452427788718242302959136289093184900912034180859069682892462119829851613083353900625644562638691428303366132756409910605196289233612827529437793688202912617521502254177122896467091773114112444357496020821312145598528167037697966399281107104876321031473382556886695866987878154755932372399493055826150389329723208876312831187904802336226122659416253242657313732890812303637005779526043611555389726131878461376621399642613214714215862631540874648906774772705124645409546444185820554574304719625997994346947146774436163446080963325027218060291467603766023603999235601783753192302631968392353485531627319291947498861608922522826130775511925577716195836555738031093043209561688879708239495903359265927586046458059024723596680248513726286380378364403979693845083257494881423322072067057717557205620727575108023695159166278195309301485271211970363471856096833355423172431176709131830967332928019374029595626022932321026905426514608327449640281215459750248008316909026152001947144915946286191965175540048398648183010140081537206984391872899093641351045765682151385273851892341554899116621577789067860152507499859365919183499589953459812258621723616890227862810617332232593798670538563619784948461040331076262915527942121793198110578282739501389174353745069220739276256904666806372873225841007491465388393881548334796450664448736951198267108467950982101275781705404903290835061362382603399037443421347835989269138915108333475437010802094822700039433989369970329066952935207278029973381429239310679457763541064459389763037000845369633751068003650421967459334453918683681365161378629898749392544822276919730055239685321764696022525909662919670187520822161583662592005490823842430845468717351041995520242321440956986910017790825191433467055617483530345154354620007678940497438626284403990634780930263264005254770113964500862190232699347900024577320430812711238319944099191939682972096398910909368704804400251157057323846732381021238339490759471096919648661185058392111480664499943546892652962633146959904754779387587344721223605941091883772371032318243247043585418168925426511296288842265312881210489182497865536060187047114097838684619257533755524586347442610318219590124109818815139280398207671863247908773358302385492294158382891792024875715620775796008827602698716687329799404350039947459529666293236243302218419211277691889868672104690429494923310105553426610037750818948387937950354925076738300166115546342550087672743491869380910185381406620227938812141400483301048990869098517754975677041002703103626222532816395103481878110366608665436246300999180400356826900918893226135816504266903263751574217883436736595597088507753591235392695173678923654168620253914063392904606927279250373614280506428439094829533997563372721452631467379903037554630486909913771435167290641297567325757082985367811182109645192552010953640774332270964948587192554643229728085527657873816606862919520565715134620568425716657529469562103331304736846827129800642510986147731472517434588815598868180291383065506462138018779481329462468154803689686538350188140053618907105321818669490453547236319677608568782573374453216184494564816433506916179502713637523199190011901318697033669071094118760631798669927303419287245485217369285052669684341597063832979838902761927442600684244938103146035209665337476325106291019217422423997478739704410685330776161148116408259417438989696322003266159381805130966462009362908148667879015920240380495273582551509162239178313365643698837065909794143328853152552330231135776086905337401157211180057161975402605029186968541015528894368822581954103871115087668975013387839822161885467825567809583285021717341963542750202352995280540933687510781095820315156344381124764439392457365965251310118970386162576873229181440131139852255862727089490641997720160259457842584100764351904508811316397326742290826555639587927811947268603681808827234855910622277585396199580974389467543966928572687460334326287227379213066119984662122001126929093399843871093993129413719025805271858982864936983881682228004529269818245465970032320645113218286180464200085176254596453105468208590050565165166129568296467990468980813975000745535811190962824288184677750666200575610561359728812474705905995399431682146759858759427137707087691440051184447893539135989242261206103042174991883567639259809781631455931461972063766652960665457363728165574284116653757936915348474588909833249833554700109462332606473568651475272453054944351148464504101585539049596599071974611131080032100577608573606212994619400688043369439623671955075039992414216582658176553113629288441597339351092396137338442421212264153545016245901983441504218901054584583215826255308298719633508948001212210610113755261101437582305272548684151346600379014667356024381356667078250787773305246825149012628086404519305470295025548207800882986983382977449298566810308464704566140286543515003060887449641883153946398883123233900439806893552188032331965485955507137078213948278605231114842172130696890269677274535137741711248128961602316267882111304622478313547858767873056168997424923037078619821982648224498612281865602266246032587929411937886928589101976632978176906990845261998656287745040649397900182214076021641638425728388000652633269174495147642300176456916474557115409522315666544615555755461604099362129914297382845688128206532483643586498954193432491265714084645508505258042345719526503314691613415933915614872515410851258972411129527693533490633915112401198240548276268760228491112954334717601641434570939150646594974099527977082001047590145386662480611488971521646254656602432867591263684163364721420084782516269072668426756165722095598119009702819970692140578272918463158659133440686833125738593151513362509362636556086356807648081957666054014168155509337160898159381622059783351774193418198488357819549418954169653038113278387678737986344906165284299619066666582057253219366486966892946775030831063073900698082461807102935561508064247436909071267172548009958034361350832317190324685925410143844203354659322854315664612676073245428507784778893353460819018973009044411809649781648061407799077989008067308053100219484783973695200789162768882843102512097914425737399394424091280082145781422338974529463834323727914483061192219333898091365667685919766601835661313650075120392475616412529149509801550455824386711137802830189554726826985191197776647768993174340428428436967596757619375733992430776373100172010404668988587093768211565797684266046105970359725235762948890922594369671128463439025228217504820577120361313170790400230838560235343620659200982214680398605688522209481658925238700938157545159125755736259970710765205093652513171576324435007232515616354944652411938264165164254807353028891586737675491219914187755961969655704793476088335963568156454581531173431105967759725810317929334174475057453952702699327793626899824499168105194989679454504853509145239951794795842187047212959570943298256121192273445875394668277636524364748196194220764150601382595844187431809477175798997015087767162586941939882029542512105670749605660321121903632367594621019816962200740231326778649480678515272175500075086541042950824442579266376482160298061909938765110096442198942493360947429720324395682812642326552979401230207781847312119992446187725232729761919546253282068862152172185372438464281563696860585347588026142291634482157479994101059708150562133827472171836481136608193735836255502198847669187797940443188298129067667863233470786242733605421089565530626954972348965864689025620983924474901292711315390593657218072425590455722895737298982950827646831712137996087240287052216180212680279878299912373858112201393013454103566340849534750483676324316693294063478053651164014829647489738561954094462227163912498177116747931577924250253628230405515113187520918200509295299993463572145646766398042043420578746961391381501690625905830092607882096320431691131927597349919213274570442440070155259074442113572542953910677416700517841949019846268443724868282255242729724559049371063100702619645956758477819182592102782158961133618626521222414088109774700709705182911408141807842346422098690784811553934822159181271758526825589817970460215625234246623854540218920830919275036350736001132391608191894719730475157528123224347710892873371723825343478694676871344930224684806870801761341592193505468909849859109725378215258670570280026175281044035796648438254576510804973939512643239514352803961370504081160094893960152756407713284621570258680974869196228482620692902957232671983103854916102941453834889602348268872100001204692802188020919741011522807509909390533246002424004747923496547253215700834536798677824449796261676636470054856386610980085295626168487539277558481091772877940109750179566522918148231791976527041928733392941135169163619527374123039492096714128700581889786596963343832426536771724462095073301482061237500215588841582730820693840704633207406660100667237965732789756343208637625725202484489841570322939703120262212311061154682592831938754178784731174147116914318524158117452021326241948177102245441781615348622031976341528706421833591036960628636793894225055321749471016634924877414586922103464202288607359815684196762444196784395428866499686003813429166147437199964012137040826063249749275491416291918799805208220527132623025977394896944739688277701432634853624249794025984419116444970459283164694640802869637631566519784896591825993546792666020067489359420283561464945721634761313602518602124628924509233426862352718262736328837699146226367548627335513299587021068291187189110422901444699229156976432846312629913286261003407190220085719917502779072816381043837607980459261454604798848294966873825490459349421124789879289747763015974275256901423535401837983175419609637263909856121640303933879646843524360211147074511584845395249807199152451922210461578439875154267792156900853871793451999047528748334177830698246047050046249244148993010539480186557686203935786036172262467176617103154610459973753512640666996043532328478598930127825573702848268538979652486716801403557569138967061032099635903541672165550434317385809205062691124046121977162238389795328473969732570428488057020342631378290468286810626970905818019826686855472911083177010238645604654121129867462820215770554413420287603169493383088565422544504036697421707339239914805101332656151970633249551716114544077074343822292944585293098734115351018697834225393105034707271913238233329157249521996355797328591545552715357607081720137160389050303209791470793748161364988649980437034151018563532322721007169010310829543517780288382075523024087430078880001079900665982441312330206643024919813861924465180890980052905139098637616056378905129609333447027602816639960505340303642215115538001211683867105904432688669712007205212364310939369499553307613936513551822361710544615588588532501759229673802237949388414480772775749010357187403592652442532817620373580651689207403315458086851331082617122714233855079357865223444328638246971795068030778911479881872904861985146776472245590647760500243943403858309160537593628884828720687176755860990186071530073762555300665351779488095068585934144385646804745207721057150484005052829613400763302160449949449554254190201670659758404927258986132465971007794497596894523327856072477604132826432498947337370857539959838795611189766476545149637111956250775746250390121323003272082780452685869944257502915465647746384477423897651523236853325678330758152028548331246466672105789651353359319337940191885696762787809952623319915197934236985344278708052014286459577609315109709057101110713824004772122085908062036995634304683025191040172388540027323298502855812041773802214807606905232716499476702221257339033805115751015391930073042514137972266135056332157303543197900572243540805993273244638829078344826769049052055961660960186726185065910540007356849196980393040692622739237018484372185507285248845058994135363426234546355024869872754204437258034260132515357963994252631728675907422438839993160944933968081513687015484904770874380286446246657310541355113826730026161945507225842638386022913690676690511856309991197370915114562567889022875355447348555661213421759535842092572849324995101271794428171742121155935263220285832662121826159298238484431751217228489495553646272415429327788025243530140081238236263949257778847596637775785668227602987636052675032999592448926030215544135612174755253515815568755530834882790521814298968649783129638762075036180801389560715740538383784409410038120981873204562427527104192565489098271876021161601882294601046694383718135285734717976190535824580676462437991260837386188226980807480835203219505256632142930853518360485858112310769806152607338861142100015907990131164418222632003032207847150334410028393185863354627832177526818990932412670025245466171022378223740865247896418600934700943994664334468941791897694788219462518801938006494486502386496673917834077626265247471212780200084081576742123492534873641579575321608198846297125620495142914592342003005638401003076788824570969845753162205733081068591264437008594310248411759718930670653566938037033374969657178437122506051713963849175085815941775401396925793613554883014209608325994539913421834772515802294833893155146896242076128332831325794859673961132816477189360535633180758418404357148006700976301184732972378775324380830216319047163826639703906323661863313438267706370561119452569761049269278077907894792439567270940436886183430717032974816147915584011534816114908993583428408062173652370843102998193504437872725032417661316174540532909590754374364411378894435278218702124512209928692156379105314145401727583245553197240358292440976470955086235391268599005907648666374893686237026984071996690297998629060838518654019015440219995012487101994938821657627737324586192216158317050342599288608902305463597031082312580318424136781246160213618627612376493639343365944413082794036878955688795321756872715969085475665093386938368241390161117329204185166835641829090441110674236891334490131026184612492657016338716923266671907244802330645512391013879557891726182359440825040474155545123137631878358222309566125005566565246341903244781960647103173487927668740988787298125769375007725484053235930674981215910352054250349372857539986394296962862095717903131873390324106662467637990379133946147575244016136271688083560387994386676336959092052355611501925532168391719840221495538658292678825898111348017904493577293832168788402314960040473916554858720925705094509294215008534060252708718117314879301623075169370953682551758212558485485158563309414007148006150357397910474897691432456261072844480171024190610140096430513103449015108677532158456507891584891454840356087924555421684996239517846900280633058150353108694351200974786553132600551647671101350864268524796345871460694842605352470227247888887309244571823187391553274956244430239972566497165439462625991522463952443567872646966717656554033028330108296016583216744619821953525094829828084753778813854181517088423199746891717234056620805277457529121542305136651669380056472700832027266905548538660568445265068479222210742290179160722851137977533347101797672205496300117089043168457916044015776507244497662469166752814995694020789178212558053042011195251139680243657108258385246157501763521085116601325164812242076866351506814841911086161685871928420452187285576332200390060787238282226748304816739793983068996907008340883001371376904161311447460688223656983480230736455721264415306941865542037959929778357100177505168318467458592385916537561715544154658381689734492607270068008252324573550106106263820118088258981374618254841917027434413167395405161720821123069060801084839463378171472784052380460487854343841454786720458196280461716033315980319153153291053954672972768024524429026561981154466660822698556243756317085647465862697282265650951660119325328729835054763734426890169961030369132172565341437984546771858884243658249573942524827683015976540168896027837600144025566191474696130762453228038120157139899924953450719028093583118209279615890154221253665216272003858108910069983112386633183070411138242844409948240579197302214595223129376484613383090075867741096674151862516000895861420377942193723607865590949264669624370588176539936256797863579967907116705249006067082975098952900894344985492006703979025608832425824258763328768613535529616176644220149909755664841407353171856534040866736531144682466248882278060413058432728172060896922819202355688833412458199979096642102292901164703843126510258803504837468544915339389511674341516769965992997289440957880472229566987585308642615208140936839549963437721960453120248325279761020995631549597033158136603449825329626898715544211266565356348007406254640200440555950019513832471733099753661872994808370819624421572229606618500979494594906720588763977205304035424196550344274517850571522959279823077758588509875145674529780848291751245560218326684036332322539702019836504410479317451435927709090033867698154934066397423413304290730776937244061159521933755954259292917362125993569089362661680146237898610258123459082924069228195896834229014054714202614030395271182139847140274153271786466384811968230588615733112828080252971324246390464588309947884377047922080520340878706219040481295269719595786179223027423970845566816560091066363032604107829851184701481275491373806766934080136918291051578001268104603356810071182907817042662658703586957974436344807871509150563285706197973237088396914646367429819358094153854221599528473814290095474051314019206654608045840412645543106105545496817333113567857346083782764488570418118294106156179721767984439593287164880357214028538809677111214294648033350253976876844839820868859455573768248718554807804547168096434298401386069750556550423413855993381306382935682959279861131636353952581035198066453030252740058621367845958918929446202502603468061560439713284710500753373762838426675626006165542051113832968688568380023907607538944632602294091107642447924380478802845348423244905439538286508499965364968367637913419247958981191300995648196431924141291802268006834329395001922775834608632916765277935415815134792225293227065341216193098417067890438446533162537703230822688463301078819931266170817269512594199553843513309151012502884818120100708476654518901011006256531206201774592076109851476257155755028745152616494110670093754855284808145074004110371991827720401523442461207643013580416272280160679793960552561686264361033205467958990503351410581256977280929184378091442584377603443873367646949302023370072959839700630576082797131135549729405869273644239343959227938551707868306917734321689014584995163074352956501721545720523587720089236296114735154493384709142787829910249215556224678562517668356270670117199667327111109559387975796042980466693562364836365354298825601135180938982938064373386754944192378153007597612033552906701736781927605869364784918337961776412801676033711493060829745727034005393375292502314040568810427813372022187977757352450322834172242234552793167506046691371747655152536924253489258077840773788292691667300333162477936778864094209615706272907660500982941423327569401221024178204335127140299518547131653071874754664478539152515766533691023789577850883725009469083963280314652930060543522310160674469730909565301915626554215887974913842067122318030258464548319335187315945389727981508383171676869140987632000605651263438885204224675442240263999237647468490793769907996057277982795904695778823402662117605189436480760606317217703648096830282725544011842570623516527671600827475755435140371424195624789953143161001846203167081272694327268890211360716659318208660732504518080382556333590502997911429014857631327460541132878062327007095422016880198991020214641672399944874656423500411988274333833102597545716820858711423195755249301712093095600288545448689324906802315855169851322249381754609142503160580829966789460490317358949914520257230341674540226970373863649476085921721519570998888268604835098544221016487058159207049859545681798128569359762853700097776784821404091108336512090712361880571287858611026379598379383962615264074433280267549856292575011755556344301521939146512636068470551136892995722938436806211227037871025909528690794503165615193574652488356870704661651960745168420595199865488773256057651499003021238046036190640808881772494175338277075755333987566734322036924736209420317780112813258499779326730023928289457571999540320831277423576754958297333902749390896073660219131258232630701386210079425279028987345221730331154545247269222463846434056502726691205509114598907266040061318736775379887798055768242241493105579903229281875245747696185917431904942154590699524559702141726174732441908306769480733662077922890593631766526957366101597083955648460786182470729096704989593001051217330435295412017769710076116012308440575072506687001927190591340433178560522928396673206281000770568211823933298271613468268129873239425309465971601086185801600032276680438426799624270200131258739468271791274623120167994801554716092368506901983111827013403144219931277237320759616467901964705640498038307609119894737213189871939336205177310913787448514773358721980096519285754424469720842704729425984250033103488287784451783867402512792942961069684302356356473044572100107041350280540187435385051854524939572019644166505503258159661674555372813225586537961140296893472461619996543791569111934214710178477168871554158290927220640791332970884100394854541119782238810143115448998998499552073413912024029635610797474992743586330918420493960503413720414723964253855901527467667457437312651169222374563233503622812273924547284954612039132405952513458572068615502370125740590700414102285442410733504679092005367135095403974633206571378377015582037538651170985134865893999236953985469876789003680891960311939234439310373536279078190727806022006689754931577879221409619718588257530617549596674264366164689650555384023077919487087531615653480124833277699902858647240954258646758952055280142381926147778943517252064581357170179817192315675262498644178753177242062428208047916334246202055539648759724100163656572438864278288193458208378994193219579215102199784953033856597387549522377399744762199542828630304917283587606362775657639029227183355896966410224494322604070465247672678275231457744564829128615488585468102927042854017704494158990215872576933475008622098456460319694206643645120995614042702797854641985378086318284547004164534180873528089460920221890967308352492742201116417044513873946159117991320206950200846883596850957438897206936085060060950954018672771602915502057009516586798710462032688636910937292861486447099910238643441966889132325929467332949915091588542493357315883838011542994283297202712127431486299520609066017144882442395898707048936191975415026865422184933300821964547563636103441491661821746703637258891698535063732238531840193635672307398941755255322795294016576036976696118271708619219185179284820133115536649611330708447631939190087382683870057471358986143559970398059404727173441908718253827160911991124601521182441448142434701233973362090073449907550023464529796741385267779310200889821553286378850852301335132361080937453028007180747600115508272944747226709413137989130886357147027219813170187286932997687339012331485852569777749959489604115347949402610790331937438425342458838765206645612803412636071022217422839205597260865004833858785105962932393739716453757487400807440157803025016106689750213281403437452347537271676287915910330654292327368102634147170685483412541268932623828455121447851060699909822206285893287813294554369518936817158269546860413621222852973506674388840614358804713104393911378669493119044548812732721282034934272441849246464718470967922359241563492733293670096119865264065346302041128812284900442225852320323542486383629193952364901636391732049954535378216359059028917853176567272911941003243293417196295084320038225310452831274693019471005928835304939691657370232080926182069641236912984850978830319302875497994914897716800043184477588516191980459033256560135829447179817308498844481633532888588013210785479743068255940802543866695518266962899425955751250240976075914251450846277518187358557743485267994441653803227423346279494246476651760843585199057514613948087069847302159904318678409721252625424398173311916456414468581738797115227797044302225413935068611658117660088081512519038928783067846491068817163924345949666173405371551694324816659377326328759822311828039304071007745165794156197350967333412042602233666048924109015449908459452272022828989984075398940360534731502022493696733807165188396415775549935813403407967523824095363823840651549785091942414446879725687480976251657966133818353190492330001666908942070787424146534886531022155326026933346260857319490856207646426835662780885566125604355925067804768389669907974477526106939078235956824452347748697357679581619965207149095857448515115886834074316450409784410585748846119184615842129215069504661979827571708899240592910398675778074578927460215087813071969922044052112961747947306257789137417493451016067815903196009165013100356934482544012283708518736817805922720140835751597362912103111512563566109379751545280851900869787756793735597860544035035536556597456418783760472608291111647175523023859932085949271431280522186562459701772983695539219524310098557008147681191873292876921684089799375726727987015749780771969572771638024636111667342037590521711546191649853416479389051949570191906243444800068520094339031746644590500464752284392231294720199652809106344989386571254032512823417732091373619690223506944555945716050905380295410109464939039265157925756756419356995992822372434662371653509922759268701465358920931487051112218496774797034627355510317942162556562673748852064485509473339131758210673330983205118893610518761045238976393277031675456441172218323618481137120305395924610985804887472906988756256271852811140500417931447914799507812103555302685727295821117089756376379477082740125603885088186726663354418257184759940485300998325832602176538379564435044524964229008772340500313455212266911697294056354556376887562060284323197379426708348222212090777673601118787671206267331469476383343317316298355611217180872187578938501238259083326124609473455798315363564496445677420173225348247198966208707517068594083749836662905638576901703129543923629648451174570880232882189044754720873755277998830994533914660710480571656628484961602141931801615201475368817046698968194169651347560267881736182385822932589204124827893959533446321998895591570934518232438522625025638697737727233757461722557619632818370830878448539400723143967457715153089182785749404398216959985605771519671345425775059855353438353582922183481266155782927983994475348489646869280888294406149913235817924509772613226780950478201064208055702470551111267060135941008052176901057159346919324497539910907778024120751020169938128117387519539017735813058136567141856205196417968995417179935005809442793562795296717096904390054013835232272524842422201720119468378443799234892250873199882268969806075685907099175675024676810136263760839289313955202800463658843928323688495168885861517518299152150307979754603399762134973255262113419724238566749911558023260862164592761352083581876818834977104224417091481394217692267045357075387263370774985180074306959889187947069243648452472234690121570538782276967344348472056020217795418406680013770022081462094437476823199254302451256053145791291970789875832789083824959750253060108023910195756085383902698129793301606326668769228761551382318251006641956395960870699220515344335166693549538947157690929289853142897255754930378003169994152413204086597175714359325700687905509958179068634232483630549965786066626895757429776449913614791925496106945512520516688729013757839509515061793485624211265700173844899219572885729150749728886323158644112399266113430022565454223642989692465240655266914170231988534640659747786369037385577269121015222133885126530430975402529303905035573705765053107135004076449216121605684729623154078910334287185015078038857579768326150578239652638258105384277147201606365214776281054027175708633302801966883401905165984607426097630012922435667701432363069635015728694475780758555540342484942420050254285786383254471866525778687361074316848116370752707068949879855456981956087229700211103002188232029544139791607874163088626190970174949184591979098347789139688810944251550525900726626699876139487405093214252268733980428240474538943529658558408071497713963211725158841742841960552838363405574683485065887755568311193010467330136065932543142008903886278215484368230221176390191633975753150363276728734654373182836702835122857593776218440118885532520666705560321023877251174130821593731858627486317682239031031497236268880608966094310873045611995348259521842545499248163476682830338016444767146491346340589074556107141555551485483537532117182842106660811150689637140769098556597785875363989553499312435409580007936766654483560218418378284035531233294808114041350669151603999659658912991528396162360711450843884529828250702674174804921944493430966583833964926027509921582400275134509220385633566324763639943028370310537689333100848311105776038318387967298603386640862961533779685698730643865711821398764802085336451850019372606587835272516105652308327529808925178705651213178327960250536262465548925581766903467504128268121669312305735218752253806800460727257133712995473638900928105391917798380317041582479009661953664357936368784922267956687954193015313172991008381054733473069499795946211213682682084457295559859180641565246806285290707933097812189802792366859561783322026788411812997526524062898892932750234011819602328106031840198348008341170304861673427323465072748103432973949907083395630581829791004860189786425481080622785776294806107461650328206803478726332783971639531120644376089361436983753182252235567337825561477418010788719132352014334384973618271626628564731866256891461530741995808251679116836727190119137224783064401695760388442271965870340266410282224645273034670024358524095330781973586633082860983828109966494476017700830270163890384018044922092379609923091072681111441343542677916542710945110024205354519237403572223162091141433872167187327685052767893095001877944762339391164701125227293781761283325318815679539976153755718994302952894498047372087919656427136088462180186661967222702227562705174900462806241840120066096874057724729768655381285950704942679195215479580335559100630968863851265862588105858720016589834844550679090223289785907567517405551829488295972459083454613962928567175981012591810477208944400207164637736359301511776776068486976428683892976872049866166167485471323652314334800386714655772160284094279152495034779566704142027931521902265067499034187066916832699549174553967590004203665468548477163301741282129355061677361069572908284932060916974216057717626462981655963966560979846414460910785175392311554063104550420607389827401646515798705174520498927699715832956327438476515246901069868181739891359077047100583444008090167372662264054095482268838593133442549161341356220798589212681861629230864548499744153395496744747351135776909691737146887108540417792556730097463241343455165480067697111437367059132451711890270162986248257391131673757357407332116803287959290941454463746162297208406284325296875742371291278809488293834960088389644096936946573769542624885519794302577954218932392854998616953494535381268954602659796353904033389104190717017600476043524160234074696558642091609737260174232129805150035192900213658700422656576367625267942389014290634366458831032664231830088911333289738400694202648350762294297342550053213356004662217963439875171642731470032029817692251333147496092100635833979121464838787534497518362246622991349621349276575907473357169899788973500092794093377232737352912839024356290668319613833932207514074953286012315038482139265400044142984836945537453423394801229462644408137707910518093224663996932079726300481875383644083412304257223195378749587652829989648128908857058549347290705947079758102851081330656167542938081114637943708105193400393582829644713311988278274306301414488955120876648347021761923702293721816265770134960633984995535607961269474885913775849394011198818849395197890679586649783697064780994047820232989745264559654891251390972468941965302024188271341186457398209219254659852561397930721148886111359951080866739152778620405263888345097525944950476154814800786517490503619292704361783424804369415149365864707849402592278277376714479977519505928951973376187145510391601170996090555317195308347758885647865413494188644767362560343762576276070483099771263295816613616133487224621212194665863230655967943387717469210195077254407808856714177200329247195933890633364316787689295050858288438983473175798537210006815866567082535340741273815709567866964270215958494400184079296843950144478938675493208364886955409680794587739548479004053024279062424981967690160851178305011815168712122591394503662108223607292029828072681621033545720662647520250590630678279358003038581864902963253897617728962190961561183901770936023047384101381267007103187696140314642105394331447717654579216465453477432274397785363400139808889513991930745506314001026116789902367776360202800146520548736005431247240712438991501091243973081405007693404970890071110113771317276296265386191565019486568583395394171662101905710422803389997256788212011057660371961558942800589877738527073677122392927050951493335635460284714546319560300222382386546559586774326586758676757087644441332025281116663594035345960373815119552739339377280696110945561406685188856010585711723940988331852290886264168759072253759765235699347365443988172949031495340025074290628152157069391749825068051240582729021069985510129839559467523700442376846250773260202661961434146673834466423569746863975999403325338382189165929096786014945642255577289526013756893077249552784394981629048375914617075267700424677150646425978727253511921255982113933607471714796221134135444938615844385663631270665738861615693028710133195408712178904177299155025512168863291822497503228863445232715918973410008164188066187629178650447058374773893381266128030119560756923949219505988964377730694163111391486737419889215529614418011709870038085902621855636410694849785839178883158489181997716442401160553354492908564050020967963561132828394373391001889534236624704920894303164589012677091039865944364250868405596930291992938659678581137136650386639453658659057963128036466797823745595906128380272478759914207622923651333923391354568222966303921974668976508735260063909646691838927677427141219147520255849482063020765313723144606315722539681543260248613389886405885385233743316752908521348958555349455098420113866049399622088454160574029975477632490591749100975791516690110667416253281291033420154405351802772134586655656489759443797063123515342458009855428327966400436649858929050654579740298578496191302251839887809714408538136486456623290196041137127525044287738821466907982785806684092766114874473635508765789846994896479484617754389776422901553170934955022866140393960424913403511757303143572970258158187430491884051319306432193464925255319968143344530679860795233491142081523607307029969449529153629578715070369759756302611277470916672889677906370183751049950065868286685165572030787177478688192659751448094000283441052742304604301929101739011327245563407820765968539238190926592100117734365910188277659648268439530681664610801874082889375021200424217103287336413172607050361555207385039236666691761534242236420529122151835517418922009907878037386988838199075318901050107869864022807040102054577908583558934863791531137630080338669637373567035910191927996593688523615930730286666423191089746394476694807916267586301485273139704032677599967691468667718052264901655498519504105487163947375826335654490734051144474261876787347912865250083478685385490308923804011402008795709222842757977711243772324720910326356651701394640349030973904140521711313992060586456772538727627358313413110335725332892690663602570185473840132742763070802602134091304483851460277537362948649243508029264754759851176682082337093450125325400071323755725791692997178202438046401885894393895760726327198458798483499910439935291824799609511262913762399628424845707673561743101679401450674839119540906802041853729278150709470379728183490275314155081383956780947462388380280064652741598041369467937220306895448263223108616527201401716605527317043210908502298896132564773249478076433931298150560960676691005067761819233488392776083737616882609666771546189723353154668938121592139625163810988559468361976209559728960691572692649451080412888558943072101120533814398844142852436224671509332353063606713051113676484433648196599212329052188280198148519970309696792873789537196065411611150363354989065619901352681885215788916033386883809377733199563867338382844970637593567178434569137549484923832500504331511515865911031367811677634435154158978822938343706196984188689691359473741907127338004846430894737766265121269069806603264859485909980446685720628636604064200017967676085806612802647281475480712999394282368732162273340368064117266732906696828359157314406311329732869857785581926402464646655069139766384447278848729011633878282685313967991257479368260260890927186939482631108327172464103359032640384922323080459899651608497972612325028488702820132510129700753819990592879061953926102815785572949338310606658845049098228155124668147361436178394765444870596162071945954877126840808376450907691802246853610778680886999845568989204799450428247120683957623573540931771333417073854018101294581936161208877643574325501912262504194559599551729284429336991425949607446941389107500888020220469363210866669180283186979411974328864045533054410074709037995858118910904061488202319267177440638826864231343101064008698838470517024847983307288195994008271745158591998552955672006607718502850097306349050715227959030749189307524326868076012737165608743821780019943622761106663703107199334213085764464754124297110539193243494042283617933644714851528025488044944887766675041009032377656891731926973326117071935472059452365833046999838520486895483398505002947043981473427063436527174497795672524259494800424142500231154562799260224328855802611714996239498751336933544032903258048353056202587147411580570687839672003529011298325490132558394627183774694247986676997355523315945727633867416434973516909369929451404049004641398530459630589246909197883696088108552750897383952002670077409207013754127914884264031045456220566850033979619942699046526870326158305858933031191237801209426537916217422118868647460940156761431621846638363990793373521840846873331195273303288370203808043678748689788566955270725205764941808802061845980629685301603506964825779908885456866342723343204686069621208660636832397795750258823077498940778675285022616922681146848411319796259001357345234519986130821220504136193749959475850105933581476014923131158558925874413982239130336720131779862175323788527032101844371744877554181174407129829514695909388721497533366743427067626505480994562320310226568659195763577001608369098326969893482700768663988555965549425392914228857504056015698036134356567653223533080750702224065925788993476183064871264274141894606502725174511639663079305681873499235354172944537125653856906893810194145512267457371161043194040301804142856692843529527351427472627512328954983043706790430982507697311341886735730722368367860186027656070012582597868827753768108481088299830398785975974206543664333254349998097693259739762264277277594254430298250288492659458397647783070897956869961748365860989275469142560496763964077844831776666432452059542814595184873768325321678682363749455329087730399685609656526169910276354892424026398747098629521681649654815627386664995692674948098552313498415832098371380689242285222890030261556029610264025352117918343622767542340523672924009266002744972002954269555543255047930306785886728012066275760512274800696001191583539861906721144462557954640585299689301223852713150863533838470630698263946603238676636689659984590395036314952338809744704454296578691847460009981117910170857077530665780775086430942969954127997040751930020066331925321765936756156857480264525571370036064002049747539657737478905157420895011503260843274303074411280522941822866354375163571621763896103468144491186066744507153526202939251658564392885421346514742364778382420550946062722224680486815711596507776785703233153619543403560487966957324112692525395016234740838039823912722459545239614321937631932307160805207464636310890575854792042172875786224650890131519101223813311194171367549347742997693804132097804926199911760706630695022936427874582917819783162854701227072205073026857576983218559987165900702395498566238392308050985077916449943862398965489243352170039870965632676257795594087792090706797307201603211010118664158391172108075201936672599885722372303406970523189418814912116287461305634553328601772371569954601327051384302465011822002283080029906248728155268933256156594098006575771123997529250283958346884228711290892584754459402697034231110361345066534300863723061272431900593403009918487581279807383666979591234165731438484192165056944228336112205144743484044629317539451025040372514333585738207285764383567024007522555136740944140516861858751269969835910717799156013473412520213700855562728511602722913668344634670091631818099022337154614169834545908609500058963696886067883722955664200525651321098167851924959698694639968539800587495531228080840428901514754612279948293187789037038302810172540959520349415474503128939597439474060805169241487546133827301293994685122598746150821770039245411195403873300441963259926919898755066201881979185645239883335320309365967733757313053964571294153841396091363374678663047242415014183590962101667871056351671331621715053727347885343945982153244070290883961894973807587534986180549472283518828194107560427315104514560132983284901467775767877036682403391143122625778156993343384119272170763112392134124929384467155385807774802199625243517833321479644716286079726990110260044173180893963996335380547649524332238017795457357197275104684808205791460003455203053866567327933216305741208496001530721439987446509190913270036767111473817527629413580374746365206857888549403256992807960466264716887677954842465131153596663207224029345011789405224608551186914399313164220523169062834980997737869838108370578439013697150674622400126278428936509353283861257993859611602011078444645908789227059874612543699999838093135000217201309302097602530265439822448873523104516642718854983229078237432206517782161420915517952774339313136699780566728969828328996467058882261482329967095070954669273277794559377544299946036878160104457570563993865758466585137442658415420736428224119123775008812843286876261451480976601573078162994514670173182139312524562928923764924688282452454724968231413699458424130863967432674167542376204733224061960166031460609215139496543277223863956514119165871245393447935781344035177123968124127162828908988710136465571609056960062873542096501336659404928280800903211982256458649109936837524161884293189602054432791537480336456897991029430896077424744135658630219642513056085448492386424310974381372689479297721011711092095891130426342987850325524256712896829528329057341452810815359980621386536326850517732273872222024449791746800763378484833012362365049778114133833011922582197219038210407224327304168294656998385805939504302812562699941261072761906219160410796526420874919533636452636537019524917723001672147296823320006400467682625612560020897865346030793570155641568136431931172034207975430551253180455869749237420554651156084266476417435435967495164573855968673413535163567639732956538413302870348689262813085800875749109182487099034659210919587325352728140206468154749077625719563699458176930264740327276969239838565049053467926880697083315488839628957273314334105972753405168568293918857546918999265432796983028950872051080763470771503197373601662162495837443769217389170930163016956967229313330327189139481276889549226147683108956982812149247439558032677656629693107141214988434202266864943769997712900508831394817726732041148040547310615901031390164800809658852371637934713141466734715056807862132086518172043306426735494386317042263844316506435610998908287756428963268135219134756157117196149953028566272817593503468836117900135188604741099548063990200288406483177600210488685234926543335861173757859614749128768240106220498402941089408599190806556077316729236022916751845509286674538877095480704718027205188615117751505373328603085914652529792879586998348119189301656883805198655795583791315345928045470099884984693875849997935182313736921881042125138368604521637813444002406911859569934890455858691277441011340413069969345440098678278100537720784749616578611769183059006823710345616757096459739375381235280784448322645615108425229837617087706605416336497086402267324530783264698551578297458334102926335593695246100444616760929742433650016594997699789871593091655480038092273023851552826880197741264279503849737592650126541201056999072376742963575022208079929949947876031435051854923092704834790824326542244006946125998131341868988572314377072637677503437212119593742606516443567243797158502178379395509150356774476080050252004512056205024143276260312199960227751860309919522257391011822205155714388697014447621320511764674100774479507963913571824892388677434330251220296755865516594750311921534143895256707857651213104764881980202826742581927217828285683365178753793737643236051629410356523088773978813381579487029668348078305928322795399542693017380660641721042079722733192819974258838564229122437375176998981670059060052733932017449093719920058183367978945461634442926891696533444437856740421109564414675786995383435294441731864476516401023039534205348215381604340254265135207462670760169828826577615630816221816466820020645598454259792306293946481417619684916926398675100160305940342433176138766507955239057236869648924006246553474892244402715584427026132531349860431829100382131776815199615390440342904379380940546143784189689333312850302877098506016033762739445285989062531324016044176768890520263697770393325863703957464430264776245860273682773799784857717640517273234859051236696451535733799791536027821342333585454113069141466317606106933027254464753101873281636178175247608582630956900205761796559599060396655510979558748233090068267020085917203580618006983427901448969711439471786569998541670447872175209654063269293870181578134212739503595423652518845988613479064121398459545287501499584375436496398485211417185713175729332287734634183659450907160913843687102231901207588008514684661464127953419837271148499605002618985414399792341380614101208953850947271693399893158629569723918107314204427130239144223622003884759570632400399009330767260435013650648550550535249195273048736975420888284044657483453611773904997825150991314337385420316825158201964739002869924091458858658741844802185855739225136259770691425410582991142759101477418841885487086805762910344858398258626712700606205238176367462280577225983423590053838220821423742387448423845546608892313935210555621997781927168944512353358251686679250618019364904384134251083019851318173213675264196932148437819189809813411756376028655835051441838033042228618387515570562800046493208918507256413977098838019089911050617934008436342525614081462683858698052023431719053610451125607705656119512625820277638339846644479518796722247427092413836580633428765234488997713212188480434578737476230067668918878999780696266349726519579912317962056397765271458903652831491554890702596314896148982540552502257626843583077115932685612059422466906167698532258643758505604419634313553292802821662228795482675469431636196609828126728336564190045099497490381737962002438103882736967789948328446867141493647602240883430729516980414697294738480180899356393266919783776181399009329634400698858458772567090088436408501658477110349561817053680490636461302687494769810279400217891490581066561968796115333904242975363027242379858731157372908201651792178772592448835461609628510011086864190321301366766632423360203983037199311674757465266563632722357527982208394604226183825386286436302313898180927786447337167677725603115617005610987860011756519298338170581515294288269525011843286546791443555999893347632536703638986773234079564011522460805104072896915535806494384716241825589680340145004787574338233383368121704669145432899133928077018871218193312200746984355621391421942037118777695417059884397384237272281915431226476022652657318064915556416757069557066876023892995856708221658768721182862514414946601396304786584705214113531817154075881690864754134111215175841108264242727581648564105559608595500595473168369718256662151636276149295586227447452354352459036349357307574944811817870509948548382607588556835457826549519880551945068683451506897491287993955688509299372952026122931744354177658787628618889367643168658657402834041032095234407507389633791812638297307480924609701909859258725234516642488703832436136177923838871882506853603129092296033894974864897639027378106674709088869263467752874067226272156025058901486541605244912457531118267968800214062938148323368270479726870518321693466903239154212825636092598784836818299904522066871099591421569899814414430329633253212076571680157208654282824590115610312195718117442719124472616824131351684072525724685452944298038267222268095009731898955021047303486031523535371812989128890676964168976503087510888527954721847068619700481639796713289740638875740902502377515095466707459577635846541053382644985547416431586697339537825866068910194721557629791435995249332697358921677765935600325390177540737779550084049805920278851946618327844151421143152066647127892969008654795967322375880023457873692363592485267629058274722364966538360243534033899248157999314517768295864224616154527277598974587187925410985181491328243598550729077406307663543341755061914102103097901045527270128058782412291907787705222090861447312712355696540427470200080096444768770311123195879653934973832550986541979026907364402906300069096115587678267867767951336366711328270608117089754756361154418723007650282004661984071442459833707598894759718598860865697136044343416681229748588161593090660801603517183415826103480544086366842633196028974235015466415248279121129500712553952710344348483675850946700253788552244416624022019262130158496911568511706720476494475526322129329246064545759691533148694654952445883273054602556431592952383201859543503732946779799983816057403366355050954268923708601753363736815818391054600333578035174227682100538467642961913444201725003315783330345029920293349250584261678874272865362880091812304980976481782996249087937364383735007204560773726674831252011420277611541828853812152312250499054845522274776163156933415437832876777657406318333115611483271921540993276447634841590356884800959941913168315713216699625229527946847674404959034867370492758232343594694530360292105145071434229541438494378994417379385717398550554153416927758233197868924162018731328390072684900364012884243755706857606249278359839201311506213997099632594778144238190773582893732911764192863721361045073571557842302018037067433879844761455552190146488348242736463778449511310973099509039230214563941310229225662372275936338417744898787229132337270615738674744887263251637917523291911526442093392967895749878155972488795833290898048376991564494087314634804589369866244762214250671199319989763346549558924430832037494639124842148495418272080134133803940057497698082373891208349047005750754578534320050498735249045708238683004905024652061281768047783244260098654506042662877018574677293787851791736113609216529172337873897785028715878973285965627254434835292134150965303517454155412961696948416630879483771841993984116957329934676300167570902482879333299964981235746192701468536383639641269017243357057630303423399718284069068458531841838288610506728495793943284544107602892931341669999202817364162925165253348709572555567436173935508383489027579209644503170893073804212317585979349545849173890806195203059311913248789267347594542722847330341292704778120800438721151760339184879198171306979725538380884820337425856231346165587592226182091798895331549866502945221475509072243330594590595997750442852423624675747694558760187385305047344083299632172079416948771350524467692003188630327286612647930453640385963443086266680404325434498623454868618154165035676924291533104605069095306051575302583900181801730142192816834689137019104774442051866985643765694192243852429426103878843670373032399032081337026108042479812294896717295892826637358834626395011818575626450825798404176679651882349840473239810697288966092141591518263175733791765393518403697336007598150650744230583901218372648846746684664979277106286526588619991108366203363673333876811854355403664533006703923683272362255340995461391650560795558960210429408395971443921074269724410226499218716222976573278850605957920492781171321266695863033931987913686816181910117775222841280814524917669808971905659212571393038509064275813047178260206446376348581969281476331502561582401417352508113462563276637427539670101578166530852551562091149103675932221850127872201398283887929530768502552277735905887169406106330669184714365358303448329531572495357432363276818176285462230405906717261911839825501472549659191874981560337195350069662408840324597986987758128107784609969811014233052739029532027089578797045605789858535322699887352737772716233145605946960534719202704290579331525957925496218980843913825522608503938899983372665441683292179243754841285959580777858257453641910044842839088879998860631383986319146848055708302024469515590411090381347984626393420796926251852102136251785339967815127979840431519232164271755046340107136089661643177628735536828154537828362376925566519820895905761970334325646884649799499672288494831773849179000039705346028078330564392260809815641456628547255870429570324481192916996656703893051936363689556557458250067693966812948149305413305172140289060574765535491101150849022026628756242830003838355864427732187555889326739526315527761375213318902117584149785365565816100641665303439141851912425073300709308769998560016403374683801725917651292522483443240154198861499719543144176067779500886461311160929924093512691855289761666135514883653869758837173177550950722309751462087569806210232181686556562699430126186113711305428659096571426635977363107093596521801932482434817078469331747447972343354839997273942200688621832234588923633313340456636389983657027472153757811989537118146401040449147330170620877897175654840641244046977604880253107598186977119832028120767310426926206279084441787050084714807775977477359754390467702729411669340023215328052912713590447402111525814313208567889629765061380673011245149863322785077572575150797515881470367974432332370830383272749289530843957273662655167347158832107916418159450527994465536789811702469085707587076392555092832770528534275509885374807349586960558141934680773856287514718837376354156166172223645195255823215725017162312939726474844644307117563928198386849047474421635501205600349014165224349045166526103028907798810699416540445523786150836917215700416629303548773856245747215440185015030276050284042024457917825955697345740179717483093112608563036580002421096722402092241763836369404039432712419573621374483966890480074642289253954086009170308594291899464302984721461668273279648932891957027201747877976720536297824927794624239906704187703008964316642685659115016654224322210473803113264263071897889176810794344624482821592215101492720148006080036593274623303151246774484018903468855404784209373191364426715699074834080867809994291328583933012408998919702591495173949533687811355022514256752502657933169535579636249072187119057778806261483327184971507628409380390770704189106732116581638876000104611275656902256853188681476957483935067685575639540381474034640439911819012043448368090403217956433376153475488254557480097012433116402080702745951931216597739851712632427408657531592903290942572878154006181890496533497996027227634413330768574956905207737651536941811831085027473339270577890130501271602690465722029414435906624324834891062278408743141843387911084868261911832665206901268660578029630321730653591373608058842907851798594400361165792228526240189677586523939790752831235956146482327513588997271999423323489058022300465063988293414437450392568533457003765920105536250059340855579651974125594926330811790107518270247961752021711331283194763480218658722359265223072313446088555090505045402134285602426510144240881459786434541813905345675463731987430250010480391162314110650418259879507618053637978759079315350511226648011172246343932712391447038090402456388350714704830171258380613908072707530171037787725446411087438296830369403203972555278594371024428350705390464525491784839970199817536023492679298369720886503666373430593586387802662131180589697035726646417270444556102045215626173894014730086600425585517010403766695333481161076062611604039549687351470933986623535672017214703600172060649352435932540705479652577921407279069044942385099074674635474780308677187401779354185154274857567234682850177205958817620057862050885117285150392626140736643552572913328051860285193547427707374263537885493522926640116249174014991988634703049498314220728479356380193374266668372893190118308345868280720380854274531175908903805365709173697156200672199623994116172937962062799292797489819894388778629294183854004721600173204090826697664332745081900552727279980096382128327501016050090832812380569041635899627173474559170439510356437828288521192548839394283049872349627661483262177410892830360864885616694431696623340420865494957753661809413592229283463315455034644051187681688554397266081460857247550824361268873403842224155961531492692031976334664394393419325640437058559342582991066783333874193820145848742724480537465966188949710705868116133552412278031606402734128470602435523837759892167957816960984205985220303951705339115078135749277913828717754648802120176701908590254706164884637499763598869862276960391773515054150887204257057118224490975551520861405524792289998115902502652563354563714344014829680123706641002225880429426392801467504537632714389267650676535815566286970629926739044422748244012060548257103891183132425212929916348769861397198581717112038267890028224449109835690959757762564583714089437911481291876398437322968496685729218311335912047911965641422918982737979581677019475354983713232880887876052551374772852255606118491119420402304943038021438412226234247734547036203958393876705713559053065533875750460588604103820629248191650509564502078538955293164229946614865512667049729806352622257586152004240086861913705337156769331279495579251982891065807266144910741662514489285334157755997781464639431903596008504243753497083696722755502899900687872753214346504469175938778253087672481054696959972777334169277273797901687648915841341359036329934034947903242591253463510856724627503316344648061886269760592248016704409970213723232721626391953771742352965957278819279924961941007350858256583863371755161072757113173928787146492463424148584870914910142228157942827103430996003824600789039556951732367731228623406795439297106239378283668103765938061803131517506469124139186155039323028954581127115504457926522401673944901236146265434236066154279414597671181405525214915197664691250634820538715620837673005334963265989569910797520790296717672885857044175264731981475393572451139447159392250920847573117867301565313055577580975376617169004874808713495418753135363430377424195040700419223408475691092159953935220494914485473518814890377863024578653230223665507106788906598761259543519641027735718260035021889590607187705012312714528845133846641682095800808068173239195328079503704753479223068376839532525598947029205989924103638450377833424646464083254026760771483665043502621061329081832866283222016990858770463008318681349357607008887966767670954733119618770677634932632062193029873453503525540984798010545661034214758804557606107111021748782592366298066004566791499771471526523941614236540524866124925475773128129875336817826521488193260445120180978342414820815931915401906526307000296642359502658745818201624968338075103304699119350989293329690039222087012139988785190352388219536316361346544702470929312238655563229779154122822795959446528506743665449364689881949013582670174964087638767627428364516033025361879332635674720288675828674785614394149589947269542542912396098715060701200833613744475423639626182540383958155561121940204001556816206165487221164426821745363820495030315774828507752421988248490967653162832356105860067208417319340485167140185486636273461360545662906577500388953270655948830245176211276603946616979182259798921936963464054708031896033298526277579825775520609591414822624581619424103312716705330372730250606068037488230590707531926842569132246991820448811149653983428073870495281509659052546400474093392751969053540385192282849117080902940981021649893808305209959013450170441417781277541931510489322127073870556197013676222206226017176473169774367104042208467635653835944112141205531945762308807976576689738347440216905660684815327916114112686414751843038207645149149773772229972899048185331459728320011776434551829873537334765792825116607957163904830562646291874860158480941885830780118239271482260684538741132844416951339918265780188274399467695451152763931952528119086541369730553090285575540047882911664471538847550097582875379245963918462925329643365383544909487066464273608238050626827672614543044189368636393725671052948046830179205435280834475317306868594104217898202209618065741031589797009224502136888723541455639724188785347110073469214183026256155149890882572714689513066435829057994290587424276291843263418555501393760396097546063968533121372810364685092501950831646323392221361705170051947628307819964626702090940176363460313659594689474184840617656208293752868835840864620180413586510851728365586695993248572968276648890550664534914849507652944543960685649029550159985614794282422313043663459795290926802341119523324575578788957216187169041011378863239028581517248153101782241046823121532846911849909826828516709767182559086493130395818234698004815139127094698677549251438737864090376403319660694904254541815686975340762403783819791895330677070047526056806170368390705215960149571696041118179436881218862161362951857490455979955149607085069501524474286959172861052143383927917954267553725621652441993992691494314627459200965183093911589022530194721364375369056929352886116856428874421705537227915416489901521864536431759705139829741701237211930270812633144028668840099912988924016184697825913670533728386717790702649818960806166936566663627329899285148273952916383637884072201928766159141722267057606527711038230394016181940331231006216546746817493593980561488720358807818342208855140016684672982168486271364857361884137733553467250804683904677138302621308764125950539810047051571300027073134003706919647291926111818053026406194720860975388733018836086050440282475428914977717654584320888891415435043332151091686557481344278382993224717177052802345391547288766586810829826729800083606768418313226150990701482398579865523815397102038929554093824263831216725088665833661081517777583670142649924946088071301626865183250278830550514921486875911796077371936746270107392962812634336160272145294713423208306318627334014282492839448646013236388683370225401323832415162018817687646503814305918669047662483957683148844350465290022382950673632798348198339835148747202804167051829521519621331952370369724883322920489655777829748575618801358673184567435446855415477746739150113749077281404048907698938707765287001184719782908219219911235678525895629042360459084127466162486032435106031421819096976668689651790922870570501418546469739334609988657928146374976381546163965254794866939947502352050646622081473748996672762671681003041766655889096885962142624668662980247997092400536545214850902317026086545112400690203213909613270994379358573845665759128011074402486780522634053205262578888221765159817463125988989219449402156697007917537276373795513849276337328436750625250665219103144228634950384650236373805251892380587514792477012467543513748702897702957700160611225335128587693649373278551091275966884429643716588973713123794813788664752021822481467799716381076022666806877467714316115739699796744289417422540197282855126821541656268369755693012695190797506592278859752977615075183983350905721958239033690067876178769584348201200837681326438974001603604344732632871909154594224917687917285638909282707522028973653970790103582696436707494713935887723474443884749519923341852965499106426832287930718382094238508083407284677896899111774696028398939756283570008507928976595879470091895186216145570715665402871699152755539176234754978539118225559703382655913877361296326002251852497901367476369677441403209106990243408289954002685682652536515128708552056197125835680404082977259874757151269619903092402997831040887986641618461175184497172991676548124252854562652727494037725967036939822259631430554100350346661152679404288183740410368260903061226616863536381609166127991709922917849859074988523333396159486053543443793253584831762509369580912656668027497844937078349432732272305558993529659474266574096069608650746082935693191298738734438917437562296504259017533237566879355922056827274324732923727332919716160565398586558587740353052141991655036853083628206796922301976863498584437057291659143878217927396417998865065970934352165823131287671860045268076098038894548999399088334087727856309017729131664544251813508028011860420067352228318721052948423923261100896321029314229984367403819633651452728454759721039935306771569663421190497415393673350045763308017876441687938319846344970445669611956406519040535154008895692816794570488333373010185485999445052438347405369406033172876542516655235199895779808181790246191411038086956616658002010405770326550126122419784246313577343179074173844126146449425147103159202473705430248568469722656202611694084708287978642841562969129277640701367707112876930560887055438806162426418896223309353364831728668739832348838335962777912115996946857069688301344820258813688630354454516950254973676236368166309279718833380455978831261541042990517346593707524966509651277806150487010144849046380092144921336701578113010457072141575757981794280910858288972208045051753291247305594030133415624356816056105811130625605297390664366550545789347217441605338016797640694802359721490977632585511606007872464719945522037328949505433066191901472200125059995821773730170247169426837298367480822341265857940088924046844988515276100651466108177498566126754971115827496628018217924753000632076461166123751105035219413164383821208597122748658027113037006304539428788790137882572894218280289847324406659060889965057039663558288234988949277828949054868925424096008987498345753513948961556161119512902945539119835121807630023562087419577579121650490377972068285290648013787051103062110453130325967338866197042484093967749465221505360954854836117451771207744617206182332253789945621144301596793811612676446869649694902008164296478592782836564799122702963784479288590126679643044283992612983922743715146810699423777691978062458797859040851993167042231138356432209963814612142347929244550157175998545064611376842556677251438314387918341485860925221369326061802237571018258257049365678764977842594336417503990280610056944916966588389443884146427093952858025623003297172758636372583005961550388456201264829160806636152854240610697263090054414139956109778386028498396401174101911484691503022321330559175454882958753237469936512193035833866116827623545558345664308176365819519547734078257137084180911116425276481469707156736987767800304192457205723664556476797999712493301189503082035829418062744302394735749817490763930539761682365638116935524345896924973796982669459232096094046788454730274990882144264510407802031609843694863218461594312455112132924034557015693892219803533170602152400241322314226702965104408231786695143727002970336894839125856126058546971636605623634690188854216125615220646282587215194711746990994434579078659568458376349480727372993056214308725273209390507785443401957621813559345197752108722614815699144414025062837803568780192471586006020173468935622339775115380390104823880326035389903127599752682636829398414346303569371462558548330572993099469144052365354149188596881746169334928473086658142078219319745420646807518175512676878147743417227973042415087307084653820515370650104097927990149949169653528827154022703743357663953101846318071744444364348004129807161461050891680346707704012732784591385833657493119438822855183763339941580792210438127289753564426659990921788768167452178810889164264933196216085888235523918098802103018791288610187655320437258065619006631199508669961418010035319785438089947636450549064995829175260867936692099017360384185988722870741272869543546435052975094755515559404901548621338045257531927757578810714569283608336434965650956442033880356505510428925485338488105593482360808394881034395383072956912759371943887516725843242978940071402103702913281107403379023996712479682812054683766606895244493818551853484823944236082244480968158499605890285907137404733146056294423417581489857845190101914423870684642576918564937343358312680589782116009458356880066675349079998704129903823208291410045761981072634276248555926386807657768298625849541957542199259162019488549749305481462876653238965347397929709187951101021007767585813479653930460158692887791893448845471794538300547047590663313061945699338474527231320348864742302994704710034425501133523989038803079680143599797009545956756043408946593649426036840892015734729479226042362720564231775146619177817383240270477064812587681702524114930160975782662884380805517540198944458179974178217416469726230001854225875654170762337227740587982235295959893636923377437810923594785895788494976084049053546119871933872736385546121122238868685982949015339052747428256261352581966046131008758043422175323908490828483692435121255173141797389315815760259265593558177102547787866865562612232002477361397561586008044951869573247663189980343656747940087201938402760338348619046807357178647516551576955859033535953237621445214184365335017419689885459992148508325229991678184361244183765348623932695922627395494536887419485484984294129561939372473510524039633642669103660212021743143470144787340223178331350137798795432435043107271831420924358890890229860022032448984430998898393604230911734323019619926789299058323971420837598644618527521978715228804652086864977262357399502510555180809552898391319318972199712212073399614313019764010660933988677257731565093167333348451861997340395382159003847254169309388929204128564341376433200825167359027907204741939177292497216148762625002928204829272025088381067425415567561837828722972758023706253957212830047203814066929715272054198541471224621073727605018937234570211898472382106872860316298627087737628113305768060711896044238899834962243158702447835900619927698953857361827806269958907259688600336783607207338855411491186386226674098871533388931729838305627862875588777284154442682403435039061949780933748269427723971999062981520446257410757535887527310580273348172079122036294158292881398002734519387743568742250629203892157713989177309891002130641401176301856428733082142159789413854921664008880006413902645595292697643851291913693873764857374715887827190127854311318785171327969208300885327116590588123735097758839860761504681181305546580226444710862276861021828247321359410558877570737716127087282836226201670897183846673766677974800893978212917143484640195915188772738449248853863999008807698747868573155082601864725149341436838999005059599239371491504246411929334961039598819135196674034300580556790460907596714097805065447615454975115527692553114760545745881236766660932861337956153387804337798848968134871643803784946147722655838807588924570531408414317537834995242636749239710644119948879763154946336805322760450488415154178431149188813959799840150828133147529898728586256564198732660972042938805802702838072076742809375941914912307092767045706765759219210350253973644117483326291078934400628964351411709244055768164209278813617371035043246048325793958632703479447066193351059662738045692096396117623459990754707134020508120716479970778391890419027530064939186862947546520938943218150633855543784903369244382006178873493658551526208476306899342732284521070584124878772389694072935270723833943015065883434844371225231201134605256927476153798500330400530959125540411889321891141985955017690151169700872184815517007098882001972042982129808127690628772712103521005845449163785877566753351532959061921021716126882193161124164546158717085180671250368522591441592363186547495650736677204295268157898032911613305850989565765750528671244380492409191880715244149875634787784984965951582819298353056122052971394140812525665568492262237179466177316080986467872279768584784616884375169646362100687519840278703133245880406612334918104751234565307744705591694788317424891938275908920271556648869266682728486682608305311514740312385823495682133999687377973673525249180352928828139281015158244796402097568200081120255829733900853585381863402378805767427704124961291732535715753137469176510979436842078441551750450333837783913927090347229182207155587934952147616202743336995153247532348079839045753319300942246370869301669618917208693725885210767932350833466714526102223211615493443857822799534860899617805647554369583590310329828556724483068437465886212131472538125567113854014740011960712550372823881197668538725349169658797078254384325079783903853297344097734986663428571270632876980412128472914036865501517535884529401699465712277139863843880734160100180397018342647697029667662179258608093436129893174077754886092436093351785175762611329011286762123178275835501778441272895241521230527918475986325154651574961983571259048252087999372006452730577136746246229147273858266057072276584208673211089263236769741761719094894724498461729697588980548528336946279102499027312462643734861072427929654193186633261250436286859594136756371495532508210436338231034197336777448719494215961835920800202706027209072128755118694622650163330821580140527624550027679639330462931215186101952520573232209727844323729103965340085965631508153901512542132172045755348656868349893148994167927314692653456312451344615755570003193283429265589124254045385032524239454699872892154451986674931415896348719739019076786780382583457260462243488838659615412813340234492292560923670726979046298837927194658001870936252352899507265499942842203753948767288278939673241525932982592952439165501345393278842190021733938419419874153691907859631512400462468826922152477488642606490865010735552207249486180636491925303677026480352871195724136861444675055460332925536195279371517139451698716516289729155000011308352778958321867323211248865679405134846824866326017093585710200044396598707637055716376573347987805745107879826036115436368509938418317324718076773425352276446712817569668954196488108730833356896605250806218322984227719558416836882445210508088545541141053059526676406800623920138197514008740841328954572419214958952796835530955695196927970576267485029848833945676636639661764708340154291806246465689021746254638386731094897471040924188635355953255248337029238988184538308041419173569224425458557696783650578641695239064806086928729119016850483207940561940468685622427991107759764936499374675152124632285688350044130680589855967240030165156949498608221255229382488557577501924164273888603156767020290620579563480195380736049165521686944345852858622393504750902325626105021743326429558318856079119618126956428902183041914529432551926778749949443186787153198235719630155121705859335630961349865908563079515390125746346673801142117102936669084055752913131792825749019832508530946199040004196770144948411901075484282410856508586872754809699293492760948215492234262465305243182949947070351155020847049387851554535669565748274217660526022266468990492643479906742251701477153996294730546283608639164024012442555431466452395030316077396555514967696961829599879889829825934446410589618354744444417671497793250916596012242699574186847783545586665693904657254329714021796017621152456481426742990464580977002086926147634306106425592889734190973638352049241181647686777918706856247536539917658866539866753636311191596155601599209600663737149984891903765000474092427128791753353206305161329383019485907376716846935035497575956997274425144543596476137252205591543626083609214912653525312723209230563148296446736151358141856729707429015835782233118064885445296118154554366326443852919166098048198185767795266733596130047175935878577877317419474958360484559630071597736283028039937258112108159914683815814938251597373201059496582333159346417656824367607223491631384194639358414998728146257634615100927964447622076831693872239925047797174518477878656169335936474637529164664110030926670282894337482773526620845900738106191072885374217308052309416786209200772837802925365169066801332214126658128615610037072790921737881825313913540499785254845805457525409844948828142132448181735739554802319885150054646540576421954641672718553179420076180170774201757537655203539303804672207170797273615837283391231086939067214255339749529482273281129254733069460162259947343996377653533635513701039861878052799613680354786083248189314272040359621054339315577076446104123123057030117921702005281057482840156636763964895749697300715507200303251108836992537234702508373279465911197889827942659232504399150583844075559396676473362907779612926664689829908556244808917216429644920454457592132084392484199449074958775635554092351991592316191487612920443981584074059433777407221677748245891938603130710238580677109114455000669369868349296237402623574365236464757220287625561759674700004888371448143719024718479381437753348528790490870984955051763116201507139696001641516236953777857847602561680702395316046520470884853340352274392605853987268309459429568484947805651843149306772857763530410754275786012453607988417277771023467384548264829950084108619934667655046073575501154419869659003739774049400369154099876617531329839337593759719648643122550360596318104020302308469976217791405509336657128136310106369357554805452084512517804835314358512918232841128457089254963986087243174338194628151986450774871873813745164654531993589153531374066279857470417721350009641377825266494886245771900442927419010076956915348785354722356829067993765378431565931404395602084935520029184391513494129491965016462766664892862417276972194527398086427847910279963601482979561293262705213273169192006035833652922499067881998548613707029558469970654677463340698916758538744483374204446114793780114831772135341698485105894634877278367729622498711478084098941984641535741914765569989696638084805219146897902564236350794568854366275543565987734180862273632732243966456922234811712247693638686202728513121534138145549233950127375700223044410068043685189313158127098119646345641172619327883990510769732780952480253132204588067600855943031542697177142791018624822016459126147589016340654582101097100596311199469785953999090194651921023687665821413003262551193360718147344200106124403582536689345312137573489173578065895877661146580238735230635876443293568790850134936190822074790224634476207850742670635198164632414528478134725207346912179375746511966811357563393095911305465069213914270560900428314475723623030263818582300379197125051232032636200269369955237847835806338875837719237527491352457680365943447423902767797554346734002112161458819729585981994050270103269675721488499803989129739972393560801206763161332350243357795347766420195190987816499079340735216540868440750515033220276170369404538380249408121902456966545461389738577324443396850150527600804551106202938694845727809918362129534558258071371542524769884605935442912735538042784671581418247634959909601767628217091178865985810454259485511579590556697906158582666956010280888716360521805803993877785620255264973239777235849462455043997661394116145621850091942944066023000947917262066334895226299025908058547058926917591501892444241146572647468610589699479812304567318738896995041608472791889133885652391559387720705346366279080887286079666345231406446836829590365052142263197024959327572870138173130277933808775127244726932040219306143563471908301351726186804782912879696917760687910936177883133325377955590393518828998136447483270944063503525170110467843708653967077218298327742253012044992063392818217770711724874451274763686406927469822508853749086048788380029863977164108348950927245218750550914092866101616656671301882352583111684088563663297661923156680334444362643291872346656237336532229347434622312280293631033888627651346626897427213871700755880931204370802105237367591464376208979561073625396693043844135559082631558017427117087679997152932168911349949407469955534127011408876018401132838552171477095290410417883290887928857562358849188510524127645617639700653554831931669567568677813845589073063237280746663497143368870390830273392857817631255343459447502949613018868895126261345405206596450471435852109722645805808252915284348161637593322786432483967165464944264655574042601968109257127216409544424989906337280455641282039110110910666643283903244888721810711662006840998288540924041783949872686846611730374670617253782022834968902928476107897894492705833349789788946332366082822583476022111711425369732652518181064972583127315981931359018969900731092564360512981431074881235294581824772852685594346581434998625007355499116136515580990388012122862738448713185537154081862764595882473089082010296886649738236834944448478612208030806936139059162935834923959784529809482824237847998746992477542838206853075920363863726358353917808489357886985941213043591509646609014948296203721076487907083190875411985983120973099691340802265910980323313795883936485387212632366171886205263689472506735565491211932582814556810159905330229885827911506594000415680093388155389137824107105219259986147483744615733148022732144135904389445014482249624450614486663201040570564698180855825473926264165642605894324568729073425704234942666994842417374236861403867743642724529827305247561233983399843935843453047241956788915952176216697267777082455390837133676561505714155821415725852569028113376286508299876020235184346865918561551814920814846825485488212134412584742964127315878640703286787614702169520083235491684984557979988512924429310181241992943947326883009303557706189780838993059712355478023363885762054244143413637182329358613547808670002731282500775391620826958538330668798354926004120197808927310924173591317859646940493880963645813415749880428161489263985295333838833068692655617717652805934062437038765549432371095326733835563134328279636086368450523550993110504155238656837704109980230641922409945654869714924581773258291479157934453426369831975191594080053298369785433390050660380036166558193126514056583835842046216336176829051964125640652861377745591876755857580399102187411680122882103518858197383936095429479895337768615231213121182755824169324865392682032196327312291184359357184716871257610066991241759445764785518044932379870282932649304648862499235397871536869057804538707471823637838235448414454044350845665258917402917379049718225702815327731582722017440122345709856109042968863325818665584001974964524491023870676407627991668255664771721868836892463547796320647420921585685053542890060313799304214923536759781511355037678164264081270654128358614041084058112094038030804515378248907999924188146178942178721999055014801469954437962545158475341471465891950101022050530557072029231836384913919743336786099982218999775432615516054330367314967633915289608870447236646349528294291938037136264176331688826499892369093109742313351278184895750187097333031485318897164095429719824139319061669058836338949925217199465325377018840989033699434041492957699652318455180879856148336401487560123880389503145062143512846160439294631772751807228009874830042922526788926244398328987209671799188896915573915263498961307378029818554257367139350875533944053801185732892719694276975669313612133667797424902480525932305549839533023513266078903591838796127621309719748994049997225343388504466753220603460238139209120543716199484068048519147515803042315314188179680192604320622634920202495899839313318319334088774728549572774315766814197903872536295221546174146245821312329532601240299282349142635675664876196467090378973289529035854296777022397612960964286556314870710109623783064516017045823960735978742556351931426936282460498840089160172053723962400176980188362864585168710214829255169591537884495779491112926243716036010110628742892793414338058212360773950146521492603272664605875553453062258862288637205706740152104963275343166624768132878697873418226421271291182038781864580220795056408040936307011230925220310344381703291246842839199877762301013064583274543668371013798354888553266001619699767119468736006574161076365580082665463990794438535166207581151433546781280861180073488694069118067936759872875784551387803525627912101993080449885745922283878712066308739846092328469312846623813373657511097619152287017901030077133710822578656781470440778424451594346814870522698565820230188389334062934439923444474590632105986631948100222367742700566573135510054071947931209357803879749787917877737042327758333196804888248564948486258850457601080031612803179236291547792002295086055756932928007230475683394467322322149648868844415645137811637978989354426939105787941723347460907388558089079848783136194423042456935534538218740409086350454097645353885372197430688101174291626089510419126124063292098584551446119826100842461830200239811187520911341950501498251196649498760749374841527053595634057513726816767227869926420571954511594766472215087347362903855285608426982717217440013030855506854609722880617198259845819376528403091975910719191043708223881497762528324359235263120167071753660083289663630131683509586995990387047758057697638583668671931664491267552194639507345244136132805479309810959734206382301305186486080575840315963612015975651632395930031861591491071598552015794973456620758897363589099726623971688238664278852404766885013600667740816225594960255735251810682364709768114437505785950057881919730274566127075393077974707948774549414953233130481306623613346953828276565351597904368674818886510788832532777389195685192207105883606452840558942497516422958639824827278488697098365896358630651008285227681011399828630335772921635750308723248495173065448905207563899552370279357002827409551788080754877419140540676846970940000821644087032478004869585701567602465163903600486521581843772751832042035620579544617227123633277062002455260533605819605302436979675038821543662508908109032662699390567475156500830010346381186853524548717514660506157289895271945204368515743285111686184878311830036020961867636247891983072177571970368505808819351786981232839510330783100626585614270867319618530575268675053943272653115772483027226059264891237979811971129822648764846751152968250760230448125032646859391792893196150988448352281702976911643355373780346189771285780342754857691293594095425660647071096281598112644309757594780255419265017310616966420063130808463982494375223402182013810272394124382701315743922405677362148897830774057155901326697744965002421607658327718240945621308127250588668548431720242264822945942850862282846822117019874288078934941417159460866598070773055881079342734944999923872232506240762715733550542396275890664307075449893470053389658533302071060955577800074772591542519740569886883781643343417034149712084137956994523376880000304199208356466636118842537735129918784073800177756383631289046658087798609865782962703615918353503489626868254713698127833583634112132406528395628612833918646709013198519052310274350540809346217832082858330690982761025663347708336782568080166329293849374307196023734182114382091232556579105145885454200023633609132571259944725151559813763154246336243217157623235322474539142933647762606348046331735230412484880326074716829328621848646819594209414034193037137332751121123653123831018300726340002121293878952124702886189127672690628297850796031852224285370372468022406873760926845975024323147524453565837132027754914801620667534305766807003296403739953948168248101779204738510275982403249016395232033172804196996256108975382270635258675497944994383082395235646293071013798328576460379212283225708789964191472490259157290277798054007325554840296017734970997067643909116818120463235218943015401013076005093221023639067588727408159798575993455658954616961051565223586616886971997993079724706000049604101038252733543679115034292576049431016434866839759885262456703831262500299205912687890883893124922629123870701926635017558605467346386173733357413975365086142033732483378597006542235359409478547210934980702718257961501042647543602184917335373417882648427278468769028461045106832494622963960741781783995579787445225778664940841159018981033225683694697597047312459376125163808896613957971802831354433843520338441089263437235803403862569544766994957353386098633731946894320231626828753473837255151399363820235785929019596785644724561128175930256703701587222661322289925313268025057724575657648083948908691288783191470009773145126055796713422527299398260453624363215418913185901908502838892053796928217583668380058709926101112986811502191146142058844859078876354047928384496740137640559852123683538866732500074334913597468124495242731058251037398145384849285521420791670109802823509165047625215910546949049113014993707314868820301737220710939649990383719635202616187199130983488756141840196036140290750559296017927338914147142856550803824877846891898293881713538307668553530332850166674130395658529604010988825971565647340491670341015409097925674225287521776634492614886122849374031574629894964639346230666651634945924524351800347963696464381171108696902920034779113524663550100868421368141023414876811307497293313226186035982036266447930227422272687818765929935923941058122029757361649761987166406485220713251885711906036960294272137861462268787064818321397989513727747321459473505993892854934578257585115883116906846522260649600759396026813267541713427032745818244288053194263317608348269376853069936403216784814282316084860970489957613236321827180604349732329615132755485481664401568386296803381709391978429323060894003864745062409927344902136461313392482689143527606789107446837725781688548644149051774027935491063714987171328367154787586753891991203246233912535254832217405371984656550791640982746194854780133485020653338228252281628926340345480067196625721075472291088159711733512243107095808319872979083220993387044833442292717940174949244679166472735519642314200946116070636822454703417704978716867851181585691594812018754913268155017468090009310635616943144358633273855490023666182158756434282133171081508055882774649867441115054173068236378954658736252540958777962160401867193432042690157329432216368963091488080371045948179695357184786266926737589267339987439512977894513904900007961201538979346931322247697264704939882703229667879533830801903033696711991396978032318524208928359224566886821408147791226960047646266039337833422098968041735788417793345479828041436075681065571121533986614352314079122145357688957300714448393513163464822368009935005556457327943628077003340402232289771855814201189723117721812991558435567312123589375697416971512877180102621693608381945018110682303955036257361652258242029005007720313897010672130329405575938970806831519417685663561287447815609376342830277750416689947811878588259163284940727272734888522475189600395822193858449834768455477460776684728838192277825781778929618272250944552597406121647389855048585124837748570051960233859210552310528912390110312569785603042462698682477415321687676462467376212530021719482122810570369426344743020749078466546854608552174894138155088472643387045000689292204002180734229481603612059155916523685444236986318506839201764813049188967862888133354306914355179790618424521059947537551811241752223133741820494368723685849666406724263773513523926957254662078962774110858229483519161712220711156706466408761059451518443176573147726183153602960626313120890482926966565654492770345677980297136829904339886140678393746954113342624107486881909893506011113921924647840346294315151058099374652223152631019984894623175845417206423747500438933617558068156628766377142345125613989506788005637024610867392849201967204713592002090250291564044783409538368815438552646310642990138715828061225145457119573852977684905787929103209677266005748975906837471031644214895408250529486206871435365543235247000550125729360568469506456649987307495745827832555354624186936792423866586931878157721492712105769341812852504755766152059646083092088011832102477406906389548059932294960900188092912619851764432711907882458211582041710968409122400229376744316232557275009859016218555280114030636388556340611391035339851605902639038660508739865167232420306377628933173341535453535213263815020401168533431770601890871412574538375290046467893517502356447812154438913505917169788217205948465013265003686347248710044573053088990088960243795391035562701432369510683520026964265245111463833289821763413333992433748753798490847349185187850451146886477691257344033856206296542817215105715119976852801717433396672951763995063375197316832799917704065776080650856940307512583973079922875543390146205789924679479457540947411355989413515132884203164902785271535966719808793648197131517710459667201256163695342709050476589891034021440220629204679753654866566378488533869287065921421667163660681232496648903007595861428538593316343713103013895468841553801511678708692632473773001125724007039923380879989535386084173601343137464788376097838887589475573465159467041849809066027308986578592497590401089168119401381903154149019677817781279886810489634289375676613855666480638224131322542188346436622905058016288565695272172601204374224390964382330347589743982333092896223557643026128307456892927796509078000402580782268529862067156860911729670813352682282428869711609373770472609810631215055737730263425111849010693502796865833271224706790103612559803887971611975065783159214792472090100814548930603087772099502847508096790477568107360903761493113242051835038487941798111055585932871782835107355224832833338190080303164674714905325182866077897332891235865007592446712613447504488842074646134988431686816849659759053658019886766515740344073899465477079741973088033676101862057911781256790956557577882982593449908975826467832188208549344582716151869577571838221179843971952945857117472605229034058438785368361337623738994838192181052588713707680882015850191279958672429489053579258840559523671918712439604867491079143725521661871583657457446761534065167974292960437459746689822545771600829840622752937424857541589756089067709287394483221785435574147298344007263592889676688437291669536870169951596989556623538855238124229033515927118034760276076247084027872613424680055501359409840816836689487397203305718581248555299166537053513566868035804791168128920956761259152568257026371165867876655368372465540348212337778952541743786256207247542562235404825274991497339211427155415850709822261878614832188670050049117228239074672238663579656995676286204997219903002637207135173952223270145519308320842218107764588924737045312335934981394432760944706726606226830135611019961877816639908069224230947535771782452967494109400786745533144654150309119195335157769782286714125678724004907455231417893303881582859100196847549454027599446493856246077758004059676282040506548570793446421179354432985653876416960790605379650104338150280597018496559040753203585002895724651485335389781740441752495411049386450764872319568623231913423821031618208986182771254528446321768974556597685594932736572886502000598840164318785692824702016279655897959897769601220218016845920024986839349649485240718841915448334380975984184380336427689902523485472413770671263266285652029522367767315263167229298003412056341803699257291090226359328725166626292161658181827372227857400844249292374995149254682666131998097763211247783577981739996240596996649015993231253563607254533521358257994530869305558188142012939774327439206289580159779086153714328017447824544247584191268152200208647473131748492564760916220219507682197671602377173601377016770223927401072189852231513278244143292448054987742354242297925724120249575224057012364070722364658456729558341913823575509531173180661318294081731222124565316054552667224218362114813085390478031028830328760451423037477883682017567696650082421571496338261893118318998591156424866341349730386053485405795064545566906404290094690495989211400409297480466607065758516275446346337914015383573093505913685972577098646720922816667926425441184065481788356382442268256083243925041981951439074415644959413989821786350781575850611080257031789475842690477825233274810776367527458388524083455328676998389675944256595402456841109244838706922023600691892972854880658477043391278136662175936888687765363786939573019333553257461609175177563527270843993407765107110717782422498267967639442623616697481108235188680918634031841331396576985894626477969078421705739806727868439889652440550656464448148614265171021734236729789814758186777033558411326184206685435560742002763073287183481518229192895995684382275480623694070069878531191131376414950605724835386557685697520522857597308984810174267810700486122608780382541390549648097827212317539184316677311591494544190154879621517042768600455835930867199269815512784377934276557871304981412674474840886763525534416594515999908297898529793028907142854508878225951919149799122299669831668792540250680047114294610598316771561051090419883054429636776480177750376929955135011067744447505853179942710344646870101279175205844324289986603342279403552917536299835217291285514450072163082294733382292978734421962097427751537717385842128539042825884315120652350015062053337391731543245745441117972385572475569765963734198472333847867330203253239448494766287733929590116946309951982212010583197105482985014310881171208006746235744622167043100506112048573743868906898226315810159311552941177141184483217890617146620791708734837894116721218039960588967331649684220077850234669401093041913044384831383117664605555541826854830861052727887570716153064461896376407547832130610000128460256658457583478840255752674153646458015096913383659929901554419310040546062122174483330168035313609634993064095900530298382278319352465248629216106473355041919794011081238983938682629991693866371234381175765282233880103010321222719654029235741978748731440102362695599695291630323440841549536399438829391436605224414447540367812124923601326894142854820210140215801944709594786369790561147238975340710936234846897425385572035563902456568979950945359834128042557546580765942739076432733116635121161579708881998100710582609615231901854091384505276480358596987437769713392639226949550672916552659649099662705129407409923357089781440403224106894920111856296395793104410306739308612216873774524293993401576503279759425842207715250412804879147329502655059015783196423625940392833719845986457095996247526898122952023792741613188536532289712766645619138991766457791604802290020987845952982506354946440789764584265783837443660977186754705812049635626489867935896594407211194054597008158437346744793222309770372099299356855650037573800878203407495935489888347228226884479419215114664700273125492414502090845153933208277905174971115482894985063654534862350825077307969815156510537964193075562530416547102714653409202272620854245661097803371116332414822514305856094528224808611741548902440526812615001160660376347034796483056478836204674082842888909425185319932352163285455959247823912226924771896318363398692311958583236488474070875195021954651247716066730303410750761126928874881434722126813319897612835785880549597075744802552704084818902802922203945836163357330673913213203674999876468442290209966065270444990016540612209802736327490890658461196202313058596914037689501684737732654778055007913712480673522182643914718143613121032643302581765843302852434779351757652807704584592702380849225749916633005063699035159814447568744672469297935394490784858969198226962211145732007264651213781712084604936800898823091916591658860838163043844241403494123997108124389199739980125669290708521448811068739474017476591908930956636249813966219883193619543604654246104140009559152217487500948765961297803381157324517357386627663073332770415242607011929756050344513476457152926418758459183846887258349332902104432530496770216488184921598007744357265944770942579669612880564032673668613909006007780424576681323831467941950857711725226517943647214746103108565250733731580405496711011833477819967909998595416783604435940481055504212566373199678610551898557014187242488479162823527568975269368775394497191893585342727196349056414223497042651760780912444372906076305005051433661510008408315311188170807677721829355503832800156125191946314613300692987917067451073401226867476333753585510301159645579211796648817564387267691812160618255478802538677112170056201466105036050846403195799885701455432710303139687741095835619615320873517969243730527359335573756800213737756286497345145525760113270224268041004531566375932104975191646083207840769160465404340953449925070880754725609123133174679232175368415468251787791836952773696596974784307509140282742615336509767951424600330650613487239040827956591038187651557816741665865028769848875561205191601121700390662141652862933540400912510244118318145307036807436822440955288690294355237486004175802573004143898457373886937116156018159350439305674137285677398874196995035503461545469216779453581656754190358006945222806861606944064332187446523538776499972750664840543860879987023501636761200459065448541499418954778723117484800577482206097854775069909313161775869154543935105969981089740289435535356518591340839208066676307298552650941110084061117039135071473334023469920893812517006188979303009589479620715077832763818519670864126901258544747571327199637558244408060192901220238337337878366589450920950278895805916091763455104570184433631050322121234489812433441112053967956258648299927538992639057950599543087569568306751170845777274642021671778118500899657691101191372231634160031276884281163335916168196983493597489425885203122894362862724680168809620396046891793878432145456316670661320267540963161512259285505106024988803461579507391692709474181080275368503752640190398404031065435809863493610283983487502797813304939236551009887771113008921205284849523112518848806215691309634171902964136260238739997997228272426297983129159042194579483965019731638062443967986057810200698414250830978586528988823408891932326263653613978893629347691925060237380826104486482190555428287246656293981616553630614048921162750277634037274140134468970256267361536794495996270100047606699654027356688557160285128071659237050581521276598765397675929290667156330893213350755889392723796077117431911222567996792892677489226770901623631844078520097949419038121054926236846824106555653641828683540496469967810196290227436376977168120403361355535026456512950134245697013423313244728270254758064839495320978054403830132673689538302741153689489830405230023206050456453508248245360873874245660341945864684698243064943376116337721314866634919178871540190584035251437602137014407465714569221903225200973260494084067190165681759173823986535274043532181936016707355062314756582868911209865306447759035692998278669797511629670350191212811505963115678734553658485259839210168269519040192395913201337792690806062164338291999530876218060664530064239480263516000790220235569388619467010063631489384895926655795698412196001323619233002963291810667186477461147709483465816796234046669014894217113389551006695483472599238236075874277640820562363233458908095985217148969974988551986207824061545524073232313726686858796829964233524916133682076469952253456407317739406239205047202582167879199344594502187503469284934791392162740943904368132631274363578511442813468723383719100529216424167147122114969459296395954131489710547508273913805368469439346502416979498430190719282394600086182658343270767761419213713099180283882432726131572895804156884857994065527747078224768495917177983699843964332091101381501836152919610811445634064473666403050980811951434457965810075011463658692142700030658114558409097235046703342939645278309956432729383784283319376441045533155555879653788846579555840067869988492800444846397389177156858777099014198328166038392873202808902253948792943183607202149880602572817781878919289437011793087030710381234331410266512820463018626830713211583431306746461040199882149009703572380827290163268347325243370901745080256365221029231572318677907670115642307513287558697742322203586762803713327227722211339438717941936836055053301197668562358480615648492529169813549319587307641967448707677923555732141053544642910597177588769291352709861332385845619502594776899265282466622130496789337356081396081679071419078604061877112789635373573341366454237644983025507199072995687043536849832542261328606051199312522054314455760231293900333232678592601119078506012411506536527936463039463333449807997210804811904872580217717441049476165152622502299648914147228899166476055674541942861886832652512124620111878109568821216743984733617869344956720368025927547749890779823847308385269526176346881329253930491324668350545314290018798541190671486417333511391371040190647817594796165783064729045365877090306172327546146014565939330385554712217401891577751667286475349638095528675148159307082211558736077836907175552461444821809472862594214752923723317253715895726942290950420190435622063451313393618426297760004290163456791759738777460825882534663525534867725023963848709870873714814859874607619818879758391477479265675545145011500944477080415212006977319543365941879934432559088733662605156627434822530261748695860143811127477170323807589748083550027334663410369355971266906630075203432102646644281167175641332362832182305834176114312638305126152188587857344870975706445745889023533105602099181479371097506532660319066294792759031990962801709654471570599904662150522505835019311089530291782714206578755895788075592281897000866503502634659590864839812104678437577920199227052756391188740459346250767366388356545685756822322258868178739060572905233857232024278255702646934997554750148555585934482606164806892597745496815379325811698674157775116941434258318270491788448362653313011992628601655674218632752060262332125317667551828288216645686171780912486385920751631695420771816580303824319224925788771178584326036411153846225867512669662534426757552063152648527700378782952146075963674196306077878772141952557801085344418769804413820766528973663123817795768823537658253525177383116620094010671730984456880664143112319407739075989181645634425678769638858677089301265053050264822445479399575998219557160351792230794766464404673487294534952183129205503370488378900022210401664181181409233869553669416227003928571230363325229341336859596597012533494011273739055259294885054075802715641978694026011131494817358280220642941613799638409717416581777616651899181717784501901798803204071899335480278142601277436555273639457291043485318961753290588490274013148350580764293008045985103768832774718706578573817286313489875640287136785509247134368992633415223221697478287289455569621367206520514062246681445499956644633406105053872844764308430532342324880924745617844486863976450772150233344142978747029435015265700423735560372735355794579344345485255094582619838433003384412942416209891893396607101937703603444475913454828848386416474265920407068392623774232863263946782174716758277772056451509663415164523781894783306622408216610519643299722769221607449230370260286570595241680251139757991712957561263989173652286692361811318013310497673077977589084286079002285954135780082588466886096342339908572247975960110374265643269140639088021487025439048742425605827258929678930553676710889758124410838797017832494097637488988029266102077183204847767184954369202188225013588898178139585474178337941948299825373525522884293692035644768242956765971699731581678533702255958516549194281143340321308912474622068855123238966197031996111948255147151027798431416488250632677503092455743064503503836313303621563822541210487448937312796887127934500974470695130665326728245405131518796191937834640673557445619252098791876326233180008271281756591510285211193078457405039402428515012337282064172681199719798967395607393070543612122015296379314314169233115693515923392842098297264674908528989364369851470125880282118742328278752246044194595907579397454369322427610241248461549955725774426771000381034338424496281385401219406487520312711454123122317126932312688068859195429661864624851815129119853465126690885646536667216255015301185045923509625077241079497280689889000956366499006966721618060938966229567270661599294843261411781382700230507012907840850830959058386700737556860802888918554893214277203374368646144180377387970895212952223747005875068232365436738951093771563879683590003793049683638752734985700943219072292582233516932399124957195871750006393630256810509103868929028702364021938411110582788684197116629627629007498245487456372448230545788520411794154980704025184038642987250163680300319871395680021282566174474363051808509683809428432052046937880767202219041415023874354706693361877076545316436690523095314843002896959638863945745023749611390958379390005680166685873729639644537612817325517168978298644055655511067359362322477536711755800900235244492987302020529143184753242133494755381836400614291186083343016303640568655382183277922243713704000980593686501183758621928509585040528880511132927863962635455440949757293774088695063643691325315541837281401273010684232229308685706263356256915783539335879151959530030459349535158270723787474504012973486971548176217104809463545898357013827805494307287563894203028710282976132375870171037656458958816881013815713648731616922628589579741213343363143409487924554959977811936811434501926017975008219655506246718191716252982810422221779908644339122007128541767062836461727787134589483429092063114474110071919793030133953102430183602402686196941139026471575579697722634471091108345187544958677433955845815477437552880515428470090156825202814290594397264526833084838819375221993714445118692755573402242220013142551451846768574601556885875203293184650631779309648844019454661326084184733065473557008487104777160791000197859904709858082723609663777763263253923107933637963202147105097203411595930574626409574719726940284407915020285118287511357994163919902853035340365241199795881587523520515601151633777879067143674055143135595759306551400148263556500081599265521231596943972278699075145950284705419444013920531526495586514099574731139168757772475532075168978026243590054511983574254625564431772923421458915075076539699919435237401828019134513070406613043473336910596368561537133331090663912911828925698020657914678870302592380043140352492882147161813712850155515974771877276835679485055235028610919127324676637137123879322964230748039782904500826058404659782083073115993225460709824751201946947913131011457329274616875485545761662542850420539904035543874688182448956899702303472534995696538248608292027350719699290287216288699331446615822096193696879414891862627355775719697109436183549497216741623786009716048210252349489074098603913254099295413448809781222032913545230748989492007151694012418487504662420884831352207301747840511253273607595217703147718146175325457448635657582456312855858224175473809005579127800996994658932057610092020302769530788410179580799467143576454841177578159720249837837406547602671963881330366470377195484337649997429822620303090724357772311585717541879136510122852000620208685812787221358158126940823118776475474351463601303019200628788128549273023602990725208441647699447035326293506672313231028334290404152628935725913232438451991950590670494786174200655834518306792861533653904386437099561600428598084916429617681782370517980837060346905774930549542670201734955896236782262096605635647406764678643755920475397601206361314201428942542811101981498215607692238956928789855435249358696990022056930922284160354530900814076781027987349798084068178104792426158784265640380964567893591690625538626918403236349524686278738632231857206888602377726222628009737263747729127017659595593457778900951264050860814452887814688185325547880736251446857424315869510369752070061219215876992283358733724365458092545354789086434503926759270987171156636353035500665806970564187845121512054030044938116051831642981803725261695580260045352375421744530616687146002236994016614163356884246200527853205528576874872875238962137584784332313024845056542880987502901929563197515836050421929329344690397195357433717650013785036924279959878854597915979103599311848847055656897916635452007231608936735648709965156667186144194141618008426533175620729706146570367358632224885163720271692296135580972292645551684915227559472847303755309888138375432950427844316122292460006716610502018139511431279485755873542471360292385601082033137126181150342386836680122173679962703182761221682007795508162221730680297994361319077366044175173932015480461091041640320971182419781143072305308393007167694387305732243066290413736032089433044593589018804314715705436668797356936790694610793237045565606189684365927624778484434665106807083320640004415163573541645759765075706553922219339501340034916096778102490988313228697729513967622378048119178112783222074202651571937096085516297603476617856331119222266161643648086838846150793396413889780138103500179522645281922325679048779083381769156272602257139793324611841509200147100743754210050937103118541540480940365580509218478071217203845234222974580445972515316159557324894856996586859933843259833966123443763580232394754838211883896424269959282331253654205223181600151972065073785956916801684685564681233597750962349363876143162671020041117036260633530600305171384862613820401177423275797931094260367893267997715419779726581064287114114500468896053376458972003568810390512162155033321745822994694677883773203067758064665499280367820745655638534418680577199784193496092629171719201459881680118574668425868766444269975024881368832014697724382556712024007484481280898801102867105386257380498793923114969365885333101077480326888461851897731141368307913419218089982274688672947062055824207407386519341699310263935614536136480348021169771080687480646267687235540254402472906891644643821511248486136631852548439023336558463315632969976013054961654441190679217786969760478481219238408930764071991372087843518619756277481487102933308487467724544448199151757815253551799914862969191439086326854207565680326578056939098678113243948128407669571728129659541933653048973326981811785555297974847606079967559889919129391254428964921178423557596612837658002775441474309514036877034463306904540032872496849972721048783903838952816127615416602346988958353527455398510610990173699897711574916247725145569753296720781290186853400526373213255591302609027783521155327313841879889642668116518339402688285866394710511755119716454379407378543148155267309190647642547188041245545200782037391765903300421321861108177652315381762536157371807817773560252989173362242568219016990024860150580088349550559335427714677140646785779370534059281992929186272986106615018812057151447547670760487059396582176215495084985468167102084851756566148032262371423211886658983986445020506487392021412940458194679117536369266775114488909003256001572166786283027362553310365494722979074872214047854949952117605781746272788868487936515621048014805756037816020631727169596093371817183960328373659963277987598415140169293075673853002317514588208824020757850737675615239937425668296851784207281356348221812228967998080647652365579875252548962067356187663898018207974531376719197143746835230529023002417289637608209840129585888114656734199779499796950071544221361090716206371438217535753407431449333210642249397577923387290113841832855447478293586842052534051082910541605055086043658365542100594600896095192268418622094147729594002278299983062018581963404104664122725173289602689443877736710901536382749511498200627088782806925951751495662304491839711126394505420489456380921708678168859654877222041802133735107506929444781336411294628477122263701307296548880852149057357577015443309041433825725740015449609762094243047064525791312267885835424743080386633095013254358473979233521932349709665243363913431069604157686036911683538440718844478639294928145389329872671510733556077451017999344658614216879253356818968279320124632895157857165209387760544564036934378324061968732659557629150310789302503179416044119045252518005117549925130503220431427884176419814404891202480005571236996580729204351563819445964311269262943696799873623765253551451459904853247865324368642737112134048886898211812564066452894717997508143572463591781012295229268573138500439988500613629540434022756662362340065732780754936374436298503528195514074294405016712520785139770610397296206709768817363044994098155587894491854424734842885327022177710194861074902193153461096543511310172013112918037164231570964858359090199983611478608264832354594224645510458722589267573572471386918653759492036426827664045130609636677421845702234613658615123329552307018328970312864347545959048295816212928342831199867629645434153142532641670470337301592498353484164805893735025254891521216710613103860282569144622336660787324944188887072620043221017345481102407557910172033343135251698985484940596461384237936911379319351676237679424955037367158372096148541105857285535783803084787124341365304482278963532082921469637569874490521003297964075927491710112260414406668901178652143759576555847312245074627681214007641254137931959089306592516972540588187390971499620131625295850684375219148442407863140524122144181154401317975876842269640467889670599015620309270694621374110373806468154079451807052908013256084218595871536201800697166314764218785266589152107834572020647649755764798861013178528751199804271098067428050042774775496325239967598640199398714045464848244437636892105036920928675963597575491327808419795059747298054226198907670857486826545758190951541823110912991613485852541791923194716869157664343914005883492482506773176253025624463072994410871099906116238133306054578484906539996322257774297387409607021374804849706245133858548464566550707632586739247755659167734029493359108157159748588030110581577052374525107609750121095739393576361672321557021673786448832954859433192358673255833804314695565129755053251698834530597069751613612202600313989027064389521415241949930719677416285700347241971974232871972595300902037027351851537402984306234839419672497076540512265961647148234818108991727974135390893456871418013794480610123539016418293367874596219918823671622733332899006045286835014448821067521049470809666866814027457151854205780419915612771513998656735665600457058022583605462621381509044074714571734370192955731566124241419315658041664196229142015751122918792983050983541645223370110385109933220862278745487315458406564283788135436996804661780184775070835694380459410823456209054244345035542876333215112506328475076642072782336590079924634420314873026820189441398150652582894478761299825103839214555425295527063402214458191027591999221245462430589356442571865749769306775902894081730836328686457572588675401057070546757177805745529012585698062401168461002378147513884939737265312184124263471885721346301524972427769659642280683999071711183630164155035230674539714646615506190764377426771643732423744963925029233341571263659865861117944775164692921461948542851453998195617564920872622467338859072201653112111283222970378659263645160629583766342352982590912736209904026241634736509311381989319556924114437438435875889060887228703698439040734619055761983342307520866711442740975054019134613818646428608743872560556382151812252958272073907972572722940609643028178621271488598970998559092176135811654004303033417221692757443439733605572173801415428431643236930184868034828683241952632688668077707297058753645128441060684016232217419206671787987592146757838116858809238757697330586312218572269519027430776597222066697003104015005388216792536200592869265152518392083934292539154038642589623297364753004068090265448485669390401767817255181457285005922757750006573052912669386775977871317009253075678750719051980165908095128477301874067493592626251971073884196245491354293991058694530545254206984399849982379097822485296034982102483292744613311611190719959043246802666002692725537587526397119804565455841129631335882608643635092431870414674602506410925580813383681669701929055172528073149494934734269837341626707631478132079481159343021667601224511520580226526371934236162229550647892761682131204172546636190214684330784371238116593148957989061830101868846373219770516440555545500963222544349790449902507108807548522261138873704665859572995025112248201722401192879178952542428242074591211926222741232668888416699094484599415479755706841134244189038249057104524888081484110621767687180040007260038921883733635115458396025991262048824253234340087906154835155115796665453039321051120282861126577732894002976211581220492093337562301838379152551817299570734432512841901638370210868318492149349749532552639015669866819177017730033168738964636268634767147600439176107112417862837624794257635685306203805431897268674552718162274630006466646193569809436666354190503800760112933558548108822372048473049205382105144771413094838100003151700253119255725750911641408897162141082880807000865976251234499143988116260226530590440111680902551287778154156414278941531483388615896525085387832998986598902799324320993771687418630411529861057507279420797997276233503332086917708792852440193881404953788846878398770055843741553680882975295720395983520871824332092856727104437511925579416244525552450952433276796442434454775302848408039582400457571936763460321390654462165544223487151718333259901621918333817862524868398482254237805288983171787443631517814204871044955070494612578609530646503038778650734071977909033764618163644172827020918458741807286964449930230791596881053675062829241160866319350545494318491002734490967609014400977070854561038306574406662263276153336144237966112931992259092225327723980519385432279061415100409093213214467603592549082569932475091687538008818030423043612525020027899968526026332224243463075853811465790745557933287947762753867096570157908424740809009643282592391863977584902080988628904673947535000310148661826675755477064402242309007580842757590733773025395342562367950850603311610723985111636874363411202057097532290827776292704252094018328468600664652215716068836369909800028736791301001323614583821716576102264036204857498713143862188520661002079817454473787591994303090919012877470554891594387855548395966702702485011794671936975824635437088995468570602113179339875055180630816866162535915813257038883156183365034772410843012566074528143947734740149707369160438954732120083136774020892360515462216193732197243596067952121989324887819096681964345074968452146324629394517620908205342401575528656511008680146198090755099161440183547864536028084090068063819381678219373980453539565526072120373251453588255927648504622713158051173536445102529562505140683105625478086932122940343748381070256534126333555912460707798536286361637041077314440612239740586748171194781894632822539128723650383310622360789261253114729676348723057188553047645887879704320237865225242758936797198444920543909516909899778365854184474159587532180543442054383010433727232003547791933856199826493694085578433239404491861370211781634023974868178049702080589385898607383308577833873316358338278148688602086873113135649582821034051143178457320634078833368231496673623744195643480268347666842448880567892927640865175445784044531151929734140657490337567622096477203461430441813308051253680714858729596202127251164189259904132698144314339749561175557942478467032997387343920947274879674676455050756098350658908294061999631328737356466243230516951206583887965072755755769061874463892694953511198771897032898844784256506685103615566215200518254982761236290757641256609542525663983228271676646191068598358488859480347853709703376388447631342720859975049143819454800299863596804615709055763453239623920318939582170506035514589115195972017760692463531498110133109633098110542318358796668986538918445917285986406297674513747935413218641664464846843095615656030279007009484273127003099817229005377867101767404688199317614475466722424741849361089564193218193594927560820262504484126680216482952615954580944447943441895065048362855429078369821494942029034020172186729689999056106514895410128350343466289471233509745349977668689522819454530568413881470195087319584764437684580108761339994275190701282132750589431943394846521647123586995883966098764297407342054855833411163270575297402310124291949218493424818141197440875453049699885221700644425701818370997920194998576477142635365814253428141833257501379781843217753054172441658897711971483582866721632060831426597612314254759847210988390319404020272797803386475424579222053948102131781968970654763143403510420316257085510368022797903246303545097533766839988113360564386251041486091911015107158317722074567179185484798187877811583370666819237216651011248492893381893737264969915548741555425304806856788637794761602295026098387159003676495497024367042112494669065403263092569074341294991532979621270762727793788657962206231477463075832969983033315136539036635883502264669897509603187233005462652800092244827086303640728581753881447889794945271144490960661582264011177555916691571818264037787168085311579093448241973019775469182967799670608310163438864797231934017256903465256667929523105218451805097058834442259275422679393697084423558475472063187428870341786252565016390954270982654825516660435187390076456153177149117240944803488861865767772965723128651363739287721210189228006625385678818287920700867810834632326145294341451670628458868023705698382275111172306268707334828848526131528261264949901555333060860910173096885995437051214352950809835067265417619922161122268502539662876741340561595008469442835562813906170907831068533163419868664371679303992352480545137006605455614062951477900893619646498311666767048967750230869256237564563003819790111689347579701962483371794899378797675827985790821967695653494463350527616687645649216992327849276091992581704898894737787845111622107379371242999611134338064502376638950689342641868928106354765042828604270400327146830205702381290509501968945635206462890777678032233085008944738672836836020918632779073885310636796398571207320796865047250712442715934388062701505702248751699940868447020131068378820293877854468316106128754517669008764405995043104615917083435830778060736915534678103627367633191874255141627491347809349762587637353979916363894883016626829305145051169035144649512023394130339949489021602473698412606950405721008129170696773533006592368738397045935252483039584541389955581947292792821791821735806311193164661272357014620297747961673954935097044544447806280153927028792621374517288725145312260219784956500688895162651806963891665047755360023150862815385851866989445359286294106032759755302701566501167995138278531908276225676393672458686612588570469314901815790925897979494164574790008097317527386689767505315154846356328437943903849105372603586317022315127271934505327463550539987755925219475854671784715416502476586628331538845555079542270435513894315261735107188835437223068904924013932947217713147141420523192530852720844246818285929338305823077937243131981632640888876432456657711699747401367739952920700805748851307868273566133871639740393439889077193691462193526444872582394213069613810216418124705009342384802008848422265702299323098995099925544421647776210458337674428154474678653876936141979251675467918240263036397246524622951412547382450981968068117451584838653522907746220172245444685553360813336418672774950233046467918255069795280581599326821214988166529669911813747923429916285935069836657978540449491024292999067647896904922381500459025242318835486356597575076446739691741130455290454907351590612748701788016569373851038249728153171394983986821046831763432516132785345220561975434069951413643543115457057742164154296252118843098510979137750187032667598805571790646926350904444723285954737624079503446152204867521874197492391272238203573755805591003432283917580544183905236312062122571976579793640431125613523996965712020174814529224483943546017620895812641342342428315495531626351038690662109978356303109874366707539837428511747200252107809761799716465385214131895570508032242699478708387441729611394260660276626467745018538329163285054715787116543742940567076634651979548035950670084742544472120176940575090715339797152941698639298236771429884901927747073694814213581355722426634223947158543994704849120639672192943243395664766010303829930187498392521304004958020728752693422965180451813266767380631001283507206384238282947981029018352191381025969865142579542633567314855518992782494246518361560951969213236912435524148488452257193132917935616860588583121876576924419094556685027966431035929802573361662378605625498158922593667628176508479259683349681071135010910071125670383873657809142431013271082369740378117734436953207537325605534633683055756161417638542354306985880072705795339490056171257507543244328265201218845554390790995640658804489558844555538924560053085889094179544653382891838291809083887024504017349481866788191097053771191998439496682865029903468189502742654275470509215647979845528163997746282498010331278996469223340960790183394845217838415262177420155992732903635714890155840532938055488157263258801153237888706863216624400730063708005580079777657053706657668197445249452233083528043916523617054466165279110533277122729233530222643896038403905958667082912137373098844753559655935693376715558193038719567665614075871925256562414403685410670570606454938875134804848420685597695964850898288303159643261993242539699100953448350980422116970387958408117470208521060883089339895718591198523951485140479712931865048773041970976137722244868454977595979830317350961703493568809448881610829255590179650675702089673708315496623914548627520200995514344007612982302859616936213273430698224218255225184816707246050444883103539330284165045962324528931949302110259745993273555121495164596302407859063939082026152120512769656585310814409186281335938776075871845286512459225573687809277446164120813090260751071748030519806432376649195992136134396762128435919252661079335745275070209960482826659219987274393666180347722683571691752771026816282761824123572835193976131214827284800600104483136699307933383378466271204477064227375906014776845675399860475385665496849327450773309162201089820881980963392164210727636215104240384671756051369317815863495850017257413157960522669953905389300329503164943322594373328916735213046700929130306705962731764078286006059894402301956164727395876240261199029671193278278673119256799861383991163010322563861115064307872161197515523947646419882811017232297294950141095692022169449930813615758682585379895901291867326898786905539653060870593481681145176421992688500704707524279129025182234005701793123079581685485191901803413364915679608824264372785851113647280476022080435154025694299049964727869022871204314068315738253480221548689095017250858696240691432041444343365309624633919241836870895049080731076911666083974060137452621437098243910573539242000518591390789747083826790491217234037514133908739249828490103678576069668697321735521196821371006276343804539293093408833532597933252850427084656956878050121729979085330251741966413909445913694866820953959189286500971351883811721227609755376723775751350191379438931960540158286282415237051995633736822425405168622518850882228945371532715119451249689736579579853742346971526272676841870490291890756521477084556114061560423460431642326250535139429672222086769685217098635424622034181753809988164481212003392194115973769880778533559917612803077539680846514361350428850980200844118189418497627350834778339736559021881829107781899843477725419020581590472188717209335156931214526248299604587546452511874942345911818377973259500280076600895501163982944010269726814243471212094220833007152070602338419221779942582544616897280921412758263077615993822464312079078238177042706145767747514599935859139379880554628571258069726498937591520260610277098814408534435669005793492262273573832694002279235312676728185551789390137419714348808129484666515254957073303557845280418928252094041268946723661848339831239029170994377145528433706838355474210508416212892832298995328774960961281168245983749660646518560173122423412887098966777789653592289613656613450215575458386989353190251307691139826011753434880720644272448760415899094133210898525622420142651610050616199944142343954075361584848364931095704937962797156140116458929330083264572369896670564243622432601259031726238431905536351686570911940215879483060224828644520054572118543834671615418497963995430466063176494885206796685795599283120977164574419108588163171319205377657088637168718414487246825315709595855511202924281282881337004955135021914209065396073941188729268510527106664174312153050098817188766794459932789008579690143868396632128936164125605765309144125753671814582478109046982370709310451837154957397288141088384210036367573806215301558766773073134276304622339715067396032051659677025257038073485897577314148289717025531410410976909049995991127980100653136762637080079564053556224666042601044652527675526082708492375544531205307094569795203348604864510614359454230236934566636459305444816824108379688617423084943030124992595796781671152504546914735847051666148680799125458551254901907949569374532408545092886277428468693658872620269495459591292397380147300488486788447051220268775140803695018889800370818997563538392437467690255571787576997101342829089310008413466955240943444003462666063969596758215192081537923977053956557396470989216470460459389171585403977410844871309679740001283040178551833048692864894193716245416517532103745824332066548424395844849780854037002274466907680847902947826257524127656225170904010689334889768977631845485791291036118199043967570679576450530175269197258837611567179876362359100057188376900564396209126979747213090145936278380107731444199252875451145260208174073771176425174869489300962780258575218116231395408271272356941899105999156313340815768933553107024864870783369409288186768436561033509357589361786610397035596177859819503041584203842650312915177986207337954842732638822352466045612601046430732630282758743333403596135690470643912078265830656215303341440520888532367743180520936322339744687183359978439077320839218836425635121053423608344185742035384290851146948111419107155311950614782809909017176715957865340489559110526784357550875220161263539601947722383794840443751092666313747157792518140796220828137659410981216248314262198840598605352952854360664919719589959168330281543048937150157252939073305998425438907144475302824842786503190140876162817409880989508177373440019253319284268775652768418544449497366058398570453799969710521557410287227693840772946465967201443186823447701028154368578859509937549272580341443436116645210982206708294310092010068222147202257503320114622284382113388560478730308097325870213096277694273951990698726562696145253296641497409073864091945430056127238162073686579493821045786177735772526464516784827889024765319382666215520400234543780745783654040229284025694649524295669298731859025394514765068436120326151823998297104502989518392195871077503830771005910197985068468141115837124813619671331660284486898105355342709388617636831369433592976550477546488413940569729373250574245641982862678499638309333164451717512300624380944049153388413089705405963700822840434385885922533128448178633428648351817076341265874856312589733180344570544885496601838599515774877376150363681648586682593572475822146013533041051773992582284311626981984730362113301915109453870570764859213630064082545934774966223225642996627471905163806974149841564494508397491808182923552354138205195307974355310738200961878606248527950389541959553520270238992523708594254824368837707487103278376053106891283747543707969868217177349769460962477241829201835328974825726779146466053710953278906725054167623582671850644213243390971343149478768667142273000348092180114293110737939720001973872613023043626456532578683763325320256032328719375801418662634193145280376086338155416000415613547435346002174292446857329772534664170172558225909894890160958398407153144605700460682248971369929043768029497651970980272795606283644886180354551937251729964279195380327566796755195762431780086439429586151818380281046343641990892086118807669674245208701437913576709874539629788712722391796181621210820108865957881446676882060468526169094367006339999238640225402789250077558321542259951174275456320308264283339456900007784641331168742996971340129148603872965451174069873372407664870530815079698908894603967921098748046085052891382733824474547341836825876172984073987267452873275688456046883730808837285934528744025753915887838995806774272421552496377545705441716690022761665077750120076636534525548816591930663146590151800541759256844211470827848688938844505000417439632596859559755607156771211173629097277251229208782681697404812608000054071331494901384416963015537490391996248059749737801224426357034243695767101769511194790121167016600303029259779423468701298190680345108057415806014887272773551002440216682637551452973251880064325424129701181915373905477852119205498749457126469975495315024296162681810958232842191950820576569643282452751220298339318874770067486510433932796097140498062212802535651225019593791764016315449455573813244998958638781711777051097767650564831650172893087416872834998223692013673151718154834395773487903052382622097107185814680522270513680462260377698379046826462384427365275771944619741376438240414376955856083220024494014425033806341440022104134373806449205071994526429970673678692356693883272281165164503902601951326734201130284655467802375226767529930067019297482598316283766639466950610637855117629944430027117321162674078302198034677052355282640533048148093681311569998848665591705390594748608274340801702620629192347742364966120985048661774065170409858714584614453436743460067492900906071906873312012244260139892654053985493294417928182329400206120712188368148794718150688503109956753081160990252940284752900225235752865601326099454404683644176351365329982731486993986518587991771567995038244569791156102064132609393308037555299471901265864519610669164896731826967514852397928725084361558411803652044982804072705466033533521443023725035694273680088505753507912075545238600561108138616408306447387946750481477692015504207782030486163778465916534533274118174772128266090282167167512008673338956509310557368908977505332767500133111582768287727092325970556341532745065442124888089646195917517302264242889240326299324498402735803372366517209220046358003373953953866900399930773535300655817369202917147169001115163460841096972162230040062847981160033027500000020108468891963843764361080763972973352022208257641332195018921765830057505944390784065361434103995611074927127098125287144532534738619869218496869488236777572329179304977279752629357215757323055658084382514538012390069277365225584853859640203897314730491027065693999483468222023844469117022329262325365008623580958104827490879924895213263258513237067112412981292266733146414040031524786750284737114655699387062857603020852539149151940464397241638713566526635485605761937749031329070699464297005438675163219900733713771159997571038538283538248188820996232958616665653282802095696932904766071450590104056911473920870584760053291390152283507070001157882981673251345714731436672124323692818625239011021638457978033008619151598224697162017942651140069553800821241596337186930890954105522328457852855172499323831268406885210820822163199271611059951868813529776464999330559287402993586184676905391650109188675740332587596332277786262496887946919245347874492557461040385500576932202484579002676192318838592772808779979943061990644768697437641163972274730155829445899155774802948916101736128136729093510944627084569923520388946545304454460440142632803359921442950950925295265582911935567339302246887887855797303085582114105678997973498729135652147223148919556720177332343200024248749309808892124966205358275814428079006363609292126534338990801533816318564322372277381855184452594911396709304826826291735022155614889581306181746729527969100513841983709046054646362858162083640261140293691574883188324652918121070671753216721362159304476595099404617900090185996712269319831697676227348654799273400632403481307002711502994292589453309661396078929608963078124467262056870892757383458689750301799375950319323069444368849132138757809896396469717579616970847864037592234270648108998044540638066993771425539191912912506719208107316603118814360813175629717082768217606684154986005367379216636118297049657437280378978478959304687416497642363807829458895069514718431138789353404461944790737756848765045704967792834333310304810782379865986995550230658473620508082179804445538341997853696171560820454655001713285452156049106611506623054994197316330018699313956966994898570888974832462571744524975059795325640560047243492293572849278968868667591176284170426736070188901715679683109955454106775368568321829635714397319298254595945346163914487594386543180622099088970651980895423846733837727147770450685553864499295041114993932342404975367118645707195902735029510458831697499048874094067926531724897018207077394040538476540217020489481955317654748450645920235295751655790640291962853874635072225353774043981048932208447483302469066364241161932869114543775685176985052943408642168633632533737304265896618388849101562022742439371826341935087843332236680229095752422431676886541534939803732931769023640777186384768294496045737755311124135303901017373147384539135502503993743895300267033980130846687829954931979054703545715800636462476062825017576374189467709578858683066272890692941634724492315885916849878941205007235162982943859052096773289983374472925762677523192247930376624622440931982353285302741729877527824485965578847234654226851823776162690275145180913618982709547069505831885664787704324917407498306214805282854983141917365090774076930091329916736402362328876869013310128365036665541785826028830058479994618335285048111322135958361047817238112590847986252297262823465381239566131687375427716511832342386742010341447317309796195805330568000037234175175512684769407107548674463949384376388999622232317317673508182109566046932649598862064551245467940599157637802987441220363616613952588441233936132076283378690990430325666234472627967178867750142616758062031342256624177586382708031592143488958247254467170471166195346144179370210076146070521289264455774363194220670203247018121455914064889911177989317635057907839939236374058640645732716238574775754386340843408198989650401775233154076141645109881076260074039806854512510890904256835695948187759196023445429938908159231186343646695564585777476904210841305995800498722382995956993035508386631943601000590110877400377947450957381343615591086571983994044005936008886380896746734935596666382681737716593675827205318200588884061040524793466469501888339888066986080613307892089325786514515396245635605243587374125533698813647478899425425953352809146659637349324569413971102363314901567388501861114936221637925589556683575260447346849559296066327485411313899269402733313340466436531964250679935725509132184606938280844115946850675466485059276826864518663120258481366355866452608415129404938138813372028104868183590474910077994307336726695644908782829099019545526058911244354282496143410062576210473080811708287184368099117813376609556743136050585670719254443575147632953466162623334998102705668812175455720949468443596081711009182444990925570806935276253400818180770825108481204728168648385513037406868547130397603648891396009328641785389028966930681604127564931519868612458747224583642404749343388304461834549882175353000599712008402791190039207693219491840256654831777633074099143385744775266414165469739041378972697167669182261876742452667784890356359879376786277650799855668111012784619246458711063964721745454359638292759448605955012068178279728541234100644250452045828615398354934059497293523680163802625740419583594628572873939649427994754184871647596876410446662959815034627387454006663079544136324573896861903924221489759257400794814852070212491605386608075180706270990244037841898248287628051958640411384528094746584477147886117669857419860256001956694067195908661519213007001879873072922385742076927636717045581477004832809522169094427120917043178074670765402620494101899432897927194901489801300723744714589900278365685747474336382832718487985582038170297392694169112199144524791816340441316919142770738121377915974642430993230892183657540391679830071144485605445263455799429474091916048321018124271639455039387201674564812220993140354381322645110414978765056591565650062254852017418240018492833147939192671579590142865987580116983464909001570472697394574394735320187599715403772674987390563307268623348328310204316805903768091066202369238139644730572649951065980599667037770807152888987966762019437345460577336499790314643322156004697979452799650952848306461449064971511379564507859355253759805236871677111384752837319623922595429498162118086920928950847968677046253902283584590405033643963802980414303295373426866009067798032315189028069854151837138919730464633787505344708509070418474924887462347590510916795340861709320304714367975180696532029039571455265958959912946651847899782700289822574967948737938897906762337193244573152760760061736002748289022483289064727448415266052195998793905845401084604240642151923774750506369477379998235979865300336744867691955478784800517884326497732433764146747420647168510394825830874785051333829237433947460426756706324276236303542510849781686447144455689952305288961510791770194188410822277161126388416517282021574360559475792845931914550102554585541915577540633580614568927379583276207110343910219160830714218167783508927172343116839821542046579321397773782655197090849793604175754733470992503982157146301018925937814099163742700426697194394191600702102992752723230550366867310328082255765880156836515829278371377456313043769558210794215826819782735978265004273943923828819011405034713233008596737047901054807345916481442815349139181748388198724857125995694824337998283270874399844992210910823417676591472938218911434642595062972184870736576969561989975632301618770901948459503017994642616048213857729814494173096024957562617911351944810728333630102198235101875452211805818104870335618299893215814714753942949886595025835300298819529597805089401451850407909956552318879984216613228829258868445271027867754041750617397873276854275809358465464625453579798463902629697290709257075359158439013215244647872092330854651719586993686785293374355847091715838336878719760753023311664309999930993429324931176593857159554928625254007054954476949477050300449240674922925243101648584954420887274408383285102165273045413713420295609313434965505818336385590954998336733447267934228246224776668021669855359905385688579760980152625642021933799225525197262166933670520078401381090036919495349518909822757463263161252583729250282430435005971492982610177386661346204397024249322388073090064592049404661709264241894267028295285389463450836572402847092369289230234146421365386592876952599058064738067903368469550981313101053518062736348509284138333372190196062930748167475266178397969069532516572844246276843962293338236383740527951813868729541091774265720764309880614715811801241357030321836419033416909621154130750640306839176251144866322380292951474578728368476176132851564921297169917293283862863597459414095471379774197439541318932089337726882333694405370073139076610711002064845564026594533813517459629743509861914080709845563340208671879397173152228600806393816677389162324960589027045334050125356991741652919197172833858382240552030546603349935473275266121216629723770188671826384765788795089787357431294635240904171473058144015304189128878377218314407564534298124667952763123179531599173554107812258304412801511080758307114202155133132430311845795637575893429779969020730539653768864289835455838032078227324724269788810147679269221739645152262740225873325276183966375518371824166072992901136858037251361100567543418257527812842600029297317962090109385894863177502412772141440198834028509413897463790654120681143288395274863396382367792957042794945357724311078545982732368725734947373994551437333627488674585466886910822322325493966677396221037821633517910454842205671589374517684274802989920729589540322215519752406635588246569988297258310440387549545703197055970590196921480224912956659645463567155320142435192217063867772903650543938928344941972118093809776865928803984425360429770308491273404217929173606882301092888856126683113345067578068537484987747647150554070849531433632475656798210147495346975477058686346565334932311743467862834061079620937484880780272175478379809371820862241263775517857419647506054229237048862491645402955888315283672011225365999795862942430347263841966348632130331014480447892865023030896262704129679446293367362771655594422467220241662507853232114366823307328762555357328798038537166148088836355446201149073803217966736809886925903330776678068472088534917788180683037512702388483836290541199587635996776419775254391886454995271128128336699378364765387079543072691727314923361025265411844097653991707674838802123153886485075079142319644201738878732359463830363341280003460940145703860999761058173252745352561093518869130352706762498630677821519654371301039422021637883853583937605104256206625463338562120022762770160390896226562876413996612883351826588051175719007413576918934442882132833223869892715218472147865568539981915218277883030749694149207448247920711697766481409149643792500245469120958197666676744271238040046230610893049877404845135857810687009601082211452985676525085095237716913491934451030513042184029130392399802708365528712796324750926521228567507245918686045674213848316867725046734023539129382509627941967290946064704076772851426784494131948370106039875616009507347576896137284262209901055531985397479298251969618700675150105001917328731509701697484278320609344691084957546937414745847866034975049922651967119205029879296200638904729100856313631739195484687013311833219539132275512902995435586433468415212438140394337475024074497601634754061383933299997876903377255180011227365198127688192018638446531392102700200897557167518184132203243848701366401684710233650371729618022957906672373899036156538502115811377785783157196730366980099304458798789403804660667978521352855794141506761631487840748026278925385451250685490452086393353156218216315704888638371049570200700757654601959311287873545396298388609282142298653869832258215436979487138586487403469184015496107730277035995613527789284025563938346183630793179536969365747297321176029342871849246484561420180696463320632321119296490537125511390188232612728844655112640605783860974802069816912034976287885793391906347910403042411921574801632227290844269635044684154841139372831414397851673920458369746611972645903810063239124233453572406580170111423770610338359782453702294458869673127868962389032240580229081150518281063597482073840265259802220004474045675546092510718226593689991766242764376572618191168951593779071490569168805478522855855940114137453363243227999037499517083568165284105246273346420520357742366792496921030591915037246783680732923311860576455844944382540370804542549105670937018011194833972809475676317831541527164331252490333001445318948713095586542835594073797170344180090944836611088911597304560117192672163754930134302989600563308038048739732885524361148766175172506283768658700540175172072459435040699383474815170195943028346853245199868077878958923967956186750088455228290971847730959117523612945753350551740128582275981732083844019933914428210286867220087905794541332569031305914894116053187819018952487448291750735268949177234050436944108074982610018293945326436240890813622191730484061077304568446153291297422706236615523437263875751296444355520150889596167695519684240258716551120476522675436789715929243212932042051899156010355098153139182419465104431702514956071121538692149989449690726795256270854432197983318579035572857286400292361866010508287223744608627185086181058002504940087090336654117342408593261111977748098539466740762288443394050838255530788710434761301960721509925231519424903820883926297323140955983064289761045064541990428777423202032598754759931442031228617214643286078559035497689980311577561056318570339867735445635856342196669126131977788699487884576416532807890347069903008104912816483565447633681166596751127309278868940126714514172176258886169863859707422299729849634517664214161175500720253815891388405846477297515127220635100805714839771349205570462735788814326784771180686865505136974133930901040477603213502656573361953617671000877433306576349290371727559156916044489666874276156988825997990841205892903741550885258083313865852622582359897196332055613650297739926101301617357269438479980870369734052143500412997499246337136722886446321793535236427695518578039184470925207291575138328517259221767506394921963747729581509806474022226143356031885301163580977291609367815189681491010993807675036463182360880491134192793050476853995115050330342807786998467652821272600707186191970782607739499935587898002740254182355774886121971369707592247237515845823239700577480313301908887445365603358802599790438603083615633285755433031435827870924239001567333047422662682078118270396745236781346631701551362050730252091744007050411710774263373326923035251728305079824831852502605847467841696041998498131775618357976028685456269248062774610929021268153550264894137027815084101052097099309551040622300510708161727480747091170563481756311424790536764599313175691359991804381719965167025054274519576769085123170584854234388335695637970850938378614186150069384653071858935730215177965697701148496690692646583223905156974812465559530546196446250018161127448113518461782414031115922846055017964061411849840570466193260543774890510483142519319557889678092180977442526808916212795776619642222817577026255398756395488357585987032663840467582540258298699431289565624777308363078215483054678321521863369988726914088936601805676927721619069978526874682158352751688407089723654141560560364275284439737648651745189265391306316895781442426554196116744996155107558361785688868337050725511010369817687228476183619631696425182176572267663127587905782020139253848518080805429554393558316286924762468494626982206895293802190248467024976212613632902816378540766355991773632768682769724047871390286753256437139104865047976877365626998322012841865720099668049590505459421008621558160516967813509260082737161589975695723162273318982932494572457706782357409632304822884356153878177481164911891525315006849438043279602124911844362895843860782508274010882646189135794977297423769507489936898620703150507695826983267923931725866349015497034857144524640550678684320745860164157051029101492062274634986904758549055386775024632245202166810117784917828081099727031156658016093078198313679482076956694024395880237754692080648551380752164090550361544584254037303772688928394911435482995797898882637594265656999301817374090911542260108540432905026181385798556284954013002070131135935220991676835235577735000804542792795557281032086506462571760980056062661491553252819420084124217515546482110143132547854150662302921426305238981179950418910910741139428092693581621398747090591454493744239962323030394244760773136469048236173018982011098629258419316158860822738705456653441107793826346791253674566828378990554174383841244056668783027624267918431749584717858622044278376017907367199473403697482958777849151556356420074552885198028709067820671046463619799142617347684928059781041677476530319394031406865212762988318364037509273081760407769929846305974451555476873632135552116276808167423959236059780148058502444904216546006134385279103520799637872749432349099604398107512688985166760549580954225876856526446856001847789109322672063963101545630086180962147405841692556046354794062380065015049963227146639202453594659357061579063099160529284490409461181638119183608184267618695946931970632504541226225473130147601555297508005714225706755094532949955945783829103462942341674465477954335873919362351043653931162497811390381515655882306135422967374303691432429945361516340884975082193928209966302325576924522356172448806530609677834944470550959704337353312008052768511525712769132995879231337825417745185416776690493238589076757836143969606325339248247409403353164399428675818681487479091876735209829685810561520542035630801296958584151024977669568396461215505825462361281477809010864371707707569315652144180115143211347869878170290474394414575107787169403231128766095390281159410699511942988721271210483865117531731864840489048450262067851280833319019584221863834622066198091228776460843683564238518456169397409465983333524256429780790160765851094626902105987448737618272126590100374795827684231872849732829810684395811299668398693095332826697523577043550739459964799323081761781586763709909519153801793576495950134497320517349009736238042240152055068275164103336744754539703522418813748779453071559137787753737679826788790065207386867280950827194149327537849603466738827169827625254024340538273754618989002135764238417935372702544250922524266839212507476535499256397222535670269694492392736637482285838824245869075419426018667153163156296442058784659335758823274480661436774140174787694033381245008612312552970415163912701416882747882596690159864633582962273084490245133060162026792633466886335153290779473587054980048462437447438769386738791172154060840724996216634303435018011856612102556868657648334395634004793483741423378671213137405345537098478139190837317894817936534765683262202682932077528747411124704048140300068188339952654158328839038590324509750386257629094949608111589162357779080561609399840550573236660626812825854727271747737799415394001382167449055199796519478541372956255425010175384582584064334691095847577687711754167092390695594487732508814520692580597258559507952637709365705480046691607909753850963871129889234810051909335132873514902517770613659894100092208145362274003151179770544824065855435666855018803824767236141213513617414151811662924183169808197021428962218711666035652816936575086538613864865336901032119042535287870435662874401877340369049834635426052148299313065532452052118310555299605132921522246595163706708027606079415260910058694157671358838125824940289677650759484231187505177123286207405746595070724144596557026842791543130502571953287917467495130802752099972123155284957804226874066478724345986032950568180642527873899553009830820910191293540622899023965206839058211258044131692855398415595604191980193837031864969092371323111307479915150379092191905887554858675229499804902024736155887067721107093958597497791366912536740744351931802736999560811577331114035043277211216156488014412789821587151638738531947705346656599386111314702703710518259783119357030797489616321741552183097723689466549277488944438083891426815204358260420866315088625106158212483975923357549582004713120503279957252432567200717274075431254157494769249187173936193215906240858187517865093044804275734905138640961087639062076844280682151393092775279817525830365029199721357761493329098796740571700244547323517239909693128411139175154932863254376366249312866158987324488055498463675082709630582464077130788763127189502420352039429537567213087916895559063379217086547643906964114131351464380970186342161538237419084855219074874807880503247177413457940799821320022296386930680890257181595092675670984977247768381503003203753677541459221685014186392083071777640002778719937177631109485710004389258336411580746828040421689951381896229470306621543065098652856828465903266721415140470582094526369995506140151220179295931850142293267423099470442257601936074010603399400120848958629797210397205593204339650109938424479951251504224370022374574626642526908149543508908298032008220483834786550905610241111142018963628564635676012089548805837685444820389487089058712194534859901607813054022059652100119272936367229793809018670416637200315424627620009318459517521572297891433268476303857956526016678163026032060274037302843435417388030192647954467625262295064047895184570514143329528412770802693912103521797591867388017644499781588408602664972798496202755347216542375043493329988989715317740945113162058768327227425831257063075180226450376438530486455072362796771521745586177619101048156663791937317858361686038017166720428114848930405207229784348740491561609703212251102886718714558543263486382948332162471573425459402118450399551242378788116875581607070991760023466302687039313464624232086218143942515772365855736973836383435529321257567233027823173673927417814080891984190781590457520753073537568002652585169051652811864836103579662848203471191806319525332756122282388104426005582046979661365703056254606272705428000267982972304548474215106348299003599869595716370296810011976605703828548048299061089067969205279988743848695339225833842263578688744583523278156087272022666811056197439640801301905601189383371845928825135474456944050836141623909531783514819134470184022114489630603120191580909143262270391142930113400116708424425540941518198044491837434177968118895854275796205382438911600504950242946898196437819228175325818102962831387204388443129536162144078958773314619115923874965851481740470786940250586895922927878314743380835023455220422699054002146345043850729263734006415572798485004955800801250025246566862257629867338814650435812072158727028325982292980596315203908709752291312629831627210060126051413528402946926857387929265463179550173795003139808470755691829094864267367831974057803404398658427668167508674632050469958962175261152283719018411630124697372734629590288721408119633205563801291191700988763988118061921829324184392744294132876750775018223876180397156374678645795874234910078136063140185150010864193102667893262871189294242612552404500618828228999600665341969306857309180427497100111636466169487303076771430905402788354941511247874196887488329596923783930525511635883047658285125004686898966426632035323239668073134696998590705546581724242337586109055197441021876492025766884061768546062152620563998445645673505720679316621995218371553185313389692107167039306417479879620220780037597136995779568389904286347224742600404655876719015511918688525350959171966307267507450507713873928071296308198117927317663660219780750136089998468521554390134643255354226517090432365773864089094727126556987037733851547879360836554360310887398249422288757149563965561279790146199987108596511812267145243633968226981600730917998767896860649493521841005610806782826813545447318242986787541449042902822024268471680039088807907444936471981698956089442571964604245520037776195526240959488515523479445380982689941101296183019963478772631734560636777972149871689777943005662399133428271748678230309153144130861266712183206427809454131922419045862767025976422579730598551871658556933610566790990883714409364970412128892902731029899368032904898430131732942066084549900686287644902325814194005179713612715913119351590362017844542420203470911446626727842189650470865466401520888195000599428245388724457062832793817822367215194850779814352525350262780186768873167133610961302772873561197598469555007706684481988292513734574592207299114094225014382832643450415318341134287884390679217203515313046287863062931734928032088934413648854828748711145467886900836127155498464313522558049637220664890130706226507982454551842841456799120079735361034841890201894515051824351496372560945943547276160056831177890211822294415190505714957073207821130827154124294386503211095857826679202810050822160562023626528496602243341579395207733968890560430336183539333471046834146626899112941132494242808224236976802734408875068324189032171965408013653794388452228999448358862533223937924367187689217786230094225596826995125560484420009022249469312196380049234743733101056733423501019675159935587945029627380166433361878994373874319845823307841568128819310144981627693344564904982146442387823223962899446906838801102065904726016255225563744141599948663523903633564194048359688685901693164219361302728714558694248719419544309289129699596258595490051329145818569822255270470586493093962745148782490550716127421598385093288477146761088781460538470262662759444836618384651331136562207934513189664667868602420969128753347167269651031536977527665125089703692016684799123601651128496194494483249273460375793722750321542073704850600002329475370764429429355460291680386696263648166427593172847571124235278775456242140647016021547777071906390729977445903569976421291977360752400855059942313995219015879729010691093372332086454674049489278864433417227876059750018994779321930954089200876309096965721168928740941863535492275257789887986810110905956974587267951555521100109684149703754926512175428396885440973322309402109505436482324623584620595902700867329654290338883198745979012407617097557697229228739140313648963133117963971759630356706196460365030859720682228680064282308933365484459783595440258666973794798821722558785870495547156553170350395372282875532195279708821684534080073090953434968838190731675160172447744628584657554623038094697802626136891798640191020082466702535510583153922175878721456952447678441871158091412584622918410675711056934516980670667661869525546150057527376480035991099512139038324640551930499200408584000778286112988498201627082031688329216520712131676860053486970076700147945551951448828115602950387447914332826167577208274722745389450431401647427606916188324330433791506945761239589870865074833947624620460686631190118506397203960621545265741324793059148111763683787434893171393767720978723544645814238012624920767016774732166653535427550571051117612603265387059348507317252553411836455114716928432170655199426325237949299244342362831661228981047113139302142236622275300581491973123899734316706402688468077098345402488734816375012790486369144691649909201238150540187072788462948632597317632694207403442916362926664176643595747566866420259543652953260263267700811916607991962519955564699061260722124016667577273026877675862926652774605387694319164384181036187645291849288747507502024609336708508500764059882121017480205626658504034067075391254091105973053755801243045494563730960743023034965488283711725894877497761349858679473754578933242181198596716093520663893167812052744428830871456810138553190175882120206905642753426193503445641514926865114471210379455991430317291692557506614453109894033480185932068633412468067977819247061614836716087839529183809810428572651326977674432802320884897031037959649561773551456017177033089801100035817850043461304924655650508742842551040288316132695879890837923288568939702618551944161892605015123459170237170895486664062474382416002304596833016610145794811190844530050004790405425890828118334707823432687724478046947360239670395966766281824123317007397269215450084230133703659354519607318828428797571384698491169724157481247194585256905987846539321620314034731916426038315193639576186092684878387019266269180159094779466959944432403134563484983042656165054508349016536366211321287293149355756357432041209876864333581099162739403586384463176614746896700753164899793460223137527222932297530319052225139120467098717362728297032151487197287705626674573702026510239877534468909174422465955627682815287110650081591573278763026013271743844170369551025016761922351651895451178657263364772723803861000055194601868500786528739596752113966561632677314128983331179472550692352785555978701214266704562102591618915023116757468160003605722413243907882647050842163537786364457019783896403001807781012682144204862532264547970821263646683960006311993972244710839379440633183298522332257334357556451234161568379478825986082291971202646821448431684669592907204038512682940607449947661740820485971551549886315016523064997968421455669162711642261668126308728221491133003676437144539248703487987228549396634829166085771153271556525189428463585272279003100064503249801696386225697020020788853271314341478371127041297230594831904850202298465291290083881147675729107056924042673477566475540721736262527020844221233784953692145638518526363045874968445070262626502469239026500867355664305214545677175803237375680613575864012434359668916828744980342538387520387829650519344124967473669815584022687815178696997451290770721221724185321696310367809674313769864428201960868933017967036404205270770771429567228215540803277983880645744373615244852496921432870827486852520942353315917728566775173233025184152764515308123483061025888217843883881519049730507429357521792417957118195884516589148158823356161549819886390395576900781474573659309526780831374912943731160915998493816198020578585771807123295228475189642283071318755695547426887248086794674912670470370432350021599630771061190452765331353257727623231121802427229937329069684829119773122259209165322083748137806776766489377359850975364620097266018292770798974659123756247123176870399086463664821595043025584213696001615837463300178567283902128845557905404176265069914421685003035505095346584926850507874783487162410745590526104992167682724620799517404356573751809499621771466947989827339621073173606346809741469018123989668637897298036145269365142372122972688804166682939829490437015810407785127252033266309375921182744212502373040638267497857566004373739146702059426362782448082859594437512134640173498692190441436463081021051598404007668066625956665437204220616859602054470616163814807077799340958571766574985678338071822445339136537366597072852333598672738014599773237413163192114428899874472501379647190680988767106213830794768967804446509549890694374507009987626981184419935528384417216876238743584982875366304634288039988713981125842024140422936154760038800980782168907533739026601617312733303994527391710370495510638844244339536508987762253826873658193043941543538234034078268510520468345456328388269461220262581040469106006694818861212804207546135166959394186286267448657792536546944742615022782926021227240892470531913526966387001874904803957305051231369742225865719706391276845950349874340351341293198128706795560761631057064303287480081535246249074556069989432421349876631984556030277042804133007139492760036988451547468001573985336979551717670674948213260862922768546224364357302741111228894441395048728658401161322633081234305586157591032272752296481432392440542425511577922305182345651437819584805651543665311795518752891397483127941000427021879383932021045061105618659904636555864766646600637707020432086633000332199225049020942352448609223847293533007814315157281401218743084350960693736884906773178684382091630679639093110951946778983064519993864627968086623340044502749303631840688449551533555557711618566730968168873581765388842720678442811945318396868642167395513706655700595638055011168195935099098198607110352934888081033617749431307992286949282619787492568576337682111508792277005668532232643020705879637526439036832236664652412627397240713635518048349922235589033472136809560452216285615451424373860313132225806126186320045898644287891860907152753314408559240080513421857350279587348734658847572356542590759330451526627164104030292351294612000776375399580105996798641146927531861200382307884415630285687977809679804697686224647963064812433185839129436730917430484033605016488241753038702556625425881179975575990094539782428134998596067298757689712962987080710716889126977476696243735698529139743037951240008204408114469420479857951156359386072233187653658002082848192957012362138923178169821827129959263710856715135327280810295120321755522577586123705344434364019782330233437753928513318554613156827392636943583056299847952694914680736405977671342798689220168655847952608662730261768197190978295285539947022354990939438648058031795131231472775634471524270002825955257934558068758119278942210326757924689703296303129489091942823259242590400728886547896269693877280960379314310653636356373651602663471660717169589159944206339368141643579990742756303796831976609865083277437833482745341322547837265409708371032835711091194734661153901691346038377083269214190531319710452327417873723544256685562624375097111641816265388311041153988006411997758955138717606996597466522703730053747707011576062317830286868517508107338806694788677134093941015744361497409694718706937737146537783001968121607656549093126382111925676706132788941769209346617849630405237151223779526436121057584979776570289582781869603514666840415415924780953048658361392762479290527989486488525853234399480525376545308601849944921874391332247366912823832531568024518401921928637580432352975952175143352853971660722718554758355815783655972703040410772609923734607419401889915758168917214861452825143911842672068275581141153545797312966476063571726550798014661542166011560909919248102884822822771342983955787050871265424529223983197958008910787390573196815447666804291520679769341678259529537515264315669001194294371593406991129334934962775363409194363223392343775551087985657621043229395984345092013250312545303127494178450074584424966736646900098035560462412679433679762047975902347339165880014770851543902281669550678967661808675325826779590927313365337928253396891024266900605760277407877044582300462246941381877723321121633931683606259115366511211282681361451643813316096386516683929767747787961596409455597632370813853742777714017462609747190808446164391570957324810945167656682074577967058536718712932986870479972272134677963525641220848325438305141696183164428868840671078687295411904419500145477981735655254449339108133558703686701027311300125064465665450995941692172019315963874576340266066165801653827456817181042466023776273608830101135574995069762960281388306138596934340347411671466759319714716425864542120916523416391559541667073178137178475631994614278737266431774408251114763413243914087998074770353112548275339087508702034886121060106079109258242549257623286174317126386165889517346434832993989684481990295815382995945675745075403247601764741234552088089554995201142947947527833932291230902851906369900298010474505150154085935919387627239979935760970342958297532713802198115492150844114647247807804663384066397636604922253989415883472303284045853186632063762058562473214981334285135579459327671837936044605057656510308923677078083634861148931776858385934370919236760426474326579739988889518890620179051041378410392525752654073881321161997522560036777671860641138118404181804566396439026961892734471347686814866934387065376954485314707985403379360384235487492421493845721309863022616532855921724368990168123063166988700267507958945772049054951981591321845264114398392584376714767624300833030426104488614717059718399133485439329731825651197924716520880210026865979285984286270432944140676729460632042569108266000544180401216096581524566766300449527250968674073332327577538343163056103603758729649878578615893675574971350038061520171287094782964331384116726000037636615306838651232977537984589973127667076798043148253743163873378472465440809909220518879310717437022199470992293326417592831310512072228829496887814078080980603322959151587742052907992362671440079339158846391302065684056124436541093491572487423663566999418017389200016211460318397540169402276259808850204803589520250904432667492176122998166086426380699541159939895427615775791491181021041579594384667963597444948584851880847483033491928790663408531739017705979239525425530424064319721543800508278843563420271814802285643680230462356597454389242948882445974077746207373287956747187407408215064777812797202613761079050751546806793242153448266878452769734264156576548722706913572290364387141501363033249310350799040485382653430598517944801969784810740317931610794376306921739433901689307345242305349029307568761426620147482534612684033179411213377457755388960172657316448530306043313942838013396363891026972376927952332940399885838361938540112342921208638236383786240512617462192183995248192543825907157246522692914527041195502056969944245868167095241208791344569077988264410042595869935001036987019436823178949063339738960237562999596277075139595116921920399692105490974424336168151028795980281473468813003286382554901143410935625130929376441715479154663710588488450341334749756453576046639910418889193028951490449418973230848268215584080898848345088240004448864609903977687560592521833924559695508010142894245650919903430483776119328579072078791370345039774196278639448014214143839552963718542742225551006383870656330353292828762039540770250951153527326794159018108236360507920924591363787575830104831615398558314064642407702042919075531610319837542899622991739417267420100760523406335277559264149632047259381843540466257995683032807754976519441075945284689325760324105698689043490374019043490367931398892293820366336288481783221345160601323450504303171967193314448736820923067638613596132675308000453625219010991071044938828498345752615611020990331008515538317293020414604150088525982447299390688974189013375314517550278410847902075324092423326713971327161627502115551665480639353533701857276374873736499045931404081257268451492246138363641870936453013608260633605955454484904922307090156612334450032796480004447788634748752804666633851522644423224302411202346280581217121638694512065796049990343353896555765827468282924428324967356251177359911607462715610219171320707085300833265857189475318350107572230887591473463810831649834637967275161542466333607133477357839718887125388905527196190419624913305448678883296403547597037627652402930221157275801666228665650884140678872492747586676582365214449642402984074513970219676937729887009001586170365619596886910949415426444754661215885093745320758497018465198854786213964968352445562680556176440544702339394135181250700441249781546195517465428920459346041023924957054089054459533958127795912306384435966248781621453337915981717424179937310565800587290596159354642605870477348375400379246850571897175029584695029457842989673484117534086511509775779304077151572232292156794067011597472937046909375826276485726214956100343595123285269287943095573446475649386693564401871221138486410511720952036671236585215994880909524941401055067010782279679955413771002105525623882165982609340114011389551279667735405484523229310452919619577258126128861110195309634716470475247312283966476559907482385371239526068932722482861031752635868860378127353297092204304509885193162759795463195586110395359731234070918876866792459017786712033981150463076251758888732452721680370587138723741905541456591553795881805914010900509122852105519090022716304733366785819221663946708993352997509739030447734647775847667335414164524205191986660363882139677207220840950202031219264193731089603885078436143692155696803104932386331296620549536695071818229987813910355343775549262053521702539501862217176464580821356568403455081495484273616087585338955187434901780541199633356132162742038305965977707531972229528956063030998149263541037811355553646940216233358861460775891580350197896929171145921116560105171998120620860446897406653687016002761554675927706403541797873768883644275921786482089045962477803817805783461189668110047300041298341925784457555994425042528473080572009696392494108601564852932394566040297318136861701026687608333435599169468755419144472018408457094629003395209881175063023726890247204331202449243273716039709795014913832419117934713193417103640161452191877518066536140177979670091660817315197715758079775987095718399935664040570710185945743568613772589649052403381682880158766260027422288551065857003536891698316126404690518713691788351524545010181737622195491178673585114138917799545105198937334045525615783348330136603716023918353853099957553966864645932962908533832531673414439942753961780126804209534229328972869836519670843963685509628890662341738249138520924050404718833889540370906543795546330050345710256240241679114965304761310984312315749761871138260600711742773082583147213374447686090397687864770721672553163028528986767304439814628046811059700638412050123939949646612140535121936992219760439814145825992037878061268724634694816209767406310464490576962487812830729408724292451063751626600057534573500668414462522075966316171243176198136262711209869131526543968330937005513333126380506137384157008450262849748587184716668066374314001237245777744270082928904558094721604430694657314975506184857779258500717060076283162320510530240444899818009602277525376771001411641986951935043743283570718469045615659784232401567362804555336279919419139256992147793452152305779615851080019177566490521165777512076816786797857105102340458545631595310753960370657386731358750445116306428136867498336130528235001021593461146957036748808968675476966742724782448641711703822937962859692313956092781329450499497952770343825212370518623841648729002762611461711549315069745798576145287132251939296974905809243387342272054388124380171940405005587973806987531928743197965824533209133324462354927445502177817882772695846791031256615705438118705752959759597469738986446154067917834823042666492582097114902842586986551768129692547250740838560144599670079433272536217890331275451584333887996983531902902489512410048009891207672819532225980279917752269337774220967959917711256586671063633548936534822358320480396690165589288048386443586267812801549052982484734915584950239059660479742291045692021796467394483849479995230114400197707325288128210621141029565953445131146918966974177835551865001540062501927714393814322557250376940543473812170409721794578996595351064763207233914426947136581419800033826051805220545267676618955099185062638854721456492006979664777163557579982045579739483134690128022789104369905597179494258476354180744457850375763692228236045947652602384824172513472841434294623720228815618793411461200595546403391960438121502199348138208954321186604947480335846548926986846364118166958676384970629854397748314127670276823067375965900707860694691753572319215751202300440556772209180935624254747663233846575609292356500565662957361376478675795890621815726012095937023236711456754935819280107725049207974716898592368930420478666365556563718708250514329448629146031952451875630075989746356402368964843398551728845301182358465394339891642124535749846604940628737911400299179817673498685452620722421617542761310095674680125914896613836714657570741117129829060356437160123332051408420659097566576032619006426071045302494182696752632826186907719382910883492792690221909950495032021089460765198234694651971323510301250459829208899065636782499537812817270764889918184789221223560767599771175488318355078880893669424169160310544920574322212276165210202168718847832718111247497358033214004951081829950291652036943171071542298417250178132990972434973604820247817622936892547658712455895328812300163172769177911534799960853126320445531130797109195932739272161798691135223170551763826023056760732881632867835950650036014109328291288841040983750944112079070468874594744262390784811146012648249615437973333103117592117801296369349996179856770407452974458883146196155214803113176942082054635656247293686481151393130541003864253451059951981147677516705609643770413717696401670178284295005110539273571517327565585186542488700382787806126014105851611846460697038426473437574168520361530445548165382178353753510971690223565367659944665131472456250744708132578908826727603298267161470534952956808903357099342057616463118136652922932315354125102239929970635464998704999105846386947084326817899301807249014549114911460968754099097583097189408487817142545656568244864298253319844741089138170462564845015147624697904112918761472950739925002673160276192167852712255118460195120556221757507868551501629007779509530793027682030474819607224067301638496842756966251089526012244419495355059350954426655890246923024715389991587873707363435381297501969031326645378586997892687550812533709738215350414968429316924329588398768723544579354037629741175364701383099758104806063686835180111177555432737385763869003827033385404936644927311311917098410881730624534332994146808600576187483025345656667892627053111580900686206383105387131617958832389766098586321679925204953036837302674198651840271800497984544005968358458798654869487320993322187885399098709046346868092288162325109369544674448413943282206423714923401590408694892180651453699376563171704975907183046103571742724187832260037468629498760891656928275707545436330495249462621923017015495674040931739803529233630985399525471007941750692106150302155072839420423001563298128917773645202230244060003094269474969458536287597553816527227974200342732432919942676957206152188396983353411690334464201508804646231797827617381841145264872954245857156851196813745622982914389107895473743074988203633556921302746834313060859245323041048556088673342822018164733642110924288039087892457217546830539729115888125624051789626018270417852882371448804085869606215693175356043947561781353778584885979060020369500630911900041719598281807444234385406957509101446115548421512199019776957856952169130496998993976689262355496027156292298313380962594559989644674743512965503848129868980856349659454593802145234778900491843648600834831733586800327351715874540916907884485244491622867883646810452675194916690982302474128982592239781653507300562560515125785969292646119440754506713622216560900533513830868392043375253520624107732093655306552086522982813156383123998228059422146262118212410453673918357865354374931070774272442699832460766649836502934808813249593048349570172027586665112014386953687078600890180110196074738758267948430545803443852928738704303343619358193864133195529958324679358879970277310769729981056854259497285025490887681150599722565248831548986492363563925114220026205689176214397595095075132516386439847154913887941015204560294275372653956550880633728533771351307520462186279240744345147211290186778056230058520573900598626118250661224755200323540665273695635203436055820439869013425149533461364847671055261971334616529493995097582714939202384867250697185438350321529823448087985086257238622212375894521415565886331441059592648086258043363065065834130488839966310938118450736027342789928768784322622265001782880048774951980425208808678698244398470532781732731113141480868797900469935995095652292052234979711334337355786287344071737414729584888809207202329653830133868214482532655888509959110133386324069008461866610480080491579754985302756821421911414731695746772345300300723761789718211428661708718816144244113409050745281960743138674661405885930258362173806611858044768519619088392337705763518521433132411805141838813182144038899789112064907986353270776907552968049561864286162867052811871555274087956194030631494554245047457482509788968132582801690114760195728727759724155929379212711941486292301118640431000311719084715717740961872769743163674992300989179557974903567945125801289394928806868262660098392714122477063904578936173978020153038839992642354053487814631228360545810840297071359334106293087134714979529431724692131741412039411829558784675959400009252872403113900232059251317761799482228159177922713815369970637939021060180597708538382750557703584870067989033670096849099111187407870156559636456186688121146327650705264400155166229994042956202791978245988553824465849596067483248053996352190828968214578072144473685381107533724133629653553523575031897627592535029413816331758959963364685635053022587006985392344541565464032479785732463564786490625956804988299196229223482010454447273398561852274855861055678110715437690333713920729539446033517845073977997618512962117336477277347429221591243463636889136695207602881661684402511699335956399771454866573324359993696220153766010211217057398957808596035617166736545580705155586288553557765269373812932393045046868347827796754819856806304982436704672273063198435423693106715308877901353884771340313323648912296463372532209493410870312369277648657519310409404134918193268152556073265840151463693575412057654407412142659784152684646337307536266108906133139523534469902529928966952644653989847761614929533112065684788233964305205771741153870878957616658929058603985438624297157913163622608995059361710191698465959288667734692585924610890752298501380582880919512930692953747943707847442567534562295794528806328425141030082240487854742625527713384585388879287308309810413934121826296149410095300598198751524102493200104522587891763940933854219337783458284591545000747413343661521282397270481316841552786982302708597568060366362263713098340722192271535533241121989795753836247309739654052450601851755628777667855888575573872567877572572620692323684240632328130416447281872099488869993120759370069289279369858976046784206113840624236136324508913494852180741143143423026534599509684756738260513955701459830321695766196781975609400540231685868979161956164962499577880750789048580813095079316584449772046755272544057297428960063701397789019297819722076224471070444071109620491031987238607108062890179158133961693481014734746845826468651136439587163419200017674478143984201119817755460560838779226580543052875845457211044337889698509147389442413470170272029353910339661198393396912499131221732783875053945062163679582409936692626036487827090806820037809030154486434369187205246542770780137751481800222321023093125410423940441172713682656302937869251219047822145879848499161292358759009316551770134831261320540845930845174858975706134237204061696098761202409142963919903468695325947042448416764587047989512168046628754607339586531149388149198968212287857388241489375048487870963961157902863214176539687168405745001346944380947176411566894338386997593224355020591574468640031111395119333495247452853886332480028923657298283510961615073773272362481531533868798359962125295242419402403503541929659982340957700131595244757538013225797469969660893557091241247517518741976793964028787971975152928571038223108865228141391785152154218198033753263402789473939204592325700714947570879064864931898085604777503251930257064998387904872970398081952236167692573745753213196514373168866251098678508441259693732135244811714662321088280872896716312391124470077558764773699008898925640929874647371193337189992135508314331877367487452007950788821585529006231815446886808356122683873836922522422940509042159800538092420702627795522765481949271603173125507453786882170921803545384996987847140200050947389990579541941854826557275845658548192660480254379368126673109081944503991439738820414676546231650519396182162297698524415838030619791496695574798702283979583518846102184101186847751494194489754182417877010809380585382198512436972578655282495801004866397263465369065757408431979744441525810926311168005490165043379024302161824980623269905236080018723580310301837337538573635759269532547747234279517044089697142463529258591894740482426134778947059985504171466792602644185589144024008489735083338501389521793087555001364822106246385366899421074309422279828680420489401001576496659740992848963493695719561829652625338545294741426391071773728489487933449790335398400816517764748160871075883816610665435527749929545739193382909356282412283021832690105283933840437560396831114640739209788970163994366198849043282781102944036571443517054898054362227258417416949267139492258688012834422797486991786385942795871562956504827009458066036027133279938577681273163165294247628792573963996396025723348370644786623884191975016857832420629763697341984142777932891499345483997624594100115606145350549614147994920467760543289555584038381564994163901641858847152997925005437314627337343397533699378676727412999927949207495643302773106632623272083712817252160708566020301880296305188423292694122855522406067527544875643590389191811585793322659583980988628176780412156502841308888539978484852027196407851648857915662358971820962869852447283948103317186052479570182874508088799837355735765522534200392640432576059436223641216660220101236078016357390112501093592219723024892432109231053478836702164092729612315634777895721185564916988626625195519242384840149435119968823948041195629891709376530904577089543978820438889429727291125610308023486873213791469913366209568388384688505482131511329407325829650660174558287185577030891616038140577341874852573513606175281488053778354364906878416953247677154968135800526193271286314939275621933385357683941691737344221303080840846337022391663404573139147838086400441215642166126632946886785849568554564749941469016365943821456526036547332550230593009969969429153876274421131279527179807775371189466182945071266446371662755084669482118671520261199573644510166193097072045498392069186122549701858538805094310576776180676204686925715296188389243919435319606207828452994326851874824731949373240135101140942637696925019310073197009378030907930753927148560710713228462762769845408780267716906580965289792275044983915227112551537246601178819463382264174539972696671950267997286843719811810209152191692650148017216986629258525024725902192936277985031458007881783377856870917658010664825669212657956039124032026877469533619511912580082172233345393532987210611091711368470445212836342250572550968921519350493567080801132567183968278817055202226273206709797322179929137627412453231700500977504643247650617019068851121447615887239313745011765177688253296151968365944355964972129725696189370583228248504101806953534312532422724586502967881617298977805164101290093126492758406215054317520705435379453931107252933376043359214511750022651601623245572521137257658235951328896606650867631135244031898656981833365845559614743989197167383481841141687789829710586608382164263576607260428805016553930777972264327176567776660690300757557547871246061881642998136803292065697299720197025711233064800394322865468114633112756122015792278177605502929155729234151107165889402140304111175829841000325800177992654393763303329395152403207259069068708890978106415470119127321900422390067391454820617528462892059943253995186724659894802138054176053612664539303112298439319750478576913882721935860694791633270386510946184328461550027271196253949051631537136968867622786252024906168864716626778656270549016405037034399887065438549323889345643454101435837095173613888583994722915941241751601046508893659575784422391283416754037557205800100968712323745234014961459166107126134396170836430983071825020714491871992969116578545498393238903533235863061850285293568545506416138213230883720022769632638868224210421707684390902478150236056351350410448361661402789363399571149692465151342804121677011296473976090828701411691858066309894636066166375487080588675937701987529518706012291482851347705300665399794292671822084980044965571353748389383376587126701119675778907749739967109462909313481463346514587389266180299540207822773427113111223431276380582458384613599790118756214250033934237800472037866495337847921412897359870152456503487370368117000714296031499374118255233180599769889202357565944306606158612428457894244029861821719256473626259087161678620165871891538578342438439165767465472134012833592571715554621880450211830795420729342046177138890036673618688001906224102105840298586374473097404972071159416268090505760187206394353955359183660303442788785590087094255551037485683185017118265181577375421966461551773275560758585653050942213480133106154004018814166929724091646326510942455008588497831345863950800266641657306842436631309883756845559957490332088072451069601083151543902685499280852482465520320287954042938314246747666703975857314175591858768048581732655570213343313154846866346955564283015840523561726445144315049707644657069931252121542041107208901940286365369599234308693857193064682070685914841369606457678537165001315590849977991639144149790903472682123217209216517007257217304115776323836602888353835296031367412373840255533635527019220555461599042963891785974056876471172948582250360811593455590343610499277780556221073515903778290894372592786146985251714673593140459140953666470887928131442089011614593207144657289909118076779771191190994571796911053223708946928851657414365711551726508937415268801628403265660903519142232987596617224246145065161648689236548687533219466690333058833195827775331233909043267147323572545736497140525278135908560495452816293421638205036535409886227422200354018012004467030778575139853827187642191642223081995215604701301837236709287918400500107299769437610566188046684308320353624065779484394973322827525510203611524137946013084512271676668182380335529682388467473522664001019417581008103437093267867321088867013134283040435690399975606497422985222913667027813163508148498513976344770421200627670575542769969822323710306372897267613145342510364726370368139227505448086703501826156506538011087513001537075822976063795788315175248186775093438517759176516765065188382940797276971760166174584439179730381618263026548468757967092458620732657674407591172465584438784554452539469650173255682659983663429384750779754973233395393044107198575831398064862802327213497227802250818295056504544501567466953228051982381463633188436424778201396575975040061240773849950368769248782512634205659057975605646420857519335290632103165633021973867790310933196192801024603375453606538343771608191200802289141932040243078361947656820411396899305932858566303051517256932053890368369360816788687824774506689589078246488596073347223967954116084639246829730638871479126679563245007357804093097381321654258452834333222024000676853626222424938030958795024018290923247506229505105876628976958662351252510424104334730890659706126958860644800850940672369843596836424543559138663872809583943597849903212854709948289886161105808446581027277099375354594659502672964162581955143302367081660130069622398024799556822601845831749247214683288711814744169086924184370905907345761223426080356247061269803892353586421738527095454737885784291594189720669317344531409309798271611410194809844283824157778045460154368721048014119079461938187952672259466769161359262004139994654491533254165481544555943088760253533899397205603714144036225065717995754616120327055043073194441429848168798117476810300687002188366040578568495554326348947905672429420730602108062009989184502826036080923520207322889712040087398154555812060634917165755085443784089325925914549914239521208611356210783870138130634432913953420876311205557694870458756367856767219380831573217574822555897355050224423743701438540743538353507226545685834120447830807160024540346334466030434786959719900238932376815907272048071446210713000778194072636633480080350688284835369231699435725736525876765712456693132316548879460377825069584825834742048898942159141591010495794673223414988619013678020668256815630014877199363704515979994647713284250472712086684216327692859883852920246371972732667744608829466670963609392049164180718455002950251326900037425820189344141465061690693529360007341932851222407737437642122901128944001452634369055077320717333885162174064205011143457434959853305454365859725738018694940205231346850839081114495658159667006347298615416566252148154748192446279011405455503283996892458753205784747328411709771481668278448971323354177266971645313020861573319755166859168636778654417120697788573176697461178449164658111493972577547896669553596200970940657486251909122009471818491080680514017089097206422478193481246449626933979337780742667045791248774807950507860006428609190761887129849037694778650632262031020473546512368608621684994586532255426688714779188612508236853790085510438785327967654086643409654124391761192030135806430480902620977785957148089271343189706722997679801075161696305651680017642573597884260231457876479052644390951658490788684290967816011289355661244289624863340676905270182927644166795495536451067928260426801166146494737574494865011491000755232223890336600040931627716154119039992760529400351236277630005344772665515170416573981613038401459159715873282399940689253688868094842698884502767591276742249823517280007190125749978813353588761861135399107528896905877861244588434855511926732976885635352116622909053606090416597316110593955152049037355925786143757038801730791718991792630514508847405054382859245671567485154407953304284034349148473153035533577888329398977653892343254571641528149412156648433643945228836422481846099407128823134026102850962257712640049929136897436382073465075050130004324481014673148680027752874526588987836553443334519684156267368788228412283622749610618735334174692522240568541429359880255966170785788845639182324929835851775485364959024919417013124947756853943379838533346480441472951197652204049194459910115779788770273304344801574293737548790514701851819409741272454809057057246632332174523011683961387036575870150141005058811320873213409957989016584159888161907088415823657426958305225777119793575988095334297418472558948639749998938930199329921381595457968941968021214468821682410379561351712704542200835527294915154319092067582389191811606355062663156301717577506480594655871950682607561110852505842127873004876670822283629330766431179325945477362157420014953006487842687962248769135731555788688633575427847882713057625064747691496090255479017437252951144703467061745326428126390129868919020291385690126361447242235728885186954226493424706324922830454945868382170867512937919693519902400403336323547510410420956229856370989375324826714245343777730341095754380329751818052505842213785607415730344594688611523888370438202366983108055276185230668758958767354380915628923335678526514725110021100302153408400595117033867571785174317015074184652078860685669099194991212409385730968256894318875885800898640296770645365295734202062764435971165104397875025284356808424511956594944576837564988755641253344944695907561603572073590021134710656324050973383026131984630109066511094454493297530146065896349951803923926821055136653833574446915370025969130017182570142524363842591387938164493826931494740914361521007911956356937884728442100856862518068488357914713636159227749437534954940279370921508985607264231494526544803736579752095730393503417667966832988878105064091612920364831435129913578711196734640969485908259856988773759433699600170015795206400047175270249842766077083768537119251239428777657874298307661842919895590989084749185057832672590736814633152714626191239220427891243760414782780328943162005952455066107071419800078587141770632022437923924691209452421732263238720203281653941315968077664423511818635537106064806189876844236971609509555881848931554263547926296463265943108331967758584133845440424286543151467851893360106004156939811712514050162301498732975287660158334576957110898310798929712321244192899397506822530946218532657691502594389997317450229100120966337992422722576723355501450580823475320396119941893444942597642079220346269383495950557729420944960542461352677241926259394340346802548526457148211947349625211903359311110835478758244167067845321750556183218999699455725937765790742076166493326725996135655568635881278516453433138787242545598260889929142589672613271549751062558709368853770938094499531606759769562309156262982916315595267746973181726623741955711536533602007064368529642185027373372675224676411043117018101909050913235168466730588884275305129619845901048988196541110251231496030928885644730737033622063823415066802918273947968426148089021380788578218848194657550019151537085316857355547842894092272535401891286359854405502266311033140789052978125418471359052950684125125008269028171090955485965845868860944546925238318339941263425411897673950163871998184948566838004586114835190870434932473583096757734111008941134406458791143245402918096916036184334900276155066526877771448957898597866360699753150372763362444115805474274249606017341399903632151913326620112407913195705318466978555085995493745947102232586936489057332429576573592436868075692618144402621144337040431004224332780668409015497836056238748049938799112266219457209967134302711292646722689052625450735988868944204673057335106076611773712616152128341699755117552999205128053929352005385781037702630134170194796267243053093912830998141687667842438246221201988594010077358999415698376957205272061927461381086087941351604284860739881706838652496739263671713194830622633137241453457733828363429058508190717161334174724631484435653477877736713942855500611565347525153672697818271824587998016896000729900091801329123629377968650108609268695556075692081013708900181435567305815513933752212625489117543152122463817612830396052349341653651764350635308602386147167713178215052017749437281602202047757306497640019964902342199686133339652806629690012241621541160973211247005146616078822954443646946454848933102650417807641214272537380646675576266817163876911956875989945909822644207187058919030579830180347694462145207240422441894823901564405018328021932363295817624785842038516631250726809826735365613475273220548488968810410328137745516130443404911940528092254177504122473719240840742923541374863768230881893562730653508347034863635953574018512290762993994864788041617186885466727141173974967469373240072558263799258343673053621170294630062288534266459054314535186873777272845711658216278100139370676952830394453382009884383159574909581795859517255746736065419355718871212255982681148366365695652095686058940344591255508077328311909416387372620786000846321419784251126566858438838417876666411183283085342125954954108155316735033759995852469942830949701174263080664371940102657352662664078849879113629534766442090901482301631060883936702633363069187689125861600665259400623801193482260495861588449178171752718914134241303491343278075614531726058491357954319209912081660435556259382227126217733037256209813146197845674045330130028411455174359104646097698500367383362249600070807691589116812516079320533936323429789908558155687401805721609697326928857708823518664527890457462139399147532950559942709449255879124698462066771459914544174025318377689464202555464405148666484599331689427769800677867632987117732951056229141145925470510122187831496794041607776356956545483409192731808594586720893226090658129584796303011533372579717687119435643886006561010385212529503536591092713069482255600042321227983903443673042679472981834817983787035496119709587901458785335563424745862152209289826522062694325456383519528547723364360015392189271424875447691425975007963121531805847939050754652811233270322858010623588347668221400045984911872470473627322318950638515733124614965516173661452288059351802407308576525961460073804675324319169408600201422988763330541347977833726544967543514610742319703978624401192832856894344534688255155056580705489075808770962078040698147253605160628741475855522488465264446637198052895353901995076603949259079451960669534670200238394072746509451763670547643549514623786392453812010722178927124846342611155756578633707331017366607764960482852911498024595995340897712186366066278550136078504661032320885868926623272911181700825875218135079269587931334133845058230641681469534155280629776832500966317346398631056656035654023640247484832552365075512311003891703592718512787681685710582126745394549618688522896553980501151995988085137622795383111233717256842040689869264021639419255442681228564115523692320329341177727810463320856293245947286423645791640839499401969907529229788519176079918374767508493188172950365317836394048417207605774692692613583193835365936892718850244355705908888981908930213246607192157513087122694783031159868237454836059011973575267905990099945434492763376551847898222564288336966354095827224274778739888883942156712465876724816195870686064556742063503249873877339752800864029751057712988567216179876927731919613444123562936472916310310172079447935921903008663440894915175782489180121242834888541721054059072235242073011481684950069681764611015350859232790049834363506588238132581270983208204753727486115097247689466274525132227587985237272619426189507637884840034965564161088837640416348502643689030707532239010312217988022443533648599772643472669332026404143651103510239947230559030231442140403922140308076900769048440176567061226995856392489156258842085488372146105858394902019989045398378199098123383265933099551460147141196907978035745640837135771496902818791111748059489669861508625386068445544652400882267658558691343221708298269560103276715027565063830072619106978925105947418341614781729541872199555979517149691400587510770374136570626621226800353591615327431191694451957097293740644712806636382898891265492863106944980813486125676300551654818856090783701242882149493374993426348121363417586390288751393275496672042235597715496843003401676136403659649733104758012883304277917251128132599774057684728531871911678117754444101714525031880740043545777651968813788127443069489089483721356509014953450766405708958076625933813619560394964978178788277380135667277125606455399489625644005588551995517274636349779437102285012693884362678858519684102581701254931679648977026809037520871446390613419883262546899137846697147060321960790493464133258960819028824001063669075481895720832121339392162776066912426673238674197281812667612127506827428063188043762057020377027798370306417219670788063025674981503096847307500256872228221876519123282910939028515015743001207899885275817017147955317495229898989096528237803910310352902919774221646255994981680822917461209708343769862508809918704530316535347928813236089484855302202272024796971531968558982436861163259836781438834958877184694542453758558127310707553878363350994814714268049247765111166121809236436963385063919973006566002507201689065414112115717476683269858402399542839891113936099552306045652584866339516791033160982943906828735819527587755764536504500379858351956506523259140588833870633416018552417296817346410634372499011056804513467686613677726193934528530788378814055623478963063251576019958236377016561243072312943156858077341218654745383859235509978171999744111845177019226345467302570326609857695130702308706360400636865967367027310608508992775802104127518045666138478854330239574532882018704808582587337298927945321454625458339524651213256821743341141168889376188099016165690564911131309606275653680995803544684912224379375022624032130825446435402495476629718218165493004743725709569723498548171863327399508985760031257669533884697084376012710221208502849392226108332488079990669385967938418428687565334542508433507495837181651264508598697276464691952953034157087499032515109446275004688685995796081286098911742846213818160373779010019424065038057512508762581365114045990502531009570037619725277692748279947379959042669210174413874333661142452168017873750852502774044578646167110048203977948595453972333985088689713570358025897837526229443616600112048612699423484416224745382468813796325302677172858027240138889929485798743388958274258285287971733667028671505462021178050756536496368294500611934214278717904256204678840522733522901038005884169690788864439901271549668175076898640477222705648991904241916937455793489851890084340896657955094898668751121104769853746304504950272794780452372990743908893587002090341715301914135149168869958104403143821842345674900642356910556413284760478878993566198134829537579731821932475666361023645302876017661166832534321971078738279248659267169337512331393160677736893876663027967014835671460884039036806098695219968214268014201288086774977981410472378936405558999299762320775707511388768356851917340441949100274077689453047515138262285234589429755045103130314001935729658541330958193242807940433166446972447575796706177998690700847717293406714401569078485968750487541496777968484581346939046517509114382766274405687190779045331825967684755103372410307855665070526205242670080028436480036118233475751920996095339438753638185770314880874292580697383490443311487574746599270311425109571800805672303534528866690345450527523015591912122495664785266754338419993257974178996728101109831337228872051693018469153119392618571739854548562226303203195339793661980682268829367587353114856527522147092798182079730433933308621060108184996048080720320575488023944572399364553808079252036834296061537167149241728205920783066050149682454567868597386298331255100118780932511210617524242178378307052000552484858438274136341441679576163614442910697900678704450733962278108986584975416796888837385658487388805783786080044121091046092761662038525688107197367908242991232042259711751745577563558615899200626511332428557435672997955422310386549700192961656536915059993726881118157268206320413846075424245796661387482337485447747659191423106360930099497173961402855510945329220757062881980608574916781322754541353211367633529987449687838189908590135684694531246111112756851291028843351413892769572213787317245229932213111156647798926163561879710297512650107029344103518021051453444272850993289471124916264387073887586991109991599702323367743084304489560367539292200339389732958002891931834681419989827729644041825873565281599283373290423595558331824803415801158473581239592668534460775970384216753024469684016607563384251652140580680018692565555506035793439178448975447022073657100704088560322563949680130128378867095247106160050290705689431588748289533834629877237758789669264056180261492322099482646494770709473793181389862002179650568889151753385304391865792218010972559514806240529520823836863001016027200058028303755054504904070298311611062809839269763738075854814155241133191571932868261136022388055015469208323995846050030408623616977523888079945623113920287480695364177708497081716864800438144380900291250928790270160257280935539624922411068395704065675988378696240995425247938594599870749736746386044445753912929910526218636255579019950477775213059169098370374782211052647705477783064648494682191475424398396331822409918272825111802487533133336597140770647140547934391431034122235819282350837220062035167400419448170397217453496055629603989619910366064808806917836927087074350375139559901227386463524482612242199545952878802175079659787332638041884082044669776409472603739278697697884591753034769707280499543074024471726822473875775411732198710415096259327068771804109051437986687215987956936699764430232775661323461225598270638854559037093538135081714668460311209445791693242935746006384535911474669582617255090419734318296842639759281385207476754474563263558569121368773564347356059500903252556880575416955007133852715877194672825442599799055912159443775777703810942116183508086197139129223394928793439266702789337881768975907859189803998110281186761207115912665970568290364507669492605915362360568144315079556291277527264632002570883560514005792047333928373143249083460786968835496796994492221315040429075145547883572689987185694285001250463608062442334350705365608183721187050485110214471571640022748261779307403700373304383900308149757777168628960093531525852472793044057838457326156659998106578460346873087581034741915767324746578224500342451132246484510314834453431987971064480706906153242207755703707451673038514299530794765027114136371382079192932455734938034802147400597640370161378019946318979632071210537071807068462507384576702927815870802987994290147461785717260465226376322073724428701956549839332467007320267414738563386133452414948970213286382354069817772569827572749126257063065444158332585467485467768976098934889197489439285698211984922651165748098818195806791815588885291131082301575383870872916848474593481528874649729529797281716435162868936418148987921222910193240033306575897637504578975832437862016463703837280431758208295023702860547321998369553108416743854643532204059588564923310685171091516979336612700667605402729912511519128792510549771119149872519873973852226780473643044227764563113407733447244301615208842203715017048643203708106362899462765829544052589704171414628099510442506528329314359012097900424773704444157068459173048221048543867075475202848924513424473063274860472173197329877084683753924447326819145359956799659569933479902503662205090655359513713987727483328256245239585327840543697570807904998982862847110610319002102170566095896484823887861999100969493135063304511151846924733287901846631578024903745169633201863906552394752215443705068797401370496919187841919571163237763408231671464254856073796152348415074380879043134438991623737102520833003649085327439740257858221029347911150643208328680497514787732901630078726608741379138801030766281890023677318865138188516067270943971644826970411184824716864863920873796616785778472018625216920931035881727546184437723733978540810882083131621712771672239426973116886999479375202425804069240396142691624045664255465238769975020851521670224166239902608125253587401362302939442957793759502753876648115659880365063520003398795000721609915204016904230646942442921594643988784129933068438668761690361358965516523256031054409352329617886514093728026047091446650722319644401345237130073260516909345602402992447862472894838958709730097834138352713147161079394589218151836060906762726124079490595372693480268137359939134259617966474044472796219561724919100809553921876825419888113807211304587974960145195655690501025546118546388152261212385862105059272110695429769422307072207840598296878942814170118233976899041291416082528537188668448686573822959822517682256531252430837144692514238564604479890873820290309424581999576700027570917677304910171251375096904496745966937856603266008703459033335804203766282313863978978590101893362676029825037876206099827919530149700335079231942527636716029034239859532166771344726861758804883625748348621839007325595694254682590458191265129018214904774979853963982606049955108072217830642421294524858019312659501918817282435745250093489926894006744569190884981858447921826582408434691091112286576884764405717587723962075839880320640684132123768745240554272390797926213869333200023999095929449807372755013538156748658808845263503541076394299609325149496289212534188410863638389047238654436093934038607138949627300042835986701870149556021290287980277476395904356637605151548046349106755567596765606295339760320326858291961498261967982018530929837427930516412146215610937797816030923798883038598447534085001943084616181615985795006293687902616683798689330871850473353645953206026006458456675809829027955130804983276338089907830993072950925859638560085866671142121352523085754516881280305603180437334821534717456582767659852442154782456383295502507647771203525219532854069759118914860991459368918152444735060310741040580378947004095274020033651812581269862204260574231480957905270929158282311504597842884014438673596947693267729950167585874108799018334581160379342199990772873323823359848792462733963437927376922450147810076058630534644812804841226567786234187860865352216462641479026502536737034143739143687120587722803795260482705453421844887890972774291689947844004109773028003612109834393097215183134635960198499996318207982374435064924346100672404471992026312365777843450986630605704105320790058300686580040074075861874183948946532970756658427420063533519450513398455709775089398852616462619717764391209079636333837161416152940151830404896848739486269366219525676076358756012838330606453802817509185640438762646767691584549593864182900056495912213065952047042568123263614834772687390719782921157836285288966056591379312886291497080214086891429999027159071773780154011505985414136573843394305948422897332454615104300384530449896095721589753772910895990192528241542821923910829427716518024167650113374817301648163281207862007944928888615827438010537539162622434444088385778611479837890759593707626932924422322050239601460269060892289709583763315750091460055569055246238366463537701806219821870533929637473460874090447049364235082572109813592027401114271293126579920108429397447642075741728681563302897882253724676759397174579208158461628096643466746309864034963128626861286224957074074897523770898927493026661185232134835370868455706128214567551851735670466014270178769309315385244402081851135997303697532072815793767805005434593617746115537230308690267627970127148898003363882623426689421562539665783850429631446390957139301135446923687081181824635172560290063809718199672824867209475623829869937848221495488482144625286888041013770949688306082945034795739194910841398484334158755721672179814602222939516355024540296383214927549433561493526269954272538002686237098779097022188405200350443528990637602181546527507524284144962071628308995021535854413726255093490853125241165359248696047088480621207412309663498024487811023693795890191032248200684557894834468241764914916978950861278493502581529016144728521955519998399440129091311033064287999159588289904953397533683501398289847520227017742067262420351319209066399987399939752430886833628605825750988791561788690477167839258531133345145548609969339704165487379799561109254204152921913512950040868394797950326144900064189725650615254472573424867869447735440636430966494426022193805145325565579078576822620924187046963685027689624815535511043124962126138519232694793199355818092947948014415475057948383593158725270755895147744684317482699284281930241964928416519855715156190889049142532949064225345581124284718329099681496122530729092327450743218198811568056055482130790933146337617518566380823392057740540746110313645342023143492499961437134792147824653096193005287238218519015053122578974149509655011929478233188711494351926528603588783887648459739651698766827887986067607414513120663185792729080407135369227888029503028672974425081839629215223447285509502658396608422906807733128267624051257549017539983839282731965184083285218770296166247432978933498045087632511689201185186248671250841118413101277625274456703328618537782461433894028729505157840285143151372792482633985419202671213723908687774917956004490217473005223245362536902278287842201592143318254493305782248656188965575261481047246837999397788637651704777451379500469596027440605614964737401283998706944004664484177411048631540572412615372352828357179612315086344497733997482423537023228624673984225166183012816587642808311259674545643046688470312421766753988729927931545151414590278798690475347720942487960249169067788189625765908042673503328328933751378584406076748181447850246524835500523847311521655696469948654513891816093055092978083584400157024566107861268025622763709867796966693315023158328051207986184244717785568344348402637359878540208693813703844652165228838823593610304806862833690195066678102373217983164423550880199565388201889868540204279411281993499054034602766478772423171121008128848900933853314500487951256823560994220710403009296179314669049391041202171084623235623094227357307564171423671751502455063162121014810707495637329532472899352794721538682685765701326412445416736392291626698381031202889341866376311226071350652211635457584619592990318442400042229931084801046020404292634980656452414142495814219190929643687482918136460426892887117272522371087566917720843846821087788543116357461849852741138996053872307229637782387030725473452195160603690720279249022437714891415683476830024901388704661000812453409101129729989481022364130212979934268052922556173893875856834032526594692466393060742237006644587699210419893700040429648591724245790812761379206398149280704585823829795477485005616218599667154684947022714254675765871347514662563739712668011391147334528641162095306470634016375320623102682671332453722788316040678326867765661122305500374552303072107467489788027664272634970785815295002103331896564125193677603238924822310451372735422106549029420452686940125639240253923356810097805464533015113997203528021193232498193241266315002684952509619195251308209725992955631907463791343785754259789117126459733924077329479396461903559995852625965780707500463265959194911195599370940152677539932024931128694131074808011871672611344297439247600167452923979838810526139278384805114239281766226247879054131183529751607938524031431274912262939581297441483985741458733577469256905281726008797885444837682374980680518178312847820622193865018849756885304979583238349963576643941323869544717206645008876455884240990896673821649503909425699058372522431937006972877450413508223842916859614251417367106989553183470456969582816819941883779143798730943327010093914783412828939909966437434988534779717766193809168165301899067631108227908135268731613984067907975699144769766503556754009856613941248427405950186839922436645307198588532793088049660104866593293764876566893490697801769822070898014747443605434711774042646816326889733001915668125326584030013649037156330390769489428370837752930188111245535921261672180450506573031377704063623817087432993315814707060383500102479523750219621153764473303320442969318372211048981677119408203120820047236958600420546737638617440262214648161117478060188096889589778382526081131334231439173891766648302891825598636398637080509543422887119864454997098708117030843859407871898529412804063173640092911847724095453955942037235241626381061721723301431984248920457144572803581106799758938675960419927108249803700633338300427572819122250123476933570028077720526900305377409161425300384819896033624194513652045669436487662615583941575570694401535917874678693203833556196701342212130818287143755831405153566701093233956431532956489059237380528076772909400022276784436474455740051686229180988217223932050525116481964589300283453979231674400010743826961351260956869604630676732318940753210518697662197453090157483614075116084901544819109993809526024966976121066345866346945080645952701617290845444501770051719121364857600977930630697601984216522025501368753147441486229195844024572789282817969768406735175386754840916059926196888333189820055186559413139343384088442900650924790916270972584646939484428649317261518139148978550362267129684607042206240369315960465771204291081863747660445885302833903791807645467755639884981961858770014790309329182782203237710432834495351099319014314872061984753241746372643922557299854088935325977727478031167692339859563519245819883999634452691397001837825457648351695068619209495104792751968051423468735868831803560337337562825008967502105492805832967458152454340529790610230106856159500540225651113933297644909815707729761148250565822167971454133293587867282607044815399364319425687838803062205790150102776278481035509285596198023948230106201778939623021342487423829212702537177658565782798915150614047870109555317402975186575230097296286188329363237736690431323116109755516564766790490338538079890285204676119982818363069628796299793578376262035295623802451799723431090994932657932499146834816068336484627750061979959572728132361639757285006465261315227761238464768574216309498924463998866351282673985213583423313642451133925093346559661081740893466790669997449559638774306390945964092816280560049132812875136852389270785303802241072493711973896913180347424799754887067567403558511825421791144680400573390924195511064502880501390731236857785684998348804162021824664824442878254907332525806383333616392759098987471010934344651113436961423737353640753060539649683352622641654314329597328199341810721538608384796684150209113590562987090320364050466347247194376601740426230837604596158619668842087800340596802417370043769395012754322427286617742370655106378821167503117979051110156068200090635425002144641139026876420638619249238436755859232968551475233166807574493966893233086784334928459742467940267771286926286624732087291035890301259161797130524147538721899206935295445015363760821870665611087854477132661791603376149177034007682573028773182663676311725745967236081995083995166387410561697959768867377003074764972693401030042568217848384038388235648449756158282567210510563527244003852431868236460774832404286259140149747889158524663521169806879635619495160199033232906403013419384423585373447150993717568763373529995976041245319415224801081028249297667099572028479301965784744081019438341854204689917189776969020375720681831539024867577766549550253337177351274395337938499582121265842686185628527078178329641706435677117722647467692086586136316924252505021564715567094406931186787172215702239866127174551253733518683300473527936258840261539054160836899633141307346965518439302319603178362891337320858504475128591125744696488992496714573661980830890409646577840187709371648839124322731508302163872829224722396509779049370330739129939741223221571010768598178716714495092401526801184259697911863172954144973149756146293251603285523758410503475410988442092172800942318122565607612488000678883238946707334099516939971751747304117256870467592794744400066874352345537549159555877009793356006462320316379093091095270125482609271539190797050747658488183187086336006160019010036822642089144992325696336929759903629236909844726249317034417860231474212931792106721914820230191677163258647792413433360004553752285910784214585460443381100148170818484678166540862444435255746484759126306505072531401068454506374531132633553277392200038818888276424160942230287734893875296922215478273998498982422787171717129016832789321050324664248275958658338694842021458920711211762600913896664908800282362832081055012904553498657444085047054927068280581946304422736913907953602733993511301710195529373146497988959483072115249460706552344649507711686504837850271743057785552489660750079601474979102377411294219278478483816998731629455948734305989679030222394956064374600512100225135280102046426813817842517706558476427235705994124819477215836957349377197725949156574585258769517436476459021436340573189257837399067812767118918214890586869030153762888865306020821215890065984040357654918337327167310286986660729319199675763794915293056304840720806331319325639854779131201351063415338310266972661028910906632640399018897226688061363574684882976468702712674906876916060724799162924989834106853102334544624210933094004791082331633409266219192161553067678501668498325079369785379884328886229557255961643370664315899045277457197578473636970184221625913057549022129296083180692372839586771608780924416506055529753760057827801221366702046373270681373519207424271446969635502605818933372306012115767018925063497845997325989800727341149047544530717303053980301570036517801664069750452635873423099191058729389525675181190170380486630849691977923455062422033531234336330512972528638853374480185834895387812298598891604635130909269486673302376059990556821721873651098062384774405141329241211724714432544412182636573425018808459227926623522036835434330574939127124487381221286610773908672773910396600443339442929493998347675201939256256092639326274087285673578170352910929582047709143450705338578368522532866728820534686646006691020216272977836140997281016967840498586990488712951997819669564361645074061108046599563859557605832458800823215957172963393787493810174216125625390666965707242218817875967535316531990780083766576932686936844060658487699795357994619990443790735780916969730564278790628934995187704475219840232244510039824881024868077647355723412433713785394186907367866111376810073377302697532616569638363972913627615315577758848251543574056767680042664526529797517777264412248921484953028672517609152884676652179039446629594447365532282110210134188118552906761755869023968683471455066800753110301116165582460923869509952579555848511977617037139610134447946738958104975923786351782202902563221089252371947061062595056698058067903044852751159854121266857622462029968851306050508375918447187249059079595857495127925893117757031231582381187941833216135627201224865162143938657479086348776841428258481522062366806069282220568548732903512932875402107171879742081523734750729924907036838986182214900996193781171603865673703020471968963885558721879911484868779496550756613281273697514503890586007619284747936224343369722358324090436198611211469818819695315984484054762926274240061818581211651796479819665467097517684590586946772957648671034065180286483554120452084686100813790398701010027739498471866635359246800930785866923669429873106201380139603188712854851964899054260824197762855092629984681504662401741233067272580543861611896898369909074097024435642154870981380285221194866006406561571379967277419679318680368659438973797791692331351347950894612245091492627195658126577882449402963359950902648093423777423301191738821488559951098155094966658669609234115930876954228618843541914282324480415093674786876309931391948576621256960344929427540707431046911261274802573021746040091272155621465780464849667102641748903217898550110503771137993280891113479013613727339964665772714541858328995182068490384314636652804828796348065963757963491764735156417008461896870339858181023102886083033631039310631646862144323563249219167564391097062733846581199717719688272796372723473752060423875671981197389116918908603030767426289002975381731687410344216276573808542161816886683721921902695858508963866812033672439639726859124395968959980295464734046042525139151834335656511138951754382503302407361654563534875699507387203941943992676011774155909018766499054514211967381910121059161100472673803757079057043213883197079797024654317836831432276219090492216290971937818635732012905552235427584039392908368219599341015732390338286631136170333727259845071300610902794451476079748622899764077814408613949542640739487027347386526630733706320790426987670255960458455389799011868806954372015861657848738734194674601991132458198540080475997726503964616724365720843981754513123971737015690754753545697434769333747305558785091912642492128614418802069319520774649259965730234776706172295242185443047813827625182254050199257304218925892548105640582804588088297136342438527361511935252679521403848113626432695380878517785272558957574156077695902726209446479983557565534872018411584538287685875291907996034889357667459965227643537726253664569272178857405349810622730222696592660965180808072318367857734736991111528147344038129101959072118254745038763516034703320614652619455318875820856714803595069753969332626395100051408690371925354490954890725167905544651339180420139600411072413676111613885891040748341989827567779430709991407645299777131531419505895694882559687420648998013458803329206191802654958829637455392411764964988244940802752617854509740232488864945160725119835679962728837933348499266694820289137380220837081297070476171530389289596250696565759698308008939277285728348278635485986431566880660110958148636032266474160256784361931788006147253934094897101563207749688874035845321831627587924771488713730121654960482724267184815556374165856263608034696703396056925978616448429990487773930855739753840757332106691255032015530271252401508924416657867119795260864932923752611468960013878328225878313436618449239398808610988046107361641130639031536251569732650625547719849642626624443252450193014129197261882248970839829552272874686245907751358102170381032669718768314295861519860337330334757095850975552934610001914861597433730817320367611141446036165778349997939781971622373255115549205281972671584725796217615449637385012815425474955324802347825503371709028121732312699400037958871581611214816697413024083779276578585318140449036686870479725155056439581497273899057685646327509574826928002891660266494715886098601207722768363083227187512565142326071295242187599373465509479058676255490568061221997196682554422562797658855839845282551236224851774812618369727338326062688724318918471978694394433780115870931609793131288965456304197794304415747132194376684643402766763095081921318576880505843836701601056906338999829426872102399114962440217247279616656841334155184022927744187539423856018852467594231082789892879380142786065598311293737543735898771714836173234175695621682294902079352275975473644912229756280430526112242476347023617202506024893379501251972197323100393596336579283163126204074728309386439380922233569809093448780805988520133675621442388903957419075080553523046018960180123976068868111532643724251366628410540765737569562552125848070659553173956805584619061641335442098503072547126718208414920524333603886026728181210049236627544033361560367890194082141581925417904040331528820019502770749543797604130281789168249028742337985312586459155874169258190042468403866760103838018350742628807579195277284696199522383728084180775286411190539137968413544663962011647364682919272440218494736307537599056899629021256699870388339090715929395391763315043792456619300081090822258372911594729307927015427687440386590031602773616482818981723107549271874286006195291961053894828963894861583745609623597318768421882136409108108336135668611398252035450314737417756246078452014498934251438493811104477077748494663426063291121456214197070636809444628267770920260795837610123035574098255872149145616038261959293949552954812274967797076980785896756135349688299205270657746500398549316340768337742191199179830433206196835423266689093438547674011237891525045539131379301089429416011577616602357898822707917363044464978846310158435256621883840535493061404341827749202633523614602513062395392538046040507626502027368567838849686005080919888697033341550632526362657878095479098477175852407479460631619813391185028358253069431815686814587949043348116628586370710814927830789925458901262143170974971944986018886051644948878664606502790720387001415261490655354325743231013112896053084203953876924951661421345227635579517673500921615861522918411100119539828177799244426951147133312399146563411685837346550235236439693060623661147757733618720137839918117538188801046092383052194838883301059431974040257774003718002652980271030844543518782370081592722249144772176790991225725510026671242494075517216188879898899913956765445380598820644154560508778871857747359842285683883090176039896020635672866931279809957719464220477604572576247280050168975859846736843900356364051213136699183433493483441202731008171061694082145279588227329641220414854530754036207039761688582009091766444025367923481797018761942139491721028982535988016292076717072452174077808052904125549961060108686484847946082704997425388586558593478493677999822331499296827503034121748178162839320305766343858112870271595496200952868449579195981160734987393552869911827564213906211346227471941077863161001400379173653738988668003705820885535325236212163817538922530817693893479324587668185409447215878119123754634519611716816908343485228601326543244867240456462227473154179591869189169318708198636143660032384273966504715333567145401045571806884546847421157130512444612143775138352326008424129819842600782995566503112560728956401344038102740453360555778646256170152259662350736029480667367377583178339640147010246826844668240522100980255624889115743042390201228521584936630845643478142311530202838023115579960277862710072768296793186387527573729017287775188819541161507836328792489996910827542755703932675416073723111855608077668624738742119773570817195371681532676746303180172776801987820798952932543581698159111068204699184886364151326265778976579117887956052481553106143741002692652860016031308903058218850687504054902491761109236594696509681935398989432381279158128979191503156690059758421892092116606477348541429321968346870181984589887713760810752436209450283644660131330061933623174161224378546648310237299083448247230981929605414397464030298477361996929441186521875302750796220061033381148925815727192125125048059968103917668519202341928151219170003601134744078794345231845451278129817340422012875569876791911687792777449967477085326451015922188737107466612507689305460915393215139462949286558723714519426811296773983628071830262940436262678286952822892869919473784494129274643867299987846483563360127927818217851321757109496354772082379605493101182262413910774271632250169459917310910037357303331057820690011793420889630373200746278140677085921993327523609953574861360321842238600292402619797652640689020543250634132871266735966379962266042116356988357911367586409495033065607678842110885461400134145148789376791954024585460958038742598870225712621189525354921344724861985329579129171753492725486451950041524684782021568565216854621908658791898154730710768449837759760726795184595396529218319725594010652947392800453701791079025780624557613685762626130654862783084794032668357853502111358839210303309802341186847880889634389976644923662964626800323319080999423253981994503331841267890635645729245635395011984401289992632653950595639211710175955993889973276189871732035936106905698175591291181855992740670715463549386970177799600461704807300445351116714307690468966059390574127994688761607233613506457287500724845317459471037775834178276778337636788426494103517285309081990725527636963867569709008026465554317701310814906169769020521577836191929525083568954342907023617130958831199706790719696447278947516516368016434560208095423450377989757192343031335658177764439906101596163857323261539929035478054140070220928600702637542294610620557658722739307982895242701602064055163487753396904954082471493653179378582879483729347920265106358497535354193087605169381213004823989606973648759843334281928053818929524044098299957052922248604522903971648595070954099611199598757950143284152932777706927780619576485337283685279693166067562460972794117213457413912919990452556941054483808153957631853216590521843790262333881249006391006694892570549425514967385416929029784446840599900786509256010473332715838941794534073881629428493553157324543934622041217141505085033070041008548896306170006600084259529810552688682510208128825568098944153819571126755409578037154406336576322266099038270309697626241519536719184205093258635686659352881466379302505792493569598696151673083033903512482776548895419099724267521055170281907411831670722348235489447637309603933849556500705279100723384687719557566442994503846724441417471477404972559760336499131863797529844623498319860577844610085800792072498058807984163270010251468457810879393326731770587474242692861514410539475816375623584307442355844776090140496683415647810297887942005352215758344647413031636643376476308362451302732163825774218245169023785479770078601745533531390816084877013674622067374043876093904106286089817210026262155941299727458150435723050748083268061867952894451525287753182774943403788814012769431459061516316971077394451477565663978500532982358206708948085583550756928911518823674399119943838932051331615968417396083894206960461401233624861224316343221853736589253491351343971135947770018793938021621344740014751306455016227019051062736855933130826609663854921437918634984052124231255016982867232179529492295875045018667295533133476601051991179359503984808964298423271195609891374996452414870927928644778552045372247438950398461303066795375090358105347676844032956034432780612147810573630210362273592433893382389961952955597489399935727906134009691864273443227880584664164371034847015291554353716706632778324411103436962465084364790563230705943959699954809168175423013208624872091346553217120693739281572305278063581841093930350202558464717324398486570405303913591482320278765617237697726155941547060725715904986949165744553449582707056453620448423831212730328214380288430151891262086029706588839841687901249893525944159774271735879488920923811661068284378752852889601664740660005068282041624468466762883677323538278911033431253720279479130200370779149394277979141368727532812948699774936632682209465934906082992573464670417528196854688568223952828101420655947643650517699822771425324682286649996895680034076868580965933826376865481033475258081717597391429778337229081124075459529763865016771441264487609978104066022534467003828832363971818974322202866038142929004269134968869774929185778566435710352568947526334660561809611694856847435222119118241710672747109826140015429410771685847133945453377804677094936010756726773440094619772782177219179017296300848076950154382801088950460232153381907895424032675560034111837965804423499610179109034106802805033605837581923594284340077222003697586699609368549990173110814914224614162620344675759464767656071709302431936667730909283514566069039907709866774256539594381036208997118167130471512917958271814629774262752879120847146338896894032085643610269251654758834199486486516275479150439178194129940161314883602142691356818919354455528442212636903355592593714783436607643448881963298346496922249514831360035321477290683535827416525651541989283008270700745241280392755531575817163397898499156473296100076804698984723214895554721431682010768597992737684536400514697910909333773517969720279454752340941558383301537013171736049213334214147544672589819007020221682830196967803484755058659754548282980373803006039644354399158709047459005559117214178944762606344064240172023272570775350104139156535753476947798795905569053840746944745548130618206573187531587529797229828596195392709880160203098756820971713583871241561010772408516420584639663351589979212301274059008613904428330421629698153658273082265975367378527534882666052110049063816761010481284583803598671018524536467945963266236914044950361059267585331778949347851708064105065865584559543211124620834197505435457662373060912864443586518808416837997717220180561141330046056831320791331906601057486620317141723208555683594501407336915974181061990876587152353731174511109107660786072690898682233669820335678857342979449836243135653741271332746672111436589067400470288710371898759517493132150755709898395099634567054507318902651258150328337444338506873507861407822657877026569247778662034782890518586238514796507369502038806366548201469216633737794627153813391266421544335655803964739938070060851548903274492790053025703358311910389354268736435577024453383848036288527197170795573038570148206833486212034886416034073094964119045001489192711372396115936067174317128297615606057503535862647800129528785960070909214175000441585403915313866648363869629822840303153304485121614852832674242460857942276302165867527980819648358256060409592093635527484664640349559419659731798303171004912842729170260465194834330903721111877952435731062013036535617359245675452931851531045940798952657077362851720670560083884528176847673291513261808264167663310340641159336094858224380578198988118601462126324238080254173272766395997540632322546784235942624872966306610862693653651836237729010269676922785782926460754685676206589966907962341059501604434131000553346140202773991317728318236008946645577559881349838862496374928820858762621107966793131248974668404211340584578428078279710049578024529239067511756865303473779930507354565661210490254093105725381369019639849490165107588771103616805319117473791101195959508592712420876079770219365467636050835300151603617118863100457386169411022312284984839272395336082266941850208459661882640981733520577264143317729275195847105750253158669199650036950534145308748616078812552974557112645522123272912410468236566512354247989497077602507455221181016454427141755928079901583071451748713122307519236842326835961172801798231711532811688658428807093444824027425501770437099315934529807767532931181094581740227186799370938194203335364061280291895409836152472468426612658247164083786521234546681426630162701376832451305325854717584970462439127911147754457419893168102734124103405760879182972664029879701342909044566092073718702645056175285432262574980143557020254877861332365761024972722093163495250516452402273581984177753638743017963731861430613124984880712048308541831017397374682220385415670454335656929610354164487674825183116099041562712061925266858620132996119373372227537636082745466016151386288854962540475411201035531689784872292832008538937926211959692182971298476044074546219845232174637766845109683971387092242629887867436967583196948887368952489462158938791503017156056536642066806044410112027740390523970068422925265543264049572525744953609411931969589138394074498600117716909032657637905138028841154178242007266316232594308078599026535462788134391352191196208744563123248738753757476379206725220258193977139186752845102661777311920198172339257107965613691991620770782556541033542258065256705661188573918008057082628827666572289594841670597353585572146006863706236357657048494438691771092772056213869389841205726758805883892065340495792269296231607933554021821942672160963425863846851244943760324219832692491587049578012034560959609415957982779586344203281070893097055919640546574739143261756940638983076687286177789034421434879033097836834583841896453169572386133904743068834631669486314944882353683912845334830464777140625436440890804578370294922981625174726050758444277418020963309923331135579771755985273419437597673779488476785051787899406653638471943924674746419348249974655167055358349189494734374228428738990825716202120931409875530114855206638700910164413431100934986957155162716618960286481520084799759746512404035311576264941554759390302167157424471256131626278859148426739668230584745270022444824851655273393478427349140802891116348389786662221080635940062950588742111099233955410623335822795224519538344234750548542658264615843713269207946485917165676767511751077614258616302436459542171337521193679070669475221671129924250435474187039963128334515180426598327809964504527425829665603935975151091228963219637407447492625600165336603399949907076420432949358034421173042751842426488192967371020903763394000645939081232672726237574290831365045309919411454834301754272340078899970113523744258652056452900328330337339561235722566309827140310411135322631203234044482876760902538958563106412589681685604631920592813574480366547916790752026529882243477153984617304064506508853745965314670467687430601299282161650513563695906714639675611882897387953609051614443855493486220402864557963547038509365186089738089630908540687441026906517291010405992989371539708512319058594929681521199059888178002681666891261862751827503486838971396605323717451957816427834574612073144434353864428575076541213338038900490423519585012480169125330820032829524817821136661096970642089195197013887226881043608348158694988153850950340336797207903639846681239580901519691319181879640918317149596533728634517567269333780680122752008795284930378357587759337310521157112983022870736218981504584549178322812079301836979298543990671665853187490009185973914348924115586225797102563836411548825370168795495393213841411119390659363905395324418022708259529086668126253421451528877512387547406696401975242877486666631975071421232040488541458666893118834489094331673545659850368336210668381373394781821140744703321510126726835477515099915666209818141879498495702984869624791984788703253996434881644751211234186751276706459081316237257252039581134076309837453188551344245290056698062448789338230218661736542337531644261669044708015966263836483795637931279409279582387930159275233156203472115745644305272842186956553610293846420889635051196632080811263670567824479577859684243225768831541989094690047215751738686005298999395713359196055071819730720171408103114582738976199062389901105251908322016406364565978000371600507058902712882036827754073975716307989379533050841580959349274109301006763575284237571808076282936504278473037680875959054274602259789757551362793491920131284718941872258547327797711014499958834984262876169827799581848253495216939258810635745144613333700616151917282785180594755086890652163489366551165791607648267140504941697863782533001469338328733212225630183999675137261640540373424681208369484327657898961876430535758739582878245303489967723642031673764933450228126841521647344552612005765230935707871969076409455090391320113197159419538834020238109327511495531443392203071108112040885463039870112251934399305688666046705468629960558627267119552685800116476790537919087061287862956706817837298464298269909238856302949313271159037151990169770285959463747033365195906475272279218591955691168145537087887635185967117977914091433145853494951150057012842425698830454011148386925532188317252506967833582027718062134936181902855251834350248998465919661157274319287547003162335487223442128752753092413391300591089846444040155361216800298289700916096661559644792483909116976077540827526518746345908489123617711921787370165349997971330360566520131470824472460672220536887942241754569793832007469434095434613829491018071799676684408856586279866837132349982059651190760350227642825642573419198588884237172163197562854028225636350078438191810447142729325895455913340432826686977263611905695769021823412235918186973581882676258498674804832224148713648720952429026166303384948944649959952081707888655717477672573511950538641501910197050852380615831903103693701600873472561981099605839235742832630100733055533567487843090238003867298140081445031813281180976290617652843055605303721684227757800145154429867172120918338789757734994188688435368649789820210661289077917920065160994203348776970235819650148118316194155751362876075005032041327554694445792966433980208079182822426557236962109157469509347146340008105444472119499874459106698941989077211054924987887923977892082113862340854321521860496389965994520652392514848227722145098462578227641261391837977157343413932315992865968723676166798943977375182238398619999622565080086051115531424113975162086754153777850455077645280935165195656902543631501577330738971951145380880857615077748353842362460594680823527417710708253432074416485495787581352854774157264819686916122142867575888844347101410251801737273247083682062426974629929918367701110066268964263907772266724009321534111545410398639958725318439216703533620852714875955778089835257334578683760507212666359737251738999990824558671764510472506829329158042930841879821616895130463621017990400003649586347416625778436943654559793342277555004430510511267879043628444748364820510120396920094311521652503143856785293116040067364915663083861277581791110878931271549769479645141115149583193000174329933268461667320061982596152533902864277256527434056230985716341470361124284352868599566081152199630365757028350234575542761315992505726224738473140941278046806852115294695408053724227298746480932455933400814077614329613481109886119473567264434651965711863821833092381431685403060859155023652066497241723012034556017299474482544560906152164143157682986707382560163388271491283190296951955404622400376721818940752051146345818485596731844059859649285048590501582998970434890860985815851359901015663821353485479117043118786732718488179880798099069546398403610024567764435755751438604073888275518342525821841619905828076221266182765740953303824869466540167130347849994563423914793880263963199727134613003235038396567072730889908008117562332233033809370750636914242896120250503471125985406701700461242982155149383766968901935961723623896438649515236958820540622613399164725687188549467021094458301058539005753618912741956628438118615217909600374162291703404661792301991818206749245080719153533404327822295266264668762205705017008628717079646182642806968296384620131108520376664349801507797100658017708275970087627384354222996708254796116284602883756733854185556964697918232828284069639997657794626418758889357786048253942083769632007718519016784516713143045437626277059409366289917593437874880046339495348728542820106289747165468695304494543864449074884013049115003669205602742035658808853277752047317165690770491549034545109056244296549223297841008825065151929647019116438154761098100172014365677402307455952877308648298111426477730789063007201828562982707055540636189554065924581165657567439072809041212908155793767359276065228880651021487831760849493384039285030486945384467076223255130290727054050211828380470797511776957884766183580727086679793479326748979224104553435898404086432535229715253906734090680672577163590383575067880658195393484158069399160375910351246581324352283880198006079323637382380808848719833695676902266571238531611672610505287005355391353630673018568303901621857123163255242386025561087305406708583403682658674824986006245584295716470513990178569897547771276892694021829668042254010184126946814647729508548438470763930138490673112942090634106718889934400770566303969063243004952790854114848997551520867344918575143470734118188912938769849627194929922745059843438630569808398462415550106531037435048918812773883805115983766162217963019360647639180772731079403932509876649471749731159025515954558122894837431065949445756808343669426732113395545683904703452240815966640431104391528320920196888429931630367029993740789845884536354538016855041573419199610946578051703742691084118239753216802771738182183733035833532185775879888360408713345524236111751801419281049457621247097927605840224459489663478947833939861126140912374372711693037596501618472604026099944361777476889311863279984226578950897790759175137094579319870950261823081216671216152795456486946966409145822298743025673869448226325040735870719338788623185011403834806558336918190714834569105366306863859870695318003696251377500840552912756829806575458587805950424688553732216108111953671566785490634443648213691422043716993738793034554806247832987388216392849813930065142190503237943263212368785803331248245136582472167232597728344311369260040084760144463844491483401692155339045737479610857678980648114008397108332022684038613464526110422948430532516663304909720670431744676786732490534025412259781973533355477033661388562684757776822554516851044458032556814175399470952687264690498633896939802217016335604633407046658756018190262891428742962367839095767970856752835312317532698097883532042701720862082355304041155959535164589264980197129022433371687670551384129171144805495021955475394888371317058307743086453185661239829300274075627281153135783048592897417240355639066050462403857833297123884818255427302107875621286207794936380213413415080767347496211835477728247660589757523278886205568564211450348773100920077342591576740227680017442801242432423903413865097008900264009470088594160314286310969172706747505152013041892749967933079312250548657415704970485609513452083050882804417023805370710768050734205637385715952843363116245841525826629445834377213477721982829910583510824653161606557273499395343387491234569681920138022278746910518710592928415747816539063241425946341849449254239728077054718531893595456531768348266840325371345685621739395821734704756795822962210096967795570172431117517857251410190075386939069424282623808664025260070528749887760017051303479553233612366494770948889920101466681759594887453282024276409615352499925967371337076133298304422066493713760008191661578098571600926870284922769746074930258540093517124998438720398678653229096502077601324980710720820506582104492085417862808845103159231379616073610760691445622258886126346521410935469374741033380874705146775575525761085629646291553202611344056433011903956268150084278028054515596403220397918965156738792293254557286422992025440107443135063546868501779571415261901314055862361176453586748341084234460203551779551207987144559047373972943510893640581079016547176799460294421460626706066480365744008996959364940310330680207833332440781703392366639372809745552120366408770966189245889034978372556456194759439241944193662920085112381074913933175189195601372543407158925977295923549067836376501472737480307821829510830308913038547387453536707927090410287990667068330719033775348277168092577388260130151215742089857627214346122364448632389851528724003226931805966359955766833926171191956345429098915641664200113037699618691276487490074558502428782023590366231871162305156784953413614159078194660326611875869154705094533765697704191118351526383058249464226445637026154117433663701115896255656613175591544222930811246766281360425612622072892271573878586289215843792995774578311260261471842516998879014056560118201323951429821720699227046899147044596323630203349512967741406776309714668370721706083978548897315115795365926144792138110013259776247422256469330589585839543807784589240878081250054793709186751651471251935220825238845814269570165942043858050610944825725342885801697747749861712805594332019791699834008196292169197828537941364292256028265972022275344359393455989840677482928623480299736201690315133698981018399868324867687232856440219096817435112269408882288550836264385014855817634314643351661226927819727805894160955473340138554448336034474770143943776654092022298303043770196392973069328959150420018047230900563279098767217187765510011289585842034049375948431147376683111210370387943611112890166388688497727527004129101550237561180250843131619243284010360334828649892350162156904051112423161652829294269722575530643469561866606846821217796249917661692778152864619134802141450981354575163777485335199378603793981866956275887968706853213199735260182925348088803422718650979220220613134897618631268370780485454406070443048874411454769973120292102012018002572384947129030503873173774686492623362523012734533888972858092919815077832143260608938338714810570263228710107253006630878742921309772540869335158928075659919273799533578907988722684459221601408049282156456594110580622552310690232115240873119188328994026656316467160999917509305577783166072446949550372520942575808078451327315854872751537885858211057437825578521811004619127651539044160286404705510495890653555851653359867555480475454857972779868077574073434191799719537918873611432561357344637545545583768811143201477172470639700488820142653676884512257337462769995636193349704634622718653096198024649645877644336401637651814772501976380390223170675520280119037329493125682851982020351573798935558204136339280322566003595557505241370722262453922187186747504989164193624158969877626492903222470746992103468571175706555605248526387243358426922320829567046968570338045310309547471797422023314173313657221144189851095574968761641612216275080980256347903685010591785501103041018350091348546825476984579657062217244707125048229532656424205030345993941911041581573860471428029164169323628193742505771627358152975310549022282749646051992544572174404027691518687523432328077987604907913643278061507252953480217246472715387626093019601767613267480661951203303206712543648867879592749746205137497639824613358431984531684358807837421155960807738467595132523214381402510215421061783734824503395174489591605282837479724798804328570723040070262617408903672101697327018945031337181539049774372339607486257064180440602582770023343879228197421007398540667188584719783053046221946592325638563011632881498270159237833691706626470093302410401404939213443105287635260783673104031398105102779924886410988144649440178479710154431972472743730241193041694586441633408629478180128992971292587188391156329902999529317666577469677082370429554300347636932876539671158970396210435361637606144954297488377971824009441697447581031173177164277984160255377702298298508900246494813202691841466128151142122492866854907691431044734000122015493947211632033170752648861182980136669489241297271740139345303618156390628109604792491550051448294766447358909814534378632212029875379673785471868162278259749335345294796227166469316808763631331312471385984757086775486883412421254092795682529110163615540894887391401921155534748737694994134268774720797511095272518194319611870686327305929894059352124467601738851314342486767481488222221552673867739436949460372600079586772030367272398264373460687171781107787863392734754847576043015915127876180627101813987572924804520828503130107410068848798623761643443673693369083026957522980845113939648279724954440203355761631998013847999383861915977056855570717804436582029587937564347188177894998196804305445245430301662123822354309648410252904121599389627891629706581591309827305822486919196073081077062959030728904365199771481222222775145595476364859624680093235830983807156330821751074967930122479210231863460190634777135395925588167219846311569514793968186823974831006751135867510168669369236912271244484965701582802396641249226350518539925117605050190087365036149305877336773316653728727058890356122433483897613136189608395146145687746094468454297892193784697819896531773723728501168923229592008854475271795448552123173771658194778214918344509292697108638967090287443414841305927096829331318131953041384457334328696691239787970471529255815567447916313995688607318420519306726845092112404609795185377764654016505081266955654277021676826259372582761960847428311617186131347094977915402088465527664869402259254060737679273367547877866567373616395780889218335320566184018157706449625655778846155967833972478297032707682208132058038071064292364166473765646374351300823818436587484793704945562007500102392153625103639441883736306798551353430541172376841956212329571697594103804653641300613244837881114273631373470624217791236141691011683373031341246925935501222322370683277485582500766405369095405647237955498017217428329227351138733164254529323710680002602756848396682586106255181930739560888760184832929413870144195781857651309297775599421138265921515270430556996753930719720912285685880669573865991162676136394663935346483925151189810923824453666279887197761518025683719030709289503670210821275298665860197642510195535214936379159122504377015036919544613790443101853193869700354039822017082208866560564101583278644132218344670302166669517862052118155734420094416721991287506991021654115720610822962822336748308420680621464867857306853781203495288366227050312107423062562837655940585093652367839112416200081404346930636263430238615872925202446408006111957769150816086308860682807801093021672409198485423224550094060134793479236739275650547904804556675509969792892888125833974322603757276435508152629201571483555454334702909818975520882667203936411796519414225715926253741799589282120161932836486090355747706534079621165031776311746308690979419599053672800814271539177084228026041549382859518231556198499390953042449094911352013198284571056744023881630463725645587623690019282044450342974949708655795549109287094303147900799923948402274885720984934885865933528228446027200708108359335612874186216094335849965578296361681733820264699493089361310248690843322734711592772268505328130334658294262795917282146512513917718261146130377751660794596816123240803182815298310565334646259723779761090047185869982263631518397302109416723987706901692788909026622070776797409971448168620651685672821087047809821352501935778861301268924993882629355782004441534508532606537283000792133430506212929191115560485168902181891146055602175614867036112176885526777769346406195999966962279228225723162207016788189489186230778408887946584937577822757462563641948694128059397808915597986971501428650831097159376502600865071765723049806785656659761775930477805606842333688942783116386066387698035996190348461059505301093931872869006100287127487289236363713981173902401575043433401276203734858075065883086161406712423851452867830083414709421761051727836432614284040563436211233632861404443944498464787633809468626025663416298897466794641411444230133102763582043874490422700985618241757897846323641447580233933632891351979563141101161059677855665923670365038779790716645114934389689168761049086582400352665912837425326847125993363907311412660418228682204799528971260329769215328657242974214320824777870301495257225958665140872394821731883188946036039035354665678350263430304025136920282564155805042455198843759476437568012342785804510652981122332851071592225091672884041571991318516716751604486154650929186321774096125211216545804283269878257116098204763110129762592276388133696305447355138884919073620177874277350385833304077527953290359433219693147468245616445180976032753078687333093363939946647766566922028137153919941618680226347605704724385566593528973927641616913932559461632024383502397360754987331528855663093648662543000891217131984511914574851028488594789490462556980038854683138634096846603734087368376519055403359254638353766998064601580357683689553705613499500083698213475058630116306414347199930069800795758049043348794220178690618616044830774397209501345947199126744427258625619537526718977716794183187947398403186443341909034227521533193418676228302669397977922141179378446414840743626245696988300604556850239035655866917343370299602755050586821539696673574939332151421736628932621907937697824708704004264720114952426908616360543283505706452710748212338174224846418789650086534622934131587522759764283352850598005242450501623518743910271672927532641813539986721288162328884802744662776725424873297187124745073114345901235601344826724196660200164390284669263423453910197960673427773667543108196307124797029084631475566141527697008274798330198681699106498986030419390407937425263194974279746965558221837953900130439440180542628408145496495284657348632301999635265514661795006018655412624593687993339867391911354009370462197668073289689042716243336255157038511569776379771487876725252642559094383876569822747523093507657629647964372970468163435491943089809155541457124569870971552724209793236303914394988474080717589247560164935640626844460150047674387804653938609235426341519484074535199550749621413139378478269856473992445678709345887031925628073716348218279086706312601610133109135468327661196419147372890543797952047198945030379610713915621207030859293977135462197769154350779305206668239287230320291722890217405845259901064648257953643024483039880240012885972678883356266428264421344431377209932894781730978969309842217726957637541129205347976716803284395179182726294447004887694753577649780232334688126886722550005245361522176920351690938136330827886876003942051747395630867078817637364295803836569554154611324045247018612273964979147515909715295010164976851824037009660636855253566986874449443010463207905379335539307572284163964041802293071405452145018041028780518319886324314004349456763231076040851358690189217211666306087867951495079319848799285763941009519589912192855745925337680601076868986238457590384314398630685016949489530182157729519361726745241111206773169871821899697467167356322846778603709157219184638544102980202235773171333540740147538534209043677953842670799699460626826108474689106718127952609025484299310915538296276543031486152424024394171739884099996044125524436160394760590099247889736108434569853092632984885149125372325516783418468471123349589813823911815039355182808826527916381692361863664632674384066052214817066899126079841115550930593702899560231571204248631104569900286761975787260703691491438634795513900970211063334134660337997152733313903612550866632640646428477731407252255365034786291475862577595955553911452290441334209468173627371961482136621229087347441909068990759737417019811534212659506467024190927688847067312639279425141722089131922931598308464269583234664228821120341331416130004477299502752141637611250521318868679245892043488313746024810545772370807743169563592509079574353175517454647349373591408119016103007317651814865607660121691576470009794173054643007211565083770901836672176697387418809625243714122914500319506185372200571348414670681481831317832301463728582620529448513365798016971968643542990688975517124344849853835101397965884691361138123109496760623652120270632884476865205171894459301098496037957417210057354993202702279999611435821964995751200756094719128074597550920303988097893312693838132295016080825915877513329363971813241188091433875748427744214022122552140831328555637263334142888192469908880537576583817932304648524159615722127617080190875272472890009913222627728115594234117345196480872851617036878934728961713987491755267065612943386325433154750096440934312461418825242469656163462047807407114028116475726549952217348619247585738778338544670621530444626166084432883209189097103244730474670319142893606002368444655626124391786445155213457935329199612029796776078834980112081236831340904511784398970501482809974404688920869620115125037269415376627358272102469374552621697059433050219924148435308908989409308835247406494681616629869038540198245326105462965354975615798393888559889793418696375115839104830243450438215110194173364409172670135092817563308420218107780321052656010625075104122165529670093736997329616045178558732633604130609475360194282918436529274660387190972953390001458110791308796622592521082117462496239528090732391094606788586337612467242389725956349667669549254681140389511764494792426718132232496066542455912663593908513992371721840255732796378781944355372091796175189866477429696171033975536289190502441012139950946998544428676369726128168373032144338469313082999651782744788930026421950511028275414769547181135946276147091625092458862504611700956040287110028586011515784325886095486560788724090853548802301306800690209632190106917999262779002796351957782745083522538189388999543116468874662088648045608528580694362305712218658324890938800995092622101820925959999240748267225793585421144284639783314635929281530526999771261804061802172801818062634082462479484525449076048974190966026562241860121253595804544524408687374995509880918537920184721348700903459100213391064229782353047234765611790984389985859994684386354745558473108823773070580401650456591405418880287034879006650952890537302883609686861225145707089604703684252196652051810149751028108934929631059678156482191373832952944209025047084793990431011372968387207809182372795027565182561055595744838582493688990813232947352887226321901454201085314851289146471604298296941613947015087142201822879902690281524527141894939448298716687610771829849449773964384947322961337537663229982427949491047148681813823594808862492149069624759044086408592589242918771872691622511968322283199854264599782013410975724854026524359688151544188514691125794557169801939708530521534746047833809989763361718437125884750033884292527921625871933616256600285641875005190451935584195892814149392176745469832970856940138316147510599463527460133085688485866203151020010794573815784398010927792238667730442509889010581483823287009230723117767416788723753133395557162053424072265553589618070756620222255829153970357109826748755631127105885037668493562733010620275113219182771236212582680174842425749446847813239301260514893642868210090661537805729139428001956429322400875333208304737017309461737511046356528794238818166607621817966225841688846508176937188023793028273564152533331996935148622870474696737385322360839344845287376544355057226483657392327368452247379556437480999782239518796461847988440183830513606753591845442273220779191014786638311614239675522944162859013100013490750530844430264037356542769194135489770475158830615022928245608455198634704894696904027403264966410384486317794720337480839029693014274921568641905506988060098556678231011901704197521024291399846102311257403038731357785468203540385250819095208110577264748298262045422578209196462002850642682891394437235544890976636933122712155791134878088673153785975060429288997756068538236138739005707481362482012187390970881933641034273227967960994968042659599394766421969039952187161336782013268685267784987001832998845038242305838305850241093659867073575710408460682957195538133941795388602257272257087937704702772572898475966857640049243666320642883326294437547898510568612903309936473497391946626674633240149558389029683519470158090167192301351821568210675720508188216521351427360518611014421281362730427688695156219793380818224106055777477404887220994698203026586735638847408239452406232620847614333795735611702659034933288624707697929635495983116684473648848201629375778771214827819029259192494534980142612176000315237497471169469867552188431332179030875181540007890815654504978749844053339195659978510536248365959814572727524762026965702978868086365662015326025227661444229690374605726932262895054128349842638401726153447730142773693635600134879242507282227884607597365017675035079885231684209846619276921844423929355871455074833509584560029366148688039943478875064582787308394326779348643840975944414311186382621012665794130856767313449700539215146502044773815172157559233109686535454280518565862387982237678458853909051936085295627321591917914664321907313057457734273037182545265070063808395596690319204579263205106676245418188669219007719339976670550429283546045120221306627842066179702993601254142963034470140304485225012349647551592224111274392104361486331974105229747514640488227412080245597606316972048648868086569939242601540988099517743034801389541197435413081764579470013796587570183370904584495277079581673900353161813976394239645215180771495210504475926599266526717123308113818705991803183040606443129496584616982987671432944031980966836369360715577005642361141053166172541222258499553820843866092268340164762605150530119890230550790711055126092831962833427442452410437248574565611651627879345086806905864159145873945033247578805136079490141530436292861937614974556572230728697596243855204210295086807080242154806785532684640476542448733149074087294497678095559539569105810214930091809946112641244714476215490537320401311105496028215564322031247738597215872504438178602737276038052736395660047383575817639598755443434721895872500645436071588884847152608996841288698227019468224413649211765886514277029804488894641779257163242811932187876531553531757346267767605422650439183042110097761680806440013069276637699046747041612042338884578312407056748552623621333367700375152167348854277736485513443757305362606060786910130721957998686597328033784123085911574202938362575597741566010656055375625983469658862776757110205785751090650523522863249011422338218990752914058227292579645974103508298761784553124451583306556841076183824401116565084127249666471845900261012476277342754496984416968515414569365347745038894018080909437592610559477619599173902150438711755681594825461925112920679523007573199156065944138367576627581428265235891304923273028575316549754981707412052610584344671727559817518869975279325023548675896733592784902592320539108589791322707973444091193305222108753779379573261334479156411187893924035582612047603996342345097993456708275396545997278411925026004848897029195333007350960161557516655479301276113006153063158891662806980465371224835445178160786501330955878746283624722871613794077865924591776806077573168826236622410165055285696077074320631090276357426653302368527864900611545674634227258756335202636979904251640289164716995385899307726703583088044932575416911348501965210964005980129353720854004249059286390570100415053332809614913795679191696572793893854553712143981590610108442523835637036300006654737972427878551217867623021475526117442397121727362139259568750782296971693143051103623178968091610010325868559131468930113862991164642063059343257835855834002692752105650577058472275078094831339874637923538930184133751646818683950883718667641653954818528451335195723774038343604788636336645976269441894134097919515640278685919219746058144433559144863317579454707286118620650098601456202742406530296295070278934262936481047993834975124609323833933801805052385285499006786549372637452062728794754736142413550522128208228031928892616537651303342096145839082022913529683603243164168215985265100490636560227144287936650521032327743235140504159437412683439052506562905111083584421336099670229995248053283199346284874937896237380539683892326322449445920755267541184479546029329739488409222044504538080191528513540847472755479333629323340089021090971588062871644491347822335428677071618384738573906184149169717735444353920704634049257928034260128169713779008978032567261283822261921029934899073810300198826896934355994352784224700863541041255298761286527798532313454477472942431218412254830788578993831842937549255375262501448336172115295750475414519321317984366682848810859780236042073435836693168321272534237049278324650685471561220205378410852945967463353281755822633621469854476905272460604736073293126996098472555588939716515007957631787405697083702514305737227412556373103338234480742508305711324085809967820806513381544107884131355780105789801728507549323988731114500915172009081836565607036595701667330018665674215449464710296781636100711235108713287341270882068345454315298073154917948269777612940470601689144190048822175954151510817659455494922947230549240321370707360303719342102459298407157375419833929683806838356268620560364172667400148791905344480348259687539746222753018129923941874346532306985469731702630512626623305354747485963813092239192083755304335197937780978373037510921375335866748475665068150539709947236693347172545179739547487441188384825060706357551446773810642978025283372127218262236313722050061949313045061420007346591759663419492717375995787087290324223095993533051920242258087063547776532156397795514866476578277032713936673298066248903597026270568200085161894332587369806750602769624856136427878978729350363261670607571381555850803723878346403959115523095553557217859263438475476668805337849033583655052162185335019457296718847957099662735244281024237696772498815291546618707209573023324132165234981778000125222519904705417265361511117747462610236913201802002395025739514593953889700546562896531965259098078712130843587020615024677183387449379160002006315235697339326312519251759340533426634077271319872517608216305507118335061628659867956093452427537433955269442062272414497922383242102802884469079180714038884407033885397433206811725520393229154599374520482060617232504733909557371440629572527882324486424795643908064699723993423514163646425381959992234262990751552795896640163648081939911518406321610883411823112421160376832254871252448964539789582399401833517396722877577775360444488679099270707758066171323956241301503303916621931877046815847910314035619309371185958366670228958361025885467327141239403341432668148965550350178247769025651675104198778895734942569583295100895717317888975257810026233673775396319538425840192505900279205430953192095078662678768153277647094012749932185950761156066687673195299594248825926093245901683315893917445731917109834065684124686681075916874412788787996563389162673115076940441988586829659531812044870120260876871337896312003314158791820102688793118462822594246092836527759250519726024798660668462402455341405747824320699046502526939286667119961766105206122427544547928019566150313026847134836746177732672138650546975335976103603337231481788573562322213051489236130130367995147578094625647236736718490406784856023954910939778640385799898930070087603455866683682982009355118806907435887060323620444189902762022809924442877286898406894950630987469829799426957850578022407516004349085471023854085637325039360866251745367764001315571557005674236138215544533679447999309164251935496997026178902666202498192287024701971798023770001702906301365372045810929732814611994730580637179814844944884137640960685681053706654657486486627283563413245381677063356312912410372243813438758071182580234009918232785990494348747361651463535343073973891606922006353633365457734408458176069582850284605131390069702478770458353629714615387659356880090669529368919105719873009554885329033223158415606177397566639194055829396124459255067643800904802725356230577209453070942851396192206725995615049252252512677462074233344903231490710294070060624276674855673603139598218503469833061180429136184094931346967171389733521028915093821614111026293565270473688488890626766167076050731821230083654526495826320653017440133249787303440913655855513603018332902302133193324916343674069050871359113720978299849930354595012518560469832660155685655290263511697202815168458889077848603564353684646506544409142491133884525584036838456431031589981505451898183783882601996551602229346587955611165904519493665414086928160097590987550284179680980143723947519494998373652460013199250257492178318954282520933563138263458997205765613274826008930244141058186421423391001750974222657519972131127154618004911780030697072701415043709838800239713892568874955943413980704311531106011213136068857155833601228608193792137453077151779008628418660146560657510299727586450561653912875252739771757818266699037214107550868400958714908886376184897128277716204003037890620277879101423333345071957783608025129057157198334457752911734593942926197674695132028261318751407859074937087314225141859156937290172467885702944578194256802742260507279812775109657350383822668580733552098926615229679935617702935466644275585700154248243475936297324850606417282042694678281550243782529152061803042272337599456110835703234504684836542558679811293268518697311614291357054485247908330153985669341562716505472123931368979308049234818896790312621715260806702813067373884364050667362983994213297980100769114917915962847475638467691830651978125034132304160627047702333425725135326434575632712525542102676440980933160890913972441863634503222777664467733499071363766867549714259695062461763235100717584349362618789218111336995017767090129331472856342924398861515362251077003428614209654029506130503264606807042430629400400445459123614796640075058569442094265756202883235735781212415869779579015921689964143675014436285816787979340358668761205500636812581480155735166765581817365227627869369545087834327694303153669405660300620500834486561245626834636853255679263471511720665377688771839397242144539159797329068988643806813306369108650636054331455089101359683167068448619845782537886350683534495509062068945888725708182894175458842427432678930301210597514325403884945227834970207478941123940735445944809724022060988908208973638441002866131084076453353810723796379959178033622044970529869614785840487102930699868502690177982910228206123939564739135867229747944523182378789984614337321904997142245755506215830680056237813460869315288614210383257830529827286488083710315526726119951193377063472588830816193011539732745117392871608039074119956378684076330920931768802197935381931295814856080007183248593789233645028318859629116133841536240106895420267773655094370409191524683490903759145055765815710789607630010880661949643804208307106058659345748919661238889794764044144568087558371095158156022975887074555318306084865016403317351774729691348539055153092616619981137587132040481736572330861205849340987799450409287400060712966313956301025592295729331651176832935593374282733138218437262144613711141201988673195663690257602449047120112357796111083862584059523878493089708251125109483469574915702399503292708422039139782482767131712521456044864588851843259189795552034747670209585162735120904428807655507220096502780650366787598075389457118784891607269313843592310867102731697202807784375351812658996146092548426854416597141068133266997807781944234472711702827855524645913531529804522261348929054296979090778608453113885685170888220640072119107231220887058562010681614695750348970346611225563972256197560275095375307306790283660572471175701507372836431273311610472462402404837766765147332468037657735373176853389637179741713053943591585275352115988580667965515594939242947793626683682683180349015484955054623843758874249680212587247435926353236603380949391582631382349311882731931847949830288342143138579430163910649052732093760773327880008945715500114370177323942318499857709139610835732715171836675903692044485051742544543788390091247835018002678823868447270389167504581840139270822898636944588746486387004639658659663506834993635237452746732561182382664146211794476696352624291426015264087133021256371075853297185394515725772690434485700225388489889246468914409108247172598268257725569141258168359442672664259621620457432061935207142707049544138796969806425316935419680477777075928565479161294890227866634844991719183425844927505206052955975919670615530298511314608717904773701746846257387782888054835833413961288232703914204961348999002402351235887550984710267485447032055801356958562850979159884465447179406456258944830744573978051388961637039530893359517449637075852799694533483508394178077414255681797783474819224036795768107682453918672399745469409737068643918283370580574374641521932195339724880851548208346893878312312920759113151505065049860670914946872112551706141179525991837742408541448980883317479522546050163024788613822577347735529215588534783574625771239029448183295732971323237601904120545571543276154382985531424802014803843339837823026854002265548113268528487431082901673830228392353376152485310939339000872910024144668223926106754219162858751894885575028250316284660246028941533209005586226227360269485660735504635053230263581310915578464564942504738056124197572565661404798713658603937327751531986120192297021077977399154782817233281967376373491835973692425353247245587295618628488933082602005490657797110842696923428777738698110458204781493674069994774636558368014293595250625202358320730495247713665024470544098689958209298365950228445194328199507073795152905397166517266590551136796358375476725304338283200872327905074408191409633184339139029933943982398767220823938529859391941740102088157914715887095270145799696223631911301300051706367811370098875866891654232402386702825752318287801729692963155004408581994453867200775693450623122240103544689039554004433114005764190940876204060477318559248348778766937995636321271428497664973006489551023192965695008407339861425253655527101485486277026876125587148632855962664346691126930675914376272333416262740391315834368917236523540017736472837651732366230441610356456397849071973440115602959341988699564937172793269776393886744807191232814301988223896971577396892100924252692783370366621791652361789203220072586368328056395365817401359586947918376584698150067633174298085804684480535207616697737969240437033903453800358697671145631640333560929593420804680001992948157776378562072650348396719949366563834601433067699594357053260576528922888284187125380363958372414122961871712009644362792774309791976617191350034944556728297244660563422391917086366859959888992694546486473378152426164484790691656187831638372764075492816007582725926150544496973588060666130961937366835755164783243494146448473369486069944721887196684714013700716536170352037395723790265943088592088061578974424156328355661368381810745598910008143665909826898083540181351839193477547596206930464631053323634451672289949877152060598814292616708935192408632286996842313275055065253619686916437235663600034985885311680588991286457570037048252474830326108307388227091564733892956771769216732684812002763432321561716429421455794776739104672471532116448151144541275628514778637436727053503136267028979177965132655671791704866092319524563714833008366233760141818630525599872117406849456707298717892727595206963963313418597353071353863034747103703088470827154121152064140368732506914155621201434558197156588594265412937857321378660775181017027646128362983999448930375911811385982386407420593909879284089812848977397722305317653383029162464407077120251537574435744064076522352910315482331289643977870625340465074073487589566176123811250299466200066785716581175408949053781857257188569800536564089606642665738767256480014740274642522025915282635924097371988336646061127175933240314591668118542796420988264266156953293927413917240144348334749531749757568921730218822699143518059270659860052968853961649796605227980962869779075137635986133010432282093067475618920558306568131504683249858017572638424164315336218623919012922265918128147014629605219997248123661230022460351514580507405302232971663620586203820801018807525069070038843235359645535088669408425212604540443767398060560706147951462160682542544272946887158008037433284836625345765773754993285257919063695191066258925700328674300926480298464322239785659647688124899882808184438356300561467214873897686319465070606512352338174398064466998431490083958678678912440997378946019700379784242323531477434005158786800565877535057060200711636643333168094813571356399068936367449203847308620700692533920728369392405571939677365758528579167464288722001443786625532538519426555710445508803951000212980640450655269476296835849421341781522949471501804954594600215892118104510877828349800114576759573629639625555196764519355388123120058238451877600877721984057583518207730381396759414840599526939600186998761523352642014014989837890330982153308547119564171853167833570009563785869632947788638817931896147354368941285137560854282496792604422749611123030259501883473376777370225660964453088921557637754662368753071231365453753492353883434656826273342110868174966307753176679149190580220131665241042251360976310793818651746108010774421829025944941880744027491337934104639901816242381354759588472620494386488848690572500318271333550389598508331445479718694133332188741862307369320505725394262106840933872284033972538660141981941237361257355728369388254315899279260642115411676258713768291347990287823752163551776240927256841354228877181227594798490942547892294758966626784882557714302171853789965588517560797438071648765383124438273161780665498427865717486192458755420518414497505895527458819610072192490926227600011246091334805749367470541932986507377918893874422546438288050795803601505339045662524285006187863217979645171772822471412031754198565168168286466180708373699253362232331346682154740595584926036815072047287670027643619780731071648227861798242133585627243917909285124476351830427881962124819084859172700103271127736704303657684247577137373839264144578718714417761648522979249071551379670974738044271849449386250648927547723868727305412536591640493339950428685601312960900209534706128309288614925642240851046913791045630778165533391254460309139326293377616801661569665659566507492231059776265624102951612189268870623685375778210135306942216780332725021231892390465626398290912996892296678931994558798234460004494138655006099399258867396810427123427359579037221298791710666808392322239599940880760787801257818888655787262328082551171482212177234665241294786242269571280755365913140157911131075706311527531114619407447473813972049301313995155538898915415449222031784658568515417684859806416614063485471728843055114018529025283336128447158923191839247851937181112326501265832465303201864404711115876325329945984055761478353801891780837622688145529864579929122546559967208121286578514466355293973239938525157475972662284712480617306367100516662504629551460867134369459464520980360872950934936020328341357791511683760746685163582757308604539085638265956143353974004785358177478848397237847916128644446445541760464175284019829673668974750093003547512296972109628554445910258992685092527522251978264514762346321792413753065929238042082760975890750047373766210135899935502862682032682768476106326957645419509289376260998808610669266010588981038241949054955833319052267206902141272619787354593413032082271846351241670259025594215223708098427814889419462623325005603929646589180920301989103156802944759160149760711343279085123833070760142702061096074243912623738322500706784580755983958413174962054772926325522019526452817119800238593175038238593490769635066575967700928311419476982041564652541479532773791404865229101967908760975652240621009960337989600482835071713826046845804546906168450355748543222652350898864432856987965233874636182961004230692089454419266484951991239485613067967688670134126590248065955147145053746202801046466043125235987484505725075497210730017970968072167901782391900498826826535290572800044454069046874659985470502886107511197215750319536166019347292371430186106400364847979888640503637084189924791515337139703751555474808842339439428269332463538757946062495724987157057194695903093953681503002992993226380066966463700485498635044843064058497888640724241070836438833379233453831001755168555849291688305395202534119393187847471694116983216817931221235689325563226195957818712197725987685674229919179856706489693790818144232093808450983220673809302893298520393931708848154058005888386570466782466348884962989882198730984897920615133254792987060508905497561940476631581263719714046031116404487586102187355355592300037043347499625892909105928985563745903434730558177274879177598261726826575317459774076899569662118062492796830047600700827840613099478160861047575981350222062238314478613505158259056198869806198628530661778606685468970326856714650606687877791636251689453617247048180939137753432395601242411503332211236583552393050354855932213964961162034634879624189507513796222946746535788627716315305496439981766194044558785892054521153755475629482572954153328572336210438856572339213061137892002374051547926164358532860412193751844799836687796503086304807086161913570766916526447681316060258482444901382588973056497706323220001671643472963604954707542288042649333878048758912548360320029718222526812451228932443843748851732527200259926114804871765369999060319905064383286996292844411931536151382242949963874509162586940271717233785691528657498925831936247400154679632484597680383915502910630053450191023875981222931996830690296502585531806432093724550318210153474241534693837972244893790585150690944932481722010392002077787706542086842204493537640090003425020384954219627654440600306053397317215861603094271512280350449177292564219710275679272998315328799099813029408539347840932360191217437031618785342129080333321163799140235101063756538057188823084696497839435062069059926353904314761347725302070471482488474542101029326558047198232051774285510036488329228776596702725740097833903743203341911194654580971509159460822370446128748524628953253697715342050229088509756877891719943718103786911370623960499497021009237976708783125676558680249033625124933855177850117416464360910451937686047859230143390475344672790191798482457978979375773087527283218353532964000144805255470844820951246732508986068560775107166602640161107599456768391332672879934007224478704468593337919274690540393413945665369030133163612817588834815036621861445524178507739729026150296527489586093061351120290232796691474569760836108668288612625827729810440897631423297918734128397527268864638015488644331077213309356009224604159750047319432597235776537170021452103690099157584621077215770747719497750216872928072288409485625263064547507608501705008074424343277005569952377378038000765134501286241794752979050472798245219953881240443309442113137799190540722924389875922819901324947960045988365580858122696900624350137296050132581610311059649409895481332928525306701690468067330438926494190695448197037646641387685173886101569117773017852510851827376009020498507692835613888805740013852521393938195835827179751731202722109144705986031724935198477242789689537484088331930543198792476065598273769534854382502260396601755032691863259849130730101879519372749947444598427539679569262315629116706253166656107606278219735940189436858283604765144193263143868260357376325471340576860432129245457152118638820437343001157323541611939059643193926165970345357177472107570576335285305429874196859249475269286071461582594870201396697110108922208352135151775413722845241994063495826282092783733752233951415113501869719821027996638120708455297881233314014140146592959312847113355598798097275832574852129773272590267641792666207171385085766928828354133289672429012028149325266566775286127610717977814380073564081800299604304611984476110079204029077751454921264214273421689043064082149052632296307067783454527755847178995506796031419741586249494493503466329262001052076578711430501182065313349635192206257994884379021613360184232081136245791175869726692834857352686717463488416009858262013921284129712942086905410373753489662206638189662141725587575548058984154764974211525442378835474968096424610616024750337669432560554732262099486847102284896351630737667281797897174175234247042480456495075235920356392199178161846909254530673481228306311025467595243708812048943570958240963725506918626514095157630915058855984571790922460694689530770475563346582125417781975757526188304216618065309823129289452226921020028248513490609848998083130901147308637078225059681406515768759165881523009108075804671053352239887285317953234168053957031534161903356927075318575244150118104469058718832286897713232182426986045242565560830267240506805758318352854921781612391100268650543377587422526065654135240609146973451193953936710202573695748102881308674984193870867308358693325872336428663347257308240562446289890339361393589897703237897144881608235222249171092632255632689162461477147876703868362163138455258199538068120415195563494892798352522588407047346342590140473173963791068445746558660912342732812220519448888076679117507537172544292529873294353585124375786432345684768863933421159891441556165810208469932447696198973266186404393803334484388033694420746357417021028640917294260172927019904012198271187149254439830898783458406052185214889177782513735523861065021521479662038124488306303464125593179192348075349042761029260231468274907709703661268318195891153988157876945733761251991613644412995788282235994164228297850782780737255201565026039229896835591837812683504310189479062470050980792535728592117765139246832228379262360136697236830607668144066795686771742224554917275019601562091315081983759808605225283525114592791073737310873879383904786952912413663579900994253185441289100697259877561074737205652249090619645594138815135572606718389799938366904020640843360321635252473126183667296727231110873934804553433856380537460320204380978695291008231793248201494185769160431423641302959139627540093563200749009625815555838727022150994876803784028822338031604148624492318156105110861427180352329466211438630605282446465079488020026546088701285808408623086133957613939209642452225641067037167739361103743060318431216578751765161468594228184837654679253675992181968795191826787459337575485266032977862674411767230218953531705970401180915802202638919158439087410911019922849018761420236602563389189356724393293123477858042180441626551242296845718589591883881373396029585981017470189637624686454203999512153202867894064284504249873710854023762509493837031362599662991259620221210010900578259906315571506663101159714465548230213865749984269487203188414455789909938267570206271366024093001769526050285727707171057132524829228059774845069664893731268589558030264728830717298267379110121405549771446811111220403835583466733960308597066521646406304574588199002732960896050374187901441430801913612876497561136538106490092510941757037680893927269549617252927514002156270696736738230633442896174829088477809173763183401081046424353488207148009690310806866056343931940550119803605859039007545941020845525683999604973529940250121661506335941341248486254150764958714182514422402654350164993892605871299976320483380004583375937379336843774859259277350523650439685287029134778863146438605185469103316773373306196084205509954497282187774261933503279056155619609800782868446499814824262952030355513398188235502254645149429241738672172532789815236331498990545973673293637569747397662438548009746357009623680147186368554402133747924069361658448811158137571290821358176346063119282615687610464020044041814572200466329928756438021678333363061293492758087290250822416295958834466702188302511538279152616998389671098767052569557022359257068092075152504764346536727810277772605029992436796844953204744485994284493936473260350500473310915172704552346221385098116016069750493739421698495386755635822844132221411537684446611060339109645732803109280715311835931449735815122285667990814653102784757790764856174526878693020172328446536105572674965335862158228698020470645624564048263257078682944468195510430397532101262576998757665499118800028705950626374376569433415354892245900855632844709548938507301400875953262760648913992321807370566351752649631398109521367293850887803868437063896805273555466556785019178541971521932949246555778776175047893758517012146761843885323518713304849893577822157584578311945038401024908849244172410165786817604907600696183963425578306702679639153413169495744059955963573904130741651087790604117969729718793124478769442189585304060184392235782922117895450840800364884961654037967082351973143320548370378750794090047490447637837272779867313247130167830741463332184391147174322049597465959963339699538967400978066639958140362208973163673099085229178894619519989447114173066808009902002396135017000104202755622231723280050690086069647819569967152757155451350303604668449497579662927045414812667584231230044996074851955124374777726611528075730037814022581165790448462854982993591797186136814717942889437512899961834865306216901719458845691572707667354099412545530483117837874453681795455269671694235167794551451733293344818966325414773984616569923900494584534085979190989503237337040010135986732333737998533100416704982585558598270329291309495656105714767641667132543473548234731278861790903903609410000527131895403120162547984809753613867855707125664058460442729923471284817889537668035558369582931047012704190592177801211184380666669812112569478635120909668837810852840544948085176245552212153711601087644245378111886483019845241116708943068627209138143572629559806793569606828228878383914554204303264589899708779877259694634537997698679768498689748715621237304675864293241891311732524522780885529892370880081196120966133878319803011474752515912438848663445604023195687410670867544985497237998766037376121323698734544199969642980485537139605163390520380835187458403696419590737721759351249772278147143861518435003442204200238967003876059536704690879047492666829692464523199764647302971931033137849045311154560932355782055189993024903042930077159055941548793345090925924367461819068032403318002216892107618572355692193151609113349817959693802299193400562709701539891588783123853650163650259535323850404079234582269291349279319338752399726878607085218098019242755209090371499623374673813028944412749662397918820616846547417334334043046824225245592724215085317872122333791950357045666688492463211096413764281247344828943631907374115145791838196746466124140266393798731673344380267104242150632818876636398383388899657712669840534496585380423767838149425031566700634335351066993884854023501049668934676711789129708492953726926221734531069589463746180016243426062323156455815248317127052155535145137755424824475360247737486396132341609177621874938207160467941152688045018835428239314562040844296728558170192887727278333610918331305452805477929523469215898492589251337639635296095580306936022272864096123494446347011230950011869935939086151104705101714853141437499705453464579069955602678259989267439862648816585089505407282969907216882812790977258098523467062866036835467097581685565704622329872372119221231148893907164567290408228449849457868545446274906913654330014194528824273399644290009444455008794883710381551054424315811775449040253913195749991138575690376244536408528458734049113977096080145257559253507161484577256194038932749833772188981998116627435164880258456233505927920991466578882588830574951632876799883296020408744783034039388139744622172104754260257392448892658484988110255666217136744052179826878697037809915611677423967379237422951435157497002904003169954981252776306897393043701543196746279321073364257639722391160140366257693602515839630033952339366273939891411925565771980920654148858875040885489824261956972448683694330712812801999065174142441520702060100065192153615976484461979107277273181795413607444417082252466495375372324984690265749173858264857183718343705520132127420558076438168392481465451808453392925895875350506878549020467078285929586380105512274264626683019376643171475838844489402395817248879204476757669113496795387648768402724888221610442691377425521537647660733093439582548195770995938852674115730592203883808219512843410083039330355643892380695731092296688901025883544859896023508677938002287926032911664668551188330984988912060814861832617675200960676990257503933890630711901807993280270257105572336047838693693994210553993303388695338627508880745159203770380863774011911509689166518611263147900129358050712590146559517232854605719267170735323325878964740041151035466648392556686599966141508893189724758136349406867020414065951593046470343582629366117514478429072202926675980765848052338247935614665842482418860065254088943356511300314245878914999664280883582433746999206183521391483891922976934885868172114551322353874981172675239087700980174190803428744535371658115041174617674547668972245123149576441513388395376216945364293467332755184920983652872836914428288495943955407310653564048337611735820975845420004079026577565173673356965353263014045904726920202639533957926724795573396848353314937510305062745328768291368631841388084511908874371345804567082246539625917208030810510157171327558717898751396662196922879155060871420832439770870045328259962439899354598198197578502361936657827520101557539105057035960708780994716821813113958599833744968458387728892441790776701856747481390598844826041623856322517463302741824001437002431363303880228792970230834763617681705582931320366646605196824940340936928310322070072712436107612304239220994688526861022349266372681972912670042784381081952669386136639022321199466002936794187858800479546707579568640477630601382312758485613578241933237993405304634275853920878352223228907366941199959746877949417800945547550277252747992104687996481753677780647267480880971299252805383782844619428067553672318108634609236762538729531747099580422645409448119150016660658175870626526808583468712837961337999168053143439041348470129165606668605775245496331980283170203161970866841206880449242902824588272306219637076363835271001200647389050907267125581677253722230447391644601837937395426862265890934221566326995578374919717870347198655460204950896197527825371473620157460656134686863418664733470775212036375466901787036696062166329575449848688318357893311673995119770561072166863211256781633792760308362659633756516737870289158987638591538657274077559151243320225172422059324774219956478717987909420910332563339646845445938620449263924765632195282652035541474343416867771945156977673301615429094187366711042191168098641923002898600807116985614732543552621777148060246842208591059475097452474576874483704534061300602676407510406191185002005062507916590645325529634893061422441060433440542328573984017119754036106696133979104626082902936185504928417290707790941420773130996673790331780733603391384384739931817373963254803205062299930290936683424039670042999041386170693978799913510074501576157254950959794223480329235415267272876038539767652759868955155831059851518650847256720879149233544296177867040948572233067315883689660653360578214684031815880326834295279356954620607973198135553964072307445757155100897884034695246091889258494834867288255799922131284178253148108225499044034249793332254429569554993141812349146978433125073961439964157299906994049440797533193034231479168190280249724377410629238094686006666272635895947984095803157282575282309674114823390608359427065012927557763818372800519042129517895554814047815566429249830858601119779445314259073761813251718127220463110744416423035055647356494506051766469009284040571470452622705978005794262614077818838969790884392332677920866293561970296121872328295174188590240662593805438332726119818590597769598584312567481703198522790202667223190542916695683793774388252730889552084543618175943055602776632381405416770114046039188049840924712055254189877249839623267904034009501003063423768434581392709685734495295376702552446500909958892067187604227375960086934148537432918956660643603594371446532549134618476521610841644214716547907640655153845218023081519017594540088384876568868159670166383151508513607947427337337470335374272224171142483868951402535452207841467593191770524105083068837310960101242961001505343182982777908881569232774072980500020301817455843932253401529829872108958448841205778409243015411522199834743425180227323353272779097102871893254680096802222305399545447947196763926449843378841045416855000838247287197164247463910584711805076339302818861776248204519821236546365569959214635610473558751457690668680689363479089813467462706453481735986267327943255390714390237884235901745923387267591816874179330172987853102777976953641076906833481349226505915559697228826725065601043825285635660499181810306593655119787669075278501882756856299779350306358828875898812261127064693641414058192055390352982425896992225738129693695369903861784751525422943267040035454244927306821324087621690354227120018797410283902530032627626353711299923697312748165198148338013164663371883469030293889583784007621408082437552864492743924702254768757434435107421792567534741462868243527116485352719445836501194561848903779392441914470803255913242057071727960722595812290346970358271475596362710141015391086709180188837903154138545958456763773876262066107594134389545283462055177187093544153752937608174233803553372985504657263090207698337691783046978909384352025792466487860591464428337071419322038464078951891733147635916237854357507852698823899252437782568093740132783030183460252271443856539199189030867302287371894036397525083786301197043464474420367257852628255148071714090963523020767860845067209667296975220126866409771133832542509546992704759815398717328078334197891481337785372074116283975639863127151040840970567148801173422717692091951029500734884675788842258970144283541231180152131283653910962741712200572563783156922010813187961932194715188616263762884151491000653889025268302040838938303535911866386053955453652498797689835167520654588675212073124458907637541755514515127508869424324606042108022848938357354385963976639885322816441162604833589681315005251007374266141667277917753714704258356798779042068402308588032792090229165091146245212392158098906386858585987199434172323269840506143835254604315172266329964558757199126885537889524890559856462781842236231606560329296053751688361100176498431362676421515864609469997805373761228202833525276776572932723581151048402405300587306025485093363101662503136240549800754207345097223326926471683309101649760360453970492613949341216263061082335276399823899911150455418012786542219848750243686592575290033568384457913633326682918389110021272642564522688429591732086538352167675432178607908008664344181688145001279316599536139400568026812287200474128998087095042287447459264388279016580978131314705560241049231609337367104459611512453658854202806458012912072813240311156964491887727738561035413370361878394369938543473357963883081552084071522274435879446225909428067995756107507703272599137614430706543613411714707841490269470818487626888489016339031132791949836161086082052711225951567899565430612177066292577540119242158735416569365772024107609079144875085201365077203674418529676331557513445712888596106059781613696735481210348281246039944687007382336463073223683839722133976574629283280338474001514741919476412258124995040739747558329493204854758092664169360265102879103871081967145698537821724558746638320627872291999998948352260511404841694796359728179396981682781574211838115610979534078516970283572437746349589917039272233598858988942850116388291481843152262145450800850017612994520459371135038097290088407985740871830513378934944048388352894261875292382487632320113561455389623243048578425843908671212351436297819816745392204448766038950937482504007066692680375623390335394626470573851925521991511538373538446256301488044167492926401184629137439940310593294688659479558084986052994866124966310109241568288417827413962709377312702329941543319343280488436042895558201495344424433917501391577298378942536855627208514958667750637131312190947762519612120108760599414544771047855328977675051515177461507601969950353428696914095749345627790191460461846936936783517942969419868248146590217884698374979547388398154820689470205194125783111308125831833767821328805027689082446694513246281486993576989052264391162442500923471198644416409268511127567017716938991068907797661596930155949439402033329981588772144900927506998121936685214040120903376525387551314045222120760731658041369935039358189805083505615530310374232724805547116594022676822317050731194831600059902109722897981987983728789825694172702600204782344770463863423411262119113907460291312642226182840432483605080062178792803701511780040134044744722513117209609182065096379846571808509917205442857311145877215401309275791535957170956704657472685015881103799941986890288759872519660118886661270930985403607528368980221160836920089337405578517869896467938358505842755098010375111467464507749189045978367255442550456990647365701414889998895687576288218611638800264232409598361923394054721181386226267131959148487649383484240452091892309656789172436670468382731911128695425420697470973816922264488808703435748942459500394539836703758056329729097715684283950390249924547249168570473590835684679444158247501624381722893189710138895672482446138400518223083799706463366747430626024944005416997978264637480244015791066147081769577696372449627682364399560583515182716188928482410738335203594256849731952429579229566553083609910950924020147347917885524404342053522920033424503095570464182272705744531445996905077442542924397063986386644316104644199144044243338887884035880901974471526434845728719757697347308609650233490659465158333941821495656324914956650848656209949200108164856985129379931404770232031089469593663880338269616547427412751703502077644129905872471776591013394123196581439130159790061258101858333237215507640895825643791334635403313302251430469562197641528185998859795357826863881229119107680548379879147234233042704822321595061385743015557795795632624674759530278486565095611793509228170957648012769919143477236087444212253875391960016510194721218382772558299705460141153451736181204109715453248784928184066767599216026731207546074041822890591382306454652098470200730472355188829312626478328440056151315463718713877995257343195577263908698205120738909862454340356546356490110238242918573683455803268064148339794438139620877946234259059827249053995917221211183242753492364776001321949322110362626587888253294857391850968894280918449091429556835970551393699325075173491375191634559328026476121919464292198832970458212402085081557597280004943386164047384344130100651168297283937662521618096959061982956026989389948277123411456370524849282007407666212356472228209591485793520887225467902177843407965430779503622943865457791736176723967517982623250549536590318034479044782004391362994114856887820684738162935645043388264333172684787154604713870774660777728145589599666954954116704359950274415215146026649896536903643728821881852457097459373918703196751752697831304576954754058241447354756155962960574374180944235182446143944865728630464432475627867115895513519135643945845354845681843171034699759527165464812815435840139114315326821292778155036598027943122598278225882655149733913697431451702331780698730320336008879444083508384665163842603483655623132759373557013120776788773391462766167661571798236640172068156697460430144324510436223037500233969172390512042544139014501405309349922712006049116776786198684520953426744879001728519821644996005568584480824256190806488148709648519679070608753255237525502763860281272118634937136798370036520347804964205369314969995284145851276728210497991850968052819142012142192951967310590566628753479532260732131533125410915225046894155342668908390519430366951308734304444421504647966707268189367944834505498742016871806426825750128384805176655005864977862113735554193279694883064417858737752268689406107656852498818700473582003157201160107198546884658411167531480707382398582801752094579665665525869716975606812604370891927175176817410273043913130538638574083504730722191833738546713630165424203091493272342808908136096914087048467836322313453497456583799739266210798497062044888239948170703693964965220967906257088236085810424994041645825544556879123583417574310078521197586573198290171000211623627635525270016137807024072756164329812339350047006494238330725869351429087569258286404300178397344342167293956360005037294062718453357089299358207744324368842638977045938331824253167443318714192312208100952885907155633880969373468453737863308547984065328757369142655410643225812985157517387779376777348643566306322007437518092680391777109608320500691697886091499160316286504505205948179630021610311002906397795434070484687525462146946939861723043986282873264706664242400259930551729186606463522675179433169975088988690456108779699722712262969448091332538505370324063330929061638246531342852199810208028693627386527862616785003456993004042230517226841604330191754810979869876571756124922544326001091757303181749278420372025593275331408043898983200321652480074065992066893039314700525934452706398330488516987836019823072725029754629324508863953075632154315106016540590069677772429034928254727225831274010445233906688581420553460071635814414737647935033087731731212869760266293901958527098265981502024396945625336021919290726583617071388431409011480127840220692442311416667956941842533099936223443216189396911586289851370246473365062767935042740633496142574148240529105280305993748395131059172347166293418884689932685527903348766119774441887336184145037191806729406575192807062217794738974755187674114031689271852165348504538883610867676765041617648596931095989042669563745897576048920870791446402053041381377517676174609848652660746156673594644198329690280355145325710670888247999127209516925146309862905453914167673647423631841826306705415128805271622577232261739491112451330388927444208365416111132524957571316112794597936967541633897196307466904967239075702066844168643801804626062724639539640665570883590911493710295332506243109375689148757080743957949523370378003282131548431572927126584381259671001759149321637852106018575211635232752509774962061608479126804497618408102668650406920268709280274917502451846425407771546635972782176012270894802974726282346866725332373833179370074835397324086525634751258359634219262531010581444246728913264862859530870538676937073051872347020519793719766959429353770953260202807718305054376928244808474272049618367299726026969325280586106807466124712183254564509862297443135834127170481861407489473884369781427575560264042014261214934709558615763142293034147561936398218779491035784984395831470686890053005507682982183430597989668538224564341468746069306503764466598059499226019852945008634735402676891528093476095307050227200729082952077034785248510796996662428669962068765014351185175801096388598989161839718510568475109473499319196214319449132214318692719848817425717977229114551676832324431829925284956842106704912521966809684627295941204108696058354467188169058138822302838003725787888294242755412271326069505786320990101085068154080132018545392079688807352016457409021456977412259911836778914995359954240513137659099280310105973140115821322524836499381412180335758582146807401837795122542022411317287820071205689650775937277444365752877633373041183023038646457432654076318300435724026435135204176142564577563320332087798031892001590824703824566738850086151244562895404568880721186728154280438933477009655553119793797032781069082554776128307569423855477906315503989607656001036156908426470059291574150744494215119382904551986892685139638623141447656679790018727607618318231581075463229107564218558791088892867475935522122450247204291919635210763058924923151692970628822178686104129728272173205982132556535054283171731053529154444558329696496055865938399080060576122602529504653667481064782245536640559017955418523068681748864259127484451841983427289987475526614260314557449861848371681674299985578494259039302910307538200293125417367809209783035119022983107030581877054456713318781596551312192187392444781436369218858519068880169098960135802520851078059791447494612290898707605748216124389029183156205107912924126098837085637643186601378058534015078818378003331185679405555008161894354549856356285529396886399194124347680241881728033998602159862649205166607846258671704096467672291229715082144506878127043636328065337404689874174894441785584961482736683603821521364841289194161119862291387660569234184778723218520574470311662861766351531133464805836526246526660387127214334940479881190958385994315621229413209330119167637519694900487112641947235225093181466888928191264215471081809835184124842670903844468720131950566504818365668592008307114141609710032175080814480947655037702015710041058955817494025770349564563215925425948342633161143978141623895366432477498855550145425173267205758877282827422523011790982067294862236551745657906218794752759445340984125073756415078866986392785634388412471009700981289314599988359856135824159614123927094641011142957310660011950781298164304643579895747544888577090355204820951765407186250541902677786288419767345216079312958547065894098961535491457803440213230632108082707859202376507625515401759088300089226094296497204674337379685777570459960895631891591208202207007399936650747106475988234912502747992087667188689215884531316464254528099139306260581927825282454543659825385505949188351039944778175451831613177097641861488859224767759396020700474721856157845250060709010308220296125941886890178977697754214865462336169472891031707304589164152751537936779096578237592876650704655516770910440412915437490042300984375923071214736458031858683960784930362019991732814525642484040714922881604151230837899340960714561915370905761224207346429184250491476659308066221680187118683125291242474362340012776795249401856020082055506391166527592842034840301972310472410453175624832462283787805780507930190112362625465750251453938210909304204261259289839455875446681681062306580434856228460813095897581449216483127037796778882186274718004172721000971301420293402645934929870858275943483842244718053456166058972615647196476624875512466166350079644540005614095697254251732903674376519701734779906829108112654386489633112280153709059846934460474518619986819239220021341928439275266904718558400669690876510367935334038103624073852296724667355967787539227005110779616944326657232616375717843164178088430848031558158544065481703584163707085187253742058464180311907053804427312777120453801859024647459268549496654861705481830148293374668936013245245989135758916339178429513553229461714417113550480418753482003373519797054269706453989751309362022862099374096105727683563420720081003137393431569087124679143100386240683708809496103000039313185716217889088690687527859852882797821898778351732351898567003974450347931510808508770104045291074914427619502945340128176439743883259499571131188553361016830324307953789501888716126745085913639565441355206240231741885260550327535150413027520300006391184658146493887379953118698728593998070461642868584345355957736343926682479915232702843466095838889697667289819915512631179743831602902324794590997359804455137918788325559158936221673688804251621955391998109766836628873470337138756636889460917027077367322384583859903918237484437262724069725944958859453681322268719809166542322939211495204081900086785811736572974102013833373982183938316783886451174029092108958667592857563622282820353165490300257161822039887422950751005893310394700243083563096974329112605505289012950212349103976110562593892141511955103938215791532499230877253132644948754986217600363515805845744097947271917009124328072488482643249350250546847733667468219070630987625499101411382622026512161640548541013288037459977742753416337704617797474371863014529660267947906766554727257507170456793513593259018730504757547621166653539867546560723864307748366595892691402666798038242165569618582303684803673750865105981016169259913541984820395835757738839342541800595899099284043721842318116179109686547431925072640887291330903166028365484769316550650322586289655125456053009732498065274126026323233373628685565718976163281336662176391948557279239550547627833797642921374926219399447661344776851371403837514139290276842963683842385075106453534993510983089169131034532253808697542113319704045370068079773280923227260968995705876587655272762925405434277264460089296006110439086499573388415099475799463356933576495909118948528928486406363799728030316515791165828173022054163800316157057172201466089280507639018516950313736778816265147599786573266360927164127320504682535249958656464553605153281305775102746407086028023549824270463885772640438244087539498940107862378964981108843838136496797576288318306925047458474049175170673136802766958669491548791833677279939320278564387029027673978505138665451865710117392917226349805804016134237458968111607087086150243115469505244202592159020283355602334018393418317808820206961183691409334804608060083936042960635927710700696020493526689110701159669736414206597974769590013749522733623381268245990490880748732853332793883236511999659023279872000369572025187468532968376455989107053955038608487072015902806259384074674270044520642023013112953963979915700605560608210412154148402264304633641596111493997944349538641076425080672497946106360121818046111901042601168951638688852161157349339110630750396337251365965537703835060953876332784421181786247406439751055219287060341492150050165057682831951857548079403235213810227402832333855889963299690812283678116191590311829192609315926711543956477469524504753422226481881139405417328203644218343920871929991312685171982473729624239030810096811806628913094548217213377334379205796848017295674346651678289949399472216437945483858490341473627781250274622357679711406202414526168536060325739372634004421267032408252005661015411485281137087100371691780616390180934338148985717107120877021137100603940423913988711635604554834337927074652031598784401875476999124464828783895676180516258463827387647223420813512880947965566621704677177901843597481861917335914832634805100400832485284319818387200925324177744601227713662125124894466709775671714723925388188418226280656447527847788792772606872937228595417185522016219403283957672421145245604260224582853415427713910808038304084669079352310575134585542175802905829597456244149874146268363115978896005626874904043108086027235308668135804075945755063618761202860654771134495571238086435595609951982842613186431527080287729615781376685957487011423284209530111744423291691613336248498331658503033931911789280716210245955475751261792000862919732167064340376934628044475304539376245386408475474092537451940371951729755890827983292197090283164905669607777136545674214525306512789039232480206988564818710631872864171212556643904492101466365750813405230960019653926601280311530195290475419928294995051999531120430034681918895289713026902304009972375113790852842169450029027168611924250590243827402511507187303673251643446075340047899656015306376114134558548204786645785349011444936224802081977225108669104931767629697494382125742412367585453278610471923389848544126680858773608488725835609042615466855101539987678370707276781684951295659149796340244257271719609729396223666478982294138548147582088847210427996384209923038832191000533537546246324775819809941166785564670043269148054622200405659793213148792661669808402294575893462506644640712411960435154656359768948976566155583539215371467408803073292720926121363976715606497297445704436672058397558105701380756867316064151264595039699052697227039916057261579547627422274154534649314585410212815617756405384460467231296177525872822964318673883808480721045200686662905515457161611812710494611255396801224381274270750447237348370866600112720479217037248238057763429006531794729591842096451662812221865802279899427906757729374385968660628905659111386828028379583242577617236102433378913793116977531755521618069962933885701797301406824582574506372995870080213769650129250302680323135757614400632796167522825311464230611497344103611852425379041855144751334992882961077899647297213424957713727106652124361693256022149829081733072648659474981731322345565269917301825696844293847875696476335296984978582315929484181224157028878212313398922086782696754333883863299188948945866295888233887530727652779090282624211790842371542980054106680436365827682637259945948277098303922384069528160005424905962338503224616249065643299733602994492045293476054771455993892337297272075357340920003092025408386599874976372502505096982689471428685052282715431419224864451048685790569302512526324715821014968500780591847432920597635567163762868447691476545127609757758147867261924877048138590027128154252677184753603948430815851677429562703205827345168760523237838092906593997790452508293285216905636255709639232759636645601146529302179419688244770532999242717136221547134202381650881696956289888214745150253844480020572714030431838282326124003692417252606401442582855430626922266087008604028458370462079815405191239828068864406530870067444889082814894618575743124940485171810985980006517877343209500655866448036440739953832528449119131873903278058339287082629391668723531785476359682939675215483911796174438143700417883191390138252993493257985192279658464490372104250577193461345452902945125851829668693701383611953930397965336022699657753585617551089015923849583615059599248707986093221701128045998817298446044369689065762727826206996443343002706934574351767863315334595584330853831070497133373254271041428037308364133419069330534796645007554766840318543546298173947086468533154359980239828594308869323743194912903304196689044717520782610760426456433256688173970752140075862590687861272745213281121690072375835621112602524171271186910280304018857453537740982738463541218664012413694246878908712197168600321806395785319242770397545826171876437172188425570043322544610403084090080747810662613377621809937214266158397089725414560654989923966930126247508508991960288766850133782729095452429661433616921124975976014622671460999124886834875140628363343759036144094747739803967214892963045294313469295187476778176004409303946869208621240000912874700175025543884190616026908623959880207189328563870941039358488162448327806684768018700266293569595859850696136182796558395140198401948144592685812646485932683464794568623094256470322648317616495716519467924670401153215355741778556350056410745298017831762528862869317296880166148931571879027613962500044521299419984829004192573317501489971763121360706981764086723314603082337429480158998751391683740975581111469673781567422385402406995289353106954528799648108980858217143804366237989768110579706425900401653561651932373945661106264136425255817386074818592824648823627733751534442415551111068499915265991759808009712510318182585998192831062274912894094889432940561621998469010581585480726147323956517585502146513787891389503686497911833111518481712360492876885169654437199318360600209226447947364009078484945864924140348731738490549944745104294858940027684025861054383659700109596364487054806170958181491697266036744388092805015980863990565960120927656767244160876035378872953012696559611464724283671047285544249115182509046989536153734710488687747309642847624900448023810914945318220203279054606573604360612063901597440853991911137066164402186492908933043511939993317808509854384276671977468879823015005950793164816184432980354290838147841889386272780080391011717395812710753874206357430801630748719432047962680567477944837560350588544852727004139970669532741760211310854151804672889051705306489409376001287877420160871896281825228441477362585946591812245468525366545130295835127608608200342051518016648829303990720839563553752850103424324583748907472430223373113658253833035676344973803797863192888186877034597283261930888413362215905475532578772571189973042264994167242229980964789539816110654577744815991145837322117576874318262504866215384511922056516901441872680643158787604491813229482267473879965229843026661265989552281409771058863777965593904465356315216723647190341342376613920735327374059276746739533880166176738991746615194589148801906587745209037298592883156556128394845128264097234834827689320803799238086943749512375611074522993532324957052433949428595760730588837122157213252335229127563686243967920362173026115778583140211365491249774468176458001120050303705345653189724877245473251260941473766789517234491209322060685824468211376094729735070690095971233105327317847916140058947882630140294162561958329570900675984878389916192633820291302336317730061895153288569150443316130690652943710660323097366495020433712004917294051091649989814706875174294885876540176335373561374550937281344946703404200271396611055302660686314566994590048941281103277073887961300795906160393365300277076498717726873074893076673242367867481017067147469530698842402290642006228556575976575778540145292423098290673001201037919010713920137525775229130094389937405387519428293963682339359530592715210033181469933459596646067882608277230713628227945937500712111532408729674398273133871135513332837900803768132268779793335430701868419078413012734978788702494492205651486242106729348504338297087566453030023094882306652790686752071562266076263121648006449116857513353989410467118275990586960410316530163498719385520739576639344073792147640526943758191118728752238883670399355796460087062212980450060065220091028224592718903886404648943549762162411693439909113663260135496557387642791594806943287020860120191569709859616115665270148150678753122155369219715328901971286565605344545520545207504567336173252643473244003663519846783738611918442371697073245535047497461084275728197455046588243244468966605022459274233306178084967269586425375382843297597852911797639168324823912337723118279929633303194870225829561039443753368135559300566529167728371911648817025803931591467895413717181027072849051087155002757441512203770324965305476162009043489876897497060905818944515701265925062206893902479489247210744355369538119313113569048795224879243123219394170521856889964826058957241301100365653717999091651020348075159489641985178403570637830603335797979967550442047051716093566629002648363126139425773519318058700933406613770878096110008937555646584175298422120802819888941323206826785069482465182613979600552006240496663342289510399377332860931566403482207903426346745813546178437079468547632127571709809424400421047698889474086239731695567601957857185552034848526722234990945223598214173384892770894169722223308259216454033625625201885879414321806010118344231520880845052812634899051967672649898571886578341128159759355743703828223010615096620596723460963816201465183781954279802356365478187953169908966510965842312195255140664217267955590035694826858747573117780400518769731067768384896943832433131337933947464930595147923934091194601786058969432843973412542779011961690072918373801451738547098355786539113319925537548255452069357515722103581672415920139687377705142174381740092794278188323946531112295351571702108600580583837204036911674620845391864743526196141461767266131362586828014657088106605691652590315064408635665305259202211889605323248510739442055140015612894764988570784722890755320307336291319128932184359789190775720401543722789443269518067241012794831956126819990080960158437672630321859293957872619806453385052269355144416355224123382898708957199719133199758990144441764705373956317929578942642325840819086430404726009929839072731722328489959018084302756411744351264639690588550090054929565484898451471968610569915649069629997034169512262281848640108767156322244604977596270454763211213216721313789735572684477673974217975692445000136963029914422156452224922237749636330108840161928623545765131996080753068051921914375681421426775060864042503736903659483799295040883154323528600217751633735248133754908606888406446175715845587722952137424880598451125413666718111048465937066216248584774070589038913308457369439145947332135915132529302933748352579634514818300822926372588059736236981853800101074947934884181398693354004878771253874320413609924848897954068929551424543908816260467426381452146940911451925209322946772370082693595162240358414521284405225672710106131515035312908891018326872614833821139908321549098619316367322196783558409008862528869803668380124701395335045607955452205639734370199528969354895086397291790349324702835610145397786757961505813817704899818798632734797224531233103740373753613478415905510914138454323604684621661334262199363167884134387124400709999712685834677298772108475750881652332695203510717715863862575689180557486802890331688331320205684947702419614713158264525061892513550389342495818507112746514646068137817171755338152414380567212830540826494796466399593360152444403586765148131535628580206361404545693777294097103417960777441976333835635861048773560378294887147021964443122362581701244435794772475796437259300522477153961709547213086429976706394810480263896563701308722063732666662325185837689698808583488045521849975295388382199200000717857626082841140292989042528662126612323915782770118502513262607475527325784760434768918576822268738709900700168016960849924728413335450574979261773975073053407282839558120630202240521744213093251204706327384629449779842103263339585817660767477673454243876994103952795202067457313861549004582880979275998332177934257720525378132739523601417183595080145766418029762491999767904188969756581050030913153846424137876921434356780461426487141060418438278244587998557472686181477032690156945764596105577403462775375386797706182748927743636362458591026116152901355076792604333542213201681955068092691033696510503455417568852228471067077906121606145863136546715986512154556535879474353001658646738354516620685501510455026312765350982555009893597608025420572481740453081405580954690419879501666858034622876074399465020370638876170342361720295985520291240964350886022390335443125515406521281348539256493127497636634832058489946103937847713074379192963238249175635422970922733646873553099853993416315309737278542626020982400111186205409266554142152852325540658008381776758707212892022014889554280608453876912666056332258900491597682302051552086696959252334963952797873091640491190230694920722164418469922777481256401862223651906053764855965368560114513510610234884897254234660518911672290561070452067664569904951787003048910703757776572128484009063086568034217477446280661077657704519252796734129386029962352971756446305713968660365179207310016250036315789873704674933105645548826166574284015623012694030913145245788902184261303866095173229607223524350491982472985514403482621869362330673085444956120493523561171955660243455965047914877498800934084027381538048769040249477218079175037951272880184937374406264686664902037928936978466538904385389860174468627326247375664454719495223751873681384532999850411721064523418557626107083532351348737284962903652983192583566366004494834895908712146648734609336869827664386645953490421015950176344256522425476029483586543264155287470308480641957004707221823324942085571249171528249413143281287949683873394903979820285562251998037013558191369204085537267150124510357295536444232800603654235591775972478360597940775820999791742877531778657113214570494089756382695049086509350086972520051974691771693160230817273242111181624379308722449150375488709226355668032265715759111322795434022590473887816879365084752755513853148728680527118056342516086272423202539630982430122122581602399469846819150148727767692134071918381278951330086255837203176062924203989033225088142009512261047720513822032614206615935465876886314064479521763881781088807728947569099487104459270291128286354726225483567542606717378438939983750892682669576451383675949152499161562101384728858324964656916379263064916540184075642877513303038760463978736740961122160603300789180713576265679966668914772038132611979501572654984818811572725256771997572347859042758379162273197006653249276827032432753089206848248134073566522534244287781000586595630204937029549275964583278421117148189451013702020676538749321936387881337167691749744553792568908317498729295399951134519715944315793955428201372331213419571262626214538145370583052273193218015097672286991293772277641072207795028286635751153824772550540059961907816452199959059454180479095960978498432081629235897617685350905002357769108736459967648381150856440900930625783690836050025995070355814036090612564354969650660327633463003539595698795035435831238193088412415108843455999511966049198151874541719947864977634395154818702347929930431587715598397385313044674187470048794302131164157099924029040400714049860748258368340019571465523162416942938385436200056525448921152776503421120591149751986077486916963234089882847153518360148050340017041509865615864081348879043524333258965690417657147189272298051201088745747475392639775355309832689835669294921507821470028612804308495437207363657009023847967412710842868633550314330654114129196374554810694982588778188246126769506359491154920140062145776219605393014935437257342937459394722109016489108376642214967322681964629890462117819805341761974901723498544558616081933555801340620059809999897789742385814912240792704567834141427384312152676933757713201588836094791771803698471282431530545077488364096267660617266382883861148632657227718802731401838440201176160349668504586290430259648185014946874669856475768321034104199609095527977255914711045678871065525135248169556387794593066079768704129633492701810497090473423290551778273558667880724734999710324758955537865919582058863537078973708477181424931074914622232579010818947915476009143281687419430323983961588027016208253462776472404249721712915840728266351598464293109144258963714276836318278232818296025427734048234938438067762174293056062179644622007873166968720534707953232608419990470868575330386575135043670055278120697656770767719038444111454372661133076444491366575023777862179145637521057030127029415978145538795553818814590759838587133122443538294693461040395164482146121069230280721709655035305083427130408566927467284671209346250517030883473602091436748658981735164833301212573611445289516042229537965951111873744456217903844100100965871071242849843866383991170852213647271127453425769637363529496343941998120131884022297760237822434887990230712553246209622522991647272566764334039717718526987252082691878622253228988618434423252407257175169563927190041943016807512691045369872133626929400401418736328531880263745285366395207384889337784095898119334074487431532568444272520188494872923658885194687609822112257226854892920421220140273182159793414914386936938562797501916779043049373566615867833581399195016193049592758624022393146897301968199147196991596831722423730066517959360556529631069594201931464515274030553978125660310679871703687480528909194192144916639751158698312984749140816067182345254530081219306441830459553045132326735873141988878317003307600853103132426398018296976970828716332977478827127017091287851213361488666581910837975762556990445091523337521074352497687527624876803897298360671468427754001017955229213532273235780370171321946135097192623178968623313066031583509048771435282538850378159904488198557415858380422560527544543512823358123044163820151410674709821618300338536785504485181120485507408663743560543735723844774604680238141557326654208936865861938250640717749736781192367326165041308486839111597978060739498292327206666360082099824373330096075329136733828294169970195670821739422840241003699191841351507463536720369278629452780619251241969436232584803993989342510009241825713284776801092436874324937757448609145663615607879489113114688845957198537312413480904573101294007111036909284517201806397254942565285662489392592866985417349126980702878626341581729954929555818597657500092967540757398836443008752741347971296154282611855713582384761210344105642980709428263965311149463845226802152779135363981281632352756243835679639249328079885181956599426117192969565582347537633084453625360945338268147137270036131339158572318003798112342896517309741379474069295092982688684969111782602094338304859918148646129593947676322885950455947913232514820489353979461224721057354499906054581204686534594571724945222241024372101507775700309455275286051196008898046531784627044527020721079877958178397823492808342015801253460438285678890526355284456421305409905137108717057463622152178496866580128535681351492047701118320515608291445828882793573756550512405031589987815947315700085732331970961608232869860626355624379481353294843783685385536598981622821779831582113106527424203708804138626662720460541159988692774238875244073735962346103945348328050553890480562651206184238446191462402510382150282632181028052279695352024889186277895600776657978472030394313585124811411200381693869902848773740602740395846985202566666133202740105077557704973553822003431073031970366161571233754045317019183198345937969013541117747282395943924260764477163284924758452810690573706020722909355772138078486730527289461722730845658911967960931371115670332771529354912197043212722713896008517346889499032495921303784432033635509179480780543897354230549853140236458760113836327233471102058111294403254870952527693547578081898538740380125030486710226515260035319836902142069670284520683993729821016259517635332036204859206442791888666247976858029477051828774583618654145303879262651867614973721168482097217973155784991200305425112359214997835287087793234466826720963100330761429894523188846719564756480915594001342615128237636867418575562633840554261556891836789046631370984112754416677975719809368649165377516800672403068560714351888585794092409515825984612718129047251369798420820088197357044609578051495809136381049872660856076009955414040090330841399447612676288524099267616283815063227380745123976321091409857002751722028671612516916968309915932238808084113283311559952045373286885166079900151045635389765649103310862808396406916978213379437178596060336122985620665010878392526045587385465420466645598700669805952366118206157673085640901836262013038282357972260022886560155603712619801798458680705702382206417874945781310626314823722232399186088353878408030915667728141595441429123070539224753644593890174870722607859887803170307750591158510213054557150560383249397546978161031969448115507173886111706736025696913494920823077566989225663438337235177920221751585224853702405153300660316944130854282221846130038772673608816998312970205990735707477522397319815185391509535422640158816824036373159135512958843134327311535911615303638999325832339360261483763277297275716013952692950402469458552812367497677366018567021117549044395101320959475137049588360424893407490829907526352698553970123808196777648614227701764357926460097511232122626224135381648917059068000382872760179096036454972186602763674880179662857950413530881565786706263572583780028179763054536898421439089828069487805738064249445519430763292646612150691318075395834987282136576372727081275894203836172237346782225598592187577319922493704780306325161775205100332691875354493630761465087469658216587339577913448503154518998295115701981999591147764325941541427638066950253075536089462576782623399356452001070851827708659046750893522522288246162276375959803763843692727307175639613740896010868984118189429112747401618525390054643188559688342567557395309344383449974491269025347687160562383950196894488454488914231945838995232779168738872697801529847534597771131493353280793224426343908709476559707322262001222854544973780847826812718582909195346899288175724191047402877711713422250336257437813173670195386174895086126529717277772990917253019207385514933249552242060085642162000624207258293654678065081613449197276316087878950490321277522685035267943602765836104216690821799161947912269443055447282045129014577772189468564801428184427043109743535240450107149919957427654939921501739466291122917937435561685471868405799390571159312676482813545133965194547375969995977268753095039245371991863793803145104015175385320575696473285551522358713679663520509288715678844786175308849522996538661297190037593299465509429261775159265844809479256050815871455675434886838359113769017299019979018292623321307990743618524260848868883945374633724459323089753803430216934168906410059934247581592223295054300167235176294115238448798333921368014928445856288025180470020685709786664758078002549253047441153278087883880868419152579494844162746945456235058317232633216488506857222644217581173289720474001408145590270128176236492288534172348212306343516061709587593973116114289546890857047369334622358813304334498309850085002816955306543396530344149264784656154443696252309656674654948840672390238783832133871474052152138947968240568956138928417140029966700722551938742636987537560709394398165603483599774188768197262243602678375671064092928198534689114786509094740261583882004392266850277989983601089362336985684216444644811213545138960542028183984394802160596053375878007401430828982766826585762403765058223836154916583259777772086914112418602191545974047909881958492058078181588592271129065617155363029051316299970726984635526181691368524102899698840069433331451285398478114953967610393540513037793077504326102082414035439813407540118955997053865043619010127136352190567298244318917494978599543648261170419423404015384827084995825668034576664607328508601191667804889604204117170519305955589612299551774306071219027350004748980748336356643972519543299457862249336343913112423877681698947495626392899914441498325119608487943813393535234204738203041637697537366258753281442044838851796730956777686150791532857131038911366370285015896079433717869037150438899123308974183471506921445452967887760205494021008834063109693934644021817135754018909549373408165726318595923889584752219394725527821594138582854709131755760358529027645501963427605739198968816892618210032136275013298984902124412974104422476815738268648525482302494390368093530199907118746004048161920493725545724825250669125465861927207383563892988730288353341369213646839169956031768169723412706039832032689114394210555494570976763505789248755757787623530798017976348921493956230339360628042106352396032319117450033779823549572078505262475513276436381790120706018217356213482495343927489280114724735772919652648175712036823367601387594309429750734739963077902908621309460753883988944628106922454773375721147065534418205466161425058041518755078815585822279327161709663661373999771243610202695845077069390524367643905147388363736439303071835595709628405133586011541565417082796132106804799543016338275025823941958952177437696896655372296184721066450636187430002582286091006276483314126772336174787860868089574138338235265540560998621597523105777583107261477074265774321468800863424765293750659498408956242368329498129321890730645214351097907512751805286756965782900296606327048154477447150540575504402599356214688048942520622692672734522091584191157342452959013099595900962516347602758819228997592512018177258186915288629161473500061425095758616637203172545231552195368057157426530573069986799045892328524894021127507141062420487022595482317504505473346047078033168676949916038334921724141991518520164183060796349007401954651189998219009307296258267246992646569936783293927549944592772716217084192650391161613103431506342191166679902082379093939515600519641328497739679438011280068522637947901894791626058899989022295984694799242051207673129369496952246752343204227202113825445764796938358188173453895942888842061014017375760281222787083697419982763208993850115890461484153163603780128184677920158174645578371320426191641739778160459989800422063364096274966804960058336383886243277639004441294765333411328510058915368494948610955803231769097429732859046386850966526972949673983208998628157452699944080117004108807944714627030893408110531100194591429752424430465366447311137245286469439448590579630659547750771774637907973947564929747262897742044382549069850226349860528559355689958323854903450737790490720102382888266039209429613495804917055162086007161943509870285508828501237029834857466185156313226920394294441623571442362402784761510564828970757683335355513668614114331703515393347428460433100156550577159694720613921443723720996925038154968470431110428669092883206115935722886670816137217358728159134854298564461269525155954507807483696220123658300684120556842141458062141594724760420699097638630828380668468074496303327919156425902597741256466628873607404281752619517240851279640568135400637784685373438982756732721629617793577645012268953172253423836764374275355467261283049782455310827574136601547317531903563454299951077083901876100278582012617924693466398857364255170132229098612665350740368104564850523524388739428159416467719034174304170023067427655299422544842480154841520522621740322682125262473009169381982958004219684585781057343894312584164091687628966711995043705412032988846240249487796851380082630346117995999267464856638632480332855405134808168778673650465771173732711903904414390261646782038642642366766824223705562810800195410836579597306058212196540644768274777554957498519129340109328311135728781638635721496854470609028132367953646255818913577752313054691911532510940489291503139622460557413455633722944945479922067591844136848105422729753233861549561180917032972777398492834201576648695626246802380558325316616493306328670285284016935298029266006559000489677556839811283222832264965251951533849147307773951252560645950511552366828866075612090981722578744191531432317290455257329200557222361249649911009134900943797123740603033100635389182710741942238873628739420876167194112678010857852869775642689970310350402455822612390549963283592463979815851125965074782762587802166622452354221335067419402445814550170084429056144360093700881972740729383845196464476109109419775170066415276619071426341406008319806899173445709615820025148277280354081637025684230789413596849313732035925403390585073562722008738101938819288906231951623531843771467333505816307553076517889400332267798435176816578090547044038932549267271668995071422627943384067557639563763491872168050801297114929052183507275005525086592951221542715565037791916344613696762056587095190689429070667410004034191959777529957381388750615851065655773033992366001280871327894586678835538496320967588400515110553611220394396206278256063202885199990041142642631269663961698935967143898629855720613406380427485869696936236812454968242028598591258358611759951413909935000697012449925057363659811493067480046124911444843481384325190848710213301881190045366182498695689760479615547493334668210140105419469580823898732626723469949383010978725901860827940988535997348279902205756847772625657451920049750811602471765044239362278102357158402163164434528548581327230484079400704892131486486631460631969748984108840040493724467885412508703069091081880173306714475266575037280266993093285665181825188817615975106554616412648321443249794220425817504661378348753055029504885585262509081065794167959077358533672541140165768499209400650768479189725113713041649745595496992976443321049430846936759279778547424947284015384129506601607572254751787114942643921698482499211945373520627839480636759627805074086935268771161101941194679046746857087262027416419291297727488348653834306667837403020296930484419563752621949149811551730849873692385258361803583816689727659105165108202500503991592272147904766915555394667243738510119629313582502094088211205840892232290658740124177578526172503001385952472887931606734365091371993142730996589043035343528656581529153244074492299826811714584030658723256786436610012717328646767250980566527606654517270888184089659906989313048681756825827162804981284546666882057501618537459334864965848926935155778317766639706622290257124150435727261101305858817534703658677482737549194533468925068729762631699248723957402318567257277961256088788900399262783569691469586660642716795715175817985635324490419745435400161266195134625022776827345215749599970000410413276710829275000428236633890558910901684470554047001958174904085042050461114380440150762300298862920281662155355344125324111000198666929625798213346818620045311609840519578034135913548911712855351818456006925635435217133288238798820749175514773552610238284336106000122822478886747048155540412036611264138736582862287925380995120901034388915185119602940116295133746301489989652210444947257317416288568777567944757478503237783243467202965951098828440335767685375379262203878498171067901467759052495364042391759164311313907828097513369540943690805636639892850096108434424829599726539570991160090022882781421912560270469768602604727557103647584168796144884084708304905217975738663890223983176841664568896975206300701158251728652244242767606036356777242015787516862384063415288873217683742754210180303228388699680488560679630812524917466322277013330340077286229851885594143619644512476509535674042204130365402040522615740882036925779545336012565759244945236311904903794932563767555873608739628472152938163381593499373993243081166375356140998241665956073298738328229402056765798896153925560847275172312702764277156866806693325998553337993913232910953021921036452875564558846284409363151389965906627277246933073063807157417897124084485879298651672770236752022830889480982003487236083743151892679697221839044123106978707854920323617778449470723909881328413820616745497998089536238608651024231348565364965482796543855212647469985187027808729930808898516422296656064903128341878538667514830507795979406312269678896561607269901544456005031369058392550087774482262038071004864750654400852794477151984398956551268356372865683779554272169193277367714766412273232077152884493859710128855840111161251113302007745883615305536511152580430218319426290973478374819429994250910467506944671930148249358362380027496491067066321779753239127029184639759339068883855808164059730049627591924840393107488158393720017568924489115835153244197107233382201606447316163122754491380063448772846607076896906513326802035414553824442948644366765037301588110836675017676006648334433910468532638814372445132697256089340968111476903785058728858902145790661124402326333315668003184647778655518612945003282273894291737074484124963407993287018441239184348392870609732470931471073181093489955760109514895565789492492798090403812318456693772510466368210156144518770076635719383907071181049948973782640461897583651198704515343239770536117731800187993038015481013744066505170754029925721926812789428378036091616909966224523789250618230302032251498677350933745582325841291349085345887414359287305768957234251690353455635341641826043799077340095704971909413536989593539927978609983777570016790085227157526952540962036939017658749110220507642721285380879764581179526446929235406714985127798215921078963726980096868670248357726398677333632591684369053337508815685484849850329435481573957183549555986882821772786088841145791593734727861689898282504990149297201492750091270295691997268937087354765365702408161414093488977281838799174227627427544527620156233448473295313037087814671604758570050760750057250988491229547431864235266615144046238126800403774886912559370510002744140045355311741603137105751685029644217621556778724190569559828591071279026435222962976563567064895937910922945407288067917138777904588000772858675770708192878516283211190086281731775850517836653002989561798837928812811022447318771821867148514525014790182731480301595424896148635648709945729293208455730746651401344904935784330232222514652506593633891038668903288370875888900753212382510465056949004455199546687045304226622348787731979071569548418790730164811038285723646827177702111231598360098335644263708441670480246210886396277591085140148463087787686166232657676339332447893131312243762490538812697595276288673269529001870105032936017393395862382988522738564932755491115372416606560704513983998694820793670077287913074003764265370371520708060469416580941422064368055432516493962120295638819849760033205269883315413871447611546679844568434779785346987641495516022369245330965900786626574974733272948280368032133194484842230787003779793076956493488405752938134828310844352030485955709427290848584256155406116871466704942952988046709927266113039381006665698494946791512040752047497415073314010961499218232561679692133755221431298173613379606642329776755141306251456320233834490349910794579769693146637432930872034904718105381035762922052245081737428368549021934659103072540360540259361079553285096633241930986403140920921266648834885544222034396993472937291961529180594638228017417583605702594992298319913122804761290151168107774608388591007406555112917025936323141401023126297395257611996547208701078346825492471917763027952780111250831521521802182899756796024309196027948926716427943916342610201031150960619308630608058648148096496306456752058355529176216619235061262647814973366197325455661600649036767180256546505755799635243058151484145640742088600847193739834561632678141378312336617897959718169634277701586765372891979223355858763743340369599201347266099659188458166778865175769445276844397469685283843223512019002178971041734942976484772258668914831117757669870136358938770201815193205504778662309023137686804685814969274182395202102548642609132272456259094566093818180725024144630863765058646088510882232901607674676226333396381262251679298775686289659019363906004820622125201371677684974140704829252254191025529464917672411011195811455911286398243462345450103552843181141477990531648768991623174974614912528603760188310358216001171456257625744113817729775655193647718031849887856978406876215260396391887252420830944515941344148955731023503948192023293905671787903940377186821588720139146537859182607632194167374063383244287291020863704595318623366395943739675956710762954069913203304880116512363476092551903111182876042501245213233816792408006852331648710067293042138041540303159154977962224583822178573600530862294170277192057297334644878203014709791928125165562160633375885729549374228697046320682342192582513034738724794501272406224594808721707613177017818754758246961683947482237675870879343024644477802401098593374154827742046620799129267899502102291966140438296020113930659370032468633886704456082253659670655771604052815352186120026910207873684437134118667216628433773500926272251371889875021935993996325460370165888331159693510659640688119772198663336112335746070264914733998164982498997830359953961116230813539859852398075006448493770731396737429520841227007092568407109784275417552046573163217075667578928978374487827462501253276324485757482640726102036023397989039340622774270104687964779609684904529398303659452112917764813781283408738947391809394540204323262380359634957340634394895492260851400899328830527528210990610208834614490770959174233067373595616804666242721756037157104187444647930913074187396239020581292602893163788259952660354296958151782392914278485027082879058258172486917874914279512338101598880414002153840380083893706209148605398232731253538149855654532379816703662393641502998638962542125787243007961338387193154622667930327692485363055111538409970640316050514708134510980500244078168933230166595150949118947468384979483895297404889871587293440135088645283904197915538390086251385614393390537841634113713436143747494331882020927955740324280622002806304392063800481647099182081924698901054985293282076920660115044433784873850013815807610418430133729068456872402800209206690632015756968409586984289941555804544424338561016025095292125185515859326183489833241246905042542769594452678736209657967242932401944756413837316340035720125296698887146934605531401898383206852895789902557895266123323115835799803319706308742736151284741087066246670649972007428949402913832224088292552958343727967809781556702362412564290305027865874718263423622744919077125730578630814340935559865240665155150365074874640427846370712095123890360082751920778767534068069299520147141541933043224494183541449882790256746047217798302010277078694766601034817797421803613979520612983714147496497986978892413855912302359029912032224603609258732800450052516849839672644567866466789612140041936696551282927035630261238257905299942373168887662278225572749640659356855174999724410788036959301867527766923638732498995719526479026334783665429014256003535789045079137194837741572473546304014422958597981201286278957302945827890953132746138818001589347572978720724463922337986156192426608479493291528056828298459341022629307348841545644238810348302768390186509602683118075971109410789104545703558776935827303329333444982971570010260124269823754140248973791136222837503170180358917159973955472305551039777339628114056302704969994654074350982200346280374381674032601646960343294760342383428843320445263864682366273576699795161667479086677914727727328431762342392503781771703487305722878657403884320124639237917442203503916712582553052452987282002103623496828995535191848531865159118407763554886422948934123604784112351813256142925609196103929986131330267424031851654642403484946488362284699058812349654993800321094769249081819742037763794958323213450788485401734506081086176130273811572936018950155300166003881734639159908761748020328676091251707062353118186495324399488402374029361591079378062344397417145213141018309541188916028180407117955275692315180741912902087213889193602161769019815496793128439158213817666157446729554633164981289045963922539770127675109800480328335757676170290584120484655000509749336293945102852689972120042809788422079898565595001662237824559193516139123646257958482665628751693863131201324373294349968671898705210590736705120777807219867517392771028949702852286940614438158646703331152584545500396253911940802438621974918283668464987119977833818032762000912998837121818868795216903981631344140870083094031947942236371562807735156663197660573852637673811288832416480526184798591096666514653846693236552107072797930681159576483903856661742404077351693841001843369741975039189385573315203308428376017349029925176709054706828655473994364504023651231594565540784135182947276586677300481944045535869728103417390664452822035788606288921694878057903168065982766364528972207460806734064659849611694658076045015855440026761719860673308248995957116628347079810774721296393895830569360275217709578057752012997052624807478236328387853177610976671117914787876044602293392068144586864749642845843942172753408564629191275107063758005086201962694045994531327273631950802794152930231889504754250948589814208280500375401753700166218342643012579453874724473862930276540768682122589962798075615460918405468824325933876977883027587856540726876429711461931159799976029259062933529629229717908956421952241442092392237127289954853843599516605080995130188034750921894818833919970238844171546619575353759091954932284851711036630938952668283611447953626811551135979817266845794833943460039020759941576348546625616385983193895768872958057216147101923767779850860201253868937233292877111476508277831504273619477104128469690310026379023276103229551019130877272538585716895779995590722007681207497204109808300997438365532888919778688134026494966657392059935353075146837881241000202252302267688977252961436615394025809882454130301026157932503330152914135606579768316370110117701895154304112798100288475637477977857914201569492576698052196865612153089471366246612645152807101763161905995317180449402121630139521432403602675061830308220129131990678838014807734033426580460116048858507447242108785597568577440237920000256109645248895011629659480129329018534953015827277477039387501668624641988445083339010815150682574750528558231920826375050750654525063718577446929724096316572535251087949136452709792774900171765232165720187322814401563411474203220972576943318354652193944157325776336268934726121895056240513654115664768035127898846989282328572538392641073099361573536444510245741155231602775828791717682634132118068989042703498934929449441834496287490516919229092824350931875490281252284332983390806308022045997600146258722680692881279313197629888759160303380698466933340611749005970098365625325870346241415852350612927803604485082888379805979573183263550291122678733441641022849945633387992828935498015997037741188303819555963091288703592507035554088377629941783253460540745463135092938559805983064415541155718955886099887428052343373259873579929921170142211971769120382721395231489176876205654483359376029114311063189224203287936230379734987660653314829507088882686598716910160758180022406718631321938367273109979147202197794423862008923387529408703544554826420373438204814121942123193538189319666852047257877053428476374285787623513196971315025074506282117141846310327267862225079014229628252860311115628139980675170999533266918839600541363013595456996651133498554935726303401759379408065952216433251371085233210248142310562957022777791064369014844880761897281520967042232046905003692687822243757854622543416428247192437354271281230743537293583689589469430848776063078585679522557161924061257048706918464533105399952704393219083689680031017188179205026843863698289511274193737759106696892775708546716405046446116942337861171970284346699259060953879253270664252968922181079695422900961378924689880336430743943132289999429752407055469477487377453266341828876337816492662599343707948781578929715299763385399196173924191196354492460849611548073819544606163563175727786206407653846036641397872571365614867959716984095525283012483443704836346141986065806942132212459195326101020037488389814843078061575890220627155225621956693715809461185178986670026927967422676687059369480531272316311751780677632820410397020679496155576732716028348063517548553990640613061624252919678729366587520313115779108715491443635438354615507729672233335112242116778710461204891648609850316276262820736766461141872646923728600169124592210954625387684291207630190322973134435685492986750604315813437202339541852654107585489401864446829780850775601116282596072418898691233274454493122951942807840624158577018855045524280577145658948813679797542161672826306093919128525750189272390811504421165563017883531554458805631202946943415083782103933629200427881727611223789594803565022633161777066053901853051518913000141922153451788065939225750434091370529961217667808617063650734520222583045400115927359925178257619747666187759451012069439897663503005215883597545830437925136413483331585156624817520969287577809239858859323635978406316403810054666154924266707976672719513905267174697344260342511063824759559366719122425431106868269369895988391146490299036021692186175915118660689098630005253780362448595843645984302340801174943159588783255410146102233062775553340231841209727723125250165928919934767393256859917769039785020694822018162899614871108885636439747234042778780764076259140223735400931503221869762925239031908185117304588701354255052707074290627288286067077934964927590591100715795217453129799897240087813121122631786613630959963072112307657917814214062902477039795253925069402363327447669989067299701712949857309914369840154530180125973659086720217501725636606486798935462194843850907675941745015804527161249012899236611605539821898727344790008620475883258549426820511449129497128081215777813065265788097949857726950450659894329759212705372652118127501158060151761002328573987144568240712913844691393120374721598542426343869849033542397503853959486010595061222038587200254593009678538647901639771985974217928896363182081186611484116038387665082959653813773165594563943798258338816229298939697526482689973787600545890498217056449304231298066141267964306832699736515660373621226136361185364365180033328621397315034870941758430921157732994879367850208659263278624077712770351031104416457615069648466718660415731933583015262872532181785840167371351844957845084925009804153118320097061259310538476232720842619654745237329247207889782432364234236920485643506338146517558396706150997210447379881821979766118694838647892964968856785524243797143050034466193980120421851792121381973964654230726183665537190337029395211846619982742660869959477630353298587697022440784296469587301985844907610086209928307706590113048449881936540332189290716658044854489257542514380466461069215696480743076817651434589889912293456266130621215202734267885158391387726550403224220938117309420478480370992066214683140347586793225798355726401558855739658211766453146072805587889981084151013994308669215996229038695679604629340675649537322543404698125262628380267438835220719889674029269535811419147335196320318391417423070485244106673517591268587213237362392698566478198825846244187980160475279973004661444788906588752154341757049736790207998554920673326344313218005348246719896981885951536177297367875158921299644371965391593506783246220614939743192543600479294394335337417658589969348302815306097990286907220522054001256486301740566440396354190100582697654765808504768546555646128686015933391288801344518127700553689700224506052304940673969965408269851020996808087177659742029719214053651651618062255335262050903161102009536776060269375811315407620991460595424225996373620714974174019864235520286898305273735064272976620273384471995525201845191618352125406450324342897447908921399730988291563023276553067266470846401316637555450697127737472735788078473326386181633884298976605393960830651548784471529835054672128380141431125755203138968657578334678489762060410215310471685860948787624676643979701635539010849151550480430867221195619422296378692650138162366773060405727910336387401604105848308367880678981927851880464941359050675021376784509857624080898906868465631275863120097205437669847167373748814959705065140798019274876710451526754298526065964004277436618510034721489300578429990998422298748999165965319392541634673327561909776105865964414775891592158885124568577514652911378122867667350652797106062033980829392461327004374782605331836718923318927583521235528307914756586942764275308265359381940701325629817750651348312848208023220365874776540514870892810516614428973636863977011585217922422829255244807740192771703297817627777649464881816011357369280147279464815330164823061759300485640087409792257774192943073554576742218675785131630744463172820356977718374332279689922387557148706522736573172985929213527669745613761760668854181738352027441957625567876198370699251304489267740807058159502783660802397337970481274751208469378153249669608842704097825215179264023571818474085064300958858574715318634609103001852201427838739241295519007055490542032872065553011719725273929154315774996862908764987153179866699993874910405594832851060381604705206313421310535372434525276118203516802112077543126591022658981718222265127810776340857396439200116596745562886151197191578584153338800888094613208386349822035508258650930179985991810339818433131933630896547432345442083682194496804852960866358525571400750313093783369684974072371848965959380970630748529502427389216637748271826502629796567430491131087343081381787703255067272419079166566340891794713872872190352264390147603521033891387455965298440615983769986450031247024402401696293688768345768808652844556829968024047998760663622907529265775341077713066764031443902366502774399746449873565845487610886602486889431908784128925110596487187514588471443262140219853809916731024661349532676038020171660809741124574989891425027351024401246235672644649732151685110172257086949547943559834195242916218047322649540221026816251280893486615009759091668462408672993982815426096907534661065527912047322973150946798693670330852823209177604139713177682738364530243715619744265012230180664882088853542543887743860711967605649148854828870151337151122899775683458099894736054438373409408305241732405131684862568706639832300846736657929177580416625914125817536091103713413851527451292840408791490525826196678757266210527518970653155513408541542719430606600045229687071262935009409853627521020371561924924075424070501234670548741455159298674412623277749030090431833001959977977363443686889910775446366055664788199449507009887294384240558603752451559627493714139659608211033468739465244887905566305556211539238374620018021737605584327458701690111720261631304496039098103681323760647168626284328151274937410192640167501569024717338478049711021771419394976353025432432586989808110079055932200276413218450673811332693156193630181168595425852938450061656599281101624416522500148753067173376686270197147112906312470875761934470189701431710379582010388811510544110524252884527270520848706845762087587711377655747498013010863664597073083813960338387104981240135128716038205823016509733880991154965604808390380217597693190440681722670132328298089864391289294206765493491553759981286051639692435513791996764502612852520160547045941380209462753925773958990349688662973095542808403503034769325835359722026645531606106987749558880723103756267912001933529382638808051595128063254904992209593775444835062234035990794596735339875093571434268446262504349929239722329738207251778967702467206806730679043980781564242988734298073093755534647755720347751204677557820627198972611563686558453392473613935549654181734642035885193235142334890922233896891269888671151707069634196814133405332195993016380911816045404548694996276921873196105126232648262990770162690097543773536369826001995004078701767426871293835223183279881623425517218848287414199020577640361586382508567780015012177235067303874507633371750686294526014144341499648728568028831677017822979702347063022593751776571192798022153823728726382248090919045660173140329502249771202983877962462546954203486140924064338740355674254948142455468323335364331401456421575068891893489021505665375175699903744318103659913321043772581496951220841942021077136194972826221925912333284989677630590531651599071078400273653103798714368771043950625759203312654998970786758058174109832498718966999928124693943703749725824870824253667910534429413533014759465569728530898358939541171532671694813420650542474775897100048181738526437455752884737227263222524572134753234521610949788767921188215269362383095869722538774305185287055169833672511674611572974531217926355379690179105583472753384951236518975035312167161692582697790276936889143638558425185686547622401418998931895952711111515000836270443090517273911438822870317962333785673310136796461068186616163429966516539792613981741447957074380354575182110091887415707214067519257765763617164513262213801956376708074421926927298885585498733395683779200112216188314817392884796539440092908410149190106189998875448453318363570723394203545069301389736088828709011671391114234340564272537533921155736100136422578027857548742194407185286049492474225522375596557050229945607114315913154321207857762148369311656544293642111477126387407890397626602087363403092147598494837331924051932133935077966221519107057671364809703286016750410500989031440126500364697253209055890648510799914691233934369222470393845761677697529543620317986983401724994453266784032881926879040759153845580204512482905684641180759411828984407722920808764888073433163725850192826620188822640324872979284094216657081844128915069840645456601890094912136077947407527814714850479631799877738982162408641939726988856499428349940475956792202865280627061094690504615075349628934781063934423193239498040692226408593331463950329932633021175125751951167324805757814743707476260092407208834053856458363536439779179922644329194179085117461258486611799936224212026593456272657776737867510646685121312061123260788433080347915051763878129116343800379620300011336911926527689752888442602976986205747763315371287776198474547819168135159321444539627456818609888850222804582577603722619370480579681278547816109437632309557118448051179151772404196470971372679223069748710285072778009381224445596542997759454500131105228832365250236196237943370933296610726867097030409366131390596826119326078900601191987269192105913487934670507898596841443704902037248850829249327492758878208707876140576264005200149877638205947118989157047373602367391611881346725769803362315251373404318275822039233240332958545103859346842411343207127379362393260893335043033781268080860436041071629821448090010769225141421249682840299132615996325815088170684927585888069279646942133710027779165939867467142193089581689936518766868751063078437227595780818293367653974409049922645431375176459265808121180695401929981121236650290848443431007296004918243003155126503912289561966129351473330775780859685706350669783085162061840720683299968898712876394523544005525475044281242897556071050448339974439573342742738145555100205677016693024428859535799147074968405092601859817174589435663823340818251668529793376503239637707628435488011745537873105526138748860298818197507827132227411221552986743856584639628451387527395823889065643416206612215305273529197621938119537463845433023088662851562627733235822230715058417263764816668446879049604788652996701877255555300477460120248073634960922888105609307147366249552500001541656933053649293767050249129327680351607166760139677890886634586194766581753413765244843138012332917211327839737342959460134118190595052669278287643263187828172490292120618007282830654948021545366085618911705729575425052459181993634977339349865425809260576571533137393703194579266598445455261412740723890672051196318070443449160568605322862927357570846135398246538290929601067574677756374681441792900776854356776489208949607844868466881436539493625738924418254952647871657218132532096157661400234462204866763199367844049451956539200242956471757400766361967241322966892918378589778985473903729125051003289892307433881451677354747189739657416592740837938245046988804857257417515432647186264423261745470781506820658320577550142826341590767752339051126571963278476508167091821681614656144159670161288938255877661231083597611615531498126541463630749784319992178361751214033211255217054336557978128700564982119744283095058440627038205070576594089848342193022623470866960444881860724705606277912820753763645621988585256765151317882267132689338102190033284098311184803478697574900526499287748349352150092677105258795347455031254568163179027716413084530830129187820186619456409615963180049079171783001135511170367357360293565537118774809378715599413025458935675176588752719635161498574465885462052596814393130939909288178633910683225262990272912318003887727752617162773464176408700891588364609621216793752160891832395224590944873643600530946833610569293243990337286723135476117223863314567563678993293603925541710674696412738004327180533539730256972527478743581821246534840119655053694482469033648235798655540177849328629807962799844943153495784316689422656786857480250185442079191860507169677545778128447900616884350907101935156830961109955378593167205435368764135314383157787252395618486300664019994518488703180509951353858978868289402475913135843855755950598414704377185865200642264781236754318085443460670930298890309178888976091872625916700780608953632735012289300325011026375363343852066761041222638164477167443831754937677973901569179515425982856985526546035884519194922283276058435254377894783734696145845525216066845427469109177354695550930489824190833172255960201913997559684634841375926965393989562072931949019979830369604388299386188233509421484846697818958012388940765771908436860547731394488884983468580946727775422073655777189228970922126808493147145338392438324176861520300670804102207373940114804189248824010769928219772437848598550992173915622372523494785104012318714099774398443183280845766228828149744822538614063262609825735267214323812591724305125692200785317816437939738040709171927279302716110896276706732704609777082459599463813658362648397385161865271285155910391657696847026502884169170212561277564869994300031172469171702470618244661566552616595891090024645381340977547025453520870117264072134720363694166808202963787184846893763386757602379464273839106167297064838079087633153340742480380900810427502283211762479715731727929262293063662504659601209671641670306567789495633686804688578457923853372934207808729096130263446957648728319225287841201269780251803746595449936772091218056509665912261085044274152040883155663253871901684509903487989110306609069769272343038626839546314059327621320647374208950974488763158889455025037244980992617421682416978185069569610057834613857406209386301514736234029497786742722135533051021752696048434122800936663643465505808465817962484714710022116413176524397696091961394108122521807367119117061518531313289874739817726851081879933192891423898994875020178301122772862451302513363698976725379828016431417470846790644772282789125412007088995377774623644794997055130277387073966075351169537269531107149269608173100181708440947340766397704880765818277526217457989945846436483934697614972732350050645498581468468054037525529661040817660477227580345092002592337292713467441135336552969731875593657312652769211833577901000651879494980125820325093718589529296498560972625568900743039107579807197091428891607032217238582061173787742222199040478338834014670207797019154835036511782477809730755961648624011575495541759916822328253418061221086613311279390263929425911715491836577557508938442678346982312675450137514500511800830601185664716204186168734002154980496452941365328486602417769500441671920912979723264082626298565141754988321765853559713245759839612097931839744133669654746942987059430782839186212523299541234149905899300013984715394182727893421336480910855465423481819897520701455648059391549081361836535260686286533875935514947610205449913678736302418072107183126821947794630260063968903602817206167968980962741866677495433407432294336040849205277885901166781962510681576589580290137927364113106239523346262366971983594372029436096809939048451387397677928931737000983098928924858928697434891601144860375925008896189928681880599466722162004165360093110583237869973219134306932824354118335465417315904060794768656358326397257387805906792993992544860218467249928805696855094112541352792888780623429198540670158225691651283329864539865908354545759445337167820589243808332078418167794046031753682866664522622454122750226907851600707823302167378128118619213135941163033825233415557376519860607953982762485442775694104112901517787779298472719297471448685685120948009579726588671494167959451766451004341530280818010795247033428089082595378236629691031821482559510184940550164517390387458864278972965496123931364399591437955466767801700872926671665333803170797960147355930364982041446050971095189780856964124122193707875228356583978336967309993272565509835325762046632851900604588631808596150449922914152074022402750962521921055094658600851597934575663057645305879157208600973372057525302238183760513403515261940401880888820572665943348517400754255913486895671522888658150916266056357390338754938249886493592406538704460068749123035900780687088025079624180100710166428055927528558783176921532133395765195575387345268986840951666477240424113923372973147142120703083344273068231365102893801857812423550313562991216615576566881669642628496789493890140828502920864552457437240717207843715180642415004305315129536162741336191971982598725210184244649958770223714017752485103041517859212091521995854615708242198617750995378225258579339794991666284017920698534868744208377141710092163209710420856054224757375169205281990571399360819409382415354837095785216216857857774759493899234945021371053627854358352470660965697878644127788146102792955744284487695398180855237078340930113965379900921224325634304175753253268714646926139346605309668942011535952265210649956104192709387455956978577801301467767050959396179205448671235941522113164478284443047918542774811617477458649218339782081248935901319191650690688918076408867316161216413708997720530590380517781265926506571200440023157061180236718310031385858915797103087933174317104908314270122838388784160461356660244687536624032343842191433916770610647930781512899006739615114582687817983348779235428376494507254161835953229562087838994580063896323438115237893363344672324400146545147882217567393908967127387494612153697667186783120023352405789626931030505548524330036497716262959597466424551505709344839045833398229675303939428478796623884175941875566137064695675102408789585846926047085213589929733613721310726169595266189082486868960031340838132721495442838666106276042542883085678211928847660052352864025688097784645339112788913465906711229742977269312146778433553917968908384165430779348304249560903424110458414851025493263853089727145211058282160970695642433451824761703663734795048406329051693605152954929809282591496330766565204146021135466727567546208117367927201841660085107041722251762461908749365907777516754278444820695602856681266032371007653708308136068152668441025572358392513413618994923307479923313389017823440860019910369917922672128762876336908261569885042316757965890855441145951011587578594693526046568470060797232050345914600641572245141762956421338120869656673405039187599157704662158111856620867856773069409726572247378371283927859838229921075223390572740481998732757015227410187119684401181750842924599773485674562080653722140228261720311082048797127541464103433662652868716287445445202551814243639228663336832332270966680934533196418142074890765054000085481051747813147822425837600879677528669849285619975966690667776565112869894609221033502508111398391281298088316741852469717694111595308847036394445753369909596246819752641494012232237119820179644138751999145784275723636442389984596737933941422156943645541229644434851894321687999075689852797578286701641425551783011372321294968945710457276290094350553895972625739599196344326111379155903899019770175804182376989199047480735101075744727115973558573885828389187844043763598136102459177057214501224766479269803809840254291565953318175686460573392572259239338711337808475919870492060606643945369014639483528128714107708508326284090963256754670475335723606715769769831797985225571409453475268896939359552395676396495809413148133036092989461602185749613627447695742076518829477577624976069249127972946134150388209127694584113633969986634054051119842434601799504381438400453987372213733530748447326112809003171066425540662291042482351244130713928703889490861273650408855456274739256647084092415529551539950623450332339191833998940886711932181431984352246089628209699830273640856667606041013335972140612788434655213856570126739851109142614844876311832528104665962142000765862087772657003017060773063397850938278276609970211122480170490439451601914228430845017532772255914972668756830308276643200247080337130301104668670263086174484147757560093275204959357249876384907033710974833920246439069451000089683680871969530636054713312610320679893815849745213328867965114275762370385530934058227224340678225964618764917571906758114949039963300381838092434657824795735218205188998999904214312816528814067144849020892005088493357270977352610564572189021369532299051733789178611495205254225253150298331080692397108327272865882661253477759780807800416243833407799982832424487499018903223074552723647461971979773685793964143732149770711241910054044896055605579669842437393968738004841208235304078214074367754973785663034221137684952625951005113694502516217803671635377353814437854019280717701443430504851889241009129660729246758451335937886504416090211512041181664301537022911386354218489722137866379883295215765448572010816159070625174497378927574153390707728568129135549532684621404824508262051450323180993140943892543188166013114661837019664334960845385395678677741103380725198533721256487284808767103099512272822513327929978121181473161391852159520905496880326290263313637988422301377688490713600991725679262577318283232789337823887513182527653389908444122517853120902672651929741686566368033995640913644279823409287889787419083541466378726102325580845052682076212212122460618556436569910526366380690643717733108350829013797438522872771498080179502128352910138300152700365954126028079628109382936812108773367148159663640705894273942620162388046783997251336624078559324909658791093225277268968630033130630569757253688725800274512493832191932541135793147353196514968033536378933884111544746251092149550104250045036609353411243043241564828933375155970259324187036319974630643655462559876954998380479382727303051150305829637707886457410932355078365619095685995957332195327100385852461092374799076620782258572767554343797124479302887589442785534862658270999462665246089051648364645144768802756140540369845995605987911198623815935038174021771260829323907847906323101356702760043936475326740162663696796889132111718517217022637047197693376024909604449917845389415897346570263038121301691561075224965839991156018735847497449610047108221075072533247103730424515961744557688817592989157613663082748790378983267605931586289982267035090957892130061745355695215943796916215577872763962878650925522880938885593193724267416836238701580479720327620813525272540401921695252253027115223467239207794898399899258353032859626024117596056430602896263261695167261676111827187769458860703806115575524404103740740373424193465664776062674460851322300645109761031040907883259702700629237782500469887486349913409560813855023275835512219625311708457434859985227867897637470848044521215166134711997620753237543974304655574361248312382735069027048313587165236771616366047759944312614957698919965826025978909501336155275017693050772417488420749133019607886210626343264802633475896753020185684056088863808316734890757118661812035720744779987677698284022000323474564680337001774547040353548219030257244627254412468570108891938956932815888975721991662290377248629792830211891534224947164551508437311476317995793917330035334017704544538377305426197012591049318722151232416921671474024889918472477498342060950688911605023932435192107586419653019933129140312945884694441997160296089700965751186691496253795775869581265409551827491698832836697721908296192143976642476091357956812393039999512160748125424435931261065813491510049724654196033160372175957616027566940183859217479377136413352756118868941688976236152024194061966210917579054871435096447667716339192295897442744766762217197665358494447117770944133874174106109877899919844971353211460036189525526546462931650738492732529796858744988684717198420824624985366122459408740842932078056954154050458721746821995836323138651540849370149444542763799311602644932167628783424026120584389997880474163354264761663453712870792307195640243534151515172198145714202778335784300566834928504633295743120508640773006687000662837428763364732687368711443996202588622694993242357453804966079819848547308963012029437343505360834291591141663999129367086386111256687833714240606800064441918369430823683771772638916224253073177668495936917714977623751806704581240606231408389817919794785431276529933546987123970890437809470962006461942865814462441976917813485387127227690639087012718202456131228523546625154763890661867948650209135769769532288123738105545801583628708576434025625216527164183686010817092390975217498739830847815665425070003583575151509041573965494042824816782475404445625536633189551239525179217502190189256876344672010851894821682165683381126395075821319048874727863908674394017233926899926537734693606388337868653690573162782748012984826729341092091335588793845759648463667364964501759877937879299214811415407411735954243517939372495246477399250443771614556412778777254474174984510931992001372653755488733441646011013421276459963170091985054296062369430886150951282068472316145602279555331717222112861432101453216628654694829539687778696126629399157224505517620472015738467006167005716711513719997411389726026227936355366235596064983619839676105754659089017929114767381405826276404656564460864677062040089733729956216459881480795753811844635339745818473036706917634877528598233217636789706479699080042317590666792424149418720099075974246195858279447431590206840890001623467117199602984893690772920781094373937230317998422504435178998081094528089419547462280722004150311817528705482648429587449576297530841890052332808855767250292177871322870319090751659238412864772342928784121530230797717252217185402595863882984093254155055835498180634707803720390301163738153671564827822366669375152994479200610965715305672359327428390413916767355403119616873003532513321498334353438569887648861099747356128888806408249830137160496047159596010216179855765054286153384375470401358323485657371712539392392652489902371733627244223540962295729331283536567188077694422539254843861384939050023248162922399418379602207683243905941631491383534773016605903835758066203399535922531033717838303262525675727898586454713987743407929268496505264442753554827232398225747344858972545371967335396535258226696750254654280784005275910281508097314949493246713835471199688839783000186500138256623207277903533269362162945927156791231762087267197390379769890317699155348605502646914736895255230194214525491453651186484694103316692669669252721260430017990248079469592227728252372386475225868289627915064669526588473171035656325643661590780355732221169301804187020616987049042573911981767538398014245606088554236355869743269953257067870958585508281004907217505885493370164134990750852115414508618057636611006222602323397369540242911693097862889396329053348446823072806715176784031471397948207316518172741777178688445074899427622518901749103213482236703685555118474774020444570000789598567614722845321094757584998546815199451660721013865590177735553570578909846398546378533914250659439757990622787252208557405118155747795025526846547558525110311978193836607312973202493077867371344262417649506764276950663760977522501643549079895968297438344416335658952967924211217575819070581117434372413227085346911322163433394474476034079979184459239591111160096771483428441064835078185298348548004101539022363883755134224245056460320506607148558703228442699900533623130353341242400586339050930730581677525621373186036044618595169614861623134005346300415978057196077383230323629669026622411012252359291793117425482259480585777127293327456851068703976401048998220283110312270322920527383199980500553724201175621146492179310106032715696557792423863102345951693499418499469155169505900882725406403577955007982110692278040219065612152535442652803713570906493958898704146802077394916730612998933215959814589573285373525982461970944875295393891891338958587639542683907310791989411706824092594509208938038167576113580982862479222315169939277098030202572449375361493378839106755295835055612342251773224842306682157719698259029350318233108886128846287040583032212815602171402012378819416615724196084008902894645485589080294346592076451397712835427518029198360177678075510037264201588465014253589790238107408577338449027605197380276592265018170077104621374267631635716453374028146775892537697514289114482135995028949243251420913356343089886609679548099765272739366545359556760431389014346109679413044746586590552040232468713576005284702256466256725618115161267914828047602406920635398821135594251057635228666773847606860600633700571231739259059093935670466583108606620098441394077048399958926650532232352611544029061991434270939436811200792546186736248983687245769896858688146739601865769931035527095522539104306405069156580831061805209379098772648895818094015009462820147491500233629441432066296028642044529272250669186262166070592193256613625754173556334692105094098466221834443062797017788324891975613745110582133032601486000609601614911226233860310427780055270403631106372313388590621457072453601997969375786265035823725402383115623189095209576885617811687783558706061461203407552898399890136188287029314551674406829805689442270594579975929855396731424192122477163522663668736949958355380849716550956253785575473109781734993680952172781642587979396419892269407506009472594995175616617597806843294732155980555879514198878597310318882007571957700090898939800577332168150749656187220844708713275268407428112640840585224076738243590491510237563457412967424127696094988802561593086565675029067874145038473332186769886812876264119640503971312144761636127243578143289464208345472981398067468497686462615528977309372821742367356385516041568680709388674648313355539518834115971341861228646210658776114316649967438237065666545745888872477305005118232736905815800409968904112301753296882403450147120246484374867004955231707797273475019037287112291646985312205000345964346380446055707047572433478564502313743716511549353586126517911571538002084660933726812737387071220430087391446607418915578859565722938180723849868478056995004104254345391108990058236063899549944007333295699042662929888284019948371997892851513448317312824635896873384738750863774291827743323144268328538065423981691052837644396365593546007144390686606569979392486788086210866468531569596640520520104562144878058164065137486205168166433227443796816531737784877428115047820022163774239579108563929215211670138045023209860582424431502179043128769599832195027624548430528628411779451049073775464444985765886782684945445913904130314276544686514956408677736244211776431301142247920399519419985740852566031028288759820331184070393488191671167524721597215350752971385820798379765542126273426687177224005548457581962073160743679533737022044041963836523821341665736255306313085504237739812474581649061435571387664940009890505955030150748760446601463344540958489957926971406919397060096533372694535797035840162072597544473193562927168228982070327066623011232661584640071787379699339442926968182199995841954248013063378828695377639820581239851593849946804165100224853212417945630071473338158329555947748434246611088679836987590423304475083225316477231441626341830139509156487179327666830007581862937992037161852205275647249320424240372960547793129920066456102286188163473106828245484263614391444097545838659490148439261309067023274795674712553377812112859212187993446950021516257666406466975984559039659662538054948058459388469455321313491613120261587615923363128450698311759897776083990661849051941501803805050261882974015304228241826141795778417282639628315963790068164062854649275032591277614524422989559438975310614702898000699851087828264896423119045934170757638449053500280578442666468688692492872631005897172176010698945749859383973569002790120568904041835208409132117910801857743964338029840756345483376728653732196706199288106106679291258432536011736168540140238760854436014225864020100119323609847567584811153042763052295876490685874098311767425388479866701217082614111255268975956125815018945384031167066515760432167798746656760211295764265097550289302154384557534938513821202131709237642302814319356524778483378004185594874517420016905146731458598646244332462033107591978987999770283850736559696674463870130423315031674598769370451222024976964114235125886426032785775943266576111270736705095804716486439364598361648433291946225693365056199308392134787311636681199526340678697426949543291287516320345679252868312899460879666402660057613896241056954413499155698097012269173645117097561382969042083357269703687708044940748523489812518617984011664247445117027115350345698326593216056885581261678519889543974626435841163172578834224712605296742840828070968592711369899461241046699793339732878081741149219783338740575922142981393264465031303150604903384060208490250629867051238519851451419248022612322555011502225399571539584827820171174475657594832625791939559182122457719418540579153728534969660273659287781244225373011559156012510362677766989963254713424804016418155563057137787432577898228019220599662235439574565243580131599090159236888838886177960765475927508291424649956033079745138586291270455454737793685397778399112596816722343221688642242915611432197484202082272330326711913883354813446987248582258962940477419936710620847732633042889394026039114835745295305717689152221893504129719969579223545105323042485740595812519274391677151280331485671357895406239360062839199028838399311892607307526880653993391278732783764911483021589411176793552127564604549289640535439526605172158874336501671472071413806141215408430801152106700051095295038140580600693030210122111840422422315402990072383358954847631010813452473697362902270766420746921500686145124999481664653667497703806166538722381633046258075583821590771635960463334881892103111833331258279415912124139934223878153307583798261190250632815742726906795117445626467760119610571688602865129752812639556929874413186178032475955930350177506355598853641844258725417170898641296223230574568114631228665597064874828640412029171855334701644657882947284602298966274800356861552737304311396794191130300891505072377892006436291909052615170764476711994071249191632862516851218499754008662382691205809807632007346044206099334393995119991123982639530013725478796663157561291692196155490725492147713853248463713922657457185616518540435920046073528796388861324601887484608274730261504810363243200486087170803200730791015897862074566089850673708846243435322491426396211126910152012382315457433754179879593504369914663086889239294423827813853294960015491971933980362120337315826315499025756950999071496918837114390290416935575891545905264743031846435223450142563917255725357514348172935869126202503178227193093807367538967493729370835744869666523818641773394433798514398273883109715198375543640503101195982125545418080985889805151636726245133840146469562531191312822101697403949759506798407854605388657776113711944529253509552336704389609773322760481111178156355956034749405098454469618675111629185033008762245441787014036153630675529665936985868851043043252871243538720165701926605568271423710829374524235543675296570754756225961192195846722207401613495898337804460877859977570439783468832287162916910528691306605733531954287059788152614465543668918394819324940657794747306837601114984043178279483190573922655181116622099154028793091185219382451395981004599800166538602355522351785485211216487642466591716278399277168373001784360016025233997684296700663749320664914357513259951092314467567703161284537184543365060237706685528712289273916966836520557669687098417042396864283972597569629721383691658919723064720088899965699480056481705810415073759015004931323859644884793384973737924406275975164722607584074646698585970369444058764504394436985333016417424208764257358658172771899226685060397109826400769782822938823572333281426455032095218980947332780110048262966044404430763482529322776778666052932466301308320657866166655918010642952456128574274828365677207006163852182688918433165291756890599521935988938985181589259537925013839079186229910882956760423489129212005052570390030626233338476091133136169178626696150851264322432953841860716518769494866988409089978257535356401757184863459973291417559982451702662963215770342623764052925491305216509062960769141503902505289484981707137254426721020926124689902729872730401634539902653212827091766521926193215411442403404551974031772485660167582476187965492117875894445244979878961884494396101983729358305811201190987659216437451361287992026944614585005464969412976689524292641106045088913966403568081513006709279743686234719078794433402343607119023513956784264193009093030736301525957103137304156344386287436750181703744315798934871688974196333897199049815301923130650751570576773795040940946374662779136539498207772875001657817897676089877487034580040164087636056439722799941028432772451396975392263100198380848577149029473823341438235055698760785462142714060814243387871944708455577901218688153827834485260629475039195308186176878311551978251014993044019418454781833939705479407943211886705771857151096790358410481030121787109166830906787307899502886351267894247067942622173574842058563588763544255976282420796145929349117456851511820663256795672406141777931260494297117908569928411857713747036250019259334571799844032257376210450953990908992045689567146020862432913544425572999809806081814992167773741526330281817156087400643804280657351060118769870543919737564906912561546659092787937310491898964794377325142649222530370651329633850943686693572691686093554151687710137348529513891224284406074874515597914076032440048886841244927796155977557781581888397390756217184996621583094239918939046302846164515091585760876715103662662011548315024513096498223237454117665573263791149502819401005306802648624795702562080956727484337233004854358036721051887431834719228132398036748272541120083272048375494665749004131988999212327062063518146657331766145494009346600075922170035372309655186397789930754703459109966701587774507908560963262209297321199608403435662707337430963239561312790920873928704641032109848152789101301290253189300816382168510984976037501623247744175014234186263701571456611781289387702006418855472229149083696122666328112454115739528924873306706247942715939824821822469557797130682509310414938575523126646661656635249446374659405949756415943273165864001978603394300837976057136908878881530474761087244806229362732840107641357809033719849973354282246135727051873414656953080622645804336958890654776950771241205449805622024330049624959276131381038912974424327149904358034490503368419269908883516271668823632584081685264052772885056766276264897617819635038482416656516040338185360051750561010470941937687704200695147235335986690890146505407383446126513883156661069208052432217305413803016483791594817632096120780596098572782618851629673310844088380789185070944261232526668946238978232261337676981913112699822611652300970628199289240377343761969105961838728043992586554654416268062996311183553297346809034364118163789359766610019501613185910710212220909684993297929769084030886670991184077796508186595961624830151062855981155099913069280893213059647905878105758807309713719256976723880823683785799433807105533786053138911361307595904103404803505383372068258893361042413269520059671703343644311058583671759647824056062272354608724293005258794492839789250351960604523880396827269543460854692914935220842019199250488282740529601506643014329644504768512247450375971157383256220196363808483108881923829675818976546549065017943669939250818810210501818373424229245503224838384135631079869364355279027800794415658318726379060486161737170717556047442458043189204383487539153219508211168911212713046399301674904602157536494307142294016431004849709155075228625812214501695216291749465923133957358256821974602110719191654209731373448574242937878246307802371227788294490169567728264211238358908324590784880552690167498156814198856948774824875954634671664576593424071062902530223872648801899611840423760012464906861323476310657989396263899910030446061478061042367075813517702261172485368809228749964621451325120310697203950786857674967064726542272782630786100054434615412992033083149782699149482663314001756501379990496774111523997223586257593344137660855224686673946295609105600930635678040437310919735234133525711597604780915390929028192923921618052728780989197435539375249382953873065712682088807515146833576653576999907307580144463312231965422126006733891587384260907328026326819422543051034355894830152656686921240584361834274642341855285671627077930982858392140827178471436917681637007302606214611450855394786074104374671626953061901110761299955912392055174051614930295803604975392206947097845985516992922101696488965623461292719657795319710858467348826730127722837700346429457403396591574094131967757518236866415007864006801340066722099288413407842471005373776939858182550821591042633526604151062286950171716024445383864358526184488292901842526952534707214688507754823906877902733349973097189647853079775091256028022942567185735242005245131674967659717513095485541107059641800816685543997243899547166166740185562181599186049997173976450010237607413301190960680084228477117872008987046506409863571700075153978492772869071054041125419643938153934451365166576277861022264176160430695655524198266593438184408029924395061247842461575343800669788008030746664540167322951751929174836953913602704504920439438079005547619703348554513319924149890041666291208930231022176963178483586286721484914315959813914941871020014827635274001829565470320232486171107681192982119565806829857168463378273111469407263359388403110398710969643534457749172907856770697347486269916777995157239422994617963083016455317641747812204303546593980815750507846580364331605701672459768944488701269186146222563540734421751734261202543271228037552778748021767580949497489734699972499407146669164100139625102827865801639848973304039160908518689178849830451195241638107291684145482947148201079553261284809621161410828861700745609394364504140136558187295711056345876104415073067965719746770340527720560604566264714993383189213363256374278912554072741932988168653456062579689666549611443889855613152239903526519175040485227522913625524055124185811937751989876333990077836197571340433535922711931504297978916996583852928002165177736871105520714882915233018122130332895538303267318912505991696630430021361601242467504915392516871328961537456378197947180276387668715904492151406052477269323357052382996490704370308091083377017862834224136780319821446629330735586510657134714753740964706944432531596065322644923140004300661390850580339331208054498800073419804760561726799032203796688123574140281401352763255213435888070455854226202376419598842412182322828830320874339967617390116406568686190515223864471573581474490568812510468987651219726282904880949762167909588867741180589721362984040878301496862352895441401953144609802565078399773041945664343525994373478955041446905556598300537104064968498787192119319966938295830602349632435666464447427799449799882985514134812919557994781957483389974308188434785732118743742392665544470550500285832764266706348796182646148702633212836172815068167896082439269529495334926767897199466032025539892540697806443036823965161181172534497310826155525910924584594398384037170193596381398840982916290816765813534271272862646337585923960607798159527478960852151927194396408535367823124614308961976622875309913518338274799117920199653991521611727435221444906858661164070936815734016939708813546027663478771130524619903712898083494074328849638940136843898243043117780258505491588849647902421152502498130035529517058451378660100640872272634811946366806231514629947256830903044081614759103804159933509685385802616698894378913257007919512054216702038630327537092423577597431449556907049881792872828778810086899227583945026469421182092326097420250391382821591981668275466609753366019451274688956814888230149224822016950486316083013336597739137972083478452985479574066023296307249878951687518826474506176948260696660803185118611796378587226149819133187790678811836296637255869222431371783182164852339922462365997440176341972043973022369800248578697476185386900141172934498405187386423449878409868223480716138684253342841061996465421373829779818448851237413358823140591965517042775167719790222622186776403448186665634921804329014883914359737256450225251630608292721576971636259121230217931236424361328467373264580054106893206329225035371599070189672383557257757798094434037321387048961143442494818047393321153768455946104210236998021013302390124224429672856475457586959281016604977957797044498216056629009992389954677665319101206305760415745183603178613010192810740952246276081185160404533475729811005668600698859187322261544592114886491345886177941497765718272461781617991811564717778522751927843757215726228578076009782848320710771479887700204452160618089195008980718056105655807329248368017268295160326805397449255277874527012771414755900822812336600709474647045454691541526833121354892570947540216846874216371133576935279362143615929035927868095683369976413315629905637362454581137595446187664419794200178753543791444803202124964062107047506909268742749164821086866831626063281050622545246815715786452158544921467733566156094218698729505849338551099279688492457023773093942772204816764497370260251340566952392378972818359382090274946558919929683792291819333261473574695367976305374077272838689043100894506545011418755752556033876328250635504876521806414636733381103823267572902993461046160504387593330828294507840503353823753248819417338211947636950128746290931521089469024929808412980903504144679013667481951009489717785227483741556090412624412146515926325267957464797379598819071798068904374909706355089536774817952562223931481616560096619047984816361783150727039589410677429675437337475633401503995419357942075321236781258436974402402441972361409891113114022888983953337764240537682425172434034545501883218494288263675879926152295208806395305018864154437611824951406151246260088648251099569272654830216237394086781592438832083120705797251269883510275712599667878678843261373913566045393171299066149247012528806093167109888444476763961926850454142850722569564004180037459907988023880826776983739260744349779755985272090567433430067672338954410309345083071719622842740971205907782330044625943617621659987131522224670357890268380796491854648069731899558050432332704307424920236702457590067136503315898103623683807858727514003470576473307539507223687709412305449850833235181420087690248537016842619637765525737401503612375204676848555055169811446597706402608356162538467834130635019128045476922216358575450697206895806120931399408035194299404356664190610902235229313074362782388558934110352237271284105069294750884565474043249522377891657999028906605341217896910415457888780541813100896643371541295512117760825063881144989122083230656275278145419624770839280908573900538846541216129608086843666919198727785288084221462392104005108129525832917410870669649019836215595980166524818871580308150742229412823818311450210845037014379473731732548446759096093907195403660693679607958516750489596278225379168432254906810661310189964864376233325001456108993887869860221297421596280532592525245285077453981173535729178156449970121297253684173824304934382462944441169702023339635799342474203317448744470441565706483462251986255618008117320013158049320971283063813706892106234138767045499889952947569355011270836016487982922836496274332541755838524666417405895230047151242505050575310165864573804792871811375190455405387703944050812893901286356033130357517579747520461951180504374202545773137976074223946532517554603558310440563900233221984272301856491501187197606286488929560083934707456537271527465283803496349428985396041276204567156542322597942087556071748304402847665641107578515833660868331461652989668767376388815192948995262382602315951912767253624040181585977374202813034401718310590981817810400990639251033319837799865112281603235821880937054487080882840712170959893866786236034672734806200227092389780463382922848305638821516039701108433031914255006359073292930235414374169013868539858801254579380686798399123391918651202542916048683360099279605223098979643981128739909813590535634461391591865889532798146512885520244745783700458284563769178021843652101679954327820313177037798842434763395428349763540012755590802807305535766834868679694988208470704367599002373775761098080415376025468908317829551067546834378696277293624681614760707864044031471079195513590149580318095222593218365073142990127540732774032491672720770263393685407816348916726474147727917613565503308681092037769942804059890127817339547318541273429803034498744816331868761096794988946332227578783987381491186210148659839976942746226893384625624606826306527472549609117368668949041943856483358882817878510356060695911088674419406002486317926064769680560387375437351605393796367876935603948944010739919787624317701268135786000590055074982097428330138537450951438217115616996154142990234699555408894619137153227243182788378192810902928399109355416141190701520274548020737369415243234640077457449576020474100546679615364871244082038444435506785496733982407004321070476468342303359438582883320154233069950118963413312266051832532644617896569621323551435599568411850666044346161206698109691238026822812081101207380394783204288092097884100499669512289677008992505700298230416994252266659332110280329535530096759372956628003740599337662755737095293763019672231405471497716963770372223497613528765969914020945228750693984659877211277825628221142385873198956612762669296007009647883209474607330280891898440240206491223624503240403255190838241875731492558853714603957891358479184971680482934648433314052330517816774950584515645306050145535343973206285328993441384346311967610462265694384912324831953646386537341998223413646994787614057435523569482479686297770987580358060297042977555459834798994081349020067010123801465277997690482461564985373909145312027119560064018333040052852409806418970980733895826908806439449703953341100209168407016079544158976125790517425033194271067194287052690685980032509962892934916278422690170932637761090687572037182037245688177403490971193465738413755133217826225243306203654415376047469689083184557312485527821313348811151391685881452008542268340475366837931358768562106288384020842688756955135619843416987144902181806843905177455078543634734927842722722004827639383291200151025607638833299518102221299985864097992740073314103742950072905637439264162834208264189665722508388500614644335463364619190397877835053038788635755191287191127668581242117872569044482440224147678678633736707729906169461216791652593837366100025836757738716111818032759280179929759615450840242381309052150414492684780177184976984869170468465428904594280401853813583200482322019615838530432904003817294361194959535443373676848435505776976329258506751931726212574559755726253002596511689199204573997783852305648591283218588337673881706713507420213990944640928079465523173627521444932047218865995556635500034039164049227377478689978673768269904531518065563309754218651133752968014988834360333847393578884416969896953267705549264027694583994004075011721089790877864816308413825113745859842328870456717007021294959291654265402597900751601535062679376077197619079468995372175639335306925954768347912816870586113367670006602269456751569248782363358819405552843917574684811577617602096774250751487714304504206850660946245543970445703651664908044994365617572157577463769054581052055167190519795272832010302297867668885406984606571201241915798163849321137359932388547645056509096363927452788075537844544366363207853050998249676915523872316885044737268706063364995065445904728555903003615927950710069770151636880437280842597182853652174940153450442369073075197823201458501550153916204733127657228859389106329882145959975605750928636429851553651290234336312723735069678088290923872860971924195161573125031943611188392970597229056134039204549933329817756679255233783812739111471312261999029407203246256195189532486026880805109780924075406483123805724152765174735933943902412716828165494295428771392245669354543486310847390773973851753048756764077560104558265649449936034345574265861954725428802312515438824544309398323597529821363615166104289124665829348563788271088245910263904802726683081658629508986936043551318801771820958469702290794791665223756797389541732090457555236165138186631309699128727060060634229489980659354801024448177791047600027011583647643192442078868115823647861742439688502381784450199463139482262145584361784620346338191168024101228569730763451685580528247251088054532447984499669087179619418642837879336159337919723232642685686970892726191856370264163288365162477358389847948494921409702158805691662796814214782943293803403058622912848979349685155285786245477734733432294401487543956482346088006943682645228540789478601193096992156332315224338936936756590283946412401800555075813771022150368099299469511248334155554058631538260313149081365669271606875027103804529111062018822873370990510403960300455854712832186806129464470610953360386518718819307912846974608304914672514155573358741970816433641233027714972503083839535131792310464245865474386141170827663557750581405237297845546529807862190310094548016901999181259028115246072737614644374180004365543696808137337173231571296988584849304566620456488658267655986382543745311659394337523699607885597856089039090494334309744177680950343896283593878796291615890460990768936394515712888280298665410734119687290926794228846040274079869884161962681402120421403831797472849905890141284333025443937527268127570859129136868804797664104948801271045965806022813302513025428110881790587375512516981545259483207103016141086136062067068479228890345686944892328356303535396209455865956494896567732631721408895635591384240478201116267625207899574929637663058466924874446065955038259936936032584497802378274836370304817556546460944390018019611060922916576779475841381973984755960952686993432837830605344019813780414188861396912015453380940779466454889176799078244489454401197592017056992114867944228337570422306316040789946555646609754388827534665582167763346551135961558319825720463690596922194326177634238866629862752211206813816022500266079106791683502513952392196905422179794505830600028788697437616051928111910136390636154201261525656284047288699590780279653542079863654040162531108424799985918633408774796673709311724220740854859881954175914490045086485460268763116526069619470473850183240453880977663397392043172998853224663203986665064173743024528322842065450298640577636048225097162568569586497619687186228006890284809601962884725913391711805264730246344400470243417374456054616849276057370344498965119717168967368612027745616241637566263105174422134613614593316285581898442306662415644682389890829459499204348373786294866694899275419427215289234506329491113626603392279554969980865252371882430643691204241423341218072727038625573867312257496853536389556949201272052588079839222190797207957724619388757232656926909884810446908888350096548416879342962012216296977566952837331157398387397673157591157812336814201087738738666795218143227570505642780955152128056054182978893776509187843371234775599932768141170752122338036100770734671768909439561995584373253922168093631020647616793510264139192166654485998633546341799783383676761563428298655182033589048498743953753738900070935822127537816806028145915228094945373663707838541421804794547629308693676405824953619659533672167863546158092947438862024597377185111994536121721004698322700071959416624917157386608688972015670031791478881978973110077267048858813010984569423765180280016838606337098666384200939649417842595468069931336794840938399727178071864908023341624924024979257852587022293585711630457926921958786235779699349416487611353510048592962173379214392341606726596636284201797733308556853756001031846236166686628966056334759889319478573507096304409711910201617251083210090105240644754487024125359595127640818669808298467218307079796071897074711450527042773795276406121723666179182805802706891002708654625824641975512102757734790360986204227436580610851363805412923174991074286987368274031826292788475824148993229776203207019295272215117537463260112066705692064185955945475810516968289739591994829796536589503005803513245839079984466889112105553839577382318327403173352107967600327695043519796325172743438710326014329674067369807583577773410978266401698666265100389885649179176077953923079653578693884831002300204124161181582080553626483259413768216090577399868787743858060994085034593983740200846661196741149468844383543285103335860630063018516509195630461998696114264106154328113322106230020997087971576102616405981796397720682780634192075817864992868995224623692327139240006178482501670542809500452982335431667393522088621416038219929142157686384327948053658837960342635647324016055575437076305718518132390706454079005249186502390591374098079211401187844073897534148498380403516930805237031339605882433967763842377964764266466000244685126011911257637620268902303254654224201692502465397114557464909829490064657984901943008145503860098584315462071748022702747550629084837164237481554240035861374726697538223838261198542396142730605649985478506113385300660764820829277118669512564973225377789659227444932179945319376638386661167602432917090743196519016152476040167023869032699966132441833996516248341221348153908166056658339979111677802322984716664374146939044981083517683921866017683643251234378094613072476892620235074130462039722384534526445064336164166507538469067811711793438181318053419181640388235135423281710128179855334509537952293314777744039820379101885497886300206028051464312346437150583667198670627059118198917448425365535714779321609510472365326359544653132626566650599371991073217665628395505394264518680606885928298988068795066547659752884346616884404828657504221820605331526606092353244441056745448313730774185556082669998813021171119055020574874087988977349426870918545839559867165103453924842232554240044936965736443838074780318673719420768699037856393089213775552249982926622225726006217781112424739127009677733455743234221434627715976018891479034042085494944595946984902106728591332310622435526167934679386102759376174742781730227572274589568564025093175165344354643792747656796121581614289362353400930382669036261354435787337399146658892911810072611500262676982174026731129585810264629511718375533496753221376595149760530703945714620260111341010916602604473469598924711134094898230476500758091927382843819670489721076089008612403745892332333321152772435001300839000768073751175737896962045987008029798495048827797409705405062828804612461732138601386216824532381762071504561867739321623627376668629369762660170944495818613105333442384922297100609433749335805436503661400446266300238249854327642916585981933740195636251272267937062332452742841393181981963779253219707088468616117290109720363428975203772712246139856794542624965574321403694390899432868189701197496116657467441875928381342011519932025496006057346067771029829430806391774011387903937638058409055238371632812613110098751193028265334905452004845526880408534941337533431307541049794846201514234058929356464706239844499531950665865208319478410326553391278474039551105237166252856580364402429561948896066829770597697120235360088267739130875194467258165236034255461893787076989110577210648690543808418758419825670890793730136662430798718811249580356266613404831001875480087301401765235445333514380369796941679232978895137316793289392228418148313377106843006914965719295021716721545405068881415074824875911329482334044221254563397553361668384536595285302061467845401364050346105100936023508579900520840422632518424929932247275848736639844259960509670590558675183025745253568449613238246391868628273116863257424305065366366217337163790347869299750416640507407688758064983184042895753229719686260762341852064252608695826693052060107325730865417197442771289460987662445319325360377081116006123235377080620208972384649819008390644073166083066953725247222871643156551692660852305350251995318726807250594676248413578482222855350921690695780960294430632838905421783255682261849216464090076242323264184302367634889059496861436917559661440561091788144591921941958566427309485434533375244068969491403714858237538390635666620763340886714953076252447331134343752628661243301079905355796570979282778856029938037095709902964181768451596367069737816472987417444854522381384344467596541916599304066416888191359819531199904244039271983161174585492992817472328617268036083889127792242694102084674624244326375607199431048589605180136791683878628457731698862022098795521920515069407248002028721457376392437787518568901449565999030866096459049330071169670337214134799195975618060172995626607000535231788369832341152699878531518192518847191843140477956481962986822511172498527440470800303930936348130706197653968525831174561913131665586739375547018809605050758627374919372488601589063638588456204870619391884481026125304782487721351071169678391409045571605488590671916358207468323444851309719256713712202926765711500210896942982375573811084607712006590685779240909392974750354188012030247142447849760814065641713552285221530468260764577139940889368083068875592121176396502209196872981097515894164839090980115444980700105154406293561388440517776633582071635534794705740991935531362167778953676348684093693029931032192508195273344378973730357737448372136211360674662036136042205217780354370791201655392250093629453988829986991074291385771080175626848007232174424201931542628872817730055482343502194681312013901810504689065378302177168500613010425389847233642221186997421347431532883738329220795597873509114525607203719378545832981332730425125594601258561530071274304086266927509584364191839417048556080720953892998861540276707162866596474985681673212237023483501412527369316905265355115539265152108317840474806411703499058143619920569340794360070894950121892786734133937305315703270537758687603525577125308913070782116043704926575282087568229451218853783149946475583781953756874878603866648894994303934243268071497432617577092109600299227281261827544878827304722463453990396018261003672304511645467649938827070973841826393888318608290893197154925736906039291423273440614052236329157868293182158032004018856222272053453655813703790927281236634550014650005279604509635411401936447133557634474773369521289535974211703372424406765669995762144777952776689167177757365685045095245495486807711660280235213348929326557067193327175165522861951844435287817992524524804449766908767511449414511861692659292153586096772404349298377829431630036770123610289688798195061315486806933894773483501869835617530273420534817654090107546666669903923519456806706176813237260207006834190875220715094682158554443286371348362990006609715468334632929140498274356888725383027063208715664433587094503995072135495922532300323126875750911389162680491278800295331830317712025953772815417811587649891341707926120066279464468236261550341008397569485192439047338569593449980741926201086369930128489083831180216545303432581991273547592326685339194231062939100442272599885695011390674747791793445277531501875020544044637810235554776015621671788083624515797147224746059340290173496711232913706416149508945903081805747310654031698912055558091421960786353151729892940477884918039374884580862648346288510242495313160766322111445611613470965711298868188806143490303987938217746300099333657739042276303117354850527832136678940978415531065397792381365929637392813956727020490074170976985147966062323473547349533281713341916190206404555201049055418469922915069022443863739689795187364702897148103876119217881236350837567902229178479866314936215157967817392025343668940924370693055562936701959908666930934457433673599525044324869574613940513843180800287109019186715399129269478859139354861057684399444341151222563777583447493509759214285915958259312315410314085296813438715776040317358864389033203929339870209417038039426667520249393439286689444262921292763292571352378066778893019609492168902868544085471474389471742606919431508279427644645097642794928061617410395783109150438077486492860166747853551448215598274121387164857670885434907593766537888662926915840593677672887450908237074311724447076243033390986273178852119604311413169117505909560352494291344593097937211230778517093821014417578454775470800250523143424594094962070096227262343524432564889702258776923919741878012729399145029223525869762847204100772214686010262969678517471624474872676012579273004943974881303906004466615589365481946062222969243408344922150093185754092189687068233957962561879685613736655081103078199675780687264320407629141830696474939369534028138661256040021539712021756885173092414168313369781513734117730684390537223175136756763659535253352543708060187702044419486918713347660801319036675813054348340931991342244931157725448226589722126205634505183280432018312045658977868066989479367303392711234093897764319097932886607805196993748221045939650394432866663381876468994282179546318605551610721525339173586478645574134747065110780292452257416947936282140716482110122907379605607965374635107216818347494914592780010168203323970956290289500557751862938148354921461844532031072389408485502030593844653838609559026543613585304363172805610409642474956460177414577690489043749510596818509572835649196452727125638407267403192017227059866389855411870307891707215558170649258134740717678523893894267388875017917434653999284452631987689637294130790592168134383606263936845220158364271167238477717678043657517228465763700261207183804741420652057450242777698614248592113397298160763145488909064913748062195106695168446984904569798329975585664180845831943371229592766964880753348696323719265395065275902471442803908490952990860793643128122465536414903735398797772450548269616756215618964470715087638194555178580174462325164586317668767269111122213437364103190364074637868423917640030748041343569380606187235789941355697448670979696552196220448497095880862363880922895380671633480301036152000319463712759307841971344721307356975010481021997369931300310098822107216295678356025635045904103063373944490170352949760231570319642126392966943492172482963404377923072647522190978434415334801429441183364828739656981353065924410725675098408155205486480404313701967474749057206137789760470262607649954145845942813877179694933158205105631697900681949722728930908859993748736674606645381018020285660621501887288058799262904375154040276619448592371032859512588686676793006794047716385914924184961428886595319703717312175472429872935694786965213144849494104085979146839360976370406596369275484138293098597493984843399365822798317261063461388009433805184230585560477542602484465142249924953976777140188392465600887153280923224357234071894202809908273897883309810646452544911576154646814729545590877092313722105048581004095695736805830947459823695167802206682773923171208081278275361119830505159572828828356056556443816046324707403898167974429424382581461704630297813090105302829941745940912569788066273620601759791441444264109219557924207312580748240178728452486050844392947382592581085743124131145465254046433008914773951165613993879557297550172627190058871281502422940235234478853072612418758927627546093252288043995604970016967400103976555440542228238215971896348006023791022227197695079350304975602713386055112897659110487785242972254710267862172750333048474489226822314228240478457455065205726317294237411150015696326738701237757225116798687377918233600438418023319833699174979344141166902005285122870039280281533973818636063291451151356144706086973896144646417918799812938837376792265495336682573808981625531800225441758474596028461888017144663701943032425522326818558342537896585494606581405046687817507116573214578204831268223913999024060999140616364808356739348565979644975496625181073407313331988492202626635569061518347090763260071042620198174546790759631153735689528827031511546920231266421479614440446434325778055591457764448243314875598577105632293568290196227809647843921038725230653606837434523505384758916265225666442363280987589970374783765067064047066499992053178000807461409100788422879635068280928673467810399982461192082372442074714947937093457992462056684499668005374985548730064251819448012300908367626852947518883244303510309444333242151230908365243745818216727757017117339882828370635339005618874759620585365762778593001185623792938703962753968525333753344855028913397053339590150570073133510558197846599942386986283837091972302648511455254313188364160571987668510588829197909788097868319021686142723227261391033689654815566641769800121452489090022175841066789941895522589917185420729999434078116220639380680468133146773915981770134916232738675188390366756583861886832231046267598336443848065920040034795767332305165231547685023972284669036548700252980293915871952248698927124438745769838182813918456925484990420906180699703714441642419678875231645981549403643006343438709716642662275535306966763023709583172080933015633229693587147970096547419277673912765126012578962492182869585867052695042285358625960760515731549006390433132412238856761789646333396834798834881254153516214921684729940418885251537749325412859253832700111743071527799818276696920386423261412159845131012796459257970106382592113298221907519227120108246872178623197671013042435591351760009349603068791911169681545641080925916095346749241658755952463853676304279690188831926146855258210217122425474772198380215771983516695241269185928150406217631403549381635536739909707658220235431188934379198129050291931700734847097352919620087776502620184552315450018168928428829316896856430101080444476611486095177934623951234060459953538694245272231452113065960047615692399578106609792005001054704786700904642724575831315808651654572829163486456748930719791485331187547932315858591255363070940272835359838807180828884726900757877808383443724570572715778580287331556531613108185613941601948281034384348903335566142105706567948408955405566155432192595093670223954345086925733559218707629585412191591543902424685622071911340009271613317542669931089556474625817979787840653349809316615190119501416270620193137424992736192211699429049548846551020811641936063003374058802287737714902223421073334338120183222424920705938806726456382128410097860572309834837065431795620092049154514093613343129448270772461458354834702368617214152443878518835426566608514933671813191935866605367263682078023380664983295554772018125553542312654073608296321911764816515199854826410782576182695350633011235313140825154441983138821979241555664358420191950206239830525366928873655039249403237081373652330730763915999403438358844222718410666919759466303750348545539358479668562958237867926305430645729708096742520528584750024530102681545682239237795827527750224384457044124492376986049041034991499138600753462665380004928298540230626325338157156700345228026763830627856915105477579581444505842186958767778212743382972801313351987258827441562177658601675595956578646137760244230273265528918710695798118011602816603352912145890552791909406199422562406564391683955818292177617860273876830927566014869336588957364552534553170798629019549245860592314409154374489253586886199500333780398395130866922116258030929053528547483923546374091681098384795461605004368973077806500629364259678998756285483184273966236831472141751482289242524668118895001176317543350331747020076048214776893770184021762975222704666257934791522222036997940098996948676246658693019989062123770550625105538063877865939365748227870298690379041597710439499473485412376778668864835219739790872646324698561141146518553945986598017803559378222250449117837218252693570974176855576571345243799238319528270266422562986600131643547345714780396922479467380636988820574104489986961482110093469605760203397424779416452551982485006269450615332073861648231874154659300455919577023490157917643868888685619363208078855847077936994637410781837564178054609549469070520185681425720508420764345823270655417202694453646161509227432112849774105696656272336347760709996896274378612154205987875603658539678854685882372249171001332955721038655054046835701980865686524046597255311419557401197821783878071436520504086439567180168916664172469570984597901175989084872923753563305542316431858453028423812434981224118859451427880456123247621383469759596694079239156100091479636881589007849742337519197048819292999356435549544904282283719434785560423597140398656099060127530338838401370172897820622462905862840885788813771211203842133217042765719440059495292859860141024294146698153654953484534972057786143576169479392872428770495919347910540664863333965965170254308900453787493573675889738809714518411244113829624663452780677086831131720993529856030813030313021234464585371562971120356178539146100019045739924500073223694853531826944726907701336087176720203470151803594425741471278591146190779565573568935947319830217655993887980181037524626768393059274212332142588376241242954275063341830222654191540090089050653038130060054308729380389764103997625294652085195656731922420419421576329461672442111917138010338482751958825190461381909033454839676845699744203378310275817387549516137879885682481435114036321495580136259264965578592968284623711085947019902192824762998722300718359736107315772190946620633370452605360578820218580773446413256243140930630869777808228630711595842667370044064731670137450720748314936203623997310226318254938948989522846222699192271256920014039670987648972596355891965361734259709506928595156068200726918756847220050392058830641391059915530256802904592370410794382924060860584908373757061422142438927793837101089094408110053268268672747927408813942146904969413771894634592183356930805656200173608345983752088248488577651387553153094947147225832005984977192575164766730459678712923356235896175736302632532220549368361966535800901273926713195484693069105140064515275026645958042249999709556087979559273431101917992352475406414352078899093542103658621508552355182131509971301487069973420537239698215320000101229327799671097627605807053057208714272003359614924913683884497747543868659612209184768725832309315693726854458218589768224368944020439534854660069389118370364928711349218645078123465786954524885593606761658908032603940218182671429773165628775884493493418166576974100983960232766249804708841651494265298599018082462161388476591004145840557490962666308023208939936248102537843853574157053816206013432341616802005345065969761815649145568987993799493882356806411434097073717816193459568593297041201170844976671090309084278405910644211657202694815835153611420864342311980635722302135994074350351911033092129195867619539139623114679560079702131882126134706450795368712580062097637364247098728092125085660955218419456528870661747228167753871190462419341620018093595095094849404770317517936521207393273499592676785244329209375803569392046244973154982272254663272950645809135737343673764282687443955456858343500781094472937074408852181640420158263767211713260490293340471577927043080343173094327016861431675321445734986117130824618460014628238457135645604256499165433129238307520037592591578364213909333061368409120693560236040137267852493260419126287099423950519407925024970974011065335940412507901164100425247134290280325922783989901155313602537256367061059107338600237457550440323233796225760855629872853809128208660626521262412417771873369232081556686584237446868883330034672287761222678098007124047751738663648006557140673493893831568606320200820584213392128352564395283940924504731497909748404181981361355554876614212550625666830680750951650525458948591066015419675027025875577555917527725352960439156186301532047703564009146235031021109712078006068790503405318593933957682865385936009774779418692765619383371753283434338033680039316800589321638318731849822029347785153364497160791888865295484531826253627361385131494697067576590042531892059385474291153913608247127659507013308281849099010035510085944716381669130483632518336291797155390112674915043389364740157624365084388232754108305213415386714892794612971699088450100227191233072865954188803764730957894431649307167312176574683614855094773438757947674388714680436844928883386224162871593152342716016122294423723886507764484335889753414429994059740169815796472404648645186437756673357799255487136042598490555603285913558056386626840320111667271408915173675281952327532250379537387696346507643477195658539133824652296631851766504611419129808997301988495595708404209761982299655582176620553546400805904248961146687086849102718889898951670330636013271446233833064722879985836292451249620931332454713440795524863682625067411410833396632154166823246331338754615238722496956377848068393934265391960581737351110603571236170180257913876418684024757121407036305068464657577166638421604444021693374636589828245611910957090833459599110808313629804842752986305191932175338042279895638686423586872473270168129199208662729973339726542664481978221099674687938338539872144656582849184497829925193548234038965933552421283891998874009205426544855375735258418367118137482358417390358548629727381937289764084530823766094185440458935935222256341339806846339604023096221570201170091739270336015766318118442558095790982340967047396005455550301517835482294620007931267629783741117451998164679120703660645301349997281580057136062526849098982181379620124311935964076410506172287168297234576093454910170054032110974928871358209325814930175402131254310219022067167089084452782394006747609300548482486779511613466363266885872707202387217400404447997439562872873399138709370393601736761438943288041960163264323518115249429192549323803483626887402958175689455401470884308450562212655457173843367323165705018042165224674841203176068805167624743922772555567749760237108167312269777733040868472846099046933848833534645047216789380792546579647392523291687009346880157686319440650069303230003282335675763785120248884348111538997848398842500011437465969377794481606312038246342236627955675375981967332005460276008741057604912375496899262134085565164199694896214450491956883649701165701638129587198319273970224880362640438813872150469592979118348593048034360083288089344680902806497759645230976852517868517383838308022171748811186052554036534509265414986160310656592374655841874706494818753109355819333835905836757902114398873794170850588830825883725359477194824752818845002532403526405171742274035306840545721512048572561735991017479220113026711568276659199728737391073216843006385019736810243666915807600267370056609245275576671035093369612296363457087138788925121474878130950542749514945902046677939614646760310900063188106072204805629068540040757749095462893489074116428063479711181627452853299144993799136297854287634650404414581419425054994977133092294801246658599675155701261610707026628303212930684335327159287534931540796360013908667415056252179939433271491723721124794989098814210292012241148920153492614236867075281608658906753963820680449859055822026626483636159667298731888355529588992109920238988501586347821326947223682006929568195130013795593183856453112020112346112984789251638152642077457179677359017450600039701356886845435647196937403386757120998027577865848815751314147849026443434554979445466152859207302975988229891107899301764056659817842371005263600824918488955637607087768401395409152231531694179935430653290498967415793459495275594646041922588919622194347996721964852602541958394316212327922929091730374630210670842956643545621477659825760647660554819470822466306455696440278029777389418700482823424348817534583429185507335828320485460579044967789687724984451647849083266790719111120042202958441584622767926863587222639112425595581133698742129264477486928184202184938762776603453935250689019610626778985412012026215568960634644260844613136773537900247479138368811446145577743494116220971025595970308819015876213120342534612318296363462388660513034181840570802572082412161938848228974260132926237172966461606338154697152224381630569822593029297482883922352287928230896327435145132941333724951075191485198927418804563036806670170046467870131868688715682200455508804026156728941854901840274187680373643402573607238114659884209785341656700100398385520596354084788500191136663554364745928658066874682054428235120684228325345360769291742574637496891404377613875882850444024548600671510105057661125080394633692104904150925303122851934962541209488533013431757028084908336596008139568365998478492592383783902085379827844285897405836298880989746153690192936571364759326067511607494748539748481856031388138084109229898180490694102139135219381687348656501764857739992070506304268032892225842736144132767362084970665937664478061608635161917524831141366340678878081801811586005610129989394687944407159915178942897046002298479953266092472766527153465860936746821072148367939783851638645986377905324871183471905533418204609639904228769057297792911654393146311066347334442541458015132297151869556609283399369722435401506050994849784693022265767843135732642045149511213792150081236655059905798764384729102102585452080494401662237908490113699164615012996817613298906852458872559178745509676974184057554980978455398980589005583020964189056175871005508068610058458945510581643991297339169592557902965156258416767585213334794544974005977834289026432622311538312774067629615476644742642655754181694436591087163642814766562344669394170644930015857776887025874034782705372525174772250190584884852044957954822772955022193237006070181571636450568485126470101236014070980689485328091030557776339819958345046280656583745518887414010195234265224543729685212683680836405958529836974962581293724401489825592208259196237980750487646853921202919281271860709539053680643602360219533705269620212167726672437293982347490282698337936076026348713594841011700117487392529403988729354708680519313101388848843127259128338591527877885142713447618254461148249429558008774270428219208083468615299703290433511436523660377262262523668193244931336925677442027757537679670090222908778491150926649915942200801349972896633362475212135828778667040215417913006291541907459849556235324156237499940237822557595547904747583352236443358772377439067607054680023400686611815112895952118172499786890442493475336448350770087252294041210816382435200344729719585437546930364443127444520415485138007885615244431918433240636667913332591859559518502513974116689279338859158463115342080333914734956466765530049663119871881151695510204036020946293251841742818567425238460662160306448681419520036597847296078567576873986858662353103668729856313777633088948147956657475620648146931973557808693621237506657887751836429654286157725280796009323441370316280345794787466320225965625067270978422644220409651609555590372953512489957349485775369644163700616974057467836743416597398645428951986492293223323456088974685230715835619933785978991434703615160711414904986941512046916258851897792912905297306042422367596092519148476564781905398162703056986565889927272777522882387868215668946273084890614489690590912230669050293365601680789457531020842242521025244402442107411313704118500984234442780444095040009996385202009865697956361479369238899378117777698650392224455145125926156376046468337656106810840495190430268693900987887344365465206225577616929600771832784915452259230020669132419854385710815310809785995040727961022808558388835235965433280771349142928308841542853366527778917902167328173494720086511312031583454370563251209352148334279943959240329595580115997103656728889068858918543609810080110578297727886002433160599103070109325809673717300844430205799776945885547928399715612959195218376130642394864197558067044952221274334063794989405515027226110332001111690622379082719761514299868630459349881226032338809984045035075363454397073409066764561532866766979814693421840673907213108329075288569643965933739779169416147060957396232109931314361245660168031106225544172634641061096200115407658799529080068043233097696542757650626805491334860363109352449238045620582496427977320059603113766071042995293190919674139487723896343355288773992468209235652713448045328413027580206065509293638422701309125298792193462954652193032982420888011379736075765745434404188295330233477296199479416817035525995631198392911956366862779745484046633534532384800815541998068943188428745214240551757221460167895244409594009693002587810926967026717166689779649480277225697652147636982593418887891128160627297889378203642700459875327110662528040627142727279494998761620625884718926720515465954572939307244267129578641780639472865513308848512918081968874164127321197619236991774949719568753492336016116187352660218513021503731621156776371699791218975088382226402651938718612073757244914150132366086063841481856103779511898372956277815303387168166889744342886687742300855810529398558071859748075511620661866081508108651844555115350302854833105139852010112299369940875722769220736475999890051076079110467981597209797234872461924974033234381119708597683192042980137964679241529764620128870928167727143761704774448930402931023094463291729369824496237013700564082853677710186650371626045551964264444130736125914144574092718776102712525956666365774123858189422634490344010235034726382990361819388018138419671920764049866515699704208275272356464800744447704952433598505378675323486235151166568145616392053809228347201174110427572470577504365708105952272387331075320425516516757737183846306130494614570072118526998578084819232581656008995697193602488266192916461495046351339199964403097573648521886892377691414445099181519264101531192377183201862412100206713948507232093049234238368490390265300048989744052368134268952309070001383412211741683616044205216379190010329133822431229813669689253348599867666004570495755505267139268866995196755406165603949687395861924178700591506296467373185175028207689975181858161709492942047442188872444838118468052907600788892144889537061352146558962321307839023105399898010469882546293041239656903826716437778706950892089370675749719987809868336635010017222517718418094602477084361553371141443253937909234340582585466787568531455220587528531130028903244064347380906322813563641395290732823756356545794576535701024765798862613510881730050129658328309054461906684176735809374982415178884334131594018640530342356104788332151997406698557816422948150918508964433780308497108208707990688448485266242503447193377113324944317906975382436838209323283822829657130331537532313767041694831831970265786945252151997279291692029785879964102036244801076994336257817408755226170634501839305191345358407747419009467059937660138844268341763870405346419118220223978288765628717643260641483797565323691060830130872951433119585351136453131520489122213549906584138701507428613148885408644859509292155585877903867690540227271284718736743755947809284937009443904658485969202993876669224471611295109106996802381806989153313545387434930068937877446405518463673038055225020337493745403515678184690562915014923518648847329018915726960177858167832193270062286281504631447241760589752825555358276062913955132256223818956216932779798406204546194928102766655986859408321234716792417010989013769974151781989555062679965806927043465625251425112340998525296467686301137188043987261525625498726975467539105919801364493833639255324806505703199783227276162899187970421978839518714713205500045427603276418218299280457630554833960181380897681482491940481108381191994178589925747661057020525801120334624139920083095828036381241830499023206231573619362148597512593039298203219341565304013378312431920869107543361381097027285168987762108570733151573402534613293653749139185146835552997697213384100501220972442241270101208787135069673075340875867629147720152288972913434996667951142936199503330016901825555550705277493846078971266212729630187719091431722826013213948368096783589046697146394034154899191233528248144679853187103150580718930608914191530345557551560096062468523121876421861541157963260419942614341845212192076591826988305412607562420868417820527834214654244047877254905693348509717679627528654401089152021085616051027063359256641391559481591625131168726373308867041155010997983878053406604689699669527323448615573553587802224414774290168985278607880944526675857709627840686840894591888522547919306734736501664605610276386900125521595148588910464984037121759223605897659860547876101259515145524473380324708604003393288347706471482776414231959826246189970452419005537560359122699382926855967021916498948193447863682617603288537199237471300132227470452396379771057714237763311014472433205239448046192286910171036871689678456547593533350241730061661340655988478918708956283487866657747312969950621146585436443377931511954799136424419820589496790557484513846556692848541456442732335336336342489121270344992929685269406608377068868953010104945409735717859008543712841759322922519160533609646756446727443457453226061714398873545984733659440624312311575321489115104312016109073450742523599015026091746525504805031552648792891304423626281169852760630164344734036607862782673925313029927997796202151530438282586395110197201134782346742265900575786530514176356230885202746394380250002894252897476768954792556717468443146741413431632982297607984003726282246885503386232410918543191524301664539090478878018304842131921124257814620904312843922719993300621244767795507146358823828149550892132142715752030266566657701956789162556205466022339260084563251366903621329857331609883160728560333689297456860745078795699506491397763581143489225913512263744269125664922051170269176657878027451818441378544808412450914807263484409527474448645037781926655300172255446998286164539271700073682563683744183093286450187981842099004255125002857693522534140837126124268496913914865727362923153034921920504093713692492073343598098819172562806585843827116953761459006498655344228381970517145950788563921229542316964219456130706764169089345630546832748089485688740983078962182648451123856173172903740082307133650219889845558968353006454514521160182288282253336573711876496389330249381623257855982964629253152210515211961947737131109754658479573171631652945954272904232620481457183591149160611969554418739384279584573445170943330038053606912875496017973681485328048377688137735026288154949142737906036054236315616874139568231755355408072897688373812516559567012968018636619216177655473708804544094911664756484645192064725423809036811348760355311678214098061257079874180487403500664439494726157609832937341527129327707455038676388208081455240919996684146674564468006762211210344587546388930695080072258092209292869384344783211984439809790937396119007326280440855839884000643066196129208098110531146093286512976339542781541982735934025242673045224564801115350059534119671414550521380810112319688597146542136569276499194154314474879000337812750151012191157536665991113664099089296820473242815469690626821645312015614404303128614078053723269721113224272094108152262729174476002144956635391316570354345072175917500556398705025303400892890507552186542327681823187177602866582716610853913037005976246685571977267642234994741815620437255236547900801285692790163046330543299379976222019158064103681759590254805874744680674281343836378227793054895023864147101405370346039795132134279277199579795177784629837008066135879159137770209627897265622620926383626520441031978272001896126959811203543054411574956081130281365033364802990292678865006971824006803435427407830458720009689783437992595338765029332435891036291319383911167504121474587879383548528011721873904718547764934374218665174092350676198173673616842816178820967290093572850059344321779261665119468541468880944862469927067266113167664042486049882947157701585782279860744653167364923471071360862668438045031228073465055794566400969905299625519027784691103835232271254762940151690619779251068640050089503817745015521756008637196555016808958960342503784863323902946928576076458992335699672058141459480269107544659577265674658367257137966094938123499162148532884440001974054493243495346817904520845019387613650377260822734971716241240649939008097081764907232490179674392627230083988312979466595434050951589315218580598776777847206748283462550092610026340291358477984609572109765177841377048145046512803897024303518528324765114118686155548220866126470017021963289049603801149457450490954841646911765754996289089817900410516914011522979106175030700005844524230338160166783498745472148972935956700674962849870697154027238972369288229471179681400562423381168227397746813087721299477331370496052006601404121419452016379802338974206163092345406325752230704357961621935910710599871033799717461454737185713967070584791075440671027660985464958636923110581958566026277777819129941240523056842772468875843711504528188954862283947410101474579042023235638111745633271502378796222763933976527200508493933844418691642149235571371771402380648221866238309048224958690800019061998603066531958512612038458631033599540120545909160236351643301067530381942895961488463631117379045647666747902229216437941330584188222183007349718488510011872766021321383592276388367977633754644032443008586322734288259524403993108415762815300911246839862431173244728253920803030273802113892656951366503293014131258346777024738111087352080593932408171115024589371439231755985362810299611220331298934500586161573554752978700742886805523196986339919699012696641919631014628326443086067730872346887386066150400865276523765151012170983452966662816505780449096652540323531885624363363438376146394129356287847736545653875083024211576843285014698644973388080532162939400378292327532438684446606684218322358188115754668604610908783439068836826083814760154908933668805942956408939290007960565963749626281305778275155930606889935048105124296830853660240914771376553721065193961880439824520319558209594321670335313190827551672412981821950055778137948237316567182614729540967889645835702579032933551578658371813463386257102008879992241713852881984486386455242077469550905154764164279501196163070466207571769976642436004363995842425386988743662061063384935621753203448429142994346463617784345453921587700747708393725928602605321386487513796777610969261908017209504283738202639847933455334552217367933377920910157153133635485804797794542138728329881522034167543831361682859646545800354138464777891546515798166253270315366618047435949898475422206683149637151926160768179981021891574014967175896528240592150959184895501047012031961309399592118585036044773334651654082608856148489421229643192371333321519228135357263621468840486251211252254165989361555223675700353465073458704175899029686142142273790249510026622348210035620913881756855412089838205377813510843307917309203766195586258853662477511660285327103168657692176182160362066772190491872749771824393629422549993900193428753037996575676451495419052402795220570374620687251266740916433295375985111590634410874701185710862295281939740641272354570550694676046868780444689290364679986386395149618869836588606955366203301972604268015768722568907177963319729003644547272852446536939636265206510726431387549911837189620099271500328540821608501387245453980571552695240601602285841575635851441305042184689004323966104560487158835723403566439835233767773257214685324898673503905722181973147230444780401817004600875219649077287790123610155114067838110008965618595474502787029987753636578538958092796908509852077427989801095450595232124836429915008855836983896321344883679615077045975257231849424407998850108544174323979997038702349732662738188241201889169055301168838018315211548859056140638764093542650489118332353704651223478397031135257706826651093448544786613776434798418333507843594959297562095134212801184749871141749805155123656532873445408743856589973260461861950476442129653721961501130327073632431145388060325731130023598695717767611724895746655319129475736007978490745093470369774541388269184545963629883090863947217086144591601299788548461627291647467503578769797507625062265878454735306897149348558531114346010119966745975898111453231810941432779288524849378210255086852204720135678794749626094537120258324352047466151780562210466186905694009968845890983107165172427669615444493013606641054544365170014133685132642029551884656122058932034426773866986613967138262721748423980812344489887121688514301368155136708682849573711171518497871533011818128011483543987442952211789290146698285224260243804159282872008835846028232484350105853618959969979945832909967711611171116633925643119738022305315776127805734730151945170484748990003438326470545977207405553519499637509655047398185084858119515875108630351163598208442817265254467525352075694127690481180861827640267091555979209749500755086785223195057463573937100618383746331364861870774023090192294412566490343764407789863621634819082293299127621005276955698367468865200858974741976275398555340588364093399003404358635840452202140105000840528105102383351589649935697767002417299918304327282593853771369745521261014566770635707999973297526007427440394315021749364672059713296350577746214723317669187574927171039597518876186837626702395307663315204018776468946873040884153023549489794127464104669682290739612648950051651988930900817743039873703226030415924374803969751507185175353762364596346393049850853614490834859787693747754536150009777858230281098401191370241167842709479396771766216136847860637997190755195450155398265855080207607232021370106603395530611283080823015171527600367014142657263870141784426410317629239089720046510784307131187476487680635653469938866371758745729845790577273018454917422190120965634957512405543475366432843548617606039920215477386077742493724522335409528830177791477618919380227244432410476899947197022578778236885590566852843813547617651011707438117138057559303395477696825496550234662656744394769410325813269253210727362185916159144077240481037570560180593390207121767586823470695625913129398253788009253339278102601658808803916750438161083956157941732486012618719534092749120531470953524398699259459451209734854895175164081279264081441086868908596723944242971238294734058909851744317859085798199300697679155923950080448286912756550600947816720784193698908627855030305923203099145891909157316039306565293140375637608476896973741524741632341616960972880659964779371976648236697654301591504782950147015307805444732979124388091889449994313017234471026007951246362633516632854150122737848178552935244573129799110749989872621067177089688665075652732341280928546127935211605076830525798602257176299268880256787326985790942430576732620812641042906628697778100418747693000324891780102771313018834775247378458993069317113185138100000971260162366187184961682771911801682438529461576463540136875549567571265896704028795850138265919321355878832259833086185876436752925171925367313694728997345675597577713061094895998108487565026483186598056828839822361936874829664119683122079125092940526716234287309458158678230939502605300251862359723807582627483366939073320919811629064392779134232103456063360664908270716264634065475590716342755336444336547851630086114821331045940712573765978275574148113346875318778137290391292588937580496123773343737087788289367763715969340963353132331554721426453061553769014515998923094054591037828363896827894352818795753196535886512080539364363343717568125763660659981526920653528812817687466929352636782457638420889648130356176685105055978715567957455048693795286391127361344073110383924817700918469340506650432884278191789016068957833641116615600044503411865816832464182809393346791918308997657141084193607248747485376248295972476062821456055469627260852884362770903633014782545907718311237568972793484996018291750227804254161058934805935762341902571101047431508793142144921867611985576717221063920453738409095793780507416235276028649468254496096961156470173533662574438370535433396379843129372297110400349968790083459016708627475348192828763060713503563373919764886461796005888800080022237159633968943550263291193524414950770344146121668387186235881622076531756378825351763469292451900768351299681353873646899061693079058048067462854334910427848024975822739911436831990478577132184939518623224292980358424486612903414001045396808433767547755020328589156324112654544973078067921117415202694779861282427110299059251223801895607338852685760426715501210657556995012740976884128131039882352987536005693331801416700095086290236463829457183016751274043360220604244333015546824163285886222013890599284125363841808855098159436474605907366113872550342218998712324120322991274177097152918392892943356812749511372414669272011982675341261028675180018378594354307552508036742911918589318196569978124090858222496834130237144148460565380818662072184271076433935802698264431452068672756289390726259902327134863578494630439990876238506975861453072647986090243765240574330734905854353481361294728765527515947031069415110136773563813648428406804977492642470249926727672100800078493639291374026946379886214082213271489979925486495603257625893630124049940275602670250324394924091133639304355280850646205996007071215350452955616867695298074061081970372097683608337733271273111705157084838590894429166150121823817558242556392434809181139634489859342482197130223388387354896296326487707459693184597662003671344532293597500862068696588717539733047165368365339576077699677162047111550675458104066113947878584245537780018965986635455318359191754633684063654115704811478564026863868916395850518552172250091246421290790785763278024719896570321764715953607339089744712730004808601116601999215723490652899247863359006645748444619889598288672846441017044550629829503422150221623620397984933817691880763110512280871252611907131178118645745376863377447535837712829382782305199536446972984162902913869954282237952493602168151139171208291885806211777059399107522999800411775823259678063916360270756053028010462163580367717541186980827794380285587613155728227163491663659324323518741084989103923097262677342118144895960585996200478728658691413772448411089401860692787469944153245630108361137494805128517634837467511843367488980272768312485181686142244478828847542611730060932192729325521087135816972224449424347626739373177832536154921419277938136910582324564394231554275835700953811547630193882152804152773919532599992222486592831813920161179778209620467064875312550538246744483123155833510209909444511881346648402414712911509513404344106770443666827903903531392752133748904162083817701224873935436751472503895655243430026446396146567013614995996079234667549058108206570221309374913526312287817481503762421218247599630326405756748935150734988184268184619910814218569234326414398231196978888716639979601639803318763343584362540282149092050735522103291685984519859111392896403966858199512594884654618887435372948721676143121894123361756866198684817735128258010873112031222064459607970938432114746264350103044367228416654934733371693752127626867003514575794412644315274094728238568456886701416695135525027110212783254856208075565461510228768146171179099439340822453512090503429785287880803334825212175350896446120834456215486480892815319478955091149018050235767708179752579649911417207386352754274689219595014004905337442179970181287129555951376717415526749570798915217180214464152008720582005646402029887899983334744611878510273886825007139835544220975583117399396668140696236887837067339783490849737901930786078286695803731595025868380880176632382346625354012598964495640859602669732805590618169758027351737848689063475779902130929441239272025373715555638774828576966719189548293684640246507795001399818356981731203135916472466779176361864839037600780976953583564541983857140431146822339876160328233824772104779775802063707684234007995034145011480591687165278163325097842635353821360577586146618580054493643911987339671619049695635319295358388881151378051432335155120359399368085652744486118927092724623765044266372950030190605264625593729730021120292531948204197386221294558684385620128557192668073694347896135195679455854663721506998326215726240951568307959977899191310960965681480066802663965078875892660695231461176801986023443511976075985759377981946572686824531534421414154718582195663291642360065174577836625272644398875947281570977412970181858754690207846049558640159156910477536385249590773385420092077569803164912362907347291795918008791159366362483540674778373235058840300639487937437110033884214603283666651581552137745144231124709386779403436650643306473681035146189412976300287363343061998179199012526964715145326348786338610327842029276081687490676048196708186334417028366094130588055175209534367971343800309340202550391682770955555813646725223757669473217115181203319713814401101802328688863207411968607718806515353818923457561442614237867291322138513638313662199053994333354988529192753648338485349208507645405367588614632003646206560292521376518841502431324791947255673258861566830698753334371007080584162794664512135791798431306275453912193592765695391945433020878975491367666752808645089257848746515842110046248865555054776878179373286955443203643146894693750480780524743114314695282249680928588442773482127296273024468392503945872714130156980760300195004751643395273846475815757799483692958294026674058813114625376647769249162085460600549842309187679952458042463998112722228088229326942271078376068350358602634370657106684977488424225558123401089532963002210594380633338904711084920115189666612672297055622989378018968469001778016844675893066902888742733837230236261152587922590834068950722705849429938505518053745755068418105555244211457701904283579539053688544383018395853914756201367810424860589314041312212738982247217387308209497534376912168098683598382097031464995208475954641579657138399529636036334127106701617702381119082952515983708098476406705346566957870396781056327507132736217881946253842566516344238822132660434578210958496253550176794248498691487530510390265319637350852336216178202405647549713380132100189433964776943352413834264978960171818527791805233402869808856881487022732537324796835158685295155966075112696837371451031430947277124482352035378207747673000291058933731834838082404880265329651591739950375516527192701184740063292615586511721866499801289773492747420135963344681627123731116618493239050143306538874755474829888669874461029922189118350454035098776376194301638780601651137622216570578340818687412466715627706930660550840175292654121221545060796165500360858344253181960458772455190972095210993870352856771413088569158235400236215554812908124114454053235658914558783533487547038707719571027343037115358808176371251105047377804259000777692770560788640599049580240891915336370308697502088323376046841469733942549742686968733923298781974934762543874997676910835541611415340498343969284489831266944733783775441497079818981095135895024325800900368571670839244996350347353088269267409850749073448628516144921790617114833801498648119248309993976903102130529961180877988998872225355786111543195427725112806028569370384873331955882436166134807865664039666528329681899532045764979095895822584149065871938053548484421769973924671975065789956561517984057426455458340142500397251287888690547281334977117853278928524039915266297686505189101623179416452453138755631185929002364475602313611624226327947655921898637163233011165620220815433257825419522036026488870979699005437249862659613159546127967236437406126694435399716316951425655868297677105372977823719792741949887173920407896081365763497119841354750473590997287718901114095345509822125809831847410528429214480423857324606385628797257753280158696554388554841357748080278781047852188587354065950748581696480394108520193083886865747971983507465808625211651885674198641906493201635331789193387297863682636421856494348559075224615634893560198402896902153022510774830814852455952776752787538877606001999610518385074571539326493867526569997542514024450760771316387615826771996462880578508651494079882472878505685887518948308194374255988439309151987864574698095872865821979008818349498609322519866054186996948943494598061786566947101069398972712051647756100043271189318554176069503419310763773810384114876269872420782609088375275208432050034995633713651482616776032562209647012751751710973227650336489386294351845105637328008007641886067197023382253918336574602772636130936671257073735148255027465603492537526656944356683197340942819920289893699428400012465108259079970482976468811374001386831522134685025690416104027485539256358740885742480165683331408744481665448396935464772495365033152576995195017437808621540587027679614593240806566913880639558646112480069703056776397937709024386769673192902649527153537944157565085488241820014910026906796226783015619734807173869102650779532037331116400095810177278177016401768818188814585140722556539798375569915916150959391291286561385180475505888584271211810373461075685736258303420477483663831422756609084125928061813377414082231168951520289925164450962746237768010437168793376227962072936367939028845159151526157258978580607900245960531968099059383218966480695132859694029856731673764254659818856683021539463528470331861557441445907444084267645986707679307056440011421452199705310918487466311800311277114745221824576818769288247158360047432399345547521908612885804583499900172016029031859559153039232833361559340924355837370525453442730840758851925601673921902400719957506353395417877483328001443906024033165036090484870880979705299377512487168271060054154398320954097756212830882112388517160547779942701847973279347369180360681915604648157447309123960723670152160486543905631973517643186090366131260849245579192545244602413458648726306551481356781403255064179915175481796813880424655519948823412058313243165425262024488004594490152193938077830827651233182341031360482748023357405830477325814091666621949103948687806413713729322784010122775789745894720545181732723138697497723714462350368298573152054285088342272826687861722273534833607550121433333361603548540362127858498766254814527945027419733103275715693424881098550080543996528497619541894872093526307633057116610777035650212897593749300715969195908439237535881978583845367289776867650023779953881303198241732977416798382985344157252515990385446084458612529230844374799081307169543646286871071728640014428861486534176572072828792681120965903562488882009520636876359139362805490480589718914635992084040550068471533305833338517068370622789355031814912402700660396595191797378773363068884214895067542261037863698711623336644237870385032741379826178567185921575189404492020868356907081871137362495336403282910238162891250475429254104362352527899983015777738059115498756280798389162962700136111111537816391882257615150164512148951472475269409533886368979948713442427685794101535200036747609367164171022896336235706673925986057007595194284960678780500912334396927644201309524948826507130424224600355337110315443468181216916726756987187062410992087415993056726260369959056507687831228272039866696032389378567156084031636699231146232109989383735721092163909990683984492498491239406912888725621900724850973009872489725056284118521791794918880424360572570213585432910002740345198248403751761349077906749308890714228664081803032437487887119974071116755948733207359089722283587811157417437644137689001954355228045885308494232934198051143718410696744158468055231637492096428474390268355324248300950484140515235927587626207656169736830972918347217467761534258369146690948033178023523149652935114807588695370623604349258836907951978580540756143907739597789773653085045593680477076163232198578579134662348954423658778794336827716246849879509965468665107228389446389155405428951845512945832339220108522191117908113390910324768123392651755274788211749380299064016091204420958534652048423350105532708916470512977976781337124539897888383758463558779380133911537736478984767725870436018655180978606189359752687314837765864083380299891985723362941645483032171166227514959381127692066519506373844384189153622287081894231060660374421091507651281146693248397016875457298434981353537855456453266144667239863660797409214870060883375424466512606849741707277431341840256447836454254626100682913605775716503603530540985332263868432860393139676785129263088357594764470842704677757214970710130955746538537884704573279840273156794055018447309905120014188854159806245743662010926147418138643385216125985688971360667855629225095948583125790843348564880705720528559943414738668873040162476079345813867940513528333993642524151748050231878993638891928888109395115868637646833815981820905078041950530317912855637165870755706087185092391326345343499521185107240598178748886749438828328290068783972906274516873186525322600466191760804096231545727362890121962398195290268487600069142521415842311004871396025500883360474513514430786357628659419687889733984534033377321619900383694342380409307663518634739219856785003957839466605258872022471461810692866039588961134114615252509196120172405570850928863851158457216745829948263887247448653733205588445460732368279034622602056613532347488322430914804455237139152471358493057123325618759495761955635618555840813639262899437253598824621638188231768922585728966674667725434489565289025521345384542191988189232254562669975535097323655772351811837939965170105580839597269425878695098267957821688012420781799793004274711176780207459005630106654243604759807698429232642595695259784708304657101631391614290764499171548012654440544692431999665921044230768659870394050155482580283638143463576021069189182869758182341090906282557945589297958269946656448371159615793860931255399222892723411226272689661218361958713655857345152468580519666692195687547462766085310379945355273952850878842071803582317821667702369316210433836756686274169393725749588531405404342609706497538269212292030393524236547728174701864820323808121739517540534971816032253932484961104181825058550665837282357974877093791011396715862801188455960602517581099848438659360675431535118967313770507829966899646230040654201431997934710551106554812049801081481208382941660451395059888017566546543265453971472818283778628890652162763825902969682812593717568580620672355298898139587272874328803622670991912984514991971789612585502166705153100998720469897849905647560699313762571133804946385879424289015848657991283443688849987114644061728597827909506694524696343723563471430313714764415161793031625518115213848740944169521890678861244692066983729138994224821434389775531774847029147711058654461630384734783870909390270328163662824556409532996123885608653685462665825142483202916504589106616067211865501995692056766365354447266840027299047785544014850936889966573336111760179366764761587548663285862940594947120631679382734379650170081600494065370451496808994941190660727982193056055223813102356571222194914182485395355415940128648372524395880762932806336603988326717382322663565303117653144596441820414419649832214025634558483779743814674801070377674065440940797099234404717910421196299511389614241753417262472046910599148322510425666636752625721184220754772223883053192024438772525089997941212459873469299317381587559645839012609210231045659915515785855455682115657695544766908443161518952788604879480773885399809540856835467580005959226198616223481288222402782602553383721529282828114931703040751644561520048524639093043901444500934023247520000306768815327344165197453145336278220859845053145187609410703579721332654998339916559687404633966504444443020655725329770024056976178615436497590482238185088037475829529933998562484352356552616074588078873382003347784199933340635406681139904979859924322645441198156796697320387550884090832923266232170470072248311981881204300477534829331585563895940122442019917232186919288336306500227197918880298501340558425732663678995974955924983416421481194951732053298911853193039364243730770122195705978721922974597805588242636412099707466666705993024785208148602080812686220354348809901316119809447484573889454751628826134876474971912545618495585311673740880257480008440850652062073407790900347498224568069818912078187238132727142306468433092436696990704139855002973251819941456875614171259015277757230534122098888250869731045925360703176326720957660417640209184583066218587500252784589502489464257823863404977025951957856504915741883481244191206903863769717366807430094102338194980341442441124093559380495466542470184114544067588507804063191797267330730110984082203391182223138984081029232798901167667509316585889665421053188471175114744130577009487314362774154902030849925993625975619635881804634899920424991866731757761501303542374774305214289550555537804108129605191954362995364337758020126299451482313728184264472023140456326965333486117301262659343500644241714026263336468467792138966460735313363961945830622759964997593859242044938884072422760154104418626758090955650702433956054282338222261889224768504050464784113511967766984178158152170395873824263905892591159696202365504765087667706429885577141118957405755506226526671534759255743554160647545677171994058068529384153343250375749419224204937696673788637302707138513241533245597937618550606362310936611155054397912409521477407206323188951688611688722448272070751863339640679640797429335678912216460915898314586750926508044894811636744899253275149875404122741119214034444587900772923296649232615778310904551702599646189010388755620477866888797594772768126263967983324577108959766538836390936490892622877398403383132583522078545650952200835379165417127009248973098674093525905689005353592032464575908451377174922028409444110923003178900822643796466839398284041313851591586468512268616754840829792060708144582667960104917462330720206597114531279901936450969890295520433896365594112640303071269318838360738085345564990635084469143967602172696197506130854653032789082813971877031546077728396703547029465273019978344462522226168389453776157942903416147088847456816332528128181954978384737299723119374059756443405445869507285019102667065670735678901327045869629522274911925334488931206971477772952453034081663135661990861651311601150331517430035326621716476649480832677858273000611283962628111219743853405839865758457683124170602653345452099532657350241863690783576174654739625921086421847696834414372645263350658552080184572064621099335352287546083805898956046205348289380713518871216173600014926365150544352970010506784388095990847103278411180284514509579430061249333409715234473306630502499341262707476877984945848655668733303558903588323964512845008759299004993501762912652073213950648417866781897864180510659724525522647128147425818485723039290599805702546090481507887637352150208067196370997746602599742505421311402554177629199911216097229553314699673477160201045795902290555421366764638625756027207092219051511991346555642689855109181069419155365495119018092920638972566350676473026667094468413863942179199157442879263238122395185954783833583290852940187055395510822871786421527242856538304340917327082353025173091304880701826204392266504866914870285717848429095264600601517575920151485427370901659172283954424324734720652426091388994964192926905015802067937632856441599879028456524453839897287915927598457428093431306875804327151658147607945632574920110248707381646625681963831080179957034277456894744393651529244133630606869701001273406189118965016941119245520858972579509057974972673902185711974331623071124963667517573929640417501098822961684635825901590681578576150746985396251537631701658849178854530137403082770983673029285129819682357500419164744169835963457262149111685599815363240902637034830038547712511690381033659620785937083560604268748570690446095457161989833074239178661238482783556091285448141826926371789843928066832975614530248804948189804546457820672099272060432505565100187353876159171215807887381478248395552986458854137530734108464565450050638755407024986468130227669679885254642602642268816576645946087650163852673641263015142260364161163185453590160613554476175189852858634983767141152907057871817525420020345922518476294018750714940304722290323406652628287278431941027624993961469984882316043020402859347044568033313341440618819614889874172141524162214706117794406466618885568725740495891708862673495142421773964375089038909590091633391974814232239322461766016139619167955248739236721127659005348932521906184866401400634203770552468917367960238128248384198035285007025292886805671290292662568489636377519410045171856510437328089760643017478274776904994567531394380373298022505322311660709975719436067639797471668047879626678507580806961424144475939198902657494134533556744637342674204499917145212997648412293586585625200227978269324696746480776657944562144203620604334071098138748616339123784844162409654666772559201139764463934370116773907432061618058584577233559738359045016553091735839572465705449840235173383788965556970737793168481137576368718462100182163364047658657975450943121363403926284730202865864062893297895731377628145238513809587810919546084251335933311713521142846396010663409774999229852192208171244306768316150001660063388794204712860652030471275413062387718384651497306210394343704966833493418716166143471633107391817659207042624631908416333063015233275251192285549231912825652658234623502588863689830931549525276775362113860241855328004153562288718003214692127787477253146844157148261027925716612241342469342710578613218866830953803168042502036465373111710844121098811728828081772990507263427097775573234948804569081102529734773793493310363265502021281192407200939505588550353382619080187206855842642126415203450551797250917677789996637137401925162864053843527173825672473243141381274484522238980941056918003010782681394424568939789932017940038045803198900746783705942231200209574356755451470112331526269008635850517037851384345225158169466418469491991619138564949333701037475741223817591472461949311677862320513246715875628538850123290871995692077412247241851599655936742198045088963666388137319880950153481946773796344269678789950550701614687496463412147522649225340642793462494523926260004069950420414472294213599809144240534720532483458056570179208442072865297711115265897551707140134960949728969243839220878335566429066412499582306992704382419492862930566081673706881523797989628250819497766461066399911047007000561140389991036524979609695933895692785753301509013684148543082359311883118241793482465419852152284973968262346076286280224848995645074680181070891691539805722208709600821663637733198349987864730021080163662357223425945880545957955084513876676600268097352419259279801308875865235565371685061736016856868600154883326116371784540869476291272527098286385025579586066046202632174643000016956760963671449961464891836259565864206496926602589595144200685189908106333526536136741691702865028096645537884656172055730890672575338007991594332261328529854723543807398449949509151672034022795287703192336171097657019372714115702307935267995463656480966355815801136129683773592450013936690650730483105015890433106566158672962924403464079590785279214698538350608206113383739360319435119952748823992830846181258479442140965175298267185874149314604402934886813754914873940614056819587543466708565889113592301515758596021693514573272586908406604988307703404372075426014840460010402789556881956076398565661920414346090511203494129746752597116398519830246739473545625023612448806133331092738400626530160756093119196551962206677242672990128391312052196252661462320472373190586114051560561896214978545055972685153267192585917128435976252754098202818252966502060276186918574886132687966655174679695830638665824760082613037061847390971875154060299427325138965325707701338065949534806127301696592292776825630173424725460232332023071160737138543721498126308514285725239486019206047630467918443599032371666530514715489476362953234100467764009071225417581637980326247376588605717532753737911402681213617412212029327070630678837393835110731077187754975581081398769937238986023062788683047441255818696307682633007675259106121421328960065268523754432334417034353817011361773491229626543112681592691189083287802713473080936153402310573726436083733624606907371796321139147790974015150921318012110856015111467403038524738389920587897304647343808710770979727420808142170360685665210142170282921495301313830339595996780274914917777473187131355833327057582929090124029041493353924554165551021966092188341393007285016183960679873768995433461554965640154297671322299183430870589444329608985478295679535483896161702381014426726083589605485794015068975405244351960827478421283751151149509651886311526114802494136791077555561547735743920803748174095811509901016892541681262044708389540143385649900129346715786101982102039977479876196285952710454486009912277255238601431178898163570408802275962248605130722185418607843127540475180312799592939704314258901539400738622623246673944407038559944143365774176049593015045635610024126102462785115602414359578587342411528922803696334881914589301279679060548622213607716550342651708247419844337108798473199598009046770113698979411546367359527281865903516795819620828590085333516730401082360183747080247852245456869282833338958263653439401426055925010850627915414755134652788343098615014331067197815120770109309643837595097597480456869431983783988974824944807527765821108058283139573726547327693910511466501080191941789865964044079337177847569117448882290295161377150843086991009542604192946492865875632037824979524041326419996174702661974371966934063490895050981055364314593692167154760119423649640492999249177949197874157818564465131136106898163012196439967515602871631797560588264843075776995424700057813520485861535709299550264701589724741778821072098905482113662148556000219722005699922666648475567848515721503772823883945797779813102324720987573435449465098448267880337175226180148534175028417978607437295620809087669788907421689686051146592912246188040780649943793253187272742420905234711749314755539304054112986296970045598093155792038504346702403192359554380140785963124678919136427591501453916336416230403421808923538951194587160696816436127368875403529797416246148150991170166002775945627951833038427807975687039602634436195818414157060942611490311004388390439342801961572047100019776161503812162215927848806609042239567028321376580524242074811898421034577025578312422908060131130674208300154232085430996523014783840735033655107319324105235082542341744578776092324277439700040767328679523981188130051739601376848164832777345848485382153531073911995561558936606518691361015314282166901463716769836931462363762047486224350560733764464873827410097561655788818229390070753895972838086868874242214896166847419764900041820389525682352623680417061108019033619324252745339608015288126198685266608392430770777745749850603105618550537040216184910084490645811309800002339845892223102758564819710118799803411564917840115953309741370701623059497345568409435873317110768708897498038300163555908872427887333162868813304051226520844392985390340689550791900480080449831118446263518642710295441623757151894642043671399687790635283899709390185133424195020425171675882527043646765251118971453797744131282873322695552761253104463061903682790459125932439387092643742255999030334831958639890549720635729932799301249627189558642278949528872414389615814085885357256974815885955954813872074850334969883080793440148414350111008172279769630344041882429947588535091976682577896029020180807148512490092540023434027226975248774807626929651737471858518506764138734398559558559833318211516848734372941479819317117604157662141569368029521435990121349004240163549174139403231929889103410378746098248450789244111990296191318408539804024056343562040350705265279435625713558098882113420034289931338065485919784205920428955752509545180141902496321445642098582968994130275418352254847597966214455096391406325094508259676301443305932766492647465020654391023273810808644319059568146017032205694792459294047197836070300524567197578279070493301952680326328767809378153487866335036623075877672206961814293325022560446625891033389766209233886127787494228412632965569884930996812221231661319253213189666800252801725457562590193165574488450403432678003837427801941313846274923677695214795121477065911849279701429614984954919354951682190522805979598606764518075099557090787224080898744437159973825849751280802268731663824477661843538293572733793176159198399974183180688362548456417046071801805371046360347090112317503733172476202003747665945487114475595966643875040255453697221157523597092752752743542501499128317473125577467689909687605204721004946301410116728584415495929514065197962316406772450561579807394799727981998674115259210044657434274266024642687723349511741727044731573214959520554537911688358991911145891699121111670064998658249179049034467457473403571350640006580448456121395767120757343584568360908111973684816619038777504719288057666115407584638000988371075560044288498445141100755711940024982043480746812210774023733150133314139632733525513909052255237859357168818443699083363911014153925223402369326902784361770350589072435174249434278751796230308867020246302813640531383104044935097807885903121781839602533286496427784431795233551663561079139057092852145099414542758308826558742834120016048803016846331932562391572337144660991285076990791543764546568499110111106946484135168665666675370569171213495545937382968905725541063545262976783455203786395736442789163249469325644436191676980831745302660735288861049263246515244857523696582496419383396880031719131702813626618618386577803705951097000320791944512493806665678710771450662220892884235832090302425086186723650741133109398008364047100645275851726395358989946073818947058047258696844581865795401954321501142508604936070363523702354892123016044623926751112282019386828077434242893162246126232061338475866543990046022301622859832904148381370326299189944031930802381528291641613529930247652336407263482812078037409970705273343703380827291337095336879898642684454906528735252457014056383752659111861718992253595827608896805327974095411930684033286153082337707910909999080535357466716064764316838002946209399558939452306561951020957214338158792496867961371215572391029385304343789782441945388587848549483665561427035061446212631748616355678355829058806219400348936474591681830171649108838747758925511565971809958523669378697492607294685600548744603954913467240094177342705317761716018471719669528863161753257228473818278533306301125482658614993738088160990736643717108222439653071179051819351606092804727069130921663290552668364467733731417109102579544292871848895400120765474756778245550411659394056590567232426410893499612947866232946819378129584445985369507035201279985266494399215184172462866307834912752605800608854266996152874600797348977098889859614576374342062176200686878176855975398816160137137468153721114611351765113961484357322152969157622132167854542620506606164638864748120911658448600470928536956605466783672935851032289976713757021233518254910947463226661665283110858021210170052052886334394054404241971122461604760088114935741077288540372459893948688545534018175634031305888160731193605105715280863057800416789381380822303902197513238742531025192887328808509642117889843827088449722662684690784192669917705996123545964556516142123678284245948488085227790138058085244185862726056556511032382084795969693159927878425757663433446650643709268211423449225215377486670431672559068456530733020215223431890356790035657034583920744358349276806999095195988551694032360816401685692242965004971267635998244207212884191502204196009281821435414805670393611035675398127970541974912956208811378235727853570384046595796005565446318034525922879564646091551582384318717075881823013390554743207374309443364315892246691781838956687478180736943703847751822021912892323153545154070025755185023332076977266365505924668707340820045064174960206219189141509446825453941272180704721470974345687399764158782849380636184536255506414539162819824437488275032559769227496355700294024938212035188691339390503129840903973080918542637890451227347668072344205476456940513517223343600981747451799376716830492068658362854904610420189890498452265150592865385074172732609474088335250541791030980642467128173209568162198990714049230115957495707801173073502229860219292633500734064417310360435981568517155590373630672644304272769462623094681160182994095953572090339558441692694594637547231808468880466634316331810419495174801245496458822566428540578370470196330886232704362088768798760648435073032176490983611086642018217261171003883986752091304247068267278631090148369994896240479914771606566217282603153029047882886731841640584752251832493851228237960344869746571922413509527312681047218299261268210675097621786355347927478003650944773855772218431001897783046454915474486615919701841112554142512008990818203526674565839640878806116242345101553076937793631777135568165297604598722823574654896960819011377998067790492169633011809967265416006200161525027732003179521444568855255126611653977965243941270428035933066202141125904355278104066800874307576280296762015103108675812688862248861202509940745322201043273990203203462912034327767318621460216009013308112183984749454494361321007833301338910419356514389526779104477115870614778220361186979145196094078503414235662411041950003145573105048215880139283669130154375158350578512316588464352534713294211981810414475593332091072970937746061151096363349998077714977179021905404409904499404055881755823109152550338184930189195661585249825819041898937127741343102480737081832843304793336389352619098886140661790869201994463648442138067758198079749290407542423957124324210818210436747987548480727304332790459471326166593609591879059287325823715268347575141324262835906147309843100281436751949393142836550389571214070210186450864808942244005547848737559258670400452592294621709301341229483741737784724399533317249858164429094750076824389576582203192179728334144215816543032481407903231464231844066667791958634111050533019987711543848552721771378092229257110026158750310849674407153742888936395759289795844442913770933829422114668024848633271531822029811544370641061227928550541986702461829617163624393395680334705909929059392099355996665573224400469446066486946388511610916630865480661116863917499531004192717192519817082114949972492989305161236207603845969462967832996539736165103717096244314330857190739317343726722734998829802790397893971066960024445254369785614632770789290022113564997025895758838812693658868846365991496489039799574282082841112676299128593728110493976941456714335219342865022404371424542421460191512727522308362101568151465847568875071371020850287247741872984340052960106623027383631234539993329337934317753884627218643000302306807055144700367456162531131654911417314162514545869673691307668699385859135236371504009427801153578347513266407504309352023070757490691179660414302216364001594391022165579269631689907805494525087992830480887088985434004908052770411577854552461447671944385265723658579989242853831227842032429340505406278398278600727525329289950955261840213051921665243888290272899441287320945183345425030623858023447091357388322526121536186763195754426141965203132689393957126536254901363780250966437602136407293952671683711513308730625827095128346893707624259420425697483949904592772044867095767684009376901614549430900603677252142579516580105747358908804339058995108991986401580097985176050900639676973990655914956472649786185026820120273738607600434684401811561258327194455981760219553079896927458893404856672213642715743119399365884665449535650263821760018046600885664574649440811305808055908667116619138975657231056668629963171147559341652084797323933339179207084451448681849508867885316923911426568021763140837481845024302830738617084254474722620351765029650440760897393370587902571512754480020027951761313586882482068836508416014264437436179736705466082626308699963073879752102768088014057879748416526973227026861505192732957152549405759681809105152449869580081867497165653567585950636350431781133796328123071273979592747269870122662568819390043640145566867892199132916817724703863352205172954585017006126457908813663576335890817818122229539079950759919971579933599230914514411924946494115078592450780827493905459264602031180091450101526026540907749618037726936130449944391841772156097670547457685270842450603059639192313617685960935261256769216833442864824213558811043821931918697433231934564787983983153296626446233585559531584570766971981220122610686607774492276280711745197480511766159895362164778545803638533540646377200412090717143920098460175748628177806693799812482411405415971682383312977412395271043483285048040100184470277052244414078195081931408195564734188657527902745451591955879550138556023834060093520827561986603761810962208548612924748717530828162964531465593388234211362491593126791283838211844977949522925695803375964937688131134659755864905443030252597600676194561088388663428947165344804198191987910163293429344768399378568347090375753886366821813272500523746695608361275184298711120860253361292050754280235792098668441007008543592206884537678659558510305153949205310061939649964471878150212052387336940936927576944505260124048443954577664885085725504099500800081496285166024892293820201300449364157940518424622382503325819168516124622761375785338484676543442995948068176919673241619643612991487660096381346687049254410199246519057434211792341915014780145210887079978765307266804789265871850919491765502214552649504292839661933807695688005843967782728811192516660796559337438249027230233181184058047007633855994312320548722887363923741771986171463773281912126065195694454484376558360759212240330894002976606406581325313846330111359015146594318197332210270801044328842994030898467207669966051253663525748289488850149039725365038662716020521788709666700945588064544097519778110673792424008197105767907695621639410717498493603528955984102202779682738797814683183730149339250563949091805237421067308795904541821147253385812166537690289561354106397373103925768732450924253991720794603540688598856276648020490665320107106097102407227314626111860569481177925525911093944736030012243618214378950449948184247449859613495975646561962437739733083026071216769986485579691378464553916597058871724644266583017301305007604952079818745674044226025090794053879211888359411942484610327560071190889858442673250230778611320587014155478387944250063311211023631591704484563758583835122282344675590691021412495766925266312116654562104655910248441957025459644956057527078386630485172188714403747493862228828779043075505994531026614582473079008491109001166298978655499522923932802003236995556745131692766902127387677620820638571431884783647618716889907253178455145680369517776847109834614273457773327927465096886402918117342046335433136326177855531197899539421430915630220517851983226028787738628564510037326562262244261691258614941041722676877380269567561019297638865439358397581436443215807180337077256535871394139357745989745848311694217064402736579484766765882416835840737313242156394826984160165745815427245397750223108131917566092236045474786451421376663468740400702722719492385056041723191570750269507719329709769433511564295192830112142391176811076676256190644005207928014720125684283053077647446182808251894456841530302839170157522931543522636301458251882736307922408763680173179309949711879903645755048546491970250056655260152025279072021245725573826528263939244277997071343994745168188569761837094140307290092851589641269555649212576712392473227570937993660647115698407681134252476540792354094950319771251626196756427277396221672320246451111981026588517347214181283552090823064302939290806713525766501493945866624687510716912948691139882580308590938662869318582597943838014682906075954238410350777410685501389992603495783249130165104798148006247021099349945074035701576449122878821318084328320513410932220335256521811371413055715612011776548122169224316910031201827363791614299407285634844995279221006265947304138162338881913195852033675704955312811099698648330336017234614019039061788494405299071635519226313741311390144488170382493782643956388678557221974877396351926347041631828904137963397249763117392334419412681651710486275948576986513637045093647953856058336253504635391368022818538508349441392057685232600463371475744275355446720724604498853163623843073170058023991013501293645817710938220418503005053170263575648809372233416501417538825826051821272114766915203639377889345972455520513265448689867971889317409967575461758857528480406144974380753859972046945588340117842976024565532653770133692949287173408882029380489907319403871934839150551719375150349244096888198795553177857991939296189877063974727356176331229539236982585657301970110020711160904020005806073407191545503709078301141366257619023948388062704413195588811341006121194035741829262391740961177254447991915078394996376668446083719888840316519225974821309975642290529938931743078862971087105618688933520977052537289475147304441353621354558828384362221066727815421678217164423514940609819635335273285495184723266320973807898494198147854433826475215121064767633121613013010013014853870496645703165071863377726215341019139479655469131340664292439544640939389094551523812802488306773230516870327954102720879994694701299324648140068568615657460511882079220348249835942453451534878916557021897891341860935313745523492450975877622634383930015587400165648457116095338261207500847062098295245403955871361459977090791053452226126591211015460787066573637623274519160462798225024540706808534501121680614454307897014998861506195842430603989108287945804720569152809093712473502019702646190453509527208343193049128746559496694565243114451918865052700189094410096654689930134594435966974988562468310685153662263244139806684434230985520828155937329257344402951235612853886061938708614417883554553989960872573905071950792491107574644018608860039933425807245190700440113454682562827996931865129572885889491509093603723541339859003006833858262167926606650261690325477411019717752458186051432225559173382854893103476472052203575982337931016844659032105777048102864201481013192634344118657442179162598130012106923899666828831695618835590724564368023993767106037499345505201444108634455950168523273210866495341642918616693095332424622231554340753667313707613413674376372606015760453761464292756151967174015479660466268919055723529307556294360857226639332409602377037123796496499100096222452853647681916825761256245354599948139585236682268247402610319592459160111655718852472148415004024764202542245211995980595207781063390366950357716540194947550236628088422891193492550713435333125625486778308523673039900684471258964300286562109674331955270887168949633634792952071410994571494318765687716016449881655350625835395703469730427532500304576394113400578901040447559974116113257542389143006428875505846629526145030479040819025299045516382141871437899906335082509736935451502458247059931111139425543844321356358179331159432096221388216126957380187991753189066540470743829957505596619089139163240618168432092831353178000623508033064442047208651607914397795826766840656598997632364494347690305780973791192036849326695026410984178328342177035102140576431461981651038093450478737821712344827869702503841049247335197419599791133593641566449666395462465695629865564085023826664177812992967771824322206840397808329829259535863508988262409126048476489813351559966217766679018648366323286987653182670848612545419649876752936780644720601793143708140084621209138377310423512763422668566829969501930551998995412456183826542765989393255124436579026483295053694783683535016195140353181317940469749315303537947020602827140132185742843315643250881148997315188309603331508540845231924412224720442973726935770982382737805341488054000950647208107409488624336321887765291313863734124871740589178582923585027999423263082579933094307498891303435371801953910557821060850457295780757328453969543716740457235295039444419868230177938578373158826460719887349700280901219319681677192602940828144983992894908551404618806618596987307114962591463886399222192415802023921055981797400597068666867650528071558994672704974839437229812531639432651278907224806995650733336489977950582749976859141467485173720557503826912641220870923363594545748944795636431347330830419082218672277304624498507309843374789782325624366596618380051676102573607200712790883509046021763130326082258326059044247174208612564270685211332637978918141899596468912848479773816267091114465336924190729195052495501920088380883246415400142680954473759743794214179577121410318863370893919534785133041105001565234091209199799483736639219748297269047947419860423370778746607649842273934633647576211593816783244593503768651426220009234238053062240250252150226499806244178740133345922699010588432879550988078207939911638940913097468813060118428555400916938556648604295647681722661511625735154639994041692549448459341133969338483545069352651734784247951464353612450527738234423048169231173280741207058646035467120371285140937510999191398237002649079535719305098461376012973302322204721683497852844632401883617595948548865439116022948371561046957216308687645709116176966009441784599540604591802891201845350383955253917579804746775133469486505368809587982101158888547010020446996319055881152644604844777263574465725362225366585184775171270016589722755135675551128871060332778446284425839293603585866514202881550718028943772923790202127587381301875114958415599446867430145636436410988238499536235291578025935566369728376308062463161295342386314336372852865582741055456906877547425669001378921230277504196036894134389566309455821642929210927487149561178145583060310533250586509949897217178623439771082386139440899829804984558602814590159927667405375074904272130292217609050015237713545233912537557781472153921276649527715068770807134624797148722569746677299966498000307532555805038622733927122353329366645871827309557889876834158666665731939192424385421121331099122646986408906707162587758429843719747314948600959167457781247691686424367965658567479368496942041714509627407160663370023980946748557975186129356597109731042357632420781812056827488805998502355322315618817628242612487929081964375498702505940470349537300034201459144232006805604628263603196093123476580397791601678055233621296031519985216838758706752321223848083206619780209068958213424436805704803085820645275592948696844474421393314620365077058660836938255688792628353288441179655613673115790420757610262796533538013984719017481787361712096682905039302788947259484899060767267539392174641502768881563756754075817085230312287921272863121006779917506329029144760443483462201092065568507830129404122775343993101222079050875060200430234998715918455213276519477084594654344467267208546420543664315199204384031217844060690407079052279367438109519173193555852925869157496440270800936701249417877301072965540882578745051514227346598031856050734725915109504022910893058687172607364439898744710307937229153663878157452603382052637523684658270032556636305273667832720862483428896349367399292052297047876309555754290564643409924515633861033717408791630644950917246624964277063177511453473728860810541243864013670328455068436783823364058925259568268008342698307337179245080282869392468154014121593242127219919329111871268115195082238948834718208968828559489774080362566065204676905298646058883316833070746056881675360066368909754592095579702474448145464552237425032493709126169341795526627084963306439713472346694787149067450849776298594228055749759847639746913952166627771954932610256913177986950610078280646800250021545978400139454366441790889756417534541695140130743437483085471130750522409690543659357897088136903299368882912479474481305912714941853758473324542896920831061696201962675979729274447610856998301757281446646778325548338476024026686266998626066310023175308596162497834919789398734620966345278100237191878729257034885049428001762833913090591762194072076352245479347014331087187111756723764523479378441166817958617423284151591811796719611279301926665056422468526196960475401743138105190901519773283243740960889261252350908185485113278291605110310812198058960437465819850191202643060505571643754303472151570880354155454319236293795493350394641288274226995135337002658495056388582545433734852604220342086458393246194517882240651392759353573421985124462398078230055677307679210026731209984361513424783794896920842100204565369271776472816923412184122450921463523026271707845678329737722357385391982301863099053718422716417469457347807424382611887143724401108364189964002908122504542331146672380449682589614974222605573285477035460859863887399385666744088138320334063698366067667129661344348044791670831252891872004228702709318656348154531607181551430097784358007469756402570157790567611074075741677549778046489751960664159888888267002837107807932250576623226912407478384339934237599870204680855235773640618909527531486513263465740997852952351306002142961390572294101949048197210173534242149337955698698098247118332612424536742005234814355963152800148341669981676397108503004891559819723808208036815727321704046126486383538114480930928373116648101310467052068941632864887539769591775635658151783019507657551906798277607338311415705884358760275781854424514077484703746233800594380824235347720885684492432954257487985393938416421951774388218983768132007203788024900348558913688282876530377637937820873535962972655106538955768201574614041350982007202996047848994187948657560218611526826606785130888904213968135610394188337946838051276923089021305477733203696321597421901533111786814365346848091249333892676947521837428448026898707995071811700088482527690197346331347026157637710298306211615785257118508867418435494952393626168643362554972867598202671646229045833214822434156570390545550496461606061210706074364338174995479877179213132909726947025863373655771343418508344830703496479178410503677745286339758002438712600398190385290426972755915072692455317673687624252016564761899371988879091326838442596426056861105467880852279651801251377936531219161576184479811328741546800627051387917995797343399009166350337814541930879921500133476650863220240130337514389952246967810592963817591191203786488391297958544792434059796236096151578870043207413098563866910702953691475793751389472123861840698187714371622316002980150659448016128972135241574222952208896033108891173770175784777602701490180667056663411204802409464346197102752415818383813798833311424803103713185314643599723300238737211430730287925974891289592399309047751349688051125521328597448601173100826770044730060145733146173057933674295658365540372956707010746525341590137642697186697282787203166400285337585257656723867610202596408231551891742591364449675240450359340333711416827958996051662300581447242342635838055219618947722580333609398801187870527402322574697637289851561726790208794985878821880231379277153714459124917026424361060705666377611739001666700221221560199572365963870594088153364370365238853563492677952793076919403363503097882833760490901669900891081259051395825257057226044535202027974682520044683084824544371999069140083805607526561728178007191093399130475269188715853638839812242561824998335344974617217132577820534585895987111441155600491834567457246029801278537107304038132957792125233453412266012614721633006474890065852049868562170324186738444230843657468471334293782613148405811755288113163820420565683732726721077928379532210420252141605697466577332720877405643257422717497961665089286359630361755844895321539373871007305534261569612674425442597654936690000112354875252374895651631572576062463019950197304356272322794159039786249811444853009191689080925054855734848733826199651694945434208611492510268913904981855025391679662857664689192552681722322954058031193365240336973253266454628805851009884566075746249498881662540874444405050897169195152019516944867121326878246599673179709274776648564428373428025196781140597265378297837353632994868489921638072410901277081422507490310187067613677625191205662106514732426573775407328763704807204410970853528413427307690583936196844500413048716059329295734932020406179933214814600670282826041390824300661562492692239373054815455364936275209600170451273145521090847516834456230993960143550182333040937494270194609769168719487804546314706066488427949445052573146616752242992519008823836112595561094650731846753950831100299475795192762363519171147064415214918937979575615034217349579199435182175132278756920515324983948204375074538953494700979385637773616215902673338345947096994177595566515974965768227237299178987173183205911210080939363099263343855560986643913963310412069053407185211338977549689136108724278690677017270079095313514546609080933431424800072507858227501213331392917090517439733157793962979700647067697421934283815207707462406509167609411576959874700859253247205471179812234520150497923327681192536777003009037875389771743088934746700981341472526826130114048077174786284918154762897091652183784295596661467148218108847192371474426300416972248370945132252699910519190712378192976961824157981695973213390321548709732051731387241529060836625390399237048585166745179210930230662654061689112788236437703700130039834890664696107572986744381056123191954671951077411194619601898472954846646774327239739515408059732140354596150148859464921653860569093595015188505191664096623638853266533147933926341915537385707180256549680682140348780804624034291395614176849352721152173955305841913645614177966684771402867098528969253001698404489931924071439295132612383465440055429838385934197135043318612567997079670581566781664523128848897782940622353575607651813712407074696351072469065554435516708176336804367711638001025052577286150237386401515348320778145908601772583537421008022216252648916091792888482547868124084920701713663677149622057212669216468083516203479949338887274145673268852476382932162522063282821092989197631165999989905554624077148852491590551005061000496635765148488532285502545378470888155518475964815179157158609452404573387516019871807025436352256706571322456056864975647769626229262487173828889753830547132871059396012140016538775764842166423727406025308471978582242518446249736927299222401351531548850651309833557577587016629555660990112862753702781327378015404472819909888069409314694634785785739244233230085885888604624064795567867335893496416093160501667924153557480702210247489678431915111877001358597736293063669957777790575219213039394504330646773885996938796654742658617205530771230313071072102117294094782307752508829443623848717138843672177916442281872608405145166650577608243931442768892068137578988409630269189650504812652825869588557603008568787661575973594007891312314643455245473204248617918865230765365097013597381295422070928839824874673766827382489887633580598759334317585816823542902685322728843658889436391863436605964679957909793374352742700714915595538836396945638640798885446673119414186649317842122061671747027440960657014193824112542399172640828760528205271003890074691111592018649390579189306001871493025630979868065422304695568380790648042515852768069354997975565314547795057192037695199366909178609702248746383335855772223502075043293434818443485311869330483038110066285322515001947829643357104572792975219097644061428455761194929250404005287739837585522490140285022474587005831018999438144350239244889506300118545183345348583333681508232079494109359311644469397495574836353546531481442438171525073013755735812555835807453342336417254116034739263980743733722030268102439628828602253320510463115513863561462466185100727866104286295042110823066245853056898335905117087603583084207495538522218732971551707611267324335459034001078939631859964424675453582132107943155882644563059129776102866359945271430742674912000674066044268000820806034218286628704805211763319388880553011666171612779955285301231458937955481800346948878639845279992751863949062247068320247737999320327806976520844765795407599527920361958018169240313487919673891771347011423145571093325098976167006058602904454652671222916852635957262847953228033627499511699388360434144851993086153486868993418671228560485003535736114073910177579018886686697464229093726351355813860417917106791105212064504374730888987640629571866706607544840108030801230934889954716217608984232673981459569196010703538301677810739967448690735329730140952033369409028897329426025368426461456679989616079084858812768653950784858090052025375476479736323392819633418612376203272351178037212864394015443290183268653148942440414866297507039355136342468788743535941991758855855379273145249186405362590947819466703576766965398125726831402902599713617770966542887358309205276410911036998431370506695032112729085901989130884083680037605164638364365508753549383623073595414123403251093687969435197843438716342770781221516420197458436821561450198061800073765435772371463706729773178690900737617802189232884277936192198183133489760834343584229685240981681031664578903628789751374475501681633190169989943298181581282233256310571295766237204385146292389340882970630613888750861880861884076603057334625049095571095286946651206709260565929338654848967582803217360876735768798091895926121449007330853192926226940866542137371943922931078870096911360424177321971719811308497325812839019376811397593920658415864706432952064419356248829767185454095377059794234826281171118405095974115989382257156993583675867821417800251610709642875381038063851738189081517731059657470365399399763030628223328106527083152732882964715334192364705170710910101275278379692605072613385392534411326337520786394740271083953116110592849104868120539244483757037577760588845906108603812431247887132954432676469134129602165062348131929568465654023738272946758948222735298668784453518630094961662059027221677312466006129406381169258595295817190373721765726536521107216550188099940190846760842777812536755955207220669574421431893356444381448225015339915462088287491884994046102202234157799343346489036295101533196591631114440658645510124532662860660996592059263934633816243798919760326098455730118712086250352693075726482387097726136010094461576567036773407723924134972894932753234976222458493477432804014610457436998637295554474578357395317585606820991801663355634819348241588781196015669593422400293096817333225274327197971577704360441400178623111725503485482474785377274847419724873878766157982653986497788063129025730506995887979424874314996012189612016629707778154018274177890811197789329574618138478748948659332025114260339235374484072167313872475634590186159202372910688028154012225855944116759837414716353977937262455672083518171964197305806518528581330343635480478532353783709277900854867025250744470037626444194714777729806337088179861851738956552849493507321617151793153151791553583048588509718919462182395527559572955988585711182938283030662175320440318001808677640757814979696856194891693756376024184599286971849066794368177165026165738692024531554072441893439987509332059906363281521478250522073276813134126001911897766220313046485988138528707490423230577977938482527832083797569176193833098173084274056629470801714328004281220759351766748622511345937203221214061522409798073275028342699232992471234532931358963426261899744906716042943502925816363379877917065842140379178123008410845364777654005624359266893027927035489890011362142634286969301210345841664196553550988431456286675735562835557454908625762696945723386930216248237205235092767426596279744748493757555409830488627635142807075039045986406512482266221207203932076688165820355997333647455833760415641742152500009524742347270491213973883191962451074119675816674826693455429485991261484898099426949328384929347684453977208907233170338042846938003329130513205265259302621487065207662303891297508152987701568443303045427551983549037833906203226575916867031546166228488115177041830934620883276536549704539683839960267550818144545661810712897303027337647681595121480130832708158474504477894284153058926103708039700091256914094319818286369356524139512637849944668206758487785402573585119406391582543281765710348276644365746600938835568270961835233798583539083271983313390716118057387384992385114281008187441312542165068071686480435367324163943994289345139236838883044031322343236983892124299231173585988331412899405084576986062855221596860001864237068640736068647067813015826799664095156552449522373348971833710193313314038314894494557610278918971519575924375998640925541479479020681957043734054743659927722036091265479958232801527801308768168722256687114824449130621377955617379892436370256575643827342175515413455493102765235807746919270761907900838144330949615749222221047228021333821114409765381073378992350426673577956450408485588080723381719634472539291962726049552169119749993003815298007894757824505765050750892943738753807903712412689631696886917130035058416700313703614378426809427845898793742712322180340029959717632775838437794461936114360285897854168837495209284220140561887336309129678473686060147582804787683692939327818019924672708793271850050207847739781690985762578464759124613783692343979741052702947369104898204359041636549547782893319373475072077415408954641439414603730631845077643622126572869605093865106435246194552089827378979398853710320209032667697937216874268189837957756812993887284014131268776304488316443235926852753940440840759905412305104560074905761971966471257829520895326563189914647023374026886800302281886158935239424225860606541042244249942867103296615345871158802049927718496439235144414621404895007063475861817976215290693135383133278113166701508832608363111395697849831280509597384578924010345412882249796056584993000986576845760553948703380956543039471510674641815882087916450604829461790105928860923015145139702599855893727828657920031013641404814351326356370718830429607485517700448878058096767312165204063157776888229053197400133812096736190262746864976772071154687265404305564087967413965524602566841889690479917888504970322173565773020103338664782172416722392655008755435827484376475998162638854545088925815000480123329612839734832928100441117807868845050590034646455852722688379878359212205821237969056461490203320562143909916543986799130900601679150423176007205638283211491131160235666920811882686358296681219371211686727978014639981622010657130336708085432329210858781800238563847465447215270890130134659288354685909859109706166563337653156264899339047582275488901698070177591155358853449302330011560828688277630427672854380336245231740008695880489505319721071438748036850752282726360379418732251945082593860859900228399685680711992764609170847772617171594757772744143208812766373169981648960246623348949033695870454657713931334907453353806684834326459340291015698384583275647529195885867189898699343556797249478253227618437443546444975118074161948361284945628635985578367557115967488199851230345641327219088465445790009014876327384703352111729664866072223827411604603173461241636350428901450511788309142182945841860628472747929675636157313190933041358284890676767529864118393536166721643473565353546821686148433516638925624563257484108403574264266258953741774536031459042373491303092272010129056602953825380067311988008810473888941217054368542445634340004949074772798739162459759339066607034403080779278559472052240049006451921160154787019018182238758332021256515908856700611457908941349900172580902254486671162827183194465264231940782528260274091684849250709677756854011996265972760010083511143089682407559799001815293402553331557909451548367814974171780994202832014693370330364240576518877642413475756350218065328545182431038500685262518406307810647834941393295538915962057676949000763629724483003747101020214193034862815948933483663821146876694670347794492207699771699747644770133772324737237391492570959138413786189647455766805401590847377647126601448841918723142614666614404412681587936247027219946093683507056649334011800986618497214667469288228516715633733144945035608519956163051833593912103966253078272449458567875323662873132979265765831864448828744134616991764278979080269815365239368824360352172990641274319878201435200940729739746588038801635875479584708718270274535449159972110368021508664067449009888501742208578142147159823946314161142900898481110963544946873860021751526488253518384557179479048405502693444031666406998463419747416710204254496503766238771758604771649761372414417001778985522672961193034028645636717314604963977968467317057057088085509850037391678300062945700340787540733921883223813798169943189552023078387669119893049963643462699769446267652723325271767978289059249833184082710680063016556552301290979976457816065897415410882329364814981207448091213918290814336994726323151199347450421302252208718348429761027402770947711050857066740677213839074093134949582652712814215885519923112507353311151785564877981425757265308067690389250676049761378405750249928598606921840804282806988671498922389818493632321023438907743477132360494358750721349980438176285287730892835271354139815554305931621124233974602609597356903250238663320391972269817243587556821265795665524485966686253450201260037514505247512003504486874166463947502619636261368144963251991546751081293577279218789051917654927208935685978508030966203340249162370681618877117743926955876949217809338388436300375439967907802229324891191186408849940147652820888131488267573368069858533139469432426480352758686946992179156754014399013629647963749875643516578681499069536312805686994097936663733196946566177132186292538854627962359338991272589386068147962227609013373047799820416698075096291302332673906717222997276607270883642676962150508025868020378943990373542835264943316877710783148179698283299301164523753281338657091600875040832360182738412052567048921342681868243423377939705125516791140898528398508832456742339484987036200948433305177321431933498502290135361281248584427277538911476711902994393109382194236173287999022733349241226933206606517920360941225895036528655512062371062741277288203285410429127439643853196308923583647251961172579362027034324866045344785962407662542450822467774288921519689639062356708614176701273227265753933258111409546906571080554042287160752703159574468226544694871188961492210569945320229074606142211223612676533689034860005885381063846262815453578431287383434876965537123002533123798503516440873977603923897495942117090704735578716175674903662547336569473160340007017398246872510955632866740575941310036709239216486141043302668505792986687915573077902375340545481576346003366406054135155150206650722201053459929719293403668238206564633383197596284554173853184427178561700972973734649379933184171198499034278632860383590523321659284544762275839278797611205053320569662900296354876539456754064124019141734422590244861408250512209974776182169347586196726607161098384377154419851389806882773883640177478017433724064877088754978410572302299424576395490922990796118511352454169689266919300370861297968005535038263200484668397788867848022065883528815258640460855110003256718234962637927366462933406151325843905421758703703284259496561265058332942278297821941379565340338437228186017911737811822958884812187136919523128812824902724117119318203237147985783526065986457170255866981058759563028639419760224207373930969923944617412094214019002152866409502796274566828594951769910863212918028323261183512956996686745103927583497735387493864805819590652196556593724747413344099791120638443811710559457897616319474158127308669585729314414643908112873875297080594950448517884213366032250315207278399121660823022272964306022386004396079317668730662243675986953690369471167240230634204154861418583299589615170166558109119492619760335919434011346870224947478510585790191740083174840226536046870661997216110891218148499609352227439860613672842303920477211183941626336495127496631703739181046932052402021490740115945682602045050064051887178468776629344425600877135594532902015093127261293475565088356064541135260251231211036608813938281826533264763096458273417061064622038178620114043932435833754070634087312298314512680196055780177436448138676632420655438290736813065684605102570309846591333024630664741826556153263944890828546783213544996959716175065707893508256685852022956857635237652617718458331953256641538180399622029510774865595065025401517259161716620271568614155941934153065310524690722071582279508264958606163096192646821688639552452874913060466762566742096814622831377508858277810095524312803492973423676890109437863529060604509288842249466098827954227830540728699346436477040347841569938546122719233358639169544098875884819375446788748260755977267282450898792845507915131137361937088768746673642956861140579468362832605088874186931291276582252128076670278192235504599275921505906293244788100610805271767052650095350749529561573575082606103076532287976854785137851926829126000592028189211569029199683762554126495606820573706281268855634231220374686311606716810296505937637382253446202880056562334963642260041430949285493530988849588652655482537193246765987992036520733270852219792245865070868360257228589588181438290905485603208883029884658223466686198919405435651320980498711310252579550230135697474193419917930940714807276214894875102350597202780365755531187517720647685646218716760410026982054507478059929167662315482834672956604623717397712762020574864022530265785345726061869815664014222848040247051049150607029316554885331761012785134204624309301506612728257682710762539268745632347131184618136071111260858548376011848193606453635472278063803701067213504608567881782203292200228932064496953271911131035604675727248111531180311411912388557302291918267851432505442932601964046999392056002724739484455893603102620398304273345108050827205984421366986432491747925583164236555094286775222180519651147865930226911090531861369242256865633593276742411508530250846310256638662363523406872257306350140137526074633245863181047741635566032214798824114805493596872312044557581342275755340256763704013182165638889014592275310234185566789379958846682315055447036641844516836416566757963052183597629916693277862419752155624370755141316442681160248383258721114744941827335987309655595903151521812291940529013372904149032308168981063360923014815735209517950209313968952819364745229429251515957941603859238341121560906573146743170481172989343451251806663713607392319181478382052774813050234002497966998547766383953706132356993118040769009894363556026931261450636143230133265538277676250924961348727094118524434593245597175893001556870733639431805999299664545914456268637331131968123772436357745713072553660915963422035113346974872526237971659917038888857268861650778036903475668853032629502605916387255554743851136855389948672569450973387865977620388631162430305562408213018694393572784404954748433180955366627779779832498809068165448056829205583708997468244475714064486302985476746577092652595378975242533839951392473097291723857049886057511552281545656472745740115758711278091010190543830722041536439781211426409142682966618826245956867278943294459163097507321234467717428980884370044906091527621391145044832637225743581263585499495176058296520193352711925876550291467101760082255789556017815741489296711528778371919806364121424064139521410266077222597620194533326092651074969352725456636107083040764207051001300130342690888460501687299006520764781268453973562429473053392156705644723735941770788459660978655292908924533958013994450285932991148150837116532101728592127703203795038311907080934950273059577457248463732412531892166952970003438317348836056136360152329774708015451693892257559123074250031232101959088424940207867885768492302069465557118824034811164817697328311406655424582682788618527686664868746136853833987089066471838844260536984477034101744798961390236013519217395284808986748435325830616700846351135733710754554654600286133242147281539522321015173809838566029175624962379488733180939425251794814105678818482283241699628469274267721246490499230556927184511371667000909365398599895595326548952659287206755594802163254578387919833355152005761422524335223222813924936721035567766142732695876042542792279845228611197664395896374621261967589755729513729184292695551784968891452374735643601705931309938751772859106794717147864860981963394671276187042049266929285059778696806143027389933860021608511295256806591135431847590833783738620015855796528203185597326821486765690862331101673227077522235651722910810614467817001861969296499993586673513790081173966540225376339764880893849370978461134366071170887661437334943455711186341688875618569970750978260536802990418717061843430686249728050771608537560121790742418472024163911909501019774313705533349344781824010478786842811666829923701918940380458028792466142486690104898746204379069027274040424949828563385730265493433050012572629969015467314447472209561065675079271028365472500175841383812187033511776562318271014895547190296032715177638251392033892279916638390468748757342246221142160175160871226565264115576873175344597025008045226939955087295546030298949773459996370001618565588066634635595652618302180529217619558533517805325585557535492643580110483608475372097270980922733566556066139747899097360358437403309312813211263641148135314724678164414208462482266627831230540370824310664149079226250285118372785641284506968691640682022862756502419758194385511501878231685693066368634068340899704441829849115947176674441975195801663251054258817346729271577031168667505751859663162676456169653973968277835682996530071226488851637574379004230081257649905919571766101639536918761552954480091810313070476627320852293252369949921732317469648132015431073695254070949209731014594001010526307675691477184422631537961456195774933406452872026865959028129626004254798317767899511052793983079891845997550207545700343457341256203151493112832578713923649624356017865118075287833040303878605440150653657701692033990397108280822707456770720130376486551510428649592563761325911062496125253373157116776686207235276520322132381287482523674156174350350602198333341393652347171927551450854605345941777573542472277698787591211215200013062357231939844537632640909176929539876639133827607566195052959754458732227918332903837567282952507179730565617245541992158309368130399431176345723334481755811544410402505135376719219584202415705741040340725973023634406379568873569617646744459504803841593875245580115401977381935437725466478986094679319075069360674367356302777971478373175007642576902895805333998542153128542789859823584273092329581446605047337575411086211244194634047587571376939963426258308079321200121529520997268567115755682325010100929539035834224459466970484467301670446008964312592379148031306468449190690773778151673867583146329619527730611314248308910225984943237804168678785652860031502875862287440684883426736198313790614143096565642520695319027336415992580881578075409160562761657030976117890165892808743476385875654368549713258130892114770667766247997021068522343468756854253401034367652092102890571259526828210800443849971196697063527398121130383464001739958880635294768810173157190392682076345230864197986852393034871378438116363634715934908167024679637870330405410849949361966054415323746865330613156966063903410707229266094921995588884565195273583142715183751175897312719156640275664967825677492087655572175199452373960744562595788555262796762454327011182033142306497944369570915144575838072069787472134868032939972899866783385894881682452187390308235349636960795854360508819971909451120525238558952842780986934645064715837721053638791404276619220139532848071602573741718311045124318680510086818022002522927688609037041525139559574384123010876623780709605832371780994938578043194384753614407597075990672479595309754805671187895885532829477501685777476506483768967414450500032356493060714874925694328089307670954494255829140237394569876494829553661944457510754039175100411800333977873621742374044547763202715273632021490194926900821855092059585060927957231080156622257737556462983157495076600370521875313856227235702668500662644076466401894006064004317555574769140830809128410156340313334739581699115516158336371241941173245220444675510004632556132936982011284541486164237211608640962542564675200693110169766982358515455726319486699274662050551397102452263923906369426007526147724041394500751089756753975523085334268767433256732994704991244576971764019679425106000964398691140466274373589648661111386025768201775312139176810633175960244009662932885823772966744404422184483489724001083794729902552926678991767967106680996492151375352064198210793822571038167605671625299448001894281323938950779885508265762122674178317365552866127998570419600892989527995267136106147049746094708100989996040154783469004910685335495203986632498131328927955927772596786897028838201093408447876831913499422961091921604276569732233096819627437943469586761093313732955056319236320010678927356464166405919097591345914257212468039100881934126673758668688832019822331618929572062460348709626671455835286130832770177970189322262855869873867226034876845552054218712503337914507993266361349013926437585329766196665055876099230350228398227153974325732625637042275310751670279747473033073797010313548738966561453062478254321758591281357301713557784853703341866818513139697405320304550800453147534413794226698698962977852815737182759030851273314976816001884953172932043146803115439040730960418997991420897575448115374305768297517855932339471611741764573963887794485973219306055144010347060607935252223853669477515336729829610577742554823363572351747110815688672674586242393655117641606803436334464036784802094323974029784695434886771673792434042600822404764341098617643957887949015988201541828390955093357621703700994040237519583906592959256743215219349579871226958526025448928459339607214340159088811805909479473720928302628412816364718629371501026839744275183434945559701282089386351584032481224607209433123366980706812911091573421019121416480058357002168080578600666656782695086809256548981961874981293947969689638711075698047773624697375516355536993856174121240001799512709461076373692433739078130294431615476645926383404862083552055518785418871740519652048616242090158124361010085510822647857097360562945337155966034587886875735502117349090084517906255086481851248360310500163470010879873273751953693636712875377056150283876768890808592398855931474635547990277660511491844338991001148618522291734497986434368563057329371352192251489252289591884009149833468609916109212364115302552763092848617642236734163779147164202218882608623932940666709099100159614337159202532269823915687728535733683818533538423639005582665153548045926181390024757057738792434988040002616966048586912894805675892223004804088051335460241679672903001879993558970189735456067593099405356356622022205559255760518487477387681000356914035771675696131891423598660572454338015410903688394684687772221060334276995391504865285848083739478409281116938875444156550111580021358325177381406086699306052479457554854859152195798608712655920660105089699129290404712516654545599508160036926895293481397130222778222097601227473349156385407465986422983810293056213670756195878440934657689862241339399568607560119059457509860407220642425708265722271738884401284385364805511686479297720189886661302772992037580027018541166992479319999568448366286404967564848284571157541396509910654674715484271565661140239026190417999473452749977155223328173271346393513340094414236203279289264947109187973623804018685683450904884531737899082863342090543302931028331833308231591286955861052003550241419106996856657292526420776416423176355224647873059148585407816082531312378544888403128676300587637859182435175618714058433338081448239975963405409373693214491184432858258194276686141097980622678614386803790476978124221060632174177721822236826750477230744443282061857608714749945252748159631335124780463010487959921160887198250770417996710351309285103768140277963427063232701403711539890492462138442796625822439650686249191112719676576588981415926837811597345437032914377871534451545309984258836161594436258566558335524746937568017524443200663072276037952630829879308795800568604332881116958628014752262251090062264815564824461072951791627931671127083037397139253455289437097205446475076460633785738470206363896826283514752572316449654113185264943595583673425360457899597773558865890822924126474603400846517266635044158005626801374447490656166683135805425470854077919315968584104978066609627675784322008039516566829146929819576930116222291909929011574472379291971515150303952050102784013562147200826578565179011934066473808816239631743401486785739512883626823214011927866414108507498402400888425810981912414814498615054517037120693969718792373858955718224309790405295237119690674721261328302513957938259478123876987003264284008503858312407804853457921332480607458173336081405391180775902961198703167631125512356197725531806056693039231065120680156107807229147244144711094489147060294441271300273511985326828486896368624073941330315901859764478081512083720774205498849451360596866043043641992417208786778406680599597793268043027571320106703015251549984279849238002833578585687500003204224316839801887045575307858744010790134464036390410346962970487152532049447905288652798058153352207055138752591480204184690540811840636742246535602525986013456196123318958362572983954840483040847360167910945718643976006608105731291370274145747099382189613302592728786769083008328723586578330035486767535704365911473410233254582998964338152579791032151936186578530463803733244438602089530847138659879657498081941432713015549475288304053806709695876529336713962470108841322364778085474602416002043951759901667939062701237933249398443540344159034112490469343438261897982226141783037093410977528823713828462179354840627399253494683001328383663318223281335113557705044336788193000623566430586853616904132626093233428258589435820377556622697765949182713523789501703470178190892867008224081537757904542499108238250773886494187753947148288628350619777756841174992468161406106452865478487306330075726419779604465339548720799172661693894056064367122065173607144887790058496346290789021310563294736823223353529147858684551836570735273736083286938200197909313361868705365318162135063240618034924524201268568611256465714828016971037159572418955786824639602427285702765931442736428462456348105107900088980984995811410965688829146802299961201160712168306583820186077025708551634729577201644987844899041428709683813137634565625328070303334588361609224372348993393891130734759334770800664214205646413466914590828628027945664991823128928473835175009724875811361303719706110210436312495381682416304327938647275475211767120941620121881210392011179528022122586848224040333198613977374334914047610316440706192693191586410217406601958051923062151466678621901873279537264621470544663215744979518736890851154844692629479035134050279563497432160480149429001632984302515193367351093239803170390956985832159296112173211809766703184803139916289409311836297784878232134242209973686424420473135195123162468502298538412659370842832651287503508340794072230494530509590400128925509321533377561420567519771442933192912376009714572075338323387309820185382572834998889924796575352748533180212112312994128016998820581124046255627970955230173631905394345261545216827861623348748784596609329465107722339513376000651988416295209550687414033230114127187809598998908940615155699152408549158251265418774666477493489017740776095459299388304588422075628602590355874508683822349442103821423375698415027805192003458741146569464429173007703107360432874186497968227979912169744548496323623748651617014834720205089490564576069556834736306890610935726495973968825510401997395634724847948384092972625909741964954105481351958138708967131135924554801769456514691745868736605402702539212912870327661590571877299261190391394882311426681334898768321868943785414320496156039510027023651919599594961309797478445073167072127810412612297749108066121613521746441563407775105165526231111566824197136932232910530546886054158249970241597564480880079429597686158692401372478759927469798218805541542492127117048869919015728198106573203287724097704573007291160674650508234366061090609208837220562349584848646771515373150972440957672212965841203831803936098723236202298784479625674637649993431099778328509939608153496662627173039673188278427794558485429845304942057830290102345233827664202888366908142905268877833081564507831973465238800730315796399816137719285070422461908657243357145304279151989993611323534572747200252132709328744145993717640335098836557240999377675939585480626605924953123731827714929092257553212465703626180249129387570360699294653308315987263157961972399254113583920517720528631394207509279438505627546905609680938589376579128767307769171995754947363513800362108159381645362388189236677714995468275926100598882229551314132044578517751217150160356050901087720514264387658858744606501186193807690206451200550320769271017722337284716516169619389904503118456095213078720284211105003106767961548704868063616382088096226049505787868613626815107553393814956125992756624315856806642126952833998267857939251054572817016734438264633023070300172757758768272082664975740973604851953910662767127303283248256599363637630890174217964886137739158315233210063604167283769356723096356032594709766548089046656051895474057489417788331361323770036808852180377092885593117810905897748313067304818575700220314269922968561642211587498047995752271101575700011165473784033318398513543744590073301199045359470532293158897278465083869489798848554142892744570787820650003281430928367625552182390132537402189399832861682576625790869533377480648593900541026015559531607926896264728448380972947506701703168305451960326811379341984083920134245131982763707693989593485118272803145342450797636241225791889259976153878058173735770312616983593991138836641924317457131973973844206143827612176813612525009028344947571358331104151011145270590837801934142155005926169103802343407029497076651928911373955903868857357301206988704790470827349563293728528127263445117111135238977907391376505880844034220001554240044025999283444675264849095070242699097446900143096353065884342871921410075074324900048269465699624815950962584608478445040042474474168610857577109958981704266376689962580419027838744761753285416399418525417109863232756508359025134040698491693350235700594684817430039597273344045767141917312615358855521729821701129709821617492880632001489132665871079617441030501691663972760654459863152863985008214121018228261561472403213484477827349984082341536800360591520179896256576836271534043182619624047563132805083386729879377964018910774895994501517206293789374382150344029640153085426843960125685197236581876223094387814459868646809111993910392957428834259388439233590476643219327471739115650905388892477357061903349125797905884781419890345508988354173979163295692027196112213462075065160425482453321784205766648224356243744076011672640832585730413699165422508105150805982544806772643210026617821874944856265815130137633591328822800608426387710417615145954521766645630233509970333873326186862172363581190678451668804863881363269601102003311100310693807029095581858120173460061536364233343225132676420600613111589161227274376930533678877625836065374571726015565977415191622782807915219759779979849519292280728341617996220492984704583949820622270623229941144345125715972735187774554941974858142157914652575837929279766850383708317470649851825173705295052800165270530592773328537756305428670840067040134036143892039275015310801450041774763272294902166113139644520590077248526486539915679798112689310149462307873521037502474302376857688904283523895026295302086473167480637279696867470274374642518503748335071348758784463707373138519060674724207869228037226755303595117464006135259701172016383727805591924280839033699462625234025429100027182283881873951763292656487291854316970785464696603901867435315790242470475224553948062630883998730415788203745996816006986634575721886689724667994550053603719601543325530248303115108325354570958915639753990060230485817313140298110639624110141345025689756819943545860369454700391947823071671129152835675109369885309254622743514097590244672066885019825634521900432030341758584993483087282372335611686152317158574301527184794584069092888777833973000595344732647369661451754978649149869749831163210726048238587571623637089844813603176100106814354445996480812743153115176967928480863455181662718296138793401637315098909871196408904121332624108411246547565154719340483893273687002614119868760411968065758974607463772175372473588027924492899360407542787431298594652424385400378356505479982353574433302256633581210598266685208675420498389683605886481418627860189644768005574068880885405795089977489369397849150129608496325015444476952991741233538325919968854565934726974648945090117070171840609772396569135142455067300600170157826636487385415881922209962146716714165029196081551696800530344628672299275430039073450596403830504089656613726110816728641945505142700254085790564348928677876400228686520671479360645762417251108685886102163016924290914658419209847508256804669267845843170894222560238684009434144720128340526129274660422165114277553377418608048959615139844593692832574347266477856011540201589692130690131700969046619561330757444095912690037974500035215327860954446911012163751367749982557350490334715323129930718126319256342374349576673319275902483745270611662264494047009885224511833503752715467357992597033098386482004731426666785089124902587561384549855066069296177986092442576311569305652975837077649005650879051323011535266015959917870898986390671310709112166464916016000076693217822495922686497847122267156769997994350158416039337731299245114797342891489437822595518929361422797050729646902524041127270297756597677941526717028866763443707691950679573288147646396254201338230039862779430425958206102750520415669380172249114057636229822791157662684639027607041423810760272099694579349242866230107523311438815136951421748781668938552933394783414469176747567524735087275586443614386088368234379497334341414803008927643202746817153945016110945241952872547334795539629334501082067943821447767400037070846626364417431380506779635733428684582087311926803811751746856256003285043660402488695591923805418637389844850538608906815068800170874685658933347555892518840362228526544274903721801032425976181469563993048451222192281943622926268005894138312962312466998935399048229295638586653552744938431828296273727318854056873620009878732497036955365411373169783039483468059492445507596049736631469050783164008563041915809904441816183432814842912514329413082851595858715722476114560535201071534647236756806377940799210783477616300624991768115910125481025760838235689027696035288586088910676220918693466919396809581386377236018299899728159371964413810130084451858530115908070398626258707149788774678542594892140182020682485376444824483272018471757472025146175077522076270311217688273639567977631851433060491430851387362510606577731683066770260919153645689142245292849512738696469454343453244909157122674437948826878802948932464887625426753333164727312586205757747494451737498550999288555390996703180788707915899614914215205212632649319650130780296942698118881135805445483260046289796111407340076801773357074991728110992461406702954547694937358941422984922886617867482519595914413504230753082558476046952107907407102112859088843740278701256309148417787763550073759954723558991964772232436974774157360260245795320048577501310398128119558636140437917027213547834608643741444188846934327389130910006544197749287981392430135173230530100702157097306526298561737235977631744092659163412323140320145506886817339192023985436552384292584856969818618875048054340473298250439217911314631414818951451656727653526713247035093286668460417596580493051140819337567240672438178147309048561742299006163619294419674401778922758983717314704157092387014031247472914545785152935988351941212860938609302233557640371127786052760302107580631845863805564890395434535213466000004875642320626652821482073281786517558323985581990273329991416789548205882037676798856895079504510788851976638241171443943040595113216757515284402398997176268317138576467450098573084636339435135034791009398641760322348478139935342504345555417588781131691721351729728914994283254199074988362143218993143273461321797970817408692235171696259837696891584818943744064250104635261022458013609028131336656261886421693284504714750186699593486393274205136600777341134482651466932236276228218345820522595427245153165829978085412847583948860693710422673895003918696861254338320902105378251458359578318503419955366693854582013519684339109312308204890886059537603588325276666137260716576963362234499847503982467770607008351091598113999128395789540411151352716842292359053270109206595659795930669487591874740091771178413415800837759457599843026447032291853253218803762891006781770144675820737523390235952521228945970952305949664388829434389615770613193767348066185135904085758278034753620763335314525029158274973185054245088149327157418191891291657120132854873158630259148610694505755578337354749536124687085408234061389201284527221871195023054656796405341477161545324314840943040652019653139338532753069956555799474235822197704078842061598233481558098246822899562276791403834784871228935177121204451636303248389529749045842526796351046756613103953972766878910938585641615208459030152305880965703003277891744161832288998958509722343770093571454194592926727893120500339073720738291898318943641892774973512614971689541033605948709986939557795484261415901434280342916599834010148334956337260120032165199285122653739876164741842115595604875923530023629757059262329728807815282391968221640340207894955757909100005041056573998613245573067031633136073441381081582634972375653506238187076108221575752141126860563313020083825959843884804700234460945840407636862642360787675479002587768376015445351091956767261356845935781650778849092778775408476983577021018350875702292946598222043198582109237085454679183180464072249613516329080852711614137257488764254375277221587764084313867091844138021385054235490415052763738396935483140722163418950879011886060487985636668130307271999212968590629095661536727807712548724568667804524607181544540617287217650973752826867772518929541364670962830140997689666433345910789436830982068515305967205413508627147661397916592017770890077242838167756689222483736649027071851679408866639135468880639634147132928101693464546158211820478879601990332018695704864926701490533680951957633311599254033898753640724602280483839514025555351090792652957968761806911591110786033167591392381789541542983457665037354227070935010376306603781607129606266625430572815472233974955304643301611507926565766076343340277163658426784089380101212403107345193642638237445236520804788837070519257257260052945727120193257650948104625931800921145323883879864677033506735153291400071360808299365759093073954018066150484780906984187243040717626592377394062805214957032202414404504243006597174562362733981912063109352288254777332455581061589148777567426373799658025928245266287932566194007607397900469889859757322512533623405411638817204263942489456504398339750823548827263562125006212097573208260746947902040937554280257461136421500462000720450013379648189039484700097606427531113413112073706641712837377129868880977748797998751796181778392199667125669778631943695068374966287171686178281560341355729439222161790027676358998933182013764439778154191935686904658245973112782833880868021344762578835798854575344041528963742736620847581330737268812567387070014415791185991666353084349791799782496780387228956124687379703205831527497698896077467069005470117611909199335112371173491392715176029942297675475412971484514345811341569037494553087881629222927010450999207664985747334495637003679729160191423360979420223685838376106976010625960799304184241589147864296064751000975622256834792088079003735592966921684823409820910973133481565260516813786423208122466217121818295741310487367834464233585181756234766731597096387534831278027329320201158889622984524246428866048693561250185070199972628561173623968565133131762217122986408348240111154087668131736328948817205604272573581691349328333386604607255829619447636711288711965086563231311567693658100331235186535419533979629333129827708383222526656357454820448769318597789611075657043736050529605327894829602558590034527920945091839388138849305954496312500901783547925342287995446370644058666790109516816279562864017615374917282144392573310885851807197880468738413690150168482947795082570090484273452183408522631013100006014556858015165871964340556745812831712444796117625052759190935653143998984292888478083228046205342832831069543697487219742013828470272782208777456006815411041667176654519199846470886928615418348711968770877665322132035869450761320932281164901234983213094091449666238690806591725741688967732204380843082240119055277110047021238057598218815679570445420136237238950094795175828564417081468704776726563833992592406295603127338191696231486921579083355283561535624367892474053626126865537099843508347914320995260257835968716184037925988301077848770027289907789399375215159521936278149304511623452935277261151835606530587684739848473780172411734907192004772371401709351567169891339474400850204600760292408918456082920621606300537111141755012615248412948534427997063686829056511444792796633877926041102957377048011818927013887154844698443419761345762175332180937705647788581678344762364011387457505703831128817754025170056353877879821262225178906811845258725753953681999505250463341183775317730774228407960655494041660517448608030169148571627769501749738575315968827047178759275177565900668663966869804771101530459024071352246469123733589144363858482920075727425846430415860834328200196566755599614051967327560883233604842051201181960191796324075692749413878944841956797944957873813715687171317446808600992926174476428251557652346373019161691889493583102297811266468501619739271344115156314496486092293840817947973429297780815134591561800265639009014301513947017016707001769359728323515533125992390240272439375628250978948236432591757795626215965900412672197991544991421282078441531396617369248009796370709283837591166899044860516623360578238376215910243377589215790401455243651390425045934339549815754991246891887895185998961657147631748677141073680734361792304791598280787512986102176493094283270266243458617270688957517682523017447828871512195161931372236268775282537520194209423918776841419199039341981498673489097480598353495428837636225832153277567928334256401977757911312227006661743780870844493377041253256855906305330030863764432914194700695876395582491818660316060767986829994617891266163837880574351384781706365850714689423815921330616605121715631302523261950326315544702893436302575476796002520822032916149150216445560070844284565201761011651886072287843630465864074807077185139455771800990071292048719165916127720800970027200060128776688129749915665065615036535378679651525043846125630650560504965655618390675912235256218955732693459022272095377346450929045064633098039231982333960536290109966024297133185886592343646414048948120247146118632813949017213866354576271905427554110379683398651768085256514660687287185250188999938677344489643617922246890483073884041842202530996615886704966919862470379707848646755112261605710367116875421997315791842426147117979456387954030737504196397669153233938550932852361540470005744593987175322280810920732183392460688156463411929610883778591588088357392995449738469719153830466196518755471642846225366885990921350529932550875423906284724280464058478898257883011196174537083035419090518101864478998442349599970066755170034371667353302677961699654699120926102773316978433900667766272912401934959156028472809848103686209132303721560616585971017579543748070942597232821756561121280379299820282887495569145982916175088284649358181089104448375846118538979492409951960871687160020877929134574985215884919512129313974257274606940283987307224911702406852026554907771741183179918526428399859874782227978533834227215581987308550309761663598010188998817526868546608704563129698572062547523425915829897862231370616050258956861864385158319631253335194726094715980400082410937794509277256188710273167543344412678333266476459032341904674918327338741653591204673727615871879053214836051014016555628917941213079186651578614360520587022443005585664869815989741592867792829590416253372765183382377940199099027967238430207635415702187864340827098112110057979312304069577141758324327323823158862072889378728141302612728522278851559755087411298033153556073970364889449506680451116010593512897085375512572780657543141685912938937572415667898894014471530508474935960893086050908488205442814569240574587653780962129564428358027429130585393276218089045365431332035647582905432229308112672870212130810122648475818028741295986434576599391780584157653914891352543867663584209553076716598259263582551601474841016812633963993814458198834425799254770079089181630402660902243546749046098213358173403462421685823411316050534995520234090721912371444913035736821283986025334900428362672585242135222271494237356253959373556380950281439599284229973998980779969395464087256031477986818477896129150241963589462472554273270584318792413696089858804020682968337373529057627196362841665808562332971983015868646794823989961991898833768167380792523797368018719651719049295427469105416040685976440492017124464568026606049360154207844888701192800157803915954209428579154736495752504382592927603812873618870189050381700719410356371676786465508442326743459479256874559764552112086224875353543771892983365975244664249283642542896481091993475868384592376220891163774667677868332027891487888919418357962197694224846520614911743763664605192215020534673358112885900913164931904683455343790889787633705269995785743201534742298661302610080361171695746083993499976769047069673868940857743151805879287183344187923277955473994011417652978186843363855559371249667765261000766428249004462401794228379123978197626854189866141504173147732792618659447575717198867924109621378287129726974574268717494804465894401520607953429855281399340301426370843339923486336318290266221525768598964304011301933492058403246354199407987137581375556820703657094892613221648028704116243750388323382657672095405902869715498333857676267183650564178292218460762294795150445450708661777107192293751354320891243553549917353308156468347146568252715306086460756261840485513400410805635766504492328455367309547170685403738595751591116551667695336726555745603158468183368997264238665275671329745037973327530455226155877647243438803327113480198179517335088803309722443610643799578083887662935079462636707831169735762680574714920138473886279928789868721671770330817044444640272341298204510273309319993810482111235321563361617776309840297444099702055849893865822826201931399704435591240636928376797598692370489226561006582043653759661310004824275145262994889083407051895919415056088226970819697197372609919412793684352290263460599617262835089242477331197449326955521973707340409093190315017021642551409148355678072746528292748973625935380857148261088642982980985810028228766082950002278764646064956259171329328383633366078927505485646104798129793617393423527083512388720430751593078089300518997243159524353990607131482098798136251601760765118956139820793048905693953161500954574072363187350180203161665623948393457141062491213426637030260549541624576727706256156217030267626028863254755078855651495018198710405858260494845908592158208536406131033768108272125477355072010123179653092031371564433034067782088125457676915750614258979496627158524652320472400197108720137478156094115341999798014765188052377622384223348241678879381178003541130272783442795382077825287806336041850170021331946263369526545874225790861906454575506785138084752565062509270156664126940115534204681265978853365203940462116821403256193791392961425569186853998715683410260741768885183623328160531456422739602398484667162086438434363509032411548623004663085902479235808654703142699125729460036785111949114695439955489069328662900009675422491948093986966812438556383008204176834526431896049480725270044417373153664770308335477811725575444273939115430262219291974630513892368257037234800951074844131673100310068440859681777449469881776704353513507368555234386096548501687521392494647716489242614017756254249860060198651973053629716196293041803751528508601815882542984998327966811242656540638128771474282245883337018328136404516136631753709208556355922410221938483155232806046815001894260445844400124053674609424618446550695067384734133351387247984760850479257779575262749192505646205954123558702539363007019012159743457783350858204449731918627460070916569080165677221627319007618977699191034472364608349667510373188091233275076613288274984279890012442566239127719451906297329980123301841192777274440964146103447248621107251020124293816835538509999881797322700680976096644163749016029855190716640131091410980669616995893250484194725882587310875851979090440112210066314700802933295038024986008389321440625846766264260042754473629440475131209356328977477869720693136881292542084776827521367713444130913402690158168077235551721051348611774450495117117551660840855385741342195515774259546117487423350158884526409209360796394941935137274351413659755784570117526997890957703811929415496035327811478498221473294283634114121795975438815995363572381909699966439192876754862146859350899130598755602691082755501331335807046095315754708052577751218138227258797466614127849743850388261527264268580461241509144519570583089036525928059696526942413565205349144259069243535827174593854088560204875233536995944664827352631066534408688156230534255698059480808578352796459821130330095557772996895248862369286558368933959524967763150767602601885656174727565448211689295001656804367868579350450509775274475129591457969835602965018529762550112678045414118500631366171000032228265575129821626257553927411532924921278292729575716175098106959831420099197280255525223062394352808000596487165832501638849277903958035002708922668733939339684389477267333764875950254935410833371580643711804884094129162015804263910340845248745621723500395919217144289581726611162701909229445414673660536289578334348105330850933955459331292073722937991455821400205198785948299910292379910066947143155385260343150919973606658453553552648441164456872605864005805725770278732160450339137592080406246058714788819817980556449812288710429032495616170545761169905507219134789266100362598137945140717226655560025903317856805516929791336699495790935895950781496729326294185503862309187321056336485538479911491053022272981633778174955742149719761816013492466238270804125104569832735200418134949008106281621819264768091997849683119903582798751351908110596988708899449381287062835927118997570172007572464454610409175404805489700711684489959139521397919634569842772933509010485837548258838572409763371728881700174259053327823527005311450079448977955428379915465192690153290640383707247771305788533097472951704188354850122677125210888434388216526666270844191925533406976312759857083630493852341364220613285762388232078787240093454917965902039380083250001009666989313748140663320809335720325994916866566997461650279402872911542463029646038399681667300456220219742453815251693375841014691275419345728189782585005222438284721946434118646026618368548445389509510479395040951078736157889149222482907634167372457367097321422389688138040835965731674285991803556513047550381486057779250854437973712055363018721838249743080339181080100423591564095298208786310697952197108681847139788111179460777766620576375178154314147745576589104708000368363346560747106011954253142933323976999132680912493504287878120426177697828371665722838742112816746608399171066468358762149413564472985968148070168584861155712722644300463299745448444632438737580885197097045841539033306123280349654065286065407125606269115208255880700248109172283264338078005786362089106221554196403459915815454303345729483426820309657388458573147278941932121185221419442263499665074473495195548639844942894799351706295361684502819905463569828858067948487060354395952549833648396668604206208256798324647309756619812988892811395660694666838569158324832926121337687705947073030059156176957583406190159878700744131727364813566648427658442980392786734811961117629310992060954186498864366197682222448709805018370553213934424778718708309384119633044480673392693387030923619593286569701080023768265923403964600152022905937737568101446315847289412305729984342174512559790181262448767917020673197706621941830587132164516943348175117224298834573208325092616253016212966559783499849580284372812336428594391948881482339768707707666708749937139526776767737654312167671502472703992965994355182558839179380215051648327645495924206297913752932420624027842707732772617225329405302157642179005253501329846850852742583718078150214900533564582017797552029293874949533963008089240203930738586985695273070780806474736749217890062603103784103576635643236311053506067049771722173715866941229784113545267562921309306604840764050919793091759754912736962754309939122084758177406188901828033862020565735029181626255749817316188180910016205997193094577353817054829851619241769855692147203519704006156112321329789452583576484513090926091150392699704642840047319072097176358837846326032457553714785525979037448887033661056307352961296218888599638435003271961083841251758208472998002426638505125373232780561305233219274824524389584482972149221086780388499631845366467338996485637901992294920070123113232742512774845816195061823149523385829533916331103840736803375826556005399313621791739056107533126077918670833496150793086564673094693811140626619935611095951782838061248640476428910663187582549189235157529212119935165691873853572032030902861411986450247887017171331848332115934524101231221337097246393663850001122322191735621450099877333615278606228549128127128463027955162825961995002640598879855723992540474577135411285996120613443114482964380518635348418549602015967110678669467145520648788365856046913897641413999732615670330909354027287662475176349768757893475037653314708936455248236226526564803554535998729613397024499665643525607615794788862453846844183867447005928674702267131649049048009872613331912473230700496017722363308091844446914981020561801448202653347129599710475866307558125353441315746137104667007337837760870186262801600017622077317169870654642282759265526932568207055302757765451521347917663232370038907178270069442027797212747841893549050305901296444556924404193874667061102157185235173030625709063711412231238478822824324590094749736191179344105727055141066672485584460961395868740360791641631811375714392533359409974206635226107205678972552760602752928772361552706046986121587612058096922343967876434919375306058451768775967663283440955978240152528843152878589593664113398043269278310386063715236731750915152648632782557688878835777079136308105672401206664959147950900909020797825781060894906915826552675119853593708382737345042138578354909051896927728555531763657120697628797800717447635057908670194684158868837014745478043389575035383732728789956178383735474558917557842993516444395203396476996817008766843607347795480952474191956921106032430750642457764802233056826449941081725899645291371826157435047388716653224041803448477831884033045427326232865507809221681550704705557515885990917292592780179268317657122952614397522886121270384707265468675035260021569673778675992489024943556666431648287059713072287648199814240545249540836475957053478561038604397228845578130094501837054849822950265768423978540999674963832800683713749279181503797336739725238551477113599089853746303058406770387514061379577255605048020485896274970193733863717632646422813066933932241028080127455857623606086082630272510562119401910232792057052427527984285245905790085834179261832557229124429495934339953848954901230694788055627483954017623206485855902889456969651716199117671583884253262295945016666922115177052882761447221877056001373154979348853641003865007330528353197416929859808124857266847825837267112547709515023261829878408546344816850439621755231330002628300412202922076904189639737438805234686879863357903594546462183438581929489191617943827536477416397334517248641274783117381148066734618589514979174811243570034719802380439318613939199295745346289739153323109254761072198453970581678751869115486791754398769954146704102964031046824103794595970709494666171312059626153443845080354331804085820184930422075406637109573490542267064590672351812705690243877419691110251306528036684279978921258811041599997094714674784397708757397724179818191907457207784789628426247272510090276944293937505635760758916538858033535827969534342342155454388971554470108048641732624407191197035488451816739969146412943342491685911975410867148598331509759908826057793931224272803617734580247606499872056877777557044772510526675154532403111767128529838939004228647244943721169844868116207120519125487733464122516805118725249698486486504210410010637322290913839669391272958042465958703150090435271997285177505989562541066825170445729433265163563621766202649158414460309933124374607513391177043276859745019579907696133953138761566952031290153213340777950012000380135756081420669303894169442249692131802831396545438520158221814408586915377751451304566243341034640243883555140581425140128865073177563389658763662722687166989512549602487167787112884827954709353680831996354184762585356623246007576600831845236571394958381758430522534046391183267682246873526263567371194120461384941003856377043986762337189968422697353417495599861114082449679340612894493424221737770954875245877645939336426042772493273606108151183542141198882829167090820741886955111341669797871863821848996764140545055624786427366914864123295726059172576359969768280159586587897896816410313068978318657084270069943828157891976831122484037000594291503848126223724316432320639078993134640456143444783667410544943237707170290431752832284410002169959136645894314220997643536721773341702654948194884079630646962112026501427720503585544834828850253304168460264736087043077815524245332251121623783943377004466125359909375080628239822831680910820481237832388396448966549938434113118378903038622988803950664069197654568368428089616585812937651044214679605947166889902218246384759049811248546100077925392284432338727078863387938125750249394150868981077932498704389399011997266820415256128164655129600075014345352377050121803163144612873213871971414583229899582684440800562360362008247159588766411449533644610079569864630614118689877517336043767108257480623626964528479595924309998128843175954001513287625716345466305425286918702629739554353310209256975163366147008969444675077803480669033350093707842095331546820645250814892538792054261435304187277949468413602933550666016383375004114092933753122511809069351881201100089857794669444492670347640448239415749540220439193309883819585144173212762788989717842640844627513452270050736160842347106532801255323020021549897613582206732663867589968978149023928634020279211746973668828086972527860088767568481607627065121895882430989614369974099185651076310434800169035805695580980537113829800544678392250650322969005948546018633048033155014242411267027514657140294052915057107257664251186095583820738585172134579970100045435723914262508201026837531953424647320057717935190625370259626605132821815731711915499567714278783891893940311688051617733712531302237941529523080081953652433813934122101826341838461634512171828472123254280975713665758541139066795841070401650302241540239390213622179837532495618083662595579655103864540677479746074090694735128147653401192406679547449433961888425126486462169648892556417986020519282369250458833274554743272897304011506647703487861170784339067103951677034677695825009059417978351210645278439664918976028685193151631237137865549279406546521330140885737586978682114454649618457289312960211421073560173584160785243505219808967097041632063789576847153429565388161815259888660004103728871702826181122821662188229494937892042465941893006065860188420628248881170717120477955459683570493794695652294456294878837647634693059654982018697718067463484023020748164494127409952499319765195799688136865079362964684461888475152464232148311507398734611304959276533320145864720751202092460749265825483601670209012927072033295451733940979939499720100191903587651582066153023638188735138174082251301352463857909406708462240231231983524615211825377575427028276450403905477529113133427485193536281003562225083077178311108790512150891817881924060044868634842123885680483098679382460608227202686711203250066442202232864411538973980202621587068734148145936184367018366752592725276747511680263124069750886146213203738166789128103256677585999283829676586423430269343826827875153549603927759517188447588169716129556749831397784678222886147163036225728895263353093526080787869541265461408452876293511150656068524643862241086357780813697886327935558288350570683213950935208554002920543580704982289556586028996991580046203447408269513464699889651692304054049746469543691635681987812047555764001199731956413553663970797562201727070685062722010919860152915200811504660485463336381409648960276409394335731691795863318357906454133014502163864400286436186366462966257188012530882450010493677958560746146848830781542526029931033834530929181757370928145426628785439569129035503062316623020756687797578595796396632295637230907687757226425361651546726997048605720963232682058381106029608320359106113277648915096643257200379657835334538561449329124645548532458146942947491316895910827303350115058606665066117380463567921720023456316237497662345754518155406900732106943571403456310514170559846773105686022504597087121963835831666724400145035635408161489200270115300218146308738755120000603304297786253246601504880958583074076631087746616337316158487858621166272552194054594955464522335784065555201511398274300442812517561561485291745304422051932308223681408995422959372873311852140220422048006039485471249771207814162135673276909259480502062170228667371881554170952298869442749999295806622036984677400499974206306951109192325658279438338142198346765976207450079208041255952426368236427413603063077589935517666925609496442701442082434931999938459906330985408935881676172032449424873598027702844525131374720703385856601840115164221488136207346061036986561667244966541326735188943811728835715685531689114477402813400409457680027643161127730672776673116846441463077566698346971277917424992022238179972177350951927334040991613851384313755397727352594613141808646004249784349357397128538097181870764309544940134670428866125888351951972437921282281074776336168528438489206050189267528188402037717611089263436267891122915230246406791786617650188146302408088594420638466143888765195131632159052463024448082627310523830688215053798209112151028660616208755055474628808506725800932009290310513407181608694594031955616824159131519533553083916492749846066050365382541537899418938732433072643694404596613080739589356665581464866948670766465043192224030060002678673969851563592676631187239780745906267117945101124278123325550899391511326239607243832165464478621609836832749646873928338864444986812260527194063217563259161633346318533903198649490975645506348515958178913381370631925993254611546535091337366486859428252622261767862287094615794892452515618014544903577905905967407288330637261431920680805670389186824402767860326360563929237094250321371352789593573280696692578265454917715266286170402899557951340099338452382729769449163624835100399878662134974966512000416660147801502924239255023474686556521790064150394648159860187908432532365617321025393695614540160653229996588003611607154278379357889645101307595642261994984938412629704285308895412741190389594232754003159237726038824198015478482067925594863847581816955853535784330790150496926296382022687398131046594118220727839721368813924112538296494865383107353985401825960012065061385291712312933549362920067735161047460945455554529128523210142717085971102895238362335158360815299040063801863954027307157674458001124910640818620904588409898679243245094259992084461698211300052890504995353388797098684240251935695181950745043231466147043399521648298339240325876424097516365434436411834216804950848899950530685995933840037840953121174807092428274893397941352935855410727321569272807203195423251023506089922175436875496106402620114868788351974219247894310674962042041056952990111597313425845264055050999936066983087754123433731121945854396248882225413421178456593211911351800232955686596170666843755460334083550386810847632992355496215986096510793200090743229797308592935561312403438640545316043725387980819186641806181951069239058361699798520875762137492234722308124198436475640171715958434504479584301055346296481742086744662823154620485298223569345337180638257117859573739712487275937010008655748708011956322878916803579846575734015461444653768545027669088383785274482333817161895069534359958567902731980028028384243788196177531183093052592192506237137890779645080466209129896445918407485549590820993499235604529983473074256583903268541169945011991953053556876872836402322118114502814619006511983958299887551410664662661352311983065335993864272343217860440795512328090347658533354481167831813069452754605705083284673552588725393790278985698490140067400949239268233268085377049036456815988981323600780503987712051298085357112383930687834424311212059295724463507112312746590874045179919364654061007389203347683439721060532625165486373374826863866313719524259951173228212730770214997969650601364533205391578725983780114023184164442642462333454769540652031133686952578614786489970515951803820070560890016996091172957839017397533611525057959659774339492105108626899572108287157872778489128710355714696016847106581170694278495009378007784531473499039320875149134673432374310500329751656483230053009995604312331600048188147342715443376529919606742379894753480005603353979263767978084097912443036904372397224798439741260897690279222037667530141659409237265430438987146461349317823024114884058360590309408969293193861018006389133721623109249053127827690923691933595420661112857932348817292867882452264378764906407062840629644361099697317215167849259161680299724940700220917625614662513954210298300819217808370698657929721904665535727934095744368382204963453147070345444728622831431936462625185497111889866962026046492320775515877989384333162669943224640372552587973033510012018996139639970726447654652139677790527612974155599740207319153764115039096346590631826375711862090881296332485075251424526210418249718525983098014931402451242899242863522631407731027978700510043668346557194271697137302313232571593785224748112718286773649399439875941236804047770324293524740503459711498312721077843815541741841414456002917913112135141507322401522328982824965929267990117658213705703763226649572003044221717168315824181271179904710862666708109623229131382283126029754067173298479840880981037037200629384418621261951799229150076753184715071650733344803458807877382848109195992337560501831238850639199438977879940986136122444621870050669505696476829268498995449414405272082184002492346289055431953858472514009260212609118630123921087562188153667213858624068892551758133479280480855431990553159232098821443645107987134995271797799961398410605097359623072928387348419876462513249049657698932825471408110050274488294037967593025875550552087265021403474905502199051024897083175773048553685138560458497021833282092345775160472467399062321712081985282362798341041169930133378249793633791331849744915814538796569601991285848814939126144311404553290189070732717828095609736163633711587701343198071646795441133283402218745357407677353083141855114349174840917462094863870425764036548631472535145290658743406988056330398700916270138486431272269548236132718110890682182017679113248673123673537064579360201517494016752573600249818058573363091931034371953799643331272864858705512139586765903463485838979326133468501858698914385520776500707296188049290973770800244869747748566622934539995037002705049152581383206024566451105583625820029526306120185325491593632846797544566101280381500709771965119602445097297809847670736241724647303319756247229471159523983953333253535516699511253726766850489869114065556866182735629690791190192956633880435794929049441005946276612271138880148333038842365498659945463978575187488305139137634335961783719958670136207368504297243100319091723522509907464410549242349965363122145311936340653274566992104241761739417762284694443915124591387470331286883800695010759590046283795267601200732728793845719490900539003784068788930540166995529008800215387891392041701484883217528012660614446914373377581855794018708977096996359432823865188275447272318651445207227846348581057822374077959641520352362751755163739542896618388573887813806215248160590403590182060812994945803387798352546275944361267802614765318685528445457159690893579355106020691406942307761244989149796616062450685658096237840695830425178097934699497174423074628391628446971044852056444471787955575647689369095677082499835770737476076528349445833054679803697937360041375935436864121881046046909111774824722663299490395520142824431958510819178857380114343665286292970052837071916480399021668147714235300935716984948138501329629933139429665904856008437105254573496486291168881613309016434601520252702233582331751918538056340836512733880945497915608250337504737894089887076101055040871766150010872572792784992716720632881534011547237981904611549665917563445548779738399862348041870440106092554193459093135138909906861763738394561029254735839679199487837064229720585428264617897584947706482516384106641160694312624725187172157642363048490670019523395566895097426875081138047822609054629580747500978155247524315482900003527731700126498454928399973732852953277764360507078903262663078902228033364017234583619496602931386892074502597086277445048850314065922394864665403190269298868356015496705453409593366717820496084212308584098548596956804944572810873444003646940068759576213586080741377847766063545977735714916282321718124311657935341535765395852892237484622514707235370411955752064690635373059985648919548309065302742862996677288524906817898003856492929523386927349110115928488415798253457605127415582782870101176798772531591494248687952899286104937328745886850391803960555427469932015150184396690044965298163919364487237843345719306702861009422478326390475551313106756871615451188123054105628236997409155439536443277510806164745727904315839764665231640814820089449459440784523306019685184931581453625260703525363549988775055397133571942289468489760890015106929436183508351738597214680954322994688333864134114776615433317727512562601239391395547698457787734161491251362033588735974210038909511672932116517771315646023299254816985956074003025396577889430153164628113379926137520714191648747335131884498756444802723596712575056674159994232298940656913052081968495639342411158271107134509218449325833567234838489527050795043665300787468683001409202187021498823658158608008440285581298076969937005656702981569790847548698135364716019155643858678353001229118109427916662140813786156556694210088706165598563777843874993939426989575660585930855624011569433264316736130284053346586998107120125085167287941253435919486098311833647487629816898537733778795005896669348797735299906117432816793206418736602676723738926589824400177330469820071922977727544750404425281218159940134208651850281616719906658328435503836769655385523505195950715442445653304752335375578773907878529863706694119141473132406841485149842402114299359048303015891689349007464022497940447607135597050319255988344837963743765662441076789461414917619979305505139322605435183042826843803990519385430021571664043141171805270336132633423304805010012843427897034887122394158408101122903662235960721905476947976747012319948480812846889765619341434290087373410099053898510815230056005904814975137707494681795159472274232185983286290799019829583529340954884932114471493277235633439718315755198474230433711325299119441706216636998477492354404929239331355189878087734626300599509033224501163918536749514671563769406320453868633351062717177538798845801811524873267592540820091719695859218163356539904166082144180187370346116378889606139336697262867622117516652691671878786485050846346725037503299633421288503625175838572195838874703999045668079057214289671540386311746575310060916049211749533144898444859102207471690651182010289294121963157168211503211820065214722346433354254318491844589020781444708046835187007501410619797581013687639423986201474389204180538217653066291369367048443729868647075531943710614537268327792541998423805080705293728595087497997797346727803227761099559559480593001744111344861775101083153675551852160021975182883738404656890357098192311688625429684412621774900935986172265165495019134988161965915235863753033699855867060775801652561609363412812758600142021541751041548188035721851455811931334666065832367182221885271562931160053214600196744964117422255673099084710618911044931277256557369625805725458135856803203449425077257990782352048011316057461948669880182133954767405380683600382812546467430049776901624796541095145558052362979882523303922062613507331969075417920502738647769994520594944994691420480995907566885519396857553792660426981038117781968443917235010369897431176001507133207047729225914594379478736578049244713074544185676025262532729006946632848760949573179046705566068176956542189418897801015393106695168942920015332316770846901195137993787458107820785717711983171068515725926963558285390856852847685031185876170944308004427911826825464609352639734223498041327170472673807216799586948421351958461682063187143973546013270319774370883407642895011573350540988488227583265228881385064175078002186592226498404592759917780532042287057827220865900863526676726896629655681236782616929141630097106923213162805941390405675282268527486397904423887266278448821113092237051991053311368520172598436650533368242800975431246789916064519202465270394295198658200127546451623515950168732551193436470431076961741207438083938390670622020861231031410153594640910556042922915144303152875405264693851532672716536882708681308468545955636563229331281505313122487752526739482665208875584911601159886269488208285019419800907322668029839317185466546902517544059272174745823567719238764479532876563822434698794165938242660019774247930320501273994488048828675666666880989269079120383107935981472491618411840318631645890615498539700120555181748971126245831507120874242671393371664599723308736380379269778743189601356893716771571703504913229676678417335736692375094030135460461286932313233016196837489044428766687035568448459098199529591145884368045259629157750558407567972519472102420921244912045960110750621200958129960092158858869811284049548804468876152036829708146776172159834920087108415927219254920901958293294664503968561601179095895980117254449493427933527540008298738144156012593284587218252128548528951863818223136904991252881945797667728107850769631601042979777104576031383244734332394283902083104192694080656655742090274262324108299526148114215800604043651101189622274971473337010559367377386838019005114418258188385627170234033958248105745621942577535343207797641042340169548596845055487792274310313930734929298978101256599047620192187370946477019715370370832249048802693206188492173053074306342237394842303138340351595245217112640785964810500715499899004715123817871331321313687995694207671388753469560314586237065476388181622288279680025611367826967031945275251833340654383099662975978204118298495689606786144173605684711622664815459279866604630656153783045654633855876106449867907709852609392489950588459214490501054120494311194440122966329096535337111885501055871865614585699831090632668354181300479535255422903911190533570617542860020109291823477963145646432472746220283731160110862767136802180543414999795979343602863214532010480121648430254383573253260708790673877313453407962097700335235566365648101040224522037687199760446068611504940629751279968856701503002741506432013484336898405991488707778290114344825285860525257023030634790705635303563334357822513205411970209423002624644702694005001763558025485931879299183864543555210830865540139842690907133957017827592278006117077895667710077150708346185886239064728940553183924261902267446527997335967367170195558569629636742959930862402624203964023004175709766002568457027723325181692317336429590631215352333357875033478467521382147700189310568280322639155804743990945067657401671225535804516565642925766911409245307821615958249505320375540110627220712821623236793981698048428283987519242025388633222324739107047909465616240311097321148547385515301084205220655915311824458292557603798465138357360237848142288233055999518011674242595704615609185147621966840284570254911317489320783604217732547644647933049278362661589264549881610649912049796336207647940171879386377065051465351314479899824764486567932326608162238376077336307037986493757581362124323572243432996969594715021330782865623734379489411628030613021698104550998901364826428714082163890631083993634636338152844907643854381731039239920087052474336784989660908975180830576630539011834254595465929944690224485200743708145927556159079568397406168369426682872381774172127771796942100210479046733800972161616288049472848731196271564183871294202085415549700032120948986484800546848342199516626388232494549098166447973089544523051191358606461178866854734314334900445321772629969674275924954705014247120534103544008458494508031166546251853710986120170940890191931301134295173537734398363056551745365829532565697202160308100973375008650210432869609476622256544610796917850176629594603414812620996562844192590343460728141827834637601676230034079056092305318877708533438483009113363033037370643444053358123996171772773964490821863588112322566780397200095669285288425037153338453825187609013129571993723433573664137405452434919092225343187586724550011956659702573313096282785064373566146961836701887089535290466304113515717439241532529711528565199138654081623248204217522375783265152542003764839268152746146283597710351993256852962821566162428278271887809753774484327917677736133411270518262007671700743774938854790007992855363962836842938308282186088286827501393252078063479278884075261103838639513216853136251198498337087502450798319406489821159412155354513111916202900266635149556424872609605645922222739032388898420024416198952661939281700105556951247876778602405994144058432463444111960792072552911227614025271184877249749048842179633795947896235942499497888924968134306744432719713279571305426292081280838143532584477448061256251867398179390686896739560981086910872567582371394872831278540856876739533892882173011726763347414966157836766334525370896046112095806591343096205401560388121665688310696983103489204269282687805672619820400228260650502677040243740284197560091820290874659845592168355438428202412660750633082706816600510625042765923453440836266974692721809881339017648631653214115898857361386973039027714471179563053903446164998287041340378979077784645828536399908380480281248505274064891491247365169518780125302685535362356250881818576454230633128294892049293986203169500966935465108473846963482681956216838910223467672181965691476712754228663969198477320285853178695440636444854522391452651225187228399786109075190982648188368407865452914356727359770874657996152453975158010606320790388917984792516336601370330898003817109424785589727298433471486418124733643606572492183116612747027722487543073800984321571174486185667252794384803054813024702414179520662142862522739014062892329546381795273418442122890305055054074821808333745265411374658399189981746525605548816242438738801125890392344988961998172660430158311259965851705206065325148910969453292313637199509471557495212255187610053317379273640262875576271930825277069392215745328651795518690919072828043131338919925375270570489525238682592358637261752434748928051478652921692746108684680493114782552060860718233829445096989080965766391390357811447462133783393075969712156701857201418664393856587620872687404879347285039736793914231227324169602738531800785740663941943564826847781644490041164382769095422905792504194611647494572106845693587772804368924278857096382125605578165919499195926944396195404456623462956516434869865425221160223190824847086245610480955146044193460269734137555222617605965688244590613033724905212916633642100467488005998930977566347487129872746106148663773728418307794833848475815330085519528189597304773719868637237024254086938509964128902422954866954505869001157700952216037669698745623483044638397117868935151717196847489932097479660158300526968990438320930516558644618633612113199296517758692003926990085699654057446087878192868303302958350556072036123713881296258260590564139905424502466460682045156077146284242835256240264166389095519633410538205723505952032814345154207914714237619146825371484655459593168544427790077123145970276573139514210329632683561708694892391424839397950607665509026011089584653073318997715739351666688506273292663883767860876017887299742302513895423087791622896391034381790737847636278450105298112758768286235649360278927933959532398903847662945721920399783838492431008006971664265394946328915841811644037607143909484702672423949898175559070853262246425173931545522952799467975779504245749010767771568459177354959195197655235620366392610998268720366939225160578899726965822278413317730100256500975442206647096765916111703256467123228345135178974844594976553709952075731944727972516669925202450710041352420487359637418700375184969881063645189583757057386785197274168232711534960351405445678014555388328304367457709213126260628357621969958065495600862453520973732855816451103583631710632270879911715609767027798571585456761608831142369285471826736615935798689936396764610788234056983969283098308868670923501234270268028721547447275972223318073316533965723203383560349582123113805315997227654812377559666262445897275793762234237328369019445108273059256479447874724639057934303423851455662233211791833921818766020567551357699663238587618316796898803121724383042525751202300742108000307730894868366634696444783234794053899439594288841633231211938152220135197584054590783720962412833284774682533008972409295249974150292024901685375882411201426420010506270808424547146595841593408601250392956060697346111709904178315429567101685214077192299640622643072728834625864987650704568222957308789594553069828501220243776778656299958270612487708171573673615844797492107743947521827490369046739810388114494543347709547956717656088016003658338644840744806885834280122386421322394558576531389920513143080695776653498223166221024347760452166971109841147844340285265854747325596523390440554606536744073192866959428597085792725257300525667892819904332543125551133052172398375355800396111958539231388387586692983588856033081141446677165002177349492305738426943256728224405301783329302677209064924333143442169251586607271377937065191530495804700120795101820946615397635946284867424113599233711298695410578481505983059681411184206845468061104943225483412458593021372891058775789403061773960175356384274547443843161821777398626989410994171415280109164610283882388359712451752662828037346717027129319441221251584729381756489715265532321395836909530817623562956836071986554174423434768559329931680364284809564900890618284894663639180373362101874491931828917148242531294158574224802103539508689019743075346865567286638380930905647123199502476044309151706108729447699582117152922386018232135046960801658856844446286669293577821297423910246662233434655712766720307002279544511985097624076568824889591781902818653675225933300547814780353373862794204593433013329821189261236443365553752375229077599076550655663405185331591964779004399838530304082099477117908382910377495341013641041318040358446111982334493049951695331418471036318924835585971183787993204172148920537355907639236615241600285037341029596479971608538345661236207537527504006097781171532028138306517892667206204645386661531510526255617061731077850759703968782266422577826445461920141420861939913299743751257708720872218893375521225128471989299170580546140773682326253572375996751198535552251205811312254132020291154806623946982096689440622629152266188620698418311061583779708570969647596599947147145231646463865433007778294715727930595746798456500048087499533803770031955935358683523864041353543998170328041750782935130949733261505994379785178474160063386640280685896175275968032030746746302894183328316279013194799672865035444924082493808441817888771103920932093682041355844916008060185088643353568936170629405850218766670448328537924526169298737037674429680057577209700991484939919904970915877360678806224026888815081170070766905702060382949215191589253386517608469184753923348911038424616358024524051559251701296173096393443957098107088012628417973412791447507082881591481349421898091181671602942788038110138449113918564960106474586346535392134330913168605808686919950947676690455410534249971408438025655847243003810039890591161470400256240415092782464657613483884030049863840688881247489690480947162355364731802974523466462050171380910430514859302597756841973744837643002179580220640655237369094089786262384310597728648484798231217126022490586928984288759844411060611646359172728729419215963712068824085790617185227580593137335993052640848142723124628952677694487994355071393896046532331040792125281034922455726146458925511766876917364002813364481507817236182422675389585327191018661926041249593056274843954306665869811615717424579926993015759847387736669999430824383297944826085970396978438913861101868784298493243223624321796149173574393400722770630220642696822021946994696742630466071985578656159275694203794045228226679833116989650698540387898875607534748303845591507448471446685883697859594239132904209779251878636493443205000847698926054576030398969192286505703097376967454365140242073905520053309021188109244651871537207728650012677425732638978991156095825349367140388986083676404470160572946878738237173005373291074018218605194167119787411005499936742081107843232640654339177263351838648133339366813421824460676094056723283623972765571650786488350783549929427666400814936134531854676454073788234723226462625082947871261502635145278380097245694871746113980677388717252762050988551975703415278370145918335173213622217432171711295297910716820886470424850836889244665378572400056606691050471424346549357012733067887019259717679524290045592149966488717126676032622720026196638642226267016380513436836769278245030827175233423742543862509375386607454220612845402868900918576699425288941322586316030131467235709378445975383691575645480731227408152843074241472157000832073756453993791128285138589552431279836146741048380234121053337088896549500830152488132619670902145114577065730407856997931557662727049266629725183593667952455562402491834249429875244419337694161302370934771638133572620374878667094772111878196800210908259565231923984914303253309255047409537226041513608741130375050353935394590200364680159716245519591507212974051690891414806493650864741484429493839979639543155804541095931443151294077715887197039412690742381017984843454035423936366652135109047696170386423316281717824809815049829079665168743581005639422393635991358565581150527551227396500995110076937615715833476927975199571233116124975669387907532308213714182484389488075601743826019659446636129843335400183492292778001063310353567810403459621134298930225860970536417702491556716596964772245286231365658464891562869150235661276808309544529868428077967675518152237933734999345719614207082336294339462509181008590226180773699990286793725640090369529107526028666464434208112678725034631394772938561882922178405192554974358899579778013666411523192068152841909913041432331671560311214892785828087212316743818643249585781526264570915768444641682711574421485376253523212180485833780949533147962470164348627004277191023833272251742217465353013821928243035618836885993742259160751586637075925963250333163121150969987453516936332850908023720236850561100814729223246311930579061777317425607176638444865220954064951597047380316785499686056109480083099959101464104177097751395485425693934790664456661217602218794879566087606070730905425342007471004059605193268186790846850630516809575445910799881949065778258087071906968192920271027093571046373823291482810305127837246753412397356481765875627657981685002822436167931647079664613743056120151527598361121820073229168027689646046749964516282150542227788202141268823155481250987297579060963557105043742223241468050416355799204235847159573472361275734263803697021914510222290040228109062849629201014565301455168405223304683316550372426225956569847663083280653536826127393071302489793140491221669037489468073378683580065034855202968052696429689687178906357772111804047189235155905584141217242058212827312510439356973005028016820844760616894596981324720637904345552116062266276037136300737327173530250208495056359299514517939012826102780029554383710183448110039771726422113378678629862414780930202889630564168059320838807411641552760566693452498595280269466975365128799488025016509283440965577739208678589087450459191467546806629788469696788151027242469903279126738428686216262947595734011169049400883476272028889544622696001961952307981255424832500430324592130390634497190642491572110255974414330641745631557624337695082978808836956040594628497494430553328819731526176004802957716196009397966776857892268941649984584625994972653932051109359223049010707201961991303950637337134708295151613626748060132520757874604107903750617435341874616107345323734881010176595309218839689539599707356877562007989680653069111081545896559359630498527363428313694534224554291283263912572219836680965506638484443230136606642860948554050857465302886986230949585986816866004345872885193351394093025249934855960770772135903092961179035362323792489943660681148125793541936658246989259201918336054799276415986273230622478714527993081418070769001457363121716382370388002108474375925916196407793509727265593071950418039033785474945849114423307456819251308586113241409915144175961793984313760313221166578227186753106184952426187107205855894633448161059372351112667285907161921908116119359304666470912825591041905517288045534468931133157177733985070069916758702237091654544014342759310820453147547908288345234514310377524892617959855078960726147406154456078021277793030168360806589950647395342400021718803288382642778747247223566778300190282292216776017480329233613770128820842653662111608149626094342916560846989379761197054555901575734858687198791454920717563326521816132801534465328673539329864881415879916850185932509800138165894813750918226027598662105623429930312610753767981423907882084525703475212562099410703487707686941499104780757635709450194939991468488489739490739493997855987064137254810645284837025666814984194793573626527007910820536903933290637874589787009991129386260561990848165415746507569054306483806219993925508047904600884526611280596298162849295798137033681056419607110937647105405867005800128048912647449006804031491535304138875070292385303324553318265047181294832468700715375878531253653172353472707537040623955734839745617242894465011104730418835328702192111388826397600119911817071343137044947340644446532606755848671135453965108958922511422261713975262687491838143790279863485842760343994637633232708244756688111368550870939047697468776037067539524711318843863410195147552237805854597781112278187372874222046033778120633538443239539227282157325621509270388110033399757444157027218081615435068651771724770949932028502497316301786411921740741604739937840682904723556299292173787789576233263281966921729976205432808313413986659388528535827316954362721801645090259984664767101399742877688334237447969410532272275183210882428527746860207991559129264062047160749141801303266000665851792040387227062813627765865414214437731138616145256689558085880539844492433547278529212384894231678982250451477158352849444490623314431020372326469322106213798477791191100825492692549288049250201082051322567779186771271514296617368154684679302184275375865647894507621187816283747603570457825109436260968128226239838264183343707787001543982124220051954884459040427848132060177637646565531774916734428245084247441108134299812360452431395969087653696962665430012007167187838987603337876906186078014292312572606049407374722360510537396574651154721418665027456031833484352114850770615532801576338102255790690355804137353185163582080547830789543444238845049889642955197656588123756582264896603317873222357706592163247020333463318832280292034877866899902661920297960139162942340282328358123303978322940175602882482301769181972188333735936196045594066065210666120884292138181027724159111346229797930617467426733100207709030792640227074233385164428430963089516280357730702238236842692966865207486925010406836787293333720882848430483079847641865533538737883143554107957578492351270814631265465554518254758346864495073276719399788857485622985217328764349411811956295363635720843259550264588864086541822169317917283075102452430388434609363118638724806469234460335022791233970312647031001068418849856753278455486059829355159363168666804642422901842306998773190975078885627179180942254952952388697949626858147132680293347316689047910012774863366351232186779432307029830947797787155361289755502685176927582761008069845483651112816585977807452257786775710559593245807352520199809448665356290938902884581922358612831060555188238462563052620603627796178394436738823366078096367835574494216157140331269482744357446888360541996878887710883058639977125006443463228261436015375157529264209184988466837102825485732087689561552132903366505066431978153441524346048151358028398759493466066849190536513523247666256751668309850209113592559244749481046029520247581169493191601044444075446220610245636656576248649480208006393030213912151747575604920249699837949666872904838911073716159253589714342541523394057068700442331210439098520495418165434580607526476767873077560588151704106118566242652030984030380524386352452039855259725808958294554467380659799346227820449553301266656438614852717764842853729630660457896075090108311293848766897264445795599112264335360217038189407456182850068246173248178075451168064458579764094655606490823386323692963723062664394257988735139488412208418624392842365323523583014014882574900346241507023439106560799479561312880117700804079704005290080412104816697981021325672502533125051450235831985304961201538858940976760660693983956304964144222607382305749162610331826738757277422829241106201108050138090444221768332545314197384896247081726196253697678115858320928914829258624919455252050853323343180277753271851071674447144324602300793981636048971969198424604049777611171815391339872512462431661506862543522946735067232411713614194935314448326775041225237481378838050291040660975272324130658901256065292885473062361949780319682210274728420439377483912535161782308587369639020633233571179800135062892733451123755022222402625116722433853768546769646701844559026988726513173704045540507912743991188769894977634616537997656312781764031053211548478520286725797185096617388268134481259542139878800051727387379776573366415786679654558939469755681854109252569037178681913256679342242425776216776917562157337936052213239898211613884150328968181202461855056768967568397478875395436961611056174610680190196373980009550911577481883424650442747809141018699827097573585141067313865707428680735020954971058010636928913533237823498921220112667626302565487362305482593127438355688265155095656434707960880046545928856851286322049340025104625530757997686793652763559883986629530280549234675727858020914445878575570955342499101809725968149265659002811816046663902611884568679026904135894055387250266813782478269253855781432317964788069632230880743773867393407798790426373307847296779998474988658736735259035483150940037277079469920052392306950635583472153976463630046687839587366101971893163252871898582130341699497329185409368355918386771678931426648430592696042820888780826166546794194211482231055937087412179953863617905700873946015631878455212862770708535418465857009487622681028006951100853791619864328099017450539087657424944407105851713738813759902536289435982289130443900916227957617474599297688860834011552502973068203062479127070472741469950404212090152601565174742093712476648271786231764702959122561694573909522389692753302031085725345109778427038370924555268061968017708353247603543130449116036661053094274610002400781026699937683875594772929559430076150963898871238223480037718729102626275437324672715718985562621869340498924904469157760557125661080544165982679319870549463160597263461509835017004578148954381394886502608984329162007489543117814736824976276950264983084873902065172576217268361302694908356737807735823866509488466778643278583036169223030329843076316004770839893341749378948593924460060591538147871127936242591688637204907654087172027410120817791246446262902084017137451058307306950307823540903830190044136556306999311062631601789195528471364211317294163544968812480928553033490760744776945888661567373154121390113312385417194570020057770323699361588472671293664542416058306748726248494665799095384466177625442076041854574933793386003215814533226861536685822533064357741796865177665279336724100465058551713864418838353411884039909046289845475212481773616411099210338454521935874258695329308777137312834476075902005562011562045249600080556106382772392134016371626883006040676137871950735886218886014367051778983042848061905015869914861500362144724700691709056814830294231382412073600917909484169452040864786943782497336117280201258094898408424060653763813111154587248104569911591569302111448921988420110116282552944154036905137168875324347633238194219457393370830107026334788904621480750099714831406207942146178699829362822916174661774656628415916137419039343584034746374399742811263575369180544841951371049933411646411217295007581662377861144635722906957259854919913753306179337666560678811261011567496868210607180186606758790718821284241646346984651217334833734040089785139666156648100214783194487470764345960766142603755805227816449338740512094988535563091520846401937681834099360479529235553125016326586143766216094944176042122509030903023160868523869587276603458955878328829178686917348373477236636949932090889772042224635004312669282947842449425938769974782398699728673048531459577121736809029645808887725412490851175791193106381644616523378677355881172100830189432703524649502681127876826009425403379689657687070915564834330887128819346302747045773768457832045830227338344003041021130217073269174234799983465506788062909200106236343890228603254811982211459845780402142356245322772767146080425655039449625588995387299810839594843706654576142158474898229482721590519740937777579555355005350909039139976610363925073127443378742288332908985855600028056580455780958148629627710301404268062441982691226432430213890098724303136396024550601935950943113883210009921160632368072168327150624752561597064775157873044779008787418771151685433884500738669869783588135208438232919665445564241490012581797906740046233874022877385886823587263369936010265238647963176435351502980582872783229357441635667294096429384138753302974002111118560091090603438249059813276128312098419892096984921771922444459993788544402676306790984881890899077689313664455574452361256060601367038749714341878578275861499472338476377113055099413252622534798436573371138188888416943534837514755519735176212016748574145170880080602432178636163204028476148480034519379719180416105783653122334288248239968831542817611830193655237713210688477765106132452599202625600794099580302204647466525182580067067715621518435006926010702689608526588344726378500343410474201734521212733838449932789698997203143899905668648231368154210535715545625127813376095241007270296126057247992186119004051008669255824647218568597484663020943502540470409665693204871812080919401176705327085102489209480635391001355343371976009896715547329076024090613310488127101009824213349047566416332295385785651264930668554545986131322974935173121705921033150794668805629469246884870206885228424413721609316222224817072053456010779922588687133904549216311730263157800353514770054540776540082036653230879750190965225974835556051167022505247386405326872903101283313396724626758341806551219262730583454577563548076633081275392975509045493685687333798231890441216189905007573608565952150156164483580540486691085398631407800552175127208603271733569858088234641069818311014665032909867371671856288670362222216226696467348992552846909181186272516514378500400918555320938398590225846780742687808606358380700522356500342582216779869350060621139028259379867017420351376398430993663416426005501752556463236950937951986331661157205473679868735611786151268180597105010756917771244701622758866451449513499959328346522902586002097993597503194748243095629867437398548340533954936650662495755395946120911840008874497440305946496542163756159172155212409585524154550033911303006730875027854296031963991456737337622051565393525443636358349483010657424157844055735818917738340635195418401851275219925793569754614820249473348756745233902783141999420430684664040543915615629286485271133257824239260010596051176338767762767971243865760433927657748406707129498319082519980517233925606081854765815020038063095751884985702008108817878894531516319033895339495933516862225279150607910679530560667468775410845878840564443081108304081409474327848937404739274466705182183971724490021742819161792705119975799639452261057474426137278405091274906406550500189034076782019106583577292966127642872668443244780830502690292943559820665314972563690761801674398762806905549784592192332312901236440729475885554608817679588043346800341665558247323969205406452088896550615009318818655337608297072005497394338271173498327426473443633395316181551741696156487122188668343903963682759779347936457167332342017708145394932956754280905405972474820002153006950380643233393818611980579818240927592897843092058444442001401224043505115915894746502119325701415391978168764479463381413971276353655627536692394568356883712132221880252535069537962021540849465038598745768171557963922242931286302647755364660879427421022682569241514172347061608314668064591199280528263687346419909107472846686803629467011509383682220050475409313059570918643196413033606484451567575497758803411266024304758997153920034545512675112521383430756707915064287548404014577996389150693364913744514033048543871107177529088507058323092045131444354341664607700351073031121929148188275038693049190235267018753782718734004595200536794047226741434013011401653326428011703268143024819979102196038260200636212300078227026081602448243359458585525238793397882219027305228885305845035207200305538870615594130968363150814205912217172692989220699208155999876055472620117963723101198124931187739980283380592837021140337883725989947312794872415300907726355714510837021316948484109865090707820600838007579476640307937326627249352109992091245761790698274565700258021800223694814108920619286413076669991686496455460526574097069161183710170340035935180053164760026262148767914484381468945935847645939282328935153903572452239340568594084846247091771696566144847142651042433260705777411022974307677930989037176757221921221234293711740709362707657945587631088103493401306315736495672852865541159813688575685602344154408931824461728347945293870084371559519046592341990529872959256035012129100372646185300265158249158690761316187184295494709082093832612578824691615849816308939778837481205941050278781079769812073759536718471770207038314325633114327900865577243628571942156432132533924997440661631013563342147165235448134287880037110133067814100659464189697945664782951279088320178317394532117457251561092865822046585903918791391817983262873228404824978606531275689378978496655942307247227616528910300932539103484207878803996519193663986938209439762696440883289796504944788953094805845468995180315141480241496842476305924288519032326208728012154726581768792399443892681762553070564733931617321536765341992003073554154507205030814461708664869514410447804292196575299957772821917335358471351558240583132051295863750755449205240021971543948688663655993036124701871122745912207575307978795694647346069950900623822267871132468997631285014562822674211231926597146744732892887767534822111415452561115568387902935627820941884737753751826526565466211107596273824135989010890394135823688468226771187177512966756984143731507283000283943366841333451556694278033982820350157913645038747111073492345093752289504096322816196022191954704228925509008705837706594622888177962886880719732383358876469992088522260017626047095282804994135951818052173395954142941238214679981328028797549493178310512487185303292127441693663731583262862346583763874002906710789335696882010724983533611773332955219967725295144716762634205370881286418585189936555724175652046495848829719139891488589267640531993836732484810655271753155892534336552975960231194850602820947359177581779263161449042354226392915317026946040714604146985813010733552967976278641447305939104725118864592374504523900220293107568167914099407703614622365445207526753599845792513682846025504478751233494583467903482726633796952585773417323563773052719766605425187486750880219898715241933623631385384458256921571924751915955001873384375042363881116542961035949200887326720544845711379864556024381452309994941465374030990023263885766163638077686545658249535647687636459634096403873718509331282549489817712060050010809333074665769160539088421784100372721261022423215863237663051798628190556592424299400224514418507027612902565669362281041376512934228309813857385193252238378349777470476047906256317237539146683031701019918843695417666433849701949910958805945215589500246415940514536275781236278870120310408435874592001245734297410088323849569623778832615562911580153799233078950823959513452599706644878913094315935435317473562799060646192624790142312360977048388113311618823321062671681951272114538331720043658219694894732951452751707027883002783318135259584621380656186316424127645503736217633953107105830880799289197322838986689932206234475529860576282050915170609355200288838158276452589820259171552764509495217070588481592872076826985456909662378684302847910351775704400951226177387505810430056055020851410828579601555879472310370654380427094831709924224154257871964011842048575140732982843582521302188166029310025839111613440959232456276355146282887146948545805582479482053950873228927472458424565707136769500346404739316512498953481808387100678615133578753881026219059264119953609937683480839238567100391733266960252057587636421015664643460260908299013318259015778254934665010226444890570784737529954657970793893139170741814648719291092906497361333156884352978371665084797478136342002276290446985093631648774044430993202518562672509020230841503328975831088764006162357903694474075309124732724736059340157778780680040177838603086175911462615534355342013722250215428593220308685541293192102319716293579983141351648722092386292718531605479017314598955369161810446712751237710644377939511994431925771394496905686586201989114809822926847327562935803141504162631729322633326535187676086039311136164772305332645687532120389299030586403638547903515338839279974591665815869814257708112530050455523729159419788192414203270436661995793150766587750056572893792630637289975441250490219204888321177733562660661545664124567352150248022141910015995879584434540240974910560841990245954963642942209380403184341730099926784799482732648171929298771625835196624615970388033551158557554800829794641087246328137022597944072802072785694026923711718684690254843463709256917451438612397832722587817791227798840781603621391979572222563927012236992888844900604395955552541139043028740730033167929497117781594693104455230212282072785904009572722304334172007138553177399947879925126581790256319599691134926858632660817940609134353835158459025297645087089578742128957272594976937426218927015102739251168544992434607831712086946516532699221554879549895361475950029124188548015749364157616370674372232358909168071268599087824820861588015053273720723197049282983595281184413276162709235618615426919264801566241501468774081016219709018175931193433491260305296690440505717118204611427337118678037023957838220056228046381555727775630717375054711389239271770687609343066350614537146173065451854240644394094962557777651759077623745915649612432119432831387808615728514462673674655587367429000746555980706336318158623407621323048190803216591607969052003222838271989365807652294585006490998827352177598015972479714730597292636930197971070756248292855611753255169428206398473794731172883151349122404018612144316487900586745933453918476996173316881451810779262504878682165395685396180435538599022358712581293052368140502245600760648689143071238663409912551690458039113260676342663088390615854843621487278976335411110389329998711165118647960226019143848646051019519300434133792198371462779229305162737142249744239188979845556338342585180660876592552325957602973764010608730680822422457808966128037773396451173299673545863884934957180944620805708963331577690018881434954147176758471467754362264029147719950469584125407388427180784401935745252196270521504603663905417050169443478578148231934283442498926707473096439135697583762646101411426900047167562934310536126091096240229979499740249604654432752606835226097237585836224172266969991481323294537881842857022764771947101212287834977923464598574299105282124377172685224065905609847541990807744047803812314991681537349607538326490599844234420412831410556155875715005687700069728607833463654998331401031493910876709275007717420316971848535469171526440332513211739541307026172185362910886073475421250767403918333209836693062495074668257998649534747253365158317569678898385704348329836864023803246173283348701811734566183910680634924495292772061988985272668727668909565557662270544870932249664435223098163005459460981108984897151952812013003137579122935735462229260088526214565885563306307279706941044051007403805873636767984458931595208146747328454290388055409168497089645039685379477662411866262989491759991390257516745438183926684525790991751387221847102247306100975011467000471647073281503872185248449646009186905905426355097352937608372792975928931698337234606839775325107802153721447768307535569185335471992229801592934209096430625066446409881567370906939094577679842672477262890421378021826388852082144413417892299315032872098665223298637727437252132815747984857002977577010761331754913351470535804907329208287113300964824534253814237774038649971707480285111177147586554713191499520554982190992323355020255785621761361241222736585851461390431533941775156674840465730561846153393996270061902356719027469507655165698388186821904319317730793175145296604839045352239393669864256212545675704177219413635012436707579062448795164441545969572852108629971456096260896060254340838470325303503518769058201105346266904541467926392332458815403990164171277737046985611244295780838039464144440266497298729919466136949103688547927603976052325493796896086371913727910448101795338651391766907498635638393657213354273167183118875875224675909402748433007414751143708706631442876704997982827788502021926998056985541958422915254143841896362793230571401967236649517414706627113053667116900573956401610398066979302519391237529026587486856557880724616720976196293146760203534313516979106082245512455911427755976193608040546846620537423578433297578195041234072147965893538039543592538400394487945573332818139277234152523513734686631328870393862737130229303765370996279512742286495596788097916107850462329905936016683522254925298693238810828374270158993404312389365377812272296088791544324432907029710980024949038337320402341685525185833041237065381008546427290770617784643873303238245759698968918784210677430318350981674597370853696001964993711911612644373731103303853819658725152671803152275605999333624082777598026878437100737177768430688303755509284381865150671026867119652741163991413200959269265712507277334060078459411357565588278655222467592787000573493726140746531067172968577586154458965632136212992157657713628344951171801855085282840907898145582676294967794951230243346886277486737441920845508748933100977454474142807464649833675475306106720075337092642534129088037609258798076314645279734411227202215733223236951408291674318786119142138338345576453790600958163335918895889283581678920748213372208607372984996821830377226965278680599563210629160488194982865885077094207204329918562614989024837642188442673017605033556482632605340187014585099982885134256598106747987539283539963541633536504794940493367279412093190557501323702114883488107455105800915453226094992431291855130738317820018172929555848351011475721096395377745087635021325952957285953897834198824456401883442567662373680558876498509547821749326803438026007911918147104458357261325854888752590681738645068783611501303222245029433365418238700198344888655722862665222934027898166565574431373132785649361388161256524381632004070188979353473080140988649762249751693800951978952515114942252202373439281189088119142595868942442034213157221607918002330644106732020354369497691397008706104947141938320920037358049844893851320635900772157879307514031512976695801288499615471895215622093649599677225410236227048946900391500688711880264137611071111989797864787206413918927421792847916201924881664457176644484571838240450571644315062753013088015997987849189567868375325402828770315639539459970437558071281921624827773125211266476780816152005298567873715708794234351249260780584602615388041045834094287969208486279865856701616275180986056822306761045417977625441306361264407668811594948017737782455951245509402908555504855582640107980365862597406285657961018839882785704608393875528765264525275697658024316879047251933070330485745794828124498933069976413416986806222080174458975873629821493387430891828719482351460360599714206266010202691288057602722630334151900495633592327379988218756882819796024341308075562728354978739621136972521220640186588765368386548551659968778570828079038508974486691087684052896449601910128116173116378787480145478387735224438019504483037399804338133865092065182747578035109389610772143169116173453358911730860163049879114294119131074721236017633146229460304963152889811343990850103562294734018232227393786157085881054428779739805812005697013089844725953648852892976738931329458887168225792928347461198826147580086479479126833120778295346891637623594846717335426473061531190898473154441522912609672308387373213626244556621363493274055843571546009293352030225878199059361367428425216210401908761360802238433080867485650191185046686724700237193988776208132145372301268723617947013505127641622966029380258016842016448397463755211018231328200213751033625871693141281322617478470655114148997339648778642631894454165114980951906449077836583491310444174869352805938152264318207551173872666660479808867723632638030701310751028377067575958153660266864873004822641670398027227681849705911885205907862563309723094657743828445298045574044291627874075195615685598763837754597358197980549631348184095756195673387795182260060780474032419952154508002812859778532629917210682329304557705446399408208034701710516554490346247153001734794190420927906890607008326757427655252533149441441940503775717748733643326341702279203807902944408045711921245766949808703826259220575998116757718746265621907225374730338925172428440280979844420472152992219725451946334778374892819836808500024755837631517598573195968399233398441423030901287945100138011978369282888811942674041771186011616947933115889144560162688907880253109216829146187458334203474515063042087901124948448030188612577725904542568161273064278156161116601676134853078484073925343026679040311231116266307164787142389476413308097026480268178834426599200078595925301800039394743493066477684323473553146347257905306280650618704600410340682501174580717537004207620773543240292907331097424167492609207911094428222291846323628579015768336361097547875311261372565039246853131543907276944765995222861122325309113920928591026523134063209331172953356837491528640311386821526769923167597407366474793151354936980395137205718586704120828439462397383981036746561971793166812621283937310800434184466852682698264664620453053331919780274414204069516978689837079518707500018252060225703126865467520993804362979666665868183665020221838848022788767940211563297965638314123857607070971368925272717685811998776953424000330620092393893952760888867414438118008520486564947185674935876882561952362707564111241976117403884407639256735136130501114069640108423224478507216025800939454032728729168809144211200335379030987466488874893231109326752774009449412843235269829952240259542206672914013714972786051323199613702474756984951370654009633670270650518413376641658718033763708338852502319095840754963028240307842459975235089870187431994478135764658654973834418219015229806350649160495712407356780170384713308146016308597190721967997063172787846894747401931251935898070058592433735776922648370449508134242180243409539179448156248192792607818954479441186007432071017743524220291665325295776827510477428924846854954508603846059280134307183844807920518260297080608613076540248538677967352218465703851286182730430678428474911837422015112046037947034580249711552210343029762303755797543855289979701668768679981052209848941000656772507584629718850366267415209865279863951980643362642949561595288532070263788653301897406127726471189449989496810675754902351851202597020780494169365693993883336587897212129814302154642302905134035919923265178863369197467162290413933763366046186388535652144595515841382622248867753411222380174636481869284824801247520447071158423888892490020754693051067812981751636936353893016473710485398878990016298891223048439146887301411043704446870317825673374169254346756069251831691571557934897443133015353522420372356796874447501093887918113498853057275628312054114965805186558263966067834258042839678204468948214445761793557423028337533369514339404009872509478999936469022154853533136638530740132687372581470041773238049088477667246718128762317615965761246024352455027173929497618346981056107568047922092696918838955904547840004987366717967416607300682471039699273190428851651855959014538662354644610664280807483493142817464758548747515144843700456407429494393452050294905805254303348361366166510648164251271640426983720986421368054201327038926096793491945558407052039407806671229224171456748538261932947854910751025944931846743210699709205397119252196320518466885651916235102466017516423142810389906100008338253204190850369762487794933780135352073178592741320739294974253709892394099797414519135111287666413251764218760387382024293057055277178799268018307255122055304943952266017795636364815553270423328641356199025131988066824255622863794312837203566291838027477842625198681931652096314382014436141869353251847195761266745447471315647117518493114220771564677704711724551527062030869622493028394269714363136654287326993298436215104077880428862847286737708973169176846921622971057343097456943161403448607612693332646100803291921980647019223463439413427590737546916927516183139286774438541598399285886828034545583592449061705816767926178100434840458841631249829485063541781844619306665027420653130221612053876685429420009883438887898329145716475243958758459649577383980302857525440466182023185527468548166883082928789533463979745340846889405598548604402602544457353116372264836069915572061564722423010728225075828501404483376452358989204303984329498389673491095862035396776134269961772762997780638864634133887316573793907107495391412911016622919525051735378934474207632876415238324522253964922015314127418812173025482247058741941036829587637974342445578581910940764176092760628137043877154633773081007663701211487015078448327415023474164359767645325263175779762641156139183191812411865039630296684851973933079855507038181269331749508911893546671347915165624073959677044435025799819880904582904096648839843209091653626485104297768239788388192908578527150316288047124026707167282171692985782573968299852985851040047072294429976750780537231017006596862834166082846235059616342268985238219192658628584367705614018489279951926844208445013514115930360292963455842749781911060970967712887883139832092299845488326882986195167206930810393429485692228057505544483680685583631616458766434741339420492732950591111402650544907748084596180235600778474375082691190642318866510974891296556912725044333405795974897730992798039437577284179942735887765057408011630675807931573403549167184430810733789375286732527831638148544666229721738227361160291224528896168068722204632367627705492786003691654631280955651276867709445410964290554973839386308350768201354870868130430610752473997746227902858511850325668312343120980743375905684311725352309876550122304120635129887555087063827847096791085739208894659068172501244672011324725218771524805532957070800327541858127425429231099864704594386750870909392122527887450522817393893156973763408587690302975521726447573529232297064821854111885620270107419733833388355350143283672577150951579632607886431969625782166191510897047720288126231986248474022665775531985543486606303181997945736114559586570894961397049239242024971886061167235423075482430795058206994685699694308046775659801637406728695363133228114484391991245668428074334055324279557256197145960812598349491954474341820743555379344625920563986397159447104427272739751940243972513297851369967309990056246716645499259899950106371635496355417402864023563581555226722949165668026938938303200641036826955520701207755623110225540559676587634816652168227460430457193578802865529474063618722666970321039720473878843488881848766670073607386294993674687752609061654483823032315921273367346549383209119257607525976623971748687957847667157976599991040792801060284443035457406749679898011287434832368924009301533064686237487537018084290357975019565706248999243359181848221754029837071615027642419491625559631317541536692919377144308855782891629770837900858044278219606847529231279556464695834860362247583954034760044907174609957714348363312313101508772371203329108884203206519163268403284976516776393586604815432768147454430237524143421702061519614081985896813661337995127768059555778359610069378906514963214183898669671988446502036734142364492958391706133451761542368456937626424810544237979248265808221869231085710986422779158054817228969205065979842597306900077072564188166933684300542892254550629082141243669715920488322315467737975090450529580184325497415479818687147461896580064235072629426945910487540682849550816682796741261166561884584895741475615226180360350048473870942166065092868293829878800151799898994851564539659272701481669504870093207976038291423280315420067944708330521848315231783209257397967631417026298540190200121305762857648458945739987736019245337895069278500825537503351624019812836029905285312041391818889025815039011924668960585120394196624685925656254818215995937032741330524023377069504191606388451560469827506523754359477279193348055596432110576947282572942339634031818191750991459767504293686974158074840648036790282711635433361435595599734623032232282299101998027199412431931338481027710095945368313553015876118488966483456456559726023050451361132458760155699273777424234372046893521292642451854610529460143474991373960045844876914807613664217878879202431967183035783004790852350947779929897741445692279620173215093279904766721755470831032183468288985162789879370139852505182098256419873632532773494691129368592198708448080899525122769317595588103454007870479556495051997694786450305543575180406385610634607925295772221827759362778762217297465835554349429030184699614478071003892189911407246779516904037595361211704955563404077559496572670158135272892341978905762087415797605804199954600518229204427787079062811956130896869475961691970120702491410080583278430629638853593211201198718459217244672428384599763556294494553182290768618086361212341786751588273949323423516958688505869256991238226935243153558727284316605937761232900977698764251350152623704261125449516955062546322841272707445714749371254148579392197222763752551710497157617594026002483080638974818195158453811350944832155652333321372412460401664586283450074925648216813253776071054229935711295345807455251363098221526089996600883812423495434940175286248000357959126050065800966385974571347415661628109420883457556669350454402633954979888605693067421085279153862454822785955238185918043147348160004605437599854866610272220030515764340833989561303014636029172905355794831671998016972518219890045461293699871541518066494355892163557830193157007276289090133752978699913729379529523883442455807765038488883589855552437192481808721408565086533647436642900150292359108427540750419080662160085329337321457629979399010432219047836955794638141230479805077205852187189414202833942240349094635565425604426669825029970407006685882041650860618726776170262530676362208786770590569129024464984758587215462031929357926584722137232179384222012251464916758139729238016917198357821269551939550650949268778449967921023921757187987733478143285419290995686699139851930123062579573875153488610217621146114798051158421286119683681709319831159976515879586662738738517266735950429187568619922605208870549136006184103154870684238641958013643788511542027607847900868153834436554849764854931899105631714566056951490686890436198570995956140861215080303966217559255602182378272084331893618630194229807940574020923158285598684532029998418358162167899728251689433232362355045472931467421285360869820151028300687082553366750923027142708584247004412041826639272410833738715115287660641573589128709516081343109206036689591913910572884594459013397809224676402275379803934672189978967648124508413008329228789390326057732851629552927307941279507789921171634244233287977449784064246053592722804879388576463186678710399080881026186069313782453033885012172872039263603941618818647282132377246786511970313420095082419337668743946019502625479922204654544144440670300318227751344332743091546456034420302567849595671759098115808184963653227937682325603833929799161158467815813160372604100963737376216708358921192286022768461906559895028599296062041227256798713341488166874258237380382294412930106159528338960542276004035198146223045571027970980699746019235227075454202450663229284023221496336232295000602651610832267045146560328019143410599230698356698243679796969128278323448020245887997228358565687154458467444290521690845549417227461435652372446231652436654014283915596200938283513966754874773544179215191144310298701559320927658024721209167207765294304029863560026371408025526121303528415142526644246738636191311336678027550591393942502200828954373887227687319580121742479392206833122135146423789404744387882990351726573683784429015546402948603681962216278954118859293620394613923302366010746439762981502722456823938042771936325672260514892329850150977231490202910406921624137874223083385582366638871704726885279500136688715568695434077268991426130103403781442171677697842514077190091215136693084416231575866318909538944447211370514024665380820900611253359969559659887385730395163300279512234597183036158958818031305300111942661999688750642286588294742292734280062996957935448105679177037864528177719644200426019488421912267642983817682746867116291852528434520663709053751630363327996485181315006112537585884633282067527379402227482494036754332082948011247511548910576710604928866032141526489564126080548365425442330838572658105024581857466712430457291847053336968423853766466524258412775845298814274851746699269859952504058638392634040566180709421423139196263243156002740896971753011646856558763069336735051473159379203096397986286912380038210059411528249782835800942338928268413774324215698902670990787114711419696789258060945472470777833410999010414779069160686281317093467741804221301017594914751027216675300182911123740419949350919332023334630084054869445286280655167591746775830307226197457235232252817302714807937498845230453209726737474196060306994528660287190602668629862561548055265407432934867409630542707694130298403663092105954226047275602892838485040748283491607832193946951378793256234433565882744372273493316172347943477790329564539615845514337679082762592700294685908507790738200876862498452949282158617416843062713969623604209433029924508355679126294407520026671314962140247018973528354399468477362457433534070672661677755475059773184393241982394102173868141939407702736482203989074251716840321134629687279054408123739158300755813556448012530477623789723882343966132527189808053856421717163564197777431079231490494583850599006093172444947397764785588626106156864965431380706440108540333417287024786100124170780689213369511526132138099248022186411383963262885236755167986958899325560842548851915543078232969827569423406269389748283656735284274623627045925239181852552797550814167343592651013586114440007160650622225224940758889081635428897593806087438602605787566950896087940120736062987689588943439403306124504752338710609750064482060529197005076828682161894394846443874875688694072408540394666168933562859310988236182223132786199466398281421381086797373532137899577736709505413106088302492740708138990774194836485505230013192446486023900965644562315815764282080691221859714168631256076019474689073840780441422879857916151301741484111655862047942719381929150210847177883131615032333720761317141779800720076522126919558424663710526165835299535471960619385736891568217614654827633178391659465039290176871771360540440601206936519180015734422464803120649559709169611701231723337660755200070516501568994418524342542504768521138277254801370474493447404741062343145164203012529190443077190426804686254087801739176903303244101529104912822714424861304040629108542434918129247307307604113114428770839383787693007629724855465275777086521644166017086130069702748561870761625769487139286235659528839877031668237988412938635567875454712979528185887756953106372199761374573729055372230501581936272627862292893745443104027938459533548665436025962077940753901197547649045598973525479290961296591541688802114813638687237145263528546694422868140884301709006549578491721201195017187905872066507546297254190694511435148620481276972213741438257062911449796236576166039110989876524894320091101134554536027751984568926048171348411084881217045182008975132130242006318495079655497839791616090929498839270604958632918262689626982785282638457607523596914966583571768676109755117180768917806765990358897464966060081312471866656903765214474479418507287757321724586689150088848724629999504807791688781445527358618835641141923325638468501518116692180556236468463243526616945072541944837642402535275429062634760320495991367855690270875617823034580595274485915130325642752227384961019334329729576431491771566691115096594615217630183859788769804884447159812209525832842897313989659308049006474198503497741767167930815221795391897346123911935053204180854936671207942866299868852286301394639473913824772145144644748388514674666651283104363843243155021981649318821225928183524962237914954424239542281421217361978852265255312145351762709978099379801378654260557508495094034844634766732143889790123678676238861527168420713440074086428174171787472271844787468763275520050823435334821113766485448742911456747873177832132861886228966636324435875641559004326104412214970911867792258098311189326702420233867220020177917218388155910710141683387299040908616831434900071936606076407677904104948685983486627248245978873891235729919753705183231455911792556621608818533272476257131273549993217023640407340454307774732296819236916351341112749820285966795264881856977328746745974251342999741072696728420159983678875033211296651018529313902579044549468322387397801700664523080157093932270690671614562758742219456455387327059843506392444625898981433737032435726183648031707510254018686800898166793067657595904017484290669625629226616126909928573255500324518098532116210536370628647402234290022521262674804841394055281783673916843829709204532268896508099058330717385882571765958483327222364307295329876245300598815604916829917614349711770188739149532247759077798662381863037804564868086164402717645674610789015359303766459604487312784020129095779806287883266619528957002241135408985110442953157745857671089153072212830118395122368509538092983403567186431355027237317693367856933912721076738456154625428371102468320276271669304772821898764078541956938200458885650931187070531291966875748518068946187165097901384043095523833923625521430405556475686049346508535005016429382990905199437751060182167584670827455556076022613089172604799450303077792541327052819789255025978734418879926212364894156192818244890698408316492432958794569283988573198466771815879258884559474968698730498629716538476872397763953559399549695848030471378533211461369341189300056495685906414106040539341259333349480250409877540969139019556895924978239812613484229465335114029185049226435390396438207086504894211720024642504168025305275574696757539521678911066817680254845751707967775594431857912011547536058811798456466029298791288745466604752950316548206196943532280218433480375433636808822894429402591105501814155772087456461279235546470065439786195160397069976487855106618708192555762695465620063751560215250403144371293102302931921893324223564627155805366996976376815137080153084783006872017424977070423522819848622457512605789094975875915792290804977457974124816050775198363106042076994525833083505072576880247178636207948730878287227833177031098291746984463579228360516278897626260454187278035964015472969081138162827208453414548269546678535975497071542988357969504490087751293169217539140946506280361345110380629145552475710567877505011846244650470267811603483110001901442026922668596298245464743621719203613610907887909796206559592836700707915343472048143886848716211584796768609076416329798932034690014793263083459814418626392640777350609388110233111367588522613509585804509754895307742666822260734332502956126610899080482910789710677273705764115234664990243834684097452261939671888876971223016039459036839064822020345555456662105618535730963535815616290018960071230802840097761890109198358363913529663272115308423976506438119758290974566158825212587568829071199678360326249967815741440515603505372655532722525824364249392207224911700261224529654752795104411797019921642063148748465956313276526557442410361831358860158568136314265308964475030451114321992656009999516790994451891699711267907591912008897896640685488636028331371391477950891419678659151711898374814684702893553048541842833696970409654933227057098727899340634955216809471630984940697684743307511121572323038658769269717879714615124395199879083495753831177270698882061129667140703126389440092331763852174686234989809275637617774071998664552077141280680802123047376270775954878609137782712523102152006594072609324574550747569230030104625988870833713568775305155948304508357243845774935836972407563067723694936488045080519227314277889608249405793837795248933401338917065984748924269279859081251850696342070251933939163010416136723012921909078857128501168674738518985704325620695824306761835021714484853830503554047087685842085978981859810885725276499892829993367217956721486088918112804599968128859122393906750600546327839679500765169110283155458996783975872306950117444015800011160905117247378460273662925294335396049141580572027058164756126118603948223443458361040699998448227756772450218021692173075083734559304968922561462167280333124669474458482415570837756335731946543412327842971449381818603251165165506112119449210364897346701899879930474664657761724245730433831629845698859019995581115210874839081493794379460189474010118887529214496432416393022805475091170360968926023999837616919181678435609690147732778951664323789750006218108913707442117458906354385071972275217105004501435201196616523967642902067238335544637786312002555085543645223492557709298043345307825845243010829522401039797974271882278670942455662047868490408618962715716180732146876547879095977918923116099271770500268800585519852770051129830930010779067778214817095691017968622132665421906803866594322720911584678446479256016978986431443859680378103498409346585168793432278644798763738838334510957117992589750389335037436277357861632875885619501468209471843080785148824861514698985344166990964449145867873680025846862072295058553565613739385843412114005415307952571285410040822122368941983420792070135683988511197253059746591806360273888039926322137624064577330793212557975869313087602117853720904113862598971192003321292014080921918633849781480884902223867718391437381000894250264273613071350998101953976905525410329141173763558760003706552771616611849469026162405049501060081002326440814627036062821303578937001870261469933451245408412217017939048138065872882750807637435942211486379430716685002652856593844747369065830814850723451860037249839770653428479726894717571730901879334287630319155330206305608830858985695305234868247381364993887134345148800400579481200640183575223629264470240127556493215730529951669383631517096150138403349440722657627633864686681481812206153414435796572289267546030922167793300956501973567783783044197004389845380228970851986625214703403431878456688737259478111931480724368556559224122941047630003829665619259469050656149222338017776866112009088574414925635121325060688478291718997297799691684354673505898839718680422613088165968190977047878917957364303695615121608718134791218507457673702319636746055575280709480084994484599150055511571065574684530544651145011463785850004314313398194889273651692440242294500447377509596978990063772175445326587860004253766110382914800107354780294875394733948208335282428307242282959829868889185175126461908672755889112265652281497973217973607927063275653867275814376838451613732590126563191220405190030028530651494825977591271420359880569374465762201260545230131666388388915024808921550528550037328557400730578844515990316822556850114898343917628031645778817225207417281138232840679930305685867954988670078750832585345609687572537565850138707470158998447198303978537948077787032330945872485906836748870304520696802105626696778053005783191237183264766316393761108365673757390562937453973661795312021850434071056517890974766837062948232440016386839440952596561686356782065370507749080483171032283665913403965670705849510243355018786527470964051976893543487643765172178746452696147925769039254164815601923171981597886687100304581530333028687495479754824413546411222448149409918667431119789591518383500783012173174376472552831640915883478700514244817172350150787733205025330839320238431111243658114510224411299843269406684526155294144667609491661035182654043167698855930901541170379601057451070602276909873879757491935917493346860423270082950778810434211590002190661356934691397591599843374081108527498099597383911006897762130768771765656952444087524662509732901480445269554208082582945395395325127091799217396319838868975996958709540185523511549603221335460679872517681036897280474537425291875261398519863159137258565150516264494150832334121475892730975407316953393138777166367098784409859737094127690895460086917201700490662063779549043665421759167931803169621053547467583424196543713914800099630983111776167735585086462091857154939362054787325034240069457453173062615564377082082623479832328403210406979968179915607026848881131432876243799571740791500654753633275152392983605043346528826416893044339549389184994963361978219944861452701963576453811286254553787184012538442459147233541467111352702229877136238523031514431449071214817852683721510197474299331586918256583834542797862075014339255623728062945800310132812802282334653178682528468561030296301203467344596253317991791511295503459482934681306195789886174997935206363291577230786813100663453248593767169904356863285392954710137844413904721584089125355134148243601912508169119697328061363433404487475922576218300455843100068538514514951287224829020457422373834967435612234682159025176374290471722896361567187157767492403892758146274331007072613507905296232471473192549350855706359498119458679520258004745198706446495469710102847815718639913094962997474596289288092353787891696652701394505963376524489932469813697392081550482713204268795848423887271372007109639376628743540315283268274564058598540325831005729178154438016064406953954360828027177362076570364327093351224956049353413804835236553112790775019645664276910639310274737763063098462758204448236112839139872693472515256824744096075050300988470445842295402816877807050597359781209249512092895319723209026955805760290753269587115197958135312874336608123087841571390433665898934892357215239413309365832812393188557518188816212130280568557748764971120442687351200363780260006148471876644573807608592474352152338165630738567550146899481859343628472745350596651865344435063500636178658052328648197231063422405891435832250692011484107390124520321890324971373660591313692433949101017871348223775426483510914236177223638896101645096431018699480985666131625029747931213741832298644928505343563858322445421047255959322615494932238354075581561879426942357038236315987772996514657569230979461546112299193923720872543620024722207594809985369758246547237346917258310602559414444028795690157124968025871277137532360075193959832414945103960134041109020143178871464553798420355533200431986147273265396685195163928455027105301452840601589045103900411787334247604045479074130842330512833952506247029481055339869275119212229618768251564739045577070287336120319850731637492926688910835056234045677047124472931210575226967576821268293183906051862891160705593495773612307673722687563374902015345504489414744545640077573766219428590933263682237595016536110137394781150890600198680597109914445898245487590215516564483053615027471212895008407793130840101924100550207387489743395768588531204122768937158152638769674617528560017993258207188304264986389435744389958976751552386387372972604637803127173100676017520288367250053995769892577521129185929794497566348456534362501837871474956129569442658330217394103265239859362333549821224532297800347986696363590373774638575562948822125928477806821848549333555276867677290829192934450887690886634157821212240429390776778326544361858954774090030470168435675274076160625845278909508069164443272506538294099863679346846266112374380360162876367968386037283545475810156341418387974843719773384107928180954813458112701179388827114775727372929496164655612929101489640340475467082854880619402936245183233986658721887918652050761651402272518170656829269797308907852920313053944997288884231021521610176680953155788494530787422882443308821161422032409129743997850953100802040599010012796726390497631102693868578650664735645438892406100592701567165729329759953307887013437366962136240466834564827263184111134922543491897469742622056872878893267664770867544273234938673005513662406496772323561486659742356373906573026812819863350816582544693463958837795474859750554426966100259343686131252392309585082687795207184608749193980902121113423141939468205029898001805837373482780095201733386188542595765855712833848167086035766248464739123255736250953060775992383815660577934733247055478007036055510538309411678454724051772246864943451224950124286766058756988963329614298599467211794227567962201140695137834331883261932889804165777093819703949124475957097136075768578265917679563432311142779919156778991074753960652252969638320527163720087675112415766499858993868660782595754655546424588735008420305768285035104255659248562543371649448458217516920656494615417779939699689344919856348004043662667585812429297295130211396867920712788799341197754682211611104026515137725803678276544093258633517677880715489540814348427441443004847969280517089530890739938748852024663746690958232004478892432754139599658383045649413600872587910744549965253534989168132495701213351971273415993697609236090968914603080953917619820417623960368992398990786818176986417875338149524746068830678602829275265523901236064424893132169585974622279329433099273790932867126865276165929061178098431295570528035923311336740775860237034646422245155146430586215960606343815476681935277705046251451537585685359550192165392246009353817900037672448891436936324025128997912516374571655051783901766223201534863831381289371983346593369169018980074982647594314227542679348748439853807248365329109074342752554605510153403229960180964709752911296390571637779369248065184965038521783609688627528465830085709832755507702966650893342119302532526652464716628362583277165197941278905616009981240321416771910215590510276009928963546614394796134495207403418325551887955276931760348848513045401045167005896065009311350960760129150811737920557574024254653556670320261481052344207043681879095900909478590077053236137712079774499839476064321563636887004082248321504484591473538577110765273434788760243556588452176183363628423432897050159608063283057413297950141693189101359936496515095134500093414913280838264925896315566087282142849117006767950916586120121408330882820683430197607491193997142801477129478944417175314061866751774882144590344635490837645463605958748616050045606186831303833546290228135169083750440851285026427457403711291111903272058734450721130265235793071147898917500291322262628281286238262812517230861801920329986012374608803305352725079316601520062549538780157346362362800020656956202610981224260035858860175534927062611263143212317447787505170773053708729801429793377200857802673143237048406374052725894209728492538371832909387395138827096389827181588731049551913013530212150549584267772037717485904235206536118116331536594063362883155096051962064211482744142148061771071342713242332189379275841313280058210567407355881244346868200783740203404294931293205232039850197891459335764302420509040329692714307227904986313848339589843451607365421896696643886034350218646690066102394837843105834798090710422218416128413205966083873131279060390431543356188921948530850224906677047035289609506657594064475192703862658136132176571616076785862240294696651721836516576194667255950160348446190341203194131053826685456072869332402905341729010917603085638213912328309474450500849827379167704491269745246541289773237252291044992798615629211103327565320614378074652131853100131065131125345078850956630641362235716403504377602306930486486137606485635744817090491806253756906440236512113698638696688506525526930518833031698096534129678770920530175353123531396791583815867343618329362149757980588160165569987128189141420868463644441023058443971023421114799162816062214926093722428530577033290134825912666488721069118198787060767494936480947157409484749782174130138490673899993693163248064417926956726687686399662436866025867746578201464296212098676051511432390645978444544372526314289693990503643957104278112942792466928603768470253659186071739903658335515731110005395501947922364101623005952828186443289448974994131802745440888348141795947760899617860505251395890593772170344778057887732026043005131340895100368995936029674763350770520652246490767791000029064294839505843751357860407324220813275755934515975429424590955231904705933295737050042024283100436177099653164344657978575336884550227756547067447738054841097477791060389617398392088378394805383485042586590516623625424565480395716405653276810097701810536659981377390961801033888147775157591134869946579875931438045995756772116950789013204996143277378628428026610926489129006918399244989163172816505468973045382089593663244956933945470605072591033115953699855264478856665304447943858130747971396878049919219963044850537579629389927871814666617371339904565715241955536756286059069524294883458113502313213101381782205059296045149666431896038432527927894160955880501677581568137765467843020386919851154976743998884442794851316475200900633480298673158335931268535487067856300127703282681411569981825303229415578074214836433641416278941608909375326336413954914159421224383329089017700912689216425584577161717303154605259319606029487149185798518024081213841086260631471408595592395747033735603531775256201752121780432312345244962889256616196806476066038254517924433115536204676600902504057606696933918305852257980697234563979023265862798457941271926650615306747496503125624436830075207930883372059553034946659192410536024218517756862450099498212000737671268586315040467638477149104703919363689644695268358072394885835306948027538761731793344578760021293698080080355495524846423160370429586430017282421818626883353972617732722429626848541678511577635902243883686186453694890506908863748526695092011007460768283531380307569637854154991885204951636285280240629606348980893869221976300755305349401661476592836355591632308396791731636445266565938484903082419766181384649970801976720181760791907862572439604630018733655673397610987407583516060657988692724135832088896066106028152612601050551265213335209702775360525317905248628245914581646628254596551092737882600847240717101155246211303187740165555226263849555901074486134588102308280637370557234982908720675118558170078877818687969642889806342785079371878368526545382010793972702844747073296123274870272112817459234897695315196470325012445054982292008350197039702644294459252247256356484418419366933839716275708823457346995745908610993756876853040801207661060443709047544204569290507560340451655217850169042907574278691653544125280846184933417070950802568651151789726785596564275536304985249134238173519246390713373282552991389133123672197334676908594984008444145295872410066865901916620368939762255881033845748732660548619185630679675154406100882570566695458823501366777337008836761719874914339105707361790526226689247870121624070413806031718752489503832148619410547832263943590796168018799073167073250669700885609297745761092940188132047166050217811023819753869006193248992460601057426323617437604924347261514428441682108818084526662651973469905466030927166381258127716460842847675686191190353285382023586541271192101767283191805585795366207635094883012874731620254642419893835239652585182177160175566645621704106740113649650607932829202508956114900188238297589938149390053121674032406399957326312475374394639367119795703521094165940400283913090884605775580225469079503669659867376894476808502055318819761120740899133204683599202547447707158988614272288167205424410409535006329674463138819488259865383439643607056456394558266874774565494414667301213189264208468905425642464418275827333727231607670136229511821293622537720094407286576278423038733738755522076614615824739955418735597190314874129244258401561176754022994506372699930223521711275673051927222570675631804148345842615576038314623666503385805548776390474178989739505622951173438982057352882321365747531578944577970343399625608860128860783967479732390557962037374412992970276968608897513391079301386699512705464082596790555445364699163581366387658075862213612293559725615853048381129342881178928890240091676451108606538853821391874455647903132537252773955156628693001023707522729338844470432608987566620762605764990562472103364399555746655903252004102418242984591445354423011199558079758536453136452536606302793260595414920425956392170815640470226430946148369450704834552072759796193137170862730572438475399500916037038638081938205473404937693321105199758307923810385078821291271337519095083029560633700740950704400369361019062283275099765992587534914408144993984073194783443110782302219892534937095308855896093253514467499469120079830145030567169978036327789049614927889580398197310855152437163871514474943626598827203991170132505481248613292085703414116860855838310783623418708708090136411750436240395990196953679955795308585092971540615833977508382015309972995099197658523936192936957989099054460973553811922475393374570917998855059060723114597258775830139616149911479720513490419230744045527658017871266999051500987847373813363826079756313507542136957073569427614129118028841882250849650703339875104295393044202472001006731894314590270576016636450032710956266037459711151033574280239537970121183367649944707659196874416912566124377143218582448150824296882892358224294155530171536698350751751019861677279451334417163361323217805945784899125287590621266547529673009457291456929307922717903877955208359224207632069066047387672987618739553562744352732552601066952871796471332464958023617237872977536099977075885147216601880374682175494741805688364502898889715434939895683340267945504866158045988103699699140885231273416750253667000909831415033131953700984754221156148039381793632908871158501743530499425732923536968587428547352529414187614039620505683359777326102600770257122646951594947180879298170618387012862399406796880197995737843636939978629700263688920443581700805793367303376643716521198349012689608314042276283906715182671883749241802973239721238626691257168135901372775699393259148006092616159233788993000304498193397836684126314149686525450224598822139037986277781593194764473057270314378344283355292034306977089120210480144381219816474827157364702578206095693581789659801537121328175747160806117476957374221281363557783878354754250002475851826615141875819175935599015912801397540433627373643029774586457608023190910916186273491608079155673048291232209586857305641049520862299151708160426246600557115158796263399881151099036030585644363486593814605124215635229553263820586892201430703050532375369333994136657628591598107981047948077369481617663877662127602336671022794317524477801858408288062102400443594205174135472576042815803091870692823141333670502392418341638325126780400364517359682478187740140395675393595035922814753522519696633784405718403635106437710964436365097998799175827721217113322586198671779415016307978177361386828984907937694261515803997578004603604965197594947307644395942218828872561528763707416441580955407795774767111020082397254002039061753026349109955389606244397793681143439831401226382045720661941505270832359784891260432065442034923223949348226708735485369768650640639023474432236996586999473959745003771694939013704610642325966144639596642525456896768828255798144884267164087906508779606635431790881202656498747872083771084703860625899177895585393254368284167681871906659765623887920080060161026458103104859095203599503802115718202980689025965206319697895892917038825295843984560731498441532822331092559971517775918597722595488581411674020037347648612178165801018116019339315492733043072978762459188302873120248109837485150549931016662581027554198510297698610897759187631857601564389378692993257533537256802144027444528972837362261149085562731691143961072665294137913217957075740008342527531322109152998728358626844983213957392102876470598216798070409813006535823027610931956432368636106235810982227878566149301532608332129251632816062945838088616755094453788489493880069142352645494557172075752136839726438873759311882438426405510783898919946399852328830991579440312823464820628435735660918359770897281417258169813895866626087226573248118931054776120621272165321664394638515336315678358138531391835609805469332268507385155451124426659843395612996817727042918999808158034740230651553843436661841584363791284957289254917168328578021540260101282485160758561848415753197395186288474375758007448196033317719881491625011402243418699635775390797389591257364291353914779663387850353314218792692381889283101626857674055347046385758750000084232270994561475450334245253542990337262532321165315355054997208200192945797590974774972854493363079412881392220615564252192261435421575257820207139684740335331731404341793797005066225463881780243920198611038526546986684940212009218598935104182629962522466770965220279062317443933632843524512701070415303184483166813065236901341242889580056223566837612241734901339180102740386822559722796428025562721267375155834158266985035480940732866021036704422846152572062706275545680542851142085927453138715148313471408282781810642220728466634232706575224966109050535370747069020968623786679648341256686201042688904358540433213122035234052674980518538348544253069656291230036346737103128381111769020484176965695799901771869350780673285680847327894540078074680333238599488046534362492456841416806799078040840215151550031699546809718566751270127868045084430289397866657631239702926416526646303884311053496079461516733354019034779276875533192088891624038321344473635627522436608618897193182965349032803901849447638328155911438282818036741709994937618553784420094434225003096022907642729233138036189025078717174494089149462002682055502908325609157186970698071237795136762629259409198893866372916815007515619404541172050029374782442413777624531387459471262933426040823211519353509758557738359081506946713550971438218046112702252100853597006101615526643766546248817555009830583934102017757460433391476798884999764938291618568736111821775924101006661277893940999124595557854041771928215786723841247323834479935597182972802831593585643666282799515146409555882673677195887997043575628659785175383879747391629417243559424317732190464975724669370117559341266915825863929565988089810217189640593003293463149083241010759850460562802719897454243128035744369395233112086686497494771796592045460911148658304034112273348788523886147551264108271091558127455304754752909939426423047734503646376243308792392093554353020438608522090628999771202576880633684849382605896824412660857654488202119535015722675855808559174612791496508793569749658398598656894501666097901178852391120919852912651568655638184893570137076353029475913516931354908660415483120171886632532284386493618168084535862974435190600624742705679643835791155191506555493789451437903235412978545933515485127646484071527634562975789718090254635246372136993302252505044420491184548363736614413105813057509936929203415658954139876660415927701554894541935528578020056067941584906597837825105081559216935979018747589121793973288222899196492930937878178687888947688042947014020070472006063274373126701252320429133694857248302788324744328193879350311215585629807785537782535396519059513156109183107525555662611612967468844261268474014281290166163148508699863381370360611454705441558244975959618732301915041441005582850634273252772077942414129355832427109365935717788180151928612859592997907785839813539928997696112785754432517322235789624846414693329548996577386988816461230261619756557208736660011516159723404173304056767935298061521361408107285643959327861786267856568102097235443212550188582880076489616798974490155016133145097078421178385849887089462263865983939466504843739899650581871313130501441932355732734198916012406396894059715064535739024731232632515437423857241348767012253029539521528739908924848967850203978668257928769707720351541042105877115412032178690356079644977121734683691476880393197482806431972266436129977391460567537665033389554166386817374442946173033792964310548796158078260769392408183693508670103161361511605862680761531133200398264056769182920615601993082622997165583024433788304075882523352687905155593822956850612949831974291945091650787202460258521968861255073619969001934990001426567338822061134126465398762242293760495809654869052002404179573221705421947230720643939918626057888162090312147042862422578350401879826152816175898099205351962795415343524498604644718579983227591385228951578402423484420913244298994664462723568219813506090655365577501029155606615813940490045808022812624027102645135659697647500874733433097811038410177415454295149924696989196164589743319678510715972002295870808397177155734825604933997577040397619868312090745778283543994630537285098471565000340164601272721327422907923843500705136940721839245668064417829591044071502366588057900908550659268908863629554185292337372673860857566497987911191852429988836320883265380066600612432768522006861811018101283636470088604191677294745347216112296848329937442759858029702325740309380877740896864596690037895987123356922301163073998655341072387684281912085920504670984050058024347618585075101386605268583127447748956730146012663344892345007813486354651331494368598238745922043079143094614042992511175329817784757509305260643159431801055635953745096970970420925635991311452268229889347110661038425767563148472047919638285509250219172370977183024948311729526874734425838853375358229222061209420024704090278866549365520058350218744631723104567428061992974163621589583167830460459229983054557175905820813518285907203488938731166066076676691286520302871998220105100877888088884712640776819948815789192655035775370196961743173432901352671434607724718069246097804179744970327828300688554827331269197336864330756477477791450761256521755688353065766805714195812572329985015105507169598668379615774046063092119181584145721988259007321523910209575810819941999612554892142048083831458574720004452188370472529278034139979263811130559467394134231229297216870200447661100226423779105250063004468132074584226314752953045023908918220627418057840205215617040345796136220727024191152032906590419233594442149834291708336490033531484194674882216159487032306978953852104374927786409433516942106448905016387010059929886530469726041148512163812316894882279092986081708868368279059974811509852467282379262255593107163762004377398296392949051410801939861705480095269989117786597459521978096716470115135999737509633521016563414162878620963477073558726787091598056922492276814686544456430459377241374381729365567907123529638621890156953354134843602643387159805308428943370574856097030079023592115446750832075052607651802559810971622840130036067532914214231646053586307345780482148235636117011057364881355554032407666239612764580958340292972826899594172481121368555459244846380559128658061580765047952208380194890237909149530134120047121130063052833438857024082474085157413923634903582772694133010378716380286898199169016039834565405393872555778794348817803588626319915876422037590661434039915514047961706140567168263929093519418031133022751876148324877413001462443184978803518527847730875686186670102119427853943310034486531993797752929271116998439383379216299131232155006349897975450713813201790814748346430377896019138483348588802160731304557515611541847559293263849724233348579553954568021977545420568853444896204693425083435810182939582612847014936536758983258172879804786004233797849636050057594765139631124995300913052781741683237826189860541844157406244529061168099744835125877644421627441999980758744763594119746010008110305816100426127841813670650598116101313361469583307564729446803466410082396545871347278098618178509552173013277144290974013130603759121796043474201806850494062028329921325163648195987497423256238085346276938983265442638446669014689839460913870146190028968455613037224866323950822295950955819919732666962155638171583834233073583329265494333834911846221513146274926769183723943648014514907177445537062153311615780280793687762677070545507466265305951726702722680759312763444175856373163401427429921844977513220428431764126674980203752559159529675491367115115491218266620719960164948518528796903763310628459749390441948114722412594934620738795652147358429103192989496327247901611061296607147997397678292584492441218238595138962801874094114393891807044097387519860160700497532269794807497714461156949196179245772406769086578574309185877789113495866270276270660940296528880860947819729525387578402121205853516966752760051669902119106132480843920102837958748024718176549602794468675018895582221719519755475759790116581316473430254129811993070512595186299625778881936932445315532783707510547190204410069341528346239037781865728218227701083718356608923288064462120610802228517984604756712809713992907343893757559167805695665462279339612310232488621629918802250616864128560550533081930276195993551297469753688452558639630046155236566257652245912865682860338760383423920487187917005015742175823755831688859288635196630841258903074372848923408322247171914807821588870067802230025871065108776213004091819659897170160627252101489067285355010537897625327810309848628038549799564935560160100554086636660690824177125996443944710328068628684520697346740060959782894333964635964194534300600535703895877504062825567860935717827442657541787543521792819412743980661091949484683432988287314704235626109654053255923449748238740124910367269544567388173427187902038161980603157771550006434133309156845589236058692838633142537411823534721251197806476422955443315801528244830949735377183757520008373522562591500407362382382339260331299529368829221239746012741460439673885146670497527275929369755107128480886194853040001850295914218944886209293777131301412341809644741278449823905041095534195531735792703299956569188906704496444070290033124493960226980948323314768433739943442726752151386655921834372412807322586415746921507757409818628679907413293150051219152457224386085194213277604471955217852753952492161140263886260727770815605986822989728521844120110548875692063279598388182412564656713680695150367469507240054590369223619056417286596327953947028015531158259736218405907969278792698419427464268490678568088982987735118681573411654664402127216853324291291861814235629359572426724245483815309831977550043690035948413948772529678244696508909616438182529171773868274250598678672406736775174701128799910669498260619747722733607380349034531661969929723004672035778948996822138565215175762943520327039191877476495196337139699440878086885423872775925138283299932480556831544844646270513862593950152556454575733553181145200860951676249022610243626206990462574409903024481965062484463682073710581790293644676869110094762223297543482620899391631538442288885660292272366677304753319981228912572737272285279836751028757403723669400563182510923534901979840781549229359502349371815184869349356033328289859175050600239343255989963614798149629792817203406182316167728433370966170436450658872401547088765789340996413771455346554568790683798395252367853385988855179184574117438265195586704721705368705574945538913587406573864008373014053514742415224231848804975263621685566154016969353360582677607395794291515372762393237596006780812343402626575147487332287061290910356945690428995903430775480634037124567975993567201398191087491590889295872879893606640381574548474518629637638299279724058458414133959791671602131694530817468156269348655665017201397763530842373093380873322348337021418632897688932953812474457451631335874981716360599404934015469335172659684099901950772997448443715287697822465607876994409498628031137358665357328879142039383999314617990101232718715438842635579109319489186417856099161558879850341861428031496714968110583009667935490595787451896514551189547909941312190740198785875577483741391324469787465132378484877829373291102718430856608284497546248394198674144295625708850533248470462544159771661663139826952343332431975379064606960762486416590513391225836068400666685791403472397987565154100472945035356639999471608569649016213817349077504795480004536973440684343036486816556894078596070176006888800729894551168245866555826939464581347290160750056212208183715237915371417942551641986439894980632372718439678597069668832771083295677113910125848719733111392907001278603242106924117010446662263032263702363720931605936946733587115784221999723333216609728068823507175056136383641388939927242394401500673855056912293054153780640057020386020891468905763699127196836669772598795375877761429335260098662440142800920752302702246612739521418659071836606386305476653597180342492364111655901567639936299732101176648358597128793093004170386021030993509008637493326676879401089778776977812098554810090351662527056861913316800756593690616514017191741340020436208827999262562325709324546477707371434043525045337481731844252970280149793258524206360361367417289602736005542228409281174293427089160909612200534933237722194017953510715534331468563313566202256063774943481122035436744348384982201390182171754384126479135878038511953557418364416520037253490760137343977850469535904502624124948282174954694053460394076939807831536907291382502902276231752122571613519314976065432433666641444629374140166940858423190036071956797099006638491006109568680550168409005004197823631044814614052529707448227939549082765449032066336023526148873949215640376096131938931845878917062603183256806730252143965140309068260995558114816673898619659719961570399500182816554616357853031400167980641904248221555071384128905234221124945087357021957043898052662622696558544513358159145217149811925175170030193816896399027797637318085065534170962577385733580404269229691533481979251783883022418957385528843110016365757789961622698828177615559228013488268321474012490118044647829831531109868694777567821694926884035786296672724628014226360522386163599460962282137416668934648309627592114112121825873337783968023759157543911605553692836728169298264820496280286197822102338481356605845986789661259548765653295791441817437585806000919781100209423953780565454114208823411001373144951834346488369156486656578254007563272402139618120340459621628834483778893033093652576309873336569560648560434531257840361725654458550669123638753477484094118511605822437951270849481620821798948764227365597970571075454782260140426930849601266104915987568960278251103718301437031448738098409086377904294113044466503130050738992964770127347238305803761327819237203823062842360542761166911943376594241844409690962405925394030963146103194996933677631083541389078142077427232632615356998390240988943340648423636655855533031136853440854508485405295640881441425203928843576540239058447228377407718002099692146392957129661468134509686103587539924108988823157523384480083910490846362685431772419963727871453862431917004447117849978056186946982449525614388328374863119460988103237561955057779642734988575843256577695201958969793147520647838161336670018776344427509522575405099079637249252774432490248213866415201364196677163286328908340131272230417919666446851546390782962808780257980162030468931159746295457722684239385564449690764310420918162207259882514108894578241511636098668670711320178094487074827689596232055340630105094605137062570418815957081768447877964416920346134201380380174850175265108882773133019679691438882541724518361946955531124120307108360773079527723187715738054763046364105598591910293420450082472764096977508032131802733134922173437128818788274084441337153669394450878124798171156989871634534888593749339565197255497109739791421148718170907752541931911699367513839614889144676295152561487819262002348342368187420077889107844049280078996478411799680421406645742596072297011634383085882826648429676456960143876455783856511163930399703850315033643643757516746849107209661279297979335154958821966937373654644386643239389523155552051421451532363044673986613247003165932328066181781455009139490422112123113321613152601257466545573666759782499351548455891634198964922703968032385456707917428822691455174103325035850087857138021075243557488850689902472371491369165276238287365932568280869478221195846583708449315759016516834779110700107109816114408056221105771917225416577153302871551471161654092884698792919113633241363509401760465603969130604819715031022605667727787720709559065406096851501980629696239079342118438511560375492544195258424090813016481961018655039310221955637782602147277682738170180718338828418073651124157887108847332446870449992941692449371477965245022125545698886541340632503003085313451406992477297132968472125439552484727473291627949927673784715816316515202769085431774060154295925486971065691757679100622244505331564389907562435596457819728276623354646324174499091600118859013871192295145540709263187854121895697413123180547652263412352730684587858693029727832331443321751872957980296209380658113172355391276198378605284352901275602640641087995251888389390853490440777227975324088796053728411757401478657399163231956219779871081046336062998438966704008358624951115703117286785937286464317547388233685567904256841703110242513080886547886170015705932869629190986765764969708901191076428698764882953270097212185399384429713589356532729859273235272602954124134445433718280663095134801507894941139993054232443520603124517350252072883864883351282258093423318209580016392820437864254482332937118241707671274198853466845288070462689523954224147396855000312690328872232977337361491829012712860941347372547970861105605696498428313617925967404335592829882551146562126923299529603813820523907300408654010992053436680809759242888183434624305473184294712422393451132055752468955627215390330693812107120351087029990776655518087623743507658029373656639921229562489652047694380031564596111307743280530907657633643190114455107702565258521303240756443486681329616355211641540567574365061615174453571758505295485616890557507955318618223577635900535506320345465335126680501567274291109276455221012844267974268185405983817479713443529999793208860485585562941057147127280577337054101915969856476741023527427050591148779498749014309947441942330804882266062452125350865709326258744533392702096615974277429956955491931126284878674575439154146367400771569146014598484286171053561759278746549584486877258901594515758856339980511012019691205504079945311564868547705669382136929189053539111003274254279844787900600083264139191676082005809515630306894455309483532047058029329005006000324922357198237747697485269415799692624048299943726707924991719128604611923523226166707906793862183226637372095779561950322067769777740628585319632336562843499205561305082557693884930760018826473573364850367214726952065041765630913318132187410122402451738898845856439155385904221404587025973754166387139202363906710505373218141659002326308847752104140148298647730797707665084759884769611154075341435762799101657382064507689007731486171537868485489992692170007508827524573021098646374615468415187201144180354537996605142877041377650245842193279657188701235066765804471458738056202708599820672735459958576551024902897749034090336814353532119528201191475750708968021016763241864782603797538524286939802881826102354805209222904715535836309132302558495350561398031259936354858016394820379454730133460385942602336246295680357504377418151574880787212690018138804286590309412659452270879302933119027541764191201863805454908761775036632740080579616004596709496147287478495954109720654660637341109921021877240201962113939182879735271377700536509512323957693299823715484734484962632049068086616171798383913201491301550503705815735937139797371170895281774179065444232250245924237234169866593190685787168890765563680855029498210463000471973875083078284828912667362615911431793079029505591724468977497594346708335789360446518735370963727599338751989434096367493396667238195980140752145032530870426465121622081241134486820209208840595328829936634110875263767705280818151150886371558398856855436114581356335732604142858543578960373718309209457779443958735429807379378259075815562631476536994203242124768846884132277367063898754851907846246748636663624671919573515969522136831854780452174928047871805861454053803719624099682129443653074821959931581937898063963788667506222320367100047891976760306847947566812900108729165073416086425746010426195435254824487581646793084300101761687131712835663892590607652855741316856346006503517439642827196923891487688512616315183495757049698234336926623189756854555203521424314655865347348645181086937415894957044551319484024808458942742668577619199780952869926451550591642834140278013546146997734785508504880487544371508436062169686614794991214527751239973700360405093149213070206029284326639380695906127478478974524550778096757482251969052420628128848602475448216964534684307915594979445970442489408785940935617753516698379305778183320941696310850681265733929784055229656809607298275182568557800791950206404724719886230243325280600762986158044558876293740717163830430459600118064987903232266567316658691554716078960196960668350856938424994530765285822527755677502019307040963816864250268535315530570242849017708144864452902728889642297123991888367658380623978869689618779777648533906676257384112116705034489817388024613808580606461985069386999994063223515308783125504296547617071599386093612046469898655987223073629497192515541148855306644252906821765927926182535811991074822456411564336226088209429776312341842824462671331293557476006145277131754892905315251960860425421443088953896377712217037638259586425045309179750728903035971783214997222741181316016490230964924349695751434438130550639699168653152617279291421255091912046537275909350281722812761771812675568264631383929551208812966019059334716772636676535550466936652386003442738042142078572537776827321783017711577322179175469203946722900708840505482157041623440960844003920347334551079832445929208194007938453355875664434331815398096719454832342628645454491321134670019675410473773651814471932330193373935744656604866673923689427073769795913749093883456001556606445109549413997800338918178299362271195812353584760743510438206718093848138478134929059888388579856741413966608773902995415502268800646791728563678968027149930651679439249523007748943222350620328009429265954808997752366861441506993283086497074137975784296051166391537529806285662632269530999427790950172911368565677500240120696523745636977898606040314943225429114081490525365566647639323483780637960898841754219060709607501910623984265010773177415363009152922396007964425793753128307039938696955499688821724453251041386818794820395028488269819671921354530462040692153157399940401408937682784102523341199291309016911944286971381842425172278176017342586834063605065288001871946108979308820102629955453277231727890514330742709918662019431385413416966962942669402408019124307097946110648897911630851310201000635288190274643779329311165208605452343511526648636808405754745920837573914830801643771565723778387085207609875291565259455115858130634132113984133369888507634004926272954975352674115439947010533905152868521093339343611486523717621576464866802409414904298433325888295165956575740952733468354896961169966316052911470195188365690180664035622653847097352476716846044320925981688232448638227363419011305703346321229625435265391563403453631300837134591288213695105412342890224538291929852982845213415802016037820893801039413907083927809871630094845230840558380763661777770001485534271868397556175894427505712755855677388751042482323405472427433464826936045217317538170734568011096126774088858469382269334556789757656308134637653876621699089131263813490037714184403057328124279917358027172783152282279814997642302500957326222618735589809960080759797273141654606228158368101321547609963465434729092491856167320530550216903396125881965500747816687671292212513975933547881770004745169327145927871309787993090997443828794435142287773521617599193656926394570958210647349368078816078625199788600386755908426361249997532380921844200774905817903808486360039654118436708737620818319899514260900115159385877211716732796347616199645649936094473540018858306577656697949347990341117072095705223463397597462077840840297065917386833584523186342699116764659950156855057123182396436862194970107938419437770622388522897296250343430647068390353343235306723228679061990588956683497802880645712825625435744146337504766279881380980787421083194324722121752770290953652596609776782157406055990543600518895080388979107305602348395792596531386529104138957416030268066096814011329194658350007021072657099202070258974627543364676941339345022603112937754634962917412408893993874202312272723169075010089483742637987347932004391669605904861028988310307190166480931733734739052940474621527474741872017833208099902702714291930934722195678800624540618107276082099467192288024345065295193082528607090120250677544344488424886176790159938009470779109738281287656245127523970580315995012253305582498876849886767341877495755690154706453137283875331911206030642621544722481035370107221847976446555084140986257415360731719975589605394124256320308976621270566430209186730595555059134593638565589344003029586582923292113312041427642673034654245449434764404213965331996026042258606879656439533350412091541708404808691725486022250994914124630638826775641763108700513930535793347927302470743539441371303797343300066499043447707389497029442694985742315657375060351534679783697193790343136821363023851113614566251113703769868881539906901479930016677167753119905986974742308900489995701207334018124247932127144579041791412203230295156484191746043807555817231282833415115326677491707817624622224834177887329557586794406560647511181799954664765955934041280241964124430735947764295193530307119792844746334553176476948446186411304003541731435086802352778214637067238446303071019150017445874509311109777137051044852423381926364474346174845122151642893276154999267730248276185152145209751265785118565209074799203531193474982501571031635846802949480704329433132622629354981104752622554526367455375386690876998444417666968598475298114301303561935637856315627616448025810531818180828387316476766521683108795189027068611449675926514321954316030927264533450236064545328523561643425712904887945041731543200393627567074641274984575377227183563123583920982544590615337511041948999144555315880439509626461366921628139105658476088643610630106549125863303385780331835010136215491526121383580158273304304363875892018781501664228262128376854680003905012856520312136174318613033511878420600214720738720395703015059921664500610420122253102235199139169575503216445458653643054123117863451793014279924783624036616881297974354876362184315254488376789968563805577339705804936568659074780014564958841478467248894716999321903002048128604212551212938359260346835582893622897892201918882616406137249313801590483072906837981718587926195292686479989631758293427341440785294170523776951657751127336222282057883272140018089676030355442009125633577882703714406312766201715524164349180500610973180692830672388631925055218097444698251121197395968039852869123909354483048554814948661515913586238166006214393859766108249273716604003446375553725385312374422586352135636044684067980385139413964330461729247350101028658013213041660740715314122849120102312288983525852061563836298192114740964539385417805784080175072395704340478077143708597723484496506402533919578544363440292249524744859901303588279584257562366114956114292889977362272029831078866185666765937020166697882733127574375560278120557449167922019034267269659430407130616358576261362171594063391535747911694617422207803957014024606161218771596079313616581931790760273752015933923976709155912000541887657923472101698682965745616040720883038042252421975508841359923906983529442839617670025819316890358451784747420603262768138094058833090212102883774635856429604028182496710314729653268691232892072445387065085802068383005131583104359928112151882455384365742027444837080431878862289934095761538408929577663728492928310712266824699266585338648775496705276115933177343086220391736653060374343425779082134344195612398267270836447856816013836013922729684010284312534067872521276553256138994934381338100458958036677805232432513310919609052852592629606920237651512636245540530979393560102188501606499277038294126395515398818419028638139558741699509506687000859928553649377032553171878078148973819456877189007433681051737828280141246264447703498086728765867028268737338256549262829721748957040048934586177578930296987405352503394180628523064620284539470929029689381263822399134349759077443940742106769492019850989811452070910686851019971443866422854143385364420306226577122705751370151878504100816820866738319418125393132249393871759899352406146860916770022105803601597678148601311758922771341802642616169659148312143283352766649849162679424395761191876615878243549162602652326622415286698933121931834330689369252452246697485876457671896614854181631398596823443747723010567474884252807875958519584625576117646209452878769985774350193339749576687707009579974299672464332361222283887890968959042716701040687154372452125031677707200686027838902047483330564557602413537408194849889091283557500059602705567538293155889826501493400986708358307487558100870481293484787774239109595616079055704189255231215466224178865905720356880880452820941951634758379282066948619366458930782155652807834999057526386981085715627519470419701920762357975647166713594007576518540117717723432698279827722064163798238275782279671681967903154809752438495043628021809030454926871700500950329738162666339917816225174288161425270266206470614819857026347907275118459232066365893179548153022925813101748551163996597743443009017248500254497062768046102370921709809210766625033660612600736686888800691536599966713850802601472084098811936893673219999755770883248318712123976261691292548875416911467934652762919353454377803662250462348639290800375790378653238142561867658919498933770788001971953166709433534545728977467430967045181224868971870784315279910763173982424945270229556693982120871230968028098347000883281272203576742122323443641550135061106442434766815290026069197522384511968044896885306032988123880974615130919345742613773202646979328338958220035736069759946178331469471759066816961235942978948537882147266999181096674121605539152210137623743057217374395405383694835019393136832249812231615391562623179476407236850109509878147752253810323009981223033697458115830990144577814007170562078706944665760513802293725600357241368826923732618192543864667616717259121783963103903036989246423394801571435637417995005920613834840441305556903414807817371113691068759395265667648379263490841115259609574526619888075322625357906256105006470817529411536799418260237224979136044248020204839963320098621281939035712670732512875594498990013104575374176533383307140383177422226532074627391252555344089459101351095386687887054299077070438909719136478438216054910833051907363966202598710434068929786492859142130425559706603150652898896647875424309745620972134792240586356082019566927929520470777619236038354993953597448655400019821942101537045081478324251329751688658349189042636682366430464981420749312107504107508721593165365673728836800228726690661186486232453231282154325293263793263177662147889561890376065572576304899233048815097466740766560763826452244459853486592604782331003193037451120589438980923835120539370608370422530185587593413302644774319107941120706437328449536526716835465726645658735628628023653154374674795331733530733765009840195911742865748531053198588545773583172451011895187823776592160961306146261607194456098687040226357448094445615802158883049613531688793592540599236551958032879338122105534112922228351322022661617567801442149402839203480322235490904759515317114971082862150025223395331189958964867978619721350585016136275264580965914057642974566489606417927254600920445470878096256493735933340929676775329060472590769589812974509610443130726389705356066232163374435992732273292360122179151712278603804737640661847295509235221060387662187707178166032678296583159044195147207208121652379190015481630180181235282056545288586620267700059497757988532747183062772234922931498774116224418341985042692962137174270145996855274892650959110811373194435424773885714828227996057422833871782609091695561326321897201649191472483990288026691482659194274825075032061250288228481280836282042517919885702487857402167564234375327782105277576820653800532086172836879586277399115204359204065754245063692198479511842947914323276191990405543197368289182124596330998640384881073154469295224226242010243690592093962360148710124135325829218064446064715456810943876728707886080390936789206466065424137582271984084952216297672267145609462851428522359562082406159185880945956475496443671524044146221798346730872717323138214966648633443513621891259789323461507768040430232238358208386639795077031023849967196209091125062138316023351535428933958494783727892859508016243681559713260527283932277917254246572220009683984840666490537135902158091169017925461486142050590074364036482844756874095160009148254952505491802222883926220120120085680914500040215433289029068238000350719334323245318608003940695822158537611162871519567134395804067993123360374340901400026281360030474734336898268724961565180571100738317129495695178824424409520728070480440833480028426799221427702619845333252594186745771465878460942613597701927751722353699415358673223741220375278181594943410705586282425154507351133967900246161723692911167872308862235013446634214288899137881803160427212807401389268047514323832935941440011497831432605375438805051708333554202077535628275687000617929750226501558281346454256796665883114844226163372035584840481192192461931903203375188554137655966508967197409238026798844979726103089873938852890072767855211652210356022325232280730703457928295826219466605195483364595204046118620485037391588127319575765272132522331018490895776278944740791188094045048848237020977794390341964675450487917274993470243290279531804184133182377999841304222221280519086452210677739044627890876387348519484819648398573570542409818023552925818205144851356940925757360072514665446929799147112921370725429523836719285977301406851936553583912854621611571290947418277412641582091844880624570830938845262302128994059201778261132681598111502985574881845896507681760598162240644785026918361837466686419480069421936759996936815209419091430070178762338870212839646375309266336015168138152788102098508993713428952422968566576983931676599116772260581912769263057454207866985667365594238909855330153922692695646144582983139501105977813326025201993751695584194217002764988577034046099924967043125599940607230326630548176791325715866113268141739398102459272866538412452943101025100765788664551292227787825939401991347504669134454168167757364343770012451681352856617297970975430330426039516540923355680499491236844195412375240253043431775261217927028100406510429044604215267001011078501904890004612992036664034173221730926000583841342082603934613274055440088588799125032494528457349161258949341724686317652194617456479627069544662648955376900552310424289115387280837849816542150367883520295041940106545884732442768961011478440630235958679692607944843432631116735880625010724537159697634984583368945302279680305040203722056004317669898449626049740220307453656409134832612583187309103440116718040862350441005047556812825660197874288310400069798043920029153232124519681926350394462222896133329086829119573355890660176969843793958899542528867630399187546954141105786638084865325443908388926224019024857600945752336844376871407174879792387336939194023063481151902770780228843674745390315925455829294190711816942086150135818445413530397664117885586612697423076515621770563647845997949800857931774562904692396816497051058186276517819788260062890042859726487412023900518703569792785058819844415223429719257515948713046460878507615416790201004807586592144911611810168568699334794992003075933246017078925696360691238524252211618631653112780968137390286977793431039862401784295675779055061642216825683382447863398725738445955292771494558460205313067781466271106430721073879117823136498732818663382083434379874321744516017627230111427978602932025158336643168163619409216237672641185525018273349992738405829440859753263126396504096174116834709900161825028503066858554570571082937305493053205333623523654239878870451949597919987156254225641610007319239431860143516444566449664886952231134050997541500826359508106203259933664813974778843009685532987780864658456935175216623273681984034285276151976384880723948624634500348531030165289417716572093968116321214764338510312493811737766457246178244205148846712271099453808790772920950060145941614931390516592302835834372436286533317658524956705672439881884875360691756486031722488086835718868693076731910893068325558249527963565455793783975487176593708330286129830339545509943748792254419218675481515825082748369273369630900662875164306424577634657513242368723597064673905880605183535202421733914308282551418613188524714282671210951840319393159823273002533721673434106742899888437717262686620119359674571381919829349488131344839504866161849410722016781175012330297556312427604284094256360687549519967163017340326605454254783525120084062332887828625679553437784556144215224138548834187637653489310728075012470558856111127832727347798142699663008596071321162638213278958272069162997960902643391167771311326790550077604922552275664348478431802392542581714588957439367014894402549576499536074824955663487310435673446060353307050661148045003885399415104710152989995724588673839958302257656829170566459477033995529363415929956418049770744454454611013673996456669278676492427827090353395011015235736783697532248552373174128373061351765505835514544247730922058126034537957600759261665927605951643877490182899637598662359673384559965476434751819426354977247661500171326610674871500359156441254310148654865509678125252309331865945082364536420569051934087848337293363669243090196851792649548768328117522699351582095552941445727233681132443967204340809084921141325907048291588195898388900480419440735623876232597944555453992971689697822281404293446879546927181880426750500283056233801772370181471710842160861495122625229645332409691799632669698864226452810845881441807872937279576803042895920825721353446641609847252520367599461282795117009912669733878024941118989994446498983332769173168191244462552005726603754676302366592255721680557689698764444076909330994595742739551248053799501695375427489483691738474192612006612036797114246134562962179044799421330683328428114586234923777529347186107014536091502605669751457766771575795408976869248588442719666612203780905405212895487936053954240634675452887801971722333354611105276097328049605326832213097711007237129890395526582863878948020270608344592488357080234675034819724184574338711895844245885540202488122233608828283786622933853925654674646753441604346304785069558021110404882851082993495486711181301565618171187166465633369155932468974216037891489527892502524988329178043991357732170256826087613835188198124872918433210997579939148611743114425068872864853364421274252577654313289896588998365032097546208278993259716127799428793032522146685653304259748660721298893603902995044339918498533131438818632259467107114278510468653477624122204545477521667119779159866174967037063933299367948094161598183082789554225977887519714653338428241534834257858609807237604885457055905120267605287818015473291033315673019579375381339669533398060919604784462148117738951387526390665876768318806738348806378535864904952781245807193475240209381645916975959251593587321010380755505378168312601493097093338619471460139470321627634848841643144718420199149411302700153567878908650385071300601977663188004210036002616165272470172258288099938949596304717345274232033855321546735765993727576084667367580583146596189260626122027630021338814343179035124461982980951094036073640265568932214934107426211329597142320780305164378753752508674614341457524573294567393031377588747427508952420959498551070345818024030703634428692105278373389123264984189845146947303789808913777400543231050236501429150405451142755869780851565389867178352090575094228896188377122446085713419150341690815205105711970790454394798836213361940316354417368421993077936224284769778969058509983022363422353075398162533370998604581056072433323272646736544839967038872626272082336272958435031577101774600867042987885371650346172411098400786307876537304968476945657495049238627742286091372125167736754911309248666977818298904027424604845452314730062739372818169363956387886084487678198303951444185313048571724985265316701135963822780345482496392577429356264808171132664697711283093993058288636594174802783717715764904735543952284601465319071397188961457920178707817952135882624448511328423936825392324206952440918233051784378196300739012064324422461574091308504767422354113727868141937563766525403715852392422852289599600751431662635153109917621112736691726955658836166781116007887997897060308842312597366281744381640655612390560818946785409392699248181992102916002351691992100689281305877339813842055372934030646433944961795754376494435135405607762685377389504287986135472832889627997921528413188422030132945651924357919832272057749750894685786273383068196792786388701364006096074747313967835502344081901675606267282068590482672757834954454930878126851491310202081859918403524655816731623678872625609763091793809555699452219189803197594994671934678806537718174326508243316575150752814240689828226658908190666636616241414231994310550822178767152877409819573984337293391896726712299244814410059088955988116060893721718064443806690844533898166848729460427301206647360460598759703685969640050668224493614694231482955082209709895067347910505162476209892875349352180192909405425535207931888415169317877841412011412532964469265653696723011763781197841059816512954161103109597702117988390843465079592307828394676641846425109000088511909970978505484686410098701193685501103264370994096649757585159886272873218445520016914936224281905145256843237156632474352759001436811450937985841314347270885216517772045207576553480170555895040001805329710035906691255687766954281931346258074574244464630935045375943706294352274955036095817396060738813086528859516557750489460766942494396212087816635790915093305001020684895027179302402945262081181419451853146380229708208055346755536958449956364481493397101757771149853473838896624030927722072937526371246338406237979561680142710833217204464131719776397482776950945909851156449049187608348342680310770644235201660186125489736079612490728535649482174788635693381461515702929567592546962743348726965189447697609528348427255787516792003001553625673720552556045611479012332680082370256286863790294080616557522495818709001788062496357287092965889281497780561503146585701567330080720576842036745645977409689310700696601266229543692223075286871486806379420189414061636820248756292581916156026604189393293383389631388910417319522003687351533573093326018243465905812764079495195528156760685821417895678459693058726416568621600853730808177869065031722867912071234212047436802074378196538839020479882387223411279887209948439374770886276012403025170085918358763275083204308693940296285473909437164282744494680407443281135023953143015273094036835595175762969818089966696242993762462675740613655906273408951749248671858061035951912157844275578767121561604612092669923532244606219477256742451527578335921087077572293625084091410288836484541422665450977256711422811214593673519179413789864993619787069979128195215261998757994982391768377864615889600828340033843357037423561221781306887003362145165833235805933562052949274942839348042403476788568499210986694691709392432370164623980376644952917674083674749644245777979231646522318484340526504977807277459848158526168955936394741921374690745136120374404663643655430833802544245347105453778298411693432759257719851019815953091290264064268917334852772077460326129167168444913512125032387017053361811691207365265256078995859871408409671937067046345695530655420868110379020499607666127747467766479222409133339554753002077196567696785504554953547210729207475367421328352721540615996861634561857415350869463030193796750641411262463223519009767208575530105665982501744836367621783479079555097358673195895463679275431404959548962315859829798804794237720636515321088591035706376131894577487128473430204086140306580885466892401024486254861724038152369647933783736806567678494788055882762268674126633134495505396631770913019393786510970503401430352927100639123211025160552726168100145597641872069512658775152488008424498273764929744623568087654790008204117066240494318727436652097191080608052750074565373982705295521768991092283853244790976150436563596531194497127958707764216339085979222913667329847004726465189053470465803846085424908922894715314467449926068191589650077707357526640175039217391819353503507857956533277164676692207327624505115472560994452414518917984888497168223054210792648974575159153049871900897699753388220768665628587583721383703352641908455981866010391250631499626646909260799356203528345447039735329860256385780030536407956048249119882656004066610898777401604178592933200568399003340952452400467645851117792798905220970209190747745270072439264458603928817139708245786327676308969806513622577228185849181701410648704504522849153980503896437846714916364771677842353222117068736765367760221974419222900317492333524750352850121625843855186347167243667590878425472542777973640546962415318496159664719369579857990925405329947416138885968648906673477732681785610405488877127689809086679324476955942627616298246199538936137007439879410182379001778153364955872881593595748063925605597178808862552837761600803885619678883401610689932867715795231335239778896467613021327487549781416796469732399438324820375629379033295207230782396961025360689154599121808778098460175840139336620136506107450517026590475748273162875497145831659300117990450997323084723973588607591171129563444752008845906359163173178786409259860023479657140585240403678168393535343336908109697332089576836276470189837636986585259855938965600782966733215374406089487011332445969902701117358528236957722917542600928339022803865115559993839769101838920052596076239745771037600001555001837556802123674119510974540303355191401153762514652481224169105669983806841667511228831119773288234986562440636290146951265298141197112271152884180518832529145613821575545142429397036691550421584134967022314809590581924476347604760641795165955475185967688915716666452977227802148707139916603045213771479191320671270829722307810267081520517004694404675580437658218878251181630424318467386176889890913768399526607352853248406520262467780366710861143397763732525960021712577517601495941233796711256331136540879344000352644235318549442761456959155600758341869875139925746989840949809074918381498667832108444588616076597588549255083569408467934967424274482530605811712204192245150173034396901582559789635830262970933316204786748509974380525274010249826887704701513284320625653024328538630434559588133288055022665806587303963531363838354241131908913907872605383999983702358616172096114707785087104263434097695133366849845624194258376058471514525773703705610540717975618013200932372987938192374718214347025872937628297967047147344318115692662318815223800755024405831746724066347992387387692470023754853481264060618640492785355896445311916971340919191527025007868224300390163926218634120429422477042669180781075981064169307555754783480175456385107206238206650387812392196529004516684439589290568581983926939090498094326871982736492091647499325885579968547748711689862248663669388323252099454780417624184096939479684660081600357125575924674500545366123733336136607308251686370882950081617006664062887276089855187519949668005997325882284780709392867597369010833366570493033790533560354581197169063147027638170910103367483312957824854316178780773394472318881933976919934044892140840379799795652109841370117106344809075884344692093384716243552791615254313681719909780204595304440422506012964323759958119958975808645920130819118389181777978580167555946739867561006962100133452713196300984815716011673688327253496909079833356664962255696286165461619649816189134940058717480729611298807115708665351452083444657852734517880128445327122053157387752586700449171403130279964968568548382602103491178635746341811134712191970631998115176787783746932184024277165383540970592975229950559548857856770465494457571896663671544647287464729616574990376566806790019565855752010503985076846409212793502865411069821555701988755838422824639022397259615808318694724945900274402353362344256235753916859632383906016252881380809101385746322612918112647359041772294130941871211122846242811952866816663037923439153780639149820445412572410016408014986415141283093758307951934228742424112226579325905667388458099265579751983231512253188860839389251571328588059421114399281574413488200705520973406687908576245278277832630772197246141253729836779925675580706451272990794497489270191348416431826018696161733687218217540270562329944802507761724664157380926473027954469765427840122055665495967601497343594804102868139187766056617061037458963752396373324050942053396728153236771461177569629375498951880265428165437358591084654971585320595045582359521008965240053013026428446002146988430770771569461148447857422178110126854429632217016985557634876875920917023542859047590729589858625386555207642167181126839080392578857381944241470647380136915080472233424755900468272183064015902384824925485397512568265515996135298073130007823608550160250152984601524033913114734893888601408161502024886880562151341489421645410094463434811251205670921555380421598402213771816604188507034490881179166418969556999149593644288635680671244414773429414481888683611670453902455937404657318344023677300513229750613598830007122053720695680876347483414830854509859660804007511863857791388094979253976313072626249089119530358371563255985743072197423592705280931872586326545269763422728039029416174351485368134922352358217129869206672847764679413967948674053292922811747108145378004493709653864183959799623146124554486939530248004402018867439176773165109057261535173754583631076575380136964164463663764001805198165535445583944432884124672117688541493525798161143438210978603109078263256057430015140501969829313690451754408061376566553150342046994983657365741338018076647956965468363715197175160391714873896322893416895224657496898461017559823879881012634719966229848682881734535975517399084783684985950808693986803463940277091637826461728700279085234399969638683060002409928081696473049939083550960271174449150333782682287641972737942310324226801737417716835227419416072418622220164323570234963230469634763080370849498470110286762219887975646740200850701261376464995341953488764548214297048687856470073614549713711118174811217290960517973766378865510558366914949739344494546089168858473577767325214188835951277759219590063637999700918534986152472233931533546080825610998664195433635478519504649455905561369930636882373821047404154172672272223579587708499521760847385244572219798995616153362590594864455060633653400921851446800304020276414518651286356934067774958533506821967706513898306197103132582552034179494315509248014527780962739264064847468204994683190379027988340849349579182466359354555770683650401445497096039032590796274949635218323497534551948093333040338355976287249875521105724690994325611178642923793702641899510619345168750151588270180582913226406294062874994601190434063685885790356362710241508320488061959518628084786450370781361777264026560258163438662701567511831781153215551025660058499622995477541832127362901182915533229433756879756654518657076054299660230147819342116474012366609475988868120827275824737902580552392435777694912618378499131610100811718808237680532674645706958789558494770259650178108694995684083886206908260438947973380738105445633320084913770667840094588543216284294635494373380770988570700236336706956728641435953065810299328769700949751733899435742017155345071371352731688153112451807892669048509139787024474322662660473838056336126357229600222630161384827070062099147572009275669113264338292119113418785872262683610675623980720804560419469020253376496649095305053111307349623481507991378479365288436304852826934500524451905539555411114882172964176428876921599822735217486387572247663809718746251019998521878466448520929012917785155920557697189066608165075436325093276208107210366781059577628294238082998004080148005324122507139520322998737218165873383779667094859677893891045392076166627874174647613960138514827578048244704625977970047352405319068119097712437934355020089469936040495029307285412197247687211923089655999548344375109523650460267115672582450658778987118849099101904182723713453503698671066240989336604191959202095344939258894106030395790556791048734421712516314648130660604586082473328095989500684007236593179075379940704482981244590245013853922005215469350472238160198561471214610385138465052478992314623868466716625591146749380959923113678976642427134916496539855703171929055667454130496750887912114372706682970684326124512048802867177436813962361541389145595567175723301481213875429772993146595518952801691339955265430113116594280239131888395702103166185249295887229958074753545360206722898230412558404343005176605267571946512511024598945653867127249691036076399534085534349227980292256287038508468499514855233228989201076750301137610400779091062519876506144266334000989389714909925313135128284509292317556121162901880710428231479590094623397596535679926982911416636173830734179927817163189153352461919880154844542503808168021518478623837054870131788675663804061619446115231099983410408158266128590994584952417759451292671089082282571333077465393835445770067322101300289318625472065399367945852031393262846820993292256176691205626561241532394912133620606371620084931895951775156523867566928985752837306678905402210930501984497130292142767465009175294042869377895172924213638901459893159301789278369046614360395262882615476646769209333864854412816572862891188818592512279024882213850725113913008868480571414526368921567369959629749098104536750618725939965781447174558661718886605005313220346949762600244363052425284029040921103087724953642790427448418948716344569664915809188173595278423405324496236901174759718256099402677403706019670415157823315973537734678660598745950860815187915892578607994576057443199032624270681779680797936764828224668182191774515445697055096090932465445736975006126191349629105534051060993750887113886535608266561364892331503050334828508841304546955150210259997810355586675510386260387749708015650251708604421725409506934773971799953707516637877568231840641236893733830235863601593669667016928456013688969083434316026768148313469481965485844866195956554510575082818656451686255633452877285209009379224107990267895707402392438632310219479174240400080868453350981918001708579272161646460495566775425553674092753826422287038039453314463391904889095978277246302824459618760343434009361590065651715998882879951877629611178895260076566088423129969245498350772242729849189812639091227278367802937926827569445931408605808265619654133154759068418439420102915148832487720698513918355527262709223118757453151568961605219045747592190791757173432219557756245846414622267336910983410398587582474516835787309014018792678794771033570578558576129615969803417023865255469486481230618398029659800463293440293495482607426286860865984252276486932677993117217177617672986930943058447693621100609053796654039585250282185901635587979051058827526192103508251948092595256932848567985903069438824586986066309306531506998826507738829733996221981214149593704807388985580732749118666963473785219219164319146707568982000784906652244376026739468219749163598637744001936961085964579932369337715506478114320389105174107147535144635651596352121639805651871013280459865787275902061331539400013574331144487625854921508028226272821451112129135579875439888705059011463901051413532768574086065397421442861770975998673241014436628215452316184667234905392328102801176045247384001681896641238231279021736595949903819431626743994675679795601005326079336496374977638985210959119288421412777395240752741007043279949451252816823068016653285841647916004341755342145454470643363077935232061330588133652375682742121571022598309141277186857498892336122979324456596359144794052100946343102403201269194254610774118401658655984272986471165658369870461912184379741144457670379307345125132587304660484298286103613731860116537289615978717348860298228755908384925255663515076965742591234163285843144327038537501239675757992591250174843278408851009238825811813115890525902244144283069800750058445483890549156874052449282813395157518035473240669590869797586299303212971089539430271063502700049903628580868225826590901475953767843651114679750108855214107581709178972333682251951816702913426765923789844611946122400509626878899082994313161077023296625089518261806545149004498482259898599788216481752667417065308495211931495196809984216497587842219454099890954419600939368185177315718169716791023337558300336368522142849163806422531664769057326846525686991682017275385882704129421886732439507286848431426370561235197875118508944710397547578841093906658035063358188067398677742412872305889409899504503573050879170025019102594117816083547395628259731723679976480487198577960438830195877636326265697706934501872788655006236627715965708822497084245383232758176548691891287332384685050321753853970110565803155035607320918144291820120270488648415991112771481398897048001152028942103605067817552687331674350587083006548424444915203975512051466575253983862958280603773687661234923380700504442255427003405625197819201582502730545234009090400572235751014974673483448327429606645187801569086477232635914491627549623576475941901895565036738844723566348881141199059731620581008634482231582957184835149359453466492318090347233949816902770991276757729328532910395607253469460152928276447583319928200459129581162015240488400824690916694703113992514654610216590439667522542354947459157907679743025845577713037113272232102757366409931202677961749496040098674754727714115149248751993626794166412360471824609675892111762567421206946828566118470569146314231164086635301016967717666499724117147358093672815543442933089801299228426532824190299203235452565782355362497111423130237504934606873758822079966646713370619174727259913674620655772853141142190914590329790431657794416739965035342315817636152984776579936633065374085086791017433814334780077380129469938663645623870585147766835824986960922009876105271454196932667301834271240050465294847388725632545104520075293973363183209571803697626084984558005754596162661033128497716883761862941956036023081344451507517093514896033854359272785998723071995892510222221206671806457042101810042049860035509186759605967903363941851961909084324073034590819973978038651104588177678800927064262012275165376418516326775823017095985872997945730663193565425278675833123114363109587452678020426967362286315558586072626066399881369094332517730300294795400202094007393045007515427526842081360892150679974901189702892453862845642231059663699456809536963440597239460117452636529796657380798999048316673427267434218924592028659543913395096510446431672799147973426811670504702678130095575753790473845761067160902765674513573472239012774167713253493422489300510359679229801392830371492912158193752823090187729785636412191871502197080519674969744043426112840836860132266294325444597937584553480401592199994632038053514691654522337791194692355679958033091186668158716311691061339923621976582254550047692473752827030982700156334724583573632620537124720647954972579871106970927492849769555215367997983700101506891958329001466369631624690090381169149584183239385032568293579495118134344990036298279164399341342350676244921161600574647973015297709074499677371984620094889773986220899574570248485620331827179265763256251803746305899030022270828633807410443317377153871030151628245015354620810823400787963693769153012741166716148285364461475219356396651554533793376334867316844843533587223140918942074606412925931394847239008385413456318109266742636480801248040890343695401599070734189459521621098138748713355224603590641696142967643493286270433471010150546375066322288244659690977125851272843693698234547335578644787331578007529080179727777224009673146809867285295477952451690056357963007485344586517338628465688493684461973387805847056491047972630660898112522815776200857730479105084477136290491832466489016514320725275438439301163946500222214113933888800179550549762044744699374350881144104691507958469997435046629934358993463412064902852461902947197385749849366905243945712819701959847938488486348748212944032078107547609701951799256688182581445076033629134699940341317130048739581080613163836165511310381993799886692424199938377560199769613812691155744190517303722174534465712977478886071372904854924419118773057819668803352063502250234974791453361655781234037420625988781033001997675917861980640956349310160209660560111311830488968275442594692320162821296933835582760778615643815591265840180561148223816837451654375041053348500720785177121059877568776708584835894236844872948961176192221890884293996375892800695732448016907029852896801808616001178439706553042095132040211084319468216056528613512926369297734031461833533939675816615760619571304482436124507128241368977903017788118280253525568599017731971582450057251634014774337585606093428583869674078216731882036843358680872784356381665980412940746737619104009317753482479454720267299237941171305611334925420010595822099549423178439130257376054150025522199909503551780327548142967360667481798148122130592091700111258021970729989067934384459125300877496439253098589865393699138715505481003188139234538141543637184702215840848286769304771774355426854447997345038900649066127639405058435700256700864713441158525553003731522894154717399688254763499233599484022560806061134585371368285894565392170829857032951634759829603684663721596008333035165001740100720904528415059833203418995334131317608518227438736145082881441685099866859450051712007637405797697906074173507704711844464948660768038314231418712169511148368079303285703347181932893876513360877197395164165676993603916176251685364090301217280784266594734252655723613615870764256284201460677992435590726186213877564369131513569919055182093586710684033005301266063313344329267663368880979752287820419525342145471011759120127991421101872488052124343499541963985660828856911540848700395135264245526069546122897575335017434856148703262513240614982903328497220715623149149823595811337797308684865414815676144616244319416289205224899489662935941481674209322160080519340112332996307330418271244270630270519584649190273337158981473769655748946260004386930497361846403110830991968215212596404809403236823443792393721750567686203172907054513597716958139873884570753761033483476197896271471541371269891768217442912854521478122745598518827829488969953507007465717522673935422764066964711340801801791689878057673322591184459769756922281567578797377492475059361764783357156153584331982131074691467172159892625930511006776449305586342392444286945587586969989901159688814620143368459962462380402137783202372310393643895826088400655922865035460612452593988774328733282425464933032878774156110963280508492505653060270360633241518094080090901086572057562684106410570143216950752118347662569072597516914300458345080030430501469852474420336981343380290957177397655147608960738859712929891511930260186150611414414388290391626579116107660215803054851191239784533013912274188623325974035871451805814798603929243027871347197241806806970410246490597956441825199859007665059972455261287237524399109429726610963397624463712330971745908450219213865148125269114926689335400380203886679440096003547069873692032567030024639950651613833438144954508785673794571899468029717863205748278104573438880396725642749339631687782625227268721640785460118313499332361364506855142262887360444435106325962294588263076266745462110630390228386018359535198112105406219215235112836478076819285534019359625210611284054595692679814836408653165515208259979789266804840164916242520614652698031957317946240031295161139956113896116500864883867163961417484929023150385902787115891077961146907779632158713649565411397220624396321382488225388944815120701806611789213361662409635946449858232366242241563653512481733073037712599184240274838648138639153694563610112671645543114812660657649983480238270667683271714557909716470215762853147120037103192781289219433071665220302315418477877175206519301773791462144058559637880989625530551908051773585052217979489486077237162519883165258725024763117064871729424563250502636509753074997670810482739453970996176647755519643488877783874901023957419447708984706450680356312600538537495124329950847627473821183120494314558339351152565407590321205692650852304914330970328756537985633140375995007296818966295884270480018188245686305709070659904073064267991333380299043218708276147729964700538903618922551897307000345608364301052900260079491526970244451260943168162750689295435298800713605405428512736621300895613687682112221769100417725939657666580117674226802395330566439316681614924667217729708062574391488757692418719744781667545780442561473776441095646136923886301078495819378700716106401507665005443807041003475402577693315212200090883678872503200874150118164680117882602839661542758693503604663435944080812997744662639698620551295604876242953509112631118292752880379473327830814834467881105038770608674916841033854143222270194830811678158241685164841141985156150088683947164121117801615048576080297286210533144536937108175430981045541505825432247358878277798429645615933335051531389728675119937603404645001635299781474481532765766693931466279460054963534600725455028808868536152571179442347312596565754402786665050930474907079849142845690194926040058693276284724479100846763552934826495360375246035701725161781889095282705579280900583706705548346133731597281106290729285108198179061852613711900746678280065409434818757807890646560601215675065533291004677918268178840289215147706286849820092295996457907547813864420845347742904145508844216430730744992374661119273042254107040861755052070988572173416886185356480165364246391131391326191558501030137960849476759479746541135351780453567163351267432396418432096438074199277537118102220909162982512153830116729211330262734211269495502606227759640429311348134724717379083999965969632595858406482436824697670028177504169790873085686808768526012962790949732937363723576533480045287453173268913367429691464960770501537568496068858894008155107725054657208976960200076161440780554601264213983443887287069203817679433148322623218355301273501389575543129364090594516897997607988479890034441622830493032559943246889138638674129992058474461872042788566472157384468903081274786777357555686636276813769984165967732115455561589498352791211298872538590319308340110945992459035840048671878497595681493967393426382720912587481921885034470111107595466839929476936927933889077838974975415239194951731904645094511522564475651722994093732124684063187559618015188687365919432402471265473333885553098201933918122517723760739340049004381389973617810063853282091890305726397651112701449518799373671390686927798214419544853175662896991650073868984202742135438202028171645427104834956793313563646827825648665300503001032737144827862583599522928415054924107663152186412854991943607423621867178461075949240251592044011720662371896027971137078363417180491309985483475760871845838561645628026843034785897679117931195464688592163910186547449471407859510002602370840078574621827971343379519556132095312996936909033240473057264747040570378746300205779423895138903906357873915641813611158347102073747076483370171278757731015481944132595938365106231636742199194025112397243169560168868717572676691556970056114590538711431955418873945896096318204141143388916864940748734588468117872617157213811021881590686039884195129874221727466858024735560532414620961292081185575664324732897537973157169149065436915259259825326731410012874832771287308639032479344077524838698364842752703872950313029724723365601437781313698142986401443826327839479747600452313291608056816539683412436874487524786252295412577306039805341304699456264955712597354187662718509555143489757813676244505599959679793786889475272013963507777349257866888282810721948701250146604860653573538119892758635067201814235716704738509576838937626515309269112013931540666636984020644249719484262015216376802106724091368309173445082625828101149351223042054570903952205654571774008851652613724999863377287570503295118973871503654928811085509995800318101186999792551161773768929063724146618076774899593363237040480213979007656167703685953754745718683463117588178586707950968117706205652394345447104903834803780298732924044850340336976413305721884891205102525633118460249082946243160687381045208358999317594275098291330331719335942347707745872300444684412483622123458425246054205860174407737219874771629964502641486906961651641656760771059530445349175102167543087873485508123349732105084350948826327345864712935194445953116447276280829997052942809798360564502063880916211731288794925581087663907683797871579745676720704265152654205684687061866746632032426694793919049938067186760288167165829103877544690526090334427046904423456774559690424887618633245606525336996403789000903693336757038243389538948222838799645706585440720622281555009615059837399873762829581278470145088713325035100708094995054006871036007176044253553700383334131474922105000644147209870439102621851361878440512403043339856130400209832659012680704575059687541268449375971591012053517098734767888162586196292476625862652142929468683096053694960606028710133593295242004626853356426204085141923015515207922947220270358983030117588297869165688522020196145104937641231390054661940388941009739722105397603443036146563497696650390414980449825930207412611489738815670244328585607259035203720046770973337742496838074447452756752439062137465221404938195026061688754460420196346211984392766096257335778483122007011186769075210268317628930903046866987783100766778852896464927033148193351388737317769536305811676329595464197533521067071306044925198877477686969342458099486217047002439435200646217490015596423683147396327934643650155010923828526020308155216158180011787813376864604559109064120524396436933491628057848349077951653336921919390836752925043804435603340124553829061864537569264215446144744574014817337037074945079209498595738461249608405636105383876243771526988808040867603502624624297620617724598265555202635213271923202021610469247667860059903809749732069641397387770371103587769934515950427997811113159781239700338778336332621025324172938865900566721758753044907306287127501966295172883340238555053266707347506842272586759240039811179953052546577622000754184237732058988736020418809092863309796441298851379171203737832146250633240848872026061886239869337305910087213758603461768053249098919765870015806805139495903479566723854459211725577028234759562758051456511918749744618436787002122767164404035071109509239944219578031205756643041527038357742170031616407389565335134717809035013825759619787420007400205893244505382867218255159686491152134515266459954648709416846523999193192473268948778138982650466440245729723403531583998929354144240034402454229530091884089991056119905420375868490256281389435840867437539927910925227250040229872419430939303385161852112647430395047751196747943942974264344682533177886542230184988412742389559867815533541162261592251676285156924218560913767040092767383028232462149526114042948257811880547623231641352202051585276274194138663965209731965817322878963508466214030363938600206469601251450283506543521113133475689525260004581207350281145251812631902764631827581696717999994308293951792894583958867754428494153393804619509417998646733149041426251307835703309717451609594082730196670218406865314352480528008121870650631195607559978343437756677025819312528279945162501490097231488101196778519904637167224335361761890645929734984926258007950344499750683877733908833219156345177963950913818888907842263182719797876232012773073783108466751458292293668264803061203593720655933864691925788166685471910031940633315215808777417988955312137316523403481018550489044554144177936837797271671081629900554651259582543562274726237903186308094840686649165526375080489997843368949177755161258020690809638273693897164191816143435083803258954073798155025871878439382435606641017535595386499429269817812683714169770216735774232568535903341395766552774133121887721537989342611640114066064225367162773575470593664198241517667047547665452023725944360851878458360560001646205971481925469781920395257270036819111314117276787567002168794570164616783902176277123954084080415164359816253487981854831436145571304995042708710258259207386979353942944728812325507230281441637830501667718685855303425695193289686543530133368689390177846112428782491297848675276671893885307968723699456103761676332536687670837010394740666513082951769644693517298392968766913157437211538067642561800559830804109721282992544216422664199561403362208553188703482500755458958884682046459836562049830748958865036009944940940368668677927816350923909106563507493415691539966131883266789984246444118474983612163577678238913186341460638852505622197125449483013583928970489425335442887849314193592779389071629501926030420888195107480036362046022632818867796171735620299019644876637650418670657640160175707580429387727271837904009855907025056622686461958717426008464036684715947021150583638730357565341420428192327730396726501596601636498373712833553893535099575601171375872532132407629553087675198436868621480506457530378634257898092107402727084802987912193355813866531287595667504922225935108374594517783169873117395882240125632821549042081475109578969586472837090186995390328596633299987781742553634945669376047762470439763505396841971850655447585276599326731961530346439569339094204496119408411562760118486837973648766404793452723198182496949054143248370297014917796014989609473254139601872044365594605169247116286580211919947302644966000227465960667955421503775654749571973064733174638150705072973941690095255854569260789038107744966508467837246795821014398174172531429464629309999944070054001871610441578022863876208618792051888908629747731774356442577983942526597014111060168795695115480352260850947620397754725212856088260882095171629145004833047736827180617593533741619068598019316669522133127356120338086438669311035612172578844092627304463321693154570552106742806769906270002916861757793919040314167078416430451884267066787823803159761433222372952389051509021270468297614890720573962795649986653256041971784412857912139406649736646899012995330390878957852061216973611080692883485915946195263950626362191661095432199218557520668989966531857364270454667279007966271341600269370797271961209603464536342860719922781599407678464841601502469175469282483549439828866148832932868486212777462096118435993431878285832489849566869421347794425576897250823323390776196160860607833618753828314039294271187543231234747225023647943156557888412659060652260857549108235162754659467782712317935279461476400292011933458721113568899690807595961211714219127133509378941596425204368532958045548062138739507083077689331825594314364013665009551133608286875554919940919712829008973900179174164009254280927875127486394300341517681049191080206347429840473315840720802615651822803593887262170165370624708023800928339605116700213967890022820856669313481857174952748610667238746247009095688361183007916142539237298272331933867989857574587873185197921720885282169078204855403657012447493516309959779857103891521725936350173239341156898010637561627469944566686867590939066408102685554625569247669223521801768059656392694853636838859802348888879252920828303660771778453845438634963351720429521705325521277000821600419346868079327684550757253813949317060103476629355776705093404515296288668979813802476214741744233083039697673612941588934680439821075561403552826277982827893780919358372478788243178280935000723615545199570016788847079251808945717495277334388032188040818018615344771034791439814059497354161022705615363366457848869490270437752667996075217848967603862175326068077456318421208270113328336645766101403627908715250225551860216660680943384719540811095902372818914917085630082442623005907846890852606244604989047411665952673139939253548928216718562079084046900118647692173615827492239016559586875129322973063681436986580994284238073599040177162261735915557492463403339640219758887096602632278754971090459041582058248923099009289083137896959990003882057438328391022340663581034193378068971752092772531993545849305255367334304030123929585400261276996587748748828228658749470979401737033720043272259380142091153842202110278929637287675922901530087071362649722735488097463706329020119633816373368541351687109439996872695244812566361689462075472916864500413646796183021359753880752045954982652053418059602192260225892530447417387795631858834475274236786235852590263300922677171522693000875583135343709873921435490566232623020344142007208926536180775915155998842758724358296194443288903713642778643908704202560454725922422782336061453944045229100759737358547208949117570931625937933294789282387193055857242317086516238840484580066152480905983505296012554077204152830747167114995189796078327086012639536401353436043900645711993236530893791427246240684953089012371868236220377966335723762778074347677286298036187296420229131905204268419156981195599341036319093323465343044151899883288302604860693397537235372935779184351583004202721519932452153575119194280814122424424510224190850696826680540042985097032810887116255058776699761319328923514179683239597940701317367517454612696766718790312758359001500919366992092682208300489655962752483957667216119450069831561864069877374789731235238207490900348020037534553591932173986071030058509392568542718303394730301432055290174835498389351101746948123762961487173089345136804918374041006803451501589439148817539514635829090401619551710214430490518152952042281902090974379653284892589327332637674964193671243234374914836316867064427709685485836019699250982189870597835875718454838678552565621484500774495144519352547505434989096901353360248895315051920642943405256369133696615533631745770009975332336432159411078885371849163276824368866572484484846172443696816570191589138927581932479325359114584439105906500961230602287957884862880365242731067380085635228974185122266821600299864069355561212831225072400674486519159148392695394854952198361257047795543505212745699992784416584999412313818188618437527105177279502254426326006136683496087643419386271201756342060830971644451289756407363690326698381924038261837680586864583648699056772322998649246237031660488008936717056169908311584730295117461630494829311261887080250714600084043141024244565336721642689271686840486190815860284256561179170930834213680272340048808772362780668411871769725641617651311301116709740468896491260224644515599842295461116712160937576379135161710479157913979520314938767689962734158184320808801994456429937712093878177404311429296723850723551182511003145399781203792045868688044238355221821478138732266869125812206102553106136549244578308342115652681333083364772394839518833481623293701618995240225860131759911278318866961040851031567979052631434917754162762251731726304306985725624889043528556513495419635716579118461847890704949815200069422265457433632643662432699704108532981816812431498706614548784012520382871690667519186594988926446252756252898557149554910260476266196168343844035365087151812020098010256129126606905456465162884775562231183335423637245553641360128129765876639675333788925415640933181782868100571271986342446746051312735027096320262187976328135874132147023752160603010935208890647466113988428228010815812637310691140416357362003374818269823751296667799760357494505170687760976398799561068075501967781572502659819581597719197306053568724843609699384636308519987531565192640071592776933386789247697904002004737713233686738859332166255450216476737398580885645559188936486892429760641720095981917703640260051985263984658810101606842504697332844202174088100201752350187792642606790587328641537945352169694810238002750935805029876373560544980832264775719019326194679310116693652537286069537626801443765490135624809435630317515736957539611469857572972501526200543206865275178525009875585962026223744831962256781203577689808730143197983326018754264367936498928757326580900070031604358297383601343172522834324156852368281222580493040267224106339778394288477354615283325655510985804634505486983354292788957340565186007306569963882057862958492055200806345000064468065100662383016717212523244091668131248077885444179521562854358856143000195891308730136753721412255201667646768556060575829839579825844680706962784162220579738691320087786094229998114363061611926293092528134060994000834914777397743572714146711866444106150822933954992464597722850737008367090669133865710836703325105274967692204386704378613475993180696871862163407325499368280324976243635094841840595737591145165648938129074421595513491511975707899864863268977103014008055147978200430202837930079305677545006036628926163873106462479401377559161151310392957339943190261725599670370588552707870516635008465235921530163893536966664567430722375221314448753446376880560312149378497967463335857334283833676298194562178520759571839796358807747284598264622139596961719151694718612917084357902483443452211882483969191318775045873668120171661238087248899894075544924708443678590823939248487785389420803973614770895691468012441960820337600476448184452141584190602806752577345494694834238426929181375748779563722746517404496492762871234650617628194641574497267780816581814405623563253842043745984583441790628969029673254626725397044279213546372318610355219445228061856783580352590834623147424961324875374530691075415476855486159547641907233448888255569833700288749614889981213440998647176475129320308272412600908919174727285907798940372633359355134732660820005736808128453060770935335576627151344228889741021216678629612322613671982551305136740630901440070448038840801198107111751345572150033496536596338799472796197233434886972076710128539747673194511500365907447033054382331766529213391419916033951714520479977723444990590180872992063500340141934328464353219142356298108880562706943231493557838972639355905858165496112764147422213248473299347535415841561378690246468913584430316058836575212876291130501792311145521881580149189928414304362625666798695367019410618668746192192601362358891681487939517083999949812881227174161430337131186310233232560059926248959157523950242193052869189030031425088231018148344121676033652833259862021431434761578707303364351447890438324243703266994945945439937123474339964474845853161838256475486309399509787268598219289980445762147976774657197409609921033745322668855807835860876300852127172243598358964783639920110748170954645913896128959802156999279275422584460692501606450322551042381107150811503303971287953459026356589717151278764226061316046071295739004944637980108446972581316444146951108848265749273043465485581148184508488254484334759246380889434375709214112509829756606411469007762489781988821722150092834486783363794004433866161672420921522868944581645844979336902950012810729466366438205199117284376817355893388876112686603505332153404098714340808723545993650304324924351988398455076737354962603368802374070984288984404464422029627898281849731160320301956974529370603266196835417907310847956254300745723611459725964100125429144812197252570123546558088828317348091430221506025948134973035082848506426378190642562590586378914833029648336413214678075504749902197272590773414219845821795503851049037205809161899519716750094032218521828874312935012825991264944938011710000896795008697553904901722084125328865606604413840281436820017717507161935230277953773356547703322124097713743754133288924069949423825870389037587578599021627341978046301619063155757615001911346634083644020965229110918494512610484373621637167357665633469309850708188117730037127283150722136772781397080283936419604110221090078145364240801352663827886044280539851232282582763249625994119401719887063613370620622561857404456419857118646731772965795347234118086806164115086669006794154739880151588118497458324421396646604512614497412275589623132883683360248253655170456082100120302532068802856010469640707330692395450787404135458660351264890988180119261406921425462117164142412808188526294480923886190570170559498395953265225987605161646684981410920039761803025036452173492903061389897086385992360768402333585529760526535583586609547104988560238512149102144587743513378320770648454203951708466836488529795298321231850145026866041865196877329717571358077336359368708729334080423327155459698084382307457123328012741080454692853529855398899054492740896269003205302549742265629512968302431738081739314492952324654972797226541454978747474315969646456432798408883918695332207890813560955290200006460375038121002535621895372807682917926822280057759708268434559203809780910911207390198088516100405273115310271001654248980806785283152787078151169494331102075918382108375232762012968084074699036698402459455704895962179286118433460213845348011811299244672344141581612775080043406863869876743492322214248453918636623689942860140998079076311584619851866017254997682172656786763794887344550135265146104702528891570203020819070367654693628354095970572269385191844701903362817312796491211189802658071248706308265025884550467068507040976050059981025445819292398944710280816905839021983061395148918581393719271012174589067098785470555338043418195543173915515973903388730833128498051320780277097293985950701345657844440900415541947882734865847807063169316591890486040840436867813607100974684684416094651575766618114183926549365023590913953761949774468585819844049482124596501241731181213349783008973282215574140346583054412353864804027350045914143025945450083589633554579390433929674758885942694780266496491970508104593280349201196181982545806554897104533299859499947192120063805496625922643731286138734317976108679936713812024483614803738111001976589055575333973144365150062160566298538089857862041956022727576351061702013294527499096786180974814289263657356619853075187803865279660836006694851894080361833554258686905989950397043270448870998409457068732481975618158289393343406923739982947769151700809647526870440532628694271527617599147266646621413796753509482380229681583599138344782532169844890135209596139069629518124092293955097574756503659884938955619544989110003677226152354115521075757693888639232397587259721020028886008398520660420105219366302270895760198715259264269971241007278499511314963643094462405642633196096887399200035245407209428052145285878314115305206112986773758597350605435633427095748460692914232394496891128640785701540672381154079808097106391662522682968857737038691320463270229537098228513299084427926796793345791942205743986288633785809880692468422627559500565471236440152711688903840539921706944842935976884512124213151297691996192603568153729530037553307323289447274362634014691636585518481539517948883493726289244174913650347502478573479890761137004054142906453693848955121923869487336876596495055884597923927353565388175463496693310972138734687313940577170508044510748900647485547359492303237043684916476171815649063834574728125275189538385552549187125735231735705211356239823905101680346225575859646735911405999235307463525204844893928169547260735642586355311072612557959682747180709519088164382465280684355406202871836753327866073813816597973500823794810187362875527255016969142261618213658524643053652600820771225369922537078851093551072083738897141109565573041312132534369955273418810787622272586669361528698354702476460058609904321843676853800823378595895356484499636085322145847224499716396015145447164088520411917149362941988941150552070299311865567212056165987523240722342710782645510125096537520619382680541140334837197485039381014710436565261685549838960130086374395501549979304744985701962505828126547222159763906408814130692228336123489687459530705023633288163139140167372703128701811262695382954942378553118418708889387546190751106329026960982715543347319713170118800321735588636227874064079892346224400793128922682371490610683984816236853960121947145937389984079797434440456301978199863912186636563783974907471427021918447587861188068458157402043601187621465189497483912905454034159364033664780977855164198079191519157905517345364278480655254575970762700109804639087655403380698453819269813928840877288597390650528746191277761737642920651866835459948196474174398769117085422550930288544347581306805502272195982089236673939411037336213040123548288029395822364292260140391144843733771913184524343323621897624886730903989970692309569861510574643253605852603629076448053549023492457707242274950832497273927924255055645844070575959146769055221152887661139747297608767438070846833497141794603386447815412130903445018024307656545581861958598880433900263789010701678135688653931441570550077279199162078265645770701804097344677052924206098575520022721319543316954613452537422812829801616763152901157221065248853489602486588073038610299963500156975366602951374813940009972748008683296440335576573278002693312495787908714366116528062051222216978878149897667383470053015113448783648995697936587184921847626361243496537284855052093698812576651569343857723474749276362432311904411611507130219669922738147631261669524896664592365403460923341681411192678759859827109773879949341853119578467338187163256649135695530535388182439484343086698434387237470605748467575662747941630449988967831572432953518580002495483168321200531974753458072332070902872416033374484094966272065134643043679144622076872770064902542792294567412117581919514708195328722222182874653683285685640202789630811173602021111402858259434116340107538771339821391960727562679373647124343947137891309213812128217424950595159851725044995912118795130432696788737911876629750352620439618775717120021457748822771289688144457180454182772467084101127936029148230948282819883480894367975814270421826537145896198171304519511480236001370421294124644213966853269706234209629175873461504058536517871832800303193233538279200198244734840601369086598335959441246924047315303640233197361795897433775939217410148274209378327586800094602392683965287622146427194585818890920841322340421048696240129898352755439181819871644073834312289843231948654586317097876836059904083809088130442371668538903665595102880759794674035932711283008627358441243325980380904584144955329387842929702411513086947686083936330283100056549100722614756653229161256008396620685977235867761639952923058204078363992413824890361621583353425997424867852672648424336914893459405609104709884577605658142032278057473457624636252542176368924858202294661319019130692027023292853971346533415041851816337168166806914766062494237548715277766794993991553208611374109675190622151319221213938210530861976360971429853085332256474020690267910252775668031344868915618733651340099820626063144310802669974807731910751027331605768692445779604474707060073754311356692881138421403768263696062811213097142956630161511422421241392638860807806158659666998448696144779358487454428311476075454023709008706910330707639253649678480854791753226579660264295556814109719656198870841605588064081637647904410739347700687352547607649371074506784990978843161615369203721230904957206930729457187896898043160721766491808375876191080036960395292302837671038837667166367812756056362430803535366203118127789472343861307139549086033090661980172945656230392089489507650381601531611464442507656110327870022405810888575600406096170683988345272861909328877929742713745900589098163098297067405877577213059638499882848943961167598293699250399295008278623946322747681440366930339425189067993512914488519566513381322490326928436431825445876646311744913088804065709837277869534584235342444193247539450425330399308141314572766529923040176348990980554985260346436505071543158852053214688391583534404980007619869740376867939727241997354648594190669125365154586820277725011253143293406035416173342187253103385566534576933466116975471660573133253538151662021388680869032864892794948890292120660572840675477818052655657752631549173083451777585889702347321739359683553748690112710894767329023249631236010020113417974597957223997978157075917451183661459193622926082406560077316668188826402321202900800049866945652152126386210855748398931693391671288412998989754373579489827995349419836224884109199347058801257774413543205588515070576420823630344047034031069089801165205892087905627786720320693598648323684812127821142011790592159840735625351531123478111017663288162216984697207573446440460949616343439291648519535936625616317041684797580519946369363202315462550617629527563011925023892810175215251454459635047893897438446005146065426766289797192685291876901476031007674408358779792583051482891989078778081761956072144882539019991717054608344213921793269733464568343813938905982313632879971636075171798860204861088753838695401317398428076648125096156861500602553702969479784102662366092221374168589825652824593765637152108569007756019807713565044221747289015964104008118623966080753527543589948509474167089867036940525128239897771497862552555483600567589589088717551033366722104388424624837479849345192788414911072080308645045800262958397798656319813321653170372954777934518874631839407203882122168481602327634936321151245980910094035924033583034110548475187347831898205903044626626212363646038644471905619318773414621116682178768785519242945414674188613080259420669216272245380250097303839018460980096891710154828311851978420096468015464502999055495497851027945707904720041446532007938140951389354706572093247060607153576710682180140035811350818598916365248990173807953420562512166439317309330286790078904245379898693751092616449982137908824414002971725494445271352442105212960811365407540188064161606881227419756581648300813920085124336069499001024993475853580850618502825375182314139543519594319135664982102666449981809897311033961551314516295661094813265145069479258253705737672349953703247686769502602637841350211436855244818665880694641880864295898956714693789786646895818676560474111371047228394509571275987606385361102538618967634232813819211596872447626793579834689166601484248045272186296082496022835202106995352156770567528847722147864732098935552640945681482320074164609916805869674949939202804180403563101549303518710212633251614959517937846583603831809048021583669581741280488051485615118297723876596401145122187763105132185491952947134026343448762576386434838331582083682140005436839423757621265106253878300134565086067609614935960528551920749747358768154294211575875797011116345127881046245167498595582234187110487931471086487216183291743988823849408078930548758855382072190539486339495759172173004649338194438017036517874555088918246394060502272834653358538908465204590879026188655088219716430939488277304630643476131030118258095178072174097250150744391305407930058734417079335167275071854626504337942657444696689952076310065104657083286300814413520810364609594807049320479082624376583828556870580730255041232648926232876157957370049714658774856112096690643382467837046227469124074418383601816842572862334034712345281494018994934718325867795334130131513879979253061728159337058369637109294025570321323662115029473009262486654786451829434169400658824696534041862589129885542346036918977733472718227437050143091700608350285263262173434683650207818578354271784408445427356248795665422162188650164373148490528030965594315474008348234687298754118448480931393789992361903727349671041849846646354921783689276922431294348183687834283262328157554326628827671751931080523234911937508537528615252758065209916498945305387465900262348020989516542161109402470412305910096878717479306249799222043759903777455764097541691223063164411854616269650414043294401120038009534410006656419360456629473349552160425053109809067298850805871071063900652651866470672911715964810585375679443447863567985665112957219290625535831887826707262180334621377925665251689579425908490760427097792416752320533151222372890311932065901798193706664601651886894794518237864432659778428388124151325468953266451478300135911336418058205350237752233220930196092790993459119860084636082382980129053652514640293827857154797026222546328372973373371598167236999373027833299288576610414121854963440179751792616442325794267109131381833236833398342747394786401436492224949202080317740450728480443373659481118889144658412983477428896535087541056944423230369511635652652993519020615185059783936784497935347056712694289377708082257517073157995884779677311669757109521694581047631801568619001091438808699260037486314356441596907892766999201030634388121725579940613624364411673490193049743734218527932626033997857862331859594049200385989030965151189560837179593687242634747827228446413561892092109428807942071095264033265725489781940040241302322198356597263651099610550414732529894628514144207287781739641371203569821704642879390418673531092613170344138386229342400590242117123517350219102291358641058562152831351486145233204533393274260594831045571818764776158463529055026685203456005887192544975601926388914112111995108602826142661244225117964706435185346516849810670019724674540676909602628019848113087599176181662813285726803532285887842900147999171879434137204195621698910179340065538114100129062011410414485220765165968644056789270797401663669222834555287819193714125764768674985920224141295369665911801905516681291875000511442221755764042127267518153388525915145642421849149250131638559473301879898983571785389511985299839382891703113528503736680831283858176675932729138620780215594120830059861756406513679188098898267707356998744242631954335917718611294965370644312702034236442200251733508565926954912274655777535007190559458602702790685541981884933044235046299058700420185470106716937577558795421744972262829620809563041004362801244605813293733626103915332557035377482489342548691509318730488335688554388302996961000675188863698590530522268472647387359704878318015313789080374099418379922332794682752815326571493723142095594521038256157936936492925487799584495725126922237117678390142167467064619571368392450715320183208025936102570189743762063364611365714623142158915794267278995451214181602544960276562219559996982042046788640987328712140186011271701750571349171315021751517891440926106260090748702831727790443749845448658659012910376866959251871862468296895840034639067109979114633702616771272552826316271672483745097806966550374919422278111392732609529668186815302427019545815261305144643322909699861959318243475627749049410216664744454270044097983410555430028954737903238036424633158498067730238714368697972695967083902611181025707198974244292992708317968104606938637358117189255472866542767501510927430646916850572488410337460373885700917439685302480140270913275442401902091323772372979704058563783435824738417510627770725812365459383580860543007740807498087380211651959497741770989615235469163272095219463793943071256164615317220359852330937070669892209228456146195624000254716567490755726626156125204877802932143403355618508255791724103551023224129266666798757683517052321476058238849672748000876294006842040280281031249234256995420104686140035593777047677082482618630975486061841602049866401037550367887588420303663309596251442753036635043706711372091285888830154045455556415600273994101602593732790896157459936426765793969077633358248530772126421939040834256823969798284709938932026771197524906774567873686697929648350565726827319572225997511583659920795036949541287286254943820935943993054664571066340944330139541569837553246909529646258406060232977529127418622535809908396968822437171240636009914506173483042735271366782307835586782445037257132969644854293817434069652868590425753735980892338514991534334149368171292613154026932904751567850541682699632631530062111080996590721114088219648802540699872379925081583253902147495787967440093559514853258631950414102278079839122773574178617332630182303480202391319538895331704219890507435794179388147995684503202111544926389554305991064963073779340408861643435099525291787870584890630879599504819627233184044974828856925183980580946377893439379787893900481481089476044311435921738844744269636747719019493782207544015505689987074219851810772674129632327386249939661412549842741091080724132894703601438514653265744629037440462351812246721948513782106262242199260478213218803486529185233791389566136793835676495484576216718046021185332360990600222544486398645495206137766270800344393761935905927200231797893447900405877295403223057881544492230272438174615155123555606539930726119318874959373465836161489339247123091919193960578661652917381047633473263991242623176658044591319900951443824273956428258366122041267531758422684473762891084277707271885196073374794398816952754591753505711920005063357276403001265016560898715851913270063544546871512559628349622185236722430490335817104798108152813825876729143195060292909845389966800798599679069048386058332205358972260097019579973216960305630551955681881337965571676482666128093263635214270324568886418212818012694739549194333864892578297514559350354727934789417468487620606902839871649833209833719153535482971723460053330574108443727734139819830069083053197034102087970464963214344753455143301560064775568408642854455744138452291257893636862286173406472856126391586535415485399147992214051266973317289829454565121927044321217823329789603598846001754756699384668586403455562493258627373621890705257252322103095833262799585857607766068291322884300637178921837806939509252682877107353693912809083075592889500556550254656173465223562796022635214007872849106589037135441039457217200656961971454691008674098635859222080452484870414997136354164103185112643330596039714318275225362446472881059197406408355004680125021500483958617140876283177280386623995579197840903166172851561290541498829956683305502205584252714466658594474234106495484015140444997307031928522494653152074530606175104682470630123314901448425388174075760962476913275862124684206363529622279291336954852552691027687528622187869770114362039785530077694581763123040634147846911675620264156075971268865866874935238342103167038083350222607275230944236771834468733874469571744572518716734926610754404513035231616009026556270500165291929227155292390071197246328878435935384818558908129167344085229681358781283348852067257939695489091613679945178362579356102631622706770890718778970206465341336587798305188463742991280840873093800624532876625386673927337386500758283824351962003309827172461827885526187485639429997386953476790588270799700840615663427858447661424589379113831154678247905962449748629183118303062163145467591593054558110552753455078545254311350006415366309801455928645796670517365171667560853069995649048994742496610779577255296574924344687640090838391581046533697129256772589698199930120515506750746995577290683910273421403827559513634851401311492540005080165711986325765268295738625807136546602794903538280094779137401617514321509974204208941003382374557856076835936423328559598447156429988703454632542844089918537017352321741575022370228554606019029813567028285260893265387124065578562005441038785582073197578313443528789651597789287492304574568118626921447736108948197370846354311514885456004814524487098401529207364123850900697269460939002644228921357650408930638429955180869214977330166683620292949756506281369344108545361286718496724769769416325389515032141959884496509197731976148581294399025692839675110186268027057097527812133572565688615610587560068433737984649228709192766905410137593440538585296866755799159646592682958432069539933112089288236936154212816960743160698644958269981959333811526912579957887241024883892071215830974773346621248066316226893186068659050781530582195292653721091081329329213831443875977153114453429308500487314674558157984908005623154691791759559294813688023977394903636885183489289101715277565874576241943138190078502716749109003749354521113419572655063873351999732402863202733609981686622184861231014166183233129513175024019810393367250193936161659412493447216844622843745243440173991402540570771130724272698744628622667281189390712557437916664259576558006292475940902188578981526007558169120301174551847156206286531257542084575267218073534705301124641443767976272591979892330399449339076153921848754085594454557849535419056365551749822074983924458465601326846707627539229578939349033299992040289114459795515156500099383797066387986413729943371394340031649412099180662996135075321575431339152487411542746272198442345986491906480277284693132773164735638937227304963235869648255767977859539163685204080897948350441820362134421884573520658651589452151065872148198992714249480730102640031834670206250619998567305231730999449322922384891021314373080165662761098317475715586894053549039239116436976487775768012985046778424229892624297589290872418243969161482426287296217339942346800996484330044760029074070710099685918011654991119946667598268880860915974695299634285550840125864134155047140741642094251326989868886737835969759876827066389924066655947915757800772611587883276020036387966929844387566097799726617195311841714808811836763755262234296654968981920380634232427338399721501242403062069399184245443314001048033484694992406813918191199649243271069427747523477952406116781055215801434097786286109796466736101698352315432719219758603680233226911364732332759199417077910617274794814179449430007183320158282911287633175238764956672089938125458584102041341555226368714700105105345866400902581894479046118486291656283249953833627139568265806178387135756870264607363858367135066665024048183172966154013030693835946405613862988242552568532782508441579472831587649157612823983245348454208246415792274489938743116437567844432362651084506905500012094354139553176434319988220208449302816650238831510515799542596954965981403124663257108256997907344625549640784373022063026146748207173479990731544854122016201571284710441917926652927171933814524705951063537555513531815568257453988328492164482103028212704867400034962560277105830796325471951670703707836798695475013122286519025430134319845760781977054356225293010221995589368011340636179144854093722068213609154748494454980405868676718635586447006919761131568029113724044410366848270126832822040092072834671823843418832109400036019708660129973003385396391964130764798362899674166716929867030458895473746813118372895427293571119693063210016821060141399468010795620973146543543615803128513189596174782893476801088993563908560787924047708857089518546671732554977833371705830259540089242966583436819551706454343681782350779095632605640560728284318630003813099358120862648317899507299460006076866059772109328847320929173570703292215725195188087803408496353241530908008764061378728008581972570171893258563347161287468053250509236828853741319811112460571623787168642750025019646160442994086295143771282640003723926025006658995767361996487655434818907272583728304740058120942698633502187728323877871859926229602420329839452063036720171907590832853530570205343752350467593562947946318422918877053614283445432970122878193509478352520561668277280059234917803261348390381808867215119058086589875706758887343384240140979521686835817822344611504591879922746911674105140655487051970762463707168399000980802170207932483526191753029538446317690489742108372432367784760998626147741838203388740811264842395519267575423053266140467662186259515619260687051376564623168853675860364903042600694074616958358417978672412206312306778686015795099927018120241237795096287362448867360188334190855583292406141455461921747824139556974049159676311204827955245260970269638663283611666952880361477354809880319952441690769544689674869694675144059026045347882313883093419230261999215356487594173190526823496470797827128587907587066467199014267323052589160331375715457486487462825446605528189769210663974702657561710727150699329543679901254187923412347133653041583902183134858872981695993442462363759751134511986762329098452634445984227001317819924218107470823961771479993139715587780845540974831124547391434516254001075374882705657479399308577121829175851643593871325892555616921232515001795373940479118605222387925310862751925209400894959748509406320986803084242006101932992319841764080322896158528002473109053250816592768082015290191279450535257502825244300184708413974462567813650996081707817902864211092317538135822530389696914167751086365533231471606319077535610410525807046741766449954150268780359183588977195441169391590850315086878870074402022512431885910420711107330838452800389759179862525571629936764428227191804662475893342216108868023413491601887491786469832078695898508862918865987053900174954276109405169893600035309450078592504828000760989028377900569949274878222971373690113860359143703800485285401595555674833958392230694752030785854785937615515406709163373471243449952706955608607602143363772135288464429104467538264465643025510955104499601339210258044530436161958460681809158199067157365166346281891821672549466978864922822513983607977380192258285123945148938114230819748333975510689383672740867438449542646938553539024400058116969768519435843108622429096424011375226338188837881155033779514849547750389269407061957247540180050672699438668075269579918136760291290776931423964314557731740871921375288382529143471245142808918813555993702193580512317149607668445416478271936613983950130653329779159355111606809873553457281718168860068741954094788497168559360478278735239901619731887544126203229268035599648560245303606402267098476229603348305552097832683093187882669981041166320455222581927501367300095485165471507117531640364646416496487300785368131943342083393707680189926643310275287048686408344082340320154849031861881704954483246468932545749546477118436171318009052217828322044154459552385445016486616887211461711247725008478954030869268356815155315668684695180281327246659047678704942398134620248554793485222040946446445501047365250222496441150161375466371304767127990498810783616490995359158854399922753774740953080969532494858376455993439736565191558434239612418086284111379624745517370132060495953227874343982886200742450991258727020814453620447240030005477760884890092935202603483853095012608366505279925260161135525061691760648885944481139472959728866033527843161578252651534670658158519744029198707581829594503029433115677175057870442397373910387791554891055909072073987662467073269133026004895521021526212247796454236834499870763012918421532403397607206298621309318010856908199074271697817973896694674592420929857906172785319400987138872867053629953438951696752265811175621535120048314566086670375725078517739995442925002529474235368164576308638853172741898511969239931713256765210399576367332987176831211343913569382415722740948089494797061298408411563852673456249368309489730895572441789940640359024006861280240319392096044159890435439323470860077506692901844843109177831254078355388057005785758913556694222824572461896614047505194577860964957107386559184353335209682940686147329097314797933099761254630999938316400744048693608535824476889568748966934052023147290451595369460457288717409101902828835175892062914312574754745214411278617649809298019407137786472638954635136694553459739317428351624266237509181374888314014023166347947246230056053924115876712186159343712187004247067991353272221476716466010174329782884668209840609389259296660358936866073574902783867271451379574551971719152969725246295341447817587374717684356320509347306611816223875614122616682824560358018032544311257409531088886797113142256815360118716058641206297804579627853668895880744855173987335408949105863388326895205205651016901214657250015720703352259639791361813450992033802770338279526347293147003153145754457242714275280065978927788852042113587603130369270324500619472220460516710721694480083034604307687712416903634688075122170332994436279262308806108944016019486129228066265211293984067956698232992592186695702302918182710580303199758190175655750546617223500779828990424595107290263891019938247039610942460495181581722406888295390750762832241795736527628948458708330686934383290638725197108482963920046262850500124664427151616512482981481425033756414280829179199291851287248026028976720577441862911023983337968876761462109603492197839018198242519548000396778678813451007329070895960246609497032652300797299351402091283641477991738589873351666928483253596969519292488280591778062087070731872355476053464305601445587764162244164301714099232933564405419379484018007409617371789579025016521966141194888285791637052196037911816915980631229933316128228272991866560468500349512609150173641027735240337471660233548481231796123853233441901453482028595879330549277991326150528072139787884806881517834005515809266061741850927620943150208542057338284588358825878184032996357027531403650402371241655167942467480773196283119027313587728531809189965073934403102991817893217967804388331972640180430854937864782197060187925067404309830517068358728851714344648785626680301776630853503916368531022138745543613601689083975798601861646192832825173223470051498748169686631378080099645381131171218781000323972118186605177494243096281337433839694575642439746492006627992092342257942918856079101498804153351157675245741435858531889422614801586245467574979208138044274037975962826600181016004850845570281577109014744238775483469342572813293048501655784230762874525485522411191882622498794614365242402850830413332022965539977486190071724424092058313284266411565644135053325162821178073238441857030377592771175966398422084577594560914510479369061041654243488687822119648330162774926074900522279632128459909410808789645086617296495892392519130138016231241612730460768824828785452461943932859794926318263963189670576861136704649750536822438138565142371248807513757579596923013199886204787228271975740832946207288335021343320965646014173402203410309659032577000296518435771166589243702756247450724512581746063321618145578476281062520319916651871849159141691407199897923673586651556139124947862389117297762647079506086826066394979277537784356153047319209039014384291370899783812267426702811556086340752480872063529314202902475478040933090550075364469053068288893915784469791477525095733230839804417960423786086499640260719312906242669817151464388623632796311447067593698429043521952872759340752719557009257086296458179112159582113435333391298623360775337246942145694669740159873536721616766001985870134618431996589813625326815079284140682675130277865446919691698959883802080177573047516866543317131752660733293710966160306653375043360698461729985486735021319930980953616795600597401937021871460749301017762454870294844016405611858493425232795806090752413886509994111804974696179496558306676884502629726948500255767354621753630189173291010140757613461738670706563782392568343523411004530970933985250430987948819549641446564026616622379614050079790697774134033108437737939890371846584415964066130612136140879545086399748619147581782539075527594492230255453105610066074210043023036272787143087599852039496090700508076528970324499533992974533030059679955616041208332838337125195350791376962245508609367748871526748373739618186273397932994183127684559760325927331939341190736637902111093210867559519591228924597336956047904423810024294518460577585932410548654815783851669378734837377227166465489664754477988560904965990807467450680425199244457978910668203871891191804450641159747896428409733780852363961754111698370662977427796574087805545421519555566009017342507282168568606551799858691356892130525683485874357458352138232133858320484827241036868827183785914528696571935212302111060081131128120678203530981185244420604812384139337697299855238061460244157921048466006271733978478404772334482853863184246724957500516822444496728144312320313031595853706190657318399241958281419872065176534639108597898253683465531881165525506682609423462207030922132001692071809433732595938266875397219902597073646106686900939980296391992562224608746991358891451534401567493127472572100136262165224914989218368296932748912577528906004662036379482896798545826135583147587204948346397679863024013500873834290499726517984741649849671971286211416979462998426082465827734718124223776675285110633655320727352095140846657281112284670008992883953823670664172813491144804625626599155589558076176182220165658021371042414272913059694147581673188987640885207635218232925072186708304348982078475519532561355022079610413107344738305488093416080460299999332896390644213021220354105355600849137984640581174562855422101052238195139837737717579016420082552281189782566010732637605916439073263472176135594673656561239273213436810499541213892851938368063586459847643409668353873390485105979305169280113965405110601537947841183538426665986463426904387571536417365996504178488023166796888816831864839016529672066387533692052255583283168850884196403943699197662404110300443222485126298003233208013213538311767122963034051877791017178438954956391621588855582455555621671430760642978769849284628438467935149531399730729556608946108961490836344806217946556020721147625285206785571238398979490558595402242047705223392062109053986399176842863722488759751365629741633669295837034577302664582768545974641681909785484938127827198205306235917329501931257472069210112444810181091287334626645831687422390168282681311668975240369771842434198046246595758679886700357231290963241090418389715926558672696774769860374577793956092528420050809204388133158965298602809558031673416835427895451446563713257238871505553455271305179845745799338425212557384431793248533704270168680387818060195172667943721247936530348251756987863883149956974460123690906049473299226627704450439987176102497056654394363594377369117628504225331005911329727424780966740725083880156793775700381175261414161308922848325475524101887205772660822582885732626139621432656328432623095450018386590742808168707231454745239342092351651879492796327344397884777873371478771881311450071500701225851264923986961547031423389215693805850146424775818525990538006880712593161076363559452556106487827566086602912861563059285921161913582552777711608779870601100070976970316237385179582931459426678453841567891837651297439262386607336532294081896077089739982410290313433680606549197740056016673043485380993163290631027785945666817685622351902579131024825852664540545347714124204532601137458643818190933254307107083410371545291042794930975480611844443086631657167587834488701125431432237054587233108459346743264563052390172522803787805704679271052472730927345067515420396592021936927900844417587428217807257588567749140567206149111521695435844053813726713616600009883998241162066271871757262492893932038971109913575506768841733073401788720755616334174190561561773151887193695020330780731526531582910326260703683960584049426165951897339872402908060721098621690240033513533309904821675352727315933718689467947976346623149275220266754355498389564136143054703759475472652062533156449642130550592534653515806593475839009629724023175058191567902049933508339635648995996503166307349255800875452690057349350706775374231263888638257879714238489996925983502168321758757806037464646881052774493172702070169837443591355278615043997691481518318337917647857750144379575639843075650157409375483239215620483270106329244855654869819945195565750487976344586827122336091225392231640883859200552939210359434350868351962911793726402606532615965111707874464437160091000163671993314292568209968827704365784061292790213864441986260232382407545317559407243456380225755675182550577057696144897288817320689664450368758278270315109507854119145712556252028759483006001375245504620114850963195500900033993537672617690517218483109887513245263087724936857424940190078421509427014807234767059125210959478625417653981873894798313843683443025800886845388866316677724320387653413484392647111329185311643615402441422009382823027342389289698559195293221092391901593914022492168418042941843908545408178668704924718180632896994531082795118181731636049642336079495403279648722321213455318643480683652092418639678794004065843873163513596525034455476686379603442721310387618089531797263171417090839062009784832362939756238733109056967075695502661480306887588032855831813554999335987020922507692045676629604432279680369081211032250847047903713041843974633606634604486465739350704502320441143575759139495653669233243493682658230287981635469924702887000583140795286959661177953185149685943579686378617591993807852143738501149365308922733574049926681013932166533716323133843755571109539730960597895391504443996490007355313676488051442564989939737324887480041442367622078815599374892486020204258426645062547226396371213919634555976513356211926361603772415798608697179788307529667033610915347710380647501882663807947902290760979523764691303321064868477245747936523908681953457900352110716458180311157227574837950872955774852319235227578245115326927272449621861297564182583848520772334656939492748811013044396019663193547947965265049261007782005479931428687427213084209081447590842067882450555174730940791476913837738562347823230139843394613953018793187830325643465343737642072241110205569426394220870043013205840411397432595962628680695237158541955538893873834811138850587601665998268409120736784106904914248824736070898715542513393374354271719363335994979451421120862675010532980872474205780012134410096589719413714023182998086129651690444704777847212696270204320412282941854299789296062682499953992297414311938911933093931647858293824216680210688673694953168892125421507169719254753797790551926300500866046841645267572248868082985420306691335367022744211822131523007316646269220974736302659975941976396978666967242600282047025493517948022874421082534213604453816335766831698364597491156817323298274967367704115066673938560034875373085639663213764510046542596984141951548845102436431613373401868616925188755438298282763781263974706961274091955313717328744234805289876857763792131391052145590820170169399759950284774987521919893909793064943442586199710200280151552481774138511174838345654610092322047740322503476653894844381205772685561918598872458996699097691617839741736521554943289309406700420665420636892057207318575277373847946633671603292186241289172683744918866186662424329428004315274211083084005873374572798959293597356520972438822946414980169495001079166372398208011853160127779816866434605192849404663610396926652626532989036619882446190713733035619354387158457491926611336081171295368888952774955919605109793717830852801120266025602977602745426828886067368033151991212344378289447630930851279003993916352848509498355417486290291251277426312956521444309441099332993996888531617894762251859980395308309479847198988244954954969740121814537863038854424242461435436860453949850890674971621092638338446326346311111216233214409252881819054088311933268064353567088431643882578866932579964003267187649621192834155469190612720927589346969764768266232495713567703911296603857089187013370947506533982571777281270727787440580506191889173895506428062795332368123013984795666031568059857493277230298804650160389361962654718950290121158625161781012785555622990637950939187092358916739635041591431719731149174400574233585121768822448973341283826747913705628639026067267000873351712227606251045659771977519247275229329971792720682362807345105312833470319939270913191300995394743476823690645913480407964026623597585341152015804802805017994041875575466376512166077789647078160695509918800177582444837345594990006729918267262892699770407811700450178684260025406250677857705295399323912955757038538223009415850399276159837256684492968325667989820973980356973685681146408633640798728141386320449436423365470653668771010467616429056442160121861097225971840143072902214291886820217610774280846882494151567918432458672274468457785403063509635348805018286099473308092344916991514113238096303630454212068198909338978023425858087346441354709283274796747359936541530806573447146837581162198214728312574581912375379989994204638769748184725263991997485987592987841449840225178387457824196529398872416478474554511063779095700849974310775188267649613852766415435691899400744350394225178152444047798596937989885706538079347747949692787352425175512481711097727979455842754238359081561812834861895090610885568443109201675920695710640572924764686422683793381185241582825098242832185829669823980312075575930724420180933455177354694537778610305632306288053566774597592264082740304036723913168135590628248361084540235287639781278890690792332406243477482874241724904355267249817665730339564957053396556623061078852708440680262092832781020069149641702843913027394438104895834322147919607960563191355925287346596253000019101437681544333798618129765886560644788304370901982631056103292383769551004982015164231165938916362608801141562936465325464365447065866725069419630011454885957903992862229160919273301454513703350100857861080768560479220642830852997957189454315675385817106977519339424019988487675787779368275070451731911125571625219322789750502146890331817167640084338853351654174707595845670486937471081424414832022961338531693450390603652911988123498462462334713069798708675524229139915997801172247378828504806037885391146217548485937662324414638171048896279329390614274831097549073932011901327372689415033309038299398256207836525640529605199334942447791848914438323626708405548824317801664147170685394867679625430592915469827152796209816767145616902781672878478684121419745323540354639209151621678229031235947889378789218332611543698903710025110892213087307906211146348643241179989399193477548926804111778560565746273328091120522070337759393379307168203913460956350607725557279586699181423121828468145050042060063095746162064671498277985446035558586779011535494203116545381984051535683849765441403641503171779438386568936822117321968754303123183341099056657102883872753382484584132147833782600705586558950123876976209587228964307540950148879001414599609257269019692923381130003076576356139535185685226496556360126413336855769298914524636436317506843568801131241860255773441420511701687486759004151808176458190780216099779829126147057349559946692840851120463454091319220641576292534917298278317978623176341482356341974234524585724014798177113762640248708621814372759039417342173195460906532614625425473988460725730204087276587386891170710915903424419277992363924871988506902813988070347484000406574865131944884583774895002572848675177587801302347536480186049653614105022105772098205354517252419336865916309522512704868826217835727300048186883834986406144219911836098501987301067316484522778543948701762105603191477989249490422091271013011715326570184794822355738023464451662183789537657488938026715025254412557053359499304025924973675385646786214298782249788086206464738249457224266920569305571592389337302108920103723935969870809108376675108474416302925870386193833496215398810013572877693072645423101278575036851751550514596913374536123620516855986464460330997774734570211469529134940862968555976357699028697107138597440183527002230088907364059694164732404165425106034724992211431389359845783513078619255101687268236157272317398571485143282531065790537317485926040580551856946748915509481983796937712837479261622173821153079814314434787142208709563664601130744767862788580330009783651965001057888514401160932635125633519071301735091727105285154725499076680471557699889463264966466950447571625433294596104365009825602694963939796317604412744040145195033921965917098683078055676947020179297226069402261314780268605721967234094165139139756884297073602140108900299675002653973464866811869912430723483986400267767473892449791882453531412604427040126321200124588314450398363544857937017548706448513337036098080070477380390204069856411400186402239106146476327940469787725375564888792092209760929224769309176377364499054972298679574551656201977704272003159399492928776338111603912425415563965429496984847322711487167874354453770525594562989936842383405483410111976304055984847078573387318350559368035296078833452475117888294819122814134148840903490567570781813779755316665020045892484031371261047407972961855947661228111944210281011765121642955904676964103645082598881800962259960122153366828918067859710382266535662549535149742493998997322868790504152561125440492321224517631276845556852193234679618253515092664780962874374596013037676309156488358394856224374401691468366837325280518792018278398144177167527330423688460017041382075238626010795383494860044270861928206359992365857413952478432841953786816209724762722203829788379988017103082872821021098146783997670787538683391963357793489639029810275929388429245120009186245722754325901775991942755451811957634242909802782801496427728974837539176172401688883628163415846561751660176427453350748419718346991186019550988195765088094489612084816664714637801890605166130595555139730222032518887271057843082543750308568671725282979417215841020735352874612543688870044289764204746293645721803626982233476548401401766869872420569519134003024252540806888658017118352592650136219007856033991158300367171009180515159854594425018669713891470503078818994437425402852517408846993480368408074050843442636504508382039384931958252444288919579329229903965193704906870503296249286167177573290351307867184863807681614705277280813531724054740249820185191770809536662330451260415255465342022789317695958101489492907838528277895859934164835992887770066088393177024916067332336969912523583908781131554692114413762814843744396431664413935917862050713546990604061783730813106281976255429734193051011868723670876615904624142415587236920417095403202923637042917119100515282713389382091393215150935684974973858957693514598815479691934614522223855385140167960214816198434200975197374865971330351493379640588419170661484013366871457777284241655179595268568114604749262344119874598649513484545503607423149152919124223528589806816188751824667923645882565010825116930271909738931015881511830590994965689129628668852271611625780411546042465357084267184636405890777069246727442871523243323196607580675878061605364172870235636315529816747628555448440539235498905261161330387059342081101142889763739813879144680668459117105972137305823434473643838505298947572606138433931771518069343882336233503898235565434762982245800014406382908292769499064614401778691062737246306984388670988441480465465927220764419573168791879154678496042156593741750710161095277743846758819777310416685700611204753099165036848080415888202500066452097861630627891730426610967302992303076541458358752488802272139300786648050167367934625123055841251566559631115851482945359398141792636251543848407958425520993374105663796693947979939506279195214269188432662454891654690578609926362042906284196238721624260277055253844151370531351608473857366050942423084462809796977839639656593895419176685694153425502714181646694081366990200742861381375018841861915426678414137327147202516005861669288303266097158105049756829578790059149788756050778836255530750506742932981761676169633752210138404853303225079930098786530831510799740674295340195628807861725283149333431437792179828206763962136034588456871295629394737815701274263267501596842335395345731334573654039306515033190756552788890698183263358244595996598898296654730704506459715849517474071744063833062351308708118251361065241955565046537569335633396958469451249802963656761312929711504999559577147691593934699080649149862663521525293545944449180659005559987921430206369710865216972089122917979124866740966945776816534772443773012198484137705789928788404998335053325418945913153515417312251820764609923351121715005248584435076275879933735541654794658462296660781776261051920428082912998024103424389876564933089715648175058855948487779076753064926020776541713984550961818978275921848165143961360460040472061537048849642661062121019865260212488223603579092762554806972368378919079774640617699828267372031518719035540729284414979610344313073250363654057563232739426068393818150439596524286953014780649744870623996018209438320455747360902115525909909821222641348932717340462538354362972651937264410920715899920519525657455024863679547141476370266135369284679431439105267489516712200822120009615100651282190591774757311512669033773952862227651211213538382465335459666282373024935444820344337410528371064192429849662627079842587642854618956449757687540142089315207903099409792669309517614192570729256883667691850730589392617286254666751252814905824451333151095534132972835762942069157621573964575618675845853266792149086603265005611040166877017464466561973215000652077964855654778438333030780088513134253712618314132345925739257728072603885731946906514386286886699364277732383465903481920890026974086382150097520478327565103535590229893036314689916419017930740341827607982971861926336080672081590568044194418415012675898983102559314693327797925529215961423462820087126942369479633939846650793138891649937010738766990025419895948603430344667752625739152590782691831693129601512632924724423138642433231200523464112585572751221087617273804297313638416863439716317155367018823329234811617812481969568214798746224235230315848870146406577686655541809821845940067369065304322243568231349425687023784707122770474454752828084117505843223138625596363864246254603683544891350270330954194787342380167590355043036604825855292834494102451863139269173982080157289394638737832055625606110603931138725807111907094184423543189899796918755444166211092252149703192045984833879623020681451814564331403163197852105053801317716875669752071241104033433010820225712250680936904717855677984710609193621776493133325807204029559125334227509099802860323678010973064382010509510268891539298990798326119082319783871696201603972137739183266196134707738949745937428613048426757795671725396172324469306759911486270585521434584764185577920822632947547949206026444394556873810195499886598133443456765616020442571544864517173041845645637255091604645737692719653106384795209662434887517062333967076884679520646922046922660511449733183784992289788438385541278340241627999537203074420802939429506873475197026432594349104313744221416669005635083089229966640937138274045074463236699077749414776374865238663020931716261135286093425199316274109708770242504933310194250066127494819277562304335997125397106210816633304951810334450089159859354288069194512896065056658749074906360212912879149090844586835064559599597485689494157625816900619152755784985836970271457523388154750194425727224349553829922337570105905391326253915876231033314139168515012848923126243074999424111928152596285053850037121571797004671724576122307123068309363839228445645704665774344856568747941070605493343570468313664526419303400018179585995716154955739990554400440469892649242021449832927476374885426325121328078843731112404258404360186718273009757920938174997002819730654983913824220275639587611813127290599295892494703321714664374700837074498394336446432663432830458409883959810670429945345250855105791490780124158933519483528508821238998630103561923054129271197881521441728487088835141362171672127073297656930076456103393643073333330925490730735065347920822795507181167448104890442818897649023316505705853270854832817994886191077993579120753298129910723995956626322298001837760685974214366714055091264970612745607363189057850802273089280111948965015853374204597679586564864857651176293665053552269221526504700718632780866936966047913527820167812896320717268950932209621217342900820140578283961096838463666817439339831163542834655404689611722080744367469470116100181573842979153130369610030698219660253328594952032553827216297217094479225744648329177185839219665748106141791196467679202735192764061405500409889082837065691013867770672214109480311859430437256579133461882220112412385135519261099399255834747302365584793085531872955910493329997294508016486781581854242187479740274937634556851495012264201577309935332816419802621485732409359749493287248732604586380585305280686925986884085879599633141456709215924624965567348334216623638065439180796364598646720299685992602044955667187500659708211424332551473129481550994114757521991175271698713280427203874140061479959510977157615809442799128299839641386638414108978890043901095305280527316253377458657379246834197971990949202138514555960899308323546084031662461289721906850857901437555727895084658407881313133180241865819514181154796620690296219345424844890578640736493657254794648361349679989951375384012702315788713957764946036879270651467369390703829446906124936233260425581756311380137625090967841063974791045894166016144205559228841160512061267617875111751159029829187542670035382642050628988725969845630764726874278727264434918974211138049108093282328394878958834585015866703356985312636878615515252704127548968319936768613847753184840670685637922559855315995128400378120799134935953268927070673581954081409107984253645451123759685070033911497509517395362516637791893212854285380890835993027437824062721903100277766962423508916035524809100855954362720068303259910735756171102386850963441151403128727702689268906534931860854137563987647641545820618646743157983330707506374989952052386699565566893778022497005623677336924760664735221343860630363324395407301794396372738049367217614513403889387346356422392896103951102357980458077562307746571316043098424734702327765177891794512454367222621558932726507889323399550046573530122466559198889113426023943298757557892240983224958970266397467732384076898231375029864760953642745370174402195878957151474934641876377221498738437501787927761007846400611018380315478239478461197356327781512972673456128398330624632602587487092337005527587354091429022065271858776977810089021811301517092018836651128037237734629243925989281645680875347517894708102905919977999973004187647319712890206849604997742954984885018280008795339921385650918372858338664142263259262016678289932939883785533390307215667358993916093816596726868753687912277852615098195037149829714878731466362777671346113627092475677961555722166437858378106001176160788352563728113556598582699794591626152442129162014823402377772191193605254631265815536958180109217680644076355733683012513354525363055880619898458561822329325382437235690495911283249604174669729484457265269468536338097767700705683776210052117784939130200780474703326251419539859405304784871195178834986119655995461219093588272215774705019406804547141479706918448388394813010824673285103704400872950790572113508766353739727209946028804539105186749397585659718527544715392572847087239570238928792641182147538077461243511062467430468434237661595109331816201128791149870047044793042796627745886043746209022260907467994003442751718394452198586354597435638860362345933636540171468518286233931171595700059260153742732942795180688887346145023865152002076406133898797891467781874120682666116046376760755362635385439023639910655885315120987978351790450522340937755666781369101145404527791498321647071703325270015368609866939729263808273601624321325588294305324723548837052426147013458821124188944077300212390985892011787653968527914656441880776232860330527251127155814872676714195656768531733860072864768789935844697289652644110045828665575523533831309600643803789999385842739675224336893175315999109437339281257416108455060730460026970357943790385657976343805751513826337323985979568797685062221731194671621460033620700100415599650893647672923527003635166971955930661105903722811474762445821532474458984201143224333811356972036751535092249461004846270932076823791773629165599697258012870245696380545854258782690613216505889931264861105840634861982391245298243992159825046392699250509413971674580724339639048755898448923614780786220460932850896391540000848442806766261736318704223297207357720003150244962982699719402086331112332747119914817732853308470156184593355467968508697784628449860294239506144129902572838527959858318437721387021621004975425652378457193271939573322716183378579529115221223148181385026471836879618461995551258681996003970824633386074906185913199980363541879971881885703174230072015730294929683647438057855940424300572264056483105076913733848978845472400611369081592192955439429354539195520388396162447233928527641337192790207016402299953537147525552149595094831640341334766589961626236038397114956224746862633092488545422588935708639152602871282623028600941157640748590301463131958956811354745668505033054936510706541251602630276511635085552741676924152440190823188764872960876418775088623892826839984226619672213939279157398199337320975600126917236916048776439796231738583244391082650178055499230596536240527244905396108831400534022054253621398484652362971092339085553995678132018180965623241157655226460777459286381326636372148769009154294918244386762392530561291652826259988313479984612448865421664249416711540091609966192396013999801103555841655467446178853957304285546651439796161330185722117198247666794799612346438029771972340974181487540042313024336579282218659300675650457936698125315611184900326676177115118454297234874151399792770072395428091767941929533537738646769135406212255081518063193835864777229628423537502931586858157009748471553915104138913678401674005320845063019496730175000561791835368977587723173305657181006470375442077453836159983747462888884087091514128557287532986950352844878951023135685667101973908982495728102096504369438946199610516995035397710216652491520580550100508636677220012834554836922228962580766868895925819354256435964152669909506838043178018041803256182948409610174429117633084499313168682654690795374233195634592648772714482391642710224538471931864242659542344703060063745098831880405454682321806071068696173546744965888906851821994326529609761496671708970282671128739760627909353713925686462315488877386863903677399620070114612046351849076697581761731858108948281066137439986672439742887185995383703387794040544615083418926268747546551846726318024859715650544819358784345320380810915137389053649276360022259577569940148059910379861583383871016555191417501189210280890890330400091136003688691915729310177288375894317896853562217674245656681432235810077772349658341296516967061190627257095639085725112958962623508117229430173415494219357272093249967986394638769743642817236811468505417977981094816130871760015944593870346400564761369913217001255901769226377235452957123924079089019551734117978038983151871574946043399553960974592643534116746483761332561398942310078889043226859882456111150422214160095297881103918216214136365412582607555051269814363850007501073215388987251138072660227823135997133666088268175927867114604535766116547299014093626314000523886229510376306314675445685352218627218053192964035552958273827680578630185444092858587063933334207669510093190918275199084481355640613320335020717431719826808815418404330831047333141065989365167951957940563464886020297140693467152272185896799212025497619433231019851839922067271732905592352390267396074484906119380178240344953222494583160700097657151845884149312895066734200555089956696898323720972113735125700765907852994469230432712979758186220263784373764998241933297661871486998769253633347791807012092606711249561461214092097382715943089295167753038468253349983988027733223480592407007902273332300145910021192225041852424804352281185406127155133362189324332770923556573639291602845914292775883130866176887873912979225207887326290125069689094436641886605509267343175137573633816017898658742123237857628515822546939833912536909747056367200656814471609282165371783766827291614954300213033592936567854485223210634227779216232561316975334121440756881793054255351623890306678398045202147363275680034840487714758291416195768708916457099499854818012185283063495524563241265184654975488960923672083013244332263323872790237827395101711499438242829671073866077148342063894732089043503141511666894835467791974616856404027978809818865919440109438429110045027624669734663514485664283188684896717056528386708947809046678673419350552702003487974541778224298908392450733140071860286510635595529667877554361427417983391370287838208286153805778710087875648584722919558044128655732736666713293923765599282748033381609362079458501452879153677719751162269432129461149809097992899388772342503260445982114924519314440217991078642054928439942174030540212885009856362263094726480137190194884484909320236843733528774087744296637455341288083486012868269455404872191986350703109331590699220869673296513439702172627778890170845628768935658759460528781784175863402735691214484168457458262658142868321264899898775993606017016832321062625376385435116409183664731898117032215382967902262764515638672974617600515548968590971948325565419459899765139972122505592371549502785360016523808849132402223522946727904519118131767274607699284656546005794561807016799094088291058474864194496608424264603264975750971905516797816930406512136509544255252789702013799851525153200961434751489969738172526442855747484849950749635787161673036581110012505446723264587493699230621345106864470742241355902928827349941400785714824893986048167986289806106252852615223951655706646075023304299579508382646130592439323400167402056880929311322801153233162078110848540986668321243319215614680340066993916467398401176655298122806857991536025914974899222590530385717878189814281971949223373713210205905066089389580917256980259198377625895823658685570414462894222374382175846096290593560865305082230629869045770379418600463226818702238990381686047222152944014774640323277250599181858089152213116163238005397173565240442440724552815635653951029245294322036326593341581258437548039045501976122928784395066785918013443125958771226391080864288188733956187318608571916987917840129681682958701915133574395350733920506602693833925735175319625582500565281821534296778094834626059624435818796141956090786974243221696505082747079595587816874398706143769768491993373673714870547588717999786587951942228355353114323839994957980460988410762712986111031309042347385768998433844557236247624832065710670803191898749595424599119597514633863200912361740740701062558224486432834939176201600684374594294825564084654757408008085246334773898188705653897803695990992947392136396162996832475940759105408256483505449436582605905858570465161886236112250710237833174420526776231971409369905718266176329283803454352335819783084847176892150688114336640836331299117078870546278309987220857231635067119453959378959326012082630026202021851818038813219861095483111451683082520612948886106702520437164859217045133781208200442409294753942509274683688422206632966058187281232404334644617819658259276571142190685370691996249134666707011707111597142003375019279151381467577762045117403117826806457643584873745589361059318932263628474789982022576588790561843135450624828488045846231483991072924500674865140646854226098900154878746508759469536050254933765222889967895238650812359630879574587473776762102965519196451675851379279528562630182118388883724383729374061735702890532013125440677298965565056019436159727185350290635058776846272395172973086607242119036201822501559688170630218107242902956967710902710077914947226499352486210256679523556358216663076777367603654892704000006787767566927542775570325337382727993826919353071426964118454284633600525627607160767726257225899949890536066365529075322219724238127429165793180962220978889357535998956799941882654991026669073189527241059872638745280010159149719667294069045944507809944217333854555269342016422206341653775166363494404318534252486735255018593570088600366479541573855682014586210686210286302945710565173853704970717866002359082664606294415216699139175247162431272054507181989186760463459453557009816136710536737343391803091508533952611979206673968887381764352687294337042350493196181862367905433025326897107726279961986921598574374922906801704836075428348552587825909794293212674230016732362250267163860435030725793641405220426486272150094433975678067874646498920420269409491171252419682827673630096870951080776828574045672397979992043749489432083255063324037202186417709112486770181445032745419165247840441562000077218841332323003621791649065584967882584155036464591758987281329078743080853141224129878958665338346967195249763824396874246159177456699203611067790350533620143807707086241083958511272426429480765628293915457131283166039707268966293642544147968305912655099914209419418679599170208143612945055504999954002066126650884402733222595794371345539063412092536370942375239812619333302120130666829259975617642298565080702904479506292273679837975132959292788083524354796695175498979442040938077965082072643995125996157447072392137284717048837590287021337766771001263268075190728633508478887244041374059299657075938773296694010187023319994943020528511339530776024988122619732428568343627254303958603480892023079471742233258361238813149991284594762817376060870526668198468477196766057621910823150951077362866280866357920478514007766783585743027908662576471817016799199484914460886303904023072838566024657487945188582458074856650961840654163655424418586452239034004651623969333903279935617227302662028041810095418308597938993667597099067669889837090534007504851998827819693629416672813965131471521042978208268711709607751482076977506283884878072161456075978145616004638907255235563259472285924426677694058684290685299123071479361054593523698533334548843075596956635176548059742747857284443352589370451224511406479746325103116358054865373812039639131130747564122840033714114040652766146673353277950440289851451090125193665633336588102411183558901759820201507573003455729920794787625084001329338042230046067020342177751796796309601137777723477809485932120569225643062234766518887220123378592235427028018120768719301816676536623810192456625070288208813192967827325373408249617409284872022821601800271854170611732191545282444190943935452874509503679493466649916146740654832197792903113211837171596837651190046585081860621247589920223468172456233625067778599453092731484420630281418478898120732792148589412690340148415884815678872750710306797599430939710459203315015794723721949435245535444658464225985655804823298893114123949441000257305550062363944105387707198774116535894269507238153232146157182982229956280697541106327462092158563719946957499046382753205612497693364618821789522616413709499189482663085207262604913346517369421631301295724686246767465773654842826036573301769495156835816534647336228555408275042658372472838024472043648933204040892416457472038947946988634082924590187868512885926555264288970658722456707898122841650109407769974526175897573597827071046108488571032746428746746759885669391393197182366314976892634594683562242370042949821761859074542113769842587916847657319699140358322182889512817942932723922952605687440984488895344725117993830369744232574142847279492263611187138616753072746784536424167693566407517661904790773075881454007575933277906360810527606542415861252236721914565229922716826728642288411305300724529332883133025196804225696875149971812482974900040027814971956024209907813134614483770819631429276902888070832745690330441881683331631528336489959392462532797633318327887796398414529982522368953156493779095888811943453724154205121944247089175188327565351408270174173842180289974919059099315659470813345606088304097427257883674386004980959362691899321110793249182807910500182646168508125650435229915733077372589804285297130851044867342957763362975760360756172290032933162054437081104744346956786109323455046489127768166977782963933210531881086446687206498438186738690536468905561571720370870671961985143524744117671538674596775989954431645771413814365513439662646837162990886415867547850334447410248661382655132128906576910863090707975175279253970935086083511888017016378006641513346832964265374167271318176459216058412179961495485555046361157558987257573467775939346229677104383426937053108759330212276956283420882730666887577363244568159364270972928732738890050998935382379413225479478268944847065950160970917139656093525508809694021045187213880607699609975785534346481812280762128745876105002173999225025506222434086842546274365018831589977350659632195726320464470238464290349106963110515015217701198359704619190741108676821106604159341134005229905796947677427647059663420656077643826312333592140294767316954651744832030203638966123239085157478071066308610831652665629255251832663660779329709292098028649342449977082845296118867951982452448267985370823309977654412987334534495622077720070761192027494690294408113415055266090009192806215624140103481782587772953993395957967045946834928300054132146414905514731546944463084166382397871134823237514524231232321179940820795367853644661676945770394169410106228129694994407371973530667090094956463759978959775653785072368307500264951235712627832792597415356889886109539904245946231294116995666998432486954530809385474295907361262541805120278806053021403880265587412922320666218207208404191351206861914188565491042820604877379782420494749719817525831336367746532411491870631621915854580661078628914403928243324802502476208925868770508700120280597454249251003387977096637074188912280803051423378290110912414501256089148314520676686221111337461769392693795882130209047903454462189514534300426790911051054615259766493021578631885303257006627837214704540949964395227830380356508117745489199017271318803313950603406340085575966070586323009261714587072546594674208405434279138604474572288931194250415324026517215713436074738331205268958901807152629147971910341507147998702488400690958984567578868359509197927132083051124449703320339998528188278566458021358716272021997731785614678148689014526189423797113363122610439384090691522734211914391363134981124239793770407128947124056997312137701051072782285744559177901141557384637811773720990449938463012630854445618676865737824301751223406217981245869380703553701654018561797004577656668882451909109607231355332046153471586239311044931420171241094747041042882308036953932731793261023656585974024944862281473261139674967966906514811559998493965836097626260512112823612123489026510053823129327464865815483513441605568240701115531340571616838312049352484867859568571406477136408401782554380802349401342542522004354676622662118278639226718967174892020216998223608032961702101644040489796148168766699688575014823846963703343443819597978839018360263254549589295309007218899711199499613076443190879929045733398194275961551085915326852299959876915818452816878592093466639370290253285505962424134853578339381816504863307858548813657109975015879848487752214569532026406262918020320974508137252864896412246647345265074337420342837294612398130286114821070039559271526768677640409625262116356096249322972098478079376968336336339357840541300829654161181512729237766567204952470943016015354098294816189445010209144511334380633833628529288636203666347236390046093213790335877646262105199792630303410506677439743839212627576142586036711454775061679679635558339406383095472856151080180910492860641594214095664613262325535065196801381384338553911096399116066064018820931397661870252582526512272053750013894742716003581056903003181622404794206280685425866540982852175073036022811623583969738437866049605815242348283600522049189173158444638639305815674376072240469321883284801511630886215956988056722232569982885780454188272778880233496709185049939760038724816434485406852357052238306871202776313840229198873086053626695708424860004972103476650261238741932782724413492738375772902362011107064923340493137491460901758285882809674058353455056301033269953463964521447740424450710466955636902664940281685925653764807719233484572582120223933708649862211540790112511250130787188364907585120558418352562081460703820721715106288630944916611440085125985100408713248348910326197484471549738815761654644000657985139325024952983093543404740510529828225268492437756710460200807398960252904280267092884462708670554788254525427627568662104245112574590194991923127813574015046178898115148657179544152507949386682314706052448418534177583991425317343044513818508184124202295933779735541900003620112503967328008204456419347571987184955619729138530763656696043881193670745457536194136387312433452072730134370878515971373145644856900335726849736771210872804096982384177948641794336639828748952107587274818828150624516900320116722146249666003681456238093846535761417694922426874060520502746558286625548159015822228916214909382361476747957612916975270377553469284301146219656992610046568304840084752771044288266900502851354268583685569978405017136526568947964445752828139132172137169161627188300768431386399812984015783150378427780038833218685444601064700347787836792295263222238468708399488624026121994369802763292076831240809573104577769506516593906707486511782745536976830152901774080322739669288606898892676635869328005436472183797804141181280476719628765813319782290975244685867244812907502683210442620796395793300138025807933755349494088987093214657603489015195357232012814216551226909618693690225073876488438141058934264793452339436428390179325886601643472748723309029448862258159112342290041667568968037532141452839212681777398041779393231760460058457427710602387516998454682211213892104753220938258401320804484970108293101044739629243661649797150841258961866413387089084016608958152107478947022431510894472047881072990346781424957555674284924332629453369772644670323927643854906137108123113001709208258746259881215620777886573908294408986079496244897253947373891170402252829495969207537303989097353827370233576791817751042962295804191805930849953506824467416925380570172920815499287400557295975002223879098596956471203505755106599865642222734967364151147284537212169197404224716466308462445773107736391028850955578503789251485667899101236258965896670399949035667089544930101040121207929719293558189442563734511466950543366720351517187367180957466902749471114178249470293345432861576010477665081678122341496179352473653121479680381540541355665441553678556038588374701576377831704032627162036915746035103039270971722399484315678860158099593951664919163591009983385171740847180845019121909109900249491578853904167424019704054174583265451517025978417949653355687948101028988528465911817239721622683665402541907669745492956902909266666903496195084282895250674177802960146099084350785635609369390887339205705909841197346445505328008205197318799353803397444952416265895379024990475160782950547979977200670941591666987638397408649335543635973709186945550617964356741384047946067857777083604309927934632427647253299375512539582641414495823467385441584121488716632838182732324296329047072498764425719939618641692894116369448868001619441947204140505283468835806973916145571033271327200461655975941502195582253021374606344315414348029771207895986752901869443585474521159594693756782243165274094102605686741244269879886960900035983293011080539071345900873111024290614926240562225389075993290095685915422989055639119516586058216209448070578896450953437196296023563511799303940564726377195628192353938850825411510585264636704448767103917363172208619977927209697254447982931594057684912311417119176291371493952974909029257929738047679176207583113144174971535439639901103889985158685625997254087503808826474620768465023280621216298394873571416240131301848648265038636076547058873707943097797490483698096983068193472538768379287377023884323822492489193488669040505193063632829258643930467731354082998489644680602461502389775927066859097469333332465979720511573046838036515599797158110058859459672123339834672137781276964765188920926235575009346044950575643832381744784786026965244765025930073896935746388897311840835434642661188921654472458818627037505910937761284285160631879502208568315693591944805638747127111589467767083905371612629041548094939002869924632329866329059144098646866749799594007955350710168462944949492796897052024852181119135905744222866042846537859608631124784125748226372840670428446058317032819274763195238340738789972007641518349724485938111884751298986153881789460420984615260798352938751127853823067745103598955136145649829163001224005662785273037716419311192074006251408475545692372089981360881111724280861267768354090988157332882624172989564237448885997262120404691491120782648010744578806039679749869550233755015183737753650380035929579714024064087699679762775629003829428305155536967935478832548736176995470877200241844055655047548513704130347703216874725228718341685849001240959967404394342225418250601710084823811280381481537163427780610505698805503946017572324723264555000616576874457306878228442065664537848791335681651035298043135580594840354200769709089325022009483104072110545037150771563504244754022630937241263325936252812706265675781853865320646471563932776783079703730994473001640772931659944600459784781306898756496738887629057803605151332792099915096304758521677196293594151091482305161479640989757431956084538108854410323097311093413968083291513009671322185765815830098694217217350354590973410030926916245643253890270418167114141957125614035550408816336106632825782457650864730129898890608075227910659665204267256550563526322891709259870051548311397226313228559499677971646156410232046254825611099088428755493424159831118727777581228052513263707263606280026645512604091270233069936345078034337248689786097081154383737736616733516789635182047133425251138610426907558543084091561825672559446367934578196523818837065500786133816983340846551289386625886620261881776564307511013359277314307524802292617548103981612985748035891406813560771542869559141169134655986401137600936248964085553268214717374640859091366472679761390863402484562893501873967408967955066055856617506594308385955129058967460373645007849005499158409227708352652152794248778997611667565741726579828838978509274904737969799347963601033620719133735216468821280749452283007733725445321145314783542331183508716232513467384995409265601083845039505195207257949651397607998383347068678763408362633939279289308844508147353991268159563269534670919293087072110623028730063554712963857175482304467404945213464899970155671343347431632671749649453759857998124807803470164600303239079300742237151057966666483615241765369797796470319772245343708623480246946835006836591112147087273055462874455646507516360838063582099288459509875662435107198942323354141365551246199844015073580589419455354746543123634152906607511876120753724861451019243637218122074971256003927052346551861568452984900418797534089413413194301151751187544386746431541949508275711351227315894863289457329809555350959492455102719539026176481305615207690076562488819683439855430837871985394821863294840659888018121401721469099366146653111147323497875816238403666514975704908885335455878537475163124018526968837457608778240646441976644416944467903144974322824934254166179121868011505302808468621125487945349389857885600669205931585485795830837584637417566895867569657443811004228575581023419975343326072819091855014593038545672013135540750759231696691464827568621931008504526270628595514226125269810715160958978567216939114386831353922295827028145638772922299109433948990759174045196805166620072189446667090256571613332512694545390226712485625245126283912664081287770760427754184018198513792612989414752166603250341710505600602310539945988909234168565004461231343854635362033069038368733230216344301455674777440109563526480785449437407526215762877207664628836606883174560775136740971358563009020734089479885259535985789130625036632194779830186740154938135027657847930130998824753910207225792512501704144734809833693805454495843415455275383590443036078596201529638144855112202099302486984518409147382035364411637865763139075088524568512052308954280832802999418852730816225914878268529731370745610383565759652989072132954503515104097953234335140621391320015658836167201320526026437303063090932791545443669259733677515233820347507899399505027823073770816452278657563824873558061321765221713124090713499920307542156650792588616955102329972444738866052579053436380428377040917106331899020674003687733337996309316301293738084142855196261054420966963847205311813505245038227258481400775136684631369291137201630917177180813190562775396540637294532545316834402404466111487838326536452562838284608596717668684872749802888722078965509218361377757267407926276586413231085014494000784877955443225087569824433540456242147034600272552407545225899539414487527715025049218214622767950971009970566559001936501543999633465552824961961588147497240812157124017772100510546502928718567476153525728544724576593880547339664392124387340961672754603441335500869430142336668562687856880068996461276742184900046351767564636975070369345714628953707121972283700165179255019507783322653390446150574931135327652689166567824248384304066764345732330956774252820886035816234343459172650657951238339359021675351744094225788968817547714529654386955498882729013703421783222619560170686019339159569401241740577711184656537256196575193668075519641950530265985508667300732268251885852650774155673256727088977967077377350014311525880886237632715352965708844394155839959686494154946225384353855753151847608984224852551688502828327399329040374279691663210011328903141344432775425443815600039421687157642008967845776349710910661031636966971416102995597859320108002219955100888160132017573264492032006294601431696111748762207284861888900120780135627545982232346204964580747554942318822428894454994233140901525488039583902099480528369839056481672356417993181572556659224234435204225370817051363064966451826561905830689753470999700578324538240565780090511542114978873552184078298201793915767207321024850327402558304274279352808429386298382384872029821305573151220028017380208920791845885080177864238145817162450538557257029760430228464789056337205357666192500729278594412220329900911840515675218838330376211419046294146473810826062424892286960546414101444363035730216702462046250579766871101050773304152930845223788771377447603026970872287531606140586196652269264777297832184533246050374310343104315792468325078694067681239041862353016026214606817082279506179965781732837551650654403731553517040769580761976343513462117895424603820946770016092840726990916605928062779525135253565232798980422732902705955472854685019148999454660664461173512048370685915592429158450081149770924029770941391001270061151267179720183968949321228247766211319619448129685034910035388029433506911662091457503017429587428816264979258860900856217853165875022249487048140766172027953498277676953048469782987203061896189850174777711873659304786481839442643709719610343811406286617063333903869016354175042167014898298204682065472849716615185800456836151746549453283120560176187537696800751944450656529465245537953489354098585134010639415128069709599798920406311875325248138568992172850492931312529157904529848114120948081879513043470204177048995169507283795905517729349524992198063408978698421614317754249184536589343238663954195015601682673050708186390038360586481385502024023161754394994791832645168797706023727982878377043661291004234123039018346358168897349601473022484433699558587982341235969457629119944516482328750653265748501635996559882172288290732567772770048747367721350558634841412358933128398411546322428510941142984024782533297186190266531825446268646233380755701504990416150450666209910157928682469748747685586059052156353500850857195599234502919997846482111184450164058532329884909617569943518515491651144201496860990642488535872290737872615354880328629740778711765691306541861560405937167306019985222964973668001685199364958142948277935318779285703802792084136505230267350091742726085884185118907508945412615426366580159899915718700515491284694874288214819978661241376413444067027464743963390156437038056574726084576857456681184756813461084854453799388297684372473514208932370477876232819046567931647671363735286222862841368096251992801861741766967811844043794208780552919275363918117988651309936251460528525819691012061979040889288231754252443338957894159310502474734591110944089498659187654827509309237205669496731864620364259238731544735757648165087126650743731958719164396344259446806583700706844734547992881835390928666167297891360973090708900069471595850447604203779000746018780113024813261121183125318903517845161691290021946032928238198281646597127922755066660525794624428101984870433459661274504348290473256995519054336357821397655100115442805799060913077456173141964731130173814855352735744174978621842200473502942187770812508256518576598441522788696413793010529095022725983930189641176051546688003640126274648763570889110284840298970632636530302649223130478314575223889896426589652490322656213310215705326403462022250020716335709294715641319089248932481647922689795664118949548449204128513264431024775693778970925443021907339759186907090210446490843201283586712406308383511581668209866027791497538574168310164500465251249176927588019790571884562842161941424186284852850046480045140376233140806001294165003061302106233276516701504297511169680749252764520396067898353405325588965036191074193506100940567015105868609106429257512843759824602431341979601352597815286276515770609357650815447997869624469229059648251644585195158621606756858394960933701465242265692262737190094560177358826817186512178883505685359966989501367240334387028137674126215060696855197491067156186844681274057611719686523328048346255995722834516978430450188318013921566563133662554155150240100506950887718613918138805922287563489219338578997234463019882867349149185639255066218741435183828192884264030401853390411363245056486081592569775464758525002813862595933255415867656746849139713701081337424287281074821945910221670557093387015036504446089568972135748728808729299693118130982997147331975682425041339562326457280749576567154895048929176469946808630063091490022165875826562846247733486282539607073205573420872529755910856599983561890514825954596622528939259493358121946150598433096836316622012087398294432422275178173867600577560139351073156662350800669372045708912035431544720323334441471990792372388319715380509638201765545146954237206914291034963849269906030615662997896782580638732705549684003309861832956001071541692002261079834969478073648770877275399763504096334372599488790858652777927803408197309559000397551747020419316092270148731846012452663885673927007852590807286435755506036540576307001775715471316024559148095826618572090427104331825300231482781655003100642588280548628539870933139280052948698062514075150556176708349626782728154882173979243451120796441499072486971197541772749611491333183895067313223963077546637929564764916432239329132196362468294493265864359052835479349243154970277104403356418045020702021108269132699476215601006035123368563602983854104784900977409404074716539218778275106806472496005752355338530979149123385305961921376216041888277519185193335618870420558375158453376905099316984166279146827566271154836336790877331130862030918778890136862182781069048191693824501937934835684920366618240383750946256724367329993142484176584282362412552197111916234059099417473395135388180428586892742323807943471790495156249489632140605750516747754093329511639454318475318458560271437887502724837912211841559727412972180189621388696188475268709667081436595248761669917071909995860685357567112355680282218663944313088204267018449118299915592322475380432249533142171173209677146176858859959220305806755626721741702235153327385247235237197969346359233912582655783238069782826871126476384995485780138315426105123002116039044431988572758593424677666713919806650054585280741280095738525714249536028936532335401210378259966375329661744022802556765499798487792316357370229971079372425955854079991929498695603565347505849475643611821185503055686661314397592287040464772089483873713878136661727731018513111272637897763856627502651540996877130858186659898458387397213755227428999420577082689403334811881756134957928974037921555000682355105450648084123325764641341038402193275451873955510734547995570585638514661747497622471028753898352464726657236019668987391124279193484129418654753634061950506431466251815615461416039772538798314619007980665542480028162186995374973712582798686169840360676917604811101264589366816282981261912282163451280390104104576973591466872028522424727889484645577539187534076516815200319225363333166726185014670848878383468691714525095402474697851406110892120642864064391774679865946832439059773749511934770113463344139179587964504279570255901191427169254357947534262882682978792670244797417336426363619598797774487848165164925824268471442799592535711231365295868480369231685898968067156640626816885426991254573463475062211356372877393783651397293620765533933040784385765149391377601384095035050515399201702563176249100168887933079909221797327711674323651502788969847241906381169651896383013203633126222263533137823022505745790007371074772437385285515245710886020688862975827592194576216518663187484731220698997956841910838339497276611183063999297502615407031233150220676860845945256065615817166625189565282492161459663188116578877909984695528232280957032667386374493298108592002788145536670300913542551734903092740391802229831235974533662166781726481083646294084038570265648397792028207374553454894064481098573999331799350736811666824982172352770211002608798784321073516724266856070586666981612972383912067616253580149599184187276897460698156528568724017261924204737311989084750844442645245993075194054272227764082840582152578874001714150928774667206148123223770828115418863278130704679624603948344219493197404430017942653793483982039253075161509252335355367099153361903111752681501110287905792697174236632017290032911054642151979301623817039997166229960490754094115260394400344120420866342707548381821375498242259387257088036540556593884173537383474160715005792652668019890833021076588627547071200292120071990931767861292627281846118093108764113745136758332676263544715089003685219233591952860968528318501815583292358526125420700621758751748028651723573008353010716186845079525387298052619057290536624958436982733264459757547246058214204825058303764506053184719246245913833338527975241307734896389638256451521793263095133734629115137634465086312378170493139892365505537137916166165799127848336302466301671930699723689626857386599036686394353735295589500315729884217730162766087281510224846848720063348235962357108071471149302726230516689165884574653233022684004242638836692469688699732836132876963797918400136495910122745216378757210963388018469883499338776724117945790840137811856524546765305983744783517776790186149278590940334718281818760101440528960925238584161556647891144448195012998585303716566497630047899232486985108883005625030480379153093666492952709328200995550273203397160901644561006514691763043555260280972696501803770346815920771797938921501663554220220528071615965897687017193636139330971692688909542355909351913814587550820792258089714163569240615909125990431827012757016127220918308314576883469301704663170030849345469362696732613927925420061533631147336315138712057237651132135014461632288192677082193560291001527099442999760370530714160397103639553904409536766679751061522364512293538787553502021006591296005054536157704238177013599583822980672554221949991331793015998792471306444211236299739477762796815396990817359013303467361768161256972327280174892429499062808666033212623164627323154354828577424309913784330450663146421674474623532304117325472396633226800122668871029222193664079058325104742099573053689203821713160692318617046129187482573669176815005875302998517144967691086513117791802578476081819461000953727852036183474052740864338545422545955026388544643936112265361055835495859732993319694216657254032888849671999936771508439831173605909554837210138630527709473323935587831138675343361326364018386124138229885680743751972289236012128091240888938136605057700675969437065247446610419050354640215047074333013943295650143458567978901723129236570268218749455615625618021830813128865141437122248540001094169126182590895524849723232081316840494032405594691362068512239932413919227604312512464308948673938103973605705348649375084814528508613848495481252500842403246074589969897744713366577251606871308998148509642899862329011075009383422398074815645335271281023041686762409110236137392026409648672090667607051346165428927864689403795954336198487739333603331604331541909644190945056787057577983753792019225584543662397225034543158039546089457982070976448461091977460614918020988255527599500595079298433276508641352620534531901902079550717576522969484720355772925349703373128138236549083249477711364457997011152290173442211345287331445298356280796241992667496027750250982775017803701532489351109333416581386507354231486826220240732569431520142370281208479488274800814267784864634545477931712208498668808031626819007527693951102352015656534108328161928777522144525861061446601399749588807037206981950988384017194495915019494227156015614635265445952316599722230749292984529861795101979106731875478037342225804471768193804384197625050806984275918597755999073722690209781733937042967248393195723067406305038813441796794348961186679979432580095049854689309138301137188277788864856851048739899211969020348920600360096438323581750533784352813524411272361399716069158188891702512497138690124641743200407495345886852939804903091747857359809605820987566530662820954694674691280625246551525854606382172248978410216131032559120695276675664505058989874379979095822769510591792206734720961776293659994470806263879608598703562884414501407906796564331801477269449601524672778256869365498044135818195017209137541077587165163563918303738814853530891563096280722467195236354388490503711783100295872560977784997697143477291010454797185997752234438642757180867555104388029337628295688272669842756693766452837426228144455427505368921642892945516113336837578816634128371236008132360573886956070744970861187503198254486006356174274293069156123815681971515348589395498614436045622368606088786309197460458815896596237569821303892999541164365098699949220198005344908208685947300261283173753667803608162778504738130900057016499897198641043530772431334801649079445751947470406629112941443318534478718940263092763608291610130286023879990317058717926864957180007361126127560742906343087583351130780339690729151385507825727919532651000921690128694030227151549269297010338446770804377293268903636787427258737458019586436887130967264698152087279637525938810309338459002475530987949298152599299698614223165561259416028656211056957757755309459979218974126314240419568663104816005427657030150860991443578320625824416991098167118982438391250061265452706005854707051385476312812270172476448447980294295372790698088290910818860778169281292357014692664621223997301831137228454706701698509266383192714606993957859484503699275037370749730419520582722979015282894539897451615039050725932501845695279663400405563228666930916115229044264214046693058176003191058037593170963129208630623006514685085718054356112594979852366937065620173132996378958963891289621249018368406742110171334212788951513617391664458572353126411586088996186940337348073614667390022593501613009501668516800338186593782751325499110726676368518252065045692566316885952806394959657773389220617266010637110939007532535676804183149349260506232136567826072740537768249980052488247788202811602564411387736881989360594043038719497133179899510185084161558359367195869824058806637574538264457362572450972089221434214841891532768825417517899075327530759950904393684485192348192765441509320422919846508881320509497222839398529427054331744259869930815053826245957462740736121832582773964422174682231155887699970423419380873895669254445859313590519935374746007365963137615169089795508262046123472615679685711321932211357025193236953510210673554990617355113962471690690618706782668155781779592663375289091384830364321575264090737560632528032174979507574169966677174083825280939909964438579647314775063261630031845567863667665641759376312208810091723980084395777776159206222860812746431282495557984272037051198338953343964246091871345663721059590353079214177730327232829347654401976681093247755278127100670032320613121932057994041369215571957655411908551215244549747866213500195558952342725196356306409242280922857889181156139818520422547621288931368760277828128740533006646604926910081510764191886917490359430244926610565117293793926217217313247891493220036678363984473662635348275535643897712898021908575106531541724966093614490245191966981777059669607561703229283847235765021748509236240421693774711924572373389671995779016871011149729670358764162684502398134576733443027159725718677296133891149417302970108876837647208588525988417988009570604164147655229503162944068855379395994532922827924016496696759971168099888420227013650810824621462112268120173537342149392232095575387782976710772305364538690337425997310635530127930400079097338617134949403749898564204947377617662299168283629093475475716053815496940094595293881198364824211516353523714798383446193869809389751575713233303997971289122557248940441543402566278499477311953115189363832912346345816632718007930307147135374356297430011331705609092033415467672990398087700925113018216549721134348455867530530717919699854293621269827425254978489150559305496997604801281517736100757645865335826670616770157929119914563328179091023144830512456465246107740316391072128463948617173749172323922695278385953356735649378702616584293761212605191821995117306257465913515813977574008298742745976054316345094837143778601404208787701500273065202752426161581182719823865190834457997355401058257388207633424656959101296392903049874457468713183178614041104587638178532996602097360001781594584118860769644761255292207365089655927074218951352378024855867787678469153915462651670282745006484750212780930870074575353526957577831899277686718698942457449307607834018426598470810794527087538319103557265638653469495524927259815665986232415116694029303889507558914999096038033933355728675630780572190439381975678547254188512110703207949444393733250212597619317663318476681864875213873252060150680209186700897474195398361562137654514374543822172266775630550816651707335134653306625504007536593109310190844838378366779544818945555448159978155773124314953999873455410785373398358273504794707124448559101335677843950486607561108441892124672655645580375269903556587580457233808749765226547496418490467733711695198985266178247953422303657994084392488485392930856622614611991138613456718528358633645915185443993419520966036647572008063677609537760218787934644487563524395996509372085738180838364755611737664438034614529615342757584346204005100423335254348347060373509187167439974598368272518467049267758789631964453154708994661292433261019006948555920415284278499799835464589551745971733717468640513423206965881083734079251338591068459375860919450907580599317193818850061826175864739415202991435925280453169280775327929047015195939680539490750307731181588463323238892625201975733591093726375464938534046385690272171180428291035709547907264494316406220423786884067501021370943078838559193229681264811296515479816730497513463280258771550990814227548752245887232845254603250436516697447264617774999330252516013425727238119095661394754095806873979117578449404537539951478939620278298597999861790905191174321173356182926994370013131978788746782011690589653125806421962194634976708805214127623227613220367239360501829377055559932452994402680943378636352644198967003538511552129402335915935471717333154909253480560631856049483639501228950376447659655779320364939125607020925899893032338050874882877195175610215757510247898203690710542647070249350577896725108920488250155204300469665939757490627596920849171376038303442686963509947069706874812446865193933910318675945131997008181280135779315324811335827501533480635614101650041686296135685934155872566128369406784237439306160678350603820656450838121048137213814767512105491323874919048833114058034369593378244607373401491839176427556894525682839181199229025005152118400035396595664921602762601964023190643950842758369917118677481844143999194921958878078927518118087692944084935539119352704362497760108798622136010824747805086727291300760212553801499409929770406319983314769165146163155591011184060290355866167529575595625273903742096101113537656882479828245601797774079660415178504106130023856262318689086208009645606294189749294636296937846486654333349793497553338901891277646964780059251997714069405078230083953300454608043606767936435831512245522483789263341916386074055854717264334402943784180736056989437364355423878449837988502540751219647926796796730364182425812276166954289096057674628197912825674140724673625849903376932192502068537089843516583204480853290191278889482258855967086817861975836519512953979561656878732888767354815458861946069128450217778098899231445027158779862717494877432056212232743794072752578886482442138897348863917172363181329031810733011919997114825952011790356770558872594799796266263021154114170525229293946915561634495537541201584311045117111979325441682759053656275247645576077575843610738407444673050609933024917634974336957193186105830702947437812918229339165264315629980125182812844246573732237197609484865241184634357140341349197751865363595103508317396196223830516391536936086604341984281177261462977160249654348593242154344421722041734898282738764218709175731739955419662279835375553628043033323954622122376599131962995483838885622196717775257002532962947772290643030173052584552661227202541815114207013404581309927151918078171357309618300552143969567070353965644406312353835663239069472339580274975377384852254875472683992471273324715454978929442747639755014267890318601046724567238869451267938069099851824174858024952513582701513137920585513811351970230437482214151590695407372877428522113240392593446861083391597449985904278982283505616458748462645938700921200792439126724264359992601712969479676404238815275850690083292126826723316782463803224805099559337270329959117971493972615609708146757986979199508815465508911339156593385242667329662800239823804318034255380287444593802278886548877090896902865185780152858526937042444619193696749086223847860256180395618221835120230906474798420629586294730874772298797257762020291658775353565216950605544398920794954549298734935785867877338595019395575313676938204925887459822629749508401919942679900267579811079711592472570229917611069908520747756113069891414785210926161407434446455557042850734570661043933524049827776688277837605544021193312004138793527425890508245724063649569006516248564258578453690459446255056717818963827639704029882792814360714934114441045539167366232231530455892229052213927378105256648154652932223876135212356979610158839539231057448959581028394367542730409553278608801912453093140100186101381818905549591627971183502138213111841282044603544417268227748099257653637853518882524081347422847175353914776967450417700185955279986544960849047449135757566309637719701721628341975761546017318712047706020613375154300566961443959610369494779620997362127707305984152568736999834734161161640572577274537673341542789130387812405463513971353535356073193628448885901112286661736606623685834611730129644560001165772505579897823371142667140777198648549251025024727647082966202619495609412401416943398609781641833730983861414340973993980939486142499918576750802129406706700900520103703466070035548237510318493407232951210398271806596236694736747392270974999488454595183380647812393656433572205031492861052603908235975857805575395391403642210895232724275267632670615697201089542671333602538255364790391535083678136634225680885670745389122653488184469186024374657904291690593208418716450938958702149404816537039776284681825014035593263060151127951236118792800506030417965794020746370044288171181012399256603632814868510002569317500419969553157609009792716799689306862027941692007364344984153917621161523467194277190803860198158871051197912015840800324009264921494289802751437783106713976486255229746170138285040670622242271001112651684790198516521336012781759174947521087124348325937368448526930606814677308593771114461503048265413244884229198288238844085597422210097839950424548916230168848665137018610031813766687965760897786553416333832890036262127559252944770745430101228154636430771979979098637226319355152386955019477756901583483713811783685592242099546981955765371191615276674302460093285055386170441088537417413854305225412983290259623076710134219778290153068854939018990936005430838659965973892403772829760785389779512617484494813917512689209917443416004358625397170929707446696117910867957648067590772774968300474974574966175829585628787203208886385703310022698500348226192616293458387061433832695453898029892787870534559704480113865019798719979049125027325201679171004134487986571041286170340678709188367931177022326437811000904987555331485511998871152582811070842009827771745223544049543820428296154351957511870803709972079934522285519475885207228910531415065301893215120276310002545839807188728486658338351303190463261841868540186685666592793217375393887231193497596992284295120187039379327118078616138442501660659845065271204380334391314616476137216841629228523524987723626513960622504954417897134432867128798701981992971317829021745658909364128190210840026200821271526193589603551001671516047278191570256613853910584682923638654555877033341213468520994982680502514176312932247914418660127956291694797216012414128990862989736790815563265038016693336180860915366213093418913131496072308522640313613612884577484948891758740395346175548202174792014359715932045355856654726012680925965957646308353125713545919627933906928030022350910085304681441498481249441431786746077765122928671031338724258232374972305247430009454177502838396837240318102532566315065612712918483805420121915467245857327583953602562398275209411964483376182405414806308981267093733393874555442734701636918121871371648972035070691938946685510585939515331621659791735339995365057584092299440913401317781014528352561354793463861165832546305311296876871418028359767050038805181196887293486774054775559963978582278107457872122525367749078816229747652976659164502255772806108035748144083016792581892975808239657845963626267235785471650703360904755128325173890692082687465291316563332688379324475189957974078490940400692691394326388288306904945577526283542905113945221620583780711663501847774780522819037846550848158612167642497497228071667498626444951978460890268271871845796482061703776785392208105757554588352682339686152836069315046525271729906946356319933830054819450119089593232508656923211134247371959852829148001939498728977468129536575195485949409367525060468681081137379922049932108906111456723036401612827753247252472063870252345938193880765083167550503449996401746903216300193011654934549913744036537143610824610551481830716390790392816141619414067083969618191894623370799171927313999118080718809246946243632932009129941269626732487436498085172141508014840352577777185535286393789728100551393461377162528711375689258162424760443169360797405817528854744947582179011585993311193147640373870223121840603108163059811246705527050655892894573753543442169895736289106753105484134733506698653940027460387344250008527232330552007704620598633386815385524056640006510982120444536143578601271349127987449850997371563024845863030539708212049082763322790094837784570320287093220464928958807198360213244321873958807280458617257141643129873763656716751882870269178866979465366558469525338001586878508378862884518084084799174499613908368296620266893101225543534333854167794984932443710846907906701475034003559721848082740188315916918069862675047900741809335495721407831700446465166934176523655491158572558044492411678325728123180439894509385576205976946850177416398038343602752799607242160618924475164682997209423099803773093068368455697970225828911039570127545484903574594008573897869883902827694053221396571011157459605036602757208423924059864268854486318257239137191247966624547730689363883963166151800076047079900323894811372471963168875274675942965754660801786374790949377464895301919211273744655017212955000749937073664812985826873553700805504692407345161449884214161761109153935527740583723642534264823808328063262573567860043480732688621821855542343128079713165277131442614625570361793391348623903118905837220448079394510248513704238911565407351848315896681074630806911500782850754572090780674145784800717037796249701352020300186707177350322659727734300443473485604014068929432428504730619432631930643049487614006069632365498716754546091503853579927738752604293229358240619591457506378804965027104634603870796990308050413972200919301874493061015145282052783718205284673212545247700920949087614883923765265697665657269321430602264955047201478347021739873904413871072504250314681796243617987934249523634141217308724007916719622390374744231982071555953013646240276243509831003227615707811875439444233909738318049706884829596403368529962400515295975160875954280203905452724403356319118293517529383699962483248537749911466098192395512890284324828994423486852503659534897340824657800702938517545829282689113125102416781930554111598867927373073922594714212940550332292727702800255865561890715940128713766358770069249918514437561091822461878686244732760316135901725195983522227206356964221262252133260554378574766641437069679082880717029030125408874644789744808115719175056076928370285873227936959226183697001233523651539811829114358495026972783245597656321340020586919931715375104332899799338147379321859597417857690743536686029806647460269412951485270549983478550594031119116143667390290923176674747647304583882547952278162251829121301863671671884659346106775668587447205828696335658090892726110423432849254271439122616570059392806702394757033686694005545511890437821002814832035728055776428947694568189748891331094007257644152362530189516133274733086286162907094386316853022251395629358851648214653691434918586263108331802656617697152335075395080055200145047805721375532961868089168019768980772614449025973014057753095029210686658828544363894452705528358743888172967159781652079264025234678363460865350332078885644019006130652967982830364506293264341057549385573645576288055761263154118729733925359408527962972903277779537386866065391677514342402024879368325297154382379988625468222263651724249588409929512845939473233682714138145103521980559947542956972345719055455114837399567135325151864389979221042788960770230339740675572065706932146002634218314276539547088984913217195265361832199703952287594178409308124368016467402193458965869471201284034941888869446258592028944809484420713576144929697719298067884525925359376943874602271162785816164325922125885817399605874025138726844046635017294896234376602202476807901582186166227967863635975304824914943098634492164687468784417166876432672061712893792055608602908370867965914996642555592251659633716180829411267576990671693479929850054983645832682272057005411992579331881327419675561302395970715291070474903088000796148628632347741042119813934981709613851546303933286275751521878499299623827554147506589897223722876006099131780475043435269933349040581206747504090189531222628532003186922553673239624515551645906915313407628007303928736791778642342073322477124618805739433139723638766183805943337825002899371962632090315276699215263672833935498130103743084225812199940887552663721664327300362913848671179258178059391899954397442162357430434424129054483850821456355066737589398418272876020780810437632405193727788776849381454158665672525787464487173809490538241078353083879295691777613644392866313197217869792142668936083763123110238751112882298503352642571754439901516787596246676284519523088378483306208689497158723620159944371363237797435378540868637682105321984061906632136895516972852803136985693907304491082153672653745449079797708993401111395326774123303448657424964087802225167622598499490251283201044978649225697124016839539523869437884535378427892888456309117879397515985045992673817729153498184171901098473821512427000317238464728277314190430073914362601423903167710799551684427933611734717917834515190632911237760941659726670238569894485433929558849699585911727294185123049529388404107372543589334188464968092144021567056779213627385476519103461130920058312093252476641149345371322103326631269227441402973086906613397040828738748786950534264608175872426951437201365300851608070668055748728656089728516606424433783736695517439199591143381162197564195613332004587510045069726119987916516044098158996443014219392616376947542878848973541386279012764604323879341213756024549030100328384335551290285909279886854920436481085838162750821192211844421694607186214760786066450068019435492962537175824904966814300195011368140687677153331519517763523869231301179477452966300475105475441710404686899809145105223813781979851974485615830472343794779736977844980962061583144452275911002883395631402956755883455764148449608303768496558724753623441623662486894773874764412212197920787702212674758898202681810874998317507899285843282736729465575026329209762906299160861877972557105562666041903532678727046517197461316875186896161892865732604883958316699283916538329878956693113333900030046403699389197655993066814077733144102073851163582071634052077030968182586511338942491685864027536999512703406007041366335641814407663796289683026159184071314330074141940722611861588310165682929531506564189291016435586932111181953137470728410075072032240941083642877308957451774150078670705938841009337894448095713920867014050926417125520699588058007350320971091828706786243364109845158469498418866556594908743378763817994880017194303172037066676940427085086495620301019926058470289098569117037678120629937813284119848582706798114522860396122254684010403945377020998171521556567617727978990103937308539718711274160235236836852574313973125515921441616134424378113957986413346399054326995412454548105703968951458718179442506867472414232488133604160436304702326040875438275978858596752052782645008025684197857287382510421434237308801275430203629663997398441933587035255114471948262863095400002944000691328564953277116408344264337357308431302455426743852468041390939037549598897661595259179791442427638559888567972598487836422595687245543909753074116677250168801310187758389659737529634733683078076498313369502009496202161847516168798300346375895942392364193625430797198364003948144082936721624796404531132079099307411785972911303504789515974986992995494160952408705795494802384677987231725918053938320593101678089867063446522604283726648629306147279527653520411779258872047312778142165452429862100350986913020104859261733285479289541351349653167968436466405332782473155210689951571420552698572583806343578652093863440215194026754618504701718935197251718756620746084650795981563227188366136904639019057305210737270813247371067794215730130275152371469563268832949648480705395149195727175093203194257880228571013281276603388699501466044345104772680702069012445686190571697953843132773970865320517360272997515617343040522668108192475519012315966426240168441473762040139891596523990347768993814599656682157774823796159562342324902018821236207171496462374312159466292683726086526857400559418852348757701674306126999807439234788419237095396266863302629724676549860364929210015444091499661511292477270690625181025022478169212894117567593122026029648821941413970529834049644850934453749185512257857089112349920511046822832252636609413537616044042402492066472943755158005790651893710595136685947448665933928831781344660418615548038421715382833572023377003701154737490065630974181870496044222006350494747965494952197995795424647237614087204206258693377360984163250774245569881097351744634268875074042643188869917728809544217749190190229595114972160510500311467283070809632077001899586578269579044145569546507453335200050008441393336270226718793155886598858582807815781500060268787290079319169137240987756591163040963574399111559665663368425315559189853027350918958298882312396269184874190012335158659706033553694749240729805736835980535810222069748203851949845649430306262604597490127953629585372301867681863609890985003649502660629848504894120256619161445759642614237025396206612629508829881622152252346950192271615510201895292814162860105632705750340493258877468515865639961061225965898076390167141571293837003936854279810683358094232329665086276783142501727140734862809324933828968436156414246709101096045244256844649362984749525288905227939217205873491218694687835612595096242701646255590587437623009476079042737197002210094872643558587254594972608795243724740579269641111398206533260211556686504914366035015095419463142214273316706871927165332123863809750794319015413589480595920381290554625719048249186215743300168363166610022346383401021406142490535206081806938690502406081520845549007098824334978402732928785719020381772720781381943797846400533519114142369079519314375774922158024764452666588820114634923349944538458447265566683393526983147356171302379875253965669850237427545512375340328159296730087967779712775228760224261709815725132590577688504621365553847559452013825187738265375689180223400802606661383950760975810442273981148829846008956735378404299839440119905399472390590339645062271542192978189432006658525206787536467950338115861720742065646445473129222882084012981787389790037688687493832598495003966071850087019334033923581434699929584077355154101840104983071524844408898477370666772595294233233802860648833578554045627276299694744703344278827909867499702885885743460013193281111870259015166666665224291038930062236312559624450789442010337830100721017812431329468766241746388427336520081156571290155390279810919217884879135788084712284626700117416942438242798006106585343764165664002586641834293961855913582926869333277116684040822187832137695203385486901950971153639508048786655873247753304967475019432493837505553133266032767876325145412981618355835437570452074533194130054240823883088000155773750244203570609074810416660126025658117405345708086721724445458372134680356238525664119392481881756791988689282815075567207109917374509468701052856351912973966233839705650702746407988309540566645611977845020888850410262599074369667681938874442744035999289194450171761365946940259199278351748583067929117003375565428859825561180497005131931585461553324973077131360749018015411548417069523518975596502301104033887312112144904918203958343252015233823125130705395920838014576444901407692759489149137538245353240854023923707952623030182223805619439960755524944368332472087236615359239831900488466113777601054243959674638258633180329346215974772398742502141786329513165277050332292111383731395257221162399700712717319706206231819080417776408776806688358758390292251019540089042894232169256370314565373981870632610376920561642789134905507002096932551454658113966390342546984539730239495921608010663222048447909224049781932034261753135412796547877632461769553979674018014545137736531198735150881089070710485281326021814234454004337607211155170415535568376270370111489087043207002266171405051042851832379202499345627835604590600728930863451800565610075188688824433770333074730290781730661115535317220911927571302070588072514220261271402910573127756399777743374209392488095574884894168145599564324480093344429697712937354546202928298399006509173501874172653878572860594951940169247280022558547181494105033830859292498638211957135917260477098417065179354840438540230046837749838901880706530383727930542378664487237344398809356248665059708836693488842447770714539314356601031503854868157188526424600115704457299318463375412653882864763727139641334871366992450016577605661838131313709618913629755603414199020710560484190959400153917392538683289210189728385872345800423363577035337283596396946750958538739352909993992758277663174941815067261581955412112555471111025855885130406194765245765738244998789478147354695919774031919299303478828088121100948161368471774935528363299487234892774246718125156976866725362481095544804372155156198869193394875099095657321798251295183143414716233381294921078479812203476905937480446671365972164990246459372109417261703561764458104044149053906443368461436911410826553749947008623360541566858997011907952499432031510240879757362078940655122571604624031053392554117833801038620749724575293640735150750402867740507980995288551250442630571532805214220415734328293218943534563118321287908321791221039102855510733160463534355372937508410383684463017570128281339681681516147733046734209318889377709832588562893290683217791806952200040659943755352804248916034564238478438447214575556908202170346002008361174833704047871870497686787870678138456841236066574048937096600350552615952641397011452167222288118856259177086698604341307178893391985118994658000850199925706604938722098630832146424142055790643653784009386902099318320092761545612666749130864301806862338306575137160455487293428908383888591855872555247773788810906238672659719542906925890314445328755283323000298850035551429559716668141823510151128383545913023251440031843645945566325251639086374394528395756933609649056743016709334089245072877810886480541622083491827850424611074681453619843840438124404279728911831329024207786115007375732857182305103277794936511173072625718622350218672276527294461222890870672951340218649765712412911837435973252577873955813021860111890624857864728938084683106521126452460846618278026816008447294764200492009302896144948045223784635786057903678235393345604132636466747276563414347580264409490347150762104032503371389175917797978857774686736801349761521476173739647534228989468982947469056059985005994139910376447514146863501682587675523938813523305378398362301192273476550896269171978079539599776901532315278345803898877607974342430440058771349957550240185859312007355094445220677497148571059009676860536790775329931415508119802674523925178127602427537107781072135469711439995443594741278152376165413522377212509696281175998583851261270208533093371934890087949833158902851007668263896006360511361236206284067647008379109093683229965452904836610930572670718551448614387290254707105371585469514468862438596024061041066542731713045760232143703596569475779662219552949315280101835328725581966344162175268705599890221664102247548078346776876097575538772691762715236594825395879991760596048165453411828367443014845830714639057851783076747499295528079794117747269870482033269719466230277195438533299498046624201974901182129577616143563281158327997987942360631861938031138476654018425502115743654859343472325719092208407827759939809817683499023082515903343489290834657075777580948612828237135309489134829129386140169894111222226262938072744651837676508414060556231652349863458335115786390119926999776023786406646307229808602722976067879801018064646037815976201998636184157137788698342957807672849198653585644161497313555402453839573485362393230428422403977946822720172056741744554677660916531124689001797701761214088632869090164091565222809144355995994096480612773750892471063929392212735177639293975754429176137544737521113376291153520251275521631018863410917991962818541214872718215806678897850973875502248294038818418077812258035800608742623704537305911989712771138374999658152070664476900632845440708545231493939062720978266074911987070360550659664763987624025501590809150517560130917819539762484447680171864001138419078114544494370514442254861786126037262928509095919278954973576322951079995516200858221223395668795165821531926048501334581033213372778403150914667886079983882982331985106646494108103668498912176786438563937913974362270989384432383077574693203036416394110717522752689976972388616131471280764724933396263089595983545908963781427033333203287301905276158953660546223193911066110946723720234634204950212315547989048009224764365912995311395687407887132870223701154180747534049961564364137755993508134818488021476515596034972687099626049571109201845637168696985618486588762923424529138395108345108662901053707707946230226509907122665756521448667150603610498028278518763462548352376447014941242056635360918816348373572934503038681267663233355552632572472658641593440803741439592518013125202843208330872866673323979905247744453519237017412616926677737926895856249753996141876373605527404109733975326988894720564350182245676911411819465767431678119875922840518308202684401155955590327862255875468201795616923695313630316357928530189012027607744182093755002633032456273066951908566333194199803660802517529586217083427822712221684736281000069237135735447615271633491700991068364478328543882556883756168121391733245787168386950215798974032464767631870290435130188809012352490519275981967298979539010306818585243789761091532793137607322579885825146241708615909987857043202017036930841998845147627123210427994192391060434716093330808793282344015010094893754348857900587264850787355501726266282918286966870990523216730824831088695434721633197472723984822659571557571471040795477220820336744077002817460142290108259925893609149146066251502692192060093636956798825186797697735505276822234072409166957799841084508693083685609116906640762769766197154032197015196939831116303893757857031097550651082715635012382238099648788966595626953347560705063481430494667845444815212298493308334832727247612513991644941074427504059528104284939850657593765428429262536035853471617324714563752299394734664534951750731820665460218345021574456231699645112428716825102461244677048317081271061045274922961902844235581454704134998633922962340096412097461159234229177387259466891596096332892549569155506580512949306260334933027040986296185344517308531716937439307501962088856824217311669940337732512512060889207782429157484910267203848267643741988855417915386681091823848244908181837475723473917543045853191096977286449353715810659248208900440871546996027817891512599280474831542415136767830020359231657933914772101436684924859654909712297360545551128379594512317341341994992855570793341452482943649336337041281390052806121514047459727848599196417663478070428552379164499595727544648927256250974503846333054759894485420718680494615737363290175392242839923385227914841487180585704429003854784795240918648253900799672210237932815756781899962254571745597789219923721941789878275094770859616042542314154951073568333873759279748269126545312842225412052191050087345495640431250814815031029735794519179790118150524987967688962534118657184988492472793247387917109758435382876510831165154904344378943368530422618027448325537856326173084888166116221264702380063126214263899437486749082557820160698073708121342567926352973971516929437782825376400035581504087554423532866212687321176470431741429765518630892953762824672125397745042606174577131412472762695579016375032642940033423402162250848577409012927961954426599132670420747174832005749905935171207967109263526453385381591973440611003660538743973623203476029856876144571578343624719894326994935629402175089079880246826482239503760891663118952241427923757697315017157151958373690859691163973518625390407334980190160598672988862826158486654608217682414139799415566243070757654215858507287596081084091863828876721851113990031002527430868246586331967632537681002785269873024076660909228211203502599242623705219221226575989000744694622778516025062332043326733872760142526818378937880080814485365963775346371742434884504893660427012785607208618120458782887911385782149286830881273749818291979165745251440718949471011985036099359899555408076649385823331715443644974872975402920015707979191666743279670167768136221412654174405525763683829813334281216183511966061905225911441839590580680970353809807773912556216788295244075959534925399085758530814616341518630830338375724010621145215524127554044858472974892883920955467898108270185818009894699606187530623341450241593725377101973023144942176103026309807726961478361048910306787705370702895947188125135313570886526742698339091549821948660007994172371041650859937996408877911872555332346276251417586409666124510491503921606403966956320802059141344853230752960524835054278144938673963595939158997221280255684963324763670211770165034293558981514288047496694005537254178356180033831062157389162019399953144063811708261937319608346351236652827735453583576518102688301915312852710658029385075578784357167993672436991873691280630601540742447636133385214034278255052187571288906866904828767064334876577232749458374591759297880730911352143613765865921573372250573263723566824398468914437818423407384486162812833747259501048721383002811871868045038805666858565594474779344577903300941852928995585241211975205645934764028717225984592049057856224417245293377796126533591141998999635704387794002330338050344335750829229172873208132506349499625856990367739872228582533426889139937662275839091863659190689267779495524143761824502716650306911644491264487292577307925401962021418685623057495980288402946730706655187481422096673303665570173407746132187500061196459537923201928418545747897843839736328540608216459497088127480739386600764888116549412050443466322924961821249442434425169135090548211950327341137631528539617880818205736784135390394845028688713935770013415413843414175167507183630531584036516671516879423431689774051593212645738976350417994084758907605776558102360965402915921078559247636836167590994617594478536587519366157966583751863091190641104654583067870992203266807886165916983403278849536321090224083982797417232742890243405742382776080375792252160791715254707426240949362305519604695189564585153194206540263641955343117290505899471273832247599221845677740694019094675308506466021938276078105052016159027826344259642860756961661257751562842784172053603742114629259502361270863831041419603020416822667468786628376970968402604293474776361470778171900734868778418072510885046924049161080172902590582729631350755457977748815414807567621961289015661270865442934357963918674913862322137142720065972581039215110475141340163790865680730430479480958218515560611081096880388162866423375090006790317172631907284706292173043493804011917833591769174200189139781378270738251414367063461323922553119908310868100710512471433406733373022286937034705236639630484636007869882719226296502977221242989866782262731949392365014530461875517920257043469753125628248252691780511517128214705863972533506925651526140846703478671858440920091055563410488706269887551649256404360899838672616531377399057904841760175418354163555916091104258979137399564317071735880871696964946114445633978780923491965781667449908883575912960057671324630107421393589968075042115046960869724331810219834336473165278377020506305830666677545118781707340602466097453699656751288968997944941228191201653461726590754999615828237197327649276571784055391643474702375804009348077066340629813384539506584244338377396703332411781311493996301453342052342417521269568668108404182689013708112082749168386254131873991868216594823599114770986645487937385398807453440580462377995956073631208310919244177547369233001644641722963670232660270759613512099111492697383555909070326945095519094658100500091023616151199301637711252979536723688540299877508681699123411561154000449329747323862966415337829786685598914917377063612459854595065938007028410987633220151120145647119758318087923479371894534794367648004196925110275893862230687398791686745766004585543862868058028961326241565396749225756530893466086637802620794411923411865550077805336651906263563595817234076346608248054225956454018406494488057713799335746323326994171492839873616875312213291070592388496982831216231112485873578422464687969557306016464720406192904303652430468586034755863879202462501411048965178635284616399684486871237897405267362407472647296067528500216182438950524900846945129105180633523147661299177156604699148507924891060655514650889823101408880563848496579892632687630010149903465350676435599826652557062831518629138701619252281722139583253831071532663037269773571006667796149576164288892123066572086446111145587246749211919209952113496914962656933924204010475666072677122592130280389184737383867527543359117374530768656311646951929535382856630577131829632726688133840418982592317903205427665025906022314295065188024843159768749005502435054979017303016156621617790785163578840759472947071004815585117763239549369624804265579327670603288633492246656845678731746925777240963308269866175378188325454155487930125998173666465154062719796875122792617527573516964011710576160584831679919452299183386919498751140780273785587310772990968203649742557214631552314203133491269454843836577837544406760296775499209163758713090828389688449990092984740689967363776312193967742301480621364493447403648756819202635020736569843068021918532400180592399117372837262862955139097641734201508502946059988816628776616844448054810736549966736437727052274869356076989195379235196493117381744622919007857572684868044112757764182480589311487275916588824584684521489657838040435697543710756185397349568843910573114307369148586756061068280981936453696108390977084676867388302048111155035181518224771811864038466410809127524290319880578463187840401519237279282405245735957842554687906135465508297151544392760904802400684564199511239056417133046099590005374210846671822187917245677577514443880846322885459959296457280094542565816149247179974100417956455667951542388007365454965125389668984888091801171491350101023339022681724330020528156202071931890537248742915675631395607922975402867381558297180092175648766307783493800911748468957862833462841756003235409009270242297159915383111186470639368199274716960289866081733734921332006401828028962560065616671501775458209410718329375113708594884680225454050969215044371341465154292816834335681274769639317088475391141450251972362374687780076608586554291565923313837328226034830716703410535455205766854244114241799390639234175627609877416072640829931095462402929867249991884041450314919038969868912615241288897478625941281291565465062089692740974365079625816968077970902896341041769784518142454640386232656767749705681510964749532523299826114093750756990375898523145005046386954492776195915679381342891253451665689905207093792177429009988012572607185557800869157893209739923060435045681072626557552918923884041333400991838200958273132932940660586503468675330109701484258027420414664859181440361228920534879981262134522813401290020444666348998254051354313704476339269659178947419237975962033193740782439383670870728140242591870197311452228091715906806347903250378146030319276956031624002119740796565301762210719560267418326752731619623134172538528302151155129390013767745500109949481847743359611978471839374881458109774121827451608306633915050744274785678242008706463458947757626127857453944332942083690247931146398121876177059652927751572338657318575461033066889858832294069943699006946513578530369038590898581002499527232715703663900585000638038077293704757793753201444396464890508904110013575978806204640492130504517351913363125621114691127602052383603170515456943113818642563132009284060819184009042780240799044932639759722137865170237762266523005899750490711004522235270654384864559422072883446547820364624883658377099624435565792362836041602186473343526770249963754327100144237828405641434756213029486245500655276551533070931415295089343696511009124326899685801591788984723004725089579958220664017292308612801725167922707099616326412619055583304490948286921923554763744320863343789934459750237862683217786207783264985736536278723443427309523549704797419847540899522043539853666190170857218742730470640392541644827697779218957903289735247898570379082264162715574620830527094786758758139987845696631364509888386528040441677552238164681929901687981232274405804263066781792434623109902756000937590389487956024029099902812138963762361583646412281270923901801607032155868584791804398844298520601902899044130036089646559989012762986695273029080213023164060075867911839340321652612342506047782839336207593959151208855068401114452227138240370025445346840728110021907213656966841061898240567542733202078109094971143324226698062590749721410272579417368566384034999811152376462251119148778597899912974435494236810714221473636604480850334901976299334301987685733102247631580911725290676914684606191074279210778656076287293466169621068916848318838576646092009883899532083585284826765404211480430906575947333270947294567887961870178126514790169707808236123890161098934481033141821846646608711427513940007584028154396775754197054468328406222856181847872359796334269003549992816424971928691759169090239832115337105319141024012618153868753866106672212715177673601581469850938541500709939355753330676688039638915584525932053271064490327274413400115300500847710163160283758252430982400659800929365617281529913703996832971072571656302865737373428099992707922246364179635810743422272100572928812115487762381095929757604050347252943996945378483563263570527502792291719939901602110543161193595397104817664735090415162264385708673098984888093639565062677543750644345336212660386051943245386118308177568255586833087735048216760291903469408906219566118919970323675893670146241265319478600618339410372922804398306513748251722714260025518030257106149587200031095909023127320605728184029392247872439863431555677137712142946434286233185540066591197519207014835415143944008232336540823936247956619604854509732000893508399466372581029894558260212059167514674507058490409551843420340697179965321973793516182636858006244056945609609162835897064460404444669620136511117850711135536999453168943827712935994271139944940275969555048999027950400893406679492590977478852315821757682213405412047410182954648066872066684648266355836779359561604077863480621432138041733701008586366638274758140510964160600805858173097968281616987886815286372006591555233957296830879495785291467854667381839158228148767824254228886736885968836951501265107591073852255597411885969008553066184322741562841681756806257912624290782512608643857405898746920426624513842452114220501036351306692687762232666858744466353917435356121347573158866427056902733856847933217544048692202909508314778966584505891394707175262316939986869538172291989006398814769436825896460980720800686096921846580548934289406148088394731944580096949620610179834468933669513222624932827340088059939015134535910355951557220507164943878210555194897352070971891991002838627729319027337438939994381438813565918791022557809686689096375082675628727473661638248153939813277892505796859926959245596879730909698126731008617466515183690484699456066537712377001444492780537627380814483169589509434513654219515273266989698208533193218311647883104928585655749064495668051949572397253974477118060873292423027597126607123891380732562775334736337867939910671079357409610233558729875800239929849009901395094623125336054979456641275051086432235398182442279100936104295657735707430216301737114138004629628804206333992817328839678882908841150441474870091462641270512475972884412717999071121746161459423236209809562711141594094343635258384645543686818139074621870482797092186527443906315533197991832596526631824087772239383191634874881862242161994077072269720044863114759363819415908572237918430338482844317615681912582738799723434296211582079267725294371527655508935714548123950788027878568218554305337041831288186134928760391636587276182357592960663291941856362131230981145601063337899675336281124686618473220317081412171729404189611211682449297732079226751752335355443625135881025805671122393045611200705720803237745755815553476154711605728940271109243919614876316165115289845510725671796652876084836955533728411940255388967077269821567011674084562431572720333104725769327081605830388853754746003842281577089760506980481029846248986293293464569267062900314745253911944990259804900947418621862546849617397520612484804884376118002895622122615361136504449794565031974308524701432422911337073983767843737236378268046893606431316254954394906711845423182843963914441648813897423454895063953271570416427749384700224532921606317760043755938980384708104801133167922050954264611871621395166328364295406997332834947243251458247049123415882189200757314673957662823556923752862868318093354091791933805927656414180971833469946450556000963577413283108159116915879929117083535622356772425783188086820607969263811664554694572939037570495732022381457296246083435022828867350855733189204066102146658673376890906744444065300785573511736905804757591355480516895189518922706354542070917059048245712912817171685238955970158416893777512204321172587112171565160186347989840470844811760806979508820445945562923687575536645230710167805022950142627823021497468839208470577936205207779377022862183749525639852877805959602756007280976919066094474230791747680431832991267270011374245096647255891576573993940371278264076027511635732748718791092633402590925117034088934999542621066811299306270366672614598775446504213369054066089583752220243190094081072179775531566030596774822846416755101501366095617948247603931743771479341495713131942192628821404031842414335400178857822954260366520153247746300872368587307854014536738521811799060041547965486645608687920653618859317154245539538460346838117770582815353357098926876736576869662555016403101877986781509384540735749492724466490140052228427587429592596287252768044632557359232482985288798865726030308675442391336529474971054441843186586367615473688039351958179397347815601646528566255671113553849558160623778937876464171318727246414707328705990505735143841419752310487094870060501556545353498238023109617827900544537108843909429613212146500890186290468650656851737250969687633029128247210607875310091586919931620288136268607264134687487938676184118661638682832176511162687021415490709226358652352813220482285304729644887146549048138510110463616859860785079762054633912501471380830595084394309724590101997207460522175989392778241694850838801339534119012153020840374269512281167917502235663473303059191712322730922353090597713404676049792039572784475785625890672048130680630290136142645723277292134193540025246308827778872403878060188075846813431713948751371095871889414365334233830342432065487474652997756897893247383040930874766192359200836599058819360962463305949518837801085060554113842926807296047212134026632456723617149954436758178737789461717560893685086593780651752516615112511114708379276515509752671421974195812842145642944783108365334698234736931460481733642434954195287210230433241114590292377738766637159999261071914607114598543760628510945212725414579579975050418465056434537577763981171121212016608053526361675015732933447836980201687511219686220763584367038097250511758343669620757419971361932693335552140387550190712761802859943266142978846402917377918217227603137840114563016500474427867021414176289112805480641552654285489784014358793153353855118961829744297444751218166363957050853105513346698158639485533415939820569891678005584883990113185382581893606009564127161180568066081848362300817190906742233061938255548335997503269741430973473288134075863174384076870917795323950119187721933428456468101236705348014962810073718590049657357663023526638193538067112780920560916383667399971952419955793888456325908841553378796937047993826752301927851776836455650819320331475505915522513159882535852282943234888860174016798641535820868599938069888873309792609621706826247029529289635486805615601575030946529198356902853642263281868070713136787760171331249144484299554470469383618246992710170630244231681131320632856936512101607633215567429493074900900245223719630914119194588057239263866777426147089014623342127979264895718435672320743748844620221353536296873789264430200389585891357338672176001551747880387597012048677232574437816800559483574317763286664011966632735704783700940165211993843689602196748283861837596301943120254509864465171708765129223067929939457462265479803004286132276406810571566732773615503386242519841250775519459129322240857820769147010430838214770338621719672212801626146491736842691046601480648095737040718626971985969472656522110588374565680176940592502484299862611335435732091436628402074288413852945364866316686938775856087731241321190761832297053332903510968412880876929119907208496586574431361477192529361826868913651555171475837041129802370342426866074168910615322876353573474773423694862227771325393249678448429812564065391076940480583250597628863306633817199199856239889797142147726591768086570816925924462185556487414100259407398485820180219000959747326505274275948460285501794396807523483881942568895990882537046210633624006565319286456472288059838876238531594344457115128451405305974539055075496647860120178474212903146174526262989596641976462848793709262882703775175320672527371707556263363811642132049804831138942463842645929760345018963843326363957375804795178795776739268293694714776161286617515608777046043995579508311089956417301190709476745682391059680843092375264402309463831116521973804669126105113107285311900827277615421677611902962834409685454423134287710782579039254931823311610123514219017606119583215563713750018630348666453007714814930005907413850134825476333662142067079950064278504300252606310607712046993619351206493319021972006381803412630088915036830972300889552186860156775393109693996237679607188880043940333836987468089423755223181185926053564638104735983194410906091659290192849737066154984041228263421099639285734926278675202985061260596622546329260168428418095543967424188655238398914916127032987282104820308558477274481451394731257344493073212741579678988676675356629639977857095657970178550912959909520369235468397423709485051853447423033953465843484966400369362348756386723982382937713785441292860681151135447901454783612410342707839407205750804476155432344326069090624352269980771985108896369481323210600354719053544173050764621631364131092146295859076317462626076145502526191980020938665172937732488462970175338542067262884605022853225233187698601480879621757374039165012708505156205602560204204241024241946011721282179212393694651646260776375504430643069590245298305950532862214908512845880630073889509948378628961611310076757489587737027532229217501804579634734901408448029740333234511260898251538890387361261371445503011841821575546059689390500021918510042618266875273708262596314366172533761395840471898221550756015111476508209743243904738735601372391254563350919108045766852151822614226417284075459887538447117303258400754977724291156481282358663266051776597812315026587436798663124772439172327044504885071668096796841527842928755345019933976416208195694829844624664755998581145512246557693222156001654811511510969631251063642976849009456583679884856544324676493148988382027211110191489362981718476131406322942879676490033427293127406853179409093083132985130527312523136118820658023448592481075104500312569653000826920279568619490919662491992109253831220137268871844047542064255801452537647767317801742050723867182271516099644876652849706040581084931952906070624880149208654926683136217816949691979931763943659229891980159110860687364921995505919654470506800515400122667533517384920297994906556318347048742814896380986345910962213460570090190411691724679844664659076732991164276851681205119576962640848747825575108783731448563042134170628530897284332534141751205216586570254392656401737932364559924513163616815664510999200479648739819690411659757349107625456918688228537664482370848286742894471347936244291532955703433159902748738979199125256255807952563421267364633207639294005354425034660766754448532900704766397714710274370952260277655991919391681276969000930573138417153831462262792255456301234537795141814442895880146397243297953011854904056858043225711322992600493110014834454515980775803983972441549652275340289082103781863373851233817752105987422805463961903519540753444536720450114184228679450628206908533045795333625575723031572158145579142194359773117693585820094023532873857812417461302012967247686308053115007629762633011992965293873246930886563468595390458381156563571367467105994156640921341412193228584965534565499669087901242982133799978104243619387539897702655142899025105685365566671325808460392776183219942832655074017123611457569501261153367127931605801100751638476507907503156727688471739014102897661378379038934963981795608956219322519940101447008984083700204797969926536735059085127592129414586348173850945931559618987146405577282335380871547879329575828315339275154431653795304400462791951570975895998880885080421060126723615425091532017434257624288256898635528924517250993946513769844826601789508587827154276815704384978855979839120456474106238948378883925842589664036741515955967688800102759193559543748446717226585449564756959854386576825475728043431444669663269439219541658986653235480875965621720213786046933775094019502739006534485443786762015564960060330276280445874665818176813612546527986401816550775987624371741570089843880075065766869958269076726582608977405418600658741544756181560418852258658110422697369065249775359822276237788425562058573846270626071486005262434176496759423823357956224183625377268367209673369880009638904499781573319391598432931735539502008884550311021003256564155314186656082028013418031837687873933488613518553085310659228480531778983292211296684921387124623358757133096967460570036204062741290093865758963578163644395554831857583332883002657711202953382408139437715454620697120898490496597916125469020555500919263381019602481285668037464295386337212894961277780798679780129872533000004143470326535985516938364154679765323904418905341870755792224025378415663672172364592369838161426798948774468607886547538785512660409955281115550855166672874917570381436622334208018282992809671698891184112324390996691499286430998525957143277410729345461458472973301238002924218853226304896160391950698842189114104665045004476948129574564493420147911181880968203983611417457423707257087334018548443819681017400659765424119328058510432256391041767254438721581748136238633681644714490421853790727554642768332367472047942092016145354215211613554805768341457246947908524411974349084254464485996130089115693345603242874226285551871306003607654898144798727939031638457936436789134956834211953426186485322917876673696950794724563789124025036097492979335428470031068661314324103115271912388150056953682391732489422363307008775277114454641961266436371411240154642911522620934207226097131227578996252616972600712528003155978428422685816448431311540477464786317457622197297836280761334749329521047417328310916903688737073661913876420569456682969685045796963142096911598595235508834285000630685087179700634187867432091220060238437238773526508526107794920301675436764003994297174348344860999520074777183781275960033613328052561941201869112550942544646838770427717690852969240401872292293974378874420797806072825556441551398192008079836227123851541914194863780459544280091994669439916713928470004264279216246920320137228671147556384634283107943032002608179655044875242010831824377316662008077845178784128288583370514648199761972621988154431091427302402888315403013207133582757828071830803054335673044218447405860051587001237449980257364405348222353656094706209330831294273373161321197523393218345524620418437991472510289158836480804678725237451512862556676103113687397963571965124528138890979817835772286042144246293739991413667244927001248142828141117224537913150478473497041595846881841990990078303558773328726507217716792161270586770807634466470388350509159666012292027963732125706260006301570097754240080182359210382301741276006415038771929668099019274679749420013727292318749121284604042866638402149371998936888924305931347569624452822698127201083071535199206469697323405011335699373667532449264552604351737789665879706352861333671900667026034753786081437158752240145052324935299340535348649105987501414042319287594827078398355897399376064514999533767896283993056983462081534491482670781800308467695343114968730187770486142144156613862385065268053678261805184059429694483868096115439313949763375916766540682321848866789786575315790916977724182944452019963599535060617738838441444581849335949508076394033346627308053801952638509746206849832819811423237654842508951706574920676381990617406493899932917519891712938136270131344171975851735443539738623623288358744395089645232874906950560492599663555318633298918858266415356240104232361282731850206451893968923880387865425172594629340927483127501289443330587772781718764285276275637529914133187549842075349554939179812004806520607402381703870718235627946742307286296673774216271486150775266948826817947698956861086968502272844913477186545284115884807953601877541590815621712959653879401560195595666343449137556954054893986467957988096602026340027735937649785851376237390859024522677371936013712254532053146220778340307554840059734231252441168953612068456145955725349168382180854843822616990302078297561492401703674007453968668666904773691144972381449383665485046709290785015254572563238843120219746115655082107027181517372154414144232460822807701797329099406891472895395784166657791190827180669461420770775168408924818636994529772298090359110270800164426173525683286056322135306947805096031053227533379903830236540039965162421713375499855005124636855836840903981883124765525422651726594960330802760625990620212597901153669790491542501275113526429277326338352131229773490288180319121121227068178947740769529417758620379209587021417258983978821582965811044644688971671234169682843270991661690125060778962331721022575175141216334627040227895085188419376835042455931905890200299146491646875229639647386932722595955664242534669273263118338382774703683240968047132744733516270524693383415384169110974074204689999915889350005294329626027667631179609292120094903445452753451220754304943629371563993875414964508930622441771143844745950900754653163104057770480846252284954257827428690878014473867934133296729460117947734886146157311340771721291616124813211855394095768252721312592725434350775938502132179561080287346923712065471368997104450877315074928395036050765686105700846100960684271858101753498196078028535895253701543686248685116591342833512059481042708104844911340703535316452451213160000301660053684603655166049804619363143055279108012436668224435438854444445508499470711770114835847468450739974902535135771737748254485404840480471196312684565357088249722241930976584378473473886779611920527200923174741674036417597751478852562304739735180461478511576539487527949410796304684293663160298460558997541668347413913018295431566888409474801098007461086640144522464983574642741251007621979558611415031342035768410616107507178878137475775429479693368346863358131331957689758798077942530003309447428337462768310843898754152879701323296526059548385756715152597915856857187027178047133189273527354056367593525444991517512696186993488635763658961156464431664160262802174004412742525198133041703076499896737065693900643387613065192902712324861010450176819292151496860581792728949820787513235945665157508249195840924174814501232046179265113056419154755939262745952654542347388812370286666421783321997089780918926095700268864992290385253803996169029901720895870954152096073696452947015902163141345703751295330611441352829858555935551033738711226256439367773819735418026058762560989525862675146270177700993455872208078619506243126310804526200566866091725920535431263757442379215538348266515285163572300454613368857273213239518451718817429194977238966454879126176294242241027849515423715520727076986242710829398489056894194312355316516841988483171574672779642523692384367505313551832088030442186954712575190478219384230103102514280412381981927985634046347068087226888721412509826967745588906550455674150851685725150117970044896079134141813299836928730260312506581655588203190988112753717775458040341489900200268480946144896535667121256526425767340893439589750769006059640837537212849351003004840175180261547438299446969125994947066666159163753104344480628218003264882527966657870655053262415607052839125553197216627430495125478663603177382047909267965261664973680575133426958255997423918239419009310715992240354704538350982047745499328270264305035431980144271350114377941147051739125560937016209700859052528184777579239711119246023087643385994378975797278971646887460553995557895101303858532570092879412543738019673189261257525814530438046393223700313513433511861815451438894954580315592702448088256625896312366021000639674511057994700193564555690513455825662798965197295531853407272826959381162336834396912925580729996020190872599290045020233645558116399887733135411111839126580566163317289019175626533964362240120851750416411577621001354674514595001562976998820150716533317494380948998362748704358770170172306227882488343317926393728161947114258962109553175712807797456584070183285283085314551772704109593476512867699272222087078315750987633628565720153009956015982752500044836771534273132163561751553414824413363992078283663470951059380356685183117549843146789295903339818824479556698161302267591300223925191203945721328966816583682294332363428191188828674674061920246485900306706195471891946338258984645116445904785917834759294335148482811804558634934633380216189379807430822005940251613240250601714967843687824306497877866684781721913038636621602147510488452407806024459622634076265414741029784101173797908441015430070977885941345981548447430405012039820942067529424161854916359243874342949296599433339792342983604044158217287922583331602266202460992525963496832939629268150505059277306594710529911955085537505591956811021524587424709461228264406913078493719629259057173473358139381498716699450635880329876377245939801951744618959040860554294697354424423231254322346117410660769283482915502101955452822012585225200071795702478832215633806019439282401937074537361269288534763432344760830445334192130701393022317799635323508570718048905355284731553625444814840534411745963736828863219486185000089005226983613231475103226893987958769097903085422665112926409297615364412973368494878682408902310604297134168117984966077682626676225736347786910537865986499274637599889482383154735069448823086769664697476645770055288625628351624503746338422044343937674708528303305355309501822765577360777053788714636253042957519405421929826423600322308263545541711170374085910819903059011008598341695323417598096657351590237908151779621116494853867471209317567661711418743664322672835146176006134810788880990157760069697928377716114674125587984679210142972993519337950508082895362978105891262533098683149475232570256541141199969201690494953588180570608202195813577699679369589809159046719590021474554427675234062115771025651801256224989105554343281690291822146820816058011247257445358592613490856453260267694080091063483851791378963549083823163410284338505639628861834187813164817921583182299402189625721432393118728728020234094244816011118764464243208232905166736344568498198157947429382310888791040534435841085256624886226439426941848125265519586203878893609394576492789755614949640623023678770418134265468928423336175997512770336347902394758902947266191408905361698072283889681627176535838194034118707949013128175742457306588081129385202177719831115036422967187570856104408151710371311044468667617502032023527116958996442070078432464399875062507796874025321481430617693789723836797313131995868638705165182564926366539606349703472851458647858145630981631068200233520935961297013687433851532834222225033465071576572250852449409913212757548420623746350445195450422628581598191913136184604595995826534908316409494610200132135972736152077762898605607240426489342951444657813981196549928758485139508168327430794407405765987186270236252335473668008625572045990990128939961175618447445878377089771090515291058005566001669100811767180681686072385215376558629566482231341794461363214645718826211470207789266782822797864077422614841895730112356032555132914677869163234076822675026431446325384011308971179545028054856139316467412567633378173875365753514924861346832686399688489928622112606945360183618098911005780399315977149025020201905111781237734423192062605281448069935083123577500894797627133231942161737279935470601985934437232992327234432422828972496190181173576128950710484924181307739438542270162316203266083505577881450572765763906687601712169855265232351411736010446753291931726621076403763420094942887570126296592398696370121879425620777154064061992352190759796229951666408823563147953889116126509160380122254694633642887658966412835662638789698071966663865282526640239276614705832533493564384941067971789617771767173559748585429054115279950081648605467092487238574920783503012941099844786178086891651803946540362563534615179329965437111697289598846074974566355417570655066412905488938333201775827187497838861785400267878376670414827403187571495993734043573151002911804701279027257878810744737184652482173134668649753960148619112469671107794854257687763413123113611227270234042518207044751738116075615841675308144022818537978104983926241307472939855615041942531249069915121759507588013881267336089182698059309230758221716660661161006845097008483588102828633083088040213775946583918754731512856797490429373748049186925039076332579422672813349107398537931219524609072904409757551435249486230243823845945923203231145236393217512506540278955767383094454899860291446819823330180473719787005510517467379368355172457777225165239203394931238889629277262011392706080194396039899064398739290395147400506274952359000481833386160317440753179863155992369580340252995297200005652401534747245443471762577059854692371786059268073024885997509714785152412511468373180498538862890010710903682369103873179659676394627396310711255743219927227685534242618296218079183989613097497690704164871621394753120603983937047210103800810852490552430660079045599371994999462485374881929994342364639886411602608628477190430933358357311392854429023892395890744067408773090050378695395220664450518682077443705189651081320291166266454741338513213379281220022286296109048614148817523593723773698068934297622922304452686732642198022165820767235932050458353103635793983250990627262431894945178705994352306467375650113340318561756369823599442152519981004501808885042934019328086464316898247450704996135429571514447451705991064456579859720391617022584675358171953351783577639729004789025954508395732888377416963414695148491708660482060494231615856756298731963882439811351346751807255257527984093299660797797198685385548218024730388303719254578258611529697137108718171285820959011949796393364320096202158200737399188702880069274891682548946298248928062848942294794732189738820604356635202243831275927614044591005519062934604234993014721055460343219685101347965758859628067427098781210437048443953522750376988438646121268426340310285472416175687089141593527541379767228727443383361194805187490943678342628899040547291473725173065457995800454415445129199220002681198128292464510370154593613691391400386839212204154116063816279133236247894251435958363872944985582720424486382353176545411335684311583086198841855831078440726259914889121205878647372495609770607387774394582566945019269027298087013632036202626134614602560173399260021015451317981575480178303686556538667073557525820809147003530977378557403283964551933250305962228023854281115451956269397963729864054857180956351207997631797620937423730659055581560036989434750107815795763490754102022243006185773400679834514303402847450830663063066101197878783892620007712817706843244654994562691198136849941561670701466521105208934224167766942562533585352149842769485409676164134786269726364717130405039626201455133875451685017427290252547795120559087004223160640336659572081328013312973286177757429443946421672708490742794943669592721940019305079865496784377811204949519793170598929161482402418277455933138558480144859454972322034271278818071535285568373851886749991422833227007344887418178750491842809144721206106879543697603005545791918883797801830935788014257032941038919364349941058072186688621066698121914123696946514923683628700639204983218477531900569746005747913271417194770756128692326534919390632723990472538976080651601465931192744641345102239094957241952232290435271133755451196606018127386430249082041432375136248202106590001482438079127538171029045908152193195892004165345989956007401344938609538413791463601484207655233777909127604517125704914030708054496604336806649299352215712331098328706805049087887653694370135605690017516629533219027986923190129300270314804243074492944178350141986060664047428789270995904502609791294934502181374834442141793682286719952656760127070680979469072873823368661506434174892041725952094474148815779169648600129904004765899278933079469312626303130969663670693449041431763971615077159108242719453019250353106813197845344416117817581318427090376485016955108554002491572515184835591231481704092495167912294131804046905162935847271549822673827277025690943938431400625029652971440599333068628678686234405415440102675971573107509887506270632764944483497438859164994497773166416045273999681849390495748235501410232374593500957004346414867651609460752814120637135041524347430806607450728840833476681813750982417249453796549782830684827643143805884999028786439504142951767989566301163101514133611713243075812515244090256693048499102573376921169144643926041519579034529154592232365701493131093848619442995416036413037636607268062031992393658701095702284500360970144842280924875436968987841014620286529772160007921351924153915832748999004905570183795919780270480875579560062435457748113044314670923084614573507874319171315587474831552422865793232604238759041451631591740723416019710175414828514983902285982769957807404033584115764358892381120374321824435448264085709912293838064073132853632446239115860303144157052295038419321145206953951994105305058082281373003417713637242205590402233252788949657622179824480398868268448690066968144515397685820752709892801734763743492508655936674073122692792676755928332421165472128526066913377328665565596355177441513411317356747423618377972497133041177422789579664604352463351834916426133158467538226386639490075636853940441908082221844655091381558681898143549681845334017836440953879171167793636815738291562105516576522441774871603781490852913854317706165045118341096510641428643787524118611838631659184159584896977515239948078291841195107831525408706849818978777745806413923806151539415719771048944235016002424558715474844246329519799246883900616195176193938163641743904423844079561481678993781410375860050068779146082614093640127266679893935961861918622194299342750977695663083232352102190181598454276506390314862124669017058905902508349678493938295099814238395332626218615272521652626508417829596556371462200808861942746149457124252761534088157412514518022665227893178754025882949336759733111704150016777522083123415645408236233360335927918375971339193041619776304628791405991853113266612829928488366472518415949741104363811939353467826574900367241959497604964672040607322418887950038467943581359092985681259105637300449582120425037964947203818749487558838710420624431004546968638447776054228933928256479029834922575318698719874396541554921258063117764231572187972128099837178061088464711405511516970440524826842115283721551890154652895221044635085564879744818320845186728473679858157679994134687125413391075025502954643017982328486698027325622246095502005531746536042088030768397413289811522512820699220689379249717731179380714173014983613200320927738451534441878054768326878033271547096654564298493990327538742754791187408907678357600542873132368480160539800098985777730206123562964297423820375346127814943198904254479255689485880982857672157447107035437816177254983899963943214734081604396951134824688668340235189321399593370562173910176716303066875163035487872338426185124319111987742676121166128067815926581091137152494463199055681185853544049715267829550007525029107423388910546130890097895270075971491830624674075306530366650774820218800584416699171578582531758134490241127393410722160633716895985304526627091503293418274668752271480985034100348735501272705210449928814113847837622322268851713340439805695003068967918783081489296123193999855670475074836461238070025937047766887344119366264925922916408094572907651781307594941161105352217740558415877210586305406250296864300612729748259457934952351324913181983013520790147738398322669146380182135611556278146966046732796304533291560634741113298559096633722642718754146809654334137544255633286606527153495295124036254424133632796777430306949343410001163710314826456101794907477129420295189364012096367262399682061657365524616946494255216864283610216195353237478951945609736028792236510762722591453484050069712154012195458944428686264174935423607629230903322293218955501877284517838946665164525775892357689941346780881070986609877288873047651177862382613195714618978957891871478432334425423730202056547320175036258403509478631503998986218991169174838358575307205581456137280356165616946845113977205378443902717780544853144216048591730560503501123630844851995489681499027459101233799644999290331922626919114414090846858665635991295883584747672287399653748971571128260262760096033000340217043011003213393699625058170365455915697493307088252972723626387467445574275379918772474542621891891076173927348845398829951123465938243224051964759199418378501688313383852835998418220320844494060056835311268430514648443281773884881140959730878056288692954271824191138165203458433449553083639654866588275135856526478360549802422851614417650670896121868710388946484906734495836139542461761758492694568558113979582709385679635407833311986107266336081518690972230735116838582304607935838016595728068247985240947918958437735761385443941385689848206249391070302214736899488146992599351547041915312117048362357201398815142340118030211234741377507918706352479692933787684870032547130714465643792639535530327457176196497608933134323439249788683666324721213033465721048484352151851245166385685677484328232582626899163861235719837703251147856527454424937291514717190568325754577772846286533126225681323040005753442142920338338047647099546073150313545709355061463939461037297853355914576249982268904747620229646582897499013018286765412143986308667271607868980659387792360790059938507049940233880731330698371769705026027482057574309813126280122351016065070347866636436781882225712152761153169926976481926734075230784124504717905449166057795712617781425304968511611873637604564843805861869895000472277973055429840257874260400803059646679023977081576974817649673744846741206634929093993304114540981305737435398232577080191207790621620888764568086733067282774362662605770559642721158774843715658810924668374898943820618851929398824669487158087175693816174907759772914432365057143529866451952782342211949962774560274510081592738406601015471928382894972674126971677510023722113285169598926970798373259757174569693448345395618411538741283709902240954672974935474093446304351912401774875477817517653215883201344932889527543614345506203062994501590228436881326132165952924393272226174418389565352759547251630250609137138863635816545803044465197150550279862048351916991685593515767196291199104920271622698259631224001582152550098747875297775326637561415852223218878785192811016794369459445327412292870729148319184211659996750093868119676256372563759596476595142381224399448795916444513090576077619515595394759659636098653896905751045533430905202637571761750955592563350479467447991172282365755387174337325199156523393162981747531390237610264315522786855122703641148665106064685092756264797292392638862378901531550968590434119747050772127506076539177474942815261216405782733362362019276176622135226266852861748055775721334904956084053363286696663421591769453003521716327697552216525860912035194954344543464982734312015476369503652479030628398425099919933300338617435947785502616000809817467485137716829946645214819764847638632676379627534177009985932712418677135423178843442181652470581937163506656277951960961502027323103960514488099768314907345691968899431098151473290083189319711406027576222809844159812436552417288057415809903585924278433647997511183489437570422500421373550304685568544349899966441274000912458442126167929558276262418737246835096629335152795656061010899729749674360076797763503627666238483540064676982696943568218794806006185723386376980616689187709402523555225622681242321423578322605115898756261857586384575902949411682653892098493959682924795429322938248609672491080159749999942804246924167180637422737690508000105213070676309385137989692290862096780042902551568583882409881970187171616659435500156838913012312096996427799228414121952649706220966138921600418662769754709719302431766684761924430060773271267860658133103142902000464953377615794808252686595980066634110521108944320622496185090183860785511151324050717435058232467677388260821433929931797314225422521989314207204400061236824427179227110469539927621788157783871340758927907301540470738346727739414087235653532431096478666101134589655484055371318463820014406705030781206741827961696840723170432651008831955614974728601030509455341852742692657936996630773662034759347976563810334778652475727490907639018170173261507816499148298323320829274077473200685112845747376633476421348324064483892726235942945926324831590009010540884350653249811076478454469254536292677344897454163705188270231643723565410744893260293056132139265765857348942307340898760722016149950724573150212302961665383488143222930965537783079928361770722371126636837434282315891040049283718939792892406393233674684696802708000514695295686186970589787480079057328165605178414484352789273297620637963412498349319244966918231307160681357292369471569412101156218234699202080653900146968251779697565763880325718132208988914982665188742543880362588087142035307562303263612099706667350033267794030133528600305953967208909158878938440067143621129885054496355835176569858902605625330625736448105880703938044600094395457082058654698855954621219641498402218408235895037365382442528193285407882456566780097430659734056126183896557468615369360976688420722509217297682357724736060322518666872007557967688772137375261156281349877333652141803751504289017836135820317986886178184546403870633329604172929925235752682441406414745545686619583946546563855119410739888978243031434945596568858369203539579299193393889106341517643948979004364919767963536671026467309716195882446322115440683355103158814294859220865902192942594609058099550373776805074257846782239231697178398965534724185136592434854326245880114779538199257601360646503730622040920126397324621402071926613400276210633114018113473351576160265012055053343717871986352512284521835438893379159142505366906868698103045571331318480341539516122805755265460985824426650340290845673341871195018747941135593129340742479155768516198610217831855111838531566216414765158928371923254314115690132338206051128628643783856553691684886258311602720511452653085574333322693547659511466922043127272111106728098922812278674005832559037623323753176368634562658039807771480463625931787000564818258196908318079395354054602250021205294321216686816164147895699041852564383004901213873707046910346383789752220668228742297435497999937168294425688875418044251837400287562184697148434037567325628331603381975218547743733001890411440222585850303400565949281601971129497224382894946727832507884891751969804435772132800765045901172441965203613310192559854855934639966442253395749124919768988426944668301788415890777267553278285180039078226328761812514765505174855742149558358812399882880694625987349770739942880512339004597634001874543875605991998343134037203510948206591194153909340760540616354840395011055200949200521613441816152631425831401637865049542420280092838440911006072321131405216909888989743332786427320514391902584277324783385984276462174608132644188069035539262494578452489058800118809423813681671136798840621752066830866267427098632221612717408122482827779195524466362892469511213281918972688518812349230460826165193389259914798646306615471224025102378392902447535295038736798498540840933654658722711652914837189660870257816136130241917539126499795542973351000645386519321966888324000896573343835817324039633258886524184967620453914744996342777236536986978681891320575632565912866040306789449841957146714643240183548130122145764880694127728199005233043990395936357330348030182128444126044567675210643155881393208484854635723368351586843697979529712816282496806611651262386092622636784700592209592770483568102044646533625802728532069689601739601762180849551687740111571644082757401894583718795674176609398980987319490310488659314859870392362110471723305610266771292472636391674442256941400291338041831154008560434613906315395059102780498090814738070135510363672694025203976761560749227494935237199539267240198682232954583530555907742716421862565278518487609021759360333154212878582808843177893270994103013058253568506467348643049832606657556912679236201702312364268170103905458101801910683017903869749237690285688187358883687141174318785537099393968955350660852035389252633860736897390556987034209540748046168984170395479243774112548116723336837095486033179301267942961821862279340900703884257762368260402115359719836694298341140209565362424278536024168883944355777852376531247159079555071587349982065454190841257588947062097783416348179475509855443951063497148532138595704315611431872563610056991963092160096144568945593516718248892109060056114735910939222462448692722825790059996416695909286753240552506561583393159930828727866360996357826884523025751828131446037146349848515201901429883042273529345282155065287253926250076458097660040402560696662345293454287539079084329921215099102169872118377233738057422786646453175457156514781769557247860959087811290422913616944086022708549094300915940221001645205416011653022737422894763719708341750179098620922760513886875181011399455208327452894596617502493948924711191105328169588577007901633186355723048464854225490046258143118581384468575355374214603121346238315686228140149631751614122469491347093904858819560699459276027128728872847925575443181903643125920014116604554290794527697206377756600634742151415100427148030849818171226877522052258169050946997176284284110696538014439964722684489916575745749441656326474556872561166020038092328555389835169335186988411448297202595504788300714691844025347043344913228774849934590669411173157017831219539007072973027574002259863486949219052434729334741445815215138312189111244413664621843752319931275032756313030549094014506033486900672910328210032939109163635935963147530858191732012736213122230113951376759259750121598425751003123270518420743987199728978224675539850670607212754797309444528102986559712131078522263478693001585595499439515546344538426423299684789367620107057437887377558472841353243404449233207463585391781391660126812111081947717666350701535101407727103945806134615519219018521644717007661256963295311544167015105778477534596885159407662474952350080605530211868234910955188971541080963694058162817396347803795087925458453607221754978083612784057925432650274208586673006416398912710001800066497430555183744654286528775469032175162851371106205786133055364058644872282769465870708442296849031177709543557380902130364619291061464428172344356589799520204393508028744002178101154836663750762009248911306077463318448616106333800257559955632346956362261315928825406518481506813331010027829169637429976022700392816566102123964879085739079817317359837122834430677689342499117810017509152124880337041368571350641079140288865311595864211836604950496184573173384587808067487141617703512625218605964593089581849651727972205753070380185306864306459466226372986112299813168145437339211525844173337072081009145726312894812632890039080308555143077315071120518521612996316277396219485025211142387328090850127271754762597850333630721721727690390669817276664125074504960789903788434350245998150825132856934863431285842372712335452683313599291879787871699285206828707730492494112429597344543792224647897304844580240264766851351483613536254643075893317729435986564695569309803295185166577535901104788750100619417572557293947256249771307318815418203083169992575384469408005689282979848464865488118574102187381268999956376647992811150208286457248427741834233141159847237924011883143353779864552252123324816970013984952466186071245482886761160368776434589823053654370364791424174540874762631562043059607146672478261757960760702488328936152796564803448957661708368540923000385318402765217152234870040590096125093363038876203667379346511582504373295711013352363576661168210927412301176551577020930867108623219114011639068941197972801969216035767596403355670517953926542035842364048677225718106817582047446024829362851979411385133334559569104055947635433223407583964206137458035856507008863732651201338069237222242753721634639998903603812658654505634773684512315884095342564006785752180855125728800330270548662296180565627994009560287419340754878773023661178260300772326590306219416689182376263063220210124964001892950734247432450229712270034432642298816906994180781626531445560999653294198313007991702993380620670456438080711300003441018461823834099238682518626789790065921305013442918186619092378145693109684982223941240530443271504608706160191389185394741301971907717949736558736721687835661101293787979494720030893243621144613583193981205224317840926821742598642538226556075915321161193150711991710245018446312922943371751009374395850072819087357883985829548671431788800693265368933938917451489735639477001191502463959435548100949434691694788034334854408441804111341371499137410195644721420539515040374954864981499165177200838472968693290937961619670287259685650642810957614541900068789536604257966268663386832100589633238667965591573225903457058805841397763408164721725501126493581573432126782037982564883781890624235483985952630698025956793772484130951243209168728420619614534547563555557450876060875068047244063619417492810414607684442620454944214050623032114395165767293823500392773046707221834964975724335165302329288319924719651808440117957634670278207105876661565900387735190673646916295593833887275689751096277566676694685927771896230933067675974616419395824146407538177509612391402150433133813545930072540499187903873958503284128248155526626351745878086277076854127920926100195606790163755176356090138860925697634086481532227535402857978477207677976051303222262185165078909231781810934496757133066246446542855870421856628530335987551962361434243135853542024739226321152011114859967226156826491765342403446974379387941516119329803030239559745833570124812906965405392476168286017396307431870856017927819412251386587822523993969677376607761961920195519123889431451786183065119597384531080745615594867119747033554346982406391526649822921780729374997795306615926109677395623643047150943281654268166497501977341467516787970496150561388272111623519829403988919495637913322707682895875524006761998866138399256317841335639317258948089095483638802098769269789415972216256397844848528665180767339854947444506851818208743276964627085046494215576748136816314507309156290895140458970191045234221417333829752574737613733047109901660289553170734693115155715620538653677227229792203413525999544409025769036736578347751317397746365964472035813131687960506173284846191899654703617694785587213363893996496626927515446443962171431010129662276305164410542171472268073428320029173244339065510014349705399857321970413002816331898252881762807841219916085540426206559936353367492294801954200708061302770075384312390470034591836262537269100476481211299071895581571585881030226712997560264918644848713954140332267553566847558353316320552713783510300750199250799872008078863598800599151064536448346346630089263954244513728603902312496688206757500142373059991710577491304284027951618065989942844301044291749228301675121860756473030086317664424423919071448121139205670431812223202895954196343433311104499646587825380202673623778042645655844243503994461686269453255574546628406549858272485181116153690968000989138515231536007000428475737334412222112023271193240218136008556607507980099239528702842962640280760784964515373126354856387051351853674670955120602345627580750918929143782386531096994647793008204083867975772256258787508396926377734186753703780490620202816085966088816230422585620128381684479629913316494402636081186347205924522948578379629183215099189693696495366982015420858127012255800632430663284498775567697274445690493466387717048927906007688037682577972833257418753021785728623116144729428646769702864424654706164161158348897839305298225157816755943768579045166754623281982129467019226112683589120309645738465399225516786164795202206712133222219063250607866511800005716350457980698236622342866893314702946276516742637951465266855687213916238826101172861042164007201848937421954280033628293327640045224746854181703187658431267529138870397369515599632520549697172278982785610072549248870294452444966756127840182633382228251107544927102358090357448744176828898915780587077051570976485172632615397165486472589554317200577688958328722531052583919053955068897651107261728228339293871038671820838132567973296414809456810959603157559743790094738482943789093545571037824460427329950218958031177926619377566230592466345336217997546292173149023829742739112398361041863723608820145261896426498572505342175816523261876366219749246736232902225572135503095752416995950400501940458529246183680393485974757216639982370300042705147070868455159483992608417411783186625224858959530988521367024684564926842085200292692230788129951954433870242079359857640253403308236075499174208727203577558448288077950812475685764026469915372380938977293216498395421139652189487591126902364620347643952401221698773302491885291478545105049334166534853633094402706606070216538622278177784317357040864619531174839469725232428000403798700715089788704556698645825099347727667726370747608884469245666342768981159744812554928956471870412842703608363071913120696306085501479029875643461544874031730426666170302512441357170781513643328002690440771355546549716117873900135534154217507075274711558637742187184268858025870251583063213681564902485827858581232407648759610451903787887955389510365134692988264922517030921606717828410862410240900973148678874733246855255605055445050581367634659582483302693020725723409343823046860301488537077229603865954211398911408558513416626033630090620935410560325873117744677705892035051437059465579412817885537183359154569906922363634331947198338602763351814947690679590844898926462416051850691151946964946822949586549058915154389216472530420942676859382470622709833006842609443168402380623741996768680249326235346503322701804928511920735033241175686857198379540363149590441629426902309259802029168633519507941589745928777935015068092706588375738830818105980427126665934478971995144243087334998912911761124030897639050019327548761467455827556092250307224244843011490897596862726486521148122175789060907294064702264543357839007304286337014495308992900550823684741899729964425143428771870185485014329648466851640547212136441892494647302351873036556752838243140012817656371573910603564847460367757542753548521325761586512796430282181121162326395632748169649766935825416436520878877939704433047309226996485937230442684180746464283148886982458545345911466708770389296048918979609377844593006815822936012655033998126681646953727431917866456808443208985796400253939974801485120932085388180230049662951385472710646471837972303131291753882889777523335636117338586380854975697356042296921612984642340058472116771756296754284519581893353734943231942978659896981288178981723664243030691195909722052443004783378471919719516365525187625902818344250520429285907305380187627232631136107639192134654292423436496309596143151627646012912216148347926561259938611325988645479100028584680758695998339221429144426544142330172222849426213535982326789887802978788941059728925716746159270507288889075159378475395073302921094435338257079648123124133710247640204054999985130411803601756559669071597186825064517356001290542929661812396786525595692619689313597822350378226932224204381536511004182824143691092389338863166240386801803228003692363394211984930025374397353551437998784258149346593169836937044735565590031504674274427105539492364569500407725710751950409458392949073083597626665081501570987781829139311148371229340297485516977491060147702919285692785797860056270183833119620381210655427060893608879428929054956185233950179068442031421520636782071440567605092125943577300276424899077109490089576957740960825231253899878607698533000047254240020522276788189599010479511374275007331096793598431499518531605421638377076904247102432423024856945347829860436118993157550243517287579251416352615282805010225506034558070718947622358700625850978050619338974816739027829511726448184528925898062330138178181552259989696191563784438546558009523853246133007381238929921632858567173627192835509686747075730608695351798788041371392416277940572039402378982903796371191230792324148199082282606192552364712873308251541729019540784853776493430090281574258245369567740794219150097166994306778978151472363223353936184330160065684572113114255243764302347599952960054234794455910971628079540967983761756384924183896406428433384356346291096579595472698619293982588767148918813807587043054576518754459599691957351937727470797121859150131757316524947095154189287047310915338949447759993016777315499253514748334062161683245725050879028787981999816799717812207479592676670012799266239299950427151970624427542716437820153497883243584186104366707153415039507699940613439663101817022750008550461081673864427063978394194283978123723896489034118325834182330572727001239432665456503102968492718931662944554813258177758239071065199881964731025274195144121206830583506399170376698965641252141470634194654178460538790429810039203493236206735988287842841134400950862392303297097524718221520626888482030808292783320493746643071138821251426618294015272588430832626644618445325893592090947076545089152092503473903422604671434995471750884570125719702242664897149250643654677279703377703664642272761136932820319849456568139968910829136120546319354488130402045585041522133614101676566392732710619026720370258921282717135582253809718135716934713761815555828592766579523671162373694111958904580952079231459762954067353155092636062892949919391449470666741364182193240080508912078656783563694703483593312048198313199970001782664471210951613848787249274041405636859249250885937417115705402621210530241686179553367115246025524217053697165618180835710960925667810544898576381697987759701874887421155263543971597325227812871763237168864499138318292866028751023111507238496850386691989128277525911236015600819748980834744212625514994461332638392093038479560653995376514447870317424531059307335917378391249267065839539576898728038020498892606692453119278272354780347157638115343703696344492395806433491144248499062739568255713744661394869054554974590666411853569891214852557030282813200570828217543869450593357855117112613788221310986386451947959116367442087832072793591448223207607362858743438908592880246564403249826607591044468840992039764197118717085620018320841550955379165773122585167562965064907849259017176343634999542604365311916690203192595252079377086486269375093470218205193016931561837193807239587721664613623703675151499182557651404648270765860751945638070190371288268619658491146160340665623687331694064715213115972241101470490857460054177688034649196256035227567664520933443021087048206473248691655085719521231252556099040944046119568188870286062510939052118183081492789286293265217463531655927659171720281338634867216144636552447878026587557426285349455640236715877723078466589859988911902734248072744701406178992796975378813562380820517815037949560709912837450305732937331407866657274974030909713701556689689660313363904343380385235212717474636785657079871943215441918284813945158408750345422164187215245224845053927334227640252030560718778751113643846793545592951348262596472319394160105465048148163463534859165649320549828252922000756024309555870232068981064142248804493303570966320080358925049402056848627482466639645622734638183091804540769886272033406244853103985819517462001782753218702368667781742359679384459556289047816645734224970182491550250217118262872646006447529241446236452057229836915637978544273292644873268163918483949354880526239015975803441385412317462421986407719867410827598385801372664670652471957742904582128758654740703253213511225266542991399884268520820621599012397920329814741113548397523056086808328757610578997528632375930696700165944066790049849468954339912054395782737190996438536885717443615432392184325127191865670368882931739135522336527004755522308198248564098730008803606743829534643703645236424307214200166533016240323003835768942891106332708905984282966554640022601994644263276896234142738516847666876737199843091364733585576571355576871027997010288496928937712615367646486350516540189470214962433323053037139173617585313675292105873600108457012590270931334668669087796334061441927579300329246776528518285782115864687562755040653051579174314725175445510488652896076768757487505424807072046290517423044855847077115493695862843777638889984506597494215049806331993663834870294222487283167850247671471128326564500420590124019923124938809666653892644035153395407966428926126093630962104398109975701045358185366085111527152114344279835072036174921614458078338047185125033985414630296882783790471559473624817279783674141640497832112740161670925807796082849221714616861087846744478783273391319407650484005200734433963737509602599045165119881908744794342775754095009567353380207513943651452703363263725793361052777776509728903544851392310152137020424480269096210784723824569423014929263451080771256677531435079863926684252172964143590091360825820746351126228690776677212904307540095975017063888460254254965471960832780526519480227152263877896149695342267807018487648116460113379186539975690787142723944971733995667919874796960046048227269028376841460495995041199886024997252422896534853775767596095052565195766190829731813525982493934989030571001227163485862189764605668865762996574869657135673460014536277001564062230664890490807814050344996727502306395974504926269642700303528047741228362637867164220842783175248380820470750449948805401010785881838610953422603898970472715473434927067263497451655932037227168555481570324664189998819569960009735377173576371870584193542160417540010158708613706139276012247785455450568167556948288722348049880143303636552506714490101738027913635213511246393949852275805429209240954944134263335667110920938205715622950743496813064002095942573474314244490890259848522754778873892414149499110882633490320318973557062694184123935745515260163419860470380204788248693666314359426845611702078033195247340852039473703270961229754410258208126860728979017881393452309709861527219938169078985737642252110059259906876082975970763832030837233459762017797398550719147913359160333437086094820956618660779085062666415290664792917024467392374597752241836749002600426385355171747833728711058007437784241896895148787743270697254066511600845267857453310177676300940585616720067153181950836912494854093585199567428791313909980814210834874858049873767394260922676677185265158458261983008895083407382946071038990746445786673776208980016712199048222076785713981064675423950513414151209068556888931515342606584161075270898262571622237572445741538960960792426599543643653323780078450142044800398968304013600778375648682485244740177425473587022256582195244735141078576560101811685543155642333095811096006007243519759525855244020675979636733183335326534749343827043913032126245456857504408500458193648536783058340906334695233129296642999471315295528712279277723576435553387456153923650520431555058707237561470601769573633783138072318911268187977574987808848978285350117004620502311146115837957270796892777353062609887466896800109989394651909266190032019420315865105771223267497241869141473118149094266272867483820235999795961269148003716718724177219300426130817654666752923322218581526962235895595475471643803534455223321199105029114175550057361904134075529252154251412902501982744137112746373042867617469493695456171250050722826531827139581996395516177154382611621864431886633971088293734994071156356389570733807070386396200327530192427820358617486802498175326384455715392477255751939293702865227208180114710195186276378126212900325802876666139023610738175685137353106595637899716145158073030592751634203681430245421699507467760258807605509842958351775302828238363443666935750326297315526796596586791220488218983984942598496089045803754326619094533904357979434528655313365229921459858649124435827687154346013581969625457389258585709970295615968580475478342963933645143663983499595380942411787713502066753817303727019021585152393094064113245920226913373412928140643059578294603524969994278641684282838974433255779195905037509778277999079534707125604518840682667011743943957756212751427122061159661340185371346328553138397667110009964816326620639389004589112651236509299638461628577886423842278021500073663998494814297492989931723601519637310585789734456819522389155638039285155197076090739083033246290333904965263712053352057193681927637127046976747079525870725196875314520570101880346279581254401541516697810169144306542608384406420002355861469274970504067625653557257654708295486094684242716636117714647612314517728299902308734184544923920295034150145014690378532168067798981366448082201615674153487730873344661404039190163882231761076131943392750770854060901581760104564380911686769609335418697621550901220271927341896898598364423626994772050646732887948608135984565585358548816843516288609198657127632169069249481069310905701154452473537741728367019760741032911470100905257781477419922185143173455301581699772198732270453960154010801142022589173817766745431025630239848143277852186929318839773642029015032385701817998423353616603944095813577272214756041337208664624752269360772836588719270975968133621425581276385020751733746337142409225903361250454355042235705677423832428294886453915717381779855679213606825801277099900479737389274479616223627847973401106667872010685099810608593457962263352361552802009834906640450843836580978181275481503877366416947732936233256334133285879910318944161311997071605634398732120394540390209944624792466706463509336243832837221902160422322916173911713286764800498178129007435777959750503419168767159289137105975734485702097348433544668745391869190594921213600235304749676087601581422727406363308627247645740584490522470638904313851833516658101523255792475962881337805034581169141843444031385795835763640908348964881216335398200414437826548508550771899416875891454269898964417425041368870742432608920167390288812442081695201591493236970606584316502236279687353266416961779669168513661637450684756287605414021684516902006591173754201960077573016967150094892623690736050048522596403408264093212001025400443657244824864013793934894315728647814833592914459744106827166227614115143966960854170721952752970745762856750405434473450311492378864848365830042989271258934895843853242716152066841071516123972366715689446397270688645228633840794960013191313930778460817021620573279523857292859447696062897065424553242349553181707190608224372076455159810094288930069611374788422119647183700168801063224857023788473091130976563798266963281961342592010738272249694906191428472663039271516993494710364014950054623389497873134627026663602671397108373684123241523957621065772915709198776927000022576193175467613117237706431042343060548173263171426340566713946551779595362035160893986540580360073220496599964755279555788279462367047767260900098495808638894106778017990744820998780130717891593537304505095460254125642956379880768548132902163592855167550202291480742673379551337948819140378687657088875468198956590848899629126380813477195716469346701209812778130470884549093369105466302567257089578987879485719793080226966599163902619339539156276059759635809212750767440957683885534586021743224195647909288120656902741270593745691695828784455320447726719802190875406209138991541737968449744593646249618112391379664636615976722632000272312152389844606848063405096152183780385350110903575524038990054130864844696432659400830733058406391534617761236398459234807749703538881215719072359724124964636546861950184767799834076276105473384643502389474792457388588766606990701072533311542501723878893710938160643315824211849687192763357887539484986735213877910283947658644732906953071056166875082990123116455629014129240919161756003840848795895412429862300407562975918278325424576785764939924868562664494769533890316033457746917979171162039181191399156283348978328726831023563211899716161342191538226501401982868091105439529216973938942825053440599095414264474462362929137297872605830728032981728343674300673418265287943870997604498638953545194103912606607066602485414324185497318629825531949894456808953214843257461682512585875336211528018768380080097450802524766474787498804461415591562384250530075809137302765034958375123150406073199485060058393273651061946812106887962368662630317936603753027156216831212438489264283509722779672713761497656166946620485401636761785831342837584969398434774585308898641101818366465584368080178653611909639893140278514266519834697188625769385952617997567569134716170706033990787295472691295595888558433072388932612105135416943121818371333299101744066163672423681999325587120035275582940809812985188876885668076099925330369417554825920195922387601998712647131764324722809161601558737782351504721651871024497554850401580017246854224645649349577499779851647922304267597972644026328713054386780302162764282449355584137965981409525059036039217587340207388536939119666369129696064400012422997995085590166624461398146348699088679268197942329942342601679276678662205209910499729631481970976550979286520084224054959628250415007682873884149508629882372698366892527048184780794083398046367556723844876620335067262302122682245994216780817824624362008415273138356145252465084768260793224747930378754276152579514382474857038860403080327456184283845084300740099953739575275845360245870737076040352447225902101949224395359825584253194064223588583522802910891787381387166782250435689212628605054463385502449553849233415392347450223116662657380862019646334589554272444692518147221498036675246670635950176163240047133597356506389754041321916563648324029055344930130434838413633847098964674901980028451328189561941278820748527801771039455715224827648386701057053612349202245202892643258267506181910841859797928866458320319464488800512809685960369967029548705569241286498381275135595775978486753352641212577360780402661564641846004124867046258098642430540263357550223995669383915373499670870571146747283926043140589240908083613711665829375750764630274280699416396865075090648876418162885103202948413555601168015720813108983532362952863813975056302660183541506236529562561600269134395145561106915767561868882904562947382531268878140217868316623872325280439700430010416396367708693175788453652213784257969826938846083802307595439714339972261267061285033499469514600705546085265678373142503905225292642926601894323359884258753721686158288190653295905144240533163777827491093341636102568029058275513657276459106556798559589564783976798463589093075452317030314109555257770817125068633277222061659852990393124662458718645974384558835221816638735284280135079389390647166849791770912874346259181970718906745693403103909867480409824817595910474204046930753433489097588992396721852148830304352453341682317974296764602587793906537372759325097689266624427562913703981527550026674942229918880708548465568122207950384570466461418762189233565012456652318884603111255901546216633317471150423387853455702461470433875003465012449790768207765823802721871370689982151257901108428737497066740586071722490334272274575944292617840162940357959407866572069083175184536944625254917042308613940184729319262784156690599517293967481635267736717956466603307141258692125389730363409024032150444679828027187653659248892662434585583117113662182551556723232484434846203695408452766400312858690802987079802845398390389165093453246354065989292316322698713183141579794350665504097360320337604159381804491173258991739462865235976990708269893842892704212632733131194519232022759374012623191277300549949933144788080933712419963191864195066131447053284462142163763803244964992793274262146254184905683853796101879017003971730028826308397608345846087612379118302310852755114154696589367004692969285682472750405830084881116366926803750562446642463148023170282866669284770504239435340982910813745665713230825171215973168790094659448286908153725939691278611621304014170154050675922934683067023142450099530335447867155860750626744852722959622952732976656046077264891938117054177569828377785257993520150733894613739919181961832848654714524616837456509466335646360530133560731527708859680023675451885678191627841072252978687900908880537619570095752095824736916397278615864171190888209548980140150985758580601489074692656648283007784818795868756063183556144199047710160289132596466410694484716902959623662816500239345916973707268585156695042851103461454957871461817594810539426938954038282161084490670450339680454278690885951259366441510756243991506036131996574147550315356643149272331047088611817612233765412050560480083596506279320456585218614510223693814765550146216748440176320125420175757718727846213164472690886797336386960303694438271647463367901190788239563833571404444984737059083735283065628139510183330667914709193284430155614293500553664547749155999989409915543715447109017597091762600391097918175445262252617235428962154112867361909504643067926499748992181119111276012729602025490630347229276687629494866368605723254033322838149543982722361938468520583620080479945786443356104503972632744457679029366707413934947077293975977216282784472506546639617934943656067433186096567549459658981628104100587770452415330964511851755832541634426919327155417402123679871954732270371887695161197367788752333630547790219163447328427267039307554018847981809043857170067545820442766965200784809786400717768322248228069555183644552079036193599549046903929094746777758499842920748410821910937730561145942117996164518666530441949849862700911680942376570111927795870276525874244127613288520099884173408491875518009915482269131820702997881094676994213538483702339675045507475818861663963666160738961521422309161088567991871789971026200949778777041930905354386831186479365292060437717095330714107839645076401860834364352069345614149645265395313344793062483247303626168456735310581297824462365932413609638462933798529274219478846331815907183445138944291946970662595313442638203282510169676243668095964202800644995746812999731367478100713409930180210989014589183039107199692369349418156940030865941726455817212890353911124777010665519000777095441532607416026605842674028412838767310836457570454077670580863551363660689094822277125556851192428275184423641441293217154764740153078520492576154982316375531374479309574232435684020378861094107299877206294688102648804869764715026816714880872141298858654360530482697929686749492573097303526832297178842078380372148826056733447420635977395392070641685684618698678975513338253337819608122583789429291349013592413665205756105391420056101418556738341601922223388799100969022291564657829073315853570596751956836007014192919069798843599065438033788093874018750444319798877168943894915273841875248255802712788655857903618817660842552395743531034812677750793481050469465976851698580637904454830364950953270968168904106316072716658609456089680339823411568106351774245627798567818950474736102069052845011588158296239821560684489732304737517799710342201919532770108451342782853151725600391161666087479285204591903823480575935976984937206269330457077035318634170202847338798174864344278623202071339213831538795293270745785331273514355535106499265866305715141627418297066610469668551926931644543407532965544177727580639907088404225282042180287372540337819951359900975361089131795043989058960716285335676605990119957342861601802981006810655655681543047193286966357530908255867502274818605787807308453171480966061035886578882425456753865349786887907036160369813372008190310828658704460872398478385960000978900914891673424372455713269674837655925146586311714042078994666428050440492712706141281357218454171084659090315552668114406943752360041156525890626417985543929671308263282195204331155047879391241666832728647978079359858847342138924331351440691046610625182091053860489149375758870136441190527794990985841596840642136426046481997258227122369845454894507736693718343318435054751580643524860192302859713583761460157941612308379684122551424102094611741884798588047500991728678277817958364668365483576517692804479674461050909033727723945603796421362935234103241385226494857321000014093563377809153761360609938702899931138171638690815934684140796904466569104875932650050095674594858399121399408410798999934377430291960765274925419473995470589769130418667823044948478095124528676792654861281022041667160139307496181625932404334639056044502155862926588547838386568792864360351908161011396338859168028776112999531781868973514530452814435520770835167387155194409269233783065131554325285705578118285698421643172073114899191932779778874703555487757601244636935943036451384076582110891764122307407694613705126809470497556630637669915084652126772447628175421814691599406500516647077778810044201440063928749363077134988293544220860455875300473434618758194772654166736310968894403447290985263834359186457512734334074797518784845736445518111128063690872293240356462453094581561303588346088634687569613272307657187247965762411479403920767814820432082930295105069315288913134481428147699271324303880898395615257052251719629933256821674780074743651600871089680474767448364966618176874273575440827263914547110930552075578404722196651514816847439913034218578750064342619585246387902106033738297726738163862649786367004480526317919693607648545010921588766514971611680767902647431087900977101928097413529802524879759256258294038074893381905947367357758634820206366086837989603080779088138752498957690239670174382946655721565230720421630768955470679639852510143841714974759521730176832380067231616769756463009205943351015709315716532546656269941162754337008419568997011750639218206465056606116839913749140961637123098554094480453346668278251601329189955695008473474185741816225391569244922416078542929090416794834806301896998440815090349977878782075144773744760819090659148022623571549827577779875121243218854617344299292311008010237745889937358883287276650851910537605958447205721861615054753813624458035537897139530939262655519936527744522635789902619396728872043950178202125092457948134990343914430256824692064295658029562860157085606739820453792282808827967504813275134882063813477612067795648150959602958838145861029706615474461720895600318299818174636625651700844674222509950598895556771302157692445679914796721754733787969869249342890932755862939753470139546199421268487597299809671721211330393652117126624518565481219111810918769487391231302240214810704134512423507501049582044573635104058252632907498361843038889510294726562835939355645133638488843336781770042968202103070174238008615171766613338795671107662444832955634268310938823089532187105357852975423885570216738734235556493498502432764115704189205524709336644868443959261217387352702259112317205119884283247045817245904996395502333369914450574457346315949446220371142830856966375791387663203334458502236071269064990804398893010300744290731130226177358307620526969081262090440862028700493632661607871168341678297274112546015952960262267311073035965742786575797038488364413494436130075356310609786043562922188388224577957441189511843117861930958971106225754314848973199194981874257380464849851187359431574478177661484793075507049137548119264087368469272490650289482439578910545564190131082129425885435177489321869602914396463708128374918061797144484372226086848576368382523062641679799596554344374068790855736236311448271012839384320480510807711075543552254393072518569444993858955166438617280044106418059964780699522484196967303335346397283598798310136546501777919184070521029927991183414480306313428171156565814755016089884730634288038007784900167675830814093971465018327649521888584297758953645022575808369760998649173466000551135110110626811826428673544377530330079647748068379260730996127089033430245300221357146587646789037233473527144158624401010952947092906454769736212839838626251480650946114511206747487448110547502810512016701538683163171576334263872351281590173556263640288771067752983711040070430206407119303730008700115167188190919974265428295691735149601220017515030579199048352476993957611567365381470130648526938499534292563629593466926118484459134843506148933871727881279530202047598093869351568378012526151684385855146176153158226731258887082740019738154061277521688457312815014738380901975508729455057933594886501501263247795897470501567592066803504584666312966525072497326539958159008956311616243524741715383241800626999236330370468906832728123858750995603443050686148692894868233889018682910770523617655298649028870705991100887040448711384538764445692860263293577231372611836673086249388740242550136760703524772467439298328640111715537474413739471742915700812378233472849511427395830969419884682847236479509245232018498042975876736819377024629007280601325319411203970460730165242154932643425702767512584862638837841596328975530187971081526765174616717993034527377173713673029020803865659572698924013955955899065531030084450277324702441444546588792585490711945680172686507625815789717144444592948083530680341465381889158496994436343067971944425083179116099796987881025048610446734769981476179243462897837403979450818030644115033094088630727074420289210502500383728776991290851648375835009431969111294343712730795417547198050334875986624532474184433432777824254278818254980748357154815321446620325490652032683528104015953909773666634616288173763742206485224545638340515814436083873455747510061419955146638825923775900133338650041570644240011283188590892957242470845491871078118229649078286007802013632473946225942435428406375240464990976843455213824146281505500569356528719681394433543128622995031556667069797634623174276635728278224080246998750259522079602770482875025458153889839222158044171627685031404340122612206652955883718096767253975648543390803740078182664748574494051259141228138215758421644547311102771970210738057978970133876635442852471772829241896518592115102551648460713224500083660229083673714584571663953882235867684595803923292315998287499751048093727120923575171731957185583657698927991065659148526509904628284056304614125804974911818318394588641953544039902364891338045276398350984000737268682483615666025208636472606017650786355768867251732340740720703354536576157338793726878407866146516951630857757776216831014893384127791577978651797441765900510040081712934421137975926410173525906032729076587035545630488477253997541089354655232856452184390506795547879076406205342962888373723422802123318640257563317181109369223476384229208987931758414171487956956972332587159863586671467020973451774119186083136772510968603273293120255564555400397411990426073488409140648948279429816517887048822606850006664759955678918416811047367426285636503311562732799716787128287203060848915879992454605346590343833816167292207347928266503668302926896751259711735880069616382520387207989578135604482072605355479645323904774516985956449188772451023406724027705575858390271587638283221787087505887541736603338550792243036233785731709337705728938202424312482363848602802448552901372724295028258700945550295407513565034735117746298031194166680918717351003186939559223743351806005042225934544468004372396439995827468843240263696276534390206919853548815086099771516660652739249536460305755253819197246125710220845737184112785902689177459954175421608482780289666856932806141328794336813629371552262860720073246997138961619067275661755917764373701220898695152599916652569023758948555138855395947767767546071854535834074464087243964800396097500913701780206828499477835830326583623422620170717343135069294056547062051043932541386941745970719852342360630012471290826575617335893102954606799544538631615494697065013389281769909987245235264617461268091314887869465897376528002346986529428215357252891113039985829852398842713061672385749077076996857874240784396040288741690763514185063685889752990628160181834385202269079365449779107398779435051191453383812491333361498785844214598292584793313755782290867999944057041280173219329206901590868192420842428600157760818819343322864529520422634681047387715744791075233160395289348311427811930082741685011154790233269407578368407256746546122197848863279494692082083475664811959616342140550733593780453810638199808937685604254768469674731796615302913393931031858086120640606129177446695161736444652524978626553876612917072503999099642172924581212818131203134745315670860310197984864149176443401544166356572638060457009361344979652453089569638545849585409943537767252323624381812847661508375853711584300445245593814525807209558062396389687717089384092804085330423560277909725127999651610960251624147949851944260912096057422617763429342601788446422448035354354186084919931311611515249544521613512623080303766557789190190002506992672174227664009857440152445684302969084698361863210197410142353616407506310491019438324407027558699739318316893145583633207366771138726289962073753919950307681688300951527258478350832324581895200825928879367124172469027320677120008609768414537535869698346259274296490741315230894686708178894492059566355899541359067002171019952034152301359895005527571920733191373724738659898487107742908211010270587029729113722018386737015151377782854359164804370573392304261029022735912910512309205676508780352474976171205444170589375474792299385816645997896937391100616634493724817030982612238660706127307452919616348846724033184374912936111835834834757196075725313858453680907718873337798577653357322990985553888050947011649772888468583115925584744486287195212230905638740739896967049233708197021648417834816151071015122064194236689141690368579248249198346537904447861915604136880368764310437508892714708943035791750094568744482574233210162024716364970375276098090118231469488242003325843718664270699949984401610963283001459237333882319328971809161949094303516873377350134958147711427998181855972909572997296045161718208822847687421567822800955466063672725456894135965673290305536933860770468321329413830645848728918132973678616564847838767512782074953187773903845945805105170818470276956959512284358372509250779941539745141052579176741282538741139813590339573323262815216773091118877335845386138302673776000094289035111254463290451667053546516037596990265240609328953714790442702642288836068651168241802980135318416330282196238373126886356339088296495201484246273656721031695811441635499952601570528547156255029352597703779495066080414454069790527074164022990365727464439709551524316652458657872820888543294465038928314031203581176391869539406031553866525741871498901329335380583306710857092767549671200888192755544587129895199968489351379420354305848464643084198215438541939530132558888908994575618329989588889006642200311366599848347017881249950760557945624134862797042107855827825234858622827985964752104751759645374587831854556254945508583318136161270662623983700460553889211155087176054735101565681959676378983571763310563655948264872517451047825862586267204047230731299212960767520615789017214958685722716368828925418253817314215064805064020632834655969822168160696710650610393370955834901068841558453263239117673392081410085246779771592250183305421847819919903015762804853046468317160547091979528396772105816336218508436863223406427014092872792620068584377464428186892820200527686482753140079264603331360094441788127369384341305120439348480625619306442561455837434220272019715465339060920402164546668693909778821909228918587928212682282207067808619039447084854574569213303740452129168747770878144208823919250789204511814003875365895484280818320765905989279163131754961041274768306373809131007059821409711246048913345305709715435542392447403875105306238682675978426539209658207867029959131685729626806828097832552761714904312584186665560524192459885113150822883079241712133858900931404887110755526538477621586350409988149981495209587402023819115122278077307657898205036985802025288363156370183325457646886954327349635395271742684116318335794537470917318956201750891457705363839918556023881580437787719262166964418254600598486778252505087171784485771133898068222569222267959712939955349997334557227947686396133539671933583180197040543722724098324433319766695408905280305352007857178542354682762567434121052701702991695130252973953986306437235618254329169656245176243457471129752210076803820504642880727548379454165077172718531591221750026930385995175848968258094543338993144720805985645917121121274532676450801519559386627874475188168483754950465282942060583500103029181442741227078606200012514940458294209439896594607072638093660233314588257408174091181380428662027734052247305127121070053286927175963554856645714825976774338798130105789502540843448929551636046145417746337115402346123137013986078283765354615875424784516423551283958515009910468472509308028699266177271321369619470691545976060665856148765222863421165819968794354319335909408635692798594034845546468008443619934368255472497883841618364663151524765816087440914960050758537424116238713713030921521281082994981712002853096254186541325156594715069789367320148969978987816126409826108360917024870754227916513079191716445217849993226545530419659368333544926179254471056199321677317656188396829751546577345478786864515553701220872267536692294323713082384251480515894001495081662669833939542436286182055238159286136812276211947748518274433501066103653506836264197873211666879962331590667143546412137946766745624844192381375888582972750469171996871615638765973420371883979085792397200538731274583621418625000478927405743962962535811025736082330591123422157355381114762727176305520349789960889824581020235100807359740756551860084116094599677396841476004081589614870526248342236941677521071414800315655929559146112657835055020908921803999042093429450247141625911162635023786443309739677284400371865182627829079934389592248442210006654023138534529299604322967643346621721786182518741120755769506119686523076579064445964335067396621135049538259253974600804554734154026602818298793306504223712889762125869070517614999935320397348534041437053938283761222449452786314170696117744002467807354000043135100607090653623704410597538777110553509643372362752939655150283266002824552909097800696012622578884628674884363111206760747155952799982016413840021375138052032527379866088517078870607939217363523450335941678456877511949029218853017217618260654709684507662569879224174445660328802866193172991896866707158524095207305390697331299663159573370883638311460680610742581383128622606462189804000167013272278659920014028718444617072335401407548789957740921073690892517907900213224137600466628896801593760474027883693564391279019267247070702986215432175885687203578840494191855016146261789225568821878348761747432435307628048107405331723269681147424346298825264807609696494595409623484912477386995398617806919047138465886029768689729404848531872865229052718019127081182534316905346027816590714698109210382468674608343392421791657091319844926786636421708089927831218235307932505495222797795593751572118034294704446393955628990201163172883376097060141208449213999990475508137193883859917681828832487693446319628090391382593674158522790659330899995811889855179535754481463847325137659942533513885572065900321083612870992997537925705797546390858249847192234570541766193496445476383932972632335980537653017918798649469243226731653607467317639859627823356559939752903950290438734464250135477324140161021579035435540283951667257495615194434240914429175060086492417299390218212963174992007751622690749736292876507209108150336799460056279262890938812631782010544016613867373259353291709848824690958297180187350842707793926256040614400668706640520011406355693904637958797462752551123223442248021343280969455796664591682937325746381379998960790501049600576239089412845865703323098237772731765074713546044639543391525672886067506457962125756947943131682596963206162761124562300115155663613719977511146264965137969646905322654652256741309982387872237897203023831507858639823704479991345716774144030538818245586490891042914636349567639333927447286106597941275679308608294603485048050202269890717622167857396444757349382209451192401834979644335218731550102625120404040103914791745095066823662120746205527323330351047171536652962763855504772947210200401031814212493350342280647366954069119808473224567450600739449426355545663242910648587521952019794872706788732395348686562511610664571600996775069421876810802098996776911411094850555647029035995259184627957232460170880364144653311328494220216755367292585581385926844485176081669122321878416444111259756003191289119166113416655366262872486609023043288954331997118154395813952166934004909157272403190740950768501688184606747330686908127059547562917521412990432541699418254567902869329517018448202513751964632620244522655603148438240124120512454523337760939091575458498917989269565351759265696483467364255905657803248672004170077056955842927456775570629257916581331933667781766589596642939577552311768118987433824858598270404145323931376706974095171702531052297826681153784427169905398216159483598171782915047390957198065391787863259094575491671416228747002814871785081659127962374338388210583968869820257693832458852988670766622867988102290266397937189126448981526307255560472855838617460743563485289801199594776015218489766038899150116525838865060582764830097720873691164418148827843952839414626673625325370423726099129861929352425312668298410314703760574172169589214632756574844759913067528927986430903661763407178340699048432000749321126081457445208799256774710219671389171981495148250176724484315553681514194496349140766947526232107273835330210446730041986130311436254779878061152458309512911366873983983938497921139848748567538759976827520774702933415561936524914257897385646805592758960859058729873728155256055378365837842732354654487101673729213846429700188489846168908049445339639447957040842434808647542835371652599993276159996570355055508980623445583018159354220927129292564263983964324844790333677795099278452298447417950514660372938216597930605184671985286164241891648494045949126321433798809811271092886322046439038570086474004572158042037050004789654090109057563116792579631052909708790763990102787651063096567665704483198340455222882527588788820265980448251605980514544470854075358905448687796996098270543384829682550822913990475150635884040295653883019527718894168087924518487704601207920944046192333090391876610847654052196616136097603068146868057405381370026288332529383098744694860279285836632408837504907201162500496488431017787862187475014150801168100028168002045010816248253359219887133961017929964765766173186298911180222788750042896895832305197698691441483885505470508957755966602846325731869814892648912904775400459232934130086282454601134443304028108271032185441564017931052063987715270991541741893635918297389916418029324530668325705855372315099399489224225457382136976663587122857475194303893445151870308215002874357603245296279390669870887038291328210416875518519102692246290654238671062636906144077644599799898603012107559850584477363666957181719648818166060140402037372987074122965614306462881893673846363226929767103063460615499076207500173690894432415795703261907839436515571869925515031986609992420389812389464158435631648997570184555090736507559753877466842382103151905965490264445713966269061724807886159540244099276988839627602690055965028011703448671647982981978014989882254651243243392806210502954834129409676173541034603852550890231678609896735199051317026408643135003648635901351899448475734008596861155133558753257527879478516666263164171977888465260666382814879402002464931617804068707862555076988451957577475688678714855195989062065925354739331970673513674822636150653634476100001492881944053113340439251198869486063241100987176595505354542913172789104291192909728432464997376751558971926092982478307365402413260464055871034545000885253437359822001283607743796997359576425129069395201426865668426948073279810917135296649093149637319845541047375431263938106888128303550839255838854340004136740040584255497214523454947028413026442799143689317244291283521855060377753102286868008435645596736690934341207295723416588745221414280803741517714688906877261681175102606656332241161997443714772689544190357840626147312233259875000061783901377999500149219201902904271222101247379871482509597197837028448869177669012226552959423654838492994130652268298349816488661896843286348793926954160387060797349067326415976984710592800405897958940808979775719107613779532283794232412109420757444269215010893586667576054330676586356529458748064695654224146583022288636509573568598415131798323953177739001276896707937182828275551010000859922685290841644833425119547105751383864430860433738264147961054890842125581184386916967509121245502322785506444951144690994952220545061615789254513356676612266967057328681839296838149196282406853536306667741102132273898350161005897836414532389471624339114989564425527849942511779054468469755983145742770743877730020659996980749762885301419337331812848041699893903103487885762984009334334109680646406850211410381758837592259190242204106685485198769439569004383015491632057177958042720774841793973485124008236275169893239720999456080034055363087342690664172590364323677991230528747331529919257219156892476579526056871938980770613453933596962931828748274655573715824557942159213372510507190231779089813160121629130434404725759592673766723164722178864797635162467597997730274922675617577739153403097638683205155552683875006918563070157954424781873457200324368641957593958407689469088946098825891327678824916935795342041363028703023264258535590130188336805209123806026046955887297373683105099827526286196123233414571224406143138994293485027036337156552659572222744580165475432912000995358089457933759250656340852460671953093903445418740577549460485747413407884538496941352029528514588581811154138081578641253326903875529767033903659382218118255182648890393738465319052856462555797809952612055119132770391689451008754884216439366169916719970721288499676495796622113584609854504028824775174775790321955590844053373644090063414430026058786083873848526876244053817609328019253694725719656235624610289688256523211069500523887609510824593270555566512996929332163177817918888056698420110952591867654695707643543939312967428656331273302765130564810734020897841346349969786617606155869891403921050996994059520429591896626771154405713030791340439873836892683164673706735657721473681199663364992436281955980391879119829877642066655290309356788796785767654150201815491758981829609763254466029272298152137743512151704967543851088681387719435730541203843951906057332609253820645200927914290749923882919057407318614064056582162568395472351100346990727700573047340105013623100575366220076031128913186134824909790820591696767015315468983282594507926739603981694540995402428690597630182184790219616880595997054675907513797442351184349104938514275981043744324940619051883499110170593199100000185513603106891810719279526878009445099756614570243428519965707212851467933784070176407141431496760475187981266289695668875557830745141232545095232879047927938006288511495743833694915384979245200137922604687815065801517837903558568533401059892484624462826740901627110142191722181581325858131406420629628212957568430913096732408071302903925908263132345852304721155948310040789198864011749637851936881355330083075687955419291224671517129783149364282842721807469922905000855243405496479950050044903906392272358801171453772084376957375326513740509480185095151835653132331127393759982014200967018048341028017352917403810085466075197661231244890668101909931033881928601762941592395290300712297718812142294860327928360386043139094585290680446204204275027215797138645615284831260641398522135555922906249707455489072941770764051455530863173527342471273185643644076597880170156836277817673196807000683766814693967148380464020301215057292546700701745592622016312248713469549946521913059349928024924577886648550493017567222236683495500607075400109396401649410818991445931999985268058353500206428534703084419313180567249187614578344034479509305996887429537969663662647236746092434923460338013965195032751026184749069889857689162592629358605560492625479831026562866438138061676982034402451132425016100738592394612873565830376265851835423383307595482779694595263913593553256819325745457003729285679630123413046717138881541840062968400095661406621635094667422247154414930927322333230875509886347386883152107494520862634623157519492426795698689112055307189214753967190621520800633822897013970043961949198693422877362343518338435439202264083519038827409788603791275443432732905182222493771436527676660241743394032216829082997338089586162490258359214989392093920511851630089822045335687895550039842924137100603706927405216632504562123930071342006144529686252831683881782891247634007256196290798163613337315897847948681922061655254935097418739820533485498812936190442863449672994183412489839252342477287115593944126872072103651285486647797340687264474397734096758460418713179950316521573691513035633724793099658609406837099061607784095137767897834367257116336214868486869403419453883572222354385862018918559821105490251917714154178918059223512563122455302296139620303892737402881466536954131409887978301705464671702456273704131306505448479210631451570818662860709882402337971261242781816068366771029367824178167570174862578780697040495022047195716778677735626607362142917308098953596623609489889774658534924288475505462869983534675012150226477644645870249768227473547247860854724586907413380882642131555559016953073371374421952723858701278074925850943370887791312523977473088139748052561644990134152606936213435977519722064362168200172921212190708101503975757891516757555318734696348617417567065275949560047492085912241520613093834644659666024847802083010627990394251481311835028749701150282938696018746894036094812349732016898417323624350394409135017506221429304577219987202064512988475684392037214177947348670537016605594399145495205295420259407451936677053877356381091894713221258030181816061213112039215204095971184389036655328338957592167653125835854416161460009129640135486183912037922648350734873031112322231536843480270973202289482186526109080145976024189350791341943466651756052509637566927484165221075153258949032963012053148756247226888111425728330211682335150129431398826299729863844756687501865319308931989224772135420165110660982564207454786002418183157309826574842055841498244492033473640904295304710197560245016569047827749635037382061228955531301507159690504074594903257740997294315327528318614395883235044023918976147219525606893291394076695355475064631960412743357915430326057948445307471201026652738771225085630735318864066562717481678933307816098408314560328510392987635891705976720369955242282283075811982986278556312276627498273576462526446724275985894158563308282808434950975738190738357576604809912969859938655611091910997689775767295020493015633325098221953101273507051880417923404769732333041532998611157333233261553027861398612715150016517805317474587741781413348605280034371686311057894530840615507206151153819262555699302155496838868727742849931854673734557898265355498929592040958692982227976478986805145488097146063150775607592360990011632868239346242590550826539455361871419914525495502307477494879828236755327052658477077827117883577616101688047456727654473903007334895581740930516153567139951266042620718321122569557605043359413655603317622143760328455531279020691651711936147975265374340122207389537531875293152079124254526290249125616487011550947333995264862650643221073860557035702651558529853163801155204963378550452966070693776655869309913708724736060901765031466516732097365764943718563319127238962874025754242862110441879290262309555619687799183731831794101003307623513860672167305844190297282086130831512841284694716316017071413609312594057857132421971289313467265061389833966735887618718147353788262157483951809055896645530074201607103180366166253266351215006187163894981351319273437390759467428397028838854869074865051733619859992586938589995880681700045437623629980967818649390462885865516348485847561248764887462151042359184503094025868578530185138781729620105367710743649622378870252632488110798162017842760833989241102962576314140154851831529829619083378632480061218069563181804558725127932171243337263391543544034541075147558718257841640798045142342872738335033613961360633101315198543884724873330365412706996741798972678147905835383496872291821044789747602386615858327848567139575764210990254065550452055583657918593059373854951141819216746700426324939155752841666200317911656175631853492843515288225212863116563821115540415739203029580232665031104135575960983793868866681083639902321575185088143411430523251417567138907910187973065173121570957521465535841004633702187713738287829386908423349231689950447678798273872599599876684026173623802538722328279785148046652245045046422197177693534033069841677105584493868669436721160411797143082415616368437616107763242378248832834281746601241304054873474450020880757485581314411360911072638225916225574046483029662915043717054386380432581178784227051380691852084404630211029804805588314176212963224400010495111672059419680090374536470987168291000226282996189800380432072809537261188285234948195128505432452278774833709299034255105204835370619507850035774079915794028243141498538535443942260163457393120268143180620837803816935977912973451331336301957787399316029463155140996058324683899491659158537757451226306560348649383029520844947909791963104677078791468530128372402763837310814379818027838240007926106715388216307854343392512708301030717703213869059567535923455035326738175742544299751877587549681789785019160919351429507141211107133166173129132543995012706479290574465745285115734042914813824154230910232818217119244645472212459829789076517868406664154749347914751584802392555893560548440661921740887970543621375225133584437827884877627481232166875518603501662179052160271028336481821189275846137629334533893661236013185248880995027359448291730423453808823472483299194053756470557332618509694387020342643751081412862571463781115692444124353978489937277177149736459098195281053641874293094640363892964748938730291712302703733193817199005733255215370620983858897409871035567393324155269646494610197237729323980530415396995806373682296409757367178461637419279467342363186075637872747822416786716607636931827204708201752299475104697567325081869169025900718456675487191635721524350786050026240824144275403248947762010817995423249281512924622589209132571739531403518133544457212191758732298651581542733558555128929353510559508440896216968377144251336786939285624456332039986911174219628478829297875268980287947789258810991809927614859219651624112802771291740927187177747828936263660542966905649856486770986799732381166527558796125578490835762329982319340352503487326057858695064359597275132436535160466672190946375344406933184354133575982870906728182634253523058016219822036213375207642268393714292991488665447466540287921311151086955910075450620886329462870567477481570926966081792809285017792335187222795697299426866140313486670837977564031275606441606022565931720009237905196021409069292759819385623698570647687008129328480633590129396847547459016086520574233095849490907844845627728399370144166752769406722870369513976016919891253618032530552126428573361639788234717289832147102044307223956745078741571580232375208601950608258441451354860903091524897477326685803945313555376411668243928744378898328599996852022514140819765139918289372854452471041424791638564551767693403810981381592873307180229839061347041152055844152301381521976973074446561294784993929186758223368757609178215245142398893843635654335502688466677016469555626530584879788157252550320624222213995317762629252699530410296439350992522470118948666931934458424058395229785266025016459815100488808893579082950256711207754259811978125143920093497994260519447344556596787234708940493854369185670043664751307581499408019359610745298308386638864755989402661310355829557946807526433227894570367171361459849739507595578953303216539772399903822954574907151110353858402675442209103874810529946239396627185223457405341722240759741948980568474971756258423539551991356282256283503569299940128316715506303575603433755139399049855469920580522416892765235150925499417425378378759313835464829420450948938933937941520097209839976381942823132152187412898591662665759017124693929023797282976270221639412602250646492295997369429202709617800525820081814283344079899731406193626664189472783613923470233288565522223626682161473763499348945936786129098061832096641370453354513466599853699465034156252658849108657182755600122364758422011431222319625642937401124970958840085823045264070276308153822399247640031877705144031429106709681132252772448575687053460018720946412922403108337356697371054684200367202134364554847496758385677837282189472479069587373301287441108917938151216630653299901845167733975696549922963217436737990559404197230115290617431421738708864071602361089827291924256874073116592295147822038287357625293152098423308228070262443546826379780061144329659427700269123512323878655238951766865422787503980926396877930434874859105800808113041495668082065327250856903199249736942790643124911012316604545282687544949947397957197155363998235246094139476429355633372050279439499852285861405827629979288011509693546618122413940701024013264961550430312708052449181164855055441033508127960831820478953007060463465407378062296646884102993067457465425663484453067183326194886362605520363310623508548330497837505110087425753562536094475825391553386333140128813719615021094020250756187843487736601486724773677473281576772169313417616866401716874509733723219655369688054231452398124485723649267513453158535901269886077897267562475974409372291245454861085528184519792913946155113047404237191300268533743300179649163031215332870950924383982782760207204804396331083915465240365476058021180410864740046113093682094773139873442944898499955716000763145239415268310409387391534661540767519847348096143897471416559421346675965652434824814911862262741438687296973828270982343606970425584352278853936234765219942039024718302160005314520354248047411632685864911795317109755468758430571860659877650378774875397010423790441600061178824775399647616989596843319319656478155014077457562323944332384554950616989395147476315040441138747454745309727507063706208857370425543490663155614980244852565360174631421298259263382810123511293516462207523245598178525260235585069284725395983921910238357335796008093431142465674204738757903780818369404664058950055576520169156506465550887128328352256213011564080722879177140324680874659292801218314968274710052095407008694357247660248001368876049156353423910991325532171084079884006421415722093770721389403692868540242206457400539109445990990337354321880553572324145192901109585720549789103226356807401919973773729709319486238074051036445101607244826970669948700389605103482639903794934554006073672066258440651974127147481629530683948377607045898026553783723780264841362438573749859495218690014344507667123054350827107041786573581554028431418590288916010321230625400637609279673023682300675149047153198731124106698813161674568907391034282246075836855862377537026941963852884520227138887173393385902072006417012606186658433517504793000774491092492825650625303235965074478860775582441210002656219633269670203908305922322855066171408074534097822880983417316695660789247609712329687224116547657033207870301088440869727962008567234931133427974391759777299601249844676971079586325751203146998119675420644892718798841303375995265777795252017955896294495371287588755714338857956169040477749635000798663163739868593948338195038412360921134726949461330697764313176908866583078373847741914341916600973955899670729090640884452182315194474646006181031578193265279731175267001425644445363115362652011437811600315678528018788301757664516181448071976431871922413904764897869682184868454473810291341931680177921112015006212859553772149185247879239098144301915576733827213693863053723632409458223960278716475080287968087667813205313285396252694946403806366509110871803630458921336545221357793022112045144270165311100973930528548700389085622108799925697114129248571373785947556720794756567166105039104368974513977165936726297856397829721882743708870721692063122146068667418850704314387141784306508932847304513603896167673028400141981175271134153121336763213696554957093043051947369029054736550475546222114375947481448397077632760670094233110239545916066122618465936565330427722157062985961764631770474100845991602815824160419367235626295543179510039888381083513125114929734099612416961349412724041551560450757638722639168199507623441790989136101815903117535723931044058247190871666192906294737653579393712445733749632163847770617493039635998561937956252907407465659503306193396828475553272540160864747227737976748824452103274828655516841006244477146049086833622055835405647671563785983277743661000674055401058693790200307487268439762512475113567543627517334879451284346653738774336810551034444008587000340446391049862301243399686206174499543205910407042232986816561756105386688329743169292753276516923429408171408987674323867838844889364576317145317836405264914784054277739456871342639775315308356819860847869324292490769965048245446845810603671735778458088949634949657453561014757617778263505719813898501929693215588995730713258825521003047882885006359941843994563105062217623792082433886260155838509297135010699727591156104993248162832522382576560770078089574821397184647150942556523827829590922327868595028738185588803613726846995571836539967804274471937175194445840356681754200170230764139314034945177813747991932939328338588795880117234882324794634004414042576055733674446863891761040209901447910145565730319467028290342597942185640933632245587187389464931229017248418835363924510095039472253497937783213454354264198429564794369858787774518308689751519636526072934552614325316326428666145736599672620281038114393914415798414968627161322496242386816059590286784163389011799444878246877646797854797003738985317071326713690259932804018679176430275668766691601001256507094167657609748657968172713558022272703502381277539701344672327557694330806372326887115796880786500683259248784198803173530284612254578110762991486143820493686165664632182816150082947311759168758721384392639548255415026913843867369916131518835921591186463527146880181494477397466579428601804458036640863334656606642903018622942246118904093874131834482591521239116212617842234564804712001771936735664078063555962085200250258087733691827336821981744029994233222966919113402201694104399713148721799305488698682943227952407474538511437596145498355526201317618171482533933266115827214632842131618258168644035113857278223584275961834690895698111668382029411129898790448080690013134964274100842360187051616855519456211126726069770346459560462898873661306758614536426497944917815287919637922373008930712987689494698668903461585342895394032390663479387972045639753712875636003634453196669961254660173124438846621687951338474543364625794015891792441499751430534555013469097500900903745393231291720597850124423137457396894417848388699929739369807819488022177951474286723840712695825178631934159245186406296553788684816614822245882471751034458786604186606979940864731615573970720588632010226831495959263754036348562599053049966113377051347761295042209681128683765657742863160076039630025372700937408301780145376603236344401209544101874553567545116276192732247937120952604773835492959176684797647474292667103820833387166908428306766471219487680800432513275076652525215015767519004871584923515998753438019140327535945233491338509758989600316455371168119414280086433809030924813975691072658696878441358507073332629027174203754944805360617308665420567493130648333318479367184673045894829527979777428822504397675645539261808374929539443084891368353808934876620309763352468137153496738249876238345346687517053798645645067299563392269973085084053439178350316869387668004892609756483767129534158721926618101773702531326057994708360722159013641758320164368977137704312056058151930367909127558873545378480949116467798123071970889531939033306308213135102073810514256718891630656780202418086178750931425050349172468061420056744948139237450879198799232804040588700369756003973636737393460231197606886812035990567333511306897601982247270782962057879229756810686837194022468520483041899435950959551899273351967474594354715556319528194787761056778868869809620289601859809656252972061671591784192241396943575113967667295343380520811963151210713964729044953128250646341349316650530464569772645489817850108039371463877841120867858743924691950218650654387583304684952763149847919670123008357630295303454862951074784985288036433075222693626181703522376287456043424972244665484826475269631125216919198410904007038223270843940976454659281517498352247031785528098189961987655355960438484259554812148909023631623652089694727123368779358805903687791367910054055386278664865341038319719338681997855398107038255183685258972801918051322016717506271416938812241594536808842915194096876288980587451111703386828891724631064936023619373533910869592719946151861859060251118812427114933019176151946066663698993990421811816700705464450257415522928608325134344398391830358535399092658000757358909405286683753301660007338561612563757358011051019973105495833569482700112054436209812833735116850577824369237246263549255168478256620544272100349064050434175653910311503997837222137151332753371163235255626030926555957100482008865366965162367897966827291445080964403707259538695336950292949296845018090789876769569379827359501008822062310997368314393410213170461192037810915330145972879601646232167927206906201098111890764626507607401612105255287008143637878810888982452300029491986363128151592934104301496476770394963711504105620721974539600260339588615905930675931560566713905582199703656841403866951298626060269022063481143191137967084010515016171452091211690357551165731761211421443528695734687791976545374414828687670636375306063292137781968171804805687472436608672397147830593780617985899342602324976042395074689259818320068408302390364127161960833365125320499514508293471505590024817228447863485512829296345098917578611665901599366444920338144179980630477696492138639813093821064974966703118919168124271199132992404738465278980062682635118251310016198208792339451460642605254667181821297302078336681913404834165047704807177627984181627669657531328226587195556193273765291473446257875568734934569899577170604006690965717310949304297857552081613327016261449803232832900695904393053778187002337323390963562507065629912111279262949115209222859312248556720735889854218285770825149705982828282971416463668726498704132479143139469471567592184976860616719763626651846993414537350953379226836205801283883678685079812224716577651134978517685306024240427598464675089140876914034716122971102562699713688887463495287250264366246074676301153950995453430057500004289510704063325764538299944742051681631847028084769365090281927344588311666639479992938353003173688366338925057789563591616869960762646174535082076021602153869641762979681039259700277537221376818208189918957528986925923112235288638565796647793122685346233574307891861551416008774640917153533832762151510714990175462180935341734988387507682870167723340717955587726869857227498891794367285669754373108058613595943792056272715880206186184646437816918138434625677597716020509744294956115186541601826403713132508670560952787805657781939317025232006854627449453705248092219685360876517493641117113137325160530654964031327749899324508768192925450480396115349197019272401152491307091084987295889998617451844224936957201576551731665533390419394135818528367500045849742429646565554537461471611549727895222117692502423016224450525521187333759696437445574848045101058491685654092113286833740119916949198822365425123027345936494490741777228641263679776202809668290109428240754745265374382048107567388729918488953487928272737557416087303508734682574540401383454691299637234158501922293375682763804564844737490835478152250933786273931330513693924364632884105784718324834827342453146120835278705152663867675302004976574184229693423490479345168902433599854551740537204616757340443438472884684643028290203069712639414730294677520224589507598017615382458070935884426292857074279884172959710280451628920962156521227287544840896691010796591348536102521363722520994402126685414490715490451611921725380209741028314085835966403504876148867537277066183245376284297373632835804394803084850405076470579388308890372014412935640836982042126387402333685749779708690716759390422194925024183163391250841244818629983295490651490317315793580961509602078285152149627611317519928173921431842625898010050231842421769497099485830884071166675342328988545842729745179605113853921575597390216651907952431472238273452368338406848423159243467547332259540410470495137872993437019718801483649293390579338005888051341201242375494419063084398065385776642745751114699049739932142012729525178715887009819978012018857774181754107256654479605640285630752590778270913342948732954193941283251551452404117027868157748364876010469996419837773441885367805894730213951694897470590124908486741132179266599563777377931979096336626257239665409268140249645171896045924773581856911966550355581720258235756343879812122258135951141536890417270973437046952626523836713113826191876454631978094810273911296477914468293301048416308697006907545009082525638353067297666857174888969718774709104799074172233787614372652042680811029722819006309530401725402065515550392688720634617173542555216201102491247690505118970323072648506526076246966409823186430387131134244471397208443718379920968229700843112517955265469462823407636638167418523069410638273568095841752342889756193392935341697306554635121594881778811531267282774212823635477976228656203647886216235771532842728798416872633072537542504333111625497095284044772507171526324427838674508395953773262131231400997052782557568797857626026226678569641059774902572086805146181812237027851574285229339385920869260538928166759768118689499337636059312995783233404180681000076059255100479862175891496040444993600491673415288632926797241011386625582548334763827997490893323955046264296687834786005149178167444560769262312374862262490603202143256463256539306563412338586197022660572176218868349956774238227489017527217046554528793705152418066248488270414888654530080101076458598635181374787550649669368341576739015581003547543253655642566396500969686476296513735950834276014231468936733921099822542812537180097171646075575872268182139069299124731901100064149741331494450638970643189384366101444544276315488714109477826019434747899439022210251174589694739760172153854087105197142933025924620946910472781609716969804317362562085544361949989325056208198388797739363261348279603773168573174191548952754343420398635154428557847040135768261030112323867972857307881019881989734361490229596644732522910703914734858356304880199971021469083734302471533365835998822069097083813095362282987345294357003537221581508842185958652114466237815075695030519938526226341254098582170079053572484680929612232906071719980851306503686869015154861462059772121745874982108345668249250190998139476779245760736509308538123616790515557319990612395222720954162714283422208367626875763074999254469847616845502674037494136878047387368089240390080355592106149794364279881098700146972538079528853129800293437184722771768548488870820216443638269070526590325127393528748615301901188083749884755264576732519791184388411619509057467665713931358663324066428820645456561589463696133688895587060003326482719860085579471475983840636775425531985283745856210548007521887517316784818519243711289555631900752059341979139255101488148213644817154516116891233167638893108126662468966172860083135692864063462840866851440849667255887937703474153150721571054304350367321452891593080769180767299366605453795977594202503430262172415140783958081960167789032627149294802074037056245091208117318194630802296843437268337451262791999326042332519346709923592156865924719344495256150421241900584722653771841559690020747157980167491285417631608077410621074481799948927727024329315901432406129644172966992126001003020073008939976789119745630357237646028795842773286048184330200673870369625572878271440075267782118420706486776689025231263801236553479984344267763873523897815678110958129851180403328272968264693574034217601094022510061471570326917654552943514956898648852408826696718444440974498103291777162675221270790062909870994642372061866467067513576932241567260867276867241538820942244443299752095834185805865654861871609749549442429344767421739178320389310098670154155176033494964293618080017387249325297027274923713738958355154677256806630288577011863913824484197289523720708339598534032001661138405870619588304817411116021932541682249034350312086032796335299189366572763023541077696673709807777541221794564888858343754356897312639493017575527605859562688776088251361755100254925014892811550174373534612106127024650547743671714500783125737591243851936294487817509938328197867760628699388336118858776718929875195256725584080087575303436698464297175457399823989542629221463867324500203164665433979008782378895314298259418195568253467482662040957032925554345104514055695573016033562488200761625003233513365952806232937125351200411074950074263833167007044905742649936964001191984771262105564759804603467366149870391216848264144763961426773166482620668289003124494471498706178496031382213026741839803201570672189027473438985142006648889754884592351557325740717994559858592241448565598895667849937478207178415101219788968675183220234327471773576724291285769807396232451109745830883244591540703682692165013818500103155630880086068210819470954868144780153330858448735519316191065120096256211563050827143624366815594084782097677515597617358798965285769372004995060622202440563530132974221088810405759303410797096624742312413843309447295710714114404046002667766313744506703035093496202888218475481007804174627897840623782597289093380121671944649317537684086449755534249489924706990897683661317738234962185297406770854972892623130670944144354134299393096701237545030457689971164691157163202115570991219586433407131637056048145083489600463661142979592269248981159630037708227183624357510309161684565896840904823897480346918249335232825804589060441291587686456499584132401458204882142903410635609940264560393736414313256481294087080537349750627141042620876566504331085112066925763471145179752558309449764439774228121928254701725363563032558794179602902154417902103036815322765647123183091115823969865940225218874929245129730966731466951135319307588871088411567397092722557018236236823542158408306973956771467668161770836048467439780048026794424862233670032187324456226179015781557448018851849009692091862517678754629867341616309374560737499088969543785144494068372759194848288775228349023220184467180174352032863850274970076068261980836755102577113850927110450784425501239692323227316101212628679316553815256813606912561731761554291650757159348585551972072720908075020688050320778735872897690670960243478858257470081838293018873887198864589745522299005180448912917439848644798723953524311701772408201123560916533430727643734795355583542933650616908420291705702445630548897883972144678968872261803455089712796996628470126965896592964582415955601186543471850992442255745863077356205316765253039313438643089816830087914967878648660901650129687520350509223023359963928589704455793298058700933923707573922980983533460015296091842446711539358228648164425101595450997735193184861500087948459974715860481881920900921547999217591681454908234832118975013242802028136139251024274987409319900674316494207698876611820859104549470650878945885127532554040293902907728443833412845476053042351319011655170095750700624912510694475344599376485426951698139619132165643116961123804607398417058541402319382867814663891789282582327615938797681357477454983741387062659653537954918190009415015441668035724335661859592152334625280829647487626789372995327215838912443289648015152613827750347147347700465291805218123460027006326167182249849225499791649170783903177871291660694341087919077021414645849811593956471837486328654148195027023561691466765997215096855475024375509541093532454245015624470802575064761628316151762177179659132707372916027011816024252030690780553693495859062987631446347780415320679099322491726704991339985462402720780231834775012170019810250596766046653315288834526111830393400418504903056573539345497676825210958452744630344599480856052863593822652471006796012021048611742258111600812036316592813351181234784947867875504526645912592436497170058947065919666977072487356735609265294062461709633130801645958773283513710343335074503403978263237005469084336717789246289785475239198865631360923655973167728371422206951359448091229974347674788753264566160970434278444662081441494646906561346160803070426628883469422627829447871449514539614469834949092170616801507100685987391458852575678037818260816450655181464209887858602134250000672701928853803570750818973602744612767624279991414213045641990881381287615256463482854830898100324052004631943452208590327351826125025980893011095765250236303941944201772537911428344248638258116322002208396088890358979473549752175359523779984192341264178286960468521967578096582457970090539792182964172081010357573665288956948783581998081149048024882764364297449584985755039274713525430012879874982556207854589578904003050376276761012844458450763858513191009111923066424557461488369211792522232054385460499489498620017365407794960587431695580283701645174404068465509827228811506323709660763105639514022560146004517663768693136383251258553763980994325971624774893601865278524861190325594448352465324847400954598531042226025765803105094674043669102867336466341139600733134706594604126560709478617360550884175294572023162789411769974709774438694873671701534380176463816893052871493414007354488393873946123078138048550290855804916406161767680294334013009733244380665529361541844998333123019820024683297161518330082238711641770427055297943182895717927382556504614281189246319484075696168388178045809293657463528516837161483343730097193255910198324715235193755070116455426844398881532391257724195674788578653850428538925218224865530329916432941855202967390471548825793537484261243582612411259477208499485852167593998172018026335345510826973387683183830436043642539219547028997868843980320872331215757024407895323107645200788977186065318524038424167399326633477936499945872720843524261061871069184160998538585427828907191013439304261187838177930450627395756477190689884258692933208850260201018635459033001001425919128204573305885960870147785284193351418645873889880221331698746516210353854018816555277015111654334002642850718809417732207492107077887759940806413221720073866361380680350857070615983677804122058111505132787474330431753763974479776963789311389202272804087326945599392335591379405746372119093295692702154109531600863986354158037672310453280407582742165221467576361894269235266611263511798791357420983687822642175109733188680573700060193570028398668290948671041145518777922781592708263393608434976727219840022558137205517033643708069697563071905344836957906232116368910441833056087664103339922714463039701568097203044710068775922096737814036892341853602878993786167018035046660759186338728942566867115640545585387144674846676055568713097687428346452205724253278935036786835833468544907995313525560897964483929176825377790975309131344825211192406197695066765948973537119250903203468110878036648308938939568931065016505111192813970051112800762113721653003066808039452549465649603572476067349826839051183844434589074685722872529643227352552815868197991780618206701684190527303702735294686143826041546410097476389203209099069607181715145409679984305858850537538975239736859386146167673038221876347429356738394884581874466029260658290923060339111524655366556453997227330418693628688315556111554877400105093104874414220314806500542662566767663799373050997312122817917801024145720806269633972457396316121424946243289218639965455009802661576265299754659678915356729060170069673149575889369071904166659321588280843417664685036395692866676676697617579924756816596770808166690743781055851309843260449778735537188052889686370878791748517148395826819314620411144450822357588789872550452646617843406138502007359818662388989963385586771483511649219473902383404598647276409508901451588274272905077448307488026856875732151794375017535701882995203730383998151260576260783638547047485803947472501472226889070102379067092665630313121949994817819120261217648525118467521700684806549877168846517897079931698567175808448590501898400271918289944916076306817288723205990789544565289352633952973527925511294791557012880528247359827054064651519781286334925406237551975693336615026496128059410519110235000245201110928820487965446934942136150097978272842878188437191040836651954895713637233419818464873735663471506693197133748467939250403190082148909449850087455346667230206564970481015173605320591198300307438486844429119826780453917187462103646425746446944863873039621082334911317314075927225658078168454738779303230347792904927230683576951490445224274989235547844426240003972535190320970264831804255761483123076430082490403870053060109076413462614194382645665055750476051359284778505578944573129380690782391861827833191530440981020166983496113661021295112803356020882578303558392464109254732946876164714648475869125696505766662758471632304974408652791166049941959515399810911729590679346146661803790978366569555705344532791514012883147083007524154782785776889360163470167691112924661425849761721956185073137531980729199059792811956143341379215047228028381161797302757696463960922410782921085073105424605885900863658996361087480009888458329362884051029663203720350070357863253565641425094450259339987103742582882412089169787067179649137325090536292503533015603964683321631024872366259190717193469491270554232695237839762230261125241160189596970031120117947426052273321488380022069781464787560761113179032143268966249866301447121471356968679405542900904134700762987347960592106427347005639232423018812676932225958004336850874464150196793280642808594008351485337604762119793888356794485461030813543902332439616950630125300102588826357706704637532657749119734121763329658008152331212356098919522190989353285106416232523193241643466187242609482468369244488871831515713570140002201334494726336566860387101172813048079335919024547191715273773287867484495725302757670934849076080607008500780530315039601244117042176161350737515192834382587044244976916553213755200574725382960357461561950381351075559907882118480249554116422422562966257777031169713162554375223445898479725577082216932791375691048991716009936722711805139039562407034750561123974580635585020491044065461638651184744198984493059068791230380196802977287891420569321747356393619063105916241168700479120723492597149947755985621809632833203627443918663106928769910695965492514194465838740722959666334599073292037404497798166635218587750752989168015855824097697261848776732987788131718270479595916208147971719630503158900670080646633161021230297904101733117295172814369170186217367727741257132815450455961565121985316342834372776784534300945411094670433159547659932766737865072682671963128945657157157341701161355618057853186040396724146793231870412588732412582637945089132491521417300380999036454188407058455050861157816701664006973661392140486340217444362101564365336698762240948367567786096556630393877851746122783370034560959332415371853592082267788219010597873296161871586527509452685379662374108140818780260066108246686400044116058844099364240631370380617108595131343996742694213666272442826450698040564675370624777306058146266149441213513526003519440152209570393873750503659337181575987731816672109995107768860057098074983282295968542788199547772803891026447616613715795612217666519191655372136238422019569150626978644636444202289683705783342792226744917112227737646520334555189537544112151219134578234307490791898466462911360716294000293363622531476375719818237250050382144791442339896727822430436086068079682937805120859234916393568085457974495358851409106036624184035190546178816371347811079246754828226043804001360520349319464968256372661899262518422550848658229050445460214991558905935350892706352099789871932621922856045766629670311583426175687802601938951826007201966411535154143041337100814272602447514681596929666064601152833608918682859788757909138800754811531490201857783113468660739429889727720711538286570533100989035505352171758135436347243564136432343484198218743217486288312299401505659239005654962910529075551120301588222471641517115873679864444623417363760674459936072981460470133266162859244043484238589016597695841700178854940841586289733775866195593457430099661482605799192239866133023142314416508069641888992583845513658420821860359355003377126135474259878064980286169875632757795121807041148981725599223136922286564053622096088891185383888500768874157306885185974112286833735434664867063469804550883860945159500289434292850502027091662515824705670778218183619800164789998441625298478699556132812066811475283133394671643062770985189621514084996395569030891186500560702993218348725592674047984430587426386778184866698562833915881495477855654979854200766793996442365183601323396189578121951392018099748544708129223609532880471944174172367186491687953523821923370990387856686769766658652051192483771798289188437889372752228356461338780100149315712265126140201660414090591453964267160827426301541303531195589102640041648305789753890288806443427494999601520908055763210252010589356580183756281128382571696633402158824868341225154332623482650705021949288992105972221893560805955402841313851987898851189386249570495135837303495821929644231035389399818456184684796744080599229187355620130688961291412451355966147019979803637939658723459705437322345493537921203679993092022907220765315751020747518805775634717383186381168886419934629461640543711594371941800669434121906277359683086766832283340220416010086501627963570755481990981596281139686268609820635702476558811015178335016264052004841447882270852386320113333907523299528852879585133794236717721509418269082443653197662910075666531141051038891910714651782625645242425556823191427035194253865365094047554612284102283523177718381595317303863474157654118439617888403024038164707213952123082595037196130298061701948295190477191093172081599614186504578040983183885472043072626997826411903863254109426639993132571141402775201791092067748051261043600376746519947562870295697352463046332988379694133979102629202751046901988435783012430211135702218430416050219963586282643450047570781920755869501484924462099162787124986133635151923779528793926685052095181214935430119221224892050264132680264181244602531161001934611793391696680683127000017007617539715601632324818855398516236854864852688909360351791568040615124140427787765035686926544871443665705266920467534458199212218126296864009358058732694019919908988750037499067258346102404958200779604347541059207487834984982583372201164377915103567854114800118840412106445218056147037121406835890828055044593964363932329527435725583590745266130910567413026939432322045556758988050774564508975625307287394641836395780174062149719559535643229833334957431206157792775188572337667653282653033010602470464429696262579231928342584717372217940274852152387864740354773466004754121267773718612027215008067878054713253127186684191232537201135818558574109972975530266295647406792628520192917938950189908548338649450537495714933036821612474442567437749055278200693615286868053415185770996757013058529776236003173499023831962548099455438425513608863664150722284219177024148841926652262423347755420326644482066047734601361409112223979306060608096603603103571014080881799205067439846535796358606250417604960178057681374396055822212847897999981239424222249306358151320912406948771348543803131883261044340388904067802052525748237758118431614639426530310366721021275986783673721424537725194301866079590252516612005453785476576828886285724513391781037811077886011009065602845712219547137511910941760817750280459514090196042874124773858801671098803551372172539790553240277553586435015310039586144086989001574794581978882211136007555953412705467792694881701430119028113741310987680842426417008426694041093534041009443007712487861433610728414601402937185137804837953078566643124517240294932682100325122675151349766225637720879353457839759807696616710006626603353545195476032724660527287167797535815400399340960652835729575134780236737323831982377651210321507396176485312625938186139322549094140710840108300930927823175561410293855199258086001504947090338844703315563758438081056463093379408101184177167046248758075931019592396032213969029653734953067326169553638655911315904891238121422863541654389134407807645179782696057814457307449268141901820628902569189351296280901621143427392553989386599469063097713797390539402004663389372236426215792543513796352811120523856197432673893563782009090582755857664712729915063671304390133017115883124128047785579900459403757773332251006591722326501452049211769562003578080648377983230372319104370828604570533916647555010834056709216945722618471596664936907787166658359294750471909028469279110317081003541626861028926307787266248393626995880906732149990491698515134888564065881439271524071756202563924024953840360863022691864969631786292170877711252636937887771833936560560309994910434165895729195304233778166155305869445599572268064909786140674261731615582372255645738766907010007568194361948254405205668240595516580729729654996625109822388724624536745692415961506661316507300459114308491194628753854890643202007194628171238752198946625060571236963979061573267687532170339124076110293381283519234982381938814383758737272399780038897125581642662713135072287066934430592218020782552194519981083243725311725518685313101032185663083715229538738505371665324697461707829454117436374215990168574048870125396547507957082829685826931574389888984549985506623378162576507943385705972940224378045677966482838311154009709673086682264455368559411099499826149686292046681731628342469668956593534958324672951896916608791525628690313777929318597016849758443554800473140789011931466494024508719252577586581399864901052012858548369879456285321413075084296132231950497711173794445586932863714792359230836135500097460905459563305379650658717203752494716119373238102738548912965009209689578692737981704384331943364620237299751449410156785782192941163954223727659970569237386301447513082542521073455324638170393493934449636219163547584541545625304973314391039632514152750372954948593920950502171807514543051867581379166246742974401512367425499756434572889414032664468596279203467568070199246301796556088971284308813120198604290366191688816384056552383002378241588597982814079526698464181355160512960343940630036719045601014495723294485794163666862874305288715031568661676209866042396117889194314104452686801149843002482942765359323807576704055096859171711194593465632647432929826556151872556008120511910182582886918507822651075904522048658511951855171658338437474073712877366581776645828365984972786955164626690287164114937980648864062382267498732432711680077386004757179382609503790157014194105525938046015172523702351275651915765438697950485548843616638220884913575821653920873924948116027132019034876945377781388200578837235545674864880632916377384871437910361212894981441690625324906572463326114941116942335983007364717127831551239144992560564387333877314411107961895579817547864535437689022646179264051031645386715324489071181059821249566949004037501107248490632887413679725366896906957271748132948310796556448772335044629181384868626616294995366493378032825588372229627435859581934213633049676381026819722665948159493407106542798003803509201351225239490049091224130882401135786196087953475853623831035989480954762914815392290352216402563250295592031846248660281317908406606855114151453065658644180712105517132293325384269129390507142789167558041162893060965221004144313326182372634134691972476462038863079033290548927777383655818495078722334075731117608246762353072819597788733303256374436047494662297989661104644874559648088550472704472823953516547458697381684450266169410404607258888783277394306451698681775937491541082658593774652666335199438234337678492951909685142453132150788380737667040235460162702321022547785007395454957619703952208451235092895043858171228108985830487089548027120116224037938585233066835394563687709710856200128471890166956607172034849806311694764651908284653487695754149723416079355270090087926519024596980288748373567132740347428610585661786421267528098552857607897124576914271360763140283124375112215500895767349812827433151395665912722524044518817359810835057141735296819650892668360927690715714106678735868363021089924477875212927262380187804805355035986452581747460968159004635319012612340773144847786100621088334856402743585108232219499874343081239466083964194326969160860411919027679599701360033657355147234660780176425016288847942757570083027090014955860867126969562611888182972540471202672513085494150948566394477598693475324622694442416711882261430394902817982605619922026591020924726299637821817740014025363302551633412721308878255275780755402948771964415629329787656522692367808733119027648831265063354904952627502842958145572341652137319906255699518129214976186819572496531460709896298227243926553774342692104326574118772593982768312701508683098881847716685482653123543502398339753410715437734726302613715755154601251541875865511568984672187765364295426002710262034220196138086388948755933239238568827977417316458261304583065093582075027407602334540602990804336266061289698709509247935338595366630202055317102609742570525876465617698779281066070201364331280215232879866974067571657086869412951455409187002335942421468252694626328262115373436727340024588885603897059991566483282415603344818913878040190780950989488870816913000760652640108254188414093518893886731034955566911303154340113036374827320085428339395851963110501844574724494298427550892233420530217928960740887980540226626399982766167201069044965194238461537672888830648319046977845092776315746965544145897524859978732280629559078736662747181301501731840453356294745263303860135605559864512822664441256545173283463149063790537418346642605648267123041111228644390101437354370138466188677708605721148757363243256037826514229390032154017785293974918691395693325537782279873467818785101477462064245611968183778192792519958182062871152966192870841797377796346804441151747443128580380710007381081980839904432071691794713200935576152086953909910020094661572809642727170340686595577060926654509878603367118960745780130732406346232797020060080310371922157760785288558868564494045567451361237213990628847670606482816474919188954068235740493586081352258105008298813342237524134656584432853003882537648097635344293372094952191466848061626171295546568174858802194106113013043128956934036150869696175419906304468637437951207036016485495191841943027010469757043542838195791135700629606456534084491146264141420666092117916899995948393570300947560373667996892864576556228895489030703000815168535914353523752086652117657546682941636721900405348177850479425316106560508358485488235735682053285308351136032618408466746472416490564136665318485943556622719627738796250922271293704909023884829423197737334629560431229288854302524596931151985448201338551203006817070908071609083057393909842780117289830332435086150724213911678484417303802504441993893412983448398861529491498516492486960297428910569889097211544653690911788701098167710376954038706973997529296185795755193606902217516046420281832480108944390881043877316062477156577819563447755925746576865453393121753971567774604483627914231958928540124484741236748075786511430797710104880693085103526905697441045819846487106141415770786252634738370125756816967872555410694993494398630214649039151421846897308006466811095070805486631731991530741202469678530388175728526819321138154027571799186598410502077051237921094268009735446729257080769049542291117882433456494576576852268850042926114507422042375455088209005086503033986148719458665495651463360046623664977334535450408958455349661969303537836469477382355256673690480256978681435292928695444918664879905603727826970483456640685665360577100709902196056510263108378681549022422729482544491889647911557359911648277701693202160027915209625952223303154869507335135486592486971041874697304180081507667769863889119472924784352663077415597092185138041099433907317887445437452735451913977098212836659380691449673052395242608205922937747883042272074276349740069945549566779541282787094529432791641938425042495001967313974440895964271228413677456087535428158668470454966260148683937527149379136306587274915810752792632598457057187262170068949773722757678270026754795749170901360408021318260679210376333810790741993912991343700618511539809884158858982304225256565435591951819301181594007452579794634202452626114327261741638687882922642841406968789279667216110195813251435894384165599747274197613984943752008390035991442658457642517180340385617405398642358346964715840140601152117608232052168103457442647599122099988250744083275391777276031181908957847339670884441624995304952435206363273828292422693891089405121673431066065738275352983619663694466877477017037820175988362647468073519488909330402346659058966422217534468420578553381693060730492841033958434729842567467762289958971691189477257422817999165083912745863150588319618287650729040354260237624873302796072021678424735365333137511797031994402087396075854238077982670572935363618774388065456806176651654885695199456982100987439697151130817176893095301924041180029071171171962160241400191259293503396945123333704851178928345282946793156865051836205367148721785640574201179991815211790126585904916958256987083348794413738598153244463084686234794708951710013596964258971872956500033837927068118032693654934028711116369336967674140681493386837093681653692398550316695100231369581578735856661637928904654031478403379728821899302144808704410875535994877267068341536736395301426657908844945026651521724401745415489827797241127986108611025529662552439110204326910262781610171408292265178125512004342261834565775554353743108403799433263253849756492361776225775855571232970643956448738789524192029666934190643049349499855354558803284434039816922669370112430370936414443802985393976905342356185446452649431798310367223796999664801455292550843038734291724393221638847802572819263564589043637790117492200807244353482578388888575032156145739033261259966371203905587054960989726443582584190761992995110373990085096426387847392885334613785265058741910240918706362009685043402299756201249552455023536679415634953059756264182918264748678103842276487319528008011951621278299720653255501829655047040805999201589870274307673304195779601863812579100553213678839662974898980504643779591224217268441553946161239128548642469534878592491302751600095893194548362827128627469573905108214955266192008082796596562596654017687703304415825895950623024479659206017928645226937165589232784814584780396494306699019312148673236851182454215246616669101061823881776015455674283636090199500240620048593822234406285554099144125617181244765767071747871345874978120473153026439915538149031487548247975376250995452520882075455240509357117366913238204736883031524714142024514799107333308854802334947996263783957561692462827736542280643938320461479840122189348422035938767567576353192337480154571148572589305110155990529901137733070413967483821745740734331827614019828128457960992007621477809774757903057640535466953235554459832004817626489776071932576275719988179083037839375341058340926163504074789348806796817273137912109122904683423985221536683361162097875686244887271486101775572602447926465565582536093573070569046648322068556002189601359947015121608340537003546094615743309210296885318347737120770441563130349603341193378436964346967773612173763068578359751012700160230728566936584409766611946374941817322641564707396775731887768229114133266205866136761498847336528838576642584121340687510064566664599860269294990072346447504355039641143797370887492387516933451828766319271968749213255556580647437036303048756060183726740756639443593741038480921943356410361567360426430158952268712471827163603342600047994993826675706151429060231511169163261820198792057353590610809665683207886620539756313934238032860894345306721963959322160418180392056216864919700004561225478504201740758897327671980037048327876331703769568945249322585621903153144053144615224258443672643728687009645913480161429906885935812402445811785104191051404697115070413673987657131350423200237108166163076048148269172941066230113364079721773353288267623074514471429513110726976483727934412609751972253975461704904053518366032224237298995087256583821602821845225094285178622581141696519251230316124575946139382519103995940110352566620043000855388923644485619338946154568262503728256088867980702336004808612303481261605132122205107807518802698857888522958078263805831794667120324962880919619766521256044134103378227188901732551087463427998496211029946989979513422235279754072698230604134507610552620460862342113173286875651574707937092091590794294661302670001449736360451004938320089975831009378653262686458058859160818058704917047605285330828361421373398738041830755458183469631984823995133812499773715567770792009356786600023530136527517613494672816278808408517274617391131267765422984483595781131473163910065314657430980331465825368506427836479037839455062845262370113780175433277538287987534616175806704976056002197639869653960932303482304042247540911285275730418797253495397290407145905868508464122872155672324143529409202929456925448715827920523483547364159694033789228420324846209786376998983017195465179617411306273953583268092494186552013749371770128567304519963100480585926662530118465537018426922972558591464178985405999807152458496864295335734157464014404274123131415927674829666911376064684378169067849963191374221927749702855025262497964427697155867416858223792015889931315186681724692009582643528506846945562092564175931473664737636317223211552990410661573963638805407908450303332493826720597737705014307246384052616219557583008952964699603171624420645030637326643538660406770106621084955485594373693814199102067842134445412364022842940299383148276773721163089565816249386472331174259091746063940161082987182443434335315356985789243603874310865124086102522840957805498617806795373968169570496839788393697520982331403632054857371120696666517649220077259514814143450637100351517484463360917874207451427248596222944359274602184793632396416026766508380020453773191364219117142764839305549128327505753811244542629831229294943161614588480267621745155336897948434215989572005638615323122975028579820474423933297543488713421924399860963561097514837309317637000588070019669702141835022839102974021669958427489685500014679180282809033601758721339688912041062981302112123450418137853118922122571427052867191064321115026022578562491380100319363617039015374631247725325024289459057172892523937691411801143859151227291133587917312035331145824566574673969312282270603712214243279850899255658417706011363248044553981371716400615952102181338289266675911936052251989642070896211652055069151631145400415824559241202318205294974978593656779020203797870475965519306443781905521466601093563603984491225721138821781130213166069068398134217961970200101903832081351765728852935592593715289953917954616999003142941465331090913480507540513650278110057288710543517916921927909566523847035756028851305998947447094994574165238249448317754009766222849376440069950188807111730665259651852314444697047359113112497655025048074422945394034972734803640442013362028075186414990788712606896271601413708562612299996090308533157623676638703688536648002904667035783412480208442918013206941030069823497173483161410041651032315395910336954299501766089558770921792043406724439696064090396140783861635851463985517432588886004764607126968885520322990987388987567951744779991792027189040698668268111180045929263025207015321024897438917375113998413195958080035457091526138415680418269735447457543748931511079840133033694247103825010831627690632166624927106041838006088457970875960459945985303897680530165824041014756547133960719306139185676784474402545866170647446360020373246029768889615702813039920849261761690744171557050443799324862348511241434487381483847271336834038078598431016089145136378435419551966842439070781668864625365961316186053959216167185431672122244445725381005230811617074301887517483596681904124439005941012529079386772026888113657763767400870743246164349304828184831004914328090450396607288544859306873061862316149707741996328201920465415197522645978763230258157621161060568697461946322114170532447512844015675279580310821997048332814245731698204231139150866926016752219777395296915362604892580278953825815417309837634323088651261090598692050729621647953912843138184894904090132370606658825422738511557182421089156858966028401773467041168299057585896713098995816299630289435051560537153048611960915134751391661387582977854634846834459684008555329361905203860520761024615301267845329073092441616015364592065198215914992768348284317220298780281287699061638328569569810539196648588222732903636810188350581314776776781121326677016835083237385378598117018164085491138365970074640742619390724729809508862070279800752788078674484095625541615250688344438947775181898791753521409110948064143285980665229469322033774927741387107344368985711567213662577276537024144493564724780402224315980109431808694656424477279814685445779229785478460514170075046778210162516225064092161657065862050255591180284878284172512319740975531508766786522952842736738543824221507925452871045907014815441929681822245118795920678805080058074267724171461709122680031945575461545735012989155662597134369572002717304800110371564569625608354557627524727047495341537637242046431004984212613195484761585087870155471108415514215750185799234130235347274844875227435236756641331183106284689606409645013649017527695040836616914419633647497295112566725972486346665178125549031063897450552161732054579253827398170312581595875303909849706556043357488633806695493444777228211093230016167091887263182404124548670682288380623758072905903651469775740877510731275328299067355075949443323266445654931210686317533555122996455337808986347864473845893383186869651386274395006635022194392086891198062060612986756979250212066378268599599048887213455756554442733973518815552028487469453406216637303136085492748002191383316224671444416395358344511342013664076275110637184064749776661809322343222636613596298829185215275435275440007591772717986435120148175186025593985890743263086808649495339657151218830125439761954698272584120561198542351442026787954993275103613646158869530482963605742374552645660038732205699437728985255834210504436007597158129420760078271394912143224143744402112600522470192117057746167137754521811517400791246746878032471160362031495209829373137589683008048982380946090831275855279496133934207339220809591092046808812773743786974254169741881580841296026059665502322758015998724850150031252702548581809229493821582179718898103939523598373800819525389826063512083165717981962804011387234898472802213388527821576303400616279268082459168599569524021163432016336511877470727156713094317077783841104626409805115805163567750617368704051831047185136311827407972642114163614771783351070941808428699582119313606494125518294176899304082466288007037973241088487934756656487115605922663104365551058633569326306736820909475641252566844864184969394749466959697221427389640889826884179494672018378887688356556102571702042625749913717809120029731184118758970527665342082060677400688606291275153893150259913329995882348219012672892239105624164712124843199813471557255575650071515189598308254747760024572600966453435297865003514752857021699721391571227025235144639482038555587628606871242024599808609915487578618725499873036440994606789179691647011944982714100285363497696226952224133272645485967356517508249588862711428830171967575187839669521256879249299360878191972626136098428022038128820514345107864266804273130017442772605619792681317078854672558544589048744036222377563427130700316702217989277113104529285691064509678395969865338919385462059472570175370071053222329393446569547822487500485266588903806951391940715233944000276900943084371367796021771822279674254768918794743608871584258077093887600588282938324706740756898785849606700506926929124465398759989621231669375984226342615356739669474144612248601018574746820162294739235258645413415329287089126816418158753198484932091776332501950759359078415902549523533287448117321966388483415878493393617404636755989867045878398067254718216153632284661476847566831378295515557259654797304619574257848643513632686474965695653577486016072594262493949685697610242175249975545311325710630179435017448491258032023881450606356102090548261414879719993148376098837208705116564456955433433089374478668439557780641622201298896514207837360271825302694469029447698370160514595753590473541738226647608476202227089532258759790939699150590280921812191692725678702316045278759730197425427968908809497548227230595361765720336444875395819231989017185383615272157342390386604913755262823462543115270742481917174523101087328244000945075922929071794629976948285921860111968025249650520847029799286598703338535595885430086095201083030340748114283577598389286032707795613225116786936528774875367468773864216375955747768721321751086243662726469813814209509620876816044272808613073382292208534133737561850143076842879796752745032807924418125661469090422271071303428033816137858559787607043898686710364975814895780037561185324387713963594387749503017917411072358192431544239354746493684143644520612085348256671456303774513896336609953728395928994011383770483646372834702417951302571066740146410020481901433904724926009019507198141156902784849132608483819411308282762430968115440386744485288636759836801326132792947967561761538856073448244739252341081911486849461944226725289827018501201214189806985353077620549045007098151538877210108403480426951686535052814492543975366723107857219825379817609317917023090838413327418020912645615752123428200955498927141576577366976446378108815090461003259858148001908256093284610158316947060746514779983297035291734451232787116816031103833510211498124500464011778037020685706962075995743095757696132712068562457471403793505409221038473347778963661309564529480070146400794459238681696415978325003042000184853636656287641633307136233366037947447239974366392270429911511144256245176094581372202013124450641763787777290387830536951574099517163020748449378850615514620236019425428829501558001135692735768269124634710428593678512598673409773236176940814220535594001112357974963105947325642179217304386840129039658714886816991703128535000280462134091572422238136539551730305773726399637515115702866700935366999025171493761982442331136554121562619447714774837810997821438852369735335180586102719697602082010384005930780418478281688190485816664707049169242110531142674069750396819174847719531514477236458096532073889017648862769082947450103519725890684229897935360855406616964017015091639812611224703682319300909929655923508872797405204076007307224510011860712131809891965531196750987004937825695645291005554283727714345732920174760167138424945146265968698075664140100485364381256526829691864590311813536896291962311582976993954890755313656636984190965882498227522828746099671876279324383555348771406604966197641968622890774669720670428848243198957774924668488890434835240910209643419006143349552269831959908083187385475716710470983810564588495104026638543922717829131370305453160181439425077994527590449126634924596953558551682362654050962558302318712313198927810936460574248529297380494999156466051618122838421306809708851281678770854279886848815496193166524845662114898587346855786391388895670089076694473817294630397889110292809748013766075699264407392778567337060191842618675017759385929681898844480906196414091302646755956305198119928713297283733461401661317693556056269671169556492345480245566323745194636443630306143356894036310150714645682709568188547492383089285389286977761864978700635199007485808450113447535098202111497043628787785266881234867295782072456851150499734480226755646744705550014569938699743878014613315741186278878732499677530497394075727497329710660365717854460470502448764012555371744142887625813992179031986850651235597119926326599050933763529341506613254706375330849361276073042612493062011308032948991802177029828718460206686164319875271426389167954173556151020751381212148581615763390719910918104493469542359120854736575503383569145418991381097631636138503863302757897912836457488869669870822569917005029771395095135010821772848552802147239280824276255472659594370168959783983213988384703023078453441829180732355416813679640158324161113583715979700883150251287003048068566531802067940000493825007454757487746364883943602178742155611037585467268150064859432324976923264155700110375865920058084537818527489486482537338823548357308233981267672571793193854728601554752274096373122091537455232966054368427190678310851773782831900620101465703045897575913253971641879849177648191612148228244378217173711074710673317741041934849875998997870460248453211923668705272366161041868985402728261682344962770753130242066156785278804973846062580884875960949805606378779033439052056403578945739346259787146381532471509930125936852101111383241459923325112122679262722171302183605717472489180249857196642444572347127638477117594582786832386098311960575734935961353190819177357035116765488821884567385533455177924973851238068328003735666135426109826952848090263396322643208459830367074974977823039717730644616932598349437851596530935336667375909490140348742560040645077205310577400991666649809269785866048448391823769280075374879209577815959325938109876256501030050821163333042966266903942479427398954535720123711943312570292937902466389711098141040375307313378795334533060123662572740121625678118563383646122261634691890656980688423066031162446342268709792339134491471506559368440292721592949530567722636067259729064522911649683359349758209190558300561328319340468268564998026609084349675449805427615573764595808277251894110528896129861677421012736735045703108216228469016904458478051035563792835473372838653060960128839264005222847187493729628164777249904889498836524405766516963184581564496824882047028718690732601206109488493321940486922759536719127546854925984549005122490188257274601691896503338715307911588111812707033228211837208040916877413230921940616295557527907050412415586420124860316025146955970924106312489050479155130283469254789952342282983059049860472187752079206778729832760042185481618122626781190636736785396548396440670395430409786637892339347637519019106779792219511305226104720632020929578699295552286512857319132013723054880935533305621672603387325840827040944882005313735801461596651156293680570521921342681447994147704928042533674854876219596399131114271730678905262805284679995392234788874202149121446863223719925051317422736823880787764699323736455054121751666779442220061231790421729940566806440658003940202269477258684842952514233778292371100989183341172683031653643323328072311452364086263344518189929740039169449473072669285919108372939361734596529832137665497223039206352956357074480142825537554319410135725238902697293733740643639665895786176541924572411337473580078339746708139001574800039286232216717716417553858307406825043548564186103219105558697062716389281115244316372176820660182279831606810767960306048566087704298495068918512039917588525984493738195717883926416273944902256380296246840216321442842989412485589620803223998368722868399776113494582106826140793883178624782161745853591907293959990832343745158011088468121438146086735472668078177072051195108513415922984686565631508041603157367347922428854521729266897070024311817584523892904072589043707989215604258132697778813330416138978864342541746691724674080093234181904315644089394076113711737362918754894880935624718863876602472621914706756048760167001139430263769577479834589393280644150815187912075515295208529771928895544392791778052874270465609894858783088103858648699043106416117379356319260752813930888033834450768614962831380298539005125026271915493785565252577035759260968247264998170310689619480207885452450999296200870423281847245620288737929095095805428643866920450676025318844657579807957584944571366311576299484703093026430423124993979245049623990090214399422784753821057713173706440563727192028196117237008252099139114247777075647562605534831271663727033994221996243651244762177880222314346253414912956724915615303768366201514120798381674836195999982269989340007578094750822132411311441428934139560380057731337434094918419570847789489352065423889405485384657279216036645832545957331369209686591377818202422405229896704465753556236877614054450485003396091853488018159037491636084388068018750955418193895133333515657128357440524560474802792874746856427208819670861994069009523013281168922188036614522217649314348603594768222865193968624696455684119888246439255292452090149027250279252159731327023497328913208630043014035450682730030635231022857018323102979516932736324705317554254422616939143550304333804196407745371193906201483531112328610721617228583243382640590510726489834845453148740590747094148420880069192203882250052679042494740946808721672843762748383216326866534663310579381716468719216293261188433312067936447578485814256308932655299755460893161588127419119764279234507444246072299505748884906077761705492308438453886191298617987673925137911816733704131345038518427325741294630591093080903281442380213283425000918068728459188865340631094721924175757450479868255857086009216879245239309538050861630217557010387964431089165537110440818515567087823105903741981014701498911129338257139666506949432315175022773885941102564953141584195077292599480249111588079301303176499924606754120990850578475867053987618180127099365612386086061844821423404097699448336511373430198954843414414536415836629655805922149612706316124050820548382689556971962235637492575969384884809148280290797780706014711712111077494881843741298180165233494171676686499562240476347660384503887001991769415762510058060481522353316258436858611020155144319758237873563414225430788890395028101345708348126373157902435779747500456526565456005843661996321290565281462244427213087397865059000123143021106450979558924686526479516676548936698970740985430632677187657241159511767376762473042578001547970113235711530277147999428947627534623209344439603550527658036993293361299354214088252481672432575254159922650106023752466365385100526339532536355641807074586649750704820692470624770687696416074167435188610894768891879464162218582401054791748316252600106456401209586669033815572987056446125181471815663870512526894344860913240169934690042977446446721829648830614231066209438314713134633386970515594681520521782359147359757114734929384407358508276043165129749468242948181281598298899277362714940481250072246480950564730660700192524742665187656222090084991290374800171754063486950542301637620146697314212026872264074324400384735550714286291508150938182777325273760936578152486669760180102895673685880410965487704757927302516906170526951446265254328655066069481988322638791448080684818512928839559526707794849098101325334824820194502457719380710719953230266035831622813430105137328358518756031000601552576663158620604635481386196201005680746399303501444193185648767411468230985086156045334017694433327837424045104913626707612169091117356364144591563815605127012421519766912514635840825846300741215988190224424342786674797291385887512045297970156912849977962913189667448743984001169134337352580307537147561919740013249060691731867425388260638581312480101211229026272558375306198052063460938618901979263214050798818993849027395792222661598116815345715036649638043698391620060947627755442298356116261717647217991541068149879228366139658761097534326874464916997212954806520371064427559964770109667293747979165185208005518350630143255927029248956815120715359150368259152245680781765252808424031538998092814080108122420738655336720502371282745465068129187657802921747188990905012971332117230581201819621652675243669223009552334297678784819492428212385690263045536983693385332301917552933255229013283582767152036456625857847907228076157264640754873245747788594530306196812178914208492940909927839298528786583748670720250843020946016794890963764320676431032329223405246530399252417827122963105270574997223704119591799221199390229462273345474986791907682584419532732415225346853502744481649955245889808678598133022011376741986877818313945910615817996202482505534323249417156833540230541056767511243412959660377306386852113534562889906066478117893666692865325215412668204717891712185229789831792702370171229216632404705729947814499043340545635233370153972694342782053994178551889206046502468758137970375658842659991217330670193023626605803850217522525855059573152752363567147501404673615892499641455826238904891847947113417204192397823863567004994693976848689752637563214624171267182218028145344906428558013945097782854191769062469470699968233245259453832693592362415921648030432079834188998406039261342083628291350549348321472111122819279196407339378094086765101001662337724732805729655660074403039948620754397910425211170572864485342585515046228868251369301970861715667581263221755815928352804319000960795385367658667322623839287102873933340651132806949436012253590163173115509756273327700442292862657365832016286079204022017390483573617020235825953113651714762950474988903272661023725244135133195854405212774442108296500491331900981900182245243429008223374776001823725086059358774546359748080573987846019274023895554614344801448030975978160195620638274037868612726827645368219848714173744461913880549482383378001223847458381060768027211465675070773443609624283265162268027032082189571896182720478940668929700648593426658415258250160805031085377038851154619269869856319858041265985758777897507985902166295358660463531218147388114506490330951015701262943044760592927995221107493434837586591223710769571792544056686250539542588565375274294902044031097277087481588246706323684255232969281997292476955198735206077791336542299879671290331797619023128033573371975344589000275328880801587652345011042057580388104176044231868163543617758889831057906608614458082365116438377108983378383278580818354095568669132234939639254502788841535478091172638024060704032228836896162749056372076503673947112207181140058994673481559983738601380996117215396622455927047248141585249317674430567746094340734253727070199884388841680521457133582418786481133284030615922483039570169827992224494991361218383536336461727111165258129977557311196712254113622162447039434418948563262083563932206292416557744111919058968661725452541211160800862590407030191092739211551143096831674699308341778862367361885734319927026691398114387780674712872799852859142233372246110573786412183646954439184420247860055619204097667939372868695811594619543438322042419243912132231032081798971479358327972550364219769493501858425945957840030220088155822303463157242915009607835482336805865035100498045937630492950237838802314560883071701714964519370446839691360688042589877039471132533012393971535965199052748662833227464169142499767866485686225766116188576255089699917319695825986783766997421560020877356899470442444420290220446274791555396442927366074935384512225499083178851232373397075704696787771775477563537475393191334761780408155898359693837657864324142092347415106983122173291496041639196280025531158768902008485462141290546538429477009805839759031718782013140469935798562290338318098355876306283987074028168923925976188309100107985348780943909621693640719564864247302939861728036573369957228898230976499946813401018248829477425942482826415480183069487103598282934084192991444789102615308453236957492011349195531277264841415327682212340277655978655607746513268003722509853743981755968715605626147675986669748962828920261186894738549025884023360365593821541369178479716009991007430440597601126242678855287656366944573537113765321625556293616601493639667241862505307797252134909770849863388893048036423682932571011828860770228280595380202831726427782123066315703721462263087812920067738252949194724519630460060186243369583465903215935148858150109198097625944075804057164062193279838001755429543737236335185535868399922447939134861476430361555841681742905875359842229611049332320918975148584112726478294171599643627954201163434454835211453365934775443229328425467276107932635424844865445545643841531939981019608921193043321527122190488791905488966150908830518957854690093210214005660614856012421871631897211506127584278880606292007094574022118464776659905724304459840017774833810547908480622338634665900134533739349658394678412626609390224385628164826896217262277669002660704907734698119234019265231866868022102767355508815161063349918158995907597220172058599106016415481257052073051418105989930845380948070101792706058204551212461264969393765341995277644566569902810412797405447093686514987639749231222019091964240677162975657837678527284557388988368632942967227834790086573457361569488699655387459530358537551395823777419024108757417213009845883918854672389072080416139416108907173962214033478913481800855741515445391815566287947019266543677171600711810593536090963903267218552035035081741851697269573594534297541547813558926417702621942694165276561241181920302107987227864793615838388945153526422362788012407718705709897467647418962066852641312824126623363406572196570015149090937079357895828615787122305923153849028407191496485712318229042279701195152871286595149417918323171621912977637062853073768038788141733585831029618445376412902392019171965793301386918980571706917559318145331602520244514603238704998141108006418928620902724501474887350925825974512171948719267884920232199501059147616259438881369351094726698876521898440612795407756245558997759201066920866224243452048371541526721725778202608322765957104965401279224131255643983512763908872539923326233196065015692317842570989957856864547607737496660356287191813664275547832765586608103994630248014311497160828589004961352542718634779615736917582434421263045170805184085539173728747201348303428210497265926211395830356620717211479344929233475551825188765699075790470289897840454175767580549211990628433907443075584008631609543473425815322033444987198158524930696857967512519275321149447242597683319719458323955472929805874128347998308475179361279585118038476560595763463486820006094670831722967522753480228002525105342222137183943465392400730939918865168665376524670366400510588084709839910929042009709984099868107266713887386522606795415392492184199150704133634257461208696229499143206553867655053930646607522451157667030848042366426443146919765797284795477542566533091363675216675798036776112191423572659464889377352150382390175331548693323207741820756819317573326381233809219783124388882038969727857396985368364262748648148014533877244892070687721756154331807693673017060258743573840921995738423842471371929175484815926149375670644624116768282028498629823420338223952757184407222049104463761549574793749264825175415591651916880384909652768784177945709788389877286252608104102878738080212179404211499551661264068472212013914419991521097708521085380815987713704034770298909352042949938270634768451184476995012923028401463734236319623896947991694642082014718556506377392148745001938809018933150729348292925432426296073186692725502773367845304254022881466584621698029294977191388769009562504810059222833014827620692906585783655307202358908609713937770574902041860309676125574217721727887543852929250308190861849484814421467102895463218036190880163863267299284409108303724094697553598735386992019141115078644375563387849017467334477167583633232321911185418199737072899338905512760073304542400911486125139839426603400266612632508818888658719119116877354020448935862756131207447360914210710807946611683413062308161093930273688585990023752067971784324199570809419151145834632034267747678777272393713760064841672900018511785953662721564748992421162185650076829230933141313441967793951358007965230832822556942483960436578769889771821128851063012971136237183402868119342145597283382631894413462224304622966872328424435962109982618979318025260801160781475998645850024955573389877948824527090581813805199927630775505586857215190225558624274371712930946333300640076045332039141295778849854140357698938339012228838063726556430834763407576163473594968943328542907950494887564249241564588568664425361670909099774429600980369452314565722744679241206806336200540060130255533100824549556213486042048458527345615731256794265543535579929944117503143337002003648594578474757457245831589388681939328554120101328580049639924963460840539783170660114917930555740171664184585398722711875971308811250180604772607875996247753450253862952006922726470704619859156374866644657032570175884157146294192020374556644576432400281866996759975160420493188172037742315922182483583321087220132232490689670376121359692798833546041105577557697220042766121132053662209948176780831641451274478730733670305769459546905884960961977073009924571854452665689393064447156523222085567341156015688597107006813848062630874022071816394356275597206538456772484629137798625283578755378710132150004509268344226494264171711385086634880043034916328014076457405857268153460044864087064611762147751088466887489375793135317399201476351424822348216211298626800463111278774410684994039300688562604399273953961058979005727657410180199252784031696783218889224319312679031265861496761693144412560712357408794315707123779763079039099054835730424965320096145176429582585662775265621566212474678563878537620892631880078941912381924593193157927940636959660315348281953716402843740267194930835495671180736415227829460741855090764614570792016239570656665900902592116256665635951674243831871077503081137111745375776586704722894691158863727596521822997338741774401439455102474508982536051041784850696772345936974207598241877511969515777529770380768812132909961298636268076718849190119729788486636317896016647511358506204286089611528410632191808652469046975382796278115319241361448665661839415004106301332953873116959848552104653811395658146469277797612247181389401964634031077389614955715718346784358238207591910971222258714555141217557138152597240988161659080202131169555681293131123952697602543001425584332393360467514132610404028560476061127261283450663324475273302239351957977953129119931227369401939797229338718664372826086696926459859183690384623203436501191821138470648415372763784500956013473296090959255641865281245376788489175146234882194912560194671588403403814006005408506408601818329952133000816263572532378567451179512618935390425509648197751251781554555008457673379570952253571158668111872807126855066767144312950900971279224579655874727924935626072299092484210463105080545030744600035847340951057885015873306989165512741187232198504053170984549864582947622874388469632976033618324655934041248356706094009939019029215080733606898879236647339282763011143200978736325544982773583067111129103737415066556240012592585158488872512997113291091396990021396773048162419616561885576297908061629482929114278531017188042244336831410883922789655816976488277713936059804781206296073699906815212453458249719827556872529638968956189212713620526351306171957486888674544430548545357558834044335698509370351969342705058079632258479209417792780897976356987688199849868655116773966407739566190199904893887017334976261564068906196314769688260874429749545435596628435578525180692437678883311234385215902079440598668945770829782179719403828689844575494934469114894857361495734982371190204957707883662053991590872589623215270755288645486445451413729355172184716496789097888309668167108835502260700681561698505728991594704318885483100198856177730410446586667934987506239553273273840580907130643085294006768088377936940556607605509726804535374217508873831624252073369416554572404874482903297877771731728803410132061687211646763811284570497241522729050406949750825106548979656733939685920727928158077510114361380038177988724320496292851156050367085135237169460491967108975503248289077599257814258375721062701184979858442947627750701717747814811025755246976728386272562137569829205917942853302778773946179297701742071636315263974541101379114417410233069617699946258064640671342973366764023409262607026271816323238561152888785118308790387270557750116361379267446640214966685841388514004234181444971182016798807628822830352487803857067497723148926538738258596518286865050482297642502380445751350074084729232279638949238047353687662593076800814890985517451733585023228223347235213329773491779692448043856870430559023508747099028460133868097190840954974779713264548857963549231565696188155984406314830898519913406175528708250226711310823551217587003756293961340317324282889141211346759487242183147551470696615726262949140899676259821710893291173335470691715864916030817202209208482489382206682456180006535189900023201401185709113094932188682390170531052217358898109037277027734294463335184394783969334786390096255715992256926395913351696097086634108490254287376435355883016339490844279268215543824289822963962404056155660382864230699265568919670624408473447642214845463060078560243951409638695352728080529708344369317410770485948617252413652926850739878929784770155131035759487483618770393080659526357437033393414859154876424897539218585623710837150237580424334300608947582843595315603171849066597113946295416197423336319004153148018397308701960414886893122511816119258804355080284827221143911138141086774884921993960856437030123611187133932788592060355988275479768371897725803201171229020994023494631084852468377443451800402512462988848520522254937853617813705678207499154828987801396527207761897503258559960583598699241277808511237317186168494491516994785533199144534220185900856895999411681399441553665297476442354198245827675251801139616814296955748794471629924547449579945796108173843480209223501697315578641260894615790099848716430475285051807801223089550178664910466938020794195819333384817075522195342082808640329884966597425958684485033208865525076159090879356338739858392757513708862540591010031832886813927715965554440627762623949112366747642410200925274744466270315971537699019903839414556226991467516310246501162113036376959751515849495051712262352558161944307538562607731173132187707464607548223628906810906759387590026114406218650285355195819761236993635292549898822385651483280798153853836836484826466813416168266708685049409274205440402194033874861533866054546042297282949684315322429362137563137667873202179568445375753531797782440209431599086682602861629069991970364748823806082182860478666827514294853165674920489555977355428551325753909836074463526537658456000590053853677407694142731197842250219218312557219307228457621060152076000744950277027419439181592103690835744975498140143411419246323684415144041495189548572047029618560677150229507716179275820528367115888970623478051299967654805526048095720604590592800507141300185430571892843608058281980597131287727296458890278546333358627001766333927598001708541045556779396007968000522130698501867862817376553759212393750647358025916985868180030082517990112851653815308635286665195756256105405579843536519939415135004026516032596444618958293366898720898875825620736413848371591788474211251957250734928613744144762440837613323921195593321790444925018298156608392937121909095572875803858615369453561656235096339609629517632859596421350042136595194883492907286223978066326178282893502618348879157155280673652306325050236927789047060957935331907188111496714912748586142960395137543559256928911262891688977819594443753138922545649886667449471006267763994365235469492569732868665272633248001168144314389556886300098110743326517282127471466140210575052773591057522378227063535529775579782970670634643119889196126531573869167415062140862232349743504115926891429498619882436058590174074621633309664733986669024446743589214214543737173993649885729112655005252563537311246294545975448383137098902675796570554131133111011683849367158622934158602192437105668909174577310218130021587824892557629028107003039906140919957643258834435072727722867967578241658540030356204769196146314126962803840352317737964413917375405889200546535091478983752204973142658803458214584799667883044520801133870875829370109418105313725875041384175595346795522711745842191239710545991279043937472836990022771373808690151911458860836565418052503702966117098710828310507597439760852338554769088379165427303278087956200025639612606721833335759105194285307644333214286153978338915437566092999745703684872047750009362567344172121265863578108167933057095955818599942632666782248485645096073043761774888783961523982222552772537823401454259301454497407023509485674535752700667197877493806180173020709392155146720107042308009872360580481839257598501395052220354770793975398891541537638133629213841608289637454543260287931447551985071848938914828276839031016926276780938677843018710938499856473015874524411918045904741003887154187666600680112886225917376632672654596305343296933000904469340545399945655927031932959255239713335097244835558328320260396487564185219255304676323062567775735349321084401700541450442236798141845751121686294443341237181030279422953285516551269770145071239415194646992280925458897726138245874361013125381757633384284951089601245855387638725391157818717857111715704599941562008950863544896808491251672939456148497076677012310870009006530859558453165050277472695633428781664072371296747574449700704649758892817226199671153061469533995336566206181497058179714950016638481938805296858800403548332185025248763044696727799733990527614337822171132453988724058746306526811822402809319824650175989875505405749859057956484228338331693991946494664521922093636631729648749543283910509943585139347460480476047589507389898006653403851370490630898874928193042074780326729411732792766960797570533418833459773121431060597932819754506762352179041440032553534657510939821088176944176049308161830287521431458513918293508453769395556131484261886215847759501184208530279081901343866382831511707308182614330388598005030399737156608262970739620765660539825190484559619556025468192352430092436164582739415723737041083163869934329654600755646518961030653278289317793103984116674464054459995655795060848373227669049268971186466383230940529792192644251256550076616072929339698581492657903786613218566521829440860300656993558715877576615791672680415115825722830370829524249820701393451898744538381432536754161447582269312256433169172183279312154852283585820661396655318490983166865990628997926080594665785502932590442673880966216350516095655915195684785386130712778066724465931975158066698314200418471072026933325828087256930140605445700727097682444086659052923746875688466310457316074893986754036126042856975766268758762271703195069584735022545411813892337912632716624194124783401076587632849169551148955601022816150452116968582353520570391884068731532521980062215271032787900293115265563969048937495860219723073817270766254075459796317560619759972900171671889625573166166478872504230607634020134180462836093772434937479119975843851933473851699205174493362921754654722394269291714405610085785535808318120119928424294411897958733639940304586723300554018579261902423439182668604128933594522350547896786411989854356759631025635486311822986281355357822129372311705261963119245189845038034114549397767034300603410720637656234817308193641026609693617518307027374468821047288685961263763611137469847430837588016818573531464595131306806490931412700006293726352655615882327606898930273707105320100135091651617260440422675076218660445198219727169603052496152264378452125526313586511399188614231360131908805583845563588758023436308196964133392902830986839441615415741320178293260000481426500501583580373543095396058103134953362044099726417906793985755597682169401421607293742605140471091187193777297513761624229768167541197096353817081120976324204225975680559505166342050622065532129105516177206728335997201944426857577785905774736656724342568523246496572320070253545356219730769723183156909463944023727979413303335098334850356157191179883729052437648345766888364957124126834400630691575414042095751922043982182041096997819649226657193179672110169992772304931323197179853185043179080085662690791110384219183292335583891365114503526028193394233235092356327362253739910315315526542683729867139540253856922429541014520234691744202453703526882127557384595269014935575355162223490217535816808886424432014790056871744229762456937358493169842237907305045306419267064562704789662978605851967914702526173678578723021657577617423733349548344075604515872873180631390424923281915136987795413005443647171153543846053135620536412005114173440982379463376629939701415431715430820184789829617155202357697060333993041597585409038347085720707476679589309699532458875382466853569863993512218445705663008132330866116087912268593691653718752436698189805301019293265549267664333951467396464469775692710029431830889647219759293846278794917414487379540102283160948154841087406259076526252508998249893904359045705107378127362754707278588442343785401195108183345854451870180595449808593213116043035986482038729305316393061556024320711828736136498197857807736859517276107145441541808702913485736555423485566939011531757783450030715186345712430349929909618705463426395372232476476636446025757072775395610722365188647972475365622773039007847334045696845383962852579095280883359292468661437069969972535912659427387487484290855807418873042345793904767090405815231640583825544859650097019949226612829153259920352674907644459446928612134124164730417320876361319963019082283593973201318018497292963611862696018839383335231629105830860721811548366379736403987164611641215903504783387612088936347141095096981491897711410578909638740880364775174367597403079127269235902571815440677121380445204238870443555260939982597372859220495619925062313143555297057689517271587380106030383920602368859882648600548268383098251252117330114478691453103456182916920527481821497469250729533452307732744377899241029894662442096586972717330740917392459500016541020397706027791156504220514653527133029783398358459058021480965031369275455478882688655630035128714389472420988879616687392717511577389595677352137918397876942588551811243516938018124441121048948895117313007625308509360958613442531735822036782278180974892889510607462836820451544783053851594124711207629634258143410293745168077740907460282149899138401036147724392212062375451088598796339895480355242564371680737776881931992526972734334700456081062944681203439126299273829159274148092855753887680474464526442434123224083071242572730563842412816694571850875222125891298048791346546336221279915758414570680715949993484118389284907697053085188581266008839648127241109450380741178905457913013962287604065716530772367770615964411156064411558275138872911620395857632166740507339687350701899193039297950764774437741943093881481595856122217039945749586139702976413525898843646015288612895574590300678037662881770821566361245467558188208629679439739395121501753334593849872673295103419387106337163287277944119737318416103570152351809843414159460248861689130592861499474324602733244127048795515653222353251238736522656796146780397848512528655665217304617379531560650011587494635549869173055624091276516181229430668294686651197463536450739013591622983740838219388286445069100932206560765325429292492782201080395628412542756906179522779099884709230340919091237676845369794799818187183350098943846161716654545241676212780018282715259503112287833608003675399924365367886002969714486328085331708349070784055256649335374761478826038586298141857161253364523700046462231457348543796317231851950884055731223928830342700822542240188867493131753603586653522135269952038835963495050945655648183433603226529028450467749387837243113299674723619881941902143633424712913455313100396762576161723424455879280623743417850995744623059388533663224840382438046282641050957548997617407334029904043646802580732994416481693239226243518108943028547049625353323567428913133745950669846958377520400676176289945885470780021429527101937658522891446030103611031178252571358459488052642207810899291469904526107704712827206368329624862516146893561857154515776365875892827605990103029160198441751705691200629639873705238385350988529474216701556266869909680343268061143881190347717093559047716772806317796148414797413934876075028687030432380763566985135312253121072596808794231543783427215007880360130940067448857316544665509601688724817188585809661948412190010137140481701965438109317612283919806657837133150392829095266972488228846333312592748105113094004016096930720408050580831071712053293456599833226109237174438209725001252903697819925721772704193182047604132439152602805816449910272247517081888714587560730272462227846484033353736439768151219131586776293527693957030646296121772761773020865050336465927096813000781421369809664392047094179625560317586015080408006718554167687387313383690470342063716024337876035329749520002647918569002822875428785603068831579624398778641004994172350604024729730431152405126143954201611751494573679468218947395427978231628639490054055947850979606047722127005482631375476357149290517583998102677833935278674981478411783270390662191026193474491829204490772833913195506337791464811500257007987610699256834446022102451344553160233898140874262475585130923735462873080041582974959677699556109707247031571733275307404763489754618574069175085643902469286117772701850853587235158526036826631021997252446836129351893599358501858235893693868183595361836752845638804326213533064429081779086299060272779880846041003513186111793834789566753592510356277875722951365304744142833822518406978548346947653073603507058762076607705009899576039159381312179922948537808937041843549381486812828855211301930292291638908229710700658311966801624928258589767156660016168429003947522026187043960376791968091963395132596198449711851648666458027711902818244216639981518353993279295851258330026819842329246103093820408895798324144603200414356554656636292459849779756240991788557031398245245830515091693684506659745102647996785033459335640357651186238142016403762904161902981620216927682271671454688970428984599878625025801892858227440824986871321497128081964901288449769179223510804032709808459329836434767096911954754284467970114698903986455030464617463204459864110161330973543844516031515001042913691094106659589968286865514725761084110194957022444381397282160422968863739822270588767688907896916600739822168654522041176137142145196553150133302574893873765303125314857546276703168631082186205501687415836354172219228029758074503010511804748046494026524982207217683854847928339853495473308625281154476138277405853789987810789719759554100516364325507580766867630025384014386790581333011693486786462977018244259552370658542579575499792706497209992744420339547317027850244551053534877206703552739931157860744257045200527697909986160901238107842890703990221918366222906182761431042018810876975583688684609558255507085659764981853365411281964876363385051476467369145708496063563748090116786450672384278698736121884494565083334458746902984900412029336860210931169495068318975591891776108084129194325790054637226709856752454689773029595757051397707848618277769447350891052711134889711327928770664964834103459447868347939931407701172538097548382555887012245553600444698254343937008732337226172597547736618745385179910426620314031462178515484797771758111173786744964434713878882859918982097709945228325779469684530012905526102887098538800800020939265786416254590278995153649440055172627269575898145772875271439945778437396069636088574641611558499724860706231505993835979828159366779684186572372549088223136135218090414134205022612793369291329036011827099219854983264874816555005877140211257196400396261835625491888192991507105138063700651142149388008967104000076830481507945212571505380039760120170353157685790277709191792410394769924980565003855922294694042339481337384112565347849699558443812225214622976813214851417742144309432516846161721932545089273139896444839622697930350476383021921665706999519740794162076117585131265439125208087535844862548392587264312623077733115981225476781417350022804338537679081246476037949230949382978755448190851713008309172361936349328847040968090024419658082717349578117302283676841758708758596252234188132934124201730865286049174310356739400152061615458728244323076681319277689604562803907014324744452898146506660419074708236263262470333287846094872786587881193712422818713071318535943863975762320624170381362012867155760357062021895291851123109780203372655124598319326557266617557638166021129799606559655627412781758116782995569764847969873041543278955590511190255070689952593917224518007188047246536998339275394250542240499848572530612036911089078235707049537940011456711673901594206978510930588636134207074452719025928483187616670866256683908398949073183678061845077139542009911003296059651446660121415482642913809437036963658375390558062673765644799165778004597131657660344143109500249680715562108335842060699650613567899894552759651936063446995714521610031769833893323405147021440959660641116848421451741348997241663584808487333293381533208235417890452126447889700985117530928352713525850346596538096382568925217636369528468045422573880125294587532872176179430230688580373714044492004846576255482090991858237953076735822696310186363989073847348811215604187751748002693951635470553562703640336266367205889141978485254740709203127640783848158962278203614056805985788327979320996617523055600605943008739143867353542924967687742537584450357815790611950810876429217704119958414774696702203132783327142694893696638852553660312406446088360208148612022584894845742438505978462150688914392396070740708954496081045731220968042998554368180085970677984381193631966145814876876676506812287292683202820908552701575994019469302784766606909847102914504373442648366736353964853337246893512572238534675005141073694496816075844948558758013046161879960372155192641515813147342436893681428212674636813657103771782649676731815430072577082841747145218340618797105124824724211852976472853817797000186079772290014190547058248243188766481157484482857473387142856707584989134415661229020839638561289883847102643749674843853397657225312515091293237840817659566481025457324323628467978576139344609933348482017027844262428861646481580111672963695053337956498203718210644872826679284777710173014099571278226999320418016567042322403287241024936484002357539449050137241784152580618276985724891128272290476930795576290843192868367292925530504917959206482129976683646215117283056082273504642726461355149488435345555518950397801043215820446708599381125684936374630954074362900331791635954673907938911522927107344384261118710159791880660945726085847712946225665140342473965546756925591751866975334772332878643711426520826018907478708459689562646784471278007144691904917893812437686135488671292749168665271609317859869977165035706424696036809550065479706153385483264914126010370644222389970820773947031025955786550792769841215232364364583709135587274657467449183582412874668477343484839653223535238546210822881656991036751817361552812655311124362961480739390228282829078615477481549048233626155939485544154046961910271742203090440966103105193366656904281505241169031470169820922343727840740834400716000665328647579472911712189047984380629846714548062828839598104548148586274600013617297718310907475289351828516628774366459779165757575177686123821615164701578638828353141981058584788217276431647043329462582268209421532523528975092714758366284248970347394155267414938465243358496858586055624246356781564289860925583805149762693811811896492840521469915545299337907415084746559458852308190681545417682282126073311976305364989621672048683667088455310187901749888315061221456299272607001507275427225461078896849977920239866270918203456375718903149275440614240494248080765482922484604541760152291244501136059309159746046964229985718428916369346761882104745373772912843169649553013639132992669756911592028864436613312384364432366490007604667195387246109233075708658411795264419990758591587322811640915091690558574797438629610020454887964525543160061113017151813578161891476962094727768994190628944869534325650973238224585095594046407988072455856583509637257384685342530503175518941023002839959991510373733760795232554489104628890589901200766428314729982484780654439250706749628585396310644134099057111291946261342716669417281617345028512791886579625639924968652406056646761998059317152480207212444135455519433344487335005228428852783058192899494144348573788032485173045069859598549055228611813687577202673824846507583163034741911321858155138395537015996301481220972047993603827613980283541674432280034832213811069649702791075379814121573982572964575654703539554230954633737243890889844328721093414238905201732246823487335657774082761655606318484981437003554836028361020249787693257773907235838735742725038152008657161481617127380836929945715242105612013353328645062178627684154510680053536873967097147226278855489052437722818087400905067578763078929848824954886286390459823041589160676647685879201362359237344885086933005265229359337224726583811216928218005749077888520536771231315028064668100370399869580981781313326935999843331100773390155079189614124352494450004710503191295244700063884715986380699468397237675497222130270275961051224342549199050868857103970728760619249382861549247886587248082729163530706578450415466703569220029766208218564573144910402841950622861845349769738635294412964639720204947243934375916873081519880115004857158982164386851808779648993733853726059492422703460575051568121014207170964391618927184559689503165489085208381708277716775524321788953038771353040371896499213262886634550464447664877573497882296092515923844100168675915898356906930058220754512074621376082935431176065856385598878090674843250737922549605348389743768896488932341546319003100787487068039482950353240912494267652202776864964018670764192990972140243283772223800101922522235604762544032657503934652325043341282411332194863035768848171500103534127965748341488036310921002154522586810855837842459760934563606799225743382544173773535397332777703103659205664683331866131969306021929693402670224327581111011467817668123228012426406745234454662806208845267454424429936805900518383385012552230600575338064228604790324682476873552162980075467798972219686082113243044263601113454260359921171271731891280153467657153763332140591643474870076806487411457722267176591125421469395464097853567713544020221425452839005997666312564455422974573929802480919916871192828011607270830850823419175006052160075073956990171154631221073337460166849273279885772776715323194275053187463670930330296480341237364708554503064212729399798683280592005806199268482990865661970119228758585002434762695180306959696996334775150034844350425462348220146983767767137086086214107056402187890097709180597020085888288672509868080500437164458362296714868466450081573728470339883717687835358639526288197138941501935586571995948882246134304397188755999852571109096668849351367300888785978405094334524343042292509059427382305320924709946312995225128018908898736261060214901291857687423029141358373766338664994634131850387651540915858660851976431644835461433521962538189261592973129145885497722278003663188231150476089407347919881001748631516987388165322573177442056737440977917490596430612626125028940132464393706284561264001103433725255931561911216251597169166652353225565773875333952717209023324732533566500787245651728726620042847325980200223331357048641097615896732321283738590672044801004521356926704252240802011339741375424382591130434352505792615775249450643846609155979576424294358186002456371830214009086455842200191482586613655508334570922041368259349877179583876609574087510527830672229309813060062459117483791338591536698804666811919803468059011194820639283935693767957688329286442260545545389166846602155425212689186151674115430444060934067160722147863532459766965919155113248823990273288794472182078566002695880534070073366554038856527156918871741833075665220861429404612180354621222571360726638995049410920001916641750246337401885002568669815272751065133744318305462218107325770687068670455730718740201503512414141027712293202333820663233951083841515348438074481338904057504124000451801573651702489708499441768849055943290151882487290686207062469207170595045861674212274683611470274797137973639535530687740860656264823158081172217283173366701999521717073094422200089179591517044377324593994522207428686928136240954648648512880542856294196774078863662147727445525850984516945530331441851103370112169049595363445684770734825829738759985661132501786854250997341788221526170635180279543306560609580164036111801972004438833094111976195508251794285089655484056726802614204094133514114853563583458581978458915600816408276758821597716072988710666616561086104452167803991468213543546410825684930185702086949753878764236203528253998427344262202300331370728227096262436783884568878722873689096477415373983706522663175903114273334814378362112407367654572708599622377733660442811444774576102060562729475547067627912552421239938824853612871080165819609156456816263796309219183069167691854130731731109284499847578413383625025645691924614938942211278652891197747350128077931103448221072081171879756143199091667374686347801810813645577967368475026055499808377094609168996972402397409723816263767366127650207641531173958950362480910873900185993845011172694037085754603977251661290981468089451563913860498175932201040575958442336827997147324503207649169875483464561502215899387529559608926057258685256502516321043773880807340451948273651219083058444487775074502241442076220033460389550361168600143500518914215426006836399567882624654281673213393141129799890203152618380753735586022710190538874363321805218018300512201966315872647867426012955986912254624624127113039947673812391765922871915801298842641146989226572305700826601363457494343057336509025088111470644677293539681139839119927078363982049720394197537714828623990092161688524603564076890792339969331483357099211427968037641603531098716284998830333440058967963296396316286647881280546312424616793653672629551117118390676823077126985674951561114537571925259127379621538897607009526502423979787929812812711691032994753185998280390538896194563525335933434181875640104216536546010784920497471320183413871782026398699467675813067924671969131597709212177304274210597984160432111464706839862061002202928815118503738345524545924733409260139437336094445101985652767526519400333500737208341133991742354893501442864162777678242247036949582998292628976153465453911454193953918139666591543526847441722334445015416146285418578606975678695286215658465722155748102992107765844549187900940624303788799783070831246329159890247173342077352727535196335996149360234779566346845613272626435777730105543920291438893784155607165344511712742078228431432484414194426348888631706512706206209894669512099683545418176357232044281375496049686826116603311847484069430817840571924993829680626846758341810157706204342822334013521011325631498604375757545685806493777054304307707532989272308854463483092787490773545330679790780184552890025043743727654092952256109130455098991303591366893735806130263536441788529161449326191676778645418247185490872794986187886813915646205573389293200033494785943291534159661054089494334892871422373014152492848815907991679381247248055430398848071569057900372522740005237123705583188127067977069351296870096293311058123624840993095855954834311046385631306269905971588548500132946194768205355811886514301801284643094858850648918254254161089452308966137148050394819406160225430830783215163613535205186793826455063405374673211610137627098459605621692393608192957730686622345221877872674697922437837706748984576632137036836398433671546678287209995853166944200048403700898096893190617815987321529711852879968184760970362328334693387128348726155054408569607240465482322065472932313767251272351146213072692106373738477960261821439789792756699909639921763578452513540217391482608304882053467816128284369689644811596750191959945509048744061760714184273896685758408975906246326812332096721394450397804423330009557942409423143365760035396366169385322574896541134019627650701775831647036379396981797395138072723294945293064699144153397415979116123947362441055582030265404863671758618792329421228034575271304236047794824169913685161547634657538392319288165139972578851798656771442332209462139304023661824556174316396625309474478010925032820769705517347405392620491582463001987449752566181592906628504126631508232427920412863656089476524417577758625507306134612693190977604746584351118501156070098254670457739961065589751717237105551903154094430114771427477676238540210120730844026041512933938909478239225414200556042118600491736265985184914485511292106233344303564070429068277906160056708197410420056401901965360204964775130937955330872604183801177987497096098764122545933008848926815454117720859495335940097159644436166319493394678028257573812176124343790221957329147152736048308566390328956089878048237273880966696452559846951570200112895746407644749360315217768122342702833252021169289192429511707340122089582700699403454896469865701489887264178598109725789202233789000477443254560725206239920431689543821498640408769590522600711463787744102476526475570295158619245060348615359055494997404225424352836714042608081109731209346121533692365568890388694519852416824649873702582227920360598744225138999754483209555410430450455743726913390647170334178528997036591672415717653886462159369972833000030907303916688854442592326999442823538691645887045679110414874272417181786084425972671504054463614818752287966687082331731537657400124782042602005247916628513744212954074959980043422863033748252052905545157157180506152660615887006025943171744430969819251853009908712465363161294991055828833626166841903187922577687588922763790961425479222502645621472586653209891967936114711618402547209634178030265286067213035284152824696886746814213945897460226117246132483257653867510745945837202481952468954354115130654356560760961875744607929247768558270040786920024180202926007148986028770472029598679046125829234844956027562788488313102196030580426775612147706505902372161563901144334625111201793833714517675702738734890224999877514494687880266231363663330021470141496278116935701712982735323150993549887233820092365506367507821120468676154923159387818438115265541000939715240215037941987328611238390833678370710763464871272246851702147094615721829921830947279358923591570011247009852967669035833182805128648949269831274946164512133484865906523030921985025820997962007207754134499028024498859529519605230261128877446263335543250681258264039915205180363644876913230322232676448873353068021765774264036287550973436375534153247619747948905832403631298339785575517428524445470368737117135314314224855517856760244015513014138836705073858091479991063601457738720392010658249706243716472379481449841344094239405628906588909644091173045286355265361683903126226412868526109566690530207345354344168176822712838964771457590523930896294723355760028715490363982092075604502290498317513242020360429259315281847738174135597166329919186740733626152582523009611379451949666242736964720680388462129993109684837769813661549710472879256151926014034051543357848835595644450837170801084542084995107883565171381514571611353716901582324524396077917655332286792780328784957426172726968533913019840666758951477905724324792652006328357057875173813136497049100359656712272183642897121722978319430536784182260525424573951056815828424225744157879387963011970893419512370461683200246438175567373887412442807202367520365525908276098325494319416733449050330630060166735414805907563449456330982450560022263276975211104188127723898603435316308349816404565003049750526800541941827355650108080563949604848796174185533871829596077060440533953544829946906012665111095685863752799288833748604115570046113282517028111090229897741442590059194744588337087425581666630007446590075267257583150078437151855272955899638636072460187584573137047270384672741241725310905178709744384085423383520678279823920597879173162751525560972214040624652813147937997476745076559281120048714574153518121995881674478052554269083613167501640469385382417396550452199273859730098502749430366800819139808233207740657430856743509253742113259387930109644756541927494492146274490990703828041463658020002707997552910941651872499129814657312164660322365682041810706012909350003166058209986361612861345509995048426363192034629725676237673466645862362490059797766203170317314052358334988637473737892938571669978763692553321662515001051219785166794257633605195522338777505568411500483412808470753350104401296386754922668864247357580975141757497426578239905196366629823488399129970471298345345490727341246767681910403385048014857507567004051718945335387626529680832471691236014947426932418151622557641003396275390920474500638764337276689026257537751220376539944646269372235741590651212521410495460183661209392075442430434952074926754559289596097753908423772343818880393267553545013380907331472721609470887132102479304267644776026712586792293366121073958875657550343422921464873111325109575928112032839208159905501742971938984860681991261823663286215147361290758295336643335057663368767316369343885108359884639714849914305294758420918630689378506360012480085666635780508297550634282601087317047440723426989264737988663140561225032275092004328951048797800704720052774176812460119523209148924609808455258326770308535157322787425838242986283282208760380656249372380775924985048512676975342899771446945507513230903963132689769058330487207212723488668665658636572792720288766250472051344153029662560390257172438288398880145848009507426609304828900970417675993369844854627397947441126985920619245357924547445330113847456285734320029913932306497110095964076082729720511175313177180035556479593861852036683601173117398065451329015896120872794084479391367786854639672003859924836009737180431935132707401714667188033682388707897576233932736010747192967742810706419866894933965560331100851280892731221523970159412069576515291507119670751529399090192727546224706543908176332061402568555595496745313100771544316063282775485911585457066160184755438858429467197939944130343325003165348717816868605929268074898406786710835134326426041539911673669547065232340016833287545232086314276485591973739184487831937084052619341935270411238135853189697722460430960236307017647475096048673641097076933896331030239846770233988015323553590753940245284982015411215001146633914853639166479565425921180678300503650451653002912018228141042272748630350992777065344286351109591186360247159855165511827368852433279931671113449297238297130190957568522694317866506156011934386954553212197400993018596767794363809834091911387043907086619380121011285339225338697152897591116278197582092092792282408835470117622415801252832868696570359431985854916656453928967191378788329730573430968039634927929005114493175095392236839025491611589367967757187917355240149820063065844479584860026065132285560159183481746162378171535066925880105407767755362580391704061742350582626898335123995381621629002175323856115069014093435690561940147194232228668803575525174902928381934792893549407131125764805787582677786872085291199126738235204726365950798043516133376205476808053042227098027098620931044306370865242192756233188193727085716485342309287943603168611715262989814757987410755227841128883960415615935507788546917404653053309793136226707138650925530124005404072839910701675443507011081401555805568781114477722535104944130331718417030429002605524056812275129388240343125840104167635706351528269694481176484033608824140916933009006149189310330482416554469520815203342993294568344061953762172276960556117779786444820713392680192762787154135125030339212559143337338287358278061413241004684724401666399872686977715879638571539126289014521907418642293124248782159669874568213028022009348961221705367266320894189253080404706999161679725603499646344965916663776556278095374363315454155893415520330918868468201915100356314179078263037760825268691521403802863102548580348809538198438430098375413260706769571278028855745603188942749585808197591343941574177264629529633876639243992713736465647040088682716318434777975859127380530089440427733377770560197341924585784335731657035838219432921617577640692854929784922725753862045087585421657296583497792136226994468035211843895328496494827553387847492499849392913629873241608179135404311151160075806922476471063837315262517054645587095818583711474017833392916555207062691393271320542990179067170439546642610706149946262249476550643731302882728922219668423528597137816389958137409249464493869911745921776953002170659666909172419357434437320101165841815779666806893792014208442130382763035271281908612392959771063633756083581545544062899303869602486673012256030049285297031136097873543331571611607521607480885065859255253594385209385122418114368403938540273520521352001004206887901852532539602983597978898030817898060793449178178095893259443945570716042055420006743633168699330933631584901505243398771751389363175875583490717764346328115967262661821178531697030901401505980121400064180408343413675818764840298641458451240652038065244429299494896840704969098748896922273290327513822396154410361316370329998144567702803110390750331837153978592880493929679053168281044245947918442128855708862964112113125900851922834951928575513679445912928133871647241278983381157216443973152376568504274559086367859814308627824154140897175632659343956233125510095800874371194016940190142052740915062773646925888794523004465124279726878395085198237690335873571304415300277633196586478015288017609092764623306957455090780440445982676196247724362126640410498015301472536135794487815749903446506196928246934040384098932068526275068539181615547600516662180256083967676942103103594421233920377444854282705320766918004438443870162919806088170957016525511954266176838205471568900077075921696476274468519933200598782177951892781290216629538547752743477387913052530922643356151972276906049830140247384117104308248295166368572332301187898483151951768677452080883428893939790985975828170605235975546573445631309709948672120196095934254626440944217156409752031470453586394099052360251938059393034344244099253783874724267480309892478249500378348386494975900356403352340166289039761850896236043073976771953066690784158576468847299694392897140810938947580787004744025883578250011877565486865759540933551552659373614151481499902253647823638853682092541488177839778093131189294577573761852327031869722406716593810753314111965012428666705688675620924197611570182008087761314778625048098278912136231791962197533604413589550808970825984329668450083494944881837862201393559186470294740142172818701995532799811987718106373614598156249691320559286346331356793784909546376190743296861230761733086552232361595145987980416014016752660953062656796478789981204400242252246414527358101980635316737152497589452177287865550206674254921686475935616138061792601058330000003170142511536455468655901694606652831674855019190412159070898152690412419909294696746617685991818712187617248326601969821642639802532420705379535882060596197303017905089191352565042280698828417751999652560837554072263359923073456596605248014106600273840666181901113108526423128106418230852870477102326577041182931974845370049931945280522709110228526062763316024698964870028478854176948987974705881502037959028457454024304224614124540426213015386817358155385116494759304252677006822555994598404011411683457285373405203009445707698656763773962308689724899093363871472684736735991940732789071101180168021367977459636578206082220697361527341153188665521476371212008284905110913528143995813839695162515933367633423562792838506811794423971213558132282529201429153720123262789920757739648782353611196729696699361945023152923557397451634014342250095660018928852243779858435299748418589913953647311121415654588326968445225673890096206455733831736619749196683498632610784724514915466679028359852586108007650923127185659159640221113436571894742743787053588184364353779581185362130402751783656775926123377521976056693414220545169602583921594708123796608794320645590055896503002959990325857868103281972134935740975299137022121428708039368457540892850850820942373395823888288136196114677840850334229070543253865236888889493582494017351390969420127381279715890707786042172313537599623737209197718963822286839573605927165554144773767939200938585663038342600920123831051692437094269438427574648317434565980780460502595548165574703739647737480856306302420397073853980337212176801363635520758907470249654372927800833066121878764775220062347544873072821760878833549391224472529351371610738524951085991411794654557999559791908928120780318940838687810577106523845302112840802779594075554317637733831915509304695287085618059847654164242550230001787737202947539523376799638591075496583302209388866306817170974514697510821520374037168508400476730036664317320287282046827151262870900021089997285327944288980936635283040550252625813590748403148494778566428081951935820809313293476901790810788883145057097915719314135050656811405164561156260583365759288582884738675833611396170969423373791995176021181205325911868613679298432166807997965517584033286694423160580794946561701110367354656422975512180876286224746903760691534515447019238229472523751096609217623131778056062937188517338281263620064212946703867614611169535855502056675568641469870748477658298952279251825298410550585682458825853264144204137844472727801740187548626700899630408175903610150858978545822753318239491255118180298495369133375564458033989453338174169638269479474351716119198295249301858177084405855674030922612464485899977369458326688436268937215105254309955292925990473708897887368721850121958475461475784551497926466759298203578679204398086528064589242578946738634377141146515535883713813040345059560519250218548789480270562989928646655303266112670769871771602899992450522715763839205976857877931788885327608239284019214747874017585553702180827448531916797075369170275255466100073606358230451493898889680739141076432398795749743187060347745189580605109670799424254774238052226084480868951512418279452705044126464423782117553292795653218162141745266084518595095684180230943916040868228923361036845682229711533845068864312412041798802988812746738105501198334497726044743380483200906948037941450265748178056218531742838813435521278775380299794270371037123568450473426656692647330302970652917234294518983186741281544944138468955351932023598303079326031622165128003795229016493205705755988513262220552687989927842824400290831728721586848864021811074273620064477782153799279533073416816647646687843433910136376819575881286803550682214971790835417991545650414664160277912278809055549125801544272740986984223743112855411428595946591011775860870125830825890705566992771613921181154681248703303393770893703555051575026944108352602765616110357250687540036307952838259943588971193399076487933811953717056105832504804476010664012771088345038948286612040053217933642246877445400610130055591372192355407368215873704069321597538172560948699763841121637978881750187060116466368424941553818402329690366948226880244367704664033784294512900896058365037157904416054700441298896326019283267987456659963714568388816467386993173808586708676473668496902142386143627890330721540548410304911614438726552035160993770835885616395236078809478705951139532941811553646725103813602985117309860361340387274935090833682008088931664359201209208681757724126151248387026947268363765976104485472206127938488857682379010437908610770407861389991425558244806397588444752497440302338315838567567638964545633261650591256046326052727246950942155461389593988874541165856569891348000934813874734988445674886282841956437166793292375662448091754291904970749831688350000944691424009878702529095409399211687661946012321641527308650568625527107453638618133845280957479816010196324320537918439996357312506796307131835445903594655197192816055527846572640331032399749359449644031929992190133921156722686008515875762403958818612371870512864629303422745067035970847676504284758415356468397169660911988121908518009445379855527086228395505967464221955373490466929919404999629156035970170386887653925004064336098904600957057972936913647267112713578102046507588858775910170665349143431326564806102764572957427806633105338498373441299121170256382571642381631827142278977670422793044652985714563614695864131900319175905476125956849200942161637348041803738434839688827964857250267641641479861264670764545909338579501262426867448464700664995159972026355706159753387694324838645796498530610109769900353145274502058519244394654705236871656799893663080006863495530089989650525298558085741401839080844019784190184259284355292768420191793537093012329465308640706924884244828709717019502997947283632238460367388554623099071575745521027327352441606172289346461013439893004158060802634712962107066532379162462989119923223918874679157370948209955219551631761822782506119326455547304163158771001800146638328353157742540779865505867161077221612484713567907445829703916426799257595138045214207571542020536694158995281002925973052732815201165137214439656184019885877143029679614053565039367045866442043793983527654971149999435095991755020852534161512575927645920310328985029001989812743672298730860503327657254013336828613449449702265572393517396659462324720162042927839578067064905309065964837242185263701333147932504996735698568063631550331161798124932305178959966677747306418246234952740320805448441972209743309151523054832729665679039407153865490390984437393538555707927071337844570626923663751552372974971036035253389953972333785343464612392355851626511198530216805514183231918930953913443840238539085943248965167346974692234151969025714695961530351243328178143858396052311370232262686557368155446799688458452023805656855691473454600420913718775935414965107067792319268478108686888859134040907267566827409380861268835600422519366967493185670020914510130145126953568416433515885994787338493777454975308280339803907602835194236901537790165422052083476471539094286960412395632421584837139766847188178117857621236166372632373412815177311604195392481482642090770543961026390238076055712689258656237674640338462834750720472085458127130443885527613310756662839448402128357255777539644221964959079795249547438341831852737383156576786136402515788050315770683739612607614548040778835366982077824257252745400488442958968079777660266077420302720496607355905771284732285374270220252353708717848561145578573681569673310987920051099437057455172132943428584733117723647032965966709635320998511658739517786410924661282202860619087740238921970318911846719931299597084149551953847519598807916459983604730129983920960911037948265803628406292113116205559881063033605307617022492450045608631618091439373103910686553257565959831612884415048974704323591651393257180540120313627567403880069351239892762624477415199005786163757668202171841419379235597037969056866358250862580977129698444286445207874829755493710104045173518276855172333851293348163840668725071643031593192367820154230319557536422102650147261558596609199206015814849795918646358534669848691148526110428182153451498049813487897343424921457074024836032941606022791465029229037660545267388818908154797216896864755752876365465929669312874327065612366670001159514303447150205169812341824398417346757471302760204345668310985846964196866053588128615193983807736909503870606071188078053331830970299205360244695034753681663255051753358274845470635709524082489090337120975817100863190132876755512118401542511399366614888446004095604502502261185974147843589096861679850695909644497321558555198058141008246260627581050349885925540968346578861093126643553359622209165431856473874859524721409365159698555353619492766214663140660383429226470369192534110281354095290875472847720354266082028636595710787923707404281769938102554461976439126604612025792480697417295985867341665354180682452578276374229640660650328906650852259516907494659387974744644946947038744069595678321156276892502921511236804587221961826981721604929632789354027140313253061979462235837291501449559682934229819084411047011349631713927652940713610148798759926405856366536097958746339302442267097520537488933966913538206580692958125399549075149978281438277195597479767362856001515098744912149225535784078202010475478162679410583371374911298948330007158590493551962347479613413939849726237195365791625318942658182022679345570615151222388401511812298979580907805790689562636845541798342732123905412918735886285556108240051105365965526996825746013337488737547143190696810897847190219283532622239376792435766178353355662264169232570313437613905803290044125805122210978829390323896315384855593854133263488307733600900417479543251955592258764904097443298689333569499936638727098770951216210770569139541795985680058243665937729590687174300948462320193305456123018419809711604146384352691751225815364815569759261930146302856236937365396763447561267780467251395122635458930098633217178060065963747884946017056747394800173424324501571937498560253850144780353210257116151621548786120717268538696343506376276398264577725703582206707557862087688305915641187622624639909564061830662935953608444798110355027805013401266781294342747526540765863579973556805963416877462592564912073607072347844021190830754421865668794561621847996509888487299899243578155230435745380984308022678024233921295500930318346916749270021809615452742812821651827285148653565961096027868465065465341517521075181503656780089255813505678294839311224371936962910277893172813800639555278971166238117200846459702692216439105160027256225107361565159473195748540706047657614644535603263807305471242915294597567273619477357054192150538943369767384439399970691435313302789770836346648578250608177468755144374792546708461757248089535692838317598119425251253638822876183474553107850181931887187378826408067960982543074642945995220308095836489933515545658263923978569415402111076526340259285614955567855638569851817173347170258143149309741359361947880049751987448600931504214609710227037556997537634340417965272274017601576434096266879182963763247789477265093446053433539012116015850246979546798159459956540663796849727245103501791076020556177830667663160702924211923114984738253960679653966481265886937503559003678444429481020843461226925756706204718440796729731793559114368695214468884365072527044688378525676729652660957662842682301494070594776573572374508491172273145467266333039880839628956878890740203128934437685557333364083064261479229855546376693961572085031265221515285047873553681595285943816872497530631251806847839384336038976512225463758323274148754336059937092246573852285490514099385067519466027850313216356253029637435261514621812260948477811217175693198696635315290536970499386998814593567165749532602245942504480638387248145083956451705640145190457401382123947974060557503971814300041178047397677515512322220900033450438953074594021685619319920417898898221775121559958591214791187886978208916881632204727070225271068431064769571186386568106439133013791711067461406071350908550644985775618892128023080988124938646983473311920229414876176955457538623228195068454367284739272759937374620867973845307860559068350818651401858282716880555855634325458954569300927802663671485896720090589173622223054166498786803870459253035937414394460805156934606328124600861550587977334318042330232395156072504558735696075634494338442277196104694600987400711371492005296002970125386996370939628380283666818686396091358856282176608032594828588048518129655902068228030536746262585319825543896564183628471680175734794675420563458599628443167508336523649042320124309662700202393907157204832709625447181860877711401262687885118685832693873575257231646452886075064676032477816337498691674205588921231999746052221921897735485390383121385353188566700229127414494797435106798602859155978594098717594192487806216200164863000146194295471453437967166179940889580715250444271628594853912379678396201990567164615788018446418109081838185019485184544771712025463881259277982760176366142800649633066768172899784911226172341655783306027483951185016789484327748276693469281115873366077813300180546834677245816891162070464424186323707394929308359569386572793668665314982126920522216022016595459075670343682871621263107104551932120209113106360553031564174675737541161758250236001077309216153675247989186047651482689553442246666241829099214361743462458476960307922492398932471188890443311802444772513695158669229145802910200882327988189415993927248100586875574155668157842479475276604452473987823406177410860942365703769504812820532705919820298357975027872151292686676520448521973957109199709173829937794282759786823965015435176550104478417949013065790867681178104025218959578852011299463179299995495546055322207074073610118096792963005913275927737955312196177686325126432633629159399591835409109026367786084836884910672282748812109014205255876828157490161012460563564246323306682608655552914613893662209602778404568068883190958699442276889031539464974829336801537098394582346792658778969225320443841958727039411336693721151910490185636479568292627434948407812364659089530624468369818008471690936509704720000789564345851553335815490491954472269873023525097189559958483764193037152472002898981596666835359413652251139342195215059373127295027249192506747502615580059250895647373062694363097325656219681154173550657663964934086560706126865251736960133643012987196591885261820834272881455338151228269639870956680442171797439630997943613852687874920535075220283569830409835893381639239284611927216135682506555922666859716922370754020530147247672621678468814441941077997099000303710154782715778811671362959930108449614725571625781856841577887375423315380854835764156519914501376111628473471445776517268575711153876403137552168848004542785381344413862755157761758089194454058215506107171142188325459588331993515918003895812896431741095546456691015284024447452151304717991061301340330386074432877723567113165959512838279929580982586551835402877242843255155208500069089379168047416755956742624441600152075317696456934190109649475504994435296152621959993277783202290035245370440088890547231384735683199054333707006370006599412197763222954032157733475362164542607935495848614708163067026866745612118102170395039874885310471626558432231154291639271064723326994610562304535364435698776668240429592161380364892215122975210563154118945528111963769195801928971532218648596003322113894344953601871342832579865837344040268729710771951534045046946147612610981222235604631332052641350308737349597530844186397010713200839355166011198701816931431719556784891193938761361602885471157572172908090555310428670700537107088783815299351406448174249817541331859579193009560197818089417920189163891220204325644438615907624793018498028571517551004273625702254989252386853981208338737000953345845196125483860288086707298702284236169209478717264460534620590555017633984216606146680059520659147762615268111733456552571335432536996979008634940869216266253154607657960826026219151525935291808699394306157774080756783781528263573453595303610091360672235875723021585337914218001925279985272935698373405194070050841634314644429836033882956733348411546600634044130509296165453614961931092696636239734454191743773759420226453199683142365166603748550823699914302731472990860460967267132697344877625839487515782532348764050857390639398419244509370886886155047262530489363086167016363944948715626788448937755408007114095139413435968786750480135243480777405565993626877052438505319589340987756266710595736484470689058747873620425484016855872440403027743361084836761874374078014166621065069182464480825771390488783344987005474443615680274927715875207760127091187181966212586280299783664116446001749251966935035331137441214935820614747823801874149115962666575537544469701408296241043176098065373314996172785663191904640083222455035090724866675295792335223681435133218198154853955209963375381743352732172775521760154244259920951265794822758560612537354442827002106606384143046586524136752666510401492614791713868803634156093983591201660539628311944624302537026038910383321011556241389219456950958185054550730646814173538580784643989875897604921018738515489126634326789055514066083899012338446791497204669773476641933228431671512697776219695452501925435125932534235147147153690598253644255049585277090336366048306380525532281658146760234618257349709449313677193334757450749217408831202912301257314153964248624248187086525736850325689348898142597717709335816370883410287463304280013917261177882297834410435052497745775964893044218430731682828764256236710582902769339441419754378758573685896497368523277713178935285004819332245152042750483278797167666988416794672680272586860841720643958088781556341703341802010384562595001960954734259517359805494941624409054185280464679750226132562533047979880230960095952938590906181140922733888944217282411736264160702634564754674414385248138923181712614429973915283723100438678439634580785377369206849378077280720967672648250172303689972622151465969945259371216951381573804669101273714156249022071327586381545342817960899902275896924914392198128749631122590617941662352841681542922316685095390702531861148915916055524712548745370256882073671823658712986158021711768141925172895982976017696900909021373431006743713110118572574286019305463814960529773219546894839692186569766453526632677843388326783818425744445404297704539414508951485650194336703165316253091153784092717313849678391517777623386875958278482418768920059857291970360506972682177856847360039234389596889360829836487320631727060008064962674675780761891026930116722205950887084418208434776950906573005574530656816709855426418869893849895970245912702117431205367428093743529686380437098215285982615085014311942471590736674083724603454931133676292687332501981113442433621019459811893223160963624152732270211790097257417137468407238126957865149915180542658295416978385827692076337758010141949901280355640614611994476065572055840057135684504958449253333175774511674254576501350134400212905745042794787699907162651791486545378557229412011123750708835135803557019633721774714179021697269616706961384818849749689903163650339512599402880471781422940031328458813299234883423117522403653785023658093553301252303710557604883026630685082108332802469987271381365564121641254360135406236226523522435301021346956003966931987238259227486581338548647870649400394992108923545728876247890709722055233302374393573034744015362663773307642368811676919960151568241344328698767355622620703188101693882828420096961555827928069539724892601193136947486798636131167627581759036078913146269329311243518172308045425859289924328034450257205980791907692947558603640814460285404794455134634526760178438580724855119767577131098771550344200251878457850301193104320709501953693862271814485203476676960572145568442058031414344737361179760555282614631848697416910571571954740508498649250670477660615727931903599504975714019429919880300935810556572857278118966135062361353098472653920810058564322353734675250922975235123448971861630530414066453469662564505310123757267882344723748468304359783911463198248951490107780501616687636644654661163662100030281269864799525869103454478682542583993180378320223704862812296642088544135536831730366757097124831565739879861932206033563457635543192062939032085795945352709796904845011240665736723078674679120219314061230603085099465368216874839335917710202701238147025235572347252204119608382363207871198414888278811246747609780269520191089359014113758608275502114250816144506743597821215032424152108531246070609221080007158528497333690843229671373027278643477913457808512231535027427897790532556188961449800540726134298462986516139065611453247831633563241817499847847515123949801918839952239559172022066846539909325904043753459256944330829534103060759261676919635787182574305714960642138925719899689599752786456102863476313706851753167145490762849785161223288733604703167567205515329536071835677547054243891663404810101535212661070982126092496371091742044570037466526232125754525897101698534504533515173330485787162742242521245688595326391082160714842568382345921147137928641149676832957156648534701864340507822494763562850528030862446112019011925326253915706226340851721007622710185809000065074796109071565696287847049136139375254197997408546856773848213978663945178743125338232235595281196325706019141698735338080537193299564889677582840357237905145663375597532723079211559679676458534650517162320240154369722443125693073987313915034400760518400639533953728208286157962826262461114135715031119890326928798139142189314864222437209513781182304314529100763625648653924561396099531470676914394616377798841361669660811718805855373466580836317794349383672014783306889122634996143184303990727929598180930615965999596316924235863151408147528693596931053613331586976038893218840907598067853180119966612641531959702884140290275050641707697470815933782751135812108852546870188997666789067325141352555264181878029627951559843461494427573300004251836479593158314784335861728975108008104514118661096221034297230554703800965828512867941027832688690764167061088016192616993556474278777067475635100881025000998775579037072665369509458525833840471086673651067607114987042758263685988127578370506745564608253006595490759243876314331483018754408788610229539844330814976289096487387013304825580508021041268736885265254058965575734650531894873986638748746338284598649872113221295654025249804155026608420387615653176864581005072940559584418985491108080445476407295206145867468406664729223181401956441289644192747806436743653121094439050996445458377522549311358976788157849029232787112291079025186295831845215378372606425904702667953857714454216675147469107251659903865336088074843928062269921278139197127778793332439729365364943916815900219189357285943626461158127031185171611475857708177449173830480816692576918780508506285284894881659147680786076298871650920955232229956385272994723768682935018377490176648463140633536443113014656477057311222827180835779529454266064122276557585049056599103348202469769833834273318838077459951996235946208194104532181920670075482527634040249969826049130203772777169012236256841103891612038384002637415465523473683657784450270160460959273470106277491866171789501142350399197551568425218910195338196660656349117061162218210389548832896639103855087743877652629437509084739753732339821618631709526170115420508983522018672611885142652684062680829359949348743764226657666550644906817730276442299528507841393062683703989778930925423496755877283535716525775678485320010883795960786847502419216483263951323671636751778007256672873510596876197450913493320350137748930673799213291298812612387551359966698154243956451029026865005424281548234165236415294678208038782961658160001297591643385615193764622857911296175142629837837311614402375540042331602249947155340492300079648474516423437648754923519822371483122859777286030290235968935862866705190386684752858229178275636916941779278727449403880526179940005414107433647738706015486502950304829219575329940466820905435600097156257291383246140669120843764766182551208676182874509516670017082019555696674018975376416458394494372141410878008713259983521168620305579896575591225489519176074249465067018679189156633296470966384215340881391936061526025166851258043676203456825437495429347983655318707641360713019625078612718343958560886151015237631598144098571970830078236260968812934579089031388846519155128513116825158922697374776704202983867456850541060805728753703964868663631815180227255767413350432862771755640910045167370127189575482573907010608100950887138481552275898559342601559201344997009612214078284231694464901836270219592531938973256764656333081610102539894706891352822158222962838238570393641863737779537375838117461859104547799485682486226675259643593625152196109370357215893318410385502647249210532046580296104221248138070109308978432005675028466755154733279312282671864399955517464885856225857641137206107971131831106073692314842079078192217106009021992352466783115771941089342737974149531245409683184285487081816539911886072171260937677734799932292781264737846515224633226936563567506534625869901946260319689470056687480738349558614576778023558745654865104615753401255971161416270891062415326377500681909628588255816091691189276298988083910979046174748012755150098464142092810581095554974644163644466910158900614098052077680489069579787517593831901790021318633217520462187072468912033150499230114795252065184689609689133379634139884466474842441909739690427808455718272714856658269146131022240620274458063274532553362142295365806468527383814524076550656808928193715209753571985604587952422044768509795436559756236449653566922408953609520930426467518806412678007893307002332043096411446089281565874273995303333516898668513593326415111909513621119304894877200874414967884969315040418278038743025098302508090683864184756994819102256455938074785485011791684914314965302893348933727372027827803828161942083484576150245047194664346323901535137848486279425739592190549836429254692432423969651766854093600724283488818694566553484902509125230097276754295296553947998214797636149426507968013583026014783611822495317912849653285580036617456751363368967912311080234744650427913869230099319292135438880444073265291569884422175482547767453201593777359261156721451103906698446336535444219275472187742472827713720709288802675764751669715220279748655858670303524139345857449059844464928466984075765068187676930749118756392047525850530708742733807596674014780153479593777799633731904899400121529473892681134539891903473012912405111146836572562084737476643717615781838471669102458297878482655891097955730573782178687720039435392331137310877921398659567575536874914035727106802338004012760225907507031509652427346527266064402082018969276458216518504103766561691320190312275330947608070370941559612566427968443158592330480018438210260364876815614279801327303329379310425530695430041152445841017903071649413891892198039421742705850908547734814080028355805373626298542515970695053398857162788543182872586344017996258587976799667478464106386649778080366824098084588617593308690369176315766938295758098807333414504745510784951024504162699281312834834921724738477396262991485850213125454667003748284069149557912857795158837055495608838797459116538839682096603062045013710525663839532157569775402663197213310023094562382012319549894000577819818979978871372349817867132104476448186810506327058762717607739427120071877586718751419502242466078241622232800376634904074567109199109884841933162220991898129007393550634917946198890426116013840250855718256715196258179037199823196454872492369366984522165001147564409112788703331526803527641648731231465207952087604598178390862990602749438083422811155242696950343717053503638279238907058141813773247774340287142998283521537197264186459836731571221508952046196077951695590971528265782059437033430668886839298630836222820667717425128363112092526518961546341139692348464023747607162225815092119952954452709736837227761547551406701495851677034972515322533839622460532525535761920061165868521123184537439994253980138600302601325086143673598663926109731641928015187025341829179094763450963540495333336129451018786171995012461598430992705348446983273626864698476503875907822242981264290393224039677587822691739124109003033218561110287375394366486739425628460187687287707553694340495455985584025755293672500628737601407578705262535803979728055444268665868729107066644888644374810025989264313461130986084614977074516384907118559259671932455892561885552381058017595412289946604414664092251794170446474190904513019476693760139939873028305452051851048721057329793838957688923222422859840530994677566085261663915033053610284216374869728165474151213122186317217512624001819111337969636956821150195880962158247429545856656664512360885451368840106092823006655086775430186824089927098460504916609245008230011707995068976474403513015642340242547758701102523839175048868977843195850571451657535508703109027860314938767163411706420384118504651209774058605047123517892183959528108747344301127489753426675821760019645075949624870009760549203896257322255345652404012213227990531282217773438012853865447083934222633900778235538377895806579018290473510668273128314234597368933165243913925700676397275898995407677320243684347124853758249260394675930927890064197556217124959629271053132466750552654082701957553961853581790674401972092330522219029030074429898510869852923527602442357292559798915147859370548665809848627183019448451024433784771025074126442962459835680136624862955113937628779436503256929310994108537837111122069878476560718102577609610984597181417162896233961745266043450975660243611756113356091633951986798218288940717143504434008912084816147684591727181637661222069860976807441948621458972240698739703168174701051299688651758299769232382756961198693451307769635849162052214821841356995414209570458966196140505777450109816053001760856013214392884150482163230845689262138139789346210782019186608485923476627612370908979310212046896256852124444465158129849451626683955819139591524492300093655305405722111591194338984713584486295450699267592546178806780329753609537037647178002383424879839804200081605593657534502122235742800364939165308054977502191295380509652315448910077956819271142745376161908389043422592891453475753071808874562129152443858397269657255276180127225727832242773770129125913828331763071640448545719010496396548441296523660622856365320526704162477592619486334432574896935425853220993704214253867994210878685513219833095015620853705675610749585648324666251015778736810806404695243180390404620666308364240023058453170216731894782628243476774283274841351278572129012468791241801095859347713332072430283608331165010053912625799988049352486527471710424686574470177784252535563466463322310434214996847827453670332576158936744220955047321584400237155421216164318740247116570058279960040826081553475263187010137994158357712883729291174410612454762311214687644888052853198746212184954901043935969824864736292214543741928264642042626587224475055514137190738664790559803373168509982603688560353421849950184109249353401549249117408994816566969711662475077816116941163808709579849807269767332067205398167284476672752090779582581088721191773081644958738829100656865176201697956228610217041771848179205758140240141367027929488372283095692474457686320893226999902734202835649215911701662592950412790249892893363072322642402559917466445666018696294254552896585119801182790719330830416493555532325181500536713301820167620769098359873856560359648743397431075135538296484317457296691407388414868948054978543829749885414838956883644636620346544864829388074535976983897655717027400108901432475876819407199344657795497044487126983817972378633484657238232141604140902719587120627326061171035027619444980603792441151888841225343980111855366470051532029555443781573860277386034316679948788098479145440023758541560286103995744377284394776247305210248048695333432937816725861563138315074257259529243563049357477903885529125889332277747597181553105808146900022283903130447200473389840097677785975197734915624580808511798238192336301789273454430858088602541313760777803081200204146550362922287012061487137135275536226157855413349672998638167821815018113104482341429882251432484508096979677991100286619066590943549491927560535490365628419791453387462796608353428775418013740398720018832314326920089355639005773338336845574895484819284751322364847197128905675147082078087401024140651175677057449092329163047957501762205477078322657445502972096527525679163786395083048264099346939584382260569959206222153296657765813267612448433161690444852050484858454371903704391984335354345086600804881369092379634430366039219839141835536517509783991749657528865535935879045243098696762641446144728997105135512736005895008170832059190577301025160114376131972249487178417219511500002115539936990727657002557540280273585385200906781655107085635382061310802933653680978032914701794739566067462396598433357073963299352690262724628370515146678501502565735517507668277563793522626477926116227748120772351782262217096201877119697725526157676999039946572973963028112991760012651483822272116877631435253611420771380181782703888755389023407037101950919260062135027819140355837856250356676870975809280948270663371772401846489764851909495443292994024703419316039173790881324301598604877522010488336143745238515466981655639040578464073737724532846421849339367001959045713510257619967246116399803853184035963828154337494413278936997287664697464943819856095011479247747429320009846941379061871308344473274996847318504782275648474009215938823787254061403165255526055501923438586021927855519358226079315993775183675105514615776962246650601766067739248379993838391676051293067438117756067228834780839473669895253162453387386924065087818581016306695039379358890270254808733938542102353108658418183396859244111494503397308948176051549822704280120661819200129063796415224839082274658086423640888758123166321594548513266166227357582228226152780517377574486086886622900644309765850869425637804543949044653458758716191076149872496217092492570984815237693480429400509370919178701269799967669476847592563773725802033033097862983585406325112483780086202412536524295563947819934948388100706662930442731907518280059691674551410527461995007623812441764683127683219257076602016002986468130543680392895532366405582754515712275624454664766312506911310457559095478860469824534741156125858892034182828164279429977242029534870010022612343168745252031628057929057130143492723298131403019262049494212214160356591406337165351698752368466440034228893705929818825989731508073959632193387832927230473553178316539823961150091690898393447670376169525522175987984889340593870711435138191887235093096818572176033702996576096630089188374667443083232657619796098780468268686872292099729083601701947215930740268836666316809770010633833060062908736819076518152598285800707668640835598946680003385692548194777861626560033450383574692573901298053577242571633038806494066966821147831900605758692032666712498125693381585255939186581901340471564025572810344065593340744493663663765980085941208449984130207935128662442349881529220719582684932840197844022657102904797296631331749379086897848313584434684539020009624332307922371405262201089518964823164967274816174327375065682550955439522230397269509873475571903975212099084843374411845638626990844346601933986286392991941537718523569884471874672839634773496418621461583813336033651431742662784364994638267091155587048314117703168160531828165723225132771407537466719225619701075367327509318347596418255625131384593439866258654976706901540894751584720996843954811319172452637098124732399827998806866717527389655220589509331871956162886966691360423456294245139827983412486579286027625611357151018725987225047355221929091982332109453229153495584614724737406899489761399435780059508386299582724285198737122170962714920672916805040137547559428217622022609764997951402742325179693364525574519466548104681506533467925791673352895671222407348704509317063531004074856853164149447309303122647923691999022824487827873709259424405400177195525140766728823578082495876115710263015577587147702869372533757341911003428371767096466375709150788916806584463278319368937222993280375457396705371091127105497479819448977203361534003375172647194671990876132381482624020137759587360591835111017568191778264175717980100713828939118958775638780160248201129273908365186676038116840834269392393208898822188432355637426654836151477150699570492035361943368394738452436133522694712129225261310286408640668551542535694385240322926399632235497689374227991629849871684113768294547252013098891618154587004699818393414680609800555290607973045826781923668453374666616678597333806693743590880856803715931360785075946474562129556602020644596945048066443258472992153904328896869616662196319084076004230594953874311861360412300661698268524875703434083588373391488178145804646247755434781397300667746244082431924487046001121122757234902693694060285385196993196258076447966429574651831359642720051675280214155347091930706958956162480980698094314936995952808421179139362922321320626514610009976848265702669331080531673964393681709490918629776406093022454885072758913341826420155190146704195090724155703400951682999558023442729747071482605090277429790019099698122664572182678995448988983213319548119580104824367346312671164342298601517564546657965001572216734617036727093983592638754481047412091579737910712753178285147973941493874624361672676075989776893388215558797325016350636449859324200960794385466526819315837488808602641800055364816419069819312791699671090714091498853137077375924300114889292112974597996446067525659105013884748957991711628119557665304490569598984567546578936572246973530843349929444215923179584211134529539876161564589325094576861630385410842112639435590109847464118390828182152579523674036811326000588344424888842498802594378976125700153781867144950553641393450032181392811715780000914956391710516161094726324971454010098593130001020788549652159797364987680543535329167574281293539931606138676457209687107100903593372897805869094508414857704795628875951107023484178344274595929203920435930654660158469533014232023890836306187435913493708678009874363076808035659475096297374869146473088238422257727860173145900757443760322643527690730478824422450022788180793671791737717484880485978399633421162436517163846440302337142296258955087955131395004170169049340366923231666382510885412362413373575591551434367236447565585152051305948452984262583559045913385823817581532472916812884662667853586019825690447764698534842561893455469802871966207169648862115026854894286801223555517865385740894311829828017949728588046097001199911890602055654438935143897154516742743296967911298289220844960758684996754783398054406211257301317926827319867423743568043957612982094030597063687652929755382364845232961057661564203762894570759009649776450408156132515817721312248983785359975824741602404645094516956145150242421706310936327712322338759342656010685348711417808875055518358771790808660342309610177107916562468958442847474021207897586021414610177974740223481525365086906576018049766239356759137186852148872244095402453265055574988002846873217795432951444977089491058178997899578167854343190705933269628564150054020586460565666695585750546489409683331505228871285623644315646292565768480739268892082565382715660500348132639880042052466081204117800049224226771426227380105485700056330901826157621541037000509747336218995099080615178324373665069355635806599824029940806659608392172800878747759195912744962875868054184609758474365282269505585397646085375993028391247049924646952947846407066584294821298027865807000238031826297692258545892853365715581577364837202989621148505481064481649705245428179113725225854723911693146691744235333904917961785942768679763296467818050699120233300396619595507591710359880626896152065743595575261578099463115595959857318795972729461194998894538082422987858514317805481154673378653637170294479147835414132221549753108194302096345434911674193018315593834666578532201842610713553071096860840676904443457729853685107540616560721604017304299302142492460362201477776069587318811622112504879793111873640207948387628682619633335006586709642249544621605748927356135172197168345775808451942901757839499460303504458116333503951427105417257733824700330612900414821652682339377050848580998346935096273215618367917552611331179409402208467488466888924443095061459903442455271654818165570387449670111113243400999803986828078535115171966727061707292035740888521625997644538353986238676955596826766718223308556507262767171251177769100895215228850576668548047378046295340354790165825408053022577913908450839441841740428808395449057139482761068798955806903677683048362298841079815896887025238087241767802639723817086029457093265881774139275658357825650134336120660718334850930029181209230415160396791469697084334513924298894417812291700323948498954658427617734112911236877977691527359877218657605807211802359354461971664395966417139437374802591544892677083886086569076806545403461733300250180736109522931800426771347977778456433123860025485645019184882441974117126946120297071412033529960871775214106916496158336679488312255641579223973796296541853094261459594333890218675316455851372348453361357348828899973445984269022447780297494197785365290130141984649580813520596401980395092497274812017772521904444872017780736886790276466777372130128864163019460590036892816354865331255983085911768914580960647032076603642659945146304980683344813502043776182087975638810783295701793848665556027187446613897438132682427579020312670576986545923710420191531610692683191826424686570082669390748111870521455931074900353520614176621906973846908873620039929713547734075982748803631256044744778556598036985192113930949031484444733016734652768326083737847082726690337438156140724194230590755842511816537887540908116682773715167721260833913350790494874754026621546272803585776743780526676590880497190551493418250259838181959046788300738957387194611622037137745976983154454590514352011652102496584752296421499792861189392980191109625355746992277332261404019591932353017470060945906219631794847789871213336202022298755672079606106789878967426412039150104420701599344553563206813765472402545497477556991834327977561763248008962179648397108128665630189102166903187866779191356077790102019829815316341190154929103219519137336921222376130652609587620997272868741116189141724389026473689627262191307566630485871015764294198153413215273504820696348747639004699442977825527444114707560995023046357620898844608120625805325771925083136105351849935155460083020096230342933296736309370896341872466307942004198121436839543144471790094450691578726352827908707842068454286702693970303883484799012625121168973782549774854339008116997687129227285034631909464957751268506581858087750262701304178972885872612476287184241729404796150573203081452786299322422766784107606420176220084048011966395406870892986359371274080255042228291160099255117987551533558948291567810755763372823013563869204828152566130420515601975538733973463125134344530408965644624899605197513527522394923040561388589202096058589975128622639161701090677999338202755274373250792234164127801206207118254006265967033897845251006635199589407158799716645659647625242957223078287261767512342872486016417459947061512979885439211884546903329605230200089675393525411367089285856906600000531037204982177155335795840178558984351971910323051457352366068176839167070811303627178498449998254472003812553663646454014513450290610928908008221379221399775094358255972038754058517889811365598211753970203841217274479951044907893026958785704998609776867327763689890573780599397400447774847995473209164431851876559207474770588600618991768224677142873546691657906318192785327865627674471637205920017997533165002877396417444201816279916107298834396227393747469100213372497327601328722635511128876791288819868453116203221640491244055109924411451994831273017923530485289554772719819500665528377841391666310323556719478815861765114829753667253328159920503647343378518995978871782403137763801625719079281877345557896587184983006811615740695750603976239003855158591486111529970903758102880044600927858226178822423591214102920973603767497517746327511711515591384486900207580740292121625421879588985072485411309673249393288371591642044427818516532236527786110843574842799281982125623725698027844413591597950620028406857241133374371642034301055185769928270915848598328408237528579107439843980538105399222022600493439064830980516514432308084720366642033508154023493646268038922887378473457546281710799797045500566748462460758597882658118471655302775055221911942379946828293322855022016004046333540459418372310335840252462185831779897477285744233992544208981849115965873251912481609374375581861211779107214865079865734385093063580102090545673786138824748070386138296779675604328647035599751960751028274567199757141440097347143373866655813081782778798517081448125263088298069791965884400409668714928223554766967186855220757430933807227483192639325879795751246753750737680914509086706625799548422895944190903240601155995124486133031968153225418394206662249939034964347474381236635127841010521126034216126006281030211028480447076590133786119938623423955400012534984875687095148940621372952063917872863532721861547608255477651303471937412011992827352843451305951803003273404027306085596488810391606882128560715116448371753817548453462082845319573894357451144336379117131440629593171042214164486386089036521348487369587267367336127046063810173000542962995220117489092239580970288654643735344057003983402458410571401027517951101708626650857478203538720440229702636002237350299828693879214167420695508986613859935659606002361484860479329401657860142463898372886155963777489357033938185929809893532449062857038803137464371081876349236167348376929180347026500994491289085688006825411516168578051866323459357295616366714057696871261225378575458972633542415171823976115591255935974785241261892473750481933526864730161366824397242341305330351085065745457973898228302863420348686485176013298704806964306387717936152881302158342091820631137581902471254420041467377299095889560565372708766761604160567546845303736015523509999223336783929371722195190504788813003678746675790967697179573083116581740254817914745629812584898375046969358316396199057585760539026438625827856147982914334858043042902466490419347608891602964277234062236541236215914649825401735971151632661249492078910984143823856957519908167271681208554181961788506017419604003438126198063901220489350637783350475246549623651891867667499915820259821402850171950664347172228730199504745091203675170017867993644694731961401920141864378356438897928130774687450042259946741223458058461986893944981339396712882986650349659257602557187797108856242320449118874987343118375555220921592155663800465907898134969281340367143269570782789252669098068541306591498293334193403749106981191795345739620549796333039570765317246158470514885227890748693430247320005544927820766112712458918307086457057066616664943956987325576971360293992712610190243126961042724643037252604536516308829738088695890920756520512174816114643192681637645047713514219007902787536953721391843701043539141872010010124311031188296587223972434878240959202658120526788846804774325245644522800037108845584643550645156170530192177961865297193679300642227632902408705780316530875820971632718436927415010280031827992128503057159518191602728481813107438166340042760334639105671796336308137378165051161645748880550315565370857054553298725855287492226121998894698048541583754070412232860245064758548095179798163935350938586645798326539525784300044089019314391650175537771974939320596630886418313001897909044001767899847419375832420266116843406460153437760229130457152877792222699186383704978712200220125626553159984230461949859397986183677397389348478097122669642187702720296912141127208475441995956801596395629912638340340746742276589275105528734414634586097046215012181569925132348010690191139546128852038117630632263899939284605626772539449118563075760402584415762151732147413796606673007865151257535865592129523279258473980936039974618635684509135160734811627763534540405903516993003082490213017468191900290953720383058077609647092260929483903586895203063397781677886842903410642073499763749321442738023713723902043060180743110152798356032648089256667721592010998795734517224635026025421753650520595759808150849055253661868238069452291818244578494438306553805814695122066375472109731232179217878689171164310590636120160234175386072033009251159031933230868568489763725431757392063921659007766526791583713904048912842825356739893845143065413100007176272394796818528087177798936263709535349498152748249651121197852118320935638892793871326828602743474197461500975233884181600718764205642835230677825477465985494214462483751464570179846442965326061720533690273396388075230782221710690168827834250113233138621441161275488275369926152491010608645695710117040169046973294601468116074850688079428170821988339718682354141521548986024542081651063263467746616476681931565782890230191413375548925842848921896570025483031056153016788628485896377869561658816116218032768023063363159770794541333520200511192092751965254507941812029334264644952230112982191387826374928345521374818680920433026234588632229506825671253363644751579282543259337700377905734228026171077126095683654818582574829136320713359089631381439968471447940688385088616419304056237050294260781390445911446546168582455524262271331143211224202343470491375623695219542276092940300537139093990000030483785001968649032607736339854932479514013006297753874234713621936332710055808194930735985623831316419966136469093096849474911832855382824232971526529643134129269004855425937428617781506259171938774709679810017414352292006393206809465993542957223169324889446924361316990113669450344829384279111108263017592234332899137289247766815837927203866854551262981504399282396436321539232942511090146214626600183082935730977111249068036149625199334134075110762558229667771788472483497240581659074058805669572849538519549204680681661826762841034789820805094566501677012992993093187191303288280709859133259874499513893729560623639593746094380215362831270809939169564092111224699738652489225607933282470508538729650721850509840250804703731588879939986217621194583971301839063985079652368483436352425114694567745280267356790604633840573139961458487263887942145950920096321725299430079455736595830375064364220545131969468925389088978870107615140151884202626469523287290252465263539247607902694426624614463050117960752040198684186035369660572034529138388689277073043877390505150871331930060684917778635631927667374840989010208607477240240480650728917274269321020928830435542511564375819851901965249055911113945519654122635612401546227337245757709911748874938283183735807403860379236164022718894601495058287834662163348018000005096019695044662628968485294708630035531497785341838783124638257714228638585503489066781714064412375057045403578795298776012415106604176776829998039370424232663363526367995337144544246619465292192468758578508415540053366456188201768261391908276452437012823922410832279371722426502633580706449473238633450459771547722901287803742620406330308152571553863969519635028425588161440891229416974032391219178719246209760103054513192264757289231778502780609767102278958387088692476266873427833458868234421382344997991239711570317559383552989556092059387295735334100819214686445858544612793511016745825383100366880413039996032255665492650701965974014822829265200807427220985046485922226023125348085643957894050344963761877958051966388964548263801299459825798218358918742998529193130087777659188695396284061375532116952340195636113503606352984451598377036700629812836584001603493751405552784838268995433197566155595739648962295457809818230087647604135715055450145901659381353665673684330826562108869024411641542966522203377258945436864373238596718264428986912807176860310788661478734746313327617877875275926085529550096485498569277154891092734324803060997560564604914151534832383482871242397467583484458253973864307579829508752315496747029897246150833437994408473303118095813523360711238047348301941336782036764192019501183364498769642672478979729326582003141501958140082993385350926869644132640288535146666043698135476110426959741403173802927964713903050467267595493327118039890487441343492650579340630022990582937171597823960759860109877475249981851651307929628962882182920715869745330676918616983572114083578821951780848010315899486552630432994226853391297023290814930315936957886843821268647883761259307561697849351069506780442042736153430602293281475083293717431301742211398204095359694042370196142738945041995073893663673102211122761731010567964703057558693071777892475177802170678305057523321438422192984480482236232844693813469291298310324236238698210871719262573047863751669320371472310725805082595189980671441817108502274431641459511524623238953831733277563650876926260923452232732972460082519407707636121873777897428813265932391055113310540896382553772996925728923266868279141786326608005831721259235640154030538654516098721294092124133772594481339683401534136047609388437165788962558247624372169469450428238366967239321728602643359756055787415936043622973645547371678285616953855312885571384762874743591933933701805230467776826538678858783674977485567116987101418256993043801813025680188221200108644916873936293078885085995094523015111663022419916134533496823727268132384457054681338451834225738398079191439971201493586342523601839562403475382247327681663261364147256167488216610795085410358855296127282719605681934472551304879354127180080312149910181288394852952184933648469243625102732711178535780861233051448294295029702726082437986538729172508384467619349556967595603815417402109592977899222332316504527294014415005996000455724399619997430158314301275102021997371688084460112585427837272946968459634115383851092145215814615195378543068504855845353430719313734886547862737892567884332345014921230863847542367781753687803337552123623606289556923999102060070181813798881744567183554488415929326655039923361698143202530860933591244102053598792909517674132012328308210872053748876665812665960999553851344455776511292214315160795945170991954285858658504336591140453129344531264863780728336834914320872454032934525761405990003162868998487711624588328706677771518914269132346855081142214702396569543000396688261495101334180106400004797817542650970884744104655179796775761958064417724730441174250413978627215861164064403882350760936311033727035313769948324799678330171227163190425940874203512142075644444969150914165151816668183827762416784876472829190249712471904275425459911574253087062329771476259833078553372147538216942649672257973054653203341265349053206178047914682676185928946784373630859818079064802878242121308435498291139558237740401022007937397747403523310054859986056258456698032390756722001907280245822421811081545212344207269409177813911189939927394567436427366911138880482799366578679091527957716796114781441960736463754380091247526299775514917262832709970100631311468192298673707523868031232332209777473565467698691197449346324557454779067976882416916761363338512142630743968040367995676671706228926851585133538180973334613635218577648637782566576568685256086172344551512489072141852580920502173909437742802050785446577656036940616761892868170998728251277816993869590266917042158680121481701452964623626566287686315081745301374854698865828065904360686896572385866556423592784414607943086305670431959801696145775524772015293454766248569349168235241024595714599462501082408957719871854306233076975188997370860845746431053974448055367606935889821060479628955182998817178628371337361817418703238132763432493019598779343436148311755422886638965474153778786670134038236966888465420358259049126109757799828927179575759950903503540085729103107390816490509404067768981474133353794326287299574326292425058100624594578969987057374337531690662012136417067408950507399946249951723819378319661135071596936200289242150220709160496368302578704018051828002809198059335769442767471650472751628556816937477852236776107785789855103242439210738717743261967885693891594620597200718839600223388356765772133359227658864514295652868700905133062424476120167156632996865249132818454734227652727793386535134724941799669045905270786388188870377919738883387475345543506106840812263074134210375686705650001606243409397502377320559076133399646699764711199585280633189547189553135958157201908465286607758319805099853127907801081062994984326593809125295268437454846169899076546389435515009386585468398913477264047782376863481993580744287434856413634909802127821723735484697535136152063139024856817466735414952759255882989533807421369089044012478281421504578047109809421749670844051409189480286465506903555683497564296601520105037685158139306218706616167401621282289255263805427999294003558863961770493145652831728290015990968748705756871561723212595585737985084275007276812978479562557565914166280882596974254537806422766840475398391924953692217022652388327135556498145692290970908663414772073251319051456899730755752484629713876039281210870574554845307456618394658671713776953950694238218895967336325988841091129599951768777309946259035931748808871411391903114622279408691351474639043907745599892602652595315578709732413936072164367136602668603924401841103554042447007950134312755784257885725745509085511402784892780568322078100114589223094735246844998039840038385100301202999454191154013649259442009940117074676472055612359071001560866508720296915234175350656678097422761326363658432318533019635958026505505306757450703412043242740113423216448330202648112432717883510493445766933979072260848988832451552540379853766697367098184228710353238705707268667300845206916195545325302671542762885397494703169509595732736477723367143845075935715005110450981918871069685029018628999497942407950805048732361117754740221027812897004786234989071310746956447585835168701038033125054963747985173100871238632887136722067803182790414652438619411035065429754021741678438506812102565767702692913391283551931745154715470373579777548997372083579117049636517578208437058098781339669065924767857511221825223497138170781494383353673970840296852819759527406571976666368896213406404998434477446824893142103469152478126487046402126550499124786661651431704395483754532121506003882757624509767793152370236002603147563537134105775106711678202831653178285922376537007128447697810479801154326782484169932199024615305681762036461800662425747807152461592591199395292279936929751586917693719376440305609186768024223497288932055011990341779849407004417172471689727865484425394114395411584075380707598763552442761494367072318763661217384080068107964738845794000618559686848561149148919805279571067631542561408976777956980105481278756872609393372169607655381896930766498970329835000689169519700107869796344948905961816510147428736624701359654067998584616902344031536042528548703800096389301336873197026992786665575821263013849707691066640039404092502246271211347959250404507288054331377182374358407873837840839155590707474226489403634081417539219510173691568984457911787318646607740005510751565332919885894311274735837024588880539854141365685098991437881913919289524629141678505938954486762081320027122762510282015927957522321427234548032518497586274322088570587504785204181660971290250013130399723970565011987760082637025109237029196176060670641168919893102731701381096193042340267818029138824620150214534325283059301377624810471819344300940449968663968284437753058796611698556459882166757262602827613931991140671114108625055033007331265465702544335084731280021998048493501029258794618833435674518729757273522425134954000564615955241730965556269915045895529256613124632501104080138417668348857802493220410825017859893430937982756555429874164774325384345527269847678876704522826046014718279920740180396963702400924682786166727865767247466277393513642939172080602098981080976355838654198255523027154944599584228772418183579620190700318103142499111567635494821431206755813521326221438783553986486314505478949792984193369107177225406675074793454371614388656247018607688399311317655684354689806559117706602961391968958752424136144282670427289361580770454009368595105789854213990760424484340079980631864301186632250932394877627184986054125665068049146829347436337236290992884131073438508292223984720036954877164844424402287902399015061207083728132596813031549493721266924550734609797044735027105411407969705422618494206748567904903153275682906509324875547404363729731987658891733941847766113969516035595743018987065290204462063490012018895434149377597903712168844208234428723062765210508584831306291135894909136216863340724877503381264993493147313310620903769141820303931895893797200179733642375492119706364398584974810161357244340712248416856283013083548781064426254047352045686848912603850785279861100661993758229518392030033424013030680141621030297923860699139309051048008873676658831090484861810838095383694344877749551685129653268535518487555875981645434031822627427212505784118474191372940370109467684447082847894348638066084172364252174380580616149578790642579090598405296076663503038524081096901370306194393739373550923806269503223336856099545265455028994369982343520943673703667343608472085625568201347363103187166800169374843918651397633001242845508845416155268609393093909903384706817758957253486320478617351095677302906247972520659782208286679740849840036537257191231886994670306545717330469738486925878560046102853842527635597945092226257985937994146127490093067498488352417420082355821678744851448119049552932039784665807647700045067086858975440269260860746516828868173001882797489100491558594609711578989894793615414523121805822870294395911624185046897107960417804633144138641625699466601830909257723906165875025688345150897015436468494018899310484211088693079656328812957487614172015491462634582173698382087917183575560918022662742936291293027520720879643704533303339777601180704055152329911615245200977967213452282422867330749863422381183312347093631199452207025551395710404432354961468996695481437356716648603128836903776665081163083975244510109951423734154102109327561431998297794016918110566717054247185469605265881820825819280584203810077019248883369865080563791105490660357247445643071579556649010077732378452172515447876763324954692254929218938427263701046919550673499299489561851188399668709784623097894578964353685600643175699041350249076042847382479488221145541743067887761063960721017375381148395475812399323241391912969518412058161782712830042004093408621690231069167165455675618760538946713136397038840006398945360973282337249078042930393827853989323582851409351535869000667639846792050149799750757042126572340211624439905081021716564711491399587439390177731549622924558474801429102993259193351232275218262226230672179561995778358463400328672380684525934962735945722391030413367792678800567636070847681742679516155857333650987619070716440691250589578094477166339809400751865443994101953698106471546225555143712723692296662262449528587906121289508088616373187310576960535373248150533887576540805318534516238514747960710543820593266255871626322896174270202406118121482810383250985869068156335666433337598869562772472905926226702147862406014249290858093835509570154918508926018912172826719321915344760034680240235057871796421176578306772005056810638536202232115294699829570728184473903440926396345500616244955274820089379251234917580061795561176650377146007188467174909254349354580818238898602154539971893943030654251576283359870323260939071447933225898338344185058225035055322089786810768204535569903860830527512567715023547499927379412760833461902317702437772108674012189809637207983891284640230788784062636217287078275827759917023747413388617198915370459413517964450582057007714583949209121613417151342677069913576682503072622572427196671725574323506448542909112675854777897356248594859703708554393099726321038782639790722053789963681699256508503394353380596455559638873772702125054448812849016626052018067804872651700401470037722550866890392241972192368473036308562342780927732895052906576253586358124117610434415843599353508746868516198250516624306564789465909722942175783857728993561855086277030194827075429638038043008862498614647079144591903082238809993010786903782426283081905912298950075925991376117011869153781305912953783410298271076373887304607033287435676218694881394592510132509168219826249240406163881560940202845090893116788594836616263047593348603132402890828485133550129131813137846302678166854456431374799241561416723090613466257276084901394466543783053974553323005855996595604584804931091525472782130452943861344113544683627090592685139537302008755531761097898749568393840805616465603948476635775614519354978749514924719922805859450019955758541585537408741039918828470802341362879564097596131233948334300675178495626398838463976559239588485951275758014054608398484283125273558369549381437751636859546708419542536878265824119972915768684504683069909228840449840992806700686644796538173219555315894924719290702291090227875271089118263390317026954074665659861478294472836952133330477735956109774148036394389540181036766005186322524126161788273749913804719532175244262604891230852494208423469280219710621824075212181252577867303650063373674732923561827251830723744880554993310885553037347999094000976343653636558559205868725831054713291714769500528917722037302106978444396247974343577875209709148242771026790200113311412387479125473370506946271301010324602164765712321284711273093906621940612422652913429462966667575004197484049994906798551038146656059343980133397003262654506921603774964832849815371506191089902799341150446611888979704258141639201991206558808512525325194031710507404137777893749217125376829510707097548644533346091516480080724749992045286463065767280170246201222019031955517706878682727796340673820071461028552170017413317558620633369361574220004330818585359784722196203518949119961361527805206654862688124512081030005619498640831458257070902714667606520940992420337565597827863221575883086489350080359862384961872107921400727534889389402327731027690236091766220403715813713286382820649343998660029886829120743905181316842885940903071256541388783135734479869701545570503225206948912773142273352782288810103822665705875045160690072522593570088565649585605237460412303856892702312490565315374895755677471218474048790289225290916630015781202373299983805885086205599218212016383752903440149669571803876421724472445516739815552669741261548742128792099868161748326176513725346825068510248832978827387582583273000793343465730835251881769510168396259635258725674489692939203065293546915243812007706413710282648661189902604114388110001807971230396371471308893126699290689710799783656336705382090892664580239287574636607964819380796529787686209843394858105311284822027789137480221252322090443999571020564602170158667636076697792678293455014256636934914350429049502406563264890096249914462728148584188599850397895271342877793703456835285577014014198201073963493207314752052867510049366306468720636382018936467779562297554539573531143137246109914355062629910676364371737161351724189892489016507308532483099922953272247594434548706653390023724967315972740994081762612414075436108850785833957617120200704083295854023509649316488347436574002651722371622707207858169996852545019762522653689069315274606012235021225844955522231194860733165895949318313565647408384436251686374341124972416136113480370470064388559622511590362380424329561902965341228482819555878465662273057339052151509286684617618190510248837825181787681528344561583805329106251318526164173621098454289660527919090559696620280455888345674828765293137499794434619947987253168755859091497387580516449924249825846252989898957700367960655194192275797728182139273502135374031298623594646420665948660063123247677083025699637738665197798535284150085277314521291393328203486026064453273760396506022973812616008471038842254639133058887116313671198157859574693751312709370769685176925654977253545415159762943444563142586805277189997869476964346809170061287031455065884489266610772931659400896145882473654558076609674380378728409888253037824850707108551835383082157968356023875271972679403646730979113184803805369041723796298572373311875684058899422422741762489237145868716363390004111368338157343156381715713604991340928687900398382041098020578923908887963163689988152807052511301059255610330794298609642383756526359062235939057068185644129525864297499490682663259339169179048786402417580272832765246458660211103129877360604379477956258901509250049985397573182462219826150669404919675400442058896059561766026180022273034421899751621549681944219626588363727172736524756577846318833491410356617736338175228759895284822740827259392107591945489418535905474900601744143428663634144848356179412040701584847299510349840751173579357380432893720192261747233085349004335410884475795232102775596612985850412097882622963002698986421603027203502387642460804046926496553141754437874615500761959163452618478896109543050533432908511113729020681386032438216053363327545902967026609245298179636596541631719324884959469223472789586693871529241081075441513192601314871378355919434155387767240131006809334878263103476232858320702202026137066932830753595736612575004593775383489930562596939755562226466950115486880159602671521403035588798903582963268327481357927607805857676291462705664237956804361601724904108159092272749267896603048569504642972510931044482548706351902951581365854115541878423225488263747142148961636058129953685669423268862600803219555003898261221483051589533586746121319248929366584411024371840122927335606773593432046202122069348158746450305312107354120757221468338571393142191954371291471200487945246414345893253676074965066035806480635229743025877255401163575122131090611000501721839160947475488474957559246998405855591820211327421897384269060436765143375236755271861175667734683219353757735888606534426770366354134133929531826230785681308887194706345695247188328554487398670811037874221889577967863209692963130940205734603275107502443737841611582862200278446914080132334639263784583841346710718201956859787040017891124777162829980346108431857869026173255381311293840857550317794306722112281304897085902442561625344160289918455627155506605259314536098027556888369637989429321685931383451318313043269159208844813892583928662161088443043781856079341753729055248727250503591451677899872575321342666237060265747986141050977249062380139178664871468058137684449710319005905188836490445449821722593585112937362449400361743037244205848980807914364373318964584611630244077895705625355659516237503723221379565601411858096023153604111420673163762776211316770268605668770366373061097399635271954906072172999944008684873520588540075516461243422969456919380970424466577709466353612788453657770329654628319775277844366045686126636635599343645177683800332541018053855139949464435431003757612322931503803639595758306255761571373225899579138232816077273030294222982478269541089512508752409059971352873468878664305554411619042773822475836463016914455068027969125938598313285529000406540009310887381033672328120524701728121182107993033907761730826737777058341356610186333165923762249543954735982419907354381749994637132475616941143263961266411456752603944988247186088816202456567982755371214142460602464985393579948574862628447701806711352755934745471984192928008045433190992188024076437593364145183926103541706912231810799078757496861475549815062608491047469584189823277256201642362624918940981562863279431664206559139359072198632456101610034092815080763942047489616929004319198200885161097107937619883102974880770241871918892727851680487076937649488431407317561892361774770524789732841199745459956858406933615914717529404360250542723488864300410747808760373345874530951563275837819011289928602489306882578785551337942780557536013930158513422818116958454448907273761360910510994724918089407907597932810082708301049305036014962528056375417343862572769640020287698488406233742345394712216789589300746668752023049762961390266820317763435980763962262360711892053109567712972401572931913565024227780716417441092872267593167246509166136978016243018841833835673555088808575027364902660907428008182472367311326104404639567134976623056204233851965960506528274376584151903745031342157550365975801793566689375268120110709307893346177282328066305825689911563166883270905314625166247521020791936190411893533992723437979919005346125251626329730971730978424244157860633280283544262227269402609310412559419946315187429062344981159435252637232612081713539955306478565518543735447167170003569650786623281167636376785872617755239921958236871276412925878773129048739264275334014980561888055954526671649370084484061757799675961136062646343039433226287636547456149728635793334721029773605913744165059058189088239243581731899302759243527486738221934328704051731132623880216040637767224991752330964842246630761571730345610286404049926781308574388342937104275147534894162643774434887836435008960580614609265360519608305282319287134545096939357482713285430431239416019810698416938253606105092147067308878616520356134930050488320422785504116184111910227784039687144598112110402442604743022135680910342691526495421605501832330125186736563349090605749933576042532553926869868435333921922026826413982135609106110790085004680895344274730681728706942839740848421151152680317329748428254808547528051028601531829085347982269732800697196184366364472387163819656964399030538142139783736654764168108196627484544074753357267407449917839780535301929347180843111263302446442603604985391922325127440529130910489277917299234295559079848582712358482633954614063085685357131243707207915145730891179794879760985077762637741987167735027569489780124733622538072147775462708650203937762574240863378588284943339143517588820632638673343947366379204796948714910116725169259490253057289682231565508653195543647670665423466756489252149884215212728894514578394240866926019898603689717452362910213499535857819818542530788860004470812605954746639504840098544448641080636887404803338999728227549468873653201717166088423471843166041135009337340741373901185674183638065642635834818716056054447044997710283381890728366183023681853656370293872446838239288564957122805775150713238698726861434758777087151508220672882816502220406567896398257245093937282919363538365712574916671741781947656037556052749491158032207805478006761080301502578994233994147399089249101590746320653048346951715354806740850438506880864558893440890920142535332956278541108831491997944279291444874405494427270397454278949769731938126849598909516634028850036251832742347974205454845153092797270113963040647201118518177925299108305561549278328139125255531287103482996828061608951470826202152516907388050910863471136215984606951364221035541907677421757976471934486382539318678578777533229226554855834529799253966534446177993633602878497039249289918389672695738032047017365407356659913394812301498064466219979404017174994306230174475046463705894935717590413228044958772312843943669515414999941730360468553720613089965275661793217286737549436479443429926576086877881684671709410208881845116927279421799830730283352143673952076690388741652301949625643310545737618936672189455153072228966728391660973558128927229584365468380122793980465238853528274067111884493396530536875632768385692073547221426387981299817934584050683778667779712505335388501281681198039028937931147008951107837654274488543030672263496214858675610685446650444539415676591880450764473272338871818852315935111739260481174829696564844667948405017167871831415176883805842191927206492044623105240813485344758982165000312747191833985871494762075805409721160776301796913163905547198236893171914620634641167189113800644853590822192135076018344522785738801596595979631157117376164906011105319186823588367308057511192668486482663477281345562121145078858499138325207157344621784633530424353010240278677186297550689850586991082735874105486562574570011261585282001036655028810588958989299415029522182327467712243897106208244383729829661049507696352276995617135401373200269101672954194762752415410606641004997163039559573652967475634925676868603397637548533923322756970865342302009662148447447662465088878196707490472379296580307511207673070793383545855937592089402354897984666289789536998377063892367131748057217491004290835901218750316593209136689352250652860138941914124056236333470147568796282532287478396368397219751937128848416486279973880420457188996996010489403551793773951662431777265136886770898457651034743169984527043677999442158284010928014889413982474697818287461508997520391922045875514280714293255334067539566086813904106576249592009498515643270659536517393842050069891904316666919886180736435426264325169772863606314104740849278083861245488467871072881502049739372996852429189052088904389176085672858790124480536905409706511767543754968188648523355319293529917135371719436446183085474800522321536828836184456885521027222909135188891731667560930345884591778037899764724863837438881834373549552151943086538734705946170558507844830133547252760808617130001963332421728019574107575813143919312965790774626928298343740314500658918273782613415279245142175796415170475136762074346835310992402952210198849813710849173212565805852274234080237682204707198499099569382671192617420918795766050143742556691781048958593585003403497304710430036318715391273713154328897054526173182801606506903654340266515634837842903769284230593246595952346226179937254296617880236229864607469568414399577122365073022506180067435895337323855515398508605262944055226868422643457389207421170296057029452914051682135754245546254112261400215130658223998006541116365691355657529078957450234694358393417252740288548750644316909306399369143618636051484267904412515050519165057119271908461925802983333984955292229215727221377381864208046819674436309608249043219974889643394651049735471522097850514747161105610856475141049449111776408270275574418885087815769367673727031300652955122291910453864122127703384809843722250505698341666894764898422073309875016984158898853492703472541620260979231013812130003795313697974950070418363921917214654376522976279539062844788139077861364049057146349894857404647771337123516001479734645603220672241613178127978106013000487226497654539677830678127390911475311102787854130950263265580067934494005918426487505140663330720376044081426224234386943637633072645630170948506136360253865563535762488862543784079839442351606157765922926483059255664888779031603130948448199072285663396600500919530329230490897557006800993930756640065184532522951484514553252069017850545129227812979164348700713374868332668321988414809576029775666969745531224279347453158577235044663005389352279684760205175206038003094911905697922035569140434736868431238803732127021081946336573388769933561689386206048628531462412382723297565155653485309649214338386614569262000102388074557581129584382313996912695617692256655290753224169256725110556280160047734446131143969935554178305756613567791862880821996894780837212411432493585305382649617875969679392289366584999424627196938796863975530116708181018844244466219606526606295516094985883358698433902147764856874092612352590278061070123185882679458146712388419621724142719320235066779380295014667502889634588960573240865606330878474389057506924619814003082524034299853971318409455438382427653825433587007598977249758557360486370643507634978648112090957652358139780615018734355304135266036504866884788551356598200231086567667368917649759714943918970076590831940531205057668689680889224840312156163967104024548092948567772801993644752029727160857140932314258885866266169693954645645345456049784305266759332515092811543100738318777298223094125940301960276326379538361917572713944489031480792686304783985239444495017768221620163512874195954003062916894300580791959547131161294853255076658757662810468169391722776662338426948102789273312544200322103845343238372712433441718175116701010421989919397010474409661677236843031002159800970226518217388263083564227505806810973434053360765997468630669711152193604683677673186082753632464255507444296111266166883333323696027397612855439106676848196886824389155267580579233004165599354119796078218097515086940681431142689879298763002275902281136426998531643175617811856075580004705246011930398937025254212979361957358532169446862355081528025980143280636509959331540022452799782717475831098924107222068671425996328784822605540434123677840647578311254290675233180933005843957327803454734186071292952845944965580746162589596701301296861944322098923904640179723783833219794962175335852320254379177844238812141816703488613343495066103006375528205773730525091100110170556140661433882513847932295111979411114422541140927249560933703440287766688063218202302813552597524623609784592318007667769910364317414200714033682947653637597599850229120057521015900012361086305842558269380002298622197835313392980108374897690378061003842319704004106376070616949670582409345713277432534216936770651462065166511120136288495180929841463198399079735683724712302079094256543417657086264398304484344745112784281955765271081864270482138024813581635060768132388712399595655307294049052655817811507268178705677857024340794888808748044511610532506479990513462448079858883245306906342086796239972886005242695230507560639517591994638657635900529226148748521085346199137580485498432167724687383230525289059351124416697773053203357696453737577309572741729113806572789989989355776643528716537160143365782192471076181291287955901540484866125510053586794303364260883215782254438415976059440344297344223671917197113308275763063144364493346986984417859546922979181627168135042437925928209076088076461536798471593508155156022485959404347313285251067635052193854674648841364910379083847289950546135720545209004879645352941390711245995391963971449641461259046263786143765489025971344623234505319334947668804588393185107359513993793167990921882907359072131597900788244916756022297433783235043025713122993509611575046296965392938511281581508414750885781234801931050131208202900589997105564587063143316174791221525772777704430459785505830635347619897487197176719191425600540528294323538380248151572065343215277211926295354699996369761081420506193736309003863171306103673845748295328382513978116083177670214890924681898554435302608998664181238159143384844103156401141981249797718193385311719367928441526590416168960940590995700924394652360460450840176784208571983347929414737005953669137013917717927128874931432493342486680813655136445239160846767967157411390044297727671142460533947876273736744514432445934067752288651913952615133338732416085965930143379616589693944426417410463827641367066655915216442551762603017267749382936723497795005037275857814530565734974155578486532456635579959640492987158160880069036032147130504461271396988999797286667136828046776834754904453792662450420268024665811598476823307919411168502522095607213972385460338328526692062646132432719715529941118332766530070654758478045935766503128863989371922783001062699560640346967210039781106947610069303612581712767861957632339737585353223022400287043775580995182458323298225715031033345714604823222998015527901063796141076792926309734545804770545800346533477942648921122925052811290404972585821452783338981588080900432378019987476501347622472446411563707186738907960583958065480920043343676500174263081064664046373249248471757719225701876497089788210079941313533849723822129833099509489223861111561693558456370776166399191820633963849481269642812582887292466444196577095359328867673647637466077071644970554646553580689037090451028786621822687540094408961735098872132697835806024961034237671054281116838280549151376414385150745371018161203469099629250720713524798908586266607641365059203740215016137913414115570744447047769426419386578920678906563372800225067063828993441994313084915165949731432122831748171723707274900647918614542425926058014945194303741261675806325124477775333014899461832786430378200056401734600388141421023974311235562110451971876152101434899042947705331559578545167659333628988740009452566808116931923416890572607496205054708167189426212134459189828033762386741109974367201323904377835391868580846963966727224042460687873128691814650639719234522576084047631533812661936618733599845400992128356694698492185863056797821051021890036073389040937752691221426457255617683500153611995788775882548092648765146358355753386801485378017576283201131740544212413274367155283505910021886766062742641104564114167142771939445293650973177109583186654055932123612069874493175256741993016927258737545658436341714564590457676326375979564851971010380885753497840121060323368419192626552362222948046160510585876746451785960587336871211758790469397041482716283509384721804349868665985168574414565598307197758119298687297996039644673704928933929205346598452260956257999576913049265002080820321890555238679695673047655870380067094097522233812643015291406315196181098680471820635286604258956253839287259680207391991787515451752187782915034784927712476411162313911578429405733064519400272707640800155019895459957643096076323627307334233364769532304378785352079553774359681653611368638193777339510838572291598457001205071650907341973589313874630564943594345877429901096900311215836776008487863472653489672198494431049405211968652889739208417276933149539594004664057288619045641313385923689981150928791200739255799842542380776246780029444820362106968906523300389214081059660615277042866036688074799251032728806470937855572871775444985005700768615090310683280952232020646115857837208840287088742483716580468635123533949421302796368279522058802083225253834179324093227036619296366966274436035875624024257859361694355284795824631675683732926963884381120408278950141747556394442282096156188548451828433430875732489673120991987307652240957711105688866375737170657174172792084904698372169904966344458373671002476234534088166557522811685280997556079625959902704436807522212761418881177828001598708594483741511081023034398310402474391357069060352032137834083802176158997669244374932924155417289612477955146008075311555583282280113086291859657599568973222423993673935209771816255119497525410062201056919755365637727596354354147755071637157127668302571585004392991087809379271382527934359070867093379743727624050184606194186237322868828949327670775218197532139932666236777270690551380979978414519665496212953971204850536409710806603957120824516350404887166473355681468749786977574260208419030784430342500551251523718528414363757677505114930434164346624126730585946501504168493624977875801007874240826987726770686657834596469965527057508381144335721244618259483229207602191941101142422530797941060718579183959048545175671418723178330805976757996883385679449470598233570514146866720895065526134186372601354480098468555748484124516767539197275863830908852648506325343587355225186437350317835095935736381635236757337719769582946099695642057504018255390729778822869294205000875601970547623117044769177800489928045079827693873206281616730310448594303395091069885513280034736691748412988328214280224301271224980500661684249261920542492376329138037289720023498269100795306943321683008735459181714570133189016568927751850966517323879860228327223839850799110667687853429473332980793898421173427795841250494662572823007001562648758777974704051809251038338077031576261757001402008511688977460563622374726212759216797907885626578936822130881805076674212675457791656371708657573916370281061462084508673715889298745277217263562231464166079116945720019755651659307240559260973257897984823002677841219449240529463361109613775118348933404750547347670940473506861639276141689989732865252587901201097951275026809108508157790376603580087743068098704089610708051315950642469267850032805605678451915421404786849943265707330103228496197890593946273156052043659781469763966387040564450323800776224966298315009766521300857786489994768769940694091642447125645638711297231604310228777227667354926784961190781895092280024620076981757761711006973948250678125030499288170022071213416233101959390222444411402828350507778227851964042490448727648350968654287484983189283708414967540288905380204428780971401935493621143956907999473627716479353612950234170649915305486502121021468764852683538870164858237749823724635517235526381472251418667050008035740497304083242661139304473165283487934257511899384207427976869003748892699318841946007754391779966253789867361605099672151322081728423428549367732617105467992449865204697942579988256550424218678212138653464471567901557855787464309619973251909067265952512816540364320450852311319329463735267294663110272553202803162507187102617712878697937684874970838764903007562927618515670690159451256687038607254714720841338169355261056132579685367370632469293865759551101153800274012845789445938129447145549056194605001013436823866055479575335355231670608837009578155287158563274422636998956164644447494184088936059618487823788484106411132937275183195127443976434969713868615572216096476515015885448163354216192210348914482295797010719253952850252182552563444834156997829947762834013703545966334572670507963782155541962374592774370863355988550424270450501474618797349587353351501465280702229767213871470829210247615673795685990548334545495509600431432623294530866440615841316378033390289943889565341115117109936773903767416924791297789685513846155170485171477053496335623650417766483213111392039600033297632865287165552229671525489515691833484168378672791144591016425404001259695942187511116668990506091983439194101991902501995421860841554681064620620357189939151479540174038524265149745561771797670501854424932474025708767295067745815998633521395642021540745632022800485524425296580269787716314669380950040874195814132862471965930544149185311698381802959469912543868537199968245315525125964932969004108120587557959892868876672263061370012054514373270300788600135312425993181007455062184385568745920726905960905716429842450659780275785270000538378638324919206448300042334053454924957672202849887998234780410350229667105898941618828496965522677059070933644653731297664417013893697180042063688535158871852179471069783820850151920781011386823905234869819624926365382464872074704520018632502878124030758738197940006781870525597602217113197973709402371590315075158673887963601233257684197055390372696536197267815777742969429454816104147017467941608667993793762521649104963929459073389111117297275227311390615522464997983220510299437775459430632868048509018212037588520297170954581529859807816977917556129688682623967346640172147460126810102434636427510958044341966368326530992139073032429302079452291276853852330199251972236480214013127396567553643978513846762742159297510263443713649530283063467280514914551709825558937731802557578099387132406581391195869956371560043236542540709809623848350983970822880128732762454749292682943155013742558820322312437997975621805990499978166708192098684926388575559021350854116849203417068303435061685376569035429167487900968013402171964511592983980654778596434883648639129131966205927417333432394749004444943513806560189971169295661559500909438410464421806035810893760881675411111307254226121608262962633250105595021708791969890173521415171549228702293583903957210219722650458635938209011836877640456333258372591648254081202774581545309046092640825395576696562442736774063611958039338505146611506361049748752656675140904107596209403683460298002013817504910700357514362244050065647533430207765906381322669936744443781798749500980336991539233129461713433110036672038885191560273968664657167796112564918087415764230024945524072101205570106098506802736428726450336621635345159506219711378567841285831203385623842428970809304075237471874814813181088777006362102317648966903608532811214777502775542493958823618856150562182111665875440159547342946016344285788615454941781031180661727273703147643885370538773100472573488342237995482554337304138284672167126878391529777583102804312050556667749617581583966168659434157321869603051516125495776851140944730118047066280426068891304943079544662903292304130485610231386287510227032840797199336415348528961368937765280631230822588271405863723510326744825683163111065889703290865801120245395023307046761225260534591390081066071940211747469939630628391718185740507169271770574214492837401442111144364467435558979901879270063308248401662374197868182844602803213466410762946383900852129626397198435051328116652088207299583411515507651666952376406664350686245206306092897784860714596291258986176230254368345142789150345621022389370592378069230132788289297055203696684503230789356627539651492714423628558414261852637733649494585791162758460349649324204428336335143655875256827118623424149776338939243120365096850097034531174293641361894611527279210262106952552824112483122090524487557727031641604166351541057420677548416893735862806564468667778579284288752110567972995266275716777651876364341697674447528385494774787919690024104708143178007086791165974829567001610450803430495394156380748229041689327968368693869051360931729839456586460728196550316025792437876392757178396610634728066116402767376655997167581237465160282732554920514326984841392464845188037893632400245761173908608255337293152189781267193298365527240695062604734892387854684033914554489605890470641577011023453134179417920049698619755027293800511192097290787534119622066899366605465950898087286538127568248007090799833591653080576651676101091448138448158031618595535676759617875791984919760725683900850686663342896729988876727837223627285951463558325957335856163199906746618390965767354645411230969214186922893956347558485400098799791215625320011296366318275093299866617952514472883267103841268934011126189400972996182801308662088158767036677104765327874353709553070639223205943356697921271201003188878342747144455237570482383582839835573310815638284814717211731272891895869713196917448609747596620834065532615109507313306591437763058956744929865539942777329862012596923573599792874614067913541333803993651639797587319408126035417777748267001168942239513018849472756676111006929227727885806625742448910117881298430530640137174793587043687288319428933016605000114797257948113782006555318698842216857224869000553428932304861644685476665270793403371060939264355513046216141470623104535085585697399347925754775293359213721805334140250817460353807623710837595382417561235926826232183221346805503530420619400289250293497507155282547164089962375712182349041621257923744368085412475909864651661873620567757834919649568912422714822861743142750141465115578586154549884522662935451721660737273535476319101514394960073316643401571079427405641789153927705292058280347775335958928265682169091513591704814908743022277640428076847057909526315341792956102986995684010589570013689702852299661746515204542378544005502312344868543931636743879349287658308435695195336712899102570487062611745786340256482591312623403326473098779638616653459272722742082891258069568929181629510028243760403596550694852785730295630112605690637804763585203860554394920449208448996963456866064421019935774135719286211517724361913792573512039962337768818716337369070495724756997759282973628895068299965542646385962397253335514625168883226032427433122635440211501310203665789590439297304056833044788166217658833269117988999312930963889909202190614695716066208125363616790120452686066895152901783365210986206476638622879753574546565522625277227527538204295385758876246749423995207617116040571772177198656344073861074220901683377070456585268836400721051013478251840900907118889185895308001742956910101533334139670076528073107999691477386643803808916756151290810810469204299656052481562727276494092296929092526653174897624824611570182881706445137118286495514137932325975280939248263828993530359914089458713366850531930554188083713324043894190682179649230417941682110328581101978735834894389219846712842424273533012457910164307404866573021152298483512090901046797679101305357516213569994585266393621920325590039847522895101932245536154785549688265427419891579306143720052582228998079878043932563783131593522675357765552723026189374769433112939749640746891484339210675183176727612780029925656261989011604542731313591233362609707687685516651198568913013876306073701230076160707185413206712531933721315084511073011306007912752832801833127377234455417026354882863830150186460367843675083885770482001097977957406451981481375578533677196206765516660223293926052467468123525722796428916388590890597756480402772041200927646216709031687269387046762891543173884073853640946545832544097752068081909712242944427640746661475970768729043643050915597482906493422080078869153061821079889996982215809466508965556467288341675643741329276900767728857443849369913521629571958537621451303322508359457623139890130496369695034945826344230517362333158145284933331177854295339830207324326094626188277691075316353399003156563276106362263658170784098225439743075850132086766299593261082098745981395748488105059872992616486603883851523711840797576127320369600382276380512042902450185633254424256485758472629410892921274467354818845782629025760805018559322190819939686722347562292602293010993353180451133696149003405674848676439447655384133401754613496424485642312751420232991269629349370862365734156100171880147298456784705686069582890531396064826039478617209869427541152538251469678145901462383426408145183893528944818410496608835527513499052731474621724860776119759154477288963733302837931023932922225763514219768415408814194168265173809717137731584201575931464504381120654264763776730679584200419386198391762565656114558273168211244508167386125292638620601409501436182139281990507540596688746028749331858279083111578858289124116072030806988220178968797448975676119410336945536582349646470556552146084443671764259142996595379589359618154168241299955957603980284081219381835776199817349995321248565249630914634580026296277557930738095346657638663476926874800947847619688537486853924012907203776418769928365946047034262809517647811229422834422766758854344887724928657582167840113107292432611605320093267507480879628461834419003501943677092421822305865423477367866308555667163752800154326566992151630273534849729259052867656601799886700610665681938399424291669125508529823354527264640473366421981320891153428590005835799392754402411581029124301981027868404442378024608352264045410265201317110226944504031725679348073675993928949524044924661361420640506358647549718162654414821769844621641983912826221351412159487948058700933434396413229778730006217169373097572788720271081055859578903087011207247765262979980696399775185690126767524903047223869106820897186639106565114680165534098696390519463895041129692579437856040947233224304973377839689641520547795938517719133476423707951065288878945073550987396721147727033764956161480170544003245005640506625431107938218811925024039297426272274708752649950786103192965072051133766862233570976136785074996417511001433107347225792666990179810066769174456067554394768354834232567187676677067818606593685813411951265381287611789119361755340138858019285298838426220448725979351045160234660853087004029151869689510083181529170102702651964971061061658292847750351331567849919187389362738539275401714374417102634797525489521889763515016548351661301027339818085626202308912182311643789564997442381530306583199593494458949170016124234386037007239874314137503610803808818417775603570282322441461266815986286207553893073088755831271048375523690612987932399894494972824910312849809634406941236874800863286204449448872498728072198030868054845824711238361225040173189224422952754101901962180207676830215462124482522499877459468711792811591442874477709479167685099180648938048612331058283607410995273755725043774013200260834343643862438683865289634612730044451123986898849112778940551052487531226591109215404040654006687353058921373736303406320135055713774454350412018802444096532928354990269726111022436219121531775307726707732176675207403306450518942978564552236996670797226133883326611978645472524973056488906492071159225437161121921310544441507213884175712210346512754538090799309720846534186749975334302991301146339280604438736651528726578977559861732285290839752582037528866430940890150506514409146847342012585254483287830580929432209337048767742622773170748988658237651178068337126309771631416538643726085719519971790896644794100248426771926345624557062063906148687545411556152928051738219745407262484713252103507850696027332309511527576868813183289968176860929358579182296922843341231758667362239563521146027308775888958179171709811989262895422284114332802528344095425667795319697736553935346561661207788359862325536481986057883481198356971700582105024334168496084507296310914508489012813638707552941721873752255681053590668212548383152465058433764797843913013294434005621081329556563525798187432683823705909931753321734247542892055590523680857311755905760046862764853385333002891050375609284812924233420506004088158120096890724714633973376574386756010653608468791067615814593898350140376721198978150879874855326547801488942094489217756470612254719295885079073434171664498158205404747559477268905336651452565381120761215468575485143066999439651618106213183004657114342889004588912937933009557590175401479360866117344675803742019860344916664215963741566458701387064773913675449690986412208001565590793035337306801032420579789858613689611490742381198684281946633581042930469061189911237452589883184175949437486170495354376012166125326833627952435888667577780880406875786060034603808769017203471693774011240518618929195213080055329242727715223638887702423433227720630852864693202058893758989811950930086658955783813226748050032575610837454939376112303743663800101561321726137412879508555206854825929903854286534037848035270115157098337177846979344713437112162509085101207943147604352687259722964518592566569911855135877025763561400899328438187485045394293202046838491076435213926778065728238622326713239315425333124237683249210097501030971400727534147892515188689493185642145030547156108036658768197284048607107496817302358838219639030490099034972441284417588403422420774498027682255534235657526636212913078985943301851047646131871709538374988112070159627494448072497084096600527032300353193877089647178405822401221316949462863021590015611061858648628511968760548388353139763343672089677223036035418774229979619523976083418748034220497112456984527558598657011199222524753836376369119723351617906756856418703741809935222915671483502457936629483143844177679780709162279965083086250017793074130242613394147687818264517425408181771882166624653435884504366489277063270362681400185760157647994552304611749168964328562097511588803712245039561908983401156756609095505341136419266042621663250095747903851964936363852179284937458797381561857498197079691781183837581747154588085287055080496742181373123737201361465456138065947004130410076316942612298073154011824067757912702235807630988860199681431208825085312441000510151425055135503843252001447946186279183942339297059262543886771211097976229883915358355768104859338211353203459405259518582046841448331930730494787795918889541933671345175630684446177040237409982785641151193573258183066393896718306589388774675237616123078874867552140299964888774584333690833684752800740057781477186058215113312037621454441594963911057076513085839156360529682094770720584295425706428859352472067187228919384134591555450455707585983548789552548757780992168067966365417480849078243936408755562147981492098477076719380497271345518280083259263150729266673666170252623674914050936098892463881327076858981685821493030671491957829139155217009854300361466274967928945393127025797790864280298760270339201029435963652801151322126444475308140056658306486324825430441372808699764320770835207045122986651313506092838914751621655075782603331021848285909783527716088788112087577903880572970357519333828018258444386384173208119352629664283417105529967235334514316954236012446497552577997250919139409004703275959011044798467395415213637484012638111267287896293197539200647132262516993420505803497445271047366638173929715620000462178920684737402984552079464537257894172403869595524565186286283606350384547292466236056271404725602098831479648455479111112595158664211850906351135705284407583220991432351233936973876472909280669180814447276557258798041751763198845348662049437351442394927934016383436466694045285458625709908307257427085756321484910206551815091387518979221299797487416650336347910624499196402566303660186106516353800897701044093973978599397742092922998457373382606464408406294610559537944272781147364346643654166834283278630463014656463775710288538800603149283254925520831747040993880058483404045480018899354572066592676818164527859352292089636750864887201144927701256719678858064977940945334529924351396826207406201861761610450736397506536118180261502631723330748616698633207284471973756325991869017770501875829719525658460242859462142189939414425754005584837196302207431584325392714359275368525048814010213886978958883310406044811426232523864538063510196310603788314485995260570137111991330592151712455940675992950615944006335105957532335741745581986509744918430850169083692437838164699827781438965419980480490422003049237806051413845946623034565366026687656286931111256170455561712418693005429076053100588290939932878308765022160295029657037945738070408316652314982045830019521927357914669574023200877252157853815967780189783949327650994077588382870687107267229088485794393422721489582424588931892575786591863163830075591872568520374801945404924185991579158407284349478927753369299185405354564423287091632798522319554342338848766854523690973553882048635397772479961546803657818792509506785677511733942794106958484602069885921708518207787219255197562098426690057990628250285982019358213526867454707575524265554126069785612066036420581089640061841836889338234453760240800757851965743389226847028735403545934601728939665600901771570052166532637684635831014316409508480746771894281763586815730112511037943726993631715672976113481855764831099377978476476792831751667466215730298913250370350781228738199130199800780621512291811686406081190288276721220129619916446588559398631446864086795636163072204719179308688199989547358869245072134159438910039677514267581105053676124541097067983807802716824875461757376844263450093358323345842866097348572920101845652613427603201494320792197214087242474326486738864828273699140949415320230976016184524354487399397853997867990890809238348711057814527448293546703893449877661519172219284604361725757732286333358486480150959400940084539288307725512024929004262917196493308427660805076697650812676059983536988776699148070088066538488483061497143038711623760865260248085742086065175726755419331633584355212647271207365378827085635876934717866578502848009668427269613329495933607851523369208512787074884860022385303915897224999101238093388775427930247953605084953615785992842002693215965483231745050332572962654795953900582910736347267186804727799069832515868113973815252500744539657946106237598596233885532707883157056280953477004470450117418127157017260511246699673628502803146101971878987252968563947988493832822694469809460454872386376518682301096465834766975129049232590463684661113299862948254218279071322528283540486935797844627889990963242065481686322675667228818936398371753983748217434635716683688938441441190647091505886512669439464607484091634889585487820599516208381150314658380614199658808255481565154325225334969137889747440484807023595426264863113231924505805310608148081792174424199759712324544812555465603267229828916981538006174833315697860583823609965387858066470383061706398518179224717194770504266928293860339024670464080230169000131069170418441920432958611629972453203933734224382032287412920925722968834210864583556502473898317955762440595456196870850345481420781370463764828670213804152198070788769497488266528934192189383573100505107324927494163619409316827464432695480520713395616082782046928259561412307430560417328099338368509623881846860505091316922495883347391719449552457724101219311229611093711665040217297018500293353057141555583933085366440990143687348879825639869454820120056477416471299093805841558777854035540088664938135612997838442041925323560044148508444702707668432653914176977962165218322692462592435383203565363372997142491598353035356601002563719580086001711880426016857782289571003851953548279370541726186822385556409009127376719854492502234015585211772304759915776211391406714793589138585886445258872410169581441306089427269858953282255695658911677205763906517170884475165775532048303252400287701558990353386063035980821528114106091232774968292018484316996017691492430680495347721871815604579720064081597176478476499834448195956898600581218764527667984094600776538360239242531657278135777815296040401472525352760940358609445268127126313313847287671359961108933834425164170823789919449335604448443310351457420865185896484626567165354523080038295911336906683892035360561909954375631945212276527873039748197051094557126729290958833027696483257449467866698961683498850983244720479351729532158673109220700017999085182563978107072776963905993520679540951874035635366774068188328933782264402412688130879079704538541951451983305539956699506696495877138756257294361431016384030249379444268495130163599202837887778473494055271075998152226882433522177469802140781360191896444430499679462958876684293514639208443379711684874508710372659608224755407969104527720145636655263929155285276467597040520563598976169965788701959176239222563788413474336806605268169408444355352976396254244461072909063102582091825381270492343153424895301224400703072255649636606716665379212833169079614225124210048775053932423006007978676853815846932858243027904037191181273465547852252100355482363544829040558506389363101988297564346612664825152338239881561055421298930540253799763328810866052875817938147359666192692145767492484892899430870408777581299192101164896042016842328079585142304746267816732530028030800122358376431784737535115403088860693615526382268290986534749554700382936814569004917852694862261023427054226661089880190567174286050067899079563359486713167848361566485042804421844408672269098971006532598392894770167561583036025342690853586319235035142286356154293090138292439996335074889245586067543567060978238771576404455219916234069566021732379620929601704701744068897346784332043011512660989202262583070652224662740290985457245670090259599303560906729198022317941141892547933630767601991383704709234409268585276559222058055803372830343281197287573744631822069251561094229394828313658335780012369042951980254844789264596619709477532945186065749693867905470480451217409917201521862039541198686945272840150459350711835426492630017436125576456438232237734666535085154153047234160074866012474761074738417416893502329648883630744412180476819651262254558217124556792885931938070803892874772931841454654988607934002411737926997964856246235157021619032545285289220298240240042903443967981591833294589512970833648941658554229873114580011121050049252129245643484885439695774494474400845159507155774284786961507296986643950377309268243743388801243890013868889954986899956779099083400985312619996495524541764347795843115879331744087855801364990042047622737506538425267714034266470876789464321484027299995455271252285048063556181702254683745156304906208738257292556763803956465245157037710682635114157923112343778399937247813460182705445553243158738462798050798474833058262592299907852192761014239654287782545016705644164941219200393132124040536047922035722568131276249832167635894852343237103801188826062103251915882809620392038879414545093646336596409997997854504622750132200110419740040733808520583404553846800549933865604663662555757370630585413612241034598005029582172741219651943501593272202554713147803534791541711476599312405235114535864086507510757324169482824776271986331108625519367842593866205408267485621040749698307771011412363212028772794991799803034231382989439174367143291061734504793293667538926842422110321910781911216230624405195112355294120749537564933888505102581440983797944771045692480277894120487250505914859145793461270502916124606258108556735895602038711259437985615236926243215792978514275981674381320826550916090699459870646681166128772048859586510296934058922105048080405113921785862705862938986260963790692514621713751638433752800077609265667118937836162153853479442992791069132410433745443004570438153555731003898117527659505638222978266130823648225555982144659990829902905968706124164809821718217419344320964758729090515641652940281866282230784610942640134877275231281340488202542112167305487171015298441258820128969694420308034216433767446351570991550793739219299207233104521555964364115433551372174988333700188279925581475196481254461685404616165921454077854652383224375406340410738801317826236714230931667941679439196608745356564955748733539490632635361164293320226905609706936580528355162177408940513897180420748951865876037559784708079527725178184165217532615192037379448834424895444098573546634626420871381464402418976486857711995822585784479988437353633667520867963028389231307184941589112975679973466419434544096054960480288023273253238054325258304300764834788873525429966312220455842136519133539357578022457479377054658843308444130304978176941242174729252008203907111243643550895190572120249442481392962738444862647055426217788970151052013991239716949120692386798281738893317261561436959735494219934778209153509186858532772372057283479243853876416612052598521571736858226231160341125844451436115637561459004600644599817642479819582118764208680092146836363176170119326085852912305351866951270539845653936434409059774140364334456362514011804414935083760995036746372952046890573688067935354357310941611834380320899727192564660506324673897423674394365810294849973365624381210546451832161462483866180736092451809274481434897797200659257326885660673841094408697053909457806762193733196839576421136755551016555258534013210998113523347379384646107659591271165297019197541125032249373250489486549994047321081766510006592042102471231756616226324775909047541388678037257723157209868289917278774009290165853684177489578204937744126558646277669944735137764474972894531634509880415158087741586217920302989607014444735776417977591381481353789798306134276873882927538652614833467105809864296920590739305146620185273099426934984640629062503001360522074735904466029390739796872349197129802187168752921017240582831775692857284539898090207112032592085503038290690750315865438722175551119208807759866220588960146209494490082491076853276614815191812453508232806233927915756004168185872123936341049547744789807209378332113293265184028120396038027582428488333041291763524151945892881815066726020757793549863154246108222526186180554669689084327503615570862388978823892172054174203734292734475387269820190892711696848246251723086560106047509184007171160679843061152687574092923078607169584641449405757789515884609755430917644437901260471332595477810906325796533224592124831706880776468162694419751306218632391639779860170038319544360681814222989008410059856424264037360194409916579291114079311612781131453415696637286791531664311454529957647875027192880061439401931626349313001823419093844858841375341214544775332789655773381003410045872735124279465351951056527526395919090496551011538874366063508857802407026260907759095728507303211633525447982123206646386024853393864812505053893508537761865490574942618274456626617042317645184840967435100378242819656013013446799930507357301128084203977422455513875399768239498584173613776529229263159021364283889895907747762365014376626394921808391450414707154179193395205416485308727414974963455665276067929612287282952260061337070481839105167861411314840987412684208070203020304052320943554509981408427362316095695588664856401410061073417153013033305621846809894052228008053848878813068102645378428937785351251347601720497221227650058049795951788196668673839621088432786600447662088063270390590451673921786717083668343256806482396650775672759197371467843798853830252815282135938816593176819124597192831352442254702666567176467193546414470947330927211262003953964682866313538611517647299968548372082907812861342224552514493886412529396771534062189188163641557727905235944490383217793222561253448716990426899301372060806767972308957940582341772002737496687090209268274349309523007699903986919610822755265260182905260738422875527020734113363760003640953339885732278342000071119296329128128598423516144272169956573908945694861240484863624021108675717719461827511868710706470971188820958782283389255392372352652701149715901204258210442049158455756702831188761195304703345654150885669984064131135345856424975113345104676028595092037246480361055906708741548768383590374725962206456453897697276786458060998846676927358833091764829994496672267479672822823525646894878904843923487877495218038793021041694403487522218712789419569864456839786694127596597110668314557571448088164868799060872518790192304835778126690223479196190224647180375100871576305296289780409827888363518344024447768337820724855863608763683959275785291158890548994661060132611494874594131256551887989443418712656841409862894532078392949135237679828940933041405632734563159094341010022075177540627938095250935370429996483241431934740428669298338806827338888744967338615861298610491038160912956523591279367099072577916475598777412215213482787094211756660034449520137666955052210055917672044294521364192224323870505661804238552873819823376586936567542649022337268186298321394129001076199323543048546134960429558530268216226224647269816785870849305328530726051612654266331571845350598349626235961573473761807824449600771865517361853743669958731109020043581118328891032965768868419545244091030938783266985660120154852717244192288904110713238138542634662263216895466228497488392371610744895530663508941642572921931150409149191133291822843813075496579885284448498971389365392175619979596532871833059834943115198781578119553031789058741744642394526736598833817579142071545928271510677236177545323906003355139307484206982235548800984418935270887095441228404545281367728400305071120611501926683339230240451448877207020878478788671477077485520536320027348217158055834568859885406524232802630665192721303527047209003906592187244850666974199420871261468846519753241243609712558917923641321384058037282500298155754728452246291199192882872730921376549817035032307077839423669853419661576233008377974120508428719809200472097919473490493659814394762370824121156189464946230024525034872817238230625591464805027008143395303503046553734605652257100614316050285072640653909294035412372143680506879119069298674876331192865388656775693882264222874460175605706278151479407528950439452403032405540116084695015000477097917342937511887782906104381055608905679349257467749745203449567751762270781757270871817829414889850821309005578529307935648302379732030489349071296234017377161051005263837191035776972272218175493920407891078751887725818270125374989467348056098879746718246394203666672432490830476347685567735307850481447427787961143259030563864038280008681575427014230097405186858726561883280411481663578754906326708670898327080192358813137108607286949403928348913800143387179572543512569063426227304797687448642652445463343896844045329573858200356414013669672868785869640201870760340041775138337411822369599855179207626102955853605734099838177489449926203569810794228755675126180353400974622289676247099240460180643560601634690701395237166336285625230197051597169697784694235139124857374375637719070785254677778492153174856459426249816096618896399821853368327425442497310035146576659882717313782892788771392135108766748038704780691434211161591995323832544305697812180063211671888032550797599008461755398728809603387493199967594187866421425562643615985226525315423578754934357894409237884423329496553765888617367623768972377966894952795575151014515569784200523040947814342902148003530052047350460783165759671198939019631004587027806026474661896361494947768582789529060336146939752771849125903456260264588754755528839358803787386434008270112194569711757015873473692807953898158364872048377480322474035645962519784379468158083747506153234827097944327412626601360640993621446566485510950288023355948113026893919746701760918971401053067043252815320810484241091163348106913017401915742436743016395941394994711278868781503260741590936806318990248852949063108176649195194078787388205506856556332483792793171575556643377832636248653305364417069679617614159902337016590710122903834886901694335233202976238646800096433873950898822037302032445196834928807180660042343344170292294540210595107159240870845705946839289477134262060789771782598603980738168510811322246756143256828407194434962564958529300971837478789733811985898900436013267884773134300809530675811662105433816412625915609721088460184662366335871838884479272283764725494755162222410368928305145242963127741216255922574948686328128574924891119721451543466853307925065762938714116100660142095185953965874306266535192245502392568187538425351660526960996300183924274428608258072837925351991919750510096736996312934812525812908774575790766180149465818749953856497540035735050943394306411362713708680363775969587819236135695846272992319971372730360964139756083097795225082356114696063712342142268018629225266179262425397543220636838032284629086270260021000093155820297465619187361937098744380782589073989380362456226558912171170146672480124883494976855905158604260775965955935013297249325255337039334046341603398876066874844280578108456742550672553679499873014543232063144882465767107737027164398786551429244459746677396483581681189862667961039711539801115778654806616403286427543610069028865764943651293461983558779043111658318143628055644087922293030694808327732543150343678414900793149884853612338482702470580751177425305788007412934425212947555727032636245959857672921132635078434164930822690130178478591080690065554042779523630512366866058284753120956702587332960600278259837956577476312670132837523052243174866321770340558946934472508313865561542747261106285374508281373768730805075234077091379757973837633775987845551577865633112836392691293885912545862923316263232290718561777105915277297042863366059051562166928862768201047212207218714341687566507231084521075390213996678743440747044528148596573937995883666396036224270387816946673088778286006718154353384105903674680304707422651588655206255885713806329358723061715873342456367965384716900342221869572947701314223022616757482946794801850796724284335059803317247215489200423783733588320285842685297540301769258045332359995122043528025283031841841987355930836059076157241496298731063646095120319955853952097707482057148028286255212334842198871581039420683093476359957824767783077919964053096539902834958607297239860532490612830799916876414354177827645510419858030407037533181657123076126658591169746119758762035974418339176321693582755334618161577873228257058497772867034044717610390808256417206323207996831470644639818080425238126115545503309036800050352033986063586090031871379971042722026844868222737259202871282785811952587191837656095616061039578277047273341879562626543208262369173030928355926417050572404388935010956921308976950032096402415217911373945086343426506541153406665955410117810391286742635897655447878774542774566136276818183813682071117009346396489869369908867676015452168074683022669208901634695127707294511362715488525329484192824641339139255489198577449492301833966482739558700180871973932573161602037611906020422330233582622371221027902475565162002070771422785103702929750415645777575152673024156937411595050615340581150527185041337461053059473282519912382062953833067571104286194563155336830034821986586161314623071435019756235199475941353917385468330116870449887345109555318293538775180490421856304688741739190743724430086386910648433346015955426915089943359112617901063067682593235150082008794290513323594732041154480749077116233019712067336433506485091809547901665125899502967188771624863566170738712679693144688531161840398776022912686328864213408851742185052592122708357539224760513644872190510298807888754499103643045734879810732806680163302949196750318607487166070172594447074777544445318606214043317613391625033306773332508169374151378838336389728710264834191764332205636484649054396167840030131541138528417486417233500264037650369006065536809665459854197357259862986948471807051542560527396736577594271778637818078549099561069411326386511389608319297911188649035972487108812394505344462245054143179335645197451222268494133389285470313469722517948545986500689061971852056109771306537261581308123804464932911541904543313298294028180817525349602224237391317940432830357495156522188184069223184952056251480668274993736219303944360567086949462595527282371335437751502082356056563586501374954246320508379607236430572385837147006277555441989343127950136133510681717939671589982088787925152241068300722226880774120616115972735482343597148185190758181595711991390322958268906619150113092981765085592476361278617171979910969253994415896567920713280071565244127084909680819483402595366060013978173347736918764901615387639899223033265434328792818884683568540746712097669704988782159235716729427617209077605925466856481777525569234487587984547906834426968230424475808752813338719257324528704905658664560284536906051930385412683441498852389849764947681225702691291601606631577647017690245917664441942098623008671721378718944710548317874583072747958588682730964756200485703807475151716811929018350062951422524443615591230588764832790157869189284713840893374969075233020193451473721394146572408912963442389420072622605425343642913139224907041874530225138186337846328051088276797448019146734351141560626877561150252067985643427337788067597066940415504356949542012177007444035372270737539122605190360270913591306858902787086598925316639486089806525040643013027127985954700876823720566622669883544934167295368457739018755848569470832851860379756642262057329266710949711559691584763973268702487461549839058839853288903202569551706526745450460870211035431997134866490270920256367125993228010229696442293229056449135105927914344045027216521477295676859165587526915754566388575534276059624708455862644239441279650426787557797068466711818624098583892315047937259982284909822640765892701365578272999495139294273425158774799274490660509568060287783147365182529554996341449734924097213431635023372631993009995863575711136315142329916045490870133647381326751550496082457639878790037125767577685347020220272174720516125645577503420383502223990869355176198419581254128469265421225753171286754925614187924179542303224423889162594737772382007949179086533824181822322257244592012432538157164506796515700670930171558439628708572160285452908832801275088392603793462409042600246251826035131028549035518177385355177838273489559472835893346579450073423592693995023789432475144871483462478652803086393903605367686083164240008596672147804948929234717920247783031092885244019602173064444953202190481551893260161818335503715435343769762733157477184231662098419669000209887039181935836936423974023370392858721111546260868495191877057734665469734128298670760701709553492247245747845339067724869976504404432819855155982636108161058661549219610348614837182363482609984765612331676428553638526444630553572376969829056835062559786068237364425242583523773694082234895908733580185621005015107613714200588761498292438339505656157320323457706505389888803140820340112232787998564726934481348872997366778214068246988914832078440931690892561178036923294169782619475030395230524256568214729646508580073939409451685753318988000150006738503869759978305208642507885519302512606725990225275312961853647919902172393016199655162271954004668620846588479294102393332583203256105043082956475761479300915261948040506674857689235682495856210993692293299433386990717372567421566221520128648370693055303641664774933542074297015447745705430311124618063550489030469909316325666647597858512557468020214500465032603763908033930391439558467777668546516024146702584979113416306990211219602693016870770831831055627021239277579182289457778599207528904110009367832766163738007558452688806097005504497070402865275282589623112908651494630805402588532418630272137321483112482731185311861481626284465115209136430073541856540484244626738578754357969595301775246462746966857507742301059715450650767831342125419735269763396938667241110918735712020962089250523915375688295905276946521306623613912838953108138957863796006913593292314990592532370040159635568843598990175144011589352170870207861833319586795135619952417392417058897026368814976282870364873123843012849844298070549934746072946558892083585434716380137210081276777749732336530170001946210885896810025830298453329523356016715222948534510940001652700089110014733344721730134313776108471168481533552484766363869167727217632436438564687690200658594940214330947272203967383398618173997433615115608835007203018303634489581862198298304292730609619418021641487984975145476221708886975118285175096588933157683329900101819800130233112833572227396646490279925726843698445427833025659722925356079969494849533143712689918006211403588238174748488838179584775503018412791648583278397896136920620639403628278326757487027870464954129082880226523596044500084865042890751583538477047461452328514096595552064935773867118173513382159931744997837111093424937811760124294347014256676878507158094451364801191422574996364051798539881999139438181547950142844608805551612026579232411764163796807617310875158689008732517530037675353139815662837445855159267027067229178583589605634155836653996024825146198372210706142777860495596685370911685216994611528738178164533608235721249795828633613941039277300023034215612973524838639938150611726048439590448191315108286534730680454996581213738943183029470387954503266433768444470725082876588754034371927246889811024761479709480637951080809069385608875025574005185054236537810398477401787598944175055360225544555226566486118724209780386810915246739735638542044542531536366942412274687928628538929312314849613588287555700340253225463716581644441020242215959000458053270362658836430474601624383243894517390396542792315737148594985897115300258507558254308399693914638759196315442145631820571494405219904653930804609381861924249708298656742149712625038747090018997184848810992813464226016789476200218276343138306974419484497418646717518058867950959320308812653410778321140671141338902517825501798842382683788334541022028625385743536806430055537439585553907206228927243548458318957395691086496570072509489950747244138964943210264312200865046796739055304340237579970958318751936284398219369120156336693253856778800111854746583182043981675474776900050776068193124645065251907906920093478473428212708574650322328384527668734601132201953317136852456329218700638549733653405789007620570699245224158521158370601826531520489325531355155283675494694299935302205840988509324822931541215874396582403439146051148363666267826569308790967322005936465759589102990420426303142488832539207572734508378208906447601670760674384813248111731663348744658142448903323760356848124641750745479099012779432036131274046054577275642643756233389162805293478910991273223711782891693795860195217715225302637604823483765238939776109069536985725224722147078347257301333396875050170266456861372079352409007884816355749467436139313774716162639166324668008526709324629574863504324954759722704487254687827775127677136449159035855583776823724095098152007187984008223188857860540508800194577888553754982682440463376943731517101039302170207522107341977538066343583043707092504504383465383151762359992561512205643210120096196153592380907459619088519888165466978754423377441384776118214969828516004717496216886647701850580539407272656710341556862639209190075689042677886217856603475458908620558191021077609438287458863591323658433211073940022767951375962155746895142394118278196125904438319421132930105038424576563401461153254617575232995042837262654757785941974518710942763770881139244836900317792700287451018626697264056336735153176242425215697299986345510231430928469424452439079185193817840363212216437607168338989463543726158492095275513416301502519032875795987810530231145926738307712241713359361495731234109418717011256984808311747460643547792494878517819486385682717023693947001335633106022634327381883565641602867297384827503692594543640143120002693965132890742338878840275860620560491762502548240435849706604974654855063082905860155906461504571254044698048986712930788567093550440885747710045774655909146792592589875487716736719927327739095842047060999273559092158353800800441528985446310563817153121366749354484213733195771374804724585345485505154621333849593720831095521038447122279171093699359863184842768780712596514196972575373006598377612441556859131106505957326639263312642740629871186210598950733717641882647091937964585790326828238203698475945784879560390662274606976823516245369969510127403929411381544054146505367906461300053579250870082803144157738562768186904156559108201497524563327563763674172425401455052924996256312242251358084938945349602964450821097304675709426644348567733070502322565470565861339077475021178945873112898398890147338567931628328745981721353372208044148269389399767904467944552515720328582771893012133230335551388740551821144977980627175622772992157267227399504480163161450731129210514936977367208101675762358885451417691461294304327703425809630225849639467000887116251625583597038665294117596820769102050298939592700745314998551841770319547968395811180587529821384834567804224893609420137721062725860915060716422609698934272457560331455670962180916668702137996802369947915866314085198180808253791368184845153098979467011786278352191911940098506861916860609195686724953347634318787578495136429061690462284162740528232825096254516781883612164723993457098497840806087335535471302930615967302945480226066764775176448405050093369311265557737395226503856979765501850150789775113804221066573922123665184819587484642177200686944636297994361104068780644379318321081084671960557285723065524064543348793822900629477379148449480467122642509512252318485463801314285453428280566198018533216733372541717728706343527717645692703401921431902495612866936653362252073944635003739976396449277206078075665810164845649348114020701004441137681119638347788214644757812201745686530907814726886228189661897428567746368882927165847471181990191052401769932048268932247846364451456273519695983927066873965517230897458605558466317050087805140128733729647646531292764493964426247070598463642274783190086806868830122646082893793654255571709608634858099400421825872582225937645868460459042572524277093003861967509404596819857424656701650105349012830103613064709833050169329279277015309619549777530002348493490755316821435909777801416459390621207067368552188548656555438302963496966515065356880730033500767245001506941505931968505003457147097850427036513593924999662580570081427168399441093442303012840733564941649071329623736110758759857546355138692346101886961791021096758537532778192548160101220526897789305377840168191938129123216378374498933978897254919124689584709464738215772368138412350205322366726672139803549204246030207498148687509047309299639584579016552567361390224978308262297205075515556199489377389991906656861266056712700268615960418941638748917890350021243304091691297032305183993940729425843588957822670728518020852304640108309802012692453248987561940098001924668251990158987714146682396839775623459453182233700891801302591386146902695618939321067832691404084599751070518355039879725341511457900902798174879067018360153234736393621485262520234960370070796861934778566679677947217240744286091738322615176957315790990791197125891190788393750163719707248158098113695618920659349446978711598657634019994425658702550953993391992143124003626581343255376733588268785579393269899839959334998280314284304753794701765731349439713422067303646873703399827348049878037972530960195810784283804820764325119220312566075034231588442043724549947582131125898106983327770910282789019984346024773248443608901225746225516564766692673638033131678514479026698472523631951607322696224278456076775243848832910344854980151040044589104690200499855977765525608521662696235296500421714583204734242946946342617729258761576959688549149100430175024061079536537252754306830710183823853463314881018981792027128311829078324591178326558609700970812816250711207784900201447035898066288892468865280616757242082717081871854446584598391110236641962149701619011980190126039240055214147256644895175187928917029210058991633651165346421977000921274565652781759374060085876722487215478244226784899493873495465778549102399653757578434018502326288584661063307510114220720185547243012907508240319161525704096940161161961513276680074781283650019994349709014485110443508731253705974650914149583113346314743604637879119930016919775665640985270445576013874769889060592127634435184087203999890847882104618472893660084773696530986190097732627017527153701730727185838601169170502507967964827682945874002657998174863424236127321161786151823242587307430888533726809263298854569664542365469283727210059571863015304771550252097327259349482724659382396280047433154808501326379804534242573868166872507137190892398115250230567804181190476950076584670387143501690008831985223730388724213181365946981116484243299903982653932486009440431354516726325641145268143726770955971930617644043049656922756187074975460944342779969842846053984617750676218082439610366089250278392377662380713959928364830522872140296803950159827273142787635883984291235343703869535324172398304987756872821938389199275781907935600833667616608461396962124663289076917698018586680321193972790736047408930727690570603297624136485634129046095115656688200170467411702373037025700175020397771621441699520260775495060095381253335185772950935770837636561216486884387360735840149771446508094279640268322980007454801797277787749792854506411890754179414587771932995269059207952520962668052465656925868581358439980058367743083390685643596422638902040648550229544820084922349693469540181424559209040733015676570562552420024072700228899143287963552324243437194806629739205489547911504057367644721231832281207037090755658712488114439043512078381271590241904473085254667208262680442039893718608079702408823245207480507698878535593815776736187743013584794482715356211359315991700105637982406831654496368465052836468001558167168311894165298620647851719391380118137717137566053241650503389576567996629241190386302360394933699463036598402282483669888716291569438774296330208019380734199287598402316946670638977171209933618032311745600383776311930194043609370985504229794228500919337592226080453192245868834701888982795346687461371334408470015332306914399459862278123231973077644525224674526497334984752013468763154028633276032878723335236436643605609006141913137136139714768421504022119446700047616789152582965197824347456900944151184932779265127359225079483741901468277661788097554144560178503155829488021009138263500694974529701666266409083470764584228452724564170257876224064853789981413859980840583082926833965613870215746905702383065879299983929391994164203457242148276978568791550020116977937309475641849979601451591508449834327279514191485885508442720061117478053507508196384861477607502100634731741444054934254630894980254692932778053094629024372650304425549679575554316981711824178816589485932463264081368426488271615697616016801343790108712980969745875816730013028844059980679002726661146178372785930052283248633341989130655298989265647671271057211603727115114058122746579950984163861827089514331445767305389452483324636728302135925855228704682933352151952876838274511190393357576174249203042140941712103783575980183011462713750326252415008470046913487187311042110496927829859865529169529388546601615769747344502605454423911071556747237270611042919153395910579754542091512513282777442167072015347227980293073619377767973849997950321206338919259666257630586875872473667685961878710375041301056825293943186888199841483423978007366008364876906550584709719673077056411680953141222250670975441751752032665187765961553154220184215015437333103730473587771183743418822810936310742393571464167231535087182640184174756058410287415858424277944135083230792609907996624539673982482423789943789719102892641887577009474029538112600081115224661111702463078750163801619766776940197618783901096203326908019030079238321417502914759960997562386585507910769914907964703687554772822365612122636135069084813299568619545092618044860185608801605219107167260978858470956312670902453014267990011183445609842209227116046251534866668424798731762120186067855100157795705517302226699463454197946746276069945840286613447320771557401009716261438715290586793261186544908616265648511043123708497091063871211923897552446749332265674765230156805105294330063656916849376296557811428949866134739659607722792085470126516870092853018266097946844443981848505924569063101749697083444095218705390569722687953597776006275298262326378947344533719476109458118488989674233850120795302132415420965213384940912046416392974162720685548693677873099698328177779832369204719616364154138115413551751527666729803827379072179968163207461126139354860059213472823304699547112209149291070948363095944794467789000137845883945356201667679304210010846201437973434905876028813552232984837803298943238108176120741533912520973935127469028430122206086935261682097994955477366688508040777021626320406261646553831656934815635533835272401802694418822391928451265367323411149612685013924590267165216903185757988907756944388064989887687751906819442677855540260200056592197982731967499098285318542538638645206613792755956190793713650980235102091343100019136088071805038369973864338638354975063703034004005015193197084165595230802475522185121632702417507832138962827638941752960040464752585876860761617001231238064957028755964669261842116273230935256296325454837734352763195252238992584478096869970630141903181655353666145534648496265070266455417517719448489878535968482322615318868495885375944757230148952990784722351804590646734508213213975184699224313649079369866432012568004218537810354965009601547921307767145539722109340951174686072528254183830441137366268729616233604904402618155584665676481052350212302879256921105434774253888398448025180052836096327517070438768651025005221987673478669471090721606130271823933105140175469865738785112392100176232412728507257574515324853660197659157999775062616919103440215801247732372075321132931231138315778533785661642029735211548810102586113329489498308320187221355223517856161336032764700961339954794431094590041132511453300271605945242784295210133966282812407660356933538427887274733698962110311653899071097723719378745596946678200987432431638194000743847776637518065820204920364494565776319577888347377219028824694217858936205753958390945172842132432959264546378882214333097303564619681606602210081577865666115388636140489103431213035712044376589001578689887451718986349380277818981797897459273232271988652371663571025041631158183994365345189063580423744427143194345472590507187964705379048888536023758935327409828214333853201027099000917527157339436534559246318391654725452897286746494403446503703121937690430528552093731181780215954090636621540317112064719676704233355247430419760893217840112461048233302662208699148973422298343674147882111315603370822616547597046150739527264854740668259836955452168455503428869833533514424303164615261303831747499505910992626676692102152849688441770810473498801850708167121736909857147149430408190850290966151551857464824410683737395558642771083394852530833847275966358350006101870309571491289180409521348694665671471844863649082312990637394052939214266165640749769032227294225151951498690715387130713006050560935088057926979545888817109453767418560057207140590251102167901507764543515184872878286873697018706796405775533887043834106247513391233828275808693394513122814933214313456297995251261674134777145669440905593432171724688380661108082873384352287385985216348856311485739109397698345344363573258437051835789059160871998689180102906046013530821342574146530663934737250891002407466890735135017359309857235751899842466298915488869031846121488781728678828588338207273719422224654206072623830496717143952704494149531298524666001271367153160563376499148557060575549761764459170334995410149958136354714564409501972411499629673839488090322992210777794886774041853930980372571047725758423176879761205654559974318096855301415411724222487739064362175441148585472278804840674665584471620210667952998243105131802755952104397342246687128970605882235120110977137487854126158131320077968713152579277609884718897189359127129263231558613517759486941500597220571705844011518125056631184695459791470734841362837177258977864422910609572220640982849598478708415884033349430581374204130893788469939065047929362353493591387254750632542480402044938693463645545759806620747270976365882835851337504574073808770860944044690322981574130754764491620175204708501104950161563295576417848367042910957847425322928134607800330598759170581294019273580765645167192544081634744394528688786003466805744375201003656973505737828278841145858745488709628675748827037828342779866448237549538793575514331787294272429933453641412615447564921502567885288267450592725798825908120510136638276663972740496280920435300630424257377294742794819241154275911613998015357458071610607237541151880771506031106132332076143160237362076722497700819866267611031592386226594081208788653071954544959999692022346302955150547366049809640334350989255261860667215032893518229708831730628422809158872925437416070065266522902115417947584094086810869658495874726923656953160683196102836246405965098285779415843304413482239304773316799138208653603050934294355525912317733929825112515085321907290688675410353732210266275955186229077463518432969244168731354274921904925334479659361604673173283698729864263822512751055402571960767812140088502745523379615115248498447313580015785236361676746074932659259404118934217992080790529722731890415872238945870655630888587973299254418716425648693618262693959443653981754885885838544771023078702723724798336095097592124157227392757439277991376191129644702815763963910477385992086964601193853841653423475447802625054233958723150607185707464101821074631000562473092534492548376116239292954851959530790895491449536965077433920651627499535893001457483227265549550077595017067126685416735140598866726518271406094285904906538309661049610924074592005767735393988094561329730024597192049649667534525023671787244387024898287403095443787355491648286914393225274019626604736810815021538509886193440182950036878904996231297388928401944881792928515020426978142725114019490755922150692990754495163280168505313057342457347816387352065982512498139192420906004278287853458037909085569887790064023700728853338303073755627693190110283725432414667861348600953240110799667702772399520981283855464241597514029616816285126016496996154638809512292279069334923034742482198591901625393059764331966058068054771184495942778692887863743827145756319967865779276352200247878403375707205261539798546318610326213510864848465693066112977158046092759789671732002015014502855630044654811475233005050198557575817467200715970376166858201187730719926974076062712143790916623390330633026146267502882099433235040010269304993061098209454411873143953990465516460447612220203140483758535027794828545246028905422831640050474597012604333085485437200236905358118611501947110970095881349558034043402156594508255996872205418554991448406108688535173433344379726751374590574352809853854347355067844482834165829428560356645795082961789441461728777340916108511308900357980402438620066374355599239515878309002207021139391057588836918663082124984102038661118585005669209715685852094749246003879133711686523740045762407261007594756720604230870461884870432634024077222139137939181331189663049580717148414186135534837395141821041589134517007801720921702347389284354755578483900999326571684830488117895221293966770876030051579132453598198967563640012759339533290155532557208764490255008692698602851126706083272853812242436308803362058599141206330736065128826846429924057219179482723326883202575568007566093872923369680053579473640888847833396592253915335098975457220365293827947829858969386664853873411997790383375138170408771449378857438537454160920536724934739685391695649117720317753616095208828376254671717275829726380707312463444886323868974447406508849839595365654937375788343773902878224974946846818653850155170741479988371091757847425717777371887002361690604502164235778735892371372480840748336470748154926119532783969059216086113925161856203184927096191287574168653908145260782948861641074760074109201223811534485021582155622916878113991821489370775387923102984652918207944666486696577751043478850083721740833163784746217489006638008785588137726010935757656972179834005586046200671616432251637239326285606041621519632660556853946479967634421685072165584768064560120055564175310407170971240830713936781057590727183161461530139665827735853372237608801713964047157631358940134332037454282498640561316990441333803737566196514507142359614926766026803808314237251950916918723890103381764651549906576320933836654142515981702227307165137930275344584946973397852917616123846702677362864785117297640204420401006011669646966072660424152184380874000099620617959894843055314099835930253033242212497424249237478762329545693562629672925275194363957117202418495591123193369508668602306580208445890983851156112720323690528766779557733165508843792181760273191956123742950863879998446175403487386357806738642110302746254015516201812258379386371478635921011270246809838620361365314096678038385613061951484257530288707362602149984794615389271905572405720342463388180863243202936621825286912159788048227327619163550089238419637196388118006695964227184831867726669297385777162339051967356737917960635004210935858895660995708827439320817703309022084669606212130574659722432971030532972163620943846231883450718995592601174194342984221790949749644937850666933599272692573261374992114789053696398805659465122310962098856932640791970145072892152833626245833382969220152389905746319330698458265431803146495140958394639664140176574999209093852049908365168472477568701329375972152812693904718093958156718349322582699910084031900254898767907524211894016175132502021598422154514360445785837799467302645213221462616051170077283858746363480735486949411360601928713301560625526459848618813136465327734547797548151220578936849721118563263072492771888549274828337652239310807838166364686056965668851670090487135981459539967355897793815485100441731143079563234882605904886517932439658472471404747501965099392594437059443839179670101366273942022514203232861784752650085279005357591157899885548967951077049532664167245239565841993388406269263241099443838600983587963216791791472247681964860073699873550319926175598645887589625673927741265508507788665198360407442879949042447030257482982325556565040960593040816139795837946077883621857788854885188936309711976228713826661306771468525323591263084972996824045207461968673320474519031509140940556136810999326207306484044466334170917644524155623808541211787337413917256507251013101662997336118485417625548084927838972502836966190727182083088304264058609880067741152165989570814492092536520167726870087051017268706436365217495266517764503695023926401661965192896114967391741408358895785451242986343560117555917429063547024621868716854549173611057167640532068085159296797925872816780184531419918885727635223198583676299568137863938256235755810028734658485692613489858653214345277025347418057118009938740729820506097071330294990575499655201311573562719377374225390510700841816972606779657606374654669213638435681876706254978240765950315485916716087063555542642164474564970867213503160915829581118849614464919881115234339585024163698978528494205611089834268796433881313867171366933351379554837228004086018529833365229702742734879201686947283458992988503243713187091635911852510934101817032245496988242345894735820551729491362346625781211734360111554400971535807091952796358125742343776218000412042083067823054722782807430777348139578200286736455791483517598317108252042152984149110728606506366100804886789787456022444058337062870528486403046788255584956632741684291440954681507267545950294603138062073629424105869367140689262712622426764214340144104975475062210359796149393818918483276718925142781952795126095198083869302326113572164998978936964958000680733961990302327579177339168647582430649480341785137625942938977008575017403646093643045681571209855835925695806216362504077918140258493231975648381839340068526458760905363576977609756904318914901675705192797957735499114774621563727129104889901322846556961946693986755798930389082642858890513441129967929549078668258954162576614989686762459713244169996827666214085468551223717980008231717701808230711352425343521452153647159934099285390266778160202002448324615780286473860184952049075322844659210319438262080454898059215684895814343564735093934429721323315450180450374720886126781039680771988203146452941783537055221089590457720396522242405226729128982914246002726282545456807624870869019109929577449804861389722385920013137293670035855400527157749935044064725109775487297504049511842561781333208794595786399426531204508656682619162754717931871517017591263363915987199238370181846237673961343693639190887508876065489507861959228532531650369542403891767784370254468989271387354630556682021192824832773930637257438523814631708845414232025715922738442932064306722760832554566545921337958335901940410555787415328653213204915966617654479852397003849590739915227357873735076181754705426771247878638304861193179951686591633497332825795277813446265176674070256838196116971192730245137126532549665100752437139468125288986570126750239305272418562931041950606550790096857327485814820195307284732811840172620089732313555350986980604621606506955909068917155196559821758879420616683222087426074905054262161440402477166731789132179219976198523573244485885453315942433008149682243848470669039216656605729848516300907158988170045707992121622707023027622207781551459370656183201615028631183154926097163466648935755833219649992179750776744880518232825342523648480430417513903074369639660244594609343338254615790860149778112825130869092651705424856063004271522412451509229424116290450040427596869108245112589162177334842927279063451319990795647724878371136395842900822205209893322194077373816604519365199226659040925384519294759585516578673282568147782003273346866042810374422433821962259263242699157699990558649195742396913860099499161817948134741793963059666353508700968378414393834656354289387445111497794943690361016038965401628173153106207902611849185425890999595665861489227248399330697272363086305634101853127100290704455213094348708295739239409663048086320429845319247812085283101773120897712506241686712031654283569613942193743136440220914738331540576128576875563308206912803321045328752944243965722064441443711907855334972320068932085658051554408696273683757650519446469513160086232305080554461937165491411749195116592494615526065942540417906246474451447348193435559595699793695303202885459533804002809106344031239541418761482892940367081660408351739256578555571898620335610119574905723619927652713085408508083931820365825302311068754964582807441734264576096631406524475615702864665715888930118136134608875128661782393184683991134618353436008206743010273437386614233706567152562496661242899090803709720412143205818816113720978181341709857954161671907794450903357158597177964399563555469188413691266758184643608881644093269315622624560202296473724195671652613292245227433672618929584001298128287813421481896831083919316256849261327820827580886646050724526949057000990753292025045669601420211972026373606742401889345448064871401621609433397587614593583313807909860713275088827953366850082448463129149460919210483038873828731064340684249535844848439508089293582981331947142882390020876060733381501819673085811362552238938082393467728420843371926145628613837719955164407725477538424683954101992033296453388545737105048612906178983123329156003312441553308330318293058753970736225887066403632909013064379642169998048797565127807113745275098874373321180418431245719046327707151716730589288555445058650161530723962473104687724745848376218552580639865042582173447353738052227531135664263814043179648819368320458958555232544565526829479927775769136989609414916457891046908589002753917647488327463453059927477797355851985498909245519096256622492736576283130010772322517751810458814083135746107009371448724776618625142520470307790216294238197887815495713180387622802240162486871889940695936270548055831257555843758431016466268181257476487956879825791987064867254631374551272403770716920083757313536382294895036095982837680248238534041770518077755845903455164954091362131965548242666836601471745076243599428572280619654185253335127297780958031483579052711148980989149115990972187495210148954954525929139736137432495654363105950925317931279299920920573943861616722410714546407848481042810002414799490819494830238541755382402085351747158503363449508215431554806579294978619669786086541737915948645731475578052263631479939331643304890858687345368099811467907095533806607489485486612057129987114276840107300195501660827976185164317517664321987858219346924474302893557551969767719629309793071841787021961505571234711553199943084643726262436641654699093521977938375422559348653462210222845037598099237790623107847423576546859748174941670451271204158364277907594666597124294353975490013498771072853143916113616790631096145654158218230040663026836219117847072304831086772176544775952263380186995031787813499838368896823679559853970802285696294263451643869456646359967857946042556572358876390438327235389711350483322356475049887569946599230050778901230051473042760757488463102525339432570139352761028592845686235434841705663050991274320022717163038935255268510972142633748087047753228342339631036112763526256589883185578881437930736911782980961132442834609833376601737674984775880894138125656751996020269397332775843778641191065544165966367231132952827006808013983093621296313352783099241241290232974575154955963900220144232228613195829879894617327371158811262899446831506426014050979072532126460969576465483954282508983959043495312815126119307768191329480646979748084369466031565882792415715442703980501546873079715603155671427913340606220829606487046149695147597251674077684494750172240414604007600435642622491137674623096071768721764132496148393088361385266437051440251857870660738464280664319715609932063124362511780993630984063894488094294601345565776452774413455717092855955986122548633729287405139539626132703065865781301260391447877614693356600719379276959334292481327506322613189962775787379624374141307889710408510104921770442402688692375037736760065530889894996335670317341116104608768882322244940014384627701360106412531924898779803445873423589314728270713734424144091430800304039555572782386554163869769535084767427106560173885785823044341972508221587001204134042742225066086990739017651944662666970213299336045823962677368089612036849227563500836437217016164541003282408027538477863981601543946961286365067452604018305755123329114541993496286498352197835523478037033532751988872515942699559394807646326539780694514236881629650783317177904653539469942390959548536312041563423474825473309502274712643685580208643309922265753635994837975473715805921111123354015971673059064754354123961536155473353988836867253465120250937342539793895672032390743103435118435622644939482335949258548997158930948572848962429891418697883161372195799013462628534786193734766574043707084571506422657186027395478255368470508825953788729409286329752608853752883334079220977761097928424339081042346929520994583145205937036317562895914983700708660146608547490521731034867111174340981343911257575482599841454048837378538572211831094434193590716540283540486358516358222053474592997001467863363834360432076349492479116183293440560425924279828256634315762653630426230023082465145408977460179665624813338886653446146695116585646212691190632301931685920618347113571017418635457103606955153583269603211306816828550531741643674293355816764788742881684925637446251173133684411636984320883819911729423708797516636017568724613838205362618033872694714848839789362365544810092655885125694411862191809505384418036287506174099458397768546286317587772683006868037022084112364086313249466359216388773445408024415987306721018488682945169092900737555790935126851504568657887647722313109663147797784429097063522074325344655633643332266631728304877869106852883028152923931134126714786841587669163654152150272794198228023132563685135754451348297854593221131569550580305220877181915339482445553379333829376722057088834211803362330676555719389636080774039626530506617462550038215373994040535264903743405663679405462825074335199080238393236448816972603585832714442667294750313801767371644676322931905255391662715603303251644325409762225063732144351853173592437645502196619703935832032259409662996930775093201353944709790111651071072485873271813897103212071885793098352911506158842866085757096841607116841880394704204205355406182599488791149824761017349240161781056471583220225113478985655997159713861640465273779820015068778849510920262558886142730296626132130098799556992681413439452589213223710844636104145132463966082226248973467334613645208908112818285847232930655869315928280321524908666172448044024845927341447967404376953343960979009453585178155772908203336678910435573860008518818600372861538714096874714625743340297327553587405627743694175845318537587541098875208617349698818454169318737988147474002957728856516760799294990314063236317361877502550969763212351663447496080760261343969422604334150735701088803488611669270475577895340507358675914546349689868245631223966121488780393582197452090389931620349231373598381992803762913051128495256831090274845177577758728348477927965405865946335821934943867965210489152269887080462825429053192278314441778560787239646489906030768494978701475800371022305681611800763323354018593891943745973962359989900241113251825860139444714313377437397543070654893739415493064630380157047334640639858737036464339816680582735314914427212994194643365039559664192161579372716090829695852512463619452451612261088763282261342810332825061360184060323943864709303538761741248034003906952019587733089970766475239276510013515253556848863682527326955767783427802759486038198165648311847888780972347904672750275877987158882015811115827674053746810682438325170678819298435454034004000536974652157485679760635666408721048490079397984984269469727466526500419256120556782412154606234032099525786324696620343218015603128628053462302441497566169292498777245660185126410146686827504743525365879929591013664920575299104169958506312059388299560924856059950181134424404089374629628184045530896982508813777306242008429395453093198111438266251906112613055959833124849134702607694594898542089229602804306134892512894360542195270827195397558709244582559583480217622401519199431420703439172941770977657782138781007823285334882468829181582447653816760293986674417862635081666337780752468870295048876196231130329104175079969937125492238477218208454746215707552008201915035529238381537884228171006097993494476233907585328958471154706093998350914478831791018575593293324979678840289140766522343539241708496275839394782542488906929411649621205711917740795855205565244115883602888936234619578183129202215061296134809756900417758186743465966775271999591818837147924699606957533609190810817654767297179921088662830132255124261238532118853090219720762981299524882864357832419231359723258515674042068093343400110728287091331767933922945190117648560275978546952812623748218908408262955513138568563604981115385878990906571789694491532411822595395962578013990964955282317175286996621424111174038558038992083466032725362481359291437978143211650195083669611414186138588057878394733990184347798855247830209221617125556807706377028290604366833618748067815389134787081839954004460930648252448263032839756614506473387035099234511318746393306038854704544309189063107877995130163418939815429606636605698823478351981006337614889913324291376396185622894065594064023874380699519754937244117404025726880795934105467629302880430037164040136384042476264825785213130600219679304739704554930953420262125380667108952921564558168105059235055580655947504625834976277727545652305023845406163510086050713559664647830171988943366508271407509446756617939896398742454635219882189608207112633982941325131812602374593548887440928670237899658683790883725903201915682875448411699252877969761522451835331321800814885893760286831250445171124569737461763688972037188385094444638971638437618588628970018085927789818730002824891965015402983243957321321660459144721797870316996494801445593038166639746492318903228610094635284642653561158997610836677455890906960837821112277588614769544152434369440349841294270614350906500953266496448615613031163971969510153732690565987418198286862359866355765636144143873129400344788532870737564987400613341268618354065100812417748562873876264904794431546666303371385548271200677665850562462358050929727049801681600998910495887097425816847420782693704618786683269195827884617645903090225873742141621338719037319573638367610833776076092167027849381922461223402118696257820384451840533900850148231852788637740710852859922490702551740212972834597841571011046941709792648008673860974519609550384972863877734031900886676017299450291377656593003407176436100396099073067214919701971830041283615554708934725346335475330220808135168512117637757368451422821288711445898664804020947592905408475850062608779036283094137406280659531131617078146743384152570348954614145786897962763273254434927255839579759626526444365481098949157269718210562341877763209397769072135574203928581656922344773165484550912063339425598541717434934669834411597396037372959786523125420416136080521493808544978809268957261669246524461088174858268352781515159648761273424709983434962341819000897939644338724348013274583650638792742833934125568184870991679776219742946473662253532046316697087426250273418494929198166319586336918232899026130831771411987430465161774932924950934873409387592962975234164001914931423488126331364585500447978986804117588699484042267171250710309802374907475831227991919969165415726279398282442552672226417925823494129052024809065499131865907555889706854631283223165570001016089139342852406195256899905967781329769895814454948788342642677130092857314334390236427699295974550239132788348809117434299753809332368768500807238012247903245294766870468171619518244868856278765068361539257845566530553597984917277631508298370703154034092931863257910614614079888434867769323493945016209325115698289539626030456561735996288695333190387796696197696782953740216798746221348076360490485534398392587345779564396789277384461237481145589052135217299398610587797390938679917818900883121083200066824603480069025058133923887978313148424458784334900904663923919014293618682932615012862844966756079777644742149278725896705475539113318371904406215305486378296506603808332500503482806721256851657237212820526274625502004214133130135935254065173627151457951228888946326773155852176005785928051022057784796506959315833880953196829826637586489601927150580071555100431885151229214752726454626672095324659242922091003999204659445411134140815776881750537664467165987100704618400665674216346431809028269432374750848899337604380427076134977723765234978581046321396607845035068669453122878318041903275773676875592496354539824210874028536695823020712433847910631339394192349157506827707985053607395256760706210385593269124846920176113509282551087675073294959745580011146097474789590500029783943953065024125429807754759765745263675309635233083409323444246505433588562510616184125768383948648938256971810599207318622257748343735312015814427207022248269181134779332225228551689062711794402797010890580805656510996525351311141218918809332186366936714423456559165679627291903068868184907357425443115782938237849688704604249185188980249690346175866865587371778816161102600639304472814121500436437271178874427747170039015275250935489068328375930974866184091702213151492300099640133239470435950253677845383817816698779282956942731234774645728468151937157584127348490288742509758635942686520060520516490286843138175930817672735820105193667934955861891253426132537753892256607719609565724291811512237246871308427796939487758487826099079169867950531433496526331488644191694067597857630012484647279863891032641909869972484237469406585932888058048718211676018033013937484008480961636115748297096480563921648010029954140865557845190366769710149084427707897617081849931447494105255442246702226397040035855227820459578634353067260899989896627876711395048425963036869593341047465620940572892716367652228512530483396064112290239841780915636522094368978534667785203169590051570280556683091397357927875946650556073772023742651603713138367088648280409681279770585487931108760236187859198256068351225784007271465756261710053497015030137693904988820161390355564917585140336734966986364337612994971464455634353428745712671930534429805812484011847344150265549531245525537805920497942427212005734207812617667745736449321421225682535475335780534526235410745991558178230927439534388358781843368228145872631804121686212399742951175272438938535649325177785974454046811186995518396148146995703611528642433510675582134890673807245669874866648650122941083151690009484983201372327593705562582208931717951500206009673324085805103584556954362406079496668899494654350582876868993995439339560711276011161791932417278015301600852069169512212174448276770256279866629003884331669827487204796353909733230458023844949812622196476181452656658403124747450914225578959117008549918928494299759977700130890569210182861041201583568213892747460046920227359870208906811681432193574325345835511436852116622523765181365387034700255953628454367143339915854769902069298205422210914071634143429927861752106214288685614910832025938969817560633417390183170697556191998163105723824905221039536185046288014503670358584040437140113772049091063665689913739308600118110700095952654375261586936871589086969965546262492785948928078990798424109615025010719958625257646139061094979796625519285633727075305556997896632171687229200594516889685660686865390283619368335064292105876031744175287861929566566421189115667655694017733860487232755029557974141953390039189661342764317907211962888799951825097759288894469329397180769696089406517334474929027982480810979649379808034277726778091239324831599366692220956054947774561601892244646698753079248676369508618979440635112045518244921899702894463750081298523386127051263689064502700255354530946982704436386134287384171073218602826051451132564085163277160797199629982346370739628197032025155492519688488108084674955785036037592433617757999933181656742238455660413476156920599349253175775884339596928376141507738790878332036885569269729098397100048463907420828536549917452359672024229411802848762933053346431763098350576914523656571456330557939743893825282197660911577683060532439084340343651586540795742100256510633937383641456238236613451327252960115010326900874059910708044237363325914249007006870734164086811966545151467283660334364056797581013820231661117309342317239480751626105590924820802119500059266173398256704010743433745223411342279634103127461142436023981441351228948048721486748935373105729593881608204318882101674558479485177678316116728930375009209267161914267836739962537530020689112316530252633902826242936518698996315890263890935528215073623551413719408821361921914662683157274121282844302323709019714298961551435341434265420150666921825289120152369177363107892142593916486099013010696606069596524905696125698716023375525586002513359701557082306363471953517853284278950425088858490321921746422802437336679917220323576385456701616515882960963830437809630728089596224350574285739023347424339220198835202013456302721074608556618781165172373592833104358664178406344099883470775634384247638016194629041776569926424321040192575578004380487835894874362227244280992600850973910251386119874822592475444766579188806349075821249967857272258268497926694622336061174782951098542699099252423787139702103820931787770032134291036718225787856548647308540696692338941715241632551101594244653234441454919424038526378050195722397274603923882210410364952821402499764543954885173409714629056909598394490351885287402839108698745361339007990287530618412948640565592870604353538147992413306069502075476683681005256395566645339696551553544040416222818679186476256093009661642762343373285084993050831032224271431695119619700427636846485108755178921731414427172562134127741890257966928639744816613021417698568817641380409501424480576854205369568145392356076533324271552074107119195611161444713966540999853658002523871892438366553256024152140261470226029586265999730375279183899748325226517791351713903694878481633094254255355956197467763858268277726204474284355885700336349303434025187156826936872877111345983106887798075117667600591764838858500530346197705091000013705444423961404747582586200416767767723255088355138810841110122855570314898891386650085269274678202291270097970090004977297513901304031702755290986552070716104190637700121149330964105191413815310635832724125928919229138099808464683557988287670195754121642266372882931382088647911620013237800034585984652012636912004169237862018456746645215934918989974281453676438115995999884588597373232556926273478089193650813089286156749070099083825894259931146808229274427557180740047685541026832549891968578707013223908074613614225931367057552104570946509034178597537581093940904955115341940351223429145588191446709085011725203636168310289849374242751456043238188967626271859234266861216393358408389086773996527342848781617569877619782548982193186908255668671815626093558547256197324222683917553329017101419884138283055047820370828536942797911653526072888036029205033713814942832592927414755320545935405006302269012721112950536569756461660727230893349251833639210345184180222906475124190973131266089118407388288458278189603913764080920458554189814921569174672817523331111336518181942373859886470645449741218371371391117916903420517408369707273633539271811326465506627729819558143754027169567194385462478433357238214041065561677522657285090604335869284419122418923948815051741035818231992880570044279901768531519646045475164154856127543829828860625043591671979526168998287613910531193598010890406608557723971214062362377348323960647325679349661987217680675517982601149512896757475514682902572028363504588789215114921185518214650596351037839288936660415336108020951071173697950499842007172937417044200575525018441786240721641681895806188385872113593236851328244381801034576788828477698200682212421026340355561450351210630071662874854878101765532975168080275383335449054050712398289733482788480361182756228837612755965910456100884822334642565275490907744762185976472666029617715346253398458940364092210098137778519400334985973374755058124931594268595890332642498383102512702725800207316397121483813990806159475972905169354507172729369268306306400216009777966739240702605208572260860094056307913768481773918810667660133199393002364249411866823692694001327607688548251854748522234691986298126339886825050966275288310290158022923407886164771263024617248766325542135833466535459899023582443565010071067858109764982210918222966038393534714144016041952969451297662509796748791215183190931172791879159307934190337787015814263249647270387346551551093197063447847438862541133059671435802200737156249219969543918713128597941810452860585908958519951736720777664186929363424740354526177597317541135165240407041719001982567209463259971506726168107381441710054320403242844564269012579861009540600646738277780091329221761822821459614308860994421409691609027873792573991796897576009739294641913289843806764554195229932510544175475045499936920716661334985353515157015706095860967217779112730485874870256916815324608900571663322105819443080141526981378641763417856814684962882840910348952880461295206626450046858589063896551061963335761791962075628489853613421753859953910330485506520671942933830897837613493147213976337373005555962335914982569702752779706709255320436530352607031992730301619852038191564396275317842056746439577559558656683771905783072725984843707288117347338437488608940183050439514962823226594452770147846377683249626042647755003400323160807905254744971818988672681904230043257554869659102552870074692563131628808401357526006565220196672628441008342976618497547671657680625221831989040721939292062922787567452727621937013919806789244554786534490177796656345956005018756554867709444127000536034582496493789035816364835440830521737394293970735964893032462062477286070357000836440149478510135377716559905523607775556752988527494516362884524507812821094587784272418432197861546860040721289754924277294549601561651408798279978308352403702308233063570263453616538170449808798857369676881847663308853217974424309988513825079708310768079018628771953612334360513913902642372713721089321501296417790652899147727903451781564829239906642178871442929585232730197783106345534767325906380657149111058878299039949750382849986692668285860527399863707767904789602061125482970460305178935034359971576148724837125281346275086542487512866494024331362235397328245512737392799699290946238510817137810979093679876613673909201638851660092171359461903436681010275297462327510620650417332961299513014505271986570235037326721499361175816372262657697643191306305914519611195695055256571677701753392747049092342030738642189142079680496356346803033000189206879674973990502574385512327242594048680891723858106012980477497810672179114329452879156671520783579538181867100989747556905401432121378024689958387098173863387309426641643767629448060100609866809529904955468448338540181063840603290162067715497803755699776947945462934531176600266611908440137510744500660717340492248419298616469418133203206401106527486929983016994125789455912364477289682546117046837449224714727853484747144504477816880119525008690487485929720544279775850793998429515218132290109297659472978954905566150468230376081180427974198345222698425473535655628615304372368499334522133943246268963917133442346604393369002794133301555411447001334378044939065557637264153704341354356252123240861537462975328744926678479767993680122192146050068663715160426724307087051505684523429598331201575201843046691085728963609753342063970659858041084002987506719147958715349037912013177560723156644787954228634811767447430302321108671850285093523256993881438912642812113620940422209665721097726261645636358236975083811844801071667253748589546951851294812987195392578023719501031846054949858457111759435336052958361775232951250999250008527348787964872244646923685074396188215118231493223189502093488724331930714501855975294933913688682512293798008584511412701479222050564832952452557076712077775356501626372160534965619500798797947740593756044527040239109966469854228243280920867408404575535493087737293059434434250545734186716675327978689978846648554662307978298552200789533812443589346870763501030692353038606046708664513849050394362866097744780136482186186655814360667114950711668556600488329094545291153823392172623982088813551741941578669009677769075757358267627236793162903521060753896317048735649085879450133399607718515069431436479002185456757220329921927080436557597189506102395251776743592150655473216419518781954903904802465995352732048953768573632955203191212063246230828855466990861719652609611917302813061100793610493386729076180774316505838409519153244033673811262286928415454686787869479792496430917169811912101919721479147141349496112046984353738838947810249037083113634638155132727884789453355365481644689250306463428560330740989845060041300631373576556414762206266820586094435546449361446355787942003860261316150686175097470168177265071862909115523174910749414618918696909707657579484554836198694065590195247031691518912138886860771773000035541696879463887470499953180529793904024126085545594310256931841009745867170095326181547526982445532303495458143714052886307443520910426424097502237693659990242327600574893511403780136940716875374464523339472391152587730296917334342140891813037345878736536713018240188713749206498858234652728316402308017727473650530685288453582446309841962343775207428421758784638319957193436802391317702257174353878055851672627794123255599114961847374022249585495668264223925941133735507782502030922439427708008185806575131210919028801763187123737194855842184216540126875026834048014918321030120623341421041929237554615077123347888990442269247903895873463574991188379385752695186304444803974522171314223121889922516987206052038529510501802433926853468631475463803350997544461452936613180899598808472552828371388471430594465621524218191660628000198124161468717754659317136028500879933287136518743007420093316017181566164869764122106556099459335589783439889288457417477605391692995536398164454485827154144197972794801956660208373427944172648080309912294680841723675259461770461337204566737657096437687730389129129100826006285054419078815310587619152182585137250400544802491625554466024331900677890675840659534097347100164432229962526939881377310353012596413335825477280446309834645228440876873718959131025378935787682946084495888843765764476316151610330929137846513612610302786415821700128142465432658065113790126414217786462179052823901513166400378075969789603503145114569121420536929499399583702303197319545784698262000103372220489445071943736926195464763560876367470644927268733064262732571469580658257910460401902129114200171947107257484997116400670375571111836422103386314649747307377621451307968914328679265431784236902117334338279364526578801447553637596269514460078122502505309286551228685803035868386736183469241733367484122113838027479951959693697168366815866644740776348787437097472157219382904727841012619011144331486085186847173756849516089560745586062827096514573056564712513496480225953014663918129811179772916145340133001727510248391636445384683757011453317928850074666674708044262227947714643954532663369821064510981251350733957982597367996364942766746248713046107790985806025088841381844102741662501964238605544333692889453550819385652706244283836977615655496650457623113503212674046276564554652380746354714321395939280800382506680887096359967088130815072045142387423814568568573703380941699312263319343139934972536537343667418242949092496781474822508217867286778546860280417042375605741425125183001570101075917920259863976751235129836273388845654579288449427157154821176871162233956367228092067305901809844580769234897171896572494253113892706865911889793101954675554513997391710179248887264280976003555283318596659952207142250675892938609546590012502467223503100872880514041862259423043123502443303653326542559945561636499981515987076293641149661767457331854673249448190406640720968021019744849844343460682373275825597638581669671401398602598795767598276341050387650490031218461247196512716377711042058840872540036819303167911438195769909126262468528296201849769737738686436011654001799642884235155313130675725898059948857963368804947590713173337280878983676651174351317499446980317331728272098229380369575974537088161976008540146270508261313147476860709714277548677406345472051283968351883134741303153498637074192967759185382782512311643975731405583714353308920829411624823569985387150706388570406293561158252926186278911018779387649121759861829087536239406185798533079728020649770552851915382992078299195010891939036551033461022975031825545282007133140661461191938109245634472173256599620022439411753922517346861718951691309325085708832282588031492606596526233799521830796403788217696181013354011055697990455344937538696303314389874566251288601101340732996721355443331083188224614715468934773367303273109530749024220140034698136440299416681460142126126112934274832711494745355242293269977098289481143527397250082804525322675070390927891813975886340565242044736525916780081636866654298161307763633334944432197910523209075201392021417008663175439986216083272053956555986800775013712425398133722358612233703685416381867971517583219987357248183465657896153038274111380738756866556023368778510866406958063146054410099683362485498600440069455149646745135272601445730293756509918889910371304517136544402137064280121897448633348206013840726017213336394523737504154613378301636506509012607071898880234849547487905052187586927219761310369946833354594497125441273883397368519596938033337138428470741298089366015742200989748167456570426615687034852821120279326024366797052492436144657341378735221346258241349000738052818000739231132320652171021918512134558098520170395352032189498481690736845753023838542899641275263199814416402953979011665787584363278861824733507766631486644039144698739756387292040673807677771993064520771041124876747942503024830733067069513099094466166054864545560261911301912799838122604218030412462897391449749716983512122835286871493388277364371188643941397930158606348609790454106732093556225850385803715264480442020943112545163611920146976651331198095058266802333001299360718777551303149926407488951299598187351846074761282808588707121352400769224340276109755750435923597688613784565732381875868075298940568939796545844761380846946943785856264162035075478021840041628721509520684862570889567831378744454043235090219992164706478373704563013109320803690158983978583025908944690165945538143036876735458321917349048400237867208862716405957573733837908991315288930753451052437895376934553812742928308860846863299075228016227932027477438796509099005101462776643600084443688950025380188592401128347809193568063418724190666275699592010834496396155599689752226635741417623547152826609882060024719497285953542392099894978268849662204403854458331065416825444699750341644165691457748869659695287989425688656592815329475363941023279919375384969086945202627884180009491170911009939558716355344987084071045672949792179710006033769628364668455672997844316251251612156752680019121919328170583227178826889343118006396570928083593294821368271149041572605320171650249385157640534809531014060116572701839808912402881430208347330000469953958832062770004461567729932601116276251931245160201000189197673143367312572792141845228193287872599725014119353738421180532688603883488020648324983636180551817802847561610437024046870409494106465156664774156342822088328187552983977179120428743061782938820915640947301532205821731311199975219466814458011683498906534362470546768137379497695170730099107576296950238621132496397643727453170522364489498398079601343449722368078195486726338988811935139068301335759800571858027776049185231192363428938654356908183538741712264777250331888423044098948476977416333721609950062403472430096712217335980054441651839051030493514168182962282984519260369604505694436037550823408574322920323889782649771677409544068679637246029255807084500801344840404962716100860646051203901863376596593649204093266409181126754392799451168649764211259787746458199678999855926396299242339711136761595522483329245276667119281176650624356151990404374676100625337753393126115212913646046247248547562331447155624182921154683496961751048889078678233605194242122989102557754573777032195549568999736250276953287370635020297397310008272732906065098827948401488860680903490349385873337468441772431309701295285653308487923444630859823509805284704336777022161302886589163025835439572303065010074964793646879345475045821654970120147616344866585827040457609272248665350045528029398658356632808261077480600878331228484709832676655575231818398513053748845514577425446373469640246084235557839227133591077314479064899141923658735624365142572414853888716826148126859599670520593505644125195156303743523788593005899417886696833458128091757195671033498033980821179097776835307270125440443174060681016535600887967859917188722528589297615217021235699253655250750677894080689149571932727007098219255401277048357403161954784536878183021029018538299697004704053323194903789334004594256968222467450604563025168257922583136193234724924985081269851421773867306793668790186581037570898099715484453961469184236923699320321578946579677496130718587699280200416257563112881388488266157143562521985843048353681185728169385922345612763381075346984124726487351907577505219648187012607297467418962288746025923277230980197601359128779459773284528996145543464676891904150123019103013240139675174692313893167897014997862130410632459867428181481299301689159714222608671208175675312025839855024989398304998004937894174859138557066632158307152927401342776246511187148472589000071101951520730200309138504531271443463160152224652496514818382842038791676241214472981865148850024517690240606402936134032931562603923981528927165837841579993823868754664708488897453072922703170382146602104312687053429392327720828118991605753578698705228173570785065412138574344443778417872720159478763638298667519007997879732453756417970533916500603314414887213437090038908000611368303677479294324460602055031870873886740445208939002086056080405169251138210443990510688066766663302461774891556130002535939059237810640366048098403523040825889935545987758622701077326456253332635907086860140096544125982243014959190236060814925516357670006446460974853269776019370268226043140107676254441539870014913921562735000615980608473054989460232911963657332037657262626542364896212655239397137554814592708066099097569716643687112030019368460903141599173093131409057746764916200801124690294451666079961701325362896396395965671836006751432679591423392528192547980034371379901618388674012535031980631532374946771753407290200074797337083404589534586129181896663715074905988878403644371057698038471024913570760322569840131204833838768108248154129180481471527739480985380720359746309766299415449271978401552198750442171326358150887955330195897808617455921586478406092433618800859593111366247778595896662526396385704572832256867746971726401682762376135656644651184066876803811268604314793228051865206518076756336072755480088178828864274449770528556586102909477543627736648737536136840992984373550107798321345356903647438568048041017926329098668951176415907514871931734886811581949723801197896219752907489089244619987864286572660557082811665609338433085979928821523960394578577454294866892359511729479302256655948519110759701596082820114115276497181971921976182946589235761330440126557686352175141586911574136091547307922496209721110018024250876992760760480680201701276175600592156259516878860794856094106733531534058360638758657984352387046569346360060655252495069853909347419339020207189970546076624718154109861125337484727122497583022667024532108303138889804206087025163403666390675778719688699210176770112566720176315430210730339603967286297006480444364395140868604707669438345426165127541431755753798642908690590782082540540553358039725285217135536460238651377171491853965374263722330400805612520193287772193676757697251574524899660761105129013813361655957267858158881720625415412736374188032937493838654513739075529465076981094797206458293384733289190646669265930444655396543557860460889091021206846349907872370433422451094330469223264821653561559552955560694453075468110375304610422744649707892247886171034109948113865663824341687133906251423175693568870786610556943416747599216026794086612370180583830645377038802507758515056838961355997567766566455104193546524537031557135160945279948600073286794788598857571220509294492466312447661384125561420349043496680782383892251705837010031586374882318507270333062852534432317693919796921901763700905568378839326809029948703129780046740350641895996769112336607559741268692656166561225617024831218976607315700992013240889640886272220044221635517326336027259180445598081018739287238029820658150981300625848825446264027211269608493796082497434039691953469350847082401170777381462372024424526954805840298574283176311550107782206142619435722846956911270960497284578226343843867769574926870693086225715469488392111757424634958580461591046176479547147007334104267433430476683266758831225969022894380706479602118634382063205933459435747776152678396339897561273311449263285919888534204340327798623053337877185692963763748261241531037871605834814989309934450005279265482238781591816611309406323009964835458574536661912957760078173504385253882887540522003860591835094522870605902522916052465671301945662058922783828259468633756360354593875748341480101323926503437190161731097841817612052250919411018894685080974514524058303221783402973316397795345029788601090163310118948151562364986769160192311489904113629772118998310642405651962793553610950497348994324835594971078790173149832746818531450275164457228114036287336095363402969018948179391758596266127409580197642087414504786120358521510909527681701038771793600610770699914010343933858445197373371491052056686401079248875798642955050939199441242812012859597535741065694534909133325629385459992941502992086732698080780825496791192470960610988876516983976278926809399801378484854103912353223935677011257098221767377342321958480221565800758678406647741703984123100277688661722482312079326875363239548626952269471669405179976389470248843668356040324135935872959466960274654859200716594492254231380627945324978930702882973533737936837650398896008765603027925812776725911912228720064173226716068403411148361052091014084524119410084609048091545657294914791899768825096587334580834910667482195244873707727507445911169397906004227751924317675371160600539548216084400769477003640045102021470352473915149359574173725895858409447453794011644554394845934704155072130335340929383643680485876078936889861158230499364527344626514684802826643820608765890505431499423394473842391461520076985450933132226153632921772413841896924353090828440328962204944951781953727852791984309225575711826377271608740840461861815346040789160451306265537712922329071851248739101044362287009526698877967346697350487391012405166551523264509875011046013257074944413222657260055760152256566234927724025057421015335927069938781039477867758782198386034876497450421965512496925141659007180082190951290147228819018637709512418906661374756861838225750069737713894849112034074615216948638630891444167773246090336487982330517152784152282719674044377163324410773393476793008164294371399156902330319046530902157693455273287046032713523549678611544242933795367992533607006111155276224902269992449620401796620893548883834944580180812535064951052253595690781217533088069743235017220756184800191409892681735645652472614423082126494831092822880460672962264005832243921632551835446820056514831833483581540957511397676217736082440488513249381873460622048733407112597235895308619258647169385406828408388807039080840756563280626748170035921582540829595593738716638463752902322732194697222442523610466739567255356993422962286803684842410241008698033230828031347825900899444458344618764949545270392216462465159122105934098857942534091564230436010742651134533921359880552902758079804346868220791587980041676882693492770561746040285478490451226129675173249871823827553119010927463348462599002862115193618948373728815265848031472631100118278574768126432211733867804633681356526744612730856780955175997392017918498538064755738334139101210786364038494198114581944150813017460934237782061006600175933193210195697196071738235355725435514632262135872481251237967517168191319955815080339988143730876934729190425952427523379886803468805464227148977168944750931079855142615324454025937003444241962981387123546325879271893301190731793541811599064282487378433597747214911255412595124275782512278082636181235934981806897297987946991324255013366692608876914807787372839394436232451940519155645830694205184699783762723882886919888350235854004125258373126766806397208240105836215987533569023728289756998979371805507373141577962930977055845659113792179922929535824640332285709924648244401692364179344720447710117757477505944845480996725225397613964306377811975636245818498013710766061936884220262860496938844726509536817154983585066860259779933871124848932495517273238848478795303283574349850986062372585646731677729864025116156548006595718716559611119550935775474939543107416100700551916549022496746447656434609790213631139752403123408212335425110233319859531253691890608361968501548198822282813848787139924206180626406127564269493112158658222086656854892617826131767618297137653053229997352337774884129099746052751589976274934472442510230737332661586262643668086052176257339009292943721042477319787181722002342201183548800381624342973573089398437303111375253924000148017947209731639244968207609342827916533123961476598424110710215457404186545481980822548956967589882692487184899402284235672701726191672639743668832913885444251890793294075119153369388223299130877314580532854709426732192200500883708944671185157792620724480500679189419167301904088043301836120639586069358361144435984188146795266464582813148414013175488453933760320523396417942627777894834727101105879082634932916345724257399992406752015837400017709203299549172138911677311091609703082552614149565083097784449886952452933731712731029743574436298279589541970787921803941387893021688293047189880847941946667768184945730503579426848254600288112218498587324290161764382046129032975585573960041048948928504846015519784811224721932687973312173365818356105013741754288927773510697901434689095236797851627100321451556944304527805220435123116878320575889630431314699717077254259640668946128083225173309837795541466036783506300847009681620823393729173349766056920927943074331615615284026144383393062538948720662317667585117992693210319256129000751054126691593786418470373740115093771916379614883793940455229775264527067363275706479593908776214312688229200569125544811130456953333808901461161931490807842920748866045112793208603322623776655440340462868831772082418082144554224993808509992661438326922167683869637033538377213652487193500353897676975782411821401882676639624656229828263074688609952089079932086874150407111399628838953004729691983539886849413457680838926885260611830128695301121783399612993376190015762802612889742935140848381535358405350601616577422811948942792543184558958679084564537649221706932421032872285018793930801958579616084737019909978149023746759714350387888706401424330979046586720685904888797943139137873060283703165575990263487961879835990311922645925968868042839049685082092638465731485061463342061056054996552952516749769721697542547952840801293950777577722456216762905185599677665219360745728217003056167355389303148942089698673109026711250178968377526930142312703786589028268099514513922496246271305573182480194706394622893494157442841231051441457510889262342784278107821125092339512841595314633071174884287460778941250493462675652767216365568862764996169341065628713920953178190268716823381452155448056530125783009416436676531363839679217506886805262567726535083877379031172186169352547909263561740573329068018783851024399913862414820204977257691544721954805792160887818509154640899540523970919704677138952110908474179894796278888591345733526955049679897551513383027818498523692994602298974582124955847283702450287253950062810181338471862022766833187986784758020855835291434262879387022780931563885254326373435840461398698112051959687878534750504044569803241680057769283318227742371015140748262894643619166222884301440069906956274838618027186905152777386239280571477774278631849712385802080029267567188880289120059059500984014518487236343637255230682225597619372521596618212441937717986586604560236277648121134998495197292030850193106416961203784476316392114901952930285672350278739492102111444993589966323695112682677726095925515369063612114873607467132158442448910159436982757123847153060624227767787910699898032525418411695903687792091879789588917685425571589554486027924920940043760538848738019571263701489452361645482873789257486698829489041292030800440779766053646015109741220338536387330048532806549650899332186881547935130342700337189977688701152751037310392947448922185736767157800126229596288338299935879999268144074907702566235516210439180192848697630711631324880491611986451007480566890198193386998249265328632681711938299845551898903336371568819829557065467197479982526925681005702667078562705360009640703058433660655046769566971321828754464169336659986141197856732255713294659887096627327126129021551906142680202088693252067877483275445835998494839994857581172197364514263032812152552064383363479856884234716999633674318547511371137343802174236840644620090856254454671569108903808234782292822853214782704122725952584284961104618312476658702434863074676093872877261289984730987448929093606745332140917992215400685200442350208589000582327963231297087752371282102916499859792031774384456518711597032709218684700787609536352591046128698689061663740783090192646688769795587406469098659513013663316040395480757822244217228801603861788394576632625135621581575263161141762962371464012660051997965810067897736044735146955514261153393200492599384457114139062876103288565712455913904014129826857220441661375591301743572583435498670752023186353923119503268939893788880617273430583719763257478926131321414636762784418060625022304739124184132704884085322710675886179402739810538339242249166595371184619937323418673424470061061909257990474110462949249037992435378845134525622777274168838541617346580952878196492033762023737602965487757877545639878935651631941050384430738022517451102463331558310125093675879786417818766825521638735801622364647360326550065867188001623712740197115048809411792426354859585741934987852578577243771406787248095277202974585821366515449849343095986100859160342803738258136506565860042143097434109696083461371200367525356507428749794046053212301076531265415984212823125563104696967199216228177763081805732428274496321848359011497389563205777556263679611668646663314467212983138457736042364419396765905445397297404202725736213338977717699538969948353126553874765449635525530938279754795025830017880147244117864747485396528915088995650489274991957759374198849679114731675958202063830609308738014140158393937074607588856838846457811550235002406392932836767710499568891534414136271330033066577473574171370810171756406904574733517475570692974711640821449328712504936275293200496936498474394708256455023056185635187305236630186329661188146112111028692825179809038634572367087218682282150574344104979495382004064628343673116606513564970498230844937552260436030700314520517274882230325906148159951945088649161220057591413533509300083772657986579841504639238468346659913445560220072910128060865620197740428402079347390537600528277023368767474235362904248624791252081895287574827382718474281397015504964887769406264271590955657334593426043585578693411895670771837738963925974309344272859943567300871600113916109115682682559058107191447411699610578934074899480932147107076278797741526393321130684223221082947385000238301729338887049785148664908203920573744838706274085123144707230058797726924633182208034262126258779284819621931508991989299471165421151999915252526469073543367643207323034765619390195367250653141121962458139232333818394096459546807994285092088544135979054571334173237041425100448749951770215397764140209125436677575656677558199583494875060442446151421299677449444653947308250488039916265057636737572949421095943275291763695111000306914970117446666974751808460549883417675698524074111237128957339484537717965632199930038437805478117459404425432350013507598637189119734792232214518463655956928978049673532668457537527545598777130151506029362820522416728999065369024060654883196958113126717649936024586281090760551054933988790151551919826078764766497745948753306702437824719007809113430797060681121394424832829421950771400446551618295491154239470293158259770210325277200269022672895795910660859088473067229010924065928516956087029722046928927848859768466589681637195224500261612157743077435473405327566771259262978108700349264030705793457813654361492154394073351934957573058740105103793782148328809741673186436799508389575887179740289148379194886574528012662675667316299080298610547314429164792957244537991959467794312428852306252895998949188465367303452446841907943489887193607066872826702163166650747049873965412973079971212574487419179989568070688855220862324846695447927894608867779221396408110363710646162027617857228873155582578827718752712423024105131026690156055103921141634073754814117842759811877404017792321233064393696068867405905072615500927513468221503469401405849395286288823860326655940055242867491323171672960981665504110091237396776677093626164112810624447760174822903984848738791625789171035089073177278522730921239152850855947408521174643609488123987796411800439516582195563542673643516749339914918373707192142364582383610893746968092107312071735179996402150842026382527575088596646740183269601870379442161337584063308000072289092222659748092985093267099968085402776810324264198683207154639322837629898800453268456147866662866844192449097951379915566713028395919414863488534814953428963282343914561024315227386809804052768628718488621549228613144158135284688165527423328147454988209785318594717953313803537585722939599716362807149470045695718532871794303473731507608076033711134050907118969188619007164680614438384790153858852147011026377709055868693269269686941193873183445135900882684976300733190512790628744599001352554965071405696011893814052229852930680420904483970388540193075831040405321607069620405059442537138006164472459954229757792550238807339359284920334325956925233782304019566140334359543699296133604703187588971839736598800249411195456716173001795404225532066048714508836054265126054659758962985180046898155842179224901658904863560036405018898098744099687929206910403345517741930509688621810421225788808811627603132856777722693033082773872592068924940864627208187794178593516233451966327765365162716113306849571754922477389346580738543886731494778696038708005750287836129500384461604125573712264500397690436815455794186635429723479032051240270826637633370921100714705024415247320207983495876407863700735384076074379362379784733644362741752715289579166287440873398096215038635276418425817334217278269735015103797984547968283606628075543882179282508765430565164535662918239069812004213614855788108263203163500797670256728621508986027247602642134812245968137694224403915384256480708379202520413686089966945792252175923254936942037296337809493576021226493955243845902591331430794051318505952962272115820077921748596919397113192662694216804116580872293303039863554301131819251567039355396071646594017815675591339225588941598689805822330460274759394181695725172506548637763658265734706208739056214415998825379253730432988466811086212238686022220434983908837978396566051940965189318018952946374366439831255444526521370995717568687817090079920708903401126671721876595344739427757814549853624759674736375775779779680043773788140509733437639301869315444184211099545645491832369290649113121369706263868705291861432735914385777261103769350943211044749328876049385027726253986572743982301427015261045734305802380790574067554090803317585788883362074177433344850419783641887786019227815083412259136896586299609886027701519651302011498655877805220377010327379808899717655325485691286044440249006373607310456082071689998541780624854553413719203146013306584675071785305171617822349276558697108470975281457595919634205196351560394545410308351120996250859757697073422228471070710524825023329928900021569585083408534835805448098911379227381627747979444599093949965774882587000261817110188288892855285775546621557608212664309251181510357200818955352678286418843014625396703633050650526299046226226917945542499254417686527864851394752229281133066725165435521398352339878277563692799964294056325769479349057268921813428608093256697075951082227843265213900728509273230414867677112549234196923353366944352532415263035726607925977908897945764534196368179407674996975733837057753010356424091696100719682673942028255703348873344467576784118918754163447401508817798776742255461100812956057068254235236464106270776704342616228424022116541707370516676280270731286774401208169105381898514457426522459072153830241072406936853786587168613255914152680441156978376188364165650799914796848662504042110908131032615841468666936747344521276928941118144338724423274348942130501680994227043010386980419363860460213247402455747980294109537899744221163044392442808342412096189825380673048099113298814613793658196350655444851934207069725449622963554803937300159585268683650388298667370476820415237645239407936218586107838318726217190671624537671995006719784325264274831482896387609337047487450252799789758903960139567531480765626394337547489307523011719267131951969735875932199491409626308673475248991025470156314665929416461902372078812401464303793737207802740370436116832467454647396824013473140250246986473190317362904950707957857023635608921937874734507231330981201704766166486847445758560131000061349103724355087078060072758092146311267251531915894580230079035847277026469419059201781567843928469350672206982458856197696488932233648416839374468877788848754348004193330281022547630948256025751567468026840770743723102161758963812047826829149874178052530840214683990660615074779259489674216348895410269347207369605299376436701953344467243450935191994318071587157965206373337840572196977760096048104885313098014043926504755749598579647007033654481474970955532929702156134328459719795495868836800059827008608559368227739545845985072546406337027041553765711904802280649883330867474671632506381953154172309435317195795506499805171913355866336817697598356105552323091489789208152169173916063864181026798456148543486246821197335526408381103751864246722771750526055824272541719462937953000412383170425414141786506998586980437929993384159911652973437355866639816361208387895281683695465300778720359027237263768105316418277217796346266671966561670652559069108463719366240148802969196755966534399198432054879108654671658867083954665210468498352058431419256667948405964793171543289292511596668600632068136405729336849932399200946307373446701499184917924708027506709413546907581054472261129560709005223130851556657461690324929094422568072333803172142321083143739771289550258670402506932106056147938377439585175819346766508846784510592344798740508227675484678377793766216653169824182183486333915078573343533108174608836662884784235157099541346799096918798119610862590180157652868801388503999335266391998860922790848095763095388961957020354358879510186403791544390937534613233000757903336975369632375350166693558663499829637271152926267181586664616709826932597798353614475549011973692457770765925314658729887655372110168306292423628552518891332449563917780297731733269206565087150276016815446788191840420751645376556333888153553967895643694476425265915661569215151175506853371772461245405296821631788507515059353248217446164997635406642875953498696092926487102137808930462610712833806458090968195565753080591427848597722768921842327338661075155440297807126093124443968684105066313093278491214979395747440830505541666549983356201258079925114952539935333917015959642969372194022686029613891984168163410977765287189104639078829504451418342428505129438814497512904081264693400697809500150094046995958115777527061034071149631625911658308769836150298122861126498134047253300279158681650845080243262297636752442086071829991819285698507286654537420437202181849649651567897823426558972376228794212892150152875688192760113504687765643961892961109511405396091705130451063654603538030936839662880929074941335978905522031388326914319753533661133848110794005124688792325120956961423983139997868877644535543350237548708194697158829192865133558119158587199364059979075482344785896882961475694669123796169744787964653310525271672129315836681377914401245303843575297713633255870457134107200785628767755895337600869939062270013220900969297903024038985775156270821107727576289296987317898694869538798281995770936416582087069257255106854641929737214180686396216784679605605623202299365565857193942179218582311806504747049006628153334533989324195254232687081973358264277255478366169301832418761828920448697000569602016581347806918886160635267995409433664410032166210157978591880677853742532566020508547253166591456101380458413925226496656356010031072717110992682667395230628037261306136493102879568161435335941051331455341552430939846974548695435134933938303961319917262033414994915905788182384871483217310039603131345950413510730920129877172918562471632283390022630204662582281942425983600627083468147410226997398703859659839045164896056313580036395114882094847977199064917589686620342901578673533847589130922351772921877673687838330954098864317600323720363219490897986309290236290207468421778893732067621380427240999916286076165490743368801551711213830055851459004036806436998820483769033303202853572407070408901897783264623445295045458696222534985995047378794986135297450657228344310774685024345736144160704846010787038682227011924232462166172845979855952974163146572047607411267487600260852267730968580526394396996256526400581969796469521811746513790704411105273483045571658432429006808140410000200368836508726851882540652151408977053185285574273620260999692915578605180833257674661095231429848519396683683113225020432856327025262670235273529973355598168828574654559896397790586208469361448029588163285925226178888894366035228041430985108826464919746224927343239068101406516534763610236690929115297967987801884159459512469363273524881039070639752196796063957595254526297124001647794294730496001416036672884246729282969565422321474571070235576839524905855976017335313121244340589250638520454016531985316646129261088501153308988207583438453715692318595451201120290807707346451041464632550548829513105162839158814900027722226321685334634003990359297285565508258115402955195991013282962507946393375796471795199101659504461325518085977974892623927706337825958110099936983213676312698083965902155262135055325592190396093914906713522452892068850406772115731395829760752561662255649038904590559228818026567779602959880159343954157772843003842217350023867102615529040703435964393336389356910496443185018865007026880861505887563898027641559031012190924254280330797932130108946807787654508550646406046568042374927476843006913296912777936342285402613174325156741158691751617077150967164210208843311135110532260697497183921178234328555665095772124608976070001109818982738199607779968849022404318830228664292113050012669349692599807384286962526297650276886676465015616849290509646280288097797245644048951954351491979394877940918834862357946222016914246101940378800769928469772475139725963907906117894240456174519714602524523409790003341006631505083063825954989265083983247113626707279018955609758411838534695669767762758413263926128988782029525593478708121841913230054236474552626460622514807819177494822868958607232352132245130624441205849449669286501008226407529012068822191351386109199288741492047592234137670011322942760616097559565988298290933962659873727715388403449089274818599952559231128602043311262712718539854333860660266908172424958140987885290499156480667631585055151482621498093119007310143740898817564703987145378580934783682715889442984930557707458963244314694548179536199707890259833519413860921406790302868412334652705595486434577074539423001719023958959097128739405113334015960453782549123535155225792311443945992105044659416247303039996481389135559201571607578557844635933289416033226304061428959327095204238896269225587322298345533370178169859007169243014704549869590826013174226460663455828936574329538524205780539851179752398942517913907824895919768363003297688079149448323751933530500145458653376314407674141888404549413371130608892802050496117199995482046254337062501330285443854152055078441808742329763375217250605677783492208885473889339797119222335934810697976412118000364651448536065188984046666975018102328135052160994574945808575267572049003523346968815455399517838952912734859970777505632461896864793617728078573029652224970035867228863839822936666541269546330724956274706633140138581175371002497134988603003150497481973916355051158961533523261339478572348513119804637756666606971775638783816171334073777136905402130302170820130239390784659455547023076068170289500675087988382701304508612333051267758446229466010083540357121513196535206972283525497876712688836732218026769651665310974387538997127066289319820418835437089662275586370146151587752293986238835050852380182851473978318142892191209514422828579519685522317987333177272800276666483911766564944843593693674059786961513957778628512361856059092426847489941498481571696335521263114315270981065194372554390439939402818550801123600153715699875176671324886835976716354100956025874317365542520625483621411720735081800132950448572408307077206109344237235562221827918716385460036583853338003073877449808600411777339688675588442488103907892650207630955007026846099273598674451976734023927716428608420039329849692091188954804142185215359557148027850930983737634314070672994963464960838965262057889540108477335744198205055177261207697817161219289711134455970160079705869888471743599499005387597874319707297553208694928958434912770241984147639631582503363315210152649172450562722098609460576807158806928592895933642142097729647549167818298530166221081434687334581386720051117787771987472247675367613840203679883867013727046686551348815277837282376417712622060896543705745590686629487258804508654421472455303792247266237558080367815289086811355805383489859752206100154659487038925350143903719777255413764091728040768524425041738101535234216207233627275708452286052312348430972488934651225361257721417582496187660469018983874859951031805176833645514911813731683038585085186636214704554443194063351149149129295859545624619601564448775344621901230016165713790563204894896224319958014810242338155644927581625334608450629590953184970651983837419522477109861950959882530906965235001595383333007416806771988081523025297548622971209632365955150743971542983326243108506382319650999656681439757064326799909868778065596622051937614742916859404898103333395257383151773577912256388507201206598417152749008535225531486687585787800100073319193435919247098003966500804099138577382466957646971825801233773077213784426578134653190502685172073427235861984014928688876701271179187051153684545437748630802234198644789583244805622121998897455254049126931469281282407839450917655491380815758689902130410443847824960271717882057495682982374214843505932260236478241520402681671406045719075374946554787459485000030123417522038934691880026851740451868660444044388216947397335372201304058079764354218463167731740462045028993773576052453436767173085890868778211027231358314771874123234764955674933211997051819546568851089200530677258509826264732437551416928740498052422809604800711968730034835228134601794330965501351850061590811213141713095665146001567320066852375337040253108228673399854286331729826318795910453826276879728922253990023971600217429404691150741186854060157306207725272051446947143220879595612558072669223182872348767367723954950117833847988462793765261190546720200940451251825710300918839965403487027253733290045226728755341428245738644303349807470902038796611383261358886677977816083143595863301854634861398433133808193915142909834342316221173003008719409982827709998789730546070898468549102433245591470690767340519329813677928306715705944832045291273580866735697016213292066789606955312220927648808376719161985301300541779836071146094722943408810146565614976953618852229150971334516973785779644384235031821613652965861015130382655554097386548873038932912008313449255558472327789015071913787391807806215462374606921390111818255291206516376949702937330851874785174175981699288227892935183371530322893214118231871345421293640287396098081471288077100750322062507122255108377431391528885756452007934659196606499524124055219264214354122981669031837221516123354592495947244256044038805562189217679209258422946086344878235463923535684273136325548436828630694701007853596201723982578160288625132066311844040968217815413715908574766413847371141173460957926111086584229831339466813118029686872676285168663171665013451485890666119672931926982947479196756533507781917319560974036471756148301899043154912203323494130212660262477332552928409815824948970867761729063155377007254071962367060325946088673251807646674603511985345725810586229211959092783703430630199936169341539383247713295758834306988305614918547127502702732384840256303498797996205119681899592877468482085955737873817350174546018155642225605843472715785075326633482873698303684787395862163760117155054473918722701391897356840236629323659873368399719305811188902348900358202312944029461389933864925777934400101914436884617574736852799461313061541623866907141790372456165449316142125924727925955997930287017832839208508057499919274909488733543925441227501899877328895800208958901240131959953197741012997981573480191107409545628301756778134527078232326085062350048473909815310335702293088987213452745186191123084940243650427251190604904873542525052988565392244714625754064159875254677168386878358171607302432653413048234264910835465653727603224092118428500483223728119856077485460292409762652451306226959754368803785093411057500902657484274290937141669352259165875864477440909946736941978409316546928953437880174843741066269597020686766827826426153182759433811604358297105066452707667411367651096767322660089161197738908874562103594693401960200603655427311290331476901955363563027181269928486880602242293546595748834420578735698267411889468074599353970626609974006263897696531586986309849948417567625582742501045813878121661684715525253706818643406461459207747097806059489887691917235643163160473723319702663071978611999696528732313737617812544398706927393686294494998638758317462616361469796927889260038659620976524601651073668543200336537358304904161993409108111353063300713641580977333683961354484179931064759580659820208082547107996867269991133215859237428416184159554112273966102163539072033672545803864440572786803330861374365672554225578765215492080064514557846792315703644834210802324744639958806751830912025911753047376322995756110233123975163916829745670040125665655377974084994314388285810519900553206814291234354348004792491785779180960793193615162066784920898929186083763083671255569364306976421884177454071605449415266328847412467237382946498880353802301047708830675936727530630598823623921697588259444859449285103008784811572422719466603921801086614468366800326198511768819963920622520614884944977412900266942633596682915106581847007315195041583072021785136135882950120388214145012031020479555278438535776673184441055646865867142583193444984933068238774517126977570939611662366232776090293560677035512462493330972234741320259620535801661341825130756833651325719032513099301716046536712397219893750901431414361617660510317716666812194967472080778130712826010756625039873885892131996640200362076289384269680135033148470582387301396363867690284246705041462031567910906683406858945054928673572730641271067594746402229382970068857448933310986908272666155771033784147098553638584266652875536554375030462774972607819961944382220038815630260491567716069826646318008777468004368889393021417409670814252430768192876585598164834740865380317295863215575899979761129267081238838382660418058515095671722189329605325972377769124076216646330903189398415160949366819216822419235236241359567275961393562099912967346827421131160017001411552817532172147768563367274108403073547230946788075113046290628717621587924896659483120439690479299070949547784285808397075196081398692268711342220686259698156118471437240866460920574595587924991054445725053428469128737276441254517494341412832794685575046356244697723771554666533771163310062932015675640248510310737226959018466991811132626210999462025681376147125840192737904316067891785586139625490647758271983581273184005815911991358474629256991571825685076601615516159189703816003419404520993413601119964517566915134457902573566951701047937678330311335059046546487428840138345417502774045788900413562272740320277365816945360297834383055515081610133268999299074912921627499428035744970931550178714117426168868521038760806326526398062991108363374236863053392179798070496025624484517280530972322623719187820628760971766129506681151617296232352596300980035653060812217287375280201433117397201260308256944735004150030626643596470654172975746520336949101781600290194046428441315940606643212271403641231615014776578421761561284154269811953884622998431197323991490723558104166851918565719771623045077070399402052721774132479882487752097719591801518648036319192613358255024006323843502621877770704577857505878969429520705545630643938472413378430922369380421234947226311075547280728922990876762937108568966901567471375076732984165231675257036110577089685270071276265470039490872440848228632038576020296723588951105063038917805768718203195668675164881049819601326418020137561238832920243171740558204086244122767491538526834273642194301785830918108471586855504347938801561161573574363323161004801751506395103265112257995643323346531918493272974708850032651496553423914347425628688033140295653092778076306718631954019460219153784647287634903829131705397897753281158535014578238551777852898408057641194615590364051641675864695934350540102464927545058398474082766306118066647305851514434118628158462026005094362842211234690001410435130730259469002875200000889196462508966198529079914760896873794104118783044923489862875775211581040827206400555468828607760654174442842148181948250111467410849448741078253360302844569236078758238480261344777391890639861119517076171528645803555659563927654854623860643729220823215684965134229918420707889853363312395653317762526451922051778226665234022436896911452855243706826952971010628902686463149098763936894099149380824545773777604389965085243277487479933883104824778180791201455626340900857198849645085972885758576096175451815636491707592527135032589073162735666254783037840161923225901477772954976724571161768692410665606073684889946664997842138102192483194902804034002438275111517407069564896769619199425700875546856115845586030182130632523934979183985992809370400574572286039250315130082555923723762252759766989874706248666913600245609793800474388374615871787410410280588661751419392043285318340407977674184995023800959384780443063112066554686678098041106121730354791835857128160648551605836752096559803517177053107702408316377803375473686084887166780986064723175963976624716790805937456317273428481451116214783749837970181850825445211691278759820765411865864337624557933274893377631135988585311105305252460682058017262446621704503884483322475869103203555812793465298362979960498285357930903081515781304827916915328158848061828974465807692657729813045689301586083457082591245629788535992879217994800349582404962198352937598071388247042811280657251214118952923299616366135337972571062840903885170470378764868796125534956004593704817624332343580162608666116501787376594499924890831675502409982621729366950858687962600380534285357883817989317873793164642460459973645293241972425984003922774523011617955671108907801899535469880979499193134359679020582427330825154212824256543543399204155641623408209708765608868300560394030764360759141893138594459060622409517824139047232442194206927720182721244333089129598541993900943504535815640968649626587655170032850694170599031894391326446854918817715908628247495537403413885989616700227560649068860699488900450725580626474347220526092686034041706923119899496653444710528192415091468431545642944292045138889928930801111461618371625126717315237534034469762966707823097799524483587123263242979929793033902885499633022286267336490429366048745401891431026501704506191622072229849690496385044181705230354817676122516282331718218161738942667364601224188713908927502242189065425198140946390946859418509261024062795200935699606774301381233441959190331044668468439082463768737859187660548741919661222628580055111850105720621635676900211880676256541960972854053555145745233352916969463417350938328760626597567023152868992064247316256482879016289286941077394108201091406623121675198194094233922027498170979645089707123308097795375373269616859676789701973800706277880024366494543498314029731082894710096948522205413105731444148779315932170516311749397890606152315313104219594380257943626055435982844874925072221213428481386857050221613319401289725175012140989428273269945977001751461407997899722807989054078849539017735260108495076997230716693329284400342742943178913854747166811806200366868380228821428423611917700658523035737845839805684457608745417963369167228924473301582700531860890506844402968645781041108187565163239172112990928280874038477299003433946936861827955762566648998788903382897788515182706870167097849713208242308111466626919985069347027258161462651273340824904027103522151335320512291531243455653912983813607837302523711333811607237182213804928169366581000601570584479258022109940275522994940056762704869779085388720766609280164111346895333102789969689684846109620618917619935736867887718555559012528792063127846593076994032170971484364382090480765647118660908898075153561747894588674411154452195734702383589390511566261269674152469230630217888773009949449531665108607897409395650683253702429988433827903209907172680763649298563367978648593987195747471570072304509065937440219224196166280786463739105366267057286793483772599306181194168161851193208993170900405803582053791969554860334660230217566659843517676983792001754617361890956507961420351833019722433814138013885485088053026891782360926331813498762490952203870035236088371223555236140890472837477156243079161544020587801632134057221617433334296373589183172220173358287250054850934934224726065816407848089505988258791159655415389490595063113224716006708810281340457553514387907931667946588959029357602580484902680708961870669950356624908879063215526427831850522775755743633735517121864496481521486941911084886431803308732042812252381239151968506982906780082591072584456448803951058587851396643045313563401752216432576957051560442668696690835713463959442178539495054605744344758102489973631317671706933240040853428269208319533592747595162811547500722402606493566415371208291319328366662123820690132876194431765629745186871686997685912243998465872949575479470532771351312608719072094983235099692369664643345450104748223239851247797140974556181330102651805142349186621177462372941583639635295727770977765838741976541643079453151559308857944459267650655185135656864868286407841596911290609579697722380143443656225472711365129491716592620279866439594243296377272803315030029573836297605767629498343942205264839860650147542122804559938999065507428555350945373209395098117573791837264053177882702735758446172801005926240547407650482476608631136730997226005520103822662030340390832176490021164529148344499381729647134507764280640893215739177028810581252715724280686950340742607721935979298300790675125836914219851576903591151159155386125423960978528966230433456408802108605053288606614133385738723463006699615116014844271748425609586377111508253245288753156457510635212804696078571005352589305696650680167199995342459604060741650088884190800194007797177168437794813661017921169583905003491535506755779292531951125805034996481421157504292195922102759859500266537026830236862866412108610556644232203330452568069920277821244782226574504544190339155225721309837231629501129887304862191226804527116022056579837708539515655465314561822183556569143209901326893086394795277825651730327537065544164041657699293512073594006574199956620456862109457936077100256585094915541418614640135114730906267351384383214075553814017022099178252245397679331929626485610847607284148658262722534568127561641830742645156712246875040420522211490850481895802740693048409401770485487856376342691875857431738648731191204203440741127118558638305057458319852995071296353350766460671976237447549770845482977168070922042076132870633387438445202967526844109907655571655053184725793404279951614525803063101959662663537661674184050760431477616575959790013330723763419218173961384722387613706287041534311985218043916180396820019035869164010573866230049004533518295462386984943503453529407803295402471904514907971545143211858900354661096480568180342256733715959623475083850292871286942985209914592408713546766122498596861250457386722878183837309200749437417695596077951737822272750889940359846165289158096793302273779806082587697541989697387433417534081756178520313257045421019012932931587204257062548240610702626452824898896862424804669888630218444776251290726064541246854528198835938238663733482708706703643584718940533471220024056909561272184619447207674394871906354891365957130769382991510542717525814922650740575356025610916841307483670486239978249505828056649904339485111641183666250155308087771751453394060401306272762371520720483787749094142969659699580180726285881462114469431374752979243384143152100277909926322126177889318513447759038835032517025126751465771713380411098762113023508572461342630017039343141950756399893756395450774920805581251596016633069460263368336600851702940544478632198826847023964126877722093517175879066978094086848854939506907792272890397176588846334157326262577173090835369131798270643192733684519536836740872921530835174542503680167816857975915655523648892837183682237938040403632274400486072200992460530239403817857856678011491363463189627946688626870828314253108900539637192294694552282209881506136603577557646470958539270422812702807466965183401954310399487679382151294697349112245632949384573614908881562772669343623485545954121064126195662831562139198001602968805899825964590325217539123727869336593606898970478499806871301577969278825345493168313574677605295768938191402903603468045044757819082879688841115895634273156194524033989190556647044980590274120000848671390634665686526791243924353415254109455115131938657565822818970465606478156121893817248080403788913249960068329245087862737430654882247757285121230937008122664177217246448919752888958907601923867505927269406194058058929402157401460312943087738151449638044162853872087886537354266733540615768887351431842039416182504092612880095140452454949747986409851258371001241105424664311142419611644667945922146674694496676945293049759356974192134042533839584420287391753442448350349304648762975477233065402086095901021560976046646401875954334240550275749897147603917613524345349922570099648380878343282321003792377788671657217171377976969199200448426297610757603266703000764090538004043717424939066482394241394852230111360956743429795762193579625359778946032897561525820181415512116435453524204920850601069553358079065226444213498098301832421432321022829246318449405753968178447052763103141538148699246026924758973743033945852656043653932974268385657807628431701309229730436156345592244819053691977917835825306963131071998233524816379593932158692137023766013934491452020438864125004267353170838264601074197457996370146103533937231774904676574598866753774455319024897888232065685286654955888979332699694797268927881340873999090305110817772272750361084988302041912220059055594602502273455337094065758631352494939708925972664041658278190091963853148953231025603686244049545462900211024430867332575126809463594339542223486200473962836758138515641581814334149785891119465388050264646921590466367833446839555382909054318293981068497200456437424361823339953730024780750822869059325664003675389614436933616720888663495214293319926041051191965125733196518326932898825982553641444617812034894109323564985101123621281292947072456053155054924223175521611714430262660749773084446730020613840299682812583557120405271033629246022738975739388185957450609778421730251908739576342849574624333614505185571009581874633282308618619146628124598468631859398470458241292660956010232438978749953345849237020708114529001885550081160252985407786024999299859827757205778955322378582294101988337559594944400472329945678978434845964630449676151430474479589661765431021048114104156480106349993113797988387616864108821177349794484137998497888576833917922977058618958279720977569416482520916979647203996322289550199913490105699428147263662206836747093713824380725621506214268245364203778736656218245453835854563527258926211974740913284786845110754464662150893847756626025058889293556694540621904807234742138005262738366709254169680742889776557396153467685544577075545593936749224341878604080379073064846246049114191326801710557573375718560313219402314483334594696649383702734640003922575761326105202033178537259797011022235616206862330939311240452937333866652042613848947016164631862758004427962200486207091607592151526709020045106251144051304422346310379918560861360518549320085359447703463371510381601065173448625377978349378141653196762439124375198035847555272446266118860167264868569082675087579562187046639118797963863237515925391712159314543911282827774350500258970958052088539565520857955909644037817342175810271649281845382333965354470686928128211469969275020779027096684394053829057586610481472587037882256786061678419867907511712473513188301886267968760331726301101699305150699093306485784641231939959529753866041185238955318500436397639428742442748745498935034129757549768032591928569783261973909787622171171801621557042483925955493226240954740956786674400609560774642778426217168583969601099999821464501146009100636524487461254973943239104289780103357488710450773255490450481309484465188747195661758805123190460889773059364178273558323412087880008094198231927373699334556568694003078928256145056197222477754532321919200989150851867229361405609952157885735151218774146369583684079228488937058376187313231321991249232477171998460206661619293649205205911252421922961302568537968978293030648168313266560368740901688419797896533220892156423918029836579971111984774484910228156166175325033501238036230951703686235435534880373435762544663780850510582159968862717765546658660328979722515831967135333101261745019130862259719755072901843442796116443112007951247213364890911326045695195426987338192475741407502056744056226348338270869928287920569225594186629559660856597650825238416902790406513488627536309959595719242257665841212611631063410066963435978998726207927910413200748708697974165335569197832591213130799610253728568026196634653479457201884882781048050594272840854883956829813323045439040421415872611216775134207735721364465191649778859946047572384892689244801619687522801866892745766718023744894183051735755581386203365364475002222735906617935688133865346591879981443556832768852418509618183895199184816834255608553684087650888390575410753545361713054075032323888836986575008887127459353915889330636135048052869076821374375208405292799573056332203739423467234534227624003913501836984687545437077929362842628416800982620716139804622119324109154933408745007162075960004286614389124152408755887954918843536705344594067604189070575608022430083601089735184733852427623976307581396555512243631916451543110723092440043812953825183537892436498802472738716540581072152211550999540484015733456885913838972019682955249530914378112335292778150190846168559943526945847270244010853079269382148651233048406811444885874644800133181997953176342862398854782900287099321383521819936662377586616533933129741435303221172828888985279721286597828906112892938236230393195198674765722557503613801248840004013109900019663199986826540442578891413134361426911549247409295432316993100086195704262391662322052684114530333456062540044769254107171831591818532822736990853188574616021178855494414346152732441620570983859703048418903720004922787842536361052025917591608603988164655077077756593231420304666084833734598327545769674338025228774258060854272537945395366207008877794241307202112464795234471516345757927173793365458083044044100212332317421921748485607371415307840316373845774020942405100083789291119167722964334087269943449382898063680967120017341934605236191547421046505001545941846098799880740696015845291664700666748914961906486575112106414048577132519480619799952402143712762474260315862534907960004569952958060505640407215522598945603958561629366297457454813416866127827602287456692001701124946620675982994447336628839435643092314168337747989836716535437187232613025298551289628184205800171514373870291747742354826097891321684425634695018997099219153945488714026594500656407385224359717006952059541931074288769533260357553269005542157176009856517803361780160805524089762576926805998549951825471970988309217502667807317947440890717375610843867021761981467035562688328177980137048510949033103785350773551394682065231338925920093819671175775471228530617867529700389117070745874330823818942569767430897415009030520854356172286631759599088425229461694943615369002688078244544061435549206191460758785909609761545657443607885212560093927032877094322182582766860832978093635867855132115072853064880708570737876250192764012644761372225196945049412818035263499569800792532836088801829786388500786476992885641580507783094049206930218641795457130986487575879664499382053157099964143907496671316388982029631275413833985011833686772983730573363922818721419675139540684900797540445961773304402651704987760723836686026493789246187754531300415802678295270720532983727668590176397503800019689199695807440054746180235251729398514655348991004924043142922367750822525382671900731449208403741161597646042610358943275195816545706219470288408673292813731375401509937582465898832683397653597675372106071121577818964162204034951507566244503224560400574783749597328029499645339378699673551901675827996473877331701269133787252184933162808728198984201179103432489478422582738626570216826406006568132245934477242562070890661367033031498352481871433060509314118235079602466633463927417811120101973768896926185462449161445209779831943010559462611057981975557063817693995918777096818060875488452625831296855853732550038820248005082944353859977572259906567738207070042319649131981292773052946085411041465224119437377345644867359462664800240551882235581696732417413787576209191836360081572513036644526816617844070589219499643360368891033335047402200880856452235363641353800804291089305393767244881647400047035654186763666933621774568240941358363741036725804547649311008121519660452079229110165457675031943269424007352251304938785136885144387846269533778603711803289000248504136784586893424247951995378451035029465981806385234980361077459210287889711670335447244412444546470681148076513920306624586090520918565111661419129308426154060421117132248481660817096347955404865490970891264995124579077051759327776529215171886530330795386650813671953544380523275632259167952771705109449854477873415705503177417952951695898975062614672019144208700873611310406854413692977724563171756476323108518115718104260429290079400954293783357775162801000894681195482874425308360375257863997441300206765214579688534293189137414575067119325664264497565985211507704807654904249279747467950571881763975266251450533627897275663670868344967004977937408326742053406504238651226185170294055177439408111641174342220351528784497979741959721088364322838389803466557841780149987246224716475687612502658988218699920864209022495733428013496204327935941956414467903453197531375204421209339887423929112629178603052028930807924132081785859185449216618429953227351952109742737059474709791653266248777033462642238444174624616390616061021224132906804302322286893389515955246138934487757736407860315199450924249813775605674997266146560069062030663745815710264638251669538788757609347811653276418709172937242163214109587670979004077249371982541905213239700647198228106688325085117886495669734530384928944097593239595844690854698636479545942947758020422397523789904749156626154059731529335631878530955478358395052588233775368173184778552834211569035754119005322115298393841675046323061092900365009350717110954462328053341154121765952114119996351014150741613488195796557651204924552240670603872248141649214453683123332672339902596437549626520881600848270570484941709248820814348394307291811205648011234660876028108862288464738169378249141487767958034814510310560760376803355734209402699093656458638820682639681542692178798437477137450969288879119001378220531774075709937476474811535810743045584165635829128559380100864540447774740770901056002241115950794726576976754812259169320528351880820658672099294426914396307909283465915641992129007409127556985335213104278508057679862909019930780956892375452714793583531559730694863713577705610040730848619868034180208151317408273196071298775117977873762427668453739711303519069515210671529428234147942869921545327471364400404932964094570043519157803355356736609356371544721098096999660755029541875150231008494890510029422257037772929707187462757874077842376106582745741613802466799237464305651116084946875884681568194854582546018931513423413982975857647414344540288919883612527597878947068989057031266256336441046287257736142112311472735773454708017903117332530488195495637574404796953503750133206410546602569492038124822177399194745741466841004452801915615441573168731248285076779584745236660911505107100855478613428573034241729328221819969881265384417364261132760979972545267562870785084899204137991475153550539843895662478256378925696355346653909331771056570411077592267948436451194533811314157491219215078026976499389895621251002464830153349525572096116287578898455108128790158108157053666299198043245125736568386904851613881906440094270851949210404571498338323523871248603460790389023122895676063234015792997632924280533813615427218354527308815206063417496358196499188294928730342459090492449216783072987229106872481498644581292365221999818311064836342352396003128489246032380838609849837791578453123932699744512831285069948778198214612478605556628070050020110790376278355162611251210801209344464182621108384397060519459635332457484731742057319365239683128435008289750423654452532111117746192248192720080657022910827336998710354481440282553364815511078188338238745817625661801181771901877186558773244576390674414574652626134071846313408455520072507976077402058569146201096012760295667048403298239142298257022377587827924577362092000065427978056552809329539503298035504369260606920895148106252822841452509387092604606238395536522325527840920449542915209387292681477389088123124262590303732172124513545843763189107640398697517639269112339183508671254278806972480430178336973637351958648158709777898056873985928981322180285243742995623257191994508784042848791183406612460785570859908774769976236372515676024041718328182014794857589262132546062185598756313427422704365793277252910899070957674323949260171340316636960383255294924684066617721674331181653121547485268384764021109320250339882229490775781425968986568552803617623093866593129564158319463274264772038095680651376383640268369543329728545959583917648461066043323250236102277404170197108321198452157172347222973430428709764030459504101862369167245166783607004915478280032454550829885370623739208095519054014693377692616764338009196170932996204859027984087647868070335815286332734216560254348941087427811064380139280684415490715953614960669948734953810255470468212758449047611458761619275760960497783084904298411547689325397095586593771317833682122591035130393950258212185942035100502066889785335605904457953328854341448072282391603711824228068538098243575518499821827445860719329668739459055368597929528802007876805395174649222497226299601225646960896557584566007839589177814381198188336958696173966085677703569182628660650070600675980076301658872884600165779700394586819873244194720205083467970239668238368414928531222873939893659796199874635309067046639016240492828107298246381725148408012049735971752921097723166448421092353791421056876184674321783440594992210002129795287221418399635883789031493711420914485094804756602202184054515953058106559989798511614083597126898494978038834245440624558220238253243075123533614866037750070687641844465549757053506658055807393037224586086994000396737419770193760453717664316456394075468533696744442255304205838972564486316242911178890521505757413598572058824099734013682446915376965137969178296269947107873163538984582740676093074337780826195822036220048756886018210708789265335608787252810799230458389678430006057659304357197632933490597618289955354394151442520738429178251303562606001481976900331558499216933332466292736491917539339870605744883009788741498608299540922864960896100110670957276606049214045761977423978137232899268415650736812942556845906279782373596359163655463669061599538210772171742055118302430406523787529910897381175398900740503484180395053021999786984481707181124479937060373029875546167514911872364332644412302108244567966226287352176818382132356009574026787031200160088108774213755463898692974998179978436791982869272170439087245514850665559734517746387670659929350809083921915186110326290877682735473753530070734518248352192950224624126273121550434065851847278829340439536293395787989613829790226551015537921061344317156689811650999131899025088524590752732087674374251672267010909825230401313899657436584970005223901386642773974136922982148449441960583841241095746498851652816778759695257762534910380917238851682052594272105908593559937670195360647466477275652755892897354650989470911610167332642932855493893538033971348450161026399015046545554489277806106023640648944247641232383857032859476269440782571205336287585671507819945616389900030940183968660345741632978561367209024610945405475100625439609728268924768969015317187000248037695745045059775778915483475301638446110387783817004290901334776197148331416452123261086341927676241137212041997242479137110608688555266043466040399576423851131362536797563000041794004776385686782585283799808560736950196114159470128357481614349351091175553939740981008602787823053716202262344493377691765725403729455978898809395084764011019185026046769757415318218839473521700652487297760688862756164610400565008124287390149727211876136387285091048109759325535195407609735857329353374863611941611810064420012202519483062632739280345506205421220964902029347440907486938381936170267172276439238939186466276004075742363883763019510658924167865227641077940027995880112755663951407995849444278467769133884929301133401842430744281477606996196465873645747185756646350090455272438279485936844428330240875824464960699853498155405728847401614519720772025759057472847904527627825326764234440488942641900378172541921744434164991591246288488650402634979004448226586954938948583309310984045794502043055373973807371243693560679421028003892514287181105804387929388189533045526820902357092393506499898623688494857047018070880237858848344147502749745205964893642684973901133626939943128168180370311244658848207218455349335321417040936362518829222331953726037746431195118340725273989018385758911821747750699688089661572489613313712749154735510810717140697472713914849188702049128937793004023997281901949772646751213020954819583692932107350273436755653867289911110049330868529351498163575829468956308597795904025954869658160015419524174492582917777868647793021197870983613607597777778573350121592514911560488461727571926935208669651097898407420923536380303603822883583501247811159636086801772722804453815656572438025618189695645385147562130769748750857775808396991090089085951574050838608130650428922895948427474300240524909093770569288429878034791575223171430004751852455183063106928446382724281618686200176203874539943125870110172806311141815018612599625807936884201285749813313403836630952988667800321700300779873768207093662465029267862077993290283516643873945620870245074365688557806881802094295369275544126517409041137599132048953765687044756620542246979224480077302059616356974368043743533737410252588629751593980532625155333833870735452942378561519927143210360121833338372988918324695929739229884432716544330893399417885122618644192985873046856716711443708284211320698704960304963772402078823208798988302262992263764257781894395227680752912743879233984991427958583558703801962382321208246819832318079281904823309146458009720043044942195059057631771087999556966195149873295502722364679817333555652415961155746650106295165644920992048965053262251724157667764494913815914441551130948412803628074464528764874798188886071201041408031566132263859703212395239915728913345633939743543200731231314723143345461560821038275822581083241491296084282526161604882092839731856101958391416688220129027559611221210687448398105385880828259256387174755448906708531704089927393120186910541032741709554729832292806835624292980434821911345045152628004091517275507917543134217017974851092158357857420317340261328291868060325024239737903545782851312917718875723445283632560473804695735766953915784266016927869683514561134540957157179439003391628966997631752692394989887545056421352912641513148426828050547916954448788969630609109926203634113237223737559666869629057967239266018233878145156586669497839889450036387025199043259191041865379074596420471030553484623823082871144462286441489551534695027259273125895779899274239380217161366110366743485073409039288620839309291452544565563984958679777426831464427945600159281157149229746188540382144126858271363771343604044324789907385736489078491050085576677286830596593293881177606346437212084007577570928904686276276172523382275082297038603834399366274706584185352655264341363827732736078442042543601491032724985071632164515166682043561357696936095457809037719882379999911186986188069643021158334079494396937047910030620501468482897818569862893991181289818050217679717205682646921730262795216168001281156996999001425451806662286754692114017793651015381795133358634999182322353800981600607282278491636725991471442302437361116656402542678313240094834215899669784566195696101343044748838492456957447086668974033275710785832737111811099654808160637195264322684984754929345037782683848133269887180277563208760513898279788136140706328869357858740872892124374222486835902546629677751982632480111060341009911650429302889025636388421489422867760114917444483873001494725965329422242446596504229931207568532853330620326612532117019116653889546994000942187674829078276324150349884970113491175328809778746463256456520773125136590384541613473550503528874002406838891698433427265558298510689150642754722623064833044594169530334012823685271968258258466091430748701001332575682907000070823490574957482476742582796182986129124528140339258183869862558727139751463244004498885917595110886589647461505969394919992173418165737881807499636914380121281553984279181356900209281889265803459082909728988698512752550419996942032536955984088907904906623885974043305748548447156471343020467187639768294701524345249268558763467701131242471569563799158254045025998025111634226738882818913880870061033860013213402989394172965169865391547371582971392008132283941657724512495362360411762795212183336661705468896523397723983571304918825470828908017971654604552520668472941329133828149886647414540281266589448126187396388330450639839649416048455518174212900884904696346237615368088573475505613571982082030842315761253217594914448256643426385165173770319434022484692332331375515270859747483019841784090928746296060916797938522848655664722066994345328253341351742513509581406325278683559287328521318306712748560347204335845303356031279157426764163962862875504590269615479920376988722463540684820574958299848376231396760495702333648773534496773159578990303056193368803648756589566001720208627363389387528746858168585531096194358025768441367107261375881320070801364832410631325610757771965692007746128782328910847924821091108794799503248114970376774506757794142576762456904987235824473261398014452222279460189209593516914227583686553433979480420800838395056556230723516997081212176779532072338251720901521523374405798143635377442463057799017580893260077493284589789513555651481198000913262165233625344332233214113224974723305834963755397202877317862366790455832807870607181474559921895394336650602773373583887293875536610162295519350514377311490136267718015480980738606016123053242853948687495943980286499113050670780549341821212331586931284318688648738409075662022220977209057159066429067032690376274680015653742140637463837528188640520533119473146746300843648309139239739623715624222193638276563571343314852058026592597914287925921071474479144295266010513850285399521296899424276034508768973810281019479493180240028760174860982737784097489802215006516730177946095524374823709049906172783830580645218683544081035555662532347890374260404326729403981173281876236954275332700542231203444621227824376476222094960291609696424389892341342016778983550297829072706416320508193804589696845711185548152875148635317899109021427096068487682637795291711238100782159790557108172976746808339507653724775880209380164064715700114217990964509928793503378990626054908888813481111385766443124727492059565305442599597315958644767170312005426536933576169077376228480471920581931890034612005026537348853252356889389569688925891594405918704707551517320396899590046655673494674445196747279648538366933645574186503186144434173106567932550780455663485981655857769667308738356633699534508988124430228034484789613026480334146077998266298247683714805621559735219683294478673881065685541807352181473942941917144303924885356774524880306753791888376818564716358239596338557288016410166810626221241517638787391242261501357354373712630802784982059291601612295301218314456454352443784480692659589641311814343697491323469381377244285833485260172953841486161608152551501867487674867434455742869121669142533279695039313858032037409926010015474538443333744130492480787735486922443945134102634829533079950219949521916392193629617003733484696967500360273867334328572158169499890398852500591277225255703312368193675311702028536206707913139527759462738250097248238068228368740330872630026232638524338261362553140673430256645411989454755268882639001333216700953223025224101981809814942002581387437907068572781415155488542327113291035816032689623304077199960282906342856869804655446150487822574379583384010594189457424610708144133993810362023568379694431982017994992547198421389502923026214808485073554349832671758152410197990640744461533821648751473281081229977995142204264088130285572953344885173631117837836022113176812994988606959391506827821357430177618477000014036673477382263754190624503980389688934461564072156802145542024602385561738057993366708033142764643184750935759127922586445802444824704396152763074055086359974949479907522235309163200175164030950064041348202833367488214484699680335373913696691928312162115237915706654621443469574393765944613009783863709626364710743877666184025890837102514765836487245304839665696375331797711093740079253201733493612785694518028979369757352097622921057106162599554191235186019858308417845295189327050945865967303993989391469578043386803844275994436303398803304719088398059594237629957186810290494704898586490190717917430850142306193326331078220584956310663591778329865861304979755797523759377639855171862432722126312362330814335054737132423581749843126030036567915384034143963303856967616133056566457840954962847823809623678380955532180239817513421641910800995952777746362996266237060771913814155760185213440462012743605106471439616016499358288315004063785786079751582204882863825515163950348067244462976416698261320856438384401263850736374657613022222293454832395599470283312703742724170625183452378034771380790890518770676614772048500157712566574193197362310330139235089953880446015487774936986484609567647578170198959185665892840954905198961154391701545957261039454671187252913065609894060176781806932802288225183629234550085391576398656486513761389773612945014549239062573333659740470251260746330599347633901970673274858118259695034106973138008060312855078345217135373385651700457724653694655017878113657107525170591463693982877747617037048205910954368694640976075093112796744845092280839081543465761694411139539982615737957481236959891154612710598255205753452065644036678318038225455822453479220147668095988204232057827558017084489579520080696686136738338485782293793723406998436720892777761253353413294655067234271693420501964374572852758391213646484041812270166023397910975816349356081042834725568902335512899053366438168737259205529198919477367257936146123216691742135936795174220531222569720895897141459777339359846909165404419797718582963942080650378472543121946338935613291040989276019251274790992468278634490396800571184275865465462506524699388354590116177018403506166472930900484272598105357976460792032504583014038034074419644554944606891082293060986515709555590619927422232334656454199856490047954436502543639601635397990026771961334991076401190643046202316828237748167126025015109886673771435716683405524078373586256945161895155636666028581195931738569909229863577934693669425536154300852060362459328361254558653564314094977359470361641468395264586199271323703236315545358285661184178728266413140104056740261441322002874565059333305172537215773215677070126649136888130226693967470395752013935899927533184107734769707276797086317286197942387943473671631880166992746097437754003181734949601366653885446764631874511973118267757852647756032721310217434492464061028248839710944060085506853134965860464975816737112229601236205328445654323735237741123160019018389843008106725627797387757902273747074169062325503274937380204461575091724722940910768332834625953500585207100798584594324289198803263592256929414612875017920053774930144306109588407601211449533122952229623832899202648714619495582249545674853864664275434036786633731448998314877226742070058360587053827471199959832094797148955444387236770605729885243017307828417622582070620700335180460179482150191242877984353036389691016258474316265568450459348884464608404839654362570169786165200168421241683841443199474962558632107244326039857417878959463110518506528245269424980911824135671873761089101217315892762982856047665565649677097953382809709147359184902209503283861404562806378403663611921349239521328733387772835683443686053999228002177235609033534456866086205148946443062816880276667141629448065240341755158099778877665992929022524706906324949239751015600979624014406073710145868115930362550676022690955458831015815453036453965490495206167794463549193859588048812289383925101734008840659931158886013092957152418097377377449852685136631012746589857766572427651456554130307409765360195516426721110428623479021327891363151354760436815136988528764386538500234114883071949740278964633413042305378390771471220309704759098950479103281643946017247683899345273254676695635126426084680371032404068955225116885520638761273333469609001848087535475000758280739504642743827104131191102165165018642362930904218008626735287058893592616307630008975958556171360166164155407343753159611883164870151593646637401547171638039051361318055756812238211597625011793140433888118998505936583661209013714711520150081510099059367841151439134701595370895757974094384344562940387241289783279614856717529975447831076832145561446037331210429915167827575380892264562768629248581315971846709334373610533371890544884654257881040443156627900805333551001661579539018525672920444928942785454604138043452899671338930142184241184761954818147313392299056472808144815216218164039503013829321975685784581845043166978672756332975757087550689378346686958006410523523176194626324956022570772652194099144250172500260590764788679628481019765987410932349814277305270070378413395534564045015657601002040026357956666258293268720879925834317035775278328338789760951087892823663265042335547460923423139095395950402467524893656667346870753357908560068118422070592160085504706905301690678327950758414449962947192394148079346642987139131614182928941259977779373013272502815087137129850272394067547816722837499293727924549233376699171058724562261758072936612138269859761639619481246563033685512158797511646695197008266514431220411014715371441562026059381545927456820833410438092807791929988150048577044992837899205948277508396998179059844614708982057791901567186372221452576078318436505603858571329765936655652435554614926341782677367729899540071616280773658307702493725559004831142207502185694468465673399836777352315252152146074495888607223766278549786976822011898799037859544188573443284670906104910137699355441543662477074677277687231934941808534393414332727626510997773739328360891471371589577581193461345123478286674649972240407824892357238699407301118103782286785193201172037467636419897537564025922299593241094529607908650300476149616981799082041534687508697654618049169149685679234071052432650038331147200689382485100868424590516777225967908808663602059971539158135950217338185452404275246375172347570559474095181209298099359153465296067666595109144231984309713987969566774357831938753821829978820649281877101949995077568169911410377572612487128086806783961421069126199926293806052371917810331753404989806103576259887471144111315394151559011670514372173577262809906211292979135105469085398186413687014804540299528641577650578249053296341090904391134546270494464968879601239823108608652976838006881842810438655597567669766781684760363924018556847177183275290130959198740545532327496017439769175122604912233442125394975500181066573538759674903621697022950475162233798876044044107246077355229074605510670415328253913854964339996414270023397410298568303056466477252002658733006381271075657503030327689619654688781929584988683722103373989609377964736145362456614977187040146962699087349682267963335975839605479458262932509172133335598789685069225571765338020210034236169412635722220092756193016392201597539245243690751164957630477520288736794194151271723905149929462529537960730356970137925044035178685384528023423315293066155514137657867843072266716639582756945031714149516668098815462309969328258485787286982877074784241361913814204264470741767299871021664943015342966875842161398553582846836107735529344140207767562400214836299723758573809584478753346558640723943058530965679970630711915213119955132768784952709163522003586050440010569221146106507335580139319023570856093396044655239906925744647399273318324708186220800069811209786092347592987204044154526365888235390319562829621470044849748631803281999377785963374141908972428703876537383150557926036345638297376560432730220827123450489417745900274505824422874581285201468409960934469361562837477359684492171270954191556695666830936459769265489138562656350920109492299021484552360923641392118021636670524418115782473219480315853683898674630464249210813257287749892210405562663963781629440252406625671539428250651448443821031710945271609153862494267237194443864855088517047151022928613958815259397400587062228074505285833120426418120378904282370314551016938763389850726398487615084497202174327948367741029317285260415700913864267951448120712953093351215242435926364325637053311113583950593606992771474345968244120563048416149595725671214301476524266416542990278636782237459529814505829127568750081812087808017675149228390083163632053184343673265032859007564835567061037643849859082806029046529180339590817058549362337846787009695494019198448267412193481280405208546087612577558871967327244601378292857819982448354325955052512846595246124162906726411153966777508210955786341121561899171361427320197892736929761600430400576004070109463763128575929512478370043322061559940105731734563814530582451521695524776411368782517521154109052901661515001574835036626733384944525424416529036453722708909590151609653643687086689059933681900193816521784332225825658173531216004098284841711284694810118429573074788530996865658113953327570053899691987208852266833281729248530256055950880781709108229414193443655300632336635460371995939375323773055654902474441289916240665691710415537323746587501208219114781267914921208630760073160288723576832010755824428611634674510050056451891440554152756325355597333691189218610656731466392706555998447104496253211386945449853368610140742984049563724573671921281976824497829163428722687267550636371590763094985421116568756021760414444909597865733477148544864993850427943047663929518111339238645428867443603364669305630875458833596746172237964917854738739312052478225846402610101565491369672309062256317408970866127283200046086901842985305414210250206840629876108304693048652223754685841756921262805595408236042497014841777833236229808035727061012145969518000945022395919738087675472728426747173631759077158533495793965820131458907613289356234216490691066301585591919979386269119724024745674414028400135170014593115862112485365844388978191818022392773225718744078962115025648273285096061393679115807196527752104207690765144326935312397243694109781246745618045379826565451414019072471860205937316281180303514128084859233696139744857850760457565736313334846998308305600529265470086551156088067093358017786854914229187002687937944094476384897209220786210077389577944524374314544979479787113627926603427451670036281925049672403710789513432034137631755349914372625550095438764820786245513802450117546968876107348974124987588671825934766941667980958658186432901374533215923372362466841267027019475850059291258992511804514202147245606520466240987680424855288549765785774861131796017586458282847759596072752975550724467097066477538550947686571043537354031257108710579309721981931916728428183234098371427858765615377492473109299233561412766033715869258114317151148490950677453601765801583471099530275336566968276683860342067596301238901635654880907593943301597244644186982784302263737702335108224229469239506539206287512273035409931417526829814124356293280613989943997903130941501548623462782314491781313971104132645560680449748844139594768092474335844133197113888472749807118948204738074226470287201830017084784259398586664445024505407541086327821722738005374778121313248411290058846707410803937495823487560811294356494517321713174092732331581008283899383284031914264433756083823531610430495290064875845984374623060903036899420709346363965608807541846947906141210861572127267971291887918800010134102190656045886177796631290843391517296804607307164461161419565081972336230459668574915284282853830457615345861724191550591482023730570892882558398364160560534106587225068113380695089229603244522121481570927488400252601701703533874836114229639406470179519333928240647527255204599823859664981335425625199621662939030960301038848191742151225481910521783808108671897810863943419302640543225787975778249787538603244300711618331431292349196587730222578361988775372475233337156546911232253531499825479331557226933436821151223512456310185321213392230607832657035697351500708169596245353268596142069366822265334017517403599551201752883498676682405433262119424559358446569959574003286911332738271414836605625600638640109872752505091138923342381484077254697644390605801627731169636915036748789051825671273515644585999122289280789464788636009817954094384555755517674560991008033125496521680962800933232582449236123306860565082861703513013176470172202776806245476514817420760222391080778824129415008596134740601383914606442369847309286789203867631943293163360659690345158559582985216252136654599966006653400216116054045653696606217365804063927982026153608209191617302509388437792465578898968881747827710431469280032807823160412793211144887511580716098149170165019162118313314465682939869618102532553211799059433903539236412768538530653158206612571435771868346036546434952562653229536312728772607218781668378664714429538947027232802408550909950348588612942953820073174039575660748302358835664700265189086995778691529581965292750879270491944418387450010023835349745156711920158325712711516724008289381127763267462846884726046981590104475462282148108232244216310487342598298212271748700458984038069526783177513820887812749914746717191077261403394896507646651791855770505399496938266404475880779617692196296070630964434456708182294604874513933414923361481537192880270597651485228511557011708729233641376223098290096029218946671577966629566418757929959514111436778046465897521993554440811724680687160131178066285073260756550007393895568843521401688805960834123443142575389939203719082313067625422523091353401621171539868632142540052872112959939695774929815580846017904100100029675084586958161092256642313162759159368111644135662457139249012734370044431698975846155907718751057775264805224580144231205704146630408448638817753853571210922687449382650412708075515376108752675692114588321167025994589972513515628748135615410486205448657875609539513293024246065421046331840547164530474541852146529921063147960846997685366464034880634747802290713129726894695699993557141494292227863344238960319768845870492046728484663802633787398212670369078734565646078503030429671483099001493627581433374582506839573414650564975532247092510659153331398723283209393026749183780786081296926459073742028412140858617433565189803911242066748331208853483135392795322030129135141174356259424867155806298892972664656719850140046370713801477697961509515001828410892710202040491126892843317961904987375305310758901609026238689120710860152033809092196356458358689842624751813294737125479414990312433249794670391940319832500520871466324226621440584890160206127240685477470510164290251185694077100401522375339782359042441755104420203597900970552433018942468627008353826128808040288580021571661413403292404161653701174079635628875336448414363620332023087440634238821874779352345189510923950848266471717255596187995964872621035668894281549414473251245712832112334781878123683285568705881351619613028095602179011786541339330331546564401154208536805914178975962953399450596574750464514265013114926956933333193861750720294689853950217954143248375027480646376021364866469193036151289014171183684915082363143214951070838360290074605988742634865224243334959050752950025280351625269729654253661803260413136089843599729771722789303366184019140113459215834273807263776602477691155837071928777080329393962875829435146533972900613708907269019543317288935528478924460854411232813845704762655782110387003974980900557498819297874972825327283587840277923656084887502173614125412677061827186909605660863179880143793869133277800156447778164107051598038078864677256428948736967597653077896664184879136915590592443273538840867662772334698849902266780730810520010944163436634782916824916425772204505699466316203184967771384312443025219243093506159257040005418174629905519585358994268228586542943332877894321512898186085183426292389728638152600962490956806122997068370975533698231475280026788640866342492184647152641595884250889702511077205372072453714599160548088336634950181974307888375407836971434830144813234855139409475770965212655985243109764180438548824888344514048023145360832114050500831917976763069922529799480705106034394395952523965529228768152437452388081669440987148778767783085810301185113122152602643124032930336661581506280461140320160483947903243810046197607782628330786531173193554012403101964513157054828794068254593729860913970330141959885896685953779107382855381425179380534234303154635088046966352088146736554658429836257214385354941180312969270017662188190355950358477411242963755885565150076463405563318056907819225138481167168998210687099222305636723653587411313160213323563737759209847416596209331013744237403808974119372198850739804114645097606857374333076975931128506390046062944202907733814007405425229906062618463045279879809054913137934980501434745738936543898070360938591856463550123618845231050357094607867137732583907433747361251512477513984690671324127046141148379461179780604952511481662559785754844694377282948641616943399850324243463654588782233343020373615679573478593804278266060831368625808331372671010208093089761834099598824850056882231064853236780377824515616224662090840944364432600840054729219042545985346501353402952501823979681927794138656698140215672464100561955366818868544518737764904055007231168649765449049655231572586348055590348513182061212763982547905488301600234328197356859258521121841792015847533893847963217128284484507964098788430020531053534639033903990786645920239090603576644436651832702052764872388984303161085461185448662451073926407263563081516363095387577195718620394131970951397743962338507413876723967279158673956325232377829398334689688359440574163742324603233479905298821416591608014903510965569409700970959926824820372621556346043370504599505611829155221167555823473135011018509197512343067042866119992872193111989413708394294856985271628078340118392302492997256232317312429863543394905860944896567062675929939528439926967406135824833291174321357292481263770759240643905315720943204765762156889899150055232690367582799727884578192122269553398317642787647779481934153968094012779143273300826621009365229536071250745429138341221884009681237695709056864697769730745918429852528692579530662848369125578817896931229043260916259559653876324215805593221739988608322146359386529957026641951683390579440673896692332808634049907039099495758566404314342685240178741349664673950500883260201412490455401534544208379428905077468384089935504152893247623689897273252240107039104783351928256504581907973427768180735852927744193129396639210811265879457366708571319244096035671479128504280621835651005359384254008215710620880972114736150486991831224164823207775352483400931674889431933388945407014853728702616792658769996191549896169322077084570602539127410098136481831513362448464995010621574867133681340848616249851150835231063713058508255005169695804517000723026804591522047129220346859231090988989008499034071444136022215488864518973886611440137422397460732459434321786742396951910226073507513435970639696754193787912580713287161117023381418058384470713048192052319268091057126423413979093545326295516384925983973921100952512383311505716650079607167806022896521567921161687791489746217199863185865635643881822748717385530035465435019799575747097190046503576187700770926882696891431955908449075911044978228293636619899069294057596082042751734509294061094611746953364033504969326173951761479941043212866315903191632837762354509199156050742099756750459642058334691322311827233585206786683379791969152767958940034020289995838964384992927931477167955293530087893335199456923633133884864043371550478420475791428409363763112399678699827952789043564758505028169258043749125147998619040946580949665882030027487929196055368395837794571261038738136270365509117609958554323583313708481620767113472453498636345576250319112314904004639417406330755826146183805481544500135525713323699511233381609537430940404007356468848648230365415177559331386450980166627479659281755896906678412046198695313957147294191236566679378345548225339708876969838963542350407707251226696766387624756924429046166791471518825434190634860543650238566726170061153647327441527458668767018201751294545171636765686431826652948007648342778935962995038542350983656363788780539145638448976160563830019746744781047494364168148550190494240741023973693942333894297959733437748144355097606808834326705205725034692710990745699215185896515924496184351752455234791291491176193820687294907821261510736215723670585539348126223543912354595657554272755354250076574193792671677970615182164925775915523499682827653009363765193196325811004893249637761479879163620174941816143342706987011047805042647621328464584958628339180770332428156492275174182275241613644022322479696174556931039759081442424636564267574986961180184261614010668033594271639450847657710777690910157262157234483931219580729133707635576295542871189577727901635591861188321343607239243896038276115800918409422023821745139248632537205110144534618008986258015211171757924788572146241303777412477636875891225903483834062514953083281753355458483256338567906037947542264600985416142563188873806352312630731665721302219205625260343110142207031696940152681853735527005955913947825196853438433329602987362793433102123720387582905298550916447841254449683429990809660073253822369340451135579362283197262558556899345964920704622333789500345489744380720449790879653216835043007088756745290589019120027082005553805151569189603446789139706163997143836758259343463889233752795870203559185507058899659787575022288682303280876798404414828500784542655214931386708092479814089976172899795872954121864849588388404932643753556046608991886078995729370561847479216845961691139476696335691900025592834842147037804015068027158304304356408117953952209624343956411413321902809710911006188070677427608012248883715720022762172284543047491757643812122922069090132449403888733492983203579928088717978876938560990614156359917137704923762605535357667396968897298641610133685013871320264672659067678451191773223537170063256415588469377668570553275933039392690793962752374066532999782829003216802395955574972229025146114899691501804698049563331327070891699048768619360201086779412771749145187369033895584524498378895240491093417743469124650136443497900002206590122189905664181666678340569960795696787521279516840595568264770555904472362003519162332675221903464189100717476157382385773517797987872020582047022367127984605390085962255690127896527343843201893111177524037429596725165319185406146321969700656536915218940401870359645531425203353631499623895397976778690285506054438695765643630815368299016340065497907370680413888808315729044188948121222467996750165126411508705437657521530604202867304916363795176652095240862044706947316428490031906539489893522188802045694524718040691200574026663806993582439580252120219600445018729905575022898597903119070425374772341719543531885118351056173615161075599453198012663948718052701119255030443770707441219805114226265545353809538871130706395492202950590944137336749806758308220356823706417766749626397230219424539656894799620040791650248611674257427160831167018194129430085988168192839061282661868477677796038327932988361707656182860041110782689739093454703949002457522807763986597416902840130482899785290177543053672196087292558820738723885440525173151456820654985570093092384267076713666794299263620473438352293426771042626306578133824096813739570831426452729932716754577634734455598362362247755368263107807685607342046062139218148872398411089427984310657799154179118176142467644410587215438436836462955534488896365333153087389047422817290816302510698574454882804816934416181933299401740285929098407265871265367686700011266277951201279032377942716703276600333411367655042628629077625185203839771570619595656704343165303072191175201806153302710003649724394927828683873650323622775391844305747317710665412441328552587754038669073336839746495953811850224238075423979092848827115607118671901644278843795125530680759356772444817498956440002599723076518932789589848361786395816167419050491939017183820832572032093805409963134441425181890843562916264695283886054795430653006180983005266118597712156241397555677878547434887479099556203590818223057569685020244839632172074036858958356153209389804943559664547236024000750843257289702596369432648143468514586465663973333337867021099101783342756495384133670291869402420620966188748344723101992964646622005816611771013717701883558943014412809203140155104308405412119722915069575029521280172317553646148196041146174274095198604166633171578971566440184617641687832911413897855547022812362380756184863712789955408908331263996855138489255172911084802730042221417578519729388939350043126878060877485853144980671468119914574351697912894131750843061052967888670285512036226691539098607273643907922090668020670886496727734524341379882767851540856670618673643910834584589013236781913520174773207505334847047315655896667696317698536972782833932941069319766167565697097759099090073512302124080709664185441271563412904684664687513563227999718110105168420006619879651203310024303554092611636233838036706986833419545053124497802174919327652429595434624496682592122591356840894378541855766147765056332962922461526877041618283380525474319601409541137035840280264286514724539147544071824302952224571931784635406588726530602475617636468201961505597344179444658773000813777492534996480153012348389329523738469736527135645165866002246679625290651353313391686467668801370063912904310261279065850221350195322635422246845468084948965007043735425165598831435355115595014695555892149625332820120713059574323748104275653255402034001082139501897174537991342459287153494820333847787750277569228223255223075162482901433783016937867851802160315567749844475678129336546790701761805633362796812575563732763029110353244265669571189264439719924922515696744450689108327324632715622299391111432109718148817354027538686533735916529903366509487988133776604692778953287294848365675719194881535909683478273499159370281553924678937045301018362420565056224073013904744616471258979438544549381839502674665624894918798315181552554550431949840912067097668755542726557953168291909265204972561618928292710784604363647224047422991267341114946930201953069871132144012658161412813799589900144089175826288816805344985802610390649790242237320817948443083110759837454819279921434981896160882162308738556123833579324153824042731745064158442717378656536500403061741495376378869734068895351112585155430171823464329235439239217901107542989455524652452412946210872894891284495828651190400310644798191778060780130574894874523755536479197800207661130961401466518365479706996776316833718814834982034439689388109593077025946445228125241413644889813709371243994825183535017993424590518657487022459773191967850550031843079970299542717086005208942526285336612202578703881173069711155250005703448656537938586722899546133874480206791638521145549111590689579471677104486374481811244675508480835278589763685939109963942471272643749906777752891283488481882572168031985103421537208767555389342104271207420096188034261876561602312653778437804497402362953905144721477333403545989368488013881899079276341060541015414314212261140965963692377763512273107270506914454143020116121466853934444923387057383277052866997179201452083220463978150134292123830210361849193199144135602128230205833139577747605380107308167392046759801566474943330099672288767595504494376790943682841879850342498907190570189138178107005943109167254687062804627921303401908477030625956735051393330052967248300977728811506435913527363051156677433030651504873597224075454321002718248349405099238581306844323554530524392150562856030003733488466753270552509635643523103111086749370021724966305113737099018820075875663192039400054974730658037802326625436827094554029950341628138707606159885689857025320049889826280080509551999462987841311230828035854472433851658629218025858896568107929004798517087670719199339438094920999500896317388751602393561837317773745174288031719420850750352078485890151300374864162725439913570146479731529696125209014788464089834956365545914196859894451542693447054976236953803174513269903159086729495833858009925137380358753888243361097179200142026300867356458228033865081670217186151642048651578811642331969712129180179793556659410932417863346160548056317172183600267504196661965592625303980146849182027947621763711282123435179438334357619182763929593099670325791858933636530919650582804283571165587116853921409483666608469496822943313339702825506522928888351887340480579616447797884034811423283931704998865380545587467136262332911891999866718290047231174933713664687357545137032423353756038257902966493804168004930869362803343012194355392373407099650965005749082945172136782398871008983808134242637141560927551020700728573516979734586661991832324443858005772663893964159623916275201766420622074302778649710722220457014265458876140070894186835517324182144597282813766746000005239909584651219814564861575708978603081546443450671908838405901541268385103597403513279816513932278462276918176902552556753008916600124886607540246584050465720419830878632645060741569909132692306175956247908619579284128755658732624637987521748901521806103828119916639693762964200174221285371499618248212819880499279306653439131216535365077048621256673708463809768392840200173063958589636444685366012703525151378465194370860531118261471534609435603107014906151709519280673374485588212503612404625232553556250053205895490086295567762538874961484971977737011126103029977069798330154149225280310359652869861828246081666905274407376988743522373745176202223218266417443662197468076713618973786360959512270230109871234101753704423886679238746806885480243071849683227511912975014319672906118839227324982468851462084452219588263182090790053843535289113371881027381662086389692381619196637508866106470550426652827618076147442148639987393863753963012133985668235937936621167816308059852867679495486491838835648274067758495312862220627968834213682851283946669478795888596087609297109925519253378366060739499520376646973009093909796893590981107918882363543257681038493034106069347107724098332635889013498691921672253340351434477561108546610520782267330335726167319144295719750016570523039643552439367004073940282257631782906941896727394602046942375172078853935658637017942504000652033062668107730879147862750124525004072097408312878202742755970764801061894262120317953405838651822339709238671114143828297937007107516113881351376654027841138724208154068528935564002055148215121671315478708173346529827497541406896927925413942500881514128258204095948684673713998411890514704852923026755271289710078898838316106882460170883627194017352773941544937507415067398312865777103783755584065887691302296308354843752849890122673876940566315514515939719541828115564397459228065123447214279364892264939210419689790006518029507440888440622769420346501903690860521241849367432863875007103279682502282954981630145265285010989140533524647464981828457168310259240432885581904662464233830546550587351523372969868770227980061474742014858856883667523803955515366310786815510884621729760976213315650675306163350380823492704870353162810954526946537433728291520572234302198744478927895450088737681966897944162227509321320754101296855062683779859404556540508776817708612493935626912090238132898259079218578480329811337347486489676275689842767899983220538112861271302271177401721029291650726821449362290538724384003022906991459253448490229500223183375317974235093313302761674006887158648127705750146810236095930693599954924889215884987576881477453820071068564564871379043489573467810415722832451815943580417644424453168987968795208389585453090314902572994155368198691267570668590754464040909479988616117151476315836395426509978260355206764145936387773134373282519435740239081216828945690654220803255443677560046766552195173271861649429458908057011118316525903899913922637958394817371615243096330452018714948545084394683702649861221173538588576435037589817184596682075031438325584590611425125622510391611585757519482285601679064188639554435851569966550688573081375378091752388581004691596613715558371752643511043152284649724285946843276531881795887603593577376407391141183267180872887005870485766242317178226852420975040532562311222310350986814168500950075882324852820313894513386258160837404025506559426224864209696638235667661671172678660388992137894808788307404820514852247689897719041844588764684758224724753657473611870554743491577849873016840409773326780242615215299383313597977989555759006249149355236815518463047659566728118666329041201038956536873955848826140075787987858960520647895497318536413312771130493079642565279527946931189144505981896201672986224932229353279690182262490161096395173949727319631016842411384021733714944832216606361956429833468699022607302135004938562645766760056250597917030662723539973413478093545302167298039695765127889108366341150750211162961547794082337597784188525587014464849557678204726981101903393406296487938288457490878939922051794662894986430142428012879583780557571444035157219706876149458820907274607970738480955372483527106966847499924994650000413574549214387777000528020419988374699116878106429033054078839316873848377214990156493269713723565138356273743769300965836529865838416834626328668065644317836976444151372325905644835665532227789098325117797897996617974723576296868847361476912583275152104886123738174903603472720798227583678973492408667765550016850121929962186019388382703826673822481881688275239759167657536126690660257990164486993086161385638875436481503815403996659412344110449910463564889161616973745968217010370257255137733373118645000871089130937180601244979579918523840406558265780478410538509483846923532599824825123508257670549782623572444420280810746470499033549712019463864286463263978749012103060622634172215008902846106254034721649859162529372348503853055579794733665434973152115155754811710990355575901031227635699005568448762687527022655976907877958907932325268553927814132039585483417479785634772618679659943526891150690726898953239377035438269694043055515409417486753003056724003714996513233444482292303886102087352820523560981134833600655794123143766417683092055882828458467730947711969948374941445078540403971835259936806031899277905282537748481090356934858304351728248119295191540582836339947333262284683643653754226745031007390997044685042911504705078041613800444420037930620664824040112027218620700963211595612479779904093830965385771027091877632470701370353350433824400375371394106999740936306786775541178336398489595369077661875892719179035713976589571456750206377041220702375705480441799384332803227195859793613322295607002720758479843032305645330382348467805038515814091319795069572841454112539325383302369620341386280375181781480964001841542159028455449949063712119090212385004265818177562783659224971453368263184443083667796581619445491261459334391996754976012867076744808236696212438553803410338920963749426266776129932064566597820484399611617378415016870689995298972691114653830156140229930935353868525130325968005463975183424259746101601324561159512609912163135943637203411437164615593497767465916629950343498905335092613044941610917766596703232804808656863153297053210281123897197427892526717409505295311989042618736939413211981664146953267167022374355658479525063942790418651006146122506874763971069916308076668831751346478760245310001714012398705715057011119928816300783354666094000880048073167734091677648542366395943721363870910508999303738983492868710475304953361118375592673902929287421397008313330910008306246183835497082010002395050228499188200676453691970217156389458102670221288196157458787907258511425228671605985926545326131557943523676279485773298694790603984085074526044310196545535871782553873989236698528759991258670993367487964552363314147129218473877436374562895170806791248445636421326993254847509232122542478617319857130998727012582359216988787595337534817072587905202418494230183382539253417297169806778629950013078579235885817199380082485848834192186273492273372417383763143199061695370119191350571260893577190789479222433609971425007426533886098929361752963448069923671816940610348599391527034039060290760915706613292593862852858249188179401615863746714837204866035398243021482423549994461688736931684311307506635401885372362876878728316650222199853234672092822995875481777785766021112925242753270690143837250587672279653393747909287251736452475215964499584315495073022817024122002246051998408206399688781059671814919941783942530155134363079053547402766415011025897835250967014419401084737411180482805299392683633838551404460416719532966722759393117047922778439878379124658651381798117973531126049063030820229772199043457921718131761572148062058438266025737206017742265941308646872590546141842631996999916714356109374658465340163422005105217529408324143649763796660261203213838684968753655496021597853986771315985677843163427354255002914676411559761486334981818200658068630177737855245050594009266550757808171457179406319010092872747724582681601492075199854271520736850609165673508547131898523174174623460965198261697487761229433677679136252894284503650835272852304494518696976644030842742744952430347870522053239404041512367490395962929201404663433524355771462938518976352628461145061514358634553634370845461365877495865098049761278198428518247953729674344211718678659902650648524506340099470077033045169710708908849203428798488553246078795552354656101945497164561973691427434926929734647998618545331647752095308523356792028553247203300462102128265498824986720185059828343785827500686023149846681199584506475898624139207979855342948973524929286104773138244692458781491193103179404939100899889766332040111591900582834897255067592649464560650446099729791090506082005017271771101853989840590433741458592531652848833106713249636418206072257679477554639542984103928711769235873296431225716615498981357209257286193079612382573773717003073177482433261496415902239852258012512822443216851867812630364194406391964078208013506675683512432944117601778956274821003934753583176752897898168831447628384986746526854211286320867669199156802209821302456820442717063134865739407746476064091193365650589618084824824048921078211589475459620619839403890343099668354451774417529545963283078214471145148643477410333729498650582437311267915342055987859495402401356037320699302393493358648086807213437584639818590818367745710688992061542471943786371307235408215798206437845620659627335531766258617780624849883370197320865206232614073984124255637234035275157261703595393279851133995021920327624287480888986077667014377549738054154047855109098691021653465961583257581443434350348740656274083261638172921469801229352779126590137605516287495941433658734076864471294071533638045683226823333460739806559237098762352461334307707490304561904951305840736374586217182663560988948175099627550933265688996712049614441288377529585960465804878260941455734272822462494642282732162651143627781242531645125977319707030452398574124253080457879797242158705474943800438397304251473641504973683152603081704359016640334639594117410625682805932444343071141607779604745827604047093230284984747503821426554540335216597283812362833797620215180804226686411017418331951289866889047261896419928957498072173197435629000211546765032033247645585174636424022503822381485454890667941255972217114003743622264042844562493326304793869525787619428509534065264877092070425921336765737053641993469675884838099904982014829137283852306522204783670770451773058242578507689898874462654875696422965304789595343977261707425025925271134733959551533322520720145108807963443815168773241644256512522857209501921895704226360074142076909570417640609645596581354349278068706455309012512729979244606163464540360515754488124299818565270759221194366082228886974941219918223450849143818279481935064605583728758328144101730439677346505561561650236698326657273004334797381739054290361347138719217896355540666454005660405791642893341636022610824433745153246748478450969497567054424735664728189202279371416266874684142814935096048137349960149168592873144095991409746185498728825134165043658864780451706357930474238953259023404309707203724711928317202891889352165681789037290727214474405159478844276572160751604197317044122329833561817799531621585702774885596089943410619317737354712736218983051035642601158071978418768924930041839740655111072960028466908978289486366223369760293933324602269984682763127892860311839532451181249512815390858544046300192671341514352996603598517944086848416454557512171124597566269368801240583861617550802026168868128286312412300627529292199509029367767180571829996436002678898408667083049556172598616411536119315787826822471289489655920916729505071286679587331314076869725046098844631300087490324247594090114080589334506001653145683385804658233626668128365682268085390224490194852556681507579977109456299437153926601031734237569120029915971134475081215901914318452225754624804979263337612892681870267275401554285561953213726743690088551150757601655533720420768281303308407499185632541775808291429238035905645367881068707129070863871109717551819357656134649535764432178365345747945870929073569484253174508055525901963406776868215684303903739560246395079198462275135660806000086727099432694178726659879984118784503564619734072654673848033053643427474574393683789747958154553430205575680239110467737210695183950014880649267698250978578154416278494814495482441727322539913833555557589240951232069527181766162167917145598632315116086379171710467844711118730418792748054379438035263960324307624783468275467288811064449849087200658658110638159559113918472461522673938775444347305869359597389144745566631012915922862000295524883233466102002972952314518836245581557111599973501234311489431210582992484161287094476206390556799860811792275858644344153968739546193795422405869320994070553822378935508240309303692444331715285265250734421588363984783828769108578637944514446385257540273128893224033390804547001493649839888571220739483423284360121156517393243632259028958191499985346473976891407858671339492705323157029210121858130665747345640742130696872177876560415401475577555613228754978914058932438173578226609397807133033461830160397778278622189753781806535545372119712646710244402012669702760728291093982067130721012151815213344028867990856411271283566764176324122323356767722065980771036074288045994131326880402655160449184767307699554557789583228509515908892600733567266505759526696095829140530523576515426831199173928753005937931971074719131482877776194827225869560027195141382340316919942474724298588314239064948753098154194468594034149223068014075312712907978993165852514096710118917660031380705064272730045000579663270037148820826815148565135473145634950200197547025355318293254536531922935477840583764867591426948783630940239171830043683855150852617040893896897849288866882481118049514853786703149964881344105654994895909584786852398987410149532604994530055334453493851083884777323588890548506565033648866520943878300042049448721969788089315967829699917342574435358194519995527663850042254798945815383390745852856064998292698923941705956656804017354877727078825849226890748733687461954962789416103014567600559570238461703672653852083992665649108244581994364023848365539045044471642851355288232794425298862083991789796330962254145886842756116950130824700455338486584807317030412591508850435769390685476760038977584198890848112843292808027319719814246491629818902653937483967490761516513889724704553079619339849749864007187387955418566256115114053894289182251864982328028448091463570298332841119178248567192599079236855956134079177437914364371208706273495590536979660065884361233833300048653847650195049188903367615940951475989146190048147539563889428750507225891742931382430960305350754529834052281459111596211143520309021882459367830111604317255121265128777197638281844552958560397831403199603629933717852072525367402882135753380539907793456535345607057996843949526587173649840044449803395898190187404143311280510001066419538249510712490455842710796503218848740296005814681052009997701950212906395165994417375898654135882766238604444118852171752730014565865692011955824152960342953802248261187114564220258330962293927154067066854425618774177066011531419168794961839188717322549543069654902970854721040864741844455309711258965660623089539857595088743623288868232294544412991051070115530560494647865513861688915399754513363285163432403704785994074642870744227935441159043320348620084821022755674474697769165817366840642765324662562115171550302792976994601519136601740913846542069408958844415607926827265090879378952805731246273639592601104488004518576973805995584231032672229118788387206551570715117127563113704921042625932112501800047027947929523069134920618284300174173036065502496915416328199034590600554497712928811594365142254104405129553410929214907022883666511473942006893995298343918438877148556685687830793360665255081153243386263432308008909643452186739631873035251075538649966727843533414710339026812174980165291581393340369051428913901748511211769327882726581891083634118466970156926674349713896404181372850097993082999209146807484143484402822996081825023321832485085740942817408275343685520846619572401238997741437659471724734415234113160712070838174174786396939050103922510289448179303072149167004239052734260690944000037857771026100820438910692977722082067502715581317932728803674928081324382153334136100280893546672831481002643400912893427181092549741894297865505329923064412799868099922537233404735589981740453106594120345961438090176970622465386369468421218448419868048167342913526288625865761464313109524585344900725376407314290374251998144471331493324609864520554533792836226274208333371649408239616608120644431809850638969816122954179172928718462534940237664172940467999137490764778639616131701466345287267623942268889124364822573261897516385138856344144556549263371115979320907243221766637828464353543244752788374688046902750762595049770554311116804486505228678870385852632792807080297033406525996296414564378085813590392951075760664511475014542859095895589291695655082158319966499427786440658364845401903490184849537422887427384759744538922334026323801342451263321271611353247677037298854022848422998041830929619139032297528754546093444350799069995085268592487185328461903615723158316432777138317504743730078297375381119213201795428465367866042143281562150952348023293945195819657432789365099831560099289439099093457872447765013563587190426766175408527750677900740140467167136871273277111110644487189829446938605725692246071170616749094562006773564864083594361601191237897616080719433332662907251704232064647867269754319301026486486401481026700300624543930438093604399357253006003712808081657817099283099313874512504857004258886207065845616266751821624112557798499820981352082145759508911815581669761536252290534028068925829095343384500820308071959063825317587754395372444884318201389580214374628162015595656057460459781011609804132456488308570264094147566600951593061013475886825714510366934838406001870390736553357385980801694500080048479752820492440503684540038268638309863059919075522345202397131121695337137990665952825347707273758268682159714395639456809823770259820593260908659947485526334944921262584401660978178470698456422558834552505296829928041949364145597505274649265517682809274860613532918985210061964945822778548979420514732161051960300151349441603852749787245306873927394800458118433095446993874061805527530100148663341504148048863230854244418820888024921967241855855887086785125620520798074888510573615894922701516743819416687885050535377929670382645676836143537091160344988953246453334522546920604604296638281635139484334956743776097277034371028814133061242790255495513010796484616525325907628593027927412041833634293802014282389761234527880703300831349467065784855395639133400097435514785587036295108856971973768314303189677443016178471364770318156837523349677176841036750736476913295764396048405188763486346363572438852641376420685293193146699897649863722301818884538460337391152095460834423251594789762737186351719981006497064449519498921947378331006801464531734335829374026907069017393159587382645005846274962036000988537267571459371811808924970442131878453028088185147070724730643490562385694028832518562231214157661592071911051801185977475851599360274820421254129502344128432200425503697791757381610994856805707189057013576956982469249205447782143320739223914146296804310063273790991669673553152664009027741352820932435759253561082151788543909756639086685173944509840065584415679452372580293960972665189185609858063481340972381448037821601444992316945101060914841190288324790731841805212477953035273118515461322487335927952022802791248261374448223634831551369872013248169292448382662013064462509839540992565623290197693365848696584898383726669252722055453527054655052281900431845399957236391983307888658338748404414348116171244869953418910701498155373264218272193854872992038713879919414236543642949137577480692425704791295958632397621254618718604460366806731026073188464904132516026301728688768104147896422096566057661430181816677815934520217864772784503424255994496492166628915998980863725605574804399044979801589745572656572305097620367202180876447986690978256701591261427737175064888288565578933620664996293581899417788960019779148350317271875874634989705727120515220202662231607064243152446119204258908016220085155970361433945071935038009560224756548473730182227710718828691849336659773838701381712000186491891078870918952339318695074511176036341023093954947742192474494713521120139923030286696616099744914853151375381968392668301664700732816952935881537466704608072261790415269228832634322802833604462625085423821924167526315620776093405291980414496097803834225440196830623043279638561757864028707249201987533665428160736441552702662725311861655361599437979196286155917248427269771199190336619216058108979445098905025354742159566005055478511773317225710729645825702173517950073617231815651228263234891602144672228362897782254385880310355471743484323103769605983408934526992153929233614883251022403548210747737799835716361623181093533517394463350574951101337167998847445861801789413573581945038792660121079634410462674459261404598819030556688290078863841630358870267074732377855309242680412921074349696556629110084961505998954476577887386856533337600869041831690460845680559049543812408752658643589544273939992605540312307089418400028830990469738175794793115523733308130758667290902072493990751086768369472102667244169323339952620388446315641445444313914254418831165465735387087447610570727978994924866453418036848552736278803657854001594787573122561412938489452039387035897944026376840868388054805446511771376236039198616310425042911985650169889822162829818535517993490946406841495222683432369168552852886296370645356410130099436555962809237129997892795413428034175879878314711191214627421662223584675607012243349517942141611127635868275854885779815548863419819667721196691511833287545498733611491319066689317066663873854157425896065238007111890605593170658991543247780809426739566824868423241814879399774760033328066231634919638027733634234697804190458234501015179277914245722887343328232245140333710446329743126720686310259171382801830169131651091696507236919357101840983867825569793577697368043922478929996964664755379329304413054625448768476760341150135806129066170663992344964205895113659998912687908312180415056930953976404186071917113095018405985178418916671482805892164892160127939078825272354295651415741876371557705296710062505825053395040893355688663737358443202180721506645211656040969568059470454786570479476288648921708448358673452969208194492377766957415085043522948119599557514656550516396707610961708773592889581790913322203416435079210473115099423855996710839865664218484160713195058799299846134419330523237907932440599716320175500914567500833300151476826555510036558913830052109285786648166068504429905157428424672719796613832969399333003040526090495985532959748765088499846633989260840379833994986693631548606086180135435819009172696560816438668704759693964171952298977994274586443161234875451235741192613334273141100592550584960582881784281942942145792897625177412901644736424145648889812768402173672103100904349108671492184410895420571056769366863142002887408398130731449220704251628849236143431955906180421966288045870258182160920843058301716209412461246511549230106130440463156029537582249395004114066577371488111823852670079548945733629215469667055189286953284935977074391309841506780046034398646852942267137245828822993909444100441282208637256502657785073683836582241027069356645689110172354412144269662969168161170500390625761574770940213407895803172560391100122966318235282654967409567172680789976110247866692775380446740889119930850790839334287124441667993111424467608506655284509774415613307248178878134211941152049060045095408547856746526889782157098520021309797227167025294030296830327206069596912344523778530946772600833248397636044633731854623600414653765585548183215987915032396931813629680127448917200573391101118138284040642401283623036290927866124480486239704607055222880247526595912781689932865426762189235821545427094844846448131228630049322845818499968658306384915047514838541035316242936966662196901968032202023380340086300637033139523174260474378465271063955683130537367895988709776383514388094015516699695039604589040202982006006300672767706910623387168571441219565334372640471309123261573534812431405186382825165269450590179336940743865911170347414142717316900383880676616123029757046162065441413831129304554216191390215765346659660327882880220781815806030407569704472294613683557955047745800248899038283299753734167628925089459658057277760750313954710931471183779072181830783303021677586957788396234456750298813237410563958679579997759158323692539742957593673974584539289495724345896937231625656793834904197699956680364150684999149566662809070396420767914999900146219108162442694619635370116044037439803978877923934873851664178786245738425021402620565629733067962259339007691387228545957392696724280214791177136482003315207603750172178588165704783273599516809515814694403788507157875289335135173129461302639234552160377910207139576727216580989071094792628917600996705420995818812131090868243439604829608101820613976382502195006081351889753239897009192873668026456180638933615680333038269268616459856241376913279921102058829966710547833297027969129620448732737350908142134811628915536023013596235889036102980393663554163832098035028244107265172038556853453964562512282316006720021182809025435510785716352476265089965159488604787424417338384244028514442511632404136123866986995710028998937095027733154073868962493891108420329415160235822423340584880746957063769640946474613860644365570622826842515560337518425846529548550264524118933822795673432838192905023628254327408765095123258290433701592641693634671661900131919652718472182646235326044683089738408196804959562323215435017429262485529059870100877341722530914241780866856648823241200502111138511706739403475643013717457498320565742807179780394280188299115055877148488649362552038028467268944047392598738566555676195805696346773925252439718126360494783792160511368067686867279636783758131669989420068895347418115713553131802839694277964039098632080961438386282166611738089262497576378570227097707732296807635009346955330069349318450183680414397476627366117476530769544819125806439086328463823341695161652352865747581460417219821702438091442697935717282670793523568096275609309621831407440810524916268552654194357086425561005769390607788297685273386971404210469445387774518098964959060315895223100206911986035651725600721777660088209525840795770663708293355817549567528331179560092373583875270367328865137146307398214786981796261068089792812381316746441776967874778399626384082783952907934739808534903831761710420146701094551746537762698392577919625477901048859599033745528451828015525394998124523094989124507368778378023425487586379231570299419541228314239187530742573556012892502033031096289525693180863378386526644827699638093161016775195586506900892265741494931056812931992013984022139196196975381899034910380230941245716417501566950033730313910240012492497531085309811941688566223580479278575931022170230421163569616352606653959080315810798247570206572665985604170903594378940883774081587091897736286545777908773691353205795826478500336520731332589929436299907412858130486813594666170791631421617867177911277682760249728396440385417293193175500161507913075332977878719917147256157518511143934070089097941980977416580656372851850475914820464865705653572044709043365531877278469456521301289990663410133399414416280796738376836472518822039309460659171755290203113473547439563461055370184039668717607456672420946871603997906803053623796753937538141969578292269339952403215817985438555750395823580291723228826824119178283291619674724904063685485394835270095202594406225753956529665667412490616127384166008664067796871312116628080354123895430153955159019408148404151506331923712379733474122265749092863268349825278508481858204276057650288299644849572152312599888560848065987457392075458690763937814982199558029436233184245918859284456299791405196355982035428411308320352713760798123688750840715705348297233044693576686928302684714218119607659652574135203429121433683438093462223045187649102258665155554685924804553265379583221769114913612436468390963663859970360522053892291035354537185689626143959259601346250281784656706678645741612522267752098519305507425705074177546998090122902794145080762277109180165594691462374306956627664642796810702120783070367085976416482691770135656497474057575971435255952865012531880516034105695564716881403763153303604719143315835091771450903633957799419430892298842571505828690031359572034936761055485374313329311090679739022451549010075920904726211179320946683222553505601392293619232078282710209901160577792900848142216171059156802217450968349781334074193883083402735439674719548949563517467916726430180964819981414799639418599916684741414382007303029131036567288372276178414974689543209263483499285809027667039534861142985699801269431763805362744221340028662479984218050743111400071644849768538613592469687446462363740592323726128004891498292816663453224361861449298878361132368386744132554003248384940488025905180690489433355914296416705714583603350194817237660106143856785225578163470589322757732165359689898875123419376077387029757765253598263349855373078112872195941410832884795616170882704214839051032088527712071939181820423178578741000122761602962878691255887973636941572353242149819766769109029174635020397302067787943243562366843579126777825990582054246087488287616606487118122686911579158393826033224316030604867046831863396041232051722391823802696341105660192210445461608654050896868387925662698281851228426895063636691365792752476187056071828085102890731403217639730600403986591126803647209763806299599928635581932613340602301833986560238054948306782341644189822593575732902811649499527140757381931724681722586454410022551709362716996572017779489146173783778193992066099443928536382202166362147125921796904977494347032812216320164991983180498392300244853913641238953924794323228490725556184129686903465438453008647706405305878554072634314088142838420806483454921751578791157414478281132362749041248795320527323654605700812625297497571024146481842698540746563144251878944906492558323355265510626080594305439473896335981952427257020952686156077528242613374024702074056078461910265584687239180477843504397036346800420318969254903375483776846955835041905116821634232051901916589258103800617539281799803546746120003506389668199804765303112688725316802880581921578825617863177941011738126473142347900786218179176031729321606205440079249937050714970044879604499305964040123059341263043392510610338387230571777156098958756459812174759077617274778903413176436064181126030354726303583399355814089822749171315875872764948707624801643280782018604963492089314564457381684673562858072734699751283272930192198626772008250535723563608881162644817229193455734252736641865691189083530987920265192880639374257974678439150568276588107527276644253767173636882929006152777775193229295501713017028445393448467968442879224666322983296863654848914121157299395517737110406536697791516048150405512832237293103819100909317848153322488230451891578690698153565218879437997419324382447771986195141402672098812791436702657549811013906208670472838745457473921683765216881738895829539527555294618606457891946599546615017696571928571450969982347900357203307075544924600652086738713748994185703009118036497493053970376658204447326985178322523366441306396311652969145786831417189952724995264269775611024784507526148687801846691309054115525249870031397134852378485167700399759869842614088781267091426977195896049391510112917691928469485910682836385483274316408098534126185027600929851829167446448648579385825130142811500373327230962695370386948526999089877778821385847443030984293713703093972176011500843969806779830809710720892427783985975384649694651771056311101720068335134623027989047591593826425392080884117071988062660226403985722632492861413123235315111914886794745055753478085946106585191466183039002343456851349187492029719175061166246707762415009658088338590063932551000636712938788960942346947894933028030681546622783531461363909894523454419167299981615316165100596323999756374291579452280413062032645927659105762787227642654002132612712290675247697211145757573485613229827964731160813750845994167538933290396041267497758911880822192379212206251617766543548713499674051656352252003474189389819521413052395958319069832045458803174153608683445014950608889723898749281662261190305183850814763827240738960355454050359973189617259842142862163205435824013363947864180365756739036140847055560100323592646062984936893279887756458619029842352919301803169562266673799211482961145016560302032505783312454081407461819764988863865752873292769903064385783043658804312016237278763536164039488738309649637392037480425600400322186036149341867268763454432797372014873432964046238472577375234769711540127310991296163902665266795138414028457907960863695996412202132006735554943940663880558333035394799070999708495846284148089325659373797953881410145749765905700693044600734740045932941586501573518095464796306692826921544525524449023527711635823522240422884721501479433368195235580269465141601029694705294326227354771665247024206743600657873814029706794910042270755059250409969374547660914921719305181898586682580905610396787915781126034019596763795280124893238195440435435909095704615224501288061829118500433437725202825697550365034729430105966661754242620736967972502150071141223352865693702197670875617616255221335940427347874158937984862229463960960895037795287487599048090134576893818270435060432910151491006614507629876993355093164403184502622524036401677672479346811144530121972757220167885195916025058333684875192723697487762022725274173615629795315492179940349262516620273971999808362961799703609160345745529086654540083797750056606883158947422090329976200262160322441049537842494205509829042818780964208203682384038421711876815530196139360740111100473384631818799908098974958502619162528205539384335403043510706493235464995823484144113130221980101628506439514516874579334989209237661632625094184641975155747630070276794795618952770775589235370274396666638407303772884423319877365078351820150625738519297312143843787042035284867778755862023948482904038862355691748003543304824635619449978474906166621205044259656019291746210778301259249954210639495051621414784375851082853048026602284183403956553792161613759451533359670873438387578932910258105061757870276081251858443887629776732247932993107305223603723397969212725143261094140035415266329264546859045501037892557404895170762786088899623322332693184063768019582007251688610013480296757580154650794101977458788032419525498034301571494561100868721444404723121851377033356910857898821532540654595705624919328489132796199729226669523061659832037224684852336259833381816919228998279026358698706836621931072846498890831458212543735642923304415104074033714159988920524519343243039101317885687224589204742884609992859824502485223325656922171652566414121934857870597136335099418928706760790185840407226157041258420811506065215431590166277711419745531184671748412267281626571329408797822865606002118511927195187729752587189238185392033924351402063443114700269700959180726623823756814205843328249310453305880449133177685852380644716841559306711558346471509898010353768628935142913949853124759300101197675229152172967884677710905266240239468985966623114054294853389378289399204384904720540281798166722987445359395664088840694624901058699173618959406363918985648474569861286307248944134542306926159227833643597716927747845990320953752566882966272293306209488320073352452329683781606596558347211694348268581312509431864880948114669683743150322150998431346380783219407732304526916837984368825515461001841212162835059351984828269825624204738442926026292222852835497319286567610229231219045595627091182147360562614642469375867963435098862806674452593043573721870993553881549389866523172881576777012523918779717626394263710798352043881408218014839758652333025861197472350764707750341558232501408331869035584316524730942094428392190502661653753000265363791669369303686193078964045143791767727642415231157747967648434149998266881074323697264035029302779134288656650336314302381997022092021136517851207919343422792089489760467854797249477869780901677691442917655903220866603030744843806839274304615342359267010075712024327589580857545256947490636673941255208446041961374854403733639359357852885549344267633183120634787474819610993133843245714305126062672435155264754414362632040849942596664706172779133847882370796477921854145944020102717750196837109011588586476145212627597376987874291086189683417404330944989324008265346340195115596786666848923507024340633329974865737901079486255417974949690382801147039113073410571271893139812642574333618793104406581504051076579804598535317524164803255147772384899722863258172615906107225546012996258192670431810423031892359525161789068254565710402151957013054737124651152512254584146090239352400143347307542233252747796193160860853071244123446699534444778003401053288488907914273866544783811730658600553503271759186610753820810872782392743656627675064476373872317015156285089733685320098391411050827640551311533927224985333729357443339276744492628627588391273206723720448360322163608547336845713849671312003107149546992191026611462998013087209633242978338605438972952283824657130309528178772003684665026165614744587259876200792936939892128200851709776054142734370532236111424383810918396286789595929946594617292669746340577213639387108177897380900645285039699076628593465696527729036039329318362973507029488312600989116586806171146906425330429133509966149632188351179446815709465077241957227520976305909286644228961533397066926201980631151724344862088564402371066554059163844789440704160768163080054841676192925190751584305390255847773218444377386022321317196282783861277042935649045587993830305644593677976918273884552913688790218363274647742399168352944372644553850068511815546467937484359492919913608744120579282765135259833138420967988272216369963317427466407414515525554330459210020703087198371642567574905480568556424199724992875864857770395531406414679875332747959070488203474823009521787573701758906616779961199422729879582724274293836170860096484148995173050952126918445256637393838940832240428729119022220015613358793894196390468114969537335286489740245067302511672602413398288028227450546556746746976501164423312707982768772816675856833380177997209978322976826601918359468811316851301506310020957603602553660630040377434635805370722538605650694011843509638841644025762398553854049608731542122728843406697939599372591293615990762628002646242260725668424601468371308981952208589059459833057358805526836696059527929039415197606975024555449672863270067610762404398422782896522854338608049066283911990199191705180517800778303823297458300795077423835649831208153996475370767036766363860059255162727472714511024158278611745350841279783246046388812719408486606397991203116565090761502420102265189169175547958710143961318595164782909208324008665471449048130668210714579280688646307125943488271385766102875220657456051401060326140031178735428561075006171055947028836669637765343305885890752684650042029169408518599201752963366235821176181785725229281473544245565421239862459520632003068744553056950607808583782599029424571587461447163351197091991237548903992206512478162911267672930594414972409678947734808933305026363003955365322794393742558758071607131859437806211510734912248039836046968499831395188271825468120401293985930900753200808695237168286637105864160562806837522353851588097482064479081196402420646363877057748447908619373455976273068341880768592473598983252385390747848138549777430231763471102981101217038511298913899651197632273365966461366892788672339564765495230323613346252538654480250803165890136560020507604578342805039602397463587740686667539147264156908518769043697466851430114623942730524934097961428261591685316910162305375048346089171980566189637837114942344651327408708022521248793774026298933759034539721084915860414510958013543877960595277785773247867227825506364765529044308221199191153886990000209423380695465635729633786825405170544293581426498154337734111218104474223788823423283758530460564272827907768528881466170144637243680334041344025979863226907027929448633700564925821620144623571488608184757393839724233008179341308109137003774399304181962923214886884772924483829817084869823734050102464394603371210216106728740536156861217886238454057363497652473755311496513904179371123094357029051216805136324496725220610133463350776125577116983237746656758481975991460998180967162603831975474195561343106947867601081767766128118965716921711654447206610224046138895696950943092061053630762593630718118436653517293692598339021504035648056133057227737674247710873564938333035932217419392993942822759225480532221433757201962517528304820625856746618706478518781529781857580451343286757114130657093161851242123620639630033686788510665142821989236711944325353603611167074929224867991955938909742338724532294405165566190582851204446544340699084032430758618292004831068944235012927928705306851465865227298060240579119802239457795671365209398913033918240783314658895132233035274830655704232425121532868925888692058563689343664201459268959821527456836104035256330743221971587368216612797527739156662560045925731999739755463252702732047325899970763183000791502895328605823278874798821729203898905660948339116014457377889392498376856358316926697063098254989187798039965454970808923745898716684855789922779175259287408350959874390889150319961605495241610117095274398917908052473999307812238218553548984968125373276604292486284605902621455372168286372279156081809857058832779712014266323297519727375473623601294445636340491582633607352200269508934176947137372276721666186987049673214162909118307295752714859926443499534485394035493659926715985404057936321481240725232408907702557432960981712233710105707372082586571097844597172064250569526829618719100988058652462679686948817879120129166170058766197002630256858929016731697972028185597632526413276143569982754311001881615415214459369735347178746703742000462564730729654082883778852117539597186324815770272665677261333653543510534608177110607749071217330949027033484682931681046401693435972183538856792110491417893966094846542198856943842027292795353949714492509331244814450362181199900019313325987237348132477820085840361658178601317573810120832167154048561805584891851137425862555678869695529297180639781448475065293537287515932129935681637900179338022423096545906750123073955192794270057036743551142740451933633391808405276400751360405850836243976734109107850844675055881376135987126155797087983940214439429243174734191864165120606160267568692399728151626024072997587992908408814298819196822906380824478143138456224047409464757793145867439121514862257208248046134544871612156543276146890840796006790819794994883633118638541753557119817065425373256093309674752342540938218250189506259977700204460467333208950142873151970879570070274904306376638513468909479148980677023533829903421633389639485570863962130552741926829733196091914883637041502723938953653321174984035335453545057098599999140115838255892314729758953742446306343097719211407405021962990770031796573233765965891073172379761134632566144670233268029036936757747144349646111126685319009686284601382773665761764285222158573667202767596329559492109629991400874382566866149597493148738707298173925574420950604557896785105689384569293755062775404829105835428010538008523540839902732390609126262122144664738337354843450204315864598600616020347711979659690724790188737318190470371072849471345911143977134603291029126749893836381408921155426883253049779034728390679475098501100778286809123789841606917309959786001799006570556909873070445853881115506039939311259111250671032515509984351309602439735362768661865852583674440065896423259815980626734007506671703319759660826202493584139687240738274989220273320288927839472346485082994873436665067720594484305833019772274234068514198045497436476751279338888057170180380275178319548436875446625286832142207300500262900205144209263467037684934967705787280898690976831259487550008546924955354888359716979819042205022758487654318215907534976388400579042781530833890583464566365549507706890177119332617305471842128108292001912141468563533919266397970401723817840098398859092840719439359699891097337831655572991262743184618428631657227182813999115409045997977833104448787721897179682870696959639601534694581664464664059075193684731164780850823730617906051429354418032006148087405957167107730508457812797990262326314390409724012605102307599961336361833482097730071880830246462980279939098012698520651481365518008775980446747373938186916000435067565183178928262394478888483884814096766732181236145620096690750941723072678828832627089887410821337984340866336640374590073727772649128552244683042644738580542990980981764912605575359996015258411547578300729792165075056431527596661267762541814149140724628206850263831834672086602492598471414871708629055684796445215966408595752251271714893771777906864707055264320505265320429860074616097728905517734961004729958244336429112113883244678875724414974946201015017389306517422848134507174423179157559060057864716656145087466331793143372045103161650158796967522342859436852214791595512387259764440215811768422270918953750383947885775834214941892027801608830328440247270502452847167154832599319198403895774844918700510451490985429422578867596305193726846247791821911446651522964030444037753195191782461383328371840301830989635596908270373561764790661974411686192893595811904199755825412880349752836668405735386465706079783304634122548337227788443409783544967480352606758309265822606195824427092138414783132425892807873347624632472296578232105126880483799094825345146146699311139549983293531123959230502337343956582752389175701178763524064536647236076366832170095335052249817751993310524824181322492621990702502085281362449059862929855324030714270821760329918201742690390039436607152556351833369491103924381951991341096781795357925181513883609450058582954634529342578409676477582865350729955466130967071728667527483863889721238723451790170530768140150070852330059539043346771449162201764911096764232889407116946743096639313771425199084383236184346435315315510050685508425578824183040540334878454306079586927614249125181474059544229668825136820243738522200114643962540826068695222791138025740639988005696262727773055348029575869245430801425507753495735932967140436462412390593203098411414027600985624729623244616682653600135231667989101567507168255496357175737077064008605770788127196785564348765681295509209755881282935066126098011275098504709723678186616641943373811937316012514638071840686563537179372183873581928666439905711995492636733385978103201281725828933100224043656589957756014530897719727579068198560840725098324797739472064801571122932481341793985416621061527852732686103755436817017641704381246063954033908234892988289866352966938773014223275452963522240393434756684602893841756756585504590376357558055731007618785706117019734112393345299159278642428505534051394533285174931104412276349774598895019301707872535086091285741280252361483051965449342234933801914234493028238116769414755017767636469134270094583265043030959288995660432726556745124597913678441869525280473350716399029889094931250936815713953507243412715984627311051550704361703135893578490524346282805080872647969280768993544171267821748725479391039128149923167650741814507265122089728175196331852863205852875562174001203137168830868838744578160143804731455961085322976446748054825251715348520594798123284756256125995089085156485319893510993831068020910912128642561673368940132459540477190351184144836773331740799692946914035263845652218253571773166467826316920766039643662712906421971003572853000807304058273043316495306288041121330105713907078122189406982668335789173739564888312014198489256175985909163894433391145423986193483017728287034859678834842528767523917776107243911631332942314002999690439405475514264119240729337426862544147469256567015686310268878384543836383731559746162704255329028407723326011593782186698974199227887371548106156975431766575618881683368824602413011840538443376872447274792587550287496557197317531754105137469323173375480641889651667844120697531977030250920947425317296714962458108495186997161849024462492261740703505182903648169819985528768429827486593265546711723720750988810638745279131844566454032848245429286649040501432652714766644151891212782179514006598975683129691920440126321761661294712643893055653423867300059069101605477563826726489216092358035535568580541271308360114107461740823303955230365121031493763865664174073126851128304737056230847200882309387488877691918732767649775245012614242912751964634274016746945780348097717626625398515123805559063458575848487407209264855574469310642406372071687451673479493365860533956195268930605559231206068107689400517674680409245386774326242804541408931568824315001664796759877622843470858653794600269668135423711802017219535377524858272302108498767655895901865851749036720110295700090946954241168971849789508021857504160710260458761105853568243959320396911997107246832329684622768317211965874023385240090676168897963202726686044597808137541232241663663583019398853627555902223548549694866973659356985758025100956881834421440447900125039194853665381415419059015440113251672631550637458212400994210454453842691622692707544243449197043072505706171780477924242682403726892107660411041326056441561469867117977901273417899901512270205731336162599229525054509456670738482321032524642757615680780470361691000507181101788964857608679102203714843307739594897362819788181241860368493418880099007030561421086493202722533983744802206439343360241116825218972682212012524863909892678406383037028887078793656763368888190566675950663692385244613285476489024279041542341552765661849222877122908588845524040584677218783227438924321704742693743390360366643022812108897865536099870150287543489878923917327346925950228326256134304543963114254156658397768087121668343715712952011221995747734106633281346982902995767393898627936319834171272619366989424929962054204887688822625007909993183141475763093183139460640005959063034591532947888979206085180785310547273319893515911117704748234132903566895659685663880238168637068587302899266405299051178741681753743513155481227592852788549154951899609913553490609880611730131917687414776380614067784630788680599936070469809737370957932587180000420731403945937136964374248446989080604798580672432012404965260132496451806752175649432422163802274329126648007723199198176364828098677298265361796685128840385569288366419088094808404340845630794866989965952030456379551543050889043978907971735546206746509678398819555614974631292253849389381739608760479346552013356085422725560350589068932078311944691942146265464086351459655073554662771529231477584066251115175597706081655433536860966544735379845834195424413345666415826064201598404790550378588959770079741637912913435872615865240448140460975411015196643100916012208487403465945244318145018241833935125903937849594257162393155178797749657809743699327809057483928880190118214221031046637745429627478434367720667740225731391622781130638376943139312534803353723768501824544020919363344404872809920275993855649609609244240158459098345147184210060237359786726144128971871558611742733966481548949405111051292810194207123904821600123275570673020274145570111744800290017786019128203399765120773889598777712345962923819492906331759158884738329012757274191678417961136435830414399351632286916791896979495727130404561894146513576374362140658456521548225125387900367208586885803001306353980628288495100190238030872223324700378881549243839446463519178093975970942783764050153628950589145862729913636219067168212745550466236394095248429510575755672450369791804625692195369334775161839433453814188245526938236017911299041650845653864872822718585445259588354176694831299577564831619069072584350082162758207388154588622889030368095012075498119935745241326691890534602760551680609680466325568295552188848861463936103812740929510672694233833643270435919531726163681990407632186038617600894241219180845800892761131264891058499269234914469623980182937443547185692375053193228933248584775095080467644320146816741363675774878899350512687171955662571350678556787302697809956361153114572573328473705922328493503493989449155031030747542693647772244256732233292499512301838025028200830077580748005730845995255893038265557884269893104520718773095840589290758106543221981182644858141060716931482315273064870697131405705182347684159178153245506291876595454268786767588890060753880979514466496834037132183299060492252487403507064481464505915556860924444308343190098451425801999965461501943758559795647218212989509956518354373324943629268616319971738862046999123350645395459341213475139973961523533770402314474973692851599092319814984154614642897314056446653942887758599236249586208834085905370450232420016551963722684317793700119998112642994875095463309290862777960430119085806004488636203226003629479110353047516982287576022193209517796340536149790815829643179871245897235509337849344147597800218517782052042371991343722853659016200700788664183280369830395677798147412127214295256971018033468979535596353675517447862585757425265957105257005002670696388769281172683390154013578324112052812680195727373731232875774941450512891682859713995555981093881699478804417732068209497454891776559006872130929897272364123932795715678061354289844776512135131217234406706308542752828132603665094359118315233622685630709448809143683126180223732222784611013679527476287244207010731734406492958010586812684948800507010329934671846460850222246313096612972132234344870872794169591321929421027110895129710292429996695405857837054886650360546526445370378871576144432607497592279296639223370911849748489698358360749748140847802944094879112250369232870738803948699871761834533090807852310939098130392667195433079452219396310393037655464659977290466875498040618873104795162545403658483794875862910806973880854184915880917034931441650292528010382012942945885240738458797857404527436881484118380149555400542607873628649748582778786841572194158811652015261604949694769714675739301090720429713862469615531358628453409249413829949808263765256669092265822862232025910841829265366168054080689492919191328181063803172304022699332669302189773007707546593804411031260796805573161431549469668400881565456519642931549748915770259538229829984280558008348847189916863719084271912031352134895562801537616195230752148741057703858893133696676606926335677150019385672876600543878791015424821293214716888317302646748695414485662050953862818073264116978819688692298842925240057725437841218824029640519124531051097959604058791053599249500145491189152031716388031970177654495759950442731224047638322104463438200697591309903299688953090875127605413897738602853462851839291185218344968976562043660261295596530156756324948732738873996115050473916909626458622567881164488253748201647693593855314158666769803056092074336181806470034866613936993604928102177411579711329400025466677692576189937332057766870985617730276774755006219079429286505749750280615147370875104522447512450229536135896560302588958989496131603782007213426495528080993556389427572663553724974294617969145566278329333098919971247029800931279599220346224879369459668050040990981499217276822741346501980277717872770439530092268171356278821996315973612056516999015588097468802757444338092221731048809292638631806743558491096576072825237850094154869850896648612736357341659332343105851673584677431543992575497408659339403268750810800350275934012115717251044689608004431231663840789368738859467721154224897449955923011306885905149063893129118498894285973745499676505323211349298045501665444022346604786702362085696066288686632615167300040434757301429588754178460598178651565312018722009302832294898667859529531648917176583035170446046906739020933351064095820886180008091920895129386641087531837873328342750508343414429315284444686880945598322352922893716273435471440554126896896673115356498292536842717678861910932740282369960564944919488888192139166171016746692265376739367712139186439990000980367468492017455537657902199354793656370726403318154266513994080710784070673140611030544425301489809794154918565057252381077273886349928806090948821496683968875755953302542930054747996564492802530278807012675468332558847701661297311549142995057119888048813561570300490562293274183382909546751554201269840411952080040348091711998626020718147580788738362376726240775298714621307691722215371530563917270474737356243045781700963021297980978215989137576513100787711431158908571593460026719829866360213696517494103449184084763182435821070314079505058624331523689627145276627369213469013431814966107986203274491692777079223137003619659274366877495387314701509371783953698424802094390891181480831357034166134259503924577878005216990804514165483656769229522866877260915259993961016447538848191195150877034534742169096419899797411754033698632659434123860977110852984372727209671939669300809809196538694278721420638363041322261919913324997564545586528932069601299843994338230097748274100656755136003732306544517155735496169042124959934254733200806190906135154085384499034458085438226789775327802952210617112450982173936189069628370290418327176893269725706943050930841322633517238100364673179929951717161906101677097356539361705360746776150637516703494374874660029766889193030964126266924929576851355211998958537437737429903933301658545468134581594987985015622227884088466913226157475015975821756706462268844677679733652100147923177858060353721555429036757060965866171358795900842433471734486142253983528426324070904138024912586779228745061529465299082144815977547964732461057551841051702116433882082606190896968316222577591955825384418577937687909074494846505162546499574969657652276621316959195906040354296539714163092962357898178443399686577262908090983553274120011951245198704472430160281150710849344964504878562056227326613814207584372294665765879763169171413477119658873366526569511023888623666824112169348299609164916036529451362082276666019751127310173639775527337351568199015065288941725080916657212333477251309684986068185124715355101452928749331047250969463416642772531548110871471067129966152818036954019656526845320930673447211071070016055202095347042122816331487195874278919914741424009839758373216817128289650438935553674796589368152379484092011494383285532901366825835704237770601633337924398820245052798539454800103784108566135294841841169731416870577148840691950442363435206482911590634685882155031580633261322111581034139889041798464831719870085233535935947585006891996585348668838170661262465185968426152768525541752712692541135344854627967128467696807937739767508798196393621528135807856035460640868770082773181971953162611066860712367876660944205725568111492853266317428331676855805321560322629244417268592730254850199112443070217096061879379290517046547263767632858474388658210844937474415160044310642899926203301851826625979061275157154540188502738523037518781783104030865553274021168386120710109906716166263001733092434712785005452409585248989256821646953499778559139834782050113307135533080693392657827435770120976588862917282563652833107576940930275830923177132381906790142050318104141788128515794604296184443680762674873504689714255367845531456041613867749051440491478947762614917088969945949873697971604278765838988840842347866105932789364640074946364019504303441025732442306745673496979559127437294119004755308632385766144801178566290337035345707640424322478304316222061371954593731710723836537151902890996293198432620165559502047200100880816546938438841666000119647132546213333959692887305521750643515088611531194295736426678841996584213384969710899669458949443240165678667926871158491072616847705877442109261991270960518618774790047354264724940159149230685309167048864049058694749267202533076656839677300306671743313308331297143216667009661420079506065601646790882273359351612628368440778905779516933374080767693559761988699836546161670712374616947977467737604968737248086439363128146263336748968930271226397236682778524064516852863121970643452188914222569988496224993912321868523637647185535495945160454715064443476331386582697718689768020274706984349476819508703314862912644633553925945492231518771114889275463763629611256763960679657461515634529007998655827818595171380853626670267860297680919704597894983090487706788142960618950995016369305867024011198013244184361746268464701786157811654204708177585272540926578935525671018823127741560087810088530784147582793460440529940285392279995819797164532459759309634460829290837165071887300865455663998138685948543526284592995183451058898002916594637121486953844148881997126786245837295925738986701809096845221537248580122714463619808787530618359175417547602824673378110638048817666988836027266495031984474921647812002269347631212580683513739920617563341668108077450948813406426012441502178880948025255762806722871163605589808967824897925889596902261271182746933216968361071431946570952215795982985660285064485252789667426644415488987637673913801493413689665919861045045413895680298904086477099188978908484538883491147068477360679315910218982989143923469028737255878646267078754841739271044561567913973611529700671874166437549450320507358545093681328546361669945885565738516090368854621721180481813556816110351164290124826772807404334526597626884195253297303140862654061729867970536785408540521557202389424509840494819783834562143629416659417946957303823605413220369055911582765385192879667267654966059510671850970311764337243735954536179044573066503588216238736315695015014531165588125011188180913418574586569788466214555930482351919086866270496739203982532568176440123214563834758728936409949927291054357348849626143716814490008325010522365418156674759996331110594375016491475682472091640283505107714782462721613044737428702723048267681944146932019388401341318697230323749200779582944970243079852385211220376596199381232231089318038145362497175733262777604764621033078678974176166225624904186447234343161208257179676195911942793751246443021927764422839478490409187640254994697695885952364485437944850206295099957975125802142850462033468015855190108455147360002081044324803069678405705888768750385732695854208203967194519410855892295638983218636561300277489519331852115063418458330428007140741435134147521831552250894215881446610162394489653942613888797169871895944663612358671347531247519504887049434211083315285215702132460769261961409019507377537475396410092000175742882004327059458855107546242746822856725695811489814182000802978360710099517532780985978603957174570792328809336450874131860878365910457096713911619313313895355524354961901440287322617141896522170450581104368227600198792409758793497185722433847915047476772945008316132071951111247164788593984984412776830599455246194934053745041728040268361178065252935098836365533022626579400276189081745020700651309034608045942374272311501330569368649401768493959531010053578861570271608832890973739361993969698568252093338937551452128865829726741810575435818438457837072189634898437435798387387873679537404309194875447233545715083136442330277062261634227259119600005471465241435197532005671892821550534624612804022184262013657083358243041803840727435686264230321787128443011322582025195551150512843678303721481935837821894379662107156532015613815943529721803048249880140964070246002482846418924240721913463100792617640197592238230715585877153583180616213572321908417638069615217490437558507176894716671722245804778030327347088281609297868874912476309266317977055569554055427044614032170347859121079042753345063138009483956718240512520861556391215422548944300302473957317251177368151247958054123178066669925219267040442408742647104540881614957345348531433417211408558548106980137471259468748960277942604897974907740128173894610056481085149284729782165682519703382354318872589706872322116102042104543579137885508825820492733347156298521850663648194128913763930663726951958239942604644670034799935113337349389095277839424683874195962596001097960431773084097744701653856707844494502389636681001104830727568596724885043950552986293728600689037741795382038616839781731654327864142227083122086992223216652722488763010900320513396878301582406654023341287375872672091378091334387821188452935767716872734898769179984190276067318244775029277370706136501822582465612555435404728578801497655904374233968936179968267270241007771084211531010945395992588075937729683053873767390569560984434195651005657933000522339928668642969348892882942981060707378480516250602884463883967178523310967236874658196099679852663769175181762318592746098827075319604839612866683776704683270219656698985012674867841162882277135516858319479015364470468962054914440523049210666555198131043807717590183119049089968277936780635172250295867764985729833613305227118306957680114807368124986651083821708721859148034635439704377365646053376988011760271853525312594474428401070538498892904179285073075413448911841581146181072675456189433796721354434959248109636853716826400700319047350058074679586297998682015682730163355799711046821874231408482763543742181145990114256824121745953767403130358892379744798440203543498376424601399061503412805985552999286599355906902965055715992593372041653911604701605852795022054211186967572184397750121750539179867526861566521868294907596147814251533062270809911627534480097382619657274006026329110593548450575424099422989944533244375862693868794077834409808809084461414586891110758125907873564235676269533619805233512187516781543723591661883936862493220234031062396383694369899418046899342445377186135462783204875149342344016781676337607152217294961371012067831693136015988219194061689220851159012030753077092612187744308474530869774617642115214313962770283710952562532500643672878659752199971678971067357139462020216132672935648692717711291884777557205485811613884754631844961218066341011459420540593760417310171177806372877049923882582177088233805644646037080032546639847141105274926968468800863577032792821001458258264775134569201878601088224063273704063963175934553608701661350947192761392242131679337063910762750709638567147103377132567873607469041284645862264443196282010040551191293856104178694893158988901561608287546271710364085181941888264283485482075532356250985383396226831103586544975745634670972186808214976022300555320624440951993041608859569551464744701313564549146218698420988150533919395525705391431690555163907686652017216477338332399659970363085425317122358948840311872043385702350853699270940172434788513178234057259342907463184275169459883973058896278206774164890161657682042442736072763847933520732846525556799895314384533516947332916580576096333559437348406001371428110770371677272024083771891245901394535463565747115379221449307041874048435769587286745518991537907923133714425609519820254270030580223920517012840690433284892930721174434715132501338483174804987591010133048051524633439779545890104578674884494814790450865030951514424289295157000131554341239018069060168058294794876338628931010666173875216463225726910451943260017994093318524247299431792226059003206087986359375490393636907528097776405645208916693542213694852541604715830188450685264542632133218311225781199805033906448071608506242195334000881199150828243526630882385235339556695782222099869085649188340826605311492842335956957369844077674473896008672677420018426012905684235135996785993439417716577071539642773928409378822629139738159080560441344370219272155447638703679371029917130251195455370395865031240734897604640319745159513045212002943948485975708330551287103412787494070581603443238000938407772895631291185069059557328830787912696811176642124498116961602115889960366552345813507460098544383595254326046728830884974347799932314382377911796337272758049830481180791804168313438121483287343601806870709679114644706381240801082576913538358818028778698463383719725525116324578268500204230835123273652160535555656970061387520008587897659393959497458213438730829026412922903608340450467242283032637461465288750543517591093359431050246605293980820781011432235041880512915100674008138474149987315837867593626517172098094145936384703780210891450856467277124865664521974639994777548691205756319083399743332818827319521745304444400438363842299583844579740625744605693684388417082213128682424807948624694748966961075743556881925922235487291766081504939651217548172849058119269239456610972748949437237631749669634511344079646888106160125247902502263653782364815531118497316850249702620599897229040613864019935421110858960398560579561049766728656758731329738208536268056515203688640855195653075858594646343657250278366852667175938748331431991505698567039937835549264409270322464617350542780926789300055559882121540205022405519262530060937603679884515167853003254698506734594758083065332285726353086606962192215949648293402350514405322860837156910022618042477128293284488839485602318553317607162366504823350764075720130431827768320324336305313899004220185458858892420098098004610084375927376042696971526688757216920786904201362590983977633562275608718338910269913508025288113902266421776581932620560709337786992542324797184220733101780665760167432163306060757992672207112769954877976895607718039971069023380248314828071415399465762611246812124089217089374778509853760944582325801357134923826524819571242200159800269376833485245474425751059387987504247377365981070169491135598965136452113348638203830162070634411068259979910174919821544135558913232556142537327419784095644384056951772144927226848077726342705947977471704874242755173999678280061728241460617762954547137331629161507994962833965888130737611417220854663212468424798884918878980135094372211343918629430872246283799507392588499089233873276745459878040536163996413056193050916607052027634884120271942439862022542261882442558471946286269295919512842181180383675146221708580496881097791937560767180053845266993881840105250334515535109412044309542395365640728605784564329083959173692587467716907573047225733403548140429120565999730672053936471279448384750924625446182424332473512167859907865719746123977496522449911892226913980514160156828592610183462542383325078361955041571183823782634819183539270316073696258086666513686335630936919921719238490337865261273659917030729850249421912009725378121870014308568136383397263630955002932996999976535325032258306135427168035556407026999656047273309754708313949279615390611760334716183086000671567858139582154454990310040701142678944487237376039651321126984888093117415915764426980396131024855699335860962173448154829713590494737451521296128189447414845667858330557418391369112162533151286048074269122378312493980325999108657939017429771816513352322098359972795843432698569720884077421437386221889241946643238830495531072715534875691725575891999930708824916102431425115483143273814666790008378827140103982101053826306743145766503637762974817071432324720849906767472245191067829169169119465037702651462992948373836939624151982226695496400722815147905819149208365425819547259945072972691054185008279310125345079612830702838748262489269503261752662165597099131262482680413235022490998808485743705817382861547364064708591583989203848834924718373635727163708760248524224420618639192684235479386963017193600456585441180047463794919851082107120332408969171188194121439131966489341498430566543346564201740540955384757264293104932011132044039845733919777621424985416035899825805082258032626614814199620510449937506664534872420236019589797819564667976786419092509559924370754886876550195543249057940610815620179930578248326945534651719108041411902445195071981215983962602690925979752361891812230077538528148492142343354645101269804421615165245812774519095508764671303572889714287992446781804231124640339774512048415566972016248555410865944436871908448121649081728907698065682498040108644480546930444479702748931130478741772072755481473039912005404391367237199341799261806684473234965522149039923194914200478700287262354487873092813278312886352069874388213710960985442905414579281110698228607552397027957830661321300146216687021952314735490870756720011136447553799762984214495121799562349383831376736278799789749516688997384541832798551517677102530308834477264381083098715441556993824347438622433574872470924430842779443744432585437368008246589534172381101906653460855964885191870893535573008973300079494577166997387084428867546991412415557902308990437549907346370124803365917106031190258149079100508704674601701323116051137439521733556678488215360893663838065753395650316060767364392620816464535283904652341733677641763140441497868845473513961644640799035438279770943364927004505737556722627847774673235550429909713246883288389292081607681476332467427429837326296121282662731405873261674647026562526564275695727030554045253826257938106363089641774898171858263245539202273239380198272808132456896299698032510134374512016644196167354077033758829936147806770286928373601295535008964993268279624031285596844404076867611185720603608816747886182104410133003139104544424817048599317878066949251891616702621273114104917752710809959565764912186893772971640781715254909115165565694464864070322198177678168984373054706206368334551988489117913263644600394078942201009372967236291288569476502757041034591858196581729584204142084687772002493897028530737478913934831843453853422940562225034785004096449694719921182532581518508138949545125366286612484536838337219746885358445936735469914244391657216356920004615362412446040549588065845656776632595462054717593235062176425880433828112850745966261807914082268715846354764818616668093244194468568593050859149104643381629212977581355165052173359878904201162288608855155690194022193227624871993835245271649068840948116633439597458953613113698437192318094369714195849530594595984531150208609416297902433302213945446286509928639955226377996392305640203071615886036558768296415424467501136731209375102281655192557953255415056782896675534900073657253415831591874456541257954372347155321195834721559971092113529480726793699045482572648207147031662736124387741008869573726048479185789914609428753514430973434476512203698722031927782578268539653639548365275933321248557127354806854420788692629578399768937480148866222265763319016710727037123060145279570929149596956413339597631677136992350591923023933678299311036604410326317355505137140479301515311148509850240345230359665593281857573090820254038652598846204686240690101926613802483582729952664076777215470558244577986659223080712701438969590348295786009405005825181118502302800231449998925851166202552137194940649348843001172490865306134636355428331351241618027587872910713406121982293411390220789245829792344041977857923052585471109159128242036341941648454951662121926875750709929844016039701579295479696112257719630020953893156356278066606156156739703087264823706976397636584002144014230525173277284653761721240964837380741774146729279474272876176898865138203154156496116921039322548951547217081747671447732547906992558011977855991406177628515001052817775697602044391531970993227632875758774777711501256996831157021443766507919690496448843624221997641451076973770112821199479972136541808024771908781101301411917509303917511231389062226361845974515005772253410000276801908948358084148142664838229668604309614486933927393956499997676559835251103567211767081227738540078226785460955675863193841141744823364329210017479741170237939594719842004295921198706047867782205610673547395212465137329295643960563370943216966017940768338104507146602203592648371652485794355353452903216090641528139729771733314920922230437950457470744142112268902863744434504874772489887928328540179190510151345048917401309733708766273070324231361137612583623636745147486935615537096409722574625018426431026404900355793913165965830542957878876786733025251652596908272380032364058047921891218816248425061497939148247709743434809890920606207081686459733883090755187271046903610151766671530683505544652142268079936406593811022369249753720956235395472368917217584794888555469261434420430559537461423462400775760261055504548663826582985297646434434353377150885351959236797396059444093959677733604123140767406572557130029617649531262633917922982767630621265932270937671107747002019394893083368198238481592708996736003891294694099660880962550378829914601205324686499987423140209802654861601444472917594379915546722058844663605980554897222747411817746354624361159020864693333947001835741196972922656069427820133072667981326747201890913803914574998265025535413239358288640829751770786788144840472876503272383838563184476971827364823440532496597999704678942087825864246025504785663268668423230182996807505857614775137294295858133631290313940192665517218319125314416879023043377239596193765318917344934277575250145934183799059669637908115581026420478391567123157141118441431323387080039274406154352090494126350914619356120368905701483036494945008322174632870529631713367510143463381833667491597834167811597226596171270685355939604851473538262407913803208667882802931335428836654793151663418566112656450767956903272728355227791113464700686409712775864210272949113248781771056399050333282937030663648576073122983425256761283912988792629025948039184024942499273112498090235840974366494474539033847309024948140469991390924913848541458212151555296184757971977553332627457709769677013260140900436928898672997306034156276055915851786788535213309734454502588851108014098744855292683303573553300695873988915369551936441884360400963569464013001074462017469695236171161563468006038960698796842701700476357544482662179408949701838932722700661584501461768301266391050788491326835067319960823164069996231180114765326783257605345683849709965191544074651940065300189435025565386440877702648399287169223791521061296098420470187416395377217628113852064403318414564142903556429663597387281815007341824322170287025768384659633481103543202661498849420978539037090167500649435564398690373721326957485810168513604161981260755422669860853846308042672740057457923242836785863764139578784244837538137337409257547417862874410840061909335084734214993867093865864360391924406590364622684384322531869533390309148913875294789741956511208692029661596627595592724856948428458599561631438962990513813967219726784515363787439260478825941964684455150016263634053487700248237431212253001611512543924341387920221666094620060435777275739625039015096377808360876004685181262417461075288903841495594339724511726828955887898422966136907559940444054566258242886907189026422384158464546003285348165899377257780940485263445007132761012056900211442837918960817296661470442267797161356915591236990408383221447292359017334508502496100239211347052289269281136082867817335231261000177251133369418352359375631914405983172789341193517306927819357370821332992752921269826656873281052953605129453937617896354027318357566156369929270897604598488490276444710433652964187915406725891352105455725844133075721387197338303950757113492036580524906237039123835087556854770340033726503919190620061568106615631039129529764710221882919864780205676729127617825646200897032772451560931972564934833420208253194032957777030835129729453933163880033766251111293709526711460342551590844714402443323880780009251912313967738622117940963802199761634797869279556863384042107458747630885335774375002559936947418193686740995581722610955439439146395667033169153454144001338836081730507620821918346889713049258220764273713887373478686967040016306814363567996529287731609464883609024593700286470960716511718834242450104808775218198365593762140372150970386853814212431099088500579751082444780053222002719282283363133129374278886048493325590351736071091877292392700402057865408733526476564539641515422308030545799179288304786458308466358493478786038372885109540868815667526282182942998840449020638480037682898589962227218805835926756714332429222689300568969837181699890655470093216979638530686758494710537073300318648003429777492693908992594578194505314598216758428087817115719897060675548804752486109885719782389387168441067426863339394263396311440185548517322758982245763696005461241078522760874020468369417848329772554804311177005362856872720112897707965741118130215616191614747357907224921914236406404567909223259889864973702469083854081726773338500306300702931304733782409594098044279875026118231915879044842374873872534869634373657602226876924937172066515582464362033861681977415974331496014275158274674892818504170911989862993646511968852872319443846132807633845317172056377562163948872847034761881299027816976554233639640805840701080252089926971530293018535357274406342071047757617116507708049980032114808214753583615723717788930178177149738775812420803952306175069488274304344381142478112561123037980278299562913767694286503481611823092402354944617685116185612149683240320464888720892609302663144951234665691211607610662151666660615953550952369850072406170170435229438566232083150604067950376664722074211504111253033404756509352764443992726834138775235119582134536567759734736138751882414518207270301194607292377049972926858079256852926806481117205785193657640923810221315709782747822050897421584712539311729542796267360643915542143767482963684055378902979793961998859921800655266543123475452854566645498433997296695192401956605498133258827624011862287422194775608003001878354090099174457332296168440316662198468734234251888187339490098520027742875820972420554806194501096396731042971073980196917075646420138874961746755635066691339893046361581694443962368858090286248590321288235491329410283802340997785847024532764224494717251914034881088691384711806627823687530187939266501389439476000661279603232672816524665443521564829207506493928649419821986514580513557519470019405810940027045117328325078240273134661610432953763763904756009848858554657770016381199765080621575942343451288853074125370804381849285358623386850701818451494351784768985784477243817481460967157496490027862288577530770860528932287958736870919258770080856664806093309142631527108080012684637939718109438549339302004062767974921855153906214830668649701464669005301370188347436441909933018837698601838811263862642050611052287159913376159792357841854959847776870239106914500865398220406900033644255569927608250586376123199167866150616744557021343996660058126766227056846542585247460126271504170390865119445134591346876731715004674512487221186572532627530689353022216844348822915113129092508710467568141464568532420922849054173545014841277479101709889238285582386760851760693723667075609182281564859919193898702040229806064384711881389149305593130819710068026876903340390875214552052544421986219432853941609014820259221190754712508440081519109259663128294844057744693986726640691177134072952077170142218922566074876496518892825498900773635823457896831133130660782955441175084730145441691293452929200511338177170171317429551677980356839417710662769526267198415691859423950190051284810431249412985597494964571247524730084504465376800615256487141512415547082193729986362286001523726027765321835966531274199371931129317958495298672125431999432193003375026407953619428134488230916557725665180119718859628562216325303066325877543672024947706131452718735136110653014506366547067878829869579389350444159553842940130015435473814996468326788881883253368879954312205313210255309958769998232528857195399796527965125558695004608501061244157535216902782504307625123889756545929337516608602768674935547805359957276532419541723976687996607384522778929994402030080049805042569522614090974795152576036195261553140807653782868292886371091855299489461064111230502678240606476331836677945594699410888407756812093706352067275763013791036634293834003341785617523796741571350698817319827537535987398392229862781298960472574152041330930698288263818901539799931978488621623451244140404796866387891660283477216464853894419272646055648468154544598624479193338819309544533135675669212076800395740072891862406742369758873792383607086465257036557566338804697865443541458967140257525941757875495067648541176101690013172546795454025591079735430753983802575827719735538406275915708838771949655426681002989299402071695115697627207128924809697976430059502742299703997821817606338416166349385079688459265656767529935767450498640418022684376478509742702466803035014629669879944736256066171737117189721615538855826929619370434486746691464251034426857021774249057740998486032167929101120125688901544965437396478645040830473737388182146449225931135538555965882117354164615636207125287496434283051482120227898251887054163890084512056107354623602447919662835825741343152961024617392102061182246413993582136244083823890524151338598348480845553104840419273827531348765795519128516115260873438366994193877500599516401549385936812355614972000151495625585445963460821190864449263244750826082368994270081554167329542907503198249660314476998726453097925423928147686028181303301968503923647915117258383880662827177740401982696349165767434058268400755327418517125332030241639026650726466105417486456969159759743877218927450132341827283081639929460225705798491851808729354686045694494903255680917789698230123974970149041093466812334475994398992001225660939481212151689657852080377162120533425113843579947987810835426552188641235055968281333390823432294504671848865248712027757634969311350306961267364837529618048843659986165185153266512332169022018472892258564221528091082002500963975550831301675794938218399801250417042277594558069861168162854003722147081061213576008781574829305844726084429034248801604740903577184816972685292040873228161566606416365658352810722093305363131523613180145084736583325611964074639264420918157303714762339728874887650656340891063053562342371111302062585093833501869979197153627482430065983414295258751347496676882439766518848750549391034402861611945159816603446101244700628699317409992522507311516316723131837900363793534589958411552550346181792966901478668224330916952207093764694922432316999853725997375936258135000124731534990510234781193635733035853505452062754416455203734851109862079458899900121790243700877140143268398118697849539292949542154514457714405002148596061133459383087429518393408520384102092595552616922524819728003635882539095820683435339620454639015330703497575707367131869734328373782301195007616104526805463683121902815077194013445559099483997326860863386270706518051103637335774444663786944963815574678341868755188596484884830206544441353328122142089616029270539990506220104139577230599506896632288694386146009996750722856724436263737680506434155071225187433897978035790230440726675656141477485316597596987199528962611617694898915899319196414060267866981006655282268382827574812432538556178865445710563008721044556712429844462882956376345887928085958719972391811096458218966320217875077309784126986238564767474617443726445535466052954582605236198695610213914711427836055874916881653187602708693110280379132951370557893876739722690937206701507855553128481094299388412864173531167014483740844845829192784735898953991733674181675657570838396233171480041287876676072184614623840021982772184607266715643634292893544088696152471528342714118615720392340807905383851504667152401429783606403702325354462428376485181418758161564353319893755742078533453302650514395600027564360314468583791516103213745266598448317921831853225229557437317232041855720784509849788236871391555765328785623331948922941338209083795124121936559908689949775308861257750874002354134553283278868882678475229093524028397872853092291062755317847452888586508438299724545877891917570287008666561268392571814088407204004251814792310997919057378724339948124601362726057072258504538671574661535177804935318594313999391885177502616411490095915610256148363303412272183757173180193569592286064867138978317171401893489567182409336639292429631255887083826411478043893331727019190246613084317071527021979009060607065437343495715931996232089784035059363318436282222015369394745973856301236331710232663542543729609938003786361221207157831368259826202042862574547637928895477277432891422753208512437197917178375567520147692185200309490872446873074985197132130839473980920541976980456542097437378281050950159852208997151267265328428740391524793803907980018511431771668715112994356718919544449839380367536399634134560396275143199394221948279077699099990144481377366020614341266026799846634772759700883648554440569971705583961595379523468739668578791324825245877973361053785659203511562047161477792079188850056974493218509902039396172001699460016024684887067876669532066689318158992853252239826817230235317808120762329704568244887869572805837472645868368235775742902891426679925244717081158882412715769493928028406890289225726496364318477287008921496208327334838980585925806176927735971290249051030447397391488365054877321427540570371362918242228285765438110717188836322333944205759888880709779720126334359709989800491475777099473526578586951317532351741117566399472489214345792231433789819299404526881981372262837253673999426144715168507055028843045199008453711866627644603623992255046895982720206392853813035749198628093217984166196398040342838970368828341861757071753498416223240285478558103744979318753353648526096353554092044031976831641713752595980439174621189329097155949858659102332528672520808541694822499696547618383758033467963094498474450514520534273680733181653482441230151364295541675643192709580603174536693100471719642667108904902529978682273593608711855888355858250605776684669865113742828419494606109847157438185791074966359803406153776447479876202268725938374653246445289436843047473645415976908892683039016703536738559674462261030960512020268729722325991511571427453183879788339529663404238089603291613171053929807076317289184505922047959236942952033558492046960462529896998776004642979750111968923086317280522835391623269856279104457650469718292777424544287255523954364886292402015597162850775367977063730717652220521445283691899550394414451633419164090861777564191636388133492155011267322053635807818044004165513102335884551542375200278882810818359899987672518932460358258033662877962454880446004880263803739802358190077791272695039867005017068944316102937209505747042838453351419829976247439218577830546513219630364045116057301899514488003333447702665435099705856388611931665234447953988416064444097392773795739511666974458858331759531450862407911266274777172981138945236060932062613562036347252022151170190281329456192778361919552855933215988941595157745471185146284588157381621355659136096412060094963269620599220225778942661612971180462215595414016550590124442426327591576140311354484950393895299809858990823835858788627693180807691106528011017127852472025378219991519644746080744864201919723017009800276402780427356028862030942247993009436478205487039545945566324169720022693975399759943907600493212672303481054369730139121212190307195811496836459266285974669866482141610069189256047216642410256293265289050273817491925956649917540446942496116893575856824116235949591735461520832289742484895567450880183640585354322154293100968920343311213076613634187105269715634940671796415176926593161873772234470342184613216563227245168953774565308018237547353727179249444428513968569624666136400983171092472574703724352380957770052977630056132913364460109672175877558664583335793974808707813095224571346833996543195984057861888369938701479737482947885499024581833524886648847058330756099381802649212854998514184680811727422681133469957276980466246226097375803487877488886786329300579704326291285184204179751065992514075872837099795258465409102416740611945857157771511227160592459712670957696250139238035265669127120013582542367287672410356454963010530275334328682664250579503877859824379416281793038451782505461039502301947547331718502027616987156253012273033651889465572736318105684413530110028158275178099513314266614211577175316810893048046397175451437790295808946826164984812278410223009371185063086872376522969050185707644956666150091758853024748423091043141354042945641315854894929061762228310851041434374274599826719382485209167305302965986511863310390177322323714780499448571411242835507604106941207602625798205900104997139070907729537013008771354275408446869862082954263551431209734391414280035989287251780990042051708501359509772271851235705312451814031251293866636627391558758327927932137376765142586824568128267890113990768811717538375526546173599222267872335278590469095776238527455283354021613508647690109082790531511515807640083953141934230625978699028577488325802570091399554420016222330318874961328455697824426901247617288292301459115634835288002613649259789779203871321540162907564376289724053603012609771169890605470356636750832169830926795761154049154073812044012587771147942466882431888730920707375313029304657915484054146103780096315833811356931635524388267411300425835842103960268977872975376541284079401324595822500502398631930594092670729122064849910279284391368227574758912172066425769247026920644531928300538186560587758748715812335159224081321565752283783889928298488473421016383551466359228649991782848151940160280964478099895047835859486345082812998509213120762444384347087505636771405049355673291548598560622306545944965248955216279763013286022601272017193250854139671592138670055985439099377841151447245721699172903787927116214453011070113223617661684859679517779152033675264008300220708286728282601462907801081209766473888460823752790340802592030390733746750661474655522238066564315271234807293047734254096794944623213363929563305233818676403593893411978879356094868982081090735231065566737491956290830687278573737122397657910908277534277869393590057291361557596235844028865509822171180562428317785976794983892657460470993132059676201107665315544154716445065859593989415320413189214448538733796236372551793146733632096981806090454887404857891434885211538686034237067183209591630709197360776686126750441373640415232199180317720982729370983948871042725443143853846215887669683992379405003983223590842375800241650878562158080897244264416965559658126209274283729222726839350128040628467137603096717620386376760391190617100129918712383541530393665212239758395459337546845369646808596440706395797806981755533051991739115572616180939450467944627442633043927321615761387158565551560313887786181475885543090380942991183149317896824355175475553199290867089505652276527847018466812781294046413592126684717850497072301554487329308196871599375080671128458585405617161183023615233620065832344640793728250005724733074823378596874690020607846502670236727939039566145671565048578187431976939662515466911391623322990071903555366410331012774105686617864565484218332038356991597476945169824597923514824804352149801672880021887073540366123065608260007384318092544837446111368190558343748797848615952476926384484864290056836587163499723873623866914142940361542265729319897732653956493009380298805540857408451793225953411917192225704097661140932130491040533038748185232848078406450314165266473932443622464999119507298511329508301041188406054462033694892967915864642528797738149700707206676316664828042901148534358159318891805289846001706281351190716231677765523287043513095985905627614685978629766426950980122337131400359991053578974192300026504175055289968131846892533898198004655420195303472810549052804694838000545194517140101967968588122709439142301287984867023581474243941391362897002468459153363504606148529666414347490122420993248613550029410487189599200831212265419114939238843745826511186825482483382616300752126535156838309932816473380724159193920767129127186789301337930142318708721609035435109082262599683114557642050223937568341480944614481267244645573717329721136780759813920560971862311144116163093948218366367812163854196441219004564974352300857724881901955253251735630329407951602770636439306510411755397321941954188159584858515919447392782138440413079638818052341113821089377830349316635209246390116492116505714449441151572606499758098090305294786687979805408224201697243452119972329184643177196098151974335676003167764696511685440511971458010266113075160703966662827642723140917985819688840113059399334534743899532223609947412704095329504423911464725686543766632907524452460978118749755617753960262687023140595655404937764172702638628858878284095875689780269314642281019125839259063522264955040446040302006308171003370114491817082229181584045279381793518982656264887842210718640982826186291895104536917497127829491294067030224921621513806091628779305278527544590471956798461845580782166889907315759359933129505967253553540630084214892899286410679279695787702399173537361736152649775989428916568398106130717384611993189728106291191517635318663502551396266226764327305261302071645227891899487013926060116210738699963033010602743190346852836690491786169368259997651189469031369800290160357823597668990157240560812837765103732355284640355067039027702087707732250213662916040190075548242844807414482243717664697188406429001739626086180723735240383559978357338813137498343124114138055072396174299982144630416589207023711374511033528321398134950778222367853486498332338793565333655219158887444658500226424861702108046582673095714763696272487948204641498061947392402672683871805630967640056964268837807649264949017081682954257565201435169838268013944468707992441534072436096544257863981978232407332462423579417459969948971509793515916769486583566020945275984521646651083836076117591628563529042659288683120564319577941069591683558879709661225792650956975642039925855358912936593681276934110643308490232261242260757863701822007661152705925609418179148816454775802875129012590884330354468451951343812861691021502946737405310328540398927505960554421548383444724620175084626154742118957408485017204231177372718759862096685027396194750772309889850099972162830193344646586372127550008732049716247736985666096503222221613666297649321535722837817069751716058633532779610521159916351373458779864218026459319903941359017639473982865669438081225854091760192956541569155226960337753655453947971787407100903774341959551019836123838976646198642558752935700692351684776271846422595506138838230290381656394879432438932657264298157465220175760699256469470517712287070052527735136151553843955564965861038540483722595713701336312239058585051549324906505617571164773138594929908354603449769677444454204225928317161968254669157348522136388571785185233517889375119306606434988809184080706621133244210228754317879216605004426463240106428155528783913313287387092865649422474738867792271457742774784587170251079017907758487013399380149110567590301997173011316539789188042645490590514622877486399511133644949277413536365079209312937505215902495803492352648913733729364476712360366883809384827840772808390096591417189895867031395252451339349520639197524443668175282514626144884465844726882480687134620736719470928742023492802499158956779654140251944987764841655054570718193420738077838715431296983194115570246842970334156019968968574965876177735435682339107431740682667307822538185672964361316424828724447832855285810825112699515052421901614996719530873395301979657065184667047087810208243292557537232590469115821761925755243775353920079586207386266568534222767239393946423733697448987798062126158126023281392061705543172793086727242595014506470661786617211409755052673452625221696410059098529698685400681551338070618161445940865259096807847574190025228877671634474310674750977967899873778091728062933205726251052785927166088680627993667243751179694917453990605267673410756159945169702221871479560062727398874654259676954672987308532711888232375489756938506250934409513236951757300831690584772157292521959194297603740004555198340635578240422710278208931689037553010643366831770633779532441853758447465240684332081248029423972454743447030569739522332573917032761404606438560928952421845194739502498196442307006763797628719574782367199462701351070327147858677359399289305950010380842234942501351385709275747189559769976223732175262713737752618708121083040900638423727099423407788088968326834594550633076569090741210919039576823559474362509232584462330747703416308723187223550970834788474880491212714392944963947049278892060213563036422150343967238454617316959860981225621100864040891081511349742739105744852774425536390911346744323542857936204432032168846826620267140264918880294665158739045739100993285794592280609289396343626462381719891458145822444233520102966061365693850454193578462892264571752037179404549969602955497309850462218158753272494323552143705287090046645006433568195418945027080493619529527923307539681542779386595997343942869690298759463043385013430858645315474792145925925021488179650556208768421095453894093959533915430826447199423819059115285028731015490789086231472171579701508218098386225593665289724053249869938194159551172538239279151418016088321388409381065920875152565653935735369541896837838525649970481122244899867904800609224414254288079930165040655816068453015791290507781829958395288162597025195337454062909261847743311397754815177177120670306448670073226421133824587441158765387364351999282449939178351921826635431815415641333198292116562013301080847743881787836235514677190805005707834183188575150201293321002945873459818385264333049829977522864859662004109422277103333942833760749099612041149791209351817564286893668031581962385902752715924905613366363806542172595346848976613673102630903575694091452552985366009009682330411240581640663192473998069139662853037159935080631739252092834591310863159869296973203390382317138963308893018101236308515710600244990614441403909338761643425492237253276138880728693255346483097261172776166203789748078435083158667711200799579265216156425645951509570365641130368562702382529871273323236903224211026857558945507114300529511760895715327654718265015494293335893231884463672988407384123616682159532131838093892960069761425012572424322228766711915647469995540550792137817169913567348681967058010419920916820005646851632943140819170239288255311578630494402332232415456980858549252205658064895852735637329450658787906731306136267298424327442382499184976187950654884256684694006494980757280806147647772185450457298007089290310498602121785165106435694356574468857049004169174000751667038306847853969229635518966458801828738215480805121150107485722435831408403036534314423963321689497219356698175518297590433133461249720008277538854365729591039471879837165588384733081264214059657224350176238183916102997958815580053677439843790760266481773809928486784850936238148388991216076171508950895556394541432320867820066045583435281858883477917382082013209214226382902891927872769301418831662560733979974499089246652148209941793634665191993274563855348928540747136232810481418969677820438347446513613433513003596424778993895709404683988832798995671981284837531719970894670170697766995858402836675845028579052043189584140981492297368868166712538229285355188752125751335462295015898274206668193782491248224842668187365642159823094670129397643571655306513460512902468797246909494070821580181451031374023886029849800618227395638922977631178021354506610461003565368384431297001478417818506092053227279493099541876922958889357835705149196049609474672095093303242704643033524924065299472676848729987042995719915141457994025561246849543180002225369306008310822229787326065642003103228995275209075518134562573192834099382275906734762310520188811001707724128074324637855786131567524145830626973025912303943765428088292055578409377009948298124400941900494176756692435259360763562897965022539163232791294973407973172165009973797798725254073461609253212394404582489848502846131850520133771041491243881281856907356526843716949317434041104642460484383219728023565450962683645780306994248394310354465713009552059195753046322753930555480044832741848891711087391522543345190155663650868933802275491478923004999369567440863184953651788289529586312690919656130842047009680363625162857621056957753683194875481013356663310492164024366588755467691186456273335837731657867782251378968602569708651311004430316577327914397143296493326985696230637408704415798491538306591431240930932659367876439910562178114158247278668947621569383180722708968460381252805170008315786309204838764758090717372878431272343028236411426692954720602524974047721057969715464103782515318977385540273544754091804904332162078212226771974874142449774193831778677507915141086093675777856466567730929339468662656745578125533557953726370380274100545395671046713895450400337924116545652767635970277450133408334297688483128069320858339346042512047619631104606761032570013397617211615697055978380608019083676280244906826878007641842331783792393788660400111846912179325026187728733090650022847694666932606497726786141050166389323669915881269328075162754626979562300265862573024645438597133973271024759794175357945352193994086637895630312039087224175016885939706516935264995629546161751123388739365981658420033514885724187661184988084879454372598430956661661537403767648338439460196766516039663058050810607623871776157957567308478841981100736392065426858046916132731413330995231745687591403328462511882203115594802367375260086754322029685498608522533573734764896974795123235386586581730812687565311568070164065575459184526317613945440029646868109669362803014855294477307247279916007883851511680450058969103785811732172652571147999134432937343581533423763637342700004227646979129652170312964781358521135819967671204014677267233034309548170686332953903923292797075793036579953550117777096117701752930347729754710909371152304416184938583461388525007780771168425227680205514830475173644185220053983669463874070995892176169466548329637342759329042565958120978543286150002574342228443034777818562952147795626306874273616991056505006822851279667327861259631563983887944064840324239269225152228525465893891995240539755577256687429629336797771297124598202745771448316565858127137880517036254214192578099122621835120926888763783498909235404309722741026895320902187826400445971094205885327441920903923436478552543373631483259786694693992541885643096487656657268158495917843365490162831955607565281739535023186144817442384365976174497531716575296299853956427026916738487430393017397936477722327381015921651908254089266723288571458046007109185818309174968158595389458124169502040676739471326278377396935605681177743678319450754568007331506237060996225630230421518409872365988007649856774099850131475748805430214688987940995048609991223755103658232199936333578708946656747218177623217958158005356178378100093769194840262541327057584758117264249003672344402880789796706121581839408934149222007859822847129814100667819919268781475627474738305150511877884952225129755372815572829502718566370150002100648108100814690058732492028808572058208632739057477980956528035913004669996725654995801193898608977598318702458085650071675986452793797455963680696977692230390826953959358062432487087258267961300095638317492719158757322306528814093581454133516906261748928654525593498275738992514709850041640476466193351854516258558358443597929241319761697643452018380508091780554976531555369791814224138377928811163054784451972131144061682019425209341561975022677425432097373813644998220839327155141499932061190948732936988433432817697437305418895028724159867483863725040709257820602564246754814596860727770662006347714791808851537262766679532626111511934531540741130893515873251681360511189456547974415917562724994329709232882803962636849500939326494062062060282536065959142686392852257338581889563799920386119839095639015837304904394248155865406827311802157808809810860319598726197284385350863688336712778386958724894174527740553045921435842506689959710383049463305059124417198249412274780482260393232516185468505248735688999547865335558384133358970536431684763645070633053606809399885148566510006063991194443786508775046641828811572714531932919773429715601697254580593533015676623484996114518005568094261213147336012283431213937475768012193825740336617975261639336590828953576393289184317452723976857381449058103352416070412473606753062855787985801910630769912760216527904665249224220505644402921077725395063562763363661354897710643370191571808582783116048417897196860234973346986893360506821016848880120879708840670506766306163169789703589173949476466098671397967261382554353393443203776574061764321779256130948996004214692351345507780590965537565785225918261230562859453191162097034404269754782183009602625562517572828345468639467994362527675006071404605727988449055153257993651378082414905167419151904200423820568448054138696311509522099239226752668683252757821125742162454175770531780900255418594997849452456544977468096592040866534315796695239662655370470824632010389475601972876269514997392610934288727927908131566719102068843159137664780399015210378525691278748936256888382415551717546434153269354476263271740297713045411621205320530613604401340449052591524448925298415405063997439163999213015716825933822797406101408201301448445889859804352852328786443548801986791625875456068359132118829879712063957318517425821742034347122789099641105761252063097551439405042345115219525842389510708937047992525874361328832840432334085312909060967905729899153683794624484033174212348982059809724979210198738744949895580358305949922928376242363161731258908844414181920434396067626463698697918514229884451561601320786279279823800240700583482010141524257441261002097215001340652583850898145600916871155786025129881481605169690399557674307616640447429416295520790657932701555433554774626158801800141856275513638107659156469734730889136463268055104879334191254973451963967666155153956319867942659101210232574389302060953414551632289561366087395010311728822867090444473011722151515529844170906859324850016663414737830651990347029524021308784224447064844920393126712652439820723624716521374977849529996305803335503086372748020867044850840256617932611107992995114517971592645107169236204191501703357149528438807135814605539578836031540475487635016167921095944089264726381317614264804441327705990989633211534162710886402044804156009216679963914901947977964049275842884138174496317145694103827447278025344961756705473011509490123210197215926501607260901669389379276769460429520789382281324750074509947514478215166591088346140111366644215835612715032905889567893325938148450916590512598077078876998052879190768000140046687715052532524759601389132897751834857528252429019074148218429022737506263176045956362408490966349178746620923677859628974247876339757641782043997277921468915504232650841786247691389539056790201107076410773764909178617913012592283344722732488156439164861783062794418764942864166944976586661937603066331141634095501887523702927871024837672855234337055089652899300323464431615056169419191273482974883495210671050011447462551806962346894196753303851533525836479065733748182239579552707204700692870767041806165477836215296257911918616525743263788612613893971373455735012833802203303485083277103535537718110124606195001134538210393860636048712721902510827376551368169753712031942601807639218368149159105251796724946614951567596501689227821636415416973676297602522991707966961545793959746782501119294317547172540545144279768469004849445866802476129748199271550447453022065103314391735331832384116875484119164956989527816281611036922737790559901478876306177852236397781862269128699603788172753665330687596831472334273302899196175146415197690222237996404806104514675309658422186507013475622941664450145741293183013719369751538643939623320161634599086380334815537016446328749445997544958678178678619485024185346111233086934341058580418035651678183383912712908826049471800202541018404201765161653494981268682212863243802772896749798877830036745765219090546798704590167072124893239711178248285420326484581437062629319149973256547830989431182615229688653566837896185332503671274554165264196303804311264208891883710514666280284413247510469826780497049363851077680069785527907768532001773255733434959584176753981763273592717336419290859001516546684429178310814740884718908338062272295258837558999242042966430346327015484808256834720638173230196901075608374732252940782807449810127930419701970218257467523663613402126645022564657157087481226043941088720012302013005847053413744130045882235339847792989284819629036388516871416194660887867739309834966061962553967280276954141096160788502379690949475719125652689339454990833109055278086071656467360397939142861809929026981524041693409115767722114748174351937595687338046898477356728841963298938746010295239903895593163943152231730079462947264450117674447679417958254760946515427089810557826905199170038598720224336531482987287410352329199395922249260596402844279188110916926131349549489598944137624087277551365514988278623197158821220391393627612068534144868307512636950910016153071507820290965641213349857030162319859990805139563638716596102632744308521121312054399257780950738381513022203346708254563053399737085787896998930510688321615141224442939962791966387531487551780241880329763265786283014305543215723672718274223289787171235835267445334788675117446424479880628663545738920672257721383007862405634244009791601747968826942925491675780577114853602252533066327215842611908086533240413086331172181923153537954791172434166007445998592457785388243829827333908711618467785472876952315515617572995491455956147680433916818985039669660543636870827817811121948737269603846612033054732416004639937388804978380290581608081133926945115307707364640933632942632967651983971517125206453197263491834969106024906462033155606732262865247897174128103833986051751440479924674553357284049688048786191211830416037520692431293066089476393180503197120072125466776618955552206969553725011483336400527053173700360254194807556130789331347835128096741143516119106549604101878749792588765566899399447314149373569586011337481037696217537522442558831797612384789856620726147967209929474632889970039481899135324631356390581038939763911514848356800687525785935390002923460427977066947118146471793400611669755410677786317532141076076082882088889559749953495699889045746881899341860476506659067836424853613525161545702400830568569017942641711408735480859266150033279092488501497367133613603117561134860386017447169164459061720514715054718177378233198952958457904241409520233034211127662915972392026438584535842514320414728581161969802371253901696267565022952068573583799859493578285295996005298835307593054537286146447413900104840892631268146904973336637931504874528766107553372021487209844902677116187825379297630448876084256645904006194685589263092293705520761553892761540359776372617482371823946079068369338408108743805881412003240421766005907197676163356892459462392238336696065010613100824628528216464370661177160533124925346948644074621039319887699280232979212531875463284423436620950725026409686440713783963029737600846410544110598990253281096054728516777501639098926688292766993705143184964029541354663898870245072497594273605879866880786568123692528369668539155607215602605004169560005243701780742811430347435561890733128957597907409995951626444400345840941412088132201401392555190088598199019632732133646285039930735620877414515548328134594208258310788350730003204424868019802102884974685899244392907713377569689957118718978498452302620602817821950055820975992164750078766675910464423191838047264180428595864130980747533615942831821928349404972542990046485209241494618270244535841711873806902208325000823437845718383696626398776210074169186022206294069696767866312714190064222250364344448222233948036514838183509376217372641998166042955952124439751596274469084027765648638529157749274506241545854132817722675834314048167511861260838356029187919337408910099324884152066887584126703223484480754572235442149796704858204929091380493435122492749986009108634905384007386757237294513309262864554779309380682365538776437669104698261895616903594686443399047534851048909535805325785404589068645418501085099571946997351536368936743504142760579545409665432409209744072101555679831524191632638097659283459179645159105908109522200272726440110855504840264882930218026558343717444182419165753503445063141527042270404517701565625218219468946637470627185846370172024393370946616793592498027033131384961880552066522478851677697790606383411148087655893460949020251936706203966805960781959569979353948589731513821172655677960419772106303765843559525368736217018555661005000730583311352979229952715937457377766183653002372020265985332727120746888138633638721502241370960092007261787023432902301487622509725425362271938082222853786575606708760458559878593845503088683550988706943715823167193540182350714752246694089799021033857264743479907515398142737016748573284192410838141020567346769971510694102031490063698963073631795343694477133648956196279293145889191436907127769340673469083207261368654084134909167807974860664405521928549616211612287190551035250431866862789967018265819235875447728956204807685865037266319529433690248610320365121215951463844590618850798625709968334772833151163416306298034353507953719766579558753371792764275219023489357703670054124188774899865192804160501359744133483671272646093498601240288972249819105358820882763751709795288568597923849713329056353486084023432440954486514457373705496376627356378499356699547762113945464613296456747349883902023199878327298615666867171344385803176613626213293246305682595980816433278403057510081734717158957077081833398975157813315687991723757802155477018697292540306123359930415684355005041948010742790252735355609774678571118169013727105271465024453523742436506401996897206414225987002354435841793548297265221698497605669942933205832563276760356532667900815381649618256000449452302093249957841579324410634341075286321547105810443037788741613211950521521676136273530753100936072731796204076475524065290783176797013910854401180977432477845748323372103620931626387847791544121660678011206048095319540014110613411811820688246272552615439247690111022123771093510134373890018657308441831677731352673575385204072530600753342241600783339462764349073253194117038823945286025165638252080789999788811482330853906061274541281799954404666682797712907354557594262686882239441758105058281325347838489939751382976410731321188472436305026251926872586820934714926223120160285236393131545529032488926189427955353060289001108087168108314778195055858863315812140400766049208778153096264946517580557071986280189881853692989310702441335832574654426918299871882030671019505776746150640442767430044894812829335158587431313179146808524423639337664896611531858511563601973784834443381466684030960664582629131682316590389356261864566746936729474049792614130117829635781146283871316520467847754044923176538498607926243414586550803874502932900883533183238338172837088572444385973921515639080196820736361890000784023675602152504888635321062136061115194623426940612517671474705485116664856429913602190700941748968476805796192822521403133975486632284084543869478166994439601418362222584454595747768059030670510131578125329283329332454101406375122380612686899739069487175187659367405827938149800523232695402434136188931033175781385015823281944587645258032576974404429987551543539281538880150391403906158637374436771971625749999087101345785193858166786269857459882328612290775110887321834414981107576597030036981999266960076500477896293773452196429831856808173687714893943937529414092679489701607756323938693499091279658127599503327668986263973432303613358500680127800812033282499164248074675477669127053153285576300798246282803025413372981384940809922425881305440793015856284326307745395234152120336572207681490692469477624812271170960534900138062459593454475072449746078697560872283717072970362953709817309615867891616604345604305609121685269573924995403003082126751203003054132101994695258033424417652538841060110076109530273129979636094940346664629992568988434883027778683172243095821700094025688280396737363364742544769929006718689103546078782375134670946630656641835760808474302782497907790261488933422564869597183168550676936079052566836040500010817057866707248511172188444683680958920380447728996367963891573964388583316399996970979095143564766935024768815490837837373568575746153098426717147522712330623373385443751303951816298215705694992144477678044543738223494377904568790774099516350048562850051436756295679583218401277964296052320118260397703291903019003371945618964025409609790777212007520390174665109617835877578481541079032408434446501897992727816571460243483696607535916784017177561067955664240304298936675231872812184764024088632518585482940894343899385765720636878245922887848323115667093439030553995943498767868895982683081129306719555661486640072555744026498828388531646810748159538997288453230313373632068435629534369712208432551019941406159453817996462663319521904651794003884029549069599453049601718423792915187169976800921682042960382442493800022930384480590809136753158600692802879778023315966068438143342781103859340294519606129230128728200282776830200551293527247121650941058492264140212604370035281046775928082310899749180848696326983225732433142225207847401675580030021192158381383805286379120766804393817145264011093421249723070725982188850457620528991115217281804658708307366225440266819931128052289818858752700739904771943949907474870862125215560890220936306065228165386176245103994301717314148915563377595614258342025789983218699287102269648255643987334262899173173805688600613241856955230673610789191667126754210409130515644817355622626785052366592696854180572258024714039037593535045804873402531075214670828686124452319645823983999927513862366075991561654566360013948462365246700507968276753163871742411466564575023854071314502362205583368365049538341222948960921871172283930599296415542997310333566094633516794404569460415725471172804484813308243248419006144144633997740472867162217172029424609065943359500605711247239917885783598961374091217706913188466296401160539642182726035726687443900348340107543919209384092585791781784965151750172287143594006697424373471933550241646887584592117230977619419608925129075503042298031632418485645110806386671076541634088187404660235253425913977988457803371862378754008715266143248886594775269121589314349910061110526901497312013096392881913275467515252336580818491803154083969143429260128564062128474235652684628823196980599518091411714622541263454921430532875194923020816082291367977626859225647260441056793600620044355004520061405712934693767586276361987986353184428206796910018822935787953518888735821909362165092182652011835647343071617460253581558990795986533942581653647875819354781421502354473961345385198979514054957126009545803587143492409119702450044061563635650607176104639659693252557157747329756385689478135903673004780974945332181182331618410536522422775269398589534192801313293584579393352579589961993531238670004217564430571719805142508512929901256944419105088938786945605980727158843458302995742938668939702239825953007801103991888486800230401979780604102410159664266901152709577352291697843371402486350932942355641535006279300241381866773182613271461488722834158539513378409452646375645206644347426516373388719841535852985768552544334029732077245579596661317562202795517424740909676438322407614323663006548981862056033774637236657998141267221490423848098489135408380282727678277627344704257053871156061824420137791560970183236250021690978302642925215006676036629341076858817959487099124412861420748706663134436070578245254198041096140741340623838269819431445622289621722785041425561857236176090514761898838441309555274833356481915376976711357739730268311477622851257904424795694454013520920412877568288886502251693791245406936329501632609713743804763962171829613980585344645235717957215370952854586577949662052014292921849481529522360964658729430747977722878816369260474636530467654897799755925642498137893542921115573984035727293173478000362331701430415605675507987217219311664603514093007039388973579888260996606123382602738986788139639252566083066780914231355387324793448333181452499131630664035343274822597846888274074378962134796174512215144907100417199127861814425031882399334762606155330623582206973809525840819901669365306584173066797222399375914093024929696880707170421334732935983611758366822191692876315023365473273628080152297908969445133836146637232403096628011531787628448826251213461035766943322504875699986887033559482991816581200101401401042911415069195015979767591059580724182156617600860720006938067767454846234050461946908781461853603049841845214994658612883211970119389446464511779142235285147671666382696815130572257537087837044236848350469514979607943128714962516796189901850103498869582137944558419372857237658616201819168292081256546385562739337915145416140336674271562852735898752424456279587536139190859426637384350028609585511709745509021080859320546565451975285281474803228333266022119235604848878622398085124599935002009977892946542438758315329555669789719627628466955971477308773616324301173929846800249587569241473436766837969075447209899409095677250808131580063545778789129572835631898487949361461393747117460042329682635233248299326611105604043427586537582224025968705627213600804673591115684799839496652583857378603551428101884085026047029758439608560689564915668981825948044720059976113854182091780739615662726063767946903040270449560457624694271167869908390177158005265164647626514889145176138084237492744757055939703175887840549849425155513135394769190438339099289337624054377635814278389148567336463716139264002824613997324696606460758559020382572351041253732092586172092199796871030625165581349096915612966340067796875358779897364735957728385114371303178446165929165505613740425610101748694050444457936543921067170095980377774436066788746691325642950462796957381290931007865721724075504141820125507796402811917072939091806990578586084229253060806301809321005832149090336935821203896119065494056361705958963461785252460238609226292038061987898532211868078446326934525608289053073838343991960098718681366114129854147294825080174446549122822790704025480685200931003832409164661191489115004679292683014001749155936134266601650259662192443153930486079673889607105552977196297926831738212718013595239361935344196224028150689859353462156178842885230587964167876462642993296029948840340603217581343820264972747642535901119468489287878516896939908243016445813121430579145620027347392723921499424279001159050345670331414818793858806819702852879764370061626414692717186291472969460544547777340543772879820992579895457003536559746392410284502201300851577529639955442285660462341915155187970010793230023329426334965143490116011317846408982979761657219901251183922172948351734620935256377789700939867044775873700979720532162475229578918435371491705563698524008088751239076274664886868207053128602567998896157727704259333452402267579164318089863236787003654764529603179071190756593206863492782690369003138996625592559458697945406541443939024444476329907735976916413312119087584068509687887713894723638913838906774253702298090159797260075996529592621999092373319356897877718839947252601573742916271122497707323215675074588668901012547549098875264784199907181555292181483018056999372697789036433547918680561679194277730461841040908779102599638156948644142394679890374328233319043206025440483225106579199912964094051110242215205373079862782868273805744775156339987308464264759265473041914858269048590534413517970190858216598025084180284521903523803399434632489458165563281138429937263467508369749556033318214596988785596032064053424700429460101398703214473927935962806449782971927177840619998553640510261393343872542442623270235048509490947555055438000129667081445328047162955275143696772821302177877175235917129434653367768033699230264348795622625208628930333020953364958373079620463658345108020047635215232217885462415034485980166022916993877353522742713602701649207488698598502601674950066020778359261271072808587129737267620978362578473871016146271386285375487535160802297840869838077457951967552301078740755768697599470418138580139438323269694236746931333339863950850199337828813722477822875143825040535884154007865027342867900155857855733531933254465386437254546163268833085621770263591565499360307309797607219433871438063378247222119133715311332812215207435393041084773404272357153751307520797994242545700839649526217164127858699802764497664362263172290609482490247201510180836993218457787804510705653619739641826008691115412147860284285338652990643417077154749617851043437928086945656904391640119913671090920875855755321486379730487868285377345326889535049899666423933461699548044046651519603237166410505558323283308000672614726891372890835227684340383727127636822565434646584651251319865883592852803573154678274382419039537918787539814289054652640335592211281788867791385493528149054632573658349033829451692438210774539447889827505499207248726995254071632779543734854842479351663914952579961018454644371454257311081962694314411591982353515294600914091265189505670974066762527824419865354304496451644732185896732355797400747514108513072104938525518951683173743376166607142404686207065378904270068653164312759131520300933794250662683161574685940463452670677612004267995136853224890793449342601756400669680949054543003994138697374652682602123273545161409468197515769884865028462588547423034496018434065903176200645967921967629146981619169201483106774320467950743067387812602420927040001529217745248880627800637816229688514833109444119078671480470736145962587286124201679988441346462545710944866165642370677584710932243395070345001303958545193696135192030257415418906153861198746779753244691530816194538121781113279155121744572368269528909274933101908754144150495684376826508341784243656686611743961904958233044933170467378992410003219532759552957112740084020983289963662434287056173936359075154483212131527679384370124030434996794715410151303893082644288523730910611434956126335166074312643461054229403513912060973727568634323947092154219941052796851476773842874140706374883369554893598558770961287848432884192940275593310843808437535544819226867258761680207849703788820947652600985089995839946449731048538391517673916647930403797764295951807681308068124405306157833188067595956604180867890266291099932602224265143380731455215797375721447965226147256085681791094345156762301366126432066694330871332303565166638083879735959787534768462701084043108219991748198665683986610539509178477007277115620096225605857999903669631944127772424300082251554363527046702190795355864955941651618586016171051935273603024325066481102826893643727052115685041244528191099019262617565472129199821676488587359259053237950141056130469480289732581039152505482531279916054390977868151891730890029747584365718457926872028858405015745726937666246318604999604436571846892760302794429536890664831077693894781269356893724348106575638383325791025711117690086886054536770436964087630888332503294605712909382710514927053387611698082476370990618460168909566489969557646030168388206454752659924051717718473106293146182066056430172548065016714902623054707739278061281518934363229902081978224062138960408278349357097305014575006409256053306011260311728460682165418475402642154245112027001981438999253371508555818966034648829599410880055024335872497478898612391149156735585363775836662573704293024807049308959565861268317210074769358182319489930957726526435575059132070190569305284512337298393254035455065476225629803626927920987679558513992857331184342127312295681039943442359914044066377046394090338158888899129439706775936492571203289844149112586159489833130729641699092714213915152009135893874581631763452128929534868017652361734017898437336326809670970743939955346005296198392692767999515313652067108469510730952130579621847161497840619263174982728092633318895089047071719533057628476809807969354741732012069450367379218545330174195554315435584398277680038652652055906853557374679384211181981721564205169689942474998472459292787080431404322391590967247152686412678250468194385857040117706998024175988723776968001313039091100354966892553985129270617095222770545124511647241802320075931592772182198870878131048579585455881680746383464983093046643448231126322898140992640543085883428800750369096577939124298761596340856150117098583108387689497993417523305367061370541088382368714248011823330657764308644699357472204777795668675938449624662286804125662239010571169902060456992401663972519982200025619965198833744927830657622669424861413485791731147612121315035467777370129112995418167786752787052099786112972689786606240223800515509162430312444609615385620686105570720613732061166884235487476393513109171508145297663391719619292220473148541812396354735741659864023479662387443378914506775140920313270493842637168034396905381530451191916817084016599906683153761143199832118300860763356706182986393113741539692279494622610156524502295459414918037393252910861281524819854967775871850335006845957904363273149207189391763951257809215404367374980936390379951202650767664568367065135667015976657706855608176154821816900083785587453518267933961321561487153140441800581889168584359101068181961967147081958010815515738446899059346778033928859729209975147781189549133529245967010250714807151596414022561732979203663992014742653290098721622717657591659566653893654564533897300750963612168259235399827961708369154686288960719181940644550386090114633115850904746222577559140212880196859504127310820127895502461386993125130026995315574278915805141198502912016767152232448067411278218261628672615165882178563688551528503772698198336346153904115068618384977400551649183320376376484169757650734534933037182519704069414240488696970716006518937785126266701311515078341909316576404052457219776462074953628325606798553536119798103793242324332497268654732114301960939988744531098513113684722642003333027711920950264080958451368558751691878033926996026056498074419842132826318156284650751069949523028571574509053882971021535184643487384651236135520581289928048672966556025103324758581087128825135096965371031013312770480662964839183433516222422050970406656644388739726525245076280712134063423112370686972965057167462288277252065601653454095359104564157132901650443574268637842410823595180914633859817568752384639994905338697005861069270689129212069778250275301690423618627844380315538041073136121043242734357067226251994310127247827841777156704426560658487303301247068388314151653796235725992676954684133726802867790310584506680315099168071297356582836893884729143242242143865552043165815891234163426670825536414335580857637632468399879161087750526394883421627565819918959925444785160742887166681198930379349703615589977190001705849801267107052644308713816375762890175700957621699009953081863824806097147135240414523446673420112756012901389131504855797492791178427071568378057093315120766920559874349283461317369568535314282170400834123452693341619810748438930431805184503487478464216688084968949810978637735468119563669780847471537462337995609636616714131320066842790264953095905023171773257933114596101476355065390878268535575323267107697351040130815779752551753205737851948375501997591059537041592138611477448580629439369468059221137721175114734406180620438076522759570462640086649157580381577843673828428041028359381869364957210466112160847225740371858445344488512762754646558947892585062767713287027535691183465181998866122051172221752578693160997021930007412849860497408014331254305772619738880561760830138141958119328553262413837312410723021999332778218109731089926057320977488589099072013254215067864455915588691680964489790675710731428160878871739645820012364878500960519046250462618423672544362383003243130343467810465257140980349270504612553465805981201756828842463558122783378051406140922099045988233932438288676885550920127758166005793962630019010402201242014169161245267670629402041256778071240830154978275288001491103305463889995930968952740806480645453852515955856882067301577282668103745657046683153975828765972196047518492095804166310209434629905107298973948895938597881323381824411381075627236853688513863245547371819988823101072490512074684518338368239758586920465237794961834539601790118724129417851578453364160293308562082040997598385150939034785250584859645929396723079226566236596511667058482146471457745897647500357131069143896189068744981921383801015326171136964636686325736573827436257709841005030147556008135071575852606116048828897900953794588344452099002076464652274489058596145900431576660140969287056917427819071699577989466967692307912979598828158944410687925315638976601883360378964410322903985578958814480858049295976072742186963832454633860958027074063486416233414104504705471765375712810177994783163840154766248309503698029606001349411532916605130273436578405953996936885633186050604310515087924890322653264760792071965681609687035988546070699289005224015297219032037102449014959623484179940425931064122777551255229161128063434564037521081820000329501343092435228694241487649906415130640484358130131955520495810333134772084707768492149761414565654348868579373149186849818314212762601668099647633921668680622396365568562099769037598561990325144568099374278795925401461779211773477243786347859738431872250487137423548193593192505694700126846382802027679250898391361280463239877978192732840206647663310187590905191952154953612052490577913164911475253726580179673085688035835411158973072205529629531729184232318676186099549326699440428852807567769685662482522650774314956573660462179726593955310102744845307733624076443550492274942317716492539156287437181294025654341420509134640852906069654002855960059943813421819017374604663369372073351002653687350401854453745980014905784022205813328659390798658526238228069753290687687036278135218477778045341902796251384590767884965303381309196693338694317455613202650542838352492777788307528641652245538865867526592611914193426176975240799242226453284197809016718873644197514315450609150625615527738385074270244502566728418078415014785529127887906232512773200380821826598132929974868041650538788016122007134403163397178101221245728081330145570435677934589032057896985283034606154828292562297981146913830576753669403251717987772412682006879757217479518960410975529476163461751532739759771042560595488251448650023398925050183052704868092258235726641100290275318977978424925480377599266997244869505015839249806422529426440229685270907685795399977422048332526037444055314272496650967891434201341632147413783310476386439669467222566771048041069583536191702722595195497800413449418435477415261793481535233325345854746901229272661678796915293470158538058954678705818345163526438055488315744065048632811429105071459188404705186822851102360964455211109369186718798117049030960570999773952859762300699872891160879437517753956868491551345292474065103545468668088817677267743395522494350459134050063624543862646004971194712000733049713861029576496316147676649178833396596809593575035691743103996579076692061292344108467651554629030807168791628118675252439021282793381834585010330902422408479232110052142131733594422569685475291054652704317483798995761790639860162707938428748703456399748234825437556997748250922724961018997489466633718994867225663502006465000192103402345769631538711115802975641670972398929845504247791846174468627221341591389877769826769454888814867662407758682524027991655140205522678814592515461811417348648178283454903297484687414024871330914171250729932738270800957530199782346952688510293656360259202984081531320390615039570588430215683436998842606227067119462114942064148839781001795177801146312679125749469728387243740129127310057027625430418839284856733814424704339116610411826974327026725235758018671580021740044764301587787234661881347148718576525885680602521118317996551032400328044820310896119667055860051954978764243137485867424723439220367638397213191950789704739243353767996842154435224841477079818871935507379209285710815138700874444432558194352988728292435864150213296548441125859415464714623500054380775720845361763328894339924678431043157051223536236929103023130086745689848880117401935840070125145763687185495095735915789155719880929721521510981992130350173600531677094192135764269737181308840399283396503844335949709785328721091325047478548462307701096610479986204146636055854938047062978500500033581285289370926674179894186057160490780434970618233408650568284070844104945218051425029450042616933813545729504443932773218812602468039094102086308688510455063984911152241511285728520550134565032165871471710171432824783603094259469411877206491203592012957770622091146800906251687511161486921062630851149293558676067379428301282497665419157888129121550441346241823251341323005788484235845165328663480672379882363881022288036815708054168219178051299375484823209824220912901457527946579624701183659812536136543893567490355642817270223160253039942496922071898304571308835342217434742667836356070539678331890396244853653623631388495294279100498675841499845039291321604522522563522568819971674467212661267850673544599341702664538461782404023819064184526259166754262973808987064000756001208400829854513563986845059661733432768511363737730265227176527053359153178458142953508366761195634100900310165917268415790303099774370388572568304197640932956390901779899809250057262638383145933794379397910483858243385154000674882493936038403533719051399328332089472201049273583932345920982677947385849644302882236077695217745131372092274050626618262530881686140180612197752476263606316599587690238738150396551973472359711179131032684318199205962195062582619016094258198988775869702888005280393427351456347157865074445907183274797792227052387646028553994231148003458917649857365449618339330218429245030733259465026298683777632049449808061800655395650779270120769198402944006915203192338936602848105302280996568252546599694527030684013780853787349666055029824282246122166789538363901514976331672077628922789734959611967099414588600692465179359705156418037078235806822777425663700513371289531761368160097435463371749234055036328585814141402058711098223199134533869670611329967411813904421060915200575907749896054427269550291734983643010616895646861416301296102705226922070230119841376806693181097147302571790395055023222304585065023799929720971410662342044158763884666614662079235857348468311690171029625265534859794128561654367535159182153551030952955367094380860855145974430201762008324472391087294958729034096864629661328116690011406518136812403381185318303024969439495854797420188161786666047857170111429964302241646181069629190777470194252388731868527812057554752422018957728904619572566326033231090251365557903868136619931121535187054283475559494861196846957596681301487601134972842468742079990176343443630005378557507963366272497280617399816280277168457490774117886677341450584322355113941717106824737242423063093556146986176463777831867832094469178936428659919293661304666303287291101894332773598114735004888746547188421014368949520950565028535238055656999848098396487642043763393920558983698397707212604563573607521280700977762939171697782984881791608455311400667042266883122063417309814574511584082084550576529722978317505807991957090430655594609690419363579125924675587272581860427245093428340156010692680267109190539274397966781488676421933188060397283174010473602873399580460675081926491800514658626887612603586858877764008912928793466527050290466437991169666192586932280250668950032754596973661950357256689870106677347584970597753114371335500196605295347364299598815441537155477186378734480177213198349228203077619720709466172264807555736163831438685580369856672420570174934520845583296740923014109935899027957108848674515972055871086529995147210969696470213960150248547695817331673976216801297365892275697087930309364542447629693545264284812876421808945336850005364776312601364124799143289201561063333374806001653965314411568475910963262384692869245178239936893372523088775529667030977582453530315539194037088911894929233252273489421377498806006327397740291957418299390097808917216984867223632148454172927061847421536011947459205525948924384577857245921320419403952800078622103254154476270264804769014220102012658722506175242495643996428883049901879824276773441005350919183771248898099800796746947088076268633048966198196487196183372727193824426478449179136111966256313588426502958629546136623500257018589956361649938356486302048022698663900028419563987856000690714663452447238141064114445694116893447387782461418772708649294173888906219887973080003144164383444041072591500951059692244810496777754582628710366778299382714233642115048673600652035515898034214100923152092272990380437993174852646737014181245314953244011361434738381085064881969092283362274772229099623704393822285973415204800170156856065880321888602612061968664613730239508847478173995376639680689439810282023337256105459989855824913824498639184849895397188349303943390012015222904163675035006851149965014702632520799474135401897585615084272547032391366444394236417828169172455803224536293933722426265356826978916218266878509513804330037727403796451190272999168423960081578251999026016133614645639866186674091767955783088754143301015932244335144624275810373443821933692078943401971496764831317783329153398751452383865518484785797575593954794314925318592773044520746384894531826942212750017687896664170374431418117010484290174205591220046893277237635717323071116668628965758130643756596418566838563109644406630534583768158207860684255290184181266518795326051490435075455651556904354698219753310137074392937073248669938053454855208649228163558205429650759625546279557343777293698922331895817125338285872132195655023350956221191777992276465283227502699231909397018406266661793809311238557083610209527968937164968869625040922344083633781004089959310895472948821859304997997711854665099864969860983576696317633715794846096151091795465327775862716415568781612372828526578762114442929904760463228435083729953798360602943584814033600852695800319418992982497121468174958621401824124158743001159229067198805806493355696849640011913089085424650414193400000085193724648194235576391656505679146133292074155958067147571937336524056805584745383805370529828991877141554179289672913839751229205580656176495893867762439934340871651721878149511230838607275576317785735244517293962186227507413206081964662170585573953981338455084318393442620740193501954806294401466259620404131384312419183730383636691117187878134232313134746667945011724973794270603036937698011958724513504741241439878701789723180884249572850225822996475691706692735248459551453797079242845885349515748098043427442489586285248951047315329034657748947206381028581053720023861552122878894103122133489137321487172805410695258584547546837780932503656074977219969723634958353448234927346952440896261224817354297239663379247144510606323459964566694840073587279577694698796849470208187953058444966183405590378703940947271132514896240167002179016017608429730541740580106790255691078777099734093627935673716492913442979436215176682512875652632633976565933532480658182315919984517149750466992537577194922328815183244995118001912431742096074947993963862018592910055893749136724310909185787567462099031865955645096340308333241133576101964879492163223436406805297700861232240394004929588274990350502321500724155431278625121124085649172094818636670526135964329282538456313145467129623776385511577619762832979820960930690438289676533548385684001730095580344631125691040160573286088796697972271202631980371872453373270771331919144605647279297061180879074442621875373871522113398602090053409948990100847889975115191390700598430356673355088862466118432112584974098565824614831152619956691580106614726110978555661833879661950029667310836544656316515354079438318086320536753480859646655418330968423053328447000393277088873794344266780119604151345631550899204604784375973418945407268554827735870717111693772103961363264043796734125226850739956075751296283736599295363744047607845337903937769165482649817077580228420071055125344566740152403430671499791312300203269694867656338406693446467787340871963952533752247422966180950117910008365677563876235211534662729468048318487505720994651217858901179814496593177460822135534917165514141663879317309263295321617652462026830164859901195030435334867051625120906053856836848858255432566183771611852553840677672968279686192668664006817084459797931315916073813734916541663435359582542231339634853544375121908675252806209015630072478120288088618491899670381276439953684122191736567717659764830063974267116718266182547213008795274051433147901669389912526509130276956721995192604765331328773122106603536897640285282149223601227180041803305501275589235782892245158224459300907173273757252376105991326896975061286960854148671645003491053899689071927280736880359780236109461275209424932761379298942355406325413910304315358820954593896581559143951758538237263559171715445864058149799324988685189755926142200874340657492076147567028257396053676428890042088147351901814693314443512505596167318872115212130823329211907168652673230604385893967834727302235382101147197785387596162735818289688161702313587849789312986592875469379257942497208485093935917321153271452233117649036070063549097652934535961619310235656115822882263828908842264181374887881638977118165097128568899027896472996029568260226141957766194962770688776740934031680559272576015776542539286635726426971273553622768994085881363553464133833650601659491566283629831810144889787209843134616116028499808046810064710261164519401348430260305458989514396203598388031364397482486038113483002225351603097350961820095795436110786762658205747520041568252212851501287268985193180510757132999618675719724998560466889614972024178299107099350682572548793229520639925862804148919018171746283043806606982363802487895940752476612315743592488955660989336395308257322856753477246715015844003723844285200262022055283845132673717142973168581983981411939981422371033715252193580140967684061018858060387326241001645274653824623944721570043800726853106141095947348931408966625908966692769463492404698440505546246586030709990996307935505890298290036271808929921786580780410620016208064485155983481041948285725524044530736522978140303837358683153223316723930863715130334122138315023725332602836190567934741043524929090733424523799093996071208008243273535189053739227162621152921973828198950938323433757601870589164910873919357305190185502571035368780768245099397520744273061886052277139527053065835747710609538350069434276975462617796429153986009185678003264365378075941711377214571011353740804359739999985210025514197105231438299481272312238475629906565287454376744714565365439862763492847817584104948084126128358839867043599254411697516977135283003767254373021145428455916445199231596912027906157056601970944992153007672675081022681440914937002380208414654050392510803750019709191112088634502565342753398105807675009803703984490743465432946360211478513995728497443581393350805032665498377261151848940195473935328369961945912718136230803026545178081738441302994361664718060757507237757730922948136808330005868121957529609483748619408911427649405662798792350827102543071720491802658350558372341480686317088434851020996309169194866455557730130021765036634411891707939079431205629044950961442266016845708103827454863939073461145176135910358976286171702684250625137185749798290393586744495235129927499443544013792578029172352378029842335716942247029796224009483458416287229910952217338360102025219447101673602393132829910144445474284481976374867339534418663780554982129164957107984348999615269992420595068105332045810631514684499419090369069152396172493262248492750773123939444408645594417724716272260940222988044427431074291282946994583182580402529167225712472895400498706591741480068195415651075564552310985529127327466212755936348994073828255227154104355890006948395075337691164809364419786247716387005926752835813426815736596453241994761778162975052955035951169067394658565139707953959472667282193652573574273071523381366016211438210972002072542392973899053684910498405604292668259944619363072154711620937534198040637274671628309615475683640107665233256382599137302081487525519461110973953376798653198186771543948078031202762630927587386669408913321576020720808311155547559516794330850431556540471714815083267742824011741379380828790175992395645691077493484578330926491804933290836224745781979911837019778070960299919230014857729865323524373115989172258059048841550016046225665519944657545526752764282638639747860296434010568736562797853089500450370903111240708509755668621489042962681907159953978059018705278506273487331834964744851303184294854676922266178103896725174852543867170094645511134198991267236927477137952309237238914941788579626726738354605905492959815609402720555034233088563792831919826903460527127212837385467043959712807622944501255662304590334973391763060696558578154022745380379782017347095313053296167774762745201367144429539723103055606186422566025083398449702628467813936716770615633618085922145876456217851333326218587483004930636723132160235850933853769896962703200797126509177121654074606467180136525646259670660477194550794450882680601070445899064085055366169626589076577297840348638838688725077225781708329194399883731259589857450322183643598709624386619987591071778816576576643416432712349735243064245619054170258331141132163333328688259888381581823238283201220229120276186128751781449245132449572892434708985914918206578225901921143624981107197109223830855927924747999796731284316102512569995330469103817188929991048688283030906685837411751815644925061173561150021569126957443860484295958495099670868517910912128677588447838909246932244470760950944372891252902524233883254409315922058009979823615685447617654150366688955007855583968585422685653294009787525595536237048832998240193293341199100285105472882151819361037689013529310584363535804255620631514307185429955139978050481121174093527342024311964912556000186605592832368252667751478124086992274333014076574370013661075513524324076696740375500316705658427046262545551063613689841140500180455010246462046963457696830719736215188994283827976237156279359284929018341655189755008660134756152234157976811285806405937253150828624796982875693891752164126751200484265369679310589801936432079881524208784786240939653770401095824638204437457183633290725992084050564031509613650870240778159023075925429493314087181982450804308159755493352511942193469284621930645860136538982989197292209932811672870889489810789687766713180292090099207955911282127906864884023655470346852133867432850931920266896164527977228376668796906916748996050287029745953997350451266360335283452373486166050948437525575339768211210995165900984675813533300917304027512922747575051571357932204829624384702540250073671175547173640609911608831255060629315785428126140315013641633876630659330665846968840293415585491155988924850835281000528228929060488691789963447885480772229696635314677509089060187857765332996549993239158770625767404803382732217328240757698669330432348218803462751302697137168471861027769086195912580906166943989805694842584102830749273060902533129528588192665778520554149491483043258769262684828431023425586144838200556445052317140183492683845192498973245765027074986437598732023900701968879975630100465118357288455231818006416856241847832286975459792048579977392707141801901342338823869101594819517517702928548950739146421531053441394634114618169498071609892760477570966901389867169808673302721777955812848311191708364672637747204398840414939739489902737134998087180855555896986906620882088871495894169357391568402990949149638082610402190282731261775183644552156999363797843418335582528995741227316014605627216234488668643832283622854346836593816037869888155540680281040502657883184006458875179479193888294816251027259923123979407849859956406982608707603458930038140652182710292940271801551316018205276007060976779569350907396959674633251094136837552347530401864586517926428217302048344672328847214429724054252655913293976707702144468696422026336724196194379268923085544964175721822439909513652851966372291446077561453979242410125029578326182460631602525817749961021426553160603731089310127430452140125385683110538490077101715770710163167503195813831011270556523954466027847239832645662854808796382323520307821162800462301440517596031843488397367018192493219052221269689923010614366062609276434031978262319909544513832385154052814347352006343807567577146094390957720243378253044402708775767793561048812620560387775800563504014993838546397069976938134896120786747218298098436863756972864537195242838057774353438644768803545576133983710565507260110998276224905378589979121346715734900309144082684849375477320426830356590019163267957912512092533524836982420534485712198219290998899432542130301598348571629986140560424980417321721786946097938359921146266234415466097274846960149566165004497865936504929492847736509638324962216368351054393614623003308699589558148849809516122745816762602987421095275509865224854503431878071285031831405811202953279461489446860437910762370797637384345370382550745759764671730769781826613106088408830257558743250316371242322374514329355224340674741045654789312369951051244240119477041515062285674039942948563703333395480318476305294664626108770840230690079383942757082184794344798937982227998553525941040740758654996334214975162056086786247288044156230775941967449314543078848438647196766195436769911410010363755365092410577238917007158538075092327517844233874966770923161048875917504633252475233254586683950742457647360703903547491534635911456268970335807049900545477116938954629214031471467336316472124702237583690108009140054710500475423217795614525316692829861397323272214915260567503415186485165607060432083227061623198444527842441031355195458178370120317820050277436564782392472183920226803202428783577442479571283738134149190018092051955111241931828092204911042690062550388776849942357770585297546408207080454142230925526282957283241121505666886164692860612778032957357553979436788290675347765609664168467666159818800505015372291706964375982329454797055882325483998048680148077762258746883265880414816817140135867908784608334576443429840821601447257637204867129272290358776417775474873469621358831480400327454706481524515645555428963373337733275903029055500644926038564020219266137997684641254440626413843940510544151072885164027389619854298148394603680719069821005855703190463555662444290817330144701565258804789825837523285751066643029546804412578076868035569014231133482251809844693038440671993446114897688967300244222425240157147301836032658967367298473959343566185155996591182142355345863649987443786088153434986225054353168146880333892891985543601695816333268273675638385123605773576595854952530269917371249388533649617432343783687772719837359502575195459516062540497723481799635808334232534805696315140726724801465395863715235542941347285961980438662088292615240604115278171697942259022180876124927751895499684107049891501023554585205211258237324722971055654651417750726267092499228202997126415001498084634931133329204412915221922559258687961366303611288765383231606309539469394103648775784821810978631973278696222890665740704533892559578350229336597202746225901162182639038828863428855830007231031580665786532614252550416285390249666204522280415480066721410741768143295047588986171526950864219419234800480059273451055639506161959297371635719356749738209358042990312001786045826594259130697561022838707290342146533259793606371744962662568352463802973061045663901295650519016607579735161186954477943811493457963155804225106180536917918463768720513743270295170156517525642087275787235676109802076723408018035339008114562526837125337932621952223268589632488958800087237563188149481924868203169267159349350598056916656237758108666074671744162447279991408030989988081917381977971729165678536760875642047149491244042571782823535677337531698090734434434006091318888407169732815095138598300707675964789302355359895071788719588642163234917235577019367898939339971547292063896860572731702308473825685149016604436751703663991595068275947828055167061601153314230044968728511916864655408856650994477763553152238093090735920458096609632165991097321148679510365985757767173537659269872129670010353776624579788907696465155377563566312515817388786242563587460640767118976880801323079326002769035707092033566707594524558517244488645076598693790969326242724419889401046319872341582032328758664664943100502921337549639282024658630514618203809041958607463486195677085822286719410268366799843254977390392523649854171714632558191172184052660089153951934156025657940373255297761098197611390252492725444274854610619199996476332951434815858342484335183804944565398633979104079502461111240704857856130584785558014608483660706590506111119123757204725647926942299827098311998683985040287083549527483277275322196692287520591746084347752443345061885049855689016743272625131882374934594315401482427040476814703008763674920469263049861404706680230094262184914237889378884912233017790493940973082061716442244980783971340805763596870547531066535590537327265433072060685194461921928322518575851914251139959667772520669069924603508255108325023354543442885617797564585102061926878992825784302014885669548689384892376630407653695712735719531041399726613050656781095270303925797347413310244895144940878137553622856571829498150703435738070904833257942541589930292987960512520282259964130161730279923327518367242352066796452221617399197299177700053327672074906723877641818216021928107749336599570555320460503350563506045102889506515613857915188191833951416924456985595859676357151891709209979400130674445720226037786082218477183562100722495412510013162054761315108728649079395247488471174759456319666856085918933774019872553443469880227945274641553510906439574691939322826413861537093141588126258232429250514366962349595916901828972335020017208130706057355264155048400719588374403457687202324727052014448961569765008301826607201120076846174049121500240645483992275048833603070424550493787924355867333919857038594738473952351349407268308216400384045600028380228828056217477794218801299028756966793440243076068161116190414529379797279281816402929848554404050428950630468468305780730229477002367086223466006145923701913582318797482008496478727857364147135037318514695208363962504479850852954097901474536891300816250224416331596664101421775731704034781634047693578909831461638090466754783251096819189086590073379673954359129819368642458555972692137606039873467537665781569113232084533025203385383792540503658762113883603962810942130856049709428806461563629011163955120571954895255459035983077995015210710526964104273103663276721890103551011942890143467848792937956295665055341446449133574718397445869963878986272558013759305671861757613682005190746686976150728496173633998868178998612213014007274825081370318123444967523445041187363831944309541314688282868448466622921521270989866786462999119867393223793981285115200898736096631872182639416923917565652448472479549693672456580015139761487236465671054489540908571848656643963556056296340658397965416284099932809553018308640008040367065554930086192877118494428861685993063246623446176292710065619707554406107142050132568292148263537317428705388348585640864464706033408136675521199134847381214290106044476826124620616148635704517680021320337457326585329589626872445117041492487048297398174187635502055288844277775423334942041133586613433826032104780359870452166337182247904240417844873971475704291511495076789591940581305222064318448862440066759002680587862323361727784375326547516081003562105098807342679469306775921980416213172614838319487634206749767158165113563987839597495191518973507662166373315223426725557930416533905285890140213227103373224251496278002474794605683241550672109906593577012919111254440862425850850303551297873978656603710403205888646970396662295772535700970528515815650199413257769124972803089815339920986340188979132215652611869264005847746552980952327814384538947773133923874403004748466297523734075401045958211872204483116903242025688345996694567689563641988343413344184199195981979293463815245703018610130903633139793415891517434004454890375221226992640275346539785823676073036554869912797087964832068566489986584559735441145193750158797132438770632840492295111443251190250457331645993774142249369653446035404380622065862831747720544394105016921981201087841841676627299702533588861074486502169068387687529255142315400471103851111329461470156702299196550757018773559180516710119871925489017507462013732037601467346949222242935869645202347874619128652114428061486141765790103278030696041530553921836248197623232526072292873570606616950330462862979056788208848062122065610518508973951013048618689126263668586609862248757449206006640762002502441279581036754140748137425633140573802104489373245942983558882774520039734380643829885197100301251522134374124886541461391845629521182263651660958635045920694246952630458845742466358219913169943507250795570070464723577865708330022150632979610974185168918129909486474413215311566901920399693799709733724526248342759023676426806287164826142094682365055388160342830403581205042006266379334492622631494945920015993516046226389153009346508495387678980724050155247089872489667431909257203002229589892114153266204333453283709703296222768496567477548266060713409172438467183151362409854700172124712933256348196851214865489322614578218533762730995075547957286184331297125019004235305756766621030075802807370075326889844803036301636209418729912919462601081527310177749519693725108131926036498951433086685434481564826240453710139350152000384487606757615695582174022668941340838343178293970913689215121547415119276499928595585422653525197649219667223692679886229374013111875944709418753331832724516510469953013898738661384864187628359198422920090343333145130670969811611455867380549195803233593076924586479933432639069154506433424645616416549471697567747955511336103722715145406703640628775031052063921965399382086641827845714402369919283317994030146544257887801614302932324734436562619187643980307467124910137386588631143140864592197474915228775001575555702746725366183741677059624820290565173622867113274474086864116438281559870135966669483744690732556368990252831669660198385556348723578046346629688876075044484348169522833797404026234893107438528673579204179670986137788986614405531269128765920938567572584315035962852493888064348070587819752896367932703789379417860395662607235155491039790399336327178633078305521570253326513980863870573020904054453886987299130293124407028861829407159750850262365000318901397608642981853218672694347282730113276887497730078055773501759591642930267337234871221580472194288489614076223942435203546322065131616306220031634501382728014657017762056118866924421946699967794981090257434753374916246068385051005053950254030427522371578186243237058593653002614112914937040537837905628828041513533223961007644635762307870158463924992500958887611378023998116119730907879672340868546613882944900922341131459876883779573147298384643315607695034600169072811305818573985278022964237684042654747378446801419506911324285037303325661521685246362084333535111672848561050221197049383020102951346700045515421660287206407174900111016987476757635202337142659599526643540521174049984123027323346704656855994888486671815521589811263574584570568243050935933125909475767280454157788476703857711118983949712129506855015387265844859154868005434950156105051926871188229130751770578546815801535790742800270744767516149134854965703018088601650740711201768960009375230269324781997621292390269119036132537106232770146342670308929115104655693962442618594874587091738325569173326900782949453715805399928258154270211974053168023697523512978571745671687497175980424517707555369564841195418302499138257310509696517789535895213514261520216612651078267558940132956663660660565444393643292053417950120336320826900765019109617104408481481657603065258352191751365383979674016890500118335672814933635844181377765171875298867667683580566760084000794430862214737917101271072741024536151953317645562386303059029679291287565060233027284276055433112186052704537036050223676544351921428408002093272822565639295254040402144410073761147146360111061723588073373300303919968483330701823720091246535506466762891667323655490665109079630868851706827437301704598311347641663575248138048040507917973631171925761631214865591358954577703647811415324340404347509243382487347363293500154940205591952064634681529010071859757184209640245117167460067184807887941944557940502086797663134280166198207127835742329637443609836908851040993062137569331446710615275568142841345874623148153299991965149331222939061170844617584066534869251899821923529695004586261809375292405867830460371264543131517408880222425386480649348506527358146226961761925277646379889408036440365797828047992022305795641319595963731634683152087299761556276422761157650607528277232596705832007569525909012270682911010582283654660391567195053894855154109365826719134605020610932719348003358097460987312411693944810873727439979337678881565063473110953648607287960635108246476966168411121206898094540754361233203203817893018336601069427551708941057720502387806062302953556467049614156095664075291503000651066795851743938812821977390318331773857515586252504734113869075386739153032157905290827426245859833932976731142856823485310803257033800553448089870949243801763069979245258672540860589213452716580236052590577512653577694259440501282922648448090748580177859336475292797504857021926067272526820144316893344908997961815048936889990461945367623804437560345320242651707388488481212532254766805367408513872462489522160545274510889092563703335936137971037296501190612604011435901496538349688727083039926716022457310709377374138639631341227500566152258416699404028512827175987020383263479380062495012762533925639024588582098457676897739495580247711584525854499540824661966381803773745882370239797362653905733922219140527165032327692840282097284854000779620553278099121443454536917633489388075973458436746584568502590409193288572550538609130497276790684510436011537121783438533755727903554556448839847078013297503702916047598390823121262467661051801389594821417506290035649043679014841534514040670736784299267788793196584169573349058573831603986519751232584299051398524782091874351922877471159104312720455339415667668165165941506249600701004353671092911286524068641861900127690630043967425836826667878329316792534647780738568682111008449128727390425332365467544438405439437528938988843761000589291580913826023362333118941707181688038641430471081617460166098758722530189031665477171705424848821620203279601856604011358726301536096425204731218048629312122795807817295617845201690595936958591695686261466508460798509530756185765295385833425015948941549550514613690790057315139796331637100694724272238338093828635235161000840127142349987907613302707672572149935281423870767710762776430699862340705975172236414905014881561739106886187991741691836475377666974030559343083854076992591803911729826609381082061084643276130523285088572712008683276908000653943427329571096443593174713703123563288891592339168637751738816135113302499700868403215870882822230738999122676103720448971272791075303784472943488964894853382343810390500951370229550857392218677622238284257313300457202589231060920321204801243333237365947286724013226550545144658371321751567679385541297848644103127989944381194001297667060458709684397456961922950937360702696198339938266981293038673886904910997787574044042023703860023467397536852646280854671785581845496017676054008031953116364892552139241080650062867955723582205767321985995731890822173459551490137655718358022629104738484209862355685868976930196780227324172916021633182766182331024682110442981870428991404474485280570026749230037091047890784428877185914523943749011227193681972877984200931058493829031499562470781571861321954861220090122974981577578435497134564491974399403661636094413262412725548736590895635520393490949608860122385442683509106181195676083858988890540614524276045525569351340280238666396998650839472297481790238958049306762009794484209972811908159932062662780711355174726973763109386856979089917144243132044713670366151968069317176566808889206853998981905115727496147356256690501462313202107299476352297816004479885984355742346097006845471573923658437919347085940329208758841452638999113825989599067429501825927138770611219148758009992570300238433662865917637438644517707886451747330694349520673462355003759975135881211900118466208034613068504644263221829930297551987971689628028886070016209320689546476315207897273186869350019101403927692567344995273529435685573813548927119644533437850468662508144676180973996900188083762448148325735797718406303873407389170794447316494936963835435523344377744539913501248520127783364430448446903248584799125734249624546317256177362644375372229505844137099953737207766190413888881003847516832017836393943047969566455674671548043844671963239304945565741541356168252499973168329323979391781444005222226506004679123616197180955703219642808076504310548329382101585389209822840968332247988170387765790157840572988504082881315148342848570111133859053295363553618067689790807328862909867751151262352944299053979685347645116336078985674916500568786088513783565870583297309414518255234895304282017495143565426478543327271029765633143050052176364760049709784318151905734813779876390867927964793423820195389494238526643482413117436622979644328937396034581026515193166574567174814582609938272414955150141368134199104791650339506196687669256033099443134954516176365486689917230555880313925486894994068981992112288570505209129319146365925923148841881939731770594464949177256292697537719563804367266516711515618915934018019316450581261328215893526925702064519516012916898536408268248578274383924519342264576839692678673834083602929206901269708984224217085261728873479638164248113919957159849330497562072733250621101016067242684480880493009450798075528858193611798455539156908161626163396132465947061624983342576587446868408556652995664460589063801221488752347086514463715835623839815246112079337993491849640396255729403094249091711927875565233776503268349518149510560615357085595571523820283049652084449433305368190271949574769527651557620084850978359903615917842838224531240863478676777670318799860515954656428095911128258231054095636337915902207371769486341766266349114487952379053117704179572821781413905801017900465085109088766808587234152131159847388942068984774424632241579975451742795346025578782082154748038676697606924857678918728937362103231681007305365947344941336178174359674428272576074205001439531458379238084802369767570395889264207757157061671958106810699339389777280404509778961452606113488115542764205200464927293027736746234166089963925589966722718623893136004705854291283700444942255919356032112753512775383013114000526268640101732658193396066490919999062700865114752035081107026050836139301186511689783270463118212914466047120930032643554801337867946018036416339870792540992441803942665170172477055675018766004214048527381019285026539863724854224112793076463243378471991860933798884687675269010209501327206647635075403823432808421985600793901259181503043693643754588097598522607129922490675716158788863279825746279529591049269051941174622056967255857774235250457235169379252920590793036216152667641165057134579876390889182531702248670931418956567712712791453474052750759390883862484319777250002488920845959359003261267133440073975525330627506360706555405396877017232788599536963648101473972016474042863400614269463811122260475713149347431589240242883564619870399706051887321064287054176316800620822040923669151147403499139199132617069693516090573112239553197872594753750371087995819182986714375846233136955145433477129504158725852239798100334089383356550455499207193908690335620933132443894304584396954750187340277870241358672604647029693024068802891933905911273777994307644715936987206713590464005947747592150732690869057554456130253058369059126306699749290266550848314897676784681724674205440581163767544025146866981902202617412122162417812356605659279363082602271498526938698799013740379166719578329119796913059385212749550667644464227612091258839823421781010098607354813720221923269789374710943938310180946639444433427361834528872971813689431784781798509561031458618620510083382340873924055679965432592773608221194994997925655963493625069271000426421417253556100304746506812930264589051101253575162313362008063793176347762097483098499890479830734102736847397590543039709285574036064715288058041819098182941587960743869835551261810210025578602714669726898640996690034264738708836898130284834325154217791640255508190409539455051580232795678348155068616430787664143669274062254050478947296728542015823962093804895079023883734512183886466479510739935363578087686397540434332191381505183836272942524214391631827158958426497853885974644763518015164362862507607401971751750503595292961378073957988617285792534734344456682364010080951487316298395184628900963002631724955105338323359487149171381390338594003695437540605049925612546052894494810926693932597402195481441943761711984257694339638526304900271879635955390104586233180665669939398220271727805460112591393348599751227498481714925322233560607986157402559494754860274380886567374336649195655501155450728879456353690739934057087704635364660780014679778724656278470027938291843123451458729262452060206606020728314118937533502407495148456438950325732609382778033052285795584917645259179167793573916629472930093673968045069322825241160432963606535058012711302093593127460263090585919252122446544301976799563620610432454241300969334218753978586745040314486567812980182097838049521280473512061610983996177666871838980607119708665002251700348749061298769561459265254269329151080423647721070707204480710725663480861695215047967691433635818262295287551698743867956307963111452775776004633647583459761156337767862581078556299098540041749056760024159181190592985740467867839040391632506792084304617901281421690766141095120689713991346225594587713878190930208168606923376748891448963828303657779493200408061230201079473041037264388916065618843972503851148695522355196948600854082607241599372897928033407445721522636661376836370412376796975249871237533650337671097259942426773938682751109687290952569018788741920205803489971640407479252065747748596836888762498819083769516022703892601843045713447411618090420516431617670553207795248964748637715694367109380637695130296836796113909141557983410901578329712482263073914894231348083878819170778475842142839666184608506226611326299777181977678866643666731860900809623895565779001390664313780591938457587429910585795174256615067098482650537078891017442884327463784237420316027185932446649685621310790760386097230793841713169634862489495422625753553918908424199947301509500452399670151926768138127802285611877703450992933027994548164522002417129915306883077902661005350047492296859576952879413666258256724844328463808995842410208577202479653071918535201566054826815768237377145005634473484660890280844447645162938419304327447941279084496414500481439800623860750069499394770498170181084422784381019365460973795210106971309532612506381154873579520219742294354223360825507073283860957099625572698545950341932561214484016194271295439102128192458564534318873286844097632702116272839014569478749429160934225990042117416031084801950888467577520268446812336045544121395841517790471762225305107707964684140556309633693925361840168856705036214972888599258282221428147773029531098820367563409612106359024541458574819359028959666208433283844489669558640461451748282271382094757650699104581893208014469156295856729219560462951561230856040456864125103194462062031493781966089753032799736029537490938284336500852751780405973312082621485093124770906945133700909492467508936500966816803634214206323721982486510774304299366150301389705312312604012539804824176139788893660021637260133591545041071412300642859323272529271099089072350609426753432068157062951549385054050208103025935485959499280876060957158316823077921788847717089695902137839850651388166105191438789848822905977348285302016283342083483320984920963812364932786882122194510320060252058349755277116837205502738525940777428053792901279298033397573360638752659818420860842193244605837537887009245637696048385671734301956675475885211732554825435809134548088639498719276032282066151573310683983145101838745947431717262692094968284608882639820006385872620674869278983562867732900949003223861062347022529137295345716795347167751936409092012761988272724104958457865490212692715617258073470327761983870744018544822880952869578005589585784851862714044150978109182793534459012196884834469960607631157428330988533455435738920445560358558413908411650520501694340721125803155021072417714504100525893655253998189871587641094747196985122789899085885067912032005371768194376252721725734883038992524047925889759855782990875353317878650280107440998968980464441059450387749565940215794036367254962439200793228988774106013847528840003807035229857477778758085236014888667971947013788647472371093218432105542297397376306980856842840745846859492605705022086472913615998302340801905996511303914306075969084440295713946281437381747706830845728626235672262012752104086755948343853763548220911135100692661174865735221457489568329534450250659092951430946266121533514472036209968987365969389858748436301679629642593803849071965637964659090689827915004189290914909038953615758282032777312540490645048028051668368051836215563070103411252872940492107399956095231485826625542345939211928206422358488515238406826508434747845365212441078305506214870307334256791675666629621779716514277679420438749536149007066287174892254808181634026332796375628962584960137574940581289030429027533185376621960727267768749066027838402774278705014578845232289351027176730786501747014260853315306408866578058416890367722971270171830420110366238315982564843802707439083022006801074095343363152725599761350642977682464879692498521733831171950150244161779487793921425646967515530206029078567773603535829919050501857924441039290830917461172464076133920510895729285355608660993241134846016717374372526045598232934941986331728117560706044579818153522792615536907996529539043171372959150933363413745411632536352828962502228744884172763465100381898952898483149389767125108012275125901950438585247202230303339190488730611358451976886113254551905804056204072552616963290926774151765960572496086762465342972160185644083655607985015794379631503051355668626530193767553920093479019636368028870271633758251950914937589161725451901063466090894193001976525701813536559930203435254619665522010034889895711350978813680329075093270970016126039496526540934277687277722558679078460062678080090023565495078127736390674886291417413450574050431732943908705681640167421445146724053463085456318546927323064446882623572295232248541932249108342331244325826342413892188867120906030358563244510949133627889185140385203814611358821041349080545790290722802012201326234251523652487895624101826704113491874052217941804707655167956797852375980919025866720074401230877688343313657444816193201388031162077407382733963672426999202059381781178040721309067468902802888378640016908783862128446187061831984505546657799355744538280413240835863647151059859054200424949271416938893384626282695248961926470786613252145725056203932705757971766131060057020406166429968092488747371538758616156607273552346865912927997424510419362184273186761760942674987175279293379917307176966187715439429046298118292645411629013196769195156394026727094594256027571953934191649205731094435122896408336887845762603051830381777451935826771603401891132752820362389303895881045848475782125372502106459847641991558683437871917046097195192851864667450673359773017103580561732483709418990937080022258983640669179029988936108661755578259255127660959941726401252797112332305651869643596505203070372645265034332866312557145832537266977013173528545062767069283412819982829577702565205285431215507617741857058203241489140548702105635993219422065493901452749186918896874513539748657237284786597339850819254026471670897888974766650200180733790482832408317824070676799360190316614192590785722930296029882230529539385513300858935231922144786735934913244420427848896968926813875455896245761194929907953624218938312657350683140780585444108518129926772324329806607223505012218146511325337605227227082153633411829819659014923744641611108151310758417474376050529200000566155978462685381345807525951853430441971346235224091677685627519615401479983820090833108547892132170588489636465645730154578867991778616303410251303529234641077267917557589090164035427078532104246498440402888106110134228836743964831857338685571795567308793476013931908398993130658274093434340255861841070453270213395747086088720717371579857369201940020061602745755244802785460434513671973198742650823833709561868113419112441113190474050981001944032854200647051375808339579020869651082123018950625341957189774061268246104026381409855113254386919824247680174355599650675951071719088666947120568719796822489366493481456876806612336216686487860959008135658746621424015418669965373884726615553865437198900808211982777210772047703843558196460928300973156699350208905895416903197329736057524224049289165482333306557822079747158508757458508403310200122394180778119301953826589851947895942444576248538910355036361447799664620377705707877580359563052490249712063841072826641773212320294645391752784130214648129082736346753969255041512113130343214847860355014533360569094260696670102123401649846021464083009530194317841329294543515547883657230555737694423401148298714647976697422774232498412274494815252459060413497044031337629453845693438126502641607103944608989639561528729924819745993446501959859495327130859524213119303118685480974693544338116850322056688164925780376591128521155473640192829327948013997093504767336435749864192025129039625772105326580380291327877442115960129832816981451418143129262096921934788596656924427565531552607076864954027613549090454187203118551664301710252326676354371777330780850183770700760676196440746067625808863368098138497942550705880245167378096107137126179637179709317759942032404685334278486759384106546683930898271271271047468638623348992646344479392594318929891410426526652481521662258837672230410802700979306873277008678702546011577511036003322269037569110476786478082825338522521979505911537303329821288932375692994294841801959149507683301245144095156662819747204597352640918561970166635781199899244533689143080012018469079579779288494071117956405238649382957030090086948510740027185652481597151451980003144845783590621864348834602118984419639704895939140572153375956573165918982356578339085205059614842394242170190742788635065568366948381671863171195302634170830683590960873424604101382091284529333966265504881435393629439302278649353032835101323424944925178156346733435613042020850116138041447276677528733170046911812026149500484891368558693916711915324153603754206851233866030453267024159941084562009140267679568407177350220748527962892229010883060972987869960087568953784424740512044811802546277779978872807583496054232201684517723112510224363727825103018383197844540378185202679384575791737859567472394253928896565626348019196458583298988925166526639480892812163063659118515618351843538708955530167989068836803436658384514451910107684921705770849396312523167846748891341766438268960567885246256639647814552188977337072834219435676143955305495550983138122869231401907457670062588306905870612262697325168316241392460811619915935969918286376154448666809755653141104377265056612786551919011678203112449956294891293357135571514306199753012606197313837338864488572840715770334121900080524710992837797847998349802756816112717943498438617251803110701518363422051192955973600295864971110701796890262634119237793902985894131383800968209172576303002444102223720107779160845841632843617766545387009330857638496764583661981950204553195264372788589210502641901383632282444747810020464884121750144530653317446098649169273972868940981243981447524807264679198740970003017521070813522024630898456438459226306110720181932410638285188150913570679632975158860644537368724672028404498646148427116382887637880876489860056604157694592316928354290481587947544717297979475291889046421011305985739453265783708564338014902523460522811192627008950511708104684504352175135940143448467246656758597429389065275067831239649423652226958188470809922336095822261958398232144898573305135122639887361219560495548562171391874932497972858945906959573206859927541189564742082267003529086847261969219480128564895082922082406666977900539758265759972978694559667737297340863586361835123318875307196127707988620779772215206375595027858834147089986772935207864363858998332113188728047798054066630313357162603821895895204332196547934384470321325809232632660377998581710395113646047246665905565002477429486675728962931857385646718101183361599397812827595718609248848109522808955938139275810627931351201749195823240874347504152514853633727438298231880480152958056228762552651074211906686122230183644173120258430800564848048086224337901967593957250484849509427890578050045913210283394229863070276307514993032964312057236069897255549526609309601097991635601643102984952370233489718993427907984009153007594694856576101565921846535030331922981427056514069993460826891000410720493389978317795609790390230541316758903027784343669899866577159365310088023439276474888850019819171895033756119527844435281328840939992524084248950854022606402955408733722829498564157598745718426688355132045986852121073800538743893436453598325035116716687041416036551215523347628443008758283760254663008186629456707464241687194619911856160735852379709882634989294564672434217071964335864245462385351551202102020839188847193481673110106192157135387417195195091436895543307937410586918423829093904837958505116928941211214861469396744767565312142202445140275316765206059307014658780334673922232824770500445108190875577629164452572516269175823266397440709766243640968031435905794111052411182257996917345926536372812768445560771177199011304016842348887465623273007534112435525868667912758691001228698284548883183103270801203794118724400377354670752899040372114035110464391513315784460906292894698340908638593824472579253888610470614452003195596521985213847450877967109032099642299530417153239036453124174203157059967390778923295212985220073243531508871340103742019748311206676828788281051961839244864962436253484887256429188223620208985604636559416732410273678440361709038707012691625380864412587858103326587998079515566385602859613925886884200393634005720791226283256759596734855470499710237547645519200513955000279298490805581957189675675230941696239328954483606713758513467699758021130936316698716764006268242972799257243904168000339133884825506394234477737815011418741442998517898089136549323375487371998570094086953255249659831859578238434213498997436007053862426464571708083532342775079724726818854149900751638113551418517119789875771132012661620270829906717569251646531626278056583254372574429255554706701758388816186598941597566419821236398251076108027675211138673403305952413023876639649407928958316991872480096367441138404202232940260017639000667155666470136230891625226475105680653383960097828192666680038151214851930894929937733203662171740478089719715182543454586513124497947182253235314609446479517195418714438023137746134907251351089273556625016834376110189430910012023698227595328169192375863377757526624770503163020643924353770488843430568524907465358249336054809729622014990786258286571215497092067141493985214166414510399360372890115856177109730544266804240586819641867693194983964507045078161239556619223131773183106109844327385768901148995555964927447570866914538516828491788686474355743218972470258151479219206162178494835829188052107304652686256755133215668894419999601444919856610706216148544931610725263706451312799484819023339565734610012606337035343758778308783707811687925654439815644309203673041242589378296439106521888476632041617708489027696524695202176222504968624348931485015574999339788352250007516553973244627367899057043726031237976185123693484491762532650447361558167447544453402425542664576974065654706621659190036915105623755771814509065925249043570003573738562719274184539692192756253904291738043931298371136156825730538208610545594459231453057675218109976797620896417694731611351837644351827853037231292098340504776789903727717462380797008663038368721824840162421746641442942692257075416399894349285006751085186286896724342097892337926732131961885360649093528879890358539310660477017425117454556623944745354121527788851809043647355692553101439578766819577490220229557014112038740555069808540221511526348836241690752042223725653527283738797637670919134962587368349655182714722237773219448737289395600184197054194570549292142487466641164504368475869231630335223534507924938491093305915453149267439924110835521107032142781290092847190355231375160836499889117129740113093084767893879770733915016562669678699741136560624846494256929324019468252517555431977912781188135045941671210761936676471959625810350681407917819310415405420490262348821173576171237623930866867871524983263389058237377763104567130806261357918591822669427892366216448446840317835030477195972908935672813357733345612462442624557910617872494525062796199562170929300171016039831975822627984196630389689838835869315377278142628718748450666736481711827855820168441094436718600899280340704939773869044866843060761535021698430714672867353973313867364667208902987737372772971392258122216335334502964735830234418640907566546978943658571394874445366325796277938991030348903488036678064640866917849899403160634451961201527332878581701658808225560075087623079462189564566323881887405315643401463146252003239550822717164143055895724150043554574747664660163489053685942165548193926626553792346026551838728406821200807892094362827564568232257584126534950471868457557453365142672003828564960068245905121287426938728500694106487220095414215645113581251594381741712003556267804128691521200791819496998137634901845501491024573769234004278228496988331692690500992730911639490103569568564659657378342410800581330758220665943335565585077992750812770389969146564282036601413132033927094776006103550571727552169236246948444118929737311023535943056724104130648109649853542252136889343878503304111688357949093669302899361473901623166970753216247018201982401685699720166281534359383917281934379196702972065174647342658203917713428949378807366536054143879524013384707417465749696243986585238731691223017108236468065669462010537211429268025359609823921615235339414731667519326324522296938400086628651020472402535200468549778417950409101673618367290343937514035722600446739256064562599654541808654885225135352862047589301407727100397374108331389316705219873652802865292852048221973951838220460799172324691607998609936530227090369584963176188019432361390893171010560950303787683211696072132631243815616790366043671566346454820831320527531106735627653438649907119260986597457563303609052264347471067081573450099825466533348908313416521972238310584346462862928639381985028083603964654014538407771286886618017699778102038150994539566359489487118030436805912563223012655426159945723392428444498235621478796369420435737546499297616140988351618140665810251051026488833293455113531333909386150633308191909645457670214521373134803384471123876043371111616174116267192463797058459705292574309385214599951610794586439235615166249856689058432041764657359535235715723708226229773916879939751763801786426989867499468702580692248539104234032728757484539755279507808145533499408067170031596554657301576460666197094923467713490952310409683046518804172366906773887723720309808477852133656374638893412964902514692200709554690517872083366987217666364543140270895323206212927160291743110683652652398238537915389584177805747872476245248453560880140413577921221078383900153031065198796029367872286566934752580783373466266855134982453050548886091949195895911625951325367199021701579714427933562431637430827835644443516768772682826150606127106374228493276299378355003717263788278383027567770510121280319254886095332201946238657561414967611911940415701836260155350265492378667521830884061120437386225532941940327533242315924549411722450033258233612744024955777147805669118230312289888306028787274409845618975535910604204817927314933867276537269659682514643822734464574257552862750508343507956301106518236468450104929612387754163641626185927599012218545372907752406712384814519484047091941938569759770743253037291801395904481780900075633632498380184689578130408315039084349348194270912322033357255255514863588235966063678307335943928981265903406110687082978168876695952238305370827266982982766546651396020150757070658144883130169638693153336067100552296146134670754519564464117146441357444375450407210455713010761589570922870852431028232796871173979602789646511047793832425449640252608280745933562239200102755673462492957605514451928579662606367776787102012041147555333891666353422486218255125517835231818286259962932542995529118291248657376722882566651235955934608401012348737329016610725111042233052400001488861969181774718287860056329420046956652766029632639000252481512063063045250362258083790452343733605441163166943768281336226055008867486190859302098384170612627593704093574862976526579033532935988407556100406518148821075412023066685933009436643177049694657815301120367490336638620945478846974474815172846194710183455203923269298277700540175818307230769981971894163455177767783390104556059113687983923035603000670109524569053279761444897761201629533001667086764503768824463121787624127516923505145109881241455710030286005392807762840355409253434994084579578003073849196205185006260294059429454192902312046674274118472399631058005376448825721028929646241681618248006382826073306294959063521678496585538383364961113623735229172715440605800255046777568523983160452011990729803484959453672331102249741470092383227615348508858784303053163987713989052400639568007431932102733626255286708435858815299182548201241643504174997944977508450211085216936744275516490282072448334571234694155659580647016132573656844186780491270516602497693510689284641330835137552919997095851933653288768609124491656667561162872599231075318099173781109927089389627897020006774485913113901535389637926775873598003877007570510254307966074170454326243485453155763851645502160692176826838528003092094570524679974046356784960371914170218485042383169491166317384728993565886624654669161117460432561969519352806416615863962434777828437495315730063552913000643596427290780525355405735226640363200580672856541629363037195332698468903949970896719544650193031176001796063870566028329343707293935659793741360365955879966103365294566285583841004894934606473571645134683817464806554602725402478467581768897320547953103415543953208472003337857339730296885664277156828636206598957305301669804702214737885391521407312543245004374498325043034161400135702763179090281462532044428302007861470074888573642323035431710574530364702146304922457606048540858329019135983575672919878448086478762188077534016338258529806740652667128833858359538329225811844394013865724228939579811785514259930561046834984956703131430876645300482403515883780751580925809511940987848444125954297652486798752030317409718752710936519520296154631914541728081386874495915587915132288542979634727119858169077866878160754213585396971139219798457679127734484905159339570820941515143797606329433884074936843234982326514367163962668977913769098387341802719377196631654072578600705613674294224176244465159413757144569881898662985590394857956112269590929652550278384292419252234925375786097337503500405590367605781586078568532411295487123956955767415211698327326183504676434010791905855801380287637978804235601365613067736823508870234094431790404085412711737819100175174771789446982491052160989689471173005036927934963498111276388874889643763180451529610193089897777820281665428446803306094939156753518863969011984728383069556184245826430727655034337654214233291074316334947361071225978764168011651514429174863000866850991921463529741656835213300782228345749699690067929091249159524903351391776972041726032158940097039399601094554081410014993637768176250458315533259183528204159089424017682252155143880683630356907204031175806276096633237731752632511180964978857889992351407256877626257228040728664086950215560520195567750359422231267671818434766748371649332596791244679575811655460271626386717653296655532870169374463658184012640573047117132976597385043851445079205753886171895328176285301381334717053230956318389537538871580275402750769384076944142254760368056433268454906906406244396912197462140065578246930649907313233596336990233316265805594482342515086798268586967105353458520256096344614049435229613370118003871027719956379599902744540682492828062208139297103356438331256143744902944488136959894239763134051018151194496383175092876682029160978134119652883966734292409351461239943217557741555043369737280893834265203730679259750316996093509116329322464207786564300753968249114007210614519067488547777518468748224248989367013012171276225176727527538509359909773759718229987692868650400480929038776940571696515849219447867935527485562932412758559505616149423244835521382285597373464957725083722093228880698157619153443547916486892414929676869104578579011360214480434270603540689022159210808707058720020459861259079548447487821501101883226064836566338543070603746097161710206850950535549637785463219348803375755619689257324290821549900749258860561657084868176723413675392320569676353085746788438680276901192259266645380553083848114413999904302980127772329789198535544551438985495293629174296325323719003336616258933417545416034375970990876579982791561341429975364392861856936034335478823442904283406608680594001612033313864002276960795358923862108056840154147677236351103308326984669191589154584147644494285134732521884425628871001252437797347713681522912088683279545327653186597756901582067528532661299927629751376651395577809300933949124745358517065680944423846454247538283565672927568168335770281714799617517921431223151536755816532060581205214999286292592980168669935286671615952360037972051598360946750505921379683206813053423337144154927677567369424175662403628822035599134382553843898129040873669803118597882360771665913092466155098679459959651374296481977892891861724894673603391509227319800369902989027320257705543753765922958742341237158853565628761467511839428245886605507829847878154530628315972162203363927846303957192701979091034591715130922563622698006345958921052128651997997443375493996398620190811950705606431935302051088729656814595731269443376042156112684324615480020513700147353068975179582820143798057144456638210494253217935105229843541796300042132018975035292759237699830607573358446045008568069618386958191086450944251458085377779575824667757657769266273577846427828917895279780977127179454550589862664855778999180626474428151882621174338306167907879493893844726911583537557333079499496818824511850497339819725588602327321712229444381243216887595435069303483705781434571136534345954336505567516204100928813936547882771756100802397721752685095929096528464846410088441820943795106284517249651995615092743329554061835112633787595880742651838937321087909386996702235868878333606168236588851727715684380221030582158095798491011706543728849867169101823688308339657061686472930829711610896025669983242479137914438312088605683471213041298187595699979880112560928588855550822346945853756914291598616526835072610349166713343950225144750556132286133729214463235751062195453252437186429383148406288869386836007633402064798116686671220524030067934445311459051836654736374501540044485033298460216832589002713807759746535155725120022574143978410877252478682209099633645645398273252597653761010831184685797382282812175461361183787025587654920957028100396295664295268447090169655842215956198968994700455878668541153422290650668910702629918161781061989261528490236886959204609219897474713108277364316530149706610563879643017146566104804760164812852505759551285458940889433857801362599934267527660527944669802291385635955534462972419128640159963382796395705113830540330645890447363017887149697860718356176438055226924209788282840574599631251288585982438340239172782010925014775251430123229633894226216455471757153329363736204295349342594244538009899787570049421638812121398125882682785812350523432569596681924654847431979462349579576724787991738902982820101163010310806829645146903843007005064856904571145676652026022010314664216687884780334135354914099890495292692830524597759692869495037976236174920911224240295182964131102174584426088032151949259634893375822450884269160609124969339198382641795706544762897640102391181692086912494079221204373425950319478398202625722132613114008629492067392721691005606395782397061853275456861447940512865073738249550574187921061295263872804754204894092649613940501107697904409948333125892335199193442455145159159300704038534786489456468286692417699430121536787224644606605471204215567343688625787464188699818707727920476925782149202400285458730027289523061465754406336162739257993419976537952236138575000722508273942669836200123333451580763386251280743759124219695590050452811232081315653900967555555981523088750652594263822346817865400351269374566086994113318463239897943003739606508072606323732710329229583196232532282200564908948667049215802082742551728000810743036049371368754212688246355364884930823967398983689017760428807624558718595739581064838259068697294453423258173151054108161834082868342231496002250741678943592822684999034764997640964484728921155469539249572638100035261566437398913794073614859617509538768798622346424613268517339664416861517567647965734696787839948912762804985810568614487006412584076149896042220815769868104586709510233430538498649908428895315943917717586575727288552415031717874339614441812964983697373771181238421256553341982406805835847421188968298453087770051684824947320189094178079088718418724424686851320284431830347447087817891802261290928379381147974053218275702913291889526589120403898111014288004514311697610996537537384454234076678251296523430687371713095153831004559159295747730701357401581609955080383364005927281566227098852089609591015221544755594605113235662295866935690088012538123652426532406736923924465573595006256802799644628411120763007858158985476726118512350224585648266336999873333072076755782955089346249517599914368099843868039878044925871249413787262985314858743566337677444153475955142900753979514172661918333089086153580941998168248585282901964981559225255436092913220983094142881585268344161128140440002454202243312545312586509196374328711404405060663210617688207305107463597250973385139326128174844766969265580614193012849473176186257026455523152445936031830045115877622107401292654687816081724891247828337340952865523215440226356862561022740420866687901499805176384770476865606671078073752581517120242900360001438279650674614764578766754292741627371462094166908793161079154560851428950908334207212280546228270856613407043673338315581445866325391645904668786745099568309127012430652052696151429450129033085669154603593563844527945648255237175203188851955714666560777766813507121174910188422605093804900839847806668850025821338324074384062097821889630422474921169190705920606845090685198371845418640237755165077628209410772278868624326669311945820871425514561352908601886831915429620416222039387578516260851961725085671994490397584168223359250578319637029719458605754209054968610048576195188025949835959075317529137090813662544226657878975545770965408516163324437055479806545822649851428205894131650433647116651163409624234448308752983043412462239741758239813895814629673457575741662389460854149186666338640463142257084132670113254024716365353766175365374718937808227671490890695630933596846215646088895263482537974545127830951641389176586243981926111375280210856224012039678853373207314377045940953263518037463630938635480152444380962062692068139358233468997221607742244454505439165575860014464073434612882350063571257128317523543704292729571055940059125051239463571830671504699678733745360853937141149845776864818189959931779627772731376830851085984960539452839413064228100438125760837967400791709217591317764906337423180726576761357491865658298443693183312038901328552878181130083888709989416492136357653531749765323326533427862309153093425089563291670783983970587629881272738448193774024638922900576458032602300642093243968782441657065972062990981281202674784220836746266596127322756874623603469815218048043579276601509076722019477878380102259657521126197013818597398692360244362902625329319079676604664127359836459429062664359697469195402518714546083549785803767724623607926779208331693269712161849668151797121175556774968859943148550221650688718721219288341865210387037716470573060576482378376782387188218112948878781704115520572111527114204384576095425373373546344882646497327594410593755511744957691557157720629130650657604554765521690909468540318644186491330383800519364313110808014981091142191735830215132658717390142659278839892351360467009532938937980718728023330655493889657176490937089875810421585159355942246032890534681482250964194718292356693264765988154964861179794146181682562961046217310571437724323842742763179886843048364941271016727399674612262410085276457267499661186277122268015399891110788873449627320780616786168875668858415036926561994341019350659545504991146130026154592187690216881266401707692885901357481937266691548420218515751333630467520462962590365047778347631831277009494596178789488956317944218271567129291287222217789060953571207035227057170138451992293556483774273399615092264764243227889117003240486680823701023229473402150644400129156262369513638172810093650011451436834797525427353279089353957613856912332626718267309224099331080328156496293272066885267007322245844474766535895684473934466004691581047759708084712435100277044780344271799954368757390462123932345832930147514323546378908382700065006853417394661114632776355648802065271324904192431606228734349764141442069550709321892576641635184648239065313840692218389294489620568020082532321951360828359074210036266940113649498636098537440646196140860283918460278045133817490845483273874747766434743868514257409429929326788615142014822464921050837123993928570372943956842274772095398492640369980418801965866260428029356191580346767981415916071096000900680576572078531065583845607934648112108941351405125112321274747649058535362404898945186324069904390172746553027013143571998983832899664072058167320120241992376353242557080680862149696162344284633395883926300649836524775979450164871487123298739815964027999275726335749008520767483918355633444678033239434466637130756702289930807708850647405134715364846653746454297018194198182266514668716809035101436006970646876839411417131549518512664537386327703667211149784840515197855606864719037248050627900451791710005348365657923270842695527728624985502641431057836369145639639420843296053422466980622773894606913041940014336780965455462373473795055946018534451186069683452949519128519506744686208841001833606115895699302815514151338076112244125026857701212282204962834801235266961558073237055251513427967164483989582552485687029339311064976605402881981478297261425896088426974695630292792902078639436480710847618721607335265875697138058714469317943397726196993485206061310966303178472495037312187664409215651692015881928863229132363200875621604549272124881281866196288523587319845698873180151016129396264464775127212782754218925172937583288801311236146934149307023894197335860031674576309926245192776446625679191571183683028822932553430607240329554951706685874105759837121026233281149340665267031393409431260212164101181817068076632334858413048253576179477761212410897143618733151245431096521870513714713460765735925343579179037142224251278365463000790653270777055243825511233654581463353042480690082648297102175255937187751416960520337240109876601055819482998415696004702693746529029382672587657518548276104606014204075860030605651149668089117294090953476960685088166280658694378099331272539054650492665072066452152560097797201064577246618935039489261307907121231025596940775408392612243170201121993509673821304960264083992175389193254529261141316349111693126261499114681717345948734651801619271451568792374676246189470980520012818965242398925892661317792761680052961859178076702346166295805206309066061126191887351071146333159460420605132580055341297053601628789175986780429600024135759326650603538636641876302899772663276061259268387903511538305572432215175376658356911547384061313010657587655174352692614656316021220850033833327343748867328960437536570756593851832773949770298338258278733117998635500134756766813762451312949468289774595950485862163600596247796662816721205754908906409958721447231748255776284799432451350440943430537459425785098047580413779401033761640036343626267548778982545388372511246303994355552145785254454294610501311011525527034143910576078338598360975287808269140397078372732312502533116174210760306647649794675692651290308961331176324082458465417103037373923593130706442355795860876502239949256161653444285513562711290368643435571693483865165638456416577491877034197707842429988064486783154192576134099296698284269622453048657836132381897102677782525811469324578949150602301842577689878368628450553393212638584420315332302511555710851210380857741001886277976437168055568504659747565322938547283981393293657215052008079882188223518115145787465659912740361946304290384035399160070310378510098235106734297650329325081240811970361638713014499020873382619401243238195499471883652309103680020852692806726351563167359701251396443386615089307717303666041097118645693610638931487808782282681341681560158083180899408196533394237299133873812441858200577231984135655044172057818518911525893786665817240999652498483880992432307718882471877254998387402329382296450488511744888341931737288351754374991035686296071865093876431529774662236426501215459437859779549450405598299759632896103228522078702656250313800516863706780090390125511345806794820362765753255272599468335905031316416660207737370499494983687980666809880690406871083228445658368417657380728401979163165798153169131598389060402056371599592598802448883463975708975261535681465405771851686283811617682989123578595351206566494297208873338618362878189933929843389801740715839003994929510296371713852410864375773572215095792676117439297917942820737973681610530511718603966494815999292238683927879461733165051001770569264744165977272289287077181549016079603285645255226207040951099628496032953410810220409953697990522718695445433425210224424091574103234119322663369658256738690558105563982678243129230186572348144848208416114910787553290978681677238097393301851144122219787235220079042710177067893837760937610871633297350190181781057822486519588472903796911130886107304340767592980786575475348758421703880291530322028361035375255859809037492099246984944513622011869116296614428438860334591184787100806321447305427017045967741049876039146467251068287769406785638308593508617763319529300683248737792611744182069391568964101578993039422756244889293990920945334083823999507443221881948617353017336582553017012216976921368902267702350615770483483414767617018598983937442054419877455247072992507711265027656066926312479921295056293164908588174972794667556145380119154131028211113502867555443904255076999006694613986115451513056205081998840355324481494177929265547573369442429874823073280038165977251985397232438861768954120142833397993634959646604677892435155324985454197894382513540595045055216079204126601765521902755834963244240501324516077366687086789215475069020385742128957117170661248009884177243326965304578308911595788656365741147106137257791030985477240386695102095597827739670965783032640542505983310220676591921616022464331868196180362284418942949090418268392614700372246073493515796359331045329409982982868707571412525734994977796589337305987470558062694878667933117388675730400335593150708717144023818284027306755259138140170301030505957096399236615072565152744230051148169363858358854360857293820565606447840262376284272536716990690964093954457371749171135249930860777499271276209156360657314952395656733922812280509002797711313805315479248235312697878247288339730125353080103297289259306283498798734570023246356800615915050230420541455029782827991422909002073101912277245087132885866197355932446372554343641450696553833652509734416053760366251012039310400310163920426966310684615556065925382093758681679274415881631280286693777685423992257642389857301074841385380767577592876606274805918272519747837824317138745077391288843577696954205622290059852856678371898341128919195335479953459143533709325993800836854947842032676226209746729394275115891782974738043167411802959255906840426556209558344334954668304515774555041617044428473379154514097478085702456274267244672435813144809617506065630680133044884614590001660692283700984178370284462014205290324228117795101752104516867210028319536060737825048828831047240202374936272129595208617160948865467455078628195484288906453862172046017197061288629260352093236241225919415402875501609199030501286619795315065198954214821084706515559333561338447842838175426428685644504412117129989448835650521663936026028230475232827713196592024589510281314292281830397907060935441171322607407147359380237393177036345539167625276921117135624549574476317998901135024175741114240102333776898626481762593070723895193064693978108767254817601036911714399310201193664015510480071610714605521191506367345845578682923322662381093554343914482473582087856783363421532707736246264145850186779032367383620180757634133844323731187283940217410697108579984831073074393854160346015058581996636094493031410213504235457012512748207408416678688659457436185690698662191954238140642246260867656124285146438895465314576792092692988543609743974195651304002593471271754095514660531643550006555822971513255767863651280491441799502434305184477403494498827833033202436893432903091972228573079899475481581362568896638549523233738128948149579426683929437838691594743760238805841968529928956144704489736453319818531872544205808281980555074215475805513158440190707370662195492904136080938812878132452858597293046467473596284125250678680868388362050953506268691163721065985767547515151730346227171979069469103330969477589784144975109064535008607536629378784909362895977876988554798371077573383619221907605984688336711056127497573247794474648077420223814421735577256099586351426349523053194139864264770640492259942372724822989114566757907071395600376010741915117190847793066196845965052464297273874276752583375407304730120237757192810603369490807670138452310939568204461871102450781720737969918194007475900715667961522568807027869541302456662685452959391969581533697747474426940524133981050898493172894429503298982512741588981753711726708903392697571058034817409177995325921299275928015013058033212050087103797489122929219922154122941526820270040122650415057329896926296772486925712375170473849791244379972918870808874017185101607261924047162298014874735894798825625107942534495498127756483740931437984991043966181388089891203046126720873988614113951131673470079191337006442497822901376719237859046326031847747427994488894487531999229557013663226053793730847578673190655941315553352011796494864042061911922809922795586447311194438759433035972577814155270795645423047801728030309881744313649134583580321948520577855221605852409144739213264048805712263133639123600130343994513995972185452089561990947652487920404323762724946764997701981833908227598497308069335903955110555412920025183177925224583736888178261358704950568918881261530460770791977824766546427754011599544196110192830205592836638893144564805044540148802178712004568365525381088646983858925232798090727529653517814335829425927080009779096473825044865751639844130933456935104683462103447686699419571315097254665007392956586146698207588919410284740397030349655390270171188430438715024582038364923430318809355824195045648008543290068055179408460605139316108222590833462541309073419373596792111718085503430435824694080313254900072073125007147990308978709003434264082755019602863397883178163001737567773644615439074068868691254256903545178523249153833974991096853720756365034683606313826594036436206915111129546698198175057618842113841447448142511570422164978688006877788373081467460357331828847535405520808485314783189667336230307378471168235297211874627479137209857045344611759369463450245211971596652790257794044447780550994373726343924700755335933957781341677504289852194074070021590323879749558331998507324907931135506717734335010785426680826344921527403977428234290432176394887705946200118534437879505036658173653380884124180577674061522103457745857959582026882056150651879251634688234675097072182737126790307502398112302365708509985531110942683455579542056843637110647771585817685642507183571970371467263366902860592435358003473971644725552367289721848681230125906687765496102848060643183917332567560417662663276270453591146672977450262337256765262625823546610947350140557892265841316191790573549988175082890798744150209373932471357008133359514911145049392865361138044115090495981515182063358216666773331968394955165633971875780062795887315192408014405601592625726098735055258582401225503624296903350715345682137292082656196331018131030434610154554457829941083281045247444811107231573301524227285858654233791503068379674998112079188224869493800150278133819887495827219605703301607576268474014779035094540716514375536433148922417498394503268734153524182191417851994490985054370465138758892526195282596848476519433204098280563228134904954656273810344942936483732368176641287257605330030523389308597760299666505102255737670139472470747075663057766878779568475688049454538594362250395817970982065111752502952731418925289146903371731030148647846792328279866110371149666883545091586200365140850711251371680698909842266913741863897335146478594786691052503202870243099926426239149952833303503143042623322183267126532127438752349137109531650099585895806425476990705094186498238141151454906685917230825275147612677608309804349724021258708172530402337958765678013493365045910019411208027894629690910903663587310934811924332317107652061190906142355851256038696059844212581861620069925392769803775376414872466342588312971839241275372722639301364287058070389555644508735971711915281951055203139843837538464191418480293822775295331755509479787583808278020859423100733704962279846581831478670373509268031410652347053077615337661720588280740435774381709133763311421417451419810134658308979463609843417097502756545841036571840385686064458994848843961909396300058799552461871768894957482028974161944984331083384067598916448504961505128591251723274046359909073107785514699424372219093514359531969654655719520241527998606129509863871090130119125685063194028629289772857071710678382607977050214442685987160527785221835060601046601284012461249267701614044032219494283521649976799787570532117050994810696724826536317250820277710146926264345153855194008009975448277219161919927834148732148850902144849356485515484044629854294084039314924218930679988252862621012907933934976450818835399803000738466637406149877670659850877586158353297215948678999117679845797943376783581011370970144429256217644549432942373761408459200026554045066678919191589690752723365451190924596391919399414737768688490609287456282460601675885554458718764331751481619231268267319224114670295827422413182723308074797338120674147105426021839020065991556325424834106368212085376911490680208533041940948905505579753195220881426484046894872395931626764094426963935174028117029047691509705212913092366105635814480959786125838766446329966164108256357461999683825230008331830312003017906200173685333428839782169561927388691433237855795369379664787289266945997264227089936419276511933654315948160673337291687931343228863954075019412438125912409945760974299151720485605731512072494353495428810508160783205186611835702497555542922868618708347533401155860021963311954596576069272363180179084216745560297755457550834763633316690792686806749151039105786592631936528084692322370983455163566488725382136913281007070194752042490158330935611283534439568337688824008583326306418955774873096826263558287660340744471041371286873431823734150396552943975686081040740155453385868446018783978149407468823049030680372266124528060609896069854848718812667670482268147846283441083838019908909678468728525690076333710129686580002085499246126445696958120361831414324276510333607048384974705717376255594028152450138750061668012380728420883918448666075646356446214361934086670660722781234537953034962167310000207746816211143908124616681960400828966497593555601743096111337810511155025062605100643330193179412194327220565444387013567267657684818665475140775583672413289857999010716844112300614411393068546782700369540526076553826576418012683958528436826661713111248454090077131919127073631066728208904174188101366194654087641632885671812694301440323136742318063964300053957112437282505704551803386461006967735275758305033635666420274976335708713071505278183030561690529126880610282318690842614052024040272582873607418616930016203390481670032902964939534130223552822284767721086248771901282266745620401689783405449513401036646814796369789022283965459685672939867328179073781347735003368117978154213584407841267331525507413536928932551251787006663361303779901080824234599799798300956432985465734587378268178015937919424697863874967967152393392076644854715053366922034798861702930505443876272646251530936335035213017290661817977066380951054953012004064177250872891489392763301664124002323984558143750611660063191941872009150966231512264507527513042052924497914648990211673255344615329752563313682653386856461208689251169456751120692795050001162246697733595165964474546147954918297173842686888070437022780865057783768370050255276006296865304037321562672613354880794595636749933904664589801362508822121780864855213063898169218243765011632457051496913428519811785333902057978566427502389741522861491267202523024874947728464669463630921991101085055867606308209373143438343219437361264263687501773561760696114449293178318961762886183107033045995074671539912967400283704303043480825541149979745577837764800166799821386635053220218002531221409871574914903244056163325747873171022495378541840586978532585998706674823634134553387483327435474988272324950049568275869741233274383488684658305216081277241867888056947532421700620680937256520541117700525730610146936958696456531736090068258569701950502712069798854842539539567021091227846733394050696155047291661610374912888576585875276088161608109477523789219622899085525421196620175688612600491825820369049914995420338310808895033591732944322754071805811958229999241657073561826801802573865465682119130603393958921347407264257239845329187587362270594579188310250316117495142299878850690400250023045033662694124603835957575075861705091647692382795119917111106038013083554439262850300841543409037918920706820031630386832359213156412354478567989183831304257796126860311833706346964716711311127678958617347181213989788072555738597144345156863249970636307675577415448702792985172860459613274295556336026946408762020234880017638071257983525482129922498385267391832299326884521137009770308033493647668523337635839520618071908431575959715895582504180025581400315120180872248261323323499614341375492207043603195280080278187949884792044748536092709556141928173863641763179135600446138434149916122343895882354313962447495998488693717081459841301701468427894087510772616907107462017295579620886612013436579682205270120358747263851957213063682622931060045634060898116309374904507793534983260349259156190323972349614263218757913292352069423459315729448710948815465622090616396642965378497131934082721175654932696322230041435263710914645936712060948417499086404567510202313935909562168347972191927163728787085115866624223546453154501792479507120249940354025795067851580076361786638750169215187006492033348673192763452114666280437322192175244153175052735398470660207657538248274777019666486754970909515778091544315369101837326916723120574387540149817146162106365839091139810419252820235285661512655993427172771651601764000644561120269503522712418595870622194353948068118894012773185528609503335857824133429261823831126120217038833047148586227883730531455429398519951728313687280073077561242410414002762668474505593186988675835880435495491681545736577362714148689780147693856979679004377903036039092863342416123815243971355092526419442551835402778218418773051722393939373662451240449394702120159890641244015152348775846958486041331008014166637910866648255247114514520817218661855688807889963372278064869056179838963897788657909196918306877394729789476851668060493139830177777548593325710676377227980357263215384463023333205425184698506460755198010833567906290330096040919715640663698993187551202465490902927934651949456214931742783636862208980099951025133890713375650430259072754306406721789664531831923846780569037093881943793382950080720774069394814394752060986555044061543342539447027832500839864446352923291000016483765525899526755703474695884413461915630442787726478846492743901027688615389479578390270528899594880704799390432037504633947165882970916813347251488326479273660783152058418014660412347385407132849512992022235465982034006492486357320181798004820397374963375321615272416852526560006419395996764260660689528621638737532804061289502798108777343114256532655230904976359080675382134055476416286387232835712884929211446341067279393606644102369161994182228924904670643929976067658927233073492833011212221655905286919611963843480189405862590326897232022217843253342849916528584806096909041528751564934973764417755164708352196314925776551101438315907025849899809533614549792543882738743581341397353509174089049873736482566152340502277372974552150589997076870117441228538295273714612345331488185984892965360884659235867605942379726749189140743323419951018431758475698364539175288187203691430154391687655197399268278025789730895654090678481149961464412285077454201912331712112156938194056703294697020845139514363795534993870253745430693664334944374844978827252040294869114618590920550727783807640930416311037115154168802268277269272776681100974589071806938507150527444811079658359588932153362168318503018537215335315712620896614847066037896008664912384665084546598193022052339203840450244290111094982153967140708954242278174021537249224363318688634257820640455445595633024287281321081351202190734067168072356456489477440035634402973443384816120920719655348218640091859472788135925959303759839813518262570419654099803187176426933417554677385114371972373178114172351949283507945060371058615803032933669536494906417550898356522740596981005343990907911066561056355078535288752103707018727017867143175056178786325942633145367762568471305800264838968527325293285387897986672746819596518226641456259939093117866022837610972265205421267435084547444132354237896814125531705982740370158752926464654152716832138112743115772150374210381465757745202052319632575275015660974177611940757616683224904960548393789267590775395651234638776000464521565844939228962305510979496773682820743620070185705765980793893213032459568498720485532235529523677602063252931908152046368374536638532759067278070827912909449638325335715851198858286701483057673235629205262467267995693947754889931064089695621917168643272117322248002220275386814877783305479616358699104684062364265246143546566230927614868191367722179687956715061847180843385379674479267411858478881634125218394936517523579316477590527885817365222505047962662246630534365603760368685916686755367701107269322886808477051393791831750120468938165820695593876339090596234330800124063323583677992912468568480773226539304375748613031835142737499793859446926858321685541107055840116812521354189487206685225739863845120156371318582835222940251001677501291075014007349934466872507468253201433937860343445142494425577278083860017884970097541733421228185240979800000243692639946318582637664352199164275024691921699121814386305581175731244699043206069529723551225265679834160260905193317341511422827585535687217536151023117029412075138375709846299470596402763089371056285189449222184438155418099465908939020115596197512947252237059994880721632745783931015858876670819245484708877987874629408961518690751708104284216994039227238832805190743372275871703888601775324203975176048190281603624292764597548859373848422959678534591821010205167571010452282505010633704140678380420383031630858497197531210810866456164728174573650145230290128457533002408063521700617734167587465653686593342458248204352571515152241753552473237120045591270354660136975922393060496833711561327008564547556551861543380728396676601082455147799771783929301753139637889945007938455304010587469717590667586824819469000549521467390735340041729977150713119647498082391725156569799836971494205656879928503276393139507814115152411957627069694056555683711189646981152396240016727758590380111828906746202689353617216188193949129193607451752334119006347938621917067089942104251235580799688486914538213329263940689023330080016441797699381049890497450882254953501574768536215831814547742601356195921307410634874460609547460347991953415187733315434081001824007476126507050090226415486663151109515116914186818061840095269791597195402333478764768590374364431061581551114840841111709601222641124940436659096244458242258212870915097529298135924515587627338218773716843245521312189729388438078077393604517824528884709290328380751174931535352778786596035364188506678061308099698768169233098674261506690113035998654696291534834688663608468755337147925730120070226886485923664802029673661971609185785992515832789471002326040800473173911663774052016528005781698656512241820801201639156005737073385749661512736882057903385600528891120341005407706951313373927610335267151795986576928767084955240740599872422856718001896329495183926325919354676027979366494160796435956021963725425375403910210631409975631272070070662892791764575098245190822288243770963456840767029344375976347837192351543102096986527730288638401728136152318605276333604779407654944796346066969673094863333380797508471984503932095817797046365218611391457165280018696650949159476317459156886243442042251808422800375944345002829551423464567805644507524365177466692006926297444773263559062809927918300249666838414656028284138291484065987619697707098498010698444630901885822697895592357298498054377710721407281898824549721626935607636539917340979304959621182947964088288075763339953901215756579564977202476052081248684236243602612906831550634183166701401029211053158571907647223362562644282724230273217403644929512779067632347987819220615373017280956648817603887528631569589715032846212795107791052817269893620805502159118837100832368176372240814188944417490660035145151991700443813350991409457951928537898771650412267484653381876107663953075108129754331733741191759676203484559974375583382963649574671379950503194316876907206188947951503175934716570836119309347497971448010549401474402816652925866412195831395586824707954537534776856960730424335391708285732011976242015268094938401644137530578831218820286721476091858254786958867018950488298105206263610080913974759100376505187899596015055383723872057085685265713806190052480471737777735954299537206082314759746195358528881134995584973692913119620683293968512292601227763634249570504442137883572898980519208657400771692382798205934896331766210851244815160174937130684295308730455789853254777213154433795609220012125521844830951373781914459873731260816323031469442477087938834669953885570610209072088892914589332061768461853695122749908356182066619186764608895734847495473149940397363160610445937412851395690585809838942107714042820997316462887517526933226034128209804945850121700290183877411204931926473984624483929992888729560309383344318213130768160211768874297663780674061434187363427021909452205476304641867375262141277716084810049974552536138047977922713920457668656431771798648876597222541162283426863373784507033965103651474235253575620337431923908556617585110655150002713702056251672099122843665249552536564401291707540628931083043302452206056488691134091994708813002662600901197040973690760581532018936115632031975862953405521246762029951761171073160541296597842117888397591817773012280955909769682369899773852480547149849408056115788929353085249217233701407766842368825803525633115104758858673646105514733450731047196518516938020213016498020031046416245333802023760996343293104238727943333381286072314151830691265426170678474666727041015894831551107262921521751353122914375652265521187223902859568981291289681790956158736749534349096311535652397324037428765213724771165439470672953297989761741498582078813254896046088340275031380029563949606928191750123538222051957915967362775738905745486836301087827256623969977453371029332098347811940860314089244089826308881397336670191418741442283084897102152231483991042325274703235874300099143759155069473320393537565175803541130390690197065184898438136872044340685051643367193054656197738504421495575893066243978895066671129490957033845600951421650344204640834565104559541167179426698823544519568530475678982495089093430962024132484549264156440445441050592316547666545179673963856525528276088954604024448055695128093027770774362011748634739482640122540786382551487016270462879018277737107344678588307684603043563962538978137516966768700598162865505814799145032640186390131749136846338442361452456799998461884491033852896465907632710024790994697379563712868097382750005810404220028463531075222803938324448503419410364406438341779679386590700136252070736064178245298108525456489796919893958396039702645034030157972918626622392723393696743335389945106552130284108829113718579430978480403529604383983993575718553933170069490433276529113808353381070885488997603746964057929577053697357113742965365229480852619054696855785986570255558433330351917585082989556140696784566200461154236629283283126158919793940915470123377316302513571929427262938500452794175853939371820321783069528593135864871206552501452473677607829114779876899552695954331138946652110123803745012364108545556810155090817148828601295537357547913644075539489518921999153719132956040544262761563039125169922688016710384738918655364469754825383051305338666098709000979970737811400099087996410623191680447863878365193574542665562991386872095859113380921856486849906531444957260566337798309182666680394409003946033114928922910482094534697158642177776936487032825614053176427636261386196373057261076906211581447860891500946875154417107275150634342040771740046985571152186429428705327955482357166397812559155768257871454931182420247718403184779387862665066547535972215411089942800464189292275275653834776560244141188302544847926468346949200448891822534581022433511451164669283736603586979415361778117225702683457249731468340465912219678104785543693267595160690460294002785951618529635064961312018113111309042245213577210459223602811632935321763947297102506833175126109105874303383257923213317985908020663036284598490196651512928747626556874145427704840361696159232623938997803823409371457256979565147696374386258505517600502604259535041117916655209738859157457553019946491556402663904160204366167408904661939728515540146709734088748515429229971017409303184447156805102821786537335312576421186935178893603871802494612551155469373757467977486416868635491428112841292683877042728624143094306758384652951707498030448051230654942387962398510660943556775852625196063368772016635315684513668092322830013765978658026648102173861567495776116531205923024656655123759293407636563159879161796204343018505876160303827868669545639259606015537709993885373526788423905939246127624417781914150624729711562289903782588250932201000780822949621499635043734244236929731457237788163114924442541068113364389731390329588113575422587877211418505747707233854219575331412643946878364209852372675457845482645465297732209009291096784022903440538504547701240657745482992909806523064926836027787828128819272695903520180248928591479936182723860823102177246084769602213116563722664599173577299317685408432197248342049360276722933249262366803735170652996445272405255995161503344337634836505184397011410900822436087909326917304887966154706059741629393280158361135943802627152233266155456364481626983348008986844630264955350075996903052262485490811577306456966150480080073751504731127922012171877984251010791604498902609434481855306104708785160671628148249984802012496408135035534218315067522588930078299282418163262237963671794998921301942461696470669067631714498085517522272157827464812586824449144205362909589591262213035908479335021083291948566384185793638929028611837063425346775923890568035519365708932687158150274930846966233417667807512985446174258655567647684504357867527524910528499045662631213090326713471025328013907575998103123342690607837338369051379320709601183985855203398988467823062566834706412788153500071606523881130427898522869665639167671065803207585083382883544267578298187308811211164029835697020425781726957464843472412848718880644766556283822023409060446055579440409031994136513629733437924947659744592724740993900227703397573740154136441103392762046041612154182751797009249907634219858503262743263037868219745448068147951346651741532166494204223312383830114571421982493959189619655713926226824167937138072116664901847666260096579802374123979734815792286162310728857729752454576945656035301133087829941164754118439725083029235709404493113785740098235038809812243865351150756348220822607598049551685554416421197238586418100735570019026236755074325902946096676928883668629890662075937483626816014212371130986996742110672060465532014129849079720289620502531557798220514256383609746765970239111008122163727522800419187279168301577570461346663051326799174196921632371621089931644435752581283342688077172939619458625926940452150912856271976034138539343517854324159611835945693953943601891047713198677114866082191826586982412536359598282764178292520052272109339724544205245607641942445180766396998308183001207525986443896709535371325182449660998882063562791783243342499211940054154303713422075694718215318766586756263052677184523489976910058136061632739924221750588377310644719861262337212765086322924664537911187375935931950338958583407970359311112847075628992137966731646889969024647294146552691139384480771752034556111608309332260351388771503557561635631095589220265161906656999284698063796912707853731146575065075274800574261863098011752411809642181553112589936430977460185366233634269736250139636351763320473927625368089895341086912960254962973520725736970167377863395772227707060967754879075759122533705508116505538543132819264251621744130780132127093493258190394068036872166344714477496864277511590730898877022231011799212561187340698060385314279189587305443394053114299270271442762342890355198938135370587660811967384608767460298749277830988075052955681812728906525481563647605431064648302473291892729083329068467823263020247539061176300452850721872529876547571162067099601299501590405393508274504387630346143069378276465398841738816064415203550300744608160562664421038050257008579527518861872809173284893801689517561723852788281732184429901188164014802630908718792808472638838829800850547201939340292017959369347279960286958860729106477981746563454312580074825697973239583146752063316785982959895064464256343414266248855997170437600732425342897172213677437678835600851930294185232192075591630004324118184636402585993449262410629808133273166430768677869507164435994014946855655592031947490877768898886456953199020511515387808950635317764200436925211551316619822870299368075859246962119125524670665739116813102951314655753116982087836032596777990772574810716705803233803416610718478107106314156858504505964021210122549887611072411044988551974488950559348980859358872126244433028091570795244718302668014113565563991684797625641097320892280823842298001137053061361177572998209337373840607191521906472425985609102082532429221454171471021495213071400978740399784351513149611019611102895567574687288143994832299001423069273688119345940821333095568464678236582849334670341331919044268059368618600081491489513085432148515987058255753076869239191997534795797978424036074745225856265639577673156639262422275998682886453525778100492744065783075588399066122888487071614912617982103544493403055795838034741567551008502043123576948378731286080678701451387764421231607536285738974814575976810578889784398887440022316269277066867108020278252082541313251265321125550550372324924604719188732996169430051963550603059682867865136650086484563155218882571245727447697489330301547272506911533762715182944621107400481642790843296205416146507925663237138922290254419994816228609991182470873554824186550708698157574566553958206608028053342741943527485463851286039233043047409823731387584211789644216233404960208481711519553565644006923337077674203295573652209480092451444790843390703487058804499247823473794705646014266631435163174102649330467397797342766960222865951577612535113665527239490811112261605189565166855031405456862878522202781456777579095823245988766863073417109773680177815021586220335927579830591993885512600845387435068463716789954980601740032741952510758073733368131417084743798875902859222390505886896356538359465175974652729891495602706019491624531049748632207420986502093582432656987753723565857695979045754282259575155794314601899267172460809817048086185382023259666649282084569313290838854672632944260729052454879634725614781374132003721755955279790661047087014034254515694648146541060094878419797539807742886305905892201653170356204065235340285064277125631828366927627728587548346454720362140529867618772904753244578983001045977394504811483233944159403501183594816215869931916021073954688817525715707094087682905073672801436315238499595890795031358531354918131514061650257658449212421692538645123981225419728020486725574180056854260515037514138292895130267693424285496621837228191116073779649141030030930194344772183207926892713076909988727298907406532585291602304002792253753537420037572593175586619594133034530489010097555496486130452968940125256704503675699098975945562365271407976947967352600371926132367260307218778410071419203240739826278296202186247099440417432000253661339668419728924587765145673150658770381509160646565798035638755177427902443037483503631558931077208006347612892657823922764534025185486409738719483130787329689683680961027370516015536643188556569372293567864002199382725577450450237967655478156114687004152264776047381361607288729335653716475623716398795050905767754707351445185002225311982877258199128196851843875530491652635230927038554807233896513750433115277085345312890001807965207680251862572959924099471229368131670112959645577439961581534731520650562118820336908297123287538158205730555617246778798815504818398368768840831699515440059750874968383745959233177390121976620456172888007161858503606779872578552489689576169786369497792799496290064465811538482117595766370729768846981025096630073561813890161312236927939651062493119454786567254174911058226302175790184783042858339576491191702004726203135639357489981328098759302156301500704289379542495478602076827148185481752456801703534386997237567468269510857026693838029894217287246032158910650032570622375822971363158090287104276936107547312464755363321946565322083089378830934797084031832972457078843763840712664441028887625653042414241111197614231717252728084812250932516406977254002123029986636831597733789060274516824009616978237725676671842517361129909115279897393814908755147522521593901945621863162187467285535277826971765074663435221581534153058994700216358875270529726531291599046226026224173128387255800007967331348598157956700901713032035351389121544902551005740570830545626754578762654559263873849486747080992549136351851004382729835688576648722361306698018116364855445601356350925407924518230302044911630738434609691825914997976125713199086221805133069184267077249565186933827612801963705564679321101111325368610333101120762548579610743512824229876062991701431330637713164470719817808177994696218461132914336938342963322263387436545044846853842593131555015007266685651285716717644953869363602209042676483626171118191302922495434661852833550911975157746964701031133733356180703330084078759361680927927104097638481334152432085823588780803027456245820259510938540603324226949453527627448249055543029165045562444257911529129271538821729103647933031195027315709010860019018777541746114799011470627630508794009197294172412076414874454310229289382571918068567106099683525093187561477073768808296114244063724910571837338433700143877759395731207165722002766244602558203631488196518210377525932865527304885743089948449808337388945787988632241588145321905025570416769057616010285093919684806506083813402316597009948098441461243788657456335700003771742577996349026473600207942441151946328334974738997118353113014383871405726919815977737259649691526214536108701735925418024601502623581402996972081778270456022411769530130813202235243033612165919187664824520726944687241398846516842896437851265705275782090262209413105604512248700444545007066674417221887602724371287051927298413254387246198946638289790440167991507469854842392852493887747641499522369151230256368393816812765085501983772338495397619092632481814434793458542092644207713120834946303274841212626022432829203642602897606661389576170814618583130319595402195329451375430220873026069930232264366790595587103327896406830023236108665460478758949000430364426159856745347263110956655088350842912845968018406428309137428033605652425964752301376545125145705407298741886658253375821550141172000331656010858200166232547300808755426242871964769869183818362715457841768151897094940192347521546904261279603325470174372248615913074297851472264351741705665298245523969247989206068005527677741071205059740982255253375428211238689811130762363992269871029477962074629704744061730834218434162619660835805614129712419967175451626988183254548484251571532208657612577390099096696384029037560935943239675265939419359525923405240196982102053001246424119660169304712411388926923553268139656741892463172559779454227243851628131654766021491039237620648778918302630475959176810638449234892591392609891717118875954836881892255804709659979074629682294199980619848257093839697184007417458339148719472649885002527189816383402395170326198202760699475529195406886370086677455371619860903987427918146844359746863834547297739123112902139687056270230221132534473924192949015792439328503821849584605037042576511699064293073496723487296608060301913429682310703296444966247818549194729875444685283016527717116761221454771472616456804985908600415258894451118011554319298495699852791439090172368372229892300885976653068230406348699015567361651734764748283987805933952427950208490538612192718460362027275753945158582706042900751112114268393795463344806562480185295167407437436116120235199483276311605602220632351976115706983546089669601868869431327143108221542655170980195204341949046417729347376206457445113526162069483888077415675274506731446540492755306277668662781767598483763063919224839222367288427483623536552146997134874211228373359924640621626373688681432638172083710472284390067954341117983732777117550375941730759361576467915576444094078328576654952907988943162364270820547443548128693292863839262793322670127083628275823342816440808269982629212028287338357636915447248591702259669364907284872273445822122672956218394893394179985072431889408085288338003343176690672470838770300087654523826431482258821520136973014725839300459248422539139618124051470126625272219419799075530284262821921854645891896048666644986697161344759473316665946157988303841661802316981170323237935561202804409376542835336911983916785615477537338706746492567045826545761875544575397735667233476855902476188995411169709746259728860106371396861081093937464329806468187233458161271036417501595212562012860835525479933777305252959714103196954184330732943215401323291654989880954920982750805780174968412846074923414824497283056539095005553498044693334927395929865400920205199515296340618375023682147994935861996791142036186843477542093696282003969981205197979621476188464550301051588259506033745572437095100497390230692511343437202276313898775441766730474465023844771038885763935367273448972812673054066920219518309782066011136015515048994552412648641340902213500769825460744508802909368932757276652091333809533881424523196880011696567061237104119387524945527360937907060055194731892146065435157495134885284542817399723409382530958034078871599766481431015242895606000778629074902860802036666730021570067750942245247588903633847447467817642997352285308211445847311339653449697151375683888457938701171861029703863463758765786599510157817294301805733217653039932047835143683299490516199502947639104812037977671635806439001643320833785820513514737545752631847202534185324170438559741282351473714028272532776927526308977265677621940722855012597181738796302330888012972730199970810634046280358273961456705170724474718783534502466495130736261886090100193865241744228591137474450482849099962937137809487047128196349471628575133053382279811131988168719302411678366915652064425393928844855666056305296176482814565938680969822862559926537350994161950082485909139225481901156319888870266096405188106199973553246913297922221741278421325954134001853434881297036080556606036815816756571785473115992674612343924842141054532174624801559070263115596900425225198283262605181354996915601859924460538705044332041404502073243794713501132805877899228167325857889430954203586597820185852714098597114425915170938511243484523182139681415734091740655476374481878221626315984475727830625627004506395328371734240124368117397360428010155640377177745554170885963237036317265067340835284301329290464554852549459966119435474914468424888310046449989368042080082399051572025229039770339375578452419434866725486564133228091421691284423108336829772713687028694883106803665575356378502198001596634561513175783101536539375292807202047003745473340303215136761065058159468794412041652485977781980222714038274427659669689066358125220470977909408989571722925092057239044709022578987105587689561012430799154569934146142570266892223268223813242028635259230742490545510060570029273389652802387851458758536636093846053886007785090763119349350382755341665998933206385796349137432691634505775893446555658726002238523881801998267079651483775054689985162841786463576889189501419939559483893237247987262602069071426045270387620742501578582729140547464433448145173866730076905515930751949692263837455981870430454275789050251265898805924692487380660307741940225168715656851061052441526144321070881145098629314237160488261315947455499824495369766094159506569229315444174660172668604568918534906205031202721606111652297228857585983233208793890907430321398494027429930876705779490181196203777839440344129345200009164595613875250452115786421792521395436227732946992689400449945642310356241375664402911577735911422364355032820541558916455384696730142096659527114549472454698351247123272494841125879999201326955753785009592207471678597511742429525164962701974388604241708680599786752206482373039988737571863524667827518989242928363698173022810996518685129265769935972255931383278598878388568824902071356998174899125845917951063228334241943816187072541251305482855767878092964430492672529061933599869747464758020917589988772682344638511068138056174463233813333175509289173020687079939801133672681420311003385038504776348653254015703697530469775775110613799393200030374099635380619911166217105039967526968599819784212762589130503943926321959026277913532914932800823088372932150042206122655574373789643546121484743386998162629898065963832596795404797435853077224430381391028819339728437420799413501469873314336228542131621955778310250310049135140155161584917682632273248521625934080804431777842964413000103080767429160646816525254609834249336117611673412445933565594453002792224067928112061449449968202977440229063274944214510980557747554656636306011098507882576467572657063934013954467944836011563457647697714960599027238001858802056721270779398478077543814845314970135613957598042681024876028678027444840540997835835305336430888562201950441934661518530780493721094901341466394090392808521684365245239042239111796962123108055721717703528958507352072971427344664116362585099855312254768821752710513419660181289713273518645787669840347816515618464749238910478271189014485482882060301295586820011812740695517438914292261454925616919043303425833204671591915495905064049290370558042035286225630126980772710673714416142048268309489834865660139983497471827710180544802030467143969783914708344997411800187500032999120460980636293607958606734131381802413001500321755122819488882591668984257193520783700712039744291521496727388435230969397491543032141306352367356043492272340573878129624855063574930012587486008680658687365399734628009299669515931079989977007792529890783262545819391037591742580265716877767696590699714724429160669643308182690238805004404385161973299879219688705414240801815953967022693519376139144747237283749818186802771700974128688652070022971673037870221706801320465686876379024540065841443779358337058844175702026651953152622675975343027962842938626490016759859489522626408533506140883096397007931577969485264452227933714392461908931601293587303060571526803759745755150502234899984467032881628275616537147443608265627184366463434223968839054758632323992368690644846115549702591930730858013103964769965681010530347351117980504981480015486978028585418821343249690170642470062136383559541403997993966048796276465866049542704428570766017095109282679554419467212029467393770615759263088406906249449785081016058542760675390741626111642073185936174685454521188780687999017298324026507897716703071589606159213607373346475512327756334956165207298933710092276544402463307160386676666509343190569844589043491504943834456220441146664464568370126208377071059809415027016726885636505756811014923811287923222607391691072837503414381669080096311126899801827476997089194824544350398264629556254562676578191986061840191884237445409069764878828370245845063874562738526647106544728578617967045312581137721608449692380307751522712506660888144848868402244533836451439612741002106173392081918467744035238826468444731096738261498051167794900889413321574386800607697160740022345200798296985340995167372163633923876526451395001515783250933394779038410106197737776718516465845601690069917782614401818264755847504109954978380920242208840970339400721155708539935341690995478596406439150064228597134808336267852979022832580745872463130976873760800299177881992107666901515339856625051935653639429352275006439451918673254731784032946158717192160238693644693617594937242385534755731670937405612884280550502001132796099767811506611902426581497053080214475848526937938293212238461992716285926141079387332487171952201166847084719868686089097016444653816838952327203391429592072591905741040422839594781672590060907868790736173368800404470685066726555208558953616450452203825556907701269327966060769449782587317716246770961272465926029004206170655500367558976120287299938772901435586979546003826025178000032617244013178769926260229344254186913751629073575115507419762954830157406767012407671930342547150023905392715182245176868495501668713628125490541697932671672717019534720846218325773096840926639921452336843065815178983705720263395777916428267212900970809203376428095809016286114219096375346342587464548696265351635408726872028098068287167965379135346309239299003400905585625833287985065653858925376407209817494935386675629281019855805666719248338035869261670639525212883778238811079255463632087946113641581958809715032300061358932188260920794519412493419380259686689276970137566032482602989223378962585697758353533039377878224596923063790587682511975787668297954175861339562923213362449994048354238726899387844592883455153458554796212980932757469687816155909000359875986843093925454480699849760398958217949372379157889913310789890457619513047126493879848339967842998644594487285045026949989023357041070262610626153197201621546512260529046284572216937601219520570666705657276603328003286482254415339895103410390943330093089285218326150964123677688285103359973459190092020794688927776936192650073442624363115018170172452501168463335063674979633225157880956334215628158876811963271935251621210894119632174964523438919586891964687014022972627795014755474768516886881204878760873024942049564154351835644734767471901030840564238731291014046498536450533061284890046246588639557615012197565706078600473945498793929564732713748124781873764147044982643992809242696267921093802857345356659038652203114762073595468809529862773370431194640357172977631367254997952378656881888300042293703966856384625813522695389119127327443475553391175425033913033709116531337734397873968832329235529779103816675313754204733198634962521605719227014873778775758873314896576874018804316853614401521885869208413537347233622594745662279376239585885657759956940287967623626372939428314890218699826937914552271400387563729285746604214418644384617033157540800736886543535422147712171626010325074820995266464527692089998016187285122986088036032396612529039880647692501043303665381415814888066283216165763871976240494895113641780265477014748659832951818907772304325009250918432515197809210932458692191326667709971139114256869562105553009997361949768622957937205571686037451623988459373120055100905881286941815502771828250191930448345307395660333110490979261518773307414068385428441050900817820725217925988790611987576644541799837044042475237407769572136801470224337956636880571622377095612056214355041043274392531660997596260246135078596311860264345309424500136167609972506559309307933528441048417723414373134512974462073173002240889805317433664914432735032775209177791620924907749153349404183962139306179212271209424777717602687350987562041016166632363001170034861550819625287703551888181417990682130472052192585293678971494457198868102720200723967727004948099060509126006470909888500461178142275365615343513498145255690823847306716060809110570418559041954656211604405243981805976590924889857902460033140734193949890115799571470888194186442773056041034530175490083962751552406587575613942915212129077768511067620027416140251163831345623881287057813497163946608759112909318702184637165780456868584137626297295078434397968224261266789496961148152974716418121428999124649306838035205039376496386167510552053663340068456998954527752452269311420232086018311284404785214013091575240432379178255409250321218919105486870601103864975315530351018514798850873316304306244665473123905403606014697419065076910906722010952147144351866929968858786227369022475635676305044941261697898638256094101981067500215241384261966101087303512752720201050730142672401646091019960941924690755440764262983835042608907793874645045330773603598258948780044444034704164039047860091543834492308900329170683870955655724111500194011285801240134135493462835465177313963634712895503788082519812315720217569773016661986962805309925305380698684068138284308852354908860643314213511315511768735321656683400494188468707827613898287024390067461145352650746702852276921468060013268390716930439035171312234500429193212621026213744012486217468304880761191200184548175122253849759687680011761874474390135678593408449462157914406109281783911353575307805209030485201332325470504513364392509217073479694144741930827665399058077915840694773006084282418951099649898204292238792851314252285978022364080281674992045961822212038123679643205285929414739948988794234155013746668852079784161520391428367745175155842923646149848309726874067915668790272772234394076901728638723167412803025907322991506073329890556255381789528178674498548986513762400081969248668400009063614430745849009712426566859866833734858782536537687755139290053692232945690596020437570469386417342789343433823498977233101701337965282684970003305030553495473221919555666021675521550849888935904738089151619483513483708501309198404999875203255769447049150099868603065435428360877566819270219421587205904515733107927080871367870876138943142509267387932767604445037386308472472627913490206987617577359553358372993285545041551358351244326714877146336871059824606775817611457269912474960446900016267629542102307802004119311770392771748680947654845856822958109106633539997580466925291584665098968320834318850132135347861719893686848658031404428071731897169903905289854669460437676475338959458094477636247533519278123259182788576977897033833250188283084147285286185138233263224415655929521830493643337035839719230439269221560450839165217608855776672805631995702040292925204632334429338958557867603667218838209968643920203186022602926488497299807325720500211987112618136277627777396725105943368014968593484156793213076675150392267732601821835380126781011874177812327750671278364221925537444463224948392022745350534211228417461665165883965803974654922962822626443333515624607346024785878593901297372439878170044089692160912612447115322717711385038482390249675531464428543876087213725509886680804026884631755057541505382786708654121011607722621360357944528331091138491682133770109380002802072399612323082184385459426983028985648505294282160006558457215076732777604473789019972306805604306784664126573705726573015503746072266621932665438569095610612483536057924156694598552801638608470390092980138436536250331410734748819123982681036874916535411534595083200486451708626994587485840832479255183382870279835481362506035910302060345176431371262149471987255365396795476507324825759610618860396466880282188639364094748313699502934453384322025790135051444123638192736753248058738824230233499120819855428730035301213358095574476421669684048364332707175366034428496275728098315960072228701261431293029962594581723275769988861676784533202592043489347533381731741268895458400059042892856490686471661924494419796197937109013659666501274823108865430920902572590374808333880905181817352309721722754046454833945407895600024685573573636007451855949663712699339547907121986202845232155260136363301863097871774166089603207817632256847480186660904385274819478535696785820636341507648491653329309493425997191083836333740897882249666761894205169392297205943012623351924743996837203934412372590257894726080224360372498091542765600374977806274207849564948487827015222094184110144728819593744455690751445228077213301174938758539700312487263048021309875030267888433437233849573235858590031251700066665529878360321843905053474192374701580434178768437842845505904664582964685949758999848953521948131636118261851243646571441901803400948803376580913234680380905426074035482364868151673502589974943284415138453164554061595376161787670031990964904758742925076670829586382356558742808410604989326310468909364113365698019582007535617602385876059935060666266375618612677153848974234996082258463592456574871775606960595131122483191495312441443175608274483629219179249937687463599705198659328024698926063278216420219101235448443974105279157977849597765111465563495827299657460531260858628709518502240624270347435524579546376706542018701091838901801004880729486142324777916272111697869387303134560557958645716289998389204437127037612669659620211634043084071408216752837870073768088559589142314019848522387876155677039621311962861054355462747440810901663550701607308372886007130977685553965443256123171138280489516835723928023566100506505532841816801353616747987374481931479636528692038770770595931027641887447127372408224973497914006849982533456936188159017499657490414636766882511636936735175551772746330106798802087842168891220998533880551896369627716061758584298859917909405523403736659971925914839802703722943742566115269886678271380594498025617490260845090079325937829025818407884514880597949145987566551939464399156918095273484525420593564617127273988475332754236243294463318207413327065399415018133804348011138513151622589391039948989727877644224184273354854978671299304677903677388957811110412578683826974227297453812008023433625004542160390891880737446772220638346157898061350228894798669214155145011347950736395489990343645041382594782508618374103145879131464572307956013795909588308694051206703375193236730677842975870959396351642067651452970303538608175116623873186541572915356457366208809205869731369270909528702935879904438184910975580609007716146055173974902433472075397855133584766440522884269285472128800916374990892310980172715996386749777300651581822169938987251803435435457095785625164060856790288002454558400802629697158218635408850373482124754357674007433744318241615407990373330222252474764921002353741531162356487806988155046596929306402260384884737418471150055924335582392029032906396945813307132303562549593167489980357960729570934540250457898783911451867241462637338876548875002144024907061710431930899984756665789841338541578300119671610876989885336844145966089842887320999070919655459622390937326807586159785075458035337273549695118650313646234423308464759143841726905377049487182136773545071402145480559649702749978906839346456977643674421143794754538596294995202030197426084156507215101649472043388735014099025159284330024081938341103928924442335967012854889318835707269086448277208181831676672660057313969536590388104139452288284250144787104548698829069883925279463576422492596653420548064359476394961075805738842237495795576963747985830462697911509488655814126674516928339355537870692735183941803659739850707770064124633486175608197837281746369393996283144564226634792015712574507214580867004950680718925693256088944223752013165069436706722701680785934309793143617342646297758083347330800236131418163325181604378046436370337298377779165722481616283297084882604394591913099573486816716023741016337559925260634768805117224984085609856135151445272556690455200077267967888216643166780003866102281980888191005775215663546345112343447754800427929306475828069243470223073274078560537098227874484195375390606489064762287588286061000204451795508916314683291149336452426892309548918736443280526291378534066249835581832974477913706865146775058691239810111301937169193702708907740576028091396760886394451389597999610867791341470925649558001850902876824123223777459435420754975057438608047114240742464972175827007395593755452986740890777756984172228990116830762447786889313487270769108176732496857376058180728786958330824291380931452520968076002957211927757683984390554889962707170515333847597414384153995062274753804678110409623481495292648437137487491099026079563923772190127511133079922977952195854940655506562203633900988786199848135880618448906627918402100742723578656925128141061721667722593325955209686013992994257056900765586150755587700569063851594104730222598282154457003408252846145221574211879263983412101330416232922836904130383729906428244079896147332911718101983633257122887401409584348518756798862313727596891275986869352977490351091062775456839696528048012492271225730618902670239540491800126201158242017861943461621387337012739854339482947890736928416510508951581934643729832564661261600316885411093357432407463785223161638212799766160556247310393313981599609429843930747579369321398465101384732791630629238751992046853419807841830521237025554615576221539463358627589642430040406297172657323531686477076102520146772373463659714683420247940355211786959915113903645896802654849159355988341085649835707918407409923585839485664592001512915561235782513005906775356283261891969672549015705701650185750795872692809148243340634073067670708946584645960609384175261888099992207609678550209573371219634743787039506876095104438683236780903700400791517577739229000981583410263718795186143287290473137202515194400785014485905235089869952662348001806750794096086165136445120984090852921638103012189815192117560317820843267496551423909746345026154391978439544759913340442008111615859718139224919363334575089077976831664705768932101575678567883682152516940964559814572581646941236015911352236706157040556863986819123887946728605779212861105328718122900457261806974832942339743776673294929189837864892895643706307544202070956920344096072167333475163151829702497992823219708715574727821661178155196241975089036827815949622768925402290135081108811607055764002015878970121515773511126787721021067626929879313391135520944761526347045020807103193890434142730944903109120240454620026152177149707647500689147687694204998787565976585488044440711550368384612538810867203253573975458036941844862470677465379059220268584634657285257561037813705628796909566447548750450069198505431143698414211893873854845308624064558657829509913435853743616552905993202855678123307771908655753321815283125996039064269794997318970045891159542724999449149143400604588034043348334906759762547876225440227434907189153562290328627036495200327373167296630962970249787862000514099862754018120093263310579194442031090093225473446358412160254651520615425941057724974032458293097525312205668479823958505432849102017850237021971152221918147624363154094521468068878006274728244071598142383771231314937621349755830932960593038121952236411339925813372535183228403816292969721480724090651167712621878509436726333974684647340524936197293640037902704289247985874544083290178984269185739268110830773039555648132849379482379843492997643817186191754821646096944402723350552737019703513049742027795492910211447001450681838812453583433703159290456679360567245640511712857272983038834082802651498822520326356533022902075062516621255222372738416749132275824190152231866768842431031228569233382410842287166956145466539704615137526171803737191045396468438923521314586784823875795133305728560618303238308579617030243065502688666445108969015493440733080477535914789765242405836445430522341671755071703372788055874884837580971875132635918515801696624088943552906320473368578390705940478005688465830152410688729072694723999563357818970054583399380562893746389356661735871749426844225312316332518065338557265442435833585188040543440858230058973511549198165363045767854102329738422057843819482307270632206101161544392310121911668285870304624912700679824502331800929227677113102865499547364646981198605215423669269282622588277934422704931062814047235695891709814397761552284979832926896105319622164432960451393041788879431538282440629066903534880820621227195271357341608594117770206379521990935456934254153975101855539604425235252822327364995646570607565216323530487699667029664782600326172035144001381249272650407081785838179737594468735810895001210340646038825962296432346940056324904389695745147932113484275122080517367236144600752182827058159157128706894075095240968359194576632194415467294687224920099413930814183809407667107312302394943889774239797287096991203283174198613002880609362036419582840305869135230116492420915575175099253603704457081828101201072586877278292877256110285749898709501038338102448214045024729579014803252799589019722783212689352679178960223152522992259526674439155159571272017228429198602252341256455853908538888377734558115144072777813034307877564972556623340261196561794431589112322614630435566579586112428779190692949762029978571581454386356356278934228081033059394727549473388649515684076434067821291697546239562222837546144835294280836077909626371553316065641185847349054584241593853820924743903868843489768639643841408810418988774633285683297656893055733684050084236762881592041934080052866252073176223884892675886858443382697289946452255151833859883121223104425360998559084931791007134403918845329001664456105021920580890672542368469682058526144084704439376108040542267708585440039312584797428019260478476791918412332490857182136763683408513491020112204296984204409914190676848146671395782835074738527122523924198830371229586514081647678491320584272205550239095347523905573634199432209752801336338911171910361786480209065832998443948729160570768400828986237000170401381291295679116430552822645178128097367052217972534865402563988743012497616403596977895194078921760390840268636210180863669254152472645640103419154682307702481058089971553991019780065825184970844537334164410516392158600786972962817657830241870893185163641176622328275107025058418171802627565696623129127800680801864296236497676993108666104417130601152265541610705237722536720564175103063693171000272197733630034304368652435783462656211850158390922742557167189618006993997349040866214688650119768583500230984471167612796127973851553718315210982850329579664517958046059793156730132675626060458459826400383314806957350996298727415982864981299340954650112411566157353789285179113344478115472144859733561421062189184982580768672348924462958122635269109974686317162816354282577690730434556089413822887465481058727688000484855161215116269475077404289606558646844408813983303279176901170511800734954472961564614720720160618118495509179910633514148670104900672393050627214988361363220786880940896754387665425095602161804621539690958248824165832476283648116792980675041650585835946582784075981024663907453668932217878174568953812775632603103964936793877605092664632819996988796888115652398006049939183718450972925956341040968818316189405181835413293696164750948997630968256984253527857297400771880895233460438093221955543729727962255211610229468842349470959081957059676537032084696522251800856827178364122158754715006989110477353953551525107741934614595349143875394765942237583455182982811872400838526478278762324789804350171918209964841608993970401005116734269260373783370287425637608072369929272126137347086884605665901692231572304324490461620304696533466877316540916463218762433615625248615084458342213382332292725558348697470880231377533431568454295905809278668513490315035196235172081175043191264315199243491540789058439919742958295099623488592491514434299814617802187691897903950212377505111216988665722352284937649805889204655373139698884055553654680463127094098231593364342792891653014186381433006082430923004660127396146048770902958413440860866377550927567607975939292554979696534669590576531398435506235834834746953708000704744338952906312540871377645605223369156709732539752775714313837561581252506432577796944367638919025022252443945922708199789657019505092454726448424831813968209860028554879190396875348264449745138660112688206963176057545820312718533368013221785873441164110431764443760457622201267699884758245923254613078444203365056077449929069959973886352659079839920774873206069565903923916112900772297819618982428213736460890520932076502036575090507850118549952623381085332747243659393609955651714348083283115529420245277393350283478538218937508888264948103223078970166013369521364474805784226408651835494621270723687199387966180710359370298091125231657048753262702473111760529378068049501647550812418260500046388755266780759426686069414072092920872141659659092849955345159382614670286813038636454680276851427505565298038453601099848496817253672768841910089748867766300548616805481759484280900758602903911408729358460935319529343573894419447662633975966150458514554922387235695324623999604675456055980912597245886612241218887650609003687734276654237739447851176798797076551782114638607996940741953611977504067301828330438258784675258286177213637624293606391977126258552278305594672253238944211762268213370778834427288854805999457605191438301065835149330238574052481421522337354148454159232742890314756105078029471792431792325729409938745423994577328051478297427325219236220565448233576217556818434015879493525161141694987921273232795177884873476888356974268384844589983362703501975476053906074933111287335193072317456401278417136895315727580607810357883670820901732142775473044956797733236945577192241554941447261330452893569948662378935252138864314591017996516263842812589872918871849020909006554334664956191157428059115915518096753027668678409229706590878859348245316034075057955648053603893537600391839874920603752651040366835268352025875955546957141768355658659251219315928588880173670427082519396653275209600272119242514113003621117849808033957328896260875625351062897111323867257252989344150574980465968314141887447102805028799781091165036793202106003931538906269913725370446411462233154236036105653380853233379100273713915599318859259865214550817817237246302692680031302451736940227568381439867342551013802728697498791353828980051860669650553245444573551833094560995353764755365469177503704444349032854850019382138885279097049043087504909405678323540245044501057416276598242363999327803471440729879016428918909893251204122433132172862228645054482172757626032851128952523480143331948232715566199158815919384908274260853982749929458372816536574103413033894339844589334050940260779614925099717754462425986842428197019210022668012620286850693637307704552126242234738018482769613763971671453303044797254270524603993424301481677732419235036058006715624386982371011816945606514689109387309310166558718219559961802031753773595744474024043937202700915724818091210527696582566018114257672125795567273224887727239958487836692421115465968677298917640284038885875105616762892358259777119997131301699154795250517709356724015091690586020428915614610006860345438122061907057426450794502296887845229259386988427297167689365622308134906711546574184929051281594152864743399649610941496437314105395813661100695716480019314531826681048814393857713167326907515118308003817493843546269658747552063078488484317649325498805319426613916308115379211732970790960826966100736541087086138537177419650233048745745802320454756278885277673851023191166846250498713678189807737193329895730230876552759254635031246662624384030374850226135764598547522479434749228361735804374866501177243010957403187315204627695000393435513261205629445627359383630125823544494905067478469724538692122417091714351415625723537665711834896143160166559091536876055409807413459179344150829517644187843087175679615636050850464392985975833227183257541395618454315066590806286000686554997470442472541942112464736332696205952361991648311760767944630997943981726045366718567379923128603441297252415989089495562790840990419259275123799980944122622739180845906375677048709711899478582735545110722100118151933071519072617549473607235082890986346397848513411114037272275076343669929752549331127453856910869287070983146035782494868931378213199517152305363925064579851797883025590870066695464866992694072347773647293621040107700832627130246531896897147842972138360624185456492547604038757767433645851638164822340531386261903332090693624005381981164598342275667933957547809465112700917789311345310007619537657794277337646763608387252246267227007434937258601405057244723695551111012074862360441759825233282677787819673420855423257111850159974829673224144512776525261442784662260154534690337645321692836418401286200712484500044892748512932967033136541754477631347133719918052250285237722885908381378536936362208214502444157657283722202911184387344278666749266357536948382559165339043165847513643210821111936580762417568246754160984505215556791048303671600727613702757121840622088803628145555045168339455511041826083195111216547497179432735554514123523337911732890895555392449104360825217583080603614392976049421236656975695385620522446549781285685101435295387348444358938042198516330498220929129456253641283009301998036236875914638407359300805389999380717080178690847735446516488831264456306882591277116721497009110163009005760837910812428504111580264460554418969937141368091053832392806700438386813851188645043410085398320936737248279246619679055968916896597635536000714049527163996491426412617001568670687976627366614054374893463412409321863440224936699398914938919960365939724011457797541117556414802293604963808374092002461551605429857451139626979697664419963064973149537669126927411482595012334378338017668557016308219511042880241188274210361625350131294312804456170762581696535159086830206788469489517775984303929362073312588944595009717851359405442374800862031915028086886604303693455751568602787325685070485824176605734299961530684950881650910768534354024148654653390560116472091349768634347991923890042995092725209421648464332471794765658830762849643384605019947767361294806456450110872015058948892411192701314215819508874719942420027772244256452933539713905394270677140831534739842364163381030355238144318718061371195995650822282558731362060370263922125996172923343288898320827800996577599249175634246005170219826597369337944514598530782651292293312481805829406476396616350729787098501022775669096860617046816949195807361902494608464972910793412432544620736692495103155959490312926968062650094916898060832271195639103296645068831924307157901232960503245200037043500288939945516869235346490593631007877883375959176862993781370373819335596803592197262976676949818942851189246170999311324577288969953527181967330653577425449107878800592275271099470766492630418063669290445528765318460543586584479425417484360857170532628646890074484618754116468643118898541164172781608185433540744906964083585095945101342470735557275326253675316678527698381614168182363439093931450262392716234433926920549387021783869395846892568680486636453414552675169077838265406872220126466534851091303050285288764361892119301759413102267979171455972818345175472893040398603885160909357240129596225583630674830220667891835159667284764480802986079069779339212576681122995275310405215925172512267246641118569509933370877948206125066903792776450848033900733671773971429407003785217143623473530097058800790183103196581538486902484280147041456016376919418205031936942435486485737558004259100733774048445598026848820002510377170158410636758479478893584821831934314687825104140325404915938352824858518933463652186938298672856442513423556807044348250475466970075794903488467491687831310176861041176697014058474177088023291576734565515028670443381196015159122856387043556797797237805063217298858119395541846046194188720986765183905130676402893381213216230303724559264238391619045570969303724592835292866171677230197442683657337690542288492015090265908369319341351127402421750592591550296079855168515014502753673743640382142410608746418493292117924109476094575749135530959160087202362060138818736781212057528711036783860035649041536096808416878364231397338231882123800087435191554661779361092038776143568612875647464025528201385309540501311608860703531760982218522605758250692087031273029981943717701470046644369396952770009375574549774040607108523923723793123562471581870122889611858365327388637217167027257845526410913191759396990382299263286450633220939769219433811554651650428151379862667102442762736821836408167575890560345074345421978055917018443669130709042198815159591935979191028630691968959114630296539669352853860899682789435506098544405197249571369856144847099864074233925802565477352087828852244021653082779785304274026287802871276597831942886095349367461179525421949415698190739255111489416879722692956949903047830624556429463379262901644805837471492800980642801806220050214675004415336734175110595269690576352138735930675173529911377239051291951848943047221258200498502285764765788909056665735150045548765669263854342592454486491457470537429279193028899493864047289074229797578672054456231101078904096026780632841477782516320115332358410488347191839563847892916359229104882790385725748708452219997702568723669106914940770927836761665971311737626020500264700403465207350588469968783973930993055999093383477052700408611722288405781900070944556171514437292193763097435178138244845047903848817614183663499224407265714970961402096117358358125933544830874592347661150579055625514249583066046255528406444323107036927736070283525426178782785456990731661850916216754112577076013609008235594351265167264526849365114230764542097539855757531912772958974087892633259194725686822666273144776484502534042429042446782122101003838352309552322226649481783452352948450408790674108786865569261946779588370273132158520972575817250938805803150157099134122066383493427491229017433229210659042734672140436336736682734608245885742364735253314749808999103085616465291769262850765294339776834377499292965799846813274883405547233053311609619188098869380492885288639813192846273778281048578679055648779098432947004781230050717227924854436573999644589704961558702717269733531651464914400132163409076848858197281307098555719035623121132257188006025878440471511624231577491993544829923770149738665426028703819421689461856562207010516202435021946189499803093288238459503481667475433238069533671957846958921201782248000746331771237738543347524054882748103306130287510867607884838636692641261641018186444908640387662765580952341089198611846979424438502765386827150944444656257845027640587429896170965571711366515838195783352713429243968397224461681961914929165721049756670903649235292703136877536309161554632715356511108642455399501286330969799494791331247288776953776274995985885806814017479640021550859982954911866473928332683557649528390117939664956172072556965668131502304166832778568891472823412693902188196051158642016718729299925441405273427661088044386707566724122780141437029882842279104851780293837146584147624307229961808276983140522221544627256234720678986275482571088825311252988736967719730920749282053538646426154012775988558833287337598806827847821994526740278528836789645919778395881575352798754798388029220765955057518409597067691496841308611251736061337075148386696385131207649082092521665170278203774014567880033627223795457506655275618123994759609998586065455307986161975865793890675953879474730103275833279217007374095536298461717015579772606069794702657945012180332310686424311392946733279998015768580832916220340766145310284778513382345937230300226498104631249548280812508662603460704644354475136293344096571102882028906439521151932095251542428890873775495228080125156399036285528166131697693065897997831411151905194461988240594396464306305416970370664062528879614608381654650979715381956704040664651046207658346783022016113937584962804153245989701444866382376899683115520416157082611902671275952464662494210449738465447805540643389836099218924089298506779987319065528775084444842296450213699564989886067621921335399038114036064419299704924578551810043763542445934803358059507174328513831849136589568597184363975682521934520960961255163290658960952805320766565817000986197713479361736764469753081907367756158955871195069310233301285294797057191315312543687858812686160770534653189639625639858809501953406692461202636572651759552221714325603154128630894587358888891491143968792096788037834374022870938830298100718106938120031124854505995791021215350154422567403008777825224493114078189745773801683126237575192911796880256927321097520557564025743666281377000471361625598185164392143321453109574923894092064211559669369884825979023979351988924386345763741128340527306406172419320042730793464996097592677527798182147440073423576649713802751049209145807873123966378202670566443543592467823026845802658843534058973690372100016605778563180156371438217361253927222286986264503282936581660516144619775271917580834733674924085161529035303818769693911244433771430849174179699871294745126019527251694042790271406482628310331355353264623575556780527945264814235081326006907048044884340723198711855889827941428944975996044379443714545956424112063095148791475053358485355277983822451026074492049077663954524458782099157267020808347146921122369897925908633529224818133349010082255140490380555672388509211366697601697300297928589960825884983828771814030234512348555676501967590194964933331956977059801392620543989748191505551428029720898433379490794167549763259067844510270077746847108710673984731643803380894856442542290137689278442677208889638888214025956626530574030942256777565372993163109269184812163367233098872804454713751142770892737593030340516044680473385903282933648410863202768124533864450157187174384544217619474433775589504047748495386120056973754858574896374746333327986875870259337426722565436424406329597169946280891584149956332716976542442252638194946891153083061254697750725412692335770706442599336726424881073396328956211957073200974978625871229138474101943655031329209643903917082281866711370177207705612355436162042615073715000000055074365705976841559690629409187599883150362585154666442610026281976996284482867683735402317236908184514900148559635793005622970641917549655037166165784802407258615158635746093381876646109916635969834394541572786410414117819052621201640203037878887813786770470841504181707846404450369115956161509717008805550396393068593985679290628125619441224701943952199625041215500323595567018513202566007988552082395893098342868658125619726800389915445755059454204487405016952265893553373514305178097829985624738814566268124314119455104695957786952163011006751024036031261573413432832056743582779310752402694121131895792286840302688055622927123554208734210176608287247426482214715068998552414974151604296168907126181511711975283075444715787210382200640885889186967499952121848534623605099587102918729001212344648502189190184599434884537748200505674515628141948999405567340005651692289696073688473163035243416042244246454923929869344071488144620895363726431889259850322153416297816252709670760449355406786544596126259167817077396216671802844270150145645465401611939753079875258288464330299991426157449968217533175834169294397041651519379140003594645435215758875541158884428069608058091173684177664372572056016543919034906133437442651397362197486143181745039391287697033763595483262951875039020506826962939438460393557315625899411790144185197241862060043477344439883891138136402237448444582980860005902626650836639109207905696115304785579073261426529094664095118104251221872710989134319018358834737178516358494866521571489703429131775773638906289958943183207779479287310411575635590220015024581262298115652789832553547245079495384462130840509447266803571165871758917150922605380000064171129776348479299924448854431921926197332150569844846394789575830715645457100181026637471180590400631146083183960299218542515084516147654380189486760709732182504158089157938633117612835493805173943714173835166351547866190687843256939028107567824831726220487078252613296745623236039232524479992594542685772981065935456357261668827311436145508431047274576255418626122495030384603467159311186834050605307517082761088416320084810688650587046610615641324793719810237684783575724171920135607452907669426848246547337330489739607651765893084402812747888985066907921365472485632010532241275840116119614948679004403003748756286632746434860821020182332620697545681602791813641226578189174249269405613224521361556306968512865854754877005479433395486808065080182480593429610816985669885203531335775633051399917073116199365340965765400787910514647531667200895314934352720085397726062634729379162738043088764876412123209805907001349756905969173733489088450136451483884413810436810863011798073684783661421510447642189168866337378799699160316425021258307979340435846264262729679628079175673591978938731713209703557066639949917845348283087476499232593556151812599193268092969595321830369164853359109960799973076150320543770607222590068369895349243098741132907037600348229900206386763410681955529807116954429112317729802285453577462924804893667074968705666019069529172970829228889941579253856979428072103174390896045554643802929566433029278760478924390572599731529385817697457204526572894364829223589529305153411577278573501664179426322713563289861393903333900844419531967251515333501771518685164653060830011510792663198559266285069590592604290288874122703933425419318825673601048933815613188751341651871246510716258871792294328305441956511462393459585601151988786940759370844114888943051029472478209964076672089376272780041617081238170642305765643371852220990632753687848444982739666873807676879940417223640337007362011902610912741260985983746513415462347240377557313552627265896566010113243448661902489763392943216647354501079644806068153992307887477800632724543310353410574450402168871532595732426446732028633462224079412650831222253970093727418115358396366707429785397826678323868067360591605253634959379215149814427465943336965559901331662120706708814764693975941235367617501510370819676324567762393711665342920092176674821941709006882491875562196984422838395130084723428211520286079149935261164157974924350942745106177437048859928596773361319972344400510884352607948578385582260068918625662643464629371696567442554079253275849180743701485176483568940786378365212396543100851927029723082698586815121943003951569969394049940703572931788322877562241711567154292864800586754283734096070790622585503214506625917197592477389703829710732060957817532156547302966966181457675736702754576993335943060869934565584525717369735389398942212751773761336904204938444457689410873555184052680049407554925272200734335770917982634979604765135660627857838795195388197349835447185124560346217013678497925372726327575724900875260955050907495859823986792760668658020356195974936936739845776311098517247527228059650903834297253537884953464764322148316765170043406266312111730269295902866131155124632206740405681361468794166149725949448215722843710716420957923237007075296684703017896582948349625368690716056891047521702973191727647943870401944655374649692663087504608253005411710655673039427174435650722213585790710703635156127545222736563344603343264940461175731074588736383342459949137849417285412119125866767093240857228892767195974842120100267743029058346932783819446692933264359092214405818887856812059877303148628238381770665767243476564931148798349585355221658345988320003310251495188663658366022213723238504548644518665046491538853916946286423946293357542201583548170177391625685321674794606079811930733093153507410820837452484797453295141465577371571663140078138860077213471995232178198548291362458335450729048295908703198080708611552605668124525550883237844575763544925815944593958155129250924996840242782491430984311408004846260686817428269364232463073216888519950948414983551906226788612071750360971198866192419436339904393315574886589857306412955706298668795930622821879218346155151722727088740841257221689078234638882077410105858192771245789036720077967371048923113004244860011124978229518693933037827440356106681100342701368480148983959885920701887274692823283163969506797767581180108880838067604802209442986180071214780056883831828192102138950965496398405654820891125727639313619150400987483115426945385511654648707998586285086080930321172756012559333415317501897849963807048940543115099313216828167583524123742853301162027867552642288103777333874490626497541672773388689343070187721136480960921218771131786900759194566234715973104078821096968378469947397598213427020953257841248520575033164875808436841637932423568054226806947506422266552993153864712381316491106511176124674191760764052452781628413051116679559924182706774162430523247700163652338211804032011851481686499234833114890384938607265150198151964524909746524958789893791620557516725853707714532534656225531553390293218202868784058620516538158237470095984071934847566512167077002298827988991467483221596898076064887707249360951627044832145668062143914430945754870546463213180629408654734805686027165731373147115779080132847100973773165810281226387692281735782275582258448773763346344726528548374466274762792925299854147866844594616804945414823482778844095485261450090721600778052874964685131778467586746008031939892980598519189252578062851622904154807507004472640468689893974899160059191634929732753932565887957802949074425047677687816569629689866771736964321386059719050628700097794534954589843130683313779742208598769270884431353188159716787796799493042008018933249911005691677688985988780237193112340944291483184662152534019952095406988969582285668396009496223847822244768271568819085096130511817947207110721932776913910018553324518210732468476178984008828931312563302661299905123034394562716128721212650851092760338568703322954697184255909436455319359029265667062132996993175014268660657433368453131328328571307392284499310480052169183445653812789181372358504333548316360443729930900220851137631941874297950052428725311921230225486952642019968410820975548017236097689200097243745372898694228280255054707937785746117120149283190824533501584761141629233863681614941350663963335332813283683306083558005397554222987239632668923037379836816445724683365658386843531648987896351252807248715617268517639746829407646731623697005879443781748223910986070959694300479951058002421540687765491085252682410920376431890401142260603720534334290954382810451409529308258770794110674805365266523371420993925800369974954568591126959825637973263533963916422245585292179181177929536690540899942813159224740182224930879637000855761863006854587825438108373242916168584972859568896495783487847060689580626545210030324348962573953867881584236475188021864751055971842411783557035032906202842316830518822836858310806558079482760559178671771499881555728258604070931211138832119546346848078971715920377279501723138615064409577300910555854654746182574845139668381710263361495683707540173848949148717321925338191653051501610644591792697455098819166061979055227423656834068799457678051695964350049013387661554139325411081447108999096505950410547637623748352434462714497182806871902339114456214871785337850338749261280282193269139540392484577422082302257486246770336037334264248192117875532126606921648833176931341190142602646157247509888966477447009096082844196280711962095633718389894761544129846663505117949107758144370747369207393117693434972256118291378399926993194391965379057237511072924799615532810493529751774925324823029261098261478745220378079884407699505133909867533584768025121995218376064032534077304088104110278482355974567043353585260357747907851387038785421076885178217407572836486273137635985734807231189305784558565007934667689795447967172522098753724381166991167166852923924004261490789298112792275654658789823324078472707738678355439974782835059047047726888330701213409035506004527536228911833154395755270782433773534289668685619058386177660640366533769214764233040906062563809963556403002535879499967454161608823460243191644581475148118497499174189615028663948724141581975422782179871795876853181692477759380471414287780319799614112399190460434765564702511703621806655838606863178388573837337591344842652657003232077641701123605086611670628361956985203112749945491172786676093986075089214106033416792937985296343719462692229224939479179868144071197039823274082541359387525533370741710912359187497697563690559504737561450393507689489051007013424874455516342340122245739543075642491221870326072029108108881719321959105657348509955902753404872288181574920853783113704464771187432212570892955062042331454389920520002004176003871222439851270925155577047799868929518124597458262086500633571288817189050194926892843013993338384044072678205124146655285041095995938111497571858626061345498150909867491162844490433088384883602202227145792543013858551874013067013684394635442554632557443368249129270688454906449788890246787910916145212387726872160431052351611373078558902274371951411294477994103657490642968682541332067754732823453039258583449855427178389637523963363041400640373083526417825400938197016926936333245670167383494471535326423042247747040191666350409600306141307184122137584341363990146481798403199500094729297632454749774645055397910824780506555374889659983006059192913788623312368596479810219855548735136225693895446452603833306609537472349163105290362714204270339369244236852825050437402651986275503681128477976647986048815803404933866085273170891987640231336272279838243093793370151409989377107974268827269033566083380302660777157610846213778118953058371180474008133740048074610117607246008058584104307503131604201788383341135597873566844420057397782764152618570192108644562474679255404738190884233144787785642090533226493467622527856505090257193000999069037722305245238439013989565900902512497638986458217771441245165923548355932936518906964586555779610414985589358966385031756682916139911906439750178525636047923797314138403301677405950634125143116114881616276497425779707827729017576629814259715702650492563757443593890669071199858447442426723621827299703225157499621911065196371053057789125170234771333459575265525584270557726429306529812772336136213103388450657975335600474521856880308100520721524235844363425231905905349709550172701246889218790400114661514068804584542122326479352618347068104611271735297462596352382531971062897572566217865690922199267274955863537811179661286573354319643946870612122399114700425096656359515445831669158781866802371356235822831250438584394688692124984680546226333010643046176340647950460362692511395479482774360402413576589476174089186672307595463854221620809856027633341051289264794668503221207882745722147919995748670783232736188568394146738813970166355252133221683150902328922420311261970725241117972168031104322516103293075265821229707629234749523571571452673855219800949755637821427050441955001505417268910459575719801084753006012114849331111585128422436624212755393679614875239117435711595934109947960174720244932597175362517640928921756878212177796011476974682977516323253144871334087719764648652823665954954857349548559095290892975430968887717919776724627061541312553466568938990428541871787726795622649220465336557983205976785679570505542343212404547284724965058021334848155868865254090383491627093408047291170302322940712095757667022005909563585271163964476272624398053492073777451307540742972513665439059719452228329594375861211278901676565039216614884102229353686158805209511958866780323925004579780101245317474333651383298736332384225003879246345738743817804119418065513699525857204252135351457490112731010720068456467247541354189921647997868243335443732872396414744985368569107702505443380128971989002333455224652295870809236733636104618390621811224550188243629045088280964190090947336038291674099705434355275722655056265404175535362319170995237074786040899882041089437964650730661876001097897794193907805955103801171914381662177239132385131887493748821339430514612449519806051882920695369448966499649786820086656784286485446120885826628468811089065233310884187511915187350251353557593058008471972093949245371224524685244167434356380045585789045310158804763807484429132789996158604159835752509379032183179462867718648290200953273394791630947026728480548238131553172593490054626154603527824592036681416615285306437769576999362968630311013050361964765971434629514624015474853316873896333718471932428216389400118229764317216137173962631873448712923243085926179134957791602091392861462674162254624045215926249751388344757751950175783082833295407434145462190671540013385900701473343367049993239464359643007906979689378628421389566010434581076708238718086627974341599048547290992602362619570726244419731882898902440692111221618769060176003714664926870181968441487254835455817852143821937360805328369222976283869805539477243358067011865122860063492022071260902416665529375674860345183748815312968945424209868454640446217882272139738917530226789830329155045111832081293760122036729618740920696354443702481732342086560523795750072905842187933777915144290384818510766822340566376824607045968650050908693848775383904854187567635198310188868732768455105678813068328473726058108468324291115572666253209175519126079822716073647279643700379986054650506912068527284911855010246004789654011478235851574130871558683351679292145557015441257274435510718845442969575782435962736258909124124196717146048111814529284221215231301318636623516433886953806741311424727425417663088011313698891448143070531131775681761879208731226013823216813370506537131470612649267297708658997318238159747538345394248572233303222605188165476874140310963061416436446538311320918727137471609071566904812016786291691855534321123933039097100851707260969127969997122424280444838345083830692532802097708978238933361274317970562081158062481610453648233907505631351525998083777549593317798817877390082349901856773757233622362655113833726432856855617906353327565949058464053437172182120404547338939808913727225222673874606195347232231950965272890577523030364726291809291612209699879243994631874253732345900539772055143875159174688014933253762727162084851562782894069747286996699230179222121713333770093953258261234115141268300650785427146784599147779982325344143798535610812404958292877112922373570505462662297833444209618913582024930849455537162767695396503139392718545002102567509875035588990234969308620020337286258264557341338005664101219853141116092579013757399443573852464811021797394196247408617302341257522797581752936155444693158218857639186721494899495044703550103668197761283872962913374875501492737287069294607249831278222630464216596712749369481004112785485975878251252230208544789867544605506005939253783726626308720046943724385508105736378130170672689226442876914597895513646649858539283739842969205721378111702572227776781293462529788576714529880928812903977197095116290327765493169157197329177361183628995672924383362639704753919495706811733968450890741144859674292808686616077111229713567380141411549525360533829927431748225671155066915570785465297206222389028290362458469315270612939753774603813528657929306775436594902138090568371028225410425675735619931176784852051157452249176872708970760014567624600399914113155812767356633695310162748084658917532294980572086475435874055690020251798152111567893261172271010633978528412073869981368926914935581019495059296071168081960112823454856148067962527942146919653658731662017656512929624387878706580053740828039629849936980821007136813064529456144596465165563650549340824821262906467827970861264168282731715280466014034943054334642832769219699401150240938784650737274238775904262652989179691899033545808090580551443714177985289606146350239089151985728528534630496010919623297594201675936718705748870377251513490904213064037099015161370790604592674539642457846388847605449709992300889990769442367988812511415358779930207248804503351485421247740270255529304202843511476078375978517761166656488148271886163740704655960335635182565482028127100781727381143417420735615805072850647112016417237370357139865903289929665769830453614694078474138921018491234125652777994248503822073664698574232392829001026540152404999686941185358398604515800308957585696409260369501846649221062023313084245807556251970180882995107855284905958564453541594694012952505725239651189260587817360198668413670035414922227304489350263429652928361255804447571279317690294741923393844720990135520003519545306344368390002739674843302466553160158652256524960381865820706916359693453288844649481507364455216124434378682744453605506184220218230946190915324944557214310425243091219413624053662250936857417312739283825363258915809077947528151346661965031789993558050313436132292449320491634033624324072005276604994561000704586948916279473794161693370863402500835332082312660250776874253719968396528817111349673587937611650006440456174100751171391635945710090246602940583225876786898892905415031245392787814924460124045972224275664277514060039442357233463541865590649513709149856883468406421918471231512007330713186989278605159072016853142909683141648516338864362583712410260654035774805358373686933493833240859503598834433197258633019654337080831601158435077748648290663143615312576851480258865546914887413678657768056250069598022298483646786737666385239721505763580817884847442499222684570083742366863935986823936127022173491284385816641961246149683162656727222786466381600024637331396357235018363132771812720809217678789634210898719819267594627154294486749055729989077812610785989719935208995631482638860267756988157712215586259499016150480041330639760248513156098214243459422874221774046584925902738144820033906844875802074388115320546365524223287788662249419642011792085001474661203764545752205542712597316594997605615394740512881233059510065598512668312430941157888691759990614260876127711483800481897557002200120043589154276049170453499903180858670718179127698653959186055030869998151512294249467705678762793646100605339469003822108743573071370884991820651929000095012110528643999379024461200541957910309179570999982737272899550981086465448784771992371035437310755433825935661119672323655426660204358721381658921079955455661752521328891053698765647628568454418382911918220579222835231221289035137144672945832396933210015204383830411566213912541538037202283843126881919924264258714407175849581284435382872422293048470267526418485876292724607894757889295329407714158900122048340366295603995353688440978172967126447504758208831253280971402269477325219613567408454904883435655966916149526468259487561543819138644778897020114345643066884669313466924820696155893929897997540477664898626689577294574022618074543212155398869601115572033598169125479484718127993075381276078167265454792443507230389287893605707861995257641737597408303400770625681077304051837586285634521748252127770000047115055083424166885009074215677303510096896764421201256702946225538114034889517124130272026259122268282184714488802890944439269263643770026646071211888475982288538344147793259264952854345778186203383798065134514564471162794847717089246791551710259776672044580510616338428792656188546747895765746943528861459338932238771793091203942432681404974370025591922265630907050098621290149091283468271249888350967667587838767508531733847548448387719284490311150436023022426001131220942789571514833201092419715957809607251036876701175815797721251851033583931669946500111687589058160698549502975105057335990752197640754858402245271490772609594789806662279988652282832627064198253299444089042281282517076828832237962527941785952475308196689892907787350411816362745762859115451539714047621690253816745349432870981700942492970841877809913541452446289846973453009759553419484756904167637176663193290607651528599907099033381364056506682465422512273287278574966971080696362779678675577322992428904661645503660674211423466458452251673009953842386629820492949371996424550769913536853833437299202469702440116973366174699738263125320842070086245341871203318940653475262094484865559332340183379417563328828035497642223937279368326935746464152398426767309300473297566040181884893980571460153825811846877967259300070498570331611567748519215136522258464632617612739906733155471316694524474507572168824353511784276954068258178695202723515498855659567467539703268568171793742459950849936859465806455879657287527801836131925167608671880153024386895271412676979004165430748033342845923658518696100876681950441600187430902434035489254126580299406963598607143893968563962649836035879828629115830103713715057734431547897731590596034714273480030843029802349842887430391179727865155524141108649627548917232089342585304453292752209070513489675626383607532994185149915384635932995875088798480987444388045990857132270779096643960584034386633545998348721441206203840390252782690790396550599329340558000917642646061318851897217142304933186755263086201957022046775171638641498397866459300347044859483857485984465910854437015203508962312098989740675399978164989607037208788449700118056494380013203889591362328261977178138377724859721342187951268916660495185460971280450882765671787745635316516890083940504185135212808956125110677023685863690230435429449662574555481563445800535340816310839501157823623841624779625749004144846432636322034637220342416275985378908151130584655528216371132790200523522759955772428121172197332819992969723314888844164258837588089903884103039834850406601279755495300293863079240859199490720254482886729569631876432192182652209033634594719214605868290360199912525047053528870232158890904936131489846641106826409553321015434256913408073966634033541632360838191353379119722706098527541748683807706348407049852948390450814655345912336829257259021358926462601311727851665577091664676418567643500335492924127306394893640538503255644610283825670603805355502985432201319245093730000935382372603697635633327618873329033395922171116378862728656001659401951016825544449296896617252668828921424039647538142650613827759568324627048920579854769490016799693791091418061456965172236484305286942947108696552337487078062032781706250722650615277178731493793999464698271662420819445200778713906391130311817014802065859194565924710720954916772095577589355508285009682918907342601905511818822175623405635460860533086840059163011057573724728102067971759557684930360655710926279033051415160278036832483515122421057218057850693912493339934423869141482645122101784261236004484424139346154767464283242865394464687335375253420212046218011170055325303953040903889785165790118905041512997926379119055805644062822359447756072243558915166339267641374099150080368902662981318398285249732692832706233953181649962011241639259908839311980001602282410761472071535240027004829646586042256032295879335038501505239764974587260583673659500341852361338514703901427674541236129426085217363464749130833721235383375565809472878331117173701011039220662595926624158673408821811134240319756689313073771536414691485849573171173252526788245799140438527152610740057399793606841963206388454909262247909181547863332883278972984209977921879262034812254855481062562234252882257471487649761792523161908615201790390728628403462277872015200024721057491493235791461991285124639774626651059401706590120124744616709440125053859554478680111742561548244086720476725650105461535811871025298439482320735632542781518948193741339051264614954647973579957584053015685666562075883294112168175877730417124835789326476954162235708004269065742099124707855973891599317563627726765763013965437825153510247145766915774189887627231838349548675104882795755484347766867781793464118478614045423790516181042939314687119883059970929170938674316586559820763428603032032242495020547241907415875733455810341100775441525424498141865009685118237336537562840512027370139147523275684811968103251897583912585833904212635977629906194351843785720609901344809388437786486963399472596083162525141416659584431201033470650252517222113887685300664163127287796830618978191302389730583771922638233205480849970898348034483283285172544565896235403285750305224184497618695217996215912923627816078699979765417864265995969579237304025815977852262173642065648802790502799568992962583198461991124234385732335490475979698296398672719507303319518447852855730172833611279410903465202918598706619579357841624653939681929739052416576040871513949518288546974896638608340071085697944442618742209996462753844209763129529085641694883468491286128630100884736333275794752183174507052641229670769487740840861124668397646211041877481954840406237451027529001190268192516838237530250721722271450359084361744604252452664360909005448036921591793619190492691002162798789080374867884459172936255659416998770579987653177719260122529282758959205877875319657502802308155276416767970753033666759412854885025746614925806377509486835526140041894974666711827117866881019088519302767480254029135102905707773121590728861017859966965833638054987286605068398062778344164107710492176446660555310857187304597607164033660872496148702396277750863849768458928495280149054777435339165192358422163088001047171956090250340442222303932607977695736909980850610517088475396237981581578718333891507502411002391472430764911087014234233988567912777245530129077077184938267267079872973243172284425126454090429706912644336211454721991284492596685890800928582620600385843917920451276322185814347202747423317829311317022602994635195399577200355853066908619653957748167797935266358492378384215828631876922466291803762402091365925459424458492026003255295948902518093610116483302870554793981919924379017240149120801633924300033834569404949580538605632772796148877062564060418260328680490355665783747456293182168081471466577439917930016657104952578672082723708900721167670184213344362529257330735492884717451676830752061987367923708543797198709090248638500217794847379895556736349211171191994929250101004673638948144213272548792120585018685754798645284354558191169509861134044162433633263764616236942239040118938095050472091105621832134804930101476155771866353488489496877602929435925183442895502704429200567933365299976761780358723484266749913592465388582844112167788281153090303874072610626991679675689237358915400533814410922706770004694250818500006546422433863846485849729664511700424391467253788064566818702819810583981404265541106449069642986265415869525172857190914840585259747642415725046721517633933096944762342601362930084320400905875310105941478787848951854293388659033078310608538068757752684260099246419528407103103769352047251976761845670984836371175564346025641915992988492251752514158973048148194995550018723036948553434294898065358812343784101893622646400050685911326476294900244200095385560992937195722177557023885310680885488193362938572027957203393310066715560349636266657574239249991163577977793800224616709535056681102269061437917170746767731571596537471600613907413975173660807474904871761222372451475218570271462565941311181350041171391484112178121088424081840929991110642526176891841876685055651344135054806593102479393941799982532974569767689705750478409256072245400434576899286582879871334135755456505340677254734847719967852179916775935486513945542131866194906588478271438266289011933459352548789822890829533135476845317850371911022023737274695294168220605055579563737325332325163922636041400791045626747650867723658811446475730179935629625574914890678972006981436538767880983911800332024456375033421807823196500335469692324847101813975685541469477680522822287833226338497729713619778196740082132046015678165922290833954209912167387216376392048781772978626802441933954209272080072561467064238844496102692209216921030425269853481501842002543886822056221357190091126680925627708744562605871239663351146097996673820969724187036179607906677840535212687480506303974014033896480308358534762662765628634371539158440295714100626085166724812430255229598856360632958312180748091921386424603655233593845470037289503264687573975314934912652202285047422026882097971802042236744985694735354323784132477639301288590641611425523081022110725416093507213063798254833380295986314539483351548599535921618425421982327109461074236447674011095919635021270575782147983093089705874014718082110638739411634037386929482768952999223826404532780226729262887553670491365218055320861119095706169692482645146572972119800720424285745063761310798900996299874271568536040808854664368331922535570649688358521187622000517585066747110360338718064549179833801876708002967187557899308740230925706322562414362979306219432820476512983144231789619373878508166190073295753391223263298511062614712645244057931439435611955778752462399518882547606258080916941346376518048675897759432293280297275920801774027084915883472877493807110897316448179568783883853770268086063760392595281231282300508093436149769864915705725270276606740763415152925280019509983268842706636219693964440815711912138594594194245161685780270872408232660144840707691913773631265946807121139734677987400840568654688205415227236404792172397446016660626473972201797599898321380955046724309196627691314896242248605956708343311146016589165279571089575034009953041816728349923835602684453515361042965764181287180260399434864404811072888925161249525069432814234420826853898975248415932354399052642444158569878892439705762553840964627888711271930394794787894293517498891857729894545830356439408990681690343203234774479215140494163127847489585001442871994835899426158962737447926478810261730064667230346758312719952302170837362304533041146760132107339173806911421765728161627125214308754045188466966958496167878550096788787270397279575577866288523637449171508352998688856979275230649700399360088478862931255763721088977395448657245613662258309246176570181872569760814534451768313412015238611418376106944443282714074003002530040473256771316417554528959435374483197338910517209048161626165722063734428034567731240115096146456490255620694036161131769636834581701520883764020761676131303349263365856054681544522112373426378730284746736064829182737464027030020836186840764101328018108256835642012232022788484810491827463945162608846727341406646242596105260775062186518967038532103240595142507257897089309360898710923136377795040507157924184642587277188678857984183273830407501211479702290469600252553810809783594152964111367506325370087243988315464134412083503520197187168737853725271702949809539927358896484546824516853598358773438342025601298288212923810367739157489452212520723826646762562745311761544157995856637753783438418220502676600746470387053886311189082835003913564863728617596256140263412419882336513025931330706679090390568483801975255083706714815966168298503975983282298800650900687870001047585974361211299207056011093309604925611137099432095042864536814101673692283786488458721702173057141852137438948532997090108027307095246736169531818478135539275012050811147433578764422275858287563792812844593107323562803640700694306939982980776797795278554326612848865367337763695757877604131912379190474525654885717095920680654739140212184385637098698810672870817760351512091321773902456728501728520765276586900645452537619373649690613352298038524976774991011137292294275237653078899479165338893426757310870095191309065859357332761942016816043542174567035503017646404256022632872406226609967659590714660230152578510868016674107883528826768903663067675675950409035504342440664416676889220935229540614366248763203879102949678842926854605013311546802240682530731174043614103979649431923994959209615466540290948190741699157415221242086652841115968374092958678323086899123225062252903231357244130826822101995326773561637056369991417913405621185220386714605095591820052327141974185556506960603417127353095417297807975541556117416014769008230771387383990869960641009924861487982765090751482999819381816166724733782015305597775935680079262838153281689292140592137018747749753968264962954588684636656515665125071512413076914966201140334807099087437819321176572489500408435007703400243890261734240168833544380069948485370006385711174944428908315406342304479049832101715831902307925497132042684989873442014241954375493452072449018918386014551746123663547916512837857967544051486307017606603601725014494737384770851618401839629865455895944289480107795043093541780834438391115776533883644015883040178887095872268643145618897882237529759830371428806861975249112360580696967565039025139815320500874617973186995462338951771651710247393223730532918587618553380304596898201223390264245156823427460030206774160850050424682141067525885955392053844806213447557117253534653457109259072586625060256051696218445833641601324315280228771893715271109941456670395063554892083524759060331846589185836277400910785248964763651099673952267608851876112899212464365361850523384615391819572628102735101197697712300151492405991160450399209566087817851542107704792114395947875421561873057243607766316046854239693663153260050156216475717748396166385460111266339355643926693088208101822149904854817015638254111778978576867895408208185806153855355650403906405999538104256412885816594205544605509864203556320374383408013446319033030846457476707400744303507742975672991367855631022389265846149541876112872363092429880141860945072222528737545204083286972478764803596186627834199187012636516321125214252748826813710354747161113570402148957091932069161723829618452235323238019733586415452542634287369884698037655434244250083425639360316856577578622307810850274257430119469707412960839921082239500247179236134518330491348788098291315743212164536274374052502732762066942215400025793249485739613646933844648996247115763276899147075291039520955736907973611039123713802872314932434270655195049451676275783087422271442760869436307430596313340047620606051521160696021701199175678083802970565775952673321763084234739223402504440288967909251477274192261244624292358471813952078886195021358797211822487550948827939470623226784155297528323956443851864799408497209045865180983787667000147377178105863145082489934824672598880954288451278734965221674550869642848556821708570326726070982911199324983337067482694418367720948300233381258611951128710990584823306745320178769837617623853620985389537482053176119053983526106575997739867951720735730064132821829551936376739250850233644149909397076984969628003312179940095159328725382032419151645028093854903564299244596660817969405926710402594878668276758602758826624904835896869817895095340701087686058648748551930949729016834273476505101952985648341267588858240984821798944922937390278414352425399698705715035601727551935614344923593429162248871337959425601388625963076721156099208876375525088401709256395063517272997692279569638606289228058326523635416976562805403018794637740022822931135533531187322245582942109639420724011551922626454429825234897335899247065824508974496166902148248722137467755779999000943737965474698510492502809446261046950799009129209214705449485576728241217807057872850963735020728801126241324062462601777777732977897430860452629445330050259373981119563715273689361353682022921995690701603933675295435484133532286998032607724546471215188361590491842418508099757315880357918693483817460901304905156361335177290568153788759767526322471539142806430967128790433916392344125162753271491569785196498375842664283494925962172334573327962155877915984230891697831960940926883527009847717395093219956469236687747269552881756300138847501718641084293871494782882240288786811098076309864716547868110447288174279350681734354654091988405835117754395346407576341499459849678131182722323854630684576919602166931310081934508600839820690451113883319914555173622591718799095425247266015284964439172178989911582640988109420440952100852825907135505547783662075907329669803902182317259561648562427084413949943382749024395942637857432573005921964033638321559224675772804435182565529284266299361019197422620562069446810974640427707147844011381657477522562303570352630235934041347712741112154552335218367948091381563044975045255161566938568704577006615347607260608819307420085317618927263359500333165106623093638673711448370659739125233947985990742078711492347390172095932713833114101522392092113580630090840195641265576766225662450053147425787859498257266010431698067906132644146234785531123189386855015709636330957568559960418334188844987718863512429593580281821041077981551175595044491948936140375475501035989717849394731143071403783360627861076331959499927731859063348463723862702001585052591817617924765438014596684125210870972334151883913989364691444809516580475738686726083349842659073943416499314069143090144346105167412478419646388827640682115334514449918242229422392626292577512709611126421914467481003655141981724571476539052182150999706663894487688894272247435708685505983461822478125563100711957979249870506571944024610626056790606678029058905975864527541166415236937553619466325320042701011731781048792696019460550884651792266447491988863738615965256466174970208561884070062712494720073628739582895814420588255703233957427706294967908402112641553094966783770999036466938622020015765951337727692690861684013393350940365722341545390259857991876150563285521074681397420491289013905841680098353545553681889740069914091799594106270672340367691902567983058964037343351526401112272550843144510236312113614376750839977550912674031379381035297947291546051633761447286145085340508264614168421135003527362281220319769336604878069819201163281071851514498390450682382865422497946183831507319835488173637568352034674939064021487753680390639420545695876761402985681918813259805204185209271080503104474462172463084759988609549195894713072092020978225704991438909154801317360804688940420284545028279824057801130175764662055849492941975431123336759052037118919930562442969775591246851184812950604906464731004778373995964103922835652568077945072169202502642329848391297917752769890070856687777404497769993998743899444807780264158906122619174892639322572150155791988532697929155467234367801541496946313371977570598474400989349963150742749143679044332054115784485800782083348209544452547483257640134291303865765726739536060782249152516845262670616280331827725866789439207400899692744906199990660003356886737362895410533146410257879764118999887570321558162279652033071110595121165421333167946222673706183620911695540974281594880300139454313553080080593311692409256562467329095154995102791055180243564286131037911814625899268300571869968319856352968310266035495245425175595265761120928147408218846802397163292249566410902755564295577717765939064135427158108315784973295351377859678738948092638325510807116802641659121554600193008064060439509719564794541854889003642617310843319186971648385962297815645766327703881762224402689710868074245532324149773737185651840810951473599763813302994600671545618777769158845353607779633269341914792231560435632241956327724751598836159441326283700148796472068761581945823380108859553609048644693605114154315724004095780540322061659492169461180082643557969530046727182720888118516650271581526433741323503625121979726884474663165821162655582258099796576179986567072910296831054631552879690236083464568369872824019686279364364690994995030595611871679356853250217009581830222542960841193228296185972917927110631491993479845371910057199215539474751820932058708051458456135673754927824547337418844646291926127763891312238012583485642266663824390398144549871186194262004187461585815700061759078953549419393742240969563505098718486924147593248302775527069583524102947072085803295347745303638563815853303831219880271012934605524786027957209647586183969709650439607887960706657717058599360931797752557343826320942033155161135698086226548902009872228296647330717715139164272164458032042025404276162441559763656401128988765398367471215978087727123305619276679315379846086805931227744494439180528114738945179585759656469422909339261368511052631248345227952790809446338057111224939659679985781014960758740751846468119405730878343049768278529094456463280796182058504559219548807487447410137572459274613370045086733821727078239061061051705583735356778288100272849626405365872728345618685279710544900769306885208967900247310350366906742564278766661430909436452126965433249106700662176781499479231796888907042323077935490652514578144914214838615384744459612121875442908606900609331719690268435040899652658520730108157894942561422224236851811309139482157334869799610172742278109276689115250333519882933694666626954196091692940844632315045104210905031606335874884735501960147803870172054286278180422705996660007610039890310523774966287562509412859704767910962831886428246839528609129848138214177470960549689157439906036507192000928017562502017325788036821357445602420863588507074154936926045487960479214496788372314233906130975116031693868864373727285168177258948949513552742748858738645973363038359747990555909409728628231558239155969251514620267493710082650960292164656399310770517768406297827734584209333043066154454934519747584691150046746381986154601403473811481899383515034217089458597956442952866716669315254912687876329084510489248848706794974831534694763582629368149931829639979933343270228355388431467136717812082327453354542084174863513334572745225699690640848126450806219503110480616339983048053048719348634685943968671675027291077057946538426290398007853363552283021249450218653200912255866755153545848782844822801868064848329059156823907163889415713157997438038754900009220528321592992101189427117022429947862467911105632264268748629258808120430817302521546557871312577473785743644827765259766121775923192381252482188187930611143585138931516211890227070929998062025717729467193018524631749826256915900643809097911169067498774894760870890104182439197252881521133741532730169173403247844068703187200674458656518095337494881015932520632714792589510012399667198620186963921798728064734449132712243609680829273119380292466396867645523982483090873644835065332895897730184944424392880298801279448502729824003756766876817247041151519453554337068360456284671310492845827063380246262138275210828497310747287273560386937600968759907427378566145373212221854870614875731730683208974452683928850902114909263545904530985585978192903663417194884329961598392636112397781770018767905602048066309073773882174454110683533743366014197240311147559745145008450042420786831848383771258262059388871574897747766213300286328510985313265618850141199058591558813867453101534959460934621071646369270461217551650499064989089840218655038612469654397088735572951979398731828948329482749570216796755287937054786081130520748597065051618601416309872174567087289617460449546366853828163550221612692098762167743400700392569365989817957967124780590523718144862273117504245021467868717934338486275436360071772063470604546402402133759568519747125515529258626041852320603747855056147919998116832915287065998639377848065489921883892324664583589372247807514049901522370619820436679124631975345170632479742704900348676518192715556163702716971285950042243945838723544263764211878299915920381061382173367619408925826190237342493030236146428251288075563015227982484252814682191806640147405765363567226317654655406034621503303441524224873660768624054591014010125469790111325717210610828084960200502270431124446703267780577500677407496478937753030283977883675470762684176921611501935832402743401489422092055714744237325031747808870130546327812208698563260778959165860170212264139590426863761692669236740202408762799421378921148920990352608058012251796427754360519394172426783943373394840649986854269932642416971817173825417701421314259278072029238304310460245267223029921090897172944206455861115130602805474359721549174987544153588095332490417489225036067847514479414034387824353126001715263641280859725451734232727127732713256599212392566830126524544053181029412287582141490431233159400225316643585425392429480136566746893939629965490621260517485325686345573352471594262359417752694035078381825854434578151310434051478328331458712839514395526697012773739250809864912003157810336383117742152375155941027425875545136071635124709432352742110183603919322123482815031215580116307218337902076688738225024472127221538715443300254789157124689170314169434985962136880057574603324063385341653436908354186320685203585335538058656637672337906467839502183201948376589593580173687100764023226875012307156723874850286837274697998381506788460266770662126068257995944121615021086421139936845200207225029184678264203022685901754762677488940409806820958283323926154834603226683475244696660258151975692665937045456300029442919272704323325857839454506098125361846555595086656266488866428168721495063167145156664646378376369542667325703487342173616764722257191670944507133921307332679218992455971370132280796223950982598551109029846363115629642410619387190701166201559053648245427132676630272452444763592850903641023461209246101810243292083347883449290932034183469492505080297487481893567036365921796470441487387720245572255505961201068079611450067168119638444638080730184110758927487026074277312022752599250133928145076205603889786241615982054468033149481286030909285002317069009518722588511385552410275207784907975996384301772983771450417523972557135064552719676732618259021695566834318853435474884198767468995318988829748008056434517934845535986685504801483824248999412552045071033693087686326849928630100920862846746861204485103543609244992353468042599633339118913953134936847292666970327051666598056393382957302568920218670182635805406487856255165918922217516802757348090835408832473705048322917370819083419672400739588936203820448746674514088552365453970825026752610148335732942281275289035926069453074851828494427256642667614920763700474995234161224980873028953979265103369981300868645390104890657288339691296957128383184885229738468405183287585305332734522342222440594911455742100608336425243546147272608497365810625580547357327421815019324410703312277343100304605801437858840391150024273855397248725558986024136408643141903118650338739916702069502679551164129137704779934228348652283411810215367812008839448635752214869559120397523065973898212266258752789938153473599702928702292029855938688147679033450449110509830744685964981731074615276243672266307641041210734399839315223779764088244659660862778550100827544179221034090265516149575699717448055423177050579891494575535568338191191204241858303629808226468475068363543705691610297498419413144822444079888420241500077575878298375030577023735221814959715216556057488912727606839422669494478464613899402061862540112923047157373143729897947054207923972298810652314340209172990388084762171245225221583655998820147179175194519621286563813158534114952104020320139591752071487084665202993043205961083822637751080428691116194078034617316448000589627734774263195691914128590450905775027122505446151790821287604152393576935493932506597058140852611254053200669060953581707358286596471891349608472849772393095023888671940689201024681527001998840037565632028363724339871762457405719965532876911874708542263802670127582725072207000793306380269029231145770737318553774299253661980619955951603789021491261001022802827413941794620756747127610063175372435682964582675665599903677464743425722088012580254961760563381928424953198271775547543283798503805934085511809544746444339014465505469791079631353615503281079015226943358243738167877982121556450471824492666577669514278093618145809749696297312283159808294742579705059624590328937189655489743784116472677775789564217843631878034743078926497695690257854696754374351958800280346309898202121102695388767957130349509210489021851687566890240109010005819351550307874251214185265718590534546584610308784672455615169386408968248181352941521786245777475492019636623027504138115331707258806185507468358304772556095187478040968636067795207127475395137235719195203224923209916303164207733910414455725091742091202311439823149073755563853780635884577688619514917003706032957476216869420266552504462125872829889164287250400223817437736311089676243569392420545504114336712607910549154337966434811545935587549842959864152294925745784653565912327224708056662020176184948183910869029939141337885353500072415910362382554389836121070930769474275275221542339573246360635333737315710560561141595146546985795316868281893852933528658031323433446784744853817708174032335377746226174690237347719421023122307529562141743710318010608822816691109231687842786400468055711610605180129460873896004177111760397253238634322620805072291212600754185895552508378471005872949918595076337727129891662781629574461406879742830292823070863794353658524984496586169670397786948755475866938328350698561998339456126813382021372820170194387429071159049802632530451629393713447159145129893994357054148071659167700552053601242304698658512089420344167196253434789791606691288226543846518475378050141297313148055600861120618924936724417431598482635519687476001167756805348358291631517409727036123697382625806314629824211625133876523673831734790472406310284430029850516379986605891603905290237992213141426363894307640686075139095082890024420426676564690627502762525950853692842924443026001682143015856701092471897637468780096406189127948775298548360674330840218548597347740367038494716483899331556544611574481311589050196478342404797544945089452984405747381645592967226663595460147174135768154031141198193982889371027671903576089491526949087522969213743272920152857181990965390896999913218557391013854864355070115673062737186028398091328780748890109093634605040394246843396917807679546136718234097064610766144176336614501670544386091201709105001755521884953291762731023788364134666469714089061020893766403997576277651707131572500386046115584389225699573083967237018345405220064125577587283642768342201017998358585183996797008428846584064902445106110883301674263183842813665699529054446179532128988023818466259925844571802212847374660888531247791028569377974482677164354088436537223237863227927266382972951950709018616149030690092656301197781897048468037921471901288893626204631622843427146781523862045476865976685952928551782386863989408819318336706017801494255432407164196655812549686692425438296721993773759298191524396234577004663226404975354728204771563435347181484349073629966455314430558281686937395905243624920883574096990662033058750766404722326093561308028062236991578977421838506436859424106575770429964085166700108040582725333778837487549767873126633566717301572425770333380839623846541728445425895313917908434330065921384330137975448691538834758163856328433974158546044300086307789749029354445217462769825779586636054504023833672441066380697240538531962092562300363019115114715830460645894504354593048473854783224099113219844901421660412213891400705908900367571053053393056388051340523338319892288269029002887932024852798849612722753167106038233376933344212749398281185194553526573167014262668831093399013596029264456708854556983615253242669281745957923534368885714627036163993697613133227484164150508987742009579974375915352105447114777793929185764278422898612859350232280326816632639684269552651235456216493223338096213471463800214370539334670165401871818912208429763106350404976537572456063209812857799451442664948235592141176790704111036756789488322989440794397176997647653277908912135366718448080466944328991462905955301534750113974970277525824373341065416714636543412569861252531149550688097703829403286892699853860990298643432636918906646007540235683647857885677113317594687423847624021351988417518809346053709349277415747665591852434413310127921757435290374600686230972598487173796641942079636931630225913194963671234743965353799206492735733970536194092680447339667904780040649910541291063983160728926489457138051666911007281927040386490037265940252648858782820673047698943698960132272083573782536471991798424609726577862667545840444271537445819927684923290378240373489584289745574079180951151899072627946539137466510205576859020831966943961339444775333125311422348663726109611670158671123495339102060979684886430254854216819638505667709409494263534785610347505238554648890323747578765439415472074444516455816393699305415383530762352289588947191688087373063074107427211576393566640769995396454785604786523399748298112984658552670501044540962368280076540428729469808022351691334601867565792838833467513433118159349615768440132073827389572450668098588420647737055521754561802403930010231622711247842726415846947788119524977388143041398567106516906757218665913837614526370999402668431283005127147325657277399880021119331349558282335587590381688987927883223785413640166582231798267828435885830085699387844441721392378465766070956275634381094192711878124027524105422062312283183765330067226437810507375605186359596621332827467680360433453783579846320904049282649275370843290591556969510483374381577944178579844021759488615820829318949594542565313381237670276972978619234307519555560767961408453559796023804989111260239882960767296622796939844981998800276725014504120299037675553796365640925549561576962146152751448479167185297790612617066111387021191802929458347922183921739518114494292939745120134643083247541626798635803645623522719497423827503424886643112705516240905148326763980432637120242170306918621462022533214796639893078640762202045597982286493644829037683905569908120432264066084987968501526220564969696017260090100818708771987296643530834330180031162540158954792447048495039114329688883827457356197749481215974488715711939659665219384815005540321666669668451131194508803567900661764452609914572564294865637523576007536468846656484041160645707100644518483161954414190893667700922427320272139470167762040855182011303561633044255997066326072047897647160811577999468404822244519739842616918051167080506462356350745050060604665609222323134207951640293362099762857150248996749565031140294536078183759540125112720036526742911963112517011161008595603581679814926904423335177595609385282866256880662292706342219465576025446136060570389980084373752939083750119491040990383890448252813997726466078840108294066219748736706364703125681182509626133544548264520480645443533134222798741708557802363219558806199750373079990584013918188940075654009042612295947636847460473721659298849245948810349269192340078968406873600435132520716582415214402645603821980528927641091468813736080353570331480626543333477356762788594159788641331868386027576162181282639426479079560318144787684773016318791268340215565295824944844604656214641118625351625102841423820519531402666369859895951444981397432327170695817847154747886166105813410913434131602119652021937976609150771876846435615698987144411002916075201259987344210204911642199041824778699264562388355893354166788991022032772572381561954680655718536419290349358138244147301975598472593700102752179369436203410418634221289064560576311782117768627252804848398531403711155004776006506825142037186202314580054418528735911408483329918378449875343932178881769931590865118182223007831468490908078895310866756135045310893180516897800290703262337814536999568704037876349564337049848439693947307219226889460006830885503105995462633129043797994330008837676144493452046390145415801412880579061780907668817076163477829453418144219129068600599986503287429385563939296217082918097215915845533876252501159804983611030433382226109510115487570596574782464398113116038055997036560760685473943624885511473294535801158539757473152553160580371046010039381557566982594653612433313360963891386988487699935175174065007843198184838624920101745677824451099729955808644528287100844612298690760111776888278121292605385112886791230676941285279468843256883454338312917702749538294400488372484687556318441285196036085607630251456264564869686042941116862400519203825075273357895523795452652281618287271693317833992451195268918630482025160112336547241058957014501313307244847948920124353240559304068448413797085747680361917695057850069789155827829981148917753549179462368190054621463889764111009902481458056628620278868821566261430578155761206677750464629599383752957874676163515886914667935064143808652712837122189174703880665552166692373032644777276647487765335988522416841700852679576647484051179158790215891768520330375759415332318694383030231175125570338019150061349014348156272304439256321870220550206423829736457785402199424977501301659574745705975020190564254283730874611953908606630804557100001716520678725432638108399575126501379299079961383458169202767716814378672361530707854155267163654044580363185812468791354403086059889673135163906919969077723252484931641506498912655789411978851801795837467849314046822141931250388942330960831949471680507852217492072637207720982691661495111830436691995890645245462216140611914053854519537602807979662384943628515711423041869989060703224697013555681076283257887597768002763047065088597228500282106195256400908612215629741649460220359158440968517011039594855609292979061556429602359316389691587419097877397515619747787949544304576105295211455768257160503574222850062144368977442660020646886007858882993531771550610739246476114671187312590086492377231046473392229785834719909100923072147510150224456188808028631496081836114767673715801563909935905818276748344997387307976784056855105512905254075533424130793134872421968416504218599540356662919257358744774414889207607021195531000087597418142042628955597285449720562664361873146974213743265070154617782269571040254756141531096070716999207422776104929254887902201765401730656504001231939680953875839962559474062560205089112224692594851434381594843029475011129918429018678514558133463191887277075316035352729895551116410543317019403887113056628675186965531542466375543672075455422456350026748946767312632370591319260111118869482860006598999175775437798217942590449923779787916666834833394766439966514791648239912501110987081654041846822976135382319567215861780737516303912178705740476662304635949202220605129317782994086278562815481789303244483436460810111350460832914441614303818974414712124268138082174976375939503397087654752510936950689640328642242717102525192741998459915926057644103758980243710616898193684653471589102918307008390324185804191823994577528523765320846004022647429162719940046484530372340298588133176232464514565509562341693742928827299005206714494748595741760069600405825107221925087984479932835875373307607024606095187449676761023352308091188619960789848314419012687163974261097251416881216080249838711984733069613866640998957857011710370521105444186403970145015376288374884181985844498900538207027897129752130935045681621502706947369778699651993721550118898368163942332199566378670632081454495907080809880448698964867376420889671515997690161858648849067156783911616309542495174874733990256557514850639857005418258798247960233110558533624726367387817616782350677377137726823094573104328938901946201983633529734859439924542752019382864631468097511142324435730791857309683632262329309137341980494502099057684346197062334427611620782005921636075012210896271889366458141436765431285935812012320383616691202413672668000788036313839296522471890189527811085739167135871638062950959680349681939501952350522412596191724340481508038290902721504442284978544611916489842161996732941380229433898401408579576168401074528476620986928809330863807237534363642589954858484817243637487825460793677317248024600932772452200701705918115700616799807141419724622659332845033217248223191966954528796031254713465843511591027007069969820177262982683533942182819752833324514467523196039618874594444972918328481643747894304662191757165450022809667971990434622380568490805119521463171989785043001961619474503488391160260136445378439527410440032899460709477649067759413623161456083741343606271066769840287301308766813492943611263482466077587904979944938013820523648743293958238969044559383667975204321713173070284539242844573923052984962854806381906865491615972457670873438807263496828855151974225453522792208275873197770689564251804926118102392211311351740489012997115241778330404727086599996895774212519834659381624916894774645554393666431075714169698771337008135496414133873108905187642690230088778977394952460380964007360462426639361718828296101260733652173169625368846505941056362272484665534029004022286802965611994720053812451522532175146472588672532819850062482626414245039749737706946263948814170999967835287101528883952415210476674715609306168664202907980480947344762339990609087728373367739289357647701760735650426135438204973145581399325359592349013340706460841039736609114533873815436762532044743506465565801129793279114110751441104100469947688881776167435615137923602375784578533852554881847807617233542429517557073354105515674098762870772631803920204168764423292230861663350562079743469992253344366338135830750915898994052056248887768405639937785592020787772191752387601231518472006925264351785460370955046424990585205256038400218044200793186061573059694558531297782192541395359183966427813807321483442227068476195440435737355397326986380804892722953079958715131092075076965486075130792777897579568945073476760017774638993150714211237659829679645251255872661328499475307410696828453179463554759153886699538756670096951297845510335016680462374568244045496128183789689774015303711167993471723586720540037105495219217894643462200869492880068948028049787175714344991380278245517405078831928604857617922630514337211406837297337718927125006951599384879914738621954396756208515244396893190629575603791294046206091968984011590419602779386642459147573880961349922407906493497035600680247366928798799478066385967556545934919795936749654289904946369700917849758487865640648601837677532470816806717265102152956578743175471316784295403713303711882496567894201586383616816403016693982413465169484666875458565508313939264263899941608777578207259328633859733842440083285466452897389407753133159381484453628299414887874404982504939828150000744357253797398058942140864679741393455516917894900741323163074967096986921737426483356159146330878425287886691804927707884257712468759198188397701825485518945970792413907440247342851913897396729419643294588874473898873169117725490707204990971501940058593822162089010285076999836045866536420736021461567844555683017789894647049588013441350811450306772592402144577537349238109622864116976142163176316345496113266824020824427621201497785857022841910851639769708418807842498331469819776818134452731962246248734647355581924370545314294588970878978989794981435930943201453343625997835786914235893447016591896668485405015591468738456666882867501679994765758606480040276543922022529757242265473366407426655399665031846980210313656462499683073216531455410685330867566498698913417656229494679649298029963183836531943114430499527840582335244145831578169547570391847305305765265194250850805450450521739937010139215379352847825200771242522954179506770985873206438523181491722732350739629991930125975637451703031445008541152528162619754415364979374627842559837108126030338156780088465377688200995155936055200048246484484247228950432391346536337427103529320529556275893419317080043134455456740157987236849199670872079720106269924287320724245584968027619664794331602560300000231166345827673593010937210375204831595095556198883324251532304384952282686589320675077903270378658174529114011356608640533080491847859531722497233972746054537777425527769309456028588355297209368183334158093363868334760638438698413407221221302651491919532682749186585601398613852058710364253314594217688799961519391493287206708538740597469966470504070573507583422466822629653798532095471745984896901488427495405174308848307010743789219661699022990483464245087474792677806189652671824490238829130053804494836061983123221716321345269229917944003460841386648778945828063865675162303877533144318439660225745204684832510083095226816750341126318414883843550472182152569378419064677651523802463558085002521449443302720159224534999991223094215436201190152380881751775070601480353874923070037257409557196358717920997565431875689593184715787061194090384707664394223915742841810748132568756618785746317627650063024201931209287093409651817926457548236108014985319962221727386063552658589130120465158318785444278520485352331721577353125456492319255338011016518796201563622481715348083475509170272052955156598755821043385907458873903520241555453783428689574248953730546285200044667272391125432142607923626728194563869919403055147616480337744923763075225647665819619909099922853474282997308221505621484767835668592229082514182028029055019854262923963074873377839001183146979222407266500449400355410304480031063060278488220863833793648161108997617657461299806821573221420571109617616411261217923200608918550491039371958730890435287214540180710335223765096739681448166777042189248692579872324650719756304196786155967382065279752178077049573026508962684689958599087674134856405043786271764926346182453654290543854427508670230751128161569920448489499687317490902669267535671734300275579937427897383482330643176642917481499407152660036062379362350394635884161879337910850734977303758363525249652684108027287302442766296855470050349431377238700926958308504651859240524496157275832750058764504850557060322971515342734880398540126573660249799609140071930240975024367138986221933086369055264544064209875864953538179867707740387776935117485531904097002564595880441562432657925711849217034099824505269875100645669186657514691785855967583257441240423022820551091866857826697296648889320701441741524518439731789728910650031857143293289360824861249076206985157676177005123245486054449161417441620615657569446900174652341885991263493767066895788994296840636053197731717837218396306835207697991369480963352563884833733107904209966272905452565033758945149818442354583124379029902837127220463483521183088944361312271625967253508657107043226428236762335888517169446712779164081951644061814725389946296735213750458113646187942135709767262589885504010218504802930760779580182632661229601710680417006728997785665278836797471640289332940113596843630843035618478280122299227520692730629275136472769713915599273747356623268272331330959657700367386494957077241877844017734231579212653713058761721895602355956458602243188737783725470671741349709745377831449346314918911729246012799993326316710807059771080779078856434915920879148862674762977312249514405709665038506766921903269884666431789934469686698405006966364854177374783281915939671112436416843276375942791347720407153204084556698741467215783120563655999237019061324392888072824374241720477332995765392077503625812167237841904485354300513421883216855882759803388590554332416858669941297332060210572037602132933302836409382611783448847234079268501157951820007591819662271694106045592498691777926191586511820265578266093694292176687833715357517215825277035635468822711787695715567878486249370818130215336973062489577459512466987012621708305594511716480112418339070660644143218597279382068217596077372750646180306076975870030798270258703839710004159438662616985886343034599156652738597512562261056037335378024366645716473059198739062912639196073952094677287303887454472794338343332118243659493577338928153575507485534866189356756358551387641027388185521083157929103739995835072057579120815376657289880383244462161985812492553402322988279959187180799726454989234257273271843120939789262240614412187987885704778887942351631586930940281840965154929382377236969471598708823883596133137382888702154538495840618817136254742161735273005759762429317841768479247705859347606510493544309091876424740110369120196189119791103154624111826663308147011135462429534129703112108537046521359400562879282562992443203511063790192838211406755960887978969792606106205375402024159933125716996539426561471360692987181064049019586769980665733319631136594751430455776510654486842322156999812176575592121098590741383103486809599672792695971388395459770550204474541861580662593739400635168624584201455858724419967239491644263503570121165109931966082558671952345184408198084420496406670852843711725639799640497816139489649786190480345190306231200965361478191943466873862802409128849065555753581136994661956890194002291136305179334579966069504693174330769820967209941354247659699013051115263753982122327987654152499028178601511262676374790046713361997136207846319517598402116247426704342354440177722916715536356813873437718424272761548538550971484664767559660063066456315788018521019698421149361931623032214963514443305914508680851596031918406141296418795741312782671313907471753384666014329594378576439339546833546765830361893001995197220921752532368865908083192888413081312498092681981054999071276314447494257139724441680471318589043349785212896194157233497259084163775196121493108958995489596755153389360168959208546118379798488494162828762683482594365418336542575086438108834975908937322469490900039533849484340172181820737176464967315214042026383823416821422035090883638983903950733448383966735823072658903668228603105748739338222962677782608586040874884728233392654718159987667110122726729499498297094418516555941191661318290322191050317607103323869529375158331616745792593962060793685803417236781651291237516994068222275774456532266003534584232094180339806147065112953916596553236147375110079030778938856560924117914841063059158830223628762647288684320398000847825292569260632586266659045996090812961496002767974984101466650539153218437211580244163929900321301349222821917635611180915340340101390110693608506986026976714713524289431439382696025608137853132890495330438569985557524414239275777966113057359633080519924039480631305938150050757973108784451089824538035476370378537096674058581975701472031089599998151090115839488719292700702426788296344536657197381061116305241796668896798600910563132396430485675041258851722145350766272350364047217883707936621384662076330397077129692008985677627764340146078897869033459006212847123998286153139088315247072755849174043805885514837951436642285539756585704993671383026893397162712610911094593084846200782472111268175516222879743759296249247313454857053710066014017614236679307321478774232199223782404324122896176108570642140747943545810300956032571826507124677769402483244972170623621900949862770750094343570029655605152345563899471886514783648434407237447193036291036637675701293705409151846335626950444037693488905681933351699822519329754872479516993567608895539941733643465717253484913951659394438325292029536188227187250879741894913869573490963521681736014621047339639445594577950482719967861750586218658743070471652340374477102165578913900031888097452447329312310268699525178987915099861242298729761804950397963669930699047939380493405227205702490634702354409203089957179699838563320952790720043640887690885988593983176249676618591923091718195283671007468893609923047011223657789824870696040807834456717931743924034257876655299745008641980603353669847662971378234798012898489648064795436611696758063566187824362471484363767338051529016736565388448734493034849920190180905636596142780716546626731073690932120867196275880950854088674684033035071636356728202253528644625945317754475183271458113809306161964244440273152922455882122646289637211172377967433954970053093755848630556302231220930911837514589419173886613440076172989977081431487515174144820950226183553573277352247894669175045753301755711395292272513859252290139448010929766427417830124292030380128570121215059132131936989276790171918269760013077027038001738329611251030361748219758548180634681430736518172058197281669992512162923190000833141770846300698225856026668927809978941485057379432343897586963861048813745721326697910421139216255042255066922799275242060367933291907288708132981628707382679002548813592457047112229119636839281901812722576856395082857028720576660636961257388963800648801282869694595255107067743572456847862007121554309151076529413716902406595927495659725664660394415962475100544449201853908198140387721571708194270493680014017499551452198017150527302934007700802509098503666176749925565747758379153827841166975690958479110657874317790550095644851271721968868424748968640304073732356401901892572652347538902497909230171283792467163953270367513523248534407659782421688009592981897963542912249576636601994598116488496744968055529711026017741852011228477615356337695473460294492720372094353283211892167039495509217574348759549366534906400278281307681681284511901674986956096779615189604060138739643789936717849794812194038939650096360428809265360505644073330771029350789825721651432542978219982593081800223659774028852795427308227525787536585504475720712939138883891089385821812262932409523540712424505367856283063863908061980587683901597658564994513627248950681239629865882133655881667575845507290866719012624466743751199433311074488479481580253741580788856982360456784332954893097266631282595214882015016465293321840776059248811473652126174956206803642675802938515350378991984081410029086405788273509938498937636959247722680129614130770116882793164532650268229987106844451840711048790876476659285694346393772585861018523777163329427420158378946205301360737507634102359644244895919152358290472489690460460928666959002015592522234083401201033953532092517657496587823651865650122081343339480733193438822367841641578808759018463368375131007360380566548429539611664384520829276500714897516406501818818462385729622839487876478599818181220430990140234106560697528428949932944761258964052079161680682595497020025333142725030255086131458730295469113170321228400131291281769125111134188416630965861498224399783082111135552030558587101780078336047076872311158778565921152466796459152098829245198565276398904950595045753449805163425946033074076861631936095371604509828590362617749459172178035026799226801860648538910358061453084361470431972747751045385133847582067790892505467879988670779498776011826619734161374163488807895357948066786202491564367380802886295356750638158808776012443987881100143103791188889338001086722666384571551353325457868478994660658317070706302519337801222850522020154054237221918569664111156627923055599711224851571302083575667197707100424701691527783614931589409111468057558535724003643614041955463906079496254149203092241552773212559582718313320005204651592774999336877910466797604921538914302327461545686027630926932187944932067580066591269519210823359618535337890482501034905828089289348063035085465675493571960540855848968287973694253533361141945366861143671085543195299758366168263387499279645265540888313023478103953591771606636576061883133460578430958253833094079132930066602230232611856022552641374353409063694756947103689817922000822907665069753420289609922593654680270997760911187763296384782451156132533288920986943615097213660608434990559159887976177043760905934319753927154099489164250584098934454895879636945406718653090821430726432969049533246176888990290181397847981252258186851915243019590633409880509533841534276157079213467215280292432324499616419047194087535627336733039109911896296277614742187865439457023846704923289158760615534826372502634470570234442541450909239848857440871758030443550485377493890048103389370865420498555795215468457284439971319506245101222935034618262622674193748107522912944202904170081047917793818662500209338360498225683853161280211580756455097940108145780922342991195930921642227690173403720498748235531009612560603922738122398074433425746718219186171710112856199188807490481925983013318947740799880995090426901995981064718720041056917224516410797410960408668548136299984080434449464161009510918257859799938012891546344545442364629643493986287082779888235127115496867080447558652232273151095229768039250033306793132489205788611293625858751821039136239172038781990727716039608002459304855737426768691953004896523704831547244891616930160297660455288032301819776501896096152920988824031853889746677133695523874541481085632836230099145379559116475887556853122396305688440476195262640955108127290077967406276919598134858219845876791378651863804718021249306876128200901015404227419421091284592543906251133220553465087354170837403700351917618853213584265879126744790241164755397625501904339695403970132839895894962642816200548933787002676658557808500334222131376255411028856266756593050140034386064135597867771645653787122661741104781745911892418550749631127675707203527882895442251633925991471314179863990641747235817117330524159747087760708759220543266240308267389576282537552839336118494751435795953227799834608339726149912962987316287329785021988846283343747385314471955750139946979109605877504984087173035807913280769266706205558158266515028696496586581601401670154762410278342389668809545807572842975630594112427026470488753203471994587125753709565762642787196962079283108934954168869816501854586794237162503668565067233826592240705843999600999347367238973634970487919349708292687958320309738370817724489297319053581193281395688078999794097279392583696744716363956548252142775414334538294857056927936325239234535636514717960701587740386058827166797253705449874314927476707872618243465425893806574868156799244046062589076120440692794115885542251649434331017551185350844694551471545227720030879837415742526931214958416593159801617054662709732648235653773875295437400172135718437833454796853425637286001191695989969520969840900111349065967721660337983182423383273003454496065726903165877221399256126612897069391917628364215725959338699932845350116509416982133436067103399904155763149499584372060336428391299468689517771256525478392479124821649236065412911791258896649268846032698272244872048809229051857861294475215791770407688043209381508753985969161286612375634444158438451081991277082652187257647856852878225921497870568988804135403531672955740620982896923085833270166198234651292034393306088085928136257520427535480225031062696720977209689938358060839405824976215683797874714957066024419746841376520607259620357189812572001394071403408384931500640650504393476135348450951943398012649642639827022489327901596193650557633593550345033797355480253168188616255739393793989450403833997417481029617916551258440263912487418075159083714171201451598488066645048646657640991737306134085272977619657202974843621854670167113085722313292095418207594901884376464726016129303936143852605718786819186649543098562497509078211957218659122313360711988892234295736016820297921210676118251485793600721866155990364151080084771600162853497880441096438381110835521016253737634915221627590732476421718762880776702139119887547403598764010543218165595474551303318106621066442863667622924799063571979627130880818489734094619208498685857365633523809439565024417865281883070751493999900049384175856748049910402399531910234380655338744623072624760132795097638772334437959050449502793917602188881263021670636725817394477293984733766561603829439801203069063567512082665726068107500794956657430300672929297154488066762660537513945296300398293907122418047102198781491761963713811697876882803704634293334247560963992263691448426013230796305940487835291862179510025558037829250349634281614862685358831405237157426410206117343692773685486645145844914817403728824822249978230671875974919191717581089089718519971661253815745367749776961200120044042648578994774821601502114670527865838748319780622139446322331947188440679877845151063617725160005692943792542345855762402799318187664189639970380705646031666544740255049287192313692621988329095311347860859789532676079211870408357496749822401962930462181791787482715269957904251668791768289457946266798785970701695643000193370876917333141816423186058663521359843740471714324660275245260510483166894337026915425690869038595629676896824095511055962163117937398634695605562504070590027197974598336942255628410059907864589640882694395951223154901336762651246623011979909755674062742647820767756104640352254373217203306281516746582067199498629059950199811858634467634808869530775573810077842151989098422345258725544529410390966377613016508652456307617466829394550150428979432122270186922734789363416819876427222627178202903509487749096788004917116515358195898547820824291739774988875023944150021095670719453016607888585449318004248758835691072209256894969345239001880311116338943796434882466248556111280938762327200687936338570251245861259787016181262772018858544651233842357534209642659444252708469713735402795737318285920467109130375788798440134285274175227854543440193523894853711762358980598483509671436570148855779778040185087986568809911112012857820460543422706971498752438086732201002374404099974438870639084259136281825237747715845289775472145188535500341841910841423554485184315637440003493134888105020714058546921650408139106004108901320847871423620145106019100674265074680624914135957068356792064634340547805139764414396964231607411249040087281667592666316917369867245740948858684966060621189467586103868703984356394072930169270316231483801068241981287854148850128740878453672362903487941035257548743152258117254081139023256669455252272828114276699454568368515741513791893518417775800605084704712937046142818920050479525828471858559077198107197279358708676174111242219140814277649797403163940883678348469372114315868573591666726359449240071657903923412464784994709517588008447137399273056282032998371108151446242276500871814537086155579295095181208122452110728493303569353190047930819487185977449476165365219463997465634950836013233181813296639240486552577922732786557334099986513574099913438146246434847669278004262410782707769720674320337962312952906882219133958072843357701892887914690432753711728761047344293760640370609678118572677881529437575248450431832153982340354416674963465486701304623046947479141802646390344529999941770377067376878851338712487213873430783798350688690169871178933515574226848100214325871329423446325539783069695250498872891359553675941859489105497572785896100051420319690916690118500139569800511981074263059869982011071026499633318515655067680246592661206829792342462509941663462240966546624505156577485251002398277088441034166883221606677763066007879263958701328946683896503912813531085754435295059939375315053987349453786472495388415051331946093535631234184010201612444992063771070469135431723073239200999021216275165421447310120954475557542963118084364115574762667221644963428723822002482284347627020221988621605558049884863690146523515921842946575080222799925659967426952289509557507340183868452628092143425245257672959553689351074305294323279644554925250756856902527859038603423132975332284282515207363909070687140301871756085605369973482008173202433707128196468884738882280757522168116482996061683935024887077643933312125552964804763286947090039372121145722534601698757307896435297670338589336399984649709511662660837807194233829628582550009920275669470193871215622624585809027992907117547116126389422943978440315136969060380668335163953017224512282264236336881532062184578816637484147306761093073295472256196575020391534078404106844254019428620240240986509777070267451532074216538068476666908326673155673611971810689947787071118885587428694246385669129055436128996198262485758275749106376699595695673853094342203966921641129786514952502275508062290143689406246785587950986622829971972045957427853154562217613729649161870226470522945037730464627706185618709867904188928352907214521286889999231759431974879148440734341013686172088258850937578221425456597766293312461427678915427708095044890470345192529396473290691316605043148977385570589133398261767941567197743523132676054073491889821897875689066812659255424375858841332726680561312613669064332076878383094131328759619212449696517443202144727055911474546016209495820150013318162186595040129301653385979054066096420083859485391007189914522526762553494277115008182527540315820166842180567873778517940585618666181485176510747819826641272638145502294258869265985974083181139651277482935316610793664539752223937365847836415763219202013243394457672680758292138685198711062466716984521242462633987387364371040653778955815312352047064995080872493295892948580615437580851713956991339111002647485551751295120909700033508013453650004064313379098391399643116105837304782945902390530645317964370828591144572251744633334075827315434424879738957651790475618566943485455959573877731745908455428749722712692839439232057949931092108535821773266395842038686264640675932042006687499243759869951539147634693120418101869288935040998715388823088754414945979556012953415744294236597719210418319017187359873148613237404028361278377794480482663003148926462279323698804958050734264907988932250932564511721234486643951999563076579919507747715018612054798882695453182107587205202376090339183129109899077197665045234395289768940936037146627104844689680059375490187730592063515684531268356382400670329467858647558353106235890003916163630304508654362990104457247413159033336046039860903500096460390125398796673448907376349477664712213999944646121393202397739854245021164450624911488928077573940661700878300078047168698585489347768886564129433540331440689941684394908682205016491733900864806225166773540824348968181829390241707413394544670092384864293413247620810405021368318789381248475460413252098861162229147267356773679958778312069179846323524772495339533431493954188329067652807300123155966472388089940620284257622507948462505705285118477326629021573048326442621565263306667476520761354077379306911208533238279615937712700910321887483272988732135507132048727245212403143777628925862489133586902576101008217432803854800753451922469037716384863875364052226677729385416359464239227624662692792809264342768136028429134376693384840662792045218705830854690632303582747083654165302737533429393413966649214868019079580781661128565604338139154446824286267849001784764685341312160739532104308090890603686737524843839984447444415747964351754314917273737269355752771709218897427576578681901406613740732427002808032952532775740343618213885896428059156681554348954781148391721801643377191563174141223321519320046587145744261930971024004074100521345467020794675644124292146960016174848368737856042838159119129991218043288384294158731942073214634627053827455959617026029669738553171069624855239033089126801443464621183805986964023054503886253085205932269852754823854969404684360923199161505915408016793702857282704803409278480591544102795052672775583420638975778484422628031293910570424019921532005431881430816342403906430424792012676456517722818844556424335601340636411849206978377493009673187056803635086875917138236251823317593410501204605042992677500567272430877933239717823430105883568038737047527739722707148128044326229290343095189818729100681246278367859816371424814089231714417453786579508576531765507416225772665577283025022127162060236856222914424902282213522612771998486370653094874409957383718294658884016844998149461672924967081616793311453666530691503700294369764097383871532381173395483928721420288261956325834980272094850252299060307826708984332286264402089811287232125553781462405606971344884132688450288325723009214140913861300928829973224333331669577088409746412385763193919228097140996383981318300380519218017868741647777081717806115877316210706577609096192696294022693544677372181544735938675452726070821721552911511351261996518013584788989446073970542525258118994982550303870187969739267400941603600067708601106418628084005641012153182108313383249179328517712006997397673923212616364674487457904205319128804737831377740118433342958372456598816796876407848108481541608930907523497215578992238300928886187984579775560810710753493161525296890246461297917041043632424206293581625968112114018112508768516056106495265251483130111337837081705257081466808664751002161416293186546271338535761431582782721711106399956089340482477563041461554148757553316575522602386261113381881512309515068250701179113140885024599223653377077970735871108040436064276723276109971127713756494837899942010946091782632668777507472562245862707868846083448560436846613348766560998500376949017053073972637938902799150143274711136832498202311665665798325261227962311046126731949871833499337253859928423163203865481945259606237636243149063317553085916800544340301951085844002588477947156638641545250663738618208169246889527362206868939811023298800235070948206088935586176863975108040608585274257689702009569949049274640301123245477293180850687990963981318289672012567496060162283946999343266027542043917689697225106715408141379144143445379634661393193099374946114478921318743356095294597917195114508955625676689018246802103103979540885510508901249736472535717506354194971067686291670213608000841170814723434032816914683836942550327482730152975903579457629330717695903622161844903489141069204037916538557016573124087254723869989940887418213045038436195780559659686286027850171625255343113242302907683106492733466093887304633204780670468443811079552642763415276948435559186040960914964587658278534112700716335261396396605628545508927686578441140982250401877122535564298087013235692397316901491077793287458129091863790140114084702143356466011048286583986837490989238189254885936732993845140723562023734424140549989401343627254492668123407497193545399200761387728020733867906318604985780381381880210090863551454451541234867117020037587783720815070925920697329851816243980434995665563314780228645917889343833208685771961875806623034860076629378462619303528670233381492571742557195579656336125580722332047234051249444269687270277698244622739073935587613149611032586664659234056207983778255320521626487971591054201133711465174832684864485224972783192008079573607962647407532750635279890476879068768084684947963648651560025851003746729844099967626919478950466298633436059653474706791874572715075102376768376995012917261738936764413252058046634560942583183722213654688586413952152505816512101966100072857808807365355836244785655248435822569016035838199585906394031111775886159087061854529192050932498897168092239418399386501960648552749305603433517316674858283483382861824427911277835777233724142741200703424021809644353790660442573355812014309145631007210865369505480901947238881023051845599024633437289626698492437344381368118905392961996277339835947207541500148187774082584486005829049666775441794730414060419750334528697204747159856484370147441254080537247157855248279771461988028790031396241607589159586898768306986171996090736102983719135647298093585292798285119381228260763688565904222772761638106598620070046705124358838182826486695118590481497943209309659492142693792085244185394378143082451044377058817864460103992915844379091424175378628673905255605434914739651981629804841032385768587252187373682860484273612794485523063057469593449013921731018841050073346404526551024696547380388514901639549195533599016320991947486264921526398416115514611013984206860851561209815746368821003998922477289604319463640570543461399975784836478648659776875057976038176679414184646754334185318116202859347155122404918438051023882476705290018054031275657431869573062170194546081859798459304506419234345463288573241418781379515959264060916989814750197512029641773150939777494350837661583223825816801926635896071942712195003616867906242568827200108731085495667817077417805309441321240786322140429021145758172286990619831890761608469156253293698313877869870993895671741404991358976853272166714608486023596099070481154968807256314393388527148626118029517557834060422490902752027030861302789639471504306245659081986000977613771893946962331046214293520804280244802840375024788572147911508638429353180654526749874864527144558885064706572905756712496691224574177780086865687123700409060109697419395992962623964142408688418245340552459927155572874953537312037500921032408502000962128881810854306253269388860964833842125482262507752281324198594509508496223825304170849126047089034757310182098962523590825959101726531583475495864001767273186796359572325169254455147463443863694325019882867473235562953103021754952877672567005427048692621063207285449616904899706979636605211666723140211402722490855844467876454084156604956785501620681941897098978904078296564416918987281335300958529254796166723289654885205484908570184464981467295864947389502209075336292005359074491388371570011597226355076973759928881023079454511734600916893254884527373493025182362084365803279100254330993290819166028652409592026343971302680552619326416017582832868152445548960659541063589647529155497052699415096346470730496231364250126179760380964279097415720025262328367923925625977085280841430457212012975086705704281158013424726771103371086732468894347146160616846647296270684439685896129032895777126784588243764218768285053160500639021292519313064861161367070464631047646436540377647460544952985775287724799140898332814579532344880465030157646312418253847795365030250923055998188346488220686464714790119996209261299193344846175416151185975297047121763041407456507282737871742706020814815372103192338613296759659490495752741813150960126738049808504927401495901872908360103485802247480015236880395268127892454565945897592704271263495806534155153420561139012129563641219350075891684516289461411211553358392215406262415384633821191699011931319708082536986960627775805229421037597422104056455904199697450432972303246416096841380389340508633708556147089089627898483499490490442744160933295812089397520355150676173473968199267445140155806393037432195344356050460174696550463761803885213523850758835126656155427496492226386058304865506388784955306889712386412440172969094351365552031670742510413543001380741689091411795265337060688422972368388607899094231162665649326799277767838855112706518247914084349840907630235619213571000496688780162405398591432728232133955198193915777922322952347798533357839966430054589946322352216663241959716304938094422145383332556415657032458472799012040520557863270792034922952835233440464604819729868256663435983534054803157890775524056678945159247492290807633515757927474750687022151771930295744397259395207099617060865935842148564060386478107420741902507737218161772744667388266429863649554007406248010202479690106564417677209870016246746522646056078010928186555294268777448032057300462179455507707278465147984369721754929301671860909321326973123381787064304262285958734633486595199687996415591342715850414588512723008882371964642370967103045814850334669459958157196113298557540213026896012591654125553622509360727983078994318747590362146448618061830844892976929843555111175735226634769525114270294493924611187339389090076623176139679308177337393364756506283770145540716368074289133301120608281426139543140098813019613032833315819899564110083147466285004122675565575107122945710582634007796341347312549462122954275127614705313160508876483699819565801567850459535817803635811335091590164516199480379472405654933269440142539112150152388627350369251801389911318415158539620189833561299289031201296469319261871620737277357055724103368655711397684473490650445052998133477849422062872742600645668577755836497261854001659146201614199977932975800023716903867930819744732345596275716629235295008550908690429703633900834083689032733329766495761097322133815721656306726825859228662698248533774990124275830061118505312530494348557267831521490764134198738335950538010644830663856307224330246854782830762599094747885275421476029127410948789175248966576815938743969027968308462584929272915446697689532482841196222547288407191203099072441912525823530794885007013142690977963039978500647513191860438730249540176082255806619395881622782765422866587850846006715871831331814064553485835134913487175765981453662263144460523710110266021747169878886723253832701892193651328230522717890794443379606175513576570867857366204155680610749179806134279488337484739559118814801021529667603478573381188876140603656174150379961488556132128104754827420231805283120109472000123418186610053500722025087575888722752135529900190123966830144329524395483598438428174801413957248685257512359587645872938170999464750585293591764449178927565807196342821776966872108319314859200731319627800417851203337055038103180413096171435485549825703397369849885231161782980401898879124900442308608825229369094034835275591553155144664683248308825209824846783757338458808646776729324121534067296642167256194061295890443058081692531213547981708394343404459819977012346682468316615395415326941387268281151590627946630889542189470204218038518012225681226704320351906655309928749300123497669627234645615966417795357376625945181469742302337805843486925658961015992742394865525814251653321408424703601468826497828219110627913884640389141080998548968346974750539925437758236440811030872146275122745143844039583801649555238172628887755427187799526930677962365009331460717309415329247101939146857903835045324593205643831020793322304986575181488742772915763348504415741056127251730918131529151815971228896019998333829328768376837872341219878653050573098364455988510631280244446235073621363874738138198150984177729204613604059479883907757437171027023801776277681210310052025994447669521974114891117062200368114496442995619809081473131446168358951672462458605148098389129075457279478143172972892694758840786754287293047183538567419765181196861956420098726878254040448292345583695223954283077615216324403129248026856243930433874086478825530788655077939985170298230386088376000685078259860300365866211554779360125099707465403855056944006221592525799962458452047492172202504539714611201800208261031269364996827639590856898540522807159267461745690551343775076965181052521444801149944840444287638544536009495504987674231906023699913557651145978713006111771279782336825274941673595224679653029287597292792479923222030161317176756088290665184222329789555839382857230922869959330901350053983161126934004719341590634771565903912896578628898455440817143160437321243464210786156146869739268263422682143179150445109054319588402787938249408497941559534402070274747998677514608001614932221411183690670451038445059283781277775283078176076845812791578275571273918503149311508732202365684643822511850034622040709449457209481856010043342064705812207076709200055008453416193867712999388934991922913296988044409204976382047371989616090189099262763946165273025799199000684217058149324475713316835431006613902716548032383408906884005861502865341012048677386303694705305467064684938209058708643285849968251511988968185309250759338349964530258165603724377163616995383126565887599612496692334604976317076602959836970605014556219085627137204456045980186715235815400508211285473906471379177482520452972609458970962524429929067671071321302427089663784596456591310478048187808573781612072711574663818839848171316378707885155249771809017027242170541210721875891622572796741679565919093261905532048950315770788129951257192725976677337905075495168031749756139098559074049641268019267713492968272121822626802126438897975148545104628056111911531386726146327571818013606722656811425213677179907759032513289145125820412274828192034090800811971480386739890562986368413144625221720257929731703576017078273111080631201425988687693978391246050892428282686359149493167214988441792679609652742226951900910745269326526764317325019191181184581550626025222473953406610528112900052570111455731525521625508615152712743601235862008960648019098917790079184579176091062282686782273117470487070531923264447068381576418739371054266140652658702958546709971457079174778293182683080893488932875436870767674969848787379813071299199982695475679018890603078041938822756831613332533630509966651529517270779936125070010638780785153185385397618618215094531146666645118976603173861387158648913275473012945129417947493180740051002095493128969117547541051682931729803714026837192642871084787409614782032346604007289286469623106968972776444538951064434403538148378132490461780070750870357619972020964712238347473103730561804397087683899091512343523508388376002340051621164272570661125779608579547845855082071491137017305950290739956301201036249288662036147868809328383387149814319767643695790855471948434070642610827207763442204504735028932818788659201222986855397152857384835810538025857509681194269782757874115997402913844254224536604744245702832886730782226607457745349014496195942464139745229319639324695658886055073848900605684083105478356279776770475028385682912434886661059594306607751555916556245921329245858804483344756140890064135168192923958557421320540169536873533308442633213187738298232632660685059261389352736540312153763333797404445662677441225794841704200688250458496920153125588551199636104495190175029698493084131898779453942468608035006050523370486129975784991110059738748354359482287568899184853071344399821262903798528236146807325793323462685675892585684004470955069359977648328604961258749276050196466248308742592980063540724183523561835658521272915120929274611545673997981012116434173408824272193611568302781488996100502476002102833213655240862047736203760365203316151629101891227470036593628673307648801903046840983996498290658822136218407619181386845980323140988286213897470770648550245631518503393118586839594863801414353823452974111799785815919336153926901105014483618037045086160537331786705164541012798024888396243372956603087331222054875070109485174239140985385104212857610894726824672578195662041104076018168937203287635085843354437034558966030217870300151852551546354155866203515939243235695966670296474287331866072891288091824700303785627316660337976315001610999839486411446660455385166317585201813504877528809966185983432375888323750659334670064904676596769960460936202078306084951629229452607423452655408300596508473511712235571275248732977500590582917809509637632297482899470196886778752695613456180410485413122143478967619695126796611071365077078134906447768014870848676607925971938423055640223910555460426764162316753786905133206788188671964645651626287749523348559665688911064535345069087766410756353192595183276878332421260985941039254133793029643893218990748010263859716622516969435080600052738310160989796512512862282178469203522119713995547261098794813130950673738468326680320613233331279624715605691774726505698435186963975902541624931040416694552607330477899339942055603019605496278162029813242591931067846799172389485242089569500606086670860774609899572108088253128481245377255695239372817538726966245347412313281400061406473553173909637417351210088611813529335980753278689256896977540584625236414654928999708329863826036505318638395881421262171548112445352710960643162591256092059672026639249449294788077679907380608834909527030468523591816961457207789644309687917281910438651468635042215410825520446977713196140581038914491452980404689048525105824096306625710656206636702127749745561781096399397597358723803187945046137086891122974411068348083249136659226873560982559965858251266510619723032423780187328931565587734430456436886913139295105620081346544513305903675042250436083659653576028866279268993028859431501775690903837436716945114431515146323620923289894659479769308773829219056294939188074214056088744764278183077389411100410773305038002844631865561976995344212306531407879763779055676346869711403154049364271396650958908775595490636235687849846726347880827869783558504228635845209244441957259559513186013009334851552494802818539014831875746857004700811816010374254981528958153047236523233641669218900133369327318105809729400440601352419893591805070220130003332403478184828079684682483937489339369258210864488610874516626988278537480340801057426005406625483895579731372801258834568666443650512680770917676725173650582797973524908244950528847950835253856886610584299823453503683944794430575759749284465777840369744741242930955676737529951184156710377482750131896887716188423134769835487183890037774727395938932983533820054883380178814974494421921247589617526659961912673803206166999727766488652907050244388465601950235143921534562863887512837638599316889019148321174074985850751879672275456798998911879196962345907063986040439955240327970936590365754481840901859016528543583361655114569847896489099017212557008144002547578401927058160576622118917873912324298255204774520805288375138418490163503488849961542604044017085259435033324671627537314196879033023751585615798034390308032590992705555613539930235033025180598648730235728308946312911389167667521513488050444907297952439806688023243688867068519478635289632625541308519956538435387327943191449911136215076702959336898894263184961454291917175426156921856304586999824300330939129749068062630071338437614212465697511652968436611023049819629032806382642336536313055191838837039178945576674580173890298921422715339057849047776989540380766655057586879412471652399111752257093623951872950676484397223564388397667860912156188348540266952195911197577772880420671877346334017822453623965591307159455347177010065799415749893090069276423907509640464227897613026519414055221800555099108982514704435749544555927687082091622130608030161449620751371140011656998756276187706514081059035349805328350223543996634644973180690634258714642173957758555078037093954795142397631933526936964437717816191580187235787825855769047045252460803661591790115011497532594268847408828868291733307113341417069641170956661812581502032867333501281661459603843734835282048533950231543339766819231625749734161835105198602642142174665499687006738492616018519259199461506542519358836679054504315640706060944122926035112865390846732183653551901118029277793930072602684604217476922626833601623676673329292049978838632854492135265136461113796222435228910669304466439010812036123769552806130013536869910164145741209427795214411369740830203966142366336113219062399882368049428331279701522608720460009105146604181547188752175073617678668296829942465570543751113213610812076882611284484655522789087687459538750751298174892783943517280963773543977043290616086170220561298988003596439154711346077230451500554733893297633638010619839599851740700737864743746346678803185781226526640127420586184049219241414975980255424809517912278374710487139457569950009827876431252914658119626949318959603254792716315599989718838402331604567639983073308029243460366735536347280809333364081242967741100861128818166178513540190665264444284215263595447396905387431710759676784622842585484914469922227686393797538974166656880563578184713237491227280328901297338759739329535226620101570593914192999034597686861845829354191933878594727298386542751581813624787801293440255426541951929400851441131303613620770246628306679547096777218209380296834032040547909261705485449370426004855113060601205079673831062592430904905065206794316469308887835628364208232431515204265202292550366730009701381785170085020346979229711380364671247338879746581692102912403776481373968750874733175567672878319418364779155806440127917574901887501536420871420666137498744491978899147474731305829562718102013266433361727163755238101531069324224935414104266807649982623388602801480317765508133434331638735810798597471301234509522245235371694237699068265081875784654705367122038163463885166108517976050554101550570263234499274663359376789553180314694111958310807308125537453186247643277677832612094284319659614793712134808456619516069834478403107963493321625928981837030840998470013932612823222566847491371913566979477346829179706163415424501895518795033238344393253806805339660152365512035320961268245675659283817078682497023822179596932367087826461940753337890235795490563015973494945806757632141879572426395873274927654853723140938388673759021859824354352444175171260298281409415117325883516247666925802079435832800087323582692550314599496819632774952273933231556503167538675506626071909071428549319030057921507214344445971404204495101412106782945873014930071695745882946304800729611631955274842959661987990265207778525212742075488786600252378420603302304716563042325103449131044056401285658261030691776264558813652162526403712930925547530968387313543043870149474701980475015472132184542393871968203630481034232547977298833881448840957017984849773051498438862098914645702388704962555662206758193616949702335137151175124892563608563840216171658333960882002124924813324820579081404979706977704697448230252874799094239796681575598128010347336722682384213555112887729925592736479762341040664564629314501331478323733663883348505562396764551582620508617676167776833297943528462729125910480737095010384261610961980866807300180831962285619849834721889357377707860027122246172634569125828492723463663145775749099394092497842078832038144543522738851165507955453798839720940550238843206032440063979806421476958197006402097250124547464149519242026676029058740650441865952020850266159514462716990002468011876855187301421513852061553217659413020997442641333078913039108358906385568239230059145957517228705426535545903376801239234094221956297358666078679566934991364946486958164778722199393819842844679027640354706256941843209919279455942165120041100860657564154257242960787176677867374704344025486248378847900492276643163977953953149442448362827222743584339850408448956898325856181816950544312472835743392239937988470292520351446772294662296562224794301654085646314121224893980086375005886399434252427664685302801870986004570743170925431401104795466560234567174084052204869445515919381081306203104103052095577458921694852848224983000861401980363464367657696814216002281347967563480947539442047697682021731836132800601454233992104905917819007241871393044853981032896984513042058340675745962812408048983101231467685676710827097231334685150932022943258450240906073998911480301231358480780773255404228684744187158654818104579655057726657713609675131940049116666671563035312769586559528281331808216390726079289515846629261428536778989216401413497575405086641760637354896673360458420730069267723336953889409820292385555360548744365555049005703749870519309520474457073456788236201860685490700518045995088378529289435903831583280221027722956099068378274484465025868307992770236691389893628869046161674073618572869802506005185550509610733256309120205204079238485424383122251470648652442517704014278037354019198175309720265868377342120109413685726102953430712781348682889299898560585354157273626147587255010198424321413107401566620451304339573697404965260468156643027181826649860608453047383482113051735160497399879227648693007697293243147240706692253445295126070522591723306900229108328692388696967166874029323259559067457227546688545548958916855147428988626318310430737391556945034322946415665657072110734520698901561533991572999704316958159534376147809575111906842337487922546933321655188535886717685980136496628046422498401513523249792269746994452026698554194129152124643082582973220732286575370749897124404666783132477155711591904434461298142357708127673887150767121249277573483457040595810180405742185506835759589795956369245939215976575898894293261479536521791183947411497950033061779078220937341757771262337184547916596871618633769647465861540899513331622660050402497387536966493931842763861722306309896931120681054680178720308458902096638037365576944149525821119704044828852708678140488311334857699034173083975657811780934548514236944792836710449325406974193739023011341793068210041441081300687173672649878769880350338767436467922185293730845926936239066185028254850664509751100335334250742860927589912143256241470022288089870386305027633005149655730507869551092761626302550306247005092300748701128368156970301612759856976944968182370245985218830962298474941387631110393037135952989766713574506330609561861013271121873854253805066131466321844701001237931309292231997313352829292178677503154105351455239351778182799334847429010196269841739265540343580552609257806506998374614008719142656590665907315370659714389842224778945846820205467831655201320872679273652192608953691834326377541669602122087011781816306150724068049754408276685122991413154303429760859495308242144651864914079702733843864821963123679083813426993073214577222242394955998557266914730451898276681802240759197187340102413132138686357637495193084264070915545089993974461416826193587487541449416888248059311377737848763065042815444952607161300082254202774004709090305665335511031571559665034009855931683812794119834414922997238455818050025451500092141148977941124712096072195102174893406993112533076076787538320190112026011733504268148593285617012954175541480375022713866198795631194755292974572605949824914792167080708903551810617658368068996941063087370225482678110135251036263805108358588573598621545920657431445360306010455304624747642072440588666287740165323194030962101383832517094128119919480003789274234754426955852046331330915645077547848354026901458192572167573488820077372010415263149569527941848087003314334531610020864325101858190550649005466912820001387018851471192352237901296510735539951399444664000662826335330817737474468984586483883220104911296553960568156196905381709752517103031859700091791496820763346624277584547058887980423636287764362483723364734273256459108408198523407386106487623637048887583551746304428359725449210378617588006960709228336821420887171351311115381267425665194384781691031865643583061059264403403521742778254086921179655618418495672714007161069279098519812570217198701112136842339399721062328837368957938191946210570089703036993748412862783091389433991543331849096432970525136414051559132904602903711304858605833123217799929027262543383459062867269113159409366070719432837702679252860598838565340322944629109006755129816528964102637182103066996848750931431042800398118117749952987588379989295595338660834704227105860770418463364762141537631513769189221757533646748494801150268363079017077789182125046727775481384082589543703770718697509063794238053603513786476146486104679237066235424179633641584129062103300151192082409806605646109660862466092885849077707272692109183884463363747043294920550223146678581201022678944408309965422944201978079691115925719982430096434223931962550705325159616268641424575392650958746092032980829321924868374364820199686109956803882489976034681210874135889347612709597240735657824986807261406395730082464259905038028562306447301993231225470102793461380234091566318798236584075703592010613852058737769657912481002933397123838222468149276109705398566998322354337088692924935324027037631288982688295337943545726522619819121343762197171903122468778408922693892610357384621796340638214184363222874751884039725236377760705363133593028076023048480762784522698967734080986059122809151814751233152452184993713608689155262557980282361757226174015314646389600264290838306406767306795463787046312640204449684428992696019002300460013674231334040778520926894500714279722305901096058590766176947958077427448562133433762325055652017115589919339470483229380757120570195911802705778268222553591239904841230563528291899857327599270376439641161999374059306526274253956357246190175527891870483376984850721298039647871114755138321375232900169055747684990863724523644441057940256308251017713259610603842221503078906128624390890986919579265527543155271401513415555170546237409676639937846334126155955050896606073731950896061000999156724884050819283947238703884043874898040954151558635562917103688825385948202721241375486034719621988667383988185105421531146230946786996573102835677434574212420605560398241628500379494876729816814478264213797892915848529082292243898143792386685000050810944175485704183725252543347952571180892620109159918914140955773154462051566632356103560851039437563039422476813789304313903420326245847531529415433941710866850329992531576582925621958278487699812677144479334671442656207618588089067803298447411503126620428622592373840476247673658291481963786360793681184354551171681526263598975145602812803333448370006580608144566574171558468400417432910428874939348501545385926084450697389301720172575645473503806111158706705000257934402822709642953517493338474482315717337380445762297119270374057957960146808379986389748933167124045837088972952655997233951448465457934672826322598936160305349287399288168998154331875485383372248189609053811364646961147682986285989196202772408927423801079961197420258213590535317342654299244206982371321232806160037680757356796333867148198462538826063461579578792786352572036881095156136468751052871249273586261893926365930240881914927764439671506184250456867956112913358157848878024171918761980538445165642455958114518916279114798464089090168428626973902688610129600118647664121572508225275978415939494797071947722188046471908086855179526897507714879455074979278551626536504943619024080261259833219149309457014285129944434296059307279263912823503563372961804647869978343670419967055257959491147242271956669098853949499247289836696447949439088317422946139857150230589278634094975707217781374539730899975391783657603578017928756340792472917417654181729369829718901263127060664789100611354725826926986075296017993400963430880328312393909689561330573802301434720472312187191365877842533637848014410679548967695481979997013790829833496424650013038264358623537907622516652208310905428010276419448683031988721204951783128679880267366954902660145752932186898849769370747617487589341157586431790368874555517831853830330604696428815719569042131189895642710872566188720182032245762730354689944811027951077235942232407195918315234620359711284909185690922807149189196277642063940938613185180795741763135688059049205375862007162104069539429353446668311156107629530014811983780714750971054137539477572717684911129551430051632260628858674798430992915297239486378442455824504191707108998613160862435967831165526185131928348873861179107360392608473493132689235525865262341919218515280128842345971452105611128408370091620316719811605564202396842201072694904533302750848719507971835735650716989796928017644576628145813629804233904013860696946116182443361454759146143573528710718552812344545228779249853382634318117171106995915275989219644365039733925591299086691896709446677929152724296509660197940695393213947482527151857037718402846125606992848789412706309940575295486460695288916461056903149671258148971639252638716177130571977856031114442806518837247148708400833789093072013972388691552131912354993679133205685126820428727990369286525511399061232630974265660915346530622363417959644541052598190535512670169932000463005373318489664730736807231248316123085498024424508839809424238485855559872318071867678808948429454796447708573513433255989835203779841867014986808347150303607395639421100940053996055619797448487836541906756276317702999373035565553673469191672819709601047509940963839764956634034829581032256031926826395126216575071144873521373620749088962898203249334771514888222373599079788291920160736232821418100922707337157042854531043954560952848763245665395008580797461889468536373168444293551341530078653941885201990793505302398668934386944107190644342109232701334917308348345178842693749747077391811610974286583143951699932075523445204537586439242048698457587594765342070817428287980078723251003037513888046707269316271944876148968974250836732660885376889265798852694345538764321115268968439620788489570772899941485870354616759608536168438785852558307499006741736040587414728875126217669611671429552899380336089347171409309211281321003421552825019905080637741498686502247497770000834742328248655758232344593831114426586617981183976393268471780470462206983590491254505066919678522770797467736716536190605278725356588285142457979309766732448888221855393438851060225613352573191608150162075547743300519757679596564627771564592649523293934846282189685757402010007309575249256167604724616971567061040902401514571048635901584063150318613213864139562875556105088641335296256739239663582144393240060063952552616427411146837662727028120952915513639892966646781256054762531764063077677415256367356295325964524467406029963747577802686121686587377242423161438488135144960959742408285864720595589190634836536625422559786813282492076925572751153130840003122845052098423376446464260328718046792736356798277710876143328170257933804550630343230180649419642752227237045620646322483190043981047429876103784210770710193837788498285407634911335909402449538040204773801998813653894147738991634143238009658370803730010762015603944810497186303061959579403046733358931139773416177907507643858575166007598462561869940396507877972113572766583666281758830822250114090784022720230158644826507832028832592403870849009013256832645661474876400271912679804731758141491105268440985150530238437052689435509704913699013774804042964699487670603598788637189185072552498897636983693700879587076897984357882719006549895046755138509822202397653902170286883129589658661081413202369427219158282094057098056610777438151555905551586092906547250881538016977243613381564044193618414523685709305097778542008342845297697739677294268126641340845530200337064784209439766938436995369295193067786403284841086452610002369098130828027754402858185474353061746679261001487286012212917240771318588752054785276413735652254317630855959834844157268923104377615987384227389248961620066624343652189737164470622189398901725068511471708346747433356608062390433583892996883968412301802913840405866602301406381142209224247539121217757090353735547545507202410721209331061039432687240908521164344866114957314758635634882279664642830952143382577539487087885821269647416813263903234606775704873307733568755525420578725942072330380649866629841463917667958377969870300632300117001707901829655898193290481035891194730406866461346919026486566562487202656463150107833302925254849048494375982497048872518316208040883841747586733182219127366559121948980967107723034551245478887922774424424304006376458054963407181834257546461409182335900120750019598147463093556423014080468185186436239140249509435838655469445285648767371025133365102962235204112703745098577016762731993432259807353755234523728897489290108237610669341568781728486287268930599754687848002634959776562517980379577462382018570363556734660422928126830905490557522433152779287102698236611220729317202782611200498285764092116643998503810558273021540115197345521659158313400147166713935292597983387069423956663155377414184712313488239363133663658989866205859440416950415196245360359379375697596979461321373212234173396819652119237500998619464103828650145424954892884107074463698892244405908446088595542978106962615521048418103589011191486473277001746974096655192733878994204954388754795363619103347327331709912015501040015115387170041645641582881703434534316570778581878435899830563741042318176603025586409532921606587405032588284366262929731675777437231725024862921846272407396020340250203727379264934223722028841726190112514007202939480708017705161122140685296302125563477167906380490252489349482159184478828296153330095549612036234608504152099636741192330734291799562361606860304008284708728620066656854876559838745148364268191652143514342486896669958550049890721533719636301249042305199705412732913493886802332172617153610259398923208700041487264724858366383179889117734527776032913338441465047753144273564057238316144440206305150308985108902263562693558769397277066129766678365477115962594054407506488366545242457026659892276867254683817975120661160186102154728913610180656765183309869335643397421629710408142849147598055203709228231716215016306013284770625341338169594719825119142488218221658973537336218655876092236044223792867144116792003090566278972251655994232703260385783666017523825984798847286791279492094775004731829595105826619334369381967757105158908574118442116416527844575326930639971643449522261455277652470231106017695995608104051789085914506160354801423535214271033963343915769615536096496381735125586250439868635801408645842907085030636885863399432179763146759110653424870449740199692837573555870159522105554970424840526111916325637831451896793948220960937261381422734163717297104973777966558125999955306263217955619190515432769310256056268017776471543737170089540296163622115921464402315451262008735987756866693868109164214541616932726048226130289876368357369259855505487391640176183037487497332459156564147860930906467137392794490353123670491341128866809972485084645204134420533589942575838880780020696802518198456298660912904677407312799847340872956827510374872553158610466145356671776586322402689397737428178756309346112250501038260006512022681107495917467832227327422173379279758195041609321404409098078448288146368669365642766471564236195874531186647946224015264729217204472727648378652820168882308918631333136273012974993536596147996602845316511247186158225194128890058832352546509894115282146431610079839486527171198711887618627919081515943279169532450291500108053844159267152919191440627898054592035688836388579666883847635486038734769398305805323692931502106653472004208856712205380661485546959732115608943685320632722303890874468509345295180187438299717305165491670071407317516553035307573104532226162420434421279961440149603295600282288667174903485248174048232131245250717273899859317818174465795334423688371634484211821417928105137091976775503924595752478946512892832656666377143735608648571465736510582080083150778961169527592166599360161932960061660803567950541286680949052436145424827095766637478639140930977802426354452947270661234993280104794195723511580634020455860164306381361864343490149864059585861949077403398613766454082379952925839350790895789813784347951078318126311714015811570512640352806477163954254583979591165815727127052552449493781661201113686441686182744604333805521197781693900501991995438414321786915988437837263493591595028983203619383665384555818796658749406835579780253800580022619313108363415780333643317234087906649738923964884368644723837837215238493097775242295492549975927846424820094246096994694891619848351930506306532669236570160835605178622124449615666194609455814876372758080433818691045702033049143778701046426787974344279690068946581809424556271897853904428589656906263860564115050553536840110662248383441391428602853403534117455736092539102239550737209481732498830969803356955186403379076209094346551266645820907870986539607519834810208199564713344012639297161730182699252104361251788680097040213420146533799215345112214759627723777711398530576189970368863711357591793343060360673952474208459922608754840494447700567992274724327526204909953948302823214696669208859953843660309048939957913136470823683951847643665110789530001964882294672906560804648888264776115485064878988859427144783544489458416763821580997593568446517693762102543434828765693556769625789881616720542333918327570061782531206369712824537581427870503411712467380197900053168227300779525484433073999936342150790223405973408336167760563264684089169378221578176005318017124103510799713444166928002688958110984072858593264219160778768896422922641035851603274592769673999592462725826628960410804421885867684461956219247039443010979061480337305846742858905006046377599077216247485951248558861460993863563320707897359319037704490951009262008878407475454122462817362593439819514769734647536329148225944267250722311155173509459147405526629766578430333136652490673961152989614325056105153405527361979157445043152044017965568773571002057101588856834394817392878547850819813357762435091920856146446317633857171930434936724618097643122960248822414663580643701319650814547041478901801060270811102045527041362903737305631687438162406090825711846356794910531696202189480202455197735098333356499679800060706415006322082357813195455669800708260972859058420557319332081722158561067405838079409481389859620425365072481186466401325102171277856836675040088801308614082318950524861670992439291059658430596494300922010570983060277469673857923582513237796554927989320565477593458487828134338981951067861787703231200839510509152967141013544829416690455658155069721141287289085621936782649746796542744727208361106749466089661949736914071138832091152840072377301066546688839691608780600914566068188985752687978549139174737600168316727282845724438102939063551277932786755032289752341831239570092747097974414132338329454413938778879465169680660102679296902289987021175516903941526775112948724817327598316413046228999238648774853356450986639281488000625414122740125659307522877616983530275080843055398946458420935140016435595688898010295960575241145962853596210932749154988446333780869257322511171528664258515386563037009174744916473037532086805209162758007657828163003955476552416311479789640915659964669104122076056673123317867271865532072650957531215628135504518911726348918404394437009177702370517327496026187274369008032055687541327308276819190516887890061399364396097566091010265082763865667038026364612330638779859351391562190692736067557222842931538026293798501050866083520302661888404353835143897821161543391856663157209564348629819115027101728730078531971102281213203076845554717657640219043763465415155530380642995454198678903167717658465363666996997863500038576332198392780323223709376849905879847793016807555325142998306420072164514531479544128582838715365811337760893625115590215406663709471768760026282443199912460314563959948552338221618608179110044215869417161290487886761373026251300789114416642639074604665274807352455169225249334907786229575600962236999426317757267687265183143515149742040408408942038962436371127323948897597334264564465951536320946965455121301283633115776411155155116412004438094765177809988947084815030831337694192469182076713041234385432535125897851807479511975227449674954890163071122221656109569865527550052685461820134977740904747824057952245735618997190817794116026687852472553060411335766704275999135395174567848782747723374830720735864254106861974833073670051499210103544151379532990704812507980607851383629253268179472809438241701275966549274157321114648324300321949200477523881790340005427357965965003710387477658289937016862147569650035732917678013412732394666199584668532127668309083085158828016540285111043035432468816091101642526938698952285839646648273059032451455814861685294523640566226447882441007940668621273315365731975717896310897538583599396262125340640127501000089622458064102747167930437452709935619245225705592444262658065692290481816874782496977479009051600877857411330782240020529048844301902927682669716751528132467835444738443901867335315124419647112734209655305865566478107354891609327220557048257455406330922495570917659092320131605107081814555772788102839182764047033125157456849705559121135964168278371744900410664693186089995901414375078660261861189090555708726163843413564758593692723267032519064930095971707508237621338138876061655091100614327883284086168836008114918497175449640454567793175357301397537547297912815149717566478916700232047896290853621343475252018319845580175734411582407452510003799900065471013337652385396938298218245879765498045622820103619223282034986497658452159688450371605173296565443163696635250151052021790804383710311599750153813510972890699880517339887252895653735773572046929433436735400268333067693391755437890720551590656471892697148140498736541468540226321959877278867875693273629498196212493107140348040695601489945254347345305965216288540377239926279763497049203494480757705976677284652384575579947709905722651919049486073852341835968461247606576616068117905592034787581253989769152867229844889574776132548311339616144544230001796785185221465623101629837343269920233136423448909439913553880329143837322932600066569495339898967212365554142925035901692493162160911302946660086037451171929157746104245430851336114723643670960698386842339254653033193713302798593633181687584982703087106258545012323894841659531855958515917395411215570466967059441924436379272592023672238615515557012359522538368994002724453793098255348419279142409135189029686384774596472583652564813544030966918195535988686972121669608363763965444997657073668423597489662412907988344481315025204569457223858707787122833530881043577819853680642523445520463143653211798939138945721879060573817912091448615214500312628663699591556755013023745131718029022300065308400157247404450363724385466030286838556239958636729744397659627561345621829851794990554957964299907917151332649503556338457195091013355662741222415368921489899710652806997645256779164810214103390673684366834113118480354179270506475222736042100526833584323063313880877667483837010044062759409389098360324364299606660659837292906258715131262991872437865946574019792567065735790963705858813709950910889108470874579028697638268800503519790475167648227164025815575470824221575262741866773709307570894299095639826212638108756429572214666628872252510457556533139568547663892697098913508896028350701356452224745577319844604057603797591333365676948733649930898386345815132469485265509832533420960883530282249362086966033198355470834107664418727462739989483243967938774071679193897486755708591666257530397292724543795581890507766133326192138169979942861959902573977197280687402672685928748875469877856963628474088435366706317931370401074258800479906222556094140756451646941674894686268484308839613913020431849601770399323984052413598660987371580430071170705529600736735154026269179023506828085512313603816654891326793173978510679360107185415255117410855669009547482883474066061847101029150082525119062065297167237462403045317455118611954892016750703121553917508091871615093021678442266943664484354977008996692411073328128241225246737518740861706455360173052811667236262640797602376715786010976685894288827665253911792013838367377210108429332376052566502183665672275036360234766465458444422469788837904704806488136333988513139326927776539606567066359059308003401147195071502868121734950724376261250363552793962575098858901137920413784488268215053345774369664018101073760868870409634558784205752709276692657713374613369462864917144483365857400323952537939674929038183859818757708188394431753322947586314857884593836906299276853556248704759840940167702513296038058099802907224618894200660566373729553613878724608625534068216099744085169842221390294664045984003093708992053600196518115107175070442121063680714225192125862516706215327248257477192208354078152002502868291191487181640315148055720746374311087663556246920889545868314390385057774392191740682913863202250546660420750723908416899688377819990997751688589464688026741037939748177067203896051047292766784925245910388249144138830286947149354392179319102225487443919319843547718062210648571117554235541828292691288405537364066385745726583301432117975831582953791369865201973657589193696880967216782715096912292214970124117786770887965428906884754472093489124694731091530087313030014024088296954419518846588574247647982603528756968003994912037923244511271143660304446106263933848599187082146945056988572764347173824185876229583979722338224323650432265447201575341436040074162651762196354176750886835244990098833280725956028548130171183223974852151839209946081756860787963162129381651552487762667648757508706207639494538798416572841280759695599288762757721673074925880322179955868579957603858111535997706947396063360714767805614410578134393579393031741874084487004235193514536387261010270166488342772311379717708934894606944095257142905024198546082129324496438706329899574634181470304638323300327215835207166508702310063286359564463919172066013200495555552897763261346491760922757332077405681630592779855802146052240863597789170408172350257712933541403441826070194034638170562229426983709309892119515079014865300226764504696592193715614050051144920328456319496249182457248217320553136404873997109498930412595333215264552917107368993279928695190297882214387711388504346386538024162359962733449888647988101848683240965735572594139133595053577365642252627634194264864994805884374058016077854564640299983910135288503870761927536959317294997556288631859413675535413975403078676047845852272762019573689338872799810966660422970722717156320072957942800905343755094429669415067566706720299822462327528042637435059856885270370871683366500096758914677192697517111688849937078555670845103710452116894937823394431977973184552444845878832769368494832768681198103835521837655015752434885949249169646787563410899714314732138126432870097968096565567436028731265275120078183381062928330776530103214608538695094224712127480936896571301382077659642210430233614615688836236096999797504468694009045994917085236072141268417152885229803911346051679265808189278010858375285416429400019201090067871053300336958867024648512023346838325644648972231311487963717730101223061708768787507706381784254893384679666048193932453090337948330993861382658206193434621491690378844017022530674580984346610248651343590212766591438478802669940152117754559901356331287772517815886601372573047863617465648958114441911985919547130746680326170380078924471318863124261836909947180786846669704614280307445447839559402486716944849925640488933893814354428978976394299101608875397561106167153981473818480153219189062481491348338031648637721328177997940626636599385694399723077184918386766868151059874222359258574520747414866045702447979632725782907674412470070007414227985827006066182514660631885786774907443730800463503979988061643877482185789371093374634972589700808898754754634654118046780317832964302023266972344263701170178201489132253640594973803184067706321851152464625856259993865045219222664154012605016306934185869974635808475288566560088140709856964111205714724500389353862760025047068966583139673105568363813340089821523671930378484931173964233663199740113742657309956653370645152490699430282543975978013151584758446960026823631956808447877738844361601954777032857166029277208959131380541689081989073643131856745142383037619086648261221463753261965828175273981123106428085020653309507926318772344279662298625853977496744521542550356660953275353363616099943242064113149791869652457560161558179924528551317442694366855180910372120479550088002862448317571422901365805869049977239063807265480856761198934320342768385345917805103419939885273639517440522246402689351276408758606936482509777591085755976351779511450197840032802622064006133174030608761702424771166682244420725225063359801446819329912211182070694762763567315359325389342718019875450461261688330132399560454724612824531868030741193806847184018240343545180955459947565764316548677292009878547262301147742652478348726745760602421532382698696442918942286377849831224513085643050019288439887911484275017169584122767816095366167273736858663705029542245044947127117161527056749257544606686588379226641926710445110757438185154391930787212369007518933583818302437828076409597852334107505552914657992618024653426102420855954756474006853510304509808171667866828703458899781042718025093329010047965318639517870960106891443800454458156427938509069564486826242947123043331049176966939800571169073830025719785152806875798793121704049902467535047888245807388054403327747657506083498010365483103899483482651143509699898720082651371615685230900594689635815823695524962612372655092441692498687933237973892278444112503065335265895205703420955514646586637887131799668072855604675920103206702436256560517478423620252777976980505940038941889956724416160967756287738561042931795219635199162102906614255622307213130019762478283137850200700146768527684673518511033731649827021307202108011008424650987811421032191627280963784164505637542748133633772111024426935129408108881264284403121965270380643107799980686307138369341167560701031757057562058663314893878519640916037905325648549986263738816887079000403862884916480558370322676943994937257909371267031675587427465664740526703473803462960445941318592522743274193293808351470166161117456667699874481590674872078369752036316886056386197564984314046989220607151978274592128056009859399201279221518889917097700747024635079020342553317443192235522371202257376735580892938666870458441592357947503668909757308874140868439854545447030551821966928822056409610595866320622590820052274308300133084028071886790168021448890379716911131694023640454390254018219863686231436595572304244131730833747058912375538714765195386164828457392918445431714357542974342374645119930963708525004225170981822448075643268855264780627358038653020112281152774417288219255917546722838897496301233378010948601788492715184749775638205904462536532090460484739196576021069858986981835944877717450198232211706036560182126478720388818901184413356717609830539230083133244345678275660729387173121266236344229382003520295612144346140455903547275274803126637074508526010097910981160461331397226153888714931339760604618693582750286288689477371339910306601951829185545194130730757290500554860839757003770362230560063069867564115693999888969416902791639990233816582441186866158368313167695590622114233045718298685492141831928184629872795491929157646456569227906773876600567390942353056189997573577821762958760113314071483192975855913383610563781576359776731319986670643299206007447019829783115451673207325140499598358298564754146289790515105386013392212424138295860404714033187208049237263280697575783293465153523606197576654779965606257106741788658690121765485631516575114389969208655439840787836865368764419064133014524135942360240177135952373096680856293112158020440844483191476696637994433490075097643634594873443355632011351909875177800323968514458099796497337292806014864178446150642353888080828614578115725861613858536656691081760626345185293794907670708895599076298683978240454326174056662529341688276422227273417173487127595388746766150300392738011289792023578694786421686310654980275306331917469632683896664050494071064252648769417468624834352183349457211380831729605298012413847346105727313926775832989817314405284315047825236758767988606922631670745700920278059717793088006058387404980965544764627621015937403775023097112345885250677229200268225319601084461500031070536961444237240033679523705396462280423278875765584253761854527328870594006061765434271970770908339574017728315020118150536716869688419114591683889306670029415656412570970815516773880066252848938481534064280090503870136250981915053089726164256528696111623639394510688230631184976791403926418273509089973183734447862499612622800855022052575991397587474565619355615987615194760312732880410884374709848378738994525360998979587714491486046932801658432478509750718225000964103457214344733975650726051523917724312685437484751021111282342043253846732213646578478921854045186999300024025864569393413086141605061224170637210064079231918515138462745062246010463183216809143629464695165701567993362582987185650907472139113737824269444333206069658689233399898794849785635960261567307423154329697626092939127388378372219056847167526430688963076570350767438872849961664289501796859500748833601898696130304330438860237242920015236742307415995110139175799441356174364164517272349877439168443812274386209357163715433133088146458946922225595796602601280841251479982171716137856814228181898095659944718429446572038005898165595077424523367601330298082532764626451303091854169841229407032347271636333521805055424680824098731642487339406681919034756923708356828940459742030177563235354798783507046092337602004413848482722236007822809481318611749135006041509323802896650966973359141360184644051875304509926226502891155714040822637313672108940516720992770395384565805000900392659046532779901938209531901532412950364473570137077093297690007920959016902418334048358202293332754353473497881164570974263234843056695219336354923727730264387493236028636092831312574329819333691096935186467837306832743010747714101367828233580792223264969387130087999806029737761260725216970588767856986698360047652401798799114029774617380970464873263032249626487318689404117393868847483851830956648443962435791598958734513076837867931586400373006363626644262788648405303892043921174774998613619910505282045604323466941581985607339461307258934846107516811453259989629670688178604193454672347963195291597660823432232216276621622393988385122366524642563357195848584299876225275119764724384576714190444441206697980802553263370680814240956465248254788009640572553358145087887040410311261130709488146241188543832305000003152415613614489351027110251808961146491974124036245608738960938916120729250542473582472356877003453558720613033962104090979335611421884205503407877110010473305241400959043141399015895076665743034447225023511636519818768845968658499905177755717446618428509017791647483242143970845073809867198998110595127295577283547292943673020605877427816827588745844173763159131170796389108375771991289428365418475278299798041404511393009533755212508799812065005472777613944407696590339309470399688154920403865450855838609925370518491593829328396599965800033835197041802947148656444475127712726320305398493319240879230651613833518132578787276097761731889708039286477991040929833182178501992255666970942431666612584470723133615965849004419382104023129689793140949862644799646995833209560619230994550457233664607850389821331581254308519294385751087694353603471909303067940339302063473684618514946327359098827649649518620925223027621453071523870572185343950635659301165622215400876790033497541734776540196498016564042018818510839409157581558626564077404580103190488954149517660785740152030116412293870424141022986612804596810769594630558682609400074576786257648285650021788700267976066495160238731353406482490011304569150810977605342129362131283219747470219972391212707437181971911991583645989060021569130616719079072224293044253865057715767487741877485140215785390065766511377429745692443653462002163936464065506277172159527808388496488554212908012638356162466405477519877981158775587721575230047815659248456272385078458181396519250935017270587669855350560685603405446086601732817275646031736206346274115054314710881409222688068928428585797456819556257475983465251210646676037498664312060341557225941198312850610439791181571416306702204001069611022509494101955250688719802649908054778872516994898966553056023550679134083957485704021585167170284583687970953382586751539654436964585252585086680845102776267352211355703527562159740005411293443567157059757483705079474394901255845291253948728598496545735533764550390319353795011535073575573320162850051497211320683990349276133500869779835910101677549493212511625918701766830581618776281407612004330840276715684624707775423953251520246052215505757457735924312671977655014953391178401370377931362817393793498182208400207951678760914311097604732198210495538700874046505290053558866335512927987446894689211940550225838529020339996957580920859244090767499325903284340855569129160649947780467489992825216918645186752638011515226136771555497544190233619619537596943892634352025662591136200847350688743414739438311885966369460041276295875159697613913997284455307766288749811724432959446169746887379920405598617891523635584727140676317217197508093875877623809853531881869094730007291360497281314824495118834764812911921582804105361985354589789864213151496603257145480913933899528879266280401827676055545887974492702466781434370650330483387097580241325790046312858509770221667277625408712099224430749769444524417873440951181791667455560854058163059168839459733972100944351249401090602842495379914201790648965517973941614776699574173038453061479412885272094327212522219997906156384718553272174482978761992566381911868814070351003984805389062089848078569233925950082530841829030069277267652013549751901202202845631662101956585509908562379859175641844421413467279241980474448138377969679170972840012766375898135974408053641194322493386074771578102618727967987673805806912531375229456605146950530329328500566771515507768467319146162699626791073159250782614349994230340528304101533623107704713811972181327070212233273515327428200886374102844232454257678609445485340647692668929851809385912565266519053854729015627596192283485625486619711732860054738098135837842032263542706908580876101515209008115023785242317989358525501141980258468336381486444477665629341235089033393660044836330268620720645148146234589918671955705774558874419848613021722800794994539543804876957519696596049887733241925551655154053786345883844980684834738773907076072759550280700208254143324494280171072888371132984381226423825154496580697143592701649634836985631867023570577342416426189460055833243217507885545730815624931820010939312170456513534334175166454544719425796013820205202275711862613917122362153875466687624604879179529040890849577246688140339504532409773116412894216930001504294407786667178538040736782299630597833297576185202059264903487305972492178715989990697856854555138226823608356396818764090468553942499073378854062121824462418765914780021104438464229821675599830851934449122418244098115217875777175496580013345379560903345380732348464328445781205554223998240940823185937719378972331123217356557734539091791412366097632708310550809439305001955382542139411406797561757605534677348114613847847723797153109829966660178133640799570232083943041053938521614850010858474104567067977878971073089278510340893395902649653504146063792105041731357699993294645403293347885733478819113553482830681148121059715847909182874052365390806251095202809217191463961534092887447486336410554170813937815181223934258790408945743457834380472425185458308767211255366876812004944391794223861656981919875755820173246957287017213348023959205365141395572993708016901735326423458273671172300233423708138045002846523843113461976093987127553238293385520822102602645157731467048469595427993138554554956096298135555174040346000848977160192993025524049994069932436566072784150396224005682940786184730219449854207604811111471436689789290907556900932780975673825249812735729684665389597475930960914377155190232977290946671471041572360748054887348158065455939665377921560963896359638237892225677935376577057554128614978670604918903309771988590682860050212673383916222034620353322701157683170601293186941801252741895453868551693430846855305469973635143139144807165863205633192215594598357309524989264205341579058921607854412869851227519041706294232786884240332055107509704440182415865664525338213524633400899581032207096742329406169340095352558223793255297190210646782008765776699257966483219786343404071352959893751722952073300234386094510149552599407646738730132402218897506356759075472208470926704260424882491264022777439677900730895583627350654512948313051408930569376148813510619589391434420358270039625513903111711446822214055557265288950458010311136694422940577173704881463724961186625994275110495322343886456554353345354729404252221550869320785551367790703055717596385556823153204017202827931887508247528535859778266293214481412027432108762147128242483015517491476118380587899041318246883868469251958098923142545098615624703479400375948151879300352443711322367628234480165569147362181291090222190457095398666137977484121697599138194322734926354971573896959306593431420651694403123332384969598364736702257010016797611288219618373873130567796706393662307320655215822142897726677345104222712728597925698779685583733355450361036370811915138963214429500811187422119942558100897773918545254750935914872473267942275361652902297895781808214163719391948040334097055230978887350385302893971608918856423222839066256477750285641871141028164565852077375675320929845622642869211905901170642665745531540770949887381755374699210773551846817038192991568057919138319981448789002182348916948628810078977708554641321542638469424083382023576201595650057954161576194378047833318565183387266794858215207269495113994036458799253466314259966869840761940029101741525331123840212236916831344582758964817945756959206670799779566646437687728724973373181523705182368733275799261820054614453198196941160541041522670925853116188658587631109391212027924186646840549851163542340090643430856414357809243057749479276523183958868264648162705549038558174732711933043996665293532540220832741896195305102122435157931987535780921973811158093134220540697324288455839512391482364253825053901014584301012295029722360805399765340614066300793578132775171820801284068937240003189037486876325323884514694362533833863360472411368926581291630196011711905032225674261493778985211847470778459131032572032154645167897862442176842787092390765248073170619439357736482026738509237271230154407159418549627552662595626971088950480298796171462204117163614227980792731925969963247686065646032892987482484576902990930157574565642995608880668375969408509190385284186135109794842399571860474623303663577876250416290646693953183973024134738913068937224246512334271448128523654314305259860286130121589243423212653913391195997971134557441424965842794822903897862487493700143722706004842098957264425911532897059440963892803436135657136446369920002441993784041490662492096595626558311318739288359220152908853773067071931452217873241479471068608236324079738825817775748323624812060732593304710332192683162493535838200574252639131833598062593559773503793515533547187711302268835677538209683056722376745855616098863271390603262420274904188326223177080299834270262616901656404372363768353176909285285449623233440224852982884301401213911553731899424491891652996115452274769444357346395104999589724634873508614804413069444314392939147625025485116155761261777420075315567459968954862959421477693952434918820377536986928759369219237968612455206921533631381819574256279425643897092339520050408728242615572844029245161832887590443352313721746295811889914936181260904297391678679078256549969828928241183118993671363151652098244531559293162807655510211871494129919489636691054068354751440551531939729338863537150859066885425780648856089353625004163747009334477352624520586500701039577976311289173165262712596929270285105567465433354808973849749137526736393419290598297330258046258700873709272337217981350153222414925427646553030184104100681905649253675297261401119165997718646843984984670506978827606906611799025659849693835238808305799045310004043829435153221827693075282682877400094023652102185396041667309167019579729178460205596282503008634660932842537074674548799920835207032284921716452160707591450435200374989069735455399832981292721955742064433105588381751307734438964680178412408541319464823092243857372369812509532548959871509673431859184045428825187495660423593280198323897957368004927745669399993365500553589071718054078659730044603898010690817574814639306082535050764626727837980238810786943183187891509249394972983974622925267580336131317517209837207088391366106368913541273149071575432234471305370565101843809474744695177304459612996625842043090194355997996464022388599847206914003553624569307812895964317603828820199536544126802474480510189356230858494687610520646448319192079249170256660954222123995735319629369597112494580051869175587970965373487628619846469951235231829080519433863940693666002958720047612729084183956948737109038611723313916665916344128789792935811184325319079309113268325731260010896941184400333626431191979785758255714934716936784847462642260846902373194749534819920408289534930401509790066869642903142089405837017458631608505941664173181227129810962022066979266820687495357938026306685322432217405856357066987361113638102986074351717532918528413499692289166006629837450254431796062756549162909545355091616873653395802220699964157395347678009400220207328631039423622512420109221596058736319851046173008708410465433668405783961894633844375521120346662286017200996064494823671070469370372829380532323716109789508922205767804469483508171093697624084709940555528368176118800352885517618057010503486987148977821362117064608249338903096915412979681701826857667592181344610814044500449832540521947134597824827699821934456574028465615462217126527856118382401747527250018209207207984122656933715679974447860497295712180005349921404893612747882668458595809666783138684680190483385062405297739430482003064680806215692833986085706456285385949157657780215228547911066218218732200578459518001909666629173877211399964635356934720676288224942196319694301845073088480213475885265658463414958452953466424814763231838378695605426446945638775097686580381005906171822416495204598677999181409756330699843143230090345981558503257818595058179162191003019006015470414712674251730876625287777391789191014991983317671009395296010330485747720188808049518700111996875454240257466382299685072684158403523641094262522044927515122667625937785114478988190738632544320629723605737953288654454917933487412511462265840536939715971835262098545601343306526531820812717056156982339438918522040267877156255223935019434836091742732175454958795217114962835844492812021638224490886512725457776803397524759277911070710763357690722829189759403757720391185755410522508356967781348310037131906075411096079324781848975283580009197919557996200262177169906048702529437463090461055123323523214962036592047915049148486799697639159391474680452243757432349278516311713468503104332987244489188366031787304836843286641859672604443413953118841053997784769122444452642166292926078218092192851732169825930332223236144859936090950593869006682712500841290546146060409271724167967793754544795769974564494953889220043954135968813448622468979486891747456081909587425146566709444533802411427148472249334376597788164811147211707562876914142011115589466622476249509127580795236144016763221508691990513755104953286372693625710201351334153391980232622555047635539736533506771447758185837434980817910173224692950760784992776509325120113756421479167486319421679772000728998743872469123709802196004942729103004674791035359126810185285244271508960784347833722991147379961960952406144830152626856960943501205077303678292850730879128112274780905502703764678886727080792543746508041867879425460331387548918705326330453156616324385772054998047026789073846380626037811397547070465793884205890280990880433621525526249031315135461910610615847301132250980730126429033151753831594138466906292632072409016561051383046638401039742864487453567823588453370035955385162407134758117174975724700636945409865898119038898294430710885330233406364041786847736153611113036046915598798538074008498641761178193976781300321022840756216188830378230750397634488368805161500241703845939137731132009026723981031311197005158685335845644092242616759885934537176937359887363222799246162360680068113898108064076214755165248215502403890754298348491039144007949273766796086636040124941861494312081138940066338776792871037671628350738242308157191063210386508647803716847454514060930792684186930019048800151218474435552742085026276622540470595435250175332410330065279893147252341510429967966761982660454211575583036693066811165890066239786727436273816126122623766829771901750802727317361608725589967853434180024720053956136434865994195274764075075820762922792745245244665270707401816231378832887545360242822372805866526531700796007938823742899004949122639468516044084995698926955361929545580240750296764308298276761891239043456862320474680270435097959692085009730230294934746237667917680149591467677700893609510253283584003598794719954933973563268688298155877489034378824470306872152327979475504421951884489506995729916313801458189114224205755201535690917996606918962429592177172318841921756528737832412166601077067916363129325574556582970141961623204618530421002973261062603950813788734669545690962531725468640989587762679615117342607817095693763327497892264990093271751667823382067707273477317447286327044747574440434027925516135642868627328806987411458117588316130540552070084346823715518847293599013659353754393968208808400793501568192227478480410429964121606310229148254180462926125961198395070873335483392091224565512768192133505046148162314233341291706775638747947878481630875797585149671117522191730389476174259128797351995153747555419611216746344257189943398481283253860794886085990371460228034408257563516651676863866062667680174410839090417461703749890351537257421661606784959045849274880336082102895667937205769889855362236063142493132722488997126092096325428628918229536370070257614481266517200782676889181107023579882634890717520491370204951092323577813054832063164782174538541882795089166731669952353582999065580149198586823873960062562175587058815874111379356509701156245129622606404857765388667522168192663321901918037324217369208273660563453648946672298700398768438217650286288155800440898756786414979300312674417262481270548542883751038401546732547786454340951691957282786623514264085182693500672693288121091438764507878855493894777484193829807162288408366622645787566567257183463696357681665022940020914360840535040533302774793242651723255983840747691589891226532217687510494220536212382291988014945356807913075016095357038502934127029654827286528092519641108289520598611369229695214319060712664733017660199621795095545571662106547512231306590818472455792924634733877883491652965033510619574209251653100535471165517833851787723062265600629406921310453329214384359112375180788026594411939305565519598038684445951594060858367985720141561335834040410156135904247615445618538330291929300495260054129842808019223440478755878893380889004420571948873007903405847050825667999300748367982848299976717959138253916940970545786759266800538144835478234836289025062690776817532941860713943731618493095488175587671057553003960088128658587692449832590480972645145064989569904276636380016171955814883001603314840964428621364954379037962742974642625465780316482868837377299049595144081997487187434895019873784164160062773026472091618330524694839416133865806917704014355620078937664162935018177164797897733847199241662217895065477426992917074729044005380926380037249447795102895940990302841114263717250945619639690192186402223002621133889814272242006024428147449340162115487335234757423954328749002476337650586969823831165649448704532308234812215154681058422434523039360373364246176746249677385300640026829717685192512223938516700554422362487270704446362241986456754836932884093024868567786213643200467340088670585927515735746179077681180650568776642227820078619146726129477915974834582135842697013189757107618922211605807862120153836085740923819072148052388090456841486556796017112017273297694233800040316541446709211773748039375218433089556444977195178271876180870068692511478103602201303755574389667492110883591332478939993506426798644394947082637967371537201508222287257731939983560240721632779099024729236233569425110829530272095346387498716222820162271165579016014897420313755239874626544268211442534604690760275072067344354497359947325840219931848179188817040306070964773909757033600255670671155430139447503531261946341131244257885237547132037260562924395057616927136662280154786688539094753430296241486290257804161200957265357516303193662433968292040798681779574223180263301781769595588281044010443627000035615822156497994697474101208579734771359378567741447913990451204581460375155876248810764756291603179330472660552678047716316493398888540191931282335523302154700048063453874841304071208785325668602507686200122814428240155623115587130648120391238770366161655129035307199021779475978905594247769102900157384122098551650605961483132734278107255883329575725525437504733807818097207879607082376224669748297718168520425859730590762215649272358939909179023299754940014146873127543415426251141186007455943765698990856572253032991484392854946588072454119378959113173309972141106799088848917415856887192450174841514366064764519828352105153165964572086807337290038649293024372178213950137532422337302454301122343601282885523136023563033058798835244542274269090815067530936915286551159726869290520455005714824727487828394116848034216391295485082641569388913684215004988243406655211222028396521099013315553824377770322382686303159779096512915200111727003514673176766620244600247287523043512076050392178319380927687975561783265034167930519212728382407185225942020430514841963041730670991754436540983450804641684981420066944617391241930816539789543221630837214716763366422951994889590393395398236384372686542215258853396693357520126937154293911713291097978916067258068907409925883905712913477383379327406166890135737793068241814801311294536474803433240825403768273844163486789616979151183386952788123491462947429122385833107639597935077281759058772122353018018289956698051227372493447491102887195318595337540591356915204864823297239745360434420378730618070823624309374550915254648807157970384707715505122553760311844399680393414481567511120730799248271598569259398732926400103623308873881788481156677714144759226918808926936621415469614682082971316625520483025076313820434673047633279600527775317602096117186443886120713242722948458834122773479636781557146794756860718508361933345118810325012766164828270293548478748858022253906761865021082391767974458582613341100984560339304823609073233327461420991301628212239813031734075459708401910086561139990506378596567323541062658654824191219993050973916816972705988569416159019877152482091574616395016746613939667622549203976489249821338870692047523340879639244664468118056419923870385859297779550389374329037686925274167519123208368183235534289480690081454674236840352215513148571649190920889062528744860823974646962020982797550545113712684245068290755709532330126429261863201102390314607764883528590112122773902786670609519041371818091290559544571941509255423653479208827034226489874268439105975032019728463584427792759125834478578443642961078521188057710624175592349816375193488442119287154489369072633308541801454691559348461014781607769687282776422010567413625724000748103898590448399537137627091498369638813288323629457946731035058607735542368567577143990114220722491081746019091697861040834581784975487114651047606786633184523421730187032853620904607184302922881881412392523340810315287072655492850446004763915533163153989709008487364793071877433837643761302225020259845958926911756961516835707599535803227691307094904429604147360407667777422231433025817451815400966160131416832699808957309426026443141660113366717577130682371911727336857588553737574447782932659841114796873318186298747354846890509827672300000252980266386834735006687291736093247500359906657141497563062795534812752672123067564229870509475374284693389479623130837816275421268715700062869833532634868697923898190468750722135390116659498450382126867603272255054495781734271312217984016843446625454753508537619688169649114334436610651456455354236622587422955209066911959899899573818795339808462457594427206810659670678411462908202332370792642850393223087590843768677354786488601075151723072794672510203996958629634914122856914415414380764438480947324763056620231318420841524431340679839485525250501032645296321270378017931784209040087483979281802019751211185173505979458654416616106338527868538538133556328038964505620111021079531277176597904660080164858390227319373160799624126942298160467916393007786384813083072565579217167331436410942228681072207208744810127865491675986056323447777262104361451200884734388850148245217747447464733773442676400360247564397430904645057232038308251852288199218584465238688175041571191813764769903086478664705577493770201666545298188020827611039518833763031406809855409613482707408776785196176969238032677292834289147102855797154609549531180081877777293668213340351747461752414488743998288455781781094010705372783237192093924823220394831810712420301218859128673276953002165664819846936963234330933856237631728671264833148836323403247684077999031578360667601680673268419982210005232889946388005155595440542077859105957252222557338824332971429052824515583557604231460634837516321396404972048119747064287165460644182924915255640827922332498402294555030217365318604599605787348226614250878559416733716288929467043201319428818255666345002950890572841968007071827465751620686928235634021139931424966757802842079656789660433808166543896165861823848061594699829205533106409084652760514392554842547714293403370922444405683380014853446210847499089457466293640233703230065503287645959989886458750940352132565993726189725550636533741402766992269296266185908395433502800553723508508166180272425359125996279290859503252412238440193995002329612978038796915157723561887220380863952008074851422301747434753835982969902757366455559624041372824842663016057217806680995527571803127596853090564921940927648401394324546511951985679801514147303096620063728915568943997991873621531186338764188268174075751646679968041945673968407224136815505941062269365829122558587173955502712710602592461610469968689792504208407044405227335087725331739740342233585988403790301758097672338667158255174519996078103710856350535708279987759711144564943752638587706705098064161789517202356524443995315067533947053194874311098453137051860489528129791538402888618229636552832576557960901252082049779458440772641096287005806292461464777820117457162739504234739789651350420717487162038151592400053241223913389379466097919922987522660939532893389913584284927430942581036007904303193007464813819531903283648285172183187477268826983793943840765185933992178986917981628072187400853228774404511269465539127349198163113640925509521643484321571609638315243339787979000466548257735925929467611283720000766254686921537563872650073240551617565482718394386307874300232783051234022746626935656433044481631765576606944903324957309563924086621004696240239848648816164955764925439733985276310087148536829385495171273330727080940189506261917114306546285140854583114493131042799397048337154754617673409182893911019817767790807117652658124498891550399690859159364833484772215899328967692881664754182272248515401761918608575109101758418879069453528675289736686281747566080429859166311664888900784144805365080646074562721854368253037516366445574358411236616927554681786627800785890622873038992354040832009629934017924495384706334533721328594940900816086940381499848121621086968035028671301636346143754012016602472975173985673219704144361809776173703760757216869166686784851923194423029355740162896207090443634781646720100641946039407427598391971203600358049689116825941610932235744111989926880062664211279301949669589109362328963598743035895640585171138531092753734691704462853274872473021829088021622987192742363333918116419824884119512776248842870635448699898652633039910344034612367822021461152636869223591568290480312018782002757559127044609754294958587020864019097355094508414140214163377324155582834399460925655177705904318628242776531606835435141986988108367560460353489782750469184620439983328523094641398669436475882714787687676985157986221908466520054481215531934305243453795399355655011486727564204429347864742127759168273414479491238587165030479819180890963908828649049946643977340511006204506579918849928308504909851034698885265441945310490431379215154405606030642299210509400626382844871073737492324663912709324956248949581240651928602642739218739821126361617374092747878760066041970493037747872614404235537519388075760022346292103402445490637091771779274647366369635487981228840356240743312539351644021492032673981936541695478755844971120397416161084428091159068581092002463222807642862167536205078699062589929067922324281010501947442379624597890550140857169965647224520696818047323679036782702887309780402856710943503940111853529878581702880436747374734370198394643906619496013984306714733713383432938110284185128106453269504020327224152775744644028679020900883667538857398158938674081055708559511190771736418971876521528669016688985122834332878611301926937653739504004170794054699834859745789462291349811427301606028981418339978602812543840548464654863498493005256835503865640546364898738907061931513257969567688970128055697752873857371601687412880829761216752653159553699558919833272253476680775216019189818378043671092539430665893516756401809643149891024439025486355478294592235513167464409849606022011849991492652309772584491896416402500828538349496239735273988382715476376956323949078482811326439478841510323370814966439887979441323041872635234986811897778580961009150966658460944530421430046645601904458454490910075029349695120412741571816077094176261170362497290525187411391701042851691810241447066281524000514965361401677427087738469460973325356571156297860600869481601423303948592202415492402854944070758715599351692085815502662209734395805261514791834766519804668742499812891633321017195535401906642350425494698089959435169182120716954289745016675570142506484842020994348417165930061109486947800707427876483175857433065513484771438769139146157036299699782665643560712375786657732446085468570019822176576238607674724921736327271740264962566172093423691205773863883945289419129251077683751332239841379042454006258242790644730096108643005523813533955269421047948651336481132033732656091383954621697480202401827041327892865903253019366666785684129186997422004607228720455604011257565161004601453710737025426259784263086290707366127793688392459533442922234035157266914870128898370107304741523860347757311539574981472687005935671829830791758146815497671636092746781044761470544008834571067988988571012940725306174886191751693804638830482882859880540414729437737332118407781300019503111045927512302812083673535231066570655701073812836056311493268626011606319232342857165807153884605012626655764989479767854183771680117698619362172232240693230066248940352300863855375477564768833700879609356388955088328044881401328067762895924947009444185982238668800991287008468547521569476783897177134189909836366720294604608786029138768648919534233565048960092250326151624468283801539449271185966949673743699279837875269419092017721634885661338031519678464865461975520461249198643999620148384665882672942700599794828252276486437411061810540724393494510115136753264643944833172472353050439890856833690592240168019179216400914915287958002361071904363990602542879979340742514718638508849229374101619120167683364519981713820752568333421531587647715681360441732955496483652450394487407046737001821597608514807365626271165450374120997950866793522762812019982234522379353442694580628024016722213193388006673788396465028677236511478738113530387124035248451912851892435132074865769744870598297412361893618801894828254445261248657463659564925986313428350142517060892412837017293099106303774242450253823713567773759076373970761581279291727121832125564304515239004483482075147803161105502297266755853263748207376060947990645203110233963424419828641167468217908927865881373571640189286746438893200818843447180621172855384786049081218020802502643425403691038117279650075551110546868029978798022702931724842392987471829141465149845098530701021041003099747527079116366308434908201321403851606911188579764305995400906203418148716936452178861380836837332023115963147832792020205572364843437176261673039346905745571129571787027597678618418958544455922387403637301296554690089465752914086340059609621422801558952341296081824343729150938035564137774768511684696889559292509730655092821515496407988048057453125700633982640528421932564725689292141815502856496407437621617909752450430520484115097484761427420397587655472906456956059486222700757723135123875919290452414591309695747498855113369477327147364056025578690307017700918048912520794294283744541591758451385873375092285590457155316023570998289322099935658698211913130481160698919630522807730090288652870518139052162869557001799090384145409659320781858345874606167370695692617910582194077945826724954125870916665403314128182076938508630500035449826548981549177191176383404378816663661852612927789692822649093130104664817279613225435162409013420308680265150309781306195937050756195135208794608405514877060982110933996803946277115694529467513929837197604712721339059969094724874762168231035807557204848521208083912045218729124298369701553232818564937951313901924723979033361831982295521153333987696713943474594586748204491887258763977252262322045404011220419488111687422747945303246215609098142212086415163990022694660611494509969785433128788889366012116633406963421820701955432924965354879312800063102125225987886676663011763163453869132980455632869704284499401535305349767703799871137810669274013854271460617401209067803581385763609891433208635699310793235805652410768858375519312863327517708952028604503288807196245939310729181986966546637295019700313653130656176073738275936988095602942040110026539246802227321531525269129412935385729573124998082990053741517664971151646094259178465683404378593517699541419519462872032260615745511233471876464469433036960652633544467498213343405382086257465972667561174117373067528376675186264104065347623601357340185155594583168827606059049253173212755688680025253806270045740073427497738817801803974525057692054355290490479011059667749338042257663200459585295146403938793665606896639684741462838517179517615491222789449465360036202613156334582245343710027652724992170161776765949847561053805083392079917317421857700623919325596404512737251156015734142811974853587706368078213476131058839715218829765025931692068271876786693486988633386012764542372547999735011443356077469907022656872126854690943340267823214055857339680099370592175246771310581876529916162875261444681108834732458281422486888326904023864137354707669622963019038899713166682959091359415358648427173196843339217477525678705056983037157049936355661343533180679736514295998814707707430191292626786948670281602007087210057437353045785727771097992418740753934092714258081385539733316918945311101254255131295523978917586775159946664263377581340653807472747525316321359295444896183584809850955077847710824875224303796439109677557193733729540662081285467122961557979073832197083682487238913551849887141571696892634689757108437251933507234545751361011850720353042279473961547902841925092792154948481256060034560843686415716478208871250370376070747263460562730292863417013702148797962157515644735736290209857061628297260104281328830793000606750895392130052681316155375300193923352175399345554981049983065262169796592672428063271196584616642585271936490482268221445425613504802952526191153035440726143237439982584619180418942804746657407322363154017730754095165682148945147376375172320250470168652039920785544353085289704222420972549666622937766577807568575364307437003723012474416339094460200500998601291866154610686847174477803657478860935799078044785337228545388433858461525741337519378844224650053519865857627123941203120240884775407630240844060654161267004820758437362152732192907478234548454913260095677590232224639087885987542955524934201508956730629313338610702570080501658617940232574832300941253485790120334169518892678741391531385146513013878911712996206424877222401078967773218244257767986114623339101462222518948451702945887317859654201530108941871933178114838257989691754481280005895964623043872784789211571431925664142524112192333964588044154431104516719722710259062044079004882107233920042715153423712299275547611544724433087346875473620509786308243807714077440324384153968357164365582620029999831813562419307255089560518855724318855810668994092197845441521649417627315622774830316719524278270459735835510486679496383239606698771690539298006362537874474600670321153706035386242760646678276814160586453914680830052349059268082045442906627176488906476483664346438218869181500224733893468622609606294023832728479974552888797874016470816715130462522284058842227912777634918366402091475791405193012808843741045046572057084292345648768506920235469738588416101956892651365887145084369596523214638779367996929171382957037579412989283660714807680352827430267945348952925581242647793220293955173827274307456237799335349081458512494801860918931712181042635988400034282915603415630617746173170538474245516856996540277729926600307614949418228283236250144084513483284133765386818293150267719116867481612417675840437554855862863217036910675021792775771036521661419431681672837171748140377193508223181185587644176729974205280479821151561007122976293175159682656232002956530867012603967635497462479164934712136136034934840126277042390877306605513247921515608871856695093735328608472255845068199429499623141641154529968243119925152140685048157076468743329591758735672514782762370558121111340480825599388979195619854574179041914474349316745789549160735061813937674831184063376109774651388874233711284584590311600465668751475019838348274953732330126052716300003090464177772656538354585608716686945114119512716878023216311487754757655059132069733456972676501442084345626688347645030676878446363852890385547470656511291419026773842944680086138325042574733421927256473582905358798714591047297967847171137774234618145117755680622051659478474600132390548945439398782124912928961237256660955681057759752626763479344227556218457212419411132034982294396842577722913037311303190758353706493055843319644797821790696862128457341428895147358165487345014447643635880879348490251664725606811676012562345581159783385504674374235218058586468356650637986210596461985609673537027865392993962690505717722790149982182946580497883554339795488213577554742490219054261250964947861195397811824652424546392837839138133206075377162521618915065626486054932355763077203187538395627138694363354822420281596091527810959395820615226392808100897239924025296048577043391521461700783085954477522675511469642243153662402108150437098850474724962401182847807088460646804854592741853428021000019348602129730999031801922829252884071160680150740727624808334668438696345722360952443681907885235385370019857766209365187600657707771270411060487596548557623542396736754050699478603834648759697658698812126004748874999191823548987936665351073332444905915219123169929713212901876194351633209129444141742488504412145007776280756695096746241090026659248601865248599430537513698860811016463662700759141017197381524111282196440525118009201730557759477369141794639077909436545422940013277351680044535716152666595545654775764336199517958425137958397619450742266355035961110967478615751094105619430584904012417601362022111764076854431083672468776769038819054369706544961921367761129670291357608214136239547577108380990542103250445161490788301569247588006219239317533094908865612602117047074161137498465492796246963994838818075452300237999118985407478232734686730585651345110271730409287365711053864875311076744914388060591452512992992709959978698295834035930734265818006376469789899957003275481055747217272542300024884729935804631563208602415752327225951166338415560276031920933205764110640762121765480109168781681191154344569726439808559956643422295398375323226455542471807509347370197871108105482383852214335628629455111578487653861927149924001738610444299656678591623530773357181553237228611297135935608006846120914007171363592287297667880197379058312853807399381392977689239760971420915869469550486883096771264189276641645395013247773044108219280116130033398018136909671688565414520743079830834548391035859569333267385436158727951741159932267611558892045827313550496938871445930220725508368283215377972035942273043861207486264469415572573721851804207641566951497483023376372357512451547046625355324178523224882530417821349111511516019871158747720944300780198108740684936282856889185139381207607300500888521320224562536835273575013551123441044013398054710040769860091796804606099193104398175285558628995426197569772075403897493672319064917988028431600401782402198799758785454599368267036741750521945259525656245301618172960321246129615706327115053839464215351411289763998265557475833243933023301613791352951115302252000415521802022225501657991901804772102635559141475863495751609352086477456209397117089572895351245473276210280077062566189040201898600468924953292709493710700359328801642285751573242257091602036791489444456730270295502537177186702313594359929528213593286956054026449759524190773969939624683434607737594582525361776374569684373118616237530501232622479183223436411501922032006987114442732188999529746303680649147801145034077018409234278440465050150199752082497517878826497705848653617036857638576201072595161110933042930259886945674897160492179097923626377691573623689492725803791412853293272064891019976449378601210229819653569577678757093650686951817294078167412805620686331642364484365224868644762350927285733274684970285980658611762502494897232974148953082559148023629374922904829718470468949601915906833686767639819317240668249535957922200015125271973527508815449073415563877268548211216258894137584572392992819945962783212950004368594202568443540135286879995739777364311819918050258120762524484922916311210473479962058277510071154277358712965362280730604664550233262899667240034436943507022325889242461295804209734426651330018631590986026106657772787821334231158319563801075095549738574386607630421860148995255864640721002318033818673629139487124768338955792804286333656983167502404602515772619081834256126623412958412718858032717667368069335206642029570977046053310151703869229327606792178747767323686400570967432557407941182440152014089633543124919428719287892824975309740919739414041987279775899212755437654935939221795328872074102824482454090819183245739122921695220991247779423434396386873918501184308571613057374460464937360983499517617382513143094950434375575289639954824921352279529960982128333859155882540460018463134005142771089498896907692620589683615509732333817132782344267072374825533262969131068252636215746658346961544215652994553238549002843871858278875857949768719501911849681662163652278551276239855533238205893789206731696580941165988395048437612342107364147469986106621766501529609029403975393842354921918066229664494860620643030505007754129847206098280503416408516930652636559614841681218381332475722834905762633968986913284398242364055850201971258254926832059411499405248063973184928861714086214063363121447040443213886660953893204716434781479323026502165932029662164916744902476074618649586237180038176386007246753236019757286809031235270931991160682719321180667205247731134372906532699370099854075708984063766311231523155280453220274496478895999297382920637251058656725057343650180183130528633044233132399467346378574931571240776569804596134645495804252014334891325672104686138072501471785005530393478072423494672924936193278282397422316759817955284595786140578434167250012820281103200029987669692752355372853401540378188669556758847597427048258103300344230527606225908927958317833635397191049933263537884842524291137997297519915797516825593703521339553643048908093756711109954624990453733332171528932283214507421024204208035285916534617255715823725624526254419415963906888046982730161583566414539521804009213381668329088312202117861469690959712339247860428802799600456975239906889992237250085515124695001730095321964498602947647693828444191355100178421398852672745224941868286288503151530489985939828957784334340426810035069836725456125601242885825967948654711648821285201374860257623297200995887111424577856848899830781162183951788410286954605550788019332691519272710580459138974091670510071364552417063860050332112869474663932769942488219941590394961048838854831371116932562756605633233043773943246854784055234982356197223362857632165117172388268929020219346124921449324139095877269470154602688139057134276394875942877181775386549958335235610088445353414082833493301353864749422671054488469008952368078603995641371856803782394052955614723219643626852872082067853741799614862073776097580603494858430393361874338295988600405010161492164846411508564496294384325573061733918479224799203739888762122325470494687218694052191782067063201377353056596253900605426746026633109490927734394095895884004266105793355081389959477439545133538523990928948956821918797010067526045458477202905372508639634083299314888987260348449524546010570499505542545951493146499168092365052283993061694399952810743623193403004920778105061843422425608104795651454297106930210838022292691010372382690396985364413443428029942738700180349572761154432444886579939881629742377644979859910449302942591456798820333984168156904299239041161646270942980349697000212967297641125710922455578133460850244742066266906284004008824559602979246011599187134297480844665600219354955576859993689941207282800913301293214596178881345138572301505309249265414377259382746881985537186401208866515144691392638382130184446307276593675097777415937672726743580440588161227086586852062843220869996187500434605289156514887674021673223338035401336154018288676735869201258238577729777073147333656230370736478028843907706208262101007207165471077933616296701915759138360959482087323357095426245606843974630619819818530809865154564939700781833861719068775779146707098204079722546376324904242089940736746273113474282604833474872499109556101534998272128066567778924250681641593320777127122953085339694986492617299809994491112014326482454842648459308218121433691409879291981199060227674999492041923836136908608982246496941555539990623988102527452744333961674872452303013825854323707937886599315611778463272792943608292241783011409916097450556344034412164625505975027236615844655557421708885038307276440619537371691068348504885964280653654603184982037971218816252659654995637266365397566254240406076274656926293569971217253197712312016676004956399744490749232968429125568163980555973465706468466008519251016452366941136753514019632419356831123718657703272013083006239207698381069196961021894728782838331089953082741443716051719836825597660429818352932975780635868764043023956641923283130208563769637412590218763737186167132943992976936230698707414880609814077722856907780610725421679945789744979681737607140881964727304929837109432176057587919672089025678921013031833170800888980545289845425838928454789364582174314533555726010268905063886751258154897668992434569744257498341258835077005221424301471625704964327330125659559942992056476826533798321402639229152856248361070913578173233512245550131851841122647575473609027302618629797901430966721323780655363615336720677059330553435790156844437131230671965833089206379102999320886883702865439059642424578896361300747811000782603521852064937124465201095003740100675099197406219355831441808172905903413967612150294098889336779851016791145187689516176960191874495774626558092956432255846864170572066254842997276750449805189550735150284546605356046841310228612201696466524805887197189041304758096111601293380788876001682265243241413747039689852501784175169949881780854446705311147333060764582386977881417680271546457132435331065275993275817510731177652523899584417487386852627111024340919369476725405408133134392256834532177137124602921773876151722961546572811972805210606414830323268053801565932027509775066356269388940989964268187310048352050803171206761792181879988558817355782754074948802832245380434576152996488108471080306262623086833261240598919997128739663333859065967114585425681317490700982185516564914420828915063669246562961028390588806407304435332994059417729134529446746455638520649435647265108871308661306313159350531739877384715656524793921743750213170521440995910585103762282436084991204498194120671242826771404994104764907942005025744964530651710149663940292930465567462276635065001727827229927149504130753292989858557655340562830726832546945109696107388717168484032161438205309415457351962044396655386957182111584338301425530845598645219759853819985370776066009291005200773175938856397276003338055537926926381723417487489297849889955716460690725881711594390774827311486416270313426572520189043493680738305962171372945261484364499600573690571781604435392655325856575821941625105569541981587914296749548776515849486580157109487549721944774409168734316540429209851306632412363231650609846535574604064474126886005338959050512805618936709268202427310888879899749816132057182786147681905100670079102058916153566521342182460426974020479502463247013147941888046272441227374449660156636795044364412934010664649743282857213286699956328964661066279036914378019190915800707696731185041598996819413064232202985842999528567553597093031135930880593165338108469800001808517318522335681918317656643466261108514210570936181023113893587698773868728229845334902177391453544521594717494719917997230504802683209936595949367537555506941092494664750750033977030996837220707426057430885255273340579267552469695827032463013821127079954542010840997112374713010156472689366879421007749324516804310466282925951276444388043632097339715043229023561886468215217008139491639260046118299004032797678417588803091588356525199828864667962649252385927810808209662892331511675080338527625896327238798794853143049935395064210683047336712882214965276544040498150115237456508307085198594433837300009017986273124731694583716393240263150525553642431833275884612265540537716999936771833323671328494066311990790257751118639958028574328596440364923656738371422649822588429103257076658768130270042766310123240146562334389390285330483215033468684257119094055539451033833036964684643322693993357507920434458917631019279869990329590302973025379845302511796854707592174605125885288695278813284089045667346535056929839136628942577749601463290148788777277389734630876531493693245294015384800181810671169999879930860314597532526331064780549901424349321346243288137915229955856339216100044716149695523068634907511695171138021874207301935794770886697178071743897244251471497560505673527163750024884471685358851870993388205864194531754700210207980894731300340740789993871532552762046061426849762125005350232678914720793880902243455744771360550362754969191050276605602596976798633602947689626840439145171707200465508463622693817122723450406001115792068870483128389884826475644566783723334371186295649649234178644492165551085016314444627526329199577824620766537757013841623276123437414391854492591191174381564349320740360044849463583987363115785921065764037655915883007369955611423398546352094524208230501552090258814025642097417068368226860113809088867929661615969704408850844764471718894435758423448963829332556673655296268830948713979273485641628765449314679774781712681944156397785381998116223128821039943200519803452686704348368029764556062024877240327189354998157157988380056279063035532277553274217086583002746853893134047270701725941346512832931190311816044209017132824068555718371417638878171355176892079995130787881090150589669678157954394417918912873754542465782566304829437759677371691573791083972539094650069668895853368726401785938269864479062224084709273115255699166142003664102378074477490091194487369976350185451138279449322376401782622233992791920147680113233048291313673385058706092235512622161547032167797944518169315228302060975642929881044731965084882766894947947909051219495719935500096850421074924965659634493091812140117425736229498636355444280341723455551559649799555316562726878811379153988862700179550339715987788741650424381801731969047389138375628558710811898609210769813763512128077429459277063568452859758211509840022091082674655351748814761594790306652440347136121630023122395670271162042713278417607513190770086575810643576937826998162245000527636884220945449517440594606648716473390017486883106742630183709075503928557343254715688981479304733778987732564635719280044600035738126361836694600584912171501797408486520356113523232461931892174538997094612880198908191958011730525329492736890643387658736267753982515502908622380981619147048537565095897292636861671803317190113681837956576667940446290416089991957596755743065135352449896402472374199419619990764806047897249331261307043623956324595096244727476626092803452135331721787493032656104056966108838014107777274733850255049419491879502519192452451916396564751816865229490710329184979767926564245161823719872508496878291311834821729385436227363900273690937359054760113550856937797626662514514344911520318312815408121045189490354204698873299121937868689922382237620050876516055404174788692666627394378853454737549562667403893928619623454183136378641011841345253222968259997875409741186437289063093442065728385687712351438199052029484194513138692491516365556717782823968439681654678792940471760147682108254315773151826887192090934965860511875206941129723082273230481024511349341482340365562092825116267805074031861076020718087060621249127973614769565851618081088703670840981873906048637630715860073033591206669091459783320059408651373347706218732442679213993181801755784284123872688916362945189448314917807124268723967452389351573259708092139103627610662573574584548842411442919057034895108887149786073762421959487484854590660069756312971044591190259007299607056316537285195868340786792839541155067057089543797360459229557692124801246517610111218897285972680838956589315739214673631412753594528380384908512088774225415659612576599837474286590854505261037072374726469498294550808300417847988678314484230467111603127588673012005726274856533495097234791621574394704937644819714459132586777150776491627554999487371506179708561742387387605734588941939830448940968303854590763575642512292051353220982781138162324443170461162414288533313949707534733902420312309218897909687798025282844754379413839696951622894619988228845855295711135528227868862450655055220596696721129716373540288968060009107862855705660248565556378898890591348349772156481685878883345321149914623906834135901018883281919769028448323380263556606527005800715595155373439708447128077516357568640819164193023126466506588364465123473753425236652966255026851045273337804485735225309103360915697534151456492859868926918174324399405698900207707934787221605378456952789710722556942631693901551806990213149553208947356479603327511077117769073991180925891897448736811003328319330173235973945983099354348212518706703713459055326363848363740776610616082918487421278630219487914431668826489854043886151539697233414403158760034217118211906918221704141606651471054672515105900787639065553746190072684233470208372911997189457270764412779887163605154899008599529497747018509746382742824614302390542881418631728988950385769816029477504701117762958133415948255546497873516354109807062069108500924379558810646794719799879007621499562846985279661625395838843781176144083359760450886226993901166617983564464723482167144771502906528360178897534437778463271644258283280506673440289633065570850482077849253130246181881227717221226852381404855892857689183832089588631530564476701690220808589294588301108064158506953265631501392418602262098083643462412120316509742554560648941924524720980572647988779870880404798583236417128031615553866815022860451060631350308115780353860929060947231809850794193272345427831956045513426892761817723906815923523086865978245408810424205948157646284139170243795648863270887819350026683006364042107606216424481161543868651698286991783822279185106980448247087945673016676782707242647880739637943285761786766199546663523422583033742128356663341829024493598262180245034437440788011183395082111732209424609464215077295201580053835756759078406862468638773971534362090344071879696111877683372389125776347632376551311436778162725666963024188799894602607766552453863640274864873368925942013450401629464650815610949750628935751362492193743990814714561343147538763996923207544116007178579066168944997356272530738742717867845044856164915484042400280829341441270375036270145929237687283909926658352214815600674362737462364964118702118470589003996939266309387951051664872579656970557246327777321208009365860486096141735239066068499193615307476355067227108038469033473275496268937039748721658129596818382667829328785620837752982986053259346687619656816805595786738317916034619651873738504005749407634058457058754254617111932985253114059552565605101942214441458101830029819767515088683782733648811642924526096167596322012511678285545594064236911464160707684852356683250541199220866465585025682688229185739402263931919672087421379878259573019398065098119142954206618277720138626885159628141859372936666877577593964222590486267443819523248745519774487034127110252047801117946876996281673239947667964837784731066465252757451691195670927441181142933532747322318493137709213533417172740778830331478015766288079430817398341666599445415281491140678563577083029190965891997693465263520541721267066906226669073429287391131349712537060111061238878025417273172121948862819410178731218790859431677530875573811044827644178201514018390045185966180614189387534440754317296417727998470320053045839078195522556285940709801561942804690873980797930587773376244907230226411203560761396861257644769416243901778574650399802442618548609906352331269372475813174019108375587971435264086568476483601698070503077309817573706062683758426361946424074874658446143798145246947947257486898987132804809023408818148890236426398235702321167701332928132632986328923753862622943536243592523646647721680049544756477753568761351663476527176407192413560747664384426816101669044234130314831799659051155693055842456696382692427235211583880544850691948500601585882838579752955823231396935484496121557264696285808564454059393596239901059557912355561270814456260292186854795763090665621621464946541697770203650885334237468850056229774614080334976748804747294134711531096607500887633101213353759942435914818877022086386054592658309023515383349445288379356480301519702471005574584103099305378363251461599548869800353193846623842373594622462597129142724733899865380172255974197419388287698591040918089614223091071598052637842453032650047346097324638206038605133983373474003150820543333990187239197260394794963028526200819308691980835981491929353450341765664294195227597647758051015940549457767492153115243467054230948662494792979603488315830870578781187933246332587707982898084875259779503542503515960138480012166572357930911606393565959356484052825492665365854928970206851110683864922709477600976179631758577451577547586565783876629928340864423704450487674052355294435269275094607150879403104763449616231808068512107291592884490285487829640199903888216722335153522738675783388127344153016329154825269217315691355216279182235906084304389380283893579830845600716583717969178764534003965401793615729193144698772784417690370729817845364737546239970799427032805790377412543539695001536627859445312062476210406617334854711471494476691165602946941991868431539959997288979398537587595318515588408336535734117293808929985377255971622999657480972806087631855498447838198173239098417161364400149566543104022052147393709358226672755310127685637805128823821797505780477031309578697033207147638828520796374914140601933149588217738704694778549052446748379285630745207768747909946025396952192570694486586429345910065407472793836402015424797877434043082578280178739223051437441957861063206299765966410852744740308949632899861049310951617095420542877238086508878013937822147363448135902545457316361728075678921244490483066833025829633147183387161250045944454043094902182510779550158538997311027925085583161236496379686544321806913587090106467865329659895616324904120748811868071501770962031351665215094619810848287628795354146143842795768637925209220551280085254339392468971790219435108298232360497006004330589093007582096133882029901512555654335486961662377552050220182629495685508786970887441112226843346449099768730674129036519345572992747985753659472535352050618569150336141385792413415317414235359264547310074125549625391581620187451314561011525410404465141017233812095922567354492995137060241123921322192471377268998564777897969883689675908835359374694835484356781227682790871056487932380847540207724434492772659643430986092971886119623843125886874169822445848898840842629897128010586406687559953591497658072610121844833634819375250675415820730025419744558866667800282703459286201534905598548713092041559720520180018793853393998662754323466256474794523137888072827674226172256245019696080417685908316735057618970772313026035013896409146887401107584713358228900268673194777369429627474629097369007013607272484729747869764777845365448086869724975663575486920798816394882849208195411649364538251259840522817980967847931430601985218642468453602440926540379516400322018584544959030197558300928324804687642730158240375219355423880975521116259771317384787731599832065763323213126282239795094702300948961879287475735862163389543659491697726365455417967633436789630172829888513968095964233293053421296625412757411742229260325182318017699399063247252717868742502840290305785674622077649678373402994212444004360700652578220361776238479115901483860068566707567931248440534876672279896579719741462808002821643106427057499648605028953114845902310783474714290788506677368130621023869390517571863125105605308918323753604195572612727055304586044902607337476000809831120067674917440723451860271442172736229637190772954818633522070100204021043470133823851640363036463052127204504133589749155018294696509891898447554421565104596376265296072802044354270884653516957100465259008214767164071091127395802687729203179764945567042387069495322357683108823446862628881402141280884872736113814304756043238497538975088879003122699952037107401806501523594271469615906531208669089977467662607669930145887214276820034614567977998456740640485698180236787640281256738265512625574815266780824695609130144871387438117493103406448647016597143236457800907751727756993128995117168488339461322038093070156039639402924146043578190137710913010733461242920927518090017050176115051623390541698190425929284401047973687959727676709549818103981392574841281714491830565772252237954239010308854768941146530382295901711717112215196564297093122907606803984493842021657430671052205237670622837242157920889476162787763332500089859814401482758351501523179559033825903183381776280663204011506400998619613411796190255710693484292168361733632677854327595158470097666719608565643880029267479914222077652873170109751696661177082380201022755571134952290780810515541313985392954264949623498220958571894816897898084423639642331944805837610134801860860337612205284909510199644017638370359548545068316149696856528446709424275316628255448355669667195488086239425762760858095474043809094998750344466314020400639061831373180612892165748108591122786454200146739559151375533082148905696647580238511846627642252085854807481866349277462863677932827803422673437433231028861024948328955766066083538720363352436176471705222731548995605609390201547436579119722317781650902618018671397635124218572324852768701481217578280053913725144438437290200550617983614180790766850848275653253479183833817776003680261163685606833074086770134165658653405434146563590169624549799645711061493013775073196178386134556399126318744562597525766814796081456238521484374321089730299317602635392439462194909505546981182746195256420309942020955241460378640195268315315349513021218433795852414274707485721535122574209004806089282253803922832437577520923450129603651747338882523205960462092210268225734970999760690911753654391047278421298864749017890606258031468304840891556168201422748201065091558302368676144214821174943599995084808894580214510361630752912607869974844521193255974621889846948907424163405507657958215339811135198479988284215032948522277775673379935478582997964487751238224833121158036420944511438377699529665375503517225985630993778699066978379218312793567434737886023398161815879208709334435956341266703378877441809470659653515198208794450054440434335434036124303795229271064659928123632916881766641730694582325124468715981264016454672235677178455589424191369546633267295357800803646983939907091330263177093353270564450269533763665979141077800723135917064565310044518228880651783940515448119055474614627261235587443972636362162743880427219992804485088130554525325362046257518478753174142165267381122429755925002199127951321662190108856178245753479561544522571315226766117192977424056417173424648251488836141704797484322253898944162996626329641234621325304949214484815909740654171092149906078741389498586572050844697020124401645215208965760976479995703379993309211763833171188682705373631436809591273260012978880099214947697048847173161924272822972331795820879792830524397949350054462755400585701306532371580990845674345995474340754782349070625556097116813718966318707976240530667986790169686960977377145332113807510936224639339106077385963480443389877455986682941112479690358609010429867698212690170274931542344127164868531588493915201343562108107598475851600660250050338673249873895263897785450554698558230019557881051751334837219858486399570938791452227484949697597419651400250425486900050229299528047722328462063017809906464345997714756138493057020569436652064181856276755325846636951372193273742644929275103430183104643509537024239655010419451130090702492527840607021653186760102258445574420657374767278507958826208955437955594730587958489417351683333898108137926839151057053240031962049165896990585061786019741100575478156028130342431955091981937163602872334872199376159246838315888688050491086241470963027312761242303977899080972590308830055332937347404950667274665835056512288666927284128951009207440713705577915865837691462127101934769418751862166039293181499066212298844158814016184906211664451499082071285993776512711796787196224779507848099188418189579355144383581844007319669429133829881216506474908217827382445430439858505278171728673996833220503809814301639538048501755077571633505666402648947293517215498422304815125921391973160291696119839780171155482535390917438379883379148844965612532034062443705615689704022510547353827948388259435599128529399437588305302492154630459819460993027939682103695332858293038164142430029804457091511030947268308555974942768859549907661700623247994005207130101406347807864321041940086888938789669541198124315301170091675897221755050903210463544230935731196524824409437600660047866048334622326550982895178597828902364529286258420068077483355799487970041813634962881158922175327601421394408596855831606176796977667352490220149464767503079697880575340225391210008764783092307814446506837430104662997850935143606697008210641574059354062218591730052047973800552178573229924510670336143549373255712916271608508253035267870327094632455202257312647755611616537181854299317026253486693667728502102688524350478046412924649239980213707368131933046425653079624996326608357397862433170636963633554690714928365637058150607784909573538347617137993994678374830794327121120287299315558254002581970502343057871008666307951717949594700302193024250643488366563925600543639224746309747640134418337193748113557531719351718580542276547016683303595862722854153831225162472031155460279854261812402173927300888254479789750920464752505755943234368360935549330126647044904342896429225568178314510939932223806048672446497626430025144000981238499775806631605371361967865708236963259216009881858982171907172574631313899013060771069127876753120502348410111161260919828856561465551066043165156800475817132603416590002696713976640871598462082318475799418275829678657766698764762948797011806031041941788249736987060762100980281470982998257321535449794866528807103720263047163844924825198664078357948789663784704596829884466946602698632649989336214105313836287225825526447538574601006116102586770847744173649439657589677236567541448734509697710899235057947875210308916817060312335819424974297899546491424634370481787238075030860308278059248759852612958028618543851287408893052349312732697723808993802696954965956929946620664289453129803226790522766673829998518412951479437714329975244152753797399479550767761302049713023244213789011486901398799259060270637622992475085279242543091223192878961763257828724160303986885909315036449587430609424820212788434972144148802584594442367750587723043972257545331400097309445893916186260214775430203373559183774736295334979346508138206594646208771926772309005743624424696529958401931359847746436092864532605177319424963331305198801576655697101311703985930931792827665732671904342324249884311103273080467737773103823590898735886734654193870030417479946817257070551421963844160599797256385257229391196239297669459086518936592727471662306697501937163349678550269458972849664886787269106210229087012320413735745533024949196239649845548441353943615976219352990270106087090666851518080310899442285605024058288605599153505884718191298128672632740167806092181833594738517362129820241556948622642869718845374649703024611489866112231770241236111845403289088387082175693372398542021480177912345001748401644626056377156667158493399588148647225969536709373987892515985860089406213587553827943711816183563890788128067393137684107883424820272277675950673959089816961381104566164981595340035688268136450149596446601566122486599827543574701821609416565641591156053108731568599883838309328962896286850336323481046034030141663283265117758183654465695506958327140258681345233694173287474282377421774613021120765081106688885536392082730837671387738064266363937453082145752912546097812753561350249323468267981984995834960930014929572975203025620036960068528209027267389678319857358925922658571273600308757759557944111401207930098202949461881922015775349531094394214334705996089240776616772872260924684070065658866751868761846148041679376385894778532374197870084024316242665128369836711789497834513312833299617651391191644119931670458365864194518466763948760815187007899355397390971156800005816511515355609208490615619342756742663325778070005959291256026266307071184238150014718045567797733396679958215718493285199424850316277364585435659199185407815216152034894654477758859052317780147601599439837511257871332034420146394592953088929963390851326849129056875516990970112936255071786904598657847115996031122610952560291243679846751218544879167101504048088587750891129141500211091078719711546922758869905007602076540075783225485333281693736829600433682559140621304394761463163527934409625228673881721123585909358772749830914034221603291317758466427405895939276693802230438957782335696526489269187442085607404685072526695469406576430079598300338838846853399986797010818233638588826411003131058628743050892994744089718031813698373950193782527570849249692510782883719274880352816825211689575237248988411007850174022688799929012399993742131062748248800651369558009270108589691402873236196780011804487586094706351927394507702431493426931060601639370271586678502066133767249609375605024562361960052027258332212213086335723864622707908459929751209489952309727349762986518811981085746217296920935360334265224181473856206335790686922587437352483487108278653802606351850968910252493970421939934070185227874131958450171575730513068125477057755685005048895132885535758805417576822959223736912650992407751925287627770696565313408160073079648282135594734702425650608700061507264447848147022248441448447841175382149348440004433055716282433568481485261473328225716266572941247380018011815915046731253959609068912117051632434813190915565130342615833020754093746689557137864847706888808552178163976490528703034983393393778345850782050346272223652357867897024286130750234396984468818415479811267486193138601171866168771510788261156336787883468620305026586277274802913540187666133841153660444465183937936297456343079935519710607317361672315081884728872920940573752389309491900259365823800269577846909052181200391128034439280352259704058684299507489225060570034394536434970752206101393065655707047127382939705758358126744877509567767641926065380166549791282739918721695932198035899952067809300579758147555026363218698954604619905546780756885767009632180715018386984269394315483101672032925552198559233749548957641639792223341037841020507706501125765840144555178175561719212795985005578010450883629444380402228661798946525586055567037150021869174908906194280389009442260617818547632343751332908320015515062876951116392878392930116970854058730862791919532792836665800370741906700518688388497769656450967634444201851950921350559471551383332594356755094973388843930552483617481619452737950890475249012276282867767067412449390358656043188514320984684176548884598878661396835988197873895152569451611277053328339200704865995717147290875309582235330166936433191432877353624042178719668863715341423143268555452610555209105986759520541341303817803884298235367263489841335944633490120567860232217764074521317958102819448798859543360545753102012080643525924749974007686765133619655441355699640305422837572317575005739140493871332121868047966321330807890359513260110559308636292245425602503140909883499059817489683741311504444448452669981235068692913004872826573146549704448318907076776179584153831615018766140981336097661394569909013121067035983964615753906822963889582778442908683371818676572963541220015724957788275140573308720806398235277734378702889491390940600810342887481506269564628061499980676658177510502658408810010215499726278124955052556285148795209208271937905009855490785120603322706061377623939243885442407706462230370325222834465500828892855605305471094325139045947042057149208868762257402873752547501103780488787957433602028330039529791536649106598770300442327011250423732969903307394242736894765932563696556623000755388681215465709806564536168037203728230025503755639996098482784032873451199936026428463476409754250939969913864468090772527207534426863020410357777120387474820674248267145295928765895764207953289137015427860253597461127946466483628155342116477102903101860393854702570501637762903414614882782255231591695430895842850489143334803671396307698857572463809591964641867291362385018134956954878583832555589238371196855965557710175603868632122843780646617646469549963002839791766546371698310244693891440963778133605892393264054905473658016055937152584543560961976983872307055280074766410267933808105750701496910186391543447379776429736837405580798767667306499504552563553486708043549112450980087674560183878307287539887802312201006045028930855852435211132155304845276007415968407378177583056202281603824079243640999050263709807979629128591181712612514272286315308627228307582894303784830171257281512827327457166682381683031483807079974163700856552013475087699037505652891057248836774055566096446885459642429987550582414410477562062079830260588934399279029927052400112347087423931265743470459988556239363893092749200091322301442964920272704741802600161452680884360486467394654711690362725509473438800641387866091461967288584461798169863462965239208793514498420627389531912038703132347563960880962342702238738664657932425014779256453304073392794044605555232909157873901948790884560579670315865805443781273920872817048549570836897696372589628420715696887557969854393315926696393993413546303624534177976076688177428812744693127654332121072254439763653828852058602515228195666689831189163101987924173578115483098287514709331596984960031915993637789887771563347411713810111790123681464815887569413433144168186422039897007770042295600955828639536975548481781379495708373212400809512251548210147068561686829613935786601188172035045313548563340690404883384040464607306363324681820802822496425701039742662153702463194960060703654174706009291486145627495788164887597794201286118574147377071480393814065477037045559106586048664258682716253473585570255803885103745714595726989809694022915859428516084925995209524206211621316176564728254475632209713306005892683761160931671601003643670815933167298147263314475128253966918607959979884832304611105952776665495686804874092850478952731753505603254257880155362774975508636795151040366751437585469431890769461165594420873511787475928441068318927184206467900416116255387526492629988432010044769803273098351412499015750803185497329224883663574338275259953346158713307410071921594591768027653427756129265677661576178911734771671582246215112614623753144140437595878348978246639819228578375774347572327605460404542768585575199236436449022861702655212389670229333177174296547207768807724358027857158820315163718574365799717207113358584940100167297904042721261775643868525110747458000209346149688626881664994502596369940480909385137485988683862570969455310218699678087187978263174912469799229243094197308083494263283114389940422224942803511882542124886602755573567789720250006145329887105801606106978914978783485445362009021469721259549137059964101967779713559899641074762465046800420891063918679844060821685762133552852404324803801035387094672267267768162328408601911934094746996416296016562260712719955220207954805674596525707409106919369310673250505304014938721431798036820952023454615859786408411381077714195697611290551897555224570469692591667648693367393998952462322760165684222537708029970273756037963659402096142482160114483609292545452836853435666279339171830199485298380192025855224862172778069968251855527597578980485122733641269383204953206419380233235177641743574925512425202572341773247330023234064035574672392327641064799393315680571795037313637093270588834588289836499506216354685131772726710268068474896378343736613964262213485677684504307562617626075240386258912543004442643081854736291871022872256030052736244934622808835090596542782952516502935814460982663617695665871399622237883694857371979323341544786001096202190156927529812789943054731490832236120992698318160395770553598754885034994389266018306323285383051332471157721004478285226059463463874707908369273008267331955045084458395424138663981890464138357121579697527308235129267843355873408650441601352683961294816798564440759349048176322796336771831943257738978184590428391301547027670528020873885393306173422745622048474129470748979573588946020521100624377262052353142518737941079829271417134620151349146585856760457202371381764104718346143816030442042563376260281897334040169235008665002133551768111298923458584764525545204773832344627209741744139888414881546064992106171636179754211673217150486452847729285707257863356693443413718508187771554757522595105902024580954731587572928801415714617509233364710301425668687259014490901254605188996971681574539024618417456404707485987485049499849141755108916789614365395241631586147194300170071171698463238895090519621893648918899049211178856023374499390579027493710056051785133395748041868333803895910751309185859128424030563585401863020371409674251793035360302539561671267680393658869045015401169189548034515299920176573333521486108494947414397769688255485204595245162118342776311967174168994852438813619427391745369825569168307584075736774496339859396893994889233143934257355128854742910571165535872797242995126867941468260555912964042750167423163807647733286689979946985991922564477598002477759236860441350038435684446853576204124816913389070485759752617289523289372934044258800670404791965172402284345044644984614844683889295051548153641851160148997359430018317470620018547433008687675562333055671326258198375958257834452157846255990997152907874966274656772097041211147513694899952861675819778612006631943563846482059456078025236954606531047099987359176223723955481626599402683286463346787637688395300585788286582194156538659540029830543930973160905696657865914519402436882653233971421310845115364743626337999367367902193424738933174284607817124720498230891152893532135160356889010441484438715005419093067114162835024849302194723476812583380969203762877056632972851998838624387950488252280554571662467431598027347973564325549672272110857195948632755213289343685727352351198681163150602414962208858921846038430264151158021162296039124950296959160178702897194503470166628456457321472770260159113411038226236287529815589243340293181075636249181402409468305897407309491860610891299323442486112093478615513509349831464614817599104227383826561526748616033274636889538047374244913830980774066406148015163079446672055306021813727516378421080105870893765130771404276315630154141006254889639563524547618068813254173620533707145665528335498937336646611177605177524304769318565774221256949626625380117052960923387813641032631968567296144344572398400625869441786827736200671250639379060157059906529172404883270395494694365466245259862916378982062464230970207400195409779452974734767840309196215579518094058719857609667218988770874541425678254895389840082489586003386116629245199858284464455551698704838398999879075506999099623369505983811647791413489171350855574464681350198965044301759436977337616105461313938692280800652775631938690324184544009496715282286891216684396664251145049493023006968813438944271330782207610554129315205723339583549520885210226470128556880524990938613290625259968088988032088737517022177455780050015239170654833645144469701149785740030684371586546220118915021271637554086711572391793386037320581650333656706510504574320510203506272867382897406514936824941786057339684995204560869589994378742623207580827123471052465804116127109545690786813565739325638493335644015670480426141216905852079547143052017796094267077948540515700987341412775165910165141358562329686667300606780927328901685642833692430886472627809606396987670295491325527676877898931871612275381678907323001339101906981018897222274960671155029737113183890368316419651300080877551953336563993997718442050657695345395132128924642499306422884235186119282190091167083639074005544355342289412929106222429256563411433575713949253971974804254352081543813883754042477816131800642251481534427159194765660176452262692514202579408360554819451906625559477809570812083529000224118913281612806072298218347182655038136337657988762630357650356865997584858110008701205582658474406354090354116312314329430318926135186239064175716161254429597300787781169175481929598326020035598631835288700838537824142692708390221754109858569116432862617174983573524205307227149796965783354172081027869930007309650509964211832877635942109744089939644408672219050184105363492050702716526299535769306789825287712508291932693940451285107297003446237045308668865908708218085924974749478556215037567163047770136439487091264534492299663996124005255035944792221759835911455703432370218500481841883854536430905476594404133472158545861215560265589498260424901815745265327864353684524594939023048267595706006417889377867298880963133535751929174347750205130805102407402645078476538916693241876991356833197001040184567363383388664629150731661343578088891931172808176295312260799387201841443641538092567682558438433622234906719338702118773286142742679569663160817613595905909742274234468507214474567882683312684074316041115421884827634999373749903391041281485480243806468316324276609697986116599311508253162240211784309433980223527385375537325748643573295969519683756708716589546481711949502947580863743811736125101863522608631102203653136611040934350281404212491328827030853234658065181243527740810694241089220002198131439689573020715186451265877509101591010377083592346187835423203424361752014545358395865269202650754990443658581247566496021676835129280320426584324074050233919914108171834428433050582749006575301403574885358443116580934469610231422192691819686738266394644585453051434757080439250191348057730822794649048363356288967084554192099768415762730885836054984227304313100531803863101974013771977257009684134374152719251820305272117285736058821766860134921075155781607893313583364007647486853043225934907289318963077636162879654148623157036123025411138173248866702017643757712502951235026931614500632122025418433806914389969308178124955106738964485904088957660175622257147136229675332757821657845890010223698734299885391653326424210241988487842964842930396808511221369971821772692615058765835057173239635880209312469182250619565931896110565583881110463559791722697452877630125820377115970433075756164432815689435286901274777522524449135092150693587030331867407064728260532905219690926113140469697860877970658427843469950583081497530514953349023493623786772294591950058431909766958692563788541953435669270197808882034021912801512951966267291377026245802444712535863213540637507581956724104670895205238989558599363694946147802982235433633421716276141135598475868373665801835181419028420387736809198667804655279318743136703460809280517068472578172239647032569968882409237575049147435988416097440644308173330485237376104159222310528930479617322539310247608697243308925896555799699070943574472260263356930303179868735758820157040986326610294024030991145094186885455140812385124062735927416514991907356171413108185029516480730614324615925867445229914766882729875743753909116051308228255192860589383234128228800377003326179038011874435906135805020257440936629479319686828875341287402094126409139200660824774813270822135956950456119549435983068622527055241550839405125674944606052206331702060661845317403394283320025630212855659783627932540574165352477559606849347811655808576183048774188850927270000815244378208150169719738252254492310890294107380192577955706211323563454901182147965249954478423326905461098514442019717784444912893883954067109236399834502993718887018147804916788480475373295464991232237218710136813874092687550272518792448315897293822423277435248366951353766244659126695865176697566943775679109742422381286410408585623511523376874517244924756701350733575999796446120084025314946182270564680398801633219468650789278534911164802539026526518188951045883698381298046741457031888320288244625340117246926600910674162909820195837031676261685248172010082239291675559608296057596925280410574018136920941298740330923751651256375530513472626196788015162837365870033190584509939699059736105002664593500136910663674520835640192511230079668002713056578226420342126524425137351928334513277856403657182899661153724757480829018324184562067409536174327412904066755279550620536805302858164172387402717851965345251891974465627934275294293254372526825401876389502204413845870479298028967886923551238421985735256023096626979982323337567985810474005250312184471639940848915160480080580504357194585816674458787491393488261914503247089834198753124551236557297960011666470449189664157639974817489469296443253079577349085053308110585281747752358511694817147353754614910865979563471640475394655020722807597064802179254428926286415646051825863145992597001009304334774189448138650463279296159426108549914298893938092088598599815881854320733248776734217902533414222483230985209510925132384234572300687916859602458157320404037363011316021664563007876200000877296548236629360054793871293951429387249653612680285396282764441559309687629422467257765426952933523459774044247578155053668117517543651531655915279678523102646588877928642916492565655281104330187128341601308401841740561523947836125827041859839609611030191876733604472220733116664140432637933063945738679445048320042630216674102606052480511647353218359155771537506924381504042607706486307476477087139243978785698974197676390959911672152902990752386511744644670833170580018272251198197952332972950926081758163017467756427890615650887713572313190342796701312411114084284707181524535686385414532690661871794010819676323831142022411141185223197948265985737742457288218755075396716209699782470117989805276549586733790553659968122464164292300622568502092424013732169036156026900441601678144231071268810044954840635675674237770436539881610843657669696155641035398432696117987627760430950222988166987084665816056382688627729194618903398248747461217911152525988198422228803162519423699286115907668187960254825475788014761747663873566606822445620406459162180253870340213615845346524919180813348294302964230468587202389812170995572469628916778279839384346942199133747810906931380355893488619262118331486582307767656332876844615401630756819868517001306369934435138490337098487665954212951796891019345538035125845100709776584189114197590815891952987233112678441527270230789126735494008760855122700482951172803731637135989852067065830680395976862023295824464379995446508143626722850747519147309134814093122325370803268888580655425302216150844326109895391109897866989095349805994238013620877965409187663180395370199193721778371830854771902245504971978707117816628781295461053537445544435921425823318962140068478742825414651241179186486452241384386529864935823850981543910395702492169015147417424124210271683758796484454738367273653518249142696553285844708650203234073500459624546063624178011214951492833325909222122346475538613066849621715590720989109279238811879640047844158832632242664349510951470735571001361644080526608317441862110262705530513481502681415383541599121046809338617314815255632676888798939073952425985358710041012228096148864760117167813869328094955448347955577418523311089895247686422977001874542612290704298837618703711993382195506587793421014454736737570368249735049480443621527327801364524553541662020119694030922970091555065691489388653589157850054274394182015805663291151148594623148387232087064937913704925613568861785221670263023063891956136884449907442067415827772838724631014969092513282274501973124372194424990062917639777325453767882790776651020916964785840009617625348951220889127317390893561097272033140899608023690765366330400862639400378688803697623419362649261442273308438905023717179031271406607424546841517511441641926169942275719682451853114870768764639305109273983222289242040940171671606151095353327013377346036302437674648562107301746662483943802384313300104335791148108508253468831774917931747597471531823649287953845228593958183050499974909016479213601807901758413057885287544202367075282718950701107660007465758749306471863729865334592899549474591150030870308253823606565391232782214681383973821620795474591409316552774802827256216237931262096676615934100938464499076822004998650311134536342463456562931880716675028410740403430248668313796270771449227275488813279664831814861660871720486561108527712234298740104906882383704470897629144049161649359887159729330731353256896936020418548226044089495318780566967134813885196967001909337672711384809421354565392750210533008458969259868602043680788112424038845596720754322233891469450015217476242696840882361475010317961686047763330884467539428950737323257121522524690254462641025280619454124105170010936933644557200131779188348290978227689346450834883080814000959964024044508251761643069027160186031690647415037830692369012919153644920649415311106128583783080693039341383075811654595877481709684966154333185000906234950305393059143249372309409123492275123084195368796993760738326450737272970488103635306813661044989801324075907312081409128090025781515563714505914214831649802745812334730691676515159310128736511372503598280372512650888572222862164802763636819602745067825342153848890004539152067686940190544349132042565754975841018244668453070934229770805543835784233046412249286326266575009555304404169557172312880353740162469939934567265739773558455258108335472733833421709813281116980255852646920240896339852494579188483593939566779614713260674419916668139007649004174110833668854814567182207351221800000439401977154081661088146693036552935754675626897429867141329062334226702674698918366408900527972376433643142917097766998930299670236725385151622121148791694051766132289937777679968031069786306352096890271369351610703334546140218042806338343119697536839052706082724249169391097070779170188221156413175983026230607607618305400824759889953739236582807972801378218686269930778355771683350023343862624205691794257988783825750274850391814627904655877651294905239475249857743766236434629572054880860713468183556045305068868855584666920367557829026791077359772317665011246816598325528297765263284260779827423266406725849830667347683649805652849358764408396896815161889258957276217850004860662216099228055074913205552236358268751927951820432932965665506038208500153468050787710486567293301184809702059632560972306280513559287273564925993631645390497442234763031238138050778940375192048628591499353147065611422190786676221223908983684865885973494604535616438776821156439569878198768065828907844931737159803905880530256313698058996755932894977865555217588509084797018093711414250308486343850185859106821509000612317756060538675122962136423431370252714293619645888131922905675298797869228378904803425954413962306154014409018399969348958544148104766920220634945782681738397859698026156091688359818071859362005800220927071796867343265342805702220654019918556563052682615715107946185202716732776080336533367280520896875734519037005146833520205908085942956724314416730449453265806809661236276137753924266820907432057631894966876008996013569765296128158398572476728495366916245843706686474291455854349195590027670596221916684386856902553968840244050023031089164002516924432955034562111781356916732047678335680426059633084991467130773883660893992044550110582069204233471557935111825684385367727483618317183940946720984866816055984296764726930374759111461449668583521091448772938002493929620796646330443316972925771368367679144839418044734430008780908857025701326584227449181006808682588192698762268685986715535257470094231942599889568423460247927254406968148107453121476177279894814718846025560856854531098491488753445856237880292238202038569435050175821497642571491019066598248897393412140689122631635343919244862841996250202901188995700244800977438170531324146798637850022648542250778403006467717034519316497866463706688400917918957643840572356947430843044294336278337184745554639019843975205318895053169582619808263195207065558344345981949947349450696773891583344955117673323903192459261899801001787760310958657665244396908330582557243289409776838549037682586785348397038771590290624949785919850480538893914122782256102255504059018869592950657959179835041630218546187244242139950148016275284805444488012803022625749632700990793297525955045572091815005066896463333204389201673077951183889954973831288913232016169290135181688435935696414746124543476720168344702350127925952432191402392273424083587951495048705666323798564794153502757798642938309958108598386879231098941481188225418575320651628529917476235038362044262069259211044813201461157155497201502831435298913474297091192831944771276048948629645900066016223867462207553157797784824214619927297682192261762315817953256786312714655698502275883435974166996029875594574894310049777423366169059820595536442173429658178313070369170911231585494477390859679717118647532098395068090007243987325327568355751163469947166702353533831800135930931992502997665652325977324623032719444061205383708113330650696589804316839993504066532619594914945817041416405507440742249301245128795780567909692742479743922346741143595424384226250203186187972717411682437729876794799931564646389545826432166782231181464482429957463599952827368092143654473881156807221028567803436027093470278547569110640814814617047357978544519701739220688837408297822566271806317373153480471873339206918773596606634449602045542758159493408468331268633592333622090991742723924705741109082255407996838118766596960662402706142682423604059143857799321055819351734388397911787840345350361547910321394237715320848412172511399304956485264227694438975299860709039043734408310247030034837844007659357645198404239482424039879592631032385829907203277235806788666409110287074758338695169316142752470485995891160303591158134950264730791103679351063287418187928367481616996806011572060395306728367635966101153276668794497354498118432090269017053994503551156239864273135771210092380899751430856676800593422564515881231109388442445694780121444497849072330630823540669156920469078900689397402247428403879953262513890803223422392813274089490721145914169899421308226868027253665565347380435457080503162723454997202836149057261866074248704077447507093868237617533506989991789573399117207464969158104100199778491951104636294270399913722166191956017289096357165649575099406196557837786848550047630180525008450679252507023406625499524505802711422780735903400591206911867119665809775923416729580764439654294000753693850080339150270809781133568461763736606374064406664968108633886633173017884866816573536461295482976404602836990822726339808775558579906559695895599984668946662471887596744485663133994581166758128488870233074138626340677392252119313874702482143932767252327104148390754504940551404890994594027032651863154376228022333881812574181740453563672201173482534719519522079261537080438736183488981600755786575138279801695694020400230990701960977279924946914783273181279397329337885101153859646126023629626302400387892517847573128518483597325311448855389709767919413891427508228183161558575863803900400523411594338822887750403136371600441486505398596211789529801136728822073865692281095769554790660092996735116050327449268763483319139384762766383341801308298619725980036475150706862270217637202754534051398698895295855843952048068602875989416883818535568373805250833275858454894724806249398136181781710845621091613494658344425572987550504158530375838372684970387676762597139621328868999814033483914487437759894335217596135341923042101460250016594153569763886576857879864784351621275438432547718026663909405765128899952240809983668671519100449433507635720851868374873792633386942241718723781163760193777156385168354925052658941358034264793233315380572943388404951978903129720861924153325558298720207883042207608910065402815129139295982694189090398398950059064133782855695279152539323578099672471130088152012144094932513135534075774492801556225932033679970337199280531681861627037818496519046442571721204413025841091239598453057588254245436993341558378933899957226698512115769264236078113919426348402932933335582964480414445804266399724405556521667631967420801097011833807879258702788538958750942928190176852295027594732027714923507324986471749451903428086958686506888174253980896254355367241783541277215393367092140092877515046594572652105571302486425255924470486032065201593557784507465190827789631828585243023253198923393406579279757565182558098165610494353266232927265000729633400903581978175616720501487295135695734346368707349910998375664425818359813288004146253643007102612924783508738669237230079357704375993396272780958792315444930655849010955099863921447272494475133491962015419574995635263612592191144390417694984982278104242840135764315854331613570251674649072178772855786926037200418254975440277917828327577677474055613308687450258193345591614243320439052051971781447925443755906490153552518633061185455263404112103948214610564246392275412879661008842356019308818889250193943752738061011137275064488342155429226234609697298734908567857211950520129480700581213766644877945741059530075880506901515450369642079070687793417057468053503044272925068368832564292620996690707945229847455041331981669200099889181562808264868800042056069696050428733966059948252020943486430598884658844453804398041361155178322485703960146072379510870253605632456193632599038739118208566740748183598728882211964664836479634491385045332009675694344809145224833262972674838787027008387746987422037303198890968866093576568699370746171152459617451212987665510609500805598644796468949263468014543068731184954566365541394744698230477768270520023079777553459234945927546694968075311266421184568798926852367798976525472699757850791963894625213685050187982553701907543410330968505747728021784427716883393308298401985591159966968210523281217487084486223755064605395543580434471319696541282781357846877248267348982327064212435552835920307915525607025635607010743908474284225862510102878568107476972613144037666017608909920969154640187966966298467037638383256479359970341247866984738524113667236973077991188933872827545357484405660260067155490459537378013655937966627043849091762446276355112806114370024844977022142781374239628212031887502754734524477972025093405068364123090938858830394631372706850573686119919716072995223799801109535481572953607410880613983476769210826468151848366126625166574533437436848140374087998685353858584509632960922412915054238555282965007865824033775074401405280534977098083494340415697782447776120203716912661077616094211260127219564775611849205012486962548981791465175234938955399908451756544961364311422750554656020736753353787121276786343643793050426981357595991527195590399512489661605532009764248680650280275024714964763479323847571732038401824435765736579885803075856538721693137089178216120802078187375184047044664544128006615326666173563731114007817643286362566708223807755590401019856014648467234751760357342445528388687219257174533912179605607621838950052067645093208277978440337282297279015952302173862086267511911244989461576498696986354055729437299346202462096415862060638323522885056774804954065279874798083776673853829910077792606210853791135181300061177072930524126737758574447741940800787752490249421085342152263575146005135469955209209877306125721679643448110098201952593038435511631085701152225917500681904689814165062123299356482370015511867057239182327833436314557756365238551891924714813059183848974372348153065358069504011755661941293169059195512437979518795570232544679090102311508090922897049781097717248841975308715711472795478713164523410520000867710524144801636171143603907536127032929303288669356508840695881023993534259085636222064042850635812990199224675629772666328970576761321471325567344031482190565270884000752005281002705930051508147080260130247583215155876990515640404065239499209443401824196128492600299879728235807283973923475027188962482921890558561840205401505870942163783919313811400126770109598404141151860766902649487473961506770641297034913285727684145992121593298388004692745338135081564276670952364216868484181226058439233100344302975790658999864901746731981478015278770675640009818310155451017948258410755172751635640556914926757214704871952739949255724311436593196466070232131958609793587367032897609986630566404849178766685981941329421733975283562243938961625740204487518932367175429928059782524816081766961327526254075865158279422237323895749075402311411926771107155580092879100496229540361784486704520094582750295115927184010463932582856812647235581280931982446016199761734569038182058148187544748987344337843541323791299772897299508405348279583306063586020997477146189890869293040214250594977131062847287107157133086846675318549045753767880791532464719407643671100522778842706742800986412666142029959405996211736180338085224921890580435770710243272703307209912458663900432744762831051072234423884148228042636603525287129040248007186349861774402659807368315857862683480632919649158696014006080616866854682415418707824171700402909384880655208761956451306859050939044439632432474741842307083082785781975722099230084096938554730383857561465375744987265831066383481655925558120050738008275729689820761367201476583474630774372422300432203202548288904307700579257963782409566028903130055358042456693853920799979224726982494440750511093005634380313437933536470569422168277996575266547600187516852219404186673967198622455028222193453406761806205913738108629544842697040562777947428251195028886219362529548519920215763897046639685960040546235451184061279872377085800437438421837067859435657217123328712133985040893679689694619495237828049094125819185122247041912962609989699136003971236501448200814161632527158740120354204221215958429807747910625537349583056532232777832672009350854472520986927206094925180083251033838390957742920670125129852803193183086482781004185492160858531841943825489646748770821989210838377752517390238269475348453730611219270615737775832789763230825494306734094115958393811458166592067867425938353189564454570569939681162411349831727492514716202889882671269378223643839070535071996433010743450836095268578134658714221135508878255926160447852566205798018591470371810376678314714327652005355398626179376025780425075200706661005576496071562301618579860468192506971172229159874489225844658533730155746315470788209155259354518781457437168281913423851093256045839592850419306777855350280207980140934658386567480399589069862278624343501696056071853577718394613334750977155754631992399512584143461200208964939133234129587778555701060444114769838762567568493179263047960604789924930112973316289330275813240790176022005011877427777877074367926122753728281317450535944635951100101714099873170906066316540841485472897701810529689452470243089540629264258889340007494281204676641137665857726938129794675762544849466287239076312866684665420076726311601899242655418290042055730899888898615642444065133656038916427936841128908431553185747612685737654841946890679403035641491337492211786829722448032225581601854426708427170722758074450582477231817180950373178395773214928566597936732275159983767564226715649432518639020522646158444371845819830084127785307454448177387517513921140251030660067971432853330998319986592630543239597603512038077301918277393250156436299757266661712006769969180573183781056777580647071702275895177478679918965435331971214015258765489519699199462630636463603060594726642356914360285749374416236882541594553958452391604176734666013954859004044022454495673281952170155744352449165061561877623294222373523083662601679176383350176914781211086909563844336509321765580605162972129551586632381120742544587465082486802962894849471463255663819488475522680174075572720337201602442827341040465279572045483937626694056707494379615257518249630687662376946249872213870995817871768226852407955512776608598724632874993060531454376249903210109793646902528307965260905208894978373942628836503853004506628065910281637894557645404222550919760555606851777499846857050175160543601680915228513013361460556736095649707757786140628101098032293586828780945176322358748148264383862008931695195923787362608095565063020064654805679995379346674548546813141082358029842093102747612882004152880877345919804301229913545832474565641870359477767343389203190162006888086646237256849105281459982373466713266753468829077737648831852565818500406100323778261942212089973730461834496814100314374049366869790475033829218783979360608912358575041757876429695554417923070334035648529688952690096958289882875964518621631058915617618241206467737210814211925081719724382792694252936068708313313394692491448786696705898958432388502863345958553842846962232507986111044038197575344950378407685738916026707111818185816922702163824111768520588909245293658475062735944828554848633839911814741488270609060683068148862021970513295584054053170730426053941900940748260106270496443027045576799559400496162368580538729567094107712354828928801662544969082636587302072598775184736404851105082897035024757575894498236802952739385177603143283981722257401943229461722644211035629657638449003310043484957078655161354207064245114607300662385349548241070030504306560152908425627468312521510275848612144070480524653484868067645175897319906231670893426687413894838507901294387338072913577546184681760491336255106116020831419837513442476269026708364528277271590060108538830406272700460594847132113008383381821869866287238308699018144846627092803307728695140944639559475218783607009490294512108384742655379953364103225938042045070393106196086074410173175607799321008178359201172582031560274307216191882297134912003283907239433488328957797219525947716417920558433503817889573335310135230758988497279224105271141410325480508424747086548919455216959884290325474906691611921925216484482414282449664617113622526130171994115083304578811896185560014253081538605080972910814836040292151427419889219495676475695644083763902842945846541403109833039127036256569373679411562145444782059108722509679411771679908520044069998079346620423326508222135441823381263738206133619233799455035024335587042889753474020849292044656618935691309238192336480891452120829832513111312560290497433077877686997547712519333373129591890714692665305935976151907258433051793923501457123931825625575156814556308869046315879195221194552005172695397505733097870689455560515647517474998598199305719260147809308651688456218282961192703268333691332974588147363157020366522692861654209230541234283426750900614543782369772666463304418830603767226609020687400127479877715821835842782714734752754554314150106787246845201562150840179649999325146598733605911444056775826358306176639723667249229761784909694293161191281996800061167207878262316194313758828076568290992218983285567105082338828322926710769785378008865893667378530794753551362365199023806078316686207406402561040835763984226585796450351880606479791099834958651544782325628065220384398371821845956411738943800646334374578002498863915395184600457317149301974261977477435053857141823650659467844990190237044189450429882019611103762024677196990433830272406517229131554160266075933486845252135722524570119247600268541888477689608680389403045547530502718894968061337807257332755579015128193719011847246124342302571261283213825469962486005359153319511940843814324235575832217813241656912343959388243662179044271804186360898164996812185996848124380596048990757597642746858679419378493153335864227836353897159415457455436333769030127051879297874238414870545946871369475286979642069776868970425590832581029802678570595763096288811830431610588788853200020786452629047559835688202812720726428028059276916335211663562050004739527093831833763909961983330079935050213130794745288744224054856800101207392990386100716982925304325716075868820087599670552893815744166721062135615985037370346123520718706602949441430330108192787313462193118450493154861358166530539570810242279808762986010323164417758989990395871739197898156322347526759157355145062292920533691629951129565762156808280401106443624437275943204575218416317518999620805535499345726165108680530242243159739502166284750849956497590330544131355745624378155711656091152164184033448842587721033557808448289529685667330989245803033594346545487730093945857697817321578038160221980736569291345680024168934192658524542451844424710860708121237938621325778223171270837973852793241066647541493711135792435548074575124843599222596195453534260394648776533088511757765836663319865035128018975119731474679424528262765131136893200889415388857254621671601538820095303663799023645600171414440844711015649851782754522277322457401047443723470542129929554327263057372908571615030599171225050737229055398786043389047144074681559152282477332203946209338164546421610385486052381038504593741903937519100015681495604889122869297805041398428126324791660084734945240030990131901123295434834501818978431627597070165797648329651973918004152586774989146321034607064968643957037298400617542715546359445021642954063665424804886784954606480191467234689741301054397643142503331386566966458360408547748251531902286560612036302529406783331972913314628695028197523576735372196372626290434041654510884171646224469132325710297176128001758447871080136009095089077575241243395622642127745794200683718009249956649606049252624957898507738229588336993071807866501166060446839160925815799504356193990766233894453519910421283822747330597644820767131222018807512433656357385064219222422885746658168493990040666987552472279595766571001561369938362118098757557689918672253688482067165567842017235521713382084381087384680342306417124948671938550955518485628195747270888092374976548336222700630938792315002341584546251756422811809581216784180993212488665947253219057430576827644537374849884205779799406108382715869953251727293065449563503848504625542646706978821840568315009547467989978885501412772317738998054465429976548052839038958630905946790305359747903736019820350992537749571868390316181358654317808338865330285964431452873832722076328210374132455846265764179140669596511750699524389461448555573769486833250833066363207767004485109202133107775808382434949961414064278004377999014813319001600956461767977274744225284454320746670660261275356118461499064036436628844310650311387993493545240543135077504655463168675609525467003969688799195843665539622035154697554547105633602700607265747022643784392393957700541741646376366152283629073403928077667312826523451715809870919248859036525593547532798585449261937623327228887461007101045535497443766477689735360758834913430384872223228153798965710930706422330727759903633022051672249046770873705200136548584115860133093271410812704948287083049653965071695300414442951330218437244740543309133528280064274677383421699186286680977627987699429042785278789757762943284585265668229337258530349391837580987364259438973548772007754467141007371610680266898223350924166688849523481542123800239068469052261668444694911711959221270277947734782855016846606480531353864136467937381385700370041422376669290602956917127171579958213244494358332580998991175383245357422250125297209129648790727688338678880469018342357926555383819732920891608647282929174290372691015580964147160357870785821308193919559127107068827268742297166143740754339835322142781089163583096826822377382205343897436432948150130340631915278140319706662187255638518426107484340112347154599633705029830653534256955341831838869923848347204061326378989955214961327379699319422182165845328303169957148345985180857401547788954856588565333060054869670603455632656947435420175774496620324750692192794577702052614410886731459371122227854866244883749182290384062095302256143801483605153348338095561468687310428323678782201120664838909567301266066822707150031149222473156433888205895699995848836117758143121662198016932956639490117424916774175160795342322549769473716645494727121574530630855840497937873883416462331233695855465086090259892769101362606096368359204782749046765056070999884155112196527143756378730445992936746002560332790932979695490466274672882116672901987097906642426867496448944830945767788723301684140763381417594322665112653305664757801836620401104889155608726138469475553910958329194818161279302936655869583243017779235518966583882914170539276722485929599258685191819209849246252130626857505181017883395121598918369402082933096728815298774301295463186890805513251146729838965129495670502442609260278846100909777720960457886350069100609907956681409796220687843600095833310513907874886868888707860817613802582839183789545409335736516657950161683377618385480805088982877928544067648457017780434333975573025640292602730336098636082177634959048751222524140673420700058410600905981015467137759277114880872619393876157578848669715860416778325359022282730731671364698806830097144393454112940821498254578025173476147972663786155138937704859849766812731016587334636978383118349833440834221598316464725069930357794686202131066774658475700939907887309193965369117547688391693750058099606437994377033367193647257115992793358783918619803079316175675498073838300682879788428416524396741490090114103124906803114169705880864679284482446536498866839868928152210811937260407680235956520525337995833199035055239770176706525549620115440457227672912171659612032932614821604462255337578773319775864026511759126820020562323419247874322775088415272808390397446083029844477114360019146361274785229990981363004240110453482615755867488858397302946297986907045529187217794179766433560665868351427470616365849956338443414488051925928518830172013824163924322120096764969466793900161844994827662545374154376588280119718726452898046070443774653918179680525807734188183483405857266401243991569669325415521485496811869764277744376411331312904336922024602296306163359130939985168722870337040484772968687281918621135780173638931417149976457131011400480571570314414442723393377529770078262182004209959565869503232989178711465203826448808684144246443315607490535432309205195974807935588270423976442204325066120432190253039646006298283184294498143721995764039274328025275324198689576188762602874820759222296971065688527812586233916689358920450916982302854650385494964561618426130796256726973576378084558839369373282024875441661409371892607881624077674500802885896706429988424731220264857796225985452928156164200686093754503116906118742069346731451867345213346316179959825104578272089552014969021178088110248447089012231652461204772426188187395581361931292561226220237290665553104168961335701425312982667181801978628501130377031045040254545431682051528831204614623326934943672607291226860743315105906652737312365702981598449514461354768799248328058140787273037451495245869282438378802838950012793134204887237899618567964615032733433540855738839388637878157057108462004247976539272361424970712178006785214064061794335687683229191965271166368245974589558708695492692999954923756964552258280894628512926498766281410061132858831174993373831675961382814119969657637211608695900172500334071516366743061799565933063163217807285512723570712324896305703890209190002084437504881774737303816646497912146134922500409213433926110150975869478958449967422770559893020623309235516169927918392982358135360505372256136505826669180524240511835019794574141625367707328697018477355779747640372873048694868611583376015439329894145794782484114529034231129345056031461982541692014825008163283575581325091421959456397659641927383833545983279080542870084379428338720473608799234757115131593961837857182746213704700170263152294809333611711781496951569133736907926401442350251306487614079566749527097511147428993085194577688847548791545225212656499929566815940891636152175074127650943972496075601709345616440350539999419551222582697515117251659068320437172364243852147388610961821574816506861388649788240195909257315130735723716525773229060593618185025196488035878921524233535829674585382408953308471954717336522353011238760332543598754176656611534349325419213490618016377089033592552089307103067545850273859937555694632268620520597424146368473898372550105889081051714721645611352954940997551678688076359698442066566856838680129820362322380131510857695599922675964882829899672821711254021140151884278614316004238211171032623198750204795975903954756734363385648546000948347507341667236047922337528421137543811114133706111655880110724290262911059445843344068588300472207107003424503305429301797288517919701052609478934666857824224896489668004941312995568764120409400685631526365687881412563859670180252236100637519070137112387153005619231939026354140666958309267283407444376329247595058380887034052555917195497801646357196172681401811129964739620591178658548407311801653735316762779064497590206448888693247887494451707063344513612720695460314843801636224208303135225619628890150443517228825863067947215820558270543294430749877559406863327217394842015288317815813091964392101212427843546569769002706899031895144257683430630159069515567391539277527304855066075286414027357528003193653349369533856227722058946335399310472361111289244160969274128769696924265019953105441578827294714543254457357997879397371743272661253346979983011967799410732238036074178800669903286916947107491242984872937098728486288057643305914904416648602138308927811822308185799814514308068293635146336385080388561085868619930660521595114362158181271344836648767770063219194782190415440143734558635026182281607569328618167249676131126318554742054265311747026664744908484236339816882957150746085116984440029926234396456250809004843107994783447513308039882043337610858449381603287393423430371414327174377201051633734930170224941110570354234643764432106903187338170552162571635997300485098688715636285561191708558685953430084645295577219093123627734939454738329337089068418543747584368072072270430432384245691486901888904346470648413752216895407577918675139582811280882988443654863718432935629018778130337476875130956671109026955906559160215725890501374698271600968962175781404063465701419274944782284420716401475816262920484773226129988041297460558513192774860108464407520096906311446993352119831964069089105396678043075069292270337505919865036351684028514553516939372326970728335791647848772706255530087900766529916917868419071181434855207396645673635667405353792324089267683099397379629824589720992139455495890407609359846899740168060436730889221303982964054253155345206783037497548671566146341991992324480289474202960646501617190481120805672799471472975591444776930251958075427012376445536328385820837926725329444203548464202459362224757811360234901818952394139898857078870444261888833725420721329800578029498432792588430628647214204824634935991904211071701694095137518318088420287666354851639337073616823513047205841246725067048520119337245710868159580292439893138920744148865275543723816974414144708730049620305403918594384826405381975066186046049368938891897557105991996884407991981236122494843898387411331230223904854579503437499567745859260368648421482573894040691647214873543377469974378648729208952825752618410509874436089029381606408548961324320086208555902506442667410475543375020064490349405289861123000931092688832025789412635953364515791912137831802837901687853190836425324908757991967557442099165040810143649463856478484452410268965757795517269169245054998486381133935635715269560424247871656643028630735508224987373577852411131714612314195221362521788932274910279158995975872148344416850718433761637116232334011477158438107175037716440349587617196091164865365589732117062319991758010405858259603304710784403533557656301549586823270399906572253504848290466985267356612528389044282933203631784263150441615521126136989615911284890769547012865536741881058052195825311482965131288324110572629724251079349288901626805514037647788159908934057741282507614590022593829538859952808418075606216740249136721059961876217899497889588160727298344663215233729080373890553082431660053899011217049883887092024941297493950765915358894501377345868748247405459712427283657769169437812655187783878480939244290431734225592774348697573800266506788504020537376243361876866111898546469073905394777573622922662222300113318205231244190674275611007436206998390481964856011328724120182423928838549911582224600564254692595690956688985245968815087167005110713422428063286582687730256325526474918631997825909284916496427015107559450843853405214627542460155613341946653889046530424364564007972188389925699360508999501784866854010492065165384918473412962944134069235873472163947854584437570527961837201681455593206571595247374617445066773170915892757500605700693308064257609721654167920654876981459933203527804881856315421261006999244980578191851594840817240440246417357958608758484405736795375338951835527268483155641015020346822791448683912113728032736517927726088341000975467217668943963764208050300126425347529569074522470389625557828852695077677835665569551498195387257335216971281148551042787940396533318044496552620662475102088225819029473967256569016932814221862084968749457966258894025730053811426561329739605329407586496497083971922762344979998758947336732925916450197739048409204887329275623464629717671168819433466670100631685313373333785605250882258822339544148826312942231928814849387611828425476405278121591601143285001259031781389629846962758554283357737184976882745918739137744944656480866871044091009689751648897553820729098563287786377276122478327000401894435493231093441899132426144903960265516642360581718728406493729108903565528875866097871982771989447394405015363164538601200721141796910224588567157775866475215198476182546113943310388619879868216172406792916854231809524428252074917707094907470187984572220670731177339343745601192420293569270986841160875052243359205155613896838896678579432246409590425383713640155328439269578634332948520335548993726609229788752972219762863967930935974412755388740772131933321276404184243654154172831977558637884286911568561165593655611762156390900755349914927115461155221091945529613352451490555658445704362889584201582482469648855956234883333488800613273642634590812285050026537027910223764606101819065665645214141265170063836899112327575332009925099633863903794212754986961497162529766348830937317325776192554471415356656521869202306355341362258818406439471524810253410972099979021335203476249175641940056137950452368019359927964088691020111349603643189164821897844271552089881432298035464444416736134272687036089770461072361527812695612954744329986134413211056080394437038558062100874564860188546262173812875877236356437173996352623942480992059803584102638490777069511588950522530494792436484516191505059096587431424911812988775624885060525942846359727739956232790449311532172643326156106353538765652895542289523606393879252847442673831887539787749862401386251196844907437104565756307221378927626442551884319142113855359142652969789523638186286706494520198006534935114366520561377587151443354520013238424238293035567979054513094782352846426452220132231380670860820909456917896664313496714862903488145934681612183156561862151729722264355517927108840156713566301493200362455518359661225236214494353475177056008676143653246867608732894889902521780667656815351283854734146817602630255082198550962080449405678195170363487966992902920071809125535678246253871261814738100418443253689670788262082348319825212309691742868282351674662281235353854139116298175506660192732183239712575897727843497642942595882821639443975740278150792639020748804434473748446862501478581353413590559088046047461969855969506217603726884594363265348374356806537589173689980573583809236125389023001481926394907443102429584361913260634535107630382402854878529720258245875005725646228567371805899068846793537743097352678152684639182340845236811814402781490318951875602961964047921794703710454674370734654848535051660548559146261416842551939625493345912022283778964339234508507390697617398421318027832355995377207051652825368333897940333379942243150643652138740872342995731974677498526987178090903187534020072654928174460592404534499301951041639775531300824314836181029510228431786756489260012088068760017958735499961632749101389335213711566567590519424230722894430637890861067390019189598819124807611431556616847099334425576887866081272678968979534869705997321706174763871732334556989832955781212468570797727254754376100214075527505762898130239118506294404366663234958354155338080877014199539746586208332258778438178318623211504337729315371770647062805296460254212211572737035791813922208840762582521235929353709052698012977817457367992459404863816966888402993698125437211240074266557219282186752868124358463221033679024061344898713078435412152950771667307584976771465410677883895536775133224536735296577007839369769003548601733304664896958976120258227275096101690079381470953659431766337656542741394198920024865312759916016224746568223437545071470361217080607803732426775584504788500256435848629838506344172984881330627641584921939820038887466820347314001807849393721833326569938818623790997984374710450601105418847780814148319486744065007452640044364277686649943582400193024523579803249737917271380354639927682203289805935965489676176567903684676481844799900406798908722451944212973553344692780708713542638362396173629856217341586934878701974229491768060728818950701547341962111896970287086586551424874977782441334688553538036098535063704854106013478304355195809205384741022106583334415353365661465226488551447490499219666676954032507818577662592463554236411364203749194597797689358826194822351519336668673549791013581449113394450391551470047098514042948311404350519043949144917731678623536781814925821531004513503027876152668692700899073765227999678625127223915941066745621893666423515636428626307603444017082264846254715213473335486538068832515543357101211252311295221655862208536102863965825740766171403850561517015976816461520768611358859824069522085650598781527817311762896360085261260728101011652637960325795013291902061251848461614652134190388590383036426922130401765153952123231295205307237322978834157348207799739988713424751583137984358224912737363199279447517326122831639152868791900968741202850744211421072509031101253185102938150395901324786375975331043035395092438679883712272946689961066843080450329770137604439236954794217161285946717262094742381932384750888274823359948346894630558045034465516004729756972649422626236170011114691581865986327810387128717132480860475632045164681975246208588984183087636470691295586903686851872370479033803416268927254315075706661739733979928059272494374505065690967301290026085275383397385272789188873349719573219684598062385699246489008623150129551971634757123604472688768481016855799292138314463265577601643327542155287988173778729967827026485696950428172554233392621658451792302474577187133430731015498132655872803961984962257133252289081223190478068061552550119253242050486568523079002804212169709020502744617716542772204866282070600992545793545182842227144499758922407937101476376796600207607844692053825144522929304297513800465759128504598798766292460528873438798685999047243467292450458681595620196849883580250517780861903350068779860137855291698091725347438981365158559678062172745684901701849270090773273366081998812957623263498887999011415808235974376527161647366947698606620389312456635179111292440125207568869443716769188340006466593318128206298429507625109440538549510620079683134519513730384990144586364867799813783179074539650109514486621259786677705822790566250480040532370937344199972614879063000133006038623580080120726937122079546284187962774134740826434360279090648548608513072269004095874380422780233344686061780914488760868981594230353576010715577861361369788753818015742976110447195159561910654593104989410589360725660701044961348175198560759802935388055984324080030775289163903083936711711672215804505368850186384483734078559443188527511880384817137731958925935347973153959533380817984552546547392469697547394756981418856210156430952313554998038948152632357533418538448734947794682159118482104549242924112741945386385411239837818351024011101944665227161223457316565093893286757527689136760537603925640508820593937641501224125171368250946357809999481075850421748334094772256018567549536591952811126508314799935326574185751257001548773122820090611362268824738686997020444651390285356418480596965249332624310982490117512772819595538602248041631333644664111413904601826335100944982833001974229186438494642639363541152060471629158792170896912781964362109191253515636781054514280341359696387591471856114244666527207025934862269083265950688547809737821876120651148863597231435595065665822144699480484830372590860067330254894416572074054335455546813204604873462166786353914875218230679106396738035483862720357527435696811282969395731194744040327672288527739376637873947968192046928663735933340198523461572448423882506101607022705700157169467902571148209251759966247932900541042628745739628221940558584875000019227345039461091725146581324130057923074404325406385374399126013962178901147479192855786041722047013811579428345996919627353616078134035002914855274128750093562245087398281628138562480469819102942449646060273600517313645864965121248782423656100512679298403575808616590838474497213518374964373514365271251375593904335186922819520685306358027357515020071143540983088904899771377872736098205845937768598203544315117782562925225508192479182339873620539113146179385575781168049811223221090713754237906079439480678600635658806525364049877918843766335155467472724335097514477395956817315997510067032671092987367375954805058259900226896133942132450721689671123768231015056781047790532244801786672166839030335113077467355788195036837901954264903941893898683530214637258806702573392028358341702582901356892673051787686668665236392178910614123101973678343243522652042149280560142666541705975338232856149636800943852575047694395525993705337626970821818641311686651621195567675016397322660087376381186356835267194771496947142845680171841995977543517645864533244143279923468824731262697087929339178185194370924884218467519741967756277981203731448390442108272497940505900382913415253609371936607467561052178581717971612171487824469629666629464070032655645805027979781020445009110585815906207806327366047452599659018325523770922477627763232756173166737293779294500098295427502174237999405354471322243695175929242436569098951102827026750131268189714993746731464761332906204452792015541841702949035663454027818745598924112156986894628518800357514696151152474293541386068171090310413603838585606675073482307195975434618898531147564141643685334965884137081234642479963993080569116192844553075571822941972308422930483222282110009847335357460019430389208923758744776884663004566301031662405321481397870936876359145295998871958945748576009494827505483123932296909013051522576191669048386235269144584855423297085056813083662518746184296555445425437004237358649284935714104077876608489849455874536482715702096140430991433668119886412009553991969591878217626297829715259447349689947164513763344176164446815061953971050846538517328275203034506994085384194636417641109319542587073128735248185363727945897018217871498255008432090348304351396831008359598891279876780259517582707116330566878574291928741931614906096084062469206704538936448200859929770207634168348354343625785163967632724583648932272624974307789092394108653789913301461073213464953315405628604172748106735917096534655248076174144066653941061913677119774837305848647163866989890403863598537687082665954632025037726355643061690710703280890326411287684070169814034430150058887312777312688687556846595916719866630524138230803961532244372529791965630558559319450942229831790704262281047036670759391098539593102559041697037779748593463908164909798917729817401994007987234634699798869616527368096881112661319378973181062021417530135394547525984156500475108671698393518809614821487254266276312274058197894207659713808534387240442316262903001039392666331945362117336034835169430190303832693328257802491069295812631512561019047539896262911133469534904798295171693788516879516691621403948228189032528379231937178733623769191883537133429282856264052497660537937419966117237518951969110284233191444903765667916955434417318639897233129595019064542972633714809521962423600963075968274138681541442423863822159911480685937301412438444101707158513343914459996361926013233997815309656486425215045175402112776240152729383244115940643852347465545573491791888367416361621773641515626929036523502919301730727350989734020208668119242524647234510956002605443314009513757383570701607437579748063976917756759966337256615322360351570161672510542533374122719855090346540983257191829350958704071786906087435989413878348607758801702557487846588615078064349911588065322252030976677919305521250054374160697676781844582887264121914486430389467812696086919568752706472008622689557690710559385876347830358818166469282936828431887875510256195076313246009594460033261378534966825009011568339890393564092593720253447029820740575481004660999512718520320661415148017676001743251648052775809049346193613603176068700547071199374812274289902756796566969364905425613326545938082353365641800405304523783521195842572282158291557296660126520950265150722075062899335609702262494657069090329827210084804032960473503628213234378933405785816321083981161329395918815764022836435846115621692646507376131840268406516874100032619764722650790362684354058459681331543363890467824519012277944077122402205810700968196421803036560570537988578844069682046917775565855480577013593800195915228249139769572087689733473249981131869744443759298254257556502823233725699818135824891249110615118038524297756222985652966690336107696558340306003808064366281220749098724035550793580030883464948883510869647100673508211872327627133247293497495063234962437823054711207209428047822408952548299282964575815548355323598977440885066545767829658814038318609206364913285389545253261409164723902746988580083764416738559011513452331012204231176854576821020158558469562385242462733294521821965717369680129274406022806450183889521864201862093330300679702520205418913892708263532955162234205735098708207952763987103473750762809047286670092807070635749080095922985505301613060033469986447222029348263579192730817263107400948185200085335922852984338613056315302383638560124587576848002333938046912218253229767236348696619585380059778775345049179982282794733117246193066564933831041588747314508527170022695170953690560333790620177772218047315217299668892898718096580164153831787880278070483339940991848650548203530320254736131780737341372347924475882467690744868272373888767029584085575509427882341959641477909065512925374385133579810414191454194365403590735854595454834277577618100294330323306505700365064048526228440976257147936040654852375882653381686849194116114488752705885254337335075906380585628972138064869069398285600706756176146796771104082960407290834728882587361213043857559004159219352939735947711005115315508351726386633981428219595726665965230168615128449307252101140390385341771578279609755027419668332228195820322383205592787482295681912383900882897047092431040048020405896988771399858145128987219298399647582547491288883107758336242008576825938845925592881872723205521967904608019845670969143706642118160667969380072426280683288182588778302052676972791392347459028819725819074277772356224416906815708798628103806297894344456634145199974894755182871553276959323003868221728015734846595917096457123411511400073984558902360958127259047455939484078424659835064809354447380119578794079081545537310642967269622133052919113364241615418348943294960514150483173836995045195530237134789921438556329815736304617411141990380803218267658154436594830759352281459523985478238778724793768799739783658353382309507981293553222576945369913618942810458484509569903632264676747993973409468894151516722739915432370109621227421208441021971204077383120321919763241577149570617623350318916698779246619608833137284730899113927805757122765919088315831765405907367589605903024828543725616135809192351220809277957752267968301335239686037267380409421414658344053517276761790822542890048863292815457815743793948402637698725209914174593406637553616785131279481283781834833906124323805235340154585733045082453201201215069765637845551923517600569930088139766364374661550531703789984318652169954363305911654756438706702556346104390278678656466261164086063987687963192603340515123815880025087188666025725413515055318229746872819576487542719830966209361783714329300880078878175005112285700506005213790529173582406383614366493107887979320796148840424839582630752860390468131953249951191250250721317104825520637269492598517230558831322892521811498393094427956959745264867181699230027785702760673360638503755956135764558564596505894588568316374745469301174659491185486769622418102713630340283943514402673701435038249538040381225338545603867693175444164562966695667445470631677452588275626597760938062329586624740200742606789417291158260744034148850413848824324643216637942312347025817255592689186354995080933986325554022864232952604587205936483666301317002889690635817211039274477949870049548585670958976671514941487582933871177405802688663409651074404036664492756858298329575015941564624241729981995935998821077486959386859452291358027241631345314822692145276463465809473838955005881540821024371544871939010008826706562350298449702416689008101504720678673356263143003770102994442767531462246457330695442126618292932702587280131387632919115664934659091395509666176409249780660110260363492682597952618536449177787461306439166152154669706328700837886997975028213338428150778400240203390460923185568112005587586638654708105850263534042764065708388888358222040410471735894361176826914057839336080094332827015862435335372878533437098300266948021030475346549318077224684014003367598462438056701313678661087592647675785270790862578548523468786636279711037750132221958892751458441457254903522300228067411595095418110648182968091171322916622664427311902453934154589931300029206042872465488275009449996364203750076180165690615182508087537133376698716518664217078863069928465642046065578135677998983744624390141609647178951059880898163037109673808603802570645388180627395115813482062016818620035978522710079795043569432789775178413969879904925812206519253623685305256194048171933724909757066942787772103071073471700712560680805551905374986591304954776689903925084337950836465878769336051637839662338147791683704481251123895908201210206186052185681884388968097308645283974980325712732312020040718636077083870255342210404651169032821840264217557465458637430976827478487035039678901052255567000574894548314385470017203077445226223041132348835741315868255308917557364389615239659227415871354359699463602051568542351427784253780482741424355436843091479407537868893980400101758554673900121250061201168235427168428954929055498345601989962329965926456175404067115427141130337023672648993846901469075962439025896792836807851225010375361893158900538400248705654462694143629978905551533420176854617883298850451767122851546487430442320363343037157541195485726820146200856340325447943540082571560835358349087439630616825431470766623671145695267722489922566737681988525430711448837354516323155813823523627575434309895073250210219232313670516177625225900524995354777471028490385850843192612878034554889017360610956220715817510268286341693248478083627923106993414848361467746492794634666406539207583728516663199556171905626376647358914976442127930946027920969889694185552528856493152643044965001185539554952150816922908134547937672144611812003271255347523801691965206495786199665181322517699386354853481903638626980030146931103393238989190620302890921940223220461485745510607205183554118926939458202955912162783108168528998529101651326725352407513861900917530302905907539690746132533036651921041789338476324623598817766223982512367510515577083286273610921581564821883603611973010822295733633460178168172773324264210581542676313094152436969434239785462141020514506892231848142011041756770222061840212973943641001214227186274844056798549299966489502817332301918275034441799274838059091951348869408828502690294756824851444141161195715183460832345053340212172507114329525363735044822012556412098156639648414242923990640523268668885829025575225768690641288141975822312161291082565706556365134169774517403342050757557056101267366321230182151692086632469581994875730604196905862677804887156444001062433608212665308901972370270957596748286561510745766315368607920481985518812270987049700868909650357222112405297442829339637568526988287935546866280966118332718885504200437822352128384303965759093993820347855391141590579432576467090680832644683958946587514855934044864982844327324854346325047624190943890338708144092499200751009583919459988552090921621303040682712372234050198435720514662104750960699883900695546600875457375968548642474726641274348065894562419166281382152851940887596209363535011597084601426430760366687017421505681231850441155607428159194789903831306321165918213476215187656592887169164611528688963831740879827791618861266181285370521577093114309108445661084552675713265119741637387078993331622925866089567539906241600014384576507080819801725076610829425165513106261584025018270336879193224335578488740626910906884045622181909946905210625690364611481267636003091584803089852236143623740826431361513529585646139708489511213598450720101511996314374170282882424191290895039855790264728298124137303381994287284262634851516466403563689462691984965376474209576695692519808195562794546179443317531120729137867694058850122650981374143063425063740933313582864849877540782827091410550535257487295258938794060526084028481001648282735767368236991184317070982731679936111951277252052794142342596120160704458110456912472950430272925372383570357384063149079714435412684131063059363412776049087193514022971230760052337348202252224885591683731448034091279040096773713859540735737858105516189994109202246504898434434566183449314204164378886064254764245576032841099723276544589122855708654921361516038073059032929587075858826346217730521584169670441712272462313763896312597867156274106526908885365540695725579794391729352317918679673288342631189474057035451791327162940657160131077743532263496439845349085600125339780640984070179942018981498973647126929086880098672313831493423338384207241123369356512500335873253099907598815145274314356436326321362334244877037022501461930250255490790147858224874054443125693835962405963535523391827886233769224498877819371874484248038623830638704097554912258288703730086731677981238819482313029644285451847157878044935368727700990022777994728107541926048748030811487488650381526863397346191294619092254221692858063851425388987382009279191676699778205165839891624161685135249738943970843375776617088676555308864971657068902862523040014567305857497356877155608379412905219610121532946429379244000645557533166117008098904443959699229766920815153233001362828214140403410707293075244870391135886825906580146594551029276333153362349721163628535769715408367575303788286526358934236116569314100135779274887746325700229137853055066918881966807599630045971484344801195214353588938356892640423581457760508873954852630751374715985430969346881585242512226685339376421716179552394862561089205181878686413119975489154346763020255927534734735932250387108354990318814855558068793355356471625783525291753989716781198879628214378713663075589301532338929633442322421589336491239976715850848156684562427966619313417666771220929742563837014748869958588109447740865134831212050829946873077015649657057016307547075525547728346434708638863625883083873822237678758068056300365543011145931192132679117512459854420971650059033490741140058171639633759711080373916882149393790351511251140326139206362012888200182251046616119923233384478956215682246552369234958728589893268867917693504977752428186915209526636441211968887250842197751912001515910695634938258873715805584296631866827919992300478510784718437615634214777498959008401328932057572186490822508149849182618249241398812815309158512861078533960251446320824856998961592891837122895827561004327488823186267960824447753129202497513798875352663884439616204307369390114086371398358856241923777678399641332906981282724516760165660094389086780527342507255134846349321220246567759475620206709374056713765481359111568016755293736352478049423650035023594664487895460253318477355138722281816272636211622658487769892483269410010821615369074204517313300479435902678082978991554729504913734642621991758498029145357285747187471148961177335085489979114282601565594250192591381100075995516226418736584143431064088104223307292184240906874265146068065601078088002971950399927016503013630658593662741160620424441475666829338063200036249730570798307228492626767427291555114788785867428387097789421362703193489635977701791386039027101317215737844588969890281981101097738788081651918588026627578140764688191833950661330586947377522024855532778124271400023695281946057352817524594272744324631140526003494264074675215554442188108177556013463742920940185033549644402706548486208661429005684994215388859687131830536651142344880588322657434931052913300420657849437251190423178685436337872152351228427815300452719293434454256842513398863718703973593142274805010981214463992912958738329744762400701266723122564129286110250550740442046914921320606316182984653361454479817105934523995550136495709357831777810531778581404432361047606937124257671603571481051918986181624522689581153703291968241647152771355158373569259621996524831400520534044609219182388493100982147118170035170241460000157284456613433470380668989612827570795034448998830231044802362270039012323512262166069567577734286730688928633560557366943730453215026696826588219687150975359229622319543182165061629414794901770268185471020152141697469794484455374776179488026693066662543653767770625080793047306653021433027689490916945265305654954008385016781044638189459620336715334114162298003978992959661047584543715908098956773693059307095855490941253102510276629022569973255465927723442005835397079744957129969660671553496921583669135968387789275801800244618961998654483337167688232781556009361893993184349526457799576261166213932404702023278258989396145439986908619103541376694741937720352386095903514127575481960869504169575130843232669166895016668012649577468770052361037546578865412611661104483758768172653028171825081579715067510562039139841689711034866951905492627546590444725130566089292184324059942551099844630588325785471469229540439802777126720636683397475997620953312445589687867168054341774996085732716489523383517335395535856007302426275360103493402235216800677991622872601681512482853843138642563469866487072653528572748800059390532933295557239256639090664047337090660452468455407020092086482531617430369683080850034401293653837528501208653359652050558489727236585836818932677851719561866172300916967001602085515603132293605653308048867764786992459781718942584521021992499004931922287027171538851490350140825177343430413634240189191178152117327069617048828342343705499390281857803348856275525630117503759692301524351631008300835829180799029781294173782107030428483262307266381983330682852916027545140614382645965980674935469706773220189817776571062089236784617825895913258693851816372922050565585449915621380372717011821670161787075674566238965754570749987287524189724034751181594678867994302188166736573938041246981785577285486712644622596042015796388154000721632383635436376328743033441882972138293510749698284307937953874261184463909645426696426877192051252752343642174967701103629086695652904356018093128472000490317096822398963697571106449459021690613721302503468923911155089495680289608620710640335323238196460482637055888713275470169115504411155601259009289821316890395618717131746525588351653372569825452625876338655301364696682029430536496409782298977073056228146443863010029991444012294278808306396862035741485245738124218665669830372372831187506616988822711055873895652276209679614417174997808770880181948511579079960526093270706157182241578689610681029343927794740943559390767401041784708878092305967035005427220623998684755473481358566950296382692850538023211158096791274553086343852525663723918528414608276130235042452331215013050737715509260557395432272028912782573280571811034170631323875974740460648448884250301826414193664646623304403726147672712885462036727093250648239545351291365538038518334361751319328407431067614818458676190798269187671138389425239394671898998942548820508555158175343429302962987406413202155034673046037885857913389145662742544874738254192112381683567110918708359213280861977599810121943165835470433035397405991490859729747315014943569825504358697872902420508802376196609405441987086099997800335673052295479711708509417195837817039827498228748898542906539283065374047062783508923841349058191809763860916801380636493015300834971426526195342612277710776909073666904202187778663163722652451463863903606190334400226624089634862967769375300821138627036261006333489446794110583849238779274246111334456005813283120805327413952833203970585823561843761636918582183862217494855495358879672786425293051441273768667283217465282156764858601173768761312679926231269246722168220210442176846946761873767705311471447784665590131201227285142649234751109181779781772643634513942702232455434697458771273513239110039357736538839623120778917756752319274350152510677055889297065376889526624461812115522196743288210833233203803953266966359540331255408579896875452855086903841171858107710328055863707226024459512354934400708586219704615413518929951290917318093434470464480661927519155550219615356724613241116020642631916501245687611564442243062991421858998528970054203470248891262215125433699306208270463271252336302337270623024247029388164607044738813174014999701815206763009956936839119952392627340584425537363156108037976532328985352196835204463820796606994021783758500189152131131864743644491456128014923756036576306537324231795552391916656521689185937553221306819410049896860249558054908566755218426699675511283224723216152253500654774614354219735870628626732314423166123289178777444106282360524947002551292985910121046994650120138491898680514463590925833387467172369322649690851417161342701751126658571616598481139638095004945117645028581564397336187282716599840867707419484531295851750200893693415412913459415021708103802412219954021900030308232972819977772349631041830294942476582715000861983768806372872880812120482248268755084280227283059271235230302097757886316570071426093593441573552221224345434501056892380416292052810416423810141673036140997340574325116653876731199746682980836239991298094852530661695937616421800209586308750556121193624430043179043702055448906424371074607710752606472520581398290054854572559243021839554880006847317084487649742843575303544614143412326268214551950928940066530624350801665663918633767791487669851951898323791539179863201888459923672070928811986575321935120785226527270096353639788248129872135456417969486012483738062754408060464428901600394793687741898241601495955732920828487838385545763741071934323859735092547534300587615938582185989685584970490183921498153730087671495832915484611665676799136340253987513709378182263555807374969102337781845137993852232368620121078102686399976602058846907470608285006792431508461982125436680424442866615046344367483891215465085358596833946394129858065574601467082506796051561686466791549654628661755922365679331340672944416853564508135655816049421294851600511540582518865322368235566453295813465076911117476962706285059141625239857112114476005539646924363920523987659580054829712072636007726069863055536260418887647899660027598619523834414036971052611678881944474262193362305800356468375308927668931231130144232659561353942107560983257285491804557641880911420935011684893265673870201833471128494430936474937825646140534045046446341151535402791110671596364341692431148940470367956410388282058139356494525449669511288801722740771639299802091434173150585429745801867763347463637889397126562352011084241699649989299122413257678627536038056350933492463076735423308735887807755678681144330420962073234376343231474875206347773851579458076658923936148307787720472618956610455956272953546546492398252721321168341561778336892036122961295178453293132303594544806455245056687940466296615886944912324273560138005860342811669008818999703291672451889514056348374001385769569358350460655783628576862009832414717401748353427072292006351857622535455417961737221741072420828137916308053235266483476069699707786669285392633641101871156988007445570306090510120875168886353830594769788778324621503480992606946186846230479788417091876418994902789389044566355663484082836087159806679600495037418738891516528685796189979362703053144441995376458756595754556800594170857984759044234986007089948597624471125120744455650546980816964562266469711901744111567629795162443941120084479893532527239865350946229908424389291241250515463237462156853991623941403023075483006304428930320910100211128630749812364964310589884178667632138603310813443095296302231792580818319714784635803035287233840798005928097303662453479359899645451239920897266818291917060842360143669824428452698988543721934557240000085166886831825676477882105103213511558382457390442692150626629108875923326607450933470688759360525987028169717729208725386213134346364075325590806397394038327336003481330849117318064867035141463908650679494149724570727469024222946076930411963950997698324467743690829376471174545315706401937853250900238309076265385690921062140416404799631332781215860985749188337324552640106373989750585527252353578306806994760038380009016439300517373771055667825257970155021808968833535936050940026414343606458804833031293526772982191253138783510516083538083478396726430146110250647107941852056491050538139988809430497469173792124730661259954245101745669382633488510366259379648688192931634529833702537952468186473206779923128922635740030717713786476876152196008152036023547651518778560504294488472369273538316658268723501618015099575707453401936689595217406712780282369884914033886070455988851972839095177837961466431242609080080510556525831583386097331123872036904103273585879025887047400004060512416833214797343100280366869638212744514599830231527897171688130514443643746391853607551009329075623851441392337787393830822231862896456401532529960647844813700218945941673225577667910824913421730903609750220159855680473669420928822870999308601175116269584238601987013853341504450227066874054078153715450361081765376296819751646955104260124313696330240719461667198823382868094867767073046551480236886711831454258673047860680280854621413987209927358160446950771603290234342697112637152067125788481043520289660354828898517797177398619011018219081557670312513929726921636131071022479759520633442312658117324466603341387992684312307109989744064059790692997474616666624532352686566754175551832590196110764252670181530969956048669637343164434240439064925395275221268712297447297203030605833209504638432828682427936531823441403100880445620976107022444299276513656060421307307364606080654942626971110287245997586278774306392872830537153070399101191243073371037692379982226911464315806151355134880534005564082088790970965019878955513500391509555849626108650857126029087850638588953703096632487072331453001026799398668689702111094769956115537597419246566320885512440609389860051017346466119474232943061752720976227230200017200437178359453348663252168678717066672794195663854045631802654515470586677108870688605977587070730855749902573589228875957306026240193291170967748005483301257235865070094257844071094363444902367568851154233555224208637421226418921007162274292185103376518485379969660896152000178147240194534159308929856729690206768723833064825400359315259685581454254415450413688101002110715409391980817992198117688699094395665847869171370782531357793509512660352249921100061976472327140423880995692872812358462267228815154335097984270781249906178913122104805490944333667309546850511238486206050081084117814043590511224854022581073292412198866532698344519399764008851941814981095806800417720322971397856147237993257027758524316389292208718910169911458503259252154762217189800259465796893572779997707227959221533464838478034249620172852942893886190514713564680173705311910798817787422163922789552208733925529303094578733728065830698165920308996935568439094347273591025048410645419547224799836064724097941263862356736378308544066429065419126390601356107195089451466213978764752300242387493953830464446398855270775304078503802068447949618828202675211572496059089251728590185666767948506295843067184246207470802325425589398211170477958845578356468609088411594754493012268727968124448280573336802642338699129097479351016364123068220611426055898860064541527569483424183151255239320250598056141497321400683159779797508989993185701481244031429168834831285018834678269126486942703944671195124207644472286432402972769839156284480660566424665279804572747497146079154165337402308807074016829990004124656508870919061332450955401103195579388543564386358393765431116364461063835151180244253591222075428331040813630624347855492762165507354066140153927261765748107227036191203019806718660096572662663008846645738117702273452613981727206818013915997895454947987394779079498919900682617689613408088564862734430026577583655820548622980115155666574393512052646423841222542369407718284831883556955561882938765622282360769492043227499816068468586576712579355666093128761652330367398866020752052947991500795370320170297893960017266510830703834908071486550669360238405743100130239952744664733143243086849219372472704152265176758520413196071929149215017911309797297760936682266473144836497354692161116750716482508869399310770608214600026459548895203946622779734503645067501725275695687252956911363736145672081358313315779245100469241258223011987132908396808733328301348810029606623014744694751916531233413454264741771829109225548711117855762729398597124125497191688342867350799446375993746146476347422270657715774585084161999064291965360340408871442471568285058469054042225064275350499377742216370035259290519726992771390837764337161089888438157245151126677866394871787786236752573243806498580828536290884738560214183938005514978788899011521743593297642611463141908772825530118801650366472010759392392533451417655374228588692152064405795771970226214736666979488563067015053378025288063785109369861948628920566045264999394091241355267093183633860064359231315260640454398257002699026406894015931980154057275039682050604239325652167683832764973827959335270532227887918800006063437962211221581070207170937220402453251566325307295381403442103763889783086647424271519878923428017654146687743000463673359241475108629116769197692115706344914759068600464257456242180576457424002744080341846881329618562688841765786966589212665228770103446539782380012754705970661811609845296877709835983540388170120034873078291744969074387934649624206827226038652732126251685527422266598251851051627000955816562681374991731766187410965558201145846654459387962693137338282822463636422611549017454675620314062912159407804606389135181679710840783327861747721259598978526709403175909993859783523182443696036766576068198593548928366729897160338816722825395550691680885143919228349182360711875212177771454976162285004079343734241215118392096948695744478793799398837214809497106562268213511394675994364348832093623910565980416258203047644499848993950215592183102596186007945506202158441732229719477272346353001631465437727990124194909413147825809855837451232636095366036012716932628159509395523881151470469523028340041976660888392304776768377981196269415625418774167278437938073102482151234667748424624696828926788464236495856476924259862892801795955116561244578144597108024065482399703698675889825158801201037808326568103015775456222082479650556039364003243113540763977300352410297524318964435016071986376411392247504261796901527433679649985295719918999280782609518936495714642202849396247021502850595319211902471928672428285090029473890482870534442580370325397678473910704424969257007603273653279297754606477116982651426425341365520229384275229131797466853425604323244909714695651514904101836493830001734954383851380447712772467562477284142093002186986967013320153100413945419508983012249075665041316389167794946015574228362073506532021211858735996044002560885686833939628351898956891865242046969527621087757968691714615478981241740873386978750298032282350477277740752217285553486654706897755457981872327062853133217495946910449812170451181777444482463146010657313164797984119883686440868941639319171758249005485707894597738401972312675106003271220690157113747620882501820577779793517821759244917401500978339717781064954686162701979045587887143096896824673640929108972200080387617064590092680396568582620716042407676145468402652955933739919509565521970071369713428303088515083619216127174308114701428525013342904589320291449341249191309407500647859971860193536033760484836009376795101575472376820277784522198426465731524670755421731717395418584319071487876488965844216913784012804625027911034683864673162716072590060554517416897170770011766780160946923873148278659454043173202311416920458004019268489911349470043270182419940761655323329547613982469496165322244778680189397956527693763096644582956161119104410164100153067246545065216145711579551650644878277758786101705067146829203855385073510554346651063761697989357184852092160013776464388733168235358108075735442040359858420511449985060469727206222023549702118848572077763942365431736636828948453213029318032075943253233745687000458169112916746336703655839425866698922020168752266934111296551549019671239206967725274639448076908957713053480637472035738356806945749329794196945780146697896258488928375382091645254237714142597189375925751734704986564052795520890533466319492222697708894544017208149191048469690511643534000209694841066707893254728657597493889643582075686918623004615263134622809351043048751691077784782998473531215164724253336488524337936256308859916461203088868233155011517642113741383503560746119883666500279460381288491802276572911602504921053985136510386003290223208339040705506355408011872808769385205929759541930240452052380708814029679990179572855391546198301463588566526038112326835461421158748858989843940707006596006601576267521839660336270412574013022247870523843012365347847068923785109682185662963972550329172798864134976586587959113303071809237602768304180485630108285485660135238760638011270098593478618528839671232766654703679204731231554443535572436544242879857174827355235615244567177068066667589662065345488892209453270826965552480245002705613441643787109609979895209426029316950636207567358591531158632694805712926618901923089200424347752276402076707641025748734396623994455714821534282464688907637176062931207585725879226692775373025405911503445995879152245147605856131222327350159602993185795598700907574282642739049757814584700902519033087628226854038227198975541191659656574248377369503839614865052069519428780502663335636871670042713165413806990070663494713436067187419609927113163365973831162412871170734964345340123773670324628369178124555168825872630332290551766670728143887103113740749708789620538440791628383644918771616546061682975465422298365163912100992688455901541249725487378165782145891171532556177626805138247784151905797018291357857951576368687508237311333506517990501879905547440530687621348494332641284590949419239472974610417529002141605529959424042408687548174214665396286797195031622216743587805354423012813189555034102125197651886624355814453890176054475738969648255505333876706610757109436009775681088436728413581119503638260766414599438727894815788888739871476584730103653844375815985698772885662045761885318797381644836540131390326864106031211483426522846538870235150586978961570853170883211380427226128540237216991300690916718284139746768833800774199698429486507206054274999619195058530002279744864949874069693885343896696778678073566869220370776686862634832450364126118871895127906219436199470441805910426136983431506383762926615372158853202093944932017748781404908514557596764528026356808386862072090152302090244778684918101816035764961694233545161668661809355530295147214583816625506079515891085591212266242643671133711393931987923163478780481928790498441545209344738741844878314414501873489592632603433157302936348746503382335879246467396339123510041468855056419161792437325992288927574588342905306125596331702059472443368569340673119393035842946094360318635175190329152963528461426275862581456012034931389099091305147973881076809858634967558413099963219582585903809888906903807299259023283612464788280164709415178922832642006984255134049600008630758515252013762209708582821526465536337331147887075544013526601598702142103771731033817308846221166680960299251128741406543183722155779613312836271040369355528370715203652275318048092722050919182003158817873854075565685970056773849378945758771354795189710675888811525526584907072843891254813081452212336443158603719992686271361305249977609112786059906871824240543257119807810222769732708776822724958640364689415982640466371799005314713378351853611197258919406054907330116818486772020203358238677453652312923667441739935931716550619267468722864496114777204863186890451836758194429897713275637425363457605589511884618450048139914922815367951421707075206889165967392246529839070580385188674583902507512966697867550655325301316306708614824462659623737812639153905998234589892511130389735527804178230063046310491576372088873523957860139157320949533449477068808362365719694904755829596310645410927377651669125723373734111641781599481542240102836615599070089432559077801268382625189270178872179017928779011954765096996267693730544241656374395655610113320917577608613283802670503540796338922100860052998942094336087914614860956158640945073808838203019934502443933378189649026768834414852956087994289293621899229076248872106491728847499307185683999659228647040915330372052968189354383802987589245335508507685953255831031051322599919225267258688136890079679841387475351663367492873155702048541507604945742164168930685306984940134508097818297302232096053023492549597485210857109600184283193969142997306287089759414651486481858738513846211079496623293341822683581417172281847107542053796527608657533864587466228735073725941247588569599642979655461859507573546019344510264541855678831627034916894832536862783273002315477129024660220905731766348200058252493744639841874108491515772579915702289119003455667520437394146653567451509844987370789444780849958682466487177309649563000998705049684665034641645953246234140064156525912580844448060655989973312539843452791746908718132097658944683115820932719670027513684613968080174667037076637352343076006691901039097187791052660480579244191592683902650209274959534064797534523318166916318366246076152503407133436457812513387050523576490247599262930377680107472801300393107131968804877665360353006129240920834932052695521043971908449657162146495959014072932085831663915099209512438790866419066046818528274398632412580578322253430172043573915740550215744200906931165794357319591866967708330410418441088118318938864957599535314418755136109830662409162205811827032456956639583468952637824168628868045728190748625816184454299398201800628521567806770366676066221940780888542936627884934241031743085865075043774205074421407898773351992474761233028786454330232636417756621515552815474809305094264613696182063940843653685897297433001174145284154625313285800808227991420232080566221216563913122423345282522112639105816566929519706692524847243559780220966797917121018466855326815132547788728036460829919622955693164201731757586528003383237921275713203155113981819271143841805671097338005191068476591105263659629478639813831937121837147197048349680501628671158471332010246335725584480347712333167825406136324398197961711094628469282873154571811899260391835599974241579688412761581140394543890281460478218558165541940162434707991750446818387256695138431588951378011972660274730421443848609508189996529143495463782946985470890796248470392675609585144102163605048427355003403318086534857348979241958936743677367540487439415900779854367597813912746349189633108328397263212063923196299961200056393584328375076374188844082928264990810022895358430507869761830319691984043281732124773464313401256725778565397932157766835040015060655026925370362154989997809130007120172726010446100078981784027672756616421953069226371669880734346003955426730431146487609822790484857129124834977796606524254188202850720401799604563282675158144108088077887472553429645923947862878720885575987842273589760226025954271225553915966566591500133194455034109317266547953638688630932002582664283913348602209612983066093461579950372408946019969352071308505801005062844097896310345019807484855625890066510295240126820874428887987274111580896950668884280122858456663677604952318134383905063167715381039484278839577932712592137274234756739322098369274900455617489139823644665450310262690406012131479665875339583241154120647020508737333654064026402641608753586711526632958396008841864677638080585986942791580166650572190184242774643549644429934621266438416969553718871772528207135125487806112754018769295725454870272082502906044986297545687729744771639809981694754445945319418796341004921186673436212133831534006343514453130104032585575568438401988131795036831968631543819270204100921759017401411744287336513348932230894773375221290171426616907952405112898520325951761343932113767297346600497274145845915333408712841252363341411912207539804258395414131046607421529525140054153272096526623399033358552546176844600452904611102851252739302610864415710615901711548595981832790938895565459626426843009261922089798940152598123630942941194838101811746393237321776034608779563291863495535718772748024552779029516949129099558722104418819018005512497732374610160559007320177921452485599222388394840308307137381336580874138715335791890838556850227121387383519382634702796406381924776765145328793440755106944666493073397837916306363842623611425412123302411554688921391080798802283435375711045549080545304212416898303797878784168630759204453484761476585767052198125443924823112026549705226125508442520055930201929910240612721314884149531099668176714079007265901252915439608249168813139375219863781572825860300777980851032934824667691392739620397153374092308791751723229050505991306828454667600321662765689822307089507200389563741752260149667516176903686967046000024440220498955752844359724429738980061233401270587991901637846066246681694683111036297756479400974474027158110964055619227017312809427945050847640830828328975050010132855389952897990954913772775626290034272291969474281160750332628214378978318449455314533628387090754290813083513969031645190035137732806459571566017048305017112460352920245717557448338656638027215065975691019084707587311347028651942472401796874739893070890595539090877445136027057703295816007372555742222869561908772811873388803774486513514713538074308409820728402426622938296567806967920084581839364294485573909116300186058180468746856056821488748401390786176677954819674028273385877996047330797146190544282341137403082071685291090601952487066043589272032700310714991129921389182117727439574349869877364697457046704129558189636511077573400762379285888242745868018981157763567427223664660985573305904047913593804543716640837499017923472891260770630776797460451590970486167592485739545003732446397080664141648164368150692332773269759732380186314370302086685006392894493084394511102533022916635525351575807220885695412041451096089293936697183346231866512114671865921900928619525705607432809891659362604196458148058366767102105254745501428604248274827087851053934061125719107713438333490706403186704319864803027732448553603894510094437405970170881943511854844554244892513907967787228295927622379254590888262391074779592189642567531880916620333763307494490672336698596864760763663305919289232687127216523195833105262613471818038852789228966544950685520638302937581191682848853329692549441854611530534348367556424262426918887042198176072679393855915534565632889752514776171189363146958098773001140178220486722216703696924675939050430958596507255490310963622889429878384957301565520432957534220392965387022322533313681561822888514879406318325691690116706706588588619815197245291517255880904139737006992673548597948184396278555120424735296470788005369978382287030770680129563858149483099335660644844537344942878286823391481729982263446655093086495098248233031424724335930737930627882825091457786768960487102139543546443001170116310325335223157933475433840553649770500070464327389369999868043917964740545440665023026157612704838963653399389236319648142342888188767607185936651726391122010823953927967451274277684554311666437473951288200076963971882817934582379855292299378397635098853703730886042539399547371403391795168236137638840130210061900546469063210508309688908278032611356803093818282991125104095052419251995394281274135003116293553510396489121005584761137394540993155656348028452688381007006815856374066013928856674027789084176514121800495566259992013511596704982038411508585538280627250866381136880131933763401729408245376343564054113513199868439659043763597354312830603835119159993714825461951408545986216144286848990825111343293466862466919175681515013335495433166303927517624322618541727053304274753607033513760892466276153384176412459642555237413849051054202522022208937399039862417772286271615578696777962302463104834274017140437389411330488359589478277374624892743360871170206551337677845635216941947788403662133015272776881654628727770947896237012017235929252649077232433987468461973399989192515567837379136361946269587356626410456421118587311286076773206398487257356171008408093358893252684481095954803496420461264980419549469117981263913106824388512584770945653215488103622123151553308829504396516488165440384205621183388817939350469167198152401974300258006553674788114785795033354745733984084189592967093638127686470782451151703865080746067383026566237479351752117876497614444357388852639474336817354288321962421551535767404577209380669267438074000649959525453870633468531289306618417391526780706529603551692029060346348802505504641118634662493291408508743352319707449205815840500913706525239920116178906591299973936737730572769508592774393155885581046710559928027166468189039103996215293372233730192177756591540652173952599806431784648038563549358764721206831509952738197872118823172449687795377758959275497900720980635480394377596417468547000078582285348379797484558366346645450717986405948810610663201441624499314019105962845450406732292135569607832274147732919918859299005460958819967793381240646134912629987035949040187895720431142409591849083801841911832205821219227148499644347309379593657051310432362528233854575443330333082491185337610447505589320729374733803766778715313497481784386228804067629421420475706357210857710557045911355186892937386886519047596579836909459193453681437979850337379747078492144679260797130135820680315923908115786960755706541757482581994358106631444111438685247940732670804734000598369309086604587846823117823175915223992970901088822460030885532876144026928659713850732055361970601256230569459521661656629083759756309920547301075149231381838505966220994999130138958707897422001611580903933315984903780265727459511270800535884170086984575623420427131369293311510335597669734468770252292642452586632974629133674396129391550873885077514605534041408001529071225245811410779927351753012442961499661124641129675699310963920101222364177342594872816341950713521590104544056275446288201094783731586954698118652182720268861731208576989061044948512997581134108024850515036389988356606492626602409196922462464819094883818151726930104042821340626147795671198102392304597104166686370284122258121112707929141139986430136660211869890806600021418107914042046692351942286016097419001014109706220940006690779729687463824651514472816952199867457854922681859839376931768338801513860643595846099211581838425958313301878225505314230704584998761802425113592054870637063846420538817197265597774619959865731605110632166845587655392591255231866133587214904720176612915170887766325887375478285255466187499107789742691910447334826295236745987546498589707839995583888136269886196970317836055130125099793232172352163358677388694156158647733055731163646486821358732337583987774817023184152695266912672801148728435656944837002667775868879524977896560893360464904278926821297136008868843834960120080629761255623343213809410540361029592462139265845253019894843234220035746625187008864646405330448905819874757630876033639983098770093293405101978246420307236017314560105515566651597960291535718912368547736441971716191131985690983143705507469170176551587240582215385915007835588861964360408763491402899296947401484118848728084409736839271216990148085667162697806517715358315547840899794034207378393953735265675801874724809885591131543015861100968835243424248612026253236048580349270711089833888914407568282567406328256304360180418618657368114498529180613509575246112384307238810237172542051764220927008414358787701113491504710555373072163045977571937760715618721717518390847057071236501884922274701227769593335247257366520630756859658276835544357440661267151013069843270019688534124312951883091647000783597664699564860099291867995027891190425679069808530561932753441146637074314106303618779606205332554264868146614072443637796237878474049942481519302343615636771884288630810481924454234748279296097389779777642028043022919622162615972631931433112292956808406953093202970484113987146164590175425618801997473264535830622489962281155954126198964307650816871361348336330911322620674075629761575500686440333810168228003182099509588148522715388216383149375875255201434494129592752105685933069480770339987585504626914261377482439392413288235005370886128886892648886050804249057154895224524243921766920086517858406763446671578824048245807048528601786348122413784908293673694214587533070093350575736420158181483852272681353166707690094197865965304280104936310734537802232839934352700197605188194122309795428504004554282784896555401496735385669485655520980707708694773422260972870010887489599870971044222623384688502079509454395301185103466974108093044096159296879667996848570122755662257024244858054001013766269360859968019630689406556480114616368204677349555729654147285682113850865237632012598667494790262579064743588352398021672475127189652957496477572291494479476525584853500394898800581693595481313841515352649279368909439649579182848791956774995032548959756761113801849098094289156425528306900781327162345915505855544735938495100076680037614251547560737266541505050013487784405524924050720934840586443617833318200430298610427551329864985070321010642533533215604386309362514167876420434188577533056102864933815470819661657353113058874978701218451494081343608102956454001093821176421176813071971873441816777616816431571455395249448490096745508602268974490692829534091577902683017944300103243926267960608408100239842854003864570534446605116944291024513197626693828591229670352808959172529590105130735997162335193411173169514863721915189410064536433014044528447780415249346670694986010320720667666997448876400850181179328314037784215047113046234733644888143187210537560835504418244095072550383237236416764572288784933447432989652922229792394979776731095239570969595639479317766324902432823977126802435954706802339782494270073192499175149692398030621917329776000150283791138332675608233029587508350098555293897931942706916799613595834248888484143040824051757131490483439271520752260363964634965568954037146168697846449329215405961726498627872336075507898093339549823112367825681317814746421160184104992990539464595783058314467773935787266261634287126000999980365091671161157032247857076901389281090789392996296814475320948550503861326459306331098122418882248768777994625581570340892861382831361639208174670214500861235637157450462774002360372147940183196858269297112596167363148787476130407324406935957293016671594139765906379186800221813076300254289814077961034539559276614964606666870248235918623219663807319334399314367426761662061542910152554991171474538731134001363268872377520346266163497670981307277019445191166717732676115802438265568159855904125249686373401421044640846996072186565433826988472043901939616428018418200382432976834686663890956038421791651132600686104881896895719691815003559976584224974075181388972264083965986567563169181393943277417157254160704478460030305062513206864424960653989161276784571492189944623589354875061539016221988253826347412477560423312535985778853675479095409622323447442122496965249840348007025590379585631547138792673483000592391116708716985352113375751258217382221667075462194491793075120381418506457316053884221669263498125795203933781425133253388343531711018541325563638522706268937486773772117408118644789361726386316450641169086501444778791108886458439732039576936911772800138657429964257686039540124342374049343782576838174059933709978370897607593572792453189470468037893331187379493167915258986902819175767044861381432970223976867044435508607471607740334601166469238298602877471621076158774891412346787508517734214740599141671089291807860749281859567300517830991681426833887113056043384606510061118245524690813317461991641940409469403555776230607018528963153684821423160078723294847883194512126457136912660705252423205928859078713123630375944851178040762721814891392848922441425931584819949893079785398033761418693304620034612455138466150903507721506245782247553474949660416422199288305229018714600633451714985949772267755819211766541306505695788427346725599679530016990517792453820556911208819708745793359150916547282247623969423438354202517661941979185438280829333490922013496269720719351642356454608174297380364304380480544467753699655435694136334248410855872786232193540572153927148543179727728408931106676672418166594871450586493499967081739265471013097283772314468772139842090820405517424787727962457312884656377608601024055826055595094216799170023877627224901386832319380191567691362113730253883197109599998512116113636088810305462602265956976502771247700671039553380451840969416320799358420452531565984606842763205286356623263586154427830484699574598952411116176999232794594200240720146395814423455776947787364868183784228840665834192227580004047672242465052265946976194867575215797891194347422412311952866643099465105148397545727494911582282639603649652598349994618623019715463819454112271828629582690906178600345301927477845064394069330061636298948151739543544353493158821111285693015351486236751673715208445267622630556854487922427607219699480195518731878089928009708183455202680941488573454213561439348110284305704376376671750599341516446173794296129426521935283894716698372251803926247694405281392209423631046244661167396131057351177738210235020066181885522154248679881670491350517360945010816811938524341247247525206135369769529429599066538304362179132115616663601419985867488371887274870254131438887939885194648552667962756501315446857561503150380227967843224264181721690190374506882006540971901556591335881695500643272604687609053524046888261770023025557729228492441502109907854320687286827609054374713569415286307807614513520275714143195043371167470086691248013762220878547108744202555322862439782515736112618211787553034535402809743958233993338669609358065537569592453130918085744248748372066839299081085658569344277787486648046509438945690765771988560179957728964974783799693434380939874531426902202661019549003853973054638723488034894713800418614919684428164160417478133827047253003185300900102478991665614551676894244339853094298369466262780370354062046103069068600803393766416200363538122648010692074707959656461367480571785198132947594987701377788222016986004859483642089666175918872908834811096215563104759555511585236833545482847869819573369166384208081046516850102076799777082579472594939801736979938717416938710008236385620332766927438078863296265149516708757841320595560515248679100024726220762021652547836427024451773833730181667826034689517356208385387095149512044728746374153271736464413498343967276174797003313754527053309212082801255848146310074019058042501030166874888956662210860008253558256047602340269628251700911634367031377667621830476400850411243579868140856672747807199650215781557797103167475960991885251434379236401249858451927525164012644237287856689390954750708437253753548419229705037316158376045567918046496540232220814019627236920462540665031564790292264051541342676400106700477939480902450806823805332746717125523206232047840152820561228934807497496564023200821071323486656690461386166010888491801692680201255509308276680589431238134840505509359582195980972263055495435320031069335686240089548106242012890739310638103698454946298322417978467062036900613442966100609037057338314671607508778968616944474819112638415767292137701614685090086265693518938337279878747671022827962446383807213189153490525719657775729784723109656617403057716078867921545719266240641211763303436498927783539792894484525608695995112855009302825724398097363736811858214553272648359739080648252932014585891869772739730718448048699067158771051246233683423296202864245631469138668540265935253559256267080311071891357104697189771510755438272993806448335057790438065860829940215009916124226039455295181756627799932131354834764086754171519199372494830767449123915502829515944567003156489131678077031905096021776493621578895643702085815510414530140533724476373720896182475115579931275421254228078900657128659245791304708280245890308791858755446000302261443128650330662508827448448018557807491820823044926702070646524895724177231552416968006141215456315305938439977316528241917336271342866269990718681815816506277593712178357961326866592691331157525482664587008006731143659621593830487601733758886526619716815408475187647350985022108794795605177958703950425303158939245615240286258509561770423759206778699483292101014552453043614050086008827710453382390773493992179984099524872251137755611802635623732984759122464331109156206541552326969638387915564554293770830150672466214175522981564501149467005074546766249240355757574959278687839613589950587947548962613923407820906121830622284180681274134233211108769045823700298282886130713984553346644113923580332101431286943166462465556204819191165888981332989024998706008064809488893719158076768805082952507664821636470817860451496625583832698079384757432414502115902486467684106807518266561536041130947272965234787983055859081817896613294814889820593794435602714868606880448865035460953399507003610422423260995395711417031426222936170632944050930289020339506135361756628863625980130925211502962462323606548654045282398698628841277727183804533323490576648606048272635604174202518882351376916326667419637896865192720991288718069487172948550435878255586255903855260561849858700310682510354566991042204819853277891296824535250971755550228531749004539157010029438132277926359751585063577703535630010475824777515966245312818504799402676700359982941315669390085875489658200450503178397518971012517977972901027461620272108120723638275308266347092305699683648110976442331003154515488677297299625996693374544180856367319738210477405170085623112744200330897027485892021611875412874983597077075773751272002640071517783886730816193901780561174631593613530581408217611873275110971939908706011898279643239893415976559367784668082656109482455990239164842353829624483021710575189677349475866817657191288144622068630387485004944052631147865625061761807497821205007066361155627636656031513539757779051512235368017800318971520243174904647830817544131887422481011806954135954645825435790395538474025484776874146383521646553983202701615310181099519965774289744518329346389073724383483000382571837431613493502791792641713581997634524603069831792013315778256031832292428836657485277319057511119931744508355953771169537006773101080549747229528230298317918001507111560061726405011953553650661285092277094605990319698548787729378801722658856206813557334091224627587138766080046776557338887559863370058083703521526921798821950982316853411546670900963253447031519447553181491680982942998761387595546051199268299870077800686969633045194404220849233118693295813438291757687915866749376617009698096026636633845282407014910493019378716732130164246003520590937515752006799663160025632851919257258649880611003109878035175385194874680169755927143747096313367212662058184818904017283050379871842237816385661427163784332875439473021390056497981459846080505446524116739317245282851046193361512680850343419986917435859629210676248116382823819824772767758913654981855738730213862305469835209259351687704490276461607061295839324678694645709679122479381249544034903733061552795092959296794756453372946460260199942195414979131767822950473509034740831354201341092297052745409536450070434866172969077394781075772119829877030390700169272902440593600129394307980587833312014014835551325652969235447625803686757143965188263482131123186125593196529653658675572256529416611354631487252411285926604248781952622018203244092941038983630313884601773056249440534335572744451113804085568384026125677923870336542786286802673870040985315639596572356963707563620744193710342146882409030604684184791040533602838249388409710216680663003642622227432836687395607149293432637606936976071740333995909263697886745101697447470967172668242538642931467060842533894521413404784414278149551781142287505743005219081778348705721295234282642102329446118525927960316424279950651250207929275980293799062632981948179324238246297195609330257685463889473528047275089059292580113526787865357455078909069172176235597356610031996980434628350869013410291490870023330706902115159160642970835439616887179360825622026467191761495211566885376246555071603565302277970337642536674114302537345649460263966225782674954894857880606707238212609788820393205427366665269435645906586854949008689615002969106743426548086138580979412771179540865225753210293708872670269958338043991826199815433245676602216654492655544091234201163991856681209429814601168224628455200729379284428347357707187653059254921749138026967777279135838057182296406554867164027503638488194847165647647924315631986764297781470235600765693164814543783681956591279911792821552280124289624638662851955653696629815883871331960106895583950118088368584372814455944584895861990663577197887101259927590574141164207041173846197141861605249963898154271538140045169251974629344208755006559200816289396572737851549118373111864985828472992056524647567914918215699554860895739952598863998733478002349191953852950122013265560732478839918810854721494833503383481037082172376422280065287616909461824583158985291866665437979401230165454108070267705274240177920558718248188518392456900158430820363450509542823076421160835246904629832948446971397401480716817953659858862265164597128165555506840171664346734626735780036124081352344376778855112540569079077154648262252151690158242822403267238054195984491343750209117287551054355881780710949257630408952584819844652616789809804298485231849096552967781013696069160859384296027314092187778213526356356818083818869954388763231360029470191640506642443805201033774822231825913508276065183845058992498894047355147347000397302576027980772486027173644522235948237079340623962251721157391744289349144315966024133501410119198697118800384815718806589247215624865328281524247439185103280906077997415501161445321336230587283313500704621101068245144153791099438847211180567017418090562483334086971636770424263179114720738505009101515424391981284682201522602081991563869718266347270935337542489592052090673085648213961829525150514118456134818720911838425826003392651579490114175030673525823341869500561757224714210502396219589699513599771578117117242398916354114743705127435754763334306486649661332306586623491299246716940117706313095509494535307698607612312489859666936848366960108107850920854096804047730374428550742656733835157371633590495063249937236504396362734223586976526257625435168395435208735918319624667655668465410222009524965977911535225985792312419069237597574859301308001225356395887454662960051433308302424209393680258771710195039063500583794419097264145707406383764523494520275711080158129953338526867092007104594222385087308236250879989913480750748629354091445076563901934827229523856645972814021894494953189805725959888345486137616870503751314925719550476889959250957454541118070297675280544099356913211906124652989633343876614778543867335892074298962683526658616054109953944470826278060238805518995877706128886077718745271587233509790716845510504835526939840103363694311504219233366511040684145223105028535496369185661909933218618222062306903907201266987534615177068320864539382240252690596443401679802458612299588162574528790343864911810277212840917552190641471070974853648858598153580137971023007926886687413080031982901845611047080058532589705852954529703214131443218334502003615242526867858260326646463342351205822506199431419611334985550383183092098508287851192379604328269215986825597758419278553045942509672914652700713618594111003148772164172726439855724578202947489381645973382137514061669923507380316250246097121163580655873240909079224927410727252546314947545049637290655714822038528976171096839122712544548481686034332250718571056838713178391794892849279189876833550259048830011371948106917022091275151202493466015522642742021206828711401241769745941428152924260305218523624838540004613493973121854463648252756559893913926794030828638024166576337288084921050812906739603307162977457161782696187775321766784767997260312709722989859027703302883147327460203994770492536625117274102010430779566282691033920639048145420378792348675584055776495286918394684919890367240567770035242034913897644795353217068142342370187522145566807242703458114171552818005862099615273804575034426956475061438313799840862824908631726139448086230691142673337283118564819138915369036046370388053292722581293728916521690109443027757460686124173502390717598130204335895687155109960046173030221646566252799261438271410154577663283227263820911535682463931800892734093617228969125627400510934379537608418470337154526259799931199625791633155454430954924012888874861129738309473571494982628144306601975937339441807088877921015566426858667495777930042693326004502724585486848898023347371456250903684837350885753164119228864851491463348940460408691093845618797158415564508865179032842279868032042847471757227555645689237812899252685041310656352819632331984066398870684028466344513427299734265339425764974470930705270167620905665571675636327426895165920423486569741624900003086465779155192240070710543438449601413900133553262506959169035814648257800710467073514267923437012320914828709622546421023309704935691666866465927436775507892353817632549448767287176083571555366159884359258593118795585071437971531775559714845759152988457934515018169277442808125995980161768628369487290985275822153002324007535413591676963057096795648517574997010813936228174463752352651609072041513823610174857258358795718657049974265216205238064214260256550963093465849667950616426888950127012072431383484811443190090838820405446693717964709506419007295870573379521843193332478492810086277055498040183565664710943385867641046072893526893802050991602593218312962300499081176201203030804088734790637187038345852545537378197048268681399434829431036890727729094579810869079402584254304964611341870774681536759689536304622597423038594403258028364063986205005526347836881268729737771997443835554741838276862731747607529367648635247939096068633774906714939944387635158529911220368725223731482786758597163141383326328316475514725750373227589220798015407408739060196933358476895181427443609835604723322984761904872354588707492084461529466559720264078753334506339677851878170913095748588807425702237233050803692988990144391496934017546416405302031229195892213144708160447868743243754672751753048600456326974413354080094363312360436127321436764951855548508703241199001971588292074506051360400146780686289122057499379158393044910987756883097005232325569146019927799133837101049874494739936974128131096988063854233259955237613796674445752543752835578173019228681195377697899818752772809187418146605984718303312305780211658927956428009698673799144905368397431216393684520419636319633124934290109448823509972650361624613746184937791198788944739784137249091278530336530461851878129053595267321787566934656991458500164784291549735988980153844386574945785227649395169882097989620662093776577247268378113435270368702775686382134349136106826954754460761057679761266157025704842984801110639489071325660675504715178353094714504335877019402498599326204520541526783575589541796149315563104450842672823840441350047886590060667409995736160256966445882996822238310996874265169451446725818821258437487391131852184317473051162851809589334314103916892962528627423710286558933265871186095615380020084793125443420340942766022760542390669472602106694272287822214299091719390480290803622313769195788993120830246315117024970650293317270614518388776900365929240735494723345969141012362084398661671388298225679956486357393536333396565931767519799556545977659858383976143443385079095831924567339284325097072033544152110729065613975037014318464407986229299837629719600554367605754783343133754945593161360504919394690302845596190188256987738239007593899276746102193371902096689522833244068806367492203319783338481808552928072583193944163851180756259505440148677471712365612412507563987056037370726348106432833038741197564233498500583758686430684462652485790565540544189637838659362193612874175111992365306140897158088233670406928016031952586651084719886018884254892067281050752330684814368596198140093362470247866597107131805264122081465133302745571626804483307866938118795162304869893796022969190366688248824129030214690846157525558722277416149982720154385724043318293649800644045332646378388557114722949692537240444089910652820466847546747814158680865454649058851493051294487836513531642507036726522553328732109749651451193385890018531135326998304475497179331899439032792745923594884458785818783044232395795243429939819601412851763758674909010810400868676707443223673347107745920031095685185190609781378234037967054896877265378058483136956192870884714575636290524357504428269138609732466480014126808415529866702000526108252439291303104479367584795284471458352318474417730263320064114548638910281004348788463615760901432620259829689453994348233645061148674062800910554372946008242160355478070396196042844175279614969098435288442369554529727245846843854715387472504839509111758603485963551599459898282150475216073261205467162637156826610910341599268038140621665165195736850324290089559202798743473836455357610252221290598312167650010907146242665892376496463224095460666914970740924247321809241607687635874053256771214614781824072780511429041480054566194820031933666337621114131392056097582133774293176877741017890158980969766039140507093533003805765646341716047583352421934371988392371410670316493504211272437379080192537524746392926375063842015794023075541498109245500943966228766366916615074527961912403291494104413928336024412921104172354909402094716696507326326509302647953190392632080613132063278047277689694177188594137455647054903001241373643949840558316032644197440223133006084151982126890728781923175500221337140372071562778896404830175482132335322282055840749603477674152979327288995834038960351740093485036815953595986037973529498938561280649638930944622271954728778586139643047166851989289393964029604228540709620212278088048438974650753726362324631855993404644115538909307506728202686674804250144297544784858035084561567396401437080820055215386497079029879190932875869713747508379310224203504832192149733241199935495595105708733022930420844043469219088674764552491820298141676814940118507010010287315078690939143804940136626365595658667717587855714760804819720320054462347577785715480473517610166076896475129642757107765641332995349714128098003185864019227726448628029647712540673000960019159110003805411931008121005949783664254005361158406486642662265787408522214392797690250858971579551435067775664365670792348851951824717313468184490367460181985362622568758578726158938451050559208934827173850089876311526496831621376792956344241971142790831121179667094893428215302139416359941110411113406533005337564294325400184971990115898697835501918318896461675354973992302629729342262558404354515904336238328262606122054929319818388950869742090149245573610924755478956671978295167784685038569135341641115495833435357657715459823198190719785114447573937424820244494542714361083465631364751773418699701597453353577568063088364038821950001520407444854040313031604410198215704949064333524064593838688713061411887472800784418739156658269579570558331658279754310208000513977247271338330639804232953897637960169161391404121944739507351048384795011229563413888263619671201747284788095570595456819571466957269434292870131211664971266191796002943443132590706178799809193609638104550567294294955669636297516350417363205181089789024023252079364592439392901755377754349189093682778866027576027864916254391357588257343137907698488026177980428329552564019150059617139145292209763727998140545659481429973658584624483939840361956444057615995787343058884998263876694073211863927734164868876610322780759897982432470019918078265183211086924430233303917251814906403978856974583874816563713214395650691795882362249387224109159652320087969599741749113023709155517036488702616069608025667037636422995213148298215226637067572282704834926993122544875012653209775846325801627002916909703376887228586648178793254683237274670416402855444461283729900507510642155379137594572821650981513496397419659538338182629438422928770532353433410569928550655673379513331631265919691596591008285128905172339012461774801682297233465091372075085659309783733320241879553690957287148015500267000291060835170177699750352718482300088271226117825641944341462619116523892947476321740093896637695582494852852689322554667641873694166545894754574242061016591116940289621949576621359402595781908561971722735490277743615757345782098036396406860013252492812276231929971714335570828206732833056263013471750939564186400651349244996616722710324245949050246413256587989021370458390544551379348163162127116517043578828942164490163788570108053028836382342107795399102964229457330304987685432143631369624829531588754971618059689693644533948878911119774241957948896183153975535241609906473131370453884948401581759124662265407488527436070168789672925809248883144386820039249900718858717141580415321493979180882807685671190162392257647207786660521312465397337739464223723783383852183922994876906699236471302095818735636238838538791841025084739150221578018779577388181722739038184196148234617788725236640950113086282824763085447492159279399583759894138184560091181728733183403968415852331184506613230425768459063019154046473480466840052888020251280625824751712320296571765126955568891910722062348269188104961519076472346246404678764893762844316671116496886224133503163561716047119173636878088108608097361675725692668403029230683730296352900191680137579339921354398555020619373122350260027551930950267171820602824492368101084082251120300772345195901984462721541961059083998817819642660292984094594919495395636958941373729620008823618001102557138111387125201513344113954254982423216810157941632302309804818487964698552316478467620938006403639979870399207703692958422765858664531794280552768429770245148640640540094325313504573689806075639630537591487499101883404679261759861114219756429881718198307553427265017695350527774959283500876658850732040662517148813969946773048065544349455199474731658813918291299179892787204740964488989257272968771012268950462678196928077237404483791627066471988872652636880392220591063076388526168473630952675661274169357302352357143085234088389399289949414078066341432472526475109439696383324368191977625092148413102628380021837259433237691360624250944361598857259370396202182083565356277024792550927623985637460408645352268275016804212094786961051899089032727445465315170935807227050084057716696015697165678052529387337060152616422562992768601571312578649130570293593697936427605985809610344528822060904996163436483810797916763435008216265444041536776430068153085571162153037579817109901032617691188287198193728276613885134230946621042207399136048947519262645084171098324840999061793092915600639571332473113673985324387096973858643326263485557263875603645669403716529875049391278412406219492177198166075581450646343020015140607878573292578435884058514900273838939906018758645613635617894127144044091189756633622017663076335367797848342408471162306051272396927495293806402145765807755595158425840088557863530512597550414236700158761496453411826742456114824811828713611627768075538160883879502323487844230791005206974150530386301916079060731281325479107175306849697106126678001786777951507871247529763483605551885858407946968933124761465175452199602669859850487559147307097087520103368375979627398951970350048581365077871249597607357839088351955443697368177022658115826973407693058312262698431121881911009865897398851733451386485672023720360563938453657201376480816212309061560067378793875625445280596446693802655664149310100457861394203300127989665140997180453197889815323673467529226052381044094432209570251745516821004939574669523823035982194461821088408727182516711450938234910728917075363546466828292195976858318716338006147496384386019104280412031425144728972949283854914165969853453828063050231363328296671664625071037052300274765916121842426296198321484316937756432310284865213697081243284780228781574157517000682396390059640798357610231478632645528490500269354577744734710508242557339171783105385219559209758695956416507456948232645551651465803571177497364157128731343204282281510146150643664462032379547231722130507738970953485351490095547812792596730064318950836237926769126103304310620276795470084301609500146345940207730057623137236514417885194234894326574551615174723532705827131226864791373162765021615654241932582128208197826505567818798576555232351417700915264028086673648355150928664462088096550583094291181645434879506572796261195645897636501526721828031643888604604669996363612789235840845801085423857979509210546809016859238099308037614750698410889733688092860837064444987350424196702651377955012561797078531477915020736442165255838687391307559192173310187968834263162169991874318976570158231319591994274668465379142104948432767408589818047980830552489749260577887258871708224149227598058845268372245965503728546251615003728516239809848282906268528912728938198318366781009943141555602109183908524917540477535158255639857637659228834990328562390258805010671152893082897817840833885245053057358545166763157755601991111551466420297695594606766882797260707331030763424736539189399810875619437562443274890682925116253477452181745314063383374469258298653282199263146420577208318986624785887150322237989559989988761681760171345264359142520206411436412846111471949602374734549130994526299890868466704305068372973614576879532556475873241849151640875408321730620422261009501944647984690803493560956603517306686747494384462637202547603310242350089095075040724097363407799721256849038835806665224965402197034399950258826715790518877748256362612542132011380714786935444260942610830889917313440970013608623916157941395789647378681003141425944007383803465422921958107701334791712791137907516684069318470451274087624036225722005151092256459917103341459095741906663854969237102969204952676547019551329322585093089425340092938974718322302869242283782205716578580079656968191387890434540485931149015742986794131116024554479682148703666956563650604976617811479760967092054601050731472406835590508439239970256223505877547580170667755085345722400136358766661444328772884054229401488319548862570385310350279293663071090964967230749405659644998163000930758880680468861741547143386135103314344418333895351375829561628135319127611549615675033320893010978131118592091653583670956656349595005966961810660127404793392444636441913673618505326742854048646431136212211654144200007704831606524841776657480642259475908560281776315103353590527103447345651513204533743744956641005017863355346620665747532089934357095787038807354524001821563277601005893901936417961133071536820815511726520326376117557510545507130099426742847251794760322379690394185893011347731145699541208969960875061309230348746576945536743371387444513497123020375624662866252401264720132697614919336976425930545674693727368113656925472481450944854951831923059567316029666405872505673202644216635403108918954655906064677873208830314431220243798638922038080859872823352851464421108581443490866302769059330475403227139210160183458203411324294988728864978377315775412995562876756912695200374936466246884408451838443025757310295446775986616524746539795720767243422385163540861951617411931947761800733017187937747446556222991847204668322120128840510705816164383789395159705363603079808125593693683724725084952280164838163495366246640644546229343653140812544945966137558492842182335391030208503201430100972258515426486990413228134278715795225862960124492548704223519304163408441682504240475246783807585463721120078684996070047217356736088961073919018851814746811138658313228165508537985922766418643088638874125798756484242527718102364628095138623537315261596853550703995734815295759798463655638248084181905629043082962770432508874727557082509012720584942073949878761653249005304104221511621971682567326875668529792085083476822861129838169588267187454970177663367472752840992578487080973540673600902277147249388389812567495462016692853568139487047130512577301573504920091079499765706404237885880136978267370885728183523339425423637890279281144725153755026961795848221923978540654133570863909984396554174126005151425929208421182851639566529857921782413557254142075411975836855501066653369697322048045915143809931623264395638472456550774674683039310936343524172250228321251053775008195333916004015991059749623643512975039826281137918437675223864324634438714111338415994486433073101509466775178043899279581735023391911384629734715790725612203063570210288715562664043753702044837880127788868895571958480111339795655723061904747905349287876192844587535191502158331146914680787781506418608591799125419481607275507990827036809074241345518630551197181512459159526307069502030982221672041754231593861851285133274834896702616033838032260526283215234921672389687006242582132429994218879781796252861963194903051016794579711236039038701294355007300354474013280430070857827354937310978948207021701469626749274481846500613012375004592767064368986033033214676845672012399818708013247250081676297869047532694251670245164316358912991267766551333208214832953925206977172658364533149209038386315307436376387568633200676612342019547584324572221007078942885260914400242259204417039690675927026597697797316143895379391948738350579234654285775511885307404619941597389871522827762996243492211426237425094761062135518548322868072209118821005770295940284731676894599979266678244235945415179392096847704528709095009380707060887102687469173033459213843914642590067869126652393841996643425875840685043915761503622032941951991618777609751255594316975976843873926224085689004560930139931073808756961031474131709622128821623761562459665815152695514079564756057804920544625704571953484028779623729649461909901751064888642106732139742851152918162786174993599248511804356711839500697436070917994341961437292590543179923953712497634981448945699622566716124167870032535271428345049932757392714813784325210068307635331027490384396752324493145052880775641993172003671244038434719261248137476375259671731071326686288321252781094802212590383333789964174714618223693315676401365818907828294650745154598666530966535012406031810549377760326801584977058041568545257401608294286348242160458830580835141140757872643325389126371559017749576517039482828162022870623839477564588642142357955527194439781276007803540146128986986118493859157405770991892436897952842682156979716824152212422168880098803799944084197349822777707496053862599144099822295824145840751451766097744613876323905844672296644013571882291087698036547361642108673799135511128640468175229067928145485413512206387769517674054202572524972540394978619171657295958273605956857482421993155625587837434677655268197895133977730069126542990531868405562435118638950974117779419770800421782892873340103557910625686971497684537417042694047636675524295897191489953636240775725544728995429040033497767567764644359636023896074071983734283752886411196943918730455167132795048998287786335706203962147165244218950633540687037337350954305861538080159567899413643107061957942249951327258217798258003666242404092441288734279605402016345744418292048055874279417684134654824080926189361610910708882373113284559103601772496046677744071664192896488476826779227564196055977762284644191899305180557801364334183545649092618401977298354022719002726239819248707660594859663666632835249345751604613269619269281425458549648405932444908304048059062565241002528558792360046215205786099027836377948239842110647824004979488924983638788790372597082768213874159036770565662655600616089827285677378278435395823839988585189316238084368050459871083423105307577726843255694264764213932929746427412024492269256001796095525378794265804179339049431800281685407721603046869343655632791117054439928299244922948475655809366377314877718234572720349461511107458596545382694570092914109707035732054459706446507281233229321192841255006421118367402831286850694945178215878102262362400491444761755329392470185219054659315146908202423958459730108490846910760273123126594995778231502502863896331417405673425080413536106855823798384690436852157627008085992477727947777953946556726977447148932237756896572572022914698026670126800543498628470808235561696936482700155805789690515195859488293730986905506020383747125475516900819382530622848759313051752248838165604809955405957313417054327439750702707239590766456339375357264842414986793798443952114198553299805479066731726648939718633921373597056764139795813197727214652468967027180259233670289140160025290823338407761578869457194587708278708459765358427117072195103141025736383224064040143517048119409975765161459319258415378786476716003973387046515344641426204914687211283070844740507004971098696225072948745640425344269055195211850671149638826712526677773022188816405860963829818920004299775810324569869767372481990229354275969481893136271428383001852925651389595026157004466500119067716503162021055139606681820180624440726056314529300102628885503135935849121441972183433258676884573394973763671712598860127853489939411333787342737883807619364986586924390140895623788928504629477167641433943780299850216868556150437097109765349100290129301541557741676140495788251395487806672548134505711128039717205297097401447327230039023479667934125999077376762903287158247864287548324448950549581043481149004188473737914154999656989029134683184668610686571080628171987348101205084644324185470435693245810645130463242683682028791435970805945568364077601442038932436730595272639810915689308490060340906801672407156865000978199578595259461019914623026239967796494115529904898168712109182492707073122524015391006470556035209631988520522727122664155653362098443957211943930117021976831817752332456934927465929414489560578655070908607197145925474271542519804831193443749872055019420176813612782746444406801986125804586084948338474324926382583779027667942099091492448589981273510150643967284912726752408199221813815542564133714920544001926671142496238625428680185541866288999489870460968885887700116220747514741214961583075437012952751265718562586542316784977968777841178936815361737513322450075917660274518428851847223393853832820369661342096065815433281651040130291348989760343968316125096331875467677353554575486587066054227995809077613103383851966604071540396961006467255792617889256575262198096024118525692654613403196459189976662058449029830690242196835532654451563368013860965778376604889407299092948099657708622556681588296878516807754190535580628829193459447859552456640413570071878788404243183629015470133117772266021859548612546730770742688987162917103097281488516723249967261954656792417488204163552259715964355810265921415502229044136135286852439148530053293788365136887331347781046177369136760430556942227966320963517777783936146113196075297624538815780514182592199276845712432628780122088423004776714127537694095769467144080240206631870603535794902840306885132849267014667443807431433817616768560290139405748653806052562730132611571328775961157795917374400746014132187283615367303882742929446530539608076005180438519993431159362404479854255566711267989573285980270507620050178415386779007354022082047441779013929790916126347291158850835978704613062032867040825122002253103669921238625534181801141791903952156137056494001800231657825385392891219502048680145191803426244103412056966675993749499436904481568839284432860432014107396031408476314781418775566866186337848059373985122170076679427429936341801875428281086337423955351486353055264175208237284464763287300935777892158000486497847989957855323931327013427292279009528512741452525363515909244901564037496825324195537150875378535384415300595094336004443587838904699951404881566423651049867502646948812605921735659288146542417662144855503210757459736540118261765131089536315202346142324217248394624814492849673076084730057042495840780167671944225959108832659458994279898731574195113196624344289694363424750434534288780293140150628638767912324189390822120501755862088006008135722366355380955124789400965805429051283672250808439480904732726585630210900044629176010544540397681108562889571809815906268729275287239871003970269017875316670955280973776459925671619145042826468566571420563296140135494604918424418129457642160656236711520684194459474258319418964157466423064143843359707487611136153090098101306891681358435852311146205256706273751176406944655030056694642424865030286260841032419976839973045667866166993136786880196196808518971365308712171256731177034750314584236998660207967382307984435754303058698077455765921440807073318762760425834964987770138329953255680612235141377100989603278761329264931345096655612176091480038739767133447340380291764431755347147918526663745744180815901606972811317808684572689050670207488511464781591536032867529132631321486042614831853135271888401874045498573982564296957410853385196872426546026368043078481211672847906089040553834953480187319548034162423613614921621918814379969682725945142645894386226667587785731066360104529305763490920542548265245978603498016812436740043393905118192148978907007313383287286152661043949162944106722846098841051425570493562525755001754945789485329879544082301964629214980012001937495127187725309751119893854386769221110825086543043413611334980147444320067390418163748760362923082943037810544241775666864402222820025039018809704368092971941749465370436917526281749432656708663991031018046335152753730145817317635707999343652200630027158145382446472852986960758769167351838840810866164002254477743063037954337649225195674308794621289859613846401748164948771149770891108395278060832693496968588276351627671643314180360818924586051464180129492789981444700752419896296443293223181318775470876561316619293595882100905122952982753981579438293272635784292576136208365868945192970034400987316487985183159795259199769593282942338510800877822161101553374710312532932901248153630091246544189146687943080725835587827604506276895671848395919028316557666530615678438218046304450950863114344392041614682779575818814960791300826721498401742454572273571602368364877801666256939592625989376501962152024579565268238258422521106403063665016795538162761123247286111292677609620130997145144203273742187019663957201132846105915050458639110090616883165708911689108034723399798710005455219512948371594381157990787174838183798450028096472731137958056608244053987016894154824405417606504498336959550527968523461645860019721951026941455373197329838012320445549005116132140135941446960792341046766978088060446783192999244182510672042473390266863342310128541049025467157461846228463612989986024294510823899190620829366748924433076522942639258135995070756336426588012069032060473076049010676190318066108721436735372005699509904779592481654047187804044829215767192975375979890216896351811373306600254723029315819747599937531562599093366209804222861088024085700986719817118548684506855530845742554880743315185718078016140126373401328925629732467275004439897958721217768180381005976029134370599089737707893609673935130146893972710252622890390953555169414552973526643302277098672655557767785341625799946630358379832479559814996568417153803981777654818784012406022394496613241204492477566364494308866822084276671654966244922972540728963783077110070025560401537251104637263783058568454667848259360177949997484362251571634211779059551191537212649151784188460288047954671426285409939238630893487597821808218130317373964654374644630895590604928688574683929718403009995543610062672187199576478830904587480128928071587751242175593646048717898921156618899559008059311327766815024325862152065560000102399368524671271692687493430837286091689143490845204811595886392080272355757626304647877356183080423594587836887895902263510340144323269230666680900575125361127923352576233594718851130979322101819455554868485363190929083267977310976986340472315250236891208080268465033355019324980776704180455115858412439339604401721900617795892006794078885358241954307679678132255561073628787788034661519948689358526885440558998614036900613252572721464971227101477858798666494437904751850883631086982260852975871073450945110635343223928258095646582595679321380531640953983617661375972711318429216582330885519330369624741128393532720066756743131487819647477945595659093769238581201258487357496708201712426394145840942699437655382537201391408995816650167564020170123781411988371494905731052942624363045459976883359447692532547926686340542650392981724299728555544511715573413025507702549455796084230106238896905719006983012352507898083063551696221274791639251569632683551023851373559169972152254207864544112202843146046154032912223865042049103640315557684962396193513059875043921638647369483725012651827746860363153239434321148063332530573693532346653729750867567046553147573981409136383210179914819045416304880689532140960318710411501002429626319829665626539530219898480970003977649177849967624345067179975466110832063110186496919753570574009418250526027654615770772475036225543397657328527188742242141615020533985692477326186532203847697067015094696381648680075058505449447207267661386416074470258119836306850354509303520816507129731264956999729934109915907883814768625672834837378546291748986053435822762841160801378634855237729248028131024038331259003118142494825914218405430396292027710540770387912380731280513824942271416844541455510918336884350201751600888230329785903561609451985608532344551560290319830998464277305076234015399721571145687634839190176687326635173662691546184439044578634832178606446196582262105617247150009321372852419458598242404018274703106216016648481434728674951949794310053239347819687167133692264654199347051845471433159565250667790479089877727550444793372603224596964097135095862077164707404891439859079765917542362562187331737486225443485641717251168094616675616977035437751799850331194163074186574907516707227062553377447656673052913741141973417900880924091982736601311381427839513081139188808666082957912169208777150898365611875623923843965374204466166862277251759894207711393961026639721646755728659563092257896730950465202278122776374708057011519061307574408843353425511846893459081364478789912826974381387293652511040697963936404542528638049391921377477258642361748311107637220222138177700552373554044332965226478029878328578524627604086095610281877332499929088967190228954520902669756172562065457174602937764654047156078153909124899457744492650464079898908199662747976188419547879154673398259713491472406132964844617026555797445754442989271677616779385514796369662225100192000004783979273546009153096443066495447508225787807446438735111319536205427130834858192431212220342214591754447782922869914199179474194507804329508075342094904092824801188509508578343963627132896440194686245062721778272265842479520906295475389251836991712801193036327738306017198136486350316279045667184305953652179800304636110794040770534852298165072105437937452402511989724058235785004593926741389318586734719521056561801116904394379070055600725724870095542576186357638917482388606293214221694837829903457268367346642082781953880878913297108252649340260057468491264366252461492610976703417292049444459491293106893238489356316269169058465277223377303478410583108848421861924367041626963685270903275633521173856689386991178517136092294769757066220471655807649940169550656852559873255853434876755167117033784553635630111491041956499650190556568782944048781981171013874539342360543083224064369702407419299194857522762290410236833712489536103059498424150366519139844718088188527212882412955018432313410846951164978617558053976322151705685960011600087756291243120567221019216069638540066330169338755863142261647333282348086906456522111967738814759902273613803085312039992161748161667917913734156365711298583066453568167468918628091726527633905931556487384564498527565180141464119787258612353380163848339948931237567044525628723452227968105528248933728482329331531425563988592773388732970917903998449442434939233336101437952353148067688792239099721537621144265123137956657613294701837974351996202168549823161239480903892763414312399107723315545890156925324164083067092790324155425355320838116005409137750273938244780076571370366726262311624888521632841150737054142847564083517859123706560584244789658653948065846832061209535919156647241747422018425759369850818532349289786518168762908918073594166090753253136015304160585476704355570709628587488321696272007518988933385614082323439994500883905480254212422821232346793890776893324135291238958777661455307581177093551241750289939994573922819042368804356120415597269927820674897397767733035705432348008237390861599772477943175581061516742861560174925926081512433232470733822270535306047137342126767160183162650842325718972893153869413543837026591489488619710322291750012879514431205832791966683154276393315831300017646903769744195720951774924075095987061255574840537950860538244716342488803646234924817176415938726459368135310645079389720165911785533468121726135381047721287455831580650897840016489947983161640991811552886192027059143175493198055512315290480498460912770926065027268459276738110154210446565489272625186430040456801174537173578315880713824764698883188074153181978209770746985726422371731843668361965818063955170050223595935578049044317745695447959171899736383003087840295356181388243978534835074829728816649939897585699274428850481514136910681736287250093732252919245171389094764584134680693976294660800894941994131835859445508567565587519729461374331406920296174596501378642993596215066100897962485341950310680637855223500804588636244003481672028355751579586858510896360783363783825275401571354011273889319955431838004605340996316233785479188260920100193173353348998347623680513598226663969902053952251419119549341254126275301007573165796671905221655882618718041843703355983573278559809732598533535269706753781847394963802763317759308789183321418847737870199338659901071948943166912700830289602861868237752255214840361773131734684730234431594851306911851013414772056229041659396179873289128270911867295151785786693441004002486860029854017842668300188381810869284365183586260150324897397434288752135562266934638763223181119886314837041353901703217201415850878794379412474259933595655792620238576135281717385424245425837442764481172718318855257562527793524055726114991849055871613781291784442347371295028760669604877943127084163166239530341268229201956076656652388971014541698559048074515417142793979325110476356504158551398160232942053991858082391493258966666073762873336345876275293098395856823362601175977793358170370288478711471212634283446764477317994184786791780120130932707302712297760605379134915514321811523354082174896301801204222807994225228861752238804222516079680959935895288714939824326123941371264191753416781933734679868452445620409366817559230400361096657806116510762120955420801372001625561701063480451408213744060270471793041234897532103648286097498703796166523895083825636472505657149469627340482104732707757265169306848813096602525041807550972743302523714434340428916328745238261776738517541455961059971781611359452588750674223455673148798347585316502955422680491936934280819807309628645301225332254425431299265931272856543983759846941369717785314712758837481091899075756662117058895594415901336572531320277764312258147936651702890423378757347393805439659419667670951188141633347584297232069984811524108428113366969072481103341547360399884389131492013114247481875437795697970737181816379976688390341321882420988848236417672742940648041829841326880634310477624477137089830218805955697868352214542174615601713821320638794279519706988231583643325274047908757026815027577161565703072448115500554901762849602989834578761687259042142077355592487110286223720767459451301011496472851573973070817767895658065667641546673567807894640861759370788396914185706570342346885609790158862775745535240704537557113910038905294238087492199255002974125232920458412825785623237727800494243122126489349315943363504479405237063178801075157988574448151943333494292059208113038719920465776961003882185474872090913108750093621888320093906825778557300072638744573065749171541316741598431140952034460260284321354544057766418469008203660990570151032207162597499364044289307882361187650227350966407229812783270294207140693080779593357646167322720086560652296683144463990408571358402260992504952689030046932836305521538394079060832998216007755446086755131471784058350268355435077535514373545992586042254485791156979639480313748967181473598625731967147129539470641438020906406182309246764587465722883891388424331696421106114118638682311585595157291949800245442624428840378502123343818843907299283212240451180170716441940255088897003718597100563760451347881776733812930445432274841236981419902106607280953644312548459097221641860305793443965461775087391439827332963060470617112898895489466200636754339022402284754203147133071840321765212314904622931875501188301737916022809970089047336539302906058882369150643077629664182166572480438221667836863260920807199010458591412745514924464808191378568126596974772049221183765675226715181006414812390033484668399559681930562284419766409505835459362791202865462816427190930325184481703180384075260975741266339608306426847204057895645767229706911989188842431354569944307700467831084422178997825558216602734648570306100575061233106482823476695788931701424435072560314656375090467460134399443663713510381966623084988492548134111274477625047577981945820701975199333648078061728256648061385113479439234802829938426783610149380073310394081720199758465571280419097825231321618406518894039804630212416203154288806411990222052455822674988126859925652758864336019624293411860043636980073583464216454426696357629794254866748361686860734962899834960371916377473778227022689805056802252791741553126735188437519001374399314017541090658211152671444403157333196628197207582062858062424794888118535798967338407842685853685742304243795569542177068912303865323659413784075611749229024029806342386397310051142211623455714903585327058673982035313548727263133957387337432645022120856100523756300101454555276904520083020061377402969751243435180024594936534543918158330448569658092599392226849368242643731815272584048744005826895261698164242250019190236324967560117907512179415417028024176159485462898522645655827958993157566807056637695872445184714727049769625880342449933684708276716131479373997121950310790080901406383246714144957050600828356485913456497659727103064738156009780661377406962376248900492090620969473237143993081196716907672124943962413781244072807438675802668936658347135055286134995360575340294162204545126196128166328471530793132212532236937650861221101837498912590533908103296579694511869188666566136609069092395096226969319645499512108981259013986199383188882670118363786163341218703826926808827130527320552712002471046676067232532272370402567390757530541055729041389017308185227565157805898954264744878482170785615356017045968037837632572328114205333548254842095204361882577374594731320981417577513695782150117343267246136476277656536215829216083593356198434871377682374187453602213426676600842787799086112237454231975567777152041394692984221228769093055235035327003311956920603060721112566049105673609432097648241468534241892877279852972919529450787712208813364675954404686037291599127900077657704026149850921155037748535873743469081131768443555792465052930180805905770224574773650353605334341007076035643252020706686704852760027781981940665942651024253933379999223760007721949268858061005993316009963026634831076395619545516011896040295733085785926123357044070819662853432793590537745764941925176996513961174560884534757607069599866282607965439363954722782083492823966480886967383806798909343759618463415636427642862143403837781698059703181998076593707002342593899703411262190091570026204016769813806053182407786493981537251366922729677906472146719961946317302883759931335449454658108263430160059109711690012020949527694753679988465708047479474181857243417463602937333925140891340118415906352653588597257825519290900219749278932884903837477254644388897674752927435668828555719057386827629857780962053490707261566654949572883971624081247515477913133069298044196178710723170309336903464467227164663297226184379108394599144370306370235290598830772061723866040819569615904366803289435519646637446443096927108387296269821677091426212416513742930614310372520390248206032479523555257663568005985255367057010765934446584703072002372871271357841635446615566467546675980123208336315333629859042150715969006309609810781986585543717138616327372826639890559519424623252455420759281603392505500331594610943277599100934117127818771222572774202193003589218134868887067281852779217663010649954048137849132189516131923834349307195916739693132847720289023423633580696784546237009747228010224831618991638945450932456108111370745751184389304539862955979579725742986795069818103221681218290120132590048125136532451669444068901676694094417161741748501386901456962166650603564694783196232650030997351071742728063591629453672153362145132228263105090819263102299499801029287912728487235299765170714836139034842460879108407381379817859337228767100416414963426784025724387856875821028210876276534932240925641055577002756153538537684638072630463749095245272912685402818680726634123603289942102419683084587257952006345289564795576162036188622809496522108397738308167488731682251178410474218897861727802995624825170789666884012956684025727386592383123727780606479288062700742090943959662768757765318688944997172775677052898301618119913995300887395478272302998052706799274264590380605439728754319412997724948204404074940373768547727406532370579679036135503177344119724604599626879558744653306628926476591855233051007927941037483126870173178657065836488987293883458066147215523626492566009805452843876537889009187928184482973925423218219696362715364741871188608044599946526286190187412041983482313693853878220708748007065739345921637382075005481816177544246129918709165208463211901876561716163701832685241405448999031203676667513552940665701867389103589972454346024694831438316937293563201497863332208682399142233770344125152582328121393930158598277913426080357975330554049638064543285326900259900376066130560012966204516891512001408585271578758571058598442397812315814219726988184029139515210661313454645809299144535995679654688502024440180452695882059896666747556292803750670436661299881088496349035965851068318939441396303729649066101297305437030535506286816523810203800511326463843193204493085609179287975219525093828619760469989581575019271687622652468940069172534801504970898694492780697118398071268645303564834107481265183915713538627471303938836005817354641873129163056654838032379088661527893845213635446676849922514135019170661940323707044922697942011324910769886342876530918828945244173236941625881318251344074492533047904029106576236289052896562586478886416891426194457207571992260677626878484055526334876572815623971374499832178244323026283722611177317657286307977106871465881931881433060095463968001752278169575016105501255136894965015265789636407701684191142707532018219761302756065947219278961601237172706668400886690300480950057932095488986367090529211045620722723502799155287555593343829952425629802971067915902821886033965047363366613416761952607559048386646614411497129965843922934122739902370989898149566366081607032156119449704753234455375695110877875640286715257181874819890645136753652029324577785246089498121644212723677180103344770612741713989781367967577972493306110208707425439950225072365407027905471634895807751225888694945127313095467373404621545735051175922514947975159203182995126281191287157937078092301746285403021371629668907697362866428073653101699268521348886662400855990352258791019899609970079622085506940615095796360855371216386193353739186076693575189434466872947455817800021867504906219254996749103254463447476781706729746431738941174409526891317520161291121956439574172761492157116081517451836100611629857904751702161499256155342881235350079000021886535879660287700262695340421650684899654296609337361147446284345561575203442102528095530339402208264288196735803221806407922918770783166668154972706699629043382899797486693231689398528422198874368659169069309756819252073434347012527161220459682606511417081004507196257318045551077781640918196309361737741022186587498995849956772618438921272049919907913021767622737731828548678902562639482665125646255963898948709754646151443619210486870373155467420157568951864806741804586610228950952691499509018163098153250828731950910762119645216071494910363596858158443435919721919606265386030806378023154277848005433708248412946562438586730359520606644620473662615321074447554155910857609991363827741174991941958484502909864191063385319890585986886818589586559997139217407792614402351431261113002474877835637279619813677832138269575723543971285738845091482225253144007975583135568547882827315685275810484908214164992665651520621806607170341541059311091452085796458029633193064506366121744135122300863409277402992398371730597445046303557970647625422118636692851498237666032038981334673086736581495482298703481585314533338281300667746636828945114503136543345718824331204010775646004849246626486173975234192005153326613561616551793810822849395922201406718328122850686919154217195071765874924610629205271543283610164782068110541826154446030745838691375788731685260564031230463929905606170745595199420315164681658861743877382881725525260154313789821273582245254259345014731412822742521486417190431458265126233936762413000348488975608875018266959753313305047260976243170143242947508967172183889431314379425916403685799334199875671354303865426342941871170952533333122306946145315793179196430353441754302551608076626679993213349274378201749010722618657322674937019176522469534978742748172409901957945946709404959829351599440453111222341583367510479266448140916727107520140612294982271917664383993965116089769817783191927106196343197450076849037175967935638953086437685091950459488230889699198628963322096204975915484580685896997048748212295199780020762129614203135712783268737257396109399975788902526213772525844600226140270159498817781295116027938029608417445286145849849747000301827914257462462485834529389856337560711935820543419612340729706202119155276126262687982182480993145334597359916994890189589422369951546222937446722167995279047696386480725759673839216784358811086732007848563662249680703161124167226350603633234908718697132385742690547183465581351581504849781608819170092916324870988418880080357751777417035977887395463564113320491345824129588618915002108171470378214716465480212746069629317971806675030277097049674240245792393521420915220295520545222579091637904882832222096717974771157489514833608534510158941427529522815607695175523211572265286612933515073783500348277391592237065067957897771865252042822197348471719841165842054788914761736923030737534920127527580998474318710535109368164055896143445105781602016661640871821216792722314669915885728008656746430492090356252341265354327773835546156295299079565666719492861725670839399561590660200591296622575442752364943234643113770291433140497174453127411407126836659015360945848104240758493596914152661377686479845568053978909076192793766741353891178766757283518391879709949660195747622202485982271584683387554457382856405834856719254552583570370380801984745654512202195375774967154994046285176444806540677006596973906514917014992869576018465563741384685350029222885241321234886782397334145324026063650768691797283053489015509682749821016419409981567212217698139102035775544343403155106361809636708327540086801188698054884390733963827985883808636576426412245382290025584104692842177316981166744496613949224890121399124579240947427168551922556240397252724970370561157131652162630056271055403857180748898680566645647383067406920901615052822511746656874797160594540316442981014707276244306304241496914306282236888385903187233375762725225550844356252478089502754377531130147884836167664798365324309073164411753135701301344519002198436251859282351974722725450356634687165121349891895280456664920814531313570889981242099567813838551231056029257643412351487027355545142038670539524930741233119566250105532861711855652272781485277619483787690877739170437555732265424097983799948635173006011813533733059567529212404678134062127176365581603012789385652361466029652597722346272934504805514571363219227128046461782331690129192319801671707797004921845096429528185936094648857264075122249926479315681964170324997115067620465895462157100617111016105134406959054425806174886711868410555793876815890534082806563191648715520028055438079215974876327276266402430235258444026254680690920110573844339114688912340754915669853654075987475079671141558761559143923180715631126076799694795418000894229869234298668207302604939415482545758989586622347658112410464507560975363061236166086117912039466544208205040494344302164737942880633931763065819191472938858597812418607455892681234341383183960167847889772219571598067933065526191986769048218319764425993289172596646143726584641912497828848690405525281014339150632863850146051107225041183196349912678117015537718366491672262139325036780722375022224084249028127404617625296719559228043242789959049291594278807045756367395671068041054620637809196841867802024002192325449970191290156870034353587463375068107354507884262038723245514122285472112984705825449820470374746296230639793868243972648353742938877610180096030763277879018881672136815440629841770625010479546662262799684076246595270878325162827016122253689330759551211535625424731778172248851151393997432775013322530735307852559764511724820434868628267946645962024189851772019664238079429642203969504358964448777708416632917404310354679308943507446337702896714837315419214724369742777520587905519702050784270088496020981915718719225013596000875767792723418308394952957762317694489140701091976646193082180754588719826873540407466520886941339976853508032096764010152930361837410042649213901584614890746316776418351794636722866463575697777874234476285203461080874246172514990679008073188429650675464512746087454637085624834126219930841997145061887247707318301225892504546425759804045089620399741024117143772792248810332796958124100403595254940753718970280192114093711530249404571700804520884225671373306097729630602397410816387955813052395769087639504301451899120468113518545517415692995267010768482159647064955965625491516961951805170759523521364283497778742008449906490926929438195426490455606566168578137255698271257688281155681802779520506260812739771417582454230028418318956568539033731258460419534928743816958261195251949935642852205581925595342979541172170741845296424768022191233932639735917816478179659049363472912112497775209545981978722153948873281851922306169853130440355141547857113177066835405171614057001424338500131307626002393835012273581829457900526509061868283190021207606907340799312563199776536133236376352729835106799250556539517546510743846708937236679880069780825960358307310092529935043340889392863615506143869053138895267001753156426533362139530552281587717291431670840792653868110217493579509013171095239732706209807334911876327913282133424735996034573116398302942484077030965663197048590343257004000651700043325970738260647381740846257922026092416313651477533106821128673336374774984528783951396896871152196027706048146228484477967008207431293720550617502511131571019577104518350862793901910203716325798137560372363224761374070880126286613573990101858905756165479103927066102078169266074359075354430189701317724443175756739526365255438192669882704708307758201478546030102924652455851948230375299301344107569211107929747063892755673678081935876186000202915720959350241094446713149725970008137136888517720305358102043858656600257040562930602925536362314034604542324879476767634607232748965094390164048210651195658507933435528345234071061408887484660513444222161903170034072843780394202556471283705102885255887191823626159322290108914875053096537132264823833842374222742280892915229202516842518403978916671605750378815492685366474901756925415897758658783361438749392241284451325902572517406398084278820653553125677678506236074769777808473505329070900627569700809199399752060064376049470709066520048782135694109095367866228411014726156479048269870224360280828960223458008545174476933795712766700466758510758932534098376553337986512761938862176875044685023674574971888315087791066858619979644237495039415370493670398084207530436634694732882856155603417944954420527782511962230305977507882754951604263772846491737339592442915487589363362287960878873346578487307738889268890178211913426746752046868660281780416631013828497092768369619286406344575694990360148204855046676383604174213127566638145539441007967535613000057113825320195896692069944686408356297957923649561490522235393099568243814695403110115207179778923942837559706723481211439915649784050941192246152421107595120023146712487252899064269276751685759169562082371655907990677717913724444040101131035309001671731531237086939295397614704801972520551449995301889636744409473289647403897708039302637019974393472797595761459121542412505107864398449385946493385646861891618902405734036974656073785043656312127380589464762684768057577455628311197990433555213186390372033771603032728902466581183404216914135909840480136625418353229552907695866036992266389622006622470905178471292275616701531132904620405238919869505767944586154377171573150102420086304180077150952985939969233915626021932986970504487152927873928969255384575669399545554465778665279018107160078468194093129072303738296824854100578020475336917968829419250186787236749463268649482483224659146742681213665553196914345192299486744325434468425971879689731946505213712748044613724404395732156908479356919807063822240124504133717567590737206662930660885920125359076815661688200948784278248146665585749914940115856836387241252987561683086165196066633194326524653565837528813780398990423140166382514934917616531104289819297856079831398969459114163788617170564579552877721891625370138316078258535370654107554888957176519543601757222418259898001205351635683697564964977382518221629708884476651449417907121992419070996010836240531974715242983452569043388346937087006241833019653805865353191812357615799459711575219796117300566529072262111381644970755404312319834054046044011316753230584551692150598568766805849188339977470190979174339716087390193206506129298026354249038951924504974795578305556286786808470917809732355715336576090441554143019720317265709309525374664542308905983767721448308514138524460445460052498507063845257423528749100210157030736596315001760130093140144330226155407326323491515815896349329274457750936790541018355088868673397756154778415913481061522652992936156895267190332445689385624890902280131290619744920821668193452602207447547485953858355630644017479151713266681167268478854090438658452296039700988794113983263810380570539406385190903794560677976319852550084807701191602634241059051581961539477476861628760922940503122587441399655912981918083773874474990811805912361998330774267215529213216752706855978706508219443061226244544250056152207785158970037113797986814031839302460869030376716674260713022071097148411280872778414284584509869498896104277255743776404752089571379115875055984376986449492628147230988559622521622006161524404909762281458894010944653904736418951119122864743581295896024258598479769818741173963409333601972387994201843298364971581919167767395265664243290134744616596702524255681559809757572071150917445878896361775826508952200915778998290110172828237104087061387113400494340186183476501953084081844584697410155045659114034430462160824950739711680147387800181251368434811463053527489027973414886601020835996368125302895166383339810812625906050767989366572980316972463566833694950659988374463604152656558574181707686894585486263459685069870356260026864988391093916216449848971555827914607696531822600909130764366696132971723120448409760918870605119976949417760712522083776923953361417937024619155029685446976543030915370084868566196417164097249769892198647120879588569353655785659425252983369253615271815363952683188178375124053132623836072330285495093045284286202246903340257142218570451563829806748384898052994146008992526629327811923292907046376828107696122312910267800241564887855577376012839456178313764483266642827131233427994394081968161306347429258349444623003888929886013995099709112286197270131732919359382863340569862295724122847864722986181146607165758080774242410257355978939217989177225469873250611092197194016784134991753821548282303687856427200186998917919348993181768627857424775291680623640574546178182667741362939626346296747633584532755140580393412096248743614514872947152305765941036652147285804003392268882072462329329095110329959349563946496902568045812272426146644915105537761443922945209730352957220969532339128252630949669786416591556568649791186781682008025005769376059338938078194116831964453728713708585490594723009858951977723752757702439787071367197688924431332492070893323080032834109159782410748032478041467126657359475516463462299353682076733469736699433585157993472121827539320774314845729829810552290951339225801127768106403761963272239607823494918921206964235988208394150988874654534691765083307583756514373439843671045933499053149408598327300258559129617502550127511311723369119495888156293324212520089294534774821506664146601077468376366837549111872426845406389794636981414402468249344120716972258640784657174693988826187926782648057784217822901646254072192335348597232966794056464787019182288314920186037794761606015342465970263674268066036083657053873347566407399120711937291128061802056866781194122316172582617436996394705493882926782590866912012301612318132532808735419649412951313382293800616519762197545641997013287484848638413499575658560422774734605880628434076680373747975833720430300338336144039521780136005690001378324342319929304880492837707068292483942183789764722315615604999355443306844622733136732297811491442777127338031353565852881130725867758804556620953459305700282110867634272766618362938700807159609896642349516755927804466675175385702368254229684553498349629654827131764629293560119178862547966720703516118041129403465750938170026201823380002624087725597359466889518915903169845459333007916084512617250187523183204812911544059888899800515864893568108369336274036910162222825246862073309443689958448594927809966011523371261041256663182368064514239084712490136430913112997125038960499339753612179957768540403608595578689434245117804719292292273213661262939623294281072144266953047855731395460769909763376894568320374113707444775076547045435949820440528595640274548912289784472743971745101444531653127919950523755443155767559318209326058489818723095482487112029125101935085132691244989976265373946905155257752601446324168905657606692327850507044418457348231369037194972869983980959063757073323354775638440575443283632584553537637156159914641442156636031654097272541530883967625781380306363680132041356853339830142214869132768001994692120158298884468428459952915415363694889641615529303264440404240057801372828925904603610436590303689049596527629021252058426014000469668531402828320312846154682504171902563233667303903921201118732483484236352640000992997051287033395747481584789954123007702669576039251294783451616048592156352445151172893512334060146141296242902663670977652984228779665024038196778396076930362039159862702149020518020216315772945266886199371846428203056030549093374127314114888347839299089363954735978985254865001682165298005119761440874656156094845754762806292223089667942647669905565839299937815424092497629480754231009035165094758606404277814884045962494310546370476899075516103773784093676397743393932085426834206692184478868822511134229108797090701920128227237633500551481770772155581224536183690729567031720800761172665182799818998238638079847370491810484257000320846614197470716192376671393868300232592871952477746981122159012622189705156115690681693904869463964984662093929553986185673465575671814593903914042994902297979317352729232175497936124394479000759556782756807855447435111838373397998655744393498833650264743514219908965618722913459100883483158288153791065452271207047642729295623549411658831603147858478575632482180577699239458964764946979061943068919025177829918077558179961852985273700505041534056629641597435091626104454227278521088136716683937835203445221707798430088894599670290157205376355785466232754240606806066361526864476772070215446421426164398174133152448805895073828026225183935591787101468595182961661399705237106259135406984433661070736018916223676221658916571895711236450453078838881128287779572884185656680635059143130020503048480985784676330559168834148188174116225722084762259275242726379634499585690404173728207397697754729554187637097743552415913236158580666442123732397803322906071147293742746719884861432597600340262941566857896779221114050386334061536352470148938829146758094691619229104182369668212469441010336196389603535545833373301965002697108942963143892248130800368546886748511300622343542714786257003939534754568551917202907505851287106520735976117640636242365577390733029794351979872295752541105851903488423730152476986155095943996559913197471642527681192927209357196725677710231109413565884531760822013305116956212418995428545707320718103463663013681825201148927333461454781923302765211528342738088025434143528603557269309571830269653845326927018178109296164813882554494072711846577288036532123933588342927156692277925088183272725068426180342588519403661252873129607947406661763416850513736978255527615435422997133863211616392660611880688028634106396445288125045681144278199298490560826953116838884414214791637921231141033782204111306836027201665344675204239630852569139164600093409768193347975874264764580639512680030386521329595214397962208955744997345223858309922640157989198105660906658063475945755861003130509056261880334754492458178853819208811871737974754040969302032053234774849071878846388822305165002625331253445565502440508783024684280096654098746304065341952615968663289600734786201822282859434602301337494856900388351868311495849027417616493113156115976359363524048766266153063501916628144659917359029738832481848023793953362193538524374759938506153489698923131606722838679051883818417987502634156556702581569806185091905035629032958096725639967821753185338410754964206187159991068952239681359991296151234822487946461003611493247948904441495409828755452433828658161334894662836461107325859049347540840586170403443213212081365296694078305619028107867729382282027923173005056575739673013423193338723895820954932610773429690740879429975185140912657298418627692800691706450414378589901504118243336395339011125719987755104244816653763648909734033791627552655506411882174928591168664395589437388320015876444276651674988521332683154737127271855296685378798275158306110480129772389988888013006171239792593547832544434083459381318104113805156192133398437268241598062831823451553925182470321669571632673899187735557787093129141357862802591910080509300623996012575253469765982260952543082401805693764988316159131537532567720562061283000122977311122676128356212420589766697821040131007545849744076043381166520864488624323472304734576305934437460311172162186601943830434128453617233993715348513823634142654559041936821661865973841180198439497230180313547677621049821776156767304822005700809808561912579028746505961431470343033803965636805181132465264295506110645211550215037491244859091557386366072368345410618113291932954210893842966869174481026257582438032156235654318392173337341846853494968430087515993241167011999220875005657969791352223611758966044030385253736698950239837117773332200823668875666079120233814950692000184638520809581673703598366593491756244030770635752984997642822612599547197169019073139190343199894879932798352384616878565184568037219025299102717182612526695664841668813771628941854219511838135030131814590203045855198636635046515034618481225494928873921514420366787341460206029373620801851665742439344548652387639142945918963159296400303979187705620685370826467036275314456451852144100495645315746145268193143973774195408090426548700651627104838148386237729182783145676353969615593235592436023179522446142505067181240761880657945944290028121471350167923657752280998431374263835179619378507540230151212243472510770298929224236581757360489557113695512461363838090953494900861688482059057240092788093583139323219877072979883225219282334520815642472255482041584182442905973434182255512304407793501407038972352689351072959441960874871048783611494186612126934705527839994557358936090447898159120382391406069425384810909114420576858501012609615169052556452509877638235409336416823884168606824734822076354041625737391863254096792211213760725886383650620703138067793748453433373322423913764191290269993098647438732982995060856642857355220908446606707362679329903008530361767559722622097143951032914595558481395383170457539287825933029377540971609309821654551011679218151712188726513697630125191564890859169936885765135304610751059311038463736856411150574860864277283793426087135464822141145215247575633001292124397763841738851841741148129591990260238769058869645696321736556567841819615427333753765913784249786425722443178753084124982536742776321623384699139261468698426266341929400449936333253136476444569410166401726345790251916076353855608939909850398342889509341368579396596780840966041846720332088676958753994246366726886335413418063836685429447959650162327019758713446231769398692885649665317711568118467719381300624758460041116743969732677225332997297505785694772217429754765631821767740154687182324266928310375932303273348539792539952611963981756704783555263630223477674472778490457531163450911731488961617209899894707439847188705649093789638542467804065643939745688150807580605645607029886112331933226510080881111524260835799854470892950302981114419328982837122269781812471456068976771250094704736243846231496446153149260478991017769237165340764204809949523298231895845203229401784971471780428366336371434585546512615568853148740857471594617586907468447263728863796415367101429572197039088662389759409382042870465693884746531234360258369972955430780814360935262742798355880342156940877742271769941792057932062506643539717057539314573966059991161530161166330839286988637701148478792529261804721286131720846375243213024925876288624586735678283174083097466289027305972389547474158293297044015524174473122200710118307682963361664871020842367522577369407783953812663412372239754430548421873011751282667034399552761244095478280310431411195282548774030701754721206881352251560133572098473413951754143714032306894028527507507581838629201498675202946044354800648668831672537017804894850647734072636533089169517875929197718616391852433280107353939008621020536928248951310089134631656235856877244272035620467918353900833522131227157227823954287622672573745787479335070358068229383425339678769662347499553685722905262446358696098036210001839726593773726902127221091754070062332994224775965291519179254536598986526696480817066390052940075099203324360805937924377757757735018440679057887953314827379239784848015441397140722929646305922657605147728232878980855692349411110640377257675185632714292833518982649676454186120886361012540489064947925310410349628562674790034703962267985216053590022520808320550023958708055499117644032574564791858569278780017980323205224772043383300352550716414749859949074109870747832208404405305309120647113584396571509926023656069017028923140176575292929763179200982671502328501899598364334924691522719045064595979016389132443444257949011060809093934360828139692934074948795449372032494117747371523061027971557238901112806913744449844323588018031155377853023035946061631467165802053679463077959554213288284640035702977691199800487915940792316947222876322219461364951397347133763032403525852147626657161091723284535200688278123803341994469268752784577978459791753607378111157967592921775797417831205155037051953910577228507121403917170664784550694617879352902310313760484359531145029978583237235515853630349555501472662950264613715092091886912578795924254859157460993613890431308020364283624361631780879624132611704019051179315926632439601939230114076506461102677709365176115767694506023188533860373186041314341755111847349582868150065689473059765307043571178751429264901293403188706027002303019003607969995587310753685080197625669448554425250671974250830398908045911529061792335720447981010491370465492544017531013905647542285011712695083031287139275088562351145015524888491938645436294036487169993766167673585468000037932438980046463258582860098761797916506874386394499601007516499007958832500956359274581739220983105487144304967675963854562160962566434321865654081772134749035079109663462765561952948113752590801178811886766785743448811303225082178260796817311145845750465118532636683313158077460759060050730912975801231230110527686343688305090551918789142705356726211818987053943961919697976524023782271185837930790217486725377920969408718266156788717405216384182223762996416657618788879900830553225021766664714899721497726491723509224211878119479663006099591974264317257666839217280839747519144323938540609034921365765324193560917673455033881344662131673582071722823509076558199583527505184307566388625493850004743582901183581006250762373158057057031781875951731318833090271526763737041424793705230863522328196010061711042242056583405098267155862285681383393629070441159448482450742669834740794181249773516239175073562864402917517814778109863353695685353801499811418103825906081406093076168301511761065995190141636641707388961995118764211684681488649355670997594106787541270519719670621507980296634053110571597892499650025859224313610156667543109375645364140934150085694895528701445004690490992418689671372937150865792784067876617636927901812979719521905663307318314606559808205612978294485085244042513071431970036938373735398794371339431743621296727910576728200940511549209174973324402618190091407172300515207319364154708860460199602298281982568088896753698677694875610400781283220563045891643971904573978420887433230522460372002110150428482960298619875520755682465709568303470850252136910749436143174370549654123935437777800151963677518818384235129333612140460884147328522403386219817535495075592450057351916928704082116354835392404197559208841357415146899647397929110136869773693031584090041098991860486935453708205659960281947379636396339270792857397644154112437417984623193287604750584890966333978444773603824086889964195029425085376981995828594229174969734667225698548442364020704214084007903606341396683819824164792903968450184418737187315996881143604550615954703628859361900045930197904177590602486584826251086552563954336922969885877945044382896098079198379553609383048372333401686990495042313926372795172352494579628359776270330827127758521829070202363226408870088813692161523098137380601243580195038979593271036698236372406966465946168580080546183877575238908588958520007415064023026085607625068696743822907593325487337976008394212186059211969433332486462937444384009616213645944721833851603935909782920667628457809233826495906848599338205526676105965819741582048132983109798275924637062323767052927144652153369301766918356621920269432319550007088177108447603238817289548631229827016206301427094283165865526320709838809049190860242734290013388385656840181170279317977907412715902731852494421898785102566545779928400089013793323215390961940730358925360026117852385687506907144030250873518679074051427327994106258030186193667289659704315053725981286211522452090652143744020443922053438748413896919612346241490817498784004890540748946761032073445748981462442596910995393027740411925864395520101430731470976506681387637374531606775057742177334281234968067048368779460830847417845956013482387795089896213907055452090560256121409047496836169021583880870525708879998196501334708072665322428261490637753621812884055949188478585876114686810283550892840781815470492213457211263109852277534100398628918564968554457898876788698484731991965040801256126478041284312836908176238351352298155578028307167331656069992498349634807119714887136066096415573656661694477923025494923975105574700919056530560607804782503406185154729654459351132216131614501130592834637819768266063313201072417094179606097753781665977914366484301320837983639885703429209039964376215087246305457330621978975242202982188946038047292945585482363137415939627181765396703610347914653170895169839428188892577865067630867013686331182234803226026493078103774418035366797949699415361467439200917931660152760934786766195745640892357994223425522154978212180397454392594633141376997488747119261187710973884944924643542788312024562566094055229829461407842191227400768127532221877472221204946981508057710698931545702750470390035318902291334034067042160842883279795518224288332229234992788296259680889671315002586022211689251449584306209978586168507708148054208165470598908310899742069378211870898450885454752625724319847801510483926737468490085234376280462702506587169070793931810666466012070144802307074773540933478697068927458943854903765194216646273091663961718758957619483564787706644017891219424575847396304504799265134554933300381278146261607708842055535087896646339820830488070691212156868413931642490611688942112865004046210810456327363600245042331438037026984791425213654946753301098738548086119831373639503742807789763820295690047889487175811446408072533860777161035833871304220453500830776187020367993244122492705395938333976886943727621480632956898987286512915750377101816926493041853017630657685162310123417227611000134970513234995238244467749079595449179029215024798843860040024437656572690185436527094304184982928063871196022194505755119265997947735042722249616500640092697988996418324196486264397233764683187553157027584574269672020140834666187994845629782410043679403531149213779430580977022379047349008601880432590292599348241251133836197101997215848624930344681422393895362195727343176544959420593596528696775501209613008345142020935140194546376828320288355170183902170263323508383957388853070029251816529401222024642637240531472514451215373609145793585745594853286789870508988479871048224227528876372099747021145128746690481176993571246107646239193000969306707506257185230011872009987469085660199073975867697901810698007688475507547622556610904332139365686803194956118462540754210873773870468489344193046601748056289968332955820682971375465387923647154244094536446096345261001860031051397306113897864162340146228926644541541153714748929002868384121940894911235095811559984550985453831912328329991905642951291626511202084965345967094942640248905641914594296049741692622430688900186905394980324295360440673247430957446032068205536653047484506827294045061369089662237719325633101382981162229233311301827024095790829273172349032828643289452714814527541117309345993470471763091100587994789606237012614969243840209610212287597158554741032304074970370866664995471813288324153087854889220944075146006841777389394746835796988698326565784955253180144277311153474946835544535036098122934370505742425771321018323536714715912918168445480491495664609316191135932057866569484075561442818613186808481810462782909227280605910556147613023040445396459363351197937130793025862754291883541945548338429479837874905432604084757723185259210533447229184655317277998761042054033795716364391895252361650361980930243028089531328257587687689207617423663772240881277530249932378172064752886704933302349537252106246549016227147454187994256892314512545156557177888070964378276722916769417952885622113184920512080774535518645476235482165783831480110049184001401815792742286870744645944940129666387977088017376175535782482783551455839887515312607941663343120146389857531626153415241414423518309508863959875195408731097062278588763961137276753815040925694572619917114019097678974424993921451427676161256738927901366664646144913549775127770553809840137487463941857838723083089064958178175881658156484278539455739645286616063481100504196093255969736548608902784663259103168832737739075415832413137186014197747661687504993510785371636966872644941081564895320525548228263343880517667261193652234895106244898934366760525230393457165239069409914965797400236172109326214812353514434424157674138664615054497859268783916828723423677098877967052734492770578412550572326364301721805602230521938469564934499301752853124298810623835778174344005528315453091621819581530586191666564648319596370146785231716934392205288591370628125588877611527707462698681827945435244309896328917673180893484517433302646001847523775935873947806895854730285251592044310131874167788824245840431426241278367356040388796483179282059646106847392930561562468182994159501440171835463189293628861993335536398914451753250939474359890999651935303555944477927727131475245896321382124206080976929416000798549487811091792138036934640787538893859518999885930461325876574452165641266380523187197997100240139998417161209913142236096728808989040222696989835331286940892081291370703737473321258090989993629078381793932482325525466560643552143153906761260470555870035706065635654238904143603419305016415088734804656196644570816212111421072721755048699725762286719354536273982522866655966692274635173931402454632543735031935341227696702785961135572335091291691670525971187334339854011247036843534139082186319129885254629464032210170754825307711476707390056289062806469931918581919566367060197779871535458118965389649188081347724323696006453412603981339211030929577317505675780228986410679089594948932811486229483504801148367992854328320502661804645938719308124699512050211672397871849764696119519738190738179345809321092951854937609605274166025882401294260073626704534490364870194879077035218159490873190026967389477870215920695327907854167426506942214258056421410250961704421674417654049131872896916779025547196909177532389114138075932326913394198988906136587449002415975891800165771931976025445979042815860230740412299940516209083747008965364772125037683777946105236890115723380753569289381474776412289966486055880297633707436507552573547374974580504945615278120877024425369516652444078568179712490586819991568908543071372155343451035561388755211392369984003843371271420519135053088328157337753083957460196287761827677078756560620839136200034697893839437860102807513540756048519195971535235851450046088921755644718285564594735011374042405197953752011917630955690770883178817642145082861251218776999931987070849715439362001592347775347942824171551943265706115728605766229315125509524305616949637976444549539405520988019126805659408293779080380053582850819276831825106903204643003224818547763408927562582839768006789173232192869619453892394975346248990158416985997446959974320727642192240812783350786492762917470929097901609861206142420992747890351403728142658037912221763168633149672887472498801350859734013017054892250887223501099682672677597487775841564358780342670706945269452152659513810678501154877291943166723574132542867573995684695004846499437364709521652942302805528075197749344836296176314725482388418019880540887192119421262376011300803871955066024917790436759940335601279810095662662535511610295856657641691423225263548752661777442119992486709002115099683648629628185384499264424439149852167479264190858058016837920700737312078694213236795506153944509644816460602121098573447307531996017634671063198661455122518684200444945394517236216196348358221245094769487916969187587181914686512196080185068855351987588009454088170224313835546262735147330350200481889180259924062148986543396595234473104544764507156752722594310639902793438159003997323623307846773388328220642111328741957999406430082474773111050895314556024451099276818328047867681688468348928386286408235145293773358933985232388417026418015758760921246533153881481045286569035741988986266782375891151136990284518104790507258177133393779383539149857064232271576078727966532532044613030474609271931043422494942970160071923733475638394148595403022016955998078944715838417674760686275838243788887255991281042764493848079776880337260275030034484481984845162254154245875320543823594357736318180990519924293666851981988246415147013418701483627069246693981962230048806353199483053681121904349012141867505472839674281626990237823710444209148831429348912315799948246129758378958311483777587813156744996902571474398830441193236637153743161468053413908264254028014335926381741810792310593955172885753266897710354517726820818338466979475714392656333933881383546429221901951499522415950946818670488749649878544493883557415378912648745803587359447276124923412024409976017576337790875867751000674601664182877218188840248393044631148342951881143951747832160265048852313864694705027946713537984408707696162942711167778832340310806089083552308479113630515594255474854625840447976303010783310999852468679860108830202952287197441471175372020854156891107158551466751806955253238535895901441534629505946186892265602502436448854229487333076648294641188339314736570547251780942810758550839484533400493710705267423264795530860111827288929859152386414105062121957111447194865422063877162176838543166018464429073235763154152136712202977942467440366920823636430966845339443218184917830179861454735503544023156337563670379492947483548122104797548728139944746907030198877651412870542867265305749589525685523850244209858170306949130103771212548638602504289195771419840960434115183951662030948053231593445853429244746045807254255340789928630776621936765999002594937753903845376278662718525107492983276882636393282494855875179644380000865485736586567163458652920473373276975706954204224578328716948074047154097118992126608482236933565854506774089965355322564514421346118189614285594497565343189526323768557425164836871090470981505218379702709795452389565419584088786741233589044423298692367902593678683555801028293875103495312828530362318172602766266593268376304115704845235739248315449717588421286932478821603312791824569565410385873661018423125664919789502858620676324785454705759246383442820293184131043807719306637153206770050016320953680739474988766755161770999598307423305628960941944102721640564175059980067422624009411846651285500743670764675654868512903165321814426433102548541184395233635881658366131685894960806196358940398774460785879228511361612232895232362579658486981258441510855469417122985457638997682764207772550527082704519455865775973006504209728221254183023487580485033699651476120405222938752958762866873695772639103083713854392523697762157413523405910463840640846316209923891475653553686154363753716959251509920207745655746829996155528324030496219283850711517903007754247365622653872288869469833666596728701489145763738931373982977815766729338224643299177405420300504760724755591526326612530806079786457533199435404931332956013445924991907824939848069903214637365451529168132511789062835551979113300033743969840083151556350381891827336926387119870079722917436433396760175467586874002412534157962422258069349457027156083787695890657168755503767659459493148876287052418438024433574598795175044107217792175818346484660395913273472951171331527690081722530837293437368165812094642725629950242782510615482524784320842231064645114442942398750593372638308368451737906876912654211290877337954648514258916522780505219260559212708252401146744928658526804586400230574666271863211016105336972140563240482925603935636004038295766367755018059436881370874659161829156008718224822163994787110283011945320377856433658714977177010472131401104205754521785039856281041536947807285768566605431344558237966948164431582675719757374106881093193108822499957903281594115134703561620159261685346967345882013204522615480964400812021875772893897594775789951742724548776460845142127272106931545682595770945492652649492283917486907614571242753940354621564834123349438522422623305313250588376559676957938133220897834772516760169372631175725195197455575039594864295489835491081550451879991666785414237805168331987945997990219271765811267426867252993856932045167990074862877113052832388732304948140038846406815286200260310487595387668848958150383780534339108392896731428365429893948558904504448448073336153390684924338098964943307786576788466106352944582749222118562027268664547473815362752156649432816721875360151852712498397819197646430793526850332157072047592221487055565440354980330543632383987828975529346173200748336246046188952530460044150910753342837591811231043486910623137232831068800015984108362988800981900387557946158273615218256901548114511175109641986285532742282006811629611370719799426348953569918554865036608191574242028479497186390717694133859569031647777266067329330082507802883131770863106474408007815169716387005357577372050087091622053103569874460781537944595130092356589181154561179055327615072259003221026896587711558537749509334412286745019263381189378092477627358036796717432120208658348949747239627474649163467194872169469402679899339141083873030306027026909116543279119013041783822134649717301743495550873245492278665702750096998626845322391619600808009752315756706646373069915198659309427702658947170991371986241982080336075943265945724893813379731903334987827055737289835566499801753284052202206294401884246620401023679285002241148954673305651284491794107097648876584446136407293461257644137593921650822925887712527918311176708683426321533939106471830584465689190982568468657346887696426712335257366945509026527191294572118983314383948280390485102651340244842180496661514473186272400031272171311102368336700033624486337036559107732211312391458394144213894857908778460427602504098036631108892904721058192420575814159296868013379446678521965869691773995489650351930504200042834537325098166755192287151624555404766425415918570651872707417623549386941645289800113686077482808926338141923127977557756074706132411150133284271292622684259935658842442226214343127061941372634584811876985726645861908189623703841261538806956730207207555618789785739587349243896663630347735205950230600458559884572054557451534682820283290474045272671178526353192523765487983037073603973081797866042453185117705508256625386312427528964154055308946615426167702146204694464106743009884388030386517602091147185030734678530876002261216312056051575424694836240495164502656956086758338875535551506426801986786540418494811165153085303130952257142856871799109326993068601566322793094654517544666840441736886651197275176898790357963820785426851375254974975103447065919519393822847306425183497784495329472875470881038532821782275111880332471895768954251878245577108743337761496676972195815942373796650848984234991206269822829253937215383795056077546121015271840795100256556847130679622411496618558071777005357653183190174277577690377687345949480041853204357216749095929185508224666210608532895262454197365839274515651589698531579721638745271447056631347486248056325649607794135011918066615559074840640261811673560315601345448548469815724956221056115050644708550757303561184628781779673626186123705161214938563708164143731354015769341525690698836890048085347724959333304804546708148112473900833344331705037503514010842287808065897922642037238931450765850322076923897174076811193257242648882394168645853657856635027727005438435307936068762953044618641358048322260262349853653263789594273513203022796379584950917671909632787536475275670985142350579213812066468361883765436763951440149211912573159561267997718840008965661205843569532364033372167659526709607298332211633825444200623326492120320750380350044430531633941482944717978641617900727164533967193774817346920559053080538454731473532924365259126007488638569972292934611858277846933024020155885947381177403344027659303350080460020015183181157748768260691079439347198523305365279982281110026834408243325345461765631879174607393429749080121756512883729535299303032313658254342919237746555985342413195285600844998661712904513836292814739064724701242757026332591918675843660041142555870406896589854464778740984355732189213096679656888820561315893881228458294996207397001839223778284497673038512766152057395127781875984220470644395871993172007161993278017708155845372065404486499940556980144568604097417625644074783843936892605600300675946199162719949524290044062261763247935313258017138785596517766662751121604283976610167674173371524378177834442837687850610759509159384875912633426762067541891651439522681628009889971957443559785251708197811997574570193863032193520071384486220498146527303907659518095509430675768120001545363407308016319023292188894377465279618926811042991016481375702618299180503198497895303616615160405170465746745793968717072768829690001542814748796108484586834331143786636616332671240469839636708279502617417270708141830105783203042182647456099556787648848695330658448676193617480166598310972626480102381729574333240371149970201198483128981411597209513626774821528223416208370695074688633952579502908301333207437606915620166592985441585429348811776453667635752717645162729201570807776921012573893947136329319328315174328410508698690069201139418873434299533819604096883099477844666036611745536295012012576438116164623415618017672124284862850512317478903444232972037775147049910536860275006543424001661609749399824355132083631415399341802731123331566470334135267500785297406510853655691209267437794029903325919710241533708240000016458117963281553577764652103454424788902988403841597817942796914916755141188125324187250606983576175241981572025625605494192667296445010417603362410526286035222661108558647944396695141815898185657243879441496692897110659065085944244791750720196311058585759604936009987967301101672262914635391033378139658134892413819561068653545117606544978515591449396075494720273170067445677346348009691336456815863787560571481432815286505728054455804597087278633531212750403410332916698899544976451042343087769501420177925718741073509613310877702006169987633005805730367999412231917232455009094219852215019123016070500944737618348996807987488213799052948064557204756249733541570255734155607963262598793124822725695870842317697247434811808547716648903901212136464634509726344555123852738032066419230826753088864542851602270836501133952204182596787819066286930412289552168856642613029414252041774208141742406558368009976741919631496255119864015557611511452733521543949038782420722761179165011952292201526683562891050654650101818910695958499479132097716200031071143457818927105139978773311505807288113232726061322601028845622122779145592385328127083781060896452216452394417078330121923201235729820878992431509177936038043231765075150319779329165187603368622411975174840226618943400906374796234254695860850042896030005508707367191813540274653619253997870375748087982176795043638349437954809380533190443030970252025155105495361032850934358826515305732147479094930193786860250011591547555085098945777333704296629514149047214664939112651651151390684769294997064881252735916905721567461616514543347937616529482191940820755033418802767313637692587576671404874758773215035075962324705243368371791608783176770240468986318484528034592164274704281533565698100250685766545910139957183263653384699746838567800464632352550782838435689228132649235562185114638569789604517525679053554004656634522692371083852385848814820127666637733674057992630586979364444584904027936410753731355089873386511667698374310423437557920961604514464305200799692091361640440795670724515536874393066202192045797833056093401091725404963766511799121401761119449441812120790066399471534790240783151795117318201153940266774452469851384517169262428606996623387227193512635786467575066065659247128035498731920717875283890083303743280455541985273848675921778909606846426533883639803489998730498285592861043576433960403801494575344758814318920696311005213734449849007968980190624934654803180159599025250149085693499287329650894529490398228439816475329491548873416180055725950345583558231655366068944675499792908131946557295097863875262975204072130846834349481159689711714625938655061196980122691243969841964783503447626802088796104967957811500051381337128613626234034592892197870868345966050263702764163273315057445124181367940653135324672397549520549276634141077698076177600332939493957629618573514707422307949904416853153819130299006513447339022092277344424454742924956101326894788051522385172350655112605713069373736850716132536339209167896679179447188924063906391167067286195825857546576246587009469384920343455190678299628628292131775989624965031604207562404633946455952133549912425205027028101949173790378533905177263849114174053538012254126556909828913759515909958395212344736432740584487550179986003891655032052322695054650007332409803970110806962725245916450919505674880570107588948252728442330412688987003010329039844685186649418337721534979574784031054132082040173252554903993559931946723421279430596773885071816319433500266101739581474017970709009235294593623203530572531067030410976714878798616649489300473114912867370500484673024061140053755803278983354274103317002872398342922509449538080925439371832672431134758303846122004733701124467050381036351480505762859392070450410538450788793870554168938073827543781757295123680910336566129562576040985080098637240530447341537765974104240302345762780348081774276368745310023701642667691476272827013414067153375633933604677979661803277553786079972654662696775643202714677591255625047236898560104324205717846683907208925209373792669525637396605077117189841434859649040814063806511465977834230038470064993030923619929566724669393439772885833080936708329447819277092721418180559781401339159150753799698705640767981436637368750255282450875196132133737568739396745709394090557005824429010753513689001887039360011996678981155228066774614950997885529816021210609464663952617419083157331238007554938133481221146215147540923622693178352908719335473387267051739065338918715038861742498274208062923314036251379163530443303360399023672497653042810895628095615415355393207136321082460383011900364499127555129862557780190325990637683105982074052572291881371346983306072114985990720492248369678127108182396754971594725547239879130044698545668766645590737589995112334465773744684900723763251372231331718733271105349097343308137500522821292054209496787158172093520207160111975480557983163428614421857191220492344391155474183566037767238877932901489256757178590865627946520727459270484143694005279912215058829754203224251955175417354012482286367054813347471465279616945975315845037965638408276536977565906325169257007960746792662429018581675414457042166076246309559935842732787985640475597012012099711714668242543739857240866820094560324725007384973384913913333644781533660925662564498895643095494678401630210502788147514141693131678139451392539779920689609894108465092179746153547573924801763446282154496087548581345866742089606453282603168877876197437936694378163000894108983163410141835731907465688459874536287990140700857253166138913064162508677263877408821216782865879799823067771147720961953992681475357036825703913150607002372166926206230797703399133120714236433621641141283500065511725005793700756506728574894611634288334182411975115512360621288586032224578368864102802730563137392841783248273088997437357399927912307321633299397745914890218236510989390546787787903664350813078772851046267949283778330813350719941718573623580096101360491764212029177698696774510676239703741393020217522973040914566543147907021221605476039016914589420184741788488352436509913629392324587610919248849968603733753149254510316804303487708831143380764003243427217454607708629354247180659724477620768111533951917953510246408571791230228312713398320110590398377319321456561926013038533791579334851113451819699058383657346105923264684163896906084105762290812960005567491729963588259362659823036466099680611251183933838995290484785111386104938180321479540432688376131840741930240250702269451857001462298013226019247874247243370116062668556122680972811007757287388850213854301997819248978075551604602822215869937198450052228604103233901888961506493776939084205019990602702817247009682587644275615432154816111617463405185002926535816802408818360428427171032827159264955380248261773584350641890849238018965665708187805811975288120007396669059164476657750462611861483519148882137033082066581410214384724153000730943374013639145252827402044114559059449338832966856182781319148885474637793265233348858536255268852261005048786187352564665977848992772751108749371984156050245496743789781507788185299005939632530039545182029146614582326124175957660468592679042276233220165404375165918483656391015888903258425982112727645163096840214657730120706404092329318220470726103776435547255979307838632160244829363606162886161796042038591397803442242963396441982879439760225385328439473316187126744853672513177751135912372816116043926242024894243472113732854346228041582468753824273302023185557213509675912779883089751365268270502463236946982568052208690055595254516189408788947620457099739739682779573179797679789638319830624069660611256132732611686098406200067495312765494953052039035539062009260689435938371070550054386651355360188574709606167892828780718439743101248443150254104609640980495806093036454843696352944555996337231921036104473193087944937725370612021313143135254224760086226282244650048420949905458019789312412026090671599945109570812462105609209755810768674431526592551182596854749454248704738434676652009989459564732041331732711105686361298532820419827084786680348676250550925544506207560226004545454787828715080156601633608346186015389923308084347323210929526166077246818744566646279531888067681348082621233705554471896914697569226591742903727395342629254428745219746397700307526654042653262966619860125776406523333574147941621471002045847083230779891973546959504021505215908886448401610824212763880366255661301798976950200031040610912859482259065338014761695476249157438219685811646605597930959321738293282221089435168892244165435279797771069235789406127084397602796050059487632234775062354928904706325189192050322446884837329371533660575766881864081833706711857486016242304078296209525155056424426417895195000804911393082088813840550423765482077016503956545487475594160531196936201979736721265157389063320780542102763681508204667941719648815532403587241896992435424611451039263785129033898846380647623511917988565021530538141317509128806605430060619028969961853001887340156264573752895568733562528997265141039775740747901518933990540830501712705539195886500341603701807856158893530232738068222496823122926828591922285291132819999508553790365339981213902671982571962980184185249056148823456093852177662644976992872631289184025493384449676038946172462652767829995390984067412618635183857519961298975448552875913800803572329251112115279352894423154006710705996199900825729578421160868245289013434121909816395897342035620032187517692075449683434289518905453664585242431623430379166739363486664629659914412197366736279677914855770463855759690208092123275323903817396595711229015201647624042739812786690384366813891890211619133357115708839779395181424538424848132687331139084153878487390660420925464703754021503746510995674116255395377405000654168182322857696137287627455705850359649630805400998981874120706860838237949898303060039435500202683191079331100439498890146844063166156279835994735959878948998413900474007174023904427507998979440906765789741999078544552473331901221817849462365900244629886687028664104973293848463800219392295991586068717807077287649811099319133859566779469640493580019628490264205497238686724048100042062333790412997705571541034240746703767094588782083061064165342829846833342564159428444671737448412267447241023685276847992641617412257254609384836017050360610029271562704562170389040680040708804296823919947434636964735505154091652790278855357710530433078504112131503180862170849769646300996891019362742494151894491951537746322420622629891825415019719494006248339102023892404911680284338654388675830326457738333031042256745157284545240230006432392069522728714670206087911842404223429887750036516965033733013834855263288356900216865523063085066343692993826944883704186529698716710425129051084178288695100092103813762158781954156339581451484489618267619703537739985811094704409447222497083377654046440961336763236045339170188617488874937155226225466419757119641985050082913219280288754408562089176704078719116767299559175573168304025133855764528774151244436361239504162883977307840510157293017252539640398905691888477880052762156668767309176539760297083886567408051887612929769729410648758974467037170826864753722659162662530136248178416404081953771931204260988366751520185878945382721039232473417123740658079151199069518616292622612570242327803477434650363247826122316956125318959717384702556476416672225031324213412491155858785396155242720851526434599696874843327224612148715557430892479986543957493810326604726850625306049169766577421731631728964290894317793115423066158527770917438705372327470733767169097220271138760821944601635509608978747542180595612124093205957562561466698210283448886650924174224932665767239216943458433383013771008393244550126618254517906391765306409266741157958046674958664174324674313059719532504256045190611758026964491836761881511590754670521901221264925086442610815642041423379283448907008729659079275715179862026897780955601214798517252950218564276230426032631413609803873922629634667600913356896346010606642629467389454395235081328846265090194713944563792299080992096872786088485773220565900404051500145121073856254790374992129761984483905156178883996862182359814033685596526797284689334916854539126303937170427813240570264914926094425598712556043255093122320681076600906608895975552615589369864439059424003533012763326019001190324446941467106070289323323190734564429764143335337290845704157438814944742245086770733757040120857935540104984107354911662512160307050754556098122295095469540025261690529474361965001805146948986285152018752685023476499455962267353313845424212454171752363210478313057626706311522070980504799392026187698336337756417696842304841739260143630308990000532165326103079889646577189827731067800737741341030752607217706692789553321439155311113100983903726338643308226434103805881770918547447614081175837927906742329588319386227603769881639021504733436286459499738632216007501154424056263141709693920763746323749315772442170878482298274412679953226570036730336491055546440933742807141356255585300394924104428289368780975226219002932246973978816398624576782819376596032678869649361685234956519218680373893825082995066697558457065154656082778090382716495047595492840934310290443020303088682952000785728140766770204974924800780093911545177939224061819837133776981695225023100873207485821680180517773074916459649853391729386041773432564565358256706043563883031187716590293358425553548174876813789268932738460161087307601761131540071905691417993627501336483145383992364555000073386119485117502160638015167367794212200194063377218043113465856065698329559346338387997067533493820452616490333213266846375143583730050284655705372063108221777281376226066689688196388433520895131358923479401598427507306257335816529516685640329908492246202187878806210324990198730371294499744267909604979028521341179424221127456280029865074892376457669001760863642625510185767819308867571076216754174752076563226875100900767331531063346546084114873630006933363435050906114828786233874494344860016391272787781464443771440665980853712272545092220307389948742979945499791800928116435736639420450144216175749358494603010117979929724695475260974459728798304356976886802831238307583394449791150063608220728255531756297815538517218446489885224185596600094245102780305605385884495536940324389695110917275227231937691520508150145047104298203855741598289981673669080437990750600290790171379118848562050913061024204884508281227512702010841102549954838069491988293055790881773185568435253663151280903762856600105700021223545301262339856330577440612426980924739810951750905519365093399747980294587202823576924134217838787567902098718411329048244306407128590007375573172214937030420991980739213043937028769543861631846228300449353331977814150312295150255213056123327423668808884551540038112909810112341234293463215732947698693718723768184382212801764972279654706078643903284636230246171881109114129105173849401702760264801271989870281735278923530293280576557108427692019680548631751876917222771333956170754504267212494009928944398165140515877995070442086432386866943106620504951788520631764564219710798828762698981325971077581564584828417699828983061907017983769264115168365597183044244642830134784986120106764766159235248285127207664388399970585517667161367149478743003230723250085141086180850973536460236349228698411641826444141093454545337604140684961063967739107600563940657015762810342917172272290057195424010651984400016470437010914123506053325209748058780542029009627284041424042795794363972438633712374334682234010750576094784300432918729948439403921676751792140059033983563177803831469511770830775102563312694253749080136128567037710524563698601443353950255215571025700613336785790061413513858318645186081774293218655652051887233517126424440616869279800270031799259667601886096365994789243776176837638666306212797013189454915634014140164492600317795579330392544903693395874691271083212885072295241270375829693225831597437627401668182859232142310925050950005037280438315644473215864760280531135258694636809105073287828086631508163190023179195630119314600350350874466172502029161236981313358749935183490508111346581629324873492778039165199592877626460143849538448835645751141933997269344478032244335686962008793786228672446896723099786688521840990448731452171741739786887581508638002659744473758999719791342786015770550602295999824024283466370780105912490668689417217858737689043275762573821502489645869040686767901393371379757141257651237584703101477963427421394296970254870075533774989482868412405626567243624758292373161076538233095942190673691803495746130693692167824808372957463056290758474965641850898927249038318668562224895945524351775659380021148220468556315585007373360077450891331859752091603759315975236455752614687130255940527225761390315027165619707659124360117200594436096677238679475298408598823742736280648361799258698211759635781110382703193643041108677225105970941470489457120652253371481278111466241989717577629651074129177489897156596157243838283488236190233304533605376211261139545778091702573718932259924345304860655652124985686044713592852713522033035007239241912585231715771501655634474141328344246542960759001008292434085292098316402370411458799171065105870801256590896855411891193844163276453366469544405341625784133133444338239872955725395661263490335953467254847764649759744673387449888253339674827077668745438297345780656168726354035584669968995938659036105542022544439498298894406705878219456160179914305592510397125637941503233491724970603262572690341640533266453779483301472111856784963033368314056276899778013907696713660428989503944889063864449072798730245057615498866431098700303169448677513758821979443191574606030402612208689899719599381378023414906518654170535289683707481743490759337203324299857178974678698278885480466664981043082826675824084372625550051209667915930541689817958804554335303896111128861376694516337575954747475576302894599409177872383400373765873001652825171943483975780779496852821379512769966130774800909238459816588283858663198399814199463376209519230646898775052238839026210798126463813171488533899250200782979437796874431157344373045582649739380307393986984811547293034844989439690242400624416447074199740340569736550169400482610339611221754051755699724571861568612834904406511929576146328414888579407170167470320913848451040334698512302105562105442106397517287251767424671625989692117368104405770817847373359016841433264155373318505837039177882715507498773734429658660736769709295779756228651514416526369116543996576022537938255632102890953361984916939364531128543150177665566511473166067880778122362316346375524183408209065961775078804014917594528993368986832215807852520874379896740086208818961546850569348773151424195339360025762705217237424716846810488427241725404928822391424944736213174766204195831752329821323267877836978085399349033707464710916337191831340567317790329009095940078936524740712692346749575860660012687944235227623648439694123496792163711250930699870681077616321725066736501135429990134050391582129168533091016256917067821934008382528572089326982459323199717448769541633349588634115598729899604356040311436831137424065273514908085526191530362793124258431327704355356801581085009394217453439677073481475514014413956564226213546270749570147078484219213736935377966186137753749009011925605769942568284271797135257442762300460012110140885935288105149251560675180049224728759335242845093682151904420820713513847020519657616341928671811807151950607346951370115292869317933569540278828016882142485370353342998668510198452565935226526288151430450860974099474096364728530490216868653875137582632873904954356742555746401533693996409605518549058373249825969640796232323579484649153780790961613543825900774120236413071849108072095081428723923211058664125890313499732937194997623365198681064130701323116184428364194202890685948570699039815939544197990829782172991568847528314621395740137428571151486428558759901280441350526596855836940737349551021409444989721113002415671389537357934976062947223959513583201625334530428654414449261124954863452923144107848487006158609209899107445822887491161023632884086846246141155939183051143598695154087508132122442753360435041558590257626695849575817589001925633724179220328381781061790609703145801283419980604148544391546028412377356543479069212735071684824952449693408510028722225170261764813818299209417317430114534872073640004408370534367652356816367235946043611418043525702936533244808286460908562361584097802079209284757913873894938260540767213392672360109514871658348635663115482865467286037073614914372469581600643936663905786612813581204785340195976113368443322058154118211615571582514129393100197983841334659815444194198756429109560778385472143128829451344217236504726343662918407220460553341446693236437119380567036764273866044683808562758910902462044779110433832639614183492100748056484046091841142453929909099449719051107890691943150590521415317590113383907130643646309505967262484828145016679060893839366262020185057585802839343087513529632210881289564303816020640421644852830770204102587220812863474150497583368546597518309707902433946076478170138600503652508445551248372372499694911137931200135073172198486570883414555954775204720798246610877405605462866709493016622589200313442834038910175714714363618494622928324594118287402780768724189800394002530380818632888918617123783962255844121668982341841321072868955480096135135714610375954183759565937128308154617456078607943720845629785245332393560544666761702614517605115664418218147283575692528196878313551887890845525947333470419565495998658854022468262134816323836867491278782464838509845049849468006217276783982104099966769286553027455261750679850788309276978533018991282919133705112527365060902282860785485175156221632449292466306092236707590769551945035394120115229971509642876888970892617979628871835262579601188720315508436420183899719627748965742192052782371881067321418169921778151096710295049971095651828032933582511915908043634900003842030720167258492567410257868372198244846293383265395351388504132201047872224848148458704719336844959082798834561052518657682825694578462760272457150376354327566646266295280139666530924127722248871386518928441699658636033922989632610971397492556723931772803357834236112937454743514023579635457373574643236421164478825743401178848758337558297685169188969228709414347567659695901265984579743591621980334917792414645486628571037544257362171025796848051929034092778907025229507295997817466887204243808225595143605498462438805640418206827557837593841506830421417821063646176868949264581160952023789142937199799252030986446655107207648853851718389294292815032920275259722343184139401527868803299543288744503385349666120058681663793943302191046836982937603973593862186303412222591830435158346484805111250822202180749526795123010160811833432059290312936934329605583466552417799249358822936102826795424094096697442439775696901829572630928823552356040033278214018132374698366032424773331968965484737900821488555365063385601952386163705741886059223712260402903150466590318480514479013226094179578942787835883979813889206459547530236186560269404754526734993017410037044733427467011783311788796881213602129161978787567506285955461206306731799311833311342280526191952902944103417486115329702463195916426404913332243809742035186597225555777540529209874098270296415584548777436494680036948919130797507662915046291287858774940109892138015094950734254559496018177265901367083577200416066288762419377437698505096171349754548424040100486797120665757420132482768986871996489612300321217443279290388373122090807720096981267773049195048620132285890664590697954805494537571605190923735202175281076538744643914418828231966504209737388842094206502201541601246661853459141633922144018906427525276193314188886573144447877184689278162167564675624035088802273249491863134447525398199238175817248838028293799360144854947724501475401197049068499849592747345683853977546866783521773334903485652573490348692177672305757574506827361395104737131268909705527128383319769948593730443788370203431823721571838382134620664025565570456695441295058878910467671124103288538294743792242156555167102117986339229041970175661162409234390002394343271912286739341591731257838879996206343831208963309269964965947137447236133950498602758561938964171302132365888639434925394434338583053998793631393125153770954217018081377162788389664427465956846891336736093689127369528860882512550852654806728746211339847816890266066713718440942297514392468604133762544082051573644217560705434705492509577459978539450316028593970738779273132572443256483325417919607228773443650906738807024539048695291448547956938935645572623437096697411839437236800835400456642068610484392901670363540767052407197281836651437474216837336919669963975812187824414679750606846257898032157990071316091246434662340234495393108436804214145807063176019962949933192559098764289145621737166058869747097556337661835299411547967576678127651247063802129095970624445155872191654497620956220784681333345661031771457909187503484248956170554055253506985784123898971262715108514956259118960696680918832925470365568237292341324081055436939865636763937286062470434229151765149216921658048988757363884564150540614245066945928078245337529641933772544171861182165274993539367348468736487638582027889609358107196234894585964151830526923120753030738640899478375574813978328477793329917372713263952624149429365326100524128762208254684120072773281141817088603610866766171671954366108295739002020958317682023305044923271344651346635324208781932115459745099162651798743825216706041142755664428073876273633861112297039091217328891405684489826009687066123344849089545224735797472773619847559675924122519214920653477094896775458457888341098907749293395588937461856228781964801474413934583760206248467572272128302679354850725064547335878590911739947314899801558587503185400505885669515901590140210551247607611853308160279659947679395009322415095267900308232581678736618275434682897985253829992106015740227786524050988427551819678948901886807633749160106127875610989991514282433079498353088590092167193811333845079361049286650073613600378136790303644011220250271518328291340750614239012235461587436852088314132409492889514279454781225289499876912274392177253826252290666065358047985487397680831002229009221679545260017007310189103708188784392968019160793791789632128586446991927397778165205008546215752299227238758129807783493471143205511764085589088800955299439183361187969098791871882752720518272324540558057310761097883203830253326294626186069627349625938606081303168733692247127006832533188834875578517230503075583168988023795249622795583338159217910453284489285186358473634343333755569516776670321096854513207968920326961749343245849910768589618554396522753475839330764266783276615456467376194998598233330101269326831752062732491227760698848778356699618350939569914126903874656937188932728597048744615493294106433246546725671919379646571872773391741849569279153806997165786373247861794011524410386149397773742386348855838142391380921847451533740946564603294531857810717121897994207426828033246298420651923645035289492951226067618684334841607983895556944152363291273394359103287590662341964146883680010264738591270049202830949725223130009542247186781440731468991651044306368268883090319637332604664850459811185787651309132496969271291800858826044660804949585280167028473896956360528237128775618576042435479088621102626120650090056842885948520192357296060069890097681602072893405668333292783356536179551152115924392002024075131458368917740894618165353883620431895840238267295674124030904734042777651920419418018704747822468963799996197884390047875484411466022112037625923100849382395334423258131570735588610383454125640335281089984230795293938356325871756437787763458300387286225880724134160370118533976711379685421371180193269143372501753654930202263870630141220492947837406019664099975223942583797360927427944858679064714298321891987800906801981540671927620263373160971365715321301891276405470032589644108951142543470773627517188988648105427272827022792604132724232579295460038216994953144062111299880022555966327418687529200874587447414958242893155057098315748576778999110022927210793546026681579420328450959187900923243777165628224932682122725342180018129188057444655609545745399596315372410549967783454512944628893812216456023880643572893823319835058279324935799282655239296267395261730268132542808419600779519443862656843816780355725595159501336103648439337003026421658875921520229155810072182642980126000096086997563887671916140128930139162321062147700193319942396229789774774342565893431104251820627866772331041906585982626246009850968566785459367304899264613809186554574589639594766907314489618424347878852659637401196886773032117022553066637347376368867612630583907633410779500461613801321452137272056046062415561934152058195701997813122338948787814365950445817193286414604660193022653391568987998028837933066818533747942948698892430884805234370065038703989105456841154293350577668068988579444350952073266021798515153087024989339127964999383733025092070338628971009653867936591553159074739333707471627037231160678091168407575204225054510567987694079883597571560725185767615084070353826091022059784637545554146207039983961788613536067373774687280920957957964113908439367875912845003151047925233530371165678003412157992280140091662792477029019614756137774067130809252069694052090555028155690293111979068657039024684244670000186531924416171819604566563194021144804354561389743171734391396198462579335753976556379152737216657915298514371000449085233001273852503136989336391670216107295175465023880364411555200098296170708755099497229611424708096484436767432815554810624004266440690534246376054627420078166109324075615086677865609058852882263863171718064977462112171030637194270145544304698981306275924318874243897096399207013944616935265184760350518764686643594901246132997581675875698837321835080834862565912537326599682275794150353277185588517739329384136480739751214682084902992279012735182655525826636880345435152435729341806422345763806754670709113648254633461227187864934139956479731887784770737459823752802375010015171132131240839801220738898607602765744879013910591222901051125164035019773357918644414935880517646826228977046785724348062725074101322331933710067228961857284149140988266708120749250346074886168331805804092538924598369135500230898140586780691443315388298431532106664638182026011770400217223829147935627260539345618476549970918458182267787650681620018052492187848470805161181463350093923813054130407549124426425979087613208138209590359967968298447013131170620857752464489614122688011005414311591017914767776295771619852895297314686160661820678772469306538168076890528074722623998112128240929747363519093102654539218267213268193712566796398194920963761258066320426147431652960216517013163206646765580421610019084053636054481330689044960630090777495482187850010143572792776416294530883836758862592804200698157253292933292555788141357670568193964914833168443395257378822969141912305006738846161308540158806188572678551093742842414545609202596034090783769703041912292087253297101241817903810589525569051286001177425524201951065451375735699587221974618559335141300168740253243178094340434542343572542363378708131230179336361578739156955588849160220142966797223132735677862401805700316344894109311332999422773310764303400155218709030848665985006482077508646673165783567365979471864806864996626817348488517099920295838216021279592765854708922305426766020017924904311641247730575163046194634570228929962584901876751072919456623335321985451082825843511665151695521049078655021473363928161535865214023058863796487477082344416297511862817282392215673546220758981786630570711596979307643199038973731792269688624558437004042798586685769612616601392269552654524099441768394487372682083408122812330418437846810216671502466310355297062253175742821328440341631948404521758927042400698380447003483754698546567282282568902367170773730170460224417613296343110050675177829440520365150124941910383192961252601997464645923793220263712651206695194622124959362857886845002795747849582201796178100510249000712039740898810610951170477777123623100198587653054523245235549353977928158589085342430191191677403594869833195786417563774059824119718868417384602932125179037637657481484610913967869892117263917769584935204067359183527984680227621137432566543473361588790660401509310682759590708315402731603527451790481331637121819271679697501740672401351188757603868304125375588211460887289384327292552517809394220960747607482806905890187717085745628810425710245008015143052871370379241723752407999954519273795559107557003381318934003677915430548193970554691444751717432808222528838009787756594583987988318843863729093044003672846513946755081852573877794980442046728480539514250481362255967900153707886801846074810940902762005411916823840874231832582986411493533333436166228589871153709019065619383766035995172575381940546180927781661213822713416840726821291326858655445119151530160379359098711289464916672193711253100239584633962226768609371719984291755529477195448070115957445284134114768940395902368270184110951156396088762466344628141444762646427299433191642475550973223576288520401725815154680313601804265113023350525522912104726370378690133815666646761397006500403551366071465084548515099855962774113696767092384557272823808487644711850273359518662820434105228982147879856401571278843301721731472686430275487499429341024503787219802154111963823400047943701883950174822985626075740767364756247646190202392407167538940024303287268568848523846676884722044224793815377065747208249969848096531886746683425298168789937724987438906829288927378279490489468370514266599378068260472151139266412588093323025046176317153987113675338900246584687472249922279117736486269083166872897679454418162761334091911583623921484146673241683147555329251693690746938373730702369356640112935148719994562931347973792107700635577538739636559719769700676534754959090956845135447833852953092110898743294483821589745514817366501682722292954333371938097199345236524634424150047088855330591178038150591846810464340052861578070125006081135026202454149124745768103927333181836365265402182791473704550392069776388206391934785353280657984241716794267856609653611610151409046131126192047238641798017759219500070873365300764522005582051726737083362271324181541177473559374595191947896596410676584581281159534892500519592802337361632414686720890917283732465488908766402092617926119119866170241178070248590475671774559788305013233778505053947131896198299081745487225852598878435308686463371500701680716297924233614487251684653220672698931917314301519796030036832489784363396093192531417909701487926657565983184081167537195447398285318209175843378616340112697603705490208847456442133188432462713083901193114867926311508438202934010283795034071197533897470904253057313869512027482534118416325754612396478613595542249509697151597634367323749974453030122079206125492594769993781767150899096470580773514366944857027241060336745492729577632211592376463771012823841653909441440284910983221319883386644884348726454761173652421531034076353862581477651825329426814264916586259477571868106809259849905346984301795521944913581910376731881159780251918995861643914563051358913847359037346017928190103344335618090289717090381490127558587748472239759490245537986640340278687151876681557208448707295457165542153641198015578032094715927686973370960453489016141541050904655254901668346118511639074290369033050459110702468689965446705432283948528048367545393973861801291744034878026298250381305670811499545010095932887657310145740453028296739894479949605649435591238250638581597152851043250309954889953202960027071716466429883946292619741507686660729535054196720883078171065073001901182669400096459400720873964530749958659517275413252657664386735549087384482424142278609974646785533691714568035017701676746474840819556462632643952986394576835339511784309200756647743218828705212400176270418913120470546336650536168581527797810560302843366222680187578668255542793403125593069536276158523592134520638078709368022280409407945641565855072313309001399638054697341700917688771952843430542595116074971774807370442880031647753501617121933811992851448055458397074050726381085226893918189683133104775093026213924304947154324508101679077355723227604573129217174869447570577863820158994104866446749117248751666457732612831979912962934086212262207508299159673264819796648003956853457828176558035751257517184377517943979962107086101376570308596767246073164552174935039196072798980220761509353369462017467260153148097657015795808670888668882032001247944139960217019010800357881916810144927576586323864083355356395424395619700609425419712824089193784751848168440151665042775509669035666351327235998104618065163711495464601590622214875737931926668839571008377561735644973374170274234186279757260154243869540724954450476264056094737723182917358369262536305683851694629473230199293004492863039624338648912259461112577688072040603685478027021845846982458995436870821007304360087756511693983246688853231138167746198248571177799715969437300672462191363811444322409462510065976233007969545499306277533808941429140186665258912750483414664259141220577587924205799564572046171455600899194492443182645754569716961860723982916500235520572489230340564252421130627756257795557988590538291119349695870684577974020552750011010018793146845442805232114085059931950144294178883825726401911685837811530953983649974165716536196868508944582636832159573508413691178380411317092609425390696417466697348673315573521031981809432880278549871596467055559364212347001503981394560427723682888948282935217378872334860237421871864004265493395042948938280757042062632812884110736420870294836287547334103141670068471237790362339916073714623798638577794841949740456993578699031627319300585625258142084466643129318838682286673084314478256957905202082365537581709767411370405904649949819837483567303840746812019940283665737863697412150152159107483345887967075945947987649817072250645688953851034329268414738083469682699472175294870472601960850451053720124309573206917038412312702526297935809463970841557467173805183909295421690154515343011292538862949231268882217915467993905336691853467383293098364572486237141862558922557129067941817456540304100761345550317821848394536829313099247396625096853467246574978184300190331428975184716649666088097115752813614073740383014542688221241134077181008692980924535206039784654821384402521044120240019499635450952243802864622601138527091133494737347689683868184135886280022733092135989313155644913211655345942640786249747868286200834858007451899603665827395089161048604658262014644119458295375986585860006976115697201937324468529918279913842797527756532565535407942428225576754165560676344284135491813610653215482039720350303991697413168241537278016764176592498554088699407151419905128587745175787478925255000839736437970460937740231634420452990878326698301711553037623315520059443641671274914041833465234947320560315060142291913861803921983081899671419600856819333822045074067087378685391886841590764228704839549518318933679543038791253836635044368876312458522289841578048486299619149520021517427560843293484529043931135467505257190931540479981823060755163085592706431733362475719927311792741627802599000759116229222644885791118526371944271295388584749131033712604848610949253014262499957798798585129348816530996475128300557164192357042577184564195857566772940094312004189932451288123556627455034351323370727235444805168850142131666712439364816355360392582816549103984915869249001624774153303870335103266840923223314355228965175767918522490328747677820252075307778604930045435956282356103417870409735080678184430579440836881752746620920593017905957091071772515989656296430197724293163366189118605967038458984387969530275511375949094448921616199891414681354993825760352228055762527617235558145109852840856406207020603362105997688043588804611835560266772678626423389199347184815061543331694769434317901678731621609092836896355183019674783335792192712914417951390130105276208532098799254597929621764008829907584295682775586379535051340732624062921045597672655443711269110605031601157211282571781307500951987340972011896889208378483115052603831939975961672232426470168702164752819570362635432440283134711572182999979869670919656984879214223649364292953702315014310388692212659647795384484647508144129770635691564061802296617525719803138266164189675163777478023522296865062184640397461235991971827213648790056580652900160837169757325848647726277811466291755726256311078712208191535295394864950661936112135053137762767014686592756309380759427885166031255244512492709615625046688990002541970606142071228534302056462213604193062960587791860557779789287727621184261115520255930324110937485236144000140379020404573441101218613518227805450406637202854075068290969576021584380411051764121875940462103548998489573542720607478908776450054233781714529177385259916182010737099427361822705377131003970967448571912975727679578927733483068247805865363323854607219111124025197719732127154246098176693188114162850632071605610263548449655770425945199267518649053442006774278501318708938281353182894287494174006307139833993009603823758994156474225786866670478446469109055242267898323541677562821334394229074852201793269034235428416082909829297681335545211745166398795381618687686260380327767265200567585571817298902291122275632419239323732464569432422848136375302891509412986037377900614925989438612818352298710379091424441713975966543731947802353560949391032738727655643941883587672833163648098130909544107404561091383841290141370898212997824266220643322364829365602143621610449368352945010893738793263876829374529639532021588160379299986577855186063666769199295285223288831885996010684308336540213665450458909060611831154869285128116048389877700501671273908704004362847538607747007136194471460692604221416031407302628598751769989123435581661360526987797603520568693304546626677893233433588756017448716719652352609177230208006610924637499146724098546836850292125107771251042253283941087435605810263691520781620825696521638518597117759477423395977142552019475693839417190839685121423120246776385552658662796288206215865114262933562976920712574785287605223483344039784273319044733963568042062687304602613818688166679929343372531614411933016312745242625262167727336635459726722310682787727107952419989366582910503867783170861751466902786505718371819938436449089756846532904519468586794654935993159027932107451384120961369245862219939435290858498972587907199277223925724700935772931214643798849269227156542334758895467798702587149410866409629745931245522091405255952973467379020435811720854775610149097508946263657404511493443773785685236839067363412316156462476100636328714683149833879642891843789057744506838525120617322041489192374873846388283467031793196474818613739253494177422280704130937042191474782593503693646322864271822709328116673083120461136150495543108167915269638353250068387441839822324614572932309707442789872392251622023390314223069931089124173527296861138254465567530338398058047762944727718143160371157516517526588308299072806958787758812228006720978532453541989295185910672521470097977366463801132625414619004167399400773526308404024109380206144524085255786382501270943122209204920529487993934043586696657616122088425196243139341016082759774658632386602833261912667401954041516901399254494672324590162048775203121893546125864441933935136506524472724144458141783654635901569812221243254149050461969496053352662341549185084645595108599110914384600195648709271514046836398897368150828851071219110643947546634088086452974633671889515499597955303012423952179858353224564351298656602570382574462199775820905609881284773458295420436224489371417079285069932436927608650498203816009369848909846978715213233837893953722835948283351613315490866125477935611238148290548986023972731606606993782864844712684351417529087441059223850262662865449144030462485266789635245113819590924712891625411266847894330530068700685941193822627688531672525966811486132369387574916624002924602189555885057023520302655205886069031919387778136213379322330279620214430431175611511530448979949795308147076805421836593271421952268454162224302279998117533038799169268709244620971337870111171140541057238992624474718856988964474205031009364856125749328193337118863819192059895306366853689416905087353398823284431599117163814950935478072139615547128940374220073622654240646879698325316975872066201245951087256827824772165587425119892163464383325659093944695318559214287291100739232098291574710653425591521380608110493595639477855055628070415821913319292791306767135802987072330551724917376656978967768091332549176457523794778105234979026382478521152534578983882133078048662961233118506936605444442542679781372405647042852235652558460729255096815491147656371838485125918513532435408509882215463415548721247021868759671686492626960834531314869428029579158876539839989344228563307243880684413618470477233526507689639506693329360896301470393586512477785361906815444473075351412314371573434786456949952625364104605607907204201027612511266941858165568011787679328902429558888226308630485533275587644982975663688258176397911708845721563396390095693950034594100546585569344819381324743902436352069062982341471102714706256765074273003331308376629192738197182036724228767838843303055093108780499823969711186835350876821365504808307353901786523910189840474304682676196131727973235645038114453071555677273177772042636971670619903016083612593225501089599604423635337534740141399512966992056177185207932884348282111180510946652257647777203785216585475868654677745779183438781213965707925796195404816095619675675573931562887649087168247390742681417273508519680313425305867682527142750643384329931277639459689415956481263925387735343512257703048431633608670191832678804065819070349754885050231026476428595204072580346655914858691067539768437198175959854152696854023784109516185119536336472580485827116016201238931701765831969258035885429468353003151591529351264581130278666743915559508617993112059187578585723253088166333622739036317110695267333478136674750298635469372845659262991069523141697176718556703162760727280809466717649211564475259936845275207923364068923243648365905504497313899304598533542606748917870228619354709955316388360663879322484035183496010988999264791723834926097932316022127311238097132782482504145370354442586814865892547236532177606594452809739116570350525516495476378263843681920975605780075837389132083444415740866532616140007304349719468477089255435330794293825653572084983625633030788011474244793042346718996845927661139119786939444300938296277526021523304378874368997599739784431262266016217944520326462162758503220075818193332975851827120080703857350674710676520124364646148773696373366307902228735538630665692158113715249978819703585632678162592227273734820789796072674978257264843846890170121599824551548197095349197430631899119324118972004568971682397053055487283669375797400701382917358755902674190944109980316333369812781428785875626763960958646185773934031468837043777056462484198287395989355617471051847889809960748398509957359915111499974338363930914222315283575901207776337632446561203053085340160891786010793998970756902738714751110118734851559247308781021471758842134882781253346453603179893606816347118407443676364094487096254314997470676346330590767872178307795419678360364131998918492285505327767155353867236499724464096904095276511116315433300968128714716984923694015293131740302838408864865317879169854540006219071547321436399710608643887031550674725239621067104401087805204196402437137616486012383364376228056723427392990876458629359550856222470843147138084540885824881739697201634600787900035499556596719365097114503190599450899511691510353003268652617113267233792088535787259961567823454268120918112603704806606585067053771304701660125570949062189440945402071302042933669742761011084165776914141016336585294159149641340994648920985479587810735811822637659829312113580200934871941676493302396611139216986525106483665942146109727795752838622381837521860275540760524003559605818743209332755021040621451211307554750979047727126482991188475402649845627275312181759964311733658659923186170853486097255409145083600893257887556014853605302926252357220447019439925070994669231014479225518178499559078211159619118570227635321874938099867653602914137047468322166435222630867558596160982129421239873019147905881247673856320225444754922306713172584137459132282938175712514363521874454274244700211744335765830949964160710006754872742354207472321293262655356775928205915547033968099267998904072334104071365465149536346500067318660755048991991447339732784771045965641787224863984872427827050077232459093218669169198081662084324096070179255090773954227630109119151804311448353597586876119318338088699200806034783786819665926859642679114012820723754327448445590027887652539942456344729341404390398290599398076637406548451463380350993222473890285611177690901290071093646401718849368576255087888104638029619555219896923953327299980318896268064792969001834256617149842648263698018717671378169359528407838680779718395060464321830888748490699821366062374431136745579034147576973545894299463065182792283696113207973212560734013743609566573881190234475473901929507628444094594170437936389356471659933145971954037501234207768631037835571440197888394461811167733423600985471945870348151331639628081651279200083741236699804274356018471401317518510633709624672457480249291334509154182918121081011234305884563160478837759200437869488240799696237523013707226625579258533771612567562765666885872407264368378851772702740427141316211993145373226012950591442461693679776698858360776084691328239131744510420376818937888246219480615445999262902390915745494150969226523099276283780299296366460839982189308889480178083182126424412009717094405910496964198799642108811971425817844888912040114959701812528345059879739529621191947006192423816948751493323027651863409776006390884845757697874005356246044701113681851826150803991028940454447073055282121720847876333196256465432984001587726283415469832091353977321241354746886640245466392807666898908438930894091281453414983433379802083836610742664874210769460866127575144791959545659694972844379323045226782091780032464746095125519725493007497635329830796406137340758069098235829019357373163740373737708026665400488380695036803920125536570725784080931904341796124867950113343189123194117845649723262443363187878651625296396475887495352914975289960148396577930996499009053051166497809492729198217917377493229808644005699338689995697781923073278568944023152151634199833420952945354894159596010189128566142795767917704688528021071305402988011130046941574065925117827135692367657085415087663462312389671869935154322937836452668670878379069273354176019412115117386554142903287877628841275429020175230298566673916451066293971970915587831841176102825129922954995647496291993706243191626954200501296914191635930910871909090987547533172318640764735034782632455201049281193167830005612727142941353842837334843825512078642370986263237372265114478647040979848292504658696282224790720724763502600019328929416159706740405763705698832800814713269812451196022786228225066480677227491549980034436694366302430090333315548029169258600739320457218581058872325480206988408984759902494169933835034965697494351554806513071981452159269184792287195881305479572589907022585445633196745630637572042474667473042908977560479558554631992062952105701122782362446584083838670967549245291267990183069911080378172239908045770566808479397747803900725558095804933355873419609905817485444803926628890260041288941725465827795007447753609302825018221780603866920387928168238417498898221601212922628578371848645519021838148481052308025069102121691996505590759270421351608519690587096297635148831538853949308640841979693875210159220965644471395807086583296952084779881530433243228670059168563926663395375676916255575127160023840815026656458353022072550904891044979444094406007240643178872646972470557262804195210504000214234217884675331163443208415721342995240617006080268683632566293829837358149038096418400185004775107633968241096338132499658804541621501917234518363122623511337170366405567166729808718955157391050481514980434955462374330492013752223666028147417439773285004717510998255714394664781953686493828074311741471019784947623176906517315344482815971474936390495919578050633156188391181944041800663884878800191324370297780198878544845403165910578808514374798892476063068455373154940667741284618670408031183505412104050233332390898004078790010167050550010616531814763474982424300948660717459832388763010400106197841575269168351101431386831474782242833997017069694741623263238098230460965495124406072037115043431606221986601609176570508257961827898652797901800396649508897499095574226248753009170384143400030365896232782971373991661283414075789872988300206516823578919546917653057426319896567327559344163929389407208639876130420318278342874746514616868258655446950663592360593923561421004049945674003869076402020855641785611744114038043608631090937876560129653543427155768181455502430671756002333096359341000495263061173181362440871672750795983202892254705405258255619693909965943598360132253318997759512623258442336246594774754934057252716212797915937860216491235617310993362189235126830650520467943432737409533654183345754979070786235781256923059696904125783567923499521958117015860625568306173556393841931862996911125928048565054964704063901516710485064366064428935999209785036158443066983378610549772863708574293275437378162764875933762190006109926602104366370740344675066574290366712049543281977575079738228244948894090498821130113754979781725310644044988686730416827744293611976090916493424083820860046484953773402726141190816070503555777817192139141272640333487820381233402194624575584209541038994056142680926117801170807050928212263691100154773664106316155932884749498123360812209348301858351643236922890705643390492172661231679332535659102411652143161738620388610448207839515289158882472577268907189215882382198086396726473547481681568303117950505875821783637960670043718963546522035031434100283193581795960741617287315443989881080302418711621532418337524719412068174064337946678726904541631766789573537572926389663917569023435780170909721774466439508296467628162880992913408692499479443186582213752598354199123200847817549301443307493886492689743156056072889839944073432808873705752649436137076103798301150937642088399747862499114805481720107242469234557413239551282229648825977683535150619524769941669424911217819657108370274749418873326929152310122236216157047249332932605389098337743689866313495980943593947565692888895528944375827444970280296362876360558377595914955950718703481143139896927704870607663038824611540484152806225164948045356566940944041245511160535210455395744701853881227237723984199373211560597761578562786393372090652814862050131509586155792097601617123545810260932153919161854194963605872830939595117143242174896394228379144307920889300044890037769461253916137800397588993178018443383935714978652999042329856192162007349832554735827031342799119115948002758079560837462771531184717978639413072170003864774622812815647285628433545822876427269789352297572831220501179186263298369429120719239218659126636152729559000393407438161881454026712859262977647564831963449948993970347691331853712362005693029550549292644071787766174199943832356551038577776152425293682935209598673224833742113927039650320951132624035015385563587429902589560377927493632350473293822948831458495341119362929814728854803299971771758285990989654627769628419189659153847044087808327331591426017350644398361283227244319242241152448988712059015693167391037912727337985193257482764938135210274212215879869466727442964310259174784574150997867978945394712797390414243031036768605462373652169115437877020780871684691406495500119404439722150521444140635585506155488485211748359770711443048380747430660302327588112989897687291064409028665173142984952695106932945686091807750557929488411454559600136529890525736538300178394238989916386657191465844891434594222265643851231510583210785889593442081329270347587325024415798087999793238862337190195339292529133438045998124831413023776234670361031826938514167487481029204467108932139071213667489723342745059420369254339460707134787588171672665469198222581528665629370368023129159284063933723830805058216711551486024754408890916167047509378390108213063714775567126033433630110607384684565914809343421228183215018936543908886851203749495374274358670033043102522538559799846647781452016911442186105269643725006545153123449983757525302513894815555578242578179181314708307248604821671357631871387347733051613920106003698700760156897872585822229203902742312552156803322903965445830905673771938465290588632072033144695671164771504030876095448120054991351650656074074353875750159598342025874359441028664353538335184529628206916031798737133169313360560046146142374876469787739232235044603100348141331062799889616560336798230627579964138046290959501714238284298340249922567962545964153959665995697675361473137705483468487070927783515455822609763313027640335815419192581637988195033249521140578804991827177385035769935236106516564040450189247239731004030022317222414442281084423406588930573209851216873367827550145081881329994903172362181473835115497847982681046917207799444883096807260471121323977491856330604908022335846866298898678680102407545899097933803550166053024531838186334276873352229009720027782031603136414845815012375196700735471684147333316992811910354427899086328698718544323784010079719933708040765963745424039283281436296624094408456694769527722107856259554868001986906204388841327651377593200605188203171057635339493615500571795765103045266936605409073772165451539715077593497805478598474729887388734081882397447407957748373401871194069468480032928123247183056281333928957242674646836820977511785057838618022362345830329491934567460126572609096783019114511842695023331535518131877656991901127704459193190776740674338896532485683515569032881845907252813043688370474297821720043675015885253921974275913266802405497793156485274439118618609176333698934771466211683393882957654501077146266649341669730479585938676685261441560665348877352993629656930755513423058386630019244582190618467139581509944926316332458732715833050985630494924952287073568914654315335758874213466948891133547789760766616865400768009999602911706702906690436550592362165849704718570453494606983332798890265282320061600943587158602162028657699738061630568487267543422794382211195848578398898709277689593125141469991343197645577892689013761318039997889115863128810233067563268603012934914254029341040551120977931898497733210885778244137508319194411242149106629186811921841030706315382056407701692554795067462199397901381834281251814621850963369527709900101127901510303327899200627693850958942963743998052591050219292512760300708333657386551556793131812849488838310418775783609930044275885076664774170195297768598399251698952627123738130889347540030391699992010157881601622398112367800703920151092439396187183783446784373558934679488158202013936182547960507346175926824955364929397015654101754841823790796230008269559504722501559961131600819054308059722918962904623661628986141338094080671802933756654852512239818236930129581059319686572891775255124158149959098995785212957120245089368840583686783238580367566933931197700540655862658254816296603681254432018395258949754726076340561444559526531947907746719141970483202471924991317496324399896302468958132518726000562275474304153103002706536501724631777187922903740288800402549407874282404660325299613430657722399935451677798631018194263204852664014178342625164683772416747505525690094950490765084810860766780255265050308960297398105394326380177865140672673638823438672632478544233508128204646599950649450261438354641821435367007282867286528703111988116256719854370327682251754349360521520685159586407488639506955119398179576383051228839686370638193658013694734263693156409296351416076268653154253024561330993779329691096795284646868540067270555665403683580886087505959297751061102212893951331293195071964731190467669359973516175077524868406025211732009359555223556132873827185201915739904421265264830798668891679662228412065840870997787329080806631472972616338960414695183969375532981313441276119441321966622560119713580022760608905683445749144723252502495354715818896899138829436466929196634957721066515374291671648206418264190997936365926458221966526162706097849332383079898277735262411056084552261414346021919097342305750160168798578050545175998766270946210486330146788513366309725728342055582195159997822157450848880755879128940504194278870972838506285959723008649797314753323259985078872965672458482474822203893949443022886601900910500661290695715356159137262032376970718985782170396255111981275052540712464633073398788457083709305656156321773539005701738521012706466787326576810606944955827684348684172334067857171869480345165013122466251140085278544310422054526002272806021631963358686709486187641425668639791325546764258169577820156487233063535477251073461053893641341904044085135548803929381325382434704429939679343340139195985934642034926797453883109111357836429646180909853375604676047932432421236089864952785699251751599211808778228720703715133907128444359031238877136265953493979737384646041205079755329603845714277307945778693709133951396683856387223587944742971182780868426770356253764074656472912368645031141370644444706431775041307829182972463173114801317949923677278970477414837480325911383220487407537503192088469154193546160760303077537990933807567537208674934490735400600052917748382783920937093342218713384941536300813822253800500226792400380213248048748410198660542161977347989135460788866744901044269372290051656940935793604790950140324466028871957527029200408485289882249514119948317413585296456272395332192849232701200849017607050681984065513401083847704590047155636352350856569209879058320670366110011323266214892281664076803246626899965445354505124706018345314101779258466698781883380646478929308667624318774125151211103876237677389157945260912495015099493119911672274793205479746406475645506877840105524897500246539464960326375493617821655311437780145534820741642537886375688862189624734612751886690987719400494039660719878216179695071387205494369771916536037369336145392270166623434648344550583162737953642147269739511272357487744784463880774396511447640176844113763441908797406810500929835948137284697129065551069679338959871007155317071680226004629119190918318051735174391897019243346008506406802566378646304694293417038658404373640962667580118290479748478818043122858564165501459989653971298742956962549172213340594941498923340600484598263107730519936254085954025197562973358063358768531497579865994414934192235751848615626513292325812478828454369734369203565938791879104624831109418689646163284470769896041992590678226693145129972723064314455783201584152286711854320865504099879623264849864192291919934496403663422608980784748611065158822653903804325587635718568333755135513177734167874152615389760972436277650355425610323909114927849797256171102178629220007693595719999369887866381600706438950419773713788061707348954356624154697620776167017349468356996568171836281524248096205283777744057967892375465951298788112526734398637165146455617639895773294555329685637922237570829050032203033538933447954562862409271029320692344826291115605718968823224785744554562520632495622230421599578287629840331303659892002962646052975152802799154662392435281080648615237244712852647889384343373334901861487454168089884056834267654877383680408037032105648582680130916634169136260986807128688188675143398262519710954208172530749971269865018566005413140149512029212248964057548315652308330542743988595016690269133265399349738521614709788687020941393157694827524332830888636516207426082435425346235307751700456256807857854900488838451810056809264319706818165832364630339780124620069333478114876577359322728984154833646888331886922190977557069239583000696698950227958466875167416781849709126293231096520417817563522289803433728463989644090277641101469989507764827576673672638983066073299946972472758972580825105980075567095481957280440826119804527303917927542709562559401212005447165603231815541827536940791225788346006121841882465196568985227508013562943732252585235914687785634190028753424195768707361363070840842470719194267881937953113605864138443978410929762353016536308563215894474861854668716422144038708256268656999138666367331400758906285338982364980237316060217019736566434320152923573704680658247955398987055331971952548527847523685656228073811507162293998585670522503467905615894347789315384435280222038960268922650746733804311451957896818880149203464583297533024861262772787438138720905503633871839948598541663643615819776992944548591066883421698617046855495087531569247702546175758396661764673290390780371991178416447886431470505286099113866050149081127031457869049235056777295017920701170885398685696658339638201437350325022791344891167748771532703059480829016437867530783480932608520182101498385367241896189163779465804564785852128301503687639048219806723583345582470788218072663082025160912971299541798882536967038388465393678163347671886121276765149029486123227159269269026815433025544795418514323089377772689721570284300832782682731952485966836646405551874941241615271507992632649170334965571547205634892880276003949049613482822172830404291599746853276107402623039221759671712417883526123613817673537211061036776609612002874522388270427379944954003945458107322114146882265863685316581740598713253831732413139886370513521587735816120481626688379689768639667452046793404560551750966013879808072469308477595298917808986804298970450168654785797805795711156831553338221371652786086149296886737778662250304205162494545896479770164654093107484950054927603383360364501797581686974921310434312475211172902456573873979723395194508569360827154797702567368490961998774027583280931169782530402724209934448991638380186421899845710072835339545653425762677108837587298429418681699290589951600966887009137255882811533142529488082669999964304107192562610618954331129228285241419558432013413429718793944888100157715315292748788470691926807404663092674884883568182861966682199922332367025857870410614532745806484955991400677006854515334928829365639710241066242821980282582479208031546750204181742281433922779815418856659620380748785115380041259409265380611644778384891282086148527703275703053917972676566592374832947609689646649718670864121582277660518735027818602248168324014818585888831308506036714184751614730442507229318858041481900864112801238427323613087867224170531876295458542958687517832987452930208013945538222675562456847451150241156306269725257369233043410275895610164665273350819128381663781800017656907745226884620612045894107016925569234395518393133984409395223127863377051788272557424007320134660007367373926955351183883101190979089499678042071914989782729475602635828513456069184500969261321826249908019283063607579799860717533914418140195905227673999350830274025898190916742559508750704859822423449973693427681855327679504386201268397017895262819924036228413884291996309983044150328249320971699999384155592692238950925220843767123617135095959127640400478075761905076034720865201669017120103130156663600901038270469443564671284750364109453585519284435368622616731211518069109529775683058345599318272731719892397214930769471118618756383042870075294829130661834042256976075181204859763555288003209984422382344985351788906839837313755657736852364622198005025133041729638639801526560528081721159387708952909744467030625520236934161428113856188125545192562165844659278731277215228784341491101489274928443869089385486281371456858732143083620082225115646707166971609380088301620029218135447834386492371991422381694632349606167064270090683979640718485597361383140419569259186923744874119560647192994609875719191905019194604286223429514899875215145550287297202708041168872445892303413870655993695061877517759222679501059222583782645036765549961267370932902683802611837520210913976304740035064475165075197341589634635245951285148619590080214216543157769289720595370027281444019813745511016850298811994978770630188969603304275053963919439178036750012095574745709297685503328959758779030654512161163852964007588900909470526049244878032047042242816093307725666883961530045393594420539603994815916865541062623828650925653927986087478765413804380500434699222894396786005238403406061290429064465105802240793954868930698514178974355018202833518002961280327773198905120980015155814770321149616346083511032216507100784493524385351878313335457947719989424632052733296453011037809713443835434489378621721752932841042912607970286349011728292905717660225178119097845388218325475652547837651598737109024850949525554487956377795680428087540045532871160847733973088804983877664551978214558145379682844512595109119998896747719844225127720954688314096503122683887647259615654922450249148023245983862057853350555954616196257059282643661536040524436195204598724847767196878585573198754554481498982696412512065119464508816660183506356544641717062357677090002599081297017235393358619321087001810707129072576408609616346609487735682776264522430651766357098822392966516110926471514631181383042539710872201005926882351755752148756018513887364352713885030310091651925743867561213817196118444817706512601601462685286555349047732873408489624536402902832094329223383631736823695018452284260289961740094645687277521135337098180692418614447929543008332506597528461377917249968151490859878183698941819808550989313866879347378573035494767956183289280602328375974254970950043750842762711836895217115326989279616482278145586681192446769451220726618542559780244459125805738515013810737866678676283545545901495079797379058312580272273760265719009045803274285048919542016678195190207347437901006533769557067149965574759994205172158137799358236788480195404184461030424709373521196756111265737611598565686983223692415951908011690793140648247053017408942032258617034112950127914794254696048278400829892119457835546204070463555373750261912343756107325845422829364762623930187203382011882043560172378233881117643650171999354911211701063509883280030590941794916899809796953510913052193992444476779719962786078339293334654792829394987651421298396889799027254512207237738595094530426013471110271961150199429098870811966112195732716559152982358378078323920044614064216133967287095299780159717053506644050649413109767309825988837364197458856169075465212817029595608231607639727544220124163924458498745011648534232731325632754345649817034079479229807175806703946782763620286298716314678035854659580948794279209693665528267037636688239356403092190865724466724777711945097680095968278330230384976048258045449999979472517450024020694272016875723526546137609122097706913355338746031485657896480741980677702964731111017294412046620277690994633479620769163411013209751695632680587922608443513007529240734859720511307614773420265540929579297039607604179026535894856256270480983153969233613478749187935947539440746354104829472087346005366636184769000480229452510958630563365597583253559733541040295281492684564144523459338767025955502849952349288720649585876892332602120697803018273246596937416430406788891416091214492941003136457968314522706148699219449010665022469269705248160006100392322312841355411605216307627545111971600555788599384583656992295604619453820076807990985286050369507973359754033223490113808804336928328639978352631467725026039273774757834997207969230855616881614849009186422660034919130893241121487549330592938496402195815048789091583137534210560122167359140324799061986943029030723976416251801517676796255411090831639987160924056007782262423054746174719404899484985299150434708039338034564708716673766952368501165367884214039290063611957043147581912257315302359701429586361175563358287917265713453541291413432283077327147578996475146338055798939414877420717346785945823037086542159706915351454744623233748576592265567172362509751088798751850801871373651011330314167027060325539135949063834185390451589784318759528528570248357299374510322290664911361115354071947631060773499170785267072914642601063293173444000586707030992262060002680538809601519693786650564541019555291337925885793323330017835747071493837900638746523573093778067496121438506531210733474917348045434609362123241560784466079251561398870931100666702132075038703456033192848935568306709578290875554267963021952936795677372577192036712786392377899625294861919324766150156625092967175901960955389960800010009476890630498412679595885690796207735760049761139556135891681411874780509403612432225279153531733933354487050954652013676195368657677189540423807452807085496173732222094170516566909175604478612937307864999647302352960665133346583697277974139779180753857264642931085741818498804265807720160459771570041515897848906292142592122413949272390196837910463505712135108113101543354411762029171805902700684621318118072022836877666567115306000568527102746250120829172597845113270851564090261274482936644183799199084174444347047800740118805047226280776268155682716021593966987742637276371097507497029607856582214122654197331242446274271393402159775817348448450015581255115615994661532662448404472650199008341209991823800046366682811087413596662079142042028462069336302115272838526968646018412468813943930447951630779907856586180882889303096349297224618136604657480813394023614181751053010448361456671870324691906266987112863348533338439440948176032298242168583121976235055596199559099485329688586083080150339492409704568331269007587628132529640856724306392590934434436812732248944125451623376818840398679176905362861442452107071070021897156699123725605734788517172890200634788455070487550814767773599696417202759201237256577858369050761040031102304254786517602210270343846136249490894798607281592815862631535275644018378245154623128409124917602466615835192336324522097047919675578398152660113640452397370126425010386811200926154541222554461502218829567001884977021885836204106718857646570798716192990047910008191857900655015688318459549646820007161796322632216122308265631188571183003550873205879179108745704911912878632091107957129551484429957882063570882302231274442823118288306526255939750386792310644963185445207468909820143715862340828115609894753600868892192625099613599712429823041080165981206475968091381805453685057123254707390830963418897750454589425340718217097451521846807956084027130816286694467170589430596010526926685577984940332354792164855617661131475828402724254590144186654723034409752371802323155981710073139626890825620010411031358485659592436161099678797631327612066562631581105032399945236001749894454947036319356499191728163866116256117447001681036913687976631196266773466059349347938430453298821545982006939773006643730640224154910833863395168265448765016451750026764836126461532867912414307509654804295841994401575764727750619474823355625837726141722890248571338662250078013184390886030723638085111533047136541942008575319724904822442706820464665662607224403943428618162758368302954971097098950798886639832990499479127634979771922346233382397927444639612894024609698364125830788149297014553303534961620163123381499131502516277123660801777984480385524691723526234869057910854572808410523565982298135824394160236120876301942052139348206887448603185322820872558379969536028116007541314279678817973296281401529370609109159995726607340142753359692335804844254824806050854214050485898443631805110137140517142093552786727299753270394460465664498401227454323939437333555752134527130795404101880330307772949289211259908316371238090228907487927828686659499528471795642329917367805692475433854902366041079128865559167204552672497374102644381368806504146780020325391763742929752743934549347284155689115318225432982534209265809242533581635775439729225225922955030587484471169974554335065381355893049667499539085912506742152066868765498120356109104533432520037174881120328012312100675546410326948651512575718600873327354039898703566437317444019954518793860057590834106907291588979703688751036773876614018706013837640904793794090391927907068579841748980156606845249616239259046063961853225444920553904433574429300484762974817836925664112184774499446048188416486774821786771115355525734979913893051195931481885478590660296813730812776419855839251006223372389219524381703732007086387767177254335624968939611180055156538892425056037938500950555757632952802140524086841370402389814516206034508605210770467575970678924309711496484627730137874232167888211492875597123862842736036394844401090666999049293828606651845596744837454868576945320415515512532329422526724118511289267913384220485414022521180580223535712505538175633304277893650105736932105800753589547565062324267463732130997791480850455613357544741547484799660983117379583463266917018125819885712710464405058017400143856891918548229644626272584381995129717827327647669161815409061899717446355346179920991208962514664558981554626699167412868052474980449954206389224050621884035867150383775451623754477657959458917187204267921700369949150168325391688219331679468164364778309640926548067966146210024130088902735199431817430971296165221872901642886335541121849016158175454161811962047960125344405049018247456256770896084951153632837602003206009480336714073627949443235337467371748701513620132070867963060957303064101294493478151285485737531669800114449383683246363388129560135938802297804165131249674900982750119987777126290120999220142008264651042809311778126962400935112786015596589925717832155426678834332619869415752220095051367988598225136913656641013486222358941892130593871933458987075240736475111132653978528852114510073561811890720686716429113174658167762962335077168688022700259462008670718973320363915550448799930099275554946354186957758369975552380561245353341110269352143438193127980799418607157372415648822588544742275539222245920451244372031148904577816748453546799895712129858339499546157122297666132102409817114006406748334278174847742599514523651088565486500756358105819204641320015436633130063596474335498706210846290862238498307680955009146424936566615351984466777047566066412658299850528836078698455864210078281423583982472518942838812186101364115178301491761979562901185010402454752407406949492392726973686391566761379303964527991918536400448491266111033538339849939417300990732838370810549838127576759396411647128929513335375819880153887080671077939072503036529627639528930868475621302935850375924005598644376683207274569507341055391481446630284581681841338543883057342983824892483241720800574295699291342529875153038090004508738772301391010650465875034429241181758529712956309309552950994993397767819659735148174845694220581898801100663297838867376946960104265861495653297896438084263774003722462046443321034543923046832096024843627190513895003324384707847613793935249685394853558214926255726987370233427316183845280409741404180491529594886826729960697526133562909008765274074224858390272013769072634817605983147522622762408318344386508666947127189885577127810910369669359176361927714096284474965821944220887231455357001369140481389249275993329879426387109262654936900816718788802853425218336284968239733473984553054766444216626633759661364943660248331765724850674862905960746321216919831975358386204545941852040970508166044263538246516987647944229516284059516234913146794659668637762434026558026148785741628288938404728365507367384006722147272407711924103469243979527449317071061251765121853541803040345613199280659123256819642202279591326255137077302514940760556594423590881263228008721187947178696903897308801139588568343693344861738981539318000702915137469865500957536521879702287373709919779499330699624649223813778660384730790803314230882410363475896632120254785881261644562732724886786948472307796780745341550121889533336115218136429923682084166874907555646767590909059594828661398388551459616279496580206252167450875292957318742107440735362637882878331765401289357858735992317200706926364914511515307473245645950220074372247040150213980497646770079528978503578933051061091811822580077706001848144738286974880126237375223282236541863714577400467014411692905222797716556519933834915079481597693429965095787117768518893305636422315626101270785755142069001046295145366372563837740283160666671869279260694908867594567861459358032798904719943752352299506333285620974175028898779543658879701589463868616077024585891083747761118655166552128832932479612240602181729156609323105465247370680238827783632910005610056251253983013695637353430384008146844711742253977747932447352792261994700997588877404037780641751219277076241444043352139534381073638550634774872960387673028650572832201217031991909632970452450270009599208886950545256095477439672006868856408691895034660770410558367580391282290889865458848846223485520884886902404871273966544761658120028801355787244889779119377795398004509771276195232275375262426022926941447721330461350515222055780471015079545754634941138350314613227805769770790359713977925424587413755699894534452564288462252082466926397783868427801286596319142191157446350312212422648381644667171329868661493732069106451823734132338956210236170601364008390109217154411728098456639544823217467495097296102642521553491884851846451808141591362319254798954673415964772791580914872295914528255191424023417249120924142756817660779875695174047161033067521028355327436460991626299747379214470203336759793284689313256680428507109653395650448474862196568752452178396694957531412532367178424033433831089424135379780615160347031191922571652680941029751781694956713715596621327921846282479239671926673045571952933058251633123811937729221577553767557765885987265387408072140998488883612591542624248386021401296818411165792302223084343347509045803789229625831343114238061399684023559742797919324399215238080000018822356071864599026030277295041598430851963336459789722309828941130385453829431107120753359338666943118928934230359527725498663878702721561110851899802821332685531330747288993622892507341861006523043203460166816591407433677124918086671473298232954150263610657734280799210181295847533755487670289166565226862465698717762039510773110397834958823403497796459327154419852645283907445861839122417333262417545534398740771634836209204593453650361628733383829465406309878676673576275921419909913807463967104271317489692286176478363799520667154741548710594585043608673300758594756248382598991659669866077758647592003202059510510921472189241661262972997898807574608037734256583845579120186800296303791158304012185943663590023266521317327716079156629801055324243876919011520062805338376006453872851351125331486964750029948591663358438336961442570298933369466022100769935542386776938222485130943116567872299413799204966533988119703267043278880746936033567042892143784568395584430850882145600743322305012367977213959816017566084179600644217994353310779307023601626296275554685128174473630449311398062293750205684430649173080931269402082362172119600956506445978718577136725737464950665735232208215000549148648899402962291850534557166834490217635422864531613196458782674653237117535068116601850180726176886147105491958319291386506738240075039859301903874180646536149178444623041803262885198759196646554374874375123417324339256516202831074624269051812796409575916791955997095880709887766337188057681950203713435219004518538812189304441655010362369788520451961137110684698013301352697675086744544970477185374438049814201238408649781288660944205337460972994777596821182733985937434177244615127909177373672177612892883655388540990941174433580638442329447344026279939379394823549792113699193124414199287344373814565291288844334572596112479146825088288713211462156248124194118041649249273805759097308815272650439157032188066125945769191704747690851620000070179513015269837758459254168747060129531321242504582690600601659855492811136145193470963972254227431574403497080030803710162568211325491622696836400919645057139044526137378208219291493175226976842007978504550294426184191662814515360471792371029090517913447642135200862631493432134830978498789783793513314333128684405215705191116773424725632937709691126930523135260314485014666450208522681976191965879845218944839206386579948906294777041912733064204494146585021064922535754087901149784802581908711403024032239011835708455857916762874523947386081660613201082944276503996219662845051787591921569381610675866200184695425004426027486345609492796959732455649370436606325749949904442943517970856139302521371495867612333324830965756459203987893242259597570467089503159280629503586897560001506390484445077859427865353932054436690772562860822663784237467690075971802056984257827648493971006055868742337872200149746479661198473324150633250016832033120751127304009509114732325701009500236460583579614902855694261996533519932707178794611980546187774340329041894198198516313562752453587605128743012720322315212566815445913354696334049319157298562243018941968703666272465703211585834379913186928903882397553835160917472110079814175011799534141756533475850023881567367599705048045948727152852825455161417971129475431557891847764141713717302544746293401857947479409133438545528500685330121105224180266528108318478124909083596842916706038201921215991528869972107242463416110250004801532451145782806350880510175236959229740421010187809672963835487246221261168207004601386038495768959338156163296491010633195121673569523613711178718208519880765099250609052810396554720954326291446383354397284721987002561877764981989144953171219000325971747185204776577567281168572505547776502480851769142134933366491565602788410693794925758880138524354612654717141627570403689964493186945356203811783998641647194215355749067790103126731476199623688136828780636393948602225874235722313785206369025858947925410332816935045874773222970183412261441594273403214634511600792596488996927190649842417431218260597836430190421064093494261275473651999925729786752992542115794240346296501836896623271385732666779886110145197246704653573389607674496992323321415187738367957463655869275192876694301148553247762974463078116432750857874505748213795246430609248475211552900333676066582417615521605278645624876919502067655422466511454865885320986526537589213406438358419803435467463890298165732631981987425881208192140495792816998801869455819994362025738241655926914613712567817714510706988429098926263796812949289987794356330685579108077166692554212955743333860574844036283432291128469229107850921653898487156826980103301035624421391454629216142837270812621446665661314584593437118376747364189462424942049752643385865054663392277280034548266669725163580082549923146662977732270340574053841889080346907632249200782574396308275568407625574988854501513309810622666921035257336218806585110626893738915101732794311859060306050115301895613129355764562662839420513241856595139499396692771615115882596548248941691724052490341110934934389774479006934925359168633623522495874561511186050152233719231198209817422892670567270757504906298253117417450627135997475566589640855083398053336459493013344140274739920222729203854742824049111601111401348172696822060094126207114393571790490668307639934376731547671177483508689660207483247766045233023345084539847535112812255226472893972348824524016486800505188314407982995447037663792160383141399655570236038544398402328499575815520824244066489849779863695679308921225652168645412468911510879858806778481226305581281642197933566070897078435697115865438980078206407994818403173331765698749386293649841003341645765276669484291934901370242724868211759585774564760044379386056748978569118657771975614100757263459100872126937792787546122396649290057967994233081554300545199013927327719019334556576308422465938219260816107886180159329372386520361183388854535633095279806835032834033179903622275746997033875370929691363185906478796504338935928725154015685747797303880484324910529072298440155657914416704646995972712448595456839535060543036503600658725213109353344710152409480006191640860292995154144549309044959225191619578820728694006938583055965545882002753518500426160866195396895220808283381881297102510784035064135121468529919707059409655308564534272167521384095701266219812983157163300172741831119951712740865218714322872101623005552723217397397186499258347434251309239863498958692556094414933147810266450261848982138064052673376037176226624888643765938128440467000231609606642171135118040366742158580665556958292911265445236670517388560234510952077829712706399642663911245272816293358362088062881997288497640257694738205196939445495959287712649531940120916134573979905243654105584794387434187213097227973944341087082693007061686168988345680811845990973571342323751130812891246722372296478373735465197266032748218204125987716690403133266835881721586182404313636072686594324224908735591661926804920893229951767912619059504937931141252673481607209925012316977251090843200078376659762886946358165326501847856493267654435573440044677268354247625827115594491249796589157994158950700952801098046110392252850830220088337205743370737444621715494086389625601519692674583178677686196076321372494791460073136133967954716276086578292675551550159121731446557377135028528399319658629676630779816960569475032102210448848044339405757294740476923848547412359698235313799752474327259865402584374008452036860773770379176017585221240943861169386072579572031838508657870798409114478516020175843605383756954275413632879022830304966479405487969841934798151139166736110019682052276207210831652349019147572754152798087182478751768004516350743587946248857740870071194642814019681278949053719699106156197490847969006280398254671730021284480579573289021833121014635350933092492348860583171608088306114354564649955638742651645588056118332882847836202628576378156104421831474338667488432737178008322396256969109727398652693432393232881039212401417613937508493004757918114777441603559119139899466771548045440612039605122449303385444569819660863085286702264946709986900366539886285113713443356482159872432524258051993727345193770877643736643781765748587301859982309507582190644407008661015367855555964352864885299071082627758875826458286763053548055000185907525960597076587442856577193081035884009909261404319608687452733497638069013279993827826759444098698265171482705821330153325114594448797102365687112957501153234437441843521686991599996107920953434406906021724497252281881674425341883007540637674860891340947375341738682805094754841793022630421642062041432618197789656784143847891042141489944016737038972824780945734833296844362699126562907366201640377777464976746477785968091544595403688292668276298802366574610617463065584131806956963008267955776050652723587875361541861384858550617565081504378045400346213127842431118018454470833690393766814375900969205009398836322627165233608365744138306129624667849026697306313698504957296828502274906433615408821139981549622501949903682400954993940598680480457335395494474745041529043869795211579137514968987968700363772549270316160336631414971637467621245603732084531796382902744251087312043787840506558647001951525473373306366299116096414270142641292557948292511269396861488076552356224136826223783185888745353760143024318142066630521967293182083403291649650543031650835666979786113818644315778528495489602489653749350653597874754885936712505419526314734237454790362484003691288838076014714133924152815975597145958633813485626113540967549936361765293647331225164580604321340505960904667933267580893569850448989067070421862852119364104559401685622240235944003833501720838147704310429111634576022814819554909309447416382438210561119879011948355684156293777285977378288728398217518811229804871197015626032856177427683395200608763616446768623142894493162697736068587120427739190214706431834736059722865725032725183015030147928968716382511309606257533258180171708842745709850827692313144234896140524032900328939610640833745382796572851161237646657977224825656120128666519741093589463438113062502822080838916252542395449418754782755169711296857522327604916257721193737901349001521836587833359436821619092609593920155098352753299728126955941290266329159517087138783936649453865657105037685216696418424874782931051119841318236787386875897556781363720340375726371612682027843580154601942759691740644321288552776571971223346484675917714778792764984342531335702952288152743920362254195984543048609835856791013182257119750642798112365050351679831902255400039257487220365830979118658294038713280665127945265930322984196103129164156786827485079833992593278863238349588396457435231493740992298969317897362524745390767317392909313598809124819332711173611214425042781839091269508157832674767092651629505482373229469748928267041751865538607862668470522752497914935827225882338875462545785295885147168439433777641361862438228139148234904856719712113750059149302441552901367369401232824149508075673218571825673733728851063874323671111714146619294483136883300842742228829918830040800500728784755180400936146726015399424024973051911171445437469836280360600319214178311931363842328926127488742009535397134820090632173675531966304192798291866208151146337233114689853691786727893046194598808102202672087262342580057518420727170713978922965445392776823411264181633871123356369111431238390261984801076858508369411267156732918245690701026915410259079473970772375497494080442590722805568133444622021107267183182394968447904695103683468542600470702825585433628221305119787774867131551007828302618857838724127063405317860888129684660408151562833172302975203192721129820709619039746964997188926587346112955846881132465232227996291019473784185706490002177203313924669126434023781977331401512754788043419925868121197154012987503661113141437417393450467016461959445293465844551784470039555062445888096856248245000395748497946803980739264757123289192807394378033730947557973141812041840184100037912512956219805007131044381852820404233127666370313331641894890303939377514371873601389466088199534744502529808498206605261642664936818028702107898145184629479553049666286250127284490606096877661486024652250639056909844800174100458800740955766147916120790055143606290977659541390045463215516611787748323490198391177074255750487611875593255763397961815001022061305148693290118926049597035499625608001560267871531428203367938500303640669458198155569583324766654942370273055688624658292595634274174287530505601232304446031007570467760457125465218667484257716505968619341643966692112502186287354556763244834202706225102541825803274090033476589343836678917891427028957378335398780266212045419725426109846399851150734424692672071966780588687943032758707470778225697446383380221070017075156182978000627339275446081111073434254049943064955464436227431571379026742579825556678625467736035018989943601864555793116848999817246076375459405674803570423780072707560946708750683367790170776311109264038767469536049677396863554518855317131954237503724030123838772009945170887456397430005186022430712960669931191215612565764290556783156642822204638080324381301346287804961298497404239495551889078220686289037395167294758655783855817149242832802248349568091759444347005438310925333486767459572520315824107070479368591266757301244020946129580042404273137583529742665000423419548501537942502167632394553627024754027524394562373979425337304501595411332558415327589768280691804312694753096230012998816107477694659570355533792708745706969926650683190192034165781210993925505363689993304598977724257990429526970237849682562340349931555574452401308580907979998097376193275720508901230042756382502989722063552127133201668961566194256255731839715943532911526988572008670290481437556270554717169626015599714003721135323865742436317269772456596048248677433386584484731964556280996593494402707631804469068134695974318623652450939306135722776094710998112897034885339120493948490983539027690601060027193000666368579850068374208847702538011249512303094222444016621243606627702136527459497666761717153301583973730598697775712055163281041588329895798329048766068985926096284440533867081199144508291876422019965714606473605466541126945572536129040618051191614438441730670703770564422487474457592781996619106020669404044399285428363840143437450437181982017500227799432923491992448028832591706848521734920250224564095400066441537399211205513518745692649796486901407072656099390995608619048985448998186454040892550917006673733527122464020746518529246790963906023904328270111168385094295774067901872039449540530717893431527206253480540254380547322280792858686195087912396397914779068291051127956625524199922405902920576183402645447265130570470398477089356455722962294637691714357469982041482157638140415654099417338657231187183000596452343836865055519836880756159468163108388548374047723736916850999996647818818048415541493000810947340738299701104455614164946969585519703759454494886392849962712666985037667500845188016933226804991243739210102604590667958661501793505071380863592697324151818308557628047063357547555308444240561832037081464165567183287398767744367033083290301461017324282391759274280644287606502372678513924909773147915127810389786976971428564411720566391639625885775221783753627919756878580825828729385576739483981422018999617293510031116837795222874800134368256991759587896659678277716280847568627752290489524732682131095311881321947105872421015908011843168608244841458077122534492050591583515696388800376906841794570008162913252947959581359693320305343623029659659311126979358019407056138405588621491437002398124465040392623944008984676248795883749162958270499926186707912469211321792365711859434262166792827392951712483298535305114266061506373888128882629164954605308400728303425624390414982759117978647056526297334907089235762742573674225677482591138578474444600174478602987976097427309445944807281166889759107646106690022220808526863810117974239905818005184755772281892122132505485220976432745018833463631530222951083418131168787309097776959782242334930346712456451690351622783756765642589337571799115620949657725602800239305996746282879703672025096972672312116797856663239501092400461577799019038406117306331166145078221541339376846682653115958987324917398516332166470151300531767535422598184435825215524905212652471339021354549260104660579860043637472409295510465636922956010460057320626365719754843484448413589756363442493372778524158138862304657903378137161981128694261417401539954867154306058250795999386835462485764082205552270318420070586509864936807684170971051516364327070470402722357580602026099100659762729068192899576187882902882687785699533047406402186679754596165280533940588342583281682725963014986278445008340355874927165802369351920434081497337528751234145284214698438382314155132122630363274933683422546579029426368676924701388777705715229788931103193974048746936799747034085840380879453107462566441556318449941375452738785756009284940709796813312088196549875839799953689858584643469850003869438995838892437522690461828096816881193261924100921864792964522281700134533365930918661068343940573433068637237429099333081432958318513826717534416875169827335230323255538595479942869503726710843478780124630136134605033479022903237688293162095024109441036049632239531402552750587525544132896116184682257422689258901898460927775082124985369538003248265063741828317872762231191742633665985902039215190941772401527253770108227522405139138619488363384479536035802381114165834806972572218792940558075034423422902402750704564555263390363557914418945033153660385337358449585189913593183003424519264776577272135895925140923631249501237886333108785544225731667265018080424782738025977592852545424663009224661145344206747185881298172686739605332619751263404192308602407946549655656086052965074966314787385193720938896543067530944387035773336334733790768390398396086684448097803543897100214188823894189544767626689532087814605878325845569883539671127710628077026253765662329597181128698876960599438417171346690665547619255613338430859733537309722197921794152919599504178433155359942317999929462800709935428654012334279701532119337348161554996316478803135283087145572698690052199216895051908424285935960913834477786305271084227026087628220012334222227642574774138826112808694339789366240947384144626605877813446176231328764513151678384810604067354097360626476099550862314590694322109410674992057222422003988133077278418744231716746263343731863680824969302953191594607443513330307304412880806196230318295188717897839395340692932338131493758189528048817417152720383855650559135851043935006769351705004233333014284477610924543950305865679700177069063716191470556172855772124456478166485205982178158260663941218595763697423330864955678869930523675567000217974145520096943470581275908565983482902093093344003911991662175999769673798169400051358597653872635704546888897156635312944059303684600066965820325947352707331890249005618032349673128134962356058412277447129573463618064420379047546485891473501610888689196027107844925432159237476058398532741040081604923037139097550938829117977747680258806792194177911377989831730787642798537000300099630312969583159162672993868324395547782148812965077125932801198552096853075367161031494356069194979994728018806737460041145956403577052724115996461483350477427277719844883189894294399562790629161543363765748840521868270623143850564606305713020529560023858667262144387650476610944207561012055104439967700860220770649231307453481395592730426129638265716759102877870229274166549847193750797390004336574184990107503398684232390684633917740016923171928838319686258167924576695336005619433560770016620161603650618363379140966000679686774397798784809693529372403914520824864281554118664384045135228649427947473063693163587403673671138597635627077149384139609553897737153494232307138742327899914870141753247715190589674214362873759403887777399936291760092663701960273769177495020571510930241910939143803273294277285733051207841503821390157005720498134717699305767441136896957244267855542913782632253015546490092330602460867872763684729326903093013515578347855406383866760029766209058540930113966610563232395006865343740296503981574518090684115917048577252269397840291448902437142094440225519425098110587812547105957940772246106078438658400468662520997750065636937521091230531769268778188600659243078401795856180612029657416401245664325240638427818667132251283672915520569886800043627390211149251680263975502945852954500580140868641139910331460035735885281971929896851275043032624953940065425334237717200737096051410169991467209022714077217171877541199691293482621521033626900718258715587799500390437191394478655197150464354477820474654715165012952209977292602329802593262607968694640687593679067459411481042867057104996064695532822575162487509412609797718730630694667379217010545570456096338712684476296068679356357189278032493157225205928726863188667441116486772855747023376865949010031147426677322870664217324921320184507734047484520656056827697725900278766253883627622744672078813983368958621108761876419305370554322723868453103443120425015193803120964607567562527656955964189014176716259449995025278784574292311192772126752965197914426072392666508043265846960336099301516735413735587676697672999798216593870863329338067407837862667859434742783044229105580682587146357000096096681097737324538337010808500511844542676420057609379208930187243699021808387344548573744707490462344938310227290261273703427914266774076555630265052484636566552350157645759693229958731960961928930190772571659613557513577318712033467755980241048407736731588180298510450410366373388402229415136320529554816035308248298060755896862424009690474618589918426597079269509521512774436737383040095667074724011776188447416094573247392302081298809093280883693497516834467483207303622010601946147781125800655165166167352425314074925744929073788282987982756360232038988423974941970174730513687510112418754070389152519315069330666174158639554925022866020785690453796007328986899584374743706966293825251312293133209862114506493603068959908802349819405541617624457259261236080865781675774525222160455857313919756785221372017482824750456920145058235013888397017957731451586403895010431905031565709259660439656386776510991448041465084644752072016308151171336120047243143153164481558766442310653883004326954249011674724813483271699905424855008158801468616208796047991703803962567060559130017647830820461418733738978434583000012254812566119907656591084310539564034317276137412806647144716283773470842242597607807293861904859311477534856939649581660180588467830310688728392049003253394946089555110243215940205653593428725662697430997677096102722400182081681415614430557091398106501271045267911353625575907216098241504824993867134700348275458621204733207689800289808582191680497036496266328483723956014260011141484728993895529609529923854336123747580513831079789078038350515005715373026756039673318981319116740396228059689343716786181779959258287238113755567515512190397391348040468686353886638878900129062331431532294776004034352489340305083268349040392061590775965584346288289401156564733378630779128371563129523304948304068114803589418882015560728425836011055467001369219256263102703599575698135872030347577502246028708391880150270003901408582995659892807932540562350548654288518097499669931966934520967242504966521653455443556206271570243867474504918290055388961932468723981965006205202582864057109708636027344314595799559776995699730466445380230911906791579250097954347762252130486132889851403540181163398670145181273961606446348383736105414903997604053417165971538143221705415347878022943408081112041025394201725042141511193552981445647293723699449276196411979493962649777887600580194983495248720587098318130595115104942217824988519907161454547199148789839684408491332897953875942252727969831062800550014238382531939130618368829819224836151219189868730512074299809650642193182345709714362002907035487301195040091747857460604246960823503093724254951239153436710790378763470287484010490210806471181496334900084684938803395030095525156462518257551982519618762054603765247220264144171623269697797705102035629093540507753684735692931710703883105704480760888416111468061132644450082691198554877301929524235722646729652982095542913480408780565893838685244476196868495535928007491047187454052863670566943823387045899344384506301671612714941311331137120043185006460081009930637973212997374184331881711564473442507962273124813235191560331965820461726640984685996831797281883655614165342030654372726491015675748744474646482932900008445796224851903661006414584780701257950094051866017576548910091788877242833899201655084746053284909366388974623939171342483865077593647576938095676644395629518753178811765062500462563831699343183023848169541445776553938118125582712247804940128598443051268366203021465984973590529524934576113121307125983737513680029813645114389997114601060912706774992065749334343289736109583518157198951054950487962207971520162167993758305812539038849211198358165419722089431960903398630015091729142853231104926775498127787298819237169936925592301019292185152685421806938012650933595963630358406525283420655765591618827250943456780707371538859550103579450841544806808854653012970065885135829343396415523031938022036592222680389647345272737915121100833867070357820772891250785992183934017196677099531563881254370694153350012749276890738196295879663438795085023249049862151050356223626071139488033503623341684653599582367222833189773207532619660605163666682840960741540484269370470018644022830534536773255450282206015056042318233298844168584135778409670668756871754742271236808228413858688666109944108631708261505851028338918451659248866472804823223064257737207365532561691739958188148719417026635293607686968698536982167988486227466296282083439830666814712392632814948483518576439089883982089142629398399867650244524839655691444936432711165192762893769606696861702933868651469216960536720919711006519725705179229743252371286056472180051098216502544075260955675404994510360432281671899043914264161991972123963581317491459259952114058043981930175230023853891708430627097510624868157221933764383779613659094984257988672084159182314127857087554343473575247834870989748796183486365285062892121606599235383967746842648339029680931435076739079141919203866948912749735227943559519451493614461714104671158965423521357726918494867962731204834221642951600820655508296637082064343911120095966598485694537618508862967734593974355959564897913201633494220621224019177863476293808712171370867391082991094755001236717273939504075908442057791836050022780662858695038458455664501148922850138889268169537362368513836605358256596439851772042886723437879435478466325026207956466021764667253291798299328297193087987231146937865153765291332923878789483738957983735456147636161291065662113200376711353809529054280611372696466194288904180243861474990039338957219899478587838593464736783126747938518646728757639408038679432241206193019300283030100803227054542459048414416702904781349142930115552736240564650822272804785297011010973241450201129011063038946677247669409969345688896807178303993334083058730250670277684483510593904872318136901432937749013666880168501389090908083955897397951911007568837888988972389678736655340450354994636102983333142583920218076988063059775503224881121358194962021555911108804900714059720318825733186353566351783651407533158917690452383398232063628804315757312297080168443432278150087831519440383486050438030804481675603055668979177556610325067245924715371303228451080349069472212334688999014272858803558508502515889732954242439426895936349077932439688804919813679409761492128003246159458026734337897605852303978789473077461612531300149335573013210101721848793336005284839577556100658728273893742775199120356909696692319690939020629807900239618355789527085812835183959912071128830087675741726636062607240972135243550851634203262146853686824296354890477815182899954787879622778818375118458787978230597753317131126229826420360869883247276320045579650603633734699130945531795992537806106542518600259715748853790970009781141910912989440950477328665697138110086985164828709984262642498537069742781206468506178288302615245944619900681002264859835994847429329777621004483628175795870884238650719003950952959711146411796613840097572785539205136255313962161236110189405540832860119858389624763265605687563366327807956959861305238006893085053581082615341924592731515459622988148773314289485115210908720371421593419179478947792599519045319989463159794252148455651029768431663667862535571086524872763862973194167157392047535068998117735816688259987451272643091944240369615724622303194139191462212837512449444834282366712849660015504652720692197228460136343768263047002089132901158315047585244406387122052872405759348766333539205811602765001669684706023068059158720714845791530866165099828631744152886071346634580933228529852412880557783604971927731834821374652008965332849606266069245880996361808290059833219930850527590759852498152165579384566247607413592538017010719757998362016822899744820870074726052678698354466207909989659414555196365435711171403324688529148948766355358634513039622729462116646709362934842808224718113702735269984877666541100376146766788596387423777410025489521855210272692823032692459721594272790342190016172922654377995112888220502282060850847947018115675898207065713418085986353074043668266157632249417498663293400970547041190519989777170333707270534274623275906887498523271474455513561752467714445630681486807137420284133501802441945775910040873452143012801458265985887427024048210800497062327575897420659651046118997346282929959458278410410852223794139180141147958825778872789528595918040112242152069398155079151292210202030094817931301502352110038140868520056247374547269966284039717379658886811690705993088009993249665153521475100333883400569749985394676137784239474117565844665637931924730027783827534267333647508584792472186523744519621730421874708471334922320370477245897573021391375730581677199872416493636962016891031691958263831268090174227405623783791407364394363092779581595434178591827366470212534771876976917423250301506856353111720228420905476824927558483113455128607745994676812623011893996248124177182086368884426330993220588598013193200867105412024329101790369469729665856179051472685955471962074374378577831311385600404069042301103468632514265887471456970943541001714386108389434724295940103030691932751901392367185763977188365140650700210192455033581317061349861950329271205988913093510492048920405365542177023991017984019534475999006669605358300060419451218715269251985247868728002883360850119992886446370317443977384164668356978007479539905585359646593988879783029223729964037743913420774250936521555279229582543949452349840988916503244836956388951240663696725611575514674882532364827857676291795933749183197357038981027642214755538594169780420938958036355160619551766692812207972199780901810530047059356652002223365162568712136360815440998480729344636351544365246398074069867345472296328320318564482627380683815134575606712306908196863546522729914112698858488638788294519484792191193381264144171558359774605513601218434310775500335291236246330684881639388121577852570996816474865060455287786263872293140979588486190279102392434706847616212274230261022162512400432454126722240922309406354936587004117643146511442350683073940921224605900706843010621227077914417054024276282029076813165298407253064143771983536511398442040402840794831638039846543798845763358623658249033004744155061846781049600829743957295787914100211355507279314140758378517553833161201996556613481682352837911822275993637954950825219435923563922150494070836458053330523217726752386045825058441519808757695868932864888148536906112302811714854339669604342349847600293972167206364683333725046018355455153123631915587249402928597698691456217270094429861910964892677860387500424852324803120704349075776358880315481137768312541259747150480276426841714797636201847564974172973973824218658424877449322422080733450869146745827993273098668706363648197430217960905842564762553133483591168926904365945315859527162004882950369792388861229034678109074453186410686436434456391765908303668429337169735929678019429788675784479684019568037806950247001739784900232688936962365684135873159020237873766612568061442852335349428124290746493643422462093421288337143469535079840270368975944538450902339203098366882437332350407590491859565373991726170087522557235925064641038012050629685463335692138187471470636104523309598538024204827378745813843980102890517526425015137176857674420939868099293430316242323971394066467145258948577460171114140099813512851314461520097302499928953712242497732131811677269747510640734237722181761936709652088977203360049321437504659178831164310091423031865578170217485597730308816370826003877705283009555328443621650831352643578940575803316167391598545045917092598242863942303563433166866805357168749701863220998288137294260209650712676752302130967485727870572055214536449919457897526353410661811396293631259195534847671360669019286826853198915131280702371470509881106440307580034095881920556175433974047737542173726580416257770225270771742342700143186721261690615897936852379260227918147518955289438662486841890665990953642070727466458672101816317746882087476586303261231447277885143534723028685768984940507538477425045888255499616595001166800553678741986189156130220119548568060976178852061625953514260175995846837157491181572517894288790950644410600994742839935419986060478825043160679930533553360305787639499073671990265055858145933820850228572220501777824074490611125093655038565510793421672079341429831130895851407368527820434025422065906046169018716958401552343356659540641327479457547597437646382764129206383887828518613547486691418945157031848361585090636595631651883773293511996308673737877780916989528512969404396242582724341608917374138555693653550418225674922649984299640364836643176395950214633440856007634414873887095802335560658831458665100759432285999531316478881762524594235619386411225191843777685990753162244397552352647341769186602479704202396573609039806939326807805728771609107791547931119488378682686427559716024680825994316898568762440474886968201348642826021678718814749836774447980078420102693132772953708823689654237689902649879303371846887588019604772700397214228516633759158351277021174376267006478404548418739395263037949072754927971692399907939117780507114787756550178607507188594790944727995801508643601602321245048712446339632765692826004116938761842360806610172816966258848286196656226257552040999457021521634869689223338873478026241075327557869351518158251100081380937304472456502885920684052352809866148471460486124111332198370099782095360396816496017735266202013037298808052582094403807456982070565088154369175312775101411009385944188481305478942813676205960882572566114700601104798875467940500464263904158508817637386656565346631562547546953262872065858509462976213659452241339121367086715983585111761858149526966403590692469584259650916331182450246845784483980706837828478745325635516364432471346759453117768359871764914926668571970209234980037152773049214506581192323439810031532657055621615363054215551831569239638731895962301464465104908270577549745915548547734273541995663651069318787149071790777876046067905164041672297538969100711554804180403199625308975254494974394703173732477464985056318426315865123229178089065174052185132403988260339043760554077979930193009977557294559998933011955953245982062855303456533331899756469625723798713002741622786355632080434291988698997376746791322989602518856936368293926747869352072555327542343738627446083122166077232957250806596845290930827301611022344089950422079413257549296213743634871072032624935842317051213520782289974602577084719147472081757104232608205334299055364373053841549309002627955775948669878508569779469247526979331299506859836715600937210267166519906465765037569669508469259924049840940043111465886120073167622297805522298523280077794402430840807582831039482785999981266933140686502551637393394285742627578220848636750993041396274577301678922318256583525875495819659881829340492885397697848308369833184730763799585088565774843604730596267180961878926755220292466507737025514643744931204021218859454239675065577844670983694193418957187761720921176401146386546119089029263366995910149426594856240899631831182784304837308017824115841455816037768273719359487437961139441258896507918094729313126447700256472784209668393998569138728325596250351645787269777600119478951602785271150513069390895621513409282555830365091396194244591024577772229910682517152835831559099207442935667124390655697708485794959101032056690972303925227771038393781647122943625340438100005134997398251391687773664619396864027712231864903915238946228428604661164286689033661053896573422119277229230255937516607249474069693361846852130998747062999389695641833264025187348309204305655107187403965972244062509344612640454030937513187956222745997023595047280534065629274576519817576672307271240362100365724078468271459341916964529722321774892918363968817597081923902990425270693464800833386106740088423118084191201329844834381753838393153606045486439969998912437681666697214962009765131899295579323858538794060976412624842999970587224152945216526121891688758175217358084590325489547859924843198729376294263609352651162496797775506267774478771377389475630521021018804101083236894954131712362810807703767497368883713298649066231471890066788763486342040447271715020049510119452812087198119802856244976392056468630066829765957351679817822406917940712311856824013012520728854627753466419683493194558330126979767273048978268464276314647814516753109241748793861474141717872328135210485245327866869416945361818414726026299811885030765380848437027414044589063804578412107036314372821256068552039604113015416571589532113561555349578941312084504138931343384546870848653028706963870398686260954007880093389494671321931476959876317328227023652892009821835260849704308582575736641904657832518812594183047710478032554774658036375473016734633874629585034509149295666367233602276658043986881444629317982154499582345659630490858949399501034380085243384544509902430489293258722595869564497303662825343669246030766768881411997798135408394502274257635095039742459297846115850436864873211624283749838624560684073198874395857372930852429151637456549871585384217854086849102625535986745501830131447751810814614771520021970613097532896509780409932477361084461047327482620242682432469142881639557815869871806574608103983174321730769403745007530113607920810249964736947660315009578222390435275762424685129120218623207347607707204642537351647220821686621641408497748321565184877565348819797305668701752328105280865362626539885286542780848532720253397136913284660254410944164651423593124150435906683061055757907288647926322227514953828637857128619044951739728699240082177111180915016563501277084878099279540448608442630135142656216530728238274624133970873039583488985536663222203621040784061135000022124519955060016404427640451214855617819852196919253183788122296848186364885127172909930089672869084072172589620218300707182576499673474780138329866121139829874460085876126840702167900881840315310243187722028017699640143790241111048720240063224968796652097941142018218804877989286332515804286231648414871489739328094190429391757087483752764033363018279491107817530464496460383496008349110214494573928158560456911942169315627419991272691878788561737291502254086774510123880757942001182129993161218337099787663610333623340974224186964058137633082798677207929213957818071949013843047939500278272869228778544110218060877100506844295657383777849896317770494136036002614897795142670587370250227628316444547356794851267206716350558370882443107375049052023699882988567155734880418843667319819254967806217463964504271739212077556634869336416367734096372240000530713139009008846098882983993954505427143423114720149224084499643512893134048007948473725608711604806199724124867572245801418611312505029669250078358134321224461257467120344084728627846334354761609736172182319272627134917390221696691161252372398576592607922580584811639029413615284944483945960225945977008728832033452393265541552650827103196225129421347091828864393908344254562089514913460236210146242500905215186765088640474359188014197595629455618026890683929325718392089683264891252727545679351718790336483528621735634512707670142139227249278674159558830774526270491774176673210020305396024412614441667698282424464593688058438817719162678928657855910548112740387762821328058949990210261213164391342611701766321839610125025434182739059114876367383589033273193384888377509812899669523912794076578418404823688342155255884859579976209726505441812762125772310380056411325587136819497414617881759097255149382948162311138863990513804581243037820059267155109638283176792515026392310878853202723827598387623453363386675643227497290750335422476108667447609014565820957696815025526346767667638427847246051994427529055279309601529726530169987587266996131416976485046010223920535277260473799440913115827784865529610168019615101028214096897946495561162595109754754234330025299294127373788160787074711694909310720243732653761481912678134937222435796228788912390389411187578700198011520219231113883493533284159194264097153924905552637535021506837948115968833680905443905779592909960271741400312695795912593006863024594415847499342763202030719326830165087268122090686001129365459019191107676974273979066910205616054034513822843651816698690745767952462147113505892407199088670013638349850383941229163793383001752566655610360074993380274685846074634473326231307841750436854841588863762703144881672405070581657773517969907528080121447667784732202667206671917354108884555166321374582427412036956148293691629796159563136232377063398645878520958766642873393833577454377630023485679589680115635598605557279395942978971402870979550945623969300865071803790285794767770465391884347613839885180280151615444470656207708726683508994994521739047660199704818555269732182142398828615498610683086961733914625576961383877671711224966535850088493572768171829312646526391460660927426248949270850919392968490029974622689945295816749484379208705872609688951447349187375001827310141890220095120647639694904759104015019732014934673196736611248784261142929041086193741650300283675948089680659861676399753461851416927518383590316351541106608678476027932173232621677298723298550508582904224987428371760956111583699639161079854318988435305453739323839516343060597015507167459086266740225033776560561457319209769491145707060144125936839358688778526259478006197537475995818188969274749345922943278916205174053142159280262964521436332646254404851319235346283012713284078584478056252756666691739056658316908041231556201827851956311726682954382809537561362194710697208860009991647602764038090914038396917543985135051139242881496638507218101623014600858434175232586683928551226127682193480038015258805044098212495504029070513705464305960497340358515564313304611766140051915980309506156897580548216896365877991985947330087591777302781037945012145596449581123069327490797895382221899025438992629580317870519826978290860524031273331586389730316065219653270953786394734898506049316148680944201298078088386086383529754452920748178887414121604127755826090448245278341613805168589542389608442856815919516124594204803561715439196076389768943945877068684741401251888239672558559599214349041316288326969912916371477572454046420551998364695362125081761376339708126488988219590271212642511664115791946707181339428316659605906811638063246060376574268067122773533220899325198352798581659673252478847236783576901357006537006187015593576662102033734445035715633906686533352084066793332821281092935295704732590430715692046820887068909789995658383084642903905171493615507889847622391518945012091326807258658555712561234470466965200596828896707767436832682327851907051095194665378252639761132741654777647113767139371070248017261027079332802854664017868800570504896503635224524103192291173942959734221412568688478270491222155690848136578828093414662032201839061154698556341101571610048625928147538197775333323025322081356984019164795750597540186038952119681024768739578261497777706399802074799203403593154114753280833878595978053793261318551218660921963666205227882722649670735163860518410620143797573648628534485178156242393809651807731524259843092870149373467422960865071899032919712536389661710151533487891744229728958068956080901194164193086984086837545542424438530830958048172176295833842017928627022758996978265024328471736230328959637572416097268715034304367636724360029964847262472018518709751823793954458790674899376307496193240422840617688715858377825888262635517075482512644676497211040770341931120893816081540162250068460871548526579238631662122895156000400392943616075917406093747333400178367526734518143275500968483360191596599972371519364136319795758294809223388726835716503201642476231498429783498527645711329156979858059907747920111910539849425116814953422533630194170765347353906678331146045712506118128345606216528268334630549137609272607964504263857901833381116314964226507024908546302850926827749796462658483603047046523001697013682595839407909964631594716991756959242223431254651131700012849630780554642749434376360222742040627746558249769666029822959307427881627544490735256744322334261376387618331469704356629125660526688703271596093922110074566305502272297209234863983530933176011842327072723028483350522769021190138482683816175121432124929808006912235243060712786422309768203771053456363085148179240461645768758056414307144361570237664771650221133622277318985915680057927833057914227052152692926755996543620223835845045029876726170762256701169583926718225407479800168466346662428491227183693474871572443033570572312073761342621994721246054745203412452104152484261547877219226617883612346994866172932577616552084228558124370502415602557883676570744520316455743116539437991975356124923036293899736200307946798459799638903347513887408899450714851914468233314323483625303774350128654278695724546295622959215485203227258423772655354897528142747632231272419194162664904636918215442205648617933936456028024951241943430629699960748290454657592698432201177267201762721918937900991043952186811112135874589298662915127832073096779949464268898643290476914497731777792474561560068515503484700935914093537009432228493544978541742499885115838127892953396001769126909356880166381588542772635539029416307754759441012425658472851100590915819475441852899773104331206079566387700860992552468356992305792102200858669137368901459900723030884277197496637325596943248723625301717721093544174841065630396340698212788855120688218629849245983751372674234307845505883099953258425046656756780382204252140302205560793159383773895743948157967083287936922328572982227095867750936960910017376732580705307513808445927151283706276420541577657963313572938717924396369296869837508279928466384870494492580262095708338865045151600038501699395767149099091548206340377354428141119580504556066758686838307338104296972711355673750707557642880496154391571247237085863889661668134685043709561644855551588691131550036909966405398722732661320248692370686800960322443163041387099379812705881114707154981387229561774366750110291454579109174274232693800229300817840377273611200372362821878506244901432268799347412595314715157665539561742417294963715035010119771241928250134317197689856080392190524016396376542259900061659957256291831251602938809294028955044584871981991143370446358969913484032552116854550364378496467503880738171742953041295464441518453568884416880257357683875052009670343684277244568568711470716522630505079310966493960570238257901546030542024797378875477745415367052567010518699683702257253725569884563076161401415905885793769682734008330485282717895741793905197268945794216324946071132271396659039813084842674186431849487515494999358037232387607132350976016106755497143790373276812076600345833595840510880968221989582618979019832953202906857380133860125479566098588962571251036473773200740134982895390008522343742932962739676096960176813106927168243655071483859356608760575484817763985181332520868018151790478462164048589427876725684428974695040828987788783751415320941877947581548009407289364007488517274127115911818645283828524202334675067456554491988128324585335416435218445169093564050422348952448185018749918807316218248092791180443138819929797925747379469868466976568388619805396322548701324081894645690002226240856874034463602829218536203392995941942744105819628648296939829397307141754070459736079056009262176484434182153206073781892704026347045668807396760772990256970396335464363709668518852510502611946336433051752995507036603167158788706707333863667260311142983265489350965753305289544692250637268658289519885912571485502778839041592488857760669970043687415517131870384156055049991693490106860459199411610776746061330014917265271432944985423176532290056648244804927718935212027984653559504399480965553728573113566294317062454898917618945974812643898129088652877470598395537391392496710842647411730940110594976678136754483336867144202398476092778584131295310594076335027077516122304630290453797562883830001691032043325132604216710419884468700471928504805711773962324040502112988970277045879997404891334449593943936583056186519455436896000981660149868313866632972404292360607024324752806707291907414000367963522511461198969041974863539409861415446506934694952759078269019438054838083218459837241346539456488942305770849123817677737249047988549241972231545881013519670959300230845458388162924595146310659922286843172761786248950206436582539584848670742505480371690081125164056068230312600783788154257176274673265058042428973098847057401812886563845365688134566773792214489293407251040992709681243412565951954074616171661391762776790279006225150522507969070915012276661398746733137916930877486584358966784836524391901208692412222863633819626649818729995827906881690535664068441152323322705980309968893318836850948375643083510517831264219298876297910575996294355394789439294387662644994844512698337114749669720895936848526221705100393040585625306960360596203678485369969322752991392406787315788686846207174604635568156079838466517222383104938476429045709607991217696072498461245666209397838731293910855330002375114694840175330511818388402175084169473452671416484656961299120382407902277201104337391374287437517185022437692146958878990313009022834742123589197247413151308800782832385352344321992278201623256025736841812762581662332025352644918440808969454406095041606879292775919156556719099032666196413914295124570515144882301781187255885394137672141749661830375875608090574252177934580417016120983294181111105146269569175687687567278723327860983046784435471579650040623874318450075766994371065924322416992503379648258479896902228213124990201941546146706661664734684857616084790065036635967630867951931674003558041057600406569565575170239511956390355967684353883763021968008312333275068703457206853808328740330966277605067795766103027789996020226478239874849874253238523275305571021790536139016048887003563744004988417472321188163419578485784560678152910357477694295318053616308039543013329759643034363595165625053742230165185621123907199543966724233433692344357986842182867415639854717341154202134746841552472989619357300406353232722608274714070251811546517772614579993202039418152478521832023631558357257458323596257079142994791486655503922665817503153504120120639319904069981622531043053377666131611776473075495447321547306897944986661217589035265881362950667207957010875017864990396169911077951712034920976897141856663640289547139385294610328985660579697303853263831779979254072084916806702952824269559861565407731987123006085593836516318586686186902975891004975041615816898007555618326432502110647233308675010894071116673415450868966925434085130671773040333442617551763304300667396059483387725661221297242108166722194048474364434004148840391470079956742909113706303818047357483357448724660384988419952484963969324550512047281880680006955892071747554688735513489856669593307404425286806612003771529964963565277927458708374396596364897881329923402484391066137535866027358638483171322072026281961277897678419490288383242280535323396188573706112109012188304019229483721501034147170435817712969135294172103138334888745065889640283483135082675826366850163975335908336767909856991906824221311195258830295805505681359749506248235535946078664269475256057723162729409947260732779933963914731187513424495505008318214055557660895772172679981942010965755764930158334009674542213361459931208479187799302229324093644083965943276063811752759277375086931422893601570555715242036945729716760246868322408157125272967083350650383024106939679038626677993161175566261849138021551228716411426851632558286597493706160567962616678821000995234247134948479800941724987607675068707173481574164673651575204065204129674039556419329063449276483413092245271865061292447452795939543368595109307823506684409346497394826580966271323749461961324025212726471372851670100137453744601063766229637613279546496497899149286989518339349223287895369195664413599575245211796934047430501228529468001494390833574832973111669046786754796614698394571729246011975721565739437485271190312315678523990219774497910945352415493466391593714190709402811928919286886838998140374964097876222255352973056660522561399153599604031266204510196766862597319517906326522329201986589732852690770359243375405811585942845711445499456279320925397241403353322335125353763664144521492068490252734697084666802947866022392286614902981580703036972609304629014607102939403886128818054261336719059320780327842145204494450700026297024393272972946795136086374223915546598828546521235569968426258053119859294596247122405796454036736318569978804427274229996091149645263586690353908382229330850664798600642429051888663543207637004526993779760830464540721679064390955257227027685839420524508602979906779077507723639942237292803185519101667113017545869809713254770314067837405215915758084357181884257600868057721913637226970171491777563378401624023596423801175998490740935172204132259393750340386160588294606446310775663463418306021076952894548476546780333706826419022501935671068395961450312037270412287039797388293427887313013611425699057325187754016736601534461827556451722346600522508929775310601843482445543410802881096197295099343728940329778285445938469957776834553055614698140153925299530763804124765555451060353732814131962934727331464303834832672065394777618410414559469811666256203415134025570694637627838362752050962672106917508892850194186733301406150538818731299428926007578467487190690551676773232421161405484021100674836235312958349770685373064133193162929123654107432367616132566571627073269972371443254115036003004051362826472383310862436847157143336536980927768293144417459530172021453931581342959528767768870953512836072401625698099186985111399990552458647634625202103859561877677453173370609696036936454202749500930435742483729024046550513506821161376769698989062037970822479048789273233399142096084484649532942411835756826685511916045600067728036075322570649846984804467691086641284199604776171307774188606919276965186657045184843989357789716120101242516249612920731022666705797209071818310461125009007279331112333507614578128840282277183906982548882129318785790324980184309377312251002134788572106490581173213475326440312611019027187401480900718913630365648555644761953189888120381783221135769394320942233111717683973697239140052388326185037230780816414449735082465366742968749769612602533849653256928407431221807172948957988764772200988244313272617534028328704635165584228667977493665440903665107218706540779614156940710111131182455604265899311889910569605268096362141012301861888354939780260639302135626164523791873281127616873197028100910348855594377233819387584402927129942593531446779587279069194236695694964696630995720106768896458918924567684290204864403515910779112211564005418063145851150902494661279517005307266278356307181786924636186149196151067845066060244015118702049976613790219733161448503974031549243925465827366014443516894121787366996222499493070361324864749718731978779717678073599165376136950020764827640872743879809477608960258158499211474725639971450152895572537353191195285777748668274252551052828340775685533430172159598216992281102838285618940860693694117079029149435044397228726757750511203693852908790142898203541442669632163913646382700366567960928852733205151162060974898525337615807628320989178309073047727286113293016662647178388394423461305918289128555077969047806603007981067065873250619493526788212991556009270397036965091807104936343440443082187624641520051493521488516195883647490001548497670506554490756059719217597410044032127820242459550913486611630587241621587386681834111214538311520882985814189358371595320867543065045277203318058189518366357031233161682776660064752148880881925992889659040825384106289331267380481448388575811422382940326551953704976976072646108953222187993595003698421990785991570881362473816127420233762774323587552395380651551824775802893922794659081544521758473459497520750867693428187123232532203697048596060110361153425826774843628145576380441147730220349899394125795669373711910424150983692920643063167516295106647299165663225004526181668675763064024136646884501281610340927242768319016670536384812764497733122939430923311318688652217856879488028361100875812475837335316125256086197141302868290128088056812888756177698050488588945922446505494416791875543503809154974469131427840374693739002596490418626972391279145922025236403652952189756509176403427291056991382801162296910911620538854028624104369733083165205842851273537476123750725658645676035058864264816442647698897798947488082828170042234452326530272151348695965406923963544388312768668819593780288106511955308579901451659014978379929760061571236889051519718283830137814549312105039583755438201787983863884274549012310713110555247150542770528930967775074245127054295032800017551281010778590947680927498405811227336099661615223058735537984610578816956060715357070279990272557176429646721763641665803628479937511605708935553210253455789622202466586428863383769836918148988919555472411736950964055614214420888169545212510056999398076210407440594912841055375971386692890852879578814082039260240503128861792585079091133643665759571656865040940461599947876008122802521393882788755601702691785665482120956076603848344634666706510851076640252814332751451663495677934649121161908167759637147771293217040053709361626825029112915458739994283183237165220370920441976094740006356807334979392976913414085672536632019165011500529490349613288672408060909589394364701155093545875069873422312111674233498502175133778157506948509273246014487048935782337158934612113782507433304146841922355686256230751056271439069401257669742575745535477386733972591121563596368012791053064300789828481864258950508724100788043531407207022315049136668077394327805290538886344739652802748747091148633114794963203936127909999474601479439837608948392933708862571400168224784584408244165071441226730050169666848303986286205559910698345867096844415144831383959047571697162980161979993080110152461338750110174023312707191773652568533918471793442921577335297916239015633168268886908855036765667781887140798089124970317604635286760983256817086401504889132611512202459321553811860537754729526865345684386069592662237776142541781687292636031712239363437457215176992273127034058056723974001387013534564102307828793597944471810864189731270585487372277496638293736102131125092237955312726911202400632445749605994756155818521538874121893126255482215135303167368666571847637227784847855100503864841894780193781478251106251974560358458290122815624184882321168357230718966751246278656892316246703715878685061783487919464448688609872405459782637911672792611446311177391809074811875616315134221767864452321904090098843847692712441255672049892944671635366094308199609625495150842406150137099988301004454077886006413370215102758748790094454272005499258849800636643346886322240057214483870188611339615658593193625222547580049307225521962539516881769380157150659539704365505744786924844420868236396137579234567163388836864004186262632841607036988220030739912034499736745534671106943774227228660080755880056348015270286378740686528283765085324572499814788294955401744420941353176091618867958430914189356448087670961795508358094607983380896735356547214501842470884793376585153920115309219581888140447090400937403789541314118954182851599556458800256253076861833192445560041940489139113180587269845755886096715881073056712457227837876493498208316177443229758047584663456747243279379245012475731122606464158734830759765694653665492182588620865405597459666766827400370492397360169839091288012472276674916540928147370321593694348491037782916487085285163339029852221327749699502673630345252997242368958218733884803598547616951533201831270671449140208085306932121422947684128919032253769939172674433664690210182571901907575525098519654417758140144702424185332064484270235255675938824495166876845646988664047282762880824849827371379610397169689055936125398478840786498593341866902939971151836294614203740499280445065482082422623981839397571294782569709718036608830445145087430043877692214824126168090796933974584198391075586198692384111540661843049530420128265736248187756265910734651133669475245859943332135615126227341219958824723570036995144968025392455535492315602027880387862718219108033460938102452881799397951589337603408900064612797735699781585018070987529779062958522957347174950896952691251348870165267719206875425029107809518421533672770863997337603974990897419573833207043800794139388452614941576034534587480420243024882513047311311406003096289172393770067022894964533679623414121894399201543132436812104560417277957194681207246153964591653020308687679627238678043647324099740698276652302340366358195998360378547611328115711852669972379442330070281371671072840193034928520381507749762749983067144194427352410023825985744951745161094279709167164604951319735254171618370668070973312142453517850605088649016987786249200721911626804346617104792269440906064942587469292080416538480472470063785627026090157333530852073573854169855934029913708490944468066730954242470108645869704826859746005834249682717954900904935454357753009956802289299625588106229447944899038680057768263166556299706800949981117932411016831114434266901684638238060906052234255899949087516974459831869035836823889254913850492732046104165162025632583288023018852052643590445582328013529473776064364530950737165158386489955523451763554265101240836871075527015420262072912758467153982672564295571557728016113905915961352754007977547013818866856770661177159336640243585055959454938239273532675260636855410248183664544870173117250137247844856140051070308508753583911145300972945441933347802726765223753842504178277083652882081031598910557734436327408115719473464191740066919987605688337771794270987884427528195633308072874860371023534452576592942090880636729461893069362437037158805558958432608613078437659289796254087338954003574707776181620824315815193514276940210428168234282114188838219547380508283428309380107856106735334822137226032914903635672023912697331204637130282337017421180203346317420286044850243333142959990945559562380021904771731944059804089703862134749101284339290778485734226647951456666572103795261016324532529079336782779519218986874732224536396450389832348143252326062224741649018851291399541195089068679706036978169104800812276005324550806828929344288345122141484809465276009163459411483392421182546712851056990942795996546135309545886640181595037601830924109283843096223485961548477040251048146775708372613627066233516095826649815095918487822799858594146224690551265123609685217151223165994353386743096966812165137093763319946501319385041652629166419512314020475604414264295092442076766816010033305333010291769703188164045877029004768813050798272230094448906825569238276083761416914841252228180871057275302151476741552905978051274037724900846795579387846801103625813095728599933291508882882737324860358357897933217007285002296383524429632791007145540743161006388777447142491660218497500995372456743361715270978151876240111982808444222568409093480720148558820999868379520449221241760312501871928318558978849034024547996331555042662372413734707871277084266783038346781181005652248542951512808288791660582124441317767170505496763542809230477493483920337063755860548817711399194143370156791350098573507944626012745691279563743037550884943414802449879492354956230296367326825676593838954882253987876110312797853589576514020029966739934392813674674705790375835174843608826728834649337260922417591022966253315568788603940313967628581680963524571239773542559381663051222137965902750477056171849810751802935261288757154668279020327728268075164256648775341508988125877982575042531097701022066214344195282023420923507682220412675928551879842390982563698049666767496940170763074684854841986649358919422954799565515464903274800727626101863087520157591743308167613343444858457785543598356105368926099171930317621272603536518504546573275486372591914548655087009287317926594260762560925009398938243204692307872957853298226598311900313119513984290375759576058159281527668729258336712427188829248732861321761633244642233736301467925777942533400236590492725955679244495201276183345867419180855482737854789725391394217776833910278634593069624353684044879333833362105182379581838592279940667762617690640028346926549440994338747947662542792695444218442254847082524445133280389383392087959345035376857131157828075434176818988240666100206363692442005109922068892281577914927619906956798090945728387016225462482526839284162241419448377038251789216584577103607633385943213358112410472270226291244550009938987987687190642974446680211188001783469407935941771110462078728935410349812066070532278824086240057233798222608061598005612035984989890133738643041631732237047139451004541944047670433819562008125287375802198556493744441631278572534167056030313548752339959662524933910541580169626481293228996781835819531434255843288429361366518585628424289908010598661547207331153237753058529997312657798007980279113921627523865221994785168277340803111770537337682978972450839426443694008633911037192934789188849342988312113040498067675144529765230759868684248974128798281041973251069633392576030191196679402664552313145645224206027303730686887111290350212853816393629558058031779780115727319271282826155978337583453095916626749427727755225384139916676194066546176070110937150414196379962388120007445262924950101296887151619770145034526743616087694528139103212651531002697691972418026644381121117695923728454511142707879911000979980771271327409065126999006040442240925861397156290232009094302189445385557486904975659130216291497357360110478192431033473875117659999498723426338349677078420727246779733955203341495358539918622618951607488186437834334626846694399771171922173506488650472672204242734107098448960676412737947012519850952398284322942104313838813055543283735470775331376549320866569623464646351565005663864877838853672197647608257988033279609833737847773821895414638610941320083790939784820124843059032312512977651843741783584316037519249795862905628084044917596735480255453938242975008229097497284177796208521869879623935769521860983314509677173325326459294343239700039388218453171398270466723076969634587783132847175970075522977624729008290521936494950915053698696185380646611689679850752456166138169420319674074892032379668103703036434919587288917444608845602764149857693438510076216583888356212219984138733988376037916651662723754547331149173063403426309540118909805294033597246940649309410312225922031111474448100048441020029498919678415815646676491044984564666647479732240303921024713688904856501575092076867524905759388069510288834210226378273347621886968566390841004364200922160818250896695515697353178508747796654124857797838300388361225909731050991715908218433817707974666572138324098567761719940573315336654421381173134760077855802233936556987366975205462829829703981597160067116827566026711552821168202276206070994196850627158869041451555067037899310546470155506709383645253812022804955127367964755361533992650184086695642727299589581966871299600564545138626076715786390728823037036916134431919961542011724859963520597703525631424911566219121479199927187412747599701157097606505911049568822098027693671385463624884746661710795307015461140587110574811343955997834453066621935051484506679793216395479014844764934421788470153093499504807184895677257306207889530744596352140324551536124979327541213893909681560271836426887994563495637525132205842647105465765556266829020959953517914117602833532249154670553298117298057682860446421188766392314777242696022157633540118824786032842079167896305349268560745397709105896049776806234915350436285199310228406873691224089021183782527456143771651032837411194588782779573480890082092138717016079215934139379965991357981925511329611816469740373619026461522416330166721404133082178340109530105111872227111605304317164111380754097378736276580872898317523820273574958848508489488373086934424407391111918509939665799522289508764754275628954320617802105064574439771698764158535964300714473323952297262784590830385269464956397754060704669842659605379995367058999163413990409338642668627163880128458488333551414243270652245299390007533283386274268298101026558776484467182411412498945734683345162494532171632319380531191986522437855057116953150805646441521996314762231431596803307978841625462644486776383324076894084126001270497647099558984916047622302906076454086422713690373637556219419143104517290100305004561653301462544472884100155505757756099891653341289667282036404168655333430055607101179024767496134483721998592538454496666012653233993564730462640452599001238068037043615686606029561478870622703029892346308211215036734381895350776225972876351274143525427146905819854757348194058177364506520747021213090806800559530995577236689085549507991461997575748625534018488746150701380626558164732654135920528215908053801057685167975793906446625973956930182796039495560894233617978282835664765417246553175761440507489447872686906426441349106496035901633216520158594037883790410777015752274179003707847526871893491626515317439973838801165663026190591729187400451098402523944007793558354730764843096946958160077294746313285120743684859237121641594339790665262746298233351039342354577643700887728647925733764109015870394541769759764407808486659247452494217331228658788867174065314467872392576161413833079932452390513945214832709680418381555069950086212195646757433737270499735852783152346660852054635559666790739726041612595897423412720390223230833266345454904113388497995327456294095133678557454838440666231666797531285438251728875555679307739028467020270847962313750156929995869265839077988508699496205489725760344554937520370251604279388506364976525656844246657435537094741239510170478623578856898282260442583017183047273640110191971521161057733327426173701629564367876549609431067250867547578321251985805933674509339721703746800031772139182818588798782966389010175294863484914191452732133506665404128502023550904021684299639255747752408254973157110656999922827328969939821905759117065194743927363042568435530063037432326401357416810730480220829116428323600346234954888796910401919693477251872784378271536487381200869315467733086913670983493552573320432849719285600917312503641482095605549581009005292415454921011444086465239489728656081182802943423336099290498420825395249740771029657986241349379295340706449027142600872818274861455917151503667892271477318931494989109399935406083990121897511862418205327358660342669155948296235138599496938876320686747850323509550056039743167943860122731463060834042490128751499537396939946230932038229549252832147114549857474107214446232825292782835823846580561436385294580331994019698223925721769257577611753076293206273536868309672037020965235774732768732641375440119727424327346762138121741740723286615867112327014460979858510206528488032034201377478580274362201171866024099415790583436277593941083720599092919473194428021352717228152957433020515139754474090497550046966795466818893033072446105384609540407605441964240199476891196056090562323005390695630025785774173350347736083422189233499793094876116751208815179173147790917657890671808092128173122519540214735948046397198448256741004680417736009342538692772764283949903502154639808583205792609311959950429191097671519155690100001863667910621923876540423737366032838327360385887995398448330628731704405816583242632839367416696265624564229998777571817088258244790311045358373132915051866865248509415936059859687270765640224401098298936767070348157857670916904142667854564379309776431976573563648780737423430132133741880738310891993844914560719708760707250700202151087806189144578310197290529613345838134358118044365260654992388417498204843614614319225844588957201727873739070648319646472616273901809595951665964861641412186060288147248551765766029318518309311601765006972694530763172680940071797688554160300900906737655291197321036406924861255989241662504008078608265427198997703851271639430920839200754597293776441953885559885423959564117882435971979809132168601731806130788541961223796048341052345888889564096430232411552788440935265811130326286419039992111249669697483064048701168473712993194333959965111523556060235460470260177172109466408274213716687896314174670826383248279216781852952655904395086694551206930219058750075295005523443851564524266760697476747275912900011208751981396124961201230497287315995492583059329903384349930809665900992237208481849810091292349284089153679486017764030780420033571859128616141475482277728559068975545780627220924524234640386399575716304165713667170824757056491872009330495690016869552255958399189762798546240116030765920966976778288812246572487165409889288247981547124926786936589530283377733624849804947480888332939116367447137529008281579413583358198513504168004925045754550543302651331206557284760806145064837191444853133110582475215363970429061369960071730860295080893721700649542722423205321382377632749468329153927732020802783215428691617224547827595099029230278422333718593322912688716902368773132980931599169231361358037129407855525987089547767153055948025281009547515013194330897468695114373033947933818353415189402670780192285099759470597093322332343124212484118055995047569095200002840940101678222230500958701286473216878579578216960044894703448918844031656377296623833889005346616963996661737611853432618503959537785103514201747326630349407680439739661518274264528716574735446274139852072019699828810882526248719156224132581419659227266472232825235086786758475739103668225234043823400507227931682767513351515725975978177174057613849897223104191131510328799752379288261168632045775543765673049844235626912202989066760115081905580627676359899934124457507465254663688169961902778128831664894732907637489399153333228341652176550611052976865014191532487074656365978171095152831025193162422242500694783231265214940069584867256010773384984837295438788282449747559045819760574017890895830414029413718045386592286763888586988866237033101488273448111271855049486455341659509689298207452250705536198415287365673184305531894269681420619951364265891885082826779550691518229886651393878651244136388906034514672739357052166905312967446061365664867048595782282732326160997414540463097170281963124891884997418636046498088182938500450088088581873918427221088068877662742978046216967113840639400499068368026544415084809227139536672472805311703575565249839561861309436947034166294235034775253337578411845455203080960306831524506269403408087888191861173588692970696663017257979912844349618573436165165298274199483831559155399338690379231574960475113439614065217372447581712576617480316385819474861054478879175221700855721259617332080489744534898570705906313918244237217118657565528580386777444089447294473348608432929391067680772897852087911791872828633442956925441435761121564066346038625502348830626875109209928498584108849394661575875943274976905056777803554414733840059460810562685816059962339643904198767291988665890776142285591379723601659407303003676023619434253579555451186159716964704955654837710662335076097490704280377696006321218882089758412040452653855941013096354970918036681306125811719433155814875471886416773444532048115685644622386745894516407032147673093726549661571137312229889028173837344318533025297079077076572838600736173567457160325478765779175297208783892419429417363193398093617849716528665872130824487041957222145436890238923698342991316833245164090917859285841423677210790912461548044648279593521658028481954419440401136809170743385001692392085706062285077383322189180852256053006902888684484672652356121192198088565127735313167064181093695163485554129263379814342472617808842335520540260324547781656474190520010086912183559045082590489595970024433743430336063742835094548471037388705832742897600045872288400393607979028593270756280335665105461280390304546457633837699519668033577537469798554683881420724998482838590088447503918610186091527593624219543565808369378677475850407497275374646663110227127530414748953189341312453135933788894633078110785307159082922564873413206372925181827925795310983645907593759790148714863923194245831823105889069169900008533487004396328854541804225162522466033675255322202441161262349937522955018436112197571323047475381473287729508370345030215724275082093572746891790545289179129966188543510439365379790689413581308601896533157409386003148893797519844981026616312244345394818568844747154704440665664131022686008624210532905981790623118136742502256096253172879037122545599903747939850896259193569655400961141628904266727995817342211458060922947618551491345811384738243375078453991638721760298995454510297981469524589029542414036461589742065974703712439678766741167049933931386804025758486224397827810449105367850693789219824154624258773610015361923962931161131703323961441803239505233392894700151123556904708392702228321000921844809069803054560663195081935100026277340962131025163629304256506063692983063482651052672568842809405875489705872891430656567190401954116957069862833594611262260772442386000847737802242107032989198031219790103629245621159625836651683377117087708287664418716691261491745831345237562247666119531498987555675504075624351986701389700114079151585375130898468820370599219654940703612110713229118692709165833098697938199153032712733244188326621907689305450818728370467191871250043264545021949949929064993316441920585125234022642460657131270614679230864705354516884846074641238386956001730724629467502078203796590476245938039713085652070917961014149112864649699835317327257756135822865067573641037781149177200773059556708048271623150522861655580380490625517763290195473494770003012502385499814259262020643946549701069635575286328709860896419770908800849697498266641953652709095663219081390098741948287440078144638908126149155306700563386704908173570114240823126107115776868892273256585506068051462154543273278265257309732906692621849761296832244839803278602848630659245989411198521686210726770625113234279852233522260276710690865708817527072779349832458445527940924892714835170637274964158885887858177975517592699417771530094875653132439689965427361777916718071127679373431840834665270140536349700865800498494970548533038333650355220073714267874243968740939782500720759700819960789518500688375019335811545207166956863014057556338297530449433932400538560913791356763040527823752668694790488843060019779706785071340003647401642549811368561931409855602624621742086123781309802500299168569786004097372265892322592074245898659637958356641964125682771007077961872454397409043513746060588640492568023920556135729999145225329576588447118511694732377931588651718818822884914432217953508805624408736041290984935830055935557994717683650020716615087125896673347549543445771496448912125685386425450532806449952437069042690580179928693506918885227276133960496333014404349498095078918350979894278352783933592956779053011791925014313034243953185090990852480616274610939042838351506453389919091584546181996565589095094158195400335442349216525362575806499037479030936173481627875286174122068963997698285171640109445783897580218903005506015703382269181238906275269183957394821035235654677625780325326888697209700123618825864830747678967323472152602590248567221079501165483994548206082976204368058934930904256850342201944844260498376238752401717759614484188499117006710808610566743994084131234938635361411291530413379910813130832509407269535370461784931768257691607740707800126345599721970202115675298434950790569099491359499858884284099677805836332715247142765933342846559887606768240846320300306836643946813798035359698732066417992829151669294094205120062954391282934341777173150019012588753505067368785785819474124718158677375222546857820067990948506585253562542825583759172978649686917123358502327496687121235579811812966100062043474291790940403835601339968439628854053057831341123292272042706672196634081206816000227135238081407015073291736604789742762990672763287641430086932790397966019260417824225285309108572223236168508350035258395117558440344097037799420840061620912376192055168039844039359119590250813432544622225652998831687737688067769547431573634874253572440743827070907362208391254041821077850059989114628588831519423692097674270670824309303722921162870623673468980190896012860710774864778411826487691099303951394776660795690213891618744036974903214686829626685359291134580299617716970828300998572980273488766147606817142805221472377968046902800834540667555362264404593630323209694539496986649434391311909044375379009778204218842406642143022126950978285041866564988731209042137398534885958496019017605603359201555761700253412341092986038921650646027165072920596965967816587235184268515398866144365701893168460237148529435307961941572561455804606733204390391457003295819500548143107382984292226605651358061310048253911360606965398028282947056744475732542745217086233547457753009738042329315945584581503758802512105744549972063587677710662751729224235842711925522884556595623956527119854096162403800700017384701891008765171061492097492293961955735285068045315048854689994664351547983395622546423246509739672874322489740192958116578423764402171293757192727731040980763980728312905262304175678552323861657457007148086978636246511207630137885377136977886977893065147830323912852008835133896059947738790928067834835198387081008282396784999652500448654989979395958837301579500190044592978957308809182902894889566710951517936527310388477072285980094925996721652148797812810090115968731301181752003336057189777702123057309103577193133024198524950454884750948683666152739621935233033102906970711611402562372025542788533827307277611762819015371372907120978045497350557667115217248152227798978670349533936966841256504042151976373265219025021910939732434153455068757790686994165902445508893974141524457164566979738320793534865501042610229031474652543746562788231251588332134185264331252634181489996796650587498121155988146675587331287769186956831379990089806413313156138558972924070500260216965196630419279224180871670259013771064226343750842226222868542392690792314898273863900275193489763386129424578393656149300891237515173535994502496087522547360787471242965590933125765256252715094923495842984561160183052576756936109595367581423261199962678771313519638550136021794942481548074049214014520537087998823279303959163981694817181590924628385612992893631196470838294906078937334695025244217548649823739162431784275583246229917881329531056553834252789557684439375986120281830381119429927455468129445575777980553988838432084898628006474206683755300272427992716051948976003479308709670468728583609344802167529234140722126300434891896609666329596477417451651884882145046711679852630257752552107316962509559500977674101968295297084900986534453135344656923542396893219462097907963729278218448690298185467676458487464521300993112285438158573808465973107770273852017382182623716764503287815003306212634504107845035378846905395757090791248777934092741289237331044354425570025227847162073539878438015332005620539733537323869546956733825669257785595693043235677861671704536937410568960257712256062619219122801010365364712483989301488848921649229914688545202763815655502439846458719882283931300783711619911278023841181041957041831159483778797033273086155992499275223578961793936175433044003329307957984870986165304532886637195615129340907972231671564709359495554357500624099497667167549883542872102205500995198080612949463174625467502179993368144675984654137814123191357205478871928616644679944428982262191364604806998515146409046260359176276695609774295688789438881358951079502122914234016426544626037065965531389537652735199757291115547328611531547783175544598255197251128572528759962634066846008094327104868260419197192064826203959143920028055323286319943525805453069716700937948574421818275494051665479711440135107770548101396398709804608764445503765492915673396856415522879863445884093944542330474060725173633695240835691202022473619763479953815631053629437629926464219401155574334808969121101389624454376278676826277062279625392759504280152104185640387931937349177729671315649739204269438559275921977031096839300927080923442980295088651272834905879193847884765113855578995244421196085688685440561527185826477274763731811739565539887553439903446315045609047242710137667695573165508649039254908900464355550334339983484346913614313792658257971955062992633108489533826851288406348757462377967981125697323670994250309149153568402418570852005412687243552717767108700339471973317397873293565686863881817294425901648293784838118851125309298591677081273560584979758287195875677845774974545547730095567572969401301649064675413871736315732133091635752467548703504524629016385990356185218126261505665994397337316725058713787622183173063550997837603674557173629880195898511305095627039080409370955789836182752722437358018194554827835223658382321576096587156748909287274547451564038173248575064850226654308602886502712516588971327001848847812498257592080144830758495995953824336944996508620375777401718898771950458057832879350629896905154556762700229032706433410768559677500507872495927664976217448233496317775805669541585422079832444481696103005215596503948987628549705666375963658366800542374861271014653950185432852857743942161887808827578991165480305559983953644126654336920820045053819416571423015813839633476577497466848347144651390055285854604790393828547146713099281884277353230967352684429637277984026245887352503266346116660403400310274246936642182797477223612901813175304405170021606796093906150073426724770088099912994152774593549277974079797190156716424830664131352971533341022704566783481582911207595548124662288769334631798894731285597329639330395278654588062564657397320251885963512888734955466266443670750984064186396290765158585677511117613388870230896505993577132736876170024123843123395146667387066068130854517182699237172747830727075360181134175233162545478214935783072614950812257194676698331896485185349107360310599923956614286747109242915182110189816208275530830430839143380727646968099660941504467579863942527099918327849222114881817603740987889150099794562028860138324026621660088264142951708862258090372541727531706626136622081513262378291272214352685116417772262544075377267446452285630906390492506542635655700873047196813562100313061702718771169023721592653763853531527901369779267861212740291010585685352468869712380093718233786915487889322422479396737288452381338299653750092867839924311470228891989687518546862061815282854696734361026595172230700689694748139749726769768275083133215882696552150757987960611630870325805704508729808573268853931875735614230870076238994886284878875830315849461314437301146176085605393461195631024167912740736680863607631895568378276645833292150090859102523598814724729284673145562896315730773541863479555421358716205831459843661817997188200416491698188784888976568744068880128543535622733678604767210040377994606347398048866747296306815644738170183547050858415067838794137813552701880201479560935717219446286024295560549262968200702823843635281373980340408167522623318677225533796841748451771598033358817197025946434475575313039099153339719358852543289261892726437123342410499053507217168963318944392642304537575213783040998688480985777980445898970104974618316257347505155673188064795121804898361679228335470915904507399222816347551657922121260924924967954150565203115474200500020444845024004120887198005767702693456613556438714129952656638089604998703209785967344865557607208627230885181180874516524706511847104147712157551851841391307492663765029435769974105797972147838769443190440504006406228177644180990945920045163464827731390259026584807375889697393549858788320188717301791432260588054089251912870245675683229255075276275478048844064795381495773936686950105805516237920112832460292907316862823164374434652351963051294181962407636655590623225617402456401628836110389771303978594362828413016752116089620380203226316739326747519281759661439828409480557825630927237593883813223026158230300391549021476695889849806922939902505166897417488269851066449311736946419141685960381438890277573538106333680303327053116889269839229317643763343899853610661963881559763357981962731664581136979254952911198069361615848077682214927086505821187727852097219706911944961443363099769599404214182198149258454559301129906354766927827234646014231471579092546788158429082770344675311367412225561631995909291103153348115455512370911821654148862946348097283887884019114494081551415959382543370113125538200229733266806875289877955294472350678074174776620336056722003658091346550200607435810519443143795727665222940468217323793525181566185694423034581859952401228702993750491432660173784537359919440266891460835931918309032102078388669994754006788404043899235514713971678584903758339520225351979603839970863289830331934592266648402169924426045358415466715632270721673620071481341621875023293336360289690449098408457868089527169020602954805397393206536344304697119847662209092470122362031711390050201148685732751800979853492940852509704792493247022846562628609543067326573291841489810003600688650447034480129640395345243535878655825064995304499869203310135478892196188282559037771873260670090995172278132527032331410531419729167575293014881872289708185779833792017185382106897334152067413637985839334485340961363655532022796099570007410355409618164781001421017424027582400618602415090113092917122230429603057930139054822045848101623927829807290147271387148184810120165189809808209717915716917511308848491915904329843915044626005428709578411516173963243347590383739632914069362611812552348022604169804297168156340975606504971074854819979027707445817954763098185297143189757282872235433426644529973266821851711842761601240264109770176247720380334568810097459346087270936384253380699163477991915664568185134802566310128720634863691792402409681804911856171785224805427605006660304519728913367143174119901626838538361434141148680988732473372688364615111604794274995644967303999831153293556220732715410657646139925658173026222265045407784677318332060066902697180130130085512885616753377125329169293270118658840294643435567094637436340776120976657353390032307767900366055461250305414285772334684999434267098583704915995732523354983429246874302036533639747484354157680989040565952776323341170593132884595327188641842014641616415381741299935478906878948779241370210411572150856641777953345514333830513688461117958235691326460298271976193564440311317884080680869705573370000359551329150912551111227340438978761959372484883957237878453684391526855490455791760264409362715893863571137090169678028430018818289148488817948981110260588015619343731545386832854923392674979998385933582352796943873194136756223177666097664287490699725330848302084979766368177708648083131875545663250646854154121107425564406790094894101016050433939403413955452507506446906377931814087504676467057123695059460471218099918391911780697712936292082076443674368172822433216969992000776328859355632317810564388192937066340603518681552365350379094931140892313021229380932506350876527166053592990134844055204070042691467783950470675332703121863949512441353983723410996671007036493811088377954687112371504325621660140768170073266419341839248878568030085039788100510743857968715646737124214857070123635606954473705903274617267768969254091080578556383747969998534231424224217766412753248794070124095742994044212013451348075089818529176573526942784443542823982166340623585298390324840744708799858127410512232949006450884200626130798006084336814389026476185563077426030188533445383290813757190633715217318909797599793447141108823445615510389852064428305436386824104185175690880872451444953798194213771272760045897664280118622297564919068063813401015591961179654969027353264320332767014161170400439447087393108986297157937501863026771458659592060864906007804050548630245127214410062483661823725786826462393371939618173391346760478076889286940010067962370365617871734228348230418197418057964475449327123443747006131829969844414385590986261521569551560649742490237875579142428242690438893747841713713112942388330627199608698780480151094262151544939592354851232710597344038815851914246782364400060459829049606318510374669321666313248759585642429532207953327067075548564321909808810475319725124635181210850791441584167291738239399895844330409642628097496719786245113427553860513122107369559228791980564334717143725638955604256735300845261169825214682522163399085024425519480977738700542364126307095468915671743140584205688928921326817594915323891501715661393147838442634657702075405230646543025441054856155563965354024089283876648910847438867789179940337949063416263056375352754617805116800610924249989031627291059879465163833579209127653471949724450915529001989286618723604801602746447487298563379722511136982113706342847874451020772137676424616086925978616963796460746764632966268541346561090264735120086301652306156330383862655206270049250484037234077162141749838541949868206880804197229572090439275751876061224327508999635259674044016978898968585205537923126652879871063285722339058333635343455714077474216449928630688126680160773862687504112065448595053667018924283383857677595960701836982001563488907364196160493718003306628317247126990056002383679532093465702407584222059846214212818883427661186182740953339870074604208283520113447599180225771369872408588721117263137031895337507940182130457377764941620747404685320975281182819455111089179407175486923678893880708738768818431399876980381929290560737522281547797861349526577743125466928925286217590709061782325357280190131050158564267732480999269060909659773882914309111797003203986686004733982253855587857028751170570129660078849570977548533577873586260813063465645834067372596235537186032563288827997467097440093553672304564191228666788137069879929037458612565687719143496994920303249622194523668265439343864587288593392972338352073087373496298965860103966028731323802608311321378107579288877385793605549221664701450590435815480489037140831049261262094871845316438808767605100844288387803689852610492539953878544824995947224317731358308808704535915053859447658185972315436362029403083525102791409819744760787115548834225888007536461429988058028160317509717392777413777377841408698352901714529588895955456291122920184354655475496912117221086500226260334351406034033813551942646070122708711304034269728349080311570271621089024957693875567857942269932785548259788394467860796257359796445063528232932144950448100568856810800013278710807976925004884913933363670678339843154902407012327389336240178409478854695432447476612044809594210018831804145667194007959297463813795550923387938744610509528244638798864475469005160549151359135114527821904264704782759652813414477261365604743394449351155580248156897707392984601219019996661206897394718861917992989155992684324496941344239424138196901873452949977075346938601006427068919592866860771624635577459526230407455819826487200629169075889659247104037413302317418024657302007297458268924639776715116380149303598449316161741204132005548791792834385943213313307829057062890310635405623984114782834315627359138399960659303873875119477646612401118836057034377226505270671886270237842801836508537597450982600515951995543423144745798938743638481196662188459526856246277890016683430760230130194357476981649640333288738668784974377354115625407283004073379141787657641306523821250840289662119172890888034400559859047720306291028959414005466941343455939931081467286590062580296471628054865082926531605299661327211309517161900480692861201356781225074049664390671278863830338833316867925720905701444520303751315597511121627966887975058649362900103047014481670535562015667299523912078189071383768871010374710811727710005156948382988898301308084965013338173302309842478323531729964334044330724056570975335609503180023704245119281920799213112899637838216007351552488719718265493032755249612320577254914147547570546236946395285379375242048359210754572673905696861764818125870970774968450168582811484522953259122709525181131737843613696403097344008785212904138883326262703367558940583282843231947038592322908781403279835993347685529770014562714895980867525173626193066057768968288714345304318397376035500669191799017804128266072699703069390716812176826245299791510992859298851846564348291856300863610598957043675019170043732812377092592027734126215167371473291348626443884605126326197058523766487524551053745427184192799985262018695518660870551864818575784006855833436919193648728007464037319609932898392083576186393654772925124846514803043048703282065987515213886071544537779544626421496204215262699050108524250221754759073966069804944231107977798091049253515980497782850880864523683375969293166490138186270099205467667644642128235980258219051004472515882768028392740076247080240913177938997793439243094542917851312151460929178480341211638594355084316868355814331809760121719424483335863040485481511051200703876423637699414835939726765593228809732884716584783016242530342427727425097853444770016005107281314302429503879503351768473786847694077420506840854767301887996405708970909426571342799233008825547590666822049758520070897061640758941247615018572315892770636237720055410452813834678743040900085059467510731554537209729187927674586875005060575610470351396872472831091496259198366709510633731625792790670513297874707460976295604244790785434691809542090436662659861132657136788452298111142063214087739844624990175893145306415935850541487817051937329186611521716239488826999256735788546719402713434745710516089678811305589598461604617830349781118281006857025896255447898433627586346608126325964977795949551385797825831367150389320805823722469071998345866041411793560799342858050849286414815962171476258082759480935162327775235757145214973858288962011664917516839119959090532416751910375421966145682956822558371772774133428447321737791685908442430884699838781685843588773314862477518917069610194305248236252661305888548976456527704382143687804137548836080421403869768345970277534777215630540565318218023226281681739653670003153531080624194747692121186543927237447836922420169365771176982542583438240957521994084210455592639581759381463697235136319850868317795251646092507746942976000271174491304006140130998909594996603172903566935283856555692688498550916419436364951486635132155768828298721775481758019749854627037614267791307635757464589059337720979013565553790261153855610270001351100894806632373319310780241819244884697244884970599143564824119347101095251760567423107146256801211622990714830907904267894860222643934603704457457373396536910573462249201576859164332609794941562254646701876999570805581956333314390870465767213891930141146295499847402225156264160586832535969587950833208621526873141702851675916929052232702484727820269812058406842812903253934186982256811539260313683729819398104681077067933148207794709455631118686291948389358117792986132743255773148604610748104652185678937564223510399106124854258674292823689719232251741996441882837489826736655716623141252032332389954392822111599866548230698357496466174788677975495117907563935861973152210146309951679567169829710523806000894594734227178415410498441767271809526512613891412471496275663680551444378545741942481074938244763778925729428658977568329447651676551665969256477882854965545404603616457687580103082217787454646759013012093784904023873905155471025553328022455695931001322575302891724591171781394994118632036327895869954004060477684608620340466137842633864221258060476408076561449184689811126292315573472082771083980731275726684370064000245662175553609775152407514810584818332299409775524388050572904718951740513120736922758363749972488356256346833648171087115704708171192195480722954147223603368070970178014458423168525129046525716223264773107642063792479934520725951892590663140237722591443903541334553455166891603608167906073511429895573212518240323262037977818493572513377860085012198151422200194738202851838648504645917232805268961803583844589750175670676912772597282657140899934707573048070164143950794038786766139766654616116074371384723937458593985049536449001809437432317515810357642187056347984762606717438333725657404548056476518645265746106702948261735033525481584262245446854472596745275317010286753448700432205867154844980085434209797918806956889907212852318933886579292308269554757278267755699337251605551560034615557745454707670756558160587179613606829323119492891426898383274265913436880143160735918669230269557226492951007300605908695043806789633816598145188783367358961735491160245335872235805352374455248879478687371890169388482042841323407705964660841086776703780593627883955292849375624209992217341864434873642652940299835381355170633061373796842287052627974029545167936483649498142360943645891231527326035545960187358690602482668069544271254468836174702625649023317431266000082170105390087353236033551004987915164510067351131324206301406892209145683419819213343938148010329520323175703263210270893951789361701205779611252769264509489276686930801833936941061317454892437736688434130927467947180196859325859282650435350040641361263738052995298223017051376209389139201602908895595334666897266252458860328325107252194490989674596954850993077950309777100405242689940956350910219545178151410582818042050143233849317886659737589089588178832981527847418816681046073700269628845270551685110270762349906017914102893229100703828519853609170911213800417202559375752308791157634452096554782316812950280552714999748982039915936290798806698817572750828842897177906152784699176901453548229622090869397844069007806965397073651316113178451030458060512011078340252748159265667051541329709974481099276112867928211126258145506790695731434511341996913221244207301318751939375906114148870123655264988575748308249660341059315726855469093978262324609322733244550343885061604628489832373086342161835508710377527438563953724518106245665521966109016384130670051032545646184148307285161630333034288423651560508016319395496659111931709640864393573756800668235913173539383345704511698284861389932993983758932475425964493368958240335041611402145683526385973604220894031785832400077949166009513878570830101284122405800929452652938223214084551167854147399580838342770855124049802515799282087544412448152601856573008483725680147558952172491596713473168412192420826909543570299921145019171887632575045222909642208669355092046035780570236708513410922057092308767281443721227649000790996995730302019979953065058726038665077177434093149780882680945400813604702572027448042711932584947163466079224332235929765063912611065841511751255355918840089220349907479915307669431974739477386078711917523823924163940193328106683889749471835351988072410491906437937784926479740781277346330361358054764564393912259361311314220490801786250876763413812401859306467401953499478735242839172350936423739322187585915259543635988502264326310885605920124893051019283290284843764014083849457575045585169839497392613121637860045223092101933382837535688448948837926719299942179786758026052835962859883402364278961082612942827176449597254359604792137527852700701109823959624816063512818208571687230252002819049684523673016336416175672193142285989673192616511631416923603004076490554268932618733733422013800111576782866481440486392759082991062713635154787750959413251313338220266227154436221606733724741291323862038044719978284941544370213649274092241192223495437562714248463479373667016211028353470299521469000147420480469738580626206860423362952052236217305945939566462056131572301209495737029321551435267071475096169025059565012530966275326637335947605271120143517920371091195529235707891906623951346289483704521281172131597327104138628694708462960877563290407401879259828257061036440883353046780925052503515748953661850699584162654070022937189067665702233141193260989527753733132789840287199717641098143509043481768685425355851183173642491877163570681999177825033323618036609699052899518286386309298165651121669959225783418047883115920819638203144889143107046059627713095451140456976856650096682132363557874969845284117929004098762046881792096436080004506187801687397333614373477329111741171934424851536576055232160778869516767345018354086270833389255450169805012791926406825331027982574123371711654762275809413738635405125284691186232007193409230828199565192536906710842295034000499727887894661028085545351313472882725086757628650211847107695476846276669679360817684783527792697365493622525100250822250845215216280246289460495468771036160557226169878615269319943389438317283917946061727161818062702488071973589122089563842605438128421266869971222891231054908642783422302460453612924754153972633483418857068063610204485988302256543091148846062497101952547084963496535946467894148914910913146052261967698829948116810891085314188824936224083166742448755660086600693697898104011555981052105376490339215867757296887650260966456217337874184371463731277702537560326944296003301110025252105437750049876197969531726064058757705607085561297950121211815338531963779218438723920653614869929179805426032178556260654263975320094225362341837362086196798285077912169888802410582592933293950773952216530291842547649293327465843175104346314576828907276158744055542371480166934353151617597198636564380269245368069840150835943183715978501715095504692955082376275348483323261489662487114056203185323614292146811999993050995499490482724837167274251654077332927426095631873888327342574836020148242106058635249807241797032672372641538726908971774247228976029916378475615715086633636161622598171727952305721183339139798432835073405218361536968226096343031824584266118861613753865732269994587757894723396325273598198398455531733715939369271259062798457142527277273354234532967022542712458067352664684372163568156406560824036479488452001025889982607245992611471880518732825786982910724357497980491294849413985187228789940893902201524523256966978401960244522011042580359784561802084121134781696479441417231013530624664686619557923345309869263773408849184552255667375885658019987518208124663371382470847077084257456623318557971193548165245843353791892042744397320896800342829537077541607390395528059630460172449038840227487823428650211759946950496455819725414551118367654946771223264153597315545429150552568547582851767611122694540139373640057156330152174761818741505942493299653087283419111758575322310741719589707222770759972145691112091818659719846790580545329108696678833272663234305646620888893306013889606066948454365339538524389544686681052461464158421174584021201866770587736931601178827171208930860229016650082602060167401512109302919529180211688935077495840644644643089308645103099473909253847070025019814949589197756496257690513031724452471296186190040230808438327779737608384375711635445505542661784541811477556179388687185971981539271206131269096659321757691681741256155063407673703266687162444708299546671465668493127376330288738745726604659519059486886820010069818070025882948241019760956189780674563157379385575152760325394183197021372911970935572533292764023433726703693063953413799653884895412873011408836609431217442238087363219234426124092986360616489521883051274226162465530419730625047585648933251179353866587507554019810719282192707753008954610128419822804665851306738842947752942478331299976033551793764898436492167119692267557003683978988019721841334532816568942399890035606324311934053193888296951578780744706200353025129670354139012660199354124740105345777639006740838223191092065017481731319029211554731327785454286376138484799516362964525607509923950815398733083620636493843477871171782332949208998392526447907616500624930668208091361731251601815256418693838849120113535624684458257825147236876319352900051500022141438722445356517042322845702742079659220599606499353684329560195742555783234910555688446004361599254216377178426776065414683549784698567158180972953326112648226392783008661434966203767732876966069663589296437143756267015531387701101013714571290646028184503532756309338314016816086341942801197603638382642488444463638481832123910837699783093420622324708607338057625906938639112777903756772010966275447750954180353358914372490942742788349128663833110832937359116945221181414596851135217796641037885900842739005906705640415736511771958264500611449727223839325565504315050802897794416151030240083378426484882558431239192973188472238228496973083384760668732851776705629921885274810332107018723812263140579025785320430967262139256433180434135801625056716299515264838220689983192408666181394368298990520394561004959710778575800892093999597542968161797128242903145154723843840248745046900968866628387735374769587000435003091063101404117855671945444084179484548832120158559946113342267293183635409350635792993698010266184196912889598618838531660038753484049179907782146454864804557660522920796608924015187359977882340676887906792891197266019537516613792302809543601002646091289557860897842446928761603985377380401680905061879203135524748691003240158893080737148811474151847423858243568793350953452811297884760798085892212713223743799099783417252437466113820422693128274703938247288763480191282378852584599170411877545871759478559687610057458548066059899759194534055916180722890979441948155417194559074970156701944562212868960955817114687105355674813958351894591526535713974372282603957252392228601370589234849755678361889461238204218749315563638870467075199046195266072232433932215662500896585942830130895156365383135235878091130912205277775293164450029936298801687763193431631333269129504516915569675784298375078505823994923085476152898968511606611501304769381542869329208838810918232609746189968869757696884741861187196634054930203255318381116003843340066762056671619262409156198716431462643124174300560825344021123357388372203755870243538359944038308292653027764129156480479813272996080876287799921782833628238178857883750318560625849959534251460487747061761223839544433314888029903423234445528599674989806602143805637686263063410476921544323972251214667429169408338261531703968191151290825915779956226875662365423240929985359903897334273150958939090526461119643607038648653685449886616930876340799473726923360492904684836092803413350902051665504922908362244691045238537481829338296442220213280828758039658400117294468545808057507073370867266149291945564442965165926201330346657333428938256141353210602279599495623809060916809339692254131980991540732875628735710246961838207760030420361647997016811992240291576977635784003524467199039934219853244332983646026596897316114973949787977659176295468520922169862915279179626699425912710993218611582145450576055299731232531586586934469866185608787534144527601257355137058623863073158044506534209389461853431250960027881589489299865067288642462314137509099121181457935500917673863361808872883784048027020974573134036087342700317893227011823951372691734128814525355469303482362727926547500896848838486581652723686266245911356260477335431927959965554852862398841591074554879575898416450468373930806985466941567790676550626632903570503111414056013136447953616190206253570376384556725322769856094404948190605713986495635355657216864010944725901825532327483586175771004879235028504829602769189605340115453036601198590918364025507198062620642045366728368871011523014693566233441891552645139147808049155463708128202306273627242535319738426967778372523448241630649580771897344685959692707172295670077217772034274650592318124914711240082829152805433080631258550963739054519419858508672561770782260589916708990767578234711672264793518948243240586688767101573996345372957278842250076911709263071984424023586288530761724208871286887700621310370871921293008279900660706623253960478530696081366173183758103497707001633596033840457951581650191470174009890776305552495433085121335475730829520738673004601691958556714069786069804822809718181031610409253717373779310963454714893224761442317853436216943195771416515993373287386425954731809188848170980582168957635232616923238641540053884420281439163046605677778076744707041881767954818746392062099811001024229226351595819032611660893798571892078390883513410911608583952304060270297483968528014123612571435154456001957846973975174841444160761568820305808108277173332606683528510658039930593705870752065139083407684267820821601536281323021741852202309359486209710126444664338144405872685383514739600946559574340450721183548615715244725281062472663812039596626923215479177091471691458179944348663766957083132873502445227981725514583089834039763226728861281966538793236388267726866374249086527943972209431380782450170337403332952322920791252587587832508872758118385120643377321341712451941111684402991980828709807047388706378907393905004548434754422098241719097095810150339488486576838663103398756193540587189064825900159757113469671774754072359748566279945454396049669490347378012785984573172565752413509315105947760079721996087498122008113736788378118881785946172759459030336816102877113829022628241539739562447540512271168967736158576374783573590510879482101402540034689551020650652898316329214118334129114543799898963625332323461076859952372801133559621382557757634715003846961316261506940738500667691079489557973735944371634961324967218273022005566782470678933541120919076730919167095082455531364117641706685918267151149604263707435896324706288934186763738057688036365135833977020738429226788457189124818595578875104178686821936833370823706295794276063992380356729815504221695538207512533454426008837115055964862695932153997348987304213225440210581328535055931204643684576112971221270912747356765781105113875754172076392722120160226818454252800219697912057225481871741783741156499181119353983595365022098157345569976447516887042529558191480178156695552223555462413331794615783092790795877363624683712460488233545357092451193303650993248788833086880710852911905053863101857899180094664284052749953933589726268676999157711254839113365124268773038215159702362577751511081147830406624594583681748047025292890106873757607324517800188807230848466743628188419224088147595206278943555168907982243898770276607118738374916338564591236897575816071165110740329442133492044897954431026224130654889512569077689687138032693053057017786858375373184103076269574854343240240923113554610627882363783029256984481306337908242325968437707222896441859250243893450336643905141345323357763298543270795908860436478948732622874675748397649996249693176861234401756358310344812409473236695429177326086788043855801766839728071799629080881989538847165847476128483817734135418691760211453279937092061060432254977834204316170105045253369022369954643468982338594583015701911105660086832972364677503554058271037995767935336421515124506950485385920575353897273597450595879505738730660418104843802965660216092951938473547560890066195317688515609261614662121673002505263665341594833985147487179937539711522005071621505503926242387486940171500836065677427468230289625636968901008322950214379733499683310813609826160629482361891533725972671900428047643018096118865096116565682923965016756367229890678604711171808251976056231621202393082474312885165107027502194927719947681702901105857419992092252020423155011247719058024340809980092007735332323540806626826643574751955131419242628603882513631864706274531075314364375275416145581855458347699343791276840339576814591942084318527263368502096571381407801843654850215577520103569526948449668776042525040144203023430111857362631910762818653410372455021563171127807465228448037980325974763665045791731862247470828972572580555507132645900378904629080976341300408677939435144269713136923726513495672670516956171067908876542102375588186756445557890758871723615331777190613285475156759137814330391875308274830779570249112667510868134077359638828665282914585386361334760759895084152576268665750189252460487996985194423737766582984051320826869692633014297159669560530124089085083046920522578546234588984542340691014526481167126720055152223409964050798598418227359666285308280127656421996834462329195952229981374030453364302080315228896474482186059034427123976180784680329202167213164069928627231037907173489752333119569569672981161976853952984645774380299642089742934667191477240913574317178812244539683883166813514508180005364881283026820797965327396697698226393901819680994478320025171013375140655215497892325336321652888523121883772964975411684205681986806972086395015419107887905620358162439559471035414803182710254558517903116051841603839137097018787182150309814897588849163802324907377313848266547407615409494367564091758253201654005378935212040102285295479964377670892131375825896113125416335217853717887030695220298430974027216281501438167116196668414087941324406466490258341424555301766361720455195317535117107072810506318693743781665314148498282362023237787936539753567871380973178151425998357517114956889365584395051534023818044433136704079851822482077676680181380808741860258286875636674359132029130250430966857037245078236817416035409478456456876141215386968118553611056443024853415505581991395891675375533116278351140874710257407339237458239920767315165524547482529977017675538357952051292496107016484171484048657881738252775735491285992274883228533275397191483654420057562850085799293408776255291541121891713474312409611770587695947738208458546237329835040510810759922063646481259886847847749623237945645481799236964733006651278195720627771010421611680228002699241922230657704789056516087250445744961591387710444422257407181928880415097918478290153942756152854708263244763624611478344807347472808455490763877223893363153694500852301338867254401785149147920781601946686180161349264376109181542589115947586441983414942495336904375514952907845716080065831187328153309214120505462117290726122260092292571543543603855788504571243031501324635280764575815599827576630978894505025023549258074394549978752307378645351989531610083545625624915131166428741334649428406831926389549043214937755344101186691276799060458293341525187214015874937174408406375415401593654421051800859996235466979585635463355185365281929110246550678720134726259596200651495687853122289243434367495494027398808867123875288193091681743867378729794261413270528618839203028742937368949470568708611214704071621730520050569253038605682293915546756099306928077386798758524321477066189439493848721893372613272230452021091386165713297695622281942988311479149409960994017241744651941426431883841699067212285197569715068946761849139123049088098423404273720932740517625157073299768668129741138044110694097408298965329973103629337136545464808821551972755524943459460925349387491994392305867775976818790690085395441430606076657052844416730405936910270841020091142966984009370898134527336183749765766704897353255431753991131467629070235558065853956620382568125265433405807368949352689771425418388801805337849163777565195381480028629981014393887725952609707569847053648636613657987571584580715861586076001653654706506652780095125657343961172113075302344663687754275296588825588425748505114456440233452114883230418188444619745800804976176905357357310075912867803846647741013188743938197747385101039340913106309924609851669138832409352810874349556537090382580471459858300816423948552290631455414316893459914153421226706362108321340468555686599395025013961428294005854959856008270043864144053788388705621415553845340834767283353059321795372613545580322140984645606199524616278664221991705535688813686227857163339902315683720066324547333059811569177554430819595494095981053843974786433824392958807542777502774652153041936685664116308050493835007103810256101399385832679396782151192580461049857176651776878562599175132292134191660842476081452364176327266300992916797772581025473022483120176609790034993516240596112230046547897060651288510067162336162737675679873621438528190423143473735692956168553726491272357489411068927261061263793696295654049958225305037940555249437318529355744104055768977618625131818444278522681696735962404858308237565621482975315968878771861085613241647198482607806040148651171990309385777188714547842122332096600166343743614909310766598262215433749893240053135606465388669291740064210081456475021632747849907493474932435731020324657786540800957020422066400826092578111917548504136990007615224409069760745289434659351749023028216574656440153038399986216740455580517301322066301708352530561170006229232302563467213856100137042611527934882395411035583042391811820877011851889039416929781238659928979179259228129464051447951693096361398720903487465229637155404244414667271194670052774583923527394102398002680363135456714999992815449679251925384745140415179902133247510261951482634159813991856793336174869878264814973517924879593268286819433422728033843944729638323402612404414771456765795741491203102252703421135969720698346292637326931024186313816228734031044134946634995617603435495377284040892775801600219923930932146327502298995723058133018965720624236940306049222040939242227159917756616837596493773128006664070431537006768695546563684931279856669686850202657377744979707045011041298950396312264288153911807026774323224922437283948369188944212145104007964662386713847857760706351281263464203266579339143882004117346070782810449082266762638468021683576165131293128895216657055460439238136734697956171022305263893021866729289944456811604000311272313128625097240140619204919752052873914378499283851085927253389630445376121174835993177896592185013563088559951236645012835080686071993293348347260788424112031631572097604820638157997785473473422002674004598255799840869165304341750984148224881146150689789628899097321179301315837165234431151292432193775477463136360546519573452404763713609560426411213555433887738380065465944427714904842236850178045348107046178608445943108212702780591312554014993631574953217741452261857096840045896519666607012158083926335441863147615083933785286273085427493389431033309971811265179553504183023576812232613883062701781802162089680806558484576272320515853414448838688017095259698029877712742253719666010762038191767189795040101636938322528474464020178956432987938930273445423709908168789211006178210729482456380966932758705695851262927719048273080084276225919490251834849755751679181747498043349477374465882121226245949551587117699140133477964586783679505775542318055723766221509230031571355075819955814245977384115505939485986021825751708669666751422100523697901589807609612826851307222575676291513744204202918163609542761822243607739469372135946477315179920056570909794310256868742940267126879071853921774461473047209644426392182691134321273691614912471198283533212382742178080450796314803635133721236071019103414369317653223976771797345176264738989008694930350633641285968384459600589797499395324659072409708446727353173269066800873483716585300115055131954801662040355000037197624739779443057445227783181695202770094890989268130296238814621220789031169359587472763754845855041738841143662580352384271335549446375616833217838187487609035146406880324153107682852307021438504918280728813592519110654008847600841839216432281574502272881123734807607472475893754570192895746600987855983472716930610227293708334213482336554464739736363171077651960229812382026850822494846099096744023528846120647192720722096258387822213822581218908430024851695019305117290495930877634976345325441582975076390683023282626628286000594373994466704145433677243215737115358975576431883421539972239342527461922082224179061549293188899957626220816204443692922551549842056996633470207041761153477097323816830175103771733367990116524626968368414160612914039756661498215796419373086078295379988858532380479909504887532086547657610827466317537914011950274675491771834062798582302961575886621314857275616432393327445473892513127223582996821710313557096314489837911525200164363798344108801366784228947578404070745828818715015625211286569861044462056809913561483385816571899703518443615587272802746691649147138734338890776110926665897779463690956225026729824620666607812004097116456388545437920419967762344607043474921021018229819336909313147337562361973296296739731841900884762041503594171908630460234508326457008473645368670717770622405732365631324844780896236588548681076383393368554431605341097413567473807370116024089793528962737645697925207231636329104466184635304912676690733443449011225775073829508480590074070574747662912142811392158010289464922005478984306580866910808803359768152938225008753301623850747051085785754572197284636474581595231971507696703872550138394696277497178296645259470243000576646856431776673906523127910221307937083003175061833221869410730678757195108892611814826382538125359049174521278798537546558263637365624269252800638847656420942031255834582310080018022730391480794235432175447942392896236600742146140122971634196811553348661891274705994805143616083766326440185441032323230391624131916199561929600177584063633332379403709539450291938887406674601165699802128399267042057163920100089920960953802805547241500467156193643712434897601522453904798540072110368386012632380454822521558622513506838696562401140710587364306390356212437123160040344446011124014054012859876755325149254872761612810349323642699943352749834241230348941552560371760783535677219735080675295404102289009813329567977228824459035783386883130310253527139180514740937216788155056633015948674161787225662099154494063111386531243620527889368690245534472692512002753005092842621060355846262600718426810574691516116502616414913420100555705692587589484996828085113365977060946536885176643414887844547076585027980990228184095029303586831811950313241267786936912756385523274481133095351611886432580002678259411503226081387596089856118454950691573430770494706785249753270257419855396996077161783900292764320341731900983512408550358942303317523222551976261636924088378414408730073779315701620236992800974574500253422214220783008212186436764642707006516134406092125301672967342827432890566076786817640859381888605480095888718692627794213757944151962351672298709875604523500879067058460989161342386452509185483110255070053386699500138054769533483466445488170538273331854643439343324835296222941136122559134881487487358776922433127050761374932495141285059650405188694710553528300335774152287308177546921108830776745810816860645030077779142537683444787727469000079739417650812767815979170061273339845492254922494807264602124361154600643325908766998983350324163753351446432870121962838222708720954111685474999045974648322949433049157232988326038412800451165133020435099997751240584357157519758560707928378632322851320262723752865047942211699099583117056570301487749459972830816989697377092731532109698338658991092793296673717849500670476666056786762138385382314807012099903776273294695267862146360296103347034698107813341664964603493144758748422449650529840654181363301556190729490023081241025469320863173037001462818697660029841775315095288446080289198079954538333500836365202679444686833529550598940194932440470615643279678991385086846309243811383594155287794532426324782330630413424233682711428126198779123362856166445967036858097840574356398486576707275214611098615292310760730610219258758842615977758536403674909640984214329134038563712034167151928737559050274351411910055302643169767369344052264978099123481787245932674908297262002285692936442400299024368881496961769749956723878303169355935905495423802256223251669837366521840980341341942781469859813645110729943025655874720088968285715232914540856516940906259261157135473292629439289203899282549448259787011366160758631357976750955038828102419440686035397750014622058513906533643659502556220730357614777914389322738472725696257174041047534114350989634050681179454754666657385367130083733554660282096049089115721381717463483923291579634019708928495511277660945851002055477401812789948423657999716540081703809694908518059322325580630030731797561939570779865836452659004004635399081151608142613888254398854179681860474864564187387891299327277137707899313671800398506232322136066221305579800095896093124540904502292601911593215449501202667001484411995261369759515890499696921528736227102444132955527584421252173852735617336568786817748157736667811060561941156684490511577034959303269172398341599803214877196033612494281244169726419224468523020516984309174797583402168654825535173559829869640035783472582022338675397919480544778177410882480344758683824142620453554556359178145527696418985316567226603099066921033135721138246770333679840116882410664996881343858971929950764848898685004466068444240207360275253862983006294047081379531209093515764943357617474148743996843162492544703857175042833795153490480608057461225982908610272548768822027522719983576822144181868335069128622899612686328902896187703868437273291655633545224167715876099827870484121296601892246797756897367592622523837697284347036596229042031807035911564552592284975034998102070574699458924242735232572698588845508866262351601061280306626008672173712485825468404412907684752579696437447766474472111433970384027111373531481545306279434732164867497251862753962796828463654013734750116657366955205333618369640774999256249485848962415174233655693696606962899983042250126036655208977206857250777186901410677450655519333848035957507276469111297209646100295108523661782254737698722416917019836453146912586653801810992795621716993378437311722063860190593709247296723098129397139431011387144007071740684148680462197094753666799350253295905164883309155201088597067342743354300306648700834907278435882308629192261943743264814458709036296701323922518761386216054378717026470583746580219732109157938450833914707522310724493924338183497260299663052463106854855808782819146419233039391702456380571517324032165604026801492312277211919405046263313725691517921941299701780381952651919616172784280442610932343116464699962310120052673612828657453002857539639318031681578515958678429082312721514161986554650673744575860607988669541228998307215349287270697398612910722096533407386191872214735891083965490325565820577272458095101715440610379398015057222421809887591405706154162277784836911125798632755745699744023765243451499702135251255456173873796820923896699458392484147451549730555201620154149247332343209066577013705283949942791770465392171089844312785446248582514747991539873057010045372487145952617031592524062693794636017248079501613492480033408618941382924293695756914956691245117066989087437956273103312059562644086405147420122610911023226216849686825729755922895348078639570909127732334390494920064648137521254520504010807253439538929257800047580312461711902424948917582128190096978755114729624749094010967541771087661352515471447405927991072490184010422728583371559977228247881866713813393952338201238014537403643007276065225515278264805076941025839461926121992618903607372085739386183046996365966946247739951996652900473162013104731641385073558921493992298362036921862452489015351323619501340080130765393177327714456455843610022851030179377162359618165676442535804965055677974155991797415652709979125766513801569256713203095642083544233126547660650436174221690419656511112578019588220233419531413912619349288601865740453566497991827314145561314994639789496570470322272247484750179891042221370748831549116099897373509855225622893726353384729266158944975247537618807578715198683823959910442841057096261313752428835618496074043886763582867332863865916981335365424620081216171377745047755715756203167915013954653326403409398488497747014775800064047976038976509721125200623370327001442652805921445600517828290057466050719267893429252321294058804635357562943967811382390119544710080732029433553523539523952428717398843456804175369899508950559790476557067586564659922832154580532559972631107687926005459474851436450988689920800001402103740686976281377450127439937233290025030236767291552352406832264516943899072708878606469601634058705176811993365353827645898407697882424762943346821654474887955404546736637770998363902306553375307182107800891701458778735891159086938456697847892509004288901847193266670746846548001217101297417923509202606621375788535468761771415612542421185356415958577940728905922903104055003733882861523214544107675528456451631232217147131374422387996419772481651908648247982012524181326720781351884175112041939076358709063289943517998354330081174610324594151089697545929530110211007028270721867488707656017410701966720119112558757824165103862618146443496641261213920581151116461737896146838936994584142104548627436264885983562005269538912975564729356352761472993321904551849809841156813197233973409868474421445105059731435361696626852713420977574662974707054102386747156659874240248358253897125471918698933240209054118656135341525225591634265214145812768502327468682775280893543681372269809174591488438514426712824136352403705255178308181871648634510376893329113496486853421317306383047161389571970441081743897659182889904879277535017616120325599085576454188694219187971110056754976823018717349606113875365755167085593926086544700869703033895130359063615524090388207635375963967007955379842279672030753662872608909418220054719465499508067365845028851881531980193069790071676010541505104261316697547086345378972046199980809730609668908001100169294133088966112528396088479302930206245959465532212138707057252973737186573376242079216297744588129855124856032201916085144352468831798695110103302591467136867729788535239225881494348671915578194250796683727035666237411541293679496931624289319114813120171481392097655434937637050263665921256379116748763381988674926330117871174048740363374583420185668689936541702426655245487069276266124787196834711847895222702698827217491216624797620693010309565134348760511641776033843744241792816845177676822687725014292924163632143754217137803022457598024370198342109112425701978810989152196581289743770587321370708645039563249782150589026409558688817638892506704370665757284913324506629090049582234860163176698769766338210809756644130229248338072580499346358741090424770106142575527529574042334267493192833296095854572788248125305035212772157377987990724613610858139115724352861203783118030862917511192090566475142840515123606478474550137335452427226715838470638101683083470638212341255791684825470997863305583715001152913942712889880993503309815544660854624276498403415041301546041888989209663442593260641682668957767949604619450030849580140188407180303443378603159263740778336094602532075712569820068210946174694885542112168379773881840658186092196923227771325619365430407147924955969394534179028866775461980947706193771338717719482169536630609135125805793529800037481839348849189523283029864983132478659797381834219097740169778746037690562149417668035429487729867866907254294564255372077929790271135622996921572162506885655376092084000552629009648495364474364689290426459886928093359003700948993102899926910711192221978425593651416565301251623376442083385553035107889446053512302553782204328313340450672249770821715287389628074433156479597449650022071406404991060126070189998412444522285921671277221359008846179081223441158922552707368654472522751307636106137554500979677143226891953774633955757871357450403394165343290352295458076843091176707160224778882890491857396276054061012586758515080865589328485953739404232718078106997430187116680137759748039924285545766786540484838737878387916386320776557476193430941851655178596015496941686028984079531614422103092115004257568522420113454826877239801570609955959897051441775289893898778803300320955736362663342345250387384864164451134008461508587263392704934788408379190367143967697074625699748760640211750596955026692304463166086181612177102652352557860294622472072667281183143420816581278935097057239811096273477615300821757914674509599460030465450324491914190230076389736449518763641113339676570558070398128270209450803701164015712060305924577461911961298498457317601313615809936434112491514731916112909265675586313358708787645085011982179181386726704268298552881616540922415754333231747249281208284686904207967882952758110343131856562265968480393286824030245375027020281161142836632009736365677281024485736510449264966148128186153329812375478873322604033542374229753764645068394010893110697527959397708484452195186988173541446284300460386360246337381143638607943228476024094752126057124239820327721704994468307220032490935804683137692444991620909337621252979659638757715636709648040769676742693114617001726856779412017157171283182727288815530582317518793009833098447343376697822141143731153198616969109658366922196430068921682750554165679141442952792094631998903269050245121450466776457110281556206622572980876316056237870571741092137139339524174384046363109269238149154409918293247135173912607823132727846339027515750507450925287106063464627067616167814834076710159459553940364931172148939030687145598569002985356232887778721983279943459191828033902757131128552092400791795347702020974189063401934756852300870512506696128259963096674079585378161128037801129368379698551711401223188727195197249823977783539880680406383888239583865489004919996607631253955519294555724693704166763820959214989904487213329647158207236368955117840452365764781233189772485505888419188725716556969636293241044664513802494231070010570582471024264762490765369185617533772478904030529926753888815085578227999984867313250062413323408970678255374934943460346818861175734974904507075227644749966923918785048117711311322428801808676478080854690361337736459857879436525633173305249370593815073824108396788342593667670143224048505483588841783684997154831238476704121721737221751924327992116581303368142635509182446058980111137942085407028076516856439807787764109088673228505203876018832264018732762530614718875686895475442697464204148859420306350224756438277305616760351982056955679120475899944074240857538451118938392995205908899230628295885342744031773206860194317676725117137281177637278971728528627753899107682043515933776811402531514749682321905988669758551986137100577786936168787231937588332528452731876913089408418798656673188455595767571126498061327528218505834585735081034957297771016194193306646219513095018710424108293481866200815249853238668820208789113792514237209419356102181395337808144235761032553554601382957563097824406864509288346241072676020860868420392754537944012472140914591419563508121038481668121146401021851122783063757838398929472506110327781285890408145244258749203687232301766994803895743494532811394609525829972513449420728391653864073561114197659529588669244352775905546277656725377459987285059283789087359820178623231475460049687137319668429164833488679259399908656923539773631605994986684270638011715918667641039378898101221876008164028168343368401417325755572937909211558339047176194418416626173156081887257022255475952013765338027256211726036016986271180239009338016666724038612581867301379427479709764402678794292443365257209251648707862195485998024104967914872008499904186588686003238900939857281604298462235204130775069463250294887138967097368020351871105106579310526816695867068591268749244080453610412063610202802305164440873785787047697339620434704942087838662813953037277011861832347497643285413391250602734029724688327870365075491591606866426055657901832560192130989875654608099160309855880316820386349272980867160919293403530406258896784322148426767968298886718953199338298104197828440256749297692834627169715560573903621813304424554147673411014769952113720829392289229476190064509271811996430325199198900133251246651372175365509033654001117896645224350711815876179961788403028440764348610906021194176441572060412371987984555128848838266225918968426834413390348332509037380810801738834053526813119821145526310447246159341806360608463231364371417035769331389443337240958926280245950495810009918492989999962550919756509090018808783632097900577164524847839327888149965419087236476142507827413412827131437219774698532952419101449132140028052697528908335119069044071943037588855811169824242355148176058022005881051977210278914426160316488334807287203769295727115637953176884571733319525330419798089563525088465535874105802621525773238524413002757651432496188345281778432417875267170419742827971681568404169559462558157561996246249570993787549756668917068007389365995566183495874518117256831402294682961237542146574651915972808149975407443664948805503753271128251794864679532724200833152950182914109439827777428060982131587411269031175074301882240455084571062256648106678874049363810698124362041877337540867242502092831297566017850588555949721121655558174769217643481138705322934478375947991778386524933360605169140758646879772449548122523295271838062221622978832255806357553587247571194097641063639367163987810015256608223407188860219909746917524046208892545875676404734096109237657556305683516967938397224081358754441047554349100299469753830772764176982488011308212360058613662994325555912366148525449867705414511296130275400828514041907529278277415622089396479823301347167424682088489994311917887998853753457158476968577303327909639552689982373821840941430591160614029519652916804464826136511856673077260607621517644014843143803548194959922003984471198408496796996215174635582295416435316925159649801172178581164822276125372181176976581896682304113053947028959010426260814151136445774258003180920882349538312266486344782651040221979623671766977193669934102938613982745940265604153888635011067973819157778457605954243474715073378543739135533893590320888701731478613505786365441929952874262351989044286131446077331627674203295831280299796309831432979868000977181483341653254622327163335798773791267155502404350903116730998985875924264081557053452681840418109970726042015824599174239409335489302358616989675867133626275957144367161686836192565288269570756626140530335929417419671528404465779071503251632754174846029877972260750136566929802112900526974948230274719722528408455844798082655946374130185561630444782885294538856524057873659019152866642376330840670090843483591522181249733663302173855935187366216049525807417327282227802285674649746387943875261297170826637514707526155184138660434097537627196450883788368308959218510437563388374138856098919314753337484072320287178506599284548841937845815337501722932960663662309655260804050541118831461768420116447582657491790822914043206733275907237080213639797300855083803154515932635821099019746916686332275277850820965677956681437680724624879903296420051651614037411818660153673319831757412119785779214270992723985055208936940524251259628184875786265277149532964522429668184790808159024047082657271119447720534841305243865644685803004214971364849639625170832253551512474066408842550899051225689414309555186477626415543392041095749057031680965393728646712090679983450535082527843279293134186824639743455438336934707977585135179198172740226607009162151842369234125443929338947736224677793947716383229236526833801137946479228809020563679051730964548768019802842482637891532519789276872488041157750244783764321010491237929066064871871451515538138533187165104069550936576780642841384374957229852693696238693905679133580161514823507990699261005310986477808620682302211869148640851679373266562028963738572902689111515078864063087174815487915741528517633160963331561014064259341360898664490278044925856820201787140382366794436357025913092850941279599587610239570239394359766374875565106039457823577786505418810704427727622487055971827902391067990471668341700432714533419957264643028283188626406200217718773107638303109884768422648948716073431643856223971274586916407972067015088929521233487927665043582737504973285864126733306298725854242065601244340243925042197521764601379851303896563304238426241710461627944459239983063106539162819950543089636353226637244781882366500166944755876815960759005370262132724916326920964274084624211530742791579874816424662690005929121037471419522531124921680367461320423111405038948728769984971169253589689534270068705133824962265407439999418119482124445948630157919000446388214301491865476247067067209984581809948426627504105624418808102423259205256702831012769212242717481808485236836785302754189485811781620450083162374434532687838655080412643593154112550331346316450759097700676040759506880417846339033781527762929323015730761009100624844707144042465027076990844327616893519195737500944466284099876025410130359146752271472438425317415852949548045936297923196088492384383317098816986402487597771054247208703194366427376467468622387022868199569441539579280607251960411828526423384874207702181788638115134676277227349076341536085910357298923078571095045160298349434604869725266859264068538483763793534359284004044902646189494412127048147297484529311979207663682610152737713838515286238799786057994528946235317647942963608260423138656108747463932966428699043858257215412154892072429755274666388612607636256327575595103049868931765126880047193343087341663271121683074755907982309404126758966880289911740764646226211091205761209285361800998372510752904803917323685092628917726618452746648169146827439700736134227157579223970424791885323725470706150214256076943829811568795079638489112021237692177755747677565654097449875866780632255750795021530064989217508346607297252469497652089348715515592159219573258333808940557555685565709947517788863955267366625598379125309187087205433476024380124916112480347740622455275158158030470013351588104589631562665358569745959818678484002816184896841907969603976663392651443488351226475074505380873936816880452348230316096815824150879657574588532498252114027349179356166254171485342050390591133934124780298132821180251051630700721509128368190660992987516294598580925331441102812865828133554442497080442329632615861716005691309041856489176882162741728016184621066573428972868374317980875086434517080992561927184148327200606086717414893893200054933961460522247760270525398961271316135646655576718481989943835990204257974273652162465460859267048720258147893666472230922752066723617570007199643183360294306517632805382262113554280723421700634892823844125209446162151067162521674021685222580588746216061761236770543552273087568645462413997969158753037698038557725693292557318727977102720044249549789935313507096858899677607304211848814765624340972891101660622058257215069017619760886983147847006039893183978166004603653357561199588301977796897915031191071098415815099833047552166722582441943312046547335432958294368523581026475011911797081026587945685447499260947993074668917155701771903722928362743360471879780407525111976495469140101430282338207543291277193163383892456927924402346084121373835822633167998530713810702366162007383547223460363177383327426982658774224449322021676290241610180917502496839509957566280564317628944276956599172330770535356557019097716681480774895745103609104950256096959627134465759138662175233755103831971672048893144271122870973145866249685764062294155776960276748798788684433861263275038896313460556597590922228697495854950377292891754103973409575887427791219772949244246919244672395067144198299412031113025436990148163043837477274615409308089289789471720171772932452587780388292158725232487716251930967138313642359158107525824258735951696618237023153766827229145612335748617262362438421725082077345942608728536386759235557364089103109312576173916219791603347469555870299991079602368049972997218488511530427034994094063099202877192373455863997709523373576921330033345377198540785208458559133215304574027910010078230319382716450450046750718767447250074040309171582188740057561114134248695620601117814408872747897843155076633859950762001120063459291369482608321934251185896684528373280149146458460835240222597382976218165060843146374902709015789691499138928709975122507440381114279281447893825904309837586749950336635935583390743148670007655441906228209386019377935002406926684590966887942005331617873666249883229096615299677256828270662510027865572647484290913478641538402637387930078031132751590906642651627377062868392084734800127748570381054758161439839182439545038854060640198136509212410950119467468752756612169335924338668532939974374818323717134801229642427714412248529405715495448682029250483322866198159316608652091544521882669381476642800255871276545790396407670827213183282950091395065622446883673201043030972785379094220013055298822684882405059302664421119390524302256624755778869988943243587785279045396461478985248030525877133990167278309448200506713298420563908585736473732429908487588852842598389451162791203333652271572709820296498655720373830831497921886994335919918869628485417496829538566831053162314481737709427848249026786460597989284227542503454074422245441752887360391525709582029010685651327561834368728861802610437286963902545396496311376582467753504422071205681450242372968686613709028792890255468266298051633115954269924085463266245636318337533966128107502078678944894635727843372408800510097635513947694295138151343714479216067638403087127377789744797339360600772065830820445472594604831917679122976913512650555877893429911788924182705100400851185062457537215689474671617065933218154841513388204648204311345276579764904865497599356138212055028479362291939367016728952709377526999875295863351312441907206779057977018456572435492318285650179884473678019270040267281571224916125747472059173431525905717427846650697339644378058537352245432034513944914624580859802588859381047756423552246144386528460498624051227581251247808308156654721976209628186257704182129464605372742851493441983771982758865437597046797846299228179776324307036415395577993207507722633144781722869503126808216216022422283487498168977107523111213434675077148191506217223580947722794395933337958372844710822495758140740879323603282322898382534227605770990078997234322334295250418783822136038218179542315307692093163325548512739898212248678409661952644092452254391898995006319189571560709484181922061108900280145136026441229127856961661486745230111195449872613334268615266968600532446469419506373742324508199039541173494119318553667456229725714690783482587104259795156989884452504866975753470352455562343360642311929207027954646612653483393232266770991923685650669383907941769401181564691130084160647532266130887916487626076707797425314782461470298628635472764164848788055988913661475125001816519435885605990490129281499602467522382465140463383170277107391941253256833145536849398384266155676645644501542500508740251352442235209481261222112821101513517720904954733933619821758693687738490267902741743161668631855675070891374984122325854274988537468801972483156450533532177590110800516627290009641874249544100824413448910475591174445444421868306265154869098518332935498859610429150854361904693490278515942605283196205472076337007173009376397234424225521637438741867255814840245036082857089088417131924196962384850197838849135332904986863530793740096394720371187366463809312325568156866026619049001478159174946320883407883193958951422228084032262956626419182272338136296087158367784291060186301537999811434433577432751077969523911239751773897305140660489085719216345831858233990469785399532918833093842252250233641116188568349432801367489554958448289150258415682396512830629168666794174668598646286975472549294998538575615749130927175730969189634008383072276711425962200982839803184066991263504062980529266668562315680290316670871779334083047516411636256239614000431625224667018169557672013255727965010372785842835934611197624756419368761691029427155815800063070811399836664002268694577675007464603476491775063304669484278285882309991952363377634898424273734755821034612898343668976758762444012322576765933837223679273242195443939003514026963004901771898457529833845490595978323964416851491500497705190424892898654562075487763196122961705064876117582952767937922544801696389506450635590819215382367746689504968077252162720655417994773961485423023195672885256121073750200836765829201039990197965101228840208435178902822529183461910865755363017685788658732923515446247944404409807902718503487411873964961991262906933952403061314306490198937797292630610744068793819515255533033665964289079740707675255887931154470360320889838176644568724063853513583796214560412162488218673606657825337173126285208242259097986457044636265153606480373653780846716680968614171587299618665186104122684187877608656229960226882958708144080200642909699850815709998763250130430610968637963145555455093999853035110729235259168970527546424682482649145350348056989048690393980187921646470490102415290525130240086176324936614714460592066042621802381628522716544249585933849655352389865067275593535787308027070207054605430389268939736113490026057806803541996588463415399533731212512901214501594672100608276393479921205879461884547745833397479551264494114082216348834753171941343928198999445829455112680998830307608146239550163820268548158332682041992541925789183216598721336557701904652802769080192879737587780109732404987766238781964484661681422960434838116080072485544694981024625252523190810824085639290631083048931906126942139849401634781789453473975250409445551594820052738162259276024444838549722863002724783616699218326657341127726129798120889136532817800428646904666747587152283485524264362354093140918951341663055285676459588656527689581978603653462329506525150968687069739511815785645856554291876192885814373264846273165608955252833112585997871921485218894377683422088074184951434375108039245901548902207482466038824833703017512207437126329341943068705137537166279379799570246943630328191532566351837305054135382501203500498366202419553633810852227269895083902160864106724742643767280011580424848800624024458253144328012365135067301133994650043364826098558138535444832759108278695607586102751604192055203476522672006707974309391585193203106107029806794779784906165588652148237422589845523098740716720409809694666789607412278180707625336814775102555653279424959995907914582313892608468056904924834177451800306750775030633956769951460127530086068217677422208854231807056774768741339652518874594375750858479340473233041749889436478741048906311713391586079935509006703509006944342904663185437776468512119170491934493163076874183262958172239925445748218179490877363840477721910826905610512937827977722149581208354408549207955668997259166397505731946096602178863970418043103936779628535788875491876087680031024791948198116735719748245251551671934357890015472797466572256103295024693242102524751719179794591157158301781792218440332889675152373434062908131570471136259014857000966017004777659410987692986817160988374393179925376176776103331728622491419840450820614662647844906327740536710053209883480149505435380701433084276829833515493980927701440109288928488655780080447109478788357652886632587990756842213210152252242879665813349289413901977363404332385003519265489568979441621379123406291398832561525387347763507858808810183725824397432243407892526299472164763315207359984244058755500374353461158587860635727579211744837651256797743095150897387865949092738943907311670045553369710611394487018118769539180578638681883146458769865725448565089344756347061582470675384231267157966208339185782221378210044844780958702240993670111261610821907289215960241888470727378306350122825916354330935370238218757991650986768669795980764951778997575115264597493736417657295372917449109452759019151639116037126878652097311607060726662851340824081516126284016327585882938851395169640840421296124184200594388331047449443319882316351470138099367093147879702138845683075207216624581794031532374272700446856626679514988395733739566019722037614956687932262732742940626655262367595602742452400619143716972838361577462349507609922503723368177350529217131119145898266176611197580828363073025797244015765548674252455776349264307814650801522276811686982634123555833027972148580935601048504109827678990032304015912687603455857567117663662283372827798119210555358547365453145609311528012235079664677938308957990400191019409106074489094463670419890784957015099954711235777668868031222647778972619052948715400335847484690449856052440591519188556961191518791840793576888131143032560677850428102453953181622065344328683185007557142852832470248994470170114063028278081253605735091246020235835563604239516008462386605382269275565544829511510423282936888629968412038617753099165666301172243788113170900165351718493763792415676483641366074187276591823256325099413983586640279544576362326845165673441467483285748772418855298611213974690618990813950860140140608934441156096433186250963089282491146792060403899816995681009922673312073542306446079443059269720215154456966854103562398696373783573989744697532001475592838032792726698793463989310813785213970631570683946166874731327167737850269268712898517263883140667586808643964613320945677104795871092288431287920903491852026149993760723625968718420613694762581332617451892036804896375967021616365891240405765887884741006648831489231962672277022038743962143166235097221116533835575635849852433518083213963453174540381477456873577011349846322794460248720623931531018471062098524211911333635667215962365795831999244271686784942307275758001016635211821173151695424041203095803467696524096010397158327285875333568691112416372410037896821329425168278957420085023921297057602977376682631481280168435129248025693554939643578392841592549920458254446843863484992732818716782401999246441577437745593389559874544704439260686228555356553050488341527409889208030550345945631678558661767386219244610978556619049856339818040937475879191710354859371908870005167088823436934636755827657216320695603108104721732396797672637852166887875237884727984746413449681886084582015237389782959350501464152009177101180288270016962846080935342541340567930706280003961835511277511313538801203658360089175487254479841313845047728156221900277032782367617293088561080693864340072233747270257564734468260550634628944454997295106473925024564143411203856047406916256373742004633267372347267518154398148173544064831743904637529483050771967274478237885162468089431139525293029661488800046166373846637469631848147714675202824637299450968874644215159757922609441297362587327270237336174511224967627201171484270557629743716889468877821834977137743669681075074587814108157551034690368238191684741244894510803971997229824227223293816534811302089175879782335383722131171572220082679260448313926151039720498374733570171433378965143605719776835507411408203260031783414895245164365224036785262338802970303527397845044966243840158470942744947997278162275878305920721607966990332971902574922699002272114425942837170115974568727691957365616155236639687511213580583778043184554160340902567785823762305875655220181331675140983806663990308212909672840626236163558177956944119639150857784594468486932072044550740944934322567150616789420320568718208555004224674979000061186194340099855484989735165593324012416919626884913845600697353174657985545217601083651407013903686488079242914682110583629225077953641612467684694068233069291175901402778937905864697586932924189293469761081768694905640100430590449210227286541049383970963244708984204667441510216581111008853619327794111678306254881317894701611534297230323706805357050785898029878103105571992630491530492496782725672331635274334425518441052059447421899020376748849627106782957803296184406977005354848682758537181569984923742730505871511426423032943782314782848025911209149761810707915319078644688194736832884395830503528991435457314879746936773586938833470925357542630153131891118225976161339793092254565104454592875735785520332260807166528451961342813593779922497015655149877913896282882317944991278114317623383386688268792533519089392034880631484063269868511869586646200586821531844979632003115232457685165133307975069659871111080542737526707758697114000414971939765445639421518536149667284354913347880820301303976678514047500576055744004511044578982490653464292441102241235410789434866210816818375161860962775067851089972044739588082628699703486732835092856459787741128743411849527922926918889343802473684464551397000863696040454934015192381997909167524333922310017807901952763689222470792618828410633073192798825120386744229323376247525770340497695171929886084230115432520241551978654043260629347343646814872870065690248851161871828468235701782084850933264950083990239571470787125673564953531211532666639767537956948985834227553405778746734456800546275303069653813344138808785748684662579116499325924611557218921563927157039441879605765241421487659013328070828437863050701194618525122772289714684137069689873814427499086255740837821236935111121435520575969440696728174243245897161693638677107629691299569532651726460186431798741198114917573516120143269425130215643811206825754672580164790563497005307886116123825987969773180153001352313078993027431624998867513563311605354253133271312141281794605626601852360590728826340692349351859464412223078297771332123636435794262332369348510532312055604374867559545585793405813613332646411138530982843577340150075941095290794486564763160921009583609389438060580525665626556674219937397160938807092181999567947420973117944618921415748670949752335099533523873469558505036347676970659199178220530104468476912867244281256165843616597396067335368457457936764250056948778342522560234842055274200403015319073505731931544941576668749867402818648493969891516973559002716509769982045850685691576944928579784571989839266998991361263005647875070390046582427600246082849358768247585606250470569445490510272544938888802493939694040712361071778640534135038721882246446833336129163350573080755000015769923122141248883566657327501948065470437103963991226368165157542834208832815077770240675758353195020017669863052760345106721668944755565029721433913127195507598985589530255188046778236431447089216820145921010767585719603347380619232848765599466288453190275070230450584295377156889661750540232557016773851982105189654512768967685941403773168293178917495382065801451887677054793672820935541445868154614792899297451129084923695550375008676728683814500029763417861082923362233916695997571380302280243067957459809719075560885729830422559437774552500850250719536893803199691525422380076236005453788392182167387286369281513923223529478277244463178045920595441849273819100090937018697718868158694591366247223173019063483422882542101777093150942200499283116940463874714546578550651181607484981538875943032265176323164801750587467437376942759136910383498290719734880185692588551465143582842250644160913650114035674971667046565534411699401198522345656280158120261552984531549417312196398017531832582520213671216008075957933031303263366585169251963522726169778084998939120174854604387911234173687931108699595514420465692712155788286743099370492153877921773193386760400601527177998242788412654764305936339940011466379129145450139671007447147900100976879324840248768279978917225632370705672305273119054827999042362503269836762102525174303180457085120736182241086768375855548996516757441991644795292147989305364470597583909411199337825160176586365647676096601531427876564689290227195648832677371558897751213109890822121485750901825208974266802367732563235556053802974525688895598522442903031918894965277968181197493428453962621568997660913477262819685488230300775528264254943135600913109586304002010296687654521088852945535505592147756777854905233086261190712185597546836331717741148203276303116229766835740823704618053119988448445797069725939029416170196213182723038434904630131849610308872087390143013559958814644599814473536827022541176577434698809972558775424948569981437428569718899816674474640896823892660028181146441656648587564980306139974161324767527667286353805838342356764168269185176485731675131932378946427116377275213080335168065054214753841885816287739015797431411407449380506023806774902078663975990530366440585786954604644358049850943477226065330146056580640872055323967452337320907828893051701032149220163700867679548603961558478990314009242420090670352974808470669701475480558406182085529212984520003782107721070036034617870532605676962247859508178988764921933598682671374905823854710133357648268157371551090149075874035009203472237712144081930481299650779223086312060870545946000875014609322421371278550750504059057588226792104231928424843865761592630535513695604987525452319818792798219149508567368883734630356112395853286161992567393093320535279339838904604704078490856120952690200783152758219727427226775191204177715555884295386508061684270433330683553793646674767492669107354697411551369926851737367062804658289993339143411715480462287107763178410704990206759634586839028983102181289314272104675397952042556797390063655252980516204040794177226673752830952035584462949464314786347429027112254649714658847689469431555869655830823527964456458413065676728842205761564523852619698534798392970925077019460566752599137124943257544887951224793874759115835012814833982552537861476986475521875084554852510880777467672001207545762661204077351449075690850482934331404075659644654638770797524481934719473456678699972342270239530154802312916134966880375801793424548965035234741628350626324991745306443053120949805457977155440521745267392514674362962654068174371928361499502342888341226445724963486770102174306421964533629052942369351592316319145119920352710043542001332356824532378659924125548365740675892187821253699743713274962529122159697711529230967770087931225452247219456686361540813838618960396453215388573598290654397729797433250010824516632056023731401988151555574819609583406071442902701617467635526194100156808297333048704616465118695866177332160614384319476708563903488650918476148762371508561614455732390598175562365822650037565571775154013555763264925313009970027209478767275443829885977655386948696806842326838356886113024000099908618973868053138719743959943420464604937647516003311516376787752033665660033497163354887819323091691665450171854757691931154463905460496648783163956559743481029935524653686933257674981165235698539655665518070993113998211489561075156018848119904075887598141205277715377679221538154162182894589815162160685383156849244856681504912324576868669467643767129727327116188503700147561578791472344017809843462535321700951310830581254239156022622934797020622947242425618984044389520069911506526191713989899930880218225156105748078858509319863664347253363886944243734571820837700648546193389035118452420129175762671025158576321029118272749034065494720820824054466068311758955228666472834557804187615074838888115220545781784500719175924968591196911663373785714955695384565424350103332642017243474881198245089983972167245419305889776051961723187191799812871970317182506670704900099564301997233178583299381942388155429818121403579790861374239344848679797410152236922119325241245763645430784121885452273548463015190979373530317599611739246428251053520908311289371645566466404139094016953527474354641039205649525722821188923958195551705780604021527924929287317509726057729941180499099175112473197224711964001282067026106857492283687104494159095625178876245374901460120029500227606079009386887922612709212824027041491052981903538743278881175458071680946438828689028246841351875456680662998586267234530994903691726361740382101367409970393349849169406126969535856355600302757456736827217819176498518228001795685902878265080750412912369548505689744633555562648968630676401644886745777554846604975366068130936052820884625001664989501112504270956599426449077274747798822791750183778186205312439717691623221869114233031166597803039203773087619997442788173226983183294937879725060124161640286219180218207298785259216837182106939503977702151372141220180081638170533785914584606799274455392197965465018298834841421493329454343458745827746522452574483063214593441801823676506367434229917531169810315165858476014366540860236777388726793331218549869290524240463513099567948028007150322889380801289254152031181663948624054409603890713633994547581456941399669131595393626806350203049087247737207561625111361392217435306280667506878918974837775839514068821881256091646136818958987540999155822103277413966285386614551715864177905723354472062712753280894260854550775947988846035586135728140122451983687679390740527650999479700014599309935196855112680336329992866364203473621820304823269271102276779310068688901555728079728568477621660568766279284897309987695765819967160441882838244042764626686089150867606482072071650148734683325250221244117340913189360667390436721489026003932848338132947492557523961776514015243117067370722581676435062812964924765583354938230117587918565764165457715456879754454088951818329623812904636116556747280782790862088617987147999804942886348932474775643995431929626566951777301277508175395933522434827995001048996440024591446577876165657414238305441011699493894313053241375765886595135064186428824670397787771746911209990443050567124817771768915721077285542793061616514276839000139776070642619427142864654924843484753485461436191927556940554408082911745626522574741488460443211466928600912277373457677331510663345580973032241462020230310791070218181900536216911395817152753381363116674804184546158251769779141281073350171003139972009339355301879450077782993718388135673806698036747556240547290909360209844227256406462934900965678976084182532322668126903743154272100893345362441906406699810030618594104629612581674178305454137904997445638835165229490472023712092961481941122525137655976272187674302959390838048077431723929606599822696395147014700739829739186285223497316528658660341600442373867565459054240871512188291847951308876027250376730059045699981586837293662646022643608783857705279324458670551494111609574963230166606627101818616647298397161682582006211761350581933482508839246845450199594849073937488804276510761844589077354952073732649377922630462930850951308920240379549869926295546892281624390579832167225680092884647925017309225793751154673233192506894197094978429074010502424933913242511672910955635616834434194886151260059405055582391283201052956451940930114314771664053391924867729977965197964388603774851156373674237784013615500256473091983469815592001911616483977541501243286900932895970049781500889016544611832470074254558789285784617978114511405862155994895344516461183089726164279250417063514285732469930524936207196912602699872641162419086391940015203105928669064817529886522158554135808236448856372837084465454403752727726942733277587929945529430640541763600989488482603997400665799748062788927443912377285986134630735353596578544744635273290681649610396526215869652995053307212040092462295033480247137270326910422995465752291290591048121605962984497053998119544310468687025780046048978569657601904383003955506846712221199963133178489475098534665196352858933254222099093153515908867928442034726972794983372102361711037770903614912039448228807569998949041308865638333098671504098234177386394926450353344375812494877635517785021313116621152527431653027785147336992282746640223169485509914144359009799470076957268444785353770044138042802735897658460837337342571287034309062551783770676512051648636306464248884723224350637591621711178299978702146221395210443243119776375725068127288720717567712733245289043418391690128895874205880094425652801990965020556297055871340477489659982073285451117567331257759423833835736291021985489276790495312386825531849301801144123894477131274627672009326675500658994749532852792098910278390805043870586333540487997476198860938066336692884624930714422477897540556030546341745696350304865521627312240118969735038848071848906359048372692459300677367518803840965755888354958319688559519009372408648990854149496926101667916306534532537634652342315620297107759817882860653156981488462948408230833709528696700107712922445472442589401630585546400084558260032478146768547465202136440188076410768683083498458305232780451882614753810362526676616284696831683071051487572827983268148788953970636127536166833141748145779033510907035597313547665935384163567468126217220299078370367351253727667362660187164949764353087114849867621484670695282241570464756139623584364072547092935269379854255790859712162499488172112110719017527199191530811072573357961990907736227922796712033585619008138429369323340310219697159894112003731268576842253905955053485411472435445461843763963710156958555725240540275045474139426954691991814420334679658207012912325231872904514480942138159797673321623053870672264122856780090252001281268317579362143848514515329792093080349620657560437550362573528159561696780693611983103308989199401874210956121182288567077608499053534146285285535249165431150802850418568662027166827240194395737536934171508103268706760680911677721483517998526279794448213115639615326986923160056846634721448014149216345927825520233502346461912370372958411362874313189789090474513652575852483143976101436961260028424667329754008530902424399607456750473362145352334775678082603312538839973677131656721596289151443220256560354191368028523857109938271525827976545468879655495046282352811666887041044075756240847001188667080923064251452127009834256991097657700070584804868457955255098488670650740715991496658921661812493670203957078672204922076159438033287561471583941614742850781789153937553530876153648259190387165506704336534387824050873747826693222680261253654191594261891277863839315485312622898007579357025774046359469780185809417239021833136219984175257048682302140079338889033268092884198958435288197119542054404653646386499203542941689088325572349355734021365080240499457099862541029249018000312394207719923617446094829292555601275644060530886308998550121370524085316903342098262738324864545733075240617208563372091003300422811895701565361642788862679224888662406116086489299205092778909399953195800984612190367612429431706581181605039596191685265016530429419016418003571286510161007661617619821319873605234853543396655070639518256845367375551648037808544353419394626239789435649539189136057593555934295695184242062454508242279168339403805299026292873828901577330523679203532318209377721234880603158975287612053434715513201293336185377603330665209428812901101510667085387785276795644877957988917954048348220141078688107892641093876535481008789189990717660289714264518735580839468854489699207056875655734375497421873257785072854423208242531857532901648897579809710163817066362875375010006469715933522216508210360599109529445443521449304512739535948368666296019003268173108559832787612055613350068209928560204223847180386034484420988577589232461965587697932235687842727986504328129776947566396820005505941606479301043368194132723664735468392676706386441746948217697059324417052551557767622782815002246019887861885945894387296735549287535082504082052838473761663235969468985100201465609578493779986317576017572614597669259302184359404364972302020018691167643308728804397343265797545476644122781775318102166381686881125782773686519729593042779424770988928091003873818126363413555997118642776786786587673181667229545590747177433131642242036309855737505501197389930038303021667727479477569102178422462842402073876057374719973655632271502791960217474179330117276281710481069573844258912801048511432336273662396087584589441309540100289448777185150487058713249655282906606001406389299910603554771280384870894309492592570362942384560939721244926222783369297806637423844645342267758951875463880278695124076216967189510137454749255992822271681522166099124635875600551610260496962296129044037190004163313222947898258578573641606000122918703799588648442241916447482238775171585946186948252191655725434014978575072810955505323857237030950107630956302250348150907450236916750284541822313883220628113311742114271026433004337239574670146003708736959905629460045735626773112339159920884593861011752267120080192224035458348179506298576839208222709536871969237202453812373333859383468488802329903470719011205420895901529301693976706331941598289332683488545204948599844301170514325679695893440174774006012141226013529516434215373416960878899688238219312033894768129555456309927429513019557887980964532253096997783649276776835669249753698814917327894842887499774898762040303618202857594081882588655624107789612233553990285131527517273430971207517487990477640114875763041658590824983864314583565017977957637183433865376099063590041786819794062030003348719359424842201752086541089122358475180375838822712893350765742341529760604887729163764344821006484814133968884728611955237755387991589345235923636971035689159029164434075829280048008758236447867051927232700722918173062697046875568236787127199035934284258489641861620662629412832179420246302184412672029478644905526584276547683862998546516968411925306484154586711976073676552956885811286942725005465411369217107619512584227845361079850925965225641292260438449184253827451213575103332097369114269922054558384208843933885487920451416661978831183124178823785209738524513159743193384238527975459611333204328021973041330038194707565306065833283625119830137761986109153555205662233384712975350784404385680275404797160298153163805316010634835253716148610242328052128907584919069846699297723286188118853626760546904054031821952885449260407715085997670442270112270666441348479442892404257295914457469647197907608988670684083656486676171102746116300944119788757755949370200808987831461679153485830977977713509334821033806709088925764292794829373201420213058218199206575858874789168576226657701926255723595536851685949037981082217539830307962567867319423788468956933621421412333591314609625433845160735425767380371049185156531635280532948104572463985466164271928675787055344179147704876797702846004356680017745151583716326067724622274912578791778767843517619138247876755184849943570901921899955490868696494790132500069641230240997393461508501548919013713296597183231237428621094010415085171276592548638630860368158072609472525663106564810840295422732435094988700993238589282729162592934082196636920586636621667311281546228033100592818417266524833798726428843534685054489298392251119765062622821367089273088050157701916624835443790848706774095282014224777994968581722464848545058267040500915997989069778497353565597857238247446934328081175265361093314101340104866106029739961441703564496081631747218687074978762061476684597160113924918678823318648776197658734952009828310362874973798886772757092829578651874310430976146740041272536613411590336413659863326777325040745805949376429080733012337394719140164436983338770615871344582050933218525492847165246635015948448663206760663564360425902460738471331096756841093537825180038782130304197725440330503857142940491120662047511559769944211873435496227572952346116344777053443591351762080785556243741570259378231807662215435478003885175145088430503036057651194484484995350160430706016731104732779405576918031714717179361113135511995478651654108376916269628635565483236252754212703961151918951571102874504077254457074018051681363200606819868352857247721295756785849535301099386502176677613765492398479894795227503060797345622062663755498031816681464160384200485979746770651456387623007390967070210182746478310194372782800874453050826873557175743114537534900802330118778838747445800991471404167345513776448116452940676339171214972188427499740891196004720170410607323402428291518627853889472051917444303312851569446084389800567724366423407812124724062944111813377670771374719598590515874473661662953670950965031747119473539876548199298082349841192445683209956339658395551917399941757255915295400422518041703650205275314533798224139868192951673211926275659444445211006815557726561969741461251185969045995126474520659327396834760243395666465878873829419947637524434570269966119938942142903542315326638981953883757337047913159207070631056920583353042047590602533382999110900406499646910395658724434887994435539410334626156676731189477888596351758548322465274804017885237870417209147875001867273804732177857443808808010014864099178940452506344920611924423250497807715256932943414700794553012698418132594278949805108704573597321293455492153912330092723003531914867924245744724974499544599086553589874172237800995483197624827570343707128547260381755512495991750512537499641117032542017943256363252786840738419046052155149405682586830134598863615340512499723773019357292515638684605526101944924830232811836466627083463491573136400023024153734477806200164405977822340127121750981683160845726356579247213249791834654461211339383628525618693177805562426106131080492155090765758381745661334129800250710244448969311460859862972760730124535671583048550277541983825251749309308935839431036877672144856754481892436669009823126630451096660302639858203455532064637382347690182419920664619351798327019053276014345326178730396044507792987316635070602976980446120817775266468693013046449784727368058143068980732940195531258332814134281420374695709298733662487663474580335185352907143011675025254143159605826736364794343746022909614517623679827125697587381600611773228289149538575912767528746437061916663233929222753103110673352860998067403395785414607742708460146803307823475874282095272346928846884373925842476461375783363276718195759300893882890692501872132131494844306582809459020087214925721056519700034234079842275577672399510647758752909538268746779674160301150846564279875785203008788198439091322685026705341104709442793082607570556809058810284964313779534326056537394378455176480116551163469021025439222885549239488814201909661790887142320403718453266189672434034386836278072812339205777601402482351486519107124597031213819903631605020119922315033312227655104533163071419906451321821375307155678937808802353165075655283604440854320466034454531435371524365551467146412106069211301875054477063183936845455185828050232363429849235847109827224925008912393171893086240965267371458342778416352282472710470511710880259430922514333615178592775544236885985540958109213031064492904131448992660636545602519581467255351206195788187289971586989446071660485989621256364247435025869159223801361718762597813017041381647158316215067149953385158289846324101895880691821076146873682723871127770854486177240089362813264765646778930075498049827113951026581840527681929229833652146344465964983379999879557961526459092382215806737307936758523246929176066376328854540575720217502499355387765955355667624604174698140128845825163015693181442157853430312474314731161852551996654700041505367441204146828074802057890526451202333781595753524988470847805397410219724239987205238333971156015164588950654993664238162869775155219896898603448273802928083650925440798042935800012470611627910775365326344844027025399657190263185157129533904528619367136786331880073257893871765542062930195483936679005760182242294219612709245619451089983346372298058520037035771261320742581931193226120292305452758124276233027119705254027616078393443033687921399047654867545028982540977441757856997400129694429125618223625119267963316115063991441918789900569336003279439335292819224615626492681753478894601941700939979252039069183315631492816554767045919008204603773277443373117394904693394976508702757288357013056543664184289230969984674285936207068493191945591543166843220919449784392861922373488767243773589825973504349127380090541340766101370912563315278843828145277586042225007291187489891792219930702386395060057917262819566737440774477246605310734628430326528344299401941742184256856157955536996688285280387888840944726434673347297048132459469223589837556223503234267486372406016244476125523761995974561301087070497024972663446085098140138557402744773357424496584213150536295643696354990880424576974038971059619322412344460000091870271872139620212887409650221447788177773802672503389021647705735240185175692879160428657668601448620117755270696366445261953203832597401621068750322830860002799146295768373267699220921892242833823337456066948872863456146520535073961191823201528173434922926150972738463178314883580842548088596938377593798473537383744439643136502324229975189760361556431056444200170921205818873164947843701307813314335404405872444158523663674175842937733917806284786498620029805411298727583062644447888802419821876557858724963190108744753401963364508117232180306208261621001764618479608561698320296621984532361391931961465483456578637837960234184622861145526952555089362010612528053082559316575560768962529981709919592163370644326588722536735849018128699059517809174841489979912588361405796142809228976733075222228085039557212738156570370909445407814543169596220427039802108014371264763872769938978871555328812345658226825294476013890554737339617063343768006550756597900726024534517508152377724788532294559683368551077820647232406473775760205651698802118772933174879536936717886411772148869058871881252016638135268145754358140377080690220231151103810206601888389229289323314760035045416614100026974231793436060294028875562052903731048979044589505401361321050694596032559705035364120241824997554989133369126497917652897662275009513874198199733025287372935785315053941130292840415943820953505288200976853126505271683784018743562461495139033903039423007083789404821718777612231145430709142333481614630485233233776961132489966420186788457998950076181549549550927419568033479662701995734432217386459536371593313767669420431185589224301490541770483815540116732198644078261928534015657203475152150973642740384606338965472805844963294962482198592273556171970168428893768744726964025882673860929868210704526893879975993694332535347235881899437644437357306233749060592888618880157292924820100479643119643310060851730404640165378462035405640889099230025949488229874200548305388392850506824936590821319032398477325570756845392234627671586780657702894823339917644373697947947477970047829703142986363910181287488101235095173089223521922339684573676215588787569203417523748425995680634197818081359066707754442337514211904705085354788287273960854957916474066600387475884055019282622867662608852176536480163410003031269487902903490527084686474914754690441047635453082705489361867031433571763673570982827796497631509822624329226245329486621827148074914450517028745892468892675684754318405417175616998686180553900613987856167670292211615293578776187442685965643901013564118068571257651413776555752240825899754386247617694349800780804204418784623265723901809430085844170004128468206383757718797852614058683025333341397455648205296454318109415631064275236566167751269620329622587987342337623781554461698789215866765366262534901114919742568503675879977630293062931180648387702261652446643773788509106015831116155676296417702416925354876395873040962984340009400582849606630464949701015875863768155239259517337399559869214191893796153972463674334469114130605795341996418304960605947378175749210264477653228835435990875021068954685454259457040008375498989531305131053662562892186993806958212388045374983509352778156969683246977093529483318496453658059288942629024759962182853243115044222382731231520615914351701208067282602670214226058911067007245576872761424800583388751909497860689595310405059352724225437833395731827319145833756868593877816439431612371251511738873830604142312517340933554541741853874378416524483167224516271335701387110954188201293075702747759737389378463154763545501438977301796289976380827324613964146835414069409501753797224605925068850724334198474164048891303729741976548184049528289563292201321224406275667441192303721407232585840272263216998240698453265759759417248945872408176563260807589960055566227426813714131674010790036603247593347278127593446834790327338940505686008735225048021437158054682187893150855493585132500962109999029991864378412964121343756540677318393206499524814410575673796078351584133756185503788340475893162734227873977552597083687615335839774266042109494073620033914551490615743838037175371342874772373651259864273187215259411575808528395341126077885861562958607858776090890082963515577351621837602127752511185225530779170597159264791117806688984023155726596228361037439560206719308741188566594571656420843652907857459144648802508601526244228563308784820768229475127424880665343243048230561694667781466508311946683489731629847321662663073669162775284287658041242778360999311288665626907752553196884815284283030783777595684515414035178100381751785292565142935012276938813495491636033227692154795365013653608895982864040020619672658007528126375290044734806241484354449221292083058187469720555558424985950275727874864869375129328048378718158345968279491007744054345008179430583180154689213807530812668792536802957504312374138537508491353577820032415095805751809028059164542534122568736375545568568522848740072772711290597249486554487889152744581695583408043160943410753568771872384137811110566979788031739016676068816987357575217844663334685500825729495587004075159713519624328477006638221120915223265639277778724045043059032906811897706430068922968616155502063901166665431475350410203221201835493608281411887591197754719509411286098156050491015709521818343744159499577213934947914165572262134384803429867768930116650591397761517531018121174002631351926619476371597069579067454917733066820784971672965412581560051996702061261657902542176761605866504106381157193650768918046291768934201439003764413277070222226197289970275273298865232384668673454645001679925561924798836247326483904060869823250834928723562227872438121316275284688027850859906513099559991040194602169437980013921363850697398595597294907529817428835950974066187670317386117443533325130760641273832276310356566058237207628537128298358278893914927279080272902704694750688125156450034936555885357834772715002295140855950571048835336320541513829149431026582127049416985923077622667145957607817584254609936425355506941654508647347464168099187230060806643042667254616705100613025715872379166740620816655651871515696253549251713644620371674625548854902000057300814594752260637861568614662310300771351270277034629651193688673219552474348292285081073632674152369103795605305911856067975543432022880028683716167985176617592829209264542975367523355280735722038623985883885157124332658981493264856538402484725728864318726692174899472463901980094428795714638817387390334572549744035224041502972400793131881864400750521264847607545335418499544931464431126641762577339809074218715639503378715375001437262439004665141787165601526582826225313864223423629405390345607218423487629097653164205315937251288959454335121198779211103556926529280165182365578137980119215821796926446902816894782409650607864839303524837839913743788644346258206173595615040879173306613133538931971723873294500301538932996562708674746563487799600175883026570336012605154373032534845962075651401446523476452642306951406079309709889779906992860832515404163149843187865778687480563848851429460224949466319977179032115523592074475748387297164968510414491459096638508614847284141193168145581022533568544153862236552639187080820943032340527359066046642660147804226377483955789436644870548817100743682007029751351745669410204032364595160333279576506268890056253059262833655806398971551910139365390635501181271366390228550703885998767930117914244991388043767844561384680507847379707690733266034183138769432046888252704863649263588877220436819050814850370081122745328375940631393486407861167345614343258773679285982273624581086120537204606531518549866728233697041585507380776487457667205691854202723538542413482874027776174702860004127899364312920729755605734163869300769140613651389898410547452806685157258358671914148848661663011203258510336212909859777309002351010908957663959457297341495302516353296019602642709306996443654079965535102578835299936937905219800659328844698917184847982916092849078307570870605802149139016376839570761450671454015365158097096001740183596051007032695404815234266581334369990554080782924771024823474804260396008873621361111777951066886638203826300682696134660009767014888896360027771221432641682001791039296338082639695496211621568971707062200282015531292293203307331349476817955203947493414627403305245118242620241195877586749724836367285820664484923928760369992261090636084414006593762732871362538225328834042703095430819279783804681839018906125493184487586501386875593648486273033525046534333032704397600647647528682052307956260129025456524664590852461488171674298875256221089985609534875973313187244680985898395366595886470115601801710472601394043705090549951890360285537535323071859014107677165887236888287986120514626460446266270006340071646862919485242624750458870340042854612969938675702089806307922848990889317017743207621864225071260752450660474976580244749178452583506342698762718472503045200910506024993947684524377008520501946334533820547549036157506871463741452265115546272026580431784454675228023732454941958318672677385310775028892323906809571668487283876718397070925661864539761576810566211363439749186512611664462453260983953439124185765220585095289522382780676448900250125262390780367032152820564520617513247680760933712100108450333100333436621811215280461001887897106234725245533654574059678961335149912710938186315693235827037400314289335035848460354815599629104034773086360340858506650127843009576638825023659628906225861688464731044435499312463448095293491044514374458659634686791707785324445306798694939405975811202066660304471971990280572058106948095366421704346299300389733503763396323865731035057332198830996253578346443196346624927362711842739950678247767682834107318133558989085666473732390366722026816340546285210515521888405888850057252402490015817242128776305798622504498968238095393168322824275846453612976744478428026880719625731213003427088153552285403819278602558868550878005958179376220793285103706505324548221678120345269152940700972167471398669919148086130132154170494765193438488158498824958971536213523946728498484482657787661501651559472950773744976785564063807862891526609457367744357818224522215209536336362291450214096807718625217105030406362410197465485250825689614546775173816770860490741217618786640761498071817554376688344891901738465296884849040959243063993974602341857958590005051507058185113001564289186489705338999785701775390914383149588855796843224270683394866091174481460243789100140757850102649450026394438355193027884478758574358832566556719245355143161607382907460111016994971258497936484120683309668328803562486963635556694129654517202343552977112040542145553802982079286536489610390641316302914698281827837054618251976285338964545286300766334420245472167037179802856875355056598184342448947443780895483520561113242947908660175389334704687345341967730350682607278824608696465676870276761215737058435366698001530815524400836578069991620584168000496900059468273858471774595652365706498924064533278833359296336131584543844808182240167827967736201237024148529498705546185277277198857566213957249755341943351847627770587490617875775344387069510590241307479222767939882141071250162325831998337153794883771213063969611085686465786076987972444659797126338275387663843993324497283490677771314261188067023392354326357411765328513681725473833888198699669205874956940831237978612035119620940230697414172130397587253935481554023373320475645517703519718502424331068235673937819315581355623054613773721660974726936305515574813038343403770735087391110689345306849170506228486827088628513972692720508080123370639821169644330152630103507752611477802775242731011977929755683022933095778442072390474547487508569270739612085429438943356619500100101420006011579503636830535240384078724069956118752117559117226538025529718782206102852096050214099820732817678309894712268806492266258204506736320482997163409911296754303145353026271875992554615972861571888972838643027281681373581307196210055890356004478533131778475839509086913148718901508176048498751923306929697613043857435753195216886879522719464677432277147410384138790455459344999990194432249441772562205911301020338332655062405902309464070021853317670206208861067632445991007166036686468767185153646360477099967092705289469898081070254621187166031397502858345428943437179584742353114702771739143862579046481597419281604763683043098918510328004921285422661151409805766120422825264482301442513320626847538618955127900443147639790430962129944576323450366486035247601209092161301560422897921353417508073359349889118434751530977268094723684238733779599510028477596110362549223059710860298596637957221961855876715045302724145969520622673731995419802066997108958001934777169197728147372638873086423071594033553851433132193313386495948494904385951267471716751527191965416183063754762493560052813101641367074375384883009493233624612904457459600236588962684521561330749450227124948087620990271587247087616639530029737449047153293973201231191025948402016700326554209550714526923253747959419748459461829648920480138562855549479332631484013452269542843076200221577911037318011151577277817005061929483713715357602928525251646694758387681917292739752656387732737747511903831596834702245692896548540562281126546817849351250142662702000768001041864739626769776425494095159144474494502603694991080987259064217450998826273742123566742541133206377038947098914488296814629467416774088976509903966250578326968590567230564200092607846396640260272031884242236596049181095995388050469880448215269837997757183223168816352278363439760526168919382217961437433875311852535740745614845691194585021771022026918014913215162502123060977229798212610422285218152470664953641037706145811071163135146310891305043046598264206395885351160813386954820882653058823228470875455384270990988852889169028844245559848182469623827445937264753894412989740923217763994451455651932740606358245774293451295569415938538048331624815442168777071795427439928019951457456727803496744814121873487592990355372596782805173982693969719435227348761405202524331816758624678339336216178568879378144850165346640004263150433267270799211271529211730480312919550184528498582020817741625645032016735071385779992183044919166736387116369756326172751457324324609134482190517947858857880228265504454174259762491150036588502295804666057832942663568537798821870665324160391595020230139164911581333059473896683093006297551349148676041766358420019147925227264086198488384869450675651325569533232993518914443603078955585311687346476438568744974023333569162211656084689604847580113750973358948570239871940106991786643526922745616072578168648436152687419586193253527291206646583889048998252796567500193645640056579945754425075206547844695554928255300266016695992324014638314061053630397381813538504844884228909968397310614618220581621931062598875680123914279952561938275757223439031677804689358498085915107465128193171184439556959116973736464121120764709764448702643295468799020466726971474962512925479182274264420902165289380881947491923454289319773636214179455682931162186745011965625917430022968769318810408612387363664508196650861497831901915529489260390893915678257444741822697692447180736029822904156087623888033172634327893473100236090153997224590518531429364613881437095746676355352743490283954529684958381151444588188793351669878263985847716745629030545914980507790124450548065228399377715069221747448037094811675371258906339851267425355941086903942865080289699721418877897020949479751254461069560708278903155821927556168100841998176871305254095654727216976513995260866946524439595575324549477169699420154349035409319526788297522092682981582506216930479009470540128627284631485217548737321662116319725017337231930408337621470513148110763462821158226013114962026465514805550911589842801344676980989174509026329110178244923788617906436288278224032368432763537995036417184622088485122909558911691324133435260781009313222413226779999873312580452744745814130739220218879737972332021562109847509909065891077203682458837909260661068828589383829482432112989230929321733207139932968140568242362958859953636230137229118912224454354141753615308395192444461622289697163057359416669244773368944837864110222039507755424392775875841491693313298622699095146615232082920037642261337893881288044051588106755950523847880939868408005210129918298694384689414957476274194528663348880781530247522270156547438306861597997009749764549921779654046051367529596838130671855863886175088664583872027058967357060192257402311565341065190527224584591267491996080977011075558626604529162564573698402599662947090684197437893880884321638513953578287346746693555866634466532413524263256606199733709288522189288135246995044949277749191724858988651167863238029748140058806004046377094178411751555381326989929410537702411787045141907187525097473613240274149613948601565472020690621124398519612488003265986006331992200698477917967199719579605690222077855314017466752688204968939292300876052817651145581619305998778984127352370478415150031104302175138394434694147873429047760820643804979320201077569818874211594757835736305578752830360613822327010866547523764874916836210237189635634284076604817593498402000283734317701076546009900989781153392548479438772033024398833283099420224080208011066045984697067008351400474721554959823901965107290630347928850330360460452216843379465777720678688448306381553943432181937556260927855185163959326614508036151391904748360978838351604621848408676779908168342309926602588596059298031632165251817021248126526268904721861882650413967547790725824043814069362098468745605737971310712806222764205420815298724240029407186942558490619508952339033258934520075035713622146837337400988311241915078141998106336901332341219764806150206072594497648139050992946007548056413724794969646783189339574790169283137720022600251917807568613868439085492911584476940873381368392816475630009179603524389017077876907557259256274266715158842278241407148886484393204141152963383069289651779183829768344809444102129391577916743521264154240317307233011539851589695805503166116004725598172987565931732084252172404749985575971856587241792142361304026377024509980216982948416377795757882703581755520691861703426402633576329237972484448100456254680652220944678455643188009477593384003807643648248646229924963458945445091648958664496576464537192633991523302298391948927672826396699745488683445197508191344949449948402755871487311364075340264170798419261120861153873774268217571572684116716745197738092693261033068830496290415955734301189740822283726713331012170022801289528790793602647880165952072547519639923954719319581088116808560384520864370435377475904735322547932436970085079273476720509284032344015577846743401797065088401485558201226329957412306562559959190961790001068499184759607091742827852849098336739302727459737364890531579696246322729967325818581738654244692542371589730445495756756700875347214036742490235832800689632491759831652345810498637315676854398160864418598722052586174527996199625313199507590998847488908885490203309784104080799722128605001953692740129300615235220342847918025468005931869654812235553870551206847155585294739449208160929478364806904805835192310696238391471308261262481038469892136178411089915833884141838257251286108239187471789986367076947272282930826615565857124300617222997260796232610901639362546133364747395115302624783397238567421993662160714925630718745278613895022737419854800135572354108905440093943801668835199989525234644247539397895209670186846501794836746388363017102054731819424977063130511588460606070346382070318373127496748983331058632540967885807018031448318073716769751464207385932253888767110611920906929153595564176952448297748657310834388098084217853402625926915907117361396640560052903172177218178820252527523700535786701190061538665397447063286678896213315761692920115499463504392152714407037235521858054291877183822348288501002165403416880263477614915426570010955946620728860853772205983233126028765688111282977502105336901984802987578736267644107918805553073871872028607398366597768243781822494274465280739223062991124687482820008326857078351046026795643467813355576585890916955612843884591332415636928370542804956858215515611544719656882861586508420657248992848071596783826464117264983529754188196110621141665785114128627282320276222892186467653312250770087927855665645037504816757385310752553334630466538767433189433074902659129197749138753765318550621184212954532887840245512830271002797887974111469423101124591109795392859642047765182256271382462436827271775533174884160212778490910388238484854318898343437085151889790314797707621982154592673637118753389397361411315339441777399059681001613001959450546333960893842121888070998059402974083855614904508647425056456453434498989384634575347402021345601516801918626263194050116721521615700889871415670099291257285923196786210929982475518551495314215159191430203661021445118852966865547398603471815498766424552233977269066391532244622215187284890231447798984490372246979703140608726731447639040751219075968460925640029890018689947977659412774106096245399572151232016556010896590900462412023378823429319948238448604617370698176177457733989094236547187306628462159421270371495710116329331960825755734495919919528008109854940030758328110794686102277374430188125472524712155444738613332326952839565122210740580954089966416841238902653626879946423845468741748229197513440944942234381318371677639630094560236534401299874025363994868666235077318053484244853010456715455649043134461842251763733447993832520672513794575392378196114320002979664596612695680167485757993713707082413083489948576314026661078012650477551046896197572506130889576821535598109104006732788658483498784097856790424841541791722705976098195200675739968346191270767087949038614278147356627380255677988442541761653458252285649368534292663770559155232964196071161903570851042552609341148381673129638799982283893491624344859910453057955526576042746029417393056469622361639711744455943505344748390634382077092174378728990507891819597243222142518487716599854719084297762777996567060607579816008124489522115774572014687211020783912698565694913550163008008270187921258917192072172196547069158555612305826142749751524785078474042123118995427202012916123865972024390615677425786103557334893645593830210141206063150442573860713614114372898589635702583394703957866786463462022770935112652159197179803220132435629074680465684496407488018256689867345392598738016934035559686723909346176793973177041531519049008425416797289824589440407507647778535718100889097395602169365144670043085765442908106396215709699117622783688711354309711218292621727693128623753409244393181440251969222879415270419376175968891360748174791146802145390375341302699700366929562281314059032498101099888696376201778827315088992958136213526572758544936048705754729540833328954557429048043911297559642311151901489147370614327819825182712015095572859354095109239471026000982680583695218223249988632125305640844751825478286160099134327820441428416697790794104087223934641881907673718557941642126495341309802603573365503310712948700048504013502377298756791449462158168404954606111306163243507293820481815821875666037387853068447461283669376334568545258202517108596988925940335788897402591435319837946816159018717722212975591668393632231415296534220710368427052551552544124259998592349160550420391566895603223195040350164925253071010914368485197734289456116108478780229945351528775364313426001810265806454125186679466856564911870201340149292151641109179828826952077627480254041919171400945449713765783101861247246453290140152090424042569567294631185932378763320121938094053888341619333922648590982383230323685493464976432443057193600150469604267276240808801464472836877301485894444151783862559091434025531131818112915110019402081945999282849274729828762088990397702706045122334279033695119501820090413739059155938596578365928540787527279357725713597892242561500189644930311279240311160698327326048760296649013777647114904599252206893247607037603323340495668827020260606599029511853943146563822089029525197954599589881440719572462713124750897702166635402490257309079222829401283803464413294039593394301327192451702846042776009974304114056868484087108972699168177164263848658956921146923892985060771724077779691593991071651838361753355266616031298093361828305427022584229380211683217434045913349355177453802650807410415246204383240548551025989391472446397388569521293353688328545742299460468411056089546769349757714252031411645143436260272581213452496816651962201052507123639436729979872746801039525892493237193181786517300129459390625341538435426956530662475659063938132527416865490214691019524727168043256481071112976446581068148338477785234584895652697533185818796577090737548781176646598247138234674770744078802104518931831349093062043112621822957204349174855908945209544146892648124107907115466145027546209175297525636077419571295253792180988311744394319987394591604943043228712968259838656354517008749021671195161652232476846660844036565750875224052881389854815421873591891397808139582629401670381409996270811723222871628447269043341476971684792794579165779934525621332198539121205463954322752450912352139963743200264628677439439376954007651434735514042498177959799604509153424722712913652100186604250865273348245067227741195404892175178910606031639901751246838141223645417013123934431036486402411080789441448284574942372023527027709731905029492836013149530586654973425773465950865009591291671160995103900630909561347259431798558095620066640805139794706980781546170089759587401402066493267464059466387579090533352671801484140694134012270259978930754228724481154418674926235039115423834200619019145305057985608828673359381442240638471824674900272238338414952454137290284251765633074213339827787513974943666698409087723950649786723294354879361479507930885287412877381964520557629497486099527123292928264900200710426999799243062723207868896960752529124428723452998304451632259181152992046801280193585467084427712761290444884010155234029598048418818887839565779469945564691865833760191170909087197408702804166817304551507726714600813630011769870865842453285073653469347202698082534754872749721890014272568848402251084957896030982933776362420246417231458661985414213842380094934278242985907065223877937359518522123396096698405429531141393487861846676123301261988403672643041907454869506267713723124757005907756948504109878026797217607428631880020189060348587046613620849928125086767930417317656999387739366080667172062425089045668291372672038347441673277524731812581453945277164197757409431970842514032548128652040781363874319621019791499664051823349062074934792107674059849615795348586932670740736100333686189698645936028772042069635935357811280879384254380825372604383176960106876286826312392943943461190938918821101394202849882766150060866274171808210314039437207240446530616328831795077402818776844071751245040565939132780309786395924880833176947044258547156411855066153496966162527494935109148938038912599237296723756527032395787703236261719556672629866698709296082225893263734388176676647572934415170280890637731935158725150078161633389637424868750582419994668988748573559700105539509875336960284040361520177976712259725310432788652333000163274900277215803761040592900504458899936433182667794654733634160504961685190092276159386921153607924018458216333402781111234344987533239373207838601424960390446979817686914507957872126246925102896813439566268170224271499331369616276638657731484887480211481675752421311672669308122945196217185620985125122289304542082065011513666154712634591783181971259742745397393177012747528803403614538161095620927794476907913613495834183926450578596584400258650446741558406008285859254014000412573904601170076403807201250231702371572369991394880261701113960167665151406500143394871038182940377727327787356213859148579248645590891946224228908282471499719693592157640889404232857917477464120196470754469265217276345545816524426949831861026479266593500594969600058938620773846067280230102618893152710097476952134702347922887816967450103538999056454461690286212027213011215535326297739037323962238729234158812576774114028826825191160266076061835271869334806866392829116587607246499641689280183162978137394860582922735882837223274083080206051442277558373004197852973359132410079605844774955975151561751026759159840203559505410479095544384621865801273201948034512697564423638579280401620193489184823968623374443274398581802259661397989961686550416520264598453354509177061508999172616886965925556725890621865795544191419188246288125400668943116045300619470979282755499284662728423389053892218110486764487656899729871701674770050170730301872407715030472556159004132949367572944478077808377763400690830923087416762149039312344889526463645451777009362214647993351927483825117150881130838667877688081293887494123247264922620751858908971931889679491627432181136686497793226024956229951533454386106873610199309008770939344805199332933027112798016986007202912866933534381951860266416433357330352685739211984340153179873547860814278019447958045071348485715393188220399842490547495670579600771516670942027673809969603284142921910602215347876358429958134517174448820601105676676471454659713566809233899075929473296453700592464278917563211823740152500615721417603412506311268324852144384250794146412023470232832770466850722008716423012515488890481451010754477170631229591486574901125894240489245796419504156511296286654207023835543759428078466867820296420533717283467376586032430932868924371790961261404018794419707713923980813171898541551245277997902978739991978331997780762978200301243172117613244233595924914321335097086201095628560615217803257161837063852349033119023105067435504006155335027574974244297143213185633548458551869876278710692422136451798504203347261812773756528640901171158403178703837760354507883527611201398664091079070558823737567153931697300541575856502280602432895301247696592079119422571391988964228601916938366210606845744004488942732530551189918240440508889117321091270537586866452664940585496721163499031506180840860148259803498652449223092741928457634103632630403032565828375961761181037810503411959631996770193058234272415182357158275298504392348476245841459011235935164148777758087637655797014955940200918353169610007713038036455787453371312443010251999646998104465345805458743670984547787374816754783056526609332692214215927178854309643141770119701712410863626737588716608832312598255336344508564557422114022231033199808318105452086926937358273995511913414534130601024408298082813928667662057714801322680678872050305628471313414819818227806729765621300312840669241059208828773328329604327332926685091978703154487824107977545383857236037197665889714521055514513064439070060867652526777413888472194357644991496277977682393547219032427196612879314481394256967162699522226094366103479985469734150796146723055345018730018355807705281479889314841898671512267677196685011492703603374558503994204302720279794954054430299486696162660736384006983761720767624607143426300366153490874937493689883943512792132366911023780556600291369565090458646390674599715766674562032299416030350790681496723801056281916610153713381971308467871114096929397464714986833566009714981355408442768595227347954452029767561134919472184158992439023049475124997918633738197662374723640141867729932672081827148509652704966203850404912597194398759771185104427008922533153229682182139097101874972397505544179802824919075103565032371784263371754941908570264339728384135536448613230515805905998799121899005973471692645695916815916071013719781731597300522048713988673966035337606412357621619740424940788307551045615359959609781847275987862738595064758434613799738933803566433940358616888201096795540789247102488173428969859230324321389431530373654340135485913699050051447393268138895049683222469574420132104374240700219099117280802508777280338709564767523446486953295395721935853384980163279335682917859289004176667767126749296326099866673823500298045189392776000226887285586520879579964084820656654906364418602123083387570179793559830631996486641681201406057894671819307206347299913208367154365234052095441425578338264814019899056083090288185480269902681225607831401350544113790765838383479570429244239825405482651302931892416209682959602911172123332007951209863165889945081707322747005856815997018115474745749164819602352787384670750052347918897078977410878490404189960107972521180961149846565246033806624564544730142132997009291498095085826681432841642694502876975645404659958140939846826975943635243304756220723536940806361245411800387750919719250348619409589484367749019957973811091651987830175133330887016267196074546240568168862214590602605268681866346880479829802862950246877815904791344648651643951752565630486420689493485259492421147591519821930806910632401955453990044301104723206714803122362652721146764442151413664856246190585318298520381094924247405795953713445298619423210079289891097925921997743021366521165115174999680295273964565645544569772399967708015725770186713043218519057188194745279206299523873541619776638388314901260196979483366200691084246009571276573175203668905782127587396211744924238789663533677058922872671271056148156598588580268106735634636605611614528462613299964243907589119808515086554082018904858036590589152057862083964034130943084495366118972944441553451881072988062251034840782142767096079134875349513426845670447318603973039545147612451758460599714523548067568102369196037483672097310013704479109023982469855889202668858801237671537851525566441008528934216330113608568887740221197738679244024440296666495485608453047194378871293615078499755949407526476677297622142829619657425274069500202155394987641741307585745724021832122015926701715088263936774525432999074329944442915289996637609686747051697600876442563167497454990344558654729991510779125109518035218364069671016985131819567810019901426456241218794845102200560995001683484035111725264325890782927922997337312107064611658485552370295424356340980611789701414823042305513010528572382995852911653690903012889459345845087994237844793822301744646110314502968005512030498518344208692758142721116249157602522168167596485351666220012319495723655061238642852301676429715591059130998197873516261510588831192986869167502650780311135947543479662180537359594926199015494634503430342157067431691861084358271687431476520962164563460226023765914359040521242521913157302114249999895503443640093523336623200371929983726122902600816991164655832206634656719773518436455099444167757382499980676510370074512507880931118758678980924383724621493566450780793926989178645141898155433304995910499543645963535662757928716599447467743571483390911546967126981918238476798445313781427382979520215790242576208336462210374026329216477689697510526923861021538087370569968268086627600902893811423302364009002777539184781487303272535127857476547549784000220647196530617705172409241473132269130649024119215393498433068167861709516436208907280149286480673345538582082853606663449525431831425662137868843924488762090139795339745363716072087747117718845399551183316629629386555421440824181357276584780329547062038750406497132382068532221854116007376392446232915967221431031126550312674366960632289077249276716215506442460037795027525778471426102751429589250831946098324453349902879148081905120803895057934184995380239257455011638119778492121783048911701397065801859910251402875270740791184742281353174193553463030559234966625731268752753925115710705779363192072175417014367477874954137099722287547345247245786940881745936894501411381545383866615561963992825882234334547505899829883504688914070493042877093971170299598476354108612913754849481938791284981109245870560845464145530748829872114891334459005598494568527411194048075671707905444417117927408046095034631223072289395591822474637931840910179239571141353707304710041538281369926247977734218194515539679736774885645288656673935475194533621446538986553082152413391571480783294029806421845695362877248626252111469443247261435953608460844744446277183355084029921310251857092893062118439355573996335889259279235781557994692094014854006609888347883393823473378351662833248812492918178531307837009523971116507556862992076691109980958241347179370240906211487849259961561105897658679457648636994610355106287653633771519348518491597085151941135603986156185396580877106709438132803901782221259366378404047897123683921331703831167730567296543983271199011707840128955742904695902720819592551453066955390897076623009934193338896619272781971692707075684175484075047092880322036369226341965573968689471175359472967582197295793608549389105893583783379500393510954141177017785088591883318221081533684468620138283987602221108537619571540240258369101334664466479971465133439542187754829933925757448896516550285813666924114022182623890532495661109244951389827455622706948466652778819926602128096477784785028110484466118618994624056191850089312314161061690117199568786997588308627783439129932614041113391998518257696093967655595487113139310528381893019781233294644031041812034907291591613657247084939592467791288698168657977578534117319167504985745321615610362148006726486976965336242801059447714526924363828511268452993169665280973779493658622081707225442216068757601903357772152115452813371260783147723031715698226501944858171350463834585796809986775237109250329341997653301609475359333077824822389871060673890557804518057951991809647172101426256620336316026070434269167084213202094690179469703465941760225331011996865261238258705866381462438017094808961398602681911631368295269700530316641941989291609453561026510369322818459023424656371093441600659662137337792531174336840529730221442683359571421750011852496604890298708379537080828285211401852026284982590993351928241587025744053449964022542390597632008636667734011770403811081027919907649404543789062370531518927838525276896503912645583861532802282809391303269736591656152528981639387515670710266382480545317240229689076057900092489451301998257791714799990811059164224718606319177918714380240924699063581873047979016415746473878478628066127250758808880206911770181055392983365680523945523270958119306930691964230763371427810695345803299985576659033808218643343792584519420726958158670471251242781079771828272675215208724678777242568411743265390836635441387059144985660077939224536961609419455890608786860350695727005606994386169671972406804035050953749851399385803343884486472277722002522588082073971122961903844456106024029653245754969577940138142015803089705013302666502044456758396354512770438145515969431993698425472420598349931359513187466380441146925206239606724827002092061264127782816755426196159087253154802784410001985716227893817316640275928410032747024795104873130885490664284441726085359298377250046044808433262389517484667490989529706433986155616059227880871471960151520731231660607453637607808568892397719612265961568266545573423703162000108942431583378035701789702769176145191808364243243202358460021567019430936982375084442925467896216289325181189486035266010600925574260196612001877276430322094079255737091953846280707180442035230540710474671232645203802754804975753709512350261798936307201151420525949585539515594683109372889123282196419049597445143309571576008304238569048704172818320417899389003819950791915996648386178512730467335770295619539744570322651659618701375173826433000915654771325510065022038951793591862263927172472059926245476557495543526043025181563451168337203721834270095445414520693815177009477345185147690000138934299139380293220339448203203656038512995764424856467849809090884965959353146187320488005709228677568890488910483621414648468466993840331813864417461979832509117664316319089443386588978762063735418869770804222196285323724268776844782523744659377235640262017321825664102486580614216359292816482866202654817130425025702706654907029837196377622941894514732905792373293215536674810336904688717009180501860953484856524944762644126302524311634234242633965144608886040418091062815930992251790023199324558896976367178176383547675259171011594510123195196911521137671051832166605257707480606110084982535403558863516599846436589786988800051709119402199436086497257937302808416969172719711368534868353588907799931456512585543109605677744316210424328931965594994592665437652839575338340606688546566976043502057613545514809325137303750001314125522512619922717602807076653365093451266390166795824391105308846687866637644702573792079381407907834350105442806647414903914908891651932252586701541968094407368212626101881114998174959341921931703064323457821587671366255486115544643728367799614211446765070031926111082046615324569795525672735501889527766784290749316452031941328438710906724396092443242968838453552637704221496008988253272658003098075207598040341629423750781121151191208472098446549922008929563887937706056107767169672505639494630746432129316761338679705612403191482397980759413604906584485663321129467542519697910218969924446925526717188054287782104183901560462167335774229455847027224732581635397605246153571136035601531184175342161650398413919063080821907294965988449276515275598546206589582761863004510054965681226095515999512346757005605501204140639830719356001386788837272620620983399585377931922406756057571373312036679913281655311973222499118641599468601389084618122917868204851655441933567157933419727271988612996279283938169493241326660168741127007194358977111598163279581403136784271992111101866494051786220519339422384236812344569746643742669289980184456196155644906667344869476768553447853773669041679122763731836272038528178700965483982172271223432313877349836014459470945949204259225798290678514204641002658763232528686297604102365211595860991570168842266029444140046553334799784962720954234161938444017433216751843351028317944434780936440895088979050163193311393190903950619252248215750957339384425234911545885194800479519671210496782054319978767632950505045239970639740160220889753763747692566195764429166222053956858114472377182484970551011863442133633333253227375306240068760444818871548749489926498976747791764997906363345631720103670003719032296209073523239444082728630480204788161199975026361393444453460165154526048303964597687370956870104788960946826458098801487823369066655036359481131247351939683828463214039475880077762797531579689309241492451504722528079785491831777383174654703287283623477154430334683226037383769788568187653758202781807661522941913349830736799591750364053209257081744104244773133056027220738432725762830107596333787686723077040487468383268330212906668195497818834445105213531888643146724134327232660961655994027050075152895559493638854634246144130745173361468143032406097210583357194009879292738204156013773533433400507912731443454604980864734299638274053225969125773745940919861663826421310091536831315737457924411632926568683766651286799365310861217199405861223486889223654372304665459674255379864652627819807730057587018995894330688596223943084792177146770723606257605671558211592284224334516760057055379899619995344266923900451469012203704805422812756097005999730762799600491725271881455891408626108471013620375618582714601775923572839362187925248476567318331000884328457751030476665269363683826139079136435854580934201032329469304213622377397240874343939321340584535814733226892737920449753041538331871683386913611537199099436391330587422362890152912649598482091635033375819291905185935384399297338470870072756416110689578603643635657421308893326360312754960689057013152958861140591838564721921456407880594606339871945687921013317955710502946903777832592190439265894224812123057604709956332186880681910805743318814014669428040124010325854325477882152208996106450009492230506660481132913337655697103172170342460634936426080589185773106763301364563130052023272320216503354019747148984775102744358625409127633116544160637652194830786047821453746852178529435772544400911695269754932547560151935529573007512102926606195397719972287433202611437599954803907058221379626371337326179270868060269994433566367990581778862148933145034052100568335039329558295087259932881851354121637201629493385662937396117398114978659870575077278960982217628234492118777609962801398901229610696244022713194879814302453533599328416492076517965974545256642263943713257979561094942189731077138902461349268852236672776847477588587196588795167322639953376773298892401706570798632461306811383199568934166047882497525209535145145970453852513364611506782112240413085904140952640478254525830237766227983403728548665865352779728329975433291862041836497598360248488155989052319975335342735303390345382321826696362821007230701572994926579470357807213220382957753341703288479236544907584364810899725797616311252711347580641338199265890694970013255814003557220084396802288075277759428796775369002141381846636509928756876310553047138262073003516120281958258457053088378934259471735691456539734165450081254822562989429992028662218578526856066603836446180319019072254397195342904581585771816658848306034656428545681837522475258087844889765264473220142492538891475544520515592705444117507439976631656411465535143347968596172793175277305152783717279173852762157959890155373342346400040107326898236263365832139126069029922897774162652063527409095422337375534442981466301145384949886333815146502656477736755390953608426331546624545544447061303673635486092706101665212387257884847749954604106604837555018570592093384185018199379211139276414219410771549297806736719506774437758783715776873639783884248718155610581418116467113657603890183561325017514684112061867788354148481685727294342029256326165250833047118725454574665079267701930837014255155131378705253388139523999601150677808134362392375074699214468215414782972807515428982609068427843514464175100828808095831401650811849812746753921626172458789690615516383524349651840478167196880487702121485284656849216293253887877104813519015819119468303073860595101282392884232930155322859284321585387109968724227928716735434108315446176421983577745555342550044540516854214929404704294817212663544696063777449539170419465575685670944295362055806276137981353109819690058751965733991932643267335940455640183958282397325990451972842206415810153208722705725639295790890323740448297197442458335130270448405397112745539523713682637541722904954476983629397046408466626192173274028146111897142889467379952589161654980103910539214348018581441994220918833819383622611951119205456316459568779638759294519162923051643534008839932521757737200608066830391812630617556760919826903982478225863436577670349393149120246919158242309109191186776828075195548193766609909225239170099726057301879305596942933535399187024165028744394340612984331444373559306372953560858427171739638919153674964897050434120169795501465973555983751189775989271462562227220172266643443633171503237209612835191392797619968547123959528233801529874209019097196972925917043935673722831183869095396642774774678910132656069881519599935139662889537991457108909211531270584270398259837382978246577415793388987233779121742182013230870502028769241228053137103694797417154523849791566153155390190652022878355202819440479444150185802177866597213632065429953520970191109507656597093026299526313002642548501329044924065806258402446904822655012747163488686073447675391973237045413434284961801066087811556215522531447690067174773616288179960991288705208049564510170272440758256428906338184419674755971576294106659957497414786576891576487060643366897363775223893032254400761042869745476603764920443176686484645741111133777629561317645174142121604273419078646762322250204206495617279995111147085744759690950376264748789464489297125919994622771053737297568274564374031048400544294032256771958562210383005947461476923580989812947238006411081021392581637917791479058905054042467326443155447009447415048481303692392878230210563166961089299298246939924281092550051210929535288000999356741196883794534754274000186148316065963145824955369546053296798896257166060545324696350430188130416858847049320596173600945009812489490000482361070307609451834101543132622875578744940691423438875167119824417074319605988325454575453791110973968232312853950346207468775623198228150304229627378770203620872703338243354686421592450237983866539846678640243158128088416664075463004803607811940110062613411019352478776823143963017061727342286578204188317030979962687769778412363245443570466856812178260591042091646597725155623982232326466905158652213305445205318834259404357921687495171202232656729074740525360520267433290930716144569313781219266795577932728940905233723949844351759009431593712573575146499739752128785493087326254959461283922003338123902948801705356852953868654392547090739260540348288199059090677173153587214272652562043830365489297959265410869149391519379815287875006909364361543435999373762329749907989661266980812304484383371454896759719105583874937607230537579050648206563121211263317191439272517462865090984276465534398163291784383706283254825680346352321294182713357045410489549487878464044468895252810490998889335503695661526317723581162315237762931749527106581822896697582815904508446027347308364751416798720639508387728928263625646287561563923876283605665917397294175434258841318818042847773432286600022205581846407110219948892824790556332570656563404276032604497023534394222144332092007958372243588146074427268096822485569110097011751790178864864171717648233861306077465700956765011247889472403600946203521429275435658429095011919456196103756502436855676029341714580456924983228001750569329401347019456294729527846934159740868404819799777109006995032104022350804253933731405769753115956028247706672941613726693573713937856890575279172429736287674416684496687912864410258671942396711542183133540889993496003498951541148205538525624326302015349727940625476564478439822646861056943388986803081417842689954174024646355341852805392611724445855208312834081789986834239186781511812153838608916462051703644113840438846673281488236754808260746788184677356187817607057358211775085490010112807099855069543843082545232841774762106629672537684101614763029445175505466509807951784910024544773507481239394782614553558964475619314056454213996925305477724386494705859756029248939623817083509083647147556004810373126403855753426940425990814249872679088151073447380129456206387921801122123653323820071784919626784503538312791213640069923216327051444779502573180508896335253247325071007895003756325406155241118086202309355385462924149343276600486457190475109271544529797566965311849645007702276465615192249341723200102163003746276603685750304388112674360803394496317063119134160316420373246813160138631329873868952647852250806266094831978101353489647885052867509961503293683347954796330638870354851406055265118411777000380607303549799374534264036896990208386654969590590260990829640116922808474337140353212273597502620134760092551959875650225043316860764078716276688660477777583759642184546520871818448274808201849860450748985127329333047616915251718309078824211034941484135152148352821500206304428738124783245722232561719940227076507923014449278984788000363331079692876513160363057286218532373739071172830977850297791886131998589659429867482716976871190635923265979691691516894481456816866513610538386404356356568391958196524519080692112013838360200198090954264801768179357069195896157733089259501234101218812034843271865077202571113504578609013798607469475586685966766635224448247942332230274701942738978398782996029220731482663126408929912822840105366518339118140760616573949637038017606718088922436845544478868446522396856468270247382838187988258655267975511646392718842629146448701350551336177580599475421849422459073251291183174313360814922066571076114943351630983221599836046774827935027582664311773767999326577577012481538849423014045985313456689055531614908555860944163100927193639162617391523315446060495166305939574272083502664369565403486802049406818285805023563408519539284338535621580013550412718893384994977952795858952208897000620664007748053690946020497318732669470327667903757164315481999994033057822647288367696383374607192391323299709350466538635749650054745438751804310251722162823673556894671013282677047705732252210250247943826734000664788029882879974600670157493860293754477503810615153359086177075129320638766851393608735370409350179522570638879333236500615159464707184902153683096076372796355634426816321388101345310360830101916248432667101364535832136086899286481095150564725635138948821451189920596939074945195369896185299983485789461676072451937916075061531520234049072182733696288353177162304241168553420933650231994864946883202872995221640028275514811695628963553721736734221155291382101566790972593056571942914149288528271268551471576412270013774594460597607405233334681256932080534307431762257443633442275695814581103987794556281687017690072588769567657301012340020789581739686631306793298041526530549929036542803449329987713815842339891838000107528060976882832343135510062156569625477960415610010588151361816301150015101136093335668690600146317023315944633414823958426613802707675061086514509100407768315185359691835783725059096981179837135205802008709439160469222504811085428512894158378319920180469310406677263905051909961038008539308916416513809097141143944251269012146984193251017443679973823261782650931997259879621574194088018653258258915996618867054457030672475099357857148346600206316534806228655808596505407916601852706878924229294491665937237108575710173235473110368212787104748009692743444234897989142057142474515225757004544668687021184471562915699953031368766515456576972445403357595968435774440051109332128563910954697865266723460791942316467333268918851708387524425951378461838426508306711019131671710112562221769013459897117127057334177548277120412178845282116500983358222718270130205027204247010097894650725351359393811273505014232694135046703903452624514933629764834441918002552990702526173616319687795697906747131566386106148190454309823180468649123918140694182099479673338451646481152209949520555919424325486834463061224832884499797806759696309916808517199675158100382564198306462757495913460731232847343138983958424801767188643085892729561989207497509768062265142772604231304072111813071532078556981622438710161846305896655913066576276844276561680718335551607938837712781306833197681799690072634495684575731755181011094231444218753963717506437703528310831437728131027393286204592421364698223914899701963125500883307610838394922061042274094876898460631336787578090931944059169824292781459985819745971244002642866799870174027305525236951769062730260163969154758257085136882512316543573250055790189038271143706965504421430198186149660253654938049352981648938823798269566765278077862440844437565671859500943377258104046614311959052366737317588940895829239703752865807962374306504242774919707685937438823198086976666308860803336483486081101611287050457495660386545578044334511966116219616921837230611155927788459982698211867300598127940868509963170915066320502409794505388494763189065683901499411748474444199535446355514612966056337518261965978806139691138258749240336405395746463865233345882500435941636605450093468676527397847855666296397523875305132440597041419117147397873630052004993613185408689307695516839057310594990700996493931583600342640112174112776060160470565035894610467723855516841630434656520783704041232248934094953862639727803117591459989294800219669237095779973629122497211639174347981871338815789756796065590192177641962417237077083894532801583937985257484264462107633493641783170157258087514302650383824329914090625981414077246575046820678064997052065359360092733961817194766147294410396760116061923328006335862745871997424714635290214313231418963245182829180460474858741738347932952794163807283200551654836242663827942117698775745663344268024995186659143696497807790500039269383172543569067250706350123107266632407975989716991205307061028600321331017058327893599507428188292797215503023508891174739327665742022469403204510712764705599820262941470838914528173252060415041327808206176661810324923473537156090477022650395256160192924379076135705080045772295076028289305609270228460961232176504155039689795985900605592081870980020809922318173237668672761224642387299987793879464651208954945751586976015521471263149306872798579861290456731083183139737229879192911543329906148349728599136992468664493649020226465155922271417497392560968660262806226497888976266449735136603763870602351940109325892918821196050889530563330868243359038245512728298001579709195153573266964776298049784895183929101035772371454703700046504255605850863458065758936064106911758640456824448613018184427812337008762995527040240627992185416071486370873292861642324917939633210585014128715026103715351532433250094706244048317078692366439237604114195304201028589347995582049436142564795922181114132655676525766576959306143038539182385570974290730635777693414663855245193010899041999862396186149753387108901310444042828406673016703880494383295039130288024483624134646617488196136317952552284928291724053220535750511905745430617229185585728633170221939373624499309880140291816676816310869205183428192086320255560870911910394943473743161394981103195701484230484159802492913034047346735827547801479866699679684199575179710301843091377065971569592027329846009186375460989265815666822749005793385521634997726168528674459859018054241734135913982857962758264569201144915036550661390966591048387527276365257741731089075337367502655433459713886549441558428257472747404863230440776550970949277224766079575042248706126110443003424018648494387100492690185583061362604404231366035781215116408751740895903503115942391074455860389010974862611677466421569006844430075899324457958184367376294654784218608882690855619419910363718351043090309060195518718389251942032750261358721478590959147444994625912655237747649560411333509130882905511713780177551708224528573267560898005717173629241485455593903306308303366374673628733500924775887871174043024386753767747889033905978737222387381855048986802922885274168194103202043919832500346550240710046708947606540823963420991639434981646567699259652238727647893440297531917514505261820003709232078822222635082694980988190210524172451408920742934169817761701836788384121911954383741072694185783663515897411908713959733212350363133344090797079591241201450981788057199685398507806893021990878578147828166140528712355938042104330642109248366801062193716429190411724954194979402034708962192858812005167057621947247130592359273077988944062011673605661657746428340919921580657702671502700421409755152617449363479952353626213156769901502034280992343085060366759316226049529397227362572836152340426869539035016919702229497724584827334413383147222644076660535068488692260078204628161578223181268493950414129979714660655601898422809496611874534021566661514800454077505453373710703010121750569907214129924369824450397200301382960589640729806585060250953432545168859253998928407691496846716697492520831918065190864356674073089967172926838159909056963565691532151310710429370901027858308730677411272193962467272364731402404020020061524078596261298991828339256427237872066022669275394488056917478836204098528066468253852014874578842793537085889269046976699852377231328154391817653786787357661984337042746187869117926722196564547784946749884819543701246314167643700380576087324428075029894151889561685185914315027477182410741906498525484488631566436756856843671791430754946600360776018278747813471587012327808033689298837386149193288852867061954212689641078672582906839453777224961258064373236699549443546256391468088002623781905791446481090175121644592865375679364677516548428995059497548771280366566038979672716999179767132788101903392671527477811685282669017289436933367856979030320801445098661037641825499094272758456534855087760898458693867427820639227536570789541275300804944094283195349447875348510653036838056617526118040298603348437852319793660378430260002907718006051690685639851843977819092914235545785850026957469582650166061543764452395098365843264523133725619202734296573692576806932405378049585490018657739852038586326273329988742926721157487678171337835893728508748370944808949082435480031791571791097782254277800163521465143854801490696151225026946181825971508526240943124870377466110731128545847063432729474753855798394848278662628281580268558918297082357682484676999896894912263868439714237958502998158351215989409806088148799229751552864784958214707193593207834484978866796903495937930415979711190479426980962336156292988096998882628595684639852919927782373895317649667878430359238474146599600837104794322037177201253668297539098739862977546632388479201611362302541013692014583447345077913426699989636465187688200504221645322662468828131668164815206581403796742734190253206695099361957506897983724322877682065269186202173643160839610972447392806821357703274069519176850034749371449343623919926597186156411287098787679919876622034177990854274418958671712320549317483169004680871694443022205887590191660432951982648780935537022558377294112415965815127119038402270880511279176288382376464944321474652011213816536992100558432733015887599277550530756234612494169589038304808459475118318551097805660888995807255500844625764597329178047728063163771111587370189326168399652077615497481780898307662552662434581930319770659425043180922466237290736142035769056945346710582025567331303492966900145552491774315129298173528175809844914540814862473159548013433520352273328482428777124803374700344213659464452660691685842478664716780656624748863794673073818997871597098845800772482119916305460820456478576250994600954784603584150968522184699788907327812848518436626527882332341527228036238178923387851503542215938199175508043818401751007707951744027065457395653819992364908042257996193332206576665007170336328781060779952042903235306239066770788539276000094271658662726278329300784612610463595541341288815170008011143325000230876658448116798058482198819082156842705171800509019829580680321473400502998990528933333248312301094194160897182994476979157653608478812893649406235702564023194277495181312732378169076169400661039355430494620706211780203202466459170336452191108447866652367146906187087391194242501021284266236772606561585336860375083293066882492542575784189294178467054485267364538321164527616270319048266946993346923519369198595778853800362583394328656335883381448719661978458690828616202932777717899395510980845596064696112408927679154167378210537978255123761993003538990140800136959092727629971951810838365549191062899220587020673979045279268775400876856425122844927070430634065192881372994707881952944927988466611694808661691813973776963873075192386789335723358954999233039927475456224015578483902620782069354422427029035995406787691636001700954759231278751158832826992044694965359958646076771126863975067288323691247369386411029955018544920983649381432000424231351394457162899182491847536311676709479904187847780721156392301463488532485667263391047066302548696878047204095820274487325538602017742922699083733240376066768330249807565397850615681456587616416287227694243468836916502879474246461349971679642498328480493721830262036394996091592721551287119321825808970540385762547960027333928240879873071084428587106305930711108294862460882501038343188821815893130548362143583362554206380154322894423620722271040036175970432483363099413612891909323034937543952820241283778029818080575397958649666659576271722508790468930336186399540827724348766631660218429693141693729175346610323185397011941216547713385110324016627465873049845682613252145937782717096997614655954495906298483438985582371687516237009806703496199087249331581339827358997828020824529420549237082895578517583317757945958819086565426184044506525352228424125159523636033161000693755620340733278839103231780228081922900569415415087549631787771366117658704079100141421148252328033187552686778321443247818226924234165922830565331038899688529379952271346018948887542402323633309848562955290821023939906125972376462203200079187223169853332298910734846101586264761070597965930534368308007775272719767298677414086010896286645795113181338275978542527659807775557730975766265032297780292006380028772034887082674018469309480861893184390139775099101334345768492495716851113612090324831093506017784561006196242320729278714241873424916048068716239157657520935723403629697378229727005077293545220616152545627903954239606963188112899371211754507211998560594831050701419874824649108059282335587911166852367234732503419209969381500835879030542263790807022954605687063460627155373166174389464853476542659553435038172426763938628383281034790805539446289608445144745062452811367586088582974414758288868038428335647158115352128976158085171365193612251947371755517810904634677083859226763654504166035465806348438653006079570249639814645840486367756590132475120308165842356912989364755711783611427787212238638040990809424974639920515821616836218990267251256166078260298650635215045881627836360601281414791714972837041638161916416788549376530740957797944124979870959282607296937959613991551583723587037110854901812062749048049478728884732630401227520199984188195985653584636976908700612015636272723276861479119960133755076547340255371052804051452303786563519351317566553612940071530821882677223756128176544233427420620391667382740783531355457483997866361675888376074603604565303300648834936896174149013319483441172612470934610136445729174513683466771790227050778517766155222528679696912335419353723738231957525734386366988512283555755483282259251779049642162696078422509676606189367163549364399197635814634472422590760339779263640472421146400400758509709621123494159666664623304026978794752031345773011348497259446303896509360237955204957940177504982110927873005758155033167237742778283020981497727119164710042204807642426520628025230618466724128040669858266416657720644832425568785705236010460861287854698068232039786553081946285903969860827354264684120291401276426925426657721518963583661705375204499166708671247785771765035108572301594617868654509021143733230568123275574541217783654480390338149564309606749653203996341770626662749924605254487370620734456311156315015791071240398120676163006898747430629209452384627064195663019559226284584112005283436275644876065873770998007059160280374872998743748107886881183269632859660784683063528040618819673133463097608806287201995382437969014979411877018367764924064253985048048992823242365107288563417553068647787396389888637597572746522553529840635112721102413851670664984644920192740456995735206661260586191688609848176442934083204351112349564573479458947939331547039451305967633960212650207015602692932188648368895670278033776558747281260971367782863468099460360059449260291724733993856667049550610366784374390158166016089949906851363133119346018042950035870462889736100121665708374699771314791988644757018852115142443296432219398529042474257168052323928200192705896583730717071151168651540527762207418277423704075181222519976750874654393415185541257333841842506380468367849078466992862940432348944717385103866740313733350393002674143439188346783306039888831727585147593538408832492124116379061070598895983302916705609936429430414761950931017933054963472724803516640201339723158616054415204886552722265139115134712481396179281406329445546676614527432266711933072691083451261154481959417378526352730314709735191678282319366054186174804338121459273129949716426130833879634219049737786750348902175898588610484058899178497384867760694570567316474792206814054110671356052960760226023735601363109096082771270444677873069729354251622059462747701205879998304943016774975603357558513933300932210073301116974026188904676352987856778423974385136238270977878727337840575069440775480157791624948137095236409561997864974887685815668213809349576812153054961733010972489860811034958150854792180364417941665692935403909938639871881016237349761515368142469331674311491764783112770136140696881844588177325195912305994327984987540681721276145970044164552960516028442491187238640855831105831217951349671025949564673304502110715143108400144372957969669379638862470457965706910060498510706816383351815413535402298528562459507322794290005357373650921647484751660509564221542784592008077803122242034574208755909349912429591671439646346218067669967008572117971804023065036318490056397772723921850022338524473503971029615291445861154058015543014604267273082297834845184889452413365086228167579289342752056387150048960845305786534489748411764491125815827860968698727979672299426150663420344065262462354767160382968670608867006847776366923946721509636394514138203613133332740080327873175437998027869143195453475585640010689972634406359199708934383286641068082042223852558148484751504043640877123134042516575826525147977433907837564495644683895111438746090745220336728345103858972419607902943780084663432488241244410728693248664306593428978160379347568256654497939181381490841551546101149344571487658133129811849461642022778378230987667551325786279955343418062806384328901787109718770306728604240377534844855998081285147741928361861554143489435707370983640893532775075479071920458723876130664694402477168514448605255519930121538219575663830185255948684793248671309412750602097072433745273663240503498332369585128815993296931432443176141013383338601156654404040906727111660207382129978027800180251086466950177654634473811480737894748124886208638163566702888065825797557287073303479877176367403591506646144123881797627342960835588131536987750913498083546338187847846157188883597170574573423499863823747501667657935131720274551993117736355208544675614117272996308592256009259214019065291461300554044501994754653469047973899232728977383315581241073273341854173315133765500663967982118865409335584264662976518786480864708278840818706085085156986683526027278356620927387885733488416466811459265282976729460681449558913619457143824871544874238018693876961851364822242345731673072681653985611907566558524453166691866026744932963337764611588871603916459092021216626412309600188812275653841552635847878490942440158726263964168824844540690903992059269798295746008085059969289775230554718643967974824014271203195618166418654293591291430317575851098650186972359455296891168892828698650399977699416429156512376968034829358598996780925554935660381282655044641117464134085120208857514861194582091011780636704156092902309088290052902372619355213236043143722813207190281424508138760489418887856581317800225171615026785148114031005745591037878074257130728632492704164634221861272647598826065055941418225876914036028841189837263535652043500303276585362291205271276053424946874933520841096365715985680381197168841600176021882057012598901145091776544786272785988553413029290810394089931842605552568274038027279998458596928692982416578580703547527122487931577672261970904804516671975631222197839348942527190699993661661749030927538832480432754094896092124564166256220303225117082706217703947406016487063319303249530844883485864651375603089384921031322440787002328396670335534251761655052762192236891677775379806621776232788897134471680555388045615517486730480358480683476971194325641134234445917663102398589660977751829178339059673411932512145967212493548423898233945683603232475915526600399422259790514047396484648103912679598523822668538556480365384386254642596958330600916046768079502373320120804720365908129212132860207307109875517044604282648068672214619561879998516307940392071890040928074330074194705190536367556575594575699893651964669051094270639865982874141928755295703632131667918005361470244508215338675379895235982832519556348319323375914682846333885736798709642020500493876598344673968985374919766781518426464540800851357476782679736128729243063238583713865062185355122867677196425959598058355287428275221294607621505297366431955467464652819256498031074407215238011933634552804008108297246069777701479146852009627600612419198542605289700893896140126636725098533505332014236560710195790943244484497328352506664016998610531965987684450085635009814932634548703271578115523529014965072487669961226277965231515025986202877968128774579060343203892621772694856131526043594241864617823573806924753301532707335209256831618322845024858103524579690700887285153517114566589037899198145199273150445676766571184086031119564461880139403676499763421550900298168538942104236906030322310325414344710187876857293627987036099919797294505849951727359095521668435887774622410353960276013765650830684644572877064355151039688825150640993823575177480335156293054163692836967138829625310987716361156974870103687330742908491302685996278696575898448851655283532247570391456896590893238043338903437111416517575664072382092154982179837260075193836068060717812737214601931467144307713732920537871067528022352190418441955542616094912309840968469045477431265314457050013530104581864951881322123555823787508385098227149019448833262139584771436040737375354621734396356712441417532899189420715516218595350249591025287904240078258958528202372244966996297888567312696814971696345134939975551847675343388545389445822698025273936731192377472552818866666896894622485662868970164181452073706899630896091933610573870608177598031421449173724945581001962178692133781309381656118423518698303376666153796429022202739847514846449208959278837634718384005634686046874951972299833111250864425870643001040132387969187932395792406601255633101634084857702260133129812103140183611707666140568428407403627247531418836298325740571622201133428109886097406621241615562146061572826923716955922240149357879246943652374381288887545149949315351020943383683202785912121473599289985016856296523756379383779926767588357877799791583964256570708294553989372695653674639201958359833394942589526051753904208960020301865154494268718894157929322458917855556171115617533264757141584376040290732187208024510638049147940482047603704359765810972920464884752791643892627569933553009426714916806632675040283309366146752076702849050528091279972108850509780976874861938534701698480343476115706286897743583876203144900209568158781702279690793336206393599832396955527311830678452509447610557428390324749059129245013770660783007501643516851490834152249243501067093878548593556281114316322636974037705479273292612150796856785229569882399848136640218577579559732072281800526289346875112185305174746618300509658015440271601506011039691810745293748166159544434673739735606500374306358939705332604096135455770827929627371505859397972212586841946420807944386476711580222660308229824658241140231046915580395354872376247293239188227433199068362577108719023714791515516883242586809761542423140427239208477654229176443317565900488418108086094787209769399865179002112466209004841208624356406616023472279161241615727141260869280156322010183389408503946583261600386574474015151881376581779691796618062648481748319050641724687297552643802548904382690923354147995718800368907183128219528379210656006254224316091133480338970566416756763385745648590384895975890587373687490493411183878555421015113646414004297722756060389426963259264025042323980659302411031531964038024551076333891796768133883177833026819410381933768714156845855779382358787799479804189088144324244424618076626001289003323566651679499894156657083372276169166520825335826308973269917020357225446841332638993779950813210202871789560147404568489643428804260933150814491732595464050327554345510986848850383893948409112088945682477875352524313229851321804478008128320457040766106573280933504872136551921793913500426299868948119269893209054560460131417712024462307817912866770970235107422894746954137446491843993054067820235355604814305785607800914650324496790375085141019491058593046849206180049502462781741795925751665761182725009877442328107594951118509165162366995431511350689498701082803406834875548500623527633777767189044274606771435185819448561224049609213346256038335629062451267386768597521286852338357361798878482426690347442814007620055369230451442370682141162180865867491584532382396979143678576859115872975506624654628659975222258035675547020475036506185066810585136472754478130309144736610939447341730872360437401411346877780878828219488095284418533300133633370411338606018405798736412299172670784325408660009163430986610255085629815900190216791507698959159043623203825490551109230091207837488180981063596609321251097885877352516961456434698008951256350653238254449357505895689272503637344455332885375623925824449833006625846297340845341170065639676085068339807537167383498401002595217724681687858771387845250366407465166851275920524033744539194211614746103520960438828371944674105664785365623946565662885613877860848577995120109824493972093716076691191330142424037868093551980012675391337734944219451372696630027981241760153291240913052457145902973985326314089871595075223952397518558057439560686285312116337018971815902994343230110056225468579909222161781222443886186523440619128442590809609591728596565086960300079716070984539437386518777586389865851273304417473200463078699940656407090145926010632168425123041551657060179264340684232994806088429578341554205223869475073671162197578506805399217414811168664850285408947480268065109066680829760912897296271226710299270121967864217894671582744062234173694597743485663790744091268725684629099406664673332238711797006799303003636100757940642498566180557692479334078808763792520483009854186838158142029454258791964887171049960865120497763430971630056420217296643830028788802738600616713949775532071403547476166205354459641550835624737109682789982148594015329807361735697533142672142396889224609990252887028514537321653977127238594521810189285243942677432734528262736397105405642084735782043220315667390863414035894804996627958031926451294882486021099297113668745751425936797235507260437045034835062605613264201931026723849985132755054823043398886025129513489211203525402685621680418231287087514018656799402791623208996429937577977634933093969373602036715322770245343404808006625215576523007504410751968233429857997269343317018731765528253202944501376539467238482905468291220522314633428959369973693003526277508302313454089458275838784219324107850113314424013420042086999743752440524908591662878426176655762102591774986602071927131430193330324323112147916742008986575788777070066552742872517149984095422585324999289041266239070032594166318966619956187316499507814196312259097665899324846338562174800341975416764091254953839465889387970635066055682039920615964386059379937031433881991324452387843534753980975045176824829799849052976254798100614115542734273760137498579603890209907121629051507441745988998672132336802252002864397865928864596581084605325011810951375386468016053048318475373036973803235697633174122045921828680825527556407693110651385603010665239372443756212218102887976307823910942983699031655104431463404198576674752734053340612912780650898459707685648126515102952533229192019207516959193816081053657349456671463423371083970561894953834477905890515943751922352236801859628848195852889654811271696733051904852577559550340070760226064785621891588078659625441577804231185918472454922067316878830911119790802104059279481995760480958687998712280450876988807430938044885540594994094775322097054433928383010128361915930700851815781941573968100794204117141959769561189093103123064301398465926124780036157147456283859636312187267822662800425366255696920584024657744297221757692321265601527750933482141662283103621831209622077607079342848701716169236026142437667029541681648309482905342545762657206227284744724349485892352430232364265266784161156107084848438770909206841968008559777049232791505604016710281640140995701124606539718423418447371562931781452705016443059967232278693915014626209263250596394458214829033651467201117013137472586464797320340970593538046824140415832350266137399296611726279420275448904101843824277551252116088729242577726088340649693805421288471557849228480797088548363009742899171334060048448423678098751994983679772126237426551813985025535403402297653541130783901885307434668877418450556429177051013427570351452826192762138274786052497803716221368688825957026849220909067779771792280244225462242228076126601853725744331097586122790828172085305961515298524706532502402334851546925140089243097887329328516108386048325165982364359775988746551337990709323956701315950403434063037666717025605051888241738222563653956936547587622864031123047829046698611504025664150664417233048865690422363960321581968396206731540438760113419643145458296817919797818626376487562427869315733706663691289959028414496151142668954775311837744458597900378421252695810392753012585189447509125336573385460792425737309581143955115449094114433138063253078231507394278128513425953041422844837443350225653049083541822268001076278997103463545157944077200984063639675257791243286321920844784969514021312194482062396663929299367590261456964608553500155170791909537139290129702440689996440108917026338523216542827901522686897668326891391442600896652277400423667095154188782547976392973411167388896705458568637668055147992509253121309991997856455660019275263394019516820466289227246646897808298656713067954905460634084730189763854135699567165106130183375272505974021010653263026730490578833966250443212606404232376129653900683141967318379710570110498990206182045277779608622860219144205361811375873655506018849932684018622456123271566071361340885045279904201352867769173577831318903013752698373187824402115401329020362700133930936391188803135454909146568491901388986226312477043664038600513117880809005079521705912790789659882355307947147328611478153163041928542073607741682553426321346907266507522829704428221796175106036315080775364593919038585457831651857355852007913581194114443422229850410100329008933104596352834332690052127477258310670483618038643019674636777173263398959392262303269840176726156763000586419079843861966529478987752476810601415068351058967989852847048972500322434652503769126262157734139602915655326238189670702143252050553359546365576769663373927111693748929482970017114331742944367080834142084962132721381334200067808202926469683918183224780812403451881222697209039230391467694089757132899013780275832927824721492481099781381609875949748712919403834592391020024790373176632787670855148470284180863096109692921569442190427842998059282530419291372794352269099634844932851237660272437567034252875099302527129165618728341656531460819520623015376220590898231331174087631103216548723658616498841481509118068916486233890894682143303061611148118254243275295571640303560625387007587696059074158823562687910661186378268551524489645305481045619783527027049895488560330260484351545289917983284012728598985730886712082634051178216490500324779914965143222667794034525976763262819772512877625422841779613404849995392648466437616278883491837025347185935979361954564003364788249534655347730069930726908653307358953223059454990922602524323713599134428132288741169600308644812611973718480999578725947993710283770629580156512018655899885324410435667421168238727675334910310565713667688319651363427802317767684084471463363208197215067525737724954359510264496312973595753881700609223987252443681425201516489503655843693613761642250127120735328448163746765668232588215995611556419752213702832874106734092615361357404336111557749847635632199709312982593253734268633154844576730111366864230600830572541679019257293426019285858739212653849861320909502160656291205205692182066900824265625914059650253659631511669179180348853003570760721897966679667850768685720687123297169782340948551030501906140913058599621900018166843484442085841174636309579052876869420675705028060785638791559773304926821536300402527441449629898821591383215476553740684111379731070011535881057663374180826281928619267299436737095942771963138785260669655040994486743677879549333648393992591356087684911107137058717833042937436631987132151113126450893918940602743258562912677810124016293487865979056441105555720296581510466660920489896008647819498788209195393346224271967120831061101363923752994311414232651775953942090214728608047048930216534024643014035292796255729543806741225216540905202076089603988582249314263461516366937576301900568446792337755969525005046901002156186509993927973259877755775736957509616960227345981423444113986617872744209943088988831304773593127876020620476779611609919470754746153346035794522754263494302624427697250818185524161461310227884468124179952979819454476703516626276188488108314089080862816037368657475841541709275609351512899060065768319062243778649564576075798752026542954416731878514600512724199547867595473046890849031578644878656306138858245707827381443785600284268742598057042136428669561111791993207485073598714684235591870010046403379509113280997783292420518109643838794697748608263426789652405582733041401027375288539487942120074562883875771841403820966733155553374723846544605607501327364512772176622283405393016748807733294911741031453730400982991629875331684911279116647479096033108400610987747690685238165820027906009457795794228054447620659156566982291694623613005720154854640558687968943998988778475691641676824066770049515080551730286438380815816260520786238138642861225861848177582702109442960730614994411127707566102676219293860609052972403520722323232651853055035037782236321405333265506450635470245219112802813256895852996675295286243349133613871048109862576779660530551610991280728510834008639341286680984009776354748960624290584159443540183477276270379177759018869484730252424396622806009813134568015917467530441507568349796949173801310124450149480839941200650889116591817449102105929541602962104922076824515123435426996566465867691698346932791308565259432517926076485273097396634464596964200078322321833580647138132480575431117063061078748399755512856627495462130896644600893549733203989490301194246855885784218077548781927950594266503999479444979192838123288558375210592017513550030239095979982236631328354181386435269347715835860915018062462860126586480884576979071118933907201415907765243971071353643408948707356203948490503655015585125653442870584027084285251856233059674300284392525006065147788127851610150256681626937349686156537800159160970058748652237631170445156549463110717984324949465349842686250028544683093100850599395105124346561267533880658113510311080785033689186414541243577527796400602198347677874269086795517342140845098184808983248183389683094695612524458727358114705211978486077614136487612669096226781118775648185251984077349042953801610131634221756337390648335736169101255911852908558047376835457631982873276694996711196000936602950978353324679638589657660045198412896018942137580886732351198492366325096684680089209250909029001848953755710985421303898270307620053239729295504152622857110267673552553187093435801680319043562871743045933021528680308485476719469345546652813214173059203302977332951618741489625202216905246945700690267369423378954500545534531753869925053005157863015652586498006738744491284901688966627118554668053126091468123362643634246237632000805897574030440288562979492951410756923746940087427380715728612553352096214203912192307426971364486362029360171249161287997134260157591329105729428686719792119394477999148134403288825198153236183393894327900373822208435595165960572024993195998654912094046688018063650659511025625389193738502733269963303981990402900982434395570913926102966131888188803234327221014917429644403851814783673135143306511876722726311719239864002664968846116357938044491536197077779173247014476581977183544089464070142629855148227417511116251637742617909807006255752895577018322722903135099480076742111252968938958526143310503727180015510071695133868588489004717076536799559993605666271485579352009358503822836237283095676489596274956118975658042917607054020226367256796462274054133845352003061545282045990788223408048637191711371088819936299187300609116316413949212242842350081127977712294773270884963617656983390710810814189081850391810574784634434219747225020938504868479358571849419361664961500291832139750399352106108536003309264691264883475575128325446561297702206550974892266000082844887941756737881520190215851002289012584148429112161590799115256005846019343355317161429841054197538728486387993856905537217434276820155335311395118012598188671330306188001291052821268203795225273680602735497939217494264945896832994348759665373991517300486942236519589705755911220230528373561339003615770680359138569050782016060821999816255071098667005263401239279221501338542963958937686921197286728601807067926388955324839202095069153750485756821326975457579404355814957828354488161659986686274108613102252655517321645383827695952087670011344570546213656670401326136806422317872613967581276873998697689094589158102757386770080919548427277074630797818961744736231923502891970349353864809588606433673366866145003187623635686282285746384384666007040471734897357543979557647176857169259243437911304171999515869562903045021932846779802450121728648463547381542436168711522739773580426687977977604474009947340943574637030723907851911116560366161485239511252841759483571149785577260393693989952142569303834004020933073278254713993297874030799224315000793196376925302987300878428964394535440081938805269152519322647638704693249069252720522906426026670133948572379098376649483103679132628729128420725591592545569119865975254073647234509920143555830644067726735381045079666005975928136851344169934616848777396340067296231653648138789572852455418684671549895303130142619258096083516177265161526492144869478691452245545545604414533951806939649691350219693913869957061162138558107291583700481379496983292123351380014215191324608598760123499285483467944407433795548100574774473630909278196196672123973640326786191553810515939835084642292202270388840786169346163738395870628245118485853567866903397148874007500113494054393756603368041676198862023908598659021036024213727236288789327845052748538381347059241375432045205217344390958996820448746534100623902070207724259340671157695250231517883657600605277821461782758341764245759369831543138374847534773877477815822134054132976492354768403189967138301862980836787977214944178791508160845951862858696713157441800778646111310936846708428832315534954447760347049904546310301998239751341249238505280631634365213353368556961600264438590240106239320889970374287605478563514687505680354266287390900069013647797736763245325282100549831712417212629131750217831094712429645372349210363709619249872532604859966037127715858504822337422934082051711955713293403233262911027885887313897355928442426339334754985187158982357130385018770114909881652747340804972112708755210206943307769076063606218323192499677491618206568923750626255236450513561262373847339045768534339368325636418947387613771077093734918547576316849221376744821804381892564930976267022022709162329567214353972051044047786463332780345432996765525000683055179215766175493682335558189165171983254350687713058068454519849168497625858110827208191731602509542192944554227841194462719411027167072913766781491983975425627568516424475420249311494619578897100084699037141553899002791803115971018567606524845834310939861001231894565454820678478898517935759639229734407094419145527609484729304872602963634265123922067702155927100022863489508823649314644587349333314755950381402840963992901139665160048903878551026415598879899508075091848093034927897108205347574754868662715963606174458962271397501953330633154164988468473610134956760545049272152888631624697593218445035448857232915184311758713203333453874831062893515268512012413497492513788404394309274267394215428962577269015303695440682272160813502656055043406770227227451662470335422779208152348856243661265058764749309130886111998031118662676586815754045579368090344689194415416041032906077457412141167920985978357948296024419531550017494572983551110596852746466755076676005503354008200007787740849440221207703449284410170890034460842833857997372453498708838586180067866243601540325628968514358666281524301711107686003285322959292662225258179204765847905176903871151687063273433236691604645050884287388231994759744065516236836742624198688861092741911708407431930495476008801763105863213770236011547771877902502637424985441296594353462580728408675547094108662314983182535634814352432791273118243541124953896610898860167693167824926433009384574496066128538931321572397496267266499136645833768267956383373670347956062811186289561705935599805689472939073277124243455908197839994648242484161600623762494399268763939530965614793519664178223621266861840788932720937719435858830036102431203488825895415179056802031071910991235401476157228013615660091359082675541120880514961941177337405281260969533777931867880408848322167498380282005722712353729895036000101208041445771909453017889140606804870529459596017838374207371511077401797656443494723844488951195904820620220529064163212817470823734285870782271560117364164475859189520352687938425005314328617408457066767531293381109673480584875215382336227101716264321807662187978182019006827843907799792895586906180961079195963258550978143024704117636314730153026377551017937563594723884085391745648339664388727360383716429266660017300016036210222561358112998787464655823706709073441457879600411803880007702837462999347899597659848856824593559673129033225469168826855020124685854630199084995400852953642685065357253232012875978106624686950583307673310950248562157168926671659743824092671699177350377355983354144992006545001180664668866356702186148658075829771978468685479004107247546920611127910402031671928263416974440750419147503830692826425088077175009187154462698192761918580704235497131705679922216404913495663829767069941279672039030393001530497192401479956965349937449102422094498974567512235637963216164716984112000465396545023215401822007721183366947889633848146228185925735088265134722299918454155752380390762864035088896075800067762499581563718705949704589657561183731351698277568847358797080910298540747869838657279586193114705333195761422007162606792662219254946857176706018542848586455493922163710116133472125175184306909749761277443525439567443384080039298924106701352417285567855655770682770148473225000282698724893030482670847928828098454268919246639758445661601190138094787947777012061394368388422287893764693074794344256899932725998195525886966764445494514329736894594808901000139634617651368363737370447837339394749186134498974313989179934474849257614125833976233371312316539244397323431044930139346216161188593229392383215493241644989475712077911481355311804670960841593305645493163506720075405816780793845979916716889130596285031837768784822896944792754269056883432597606334993902934424110069207468334899900386188816747467770071668756774862270520777383497683689373987874940615516239402343624672448577475761315336413124544825310867914321421056892469865205352536476140734256274675881533987780397817693795920495349955763775148282249861564168599305099052262557577390092893686846809704380370405209120101901301766581210750975749849630152083151888504826921046136458054007098232316976448193313199619907347199023401817367316855458723481100134471317918163362635503662172032850145862926726209456494252534832054816557920065842883721966765859541442239745654411794376448048091917633807344237521124622804613986489309880821565281242032067681816443178570445759028736617987119674778530780604215061224218898102127653015717177024700265274251468746537477811788055270610510376204445968230792036291519306550930567009315198189988430268031645841512859069760230682185310395109471394799597394599690074109616551574282348524784380104288325445311607558992358841667026622612804060569623403669014341476679306548588135739092456213079379328243943350175809259939201795425321108949175903273327339685128352482720644711044785934066255845013273499595380524763737899239840002420019985612616162576745553782420491377766053201586131045526644286643112870776798800117772973860002016603056449287804986781067952834281454833783132972047088677418015551300707585874900563251599303614065976891685863816076565940709541014134712121977134406131263768591776149552001742268892050289133651350307700900072784436399259735801659415496871358431666878293222924026476042517655935202508275308138398531496592242657174245128300772702527297487355138804929848375714567569813394438585288461182894937135360616905137620005526492411986830331573923333722335671319530918058745307143531729562657975298277285196044310178671730383515313208601097596699349127563542836828654282480601485785118946792403460321572587722297639885889397667573681879381647915847190879787018057039909030437787324829115676313885833390201589686500916732306108814050504803737389823003684897755530074518176057765351350602714971483091016687515096557968937693500125716762244479467267540461805566009997936553297254367945013300164755509642842013318777815689318455562812299595869227829013543704631155179404684435866567778389741708154356837251285336661357473776486311503015842596019174284778040598828028253448219070660487686088785806657003401206309486888697728484590003443534098486400177810492169372239749772555284034591230569914343569556581415603019834849540146926969848626171786042887419822498903701757390396931680538704219308091001486801552549501830932630064267907082737819863652998685611170704570966406605880262858709875133075709930586392035889139224733911090066537394051618116673876184280900865015313691224508563476205310634280473972440847964053386596851810823661393992295424939001047540213771976003949099558532756119622049797815555701194055074282285745266215028472543245152597253248215093692599738845790673571527638218466625934374960938575314674290971320310468043263331071260759645821002964724470820944751862787686946670490254456676739385596081389593244376000653160013281966610635628539591070115054028173257811682056823842704812395602071958858181070827309241273220562976792060484879104412648741109324071332505826971445951608857821660543507408745283209565798523317490135454459863899818899196822694090581455829031319420528916618218122469109586849322144300038240007267727158196666366495995403440049638177790819675785795128912825855356332108728498587568917747364740068123036606767567744976141609066860811677661468801767353005346158597956736507145409984695232560245824606972259929395221874413699304084529022280903216105722637294503976262697859813739111668082135135427126388872174191243712337236984670005594661568368036524647656847020167067013020233809285881425349543870844731056770321522404979824359654745929445867720613194212780762327299098121095343311849204145513187000340051905995388699984228342944974829237913256466753479533529823352126382675254127245180132639780770920711500170925671419086377831253690243557786449052180350291681134856893879424642180685271389020872580550137877263014142837586450152708398886669210728163343836082822675865739417179185997566399135307411519639408544745954821786975510288663297798929805591069207516895134725760265274387006084360141007149450256150336525337093066667281017355296460568763546224448983610497304969071261555318273577645297171237501493661044641499517895127779781410684730694108153170913371530996397077452716287433901145784130794926576048693115722153300325675530185840651405810019953119170070846241947915090176719291980755016216144607127814100730127379985144338099462260388538400446462213674829036245417825138377239630039457185231878462523813038190574377550296243312212167256525655504208269511072016247357776675196578580289787730335341211991756923462286541082019343849862173732106138955433515852260108628373370408511407236767951633794003903657039889260375822589903921051783256193430522485656852398513456826833649232998144524656372330582985429177728964782537532013036618490792867129476371461727202125489301101091709758346755086044204449052255038050725444873876837303429725959413808446324748107741727941660043193029454000582009802953320877571192786931146172035335425914066381497164370276877030679447139146694834793583343678132516080495823666937588682181060514250256365367393422501466491658643550797203740888433210927989413471369209097956625336672818920557526910412819024891226769353444281422410721692902197276305568495756788673236205660458814692346608924618345927532671122133728378078271782241124056027697932946000398445044811152557011400834314044990309625885562432253071051904733178814269833178226350993869661051172954339748085727929705208795787691238682084558640313492465033619056701113809630749914271794950692791342426793705799163660105310438437278110446665562203522824952325090703662180736692709467454085163141146276129588867037719455540157166861116275486411778886912804534793167305736418032787825011765738911845193860955235328091744620141228952761223824518984828264175184309916769183889642265576929116000816096267968616993098257150838465113110402776553716063696663937381607824437803029751683121886688530857343011146103477712312714161021544654551076143408307696540062100833894544161870029132702562030801095424351148995766050110972420005807808249087601190599589099656466677494969509305513349782151716865211506874563182257266413638045332400085219087964720716128984726159086622762897635726143367761897033569356719231379226636426646532718304979961629150229683543947633799237568354500374838408349765889879049650102932273321800101653758399804709189062279539495080728123511227489388321825796082312419230845755119675867465253476479914074588179086232585000568141416493465218278843470686189074791228344969875420389408743440114365085596369231040299258498141806715023984114374996213723827105647916882303347628553469722892742355349318628253679152410395206111957988803804522873759105485459034780500129036121221281807358157548828921240478314891716762428819716643030588699834792779539453937567853582281164257096230905854479402636178686527905904629728077263793844432698560615798073818139883757044990791607922059178046029652352173982472115915396774551900510623405050434343312476361637339343535369887855979226900026570292689647704619591691130162530843315608741047808208691812919177995689096070182444144619701283082778757196177474715888701471469544813241386255588355301731508447405693784981515649247784997443661853089527829843030896135314239385261390878086994826402677560684215170874759788195174079673674041461180307449480026367758213758767670834381819214769022314079318316528985358674655318530157114536877848995685080210801914591499769725549126474939613712569343172632931224289640641883713962649185357068126193752228785458316658284262733855850959276728001307421483878769305489566363923061003382601586050008386451244983120026204580820425532929760159915512927143001497474206870545299692576004360461158305202357946094558986338544160333525356493073684027517872090495381502729274280013685517577328350761862350679901804145350381363756716752165947120981409898177063888102882330554883963320870471838120212483674906322114801706930309352607754746187758431100922274639278406778601570650702064405501226254876520471591286629031512955620246603289661283964386052646530503307868578192999652706528732654025758906331475285389958161815543360023801292155079797971038144056434475592239821527222041039767537323058029348372439529252740440474103611633238459424424921974493645835342363123529404524110572270272067091823899292407559726550583328685985768920172460206253208498517533510957884043300529109915107984395890745606157975692672908413074882811095738591576725712906955659376713575338395394446564268940323041864740530608957957158044844094586572174904220112901815101071567943229531583519471320382518222391067149895856982770783600200970025199968096868764413315707422206567651290003188677450251104695334691869120010054732898627306423611521606650023499826781922653641121507247440104614777907340166580188338711382213921915238136066104129547543374489645179017016476691921897336117248873629159212239823499455712104890355719763592772536039278121178032248374379495876959196637825191366312602611397824943989593534189080788213440680126092105198417278078048338070241207939375497032149326804077693261517922151781888398115148776545567807375514159799033274150447051516396784774455302256541821182643465142607512120974008739283291473894529588640051766592357041891850953309098924162465741589710644402817026259478142743374113165621552207119441277615302904221703808873770271003342116399143528315748073937787027467782160784357268647659276577584210105601674575732983342776157976152775330558054580233147153057637460123319049781407730862166643549974124833355360250909227523701862662865542100791261984758727204489330324279641366399503665559453052787780018645680571913372580842632932993703842558825799040725616459869509800925951934800232411066844289295323198060775177981171211895834933837961745122939330882406563580248867096376887773279916985077796747681787609030991376768440239858544177412618233860583760750457046697969519419270052575550597200821368322917013291312211424634754969307410391070562156424313144244422028045447788155872194936139318090518947302794831011700389337819775129194858748316346975774127494162656063710719606791042000797600343785557800483481887534711081856133824389576472641491227172199404353809560412431296561533516590582384495918910445125381959002988626202400925745068880495059624614691456753504717059844582301471745457898911667456050601750924242361993566107212277275613236767919027954253875096592292084293119088786321979898601025202857900438247616238425472437087471817573310515578901801889265720636266151608558564325973121640367802332203346745471224108615835518641221887748633015949014661705594168997618787942097804964001752532231290718314097003640627166764248262449867847699188541537572132341586545424752848103846666925682144943551765767531418007969242932728822961738164562938905422208836272574777311967443699941931215245330825159298080101278406308527692639342852886064249432263833987829541857927168037651531193874128815822880369876836938806630695014521606724241696915904509214454161134819694853108343117224533741003183400135971599418730248615994438987053527476112614721426591889227052995622615382319389639340733059500434015657367750944574671922155782199697790846489766126188510280082649477475015209262294166236373431089936791640703902512329229947690098947350754328428994677432069377688604866074280747678885909308846078914191014234226653584211895674631628809913649095553666242581094462254744724764812601501054709199819449214371018384435199489253089885413884713114770950799578299939934962242871715309200144852572937932735018302021701539870780027129403319613789397564022837803903940583445985001022000594634386568833345145734687904588769573719853865452649535786659751227407067807918612204888707841993742817679588444405206411342660926749519450619139034650526334236062461571299199162635783773095671071280271343506400086597640904927384279651922453499698917834856276958354950676185206448693827898083328114360435991787963098926232409107795606394070243189118564116639498170935902501801104644584379117606162122731820228371629916437149032915152629886408953366991200385036481985244380091293251011836111387690374510617996899091535793069214897425368924201181409357278150865256362259985013499080595485651236018063494894393488173066309118623328547530150938219297268044267384449985316738433443265573032347050172002752021110956654427571149239778532892623860525173169718477931730063846498111479194288110371244581172702004674096253700365865790455378673510027738503440629159491839767927489762244257546546262683363265032061630770868873306056502208159689360223531951443538516750614067841236401779576892011350400491568683126412919751596476960064905857268764058542553283448923114480107667726008023970472159774358849566807118790345705710311973053798920564864558324512127817382808433251148606718329864604449907751471355103886541482153422767991822852696758297917395835369334439925416483492455949783763918146786160425932336656804983088234445047115706385099285217668575520421203536191765232325126147415632364624525726781011331723216713666094069899220299138119197820567817437584600761645027069222047597348602859631537927290936937734396386717179540980598948348831191272262683907610005613731690411809420825273442450384908276403899016676621032206318184324734651583446295495204109758233272392255833857694018393773840942673339068234256622522061848536956736626821326521978328962979964189429060939538427889942928787719678582173784389124655992350186542171787044708421956862242706485365506605615301116756783497376044343171279684413926029793166565797645415732980053891911204267587272190893329961582378647002624751716097686440058326162706900294007933647730561610937825223111691926425170034366749348983003259569500855928490875265037601340916717250757956513887618899743878555118407719837298543444808990119186089671186572786708814448940776756380664758529361672259458788862633129164592938851280059679782155004573956414013102348047754302779841672623773336829402237361038099471577443547165066141589574146236520084083932494330502939791487819434402149334581788459465917496662504595667645727535851201821437718563482011669331107270815640124892257459081946538275632563786049392178905010704119846056708615526390380728099883682520964660887206047296590044696928225947929096858167430927476024158838300519916424107693759174494073911895036974674041268049234851061779890064843284663006760973440036638350341897433720670196911080564487524834737065902968846496319169154010649893346425916715643866032915293412427497951129559609071500003646966709139094011222519420969486154567629034456401900876004927878343555418225951271166007095745996965483394627895114968416631796689053042231981126100875118504126260758828377311308126683964733538482838509679398379458630037826716967479672979454642857867739293033801456378338257741157595988581764750799270537229320994641724239767249450594221042782892070852917932888107437356324831210539629536571919637927367590966911135394209681626155806955905144073558858730366719204660984102255315953423335488675757636738314027788176477750296413805219387001868183414803422259255543225466547957720681833772304903983294359431848565958769919696588920127567601796783468899010599556486967003202648154211436985366871208191062113399533546685777502520266602462431605398937015149611219153104804420025483831624756300502352805012634566682640627539228481478169785335489850076557391118361965409601391316745080865812733940337966267156450855877680488982269260235534881954286197981984570136415577752714083176746505343415580014281361236213278238940583144709819509730956790645445689480699724123622734444961267654968661758433492457828343742358977609678560480028594132471675611045973919608395826733364714200968068481218668985061055970330889094188593525115299463786220684605548062190085919468408353657301839336555987699624295697408833491196532542408038739064811413341300518033435901537656278010668813128071722895886419466683912196964776152352220261185900998750011589199864572745420965994980513671358820033157948801827599208470239614069084815773206486935995677929360052874361038977185628784554272980981941754663805453164245743471031505772635920566112057685938580446425861649403477521341555573226804400967842789331208460186017933860639567243936393035880570766616057685012437601907699940388679204969699620039419364658982490068896905054732102014671838431960989748483710701029097360695800265561378767050599422906289319401491579295290639894742274576391430190416549252487209499290204490197770277027733400387190742715179828589727158512116213366440402781639632705712191033728944830444223732685102949076818122226808566744448578693252495833174410498575754300109090629705105123086217302108469274610647451292445611699945736306742108546759944816599578509635381966427178719533996980464013802452772965606280524505250255133527472229827271775030053218461746993286582771338118289904758316274788253206349688881192316516980151390944931260837445304100736513638355702377039609719167560148965997768070288539720338438224981825495019713218549569780137798939961417073029208672063583250477074529221575873908891921562644774243209013860240523840290549069436759815611218990893508121036178555385767566546891476524153157299503189530377138604883293335596117149493183511549746049085768602768011973605479680974306029387710826707123354909999093722909739150975164451327809397938923317047553869469032820482238778142494446660290409816811312146429274755369339641792896457275231052706558329057840194936537188133598423281816671446701602454904767669372074738869170819592716921760279026385290638873452112556270592971343380890385874186959926736005768504016856889651083379872379254090297136987072316817264686875111763698079178308832240154057151627596230510164382716433197101827234115929631268811545074497025085482458039924090605635924132438247718381045712061280005606997340805247295628338559058466760993629470394837553591645773908061197028086078060161011200246986389368851759990795435110300777642457495161019743595699492889535904549451993142508957789817676781622841673906665419188096600086430636045506534768539050808952440082036747050056233104241989020807938250870762538411223868614389735160012000635062014503248555506352124305558956169769375456389921347374048476254277647190986787522087170823631861816258570326342085242498589302483253571303560104935468729440110111065476869401752331344284621910318951110571059410822006042570300582953914334754986451891672022292468785886100444501588461079822167792821954174159328595107223515930156845396941651740077365495063093579598227266530059493108561127336973252797380980027861841089440805777891346051741291115359330550446241419506677492222219876993067149829949370645467762397581721875079155750602202376733491514070071893509433430467332180240912259003677162350730569504775564576871504866866254715855346349981423980205657755091294230545958622818359999647827345349734895785059917989811796375831934344541518128757727965114954143722532869444238720602905929647152733354963434807037638309238556548486943573581813910026144979640917216086354202218701587111124665642476440862737676111257594726271219676649515779679204397558426459427640434973994201177595941037359116797012044263686448079848555840347947195593369048178079585917886770702090902932337658492944772204665597777370474933230957931144970614309771346929503000667665877414703395064802660132006619748217902087515445118050364153314086979629856861767515098529945970759756948297904841150934750348163536825674201640492249285516559443719836931205411545776930056341237758257296670869296758670488442102768126103319882620527187610856801789537895872122172021488064995497946610792584506273862969820916608278212267519672076482133460814959383150525282326165814720453830118175477838459469786752971134311816619385254404268860604791444660814761119909128864976285711144326454980369229183087933206813640397306454747893144290183271393910189611113950085673097136916231747498443968221823778326458496089819989647525877573602617667989307407880388851534251753813106210494541750563499016830646050978569576541782929909470306783567826001672527483436527093519496895442680795425595075093496248752903065546235299737282723068155007919208354237552869753831122567014800393468480489978996709098667304433706670605062491226491684622768903320471048711218981342567092306614210683719070142139959238663166390376980038931687187006306307392614896877120551216856475129629924284687825726423902322368555350099188468443794731526863290575179855743264636270633939219770501146755778725056265546848006042931389575386293496937026189664344437168883417284650189353394838844948148056330889927240841568717722768107187664094135530810626776072490883199880794014062844588374728404550348449035189551134912925430436211634064072759164756675597273964532686180950896163835839933108328294931816035332525471812115052702046136032156630296192329482891142542477685727194698265436706760250403251198880064185669846412536416582134841345578151747260477436590684225226888092006921552224965141423081189480772642582138722833787573235188011944674386719129818105809159565869676621134899269011945088921269836615279166297987756979721767410845410055677716417183860945877706522836730207301549765678133806540133963479571087063686447683465071387461013624870847437697833783694616745241836030923367524313928065251410001340078039413902993962732028389792817982155472605348279188504822409464324453303610777058103846127486910071382324740935492531092203596293048429415341412059021938928737564561929516089864590346392568468541445075207500800748940717922550815232733501124854472668811015367597616326367402661445590421498332293091497501094761925814172638270394444101722023336248909875842998747483253056176356583886707979958505788922425164151689676863623853188246698501921446933599996403471752742936158702323962351436563342769618413869586970061345626022051054412571064454381261697603289020071695259886096035480317482568357088688434350281412506524520590770932963562862049848622046732680736876201801533742847516105506156335868850901463576588451523531813612737183456694942591011313691439354533913500310097035577514191708182027003624435344024261170919853377279468966673050950567003820872404436648966586009517305179660841523622585272325001136222152495833519028356619554317223444756356114641787867463932741503130498822916838147860862815792521702595116147748543596425212891891191701541353499787775200420335381984115951811643418770894026020129286886434875992759852342917804356243356472971533817638090404582852746342828040480629067010451396112518551430793491917953406157074988427037468531777758572142276219540093913583772156335868589491734489243938485111525771611542592876056171205937262527726657883491808689892413103802031565156712102068487097793948595591517536867668538040651881281089794422432636817608564778175692614229899092650267515017061728649760251504172189150499459620916249595283872944602039649594476545501395990640235844941840981889237918569562356379670699801326307548312469723721427507150616238277357950413829990395083401472150623836012499138726644992139537466044979521884435834327211194443409545701289040428370640905515036381157243361261358303310330096911156408783264534877900667887367271467418811834314036118042781535359613618630693906681691502923740447442880680021119865609388720847816591934666975069313595032873473891325312833277302329703340421362502202291002694023229017994239452534142414736029326364894058963524090300023546995079880700509125193261110224584532507366912169012960547264566706402190356584941899474995426910592198249571795280801557802699160210347813234795187559545446477488901759572383726532130634514123372806545884765008223092834122267051085987695206028742723809153504712664740486686303794732873175925885169532808290420696084768972189882166017928956371174246444849306942675214181384791665047371289900824859002453936436074533453296018737114858425439792823912694753107630839997407090881053722332806829231421957030102480269199189514080271426366430849382441571223725057651789460208594403288479195188843647303933731736900186955448167157823700997317761731755729452015760152624084055251545628931346655756980404095299030480886875362020071537512074027777327716460454586534250641822052937786121798404134398316747267475786092979619783910394391996675428730303218222971692795548487520610418285407502424643947626939951868192183044847541791708032632300379987758015911411867103757071053153289906446663672047480452281580449677279883309623118639075881470722732094573081877457670939261868832988449030397023463646897833219324391587693164719718922064245299060118049111744472656666603799687819600348682979071461944503433207334183341420893581004986103632898864497628055747663497910943714189616316799079761539377052850950179601033681669268422256283633460018655039850866164022379542260967420025168052890421145254482085797401048067902724645451227542580573063056065417276830951927791753846797436148640624569714372980268092124915614465541312163522398611887630374880910677012067528740569226386807202316450463615003875018238430020397796187831478183313785355730762297509781140981618331716947125464440371345132025991056386364064531382822675082535182942846989642512567972782500395082171769677440993768361251364401432632761192621752055324351720626789173028491513451125546967282515003031082925070548815402950598259037388962602232048392406879995456823750780858155425977463245291576335502989701241762083295388297473661146076437204177014530242901042679332699892272353233871509269821548924122361903559706374698530473975435035085663025156380703978444076881096646378422676714615346839275618999984064530621307532911925536259656087727280859912338163667242345545158278951855659836015026674970653156323356055256187241981370561502528965626125509109302911139653024883207833387872671176851556462502670552602128635308350718907434289706298303668330817566267834859940655654536163641192602749134280786313284669628841152934236104329852084193480036298873584196822266708216639015017044474027203882719690030642681986162428124870315274207180626374581202964050739315392535159986434044903429765646432587510760680000461825770116286588204598284827855556752216255439427425102637558678529340869724092948108307545121091051560554499367859417390386786184196775100504812777669590990846892812496043333192112922661404579248024083381052398994210602517569285676905401653424090820692953130931518601020550680280151558592589528821463873581640563291829817723556237500590705412362472221719331607356588320414436610910205667892716034610757367128695466793305435203787733968474464526857686672947069574612692283051222431753931792230034723629123245922245006477573401580361416212380250914255496919597870495425648548201614101250727703531982058238277312875107963949358441532766233447441917511264393543119108276324005124926031577157113464079837212273052066974152772911684630681701950687515886259956330494157731046508995595671979436191853465819471229396268634837064428140875743117809774412619551447334863858824995314401001500243805757352166710283569307707853319168042992728809675803291350711965813845995829722387471091189323714069710239875689753803749696875768328256375459806344260222683188541980948246762349866053104145276916115598881149411310222423600581651216018330839920757793952284998582610627968329293368850131073505223198337637454177754118298893884960841091547750280141553800336732586838639645370162012568104343993730571235198419241657958593567066403978389361796548017085972481954013755701336086463425069707971744779535177763913070656608590389377689189143695175528248494879676388409225306672380071198727221115212854881939633247359409406624457513535480556264390391471101799198198535976702913789665705945860255088258066244469887218721585235021182874771092568677089248795781625754098899076279534238046730924649461166415788871460920536193346521183907696164416582899916714165426884046737013990594058007298719117997144715888241712665131265945872882837431991419696042735577469398013645481614383171476518765528557759329852644815426728546537028115953010202070453701556562592252158554906842144289984047955750620037440054382829232588339006105601252052205284039619181851342252575583695536849902863372251339498287954477041015037150298823863804235024860252018093358671006766038838981759564284764088978066769543422416993376353733698107648841579951581719156175527700015185483790377496148526635830348592425952227884775057540197734472226196158048810009120139068220019901343909816898698115597617988163279330919328699884502828145007424440832473973217698450320405288413291121825072525616977209901809886665535174490014576917063783800095406568754738958024954893630055130516552492941828946239313991945730484773591784004935884254296369809978170135674173079443739490745872230102989196049341661480172424481732235040617213669392644598420109490473980328584591711887162829645419551327546577946406138114345614541064119025626004313690985476922939096440378883377301046413909479558230070205724146568868428289241523320046807726277119948334433338527653974784886225893232336885622918068953799566192931122679976501675398792961722651846678932477806502028013112393555683253188494532925260413943953197438004338784300851059381557608683842337837599571392583004843718508823198037100929293039373995841968639149635033433305390973408703788679393390884517092506572274295154331117132824816999038736606661878344164573281208204142234453511092570520803205485131072492589325533952221964395184278616457056885008017150170609980773890845574728457205263016967526351314557718934613391304128601140913140912503393158305726437382885327142798023475576919698377058752614519661265666498934897200397225150291339738589922408452728507218077237687656804793599813934396688710547344634300789357553464992952651459238237833556591738435336101821878103649018921103388865628266197755857781942571207018122184882393698328828527864227942102161620741313192181286776429114700446264854703721230650931650336930980626479297359859651550424250046884133825078133770600660332655882710288855653174162322958236618645928440029876165821287478147976800485742437651170096541289939075720266735888358738511522783238383206181475240364971855428744622691199445996149113486110526436183614382747561860681833054652361159497466451528597003058934825230146304634968309016175626473528478709511823731824656113279219861160902058609947894238490173774485645376329696528446223762093722066406220319337883349762300547898855531147673262553746006611602762622487832126854334910561694090276686188232749312656062658785818005174486042319137115382501806996749665999099436354600464874527288997512974391429031101648569450798450475897221779838512704447886167063694122270033643532789038911453929114658317514616777740700173771452508958769004004302488052274241736367363169249071768619873084621052485812479103949040614813060703381216511113055268882536120133781905063650742427582750510689969072841585423628367472881768459345396510037985397237799116028830962507531725406010734794363306221088233480223488797083956852728993082187133369624982716722158086232095233354233382246016607532042209195602155694142742833499383355106347450523985648467583558003462521487720027278833423472174362940736560459822696408019123027579286004147115548172887593608600556567319568670956485649460631829515015810433264858084113465007886551256355266089375138237276892046203750973526719517526741405835400104577224849906424896723635640266908335851724398972010680096652415745301692284837450217845686239683039000836576933275065084640001904011076521009666693968996599986450816144924637528836790742261067071443550182873574508090115635833709099216667894433262939795830628689927170974047973174501421587299451074575651163954095289136448195260219200809968031515165791602547573650076767119972246671898048181884705820786695114727113690116049358326930016502634332534331009828897248831821115618513635332282046734310009789254747778505951782194772628909134188595738291747059461345539320352291437069850372923854359948512800273599081455927573190968020210783624791301125104970062070359451236373175697424338041176615192030063815464712255892014387028231508206453926776639716069931645986520071367402579816346856133083502657579152418406624154810941459018790233226189298830046288275354101886706965611298630984575605357433008732414446775381887219061348528131697773593507072810770947379020781442875216563701693787683647804920780196178653555960601318047382588678867094679632521669062794073294023178260995111727130915087984586872421932949242369392225558451242531340066238662075130434669268058092145668402292545394828446952924688377617389253180281982909718572946132533720098338901951737441562505997544739851289930963587357016245947286727676104872864723141842351650268234582268269780084151014368223522228544173492444435005782493416875049636904820825987133742432220021719856667704666247117154035264822237996662151140257265822657507721140472178529649611225437821427791523174174926283695909932394794805767973737141454121974869621632073489252517412338425281168062023711367728269493307239514748001036263985373177794644712563095297833472331382708115791806715779891590842131968824501659108899548192627368019838354487636597881274154746847739613851652673866704497084985125645865591292641765206209258761953279337724270475968457357706893862588134013541530377479158949769682384731372420432690498239839445104318051261930298666044527822672926285870775831219535478198081230139348944704658263355207839848375836415647396624705653749339643353521514869403881017208151642137384912209945454907456161284810743940887691138428013093554802887876519166605727388611196320012588973168019839869030373362381684992962564555311155584835797093881855052919753746248793715871934151671359340575790402304919264302693641908281917973721667828580828229809691265281590608869203365066991170931464351016226675823315518244164688161678116809494853313133050232531752317120665934386883221903828893209894549995451623084109575910749024450840341288504262133321634574101257574372690042266693126349235390715167056918167448095848326498161756365575620270917454919974769526787621422309369244220055088457931398292121440574421943116887004131048864535506839953249640810430305606803324996856282503309442775889936491472302268879990409888533233899360208116359882790726963322707954656565350462266536724548569268228033644534915353885479047275492358370468666430232864302060863735854737302469617235321784152168660943459452820801556315031757850572340337438848330374394223235947506601587575264933336419513330988409540943727140363984358276144541095260523293914111143237907490600917082929126825566084364095767675141760557753175964653677206532316233643184951656163178994720231236628079481567294312287376606289859796663080252916083354361771411116292468907812805596046020144642519653991989419045973904869763155808102739275036225234424275958076754422057855587941460210719428534708430842171777923321679011480543152299510401542208361739943937475606693621566884913671630480303850981162724642308195015031111103806928482867339368124406408612316880672970361550911128156753105955514931292600232669575894380497831451235875034196251946409607563471991827163068642656349023612342557375777026522462772008621311908842953122388828416121039828881160393763140375692164693097512430425046876636193039791906963806871251572298865175808096310634969666071108586500521185854085502615395884389106023702913849296975006293975736681706041953659626695927334626886934673561959970810290389930598770066454685912278463497236573551627647246859957474069101553360629663023337975755733137810285259577194239179192409495197521446959902365244329305760745633639761041354570690145933603033877306367602263247846362978806853987213534914449679539600946273150270682126216838577880684512589304555346280529078519604814268040696555872189130820935241095696016862793190799886743206037856103226499637200075896535754146205884898915762153809225693768782260093399072232045603760714592343831369465276826866499113344976622839554109394574788452788353042459166543701053264271125544150185972235947773195045793623764977074828730496991722681092604513687992212168973035419080522252919849685631102458305309764569804893171975027470994838929879958519285328950818522541634747409805200897685849643591500411017006893828038085384137218135473204676938895727029758964667433653436804030800337476656407708602685595347151681373636284298523222088598336699645623854097311916711726493424551927927400028185802311297891514661803892829869112785436313363377824576036267652976409875689382846502898101049041832720693181305176884427894722212899814297024608665085453514918452090190319608095349074800098255714021595874793497465863328109613937870605181826116526397573094009766052487237589505247810794705817437071395417354988867779334004349516714407417325666061697394745344604635513582769192036943043920858967988009537145546924070084668885468694886437031728376925740004742288008865230210479971643322375336160642548684897199740350210848309135404365490601783283912701204521264056762550714903662497164487664399631105047538782218110539094283358713091319546437919448614761039688325687136977264736444228212954553216855260174974415639795411212037448033293433050732841108630612758528518440547794595116035677762466978924832974591039510839453809545499813213729370131779388809177957523985464729892588347117556629577069070484175628686117142556084502151234002289696665962640985486599385209107905860720091977048929932910684042586042204217497456843981056034836139461855854845968349742435453575590123763138816657888536466502796368163897850926427506328354437649412314710585768140019753998574055442843732993202452954178474156287923830299331301037817773892313686850616732180396429503421584788645861368316407644390263948432760498981806943670548159476978867198565097992193753580093287921939644224518268256408537973176580025126918608401694746890356571334759024897154617782373807854683285142658438964903085611978445692455893749120924734715803811833535602984546798841171202858030736941167504237877461712020537731097754853883499255095861089881300580975966965692962095403645894158662123654872465491908635019509338727220152786333935109634509099060417515885925728963999425362223121549989129204613260549491812921563392290526641393769948087147320371931734633547941074479233859304515048511333970390538214200591026605381890490775916829357442245516492011298829341794111604357071412852987045296692725542178814134746097930947779803646574039279293921508656276216691422002254434325695450941579118827259153715109356406296140292115867778621787514870337290935177188893066416289011407855810336795215212494246442490400166834620804990252938311654696033326032738466703429711349221830817239929490620252150219350935087851985600078406863278405702736533540262163236968563261164683837580334207408233266678044338620263352303051292718614621127916680435238687414266176813685026286041856068448406978115077787163903755786695204715380492613604646846942206085177396965180761626262310897334592370789260499734198846616178537402943837969749049967303081820885145455277530116954777236895469721778306402302098684195541227892195581345784079757920240670175837021925207219281908374093154596770768849111848589229910675756882806889878759627574561284856361329367903453240155532242062022160714608555678753368597194039203469183592397269314216442717608530229433874014666465500943983954433532439955408046826299961438720675040810074049049306445577641945574258931873364123302049148446942625687539491243958918294314369591183570331923855719139352399837936470504362899828294317043537097800154392897507079925028437507460939550019015787560043787351784046787501406669310546880524623226812856439206904975264892201890652275868542156925945891856451827119037769319039220885945356708608301564191304904808886178163168288606963257594113383086819808053562502521740911420447099618799713046715387714822184262414179561831231908233307102501715612844644040269252957886087733758408934539428054533261662649422649083726059646682913829289722399685517021226811005655626763871751330413553935891653879800829438249151674460240695854674709581945927332599057888648609451152609840110052347606396545975967423450993525196979048325074682502004406359746577212240053248978273368421286899515186748278242465046634205557023343717654264913897561162908528411560736909722413297886149338109584137735998685039304539440607587246653060931582454406289185925764178206449622586889733764069607328198436480221830862522960462428433721614440341259816924867628481296528622686591730530917727296599184403322119142709389754083095220072739211300898509802332310229567564436955277663020817794878447081446193336188657071692856592042782192766792231124777138863945210589767326780656139564385726553083597863556149462542648634405804208443698352404905096529488250304242872434659904640066055649311880794411265447814452938950409722438991750590825426057094247820218883832600290568990056328078769609302221254196564267839778565208334212118242989860766804573714601436708726991453965733938533427887877419517111592655564837853123502570141306001074411880339194933970898171467508211365858875490123018590552175696074225292413189617730596145466941464428116088382064986411400855772359940945180742843024232696614388655786531020198165723434077401551052477207262056019836573833808453417979163684578675489533574209834683284960064424906513138259626137376305351104998131222381689293476460709860798485888402969255140212176127447436051468859290282877017754674863239362149942073766796668239496233996850324009353168194130567435508962611860449501709785872252147955822257216157404724163091076394658808772096738801523999512835884979049142090813237237128755697781029092337169896202208081441576408014927564720114883405014360287773707662165849398451555039477035211541324912402679626832469736388786389938904775038965855353676228893052058663075056473096372728382098829966005530714670402062972278641491141307143163677818990957434721534709496006172958695723376087952780656328567141335871993786995328531549162079575032963525854757658696267701709094464222097805846155246454949430716331204725379113568916571774637953546328046258126062247479136623094374125712776046775658085418541536191997487696481663355756822504263831057206348204358876773058941999780676898353500060324788321387145587410620928999042503648767186344758152834340695147707464216135800814520971684228037896089143783189582691991775937004467235354479273700159984365249901254947193020336597233122706474911658697655091492044940801274804975035771455091954209569917984379768567658929726716185784823041984512361114584670571141991543242334627558310690652205011204579172600525436387318269741704912294946830287348756648469242957546669022269910265127775625123444062512922558363648316350715222174221653275480923923970450442544022395182580135065462913267656840860596307171577663625424027154142727798139901020912234379230033904090764996716644387303645848683017899721208731863189419091441822811282035770089731406069766005476518944215941669005904731779538369436556367631093551384721537636881797619558820883479453457573493006022130925681720047213507967158575882953763032110229174346272397225871419445640677832273319418796612249700921154403570473662296371478353609311133349483398858229887866886115716180880540238877259269071192314691372264364107624946482224895436663337462672448392127712279842367269037895214390634798574264033084741822824932847346105781081201303126973533140917698680865843907859591176567688044352201937374740232539911221335586600082140047625640378207104610351477114848867793228785214660388422050842394293054607725134612463291963496373401731581464676886607520933864885065255331075287836075539805354635423586387265449625446302873178111867292581234648769283344354250873225320006121843234858278898554321561954744578405624166953701067177899144839485968579645088925863268791481925859559708866117468284220207240241489001573441653680280440190434354885858584639094515092844813682802599771199504184548301571841210813338793188812603781549278178680359156750399104547580731034943080562375788349374221457105268670420741099819593204126154986303695705825801771846892303357614595683103520335778301931013672195662820507045162131107032926894186605887225196757611826579944592079656461971167471138712031890522629143250412465539219362252877543206364475805944997034665663363962414203574794165074765522370032537583586306921889186408425804423288485324776911751709547446006159840349304628902258034866984370309021437643949547459240945631324468744426597479311720142924549222435698916660018602406176440596985463772823013115029906898545004358994625357346240917454796532314770597527808974744205547162738248713186649941274297817279251860695361647489784498036547404008545285920125629178520259576064431717801449376529253321820104751597462619172628309828164100014027159473441333161774230177923923536817544227774156706044331697224024380216180849350041948095813943313781807349562251437526417453949161186370416424579093421606725960034774777349523929270656933068611789875410545977882904225912684522493222474131286081370058471419366438687548890246326264374418254857668771264547782208781939365832579174419811966365511169865772944134808151885434613887136962392213902445794641740902478854087080796111003756012942234725596889975487510977934950212592253352701399747448849305948260801580590497803751942114657459412639391246121738223788506814635453046357421084034963162060708841350972752271809936618468327631349240724098962168365652586859369867790880640521864928311772827752419466312117088347184804396165060599951236576590835566418236648383798539069929989104491669636359354757182532177751399928514584804488763153928077130513225566971259485862680546240739514418343889745559366097288457098182700403698274781605914915826974878420649507972460545619352874133563115019753410975326737597241964164364113845959578032900365267919429881937590606064607952361082600253387299054076391005234942477860871112343164930350075011772125966697244467229074854962485746161698333686140270157499236476349025496704938344432041244115505216590150481801294722943589219532503971571388127513618208954208103924275009654247375534857784489466179133460459799010131033031766245322408447053644526985169319545211592198300992466142216075237153609468369798655049572519415766583858383338981269839515267652901094163345142215260716595750597517740958979857710531727672477520373174930886197824448246876380358107033557783828777372531572841793492560637680097931305702988815497847279424428358836645780389311044944479355922723306770424097695078343871715059802424238519591901521981411612075662329901211164632607919617401294532323666061557199585744018676657579502430171361971125628991983784820866787628040887451963936676548771724794751949930290476496038778695816280556718412079100868175266199170665794777015459756846856183566193227797935246811148235940616987440842159881550479518549430495262129404622841722544108830882140786414571178754473246719037465123704108805844181450305115687229482882907713582031136697758281744570349191602005758682496858140683020886405336599436466689587499197264745343070521730027595655124357032909551809983448506172735720033341431620192892692566862814293672609163259432012741535829261924935585122540186945386511180934709563091337919938969075117334157330731335537819051509643685196109963657957821666730917466848223354658091002165652149278874528679475906151998884457463327235939015591881784724496133794250074852325953059416910295084044669601537764402257879875607345201694426017532678353450061713486044372310891378833399249530276528305723374093814900265063606929805762851599529939999003911672487417942501729390146229729632834802493395588555270008185569001306577118049463613291366117634208997788887249270733908339793292813560680379253711689593782945629930485585843115003725171808606431956150912400483580454590184899417502059615292073400046196764600893135570841294326117811412384037194587885109483375333665314136280086067594311237600378727088780996990255566223661514571679142249477675999841205385681780722554718030645651019216938097111430460309133304342374015467519961577109196250512877414219192145510876443401637589325730915778385178232038105618516617453588343892510029281677483595872353353661171456844515291423582278132790801375191175468339397133689187650298184942102937965037565421323635848633846834625159359720205711323085156209331616297738449367415227430887891561729827828672810137732030864516798748179336729875869410715231992468947956047256907436410138798949945841816693932759829386094993203555374199367181898190909460204021955779193004626582725071897954450326896651953857133981566618127908296105006163428719334375854390519393627515163782786909953317486482084748823421265573128061372522764377833385916880816320820879451084392976718409135310601412091906018282171189087069269593762057358340160139807464004098569597536058654250585986190250046072171933005770069984338564882207016605634829310022080077018801578066637121697797440078592385954405536751087913270865918871377550572850324095011768285511157124338765961711259166880864634035698268459488410893721224846887786170200888180442994070113414434589538669887939449062530255811171093491551927504509684787443212147757906873518737348833334361356174977062518087865023104575866104481128365779078065496301870605996006349815536715357048009547516059562194724007231214023460926181919909167092247842500437728431660263528974083370289224141174576157152662160431951093854839836320209620248025260962104669739938492271829676462745667757597008654059131700749756444169230363358634616395602508435716256081345792765308467509112224583198907927255529036845047799717643947350868704296231671115061935221855240523535986309370886405457350377210440634185952382011332394192389585805834486165280542076945946405881431551145294521320753363294905696538388014275703385774093381342274581117993626268557769533465415016967024463228824863784721437388407762851704774934149220624080611043960805623063112859016996366444151389290115385314474115042318775853421459191482205693271467858627289146197314775370096622443321481157281192836270109035603891288739571707310299301464572360868533038909622603510190581112230855857203989440748476035438331156728692806991569181111847088095784665458028809427750234547911406678209161654285440725721631458101063279113559921360545872283354588757583906566957348893627033280504991458750039363414402581106649023304334329256644884995936905478942464211097385275480655348466193141720109205481986050779023524973099122328734447007231086823999465021136833482613525808967008397714709700093469281997303771847320554924700483556289156811599091031052423626968823869280162222339721032050469258102024072903367120537977242269525072476515711249654955039840494943627227504887837036325026179004359042483602410574137640219272256741822428959277021797349705984916685371894006997935223495414676410766198790331518854803462406817796715887719675194850429485379309589553132705727954510058298413814185702308018495972141678537851417229401089407611446595468214755012262256469609331837563376978418299018105838465171386367469394808448552514000573416333593937534029660601035307492813705882913897472595400055376978119598491197165913813352885362879326083035367765052891917450301510086207782733706885587647958576498628206045337847739878055636629603700914280523560277698647707499884247855353929801584157869131104684396140078593971619629343365089144618259726738265747448373754954932773820510335837314900119568248663083752135188213541044576176489132561935063033526980472879446089719339274988710231423933354926706657264717704604628171793340411530987679366402316464845262186102792450304681855175772698575288763040066917938928256507205077836947165699758707762554038872397865845828545590437752989956595936693923643224820477908860719582251636256509443535021128011345103715327527689672654105710151639717132665271043138262003011819415261317116965663520446223204471768404528193596451006744624159311648221081502033062627440392766342321209358308007638591767784638461729959443851159103943378328894116107489865186946002919491876744292563302774203980859532344432197860917672186163100342900595588722006450262890346225298595522498560545224319755219832793409228819983098274022576426761150443462784989488965270325249495692225058351297436848438170716817593041103662974008513191884360839901490479770607409249705622160012145609619477372484276117226716365702220518260187516808570773597501920440811746192441124521056800390633849639988422839099207707750592480587619984988469874984203384508299535419054197383034840380090197134104013178775823578563303898691942633767010244671667389910875695361552780006793639171917397151536794369015167054731577286264865633978753513028163536634341541341064377184403879168729662710839701451352362945732930155959126806397167614963032128137101532441910214796287994408397000642358438103061747031997518188905577900173650123298015222834450854145206709511897891037871587135211847145416904289009769827576288522151430635106463519189258623570679236608893337603483454000831922945412179049130450519253854897781182481681900823923871543283464525552959476465856388502896049385856606324214466165811729639259967573166253164338891647337101656833145990346044603125977800340835634714334608214782704629572026170527406399629338525019285493593739161101025870090220016802275741828591462413592287573696179139315101377658156919092106374809674914688106550371701401054553991533225216790882731562284668983121581275393728277170229490618229998022365494215713312933677600281657733139350588033661929083211898290148296497096196273045972902346967126678777137725410151662619198053669900658571314287203141896772457141088802180978840426735178966964072521471527076778190855190657129324763021101943237953441056476272309862050386933566789980161805903964923612730242760377419648529734939818742669933528768322141828132825794262801903135240575955522549437894776991586385352211378788270673861223891643731525736409769846201825557937235263016068869731694467434034187576026956961340030653520317385515566204736547372484591584985439061557138192955894575008020802915649848983086280403409745509948227523898044527288070477801474748290471203253994325914762799628826968281064692414147947507002088859664934001551568016955131124869693333450770053995211850403298897483246345765826798343733623402470914915830047006184631150822549983664761177335501844896466559657554991975748254297529001833444945612410154265259720394553320844468448681488087646563303714497486292164969484963548713342525647464844817730602946399287689885307290529555581322458444186779108259488123956659649404379709647251956484306292059874101934297766200129120501158127488155098798847187810185618239740552920129305122300223616135369300881761333758322816302907640108667163451253157343767024338453844815184436404433352186840022690810806670998265852298312555655984549111707356778278573363526646590180658667204276350493973134340141974568414679182293711169952014409081912932483838766423867537752712591344139080527391438244120989689635340864019691158651389226222978592803319988390868546809767776496624387971780118096977079171107164124206957741456336508329371581319674094193145748677675212112389093762499171898412042711031809400691428026851401319181893438775528989983274370548228741740725082226182294049182550970509447550849226310231402119083787659018561912584968192402171335425448219842497744668021463160685740930384255742556596189072815960757994871536383537327700693085283193318782537543411826757971704748486380499552412541405094730992782126592997470721844898335589352059283348393662938983967724344092081244222477725513025007824779921054280100097061993858376870888348942621337475083106285975957884286709660002862892327011133630669247501609471575309391954539872550941307879389183197453224927314050492031895880744087647432272122651297946185612625420301805354769366819736004334738209072259204138583615249391184999787284455541145699241544273435061761476861031008964280836251765446467624237785063499589377452337314489355347630434178606241696668064171580596719257804042692680325665388296282627190773978575762719423424292205306091551525316696016482131971398619810615275187736383037141676199512466241282028098709422789852119548086308932554571746542157905196377649916069461822081565556992274487233836377521859862860769436997323970822325901998949595125756572940251180399915857680117213490550220422351224229573263911712351702956562319725967692721727972701807940846791093653575393312130728077385769871317104485430420140844666851721817327209834805500703119911559572594739774768495144894197577190516359630148368453157851991648375697960614112155059924953200956000058227613324749871821201062754162570602047326975188936673211906273407270461022861907632113260453589119156515649329496827094756229113703048238043976636530357635070114529620566051690871591895934540597642339288287885810282423868648963458304370190188840706234648607860806144943716565883479813591993590169273371475179943242158311978592578073405623091805233252951243482728738522366702550035580825785114352124477813609931917474063742638968096004379992195453574512972042422193036269367565381706276266982957202054630671487119349786168500229627790962152737369376923959765124797339772996989737377188683529357848351576112573696945087808264581933806910647350871846439489704701068916870959165902676423964220560638744996686711083999646304018168671596928663778838954069418269013836520147065991225558940743196778219486533258612995417890635255200587039972815486260823563857259152659423450739429287825747340828502420654002753496504573631923873627179993386454519666894458091658408589367343689239323925567647826388044848962136736639486199553254440090746493182026393322198228272053775432673335967204861658562164961954464700274427620406590118937649983527891812064969635043306588567480388679793950616085837294259276098961926267999515162921156369828507408241048872207131638153454744806304764766217710492454552087726720940280397220098944326577925987555084260016530317336546355022348659223003288510998539651411468655828707045436690042885979616961589371483097840389214481213407944177372519916283651102423626871461581115104697985646232940398751570539376803878983146742986747909118346222688975471271875190541622427421187287008969205893925476252463093794030927341194272791093938899221993128846612613715414983567780894145000047063276632291450048153233775900683002711813823519173638130226782608231456786050205191415591269972521441750805241931909861757338281015384100450745324044353089837564839782684573030530994223860235954400106331072767879437130815478061961581147210572762460789768787286370429272980275249569097355479810827508588267489092862573389679205353687942220076451479911864683260742132639476851209317269921690765349065469752062500308004309999253280062885234144157907010438878109377127520117831389085051300517927825243538216268778484643379406075792886031167297086950139393129429402249541825460553104456527098867865914272813093583347649858103632644086581081949132877817726331448530822671077248466176618062699172584219073690784007783818945062011230434535964531604279844284642349343145828692145557928673936906775911274626469766018007617111844929422520084433346730515667292259760977389776557713479716584740007553409201020448962624025104784291153703464848603267855134271948757452385148878478301671445271482339291292821690329472762668234970794019077598346275098848234631778397643281604323871409024738248596497171306099049576978148520252466544999110023270429612439472396141762502260258750705426986399021936626530582485384295053429827562200866103297631527716390063471740555595771792183327060164893663933278050254780091787556708867864630249150404958350114284993308919960348016229033187883235008372284485897878507748693481406491017813628076722704872268524966135720128415340842507045525791982821134280277129483841924308852639038855449970124780060726207699082136243653811306901607506096207738562789753404950972618210627708033127275971662309005916886614554895662168208161714678060205985375590710696799852448633856122454887809396623707842264142750424190672902842941887912401542755011918702439775812850223687494277253737633301414284947854300102783911437856092014448945881949822287008820806979624297409818435043000990879036860556650378281573969509297553445607027908755293728130463501383758985091945763158378912005055460336935395717637065556467431893356313905934394111569734874050281469134475508506716746706437304616443224058875757790118912479199532198352153073903009088360746271856537530292263129479087480864938362453434166214876954741333583876391881904781460679472387858093805035362319306062116654969213764004966537091081087967325410535027026208360256137623803478868378465043682092457843304139351059013494877664809191032185098041255484616403941013242801178676742306271258737890808730050429317799233569169305132789056077131558712309103749464079665345103896439183982816695511898023343310042304228168021073899408935065777064711790595531226530975123744968472795839162366215356913761626860360955937215406319358600374684282565253752052740547906026682581144174716188520790240613597270908534820573857872859867528071710381539551620201655837173117848398127828983807783611798189691903187734799315786089513906526368093155239759605436391018574828998240886965910055746070035221868829753155065734839319333068229705616868824731494796494769432676385630518000236402365409405386861236878328054797192232133883334672204782818229175689577495105577826608830229285710070209817285706908451171809690818180020284765750588310213454380372605581458032510011577387847257424590648125262303753800875918953224901235640558382215988960612880232221224907119082647944390782431833439138175424477793998821238673862816201879086709555456684012684876266806440636395292780683736438355258872638263631919758955790560275819672329649176528381591406063752009880705657430790713758502519370493626097412619399622763991444882875918124145178410624352180170035312006488303218708253796760834972015571337983271359999805610425237510129208517667769112555339899024522443012197123768456041136363764796167288258309757282128916243845837335873670683277837283771209543384462399752893303185227238045379100886444101737370346533550016424102495783974482506475521495136057380914006839727719477102926926490035601245619859393027498342459048361472470130853156483981478038523122295460687082563321723572937424484317831871390728251348475934924104893854212622092685193220827257530629266562134919323322662823496696795374608931236993558083025250561804367640107317078260865431391020547944606981505526555035112681161043107755266881360529472581168173586055980556730105843887609416579708869816766164335348254455426771121362662246820808522332414236109300401138472098537169812554286244863817308318120909374467785684790277858866981707783413560830140009508829680480349029646628900406270866153302497095664964896465839554510673524341726847521068714323496538141348220902082951090763615769722694093021718186852728153653188011263340028245779087159957406358572842458631375513922700794416344877747715784927198917015638291600842600039573327904394641903925296677118155924227720688293043269770460867059123607265500054209178708249824589103522053548609041483708906213314180400576985982749880073333976224192136980639988736987035485296962472385450922443059070572143524899072173979657856461317668961458416499668968384513193277795605046053810478611794695491375776477307682486594277367854173519948472741782231018332165557171007345600289976000104745822262915240751572862142343388487412042851208438655404311612913142008505939428006501179860309658068048884232670309350033000906685143843819121865529778514811258557556897875346048718429201271020412343516442595625613780853182550686513448763586009763294478640336598085106290210695750579466102109550619571460328546719343674585253187612305459920635213083653688696760552798901974462346345649234301914828237922151270537431210354875840703163108706545126923585080179827638185638488355526185150552583649650756160969864743211470920024159358391709426401597202550293746400385412820608026557568589729066111368455422539869717244985122342276099474460971935072382547154162427514299235957792264636893415800716113245617493107771020736078832338118781908947304355795581925515114482552654028563628312176249867209995967739203012501238953611872200410969683501455218852781042613144773771022511516056052562135552591769085207004610781634335447457292130104195296968885201356954120597232685540422409565704376325563731195982386688937833338227017641056008971016077238202563061149779487518383911076635744038283488169569576976671275991830803016715432093934631846717448543882648248275883002319135335197715757360252252648027863200095467531046936316920158435790519721994012100568887523564294532343121680953296973929001136135591799825796934333345577904462035681546149619380096560606945219361485026663112883560362725774080285291157918629834916388492605332898900395424345726101567795653965852659211296138426246868574164658696148613573915283937378715507844762292015160191770915852992864850886839139905032652833724953166777160929535991101415576050187726518808882573119828148032487309690240274969724235508784002426368938819925860081719804738770751912529166235972511027791016177747692064671367649828368434002117240766075285070935475019867139789355615314123947329301013934067140724072088015269763078309442762292489608840535902665859030414087954772883484722826007180105239970326076258221084233249214568216049176800504030160934783827580879157154993059424316694348031308096693106425256279598165816906727725123280013009598528701054543292950435465826636808072625890764119825885465701579400458248712553721303188427445613351837829395587427617364178444137305972873757225791791458153753445319196863617799111031498757579519103230380982446985934488211672692161559534660469116363197664971650773834706649018811021915089160766571687897305644612959551779261611105210381242655459323888869977607601460703450512818799411394156481436948110981603378290889108396312524397994336280489414235342597350260040472067241968602847275840328767771326771941162761145907141689919702024221578628551615912743562680919869555670405018509622720537154741470942773982179213121803373173313550593787339808504239154036011780674933077526293167217184599103820545218321025416071899503426359836444659244196560002073835095874113214237561535912194672588156109500627345225923032421081020107371677467662904997363960907923272352124505818723555243950757025479414145084060169134396924727640630530972260879877435249603458390933619836936636274567114190564014816797730070989484202306241001385895842360870014967645413752181683603062836873561678049958895858245652098196110109051713606790793421872378418356933141722514712717734129071559294437275731587671114055406074059051637588320078914178350980617461164448785614919915677812697367899268000784236202500429158211258972159719213823958954433670280470111338262923299811466344311591420396848942460375280861831402565832960439975527067647963413936260359546304883608192745188939836770914001810081149242399858826618440368914051842100583055912206921891232396534028674554798964390666770161337518659461303016688355093212990787959079714882799326232290306907013956825438761404751458429619832365951058636164737801905221850720888512158361026700010282770668591990899112966102794916291279101308237855392508675994913351953309600092110741632604008583873966264085464140123251980162002005645590805234217041479799055911844285929816972124848647740537730299487589675706559446950980269766404252239278617883928517875532923892645154179866337279336231619444534805986557428692947845344714984888936575598958838839645465341167589252786071203212800590588634779349209643458199376670975756913929407615020524584333251291642807659260678581241603673198243227855807053840813857412050978765758384127687514570452227171580329551616889507623581821964152023847946256958211820868095010939925072234728850795776962763290039257042192848498159242277227590863647174537685084692049866070882722032617537358989379065446025017459460805760938263481990639458720654947798581495808653664249555070801176482917729269489229184509309455412275127378601990383260412815692203552522092970003923062573971209839004345228896560621011618855361533409307795284263514282045955841247013533489367305260799144316958384634890235208984763301602604691788744253644019692577886839935158865515922130163471095199315164298699822558461104450480567936826628067737867072222311620292465957786502322650902594654371395351927316476415909477285471042597369982019788719949654430038521202913034623078935552820657368358870680525296852554183821535969560540682029130632011288248772954178546493488075551077994458131161618281509288015339645965086603549238410450755819401154423347078872772194865408089247101779901957587876086603133812329933257152248991856693516866344897061711081605902075004671133360633141261829454473401721214205487518806025768440293014563506217194862346365054364658791110047770285516940739746957664397525935135159831573050958971223647984131726882550910023816365599478292229166372952037908980108369471002763879939024664581488782310121497750288606464301683394426174904567347890109447692364150093372522846222941544018482258135339099467656645723303269268630009765389497062753151299221485218067076371912198459044605645780033959191852400648070349804610438891039611923391317304936562531405690069331887822670477150988245859105283528722706127330055653887370282492098009878982218490806805482186040183423146018447740409938661319524472108693319217602745013205366194912373141183745807611172138217049385378610028736165097718090798439917032701210347096595837926753807751180241373677782953992574846651031613398578107381801551959737309659031834537532388670234991197588215089098611243656766525426693238186620414760400978725108311279175505845085947133801361646303244276122907296216852105502219598891127488276593893005186555157849221050097748919605355543204459932892767794962324603652280008752497667637815774655501020685333519575437377096924756190903016309689111542591142725523916129679022322941326129588868020298181871222664265918284546389431179375941733270025935583996520177742424378445523618766704095433194044068128388557287264108923418357810140117196277492045120747628433071384537242384366003191735388505314317581523087766667623174355821070024128387450036334068061859785854302041267165244892123392964070287652426518440594404531553905406255738361960298626850236477091641739332995213559926449676408590613321200057987367364827104915245663791482472797232736920314994304931394367637067758837739594896867258982802910117470414236331723013304578805851352260203250714777441729364581591901123372753552221268872554032427781578469229648021868553982880896541277878222232402634934535735255535438210612738474139685596261443003602084690566187587515136870767268653812475434634343606227355079453063719249476870509856431700852873156630671759609267302622811907277000139318611362802820476653399606189883401156603301635563085670456490315516134567440114723383080601266685148634181980832606103267930913868455142743649047414857471526499700586191942148862857815206511033560145060501738260857065537400853907542592786440118658477309581931404459770505556795351724801366204760286105102388945900332437626605617557264555145539408759025042351222739160994193584034440952706054554745566637364827331120731408063288446099266037244640539959134221622516177033887089061227509530542648206566416590718788076089684773549789631097342634928571372594517076330101411015212338075482578517921156619898980916446204284932773465925097785232946151506719813154055235503344435364989464936217313068651487992090423461321561789415045493186165820796565225151433501838456279011716714982554503817987450741877303875430944057973454390016830411572215633324772416416516172359210632523520001932527800879556343625081633956856329484947829350656039764341290912936456395238522691096248466776227960646504578885278490193687984661115744914925559262229178833300404763148058373742176117778986912577783210791327244033926472514019675893725631281957926509810506082172333608240183903733096047384611942498271201388977810476490247478400564951682497901187032240898944962289483508809200027293272754464066873271357281624602766116570412690878109339527417406354046185230955305055900370551705462066258755823802016765776782170796442792868484290014514165330800855682850213643638549025148944224217108294016760524792293175857840752305678100978834479289037178731537029909694798919660725427575409840564221197530831218185070188343837447406443098424019015249120259488984523927212706430510895722748077971557759826940865863770270144611918139804207456548669905637869119112971482894410994760084503901693066499980973005741365059473780235321055363452084329833819191707165433376457698014818249926558735838272068889229912312501514754528003248014851258542397743076211778491575098024949226047321719414623454962307349968271116243153295963191253350079754112563168819538937340588631213305575458674546406028974497527733348607817598750284580125752267501429020248979015786286593505185576105923701219603514129817330346619875591449994881202698263547704538752154343195876484071864918793115207368235486072883469565689473531267353844635848686004521024281209229200290207777423661111506086019047967147569582658915677965889441171029000729007217819272042922100513910270818284902672549831935504953245300205374320515960559766823835544666803473413794798051870006206199609544997299763966298924238240105073637372794216926193814703495379529947434936154363659018105645595561613533968164858151774526938836948913900047314381870789503130529641943984385484185087056966966538014557527162083459439189515921168775576836873721940023369451884898367247304837558668241539757225523904168365251035024521623802915304089934078372592845968437585807479263914771000984071990982657184881847770486269190815147346418722965837617587256486347853787315213544057196187094341892105247331770768717108167824005000427290463203435976309677370542417563826908969647330804404413702690669114783260185043116987057757402084480035142548060835881321483407694007440748767761761506676817502578877033082364957939729781689886164816611524068045592982123241801069007330339690486836471872362190312382907378352273078958199285906664637167354040515870837336950688425073126340266259081594577823299580335707720630302286762657624108988613600032936382605474172491078964808745876093644791970481476267914388265121753185250481646452397542506190576393938041857802069630174266811786556541852481010689372952000958439974039412850509698814086988736514845043624771561997892961342183801370160837012170316827901723901870699027601610973787873848454229966612952668235324867356164858004350484871208945349788390966343546250121431696455697581313978197400360509006566984926485360204331952717687091393805932421809304676346510472150921653621935986215334658827816233889023229952415133828783347621238521205882849469741900301509018403850642430203989254907342158272204829461099795076485244102493347189606447618840799295826096022926472845847363130838025982111138858661203789544313035487713315922837484993420592259432570056833302736322572779792039397219927499914715461081908503189874671775672343429641912903792101906039859422050368896391822330095989508122151740751138456979773976170558605755318010974170455638822221166272656217941867746807933589031787223637816731278222130896931430210766244910376042142853506772038988803479777867958101292921562734490620242220621152778064083028716674427073301101968824708812926246056299652869602394331407270799088375766469379994984132555686010404563450167407283839832473826301635556843272170524323616066261882429565073119396513857834906375089872294087928661516429562745659163979710766763178265088804411769064075884030243091250421102551410556422779580010405601534997905659770678903550109747547452686304438441274382939580402941776097286996670146182416056280601494139772999214387649614059946400792831827616382900923204254056361033895786991864143050630312305131446073147387811004836360339504377699759622837663454360424250456559300754062920034080243589264323090386126405837582914387474715580087122451088050897909513760360505873962244158681322228610801281485503066368371621250250293284083717683965880441809044777667387650211792596792848049676407578362050345975085943008018285434221267138098322645578218691098742221234199033405146995994912575528399579779622840354402778445111804961984405791696235774047211765545978458463580433516845201051237836464197702869106397891239377154071072452068788156777254920071191535598062993933540083137719154742514183454295816015370063205838077139733156164488674448841977887872712493085276896088502245514413253680814371571313528078478167008912597070235832197176086541290095020227624850449019112037634018760329504457771712731315086813159994723412495057084064879503012363326768986226323452623659128394028720161621188583165217521970818767184809706995570709357462018514712817797749188724212926885226330777622040429436453377794488456435562735914234716258677495839391161956334560684229966178167450599140440381095579204673683676591737575337009599752645314078890009249631692556524349344246736207137864133174789809885659897986393426601856972026216591997606111417226786758582862266876400741345027276673067554497653965508167907950067598210367869978136386757168459829622281197322072972643460308808844448935606371501169096907266452532961953762708633643839982348871255601502899357441598235087698138105849207035065865172535056685246945653447046578431644886139142820135967799841369324354634045762782066912323270040589229225019663066657887756397123776148877307284292241036517975831584922773292494293236606856627462081595481777983434577972579586454282771455745190461151101043617317936427287556561537081625542861774158314634187249263292593245458701901372352290830145923589405348361157146760717206867126142338164007177995835965598091422893683139591189164418684320380162960938850842634431387099075475179044661970191460247040029474605870025731576792139363295373510187754788889136938681216257628932270731552251650976406567361792203890928613369410488990050187037880508275831152741904830978362484851450894245963064972142472264655245435577913336296634925229467476590334541170936687582965246727327691331277505696380403346046538278093594893171816459393079808722003174113349234453914749641800835498509952934854724615589918660736555808800073706307898676153762402801758709923588683646839503923535054108246648963989274244923216335317096676496860755905671941488806235919326715432265933032241295520974751013062549591545780876443724962764040227547699315501102177489665442555300882002798178244402300721690804011849087194089592739381613730574688847694360961611979821446596620638913234265681564912526189977223910065258308357404101563221818945284150829058044447671958919425888721370371949872944460071246192335169670064177149657267289788609532107888763887727791386689295155482085792313015495403705542384446008394766131541624857755606654830653911630110377643832307179455595253066470809522784766031887655743347868193338910179536486230481142602644261829487221908805299689626481278826424139567321222059834909409090965531037335327277784631862041702628839903275854692774224999039349868691941409423997490266571790494793121990348998744208445305047673397603236736040257567785840547668346306205264303239918309588067094156423834030911460032587153636993084552166452629003058412415257320422803749758173993464629337967196741941241811475245928869995554162487552466542961048113002527086068750672847944674035516565196113542968363685106631597523307142302890383901385167082674732807557592352812006782813514659915154224307334205112370340125829246470537033939671575152014056659138660889850950583574609123830639852009251596267229196298536357082445005561185211996821417609990165483653128538349082082339832962371715537274755757269746667501589354200011649480843881737203181201315070716950101597722753026705320263660777251254788812516711415318873899292339480286147162786845636584635783281871115466387867312981678419277911056322393614540797654522852966718705901026011422567258070044476035406100408224683033641674575386306237739122342509834636491431403927486807174528795150930460398376294276224723121310374564979240998816528610750299362245599441628830942651348463333067939651394890501086384020833579368389785493755350150850678333250753314546703793081542719420263640149684249913896927140882260429281373554469199935389120669073500504187825845492750470449461145600406772603337034117684806094343659598191155392319434558101231462999146142382591986422037843112433605356407882672678751800120800006425328208382500139284834491589039814606657821317640971682772560776687208979309916461073354686700681446299217667035176094500682048842285348063378810327760874168419785586714129227437554905626102434202051487796661466965076449996775757904465227487568641704212971797012730750392292331614428184551109533335033995174024575811338548783092283784048603674269504626674954539958299672350035208610027875358693847982573445071338115380280556527280986144090035951530161835393787810013158136778370014848936245000850244259830238242888666611421094938871897277448822144065754960474488755826209110595663648463986603075633701036487328432905779223952477916103597212302543324674656921500848542957763927465239792942396875396803974440549791200847592194843395875246973956102175236800569883344022630866544328659676810836649175813793058035868791260842086297614521441899628116730559643439363119671467369353019062307780708871835470809512454355771614822329564771881852231113653648545541468620972464258453866815460456337521964404153407826765180270273682183144588878811919136187796157220392950618280583477296064495875836309192239698899696928938723516106308411622009136065187681036013190254591538962356050078439098882102367166633472964624188310090608957203508541269444797304620289348915024594658755438812008892801830494653931443892246445595951273686265750759368650373183088637599774889944645341677306737405241856267889227795050951323903264611798094019446075981376992088595184069965670548133681552640767266039290850267251113553449928317468837936813755492761854519846467056373529539588887981772598227963368005818896843223851367537354823710382039958223873067789293509028908527286886423998407979470847812214352574050184832602990596718097649456110752356533620180066897358392378043573034563544380944831575334645876050301451665530012472210064331758007306844070223992165954739908753670981105930768493745208311110570518659158696188140518928249235997233990999289148248003323747820341268996558897851607982280013690836233578988924435626175773271017005479314159888054271465336556433328895909813620947480634040870408123709244540662354855339415552548119847890079918845837765505149028423666299921797917263601372423583272642747646156074659613483483645833819587330655928338443520072598442838039296484455835021619540127134589559012251483247148819928443922562871322195247663141636468942254843732122780324592594224878939112248423774094460414623393817991649349872489059778394216288841186665039761649348819277291042943850591144066251248556410900595899587783727615759849614701755566423422055150645738052966385356686628064467000522071600055090837286655657539754535633090358078389753600972854633553266119052686114663226091736947338200162084633270455004507935327272549434036804007804062410751613070530224400834660565643185047503824622905263849511199096223446579127836123385947028879452954542597404823903687404051463394898426785630377062443750142283831639314543724049573734456179032069025510869756739869158711375341171054563156207644407439271476761992291042388563604016903310462396337239031459270029832116969237070123051833036309407612821167153790605325922272600403079883573212960322939594798430952368774882437818642468810822648090302343066288614399467057021451863808302321855952248286558877802917949630366347067534141623972743995262118513863325970032315545409590782702042092355167781274202322317200236260003764888299743761658902719171161597535865433932662230829068683388967221269777575217352513779650955882845287920595685503514494405500784573140004859399855119587754522309570223989552535332998222549946428449233256158747051683025511765579372021405366643079809259421063386723513632777392132377822758568493467442442733683953809070516209809513003893374521046408785865691697789934157730363152368713469722942639175478819154454602837698682741193207922047591096986166693548173209429965835999011663815087697825044666934850752249967506845527172641900817456920101528449967324915268633907990268419802248549944603573619198039834960023296433138459873643757856201313130770844879829834666740604231452607366461188304639171941297578326260816981213084524500524537942365317938222674777122289872665556086723766803004337482802625024142486014482578031169468665064087900646527573816756965950540422305161042339218137260032265376065726127503985191525945773737468513033319959611457833190093167613408954765970310927462751323125794866795815917311499337829001572519495874916038721783627932164021299022562020059642076397486483452836994628289678775448953217027321345998634261647723133707604532159300693327438861663736107544470760672699531429545385391141643705310203825735584142095926951616342297459299006072687281773204408700470146587821570913416082813695719605369747075841331893551731924321139107212135061589839438703084072264662462749472880088648744067360878708943354484266836523382399188151784897189836392533941212889321270868672424538775039199122067534512653413799881048091994992783073206685703338404960077183352468098867110033005759324364642762516013421835156832061199011657929416101920241367873124962395679491582509030733121675334289127536826146823557511453275850900519146550088855139464561068285780746739874159058574567512245385788602729223604316741496031869204351207816966327803607572151096460188616640488228009118299221301969123756108318771294794781548676654081706182667607028474711871105344507553434510781290386313089006337250540375982422306932093662669935684558586272902385835676083428461089128830922063360957106073835889842502771799305645655944860602297283943215905433436362775564769713274196079034733804645670891740375674303024133270929926234739346486865537777861852309049133846155253381543407701289567028465079693331760634505846388068930130260913652705006392240379098904819979389476534756275853088283509139946389072345811239054473197729069569467927018605029550281813744422127281111639347878145343383885233165870255291545853329480599303100037133525795170300041944638669226837421669846080565872914295498213740235385363566608848706718584402287144080819421328063763919238591772100941953132608872187248513012122427210890736457359053626979882099743120077439690651074102918466079173094393381316506153165225052069891083757838099113454931193954435700458485592042629190548752138806049962417974280902507337995975858359203397788802413274327144027800160078282319675593001664813578304641258749369627583958144416483604259101003635425165754014075282696977914822856976506543404989683723247915988287939948344847207554045183303071216148360593182166367570417762344579660351373863085549315288252137138419585473964461237934184530813982286479707742761323841435461679507904913753255000964464582869838498083360315904441121931161115503588659694938723628218832785754221169018612717079811446987676148558256797396163974858157144973638810378297795824292351175657319564358984180088610194280307682664369881879355423828464042589543142697918185118223662824399551903528797680793257046718103885049753483846708370371011980796446148298093045665765688831430929980617805664763127474193929006566785162413272909117077441480902464250060859302063251115520489031755253561418946299143392563917352111712780615915985034428419687911038211903846131391600880376071222135302084778243089355396916590626231682747033921288374542847476522017519373746485814797041142389161660456140643776354263277172155459466440513205747372571956884056199223250478081662438142350260753834153111001920016003403568245452447593058908915756634323256200172704731065216272019571581715055345338170722187562477031512871191592761940373447748959021892459769654912613915585631828078112377248770395534900170643875617993672147398762841408345057362997171455283591521504199981120209587404303278397391130333265873344047612130321143043999624405704808304002100949430317302833588307872756493296146078873665034795294419778240718059382907606407029155554408261955346625322341887641263577106340389744762481640586936784461578051605983637941439107570940272702086955385354253321139118998979450301835753712811950482106567093819132151063489341728975314084977904562983928966935120886408847925843999254271112685239258607135163693318152677259587410692873694153944389202343136451875047276716108150046848007375199352762198125391164045985344428215011193830785720046889817689860191097853918008905487146053546534179467395323486804766994928130476613245957749010287031954666519852311515219082637675325666669542899644001549781442773853564051264906014666593175569077908558076747268936857352207503783401137249349670259494172787992319075734489260647636311362196658337549319817715228845717776699084797395440446005597469216234314818368334414559830273164472628026875559891780789345042973543160992597959413607461991230081040916922785204075336142210465468789567558622111655008725383961717385798325823666825863894201287368876949763003903060683052006007212684016357650114357844066445004020719021303173628910619316331102981857756076755723804054156805719766717573990567346182945753336395993728301899771055984278076144962390676986804266859377438527030612930864443504983448600665353575871918232173404939705046349701712152072337584249163558614676321345657741200961182004324888031842051492894010723306347294978244679245759405900647426341471164089281617095855653475673483808365733106398296886394641701688986855597293997469845018405809829604567698993196765152699283427486038739228550706087078679195452954097099140144061249264479122400834587141523114476016592140148047852768790348120581418712020634480334514717237468837321565726612772383608515162885800492689193878039927275203649920881697906335415361064548483374954649461134102855009088292745645398899211371638799619837065089126548314622379245573621343852929601074791534024204680422688339776608979401307339933653867625150066816407635744617559419727767146989142519632023569700666458546467461849400101037326706553960382619823131649023315720278317059902152353400479039263940724139870992371275266881605247549224392528113622714008167263845541881915434564224456859216600897877695870632038692187559385188307702570107676022420867614872834439517562968366039221706333497606510814302563575513630222152783401695338843991515160613131559052255167460194381738333428083182262237977959937909741043000575462548240289991628752282493992757725239392242428069718713553598412093585107459499035887725946851479567049623697162078950658088243850236095663031762270354804920087097648945401851766387491548382226257341873782429343388257414042882913648572859568322650502198181687753285290293075643464572720844418351338732999222802189120296977933484664763003438157076896746467795782817664749353193704718235858221901454720260778092788247990928657273547201433464390926282666641729200157711246673828122986150470213929907691556282265508411331409327916685027725682355115238957868942523763576734898583032716535441292581447551542596665341099774370266286334436550817017260903484766673874938531601550104143477038864793677905032988204190733419385931960958082966973243166856302994018901723012531944784940552178551884745570130741039685848784634590796925535542109543310871521178120620081767163668939097344319735487478631532030549089864970948593347917851694293847544155752326400447958054418105871047247782075805377495293652428021434128033408336217849198980812461925105512241605129253572825469546302132172368655219085859859289470184032575211745036166391897969250789075155540575222562749524987219262293449258096269550988947517348081471414567038156881465041208399236907715310993468020137110267185065749022027294346994487651817466892763213107345120361880160673853201471249124780590985338997028869324244310755772782849499471984928072137443307569028249344220510373173146109870415063413958119907728395042447622387326638968554194428109180302816829394942941740405577965461994018206174730748716105407142915593909005175629677708269766248664588810306721236070293581613178724262031491744273111333436489341591110545889980741315822683165723757021185461529860260756614099681351795878495285664547168683345604789071717109567537803023068433039860216696276192512311276845134105354335264547967429644102366438394851246365814780663804155406014775096623037824442826301471025146259737474302895117126199242412561584873798096279068354920632970550182491955256083041156494967675352291875072301563949750594649234851812077648881428511675457496192823090207915226443324151745755876729627063366994959262539247288917834655115040155802499750629579901538763349697999417010187389910463793510851820011582562311298066607971350688015399731423568991725025030412316507891959979809803635588832257167624684112548001847273646128858352209248971768252870758602904271088027216900079836661504408747373898986927494118225515116594876178572109507569847335393318982234482016120734510499763557662919494282295282706319727187367622871291655905767463959816226851113475603085079278053542758271058029636879092304126918135794200982688735277351323527198389395700779931257823087478157344829182706155732975227250310515366833730709752400781003388690848006060457541776851915215525341413054204231414138273446518146263751285142939967411119721104131023134703956384094378943607072363665353102348706785942814700245715856291041941584693519762766222299727917682668241138787951639217053432590832863035000910366341550743650102989442817881873580502298354482060433343714934149322332884549237729637897521170817008766137707148699567979589959557805152550517454757600816094283083202702601213218174960892388215888188435174550786765200800029772010821802591452825065162847647355365858666265426565102798713725654894291171321926640180608372181623857241909466808259215344561210351630260774165235437363495154422131623148083039230293436337805461587285983910809262553438303122750904094646669518571113079924706674459395056217421013622624603394926776349265393451027020285515574446411140752261636710944390003590895829134246986503631023553868849075676646137415551543626163284174874863291267373184279190530721275465618941555399148217793901343487628847327744170758994448672301819906054681785831762771219499990085971132576868653508066024521576691123297458793503544197101121328690761144459064821577488041913474346161312322342695128185928699994660888314898384351153808217590682626893206152343877528163349512957523684915929905160934684245138893297889453048918060769961657614045905366166418687877666819361224066062226901541959565346870364153325805126050790470967404399705174872958300757622313686781661708575750153668571338548287022046783157480783649880846636392750319214413927231395837174667590896839510161776342499153367964482798120581120833764041320287879968861927294534364966102416374989989191934039992904124272811153773959831154713050418069206941006258269220570115290312792721874848521692966013086563094108236766179769262972143329844070576488204491310486898650688090353871519118145637033136564613099931914310487099253125942497051576554061588629476394850261980456816227914946619448219908451120232493753862016197215474615085837878635729627817223626548277725582912197217519694663894824454633215340327973564654236730225128466046595479602792916462214516328007913854492736167613070639736623080468649006672971746646421744657749459991850590210192810746024200778958596004299699975205736686035418915356161099739082989721250232280601810034799264989822829180710762892800631535426422013193232359205833598881527424593176178164148876435867104235069060265996936419942625556878114594312257859584555925511062962034448241586875041584365445679416372703328954620433413135749482675739831436732373083112356798832399331046032624961575912707471985797409671200596000610896859555652282433807033371447359853798702168329385054900866390169263545877005453548518586600629972402971882400260498328276069372868190530529623447921369252836537808113078588779110559721073451885533172721780265391990693756231308741254847468246656969141972927344144201759252338133089492972925226029797252539626976159224214615302053662488334979096795181216731580327088263463465276828052517259711404443495831862321648758497092271342134711592000360586189036563510262291985330412042734425806357022163493796543713911631815490184611725902452172536049540144233908329426479152185670214298579322923933645906733767398574961856447846655268658856818024073807137520031462631758737064383593400810445919836343532671213035031590715717729726567848324186902964565116856172026574913991280997677328279690119644528023508070801582849041179456465443888417926376737063860290970127161537575130259419849067202601689865601061574172937444665855205783878252129066458929534098048951540414741885541705582210264682321557559218670128072139960908208042959886287357377425025199897479480615620266704147024876818801387355776820311580400191595523264473613053193378637060438563927703534776191563169831574595501585445080323579882707214870112673866089247537435254116281207620131222052160336717225524626953039921980759369084339521258058921219110334378157449967571418182524797848225299688160812091095938305558657208738724189227191866427393572409356506271998797731492185950730253503760578279804602406599803012569573090376742035469840890656691158449168922528057175629522202617132402983462773349824306491619580251316539721258014238410054397732604760277094985571147631215215039005938317612833954485850454507990292225049538958447030309691140151653817373328898166865341153637079084706911411751382477167847261676322822759786447402341813265621436671196561628333012784397749907121213402726299088057717939694320161179746832910172610930630449326402053203087395019255485018754500971673738696148877632361458914009110040058338367641229283783799775026861863038954270958454685371482908282347376009668310618618517015962957597582352594745392932248411228298880667427148331222247241805365132445684795374050716118615256390492660728699091193296547811916741976416271424343343481927651971074572832304227681822089122859962693231961584530016919667822517287939912272860106581195535350683139298564785252023997809760821738304168631642217854384296341089063645686987536033315639072070121137987560465458545616421350486979362147819231345158293565957102239635510091833464967921059062765262066747807029599715065627216001194146285519623808130983695135271006540536392874924615401092087394734658159465035610254881230868003136113620112463929161497432033015318384515864874003082283980648966536366782085183730420942799076800283877960022242451837700663091746963868422442882873835886189282253141162966841870581929192715064002900750132297672912306635492029201196941381985153974834139883933861704654600118570095026164399014365957090761172473032296235819179770407892479525318937579288196915182290356884059166280534690756668656356134479865794298990886196621204612918013579113238209699626158549104254439437577606862295238024216202245399856971627294357906633553217949075092722652855171051155590767881127755309610124467744397581167863060548617235432258179146831517756761269248302383642348619592317868038325127965035384754901893384600539486340769568244191217575095258688240163185978694684613840313601386357877277122770911346622784839167686905683488178914199953062312442876636620563043571104666420739834427860818717024473304814844824524774669178081118612505507798385316204119086176377378916748487972488483244347030431709284094464818072068118078886485541020868833844106018246970482334325297053109946705708114679805104575220999096895716961657460513232630516869238700300280612403515122005234228241231675076862614887608542583395117571340113348802121899025252126573605554858308656221362126955723234887948018009239350404726115344818974683481012798491127622843780873349355508969717767062927890420740446497482043417435572282053336784186649761399597090189146311786597711111956147887054496513321268608957794140086299356274725948590858260807389480647902242856734111435719074926788208728034628403888523267778182415660584749031948230208082187312215342050878988363835975883355084940511199874619904958292770871065325555819485480756952902614444600505614022401653545597865991566591091363227261005654193509192240694946360043803905169464830504328671812978740677512400006805811086944651803866198539401775247205056178057561019019068717582430449996639419701222439280660400155591777698596954851533353716752814748126163392971768729611352716964330126552587295870274955024831077278477631371233152106161261662424494648751387748847630719487838991619731399703978529608530463374465081951782840898369787825556510077199732827511033538369735191625328249585941872332966099451015915099116690536402566110684228618329329068660850127615475793317435998093978750454882617334252951050837706178302224265267502023219985805379350202857714634038934735548202080707573927377827810215458495854160785960064167835505036558689703213885573365191811751690078522796859309111879599221252858610462491062393708972466556585000714450145780701719088857306450696407911661692917481839839029810878062593946331966478545204202654112393762163823124187207428235102042544676179569616816119583211781083846959460197120485061228100074835711696911668783172207810288024085091220108184994613509499538916265676579091385834381697012828188368275593784618600112292402816907536814621349695522069394101576570764731580881882678297482180676472714457757169447210589701237188985625586483467655252694379259975245271637183668649337018003845420821333587461273261008088940941678017463859507626513905171438426899748993779242916435028549599098151058165336951121770812864108391447992599075271289801991781347595276394169910366907603752878071612418817050494385452924458866854527715662969095152678743089055515606888383296235118882841536398162086432003431889983574399533041400288807937717312266340825666527417545777529179163956353629073290699227010169077874288989044663402938658893744512666268632626139081570850142095718497212923900054023644323808083524679622714072826312241288764405046497703179856757687343095232581433145696957206146932747125643409547431371600449808683671497470557781299260025805487046977701427013142715015248092179598268457149745764801962702688115540785819542738077407190501399600151746673040941918839754514642846305338623495217605583199332245064291306352643440618316732322008770348033633316062784789400624040420181636805026871995169027332771822221534167156030552478009816271226996964720018787602616503751791782118185095158280808836034668229815763956501409561262928939270745772374503272217014601120245111867070394858580991305447056403417393576708289947795520925821088332954323612813534632080948422326603337925248094648536346362631378309545538389894877781135992531899954196037768514597832257944729939946143981024451106947676085778683736553023367187681329554268620265531929605184797290509671888877546446282920148475016680512497995408689761426324369775094266152166289764222165915281150224769863225631393988744796798449831940396981519709007677050946162104848590292692528469644174123655705170345567783964121443209350938906828275639988838759181609397431949499789584026427436522844414738409382950346972512259319019666368252882262791963962518769734305106991886203541855545339655445294469214933312675207294689791340721635493090329308588002512847887098145290605504824571483373654230311996894599446014834675927263639263172882175855462476026312786304507750020817189339329794679446389037813064364572317165565886885022135658505770023169283559856754453655092454418087425520516394568859942873092951453935697630335839200075771547003874822969460338939118084176132203012177926542792891770460046325876966748981609656681368929548981421182904585732034884636030320166855179093545680737277993983568556620794454770305694486633465542063597705315767065045385238612560976604225042486652416185568325207835932768062613003838793965222257124014037725365770654407972437236913847988058702846949431884525983500715134056063249619195403665495825551113875455898437291861280829113209356456662785832622943867807203074705321466556347992581721149539913150695937354588307726986511264423197757171823135701805636779563862521323389290084368088732333453458920217900645968681323332371363215841476625837836117218507772198967364815475480213977847304781542828490540937824285369040970550514716065787283505378138286413794012964113147185404676546776754576175435978056299359079184193113557536176000660871098377696464092243811930711522775581026261020513895749407060944360054992711078421228675869364339215897594997407116195456853239665236727331991433590169995420707219780387909507372821607594281424487124358195697610733504941139116401463433920821608917122138657998751232782198085082224977899231570641286258515247514127645878053119205213358038210702723399239426881933618011279902247454420454731471865859928584987471595257029488720708005595962817744185965308474385087080954820796026989766310801289685195936631486582954140368073227230773388566310465779130698206745573952493809984357208040071708055424082515273125892860622286368189166932488066877144462597195536673722286255476628387583955286457446922184581910022062910633824695173203025814757665193949455114490650041592916942535265144948513951738997426998121926088020196429521093314082459559495527237944593331477752863403631563974668298738076137916648442515338588046942908351138237505795052393120674807798724013306304133939395592205447210110637051871913421386281739534214248519849163900477180455232861211648448344336633947751411339017087246171366648089277428323192986457972758185755500321939662750718936012479867940133217964147109294241158783708788451307983596916715094486162357110130975177920881670088426217827211478821698451039103997836355751489420004872200175412485660832867385463405828873727869113977146281505590830918764609438715501813998011177156984206075145826610841778042156947162934631398806792044465468023887901652144602074636589718586895677462705770395811438726538773424006556928155451848190600743905045867999060911697161209055185153338880474762822108986502831103024662251061147960464710899905790546025632174057608135583872267870757621832500719157592745816624388546714906322980625476121034100959309349935134695157267115085564443022631728755721921936347036453637109959758654640028148703147181100965821386985149617117120817837387567427288207733720175842279536507958830904754958768834793894076482472487525147426547400528029805936206287022470252515601405006109859399368044833414945167548502987293517717069372264287331974958862189730961455976686101955213632625451432543364666067846799702489483806905371610572967197823286432691533211582374724070467783256178907003719806953189482751157006374372585001097107010120284585877320519641350351369448693133350674495063785518578769604775039282162920341779151280968462705924887755682183892489041014932897894520775054855339993515953195093391851509729755537823018287519479399250045797064751568142880015638519327116989349885825069464376656402925234495394191155810843365439194653094377276249976415169707314439098437965493010107845730804482550069778228991275249225680075869823197970929425647211328147468712076781878206092697739279386551469475824789874845177942983750795771907406938977935466991294356240038981910033633598899133555587795080399743146420886040424031538425486841367619027476803771474671547130453491922158882231078856730459485456604065845215145163845301125592143278328170153939416535691636760568017065120205985437307059996530326030110239817002425185729005069866443763940940283259444673056747453127801941241924477891045289367598765557431860187884626552902390445332148775872180122076484170768381780703773265277200996268520740671730847418764625588967380389243484729759589180585179262572456320803957183228316501365417820912926251880637844848201355903945866115623569045190410217117447532747505304493725177136253664612152457442133946838874990297809108640003662016588112521140755451849344926463616541046640977949388523192878836035133888959085671232461682706495695414290797027273778332225110777420363385506018377096503595875139278802986729711964290694779064208647255703691092883408302472062102677178293955993800488125713437928021987305582355028580130683948149939612904804534673613223546206521611289873794718469146671032199014353199076366553116451008007598030055934159633791408218959558793095120127233498006639126532582670868170378794640396885068754891018089207733635799162369132080709214879777108813602732132579607050198927298584915468663665210864785838410562403216773810711238903007805046552024513377201110075597405809570667552633413276971097074379892166626598852782833454880253529051152578005364637198153922832516263018707524898046174971545539652301148198844686061089332798095818556961174379946411076580033232816639617376619162342165440115350822775573892743935822511931170474587324122352118867909966370917616655589030842122987284987411065195660865202674320483234997916856839863568103157042093906385781788108841491607601946067863352004722431810391206123229799625213186802769767984956513525240117638139353279657935544699020686854415670106606629105073484233239798927563845871981329087176937550898979976542303499590973779458529460258981993721191273819514504111180959603960011101431973533379276262428365369032289142678309846299046518184850068036500069224074267275224124355184668411351194528987009194317384896297507666226928969502978269484849466097998246570361128144207174859451666711015125754810165321476002742279924193933946277777109169670456570663326817979922649325634895469503941347415937938193998626712146945417561296807607915075868707901770138371174955842597980785661564828590128380999713695280826848968509652381624416615054755927885875640687113430441927329188224452724622277174911524860980612465236698087749107271636733255016680683775028702529495100629015838875346217371832415203928179288205871914872156008307159353277367556076567369234961702390926161337102629356501981571572439541498239189776167077642309926680706976286825823249562540558309149666245243188451703781312136607432493230273399109040762599042578805465280605414473722455211125337678562722911829130300402084876883694850346178879866625018697592767005319801605604793006368381577004921417630200321379517280616836636894477233294227870477527774461138043196126585080700937126447615054313783661010959773459742291858539268796840153318436625175777494126426637424618878985399840074338577445614332332853207137408414759763029378474661659212342060733815093570917402852964105244885257780726820404352642288144625537207841026076123461002284647372222654088862854705754016530610414305232500835531916501285388287704029336842934385447481494806425870373265130046447328080316185340921464887900419806891568117240240582618127892976559735428010970173137621044325084118219523257986255675885469045193588198571097874263138316129987177069684094440548338834252467713362591557766057521211945487607949390729521416259544466512569452526689857378697256759060781696693768535018376198151952171813564105901284289481638875388685865000046298184691106720069135884126257062694908341024348047075065271642040207245288990743761240708460905077902112761407853335594804114315758483195951051475562186124712180760654494688595579086437560811460689133958077568765985957009962760326991951649469924157238111283280747886546234479374009763689013351634813868308774010079847702829050025249827286789992145463476347471562230759360811424633661879467931875740180383253484916727218584803011082908382310319335259176735696787697866040017207581963771601039018496901429882306553997107006512528396234431256245821464939936041492456485636405590876967314749126153959773909876770724288976943200923406678504415206175852234285945880821997737855992157777943457319121882612273809677277095631889066835306897253840076522636879037571155868607784054894172121185308528210165933787173992462671992107351638352543075881339442266354216835362891127055928270166975317440237196535414934059090709213251914000960228747178014582047111767497247486570259311484005794533203211884113095759210676408622677293011082178763186581722331118761081537847933537396300571412979525030414645415990487127856870931562397974824063963468072540179232548963451582072700012898949079925990384488020203632276895956732446308361148014880613544132144518750869268574828660446947742714499236372478649834606127505668742706639025462038981837490767749524573628850879166077561458266195303060102799343910027654631361295718178201964801298541807980403526280627153020103985514383912423462699584655422069056947702360687844005151889809199772112129205419061256857635901153043678659162535964625542365620016642325504924462411420902361612971852540515882469304989452714202743742227758634726335504815364412558493478692031039672848781853726472976192702806915226327510836718892532521503036835394123105446540415742420003970672577281976684593736343700181455715817074955235120612824374511308731983252865470930768478478518497063709889197099216204195424698321056511759235587231527666795852575719810197590043577880670946621370061346313546530753364708274144354575772536637726288859103446681314221133671002357140698134060763019681392960032003816006071034814614489335043108990030359671466221787361448311586536613255747369822170743390558456429410710186496773897383370634199771576153313631866664260537213875958394179887408741130129988565340109706045926208735614634093470353013551950753809330727611663349137637378698379675017173099041730109464990618726347408247269920803733031563310762583828568273037905765589935965643905577669570827814468641289574315238888309604700180269274708987112268078508406920383596758249363438619626769686240595571222731619212376284034596891668501532191495206333071010925451616425443078330320677041934799170084998561976271566073204787942130893677738931842380822252797173097053326790133818272164566832447727414992054845585237287157028709878233626701392209999030362899421402024797631789658599511668590059053592526304322388838340821655958272669725958895526612231312151365210158421017039190615415464772659466528034639211905978027103365824142350757875136116738328312798693694400711965900345831128460912869202342672314174459538340173818744213523441169420539858014477686318506780913063900940626944327664282922242596172755450981646939425066416236800667879245901717669666974519489345562973858344600369302976285684575494223624774843556776360055752942792605216939192911462014734626226246806527110316642027897972310454115214704260329575733766372644048708138147734181060157865145460014671905192554008926193293169117680709152196907224743866365214513247265203994639069509141079501940556977165115316559390207332260812416230998413302493284518189988481750228831226042694826349131369539609959146820710410026825645245293741986814897505066694317574982374783059835828395116646681267196758371401679501866086881671600731632801284904726308150321111013348859871951422475760993445028187885872786738788679987909605127443834414812795466193913789167355306117306960495180866408335309067078047772588323075298239789642429051435388861388570684862369576141268718027664141007805929458688552560874668439927816081106602847041527807416466230008848348841550926758468367659617048940544877190876575703027440765000630074685062234409510329282462890215749826400624897889511505428650070454418438548462647036004920707153731166060004680517058398691646582292932107995077112802714551151058078780604114010628214321780619687351015786957142539603014661382978409261629364602328906852499333312259474155955055628998714627054619868811464395628212418860209808388024142318306662122764198566225422737780128178454013267564594031320099920612723471519483977935018073849426992725540622814077621245920025334478146557087454903919642042071775865761893017256121663726048860279329840978488303595282843887148240493391285211651841646085364895694695639102564260487892342603072551536034333900840530703876328093295948593175446290630069169903054458139361762918811496084829333163725490841456144115574118955036825865435593027409455611188704016464432144503800225857773291861658785718332924631435959243953645184418482809092589217047046138977109103905815169153396712157094174795127240387341481564193602357037176997794171685778974801629416399126760265001462348245385144153281962657442021443914060145445929762234576448112389603458432922629465196638324662885665278078865822636859804989538075138076731707663389377197393179993985935974163016718081235387907390829362769634040156904629723325088170898712357319558705269037971676000084929438704721552797590354225037736599218129903584688847548848544176922681499013158138439165297615484047020640776934379606363410054000307828806925428688261327417153431993865351411363614587661801457645305045011988748875369137660461113149016313966558251988871059456267855351843994229700894235410029050182714905010335772848911628553350944471937390991407670471655756403463655708943964091939610859246826482352236808697835142223726806927444508172174861888651351045231567387306980750843778375480812169164646185112350687387084071923540229164024291358630922997713484482618810006302589276600025828223950619800889593993487089302532584066889062023804515668336129091913749822718091893252299643004499114520076148814127644917593631311074136156397557067563013693286260958689326098558985297872790050174721502024221220055245706467892155894902497047610338627921711069610889960213139024487421730201872406892811484608669098148311657725722817352995405953595062302443530571416280920183957199684427904662353779090641279508192762717106177305229858842873927946665910284934306965534376792921852611486169287437649602785470938327635271063319962964685911676787389150242324964223294109444048518874135251762115510753731074082201891777338932388260962868428254683328417294603042075764400773643149604747579946844488972277805491855123516020215172328935212271861480579106011177881853221677463118856843154844090565888923429395673561348727578414822783623478419015659066342038103930303604446478734322947449291408844227317106323343930911841366326019535273529333277672835450363128737492476089635158107036152058455268967130869574215242243431533390621361586583900121089593423358839687350949482014830823568720256627681999900135141998135799918413338540195594456839869560738950578864419557844975215634997066844446522113639559279862294559954754237320659537323991061607179843349085134153437213146293658275279971052766559407720787640500261212910982225127443401863326314429430095803257923740338564166540836335242092506850454026874067379501646309206102380086915827837241456714975903662233577610106607927893163882957010409092204169633676337032797050226504924483089016433090921547301918987032657245201649282343905431786329090244974861368912821082813173636586615309821698125696729896999516735601785084532614148371759833062311276671096982526046959904325023715814089287460950095853067909923333532890379499670020970269248680185609035604401870116437886340635434677081255494761720124053615876634537380799227227258543160681369587219417222974457357932521080495653885372411006180996915426186581167266455934346565533830461593547794899921103581077382023152550765944442138936901871768591097515551613072743594126131996161888376417370915874610039666960613930360187503185680697618938275823228756006171981460973325547377803696852808505420675824102655761675131796815222840313668066756012648763074245719487070701085714464366022935157568729735681158698205066844017575501603554295525708635977073237563499403082000916153235290265388378131472969271865806061015056927736869985233100475906671080692121041861893024979571677516288197062835832833551734918527742009002209574272146590880037069700916832388208994314978123795689634857204246289290014531786820429404979906825365768970338360531958822902691203012532494768073260554029074691345283723494132233236312220080099672680813449758107949352849183889418560418838659971583958506334477957960318946482366096540577651925425663496362011436453181089349503851200225140959432322285854649950221861111226482506900900941203919423238267702917023024572509798188874511873549589547368943319511505898261559401016223118332171413152670623540888621617576068560224508728789880145550658972760295303771068521552521492399043285065926694626327039943330135749200974832827309074669536827696886227692684632133539515701234471227290951189969207606415434868386917040125495460889133673639972053298146037587761371886829064719956170566498760693214676465855770221506812195354093225461467821972865752721910768477243096812398180086187821336395469168585526216859747524458299754945444821097462623867688128595946195174782718054659280524513780740944131228176441104209809599715760846999346921323561720509826723829550204575706173308067364421746266918110164020614879722245859136373194402746785743160288200982835077258076362110347688530309052641718220618133121954128823188581128074157374990482350976983679261457516597281528692142584468956684995434822890106250374884468486350944165597181988456557707718929449281772916681881608894435567348628345627925059731424965087732325914449261927865875649358822007417696394140181040032233729523796293339222966038598553898017167015547350502802441126267473845155320541637566808402942848085444422125751174761508351575142315270270546237003855418044969443465734924102371233273650229784726084872078736316545911130914296998092277118829174092053818945119289670157308626137677576671050807561265416538635693238619239851946275706225434575318536162524827463122373666512418410020276365826023587295971905895126744708166393483020924241452668314969205353078352078764386089659558604573055870088462901181247696065873452887329891733613848016911093250344895214022303391357548919712953905802565392795698882350158592334795781000134642509562108815596135564488626622899430752571408318926920863214269923867419248982143960539146694940409983268992561696332200245806079117376983704358503749442266450574032208048000144493483634822140185219062919633622342231241913138054837484723523589786448838047262859799063891899895865192170513222374657628133838705730292127927833903486359942122478629989081206198605919808724029738158887354235900182827144882626418394238064638954261573296186739485156952560446539044067770926062137422486977629826162697777255849788137695646696183411462644899801037895595856681769793176710842595229293006061681831459591015981893210025628503414453611641666968419374091762146495113110977878278223704228293551790798657292967926358946828027562141712799476702155485112268225105099576756219529455930433796662635298095317542039962916169088629353585035672819238424318401607262238209696301409925514605380427083925894828795232313633258194781811941951335330558864644075093478418394032517823848953086852919400533157091237576147305087220998916829819437796313004370712628050586044114498547126298829084795684634096284433486290653494656063136847477687161040829612769108156489480584781866081927773677854382317223653288458302232048966062584686834067436219287822752023031769924047463287811721038896701405101555396293047671377678873549261495254752824331701450160139451220427986042523960884541157476782002308981340945487645223060488659331090822202234642715025453494480430778397168684096065954553353737470584498869419144564199580435359376990384262706141796626109312796879172598652746548687430231981378879733466647714435000724375813474425738592969108441158948464846867587100512240431223911383588606985184754962951484959883495530042253934662987320277882328128904341493016003209179033058775187575608361928405769868422425182361996470276198623756689159534610225842003146198897308593513365512017075482323366684893966603163947845735425894038641445245770896467380553576877417775082468864233757008124996231390639528124872347459510358845798984730259930587134263404728931218408003635594598483040775791968222001342100851172903773255325578057902634943137194071280820375442847375904791847137104445298121457294055878167555840595430520336363506951496653313918489146975916454798429817216291503421858035516970232494719983402928986775151530767045002727196527437107581805208498679031170252114237292551604702083225646970236435860465402368029956320288713559400114106242014503985055278826983145856938272063578603471832942040333184502881102623599737572665469598096251104868531645272219260719686752430800428402399570036454406922533483074277145935025601499832537972327831605766747019317365189582203771631914249674475982489719430785763535301963350735655344486368230043088996564917450124824158837714686080330803618090301312768683888750973835353808357948483784299655440097200339822287264887027905534633550819943276549599346149925789800809630866448732388210737381388323032145201455365439474331010496238014193695108560885954724103309977130097730055205988998431240590345436009122871115956076802696138254371707751721527200446847131570399673608512030478381371110434184159734808055563420136001818323140734175344787786945453315905056094967365505733308785946178891384861473236465951445392020225722741739734696692643667075856397337349954477500028330790285183412569721715044222535810383834526828060292797120339620701160683353833720987935439024789005351934532191091124196629259956375427604067335605562917900894978290719263833393011377418096035093309607471080392718979187712249063255300282495492518105322836955379220310069413905314960509902647414959892880054923260396973291567904946496745574308341258270240477595138803901943433545279089786814283197336244853123015224489728997674436598784879264987122417753875383965445377739041053854316700055825785516261831318462303450205744806738757214574078405777422771578168859715886015594572396570465289559816692892969372677343525552197263601822675290353687295480176625117367880326767807546738715343854129193600819784507223550221192943895407492802713027530119009822666957970458630448635721450376266801437792825894428829871560935463505640597773287689858877735954436511349356286769037093034661234200331460515061514394976198106456666223270778600289008368734067824549549080513992738477682576438529246576282937387791678029828233285895466318281069641049365845948121354342494763449385478560295038008998628836466788813646747035973781992858624110875960372527003987298152852447412320113682503006340949815100194014177976481854956128991405149310378790915189188942891374039768141392192879942078962626523412602093645858852178547056385638865700848323471443706557948578287602947096759716393419604690609670899584715535573306157158577480627128173789046955960894805126445075351062735687623564424733776088037185087079507451597668219930368220459726051412169919040146085618384548166876041479632416965214672377918825297143214097570455879361056132806521854782674283699748821991393616483884294985823951429095097828152168327046742331393606883530138589036817218753884278997466976908341693853982234008444205044729588341530378581304549521571219341491052141631201402117473298062878332069946120230668853926171426691122398330832731782401059069621179621956636345625787799362229579833183113319634789736207033330180998163609351678905667610812445751892797520306736685890359784929040783010719588440719226283262060694768815033879418399201842921859498671515540646780200554035489091547830834503295734799145364804280156326574333901752731283869997957295503468600435107100797452975778125420841186594869902304416778996882020544771716290183357561910841970228918482592412133273154922794410271651890688575265673897597464476723031046123622798750932279085126333826833643998568767955615418787514098980599400372620656431081097564597171521776612671013811275538993069067876537425826382848417164744087023643139077089471294800966761181545360327448272963968627978039670486798274404283654664727114120188794593667158093627901477285454912990653889414052845894108716424066232058318413790176574913954198720931960441471080606281799946853595372137785633055360501656923329268252148873863654873588153070912333156800654237552541165150748574882871481160873877000282169443094794118769900494461305870147579143491061899601005032005970705052200711899795742339521473202465342800263057882060828707632532116254408547170110268385878902511582943898070932123498148651628086458397461333953216703044500664424443988123964167544473615986318610505127943287354227352522235545645010443569389201076777347567912828300851605316852182363191822208252242749000211283052013783380886773286168880285179462790101312633277471640488757323616859658024311348499770300448376578448902617897538200193903847331231406609982070582185829907425167084570687447925265856182986727168648808935466028112793289909623821305646015109803267345156103297116152352709599199387526725931228858566898296577963307054381206817787875143898193651618963718770937967735905870865192552866816018488800675306521686676734444313914433078808417435934571612573203174541564272030067057632714332293682771874521862886144504935884340400607728156230326616101216787065622460000249950987291681319167626736731624932709690782106975448705909617722995411650671981616070780244752927628816224543988078109375167226387915783989971634653303113222243167923463198801170365027527694210112761735266383830212618727666244819483447806344147589849836502566064895181544166397023576881139861104437286507794355661330158266026185760221751009542361227011249184663076442766113109598723756512022257974440607358159671935072454311514383541648191193878216007374433893463453401757402590074353892465046457969917313192219126019159272131099600416653381787143963498900733547661678170303414242395797231273551635784623945170846854352202648881535282788879727349572259491000662528789611562865143675781434314171523899981655964252507213276542643016246618164700375870795174668396584251768086289436924816428360697702151366572882458943195008630904427131955301643716035401569270096151417287269160786677475934514035145661821140265038526099463705626390375770795150304549522051375349260387705084143143927808703682359439089626578803617202193664167729070488744495487120200090211316317019762264108585324025518027822168735610781358177895386240330772281261413472431195660920533216247104356371523167830024197814635154613440352722690722656731920063370925360025075470065983577859310480045528257087623734243819376314026651184220110428062970553313703925232842621132290809900211749807153691464536909205535249353661725881087110304088118369861722630214872396309031846759329007424658062246782270062848911142660519484837890223134088576105617729956386933500641819837427663512798145367508108533674499845737624890178832752401627234968032736488350155807746800255000752259339357978554875396184822898662219700459865011976979945695678916822004748899681891114814104424107116879331682748723865140712074640554105647945513585212149960438904933877917747972196219878597352240907331941575014388675869262007105802253063402760414501520967399511813932864346631304766385622455223343140800656970103312196024760871304326464997481264676624977269916512653095643687624238808748518789240096174480640975043742862610320996830430903323553557343273756885767301356535463519196145400757565465616690470560975529990605858269701736055678852285057253918460634039374474478500205834240850750710941646562269074605531195020100845284862570560155251600129095303450950817756928133681826235824065714402097874166625781180641850317160881609335085511590078493485616975501259703508636051932199175344862876402162533773587263002724689623081195536807789976307701401183464379762430375746167420903899779384186739844167626300691543822113049384264849024169742838896842148759932867382758966408141837739133977448150729490191790000548735629928322011330499761755453938252934150544652807100765755450146260571350160895276126315134526479010876449944366580231521509589098258284509452918472791700743194636095775205284212050651569036129208233375570044068260576674235381383382182179031383974080965196192639788907842472945691397785504885939581407607530630087177779425959384344262394910687889994717928969029816506501618420419194099201634194215861786013005356312073874692277687250094985927504978781218654276907672419569528307590786858718231883148279930762848634764469494397427069659206277076502672111807612678928111645113112760244117015622022180509313229073459812891639711192120367619618203603418124460494674821358502111752381741859609568729178109207752686826821500951713309750423235993810004141429030162533893036654333645612925180587623789080413815018415120602852273815728139486247551991771346744774038760761777433601203296892200842487180128668564776845510438591507509318485586985766340119974941269863636688950156705250124730272296565126934263270806028095975917401720723813309190667566465256416689702627288668780378713700543320915113068162269586759541254435603430942345951385592617644162683909228889445170795614094451366200074328568151576177600419751936473727277788936848705598563063471012368964638220073928343251014642638219933092138759902934884792549240114398418716254926909723510367655867675603470083135217229716167046783802321682148130869226138632108977076039688452860352947413186946656702282122748627800768239419200149519310431178983364164334485773423821772760520375445630122323984321295919140784758551101918292715215508973436179498996917502229839805209329796210549184135094962235447173147648425632733176858033850720960626247939412713042866922111401755687013660510748206095820714655414391530836658282687226409146836831601503754171858775235238940463686347958138747853478824938933223831958171940583406966188583319289924175421090310004050106627047414970848612875652898867784611017533548694711883190427000542279073126672337799787804384033615248369014101803060575491932334896867889033932795241359475933692226483134565210296613010104032912899681852581814789794073301766789352443405089634437399011421811644543507341179970788479974360884110593344165632040559104115982166472442432678965849864645517825839167946089817981693179194180499053912315356519907570828210188500329884925970047598878442496951101021641387043796542364211699746316670417007670098087580064071491352126126647897459641111858540891862400735544519976902329661488567940424411240954790181884175812378465947627638554452815412569068857395929096669097419312714714398058747062681783883689934455762502037799977666613219606641159081303332531371996498688567248478238074706440301608962307010277084533688545093292733916581700492387240237674507621752257587088881325406557175181431953127094080471611224811909457752451047939209379840410213584577245048487680424465209022630940085628877283295828068386445381663789761350620729166111092410675061168498435548708285014616231787138783320660824799664746411857056976407994308199452216903041127286697469947661074257162280447726733118471350897547990911204408819941025540790628415717598617889624078725469230684416226409171306352263514780461389138709969446487500660971104156394179549343650206894523731869619398191178295903336238389337252249936401749415910037583587411290924059865460343834986655803261308436613550538688527422576483192452965757126228974855353040279933169602268785682385170926531341527183995937557756021694025992474106676849693171326079369661335260275519001909313046109203057932540153827705841708057569071671963533185197360102845645906008356973465862365376726636038638460226036987267653760046092883708631205228449404642013909415255012407925088048543185213398351494703280427171450625986571004696125162345493867908053100138247745642065692357147500374719096065959833002773917486401201660258039678700373816596055343443287823387456451760699652246788653427237639526334849434213021766521306172301352065982079122113671257530477651599339812367842453320553893258232367444984904881798839342679703460902689485313890230967396423265338424508484181359005087229510853672097726348837795281033490438963918242035456053044087498094015939000904160449340505164999143657792680951276268925204350711449089503571468134371887753972056337716793664587489419058694779911755909744793779213117112966632065696990634112080673572211989404245160926646179484122081067878265586593531530671239355024627059085476074302188722243442007719018251701876486183088685331771743857942098839551632203794071680419002925111412441563167063139922595214804733716307476838366816638972534669573882797448691847691598167692665787828420487041727675758986803402940753688329998159169079663614803152063347604219826393045834988902855027019538314577409350964379124367908488420034040827726111951602094850157983230608028003111560985503726798198669069662027393650494001341382445340513304470468557818772167856118239677791430567930383823794340722333639984162479513714388968917101127832903006782411702249163682900194448055870167139606077649770843101551120867135972271600885003211306835584784463618066077985111991021394436797083677273764818491379537033675153440122902538138927933667471230424631426901243016493161149121500303473998316575379818397465168663940189449499262309335564106592381419589252503134124741420935977603866444001023085332990081460668309025757502620051009565402408329922020545970521179055835740798207574296410645434051467268137245869475758698378014229925938104074451283176527571750337344299381084948979662079845366036814377628198229641384706081441556704753906708114608185438022302163654848678673811258860688452494030048189864989859228167213442513329577804925541807252490041662459462015556396688954508278913256990821919629431103435111714417271905153323653538936675535010590897043066572163103441098429316461053293826607869052652301464559611482502259770477760935969252418994969504455479760300718920053559044559195685379376152431598400814964046833956226787373974574031664533317128271489775145877298189734800395989932542334745260292415825137048208394501245628659450800303594248155288348529280207804994578991004837956671156745899813600148189891506478095680722550284918954400934755176159076543969608402781602672896206290488206018450633017336648133488900960671196404548347956160714258074569996372280971441679491165486994987070892760680894233954789705086351264110566150874274715279083641470823033473587285044339385606022935794602027528946972770964823213794454116311802828028585679387511357752553191131404675143553655465637042176686877384045105975988270858495574023345993938066116271286847511415466457265202072856785298640934113555600136328200901196984455182176536162486138641771973289123925404166625208853178009405344708167340819309510977088538605896195030305005630985750336812118839833577752448514918005706193585636575343491126061277213997941631069852097136391143797675768994536358974062713127049518042730435239079473373408294222523546880503660583186558193614275589912204833521127661826857603406557462757182672978960986153492109675697900968305298476869269764876690602834784871968811873351902807277780782636598072009849518312275681358283618579351006690236109196353133696804732420285235158424459068526580879073614005956622110765422750406889841268790466793579851034247082303706850085138235235432355407283129934418933539603576477348334149840632895484589483586605656548790777060152381716365077135558758541749510368408313140585773444737706731838852238696394466743067080916918661448365874238177703996617225530163769013717218223139697809341832841391633487278974063667181316463690513220247015568099187306127267352637215799846664290237036477788220134527202147645849706753883331123545283914898442177083086231339853092599606473235921035295492459385270637540889653520768721475036655008024371133595189091921545944443349001655368992772108271015049495894307871360991353709207780671316226607885385430607811168046055859896495937989169595979010591240810045248646999735860693438596175662420174905718906122106562200869808425509290912091843118455451411765383477213225848051704909367683537089514881426265820085350382809775370383630133727601531579926807333386408105681807382079642950715736721741357630171443403946141878654610146336309261566236462041114067501435633978075746531688442935486896549285416029169433371757734801091842894489653173801203123512272512556023161208508012813479343290649310231272738299330707840668590735606458120621540870087202057852563398816072967029696144551087814454623562916755701427743858308549550190120306467967197038187280700052324402277186736102768279394233093274946642374700737651547966154870252153320905024984987396571494575942452321684995099125555060154579210750382021328844127135002453477944735069712992587704511429924401384875099680100503874818050984110477687782233562242129676564940068083930107166607096227359493765889692430418798179277561246998605185599202862916043492677511633327681465980923099636041291342008587932904456699609372457442309129107040396670248543304569628241636279894947352993141650056180573213711106396167107037772315650127008528975118162357500416534655969495395466541910192139397247467967807888398307098597197970296647993261019301429604965250524319245664429283560036988753601947767417052798765761242974572908018297051525226871062914715833010264401918822662864666864355016683747576231557322451403086670397143464312216528081161452095888871413555646418939331835685751487251679728153905905634069819312311058882707518078621653077321378496094729063258777656248746530578168677669153198831020304197664808379514888841155752956915851952371362415431706203260499694992336132314832672378183442794485387024781991000464008003837891641957162472112590338229412957534401780251110753124003233004120022581015613244761021520143756155354778529004437498213142106796690995620282803264605046435155166707724057860233736381826057850561997892587832017038013391209935235480232557801856422091035180527761472379929985341665411713797492100236194849286285691349899225349949062991934003199590202686230952521845354870346482160042568876711114235203532201172872266967701907016290556134931153627112541959064783888240239702646758291566981849286844702355325435435529823802252503241528572359455493408835128289500932167733770670823614669078279403709282705744981154853563583639811098399086042206975126856034487847458440202205899988514484167774090672265937917966230937684932881826849582282387888659163613908512345064558770836473749808660341502510801680868889805621218445741656515298184259191586318315996792225049174828296247935617784121025840236237640786155654814293737163384857434058918765320292482981203473682246015969488092955313372269744745259624565626649678221640722971777512977121798024243664656782535986852885197602488727477165149141568534672956573674214870341813621489324212357362782802146332346569276732855147933259348832497403582357709973759380452719686991904082298609314258240703908096556556400754322524872294032464973569451822897338712209864475586369635415633465246439603511117781061419070254295274457677526348300897144787280307727111188784169715264231491626315286179445499425799910428197878311311667793299290903670399097961124124696573521028087308631158144161236988267216620417681514621449073522778069290535624776312066934640077280905918503701873060536104584312513361035103090230070045530308452629956085108951435686324249339968276956727010503483407203783845665358156607501568985399412075636935739095232138957298705474307949576497267053007318169057572324863412104986652974156353345653992822378683278386145870481384954554256111902528158266200800374594018544351258840925062484321285221870901651921366963017180044473347111531996043606917975309281248978609030415533470755923187267403111002823784402976729698371059038460965734723066272980038859862116031801342966398360465406552680600494698568707109172671447739026986339756533480693861843413297103188291711367498109092453812345103927095176059493785361115702803584520675846032112454768549536988326766995256906454683181609588563923161196246351422014182221146961177916490412765041935178223378640205510161302024159729130313541857508449274427482314674258488070951623810149706192626548453095585162158626056648702214185119191921847138080752796863094970579766186897324032807477726698526144342983226875415962853453307934006933926647318662831600686268080628305423660544884231864144798073926959253578219614025914219699626178240659109731801890230548047698543062762027240087069318416108866197522985796967784172117139364570162214292732024828385523950278328128963975690973460008572892329767226116976639385167940836175789643724422807601056873195032870517616082834287999492184610824752769354756123211086673348586496241336357183913783550454273503297984392748794754701339271532388422593767138642782299563102924285426519695782154906907149394034105191399260367727904489637815425290577489149039285315869895663282881086052639522570302664117582427179906293868681576647665893682957109815552388215611173200385896899965167997965658375518857443029028157802069510832171675063060321499477296381502222309157379062008306242774152222372521898486481471531337621753109968980577217127985879038883824821931439786252856582106378173763922107466331760881550855696803230921220714469790911617674607104356101238003585721767060962698932409468366419455555888398722616958171922065803943915718959460551357201898841671342447441935276719549901946462122804254409305193295138711361327260015632110276354425385188382026301678443768181501928319770466153464753325553587008277341073277979539778642355803962345359437583642512394177500694605743758561689459435238149854724664433496086764101261408061071956354586110937735919956757046275203261477521443885170237451620544601005290075427732863259576771938452887553456138341895648996098899488346313169369586514919156326950870306706023575326762190760315993600080179456718220445252392490114164330369443502400550779620752409662606431005887907405727464615857491847079090731816373995947494862190472217933824296746619290728958393704778562783598532119405256557051444535539176599961191715310044919099569366438035672363348611414687071129464513248625014081170116876354958162969206042734346732060989376450580855607361424970416320545651108213150779782630230915142052177094127207549598823092699896499277465168893781768098793006537513390724022518342089345273470903939740921115494815424089044114100991664634456979724922534931555125867313045462993192665491847643427165338329223437565464954543557990620679716500469832605460397089496527376295882038141700867761164030811730153897648756891979973038541406801459677875583447385669807926758839347417436723956602763916615714439874823120407466772836245218301040691263748651643458510933423487209732844499977269134065117689798876488430856084673117082366241948186712703849943992712717838756556413857583039934580238067349395493459006563102954406194879140910335062040365323506681884591963951986665601978845926591709031451530889187471406085560898268850007011997323109679319964526264284430897609737247876830711785391455602539731612841800226432957903225603577707688024524380229629317215801233889039973737880910564677762370624289823589306812692745751937695676191325018710955249130529762262080729548876512212934647444284887121646650078067069942612553348378065019510596676257370253687393301143781886055302549079105174338186227797459670080626212908305805071902521743803558999865878286917434720833948256895778611353329552513511649641805951752959093583826451263654401763787005320937805420867178051271430494968838482651594931386375484641501113066480099116391978330115284173248571021604814454223409311225364715979620206144228440155921824211556822251025096184945213916613300333630423970670068494085169186081355025333305157504722029429219833254251093876614021497831834745094715592194205356601781335255338613781769360455288721507235335394931838655428386171972420512098412685733461316240667428192466603163173300156250414615154048437147701524858772154688537154958245113391873869422477536358604873321404322293662956655807093348719200378657608827655051903694894986353760762932991484024153605291003215895620139772117968676906720080633445130509746232901361551584191269101244414931645220892707589063133398632398098363676410635704209123351628153489583202533856785712295713343346485111568577179858596924465717596631199615615200759937283520500850223599959588870147504465487932042816314363138629130871123677513458398589537433604932007094384808181079516108843161050842965998092165432434279878050664544622189819807154910661933892028747741436085472163363246663063056787745394091157229008587707807910801523238698318676209849513091438769891676101954717497260479188810096533495682209621549861752206493339889231166785768577829902849301687463892588895275202981865990523081995478268773271604371491968862925591087391303188396252576451460593765083850927653998803852958947241007290051661403455504333822425322943774164061048990495998354236489999060183687876795954163537682552807922327028652075428429539015081588172757605273184952030683693188604025669173786519677272950003381377169030578107516032431916902771088849117625622102850489107939298968035500815127584935365643570910802116632941252346130929549589228579500795938274051181433916781996269732401308811710690308389525480377513160728130538248394752786692873882850757236844080339721722000531350701615185530854299659557003670761676751880201055058873403122056534130712223802910086611242137264273323126174927922806599977440581166873520128113188849707674678684542666926287189362913532736441505345343224299089382604095433527814911021748946538278050840304140413108204844553984504188213044311420691757246165916114203462421697704400775360815258309235370347972594908776343618248095106120609969574444819445525970395760700428195623297944715735690598736214095348640312604176819769201807661079696072163798093708814000929747500758816267813435555272618334897473023249575180971811697051763543941408506446479106811913622450923495427050791557544838755188865040680846736355075346797482701215497719611859795404728977009915862923167144423001007015260043491892923377636542475641092694753330338594245530528774069972960110234322714278086182937155737417968376600618794151779909494392564099038906420255641003648163288980932297258576591815049611882456115941326484631821144087709853131055400703419459483746790904157104605118674323717171688846328227558141645930327203826986266182936230702925006586324130004762328161869535732223425371838141955292597824612160005379792110995289930268962515152320628155491093186741922108903273114043502848982989046081916870658121554511641302852936963826123189457714083683157700265291264748036874238057909467932701959763226699531498751804472640020856212147331878808045491048646513380958487328761804205013854076064484661811014930663467737547779994305069525688774762485818654890870568317690443666616684894973964143325050057255542415370576982119966324835962730520253059125160812339724637561637419850453904388283065284883149070275849972061551915386793450248280104503717837680617758555487790957857457350016013043065347697208327315973452950341992371215089049467131911563504181744087283867649198799939484536787863636767611606145260952325280663004749147894298261152540701482626195317287967972710645657494915009032861359821176908782249867136308535426849584745788930035180604641140490618883604959689231181277706228034579561254379719551742297710990842879718078238516093577766204791068018621637962965616484899764986147092254205270247049830362110767160080640045004467577329777887434863038728758146288346463312373602509770726870419234573273544445678255917992669345646602474138706134047726967669859489644543422473780870200339313846862338646096696476776516163687778903186687130322180392152112332869088545443722354802782216746481596127455379070551507817540760101917267639068650650669886273695225541269774494924880717126653071038586925374280824612536221119273254340653619177044130647707400170301415914316978247714109707220775060725197527187952801625803800879299437891002191691121710168849276492967462464395860718910319132406101717813403883186046949646225195696976626876597327767978016125063333062930473655584645371879573851048556487199948445089767891026018298327257291507278789523693003609963951383801998383740665888152358761679087872166972131718119854739930910060214641256105791138538648145356200244820192109552707007553126284774931507550803032377092025163799368531569196646791695655124679180339559049416626444407530747275783888123882092996603871653144961342062031407732233143494367225772013315098828384434733254529192441454266312800974628019070882192492870752674853238046828036703669661281314034617024238299053383422529825546679540975656034619849563704051287599095726211346189594651562360353202113361111308942975258925925192408043071030372240389933607931234072009913112241894457968162737659683348182044211315955405748968626634284411113896057955613450279700961663322151559788424689286566128412918708094483511177406932274299939518333741606942121555858697711163780168141569570589086961391231372830951156778374426593238607793726761863560047328480538649606988073485010930376123334337409158388238759268712318434941882315803575949707523477293994520645875681374321587125892795732947764010455171186855932037459580970277443657919960439230733855115826813616540826464753982405115655740627611190694981806595400192419139810208333111539363758547394264561948721630738041174338273922526199992549034428463252715464819093158939040882521031623576937766716441904581289053901764629594142414540495150384468993572821773685310662927884322891274048469539851296947376966518488748604711884013411110687699576001772372695002397764871517018276417440357273107413919481416970342795772794591576931479204926599736306946137238225498847829825895013163574540869596743116208339796189824073917923939661203581629881603286396336511457807630036235343475381757676890454654299772064779566524455790095387397022846223268242153097809507672479638119350924182348328576948282784994298204703907701083397663664261302137872267024500118454778731697229481729551993790943214956530950580481125962442899951197823464244032588908072614471118199005539005573805737534866711942876813226406948723448300138685277276265779960290799968856530273499552400219854963325857201747790932519879751473986226884889578381988451482860462209164990192865726684233410198283122217827374383541892939589241124048858605534416705961252089198292228100300341462323125197432815012879216831041893229951990925608032208265748843360826907456683916703332492026697742700607267669105123210544177889669749249235085468279709372967811535783074260829475296049138217047850481133911114378003221014271441308402698932799665422962591910382936090963956173005218301974717526872863151654110323116836306119684577418335182368963786866065957446549207920579713875747224786301545773259648558870725591181164591120646431368983403513465155834665797909084553542042074328210649823019347186504334430459868630090365392254337352148597668153077501744548574589445693883581551398323128245372855010792714065634638459376531454982382610525321648557691869164248940843732175640538188746910312747073628447379979320101106814996313573601698287385054145881921068235539822573437696415115061614405868903851577243259435917217543082648279884767938473920720999509134206851020745611617814294886664252975391697711211856656636653536909218106596864852554015883290030866846257420918063102568564872442084219396218271010366606288952277513465615312081807242431799708272955356399184058467091117428140066720155360106710486166583237084453098604563863900972057980870908839930510928730924826738071121363024250691335600334570139578546357785690598307281961784725836465884139835470318403259163552943242274694494579078647123148626591286147643356664819539112612633294047937046906681390114626416167647191335728891075487426567720279431057942825639243152534254948649066147757943502368429194582873329868630224088057306440807836094378453675613912364640355659709578955172805768417454199628830205908330513185331531937669129039262325992394415247332429849075763308890475359630560848918656101685382422564565020505203670414594026139764471391024034425910045588673712730438721301427352214679827080748987279885569287199204894580333840421695143058119524341971778065901240385957088013216964318897083078153887306047392651610689806887206103642627404806454473153300270507872516785909024875188580152116658657365267324034558448962548562207196133985501639620094989807532770185437199905042684376900647649025730038915231136578052406488451774298061301947024076119485973808147946720256963684641207046054267510409872957134675025521370804980184348748404437444424172905846680494175835946214062066011089534966586067224409220482097419962803930223830565218270003327812198939750754757280873668739133503259624087794727808252265130268643978380306164257821781400972229785040182800086998170139037973658856874508695600273298846473265469513914267694895090223765085691253671063286325574558596003681822937488232894526580448228061797240928301056561994889099130386710088049142055884855479248021671002302036132448888011189697469566628793111083199912779745154975360308429165907495377963109421216284912493239231241051322693091698293031689646944686927937422629754341404282805259420449027625992800642202737713572923327722657482932744816426743493815990796776164560686511089128983149814822434970733782593572648475166741717567354995860386177062712127183889827761129246384263999315492041076716191742056236359861184632587491631575878527127152747702473147169538634219801986960251732399722945357109646541710547879140346870660161728590048773817367000749180028928683905668473646419666174179527697000809746555913527043933413857629808912698891431155519515507420748994634365969398301300032940118977729619183134435815532995047898484949743809344167118648489371295800935587020255969469577614366395586034392632983089302540075065789134155592879060214010547270701631942831915912398236009182464732167957766475580228425085773132180335893475506205138765603134469159116960480879090887940971674798867912385847167543349928448675473334973679163836026975934329010013072742837888479010585177705197767836619096784686786265404118087771262113424610573227373004833260140643990352451510636380141459099311713593447099560441849679612365353362259695149335658511575864145891676820401792868820286999597449821949967096275772039838795648537115790044261088743101245517286052915912933604863958448204572984430694080616263274948140574186046589649660491118144573654470762420357528771168020081511451222983729903833313272134078187075653445153296459496392046001794504913486507810226038474504150953393855531393563063031765073384620699829365773889375499404221132624552785625873730003502145851299573663670986604808971457215807283447198828108142716951758777223999544583496424772855840523147238287119115164091390255817867809919607305318194067210526289274119688335218017992780271388250290349364807618957907522416068682639281737212827966495086672049741494539858605308564041212181424253154482235624979049478574051041608456447616893629742404416733670073393674186651213345700328934933645407240406796279592936842172330489178005662834835678160979498710844497702696309146587375080162975625348167998972463877836464556878487186420953923503323893935221852414967621557061943965720708890145739357811985548190660623389095056826964570794722465643121365076233164243267480458162000075953167938582113037820184824014233842749033406453927881868342640143844925978559068192305250601825459709416206640420351407574809096161631645453420813140233312534723504924059176677686729204839241950144367897837797865898412347918573607471333381326539054229172733862232386758914024613387369008038300087567098246209224457550651766649346079395887114923152377119361864489548222201888451637468506324889888308112411408180768512303747842921023026617978981139003882189976863876518649126589051957633329001556010498427467821853247121641939530587835167263571916606849451409583249485383116505893912286229441120063516552409460178175270363754346675131074727299293401587591693515895504599222041270761976515000489607890688529277191208529292556002259999417315957200016158105556474514369149508628892127707157486567600905048950781872250134232551325853907034254223875644111112295709512312076220593413248722610633338871382213875702637041355201104867698474449693445101421528172437416909268999152375994772472460696155894236549583223020702326732510127239220921035939621070968289403478773956216722844222735141268513275133533578761696425160049692545341824648996074501696105529175445913666812093036251593309053042961922412033684096123619557601605508796855424512027869709196687199905527823686528277095484854588005870977548879405393176591996870822767876908385781282959081835859294173942311379987316583694370695714707067758494692603623307235232597454959605338670670066979750777316550160578889872473717424960748590936771915140322735877156154038292887426755736084086865754248159864301452839848288037254636122705577895791306115314357887066190901023823899474051691728297939235959033677123400190772090877866918479474538859644501932834891537660429464323990377489162824583075797266584393097480621539887683720545625789087548549349515522037106590284281363249148748347747910137331608881283441402254847618366012884686846641029145506102312897700585197560554126087591829100262639384559074419479804877172358648190047101846018766421905921256473787206817254843981941815678818890021678848839204019378071907379734312215645193422354555222199200292069472827990705907938120448681940222847624620046700323628311098999157840132153487122420274680749636883487206480418235566487819719907751107255527368506301707230010250644244980700261154703445264753661080780896744238375041979959166016903041545402362686235308094632018293595978416780133133492268108769968443488528199654981732546517203782009261558782486483299027064447553943010922734927347047136869029274117429630669136170513842659058581544189362511157362611325730977869797667020500006295644888449155472005824846664331965315753007972214580255203118303028083471641581707994292574626080513271077389326931575247633320482920392871983136887517456760768972418855059481732429997548176693907304808716654216262546986582950692560059030814098950656932793996076457539694471487678412003423639159015107241522027529121262901213663718258455086872024349188506691836347344438266608616794790602380544683695398677856196117700504220564010415490167213431527204206325982635564767105428143491023201608488587910904375025319805475878424842419185099847876971263874090802704959674294943710384661145953414287283877217265900155150640609731246518019004982612721922921028044491128286423218022199155081636892956208919113263921956356043596676620821007094407277301144298320848603731430465338812644125559540114110128353786061037250631627839406908684583113808706030365809605109212506260116063653683657900063359577774588643812988429856707276788432628428489077542950489130233611667583324169994962812498617272083163837114798222090489650096094314399704920149686439675989871908326080925244305344605957802363132688479395110922438528245690644585919193162707942375646608788020493715312513117043293198751000658751732027058225109278251830922983596925219269023221855121455792690514423360469276605053796275646416097156934672180586829393420758076716461641110240919904853769658277450684966107453885199221853751375576575732973539443722258801716499536260276726509581783423078148602552395752987398347197838640673394306086582629249467509139543373555639571553440419946118423056311521356391976434349880314237924312078554698164511453036977714784354399067549450153161412620131296532579059719081395853136735893644415596517249443483790486057540408549229244712556270694155247743374438258634863202710220529232856303195616575694876807698899334183750745007162667270286952107919054651139764367302305224183367509420989078722312898584575238943970971007458107462055984690650289837569647057607623385692230489318427148799031435825589351671129467422194421976806219282870882699664909517038328430162218474984122220873906891181740773704241112797202274356271588866993728474042203880777875754553537897525680886088814106119684430516596597067496699836028822263278933166947973039671534482483380718122857176146256658064731816435010675055571717943161143825887848562002540145632150898451821607767625705251952925727074681227771594098467068719493680055670768650569229994326625728630773990192471126744539582808486713358739561319643719713876866034698845843620688895900066907107153215412879607962355558609665966286883097070689681028583239946897470495740309497732294860747787061865391209420794118348347357755818791262395286044728207850136841928918116689824952042911032834298879477464547501979022800419962547045577964720040385928659062292252209951584492580524834322353532577925070310732642389567979064915782193220737161658123294251855410104820951643164334255535645021707170102241833371826415395737105056784139279831753941727852670790299854861193748751348288560586053341699983251659410928436736600632731054566281735102953688960840307758451966518632620735299302393326694709726404126153979582025258314187476883488992122261696193747841366198643233501971499286834049463456522641209670926242074814005211282379956599090281183005636018347804043532204453678595731776881295180491633012791727405702969556422132890288877037845804411386743021937939094923178017774532363365759130469071329173363941715789990826262947692059826613850012516617441390371368975433024973675660430514424328881215079257353116953323471202793834475583642618283101222727461678881420981897961187898757977662244099641596820431571292563023702811067219205293984284859797549929596950374611379764730405326830392100328334977167599201625219285512923384212180047134885583181046183842503630060712297470158781106225660731826719124205596329919839599896418284427601978285382090587471435756987761694461049610680427677640732124708758061981649990860288791556215482695996204474775587594374478223916431960404187622577707044898801589251035861798269140292338751143000969698084744948103214260182059342597743057581728979360620661495278607196204908997338057206086395140738228356372697210458505161631214911569039968689402996193075076332552707174975821215592187048177547110254296623248345821128203873699665834525666660019749767372883583962893485376591911887037817963725993188690535465243269571087489728003427713516911973897969037678507956738138053449748650780447242391428858754397664665988029713665114286402382234397813697295301781323804198363084946283904515358904379048978755256134457419688572607721273974120527158127452960043007667670151074506458998880995703009067103724915548427348831013174036372941697078195027681485188611758428599121355635677487708249398693901154907643065580197850988878261002972234202714235801278169125026423281152979124313703806879949389423860922905463021042110700248334851576408433822181313048538878255047198866349080556050487694814212723776682053724734073562084221817382667785084781539371049974699208594078472072229000872082380934423474937922820029758964625070395736887744499205877557192803907392222653510638635276703940946313601207674421976292531856148217725458281860649016308213170830583294205890474495988710065552999139071544563545751280809884612654992985447056540748845771315312527832156112841991586526225974764509179663695287979644398520256443144373750999118209754160283025938410864318134221553301502822601953189022425653285397959819813542343026048021894484876802373806898985825864407974136425818808335293579295798104788322965557792952818692087114911049422424118892674077626500243390539701796083881294502250987173772889498982349946822755397667348546739867837397917711278041002935567177150020247802981225994941524606486879545008042702047658879934354131086415481817570717825057532714378712671965816155786402887392933509599290658015932727634668121154714743175889378946894756122254830894250267750538743949205614480828780211278343051733675402107879445029530714101619382597935973439164757759845736512835695428035923304867354316323673876552017794785015300682072442183662487761945402230884288094863547750252859082284164321276539786006215370500613646077681387993972013095089362653722959829187007025532601602744692351775934303488415395511997758840876511111374913149677964245697521151165015985131362787566594853458281052030977211177766713131585625046013163875778773250124847324022002012625587268333622272036753238355578690586316195346255243973108795646930610256865832821138948818138125493262744815155670509596485732475401898284803096994253082117355152629640617000178984627293114274572237392568101870636665321637001762674645235251577189370834545828557830384843123944285701254071616435410655921404302801141063236019820318126087039644654440848423025530607010009567270241749436946225811653055107495784377470809295532001796208277696266338483751561425897783916924036316115294894160886395176560481444483486363155508930093112299468265052185765773618490011582860352310372372037743057096478883994792234270003099727327998560064208317380826447897369232397918659930477289754437656534130648706838381729264323114645976528105872979283589706238908902913138227760803512359868939751651020768273803227536651326811323351077787825710173575063827964195845318884838230310775015169616206303287687872433241895736843400447321309747432779845464159688217008773373558729967507330175489617316242399299739792501978042266711055011731875672642352316432068859559910964217084919044771495895106317915391858780288556621930495639577231481291946298976647447389005064758970933497607801591884549410571135054833496851193915348650856528505646526061071569214477630991130523758946594636397260828343518626704669120399372817548711680262945884075923657786232633481964166588480555578286769678841005524360427068844810255731275980110805956108814270969531018770967260304836967777205840413512829153183067453637317308566743796869817013068523386029172081908524758456735696514991581058752482785875356449369496539786174682141608012294375782746595284133897154528829901844596132479183155138453468035997791851980203642251736261153818011628971402349704553594506368963234767577302997239420363913047013694585355217547867599140592570736362282363285065577258353308032636394956683120429467776998132536823832706799469967938882607016525957221589104977200872802805547688603479450612396349232286188305352770171033369024988684194158171051907255512920971912822008245570409033485672820753334389144161742104164957399331281946600558383241001630201841258863529343161695586192220513322988694527592002376272901351004124774280899580753405959218946084655359053473846853340971843900931876877219848192559400636765135465023387950615869511581519487911064351776412924135493908325305762199993186414129744010593474079882263675246381803221192078431711283899953261278401984084263226652145053245983466226299158966168355308209730553073313315548102859120459506187410839778337380554945258079984680434087410648140849569627104021122793221791255697407566604797417245403100810902816656569568815523058957034202956559914530856348888241650546396675943429855888345664567515854143695710192432322362800322472942273746409162232433102264263562304613524304520799284211110581872770974684899793819989593839463860422238098591088089363585364773300478451358541329371558260400124124491829297029469482013212774343764584537301018953311103199433683740760032676715439635892776469400023621360637450280710041978461267930455641618538251954985153260789962271503565442062186050702500446257336420867774984503329918520900587240718547472498422110415935952388226899061533896881996661890834446515158717064000836061996748226402183361715124586431095839040402788791401834330298085218962729248299986347241881140891282637993106240469960609669027029062323408933806566315230795231107760038348351422929487670135935762803522580838072591069082499354235949360116375624216487491314230342046020754753971426844726718133756398721507065646083065731863190836049365475399089391632010591203796447682114319557452721358976922080035529622852181827980315250864732106623387163663860514939275922538672001181019408221866925573641736840962607730763248757011479364518222464343762967601098561718254042657444523373416557893003525761352199769420081926887639684446868142151322260753437915194188187632817206731584274175148759196580492130644044814893142334774188341635575917102862476953843251542395486339206947021363470484091733884392690258716887716028583474471065939636914683508304414344668120308493936485960098315720240439630501612048011483064851866471238566819757116967323090982969288511070492064200879006297785273370489465758764990787319684309101356533220650005271342620075857245557791895929019854668443408902077427233034629338270879800524395284010325931520530298705607845076758294789186725268110641005869481391453306814310032927037248343175449705312812673233517341725344037426748156814208498677719603674700295837087932791635758987306456453300256370584148167576942588105184616487530180019062502488819790651804952672638118503123515770628030228191995013796628240851822317536899461078860656108786438109452086020093859573896690078465704623808970013924464218403376043141288199901746376879464544620456658764552414601056085526951786081424026835025099030069990518285421334975315407966336267871492188308961379987907967597497083971537674445787159533408722553739651649861350583859679285907147365296940408268791952252529305038973628014208862072511658321246974497410408411941543885357813809907096118244191184266864019966850823882017212007400392919224856054117457268771027070588507786690300990616248554632793191344024306041174202228632855219878434170559053956310219658221457661551030320966063796104387866108973749545221552673127162132264426751542602114281396416194568562632510867010289816250282970568928495334950335693642588205435612555548300038867430378446669947336434091262706174671887991940175549414110041468271491175409642626506182292382999372487951688601530645057422195198323255511121293024088056773426520055053381235352984016584798042520694787247873963196848295126318213605881126853556782060447388522204921549268358763665263077172523097574878930221336939265127913081761947959512412178586952020388728846504728692528311398617132099528983094324104985098392590323321896611442634098394351046823716936841906696233662409212896830124827668015671109542368476034850737998661451601963924214419293721684704220536306585926747537655996071465535999753600928702384527792238992648963147349207568942716295256723803767421806151780900264579928070269915312460688868819639573830390276364977096003651009298137385087785166468675973816923270060128801097082094835708282382704215758946995548996152959037318203392162049235343846756497037486706673079952612426513335014780659040865341868692201352685705174928354129206072586297920292125791763361775735380776089533001318973849918403283453277811726744904683668625903409286295957474008363783457941625000903492442578279694418865287248333170947993961893215055637607841526084923846202398028882819022357157579587520817561040957735881881904041058681298066163556294570699391504784053149708087564080256397186897295046491008671290579936668408182804442302866799724454611379217129834761577131189782653762004848285850709665310244914371235691608128725657648757618662612474769203456071616097318872292660258086156860363706140193980909062530339920759205202659200649521522096415303565302863856040904310770141125017973498175029906429546253652194324157572371248344273136023378953349498830462937182760133817769942461081299034354420444401511171521932275968161006986949631259591161362124859507688917667270297184260226085277762645155404188208315595129402047306331024794021925344247956677703121122855356272155075748378926465078234540309313777710229732064080913229074352961362520420117713075883696857020215716176907160387072318017737302455032413063586282230557514723705883737582462752217195394182305259721157866819738170212391295941907312470253890913814108402667971531268150097214218368345459907512678387970148495361867117115833337081329925791815501275171217334811620037971949724809578118856553448372273335598151101724541097309643673352155750020073990884081218432263572571529976487864598839023885057569300734108709434187579861946234439911889405348500028116059199828377447495515156755853837922387866591560105287938440272476715878687767111515420912334671430970638066603379617223836343855368389983912973872159959741806854564435012622108086655655778654234562947884961300294907698449068555020142960327349696857868708351157948931117961106257669160738405212748390413905717867746501686611610562506632070240032310293218508582076275688775981093933738563025743361449728647440732834978983897326790477873378409575329737855058142816077805710705806922829974781069495775306212232104706755421100378058144955525311971810977395992970426249437938296245483318975503426375240754225444596664868168469787229776614223831741648898434666057528538875384089891303426260718893976585376482338405428029652883939511691252565274105114647673990945380063922525661319049014308859368386759597414974342602856704086900826003472018922743658472649988934089030907729757094117896984544662054199864261578692173647832679124686782748398601234058589065342245718962880100176827095719341450055464850787456307571503622687452027560644448672745314911324495437996958275733495790231292368226538851066876402224613007194121747888982951556068233839848750781585042816075756480318454554523883257922634219019898723751883467029785162808367916682811077716051493688397001011327538320776935531213861460703514522005410906108447480768709737621038971222291915380111001198569113108781657279849807554037624958076192040958551496472669682765608245676592726721960158494368822488930219795281949635439810302134971766968381901107847752564713790432975556225419621377435185888536748604479697682862854286235482103396805846171910638694843853411229048935548143028477656718848371462988392364084314275541891669631806878690340549041308252994990919657880524522263555074982568652937289209222376992397826580791685937319214167184471338825136955327847741983305456976371627207337385258184716530805082584221986657293989736674027882403769328362038027840633751706624023746806036146636787012637963760827256783730418512123516331841525719905805902044307747109983401616613282978221530001705500377158586666038524441244336586341917937570514898008809941331935631616406582334285012866778265215749649693500763293481821964771005689221827044187974582726226705065215146126895134949118506867659788823696169124978030420995696687341323292830361120937578132040326273312758136092323510489228644382465961039848892009849812495855334047500323737582616629461323440273253245621269766386827318864722913666618834108345753701681363647226098767699375937437770317001542488249652505511659465951758850483902964956238401538009222508415998449184220790865139598066287078960131219146926982487813615754023778692268893108304574825832518353231634939918217596220142834596372598916353922865276661131388615051209298133889716453128715650285290385489807618889335631746290152751923296892352751937459558138520323295524303514640893403633732084974855572311114527391715416389285828993755059530868866092440437028979937873753693110798238265062191998996230344786557068466491259832846214635232672933492394866407438118663123510015418637846889534128990200443598955331112089828553456812722881682016271576669870763009901649400876939230039247298690824985427938183981926385748177076006558025984633975953001561165981672450812354155469259904485945855706722349934551491264652018727840361626480284166508594986315775869598688865024396814666915434448263024916128537827958347871747454358375923672166805192638373434980029814776972139987358745002395166716456470415633794571314972767594982515732517608513521354904901492486348567119147811183805950364646226534066538100653980351608774765051631723821734829401944910217424379248519020193324565427055226948241664127536812968786840552695888210889208335319466741030657775329944760483496576371328369908510718142253837630274873639371898640908176720752949841610536073182720765073221564496092750239491299234047175800762182469536030498683889911087009642281975791779482115689086368593741184695409613802902457912186545688399749605081899785898156598716504319627063701370360956746202745981884231563607161368220125174801106655109684587098539313815559284151013703414467630244665174138665904363000266429559325942052823545232203008443708871758951570969659919324281979152322265255632696998765725742602062178817935378269887110659460846006696201937865231319012170390146196948692569198003313314651487211203396917375960489830592492739276891967870277873657929098150803536187290356869721961132781584431307610506862571009367505361869469232662533763407480832500266565912463896363354288664822131694023205815543960693542106805228279793577073085340174606215951456870534327231808094300760335221171392535010104724130750254532171994418441069778958305629088201357301755919436154615397863203048652302688688826296742309466610625941382047943818382434130858617977154259134770839458542809267644500682892590816930500152603580208056572458110623723345836955427999159620339296081454555534111318870753274409473364620660465252578106564131489727860089981086097884189746125760548458828857630668035272030607285721518305827288688568957544620275823557415685638556679680552400176368420163847967983562262217562538683953562931883545387396506989001368977963472215166419463652185192439760438863936308195585987674735503126793869955276502109127354550350144713180808134289410863414436786328050181701592579757069583274565193244219550085791834779891765311057021450326470008827532159765653952866670144182112527521601649719595305117307542806734757972829158985288300324043199734607367755444674024071603375905323750113063901654958018074923459799501292830496908432000988986691677586197949068818211574755728705548620903483245141053712201423619291964973070929859049578522436541806134788420646106921522142040190787086442965705837191891490947460902936391735524767066158738088969528078832258345912828835889433065797256351881175158470168444752589622865722272121026093188881262347877135563524925571561804588987782515806433971424963055111851638561234084258664562184070444921760664403637617716204627186556085292762007596372942977186272454560779002344012570000728770298979150653581342425123908942473411582704821298769583349218459540964069839244974176855674920865973398581043818770577188726196109140034279183831984868312222530370869230814600105308277862167134828324871787594991213148442195930874451243253138568716218374564887842737489773429380169719794405405988828425392518659292026771136290027773097443708282465266289071493421217469614211883448885509974779063136142728817799270654321345595421828978888313521071168305962845670325354824328760503198381007100662335005379758549224404279813739573922763721474643350456777359079801333824626455611139606392438214976628481386325923055979339359790174156641420497125953184304831947138362550714115830691326625993674950846670071837869374162885338982005253053521568841136744896653076229454274916156818391206449601669291816301104413929569129591045698335521480692639698193338643565738322957288901300304481217184559933188016716097103576837319393028565745285073214437078726464544244661541841371948443121714388308969427535351232293845514664099209515849425846845675871458095026634785179612616801097542657236044976796818742583008412732559197712723677847855571999721576344580376226520715833542546189462045061507319484202618080245015658599441421309250183326085661608711732427542875783030563419002975950401098678384981413369399181572484903987437805772296147238276301649936308516083180335763026357049087537325647743553928185041917403524091303623555781326309021368756441158421414600068068643030226744513535862524707602291613176852042289916290240102456697656666508007043408103115625030160733411028062258581692563817297320380882989281663716603120826902369597016117930853061970534944585463037743259749963514546964944342058696057318279194314233344340055413204506024703853813612937214993653234744025732262660297587431603252496589309532870829164635400922077154900603481699482293514008528709151493248900155697500850339926879915425716717441596421640745317346763389267055943341272116362393528060807968197924896835544467630478283183565933103725426950003697930534402070259719317506803406807105880227203336576882734778781863429027292504521857270974769593797999715502273659036385600329421707811534106175103559664045102029737689764838919145199639890828445723363878730119233619154536493201004482170845056749827317532457141166009922984794012961417470059330377497116900223095987273712321191728411825603717887087496412232268428995555238759304306467066540290093980857289095883451748385658226718816021087375176649739608288710385279742564825853636240774585968206065739214358266119118217367502095757613357106932190374129372413776593520317564997155905587423177353186855895994649169660696651498259619432152612755745920879116722772889895005546383761034973536158593519885009027626333130414852353461668646517138667892602235759352403192937217800916891784298690232437932857162998592641781478385241426646096950808018335952565520461747585236363577717257374910493433583010530343234148028860122859310372884778735451327360866353246681197251143906892693468530595871613179991361715025458719632300460667895022733576841340915678911629679197920689847282459134931605122609849801814082945299401803549382198682264965285650078005218183593801565951451114394044496098741143924722478516409624547001110752689642163809159258351147270303992989476078780848409028141168522963367452797365278967361311539582235529895082211022798976951244450558437519075771295545040796563072856834429992514411508998189132874259778932590890846126059378909847886454508726347330955980405405982272204338499029473206633145834090468367573222459168938700058631889936854722491347856788520001074937763722015983282038378242908561593925217143345472574089780153006108726290725417425685554133737383563676611365741604752264871459831532245623025417735864292568727302230344433634965925382912556719817596083816497183796661578733504594559228680849165930958149990406261201434089519189207325080743007088904144743428945894691166391047549955359398316466937963590274020385906096499134573078460734318162796370788948504377526054897226251800168328935931249981133616092342070825816618394351962400785115390031083341251149409671773399258669269855647946326034115466516069557294623614223212517919078814916423268554182831679436689686542185557020087544048448138680592952644271749222575020598502058200724789030661617190011440056156738857725681180016893922137777917846869460915986350810678529680414523623473523016219620939930506130691472225470087996375873420021183434564251606109558920349253596890772752062212258734785079225272352604437252486410713933123890606130010990925993561007627847051332062070489594007584069823007000328468514018774668475896146110457613682851742330171800807709888643200525432481361353608830374753072852176133337357291577720748176498287989953050205037614788349707917026321443536408791938903072820871315199604859647482947145977859003176564689697273840911258167057859461415617315846480143243306392869629822832130356015019107613278615777072297450969385927199861575108782089685290552637675127597527883063843010961025305115255578651624696240727995913865916235334185990526341043442548570907770968637066816819998954476764974134008850802675969984985058891818422636597892999861601530043010916709854122196950213095944058050865309857334715709824341767394527149067036794752758557276113780908969109304583377963158510373211522646520046591517516619238730929187655015387615966690096791421559608382818170016052001162967007955468408582313928284944345313314043496705878601479829767489500304804755776073616827328934814703894347850322186808691752036401325796428546047511406117924177870343973482967983994152835763938400854063058904018740695938871770700151989955395813256664203565868195203403889273360503380300246806045833688012567115364753145285661909298255115620256067661908512052537362453318303987296602038915389549981033571862667909993947945110087983608999023318931222287178681984205115949488336315508648096946451050026712856074739305148422120023480898273126815342082889440332673446522576792268378188822820127700742576599698728906360887367984396219013939420974662673157324991107998581293995518709283950195208131207402501921124006824593585488996861109930899635317165635546082770827890985196308084131640880702673174547233498056320693833999897007607902936274081849428931437102360877889479820579673003055240625355427680297423582500287313846209337747671744788019427109489098582529228406095242554476603644665101842175911439936664925709555991449898598625941424379150537148392919911703698515283136274977360140229117861798067253092064708799711467475195169892590897896262970816137576512023372789610728099314735724393058766808383583283668376052592392308165738324807083593443314756387926622953585585238961482895287000807801498473766670377509497006953695520120916193096175595047560901092092944047206150791625087787666498855891501424734272318867969909053374184977831797877558672467479560942862656721935224609560999911984897047592403651361567890547545673892774113662631362725873504390826303428516814568041884540142136203368837170727888753173240637407292542096590341861886183617501731779293996078799321856081314436832261928863866819181273887701509083824666239808410846343091348403660291838827340886296480053210968882106804703679059458949877966841634718630178197533083588080713675063029248077586214451981560567607245595595727457480599358347367150233321532415366080062056129321198491318704069319146727876398125202215773131135258348752155297039473741581325735979652803552542177004471737213669009491663407803231960232313551578775644739593979946455847811479434987290894489317219320072230325005763201492445459102282074861002497381343734150335915446563648100438258576022795045187385646859018780674652149224673181244245665723424035496975761999937416098953955862872612053105405231746317745296274221217934446334997760340367066630702407653353074610540606071407016499184553646794888984446705323917409900234302871896227941932317976209876404277385831820592931234863673621338429428597081057102504429253093058022674645142913381148401608130244805722784418478005306593266063589564416307136779125228322724253229642276808667482125226146880621285284752743813427015112273254540953106075385578817361618916018330214716002408665397106423243959582209855316664715296379314206940337742183694343949581169484426838472797209194490234035972704410881647777082505249875315059614111525059627067375521291328710084863660723287896984750160024845270869586210541304417903066649618389612166574518551633474234832471644121367946164706149046742298617739521886561647945428043493984844633004093034198594955062824381072218437707571311277990692398181789160150093095418248186699224518399276287432178544419809579078181400814510677424740000617400548572233488358229189352903920262429210135214830516399281700031486418162199455620539185807176592602002040263921599160588622972497451356513709021961788775020805933111389667182749300662581860930911512400172437588337416600985240127839718637290174752964814325670616786584519338131284759545635864144281975898000116477057536823636760475772705911249179342659969706716426537377095072711366054977650084243489251970675078080796068571850193137542904402276121504141158162530796169015374699173799430710964088670610015202112157345208274738927723167014954996128180385056870210852074737132179379452853288399701989616401735892347756264354922181539060948573238369279280893543259176363754358680937949689987782550405874961907321820909680721314108028578725696237487405510666440904822354046547807321397064061463946589744566972905550514497643381488600829347802331204198193067977750736206643405227144342482552707156880685725887325915371600173555341011269481433136673275991191474157942514188380156742254024587399057945577004716398548762020575804821482172586287772412448413541010908641048097389462729800385319070032665339603227979068438124351618220357226105362621136719169109574666874193844336304446349132528842950648322001810350906500322435798464336573652400588766428031548688006737267721863239240666910126209780163476789090590541752166550073599595700081594007128600517283696714671350494354615523153753910477529861962035309463074670345983859982037616130733940371224888792266820893509025785582654215001614397436833826096380523791856361412254955441186875948441565531772028108227238750457303501237820191258931728628230729827296188127250047552619850726539488525721057140170514203347233649682735833659062069947197734162362669667844503427634972368277757514250404558942081993057863133722147834306180948010035026384803158948742434727504272101330034007377117328522836705595956744718158228842445166895555510884869080044929151160666900896851157587801684171153544779264021251605855392495690088478088896080794930610540209597657812302862037005585898230128665948137311827437202261562856746182399272753105735975624551624718541449891811057714533220599194448134321522904779044113729787177156089018013765111037821413563472157278216061768760047520661834953745670847182177356215882030992495204671189668919050034920758200727754305412342936788197613354486147041596835513837350362216404713525569068434362396149929140235550385613992337064224353004177104952174346773249070081932191287875085493519971103636851582422790430652431879136109153244908502335839348588951714979431842540429889044480934559439793472251466027349713568190001510002625454129015920020177532330139983939931936796046320874569121797194352267979791374477991372741235226209959017862273025126592729850504774651277981093729872594351286953364099883228554670217572603381261223605870867229151779183490017648011463376649205504593225541646015640047935864895633969380371807901714598906382496224030660777889984431886394296696812151871083828605086233835895114976293004900976203497251040330632469753435045015920195563610952458284357560377443049537716649003116345906319946827203883425497151487250228091638808222644471534918078705704600279026941943116777418662689631708137007090066593004751408664732890851003664741197299548835824877143650684520210967244627817172976986503060620737352629804983874188122636478618995953442941016725713825146505932414022519892000324243654435905213086686617422601285662392029434038022487787664704818477369936069124738157131330427411677257057235751419711197368798527761933173502805343591271196002902847003915478028677704880973367118595379365812389443287378724782126177446139110690441440093673472342913416783022642822743236443454990584287883520713419401336446429380324734380893820009383031760767745346608592022823998007625108136911711842521992742307859209383505847594022670056308950688183487835541230594817428378817614897761595562096250190221313857077782597426496605517357572852538865807841893710318466924748620609437739413145219656332829624630766102525277327317175172329612723522954533684244203363296764315482514920983340059843026766462901027662472604990609835683631199274497280772522562541628449767787820996028450130986287649145573056714920709646055971494256989460397543832868703418193965942530326157419033449208300380072167819724679987151679948455053426697551112866904610174189953909041674918382936918685207186854410386267891942459366600727711339027354268402656402404203963569431285582841205542025384137666215991886021120175073575053603955918605093447619500425023362921432230644044052387828330682172174048205233695774824655628110580798060701209216052801877258461281438991709611401111652321711317974439711053394850992571761941564414783493942872832165816560686400607178759729608987762031488533153801160467727576641728686743457910752390933028317855061882521772162528881365709828536119256847488538253329450436051623675433472698256876719658700686736004343848308261188224591769351577649855460037113275261603267044284052668211889664446119090120282890506715634605945893112255411983380560226992804275779724900646902239631665333707402360916456308996913806192221830155408902726808726791803274791470156231270759178533024741102850991162480946381667563602503840512627567555202063183985093733766820526435515733786407072940096148844148801047885369467462529456067946179494992645619914572522506778451303953119918534599711987610570966279631479992711681714119710633091067476244244746798503048780285434697765274434618892254232941369636437522724087772885022334918464207322543460785144176829199873690760812125062521891621680045576022583909136729470898579987226942739649466583200844201594683560774097783185683964385514322376485938590968670134970326287136281062792534250944403248574292555793200308157634997022310917210530309072886400919457855774181955635430605130669145652056424107311710780604288241044157654836385196593781178772857552632056208932555253035115364937607364551776378617562722385830776586807217216358755834997488534228236306816952116980883106391880748272941496385970664862828348883357081965290921640349309089218713006768910450011638009747687757079705310162436936016082755121942221317154659691829545318520423634377708308275924378673913695051434643564555369929311692730259851891520653952447727702484054308640432774699774836156339692182353729036004982194220665633896748748082106251344387737487338298304952099950106760734657212063492842566277906363118762250131927703688917249880911627548537689643460581432450161510542286704839471516239598104466423901774167985122047438319045885044498127175225574522943195907549121548356462856539307448454458932673038024257027282480705099365630842001285749258190457623455264773663768656360232403574987785572283495865150056261140680053465920826167864809589838384812471188495346812140968717063269488155660167405944688297168130402922430479420314802611340079234407507498948389561583678917237721064110255041440770318727860957096194144709311319361603027585017589795721858309489299306360877392852606798450962686833639452745143096701887103387974629292686453551433646549687667768183249911405850373143351320675974218744709037952173578128242478387398199342597870859446138946999641190135524403563872500848179048476115770533834435971265512624220759292747810685633704161209798776482411974199166559146500573064618880803264202753669402753439427727507742941791358164355212807381959990822094244241562732100168452389721476019739951379269601667709455603921959861553060154994696650104629691864283063336367182144661729410469874536350409772980137393112328535134183938575510627952438872343379172637197604021385478026197457246738817592167095097203794480249637074255085280272026782766846390780609617614673472553529676027709182266256247294198658731593071333091751976529557345091316718009213923135172997235158609508219641817723940283563924046923521532694199803237653105178834392675323378543319358565733301243359299291323783515642686932195518378217729416734868033598081027032980465210902308859893261997430615813383918787420887749223046634334971786683790987409381950798593926100226490880024035833176030282272758517385689252455053697641997366679601224706622123034720915704296977848756332285834157546077902049601400621066171380690829708400480711663372618021547441765647981457948233287730692817818068617343518478925479823645025791833354640047276574918758930275935901312586621570256723412184088461173914832221403258800911649871151832670788278209640829021840175827219211632299585380227393039093034618937163147262877195052196297230892027257615706605451910056377531208006924660559392762507403994772394008930077384925127862633748600376790533634228116384070894315223834634114004324785997910429905172452038773641959998520115019546494454509792340692173347707034642071841195417935864186309670240459473575572246236238376824877297689203128419779309150286763523444076379161110019809141021140908644703303513733126630125508366772989765589911609929204354145134591749036895970179501061447664276631082276024995562978398249188972949564827212024154246147101915664051104075558751903586036253209291831731564175973382348846587997363109311176535641972939302421130675324359256584680483085862227516646509957148283062695943722714337410699237818949020235400497722640964290768564262557449429448279735179929957503403739667061667527792943536773402210418605311210028502930031340313638654970392263549110820289213989585519113314343954234360968766515772760155079381265548043462240597251477680331200574267775982687565324070799035550850267820442588228333309858356869077978491757707269032445223295355270812862892017430784910027471559399439211991123808366802952809038855477396636113672231497083032711180647759307673924435312447886129325524219519714450066453095873268122797515649402305557901998048174799696480392269294227825979855251462240856377667022588303993391746172768748126446102458283429913013392392726195296920128732038782115387351059587754917614896127853782186404097633321336552549772839196333638698108495689631464170394052536467605256347275035733501769568336585402771067678401014743827915872230080657656117776617583445177877528306914547090338461774256759008552961215619433868386498283377947628807249129433867154809712939900698666449653185423776414953771194357311929509082100170986545068711135691803924462092290513035606937725081841830859218753527839559783943801722066837267980618661080151283815235201769258590227329826648899772959587063825309713274297818002571384679803842925754200323898642974600973238024014196360941669795434408442398474540961933602758732113796571527250793923095718689471807202224144894578944942710843620476321317435008841482165985726233744816029044334570515368434280688869092841805491802967394313398896360260863672473821868809329841669390323286077762375967106471123657557870019869445857912608706528164592772884208505083441224053101004038237441807763333422248618724211895473535345409091061945293958701680312384329480345598091831408668805390074448541544177945523579605051292540247223509778309651172790728411010275807838060164743630446152495668409183967046740878706755042763917027345767616859363018238006782286402576890131996762797250938603545457615400351012234406540116912698184962297384766460202833358302033232580498868824878340279763319540542886249470056099681897098917410946583503776111207629679266633577357310364121297965046864164308458746263368737942526841916294494163509320999084326775988798935279708024289108781488890183387821529342899789740201793286325942190317239440401801621609144665287690583844112372454449551015764770529506255058236504762851461685883530293675746547017695333140562762456810555476921888504499903944590736549943880980489124317521793506764760631702104038139890523473309805812910304274461868690039436869886102381653534756033008572537193303209303508578790965616759232992528035236182144010843983054550813960190474046288169801961988078367222897018945679587699733561702293060173415005049034692633744442103953429383323166193615268105630470162529738884165066952420607409522256812239683734527356822664309770134246662965058149628281439402228801213810245110504403789605307366186485621988153842229646504376319827034814363710545598679148293502725079572493882643770868819269437365248064509006195395467180964076556459887985689770782707243310904091270117827272362400124304070174567694878016884218038156581603491678646381893884794464584871867856974410031054435514209743127807989014750810524166711778476268935424338543102900029941189156238207753640522526004881106037239311267788001269021157122722672007335576591847666204656902909726496354100208667917042248033104235329910705726745770828202370588453715115790354841064733075492141929100174156588333050061583993021036819698751552618510755522209286499679136601259511852707713030281432744689501785646054727559381245298920264378384289872474303854510952655344524536705087051864941491354843144363081804349352512404992241374565385345067317590383919248178699957531132150652515173061229078140825783495872270183238155765921483720602084931536124982126128691680743031604155225301977370869878861708265425966136057828091924373843816420926185408291678743690108178713507533794426652026795249591929152205901043420012485702586040513485108948037785967803436767256632120764609910956779908493880812751261724718310750600486086145057962227279241819533636789904605827987116220802172674135262491705105538749734146417708629117120301155781420790684659347066638393129120988289434740488197041591080411172238844070503826613137145763176615110518340037924827010108706036285956977499296779172821868846389244902939235140525988756598216359679854177880557743367638949439017235740138608311290071936489789530263422290151307519340234074899963009811176723110549958504469308923851592574470258441369504904112051136575302789336193244490124282269505401577575638636403940272085849926671374546725546394725909562405178787671793413144976543517449089497340058700170082689166704599150138856252649991713497713738976797475452340074606326235179788354283356211634764318224173838887955273888821937649703867725664997536639220557950098319986113752678516248165105391762556755501233516098048697336815320190217080133898974958268592854382695354744539991151661324773712604208882872831903076915372056918010886777586810719414246515085823789712531378263811558737400183022319535212070425266540944770106862570466758844582948147239969189471422459264638174906053065416210508160262560489638105833501277961502472700870069470824429934313452042571792400255140387455404744827724534681547926753490726161066311604867850484738927387561476937313627346836242938082198969654715574947525168774357266976316617799021581651518832687862759918376991005100170771190137162454618494303037709315900944112905052438077459991723025383733323033121485368784816287836845087317065728501667252943447151278743243694732947120500732557039183349502908183571066930121540349964667655180887122849253072451188345736268601851506068478344468646643235634991375199905490342393020373806139028144958985662953960940706945750562321004313521300135220929488169046947514160696876602209954975540129092086781221121835572672258379509980582498139487397668689311345239633311993864229523958063615748916431031242641563604131768713885265446323688728626241401004804407498306913790628618471181440572858743211786109754409034901895502649131995304526290432650657641599076968475520796451620286015801333528784025968217343020586751163196759103501966900201234542511571053418957305207534170198088317246732604500832624359420203311950466232113358127209454415806788375451621280682821374913017728678447701283370524546376117390895559518660709460756437541420606886813379773085641682268611204747088482251797517740666914039399500477787276646078094024011924494379068692707358549241759577490119812604547959283379871174557518676780971302756860097268101862632997311697698632804535155425955320285338632364107514096917838357458441550464231508191814287204422292447568248188998616626862056514329075847612262664972878630253818379983162533663156780171708626715639056247078687799031466105725799805327217256426768291944616532817090977468807777398400952272636667435312171259441478848249141756078027984562026423638060769135237501023216418096977169048591259904620658132515297764139476860456222027635276620256677907403604000488868272356652563730845937343416241857287153169130650225688129222597192484827826178596901188969886324611534264285223072181856354576682795498627097150837501018806126643113946606413035936414035530813090819867696589979754422335628301382000476961711356789229017564171898495104761278699737787912883952632565527481695476934081278686243309566569107759051599239973996130265277994000230696263642853654118081945386169253172025109289832362407515337389195387521010072248371523097685671990773435420419144463084658728390336752889434855164069164560000021868903878106079832153901698032149426037280316890180996630895610641700211021534223492880759899715958310256643119324128737832172439306442742706203905108741940512170189090276394461506334334344736230700721096638171022904153974021440678601851549495414171673768689773449122443589850701341129090042299858906756763317170745970918875320016292493404253675643742530451695114768238544040234987178505591182634912378476458001387797518691469933366312235735616552561959438815648241579732829207723697642741306067892722174631430635924477313653413179633757454040891948427535989350334966653714761884918880245273947339014401354650345892029883831367802299549522563524585112933903092015069659916920201595197715108162342686380928459704116772939805991148923242130122358996639369314321672013364419117025625419489395596425729997330448436521249021674815586218455031826084338500412137466355560203582758130922031557991124520910445277125036286290797793737481746989353470055388474791837118407688456689625485856377651173117495438456655956233820923428821259838400831309587172951876442562376969036100839251184633138945284088447980907128904900927260216804332991728773601777413508070881840531380620638550875663320022750786385860565156179540361028206726227767901413760173772380552062754209845698548375871990422654664671325970737345279825313232836103225489652347265451083681035157571419912095530261893737400035921546068902030532714755506255747130284067558017987360647224569141947968439729253511516640663045908568091571875101789565216139056496675022589874811332846664349099639222725551566577130030562991970126848314218233135565488398079591033282830865430333325959562156973405394115961410206233141315423039872701052048789577450484798400404694625835892036257682921741253781450949965102711049235140384034816470769004239361327427444808082761670231841314083325489661899491020410537010228890421702301896451444945499696888938538083914776500939351803967130799906994122878282410779391714637866949099673518773838419494320801067233308025634210328784100517683769133803283870819410159723979344647153767636041144155911408226001127398101123687822611495861374013350166960469839099508824569310338647200253134826482577036236564416861306688876017727785552085189836364234470677055511884003920159781732349683151486479967205883576984140032103612124253476674644488279393657350753865357888868515467918553030445142086265733341941530539142714262901090866516342707491633412561418602268949228790638509686717084135328609007996824735123333700114055696030876322883053794682097788999071070675655362530494600442862279970894691158910983180343537650557313760865992792061773953123731357292950441633893152025915001505730756474709140166795085524987688083897821735757394395773109377581667204619110129636468533869020741315872785334513777584011089050281697184528512149287104744736389687477714185204111388257699474722648398434243755575476962424836931737683551184382727016953563238049587271580686278380688055670095996980412360646747881738982332429843477784594515410527967329966172595817811663115842495718877575041257034553368453345400903784661948805656799685037748068797780692687658799703154856705121301653563086324044306052124585742521766546925566193997345668709741205982975544862137095997791241089539847876250805278291117727183419363544279224393342681294334785451422181792890506169146851430048980516109577074492990402623835051981173405473715040845921244066628484947344170763377685881941044937074637352632197388525671615280097576279656605964741956193557335182377536145221769816802097244276768182472051661437302689549711806134912434589452047727933479328814039094449672100693273119665913829942029733840612180834255483664404380748001114795810453649315230777194379239003565706767117911009604389386688100745173302770587844820094903506682899305812971472480786076861816283119605659654448148774093406202106129202502675816653392763461617575178096525758300631895483892539506133558478490733341765261526885805106887262010542937776991069930429200197579213722662644512981076532691352245936639968927110592821934067671036145784143078553775585555076955614499337266112514645404414770888050995495371682406570820191594431357817352016240131431868115622062628728256402347649151967262826170014428303670115410307391278538036123539464661581351392077581086513535423465529343692962161534436887757623459342318922196956640762526920125998897716065995578499977765093764875770743115674197383824887251477379161556334580176733575040907657996230904584796725724288943920097631502589005152616685956893352700604416417820113109619384284362416750689226775491453313816731927479898553904867802821251357757175238376461454639363502980759992938381053696062699360043267839981394163884304244959286446235376530981030667792083294134362339137799187717501742768704125661911300349981769529880891582948342644832883365034595484028493592194360908796357393626698235906576495894321379967110259277840975228639372699844842635340199616169558635706209951052262763032335751644499331919525181964236876763647742280340775479828290083413563181835131494052234155188268606859315412038093011855088940608327115498355988149877258110404428426389272694088784751636921384745866781955066045989031607463912408010616297795665047530017782719128782596951938057523479967116431173793309525661214388639878085729101539529529952481802946371486862978834313208355103535742427570940259028872840033003975555996927448754848718929184382656449841511168168508931448618786196558095931886945138977555398636371477250709723064027657888066216573402038819419925371778721679406337143524941475617288527193997941019781110209335012453428198101694021010467099992683914680348463245452413753654839904539848619426405561344130215899119197623481212159634222325891198939264898941109033026727104972420715446066080227131433677547566574781330679638145455985686846252284857076270730209540762677914467063565110901757794379456248214846998710449135093586958524102863246506254155453793926408391085971853322831799420469597252967723157726497082072995220099822710036136520566298152644506071524244088816120305911617742757447841135995267298435223156891566311979652639680748784518416237602725746022481245750033599132095946652615759507773195264975116801837660710531689128747042657347626856281516365271744583028362923834637277905131146893626261557521670015548251957432495300777434931643590439992538967833458244946759971447260983067551125438185189660671671011758775644871628634650584779578707943891616533417125681462789191296066038570591377064196604406655353324827992728492036919098035493069603257975113361540066084191331123623732125496565190132544059048064628586961221112272703246329501831610123769574388549092770834816472420199739199061917389476258733544599838232064098176366657463091788562899818091339506387102000515505374349669898194518978739207028958035563696366796909323553378916815052561942009057694440424253568172630532377303882659092962596730154404264047205148053116225592348288159265999572765970629623193215642649922607793331911240861145664319824091244232626296920509660535684455795740904615403073333492446764209998542088708217000338551173981451809631590442145206851210565083015321630764640076306413689242083159707829858599973193931720021965710728643128235017976779604167723827426947617585893793504206045261252141656701168134838944390017421634155466090783486213544605620895978062913290344417831597895953339210087150892278371473305337053134561373811515506997742397239404521178500674228578864983540673290217529927570968750933414763808221524262878201655591794518490589134510611367814676142094143021995497705280316609521371320967188341876872970277915833481983720404492492377380284848518000260498147028752487101121457489370374264529084376961775840844652248268701471709194491227300371914400664622217480447435353794681749857923505628271437918340044971163509937170592114902458922656850591726641027584048765953306070818778088309051888182626260858568075558999527134871737556313865713176020794769054268223318299393380124410967895458195212269431653832794449602913188873438114463578015939614723931146724233535050493867971578911773935235598481168697909705048323092382053550681879339960109052912965253441449540108988314461039521015703667170844420508827218692629807876379776527713136044246378781628271976734493891590737353840278117593960982814005709291154844416893812168909467237876315879745148902132210946537505511195762237158210727431189459644907381531160462319900165632051609747358223736676440717531987928372541189005087152156526027681003687930544824956721890218555895420273833735958938656384540507028962732717737286804320430414643238697486553648067339106751161887983603146127377785921148375186036996352632841158564248124734034139451510472977522134890420893555787880965558839504490817692337984743975429541476954768498305663231122816785120552208169380393623289622443166132570065122278488619461531491339538547891232387164823288986907404715095536513228230038062619239365014882375295475436689951737094048347176162980718993456274074028630136540279468643282798584052898366355871178221377366279597944321760226828760280879283383760587349636057758201316275907813843079267363546852388760568837430710873568192540120212316532277009183294784377130177273975130398323154133025921959338230810289862231871446729456792872867638749926122213278227661145315539351649925136297912781965675793824278667795449857649488818027543420280719545730132111492098368597321480831709432776272589622390428344537739763098807396947693745928509223513085761681632650612345978925129383080712135413289815205540887744058931352894751165600276518181710876826061206403947906780339978156773456667112845644522543513903973094940621306622334053432946750576225116368565569543170027190309336784208333645714747604590484356061048587989753246997914366669683315657332765152685281728669038928327051197296021802744500895974528878118000708164470873818145822406428172150442531364513590275404785192034550089366741976536111045953370213041726989174022211627783448513426065161742002198851931829521897138116840445061944944302891977336579092437391035155068600848227619215126948130709575089865323335123517992817101107381112407495300123388517187554135814364425277544559849423656359412274487774727810264135547554395718659348830393441524629621553638983866775569324325170519750243454131815035256806130668748798165436545560885252554152095547921955687391235296160022866814957971127483366314750246842536533380511056536501190064893674581159157509947536451290859496862619300432633897469070879282676833923238896941700171935445875278897916022438811382645706866589865900579103310140243767496406311363462358949581100883626047612614383216429183184987244052010988319930245839879703351328666219856123553757489591080836126731328895715995792263656696998851327841822860428678728441338687818100684451767938596324125092330664567248901737305663574734518172522451027970433168068692368130819454809321312414055352640163694156031320801934492546373007908095093832732526098438168640258025888285140370093275947268630819587141607035115200250591865422922631084125218979259102589944884202092702350157415743534883186772344068247073829327765135182333230981010021662045165309573145648828041854951766385340339159749611861976348115536635723601503071928758552648864561345082049362319288579199720718071880141612738230541881535635712814881914121040310883843788160174359364729468500085943692802068570054817264518918886960682813418992504833643090679722822261998878936364882153367057025875038313728135395605716262199277124612657409796403379859868644145765988164001222156014188998149760717417137909810675612391943339131520938280866431098882226905098025647005167683689018638629824519949214246705945612974698697391237325659123734998364284554125786679592623709357623521638349273189745313796841056027930552946363723273644980650455013306526691893685888334154599611461538310525771163585617201049222577051880766030806170332648639510678946416038083651166579255487007299472652523056016141492693743539242898944008795273765320980540682080264452256633586235740782315114169361958072161658268537900315354927341651055232433890959127035840338787902355659620872475029611734436777328584036508298023718144218130313003718929942309579598550086617090012116117327904058843739568189554386910418019233378827390256377270595652642615456396546690290573394973103453168310525176113687871985399762464367747969430619961021184110120120427731837075046172420888017553945885792935190471782851476264551911853887733291550345260448536586229321085688211960668223058532716055483413296496897176359797908221075942257472908616450060065879255158655916674853260747320596852684713257607881922550654407999764939704663792982935167718138073275310465574785726831767482783291110782087693221131368527062715114387402523625796384953347937937981654683795513759938570550887596033956321626382329015826784999593898861505914682231745336562551901878984426902133999559897345351925453202752314998057742651734334257354884735921767774458580383905711684167165048652962725146363430420179976823824132544300353423890847068287377824437683582176887142503952985615114798509112796927696912195129716073753054904431248158539971903263224636941786314367143278748709629114869810286321476338787201277988073014197226146092987702548537890162044892586907378782055704025130494546761773340418504354427618772764291662226563624181487682879846244285960104219761810615929704432961390670466741485229166441749929997170796748449212651959407298233945309805693333143258569005819269193714856040372650150240400311442880077140559562566716242374231145792920100883215812066401509421166607345687125630975102725556421943863999177464272494737646581210142387110472167140384281504358374383117641876525441323702053858055237925422323800733830648704538644430434481639919573882127036374544640037673003019469806960043535111579778802117247962301282522981224897950154577353258179116769599933084018672608021805072631061263874336195458937491545271048948334380221839348863090404581048916940215824338576657809176656971411601646193091786825162760969294098318677354932374202841787236162491556388829898035746819242114922361608066760828829468942145413279539839927560723870891718307768274757114161662455719631768374532253382778739979122039989687123690304622213940363502094584687287038086041909329139128064569023328814331463794285202630550870578652878912737177146639987111143810918494589201237048182840122444038665099095151670811331738841473720216919271030973744977927551142068903172004483596448852380555934366314883155792299853084490252267643827757715266846424613402719078880605430945580853107205839275536079270950777798265984530813683824634230516588681456024433010182989458320745671527653328190111208077084203785460237599216868070002304246632222746022759502783852875376299537768969063027449027942788201146633891926789975154935007950742420878079552969340911153052864114270194385483345788261931425601495140387234907627938661297490968348064891602504806254232242343710515099940216186755199144471757623616322332382678123441217285442040892499491816730782132577531939044174329277746651771532291398923565394896248969340862174364456578237814400467754979275508794864318111635009908793922762948968789928857601663752049689931073689892519060598760059353030173811737817260282505987741984465813471090890651222708172307839409309177400811031853225355992574405403146820471051262850998786245971202418271469820000898811661732972117652890097605290623943959172342561428899934736997797262048705633687561153246211395507332394057634789728878950419289418182203514905957615158092083213581614276703661344953704061748513687887382646253285366388210521054749062767038316909044257191015967317330904730532274095294082734200248058058852313175061901506796690238298700354787212513188668829223812527799911768203838156245373706063936048636380121964452164791845954463592552718833287267891277672128303743343653634012110476670597896435452832976059238356611191965489480512048273302190102156538034408291110882388452557176321635472914776439133872703047672038107340804210566742129444877204862716687015709711991856134898141001864197705944404569652466920606351996740074590836292905135623405731804324477053412082100518956572026295413224841276363810460067026404647812041245045655599095889232922840931246108860848733280787766421622026249541332493577761715548036245489225846717297878893624701781734142149072450270751381809228494027373648639123665152033859920744886548893828268559342650011508805772073718152191088993770368787154511508715337228351491676873112070952315123572159113986236553959644710044595906054080542269949424624934574427348914818132021243732086631120486551820568540848452631390553082321365301881616934387703995709756444509459983615507508076147934147072002823401610242261146258072390930940290336798155552617111329626241631906797237721528284880163007262786771050646160717714026513610393572841754186258494264962425727980532548930528083975731061061923675605461059136923155972709733439998504442851853536026463652955783248319007633272159502989744061130187185506606099437233654253784500922091962898919573222165700749398199415749742069909206253640164514856989093845387714806144391606437945746493532169369017104730713991038235707187450819869232611129395810046258985963132840963470842016236147090706440906359616732658332412779315576045190598741080399022647159676304058913688537587845357431201794167032689753573621670178583552422085379060291349544126966109979846660777220502918982395404287067153743713018166827654612989823825459314421121761530662106082408130179047957629341720990711229228949454739336094638806555031594334908951044190070370451882216532383646174663745129650564243887417576253017811861213505330141942531384146927186814299235093168084535702969819151525460490477117226721509721125808704694110414321950714623274246584884192918472035402178454274462135630502195276628589023488921721479810164513470377489947033130743271265658758797094984277397607585735080892813831909347441691212436725381250699036368862173823288329234472352655618561383149104733094943057842862755242266564480462961205839304974021453425642381067040417763244882774245821350052658894753059448170155836271212734576020172917697634243040625741238315121135815289788737700026156132102563588886885571525004661185551002751048996360240833053054090442337933208180602568599034366056432734650123240910559078522314340171945089343760121258111866629103552104939806060270910219438435602252412065731234077996027138778695173632946612499625464278466235687895575309363596060890573192350979374314170201697010058676574040407301091329539506995325544381624195937756502785820111954270292491625620193542512043960787126968354276614761342649153671312595006529712129472912934193572111519362613834242566612002038926453610683256523809184124812507299373054358766474194121346822874473957347902440889509243305190709132972905290337276061333525134653253224775780553943575473426979027499459739653932470084803786803335468254766945986475995235044740325021432168175999304952712850519411098756102715025073451924084557410740092820911366826833595204653838639515859604033931320361852896424766401257484482311077637799111592669552417908941279307769568808716928567666237707514895569206335583183820908593904633137100186950482582876987289573703221913499204008439842649061753222520143180201127705945089593527800536298879533658555591619581628658032518771765933859461658500561300722847698723099266410524074733600672244731257573903088464140923903458512229011686938559566674152493363847139365837465976368760675470618340287986834908927737165610626992945750410832789593187178271133852920268996657434207695303267140968194928338384588158830550059845987794631528554059200403941406895665934055520080085476839423038437203941137794151953002596332745944080186103167278247655183711862811460964347351419771175986637203319874851002146627257565477764959576486914725598217395851838636430703716014172455160901278764623682751169212660662303138048039588242260488792180811039360883512070138082680992064122149756775026832571690694734280538680614057398619736932413528643513604839202251158539446662423835971401108567780545372772022500530605049692548870486239631289061624438899992263528367838734749945696851356545834497854549623479249739938670730880286972992572856217956023163999339730522319179270260337707393772042923213681163904300823371003856885636478067869810877005036480419193294375306354400521686149466865350996651491691169628671340500949697275276305804871944123985252943505098610060565326928250958048679769039021737288264413742916599522917681676573526027335994238005252032824775610709317036470533449187071653460140768755454229711091615845680894176248722043687331551059057832990647067230912659357178609795079303846283670179049389168921441351219604699751121337603208384241240213703333131325990134159637443272410764939539907320658002939831457421251469165405287924294405981377348531105910034475940164310617167448440772651727300353388046896038654508594710890378461553591864512364549221035123278493820928786195703930849259059764124798111303720489650225223784826833439597374918050660204481495425710775607027446940367797925290772350407686793732264126277875174869155972853254759860787042453287182243465459125136691775520302389900206225835715977885373484639996208030827159329266994621675107644678965756029501106860966439380144099743670305052715565134904056151120394199030129983869974978155139885543895636691017811730238355290537257584266357465117289373805153353189277509718156903027949305909583412642417884782846269320142266290589395743781507891069469741051049366662151782937260057228637596839377091285083115043061079662379823801955808722291476987184244489371894262483137089972437777905468190902074490990623586741642108930178810486444652184651557808739259075214529306494685307460690062773049370957063963574232788574797819142705872939360471735067645580509250493377224865605356430697985451292681519299024226338918933525135924592861412660348607231588418921544631237514511515349698577387729349747400530013881933574183402314192700022019609633070079322757307151464258600066104398379733137796735933199565786310100272680067783607889781424133319374655562324150153066517085473448231484353525696392400620344495589529827951382820342716614576531492498083068669155009319586285344927081428131752590005067759823161226991898371567030406392357401034429480390693004801131001879403162524399345106975805427148772029073056078913514845266136920674836508256771163232631464495019601047899735791966683019703162469366621406911097194158899104329638718045653375552200016923278433948253359326283757418143402509791649621743143648880668043443550745563620915168187023993268143938511782719655852556209229622670906713804398240695529004580785195422112212307163724349152243409243349167035017894091960713597350840770723865262305342247782581737743720935656001788186111415137872214994649888659705644252020156215683631719775350824491546397730927902562436713972736586674861768244574840717578734363268457074644771521886855326740866924425996520119420001969756183717704986886152411408712018720398070437495410635713267151215134395875424066681116795393589440660453332051132802651794651956195647351881181332776507742264423669208185814608234333477345677074712267175109209452305418349683225074515716838847598698628358346260068480438721528267463724372763605914709826462705384968108065183671809497088851150752501163883216328995462505662391308639966853789391061909891364169478138068193447785933100930984501509135089179801178691328451899140064496690385607845969394863920413247605291892399003032477371419602325204122394479656118750570237887430528795055359234739430146713235340821157958086471740928768756895885341964213989546069981119953811434360236863546472918862735022604151801634712531274940405722782482936086856037189850411688642898987818745439411301297466309287240835778576032447587489037200051275634480244851666035288145886039449355899266388091883655213484991222311819686460376185818053536436132064741876129155399266742139351036068722621644554886920963527917312088206454558144575119856458319117537681380975331449610381120635466321608033588519312340947101417557656435051160116083657486940672183041743418209495751535118229034183737895039330909782187532498537373015371083283841124954957215130442111981790358323855286131557857347951183365801443990441767060790589649132886423884102756054981728383627326895557422183672045685397688704821096827621635040652717389742735881760785358760862460898811176029194319086551115890470679152229485917810619473589687541338038266921842093221224724293065920315422261791009680328732761073717117978788567352762781726210471008666380318561627986898980575584032822881917317233141572672483445780172836239098519198182807432186025754004091824957372602096176358528427823822199795142983970098341581457809097810632340221059232467603005388006794620828533800431605828726689200399598798243627316183659478989240079282584209830363086964912517201367636346361524541280478514908224316303270982776647546768865609659875973641479411941700622442455913023249755245348886200818047167731182899678123547178321190840259042108921460863295123838032758968872389003775382051774107334904871359797622171778993461953856602032050086777859636635740804504951811150960627252002885339524686833804435186050921558137055550790713719898022201582053411552686143970583094079784713166761995502309719885548471898058059164123628323602830321479268087765583314733808437993668874863547055644756496444337627073525287995241869861083036883540381314932573706377444534352809290068739737806050805912422066488456630028726815987965879407968723142212630404297165545608814500850249384992011778188974570472499821095312363235030352385653599428491020011036340092997887624810754739376403902389667903941030907782596736296682950596933729996024203697738012105479102780384864482585904353220305154328215384629102994623907520629809162488554091357253514518392544221937182592657825390578444607422496607884814410788547115212782972521807005186761664862025253527142114792849482846022389729134803677025903629532828312142221454377967238848603621311955800946929629053518937641205967336955673308017985658065484431225931687939037127049451937766294956855373422245974152893758100108622132455873849297249420714737024162393525966853154175867729784449965506749764365021443972425347101614166921153270525513645251123854817151885352526325945560565773462724120454253491804458417432027323322484090344030409160955996406332206900867389558498237161139593139146026137621736236345319172584123236506356882603071293787140263253088629033399825452822236855556579377376096155833507200736033965693945215114702245981080569904259891678600277833441520835499602247399984399424270895189094653204317918974531893829563953135241129617879655601581096269512309689893872726929555656057262540508134164367685359454222153470734558550147597913189467962273110410681010678728192333489274620647746962780376114499354181897952323983674573003474704223324381726832853577723394758028422410585664551408625198358281589245729636803729488484186064941973588401997297105529171577901721975925632154992046113896561815022305968096110494445554604698487611635728614720527302313821666975957421560256972692225708893194251844970954448101760419183255148373856569614211795143944296891543015624860692872676372696950556442484320886573742256151555724784364187891596334794776015196127020346146760791268219281278107635430265135510883273155947590872594896135903496860410916178853490136582388873729761621369834057295302012391556407830133918803668461630219539545413849916421686529203842585327347146490614304389815744607969389243585064960761503228398165587177396682546631566664342973683698070221206566610941770487344551619412132408015236486490633871105787748195241049823461340846846864318379110763679476951407849903852449072037794081602443156875482480081797423410989584520044768526343632134489362009492716556392366978081846175271004937606360782298959899541144191595737865296164708159249475614664244259003906454387157208301734287796395829678510293096107156345881869776644926830457575695414081098175023329678103621892077499972716808397788595644780454594141527531970837254812629695917982842615304797843183938894249060048838591003441371096044904621965108320047125053085870915611480008292791752925310768207266727460588143561013722926292883743757828027702757295564148931157652112304885535583225328032054097193375642835782821248309532764713667322373629568126759672114716458089731776544216599322270321832318917420180711732588658599754009002586001339197813233545714038399622816358281306158825156637250489509460518576496137111110080436528193304391929433416103183652951653078450667765045900624028260747733098495947155032044777420698741580560196138125893822991392368448004615075715488949364100140899024327010647745004784860023188421907340736060239006429776195196101660799416386861212451884702620755860255997233369287274253604851352924681979723362804242271869896207530470117861330079976292762570244927351805106744699145892615468460091186496580123883304037404584550533998208281878189151169004640415454887397606102945654083448624993538477942748225315147559684478722206252093047151562247941876974342819749024683212417375763456363103260155539703990932785483592708293592628054617365912421799498808148275858285389714438480738455852917085648439678161647938194882159217342691865629274874697121783998376093653599540897199840826550566259547675400064053973787238183859022000357435064405400936609387532671344478070373175571707546742024819727594237955871442327306682132876408900164946848844123588124808680436501393436736122706818840816927718378650944179912523783834184994042527783739215045489910619342797476934715548007395913304378858695772898395224288286730977213584221198863811670048436378899035975880623095618400204792053344933328590411051127062928763279049271438216606200439625777329807618358088166441201405107005958804355040471582173424936652029644774428084005781352264676800194553475636533731326010965779202980859839014919093798273552503174060361875041830405160929792939998783324873911765366990130321223455454153874236575261004543880388559663683773517780183035833659756385993369170714485050111038964077514300576591647552864132258946303256469395037782301891296595402497167188773113005736658468841366896576073664085543270273710394695835289590058055962476744531060919914674115497730986453141747561486250974558592193838266309688276900236731587260695865480321201549926646848237370241960488212133376248138861979744368643085526448426514995973214804597749926439161029944866302112372535021571405710988540403526302413884811583070900816527356463604803940626800604058119489990498264675681329179385608965347569252693198203451008693571404095530159004532015030518422996733774339345967028960003878929922184694769632273827807521175879306961161806269392640010513827129915819228087603194218233866829221166048990736027552481904956801330313064910675296963978655286101183741090667218412527819221240987359304530598742786816446389439795345193090324705316255144913193770214530393727975341883854228021469808184001945036781677519441690350169657530887072516173891816162525539965367678072533638991635096355928484782655822416531549799760845172583526654161015935743457091084637585422362174411604454730488404342375979327871275848793989639120467826931053223654511186370495320465879111047405975726528696211389192343250355864776750212927427341559655699729995364509624414808529823407335363193789961364989942510242773636852451348507988255181067930457280017996568449520195639702567035446374140432198935988203494307513025608433866117594632581699779427473873450811268472618235866418892307007169731874511013204077526237655710146891943672334954225594713654596431126740933980768802971165795497845317259549187766681604225042387064384916144674167900047430638656550417684829581177072453314264702922157854127025137466301099050052379751061488096549981710409155776350862208842089783884500262557297924394579829925007345415641708060707024623329103383637906620853686910812139234413737225793110957688374790104623306206592353103018537576850407199863547486011276167856250519124031908475393845510299804512046677139840153973139608381237152683189908846599290215388465319600796626048714186045362068057386618251475234210015206702335084562866116575823962145051554869917208230647001555797534011183844215763802166695233672465900523620038503657866555867966232078786431659654244772514387365590886407706129358370049501580113928323100712479117368331757895328969955215583923986241453646948525642922938989617386155933210666815472871208415523473363690574623228028407681590208307335927678539782789422650537147794779282902159964854219671660986316436963176784072882367555937709680800823332308456272259044804441398230719906845622055045276559112975146386712008738693509270687419846418096310043799189518419989140217977589458429316586038449101416941249118377301220850602822326168487915234801641251080331611000117389863683156750527668341041803311751460978005638110417334022989543792256529339007852652978528195560820281979221871868753557422995660482123019246855892723075845022310292581072088788991757160523381134369137026535191153732099278742881170486354110168691202668075930927097496457240471068629284850591952869769765968181691144760252220219725699527385307594135458740276747591052571844024598078646695347975180684803959060721126227228449093081198274920299015104965460169230909562335790429079486649185404154692208700389760744141980585083212850342538923590408335964027194080557342503020095439976937466363138409972000205805547070716777260824485829295824463289920653083833260183219135908745352438855191002987400888414039532223631768139018457924738866361238089953089715403534461444273328392026591919455124813809549369895774517240071241281814398049886731503316556017470186978366139252921986761491084213484713092821075921741081203297365887777672182343515340058254675085482927843871572071320179458668476633530187126071658912317489986519210561581528992495901962510458049272666276580721391789148376367960459076187391391160392654902633236700159475974472314458660919905493492558861927647519080365272029949304703565398744719182443760711848123918279895769058919860280128500215671276029382262109532224237100959946453955372723777073323984883543842688768321794330281593390131063133578668403611516402036804190016088114210627527513289944272682350340317127981425265150908764990352592689404830180293442053191591272683101734330092629683438437000290495772680402455139441428988649607209268273032756467683846512989092081172800196039778072062358667630919226355385873380745596128455146646878939689631449537794952389872541276185306942535010768373508142933343986716682769800328837874567955913876858494257739835911261128174062211964735004840098046013916881178232498327779410515130395263342598673776319717401036549873104535946954816778107020380953168117907027121210895105840577785776539263543985740528299400660265058975654601768895648858033190020993747167185699978532499651002941755513520334261959048820445741703575070753194056421921543421381832630858356589969389251188721191942751013802215001541432783875889016177146923920059227656013060448141345294350963078016700258855445576331811076634343419858255493190725729562764336347182390489225607749370527549607250688135830246828903162593167481204859447609622769648815312495579366164962501046187132432861520990287460466158442664004266590100952852075910558016874263228281176584210357435628759469908667594747178586891060102033756047605817459329365214887386956361976297614804442121355104709015390161422172383371415322885388088582230853613956890725618530977954097519932922493559759659447792730413438541202177004302354423162692305600848380891978062039391709067184072723100688608506536083123456042069228044350770088334076834231002551503842983485173180699417180280641589376628142440439547320793026097082953540733547767497095965291691651151626458973022818629727810419609460451644598105088781304494581865357542694000808779030006560005223353544207212907246443790134429254024295101693435223918145497867117070372569785307313737583112451983840630161228655018894580030734092740141311094063768857431371373650384369355341253542854921339693756689597670254958320187948159451716367449116120372888562904460362438122249594974259963878039942556470857371061670366888875852461716707928919505095368178558490210275155751832622328723523336070603311665951268143075960386613505750133961702811440843266141438053827165277667342970897124432104762383361009317117669185436104840567137611855340857319787169715731063899832555778236519106780284269038201379685111227773990092102883674335044459073528226281919594517550981045685087131344613668443794310430027822951092153802158121562633211392218862432468853291114594951077287058826594155562406997255500940653248258568792383252060822467600548030148250194067577751642376367175133304266889007726997452983413028824654685399039601629306300180456847141477313191136844890784154677747499019914493906455074624152809806384604639011537048036989634089995386638378482968574582566255847027583325901810072734448465537816034606355973374481937473487034306793869719080079742007411386126242642472649330387774752673124384939656209313279373065161775640557984984805139196647920209055989858659490266917449862678855940999798357436685665384345049544833408523071333667164438042319307594925497715878054806564452401762657796641334227849275105930858949689013924338444447889821518851035135418711738988482404576498280576130887395740004074426485446859670391496267753241736513127263163929774011874025330433298381228459231251130748589872151984948021826903581105012580496153400157637098242679522329287324528702109462708911729765089398432972556079411382629806293350765190792108620732344693170398666642811833274737516827692832335591257006001241544745836117200214235676729728805712569686904222854190459563150861474572419813472146242150985243962121286881985739065199881896731995166395056242339810221990857612034643078452054766735540035149373564835123035102172257059329355574045562662730520260371029306677246888309980919615235942340791004929184358204494565752968907021623384243361754406178070677297556433689481387267327267519291289214814367127157445545768429453962138493262514303904118367895912726045638954236198454045752964105961743350796224980367228540000331153321292822130875696327990533760545939609381031487568458516510237380229385741804875464729016188072893484444648426702482910402808181269181653371513835177849447881349793264403597008799537098042619349765756442781843610967768154115077020900849757825131560734535631825110477802920813171096336561648167431811529121330456862370441902377066929924938598085791246048541181394515285832267794422959787746392029289504139902428006317802819125223426686163646403182093114978269830647963573767115577766363297576169953536231604550331970743926437075168419149758366123123072767221867974028588362628531603306210223843036961292035353884961130707184307547917304469204968455440671909204404899094113973452394577108447174320985566028777143585474412113901578542896791297566189409033206775505457040042846951967231891830309650119558425278091132121254432978838416137953822256921184348526675306303161640547463675652018659866242615659621591601431416048344869074856949683177469510843794314860228207692181423794603912624178195891464591793608133350396124738519218398142547687082365538267465559663218900723263222117518808099865455857218677376012763538922324958123315892578734812737433001782926928467142174542833365440064866991292378287254349111125030950483906341882692895302770468231949611419257056014604230516318923625973071196134792471950421029791101469579796719775609498355218660379976682852113712582765723147145945112118078256834015738017523486121549081448113442872243730323315568829630938110305458248744989840488811765007749384504840092052529278659314741356233842850623350599676154138887497220943469276971675738973777349544469130373798984526111117115035916222077119734776988404431215574306196889964293352430674091304429350112335674170019684495343874115236164729777929156272137018087839906922328153472135828476729869998771367516537030234766834756999659683964041046957783101474281534932631082510461335611663932126840277791182074025424754646218851824378034193102881900631906766351144186493354245128769886963046878464147492238903542760489595853610231138691981053760795015781278417960739037544853151149630806982992102755198323188290910844379980508369729022451042582421899973562936107003300978636345618946077683470213375383097189845724256517021137391814359836922255501042211091198011237896878508816301403385438915083056581562654107694903843082929295256578961127612127541235882113671121082281018910166403256696688092481205584966924686118926113572679492053974973098210528139296388037799873713411855881573809004153988300760441672872847935475355079796823404523555380882667597025610382844090062024554187428091138609727399044172165851835681793249319858783727193373406092641622734075551112510451948362589662379926230411851896809392603458629275954231608694705090718044591989194571014076047196814487439176287782362221745077659544141619674869737552515285760682190514034118244166247985423764251630803728703557702542259681048620786442793053223940682781343164046543644570667270147784629074242497090835090320567211480092970732499570220303322873608893594750881994275171325597359993521792988841458647097558837464885947071667463417774436843353368551149746974003926102376748302873920069798679150854673522522544308070665725890441130549661575824465402946516064201479729353918010970850185051667031054875297783125156722399214973597584364524038179532572512272382031361400385242162338716996603413693166972435262709280313989892882866646301899746223346081801923625737367110646988559561876943571912913506859217360293989486434010640021082067319522623749221775864415355736584860990865098536192338890262885594187629599144780149569138828808928648231277117998238267566628650658992547078426825696379241323639738950550162794299087891495125389303394168183141529811282021089623094713020846653750375305775522772009998077260396442598530002064892025016195517531618447285566373578965414594865100144507796474035029978560646211920301976989469305914189604872069096640230186347854731267669758616866074995049292315902190870482680628966807689817689869440364968597400230966258193904553772043203422028210802975077428204957838381626007579104456868597666117377601299801796858942552148273268147231113528009268480510088798418130519117678200603873914493764543270672692791321536892788045276957667000737098850025510960579356219287673680868065695532516004972035315086156032312797996058787783705063171165881045370309112281324501102905977860758139252495212707130751317811009814158187069368677389023491072005521878530838496567252061800771014265636587615341341315939975244937579918332439765724155342440662621772350933063988979857789981326810609787100571158861182696216894042792789968283932446821660433569079161633846987499081236735465003424406307942152084423949504480501519726632173096841490129987959742108125583202691855849570217361747140622559092916734249427939592604081284422364240725317170267915938325491301790900524866990366772012548713303135564564391040424089860756869212859363367189371373374494056826317593780253166262919955621515765763986773002119552073927637081638119439979533569940435030746437371463687257499866146180595155366609833401574250352660574344929203639337557894057695620246361095505890441462045070656623141403820159732774887687052802212736920295339172120648828529967964115789032677596229408005613477763498469207776666449910095530819089457017984692728271611086688043266849226286987440189673316269079091050625137786578029911354055286834965883772967096956917322557719848663443538349780326336379919900960981731306654358970370015244204121213958166996937851438523460409840670059091166754844438133034740606319554894661456549359044527097836597108958152849238461594389309016699244989148656539148490449328830186596020395746050988093022676519109338785342693317038839780193069835279990563207020454096166298094601278450475696902436098639050973098308325016701064723830095134814430223715714015798478969580183445093593835405345890252740112791424520920025082344099238642193313922027343992879911527657118130358078282684232923123605896548189721233125968872913593737016578518294362000230305181511779419717396331626292710939476968802354719488014659167480974623094046817524788196213967451214224011463374302722947606625791416189124625214866452403167087535156923001237470177366146401981188444990982294932665182409033446824218535734467650922766922592393240596724027082025540775139721269556763234855208394713521881642662522893737858054953589825916949880868948823897133612392070943905557246117775769904691489259229639265727895704363482091664699416523507163602618063072185594913779330282312457013269577850441106847807816501014895118575558936650447961546260226356837104372552582680611733977239563374920149422859194795045870573508052995470475856576352154353301643803495581929147952171787927487360647879002385867275558821179670705513644154187748217621443635215490530062966006233111244065300834313105881486354450990514664427065009549488852430418150267088169678749093916505315157649644621257198299362799141958969517387689204729506784018521975517889964720695641266994524471009579454487359094886322725632486947296600438746575442139551626558929986882337251708682298876032846630805403531461911277368862187483464072804157121113931264682856404351384505419985764496636878227898891344401714495007224286272416587821079847184587464877154530891475267945241994044638760602599264777834759699891672784546274561922427377473625536546609097396850413546449472275792569427936544131138755098673095779157085075842453411357520887675859520200084466305253410111990298682742058249962667636909620137301222740577146405471620547207085748718849604021298997588336781762769726351452363030293299722868572819686851512950575932247384548514005766690421177524753601984919879256648158509702613106185872409209006214853568119220754759867952273033262772591978794940111786138865055599425719100051795750058847726733926185592424324568474788568693683681586446785265946228570414148156323284533943115843748644114379361824545085536982590727155067186011438577027208384734892942311153910720409939151518760171942981841351082335626881351860334721175205830732367843205329306530838292155400663373403012040915430060794474639638483917903288997815147244286433398482630246960837858910657236290442417919398399659967659410902711999073111603867758038945764680681456164003310647919730688875338115870424460235487023205967250017906568158138139608417461887241693744773309307031607751179732368520508761997247173352205216583994310502791054657908998409260756819676639945338815884014279069019420590874655362576559672899623778101891608458963175845925739420768328964403763274781359780662232237800399389883335189038531260981262828078636385735937277183473061743938204054095013648558089349886767103877221309898344191239991794244802477546558895508605509614654334798746814843688346356369160763779485717197836936883738582154702871997885654655168710029213377562786640572927334116967324103440851701945938730965630991736551787525856844844687687859460057125224148672375613159061088775924185468490528510937354476798776268947344860719130892607306241067963802583814857519232355466744222102061529214621796728605721672756673616382527928035333163288214439349228315459982654385180572020762792556832658815892101717468932430028046736692867813178346524235525362831936808479180713451078264671237224125420091944635362037163486257522873605474527791581700452826344635461540695786944343429414577431008885649990409367725901075660029921847202138624597978434263406575901133331632842638805910648173273674791294035508541145879409984937117012142594823616285456331280348602205029068158882657265810682009951711016330911984461781178443154167864513572009247803922668352256249021598762087052318159229771826761281836403064834758499743397698742196900620636464199772904386733582161716274683663625917044609804395771469876258245316046535065722841377116314757939481789621207171110995347524501753992993167710573195646790304078110575306129408898187006610917628365146421436946555005909694633317908066713500242538101003794086588765029763494785261234152914854667643714820338174771932459358097118666447288406864114463187281363046276728062330004919063196737745450476892783531104671731681569512575274865665484652731073610070506044682064298200443969059871610125703574707363663651602786338422593659995798501530850442808637275489586319342947255696110801281578783623087290744171399280591644709724843098930659153405840624951267628462717304344306785327529344858870179684964132135419384984682597321822107935244578715655917067628634893128481356190701867886627436216159188255480900324140965561505694370256970475187347793690553697734602937034708011913675281241722029042489202736853819237448865902783010883706287785587109871975817905284221695331004117320751169730478753988869920194935445695791971909194675044202020280933448242417271814631838069411092396000990483086501040351487323629028588365557425572718022933480558843176075419887151837700787025695090463864191397220586836905873926540320696017263258940986904352686742221741092647382763121967502789566755133804067129766921324696118974213487967055404773283009896190954118797313886691898065055901522392278045191622015642339513073585735682210380198628598366104546917313259033032737839903816365010587847825921016505590196832258677685588449902360656855289568996198891376956695708015638617058090744921332641328226252396690312041772237319785629156168995559077336877947014315218578234661471201307839607474642990393422551569213572726698485239741767010119634318240996199080689661489756517625906577914486808304627274657001455038067934851359092940389655111264923533306735392319083342886285604062954299286756744452949916963085767578470171556658503992985998955823863751117937431812241710374295564365734802624344139998568393603838091769837475213954235749220328691805062944776269318429764147006543664080422311932814191976058996982112974683506970325207466949342593000017055526807848898936086566083147438745538360350044980842153059825343423236437897623644578343100657559813551905067618476278867392999040912947500339839162670524354772999582254384784993981708590205960371144241598902182307024971232112665863822111217127906691154648451540256345396196416692669409482308668949805221952226409377387996058561814184867651368471364860517599986340555278433139095134500638923317542281281959524773067327314098532811413780167146474019291260658692562232085169755167455274873924985289065353039893017057409711150979804321101799950378413290432591161880984242656389802388425401262514694287671537581944648334527037132139092364411833919171299623878896418647398417108137115667611249534897498705409261044911168040449078297216528828285080995355641771352456990722507665570138637135875955619301541725175621118194878569755144668034999375654203781724481853552912619965373143099853675506910316295253920081544738045558530908830051563706546178873406627305993350456825843089427307444021400282413872760538977443814826791945861732481739124702155702676240000663699607611110242829229167163239068265877450007087850556455619794520853068352243618571618664523047259039072698598680595442030785699919417368969105026713752430878913699584714420294420616129029679671237510229531106375567867288465519557983553340291456061767963401068501779769982620985177782796151012098545847647292875693458649908763978852983270533479338523202991148872679328195362241177766730794075437117329310283235274414142698456926938419607063145976122144933583871825138213348390510031257307950260911304618565882487480377471651012656788365314094915889788936669840242145926475435568207078409818841478173198337863501783960731591269971699077011919501561566277740206877111805840198302352356345593119397151714672563569522680078511974405490391532886983762725267103693436702145245509649588561942949722376912606785766034372203838481781356793119235862769158420091405133439332625012828435777420344939251671822777851839461709231211471232099161447130676194491398346467659673239276726888136209534216701316416082418173112325151682345433536497864119656036362324692182161296884853264788261199741449210216907719887897838025851120790459380026542345022401274913848703923596310656944892022321773480535437842274477779010452342983611535542556945172195562281256709784551583064051415623790644222044926621087312830219533229698338829221255343372247436899947789274832564622502085425789104080615647416580197377841297399805770745334241367082254992083844252464880689958707923719202690249475155215055724933907872910240825241882037163916684733785748095605051142811685038862946670830087846634745801084569510346814864904776220102770798094773775594122531234263048456156404237407948927345512602534118374927920276731331657202363521509075553658193481285512624020501843806552755316015090731402690975977622454668013502685446709005863785909072612194128854328943838261170348692371866235567768385031597427998602828401686621400588094268329807687401382804822667017028696486857252439121515811746505020165663943855699158045856518823497308195268222200071899814303357818255810976278682425594537351802670841374848764898107857555194155853427692861137639197397259188985066894653624763131708727493335500888345866045797565376426283166526624049794539314313732469875963359362083083524965064801920330770814015024526010929981739822787615021721563147055367377398227806081333018604385787868104009991446961985304725613832212895781182506029587053774567906000331485585933267785134891456323892263241094602178559918020047510047118157742789210138549504458847794722865144970810028326208236644199111924256272693047825541550295099787803992641584562852563428315468775162080891965614942476555627520488600090562772226494710033265672916513788115726932961588701504423166473336072289058941059484023936941445465008668146201929971200109136934875729674111941643532689162724916489191058996607845996470726272115641577493307119408536334941765089117524497057217160568669857161210088715382216871048285395484174482853145078634163283046719213300605692541885723318607955203909574080538535795367336760545488056266758586679535490356461935476605417449920420054885961732717190595891502694900831274721197871539074961225961260261364142994478722226013798235872029075636683937739823356262847003246977399202123879189586888942473673803703898932056012454751714932944763897338704568399891443183816937760519760952167905813522662507373844949252259043018279575116260422909293719060110243642272531546518340338604071749762678421860713922331331488590768857480362336264055012662951552496028906932974342996901965931982996778102786536252203910659690790220276573634586265444946947310703547229848597748584065653910921464917831210934790561535217080263052143471420880832481799489902066467092787506105041588229209778380129601338883996079506168266846302771469820829395398994230366385036747228311809183696532150178017796380977412300964549114402914600440293527092995088803309482698780859291791701471526261390514001451382619556813624365506615671476037698805530108946500683892945437139437437087618771413898731831608560779670849195121434174395374906558414087413834425937343073740321876164502523283426813061798742455024336703301795192611428908348298015509802987755171892429579082791145073493509392528777459045655790941605247742315807107500665053419908566255888571848177860839406430083636158812467420284647066652763685263318147712043838004254220501240365773924193480250922422053083471592383324403807029069466486295813260420795117801505540675063971691617290917205274035600035990839664624813261082757670581113725053426478553391391934668875509402375042523435952633109913428605710306376491532402683593242608419847302375320318013204929881938411148958091433696239553897726110266095415877670853738884582184215884801228492080409383925546089101101953139791582965743778320512407472315658992877766155170589699988633830528104781659799838965637018224776551745538001522083403119058534213978401756287934461654354020701237887928080720432598060408743516701096253368462623624618857553610758441914585234502917278355791197882496482892178498907631009320271373876227544751307776148545519345601393876640632028973456216970309806586362248186062281964588802770213747631001509575209821887866738093925254951204605546885776527476623407370016651763967775897458503411447641803428822947416105220124333207932424168991937291106554365654043837947607656964083778579009993469133688410948877516057974664897281048654192465914670188392897701915330296669088284678029583374338463120613061988644659979400009016776442985315920469359136879225019600961819940048616403061613715810012243030275832330519795878983496324795315072468181178290663327730142217665436738574705368036513085667570769445892712335129207117418458303749901784512919846462848559235172399422870683372417713535974938812132923596999229984643009390192259044412001978981031543062078263628619910460562981316865674099558438944307469453321850950875393013835697570903359570276928709419888020680999706148764637842134880823040591881639931827323750795242178468657376355684522342735848025273148269736793785158813387905030744734862037389720640282300304996083168456212605137426997886330801882584349136439208547069043882123180291626876407398467884032063292378018914365477270551676950597455062946563759536199222796386766025925246686991013233543241650849773388505098536367625325334594075421791675643023605215906288230772584420245238903206426151775407742508268944279170142418534478930022078939091633870395585947879073945511708583229332402064157133543042542894049829118652101419232636515551167400850412189577103961723718506505797018298650320006825615699841623597782435167804398705796445066053103775426595468438013785156280480171727767321162333717401118335633472543384777901749515632178130772601386981117597159096421588861541503107877555264384319243606901393103568649845288726884456435630559495838867302773679697420376359976499498161102853873683746789124062617308360351680972267348351426202344894250942312645070286184630941099398709298587973078295254695675944644507224773746710490990957162185733515840959050360309496798042866361708329659263268960718241027219915832244402017970051340959503094261035555237565536464131258037204873043147568622098315206908793867595300614638473404512587002424229456739119391833651715126826530025599854367356799179971192690880811628099593149756082936891803291340407353701133404406622691784217946326936321552940184640622242313152090280077290267913393918793892695814566201472367464592254019070422889758603038342361425365656858421420625365142236987608038960086864735846011143617669329259592169370075242254860750721395273109484966550313627197311592371372839908721235782501930212652033939377141934910299166527442709160351741015101353622428196441698709956991810081708932078712312344744783091040001573761971197472680904993092016120520775744805264314556484445028903592736745298368648132132298266600033990483194543065095570515547701736330776072038567674973677087477519198267294291928856722942655461826401012295479312456738123216029951286220306014107138229749316772806432508831056871721372385041271127072940439600516094549686538950211306560958022823319825193531438841105751419148466814432407343661209558202296083448573675341651545267670709559913677443506382193318467275204816456430322190246535058160137128956826829205354184647619027009657332881516577568614529951884985955522920275269327655672389377028669726569326153348408578005597979036395346894459404233011324605787204009797006058354728520957949142266060490272578739032817698939693415625421040537430193094821849443111293615956244618885946640872592925982044913218010325707984581584815320664839708465713111298758779454510084734855181161572639061511742695791136497669728962760699937378918596259482807381010425924888407835810352778346168199809663092504060083871884578103357971843504948449841968428891793330552855053912379632826469246458311519789217597786750810128129067465029216283161858787596517701060775240452761650494473925955185783984433258110021002000295632602668950345430636834778583269984169643064072927363191618979980908023363140738021606550620394419465418269725086212069119985391286244132642814142031956489874663886014132248361875782059586609628940880874143538598988938501918668892462367515800582948002194467535744896673813421434971995691409168553585604793062111170261886481900726971507644819183078363636301219019399364869793717917464977858221868531884070222642341372429991730304910731481788633606716714522768566097145471709979337862100439865589511483209856814265224548267779752669078071277769060449133493350535504241056297623603145272586361632594953075836387786035054857029502873464105873259685756555445594255746663678859340788745799012466067262262273068636057927177979243254676238565719834921416020754261983545107791663714003813678329937971702038951438419441677147169152043432634861782078142414117227665317577082052138860786979599017551276801520609471024740456271694174743651848113738359740810010725361580175975799670964833611045907886560146386469983661628324459407509753666282766398338234594538884373658722847640966476437719392738865523777044529080852416471911575757349529636803941302209608001349023745749232269049400289160145963350738846631111348449285716525357081311772033590878248209095490024867223532552383100003859966228509481026516141732515271506576195345845872545313054112627836132729417916208238771577147950718439118685848859796906545409833141609369140488185963527916083881343651492380844225500895646562246589854829047674071355769504934558121829705908544902011903530392552936778900045318782123976043453372880511253781049332343373031131004151436595953583859066391016251401868909899456706419230949473449347125669929432253088377846911486580623775781589449037763514321269823047276850124082254224181361787131288170872452492461818839397749752403090036960294497525267853794090655732525872089164283344931785941403078255325250614966431155559590970714368077581051712498783400183708427496465881527210511249399074547224290605163431892138635168738302112581137122769760878756852001955312243106720420230646825207874784149789855994820281640060733986926096947983549666914062539938317704624991644785706371540049546988029382554639739754635754401041561653682504756285759898043337983928168011311719225804245952085170082257546108404776225510856974763525731133351137856566454131601859949213578440317782615564224406155528337501137492651089803752894216532382274018634147657148001664581527629217896939250376961708814103729418102882832753379366899705430645694679091334373554851622838727130069206124335196408639541025126302167616910673139861026805431446797977788516858640810934549925002705999164894237650204578602269909760785800130111226224035821727922888216407072897948197145921636741914547082199500714692627696349390866106597221264759678777688907061246985296916755762449835831118451097602589703407798942107909401524104263070627148020389244855148617270698686236145283762328896360127972213989200933895147914544728160595015617510288738150160872674679824526569455406055567093993231271252772018019215200005999417835695906326513152613180180153147960669424310379021030742364746047500307345836728427534408913980945133469574272082159839865086063540338324234264649524979251538273299222148198760881168325505066207902425107626205538182253045563441461754596465839253352154238709244871843215454611665346217229056163591124488537157619336850942256801283329622966060173458026193475325825482892011173693885424708188218479859112678094736683206164600377911510332744509315795263918600996642066067515140114097567074677818985730459381376729044939253879625961241801487143772942290539115787995821767804833169779704899594886255061123779788329389747235999698998244258926977958693141125115271400424845768360712068516823154316615016925082334564356063452075477139384875208256473215290543138896152932018498105749875879898665045195491391883994614150135720459333532543842299734302566364927307189126069968548270962682023625382894704878007554707655189371775849558051845043808235856474784154815803224657260338370929981356497750934146315059192201431908956980042234067179045322181793225511188681156060734683152246400199222180255272973734202989472153993504244674646347310840670802642545260734902494330564903272946253825550998057574349379837185491213856292106752207691176230645568033133572682737844209266077728804379525324860337701924044063711986942649547333860731833903485077241172333205115991245058262947201923130380106371163996342965401908503150888722239142118288365213538178410380497806632200468831297371863213182854964152451391239927392291206684227846149701610034593667603230099233459939424451118901134160912923571701037457177034705856798465618753564398713723458632048918305165278818667266664881190481847567649955363811513605053441755511776476475550199173645991835701876976195643891155640653512750511485068739793322124499665689966542277222554478708579079912894024083343283200565159076144593576317172815233399581481111065038485666022335082991411769218601133742510841769863297352368485395914491220966098968610529649045416621623961490677218887492156802126267529804544250777559543858033158185217778146847843958321150431875825897163303392634103322698207979004163283813375338528541103835910321770257960351907193787151914201952079406774747954930458494766304680913668919161278522677896603798070446773819918118859777221258242760199648748159306240197857839209630887959029981805702568020433837120694438838471505705320332346937228367061501363025511678064444336987876610104590331476804605251635622858520430382431455729579789616409363609341724670040720752413087749445441006812024195289295766992309100148838608555109617909914063187209317335652707701938654406313426074913452566684405513320578804025983801204239194683622938801978117479466649069270637075897110381287032919495293523724313734547701356243353846577697051417355719684974412407604502508685778817797971113237811225142050685409091318824838318854147749481056683679240511011376951614452989361773747850726745235984406849718731688743173594760726426474006902587135682882944531440520256787050937477066692913680939138514264922777314778347983199623154547680076838337032129454237647469768773183569963033270831730024631055788270816768628673222033002002582059268173506696769421772101671642213826095714649015974552964698638368267438985014582798453887277356327353208226420105756575412935097102874120658245910848754736864379039140187772622248569948495336864263651078222551481029668640862691628617877096446057807520505080187533379800118615091734132206254019389855403509241622588834782590349840187269021346709768139896764744714804899777795490591691424640177068818978228565173715769944869041887379538431328919449763245118947656469309712379979738814086607329563446987374434032001511627371122767954406530876915293211270373255475237268100198704326834227860122981591304066047707115652827327862400804951824471249241032353749472536840732644045584852698316738057545236097520409549600440504758708050137946862268759352163829107575163459272090230361298775333153697398041687581751763147932518572915411216377752645865014841757017832129382349034150675546689800488052745813812826250031798032758706096342478733165709958583225308773550723307958989953238212619372397773964326709762428812636156060515035226553779893081133545332283209234958928859758506839528090693372827654214896015385457019947419624300196059961805898556989513371830268294946627181771757309529158376760774682049803362771039724199415017266203381168792449387318219321613917532363856580360353605681958684436739197360425715070768275392521432690676124113025707932074257947118565758280610937183468859892827130354591001141285118033312220409024300077796766583938519194030075045852078276432989002813359725934920087858625290817952369341174212274717558454104947524319976039650446544955900010436180283105448459146749610756192622204734301339447421320120233148837566647762187098260657047705080365156068583383256544375750753196502533369016101558489534318562224554319949594246811878286503281787081535729318301057789805885546451351450232957221445753989266139068208884631356763513246399307164891688990561771337737067132099086823959381407215635743711211139988920778701325236679048099537490946810787088419616974805642679312557551942154560502261686308209405028808491149034953562699292672737622733093057630432397165432597725584913374934769201708280371071176975613213286915361790409855171696538964913697745014141911256166334260401601228208585152359258536088375517984731708473526229945130232920724019569636778316733346330533441031209244010899957902302301925008132033749201870336247283190059983505296277492694896870973303884213844718934774554445010459982162648232889343201847025161956124207115767288008112678511343838913115476540312730647677322405443048967524011857334691558438394752325608395800466493153651547956471768772470393065735517160845915119153850452121933716433861674604279498361431834687119003168659487657868668162195235058090315652128101707065340234340149746278881982192539245464407827515334902416375523961434343209812480820234765149305600145417055717435915281679327188303866451880210083687457952599739964638001759555126240594383879329799880996876136610516497229574371571413217643193460034966512192068604780398340254823212108599246456616935560009777516078550841973012530140181534265609838380279677079034357667253346452584429234263118693546905307849617104849374886816151185215611051818984458712726484595493085489050539953137019298975279591915085578162079143309450761513079390781902764937349226979145684127536065702776007221943073242578129384003845697392024296052988420203267819224679585986862479374494614703296259183750763650465529377546209371158032636648391967554926711480998372908843964873114959564534782881787903665085424965118292865003753771894090700545334067975198481074283470736935565502484170338574272541682726516330661613679895731469006425566285454523745867473515581716370502536112606171957477578804814111382654320218742959325692905150576132073963185077965235963993965848394466339323106599820215101048439984600289071465520232503712145918348575277115694755353498981989220797356088440176644263789844012830788445260028969229921445040728584658980084027371183047546011070096272211008850140010025900367128777339295148495060849340989399086413865584683054011850309436884293673579289679759711739170641628752317523039655549585264339102388099723543313317754509951267535156429658407520734862112832778121461052410767970894063068682066405447260740419087050316625386071682336756656721427927644295453862300756051013503109785581599482710612443309546513371858758104127029595754393245115423931022229583868160032934051691332746161544187045363418554503719582869955975517022405134952259640759323251204614981923977734702027438714501515265957832692194646386414835142814923607614186491700276008498653558686571497199144369711664902295273076460960914494383725247587866234950782090580607342630126065163402989407870098324316503262140293193672787532110965294460430243209761439825599348196493663114039169153596600867388185073072500688806340101766657643962202553292343280387069811399439644258800181896559582843181906064510711727760804986762683010115541619290508981724504620983568017488995638588710414950303421398936543499842879414286239966891414139020511698975443153942439814536948868493029654703178948996687855539126086888638900527847026656339903207755084729703622382266420185711101152989732433996551640546058143012507208695714863835192381961472373268611346332929989567915068794866872273199090222160068688861305050085910077648127094926956992598998589314586589714091984269442989536306057599770360748325230825136786122011702561873586653603419804843832929579898872589318758719768645041687483896706379824207553340203062790436197703448374097745782555950447998034308312359749050623895502714973074837486359958122460518589080038370607762367837746888229578566158562268595845206069543794663371343885817864881573255248054778708109178166799987603894610057831624406523562463027225087135663764335896948369256207258175812323358438854943397528302473232467041196329604341627041364161888426294755468236665905496831354854451344871992367754033380970432843888408712696742049087621855949226557390206654233300118026257605901800022993422505806443821208730508772145676265161644404336302162689295041683629570840515741570107281691695677392533321499471331787451869731011253749313969758685711199258317746580634954010942525608554660076750697632232756947761431008802452751289311583392949630408301018524836186619508951319208013301874678781764236332106038460165098316705368867999813239086575847882495557467622573323558262496315701107774919502080765266979702126142997024845067629002157178442001670890270277390411174094217344742686616489881770082553636003964738821340336557182423895490316657132907988429496941346077119848344854814692635916001947462849175272531087598468715958334233584500503640846305298230248979412314986766295962888851471074174632445625545529392270609606773528512510781215325701096130361482336216616366220735284683330697901212662481621713442302445292767209774777509058053845732195282268551683432641261763129537559114755863283405607750406019101442872920795960474824759707568014193523625367511649137014286290689001994342221218113746756634174723805022580494612066629196304311022089061464392640893723422716700489234773991395072836749710127323978499721555433766827803292539962270192383709931129708595380945677601621603279100266874937294300192829030575069815871166991172544008943957841058356829070476320308949156082437677979855265711510683242431256304104279884627739247233646085402050544926967825783469607810277116229566396570784346723537151664678461015463572210478422089181448493554450228492617139079318785021002684013876637164549030072421677699210790217270183127066324675014369759562860749961946428370401629773300622869141393988651336178977818138308220364648371206718415330631222351844278807936421963846285920581706380896626835535961489598093735285139133683855774586287183054426154256708852821734592734577392318959025673738830152621460654137171184520445547984404435759727863966701910027895753309217739880914502967646139530860053411958591946323455403014484067116189506284772349899435864917393385602976988299709542326393845447335264329927750109050425794664858822367382603166348848319710929869418765058690237720106345240811919093957301298515200934677370886032521809924597582442124762799561564843264991136450676631138228402585037250899990540233428858386295909512587533791143377876173242376978797148024194394711707887644487844574127072378142513400834114073036670075191588822993295960123228599756875235231182804460998931300876923002906961022025033586790636169300618009108451370244892931493685477290011259174578023995199495064780020241139636638955789569654585328095165346415699494118088869142929060284621631768147672908893582668739158531079780740007815001084785399766496567456282772332772389025306638965270320259518954403426581645904748643043600792680854108478913351809630869264370619526435620853150967111135859286359760564120604948683235646945488251665788314439541974517400342192687206282530784267006362564592891470164260583907747006545096885483648353394012674801391029244791726052151415075273021468030256552419554841244935492636262020050137799554663408951655218346212262029388531261287530563045891622713258421014715958319825606344785914957674935892422981018599670351172818142950550607170928792965722432515633356006634694686565798326229791098658729342415258585175075302084960358563321685167950761235690501553136595012355257717317404773528101248805581559400270761065515784466015837481723218266087014486661901906695686860601449479508317152949036360257525245407293585810825841366821859305215877760488652900165569229504397387043785363173326178454929511658685784669130968920222869359008039035614400269104131680085375538263479874704752755482916262653028008073525154841869830808927248405920183730907846719707906853210542534733088853016987103419185022410445854534394589817184335299178282523945999799062003383517312839335851420241759298075720699290678634659042105876892261778357913114958317410958915262138464103601311473321190663863543222178862676453149269935926361464982037871819579956333767754051475363583519992215558341936718744110924916622057612094404314159136353231086600044216478184908911096294229245674273788741646011029141906206078413228790569507931227364188509175576505613671157621877211822790924749751780318073532637344278139615026731564141937330854415153462916272175087488834013992206433515417583717764553435704636946882100256141420860254007097521228497680151196770329518497460848104300064339354512577512308298113616048516326206264462911720350578750928632250415370865520293555774527511706947971188117640719904246499353046179737658603707692248964078752588218321420858129652653438120522852713701012283216204109237213884109235613851929938676872694621112139790617854583639541734868953938009933836321884706363112945261671209525062716543709322725468751330563863999192862194129895006985119188951432513342868005649250743241740370143555946891765121787706592872512688800908901586330970811932151062221170348413233792969965542407037764333975581223414545606805601731478177644463729829453479858460969326049795886586162852778360772803001543996205564153912100299598586521955991299056016125374849702230519181740036669261442398418766374390754107590321577872281846123910788589557927640092638239562205007616862035660334646326280881200254099502911800093075630446975220681918105123677396903713761283169120916972043014991854360654472105269341556618392586826923232899365084024172675386478854986886381077493975860452944862024222947417596552570235879325533200440182988832825394654493858838314935916756704760753880157010233779180721758128051794248884726670381605979637468568802005839915911382810444899239405827461203377815767421920441018263235118198182840713022855499353011635332426616630430700599563567404758918777022450461320900790043380403314219686276867560253303276783131246851030575825256205381397720230452024901720496008463561010263357060339732983404747507901659698987403952965609500442207289904128938454034853821064826044376972245273407479599753999538396680396404096334503059473397701868206814340571912866098761359027016790977645113831326883903891055717395188338840183141469300935356010639425637587786364471177080649264252192305103987177546729801749551393011655130165733400970958095889394015561525187211734512363984613415144357331817499420295638293958766759192414197145530820117923342712265196764892629815850344590064533551740164591877542234475276603991997438185157646745887706087777163666252885609258636362566064799250509686983184813651856772193402844255014346246412529691439318042084177455379931307203411567922097355743565870953253236920057537893586940245143889400718992595006427663911112153734451244546902206046683473718951938390015587903765296608557056645209426675896405212512163583933211563107133800821670546162584807278309309001263126966488295962608531292986031657147758716094022809649959414845005847714507545412833849374779249693056420572962144909451050365654938204048396683440483247261746942677677413047800421266490078321102009869733956481489475350847071003003014888386419864753793220919429956744954507862325558568865529464290314015368505959049112185132935523079456149930676125957774846618147376520275896258602077852833049968825586677237984030343013897574451443725089881233163897004607623430918338962779839501292314329884127389748810290443150724764525040183508796638195927555621279380815326287431643122762640995002061576382768805929931624543367868766224885514978783408207806749384204495379232806139775021307734768323962865099537956158745075688291353158562588711140705168583455266812050402473115277620449617317603289767451521697482435747375374146427936004992007507267749685622204013772198597518659496774342883881707319577761317762347247833673023613043390932450849409789480037052489910042164317303631364627231887437116073516084401352639618000868128150490734639387431024276364694380887518051836489682017162647902095394085615640389822949499670907743443429112178574842356231913870789191749043974492758758803820578000354673085029748755307308501856711820304898490300570331140314964923150619693365642169340625611200639843981029947024873340921260758167740110703272480241372709832313712876787697871783904538891364451597586958955376537267450383563596799416212124364640429118897293178604723589523889650852308095958686968620299040273507610837096690275488006581744862197482198767510002944483044516664117940124952202394255028487355057082328200558675962686152272290434768993544647203171020894718145175996074938937043073898297319862705332022026505595058145493806906297206679701392251639423964576006475224803551531842904551578131759696035573189092674417402135151759557857242036305511133594952276626328554916122624356143779902275841571055211492076431752809435089206443896212767602415660336467876328955488152683700015544287609819834466164910045052231780533906373772804449029868434953570260023867687235695055343945186028504006171265028663439801834109941970066293759160907856570807452829944039637098955967997337755203897168996857711983358474482331379400822978349283782149290446110064027439817842758976974749436995161736877411151624726615637481177247869465974606753930559788792614538016055338043589571092548226005933127906503503279179059863786845314813976324082710914524397809820635273090997549557059970198481509123953035728183827253129210681016578957173495414378286625869618834739935289949919078361219362625996323190794425404773954861805908973673842025617002778188878129656845335277833453661501639256651975198401629013783384979793839146142565955747854401095239761812531085273430362573953845668736051436108300525434738103128459926828663150509881140311057840595910473662005868887068781195441084876547507786861572809196885673356836985144083116719694751490686586974419384644785313342747812659028403754330298412726084964939379426931679325433241789166704893150896530099769151208271137954088414312553504320638544001020292349908556365870237465593842970703735434737515860962251442895376231490590256686641370713071469364138318199861261373221548860505192322488061662061769754494774137772848886751333261695670039798278077335978786984712086196375148013756303596062019497105008348612840384454371480292124993513189321530493102723177175394131279291462386920240260418685542569730220730692469259601966386373891584511325638441541437587651735435316889643398907183649472157510805475089360532892358624351733663124406936506895062251792363270667885065615898625066137080011013895635736810151277758373199140769508446504844039023882480041222165174735992016270017552149055581263328296935225080968675734412347245860129624928221680644247427078861230182551709496250069494353113968792180027924656070764682323411270504494390702263480625426429416209735285965158362972302438327834646948810822446128924292475687427031118245633991521092844672347377666427501782018350330360251166916734010830539235861873476686596179960387085854157788169989955634930506936677901755795645268247644897032221628429056083242445599910248540394886515079604069959882044379901525866092193158639204136476121491073898280298616651079405739565105230984193114330364858871074910252316624842367237597087990343888280041157689810817099324880362207769096977545243089415098201246890320832534668405881844354945499104333747201556162484801954621088277306041109873904518537617278545033313395968002448063010495206350851170690142315697595958000830775381612577880221930011565058432867714407234247356183944085382149071898541090440675448102479427982895415520669432434583829307332082727169619527147428012861884011525895053845129396741327049333797205007951501180303942945028572582119421862863189454979673347251958915318488511734069390625504820814196451016138627610808603824627470331685958689908258423212781982181578703453193725411202532197275364692249244932949511062834484469997709846756725643668695644918103227243867615950745365047313204429074135290896113976808141368918665009187689227944699853640984283669682905908827891884987677842564950277100654360827326641701111020737651595800040857160021006697560534898961348849271885458399057761602940071219017084272637288403153436002193554162408165212044697144083668705502960394352323214727804688389566012215582057721317232814364969207080431160169384961660917860740003257020036256764880236825180525373273303886618951914658782481622061312665484914600313431756533036909162604079306567694494021934306516421725433367551303803701324331613576831640122889438868029406787702272462698841196894798865386677657535485272958878684913570702986391647043038813748144411171800169175940579276169871542928990890105849198681891194230230105842127276036115437769992452482263788229121213392804541513581258565962138140444674054259507545297023281370638998530824452519608507443456615649390713323605019358445929933408014394685575737181706360922240212631905254996482046501450687976602695955507441305556518103743461526245175661631546087576466806326702169180190814153707866335124576135451257366143210775628363691933211867618150183974314351042103455562502505049423165480445719953990770002334949893502937860278233021808284722545950887816627968777129258534651250767485972675386594671995930573683916966376125568345944751519417859129954449645822009336293667544960353325312726801986522399376326680895664388943959625566299261200931578666278182320811713656492990479947462923330574899325234322997918873491888442870926964269542040072580776121189234457946100249964059185604506437884790014336309823554645582232038769797832096590877348123713304116959827602436514307782655062076389698786616652475290298242817331758333820486448829727427864257877822938924739303071214273593389654731754119557924179384947696367414296594643418686118566340507503078364682058663915126023108640668681628002403936681291999586637266920936573187212910823114653401831593162320415661603667589540796950077714795530870834662533536483004605484041554371544263244368846186950595185547999062144696476559070210862204702122464100005352741490713106206406940246392814196992088875376608200123411237097789313310658114649264655663378058744709503638681834045184576984279572480684602887286330009233413420985995474599958224269424110554059955286354366095233700442761661182258786333329659370633073483925384843336443848549650524724864910509241969152035451837411032448654638422613172222859979783476494473311181422538970218267669643550805331025722229737202135729824977110471923560842326421773056681260164248908118100842008994441240466904507871051248130454995518415755967159159432164347050093765396189364868876625162822596146433652742912777392482061132631683794292595391968381510685753251747559494389268857272629669416705669858340292988048188469616779708936558384670155164719471032927728291912012334461185977744333746203755519873865875066869814937060534912924263696945779076792060698251062568950536509507264730837358253536254436639497050984044484392924074589385106333748343327700075614818863294706658484394493104743928820055275838760521539037085338376603227260636274614058955714811306695256767732835516851535760786530555267565914733652077975481044671262108694922747381445390072644788854204029890775467560800192608314471770641124582401580122806588394427570092041375899654798542880460222179517641272777045031994602933455849379727981172547820957690514189601384946753327663923613903886351972541638580835032912359720133056455079008564560518641422040598575449885463646572257742773387893776853598480401312549376039535148690134991261808087040234146483430864592249807461674463904370374705496099143879192600169789444128617306838891971412289938296682769783652952282321548868624924456352862158928161837306210109928399669649239917558103889285566797468250254974374876708149675227450745252735949166732947396291459545019014445523268263473302940157389295738908504277626668464946043575056108071430578515740041573334757089792681254245348212986223285644347490084631855748978265744092765104313687214664286849931927352562115555394028373207166934577126524662984730922911910834283935263075481102079488544901913844946330458942293232951576296372469054050665497486673106383856853950562666551470137117104023284813341950044862252080835158099045437768781878223932948817132318673748289278161407264273976924686997324197496744885262504112545862311673016381456807111398804413798304685993455340620808295259367449576058941306965902391737799516808355177503739553349834073274468527400377538449706406465892712701450252839789012166131220479930151564133081648088950541542784820165266431416010075173579685682267634904079378362304554991140550964081393712898154501334432334034599016016244661164063872850139919256144224120848477960651168979149986752866123278418387201059055711924572848223193845424235808170441889830839490823179617020380020065917231229015784851970685373765113373769918731428745728019638324898479662546845442421058044375965456263381242006512131077721477685491359413484258821312753405516427875379057425280490041208090284904799102799865715646682483030437682577340926388198164948149215987491488368908692878736898841030733732491721513215786678706315997173235201561426553148005034885543440165772808846841038755250787149408390704285452882971659650149810033526353457300384843722574717063735914299778557360387502352482076904657594486782189772125632437191250439653713501503092570372273979884830032072579114244900902260908420651129643282258632075331136808365997224942088750954011993137590998180924410363830330792216594226236656549154931857426695956215271785369369709380068600962199256023164974262415245620173462394629008055790657547870120510055537775223739356530005012258007522236929326661688827349633446791802286903325546076551023125117148083403233384999914214121430634207835293074807199777491962716230410718308581272993394209208142835531530525896329101714677171716556172037282796092540056848746567636458063821966909561167191683264928751458998548462791782216644650214588673709724515765651186030010479705267199781315346608263189914958218836819462195097546932952519173106891959558979934289193973363040482883639978964933437860232223756040677115864309277092177028435594422244277506530169089059432240974930303930776494163350720229116631547311984918789421515114400825968042940973034138674135422767701095686619805841075846648978004725149204305398345694116255861568619117501913414026580186815767321418701694967967819532880086624774789299157286398006998184306196657849586940513093422714645985482735843592155835570515816878627504511833764253712050300914964844333183007356947440395548747952029468094408107025588943410477023440156248303236592213353832430814407200193027080322838436020580972622779974920462997122365215192663296942213553373379520533425753245416027619886497839320124716754521902991833911503642762191907255914237422804720642822931053283215986792448308887573719020156591078671117654144453174359498823043122878959481920118831845822819789691574280595729700639923324834565508521299652225500865404765844985294142374476327141119157368734384237513513688254557949300268383199015868000092816668492977829254165973550757785247640790134109121380181687348850775393318822403779401119229641792012214694336415945053428353740384162592694778315137741268517300547172272146014670717178712081433985351033565856267476807986171871927991243434864741921584635650075808966113995465978473270844260888941905110062687273772853185848160120032378383512631437280646522565176194572281497015141660805970490436578518657385036498002289014032913768231698531038833710194033873234173099114662061606561007780202238085560289435081932093019538187745440054525436446200932957956248165048316500386289411811813627849764924679231918657519294435681179213723010628336410698474920317972531688038504885695476141570798491577725259332415419398603221072959783172616834721914445740850960930350547501245795474127561508094219906704378014381735667233127515727732877903369209742677256101855341201925166299626068043020746368909029848424413466842407916726175591898325548279677201004378394568296608615912978085378749393217521441604383312289763904175998205200130126212814371500168509646208378217095175325764952708243727778176319624740069006316038888036482510007332901149079757031346382725609164040326013862172757347238994427748713278900990170694032612232093023834777888618412396293168069575631670814055212861386042011317116884857761345870090823510677415271918111259891098552909449607347931402486444003994002831043791610199589862785414049992509823475785604320489363549391342114211491247729459113927273317403908009577242705245232035313034919204035903482640321934340477364008076672707768926038784881777309588024163779510281861612474996765714474686288601449907553193438081226652899630216307131862569882784787856072915176491579324205872337791500724771469306039059539708293779553773709559199555049409394785891197094915517606129830336369730617094498395493158145834287726622075684853864880284567309628809418552944966660329353038787362863973392989441841803862571567170590746253944436476938236930351480794663721052465448461975515431918620108509097230863955227340321002542799731631649598648144476398555445892793213931803959464415107214765516066514043866956026911120103900566427886568837936783375647504253973679219375487227007418022480586836298505813303780887770363678891031752925764337617558698356172616716765525481555436225121428443874617311131048578261949794835359444989510241111973110087871467606015422376780602021998308563448714309187146724636429644995049553646256880543137905986564799525154939851029386245044761306471371146309136867361548735277592949180610971862816737276776070572728722025080109951652395364986186734366774321949828141111791027715916512091440891608166741257979178621605741298360999189293519781017591809059021042371033694824936723390365021216984136940356815825090408567949085911648627998699500360536597339348293864646843609893808279324990423771270119804976759028333568892944788140260032285597272773202372495378665462846564613028107662225811541373422698996661031806807090212476892555952934390417415616483193452193538287790843872160605120599979018357998850314995545176826094206288253963992031862663149045270163924704965212608831151865268954482992079849821920138312945876329872116254718324981103514098471365811109503851825798945242804052638713163026175889380410660721268377671651815286172821257552282571346696037645322866895213371444741594288509552398266133143922758175192190500774881486958947461348706579547735637102728631943091693834886462175887669255191816702087958768021121667855161795115481667686057133254442506356244868331778170136001247759523963177756472044389024623625528645162480579052475039242950051444811155108719676092943376210175291912879270932998414323017059394163098966641030355723165644186471917312397083775229277928228987417791736664601109062325606504596317475106332744689558207518020045697644403789552402911728702822159321384689982522097972322632177105855848162024725445804063701535755250596268666330722584439945051111192529965610159692750805051835046879463101831490175829143246936438066956304370088549477983687222021957742199140872828878103177657851306356897186478626184173844349197884044067473203188216062792552686189182749840111899047978876204959848338706955416464883674681687419801736088926087444001616434379478416610095443512658972471608233467479470854606266148556619565026781427774149131200655820526951518731060149858836761702649402846602961439904339736817151592964651528178679048869182609179051181227045120450152017342262713368151462701823171447662995872833367537368985894584117575656111154819470304174451540794331874677308419007163285479493234079647855801547475062402104335896273685245279756744056521838858346071694022756871999824926848316188316608458728767669918276444857771129782410601984121073450832366354508453706275320470589433543183872908493548912534490738320758285770139854833628481402832547310261317185003293708623337125245095119076119338254187006380684126631304760170347215648837884369502962182173429955554518023812331604634808505637378303338170659814593423267323551153881044188675249098560891511222072753826751442087005758288333598307313295810369812229965464054599866346121528026899856418436390715595314735351261833359316215048209097438333266025033973108862579568812150601642319543099469649686042657190790409831047811057015941994993494827503775917481349616118754231518596197614798690936576597872424600294211506858774010511774434223673938556428956968256036873627904490598285156271895816685426422375548598127529009462515952035042725142367040540565960341749177758682333928089878122438224010235350141996540655554281894162816475335502680574369322555840972659518463882951759712521076125102114996817279742994521190756870684148658056736891397288606220845413518631107439298049555780040888506980360958290376661044877656331918964467440792519383720431716958861058334202278853147962829273415513881243791868314995632615169659271955166665738839469805242302224038842982440960715435437575523681288909429386280949619141457045827346422268452194714273900170634643597251110427168340032454953887287010221711684360747928310939375268538402930479846639627283251115862374497269382916908858625107980714593591261337468746464332710944627303166422406726888827466002943888212060518919622606334748175960094914527689347662742003953333729281794174188134807179534087753916529923141965747723684007873451835424189099772651041445847481210518526308615312420912445209128254943848190483445340965462315574261222919075235306364415350369448432883290704725577812987912230017527852065199841138401391055199778456457479804912318701868715796873241742972457896427612212057694632423154270448867694832993664123474168637818271003217290979547991302772481218874674363240830798483852257756823496743294561851620275046305310508109960686125995211799845506873606575219375303735220884174601800072733403220374319259174991564392671596064963179058253967300470410880698342488139915402337952577247336105799163790185922638827386638618014797048715607319069020997360379841318718773777403366151882717553231028280613850657510578683945218557440521385905897410927411937998527529636234146454111777372588423253084094828955811805340278345301035128746412536521976685169954191475507926983311609904859508169169897484617321593273503411418316291095022481606093780732087586204116704948209931947077542977589065804216223499312169160491930252604549374676326112299036559772510613532331706883979075621077568726993553475304684791142515017975292989836041447451011419149520930316058484679474173152411121402193662470449089369659834167376579711879715556137630706139327447812355208137119217949352529904045718917769605495552149159329085847119148625665681545412665764532205415766072278070573649151070958098697860283626229238124966502902326303725074830166644744119347450227244553830367978724998733740717149791989647512460023934617684619070109391226530530307046367904846419434547696378338536404986399083002261913694690716284067119191882581127636443053414450984229803177744114392886791792988103958866072451306830347278956994144193277104386352825892589732972904157078180660344013603383569355312040084701294168397653286003270007886555325595854895765993781271272769770389450959054418303712195792039976281068034764582178798854550948717646466241342358924064123299253351949335896703211663762785142561010046375361295591422576743233389183126184836391919042819958658568541475889918979428941587391593057154293972927645617556160947791319985681596635963770458990562682381203838490333321868592978494318597524526914016192249065650024174216506859307311597623070610175839079075898126969926017510307010190871973259094458115102204183728216131973078134592490815228406065119460371046408496390668966511853850253244574906726582339633408432801461557610676938469946422666119873618525446238436760759923941745194861232028043757121545760910508876377600582334435201909876026695593969883284389687826292869381793024005834173531610536290067983669955920067587163802887278089779980337208988508624009188648775248321071611624914357726561238959232493385533994019948306774944717004997727846107212831779231691590452848609721355339692713705509624278396902469389304481289419766655968802845520680163760120702308324485543951464443273278420687619805254865799420690965447549591868849453629242014416601086127708595011047112479283975287306904557306500842961030989616990719037641924585691471070208303652255075174697633011270825956740225445850923812554156453101377282713724203728331108282208417107953582060131302539885116585487476481142268410123566877218899102841109913233657038296007966782343580594238740987050943604714797085191866746760711079810214893577921368361702995533021625300291409401638215125414871205634447003425465431671892399700612874698065905058056740254360014913504531632064037605933723082006537665043254242404970526202923172167410265925917089345203337564327487799398549030168928771958516054858360595368968019132617834847542644041051989718771373645848971127065415907640783676222270096651048117707372442809503340927948672191604667420844919864681959368535358359815262879425882250960718569865380183934026466473846017908943766104417182427512649109351527213251680833517253972067086098754927350828140966333886517755004590390542940615868707166700320007147852819502249913207484207532437366455569519013309130602180386704874928211844050008775131220464246721029557593049954459030406851512614406099341692143616609085746023502911403243150773010378019272146943781473306177997688465480133473328598084140285350141330047331196078441979123403264964421657363722575366480326399358340140357663774545567544140045481569263759730708403858754092735522242357732742755982082831002725662415370002144347470032528227809324286365502543315650859430941804991758989270475380544083362005355843516846276811280246797085087405627844567765351952878745088022930988982797472779642271229231511920246274005487303262662798589661253698734485245149548800884576464338626515862305138119907605270835460345861950190321630057902202147140952634798868701103768407909265150336868800585864813717051938563021585689097015635996790354850638790860132516957056610036012850837184092978970133194735451062004381671106544528624835227288628389552275201596493914150554325157349042886539773596065270443066275797816364086030628316976306133872475882648402707018306050105811003824628496931049373929915212380103072995195301021510572168683609434094733946247660880981794999979572800659653944138986706765292067451215212708958024086786696148475244479324981629192855676592259212108294308804621572842982656468830592789839417613942867228514481469987287328099246684990173474714131823958362847191297836449482611810637857922008139918045514227678983020253420389088057126886392923633790629556713047954053640775093526977324766987637935380595640003989803136004046420494657080197118333357613869324838158783175058508567978937692800441326949297948935224349784714596896724338684094487577239946178235792550204783409768103353980722643366777174026318127446695819533329726440936777310371281845548657584340485590886181049104858009293631512981110000875960894844492148994179243059082335682391062058680231184528368872492627622372441690557041799980341577612856635648064378044605133283208786113123967424932106296146830139235686203598981214153719071972609984706496866429186809959633041606081811569250763521552149943604103276810142171438453321193646993687782447558859025326159004042390380412392038444352813502377233380545183926915767686459711397954108916680612043496792276842634949222486341285447976267181880360437663246172219101748600794192876595313429389398592077304972489084107754596053704823308467000493752345448211537120520535501158325696022820188958223388741694809719135776012709962560025994971393534381411597883258738018341387500584932771234811141522249327206248617615467819042633787433550950904123916081098567586866144081882782805192417100686601619194183040821455110310161447164770666615380941833724679559155730956305306822012595693642597515472988795164058972379869735157971612080479135680447135372433972714445642370713369309551782470239529513831965703936101570100865164588279220673364431999125964626831706363647148931296493463970876634271595496848783698159413043221197621918029048794988952844347002788176655652418888148448367126979760539508675223327699622353334561725885987719622732898774498481177950757281598985194026261408795493677670680025843121905175363008612269905137864361851399818446786069096341006683573724864669190095640987663312331207153349757028290496414692941625424604713289696483236059091426198833059825003419039159061171911394828636678248090335810113263907643044735340413381141534892984660020523065813130491764473271149166398574453197981744442607698562156966456228640897216664350158468440097216920736789587545357695035738355162023058911446146321174162763333887281827634526113573475717397989169375122788809750504997263803440539147616388155287721711354645344909729414144055017395427707542667817205803695785059229926607741525619210980326917819431814571444952123189773158581872824958617385015084207790476565338367965448024564835942020186020155350549759213126353602549580669812615424782518499601445093989711705519121332019904535109857159316717230248940353783522863929203137822195729834186814338509171286687024120330972084073114639079708538866859770570468665738932748282253397225845076014668755072958520583045532934464137897412814115268798083068868852914795062935126244365363603036677836022756743483274713197734062964989592324459584217335699734159023651814592271566763200027131736565934717110744950169954328892918249858115881484631309932199753539476735821899529124684160063102496431497313140384675708889112076436069841270033909042922490587324674586071532192877791635880774509559110401774717715283771307250763252634852369171229722125265235623888194348381928004849397764625936819516297092170272545831849363498965850013544047757883106892617857604252203186012225688154903017081967829864855447864814988440538786309362213369812389398765211604545184196576962279955894823231238024525098337750458825957921617966653746654801619857520188422318140435358237116435280697276310604200309132825636492931515119956021188679479760469007759970823943551304528577048720989118260273963224943845454337623115122383522280773015007844359094869373989755045158795741659207860058465837222703942868240072428549829842866767650382596521130451355911425342840562951310987030277385225875901487617335894057339828115104630170949061296790963710309579776371985515972325676788503957921784071999266768916514118728010461940509868265858960834681675053329779416605234302349820800114457984079155785899856260376819999393999793479878502109340587181738048544115777213348502686279562652065336316017142848990722844256943347395589761810449518689613812567323539778400188723330354792141600670811774065747235579959385600406644159421588338033085891763056866995438951752401752936572546442113046937742570540427764332736288127874260641857125832121889313850831620749531178869113429989219366319147410361474924755832230448796565860135550246548380035301522055794465038061898774002267788264110633869080075496367466343641518553139144009673103345196491542590448515642094575555267070186586597302546895322799462086741705231180911161372606134289953023191467624949457139853000011172889987816625359444529439855980961925418480332450634986618290862300348526807041723813201680229919413497653901664891752964269055550569084937210334541055669697082051691119954286307068857131969808715682917223547816186446132985002947961384069274609339093503271026247443848154562592529752224963072917472073553759161078106598618279994664023936614862851354598223548912145416698754398335096188067262114839552963354472084972262628102536122081206598621486307871913705714377785972817376484821871866356139026457597666809160310695234376440412851005793643542281706405772315517836210587006266589186530884678535503225300062917369726557410421062941989768391772594846784170082379876003905364623122285031621539080069832389463974291960006970823486892087740404760904743018995425660625119633329864792223515983638968491366243074445427745480804025009012843081852472526098674203879018009663864070116324081846210388310506472233868264185113261775773285780161288028880212160706335569500771492550172557246598289257566437899346032269267008846014518051302669660271490066997576966317399890335412238988999355955574261266334862685227176871342796014425552873845967292022253537524154200987846532499444802920475428968624210944138991459670404052794342326018013592010834786735863802747063164948636540712273020892141901185829601418455627512808710946886703502715002594743410139231260802721157448884097036526176547556926169613239419776371295154131230281363778656893706905972022646103469396646919212909478076761341751520080906173951436051399727273303736515427655189034405338639096615663704022473593356988063858137919591537975626513775857023965273225885284575001768561159162245725223564999687496346757074307619446501926836169839515314165023043961109350923498886794525240035261750018250197054400896437347870250156436196402847182287152035520306019894007911495591392207547541812887157701104375057566294078241729283886771192962318777702031517929364785623332930568162516856833161306627790534866968925716331830629043987513490139127333898823237782328204334821526844754604041557804105874306789471882696170166884765270197445669324426711869289747163992940907849896782315164470892398942487758997450634126984483835103449756989547914904756609511995787143785702883816144777349938915932040014995518053670312038570035208192541365823320943771232130159995694220541892495537037820238302051794844095654496190387838795177493403323599222262160555600533995118204823989639377725176630397199255780733773607363004950954268056180747537781132462058782704705378424291352523042835902551938953680279829764312110467774117622544070673265398710675217838091654984458396707169382957616044662875304296522939216502259483947530725143528620419310116105305590257136989329661055739279188317867529217226844434648595829833354328563023463004914984005293658017657149309919430760656958774174105515165131796231339143407661257140963024368846263587464833164645837624472948524830857587123223641163061902022263119347923232432073538796781370189865212345229454660644191736238142195136206595232480603266365515143967295440174911021695989479271558168926451939277949926350673296465160205562069578702657371874735930697758473734698071436940767226616395952539839077741291622485456301147748692231789708762873428832103467980007211731020829954057128804502627084466199112617347545912456586172318470201127267061038499841555748561093714016924047383714099966306982375834497345862116280892182439911649038143592539265252744384503192291183395123035883584782530592823583245309849067112471562102217072651258957760081555040245459319765425487335342857423580792099563340624491764213172671560029751769252563178532657635015836891626487777439749324106850566743838329787221810345754725762098734073719905847802900542006908685361581944724544189906518178518891247217345742760323335629674302869466315990621131110017496154203183244107850979561280761242885170115654215865578438057590268378667450275987724684195006767836089536182309675124661042957672116023772608167167601230673972602254444357286294325606666600690731978845268322154476408191402081149805304892232467529494440782982204114681479074890064975710893853545236407278102530676056589992335885326405856741145895202238003096168956107763509172125405165430030196544612558690611041018679325280787254909536958142066420669129689190584507514444088933354209674755230405795082299891040747085333830826435803727931235822255436015223034334193326461860800127612201356090864468662818114889491946673679593125211786543061129140556773385960497020292851728980214827286062743833810729138021789693597943365361411976631312611540976060589934339035475210482618775750187124587297202880655250608030981247815383722482637859964063548964297691426693447219716139308517300928039144155459649064043384257574435036003537846148603685394764156207086730266804561686091161488577890585322631911328180595364082293997884574469387508108051799024521459942424248560933227806422756250980874001591383260212786831838963612145479855164480329541365714221379260278013505204908324505626505209033312436195677518540210774653091764073828841761091454128060676645314220334832535405756407590629793668535410120259695640504950675240275616091857021656735863796124750783121384271055839986448015880225102805344416711851206996180994535059740766887004702436160417083081416921185437344607143629262467525128088486644419476066983719729414643340473959886279720340333157331848825688846093484537835351590292850541213019180240735792498535542589211060305320949035449748301458794240801131696782513588770341506667748123791203362839517715459469844628758048723984746760876391092936547084185665719041648340932608341965281232899912847017110517438362930210826660812072609379547148404183970335410273879809749351931412871395197848823051675657034269478090795418854633161673651116962997395981712766468628612668133214399972571789626560146038564977599025069877634620948233551884712496783761174600541781731747272861556580856445216692858866913610905143734027622855835647821548610276959605699345332479263071475846170240202971544269665446904946914581125692586867943297611920382199913105735611244986952749473794454967462759072199997625334446265167188952232633314892654300123264364077139224292047600114426038752203524882588832314988427827384419817050208741480075436045670850521765816708078293335565067250527027607132946693403658616842227956653111326151135132893157275269047748090923374563509084202061914138313765609268721225069494072003790111675640865299730410304943579584917358179622824205590903934195698999855336051230188066971365911751573618707708906477204190513458638202590370842169398584217800630104170321606636660692158258825267511409733122251614590043761403106735547072468757698316593310969651619897726566925860961263752067684649996445459864900678980072391249245366073525132148901787467736938517417032605749712061284690789017496784654649830686057785301319727098825051027471104387515651002750993593267805160202811804174864225521240198291496275793890386143238609149580036134462514868256598910601566835114913128027915796368148920200943352931951526742839068634858505763800138194180741014803161428954685426480633414744837017185027643005231258034831954624992942458702982770111600692469409366239861910316691543649405561044662670390297625847128501991600562889828968775368935842046896460461870064144017365800823776561607916199476741813735847858292882667017187551357136678580428127911378090817430008305081833027374496907907477733234437632020597067325149257080494476328680144143227581864695695024211404946218920163309760399127985645313978342301621660976838179764433679753794488179061347219813976664823632600936980477549286373838600106641736249071586198507195866617857405794396525526561044470161702905461925886661699567904579015072367782552691872414272862187909036529237186762710345288980527516138361034416302227282373977808740078980976187975277431469100520276362970127047280204306301746625355113611010249820556900963871047084635977606841441534618676673308617144591588966212246097800730423124669450915981086607625377916346714444393373118287337486279905656136719089441333067246655069740733380167359718265429716937512960398767851567099895770791896217952951733619915208417340859013389667262448562996135002919308961401932399328765595349231596461117138171972376351804101698300513596682244337660869513644745030247641859238179599466811233400350887150330212997077468427965926251009147180241771230134757544855321922510595959072907186721605876545382703673898341218043124789847025733690654810310952163039151892133544761746822648453530994486633567679434583951529391677616045398041026521819595094204367348967461783671920169776177433555475711120241390547540717497757635278759437458502528412749530633910061375344814767125469170922481962585439658585243685287868809113722477744622264870954740429228458818477517369437621945651655798381249549437429253842902812034304047533972464919292009894459450179901559945816552236736112015820845973834468104162884232605797946205995187346334271951948597963012876091736079318050868747595120906926451588105056377770851688560417164731114054490649771126805544390202938064598279925588279801705809658866173842985976911661480727813507695244543383865631043944785050948983021005398900427478923446567176038892078316593110243782215385757322512212711281090590151084731179259693856343926357780441338899125530690967962770271002722220223291827053718338083913923674858476355970626486179166586634834135135442150229245964495736971791154395683348532707149011747195836907377054529314914935089447646555040874201785243338395076452086852663872389731897307127719866529478978400797689648662290220407459839143446390732523195320298299299241157995442881305432078317791180710674909375945470193112253204629613791520848290005205228664702848653553050734625861828673561921048873705332967045651979289830353037114716391019119426837065631520487990464288777494154197109733740882042357158598128440000884145606261138308233782260721483605097917286923785749899746960192561565005372685561101581413934839972382993108764193324753854435051879252584709840359052881803694521352366739255400496614129313113659983436145456292169661023104860729911697555341193387617573842443103889528646364198703642757801863489640363334198813592232291114602690969524979034474530465582703758100808644273067910044899767992894563067028230939204548014405738461804109031116132680141057761929128941256053096769683504607885994364489675235574995742013388777347364553385987043131159467953761824319570274783261347730852895759645189583123032339319494057201340530243116919540302018532453512613294223081633222911815203306783018614006540305791005681469530284191862490559475912432102358265108771982405438344421343808316751951447481757305732221635794987553305083131083423393022900203856646713776967777829044924509472329725265326388223347297320633737236023365348929584209678171822237163634419559270723477070813604451102994335252927153423742790231510602291364890861882616744070028266051173968236820641302240211857170693156487978063726823170283858784969444936521856757103518447349583359272310535622723395703198090519402859662746125385306309019648905285466304004942126276397403046681114294809268027533201477094494433465128872356815749860463325827284164306043757653449974372857962151913898720114223771343298140853613772480036273129991393817351666404545370086567344569495554989028179314413458121413938701019373164864439043404945560373244437526576127748798945121413876170462172951149529621346260562132908592461679310078884915358540362842277981666002276639536397364711668526987110464560561589796169001518477414880658501486980643287865850510262572103428383408546303868065326072857576854277280659319619516229533597348601674532241381043799412705251875417486311528826417444342311142899306395989755073440783229025114564042805837482118631098124840710161006819498732347414517165271768296204862005313756112273015937612998176479859767944346517025783946348199014425651253962319651047769959842208195070921876778472723674733072179249468947649435733430652130851588318973502872381717014172479061110737333736017902864617736777128283343508014572939145795844058201105416147157303659556256451002818416306644406841163292236868085098296252486138390962609469574384086722553221816840024906711529284334028757456504539897195213569427671842842678111571448029891735965415384910003785975259517942904256908927949978105306974497468704141522560075304249632668144321608865810725626426035845931966034456693124419772953691920598198549701402048483727359095974719932094298746905004999833098359385332357850041916789680506570536425197923541009991470963798167250484871217609614797157649141294159269644723071941951275608311569060966944427879270068477773803354913035660805611950732063509086999377153069317123513391430609057652776641640731682701223245127290789124721733417648773823397043743513977991731877378132055110512228734541565474318590313938290986930004621066737659732891114841959528619416028812338338006830302009951133578324440756365639087424627560984134643163936616243515116160780708149784173129033321831033875478331271056279221697903410777589432923857094730561225791172262501688614186340026539035615175224494094429056765146924031929815974171343594910084197479553364675255295860944598140418091395318438098100711597930534455769471792070733815778214686190542692972015631825378029164844266699192073809319381147304192205166780265222629215166641191755720319088763637216773319165149481644816941112316978967668628112178622840285742456836422000909872050135465351071244037191484630997189880349728472436814961575428070513786414017610988509313673369119514611877359182600359324040715917823132226113867814394620298655945105495818413901917765195415583090174861506670089237489542123062090307319868467248795684029806837340276340806677251048715901701712961809844124488786206265219698420486583525182244456238190302541371154467926318480921430794648784299082266672944984423043149238700055431448469998987281583540441606144451345473388553882998126405307964309555951278301243534098542297929277451070741285057969820029192018379496562245121722941507812325898179524263473012294430151955826386093138583695834047520502377586075704189791771376301341982332345695151083512175203533410949435237907936015307706296256778244793231408562372976882633771746938209105966952976829100043284910896164677315035271831077613202388977228337900681193023444748405747584262809804418083093018570297031526382217424331952583440895460020250034181769204774218089412268905576422975383144066266318988463037395563643320905169555095274107755538951720561076409429478548242693207319008274988253468223267623925559688872818647630708357026667784477024955954497097066943178293782223718356177425629251028116863322579231459584012028389884235360710489852222153014622444355105259078640310398058095713816570374142447055993483185833511060740661521026634838176711581268144311689436316821104375756493833039650868743647350412888088439150983711802354369450966560629000794522808143872488391218605852542423014075242951414155901266857776079239531692914855482726213414822630416880219077850275640789897253948529769674395317216837325855504741176432758743042305437492169372022267117539063398379089292109097203741143692028053392743308621812415028041816721665571326757110146277959203960111431277031271557249178468510162542755744375560179584466126672895889447068692694852133937494807485166184824591807465858247937563151447189426483527866049439872430913718065530452547991409097252998902903670322473975522291820627640682482974731420133708237843537009243186673432584619634965302855861391175976169551121078983227298272097648498718680569136919693759351378304159269468086159903574508711686126162002602919624403623467512255137061218053300925797114765121781647724769347966030765041436658921651669086639987799975997360960599421900144935972088600809607205725458062122149530002753740683659459092593458366670242033406429984141313932521192280093645825001290895518189205409048898984837715264090328948320229487614711915342199842062024741304077204409691876294019904515213557768314286017213873260302850358956459930019353733031913662879555533619790316339748010049577436681709832150874637487430187050891048596284075534604726101327828604349821226266290701205402816958270309448076599802634217615002805913902770196802344211818914614475397194186291450694245673983196761680144419182349140727299141910063869465538315530571984948600245277943292057306643147568792010171088463155013486975883481838319144425510904891049728647769222415150132598788204707748518629340748942994383013354486647999257803878335507051995954428468857513286724242627384779455717142081152308853723266882085925920352316293910195069263631197643914439358168048819248859367067631895664319596892805653264706169242671682782927277418387609555588058463648106836591746794322291327414736283113043086781225251834888251203332089370234208429872009484872402673636886514523387040938487219630403052305712766915694355709516021032035976598164979261438017855259445065385903384544464264327990505476997387235240240473251710752185593771514606176129569411720148379561667891567675808956230766047145549206683460585894510184795571120865581595063237710201846777796320730659819096042538414248777067675332332170040084768105563208234091424034820917814828080370702856303328295127903968119278780111925018257925681027828603203647586445188337236638973662106901478138060919137866174332004513530612676800664861280220093923548578765031648888066286809201077752466334773736829596513504721076605577460465934953609950389630304733307787628064121582677770399004553013518872226114511761191301835605551211785693345801232700112097926142915748444191180186745572274862651786226779251174518675501505642478702318802554535177306614244562980765140422903282777283203683998903035082262987012378253856278891533670362709640560945105170620245765487260334739250406699658697111801914068236681312112534805032006962863658838504301092173914258240250892394569512446410788314124999832045918182287171357233512812763131270737297590218271294431582687930834299742178507124571884398863848535554565562255062417783294937139988102217161588150948049766698848116344459086100949561923878335424973907772637428293637960781360047612392725520619928829038099371246342676035135663067990049385757691760625942967231095675626844199391759349277494251309596772147073675513682214874591368983428792353424329898842073188972630221936896846800125685725159686544800511361666620253609328407666496162942415987728904750375509467073365525427268928474131651162341997334844581901000936331131264263581629165730488586322128959015667619189033000082638275061715521410695794127923567338170662752461659297447276475257019957066489359969167855226635107884534195141457040173516089434946161853334614543179338202215045362021893007766086047654112188232773537774004454785332846651316605374008234745230048371492672207171640529981731272375311123969468845620175682820766189621875125479085487580995457097411934266874423747631268959856642700481029377400302280833926311324215675010730453746824505300402917099180798831396293358999255806052411799574151111071878672292190284265382261108369425516102688705739587095961219774793004705813137433250808538517881811787673468339078137626954866339942979791918007938199166404450516720994654622435710112486577679523822711085761543920861399894645023207429570219538616304105070864921550194972125148576286788486138362645759236815465985169968376646103961267067532188844336125948259122556404508338089745230314573561746225465784871038121187653396513263647411444835048937817708617962151819735454964784072774723685107619535842643209721660284084999095292890159541800407049422053837990640408714543975577617371689847669226845372352283987607725226470238510610046946201427895897810485771065283490697301019103141696170498080047904119253596962723634727734793668130440220342811321579016826977546278492610256537300218502310200424984690753434334199591149936312851662099758978148712800957769691516192609392377119858705037852890245447131357322903325978026830179753778001397436076281502952510780594220080706593308339540240101264681648870420614310812556099802428846866655350123596291455518619355157963270331415374748577055953470969609089087239682162064018425730288093658150282544633157637252067232964107268528095527549744151541013362243682745398403399362009355653377243642099016022984975104019525109512200163884611120895493195258210298243891569604544267306596347889135771462865695903287556056160255722845137819419611784498974922574749492620293744245341785032020092119832963367640962150358464874518774920123382149885892307878233314377999665326119501609649655993122994575851272911630204296031099204555592514932496172144416016679519149018843229217992250291467419706432901535142571429918363252441125925530328167378766871364438832599271003983675022949631317343617602883368014745659794906216456717349799542947852216620523909502901130195517767067615395391654949434328198338617664738344148111793230239188672575688328370779862878531834616468602344187139159457730737999967769226705301915919184990730688000884920868501325560801323652763586113972237917842927556431133755662316475036951611329837326421250305383502504839457270199033042934151078652693004815266635601865482275909842680672268184654563298966334829812885733436725049158996624840345732297106625139081398806064859475325517374547475141491288415168356938634239686792474256090874021954096910690134475029000673636082943723021071172647945673100443466508707104790124097103409667048159371177846859977619685363078185716406688179857017754769591298193103484247107188315114673506591675926667424368009902863144686571963397966005283030771277408952572726934858380242125044499788066137124536208400571314070494758656345794553720183139051001779912916462790484360126228097907432375920012404636182470748685102630637440522127927459559830852041934411406694072075344979610382396508777521606594037989739401747704325640316249417650290078232448221689741444766996365085554659607205071666785901790917397736345650714152394831342106671653649268322280930244483155320330972367000101410957186893500186211755663210453620582631263306367852870856212492938545149221346955253617894197057234915830318001560443355165335302320633865512086422525671505343444604688014811633993072913205153246747708902272100498944262040578925386447641725464843159238693093379870315906480237937327936587759076216343464102809904449691879300585434555432352788518389442060966893995974932073934735302749357119230125282197524299552057992601452397931814973431348021018242006612377957588468839507684630483518600195961602849487497833137105419388214130478383207070170258465600016404119730722585605486284885263778105609305603513880747110654509293773372348860938770659360646899679578368407005484930691314570321568992655633130434581512423136716443315253576528422038775602390086239818525712038283101695198594036341778651019333597171527371118182186058597308762190992347554951828706690837287629508480909466866680971871596987753171815706202391830672508420784137333070164328756771471182865126126745803157665159592108227676036381793813944289462417759001618051675311534656259650163406414807028502498533461666468935805027855777958081009824855871637125844562461247386881341825060810670846459984595064825991381032853824682809664309621561196879069296996194110565868383023551787273555446966383489769541146524814629492810490235587606761464557544482199033794540358026907296880519799942245974410364275214522212585798255915889877277455083362539663193954653877040378420880861282019477499801980577837291012583865220444156995518611896248702683068634151581682534803430456763110062280865951664475023902303750321481438115533795178743764187621952373272357383555486542756163774428854374450059974571482649609197279962542133425945164051162391697992927538160232056201773470763349776621877200349046524004843760879905535756152464465874508103461293851923172881440803632671158667692128213621469891856591344427520112363425338948387924501344962029364736521622718257304130118417903079734958913537670061830462650370065156366518838306896398354023710986457625458374751277111535168555227099627776554056440310407514084406365095764162825627989673976607410518855474473946487070762435213488756363684419920690280986713160735825125410543226985557886184412597797188360827745751201211857676270778765070731978367039107735899127324957138084901875839279126622828508535474884518727877335357788011640107276744658183345117893727409686579356295839992840140574382949627307143062437100926585238523816731859054209852169092605736685452291297906496728668822272245622331034740318061549372690293966022161321761072231676155110210140978866780011669199854362258565164603195992964621456807208864667734847847498457576870021458687479483922135564321439814610159165413709600690873640764417996827482944699670177406266643881794157420964256092576508489990360630923436835530110295384753622028583070248221337962408144092654162551160772146504784760691325470451279022169787564111519291718064589089676072945603482343170725174752338508901244338607195877136140121585773514944494840363705333807047991527484281052403531269731282560378439816312105060435185533947547187296935772535870518888943048731460827507497009928540233871775229876181781821026957961052723479940440760367841093232759805118760614798897870477381348769415743979086799135679167193653591430973300385668607306519266440874946233488403396028416400598814892668293662493318797423711679612028305495639025439407758168791902962792276958413526845917861544237722932568154545146660092451841377210603095541838336893637977947748550139609299705350450106729707637890991499281414910000051601936185896527892621363364218635083869447694372019090122875060259913142745637960389845902990715724472191606171448746107470384087968043026619572771964603518438109775542172837682491224148638237737392872240755411847362834815516531633656258675917393510600284314487823621545177189685183129342294176993011443703177159423307141703542567232954784474122167668295492530906806005348662974860549632751968232311127760859609456066956696724775047105201649050107746441340012354918727623252132800973094005480537991595023958366524863229688490556754409864674102456980483234454029944848692506622753830688950854177997950091771517769544475732980613472057767491962215335396630700993348460609249997034570896346579596405015952341123284792479736753779520288641094667661859874477495552361236985216380053281700236158157787008187149042873936758676707284001047015358970263396666069609985801729012337095397384507125102393191315598582846113248578489735314640312332564495959285410312001194249458212104985642883246905170669558490948910639846250124668310927419001470571600669500196409466151799826891684427998709265821910708172294607588918455393390813252440389177330306429685794005858660342435867208664879405144908311710120087096769329184092504748594401689177637285684873519148334814672072569694798284090389178072666850283637166791477823983131493950691411105818517804893656165231487374993783192230458273854738196877157916709454646303355799090240937761641448106758535058813963651870329706972208847902511938320975015503965402157608750232293916246967673603597482179497602392120641816363549114385590909372184620980140217739730347984219698195873304805780034585214815620232989471132014957345704744361583654083097546612576976320008729278288129010022628628563505410151984477448093336419665742805011026131387880287675902987210355744871740224097565623524717285272193361625323779222012719044550241988551015235759261074934791443939864031281628568886503243037101102634283208633029764714028404447174394995329398406516232918393451533148882307329899802754592970164063552303876034577254499730782485852306083493396701628922831586729534945276004287206789248605584797509867403457298483318809585554339071287468185944568300198753519884450967855595509769901774055270995301329378331507453315781989406067513557227642610251280834388424753103547227533907240858289164987509495087671220289373855316333750980678692775960164178620025856889479848363965706292968681952570023581822866187966496027820214162009557982717080509278928668189674105834039067756503963567012353200575325590861290196623536809647755920187936503726950944924361480986596541362429117346941795196210141729783657567899034333318517848527605073682679910495335496251072098553936188412909163873717534740363697551430934206034895801485615120286734945012499841077232254880172493217011363753027713343713312945948362978215198179881327666979822387176837182840898018009960356742599628111088605651315315661146626250807877058743664712878885331485355706966007290926075914839974306997224652385997753709921042711008888267175570134923521210101308314320521584809606849625856035620237317899493808241862001592252686489739635893711071058762614179400237101071671065047133301945712810226603057108929582403076464520029256702463935147560445159471234704329534672090455814367372168492552702229962939673900760099592829186849305972205880851436915410850153446199040759230163900014367542959796946453416433838196380793265131422925683868500379176206988871633263617291763233005574701390934925022442183050228061619177683488138595253075594176305821259253693296716023817114265409752738317711527888121048476402607419723249335816384581636656305972293742002106005461056580303811118962704793420151908405475230492040768104594464857769519653602151635787587310206299914501783257258450339488423728745281892154418485116992777666956413029136972034248859857568920926374690171404316245007126251487497578837832192339118988426265010470103375954614018617261830641830490710340207001601819931024883082967025008936185117014815297308931602750107630844007330990685563953373770800772385545129286595069258460919474223394044193730344295688121711518673042405467475071916182622303557046147134471683284367443249288935764597927655135207142930873446152457642926107012971091695439067010337848024989347669798402036205785266300424784549306651007480439977064935138261824874431368948958404361215898224063800078334237208337648432060472287673381597515151944813097897618246646426192406108674695121776925774936800700927558715353238868295471743380136775972360233213774797181092360526749500950895656607546585896346845709907565843296224871133168787700880731227851536668618311868859734438796075389056339140457999249255077393542757290887708999378376663037410049591067161550006841719231761792049329397823361305536408321171379138361687318623237921015542690258542426859022274116691187833367583032565470844770366810005531181718029916335867044153513290941061292868134634975029920741444937324018889809092070584389735931096851586273823687476848180277888948115307157863982735313858440436960841059443362389314332192600490639556827536201760100884088649861854686233515798740053047784813214779901716853200985169850230355158989932614850423373424793366665666932508992175691038115293605334585444241545909178625507084253193356632338496098087634792857690877530438386288823786768898647889538336582092658172580334322969078989591136701791048979243053199237261065767822343347880838276643402669826458577823199445943871739001585573562831742426220543490883610400266643970083710966262945956088294746803845391683135345055045869984366545076638961697767195899712886239119507259897010817988427593010539032908080063270485516308056902528379128263299309921247160145947487762643254743615554676462184195528629146160819337781362528422482362582106777373543329438932530835793880806456325616194416236232730415093231572067806628240848099951954571292138618651346227311620295214862040064778522920594251121292502406600109717134762756979877115461403024689179490857507051540428322029344847857384533554388787383991041569029211458855643832665967036855303552285090552672262367607517026371516083330474237378478638933756392781337612637770990859933754094264268595959030734359268480906614045679594245834657002949171495739066064691000412740157697294819520001856191429128092333569491203582224657131877316107287669768001526075516134365175866169557868901971180801204706080231974522968758547422186017970311021032064536765970248926986006130153749741852803895482286193414077458348376656721189476839825594052642925612195466932830709630193510887701673389914517941607040535643327199915266022623709850968362124600909933116976542478903141079233051923445128214202874574178391911657240363467217250735450202595596869620916121221299561715098566629511116168505628355268429971595321937186741055932952371160216109536223803064461869964243274977402464622013417226018246074174396740413705047543702456062063740567018550482962554873332839260909460491235653211247419403289684114126601454301984073828616661895235988995756825203706844355430335539351766194453254688461648477797500251771422870556866625985933634885500313160208133483190411261470443502642676159605845177257540142672806434261518785179282375389867719311130854648233761321495229821029162358564495700099489801812976807317448731869456827823724193592052258309902483592818841246894915212442300464838667668532839118519294826139843418750735480502742924265705984135573711761447704201317694044345628913146592012546811146298905193424032785669811507846715097213509292243215795631284131638152263442460922395847038284109296246905096332916119643497964185924879536970871721742768617484818709183971666043993605476862624942148593416114212447913685854570583752021284352547758566215215081854978305249057332258649595660117210233236722925662785046124537402950075194470414948129196260952430155932866627551464140088041572936628018543645416065657283712075016085615030010775129567279045017622748999766149597810942510936453402806416371311706295828581973410315304370908261846702876966756692850228745205807261237067622270411854089286579415515039838690773507300653708059630837801809290436628045926096650709637697338246295168437022546688273759344899488767493163629809185037746101475730219655896803104259566445088084461351017368219430313881545385929099658274174508068067525168619863389773770949616936962772295667188824682695102642108824358870750050129080348159187958815010550424002444249609588281849089260244553477367896184534171398211576157423232427075494542581993449307292330594126185052574640225634097669419508285812718693364818575745985461313983177938774339113066346522093254599293432786685405428684624290787736595477863156160475332363474061053702862505802543317971722871086610085526542469129969581178696657860403203765091013389653682573790639014195294534927978226550123767140408313107557600481616063692348105378706990683107220130008162579291213744371529067708954586000077180530371531095941450507859819364174688679854571221703805501573996344803692245821343286524448249855707211901824268410568181797989604906090601280212313936169896323509656842295974194306197427593223505009007452775152395300328732702754583806454966457960619478617108422033607086672389940971469815963253496675514963179576122701889174967455384228314762001405246629974537289581536583662834423947774856517425735701823772892858878065690910080391245043973069759458867310200245794941813072368702665473185698031993820179689719530713456688614438044374743404022699290790665496713098542387918734272610387811876613130353484440553740376378973432943415061069398320619431644946555699437173740230867646598752677754791878659346175221659398770254572857648827459563273638798943143941273366265260206284157343905570049125545257669217641297666464371655884861116519607772580550285629212231859465086913297878394429185906178468909420911371992510931883222619341042507196174226224698379934206026375303303570036723316983117823123747919522763225269248043152384939700322495877277579625259733369224560330573668148621941529469846703630395163609192144688986383376486263741303953113309397741885226676706914877261771306081485897204808561448170745006982708156053662350861974106628194928775821026760223047006667382796539781510749272801672047013091723459635556354194503427454037670539184214847882900729246412652100176978988310814172120994537969433571887908156993773873835523063258889085802924664176863465726583348682731867584813769518044891299048717798123407933405132312930364977496507567294505015186082574060263250699103109644319941827042769222263571524962032962916635885683437352671467825751187194592194820964523592258000939107850491803880974736315302612928993432829920972486937125376727165816963361747055375053179374339883263539086811780217645779300700625285285626674811819067786365200003864974005489399280106568160615627391775973464297840057115294435740869312173807629636459337374206640324752110388862126758393443532056334250503478551890142282754608906639845600472599075504686259955279476808220523519810307928776037543005597343157073662384519995471652252602716887712635022763562238342195780457963664531054180746031201957768236287320495865510995490380432992721835174152509728582831996854431301019861625048696749612917418498488068547367907143897242633175012991155651227769213096566129299075367288969903011082212871413993752066641325128230796705878640797372213282895894788423750471293868199858596064338677217916592735381354884347358270227548197421122610836805199063731014967679795577937804707117284049626632490112910994312981059910527397569601028430178366875331149545692922220533930684034996259509513312977674949429509388391657065576755760998152467082563080880174576845584652841279711586831881022802960787961357613453159181281168683058695147069914831520055986710697571361160472039451655055665288579621770132762754535835972112082898237542547672453331555173470372645994023033919367763555694880678273091368337650728645344931998059919296640399699477423111968494063390844104781255655655890186586345885774435137556097140279265785412134847941033312832363371252796526131968190232972027687795458620455295122413493058106991067976455146536386902525536361327295195946532359983090473475001950713282923300877142662519028083780106782737982251221940744107500082035716597945110748934091565906461793047601812146009191529681671399547300406926399527024198814814862790098578425858410676606295005750276733765074322186934054965923198478469533708458982526089339503299820609281897697358076377801843170982799905073393902470390580674911485540061984027521052387427900367817527883071577755264330444101256351935846840157011392033291924101292998857317432598007056083294193191740941596100040622074164590780637869715457783325192983689029271011175768780757355424917226028399372436028330658114141779510629432604401157089704794144308876208509941951339927288683693382044796699050316902621419115189681519157055099198818284600802581257822124883835121473418393778438533811681877795839910403652966541148398729378784013030332285807310658898587412755588470734253213451133024894901072160470222837501757493581618224636256883194269734900040414997449829350342861195634864365183705590689745087669431543097733891038306139117441552051489273078126640921768360729626623128023239500477160321363797276795286947609448172326851100446168325914102860613172757567836523337062087245856625439071697233860835208369407199099062354999625908046783841362142765776314700778581483567657367871350603376955116821366388617417982510729188970926984441099477114417028244635635275078714481017485656136619873781114017672794940068131491901360602450145127350365741068796363859845846098145525797751583659207340318502948225830546736937878113365706237293699803871023893664106959092257238342796357196054731667281589787616280955503367374502781183432874651664075523009835660278161426938946574704506300524658709932447564779852538567406684664293595071556880022495307400570555389485078261599985660234960253979566729279405849876234525449301542963945844557981538479139607720534752206993510394824597285726773715097901917020124238966683718562797257518295943551779854853259380890687701819243691402001881938453409711512213678507817771750892953566725910665647681526330994636988441796445451013260899377128168927812718417197354037446463837216274408986819073010534681985773224531903318877532113081083537442626301012716868901801152340781616970165875692239725292222996298770456466475758403750383454019023178643896652109262420539958332423998565243950622032886250619105330511368870660727836116737850315262159873596902090124058532466737940284380151697997106947967330504939188012142892702106674920638186651584048433646175880729725627398549095805082723330579602187169674512628315611546623563044523739460907349681018840604760372129093544768580336694983760384533667276448352241580041906534749290381635506498957582695519200669117331880466569687298265480385503219373501412736741814695222162861792352728174166484747264381548515432643850284020214564598908989697783194997271329910397798352508807416023079010131310115473409040371158573223906324622433820089503523488590293740394417189411149909415010339669797223023392090275713142153753806607238355572378116331021762325296670213989454053629189138831595414392152018880963549499749637148299262501629921515249534131601093736229747227171539814009972848833457171974460946473384033451450243967779039333466970320672262502911926230172702159174561793206502658411329170547525740975836504551895131946414936493739898775373830516781173602677192853388608567861980563662025494782199104602327652043048239950515644363538024577235421051364313243064369852963103399711510031276388990598400240644488691780186032314943980283767520028390070776468310034432041360717874964078156679296904715992528510518706030021413198389252232566459320372327390130919250808999476111617209593990679554712318628543650250064180032310529901480947768290396845889951934390898820856492196852873360532822016975245523818180243211332775118271009327949251013394539918114770413139037161871280108563497505964520625356753908042282350699390216761721067040465471029663518267814049698646333821518186703257023577849357725618025828906653375620629606046136739339952828069289922156375814174709254067997149022766056843111539910894412651831767080331355105445477798946246480090722668727507030166670365451848234922766195311370496891965224423326209929957821681678268933219078170465001759225176504905744729597466855872363178911852111645879363710635285049934477420533291500054929149982805287241967457016852396058508816564696583159401383582493041434536939441473700330312067550084751407182935593525774933300588599560671646358192516942538100855087294325906965770594836315950789145143033634821098095280804024626144419998511685912563934801542582539773092234261199954803859697298867424172578481309527686389355229103163407772916415779156968003827009490041135968216303910494586628007024318378821505586530242653898307302973177609252483274863861465930891639891275466395425135133025192520911324772999147327127896791614716983039628497324419809629009242814040494310442986422659798607165144840415941724048471309681640934175913868041121105146654096975597400377144412377872554191619048825835571593086888031521402338880385365987709827461905328851021063548402104460725580183387148134196511314211863178854621310115181471461222374047141174156050743213840527633599708321009014452413468173277665849977153199728088202077574231543979001177214384553805806140681192396478426813851815592574112655083056702171054523878397838302520098229986749150387243635514480055114595732282484927843921340600635542480775377054381810293493587860293573341337775249881203989188243287352587921361202787435618594871504351155108480379764841525378118827524267528901429294271123723084638784566504964526666199962040017428626999246058943027860951968517946009807436576888251113879325818300163564224488036337734404729369153200929918769086849280035143396019381601031824711900577897833226994441536561596834830070807476567996268789298705415977243050942390601037461488834199102033622833840420010258531871042240995035963340185655135629888570985005941221727682618748070603510574511427116714459984353069053585201222408507643478524024855000387669383422520098641516939000874183726296118384181496922426678950890679812882536380966168909234038776214956163730361146709087910145829591811128559412049069901765140843691021611939576799958887118862566985415930614442054703282955864584673375713915541109505432346373497548448157099129406049808916856908472845512055456809477554684043226854774344169331719790362957303394422877171236116821190281883733706275412516255582998253856439923193890926517495224096583508945979707104024915511215129632686441017186956513730905998248259929988739285519117529316909826372004720353192823811814702282856214471457935556466857351575971047792593152209873524154409684447904662785288596977512208475298811229458203808384612524481309735957452488921264692027899565980055786262589525411144320577803210768365648874930516007487672370811629845325798117721577058490105735301000968958655909885909952541349681901943576733151215618936831725942812517159005716044068663807550853433662084716164885415416098544139277776988333820279257416139582108235741451969455850037441591219639764376524682705925287257223951043607438556886283267986013238322303277068238023447634789221358887811539587790219869870923568153788736024171860477721754198389266424911819664380226886168489172364880819568930345079538246982807328569038466120793040525821755543079028606961741493528366987124510926568227134262352315919155161886944635097369340276228186484881413698479217270299191305358276576511918580543159235087782679895249766538340965736611232629585707416736277979934070644010786613127461329551045876369549649381282288526301844088953981802716075388979929625601521689020784253760837979082082591037869009753945435774142134603705830341570766886705032960292917232539171662512607100764101248007694374634366840917267641534647257732168007929417052301505700895847173512742908387516015120239842351002368062447947247019755505564207671651946597806759093903247089991854603999010485137114631568056943435081554152916502145431151255802376887102904203568781769048895553070578017306604447147649364415561293585546627418969687671958619405520045381799081793026474082388774679290045175228928101354216317678068834345293119792074025010456425744989284728063783121764716643056644994345532596854937049437488293789939445385839932882282820656660101193392669440539420937171073282321466409286210704989053176361965695030633718228665138743387656672017013416377082419994443895707499499743329368017068443853992600342657737678702940754327933130762111827449638226261427882983250453661271838572197116927187306068519926462354191475741576241124844578341745605311302374964712683082434296486746664618671441976151445641919618129627374947721153162614208071720639918192175966920089319596233000290624855135298115200727659245830975893182828394116798442336539362284291655460737000916795336976395699218454315742600934891849019800567094316657587396993913259727404477532788214029227691837109660785418802365282550281842900127613491614995609302012632930938107230552065971422108715890491644007814815846082760664360828570969209101470087247360452161681128036990494857611865019880956080847776878131772156299115951458417227455979969756628627838932790189925893900552568860867965964649146603335363785857195842854172482815277641861624951482415898399036263633366178414701528551889495902802681792399020782432428017913818850930076491447882931906864240220897413620806104544758494288102588582202930460750023276689133046512379364463272163648284895292260935747031405538554432240291630628230808160569078111138025053829444062532728086473954370661889739559278662711110572622171743228276313637052758034073984975526087483869723946344502953032310177053601991237701768857577815579916631223824892281078212213187911895145176419237719135943593210739388631901713011659206114966383495051534354583490585742844993872148437978684667578707802477081043100330870729403235550945652420150627811119509421229555644881775937740045774387682105179284970897618348286517304567851536565846502886611203242465708380634769627255245824123254913684765078605287907565522761324379031391623221155012348896390441091637084535303058425643344983151744283794073011350128184474910022798050279424212708547729757234251749128436515131678265256801926478046128613857740760171838922096780599799778944194637323497305142986661654068226020987873488307435823937054768578438141020995852022778134758865581927448602158047019457372500552124165132069126896657471456629687036916185943409350565434892316870043972403528472666331146806763410567543433626772176228053505421163866871659728139496518684040040535456453906113880848878822053439702427305494906965367970464340999653434705816432434491588005770435861822483511874545280987562539492878318964488229135633540092876972191998331852293640950202852265367882717573268748059228475500041134045280856870565087499705757155923822318533750418423298232008903566121559853932102362299580095163382271310432558513854483112411033411290436742432089929659347127350315243348772597201083736210593634747062818690215830059269323733684589367916252475467693549157338882744401609251588437091455682456042528542636447335270187253577850211536934115977929859524695545504877853657533115359901593772839441153971915090699458302363695472474204917689187765053340921065310480285993828453401288518555477402313855163885343097100245320319733060425159892153260285040151713097463582377866185998012494741997610796499485585960424462417481849716555338465916009058353618079927621511399139446132023915231485503831439552830960475212028651374789866293552353021809720524946602981958928088336745099969280949202465133407701945154249854967185256301365593732519747931875211975684046758260708395620220086263419781026063167322071127800192603347477116734726743058953330238731979319292560916601224917708973370706979607094416266985364901611038184235955491371369193769956116584385290413148471930827535344848706118851861429431593895902448191068291717432130715114109280979423393530554210434902582127586112584162747646745533679358332792127103707893888069156200530068633161986586265547003406562809608730454340078225961387826405908213722532692842303511075354951217652372183605249992971635367041764888037946939779670878881860996020519548519047095653902850350333461691169429708664757831458534162500573842976348939220737784059365432173909437665906159498321644286755972850290388460170821896623891239571369904687755381411427677242836090742945357686653130177613258196382431496547230910482673472510147776520743499887121929797007471720103115874840006273635788083508947998140733391204316017470242733358533282846912235735834636793441474947212573860457961056303597149336993391107144389639929633762726883010112019596505281188784289861167406197779137279768729945192267340592294339612004045582049798526150899100301642547199370988645796819858631722776253002328958596400515580827817547004644119322941934050742292405265142293161932735452136111374182030250056668820668850450983064910627248465764968032480676129475684820460726839793266504255006758220457619524697260397407391964593981890001258943289446143985163292207159810706247000580539326365915750517089601030452994077438487984983852013670214735090618717799970514316342075867711350527388165181814639192253036505589117105950934850884018470164195804035004516660197876412603349592366668234292039833973750990006915198997024517433926214275361095011278978483462856291018384482180669673180650408634919990434670228323459861603731415540116819418951414959801068213847937887783246313976967609004896104164422831546545778248031685438722602562014535665423616558288238051790742367459507404515482287707890208138321603843076785438358476649061809987966586986889400383166351940921686650640008728107414988111489719164741651655067628234977877158213199618732711041710024881482482644533555678415804563980080950790349599858826610543409209881042837801190579082333836909607432037788430012812175325241830159727662589778298097021621838759219229823292015202642951563926072318300007211999724823400882891414057945042173869034653705178456931429788964013666360232943907054345088562269713742428605413353732133285977836758606993514712002228899309515166194445788935691690287819853324228420882441260041703471608595952902868701249947762402636408261414392940858657794628511119195208247379408544598972367162579338016032260632600973503043318199840111232741897837845722529892065410469743159464328723623453885693156306847557061312469752717743202041340281023791321314939972377656796284839317846034864013048423418803326161413442665643540092446053019909103187134769179695465967124339522844703536870444200665660539227308424119116816016723928624691030534671896153426545445012747460600808240352299232964109193177408253323963181644172034572782816020408943220678422312209594406979208933086372260795111998404816520704196910475963021132988058162585566100310910693068821344287390430957145406967635822192136512519559114968884173962117148797313917891605350210227931499339726604141936789967594321593999548746260220480390049093361021299752045033285648236219643347693754380795120562749444384023675500601506987222489153834977160450607555289731424766069684172265787030924931133606672699506799781329454551505663585638450569625101660579321979781753727223388433172641825003938888647800374024926709081401726629222371288954672249807078295057768423264618810695813983811133676585878877015752085688806458068790060953068131824906593155900391603676653541681534815956782566266887544181551698476094981933948903810177096644018537725114218959414669653824900759823364818004864772178566183588780968440939756252594515551552596319727038264487784577246743676638812865024564031752863711718907985570912535994002058980799479331822281253024081836537316077744102138554018289848665004517471416557007695593282659925126408674714129192844409735406764456473068375744366422566472742727386809143533380166234297397749558522624071798677393910469015766519515052538214538254177509824007937548866437621302068756764706996688375125015912740871448127876086877365609428985231410668091643366910995549268826242540002511152039913560874386835225852371999867942810776231098110726843388522240889471887868953197214417288414530524266168526980989327032997297687038812925774476968012809055577261115431300349999322839840081861062172855800498107403403692250008017232022759509546447966693166742496680417811737136473414830391781106473172911289002011318884376732729900978338884019406377597550122803477050810750311211576825813485808739858205963628112019740275651218709654108831516285344547602760051634613802649421078207581815546895825339427255436540084888596404611124929497052066882755315522115671046236660880152322877906118449614124372145493384281171464476420032748439735473913005847149628965263137910141444691489950664083710052177806609056260573387870696497476918889524781084678724181748686717181615203576772257411562105732892721647908861175622053224518175180224710084700488308224533934879508873769626670259490788007284513500265457882590491286008506845185312147474570137784470406843134009392582679693200598956920768957411862189171638048990439532513821116497486900769804500796969889695290841825299238166505432848109020973757468228530379237355493312925315166259418492656841213961427304302321288742652554673214974223571190871498964074828414164562006945927901989448108374455369550411215041302915997757285664646644035915394594882914341809560449722031086071406242327597114463655702262928605506371570528654764535591750372442011626255803535537891228370699778598111601475564345777972462010225811973197851998704618725237126696181662191247612888152661639365466063705564082602756792690025918441030312830556027470456141315375297741421852099548274129518918792048302078220575013707573724693622254322900878916384361336802650179852115679006107609934481479357246470333829912642482149266028144519942919432799929171092122183340730216407116853069700184397373795869707591252098056251737591700938804080986598021690511345935248958331178738573654922265809751643003058721410498548855194227336847347203798717903401005710290839811162620611446775632515977524693186587191343054487550990505811189607345541219513648761495423700934319623548835892888532351241200739649792294723380166111076286470343418477010712223440154541586221009882236130203408565584091962565487880555396343672790211439864753493892535536195062989959645192973141529217682141892576522050369684303315078467126515532436991979784216783803081460865566505115611387582712456689886505333315179967008721469064556813575089921689847264859770626646639969065052811532348457497948892176783572045815923148622204616247682980943668955999255351020651924914084430215107170468422537100212147563414908053625300969013297848526643591786591397927062740171027592424598004944171932534065247631134547997588658011996676426410792363531356758380893554558525873708408862960581766235420808746774589982362276581982222160390407442405052144543349703359375668068067748232967182164207816413495285931411780585203868901709850681814591821278735613808509293644720103803103203916040077636187660654634144419160425593899619598179133468138604164411833808509113509855636561863943239087342177156138821252385485481742338199776017519050902695431726723578059371424687921086081899055042817471075032188002731500151403134182898059777330291105360000739185096924016739073156764845968129973601671209621054810707673675552144953098403817376256846762928716789293992501229132445415806091238247805832369328900264767478453436018245685868991957580749532216603452529371894538492889333997777746480476467799708121171052020788965216141763609983096732024187897201596406425305500986396256489764024170670138767865383892153090470717723517981653148374587815355836753316984477726699926455505592754468910526257096969384842236898220480684540490296073203159914352120417214495898665145201258393836298393567979900152997310565773284767151964014796741152923776643099908159256776562949399489387709848022730163469357276410423424193217319173458291506343493752078243092623283319686595276184391161638176749015086151777978593509768446521995923154864875089206492939299935711321279227276023341689716795299945395033214307418539903581983371898996884109966800216239200704327564958008378530780278950704307734986473378801377537465144342115549077841541462257597939087896958493423887230085142114214984904878189889444544613917512538320535706258947894512778282995322920356999564523402054749134733575530473064832224013353464294502970435338609590013704219206985653278965991087644122712735109877415393403478754214536659065175300381360236578305876965465611529191827779897119270876894820455038306091271780617629666931754612311636455553721682916604028811989500123482582517586678530666486067506483857184314985686307730179358311212531273645792313657255961164348918598004512677721214205380817854998276627204609852973494568233050078818631645467361890865939974752724962023922744041691574553196918372145521674939659703046059246381638317143523088120246571540144192491716854407304182208502930762888076060398459446242028831048151274193105326101342096366909579879774795278551810420304868974528268198849211653695324054194281679693060209326447709975327618130245608210283778201469385512448142979973818471638257592633851270391025706734781529836735496624740266615528911719737069935648756228100952169458293910738623472674995222230187020119507367929078652300386351242163754366298393513901452077673175062709164836308895251352489811269370020596176537404104162110126775523888325117719400301313484469932336077578370720692284965111699372779994721618589525639516151276230028674012181982538259492077665774946272903868320140175241425104076102558641299115660069767948702004882353125991113162271246630968543032885049158440617999930435895786262769276301504944562177758067758315932915069240620348806680928788269869743076555056874675221863872119029007861459849965872564214307952251777058953532199595366046083834223662584227646763475736705309921168483403301934406380545700807498297677113181646325752219078247901539368901042827365584137185687243009546011295094361777873756847877511488295218761589729571641077957121111154734794553590954081011491720589987192139762922388118851563068506416795326387503487118551195435179258444146913140528158203705693406195301373780946329918938619348250811146748205640562560796156559826018211154223361456401194549347537824561245582947290640216714567478343721861555580689967882394695918212237537762337275610871580076731735326321637397513570320062074214177522816717631634466291989997535619749230254849681939510375120423503692611220253671492845690945010539308802957346415231944976313295695614930508715165303891348074476165814541898411339718712233719455537498212736270196152916342892149969245695401364865338214927763766835245513149355263355103548463375511670835264543387355238724047952181084397781122989585974257338860611052342504256838650070428427330400655393512792853404293710749935152547274593917920739911967535260781562926909198667756003899375236985020623463115335941528831929578418950307472609107150195243805581297447423902874577687206806752751262148546936698193900999382099908973451884771601149088010644691550201526165456526950375056856689903373942687329645343433722433794852386893054040955387041436288414015395106028121217768843251490538200592071005741090406540611774778467858885089375417809227228508962173038712148956236515990641853514345414342225082632776517718773196580729687105934963981696228998866535093450328714178897898184958813632768052976311448224901295224277536190868887906251952392564463870207295205016866427066263455770513313371387116511709492303174785275297931051191346412820998058667355384683171550061121267322167642374800957426905209291287687129445021149504901069715997715718534227217656663920028281959342969800952328889061989312147395615986349785483131428683089304037858372599089672171149731728982625296805203760260761701892243722531637116320173596730212692855703872607668197680979184840361005251021565318339316868508370021858855294573741820828148161915506909496399234886761090552044354267457317326220929958336162763806970168220170353694332047823909500911086834984251251216695536142063358133977963107028027262422953064016965575906189653218732776001928312852808179824863098710480065000414213728656036337280525392247420386494066306109998651980542599632335625071996561244640977112986206220340540558695041994845164807958781233090189516946195508237080381989452611315332608750814069908121495240623186005876080880191544995899034857496638067178299590979893085738628231444060608917767671182664675853918392161721578365077029513983402109859486224573413166872109225415371811407997306089487006974123334018902085958468308426222918109323833184904799610223956273947203876910191049142229485839734666057836306444916745759942075013187444909821907099938231349996302338543373914052168375990574383317965121421461697899350066318897132375915383119960385961013637564471188269741857474751345938972258046786921524348459496608458516930869537829654545243195020103017927715484801270118454759454924931275903213657379007846175274109463321501036662328272773659528781425739198635837944320653968852962637813420844671674461805355994623562455180148177730169897128415070587436806975421599851249908084791355752236215253470630735382441637911152354829221626247951444094250365414334693150699274130340445008140046961932381389661673096538419824462204088101474411489009855665707468381243158668426943581128256852600210541423886314240410263518022984778826586488899537677057557235056629194120707031567717100403393482991051278139801010099857069667318593119822263484285337470736702451539720551621326643403058738471823958703543501866124160297706051128288255197260323486618802233950246848405791125590334116123402021397922947947978426873863031507464296760313113133116543401310316099640852623362146541641400319479071048904500053620898270766030398003697012409714086736403082947663220863166179773698094120785341884399285792969673090142136186093969013796179011768416218897081200545857736196072963693470735690792991055996160051063968196834428557101752374141099292512514223109051030933147766500338375789535160227999657622774350378970893080225851678723131243165319374476418027424835021352149187788522936992915392644772884752747388356768000263987659365162276739533256502872668956269872799075946540640624792759077690122057257437163329018370635260209586608604329226166605263048893262081765777144510449782273465933643830163214250281013966325635916496836803947276199834265708358670803688735549056793076897032902011077361448587361235356374818238778401931940661009774986802408669282139519979833645129535612570069125612806903243356998711773737583109989613803925286514980398737639277862636216927035939418761208629211423945608665399709856836523367160275857646011558640150185575948099972262595480515432479183774508512818326220459619124236689969203956771798468181694918869038504983992608853329565460461080255280737009813906444496461942388206619073704859449267727275564055045760016169552206366383084171662434215060946256871387384285190026355717381048978908027847175632912348186262079165417375080796761663493842323011462661713455764459269884322458308536891676455979481086865442319807839271571012150571721563887456828679668015475527863730803024773064453457667709037980382232162198894617196583276036527552763117659429632937094875546755202527330505230205871390981669565219384565722654329107430234834321878006099698500404269131867714768453739622642286283125432270593092136997230787206598294714521137371991653054919089044977716771541467597506194360409142261576292307862069130053315027422627428141093930172638932140079533965830681958859159034999136386952103203475705895514029887278441870227348064163987473389912412953160948885906938126972866817099097960610547495552971523685958339353859240453584882313412090889189771283801114625588774148565052063505032944563794217943801732748661589952495227498229665752135127304267730520599970340375814578237946722972216543855837768211837284931391506227696907644934384717624567125805498672235637591033202006198823980149522505148372667757182744060529657441448028006273370443807838588465269314442139832309472026913854818142066643054105370022015487322646399879692303984908634566854186909663959606341922285421817557060489352982121237345917286581022425173540070919997653819105097054022531889464847559545585485114268621340265576476318563562030111033778947387214343907148511505703875092361218000207315349498914606451144991501503676223156770751702123882924978883509918566970865039810326876105864451295147362527907093878961729495702169999410766984628745192207324204381600337652667644331110122838002022736829707348804976495090235042740379261588051764883549117377658408833376295622453500423541080410305219867181622699115381645941390826813324319123862881003756626147656885036730207122579488847003424533258324145742253327693350882601170239961870866294777955818383784640957554504221192275582355408648780166721699554469024531642743763719233961473316133303412217240653056022474781875489938096755794227003740665143340537875183445605945714238349650165565077301294199736317134471562726303243173393709155111237925993904520427261336533943746114901480714031220551955118369063324896848910594549297806439805241851272245834648586139925255840393668772595581767433098445146932197093874780309530723925217035215927589113048337170639772907399164987195049863103748381712131176210002247367795450518066969210933066238156011060017579980077151992100307309494989150244548194325131398987719441179645123385865069535924808411042335103668771417323872843659759017772280829730011569438309159844032751738971847464016421316229799031423037622244832642648717957790822085736953766961624652541742433940888941937066078843359913552195206188999304431755954729618972767716148298609571676909864525487113674423601599802411089723068685903037722288547099839100688553297070110817590778696967441846119041106906839367600115942610832078922085317607063821121472641012320714153291619864595403101868206907483758616430842719142571666385092643499335689369091524278229052817491867586410577286947558918214221093153132503116125749170682164989222239253869303574478888253118243641470453458344829986097152580690638899433961072158331712498546081286029349809917894777093760334090009291294999454991961058254865451422262388186875977200817034129469981655430574973974315937411567439425767342830487767654086611542518203512585950515400580179333042362641896595887126808943196806437870486256185812068493329587227817767817143518676940423399370766548081467920100466661324863184898424374226642751849843525944778659127944354778719471902786919297898864905403530394326704986187415471643532769179931338797140066740405501461896148821709670472147964643642453516935214517698389598315881445906979689981877128640847112477705350846236788288604469049549722950147884437012974415729578415727210161144970311090270684277501170088301781566491133638577480115239609592027896314742345157759116585522550450878441957452346574703804378259845056057085667374837265140334687910733673141021278791078992328067959090761179844744650326317539520264371458982699596570190757599122082765496509370037619098601866298034158527075674454672358978048937060616412265421135035954123746707131621591196436142250343793654706858884764607761154061301375421813213895249119773964271859888759439755384536937039403669620020783989747952556829812555912805964905633688989919866818423513707355213392199698156822968109607797889924851012037117794084799171120366675302733106021934561281884062618232523780164749255629504042047726623090972551749964031493834295769834990946454659785965076905609861452774894124406773709734629775269162684653595926380267594461723824930605582932064423573761611972872988447960381999271839453902029824307308398284488102214720616259523656895578380672611744332565706330777454001386282525769497377843803453043881356892399492665728141580444674501694687237738381200729048660172247805288039947558805338620327854051285935831004779828696114946526249146862522866438743923859035267854685703634004271828484671068154368213290375018670777786954598992792988625072306619719773080578140760226585412955614796827893353302936774109394376313390914117115644716826596601026683877982119528085985770428960566630556682390755160385318087661382625807829944555464371224623275557230458083720580290443288962803546657802952939519784168763370122940628930311705416702511503217138456874444432754097242819355814787578531015472195740980184670997855215494136746275939848434620348631980851200878365203907409475074555244964321919038118939796735793492867821648387729849648215616693949793183212917798013367010608036621629725963355702536715936090764820140797332845238095912822388411792371927091193749738025496545839561364308886213074760345223946990473322163239562408366397121696317924304853292811809813143982209982757350715914086876786806788940319274817770315865223046906267694525088113142867366246542357153445417675939582791709597931145909312414573152665558692979602929387796877716833693284945350910864732629292020980685490598217371543709946962854990111180328431069970094311206443780551981314445188516777316583438027862440713803909425797144127286159418700165807511173027532280543456774514244747282022889103831304843072760739550146517372258164644769887721189551764542327452109734826956150172438524545989392889209564820296559830366216263417276568435241192114142622830279416503424418411147564283326007623134722421159414505775087323371295378009106819093918439727606570665289609051710867811599369322415453428600352253559266357933788330292718214477240649263650983309370120240086348524441918112241822054357925599673769139688991367592308927557948021584638641339489593212538412253740077618091105259252142952340950369986192038033014540798668429063964849111397184499441060587786581205057951032882385238115120768048144693376598241149511679567002814441100797482572280511161946079901222136567606048581871435175432091505412337201844351590704702332353756509596430230041861832481195142372537396805975857940305041138216386171748036332372691501382586745794106791565900381354162417565836867652290292903401502237787150184027710161983675438667356044312743111197361197080918812541753856227528761981417887771715504248026243302129428412988564803663560761428014296692947572366274710737677622113306567836487133787877305215008949673180467315986365932437239155369734388569099361421731321724779199318874816286390406464798184264325714734927020934478703745766370163551812773976369780648930755476088853617187673075771397815115551676278941414855992502410487867077808522960963418204948103572484288622166597512208692331256201760551058383440005413195778981426379951122181089540507312787044963140998333430688764325964014559029848664019863114369036986131400859991536418739050662517727089551911926914009450014095092985796696174505642500760168289271358969523941971378792825370140283676071886944751533840631592033147228599095098166772322415947846542148738460202770431096107622094111841668299385590277495508359780581025758123930259799938150859158282220056615668722280920702853610134143615403116485636572089246975569752039112223522869400356361287441353123489686569938094067589263971842254240385091303138172073296399577195090858375675969834508175994985542678390619605505947077031335837541426244387853052391986288795101937180266395648411273445653699707427899105317152236966085808091618097530837882920082276205207384174352557447028427317356188657466188171136672503883375822394472623922779226424323139098769396748550503728065511643755146106053443044882403830322274636731888594884187751803043075710921223392212847309291264568479727691990131525840290662091624776237042546104918471073084199191145666869325188681892696094994657664167434524617367581643650534913645480519411607020363410550494938739311711886613075538025112008136201407909637356776302668458435060932523276980044989229269920880276757312371183049180460360912538177092147485755279347780696677523363703069530747758009307404782643537814563040138791555927379311963088098175298351489788751702704684704900319481000749065724111270848649797970250175530930474654160820808045699183349245267354874074852833041322743677029443864590006382234264250926583109297879627716867033207509889075235229743147946403112068738860107934014796634024809987399987196421686899392877264927561968698869524558585908495770423203622633455289025446067343667138617482608076881889989723151785955687150034752475582207244611133047126891472449623286223262716388317279356821122191391135861452929024206278373173937364322237286949418491369216567648290205169624552757072435140483547405122554683731045642365735226283754103010431096927305109740881464350827986012195056659235460564229133432132295580735237725385214790876266244952697299400283627404731299407723805045745788420264862126872619582165293746443740940281087143023354293495926057583928722162031330687420318469615772400590356520250542223416537289347124590014313810598494684766397554394829259273834871913913367810585615994672691628873623910932995840777557785428592150522562559730408901660381257519633212782960321801319812064430724849340830308125847354391376249289713192513191966552188669049796890652393183515877963208016099966364566301176018624181034857685925960142294049022126679707597829602549858508597316683469537589406642151476195097187823732137812327728867836365664975492398994786311978855386581422305410236479542009480731464022844265322512719240578128877843089981498005059063699491214782243392534318671258343825812398783561449126330351457987355620334251474811000131096689337278492783104353016125898844563774644722807039504357197633887660178220319311849528626776106033576672432326127408387906805953693113742251255436175998144866484770826527542989504847736049886062017636397591107341594361073407771484372626653182031454997171525226198262385149457990736466261353658784044051329944318328393879038768507956285369923406098178479717300733954180547606313149386906077812269798556004078911257527384104979438525633059754266097774946128585587402178383278981486682017386747861335401058213946694578232834034819208362284290875307996203503400813874805782563689436166316521348302831922324519934799548007084955395979728910233223487334036160159111705927418288887067544023821263196978740572880668913805061270849376820538934514180673911860048821089355944501183661479316441697137369176172979125335886330259396144394052532105810781386629447431294683036531468381374734972537195679456708139390109061945287176437352478778647881766640797777220483479482904092620126162390366316920883302205508777276094550653194220931397444356497700827568137391901577642950989339584821574066887668809989602042515974703126399703084275440896217159654113047556999017860413935421383644547924086155810667039705458609517823317181954798060622495761555746403964447491362433255949801151881769071097287015983842456819253534669238717183323595582717708589989007044525183384624192888798400165621466499503185743335044112784849260907226688308627914903934761578419922793800862026727001580290361175811018617370144249049833564080757826838583081729476460426487028799326888533622787749624878356625503843115178390960418759445929342072936538857127656045706901753941905167455805277714710387589890234622998536938532461551465519444492518132129942918701926280883472354212319071953589593410717619617855933585749788636521762530755083484119568390123238353584383804826536961493274060252684405242870711235615180879295986568852543019812344592201933770307332341710151066081441839100424757556074797580011611661746362540787657360507042531829853964875069258906858813099805434271438994601501893288573547873468886341074393944948828379633174488557655650582191437896352811004589956493430314658484033422532645100448434411057275464266049507841863795046714452193332000887752794598322045606824386302275996699800828598435508861546808427536962871436247032531242226630936767639020471654139373494915567038026748369016500197408025195882916986533719430328324094694919342636333271640371191062594450645684752943605323432694245239913337296077376072947350444947360758095168056870135102073670385111778764715681568611324032711344510102137749638794366784125106949493864511616710311143505190480240226410055526011304212205231752382818053760950562857437425160773502719569220597182784002368095946418754167921533324472425664517416895672337579582850694493287201712964171966594086670072996830370625557285774896482259792024800837334811409217030517417543813151889145259728367417501374609573756743018847299068338803072419272279490778597173693603114013913848102011465764819207647702798828209118249366208807339677966603831230371500506303087355787494442350332643929054732732238262721296672936267967560464251536683123533242913810574202745038715520278174256395063554213108978310240734154282868272099719882265578719434707913879248430440091206610790431909685951991943333979410593532848889444026768773703929167584527333421157924050855266055287980429937928259589802406036445571083474065460845492296345051038433030326051458394963771488988355210879751104187776737660416171829002488624089432876754525192912594002712782908945909186748178909839406058144816431367528104813449668060479113058004119882461099739476347621465049858784090789210227954866818363746104801967877989481615240376260101323953495120270524473291775429938701430049292784076718489918863477811152101675463657544938656478303126961194603176518404957694096540590439230815299125557157885035666313724029835577554780623423262407629725195368530225813275835093751452165997136408468215022246998148065366076672290011239352071532784900838018401177133084780411104641976099422583764982181091656397722441593641397996573126960767056884017853440933124850690025753765826194922208493674659831093581929905219937732492100117358007225172193397772998490984346789318824296327408832576718999124488573704335002093483208550563077354635117377455409677878022617168785912600348512619138478234434285962024955246632444159526794051633108767924147341736869657122550471622370389909524550157443176613903871068749948796509171364340252250284429756094262691668300741210812452349742967927572888180031737960218326367754103584524231698535448891424049973889764972191427662130161314105069875855661824405069230344752535482971939070728882572841901959834212386501766649729299183177812844354502593150051439801316087956513963950716121010757106656308415035953575862213738512081331040546970169088351317646288551734348581270274202574098247010259822081237819439169887628213748546882843510379076100902521204011503080481752944854975917268356423691512451953748459788825553992915043436433965302783611436103481497575727542259201928694516353127310489743699929048085880080824525507418473800227619694927006514877754911028192819490991877689491184122236524381884013529678140979417142991195249427890686453497091262479147809936369818111230197642564583984848427877110660188167196663000607997180066896485751958797072726162154374655606749956761901519016764058424909219094139571473793389272246923299888528174592610687872432254496834933529036325229771472633202160624245840631158452107952823114211415233883401951017162029347952258096152509324147032741217951814232799575268106087657363605786401354643862931378671599018183790370434182053690315378128453520880452452805870088288497993541951177999692423450622323134538493102870222556894650314126190289674565539018699795668874968678890791768879579900624464723618886446211287468637337533117038773589365459080433311163426540692532517739471427616207791145725043738763099921627814027390658801764419218219483555025271972196077140378226282044439909109612377951352452659899312375507711750335178247955033166236683536568964475088110612331709145726663333759988396534462927485124708212209433944340048753150728316951571747384937109384644048664150277304918185474772221138671218059960788286006012404698641658841719070521996083775913265214984055550275639477270035822307908395006303047831981557178743105553787128123591266299031728117547998094984777986699115357308461432164766459941043941881871267722554899156043414254586529058162258968194622014141603173913000040133123917478278302581634220369327161918693299785292117208001713020866100974254218046408453418234013892756658992389360931201048713072898823320522075893317955406078147952938238734638397736511780231685081734129721259886887562247589641625756817276487195882821127127545482926160987204872725531379200102964306499539808410109716092430785724474765900791086437751132515526194669716632569427909794784726803259457610058458637552024467604668697919704608795181212340637170894938530645946789211530643380755686222460286891089059642834304121414686467309727152395332567754260824067730877879491721381017555495725276182716345078836496138092276191013101493989846867744971565078539260176521384617870114735077402316915377384475640414621347377412684571165954658750218001589552908650151618770284924120812395634871883065180991831641456150191890785964667010234485922197143846267546150324701514625444864284078016816422714412993083041482596440032713651383583472594394213373908784523982731353749113740910239946310029607863462410897331080816085820180248889074530844681925980477825571131291675285112661404162872091880651258755498071731689437939457323445033764504239042083062911129014564802596565408281999714165452716422002694943770203538654572016193091751686221885229940666039694624646155384970638230850672427898827687242931479224920720451892865130182620720234404543735662545084120319125693663588220228694110698481305538564350158969846172307830968586516090465548975791557558542361247790611170266035972679489733828568901886444182464288247381475053133845246159414190571265493514946003254513706222960926466447463468683789315398431177308301886510898803370287197279293740203467358913432458738826903540207055011568659712859242659650475492049460812707775195293560754678632047276614703765690594490748013883277119919336213331021569041102618375280540496586771162341154157831395444316082332483878204632030687302247512697615506802380851224850344768023750473701502338438625249323758432926322006137913682115225226224299581309526844078354962996006401739880464884150757328418823817306679173344212540620680106131615724418441484822633270700137060196192679490321209914770301002293383144132920440264735336940790452657682809662402706629501830015365898737663286448091521686568800550141439922263716717207959635638934026632368316857758591968909564507823383119717353228020104052040367489385399246091711856993717540464803580022326911154587301203671573522470663682764164329499194263211504794403638199763731271966067458994119879214164382720494045136678859008916605500386536570366755426605983869898242747731293566782743904385680311538838274644262463243922733483172763740750574523349145768334261004022900582064326611872152954242651938144559392131205836307945604431455267350578421480232983072064159888404907408683640936980873434920997663440302663742990401763258680369249270679828547109592056086746650401786833965510994316504787845697449842062405529857110932541773870032711515749907044030494191688463342353760659614489170038668013187642745239418137292063590468869012974149451380734420558315657124651002431195440603829969994909802244228273111168157463396706946658160398322294824387670783932090788528889382979450517347102212740035192562435477608761300067512367908555177120431073422294568539295141814428586791771789147100091562665623124917367316633245515349904396148977814452236946279376719907661156459022284643888583029691461502296162030442548327515087844748481800477125180899531084356245981445216843909780419348790055263033270613984058095019327757580258374330093392991307435988038099391383984131158298909569285950573729903668973452521021843899090553731517030855881934669421548057339714091426256146795699481976095072265362318323278862771034394762589467685723290156745938674434503087895399738162182110447756754964115670352279042747347717531502150755671762855191589509061155837519509319029130043735625922937704267566300422947930722583471985419034288274841216178002097932523246304747427746491566411780313950968098408677393384004647217181948062293487673787855231712118741242405342797252070031137289813186957969335487976025337114154339079763928126191516249624305692509692403430135467944147400835426670012949093521311733652860568023388973494973882288384128634331499363779951848616352848736974635853689788547725659911495103332197289808764453430154187709859928321225025433751294489471996233447417626262374513579884615547174622978767610911504992359681490621961803482870316543144940763600040357912719746928947971227837037336775919690912438021919490305202702388860773150795091790571809990236448453425512167239305761956057555727898764756959655469898491214774550256841356865158273319834058001004837108154975649724090213332458263828560696393490403767095893107991089272701892805763842820727070709190291315998115006302475905661809893641417284163529230698013526868725495986192376054175716102475810114869329892547230149049788162786149612987364139848739031781987480909777480692942875302633355897316869867476111223784834342599124788534861311218840589651208694712977750218995452255434774422714190669129116981958468047302197557150494783852331026730035280038900454072135332981458975710910458629579710815646823061875353785675376579297723929376507628068200781677430496525957212630578904136300046528651560411205920228007692015603763723073765323070478871285037780742192646939099053408368366158512276796884912515662119476014839429357188241981377573046948247216708804885492579479495353308423224164022457996072615747316129544326452212141359074380068031041020522532717189709271579582718382732997811758639750048480642392486027551017254217823490903041075110123914844997842569789003217595153172482149038045718336324431532414046019088552557736308786076992064899546082851046301070086438706950030092592902639107982889380796835787280738256663299113098728798059964294726401882835063386804414527016157804782527711660730106754650612320375784822296647197316174161673474321134603716136888607526335322188051248286032068177012318433438477283346267242536041553803682953471566641119438360803848319400286092542266705687545345586583013144947702319925429445562392196020653263937442244476221493445914722803352410146331117029929209874173698168302948085763530953651072987457448227531946673167258487397019181539426942535725795843303106075263192796457130296148084908841456828049403765088121133988821602635866346262851872656481731472379389840210901765761503444401038048851840465301767792495535318276655642776474370131663530831256698198451697342392351881763088020121898099729402511352315551174093222461809674919452143369195604311882604450993618451254798590810338005759603408317846513168669826052415483146105398492517875423170165059047329587304623530043070471428066215696158142053509339237585858653144516362483518264049686964988570070043535093016442258296938418427279669528668262914637383798731635768113196931867826689334805197000060799928904424109842059343887249994788166514435324715283916181767796847002197457390733458436071186921810986563901485158990932907209568291701724496513396263832272249753768043574152465978996977866867182630244953457405410302548097454497780663756155855713613735931929020722653049429914403301330927964370266335333155347776065566379219653110340652373616697700435265164092798500096901937445528299666501058520527407569761856341397552676441036238375897052078708420776269722529191923672550874440867324713694582637477979651060860162760809014544551552196782798947979553559991357496362297516318175961916666497843600149857471117930897780734116920717811950048346433432388759137443951676698194449222572657925808170574887685614654311570517045398787789275726550491131503167438017560856565632029785771490984297651840941871236918050443912630311173152569375210069477746320318732767737860198246518107281807458406836235291257866833382601802998189841616859029066057769353688066165517887940925245892364500050398410900089160132670877755722283827809757887250107527072492734831752986000808009046474343161785008704828749319785338066954191032251574740829982833662845438508859113936025433161093053714978492116145261195180384500712111646367080787622791931150942955244489393597268025637928947845650704829010891620593609600274502304633624796079762325843831424137686923071908259164704100745169748892778848499341283769207599137765592561033152238762505637616587411382949870140266479066376340308944408350164286751550876021121215462161374284263919016501868643621623422567690479495518064426469472770495662465775367947375920661827336136001577625937664294507957790072780741806781639521817613197905968312156260147861132212711117412612934710729890869731498877948511341670191092156167510861458277043684087490887791696218754971100611189320228382619908785903335363590801153500557413069489723051304647432780655724098161344583561182659545556714247679798507021126910381489376540974990323290361126073384223690514943772035091584994047815960706748497577633350600687779341780880530880050332949947095573780952662845097757551968722907780142742514474026199977213907082879703242645628632199746284613954566823681390409473550750592380958792370750073868242262673927477873996347538070065520259886984586762563913146093168778159330817374138592257107121590413716046429100271539223174010535520646877596814407108944136541694045222843638100907933770067386487715584886880878209589074758571933350148962582090739236686268242968140983882653778235750819364725817889019594712071039856821154931916554764985848240822996895859952156280450739620358849716086849415449930445821202652946620046742991854251313817098405358057575222187127184057462549383635371859689747177652598325539008197503013556371456955735946287351456156614523238999563382630904506564180480611402071630270109307865355043863170162997535887688709467407448152405580793031020651333526626208585439759546101442271018817894642697648865077323585374742913148317681809191209509516127123142701979854643159218192389146929563391237886630585821880205380839911049944342106257619863833069325066143380124391570680687141855277954674172190525294689582239666501691929245808820462589594446643624932729850277185715396925857014715536428070317474355584486387271099070540204628959587451092363597767497593163411086854584093829025650345319920665952313097129600400653261338870556164595219025847330565505251956275917793290670556611677221120148694359307246589076110363315239351129876377060870023575461241789906639269617578432843330739259663150855755329164790577511314877124417661254361481164870128423306460582363796307994586998119825227366206188904083067642781799619204290509547602078554952965150953510812228824643348783214481037621342318205668419695611241645734375410436516736998406505160972795152722379153002738899001951448374368452802320482247305573846418845596480107327131911153563044394568092491319594922821023484344872895989686412349990184949431658888597652647860495430345201475860905132024827245528555156395546056760368872926036800738117965113989610765788426407351425337010475291605751446862568310297861374115573594137831054291233721467578637215198082676537932771442065253253296651972400546776912615475867595223098125245857023018388872038098188481913833535089658580160926199621332720198597886943637115511627300829479199701468430127744121747730394664834539429220587885224094537061949279447365749645735848168014581821181635987634490989679681244423317704690250884945567206027086333689950130504692472150593322573697619547981481217523243785579770482559686422187465133447146552992726357048309747802974681774218950232971768546953708720168250553590433176385346441871291849218430437840818267176758422609020395677087872206162221659031919464024285142772276992566731411453687696980020868160374475977380675685638240253703848812905256863432965078032240282123129625417356140693481768661793669883756226471816584666782524405712948218232680239030513346485811321280026388670703112449772410034909840930560117777155975586998077827129978655339251027022077077446025299313968903092934643421163784123402611413055511530726534474190331157685613401134555444743769653778424159398067339454491615981180196951828137235451991876323406739130688510283927367928556821969020991218109441650254689488113814546991299538303942433431121861976819445628875477611151166595702810738041810945031286271009476495721182435051534461740835888524485255449246545381004819126484390708116784660724923213045078410625563354576859296049651274588986267695967166288003671600262758634271700668103658489171337778418958954178394094745404021500113383228888768173544654255164559462178261646708115265809258176346231845249837244453157667408714614586717502619694218541271016345131806266974094265925252895898828232705802082884031960323229843994915811043423755774409312976822320799412746262011824161871221316548968295474512607834578995354929343293024371839340082229962098044434180278962688386453208968014467141716248065781516613406298930621111506025708205599394740878353543032039794980024971377240817701642769008598187074483079433628373674484842305718509907791294387010198033560618724552193072682271372587184035648563749724054605886999260396314557625564043605793271349624192397512346057593534634428505454666162543514488529286378964257875727338934368157390171463408369002114330052801406801400160539970818186241849311571450801364254579511044450217768711556352542120617192164220580028852436161467737060051123149201130723415133082666855119001268315539754725217659742308806524629374462300371754336891772004283827879453110028809971419523811284160188211480217106766989518481106819784532310944140254539272495517692102632541405128132742021303110011310042048586494302258487369738317611295665575443011821459348975571855777728109655104688860988001027705533112945596186173608016400084399303474183800649125465988116463121183494950737873881134529625399882305471194250362157092090249353012682862291736279814749099397625308092847609727108043320100238338201316198798157300427898212169050622256892192505530209544533181105637856722141352774011022727261475730537941864016998233119956533005725987474809024022145513197058065387974049280160130655462412950573796664519734780715481145023037369962562177060675902799058686293716302120045569339545325054377685502713181403946989213623270048589400069961108596955815486446573674051704526045353170071000370100570526051543626421244358647590990541307128178492658942733869610548220536746518264255865069662484095803388681501980138680986221250330748108873933407868583573429074992585766053760775491017660278772476912129436743910351329876534394379251068924382295895933970962779914304990371937103857906835438505661861032238577133044299317994864061577733108845896366766369497197722691762784272242836970274394692792379022112225788565290061217042502234795523551157146150091098198268296824025432934473996905891225570784309824151649094814354475338048434763742035942184500797427925293940091329226517343521545037915949291934500924425457772997694583180081348507026496925943592430194538791129180645249386059930257766228024765641065177452830392832043996601331931989142148100591571988026703948776674542642643682501868746606675685052071755142829729507885324050526122962816345045999736904968157233886656790873580210923790592867832153983542737742283745627051049641244510032969574198952650912619094691231248768578067556968442572986118787090250377783676506162886155806699399063457991029466811391073328873893316019087055208311851477335848761445478886603547394847901689173853719081455092430833712801757923554069001937691766721555666013889985802052133085249378517599141742825688458947296619564164070278571436034068267922057164139239329576069977435601728467007427431291864600196652088191735350124268538706632459077840811331213531105840793721622210031323971145356636139431872169770063827117340042401330318731905481221148090636390235467467608321686067706751168102611782634125978954857481025501512613951750570151824818732573050480365554660670287774971148631652498070094001391299315536803867811156168626525299890553381037546281572248521707909484122438992442172112469868880585719647816328479060976525641744638353835907361392786859319567404672280465142746162067485577294308187576010378221163163309747709037618180202553568772393541942389659350170463139659134176027418249289703451824178006270323638759094018270738385743609168557508993019967910373641458655410220191221398509618947156574365895137622265106485085956903949677487903925724962517912986462860970609469126501104073390612222592306170772878573509283235787978576816710090300502621777404250642665760309176028251979727728082158953248145790979190934017768250034435443236774047807316628648957797140118530554289690847028332028065838296230248858111135578619670062791874026066508233407405480817115962515599270202172152998580062429807621429173347065833810610494269719315540233358615734340974421243922263138815963465427076072128339657477597389786083688932315320415853056885651594239488794674441613154366027706926147488234116809351991525469559372840603147743868230703447078522155616247609988859604753076986010927281333222124132289120828135354757065729950187294772253229473317325719546552728607648921456565481721154161177044591813478075176711094169977855871756148998427278624754275625979230921133990966873719371970865150518622039086487297511652581152879349748444477025199383708859930378237160084483970548579574709630274020181990291673899314867203382990003589543784256892996745172117394579692920119400448504014749550805454564969847386758147481072068394978199312006695022529415597477246207396307211538695011339141592968843871795829014948269852255971424655228254178015849285995444996872650796270897174961619776946789117269434130853645491788988424748090100375682977522115871062348774002524049358485121211428391303761591298318208859020542631264343421155052007877032285848697577824181751369232329929118425523761933287091505369753504630537083408971396888761565693960807359287911656424790324045688130354841152561859222332418946378353742782883204669970887414615205202740248741541873558809701144994552439215145458111013097210256446418935967631998086200908206834552608799169664363467998485076310121154782185518380157911079212365638092690462326689966674842649909608747758492060262206544295959369340033914179827511224459906302234493786787064724098672081407764871817567003084867723334588882322254715899575692854293953622328354147639479361756656789216691319052945366788112167739106351779911782165518977111599716905777339290440170616805411687492910645620937463246225031659852393486181287801586154440369047703032784906816705586567587087736135508194662061156838329523384482042601672948233942050286700142570699648672324333630877663899480685098110467996737001307868143607512398724323032329114679993273320421035402630745775344464041269127130831379398769050296761081230129078321305156892541734915678062216111640603196243598897237382329727109705764454301050366463895443444174569093082182770982109830119845316244088660744429212320621285485079117950920000010837228197001818835273400764920744129123668482601651008702838992769349459106999603807962801808215788297691834419796827556918456380553726100280197432858774687822137177843372333208014136611847711753720051831481763161576834530981198741153014173070848360108343912010321987903629610052458338272806116585309154249930067255193675155672660726975861170080926693619888125525961306623694221409491988394788370956221539622901700813725470785705699938595697950722859011944251791561277435904171745142133584038756517813011155380838675379889869257277150285133385232363101672666206129935068022936175536554127447355897931469778704551269819758253338173921455768025420759784860956999724050165385509945546394010572715674890871647860513420970120380258780677804025110918283725191777205556750733912375061349915593413996027258554934049844296043714306226612678317444738351266601511044403668562564138900471662473390525560411276154121798159947188665995100592460162280214058157776300979003711085158173431909054196178495979113848383772343067058042534285741923997865034203520547537821668148392033017917548063443986275954986357688736639335687105107004209471291667427310136086893998761777540063138245190019247487889691168549368973384591404910856336547233949334030530265920470772834271571447049201353379728321821129894817918058055816353512786521026725540361714794701002794114196291187177175522521685796446857422000547598733342172307056011265376554191618795423667818394760128504635807096728067528242215129161806347297824124242301574212196252077139294191361476165907425227183915704589181633592113054731480690727437453293720298400877890188974067898766337657796804349798024189138092160800202062691314604111659951585953261132517318710152644306524517045543079999581560870822942725260653005718657355871743727613135989211574241840249316224263080231038171041558866603588905927678248503282095227432538973325983705129673573333177215915372091333095984984887235213517524204666901172230157326005081408627875378173714527743361120171921371172682123188029016191499893374208628354991759360777993779693811595077349398842026928964659600468819013282510015866371692651756001321554477407995621602114475072473273228335973529599245065958547053618271438258609240794012419451256148188004116067638321427718960510139504091557688678158888981517879946567793230612177440026097972741367858080299094881178190218739672595440879487125180989441697169917504704118855381070735943018420216318130399337390816521501831021824686783501951639777151960386374766382109451244632941988695121531661955123188315145078333899570387056910651074608665503455900573104537320256968267539408173634351864498067770400124447518391317693921556700277699306749734155738862740483826007010446494025482820234003605726738560215335314314204354772483777730701795528308149684003463154597223795761758496484281972194899614765112305171083007848011412044619582720278060587312898268726508993097287043997150663685089701184702753336701512088744149593289691312983434185735992202845453717909509206225286762182352085256846548121487529342199466728662626280946198040967290348932082866771910578040636004575184796518623545860066600985227556477919481019152360251010155599988326593413515589468121895249790918620638268842706290818110471349273888561891733058454023257970682286294252760726472860541347665979438805855531495135743122087490711375438948944953194609176112425327245713909791539323538168443928894860877622877242732536133135873328756819549821758188505508075941770281197795674847431757551660574975137796197217169699487428514609453283105324704041686548299681864343592685411185511812931758577850570766662259685982552997988002319562852765407676468793306199619364959851281600882163308692508018213745124052332379215121640307844334607119142176518874969729982863534080489702540691571903296221257553302152218511650833530394042556513413777340508630824477004999879459716126004766448117462804408966672671767836310830924306743425919472314194029797572725733723636637341324498007457851450285681946103767548236258059531839300653278172380191492416238840227240524109443551809068528942890099433518540391251246774440622761729778334535291754162917802009578004887901420782191704723679663647673249539431565964797645525692832291546303540020306167311758114523163703497739899627351669995032963518661680863166461776157669542298768849540270204680805496314726407414374795452635262441666688889148154560176033851284717373685513539866335044236095137486393092229697723688032642759815630968874490574723124532832369024936540528277780796894439290398198386172054242776504223398815035510346824237784237540857425782727893593090588401029492464433703285013012638177470291627448746069415282201963661426722186148181321516500989569071920158967813058667464080749803634614074127750015970269116671124831041380199727427596001499275663236299975935935411565191175413697025826233697825969549179792808866964181286130540826008807002156610655023406981200453362752913229680176213801262514374873542644796914456145379184497929429677458811714865057615525543720472075658431042198965634418225908807162168697073420877746531239207345666929404873298485551728749425968699312059363303364200658300919246385367834352432024998697479664007433694046866777944538863796560977312629285341717308143301203695738541934562473647771022301642562394664210837229255854522741364353219791435983969981828606831411201397218939439003353792026996170115377472390792632992390478779306219673785156997676552798004645804239419904306111032308056904247573647339075644952537135373568244848501035143732399389471636004015411842746170946082854368204381900712645811747741677264938160409935461263491309833578960794010360875026188706369586001914294995085385453764277167649704570060157404214722340060641633022385170068488158479725612945703915457998077705601534389170289345910584142122211038176565997765232344589698581997851371504956717328255900302404640805770650352944636565344328745660329040789147491388100854270269421147228433569126429630832285269035235913253632666927683125354863248116269096269394008162485318477397962915829850770970721967500081158018465177363674886822677305550941307258118960850096471306613136569274641491459437546293054144437968086555602207268556969192386721299902705790374726372698161406886225845558750092438292979628118587031329627566119689811676611004082298578948976023986414551609999411524790285856126907089574382095272382292843307672705971769192173271041651879114703029822889030096973461669271443523429287450690504859587781403722994215255236722461859615941217125936296369636536485581134046301771829586444326543816370682644635697794432542196387166287754427613354789306561052210736423469537224987852898614496407207488608064465339364468529260885404130339093337701645776406178300777707750572559540641086924783646009060526978244941179046537820463853560078302531601175641613049003681657281936479660274083392549147354793699681173798660569857850377474036781328364859762049430988330577854356076036936921314635468456077433962374268522295444534772463821588155271056213666244252608202815391452425627071480317790207447375886952526946494651679817052597297095124313319629825286010558379324753108386323382771510257644388886338238058084868674339947932471950043606873429360516742835047652643052782168792026676010615724467977486155344131104269801029807517044559856370645598886200845182256330956829244408315803805804857546618148733190739840958149903436016836779870505495702395342867197768028861337677938553236193873995293386537969572054273254033046436146484423886654583958650795655373734028153555070559314080521371404211280097139113089108445130906186990890058244664169122774274776943558393498997914396112508858738148472955995369091167766501845701132420957473288807045092149624096879307834651704837700460293011148657924536633436607086625471228319392074914009885795227543249312533830038738978536121661902190324274550849876069900769596152987456138887700856542633828454589550667580291571752246089865387475971396569924919198901866210170754683499000634398558586610166856881699841281701210327586066069741729110906015902259547447526579977553991164233129584477365316813227866505436682712162830176111810047298436740528968992158821329255800936857300225256522682761324012194629659177180002152160176313963752819721293557281435982670449624553880680717726875477981587056102042333771881437946457217089031104440510182025325096399357711117760117880608750836513988972468061433392112817478661844180428309246876151001500099609365257280011938787713076411405632965450209321931372853679789298536857594940062772912368981414931128981049419744683547668792350880684412748540612681819459032761645756846815461603372004844386690991293806402312572846763572302517582581099955602127027308231698034651576431880988731883990958349788302442237140141174599842494046661625790949936626295807305973627231645731317699367500456535813658018798122012716577235006366931484195030197023741334455073657803381136465700463008986297216621391326659462097633718701273649517364294841330806161554503707210428609802667807052137529753978300227445637426163850591578601135840465802884243504468979729124388328014364876780183506491673815410412993301254754195079474025578706934493966633145987898189415103751880228096253178088995691153384210064779953937169277260111060157547531496573351735474917556089059185372978849290616808784551462505708263186435197842340398266074340465702055182150908794327841221362216495186858157418949498488239607414620097781887430707095169692509927844277030582295778438991381526593091732936070178931800274422069695706587804163892224165561401418298573279635953991381959969737593474880975733647612318769132935768281038035905123281755820056851396169356157206545853389069702875465235625416358939054668657619732902031175639724814409031220673708252480692147924927451922504645648729749246375113595856314646547379632082915530951872854003018664909568204602750398248171265960049016993427019307632284027683878476345472360850251035256024120904354438284478814803503139353403407504249666989147168160562311570260534832665819544831802868190657492057875195783071538087819464187276829013656201147795779452778611575428682582052174500265568297394479693396150697372343640815803907196096490074234844260061165151428817809070005305994918373394871070517138041659136311814391716125567718982326028022448151178788085452561235209808906029705847631617625242140312739303652826610334012349733344264974796110917223855438447005418631664536020686632354972484101710250352958866580335861102934016266395369372572610288628022050186268270139145777592738755480986003806499910145208569529553559654329100469843813364366540566718372852315712958735364126018712582566994481046947149482057269909395825760571739232326519171997905252607046821060269336826671536636355151229935402385927599863790852592868189429117861417638816463462366715782470180880373423961315633317934723213449483246244090151817610726057124469401727808495668124387073519840017113630132499112032848910391933732709881253462449908521358070304077193317651697045525725717139333331549083688504023454597695568240523205465663098387605745654220621854733675307085778241085752669768413114388004901074931484990402197420745934510614309731965021160006773891458806001078480624155999603366170077523829876106504538947372425889493186253069971688335487903220155781325098006229197900647831838895656736270192118608369768021934827597938117545000909228028166638284827508231840784040111113316778828588161680134783755955429054099422764299396936551839648195282003786553672074935661976917684400889252741895353755774113184501560925083233723812341634005908362622801302697648285861655253451479758264426321802047705831937041512336521023839134911180322914226963113317647619822307878138937829256506670684852134117121062229556395085230643965791822786417338764088153699422300015959551984369907284415203423263578485524833844967859345501908438657057367904967290243935783411186203498689133428871612395007294953092632677460594682887795445593968504447178912564965986508554883220401525604004524491736373035879330895334756085684062325822409701554099548698803691347084589339095688618118001266817395070019587664151738859568045277026826664061704563869648981839423763890253142362989100054507273844070345878442205652895600122247797157894811661652160682987274531852733082520799311457987937880705525985932257005939713867492322348857685794616857875415162857890167832686901077031044108113130962958860006786008818801746751345345174342900840347736262206478780070014104525611712407723627810001375687868935562429688965989430252783162473373183920153312418622661290635487948127811137045621271053215972785624644277431856467037730044359201447084190884840254795306127318949806256636065984331123823830444155426777831294440404330929545169528163944735424454157351065649523621977609797706112565851476725049244847161344018260023498300645723446158641178069038841261548978966955569861338761936673840557618013572669770225639949554720405375964494442375658801001964931346631228768607574994421945073340361562389591835176700467611961887362378334157755845154234721863801424587295346718391713821688609596859143652223021363238936900509710519877934824735793357216973765312951586943199596706909144141933897573196403217326367639201824657882038757348396419268904876180483408434536044053336941295630551251106261226890883986689597844539771152649912996873811076837800108245286711068051690431143553379695335319752173932212876106997232361179609861611671780498258835791048811597997064041574053148438417382577413192967629398395129409530403563542538223179983597413117485726387318620838584870223264368076081117082226887983035863922668991222648449270535943500289075067773008753133384729263252112884513489766852389811323176725778639537739102991561125161581274942956322096330079039631021524697087511255165644526792756852463068959733507002082469884298127559751751812694871350215152566023885400549016721493712918123582558249180976982742655787944061859344259940666323021403824072968279294381970868273319364436114888433838144684217294670107840590318081510412329243635760682565455297165496660563095180579335077688802668561463692726049061947019257442514756371032176349314107870774266412432662859657240252520922858274098051546005890246621310646823384216875558926643934866294972993058195110386233314585940904348986163653601991871670240839840372828761366703341024101935936779645137003930883466007147040648133245889825445899918741952992957117972198726512679384220475678299799507450997272774611871555305846866191656334698634151372632736759023669217422164261806682159433997478842507072413608866382858712224543518831387012788061476807283798299231502508141619462525239876734883129087132733592238861199050083975239231029869277893835642825093479919844604577769133734141370542594763985163163454725235007950067796787990274141704680942367640237209181147650146422070884955542779489685361335156309897417703627018358179606087392239079141717274468432259589179507688802865274133784022700697794700304573486018256715397643655848682163276092641669912887744728160395339950599139800967452521858659522602903303840381573320056966206549416753111594428346618988469343132060867849461184465267563169490202186686239929380905122126818385399674458426013720106188332983515406500629829899586825297388273112507903451088924558967921493929808336194156814879403246487088885383071262008880057573993394834016786998400929449935840914595548745903617120142901444653441143325795570771911884605650794132244000894613030035814096164584244037134224108867882641313811598588743162655363312091894406563932740246945528993967072724311195494130426505961502009997731854517420821689239653620159127589192861877701109107035611455094119091291642453178049644428845380937020296881358244162176689228549724457601696707830614269986231794238486384730039947247001171265665546475162368284059364248907600206442671852749285156771796439796473253520052649663252218387284589730058724285382146358748895014487354456794779854814449759400399810010345616555225969537105472224104754135631302737523207765127625284028950399545314916814315860261355758971122172476263105389560326970318545312985161290917445812695582793733932438177416933636374272923930631422170739765350520532579419416529503207508627987401801845364004048535002752350570908968398872433143375910311879726795891740284053402505724658343659099975805767876760828978592408993679301303898930015901146041697985316994079697832339124697000697517475124883436395512578976717013550337222153217713982870817877269517705327615470689083203465836020481425369191113428613779527870220603745840578541016687122372345561903461259594034330594262630332832737072893127159852090850108254678071354838625092183037671871060415349821617329139561893785817937629314522880041409542975105034034053552363982640462600419228112367273373662055993773172434717566511860785332286591213181646839928891797123341489907684151464713062357529640561620589267754114791361037135519144202121552618769986118691621426839049389646984852796624874521051283925793781555253628934221362709198639317370731505076143891573314576296841538067673037360546664639050992897868387356718925546675226223050506074483129380925533838063859539217204918030062050006803637041360497303521856003618337784520763280107331292242720500050578413215113043491610722417116654356041749502840902147078373894640886216894180496476657911496809527985528055406889992218054412228729773273229622720058192105855188214079478394000745308292381980051186384672428327023739267957915136560650378685344517961664775647980810957546613028944304359524514794022351845398261193261315266453026733559065402029803768311322198719389324054157697979858948896775119035237959480338518412389857561417554544091677223888333927159435269093410690034795233800452708870131199482145822558742196697455865420015815174205346716354959641596849930903459011284234039301345101433630317223984694625073174896894456300195529344758655208000043692347384239348719294445297928584059132054576500020325838713881662045267939872956171310300342165684698475408667628278228029071979652770646702050166247954829764721220915357976937096663268270005619702031694821913907246376615881273726071998698338518950701105129766749841477629729337654782211372858981923427799289267234735648229617241136764198722510234223045614305562411515816722332133762405301621431146972289322781345355944534261027134161106742500894975242031605452053317746376684016137163487105189877126647997215937038851516553684243586512985572846730337045969058045108381799649971034002335541371875476327336494372470320884083338745228342718951489496614892090984686672472975466978289272313085215746567500428286743369712529689100286543752509969461167938728185301287030230483199390814986723959328651267874519114344097008463018481859275772582843809435960181954296775544044293163863251248340267627916853395020707358577477438049089156157629181869107424732285694552730605717173359680901942487874839790265703540158401349711755979592010440800454880734675711201611967687112123999759106574683057389761921233255686171721587233442275327705178201611159426886369582756875452376172103369880139747369769445911435696349025584984338421297648936554185112631500314817650937682007858125997283480913223450406462316488187699936855482334437660207727022369976930283485305925387545937252058009402591548551102084773010030826807303061858008631787820905323775611529414880987087850494841937768463987665533993790878034132389231464144591609417968268251847786678294192145565226305559800176256753195627705404215253927139689876239340500041280410686153072553509249977890461468884632653874046642600264954115179501261667002303259147579928083769546842377778912054888854051054104221355484135061685685392289092315577588690951098062229736187467922142165835482303330121264814655790260531210070780301830040980316498994801385554072133978016269674593133186276617858049834097574988685368476314864662182447634344149749325749609938072324947491524380484054348902741192147937040111995329769634183056476108217855366166914380582166005228306635236888384059085254634289615668137841989389648995946525204966667827134297935653999464017986617217077611139429006501015733835824936784862865750483397582058662979494769474682868611939927550546096514819849197025935812210456831433257957866090008912318284338756232324535261971835942637264257948801194528198658209213548819979595015671540510633685183021699176791353775535679242660834353062878585939265177882295045572812224534214594944682044887511109801477586471448878733291501769488033602925980369214417560753429918959108661703997492726844543355292479567777524739095691048263509106504682733187563410497418756150913604070013568565361319227253580737914987419833703334211522522371636380250737604442002865737206598238223546947002439009520317025701417630943052127192078601386637616151302273991556632337725877936725472863789592407671136065297311810823925766728128457087240711211137392967324856214857209337059921097272330201133917348780742535707921500601045171490237984471925686022905219869230753853510798709673731237459789651199187849701134459951493454023063872857529532742150052739063569921849422429075993822145344983906423203242729508497466460147902868387552210858328402976479182228777975017003990576639643281991997257916611997978184901995407541703763933149946760348979809609672573760832169962953941682273231625601004102226044256377467470386282635435134924069039015259637265084903035205973909172736306522841232679337007049486451704805237042558185772699371648572093401989994352810372694044902917433049020729083978055120335742869446285875561299000276997978913319585818882336281784365287205752466938837058611820887437033568047825986286098793380639487616081736920586320725752704555630550612990686349213745376226158524583692779920736220623367139165160972268461379780538284979463395612895262658036394928001567963802672485908323505166322441074847680604976698683277788231982538854280773214100044234284423751966343604291532380663789211242793696013416198630643724471544957416872005539420349144710255489621785347662950549166575766130784025693696853118491703874351643340452423829044463952133904599814358689607997563682974380212057710231094773345453472408777167037019737388414467782047574149235815857620790983723485011509188234985192860304966492997480246666684489685535445962156166244415653733610959133088216702496908993865235331358517449333752842332961319894698344329052061178856818367041070216133501494820307119317377181857197259671415566886209673668596957551796367517425657761956678770495460991364929565636664719766719694503460749908291006804848642622395245011511051382900515549973213447120353860296380476235488214550606491774496389247474353598653587484523158995875133464223398050127699453141504428284460327662359511595223382871588680665262208648283594577299164105632531231295573008417053100717588454851410742930801947777208521218751578690730287144840333649857089302610178850490026856370789027992874853021635659759624721744157580315257638757114145403856334788886831179907585368665969293501003297821926311599834606176332734027771258940433865779223964005627755543904215372511007884456908136491053911313354205395849461618444221028416566031305405969694009860841944011670692890007090506289403901072988334544613055110781333642603722318841047580233032740925143911754342998831710867510034994527425188516225068454440195761132219826236535571112758782414091106320687552229307611338846633558132938553894219354136586102408746449827114306503170491769812194490225338761353834746132846753132105120187671704604975437678575655407891423398929971721891895557240072770562676571176439618841565778933982676435866178596908411886562205759899241181912454993773837205811605897668380395504785601929991312412770715477663220264947847793339716020623500144445225726981895386325990226000460518609698106474902639300232875830622889775677515420808673363756356426710845271880638196157739716931450454784277345466487523019540133701504368180877842440491076123972539610543435760385163251407124377076650875343514640569167590367763726440264435218880218389809744649554495654345910198309781888162382845611343144383679780598746540835792842826607799619088615727170031131132418573614718908257720679112122498428369605349128864316374038016815575489611559509961843790308471307119394190187449759729653041902945592236126779152366275508169033168808782706882129862782556139348418684394662278586495084628148765367970154941868141584143840996022840640982802005104689963497479626864215541918011439460795872215382782747825776196904054387325272709028942894854997242870835099350362218308597373825674218832963867750166034476221625630153646707768347180838328640428326798389917292828801544322573715541785891078216640005821178388904007503481478469583687690428089540403842928912204757157023380028433338953258634154040539425286292653689512028935658645133207581358074149032144753829777526987884544140787187135635705252058820051319035882920921145666934505026986022431399503687399372582863809575892350625164658914630851580872232448911468090956268584507953948618606525526354225801834029811378252923460501069153042072393150866920926284055252512115994151838150807946093879469373161775483247107258161802131966411169178646490466102790883278157250108949089025509028868588318569146075095430896339287725348671566218670986865205093556859563823074749178325356546370778812188623680626155455198191036829384676111304044936677900533652481833385596406546838850745434875918631382671519584559633948907611705992515488371758895140413750491797783142286091519606000789855236025622061252993029947182070719707268925477153454170027350141134679322035948931749718597783854056310005059521240082528713771640824554576452782920524681880673053519464381562123945875493565675426639989938192977274091918759408040754950474613589660498283666172375101490615736725969585609238096369526339836945384476397810040968165324119380412721620850201586662221426189270243852346274035679055341316268933147374249881246664263823685983565356507836002227420242610400019007335246795759074971708006540446259814431066301918865301898805439022364042898270068404462409360485970974379202072982406037554403444851951639091553846971794480013989506396433167743910127337065683005544226370946751868249157123870061256984471374030039713294011726177344790645631308909443871632830553107888258953565980652736945561726528108886104858256922775896859999272028308326704194408873549875286908929249248526711707144555460861504285088100541846028959998430354230852462918158772103981439990820279243477722837213012751421553265993042260113049399999165599906404357173517093577562887641016701405399259384902500021936034745249183608371605737594209732356686215415813402798672714839454594087714541023052270149249153692430117210665866383565878045069018406516215083483383194393579537326458668190760205856148589021354680591189465565737897014132358963150162624450710285388798526543505720557438784073312324867010631569771806571510782549736570862862565780573667571205963187431125021658845787758388134015411231674022810225371550463184577122393563096388388503442045946393405611360182408213565140446082067609835527876333048399492083631890022713769393896179817729896796714553980314308566534619541457334830193152506139242622720180551466103872796430535792062911015446158915219045781141212082755499412718061873533486533444481439008969917577642984733209257513434257806343042967084754106404717470072859290759446879913205499005802673284298727155855846173980367456727856239930486569023095556077019875713213576256623354460529380539295357220936931447050036870032946101060821278654552230267229591502209996705536590528342300573902675812199156902375982530806004577779958056489530759394519625618016427264707963568741473048076953781912703488132261680110725204229838859761189231000118162166992496555225817601549045471638306878476792274551872541249673020222456006697101492951314609900200385131813945549134769583892119675981130050011449223381943725961465671290391710498067640380421001147653366329789466669743174384005724915450396392978911099442670614122519090500797057408146233970270185897917027998164157409427039909389567202059682767717693367178304186956443348614416660878764937845935239069183693176319636069453583651974316488944209719729710644167528112624646255167960716160670385916400980005643770536037173808464919126745586262825154867359311421806068329675856335934535524863761667281247267505136655857951638472996216197786651638593536852044081802718562558550579698333498013619528986662429326286901873004957838187710411361785899637793781469009432996678186937077608131412740486869693399009153232181772464495094265590912810458271770916386972608873015396685521664535265580405721131386722941136716745405476476986349381315207484326773661685565515002337493959808547308400738241198660205936880302050910048693791199126429156701339347484968448758309649732748098167810054164582088834419290501172720300722412264050034562723083710481001684231306737031531192211910819641221693596219872166227221239707203120888237695212453229865289222126465403217459218683104168912532453702162397230488796070344949396490039771896150098581311485432455102682584535550557023405485548556678381092785131463478610261317595845336146888392743390393240457518930742435675897850587149585872619426131288935157150494586173400056688547499388339729419722793253488457103855415192651960681427748933144663784318671675093839914046539310113887416193379547333827911064165865548790912604865322872396460540340312858308626501251956818855702666844929801639231815234994219848331947457091527968288172999328208227420455905893425627379779876971480549461157898393599744781414937742388781551803813700093278234375046653955177136332921921044847583788889387687224809914792598168995355309684324781855565761095198964931267100740390874292357699910784903921765168115309923931283343580348302329087067114178057724506267214636654328245177009329654863728659562389976070117203917764435758155419740731869067176337465024691593626997991476501891250915195213481465504976304071615171368833970459959298324493091109226073099978419417973983395760072234745071763940084674538541893169419803585268780722855466879366104063272234158291390714533102065243606631351203462691725494628156570498882986155943359458109400443751773942216278513191243596260291298073867240792508191717361613256813944460730929966830179547545491753717850459876667776001363441897909687463123284706677128432480100892117896278662858236169901991166898350225342992620121347027592693465212783851301896406707072059947020974960689353710359605645256457252498233017195744319484477911694940364883569793575221813043656422360682806731391149394101933278415364903795564980614447693730989514649939537629664120891423576801061201121781647223905388494512199174092215066681277988717687755820542550130953515136851487233895021153101233400149816306949916154647742132902001821984393646692160243945528476246020927958949278707576387863033125332653815022520387759281399933107820009112607694058223241473093754608709453820647924890864410214061892024384873923302521445534451261878680733389114198337111671898538775045505264707268605179889468973648748857014788213887842096149266929926278596454025548255260120115791521859194436293020964913677583970542955762297921039141874356651632652342689714581795107914383372268525238144483456887291208121735641348201859003793888549855599738314679763105217604772795678335054976247429114502551588888861484193422180298991704880964301730179896069071845191763469477589999752409776305954146092544708828303528845399631202626329372766215241389233191898042623209904650753863406506965626604000115383075186110037649646926461446318263790328223947206272960805502934306879762276672769512328413259454285443435405940930112873126544992069224811983472114554745791634767248502638906031029381291636141109301374576899437127223890822695421610762577334971738598565276836027474854310913751339355458841244858381267925319033829203847871760376348659900604457221522385725283514847867761103547082478215874454670113816684207586102810607021611618000855436295759088822314265993459734181041424902366297271624541006886135845119613574582966199130557919181225483498981161290295430668620105977877439209710146540522166765741194969548279489041363884312660414410221861527161113524481866372021398255368889647132861373568017587089675589236277503554269009017313484871747617084243053326901196443646814295761637481658037759383982077697561626138554742745187103354382973569295753580866272263340951878512638313877251617656305862429192862681765410911100493391315066624959383467961937794957652515394109819991610439385792603589383010383948643394903528093293310648952376265979269830946894624253099423185344764521229710650101828119049900167609003567682453637588644366151705736213316201819103892056921871712114479087830126967125676269932763278568582772774537120655300478667791260629354972603072491648883352860207209811928032277366494303348490208846869843348819770129173599847437736886400021562039633276133795720922244896669595802101130338967442413957022331058317198108214425177290030033976562986511479351679994106485016857120419881536352276711240178104454001976588408127987216350809644728996478432211047422712330362155395397669095129884254053811152032449711060961295590692395224316849877759860108299312131906454755892413214253796063782933148865904007325377843080832134792566473807777719392575646239637084910992877236830750692468151820241575811878559814675275277220545500206655398421938021454815730413531041036926068654572921477169079397815489857793481270234535453678098332953283662535586252124893182737499270324418122292675723242137356312459592990066202985090031679944428212215755701203844563233880754613016760112522055563688371462843571724548752234759173522226197481951998275834827766124386122829351730847168514181294394894926895798353853944122704373652298151906134437062608594845043650631117258684631485335255764523173887042402386383288738932122864721164651558322597532130850772722174888634825598869960691402999640340904597167735854981527395983933118098672763333963721126412144481794934195450969935008882143127599753666494782509293684998628210173100243418753565694408494243209547449811080812722926459789402586851934669924127513867437353337669847886350632513126448325884421397725442747349545554205162221709966869132992574260156797830769511673891759209709077911815109436561359935007582244331970414851138439982092427302521717401736038750279737915977845405012562091087010557545370436702608163391712363235977419548490217624335984043683073427300726582689745213053548357286046063693932444633484640661495030888564969498115376304543239875107096364876161345009313901359554527900256446171001263912285862525104427074850149864604222280836767876773292689617067021291843202993043353499318307161418551933471913069350958228199169565628316135761837978768761514806906214855605979593714409953560280074622251293858478219336323368669704198314440616813653857955164295313262461126370824293332391597128774046659191539570243298409147960795682112929134239401886709980888239805080743648159405483664554583940871322150433909834875646579323548012111792612754186999807480928056803610576710197581713122941363960767413118498988187333329704185885786128159784226801831072543109523275413038782298012418353013922792320062325715853597177719838913992537217332760965643673539705244135104936374106993236371292720057058224114081969833554188900782331973057889107574311207336355039461489155079821215677589562353435702855141318947112745268213738053103646133637607495643551853076047988833583128762451641365193851202207774798416051451584095350528627387873278084564240014021246685811910673066302369842986709288383507112998572098049649651058084646182253261137694375093716044237574397391376486313776723113352595451621892889601527842088477780661485321336971832011455760962463676910127203742820447600397262074619117494019835889571535237662897009681742083412933521188595557786997266541915157891385400037345603675349149206241875774638472798141903589214319474351737485710802072985993241184353058950402321248505142650013928679189138259904783343586248141650490799257237574724700126338753198504035078037076320241984386344102492386757563020520282133477235788089462979276587812266295460900394188562490634709720219441651043436759570344649003015770249788820344077986700964372243602578000163910826050621373653427394739177240595528826208307098022339503483884721599015483677096935470366420590969424783739378839050550967493892051556678641300899762382370445087903299726302646043418392478705312123939563434346869247973090532736579791134481146318697982123465882416118188684261575410966809388664331600532597253590726498189067627839617543723454493021458075813991101982761154655032784331639149885531505288566785516815607435876212442312867840552028200781699754173578930632859376486591573796336320167318323317769588737163033664872391173379952691353080094952735723528184729920720345540875289422319607820198444362662045737171432890108094268007733331710247029284218219085919143543370320822013827630302803484641243675002963497098229607525857755724378437045184561023148676510735504722902147735152688954513696689040709603881667392797547554785300250679554867858547838882376817340760508454030610103156936887786949505606363456239844975433584392073671456093506118764030407455701080881254479574052561751878316092413759036976936583026427437870001178189221219998469295789786630798507807818527623620534151778698297004324066275288229453135509256806165766142318928470912089875588584402046493549215029998606391477025256421141626429517066489047113911870773461653510686073218769208459317264334768513684410590369355942748543848167740422694713481169402992171383639155492675107111307689089715820614295140091009206056197920272695662264888880036938071624712200960892572338759071180631090767090322910440182508485435773684953176231049014872618144828498594373794987550425677414283032333987825140262385325004544814584514904110795160179632494638071434928908509526867204772332059520566643761988622308634374949800128030437621173922772800404044555277317135298222370646014727492546237622980380343710189789437135539304067527352240674129380447347617511283576936394358401759152499864532828628612798286585409494914753460960171568548107953938173626236134107388963849343792079026023124266067217459523267611709996803877224186672719039192734289056392755699311590793694229524727418176636225356240504897648291911725791397487901934776362098378615146113192828859278964479396943990616872852811507472834844112704446095599777109727798534601541881686791689979837968150179211126787308285501702738490301269540308726362210583483078147543108188411894895693021806803687711907775005988130323920919125104670328538103604287120513719817601116613968108454107897274935594053212297517328598930705195985153407546822963876285670158370184405422540701460932677168233231760346382312514699534732917520148852938058963704469443955796199715394474052786745041007077291413001443868767240987976280083342567806466647295742282792450623026044384653363323005192435039146304050038155556356345559401673294761175850372186008951103481887389945731745107285357697782826261323104857882795190279690679233017204728796233002721983850838060045365457103924842300957040685194109983779472600428040361644825946130298349454841630039764525235342629852637167110818762352775440791334753684781898121029646325209189444012565063534707825770965473776219384334795208679929845235105055301656062046760016157478081125629277006021377188246357250142059279250244160784307368907079423966349159066079344266548557101564490121562518557394104770377434488008298456233272268551283518654832627913795305332014254746885998059401544458793690199479638115888539114970746841571543763943228079703150808735580647788494364850460782270429809120963247325464173024666992452915197268618498366393494393498645791400429387580481935583351393767864241000758504255667025292324677569734647142609435617113728786409838748651914420011096845234719400614557615635843614382310946212103712938170948416524977690338952945760394315701874745580140477433848426541023609718669908643715564500387160058358332747889342929513004835204248191153525767293050142278266546184898035191196961923523249580715985916529094751217743687310219606524811349163160597087141630549887376798612817334069612018339585148183753979661423406495153499446342940695635984061550218753571901000731131899707282835636507724928646381091515545958084028277646887698263889854889329689513692458341835127417020920817743548614363451542846108908128506185708004505267709946538029258226949574604880303548474882528201844788485694688112547137178864840368783391377854723733992528514229922419374574160218548992398982247407733670244505075869925574030210618753144258264483357269570237819995536768654298323865224989308626980306162018008700175923974744144654354167012619704485105377096560028498205994664823467792911770910125525369870589224088033304029178551947961407456578310171940036889020044946546248295542839887867023752922669965790041711655856897340294731568470850115539054140215710779954171894428754533007334711426907616358034192650278513629777476728305373827824272191324039509811915548820994731711568035044603209663698740664820612614338379720994996302972136668367453599588143791688381756829733652974763289434825494509896528966766262775436817183160939610065923707891448703000865702013187703157833486101062349806500921570469374232284938586679601426108306866140314028117736872867971220279378860498165870323661422211916527964626963975430904084108785632350103977338421497461321636393368753430494353243052017070637446905858030144367548533427651504009958382575065301253073976616621937920649456591072243463599161588525876420615297867440688314563615416329636331054596378873633802704682852788723886514057176798867020190348865023381430873497349378153497219708382575180851044471494375587942290114018690893308092957826810038717091697785442333301013998207312771649345623426245516164176324242811951059551403448123901063756083267840182622131512464637485672367122411250789385184365162940832267662402890415497591145014670306636523673764222183266568379012212619423072399925971783935779321513546568700727869486765441132409998487841870489261480201131288790099009348434231148496856258432747070374327502693077807099390141697776314796528133736246704856968084247671476994635824552504452150862195203480638470253163918069377772806387054181268860064739139771120493760887382713576498435387935179420915619119565956902496022698297996619242344333150223019160538444863776319428254835351415961319858388952928761051454864908866967816064008422415835527572425171834784951302747484639188014933407483886399447992469047363161537236091590744523837751755357639164510132022636330106438951365823593277553004047471692954993429770321615885581638005772861752506272974908438996387567856230248662410464679819263697051923081991715675037119299709699102806278410196842916904384395413917266208000386556186623451281787958787088862241009133720212602054284092952404285712929687659107524039075062846291310600595330572637078628946364916959622773397811471183640821181598282591448358906199869973851529274877352822199616926763067851259571172927242742364818959109319470344178276717948797871508017511506797304188948176621510318727538040717329161825392380933402255860818018983969541201041098227963644435346916257252922299652105448738297748607346551866710489848798719448489310314115584219737642216163183994694030192395736648993634821547571768963666713367566599567503457082104991614387222786298285732870665591745298370446446352241043992819633544782758882940195811907669354294864011265721734337849696426927942516941376820370664169927821492610191558845513768217412153629464312232660470889629129889146446500677651822828282757426770760573587587509249828387825527586235879798031354760204869749141274430211363449766534330876933322491477989171107816795921883389941782964629690431310190878460621609684737575146720822553440631408244601559092099840350430415195991365920526296523959992133347633183203305399690617129824952198008882196160855139549412733962795716322373675134840767876870555024685570790913162776813088634308917036031485823429399195019667545553723424167420509390470931924350262852377157273034380023955566766175994801827065492157056095387356996312156350712452493589458474671034700343965055284839707454238363735046065454151213138556665762551644890591616668122693947242620718989323110243252151674719497779561294665274851800216341594610657340267125331265391325191119773651747202017118076823640921691150890940262722576149792997463595647516728079617697858969402178742844458038181850729010132892899333478210213334041870940147867435606085523443280880256471510212878777673848116557441319728484590580134203260723074310985713051362568528919579833680887711384674454704469454842127662330904704111547433485355284111601853589212430094930971706432448352134112567546138284266870758956259614465253441467452184995485592356367086014607380200533315479791159791697155307848254002904919288752161267847041582339683281437439538003317952507421888138893765962366762957039525154573710954850904239235102721762965430623668516134857092934179802449635736361737657482535325461131096450794785894210953426944040546478203028658624041904371041232478076869036334848070287519509720096153108122956667153437333877795882891282580605448144909301961109006543902393291365312802328441077023514597518355565301556661958087844147787251174937177746450014149662322918151410277244383260372586846700808577694633406881779058698657867934895325153014153232611757541089108520319635047142228084255718739556538394404436444315253839980443802234809044560222170958041715860529182310840476054851782594342876211506600260311995213274732666697901687259354040785721197014068931318709029766553519483414747082906059106814980531347458574323969455714471607447588476810558739147512159480390249079299056672440974535035493338033928267617723023959690470670407222826359415425193776096196577880644117174571243313495133078259498437633265774619760817473826985804995819142974649273854225031011528157825072849547786498619550518639810180293820650262898631750338017159087082332840000659143229389962073706488048895467606172281239167819466992060140558403377891206601857438380662966076727406509076480540099404868705270169637583867761661366535197982544106314279237493789998589747086458122705091650617519323063050609497606322812931841612729405687305942488997619948295945019733300599898879579557231754171349699554325956635707497785517126327107054430826814053720571693714000742792104248454389863638154549411383688116959197024313024488070119407207226904877146517681302329259962339365016330620358793886411683805631225100563238750635187842821210538875309169493791323338510664634024141434144522336716157775375275916963872941113553464349664539292348228336265407467860304763792691159939370576333797926782781011773650794750427483850382043646111166464421232779495701661535227529968924227441484494080227913452904018900392958427591108330731711688782561882482435900887881493594882704132123960016195368371377921816331693935538044943628684551951463055642682215164964519415687042086544083609524212253619030417573867428510697164696828486628433997797802692389841616749893991784246699568384208170728899868466882636774772382805222394715369500142819614282569817284435992899067849944569696777482341544000679168323699050012152645462501766644564017105728349678959508009525637789518184003286713743626928003140218162816198527400610935750866545832671264751316319041462084980131462873566224764269838235163933120256078611586988360001131497770783221967456442290102581079825894793907507270886250202459736183480073548621397880167386171051415613983261992787732008007076529157906568677920650865709295654399866887374055496075366651405897741451121111026568884680976504652304239071114632618680647236275732817789937116667793269836612163396745167445238693872150706555077773793100993381952391084080108948289073925147721948045629868622165108060226177434252684881348262253879383761385087088616027346295035298541799751280459319705981789910104914419174366761452006056355566407185105398219719423007101370225721223800294941641641553104348764398202342628542505589339028203712119756372217693574825806275542827477307992191861684959774313324809223435079691735825800761761214000005699158169289958831633926378734282993913231230607323775533552055398474083585223237390739233973721195440151501557685627703608848984374351463174495210038612104708761245558956195191377052893374818491565892112511945308532964191543906432928176095972091062731881770236591328571655587857005013852625203100786984480181667215352418240658290186046928457297792657365326981095345567557710356023621438040176399203144671225697228718337515047597469231856011375069165731303767412915630793736479080908787100039291979742031039015620600884720804162840045653362234773579720830991710813166475187366405177929058233504791251345848454804748483104875284616673649038552797032353197576075981707151808318384808107829594465013592254963419608262815943907107149108522486405988221382505669511904093339782295420805976415837149521062578509695761827794838293742830519828496847272875954697343143678963938534367007876427310303816621634263220938527015096772482756733276907976161965586939641613316086378503230586206016502752073406533974570742742196402847607434599246124073708019954347727864393731406792021828849369702029414995398989459827012467784846327525715218218286794485158108055262234789652949209942621787828856749562881366588223659580586153654473968635980885552365511064965676708145871833816147949816083313815325309374597354629979419397522607584575114069045716940501365554629433394004281557046396482678747840851881443556026219943201474723906253231411312148748301356790872691857385143563751037849870933755111315228941575513767119720421726405809786800407611233306972317587040615700340344433981134663516011564800891417436729272705449568658990333164954416954443384611258054434261895634628066081460772615851470787944329747721256238423247788031797921525253766771631067043382536406806285280670745753168257932351067464890867650747397156030861867835619452696777010764242821538666436057699794284447551475234009834777673657390588517401325374025065525751470296664695123647778491499790796899815087733529148816665472308569195011852493515325838381926997504197598587062936016252174399118801244276458288948068590413633185641582365908811007501117005424168290875559257483475886348126628974222260142504822899008857554225282817957311701151038835816170236570380167558394410217112633266777040474479109199019605884437796460693579561948044503048688861951479506760539650751183165133662008846474225181417467151385206691485390998330798909853630982822319872317860680959572672605010238871783515378803213851832369263802002668226051842209359790050279575833143950560675901574045908593190475221011267777103900105994717655493804915303603533428919505756466944961144658901320846674081067692965178997774578899201199758377005913106204407772119039319175379072790254499249665171709056057031377353857035068811424616960417026318181181769210088388966398460240217008934560547609187756060354938470485459787833615732225899388494357449541137955906966244529470199614764606214719825958271628621765845073210631528854368864390219185288270492528090389229201940923802828796713299915210435424853225171870172415918909190367944577841951669823379297171932101807402028362111320935077254426657220226654131215460223999526650760398212195859282120926824419507054612653456563290304867417821558164217070682426579491548670792357459497210911478644314801198285729128367759309472657620038219285408998908354705930201960417881864227193376875805692884249559405485435574316613231432408248124520687598033600558177136905185922809605817781233228974251341069835497877915142919901905141793200738230747495867245115366458257433440794035519799500189996783123743658259036898965806083226431756621740413510982270205769458697356430035490098972766600279394356251416079282914656930489867705190764943620898945456222190939263676331934395070989208485144889450684847234254901993025350809532767251210555687594675555391756024828481013183844019022314117029173188661433430176264374165016707081214184267839649059081567061417961146431928688444933104908210578032604128796007761022355902719898569105361984619797845553975760993031563026460912131888696764163777916036023585108896524813078581252779704426700066841959748772269377294716434018023590290546814825985092601827612213657374361097441324501124823447047440702422748257845030617227910244981586082115589010017456575561908200226911492855813742410732363673475827487685236741002006000703275904732167887675221684102137179846258339670935429106207997524531660592884560357132496287266076830031833405216411248457574797911011667798892173238114450692959405873746709504176129122891280636081939670332747799054449316837820361834904475460218727200063160922380933116557282139253837331745148103094093976532370112659948284821891887462362862333543667283497959763727008247578957615573090331414229417953110665012928204226144765665690646064448728199061928226609780662866270631039613293910533951456613194002559716874779281460857246684403140363250592766099299198600005936100551750137186156036884273639858660874209609467850731694032764436906859313783174988537147937229439965302898669005482160651374001793728647757766097981391229550133825664678339911379237760465415787504610679756701585864516885865176741084387941707703221062583912465450708305477974524347515418723839791953566621418625406109894190670149031052620217743358426795908334289581378541853941274342032614875061037086607693959540132651574895600816775982058756707184110082659442358082890849999798246354010723204101949556602065254778368924159815385563420706046806078493175374196224682969864086064566045743457824202847051551264516549495655904009071208736319643409139884738503714722169939428314327754029467750480891927785686031806321570833605890490918033974811934350075289786783492537390789358715246120357469086846284489635013684532116196979218429506678292965222857154840909679496720466146771720534823350727043700735706088089329367555359036835585609890367973585257656839571201320947655503251384723129309007525053953453916987765414860713488880752858767045850610338135464765331808804732645306300233678862923029210967964709259424961809830439557804666739145313371176708978568816710568406831078954515320406403997166819491015092778449262718069589910381253595768578763068260794507300547725411874411554643816624691405612681013157405312823511256138585206582878542602363477294774274465612370626557277799089672747581985806626717618966808062266277747651266358272109980741457513935964380126756914649704243307541118439788842362839629098636290993979355775763443317886874768023453897580926664317266533986203482128844049898788893793328494370955112786935094179366287329317901442178519304835271777826586639286552231800768773298976387360688628422185471662886551912124658479814066787825909457704879587705223038444968634082134092627573733691498496459490583694156386110816428910617143207913291384000190973755257875209829887878334364672016371627217048932893581855356722296103939348840681933259344202096116753481813776890549875814921500899081325136605579168245027376076129437566462604074294184123297841993195507204306094756420486871166414483691681933573135168228939887226708867475685863465780081922918322154990633032059400229457839942069697276036219902155295828995375988696806998226700287768460993943488903350280296450492514971262597017633991013853890546302460994023466062239721775820635585870976577553423436687836281821417584627809866319768818052129962196820611256018978164722843257363276705241854057279075436383875950067800827730886924062595286965993288380713793978930666422340695423175457390759146620625500505724094406476009665295152265460829988867025849924517539988212921149288281281240957222413805037469302650195346317047033083707141195461608992634535008088653215801894162718308655939492230178865296488375120070036079316665167332487079017181208211118321273034408172598863736832010517179469614877978640012799196372986478555286123345529481071241194844050434931200597666813839504843401339389879071522794630687691746373691953507147536907263175253471417293424149651987092793059165212199615289683741019260952614016846976110152860950212888368810489523705091162734090850262459959482368816024652621852698696552651927923595740714209346215448106197359781215322198820672193159006660334630597571744425137723862420076591781937598251297874027305821410643921020742427524397710071774441365668416192595985000866398046105473099485162811630190490402822330459969203524815611781533505115772798411846992205961516110561559347744778331789111729825915746079287402220074511660021538013749200112245195266727772814236324917149471829681146307036950999592978958195070509904095119389709986678872165920804202837302032302396174888066428720644525782455104100417613477652542709823628075077679173937630029363674961454408928083180557971548977093143507156472923496326103702929602794649784401717977596910518170526805661128256298330196120986328978692280846849310187325386097593399388384788826021789037731254323076100977036921437248122290528809969952965144688892355343528177162514262046200903391250442060461351565171933977733144920918994488862130125787505731884221599942956770625754744216671664355190078249751721632534914460599397440769875655227236250619658151116345952291034999266702245439056476628645275711369460658676473498135038900688343546282025762698060332653534892800029435246982304813036404241360577145041802348145309479522240518908588641200910712477227270624310007582981203214293781555425630111425968098704292157296884230396750362971056714757628355976624736789864182743947294701410602722088323479182991241353924974301564745102561963084043584634647971855492850895503415696218112420866030407681761082491271054103436875117134433106139041654096981054861280290900476744757850510868619439466440368322455896009057353947633530780710253124371790222422020604059556799131282027147959810979930413928225680012940029932914428943255415547728513810588953273580116606780882736217220772424945182758238565804820372907881001299260307257315339757021687595950238449181749174540574956262095074489515006578995281151972911253774567128326148594906510971818043196255866524990306771731985617709968860479041690757551319329901407376267600562695261975594113167981932785265713266331133091812875588255836582219304664906043399174057397991116728668290179552840918498186695441109837757817685206869465163425656832879063921760095746612702476535377924747864140029210524447457832544691707288030357178820895617312252696187824504817056670965618635431386297156917139463606475016815601311012154478315106260316990014894211730417260511334014787098783558987193701148375740676217806845126631145568898430413829331840889002938175497981975244658174128321023170454160313690003202711733781647095998965705553646246977984750981099378990658827072715283527822230272398127353069645274958755924295773162039014204557249550274619083401323470672428531456013206585669114716653720815842883797025368315167860726653923833376372194563962238699180953858508828300612763771634616287381479880184550829458675619939792617380311498145020345897641595690488321952968060718531018430363601032878258117622732759514790014115752648253165307829876445713312655798271203117991029285090534157560769710228166902300117855086284801981453139632397939784230926355332640299411168392638773845259269232720744747613284042122882705268095371503225131421770084881917864145381022330702008989430518316141060442766743022605402327103673067376214325225662486047929558649513263068296774144066969666290796958988571833944585618398788104284410657083931954439612636192443739114747288806113689434230489959662874681517306321906212945751233584964284664553873049829880400614207124719880617654133644363460315237396109434695199252979144874679078086021477955692329443360655872893870000009348097944878028068946343498200367608786222163765736155682963014994207756111627964693368472808604683617279278249071426354134579528857817681843879305295592393963307640279732673553382252897859390913342509945617885715811666014152044218781316911586862622094713121465698341778784590467795651937342591612228665360561840759315884372574295902965912500328733638436455647811895385209103827390471692813319806930358035925039882400037392017218238550285529454308124960456622681533375060949168773623347473054195250383099200859721452699804252778355406435778039583308929716926586863796279017261769964460992513791609703100867014296364283438074982144266736470811318846734448424738731151546781276190965962021428254497157476787914065832466436072860733386178572099180099059262729554621679401255335332955190938007364343849955336029126857928058634670381457665083035343965555892517244618453125379943731769839352965163285785398275829223337068052721393775478208007866604464385204821965261549227294636674743570201180097449481365023244612133200968678021211932787189009083563249476419801697803205006685797328891882893000085838494967898309089909810352582708689225947802496851388225901234163356466222391052787197925007182425646714763712124342685634140568450403833907139598426386832830294811881243392240182256814143728681984564182089558659678274912911138095353571892753921466339773763078197034020820537536672688004543045038737986808038046588210112357197459430608268893454181392765908058492334031900942553197450339797720721971108625888670215887890855824716993946707540253688734710797329686780916339964091722301348754060636659848664437885210153400019289675280291238727541449287162706871315099846612455120291595330514815162331213937824004682470597945653228510440662045544416751203518825467608101985721501789444426029228073134655134651470081302947435756232825895013021023321131373690145073906178645284309893753770288642588791093714821427022894611966257656988214520227738199758600366861998396672426068618223920933886057040248523653898945758990011592657747640120070537359149903587141050107334270638457240075876165715110938230687165008631620870180437108100393354488216870906899488783617351086597759558030897634548384639563202204320321431089086006437716624169897704596806978608365518963844606977486315984452008481271515952293635191956993225846577398704213506383755326087422028545050740256853049727230732066681429166338439551491663654795289761690588763388877023585400646805098638284776902486457616960892967856545167895588113210549712634804035108979654463479501947591900413230645385579322331272325866652377694044856858418426660441698277894852105336780098602429919355052819620499007809507319313195891676217541620997364629580449417395177199785043254268816066250810402737919604376513507124502927616692508428418676353305064656911840466373385133765749221686435511762903000856810326080480202854108285060934342930799578514191653424750269780990016133686979136376395631713073826999135776801559937366822688538741455990094250163994160223818233659547464414772606268399460896194224628634695126296720683993877700411265816161003352171250902155776554483527148876115493940023246873082031051447530704492628256471507906975106966264439778872203436153226701840339821932102278115820226218254619256126208477373027878788927019207405837823423870126988278796959133931426143213722983624806025312803726805327892314061811336950659790255677976473586285027788968819934145250282933474043505676026670306344851365472707122138175652131508606593910512310436622341528881028837703883996854206760257807556322410448981005277337507104799629404403721011126877994765366091497740350474528633603417895622288385108693510746186592171481548918666058654825876038247930885916473112846476171635015741482505259303010488549459772260321188996216741869156053202891141283040520153059906819817916090741343379528727440205384080430773423968938693611967221513304106447465306362800814630286107274678005287482824922285814995143893164064947640376311438521573335889479799936233846997037689407570847527027248440484577002832466420219895253812671850366000819286922808703059647954496712011154865433367242866241044434738306382351287114110232326321691212975389176699475493605765567126544258450017098917578518065725237322930208029351830662042483097968844430255011552687313493125258749408773180100655443930129753840554103359908391388169326333314903921597638632286127977760673487009733171139083008648864358701459812784704934428948352760941150864593052701194304468718957324125897800016714913536798953011277689789778616067276668629699075906002553382737340840639091690214989697022616415180927164100784600722120589267986087698029863382005991643910121412405058014145687392606803718511507708269074868190895691164842848640813879040155467618330791046895227454571797171968552117932124118182453276843763099629158677181422111341737192103659722421012684628023365378990453785908397537878812304986079087539147995805039156903261251344687327219214322048783852236577288256094971792459923780639682385917363908331802967325739130476823607609084585995429084563886102460550783661136643729190456351311064443744995051439380708237271121917829441668380148914864677635882130727188664424909108986408601335394739810127483546998212488332301754044560373699855055738395290076012497265435838472492356953590247895160845215844758863203847969943877683286411277757170442938343780979530650918812373085224484729445715865803091482081125214323346939922267757334462773890954469950520886488694897868907144848148855322857194804841963528782500739723299131939349145500025325142586933180751886371144681388730400975058236377995463167579633071893094622307434624342318796782165161658900225060603747753456031466222823683104529855423325049140662507393081441662129578546745999689931046955890206559365695367916072643442979561632545516489397840107496371960668290645760830728348968708341634994572222897158950094996395070584277463213466489041138081579130579602911364351809209975608681263223411893487594624509015901725237161598062646643123843818441934268467949088137092784138894050031343594304609147060056854210788037173582960598237338811127057339749359153293824223431134481310448607652977893253566348527395144975401086699073344025901256867024539732407975386931487823104867186526766645830850924274225616625316425961772409267921750598220021982152323386781358249208685592358439409524403125128207992387803132920484032785891156836944746884698602110265614384510093445671712058703058452800739897705807638562316635215188320783009434041723457643057325113411810317365572632253164731802223242471651764566389775119786788209699962792164171692625654459207251375255309787465710079098876049631325203915493989551161105097565912624460365308100717651448892361668410699178167408576429567171410095390060524549963174613427027374370270526943380232663980409410786467872902829194536252427943423658921165552028763684844679996199656565759968318906011658369357011413627267568621279413380935459888469227269082598177025627190099924089949318646623325061510590859842111081876877975969746475589922019120330206929418777178038124492476096311946493232002636111969230186627778810616444515172569423575223503332737861139802123819814843087207222933030511284191937749983014237325082884512356777375567816734237859348655309285500725724852969013017040558639915599000062689627014285364093938790605322617971118556334444348115266868263484978336301878685615962276031666113694244124171217707980513334782615287276410854539126057389666073470748176167050620827218671926111426548652582114360209229180283868684840307378974138879328984682121975515191746754253162198513714915077361947659743308824473533639176416091162829143166738848059534951102357624586669026925167412535091494677452616780109019077316992451058817396000338213576953653204843223614739247183678654133139393980798444748320868720773155810496692283305932415123439843026395108142971515005063221728405314954299357862855512070103438855590043210449804100353147196953920713695075763094628468249643076109821379947661092355230426045849524096831204855413363754286868810388832785210837385237230025384916275697992007522982245150258872752560746808200094445763695002793506399978797582813768482974843175111810776979030888390868613664050505380625739574254151727331722725928214290888682316979499636524840945192175731662172980601114988616425035135619892505566363690252260797055325681506069977790604861991537768209570452102045205568391947819814611395772095615724870093182419494971679288946886342839422013063492002278226001173722215828895804595674979986852467464068500776515793238608235718708152197647925714755522409599698207472580764214229893697816678474435403872784711505169466294452371425679265806168084753010552738033218326424609589715408061949275682975609471024219456610742703317699496794145052295684672281838843027220852080336430663566201559975830691107459629158808126918854514888420440889745727689504348298028907087790779478954560638688204945651460672064235362410878610019784918240043696458794286423203685293801423692225985092807930096908141076719052432731266592215516533755443589564628353957971148939622557578460857236592706348125269924768756161711751048507770056708147193161105369133907791747667839117736396096644565646112394487609640981328919360216317607006941599481315241812824861873603135972271367074637397675640316266095059990268462937018621818574395214196936729288202743322487580225988814108116001514531731035395609858144207120789241497213712183647955331149859785637127191893340028299365421230376418908490809763431444025456344588861705389921540122675334854981057954256193380538931501212642113071333119101800059977655347770383526002138563471302816618918587849354706470111969999976762451965292122697548020733779267257598307357371330659730983896650857764278842908197984328747004498858039933039699253807120147767228816023982440427036363669761492574241400842685979667502025188856377232117248311528380264826695852123033804564448746695596209720571604187367584317887553881207043893723211396518745589875563399700916049236290933958414813871252598277688773093150300114034767536016846989683992836496305996061442388584132136140494708729795231281629379532367946517374483143582376476629131780665666462454771807731006424477188922907261781976703272401520720160671363398334694938478391532435365657252553081932255857079004104669262094334654187727564377578121725787085288025316762265807743579149377834500161110925129550220164773500157471515337234840308322216876027526784203084712154959144353327668738355157499710005873597039122997426411739354128819523462862521700606842601503761338226335734210713968740549568956695120799050877627012536783013930057689251589074577347856670689267715334232717835271768646855446211979630038495042473551208742488195672268309453544626075492604159147998523984675219396632165853305960867123613811557807261719116035324737510426988194151020177634604659519139693662200534718617710864582009774082729622996008867841166303479901252130070421936173049924217492767169893535822381186628498713420235700620177170444520881644520195328042142203946446556979962798672725964322021503872345337613152943437414476022141226608890192398938656160501840678290887965913363986643556061165748351361630890621163429299765330085716686812616204178151999682658111562742872134939304292700432237595138157029418501597255652274413767099669686307886515023870035095168346300793333362849461004715989433694435582576817499970325301873250937327090517937091041908261211282756495447841898013198393973838597562219341795407159862290435829574381482100526787119437405803625817705057982331945442882210237814832159035047697371704143422234910875313437538364815271413479705995331596808732661490954219969533413677968925108664286496058766734612779912052635762371458021730004848195915114216237718035565924870477873880737208692230081421458893305233054529793373475143480816309392146222910553253003131410443771062748110073560509968888198059408914766798134387616368328609093667611473698582049545027156637805458288513992754497408554539264057099261501692390622213582876070925889713563928451872931516044505811624802000880862307441451154041466969921756951056443985284186196627827112179715803442816154069955298503088890849015194295917022526672535053820051546856564620383463070166203123283859245783866365952395604092988891540478975155789822302712348778434571061983496428919758949963374586350294869114824677939780136923414007391504280585962581881844762618929478081368164617264241157140370790248098272031381444257709250753652236410834860155999746586351839058708870417875872405852022134190620444085087461840876585169598313121130673118576168334726555392016144768742181556709626132099697223467527659848143628455590407254793088403133263208565808458380491984639712069591493195539812768776820865542697100826690489066906867689358123087203136258779666448441880233183045597196335215280717231036771597214896276415400680242098157153333912983036698393982971849721487666101756108903392739255442790829653962514550412193934548494133370412379589482925486035514672634239927814906861373504122195341509679378189231163616684199412291734030221565215855566870024567552191412996443015888749846753392387509433601586265391114038345539232216003939982670349381443373813801350295552816642417659694171137231718846351496090296000240906213182607679234639718947553538558899398739623898035672034370124629281378237321022532745633972518204370407554686502977981609659804598168784493049767910373669870640304974565586829210341807571756228346490103005907054460487310940608046700478925543816436765731995654747549857160394946378360505143158565563034286656803766632477630208893609587189032885632982027733980303316168654656295460235035035542651326916009882703817112921815939523566005147948652263111974140518560884615507799235576832195394675396214024431791537045632921118203590193486723651176988015155433045288059868244660772776114501787003495795585949864361919838171275370088399423874288724323847414917638325672515559145412276324475727266700636854029137179430082752135903943498779827500607233130851525775544737630575704326997091490094817898386626239712068433714847423406177106269442739069019763816070967474931340238167280822240822801215805179038295701285757305504342034818850017283524835887002256519095503569928510061982825977530108364904166536974014230320838902834834532390550113585615681113591977677425265328177791798761862077297293911006900566430708029009606931319772105302105575725211968075870441468963537704082294721363208259294463840438193276142334145449866575341301925603791036844552466543083162882008048667978649137957983822702247478950554882011454692423363768224981633981566600663529832492987758700338675526826219597320435612959357902400428066316443661732710886564727424428316164522487025628320621397615450738179838844568965965676547607753590818634295850932367495683398353272320199530642109735917400690440369746166482354697092582274703785501603583107429920487438642173132459330759393942452343261118064148230970992688413396555580415961368435940105033433808184957182939312516387485022564096291352316594793168630223139983761163816583498976254195152880259767626006602041710503132765223785423347563339769465911251636144874863536921895534101660941107935988162878797562334681247507071282548274432323062098875449499126292360662077239901389898812338497405579673626840918651247541245682541182478164696971398700444606728736634847712421318620757362675503223689258839549165784515449715977757321363665387323074821137463129200413281541622160176533033197707055426903613386430334242159324750178901938535437396646770529228600080394106023525260400930825347751626419896055014901286307676003196987582067568460937400040704790918270684852203698992945020778166242743543779161011717512654932155138104972593430814704684203140519510510312418456504655485455376396319557373617536948132977046655961700417666435550987943208877187604894216205838423205071040550817537240676878196517799865036290430446540471430858311874827221141518158280209125449333119382190786047049257618771613769903817815123274691525385705863440652835359799121964985629646154940287408799701899607775243737410771808228165298200583619832919410976214181582901545885937009529544162983036150668958264282051079539661815429189140380901482964308985932182297230879374901590884330737681167958517369170886127875545949295933297462991459993740266566730920088139228199458534207772925560992031202994234426681760259165134111905745962755592735735927265577866752233164662598027198818162671184360791642132641560898060717520566086388864839192571634598168638979249259445613166936804523157609153832488258969802559006135483320763677124496161579764537539868347801255502048148952186604234497998644959735895970194970419787421398416576733161296758943803476043106327848368002395878521146679971511090293880518277620586798670386079544412549885231264549381611746643658424395026084925965781784462009437288515428783862726586960883581693286860736602063127549597443925311960166067316996509746697114480527056558901443596341697730881438911718163179724288131349409818923337146343547782316710061815591852891837442935355967845502322437533122052557252553649711934187265559137749587738609260844239017338936095791160392458541611588160316058865420365256216271613609535215230927887388627864968235596782293527106978942017679072877749601915117420266994333977440748870192229004045794116878914729957053458972008730167407271022391060785913497251172525651102611763429391773969761611148838468503747184220781721203319777844580571008839962600708396511218243861148792120522461203628260212124097196063290075180518945155570211462822284570116851023267021028155620168869394606346252831717864168370121504526792635577804372611235908596617262815736294796232829339870331694203748614568339269419467148202406361830306608955957908834757881589053481494558537093831292128085314183546826480320493143093642234981306525349121177421850845222584402712069816384173015103622879485713929745647689951472375497114236300585768998617284793329610176174465544939595819964845325179503346498629183023088551640851630403675360282216697237557447835619114253400373535994114249439044804315415668349796823912804609649203048568082784164048135247155606346615385341568026081624303414674015510320073615228615714579162851972972115488112628399672117393588929350407272193713728718577732707791475405435560441482005845266139793829853209308185952163647129947400856079468285797161565408749525063011138766765129719987934361613809914148898304609677777133799679228839026081714592951160561120708092210123878923629627068739588966510493311772323326843415515802882693070344951193205238765077020154716142696061385919362783517863820555801957844072842578085217853452512653805555542374413349379078238019621874035944796994581822734537685361995328587568231539756601210071990256937660608735945406730888004468128382071082965001184740752213519438329742335334885665020873226657211489714727871765404850398284796556530061303957991131501413727685753594914935856655053150692739106929012901089823862306086414443100256864770682082116937259422057336601858471700395242973065643891888230243956762987658418591178497720726770105017952102162405598050608875575285856726752221585801490637168233815404648693704715018331254647196397314082327426213132661238716224110947468573992757044852796040412489607884778006914707501160689065117976098376403973701306625731760919095563627607819013959111431846703554768550980027878687077257467046799155034518966379244548349329481227224462860443950852652964069155507955490853857130219640418308001292993661578063693331790142169635281547834089512429941700417808363618502884433257057176818125445942557892347789904612544488893302464140549363444653993063228152149471451566832114852429956392466410211983651967446124793964780878591081021935933883293354065987919676550003374196327131290138057237156429462555350168591921680238179803650556583642066141773570911124368112295322968737289371662397028444109628042899805548891765572313770942579421792034502818790485352349156235945025679003342243206889615588946412217305230039859247494337767322745619996280839203660221870040622932086852195827987815846195379811844713059697911428750193629219269898729681736588477247179151363582579191308533648692227169210876625346377460492280634511152239194060398667534999843781240521991769959830470839706424409182540251253258657035562288616628282670664352470272947954252911791951296667842801359684674190422517459768522755278989906138132619382169715449372940830185035417867443821494371093774923837657470946215262709502836596966306275446943735733550641634126373633554645608990031360094813793151357500770780536222466816659070518144115548673362053114667945487042052997634691179723201007236595690424806050228739021867181667817374141007877145578179060725174029438200265110045545999696367877857539111817696221723588337961655124391611227240508073226453282521939272523555141628406872039064870270052573819845100798852123808416129618358853154613852199634631538038264393843336943459808699712430031473792360163933865885727652317002207283359499008737986738549712637995060666362548523450009695880322165190989924384551483628317416155118368214657247015090296744093398314993671863808063923414813035486313568654905516405233435853642570476250345272869724698681720167665554005778681374429327166026350881664771861806423594887433049113079661262720651018719531087508074314266388653345984333124181268905988217812200514287069718392825806288205818938346969937550621416118614138191913975562848758420831623557560392776265566545470839268422725099533668298642767862522059431931922477579826435291167933608993442475574972635129371782501040569571654834767572826997284772895030795437830121365969654441444804848314832348336724692530410901605768637208035715752755392139192899135711403969338697855392269840424438871176390217085903446610868763632654542390487525476129250721378970293039300140420392485302692850413733452653183262191383852802942278757577201249200454902237496767104256069588792799854394223952159110435027567266448075793180491508035061857751679253008588655556504187302861904327341760557905507858985683897037410198387557074768542258085560500683481911936001929581766912082007817978874927580700630722763575949582105585830308290443676036920362163853191356549996713180561044215525389078034579363251611103832632593320884632273853762184767376148658677898478294341942641422719616539312671104009654792383043390950980563214005195820055598760952047331960519347842979355213691818990562244768431234261405038451523429419773921445448596556227556003386109725235229171796184513880367796040154374856761561507528244528477283163837233068107503369576995776866746963323041279244511284410088262899584416955544261248288822537930637775692987004292863718316403943460601301556711001736409449884781830665743370702310692024513546221740345195951667657479213137394282081994156434743944528308836450243549067237387915256250243323496999861757476094276150805741191049065456631623055546802216199923935658227516113428586590593712326824926571787989439896075783176430961257453312275068943568199434210082776996194899156971187434461363991903366896760810721533569405203233909032870713482379800624160785971549082194890652965299515933632231026538932305740156105069608780424369959966930756813793915628391063834222524398431119022388465564297753986796561524133927037962235411164873602897052097698704101307690928742208161265415858841973562259320929205988050718446948913303809877821940654228454421119403282411701150783503348772726213371297891228522849789495767158237599715914387795411948153278985784485899980850159490673709593925468594159079338236253800401557407956701302599910812727002151898002016557117002563238110975709872708124677857842502091829801086931465725975739229236414196672260024595697347174048506355424083276912240760755704368040854762648789085432958349465642154929167503506768130466290131492396426688978099392336082738535979135743549847861187378971812443019948712555724537656463228244971353051474561181135361295748154719658390770652396086102238133532239343362157378271148689811138722702990642058368243537128709272486587577018178622682604738868349470406745669120142248590210426683792966296224734344148526443972846554188660242488240958280670807302397213516139781024772530924180110114075075964326571309364497707798109103638485026150088136168335324349493206526028760072782789014207800768012690630172964818452869439806154315974030874803446383100596940664866039947322114743120357956254917026462863016030899356974530984838504588402980424810429490019981245189814513322967668179084213813565653701078139748895427344160151857407597067094171806700977345199893946000790891437211909151664949982901976948492165802334387625933830630568755233515216989126417547271788196450558119751311245751057740773880391548144883682201676799088209207426561997662846360496664125314076626248803917064114718447113838937959928206867674850908756446595335810361844794157477352800761985918170684107671502122526446603143479189322042080620042861463407123453935684383250635961242573653254798998285939317946025846368532596092712977752386796517872739601117124388547352943484791688194908812547372077530254194447773383159785164044128317105511645081071534834114585940986023307857747867704788662993165067031109640752040498581802974592413247007062291362245058330891066359281986768363421216072096028505687867422083584574025708926261216281994792380024938490672468432817288046552640328859467857927655155992312844368776343786236406034609051668207961997318477625222683029696655585710705524262456406539820818259540532766504475693528360135222851348602607873682927141405483957192188815313750739181915864897033319356253925151708268082374256101301669063239233947121048679756838527098170059932393749155471612492476852652130210606410635427899342882632836469220029565942051283952585051948987126790984150948646265502813834478836007339097547552748772964124398108851905262761165460774098722052693040456183428615643565437747570533089239639880757151438191246776593448494049157603787663125652460712814517229193283492642373882799352572679970205354963823133417009646801688524022428756762402358223863898798545868549089286083884294555729454224723940601792424659769517158077757716530614637976104930592487528038026830453165797146665746473969070978168695573228406093597042877290322380608627277872165436468954898448849194856268331590129646211858100503788430112547254769119572073804496720729520843162460290633324221770839455934053269202628947418883385872244830249659148104150983386872167663729807560954203078997526089516260578068056568051945857441436875431754145562152229258896509065882306558152028733330635434995619852778160304225426727639391578999382794296775497698318818548964698242893114938873380547850964893982657521768931701305924065778111494726034152392036313772690190287453329789359383889279776155425923192633158131413576636908118795095642658522574495417885084869059301804029330148750687781760623800113684727577474331108336729017895999309210820915316408771865827853327013052234909118933651855922374410197085681022356498283691775531418283962792387062093476198930707067745214913857341294431997019046546133906334489876274584005231446044337923127371747629728184613598693952736770953825188990475717762713823674344530068330036532567246962740844362078997796774605941829906431436062653175097785787722024271477199622850657760367176572413374119557962933281923197873709054045070064303193798793478106814139018495811473773013073566641234671680337619466173393416895638751490049237073462588267848718848756264102172508788973987325827343352402751665233678596832873387636278643306691847776127333315684782113545584703347931273457408527481855836718220791581711507812860338078647351616718529747030705804501275982080813506276131927587425819983784649603834017814532646203662624673906019569276271152541717175071511912462614784919516905721216621915958317704991953816324878895864263737085692240434470952404123775871447044653293186264096459597907476902820560803001064162415173937370183745105481201309936674293618898118788838006199960234061209532859205167908461107255470437923520322568983078609787344257039619169436622256405302792646684315104370072431693528907678653253077850206576456268025396816343167098061075391234496968371913153614630873865592370820999599980639958708571327537863759379260739161224553436088178990406167522485005303532566686176639740755467448162891868388457302353935597311949928723941519609457016372089572418367212295503837617766569799582308139901781300019331383076279865130218411055983830756232077129688552634479902633400788353823702355257098157389877247589396555157117754973782721599554853433902891909537084776744788022652945265730734352210882989286815623774146357299112701736583751553135960414951600008264121239190536536320081295496956100363325070669602034290850622944097959254385386674392565870222024012692981457541107109899274655983526101383930120502635683677671760864749064622738201373624990154067722586766553579412247121489595744514038772921408408060802952029306160422103424668831150562769694272605906171854529143546972146693834665192634118299420768951528501094388905046987589230353129288558824280758763597816402614001027150197003591008936251745668252019725197961822738954149287576285777882944869246785233494554550857131276449478962682563743759847721552121524473809961718995448032581420174520327546248133405680140674916759497354780200261781065176258801340957905062355921994756297180534595216024597944118002408663300126326646938061614306672249891446607304677276674465013782768371436128697483465000413022820329467978603759399702409607399426265724578673579027568443679541051031133661410390918201592342006099500912706332678431895365004678979198097896340192678987436346753046415565045806773426629263898012795363685532480193892382040839017147904198713517975852195610337795721333787529270002471812718308924668072608646722621691095265866590223704127749594057929557388253762897846025993387333190184531858832699317418391890921016713664164195892247584530167629207985506986611181073946967378425653259510478075730378313406445328072612894240751773430822752276385298722701812517343336546709825521318475732262257494352805176611252387168590778242786101081538726536834548270140051188900905599755069574787685247717074515683746662335073834917464825097851357586843169889245474966822817681543056544922902404878440947852473616651240517805656384187885057880243431617643256891970072529143715594630405575186973487896292443856770048592887709346148376988095851400090234135966238150180064056711782658162571105539362742644400810443183993619442723461537138183688760205224788729908428874478961196645324937780486940114671219429270601468229985768618470791576452941857912447991769082151666825253985200622709074083375880904647251574099964620825750512873212713105614518362380557746587852204267559249170129401096283607267150193138469139198863544141902398052809207177848419380422793593644859424698355437062535007472254575418359262195438393406307837114732091047529072041177259401248960295815529591338711579922007293001987060820317256173536687287841552928090854733837900607191934365392731863509009765613463561011718793801233337467818075603868897669768093507334373952667551534386233978583587792355214832110694443155777480636650415954887279732230773147443138661000661574980824698960020159500748982484177038479929289042909420533319097113875957811719636998867809688452512405149073972454362306156266400547619768199088428041440978402097532524116234519258206602342768139489991986384643477810921558733517376713271241029717297386094596372458604779088771582305211601348215658341799387984502696491637005298621405437036036622414626132940338702917868425841086226682987401334839420745509031730762571210875613204205371108010520923021378543883442897674156272865928762957999513726928803158201998055489176281023411306031297671026045897606165724638317462001251285332502720295490030047326947172824671522383719120858876612337435113489928549483872790410523936527452355714292298764538844107819899610684428436590174113716371397015995768157279728875722715912995626444689020038240310500894405621169030894699099052546824769761019116882035161904961204217701220229848455011516210399631426812937344956369793405146640620984209912896198818192501422791731645397442868938162825341338890524459303961171370784131835981299407879877585973053699021194440198822595240436558353126224380667356248714225353994704522466986508019274114744535890366357809398914318557365896151662682645624679118402736541729879832719474302714021282000226566777237798404423736877902231156882263656981483025805124272373574445109385175958561750842938340589799593604633640794945758184499873028683432885117852535024707056595533152220735408913477922655942114408388387439497912982215565858962321078908359820958432545268387243791805667442766130931653351810882363886512517466285659529352428153020481028749887707720709597059389946799740602421945948048896397067674934738925609154449003808349056811455839575941475067322460660202505287111345814194231157842810718575733031130127518590105310153221140756039965423717827292474426744431448329246656672456104397486979792934080496292710819586079990904490001578743105335279867101499302554962639592875504167654045951988714412569559439613460773559984507787937197796460609581973654276150375560930254721195554059684579282309881907183932176060876495152156576495095638618046505334688620989671987296067271366486128351693893492815137835720694859672739331224994625757491609231716738264356750164749144118928074451632103095818260441692384435030055593032750817242846128068093741911093675042281044432613500810276849373919118821515115439529957643725781658171403385630636147121603332374834359571252012990211356515985696504402292837478031865231419578185219698162399147301492330662729926719006250383174243318814458366399222596770044016124721814800363482338404787992380033533521478584016116111516539664991348015263675112319307764958894276292084033487032372971487892244769157548340726215579494959041792594009053927464261336831581802851983938650454857048447765409133502825281310164220064444411077909353934366363003354425451019045597329230010359232654593168259906828554895634081275414286672591082798858785603627254596537238777397912567390183715614126993572870831872095122642426251813210007762956467940095192599766465795148700721601410873465734424613957973331294502427592099259885375332390032516004205602071052479388918840321520387318596222083075851855085382345495329701811050568109606244408136815922973614251961460057343806099901489889614859263697111297780328104311964917400955377423313193261689236493734655213647867016840719582787887633152550301597153063871762045198836244198795172129626310211794531242094797229341013953093267584550177402784720910377670427296346850890098325173804072425916464329769507479600985933839792929173565217158524860199512777980980956730370056192045735940637093593332551067328957131573891894311577817784988609822033851732738060748139883097872561679512835699589755825873087761307134782873136496473196044705066400178242017115223523556559582361339939878731350188645539218027871862550657287283222292509349000061268070907777106302397257811296347863179946067483926585772806400015795432506307878862061248886198296338872594186567055842668434936543971956295221635338588378811066418915254725896932831030911106467122519132552127130713789599593333145835445750870030646115528167061028089973752272466183741359474221225785319010225228206201535855269936702083570875035564884391702948468628052593476182824445929064851607028349798387259887071252291669935470858903480935425984605310653061486168878668458564392165008843414729243073438441432526429844906814912804285004532610867030657478586754812739114123676936562346952327870289101911821038094471431697271211462747523634686536525622784463226792276807030972341164518384321471255395349071156045554427738950334095331866723992724586597583381099654727137039995179080984612294457848135185111749857266844238766189836046923142826732760965133650609173261690276061395418618227457331175685384036739690206520260538503335852856794772007338064069788645773988041410505482205009355175665313465943605155512177273598230867621652414267229705860612723635735791356055150698060995968222341743742230932915327877639860168535358469962277604845504002658811432229657789490745595387321045918328197750800229718678256368995015222018088474114502396122486646533064714559205733144019306470729755279445604674926437338610335625958989043115403087505050112659490502838782472956720939380158460843518962772028953416825073173677581532461030523097175647328706284185201160157447139471935335605101205220359296242112400643040259952874314079683350012626144602227403979554579512799900025105658742738181170851890936142916596190407361860126847626490131325931105062670026503563268233376794091429679443075614856092899995313644455388106535667761895059914418503876151501789404618336766081147093877749968682529258395575114858738376455610890952968409816211512844457310754784620552485043858263350722281915549747191759676236805651816096271469466916933183087701198014009061828275553240426473629664957258551433173238710938360603180039429760587460906674890354430153608453149256726031032091270598411729300220577341133625366749156244288158459088559553830470563056777692743000974750026732258597370381408692062770936909233978019200053114019339104454366351336225041705154505100255477694056888983490380607953643983054586372865762203722569000397180839760850144220553503193360063911319746156232810157901617372514554005447813977458115532119131067353981911077183675860904289455374150764954233412052890872280335839480485826720849706565940422347932065148621906940328945847254826171282353417742290098291861008479446992485820029704410727853836832379005687291248719068076776932908050744297650522301558080623035381846915671090732837878206887364136909258276017842529189243323162702315979901333377853446002805904090992357306069782665231009463899414876768981394858815498162327194647429755720727918349849370729341504604462840169924141763285880707243696392873239705516475398569504294054315175943197523182730222453671924740558939408287084794365107036698678040930190964379210545108428309288876478226636037306400385187424864509450344643122200369551295675153752990593675983466675588089673844412056519129269594451934669961975454203926068672779957078833979243508490513330362234996936507979604055677815723418361277394587953940818601445222389406007368185526545957486642299353750266748152420242983544006160727302970155993970192827684784430686320042593801112058111930452885253691640036365176810292104671578345085758915450216190196905066402337264291630648531451607113953362522871962045786043843497732935441417082875201562679199881855257716301634099671461088337936992995755849410329683626525427332366297311138158677195628950692746312178674768995954023796020307344659371307257445928034013900914146664989053064511746135208403227699528490507284862557351584263370601758366814444214630908941674606073134665160787981804216185247182222336894093896159777733192834423556170976428453408864097465499967849551850035873202261171882022149010953694172506434986809760617441546689063281271631991339193974059268872384947710439089044943369839117708475700162077615443393059897196163156396423107294186399636406713665054368125408969160455648063426815888870555828867601473583222488177496789577077717274724196012453747903798929263278076380494060157829049171397517069208026655693236584420915686288762245409973908920545241695726995901574777044013107901092171735279081394185608316399246296456789508726784292456058619630543590720053330989255948588966116984062035637610519670755971836503976233216345682772665223876172073532665284661952400870284580527661976145930247677512689483542044057351423839814856281008136487477369032136512328279021787672375733872194187625913879017354590831134665989500595133686815209249632970375132439249122890945200709650524389242707484703920022329024574572940691053741491669770917314266607569746755403288887756849431448707895261729560802181753214823068868381124501011060472849284202122462667197581417097528545909468870909416023025884956969993025512618409337467707450099737310079144149945908191457712569298330597176637545578262432726262086629011902860587852747564275027750602312274821942028908653161495479514384159666525673443530984937091284243202604269605945778861599294750391022357321014272117847023529564723064466356704834270408272332056324204113437223410629162590594938628503163562417467442812674717032319177494764330546674567388643473355555346262039910018821999519637282144209677226023439482388010117483937499677361354691301458712252586659961767857920617115928789183032154638792858024393372277705579672621142058946509496758685718595665221739229174485089870980118162303289574423138753378782845519777160066634624837963073962475476472292768837481006181541229788769206803567069788226811063686631502731380732106264453885408545306840857243857255694245334441828245864576425008880287704783427318428425017507025160641067079623993260315434328540936360516591779900936957896920541074092862880013143833975144302854721661682414497991014279180838670503196388504970738251341738872834492390923744572846937916557384364169209724971025728823098465456540349306573977661102168800952043860374779602161726920452432357168008904992849890388021874889682962982500248753516828931425048530973178499779705553698051715399147169795715261892770159401668391994522955305724864578975944158107930540607650609443295491279445958589582517648111507419386156594365885468663196476075739250034958907459470513089013772032136972894676451407988543187453518033884033213019648347697039226055974381364805459767898193074631218000074006783581317642953228176792628287917699569170378750944189811778786500380841000103442265294853110949980270987982314427644847883946877322369272693853815484693660892353597653102089356333146606727765368094405693659591956547886200424184706652414181641772041106870170913608674053166136406622276366150118397435397070110478158149910911615573333896130905789474074801028864901298425724762806759918047376866517559854823215442128171794510050921957336638338958855582858631266264808716370247504194895014318374664797575532508054765321212587958762060378505742199408546887919962154573342005378598129478317865782967100358690773848300428771632044727300726826865352059331054267752885822988143787913020843151029078045867992629419739577773537017829865249070803235715757070470560957405074888352695808995206131335483565626088639443346558244831449787479869341186999619194445702693464528656969346237563086774101855369626300600141803464311556415054547695398466138189005270829441021243505775863511336690892781035875528394173282380895007332301415223696757237551330767454506712527687219115549847673225601059355046973575737523655519129920719930535653423070118463985515030900747644749755294795759334934410316823490540043795151247224100356195991143406151968432352836202525258377073984685962539948261384039107694731573720163340107905808477832330065162183166699015469161733849297437026174164997207113812950657019673057890631535463324615201824014091210801331159416729862047845327076131631991423466914908223751448845347100685706814754204189615507886778174489726197158656119634085072579212810111434281769191374896330376356494089212408810766212768696232462861630578071913246325791541707185265514461303187459584608740896492511467772688649724727172254011753979903475084543252034879044193656174589930978045515092752912889456009125540247310127653913211065657013666086874708704719813149284041537167462781471799214300865781802858601738776258762545184482459912296337412962583945136384841749063361924094933054964983647196099384398887315483708641773743924590017205710473424848918518897367927843210331655285972352964978286273537522275459326605503242165222979298414984047764701532299189648941939487549467362828568161100481882788789241043025664724046424382829927712342528869361324442193040530603560012666166169770179532767554638146276725624476041144778576543003359345846004860669639721648243909429004526492287188804902999321631057781439010626376226436876121779523895825312705646229929399440332555382867564933813219155318091429144225852296238232465534484889115757983520130498925693384078279560803780780047873174100156961598941140546294077252451072746566814406149637238580887831848085371822797624943789295735693922925435123407674071798148678287556095388023827471717221882834923858761770452370416036588306876759018314620013898009531936071313286696482261493279741364742197632590761323288542009105473105680011087903441955146902000917449195233710029018389530022520646539738499230979928240738420397302405707450143415872054909295658079905053646342527380410879359101547700165503481313222241597278630821133287776333632630611528030608856646711569123450039911019045423587560381375460122978052234901921370677776204703546690086239448004718091581691646522430300813127056594357580057069967334901904156261417675710893217601357375022555225065420364436787919980856722990240152109400161610065037539343397811697573086575076617868587568756738611752955177671666754248030338881895529317674586313214070213125438640079601289977121768183191729014121406830273432085519597040434480177908827006597203538748896065983665966433914526299031731978885906620345647128706062929707121306309280148104084931110273802957348225813512301275569742620539831516695884370670017581809924081775108253729920761282551318229507699931749150129202208770172542095904435148065724001158064613013263513612088691462168439663282056476367172676827665944278659285710491768034111370229843583326774255411732753905286307640193105362646431921903689668624560708472521078523488648320438979384530002353533858867003874156754636960041023279865352076220753069961419150403677212868050340503620333125817421512265007781605713414387159655666939024749234525148312628628083331691212290724332749956353123673848816741436661898762688892082957923530101367595713044174170098605537104875835135273762866490291051112958323039763554112083306818579674422479973781249222984586530778814082096924672006570062956738213944366520366651442350858538450914358121597635336442840549646852126824448892405078309329010772785623049266184008927434783735555095580383503237238379466440946561539565719124587278027834368373902684926723309923417424842013180773871412080632113949091742606763936681922641061454894456886255696578661330186399382054814820188866655301510171478767470974864563559810747859998942872897640673125649834061412057088237972675436266449663879791111597078472621187715611869345955396295323231422483692460335531946378251142495472530735126706732343843956968711162879186208132806341402958896639598747230192304840900669211013743097097530907564533575608726653382276885551234610865744297325026428779675529355038214286120353475473120083365284612441421422896359750626626468472507060942108767548909617858990548442547838203840429128843473376759659486319384664230256733655434163339209684813687045331620988060066271517183681918768157528193850272867313944124078324099904467121986703709476030904656745773369411176455690132247820600367191130432914449450764248338690499074210862606710268396997200328760835562706049395418237895019544220432506593291280344296222679251369724011832126207260112199273645358428286588093858033245035633637766551044749553358568148186042239347617081193318770839008771577104283846762371500907812288595443027404196832861020959395159312107409182558651818516788047149098943750887773843665858602223159118512433366033411646284299049455559800941234588793691977411199632984571678285153714803090956512909069088978436461861238852792685340134891745486477392054401528291041971676541791563478886317092260242379290472759384357172975239885992307187461333509761166597803797897671311983981544557049933888077860022820270418240808079547611332730162030712118769654106074311348763509496738994309397786157790345680368989380977590285805005941835797547317975230323934520570928572911787944493687818085874266079321653177207998300073448892600747410427906695363901368913033692392369647566223051242617485972463019010805272412382587649826504896740406833796121596968749691104792570515809003327410945704241048678018871487148354164429298768581823379469863689848972828048552060305838233840592883030624820232068069402627946249960986828069794221352442934489177552443253401111617901591618494987695429045047248505923999685232332384346828591415846173520090049701525552519255655296468489838765472531052131263866433812050936293329917932029314666483948591761985247447019779196510002959774031981065336374263305325650605335091895145826144324629261224038940433483841514452751394009276283276902488875420014509184427039905887162449560527523230601706401042741818332561558540845829111740594930314541912644833433484688558145975113356219635363326925667727700975233900657267851396011195946449360066688738890040681470645975794050254077019827579522869257110089099157269182921076260828250333266373826775474229976888532646056537766426277027899880137714128374669935328722712508704328431939569497245304396896989942932092221876622583891645989747123143070762067746034343228190102373420845475308895714258012683835428949315817415019552372577164152811342928806110707356162955003659161531593325025136831067373855962035693085225714454809927609846042396271788948688282460514604109915624456099321218184173529592184233717073184194675775301529610794521287766708474694293360129962000773668201531202914955467371856122824147909067881214159734831189769888750013276691220514866532623320467005130994368064592639189547409193940442502090723082577820057931695649806694933816317494180303458706566541985513747272238619280699592493178712025714517199898777215224375395552999387201306125481131526528924333188654124234832469718177826352184706381657583887655138060938302243675205062172018851597513945080638273417122683273023366329946127614564678520845000148479691056083867451474197828505682616957839684736711095134506632132699740384584447044901285419577782873003085869431455615312848925175447185928771442208435542072496444733857108569104200731710733710858192525341776720649676608834080150483608235519722012717989214139556527141952540421233697587206188609505529409286579170648332453640525831793673918695258416715728054575203172956032194475149795384366011335278787658426863469866028623951997067123596037809807198491221766802386063534703674945922246437099754914107530750017034010933945393397695467706796782589743553823455668919419415424596877370153700572448839357940056975574288842763021600145499774095776574211766033604717953839671860673480759897221892257142529330383816870553677851098592708284703114081145499766888836373478985097546022425222899159487081043791661137172029699702555761395863525429171197711510744307376653061973983265792183484940818744687578460688961715111513462648559740931240929536189258392072438762027733479707402529220760193162905624327894947007966521444641976495555183077021797041418955043394180078612849322069589062468544639116619434456444952674701934891572525887429481659476448886833216637861317883387532915511325674501501944994862355163270633259322137902419928329989786754992713732003520110664859460565232937702296750621456694744244046613404361008887748882177325996535991115403379554067538133472039025718285116498416146791491942760078583772325805971038290588805641945002257736355357035039670884066145399539002454467328335162572440593375825516996482835500852144933201243679843865648425460754029463373152794033767204699011046869078799160491428174322607265638264685798097183597424499701451317604519917332848632975829103126535244365505976295723610269035910955595158956523153863111868642456683417788627135683952443726024976769413224189388655855808953919008932893273240872827670320880766341652825023092350892000207820548691313428157269443335728897016914555060639344091301244258671565803559866761798221287567502333783447521578938454854693449903242402689820434002622894525951931761509049688443324247408707922553026767985393152256155439565713808523013569908643950958951507715353788251037708624586863572869616137040223342248649635166341539497601538936524373303500120340506573579656188106194344036757024475608124359915279721659313626416015647532136093205287000897948166445948674963680264747867275073884933670597065793349921624280181241316077911790093029999286474456334083206507889779171704197297091193448756644546440627781713247546169188696886149952609422623766779800785032757517018107541089718370867072221852503133829819048002673622104798268997882659436322778305412346808766941589271852195989974215125682231202636273271018552001736788851371145567248664639950479704964157613422301855279080477473688427505746154153823254591881463284208694448137831273275006543705848736799930636552162022214777825251616881563515747168852118544609016170479556790162245205724516979035325208177269662901165589127095333626335280780852341128210263952468407617324927233663348227375058608125547665497814031754399438305070345836697117251046711068358907893359630336579875674676938654923531616524222172765734797220770899900948080899625994953254864118527168430883196114686072688031384827471809023994561542819702344288924163454613559974802654663679282066292356039250740126964280526526001151725325141915198300212005552752516064696004738124822836023880487790680625422977986170917338461296279605042000162073927491564391640891128737274616905641681894769270124067196504608398646406959028875674553142012857523481121345456445832518303296001842963453968971624178929534443939051212097911263452390512803603083350346083499693289353907033374129195497450719418247680092788225708950745260881352873856020182025445551453453437890851570282818577912230252327010632902214421863900801213059284729153295135275383812500397480911754493415375412828378662106026729338785754445724667423275157956589616651017191217188701491001304009820461079094958682338846259004732825529996928865381347700919186855095841472205658071612597142150935654719967984541426295330833646866706110212370417366920053975013093306691788347124366384805292802002712933942432993043324244699336774351376439328454427415937024974112776731480053173359711473636072059240880863827956425590203951770038735414895375176298586559849027674615369343220584195651863544203866348540768836206658462576773343448421849665431112233646708497794955181155910078994320244963725044415730320310043036509446805767160272351153560536610678719762725498702435708857301276042380261175546106123783470146115500280827000493405421993973366316009792423296343924620355971938847805189355773288766203123235626301340365005015834848981920736413296145057516267839816036234496881563128648987182850868128472375436210423008022921702912791952696088902504574396162014096690704196002049316523130887340616811156900000637188853627263523472915040896959671195338178107513610952417445009291842635125683555590809919051771646167508575386199983947273916114121909444427464959532872479446774293004930062107147662239169574778801804889698264751106033567920447882170543248457009305069727271263682019372414134508911181368265716980887641149836679938499631352044874144350554571237382765048919087201028588373534972608170145539053265966893627521904914508692842683389356712194578366189332634920034609579467186490094078666997770037861387145298262921568801444085313051372564829434143044916662311825966559929148952099692493710051230641480060154218669157109517123528392642892715283054555858115840759229894793291171089580203812575600752579841256612683586996367565923981475022675066164487074186491479270402731644712797230355673304574927128795640211781024142641656875007831182361705581203314238023346807281433115428578284021048308198526103308663900409395293598468278041129675449726766423237599945832627011016796425187610817156711456645932575017321671735799270930762335371698101828176346561566365381084543474695928290972625854246230350024414269940770742571555909863762656856187023164283253532299403700483326196059973478600259261104594752535764810091786844131874299379030797252865631203329990145868649201047704126505949594854774755424267849557013341776180448909084667998736705663469213392441876004393715036890391253283813367249479734886436413378736748100455092325065397523075643708585363195367690064343294587680072417053763857471654584397226932229271196024571052760609881114703942635048887163176879670783085412852840273894482373525966334986391396150574264163621653885823046902269340661383868001262830897753915276040018858067506898135303202062890924184416855193382816369427174630713337774224766726385325826995693584693360586869707349926030599368168827961166861413272910555955609706916516149614717326888906021497098486206777394869277999992139286856535669598549450132542746619731631732891408541988647239120683821002371164957503551095139612419116985116983018290320229174726514509567566487019379373647433213775236730974106089711074509472762616983355539771465406306685510076003764959985445543252999149622956222518643034328871545921402905727897232681666911660796818043280747174455196593645861676640029299517748433234623533025945110559286989592160563878428219960032542771464329474441305171686287601519773372013364067619164990466009536344874630396968988983564029121091818001898740411991390442366882194523232896409066859223426913818944971435112961349568146001578346760899452185074133598904933213022172879660155053827648360537523821696161935612819045538671159625848561600861129925844685603120500137098080380640346473767251059955039232217270922383883972662771379999726394370868117807498463309599971529407265613773298393064383071335332652329820993489920798645617870179725934344115545131154731202885346873111160877736709292718825673569590619104426925328125546515339517665276699249159975932338228142306198187919475750652458393735524181083068107615148120543884741656492157058909266549300327912180674977640414795387019011751957935142990539426528406120404503936170860212714600194251704318305787951186139200203330394658759163306526893683452176614692044463408634508265160598067973179265555824416192704332580837707585166410976595839256379945696380697261424470813514381530124587375018251539352708470700473612487632159661847792821893594649951735719292439669630509379844710308471490019797783071317742658913672560325023447442285113596198217012520462432190754035060811848088642224016266685441463468449943400101166578999241265984160366251505662841011993220867071723611414362192690153660183291727452009816473722699132577672961797817151494973417892089975813567180711048127637581946095047292555510900452973138013901021405462444745829347871426631129056778061940561158782373392242991904421261826471315678024803031331547397724501152202726552915537544383803089310918543125732688673916852373511018760014447286699770956405006372897852304855761883721981538995217015738504751775572435973831035313420285856119315690200516705591941426312858950876315904190911938961960314807608900002335938198631327615409910816982848633996367188283806408856462005522116706851534925681658565105186842764632408628536456096791687089000571632844593639945809169018835193099896220335410623192986009179509639558928792918322496383323721433740890102682644927555974051337073017631510074453953599940666383837183182578939011617592723856193537063305824329966556161948137942274400010456713814774652865005754247166316250989558456279326835004562934526373092914868148452821592513306156373051209988484147645436980495645721330258489532833080226904152507573093578905239238404832717432083857664335657458866049964586800959407272277564723067036403655029440379033476515333532045085989400606372453878169202541472566567031189145022997862906855495820115262955928599236704676562495684370268394743462822792870108939167668106377472301870674807296789334115174787602340165640627684470745487669244781166750888468504138359458215307894473162342409195762990620255770377875622253547627448102084675160157537456521602986934559756396275148209662820953457631317207509744246373248145335910680071885285744182958435575059684736975221126000890416514882374859827261714651743523136718753777129816986646664521837051582143730655476656164156914427607538610639898713318403817488074826501575275794573729475641108762564906714164870392176722816393451019105215999211897071581516891924002560015437313484507993280579828742117995798033687849860349246182140002219597020692687732369221770127034943472670862348245703427235813328321673790713837341497061516447250555320357963371197735622120128541269500984636388586747551370352327886163041468200852002365055931138318184535593876287245358868292279447460536931914714845645724581919473687971223285667857884940286665141562612914135326036928774655467536606885460786433768792073251124341848694225834741647334743147509902978242671270249501535660502132702035508213257196449001733102235956738003007317500615401014639847676305261122176861359266059930859233003429678227933728782181940033961163332838528265657313589581831945000781345451220066320936619708655302471433973214976062857987764161382700045387721972807703274927562971256631433404459932646176631168283370412861271916103103189311165400807603618045810725396422454144337801212012131830101168366262314546364991377357895187349653260565469874361364004538995561866911884462956764975698255674915388293057016762218696211604329318814197624440522834373846453202936106602508900530102576247531777357217688710830628729631805125734595913097619283747935318862647397606714866003195493698771914387298244728994506188790316257694080031190947893777143695249235797582724539135686896432128564899379409639517869577359339053232222121419874616022359964260296051387452668370484964997690496424125902511726303819338095454246734093454932859476053810737294230204787276754723957296564771850262881178075837180803100724335246972137465673244666251439726293770732713858690551821647127106640837956793306419481561458051984521472186960227801034123869276814270205169453105796199739541510166876492180415991805513259903172042158620308334275663784781208855576020972487812879175807772468490180140733664080602950574495783661748861886923861542809011990927397814156916042509042415834569996957164131255471629140966966836213579659916543475667293988828260534631532251013749649771591280222968078933280430746227496468462993245708747208885893371064573957110148010403182584657454669288693208984287902629429169472851866754138287914592728261438698631019691599628799848971012717448958552255618987346505691912759267142557682241839085035785905670784377566135588493645206258509722232780900378002076784258018532726974080469653558814030414048162196902410002121292126048204560565636929416208508634323114339833700524117852172602152039317223151336870864289174475252351139668186983793774953713583117944495332565030625562491761273336873303250821575149216426294332764128300928944073768819627722132666646058479720952964202567479721033705893017439918505352359408981814484769370013394718419333058949985390543721268594392745338940654529719672898494079113816260325985647891405597882864666307694671510473096342227636637224437685122708603354854139013126279183624376847890948379610963269646238681330314275098397835876928849043075051632310767588655285011936398299512525930001185482865707576169599357627871187220612760880266214445428803071488281365324692621378265305449860708913824139175325585177754402395531264292586433492019532061989768278009875793179446289805730546877175421476743724453480564557938784506895199018740932097380286696489727626690021314484675502090392042382423319714506138010890817274297776785683208207693515399056791995162225038843907248274532435810942550882824724210833651068877941643434944066647697877044689771994738702056879738479233189062659384315186097654334351342882576946173872443389199393573051962559113855770805671575678007200209265545194813726816079603801543636057918977056215765848451151236688388931346671077227952176560559657947463520914434788087419690747162481813413937717295736552858664982709437781437998685993842817656708381091156548768488503513541369488619621316530442561287088596464019063087250628213560024679582810574623736927326698979002224117326397106105554604505525576399566984434970047279373931321400813890565252344552568338768540378991455893346368160262580691624405969188531873564610213494793729578460225816025511092344850728942224438189276166709155199862674991028027631686875434135846932767200453907582269259235676969221318938186507867985140656506075513314567353497681225074027349524204348031911743554054077788127606198575297562092448519905868266114774915866969705383948659645506124527178753337691996472072194745322544327589765925938730459180938620513266263688765715242636483463408156065525421831005859954533670047940052146031254215417955172316461952207541328436754718281212864293911163131365336186817520417061309912443388586100047368086431606593412828871487892944845751958997052963258995088602748025447954575092616340011305893173848346779302003296642231163039840954660689149987672141944835608947708471126679708127546504719255532338338582889141500113174891726594382096731624343461191223071595663673270725726302147660285850394673388666528801375226563905012312918469054836421056658003988298542172470658737846735368486227030653108627970438871087143649592918735626618058261451542682403903274093579525658202593572001819129225822170002427024486331538006912618018844774941423878062676314621159290789597452434941012138990887605282527807160223626331735680956074432527819344665512922182443003986304268519519160765720821744448735175945624687071798060234402518505725919628383986347675442118397195376760494284784017557002774483476958636631819524773795202227650994140477625810864442120055490969346064026582665524801955925324013790185850790824032865276746003789824062799046295308268794530693413863553382842857922733693392374040912723149033636448568354500741438052704013669459182803664043229942250967975370774398207923272729609025885182705933165865798121312557670180012113284752082710118394535650113737923079039041766630655553639466202472574556840363207414636416569354106256965868635939102018962753262281181243440017798788627234920253455070858250821765268917785870877516341117395520379263690243021161989313332596657256016743883006339386239851429471425515431250921997976530095443074773295644921798507626312128581815945171270815568757501379459370232950488378147299540734067510670483769745294906389241929840877599279051063039252781532767066260742865621526549868192336517063769664629102254535628093040281515620049994177317141777904046926573065689909065321621605357377040046449440368159307502284001466565521596928607746470922594654010488443162840215402094872904015501355531702765353123615265363166661801419550311678973736776104717893026512280939105571211450411485313974688434343831497565223687036170370430457762941452892234915967243231099805526756521367751246681926359427213115448367158566446450114879929510367505667514837890299488522115634852582145470556861748405866207208365829384811459296087940228827739735458136683455203771090010463224654857484289452148405521587181699963949165113759732592327938458929511713840381131413136526740866985253968869500857447380623034469075156593743056712962178666805297073844136256470099983704556916277329216331025504145959891439211262806991246529466837276148023691879868790082754621368132892739827371302034784990573498666449515683878017931554243915340404707279638508815437522701734277676384371673126768162150361125333315135982613420917254453791089191007737134273747979489660214913919352284039807240832593565750597726541839308012828662042447456704845443959165538261551719749027580345271034244544783072344973569543855895489224304377777846119143193707129865733410649662605393067869772440552229011228522959223470170031864848446135188141360656207384900987426739924116708193456194854418706211478994794832085475293369765270509344318300982318480946312467996834209977604181094950521646676686979778574098550252944549208494055129699248871516140971936507666532837409231308233959014520558282765532975210104187214020750276899285179505012539410934766373609183888276704022378742454196824656118156819134533466949990789344325516584102972231621685671423268590723705046264881452728135123666712907644130815208058769334903507284052656083579360940853225325988709295817803952612203093220954280029313946307437781617699456273838397311227702359672464394240333307053343405918629228786773400165529952512314618614456598560772967001508144673212399041827639661485494468207659250554324535821443311721995720400546148574334480382830202016768977715460208418538119799420250498273508266900467917098822457258388790864541631719768042932039990417802755222121686722152403318270190910719122848204591130415658758941386133965420531159166349712294716639729216901761900116275419276676841587192197170627169670957928852467964756042690662937396129791174930584466460103859337377910775054336790256652036428801454410255475910685872638759276613050964412094287539301348739905312937485115902304261752184938400388999598540714722696431089433018415429301727212709920754187981383563017473062356106432988696067915178291730887970590688470246524697741406459419408314791557095959955080294699992968403474456318814211209723098005893998437304254075911767339203649033981174428168744662176362680386773471380242804014558986711524739877347405061478331975842324880347841780878849494683856177537270899027237748285671232890860789768809056577807372792642007022940948821955937200542532688911950472001953025919474648771348476907519359724474382909168671399433492433251101449905245121697208229234854657479661897423161760670732895827000032927321524712105868546449510287825300895615345303794347773892680210686892351165575691915281281247532732735062993154764684486167570274359550996531020218472691955184862270948013873301870169256747928150945126568444327130563219317061834853931441124788086270645969085964597278945656008440250861407092491268617059466657502485507319060535099866778017371419785925069600201704192403283027705925289460567612988282294908193154270408781421320064674212090491987501414348292270474076882549702679460860779398824716944715255943564270450466112080454160991368834103416356290358402200040378409609627276729163070430741971187844076824814523049303379475305818648679075399654109619970332604984518022050113595832118742891640143626261578525703019735760734281015282578869830908249291936027271197094891467771385970981322906429585718641192901332972190424657521419059670801037816905958919461960472811303596712564517700200049591215759992489614801749284879669367533701989391230621803219713325999027836126805590402956966279934174796254571251480143094463507516286223225194006072791089124013355250630060407820731431440743662023229181997331189682060196790821309397179988237323546086477860803405449303731767364818542547501271758903714454735455840087254871447788142411647008726557147215639979020545147332654288170594491045552378655936656019747750434266030079579587395830067809004849003256394364569524367379679612504572239411655716352859257630043723033456329945792927499297420829579866210626868689532968213269976708540833682450510877477102003140710426507406489460641662593715128147520176075199973791148827981283523639241073980206745771721034727487418201691151675998978781308570087480176474749846135722264772745045978885576219090337250155090333294885105475745103621139953041239536434477345590707229378219934052963227827434158645295973482594637810481791968479815408301043768001136746763079533496869633198626022491641950507542459771490494702762258539057056835495011052755313697288343145931160867203298490646456458501484701095225669431291993817820669701994715009776464395817522966727365517312711835216447918103613432307261153809356804254424838339761579883732526082466367316723036796393594528071998683121944941655920802674258506321424852519257740063135798619858405801325026489205909994275488448562352040358061272825025498820040361897985768735084718297920038415713390955265599175862290180235389736544527565247055620297191713769064114909183040252184970997203830366699354160802252013550019012755075562066985770924280310847022000744735705313855607785013131859814630845201288856843865936308940693075758279937740126537641195964717871990746004041641026814791646867049643462110101947336701699781320082170837074161054046254611845360408018541517290407948521718419367042326496096550308616341366514810150941244366344343614276347960878283560403744887142907162379611380257828551676491797253425796734321092182582684949903675306090566163293408900199869109792436186852581878059441104794300843362681962030630902246187120989766453612830507925786707462552997325167575338253726429578058482955832484495638078018186766482651413003544666315154837099501599826804572540089014585470117860002547212836317609857398192225968229546239391531618265054477761572433274483704130006804770165663345635925555270837832600285051266649537114986321323320714999133095148563106953600650509916867657272717495428878281343618654860938399656598003813480126498432117689250419451518258831937185748967053929806777373263343491719266070071369412012637692629290326877691946153517385245566847587142542975249902855721112526193270355653743978602358818050650623095440342570482390347511646440470066515065411661728768287664877029965040703010122761982026698359293749903676123864714778009804930124202507894139736315523807190729595678022054451099067479118895258769470636460443911192706209219459133542798213540052066120263402013427686081616133576933212319800101995615815104917824231180342674041642816886797373196458493193693820403676685174755646827843424691406888243508162799698317698665891828921096559049010760397881579260665434632849121885614062976951420391632470686928971764227156264257797667800113502301399846975076462954631352588706040193348645413010594153389679282429826551215397477719633541225079070047437428401559480802933550308280952499293256413979627963727778087208144490618403981343429173000486145516224320388023070416652231054170096146782188990574659128381856055598883090341979609051626600001977894409835327871515061217484258291042205290227514319979308175368972237649771219031798703064260527257820515879025560072383424534140477492747002453840846417505582353150951722968052632576925420830970741277052449765205974662884170341277817636123722331195671475352263372813013842299079782550004205285931831564431925664701797963675443532408217956572185370034141314592273559692580373324597182186205166575911430436939886021435992911269961122043850357804370900127913104839375996288199040341754364340020272285046181861603769992005951564369521163988649815619492923554194227766755281345527966545081638751102496345911979437328471153991127333255819662391426886133602971925628508519950721351103485285556594664122189257800696226996376802635430649944718863467270725038154841216349810874206052094986938301752532699161916085486531633448021838614987217978126223835714973230974952664875994956224719330210435097502744630446469480503368074488884548966204316394652702166029785220419207595014614720129121892206017039847474197012486841469915310662886941970887924451074944381417563948082388441576621286621719984891547083495582766737596281743954311307442573598445033887432758045732815519331491982201500434468942049462927812114246935498603232352512140768136360286865692854464630848529788080762465221909014685204495825423984907547959225347111163822691045083936973171548686055446609339112089860076347318670573782139307858509990845365420905142269375530265713550274756802133935852019137411610214208564390734339549846131455702509008012431939342022295646170332020492331311219479013873451182167671779293451726801456959480696824149685430999789819323880472053471129267047708088727641152573110455975352260238839103867725673348869036894422581096229532608949047454448919390243887141534573109878258365655246253085540081276162412294398597774890438278955104056255994788396800498739683319219553711170205271113516800936294206913852415236062868240068681847992567180678115135852233315284588146530287449387741168631054759878997216232431136739659079614203047646155320470888358739251065814579506011669974451468382775638500379971068181151615520509117326919339826352510761227018270317929488052006537360034464519179994166571113409423393618387670316805325398845321071809484045404156091466994818810197941016323265327063364962996851278285213599087818308347313052301585137032316706370088773190085299151307227113718981607035988730026699569376946567530332250504274205518363837066721826169285891127310874801240878207236204694724980693207175720103208222334272587472454856515085676713131556530422302357905793394551729221670457799004971329305977677305410096622240355359585838858560912458120029942053429613721957808771534249338316881628847363918605657259598290950751182719171927912594066940906218132212360585624636815465607176320237598827392335006081332108959826105730986423973184786465114783439159648698988147788716840371480179107500389607426159478165516393835802324936435622483403839152223188776035417223513249007172863037949176738648156150218728035559924994326906587353283013977524492998484838184072891708112793408557836234189950323982468226923613194129856934640546353270578117707828556096217667020487425228300448281477863881029586758964700152390940302862765739447814671018638427957953086106037214906005532992177861338772594972245046131152237480538151107070577600622270685839089791475211801588515688923799141032368327821554123801402483124092611129091065882350664281803478344902050609153640823431910646162388756142894938543082199690989342328331253466671848672075055333437989844057993868074050660724295952031490220191583617399286372233325406753252824805063300943456917357978279007492441043507149147795598563127461426934893267426943153784993119279394631300825029047877442781824908396849646985255330240237998639243551267689115857952970297088809776227749478403973533475077222598188194574944898053989861233706499305279608366738141537383104647418563652043734386191645834458016075801089302605904772400170782952712284434710290595496180047918490021391466367180402675737299744109884211347003908990713783641438151920716477922324588301108655429853149753884775843427985921262507116009261101405801893344808908626289761104912254089943869386427717597515209147196699307230385507815456614775479612993480609741815743199981333913977472777235009603059688974417582758071841391270556405642699005246952089609167271243592920036512567161993454839658934386688580497950595960590866417247533731963094688327576318907918521916181206481982121721045561572163757404066705137279182590671241640697605760155927803439164114024917815344020038691566655829445212586490634792642820754575423362672015891161272185969988887977758391628599757998745057358599089841889208519674845029149293945270933737089333455549356153478990537736411947251170473669643029938317408510134133112432817295283672992925309402851985245775369167463438654772813541305220687213787371457491330872777566433007347134553979423209594023495969438247358533563274672693574100620419302286645763814202083208734118736291642976916060691153982102966806924139972910980384767590117985646668529819617940806447576075444800183260868956225596959389750917905873549787648457816720372665965669461635893860563952737099313799664323395629397302521546890408944255028498786296260086160198451587328123704504383643891355705345902307369218379805222250101217276282289938756021503436083928260819810001928811383050186921966987758294037354398727653922821373339197288053207265266844102251314934669654551852273594804730257832260462906224450508565483314038814984924583356405894663472402938348551472689791011197827416596640813322375138304957198568773871183578303385043426369360269576341286007702480629470332680982105943807237043128818366684113177657880967663437993267693740179656531570529137382659332180805927277861348791877440772214619604308896448320414969294392965299514143064148074181525413180612644970235673688487201391624589772868293823876836441723314783483314292563077731769418609980964099701035637051249557684440144470631704032473301076696620172458046769273226160494359635978787070267844566540791703725166057103456539975675744581956918164986364200721552687030806768589534105934010782242891347734532337912728010438350499396989636955592830138869509250451942502287188594464191334854935095918663918771029462409380048563222800946105385387252159533499469139449736838460324056802697696908411780231306258164893538116766786507845326630298064975806072198974234748999201504350111680437512561362847813759186245851672368967119934739360016414345817477931489035436671769169803212213836284609270166068332410455239081844165048065242663441951139070551388326820048796875890894724244937770266384520441700693748573421466514802709464634257163038886789579776033197791969767442217418205089984160603096805631080973308881488607033111781717987533482151198683639876639782412137459909368246755215691709337094143081768881271286213121951376734956369681394016737512956305403469945822569742481262522796819060856111690284728841983872228239142159619818315386065439870898618834410549675834585279858409526119846181641478513679914324169105423350852602821250889102801978257790711721216648304609031527336085460873786813067946485929137686612426198724745725767735301146713472539384797505476974430936027129359472046335803148697041915845522985300932579101892633878138242513521938305762953982484342728301704646202019433185467733510389663832795732322452093528661440902434043516203884225379179260534393343924551500991150738832691927347247032261193556607322425076373509041453937247231634302062642083547301418214016110467837938143582614668220803880256357612494451784117442335210100994976251497471885309714628881080854673040700885121969264143761158695872560968527769896411650874929673727629730172795263548288230668592111296969661795899744766226795401460852636794529007796766573051151957361541902062062519016894445296751811945139489538691317294991029947089615558647888593548203872371584032002697999065658726358740515138820921970289754128046290680713999170265936062621244365669972232642439207339271468693828369883051045775830403021705385540430832815528120712697715397171512769113891851958978732781687265670314783200946459627131863450199283480044323204976845268361700033690456361939236132039749316251679765102863669966737466663863139191735480729669086630579224580196392756283727200765425035234129405216675636820238127326309277306003070101897986752316446301567073554430935621171968460044170704679024958761506031524600894810951583377732059454967374266149278730167630357567911568322460470085938705374380242030465042831901784209526481176365663545106889024630927508972026063900227968296415916785126504421210072822137895457630396598455292711711007756376803013092657709651586063646308195467413804615164311339486742365074645235100256266877664723695474501151717718084141532586216521688797048076593312615651974551477697401605474045314758664080976347211460490882167251214966347564281667424697179166825472326036852139875855560747829072204138957230321623810584656908081767772510455036997260346969424544330624810463621699564104239998436083870147955958226106721757558379644820471487782723747117842168221151740924135714428320978989652075562722496168350446012427890043772502134937718126033112201105755221294885313782624706825266856835003617583073736443626833815116412637876007031088793955652770616641153905832857299136494967805898548008363187195901609458037334856783831313859116376078266284853892782948668385733598529373140612198255851362864743586571887048598958784749362807389224262049135616182303415272024597812434914423818610754572369403721813792812564730840592877246747012557545428982834370569532862252585493730244264071058273982363829129677225493485452623351944284629918549668007879327004675058471566458252930348871496789017436765728505665185561083180045980953380967564217320915860804210822553669338127297282051207475779821153913102526048140221714931598288720646680126826475195723331035207560654716745522947452708616576767990349692327336569049629771130505800312367346841498034480187787193072215469696925500850533149414015408995548078165882136869189121931168127835947195299700427712244125515553068908660966718324052641260893565560994350424147813858792998730151498292304519949840523936285279090115423758814409203508382517341001827877852191662931185540742465947901676753630817876469057047653954618354670323934140308804017537593811018190342692259273564458446787218918291654600197181953228746539992478529291725686317293761561311962148836394829240429586329175752957809110263584316280322262207976039917686373693960817384382239016523205516816627807709789069557052511616666581077837546700119376931069101960015088061031805837646863625478043989085500839331337936293307296576826550295639711260366158980107801973927317858470767120308196409329426382673236271071008869475685488703392579288161892327096627262698831053391197092799954502410611084180497001307093939787521370511265120387289092501341189407654978679055979386576394996551476144950699904645941186362411041904982873389640365384264102758619571805539349935037017886917361302255834163786579269738529614691921448147808018887243520856981314209816145792941055428759570925277285108617278385209729299301009923507888963011176841486143306127923839279972819709102593150691089916057632207227574814418011212413398923619392321831297449954976864832325173538096594365954192332192955030479753174133736277504227357064457707108129976052055278448615119488779279672207254835647436758378205430711513083003351812235808347535572214069469517115162998674843108621276864862724350986822482326011853706640790536490721689510670487403245855380696213423788746122703483057285031648142163045746861590475296807661961260535449977420300544287423971415635539772487891648612498531160789693529096471230244574283722783540628989749821234355276922083291054443871135746045004702504930284143099449265935227228196067120263933396172214637797031771657539180333009971010691029000818430571734245918024717973254686690845179621853629947004370909581144252631368935905378862408805761637515406016270142143845682561329939550123407471497246192491791631893914103165180610930832153447490275207980330919081790442167522539578700107104993010228363619073180553268557859728301384137303821166961359378335920125089951447389492476662939443431268793157004751572434154312054753521055722805460202571217487460980195826857104309613973650833149246546323528228856075189739923256968341797953978573306357764473655356012603153999157208833673971050291635849039021147620238099491514978725321774770037469532723212284560511437379711077790959353017224996900031002624727498203746732908347932321713776819686178859879563081669227802549679067456144839241589985378041148799507615792580143814366788339839497886648085578134753393781146018133096277792236120001221842515313044561914929345605476141567121917083926829509224748858956023258834781800841381438432036701747877638615503329203167344637056433311517206489150620097501081070744499417878132909156367780250817062444798224338098642107594309394258934408821986699989259130155485143657516692446725285736133107563689091090851206492567559668846705382696702778792829800596917964023092254735959804397532414524311703090499415462014354303652412884978455139646572611683083125476076789710505657566664691940058966132175227245749784249198196271812356038151953695543825595672529211808033402303668697115945272414802704529384629016407480498672780850811175367626378597993675421085574211356937504791640878808615581170539043016410942014784369985290884731371055396605076999059002857494387171597730700968334159080126613706012523486900522636099266620077777894803721879391396055687297565349283774413345174436545963425281354837934348529586147920600514917005996227496433092681444783484867153532030478407573602344467272845498406694776229646803741037500756218001695952582390841010485537602110274306489118196214280881862884591457533435298534667725272747646220119590067259994856996949142704165950556362851447548917802914998288755819913071360678859377453385621535271477201540433107477038171905677699209842897597875683037886612975118925257749431360231767978060793242231270919588536246044903954172551298695721946003210658651555889485933599105165882373910969233211427383366354043568153861295781171155512360064247937360951724120789277076137176047853705502412397304833482146758773565310604994470905985553344640612993321229408580850902227451446787842172895523319673531571751283276501480796746995705498332609846283194668296898697086760299333637676343042264568068926458092402860397949823949794653042328341706042125046934186540068943537762246692627994931899458326560394708188360511680716467609330319949518112443154069030733265162248339099581762042054620670998816583184738699968410556616598159993520039761245592486625480981543245508352990428253647145306740304536349329974271143683407984637689936137565194180266970323481793949353383504876780310396266426007553205283122130648447886228043557323818577891193741900934651113955331189486514358070681815720718325896868398293079857874828159744330677859080299938661765682108039750114768271161931077618272447189107841310990130561950089956763946530821095570262223140214601466741429401059622523186642004430528747840172639711238197325432266438602654794200687268848913113921392490057329450820902679063560258176544475708883353728888816655925373220873223777437646810241137018302424745092745272278533416684686990606809838763820424534902791310404215370233980393956319790025572270982708550795799223849212903794876127441235910713119297688175994404505514038602763143816726082855184458829616334054934539936280210354649233198602101196933789425579723095894463590072856508315824351952413466225116217556852735407087677389473495378094738317987505679698250557494640283291538383354425994524305038523361557576699219150119931729497425769630116929858173152237041365651446819661032886020581988285431448787096063528798156877245328766029452646615287186177696327471162428392678843862752477843765899012898970387807792943351939912294584527991429553441032062145977163437538447764615085178723387572241615672287808924602733005645341494700529131676176700091080172955457799820619964771066863438796227429216313243016650038106315245153737577847392830610337010757633639246789257177513570017490558511864420313835023190943599896426891332366946789762180497247759001491218834090287414756777600000589592595595922736003055320579832621587632534518532043604297011156169762034200952798220525029093256731290982324061092626188724777262327255641051742258330237699182967895202887548402966940028596093969122041190110772064584824981449981083674650248997366616992815362495486774915478026211932199896421539973957806838431776299682038262501878988912732394530228074656347350705634018821388191490222560773147265347914498514133258379580452158453483521527879625590711479416526086830116290639205973133646817706711727840083618416489145539493668416773153805309454166771187140883040039454567561326083693611723874294514888723744054077009466350687433421511558565421223751392490148437749133426162962173678154845449979888090594203928970388608893609428478809540934210079076644617854493288154104364207945782931365783709605898550315110691927207758961427928879467276929491297011567541581248318935598819128843290511928372633192266264723262460406224084536780242576069777495185901524155727702837621248570278588709212191071685156066334474868592146260637462745720475974784926748997458229715301337677059645694746610269779425810276582029639646010491910837491588750819066641816234881889353168278651363043285193991327422832771205315588973786161175373504069752765449354130477816569948923056532042381534719201424453473368928050931847203341273068904667655097818930073086636219016564348329156335742146983752413556238953127118224575271054329585280261389895576180656717373752556337358869234314264235506001994328178826925333770191008297438960670475176649083502890297512248904999789518440889733721326964150620135845987668198473213873782849986884871435802739652419176828368030015601222984041824875287415259152755718899238470589928266475526341792719758076671653010699098345591793846009129595506133504019830225601510311935772089646211609433818542290678162150170191125020299536612808714902392331035467240291288848492304527076062425295159861691257002098931872164043926257057971922424465485919759174511111303958265670349845801233962070439347089836453659370934491325108529526422394613452793150931322301136184041991470678402431385281797419810257260770432090754587521790529494370863267663779861329802229135058057860677685104971477397350368293261295260996094391367552245600766229490057147411891747009414614427361873027961920238979018708235285231433593625104401984718819213312009856352184194944906661064819793914905763681797776584151532958845191419388761774028849423496872252972722203112637502698344828036454106648224360985509948592534938629605658296486998851549015201972359789816848641969143180590710823247022062531831737408197604417790908540423074495168587465285806242857896814359933541153123164191741024449561951021605325700058219296113694230881512023593931910836642617621453635054966110574879538668309385596006017616616442361855066781915896944177244053467179667011894870580385243399609140732149036398598850361000238419173651971559456955524900762494555311938400640770211454852484997856154968140220575942151717875028518210764911176956828461183978117981463335808444035778362868645898114979018366957337823047241240710373537772564017625511621872328793390405736873801057997188106412421455248099211271753623894945981566097827126068308275020118790672561520698318463895036963723875553547027319011395042903693936655772862905176146215227371585375725945039017013830553081813256996000008793792472076977936650031678351860127265379606663366264868656342425052653096851262604405310157047503119176316292168929489459527827132122079235065046884929427026167996778754713715827554917947867067115584561363211585076326939421058702537696070466487570894340360221830750811668420648305049857817620876005409219436014270705268965634319982754738348142144266544233626118995672985183451361038119071631428986454099820656428702682621523355549485086465389151355538661974612999680123540634545456799721119177170454215868373520535546571278094793210468840687680601258358237148972636828665992601662121104877721113153108432612367067218244088769271161122609552455700045398073925131830194365213477787136205685483111827509626067114923533663253958795128192603453570575858439351485454314348900082684057776723029629925586323464089959537389894225338147166933300098833549788420795502767184784683838463487249810087856173059808693014349132915691791705464899564934171623315709128835223012345899821433586706994641659000363561967748335226106025414235262982339886228948963088944358652768176570673135020001739426551901197806179146880179294214143586986417456895894862140084397391614128140176240334328747784647175601278070983674063438323359551017185932866791290983484374657796697277696325239753016270322372309629019460388348966224130225280832719751019719733353556002246485272371772151759018518456507415572825018265671798333856110853667757011875367114932620540311358670746723445496246893725817778674033818466077951390285675997937966266572303524032843129518610116295486140752759122013761183952490607494408125719698319738950918072692155349026193251286040887739490023965021203933680371290665886542937956394454969697117967694773140722600817323298064868636556629643968689994025974366027208341839260224157738569183405893058690884048247696611510357920108692190761528309578622480059814150745214000618604085485270216061709681771112146953372928104946896728654892508540866728524761968182980071393679012544713859247606542812256821152744333420102177397157008878673523432535348524779846272106551151862259100246636520923525148984889675342086121188514107615957231811264266900527805113195976363342570650760807877433273456976898784236253427098929173610300066758581792586430872212118433989971200276357339094372381688163717563004656684442672816652257274264539676966406373778899942477562864929735829545913884477879981696455556290378947385772522977249378012143595998826956588884639860588411335802374729339583282948430790432966821474016007919076917701062812725739884874356374585591693411621347020008959525453156642724113445147782763229628583834111939457975703712790191297358488268701858334785380293585981186616876603074509771847573466657058793568556618218693677887962998822709088253882126992481020447579805956797119201524716725719568988570558527401720245282723553263169815184406278852900223240118923925030188268435100800642709692142144775203647279028548823826133555640918851851912391217126301604336356905437730344883699114444134261667463145054876607643159727188006850004564058541927147162166693117122041459597943894050587299869994510382829298638430239320187438742958889906469115739025075977571633627026168079218942490791904072650079949871493296723166764268605871921465783744115567565789572368550033359626304962303089915529459975446277572979723908255379949030015844813088784133292953026272894062493505701629687309172691911128860827234876892198335771828195204508241710243169988133841566162020400804404380129230811554726655968170908203769305724638780251420866031555982866710116814955021449022839401872426730027100227819204713449676438492051870451756921116192240166927563754278760859885001234787619347438449532282113851749418171820672789975516853396955571864456765512610675892928753056740600932336563088328525687528482912907338643731500354585458706305516275170473999528182314376482329458609856269632844953234990389314511034162656087427066788637059784895408621315529412444017689797872128960788340838360907170623285155032185940291426263313827532448144991207281280141874951247386793857279168308344714813675733413707760851266905554850941507318276596185468151475767537911303348863316314614122324685973894271489056478824827299557738965275552246329454821858897689872350715629054417360117639637329829245342910765330839573121418432523486431675157821657281357075931327201796759697409400501342884833044546891271385765842471785319132483002927761829487879898630027770320538284596497574144457051291797811406797696274785750273845906716375364678891274786508846832913742645056992003729022040719120761551495919320265737998677560112659585011792011369933242546734868452022006840338555287530395467747550109157045752782052845218375401861293179054108465681988890099868566103633478098255683370634539356355671274603529684635549951047170831730964621272431169485707524059270758180203485490087886324783861956538776563966510579100752219434813305137027885842796326579371751843675264598752437128460267838583183954842589093900807471106577974044527449407896737542686352823416529142461939648937302757920816386699112047629603912001337307666801491843051896748229666868116611556552271017604029339251043847811440728287438699327856952770622323616256429724611152520804229537673178120786755306971116621579349339830168814668383927869120531105703159861844952038852446889176360969506631838315362740621470024054432614244877818816589546287939073785768807263909469066055271800559697760379315992122777553191173087784564156230877008149375785923813694609694974513371522049672669332223179050529320676927595035079017364702287546975523731175428022902438776645823987514246146152877421220750767217621899880612122921791090911552517846284649117482866885812887593429375482057890681199546278157092506642813495876663645351381380428134597571869133761377844078347084797475607820754766300384026092160499733090341843634067125154956593400528747307786602494821715194280871426707623667649108998936072720299837367192581632537834063775989320295410398296672100332575972180922659163601079238306737142832496654258151720328874046893300618109366740770389505327440677696324728143328573293247035632038038172604958112662701273427243976659212255795689573454117453658485878750208346013417584071890929043433527498274414019742738782301049989266294463094400756680506513652826355552679132521326110220381298277407119751421726361456942611581377923341364361847928053242621103912619003635472122954262631657155789945377996240084804609761343641591546551476029330794061205143858014262750577111493666630329872029499172801548522348705636812909440616574566466908126621809433197032816498199312200508246113657018639490430908293183129776887598439627387895759520748108494481846174963325277051717118700090364826070735683951815922715337886977293458419546041314434093745930107182310882856630803781378370444248756865057473321027816396780568522058952665719123457106203094445996326513332320226184005465936430795820126589029985304229680264735186807845679013372791662470025275943084835838720199731460544887401751736334532584578075324452070714556788799557196251330479508639398655434088617300365643979724919801068966314249933144624672594324364846513002480754927238485964648057916272680153258433440820577812511984784263558160224146328599855672443848011478341624485129418588575052047167847363050567900539114800334512268674832828072187048175374887563559287126358130687256980851045984511003575051718903074392922023484778339150994889468182359246394162978298609340620240105511476553445803513942389766928447696431246534218115954328832781458009304000274112393637937287107135448171765355783000145666444050893617872999854159656332582091137641476749842471694183006868478396833521434886058950698679005948809018437544424842983752423756845236765388201725253043873308532589861952124889949952379673913831845188815591202594654741065699518137222445686511165755931852480294540265960736915268505295442676245800096137976030332108476566046330739259594916321514864279234661651062269031081285641258799537443798554112850077272230563876990112369883364841653251670093120644953643451081625206666906165451011054351970896341769910356132053834188358612976759695555745220412293567883397578489222885943527578693722032487185515786445931971276304698674383410896975156698659191886104101621843373149962529107413884597039145349395368174453339492557236419620390300685394741164848695717407514374830680157857684053841972074928096843314155932843380037212028446435803480884090271436422413887428760011048701960251693742815205240198995332176530911081589279296677617864071793119244291548259482994835168405150315329296409676272643550789291749689385608207878806511975498472340353132797688815933828473556048584818975372182177140420263974553241476305619265204864475616915836672467588264398044376617655359432573337900507486055322926807176176558844621961605921094357135201191732600228116978705198583652562065456702899922583089530588714059377052244350880870518914087936891171316121012725530715827672702966983516839288578465653878789698175414698890123078424998062820566337563288488950979737273267346465004755124072403726809997520438529471596901222848495766868788757350109512046232201681409376561286985274674383374794902034514826933204372159138306713635412017420490781338498165756133484556755683443123776978469394253144273455279924903372865517116988110276899390585371252111990944891032491413199721021819184231756781680623010409468863304412990754241321931870375657426468712687311729420526948033376027392398572732898832744065628461252321738647287616356426427015553288116068999659194668999024120124238305466696105646069930730138855385558159815097677351080628743807435593744347225345174134293743799581807742883305047867662536428319155835318717717216011212491651669099573693230189598168638427131142497919104121066172940783870630663742494476932143848334683451978796019488545298614857772812153726362949824342767564745167058717890615180159375192891550518125473355466206175028811418704677220770066409771369660318068498687443627158298256980724249831927294247024213790264978668512165707822087805879859368228644709828725933312038219551031821868816014681871514962578154106980790432309896973218086442739417400886104467703738867533412548496651522002212922432679222755196749912520149283273223840852397985675298538912154447001538502896995783698586410611749784842527981999455572393072297244375403959210123820712874268925683538551109061186929731993109986049966878948576888851803606303514628042105073601043092030822119640704492514715616074858194701439242367170110352489077760155622326775969492476808400945226051711321752587460730299222581461542596858583231729060649642769271624026550060346815156591836848696824427287141452330136587075875126249233800352424862812981812312541295941642335352417085897038544899362873560796331831654158823029057212775179203217307436957338089860826558288321158077648197534101485024277168207158229793285733187170017068289534747066719421444988373516996003684761400377189712917870275990936962552648273563670611767146615051030608821948784529778057297833824568048868485417006661596903969807185991709718974684143458853809641802001518354318175841680836293464505422109521561544055300216327992013084343146084052120332182050506764821601245898735166415610876378737299531980524519177057398647567962639648216633059050676432057779063223896971067617300379560771115609615470319234046866251331129149987524011960175581923031266892436747440309466770139114217718173400454670542199299539631043522079831816109917664554890125054315715016115356961836930404119153722266624550362830036456487198675336054722564997998431642377824517782080966934685449045812905377143178249822880212386324627207694812695021084150774911287486763073339596017592445220007922625088511631899991224523090339625892959088969034327313191328962849291102609380353453456441517858308963383893999668349100547244313765587602617656336168616176101895641529798706153812364341681467315884307890394185195622454118606119412878743622030062009461858335444626322019870400589759503950788535714415975609236474618568062315152990550194396347684464523515686459530008804370658658971652684087228024461062660306898178657713058228532127148568850015834864160201090207739932741815143013285796378553477475135753811604455318563055608364514562158848760525204430264549003026652903700961902504701066162305565103734776052754623517045432128588632583109855837829483148377465270091524579640046254220099969006176847837967753303722902596039418967998732956529872465766809029525043698748647343701600529255561898982335348072786597795296335331658556384203279995860332175800993056494063029577586356774710524528331208907616623983407335912075966061328198033007168412230363513658927939760346869791335297144765678571718677263283032689882246979615149044020784088593863454660144874701044413722999128586741965824748275516028128314991901770384895282308785659876198873230473208311263122795501120821932525034601190741280000936915020847112915873828705779322730023487099210196161402738113107141203322701534657912384289583245389748858806364854575981970459679621825182056119980135934951492284259897961596350579333082291172878183775044122090249688259881517027528300632515027712533445800314879930638574292465958006930899920659086769815357210977177296708744036414850263588487104145566122421195827446662374702333662835927080268913338392883535444512243073849829223726751466533001554278303282728890929978222493506726216436724517021548164462251613438256782993811614473714353631430795211876845066181972692747013891369402837990886191012982116929122472494582297059973663755193242173575663551214686095770210355494684894845489936070716183447492718154993741305391338997515341984287878736714777328326540415689885263013481731806516486312483301830290527980451097317143787547261966153224968487038310338487265077888040567192020661831406652804978680909961889653461204389862725794461771090209487936409190331971628903602840223948630905339832400281278306952753869910948045306634217573056200986776704193774378942186137595235718352582871222764224331300675436841681838164149036499610103114964581145467979027874996388059962785199523489529412417382890457636188974675564611449339170415313640173920651836879879441448332374452527890520088608494670399650459484107512829961672349370971762458784962503119242186718148057272157040290733256452665778912743371709003618854715974896753178083062000654103282743585041438742796476419118398490198812861367384044003010403039807292699886348368967625149148138574812174771188372332255359911807660866393290976119327198069771153074926476772398903192199746163289560298752362785537249912771167583429461846004248621842382182767956406415405226958812175122917945869656721880814132337968961546028375496372233432424425166735430261947151062180280815763782237637281111445311028469972583602192987658666810485895492680875611692694344972892197065071929692909717598140359518510487626103252017093015431039592079081417600976744868907222688639581816943125451243485078551076687304214668104218286720027188882162542521039172977705647302787779430693972564676679183692958697788931498284677186272718676295966750829409858883633219256073919247510721861463785253951409574182728128058411048195474590779591763648158443193066808973060341997042105196164194976848686632006193122218600676481422690290389192690372130625318781471296758137255787561577921213779691497638662239751220420076277744245227072624388066176440049320244480159610092982370651658069260986119034186672877199575244420164080867764571649013130386829673610275372122849609096018364865499685437979130730476724372523434534201065433282136194257280602662438290690920564768460408603513282689938183105891469125081845499249630935313771829241520401775055506104919859792711253193580599091326913775046709991429427498046580346844168245976641250856285207237093821043990509335512070975978169422508910668660379569384891892300080518609617530498556670010120307572686662863368869418482703232272651973633924930372224979557472058337116231036517363952614409325207464125146115523245951331819367343057320855700707247018690836921764459941334088740322712637154633389031986517283405855446488632226117333216941317176352510872543581049317984895801903758078624390907694258505843290230301563392644514391614629421570498291771714699485183178246067017241106286522670439122463838498685957166760224965219849054064150355458257434509869726092813397688439381954547292824838885425511706523594949344671147792237269146160691351630328987119738436151542887066134110966494015062890389857284123656238837441529066772997114958981330430289869522817772663089967026158057176047530811099483053193727461162035059266486292334241270159250877276181755245483377972797883232844439470831413724428764023291508541495396402166545685516771585906528283955341661588578365925755241069484145823886510790314402980792765106070985383815507623547822569599966253432632727137611560412735844442844582227473566484761699750257587553364661770287759532791709855732827518641389353487848454734892042756074925309114193074935570373142237138313444082246383062089390699140926886594776202029962035427534418820562523872023646392726697139042484833346731201807437374882776327086074565175339879642447808666715199600820095053427324813412097070155001963756101126927931023144676660654825998452162029952910004399162961917742217879405494456678551899927155413544744592080572246254382903919233371338382665981102140954876626087383006943309127204367447716550312033657532980721529750106498837657565361151560709357473255185734586678858448787833794793718157399209954213615741670573503850494897617157926318041442695785256188963014894670136766935735479862654672789030257762980669848805099416997476444000513048679088078778066753292085820559404061179958611214031461584741115274230962106275775269337939403847617720242691022950189607411507430833183999218913341240934555382204598865697961076597786938486302249421804389879661765058089183369462504258901567768715486356557439630040587706477516755007336387597970298506734862840180646009822603782558890447697812031169169902204162133595339948394879549149704037856394160719143851016222601350557808082844463637770691261655608534138652396635585155318376784380861890908295637762619217717161355108893106676288236045077257809222739209354728959401732356890336765772426855207486987679692460725801796572135278282334911221152311738558872132343942488668894080564368075665335640410111082373247696694535336511099952255924888924894137185201157483643640353595327686361632582479758358376260760936165821518297184697329216433914073187983331220635018702063467300952681552067023718758002775810505946852154006565922536319428993389561549039185247184991033748212879284421218998127035352457379166004231299066563949331675894151024798507872793218716605334600590681352867838426846687507170216644750676323922813935303036030905430625140127980653703358203577241656462539596591600251010842298950845699065581052688257303992679268436383671104686470431447869454314763558223807410340455096277237578057049641693528474892942395373587946390903332884931089272886594614104905267804032631299647753881150720612679627407671215397062533746807580403152656115306175170019689828707217212157704986432577307621427043575913829592759397818058813253157171248055512523794804036833517347194009554008463438883995891618282079781432342333090880450077383913062774898768336003933950734528419115815205103317006543680353201799710055499327761894694408627880717490192901270270973473430280065404916417672879642838444499542619412877163463056915476580560525168859673210273149016536179641964506400644094954635763080622717494801443264331327238479718496905742764762232911003209650372011017397848500715940529564440454735056854902939060916228323618028105796567143600258365272883424301917008203762541918367082169439889416902269008544492823166284892930077641146244079452283934468226770791644035172198291345285135166091543207823484876491129422370724828742655983964948527425890402820565972945988074871149012623523150968013082779930361343571853768506728695809957854589452509040227645062294850882775871556197724461308647256297256200952594730679083598271016796807329341741280916446677249392154890297026119589236890876613890045307742031698041694543676419592837654487741748796167804505142823087209716624176859027465435817606683194986835129547452336916336455495479058619084148242554370075605009341157161549857711583673138714776920203527594590527768154407442636114373806176689284320086608294534090601733542984770866069610123651574178079091767285884980929771718472660013475877202458267463277250607148000283076488291562429687508297884345897928283021007505951108396681879036570890147962402619983468689727873939199599451869755144233288943994054810517931808351278798222299609299046092960118544502102121986223518960157639811594925204425720601617681541423571260267479574843502286503917425580140634859030815664967616577876292768056985738395038021081250080862472966725373828000050574422353755527646207102960271509601827097038022312037674909447491627456913299337588664431262217201719118573581598544177320373662430237520379443905042537791644566950179093993364759172648102643641125856361014984765873276531079833500196748385641400987147573440146607905027902201640329178011223283356758669438623998378945555559777176073129866966429104125593456510963193454640945426533567884816711365511763049619620906775549864138585262682457690014677289126703059723602742703378692329428530137177788685397415844872783778083433944160412441313725708990952312279903649417711738289474376818594359634509877578041131658293979623276785727274007749461913251634695934050982666182557516773053611174149125359064540635803642164348138920137765465968966976914571119393847356901744472706080372914266613865249516316534316156904368315568446522056007108042384661588449182169207959345660296381817125364777017997062379289484685938051487086926642407100947633233608393224542749630714942286948762149435603905216651956558171006555418980097285957411795813323987667196556899148805557749114373615124150866994404934901877270824499850157434933826551705092373847233939432404981514981793994624842289340851333698581993656895523957240355509107688793087276823730838323306485814600678857842905522945935745033421747410324165824014253691389569394684879197302674317990781320389437054460504348962170863115007318002188626074166776757084377690538428553300749264703747845454397789014317066087449952533932467030631703387720473885652455699593802614801766947025565344091364527725790709479110264086851211411687640234060023822995579289597330509365826593127790109266564322838095532953810370048555149920422564572770378753750121156727759564380329444620455083359993508189999640314524781670789225878648419016047727715716017926707285003545867746871417470049033561583152995684997177977304876373738612088627756068340276122519953618649060991426325113349016020410630361349983967600683378434486507038294804457978626944494198088818677692194940720915866063868104580639079676471184493605847127752474411253946199983799614486617440328150422636218782047256614470216160073656873640816311615156438615248830878658965930386767762912048943830082845276157556756941744290962049111462949225880204065401869467114214925411880221708768998560800798563123517175485821836390428594236999935124280894040394511110812627997428111107712751509046876183647095367818536758122046182984249508466975948954217192187128468628581360390651437012494587596597750191833872422434094226120930419755326553443822404357495348879955824027554996011765808821606990878247152246836314848747009108813115815184578414059217316571095495154186744745977289802046162410771646945180838881652247887906718779870516929972814933142388895973024016420774194827347253499693687778128707326677043721768276044417588569948737660939543358609564482106489128434427749752493454417576744252405340485431562810640916264858322112968600979628494438657663638331101491222962964136297359941881122764822287388311667875279368557035034176899706467096467115757859694705469670469091341513742331700801384780977787708449151095078534288531814674012303619465586243529528880415073598639224196598202581824626574119069357862046236692351808351718089969975758427864549706759189687314391748506588283176037075565101840372133820276110345410214618693416830878641003555439748322788973528107896770483571701424175312275430694952286329886724609940334037669288837682782550237349672411476266267095983193805411518058515493756160682641396609943825738395873475010780473986424030220704262955700402365128708477038729865397434056082457164879164826568500447468450499438416556180873078743330062326207560192733861529888632940560208237681615627826351661577781791384504897694576016194016170336715821455360909876823247117667195417697393837602997398860001940067129263090979683838749694606900663713507498115573125885433126084789388980826203588043455353242744788566458766942262099123126098896440924376672078868287653725035437349374988602899200989904709179082042251607534782976624818349369888242320018671382841725073657845349927638212103864352481328002953227165694758042920837681190767785340705310078793086740818004499869431202680174935365515780077190949602436851689565183682569594544433245565583419037202474528964233157009353206348598882551692081828618072106907755798235460553533174040864790539412672653840060015254408749946284342611854599921238637844856956451218945844784242609964635810365115937243123892890488922708080026443277752690361854256008688142757217732676324741311050156740423634194070874328871591863740235216149536446305194873901342425755810995205184901352533687206431820559295336767916897026139625644462263682260955328249653283728495211809340107076126177032568450599867154937923037744228051406756609253220722577114528552375669914946325865227551710718967047900365009716260740057310478288422607407485346891624503207593274852300109219491046369505992932526725274982601113712717939644175436944327933488191938216652172839293112868012523048781159420414817078689658012176324796489574571194142704385194567985820028194910200060986173143838063073214061143243825356942530007363310856791733963683296865057774144055923104700576816145301924964538645313282865803175221054823062267161354934946954442754171062727242349351412106663052820367721527716908172549091548497191408160123528327915586061875785864936141474918691709357758032490425774970083599770017551367138337236974699133460457455052811734760699661029249085137242730172785009096457554847847418161950865789638514997568515788771007200019397560741926274063308540185633043467981809722022995317603458950942986144626885944032746963691465839010055179379065320756049461285071313102047170003096703611423657837690683901185191568909961681018736734076481424783006493401386147084166990832310641201964812271915335212322048792099642317117423159520377203457844038480864884123372728583228166096854260921778428694870617996625878210232267114661427501742276944052370672361600541639887395711862017206857495957322801884189776520223151140155501002872696264594314391934926849871048815690376956175986711814492226542357068959596475237071369298537615060773577555681977837317029650772132324337905424264906983810365439888007842926033186771460502895364803681725760696623715217383206550561976815893579531643371139090277067468672725224308081207757946445198854567803786204043995284777883838314746195757393046447177470366096535804576540779244299601896783217249154143790172546229691378879588640719691862339154431003151634063305485665066843228967745034134445967524799276731653499025404088085598756018075542925335795286479034859370744376330369294999948502650655100438838607746907574053965410007597672625539991226829788940327816675742649186147029780028457159193170700533268790433110766562225380298128379384581305328994660313745184136283179996469938053533106052944057398714038687248278283928156716344340803206508390987672137455629450412955959153272972629893114512520273636486949049314171202551907421706477757628310589121199026157040664485213733982023693301542442007364422345319163453898498884112308405318517246153548537034345580445368431901577234204105733390045143941355244459623138835896347011821249623047430519906054375696609397670645884555585117905282824789602487973681307472116771371735142628792668371316612355717719659848661888376656250388587482836145594415346388267526342809319254478032125292383486013351401198842574149738803063505466982880508859687619959839590592149747066638037729082096971140554299872676255234298595814349824832313578843499867341065395285277889059305626118687416930624373709022169293735547886667213101599300451988026417554821496528481253012490894745643378186379079527807399033300192211456699561057475324832912896151794057037771677144399342582620921132519739335793698974632907283288932461387442615055806087616312079707665668789456476257431503625494547634290508337698340330755990125554348482958556547148420724563294694064229756076523764107368489731058092876884676748256140514900185391088762537298638605980765744457855390284389647069189526616098584301428773772959662902555353406951430690206673046454225321979341952112281781968010858042202238125023126176112101035461510418403476295746256806345872321326125727983481217488075519003278814213417943154609998844508611447395323156415860026826508316325588718526099228842264936074130466736542724583412013515808625930090592429027775804746260590493210267710860299662608732522881003694119176040907637100549119191852361527285190704868715728451115294986656732461572444340748804039533072685832672239648618798057712112244688595910842115322577097966229721603660421411668087944898124775472214889481000583311407598229056434590753964953611954916244622641256598521556787503693436573039012804953918627815756768128174814908012657054703611277398976148476125849161528862319320851044685829204386401913224208334851993454799907746092613523643082858079754002821686810864408940398366693556034294124047168414042070260226435804894441297019737994137364836351537299228045302485616167961693898515153141562886514551863184001833101656106264902070048271806338814326983587376111895313565210171974628642360027615083451482936129185907833139966177319128020540681325678065084373948085360216951700943998020597037631165463746474286343743277917729963046478972834458442036130462851552780854464825501556539959275807587416067731091007167341296428288113687761606242145715608587326230452797702266269022543530493454478603766728688967988775663848208347745371922819999333392487713323799859024967784574047817127725654957978605686911124464010001880385367230744985490809773491182216165787723995223714580279980488888529752488134667355651900693607179260297339084085291035417635344356048864626331512703455623571590459006199980490381672434581077637528032542867594791687462058354982213304456039727388269880701851101039381256671463192194445152214349028220918175941121014569182746568670637722555507742331230409487470767551086246766165219987995135424581930838556814601794417590811111465627740516803271655165258537485719308117468876335214692980997610802152451468384252457105080633639330681720970733592051131945700383999993992547991175027355617371305369144983326295441453181681127692055552725459820957015495377634083808323812618721472641192733837306909128797066343940509167940650219787460232115685484061868050685401931225903595037628421884859931760809092805706244306008869234267849451468988955864489593705020795857465399874811157767522083788979357827523866233870936731790408763915930558209796444538390151431007797890337999818106743717857893586749505531901356408150679476242889689457227515654269508035328968360597233874776888303422504108203102035706810437286723702886298743299459910091759604414406328672492574847775570420173294154207461917898487973305677868692756893664679445402461761917859356536338801988059022370501505810194731140760717141428274669640495724080990950559062622072462826708368099753484486777500993775430205320508809641839316040263303580293944397365103239364369086643761455344343683972068343516487704494926031568734825280493515777489559266618438501184357422740963902408963148888417598770222517408730968509131464228297286645628881583135163112758323379397384593296738665297724227877593181676737508091637495181940591080752968244046744085272321989532554746054940760664478684334581536861778275642644192089761601400047751764074175480290451581842591263700026560491753292114746043530241834870608765362998492606221229433748765723933667787180223461239851048753657205908472053007297658338176383569856076697440647674042027066920067277703097198867301331557636049908002440772159671829694572027362124419364516575374524709438234478574547530898256447227617001218023541959764144841883288304733175153087823690476733616390328769732516927200229183578775794086901894681205703841134416244955342735609132883872415630146017092261381709723701544589969689232341625672482517268114911527101740997254586353380561057587649860619240592582125386762827249311489438014180482551815304430123145898463296015424182984927274416546321398268073947690927085420464997283742234607720756710861900904636598336223538887026573646963826372476087657313125842953691203811087912868384665733891586749906232083114436536684819595603102718123652031747445339283011501822347628173419561997671248821774374416501788625012801607492479681406925772660556753728836606924098127347033656261149927280231614687544039959144608490077319916451088379663454250843682460417309175093201399606401541295130047784949009792758071503906970339697903768239815552268319940621266943225130146385100067069656634361313704003863028641641127173005620365211564765567590829153614934318688596343406831013027544733538543049583019010400484040386894919210985554669697150909013684170643616600865013090616504291030515881937886687946207465262284991767027800826059315780735241701609676528635943438724220012779815481738686085354603037777164179762918512800992451228818559079722248229019008825229938734027820963661953352425565617662063856625553858899012353877202019592106546276513140219636978872572326422530951418829254440448891966551521824875813084766738560050636166361258459704378000607264740683779030978669138182925198702817203922467561750510036623993923262194636580805511563685570435955797553956555774569195056362441876815611133380761897701086149213049333928188088824435483385939270766905719250919734037016287821774656602026813938982201108664269965141079351119744530468909108622755740660472019967714243232961231701215620956307835622985103346973026613932605251479891835933842375111204057415565414508304021708684042143048786417714314451787270253791093850933168509912839169538904385322490232119629767109463419657037064428765271539852473476253534672420953635078882192861412683230054043608389295536873940928356883817807558704362211609904403638590958798762627497357023322745353506177981024742496630680050916188742701155781523984146961081414769665514727858925354679594830264488857006996569960092236859628780259293347235375668258523249431000652347435222391547168117112349880339410657097824174456864278503093809165881998261263154840516732027018188946731787917518925187845239381176308846971886235188598222607177561588887033785580167178074947611062347941319422811536205757535614802279059899623125861997484620515931731494346039554532473581815655381526454552050454723760065895003371811373486410873795275022021907680575794315350280287852274924154006009935859591056298937773071876643017814659249656950858783718262962261220866463191366001551060556375945147236837355808493012481341922841705664452495025518620292813228509187624423477984809820157388771266966352771604339211278118970395205553272536475531329529499945253917943777220774705051815561492854341135823024831995965013961234575270975463513581108054347460042785417818094893601209783180904253099100187725323239416452421271643507563567127627736791204132356825412751198889593201394866390003326507547956171646925232045764746008284651944000447716600962483192030818530759847895804369272856374786799644622214312188330462117769154257234367759248427488705456008495921606475317883845557314464201425188550681200603903368263952755516273655858550299060621821286131501038095683517831093777076336220766552720504156822760704010644142724432115047648555936681789367468313356979265247781820889614484586430213806447928808540173390588954850943998480561118065688461774827452116339108398254857815058729670760303340944289319993819141370489610795952519524364002522278729618176912164526013577288304104743430630316107175134480079367444544950751502297728085667270652514564969348893909081197698936880001743652746614193815969567782879757481908834629878661056549667158039247429199043785005460504610963025976476664348943800333282460372001644959694611695096268683700816857327367542949144537372801631810102841107391586210253571915901658865674153612711231925877356422724241903807686166674258624015663328702177346477150762340320644275176577850324134084235833136226134025465079187297192792882818948058864097819608641871870163991036076116082461689182315014641485121845330247742928598992073274538065515551177427326989263260269185153223121781180516085340201995225753492385926731262853704431236751962788677790162483219388620764935006966085101807638150928278516539725779802817485058807795365821422144984307704249702381400176695687166151349127255889059916861420742746403257660536787424128467292220254329156553386002461869197476507172431189144386505874254322641116271341996841212106712676205106510630086754210946190773550685089763433734442297754065101108658583888407969980593671091948360254434206026186800421573485593496994456834750066108889834985825359946664307665262312126112985427491981952309297614655812865778135059315507513140390674612439475292729075171743970640954181359977445715964090091252622996493529850180302639286463466135559784236980025041786509184163474280056894469166919304281552766509039968324595981855549807513905762871487649089509884513080852770439001115553076834042238269320510195463372359214830518213395127423558147970460183252746233552797186376815086600420871694727649070741038598079024266289241696961913175306241940518147651237735650899419387393211735484353928959346545453100125888020294176267216327222302771685208408739002014220236151633358175630577611070094822673517679863352567978045306615457667185425701070981306657225880870670678302342319321497895971221242944837171924222768786405452073403427609281052190146673236050212015545448974646615331250554930070665357238843941027721646061659942610461600796942549404312966871039069931558299078873377052318565951374004963259885614714977233236802447002777748427707971593986670919007238267885147213667856903880915293619756123691241194579446457022449182746370616726035804596733817727605504113841556985171126709918744896063661136605032177694790968267098841348618037700995655834814174166657645258994495613574402032603755109759268697519842032909766324195062782228188410570220596582680621676767487567566244099962950347005072277257696029687200318570588765504837168577695001550136343042784405539711643895606091574622397699282115112495421100655920116901985199586675473659334115829384737213483564993656772470615587877535469829969888062356271904005988780740873450049148070504492112185954900511350952823310759950070112610355780366115367918394974869639870599211243090527398781062670489264857320849387827313749064103104466924782621650390316739528118765275264179463883907121064341895968509237409672489504642508192059205310670700413246728015854483384370605872582844981785170320884507930348956666399187721141243792196175082923686480093124353692710090906807622568622701039807405275306042165510100685995277502696655505800087334641270242153037797052884897543800732577301563470444836605085749653144225788288862494157182848575980851369521719930412930735158275769910708933757320633481454088065705923451797623644518186718357887115856773489452120456415154023091350590716313065397694463938066455675050811703465595854922749557138877233404052387403107121954149990773911414182163188308580628375961565449317075873539970346637965308631078674599418183249868929799332205464938148441320300289936353141540422493569904971045354093086980857436279091036036270905675474555330304496926009111231657994467157660259347163324562394099564763257261792357065430774870260370799128702314271052108552143636781231783966083383483007272823612093398369073521017288427070355021149194655353196465971593089219367649852319998386847003405540982919821381937192963984220434143822075692150158676891581978620090381083128764696441937613139870840750567097429173180470080675077817754412014580704737924488294141004135437178624915118077404321186696877959670926488612905034230814750767051367222450177112705978749178040347625280302098787834769041561383665509638610986794315648768785440282121254948786104354106186480957859815828887334635009061237403071181698763619869764017592525025866488804384635686643182598301046401509167679697425505768374478058074439037308380396962749108948851336541647397480003348698863589815817536216850815647905267741277866929138402034927896840514088779260393478676532035710251567509585053308096456880959747417595490647675543315765057161087629116249423516577221537133928891589099336445363836064615347217810638252896055460030798496379121712566571319264256133422666797524032959810544845051921908107178137043111745360544106214202862380282103565942179913687616094967340626053826675607009953257921912699569431730810826454421474602116239958592962673753957085511312138487212517068209462050322246894905371735853190771604455757726127883689372869224014743483397317561355171347730197765553478130449337844243441006802761457241781055124397010684707534296402819196404540336881247464519443186389586746380845682183697529989043789093147981285612837246483822101557864408467725169508523668924397729400556891532988067044129223079130001225719212414748608456134701892482871572148766327465498353259099233050491523704936937523149806776873070174658867538717315873304670704987113629637292762905142068371427022261309603328336063609049939611664061587831971335488510854424243693144646938479775431946477662340660151041010910261291092006905672663675414592666129019825671121309066953936316821183580690087140409647014861886970810153209068059067058714655993184640489972603456896669431523948194062027692994190863059232415204256334457463899470115622666749290161095709824299633707396337791576394834728377078562829366321223154492552980052256329680157750189235750737838175240050510239835110346875585172473152523982106146106226253483631987865347743279728433807979227275625913332390982671157246775709759218801900823710313081059181060156506945016380543068213630249948638422824243156274937111694399528436773043129358861717874501591093200675248268059552050247719522712611197159788188206338522758861844037404129583820288102100120122020726982381583710662185974090832644881998404333522498465760770559331501443784215829259348692153148368695649064386108597491959982189638537551529211663565626948237672248386040307437260407332078591066354229572845788446745040400765233854470485647987837905186108979974506623900005676686347229741060537369705352809842901651223930851748223094373363816674084981345467422734595453097442903313752879183681222907388244727132208831809035688885492097757380154898867369012833398810825154527743517302118437079520586830201202331262647718495936996568399520365213451482004753248139905356200356704066348356293444944121437576890181953065263178203313894802762033398088889728667173342358338969768553059274172048165097387928645196775569376524242508782671670158644167358794050996896257109946967745895780804440685934549674971458473959090658562191004134585380692531920585014587378012787870755664486799094796970184765115137466712154928859140089283199381750143055818946110249041224875636176776118504073079649362009706427932310836384916480017772584501624589140239960767398801767149843081461107831231097676517780567444605993571440455000733759031322882483830610834814211286928303400414655644500094080597373295067399803501580792678342052197387046447306883670379961801946971409101824287777295452317564866588098028595721017636534513046118678938268065353305107159983657659813986821367521897677941433140317324056716313988496887208188939153965983865577658779203381147757288512829845256973951121107886907237233115916775949951470016332798308073374706396295239824127270070721641747617790575641261445715447670339539106507626218923169404883948121134355299732002406614725892580580905469905400573070115819823700554017872444325461094025312288838730722091408715908877533630100115560815861439005643156585645949417885400873295418824814364584117059817728619869307583278236465660099569473822040631049784140339935022094289187372363271465090728660501560025021148228282806656953679857920807997173431860166560611184304363154624507876091856415129479158239019733503778194488695896262886672191256576477172106122920768126781148699705251118542937758348336694142982612968418692925433094427269978695188946620529264117803314217246785930751968538640183158063210912491756335398217017270970890990311472358378609188645470959379316596380519112869967565425309146933076624029120878147664162441687887067579854446388386246960947792148186422911656467260991076067189653292012006134597763349988958405264145180028703779628010444033944491583206852547305164531613757881932613831971222492873417476356987566818987482799542176144156002860710907877732730471540528530013532958762647198021390969479902840199939971604495214344252098874447604041140283146081592799140295307698975637578325526964843623339845039414116162194505636261400337816366529404894429588104420416464703206307133534436694315153031041783207299170152252222404921232080913593907262373565881364443776332047786686469492578763183856369743866510637158628303671499369582232619203092892767218107540908084170838444922643979478204676154542340634684856315777258772906361879994783238393452266137138277579074769433587918001597920482064541255574226692018742821740116926946837125304005200685605332394615099628356706606179700920873033065919762946687377008643816205211430370541308677318779475401517234422197154429336172353120066256807770848494493034756632863662252470679411443161505766245511043466484208089829792412648568603455108206917046530627128770617355683308297658841869004576471459509645407111381486986463693798512586033743504005827416984131106016906719917789183193497990980626674458318360194240126499011566833954031338048216899906955590894921140826574238159488437263672235494268910119008630972288416101140295243409672277507718356976022901714372890766584157229817096763691521964092387152715464546154441560084019379056322739219772919845358376067351575311485449698385568154337838547761453567214184708892142645457163469819958883061222047819867631252349570357555154803499640090217781591152686535787426543205444831432450233673495328445065034263392539624825088430266214945492285280630710029769752696383455281871824626387962228979701258815294166990294355101840124595898110276492828112984818391615853826570980809764637664959497252603431094168813624943239818093062488622254271117995793480310646112084999016031040431224534818527657869058131413097678386465802578613250568582880939292166392523783759954320769349297998356356122576365863000089713894668301619653546094046076439761908367026799792281504847918371691197135074431824908294736842647877568467765755242232965900636325480723207417151129575128207718573702311614583273385242735990931521911376095225280402832156399146129243485109072700931494420929269770534430454056680737304761535016916313809210417767975940025088148162991956047517004792835575448344986308472484944449559547877398641505069505699656868408771164686897906578591807186615713698425331217621512358935055503529900715264618235053918215085200523114114040280560572194372513755840421342673476265804591968485564811081400566441607898766534629936263797884807033819851512208952096507755248072160939907137549928603807487327480880512536305084392517932218543999698922778406170160621998479378470139520892504437158404609595272818407554968498990816683646972658448291516177253099029158441269055592365909090609698022108026401516090396221741891184032987852083856428322776371050391566790670884520613278168222965263881326187840504695239162978033604002937258417495974055627474440841889318162317552444044111737722507779021371347434025307158203395972078030112633491341918772847220373870073817351513753022706388892662196991161249177889546530821530326035074257033073797885060064142039385377457879017524643201196519707554766959261823935568769751231339012240528843300328462213519792612334847676646347203120114739510585002295862329868839085212191164248125131007991521237728652388939001958541901095767268778023285894847406654887025622800144076738543993609725573412324834654472955130968315166504687137594173487344601165734698080230335277518110786962849422882228490599080578979469212111788305128858119977461130558691105591542157405063261417608793956039751891357247142429834437437707706378736533140740220436339707381266435652202822996398665750768435699376013232452144451507838519274650640077114884325319996588702746651663127742871299464489321364945278754083174770129033218413250385920220586839839347146399911856029978183332804666778318284832941187503163205065263049450319746221836458210063120715879838659331211317044246092024883525579717937160955995154236067143195746112851543899775517657818893107755934136291531951389195797573838759793040913129880210460672925668285791359966344138092918191491491745063954038597553577538956051570283219086871837963216956319308521016001083058561123165432920945978535488128585223130791815884266969147221371547127687879758054969978561237760570723364220900035790411246896654916763000728199172984866618633912594670178474464736786434236240459365359081015299990615375259342862228544725230074213313023618154401073144293723177463434546382187531777765355027173706000252719171720959570072863992891958462909599223963756951014819427777720494176077389960230960299431463776826045760799334588674435250059082075453002625757549688302966921901929276404287810577572212033500811648130853690383841697069777411912101312796804138844435020078619321437646985076245435759456575465278776779039496952989342736386511226837837788797759924894605803329924414726016494179720004913721559602152958355572228032187821004501057569504220364184229355697022041484270432445353556951217241069198336778451089736489359278666477594745189974215919907782596521113006731655050098257129274755665292633397643561669733904756839976531657668271015147994797905313343941763187620759392787251969660758744262490680414143456216728349361951198277039861140907308329596953649695822643701879495158030399196105808712698912455794291444767798153358157903069269373985853372140738503925581326634651562808163058133449477188784048451356674682916552085139102338163112866808416207463580084291618307487080540737958770149570684287239875462231740992169372109976758084049596259825318728766937882465095576038280629072579113440446639367339267266969880419010369863971068405530451337010919932905671645907839934012164532349459278003617972233940433260346495507731108280076321820767944778562926128100094282692037731548112667927579439572705258291603122462283529296327317633449147194452794431607526964228579572380724084890215437253132191105693341160819325789019758516851529015750113956636780717141430235734022845444764334454583995747134609738672344915239657875672767499379650829172384486826973284088486714685873975786181502333985128443745304118465241406575663733059797386706783580672298823252161876561386875688609499950992584378592837720165409976866360282560745287357066099371594868396797195351889596225219346104710032600161420563191654239368369792171697820884367014094904478749053078361334288011006100105699052337911916671025161279017145103053797886797153378064234651410633575248670195129421553755561867474469620611761363900856872360168102738574673389144361999518976768768923928026325957502539634960368995479255106476317940707839049403749521064338123639819656822262446268640727177445713601804276169692288725229460422015103169520223317094506812199182583618381570532223180281280295428073248316807942401829943743723108267885450608626723150100421274033967397847814710334154144883636597226347833922287144868683909928912667423626156335318101887976197628331748938109397365812951476488227924075382117224136537810025076185239332887200255045330001726067610871928650926495646351881504376553769479551073103912148647638130425078514041689832909219217197218741901746716521456545784046519364850449396312135626994383343596270220090546716977623688370852220631541854924244416525710987989874197257498069184688888495467335273047713816748875756318750463317881174460772711257846529871159044790935796505038292238986994805378872522390641919651681305523461116803116232616720510956739047680265317029219748848256729928239582291163053835882705459933065894700170815845217409971350816182323889459721450610069385047688006111784352088977388600776635016110226779127108117776732227463225820587209333847193085401567528506297715512180057903520936273282973675829967135713754743253975464245318502303645743157456648986882901018491798436754453887131465615699882180119936143313616257038168653317462303814961754356273773043852688348351147179910600460260271975852088054371552324227636462604068722304865639421976082824713490335303281533684003867838791490802954453102619083171376409956576319728376185281613022096798873441415063294947026678560453376422037893191651613567954310036038380837681710431517041671921515149710330571333872737414446394761443260590715457321858698731801330364508017655276866115660650221098223820580609233727449433644046830409440174715109745005380551605135664813201884667066400655776567983837939632668999376290195944341907793662808098676750755708919816977801092663339151193591146274494324100133587243052494627237500427629362653915116855896691852055395646229866610950231034327232921419471198070030466984228993681751825170459573583811720408141179735583059322447705371211073449367348853775052925279200082957077026155073175083499014902146674477564257584229154815887831660074205905994509570249582768812547370624719413433428971054684643501448524749399461966464241842432046591346521310584189890831703150479784587741930180349100724676983787120374624631482145427606881316254092578893042877000156774457085969017008962505638040800141718446160351425513295475504821343595462367424367098755430669245129962926066841777758763592982592449200140465595833216234722571253983709367805923370140835215438250200974026419944588170734791332026278534979698795315325769483228241721058359439519827568878868944532492130831020297476255019007554863504631967418795388759773833790816619258905026010316613135717374485941156791502222551888849971457042646773038856899511057544714554898756652660779468373533604768355562804328089020937127103707363422600261420399345745927914930889503241905092519951597268752856640007111171579664685727162528096768762849473393350913667191885553710273015106430491072067602424629578797043266962858584401822055215488956551870546561828803608564950105596404320343583330935326862285575149560961745377108624237421523699005624672382491628769327417132394009316434076752297061449916826088269864996262149900351997894684199457455296368421660120465598552392034531057675912526124095271713986712149221416020909122991125165275558741592309731099702149660713246333323477210709761024485343616506946242075175300921437413341281991715056802684447738018770132252345986671965717289051621860138617056484459844971481456143902966521666945718832696695020971938294107725032812032886689207790240872573529367910873830307204951417492043487139597249941697768782613372275848898997201980112733119481029806773751138963978737051869565734574225726682510522510909724611039901424418682352442374879297550531926158436862210331933489795525702452231621313455797420978181660519018510867054718958447986668548334777733788831966785385824142891429165204719030115286478049475969092062802475436769726083172062710586690901295638409377064715701314662605506913579159495280170203353042349071745333332504505555269200661962569420640434225866630498583441263079469990822780048504884196796300165154221016797704992594142053006310508219844215670381659045188392714663642472727788070092214031652969004025822430863237333751955198622224927021661089989448164540526426471070321678102537508685883047106691403395843653482965675308212167473761661735688053090710422347905913761412180872713713848068958086469631301301345974358176096215049333040031878029626817738819002209235953109873179554909439628328265929842596176015614903465893777004676740353956074456075729079502584015770337074033979205017882540296430026095571351942996430311768562137326320702554418597016700492428441417770086153874022022139531189530198520491167003545284872809877632100518371559933847725638394795322594954743509468290619543598171598073127724476799160141061871916646302513876420870075514949868884176950161162111901869092706257781258493057936115336277728637500639383311597101543383557399414820485201325922486084383215965547545490579663258219843922705702515490724413492340156441150914925277470855000781408747769181211452040593776582885216695984604549531024136583723855501843586350667247136581753546968393404262986644608300926645058453445477510526225965161072575891570384011393689461836622723886456566478163847486991479107062304610245140388628663440947571466324412107258660504740325702880745932034266989235676936894000930759514299321405212343586155523279833568924863650930685081282752004433166692329753030830825987021654535909004519081875676334519739421010443206793118882945465112140159422924817383576175643708668670447970191237569279328592976207172690725249320153395287985865411092999319431558311446404210891231726686505410025204450910803210995470380143878401054794709797737412965472989846813761128933489190586649449597076006805390236837126601373618929400396472603765653551463001741323337178833806248078868038017341889931544494557431944371531264946507316178533535706675118160342296488651622142803418798111922985049265887870412591037157801787580954230603405038667881789587381390980236355630437501667355029647770750284322003410462013664819462023085217281051679828245488924004759242999944262429191952808287109797059578280063722231498548289775128793558722123302733119239524271433971479759480197366303732194268414122987154535938375510806303263225459971622772269123565541964276395376372473386961113499030437710190392843745729755185967672051644962072354250833330303326174194340818778344285012156196052989270145702285746126988382597141126642377557816207511943573256071707263568803779289644800748663037506589072678967364694652719446334946341812537113810044855757408361429425502721512940283135979058556334592923627540963447304862058945808042761477851301703643456445420011880282591072876900564553453186275491800290114464449042430700753421730518540432711559916835952823875507578117415744704791701860360890117100160277589073460003078932400226223221234880443310091164284555571464910457622606286739619156921556293331849378819729232359299056088278914992355340347568887815341925786442095877936808036585928009877684948961454935487453919959826830916917855423407279610883059582014859571312761500234674380452728733871017730382116691351614917934225923286310090125946825341946650606444412937718589797750642703281414872965325012481439778852275590622555345519615896752720260472948689903594121122652166383494265992331732559776100404442790158673882573620106047918518382979983753479006331415411799664026874520347826829010031490921015404987293992025039610966741177695076538860109247778565532219754620538800418705342631444665620465039912619261183555478772960294060514556210028119808913954235185706785524226475795435197485822063539238695469319516944491569675025649369735498841166052306614376473294456996669788906376059454570843324442219411383072677343327164415878481361019154633097350866494447699478721863144630152869689480131281953896274423941614328453872343372141637194418738793328739247811920785432939982562067942730216136815909790719437340444134793853176101028549239766878173441481727139504358727079601054640626443783989937077895668038276790007823216891676294904375244169119838031007822829885107770324428411246380607227799448148598773761017822439136552173684752791015143266482792290417958470744073069748316300012190190003512346190982606618823684363109199960714564785132614490669541432483610872615518440865123081484251405632095635476946549378562467518637870713386016525010161832569395815998618943724143604010346913210136352334968376854674045792362710353231281975744416294190822813190559740297858823643519161033849800613290480724334682250574898768919792223433146612442775195097075010270481320835439055923960596567286948971167892669313849905213000579594322247731761035117168138232583050562517487433944462865704816134399716946744729077394849853515471814801862362441013837079338271899401588235645154074676959132413022714002075135326242159572024493812883069215340443948100850596932227163009255717313572579369847995192246970815931181181491853685290702694884147418251399175545185177211117175912607086954332348314549555423810838980406594251458794073059065702184068744404742241500619383434649294320200581661776941339162688574588827035112235814281444456064867465699517255558784274864741392971630983362632772619407127411347376243824669585714407080055854065045932077918427632027969800703804931251390513070621658519071316207413445394494938725391390340731275228583701481803261979215339072314114409957174939767456998147380482610948756516831235154823859496958171450353394420635333495743613426778175046706457390184555301469620049371145674025129688763301819342616133246939774270505269646387468282057828186856795716757823837033806438821091426757622382249109329372499539633181241174808175346626017812509080293892992700482390519591969166498046604843488700499808431207715909830989998439590763131590424938925313523066333321440126259416944627782813685405165890661031151555752359010672263116764843482241804890078502538101771006923235976100723177264523933947997116047995838938690017805330197232164689867267046761000800116817287366915992516816617133357263692334935114053893127927152510689105346308561531774303642304428132328121704585037429485185803234043785078286472416789901272213719135533193342951043427514827920559012654171692147782385772339177155127440814770055717816086551719580667553673148350167733013332633236334769450947698247009699035450419242562136337382929842105545768978517223605623816258787531330613929784415133804290627471153544312939068592641955447003784103108288482492459631531852692467630402285236559891572880171330324394908240196355966173427971946387171493506482444415366801516122714585312448898605481171446385460612337138219018993515780135295739899406877897541992225863362443074480177895613826727737922313538720990210067645581132316222496640118120570307290768382166566616861982869254425209098561873864407866486506517853684116183060831611294407625434757127405343726181199714874166640447566525742198658824472048209010955296493771762000797773476393634238622088949171156576185423370541456922712570534882970081040829842492155262650041478401371000213829736879599401862128796115286972444707372888530321652031475524037247619079855675065358987861778666111128632767850070297151989984348120054809682194601764890005692828090718558144118879234631935375597686560302367814318798796773355003513584807100636815871651724274016075616980284062286630826716173835565084430534478077982452425053128961126968475678626193722469174205012126301274840893753509183129162711483564692207217711545262776837039723196167357784744805511809807175090075412895397674189941239358465783204876111855429544965628471757927847309563128323682003068510107461417306094102833672247893200501927513445354466112862259954398776791150651967865733781259662677257309212290318466390134814645415653007067418128559776632647309469913030661335575224963963079745642327223926561967555195895467654537847388176208655924221219168610460913406099163448778795861765778112606743173934139236707852274302782878336158897114132578066989210009711175027550032378591269762939359956370455751670178171718518155455502589609945389795066164977710046818249761709390913265271516632897578686439948804382478572989157665136530290743979746497919563257655422116307697887358609761016377042355161974609893957887699653229240872792190962543788348452052097997084013243796727298724989478024716381755214048362471161101831954733922408498197606920728945042504282372347497086659905657857132678991715316059565410410718464955638807360049111262413916013923234778671017979418147710362239424130314659775157264575795669568526182317861966349755782825288458824779151075722692927857388236476089117155351458504450913788673134022357718371718896330656245447307001538183797168774055416779359968493751596956407824240694908431372991320190281383866580966557661112795879416825315652063696093701532082138008430933643196497096171931456583742666018968082630799792901974664884886896796692018630866576932255991079313056663283008210537387941916127140667765526818061196167638404689890309427431811255277962521252034590546952727678411421093331817184054119690642795496628351735717494615446770808837300406301387697935026488893914203119753741239047743478694904089853191258196403653411550254168110729662413893190573461481368237193474272933233415223924735833595563027320306805729576592022798084694569460515444856114239617973117584652087999293129644890592881847042764901522661146141692707538099372648310322526731047206300709836674087328269835231620201958030901894903238638714447017258921414777390865435807294767905751275156731420639974894510462892091543318954024200630130419461044163657606533854159437759945851666719804918359559854033606891301996093549970571861972766960079603818050048978609938600152520804462348642854601418220107410904742382752689633427626799221599431600494203476020205192070385782055378710412841045444056722974809033466831783789027138325437791432285692999629463963475529727686694517639710955403053065106506881285236081958071227333590338973478620236119925445224670072804731249800576367502830626345526580776587550303223921680181055629106789356740909301275594218750968446133641143225029965154017206555426196166190148986014910965051558521521513578254107152769280796355255018929763588558708527302114259287186427558710998894299767281127999057624591658783887897978919949419000153451175395447754556005952848912505103543559594983588468523486069691132470769952509175907070324160658310707933513979433420098533126942799926471302504537895834733418559365640164523200201777733310358215061090069508348088414727759880563999862730668841520161343810467435489833753566130995943685421936565439777455670165398725457001554334919792219508663555381962007064480693547234386316985144846385415924583414363623651186535125208585504648104730970463825090436119094887220561848202398844126716715304838871595008207511328361555546155372746827483917716659960289319297713122372652301290763004374362141676922798035479187779155972884979318586380691046565868717563945966000381840052949698523691710840882221779750590613864553382667386685062888656723917926219756444960981861015810765965762449062007021048102593155261372617781440285336364633275189295253237452528175575072507625108041610279941310418539092236817791390588849969099363757998827293427688066259624537437033454053430568893590273020431195814286811994972913861359683436282354164940709119804515475699790194464196166060491277860218492706211367458377708464598342028046540836484666941228239674039879455949471322548297070599960586127169795986445576526228350194098690684446219477751094801226328224156132778135541396997061208279049897342124091896718449990711428454482493771453316746675811213687291478363661469969107648259357039519847496413769936519764952322086364315675042161429551847607342628661418470451230909622893568453299679025396272758436756059502190718556456559927315315494590743992839719658268276749388847557891506671686468768062581016000149754569071112359145808561334295963455426916571710719598224678810867500558762416032106305598961944797474222504948953311743434622199682745892080621431226730478520860743054940193445731604912662431707538738188451048916474046443287043086529424546217111299345869706865622421112751527294066349655529667426605659241133329320815698490807229246715066691453900928466251244989276341584487595734646653719151561324725254808635853217134999897172569540906733068925706328309268842288831797097514533925354033805370401036232443667184110342900111025015540859991489939933011669101775518718655535942938354713060925697981437173735551806739049635626147688297296013795944493543757340376005398155986924319564391454416756728838155952926889317911854769764290601489862472166187320865648015326620676952805388747403184157590605687484309790705008093295798284288592812245998925311907809487895370215594231678202254111788863966457394548351272324779597028807117492495282061322050132879882802833144056669840397109849303665859226063541580480975178202652490493134030172111186804608572046024627662922359925393274763662527576065732906351414937884792026047580431579617386610485071960725331393643495504332064965658868512140395228008234065864786332354739082380159134882268290321206258013079431910873374839606838922434598611542900904111542753891977910269239888831917249943708624811392686909130491055495433897141581759291248969475828048878021028057338110490545792019224324026317986971689100692394213304058265595475984368523378007803652693486198226883634134162231638713150137591762581098748086032967225225749530848299895711569009351545060034921997879517038351644075778734462454052020553423137567982785136205350931872698374403083423541007563721315837165745527945676778195797134607808799098847037261607139813486032666984371881162744189454414244208587229673668846774201027050471781329534878421713136847946710521546746615619101155647562754504179165637194433781663628737248157934560763837931019928793877012623797196454884587440006352326096001550174336099155823669093655605843318700247780097174046331522784600191686188841798711994519392439784249598207298741331006361800884065692236910447948086978281129038061120698154739323521248222497410514200598066677735432249504913259607450530997802937161099084107729049347320761836163197482207599654751374749342971962779043403595185044479496189598641472008103226963370331282810714640896842901126761181265908751707453802071566290801416887667500888679348484047331139535716462013711287011845459496995743007708193055854353346558377191475358329387901047317651330743253204346941096566491898594361615777056376921607716577666879698470594106122614651926668900048115739642754373540697531904095012816760919110138666697365006515918503497597946663033880120718022815572886428809263872027439009101471040020349921826782522848120900605298157757924012546635266777805108972478573535480006191647387917793651277979968411435193691613916624448132839685839753513482861827636891526114904680754395051294424503077482358037301621888553118762367229445091241521225957502238258517773888214010454188985272585910770156384658993295477754869535124954816433626697276793122387212297174335560674594756779238323570410039681744785178046415850484457131647992540741391917427873065788436139073575328834211736641833270538819475999508143241050250935338647401802867827502565080596588225156705470730857876337067043175039816988542946805176616598139961028371487952616896473898050550498157085433116293727199594157755853927941489497308555706570972652038272900393476224638479593669151599314464972683644110749727758181679007797836240173767420978211630682435474422088356604212633261367635477274274435522857370324337097199400471100958134773390091609206278369161146422619358878259826188883049639293231078956642800422921926856805677790838769046177913281304372774526133904436881360256014760534336886747999882116799474683298456471064309107252117550035494111027900681134286855588118840391447145028832207189914452663586579478757296138109811258332933392724099483822684001078083133518128564659894156972819764801715662207177348872377197412382691274653991508856119776023661035607074222177130870235990609782012398618376249153549218008070829778448100280267372749103870926958251613108184410783534510429631273918618385797104473149317424137134339977965209499291849305218555100381710579328611387678874472110644799753450701557739598027812141929539883612442947279757853811850737701039657515626309729794812798915252104672559694729747898988600753169926754963232382157153434183738827923430028976755652066094854480372433043401527124538263502370621915885003792924687281442263363337274318298310169779271565481383898254723576123297882065655119906058790266970465368464223178110084799052101804630687942832299968552136849009024456275711395404753557256470095479287509928609031395550074043868345357964456913830675275265166652328943197591151593701236191668018676045484770920066271898558871041537751244207407729385955270379461397431026350199589601854683038040940631575301692066868241752655866646965014037850847848267276949759096459186193350555520890704783458135916802747746598031656838675040221657484930402678177204679461380529466247319109709679794546930091042913505682525457635890426567860413657837137473283218037061498579102896586939088048213369035852204909966368396647586656164229248076900518640137375689059574367542968667355910218063240722197571081559038322155819438004381901555953443827480513220903307858035887439571347425255769161218011876320750055921743429023633497198391232254815836254967741009294319303156899244594299472337863773678081135237793038221103400785046058299705048221269261052324373335093398875439578773381873323506105795630529319330839630257265444092569655899644279663830395985739946368909027913788838782486022997756235424295006155808702646175334440019824103834338271385590442351987235514216795853294544834178381664182045646177201314841762197467582194994240134293265055411014437489972500122888509800422270111720294533328844505508918277800677569693996966235383732416508303163561471195629953638482646873408382489495910689082456820873638554226517604976180581103258869879096514305409957644819300028374792686823701136745849166383654023697459158317697566696634287963942603127238637760527997054447946563468316102951646974383014156161604625081143943787388645939963192400598161605674848234702972092463385053028011084517296589100893781827483766986421178299703564825150879711549429190741580418760259178730348210174246961864951826527098640498317483219750484427183862767962465085018977691111325407240415054108142175294058613936750091652912574532176228927961882381388700995550586649602286368895907311406296128714199968141438187780945185119901415004379208000150479216833283114371035500252221742836818599070568869275029595502298814244407898965318894683087216563786757708757395776224095850498452113028816497444462581383425573667641914847609824246226752269246858386436271556911085623220281133496335650138378641390206246676850455487120064809560460160637708838173149269401849284566508866735411395599087970156072974922851981079945450831035255937815071389353564171948603168377610649398511802544968659061557336918749601272206050709470076839780425729561654337779506478378303710313122556059033256048511865763817622405852998939894472611407001591056403717763546846919235576853303533700679136775187265204346628045891937814132553087106803415624344451438062306880682842105934879962056378238467556855796839614952949932445568310797161045896061704471201907719323674744027520312524419163485591821962343617949925005012626185838573274191885567557037988087599645324851784121667677521185251841099126408089244227980668597790901478901119708512975795928353235653104379405865683842730267312845961506389843156981833956975584676705500734631404066838009838381378241268656110030006325732158122247616653405396044265260131572106210213786055909750940568866002531200991016573290258433268064473171480679587536311173432597203963464070949101961888890560332262952294470793598004710052624930901296497383910677561915851581302919163145932269353896127060883830951919366540506234924223037853950133306244850082936997323593520138283423526949038173946264635779155058380520756100949560776632649309984530950450985013318537415839597592040679495979832211060877976926411857494329244155454230404390673033727753157416715970753089308102254901698679759010171029377589022160721076736086088604384123415522925489489723205425205928539276359817232635949180402723222373366742077407640071984721460286465060868517443651539693554296314649992419216358781225255909333306656339871093812497763835910126832502246265583785478739194973597092883448685069695533003005989299915709656359148676535143673158698457414481238798959680906404896339421727005965773256845500868546317070577843584935194937438525002510786222255261971495284441548552316732126995589386055814563302755986414315055145709524450851404102461440562936377493662448223368808170890627704878105441169027990739711011736257507135290420274040674612990489905451330539559148367667128509343364207722064013117550500994418875295778165980979932505989921123908577304957015393129405299542891170270325157094290850818183325995463335368107706502282110288010681067066133078991579194473707440152865730011300000274847785561751173688235276129341019240969212987533620119646108781085891096288985568639740736494529795450989049882410150153359790939960386449525431659121225885034569711163686656666482898139681865158152868013546562927758382634612364362660929995834200154967579424944030600422075052726435408230582406710241592483388350131034699555786356673203364970016856772343644009827288352527835610089437876717386062068765952943059356593058305044144412685583288820864358153942253724131947965964020656185666168518257833552066838104361686980048337651173542444856619708536050465845150103649416790431646405021460971107239239129744379631858157658327351806289886274565409482770347461677328008134123448502791579226434189320837117207295755667106387563032831144511743017796748048932585373490506602747510099497058149081342049025137578890674588505794517628062513198380958889767424222688387351339486175987383008903474804994178483799144966047959234930550801719428798637853859411921126410103948851708074866325794539738629574062551840379191794034538589571767250061831034462807063013208240960368723919694405336083867528396803380929996645092226423605613281256934755005557272322701136173132660489805548960848184415611065579131417266215941986311055397161661822123266624911254412226939505298125216083049225761979294142162627767890929498794864119800021176768646198744038580424820973630062988966521803127488339818143476368680510915728600333558292309682475811689056249148056264714161306647315083694590023713875130074172040326733972654066806891958451793126450859106460845002528303125813928142559332537919948813487295431438903221494228458456777900963895894122438499118118065289745996574465359948474307646060107151395585696859080720856841393438911582208762205191397668486862957918573312546911927086597512080210396041932246491442646269716594511564653531735444426756159613053694829211821657320907387405342605911595796712739119423384746492896639968363257135014328240712884578327704121830941776457289020019711021896274577641415733458445094221007260761895652871988251997736144772217830188137689992094737466405989144600762421728951564521994354330586266336950776324871300854751273818754004998033482967462791015334567687401059919552970531789678242911165483788339956922564419271353259722673691464513142030256087268581214159098679083733922049524654769665264771311629118961373854044028690627420119852728084656120411413733595019539032743336138089788912360758794301862661972129882531284877200691557920894386190011950207447080370315152225376587280233137903038812439490038117465411605242092612979312661500235326736192095163252901960241363969172223402836161714317594092775164065669824174116308685949399880548912532491713975439889681324132776200462213820262353465214957485051481842243002734996904924563945389376689280083105112420249851509838832402928718627320631768788684255056669688075053131886371073983019454479606580087896882848114198462417311868315362955601522572044765001577544643304484094365376988762367226398867273445054967474582777763910770375919395541981988873880917485500455312405566496022786334971507397350027641433731253946188961333520640140025394515296673447047209125799245323156620443427612658609238746576557561014782545385765004361484264233277348831426491661020271970045274070858085564395321175294672137204497337141594775470361251503925544480327545219918112113603372713843284626127054770148860258121885342848527048422695833774665986734882245030238750170223581957777357939132755413184005645224357558844451830560327441725727435573788306028583126267844257352614617395717957824194532859634095090718966325793841153356618591259643054203159123957585037007333043661780252018652510710185106082917564960143927288717906866449468943322283907397513897733060031903128696262633836096426219244708984064323658970632207744779820362344838206501141913070616574848343437021173719086192441530013563494042686051615485221333362489610972307461188322933656077438243417734621592490902481286977450182264479423165517019176659145895000540282892330356406760484560554629317232679050186231814537666336500754771394709747014527007118983095418178826545796317196413661894333867753030909212847625118251427235235837943838380817023997023885063032580338782837756850366163368856951910697307026410301214374319948059775456644617036599281161553711240355604715054892290835881260247096887196102197740572659035427736416010581506715059488566364612628254597202309394419063492569423253081495726701572632229493229883349237410533724263596690880275409090310668386018533124689292492603151414373044265781641708627656385576195327934035027820398702667762212906102424833671302317105157707490287187437775686387265364062082686433476846247192693678902973272500047246771434401213651890254111834838745745333302651702203299671054553086670982452687280193023058447329652875663153542785916667303545903247407970268591595957465177969055297030055052890504373621095653325872518134062217540866627830752057638190293658173878481476725671609777922859149506537556288766476501002857710968928279847896490350281463602134833869781716354168002329957575846250700594523985261845580895133568302224702726252509716416226021326913214530980211333888498854497886497358005476493605438476429180197518195190538691342840274723225348833113581726591163733855023142191981239198011495464510360698212497545517610459320786753675195217698673442619732740118664724177605690691867407148782569975792319174744098394373788528680204451484557117265889002528639558243328806571975911838852123532913859343148155945705071160623392412542768451261887300041821190621147444661325260750657558764700172989100849211047875072051453258616470416494630432304630816427380789663846646222326723917097914019650768439635022516697149896618198379555279969097202553470137561142971117955134550889851940621299365816177585064640951154131515001135332379206657105584079616692579861898016669142407464008180821425329746342290009580559498115372849287587670943113436057930966495090464318737088608243146639364283561439673189760357834710466849251874874940850555884209806891016955096409776187470132182455428393549224912545987258015005833046677934647306831193479665262717712517330345774100889054722967153554198615069943707783450569523061286804041884973059436030902621566106852463310902842725805865552482096144440382701355794723161059896279130645086698778015146771147459327367546764994880975515398423822446870419650899642859452556761383939840694508163031886332417697216424626969451220113682772147295885377032277578426746729343639206698464808354908737398003565614668745310885617495819157391335337197478004526659173788944924618778476846659896709107295431093511067063921261155701075928831486773177672417818486232470270647146578672592261955750190325108714886606499185738144801625456354615529961239683570728315550720551478824654086324377816337901537272209618671081888953194277401311237061117523174956778723140114977413014659727468183530818222742770119822011027119574757025416192103942414566342631078104478823737379894497527780978593930381454920917005503790144994074286298930187017741311803662238979691597925156509806229609951792403419251347504717717595997235803456610691258816636417543438719320793779515028435203492863200325726641423493629719423405542611938717172342219571795982752554093719724090110389256708125230789091057264467301534087389577087850914116677008341819356301509956275537865856354931226084092779365537814465899974131111690793708141302915822837014808484947889007203904916121450379305512687888888360396650470354823005439518677515773858056732815890432792818591724512433434613400015340376831224145733719193351333092942011844092725179318650079711795998402512935836577500601699349282497444046136791576282519181917508341998298559748540649158336110614952250177903675029230894528367876446788616189842478096989375643731460213347698644592700833651354229619713760609193603605476516050105454336542513257852061945925169756629420015737332330184594334223643580697564538877524485099665631670122525787913994383745833247740622865469879419006542477389162219834022227704076592730344906776366733841678516604984629126197073736168054751209846998496374829904980748597177198959118363892082639082900488526088230513851484864768448949288433879397915616409973651082233209858241301065653427688351866019349588165904015181957277040812670853417117605150035825572302198006762364840323046487205838900546246682256657988347751044910500827763511169535574703415767075702495486572032404569270978985970958825054150915883432977434627527556082187068804275206777351517850467212708567821038580023481320326201138577422389920997566431947656619631853069815924437417145736164946777376772198037372409026477113801794148125615071525747799473330295100285875720552843157083794347005125632064902862803247056109510357605296473015907363572144812455348686346074342143997762371488396409063086242429799216504517864813529302284847033000786590649581355618515098850721646537141754963680601794200747734346996547316868265623585228448364577695264922530683472647666535761594500996697809649781989233450944889809064267554092164683117071384272127964458780110493453461864492464987208074810043859263638562807787134740879691383668156602593489503648180143958329239345485937180944264768231315109052174292546420100165032042472727129999161840353864451612077880767466265507866786512192510541085190717067414768417086871900367476764307569396926018716003456327872567070025219933814572895639900391310430418181929958389852879406232823821581138261396316530794019720529940122339110177182602781102730066188107917358745687934233332778315065100101795773836998022511484020825613662266958219411331884181951311456369888220769924591338175495060070470783056671811895642348185419309469665849285053353013995742987673656795863564397838347617491719126834563457655917081675606104175490895180668490722174694856528966878482783347313885014139865675470774922245906784235404062815135560092830646490164270900920084431473064132217424254870598044993582563586902802060234161854690101454950615885756227141842206674442100586750376784065207623340736936786154043551170001757304685051188854165405461372512017995503878170454262574382776764328008068929100470149379924753821677301532129783377621437883398619774853446112701591877749609422912856418808516834963030178024690481219484474730245120809505782248509749508713735331775975954193166431676474242258260975251679273193699992825078450821273209909350722406385621166117426422482004540860105133677945027007423972549001021620192505754801401330863609850945875348805739126414830132589255169338190680789678752116320284554250307660678319013534702120482843901232137760680819914658633955820015151488978210136438801658655079302068545733146677389905710730601701066420983806692531500282526998904433466514571948354760787122435523435923660612379298981130208499138221346432509008835529233556688582043636756529392216042786356079654122348484529316768462792841889384997590925429446601585342548383139394577312043975304294980360606105405060453720598430855121479932090398002038942650342087321102130421849875304844290501234972595132272075787269679290005832854419878193359656015075537835274573638675994209637307656989790039523449453772661755202051914701926641419632209344526141417706336478384498290460752341117434372323019687799444677658752670610910147800470989436419804954625289505668701543933993717693439603790617640831925919722918060505907145613640734212833005422821613947229484855549048454516818310127350840318841313025585050818255463745259790310913096252042015906105406345319504385699921037356713989815189096623400763759106272462014971428157629569824560983925792620772407389283456249686454965179311441810638278859674932834076408138919082794990865161615547013961100530790826402452666326400632892491085381660083828562506385607813903286531478133001068903826039887750842410954841311268513172767199347757523485850764748740602967111313692448816315566018284089895908131015139457627732555108072079239336819617064764773845513907955002021160939624410229869265426011264398641864958451915790901217577679587684182451557774581470870124945871932696325459428728245905845800835649218989064098839392792717224501212431842815579408747497106027795142485356685908129183484510483211179569123514712137717224399152329638713698677862887851666636786612658719821188909240348991284373581551370672667883611194113242299889843264392615443538708759704459116294750669589940450105441311021095938071106243958645091123056471059449530465630947475927464876787112602867142348064391895366910409284813874334376564877118239184887265394743898422343623505167267680301902314555064446032661991169398964485305077671492498678027029107489993452960156106266439566979293511298708847588324411053388162301887002281586558661065328432408156761696691796639701109898873024371618901107105905276505930122052099492672087584156144593112981755565185105571212777329489015985622228515039669216045677258256216237751548680793662907410181353728062511095835356266881666051306792780186869907081934364686640536757261974129556860289777400421242956387256713364862176227992710770342185556293873517849455035609687218072120093656540333976896975995445438757072293930683154964357720189262958457152261452328116514939544159675042592218618536627966052744603307662940241288765930544993672838410260979986237324410234872424886416893132314258327088636110867347638817506306713357533322916637735554688384386099056815109251007410500112125491766609608254829668323582204368758162842287263532087915403751243763527171075888565158911950403846167299351928165765384953021206734972025261024503187794585882631518392664346653067577572846668136470442714148998498455908554759318667252301929637102643428132822615135666464347145891283473501648720767201996204390607660594222607475930343897990153637336312656653748273276371900205829680999500033557240841564278230642282522338460299056922854909915209969791131479491986370085594788088191902744753450383721515935381586846306496291808154433811718030850377765687656832099450459578516494772247519951684081654834382809818306600547278757597924442298326825256304352491734993016175236856977185525431893911724254290954064123269279069643602853507466807615003838038754275707566878110952079812702569980876908576013142158302295934613766557436540165824708462666928670009486510076657594511786383958266113515269683357188253157751650331180033933481057579449475887291491487388349908758746217203809959664525953171584082110719248146213306728471484886189718243370884899988714077361092833109998016029240749313343702200753660957693195369208414819889134640368250301135588771826930951733310566089932956954769601225667504077376962992258485067588219717592112176390488490919862799986608317784916008358652838282888651458401939038023686726936953466873452565074612089959006987270062747987853207708880641349102020276296025830005960491397311204671043924514856079395212240093611932772518851008681486964642971319381888725322703562961757541621874164520031560660137992490646592792172756518944383871806553956265583528338088636212320156340307474832919144675006812158164375649840353324464209080748828363560169281393256963386828792907636025369692741406475921434649902318991318211736319542640498282225201797164314829400168760837484831477298560731095932246756051449733369167333275640084128425081635378418609934051167185831585666963528280223628968770828615527445204307590451258741103735579361205727422108767348996942876274934574183762616748759552116451191777615813392724368913574593115044548246955452226569117648519139685443701548889487758580215799631136778809198566304418376479195983760205634741631824834058158551610545892820133668474647941580232821409450706734085198872343415702424927637940043153859739208155251167837168849558068696389467589737155199163641972952719285539336084545097758671481859994954189599116980867794282147632216979829952176998851565672213158410316696655342896904129475404288870543344240953036261707360454266284336192696959819235325055257479595145882167551452007242993690880982704623578998530935015100691811804453106564737462772818186375265835744041947981867177800223572220764091911349422321173273517884169431120863543864591203810058821009557251225644934653992180790534767357516888995146109604491018758265197565701151190120145351668926379599718033702496824241060348247344329629822238922149091834445216512967952360879672852083839789389652223822832734229447595116162948547883488852567837594035738003016862883617797028782100742163157648957101099929363067797056355874276557668334595798004247728392552903649876056684426789473915690234206407722424814458763616358515575897199990809348896926419661733605410160940770814096677117337998041944380064940058269968913343180818043101988859957565462880914542082951880409757471142349380710855712940614575568758654555544391452331910676497908328577128127594540951601027808540787225203146353353078549971175394453822772150260706212345262597676062979535553465385851201585347503203356938510652476805840166736931054479996812146990357080332849941156607536177304796679312309656065924242045516746918573996713148327157824634911673727534905583783423846537546432526470828876178611915094321558700709268874026309554255982682267890138877738615514629502787421421264297149643488343314711292129240246356772494574962806993630694360351201421438894224647944181673523279931039546161008040432755373886653525824541193454088502386938793454249861982496954744678198613404963713024198625307627976236525480991641174862658973526644395746553769329381896552865404924512731605524097809348957156765871349412833314997224514514075680962875192465014750812712748033387696606308719838348376085258558516148808337377558693681048520140191574264393830661662287198496669238919892252004069052235587565752720574507701716816624915014779348906252092459538654973750250615920066979134062531068071135236191524115963440450199423500743949139382719889621560970167549683902557737502527672005437429716232166939167290182667083282764212211872284835397629956812579813890547694606473335919476281064757669842244062801394482919148910637497395840224405566896310267336751930966718334616332674936610447909325746649712161799510237456934151621973956934578705765483631525306997012308926032408637350978855540945156090775210284691262915809903585858321941854839752253946722102967384852986462198337043317455312452126518420231176633343490301308708632975706199015122971580451673877035241031765627863268877286992484837867807739491650829713121939842318948782770541757829292908119651145784107841135497929317599344277255235664270463441760246039137358882466906925984552694226136334393966153894517100312233610279865486793487167967296254496214329139560800622021419628681255518513227759996511304657614172262924231074686332945341724774639467924240508307783660926379046687797600296898507493707148205227037161353017444212313934816653974681845080948382455234707716207444098292527407720271534221252667475899937006290616423939759760807376021466095201649174588203504078782691666111211178271713576137261543105506120664401161308581508961919941857912757843959440414982858757999077649988415344787760784414061448222118006059576240657424695789024596494156235873834876205140463668951208408188008157341705441699539552731167345815821643992027169631068485023204745018781360061932582930982727099959251036786364697874951568555980489295419756132743112151420452804660567265702793367278871631225763012468953938984346248258785262704505633370683782175616791325741355676236319930909527539811705689752102480504140348129643981934991865079654535756035440865514513195097282581659522136565246956037141753966093714592859379674998380488822305959193221884873352270722081772782798427669653883890848637126631441269940786165944125327571215517033236921293243532938236710838290653282268002437910569408835205009852951648977094938113147930031772760602465069148961953884910341676453398302844937272289049046956402228756727952758736931265877589501094836887177330799481525693647024279992221330923844646660203010213143936929972068010462924259532486029029226924784592645545428846202710022406547344548852110745963221495020468463304488523254650052270269338150176233675964065900758018884815404182889347779936117808204726967423984921251810647216863491915260601604090453789323221676740765263507283080962600080791083819472870082289991554545663703914610098537474204967929856030043706170095405585312865687879399788386078146106350928053823583171181000323831766721156248373005428876371284548266926208188530866187472223243096298997877095888931657628524740790689973140867460459904322600518911868279794263798784193984387729758950024014888886852810963984944661783657871293202906832762939825892487892443093273075298618657438872130891693719331550944246565725262391930660364756006000914466606219350068887436799598485001836771515521486953372485171662137714606356674673048068135864306236919618467238143443728451817247448006778779325719564692421607035558687248774574672944579140981425989134513507180125742680917960441844501989687765750964462026237620921814669958128038804736973635659788979553863825719256100403881815176931440118575898523660423319811887631569444288882548688045161891613506743766907044973578440414339158838943546768328493786816752319570237236117748576569935468998643194126790394666898908772070969019254477384669066016837338032171569365239304076444974582206613163596771112695203378555724495244709948398198596931958606911232331010264837130079288957267366408301442870548981610388472631152668566427363166753085020863234108722588123492876425986817297645569829057300349449701922995710175385346028899458405933465191772407453160397079738074186005217449476262155815198020885735005260791710342728959061433874805111573727431634577366768954818990849693796003500528004930181271948718141381783295859669099367987987424137876309206625531751902075948789957402748089128564222597591111478303324180545561383090709906464078893245043021245689892264967275078084611813568733673226881513213919794519465875383515465137325459862613937183135557383362307955943672325323029139853428443280262883788907680219873457146830123210230933708772721700051759292491625406209825429434220813898209785985034714128220977323845373127701576553412138052807049787908655888665957548055275957741439340524138848218511075993447875808942488579526018615708559688966049301993823639695564900030392090029340557652370057156426823225951083051807258510360847410035731739491644510351218942394358974621817226979590597013667213831375930594315889337442710749872971925282559783403162500909400080566888962394836440518869318925738701551674466367752265201856625416063070098627238369760964867086061230270828714838144790720895388672237117771543088162621904621384321450938603216280973963947367788945290449254567774948967782302987177653598122733047249610396145421787760104734287106066871753116743072192030911811609450842914612224247951459387554625489054941543420637741463273612149823214221669333103044734728475020851982302361517509657630881743251938128793219249408774769479712899931718589406520763203965343269893272317861472408622869540977122108179679224134846593903131225494775726777785510310652852432596139869468450521490544751108182279237278179985465403245795092004149416268250373136208750028009525288643774164725075209839682689456585685513485909308248343400226834048899976565118117581362235454686800085202669981655793758477068894131253820632234117084230677322485844075146837139502299593636693524056939294906822794571850634718446168251017009955334981551757906048294303402555833079575448008146745014407320117198451496034992244443120416728233353304952485468589493819311065931761211312327943091051471324403461061875754793076558161341640465295109731162547554304254700942264170127068928353936330188666453938185228652036903890141016221192015240815193631749096268203806412522779077610971525652588449533026722236886198056273352768069208505283057917516949273913854970574559915164309162838602646947311525742368496342762780277703276474539618544037550952052225291472786812015727270904079310103107161951626856477164069744034251754401155563832504518995128387766207410664135214224347314279566161812033920093396696566159042921799065132695803796410799234485355085744256350293524826758980811926266246757001333315335434056896112002721855282303389231235858465535093269128142231225330184067286591029124437851940694630480421591689758036023046354791650326977025395772880620816060655997807785877608006019424258157511099169706113822537846190137800905911097413557903279424663923747911721158015280665220532641849254600130740388424718360788455364583183840930559297972012683846877725250153024307338272228708186182172225109281046357272250323324621105894210103398202796760579555449014508708594311184285206538191756166673922258863573324315186187225575535935147210969709318836912139581861409550638576928961582034394413353839976982937065035395601349522779081405398218971494834256145746757893015463595823275507056860355840504975231187246954753017414888584267591518374588717202932094923467842917283337457342764576568293923118697310000954844145974716711186104313697907927324708590816584016690730397919659991497078219974501033523210851123252877998122739048857261878412065353939189916740790885757560004243801166884728548001442247975733071883903560609493989394973231361473084259860462081407945045798898461822799563504498836197246165814869557864571357251855991404805438651083985671272304278446331282943368890025225382300122878501218958399271965988105332850544161679732160199680707121674202702861159266059868124990489269291343547757150699713980843512395359295370412328306337923730295887403275170326073505254255629289296294525260732858473098883565476766703473888400892990262185470406395798793248814623424196032766830080645221505019919407132348511669913553401544738595301034932954757945579239896220921668751244655174539720101604070481668445425630480759833192646246230526670262887962764173520545758578603950117621005507687881084361234340661730487749331392227333269126096451138452404977074152107438322265317338765331242810956470398334413296631127995332581929921216413654931050759244739161400837748390648106869859367078724425345407596062737177573254714039540276485679666695190658721101186669052993784879548827234495681419640092227748544597130447890724831028169283878078078991001949758196671067297182881184923812413730500635076388991255274380153588512162501038259219174371376291165856851763714454916875882432287932026758945677604548341198504288535313178991715245010105610506684994156855821500698268367664235794607917720079909262383933819356594311167065610993761871016657226543701459693809226420309312288417522474378846654659768022720633014085434626863411260107580834516925066320253271225134536239144317113453042344350162750771248990668755508747362897337206690733842542857558074833667483752534347697650113430624578688807413868309247664193730283674008674728724606884694755587570103816535845739299153680608272030295971336240338371278305448297402997587314306071387869565779788413153523120071387865420915530397638727924140367261496996380245925428692615364183504199414457683678501829389723671465555284751215084066160776703648269459033166933344536744816875176805496230364301601650763357639416096052425115782057855463918728378428085870288379971810668625767451158632432822036999920307059891766013552407711939958667995388557654310734436052229106724686634939261485470640877555162220830558359535128048835149865799242854997188095452241246838579274285008408427057074142882029335555730570536242072192821958182868135708942843698877196002268901721083746492092940038179377821258744867018810154768262726221410931592897271730222942529195138742492624755725798847129213969645919316175078333032501114206804350569265885509960165402594518539457828557059508963449388901803512986720515688416622534351199942003409818079160219357423995523372961888109087624493259517833859739378312803327346658773591931360630781362880159507377157188496188728588748854208548170566713660316160593418374289038478901520520051023950666670083053866201961337243304037372161285908094172833639845664591836406716414911785739970582699694481361550907375739432233159406591757919322506762935009193421294829452338369532294170032703799775780613996867806499662367099501372568812938724586379343525793510735121329159048264384435035396970089437473347140799811319573660031597569966633956719025928830555348676805654951380720804210035828395336961892529041996854599585442123119692870144778108964548080033644914207939564594693849470140450665115606168792608343984989832789372034103995253020361657438037990110113136172280461191205095302341990181275388645685756017962222283528349575457275849839284580485551208094527057989020448278876301367194831097274209349097171057709151663609113710985187129705684504916249909389330080051666995261617205753449227554270787073970061577794217595044251039719182670789191866313214273034531322513414316524044116386380572320622315540017543829387426024399153429212389343348193477804953980559001177150264140796117190830728153977122940463583855377502955046877651615693318877468215575618875861769678462682634516575334966019191037245560928342918191075088050343537460908942866886284684713137604951210024335222488628982296621657706710233244929613052012847237041372728749474089340721133708473658387216511526295974934345720271360020901693824761525773004946068356797435248455852947859466805960930212689945319872097098869068940999843997472758702494706787362968868362404861800836886355363363691342673211162783691456902778701775348600573044619537799093786498368336628725868183216313466544762500170820441899893869983235809981354122173250098874780152391661375215152941861190544776011237300779958333743208130996490112675717109948378742889275820416322014322620235478363729463731797902203823280475166218604222770291919848725053266401818217896313853334062870669446868795131128727949828534692970516671282972605702336707828671396491260755996151869443692688285691452488848607849403514401927513871301891856095244313795521210818713255583502378383324731101142097157305771874623429395142796462525206219410840481739237432583922062331461683426458646220149687560529917035411361564583755257523898691519026196251182254350778770117296533407798231665115848844283296457338606109062053009017475261401631237879827307506874791588637280630017131607235182427467182595905627403443423110999749246155470389232837198667180854100474231187999989792078641347989457670630160888003170105120193056627606676964365669917499385134202693359730489087194456027077802446544893412192442049580353977209901742107647374206520006178550743266988873413043642333244643448055063500101871835857419195329652584667665345272454349420487374907879877494325675630967652780802787383198884608130260458829906035295962250659481385444463198347785875588355640041846181593903556352673437282794859857810689596515726951099212146628591458934449335763651416799306297265426181504500110611104867880036127480663302881037882062835522026754470578738550290329368705906680319610572584003729995878158958852085437505248787346860697904975712160006727216304351663503538759350853864581974779364029024258501877978501847126248831547202570732106862618042616292916567296728593891057837213426085546716972859097069765533310242024672097138212528985328412280764935851531373244343500165762772663998825461228935991065133444968698637829249409244507113357583465527448963504734078798422227129592808609873664119598285815188181700872052942616852415462465916477775672894183860938216296877507891678072098239265917900195381551643387018379404614239179038183618215286382327020788008525282929976656660443226585129653213105270134350163524234559767720832003257628565921444815146690753647812895463863635204093421819622446383069717851272866119059830771150802883058929282061438470450941372642958653541591829099894054886609696143488591939163075927226962175203544564328089484957970304914041625185695414588343799720579454698694473487535397525414284311444949145786720209323129129671649930647480801912360154686419015959119576228030336107399366025823696982840760592549875036117891666715754652314680814109775523640587819355588958511015790291051919457627027045394513148608011872337030010878725572496212270610957855380862793649651986622721653396360890330882055774773950534920434080169675040441888591820194331871434660911766880096540967046368789524068609222108735377060973738659753542589516006567226790969528815986363782854992258526818156777349348180377362290261657482757582088276730222514211004491313293073814663641244259037086497902959633571386174691773942326972894904356734874344234282538709975773332756378225620382199022159927637952379024747665189980247351371513141544862264838172418813160030641882981203348099744790200881808231399068338892679452787743178293249481160617750541551230174018021563638555087643531902928627556775511981809811477619639773924889510480648007150842365673956408098261258743651789590331105790077845084588671130130867250358608057113276007440327948145054228711302769226386439653192776579336869057250980956029337276273099487435605558666822399653368065174028697676531421749892530604699805561014557983207756392694676214646136398795484462889534551525726049156676501961233839208382184045309568212465028616978937692195078196346936319505590887899845768354732401440966000355809766361751877746206802172943389329212567921331093783328179039857756579430708769260532569032911314957972559006242101695245887691174910169890033524817116526559356948942330059694475272759612456891470788129347103750142604448666172488386929897794004622636101141446004995397430125487340515731152698718446108473200054034971721797478281885819914357899239984624067236963711538413770453892615969622195895477758936555338068813175708439941816831498349496199148890755343649445092109222359057777636753017239060175644357519781827953547897621127376062733191636796441149694335483093689978084825023073624799482877804289730550061553638121084027779687615809117706738784101397381178158695874642606385321246123593066293463666686199799393921868563796646116725532820290716679603954584538612765704290480290986953971428793755648650644904989233463054598673055666169841045992538870636771840360166894062509361358686937497803026330299678094774700087555772771485702038773639049897812936086695069710007528922525731996763477546947801903286608133086830830159674125615177974978018778586981162792640404535323504182996913398830732108027505503598678025431489409917840331941301144173855845486069126193045177291485221365210005205932602961796495450474651201891621697145749914532770210301160384393477039216940428929822794424110116575740502360038718787963924575364481724857828626897041067118253143680453742359263275042547444598704261832443677084843366338368563469384150828863573617156364334501017404439743357467654893599155054553460711286456974358832609169060243134221002626101244214359987601727316956405288747860159029219021924428520039225382634741243172092317049872929028098105066815785929933733926929894459243378640558990503409891664317930037433447065467209151739553954605600228182576922996377424037399447288100476255745622763999856082864880283532216533572778447175103489598996308360946462330988988679383041220954014663936440017623103219058775536001407204787509613576076544195617662168110094112072848470788028814866512315755279252790086203116470144064578707588854053738377263499479537682423907898149273280489565021541289953500828684428907656867716842187402750425842759224536917339048598320771720691947468431146037300787147895121936000095034699599142718810188355372988113721485912943954607578267713908002155870478597325337071798518568671559422585770307279447948610471580310181674919502193191880993433478646402192827165378796588259960155315006451889394497122557775584406624210797190867178893386782039718295421914321500347950321480690344373792020512612991661492723218091246667013334434836718255962438094850269983646299522876513504023933358019580091608618050119298318078190048987303265685584445730535546233587542467241283997801762634627618292986726138059249741296547542679966435379553114924829231125327613768325241168835682346034080648156752573753353714498013659007858791052281344422360658446060685845979899260035849438831441876137009451389987232821279043029356496763566901410228449941273046687782537154605346542943759909986251816778302791918508610003568092034282199604449446512858014846105535705755182421960209141591596331923455494857802231278460557473182487141112772378062256234323277880923739357776487034337596315165260615932320061232079279404899596688551777061179447675953110445774405033318560170818404496055908282964599640152577236432249513217158591080238528727481046441142437985673134162415296373806300582713543539487752598978680200688136553162583164970526155472119084073281308062413632284656733806484812377065268957440038314447913169552370070024320227629828029616275705475534979561753222454431996891510952448388555672775054278152860857304582859955990899275655533834547016947530406499237100968287949485084345720944178054419560222290567349910635944229452152828883068095684716148386368503971634861700989324838891016872119424346924818770912000676321267673601422055909442454624357309845838388180942673604753007503687074567099022186921044946898833391517816662525160016968912706392549080570965100239397161362275089476886016164054984193963259397224311625245112735158685564355456749051053660635064094100369033569908888060851424397585569200169748592718795361156065948705098786590837798008361966096176620277513900100974125939670021313173672582707533157751013918984384308418333850317585196807816820960586659745328038900023735260879053291539888521250331458120306861994754912247828532053101600592582666644964543216068631625929137120354743927132242475069507805448978032583582259507753485650279592831411925915523392204829585461712182503919807391221024632425592006855971102187374361797493477528875948825051643417616239171783960738064342072766044891333948739452904919386755017314755585626206804602291525313048534086245701410416497188871446089211747939822967316871447548124801458923144144864214648553694374554082707860260163824160496508596151555084638808979805018901159979753032364543440497025900527546736170993874358352019126600655545922213399267931024251224151404084916690436345270494174405627013986896491710446501322646290468904912736596370217317993061402610423750188385368204161314080621758803658217248535526763377029270281528976840299524366273502055955087165844354864624795010258124763903778630016944468137514313287027576267420899459024744927587581828390709150686374381402372763550464580341646921438140674982439906089378882526319305791459472377426918386753650049514411997131578868898418209009671717568831249856946096325219331213496147874435680627398550441044006821233759814424409957733681832769142342521063681055481621211803665525081782356977770372494570893970328863236073620326675905215914939477653415234304087623135835206826718580118052895210493921660628535758998925051495026095374451935633591772969524636964599574258077530395799665515721056245470122426911254920153032047035561057547677604134038111237476970523071126546604982042451275020092524748491713096913948231578521912038176754656341576051292844085572705592054505827195135547011583804524065852891790436691989821397696577426320571388274187127594174030889772890748922656673999697424607987256711424971057555785236448537615724011174326083374249818407556772366082867483704499981751200014830047461956167468177968898610384582185217877117011352625684765582998962184090120960677204262571988913416410403615309213554174416293399730823940033393559289153114004419528522276175816957263413687541659246082607336248441331315872479695590285947512607178486887843291337304396477794166413119122165016549836032359303325318936413673818715447113860217506959647807783982253561009474784994271636989183185112247635765230654981181285791932337172622148261160079249511825394212793915881240047326023056837066693494495594202309150280956404873923887391820249084689838026337968762219361209226156050832248501556486487940844575531480812378253234949466722684671290332612702427572388720307813652587234740960813614471781182143323380988918446691896966960666311709542528369118713009732259374663999943783642150249114051181261755871717151269582112325397472017563863977010692588173334341864398185460737709893813171589528993514190853744240587314050801428831846225055055703436276205706274482729096549437750972363156015125918379877079619433726444626294901217847184505732930383362060412303436368765655879464886734532586987673849997339197335684891140611979182018562283332793172537251730991080820987226716853405621920219947076371011749779439017602132927571839987620553068115386756586618238159467319453003064812996082282608853867767656208936647267492491985054727968948828315773765105583885542596930274558360035070668251748576051648516683108855117889290043449877143654647209230064813828254669687371141324109426174148503027906239527185337004072428630711705565240049698020953527094621379130739883398690681072307356244502260810157500070979373047463839179289478049842898348023545593222573985502149747465810955376418318843713453331769255436231542314675427390023781895340289901399296530617689393456250565098477095652339757751866606713778755910535513772820531125721813681002233511610015278352728875001806423658052002740690911712020986277349000089258651002793439245322205094457083050239250145355998627432120904367331866032094454791795128680922485637840271352674416175454837714489105757565986789318998734807827726483633387468307639253695086302020272613269381942436419513396023917008385939631665764705147269421739482331335020619313655152390178344115685764583349331402031918888378316442383928547757511275571723101089832157828469342258283683023598157668605527436641775009302885137539871601144005997757571202373922615966278483586151293557802436990080000230140667315515857275966387328683953793040911670677344116684751463634490189540484071338949625215685764642126537505410417448125864520242021872768476385811279059873590102291627869758598987868305282660351948522895368725592525953338438319423941358269573111193942411337182341750637575949320161049846229919263879234604719270614576469232394393291949603331333937132821568984869931130972470903837167436775893060523788645344423061200273219906252630355858031893475450605629623187933298960440076542860343600541684991294014188350345089322359785196753444629874223234027638292631622722139248792154966340000039783931978905142822242938483057033753897605173898789597061065223430694434994688111573755086636502383866136459774805255714135181911233467290606050494722604661772791619018320362623024174788402034611127930838128527321788281761611088454016452781820780255951086855811216307925565054190329142288832121437514552082215941078456015806608544402250664328025448909706892526550599748942596113490822942790672501333952127283953183180563653087748317860498099301139590675124301266879452400440009215704635742327637886165239791966581476076068951445852767874588649746035512572898151434312647351386376915945412980422935920154685398978426219294791946987341263813319445246590051376206667505890907237865828550011669733865017156276720163320703265717689967556532375145824624426726391733643487815410637833235534814691123641703698610675930983011332288258552446674677498229609646071877299979770281041291448838189102004813143412245446331632587340062355355115044368237101281719125142551493412877331289473042473537199680761777063070984312692251712923559918581395383903653325535231992771599611421476602235965664080897982498060065472660475748155693976154935311109711720075380613550282408659455665047109086035962472206214286380545845256541406733913235099997812622571122173638428659256192009490464307497770293122783052782131430538029307913457174903200449925748010791834701436515776795035790768349550832419061746772842178241897805402214246966494653908308800925965321647484702054765223561715402902574929340420526081278410038885502517935099300373394035130304841549771719923084518711638145917482012882729848573695668581827106117128215419383092135555133443452237734707429410995082092699569353767186622578430576247913991293511564841321416321648555939755164144290958201764659748882896130859561010607223875662421227890141280158199914125048601817525906510760830451827762503700929943029451265315688204969029939402000788460197849188410016197084483049081862790491935577675308972804387253548336815412269180411938498778444415971889510661765058983153274138700286665361996058093840189703312297150328526649553886641242835832559646364423219202763459568200931094662599531234863415250978555018166702800004049291107360893102480706531905737684994986847110781499242317261379434664937512091816781428422866715901754957439928205077546597596153918088972315752623755001898910175556256479823760730203661253656162084933688959845082466080592348733202007312405308900897078063310669488010274333263694027026150376715794702544223056762255932232092347763010647816139533186457112012780773409058710339712623201134173523804266119281946942558047703364558670475031589285119244155446685544832237963995570415920623078100155019982031604797360119649895664648111786385670530867163145384929870036780574567817604939129767433427742524491970077837310842891630459297671123457885520352247747704445188079982263454438589849403240982904666758474619042491832357104115649210216007630678562400280939243754527928258384418105565888477063107369533713043101360650314974530965152757394492888150136092694931461722011947525628689603905443691439104771684227306709672194114611225987062606525769104855126808882750387947462296074975134679869506375939104979047786681448724133049142722139282993315146306865271844327498291829266808329497701297590291041929540229278393999456121109744081476863016864960684119357172720906197162899313176133463543141887288376912411578196172603342217467972706977353231181754820351891111422174306729951718755220774593637265913468926420117585746532133734830523066196172918225304047461217612405721731690725742311585538403934087334150917257104570381377149749673282663574341817481897680704920498839043936637192978859207618674667103175235380016797747250085749039043910563535153902687264028839329175577911658203529610602145215248877602424586656140038082748511882172366540412399699705283486889268211294195181885613257940093131344392610499332330491899253686274959561776070934660431229649071676799814909946279479399270218712179849263542566994830938284559366833116281148866341484777206692217461123852787502803579488398446375992576201781070385453412267004524600562107030191003803628037803287248194151249904087550170696787802243295114452381658131656146397975061508024982987860603251256658053135546185647110242605704493418623732796660295758754703472421962173038383065412609573641394727198984947154019269000903779200992342448030892084538118823764321989137502860001317812283267413517348341586515839996133642780383557534203970914100099382154563571085720054055528050358873309400905459641625561028535874818285883020430675024153775611723064415147245088704559498249145827457049499864112062054508777356378539646729064491929294646046612137254866592614407475789288310857346327159903103114572900242495066268431752313702482909982069188705981906899187384101521284579247589928142049553553487045446994075354307170964638084235665341047931577257227090395598811220328086035090922092003847796999319569591268563793787900640516242902964854426981107607229982491561632405350808420407083201317649704790066460582975080191964681460310097301788611242638521053753572553492985659664965687284443304476721891670414668135831059249444552065548923068480978878513652183981927678321575048505276807065388337842921807390741330791673100573226475640400036705501527527824402306106672612479290108507088484023749557242432424955616381389142926136073302198072415643338272123304752219949374248269940168889163686910609596008552282667559645002506806020881804476508544005395961114546039598458086472063546186071590507775597554482833687083924902388193467698167388488119517493793829042460302625552415705307401217893780118599084256809911895368040370763131307890951262653681283840185747055608470047451303345022802717714080487090662648343628945061316569985239749259881041983442401440720532771752499174158307371615498841934285498176587254596517643981792329771213867347875360160241756650569401914849811531733561158139600350116519970344659798267011450739606633773397693295994841176865556636547045763029134191176044588800388631945527489162752304649650002689516823533052034289453184268732986839855394082683018639202332318213165204353922703182360458699424058638432069955392537769489279463433359734117555693515335717016251231450288913500065320606539629490615971203044058852319071498912512783073910468340670638183860071704825777031919199862433462812182302378519478914985708927014474219247708011230488932184850136567636516642901457658458295761155628778891847476881123552918495197962184557284461629768153286745593746329675263841006084947840892993087574826553563946608899237528321102605849064395003629469431139448599101522616012108850559529579813577267450570425107667296826640061808055442397377200165694353345935766713811926039538942575397790934725252148627410718958023688531279624841369308424678715600845844541457084431826445952965715022411010078653061119352287640791995059943530242938087106639730562003172290901858735670729708487996372893671267711291931902954146020652079989427965361822157440052883808107641884220309537349642550038859270392929136035110911629553982914286407032859548623521007620926276064497312402856413696085642483437301925510715561130365869742645025363142997599561228581731660998071699298653147240045125010430565626608595197203294709679788170850892802582269494396253381214837485592831503880369451665555936150583795025388678591234368047049280382695355807516574456190440350046475885763709264936762463162029325847900746892652114780786475635404730621706723122152112978675898963000561056956943546782023493523639964572881028066578860998076172000237303525607523073016284432701833623046922814575776071491886189027221253310798770873569566643183845225519343429617730772470515324713237369750919905024952283164094746942021574191277224385227866852020535001172189807829690666240521545878698452359656787420095650385545187002804334066826353155566761869321320389310039693397251395833680753737114586464714054545734684435011985790191723368056841964593968510328807266462392296785417643865333702260543665064958176019654964294694192491735160265170509027868292223440089202095433068440969821631895535552246101335377358776515415454531165417587337826144278434413492407003942171150810915847328422536636528901701794015591709921279556201479729914201411454708950518284417036905785962067185262491149765180852844912476676067951811654264314806294987551750085043468824094982287562787511794162425857000285827460438477381073958583309923299590324847101551240910084986164265635261740071919989906819426718409069395070814569145751900378496082183993909468394178798145003731118911294914327050066626156695823997198677344128186798906119916354981817554371619711517117297370876040971021500495985398741934347201364453232437398316301084847315645889275606176044749302651921307780484470967869744096834663774351786501698817481785680681467371880101038833271698408884615090343213220530878382745279272106323676323972994112809611664615266548995688713694516353233449441074797361397905564610396379455235141742448518277104433030779974745045421536426653557597592878725384190723019477067069589743393587440376946135227091530657857494712076425428732843005305569365489897946046654595246000183999768411884552800102244630275523159652233188201646450944800366407088987044730399366259195515399969545294095012487170549716608699317074912089163124120629939663093276273181388660557075516738366993880341837696879709072793953466115084068424008248255256095572030542516099199250530205767898048569961528154795675343014505508422900329108312766944081738634496390915932840775034271821689064118415807432218286333401387454575733355063366828058824408608978985963102479219445974307670707855225116192640215698857048711528020694614028528481067565985831835453934817114206310039195622375059749273047732957242677126540043526871307187581107869682281156034055793400736337600537009486287044176017534717981064216754295734861732454090804497427943753941273756636060274189565618355115846919342526373116370241043117065023406074231863685431646418979641395307679891377793701969322946571545816986606120289780941260236573751830876280513387676247253446337718781232775832556083492031837305433878017257937204251833496788297184322406548568927274721474073874300159770429226757945532092931444346396427911703285858721994595220687260722400581594077461255988263507571373651484761531272213175195365373974149139999316264686516574837147613202105813003539812666708612882287636208339173145828805879458961983259173160747631094604960796400266211627405387786883491616645056902217121070974357817449981402608027180135301855457270539836801651619806360419003324911449844437479584310196233102373461728106050927237610282331790693500759592490330455587409225790088172686042517392328481250254696088135572697509432416212168758697300728346109482856368009635395907690343714205187773222015538673434053690676936189231225258993321307702666508907487415009017493144115576795048744907391232707724153410398370994245972202307230722196139462554766860633598637210539333680220649613445990438404390450862901248329609165527259146529503786978584920434504540379071035779474740395459175089545118140893737689627510205350729830468996057376388299673392555465188569806148382444366805252818252418232229111134325031075437020825958523274494067744164094365384225561048489041656488847457491546494578067197053316454177229753578809687388440363326254486415121725211826249492700549404979628874237893941325566681028347742321774387716111659030970653768292527099961912420349141423954677820229202129818920696687940784998197549817221693879579622682866463008749639477503857058849444165159595837870546618550368825044754277632381282283971087414997291752212765372050814645770570563087664551204525494691739187023699193651570590771778872017305314044721938404200009690929718662886838903748045183974328171066164427331502949632440147517064228107965999468945019781789589952359946002745066088981970837986195441142271290463125646514354239496203687162422452800860077608992788278033627835400343605536509849008933490040775857363700012532600332351568188269912433723998627969554567773724222585818595935429754014613592183313510099089265441913446748429660542398719647366377103996539631136982813288875922757454187276140938182890181566465342955601926990552417077447043806005161892483624481091638437952547713020045960697761556426752177496662077258749969731198078250181293326872155774270066063741926489655781771448298331126182435135792350937994390703383082067134359269987114758605504621776935272925537486604643531323581542811853720523830966327346703702211361819375883540756218131315368822228395635498015937536741405179169209128749199829695240751758042371868676468775205425532793464967650569870035621223565739952610022738911129860366234495066599812174092312161745469472252499092610948930324328022397268490469846252089483873322742216408504193900149501648839747095149502485585392615508890362121623255757384983907039461546249463524903156242309071208225636364852081431092858830200851845183031671224470061821332009974427329328947799254211642922991805489786665194599984213477568601843081035942527346662826705685753544613373718358178486049658441923424824722865715246563626666169948884798814312973855229118506141024934962962568130656528954463243426721240563974349845700114896880913414166918338533492438876687329053782268193131313245116854986231436762050632374634825618964199551332352329305905536960385281259867785114889675475122974722575317732049707244132126219668921610050877732854660552748615392828294376527125574734986740671772398159565009645799568446997290105086291680099750716134961602436930917497752749097989100800842721274190605366556795061526595790993484926181167349628605242388953466392165987636907912017265693503481279888393987909029443171682027456373254273912229204711795995510258766411742549108569707192002732929735800408318050085433963496168358579398773117865603502238896586846167425935331883209629449914446915734618579553834665792866473424709278275709603448922931203986273455746497151922668819201471493315538537061424225518496016845154264038126041207749503566822579454310255056431920311433706858411095510866487079631012699414895900973794588787782483907526319380005833371823666432803098239448907058643120415974979084435013287148331824583354843259142669534847486039093929315241776240299165343686144898771924329188350691407938458518248291751327664334136929432688484021781650268250477252471022417669444224987058138691823480996504930448845851392963509996418299513756200102194091592407692110763207624667035037239963871496399000521612831293757638923842372958827580838132889879968607264839999395990163826933307605062748639822294269925645789028870368781433880060791424710816191314706096332773236678663272822073352927790701980692930314807427379760047631796813460141859861472764340963556113548350940910001617646811815081074605820990103996962268751022930603898251239372451822195607178204344534675020669895455560712579285569270811352095069027877979871339094236367591932040036455260652627206172644509013590696331880191305681994747476988871117681725150123179065959972033861162392186278593894494110635343998813175140488930093649237089295031184632016749048901370679534835240884971485142631551840158869771177797378416867943928752975861607468240265893709668140292264145642288964079335468381480645506016405877747716461068028769210589697070546481602870638181562496400600642526906730699664918768850620530955833641614839254227769040432377533980133265244150758845732719910859581707854042387685103219751999466173113592004319908560601521675487854147211698339152494192434498199983352559657066409133054282825896178685604710128042617652448240227962335011287439733347297496467771074882579873120723487196650637767193886400624438121543346443356942491740515826798659791928741852387151860043120700893021508752834694938236741418223132944718965575556518049041246163897042986474356036636409056820475648473187654009770438294619246717621230582373351120064697098980745166531172164800376901581594438845626985568015402680661275562156506046948343280661333633446861100710074039957492164590008991327416788358014918131739118304147575183301485796844241838127550797746205874811893758934785077636401108594063182530884152406566584149168808416337917225796042054652415273541108394430415023260600839317692966570250734039535669997952849147852060814836600942900737443299552714775968187967814368925189730969858335813712383320961307575249873982301238118625551845582119973072719389866336036759856953152989156363851357363273203480554557791392235507338769375195946303538497035687719437857769437171373131135984715333589050997634920194217082823617726237423686615274154952598121280640767677298886939166776242112954570920526436239205825232576660579460471912879437981450500884605982414917287731294976369408186029275714207331833019079761967738585225783993062711617490118401402619715891573518117778926750547304452684733085312094653710990553618397964523618921445946567973079893859511640885822290868119501517085283331269243542406760265002495357843957127360072989138646079334384293557638564926177583873842039250305566385737390087152761841222756186194752804183217963998767837640765027573984893346063117448941507025252013357749594601520144856805229441997575350540617423652315381379941163666745972101760276094771470604232486413055971121195822747330609632715177254981016324702396796743569866930109867987164625478510547715181346519999971330474149390203336711960123603683254871623226073802413554015093210729393542131372054571978576633822426166291769054517520834629884623062376586917467421003987276366885328263057483487257917674232684225890941199617737050479862118832370876927626431726771923254250513875474347390637464299681804067771156125794598680340639128837610294914595538621206680671282035168546914632954824121976466936851479839703285117694387758332303953463438825410490362417765155263487137267780138402590407604540950213165191305077476939946205883867650653920600889308515721048612381834404856360087219155537436082719578118986174303363723673303892060957697701256090642601930598323905730733206789532408665903377031745155077069839853936396487809842678592678331488823161671136703610929058335627365366209202317241723476234968326598904537089735971794788861916016112329777204187949528513781946226551558869115566161163331467854203869596965925827998480667320556634240569840288254568512510557782771621463323926760651045848952099957042945705981298968175487132044794509794551176730836108926066193643558039366772318370152707919091403714958622171275805621348644225937584513397825982367777562402577584667586245674348300734991191160986950354307190919170387003230019404807526682048743905191310559873047864932628670610342291278176573281587143184535004604312783248769449890308863626383856581616138024598275026899970399433449346716067032634168225148587828404147080143567899064872454827369906345234697543169687395675158197178475680621143778957895776342834215050454823781281224040470011440816591979099848398063821236288107307029869934463055380706234643045429243071854971110567594724288080894301389303175623818758316718686903129189624075934775099203060001978951056152622571325108284051881548730062268929963912949834756728316424340541659655949504296486292034956591493108660715122142087692242520732313247738632216577442796491570506775346788783173527802421380585808102738452599267450831194676078250846611624964195723429368302929780629806030026593003336428393710081444042424581477958682045842435005318149578923533336144650369755231341520246622357203469026382603011385061718315332130906081113556689010804781812925865020022839123048007672869343594052774893747161387064479072248418227717054340946193404910783383300767556040872223053000629974220059176985219691908236672177802164241298560686383616386937725447012892860899633050546079452518781903905634708337668216716011793215265427966387498724915002818160737661580389911233109318096603622700254540962758946447371459338010452937785027245402513626305270746439049728431621899060839471144067949470006830840222528031382540633494185306401812604023090696768285966195499532967938789143741339633445422038547194434172418598779483681145303021589804783107288671960701382376171148868765065265821626194952804633925239387298306677556107538279025426409304289057208571523712905978717696728903668766484393437724895121216927361830237537222323678824946733588963754638700298253179336362213863842570777097706184244997111846278637674423337702817630386801283749238964067701254206964921801111229944296722550101352576440054173753804275414226488624573997826971080240302557819742573737283458700688892757659316356414905294748679862835652672305255896256428608990639171819579692693811938368905518303156859210684580684279818218412893187730050728476069123374068841006177376316229060292700398922097189571430781369975927495658510176763003210128108217396719638700285929293010449129466791334994110632895313105685570963566037320627986667017689788428929274883103442717386184712294747684330724486496268293107838654057170006128261713352751185562828600016614995052061666936925240717369974377169053019521898829620451112570794909639297283648660108904179693286524564668121877560584782381993836523466501351175630356326938391813469287968510876602506889361045806038580559141749472624241125875744978895135332270651579499492834404018680630443685189187635182054857570616407983533103885290157554125811113122567652980743572567336134908517988789118072757079975043662078396602616556305723367622264113827210589794457672878754129905755872539764565167139937446466767958849010329735589921954137331794551348471972461861005945162218566071284326211895880584194330037663593948536653439821335688152214564683384754891519448587849180999770352670690784037362975574278792168268224776887832739720095317287524875839619792428089915368057933651758625606985993071995989568908392617271505714969872680186411973270098029075690245539797442524527464253416202113459945909168123998731442575203738338337053032418118537152830805575510042015363839099637411501111544490370805937968295461329103753834141476106497061876161292984532371346822883391248712656618721451087337458316617266009123197294647026741851846548693286356288633310923930374903162315945632141156376105992230905893314141832024547507329441228749485264086881044123018910344259261494512781723262510888049725147051496402016597454785025429527813734474331961227418259455850399875383859937955912088801518314976640048376842509799504984089039120651197323783802586543693205226294969895826525722212627005254517262959389701588392568875036292126435471064717624596273289393800696751130770404085527110744299886636581665173495624369065888480649973325735075292673047641500911839231907168612510594861204138863881215311821337967371019613391891678876789360874743765969561509088256362227575356675975481836939132372288672853824525703845557441607812840554373004562321624507735428598638749676478162623950142708787214434648351708558013755950993739880839521106802597767565861685802466693102463268908118016881003792329254414795772137104844162803833344721394452161046609803147079740635161759107431524816934398376866676015130028640672297051542204976409495707471549346876879718757581301767567959666617672439548098187844467345007509586657419677232049597095108489835304841327872321036939231225081785818436156733986395716985477764473561982872323949456001651050631697183457089609141527418099221282175089000356736220727065008792325327075118813372793220266838891432694844654092953023323137338657270570724862111038784137672831691852373089852680324597862624206934001182714958940038217083210836339715574290306110411008217211715537030496782840980286510114735201729484012308566084836834184512917090650791884019042908100375508894985400499592182365480204825288877843579353588220102572178739118708486465379727818215248998451040083516929448409684576636554950738446079437847740008998342927212486745692261536018237125308017162173589297351486519208398726674883312411018786480106398793724545665904300043238115542360708646615174643320641038200676955424743109964958662989499517987525268812685825878584843031064096612015114134128474800453949945908689559164131191928287703981445633703565892119925913479597518001569535554397767243712895079666690062238179847127582508989582964534657801550834266555413579240145240366957010276163926572861116140746359231685623180103354267653498887678220556733510945418920170093910340002103784709034361206560776643778951963542432980108448813375333526357526720438553926875523774376409442044532259997104893989816722351683479142353007272594259229756115041958604351806437665855259415984264192799426237019575899377332177650408014755734284059953694907093894521838755915715412345700079725639056454881956106012376503701628624811511068333737867826276221186297275824076999956558611038617255782102939348918958902533311799244333579441516018740976637217210953953722755623339293920995612008322430212258161486083144451242498048009353357037229978062188439118143973780122586544129655996853256366825399736376994635723414487182212743768410594134084448479451928047525981794500489132716368432023749790526495856412585753664515119361362318341660339376003196149622950546615792566015494848889050680271744161082106422727794573559791689387481872185128407719272112803981911334197337319259604348431740143582749932557742985471388355291804529800490829018810396599012544474653951418382049712065313167801444546623499210178114039201330619959261814160574208258307755613931578250334384827231193300757154285484711043811997676010497581006923089219611545549953851220818903061993528623170086201163175727764648797127904060641638458742541038772497700927655205529399791479812148049830774966169688682244504089755004992536148757365999960036202736422587840588598095364903918809424577107053936001199371610574669241691281849294138531742438639209720921061598978185161107332645458660746607185771579032123644585613297529319851806386548312265979680904076861092693453094093083550262587718972997019773807813688358515594702712025333033947626826643271058893140613993902897863754088520377855754767104564473505778547066423317569472533938633925127953701808646814604375116280916824207381909114321809445643640103859506253401169455754312461664261967428528822920248928914693066019972885181254147977424806249211744309356290138641763256626182688657393819920322324457450738211206395126822341489181786148875182465917831341093805182232278613922249093894321884309453100023522832970314864411330305378842754191732952423124847718641751046379683286971600869578367506518592934712371087325967514873586790459925883414709368146877937204198060205452551517811215746298914342519036355698524371080920195350024932471617465828527092883343899581003703578490118283339445634467001444033235324674453930032093685646330628603210634954094794156717346951874248301258489072809699616889394170472205345329195877447100529245755553861368600152476528528276160212703252698452817889879675568203875470907657914785214567722064139189449808465795423451523432471088911738832543954720262959444765145167805867697553483804070379279163391336289047464165727632844161218085007157603732084926358872828377395336905173529099701500809237234656560756793367420105536953583059622861424822434331766197321793752688194589669829359861967512804480394088834979852626997066063969701345387243477027570831760732896979115601693407259543966647269446285102726407353106243580874804235579617962825123765048176513654241666797801111370224552285939468419753641238450729401607766877864491217367509123940394778627521008899499319840581217557622772906139093160080857695698787862986417944919757367734688994663349248685399298824239334434450653407550494222517458991823033373975544310036927200087472987768110517824532201404318706712570490910089553593430948989399660258338430894277918149884932830789338228691734494831903988418820029419376095544287873778195452750555660251022666125079681374415923117252093534840559440904287892637592667840439015207098856657008381976053101529090439225312005947216536291844813108330304775521163238190665657175112661764133246563601534825927683748232719258493948882356440625995906932383935952096742202586379179986116297420660581690557605758748429815995643241356885334423792113186147662774766781802922180781754869070293578247284706730627198963758869076055326124879517823646715137625535728026207688082758426016012901401471485377670296007746904302491643597433752035303700625942039948717555778115843713724815617905890373329366448558911979411784710584744966506977792683577169160051072185419481382976140360295214651557985425017192966019936497672316582304189796626705519981660674293259558838313176204766304438052392274855993066948395627868136781336911492973742387456669256829381772787164259124120330506264069830150251445608930310055642190730362278491560483232713235127183368930809759545798822147294211326788212614536485512966923575877457819115417672069721162888367201550233500942875128265848116418690120578638906263850614307355902308940719891790204211149600216677733047004296672066482319752632876858572301295487275687393672012015013399031194207324913106655698924756418247604845881654024083467230124024807947358232806686857549551004520205801179677927217482307237453587134864233486528326303431166777074416372396017617130784685901222155304014458006637289638185086953609269387421402151907096025521148463670309094963426703127037207516447187940994041293942732838136879851733659892483030879691461388284947893216516776699170470279865734379757444173250706211302806878321848628191645774433664042558091158773759182009097290524453094027134406475876820233931124959764855781464783961194145876269286313216820335600214851258457406526647000950154030678543662108675229711771582453503978320458020207504672444591071585293178944769467540240857780575757903116264391004324820726866925648597391356463443791172048401925166373854268543449154852635426363313472801633728115129317799840387086859470290559607421381356481220455916833546234902550408200902604105982061139994298750040720851049050318129547845040640278011368593429335899495086037228134437274894085884662129261594647557846668854240532656670420246278449104312123990995567495383915649187065616166756210843300637650292207382985230970888977963344697575734504061433685201817351609685962229599717566146154582714687230636377222196678563381623275734361065780373845799574468225541903499573708910477190301735307757630126518853220421347980671350451712964551823281644081980266240037155726211532411384987450235583227037270042577537860769876310476228756705205208707732630946392741034398854301506515197478165339283272863730544994302450407956629912578114542491357916746779130934447648417202333851481761234086964117150697750478875748770316887136256047329337456621025042457130968044045157775279249648870729138409611462986092160562542976329101708867664234280333896092152018952287518234617664120653592174480986500312497066802747133759173435581240290837349779857058150165314462138943091667344572403143936323022536693806143285129206359145188813187163255431070809725963572720501439559884819581112063797572451644900780440136586451528355575419333421940093342603962269661194212393053285127012444562399037096700007962945624254051736107187598633409869521570500603808481515343412846389496992747427125365901290329322613770877167576096803213759828830009379730638070302600261715646146483078991933540643491298665314184025860240403919366058232874387803212697292445539738842985730787794077267177280273466754858100504029114870899889569828252759484234917608149461185619778519729248547583331034882284311231513483303192268164523631877140598598139074390906570069126270452884764722966972809413330356363663699486396848695977364147232207300587051625042033404006401993909856831509422927496157689743416735559570573916840429369782933686812047718664431596242325024716023206142224694683655385830373012204117154733780678149026569967012744986508933207055248591147646270804352073159670056650002499311237732956647139195604217324382186470825534919110736417013508937197400423294123991616837452975065724385979509380341912793317636658290371290846557998423504726721991523112937751973996596447144541252556874715300074158986542264644094976499961679944345411182261515467837770433310632550387091084979112179570899613399873830593230819879421190225923092006324899730273901640866574800536805701835249448086308231017039481136422961573034409927512795107475009224505400279504293693659172054158987324364696458072600574957896066331882218397973683884487791954766575248698999158875269534434570771367937150641731607348878770103235839135288516926522084412423600144257829336618070814464981319577033754679087858139859431989926100517163843163044712712066524622564168009772886726988428901596789649272184265658964144234117573840293796346474155721430482197554057533102926187299359310139632177261803596545715042414617321716425209641093721427521116665849673423247549078147634119217119976687881894917503039955851790890945562839002061017031665271848072588994463874672622126550650801007728824530389333082339301662632829112377318218445738519628943746152304205518184371038653275585765040575462589617246043864896013562659687357737855824064911361902865218543167717766559998077568328789020753803007806960761296850009867612995007013696437798015113267054035026428458917680384579671224252823150619973847601328835574520242816815354051590856095323879329823816959379702564367227649355266102444904045767182707081277371661777095731481099481310124877202141115019221687333215767118741457638194851041386095090453803916155148658585842451748015319583113773761742237617880711900016086441852071632475035670805393431486726769846482380926169827834717891479327731158799494602278922665084084602824667622426464341255930651219646126356360340790404276927875534946036799859964302836803149493380319902108100471117150069796726990722171563826609971051247424238376783814847896314208415091956924775528441343780936236656617361346897949791914283661497934496519665563008189994949017452443690970351330269729407588177805637003363709182634880214162995872920299742878003998679487840125514562310535824830885581742206927022881838114989063332680312849082966879862800094175889162109627025271768408774961400355364792159635305476487517116296943398191910085870810398798203181188224370451060659498730516828719362305026679001715095715845502792254931241027979356661024748604756825782988904206778957312877496921428402392120587695859273373590580246762418845214657001311780637472917909701208026569406935188255512508902705820369011334235322480937636701566649306470721577198836867999095452171618787459287523763664850067086006150195174304684844402542402298190490494397016696192014775411456320958951305999231596911424386328103256675320117097033839873208061372404782154161244475537188173015187336749429643532502755951931969473353865016092205945385545923091146907338535249308882732744887224451069742497610373721135190790975831964388331388085230015290163847924615515936016688255323042029539638852159178419986195749078036084128216064163617322081084972250215673726678233864137843032317274512715120999964688621365251964153969092263984640523064660653606462434347751063028227360083973275744094758673077429510885237108817317871163947736903937266479740103676151404800181108435842027847605729713356797506905514064383970999890193608157036689580914086548312725827956796519512935360826801192391654857939109725508125877064599286949196733193342915728893216718676214451728405086147771665615963587186458414124641729297872039556971725853154184757290121665609896335497376345708415380791225496672467085497352035255188913052864303249817690365224127873912710026425766570486958393515205475650256368783385110010472717337215218379494872064104386479794903560086774126751338045812173213881395698257374641144011220427859901157169301901804501661461597861249736330770486583472955544745854433537462380692834516587841185748406634935208476706433561250116897557537867465602625251050256110507659950604545616295062322842900172407599939489512754927891921454198334467372790259917639467323649454118403770610386449052289580307510537889314869918123974733041130340283220835416731720724767012749183773589887120382027109689021780934123058016554300693533177292220049685901852861340956573981268643814130578007136426720778277736804863472459759748404495151306352242780220969155010051830364800046972978291601425679719399424937035628689709034774474401794589006815846356224858671178322082987060101292369838911890594053218261187314521115434002687260615796974496346518325708228578695990292610679147287463521404594115560524894436615456243061264508962345891321933499912266476142185024540281266184726285215381513715847992829609123902614101616377660320153110378797833455679148445394012207322934512651776633822685172014115952782877947088775555461671327967978911902312171011761594831060168361449641122834176017155127713599275838461381084549023497630600396814597515982779639896075511025691871435109109268608324159494255438343829950199191700941798150919866679223592716285746542114445654909801704469844056044532794894012538869318174224096645021616672625281542591872888285311274292514761056472643826740896938365172279811477810657890815665622283092028606393170204003338994716316284100876310421040684622301049090091157460792764521262259149957378108696308765101627683921968949042600442573871457952733234123557347770486651906752670959043263948685567029773229723660238261964933308488952071927128930920309880792006462370929200059509930646721960386862515601099710875148529469030175259111262367875374438939442059650775661492052795509016541571203171461153967770932648238595861420511412573222651685788248781319324671278866638918223344502612348987393858114691601251643976052233811935243872321539182103187043214731485400017809560805155735561084539658675547473623873419240854355461797984994174189978772428977700556528263098174293795864956758811395332045616399592098739183581146547642439850383048960550979247152708904766259072515632557612110119626819893641520653893241981294187025538849433337052169079363908011295990413184249841165935863004335747054379050315289835478530704085238352997523489502862752796000764603196608356804798318399161004355450092620715265951812890051985474070887157548788966950640208228937257116077467565655267526855033047249922288093273586830060342985995784043287168438145780227987321746393296661135434749140983259529332984240272868915968154895830598644732330801688936440184029071055962063593067331416774552500743919301555546191858685386755741409905380009319315618117388834683242888896057388499602916922957986285801186049502413289907615658347396710189973523419165958903001240304857733498128571248810036951894589239961115826088240248144766518084883453306675839234287712343324770256319730414060552427105623986426370757169176193891346019712313688052930673704407946246792648179165096644502004531108863655039715405406901021933617161811773313826579600682254026606483007253513956656233240965603975496428432894840911905763962682550582644812465466762242404838171572332738503687981533197561667516990947683005390302483637855495936059620920059539621995770597710811185173373787268662357321120737541454720034847617848500741349320086027976616422126795465387915073942891467404508311547709793987394483117603199750930055468220259548177103286161687345130877609589726600022008583571451086755765335662784022276822275501340147896130074778671135250080705818217262749733069424024412508219647188958280811748211039555826521957797132920765105177063592773229856501326881984385971286503024494464601238636234645049146112478921933000339327220403332411493249848441783528374195996742777206816668945361123484133148291891700756226451172475873606205346404729273283069306346146212917442252022251595786389766598696296295890535169138928517351841281844120077254134590720258984715605692687768325841467522572809757514038190350541756928868296626663700819510438891388186031497416935244485954775657841577796125126178026751967528248773487845949878605264413767954726610932111860612595052490333170365332057037147054880056065449546294607317978370644023129389281298495935443505412184594046713318172093135890283595227619960811625722749696371721232283157595380174463139203691159153915894287312918787089763432987653831167016722494069760881930752150497665527346892075128672280836772746082790244370737666981943690129600615935985208909468470426767381438130601768431913818655135116425651526758366117358205709602151787474858491982356063737309889101734505232040469123845457831597761479290525931892406743480067043191226492504265460470887428088061103255290720124064120767292646559210386799727513276901755175047018767239652373569656989309366206031445330287392850081951511249683082646099305613624030585484982661415874759004329766060277238521458957866702839054240640096867747983438429538697397927660531962428429166148800670403527669562563682918147365879073437363772653873064465273313906714063886454641456183313350986562878280866788348389530114998908377857154877977076809219076164697547416974569784087390859575761334462406271742779265491140071001167242961527701781226210276803465873813878261940237540374796687645520679199462204874602315724987345854548697219167963976178205349137793077767954838707780847046930004744409037117125471200414130579305503825425914614013404376728627623650232073063762406904493632997581311089338556980220855099459647121039207263847281863425197744762697329183888673985879465544734028090189944208081376515784982487504611582966210594115487680554898736625163141587850460138020477259429704636660515856819265585927607470301681281640941452225653771625678838259789239484159636259969292706094779037176300804738693831218403900303642785113443233391625913857657486205682349206632285880263497021171956657761080209249420591057208423765383203112093017728135008539255058680515194715852897641686356152918254887856866258801310454682407189201077360892669160768949070116412107236551317981823474517477975087334081826970827705862131678094301932928143660730094913617899341715065789977717172397769965973286693302764745956430745676897105295315802644052665426945295794414672779554173693968730078737539178964372176261598452371536141257804866676314381501467114034554397961262735632873242017515074706989968689139541961642910415287824919955360112268991705953820767597701125890039198592867431730716161779880765571195386896943316401894466653412417190192022482189042396624152807422807950663931588628743758367570979855735932611770134937301776229408990603598865779525522554105904845006992110686357214250861759009775401570905997122348650280676701576083910775802648425551400372974703221119397632582861936973273661463620112016625023156986781113910429600271766969449989677595049983708563139244466917021868350486122273552396144283082066461250275067876328793798487927508205465997914893312941079051634273361591041214009470610035556586655566608450455609823593717564939363628752867802129672042459993116640767437456242043619110014461693634627405345419569252028859613126093129084812631931635751781665255580999668744437563492415171064700932830297817490498059086579882398184175462889728854295850602206511829434260832258490881789254597313779549526106643863784154699498537906405419025667344666783062315268741566903301811506281922230971354165084651133056641834631066739177373983647285792646431221437856659228676981618824511086927220860273994563121209435768419742414859844018180370673017596139331400822111998721006669081165961891768241895440934893215341419032182187012644686106920871203667785661975790870369787888168123162243320682861026942761867701601560114133947449556565573647686579098478793976959418053965907780222068671425761756725512680909808452271819207417895995852024281262573304617222419368423818055265884269121271681463948091514819527368050102688985742257699633018577412663745752514991712193754562104048639916912134704268397469853406541010108651788142836782381467388875460793211342001379103142446909031450561675665374330413466775965445627411356705213269092640690169077197827432006448490575139497823324787142109836340982610970575711362913124484247357696425087590230636217418158314628514992972163434126890109148107708468947979218938084743639293392828199054246313067261007682903178841960970020712311361441663731031029464209913269500083313481574184700669917132145947562439313992725935243635387289933600028533310877226516598868720098734591106018366998292472347137519203821285567478036825730203799367084702298587792441536714756516767290286987296606996765595128103803356266505584680060663850258000809356440119006311374468222380095248248887931000450205515231597495165838904152785458407302196432554492994376898243102508909679718398114928482976991678967988156359112376579858352391588213364043294721681315861771411699062130931790177492125534075068586239219647013866715057089949747445365564441396690779251894072286943114611954483914701659547153249188094539343414252960446209563525065421578807115452083300066564317052233952686794365462984295797683407899629928592061397376680451157445339996146535227931484579205346721855559340279818384472787470586307836348198835100230563419669875676129848231611719083733840857984368187267295501900488909996332913248571606469645172783247736470817329410765397632725668779687929264152630663154982742190397262412384882142561986778806327434419137997452130487983858335060518249053399785502874364850662920559276086921359340475082792243056565554992536777857104796977454704209029366131080601585641988732480063931535180237999922468469663496880727967758709898507062093565239910674164323132161012032749803296884833831239914147407888674666770455131323859254718740740174251728502892721766160281317675526902448448980509214422630342013039586316207603573151775603296042232085317272824198325219406072211392883996579398479858225487546347079377503686169517288564383936945484193125029798886147098192275608090535438467878361442665520558567993793429668221058470593425589221586072892637096628019440241394153781681985256992966043694896149480632652542716778244384394172641078949159502716954504809816654144061430538555230506142707973326299362896043942895453275698933507304061976855431425818232766262246510509785490646281856264535285396044826500007207976012967782417166158362195448121391216722299326552430962187836129737610581412040164055421499632295269159535144833915777353999183690575951646917372767995358070886429358937144285807492370171303944838323365044587596543018212011327649232559742215177079367842234289382591702060547018669659992653470150375666516585041219972408165607097140413028823677786107253919648781087522746336415326652027897120806350360678106886499083716504718043116449573006763354388192803546461912714047174607355049691816795963300795540801769182996239416843603954066464522504747102713183841552176351499869231074774252585082800230733787395237304566956836968227006331697062509492378403935403239001615641208450624079362358889275090870296562480806557035162951665987624721332824624170300839072727673806189506674141137737186809412941014014726898892442207888673134669758996324656480490654216011734043338851028189455747256910873009387411141798765184585254744324968163341290642448213099443088838612418149838421582692305193394369487615105895054827419226274716019948977990878137849353319344631452979571558817928764958398399560828324693538980674631058416766572149097333363134548014074501914545631543233470670034305592082618488410561487662817217905365795383873546848895449182556699438220644671753208232373065285072569206099950264277625644641260484427895980212506378601717006778377851197301192738028700170163635139286908908091872127700164961861727332551505992674659164380568687124083428781204235714853888280182378383954970544929782732361150597384259969307853911373218068775893285828342746532961234413704105876806092794190482339682561191302155856442709260863757556258182892213093444162024912110135317207169277513969336801369746104042842741940037542253724770298078746104192777949040843272244460160131737744059031536122765651376263592114558705062165506411318749891761769702342965417021329053215393578087562777824292059449772120513437140698003947853564455349970175791317218935358313165870281495438986905232878314961383101505603362879659254485248149980859359603214771932657033141041386762375554408666589074438930560165191032266146427941052097297732964623893314780026947849857006651225167073983551059081406360612492787867143306684552615446924577541959513725301578031682235628556124022264911033086306226837675790874294374119239980923359311212214051454140277923625464873220152127018562164943163993395761823028285384812507070209197367742406635166358515325054250587832435382425050111450681366071213826416185987578349614897038660628067407290043806653552681363196307410890349414212537038983488037613306018018623550027492227167184542700042793110700614157969798967169103970330599202803579606464745731648754830213092933106751020861912935214988961817180250356151478298647622347806806722456343373451977886157762117011992956985157321388337965901440538584664455710012842028160891723246853845993985326545596219029729449703968153963495601704699541037752589709737254884440751328582602889349402530579695220745609852182079109300313064299291181591826946329785738561635334841005825273913963347076086874197734765638257581372214335378206541753816226670889651979915248949302122305629368748042279589398480112839997081547080482445971974307508251560942386865315150545945896221404089748093111937514051252772398512407730342790162698248017757413853631757691264336357884133021648125423648874711500647642823546960984156162917856104368650847664696992425127155212251323592934217965662587444915145220562127222762073232926683588767984719831727429800997240966798497046740061432794653083681830101445591699893050958484297293047235175165356183660468791694273687300216236648517064053234241262595220806574909437166130192715258386639646966285576298579563090768288285806613769521555735339061957583379324549941339346976959345012672798177439108571388141820672093912605377877840055923418746289509554483435791801054837503038653737780358357915397681610792398054427384936433574002938023966820026420139497214595710032353425668916418621502072992546176765078190692758093957607522562095132484671971112104380900453746450051028566521019242276932889610575015359614425376532834986867998398209634110769877048999046861604189832450626603463390232939513447879873405860454158234267564760359712536297194499044206444146462007682972328802986827330465448270436925791555826121449036445725834668497606589646409794584768251928815307537108073638719359335521472058975729089921005769223532851938630668512048672009096836804423374950118140649875029482875803143000862250439447650520069908072753371145889644955375780221720259366596019888476795339546207684648678859176335655803143720798620200235810599067345525980163283339265635775407728293266269873564860200132997502070855630463379032359461554641530080944803611190509906857413493602722373046202354858838804517770533161625095467951707382878975139223112795695344928379853471343479634888779916133733251692564309769814970421505208973764547659615931758521311706284750371118528297110216537050310558754298183318944882197496826618005350838385948142495779993863798214266485187421351466351197580936510918856228709548883558551137630890884861253717729113147679613641753395855063873491975375330377585519385368543466722157461635806469851211167207306100496118288421632758803376902980316597481998228104556710744816892779379354424679098607871373326812123490783551354423686713890653809518998778960768230043529079901008984402440143813497828265601805060847574331951568120333199692182390376110016985651107335852319150739164489154802674790068428895561753244789096144182094979330222224110737811286000183734813261105433956478805424575596050033664803658452346587122855916592334135188888000612197593544380132186298392924184603637864961009134826674238085562328303123432586890856283079846141230927316605137755684813662426723850889342855112642586588148592479282694528766949503331387331645871680939416558779166500266351537036038110556552584679331767059504457107919470781488836243649558394990382372326143762639572780080192347292618179704006773478176858744277890067324692368375550654985345355968562538029289532136500147483841310914961556368184907079829194750317201305603230587201303349748871919274261231913750032633243803476844360583475499519140293772164019793869569599228068837373056680932373810672150651307548589060654879566728865400097462883374597701005984464917766716507671579527288949626362567999825662230224279868856888742538699650408110338480634396877301980652201703065703089152401035937919167913357326520147324852047601739004221621537927057888000009832410778644729657388744837518742232715357128984910902183160211285494902758647807596213209167238000321535240100159360215796188578722639671786364871124102927903147919808405571598462175010880171776587847742884916098334803380336100659540291001791028875178844743638506741330540123115028754034786930530049656333077395154697917547915662063601281303879924356013579325099142601859397586764066001918723378360003519220236544355274803978791611689553020849268540419725116976238851415498579390375133647743887104776088245898934661731711491357779626724308961380326934825323880199890309306786487055487447426404963387492950622612417459648657430624368251740862945885548490524210623737948434054985873907249059851524141543322244877603983021649648034474849541185177962981831546125698875607332158675256269323027682905998138680541722667400771792324705655860492144782761049281595814151364147340988120655440330115544718020027878355569082715708011247656651287939854768306768823610752298565569781161298501492717037992211209285830321911538958808024817352336699497801107118195562167601784571871409892664798418987832894782136738792140470362904750388199347055643637671941430059336953779259932442138195190263933135469598114833775141882873956793903547724951071026665798077078997836231994150931733826154961456748825179614258965137149576907343020292657279182743832457973650395776338909088464520925926095459990373994327418781986766483978423379492161946769995060670142501722909546735901007689096826175042037245808927796260979137956647299530250392563357879899742705966535670344238122444860065500925444577019790904886500062185101579806504129978655932288975368061975557127572080525697082550908760396761026767160491344714723422516434251343078077689940716568563116045716804568863743687059108801052175531977183394789838090912010637937785948511961580067327926929909327160206408518881117016059849006744423520469795576349942132355220094965086724800072520234683186127965075569346698824305864546351288010070772986501042390116885483134484073236522742463120190544381844050720137028386860574318708203069264117907027916167144403948740202371251699077602328304646927838377406494439566112732916246463355884891871280614774038759156600568326450734931852662432481334642181317098889817694144655153658301211090904688406616977956794712166092955853188055667700370112275043721332450484382251876546006126073494478275795647129647629120172805900078237096983172730896236168503628236151489935997319916851886021401171161903826068203085266632527885179298312480377887503279399269076472015196472718399600200186009619147863703332683554492488150377474523938403499784380200003999224264776763349759113105146784170098991114522275951806302650315282312539765498851698936909086674828541849635398959322579531282028960742168157990548061396465571624303729422074687749398003583009292489923943321887680452929696510914406348543424922704802447103004577690116987785470013880534466380947900736192137811927541025224687008312322018856903361971909641256499257969765692377713927817547658562509136736252671329640196024945065469581530184252560181128415160620890077550203993184182767467242246925399641672148023185030054856657374603172130746883294335556146568175742961275603393949261673952439456958558050460551297662989749723054817934734023447659465803488197947049841536297068342481882913935940417155714493577989621571277519093174335795597856144714838119600824093716071215940874412475936389158205904049809714924849650549921724947906945083024943787702231505143724348037464601720306309217892996995804915817829567832890893017167732460095624622984647328409300804394576046688210400470662198449543212345788798959895766758752251426216870277237559261260224314680496144778654197012143425893674793764836467849278234958309757810362151807134383516249930066617878672411056122906211451323915658798151581068021656889965183900742943893644564976596089373869623731619939093574086258022084055090308741164271110832427819244785346272143078502357560100868379420584081989462270039893821162727811310625462814501347324713329278541778210184652169058332195679972065107067481322604778470647095024762693274052811142448287551574088508080698596820984454548613182689551318053944528179667329080213908608438659434871015330272943450209947958867529581328297619661449658661345739869958310993880662449994468402038745311805683346572021499935523598893673043349010167596478640992161284343709872298548413255729551354287738138415076140256291766634333097593041268380716487882161951667305852205946736918350602176189698239019164284488108000390264500974491811616550531245556451253546473379627662548980672900083683078186569117283313370213733284059821746353959873187805338475408849751528641769521392611891037190592583829993751443217717215378795184010600446366754328531602418732868006056948960597106968543925776922779914485516032915699560187947997568763432426513216023913331752231049944747899722421693069629861048084260166900934396357089349738916196786271087037244113704429412240241983546631411152189972283319929409120694896397143803144184294584089409482305308971159739466465700864633373023206019636861302242546908602919241088991464498155832608094186986027554086535982315690273193812113885044777219457359710039463948496997479640888351421790709847236562151711439231618074794129095256583038216515622555082857246035271071761399434949420840825943565328194171678855833719747811516955146561423852148357404631465283068003061158376492452341772251705734737159720589450326412241042109132791176393457288788576831317215456565157017615706608817995770305643333947565248775587809615001737932682031901638036580187810806300761995186884418824550321572100285427074667958734099393628001087886283914274776942125788542970936633275245660852946138200941805161481540386123028622155116251937452869732436506959791600221957629571737460195338657546328955680709666889297002802090483229880153646412745677911456224979282790204642390532791275449123886574735833773915716050618182772301406516429126763458127583029876873895880369839698805995625660872440070235091542478379465911220175989064223096280014866838937012757559646970260391488904883279066437582580903731888367284572443659334726607360944406420718594075943131716310791421518573261010003659973514711881790325897644661019659974436253368603904063560607359696635794647374885054106230684712019424592997251936098135050112633273727472761398347607308480053211020668164345347456901549083000687853087851577251812076334860061354193200691648096309857006188513433196326758480285506543337710025116018073270287162784738354295470884027012753711336981656740668070293830134939024996332520820923737767837470674596742494100501940696951959844109030158791160377832358052873191196979643921267551213233635493343918881861977363426598345710320416784261344765984260306521838076891066264963562472180508743041195972081777528147891494089328834562063144690669853397007080507841593766456645631635039567759154339253590471698074483588965083719342097513228139504194237011714017478990340037141315383736176790401178216063190174066116638670640310960879711135057139916024525065438926742024361399680182740283070371530199057882563129505639992483306241906595223964612548208803644987698982157061504106766489515656404924082572270006813248109564786225087642653987071781617705122398129450846837208006863763493762572197640124130716704326193677221052347629188190486165428483392233829274270723447303270313655364305958328253587576511831835620449437720095962146564864666776406075513211864162963043532587050270823875063814642466222737365426856126754404792784998112541523386785259909391449434705715138930996013629111146666219162965072673374370840073058667308810174994221007837956080457610646391218607145802745197533800897732816775818234210586941495218276617170160463734519742909919303300788922162847070488929255553510249578252648135586899491287740254774389620254397474701535900522066923991821330648152098911110452574755556944471559188178844610121722473456862156510883400841761986591813570405495862510377757696042335104759539532978187603438613092545781004701397738214099566337278877534717209103409175018272044193238679286124987904460658210502090248681986862077443955255390388697137838522573602820739119652350001866180270702928812243694153887864673604679606998444493308849529733390735378978522175591405320314879952241704958716519611036773726546355100705052553309376516430241432759827289762755227263231428237212392513422785635313396311464267284921208733896319435941150865817284878150933710185402300975053664113320942901383729665017201701137926232462553254928576500020651599805658134634177065798040191568356849631740037657772290770731771051222661799160361441202105694717629530486619737840893034459991728887919990427729903556004916513988263705590863452030154107091786582243347096401769335349794533159920920714622548388882164560013613971876383380360094454281827971014026798499604334203366705615561908630939794714836288524665553739048146107838245245123334771750747976804619209391975817290022447788700189011518379123125920932719562718361396731132072096201046733707859664495540679237297167743677036070984045960574257454564661629147935970928665435382683709064757084541533295086247602615778878670023460349326884251581479462160743907021032487722472617156181400087693134642462961323808729486257678998440205729707406384300887731767970282859919858950241216943131569534831783855466893663880905630395749463098863660928146004397283524964422805587284472556571139954443290753927183885884951159189369058947686812878411384361848045416100914797334427217467750334496816850364604216481273508822314837008056413647278224504514968303839951253177998335539075165481912469119051454396674824980498870185311195149846379289750624158405952169693226465845162117480326806231963996104853248652232710284493370849347654601476846124636683667942676028639376051662073785327195206604371361960359494127651060206392340326667545606721646578314353253366653796335292858335052827645527951963198924812119992342080489502734841671771220756873524008625557426468435929054236079191530107213354220599409310284095525647175589634429913093517606541749907843807027605390364956226082673062227762027733889898830366123628092778532269359250598096566372428339189531343154933305411742739246408051389947630716924902811454279162039110757252277287072688185921996438172032097704979716684029105575422691834195106373428605960294541481101611094861312909472330415319411520971883131879942653392074186087974699300492525023993023465962195121876599047402260402233185152384333635619883155685807216405918400929748786380353901965460804533818674711939337555436041429326127968230145464411409124439067054653282555560105646767350509712927792828930985137685494469943400665477704909978658829220204451149321052099747452845442444696872236246350500800780737385969763886046453304399735302088999126354225128284946839100709144974159371369710213011349094965612388390024233619606371626234081458032643607979118618108270789760327281010728830576619292040106045567052105621120006418459220940018048230094108051300875571224890215142859019593822756966310151377244251455685450135843707272335547529725818376373069606081623222271429738745987425784739368057951585376376046868899281576121786360707212710200321608719781822041046979882612007771984606083595099437105511510862168994507140377096722887203958099966414442258424786233395516941690330589531522511671421543869756164855401852781188123889245614423564353540947333987946442976292500482371231722760602865435296678152073690386721644213362385150856485638013827647492889871462592939555280065001915548557695046598574165132832856803111905943269378040375399038029992493241695345766096931876720813902894227158899596719154291963014109072488880276857701002348432570365155117826808208761615030594914578410548670922032307621767734981190815606764247286818794876894740214549797953398669538503616501855639457909686152491724868582822366162424285498607212422718712678276988985180136912866376319605183356574301629229465079173584812574996751429136955580369245827478175390786768727303261827199401227195789733592124678087166816865512843614054694519912324481323826817835976554584690311611582865653260214852274218430480141626832245922172970721680104214776034060147928146287630120773466318075688941669151062708364683830817066890505494449923164830971880535309217536567119270918931949440947731907255130036780150546265151496053542965317916987556606310144937662325834274715178801071179670323407986895556579320963185251592930365815546767954529106792060739853111500676371612450602221613467775344728062660624961876583182364227328823234566500211692915416175034409928926377939464148979203595751811144356325177729982180734780743185081796467460022198242365653195717155925177248586768817343502909423885607201647518360416687273550424679431795688040336773397414611323792944644781516320983456866737445707542995502364187437686975808768548625782567296966533674262517397150509439488609915471357424550454046722653344062644363920411436279893730808426391271681050043202702948256532707872641433571000994654423537978006959689197939276653125089736824506807651321727296307665001476793104943070959285136610311018654076096602568296596549651122616055998573506729210980357732685170420313419021453636741289849869218602522087471647629853281140912649268867001535309008539803239497145267315882686032290947208293284738577631418761110994248556203045222103324653056006886790099185971768712322166295025531865584481478093198743716656922394384509249220848934914188419617796119950143406470266673386280812279701183374070456729749782609792981133239592602733570760806167879182049556754563087648888091823429477180526873236923688927409333958640432018362524332326829376238967940561548544296086197762510335480520763402532783426088752704394574218289582341633871472587221205289071765669132216733261975525198900933396384788137141053418892675222948852636744352122604827778486733286662578023610541890126716672349992986111478454447410172778927066055436134815214427840386171691791983202870158493230944491234499451761734161370853476575753473968152133191582976183580497344807998557233945254521825947074101051901949187400426341795287130426333063579448163473876081340290640177970453217205380251805476947926695986000948526223143512628607644096089696356162098979560248099587493676486607556699747827162272647427436897944652872973912836135642473539774604687458502267435580497008624661369134837449859664271453736417924029863837938464869291895957489381756876497515012332088927895289091077168963249663624017446098279785059576444924527439044479401802890963661494809942299456682854036651695045787544860772964434099933931641019545278272197795587432942052251905210323048489558428491165226544148660898800676834915766971868147532704888075798260448633595710753193862910110697162005782291904625933018781029373009139750125848599108671703974062082456248194798234516807574636513993980684927346623646032274850400156152180733799887162169646221287542886930719856556446328423252413186195520906462676834258760104469319401267357572585394140273845091861809471015000063217804464731584836831965707922584846128283426108804046468964676578884785375421409331884392956885490571148610742792470860075051013428230283463206392388112008137252743437863988007255537162265560106540116948188075105062886656942006546155115601242677704524686691841218501358945057941539843114429553908485836020094671128103021173060779735041283574031547346118295671717265818552357943046504588083626494453692238040336619852887235081984044707357412396850075741092279599776796028720752794903358024631246320500140744281585818404284834159161559066215914713189791287292312272165223429111989735805208689348455807048339750971581745614967541046463877971266264725379324513606492349206214260807631040754836675771883168685406117735454878814658966231252582127782734710265514148004630158503393794682301645674976958733652587521119915490099637502249455192213595590237907074234463936994509648436620971224122453586578341217740538519158755629115648554862494097495899399782050002103521849011282114477956624893276683115497726366308488184948918335439191192018781962940476099127225069633454953010924286722897061468110324364949923910734074455796594295796962185399104866131179958511192930974921174899262910100256107342863199021476263134869010743831016522436402284189102919728339288802146047280182399287446673558765090191582486119546397654702868187020016525192621733898723727898412205455265278375883747800438721411417467854635826156922404634654424155208240668647142871812462744616022403352575052168313723829726637465496507725285314101942035202519750736640359689785602273959918515227702435396273060272122982626710798414257397242468016287189379764743951372068296273829311551397884792854341640334016586602828215947299561211203257395737323113361150999736077403663820973703973705097709698064469505059228660902296516698121717037395150578705277564361476286212059146682566098836644641262289177125930706042361487725606300102318703195751174551494762220131831082014214053688395383850429721718679347910234256140371731786892296919686003337280960013445074927555043735369558398068680416894294085623045068717368070900341681868199577310109534648210496515907987601854656558067009622254710324349220780295346443616020581228169629407134182091827612860891625000266005824716177182251362532221520178800743642931381031794039333999865740235169760154385993993188956185097432219499452903437104930920837158693626136123153405072995504982460852566806586522449648891322516837543202913005253715185361233437176877519601998369062289305107692120933994605385904025757250493996076131748451078839108248050938693450085151744524220702510828150689111948348310726263566652714938666537360516413629398731124460017974601519626449043381535751854336865623763601225123695604505631884098456545560205570173982585601962528863991851651309122525106148997630467640557034713773788357941053123959125260965159378809142801191747795645527074806073992427390649609818992162972985986200589940397275335551789828885309424315720835128493396895245079376298957699921304021421253644081897967886118630500493180074289422130032110319293529708759881353170316986526608930113575017731106314703140380823307241622774592072836706943316458728574573687276858827024562762736497776187566393860577640804038518712974982436961807102497717204244313272351505252195352951958043603310416410091560712865544591748265431064632659244612692529124589806638961628008819511942911457707796258364481241731104116289383927869306536301458347703847043808869714213551445048469094398479526929918447670571548490777850379444247217569124859594078962895087589197033928364320384444886174118729954156679073581923410045943400735717975146924305774028229841740419090325260750698882907255060390451884358789217026997467445360416938163232477768530582310701259713042153019712285553550789405995348117278237211836360888250148491271949936011733213904468401795666194954793362832991931327262481974691017599926931070477210503318166680624455064007108015204013640582400070683352338610738679566563360390456567845787069087886482485312141253430657359286033379446892733621073803708400054172520449113998623576098669522477631074889864816679132525601831954104639125825505467064708105274041047485445435798584987756736625373171116184118337862896747980687826509989563287050056925771112951677203335119806409036630221472075267701277646249561817373618488733728999523828808317835785839588834600983546122202559452637057885915832625063396809492192286416046766601256500921590234254620307548903641142475081655633646787760172427329212379024439837535416434791841247783773952683294177037303775328737456906931188325283618829040857826315657392180982579159407676053644466361268638350297418518373830681291706264242438238388120346326732520464418633733559093840134833784482838836621734489166210042055902331172354948731587842685265891497061792996839586038465445372095188391824357320324292765149447969109316929903162828573363944229039804094879643502285834593978080997411304306319661178713497917693945091710327354159140885365776197647452313234190008720894613636334930010618875317874698632257403103548207362938463227243636673749290151006780853515978902266495217854192785217944709523638004577732478332343073393636165048364637494504385302087556396318129154797565808366963483346498004459857548389481491202159802161172023616188403078689166108398239443555599657582777799104076777333020679389495435554581871511760551461524661938668174769458661699955094584030200807308748793199809793832691692303071241739160641525231704900438831996624810042774918032388762082834087486092427245362173099976346507313084000688792768665979499527574021260865642507576484017996513440805913893892646703189110680933020123517813126732967167483128488260911683650417665938261047808825245291679434346154202412821441412313405772800701294403839434145009234834085556896231097428582641173834831542254471804612391566173370597631023674808353239808506898245704565516137318614362175591962789449266606833148427897242308798606438252844300743536439752623288779533490057663512207023170334996682373032424710944407195883444302828820267301715114754571475979553489353188364161677160292511565674614397844505275118613800448985778864121968639030232990734866565456478962483402467627689633154891203975189961420285218251506457030767316407686713756272162881607643435185861785727575024966133300470748933366027841172392204565680988162503636345830671598046521343888010112569160983001881864473738878983350589812208322419638902668212081164685467820105725170171949410896062362145690065534361837642183995589838658092415334154120312922986445759790994254397377066047342524312231341273188514126945183191091494037685312787028415928258578097243527896694934791692900331732981951253092568839355322396921113839651241083442234511782534074611048039197892600000005900833211775013546477226861337168822807534759885870497234324003897194903237945813869485439474453673195851754784646824989615236111307194644215084690477799947420974388664000962331011448583034873808450475552386281395631857943497992047228676775373845358957652141041980719657174448394045296668589910267567487183163039806172225534561830749381658305105806448911598552634357502356773617280044069678452157337191160582542935782926024626492624027698980984271535215099265011030898967342283346576528145224178375750096240747501088182348407953793361159973532331832616624419744811373261617875007483434306681796888457637505316421314088395149631794096902570129996240797836353353143974822532472962625147746089197901823977405091445191103782176230860502923081308843683406570922520721683514840428670931387215093791066268443848995125164583336427555712146796462636576427671200727498462492496458714836730494714134028505381738903737370280647295405557988368537200412131957656725189610982688605546033120603971507742353953388505427622085592265355206335931319090159322755481673323274496331906871649030678564404936234761669595099654706943789685373283476676257115009263543729835320828415466099852490401391751170452101576601543148253701381359066166964079315975448202599233129413029239525668659014490720444144431215670735625701269887185764573243303931246104880053744239996406973048518791970807928089375419722602174822511236161529135502655576022539082901226344663786787414675835418563057611967115326424023954378967197977165832417468274835833134677319606193085846901703197857700258729542505773297209896631631426485247957860413336920195475555025883553902022036597584002160060261018638275551417413459856365558991694644705350190766717146450986377831909070752902398115400616322243128646167609268315227264784499163036944124365147005008328267457340067222888240795332786201934953218173266485833722801450604116871607027691353051415724714958974531194312836112799759076916763057182618508909822323172607932568403835607819452094014504486170201686038539103014781359413448562695158140735740438017245757295319997253813688695068858474409024488022528616678855485400075563732466145097243329246705906091146142186482827812430686169510894188768138590460594482177544114330742763699063551742264384506955701529541598226713930017262611141919200097286543171391334776795832089034379900476605039883797461758555720375159258496829704897437820951869578319792606789648124903133452436010877665319156869373244564811591185152578327172794063438736126140439761345308187289744105616915537139824813167244038019111948269980521455356640893005336720341281921256365034078900363054859898036440469137323338711043523479175198277701195934295048925311597426886086131836518982919125849037310193899678456200419032551107294723730711220788143583146330444830526624860297817280199317824442935735722286157164032481827814731407880594555386209797469807642639633430957589127219058135052801298846694473466494535434774319096717289172392065623698151491998467306532604305162977855991534173116074685073147691295361189498818798680192693895671851998082903424372200761724588682021815082599003297988040924724864285144034936625239314929797180152249880070262900631046199752297463766296335494905203217993558999665480757515689371702670617581606198002970372573170963966263183846969199341419550631663755262506133352779434217368413367505501889034508750903450746538185204318602989523299091535240755921565748156753091213791040982563913156291950117302453366113491015120696075952383054916468812638725372573808829822263440267075606849119199303064805410465734118822903612167173116329634608263998804394105906280565481809625769024936868592517995312868988676633902441303370482641522660233648157101974213202017783938757665991208554311179205537064751064673463950879505113626331329058375951312318040242843549906466868581903948294802928443368940517272370449649529009969999903331425755340574506354358012533408704627209571339184631759401741078183833089477847054017263541178160347232461813837329908223143455778924860311341381105433518821956501183223594202519920071551717789578719702078587806193914285299101973428027965359264589840197410754355981812613967356402127334139622978413319573817152659336908239122761647741993994627487106897064926134478442421861593068137319308138647903338389386772099185215051847124937148377768414536550336527064668288837673935636136018983194349767438026904825050017523391099304096393346473718919137007068231022825734097198119235129929977154173932021434636321272322380130877576663156489293634564123566004822695785734585504845900377654435178947380449844903837820002962151635717888137687512723797328872739605613404280780023915767677690384499404340393183606409333936757882907204900083805409008248447767792220418119991272272430920030616183592777334305982674527934909397939691589792231706241456817802240691276933420863952553338619088017075588886281796556395058160429140971451446219812387247548978630058086521556736872502851166104910326404001860039666759792887807748351145857895321942192025289104209279923529134238000599225663219384581522113398500037798597768546311153254146240268960456245991511381215219274826726210721030645374074146211644227724448603382433130210282123820710145805610790543368846209246606914294976793490156602340227726318916468654943493655120646537654584176953535340506874630948118796867433972111087925459535954705648940167642136876339182022667179701504782343078267749101004209017162938424284197364575072366011448424939930949981267754182780645021883161105563339632595766420016328636074224473053640229632032822585737788837688683237991021814652412755504412564110764813253062979123201028502849702182151426413254973594482492471880640164511025487296190646442320699751978329410044289871264049767867247393541861983526261503174541401670729978039997516645213753000682291850892796272255507771930426659241943609325873139344212838936977572676697091999308944544731330310745621827812396356429318830048991484495376946300319624445096109937490418202264442339866320797220554386192148357335878030248461853684945875512478248908493696900024281137053836449663031862888215064462126557628897854276096947902440832474426093389391837936629957890768039360940885052036022306659646340266477968356134364580526096230100091688111480433407026277880764644812249829425096474555826727903994607297091899773361485984713087071994465980179237156559373297638771923392688136299161185048814209512020780705446469531880217602155573115665266511439481167511863840729385917302219266055503920139780481839460926244630493494970241329248433348183182663509884466831828898749483312001849185791308397798269971840984578228408032337362123775051371035146794243440299529913033312943816902770842653819622557361975964417658117717758584400772727397108195038864470033551539696673615379129587968091881113966533320521615500206768023928046484699388881467484078794093421577198524182329397408470450756836904949412837882472412519436751740794115628277216523773078564390966042586990916057980646712352817936795593895134009920072207186846674834004150650132953173689158987270791956679705798529709731349498403188650652359736322231405537436654830265229779116265910145672286979846698643538261663184009571851819349230561504808957474777297204588233568103769441525162537690876204255622364900166863824464258741038739959320683239633568559889838470459260725049132308147364823538543735149037530562712085996385561022439914248942517311218119562322538000374090581937148376344565867185113609170318465941634966011174183802230737910692061185601955543735595002771399966911282461439214829111132371139986916094309442816079559980160199888493815122994805998388677611585928867054181729447192036302300942027046495967519478703677816391372860931724422694753478687228862397816113999542482750477437208268106970239313415133889450917532517261339923288781589102565651161075501763049674976687786448717065880462720085503968801296943044045623225002230869096630463100385212750290049433751068314072607703596660033165198655369250239695205979695846467268271237161956652988726236439857364040332705104453699964590383465265387356949581465370595130872643393819677693776538852763103298792197685037242245191712269549447926721666595135651952967158818824933928187619861920924893576516387142740206850340440484597104471266808895869945543020213144188489267391025224394921868201302086784667052817319911972347744449003366493345686398069368931446593245359261397650922696731472398836493022583829021039753266340931684660205424801167385195721895065136789260677983859703051854614362042244157560644470400577056815257465539841298681082765305710763141104270459316571421932306833245641816201496177650660579968715197110512985482851104616378428916145058410412683529489013541000019853704014969797466312876769908196283104848371366335120728815502820219955844766904413776465629474888498155291172379564730927101581864676702699036605139498320971301100293178799043922772973921544225681720005175219861661338016123012848949833354321391041274555515833953759557534798432724476728517757302750043467676798772364956993388170066385986885151773510870717314694813739726639009408993271036119561127511999288653604509862012846435009772185474037832318287729524962517111297562042590634326206149961188908467194114718431410434299042314176056790392223612130168587591974202948598729700216291030888556310100642376436660877711830376509260311296293498695481822606353994531741175839462014717482532532043310672751269403123539611801663481618532343059973612701934511525309850226471119444956183583063806755821574233024564943200735533535222657139107571611968040419897927800618917438238008541450704246070146658296233568005682235042410742296386859952494068497354528872422385905085327261078587754409653734730298888495361733000550850605990430251928043182703733153537556535247259839164198573507075816356243408410730289032122211321521791503378333625306693678384689483120301308167690195440948494380646213158696938249911927033031788161775223803240637982385207386689410276608093243038101578329779622569649831367346391209351140834774075041238466933263211075872239543219388294032730827638826605471818190476503579129727310931315959742712382155122460982674507643600441188220227108466541058969225099566712500568640528827987957414961944476497288626949995494111612173453781104369431942388617513426479674522593478721913024115893055363218657400290076228427461369004174709520940456823891379358268246021354425647515071587190742770402292047476674221268041405738367842167762518507580411392213456963862269327855132739934689433066692513724832990002362953714523182806301229780649913039688194091395503796016595163464231492204134070197574668174496284333261936603143751718029155652959167719925430662120709827043758566112165924341701408376166325848893943645620418234167405590410013415171574430003099673557798452869028649078953114105801046587561683613364249073114519494022563269580627063924117827189642503791778921244211856323643955768835376784860529454119672689168793054348827882937803258258928226991352328332100227086028362593157783098380167621827944627679888938148370412460987372748316912615911067789859597868625715655659238700729452382762647750477065510284558202895598977573170139583386661318154164067734246835493843544335090168520441947940640022669335387392804923762848597858118269909837650594103686584495930920547786565957493010204682246781337935593027787844113002662242979698563878170145323867478455826809511553278403686776336373161772693399462287768908469652412508806541319367947783219219620910262289983405904383367454080563502880800837361507526392633760692823323202280617646640267999350315157753189446984749378637767955872079481246294951514468157391798830399126104790790835733667389147674810586379126481768261258668558698635512078487669139420883496700553255066297594019770464208870155312820539360742578864529619571036371040176836787580850540212979122907526763212102523748966651614964820381759401432197405390412067726999765317139599491923785058463048193741152413905202166246969384158182835722563404280330847397222342448363449157491771152282703306338681267211174196204333740167563026885214888310365297978246664176299032304224570693693459490792927069533130201155826700653951918343628868517767095311285179899386690338517648440440320926190767314829887956932211019886992405889093585719085554893425359752117002843630489290772045966531137922996398311977053820342432793907646050421101992003160680717775917858834350659469653643448413075012791952148499465788752993659780668474590243350772411391934277548405742115459718267624437473989048742506548564910669158482497191700255531894124286547540664711168646239906741919028220472960840654804557281589081886236753769232663163705254839299985562306872987137062618268790184339482623583203819829119056672896865544443188725172489763996899155596161228293838098087475540123726377155566987917721731557188991897760793239597756651007750607655435509778294903813680733236309012071590887139895680415425522531385676344940923637579410269158479059475284683693297718944973477776639403201006464163505143303770211182983898622542330297184537742617737847739695449447448857029033763577900517916832585728154359187365559975914499176437053910594740044388147194464189750060801042753327298526936485848337334213943471155399495316271789318379402119166218676042781662780117376715708648314741770178888804969681201064575566113682694270862897904057935032144942194816236484990398545984673613121748798816904913892590001011777796367679743842789898172696806581215028322355760174630602564809813368819437538718463578375010668289342116094189704569244584685983901521912643438432058255893772433393787788248961849601657076830568953299211303597933901130456348121216596649196843659626130539164983766251289633074504953368402470912661122594903208924022054419863281480325877110615002608993603680903866777514926186503366324217944407991871498623537792004360166147154928847417576751409311879180380498486096780840376516131644381167929840414853584062032985358800551549782553182504576194389271099376819446886821945338264143494281822354701419577190764978000462780337807301838806038691795730099184140506125903962270648290245337672283690497522007047284943440019750383804874064978072450437141580848158331729110774060135780131607698356997881830975397422746370848495319554604899352769691007873200894959574999390109179952571168190653202030935227638079952107307492155641568508563411670865785484700614808538834126331360466418859167546101816199206660626492264651520789135365881275604649024947781870816712149730516535050795503122999419866293482812061610932752225438523210906128182891534653508904132497783829396977853480239114768568639599127741498641565045723531980170311367151757044040166752286502519935184184348542220125366797962421079345574134145026292740963055054202293071293866159800119768673871265806992671917154721444764318780284639941224143697986817556798391542956562008892113767098026964361648808209681035184140077262092061226088463194345194712658582896045099352551498706615652666336949514873727243438963012101567077894030117572881903273818604292247298072078514073043926393538985732344601753158292933676069391265573312835773119494934369696814279149064826238190634248409266365659368621949956257398926973577056849509709678317984068231983188613534059652551902916930841841047306429144607792735264161171689884691606859034318239419917581493891548288851479429648118805537951429128183301206702790411852392645916660596206634674599337792353073017396930391191061419370392182681888233647785560889886464352224436559514821521983521782830465135832829990499908870360641928137491207162213033937732933445791075132527152096258848231531269966753654537113681903040809751255069369836585610724032197301844958597549550868313309660426051450454248551160775679959894134537878877468967264508253339739684170686166671782864322921279122177111466919970023770752200372402010161740748784351455036260828860463896083506687967921646852654639215451211780298575850046174596444641819620689709516239327797702596145008461631198185584789311768707288258371110189263803370885412354758143494804495512364677228966348884380854127317871273544733899288693487917774770676311495768611981385511869932647099471742666307548917160299120216686264861716969447442436392040600265094927585003906577533135344220255664526135493038737243734261998570233018940958159747021555605028671697528912839709034357462772840086143691695121195459440837184285542087548646288512688171466637790236948748677750357140205706303402106558527647061365931592132260858571451096760803156004156992257787938772704954562147582535776006514770417531953752202858967274699461840513372335998012408911483310651512304397853669001682899442263013805024473349649567229782251133730781687913167098492599243048062802903620134579814121018587747093015338408615573792823418975340679444801765886731891751965900600279952318935548481498280855062931775522650820125122868776099858114960955791751167683683424137198997627747256887989371459585116321399245460057288727351456866900524024408127670522447325741589828630497303512429672776170714769402334191431596948729911712817108453647474241441194232735882333709742866734817507291825905065576289592170735753222751773832707268535113157159260898349745899006193887503023848669643034685579574683926087016550545078722774947868022766039608615662944572849303416298968623158082740944823452862619717278806946095912330530375332146314340179327373968528371239902579459397460431477880869080500503222375705648367677838563441021363279706502617234866528553051196835066152443405140676149785492581985025221332718786151814248620098352676014063045323779737782219353461076881093661264795221692911166775148378476793973921325468492475814418006286527614780909626588870854812229608873162258806717687686953874521540857922024820461758667197802844878434961895509401731887410898935947727745609700669537537704233802849706431815131597600744860989189316728057800420178426449948040462930132787403500661284066525089107199785111365992523660763177489529597484250681280253444552378299891412790310083128019820270884712020774967078012486193755481947029712494472101174287364222178625895325486667112674640687459412888765787370813227218360336839024401823737550780304067192563560911902419096833151147912023770197831777591969602907511259420085943907728096983730417925586509255337407605067107275872353942955545318117938704464004293772303810095140492606391534686112946252421389585781775592590726652310897376755361886847766837299210607752906612118083477087661960882785400538884592099796773924971028731462451342388317063119451975042491871200611485450756658390687780338880881569031864534240949654579300708892754182629128297000619201253831274363584993347069622138746717563948906714783941239295472024801510200356865362347749444701524627805775211130174682266796526353654014311286492690083985440412869955427763761736868902490820160851457850932010039740363540892924460192147983269381217606592692591058595872343174744985455971039613360287666951528043853728706264479234363023228763034777418863919775172095840363203921930837009713115534133308870298438536260821641089206070665097169916726882747536444315246502117193593529662854861350137974551667414969951217824705942759029820883547220057129085625944336031192464451007651619744941913227707030311548056842911693890815420046098461574978433808768465995715239076615772423771544529321126595621581856791771942406087462082272340019169136422120846039179563988120427377569735870867660159872114770357121561340734969449254181800505770118265581285736833962797037712098804175137759580351929165264063526443222561221243033917074592377739957808360467709671370043093961830441964055431502389505967588643756977333916276760343001025711762588286073138876753766338005768911074855516756219247764486461376413189409513698562433898394456365803344389196596005352537162312818779163412950361258668497464262085031040727321408791385680327400206598832928212191663786171294299232387106748101342704580280943810314287500706572635851867952588402257417585281872844438768032119113389594153236041963617683621530963455227594451514843870030548345003433961188362947579264415433636785726489951296726125629011622936215803657599194253150288892165039161538812320089182266761994040462967892059398056127920912078567235045657497352789354564147159423590782471904600339910879894290160339832638848484254424454921420095026793554695081157634102852763342965955309797766021343897163157983597385217927470803215004869113655838354418940419108088187622601126177576191547684702133451193868995056369260045279003509682394199282023119783415824983190115177799151429440892334237154899614150668198925814226999162064452314361268011787557007453134753830698172858312991399491019683661737154333938884936210443663423737263838637771524054300771253170898665979857434184608734815435760274479304148980038138249024275225740994236975705702335053760070293714007792656137003962255152565066847698680536958637260351548403661863161760824052753395209584411173189205845555342628560928998812710355559871583330817464320671973216333015400715438075044036787169812657179365214434316406119887250517821491548097273564619255966171757588855470623027572066817786965430551223192939445111517952599647434687931083158472021592453691954712161279728152860120719674557622203928226071424300706228503825412041462322843980695743612051402767086378733506639638198046820855782474861051935362513453105441430767372189628347407734862484929687149445581090572143852647546170242757119055370508258791772329072492952982837171883603024957422593999110238003086861561902154809679864646297463907891203731059420652005725914827768927859146766457639926982288565105226760245818270925123078494639936934586357126810091317680291274373660517485519243775649755747179454118102211164641221325464301757360765621191932690736998012085701515719593804660332010944081727478316850374108468067124137137321910304258066221978194566239986169958385411079110097390660843061728828531084128565180701877482551490395316380269320212945138802653332324190407400670639455259381453601999901747658948198161875412501679670439136073064027785956693956938278198057546361545888786248268276190274777657671091422726339935357998100735523835892219989410118018321203988299088542392831804794841475959463677418777196131737701514371111255769197131829943308041946234798744788812018909210577799583932023135478173106053268091687268870883244738607240531003519220370117560285077055506884315449340379666094267395264849844547607107618347496645149701610266891850459372872283668900061648239291582089980848205724480217749481786882336447719185043315929370572534689838535197931438912455680574188556890580619488771254400650120786931078792773560812217587767554280193184006831875903658404991360296070135974571202661966275673393008646399436310999895773462137999206540320744349660069426378808410625105324473287679225957012195226601791625514983541902088379423190259692177774350727485094341702435444832450840133052931281919077397159482675535782828109504048803179441732181448074230795352545427314176451758680751327045257491328531687191537241250118821599501695173272924474736558596199098556921824294600279787654839636004460576821935108870234931294334468344420447491112745279341464077662904107129726765885968659766064883304043135616595234624921706669968312867913372644165133671018819794726812543551619939782333991324309660420203164615167416322835508702672097414300849611329156583149063695473681680765778242191715677442114217647012406432231485923638188336931416219771967563559115818685792950119169488689625560276155052862589278482683570527152394426982943866076233824266655862194256664847548462615028502084086246891286456193365968023172880286085315354339632947459008514613805872590130905797342691359526690862435948678490969496024399084105268201545801079731054058646312467783280918797846362659167732218274020049144143041640749427226777344107317119508626028631696427386678713104912647262784079611566239991516642836571743980942948311300949684547103514056226564906351321947756559869127702054324413708408867203768112389393623513782539402373216415619496533044331145972658323628755700534800418108096057460467030220977846763313362797889314075111623574039396152712839910828774656051648279482809616423922164953532855543683858208375963248561968066827402700168271856263926797782218210654542619022552239333339189691680261356447904625497892187666411589148610900483726693531635141740203648341458621667640919761026193487989585041394476597034727803303784964055535407109754455555470560984278393724652986614572614728854066906844462135959968197400057881935381379889690054159475436143416765317263093849990747199001568754404201245491080011020378451238563461610595052303418864033997812647019776338820756092389054973841909358738072814712274027200346573673189909618829214537520457454012699051352159391056645570159315231427988272936440748833017353568218517221063482711200064106160464913606985419927436516376239223186796683182047008215939304116500910153639062462144458883873925602700534031168481364071413292534166286751633320558117807010297234601386304557891803557633581954916259879081236801057575163475166509843964493937111592706634963152395365466636422098067327706901223237911025520299738113227790851050071488618501445213941499849344300119890632506996426355181456679906508070887524133437880455930118502491144127950354596959173757429562671968468430193643240237389792039439176766656498430935503370374574311497632960906572128198514241836453582635232200197495327531419880554316496545637811322252280912999471467173059714494040950608910815213077035011619525343330175475480410952206922278657127088906645380049596916314624386705345210174647736872816019203297556688582370307256405602301741001940209046022073136374390495951719340616454673012709059659011858002380563331635608606886436653755726228130630294375164028552640003493695712554671728124802898247895838687268408386984498242250663288594692843970417231340095898814774776132003184388903734511841613903050984390673092986176576096912869084906227407307746390627383311617407815209615536539715419231907146770544138246660095572821572121049312629676731325834670691298528089029963340347125101964714138246777958442848432245694817760575851300832681878318234063918399178692667889770304892085036255730992694163104234740689523079674823152699039749456276250481271241498680666461083174411632311137206643135585918271656977092107525626907925037647941888009001553263850638320039191514389544236462925278651106949900492268195213010144446108318734630058689616403576697268267778961510292591316874084541572783866735786104454038451227026821792899966579440345710294843896987818748202083707046365826753491914032938578918529832491253190250270702271903429601914109664699577016472003477303358612262267487481674764040094976997577319346486643285253434127157210492006709292710249104087304960856924942783580480823057234274076519630398499996589218792135641647833596820331767613265644206309677575242209449426599947497465082900733568431302849181118952420424601838542723911229965238467226428469959339347890243049715718545765110322907428648024199186636540816801458598469412555856701625053795998653242792883949876472543446126436478245210080005820063705656197304700789164608306858942923259813189620935644135997493487956824669209976140115220396955508960933653099161335527515782628601356917265313944726089001581284951120302071097578744597641256229618714264112743539477439535389456257577690497420535681222929084502173235139487937095702025185751852546181993650641087150449913483772453738832361587560959844236669702514949434139881709716487591287132357155917798272532609336459782595486396033546158510162551324258516715989078756036454009467629503213936446655390047847094946954571706016471403940233099941148789372987454855110827666154598236091902071610255912792472990501491236656798374696938400113943442199154351391469055379983998747851276732710338340262404353173777374044599187654690117113333214162264897588363455011537519202959126133211079308825199699957277274025580309223075030717086143682896971634136002480460957134730448639100076222342481368041185403399564518529854086973460877431111662104352288042526746318997053365836677759442654670712463963775303025290077346696808132768494201391941685947663256189976453043538272629463524809833698694039301911396090868210075492613167428968828853340660597534620897581292987045627179410430434937050144851371776301925086326130417124283680520746801579530206278599489129397477331640847391074074516135816336672351371143228981897158401050595614856571369267802769461146726835160646100356418598607208703278154160090052881679942690089474635741788058768394002896600860038381730667609588415193440470439460702703090011136134004368906485143553277256405768331739160202152143226779429638714185637605105194613766176594916783115521824334303437207134305522587844796150354410409005670903134127069382896141112875110850724599636276807115573615298097206844625401345579793135304041918860592284187047629016134555278353114456601638940083020915282484651098014771899764617783593625133810896654246220675143468335205096874038865978088592498473848873907089116485133178354582392368384342535088369856126916941156303279355499178902180277438935408761230127881386763531093220576167389584738457506347846803206254461841993520773898929338746775624010174461281702851542334712533180743297343140963703610045972460472671489038929790652685078207651219504932149242823841189991718189446894239913868098653703116554038755282791921315991514061736396595433844974438233985569938662849476699080923809278432712839514559100280698800635383981632477474111353010187259453697419586778845106552107928075762308902500472746237823298115978137955638202390239159024114045864769818054151440593270776318947548770718745023648980068993017980234644117745764115602909466637932787241017603633669543600727054550164654698735462892449900283443821180999725361896621973992566727193741447133733964252740872469075802117419723046920075388752044698205728431815741258893037805587332839349528486343677232055573436901864445948661014841418331361526566573144555108573764190726215368673670214276561049000309804446596170424210199296587960930234776390564837948338459601138417854250124609310721203338477962240005483038485801043572443485707567003991375985046641813036308129900979201176225432045020596645659621995818013814433260189553837939516841228245102262282026599191575857876265357016148540258487577408714655196770127407874682891754895213976017796034569392954338291153124214411834962373865562241179451422903324122881547743571557328091412091730159859888033155120945722338124848687088723287143037621274943695148185946384402000082013041576165121226654424489843328165228519747982913600431921290972049812455238684254865046937292444131767206992363781289410350897187504885856937946117967430464695961504827657308388397127874278789597008315217837407544417427556937274545775791551541069730361214646330718773905696836789052867185564114139249935338110203016869392430710292686324565941885961156131874736010409927667978096462797710425585100768898427574867947003488453860142480951627544094294182789649045260375490708538781195189989996131985356511476164961141824249248251378586816353830035028885513595226694285472009945295922855238810990842868892722494039345605468879170164478340483410961708943592852142880646523522618139866748735970484380343949531775593813880485264991231619686305258250111969447288476421033229971718508934640146437112824444808636043298350795600054421768117479271945101797113314782604018333165725339130648007581329147144389532389648949068080687866427083560128265070530148158781240725026883559317687476037018318116847864640533635847090777346930325700407010330218330868790982024151630078016007310863491776518275046274404138771351959291029235860979990054446407808154464043717748970824894513878336186102861438004180453407219087622925868785336112675674993026429044507707601007776577883929234863857584967976580518752098744756260367101866072784225335497836158260938051550295443955003691797423535474441972123612588180673746174538228947630441951083189228201775872586208253341501194613206369267915527918710335271041244853547790639209698885576947525936720961520012824684728167227210914268274247947518029115851976050596117389925239741792054023152878907196840893677299325687598747321331324380306819442235126581875417926751485277162758962679713893006075976708078774807245701205780722748584393568783911328764679837284633010896567685401424103069962683655933745162244238480093040864873504750152631742940602303606867808237630017559421945640901708319242280287250804240026182236575164658694342067425048200530638539275673314213769572606825046493766480920836323541824544290633313653881516819912324540223314586032955017191179176310006212631522601118990398738473021374139171045805434573281303918979714397702319941675065999507545484379922998330385797899373533547733249867136112193376196369061046091942733402874016338639186593223904942111190039233772508659985561949816491284541451133726638558219510463102847893804992088798546007515685064879527925949569286387799413464465268211149411264988432209740439346737040500981215786310707793315076417944650629371920734755975793161079706526661239822859994080084271182117292861233347916988432806010444748963255434517301164859601560701852577929391682598402614878690996200272277405640547623300420501972716971395390307363822688995431050213799446721108330955536552131844227747279024324073353279932900837572301347368681125200174063427136979021890502518891989475435586190737737383211011796588605755722631513618904722606453223180046616656191185447939607941632895291542423151991110240409688284084909280573117147308599454840006918208396146948531325016357889091921033979663902723001934887713372615812395152617264984498648814603627705406608738928808850768033720087050313006247307633603308085143883370901061498875229787771144484334149369682556732034211762937843698376707867559002911454603275721616996690105464088364456075336266772578156809718604253167337013813123898074209432714209660947747739502673398662118718908469696950938548516692075558641832571477091791685832071863873334024330568239181219172381885186542145958510291450113453946955002260144357933708698029708418855177846437647029856477518892950224345954241252127773696566107402149493527425385374554013020686292782106791037942733423810553117036618223911584313174338302873454511217230031038357601847794156688027478456083990125534873231669481097224346723863821882004397380637323902410843969311618449399581508315597834665736913822801795380384307397255751238956648297627031996325461424201076494655602564863688331882785347516781739261703176051370699572726378443993592776195806525806768963089910711521044547625915718152670396896491511570699924402811763822435220544040655293185756851528844552869040433744220283275051864632171330252789201242862942086500765275696180682588631080996900033266338945541634048160078754250602350556110664209470814327645423324497517799377159541422575801435608081076038175905281745109300712105359009261562093565234472712460926257290046987951731344110478234731596893421815214796470838684081279805486995588595555568602705766609157821059839413982220057665971957504464670138190348049549872829587598994754320517493991881110141706393403099536655540424729697558948434935057935272291896124145952574854979796082443022885957978796450523445448575648373908946070700327113583560250407877750096785179893700043282711321760020299217977860263281905090965553694284893226637155003100393023941089722770695096991519872248854662100706173636624045724231704309764930597828656763870013489814076536931739097786312850250946679423910025630081070483551028348834377164083393735894246542239051512901935133385519463984631925912186057403678056183331669636399093746073973734538289399772280757815853404184903994912050224737972412351254445026183663567989624878286701341093456552401553370780497951060741382819801732749269982113752895012581616626271688631354616167929134641283740086886141402215972160968709804524932288387609434691892582711644655004110345927371796864706824277405001802175214809054949902905950403535154568320620505134962284171374272805529494478445695446014856696339652921092377664227431813874037048589422151881912706407172122417534944540522155623466641911845466279302219923353656015841139760179718071157916028883623177343228775656816801802901269443405982106590484400342486206269283601044745020080089491431888187598698292305104753480412982325067035083414236459001839233396983633402833958220707238971050096357906502894076671460043176567854356106784193127098657539303134525997154808575557159654129277409141769780842377751998813853951003804508633169961844974963698811210092572541178785302646693405496756192668137144197056272742653480582905877176185825382596193446217155368170193240651505864821257523999338811950132505789187931777788451083766874508243087747935052075296912987382765614972017940027149272423928626639697544103299915339771835997869354035800685045259161527096951109323514210653542587272910954789881570478262400027484557593885778265442445816406677377972456785870041618098658795614571562868409431712549736815405333558142145678492586311439866226137178592117892056008228085075327337641491379284122623817519241628300013322074849195923007369681332329835073632695179127566488205068275324707790028152437194133991321341434803764291489663170317348181588530863037114394830912428828527771665273146056449890428108326225930032222566709273678447671356766794603046729103740248244093149960572612437035349896816638561580533046004438933495380698177883442849525484273171772945856630813090982446486265223841815318549031067578448041488156001976915354598644339373502065181621438956647620917166805057995544005114147373811606131067148683618376091309378674456595106404711588460100811936902366562741211906789079359721475949467974514070848637032709249007248315524428619955578323814419599425187360207400131456708178339766968553080742035352078942969295029196359313981402692761189012135705270801533289975880257132780151574336843751437167478987472697070993289030262076117947457993044152453296724435162294981987602623404768637077091537549808248618468025896960910120242792098798481693345735860514993806087300131724691408379170314273378698006419192655777895007883241492210784207056614934113305199423691580294396174380618658585538050949801047224927185657666929061978361312916418161621551179984280552971522869680311316576603602186156647785150397891863771144029368815966383204321765026740854788770608183947676858101979077161954069306277460095625580336638874447249470935633408152676985794971324238370785897650476011001320843891611577613185617573782163062162361074657901329293803849482727761560452726263849219424754848220075520411866296240851824877637342470299322620228562163772950502970559064895163792447804595626517639769445675351725809738987205360057303790028343992013395845035800294087203002298246910590972510562108642333901693690785816916102096482662494105146575859605710735704973276074489794049370276646929703309068934907689480665836402815195122661104401170461812114237078593585481380888248116448720218701448297183714219388275515367681789833726645812048421202697212171513829285720684823949745651279330408494784757708309644751028533301108130403281425931134053548281073625104387656622381310431344775262738330231512990522658077600419310905827704127386857959941867359633054108082436545552925863101125125865285936764702074302843936872559145448516728484250265978298601854446763327745691410575570591063369314401865220587373099212405237907562058697240615316648044352666684175907355742433526855241582389900150942162295238629935673782196500969486356216846457396135264220797163304163216379098297830723465881389529351655911300744688030288772355649211693821670054703438039618363128677478834855413664823165178595438846320490538563515290562401528415009286772740132539413402850297867799646070271611563389232651192596764851820455790753398227273534295950568151844979269818808611072363684336591576382978181504012660351720786201511172668191893027399178342163007142193592798229882007949412749985287310243344261698753020171042850551762229058127100874372875612602472998085705593572298679114420544936398719803660978247333329454424370345222591417596037716751025145825930676557222475245738347295605403071752772652202628721247982803533682072757054122463395664892952622159417477201095190767963475913990879302317968358656251218399410919716975054818097264067371288582490623356302532784701192848030592023023543806871303602167978710878098816911886625013940037991415829467298972699491975037799114433895523125282732706710741518366376565697170383163982463060951189608877854376925945878113541157948462551159973854910392684042008631258275951760471231586767402531979742517050194385497198122871895007567053015245907258820379119905865283466634049270404366024860990797022874341040021904967643772748685016348966629792977782975933460428062316952720339882991636161897147961306748715517164507983499551156773199438506147591693953245564852436581428859940387842106729829052413172354701098335390746628702306180379433248578855220024299751938789553763786532459645006734177068049172531759205092754936771181455163368151375130496670972893472935043639103414576866486058273240800775068801536070983319184956589194149672985792243002446760998856373050329164099882027148217272942157659357356162491605226682776000928124404524187488048550367576407174271885978226488155471388690087817267252940655106017068468229806528579957938105608338177288668210895108909074636594420782593391189789714858693868070815051474618591744138243395643537367437966235147683495107242765320029065859450925053399637364980560633065101810695432886128452700984385140333677147042062165856577670007991009340835634314595689700776836430535059711853328714691330157452729718838795602644636472743186933548258566304910428948383017849157060190928792469581204981437517464550940441399569728197753901989660380355222723792650380559777173399563938577311659857655353776392318399193460810179120206048068642331104971500659470548409913629123489615848556005402050083805415726151307044544109632245359793437170357156929349416101789723822970686020777714570684646214255045639041028804591006368741861562049309319167477542972568661214722250741309920423470204528309604825482495985932683632623305254225423481463699236233714031947516841456032762229993561830230002155402026341456170049705008947972157163909719665901458546066418440305462301205233174964466651299691794221740051488807050798846072576736843756311577543306912722953010333108797314739757525901416266388525951445660469796723501473767781226874415920875802398148754037179441586530810373963943484130273657236888599882356091142479174923751013601031524599438361878309853926354056245286289003427587352433056261051235871372824337568324667168713253398871929331241030222662836948348967046001192968557921891215471257548517226606297916172678857025588605976873392810710020893027734736808017323823052050930673695218118210335112706323392798125820683127400341610943532344741052166475844565809923175395411861323129797177319209887553320783676745065675573154367181128048648818206968727422059985382686092959622179743405107385311561605420645408698030094099935298724553970316709153980890458363259513856478339942538957115492933754889592522847134562578019977022412239712619679069321470432437574546542223033878999964501429174588192313189123024472278281351368785888066479414352302792233034542587450303537527091829437071931762682677353377080174439981219508939103190776122898548703766184282839432213343283426846292381052170333808815501342438011299034505623950499963701324619898899185351066011689570274807664974860376132300012604222127679037562331523232495821557077933501998699217630746005769928166319150956694876886356994976578169966382096512150682388731675585488074700715310340962941263114522723529026747333400840339393330678018847932687322426388667935985692919801168608341780000924336927620595312787102615962890121307517322414739875720647077294962341718813035733774906603971957286632816838776430268900720910814160745457672570089186163616023391477228920635734221801942112240149746902753932409262240967775235893868951974619320674575304024961693737713870107624690200337653533163076939209319767411905796962409407886340503906658203743088572464473056747232852100947588297637990114774937498499478270551496063648247737528915852089814411088455270606221797298708695233250460144936432267240837976359719929634013285241221774676569178808141339215763537688452709099388496429977386828251463171227612576656828746152084662041389399623328635983846789346418600507560397713638336983838519033891231574280891507925771019349998424915265373025775948901694594751002043773433726954557676470442859377888682743543061949252080057992756834590405870769356498192326948490811597111091236301968286375671714686951162957646130361401302622561567803000271898088048889799290609591677701925909069977129299473061737770502605616323432872725546430484531117387771538499585403244624691347507420238148789503375725226744044501898914647717516047005882738612083820680824647226840854563753029783847002254692703430264909422088273950053892693411373084716875908982134698864172960453729642261519833638655006907521304316426565144874713635876694920902445300449472071525811549814356226379074692262203868604333986607171480755874600044753263876712948536289249973011178000434016571622788597064256554810500287059090226650654028194537659660242900581609421409440836529061692191445036734617151884220434050853972558045827308851406627513717771810236313156628151860722369988727836561648621329005905471692311490816919649191258394274854668925876028650943169965750315169885150567274823302589093775328879888179099987199119641220062183191633839728854779035958617671394175444080405622788159838893996050667078966250644946861341149669983418459905709454631130344005655979990600310951351205280205098313014947022865112355866035832607052484296397379614482742726812027767836051900563993556449714085594952003198040706499962058222372833291810450858740823395180166285023768071888644160093802128403777785523511590199326032318074880330162849918098026099231312129123216267772886469484547155490850858073687957406535377841881806031245097437108841650564220308800283912484718002973823900958425416937349141037475463877800612274101370579646881807944600478898736983080047321805749660208261956691643587537218945716338326068815407874036800746228836379022866490388202437082624426356090826006620634716081401231856889213156018809560067619688639153870171828625847274549424194527063790721592717018176648779356407135886558450835769584172160073185357903812910438811352968141503397554885964203377716430065874967881998969556160028945196489275458221514622194677847395262603022890992910739251310507437737022832842014194526080992184093442517940300613973928766422046680162271168804234982159071212170471112727596325991249445664562326494982357089560083257945449477702374183868926850807958503668299382549369853944625293881824034574234257544119350347565532010682842257829634412507736990932602677715458439490746083368672966581132367801241410012227686707836405860214195640988489658610606156988735970730214693369372651073348453888286903508632013663774391483169640090992573804801883754685215997343882458174430064792693367101149968320861549955350363207184724405140461848263634562972976438494988620000722944791450258754806335186726197502754340387703434165438651782053267583551085969501152085686357470622445670206896434590687972460613481282308546322905552739722038085730160100744300761031199984457068752131650887663988637527125025970187838100259250049992923946589307561553028455574683341767390592954294162587399958240191720378278116914531459098221488204957307850046883270944101162984589403407605598593145506953806534400120573348743582983689946034707692923374644754067772292346574597921244989909582567153167418418962993078750734680964177579348202799506603987683631469313870569441307383972059105010138718397262254283962217681481052756504124314285646932435980610109379455229989954754241663694301402608929363783701312421331704454694085933314678251644132680554282462073747777244581371410639436906916343562466067247731819817823059702593716306932231320635636519194526055519141537795685506562604065650217458761858001663823231246362858027374239625854051289731414221862172476632945378775277996348923521807149214029065777562286107376300668477801036288919703370879888443297843390867727306368665809682754568037601240116936697847900311900942603178993257017350230564128589073687651085424608836253755687923931910888393048032796723654230779098802346704992393061406638377049502723518164351577511822303276811074682982574877094210498217077189254952795512179470576133602080106044668617899223347027059352836369544756060852574898796838432143511026869570874891086416711313014822072861247075475498906183987570012578592328074881798385941275629880152577800257624137328672192811644781510401406106382961972584128198372711333000778067388083656306895070939862128292570561226492130545105115090319786204469956641076252637035108758559291754734901053368702043065322895274407404174989452612450251436814598699018981327938828174250720997744718917618661310184448208681477062691632062862508870926904470604631402054666592269380910463676483052536648402636893001366751829305405718050455512385000679863154892624592352223609994687364712239314009339112758395621400735585913271856660510013349998861975853049289987523098764287651816917713198608948024554676505086801147546667387894356866871773862133095159271124674088845728410211298593109525944162859997907747501099621017717061730769469671739612201228448590963242863940569871345256815212780085689285138091353198140403317349867034990006172924824589513260402135389505670729996242352608227821158785983972851850443477543935316465185912594587021039947756765760992211378160864036253111063031680791144693500278688117333314240660128992204256436648177212722712201790783121846937288317515455718645740391305347199138949683392733639615834857715288969623147210278135642615148080666375123222635664577326358975977735594531733319679751185410830656032102017381909801087981975340659486906292166863939067896228713847172042755971491987371948442872265376849557250936862407962777953014995218769509518893601843538050929237006478685039880141680535564204362036526698928800128072487223230778486162484974002175325692883552937490207166098486333529249020011592600464718611417658135489167113715936839193953007530338396956091012025727469388657493608845605656467310792057507708042415850478760099133573177520233739406715396664438122727831500816467371193927310158699800012719803510959225055597989943848406366035777374371019353016299007798904912166378478905344008044944507656849314865897243335840046017154524228359138279262433291937747131477429960433492900124564831615620603473541687473767895082007490557312400329323269016155530344937708028992249714495047384442678934831481737175113845805173608705907876053029218555176367537227486530858918092107708314373616014303460189607799195257974698267202686890031181313991680385611135365414539579565278073307927822633686155876254415489026223430142427972426248097840543497723085911691775824651671185523353935851277343334305618355181688559813069148077367511860187030419017153542674002240750932206460127346303723065745454423277778526172232471774566603482041401573388283427054662628692927127026422104985940112259247845691052020062077841199590283953354642773592044008423863363276170478931554102047634808320802285159462232534494184483183383472752962746594078759534110395635328389282412927069279044812379015675937177332500116577051157504343065742361301425414000802004312103034928029130907609880741454926016040550253913010451369930513595436496255865551457817947579102854193820381240712469707857129932926149417157287207736058659175071086358168558984835241153135080603102887926170257268921697812916036349080851663070320012090996272577429220508379226994159487151667262927010487812388997429662487066718385012017319370714893240721913696227927899900332582633650003216192450561526682836931413694707628041982426772700506872641399637076138614191343392577700893617366292854130764299200326426569516717569089786883769547093225658003031386813989622848810590683449907420537513159415027368935744847778550220430267703298560361810278353765557704310524176920148006433736003506094734249502095781743996385615171924766882049220942965267473972798525833567753077468671668828809157542715357837143541672724815552028090929487917447219155655954760644975554696437573175351007306732600929673206080904567135647082100473779368764370194974728389416407213170964389434981857855611760934716149355503668445673490184529270203930911465522718875066054426679218972681780128577523741230559309409943289951615503251824007564550219428430232703955010851333497776801984815496244287930226580738215921557274026547991067008000308396146093854113853321442778034998259868017300843966840003207008558100521806882128058658372149940090130639368526530336731295934051707946169281836425053331530430964257414204604171644564937480913935978193497600338390956172838449564991207576385966331668871723184359127213040051830883712169284745538916959554714932366959725510746052110544068852553210680143977867549357628292989081926889078430165125060403767177224480391360179459085337010115126689681824568813339335070050525857827229982550365439808547400746585906363466026734018416552802789606110279213065978534150590602862000551067971419387089012740647418164882354797504104855376057780441773094113477438074023016074040476708763924021513541877774849751557608528198368958145626382729850801395440947928907410061168896465274115002860287496209016079113761695472273320818931497737988335653012453894762390335970697253840827267449708562761071383398101433082786413813205812671050163896390392854902057223519842555212833714134267252290729697860705375988783675800932123962901619871046312221137599588377144547411715304715790217176685657950075573386963671722984823174466523814129492542089995857983632054532336393447616421115073614075291096584236223911377703322003858628218717909932852705884031689147891989882355329193832095702280382294803510923820606121576640591428556243592322187776828741932657448372662980837460461603323914999297811961545012069783669585894821496979279443579530703244262757758584420231971711498154098449445097687991799139256284606601483594504252423888630521918295124143135254113465018940464122004844273261931169168134621245542822736240077626766092458478611508862560559020828323085205551301147100534334695667606342641279841744330537210566983851807968923088470570596761204802215343022137784598260534112358232260818139844608438325232453520971839087684326683434493428852047325457094528268217690170997868215342170655537902369420530505446008240677756053265850573866241066823930880994561803440123249080347433652605638891440632974105535464892518866141974367266400018997730914871899807541383960424575426337811980763455438234981497375061600008477155414808068227854752130153201501773702278925323025018103722012512708414571687650854741561567940537454988725952855854139340742856956626094995595192686735018429087352850416584960205190033469879028304082010083321587090883964144691271354280198655286085912893716307470892285029766428051546059881095575220899200282913022341865587200048795595574985810610168432204180596186412606968998234539602584822270388002086338702134912876231174259961786596911908686545748946823568003087015361193856472487699810468209668217085777196355122814111031144861339549430280506734064117168174030351945555683477990391034029861836365461993488185706238541339124568236118816775487265933891282364199314584560557935535052721109874647559336305305097210703263799359478008339832386714006072051790480224699908944280152707676339812211903180236304559638144424861691789855938999406518102667635548319530297166920186070610397497589213758160059950016331916593805476581378096367895320223350773607040250999684815546951017495451305433806049921260601336758940140882450376635450730732521275480309607793295446632713149006623498264725148280931776402363496664199599714234651171690218110678202168899274437228652263918319124043270609538911248360239714211039281461132805477422357009818183532095734738365614184230024886396787532603538112113098375500203438570088942531304620253475464391618075422407642325487142129013297012242634936406725198874844667630828889167632450938170181564415545478781790980446250517576769083229437712259002560113448332034924887288253787988128682690414210216116796584379182992755383165586373002127002070608278121438186002238675870494779860011910022592541241672002358575298359207232552151721066427859048499838916854532708553051006003793287723225093364137667573202503854041023763485713534420829051622777268235528584480976238895063673117575142683830057328538482863025532600005126068353739519639538020741068719830838952915181536394984246195174266690070483698765897286914281284330582120649734101333261851687062537562035974464996928058952261002054799576374961160262658753997709650625563565399613555830550415221056831185649420251977034034914446001693638379010510562019717721042232061798128488952177137543243161183754360120660949212646987515093760371576337095350887862045364604040894283331494483509263949319476126716114334143142904420412810051601787469459283932433595628054870888510811135950033259077947131930217882152385747522779315372070624114803411642107141068360043432306627937015479986427121531013242658280200064959538591442059245322436178626539069547072197887037387271735168235266626575785033662267918475365007347842970630605096230568585772761947072445040029073676831282860546874862112315757475005942850631390908239073201431056674978905326032806336286167392289990552448912831758430198313516284212015858623153322794924469553971697471831068825259044938039743666453443670278971873022624972631396675772331993589620933603954395885495205008184944023359993417036214234462431237545578066596650894265637467731399504783029543187066400233474794102244538253141550104526549141437382314093621108988319611127953168994109674138389832238332322531013953964038103810192911993463615320830308960459856435386868984228619772844022679881321933796690109775799642334823296658494073568796049221993679194449295772399919442816399411083752647166733810258878607252459660182930409211570867336461067022084844220847594024046773128877836882992224584954074332298467288969468003152014558674498676440290651573805017224121226958987877999634495910194286040370876830990365846151575119235284361485082874350307909271296317636378656998484038788105842629221301904553308941985952786360305318078796033374253477576398092041844148083709269561304161379903849592233682897218367396129638172536224369934341194723600397409411943463647256486679853776239940937113259576635177019452002128867182757577734546272353419860806428537891154070991169724737120536757992261854825789343045526208201942796555145726498558196619969338941007641097008059046581737271766416498291672381365873594194163478255221996818707810520218371579504544896290966657872878356818343646614653708728264881977502247530831686481289210769946059072616237637843162173077358213361025794261351815238329905420549575512016538684068655186582487122570591884278779736815909135097471489970704676651275446270504028296227577641743049240151992987474256658214238099708999887350840183659204591964886228853983883128464029304069570475590787384751430471169194168691350294668003495479582229138542341136455132344591063197543094273653151434632665245111321553548004778561200920914900030650235171330700578092692869720673634267048804567269512138622705567578395992109088920391299961206811656986809818152520363088259499637248105978086688726158882003817065737523768190961013679465727437241013857667733943761146474308864540198459800163999075901480206647819711553520025475972098951157017428562670576076803326671923878536631045555593382044702391640480399711248401371623643069714406905968533912910411433320940634093898760419752091490537734587375470882709824365775980304427422254958116568998618951232269964747079010232323096340463856579865368169920724347672362068664262688812367294433148203789528935535186176816818668449967863513512872200503106217225757461889982848628609648814112788720865156978032801134984280615021050691390897411955500698548508974258827274798871495460752671898675141364579370467009621820253202024185426170822689041940145391487401857006592313417813578102497140825012679691148118380355594679507592077493638654751483469083864711904636146971229137267066124710637387531764925648190084342710121956989937683567345375155680154136277911341367618036103453303470991431404388975021043877874508246307947769964870331997842634971495487440878999075392998110552876023009535732082830728196798261873766981954376460159783624140214414091124033628008118226378571605831520571101309669808174674395670985220414393848350582583225040045869534969318091735457293554600922040506176878043808663919784595325333779631201974635895229135359801689075423239484269203609561205812606881202773902492227509969549005080302914274501509534432786577377805325128777479162535318843861319150611275122596732419603029788537592204061681793814644067077720687423236983836359484881663794298966263589190830307608833338282190827270533287825136162607679497711477736251368995880393123245394376978592456668605593659995890286906078692711156958210390078736847830120619647166083671875700386653269486680541413684304689290658311142050739856751771397751130548518658162373731471403522518190238434756024595306775742281927008922487114638355650308301616382383766466075246063153688761155768574041372082365019125986327445964611626432219760769042600782144216320460410449937959300659645101894634950701559107379819089871971150829469522321880445142338957189053292337758432995215730310650345565323608461206280572653689536107439938460245000790968343955946543401691100934417199409685049525225046440736909235945287092226189696414059535900002973500569735573642252095434308630366993820339840112427263677706771787766705634424889260362062091956239164799784407444266159146448883233296375288493383475423174922833455767497951417417975943749464969569174956933871196556599739757342239546135292372283188016700277982282153849651957775261046255643007649351651332754268163223834499134327676664522731592475579227841083151589865588429993059559755400041572523780756360778965750045991000453512801659491707159574189444099591680174699586908957298459571067309354416963629123071023325053138470119063715570921550270814093166917931639439470874291292562601631591631377250225317593780854087144961177064844993759921461023295579162094631164517384342719076845405611541380961185831042908483442068417855372817603394995491037282015871401158642057222729123758734095470914343555541215385477517186985644310063332506721394754444091674269805321812675508758089841990311848030748102405206373820556145873644308687600097416689582883128942279284136191606351099369007953018401172354317497417448944893098809025173957737474316128167682833759007430571107626307744702747300223582400161895911561490845612619843789321934570830066051653499861560197218202437755036724189139598017804205242588097636278915925824125890926533146753481773996734356518901583250441628073195707479946150308184278782472134018685766061068384788551756373223986004517830624150953372626787206574748251880776607411811781325200003833914020129299481729220307136895406055195419673895657511634588187544239242429212840103120180340605108906506000846532226939928740387402366901559036977818069692180998846740372477491011125642384047143386493514638461868554706680048993919598461675532107205764574947862714561416191461142335846510732489901724998836049085729375094793980246571857933323568400736606270419853304083841985562144544208648817209556008324394898635373854312661725855344772716080343289795988055628433955439496309859232931959806460356766196851583513129111883842694422169764734132237331965574706944443466389671786599910787238828268439451399264732340304317980026070466961627894045669699629179400321105419952383260648470565672429353338884873704590803091692780992580819912784859369636142752044245913041593250333424346439822462082952382505227030758755900751137548534736826010329606097344973452980418596290085097690637485594185167470348726580658115537093772850863199812552161623668143182800356912422689388788647720851023929232846876920223155966390944348489804640586953327766741099097689180363725077368000205188991080658345646419494306930425887578965948972519508837698180427070762859049030516417016896974806809996089522407337742635204071995245789725429386766065779000913491745601187111397352106099010599470279605403351773017077130982240622775064442266851120972844906049226170581029814630213366365564579101802447553868940028722711846116956928056914305421420239678057201688320552925827221966317897958826331098948424125423627709831973225996488194985378061748655747253815943633256192412757610687956791965010116294089113901610618624325106682475595292624331828886418837714631295800918651646909128994579959935404198993821226757834652214346146746008658930390018907314662757146736869270373637140628937684126635091500948931685221664310061938975620007023577227662401757568171312731074722599882675515191847766703005008805545575736493358582824245016398900187449222408763193989675921768992835355124719046874099548681155421097497609975625359248308238073270962344723035472442056939660781750638585609944392724225144635175168471246214840792893269476270415414505832571642228992002672288269614961915584369488165500549955036516334501406859094417427164416245640936707978380937629290867437918810574625002802487035895589423264619393617489630773946234496286326274397586051498691521178163439979500655852365931987007621560379205746257510690221728354212489382660789990335650233066170360739738133338521937324597614699889936072474578509519556258110921708644778971687542326155625958312090031429478243607720152910594128631240080820641392329069255297293357741137105187950415916622135093538361395593092134762714382365780990324314853914422353117861955112980305430865543608368281340704935910188058426204758425306630925795493572592052344035081736356272580490226670584101109366571978129878477611895656468762774633348631614796336148913436998599008007841464050547596266033249610049214409137374698352999556088568493188219488335312629995112483206624199208350723378029180510817309680169357486973281764260754905272047323642631657074623835267838529783548130360075567438036923483721281364498619242097190456385892871286181714088293451227143336066110768544205662230220370407448486447145552164866347807797768270636115990080310652485829712178340725585951004529760946283733965861782140733458896934522074231737660063151366293401888986524423911023224049289804265704755780576494878371539525972928081247319181320764285872043509489108937522016268527132912500000543276325638567964695226852671930111767627990903612863955612006012275443776746865682374188776971402259518091761348296723978436809100615648584113173866519504626368610431785598917911748831636091659656045940274186727442954291374562955271122913227497777999587280339285017301885558790757108961033327806690350136771427089744528698570001923483916789808761779316405495161228112732375513529409578448810474194900998069612140810074109852748109169441410742227319374808007946121823468428412320567498658503148751313564657063321507030681342109576714252521093812042576444893183130655835346476357994273368266614969233486714558711068393490021436517217851429109261480715097868684631067129444095576725607467191829479146438647953998434433701170429154854130382211939749587891727603800268559586156245889720601447741044218474736813367888275860262183638082910769294463528767711698697530389759932921236912797785377811712179904564952634274378998869378508192408151282290179040734775616162339709403457161483402844438581735088432713899823104009097067150492638348919823662179533438906159122729814144678636853766653148806725236522343229918127466929515710434164073445827845305911806827740791112454659141008862560033573801008212449332528032627792803301409515116647751089802579869987392588064610205717497263069610408961650478415588143204017140457687699456466021440728874073094268739062880723586663345107522613384236952716986504884534200406629101226531929920163114230987388820692146397192237222974934919009203906966412994292554056182739158586094202047356254189461247352362781334424387878459366369076773928261452665123742288144296011510346244393992878556277439592813401876884338118564206147456294464025613701724291614879238530044046503102095535001171325338883854653478793605152299492627324102802421198893158190397364718255143766007848452721917951443647149811008244991694343089282343534139191104180304668144853892916755113165155621036275530710806309999916398396348062172228552230719541410903136076876871307646906929343572951682959984022716750962183804338200581476354367601878829123338864145955188767597488308527579460176273525064992640146767003815069082018468915459250571024537109802835682883519593248785439308545838207530635435742677062235427182652950398609709358167682446731703029636753861927959805802248363322810788269151033179913672633896618748146825472171670848698020936747762001596060469372929909515610543724263426042513923581607285742671949333692022534443064507740611955365971204568396614885559627608495772366866184973508471325864648939667670757545545666546414612155034713054530765730936616219142922926961015545424178143429977821851698567533205314938129349010751428752900962397141619171440931935368059684261152422343480030269584125830765453848321887546928140569423768473841194019998347167880640137778689291909897032163525681871693338428351777170624676623085230327699628151518528405664160409923801494788224430395305680068494368345823441983404276122390781948423811534324110732282314774636929267953233341667738370492643113215067946351424235716638828617128670840320917016086647407054310858506315078463760460557456199318127408166331725116348437437107775306429517798702770053028091373525702679492757014444561237911890399372719090764920071852631619242600906626721270995609028282300248697914791631483119186361011475192252052041976918853328863356539212162798791783896268895104096988465636119691460869135382772825785204298640551085699675106073609533345557745193534835359673608365032508053409563002453249653199621287654579368559308516687739288196328365739230661557131732024263845936447560119267183499589976294603589973505929705112131655618616261776227667708430452443931626801218205147447288429292096934167403522606266092026646255807681091856935854307437737424209955121638318468872385571312621387221577129806598290129126875716856704829102122366876383998078441739936706851675111077377415074315609516907309352281899840783682247809890999591512726761006804371621937478019935288874859691777792930516137275387240746454241543972785017523566551565605201217204406058693316742344543723076219807489078347449341210886939361723924355033262666735718318497042273487384141341726045170279132131250367394955359672293627156986940119720947051008561775407475141466373879116844684360378666200388030831451793741834328856342117003852326872258830121272512323150023836013625612937896922989423472190032030874751950869564342050737381051092846707904061510574402261822223696750486143667366334035841919483565414122588966372031630353396068783504923967908881097367501799698009846082126433819860835884391981323407347199654377852152476691542084351671687725527823296601257295595636179743297700465638839727700030879691057701586522170734562680203744988320460963922213276796211560102717514108870911607706738088130932927419250921980428395869466847181395448455016945694530764226427256542841369929068064273283671594042732037619654848121124802132758916001983558815573806246515543887507348653704854527509660911534886461834932130198639771588584371715180539696503656365273052826441457167953726952054462145240660769943019794618038050791439885693663672719066819585675261939164044896668916170076822416966356947476979680942365424179229183535560337867919590349260329865125682085718696787375265093655481421331338329506731642137838427780333714701959770001249966192774602568010826127916462351489553011466927207420820795940525034805834085532474200084623384881240058190541852964296049047990980652674124641969080085626725718638648837900062158638253958530301450434530082003523564002588673452947930323021873426473756979801059688367500672350708335571104156973625363009648878657755742115856526382028128574342239577461608766315628767615496386630681415990243656356755940095449890119002722534741440110261162866272950633251533208469172611213539951769536828471840197082765435175198513636992073382357348013259008311272566205707188312641791204171944269351265637472631573511531966541470655670678313650663856171845905701710402547075479594491708368443280160932957969904377801910812957802635870630008742476950639295818731075813396931136770022792001880184709321934170026156207087168843909609584512354706584296142963031282034801501480953257095871933757416157180789798301929133973346624188030292735922338501514372984693280858010130321287050029790396106038555302125809258082609482245614777334350135434824739898929281696038197409924963436444784440412242731207496095998834509342414382424205272258539246689836014073670306185371901870499994809550008763820824613563368873185350513162393157450856992384439778488977537268934542377716755515143180560219894906336497097446019096731717649483926031814199476092655353151316581923806052898875837074541193060905501847270868646313221190088512858620577251081440060460879319668762971953715245625406923227536218746637967243486521744887138228758681810132653124437786961430614814953912012748322561009255035201132193293699104736071726512758821431033796527478530444306764443891708334562375943628518155630470130922125719161493959973553057968086358822875331168909858703016550135878329806795483702964131895252081059506159622169489115186392037951600323274769162965623842703183973595940948434208821405709015706429826307634259514219824760372165184220101877935500968985325349303117210060524066244897183930779410967208413079631049985991401235472080975152743691523991602582519645777063839764809603505154221631902473151754795261722730883251726658654867169698497557061550730230037938036290242403065869693092525578538113901786062456076219827613853630690773089179745387502564327101256276745104106160091909476459284248637818877292786399397690384358879377911485591557080674548243728394674442751106220403765042553767941112379360181680113602174447279944701286186618662658287823923441396739439517477715750972832640076662000371786903512222623667988879172163002480637994757156065983114470721696725639834465757692614713264620741091172625954613072427348610083332791117990528160031399535546671757417472403314115329391655690247621467040831597352252997206427088485514440425812224100486626787195141253716722087796799358559998742192254660154977960012701608945515593458889291354716446276151241895342503391638976084745853654879243735772673922027058183947725830900194443359065255621080859378913646698890786074636689491808786004617953723858856137571383018154724413785853417700537372763344329773484746625061634236309552895555945906839559710470503475024719198382354163852401975791124415313175049336580896243451328896465630128337207567838955787719045069034488681720607097698920318415621326915961011657331456231967797071309440597549748380119961269631571209357989560671519702521951572876805908476233847861260670014915616002158762227098198138035770810145734869126314105790136991600744879530149946195668094079277748439464994280676812534981377697391553166879199813074968661928237862041114409919341448353449181748990205086647097496907133137574025819395124086534137756410578421050054177487104640206149951789580652535360626883721449116137780115543576572315727652600601695592070658050949479210553204753571288309028823840003583540791956889452446067626666061982947518163610508684197509244494183557057502067611232123508262456031879354114057601099927765954385774145061394463989875676989369518480092120894208274009879309841614487251676448195632615228257796796536739052952574584963661374103137816507844017111063311499853612437580309666216519586798949029225111459182235711684312769544311127165874743107697525740972137293005946911735172510557736111391485520076789420278823207183832783545256068613105164514723833972246980856213240163138940198340693761458476819269017377390436967830678682594314737117349804561049975997082125605163642444070902848873186989382307385466308547854581079597358815368109449845636783005834423851388778043545522445107210922680783523830691621086067454370680647533399942798397625685846128231850091310542366910187292439486484889263701585723551610728080075066424996282397049445658603020783977201220464388467420422404953545778866355947062678314636406199751913034432016905821693491399209143382091703467078762021931396369421733649267967320647669050225518011676704467895990898119460714159272551096924761310441844288503263101118185278422331013885480395749511328238996786663531119651333136424867599922578235623474543273300800727489860783306069024636862366172307020308847595054129539764754305258620502191686016784690954298226503533725391823429522206894697863833553455731345230172920879357981501647304169350537847927271565655364404129179474408647803962760868069529950886416624173884606659815120404695494737099412205707667133833412233751560358934238549020748375609175581716921102861171436216354306414840127416996600314830979364386697662645971053847089207085778520078904321725721678318119699775154914366418280726732313499068723790421525190196722732779883063442533123452432533632055709794142742967176934887325830303173062348343100683396090167292307741676049153214933663828255714150148837929022656529108282625403718727750102510203815956154062124779147012317496666883378377931582954247629680657442206609259938992379641369205018458805476371807391874843449050086453898099177079078983101966910110876460470678438816337747645530863572400188382030750287406805893011193583301569204042334723177086938962193696789436498409726810648678735643104145163996874948917319037673691083554335490836090910321461984092618495435264591011423098803988115290971171949948990679936708967080339254417000438772125476726988393741829332587795634351559763675506600258668868576773887714940520682259899164186167233729481562163141668029986831453231578068675009631584174317412513576358185307178907754794378040471612033847327870498354587909954669231843356190487680898263613995836248672926830627494850818782944432416947602747180135824029807902100603208629511480585246576544928644750915996155754006924849004007377657546167295571335977649038212679705928898232464589520973623841767396548629121159078824336950867727443780636748210587506596408042732109098681729769035787551078581379676851269553190474601542435230954099939672861741559463095155621911961770500990545647956994243701360947819073569337507520500735819798776163487184031193568635607597614751679878352351470147449160526226723958694162793366608967383704981830346698392907593652900265054630238121933066911286828517382166815672584060686031103193985033836145401294621248877064226574576587153300764174889155191151837845550165704721563186061876221575065840927529429320001194559825501166947724194893924854483947794188407659776447401840552865316521196359917756930792481644137336195563260220125993643674712421545392280163161074663351801061093233891424448868103993106513834595519089780906260608624422366678108503055653923702016610615831909731559344849893619154995666064275404026907584722018099220991047272504144345484489761421837384661844294605411313362534302548421249637031934116675860092429325312805902422917293035148486923159187206717813182296126587794542346981682886060887328991122624155257687514921640054190593801415526288440480474782414691412453355245488014183289242150209223932212893324763427243769171155529809286474794336041954321540981328605721398070594937508102141919134464645220784499334670877507062739575730999803122022693729015975335473915925821252833480721910331769393102728584341664782881526746898654520550515224699656141471179166829792813338506709660224352554924911730797134925483901198822986313379937590791996721559597992751580033986027172496428301909198876767636925169769494957889340855578554099368653017462199095406259372837004856218684583389759830967119608685063502884248270520420268058384652082582538499221983051388825299817298761118064313220770989299977170885194265734915263050344096332169112301480219436136994209651989547089552926246247096025492614905200449378126039565190223453104120699347989823116072333465149734319101142739910061671980322136225181846181825649318023607880478701730765262806213601062229723359343305838378775370991820395969256455023403062822340830665354151961789540294934453085065934646119550896946591233906436651639985865362696721574629330393439861972923046663439304230572719517421864083703915740457981233020411633598854030763087731388905449870164569051074130582978102417728449537450968840228581135842432056881624501041980008972665779098339947246877931865435070215116868046922114424603601177713310569231697933041276870917450529615246323546222804293439333520658756290845165922074946603069435632832407283658110513702832086712115984974756174842345742309834188163813911215180093181571614095797671653526861692395339434991551572064686482691580032549648400155516986866428277802553422603519266047784985471476517044076289885705304626290956898074279045257057033554369842321727490372476650037767863651115816460186909637735109639488339926690083689201866048256837559319748890476844480319431628565451209439848105813981925125636959234180364925594589425776484932890870776942764385397238763786691273756443876297035732677276049428809336563432820857767117218598651830309781916215218326396902804559266282759162198468802813364018384717401015534440776752692641485971450146655902156813633135598635229963866334515998638871827162878647836094224170744919859667700490099704608338510948040386717290920343390281325273566954114875344265320442082763950539422738125324189315170038322769467012738435840880885318801843554349091190991062879672268269497215625468694304482953063240842729063421511604597675996646416507188441189301742566852489337118504899873336564775759330590915150138886084331198210576308648517067846195329663386368413635124834695455039993927574701944231349661158410920770929685061863592232521380902123022833367993746984676287659536911922842820805352778028242150789443425896362084468438880452047583317637238348756626503326804302343251154785021166849117484600273769867762706051871458596104414428433447736268453267272437901679643657671470168361983156275542146588388033091659128070057620737552334909356796943813156671285514129305948869228969134792655761741748485267141201406189381422394518761866725937911207466465255921958254879006499742056756575814789218616406738835638251447437513144943431142750053916516144892956502855225238072608369950655498908174089398711466473548956754411734090963114750520034951407153177832873497926268181256244369780924631259621177429924337435637948220392157052081664962792077382387832065002386505566130333874598049409750878029724675093192949590949095752350828084302779719510295448523193956955031020085478267524160604026977811911023685632798018994857077725378319378110653129654613599166522500782887661088093997803441950616361257906843101911987704373786261471497086705833619037692688721499553597352531706202999767190291733911045154800789459094397712458665657156540861631162190828959492725142249945693455733445368618419899054253683546633093247402274802669530665792077038804412378118080033238713578370045289278058474620496676361504781414697416964887616167800782961398283413051970489664691211483718226075480243358921195002140055969078469971485846359955348340430584728678093251053787329401254470029556763362692076657354049318295007356521157224237058280230212270520436706344587917445510677266337740869272774462215590523760228605152980618685347323985029646698347856184651877464754480097718214562332284255899525782519483721049554592433373528405034977049991362658846533951558404832814614652355111356539494920923472603115871073186366705160897347872895718183726229279935533424302856306549791075088525705756593317779812912675827644219862471937898127633428070301800286229098692777507366932094859646573923673102648622455084019639469726580177119207978233871021054646342827751015154980168896346973325115970975678719320840909478356323443799489492631987166928007796015958425767732805041628025838366356543917478777241403361784984241140435000270721364456054338812000090289219000911881805843606502686774597144707063146232596417554850315725892593023704260457058157527245590292348864509288621263684560973976446089565177227642342978474258818669894767837218913280409963036612623671969371203403183924923375124290260410182286675430902179546931728861436360274259452015715063183284679917739291344571907321910635039581319160252445798819864140374907914366547460335820486021903879823748239370256548636187310182444830904762510980938667564954591634208316332411526854491781972156016935432864908060597632072518397344140331459280541077644729435200793323756799364535771024655763375060613247642794700345799042169923964985829170370704693982125884720895380740223468510704291405647336010252677745294304604473630471317521935087851528518661926143688462774560270897247731937506604421127789519367405867028272123263968635658073796403766682885456143619503027124039992791167262503801387743262506010436512176690467577962806137853827840351196102678164992282211657948527848021535008209287040305289214413212267451418749590367261823979074978917992802936240690304104783711492188386284350201490735109348467740965995595108806690011381589066787549988304709371159985483775800223369257880813757515882728372138520318520561403295117817413491619617839540994816152438989032014242112489988958576866555730057641201138880382419372540239398244585030927018639591788679178025270838396962797290937633655172264297887468966562523274257439129074505902027437770852537996661972585161934295443771341626398830044619028200522677440447227118931005598417565326813784625249165562914017559816314645314957375656154159071389253600980044185927355980766143085833283632767830543876697075530035698151554384649311458688626761428862520674375983786641337466245891140220759643673559542279145376828904915676343448134513217039834736301579969159525113205977170135833643042280683151079129766022247396039799149151311535449319129807209967773963648926575321544169965858470371784825943125693903699803674156494475161313593977450230747704306798045251724387386279877692481006219568622845540032608221789623918280344955939574356999764177163909386924354146191635359678220105056986102636814671520245688481344431272634198549127352109707790039679705264600857033068854954875296655900687062061215298743936593755369375897885911473405941858892673198584379157227261498840422907902276167713643682966776537315441438619924743498956791176397936207829455043506167828012066912815330127608564695795197367533511416226905323186845030280804118526398300647043772353616079662427084754768954607472541343992367864750842966439251066285433304519693641987166605333646798528364072931713716910187705753474859372723402109536621290828508732430965077816620905577147411764824537298956676766020588539566828842120924142908507495520998790354249284938257897326265533359441141292662290932073152181142884008733195007888622782417069523543285539990679418654278465658367717297294902894496669775192387916733965167046191961648873810302567503371801237018457261458308122566152109638446326596286144022168202213074351286488295896851453540827009053588182013288271588136869302378348861817707960774351998369678123235292410452101799029125880512643363128500674865764342895855868489289265799112726097763932063040940481346693285215458615150662989570772475742999245926340498158563760119628689457038864262204398910651612944015888410232166543332410473755931497319398053800305592026665897170134362350029841247473015899173988739546534252633918180025012458339197941486312618474336042632112682184299591730005475872230231938196076777377638803929276998582060370613930593084100406686873145367535540797612346081729463042380132437540371048580879195795625851334794435621112380008821622814328227462349703128376596933327774914773924087810127421028271260411344276078263223371675961306422952759836223443454898492496853413690300583026710984053067765383907386214098045910401216584835158755588060682314015025825811630814849562268229191766043040223504663900421867023152427064908624745538758585794394549292831737761532697583916335095249738089657891286761191559478606198472564178115531001086349753956726900757792377141937327802113047165645168793926108527864043646097224598320114330777289518118534587989311023893428927785333036944714656276204826768025030523794063542297139960052372188061825618659346442678733312151858981149453533746734771653393206865476315394219388457968687816324308469285979607321971826662712174574453207550539609291960327826467877840500679220711568717225254892510539649818622133936975821813045107832150490237690027297329951557509529437336217179409655951028082579207627097135640783541630771692541719704970667216992996434319650446006438105003188930009766394282303439901172757816965787233155873402185375916824496907976721425055527564498055052930460525738996195721837447022146858859549517570970948416453471806977099676714478117009394277256636889502703560918602923761420202496370529121398614682549222257446131091516942436844589549627199125327855497566572456433296330515104752655229039968412151286510707134811287763967222403973195357105822065527035615025176354615631747073731955595582365878992704118819973596172611122269775233183712293159180126492928403906781864480467976460235457372542264250624560032302522096561730799285482305334591045453062216795107180650331673529097301661157261031383986098367782787236342202474288782838841964465558740798420816516518626817223729587664374280051538154423251945843392926294583314542153183559436742118253733157776159656639204817448846317068790078614709941633749976306579012534377130042514501166409222192908865475918801930420130911645136237859957857718398030947166404307138226035927896252491803007935221777166226564779830614079473409034206816376561034563754340546235401786460683627659453757830612819269499033661184025637861262413947267445163376561708904523846141035709152657483830469655353557312068626079047262288030309554772389524755491670682315603744783535725465883875750557491643764009054696606115200278998686944585882042481845294589105145260094595224641692496975657526974225707982028336545556988347055929560895105539903686964901652169073893608738140036052108921061521344097231279191479096320628457267425376169676234860889424837552649067620401010847797299601467152247388328113208758642846478521377372820927622427256696969335888785987706282704399429668358461513211906104395187015358614841927889540124715719130948063624122123723537402280025007666042863369408133222347808371360025815345403726073949817269032206431814202492042206234818678410816876180845419290781198332458878982835677150240470677629176426845183363769633739217164987522887437307304422983200859046039254553667809489876357591780835838562694365772793021254293989553528433662714262753622835239365351495648341083880485055447200202709772658033607258505670092020111776983539705442044956913879830282012294648881688968497049434733158036765817284419896774032566708810749959633100617399639619647096241879989109176038264444789395161142661365413925968073947136246051189305685445727439094156205429174552778484479608187788331314028730344889196646521370609260180230048356016036363621931146181183157313913503025435891695448471942914670716398804764084679748623829572708694761525605023097666401676330164729514777423220642101903456542073090984609951370326092578642872789819760200132101853488423846736879394474368122449313693943458837389874394696636566226471363064664788232423676412904529138015881573110550161126756854583919714724599261802601382404747648459796673469271110000653543038011981945702529544452087379058750782907142768570015475782916432663858824565381194292618930608553387333504089927818026562944498465430807161918921501408504124394845718433945851044618262049428602224539741123229907312653762706387996065424804441332481040874088155743330107938666510179251986652819133592022248797403594239993154072601530900110175885053327727427984664606655193549212776638118802800309928040669644914698748419526248345524948451230408797290990312454603985376657113357512962445535814369346814889132700903551224842803323649321635261223975464815836279021339566223122052296354668309487778872923756090921611649044801011823484654080950106213501222429565213925298351224768001187306954694304318099522860664838763215216315371390004546351342787804109822342089649842085351031664401497457983122511804660635031459176589231196827854874254588008337379557482856240281207379177969540454537868045988915751356167567633534062103089634863025978500976047640987537299117299271216175731171536987365762426865325618772262452082009762900238829144540730796180565151449990772275007428394791193729402552500236146967243081807929587119095646326573546738881044986688435929473624199779088103615680460880245078835946026618234077632064225127212804530585828005011301915985454081407792242043174839999492602074745650931588539515055981196096351278040993820520166661900956197864087716520175178514486608748984873120307132039030620038074768665960347335732427452931920655945307907143457027318327790427827121884262745330777937480271573116750407865128708071761810561161961997157656137810411184709067504083973323300960703702840712615969304371438115361484063650541217049849870940591934753055849935940062405593292018460571806788383467524154379317855342781901687614705146210132513762177948696689815710187595685873130577387435236782892617331495432082359303180592644303249457149846179217646876336900346411169064788636028521099433192236155754295129750141689858459836405452431767199538711018635405929135826146857853760970266813252727655246164366891306792561387951079308229218684743696187925427871004391130928725314340949119349800704707642097428115255094168547895918973012464409850329262078756935689071070026420098342145755895497138375536901190016231444489547895263870571559521468901449114118798670110024988046710353720074339424618874012625453232685776721263226693326402897733985950345502477948318827870700346434336697364258190360104173676370134713522125619206893010657244237432778630184851915981724207395717664417944611347920159767590346655036129683254108895380366639184265059464810118698594055339311145485421122542774092545396530144767080839059854772272952315262328210407462475822675983309499546096265174779983427545955691525912037075321314220024239633842015618964333096522627562529737313445384861432318166259161009355778051575116666604985464718046618673339991371530646455193686482064402865236230177594361016877277467384063540127360879322309463292808919682453991687795109908464013962783363847891219479376695885739728349314886737596130129730025171416601309985859601954661322282546079798880434056295117191198158566337129376573543425400292871185578233399301974864984956551295687502917663069707332366058111736750552479182096542459628441184996577544241698975586255050222983168820462444333872434446694527109108131551261109373090497266847997370507036544866107783086254127336419589130728007065217846563642960905696048140238925373167498635169247576449159166642112990910078317851873789942507594472697178641055381790522104115350510058370588729056677809200189042478532533867877631958612649045814211835837742931092692072757655357784384275841211274179901626517799009835576176218457126983617224283832297271567431125989886240310449486292003358922590034033361265033007866643728608280208703074523272332650042721178326964021570475911303664607765208013508727356870598739177757027570399691223029735780308226847645269772496413797646849102660970103232677985360438151111082191552717890439598031808012873719900992342125454456773146095602793729500063573374332899622498216545566667236505968221694886968909276727828371890110617972175801558275897981843105968336762693629137680307144335803705111493278878060782972385965691187587760252063711297925973465452657221341319711880900474645604321705622430043391652920890765036882575373086460343443239281932403329476463040843192518057109555871167592827537834658378151746441948619879629839664800127259916104224428366845543504315379411758052715633178595984195989803041202989031861422598804706527101443716200912879779418567969776493059590556158317932873347137137782835645474359318974001142902859328162845115539950918222597182358593372165871900489600403684348589022466812480253106070217697606996243250448351555211538551315838842193484061959410735460399264379898086699235733845987702919098321109594311209393841668127617052860449391261220405081041765253944031187261255722847848485283480029496178116106240275973183682005665340033663400053652962628861816967734364202167275325236133971030680521853765078691954968934953555023934907088049845083969664854230230928004895390877014042600274478655743441977397976587254234926617523148804439255265180970711738340256851682147567680736392159592562848041543443753944610341942543513090428954301317329973732450362568008532471911652468478249093813463672663036561707633114553267366893341663296912777576321067390670939535290855340456315963955909679060676618888826422503769746192526304979844041298815174571827180738460263788347052621310362329346809275324090136093022898722939260642541551260507497757700489201216792793402955900010904052783881895872232223501229761165997635037706596584144733902890535026139047080047570321983761454798570946027635397215192590867033358989052021982829683153226026125197114395497207013490927398703586337845171513849612789893285557364464564979392680694254448284277572609941002316586154931778303447403227508392917631253306712212147148459661366529283274599509883427596728447424428887706817347344222037694377453873634390789442818691277784090087978357219707202568626657674181699695212048271474264064212134789764835556867225086550175278329853304222204080616598140393781179414100048733448469789070481115016955176019987380695296994971416621304591737033134793792790248875427082872991972461399272490928343641904979216203382771048329986249270263410976745998511617381280170645590556846703852184853542970059987200243930622942549436160939339078809930588480078996950017683000784364094126845314225736204023704528703854844563721038553826900667352050154686955479980591482291426269532127760887164784550892647563843480108762685606980711257972260120486614727761981843556651325524628002082713652591148309012327507238952039939631400889178894600140828618151537492762146162937920759440396909712966467223812509542349494839913180551953628221800071541598228363618686141574075455437302954644863027606590968626022014489745913885544388281797548340378011875534592248008894316849211278503985549762178722144592820105003482553537607961932856817638816437570129548250467126718037836916029348815189972341704507978609083335794319136359595114934445904578642207785136901253828186785235806027905638554192187442293915418699018282704948854312363477761935972247024478872535929717224841970291931575339992879265894233392910708420459593923221516694121464254748777313153039288670109361821686816478716474985818103055212239350735693655657438356536678396718501287144824741200764795752591412853789832697529792418450022570590863671895515285387460799287685771791249313193601734259772023880813702140583017742661181372473482556884439400377748068062237107912014900709879280638005529954076822794319968455877298124677429572467746841794149101083318270196201562683295597107868784454889531341997809488886807683676739215236554840268532242335230344586200826036436424936472761369099336997245012135884629978796133837886173711181466135503050315604313786358334279384259540377217967787367120695734678730150350684187938492703851225881056233061112920084941472484585353635894690650919592170145883618794745811011112994993409914974703425228830103183605261763789440361189280554285955882441634086807083731673317227854844492548817963528526194615778895349955822799344260620077733304448111903570222551100374402819547577166245608151011980062055165768021726847346381777800318962460250654077332352768486632691007403885692503586183661497143603758606603529284047851221582123419496136657519353007983202328543355248905412993354024272705441706116113393684142612803289897861121249042970415249673246898728272572770913039829600364520779358833348309593313598729640155011436759249407960141702911958100259021061989253672413077767843788919407316475036031575202217083948274375438809492747287660440186280573427520750551445859170507304542965884387911722419738350743217466080722665927351830371745244462928008055446936342511935258638791420954342294554973447582766268546618616764555384528347537223416213758476849803474148100774205750813017059084443373390841071933330174161717572913419218379487923005038794156095743846716506937043824800906412724370165784705619221400399041439647942970788169794667551101175893583166537144505063426646015634205053382865677308233946380307455182636650979116350038639744937659896519310835098867843078479403766065835826001836365365024015425042916892727174768681543340761312308194326467453862319241938203711116997060291060574451365356810511297511737553275069582062171791808688159323832830462284811474794717635257750718436007325923460817486157388843442132011971086313034873995458442802841628394191948993932098937804220043310983225966794005500871678627852489385411099148992886519942932042977645061848311410385266649168424713008963405232204908545995752030868441123620540756721926888131452899987327905451138332088812570253293433744461636824072673289673873849359887102822362296718346784008741202558936950412096626147413442471944188229909336756190197536128247505789002335386092424373672339428018544886590754008941807945176203121358792940380808218334055968018580464666666227571924537845412916211832875134101835277367823548078369932210942124440934040406073131805104051406024015656792077387633915739532837050978219050907270730289365299106965045161874027039045238357423158564705245332823283806578505662816186579752340117007918587699788447906022551727130803273720965864336998138592668269256832425364214219770030963734319596242589827255972602566731654043455157878337378605734916251647849866810491757427558413780232634609205415714319056420909146628973939261408772002239114134093568033168214750203822462506343425735782536026664453295837644751244542915697120204317764859312790975073358250190914554273874080742330295084953410729651473905634257417451291145112838618522204161173231005069836184056311485012187127682371227517186514330406489533405245158155877729392837847403518052200520312107933796376858584263016870685779454740457210993380440509603017589566746633814855480078049197343549901764182306697406797440922556983718502700335823223105205856366887171064129435613914775501241407661785240952902727358388866009787328236864865201018521101376455350674290976290961272363330778844526275051860672953461038704672699893545146616752874243852529181276103924926012640572073731456171560390831780893738340141153614318170046021118920820574078236990883854061383024392464977590602846481061357366657055024047034300709951872860517326059208196045402823028227910346614816100110128567177736398433113236462876168728556077799256296251430688965882620637462817723690192396442775267882991091990730361915294097837740296059292677251925860726899431036451644876042517530006565162774530365018910459523318741918014559749245275486781904618780290740137029460249825418543020145170889943752276264346072583409354790489912245130669188017372622719377800227047387292055167081748260888838636444877822307558965204382909800524416409400382934472300383317056481836141132890966008899138179478861961732171041181158476272959272532689782766931943723782530460476924101693648193382319795439439668599977829027258162525187636960619286228935242362586857570000928061770430442200368242197680805233928012153473709934014831536265482351300356566013078032768940452551070994446395748219104953795956192071768745736899497271658407434552211592609279823013808905111845668922298679376788754234948756094594142052706195394729771994024062386576826960510687496700172222664482372782015425055277495950334499227568657453325364667179612000428341605009512941463390808763940987800759272026578721461711204678669410265245002118997698280890473431187791140436908883837083661702556450440887260167691294015084440791836603247618569633092605974695115857590252449931388953386926219854438154955874330103278087785471105284952996978413577224006993493212714380472985042337830382537886391149207036412460374389154933315452198900065571793546192460635182653034516994249352591054384865831271932881878046904806550323124529290103773985413516903674514123926008417015370921118292965691996207213927385167686376968232711515139524817291438539875083979211455635983352053117303242898216605388940976858529891171687668816667037504781824146653534416434056049576677659127159869010705134210607605132840349288451080151858074565181313514368796933027176353988084825179968683297811674651368634453977732776262125153470873718328781827112560243718516222199135066487789409466150913344694728033142486763176379956327107729491695984628778601757940166981186307097402304719632795680855740695415338156575349628140162691496906898771264974427014747083762665838888595108865058868137587103902683755267022350253699429011993099588347863717392188825058195870674537579262943803663577363890549585220052654203591660655609637114777684029231384921653597112789046302699643703157120962444109992490509361528149951242598597655306082511316638070061444671931666619432978933388461699466387402213136944988263464914477746234452808898096780230649651412453662411337661025456677964772480256724513022984281596555121722993463607908260908116404111933644229346439070647736565558709102710723511492646498008142841432689920003001182306697785754287357858967699662314014813216553006249414466158032624702491350481415398395118774915624069196986137070182824762643342201091116909362711540120489206806793473135039608269401271796196702471609289873641774868246819171807665982587390710216022988884664700141547131649636236106563194445692636725549631695441681321378131719418390371709781047436036077430754117084439806069567631809352784186694816702762765768985687222373519978481871119879584147788269617878816109966595229729466821033611875189026060134918768972612791043799623583081498159230389735592986970395222184166039351886604306408031770269999361049785630584165926190329376365052888358127658500930155737184356803601115187350907510889930687830137787469577740113564627505060155065535581102728308217700802421759937977918968664173152432233716436696757581696746372602369737209448512662412131882800096636492907925285202632639782215767044214209025196748764296990513382193168192236015603513608090671560907263459197505583495157033460277673976272977344297060326192911333179593445618122030858378752080389110632781403778507919646892885205907991402345089811705440046558175491037994189663534116658444956316593542880544344444940218576476444653075924513957623317345436650939441781584847476342794784904952514485046527022591266257790450506405137827900990841364903310079459842991136118824113846867849340115867727269096179544084425025014308194199143920716444810727310414820840297218879027202950290355335569463179731042722968019269882839183384744318789795641762059512995587789552740143997240573247581908977647443330990210669454952900876748244965672460039549266498144055780712252624792151717417702462226224717438683726726494034137928181949222060372994491236929734688804798976705555987103163843593278906352624345719159767006976597253213695653194660183725981007306432722044527122045708361115773078780527025102303823083074368214587456938991619144189987499610131024284535590767448732513818018383886923048100008925963130274572150025122755985312103170413335271118985097853445858674395788751941310797946334753827387867649466265079291805704288512477845709580919039376691907621060409729579943108242517488023535576203298072739756464519951878359232245023490258754658604663196298657038102818637095543574297597474349269488929101263451777505318751460010564370176622412777945017291525939946541395216004071633196576303652200358155508694159391203961430128822417539422506571297753707385910143298436748335868387352610223767811985152952982234862086995321409953349489637839040151762687843361511123324540913609372405652231430212440505637345019407595264587226210117082595030109787751351966796693510066669341431051020093642874037173286197585792895722287549948030520675475376840324481687051683803555433292350236672214677868447084523033743360168408863302910627297514597421075568134474882902132205577183733132046316520172080252255391016841288304525748265019545889146186499752744204787474650030428198179165810214343428590736068396679519460780489636828774281956337228423377036052845493277675149381703171005016172551510572601762224178318666433713858145316322716619902500673024764731613012929555820310754796780589226665435727031175778129362391437474553889519896436578952084703292035172933791198411564846339145266591459891988883528690528000146430923067400856837936679544452903664019974853001367708189920113592890317363479845241465530789796421258301491375897666129572445054376855358477281566357267853439240926457514315212568750209392931665973426983496582587117963910272780882459791557357205915043519133261323781939161436823786178579802426108025383279403373645838223362408014881894283753403042909246622563223421045832838597116253198272217424627175594927256964366303058091392118708668487743173441967993503450208768571200206601994199213056295560946709774538917763670409570466669183858004589071250847428688622103490718095519676522124085343222630559350887254959682988408001942985854033879433271835325909756645945980789422315948642063940813544713976702333565519599824038780323668599816409415541622241933392625694600324288137164471773517611598079137433802821698174531777712525425161456189776146962089148803429473060719204344564993253208313801170802145046691749515712248243246354142204326041711605534304105744255165440386294009706025740438458343067519894523492989476161269986120722207906127679509938913883083366127355976202866010367724248478291858692336566045376870205491377500956174688072118474203053146698622420583559835672348070389726579627533027070657952007077169252613601512668037693523407184992603037257016136451744079148372865390110178959133153009724552120699917508208435378304938570168887135950843286813709270074374401374704046645515653255494695632953812069950761567350582313107385562583874490810063959564373203652384364950062078497870964041872348826504083704096273594168244839620524541627123175993264532524025126157247579150549710323354729946535336553723260497165201639161173835466693693470672478682020829772313919000575013435508613063155039366327744208243403991997790443843559870947285272680190422422275288381071640757346283933683270443626065559622588352538090488382328422935980198352311195853925997223944433380715018823146387787811631434757608833992338332194327062442732980442947920156565914172402192745952841151818182240691343270570912893559727061296967463978489519456150407184111299175180030504758792664408628740979093442506190307853984551622223515068861626842089817785728498394200566372630578948365250563733047495807971718862902079654409797387631662326051525034776070361298232596791887605074039151285269838180078249204968769436077676529811912221255604557515101804837546052390386792582977768960471357634514332144017345573599279424112409000827047450964933309508691087002111121121691261680629232726136638760281026494034730315286156070646522821506065481120185139669866187508950959348307666651404530619916183860199203421469977914049750296936291448056102680408534266330492859918597315225464424371821672389891989599756503828872216986127441286833751933059644009123922418429206276367822761826866992345390415072279036834885887458562391940799007243358400412272804860232685795234297663327988521709546503586696908313616279008314518091548968970366925929961952418410258638713257931619680202989914734920892185207986502446288789152920810805169630248578696587907580979979297315388283113809225970528662012755515942979754240486936987903937899168764019882453788826257247955063109902114298388992741956556309185047214664970608586179168941850744476364055228788724039320351454506872815069598309706153195913688472044009810540143238999753341646575327677262933035051994125456431758745337158252442392111493923241020237225713293654368983831087646838070830642044371953838840438312890169844001183598199243640707868451208303986254554010842040602274162613607699312754338780227916112690670295714340258700518223911391970631122840761555341601944818715954522132952889483575538718358473892386491036289791051402686255842816863069054749508072574062844350582987710729572331261749176183196229518127073559324063547383799652502503872590576811418712517192936768198477055989959579533147762725288947282225801081986246892884959000801368757473017093337503479077181481771379040760075566325660182385921579425657848037818967748136393071244408105352001121769322202373899419990496130385343412985878299839498614670577847253419510377438705705963763515258694762054817946595453330441030556843015922051059538994434112685018688925231179206117106550472301629077360896475937172583682969991655139953358180408315873241240297078087470482302604626235498375435896872306210592440175965041401115600334034416554169460893797901350681125760626561297878793071971880592185868141760593198686973444613181317791512701182077384960141602559975777950584508108031878774409595944799858348901063114905447334274278626641602571830324284382546384352992991077665922885533645488773357211404792970798079874954528658150648491204815059865322880875110259891336066454133223946539486951472550904522894561133294546620790934558492119376887503928843448158052044607686299839841551260758895592558766678470227218999397979952343646255571196765962925456405647111885132392649600884615243215744489917534071615526586791301090089224802852975787203908283770152475763809637561933353196046868965899382501461568425161602353193284349880949561232831383460687091773228913158790605347776228390134628985205865980346643394462372710483323762688202596813975992747360687683656846354053137441314021403992318777692376756114091086534416348754110549931114610057136509097070439060627628064215729804043729513627916535041436818120819610113941039338281360165124535324929320585750241495168442252190642570651476092041794814461279131289810945900203774409429018208898650308543208052374577448630515856942071435144088261244919580069348054440880075862122444785675541302346685556345217880042130635958062275855935107089771582869521003321155906930719488934606301596242766261041210172204320120923134907382059683512888976502278543595180640422436896758690367439309267620350936156682454542837214863421357155863368993568946877853612343839426423847459677022805933043968131816940487416843165906997687705832111584682913659694407096217178120369973177091508638525311894627659162721783060078546380692196416019786706648526868963139330323410036167895488994551523891509174224637107375794108012348422607510075428966516652347595546999770349884799482358154843445279483309181388347713538803216546920403422019739134509618140673941639167535636443542706486824049879729537655199983722925423971854467638715031968118796157394702728205624341029645497842688820355980109012054856232874251890334750728464487073773381717847266917693074396708264185991224593884291482369585064153078211180224992363705678353856868290645255424593423653976454381404087550842242713106360626221900846809632981861987365173406903370988835705577127897501150449371345846425575241220650777122159232381540870222233787205162262371301272386667624454427002717326556476693110610380616507040150598453343951412234767934004587518230265558880418173768581736050368318819758385714381110788311198915863261455299143484802258603362515958977843680326024403251504444788456556797148195799571212223174314900886941212473335647380475869420356330561903825494516545836909170264099116189187187782540755590742994033000593966423095662024792754140346727668199740693892435449100056183898364432236138143821866383980560006673618207397996027193155818610559753818623584042473043440827022948989503634458175852361450735333164497047522187262743046903638290239041323602773200052298752675763169711796410643759715531807979416786916459028466926176344467199788640750149288883593638938464972256072278904963533105199980565258138411370511327173802692671552844772158475832233394430900196083032083809091169185995629875978744152407376860644515806984175678123994243266372184882091671411990354597711272292197849384897977899928433737778719216702035627075958299929624508899913224064747703877042136631730278264104837487334513687603701537516680387705056533544545200938513867757346609486846348414676383043194583006828022508002193033097102890473857060748986959672661669882232455396790616958247479304419167795029252156875554571032846673756913845765030904405809401010616759442199363039146146142824025171984418892706761756123914845918648499844462788001546390107890986576364661616375207562583204336843276683447089478705940397149069816431869971220628212997309550584554501297793493498161338913749657561159634650373094716113155151781125087905444398946647893622294200413848430766751184575409327102598983627941224596549381775699008493120429923986664872283150887289577325978468744649061205202864425237082953373173082618486841345310888549038813423991047433962615605908427141393256450285704093130208555672434420018445533231297581906603079754712461266359675944988632838777290426330187183989803940792830503431196246708754417863977436617746467797151586476169783880586064092249365255444133316235600979325329099851855301369299117700252971422648252450254298446131554434618414983008917079725725573245136697960384482952942382440755926028878070956170720059875534978833317405546263799000495172659720396018499777676539198350711090053699092631882634990413497704489986330257682585283712018219005790449623099848459628398175919993579964745018423157709396927962583856127243633271476353265929804068847574741643858084209392145761655678965800964940292259328453422359492083205485250238760056103094310512466966923627961114369061436861493624991301700892220885995086949957646282129932875480450664909043818576206330321904750605148432178351782717206173473138879283758669159926220190611021369311033402079116001834576143007507096810981735752543699715513260045009314231545951117242269005579249582433921195267013085441058769762018254975581550550889992110435794789144942955940694403119968687763210078088485144975890044401846501891015291230359730192507659588540223963118820842392444817971397314174309681927207708107236255066568790408407707661439199732875924258039259658954559157285675241582640395142476965939362369187473926079838878495901331352193858349382290881498517640269782513889305525871112425740344760724198683531702388079612903960241152090318031231570615130981344389817329825652878801735203694837714284789308723968887458470059515413832734334746225151499286770347636330271828356983391070966463789552919187811148864501167503607428204418868665529307259431900969601655340239287465289931495279759091235942828024188298481143555965979212241975855315186107916334526008603831381442483396584862852319467705524336014560408649729643811252573029453285914498823076892164203549667995557143980833878918458587952238823522118746078787503091580574992491235885731338330795581676431821387310595939106326279909790816311276835968096508335692421541829074421098808627886254468435808813305571970671114644395063868307522188943789608455951560268045513257932503635488926548665500535783988786870186505000901187020933510619854030416515998169914563524017698513825957993130643715210977163592515934201144611842273950198710411101445582303956932703832803649269305232748194309578359859413911624702828581631541988193176386239216101589826364266441927338270641345150405772543329168535609535320666067002355127517194259961695714930441651993612531849785642715145357626873352425827701769479304653611174198411435725674426990734756199420351749229064293885366516212099727581434797162280917382674701030341532160672391336262877684934591422644940362514610188632682676613059023443836952389132208576436931647125902888898996073811515671331969631663283968987605237555113972665919247244505737514045623887755120777612728567375009543250171252411082379886368785598964256601336775588317761570648462806178563076738776719553269005104168413294289800194984752966004070247825327526712232212343539244796937191757190336109204951989664338715401404909613774031066676273403334579876767034283514507816505690466446049193653211691503479601082725780206563527606877354019007107239967397910831850120359700594183273484319515592222190436268330504981718521862832317109727838323341183945672609238391614052338782374180135147191097911294767645245947183002818665832911511809450733891396855003532178269886062114403363581918263966185362114723916291158497180592634323220345401128804153741926212370263452173717297341872379302839765726504020773248530075236748927707439214681500169816785815967339198586878668197637346478428266870763590934456502485800672158142238324476119847294002268822958466496715439739885193803129411381930184879145320832992155257140691112547758120827926614805412323641947726538682563847896817030109741105331729480096120207787054882783954876934833418466821804491707896391261739450289379516839061890505353117442748807931654971108448919689764661799154573765791352124201601982650491907150958962756953826643194836877710213757244701531312554227252222196668465803330237381903928088927276519636737182468625724051237451621086848473771860925429333868208373167120215388617601683635210489193148670057782638180630283662842255939874751147886872564695168592742330740797334383013128698631134573402250734135882191671503394964184567178615235936832219122525720854339610441219081015300343117316448695989944539292243010799171635907763620384837977535767933061672664782342813157508563193468823568250302417100740785037900329256726028144462914083463757415205211027248352680274471887499723951687335438211559340231882096064484661740538804867331470296704466017126087862330345884379130969368527968022944353216399330310227867830001463879769519678158062330749017372605198180747689803566705667216902668572588685113646239181693448559469177395773705274103348013838009673244952798709152187080220369583834610358811878696274554340212351172285382364299789822699290440116939889462345796312773178021570767173210350115149392085609620543992393265001844918416748666464032755486694189002185198940526260510612582842094558593503305794809155607013386216759060678760834469896991502629469434166620526429187776778611434668936645618295672066511012196229560068933368669311281306839191539457413066079138623060367639762784387593300472298113741023809922172983937245100471796818750092927210247975285138548772009084367262168567051867720283703321608589304576901298282006191980914297889705063180988868012617014048587806527590353481779445886103244166296418107594476396144937525441876546996785170907852643392842461852300093450950691150578849707329181583340154315804537410276601191453903486887268061521921018210425442810031420313476057547732906891472498114897033326887646911306831962467164403758551525051774902793590064876148406277000409321729900361210044334920820471280452387123625029975253402801305132488304559308895873685564497974420798589553450267696350815841354104752041295901207454477313377660395448893809801360976863135261786490186782387983685142125956858958593946830569131228016115921132422453394088442303790665969059905244409258798551917860810970944201181621775833854179064700247723702156970760377106522219322177991762803965148021484889613435742325398168288699757567234615069937717989188457167531689293545423727502492409837052644708580842957174854244233772751636458623740199048090739192057346327503345141196015255300230273581813734143444282914197898814988847628548298242562767466404595601500610403162807195537407084414915375309672469744360271781062291918490678998587363146294467737779343878226228165543008653371766209730756060188645289479505709584116827048527145552544052247838943447710280001759002885266733031141353265589890631672182919897995641168280444106847348274012021359665606718163303623629813166276723466049590720767001930939282478850875961751095103427550202960288745110287812090882273836139759379627923401287736084434882332230880312246078329411118206335999249108090649354444474176115038398238673849708550604155585938869982328465701783185977268293757457617723707420396247543622838575922076837397094211812330455327255212889540053426931239892104482868322820978096483837827386868229586357952989518555720466368565518528490986786485012064047097689019196251772610806370443142160841308648372005547197613030973851732715752590934211800174877318573429713451719138725433750362214427211518890237550051453945080519443726552045552429996115094946899634268668748999385967926297636453349680470443011785596017809525139305477242006889126339786080251232654136637565735211622050830670004566516375016558209977555500389999257119624378540074342565567135800521295865133662094509486710796273170875990726110240858795340638251402429944556193005499088446505387042762584535693312771541765015106514476550301354528342044393284006971890499453411605824178223477107723450214721773248645718392447482532148958297147766161185213523152155012153730837935549874450907194106416088014382094404696711053103759396434489484354566222418977129734913627663846260024372635971620376027478122292960025023823335416357551857764673369994146296294170894969134199324606626371487626916649424913863210527570867997872165169191072570833443462425732209041601671054156887303621240124056286220509304598686911655928341267546256275893326577286646766947619792493758773393101876938741711391846973277395856768455472181759298469102282396356108466360674133247768510903639841139611397395572135533663800034563440018708012435503416267045063776272752083175805600468524636427551644005050658577704542370705997560671946087665498374261929510679936632904006505974433088042071075286308462762154483105460375343966191469419835092121848999513176181531512220044329709132988595763652514641910383784754533562645075827858486625358104075254267170598572053772633088153030786606673364597588614441527486885295090066173041740411663906705539384441988384485754007015647936507456256659115748129247903464897926482082145767711670738088102643959726899024886602253278012672286219815918027509467065501234726379727523354912888351174082669714460265880784353994928174860424546364825948413299764301029684595024865023718616356126464940099443055013885119396536271663877409380115322701342753811489807090932227290391311810931830775975717360552515049509210907999447476237684868146952615978060867034906111555602052068644754469517957743151069794950927903545623095029210604480587931795930819733245307833636278044253760265785527454244875023103481086858362602934307141235909218562749209445423301399987116462892039707451100671943239568317409880226832464560245693880198630562535625893207531360355535809073041153498130167068170359637044266964253764520917961999008007626302549240401101095340756953276383526636849281170237311911396148649461420430298889748250057363733577115832042406550473353829287826229225018226798544348623339733328787787553770068514650950326862885497301172493751473292488533498646707750829361416781011949671883100431653303676226317590063419930205249945599242654914271357166125352724823864564502712339441994701716252832452423483810089396756954465357094775186124323930055040354450017769756206904680481784999571194003696767778995294285926465149087704519145495601738521485555010389093345811698794027535111223590608531610049015793422823036013846487863079615554969153582783030091502760434086719530024224911304836143707560829787146093896691595359310212311041364598811721586575717115807712501965544785583130030696433534134874020706243089965195926561831073388005746215351389443650618318067184177944929157895038900918752527333682054296188466935809971648447761269249103624476200451338999889071744462245427194100094664422288430046037107641185890821623623898409443906077564687372055183713667768361186458362975429079810414471294278095709487649228090639710229959984776119855383093344081961069320743035290333074581326593817552277192484550910242304690911277270087883861159748149568088377693619842109834242711217064417313723643906985261331091409453497715722920098288729232724239934490385686666042574177961784702015519810924093768592262843111711620364682792616209923763837811862299837857301712462169009414032107765462848725726777654102588425751696933422516332599711831943730639608467816195838213801607382987444507150355583644776746793101949263977013526880879663311846653294960141585897745565532861975416158106603287762973067405299688185978682467350977306039399920313256469892912832733359275477309788265949674083258808398209172458475514676014820701055807938663504689232254987883889291530525425601426331939650660574333262422393943033764558569886900793015504235737640398845658700998808684976640482768808984937559220371048375303556199257797129747427261163585051667552503809278803344802647365803238486890374929959200649738916161026439580161815762776251318603817598677368487223192512539207412254858288559080250996299912150762418890039139085032538943339468767499186402602715992514450936119383884710604878445765874514929235235377347357190772804296164360431848110508270143799388894631184586994277121276578387585279341459288666179542946606440296101142248849251101820037423074463940835392846729272700026472358795985909685769027419284632206379827607957522723806485606930630051815117698241091488922854575037103375825897328377974483206688509036256529780116291614898297519631928427048084256635178875788471515602763368789431099592730256409097964378897863336611604534623453842255380033840431675596469168393800844413755173354486553597253473134072030275268426283528760536972639265476405086706603915441775921087013078509773877777545818738822190721840100774713300405054424243726759138074794278725941534723651576489492786284570846263885279239453805785364803754913536067199609246583788539399229364747619502126301661578716934536136247820148543017875625623344011813088244682667882606028508511430102885515511863324554625780797627130541895866743329453122459929809722949307364172020797371756699099973585675799186498949870735161052836602400474373011893803335545043223289655435141420085386334905355815578907708940039154361754395068897184255067649426368076308492491399356679160738867358438862776477567226891503383064103506585493242309874629076351769682107999605079661796668709558877951468396461732650015881877169312030245827548776034632950297699737364226354195919816868597911083176651830278681224041312746802893770050469099169410700292865923288583784517877317542607558808048019665437329283214829389307646891929431308371618686901571026731995857447739452873673354987401416292114738555113549589584200517578514202173772100820139394945992893690629877628144459182972172786735162438511353621938919388260931816349049207875910660108411368048600777917664572323352073174770909840819154665655338951570149462152522791974074760777555396709831577455462218589617689493421804174671180953936993081014980378527456363782164809090890075503703017180696332442864431431116240506429581598987802837582775161603872703263942229796850489751743959077085715519615913451869194507527785358431722647258521717112086970279366964617188603115470824888751915250826535018120439318004109542272588569406197946076069514842381445036717132667453863330020515203630924858066117313339876506074079777130270866822023028385595213163745429190306649879469181057594594707852663513010591598525258377620873759029791499502475076431770380393166982583060264099227902679897060625616181072377674453340704148475688701884144578507218504943231439537648903742521395148192863980459978593447856765454786929917696222914697798519698965676567790654656744308794421125960926324054799736244207800011686502449327695893806903048644304357500487957972863810129537150548227009451562977898526470503826869530098333995293903116301386027796073280526551395666398405694227478493026325132740954104342657285194291754552017341985155280236961930266561517274366464427836110512135427567646952012445029199935773941971023999108194344699671721265469267856379849783964816247789758956292650534200187011916096498244781853519536074895545787255556573192079731499089494693261564322435520513518249265053187837547152864510991715497860976259198147494824841617662587061491382973786889672273530981470613609454064825159558842363763427107042215140429014181191450315115959038295301184427771618327237436070632444949491012364886697924097698407446170127702441458736096283656490219323322661782404042594148172656337628983260571782796775622644847125356915821344909305774000061416765241899427623712408474688646368465217728085562478635987387130832602589359245425436172455201111120099924318343352555020560137093952505274380146457324716124172201760985246690143464646993368990965460032222774439268739144047494223575233503368522202183854530089983926055727922028765432458667090511095388266196462047934891654929056426118666394946973024972314101258952045049402902233739678635534265545871230389213935898775307644895209454366100204830104799174898762330606753310498709650276879905732384530967376731612047259412093487761379364295218476199383674552065188487397933072065524773984012311602829791504547540684148165919752219073610249822951001178224019293444643927922289644823642051079852097058942784569417316496791814900545543284651571409478368028776291942507977718397534744415491252990235297041056301818141986484482576338161436217534011697468770753388728057314345551476773435200693737280393811478749467988020317927368101287574142351310724489255674906783637832341207203203771173538033540694829699961128933279692635865069664777697528115654799739891521035022718578388061492844403065887562527220432568728885888967750376112607472285719304930429787145353515149604672312831356463042428373090834580840016021609111669436146653338598040534820820258788496463939413098129993349988900994505060799960100684284148135014905012164580276704220869775219773507947223496051784301725978310578279951534308299880507434456402696577209247188293668978855125079334790850637068423491499369144643301152351919015125811962319053016152530889385554024903933716532408283660470685954025102648410205354576101093034846479208475303579583344880450061182541317700768872188065919053413545197297939988627673193263935451797828636723185894047010954374519485696082363416481576404999027556704808140678949712351749467246055410974164161263884566323325545858122142128917455687719209926137239534220928684683807372819666698592711286771665136380035209671957760510722635478493759721898263370832871704166151328018785692153931106687549415231305129957220705016180316779021647416877404712843695414200132673093419942656156663353338490307488854639639620812465538712102256695082218998450715462911787597865290744315933478773793345586415681870636970176661004634618888919338997855831410476454299226282850532562730842101517724724664518901352657815403590414225373900577765388173492325284724610602840210707005624408934355767309967062431195526591367415732619930167048904234438179233719935604807109919595475299690901557496216740794527091485706810169456791754228764618549301547749519118701594964230046513182020057306071097850959405333867052801375354796193362679635076878938977108904020613415593652897742425056746484378058952910984397732901521831948080010545821523279998491357514940050504202535353231080343300113526839521714305417327235939038402080906436446336071648057492191648933176822831101687992852223335181371172214306242557217465491099237506245613182769875192179721530821527738371180313044116386718366924601680136821047135204441803238238140426061137432001906292904043538449195764468116405246199012691861951794863560185260568921837115257989668670530273446039795888360019796349956767727870037343807059510321689534219938576543169467546229587100857916541916860601012494396462499280819573293348707531247534253941978539922503418580388788986065914904457892863822825344200372006381990115188210705871940007427090351666369458850003870698608352468077085427218026603784510693345198148025039424742440497256909606617824065602831927281865171007768122138401642303377574549316228582663510925746651901491829957945224362359395114799682009674254701659842364454631782389613985776278229559990035112421061061254452261413486534154488244560595387973303661579428708350051007631623747952133860012784488227201965202848130781593485034594057666822210034377925845951958015046937973994714996664977341540541243388785948017410698159807640306902130337684517451457728704341439874924824372810199183743767978932747651414678240613435040396565930698033109001754349130781043016442506673462400863082399851003411110045046876303668560755445865778658963923389933003017504421745964921840034466471114802699836357104646297491496512834914472052337927308453050878537504086024975564312243094222303202446658990614719568178606237754503446146335849091551429825626211481318217000520331571343127579048831458315973194688487203046360480299781961691800529736548966811085994478591559231571672411903007611188417313068939025894088400221932738182444702137094628958435214240161255668267052003165361469927607927519173301624052011709609889131003067127272785936436938863090552495409582959397673644273713101290617009787457035343235474701329778703098790414307910052804054304997680914570590592543470896419469444588609340312014830165889202233827472575658749732255035003932682208025715895643758414360771268610768410878831915521482677365081883669444047138823393095386178282237406149366088841946385699037068442088678908193285838440721209165226801441202867036685973109010493563672399250140162619229549297798460437003109928746754671076780333641293541445362284360893473210916914081309408092172255890200823588140346432341739008849510338366934430927688082983256668352622960963718366883444457486894162111616116241303315508253866331926342689316249750243704885831894379070254427994837001001837830166583787240226099338408367653995601500321342378921752645959799420363008195773901948430681253331227933538055295894367189243659088549578328072673631667497167114213968316900260412247003338452394083041354991077010254739516077056434688334894707928227986612469646287962550134071109763091754042182013016536813754930617819520915477212517182415840919113278801672532730078621982496425807859291162422598092041630429652104185756067061542333158103247976176126971557219143503307161858939459468974196528103404417845306256704495624925214611607307741720793926013381458174232171540529866974732041145506136275600427347707059268661922917349584588025783442031727397441883917926491951870988550250240489637451614705590334812282280686095450547888563689742335252913021514214837836509526330651758651244687434036504857525431739316331228619286133675316086759214312124252185119930748762898587411890932425173237172310577667498733874685823083584690868018584693578990815054795434413090943689923764061397887839275867993123594539409725182436131109592238047284598071805056218481464411084105937731340645553737124556916434157057326685806295823084679834656107189341478485401780848210175568077811398833203670645244527310127220750568625112907511442463950158571486113738708731839714782699191974321948490026449762635946782155448508682862349881125351628457585455772650047253830843604923770838425209457593335699877015312751491316906530064286050753372248958247903449678563145020364490407010158360034221165520888113208860558618438580705687751546288499107389438584933417572726203895868023129053163411061934433494898034688878832836568386892166527755336635603168024772850183476713894679710424538145325582459979265268937091482858883203965063437769586690925985176850350589824999325127359492695164421525734965065914739772414127870489396181813490391249615569736283370156113452072728233243523395597110340120563129146200707441919323434720214057388159313109821906068148526515838731479867967527471429045788274279921099455207926214094438646119480159446285886083260720209790936811874355186357927125408858301106072485546416367139175607546808632334825252698493845289784210504312634136792849656847531446689720597561519574197248774574559690992625189322334661468227211565963048620813549515728227917516068422028563170150415203894251083955328528567488508661764098078527200574519201442986432854050364995444507369971621296419351101239985185835966922196616040056172747294759612956817302123270701107979215043913258317668714667417614104352085726164679850269034182118774843764736351394137675002035975567459062344965275098070982645479981359027501609382952343323913347892091209320938658641401406673669176823182451262677249034351672483836738604668620069534730020530105860025283236802008500502376875570944428814676890142634510344464529535443953847714976324164986225445590254912532282210958690430044847780050879141687559009778479764966406858217354887332883023777487601511199106271001495928281332330076167526730948985935121132307206083603238878782692549171856184084177048497402766751964048715021967973595402020364201476071051943564835395932012735348070863179724016417849740353817073186930989648476776026397334100061450827739665966263406397302261136348184430024476862789302846595237036291973179191652375397332968326864553710054113227466985828383484474599418235357099292200364359162971830874201021140836072503175881617467703272689463401240807534633587892525919400594559935132196652741995596738679146884050549969001164541649221367231459451664207779821295908968284070078414946206684034778847591447589839348738229578625312852674474291943874466467719472625500404230956701056144397656897604343974583952893279127719140946545426429414943389932925972440790988490566877245230827940320599301524444115475207174903151258076895708170624362541633093698931549369316874354842888605639195711561106734743626115998839960043438989644081956858972979304875162053976142615271922979327900567604254621925684120736537214775490986688107431499708623092364318405984442949677811911049158270169596024818069020994884844516678469229971507703379680272283257411326551080097743123340547032025281193880002211422196171873975162460286429378499507198665641916404866526237263995899703428525131074013055157294818473375991625594862733520854357123460153812425236836613391822487015858702240164548838700388602864070454834452116786717953623962479171070835792222319356907473201402996710621547322644258825782704795728708748283019910616364317879401704353352908158574753076874130767227318662600439713126895386730769401230360815014335120882819988780603604964232939820171946005488263352156135120616167706585906765202511958208805146483505229835074208216922197421110108713234763371815189438957723276426592211339306350583248494699234636535954178761275562054452112939040716327808062501984343428065506346111651756533284456839758666327281258534091694994046685708934978759631618233897028213753054149710863588770609900573395533358933907705827612986451642352920570470409781910764933059126328143741458607085421259752720519575705970496313677721000048333391543913931210507294519987741391883201203189255763310248462360751443304655269956929599249643472819361667233034702731499913432443679478634087389080265456256108697234600269040936591813119240282399257228791336933631507799088907949838606761883683806575508645013718660911492571591561378545066349136565753246123698818020476260113549161655477112357791966290870854482910785379204182635569620088412248078326493677568522381395095933022930351480669975987572297179682760658353693358322689436005038816950442405515055461031447893206054566500147095893844614338136477264201789997208672081264314344493495922151012976126809619259934417342754862685126242662182397160932610834254802734681851242458095298097347126942408863377870705283743914552941572815859528890802545623263686227282936098855958515138664789064233370415292227788935673700530111414339927831233432700062990272785923534882704286866502018360893857170754264956713690340661063419491764860381241576473936415787792067912563173685421134852261482102276386634557378192296725276810970811379074271476268545186530649072097163833249426662065220740134742045906541184952464156427791261801921016958822045896459431386379951249871859503929765266123267349442048375633437605209173499868073143592012834535913300787942054452256960592032318851700218164623672231159023671287431353326009441033661199282625599824137815921133938335370220415232893242987462235669475358283462381589650622537677716583807410126277610314922343057188384201176307680852895870591780856153828957523707998355145342286055198725146291669233478845991819962578237795265337675365693519606391256504642469404155108878309107052263386718855844583596376716462045869678293921818238882765302433104371155313360136957264141939418896763271256256913007213403471638253186130924488367656686432757167691504382897827493208256813495632151466054358130375885996674203554100265714337497599025673879392757542530384264290705848163599242554303948154666394174722382183574209395290058239970647551989843499176939834846147539588451946903477101062871726923426927863565831265150452220892980922965941905546857042558731730564989902799285062535851519124598832633983117984720750740931566360145280546475863332124147501293224926132007026320572161430424958234192524159618177343711591493501872252056131209071496553493075333495298794476895505737680367125314976418422416746646858888110807202388336265444946651932096681881321621502950886637751758601266511742885941839297135299144560355807955161047889145410513079752078857268731101421192218695936026933962996919274054408387051022294140243016171979264759637590536651678281529828774220397236380621342275051495990147602712653169289673566103992320612996814071174015779221482988386226120702487695333104169093054097744769586213749979146196115804098865826231143267573254619656713737580367490540492279854324272503244037246173391297668065636245087663765611601512610470011992819869013891804656278492157417629918343067676410088463790480114380315715067292912109744495856420011569613344410676695921364861501101609483114072635134521423195584033180193754838282945172648063090453521298930931625797659924811606568348351513348778632185166719090394805724195970008447731462480878802294236614416389559649921061682139192783867348617725044507692121963345446497392412754073225944344381200199770643914971601831103704113153586672415562522218162257566406054777333190676620204594156164657580152289371359575004826271799999223446495682234949501361938919936447411979325257905485281208435429189758109467408782355657078342880363900532762565966503837112098884317834962526158931581788903463060037555115665260445452202166647323779105648554434509327755192180850842608319233182346831825414206484931684587071086655082634269987589813159618079516426424437975832952709502719236021934596587329969718019558202297718404939448221623685778170433089330666720224033615710922108043469188489792160297634566568944107688783149001953163078724075034114001874284621829975279712606045687158882178289173994082847394914106712292613568496303506883281335161366353657185541740740259656259713231017645752835945891775245730171415414603262741772050982442325886396155047712639004530459291510615177068939532784295992897826033348303365393509706299566981555791036624645641895727884063983483160329507259698074927856457344267961788915217807195330317566101699581502530189636463469967449334340964143274374602101241603828480787866401040815316178821258136895876065729860574128124460098874111236421068976123790760798141573918849477145929678860620136562581757563690249648469293564378952889099203032221127792031475831766212116925726733892899005928206826870284109442750831762023634311827246367417150344279209829314336153679513546084034506849991407334472445612158737014116596754593994264566546797261089461913604105432794740584160620870228706099311284694409993085013695222501169377151948906741333745681396448169140803750404790650846522300875987918700196115970534154136499678138975121020084657466046342323345523430729821438540944733562912087354287354463982901465813430683630235624751741155327353451187227162829251553145108080247735136423745224911734398833297064121172255308939554717382972977693010752946609834280242971869286212761942367864663168423454852535581812846798941430009121536690789340721703677267349139918074308319208152210941140930863664250446072479324332183675915050998597511565701748927074743415203104976813377549411868582035101331458826701402157566027272481681604805029303518374414394832146944825496878883635922908363094731199181552816552175392135364341023291282747300384167483748543641720770019233252522879390514121970714439347066267805914057227126156029184953127703837310700734862202293766099225341354272782234623043035193937589888649613413474381899554166064665107415928280217647713113997419418748284716818380691728972941040727808161687246397897980323592845594549881030564141776369755403518913592799815477686080423065233611899231194449220166565899470784556074326315778297288142864122498118657823528061093273144727849268910872856941025807147300599437312287220213561025203632880616742595684521984106719903742653792743167164273623634620941189653099674446238220508754596801912961296766036100166168214326341612307750043496936076333147624261615578430085198625427774412155681892598840952129595532151791048918726000332521388022406793762001693292219209847357200063786902489156624197216595285500911137590651940906239137082664329241139756601918716167813123768692398968578938086465415730673830288740970977716699351654837548578519171896819365214445708731883168618746653687451563426196985552310908422205937299847914598172024054021691857194262224950989564704452783122931604655109415023539805228590064780880078663750316203582722167324523697767376008894891283440844682030296036346953424807853418642134188881996696363279262959908872874872023017136066882400919945424765242423385630879492828459752133288026035224844491642207430368957714494774277202368700244296168557469988169719025743502636254852321820223783018490169921642523829735632190414110859696730632099584578101003764774240844918335913580032566927786678748602523589166979206392409227622627551709115489722686640718376703674583266806014150554707962995803426442178953114777050886576356348901387282562565011196500624495838875481640997868441039809056418266536370871281992994981531100563012537358817931165604250976334949725367746217016424554746836350262887216311473586672318814104089069874870506102448503223680965507361171320475010077393459926056500246977021735746419477879842399860216622788972899568768702538769651111822244495575668101773686025439416205019848512601041018987756003251879644354245005870800651636371373933870838605451072730429942411449450996791889842079498344039151391004568236560127156509927725199223041155768991704074392267028022982092145021592463958862535715541580157298178140732188737330265115586289178263255306283532362498405268752860630300287862931639125642331365631517091158457133066065028879965896899863100689106967982908774516394612474743554167964737325318446753161246770866866689204166530058407951878616500025744486057517450142343639142661662798017146520454179226707035512007893622052431986141200615864993576949329040467807381780026967433687144751897947718926322290871191257426998300898052018233334015435047177365079821766032722501176441852839476289404496710156725712426510385323159048276589063715127976812917634003144973458920942814520847287738414251553655415530661554488185562399540390561471011911467640231841746782835739188035781329026396877755215549811054416196460478463951121546551706467029797105191595162379115940485470431667061111162524484975514162404689556407527863704439083677126784866242656465362312083738194332834470024054761518187745254765218567831317765867025787808740069259802703635336915292063453817398623336157229168623295288964907468689760636421064089156812796928828766923137539825151058879410293054642396507099937419956724042607888113665155791752662732962593403365628573076988947830673163271838267023282914550809367496717872150337164308097493353350442015260218211634156268032278166746822597521164581861013020050474230331633570928263710765681646644693911192956650808279365575081879862573472815520873381748900055847483342619233894655163718260196071164666346280817066064438610026597621274250626427134344916641629511718203000305508018047331758059143167251973687495565618086107673159896880548496240399537731872508411552675267931523154920973143300578702218777431574009176834271387150772834698862231688898963476425820037096932507192353936427978473798599300452621015645628257312476511374921906094021816630518115434654220181042418893170002798687858080343721192307276784457004717675083795900520169358820770264112101565886369940161805724025338963657000774938978464313958095518336387168826723945153540440831581814666936294656981611200059055101414374488422913948996762508433157563167857041764135182291583486535413862712084258066160270567220523014256443940071698552339052348821889425417665415514106886391951825463940740933404766732987844331670197562118734583567537648790019389807507713874908415089215016462785894862416042101551959360042253757891831046235798961564151508153253912193366662860013371147666383739165789284287631924700663388135552101728799182060763820397613329573614819315472339403234091974972253525076415339440619257790380410482199592957777924576807257409767651677948897295211121259279340434672412273052006784430952969575924031161662996500935484570528478742941870777717994782571322494289931980391267168988870725920654110389075622860418030689112913299824718488220734432967892771600712468427968485690233895111362051479063548147163180297964531757008337382671528287856962929357222177538098037757730652616590758640785140551496216076453245791568675100381346088830749010852930041646438463016569012910468276062909218071311536524671295487793725981223879254118784159222076805421289907396494931098588198770546208317064069631808018603820151359910848976162901347224785475791315601874728711574102159978217711253228536847627063974433688768730370417963242574326828055931736849094896357256210172016288381702215661213480261258502190776654900260907310812717004749549471855116522554092949621026667430924691748270460029981737371927874582725216105821227538234119940772050054107453391689374747037699874700321480199132077146478273732745226734329990778162218328490689170965925785257051810036329658584897790913687658489504347602926979791455713525486655272075165998892802296127749012972607757389766634065079509566934070222229926286019693193245080095775643551629561664971725160019292053293403754307306163691518059085332463227203335293458164453244166967215604030012528901768931380581100990085276514052834746781529489244997665440080977055950358141752429151750076899366076867381922408602197211286991291812224624931438569779178756371668268582795786620332380032210255241872583357761653672307719753368654022832418905200158512551353160626714179443008408536598945580743535675494312281269759992114454515437016550852829962461811729991221189787650175951536930620606926446396846652725028577195883417998481749463390996365682080493503922087066739398038840456602165330380684796791049987264200151552364591901545377545841918230287857806850457537158035643478561927086016014139810390294288195962833523146065066301324257611776351195426613634456787677247298667094578057370677708238580469446353655499355172417210896579686562392344152547989387137619894859793963356072921431385743934182746008840762085504046682279923872057204109141330409822520720191785252204724684310536582728617189755175411447996810679701575625280492580852386273441668238640695260566539631607716951432228331638446968890121881074515959739250482352108155264716224660113099432968407525395010549362915995770841029687403775168557224308053560240859213859458742663581514636625966984852647663133561697607438811624203125882236065332888418903635229582676919573413853027016254034170111310605805220010968982955916893746830205880848655273654809917768845972823151965484800440507099476679476892187588949672531850024403474738550086082421750670303956315436777661680947239010563267122452125850847374566085508371197777290337021519372534830896389754793220804990703207930730575600464235070606954563002115508233017889914128193988171138811006522901098811767359985375189792473392524280441259236800723552778698268803544656568474550530455187385924047495141958832360383707302871974846658514006595250709822629108266117591000515745071536591886958494363289958886322157030039138284455630550474542518838812851852324728667126247660647247955929760783880596103858993401204128123080945360805925672309324871350107146413924957871887469341008570656219742596637120874323002846922785218941963207701119289629043439350185319359297990068833362372045911568196191228096735236872964570377475218803195545135552044093210796136454669830508675820752269017872612592242550339962328047614353103101328823867805603692338616665989958518769360024343907820589807920739619275555111526086211620419270224460101762625431953274431179362228694926446751004442056159808317870580568628059028822458889537065365156998453040060073621296486465455578677126588257093203771445866421680244091274110689411030539688409462318555028346894047640279378609759054257476296047932248702100428329163171465613399147470943063109131590749221384501129335081644962321201583396272464409273129060925222126037498350936073854388268819753251017715477138994479533387375697103032357003279056848123466405472270120321022674638030755283811740333357657853039291404502020806042123622222725514063164906551726117138264671785277289458053985678349986101226881860139753684071185937056608096835169823033699239655198261228500751275302191345214623028651077634157653098399961946295583338026246102925765548223633329958431213598940432236786789362074209462421420750332076416311022084044377284255905920891733424029944307853795827228132454725547739706286844320050169296641992970016935695289673724166153676353739801094923561930562390977640577007414144382516149123472692241650090364729262992457157784928836455302509203281943491407507299771221943877321318171823246287365159853215130685820008074020042621225160638717721520043496864095058933212284012325397937002602090653492322712351771293534805906669761856611798415016517071731519507690335129661187027257285374836399555407379188314259972621119655054094970132155523131121342788778561986815158727293586299402914271969028230918339729294029726606977473392058770930825706291153106401253422558566311646238446118743270217153258333817914873924126964839962843695518368257086854838426572473287446362694842055144588488595183096030760277231825354759787796139364432920661891841468962317616290204902747930032922096127536030287191509366197770157907820223847340357245601679884971560490460027227312198499579590509430393672924364336590358358959368665758195537964182394284213452237510900916278671703979103364787057680314851875251696939038612327056826078931218739409574159267136304377041850331623969803740889309411802450701484640860519625586552567138330946187758312975717669943859639882171252380986350962464852117369967159514172836948234709747109588084325348264065376816682278631526533685925149918640049227301554773604816675900064710367294834617338993794738478109554470717720934180219822579375546321400822772259493582344001810065081440806108063680242743643599547279198504015279791383965772100981417622000554902305848297113715138700168992939158300438041556832879514190991110446375531360961868181319687874988547655946729962300027429724419903090512723762730012240826408495957163684691505391055823437718741097489830434963823150697567104502762666689015731671374411323695455062909699820576012996049842410645041458882305408231242521062775743129133200744946230102160100900124849146440134530803783478928645749833886492080474628252574367870769018995870215194508289039726389996052020609570974525987595153108196738125224072808856368234965790685055005333653797292506166052779176698429796712382644657945771009964390284777632986963587922530728557080445964943402292925371152508707194786212369708376310391214885006784939303875334883527791102348474760497251935706100363832084329782040506383755260066863599592140371935303919959012986679994831943999594220740430361636797520545511038466118872319713211230875621721467857561735965294709586211652785257173553567605023370565750538432655021146984141417585837153225519325689653487925573331579373749465531484560855482165791466370961255351447922975360567517259504389715622069007379600959747197800664225250069712553498718306091054079048717550624121629888190561156100365004475359039890022260064205141123183437220402084465013106383122547227066354095350575367421698875489980207826999210687139010834427964141098626231177102287632923424032157969878965201847325365757916493671577681578095595350010433661404356061722962292786177389720358583234819932596353656068456635693014074464245167058756010037098578714751578230429142080830554199310244180425675839621442871446059165457415674300562755017041731234174664859773588417071295510822389451586091862584480091603004807766805115285443869189223862481860947696139006354283186464733498834899520644237021695100582091556296977393694775682249779657061369664562023675340316649624328369825535447467312054743752979716424126727333225426700454259894374750315372659461134598718856465089650822093972254662618955360755901650063506610953812292339196042909239978709063865792510548236843699035181720343792384889373724811511309338622649202754613736334093464889027629410545167438146550346981359762542658468692477323477506480397427519833107739411812033953032416288854033125855666353160027299403281179264500319742805651752053023279368295001262780440696169126346953244340079543024783966051427717732429978444549946109543191162565026188715219178548052036739179141807774049377785585438476812021051982581267212230458023594579874305760458358873818272724919709953652565588493874936395337679929937907168534647499537929805167403161085677267242378376673398171933530327308560291161796355951522328735456760604794647652862131397053473842314249264178951048664761631983158201710962455080414862116322325940138915894992670317561036278748713958568258000255351875664073069201745296918030222481255694955937270347567669897187702323200709730414081332247910481850143090757313958806388617162526363205865534926557853362261776510661622978142423688976426144786098090231712586745206775488320494087470268247201910493739035640281195730680005460857947258820783755666211726632222110261369803385761101125504756350529413744896521777021299575881794537990038918793550511632057370368127880220054399341499754984975029724491310973949689576828338244476957733004277327436121759685342713017640277463822504608130854810324139615506299354653758316692623345207857624940204876323946832258643049824346847706443622862974898432366805457370797364026777165329921462285930986443367886417969505453191959242547967667862365731019640011030754759004030382618070035156917660483670524987431283347034009760224601221285028747572488656014974003333552595883376290991228492099084712119169402346061139068919291823396956943234774241118502505882445730725727789887751457373924023872249060858907695289604878672627521585627747268238391366254264735075857599935578974827346525576477282263058548971428511344902461584843272853097619810092178691246190106252721281657001410170683153218377120468141558793692886319453522872823205849203147440763518946266634066295814009027921107887857549458361109731139358492852186955175401745982988730663418807058510326892451561034804513163300084527695574033700710875616564957396873019163890937778445045165218373857592368481723154560616603392360255544832906725477324538854284797153969110907109735210787818298886683344111024593866162245012319183229671434959205091414081767113101879427164688080001084301715370959205491503438554049848833539414325079021981220719361930802089103613899458735280204024008835287565278767782017334157186106214722809049220234884416317389945845300079341815606584126879606598462559859953514614524271545827383070221886356876013133847536882613736464912728237007148599620374773076126033021525968940794352798667192997683194313191694117784228656138506298403525709772748217885820400150615356915930057599060090473398427465801850152709979814557883865507552144368373672077921843580408793852326235945027467080641553390282222565192768221583961982352889631915377544788896343742388643527550868622589338363919742184504102054535371604915880712822778154130397867921670850158941508649105857144765277580644334495743022718945049843291042597507994699871407394279321341772147961444068876928447625428178035504466629165844064669594386503919227494057318917745375403876465046918016188760969559612025671392992692288360986174631278056473731470362174638485061966805851111062833727943020950614711246331512971709549620986034077618073478908305582520246863575163224911050476835705316742687863393921238770085714250405855064453750884941362911425367869402615100456033992680915705136865562841956068469020642731344094157209429518233414496733087336200200133824758302235323193418789342229818376244423699187837470126650652801506875749322481651786052694085609057466271820667835263989815938623321867243912111188076387575943412190948062869411805152176708625298266927146680503736200388395353223977361272988502738881925860627324894045801930305053762146390860261594516702403841422991763251145380493509978792341423879518991629744073187231843490479027215288597948073946633464946812045082272811178023511834140870437600699703561744778799506062852328251034078607489841155187311850343136029233025841996624264784932154835689419629609933947704598262997945451497273158850095708462547621260266246280806262913758168126943458531361669767940794669326055675195271999942908294304147644655841707015916818657633264526087492436000744932303631813662995465816702421308314259967764209281965991854802318665026789949318080936233943099452224660162611430910280525247133075694509729691376764499932793797292119995846267451834122180852357210493884987042117665751759129824052493432517007672928155566087204623194367530859593423665354932111110335560694310525691528697720383640481034148661525844544907982380176236090133068510888834599623918507916487915598187436512528319951137177822366568340296685044845000601131618321482427677362821679407674525375756258594769883620814687686028200690308267775631668931938593697172735077111555925611654465122711127923505984895510121221937671242744664498304180228740063489165817636513470938762939853340449248662122354382990878700498740341885105409995173637699719844234802127829981557315110737142438382119760965577006996311075015502027441357755137305006964520810889587506807224055198810193340597918124904272574367939648669492949197219965416252540389572826932560376961082661772077146605187232569362449330087512020278972038735188942246089751473776218776903942705678016425023538163130051845950789207255382743941374912549551909567191302843421797615622890304272068649243898518584470482568229031163811669558457049910041138552726379566572149204047747238123688777668718012772290616551809667675042738922466135293597750379309624040152711048832433139010164345219921903593950230726609584220190762117372064985234947381703781978846707836524834541019467721095459424937593280803699200534533466722085084437645720828418310276927245774711630960437595180993637751643408513766007041265321841195638078484205158414971874952850940346274942420608264373272581258658099259184889263838944421892175086315352300338451257609922768128176111400597922746263076735724536307470912447485627265421964046930588717156276363955781355716557041127451160764021397458629430403066310458454559866371897119333710143594791678237230962437117902442218749592800567696771372339518929018812479385452992964154985846356419586420468629686574582117536266252034386166526582017111198282284288584424500075184538095968939358688853317347796587129341410623938497443623905990400384256549626171084900844146562826775195743790511699675811868645295342122209459513757716298362857564433805119761584273820093349361173920591806281139332346268095474245598592457805245490010459927561706510563990661515387399649849640118452338748213100255632576047690824988068513431693604773616388227747622912840346345648942162563969981440441371827240023580525388437438571096664496308171860359390681116448128226537499723500778138831106530299540817225678620883724304581105062180991868233811448348561305427200192564237917107180426776401194511101177155789321554426493523824643007286939490275391424384779339653225254607272077540604274170147192619764993225820086651271082381809856799665069293818879960807597142414209117885514529561525159814293462143024134572067094183565961973388465773990605506547365248277556093875455826272153850987156569922307685648250307322400853850749378419511469789654114800682016708199886820849528831949401366958902980491321904319783733575611860119729716351884201886357314609534684165822432053894263159431046522047651363894372122243746846827650848901950164173020954428832038455357426371714733016252555970731461504367914207723456032654274393517773774233881882091755401202426579132318865535950116629630203649808686310739272888783167424868975010221499025773522167162286782687069983556142078663232963548016243248241283558478455534895821663432259030365352030279037465142225642344041078844557466781739040628206080228147013809579777520269977511176404475740170838450989406496007258712128188610483188868213390541079473173293585077457713819409806001657329119222983588508879656430657298059551505691413223491027137218444516509194947258248752342645877437411912707719451039780011369899468170309092947718114584364888180420419157943264198757164821099133311377233248234893064353567663324850500232737785981491442769430501842117361145141118542192043909007987201585551812380473600626749516443361735439609532804232421834350249548251314166572222711003562019319122556263340036467363483669217395589823858189345108929124987458652027075942763409903560009981676903665020761822042107565014669624072977078564408996222624212661459499231023636232106521852558422295983885749997218972044887454840367005504946190048109896820710577470920139754694391016789093432700803633526418027271597315334610740451017334491674505492845869283284694919301483131295037158138516792948711640829721922606938134732174747253543806662951772419509168779037108669595878918056155104717504170020146824516811260312819948028827757498718496455276656238856668489712158465533725198144032957017893113000438179852764055255795774503990909436766320186305478421884489383239857375894265057944066554334342538711516909307019017834591861677328373763204543751681499235474968606405196537315018375354376329142128546260342442284712760150537108446353279855879143450725451143683622866883009628810593453262653519185619363121194637001481624751750689466591971189854854897655100512274852675227039071993352822294086198042280039793455430643818818674007503259872698321278573380560997093725274583789307938067967714367137299549411422156801343861549567097043257330573029508490422893666810154260825998438768468658958019002047365816535402462026420634923151621989348470424585226113361695001701058413005919144004191341862168046035547275010663423387415917926123847307181280962407210268332455702819726054216187265451349663256645699994171350678386104439671793977333406221062956333849701013279930266735295014251128725686611335066923528402566203012137635748093873841602837664186095499044400029749849503240000726400894604108609139512679438852974164337862088383585306404399847963726942503828741710110905311584517049744083093951245751085434854456860961964726622774988255363193685224091237492700956532364437244981411489628657241584329942986420120307441906875453829661590063816794899687555876830168992736171556062090216847427045027375507474155230345772334316616451044156370207478832892489347018465784892136899609103015647058455018993073391439599679496204582084828394259610529582069522605763186969207934864594877133632435447953259439154619384095162567632795161200654765949458845613161591313589116771534150554080483152737461512716231933963383526252892345221694907390851972837661663846942270480172550086614151505418389417005503124726600573710903341838191319723728098220149223358340160966231895988975331089278147267714679758813079989536027538205703675446036449514157626634294391029509866269730540996225227024513343910178821529889836120747926722927361254704690810262243473902806148776274020600612243412916086943852470182029813135435449246832094357832875984722920181898039154048372803150438509074896516943652963489215362176675437787944070735081307292655606888734064778805485538037270256852654028406733074225397220841479083716872668772763248134175074755987185427227520778565281489281623123412600165246718630836015260558294488225729830948720289654275331596355929407289578286195227944542726755639470785160571275543886145475234991063126494851117393313280961614842283459085480089754408680304719925058077195610950899860879482559669308111771983826886609778385735818792469202801170310109479407086487159420323754483117658956634098068220170848906697447011111304106561728897455381769964874583883696625734981824977341874314563473023087258292192103512339173853761879318877608866647448286144438729781895966339547515188779452974835804671131054790957213853140419372838732135837022649855878969837285581680839109253259563784057261790730153999431615311960171236698178225715467510147947268070895310525363336452495289507094230472268146688704875617953631678834844372993884171623218505679572897543088482053748993068742691188013452973453274466336099839536658169484435456238921506786221461692012816327087607003626592031559375057816871605352609688589866845912389928358752956586171333872453656695084867342384511246267155409715063888005355448240605243761769390528596591247189549178615079324737276659675307188657103006443099665284514283774807821778771738596467049954189419504515564798521995013322303485726666469543216709624449925219950119916192103055421250607025902853443372684901973509175826998505967988076159683480501462531673566342601269004613548800733425034496504524682054722041577050569832632849992749526254004905106667183522072964632537647015866751009757121693127025829296805778205121438243940529876351204760077425384669187071510369866538921072414523856716734977886940514601103943233797847147287495552524030295509449848644143866887178648986289310171600981799681912369811622017740974950252693230332344261126848887259532930134741303366282249758957746379528664504947500369337739147333868886714866620693420806919847689842830587334643088380311057083362325153431496564811701793687513266587649846591836096293851307452313903739348357420712655061755329232691128337369360564265106163861907326851599101745427862441689673416214211045545898421985587324856997129845262881778756039142735727995928125935820946848785133620073647633567513669188761124401127200785107959403246414156404444055560149537883857145348835996452651977950617767260456860412341346782009848653785092525647738055698151539853469241081686375744431851521789829950857004032509315224828276587877581614920763445341580625134198539815401227195997655237291815929721005263880029360027063147378363042565976015787712824803694074832675533884354992421037389792989814373277386700259286080849351329463195936035211879476923683604479131188266586567251522638076103498986966391557877425987708501424821018477699786322974353552884619278452180831037567458156674058105319072028467790485435346847829024511468176273333360216959939390728488315597372713646175444563396814764148596071994573483489987334560790063455029258746901394573185319681442236732190150685253983981581270661884381165044533697280026082591146869736909924694106601019153440274391533123215816734921296133667320298701134429140000474375692476706656476969680558582494035660988062439373194377442531958100050545012584763678280224783617575159917112338498127939722624657664285665257978977946346803557205637081900808409701430130516402737786954173727535099177743694126667532976058538271012293731171084204024218070429087635760066632858221106531154207322808835587902067872316432120196469449379700580693811660018067331141641374159971117808065176971974967178507309382534247356520834271698390403895750836363021010712500259282971691800836991481536758633909031352167058925817418763753501339372980973181801460307047955177930356879487022610477683521102915501257704236203833533212499555256442104507351353814454567002873606604097636582433671076851395451594766117550460499082368807013383446312909445742576767731578378066504920912577830883419398233249032997308574949916475762146200454773117187986730053588756252039065901749576687900191023554956569541202723573507330261683685150360317648120452438010403049062361199400287788307819248375753551259896546640986246310084094067565508099206389416705335404962097403527832966566888229052995158812291448492393537537193370498809719772919086734133308946753036481918271198151001361457462364321160108301585464313132585710717604703951160429158621858482806602094245512498145865649052104960839503442688409878309112854576605832068578392745617246270928473112817169363075326237837343307977853791684239618710768573036860363714267880733472749849055977409811261886246790437644126674770551949662185764891512235741449429795739332091899515052880320684625029710451059499293654196333453373140552393315574120432907216577578682848192182512441846663410614587387043023595645692732399699119725128930867090354925307974334775029340181672167009287551431957524827468870111072846619739851184832572724823418869207344099140567764816395416931941896924176121321468412870813630969727072996901923691430998166702092055968587329813420010602390157718741437061692789025738523093665876349058616479893454106099026349678529933366229350306520406657487035180905691621631090411684841261024776602501548862142410240949479015571426248618493388014096854883007010506095403142043804857405075130677847213192274613825152786234671845674907478733933968660508676755185435303890827058672196096569898264202113580091409414445323742297227347356646109819263231667175318904706244797981236025085427383642980434993608861442683713240900878507986566830807002083112140205086689127738442599830652896015211438654776659764528477597656676630355170923596368054711630431164438690998589373860398452890284404643516898899756075889958005493328364923329650007009209296438920997183108200101570485780296457712685082168167679641487406118648767018222262591457063240872701266553913610200801294938022890928899754642437542694241411665257520958796810497808373497827659091473580069906481394299810579083245795180031843071528212838490993563846493296639761508880044288995599037852137562743251250714890962530298612841546974926031093036005429053700449432114905123070347641050964658681988559602613944445441239019232739114978446024828153178959213411696279319824739826696780522128782018791908267077139384164991697613846890016326987490777217540841774860816882830328364252552237297246910301369389090122386278353774697554915029685713995665562189191805236173448787399447664139613586869519014463939433237140479625570956336698291673049316923607786272328904168765770546216982846654018445189402075836585172391540627196964786967514218476708031009005366956274804500264406232630230070952355850018757198770237104309124642236408072217766395102929017507428791055930659733029514912271129896225734544710684835771620521274713419337516847050992192851311268675410936636437507861915512332608827353149106532564993924037161281994200226685453459867254987976874683640100629570616178201754768636515246003890717776907069290356143065367879574712612735569049746002960324328937393495833120390575403912084473570488801913244359629278812629364498690764841901552419876685606045180993728954551554739590899059746311702810978357097570123160453600406088647399670444686527453575443709908330469125598268081609080410082696520507594839591900558473155840241351934464521296359689416897670547682155144466141139296134630533623208798575653702898756378656341512642139945737556114789146321830927794282850732924461876408856058335823847176862545874390986081168362768485407700893103624708629832824359772042885178937624581328458616489552031377582396427618511857331321659402667937296691478945944903003697331372308385091513575390492189459222906813260326910935712389266638969635507287466744050979911769791053210805879330642293917826261929781531173252710820188481348613806993119678539627957463862383517663924550909004889639769008515285832961052683600999434243684791117168381604392162245047401906000660239073184153157559097900406319722690936314564236183796803933963698171334635820709001693746851372244203228475693085338286427971244022231871883655917358075654875021333916387621030398210881673981092238993840960081106098949094112002251157113607561301728998554756501245690701429435310606292343764643078889805622335336939566583167795119546505742859222850914475147538238475485462722676252297678194927381303468665044741018099777316211193635981897683013291195684112848105839040397817194414717420163159512285811196980555617140006837984309525114186155877098836509213492517336366794345720684076183770823862685325039696870372097795922304946634106384612158428156612383978970719611223740470189122207992771204257874530599169649750846640444489713345109382273454349371298078525449118231937971030387945680549194277972176831395047903335864483023339297867373379693441494114942463123155610786656413791787548139737334015876395235161565726140194126077573064154832998793394335722379223213536405425024750060025526567078163315347755024750088338961735242852147806345711113940403410229116076440862736482335314624672192251791355864157512556708040711627117864835589761054916755381764610177411387007084113909380741547307256566375612057168319739003108739177560201308552473580635429787686688824626422665541235551339138292977834054811109486106100370956956651822496751143304721686882203221647285841198693485648106262692597072004393497112439583571968637929485950452386207615438168799269619483581913366709478480734544242813879591296911429045678931189420644750323361188073418516900506395044764027517991694398593214735800524514562104023837102400692070382430274278258245185528470591063558004274376012186415109737806742649476513165740814240084731963149964339090786564369489706150692211779008254391002656432780012290852960783725406362639725389532239045322670301243915787514851286149162606107926617887798770888430949975598621825663195717385829544724188122846409478101919931131683291899470126105868922337462331769332852269166020881807838163379274199533490470908381716919121012971455098274912674665379275607292647004924814466436293044535941074780451733370033023061008235906715668917250811946881518217721576678303125646001796086519733295837043077421804952256638739771549533028105980263986997148649456347832380684989491719871090178056618748391139610730110603527639503293093860919102519529057738916049396967853503283899155608300598537896761108939606008904252367834079967801570384490163584837059872220942129115568126730370433676298718319444649976744889556887064767841968000979212227163085495529309152571176350524200642686411123767064750068714309694556410651845635602341205353273493652931587501880934216651655229905948363575815539431928479082769434023406342070070626042553502534942865390483880832087809991983952191535219238781900263577683960295753397351111747459443883329470422347907682144361765869054414460940095433804901825162122039207296840620281557088165240906022703698099885221485484395072358386095000099350813510477013892347898510157711854012671558832252948106235368288825972314993024721660510393594227889859360869981303185723717084872847666527166068031615614151668471266780136121118023238158614590120636494498885122796168911339083041839018296068114354541002266188193513514725892063379636421801388671794576582774798171285078315979169048908738745732734143760333907853096383116865651012196614461271433938749603508579175532157086789527360535397460920522807095974304679245488294656135836197257177813078591345922720293667699924256413885281191933185236033480885587949183822681519808452030730496353013625487436261365760019248678496362181503232643815073744418109496789617297034159157737777373314655303516212526974330938512937340335315158670874917181719762276053274071634257009794669027332764309231069180887825255425983909189766583967062390878471836427607436405847004150633681005739188686545258198523075868823713306012018280013682329907532325776955402433817714128340602819574879648117202503866098400962054769719715720415745838144594886126542821943203558248390001284784530811169350284430326526064224425652707213988826572410736099895590488776363023034645396386750295821680048384556805545042667401214106642191115447932095412583206081098686053581246733468553995176392237877445777132706017453436111528257061974926166817460700998275388227797762739297164305463761999619126846382880885420417604490773799628013740437854687678153170968687688166876875328576910162060266587926406079898107963755573454558850747396674127212043104353895173266423116420005022276557341105465765397043426535846892743904381501590895674874018971881388681402194202604500335555758431537613262949368165038182432526019870270360896908075554246493900541077479125919033323309776041170038364983909293309677501491967380031239990725235146350016392779621618928067571217142096356055113745552630391455887748496804812443886583701433002991871823535932690283979861795810266887875723368893307350343562302002422879908863221350768124881259947702904185536720268598257657038751058679323999774192944090952948664792346864057788382207503127908915097525098660798209406795219022088201355107239441158532043500137417146088015168769077723346003745492882484695412957785114440288213480652709723720288738009144795767769414277274804635477172187354893143553953178247427648777267313075720118778034974906199655415464968045243330698902942408957566036795443693574178023509632447016787649301105562897741074758730218054467521429089459705023780980219456329688510345021100157822247149864411485503212849463001907175373995193025389267166818384067352794842841150397024383240515891639011315543653382620666251868502115000839678856152025369323831995218564269466452566895574817905503339349747017894825833277708221184942145164178066217287353938810912022073161995554342291791625118168961220724551274899528043376901509981993009449934924646913339260754624659794403882251223546758711290173365656959200356268105832712461484620199320952831077470615206853990316611277075700882246382934754723660854339752792072884185842510083465738359805979117260853243704954223773558049357119527999405164726276143363853809811955580015313195689218884349312400541677947001957049411119358085150694544176214868382039957377508629017858517134448309197006545970040309984897067630643102982732106330653357733911542507710922278466650562363743150259335888685760622614515169016172607377274530728148046900830646010718086723002806911611597730657411638094661240298614657694587603976239952133664851973266639584344935503613215139423584592090336885893011047269445237513415147478540321999744122503985278030855846177074180747747931229449700653680075810220910492228485289158314945749834809389025928708549802075474522338547047304045426150585620682484236628531715428651700764246124826826728412176803049346948064225345504261315639994834598560655452035751648648884319451843370673438719647352470701261217381578595434744907169824983761650320279239685711709478859759618141494092138490436061154222987055639289400830045276886981181159491840943329686488688250963108067695231432349954837863074044254964253414163414208794953002105899647004166266776377892720759962266884019763746813846405085158299584531416504938692169942473659777899125191843925164967637466809315590960220221779057073102269794549811659024914305950833792004873253963271068732624602015044614389696272695699369675106785301590940097844041174502565374663899972499685804590980904903400457158323667682753667490790708454657032586570605954038345338649149787753428619323881851357249344771668425452978632274358673478438641347964962625787348976624541767593204163237021024419948039710180427182255153635751740882307286115272279789547182202552280858617070176365501247775273609911347688624406903470086680798310334901073049621485179580567834257456963993977268575508076240743540021041048848428337458477462511822509802520925463981537397180768029684309747843533726926458844598419563563484242144345123727050306368344051799283057144246362145754695177371692479260971193174230365050639393516048928668880530629773479952664539693416746606632345173068056768262459508808966386713181544725665706084853187549845658031222521457566924102944606703642919626533826735286847146112924754169764018957716445879179823343710135484205076763940554597327428630374479926135156558188560073475875053257460865958984917983655419385445519022621085382239689135103273503101837924189431956981717018473359604149813247439689899620188409698787835747945741161302506611137768749595644907046783369737671114490861241589347346755032930980373680325498291972444239076691961501395105029830024165827287907502110321889237184136479603899167054990911094867281259950507106835497314563130703335424143750046976773787172388479314029885137893362500889063245927998606555921448321792641273122852088690243242328543768627099553237669656183267276326457314916300928841438035208780386818341256251869199277161466681693259820224705899294664524841824750400557678260912187771591375164352633892539135667204263678268597861295772059814326588758454274827005923896491072215965750783154890648073836194894138792459241505651749732340411658283557844008935389608707614662740817451795941208151214789007006880526843066157678520147298508727626779863908876201269771856140919167230895335774777233695659214707926736307769124275876071829953332998133277405948062524225273422743030501709123970937601488555150268880440540209621718363913290353849865426126270721254442412039650538755370549626381173117131442531647723519694322449154532411080991379411755933534342541937079661870646103024007734153111194449792268356591753945203854554349366658818397002141783937602201760526616135499773842184210237869068379045311998119760814651262007182357286182144279783422663717081699661952076896582384455386109207286834863406722549668065874881770119373685068962577733135716779593038910641756974065209215040875660775442587509217061370732582905156899579594640591642400565216903373273753064987351923031889727762049617767998630031053806516065505971530615473238099398264883546576919741499450586832103351977407790360581932115145049748335983843256216137902009842867269703814310735786783949603293896326331674501952194620298353138193324628102544088387024802036773503343252316126758216593521525354999437562158064063072449152482722949313240652060283573166454638887303275603129281825399880993947616274827983251660123271495402451108586525237516300039132833896410866278799633860465183877120804798015059691955227384308561420641356917388817462476864871346202785392352848415032770055178919943556564398401438156701948175562889715313471470067355578853017270590814740913826559626175439976870688682291505129047695699107582619657144945636634611171520665244669835259164122260852217078345220621822251459321865929139269666360615076426016171747611609772416680611703559257777123015776410172574078046929711290626905625683370283831080542514371730049469588774395658932589506802979524426100395340396733394233216097984331667908885528949230998500488126730482033499117382798421337536380731487307987869769390036810872730577612907515041182030591944364682312664230375153145131074653774871103451669368258429573452400620536126820141303939608804677389776409580319784332885589791769221655371656332503494273927037326122747446472715211201951726381315349259045030081851312771156574184336704752628485957296706365982257134286240941330549711662127229480322783535267043705173934272774390365344631805619741637086094050815011234818995100454861551830887134654289195587647451906306588290930520428635268602580911964365825847557879041936128377099595651906693473884592332253128022133812312972417998537107818825568704788833562825662622653010391351713498146124465911355458216057455375740083620219670917188213959004560883527580176185578833958689152392393462263545864595817471873897310050724042257216157000088486350234515787783989053069082055249539649602403287189653164718323731526326803556340338689054078383128492611515181861944929486985027368260939966986486951595095334975044942931019598353757726102400096992981841784187985973358896429034702966051706812311260079595074562312574182985025018772579333018297847566638802383010789489431001110525516746588311093450898738704646181064797826738097179719813340955119006838081883001063671064044085323587794255013657701537344435709295602766859064249558342365240582591127519923537088862477244069719757480729518913277905894238159494529544817219798811995821655214741171240099627926425588906099705817439085535557356227828651736009291168964799960320859965491409923067687019787423100947593429158252325694137913191356393075522110260860427519935760979171923139469438239633940537509671253825901008784234732220461218928964377836016627190783978595668803187572795081548524063356577762360119602894483673161940739604840739533151767789040819981144859646761252916392933722064252101215104024874905892138459465382474108068589968727172221589246743764738328335110163404180720429625073328514329998787299249723988921306506838827997335482454658015222249441726570233063081101882041600030780174132565720320229425626710028664258868938501566220365474670093185535109296943751938369708290560112701413941185547857213741231115651191269218380622346643399753555803735032317014821306295546576574080156366516572241877414935256693916979355597337649157479947868237074599590112663371280556539438052014425658764893554800442445237209428225052193384685658994628527505136270617322117482213748020726635768816909298515684355958102894168696683392596919665217073530770104356997830782387697615484766184236012473375669810142090997105599582560069363428313161577521751237112723163664134552370078453491505965269155594003354573737553843210221821000956181561994906681599574924792717099870995416763026128282651392529673299912363330243485805013001591353152443266407841092157884007598941279717428086305759231342811008126089068629069703097752477161771240089536270310984778831394691807149637939894624043315654514763406741633301620746317749783920210835835944824768052623026181730562418290131659154343884318765377581751619289307350274214942105629702640478862751017462708442507176558356492247619381056328648338903797806534537207513647834856156785191510358337982901430331931817775095313333305072664664580924207155060198391053376327678233959614281532393272314961598002010275686155822641736851796007870624354037694774109654960352614768459991629138903553883936193237815647313544565136116288971408300072619003975186212119319130429987555416814906203422561126532381025632338370132093198295687648813833054909115257224569675551861679467750088324249244771618919626791868367225879750985535051110076639938837779857970799511129732460285365503235642366288506041816770782032711720269015099950014611526304304521979142861936478043979859928213179172309087770387834471583331494577824452055543198992160102416598599511823577963579299370256663172946758506870077482898502901437913618523645548463882661217812261540912021892855404583643075357106219140968698019741296177331096504716950211821802498208458724375603521712445727948607082361046452884860469406341042294652478659368185725579398942153167353764794035828366091188960867238712056934296818651821862602049570412317558177770014846334073780199929162728602165331999420203044545219498576331629624589545410832096699986175622870903710465852318302099343931353378348530753831429175787729425423110897197637842357124723040355838514032774265405691442198408221449376777793709317219789091937608883420669994468708526289111488570504891344463671262649911504997883334093895618085352528177693291009550751201887400511937964372044255843295670066309323458798364411362132725266563362607606006315687724247826850442864763286200029905259720306002659429228988094852936574096439606349105360244122207355966555866380991635479008371848220192979977097315667987382034190366559847143065487983156074051097232703047813109402379349643769784076197779413544282200868693378294622591789209733016534604402814411579740553303911886724689361282108312756471841800831628242326146960791131336395133366542403540471442440002093781443567834646612862278312879136531688893185884917322553813997871591798324588818684268596277545306561081004650885744105975737949207401208243551237395915927340200185737047137993076221507853660868051282724555757256678953568351086024589630475923881074728616946546753029159124827366817627774341117777401709055045959361482424138407746765449112993694994677424366306374778873569534374119684278024932601153253090490678070663611037447292525426458775430355547509354259802752940474904272586834242509651555687230496395055717402012194872868625413804292039606381333577581614644347727087963299300594603008820527275421563983463973245615916602907391050847117755581452035722944785977958921622194254198461077157705247712723136753920136421261256340509833490817651972410746008409097046966779213609885691183606239657005986999709334242049318225552168720278131352713602366511065796600543854814601484432131214975252971475839312064149822014080767603700085164396796083828600579443890654772172786979722740938489925602738353591856646770122737089119647696388690552035334831624529387383906116810135184577708130163733531493979097646436726261163287712113034349044390064003277989186620307895974995319962950067080527361038523615251736805357189290158241562519192261523994962497547347890945039916314337534649962318016246611778308210250905988673978269689361271970884584252429588543990491358688569538052852144618813998067628238000223111672781159788907703314142913257565284768327482664173492511059501639236473177927415303284233888897616977347090193738879632284249190599272357144763737430550822697862652719539433604473754832772190287269637029732139019648289309218356981600234904379898940535426585098576628507872121032548449012705964996493045910317281157460391588120726425751874948360588530800086838611715605405607149624540512273102627628461059335666103085971843891773509081763738155620602123990046137002496592913043917739551566109530341985372341518840023636790546805374908866822138189929298842957708957119369715258134224817524985905205343609053528491769138972041040547619453615296643195678189811595663490816849840515281761136967652092594033247372821452034103895044148246933825795684023208677861725416528669556213692442091535656172506895079346949027149735579097093178435578892888256849835228733842271502803986598179657669498816652842581545742357548948660152619436790999681422116395376844074342689086655254552882817232386345372742356703322734905927788387386919754856410835995804077920794063951682626541044911339063744829350069305288381938630789979741691540003429990092357985780138408650020096003345697678795946769358656323320761842545884125267095879508561754926562169799652980337748509951397654506028059906107078467711105762874139900296925134360241134249120213226946132220828178805577763836294481877999914735694505539756844844471868539534890117531229354861985620475388219298180584096981169830750885153073157338526314352453052983435015656064274926244057170721510726093043929725669937646161960063785811572821169374570328313432996705387163479035394461528032771259235077791291501714716754405062180718494112515272333870365220472872529392809007739595445019772994974380712712913920677092665631351344276162393823779126844357243293251575046363263399213281879931163678829242486231270342010531275889242970888456914531023435338648572398066992304398038480706542787812018557599732236426657126862713009402920242824212820650044914200686701820637118272192557006640661799578142100072886156545487065653304689027704055776162080867915918749427059090005047165475630072208928477877473118741647522862358782450647250770445987536182516781342687252842004440971401808874500297529834853719117353931859913033919937437822400800294894857884635957581934464225651821968485856590420269091470369169480893658795336968424245882844985896211957831847572429141981148457528229889891170245838067757661889726023639258233346414883784092529410652501394534761167364475841467490128097452158872989719836143552858745243619880784513210634687422419351823804826321098621884224840332133235848923693223973274496646494255828739228403204464447143113005060933561061956893206153830632887838591382463361457026341754087942826063699603329495433760458265527519248391120978132553601017764637332247272661846988190816414287461323994251616322716936500721940887652469755743931857631011410882044208246559694675297639795396038933513993742904978408382110998910297985193714568809236334687010902723715555089463708920385495509934375670250017291452110375898929128387161535898612428807345234309593502065377018552247106701160259248819386063380294715300831039837110344271698812282383574637160672415860374447719825965342836696556782056462472433236020039048524971421175146927965632280679131720612958653790320498662010036900497954636776520529083053294796176525741272801854638818843504451206306334350142086161761755766612076350365643599264443539864995801190992322402429821707462667742794702235132601734566568782018738338987465429462636892566364187839287464792552599755373096187788003128882245080513975844795347915632312319980245753049603996792848353433582811127535155854850143000746410645524756895621988011780310315353846581879053895626251187836007526928299154891863514069375198533793688610554163894763325044789107444507152577251875947724020299574339720485529638880905593933231134027056101466555716483053093232516403940901895025510661368423208848040407344036224868389724752827939940187819939730647661149140656652593901681093563524078818156529565133020870823722033774948004018979130032591174129775011593105122087627415712315682383633668565194309651114465990616732708739653503862886222199268366811040836454214514663974902977482643835590740606195869819086604231723273304177542796891650439407618078586601795706114445794601462584250796764531020283217738106101370872052295764499852259220647373206841488508549788767302611290860539456093323395427176648281775934733880647447359156726495166839455098528193410244106921400581046753435502572343357329870137090976460031230554324168829771156075467771877834631047673613202559364762944190694273323732488376498036578643036862298851363136627290074219034955964227418191318509891093079394143655410073804088708508850616990050226613175926960120269554442323240632535118769061670932212431367618882780170721246038834747867738653911877366055522732107363345402401330659393223444681883104475405813646297496468262249011452811886372484027141922098600516104954521212071579886018739633316764992408245176531651917804771237080260860972299895497144992591691105746429510008983847569088726793424209049172480034128597541997039491948579939989708977777360036952395787875038054159166652758580980819648417916912807870175145103262333657701648681709345315427061765885131344254906495470449893157522027531577448526067571978173972681449619475198035837431987031548505364630592150073832167941992629966558380672993777933677586920198395843262350991509684435340143027304178193590714199762443677699932244861390354116790928924948444970223267934862225277786809995415170165248442892010828122099245435740716037221059391154022433574243825144363897453372170452233810307375939273905322256878346483721518413852629892652263109011091694451369935939194469271173712083868566011148481539058638110098260741431559914377521088193243732545276712979873076337078979188562820678959527568678971849708207543626968694524890153925321736092436362319063835107035266231364466702093443494842508182541738898584508830099700513024983467947107531927412737435781342943209895692113795811836571913838566104483385468264031301298575131027692877196262989214809061393409839426021305625331801962289103658929507873778719491776469095757809725150087949629548724106499525709184013347269685890847206503996515096589498201131200144417267895959324681842407339146375257921944157842552334857626668253697114459862969162410169022294926320884225207217309148691580822769119308518520132413289985965987391281033469120180032846655922087030340953881488787228354969573227152750070104639632791791742130529772997865250052751885035050354011798196819458844661246561018322797867098578659912835825041918930938939602300073476491112652783252637696004060004186129796251940805285706891459803185952291279364272374464878993204855459302543283422494389181843328495615527407787640940519421311037759433965940492390525347739300496879894435571569194844836041509536417185882322124383724698735994171016019454301878235998123244865341074055257009880303009229218350632609023193199468108232978496400385752717002834621445060553417466810421707536530933410089570631667286911390386748874441193146840174121445565520846670115108318947683048503029194158378370834745475251986372185587767281320064537886257401579744859835606962961773881407227630611328404345060460619078621729807207858300087484460553997176812600676200267509982001948488484890989120039846255792765285324457413571821819767400551774003283392183219739216001294018286755036811275818796729082883167975558767687125510002301925306845384646637099021426757603599347395123130537095466229282520050890216653690355613851761240649625295431981072907708720576303172807218553584781459281337747892679234550830598604122854477970008503167507381353816160147849611141835662800749946948006796404624922444188099317486187293171619909414329831889391318716122053789088642278196099626773353392657626246269477224383175688941627926787048404380696896091740767837760864921226623645311338966687968910254157532834614348639900878910743769765459893097036147927197123161871791339982517167067612318883722524832501533817797723651365815752146890217538792676631440867057854818147029717353123641397629534493694964446865283094081481865102950558148792333910151014256547112619745833480669124746577479300067914683967182601032408731999362910773945425638495605585638883690136268149527446417492496412274193150753231841031328047894449791847693883761072460333490578535460767826026109189680330638814629771623972532600602181172153222905804600881000774846570605119731460743471051714896434285356173472938511386138594271342167723968763836740999683737221018310682859991893400106715043866537563606287237496189916586421523786937793926213323906087232636532304156746112199292449864683749411887947554990614929602397021909914070450674938328960177305890074670025828790243962757566954567436043115355491424130569216987939357811442411116412563043846884086349618265176364810868436047058278056442436199767491171203010773051581662408734673150131079560818023432300368590678404876335350366640889558394417281891284283338855092905231292201877453977394317779208272111189944625338062972649537873980179916080422468519674849306023630640395637370986850301579702966690481981967181612697114227312423954659230929317297981897118448005178891721445113156235564595267276748267631639043504022012088972837520737191829988184438660783389304873557906678465900370884358657556666180329506198297913045628863307979716826901651852767081638305388917490162631299583650939309416961874197005749880235516781244646413837648154733107575185677629735738093148105847349537042092361015704323024371914946498497407253297541318687015376587240311258018717147980391486977009350490928021244376479680930149718476747678688328427146703828239137466365523306594170414587689202178131445869014312633098189210104455790737923941788797617339941140003128858046318945150878036596486592365403778837653858651087860677585364266598461639440788996768038430997128356462886698482473529157533548707913815187185807147277354499599492765527227013841454749792469211734477151121072238353539524860555149101356742212065767459018035859141466782556063820328314049995822237380068729642128379740291907745952339900574809989072441324309061018546869985034824743926645591040673005836448390806224242445269913288957129515111590825632318775734346106740420817771939431011780785832738425950004850659507057831134095244857758749499403371656562224792290726207868541623674594261803643805975416881223450739389812727784988177146840249383759542237233097916332277643057092016051634371046530906823441945330907134140869086582418299410030478298741041235793534359741893252297168802456690686257738170812013375385719238822522422522433641756206019309676518532099904799103972290459129984684690045914842182002292771308566132539943817005841005347998124770629407333236179100338173316859520768167157591018497586331940325116969540385304516628281337664336145460323171733919746126046592425994691263359826521704607999267493409275361076153129222639206823896803340128518379685041064543064160236267831248578466398336937582479475689223314078583717458888985165974335831570855709122815352558628218827490698119702378573503017209541006905706312542750978254781515807930478839359480358547551731793107283462083023797759820906579692127598228258048191874787459752619517455387615125015306284456488496687480522884054420467432238722635029450402548881218929973291813305840744227206485151346071178770296567084483042267276197016925695515826245841564067178086727728607462311016700313935853365529100402440093310277848586459066899533041546780694674821087775699211690369394784087291609814789042593392430125585547033821601836856131383879793284079534674039924307881510947688185258430744200401203198335226144067891405645838589111408512475473153756484984365396630901428747089260760237699843930762437241191153211725822385353929042464558382189847750244330534112834026881973302332259666315497402627195141519710093260997196511239587365324338657507899150707643705388334281437093903382873344330293716845113401351104581483690237828937465022915899300876763809004587377034089273458221371635079728340362951285176412214803498815587098932917373427702450296007605266662953718764979422149763301979739461912208858562367731717582448526964364415011475172764561738633237040648089117345393974266685202117566839168422742234865716052572861104447419575503152575502425751529609640515019495016943535136347280559001735242945691937492917933837497991301465651208096709547113981486875629158173758037088413986087263235911218495365515969083125313321477684547748756740503195177615586272432309637906566841795995238901449526250148996171339194211011106407319541016644159519604038712411305447212994389050481035058713903374660505404361496112007050063966090421613916960203270986193311597781154031328863113489954581130350721598434958156223535660848224647700261057937276782236144588200952122526652873678976246159839191543433307703050669417878047050717051528434195126999492395001353002364386578375020694889571546919662743636704336651448925781827578557728814177330544504148148236247536199426886749109341250576298547022235841522651134271325472779245887271466310899602670377326595011284802148808219214042555909145272680783776443233506513806167984998170054115430207963262479156517662583621378206571049052762392913682207719782101819989471674154124789978160248207938291226540609214395903018649530601338454114582403581264449010782360494325785254384328770337475272806459400385867409066161462518508501026432153055315349118467186722494212323465807195869843081604554598062986927108048745386333713804919481100178462232951477472664021121638878125114368229204688410920955434822286104552131798748037589267742027525912025159129351144323299476847214261073800375267963184036475170690073473546753055466849744072393288859743134495025208080310278949880939797477074329098771733482422199849626147895355465613820232732906078017914606592022886932548684785741233861795760805686943054487964164708703972670900646980994801997792176166734760898108716417812045422449928812955962891670406381764804707864741653641739369116199974516898409423840689664160651413836933424471669784805105320688635835887613431658985053071013589201665922678305312844833115310007567216091184134166243189234980964833532114663531891363130079257959218827028368828305987540716275601629970430122903538581805734286176766477527059026180125269799521530430515771317851830156537348241308591695791790642951439339427443387519136755884887929099206832273070018158830655453678408286043081687467562331035660641247780777844773468637092759342851584234831057855479683918367476183466824510617268346691985367998461997343949897796109528214199357473702753409011748349816235392627749355044767216806120771030410012411510487737447573200260655029005288445868481256172327453624536133207418982815700122536159412056711482668921573357175680605607968372480241491474995239325448683839355816158303635783623674914865325428648221761613867586146530999218722681734220148948861829403492303593828804572653239953051614789697041057535205979868722457841749161938401823465931493401872981649470755681656526198260977514245351228880650570672076788551603082363337165627073705851208051431171805590535726874956667441033131283854417322771515888998834719088583560467328977222914920561639100990849189754628206896579153651413977458022182105400569426521918132074393342721752813571847345384175222113936862743668478695957990487416036120258616624118397548253281672496346530382197153397992756858620885098017071837767216204126582076720807447430116165224852496285086357630124568732973984283599064569349741972988210798382096172088418552922542411715051374705296946172622549769562359448825091376998117702291821500689431262855563098500911761812394279477279782367738321376637356134452442228006196407936005727907945310903181678467828050292088256389872568494622843348904601995412715822704404590140206187734351421120232241957476046856985618102385713967728445212425912338677931392616864387827390005064249452316361650478833884214312514310827896208366821271079141455521532800600320496127067473533648182153369711211253231394486929133903921971640046981208197696572154317487633789922585685665056430290239225976268503074156169931228643751116882459145127578193443134321683182605535201666522544101874893462071523885523819666913411031897663089929005606831196739653678113273845847452213711875199655706233514221762225257845658954874091837212103009544108316933391949650465560848596065534958169953459484700794611248000095359476806830550682494667785342451456435149056417548911123365144079348707678096182179600654494295685939653793902499079285659163901001935496710321622201000577089705796176138252078683988410518107706623608049701754723280244088614198212868698049256625044508126012392338163936197961402362725266055783460906240218050271259194356608507660943181201020181372133948147727875652130334204643637726855491169562547263279218957987071563776759680976481525807606616222678851046881620488822441394881125948353869071619083782165763377090121604912827583289431946328089627725232622675137023856900504330637988342000400490019707774646210123646997929832488661700130486723856589307171275407966926398210963790672152226457262688017199418122476882190811736469673904805157836901523847360488988014572156728604863218329429206073755377254990114242982400602259838542707791219919778171783217324604577348796692606332246800311891417621885684601654013867689539218207922935888426800623721830481682443561966449075291472665918485583445393262780340074565217689533692574603026530801700256844673803619618837715316045224953082449537579063688749042018516370867370133068730154108391241997622615035883815957548955180615833393912337609083423469795943227002051642015828228264614079902433228948061383121238142896716284640830828302535513397249287700590830625019506763788913508481859852494819140577613034768462990024982830686855263996960614145828105602670184462211645942123940312580292917728447863241556602961223061282583668682710929621361979301389308125843204099466116433031270222513479221105082584648900824987723115481762704166518205611171175933227268759962441414069025977265934500658535461956023003072812290500751642029756725434209455767219914805388222779315026672158064396899059856635924797117234318312816744551403133103122937769729808731925309016311925737368226424588982200337693889352359177066739623081339707937495369670776102166055771743098594169015040023162425856453435973963901986001640731385177724435344824112735304105621816499519567167649204806330769638526925607470885182155393670642725821726296557804952241739270571288596973256459618271584872643330934849735744765999874802328312093471909231185302277692456438814534019573600061352543075063957115946771793449425644757514094263751626284957504925801902839874719599034922891798508328578789058936308068568622862743280825072812718937406114898661833981210060302764215408879366207378488240919234569850908743611044772308243296653934165691203035458300475014724443039619833476846018303819063867732460180862626679688249994648667176985455880937883702651527351615477872700840572896931181198309933410529578281585568014917622301035259221048416523988883947432894515982881012362564133597425242906931649466052750636759451806912946504173827351377144681561424808520431814466267604037372700636613573922725645527795230417529172423868484853451788015380418030707755366193564197381246108486464549071446982659028500596356314352746945493692525900232510377107110859474790766983642296077774198463551761075239538187590835253029687865924532561875532195217319025607252590770648336620778928348893352468989869400535174857061746060980708169555802458026940789924597963237097768108081622638618621274708764292608097619581096006432089633613967187501684507353709732688517362473034543072978175949961800869924817219086766803033819966322303073744945110966860581325082781617293579777731934989761065927856854791760891821360690717232830175568639452554947169497627535602863669383580386366350466860092880753891622682302670274698331323010403112340920827624220373381896363400303748028246791777319859109689608580314240347559137276228083158225926288603658362243716667621371396374892389273587231141738176162739732596064547490032484650953352854744082830480646026816578874735270487602964740052489090534580316062753288384325843139947730369915868207418877845556412950778537360399695030053556149501460178834116498068444272554163722273464639491640483868548934114775253676791463336420307520379152526767767241502253503926179290711624769216722591590694549576374648011108254249083003433160579978258252917653691316560711651920095936012946996160827084972317247484987881449239721367156490193031750537905326734021578579560077624245823342919386006744793217432837811875193495620563421387847037426352562017563874641047973307171453376013298940538086122354987642972951625948509513669573631320130814373579392530065989048460721352491221912754750281368353066564739547045192995579045687357604587322865085617690446980235980387997761569214904497350231405936901747315454636812980629797657164842517535163240367739848818857349789428002644774779396798718966598714790079849149498584860031175567462651757988634953189931652344934800951594671068376533812317156453616300253159200147821748871762978289246541922200743547430802836989311873956558891211943275182909143965205202280093271800244045015822009893671013848129851366531306499234602700218702414370198129857983935631735254793906240034744274724520871122159161775038138214799192822665467445265991731288374442640087902694753561813299078110386180715355009408855954181879643605400999486291031515746532155944974967353812740721062569282823751944859981759145378889640422180774211384528487224174269614374192127957395554862402627868062957471223434851284818318471526315795369163514496501010938709906534853346716378248238614126559465553505661337086511662276029395906965238878457655407695689453521378415830142602177881381940012916948609009556583133010461995756961824488695484047481545045846938080402203230181989748916838310869041770116042866709718731118380807084610053261983452637269619557509590305998386658590741040771221494532391108874777775573299595835405188094481136747310761057489043688045270665991596826402211867937791196155896042683336325678601986601215791465665128545535390227711477833117289840882742136630043438641150428750368931407645495577898809790211995687451353913317093207614088494002387030888188964813809753792468236510886102314641248460843552571594525004911129414694164290857038163403448263772295109317100627379084137320197933561909719194284570286411565879689112650321852831697622470156865497835552909950755313923424014497880492700453486171982846719204236406890235816680510214950803938431760497339969891747681539980630980042098183877492675407883274600933633138585859267240063695850777281597854614694404702701741931456100575871009377056774454727670761275665845955049959913194769423730865053674594420626322243862203994226055508084345755551008475417123950540028442010642922997115193878397445469187876258722254240836259928477519259697891505215297594173404932467890960084363605411780012068512400650003546680036135441358046640256422871396030062927648058826236472912166189195560539161911659437005234083030424575838994915703549095958382621085490187916974710599279505128978453803620539042184985155605014928002549479647907531039518925713911739711012919577679750756143337621884569091490229886014270877513834454005143485061348471254023563539203109787408095467043830315508977181695799635348202712803293752175086360367459269497954212922947058628966805002123357126293460220850389105447891902500384459592535756914502653945130328600909529807026958658405155008869080971417654553235417104875854699958762051399336720059223475104761327751370125581717951434860266652057045371018701029289347580583055473540930789916278707541898073837250947543094104412859860790806682194406269209094203079115705378319602701013553499141199018104221765326602260077924481737537319200780499462850787384270288970840903868195495117151090594093531028927288524460855888346181759194602759577994354464991691991588189897117509954432076062646968788453015027121893256753904969015431017361470646267775086150685308536141391050089129840439417917533241601672094963671264246546003012641452852668580531419128155894400348164844577017001413144783947761216118277847746646700194908729785260599809835685491868554876727535561262501133523887803699256153321898868898464561634830104318187033492895817663913914082038922435418321492148881247323311291876370156439269455568086208543295198514962676981884689527886745298593836909194773462905857642635348553343629797297952094101657568775424085066120302825100806085642317889219294431936016989122895020980589819155250201552709978576227261738417630216416913985612667478179684697936380615832436573462062342972473304149629652672537438579698891275782873619795246882635599831968621296119218944016334878965989338505175516691096937900237506577478518194977562631481566562779888565913039839625685967071951693200559161294712539368073746932294678476885763247062032339976961492698542200813330720884304760417549412045269660935655677493570809867450584012723503802211643052346495082913549900865670993607454554403805387418570611791292209050624624947414018928636880486319003734040627268171928314091998959659978950068278783906595380108861042113609767399168177741711525189314167729172675480193910447891696837199669637520300440046417865457771855837426255951970635706523231789094357566644732257937248073281449255493299459543076683126688632730149259011810713366000891430813141770328660350554674339887701434801195636583388158127146211850466958217853494182342157314741421361249160460240590696729300346252604033653312279566751951633769141557183451058349720243589877849399714167229791445603574854394210836772326719055435030031753403675621577824136046582949491152360749630342277990371766157424593287140155191482113108605405371147794774064261319844183179468635747335103820538771329197644370924022241054224453569653602271828373560460476789530652110555324963528852300669247856311805239503777153261972443685887396099445769034436675390581948638929319499739659919773158001842261743882462755284675771398354301274846169087262188909168074928611294559669197484668412559018929437615470783275212351931763480338476528546167065043208996244725436252568583107255720640223813463126530150228541730781835062795872937707769463053897074320960483728226056974191097682488856331377241486725774964917088410750702318026701264696616239886538772780451351361389273102402841410420401658162811332724434111257495028819049427292310263710285310078456052724385129252597594597727813944599287421556897296063824040558262712667983333224730439316088664217920134446676611233686351984344431785117394941948206521070279813808123486813531483348815403853243985267087855752865781951674821907732182106760749224319119385580159815045409013163834927871211053247735759168755595920639476883630962547017282961275389903632138286309634259064246810977713891651622229248571921996052135996666931674263726111773454060181073977752912041109631372449795494852172266269400291021286094625743542194318822705416626591164943262287341440661649113159332113372042116149333490720246063992199263150368135820472712781494438366144410105362159482789504754886316883630626208834384592037727650292961685243037344350791167588323155564944806761780283702177967265997449180445906255015332051385041624755307859421262594119129668889159842272215106279342356873144118136636805451747124016026173905425860215904748156474582113024983073673958469843256881657422236035301775532286363980769117964297503108278759083006569974813032275241029506231069581010129091525681765396293337057849388558879365677367193715152114149941324911461984653727270497603524360021650646308854152185180980615527560891881590832444962231607019108542303234968112331266242846660443189700530708292069055715019646863098552025189608239060425984515412153559962448164825262943851538712757949636875936455375362170865996547577267028677992227501330284284576883243508240479206685544774367021508863852632444499025122914477505149310609838461981876014806444087877764485467195433381720777617997987181258193783537556847015996978511955270573108979123994721329205554432417176197446431705275932780170206469198659690134067806645145891564257964551285947169339497265112901755725533678950678051834999760031799571241255603336839476042676903527940969401719132535785184990196924554689309161031281457378897674036670132183662406340573215817761654517109466058280649000748401464564888353260276081010228202094836398080341276606958743134722306287600914639474859717236368466886086751740984320612830265716698489533030140223468624581623732772091187641954807332473162361318928976066366980277219772625643394669201911769965643830781194824264273099959490088658693497041984235041653522672192242635366706127390173258374386342547343045735240150748457544343919615004735288366468623769634311285793887716817057988688110526082205918658796481775191841435192624686183011273062131836063729340631157610041857227011519264535390774546331932840379734382899097328757089588759742781057886426938037955847731005971652519734017330375726660053522038041364969018101481392463158792139068423109321729489583390781123794556030581033839510986857632349190402153576923165934273525962693605005513227807372828520128626303024761947093295916887654043975047070779612147346957847824991080740792940940019517962645776679080235028403013077234722244797955729187833295314600311373078049923087827579624529202473331503233302759252839246073405548478980229937125906491397071308456991256341782684624906872263074555660312864193923171509058055163654832773417372329726149791632807111007065417619784962537511328337657864651836986224244882992143602962296930992174639413138262748437203712782878601018434284561102858715046686218038250237614152680764466865086497640550074093588467600580686417208217086455835337064426649300793204078280401358190764991552219579239060356353520435784355398428915917429672234522565116974761680068338983800265959803357222608444868976991106517342477184931007570137016014509986173895056465265857173761006059151686663487588525149053558797556277339333716365759839750043286604226306678952137365129588408215840416591200920770744238473228920132090742964302444528839023960674775212879537073543974131211586146703994182784918226125976223514229299524689710946121390725479076583964562400600756533635408900481565578560392549778113092697380995249604884717747158665325781530473062957737832628390963302283956833115925382791942356397587236063475946744094357821791056246130216879988042306245537280235691880384239387780799530615112475342659508331237930914405207220420106171189904141223877557055758837974358008921707966962755606697065903859694380369653780707510575044104657240842046189760531399905601358172497530472735030507476140494582819909686773352486766934454034451150834762956691666707400364872023413103877741401288312418050465778251563511694329612564542008632011202994805529165092183622627065583643618172657066415248286963132247027311206519918188786663028670217099817600507109788184720245647397078480349763720560449522883112308822159791496178992217591150151545112510235072824739755166726711281659835760103365501664834383307884138423391821502329182272728967673821934270295560901895224741811056790942675529535694688057265113004536866595447368588008267126162078419232768610341020224008716456042135320980138930174232126375252396740928782430452775904151048805630000862823745516614202900538628410440067720407820706604814714195982631201329908369953444243233734830816382047019044870840175868824399788973059365513454692641818536691741601990941033178740806059429734841330847846799013392930654440058632898022677952009468222782923817523132613983906523152979895685216060059036619766708502506537060311216254102304281450521016882797786383564264441372205298740654151560907784894073026667483321456695904659342214350571451018497066835429442320587384046023649702319314596714053110513123534546626736222137612879108315212264458583881415449447487428578652807390532996614817409562534817727429617114966791129207574576736396416132799086368097424831173638717711149945538038095724016221899383712027197076253713068321056128692609893686109542905267161852840029434342704209155025421244546526698386475672803879856993949445525115348823250748793203093483170934369921468823433679282049264305175546689233535262138693545138757023995811837416756702170500316474260390612882346277489837995617955701038085251337049477597646394606111304922709094715835860760083597877208236161714095364001831713105338691902987435896121789671249710231458001949893818562122615136004380659254559275818696253987214709819066962096922552908109300875018286805013840573230521401876313750769024538959151650856418955179945242976780132995822992989085857971976085623380663675271589707809383953639046153323092729742440644749068014249241215325248311448641011034210453624254261265573473119963074822883042179679541650759496862029601106791896311885098607760313781851090431745892809448467146533444126907593328563130459748934926077752254243969452233541241226855641359425296638080450158226463397382256800748747616366842567730544398390476929844015138601766730565930841497624716767983865234015206846763442976297539554168630390886458748727853754942608008779990450680967470949792309729846142400566622158817738289438760854145042971329807720137757972994847713573520153748939076882937826111748458124810625789304044260417450346469182807445806294090709856293264035469790623061856584511142463582242611418050772432866061143775371120654272068472646934544027682881131788552121695435324152578270798474544623236421121148645591426644431424781025322278351987599764023471515011566094237256440581814105448705733220840388920796917991221454686386075274978561136074014088957414644116005187192668710796034473179964880148082745599528498347690840023548162501128091164354532023082242371438866938239507650558640406185071454544301812358650480180064455197109979456754350670049057926021997234983763786274980592007570801756198379842026492612851320103320732103103879510984324558115025366797798298310002783598904469043587096175590317907739069178734846100479435956099672449495864299394673059013552226152142639297972840647240551013017445960403183025989391649717444710485831575927648754618315532800491577682787624016207214350500840028364746438466123631073478265348080473717035532127152349507790856190560722711978968761417560423070087801899686596226465367808728036414228300849021820742955599003151530556031210063432969697794756918011859438635831356160865357710162806589642861075418862393756420712412438461435095800034397845549686975672190255432141943103654546148949241142954605939749736092423403225207215526185586070558093236447387814174234871969232866900647658768373547042928393500805713289741368964879528470721100887335601936590581354411461860055465119928118974187911235246202672784701794763804131412664015839203903183025940484744623875213035234068849188425513004009236254369826215166478174438246670563306119384894549862708819537293568630656722127650953018628843118147186761385477013429880020762145578696098391237563163576258303558892804396770274723222367601056437305656349756576236342507193521164722909746676576791558500740059616919950362152290844312821903514598287775276118937327425484069429326230037828703800979252888884110899796820452983836885459964512230570078476531124487095901522367657032310934193796028207252211053114603936030334416302744236026739114638205250231014277935226263556884505986778650605393568591527086681389689881433259634927799226753492129037091537880194701851640282860975627095067212247717126623463343340257420395716733971966904679773765753595439229857225642650666229722090983494592842085843578447025582490865232722547427532407031327639606489233181862836183643057815561954039229379544132545395834026183551071057228772896033155693040587106698723461732236764664262291656550346935176465518126331488349036399409114514133424123238013851684394134872992028773753955169439217688066775851597166781280497171037513092984387008140310558601902328803959167238455422318283798625585309285017577386662633842780997949272758054624050525394515024278707592857580452720382867879398158754674967842732272607677927180800523285126636574952030290156761486607592719222590789666702430069587790771918874971628800928809080461190623446001352746962334572008129590814885077366874917673462628803082966267463535558306531923759028786615127444643322147601302470254693338850918504742201393701178321194675725864595687347814712825355138999311248410606634479210956529601804557977695904605924963555429341947709467016278003079689321372030117567993706438457842153506751801369166436840302835770334125068269466470709107351007452493812810617085158156575669615464972899526234519954285973939900256574631782038285830532832489653880420608855190427395946051196900131520078853752353851652381805722317989007966277106757808989822869363248149760613988691750522355820369213452659253787852916188411571589810197847898568653454116283542941161128637862420612667494919656584269957184087663625266185627521593860093689957929477715948804020149997671091862752996045680371313027552826170544310731251526576952033328253735308632454587777508570086941143870245856031492173829460415958334091462780228027534395745712510438225851713950647698350784261463560198894810670537620145642299922195110396712124386371653620070184790718815362769424321878301469533554955643811943949079780739361345647231979016689525431064802224506025108111327403162670567598604884176375566718990712889834213104031376128114777532429103913625439355831381292736754892577831142777954320011127670522842422678341499065298960866772729241665560734452697819000502719280509245180674341394891124784141949175683045988079867712973783394873428884439050566842404685405481726381246258035711072441889763502675218326434266396585819606684897826163708288270689987802840436517612322249725575281337405785234918851050036630250320236923874403698124201743343342834127450225549477919183440632435170413314560124359859064439426909147629801214273549132031354203085566200386709552074598971661785495317761881053336190073412297993414317224803422957902266533786816223524197577119632249396911289119935416396373460586262145196630420214665736579052255974691881746062480028299993773332303346640129349492726902849904421284440453998334570618806135744935046578255460544011882879999346442440193702508871722677629570011111661137332120023112061635581162936605951432570843095840819437073659951237665679848198002036718296927849628836501139962439148159306384146559551385459837021549991647233835584110099989907779856757842642613737541952229272713424504157332579551518301798257390217885848744811466196230176290871974952946181531117250423356532248801440079892940958971375848966182415474869384518361323646681799983408241775591197926412084435516747908518310593434260094169189170001762182574352118658833142615117251773507234593054821635413418230990178711629035531695767979040052452465344888140303964903807156060862169381523343519296990837093035502180191085821295614824628713766915430796135360971886073413024565863203022084960397739055623156315824423132001739747670629620139553646110162269079123839083161519583859112210971649022266514192323516033433444782228483748914072339725585630958827192956132948112634873705150985410864152107533802999372156137136674683776618671220617047846916140105654095700517724470433812999493089406892129625686508723549903660762926479251322653474807323486530395961788058848050669202395153087009606304972115560635478635096507780572439238013514771508464531074804074609459129622289941576541866133736298611580628413266098929245285550645243632969672110448051628286048811094927557909723971397930418660290116398048689435491960935252012710793279431741894546572063762897615887291547385130445626012728848980918360255060132648074537705734528668878801141786162164304036604491509963171190504894546707480801903560175678241503239371468568276132326710864474110474848228654168789806230960616480758241781200299398258845572037589025833655634325128409644847018632049968805599667283073775231535161056277717646367199603531826939190790083594902113006263906308369291562377601049649679624297096632192254180075689902534527810889820391332773494074498394008109157578518719715808320584128825087487915703144734359098718089709634824502023960310778880489187615171874582463538192645220486021181527365564821014736987839291897081073297602135302218512062915637156997862519111439125889304028385797781212387739641934768326350887644757769944401797259179924563832214232603964884810718249009005647802444353590714417424106138595811579025095008981747641284646752778921095042913807472932840407481567263744014405474452451024191926117752480985529195152457779038818132787881772129151886114410043439171130317434385098309853193134205967287079428101599661439388420521184810808814271028169579084150835546821103229516774615866070523130362676510381051381434929776281694154499017352421159773895402084792017314877674587428875446314276386346603751005734329161986649475278878416219656039032870927504733199331559874458260354217001832362405316922445828304234911383820710833192774034537387243838833351301923857994871705891576178331156288028283164899306606421896447309638145761820889620092855570443598528933951248290868009189173264139397479684541074031252208660243513298615255499208774376202134902717157960828804340665700660914556732562211228786941796728413356809673755546652836702675886218484163099255218612260619404267695375333051645614238113254543431216623358922014491012433275888357078071099411464902281764516807979623093306754597762318382809634418041849284246536724057841283599412137901939423958062301192513921018697374136829561384512544510217542656744810567221421700887581740210868155871998754206462721197007533990429787241566483614657925970131925315877920127373859314871738961650126273647163688285273608484508386096907446758982716703441224530029741391218219541487747679965979525202393716960284750570354753012516199093630661270926091633995253463436455218708700704489759975491898985945494413293453305547425083338107235954289166600948248199132471826925518952495071006658213076656349308761036378900373390302829439130804536447656889789138249276848915901587457364241283395629809000483797347155375364604942856323780985119229558570823295845992849483719665463281414427592175592241395476577109536674447893985565628699606714730635254320949708507629106719669283746135390604475393782753408553971937284084903586392576730604647847129208588198757818726442579556202554058699035748358271677255904331678696386355298913845273834839978255917796017051956248947422829901364319226367434220686333140215176389554325336261307990551939580394634694862711547045862372292287980555596601404948219340931743956195849119357505779163612887057367466328564831732528215854318542289213174749044128429968432202866343990949774976005835766960414134345975661986220824551034431676482862275523919070530154812111786104853731540341196269242030601670600769881576739426633228228042891942961124637151663553065245302028280284282023968399892124799869225294461124676465664458580769277233532377574727046200491082325545283461924172729562830165026237665535957356282058161347680185901128029857684445314890341377725916066036014084629418908260699572832583847552377631977364872124235923296754802605837455159719870884953540368591699680184605689299946257835297318066323012913654868900141555003568059820816328590005203003113523815894046215541855605973884135053058722051211289980760848308294286930136027250482067371112929694387205641486457852622437552392226268480860517621241328570762409198245441596827298303004821554620644442520947591246725612890043821642293986681899510628022089770252014671471883465539375587116699601978800473495214721330256551894576949795345317266715920335068145858369200120819753777084184238184042347424935495042350076924959032735017311691469249479438469202133411523643591326258129113037468685014619090278419394297579806733794008329918158775499221000241033029530460403544741215829925546029481272924645702984497241613701154067004332616624308674731084772277588776336558298821301299769292236990767516533939426152651717781028758911485023140004424282851233066992762437652733140107934124243678951002211614226806673841876237560843436139176934318461372717729742277548968102985103739093997878423396570055654086663340682827183970552856365522679426456730318547125375685902241403687685608250663885681616736767560942492038199559965808285458218399094113775502048498273875768397571310127834486324309407027009851904366617631394258280261537398508841412142502379865484388564234333974876942768217604302249699753382238301316148017772056867754957838752427297716336695086941770936253320450311269411512337307973168384695821719965539168386931453558324691044084602395736694240569493710526042980683116613842373982634933525818618313730478173601795626163313659970943758486426422934079132878703298499322667070457648169766125686686601634491674415930514865280549785140158463431686717418667539984115594220383502128239556644194198505152657163079782843613521010552169982185407800194753580649746019272563512320215633103321821781524086733114740877886888260487429223550085067941900807336485686432025598111164168490321903300596399365312519093342327568336635332819841686820138256227697627041868850095402915034752865745277131704344605805231675131516106130472092698241535471384636641345684667270856217543875672921521059302186783228346363429014841875490104564596438407517369595315437702247412855429420301210523953855229604090624470306154067885438783444860642010722366450419158848850291091340822966712906055726335519323136207445874709048471430403986502991658891120681118958804198625366499868605624088528865789440530790327373394572012636170210706462012013597575070962115944371205290885365810561068397364491754984541563918350914879027285323551448210099612494755531787317199908438648402348858808057169833903630645104398121743438197827742000522758401658107059175815353779709234334733195440748722896805273170010322208921727897830760382593717238095575683522083023255660876641318250774731471867231849463622242495144833034470155741407713633694667169581857503668254005643561405668571521789672757444439105584415874191015063870497447144258607918270344514544344802855268701539386062594537774633853973812449163255277958686609616889198243654736744762390924182651205998560622897274126548094243454345095576329773797931150994426229762302676676461705137758217569760773828802833075566810535115590338209702478118939055974562918586122655903681566791323105136094203300551989205061774730290745071534274205951411584644707246694103011236463706220044366591575704088024971354968831826153202555937276631606828884265038910415074396842871742935868639807259850271611367409980204881448677869680819113193723514257918167001018277143717043127460259469195474343704813559832686074441459236745910339919480452747460763723371887582449785857321794200500659157694502491020845373085424239410700663346164130889502922286144603582772970424066169188859837880066774933947922616290382045982154971637222789718046770790805718088928385380365674156786891289365027393129769088667732257805788730254718681257253355423936939674640135196464103459152725791859108791698410210593904478871740543913546978954360023353258475247992142686544330123395922123567200832141428422589831199359606035417837641701961132501773340455064349544724987547549861440732415984362869762650182528696673822235510380756113788211654481145413274406956340207916517865549857205530886124116203764809834124411158222857140662933068826312103472392497956662269795984102011720456035233361854905594168725922367334608239354046823580714173043892815591350784628550948869343922614397966007193310230735078244308855034213039893492908534027520460418660598307781348668700249356144091610197269179125178602055283664466101058363555741537941095270237258705829160211855654351846782927344060028093473791482016881205570949208719172633839894224111719794968401979481769876540795925170835227829314464449070928990929913878146978857071713975598714081182021063919223668229050037130112855151712911143469148700409393148711537927800164665166963959847164716271357439942759575649029110457128658308929593012700412456621927895347046503192355308281436234878512464762954002102026940921708907928022104531459548917932561760907726446415328223620597557608109954870096278603077425478653091679760171028602815221146126256404877196480291508850794270490407056319982375592493410891319178630741507388771073599716855707330782247758666999681810204114899679458794163803426268531178120285158417629598185413997028885550840521638195776062364481469185876325947990777813773322545783608849585028916850816705612901066013271456437245759431363681586395239493678700549349249241609094072826578244053910450339531869488432272856314802038497921451906547010058355140231474772185087433263952078055040336397266945570427119758175257299811738551937861608241631875626519394336041077097051974009311584753008308653248850523325656467244436302225797025678468861688021569678863847823293279669817096892534963996245075264403926752946381699658467946198925305746366996794114411698244140844324650668934169010484932366453012747147612875219122043433332417626558425952334703576692581670676387900116097252973370334166006502353504246514270719073838049470014366636872417587835435308721315981410976406541781662067088045262346706258956398958940360660704891032889545080418672611280699547666545246405276769643730261966676218759339987599189569532437391125255903226284977014024718832280473949674772685972754146668881388246449707861474882112755400176913271132901567449591272326485932952302928955363502323662412692240670915100158492185745978833813538233997522716161149863816626056907812451576414735186432882113208355812538738396972677889885889661596408694936093454460399464230146395888883121356687403954461970794665724740861601241001223720775760876662255707849943796868638878915234828834018464076818607553894649348600287390611299491070818691446513502114856495807981213978338769477699602448794414246186578378695492296224317366168638979282390016222903258906831340130605502338799634283314772930099590581308022276987539261978426040627416805347143059382714879403988700600743053622017476713225399135104390774172396264667879875564414536808948935644966948989435676693751240976535194992293437578859549318589746775074867101710891493960906654710706306464262354552578682958512691936696620856627118139760478865825624519848676011825234416246374508235058498233822473571909272726068957864619380779971280167755775898402148177684992651071810594572123605405557864806761403896056757680770292020527942886849290120275095213565244809335186791569732538897066284546330435259902662766305761198054233758199066455453756643619341461925697415256090214871147456085826558194673354984678710530780897090484836389589760877467605615044813928853697115700295039520394641823456664549702078156205273276276064049243348070163387507979780326953488870394363428626804132101932340322100589794823318544657507052728665809233878516901371683394774528634366529390310831101992883219377308104981929309671430241792387657026088919089242893903627021991253316257601207738620922584023013898577393844347648625823568808337595703214237260236488448934197666631096074401773509062150811697528870361957327888142021674311304599847154779136478679643483586558781494682323945782259994413698633897574324426629871355640300250065429888262203238470104019640870760122446432325862965760091264342267748892378771178696624146758546243339285522410402570812150690408986146769307257790849951173572713259819228931545561456302063111357215378125230821731021320264875251687135333409382234934749041812526046833681127091718995708762488190617698531725796448588090277953281893068521996704213864622868734171037670267929864749018764388061153394973896638387639784851086871752181712087647184389021167966530440615686752789486476271710091857645458270007162108695061323032172448058825360055534589070258029344565178076535640047181579295328622976508206482938005417231583792772912023118306322229288413795304337171805397841270477493217901911872130862200519698144457766005435874614911254623588736251526988411830016603133193122086950882476683488727395169207989889597471775162896345357114042500952090175037959037000066419533499956516426599787440439935146014864452982522858620129724750657554333352583663373919319190887365156062719410172915783940389161873142690871735560257581133825754220620117075168049823373816661966817482144371503284379520709610050788391172709227439656432669323875270982618472990925477632692044363482864420888290838841513166042689325078254433697809289229320640485001521140459253054218593542569732170063621874048202667333359853158565152203227936870247644836003696649088566973506472975718090079000761924331025965607378242175402019433305702493016912182078579645388009151310423858814080644368622855698948924974948771661056891415548367731183856757930803475867265036030164955264843665742817836350372915520446118459737590666957695590123047160666079076920235636101264930576401881777214620857974084029185770558324690128744256200440656859966390607400155015076685051854334155148592106980856396528945906110279578784293488891574507295991464782645841957276116008962791149394331730274366670027414387052583169607823472718265022836518261389039247890195710000689685053190848544660876500393357787067428553265664369312237017496993627448170067798108874085650288401420280386307252345350010360721135056546580665618670910684383189733178880709965337698531875553203802490218104153730504222902734733745315829453565937798420833370694345935088216560037802689602470609483863685720695760882155366376708348686330870620092709969146707741840633702425030298587465111390938394221929772983280524894702843528790942121590423435569183237988267167144642819592343759968962924721399217743054753081231860990348870303379551921807856678880296750823003153562145482226376206206290429742173359171838653716427872482095365098047500304606025799079988940754646947535502824119123982472500260515965931828599263395030261147558386342189393005061595686912579958011937878760459132243349773079899659219817472551406493430510917507823180871836223390439395020060841510863454033536786920940028367769483502215583354322257691415107838034209752938059981876465845978985607086996870929879503423295267867403133269183629681012030850794835209633153713336996115046170855814354724322252385178208652389814096671162486423959768389457838543152057156847596050925786678288559205737388183656373529883386743480976173001766105822081299282773905917922851985561267957827886929045578478616206253745265431376506136911599237911919336794763504242813250097114299823552828400298338389206913011201785423220455056789401488323129950239856933177170659485047565677815890769007031431183666637552750170422305033607579400646983896836571145022536785787715454537639159772140801551785432507512828904466533227046037582193361694983949983226851226298804319792063251737913183171078851320129335301995691314859531003699773000042026330927850172730078239977918654686454060028592944958205365859129913883750546062927657090413555955786188199057068402017821835652501378635949173983461119635159842835149319921248025236546521234519403127968175763188924943118630794566211851427109298290095725540321258216408027695104533298464663557156356756510933285079000113122581041262829673458483529846883116376408390636970736736042886232001848927985136974546073865327620517323248369841088840831514365905665337057608211100480546190624020808679431109339100705021040474187831625222354767022267165851676449401570600485750675544314079311338453335718510496586442256671501295226718453217471842553893987397973683092356297101411364304255891055178559319436452039867649308013840509047612730450498646712388454289991301929486290522680071832622920282115279267710579717360338850284944053726127431058238339307075244184199810231582806847141339085482021743708078647284153305672172591287901895912991662610278106218956375761517900858236797292672361319853257764208684905298113582852230563587150074593730253111687615785580789069037476800374378530585859531584540290763361963434602357690577580560246719594315465212541517580478740348342694290740726571558483749394800129506266810449280046247934031601179948031857993671916223308887291456264259296348920274000564619103285202003567108723592606442703099017959077512193674996597276352943803243632815070385264986595726804595451116627666142640081205663796118615028389451556615898633313223450916678202518499862844013825254181845581974623639597879765769466321479236901366449927177724297302293872603425303032272967290339766669605798003213108660724866579677288345547759546698703465483600716091075704668889835901196558244852736511504374340842140405733916856592690437061552956691316804493791816256736050234045801291608305789506651600439471624059554621803061434861692893015178272847095482255348540754751294979905173196486025393880745651978701380927483834758656877876698685063207200521337472799936871913563201306103140168104204478075546401716576276203187269654424969036531202124577231362898662751714549889638104006146579509066777075694283442365221255219872026994077150730680369031332817829360065462839138062628143884271453127786298943306521383515637389480277362097717838136081085038590304341555373028351982922887722394958769367477068652524982434967070066026690553937218820150504439148506445609531775109230693247321918370504010268884330906322763432263952629040155838140219193139716204455069786206396275971628605566377670269856652844739881607943412600264963742352798781044497824878811007721334345804365282924883517493948839693157147701893672835299209451308449752222875614060727147539204261902252657688260043300736895233470949233158624381797051866617544870013680783708015715624905102252022127590989913381702781692312356798073484137560368204326426602457404004346132475585862260670184794159966994881210984075783652468721595856002087991145045198021324081240119927960250535208842437150142384948489246879430745689263084785366257259775487871798660934760952321451454940563251624420445601461155887183728528130044570957179618414957370525151534825872193517900154569717406392847044254724493265582911762878292928221516784344525345943001070392274965073953393164571133367422758228133401038808612032513997618574820436305496856941506658271473654453373892647549393050293053916266907106866397404699982183922065308651311029600885219638957529431269988349444162936572177225210616655562281570954892371084838981640862038916577973738330296608798597548117022121687925356690219865606760539388136867941882737020376554753417717961203416833563762248291261414351868639594527195036027589455603808292815308275978983938674005208761730365946097284820447786857798881080710404101505678403305015472932521059366615055336064911449242559910587757951592830866793800677441229582201848519583076952060754019550426777587463890191178437809532071797698670034936450014364647981627850386953027352988427541403513286305472902170887031582208721194495367382432823980843634809737193611584418499261171116354832497179580713298917201269041795282686777708709753544266038538259607030640538938394992987535473064081280524280849551470756948429876331499069097833971150828019805053678486522159317447603403627918026570709480486586956892674949763665669818860225623960608553569832051673756424607627988876357892020952788557567325767225385812270738260541637378795609697808258175132946006662926197897543649134750229935553948500867127349887247189264187284669616619764652990625105681459134970227175028501599513275256001267629998784759123553915516012399300428670198984520526739332611928073886987838696413440293987314363238283771181620682611353826566639790384421452532850759196564021510048378930454557200137103510465757901756094788002566359212326563823511800854486721691070135271238616628837217546608731182494842589926311679824138819251887457607116935329968690840439830868437104657127421502589359192991004885912521284207653238508058496162046980409488226974036837670195755987688915538435594059546907628902526247078946148355890342798984076027167796879368860327323267345176324460141973980619416846747493402909607529596952183417984791465845603969560607468989068959140512767420465032587420680640816183386587578434429162340202996006027196251014598359501911098031119687648859930812072194560353860150960594879159061921441759583644936485869881213885087774392945306243964590923433896362501628843495183820094218240540170981909113416828835135781949595368689415526710289180324202595644250947251477641145559343185640549946007207407809633790760067941008412350320529636859384309596637098861923805315839731327712019241840354525819692581069149746414413324137529513057407503220334374855456106197835513278432504370885143478883276244693002754317828820452494868466836647982178246624120959987448852788424420009813070287087301720965154901164424747394278136801056310576862722037230275574658151845851554545609610057505193457033439583499482371343477730817416750100768532947689860966265820984862372417574185098246339906237366806946431253657174183374464411752680425434275472797084815696304405227246744654431850631172646017690741561199670027826360312572379353242497598494182076556010112462415742861814788758510032917869039565425806153074821962837336558756837419931799585760549242755229718241189935534327576856883834153407162201456104749632280780782696269290475647709885114779016414361793510463102655340050041176347340125597795454619439876663627347742694729356045446138621388202891180667995592962527399233004254569378319975004911629528509491617195350037689097421445309178731218973948662323929954640601100649164851862867159880441294608415307189537553404001181711531847237702779346981149767362694833977236710377858065978091535586994491279917890012115295663385631393805889774505042788894815990284253335903206047878439436822058774892202143299515134017959674262852061022582496338849915266743172651004313118571678537436421854990726140409719130483947641745379492280746767311613592215990957698536540824232518674403171420663690260263747324688366053483340884551825070090078017368610066172162957238070626766496109782843423022328736899467113407183913862024486339177017743079969339215238860868400084940550890437438349284160918869688933013234707835762457035741264250661620134604818812099914555322051550119124126548889123541089454461082052977677542829309685344580057181650771246230316358302240963575414602210087331445935608938152191424887278913932135188081736584801120386810209424257850078112932263003599779455050523965794476879212864700228668002520376531522864859157794000324525952939637915450907695902803923145952803901665144195812064729783995968764780528429337827986551283769019626823593178810327823184827520984461562317461943032979710539050201761498729782371180414970755766723211746832722226717290640958789275844012914837981019352980350476048300648245921126857970718117310909689073633014851179825241091463551164137626741738345121385386972004005109985005206714919585890557215866164532258544325079972398762987864096473944696979271530284284074214417260405713952306940667847054547698592369232547646957624938642992209512987740900908490300963416175860277297205001461652791071730853045143682296399556833697400146736421965177543359573575964570678432118313021309040522086829088531450118808545559917007484860679453149014255495080988114869815099050493987059230593987452890158911921867470761470490283010631795585132549027595454597629733378928355292642880252396158748911988477977635790477031943778336817282964260529691060183078844230386202317456180028052168584212431697038212674245000779313425779822302094311310302112057136344084187352494175828719248563371247545473410816455460111948372884136092177030838416379276757701947556561899115157062397427349729323343045373781288416589084238875262084290850065452461072237732870809222166222342413778850340213754464155900104156942650343235113341717385056727071147021445422039552417038655319658771996335657477965637939973342964739065714797455921804889367278945606957324745219734311592954131518367834138478349117004397762201646631640415669704271711841773356920145224743538316662405827583899932674737936704121379958031227905758323141760321379680117020654885259876170663628553994432341393184677152088198266015880692714555215745153164220746199691204830671348484916384145826739037579946135490260992842328561069345846219252593680953908180795952406872956429200748665797607102435412225701555539105161382859955410619410248809508888693535662576751333239593585671110570957877766074271123425822044683875280483320283075253352997159393666726862992313112751299220416498734836209140942961013595569454930416827876839780879565819796812738200182883340326343468031180244625992903468730386852810850128595306646407968432774129786196906110165208450097942501778124044533660896853856460688102607522172909409833119035978598265464623814222402577451205971836936961295056578375838279786785651063996427751652065573604372221037505088304586744801671939674460976593949923365604259249394701733469269918878722407554593611032416614982854625881667684050955994035089620137321531565706939175034891095512567339130627635824153702109024004531309956947990199594197758382042842686379042160008653280984546683758479096065764755090573380788012965885104311891079534239601564609714340486852393217303030463971657551779105642228090486127160669452602573138752103041154791969815684377187940771682999462435864264049359597812542727343633100176246816104618799809083169280577944923691213428665558326845119546929078194040976862728656317450582001883341231632478853478773157698874720844478142412660123026837286186098944032598962497905898220424246939066517132181892530727379886251110176418856993755945362432817876752849749916427568832866142694090718101838537432379354112513944232497015514831805100384322954678043141633791279187985822956613866902030950098343986240585501169728305024841463553056934326889289639538654168250942879960383115683103698083751527815787724755906969746079795829885552537067674117486519341598638236417092625047727083746597716366232696144918743009723578294889276947617503433150099251329460804154406926590161702340952386033708393204944288497632317528613159311539573088397960862008148341491283807003183869619999917975164424121120820994002288545455771098767481021570747084176559114283344986657375816960657322640027304578771092909053605146669030366992716714299165414958032962289645596028129041790298561823907457199763664777602407275211308394242279782565587050600279234138971086196753042884716166969847168407036677778601225935781008803600620329742008351881822201787478951551273321949070485068964954396505125003756267006791372004738824672616017874280913121553992258532130367881776204939110806850446514216704399927431445860392211063735297738489281610054447930110011219513240406716415071480426156213258934185498969740416348402726242226762562609711077529284221341233194871393540108159110187364971766889896562749470349498078687410277875168137002919485256419367933918066040136934008539408450229428911336639419947619916179707538976113322662342896177057487977775364718014072071155538046000260491924412520440017498347477156811211598351553680483262100398476914534213568415333477758630961133272797819901977454707628128277675285495542648799762475707801878260654580781674677187144689667116311922633878742264613941987607775103656385668745168888910366017401247765929124835004290729321284295964459471822824410991339092067328430832905884701926978066895481336046987753412867799631947278158706751515353220253984413488875566426350057692515853242606445956124158821682160589708069972968976184128182161349120415993509111384093687857953687484288592325402204940137548026338860575137208865456622457557503016959548160488155511352982917193092770784380708570164909216663788813910126743498404823811786346415481243634365630699389906145681129521479333546668062503614211004687846706807770683583309561923418122516499240776162534118724944845120123762607849625304640549853229830687603709812996313485627735562886157381281129131989087957735973711401297356502516052918228179655748779485293629941790851132114192743848831188450935531423494793196870905581750913077038482902324455689932666147320645949916282256736820590963583167665348646369964448489460880424120224146166241871163168979102284085336417542387864562465127048480041841977838867294596983310135522999564461686952342917488619555823235818976533063654014774583210482310207703164472099491799620825681466406228813935265350416891741826677248651352176548122879156553463212802657198265943178498857700664648484230086128239818095932809924745923350379828334048668993708553952989617385937078643313430359310660045659116772410916390615317358242828028372058414629270813790038926646363259214232683131702592773882143594841414165306580919398440246038627510279750488298550170564685086144142813594703710672942611520393365361637454346118162023953030481480674523432695848156670390738904505526240553396779193123161227887722222475791620861801126354164970626061604216371985537473440415869470309470369066896277753125333108423192716376175795148162886924311058103388710328467134675347448890367283993855536704797059140437696340852921974633090393480777798492938502867305109307684415007588031693176268381387950240990082000716875747523786608999427312750940037676821751377026643893666045519522751100530800350903686896476097500413758593291898627872052684028107824407265793194295785792659206793751981371070001820579631812255395812383360942217892793104872603228697211989432784497234163241143816458292985375671300623979333170507186118475810226397270753879126129954616968601586256916512485462908865820630455913720154929502623651972818052640799230150092622963327113092666174124055130576807224413012726504725896581703265911159167158928420047750271671516183337848013425509875406159866209183876734151822592247370691789441175025372322254177232206848345706972296386925602986345296100487306196231654966565530214674715178290474983438869465312943817216071841328069242861347506052596302173474422241489327300223492633981942365666792954628260392250767846418956539973006964151104932569424904325901038994308953662074552142227378566541814220189791546292672730790157127906034260913442014932438457876779351403027455229908222392731603197385695213213420549921488020479134291674086190291535590566254186396539461054737351003174414570628995982072054884844217044276989404770345335159015973877572920968053475100273888750852332038870222285521433103255953134526933165488646196631556176572668364262481268434915874867052557711948662237112097741508550840876562800983835680622832681246833259720079903866024378260644676414048063942312092816931333575297020996083607886981798172534207361401209652737627750230691287883473802227112731930697815614224414709693506831527181183438963105810837438865159361240381729908229300084189870204806166760611668638186007446464321140242837194487937700126813164497058080395581777091642864179360106968726082683252231997533269519454062392671926450909438678863522222619518952931909646849001441290450807689180189877649510196092781379062193763987110568429923217479980892399750104274579425255063001780033644611408770818501975761664652455766757850834296512290658315492880422397480495768767042819116378334364046751929320494124241680164012370105687405777292708089703159751852193846367084055292751953001041185504223919682603160308665360648966333916952803955366367973785760404099032038154553946481593623218421886354929081632692267834322613051304541017325420062419644221273858466034089382807123320038274026492503206906873647892042125384277340523468087317544824391111812875937057520316252262731033874245449632729541832969241626243767636927338892752344194951280833798939286605546170797207316895351301400786661622259921323945621154608708237564034762767682729097918588188546689514244013888646782821451567975143534617831897598728433452713576819637957505864949598441693633597371690923005218853407936543884101852218641871192668460579114910170604026804600657778574699253871634961899467651902508062766237094915061987591391757541282361901492236281975355959613001293557401336839904203999440130485193689077866133258430246583847116751222637083891029926737889634861874036002527223683584472219096358666417287814844921515539470213654351639901531331773783493244844846869841314779307952110013628500633458294641898900033412090639805926219310305156354510734221217000134652812007300244280044890937958855926042517364883596729887288871725001252845186121460823987923161552749100995051412832318971767356679067562190934401609480729037265525844323684758276046314665684109959006579789310919551524797598783053246259828695759399851946138982077723836962442899446143062014030451312080544180016573339865424731789132694792905358555005564932902057082421103006215116482017566842755938338270415247529179861424273593826268356223742827249941848866919227799486412519659396769584888439093326791655690164879674891307904946945373700580381621652645088216412773411260817083701506578563185466370666672371280893797626880248541563671535845335320230390807321644268210089741846029782427771400838905812162821046561498380965493464299771678161320928658935208282040134791982124656838515311738655641489291698993556717940269422929535592776060950497699341475884568406278209287065921337593170310236457150541810368173620097181720839481973978537219751993558357099445335905857186663002876541055754236264258450634288078445303663268132306494723456005399100871077882175908653025419070092218958325620965530145821092511346976882175231489942915062036202818893820858747588097235167197926555543919502124140301932183208232879280908165547991525702666667929629516839281532695220619269290351625727472528694648243273884874335490879449323163223913564243231995430354475202756701055690124193299583001603180133726116961667164379004787008344113142125675974959631137209441536238809487472722067875174017454837619007606485079614863870037957085809078956194577549872270559708219149949908319233089518129929872701789927656440027778948051551899628475967257963500809648366910433768830642283017214081205505708651869349020128433373303809045267048221961239006839783051748855302844227270492172363983553930111400543563306612996849145912462522255479307105893624383185056266365853857288888563810963031814990008026289175124308726153330630319940656493403317961359871371688623903312535172365961629853682572587296325624201910357442996558750096038337595279279387530255745408303398907396309525650533001566051747716308743280590323671797543119535618390339803009912091677379008856334050567331757116318106195287091159663191166959996228046257236768116737564893354143185739514717479735322472886810062178016407626492397043845313876584431548947334356828083513918594519735320832778864333828507612774631847587438124268859893060867136547135481719170715081098618670702238049092181569284985823551413635687907399095367817229014604469627992410366407407164311221224896997003069943589892266984431022011113900074508967549110852171481138050740002201435051836506861448914218317584616958675565881043248079589973763805303259992618622664857095116274515319187686507037214502449811273513081736939020042678449535580568202491822420136353089180198904841359615144317578535807146926809034548077579853496889536491336020971691354078368851310293337075414646194485405090156522191792236539436734025304121531782336377931814050056723797808727520146365798555616676978169724003895529365091783936609454448527890892083754944869564954084480268517753349881280302932702659043900257240893832155927494945744518320533983453280603083963436596324342418665298723151683895544048973116797668696347753912435472027053449707155509899683660016949678911399000016718985573618385359166202225948250417223871407046430290622226423663484504136049077545690277342909245588648193146683534538623984554567867765163872185662381470328694695225325100430787415114205162312222408961476345438125008280605092053540430377136241072931612538278272883023219223345109495465252418850140783132036711895508588888018806808517297182786256583052636750468430814388404492438781146215436934650484623835945405874587558688129587504954611799355889368938358255332701726759360737109820910559348956466474497548542476556692503929759883145316653117088407081576104480499187409306863525760371007362728034375458480970523038216327280523361354838383992339616174627823936716797826542080487486787515609970565443900870284611475211541870697830206129905171717698971916866287416044895509547307533280253238157558586590320063478572853091997056313622705007417511595830620178490491171630666597880223800586825610797059481598621712908221980256505194285795951520077906556092398261424691748756935559613279201156151537546734289018796956818631181534316989634044488463253593646042154882147847262652987539168866807872932424971980550183171891103728954645620434440969811055630700605030491000359664681491136614015037443327242037875186310723190229203497479873204293141892036383520406910844634687973372656867297698090720111886847523605018210358658521915626619624801802757964908354087098444989348308151908158539529696987611455419583581984642615551141963778412246291722907627303011308776790154335172866090121440705594696187173239459436604455556080073217731298602011238936995217154994041592491970802210092666144494036951150726631758721236623146014127413692098622272917081592568661086390349699004410279825264166718277774900576656229962229780060158356071826436442733306794191074401194148652447128902714992324968741415992656977930181592662148974767119983443448940911204921737883936898583091778560150780447741739918383118485591086236034321591926889927056263014576735150116116470696387977365775963374853003478744543460649272023029444097929866521644196883869333801252520563716195765447854244138244106249727246145564275745773569352674542192460998710309168629155403875568440600792536243935598946792804412978602644868401663177442744438460740559692437942921832346269082804076771309017790336477064875210845955636317260446013959483450699467198430469085815780899173919044998639890634509745441674508827550889942734728284358010796652765948648162275175740661793777173922718198476123197574481784369593396168432154970068723766804479396806447274505750566914224660339509801095846007925373192502398326204264675947799272887832387160102144799999690773948683747377762054549874636645599348826637468246760893205658569689567472892612691942085104518783433257668081420616070810087617497622930103406836553761818623013201555441937923945713557839211683410980146214981938322848081038025863291774175927294237315773529506475846872464947645970780043563528086495798818014059473450857182374841319282393508246722340507603353230280881965902980791987077489599325491639620708102158363263871405783232183826622718713400779810635389055326146256863240058392471371300255705497891852627383946114278497799059376883304643591753953353178616702422316795506618296850866846474474883442170705716240931685738165456091095091598305731042101341281921871725419774877419421629469418748428788747006668822724836488244419843099557040113895710383268042673009056604180447429641932684108295820057091808287468640632250194838874136833554859249002420057824882216446134904175905614944419458382669058274482465193996335743879190483574835736615974261160789912284809140655834338529017712956269810100937868271081651389830881120316354635013748201736649850501639627958826430647150119549211655885642260221717861647290741961913017980198288811354666342879567661129142519320532134093321174577846412528897115663644646129040347810807253356882206490648536389284318235765484637918068901199268606084804743550118770574015993658004252542708683664914129375122267828593514932036235687794955810089960704890824536678188065064711499635956865673805608378049734591835560118930685000128044812227288269548819034294119486094570140102643377655839720502506378858568334971801732377296248575675546435736010139234220991248144507392983080188806330196970400482164508795307923733187348819543898652235750805233169636697159220128407412005186550866482448647672267422157100132968030579398991287270473591337033540530856770432755803542993099792444226166394100169563651899758305344255124164920710843786897264513995893842614534189741845555353513237976646701768644577554008138221604559244201774273229463409382350230815673473195769104685599043891021898801372773060846905676361934416254263039387586019027935132952696417977228298716046105609721149882056593162037954394907011472455890278761057220102639221200669160276378655422349034055337816972966284734492107617092163084205755737834298855874673825445789045102944453172483016655988034805238503059887323731300994215744637004012639292811832654451571406089326440223548465012161221005090752374149925233487723474076493654814500336379320754807793703906270461712498798677677099832725105462235177253179265708758220988427634879475495130490783731768776831801144018092826017666259997710704169568549132672603281684486897244837258671697186492991123734224616337361704363847025886334913428027154307832258112543826415336469225583791005250951689103670507917735680291960344975756490454251840785734899413244539086815387952505879694521532015867263769125681176325143179643296219283312172248074493392144737095716450954840529820242690534194422726902649430767860554326426705574294305907464156611368571466731616794526809217900865454975960584392305453071262173625031371283809368689186756230996149437673447476067945669727119210752979674297671545630137310715655920038929889607746243278500697184361379602210605256732961487610607964662416740446648001205101119395957594543553757344752393100574848554643450731171221002136425338460090174443992956576627995337416100639269917694846072729356298089504663627979011459452636499302214081917507723438727870954350697705305031760957239134987607778929000972933184304678530086172604007211888665330345725613023130015787629769322355543332579689075218944409929206917347604249792661245457517645907777417749471750458288606948561458466717414361734737514720172791949367026903968062897715212843370989346468107103207778587534778252287452623971881202916645246393120297772826286797211257981184289613073148002064833064081106910923184849153673297066273959586782388030532179076850621837356832164142916870312088438577712605018533126637008652813079095457738780076041987018170008307172397960467207760059019283630077906752269862442582134916028026526447384626951099744788537712188433269908027021383577779480992081421189562736007507891415310525952474355478222105142343247396877513281845898000272007853787555072665408465920863124867062036730209889451409356086277365687670952539750329036144804050266604166330716170222655164198768582781677076522074179927047674013713647907697197344910882465110739826672737180102772786431081298984366532633568220444713298689777048460464444513664932048645160887701433564147816336661885519106014117958507174389541088409242462995147017614275716653592923211518238599368145488036367980152802830105300002873416338086110027518463684896724576844045587127540874257959528433842198394045742397319597131522177570828933405583657647433888375652948456372926654250165428032937676656315033640150515644527319343701806879315890421128084324479871807665121051133996934445108669457848818417794910716088947499345922930202771414742532718528639515075161058734730551512700384912370502988514614762355196758827899697190205237034582428539391564324628432037681377119804437702857807102575111429848987660148676318444396876350808757135994107764940805074752649123149255342353721815859400587821555601088993104948976726116890324411055241771444427467492271993546358131960403135254716460810413932920800373642691064373931741948582612592162582939307171607762414420613889104164139292677969451934196897416181653721448196100543090813288699319976740638466098589582549021018621885648957163549408963422589834844245072935807524580078598124556541765394536134606528045085425888803709208507340094154474312567027340691951261372271281353712495401700524259722798653560289975079197233150200246385866586176303807375871920684914736815328868065145223272960708743843684354143239775152415812144668116822294151699313716456212690371450647699642141496535838922351285012638268461517824445147133869645829646200109907929717550080370315884590459801966615432841397322177379230437113202441706518686599027457878907188348015168991326040953334133235624704961284814408411811931810983278451271248461849723030842325649418514265327137476108723768719550943468016810894464640056098316920741616469593449421405053696946827374874532910249379759215879092377253865742775108171644805195618243326705784519282336924482944108400745195081726189453178716376020915646240527121905124999910844487730709474511296462496408819290918372555811231919310886788406251428089787476177026557805851339666789152489731205513088523564873403977783319453958694983364031136125029449992087941179650664899035762009117777380923405955072656418116573927941023180148900393158605695642659427541284272719152630958662040814271929911300764952098985354647130303695846508763564737883923604650669245664284294475421200339016146590531747692799625692090280466203459048785559717515119484118234388194978257638400173675118040029495605404277656300890939128132151537866933754825428479390725007369867682791100900033925223501130755589167260249210688103229599652358749856388505815445709811845954642867262200174059967247190813783186519275594125106290781058226074544821175660264307064911721795801574325202113394148012422064383624857044372106282890769380549088031373208910667662475977452586320652825127776248353065331790105438013175422143306145481860750139679739355080750918944172792165984323890496376014850387636800223814608359962363653922501626040170442169985088344885708188954373785562348321513144750413355482326911262220104773427678818887339959678882668872445135657429609320847100510908670702553962101339293241890199183398649394195278043637993474311926126074502776231943363987400049813178174811103867403272983710734569760838454620498647697332665631421103956004418798859896931237738898496090804643436660977733625107789215790912442957863619162197949358507235267519327982951643518330186294517019478773242410723314331902965512665319877451605601911914452087518254754019805892167305575794670390411073052857259298431122672313680616452827867693978595755923979778688833644750935820460129865928888332523790612052190945844090998686391535548524405630738464915936979874576012902761829692744612702557028427904431222648653970845525347238326359174638274995254108908573372701745685200474223117426098848932074092330970862449040734244479008425028601037282571959237566763359210965174809654805735456968144607785953466985021134747907304393342648411302993485004636895283183885431059480551551630215597288589949127860346123777716531906529028323587446274673910684349542511127584364407927687019061949194396840139646957178281613712526300898177890236902500669894489743493820456232344564589241432623548116423821689182606264630556654613690495344943699977817278303484107385470640439094529693171203609271387935030979112008632338306136432270779722466024772221980824937518295646841895410373795817306937950696835942041922143181546237226333471155086848974330044193254772160426981164322342182557703596961621457040520750720602796948759665813171765191271278653970681688399929113655111858326860733087610132462400651934327101619506226547501376064127357593059919345045686204119894082782479228015296533854476977556781253896698332794639108890365785953239224124567298547901382405779842710017256096859257166295870992777538660021309457459154813826838616738998913324478062767906134416868033182585475187635577274419088305842532446623860360885196572248608339506008383547523425880959172523063865901437809957457836590717991139150742835520848671904096085431854569588741763586675322429417032561227545389441069570261715684302347560969551538303205867355204650157897078262280387439148486552123915913443132314052647680247700144906608259282228231693090524311820707345420614671842797081859640899609019818002052979754103862064110599315288500604168689473044628043664257034794939503960503779656507550929253481118228256634760779182797035537647532414015281550648895787556573107159716585753389496876139529656959802813111787247779226747102370551492508721290071075840697749421434056502309465612548416270969322200290580264849934522769604251198523360082763246838443329011616228843590749627777329835273920474727386581146423724599485324274014206101960925269439400615767580561195494395373267158872659868182526437586928961992520883369551229223940699229690382305208812965746735628578332197267378169240676989829547815195405222218878355820159649111599732652149903554023375153236667885619700598748830405078857654031505107936193603147885774734388369666179830890730947870660449556521916831580361294051723341466245295099896792655766586624584221733045944698968194444735252717175634887532753332659500316073697084444404518366660964405366439707547902592919991956853689888036451922114371274415405032207404035092667082824743226841347444721401890464559774976056475343154168670483578672481214420355837740983338856432375137696930814627301918688584501158760255485880628290223717775500270227214050640254185301088653983228771710094129344092332081556536913629551858767134588167823815279957672336763253473306225446516177536627239185687555567280778666249790608174399610660274486833239462177718275350271398640333533389746327801446836680003395492065722971764839636102023573513556358837537813537904979048486213294438517843052069744153804099832899397595107346064019884847867662022150088614393329704829290854591435176606471614600727262858423858774194006367703783537675914890084435149231399414245186258796337865091150301579043706411805318528232868758206576097333574365537005498830543622791073321247594627423327458412719544769262556725336197457364170771781320776985763266835062222749949370690048687024105969906182451404342408206900286518374678606849937690980500056052488801543998309124039671451096233690594011015516193475197413093146050643359311716356027473366543349047682852473228335879809894756102454226525528025100812390913737769851349712756607179730637375396486739132012283959780463531415696972360280017973886782209394883657650645041857246444603394655027439263206681766470790179101050626775047617587007955094849283307967000786252031770221392501774981967532422088697648264769424643660485659853803650063983853272062887799413984869857254380571764009789782258615437850476985818709550816393128846126201387285509377075896611628463226067738213376369985337294895985881839331224493831614312032782000904206788134097413269186818223847626093551401257237991136414842645478721927197411920233626282406378564901450807946771897470737212181611917637613854381255791573787406727865825017677590677323505011115569385729532499265682460507447824437545062710832979505582446433447145665127459698332926202239804467154998828580093532388789200147833972257166157266858450091805299967456460877690899591356497257601068575371523909254827206815724437229711639658300469018012990921161312003786701775906359124929668032921215384572122441098257887716128397662607785194812388899861402940675761977310235102141851457788999790519690535221078289913386253342028135437019023639639936130963592955517355722135532343346932912247542230179217622814975584161252810528295849934209183067041757250045117792190933376014498042355757529231202904492780215515572219308274944237746428345931851640208758844739891316934242082819666599974515062825554120048434646326147021378630886529676711526099344119393101271022811965238517861979545121446544359648482008466412171907658143002590399878040266019257816781434451404689604057680347342247360988393523769674656197363531899856152291854438838081502344536314680479018293489025537452697312228437826823455243182732425435074501566946828201420813239792167960210284802848226385297204251778999031873635654375616639623966292469883889068766757500387346077092954247276845606964110670153459250258982229432118322698756501929018562894476067531608051076281398781627825994277546987708984304372443156785766055931720333617114690314329502840751764886519493847741446492903242755065398242319022734787842890330097493972473463294845577700590850794890512438785682932952637786913944525934462564988606951054261358220428853427146280658874018270890068612511062848346273412006946134225795094944542271756749634764917503228632067332828211968266953205164338448439279396454385030313603150155286656636190587162471928443205529278957838939354966534436351607920516741845764469776975551936944526364699217181598957141335821551047700397410750649755529951910725416488944536839238371500044879019957476059484723656003798376364111844756902058131287122574420859688807364978733066647868004591971613325620741656728105384805808833764251474420786294477118505539377469762009451657901540192337716469209576907393646551531440799696471032096336604352545749720192892756871658048254381408575542765872406296473611832886070561875578963867788599483428663138660770255569119430215245367784827509692530718011184207006246503601431965982279477731915299998170207344391083088297648091955295650854512746763974214946309957759999938085366260221033574397031683829924638067395767926150475348974064222018392486422916271206439069373019131182722087113023520772015569653898861410166045732172540778972290638479806507930208648084210356687990162435633281073966441326948324754786511658479651940463909765077573362485206544132750584876643020717844122989498101837309424209158040544745821911662018321966034601753690423839235241045528088223991187836840305375621470964101857433506362476518473595169691765286006606641850136519769219423533351136776940036942141714934523979860258811680971954573124276928325420385544186859709030988667694012145908627489652059965827632116335925430453952638771388944313585750409098450220286311216894713487499049818138707348529653274400574462044318927092484866409589125302904523571826735040470900209366258117494473364607647987715265531733044792956313814742775615080959214008660890481084676699400298795666544875236184160728943001658948125010027421535148966710387417752875571408132792925019519298672164865203914608561058309941563901031973673001087980833899679253976146195176999472416028882358692056557779576247378022704361547952307505742308313658184736110844258921624474334232116253455723776069808362479229596209091773480945326650241158508407463446742130666037693957930318207986078418394942315393938392648332277219328634337768835236320022204442925960052614307131748607168035797159507124326770856351115944174803902709114342432488813091946072794011158124280463063044515366572547761676235588450631349273193930599339764570920125300696876769223601425005649954918557182637855395908997680997802816370528068969067871056854974172545462466777633129349432214641415826006700687516193585512485032487096973510496590607805432617433215212582271091565088666868137102088258427226310975570739943053159559146587024369922311202630492515690465785914270300577050666734516502331343939800927235465734785247146123326727603110791005490390264121322231632319262022925934233090890902609172263242821225773574004438678871468797428151200350782346365279672017880494984668029770541253650906683060585008164612339044492437680564270155933001235490794202687451548163633163000860664085177705316803475975700051045959134646952997601289610547781090309100569720738435922164427886784043194813460388817555596407034178580940346537256269098840307113629666406851987481946971061048318293135574175575490238678488772904009630602947132698730500499588409961441577919303430731101875298051156836518564633542162035228914901514616099063850801428638863428204095614036171421013558048429682419300406204086086161842948709808049959033784352480133174540933538271907959153699157846023915589924495038485273560830898594439260933517154869553636394698382286328113350811300949476441499668228306485509726121244337978150483341609784033688070953683365860115827347539773469052629874245613011744845445329439304522625001975785297279251296857231157351376340935800868321396484504975252196984365953566701058785414041136398019410798340556813123305807231587890697403860288828106112138849342831528847389914261345294616802327298988267475378126621398220006176740957612033244168308266840437049345426492358117417129529552295804628859250928870283922931808086725424275669499093053530657759690238446569374468391354012955241053130717207408922916110674519473427374427077602358823368530408429947423031883826242051878980002764464375273749387230339853220369147593708086565300772813403544318068894248449124909220498159310826242561516248550543771646822833319274152552655327982393030304433365759031880535930736970218680914646366341685746028993280036054901791812250740023466507564128588749393645404239844868369158726573190124160019481854358845787326587667875522376778007723307317300520648951484958706045004512337897994680590585952130731742600207311960906304185793419237804187307848672952371314336278669066651412912408289136206322629056819430137738412449082468695529769191317352225659282560345603780223103982576496336818537296438582965064225910261476309984593118639135039059413501597545470774602076873654147696118991589440235905475204792277473010858485932799154493607551863482157218130480485482694730072906801165031132479001419309230297422400076424368343670519650351474580523583748806181751430201211697866466855411970681108756505033860863881577720349750424599312658283600794398981532585075306107088016213094864415517953349305162804744182450982180360256090044718073777015957283216818126809121195154761084329342123385146961383191082583341674341611463340211709751627178361416563591646784716064309437525115259290645326190500146717462105304335617789356255945839738050186300867084762433048511530858740365591509878532820920388548557371382732415870567138939943849878295823473299755448124819742124594945240000693812509375346710819566333590567525527608811969215955451884291711168929094964200002276350371946110322596312972723539997972352270460054137409398028635569359531320672515994032670132484878999466271051793604401335860572055032866170796615596400130253821547825749754251988227865272107635870779667200711044519281056065853194543319915500517698706701150455387117977265603196259047336455971334149883587768559879748863316541862287270437388947340069674198849150285863937970983810420840308175702524703607499832136860587885104407465205412507212157240210109191268645966454080997873005253340087745087812277279030312290830917149479080713758362285728249901080732750193345427785449568767877968853988499400497600137226757688155081794129581190649766308635295713945918472568951229543979457633995637079399183966413504317364740569778112216989978478194544388271163304061226419604920466386331382470732106285747421869953309565027389735598497042339629859029201838325472717009903871105539641514060362382190297039390731281708948241126833676594172054914722459288197139742027972779618071215519729442959118113176164463954063581001962597195183564878301474746344165176818962822551321293293961589322347377831073836094414252824702823239624978251173441576951099701437441804180474253156382792398323484393671105107924147208951653066556770812000994388473787960235138534804637437761437125701942331678735121742384899641393284428277220563247163143261449065137060787043332602347485869830765736685471770190363961628397511444567720541257694398539310153976101912808782476961717582704114973555611757587925192133958302490422065121640283030029760502368174376518553513985369091274377193557807876828554583860609468051800972530802693954600099373092032082333855121574640636742636974882297428833533725760314416394932035033004672031482501849825739983823084646145065454583396820231262516735491185992468838256086510885834200478829264893568314585863747142215054745603955832979957140346157811462223913132212367096843645925897189820225877380735873269473978302566184789292628542303891203720478978360378209682123115587734225546543625428452527895367784961304337053747244321248143656635403173803059102589766333250867705017813414180781151230374398751468766031089112492082279637940311266052996761341464510379805106702474813290329910179706277047559588077762709067631136057009890173133814570364280133866267922670557003728222135844749374076012419829016183869667503442356474115749806420094441885135298834966304127674161773569610597647696663851021387181949101327333081146664852941760188848364602064583475007680605654915908937944402590619970645027136782421837431780720673469006283648032828309706103706343019808213127283943892269561562959128299195861508237899082939893809225977808431209035830527146271324093575734087174267146646582105256200070989747581240425746652787754977538060906442889226543652679532290440078065605327295711357079543161525109314203507267717836138498397000833407857096387290797585399046222943840430040059647566070014403502328228875677334231990651664570323668582760075232513544115505717153224276887821635696231032135223053400361977670332817761512698707806849210065895416252095859696002997991881486749919348879056429275489412292055918557410838199328785228524485767702322457889324314242075837962206942433891147808414320882902493178190263713923279659389761886023830040246941082035973933550811617449006449261343866089653658691530675622012974368340027307011161925136093020825712652422674477668253823854207223922837868021334600024655369390532518897981201057763259584399338666815024386093612742288438970454794312461931875472337247053749184231448730144416748622975639390701969748753449179117690652509378960449582231319872341212131912747836431670945883088963954061122604456727011572561099565237778457420265137304052234082099033251765436220207526653408698796847392463299156996574822085648837016264812725422491149134618153807520926084329677830485513131073700991156114622403475716269282846944958763414259610031680978348758413283586927537036660210209375331312256325366613807331984963377580131534299212159226178452086090040808367066505821414593650152683955909295519182310540470160470272102667811906237898759785307793961836283026436199085107055223525458957700960246819378854004549404404555102262408292460990120160336873339255336415695751528401141192168906651989095772145783166864804518544096079092647549218103967364217172485611324448072400790348046447160954152781235902861321816829804386516566748447219400780164824662131873483046898668533948503891610789129113449332988851890653851494135570722981937300761765045432090581882345729751027466834236246076229187447132441902114487786315677048667146736847316706984761968942224350489150301595279927856562542699151749526938228368061914210698701998417093800497071839521279810033996807012727893660517275280202180555993668210484137174977294895351927941651000655066139053371917987854161097848954392301146044271013942838772429353654313748767998708709099882480060279719874321886510512806409194515653986276198706504867777859522252241632570931262814847330589437984746446516546380017701171458324883978414474631251506417350793348232349275564220881754355218159684293731365482200110742611985432537830425904239354043418137289950130236992770028121444848415040448662448778870113975443775077180327865661870521406411897767299243933324813989234567853608291449325778892959728353291843059441072018457257152750374736235844227303203027043542387698241381719086767634965520897491191287016384740018155067837778815638890656034092487834085493782417283432810257025691976242827116477705116817738903284390548082397924621543001710960980486994890831775119859657177387600444535899261031344280027130309818016752376762891121137069914326684642353379446300936105404747349941119375007031337215178381821004606295404699575424452504193618876126677881189658362847228249042561535671797121936334225186604891852928650905654615159925317345947250970544869338819818296629372418869845352077645969887281936838801611207982691267678931397129147472616789735890698469891594662411272793701237728856264636755677446580605308399415278103564110576326799869089175956523041932318403681802889095784103576011634252858835848302491660416602914808368280304585296259514555813009299067900879188579428520220141245570988045088867813250456220070635896686993338338306264026405348979336277324963808757972884752904806017411554520085220284200199224087957744885594784518346697370372225189120846866875678147299944288028107221373232557545511843774164877269599819934069364191187455556042704684800513392349256192754182875852679676675840012589184195886788878576041890802996380357390191060229837573357167884629873594806684620670492767148886546877186625565254537463634518486055945822446891299659270830547215053746921732863002118432788420583437578903872909623416809240866051194700326178430743684210565884174395347432805295546110743874620274833634376951108076138945052585353722951219788458296071872806333686216189545001934260190274799450591238685312079003818740602975567757693925255791603077917645699384785836696525326036097457257900302120469537958851210778184376832906240083891084695145595073523256020841156484979717231532130330203327563712045605878237251707568743810641430602310081098884712309037116088556363604345350906417661822383102266730988709639909456963147221573462072914310814682058121897781621581289098669113979111915299046778643013679790132728008541833390790468154350467271035259969624689950356634836857912643861667716294280516996366083666423700751398454073016976076777799099627395028205787784556368030973469926122615762807007317927180083243969678394012994275569981010635842155997017959637005629060300464649266701298052208398557651757781277836267173940346894360128040435299469072962209446085554140478514228632700661016393389544079012336361165114852384427272304547334261159451071687070230465903621220971792511025024788980929476883819726101395874114358856094722499643261594562466359333385192511890239790742405745402851088517410980794076806921150917900498471153807948897356918674122320612562965277455531007173287451093952141018726691899510343438220588449237658653044941147336077432031375970731627800778221038796089044934526268056835954785908549000018408131605880130298192636505879480385451475806449490102751598996785719445976177540904407198652414647713478483567243821186125893106969273846776321295024004945573011873669226343389697055382365974999131639288230219559464392391222609546297827959711276062239946769865286852397570874646436470417911529325138724942473457333853091750055480439133192416677758523400644390189028141518293047509523170652061612131881967729044464911167962977389787116199012332130363256764689265010911568641105499159187870664836049029690001113596719500275006425086906270235545565127409363130774536802862258822177933403681129132063211666528066767575656482349542566200799099792058301957143714487392567148897867290065025234597341446470034552022529651436992954888926899202561748260975023842917906152306504812800047280030566658316239547246955748822686285026715359911719667643442843760767768050102129234498074304033447739548470155635706418448825450058239297848581711710609016672684367557270648918779650067408090004507105565125063009671692602060260393253449256894705856553098110096806165634814979347197778951517713629401626014193284304906217467477511928010755458405989392997305811153401348525530754111751918671248298165525030910697058115729547252563654302587537402655793177627987933979132093165314769684266545831825780017280143591222907667879397267661597474859052116545353528300806744338258640508289611285779387638396317641662645471214614149479540125798457991068526805444373974622633704943408796228191843672694606339985331518430489686082971237152401051447261946147837323569930176244445480942815808796840065846228962997046276231286844305023927504666943480224986805759089677550311395824990946225057431017168129987782009061860661738429009740828876514344697009402177119745199072226727955934328675459400714718923015291782973753340021328599639345943690471656887145007950336224913156056968453661761016084767370291456849731017961381284070235097535386234450632701560495418072543106688856004568284020249777998789163321702336076638190640350321751033044606670232709405393072091979989868406343684382812727601126056627118857040579327618310659375952250348230720314880343333412948163693054287073262732050571720549510067347236336751869654748713556489729385035856716036079767281182205109255541556967335789913292437328805141359579024441708836669871068884525647765555120692602838053682443910941462631633818112346131335031425428215641010131309047746103230888296423265795298893792876225855053530690777699714296008591869255306629493211728485677017214813984558384298305216878273979030329837534534502290818898800312034200592464915851549016175709917268918645988774925214538853236641963026785162427292275007708684520276569000509636510362873674982214124089754581232809678658731703281290739248878810414785678561316716717029693266246911475766233020535999499086413780027497342808547551539327947762795952483206987337082039804684957847571515969043688591859303529945219479876258075927871555781942951097229274353449425280479110003285262440003840173152761593345598102183419066827763872271555340561260051461319727729595588023496059159584117275729983887451867405424140835486320842713550949698878943174627853443911112467036269744834762059262412546592992962102878483474458091921290316427692637757933453332884930627747698243887055783766092983874504701169675861142796786190006491624869079260370722624889826028939251503579578289529387122554914981231399807575190045294523618287810077236735377091724293600383544571367318946661250014636396962280767133857235904974870310871388087628446156720465599105971611260096781468976775444149405775169385539107159978612198842020083853357460528424812133101914850549731609137748417166851953015368624560102044024849536630318942652582494085985671024369774938403609406915163654239470538205382928467489293410326609269527220030778812609929515971983038033287923880266646027055864250539069349148175812500172049900898691639566739175735604761166718875374455139611084546763839701221828684971261777822874149282876961981526180797496702771121696311394646817545033264231533881807638683641876172473729809511611825880271719086301679367889637705113757801162227221989499321945526711979850717060484855184704191333205427365288736799851058804180104574565938464239114704961516612703596412864437871890643361005393559534742952590530775685234334260988956285455778799597938795183795111576114945113651307553168535723242107420156465689953145729238545993889834787851107512092555958829492085881339419674432769607862072899701013141588585270138315631416794375469000155859086418684079226809718807794158979299594862246092043105785134828585344806648368858171943464996573570471219901864711810212200660984054238767226258292593384238667556467864769238585843967478739494131500199460743183644789065450575096014633234238632215827547435164140830522851394113378544931051642221582108878763729136543753879383307719744566368235992095906802598603275021351855121321308690263091380992775330982898674922490502276224445740073251186828688388276040180417488614941910807215571102045760970455135533141849852656296821194363761059159128011565559047405684293351360665006751580627801019398618645009552685799939018312860118313698672095818245258351312184433250990209244418564192270975706818516501586945589896824849833877928646391793750609716116078510373011822508207512403934953217301090697644520216310657831842486282032372667684047043688596187120389337007214729256125940930356556577226705263200563399695399850026092815288110572340414680904622248602488832878658806896744578717569386890440299048199577136300500125308104602406763988584769548235497441139767598410753805927266165926746371172269154964840922903077455772804557296571813934853195814759162849679318778667992140652833985186900304161109218002222500543941465187897927371565413269000509923992301999522698163049688023610807540864325527264930621960428186122181805288597969217399295642274184423154857552958765047783373273680654872583647460625986534761026093668149234067636388785186767699341570059893542449741774600133974165677353017329197734990729741397322435809865219647737904016709675926518284536506793533659048203540651426474970979214980832592120933673387547692223427558393261969922357523921241492808628794750363805897516840541060491440265073636563534973227512857992512733456736195453008975690322067855412941909723774814299692565715456111245086901937221609585866284726299144344553173753985619624439039991307988757200414796077891453861593299698972395642354665708864119765456962745265733848113995776317338389320272485858802490231118913785158457225245278616858210142378994074399723950288003552357683845860159719842074998190211159141766689174927955789526327035769390721085360408646699450977075068686328113587075515535360041743289906425088551039928647162335536013138191220367503960957538099877076530320779737738348198769868964372089249853121423580326609319204266277043963328489024086724060526981352960984957179081355481104329236227163413039741326143524732712257093744666052296513180079492400827816715914351158118003388778642550436534404787093806783395486904838751625125164851170890199993108860637494658325790593023467196053030704954834557096680058940916512936615951569785886960581396300475121293899738053665874944846502043395339198038301037883722694251188417254965701584464207821197815318337838376537299393390086287972213134391294347865400866018596833960997274415117052547398839698852851680157131007842709825983019468821450192989762277024361776196549910540117534673457681402399578919681125669479595826264018375976632392040628670854665412736163007944461615137633294799167428964427556502866187633372894330656147311398085564932350032695945826899306770868259300951806461103575960791705725532184188107010555563902228223788016420235427572382069049765517791061628947414212193289678894441658555091216836171196917046018705903063958845171752349955190437571192348451235625197364046470854674001079059217606860378777257401010790564218332991470134207033266143893594499328141003586800554176021154510627081473630327099026319873555407638983477427968786613058653567998037664843529988904397629528548237400275876119836860835818839476330309745237806678785531557140103993677183772299323627302129089565607059071119663170445645901788809220305324578631548438306487518484255631875385164918208065687014005338471158677411303172691264462633373519471845636024682697942674967743403481510192201624638266376005531527380509650177320292849936716045417481911724197053802158246079569517861135212039091468943372680168601495929891403557913843012920985437048241735851660717771798567462185044463898258518909019024301706505805951969786549814578924662070613445458903671686457500090839901630097129035549710027641881741271737603666769456262306351957614916717102522532916472630530364556499938829151721566240759929512514358952436501648504134458222589581050838527445927075109984944344661928430228421042414453660387970699410020553967461915166528985753555071738063872679651501744327443729299420592622196737864607237319494436854312080304507299682498461937730278677364195420544458633614283532448078462940595227878123742254129615548393955841055333096693589286129595982406610162322384295481072701056058627614335314143914367317072866421141319333775950039276927493285747984876721256339376471842428407705280138364961255167280322160107049947224943852074862251253409410619337597859779882036310368637785554465524849896163184655811682474938070891186565568350566995604866905374133448853202559355387391423480576077494614106558537337276855153441431240088141261551792647192932787287444183902882558580173421243764353970262088564446385580580068678700666011071174217353299142356008119324014746837265560777628120977664659934390534157195407127169825309026057773249738647744194478763526025178148745366452590712900743323849544859170345668568840336038163693509233538750980690752248804206982173402487089034773113716197207549173032302013546113651102950272623914590056392458074579029947600059031710256489411513239911654376268221483493551139687546209526216666084716174652344363989523702431111281909759669630009218352147882013660542043119471319920845960653785792634100087803643509827294506735204114179963922761225466981429885864431835900398153806747699301646638230364653137689067740101252767135431133379709512559107189831959358689919265287157179740187340079493131627660269248318749439279924993744461312716791586197207630394106807148163476939383441407319322384894302375851201567206410456843633994503832908473232943161652307252552066680217517258447965475521954543170320281045222361318381781743087304217929267913949007782483686682818875291015472323150871285340030181234653171673400574064833767172007640883900721317629738079199911895849319326369353522271252366761131142358547517941190908263960676114947578389291638398284454776911355974053434963930436839473108038772294777095234621143600558999048868533958131013027216755846445220696007833127172593831213084380271013086720337075935827334416515289499880822646216786398669845090530947577316161955516315389245862009907145182220690364081935175105390195873210356839638706115817513969624942164571435002426592956717182460723535097146237573551516917611719454401292463369704401134946585182922375649051058715946187763904309620399191419355322323212803191606647994221851763353049957148047096360428938373016130491842539886887131586303467852122249211033116600025257039695162516506133981044309413765555098392951118351583211430156431673935221127876771690597888558980652517299982144484703107003667096228840956489771631789137131497711557929719526612088256790698735707548862373359725436074647450365593529502219593064775236246956147373942628414525191605018162402915684294386292085233129013457518420271124550947188216036031109880027122575426951190605201199523260615296016137190908307265907681089663037878382051521521732676285260167936674242348362087700450977382418397680849099718751979268398673080202324855169944622001336599960450229829606825374478040364325464706149302218984175496756841126374343369491991497485995732477483581394614727143050300970247212876054691004898944128900454612069596386559619546842786903159702527896158050562113980681954487703190029013638617869968471488389361173550656900586039353483799428967545945963654961558838988970911577905114194417044153073120906010495027617472960126335709103058711137704105591114562401548606392893575951208998445082361056492314598531972479508928148437127964321084833862918946421944763938367225912805253283401597548037330132341288913894237567655544099768066416987048060625909878412185551006539144482793999732510976081778598151558852218313249988330047439121997382066903626319092046480631550719873577422208785586682330516982584670195608207081070215814596824767937397086062760442286946023476414080851368965979055040995290741387503174679286033572627623733722231161310930856170759170795184545709431128232132799324548427193286384582418960499640152071480752806586055400849400306530514354286106459816969806816184608097331345833250126217868935941545653878446388726685193454472213474850865499947195588069171099094266701703422506731460539111390189334861137148165483361407326412660230544294206707114859711425981841957042692621577749257437408055197522934571109880051335218278265388327528528168239868454423443071990861748481023837673828262868665285558132015596818040510450432735493994888682095819986103909530273903197255384830943793599200554920192458237647449886951413133944438447317655064177067715678818910706812040671349482353548663965937237827812215297087432412797120586594711167823063558973817094536668398005397204107433450968304361390885016150135236029857138428449748892686439636175970258667806900963218558516055260539714238635029501007468226982931235318628913527993565742054765109182219213367070884683497586815178572229020911729987739005701885301228559543257331377820451398664677100534786031491383463285191104479959543070889376731311825398446118897371044213383380338113154083140102297264171285083772698026124865901772618755959825881747268450955215576213488808597564600155146773392503715940362811505557922718820888199792819159054759106777495847543159261066485298889746457563154881289660039574985243517247717951683592630292770691733634278591399580934671019114679074091800403838062631674871336518166671103525572481162059443138647566562184078722682822180885656996569139836085791708178520253883947342619034869763617455490819956500918950333003243558503084540031769358540888757597320695221594766009707143426085886540167108291696390034287560186086716295669575741901228643998813027745370771501096602368713059606411567667543493325901847482896404655294324705973402414300952225934213960152218163625051824376296781495238453435757819885841960619469976810593592538817703100089879528615871753536525719080460915321843623534326052871240147046668052123900681773626021704946846610882812919607520925515680999301858964287522780288412256919862857294901848316777526161359598885441806015709530383651734421510717044098695178743906523190085504654613250383788925755265101083519297828633983499109100877952370358168108675138609044532172920378128205626162543159448763648452073265525042650750954873147675664902732643764469226612503351497092947421569777912979897041111064219173510278886956789407210887734227333116321284187545058695443958299834030082108669639452610183885350018561652587509810751828021908684182732147150982840470006826602060557611288702321772035191266828195114746311344422311450704652225042633371167614113995839581957685252959631680633023085551843728025226749309231556854647168028756468179014837569846581916543701129423468881117433349502031413308563819993572485211990560679769330746874620934068788858221068975578153790581634921186452866708245306511655956935889686048626367776970027933674986681862412042442147214191591182654395578808624734413278391958001947569092912815690703807098289259760368703984933543880519620038548255269647611084004669822370605454174831752675827628953703338429410039498956103952628758342119532589266636326675929880658470262295815016930089713984980454023215658883768157329972083715398588304374918748165563245080598351333855096368803744660067470496709444745847413326664667289620486796392280296350062743488082347121013670781402775858551613379133929380680577143838476517876637103873680718547002523760276230656231466131043265412903948704590894426650494561141069836368037553555596640643474088319321159602174079594581664205529076704092920254857771309208353342889573035697475275333253047703943355847617616301521966096574835130382152945530020281886206624206546878093878819347477590742512001290915187221908933935150912506471673478456490222491147643210947054734434332018192793310444965986273714594508186336600257989708634529082587043602357138233041913054816969598620481461508680669425674984097769413662609368993947431165802603061106462288773593528317302623036939464634830710103472836613361172984086313719405398049021876759497309784720044011443582477099268564288504123757315891875640217750835929936141226274934589833889049808924912500921305081499180910251631788907598268527060064914478074564240368223144634617222226418993557462304221355577280514035652128920241333772896965383364305931173487475981564111068849853065728788879151093258274762890310304374783340978320006884758997981932637869595383863730168263285379024976740077952516567909647034469935654180735458393517499806716415970228019604507027990638422397012298013867268886427968424508674386941914550584244212982130695637605288046534236088295724788203073747564563977036193552417217550723007835513313282352792198235611036875161088148737653895230221790942230816534243888690846304535972478026486701774445596430572671401901136928510134620307412575685315830019350051845835132995770986979447001145109281289482030792543900974085570733688137932963686848116549821501519909562858606214691863705649421987494709757888768647426777920667234426919150268422085668294213501707290955386703057037560210894069141801468453753012005265108774901548902863474731506961103345967620794474895365434069012105907208542350804546295270212412128324704881882474848012616357194256856186865523812359365699682604386064898375138047009149231565952294980445568595380946695792620932894152859681471834702317130962505144372166864455906809701163284944247475397288180602837502652297027307371936812682149252775160242709925652392484959540720057719247290394272129871927121123281443126796923265417209765012949679214376727294402539220131803567621577088574570944742941614428952066578961029171641078841338423767629802113846361218210432049221708836934693287549341957000250211839890538964207875702940419664359222638058824626637920968575502763547408805889381176585725325458218743039588336141777930819789056634809366592207745344575288906077985127708561429532622072050215959308416288137618761068559434481492937644487353386603945632924634867303590231190240581061990208793906904989272474333459797673186768777172143373935365958304857285738480064293993473310886736693062061022338192107642549318377994333492809702124039769360571295366189434731895855798732572173980987598305112984225952949357966863308704947991428864197816226602205741838541685614558358169355122100394946280403530220713762082340544823681004945829528989034841255313037040531248375003246181256830114679755041160626932524796604570072055975120279546978310402361595480866149307525479906388225826046910440439655097968040913693407192492197516039374440986047367314962908266652707470256207931894637122136239447755300012036668345645355109409842434543998743554353525434478178840403794235790309734751435043766174714566577725329518441628369497790648294477506714668278207671473433537816973666174386176186953190920187972708989041798655691228147396796088407723991103409864693700663660953685132117752846994802221397161657775685495442755305012665002200132648484479801669697568826990874224667534560820212954601686473359756114455512008001558473652364942236424721171836761192411246228489746224094619317268777703398723237144752488672086861797975038952004839035200599101886602546528129919169510745326300297522110415226938931279154627523962202975134164814400816047349809960962052813348946806366030988103510254464595116004485556392664032143411922255947412726448230664805162904919938078153777878237284655324059105590081219415083668223952105228077215848570997410429431926089087844545940675986291618149238109540886314650521255041014865314535169976383833033282735327661727170487052935282253251710646715555716990319953076685208355437704104593635124558297577171122891307964265286097831290855806371841765341815221609965091516197934546036581150075492176674265908158441499614356185984984219825967818718953205014287069720060137647019060008288403272128618855370461323571255371282855649724028225451594382807376557059642153287487936440785656199247031394687246738159636125246106130429391780707612725932853829763062984469032513399027396012770816817028183776875150940028341854801105813428125652591363093881101636744276986023213117694061028929911471758284414665310651707314178241334052357462538457075939898569514806177987697022391744744390177441932046131054559524992972721398260589620603908219116946085045122168525556692083674885221033058467329148453582429865269264492116569764428480521925463128371213888819579410357408844631626546138424046842161947227422357139026343950256778143245490188997063129568061907413395077707865295396048229530954358567680971138600241444866833373098802157480494612176443077965408203624719085475807673337269924873824382243017399086615740871159800255679302464721826232748520144582919331355413419417508661801728880150772939566825308466480458668860187512839180369637017800901552053716465408135255866703948707372203589440340790627906630815006970958684420180775403131084816273445482583118437793889784243611340752767732805956040365768508706855613430090043949822003134037936331911014982207279902871808211999130041740108784496246702869977805380079211593099709883200742022964995439222678707422400567317895186475073171625329621985898559856045625192455615437885673711032210846928531260999448774419627566851254131178398399031236141994759401617227375063951511944838760483100398847526506143150334251817621587978262596639004856158019149223048393712474272924018443704139203070831407429291475680832114451744331950973669914842633735553247552577330377214061809170346007295146350111220728910695841405418212746545690205776113472824105494819948109476610163876356821490517922458555735814296824575988537881738340928668812335345261895979315017685069794243617520292480703511085046813218969745029654083327690094894571307459580744162910385775201389371696582290137490370829673010362536374355742955126662199876897950265421814990604594842011177292748320258787513754435421514163404111797992300491327483828754316182575902084649490510447550974630617831957859172367075132864665454186288964644765233460710386446135749477384647028460870830113476503275403256021764603456984239286733905511763297438319623026128732162775112899857045762465009865672878472119042088764230832136974803059873607180988507678014731141146466741363019994272762227538337983116187490432535858483874365936721751071080378819644336009638535938344187340472763753569356156456387487158728953413202865914744421948659542881522444909540982637559215590702700365342947924046600452999196444970887676587716370999193331904723426281403558630990464332421829711542922380662814845505161872571097757302524768357717697775430855281503868158730396510604035354842697539819639061301941839578489344676777299990856447192803815286730180993417390169611998468976996126363690655714311501058636985522813064344854900923818684677189324550265180894290281965029660651518284615535499299833984209754295633640172342092371684819446194816684275991608685539279234843686407423660346209708048299538770319761374793392951825035939159985806404620326357282449204670237481916686630902171653026589560056970968269661193868232139292788003772160963702734793304849485965881629608210503710006205923967383179880194835183241394329687192353146760414721794782068163150256682554833354670627748728908182765636348103469523999488804120708086653564321900899706389608170129964060236355191411560601042081596532027916800073638045302277710141730726308547325388671222886188910078814793533718782767973484349498656817158877364738626829422232619720754673844084420433942486707141360681906223271844570156272909270121324681919741855591834837198146875641915337186493326380807196575703034873530465522564015666829105521896377874394925967052003358448978872914285557505837208710697050902199624000526975111789747815709832708833266523226337916644412888757720993272683112852576356599052605697624379228924882082065324155444273576049945985463210461213739534770492464419373833986167982552134753334930716434998320569084372218499963666261152445104560217238284930027921780492056264472499794793289242250010232373637638776743147558566142818891111592690981848622627938578240507218332644895925785350841214345260760246305110639344443495370595105775203885032284309468455614987561366736435498097025162511000313280438613294357436644437156067299765609821197381557968248407400252309908338234418883097029212552354655658094810897539325887864662468093423460376234339803428917000621949162839703888625524641914400927851940746571585953114340173383968224246890287923549274098584878453234903706298279656984811193854994801586276151803499138062554916646245323102971977650059143296459915969505302643879310937130560422699986886959475165744738373936839116481643875509092169194419048413839040570003805364034719332466484848997105273251111155080630892014642858428145033958659496483998473421261186324977992574655374331759376762977159332573190656610130402818071886656654396248127871927464295131820137829682029051740293432564810308768759751300164259939667015314606084982908750717161433079707749176248052036234969126313946116122994865183954379312593239554641973600889142629161534625701925707860498793302933685039299302380652168699231743693218403017939461484787834475204903222168752022977224205220346468555768804448677631601264875613966003508144950038049979834025389688627617449845877027929908580226956238550307950830524747986332726558123498446298807350117830650293412234734451683485956764084240498417434673697332046727437046460936731957213480895436000140300334693858469176535998442476193455805916392842578606913663318796341387831488714244690313175515180060652554090680994561289316828161016247435824077238870600674208927504556441181304852304623840558515179277883850530828003003305975694079904527043843627441333360668143550940505706394646733468563646570407679388706799681321494457946216782650833815291006847845070891953005114839178413024749317124320016560346634227644916143999382111696633113049116978393475484959254952427944197208924539555427371967314920854128994057749074736437732351110335860698235923621822397915063352865894783022501591694444997379524976205723277621630617669637351291606107700770395809466519322289315554126069544160271036705275602668588603801951431980204482588064207445111089703737498804326138670405344059405519796976905518747131972699904256329932480349291323302212075262548902727939632621290890323635333042600778490998154639238840758657076583940476900140779422347822021059663519386214377475625254584593772855701953363943635226531484867071451385641436931751657934734764354904440206768106834764571478798406079274507300947753243759681638095432969095510700668625291824807765615532990375325869659128898359593647442924773553230795240489329406568614556310088593741868764689565381597535772031570165989760150177602450474275188343795342158307782768985414464809599542818776705741134866212735441373086020936162383465437017744272530045558708706706396800631187991077850790376677005335355626288985333688995741526837955318363172253200162204180953655868852977152677928101008428296337620974532699541297096012900509997231440350808388475118321770281972585969584510277258482577908208778523975334608632056115097784736911014892677286588148038018238723471466766041738694419819312974653067913887343291656119108241018393244020473691035802515614729855876980170009531387957605028539955812367072065764768472794885383898451920177294954004044167922124091326100419032287947564430887321881602090213578497201939268157741044571828472707425998601570245746146271336117023096979035776533151123930087166898664595312484602120319193066985933576678096863100136262971298988898901146970145196459515497964326586058261537532203301229359728657876095285790296145289166356529125831276413840186454648561928082109399135609126968451417663570664491124616625708267689832834910649679166873366780066227977342994669454430469673382043989492638582339746814985474701915031782557822390623892446228634152906412250042039426371638566044290286058874929870227568721542694712602337644701388687577627663488200472403490983766221133510427622233867004022981048805026212002420409086381523830996250211393101662147763899262210554376741802984011428783555377063843686494256047881097023138249839655179560808417366730498491591361215267375350632658991880281676646328808797689975153437454873818802864409796030664187679944469530564716323773896491891417699398278048312828493155445094965623344031617394174915828727679963351591702326657846434603615280127171231381106553048401212584970106172116289536590057669076404200520554147269609187646735512494125269998714414915037918758554433548089411954403980691349319491071330183986696500555378729250557147378806420797340994754314235414959793491124717055254845846818572109090626198081633152905263164280955815938901108703964260161039491320979067568350847765858262432206049043211594658009731934587722305321856196387958017542342147894828384775913724059221480522518071067170845397206246236741472506930163633766356267594191156764013148827875301201275482843716086408473389211766605959224071898266436293708948043318815024175551664985605344294969553780984633508551745561546527970950992544411293968040705862725172753702639277039058569424581397403491898570272795557862011231623223075617184153893330672224451510164636068427067177207784790898917715627332305064499295766508444780372214039180127525559529065674554408146647428029338272066559194135209843121019679927741117541857456353049231211970462469031332860382325748371456547577101565652373256415879025137043420887583462893360107414756951142822439187091791372933141812360369787467129923859282730858170007477272470681424013295034921463747793439739146323558578630521375153715570164604019613763848082622294133708442992419735268213204024211033596172904399438527476948097199246245854558443714489253473897188630187992208012647007478125862986369565295441862657394234691864231245563947522132770292108137405566284981991514628628125677965299672441091772674833924462346601022229818198410485230340725532262166758715373945659200981630520152891789136418322934602768077282032640738326854393125635005193102598318729709540953995859353621496518987370375570065243060614719347790787516830550782144154770927074906294672284205185478238539426422109033898313892451277104261039203714432962814972557826591958926924223475836019615704516970145712375687782777967664824262876507327921954608082276652983400806475806646488545025703485140613348706029341287952412925086226515989675426600199105688425331121636497045237054520425204515324727577581804456777348522282573966513075896457461865577521294701220021821828701087443976582018034982922935975977179959188939487674281029627742935176906149922366009827736630636646274188925955145713217489126324966401025733703155817022656337095840632138830605857939605729890179247650506427442329565613786715637520607716403993841715913672862580211342157690767307480055047645416403558068629907360328263988706645872639879303675510209677509542839748389213966948760810172773932305367236264882508643483668374521154338741944571490060767706915384284139178779408364136574224667845276317978073460926005048794066809748526978540939718220508756011000263797539167950733975209285732641911661489647726492642930206218225345398486627325004749332478774828257645577905537495850000026149461037174991095420742268399532309034634475114269344178089839109931935959774383679024069245002625721596141975907484747423513342508074883598992411509907546336595268892609596965318882526584401396583845902029310054352836497193995010022024394101531744070117271101798874883697778253025587117530471647503917693602579678470206831111920009796506264615972589437387371614360003632619304712766497102617460850477406781802598395402148127247108663589154714500278471684923831813674755769707162031945179583789099610233851982642374611183209449512747372458446295902265087510336195734517574132832942226525884879440005779253900382072887807646670947976797849254636703941650985400597693243163195549761951269208295437667476588120133247618008581696183900070354030367077574710030892511864908528192301029494673025438374220253967653624322710894008699641141163867147579506147788238572445504733673992375699171329110810024836857178089216439697820022335305531956745841278233992316048080101899639042782579969577733271922266146825378186315018090325319589750120260371245588552817808386095592869897985816416391624246492038988630117360904232811810818023641042831972401621550036717444660305511350676712128565926825534257203784216912854406836889218075312414359044834726064328941751430227590486968186441934264350418808898482536739225161826747267975920486320887284505250715227749501079470424766875318363376455720160896025211360666370560211304648644856696372036893308707646062134286144147476230800670444820048621123358218339964737534283733093078064617374809670256072088054449487990281368962045859125084244067675762744479789355487345751415613596215038861785065266829256241815196345733197983413772967422729619650687672674077026890149520733870388823484791496036399636408190502897890022141647473548133153389747654095958065533388441724164291167437792055125421144959044625810923229235489020585081984525066662388917990200187675169055189644261972312202156877453197268258436388390593639844118370210099669436938693824372328502293558683095983173091681161329961391631232310263698655273842364508726297995534552764336568819873285668420739603042681888432260727677996756604287709989192934453495110906518899259792323392384157739215989497370187716785776848184756713347391894310513710797167646723175258925576159455189726517235511103162113311571398012289868359163982783745286637864537410774714392216636658560467781528865090135334746965111088829043132249950439460697738626275767559674676606814655543999958943334428632197660269768596347446368968211953142515509926636949459595152666578532249333313387693796414423510442824748367195076725078403119033996220675365342003844548356934203128183821480963194039300926848736376568502853999267818649992756712964909114748953603079921737451134712717342361834995185805280314065234442916444774896203830828229361756059455028378438714284313011603679533318868536180630292539434043746183268681758261768476952897756229877747816120669522827558969908614184721635720885734433331783414597877561642180826379698490845588478629193509520348200951479109294889282147402883785630992834599867359334288184245936313420498769820098112799467856685195547252944483949277516448960788082970010158344319396080665321844032467817568107152960688687602070114606479451284811841011705433762032599476088599660051044277326255703022665073226190344601605368637662728079574328028771446625265292123896004300301920548658569139195321256082194589087548011066053980870195178079096502731739273180079366908908505109742596734059741811314309837584487136848670103000086969965088149984178719329325408753767297577968451270136533670191155589052499423493454206759396989257498752650046410608535528773004353078818668081313006402693030154539404795928622007004591849881521861758772004870192666455771675218363721259510969181510817328021278928055376189536326245683366670361215297891757697307130157272558736675724987213580474415673975898230894010739673748606578884493866399167542447077465336447911352077924826615009817375672711804607125295768583538660207458119825211893002363315525782106946590347346497308011026881215565576502254820550259815510040565096911945824497554555807032645441919269263711269701019888969717321999081728660428400926557283001111428067017758598540556709141356786056908614217967487588044677027271190193494364994839326910533586857533176829727889677866979701188075704903033734601231932179429637905656599510175009337629844123476576444321797547134452807245751201376117877830216895181949971761567514446565685786750928592225248605447299644634715800097035406139103422178558427231862952662367531648636103807216957414127024597703757718500852431232907409943889363046824384879971101643154363537793067319278944361164098898905541756553822949291244197525377296675830926971550357522664845802673935611761874560655039971592866128761734340087983544893417414792989517190541006316923364225185316582943745542855578269096789745909362671145174409538255083116195052960131148528397596336081674215296072936377816937243516227900151955482608301264910933012951805577276430380816277695781319226156645251361588423752812808370205980167097139691999669858049865617399406444592377303786098130260730906435513550793263025470424447056563880503848461552175808219803343952477043262504136544019064100439421162466600590392716903102764650889182976528411788284393310933101753360397529058309408496812366774920772073419598830241976784971463755300602617476753860795023673532629636384354984846261215179662396306084739422194720944441070940791042241352278445738369253597748862835275912789501985015451702505956293142863194827174263691685764632426974972938740061581841816020009083431119747150873654470094215863743140049698678759573043294663008689774489406185357511118458926352198564492274131410133889861134360313056287978277844203346044154293970637498431161679400832585229285369125548317104325202846286392825512459007704455069124586298537998238397231028253496008958189251051920354039798517831031573773861922553385405454284685595717352767713972437101529218692688111154911965658891274594688580607079449968282483198705648265487084732785839642401498648890579254920665757983573476243568795266203225257145705369299373924259416307377351417485007652893029300568891048921038042541551724560536629863895358698648156931062449075383934973425468202697780301501833737048521347720652373661273741488244484458802616121760329984330355042694102969019097360835807617967189081377284351854953196300230874819264067434661458025414027764824242881297681760740493831580766366105813482318896370835380184963921722271866775765333934574613380217027415195309805673950151951410414234167863280632987312972366236837623317744943073999673930898511951180429291288222661783250597364238786756156070241722847376092580607416895194518440473042597494661361809334671144723141735398140862421125676838007177430264891579038752076518476515777035995262818964780621070869360488504767890782353554992161932252882733900317626566396396639302322567823913209683017857466763666993497476788229403561166311022529410409941485269009401807163278943358041669001220751600004996560137858284626950070709842800123780932740922683819021062929756345147966025130712588758953365369505926822234262090815781388189773070266905755766528171321372806203567475522174970212766687664009672431209672268590014292132121307235897112189845292848834709579412004168982197183397355698135295011503213469415637734637314111488656780814580754899795180902593160682034296018915884526393742626410399126313574001220281725865574259743264747687538490361668850479195875806140053197312166851310636795677762434923002027433632321251340314497127842920578456843483531033258111494116144107982189769371428015534465280107859344056427708898096314580834157009721768682815963539951909999772887150267800950265376825213448458414210508151379108865601231112234151180813880579948925034695025258955630356688309740231295085046996195614212458144402214505286449320544120213757937556198979247427094897320079614215090202990477478046280510240682638449189854113273112932696201339466377120221831439226327583451561214001872916579772586936373026180136663012285831396568605774676123003427784575455356855395957372329684390243323542419930779906714728629064477445287642009024678694500575175857785016700342609740399261830195669470771726729248909939686547527803497322690828792795281320449082080182361763545679434636385190090848636652794387247257970738818577142506574309101384149404294740377664735816350653005108441351859266417138837014737133012563186074311879339823506433321479664366243162721042155166578661229116459469605670026508338988500659585726230809940393257123200916979943879361259418187038083939474319245030124544199868653013791457115286684589354360144378023421072114951700718412159378557822657771515805393783333017457858766631952379087400256468575201732283356881886742024203564699854162189967289854641266012560863002522735044001458832275489298412880072770757577846894551598635532344203175849816713107927730244573800469561553094539398553325907847133554856321431857095803955758814791989434157073960548391751676994628018731826182419558471774772879058417764324636048740507217333088283955911459211825185423191584238903594432915618353155912742352309822358440960716941369028237992287726096344902634376283670342310432425672705692552246007975004695543489921021217317902923378780176884993364794955770388278229021316333023637760065479618834272449064857689547337854113047390558773116913816020388725692373153914670164861616172089341876013672668912352383208323416809489808078604077010130743643099980957274835835858488720131551262749879137425036489309531460588873886914988242659367121129433948817895520957805071880765263625113334445455609995395362601685263776194875256738952401222959267751889354721579657592494333664344696980246276493229850582315886447683820662321521929844387293841484125114572629287518540618486415181294021071534658940192030636623766071336972380103508671417718310925010950140641065527050903479205309864272880333023168930991008113903148694722439416747723303536847128554254851739100332202995086617476690617504933268698007786835673590261793325110906916979804432400721032195433521759126449163144316143648065279235953747959068610440151252933213357311811779599031820061145271216978250901461582930022801429065024407758907914601876752926455477347684352943530391978961950980997469052578559627363215938366501979100194950759587381936310105568242791058526753722056341725364161534983070331950679112186740288990820119516757633162434850074228835579295162054947978074489795375329989213072971098911771064935605369438379786778535802850316326597884231335238227551040161243532750004778417208212561967620388752686257178459692012138187545304007146695267633456986879468025702733359634766112320702209359141047168350313861003576327688879183231459503344432679287418778007141785614257222882071238901721841988322974103607901159576779378502407706854917746996253973858641110627381736684408513519464742500911664866171621470987808171834816287614581023976607419781632142769528588127142624158466757708638556027133752470522333584397199547548073818539001960492583888265681895432369222744744037002643137250108284244266074958704384519811296817260448923132238133098258427140374024267263915651023613481861017398879973773077578203593727965079783475038036522212338227151980523652036593939810258103834256577966887812482306280034471950349989552410064774250988786822507263266947698862419293076255571820538876291555128362941702629328812162989115150465035792790481083936222061906691840653542934754060002866504826875515463089360879217234630564549070936633449728060853762709520223869717164872439923638380477812803346179154662748622223883480745922993787618966726389241639992550035592178267957004794223914462282675396005257686183094306316435237268724324920610792845789657017200437820959688228606204180300063026521343266387556740206916360014072628400837258535726265451671839702200282030201960013113606325189574390987288956079000856215862298471836748564010758634628272153680250915936862811017337202584611299117712638447420063460813549408659089878277593457688203747680793749454850963598889687560772968595012114911035862755244691795636636480054094382039548296376788865698503553967024957710801370713361715713459355136130195651271912344783665884804422103107442718330159493684145368595726737393819793972749599635437956920405170831803589633354143462729398781731689284433649263677369395426624526222856259512832206574997663512519974682792147399821042965475848479997553604439787866456691149264877792737530446921853521236938825396510584194166039899393678058369575019182535200210090367620730160452881065178724821569387179897489368308312704069097350418214693228879309014800620553977702201091345742059719331779741131425464239040959784284226213141624657976324785403077855238024969102675846202430285907198097008498776363067264683429077853824997892942517267134512779206331904142362099986642120302182173963699399029869462720076410170052889341905481097441683162439203563528882104126801352600664016702166206523555782393297360327887198601268970874733311639803287557288307842706175662011222302572251277130878857853184315907343886267816727274245143798001250093129170893769176179000313401180617022049345316126168086265996963971448142064830589733882033159366211549154721044739458548023857041598076077705546446681621415708815235586044649722674078663844374452979191233992010704953726778403196249453132659497976055932252938719138369917240278652421964088626362294837780908076984433452935320269199377263383767959085208786431612411790112698497233848269498350985716536781103542941164354088271637082998784875011749929131584253076594508616682300689571896813971919218833177081784213868070357054933617207344580088830621562865071140533251896110105538047076088337686109486931986234879541498279008952493544795991880671325607484557725546212050174518661179795209914155671519360516654930701303015478037313421228289812404846007468758544721069356639358940668262626682294489093899366475732696026021676626104040907149232857765713100721871112557477438090299619272768447572308908148317658934793737452442570128190082132075383302149160863210874585550197384226424530719529564964838067166368006680933778867985514434673301330732583023023272144747288282010089043561006515748706087722918984431957559700310130132517630757946130523300003308683540049932120943647806043598209640173312787149575364824310143012463004048524145377638742772256520422853045819000736302727385269314448279257058305082850633208132310788425691262602398029045780155151218547076990448411258371453053147701498487653384952194065985616039011000396420134133456738314363153446530718163540528171230297091591407157565995278625962171803552612477930988857423759682762920071098944560450644694328652080231975800087246847802039616424207834884429239389791142009053311079252165208713952258762630190916087678695185152824151003179534072791290310544958135296325121125716288062226720199336350182024246716094258892300606373928256517199368846711871716229769343855747888735663789171186813285558783231303740164049358802505713949598732212175870476908207292584023758969732689420553200844895564924366256653910388562667663179857284390848299741194004594621232361813989536268718612015885210255388881268253843556492681543108531209694503793645015671441193091947941092358773461206623107565269302849097094491725761508596344818189106419679222855579255342686422049760448579160888846534172936447459433550257211273502644088647069717564011359628675302776693989061579830311316417915258452080268985345318815913569829461453685656518389624845043456555803070167517767022675807794212404841473702047813630049930400913984426131759872380636573242159156853804695854266674907230009313941031909441227992595868844761242213360294014598882487749217347589883852803346112291860394740611826797476087112892722207049640079711188683453068957896177995208644939106986595832830511348295095557054244405327956625038658326627360080803217976055989093898727597228330267768123480943543023182424025562539042407492144798176644721648131416896096470629116168179116653212021058069092395440937157809158457274772787943945414973349228628948317506265121352864509451051548416559138683704108102861866677603390120367993215046627858626924243426380449727332950718191365070869922175118838032038755671876888040298388093548090430662580176717600197882026399911826105474694664311053160824857631827132579775493443060940985228738397548163738127394383841416392892688323487248285020307226991393134688731120853822493010414005374548466559963188491271252101858505606264274573568854673592695041797787212085737922515737038539133470910109894331191881176120513672202192270964603613108455212516663842751535143527699303204771803253656471191864502570338430575072996638642774817003757583576969138961092888873124146798181817602120237842902902740825697275450014052061603546979678896806393240035558290739573017266761399038168722617591516108426484005019682946100598546289850446115988253559692582724003054296039557534566197895736709989023539272667770746363275018952859860785342912064901297724156701336771338219879287536503158227699269849467060301198617324521655258515156046788924302823919777484609826991810054757018148311034388880598935083548396154388290586514786861022392612119784160846264998177382060597241778800675133352385546494792093903074715640638951225721427886703848850309955587405045760293868851176192835254697788002868478924205105518496818953915289373856760810058057632856405150578347976962938530151780493045002697005286653059266125479885961768156742032378887944272029004637094948409053911845596590525897121128263058510208731986143437240694887045274465795357057055121952882886295419905760591564742824403217257149241086290526837071685161196905341054605570581504698536013118736045627851627283624210283569601533684354571337132069964896922259335540656179140758370515521209691685455993215862430495737893807755954625179744439104793654266628557911127840099092270890751306666359545134154355616429347707139447010864261984103447345012845451510696323230563112366737183735969534677585184012623257104853386693201616355017468229716921639341326286145289361489786857444277613657708279329090702184247055331543277428182663014812053606734745286220085793513919264971807086749055832771352022152937728621831334305232308327738469104818888639536067426850678873845684269885310712591666046938675153769547476583532680113071436075727311772445135540768897199169326663377982429771344925943590411566590818343015809784318334324645305959922732114805510039610192630277668147728129157017755430206337401388916156677421089194087656877603411829766653919758143009817201304204998808889355732509049074023528593459907419869819848350376771828495770717958966368624307710658999311341195745237124015381579697425820912213061214847199839472151220514247828905891912084772351250252888155468132828856356799654183513370655165614151939908432942634323583432613467307456757485647784541464238650364624331525427488093236659234861190288426301144848502286015752570616019092578516488843400991966961803619232788846982283400904066421341600134979448752668411263073532120036523535069769689791291263934948333313402260469530568385832309455771193240877185763105468250596766433815830037040866534716368805769273025804897018762447211892323622467564025052271797197399959776381818155687420513998319368436042747529715964808988085030429964506125847813139199403226468884813853545299658590554536710523684701658645741617567668859914497237676831835471537088547428337837460839495961487443195906253113106926330308303517939092267273181929945060670256675362474177009544510484490966730499492082541422559560915720232398047754409658919055694599956677220976248041781429012947650677452602101481387122756185611006269241128930471049501119228630974488235842175317341603750238892212020689996247908099666010394445830709003444060143584532532863656995152700924773831334965475691270088317410172660135276126905985173729993307260326522693537534316600888514114519884414929942242238735139610643773171822418439645785434701919748008698491285398195298885858855572276288978265938122344374928796514649507452665542733319446351106379579994186349915191155565302737586182691981228614860332410577054810022398962752693811085256144432998039225853157552892190783240659223589315023906609521440866887572316017564210511403813703252996589147473494370133235584544780735260713176688474825489843155481642675475802164701831724604573011052731755517103098651537659945841562167257194115651892617493501054155791373385918773460625546354331647007186015570165647176833194387423039667530013350881337236372381632667573422641676784377915735210852982917041214786954153401722026148411103624732727427896026856941477590857423754930073758938078107857796753715296209283073443337569419992168386694235896409338601706553947752045215978251993184684569319850077833075824463623692235162967318283225256888347609558131229254570599703230637854712666836114455294714351545704883039683710952158097286973160088975964858218126529639098670630386412048387728505150791812133585763987421751174941986527351176847510412308877942951402716062685863607257609437076646828344330834847543086912076183139965338993005783387023591090845265977867788522888952301875238448577030122510246130090851066385849675968601928630034364106341649770170572110993860324941646933599821193939428750032740271534546356166908346907650525294059178139317173358117316165690891405804851104846012021957040981493805167251632014793120335690485052758171143684654722672418004627275682252497557368449580792898413186819244007093121531100535305337406773480593689006066717319990258947707101391244159820447601675610734989841483666023547433824919951938984473685799820687198739752189028576651002602508543894055931818761763147604493199684941659272449144154194673397045960127276900411301641891797571655145792513085187163967391982376296131505549731654915322177126654201426453572189625788870151126792439410381413277935014721408054651070278417652747972646176872803864781193163606310902583766590936997273628863613492914391343830770753106465588741734810106802838058697442539075387782753569329777523002589544591880502889291349743485967401389454958944882333100511389790746470765649948677259623010000801566519802008988971012444827906557732481846747210220282546811302165921082440736073954375151715721520366907882177506735789634061682535808040723990962409766780182921739765098688129271732972739814575540201978490050118740458293431932392440255464689220209105615812795038737376465516944506802681650595025962420826747304090481233802378537717463326698546313938115653088087727328340768089209700368447350701704264456775960723235624550329679348905578700832535545068504418985943028862210512037998469149929135011984869642057807615066491473067178213457584890385998411427220466761516215649907370989819219032358672673084686157949523718847844700165095175065010749773961975763592169943172940635538227923414975605364476064932581283132179690947818766526371015370982890557671905653886198727357511593413876017849427299446613132562844230567400772450549606537830362963841791206645521976041868013612795151511897541209040407641556580783592188685809349224640403871430017713545384706558078298050750774776287075146210622503017627242966531027638375389275826024789540523808117916926156727845651254888511643444568197896872581732604788850258112604349307697759557581607685754124367012318045950444523544719587925854527813781451705265662837345176843546331700640346017771193674664152019796271779359684304877668655231617458520202757197268495045298893559295983513092764991258854557864605985503412955748066414223842498952496820458907548327079835999061281891890888116989567230164506472748176362721085201033744399255182702541106646690076594996363581670273679678480900359051895874836281373675692074338102970458068596510184424200582050695868253193523377031610071408505715017635913007786285124448143001546311945690060149276357109894410991362314754123356396836718947527096579682399117677440167924225828331516292004502394821026637067943811535283893783075993332162896401804604223211260519154839933911535085555149234005994633152624495995013150422983132331158230242956128300233381086503719358816813241455548845217873224924792567557999351754733961177224348474012150316177139301883863231179737959024884149121850900102952552289404489280608317530331538624928065596791773031156593863836000608421294294742399461539525859800964334589473948121367313176254479309288466677805028646853369549430416804299218417531073181379972719760770411289461821170449151118162442290436540360119263051024519818621683174011867637601591660489063856796367657684431931309005755586338545990978614272398586433634357364433160646541851055760898669465923982816603087127449951880687573922742422001966083078190059513243236772340367006007430111183310749644757749856462498459922520144956767449472738916454498096335966392082512152143980659041403937867953870790034944654232006230985678225332378607370941554337697157915092701738296056575831963897467231071120866644632534404227951558516261710497042704081219834947681514665244256077053060913124056086458139866261475200505569446266302277655512827042807427896085617246446792029301666001430331110752151255897415057368835494623031842175485078331089731211733271868856690455393934175064586294617108673291991328996849176983582954056978795346500944551280867799103115104680817760967885562406271763483157961720900526444204091902113846055891803819618414958491206327529632140845743756435090210515535301229653055675162543148173537256783768433964218946281148830220426176259010397028976580413076359588910035215044327038878959440605193872825472117516457708254577505464271129561403573012810664023219743653352873116958626356973792629086376930700962460078751444498759699643976385684670355295564749531639638003992112409077503232511877901349788502257039731711279138473398844419756791375870635369852883793359455195469838502023698968237132417875865297982433409750475347582492566196667200977784570502197966378860702425549445942761686632063402075569037957250417058271884260285875975715271773774631828122397068457230179806306845013444985013247345685477315479432132045341576168805890354170180954607835852379227147453774755295722565857755495370022751613651362533541076886537173099009555271214425736805706516839138662774157729131480068885018158202319523912001287532030444516037284496569618833396000919407447686195937616546111932586638988201788135439404412743084003104134750578197262640595488648456411293832746417025401118221505919556447025249714752237381009930883067481401232790758366274713995236735775842268558863644630639039959939417625957444711647825909342936117481515898742641083168548954176558146264481320545073017313458291553229782527857050177032439512593483726188890171759726039400941606109421751454208265465881263077232935954298887406820744994289489782538102496600242390809820528061762441818269059477137462538818811348582460808950075971784119966445337999827033293556136643891154783650017284486749000584201297634692281247193086663159486054870289734061105421022126200895712637740779193668431095836649027952625603210108045794701894585200761727312527998931989212006747462685803488996144079762845890554362745834198313079954254883640960272200104498208206164950934918603133153094280018024323100765953832529456151908433189664214133901944890491542168855775819188468691476006178928935996030197672150602410547160243318361326442449288104819094378095589263784928790615731700426166941007020321035092012914937841383369971688158538622725111079921828536866393992743526237598710103096699592578541966043400336140998212465160518508916098520210716414281691177651975021348613561242738811900284387469241875471180008718854954150578027838209198938960814989160458161743107775193377264047171926508498847270460163819941184115520572272223592948310351768485534819748324614906789887335564764258623517121394597832457734780602084826742084754039868691773582170460706377022752300046757671662324060850236165636550877735571929050049786299834496360806226230605380689205343177704864272173937021336892532759016508222015730415826302715983050416715709916010997692867467126575935670571731544206059033227345017065881769418565996482544311664762320222006130653448752246432076771417222513171234674785850637649632908511780179597320697995226706920945037875165365475002073318032880154859873401179875420193208394586657687371553955785713485708545305322860038282026695191074336551140628380005372489786223198515278734308554017047771279791298104793469793364703431065352984490449159353464003404149700641771762595097296708333178402140087591407746569885253989538827959302217936808225615233133635173101036355880048624461827094728304792995205273971526475373592148421891456036512994554942131186189118492015376728699057502623952417896555630995759898203838808666537854974578313908131270483568278232371568032846431057166731754712082052917946634214723266008593059103835761599673683104403734928135723004212258070406974047855225358687438282426096513774971986536290182409227754446601402230735409193490589087141094848973205153457496303091592921200107897360288490467185858588391172582668347926066646606221660855984907168669662377802170528939528575030914287322461787545769793072159395205825499091683138172860760602711992448210046479045164494232165090704766487275094295043543799724341271396247960749185896421290798204775201860512040166067840067110866523424883765068930752352846999390055188844669477002354543089691857364951336556843674007127620149332234774206297793764867114799929401805128033935436639906362567954845038207074677074671887307051473460686045170792313116168212898505756114513072793814549910235560905776735264026348535648809939407529559051763173330320018272837199881418060736013153906536434827065112848981244654757254984070686196106117539400100577508191977398731364846750269122220102497197816161327479384159779263493938700675336172864919577229572803061181621166660333490697729184300646848007132997759705236783073203912011052624321063647229094238180421151406788401434733750293158460053577631436593117011189269527712999355007345444396443757781769780276503132897418425073509998377775534833181897369819165671232777449306761260499004046351716438799918366686519963811820762426679758106816489027711022064346855336156704598467001735928908453531308855516130143498690689542243510160053304937637302951074943911342234695731183170168586133502309715013779831509777163724761993464423082652673505602119717842500432917738262602124454233928478206694121603963857871238980891422929879236968746647524259747953933967113150386816757754249497728704372255610606088489491678058397164718598273953313171309606403244490353700200118906839562006573750456276126780056397377682016168255032145175724130098693618786066951013561192031653931946776251013841856309622165154904548206909115661898526564494164313299749721074820493313310341107570700086127922856478649463370277625796774156357327334101085227506874340112508556275383253150389156034862423604885150877686831874026968162479808590975595993010987305043822503135443421812064670874095448700482863712867941297109261155808408217273420347583157374257920545648244586852017677369548927404441259708428425837069441062169591921750249561935889652376724936055840259130626276161112193165875542772771340382430728865737475795750874691033484710528885877400714350899093326211036862456748156030271616022496650725704215029054528362530866130444306882335244949035724338020214357229418394929431222747277677557715549056102159082646474809556852198620893611498521187876369219192733557379458586941763119585983842056084721298413844872451528976496285781530686295674763479995442024719362201754266177533369662621193289604301447527853565422894225481901432507033448977202874508141938726816447769050586568980329598603693655823323341018027778784075857141427482943477086565168500794391953265880432458999134138033067802224534080875289290845264361754900179515017257991058083830658181226135026910795849854739598899960094923598483656289082759199833988926112779297342283175469621698940401808911214872674726477204376175495924193753099334486537921449682627910248325881792351290491055302394687795665299951608073627156455132625188281526161990932726264429610529511283826532576718918049628874699275998656920264531208479281010095804565759017950395393119369064043369266884500151435066559710191073529882094121249709046882839118215996835400016164328091115797187888912250471121995632386542969078915141410382100589929810856571880879472861681709842921228438274049422421517592629546906899039869725156294323664229860740382214498338076459117465363696389314989923605558233365354900186183126938364906868736434599400857645177395483179965478082425941925032907019911734046428547626958595955494069302449797403084988800894189945013751040586999921210987105212740977156633958451009694775123183661218736430593638986655667822460224527132166936532455124336934252695796196825012856721217661776417346699162472286618709090415443271283418950431922916184089046174160749221237218981514411588039214796649491440813713641434377330965198102842859797931916928074885655625471833519308257982624747369087725016583058151101023984275587637428114782114828657968137416285130036710386155965208221557370789103623710676167644463371405928261081869144076830009904713246637493463846408385413977325209902066543519094315413404218842472066668949739954259383007522521865265704810939911526226618416861846866063633171747260884975937477095424126320649374427931120681095936746489182676772107916102089569919146687150395640937834343192170239287284925518712282146157957699711855610093679445122766038342030426612530210458857055643570603158346669269215837885020730542917947881336049429750241355607635885754360285771510872723015423853271523703945674557675895953645898257206967259364560559654996661676285001551386365404062853099523040331733177094298982473859142930720329729044090098578947147588037766349573427791568502334618885396804431978191596190840757013574859641114140616327329844991087122671157933487853190135527813829165019343594697031708199294166181202963276735962076028465827926779857073262539855936628138655667680344102996665346844711353523978358564609708438610472430488870077279595534939857227695314176637669634553666713904244527548754915820239231843436467605966627928626034644422443262178279190179477650889785877612626858877013411591808585294191307622262221908735383168124876258123504982768651066924565486964439132086742509272655513718052578343420609722230507851910585127448233125860217375605281438281314507520333903184919156842655551919712577841378856392445399554242521676885267960928525801009112325103109863827566410223529125624581842112428558203925324268087428385661211749033086554095898837378052735505410482375990504408171682244063016358574175810781577556588621470191743497387436837198606786392492446446147128575005908646669891704260838687421935328377231904627293530912687943530311323133721792417018361434744512833287881347585571378352276709048757345930949156179149651133500416462050283742701081769941472628146479748050384358410200543187192453262562086369502814739118427416715769959612109751766187325871557000132547683251488573048343371288535589286386626100770970801787030544491822774771787895901152369043711908320359568960056141644407217815452745551612880347419508024316200169009743590320351863677992318549383450367047501247975484243436236814478735249496204045268252915116564345156980630987361401248384388884340720266788683436014441054270942322111648154059436421399383444770260365087814647513883121352942975433217526227359570698192698712681681748145478619030758956772588563181808492209444535838580606399115294201702982451454330968498316300760910203409735954179836426561377900145498619975862748335409251323213212277502584977966314588009701844901322614104692613797473728227483030446671479127524653923456509778276284888339856091846248410911083261076791579016958445727487454202179983412259073832209026437857060269588062200904567756925011996085120954479898442897993008256313792060062545571655863725271409805446003906073962741028674672016907835581100092229352040547414402052975514653892011347892892406860539464544823520952771131111055156131444167222450474615941521093866946867523648460581125498289043001963297668284083946647770543200817698388960764430411418173261312476034439417362656727644666672754003803484397811245997232577256397035478678237521900076584937880951867899167841807912112112512830089174806319436713822559691086886473572869167960595160746012358309120153741819901563256303252054510843336739834711716468386610233728487821119100781410620486357363275818605225058800073200199256589790383679076482715577622060779403525870925871234221157708527908731036918173659654181102891585892755614171849983535468781305941948017737119471957806698262955455905569409208175571032887383671273347405483265108631247471455186552138033692490058691389748454891068712374358190669926167906797326869367864765777175674699860342983044755615627804479367763174978506122709797125010567941008045933749773792045392033421531448341360940583029190908110535285636969558431438438904943408948184387029275089201219896574322477025771823444717388609925842128947548894474176851758095840006569156685583195749013012833144117017057774923821567871757949082336647510170272576384421056505462832622962295475576829740302907144927311678038500672988900708232244637411623614759656860576166623443173684809406788656717815837442575968983864815773597572753346503234038298939800537503878603746672099885740984811135788364932214926241750402086516093174973210821384484997558623822005085571324455445948990929191270237952073110827487071894032967020361212957445199397673786467058270488778742106158990813111369294696266516869816510147991583206706864665770206325422204817039223606774081141550888894531420679811967146183594887490049157873415319302516057285407000292159134115057344658131999680013366036351633165322596190437712601064973009076859131833459265916533371822238675828686072387753645848802616896587018785536112113323252718470979097325816966126410539148506581625816673772813592143420148506331281435068340843323433177946335939515603461058526198164535780547914152059107576096095548726649900829128142544268021983018449903801533034424440601001031682828344149918515496023553063000732468093540718511810455904058838930964857450058200956384060596366036094801831010018910401781601143181271053509299534961590790700245817072731296990959986318847361052233114878973273931705804364258555876026173091467382294369463925636515194933166424046366029917222336633820724274830024059952131861142280179753524873482178917369274714523153107166157367759683622940495672387114853005908358460694418232296668463941465422680415181802510402981457622938022747061022419492354077985346276564460732832408332119198851333324541238285212049748335696102162460816459891826883458693691448511126937652302947766990401806941859704853409264534261092441566316503199626264112101669449219162914597660488066008166664379810134046772005255083042999106129806866409769933045222214181663968870467761631698597688873585272540918401892794847786350112098510921258543753627248024870378932605879083840055108760831884636632083168951465845035003932410073684281402346478615034072969559025004016346308736496518739445780142813871163276154957183477843053071807735301621892192423510161220425633356143392053042151886253530649113118751650923025887545354605896833754245519852980487247423940336700326436915330065591675502173292249655584487811956490979921703518358918127094739148706113656279442047935802896759163308684170486686563685487542605855704794127980972495243692073403204880451375339816935005459835274077680925497514437642207649023045658670510292721635564013710118639079050411155608139906563567812663270555622355068890649471448327983844839998706298390662584461707282258718551008275371989893777264903719587305969315517373010869455156191874227179026803053790175662169562524859287956225198246786544589889188869282310325304766011134799032760739281556077123193834196885690483987016271897416891734098883212607055509848824607208750653531405402879304793102254020604359078774462442799805493161688946175302349540365284649341262686842757031880553005666137194599409064396583245916466373275240217113040134347501796688760200851372447359836476284270421760178896270669332314350377931769957851407609985723566414821460413987482605662058063154697239722932037088837846352588103664744427075694824529650831608765280086314612392172047625324023453003909898321915371232548240860083955780655268269598121271981461261419327880750922892358872014698434291726556738581163713769864934016551233794359935729047050902197909088914648918374217154729611561578032612425786629837079173201315646650916018657768200109668425588377710815680635853163994990048872907272290353461854446600617947830541211197913256511976067412784339669160905093684698141123923946785192135136640911635380175181853249727904285060596488594624083491210311511857925228230746526852647714867835629322167575442011549657890919638114468871007112360190846286090020312771414844112508109958455977414354508543139454060716444135081823678017465975857943831158342010808373147267998489769537817436082846465350338636838642147993443824678887630528422560636130942021515652577230584485547614052863282092012289507114888440031214195544013866580832108371591159372559943630013296657007870016375582385743705913424382188938491722398893722329315655050046003131486369738906262766013564581042955472875974637192262942733540947166559586946557268251833729762620505495460995221760652074792975978802645870240911907112560638339539489290518712393751737722473810917620204538073228853800686347958800684055954502343385603761459765479987326617452063774320957549147955657083073292716867077957874518853439847968398804693859035307937134157571176932681448430843475177675739238957706121012012398043106426486987961972653978414549785318110043858896906614400216210215202624891140130306949737026671754621043319899357247135159738871916781420608252530062109301546073183541202921828589470080559017048291672882134659554941081914142941950216301072402563223914240360728612182781266342351413685998093785998853720941294346215668714895021624055861928267714092249242110876996526926844682401200668012386248060883128948098244669867406204300715906928907821862318931356481045891387872081788335586761909418552298087957109620625701461948895805894933603273811637522513751283415379294019909206660380479227083469854236917023244901548866872711911465022055392672210901330388931193253572844223950069677803329872962103590354617030670947037439694794981605324194694982368183030341459655924477451293690859920614889925349891674391998397542258451315162740209427333581977789612860042242788748285331047627491071944620528705718214649111457961043543707735546409492087757061458959455368093763746575106944747537905862469135850279249872337273526362261020797377807498922525362075567288101103582306094215714583981506662697619182429918870986337958060894878684718892881710272440651695102170576046509102408638789163891749017040730603360796018306174579155255816853424995390197979892346086550325107032398073254564636572467966936113059576232440738712802013506943685773970325962385184523487711703341722052258206807483922136234731223003652726888180861737339338064623746825926363995645494718795737011746089289998722896312140582028582493277376053158071344223580801662122741817113519242729224959839660528166666872857707235392886896144955655481570945018879314725949965416975042443800122379393318905173984015504643411978982300426009220459976014271344706463825258193716325577982394253571842267363953474133622736836702114839595656751198842428260377455803445411391990329717469567743259879569432361039132916411275515146410857528762797725272456343787744070515709652735540437844207415340389402808292713589867343128166389196474350793145544857617993462471152585477159831936261939033097237014503808917667131462642400234319783627785161616179253773877377108142196985121731755201991938418289400109430763210968599141036344087110507497208910125257003559354536556349512276363135498280023793492507844394068709136626166900981597355301134753569548077575205733404548266140451761533838226258413055638798016119006171902751949284492365659846144973235345638500848266690184904783706090919727840202911678118878289668210434426186742966280386055553993056236987921485296200526835379826787817921294419884080616665228683649222299060233646669361746876436989155920789737295538010162509056294747059555336627960916183895155983231873841381890922481189205837877840148396535806105393709632009541617815940684394072332512123600752012091619236433646299381339744430139761882085281585393763947139941243784737948896853346468422617562942286012285443017769694221052388250875771873796008262325872834646957195813882272336024144830500926656985898137590911530331569971857459557767501704353107053451572767398703171437913579448491676122990001504677652284669276328970987339753263628881408867078387106937570734168353168741788112050586074745960493746699921810072832717410777938049610722536990376636405467121606619956430141741586961324222673931095710657799790985023127442351430543397021095167825662975697834902031212949711186853090655343793236832928455976312347827859637328796618008873493830938605260719142686777235219063193639009471315486874579540531672421490556255393641898862853949381756131876121659515134494180885738479558063834988612754114436256298768669650605234197206954567181492930159464692402795777354430839374688500230555400345952436747246578974719244734956163770557947572826715305829284231748325080438632462442975304280133119422559611418073580141743714603704067237658555232470904162680229211146163833074085900048537418110193119346736876567790317545406801364244236837266963094627977794389444560200079173463829066540810883134865419027959978728843702697814803216784385906810001540824898530893022956856045905300453380732267274691801454476959292454659620016718519646010315249115351143175275148311876423811482231887717989530292959977381749514007364369296742104132270199617038761744707642850969470492121873430264382705868426510584364062126617426637068319467204480886727984396393063219183046745181606520328566814186576172969192357781086199318375758594820099220064923823191147602808707551318589784625212549148849524911763102513471901963598771750975247715263772752389359426117176049717582865716136255576227200100301276238948607821127667914765841377201997140652190695550802808063641045635879096284165198633214254640713992078102495461975031614600108970448329855165518457934215227149606065788418246627018915462237844572116058549293790529027856818784652307418459562267261624384751320248176733588778810229459694273705972282061257728549512039695969077197176100696010379774119817398698975920533472358798357008575497646980084044759032688225855761142259044312049578326360842543661311524371465557422393046386156813625333426712269089139010816927652741944841490314411287120618895195239391314858882567986796403875440445078547669866887587672068276465554286033494067461612356732425966950744992826006735182246481196399219186074058630728593440293748161540132280064426990876890747360065475134029255644320025715732436848077677432976580386614742835844660346956308627541704016470255655708001772459394582662130883996770870692032394913645626482970153364144908443104352259787204310170605714463539999357842600970561629897712565724073394057847507704109907344085574793330147290679253227160487318235719157617586683313845295280437304687835700226615716473038613745341883717118700187279591117821490029194209206046042780628200380387998463594489931624307563938117841741018413477899987080096692532014613991570717828247874736305892159618330399126780358865365084902619823303083938413160057846079504065763371259524042283492577125576539721818415069753190045253591452127663938460659957672024614244730351174305527620727515185251377736017143756761350110666120456262460690722986032009149822582072653942568023473860780804973652369997168302656708392235674333152059768730769572930354063540281917012797046273589570745725739698239711774334214778887211103733423589334503545591314077943189298296888100775135749493865994127490777017582933926671312155114751167760396169219440987364975248824247086489404246011445318114463377646539246605610265080802363373729000711088720655621231693425043487936017034264346675550415530108758048644081810568963485099281165975644599571119298249256219899403233659394882999919515810524314547107043092347204555609575652103974188897173149570280168247670528030151565429061423240220475805425326837264869350228524090020394111848296482831569826977234262235500573509770745192918526965530766555617034962290294548997005204136374127892402767713136926245258344504800315933590317190315269046843970115117204734478327520096682114668982756086058612961307849085320381778120143494326666156240564161377800378111538959458216095235878264089344493903936499722841160943024448961806535416519773033870242349178607800537256790442990787370320778666726850856540835951587052370578561590972688850045216163626937058099532369637066560202800185851956012070882831127628968399627346532830935219960189130861930590123553528467790549098859252212501078399570500617093028802294807899914717474896484472611408686320500158527383600421052171063763936610410768681798023116382711144260329576410451582903102397803460413583160267501875377909593460318983569218350498754320074086241479777875384072611449170068430912542795801867622362700539639449726775064564840962269611516184226549784052398514505764567297122330187432220629439780957792713737490882507561446993359446929443440955837571057757416232095285602136924724637235708984538341994627625888511220999550292315286927689882797097675920881962672740987153147086227510778284120740276305820551104915446713075309021843767794916792972093734313996509017740351525942704205610811482437713157763244422031914518816674701565800655633912460964214453449730874393275420981068366523116145636855589975523358874958815302627425834873296270040051876768975990099496858531325202674717003057016341824724863535098848450913610496942594624552864947889343477449749895856557567416736985444334252655050027625849953677112594832462850811551727071795283911032409052882004910325331873831624597933490698253361100414381910288429008943541010158690196142094564509659823176867810946513178585206308456339388376558165459908099039476402800926593038091823840018314198092292992870302605254318784935885276197039341658050935134946420244460537234104023057373163330113372416093704186960065978840675062110249095214421533546011455204694634580323798154891549480952928818184797309353996209702680282265424894083491533478963300947893176666520013091598315677044942722380760099556400860853450599940378537226145075631112999131832140628853417445139256828181710655900276181984366519518471386699097050874874251019114749857101527800658402038976566393809701299698590538285611954740409353443953384741772534365169162802818902057406024137466701176867094053015847257298953675770888666635226576418053791645890848742500006333322039640652932202868526820908645286184284712985545974635341787726880899984956693940129292876986708319031647281255697934161038325751309463136103919662867772173738662810407885899602652085178884382273218705322303122270533989039927584189866978606426091440880777300269878046588548040483281260059358194969820835348310647974502605604013400373623529690314182298961677208472378977227031292252866963189723847095813318123623959241646111706811274334194978054222613808184161286501469660323570348226805427792251626914702083171736806232329106147338142369865791610390055110681595265715575622493547128901639774670658723948929329235748349557405534301462197261817983458234717210965776305993828253811087342372517010115090266102502684576763584980150774448361168653199946492220679028634374217376398948088579858123146264332089993119698849251847714161461064150369058570933722228599645263941428183242805747575793917346543113943254396621846285797100536513335262237828902531176793093701932648705944487009787096179619077884006016451361332481366703099724663874743603245356153580817127768556612151071662919940453403795018581164048846254180828034923436146017803560377603118991738757342788749869530230581153820590314465902353357152906777013340742620655690915979355832378648565186710254222491923328043066557056589200377536379550023717179176039529918961582596628839941930518704709692913089359460951231208283097249400350270942416005696483069259666997591679514699624800581463053300258078960846517900808188469336331092093004417014466536837441273039536186480346025091057776421328971592021292130665073448240332076395015329160856162812181303549495661473427353653337290624894315588215688271547728146439045706101418141363367588049439124834699355047521023896660548000660080752091594558384781780425634722144590981880750266134433865001775551750220674670912602964856326350513738698202354303695808718688590902238989203099175849173571274783174156126314060965968328983620154196799248052184129498126950815126274727506193659865437181749626739164306763122798432056835523548665208354176313942607822745705543197938481823986055421108148219560518415355781510500744939474676559293222340151821889499154777694286336402629793891700790395752746489932899971705611508038915574701297574217579041162084503126241950263772823629354244628817238632293512406108171230043659318385190809968259177527639770783312013838053829729621033334855013827825001234236943052979465758495089737143486685808589374845173434881911805093363100745607357553959074615167853813915527948065547631129930614186877603472791298515818821141730960555268112297493298451161624081701767370115370694352142417602471499358635780768869210994372788014480855174256744829431442076717956671512417548329197964405510754045334854675841146660448379208577557101992860638201340715580926056700263499122899844733070321598427299176673786537405890762718077277734719321559900642318308997496231846251741483232256900633524955022105990240670599220303762887291575408666980888183865955880997134597579771998926257816255721872195107607617260638471469733663322406021541526205188447487421498383183795762790111837927184249529148616498194952473384944406644534719782778288875041800034861879316093286886863448557977282481892149411622127065098040632722877455192256063478647572521295465542585736614573411528322138564944953361473219278474994666971412062636864693045513551785210121885206843499666020326854785556459132582060623478848336795998393888561401178263440424701125694132919272173945107492123396073744094888063116649999801759531139665251189917928577497694312060513616847668677264023914204587271988323003525656218204055851259013531360594990412138143479740372174668679085261616320217647994178562414246780140666826898697546520817937596668767376919917988784327207579604629900603778434441587079916339117583909466251817191649545300474703964954043718123481373094762463915055797294779755131603435032348557200551412798604387814585067535550717084242983033578105054742846909677579998087011717990881023436072049417822616636482333786212363705060879036476046979766167766369355593566285939710845869416750993079998189313900648689223679325546186075528711322079443788848978569243213831412191038886363799832000700321831901266430973361746284598748380922306584943950307725809233840113135062330284633612512164969909763816640824839789051550537477838526237849819397971061795074240780044670663105477605742017309450802874422604020656187246670507945700260367296164094381556339086110833155785079765792238779155578231526988690315849629087344989303989934220690668900858519580440591620589648978440569836307799799062633028715858400859979235021097967147314092344551142939578269373980885162262289880161221461643317822105998815793194775879890568046854409316145190308916126293174175026415674899055570780099458118784820348623606018516722764074627854251323297047616579623860749037609486193752020426120227535914261591932910868045510510610832381951710786489449392782806579150272102954884872397506877418986715627084662452961656684556813653084379290006950996886049504304449355088860410895769048680627071460493155244453852148032233602200611977459648354271381362378629170920284008913862004427478541810627419935425776335186039715738634553192380785547347404909539970691909151692589557698359928894074885273141050771405931895775221360649387829835981343875143142956956448294247247985614600688667168374887029788793604799016988581406728768914262003914013228627248340051037644986392269453791974212058842463196398566961315010176446267814794063975285394366840012046202653529121832218304686621365891231469579159936014842590318220082851432327754063589402330873133289313427274195660008717072245086392523398314039975882668801402759713821699836805368224435321257065121654302380486235860878424153583995710361906057693080109620470889640973056431095147587136549240194883902589336144801988456814581559097163618954200378215434539523281854008821023026627912885902691877217222547770810029205454427517893622777334562817542957406956345811504035115551694538305513768753181360440940004695392525052844685143378761427663348914884475577074286789471611778305642782641927646565944483428103246212230075478667306464811871852669756321851440528349726065365564092454033538752688553009176423321910070618227548028606883348091256373047363992036400910473746199131184514050580140817629443417661044567942766779371384504006720443310910812760400587513543712381269817174920477984534593053841597945601948024154302587007231208998419408321263853349413854070505593763620815140856728601553197266205992936989343605433761631610120976862615269609646361855146843055897234292002105755430903508745302986543189378708818469200745277258100938133459783969765520171993784842559801799806808190650794631800098993407444688958314656781069797074415224783484966299142387101670162203958282824628321148259351190558867253487864789519227382651288250771078748666250340556995513412300583425528988491357405521938723233556490442658333315109077808651932221527896410036172108463201645525976090050041784837964276951713337429618141299542979514279966840192075498936692940771532075457934498118510817132334848904805657954805397024302734246335860010189613758754331240394361715471870240004714682693686275749857316370891284137404878873462087171322807301331332367734303975325245423826971340637252615188660659818092228195000878519790284836693823007566537865373334023738010969425287340610225864853044903328721414053956509179071961298394843514481873595415187032600695235156700029458381392042662226599902598748924165301641096409009520478982545952913484252706259176394838256113098298483605735935156663576690045666600756806342904274549045035212704819430904042403733867657746211821119310749369231852212776944568945021702832449008429600023381647575351504680076198422285557849744407084391765803963620294911776190242763595718232017074573820854737224446916816412376014347502103045948272740600714830343565369912546540652623534095301604189090044500356517393355763185528166644436803855994384170321013659032530508389388929766719386803309031855792504470927518081106597329916470380307636884057501159718586745484074147836959430701140707220927810370897952519765744559550216948190684770638911446040141306569447188659792304190789411096722860200301427195437314063937460161248030045872545987120176103591322941533563025658640501342889319339947657526311777642291147490314049628030156476788882098006283133157574055740450241967557585067837158611498660307043466926926666089953618634063588374363545694847179212878559115720268720481147848010685398225531330943396292422202981696961918844654230046771485989861755503200564852922038958392254621938143396515638157258763734923149940716513076384394099369440284626631134463024375524267514372989955399776304412355172889170493792582207608566429969628380319470215229779893855791524855673980210402590608861327274481747824815718302167359612988713895147157138316635216749149089716209435243254550856150415680060815370923469354059990521727399590653074873297236612164282065022094674845157625902919566727333931814004946956326612323728872342296582066651773516859579379539608248949125858386340334070839045992266324236733403717103206766345667563847892778253747287915613886429408931089902990099781128761482691056005294577553989998823063069231541114469504766163471008328385099015405778923907880161097919877420398317829183220892289810365435370821495679961810763183874432745308315634467095510667691168624294393553848613599685403485445926521368946484568909718070646176889741155544354686485989504362997287880818162138757936968391019251274828539343994703039326868547048861150039133957660979159997426847704814616361220605042968919370262958191840848595153465287846823203353178184223543323234438209065465159323765495249741994122063870712912355254212753465145423007177500324081708762083095920943526323935095501502256066031267675440168512886490769231279291498374723665367214872847478911762510353769170550108506037202802983424744729425407293419492537569749140817199459860836870049519462194859317775077110393428389537781793622940217874704675717684659921330969762036452816731358807841614019840704030984527485453531316958985226211255684824280796027502100651609910875457316148719490872556350544370511483276989060138877390777539189077196200094853275463096344561578048056683002522513020577966543794798294820165439367834999739299066370409669516122941190311920808592924093880597187066847363113579176043349216558984995874117245550758736487408163050776109159112902496610012250472969553921433557497730849083518416969950542990875794672451703549375579864455526461151609473208603840579500205340641162781055415180875999096748913798191517405834139516815632464080817616325609341976510364575471270302328074696574902067913107177184753560416401545199987643597759523203166665781109244463184647427386889118281720630152429041924453165497746662932326134512309782224957002082714398674027106266390460388245686676195570640675462821203562963843718239982019789434462162884767575301556006052053716540484993081045216597680726514250914822897246471312986616496065759085278061431075150588149889011052496123739500655087979704712113681740300159546415189645319704768606092954720564770096746168747800391142713991365184940769787329501264911142328471469158977818592870695435154073188586097261472382093066340893378250247896702017105709925496210094985295529062392520542938434624767457470106608658687584021095216341459203017080057004122732891574872704798574937846036795382650603282601863436590853476679957699454495029454065212227975289354253162554819333608279841463982127437553788583004769301066244425511439251158149050519319688105003879387326397676554119177652925362389975815864683481566466281000105750081251725182246271987268735450286910493858460421856167571106528493215107846763424706525574115569435745177536838624749253637545189720817863160826121502344059427002963891710221040647407738587641673534967748153422471954238831375644858404736409969167269971609445979742140257496721597077747281058596185228806604080544550398035366493021968147054204749226462965840066635979559849158012505490417862532351179066193806914878822108026776444655876965372602536831964202970370946631156143592517661871816755161772232056691092065878440534582250500412769299550858897196077167877753048073131124264076499842994264704654331670642539970296347838257930810939281381428330606533949312520186292274314407628345479867418487211831346036500751237523788050579526572427745383919232837466755527201339804064658788380851513993701519681915423276005421304000003763146920564483221478806243219275065414593584872471115208304938530961834360971719718174578888879257188587609245059860291007119395409400766489082896855231044722385347908601321247814739957930806341943810053129497904030069017705836753531775372629619760429936316939867982677834190122962762432426935455670125357454158538445505848544709843121653639481895490598331117424570063432958147899655104797552706805728611819442278853688555947950453978890913463522910348229657819108119104655669347377891659766623991303723142595937199702248244390982826432806514727609790757489981686974370033230042680317519450132644614344718483317681601457924760263298168930618849052055354840641042964457736688293233977186194362631538689337490622388331672769209377450701489596385492558545178915294484981907278405575708044451607036525707290065884648574353796550929056434513057747814510435817733610750446739812788942900994498214809657141950603203962844109014877306288259922395332766012056509194866575327990558646458805604915435679745257382833224848776171813564790076389932602961102051057850588483902750010566367581572818908735316507315595058977955029636399651349478375955642916282975205607795434522531565467261020356648761861213759233517425846415141116561391820746304391569379218501775108492920396212837692367034498273805580978599913947001399115315294140503173133634991993747435732862314801803194012823847177727782806705505397934858903088077464707389192590347711042430640389486475490040688394667026193229536600883275020295646906930886718181548491859211460810923022899788091863830315605162975543984760427346165710161271507544851765930076503728629046409505738108826613005723729659922574053735253282385410165132234256238991856448886469385379344977323450465445012973290082465387977049810655335256525511770371577970467944169813619287469593197198155712368119324506136724655005493394622610102168778049204995939832615783957251116883609643497307826423095595731482798145180056579583608431474395051139272880486789056443867106655422851282532469409274178735694514132327103963064976569597791160358121143745498810838079825117808399071191393223037851100699201917655978556382940569929682780056574839805717465364907165025096793900097019509219604990922566992210668632344308550007826679915433948501917937820576084643724404264993762266643626639287292071848378833314760521288044612689339038455219684544696137871770542681622068389784438750754184509449785929872160458256637814358452614888338021935845102078309792280182489575706889449786760230656094411529500975693886559081847572941399062358181654072304078953982917280179001266600715158096871737808625901705361046035436116407818107163859385391588656654968985738064851626373288313139396726574774955273578796585161550070133784416022276090620386625241181697511491585411594276729601415406705018333943014876829214003255510122387864005406462995249616619661225471434260706407124461738432301005460544633033216696581854786601776506510266666272768659898405497214446606178771231715830761820185273595567403129800111456732375231394333709918115871115040809313264835176772100041739436094939647206819808620324538867636452642429236054886466200631328975549500093130018443504925209794204685956833907024095572242937013076301893548510173282081111132570430578093166527048553472792503732666128910382333432470235704347881578621834368933643634021187323920125983633795491134509226311121094094933153344738031864389015962977535445135390084714149265225387727907595572591215409007879176620820171701157512838509148894256560737277296794700083549358046115397618591726881192863875989939364364885653154495365472894220982368992402605268533761553253112540696298308125765330245617786221067906314788208309511936078538223008792046430825897479772317646770617452825488101226055393985458648453695772584591317447185200985412298453404010695503485537526556803128977970820748008533092920701611395533806840009348685300237706469263630871869688997008738386670095738044741498859823484897967533796225495114604783076415225214535374148684840404746802459682868553524229342328144337957409016609553060868041129159466117332957764208321382238589145724020457798528409637348940551953665202619467884394936453749816793143235066035708175874131148849389592151901785325343675242460299853120341379151098376668512008546761150326291165090897907307102693282181680297261556699733716261610598760497714825734543886641681799313167838980868896259721395004283020665431066225343845643483712486373224452317258340099259172999286193315102911431799267455059321553538995955700611971857830495533278002107304929869978685571058747721595365925312342797344746153740276540569473693027460005655086584508218314714491213336525858645514489213800217611531278874218254485421160946904033765773488514990307087188338299924158174447927204518409849230594673121812524995076286993665170042567386755072789468231278775173184628672387081560884040385209349765730442942928783789475957237885101635989339534881329058739767273945297388455455614619578218097428991384652691282316382597145698376028918486146752525850531179042024042526077497235717060023464936167942497140713020270716464798785294079243955874612308644518145533487390761644074264108244766919411910295622352740464362816584043482504740863646583400450334920024347233315637211862031521472657198648764511198839614690695003160447532966532939938924681216959425182232722654390348925473106714374260357359927469605679622014090762853689344577838429163621656754336876243408630046454660939829724903386445665079213664575567267197037466766108852430124093979487858644327982498880386482410789494505438302765665987497622688896709106527154330622093803450737965691454219366779947775310145196934474771706160744524900814052341752355527583282626868884743298489139655651564179471962164719873587439262207101108700714550392047458485297137102664177899260934771001398109860095042354985845087024469967039865581350309741233094133570330586163424454398839840840786957416905724642713375160473740429492901133956083920189983044648231663194963110452541442384041373481501109493236156645425840054852842188876765969890270479974565025023783956060290132389518556990911711951413334523853810044884938305943280284572627708288857413170605136556446828693178260997283915111337720646458615857386622640980035567832191906284750338949506092241859337998743058033092251894041714238844429345679649527635308128182850219721023312414411398722100210399392109818577442157668311444594447241133070144507121294846097744898900236066238019462013355020837268978296970092874126104828894737469063786432379353290112278217163183521736217900853448204138954251058366933539864550140938074781066360308947028522614135654811031398130629774103138829001149706750430634719979299640362094156944017556871777540643205568009539979955933876687445287811062351028688500823862640223658743463238864439241925315980505443792726639785546428707352494713724671124216760235121969592959833341891110268842384286876983048672764333006475677474627562961616799754819202246397224066621009208832735255691303127969891142711727575764261485644404823208530684692349720856339366134810567971778687160548035321560401837300778933399080135288057413930420729350605816201215286291608264689403699074401427662980097080164219354771157513009185654485655637265068590986558075566466371126809197495876444542555689931222927321843791189506393813297429264702524110134906381710356620979792561121783503551589445860003544362793258649941576619010792549699077904667124727189101671027959561005884792224917187504800020007931049245281527039580270953599768540649402616434797474794031881028210405696922018569315588354799026257343227012411294268542071353084857116992300516085972447492039622650581154778268073534663186745050738226874316234965423843879521407345211965667800993460499209126568496254470302885732817802425393926125376776738474769742829378503354869340704705801713888159208317175187337511856236009046311683332514305281141338570040531874916767722263024153716816063322379731179861006493160945054478978033806157689032944400435395951539606392859424020374897804218137725561198946482953656232305873110962988643307459916182400140117833184315628671548482128437951867877891985497728839484681490160754887151171078378834921840381826859340275656128472702992144025918866029904702092194727449868406338792287081455112615018995039871486621863194167053973447703995870269755738359414171467822570865274092997048406906279754911904514237717399480249899387033786423002988347010386973357139871402857316773735996528119569113465453395377484621498774788077899679350358138794331312325865688550188760710836252601603862502946573336003606794922000205471972202516930541047907208471337474318186207702152718505525415053054691302254497192632724021287188042546246924076109157707935485901519121821853264965870717058819385696776786517129203956724843761570618033821966108787426035104772618402796179730283985692502845224309889425186184258399856591712083604214303022756288732767488457933975621155398421814061507771216649473649025100124559801787972808739036260888582255612135362855507182472662119317005894988028303280003757696987900167626326279737889968411907576009072587496389926850976972039859326776944432049406764665937290634249141929927965878025118118374532166010551582841895936741280282997098016442494636831524194905554119504290646804542337145136023005010921411236429067993008791699885470610500895690902979890669799807286582856677400302837901211075267086097607303098195468679605105184034516183940159353253927951792546366171238224312798679017353120376492320427574549265431829914907108143637976197143026934589401519736521206186880467537491626500949686561936264772682713120998242760637439933824918610509352253934367679650971766123144485673489374058767031934911966459006443853674569070156383237118419424804679996416697410033365972503813381789363683755939762578966707026460196234751777228166769143053213489076747418521339815118528542622048091846390315835246821146627710699613808762421817592410890164463206444749836771245136113796717447420624576423871274433298466343985014448659407629157815092366230830804016981416101930520581067132296996564063087154619131819719239554317226063774101538275147337161026261512341719235298421926929895860817069836013417367688766385319359397161390742352279185855402190760369965957989268978699932486500953303699499580174668602609829425331403374186121261347650654813789734510493358683443171565788600644542331847489701409701675947020784362703274851874375829276908633628541475368719551295276360100444099130850958097481713176189197945221831987584356999891910700846001320237759888849797519693344221064479471069951840209638660529753136633297975206781415069481148772258705887612411498849433855619951258965070077996454707355484690088976249809635172303164710958863831487275626573673889641609739863397751865488162689957230995771361426192223600489860707424203333065045727119612457836046008781184142377036698871411215858537274851966412211923637363927467133759379645213369819974615636280178562699675502739256242280346145187826941527724387816287594710061346924473028005114065103146515307178927802152354364674917379666543739543587357700723663428761347108053081236296699773878692749740752419162974387531653792538849125837526875156250259805847962726133704839684067148041863215790301399183236036169445867040494769146121377985195119472697272272045403552542001853446845573692988629854176532648874095048760587251310942724972380806008336536916446940649392865731368250204253186767875396505813015604690106248950358566372268931865570600114823794904209775634204425249873436878643509580873575108391344723499091529455951921027775630710471123553948973353200780612609914631365107177228968607046249108503685252573119539795743373602137430150135370884066433743525439858142558961582442245752779348664838574741552739612306265865148731861029918188394601449324973117045793757844874729175634070576506794444904811909291606605355242708135649879242331764964184063718060584265189151249281783381225572078116967857561547019313769607854114065557686833264284448036439504205464286125722758631820116625724366911552578974831918006095830132859133396101823275596932884970880789785725895940600269027989711236600908387908530876583613604878859506181118688603872572711556906944245136489032202719156832068300776956088233060281361140587163742488665963610345232904013957267277867446018359163705244389053661399236946650827942816297602726798077240769620123184725328278953528543947264733127400033858559772507555659257222458064355685469072216375892181881160686636902450855567636982749055001407106247243489910007194934665351247717652379467815741051258165025442215028741183906838375937788815376901350271012690319720837061655765992207781686831166435977210639266553197674322205237765599241535968383220306873817582914613271755978554823975887917559729050742806029356218431129303726921023075004640174548436402614850255516011916373780686151094593055906630137157844400183678270606266690617336057089632172827077881996158380350895571302821591047231303551341199387912894249367054669750827586104967754151019455706053942185571713794794609742795538396544592683240516670120248445600583251788004402500160466690891920093464021689700223211639997936883124579099183958683768798735444100038104033619055528161156328490520725063997323892022537168067227954295546526423934789399852619267404551570256285816458238651351578641300059347233810261123161510994943336367323815738722929275069638399590456183739459754261877772919561850929084345967909191892648193696423755837233311944173613288169580648440447782409391559603909588527445171567616073576911920188934847970246847354855343380127975346723555909597404978831334110708489072634824132872248404096279705031803765080733505257013967992853498493034000542949213747830462920506565172253792116412998709264574874669334765667594016932542137620374207469587601690397578556260819942096488336891127481697761053176857949888719068033919107312846876118648205099738755356872431245194191130615796287447271419601741454300959657293001343035793199679827539022216399936773570727960506016932613089399044377006743362400368692777046666404005624310412273337001699635008369671059698997362423687060745293717396601277417238898506661750143689504558704242587286432039042769227668189300431320330087838780179464079262620695592226659471033887206298755511028881638812197815453185890130898634478325319568805575190778162197586691952827602571263453828901676636717380888200043552594786932537758799598809250319367589127796501905604399708830397803388877330073076996567148383572763709417860995884480835238904032216367455696969760202003894677977427146780071363952324013037851663442934486134825866479605530862519847739004336824435665106885481349910897588265791135015415036877023654102031812348261015477604858933316366090856920594812250574437375107338833643721410092318761368957767663663734664123659490087158601250378688957317645108638645990296998172976357888166378950201100445597043033284585089672716007670874478592940224053947791512379553528420859627621296716254884841076712500316583375785350822909465310584453398862081753008087460145610970511643901691723516874482765937890428006767807375245374997432659078890197299021424411671523812852307818845176631296360525244490633369123805296266296683108361820037289064831320155557895171658510983939451409657834962754100261953291253679719421697214057035784391482568877736531622456465619797040893999235989349731115076612801610462326595298192716536671465580479141680299064971934816407972800185973469527932006800801599718805656353324796880359158813344739819830298689183753331771720120058642413570948491470504514093129350301017037919056208924641851204369361849137348971081242352051463134538818544494897375711556094823483475967132138275044513814935480891082476518330339111574287076655560330949734860083137103557297187477587641946176918434779883341130613754059675545238038756155719304417459967393680440655478537544261858476846376917730932066813362928937684758319843114918376436478301267690016522450466113471184384151876137330022631263282168527849780988304226235086281064831029705857172704805391517621173755353913918635524847823442131350614524338841595073785053576642499134298766061876208281285792971876969330626534238531260081612056724689630654926285758367215402130803135121288593906701258547699828426518932055465823044002987917678719655415686233968885809949277060760918393947825042066470503017634774028256489341067519640274521013759265093108713526334562737104111761254313836914627120150203636564402798961981789508437330277799393617723085594647765298160068472125227294878471995328948468997558316238098528738529125454708637071335519670837410187873601280833058970449214684146158763125272179708181502967601922820401948177616773009781209521527277098726149254040867469058981481905853152439203631888900169046475760216185951904598128041478287323304005404709240766213414387543445293626009388728559299330857426691849798822437010480325511132205268796663579495201367589957856659358979588125049337843655250659616291479506509013544606476042571527823487661420652053282267879825698785395643099841911255923543851542516400850740307045370539141690433588179516848498468226288678286652279925947754177121712922022396606318276564665554938031079967760881406615731957425903071483426324587297986403587676557533253041947500604100275153446657430950613023320123513546210786467924312131424213680683808889560867467182182198218227724490574697754386729083342983553865929072488921488610588622851258789585132171993648893616115487223649328356190266610041267178361575288225704277192756055222108950343500291852229486436652107877540889800734267289972913486096023915620724277914905684964366429699285913262481529168289790261374834298576932532407882699252255080288085391258087577751062672683618604618492989925793982743638125965763225382873073060156695782796647562663099495702505024283834063106623359896410219391109322862110018573453771182654230363563760075379455155216817430612420871050429178198141917871864716798328778118820039089376755263691146629731532010560486618496434565243216407171146495501642178201423411428403538678736376143497892647181074843591955398606144235092158901813467607614563008927718269149219802771860443729268124251394860346815901864936348903230719111469035317429911685075398046036015536675928746849094371990622285939191005744626677465467363476274498247504541059752977269820361524101532576094447929120681568339210809896733042322598803141440003686467664636358545733711495999626416401905686834296913017922669131761151614724002862073254911640929478053353287287597708277671713463123503638071147102876547920754711079574539403432774126783088503809132097592953606897774141215538940585737156181346601271875583414567922007444393631816443654436934966838485467648384519836151247028614815132287609301493827376627182113965760257353754282015410791111586589344195517469568142832056349732926139089867328898239481164778025661338419545898663737360453960870559823441966732171804992439241836474964914261399451510263208404478252152843534877854737074228417959350457554833959971336519532428260133541508815610861846831578331818356763574586675582108141578456900481382825388742745459746475028579147617205113179016618702552217947657109300257205465122788953218249203907305133877576837686368225917836537584438859557612010318371512687714834603385452411071102978805698370250301744234362794724624486584584860204814947119422559855236705308368791057729768088475783698689351323110929727573535358198203311047372147879106997196805031534530089164618675993562179317795191309419212361553824938130839890083221919927213605314429880201198914692170217684315396656590996337220254784743877918067966511290515119355268446403381787579158394030580160318682139407699135429714888199585078369927865325526478126654512454981656267729321031908168796699059045250554757947575217467960563050709201975461104582296404094957212101860493024156895794573167743059024605142285501248148909698665614551404824078824962007776090175911883886745105078452389575877762425248567371722842064331711632165892504675795150741461950745705417623362975313033991277674885192543589354870183135062047836774517418076854439172651958221342299914909452500005003935841264967042982324399441896845692963023812054969185142060261267706186203873725986047292762042207506625178879671168830242054881896533787825207924614700605964195085002903746479328313399474039342517184465574291945949974883926797153285048475272492357485419489657178263735697600545489153880043873776829154617531111825250136158888573010639386730475019081538273886386125887474202168220068357185651352493556328890579476862069418909385838698217595643377063186162607136931568416210523886521839705445691855568023280925793130665244719558027388394423348576686222364489626761630911936384104023382128200434424089874759955973420559484919778903268586694141458100717178632105622984706631552893683851024850927343418822906361058285682406346302986956527696202842125601323549820612920013802131901816583459742809682076305880828057509176489338328059023240839415258329002142080194963615365109347017735615350059406494723102760454709313345199820315109015964042425139409940708036073787039070163561949964928978062924204127277349355187536068330311675568637450593935987921730341444912197439232178148523794279033666393211602602279934494558100793735982162972910044390551122781072640992491331465083880427323193443731657788637175886863740023565800854387258396510899630175312905033161783414557064699294254670726576062584798916310943540900675009053722459304053334644904609730351462436660175925156955747927691068589982555545975310823693153511876767701268974486526865890487570230344742041125740389292558952456356288447453394306768285377423446317436193198635707947987781204537387569968202094145693454269914355420037560511452550442671527765662477848558021680169212468543144789243024308052006802976907353620011099395878505646614275673457724251192025070870878075010578800790003878761733301775017826483294999576332490641578853631709279303576842178481399604507280282864143943827595089393203845863464861932103090747473963039557929548908169138365166393253848507787439830201045725578812667687555511968757502957863421552321054574872246579485450438064193713221897743170445897735332220605110891491720256187735895957326433449303789173314676939854195365990958836010585426918293120589806122516835710155904599135084142433246140217066934509491235187694119379363517981187267876055767217253325548582029443760759953537837113751637961197106942584190011944936775554339281074060833068638531538755271726749427435632507399494692174789463134318999325825834789536209939617774741838630777437195812003463021106568147737860765725619267107525419893989712823133108874596836966462701982644301863641694636505898042621640375683794868887091330382917932909756363505543655651376471174618105807583713509618568588488369194401575078682860033890618355463301008449033362139708369112105359832201543803498330064172161806889366615850255856969898628864140891308220526679854976689701459268371943397598374167706707070604040321939610973616934121573632096610718814156599183984199314489102036754171804036435518913372451750522329651992285781941242561877083924931522574129441779368783699476261591232041334522369396801352949678822111431962030050391401008849998586452853380660490501455049298601317721194536901660746469731521761664099695437188319472527679759297244391132183509408181524256506530860656207780940790399532172808632866550085025099938197984065549350785504927511620035765882839744015613829540859858814256871544521703466211190748816938954284733037305821274169722507175225761659046172013187764486353114104178084439270003784090048018755578509500973551197895449926976247890035270571997655772962023642198171785709806012716778362180792419894753270375057169588227279531117544940666284023647128944712040652783433344262032928477270019541134012741726329841567486721423377001023960619472993635965982885541174261402470702101136306971359273475336501904397343718783141382596878742456571910780674964904663392710216664042268502775114770640846567910089876301478113716062373913721189359177271871822169317986930538892137015582523509725842844269405495847369200013247826368283281988685238672137621483856388014195903612872164682181569466926808334502565968282747012422407112317774878689024931945527952911080929239826910822002607369491973401267742004158467619833830052788106811501463515898924019174896055924161451803460802883516348434626973401313748054787224338944778716893611913488959161427341625360979614366574173481597420614218745412392561432634448207106722368459325187046824996001555241134010382403036288359637716715716140488476092853135410581246743620380995010382362915161191231167547016671523920633662950289896614669542739631596280671288349997465693178767736924616004673724115882539154778376901157616803280447475948113822625317952381168447790631366229844718694876709873574527293376490437094417827348285134093193698950565778212162784069989884777978323105805499102513201735179070570789249831468157523334326002579120845214144043767388917370904194276850391342877087388024173709521554296909921734519848586355001818281109387813972999872145010359592371735349554952718499439522876844722423116131685767706659478265204933799371332230431499967583273804891877465712581314772717207653061550211324606869488194680153184607038214144890988230834387186418477495896564798132092490022136061728902747643274358163436160038092964784858618727593538102344337692146697695850435854226312842216146320977528543396652483007476425323619628712875752862800535432303268982860030432993748912715882875244388673528791195279219287042376763837713968319344951176356913383959569467091878552761500297061468141930727541515392616158706746730189017018175582953178372772430883752285924592098619181126755647522387676761448137628684638789488829824191610651866290802383566056088752034071682330830423486160524653538776433952545382265101718359799266979873897573459491749073536068827470806941498013868750353687894731775868292769670618771154922097855223366772385321158468587558750554307841564611617545204921829996650217111809164207474399154796626739053652376789496203938353762738286447420851511977418699972635403619352930890003065022424372909201085772768333930808468530484408441876217503960040324838669776800408601562712962281502995785212537292029843329295988227014256308967633632240847912690736515053961679024422125278492133631017906956999725583345926331856323735347768872958297942211563319734751756571968653969252167485649065440603313187883138152619100609674447346123767187734208100131892017033994020835667597283473758578853229671952942968791623274471638464953379555359140431896584471454367982282750733925810542165463044793981002486181586695537118812576602095234305692406659944062128582871691452896403760323702594711613643723172445261830910063784281616177335380225116707021333800602448862696005251645038496080009385008439979669908232941835497804472909126949413265408808929654362670618490873878165984721054512970096880766244825717388851375943703271008884965949535775951657777146047675657155452285479308472445554856797841475725191385459617579787651126057183351413314393236003458827710336199820906567868540911891386829468405293385127974002713567265762623136887077427763808374821574771990762373796179524013750589702197238610141204747617953447431403431527713712070615773290881052831175332856987253957846584357652606507944860421145500895664812793934258459253408291614514229964983512396038666377274146018754170957922232252193752676971119645827001789336062360438291803590917862027856387456010812067275151650095669104516534647843744631799779114334186104010276698524906686075916560025562085628432226626120448142700463061323641020877854945809049046731200320397381334875818272521209060579208904096002596896717231400478934195704480203865319458956040672556375246901060006480183489588127245578852094607373702120918567674801823252563178766003461885116460939580192962347008197656405449664866749171205914333789906597016372041528359472995468900682861070178000239667323663097481259670942549628874954006331149187069987755752613109343780156330684880971257911776415787495099431181875552743621955251361023644960790026400383832024589412667930303953995749299475308513416450297191380496330244911074669766792387408126763106260675994055663006279051812959297385287270269571282955384607732910796790630469922690043014038116502506117187042156530630006364457842424504045808824160182124659378040188952001104237400831634046531417334990125917623654837438152097323402187833879594409810956284985549756422521667444924148567185217351583769892756852043019382377952815521325604953227295851765285437971165519140778635670833280727636096634930666658683125443653448494381606089246271251554878409489842494520443369041297343854537867504833152137634897501977843673830343395673300656418508275431437255817812719483652334497242477597138902075302345827120704273820785707351562901470894518386895431086495022676150243147341666399623360188549791762676029862637922448678398492625944715560932010568811921619098376126193158708434329079817733002533894341531648632498563099006862993780479150666167710409176137357520530519203193830197199024128912506255594860330652912766396588835080066692402125911696211680763406522033000486984910750045939906938958374969923201305580204106251140164231174942361912019479132457370287186970165361337016126029276626459782359868209214459650962788405290799443195800879830334581764911763013950332876593521512247762314095862001484792104499629745381683678515379996737141417716068172520331665099699208946284673605448426362760480264796625577563490619444051668578150622701929931212191629627220101681184973746115688894363060607194711391526458711619967024995775683610755209220045148471952323507241491732722289813954230905245713516965480691324295726356781632719737495961960235113578511651949647726137000784608062509709158858222785444031850766751920169679217641429165937423937398550182173798106230697845707982184579789633673837570646071562351681097269298025872911787450970111248735901384476392361278855065680220426311760463707625457668132666889232956438845477086743833236634227621833829732134851921680848143549060974970649637229582943026440296236560196385938668936341772831110203428506333233333390367206646052668034504562854452320465902843481603465828288318312823713112926208783368983969834216487274036363132741362087949883387404217487716655278347029320949763729766729636486782733717958796332809227951764569258235901033493221498029955478872149405099754081889290853485899151887458350869555420446428949030025010895787704130437612907726327590551295327094426550145516017032225131251880593719846485939321763074845363250502193415837183452772008208699664463579156238301299807535753477857615414048078460015036450134213521112700852658409482590792518857975497206768616571977293222607667004620862480078741299791429278098955902078270046744627431219307633782758740953111991518621453863810543274216424335493996073269284102079165958932620522425027048634252809450244586721067784988840105965363824086219043211984823607298939295557058112813588879448466053188639431817709489316566179926399346253682946366633790088417695314908726448956969812351988233978212106133252425886964117638267754332842856916906894273104534033989484427938955551105523635631593992482562787681831072964711518204601919636633948732770844486167056235981802055215902920511805881232991388931959655572783646946573005529777867253776605318076695563269661494110063879640760524634992454815925133799577334668775705921911888912567016249342896581417349835661630733955022809849389335012616167047549753040876509875152665485836826876999827117334562111875847762208207080829809168176302946914354198434162095715718522781848701430116201192183881691326234684890146718066866703590799747331076075803765897616058447297818239126617537713778563191270347074783079791607089171194900221452838471149658450322593911035853310137538295340645043494206910148596115576511967913044087649442082128728403430642645556906124889257583604209081894077313133444250936119635770627801256486626029737407503772609368103803167030878331013993968933909538316731028822548713822010713214080243246965982999824427826564530939810249392627579356087301885231450861128312129166751493340606345584360281978986344598627407056056480053724370762959242231753267518632592657219102509358705099950209549815725548084573144097654609010318660800108836646514152677596483316746813656627817710828353464799710935058240982170169479481486180626573069268479287773082657749644182323406824233930308170565259296031939118514767012162144882490461684582702712443630352688668358919754927066991781748066208129083007301507780413649242734541654213285338578637320194469280507721441042545154323239335974552247349348733840938678500925600838883661577173084790395732670745948331313448427278740910060518990080461598907489078594361150570651614866385373420636843407445821057663737637185671555373995850388088165535634275743232666054325805415984381851931270626133196344493805366038309507162513841610156929618079990905686956830054672440525738824931389142062132873111981481117268241294069819169628334919353510854957468666451220955610399566852842924108592274321664120461020612165625721234199666190095095623741139477751192898405774644071936313015417887537771071480304540516529352576097098714096470314903863798805448679850585136372534972581553646736176728048157270588897740050252848112565845093383348597441454385993278116103065847770493606579174563536393233371721796795854117109824543382136268791999286752528981105243561793505481383044427114573789956727094759584985338784702549188131637272449409144052395693656340247543033048246344619944791702336800606848147885776742827547884507444329915162540416516602373772347114526578633242705203444894202107582092439581704527082999873074221783248282967806009531245273554523744130002637060527155801649188799632078656302557383831017708766578894713890536769693769212226288037523892126760264393277748237960825137671232251399250876370644243934792527539114395575496644972043759728793203495548531874585412955755451910527871367444102846082463147074798397045765346883108987087221412006160478946440839395084664384569150988975202404297128185843571687391632582619243257955519015066308318159047416942625565807931925478789220216009502865631204602521328334450060150337173056761133551857637938184587847643661311218393464684851281742899328441980347573917206180694859886684540800475147432045925750596563307383167165176848620255891828698174808127213879745820999847592204650554325155875702390460859537722219621814469169537832970789132840585702542327631120914633068067935831138569646968979961578991063687057657899837506724656772873917041694339000346082637095458216530229284759598152412663554956423919389460235492426749420380663511347358590513525886080061329600312433935650504247851646142872750726371899061611232625888231067637312473185063242056468117357426261727375288507532388953645685987113889463225985809476470747807608098653897611799100311379538493554652399456339406986070569357388580614661759459898196791050500991785050759821563443190310325985057351525912158493948597342982441086187680333423037398821997664707265470954712728331824727285690031582920696003539532454175949579296397041123886049632559520211948328780765968339863304555744041534300226869447888388447012086768033063757118424356282528760379677247003891128633922907223411696239845027357315565515376076943864600430824250229630841051616386522804409259287306480971610933911033776499090585549858764796596416683974494516485463247307562559265771518785925468865495911720280520633523842312985614953991587792101041195439878379401109754642365335798408532177193304965926017043470639734165271418402420583587631740127601519295859951847472035785196337405119492621529033556653872362195140675752260807364592071702150003639615219645152793324552071945032978802511672260284500432908058237186759275154713656692380233426363008130587505126648721770101315788853184040822032771714026265708719993605718390458887672528935481693010001384279587857433271875525216475558631434193563160660043150995444329504998439267708466301953394637223682955720415980774205329555748910677537125604066400167919775794886638704874020394593339192326197380293201829964509452071792659360118898247442294527195605714627414456092136847049715061023646576441184504586640380044275849903230412177338734028016407351550193558695339294281374752962808856353954711823348515061387660573820040397899244993362310001383005670982993864560382008382889065089879788361913964778949202561126709803504190142409375198785241757813219903756410790948936865402834846990103444320032879522993228843478836363465330342431287542257685387279853074521657496016851999936700205662535039511098558607462098933354729539044443204174912309159937235950873383925369565388354212455456993667259140231558951428606506683715043274717359666227501908266191427586109946174826282779672116955249382208694292729890922333086627352832771008029675405238871073145140598081201086003733011086422853375886667088256122079038499243663411598350726335072935986895841041022782714360179827549997171548808588754969707886942469482326535677630136485349969582623978227343812085171300514674202830124345388689418143740169940802961504093290208546590309622949406501829076556943347566109276174484028376490358324264702578258186190712031701697799571867563398631094575980723420039459239743811906390932490157997336256363317661813234029882173947171202701881521752595352355251597391280507024763420676838214358573052239614169855426155908648894952442666120930749531182607789513880364891640183341289485257571668721533364574490211492367474505356716561196990064117514739575364536962050411105073945174383831911951888867812291867418857402744320197531847440971033747137197724031897646501243251026393027908639731563233422786307224915505589264861293111718539142757396943699632657541169176626820753053245617957345690450041654118004347412898271157354084909098746841830148852552972152869791595236938523592397500056243607220382142994643360722436584956822125175711453721983069807929954119318290714363406589351932524892465222429312031768522644097979198106444595477165031568932996458138467216163398910960657811389245768193179408893167803344536039787056923487572270189515041229406116039050924663521408355226219212501882264878697176715481306816430398695342856986169996770676473464327110271647140569529136427788199512251392548883121549740503605430854599455512428197688373736826189420220716549487013898963268975921406916693082361090193668041315268668332366097022012594043360121903976193032193708981331016884633437431666758974352557927173697484996966400425496449021914392992604834923286718851805712406447383823867715837040959295734104224557618940759985056244244565030523760909225484494915418487304645402010365156295351161962031093239244188891191173372359908759623808755604272722190402711641059718942935374419328785841273783608023394710599750824349832308622621690394167218650224616849167006636661529915968406567584759988549913101468541210259652895804754107174450073328913352938779712215134297875879106560862206903949136311459325644061231594068414324363515509400230829754311519429918820382087334830530411965615881571538982267783946062581922686346213365269905702104124005816484227102288372726115640502005127656962273181040914199868079884845333521567264711598304773305664355508225355362123453286433238666187151489015812400848863860020666206998414356546389561608925846896121893278357494464716681389720008545640165502419933672279464592842467064569906639915813979203549924051247577622418921431466308790274855621512210497899707036890948491524956251827035776072400684053437656525837558942736005545635378568736756934755844269898450569391681546565332757440635589131116651997591066190471569642241247062111864319243340051394288669806330619033744418312294492514754578766325493177756435215322420010818694845232764321049272704245737736665697318503764248696261078021490815451344157810947244350040149350314581910247147826107207229403838874928358539914512620206881605229643872409477796273967555283493797392809279106707344249969293699649147673243919051456477392538594880694099185173608324877025489315865986757618920516227095102831527040471392349891156629799080962970432890745630776853018330817789484958954054932024679873311127774001157895768615927991586230208003694623549425818261796803381873704020111323789819899946122680278785185798523074091569044325539068031361914264156227650729576748828480463040631061484156736756888110725666594373758115653825361100668835631273650520561708494334844164952522599997088957820711590764582316947343466754859178676275500670713307317916309392084644030602511671265435943732491464630109706531326544918348353747950087335567660222658708649928684922479133634423942180081201404035267699005837451617920774730666405178069283919815803473108443293404942354831337190068368275189889462771668097689850964737363024546495603458469690722868330352972672940538189856169117174382851433373636925963601918083422235712247464366145504431735187755840823507772494582428019299803793825911117258565261962297097990484858283572006377905919721291552541183305715275433716925193210753955187874828097627910338972568835491903703383798444469145460751302646767981866220853548034138108034945449056267698738735888713940830611541106602571292851734540957074683596705551533248109290065225213180015438237125266655821850504462914658643934800242243660284367607575244491127846518077750654011437140063781983815639935488801387578413569257443896423999553456644456452311736267466179005908957950169058227473988176473034361238493140538488415408356690494787578159272228902908982028325926161031406914563684452714791907022161358227657770820539436196597003506561557617771524090320850833907449736940735758581858733458577765196408934734608491347700770564918798810565443826289132510056367098402528312133560420210770619354575322510414996018224423113415776862789578503630464131266217455188483026168724096838310828660088247988874505246955801067984522006763591375639207243201781271037569266500603115948418928869002282729099936232135179861324300279488407901108387045857839059154210445886994619706853228644352590673701459460288510952603360310663047051858548003926059113215186218969656716849358466338294594504537691564623873885636321888553121565846614024224941431936006443747496506282166344419878536216345690313089896044885198441581821081096171947724123104254974038059949393822758406501174046923232849543221505847223073399186902840389973161868556569335960180447607157486459913791847255764101704698909976620936067601538599734119759723583211222587295898033988790410240944727158619400221263407702934886855215538853283317656464958148334319804274760405778318807766111813461785441924794358209174003954453624793319221537552913465562944488255827303316137375116238554056881424987031526429649524901168281210668485384585906023400059915936758644617374380237472561955481625111898057785191500375795706762447613363400917673429041221328722932422526091105580525778536674340964863928574497862710720315859313506482795219338947800720600083781303909777073018605657235645703958909720510181605276305439416364927786770562611019084271011702058439342411542017348907600389722076306740213629451711123687234152949653966552039961860682814770489243909303108325490825199812735609469069097265959477488916783401578465270532508935538033611945148583289951909209535595264167406690610810358248333233189604545339587123808528312198192053657618197732434101342559217934206161305036382346019143943905719623075896568926574412858385238669144037335316323179331517564791941304522231299609646253245441510140343181385483701864207008808424397042739747525155261868065125901066128390036979682777968170073347158288191432043030828345348530561006911476027910134559416659429822110199249372842800993431605787530355106896604020587696537539972772351256154646211117750608797721721363543784850282391572392345466184681480507284843315541937063630466386782039005428455992535450596627088630649812925484752705551924481522581016124159373623641648483005260772893043043165318114813454136438654797690876731772081297808919379830351161373890438408295451744789318839867357946373242240896403198598427713032093833807151552644599051444296711344906827325315969254011623373841378073920888041148285577802734774271873752833203643988854203627575336097926953286371567396571573842999074111763484794649184161129522298645159822063758856078984714571779617516282417334899084847004436071489131161837012942770433699689643375308560962399170898094356947422159479763706504711555935555278694079689142700129708203242699661085395121186257820155499534919762657917118718327012575503908871771376909626760762644279183615521181261575840888171190444446748913354353829625089320167655039963296055411385722203161718301244595479904981327634612176178274310232259419193799302153999920565148603793442142845749548347995314576714859479433321246259093232720737221381926734182232324447229902246368864349755613707260039319298413790256674121746627330971199299450798160672091658980123986342644738794337356129513055363484791761779921643974812840175532175666051035165799596786617812979646269868559931890257555816660001630988818668191848975511857975898061875078743523117794225625418229936388364953924748006808452636608546128068239368903175388534412374428591894473381405228316677850440211011123725607663522894343744601823129258882652756320013157491048387033451352310676871947825980889206985552064635565422023437114499474618104715838442014481396400569742562528404379117726388983907863239203485279500906074575083187213697283615360035586664773037395305630864263722649042649630281207442464613798097782051203100655246774106711613844665232714236364144694648301317154212937790484940449893980621709066685330072499671411042568811689091628120062574719571946753896963035082499140913071369980472149814379442038472262735927194467589674085842536117922475458903835854362529365223904878413022165557690718152140880516210855418363931189424377459838346922133805562550821390609951159410378964580233066477941725405388036714886362453534006264290372434622654931212346593977414921509554210593619637867249008269983313106440948141356269824778783410409980391337794876434702972313776361081861984931509002200307258930632867723627283840562810621148945079695667794319525408597028855049393682028580057716392067378926403297623710145655158258561162152788036098637394853074082853994019285300068353494899334590966056718402842838649154661371237061502722122690870405084484071746814329808372478763197323643436507928297145323453889809463838885048740956544274145759173970461392839172868072379531510180101021411161214136214544140186616373145481860865842882447208758307479772103968272716426794676965844367354485216556710333607906728669694448957173855923245068260497619038774707640908540540096197912366355886200350847894588232298275246150259759958704490035179004123462141165385264446394098994418640012804406240583904229664321228793621847545164955668928572847296125491293730359386324103466107803749100958013225196766839516792783353668171116710221866493494092958257162873654856124085459075475902588293593353785153312585805157582899884084080417379460778348547651717820148476336327914234269411722627952148180400675989047833425315024527443564961365457691766597134514584005022299317553272921078396084242594651492127151829479031957840696858080019902614448957060979675229020688047204464956351547466949450049954389678580158450624475861361744578815628750216752534797656741625960814998753207022631390327155306438659844686594573290805200963501152645373906190320960136458886164695444130020723354656585502128483763637243159277138337714811058025127522614931026888386795142676972821406552742280927660847032248195616647876231990721659944944690792233260202731971683712330944415409472265122359208075963784550835302617776588549847346731620312827790527017900689621935488718201374709134569787700658586589413475392450615039682797317695247994287272683066098948524909759027579186880130936197949750226729184429086648150027034764636204802759074560174035647489130133212899791999963659617594452092546993942616395171378427727289552808719372843662503859452191719935247513969914084807312816577976459792995521157730037852937691843425262227063732155893628291391738476187013219225166855133100447530757661596025103157965446516875850057166886878200338678898834465026047194093710174069272383590806211009906451727147584131269812595006797826954249170820770008474528070600001390123556626446236913207017541766927993118914884079550247713358145363154631506137438619105837320126810535208581424625513089194921481018337355152309984180196243649833569665832160759612928475795725190634485716684081336077496378413514358098729078054174906017181376532191192726288924986555492299119976199977654669145922088038825678546097397108929206007929340464487722239912247596596026718301152669209938528690223228580801537101854804802451685472767166362792641653141172331068939784132710554114835165477220786473134109284759161610310165260395872302725603215395329187339883357045388482743297874469109494700928241955730355842591568499722524438788523958459681346269884629319895135408834339821635912573125612849811574572827002618456010622373413574395777167703446748137071267321272683159225463110646400963722508015988044898464050339745409594335190882992203070760656040304480298312790501474918794105117717208324945215785307130475617291771421916100295649681210707649740505469907176736492073391871114291056041666111732002375483691689082419903852407543889200240770328502021432994808600331673455396601263974240198460894427156095990935092939488075368740432802985601566339043473677008307095333253027285494801352085336734322352427224145341433829232164439050485016254466838496309102688674523446641682207959957680243827538423760133751125489158913488130635761198500534545922277952040546204619766422665107836724551409510207162880275471814196208242748862403834679661790028863710499725940475832102209594038556142693253527941333700296277973207199336075014664731852200148746782714111866070103481991908980875423771477457369643135468212249377939683824556617826016813843742610304711616290457060208113275023581191486740035805227729233451382882176483500961779390617892679671744280619736216726487735766209439838523569564034743220825194910756404326312863356376484692046754016629954862933117402542264111602531572352587448915531032037308240173930214200785795710860553573260429335615269072633272739171720476328602280088271110090544921762563175109725932124585601659413737778939813165042304822991093364188450354388134743795972691292394060775774949589262618789306766603547797909314511956712869672049852289930051940684155152375439451119931855437545009788471401144424675753211516610473750958115284027653463149390138644997776474720791966502336346407454160647196785191729710143800595846477129781460729215721872264254609151112165952076311525537209021007781768172273823001695508168132173427411841770537357450633150764451385285367176400488907327297786543803243709674733359368916908724846133298450507914834270943692113544182512149344313096748505025076713003163573320377743220215236777717281889732629167541130882357043784010350882224446953318892793338729113478141411031047053357263722817502565629823431945972877229766681137755221113859677594885615889697592604493760764346211349979391633277909779969599663089130272063617602175308901572300658459578718880772580720268708394161532430831831205288020219583447766062975416263604299125570097700558618787771075417274422344766315151977172822198558748433229840486084694238126908032962959201511102135205121890006901714762847190530972784595555530388866485109511206413397945411488473476392424272311405438256463064273275402436185590096778998712972749871910216988328526639390338062528131360926624966459382965295261157962189820482970408290586879098424282191292574379954171957449760835650828610531489654831158158601892664428743766663391714537979925610647482621940845668012656960946009492979879545704309578295458429930227472528244376457208462464479598457810433919171834899751509298498855198219876314341991138749751783757707675237934008985885022087699510727280642699267511657804753216668682176291919430825014366125418789972344170464486585702798966780867863797512349971942713810738674451730113071023759680125436811239471574908212619736823461893099109139441639034616709544804171229829824590455261725193785229028651228128507951158808588655852351936704062945140252180648599065232707244703426504905741332125906461466325911644544928935107845568278406753639958380148032786227536487812644479595511019824820914313224548083011791543054385832119576232411748673791356400746076181094730834827971591175453971297960883602393081246354733650349186396951595400333386873191975294279683059259314821934535303634476049813723032091885691338866462103002626625338747171860175316830790314154263366177276570925161031694360185896349009499492434477077190760845045601128380659965976225972451137243849002395277020260239409074591847851440630168482423954181157075280658741938971981983751203065620555458400212916202284510686501581734541311328185690550910131236799923678653819764511869658464949825429354476659870894123638293373083212828768865519226227396828680185740644466848043768399869619394252120367589836425388844204222505396717094326778587834471908681728095593335123242155847130024588948494329893059943303722523265514548347813308524117031446631976361284495253532544756668457294280829422626984093566627085890530394214565191532176201996517291172003947909873308138543217015354272709455973933966233987276480205202689676076228070092844766130641639727925389832174559902679579031624454687229717914691260522269206367290958721042795911059398989867174884740385339137259658064107153263605954009776483250976949751532539555633454204727317696839911768905926043680503180365089199460043941884910666787301725835797579896459505353055866662317468798321169676590504392323503987377784787187444157758105080382185168181326063153893644146920318981312932091425308101415019192370568919920952253579084647970440733963315549619749400830278719727888296638402213079319973345915603638927214958227979293337225779283565162440129745291443349801729524120668632582826878752148131580641919250222545845715257762634737866987577530900337458415713703551987977092032540487408733773908478464086363930103480808773769989920172047539253867617314696867523810349834599133695032456221706451672527127448764059614345769440572368957832273732471979314873604798028248473748476091462105153929363795453464688183456533000528375101290330965425660802309946802052219043923391706045027132891092927294815053111775663596894489994259386111123077961650222361202760177014436827980893565248178607755197598760607238275166817200639063612157745178194946333233622369705489304135246167207559617604691745913905853781766715008860606470921222625920250861701295640940881899074046616699003047945765361780872776245706773892924045817078601667726520524696791223523668262357139926733883988313401407069829300342264615635706298305869111875093399179107330571186805111190278214208676445441769951860858319786325607291497795165372955750334984375282306345909435722889447898238587136784697937644000724800349732331332335578912126612512691114585432861010663925835604800477177918463972077113730706085166844915466762916090731911259788519518379000968238362712774338345335377482599260715163533891014869994629441133301275957661946088476137082990537146273221332589640386523186118200324841160209420841477158474419906911152253843439142115323467885353793941333330381024609051704797773245768910248797445588591060453105827692506464207766972408200174766241308458595917000308867671205905390529206288688414139452600854052752071060494449883983935229415010806650055279531318226289093202063114896283644856462583868423762830100543549795454184480071614872913833179858038928432363919637503859810294008246342461698776465325027125658546226157059007441814355977226019540333055633401875943229228137123947877892477176994927654169463724817166145387438600635424661006689568399127532364783508516005916612626349745245657271477348396224974090316791483981737890345579010151896670368468531727485897780754528094849058168454652590863561017550582800924330328013863116710105555051919421686708998950081053961150284590085338154064006777194676962889169797668793985998363126064774605060165550688357447002287798004959814621487721101669534917600685341804190525023220098123589600670488595987651383705696827296378839291909591945656566309817138353460060941853677193120687673976201355942214033101967489366782713268012337874419022848043436300705611484104635845814950778617962063035477822520089579250823740628247794676548939921119452553781500319055312676408114325657937860345094145086058797810213287831007248094184882892828579598452340593277407709308972712908151698341392771414590781352040337498994090654694940805695140480926046171929413432419416341351803364177989307936369257506795871600954827837444232060841212716858542368535794818828254911345861984549912146403447394468079478332976888180937062723268391836298750047371731386682712658358644058827767526791198716090791128365680566416538579461031750447154810933516797862128602692055053706479278936677937782995106254457822439294018073431960842973355493278665023397198482398543286835982952445818032833641113640209842901201433903293193595755426137456824727399456403956718224640713063904879191922330847265667513312971548307557226668351902459701088608093994596679907644045971244529774431349406724724008178201641338744211555479813741987510130533402974783352647808500832249829447601636083926968075416088423062392836698806966363590632599308579082555885400875298871277894552443800530532746600766597235817565451679724128732342681509224552052996855474520822687631409185462083298532846016627155475728904336127460309165692673441586183086961070675494997570682886763485870264757621109734983299337856604652980983843178631418133198914172997673544400275493271411875755254809003916921250225680871602457259438320788867900411091741393229533798646606602937182777484803446807029991213382267353705648089482359493566945225226615769771085700885463329847829887608173750782484406229319240396075043490577079710360934118796747930554104880017678351758852123394954350578813036363509663037433586601260584156852539723730110573112641193902894773511011445699153128942457741335767121393446213384119483321528090911656548424805588556703343881898306375219322919718149240177398578235389678580575986210312595411077568456183794916876960306502517769632629779570616891301037573221820780087486575165477570996393272517787313553305259690486168850895664585805114752205237688514459236724197120247525959422580046545092793136074757603971392827560164776366177893777843337810579333970117442487323683949531567444272185091708471941732933698434720196687553260020327780885388372826744549458637426721997099381558531102822480860343102341277053691898473448403766371079533492518023570934106862959637068633337071915882905237197465977307722274906147663983288670663985105650956757824194008714986062099555785104942536737625898479015665643768965002417163707345279531345720264094913540715276818454024163084424003645694467647484719026893059634823553049396972700755376947724343396008721923521799103359234716708750267629377587530169890037243028224106164709744893979015979195932786734015174442219280601565806077368846990148755556874420864721340674628454312929243957575453772815322693255383226241362410677618142309566578931601088934681369730896988711317029906301784597382496595304976892233511867775779455816009715564518553670440516469605723524501748402839251474131195215351120916860934642687380722536403587429625226901443706001354537645625958642321294868620806149809298300589606486659737832901376224598453087177345275265156921235242219307936491391133887027806228274708301015497624183861931950329915171320563223888425869104794297817316619853761615682163959193594535374818216805381167527598307979649500170160259011071859325734938015144747461038631638247201841921510611092282739433271326829201507286336912665267514545956767173042216146741960032946655872584056361846934188717702277742628340789563813219323101410831481302015585969374274675186743941239119193089915787664564949020912354344796414668794594100229184171086801089342826640817224351165882267458869806709139685674351018132625022944777133802162718684168160965926013331999049998977201449008560486488490018908070180803401539903232520621735888319345148094828907019374056446040491149625934639249714372529851549406132851150251346580356418577452540098207899563794618555145795264741482788495802285467808072568956233356128601988211289572781276687988986379893055447380015589195162987871357563423223111080460990426656970906124601184659081536296089472184787978606965943930242648653860042273240131033035662812151853268392156112671834510201015481740820865299626784237867457484134522168452112112454738122023068410359498234824376729990620976207428019210796131003633693356745344695862128098750686373245235243118042899491105565358531414780502886803440076357707870624175745874999906466812501525407438160682419765682908667648159550229405684102993611345889550398986490100243802094426392304813103523861087826601413350902020363260013567430448578921849568199083512661304414988408120594381698732961944869746936381631878531453936370774312297470862453609485360983670411767157157440555880833678133110396768728254019139201496779388952050132142213592807317443468027850688453850485971575170147816167271330307303264932548739692069502033725899090114333985477318768074073743201952721757801005007605049423973950079190989811568424352621937278685726082395832722339365270701205246717336718111470279118248919525876576077872714157814001207525057805868942841370671470259480103463336307916985834693260764594692560756543575617558546302043652673523794986181029752806185655785424411520854762064052201010066599475085842798296423339009915033762148478697899138076161162783797970035483473462103747951038068123969144907460281310417647551727067384341389972593983037937297913528707340618555206347118146785315985318263786057783889943939809524309869476129300921886724364151512482153102434426533809398081361820574386967173095909893467867114448407951371988615818797757600339238173373089807371056506838221148407314363634976000771255901686667749472867509054451349385053969102280972794446762588892783534466233904448865305114503294658120478528231005757445118211100070553573371339648461572336560741376062369237220064794685896459789027336893921857779233910275889534528035709849100024410032681691387240122661906047495758946565196046638881364222737201043016032711213344118193416015412074355352619970918582509337254123907450224889031332735709393397903629800725620375518015587284616139117071955892131723048118151348455423380982513444772724863925285612246769276983646519044962762024024008166594831515983346023458910590632561812216057157962782783510760538173553535947161496948420285999143289385433849574304066430119288572639241360234035633329288833495915192466783385040987863648000154639090398882736777116210066961250633049694146886994705332408359035308920311484862960343321749074680252388513104829318083924936520660901707679849305815361891592699314954230899318743320874103678212869951753808133887424048438862947084579922540882016816911773416690756360505037465649977001598969453137593168623835816262512957762769479295377926455222140233257339780109774582441497527781002450080815868121691656521150204601313600316811942085194886559947136746270824660843488261911263189657354455601707811774218840436992562680176047891587945065402715032142792130533382021786834470730051099019645421065910236491731827690743833131565465160341446849311766369833967043834243431268878864009013002178723714165866570982681957678844275555087295957164303655566728384703583906862676958001957231659102558066042351341716455407040888914236994531317622539441563758536754768171344381222362346182955045829165161635526264620123313348608318154712794828499212613929430821857571100381287925541301114272964838086355643911895551790847330799171325976527386613603971237719172451923823592676256538867949024284795952590735443166460987719703965535140989566465220016570686729969261457297056312514284532370934727479338196019296568326057165263734427549397656236483016889612877798275350200162349919502932348836391179018468282133321862233134071184657346661270345174997966810569976247149147288150190679376696707466983378562588003919110522308776685309232875331589265254530593870060291254086894863978241684629968539370898132007808611799597007020614815007138449479281257905413714293412321970248226053771441393141239315937270697948011616196865170757660051157314446462093253860082284019142142249597139763486664979193905910543295835861821387060576548282856699374461877342296523338023425324958256259671602562949727952788770849394230392067462538957238885899476857804887001942204057177612493192138303072284496753634695175921978020253565250085346390963573518654557097866750585933494653195959849685369809027864550985027495502788805891102416890287432596802006561485669657103735412776297160912996152659930084407430684236869721938790856411334883898928061857822267944849520612924227491518068345633602087336939109186195024658856498270107095737722179385407638382781699750888780451720806793570936488678920739054010604076213709814507253854627837393003392026086739219799757811595180339395918235085168350417639475165038979345467619006262146468862330842661907765872739347817399752272905809267037538789906013564334606468205721769163063426494362580760767569271049412884263378505578297404001350354688752297107836634064266613807239948583038981430136234660933843467255930156658254296932313933854874096155121121716106586792083374998439819943400884289873631205760097200776459085738091366238465757267856674403320224813017553307061801705593146727892969501892031257578103841028215166279742403644484049559225565015647910626810408438051786526027592069078620293585955765481559299566266588020638736276993840628774815830232205128162234854288963126027838310223525724241070396025507231733040181029304451184468580397570438308919576418079335559469298400888022604154568359043775867426771710806608666252303840286489542269197992448423670244332177228883044028408902478948887979915888554937921755709488467632784671555061622673813846931859026428256903221361251346570565204107942131672162784715332230346187333856158243619735123940578639533801387909657472164682946097324847753212715474331621479207388545998105045761964499743076636560873676132170005807756539529616760433151024412524653820886251722620236670921939559754355483681885391426173872214302617865538907021067890997910115858340026289396214613250711869511662765909990718957303909365414461040522330713622081987377243660130264670044160125552230668877849152937348942871602025824354845966621484209238477931197558699344724170779690089299184824625339710452542015566159872474819100267102274076454691957628086748398951914446814906657777029922949424724178313658975040908780731591200819852046439481147270984876847857496620727942030540548565589859489991775399417567798036024153435965343374631942549056960399842478904296370150197757227281486962885782370513497414203636516206992493239712268006089713015619941810691387640036259880717375661324281424577844900371975627667938366132360394887552764096145358078337417457625687716120817426284317393052243679817203064123587162681343006210464090834719824474688249954084672832845976902918567006632197072989343577854666549534906592252195891619690891744482425353581416219915719302942727727849761946739190875899965436329598772344556915085404849713196884199229583254978693599850345906312720133629258537567867207610753118533501246074287808412923805593729302489791460438038904236568303156000449201355342083205192072299380336152325224089854697379425508641288950437269054929281668488755022516480727643019563563143329808615509961877827145370574767780774760119712332997933028319192685995751371509675375852409204511669137399931788853482122525380463757927921578062557860064274604356929389317839287895263436341037431594296851920951270211935129390585923734501038600893302815618156685994193927425513130353125442339050306964605881654484453775758702315432956987516804686304735083621618550114454204175401227717130726558643536050716489237104648453205260428181983124767191578514952970347852881229152141897304564465474211550119457572972702385475114268958452497410655042569233022638097110288026163653042052487295030713731309896175801623423277907064207984714800549764922119169280842894607765886120614666475723066700352087378289542723994703745397771836993481901348175804107492947439764252062364518510164322802263513122029530398263508423954715637910191902581060625545301928431148447089571624691046232979946682104495633709605487596967344277829044686746635319905288711286838739438268206505638805259115722281548790399332688916534902582183515279917767327061485156652888569138423733602966056569020910524091422589317014905296569177713173452288208214006369456118207054933242809524169024025020363682793684717146059870324657514601120638562557015738469754936609965409503783429330993468271397311831467008700847915126881296183621549191559161075226485889077944647037620692566745898917611480994662966687205891346362621178458870438564665995425131949102900789823352606999919273185209336519809108083627286950289396677900569344741107328406014779039197602291459997843438222371830264013276584128280172655708031879685392618244229099485607443484825701421828351529340524503974238194663269860395488110837256289512765489831444104769224370362049873938083742632918396369589227112381626847263732289675373540249646245970573910417707326258015629248137600302226945316946035985576994313788260453634227170790922678848966353485901290590751191921462706502079394157423668446455998452531991804433980761889892743834364061794960309961573523255235832694347657456160295140921157662563797647068882007867901032878172413321358238445474499213709272461531077155642482170651157830943914245241881817249463040668065055519138588768158235559138023435189358708935584363242641799521918285951466678549879019234497285988587895389579144990029961828723979017976412893249491305809700843357781206287003870741527449848069289142196409447622593515365724029708431612022880810179926462589966500031131842782235201121814880585383106763641084332835160386242644563442611012157635946686570184893605889055012331497661923622799825456058543462808305199487579066848938100999634224126953625691788918820983900548503249922273146091149470636332176547214889753616733869963370629003490860046804642666033581149139272760899824312533995555035123814483474081918891813694184552967336568182156037977271942297051512364231304234727230174763097795273297272429203334352313440255971124589986588903210970837282204966855781134599503459159936574385777832316300364667749735618822831757713051187077054108273108514146082082984089621022417125867625213720115528861822242390103537951029844434098430090627008556108820503278244538700212831624268103220710585558715093001567349369298968787400609287262857464226750821197957433921464295091853844542593306264934315818966220235553987807505792918713100969032048183567455199765689076865338655159250652278896465494816012836357698996560770485215615374578205188112577195826848924414786366437245356328208607580064818463514643010302000426083372770832566365634476397599817504394181766571630408109281273743235593361370270918321085179978844646207478822956915191424289164357309675329270005379517794533352460867245991305025230743908135267171237942465290717556225728079030108172362687909240614053405583009459980426047832748350329893470563382409426433511450871900396726167815044659263168959337997996424711216160136647227621198848130305772010248440372410303467696824681184091198845594910925793269046282297931546804382227985652384891210680904311487400419567291022038933499338923066780851236451336588754436689833938046255405103158986148174677144014188258964987005000857836814719872214805945112976738457675799677533158115682672304586638879281525199020531062080287088756979749059530719059039994741646731310194033378940011025025103757155939492377961273164150921274762005113620808990788139704177946015795785412989258238549111413291505464133554124248282423731823764764303718731752804664899332067423298731194717239967518927837086639925559923446811594609513300327948571451581317511405804023756345097228102869309495837056333518415198556095431129849692112647755696917142586525568661961601211602125142907711295665274989819593791148589284813733586610004536693381658485946043286132889173198708123510478271094663948723986853045771441768134510770954294817557158295603746203646784904776234191658774395420663611739914597482017177101404065785099473678123938735701329349195338943752920249348322024785654451187663753500961419517764961048830872657851768967421300646989744374729444927296581624933546928939238044507630488649344971946794202995721032054372654142732648966338591424186248401654285236453940796609361496786707775552155659573024980104512294507470446500607374655971083673416542586207020413239851175141471664748662837320437237607424812013324450966301197234853224198531617938829385866959443916900564311689404848247190256255743018038487239780652624094445049914519600310851861826251340980764215047079902647844200901734168563629921494604691870633035656011052420675753692173411037863553334001170808474910912050543053687260728768164413214472887691717713440000612351996018705430864717404934360431104915268638355879667606034989946176956845251632575421793601906475320132860279814224356640861803092652758039051374611399208465569427311469983776580352556342980992217599489681504543468063967532065335519868714731858970589436842923305747165847849620587657285486012590677924344921315022331451070835847735315582002280784792229240239712671460235054186902749485979630811167470758998765380123388280884944985964137405205486212780856547700869726252024149177395172323911774969772942346899081908740766155844825443140058850943361102423688793832328560070203120756078737457513269155214730743426284497554043532183931954633377015875558916386902790380853314934731443729045601054080956530396956203637854178485209679643673128837298537486643537398669751234246481454099831011409515974477864713375042990360752638054357933313253721743071686315402119323565137108739202609748262142027136707705289131384772550607318723608362780739656227733942970205995308212967866681381288026842944417056945760750170806448228284684199638704097533780986474840640052527029432115753434292723804096950629940927522350713923874271541034228523691866660105067338419096286222395006005356949610399801234427899993702295754331628060199677399929062318138357965662212714122157324356820478671744099520046177004981964799892769018402097746628314620486560932792229454745785720900939719141584758388480794321708329061493618328455054560410637268462601504318727199202437597051908958366379000855384243108998171518750912523539066857283417912404621279381578216234966012080424775567767649991100541723996032129733541083868120699214357601727944524912362486856712603985422094363244937100092934145247517303366130572583798955141148968158479426945774702652060723753118934474407393158393158175225676402747472123036859716514014986198163188611508332300759129021555084418243846859696879510971191967068943504737782142214273812098539301131473452532013169419573908834386313759563986127421532548034609589305251728452734411861764831902321120646397213349054603489110679130547813623807930618376528266133764802868529447960369133496431145599197156812542934526074387721840285267709798776503237776382353223103109944880551188339469237444493337999216961587966390010710278185774644405313249773136828402750658085495548400348024771251085702741911987879302016643668565630135397566456112370049033003148763755195976178452254842955141385549905666061518439338950715776221270563938426485241925776128578085790542313029458579488332323520426384541993285784977648030290216300710942386725086416186936897047323701989060497983507593044052803239181112977437675089094755986501173537107146378549457737725200530129440656729513135004889673583119982009601517149404842413252361508435432428963702258174878273534410796714768522948841712011112593060641747294954041527566668340712319188976447480997273664230987976363939514604722477350170610963086663441315030704281666667512401873021066280697809813559105181892769555206298175008384087984307909103431833638756371022995327399473751334642666440609743573570756361981584172370250756103186459819714398910600082742280720571026206729996947376110811289634350252295740962410266993117496840028363494417471302844496338842854628657017187582307501212023662698983067611950802289310561090196592832244069337842981489751278786889191830171337514842770838506243042251069628918303257049353097099996141396629264453405516840997623377128414267791202357474932108157548799956217894514974731475436912077813960579237137076769142871794322491728110456816107211268164139154215275592338480928843315720973716466354147346723097364587711738240198044620493082878895358230332012513627138415856261921354310408826300700014453364508916427635408145844127948609207013243065127088766782051169590325970709940601438333163993418495978272006891729195206537929640613071358766631666630139946499150475551627357063827120047151909823841942981588886211664333462657174786452419600850876769674451921116476763303709445715251986245293448541570952342238477734602902920918489871937145752647556023591021662124668191705128215067564239468128625545255803750320008810912056807107456820606198866471458673492136420394007793183658722714219511049373975009185647528373824380337378422892511662912134641957808687599987949750805512225929886512066695036553757208681662144543753725242250158156246718311319460579300901884353877970006985656874746823388897135911976399677527796672710330981688882390576906542240596132872027855131694357401508657096169734338686031339029365142456915874381587447089180953343607393639763629539428748707913212073921977806255425841960783224567652016545944510845120327066492345357199677419352700744534816938094895591748999462452382351643388559017726798255140286384855077390129368072369892157174319650358009492880611035392870505569733568812877531586309572588604614927750844029103475366634201911385540447734535402431752071910333158893020867167143952117099899369213117691366651893431941865538840063023404722471635503288069484251163857660383248642617171426796988635874915809686517987044573575690168499166512767885401568102387793545404300881476328786783080926699156751918124749783910438205310421168970232487814451563531403982818241440380610350093467798478424872789612922016925524208895526108843186429174701770976347487720411852114184299180983418443825816940704839614789478338580102936017186076443210628004590650888177625256959881858842447455927699767097043370787051084668185426205479512540758426507141901131188165130688369858229180915931712055462293096929949296988660240673728086659011246628973287233755792793364203401656149971076940919364008555371311611898672758564871977754373829576391009292812137592628651545826162917361106995697733080922496333110868498969414192120586690251498233141576545140267507158251438161117237495303959451431822375238728238454473590205172311463689206659084254624355012460058536462605249503189371561258723874699185229701064574341577468087320541147595181770092868052294423375206582984952894950755694124171635812173083146015054371616352866462564653341882542767188267939994064201172150495930573164936110973226497907961219099009239322354899720939417471542412734940166583002784798256932123474347062031362267904744224008554668951444898570513021773668056810281484981699530356130513562382995005372510136970524622573520914115660553863515119034187195029774935792756126146209242800522262313373774748594886024431868408359740654504473778583015427566647684819330624745309573728532357893809568045371932509525770130574585613170714835413374501284807884044900499429889135435968798543776318146030567852515868012028912398102223127648019574002393318318337318379493400018952861859515894203920085324707945883893201110086929497322157067254455907588214885190902290564911626118761663340263641469494526314747181542289911128211962838802055832846040427129911995422835283328260729467299681394789826907615572250723955600424990515744174653360575060476736485538793887331785958392451587706106478739044913525604257579613682287698186354370542340632888626935370278826859951973755299248716348825384901107144021729419907377414665847507101895608215732822689446501358643238443120500265811257414911158530342626407133532001168706194950167977000889465430553704669596900584423408821436361914322123551664359488914051926201699562193139097647813093233744327525589685540157656775224914328200891041545909496458192509528128503924721339429547337585637221533263844046400480039517930583987535802713570364556922770368523794093558859124757687034976964000194647269911640609931099639816564310151280217940170207015815659940530508219504924230182589307408973957664330932478685237809941991765519735692132560454741886606876536518332914310450544064981583983016247509691403222296027912739995874399725988626006880319798747015623302538957719372523158601016549335087155724670480281993713075416061114878055601749892193764878986149981399409388063672594402015837809411788839817945150963099111324514040060803239362302656590631867740291435515541669025255349964164235944415996233598856639818943032544699706137130881520409904335259753310838453157798334884425276370843624227458933381691736769525446998705052295684264917994505045039082042727341335587596777050610570464372491560893366621449076560581297203048367012285195911425402024878986315803698988905913405804426054846021900007588833001327758232144904680875210329551947540661504079832211292002578339566520868773393039670437204206866097849588228360071568938215493342284710743808351140455489346343370002571154913835705946350528118064481045238334626013317735176609213469329645432826517188330265726305650919218658154977929672590183671797757041557754631746105388486422424767205092746098290392238224229591655799738596072901843334102631444737775770104630976593624614986873915788909866968175227541572428690825732798920428957466945706643311590021904078373559204287591627841330450867254464501431219984908974439303752516818748749960782520532652987966648043095598857068295404207625045211554664637465741784936549265735981510713989375941162060043887629029108825596520369199237325131605906103303599765671398196834955860068970921198662147540172664826976741876228683811440722757217997334864961577250997813009326946979367236447904153501695641987186598092807383919666507803461491330494534078522940247368888101660944886785336073689756849929586103026057535403658210747257084900141351514106885369613581475281258857696532064627465996144986441178149299124657539579207641297906904898141919230888944153408732838664632810251318526366757252403806565365892888930423699252638227323752334187193068317878516750291590400657042603679637181780411199979134994567098551454267890195363503688249338051081587741714525021913301762251950450062108019015334434868351142123725151915246064145556247875071602446466147971957212525467405233747700593404579884481943806287364608509681758991614031398526532773473382010983521457410243559350037081090137152930581397620188162237275219006776200581906988710301926735971903006289781740105961131504873716981196098702686127857520609262040672653007660262074573181123433420512588606944808151138101994904426178496234884753091142764098235221699126392757202938762426354555987620047427053513838394696101394325356214449160972376755558073559284822671417029284044082299563249203557075352005597230713991725102864312785424550193475486936563972357882302893930619352892719664633091667297878801551652036126432888925685309095932181699566867653112471439603192280925183063003860976249928026694444175831675474182772316568298703705409692846536790600773044529883034398137292952754542502009349241621375791418414747022598575600445681837292347437000840634777548956105440535500730732237581653969563604271241875674630804826292405848677168271699767808247523345268178706324265261351547113495226500406138979460533161546325029522046849293343748787768489554492345400113376679135197125220601978453740844978869545545534819465593171269839023055559140381665856791101604251790217206080442543377235157584907369491504043784065219048745526927775196583934262123612959227377311459776715890693134436451458972586526228232370033543119675761452547447930429303081995422093119098870749519603194362099589509182969092473541180213733963049861988013750057651870091979300700370764697917108218035389222692365369514714476860253335673392651876072530873950593718076802674941305744243257266997919085340834744358790748833431047459867685158572175097755542981717699049641204204849440921703475595239658019855860844453544931677806913267647822546286371374601833915772722515789619986910132353684678486337787501595947806788850746717264867871119594539614446287726323703350629435670886924418175009853514461180400903937865203073927764145833502715076911767771946759246242773954188891003609607007917493260005817559699960812898811174968109002319362925840736204827520835606027954186386434939720492557526296405446558241064612970394689213313376697007685601513109568583396417582187780394001115759692770262071283153096673605191186111767155585004964757169100962230037725355707416387474459327893377601224350685123961173241742551510425974733453597660255342745207632376640541644778167259793982999357772324507382021749770530205498096591261735011307372481760234117674680850992843168412022679072345699071609301193969291385282271272001897588041817841861987387541908519677737053791015180300943110625424075508137318031860764935563277418423931868699057327499981525163742345739169052586565441977002210462888084259990848419573394420927413069731882281540185015415745574113452244895971123991872907456058780694941240738503018296979666703261629713058807192781717630285761355288763809869309662246373754898733179864895626844029595503157849875275014022552823125826153424241529987995910424469627913120304360341432325303015293331114201419118185993435019985969517597225735710291263577439027885364895329891448751933013668076639618176587527584851158652827620853074587651686693318843024448021588785741312911136590276996100231718671970603615166969010532501052593778208797177752531694178950956430498982802189917754036280559923646547939752552371735028816059996685908925857767639609509445010575169922813781658819533381706610454118754206288152065819401976996018647061291759257515212851625483046087098662171048266978338437560632271015650890521374619124001445224119232099026836508497155825588591144594657086076325103990147829089916472662865098645780772487896866582540012851981170035307367841244919781637633811758707526273531622360812655180500400959795404978364880746095476119881274784264536415048116843323693102590477988607175717697422944589603617919255889208188734706938946742240189594254517217336811325690472173571298163210275177932046169668314585592630591732933537316094029827652787333124690196554635783410045286771248057887457338150120116906710727608103381341609842063653734298765902373287826658526922367323163370253968687431074197401712810813373380966646008251284455264291356634924234161915596280233103206320193972582629073412890407931845695898440385577179256188398986061614090330290654997007158875486615825297586885132217777948949237482518640475234068368970828005312484598444365945327395755892738978183805011247713304005728926577120999949635823774727818506450558386134331812942140554318239268506706346424306172101874334618778469576226491402389219314841686226772198356492867311684105476646222996204004146550835149728380862353368227094680618562305838774873053003460172866819886366353822788149513970344476983502494711670182513610008372536986399844468401067232410851696399255306228674789026638995707804211436241164233160355115589453975178485642305342743031222509924878215191714109433763057178027272098780641781341375838765929907222611930722479032065267834696274432149889805758664181562648833467433172496553362444780901224431743800925625106052556482783187349485816529174906553610427918153984729810540613661745974145939777993645658512288368612994896236891678877359981398862368928479049607004405533097130469448383710906743338593859387329529832038570096858111414291130550108539269572430800918408531299259747713930850229994687122586415661449232067700033129889062682659457666846916366897617542021114680659147782225687960312357508817051604446761387349839232849121105533750382639236464615132789645808115267563947965224569632827977385191916983121794629374249420451667672900372076472748080884862927251330479853939827276809491147091056422829644515042204589958587965359909925957789122189052529300991642190650231751093121021008621551481156625212753613758127094445818226813980224332627887465009513513728703750104207735765133780393982593419594611140508341096668218333222530822358659263660205580349560647908267814143887592354331176767659500516719032190937705001370459069142967278974580003431188183019941024479946022792568980736724020529209239188814255648181281798169607938608724210330263149266887025868915006183254983222725400956904143376809910298145843838577046001120556363260345254686073935019089308958015682226315121537200366422651803714912835829397510422051662197548524134164478525759476805884283770104170451049391101532638696701465790200304362166474116160259055506043949372084825802340717245723563022347002423762690306894792202294983485770229913817390705435524928897438073226042504924863168640540343170812294867706973213548743731099167672639715677446865184210626521758396917853472841801640398081502332745667549958642233604888411597025015287400399751586130784922104505156162133888462199896693498271633550565496929728454105335985958403482396370870254508309440726517983233397516668957462291400662395392818852305271593996053061320088841634530673530942665152996685850027394935222312531746634959642218792143655698122602114303649567220630632232549549237286368704110844844433496151824187806359884727593534235180172118290996220073997173663596477232364280267716849252273564345217907136447111457702837442980920370488434833135452212231525099824982829981853233699453940808050634021431196215350185014079556247714075956210879343671753217215629249216094519491333919112936559417362886390098746688167564989128742783683617981007176466817736316844205599149330741367071543664544305559316669154810994322683538597286857040882437425891782535062457443829069250854933583963332358712104574723947229488962393225955905550191936424754977349671755646950703367439149783203927880660112307369945896393908675811493018709205380530436541044221128226870176374836546648550037947629358645006842364640299604410502522307388288190562221424964163814879546238096584282381233583273070660401206560669383367134665921910096806505108291789520279699247650283993899117097915167898075028948890937408004732845424942583083375214686001373317358913025107054106875855801645212237610185612773922363624343986867140770924044401568730440616864467022519557832404379056514721308673434835701552769164684268888511696931875448692962394982033209982461956777211029328999674575569079898015800575371153664489544587257850094075356637904614930256780132820781889384690942607437919286446502131425870144880017195061875359831425442866470507291438174301423662085287954583473475627772958086398722745177869951716185946767207476482095990481327472411075946313805914175034998803459629841524495542192499337148800079504582971293279396688111295718301525383858163362182892012300404678550286856099798842482178178227059199212232112813125956714809766401213884815385007142665475884830973029370850541487196743601681727920707679722254322520685264731712024975577474999668526680724228500826830673799051512875916353622246075704952421271428450108723898929354277588906276282739847125301905747385682755124561524899726036043729126908595041747133202523574301222265452685103791694033354401846622011378363726373502870677091475865611805569576290943628802740418687199462488944555112051682011127443386954913302685465372290327286182681801090417971492405084757885757919177414131174748209854376530432282074398630513466835020366608913230721601209025092082815631149088830732689609990435538708096381625712432658310328302716818768662639638363627215531405373773971813661870844344358037878645294184253111248707997680323674436782999376723766676427292516054210234910669677287223465098490022168252169857553957945152672895083911953935817213927790093624637309417279004665033473491676999762941737307077302178137853175829890817482491162530823677666695798407480477580982824937186530037200880536206709700318212684028603723651172961643100213390655913606368474314674618097975654863476709633903136309322297269751758264281468520715991747306251387792849478756198613420016148434187801646653446170524681362997076880170963201884966034902656816369703825305954249078235109265147281750015594546896065762874662938515645618815667577260790939903910208583640942085892293095496213148036409029699089524823252492881484423568456098060401807783973837948545369303904316145010050398188547721959011499216724160134773493079774720812777109943335647697387927812537642488831546827331764717048240407879896383405807932380025869724956439883548385187189358799807781597673508183057649162119748513769953840794591788625773921016680040535926718846336834875651781009080979584307196997996044693285892423502194604636722417300792653649452520890592892198627805076722133513082739326688228841269812274474949635889206393802676424280386308107649369639924083547022039645921180590873953950656095987902052517475324378649500424148511016539724529786591485107611987273222203206157791914039309821695194839764612447285881351710982818040762142208693123142247119591060865697937928752414364084895095624100955412401326623090799994229765946349875809001747110558564802213329543014642109868756743932332915340457069101267068288785322460389861126070951700500438815326150822549821951153518823979954272697811752678666975334975625021198528439038239221101435102402530107748436674984994436373433998850458119361671981172193461797132316514173521866403419920274058958867512696509637954888800790085647112254871451602532916957090403126384639892004828748054352451835947094005440814153545163851357959195427846434781431203669168920766466657370819636646528243473079967919172661613528513700690070191549168370363061061571693355977687687641446145196137117341664086186594272253464413412771309454827795524140947724422999880634781770065802655158072983122754973038264526913212376959625602093963006120782713394645487305553411483147035805875452847789896420326343964384558620064731487975671654491302291233870087838491029727608612380482133554540560082324635080672541541286251809913279421776883782200677180255618848224581227919375511829794623394926468022682061664422610630992300993442611886596652148279086813631337012322075225670408055885089172398193020906360236851830895463953801104976970959736596769115882487331366503154785316530053463056507313487028030110265580655086177661833001746540861665352719365411392305567607922440252745596992776205863634324714779021283549950920647535186843671106324356443230829152098899720406176012182802597778857939282178755253951172434282714141684113726296920736409917843576899301046415239611960070195140475188181905600797872055379886912271895507237260069160155515722494493997405602864594138850870604615350507112479940367435999763305260996097555469649710605757352069809448889204638289170615141628023945351836502921795415353372555366535950745442610874467309651765850959030492543242440284205646893506199110737179422920094597952652346902836819210018843026820247385651915338065234943354671175109228002187844355456255098084344932714060029295755111663640430033788165902257462286673284798199091945983369950498622575509621866697667151626001696732278573173215389306604324827190247933012820665077339051096446671347070776601651939574734752390576849175255919480296309189155417942402646970061283365405874781490933107029136022148237019333332650032569073978459629836108257699804288621815664166723342744008678172193240676730151185765098822291164498532939774881705969774113534040558026936969962491095617989457640063108276784528505394477864320340476523411155185024478666089806674937993982386259178616033314577390513168302467951402042572393969661756915188851203955312111820169531027628604107262245349671665882071408569696548163883993343730850762947039057496457827151483619763698656092107012911612360029819333447680764875881182665749916858690098153210698563824598888760933165600264658551525862370979288020502483611970196491243154383145065146274488486502110808387755044153267143723528545595531829470120063936935507312600279003119510882577747136066791875183829731393749292330516480237407172910691667234253611955131906217578326131717596992073925263532633441535866985531965807123969922991232624141556093745010859163120831402112133895082700757682847854949306534614710009062100847566087902415072118985842235280915141444767337543045537176462079919953543074029229791127237671709891917853341458689190092784668162418612798068624612616859436263744073086095427348055750096488516901421351377909764793246809542716451810792881936306641887764875703394747733055928160704944135070336572999006049562033994981999750958616692271547376950436346531893638101200723992748870898120419763116156643926891059930039771919754267203311592360136718960966288159403837727653557130285594370390457097413856712649779992097239786174699546874151479503308482136094404965237866276872986904039008938003102722470484160227600924148352205240306481341790993622424177056564320772591582413229505754410674897471874600365105953106079243675927132770989381317411686563839695691741355692933801476167170433290646670134062617445806651524060811819867591074625564798437563391552827888263000005880805739690318326927743200388810995283311304008945571004162705795471035539552673253623324467960978872696899419615616993537691811441424906276806224222398197645723314141793487122483781411501671837515848273973728949097633814465776644456010385154620357346750580591903052103169069100708616854653862994611108998858195898033520239287526100144423436514041586181769984849978001882626655457253906060279321543585889515058744216838803445749387671769872447813677636658592797708835210327279358437178947033909833426244701472035758024956949140267172172773127961769247218004453584976291581185322689325011856021862794464365978638049910446783606905693919933878014119097988367738066665800538680275290157447179670854276850036108078007525327260514356632450886853232429916107548127455163581622851474340857058147551042043855381374887408680010433716020414883329564921773247490372806677223476871092417553088950312452663189348889388627065322306911910923040653617848182862549800759531294426052272410126467585668235475287857904164049435854085477712867306680661810219557786519702026114755132140684963688563794956865032834036053017084533394466885904207141181586832780728810328316811851043773237717960057118815531718896469397789932372798447062135958641792980090495771330475807529851333616700109858677627401690328933779330201960395892497661495198371199631527057241408327102421237995755299254809842073165773844178644866741387361241646450047005143457409898979912120571976580193865245374247284333892291987306054603601095551000294250564394122431061114649792393438473607705043555715464277458878317340481603780772427068755713975135169864929981287877423445757625014485376966922058459158630997609935904567092085497051032490458941884430629889132566664035516844562184775471701881631307406538266345605673884700776445214652478961203627269874056369416261330883579731615504471304969347304773378632899133643945956124998776669658755824067173334378351108142890411250087874464776200494348162431874867282461175114146779898775618303309176968493859445745481935079131455954698253647731075741380086084753632112212922560757536163232368165350544610591380818299876480925596607294122883763956633630805098162993701267505270230720718021107541392329981785716277227803192576558413267589783788084787337148522977495948267838196726413652408228673454643231417638829633680429047464680551668044082936984711211540776473305574721687910801810784833521734123460271985669732070467601361256325017570062580656718836620561200029997053732694885884205638945761803429306557638841055266790239745670197084347796059616962637037259737808015616932732419947850635457566358846564444407214430782232297144644290255448918434656519822710034432355605291330958144662544340561073743045771781784873490185999315347634234096458807674507153114673067521808332170408617863269331484429776419261655943327544530965086095270461112677630150046068880544768882694328852381870551830620993265030716004542793577037753711065423571262849385800324402806333892741620695473065712338843951839508131994113219622480454475750460737596985051145999586813116564974618589490097169883229280170589535261178791247499595369391306458904981440837448496183970770634435429518545831651466230535778103977906458494009378684869569889985120557167262245430307351664958129062942599938122097976645912776253016672744949448792833279867898757404063038323653270640146783288807950864177243286605766776611897969962392872816206894142484460622053304327559736341866435999171860778762622269468590396401224632092482439137311843895347554404521217829401039715163396635462742685891525854463118415245007969218256946269142371166617443081068058940278656616887211077142345396104036726395220824131743048606968283132419924735022431075880760906712062521312778208214080060498473324154096471843814630773045901251457387415411334906286719475473117837055387529092568653809799677677801055676724450892451137568053283069398179779212041453551793044871469431456673424102432066079690262499538119707195354434230672022263519819611601303569104112740552667699745178387293554426143930761029204949109793328807716685536004370617758821733037127865097685507114098492964319793440181090485022933901626475196160484014334259937576343354462325533261158321801477951303674457159911274074157263270664647947071293853651149204226015104591658775536202465283765993598311698729021899990859262011758661943485958796966610195439934934661966241831729355318188912158328599069203241236991485618683677239265674369643497316631284441543834783068426301582983122012677597786061977241648456104575201955773092304209935623805149545445938184695155947786502550644146445664466714533116040957045355221464231001467389187238564132357872865274345480207179381283130397348331748310629315966177995265085728232926809606029822643875925519674705708825065450616081477742065204213477761312363853581716648363847145601082890191262789420534295116266531092271525239066004406339115021911799234132852369693051283214361234812084091102513834210502256157126888333169289972375568032713595310629489940453540642334646403507655235122993412993732979414570190769411684754763174383813326390433532608251401373413264551420493384594348667912501210985944596900672597379611670321291731535037237224689241937740091658803311183205310716174600695066131074050162190207926162232902032425632962811459856539686594024298311062244852483374409480700794031731505341435944398216773825677476365090528042498676005281821926826588629369813937965981997330937730888269553511899427857739679697045015528972917874312129337012766434320723307419216535076127721603768700816664286841513750968687366748045823130525799472907856864635426195399184214902493409783557180936085134138473564038727521580179532773900828442266995742521588747657289513784001592404442889489880797373734446854985963524032102227414505895452090936412522163709611727399949081234123621388132465992500908372878484652677449881693579057032992707761061989958059169269702095588284254649596384453239079450912928631364275705998228220860954298521331223806101513601513493679223799743006975122791658325667773387340844218038806384188308285361765071021113720491518791920918529927880099418068609154516312297372575976260354996885543784108196833407344277407922834917095736643246985617229584610926854120663714645980005590328889774716077512563369406290536998268748447002090546981561113122910921758245229116842743570519153577610480817356037473499555737696604352557424248434275376136909923517641173201240161819756227447479896292184360349886999010423288689534869294224521274626241473577190750432300627754322363332776445724122174603949933439919974801871726910427860973760463244140043019895130220208717325138055585101775348675784171074042983337186609678203892346131492874837049347491618053224309741779481028614383790569887465026174858302761157901392991007462710284180559201204364139762733201768411082435812522628709498034141435845965499728531943905758027624475880518726518707951188479977034214789612708955678979283153852975962525136588091017937216453070676974662368603682455784111967234306815625965050931042952422366187562467718240297019443871553871429161363620176857624711070045056107051952564143027556985115157679550992210314001603200349817313757795494345766319064364549049527206005825329302378171659372231791104060785135561001706208351224433905570606810217800749157156311046432893482004984913116788517706601459188388667561943901024915476940462190751912503797107526072022631561264825905110129977955962427269639899553911251683344889225950413809719862872355460747712044194780999867709621988697533324072478009720609831619561975238094159282125678679548571983639824958542512249699240617114207806825490840500235112301960040344542179426802229077835121129769938170721869302861138432113086458603111059570153733061981557946414532318470316729807599702163385133567613308550707194802292459973116414742334551601366663398923169533112910977259776605606776949903319341952269817022962980484823446874040058663049563278460416314084726912144045268185245919612266263506159000177558490816706218284323855191702997142687734034091705265709846813757509836369639716510237908925686349608726237956961993024315368459877651815802027704810656505565295648891443755988186152386592860080076941680071610327657799930319985435690675441383336707352830424423867505221968415541520879677992142438145204233224533378658694304867575083996649263993596545843835166292648576006167821802232001210670948227518842373018972050901937741513806774305348207684381936788019543260543961952464475734298554581766690889174806883055597632947404654335121146050936818660698793380355741013747730255908821774808143631635349097622624011865957692577811866732650058427818716215280197555744880604980599830233457265987212711648305329779214496239753255424550279125883712203384885646585377990534722442846801132063422983922381989936087550902502885975227750839424712964139576120732543796619868566449791413858465890053173210589767956151656726638482691828897630811668769705012306949075055850451691173579359729326552916628074034436791700943016056761247600556481709982056711621229733043128832937120413131607521617408700370607801518374754145437678267751609231063364712557722011296696742818586268711396944529704186380356087826147599515932268435662221442645849078295651684233500586210355376852292984629206673032260861355382626172951607003983079275271671540320484101980881359912756092506508725221240108641869388013568928325797552301879122734165578960768091216823063652233601669897548274865776561656916852538604088222370254222566908285483792255661600878356568534506838436135633343045312257988484411129345723778460581493742648036673392691110611191404505860586706420642554953689299562928816968908396039377764174741153512112027047911135790999638836635775898562129038995914853467630606571731960298952919568816686032980753757439525533658505287864111312031692543101428302991576507796277324109822957750534866219556924836142414469204459529490743879355750404614755648977347450925448554957929207194660635635933097478648927877203745690248002953151821921039491529306997943246397891674531623849038517118592845420312264107755769596316299678074793221753478175151480380778247869121070656132473873867158326581229850557290095345614864048303418050942059960980104650666167415277737708893990807171381190974191046079848744632620190838024031408888271201086699525568046698233538102903159731342343318228102399940705321255600078878274153803116559986142688678351695262897306356218787942697985016632650515929103338840556761605488821356983064191787193382870535961291021877157308773299874825378487015581358625978401060311200823407274138553385375637318384886105161293855334449449211369312746719674463922483841217848225489153295030019866648662079487623552403251747184299813095359305032518741462937143331225936439313014898461455368746388867825740463568837327333430266824408290790816150232841484297298112428036180653266541562310750756695027319060840244476155909014429571836001234271884798379446020018418305799204758292709281398877478227891678067162301677575442300706682606898404594374140160563575439188751745429219503019172706447478681750616261048499704567659426251329138934065978039416728800030722395921435837166374003128780791253328543991791426910785628460811429027290268590780802912374124934389980012437061532807945584065495272615050255582816894827520520765247750698386126910594029013517032068595953031850209320661380299531872996015150764516695840226260386620947579090275515777019234079530103680292445834573023848564371139857148289776377883414958577209715498361725550016225554378294002847016971228086930161593716519409779773665572057946896526520296215248591277001150529728621394527207677026034871874458694274229352470275682712973492521444258725172752897214019345046336086770488335324858129249243538166756530474294143179766913755609446701656972705836846331529172358695788637388952690905435368986798723524266675575084420728233053772088947598880574031018511811096062997945288112730097117011079386317958821360881584889682533122026130742698720457355455916194876816424931999155484132799470221385026373372945883345796338749311059522199688760318224685699258870320427057842205850843119938626918576506030166336061368321610861662723498526749063122778679748578331303003554359407678297339717936752810698724014819470948074603198137762829334584975705375667351947391702756705306301671676700477824283629319708604131143487852274317261987744949392073347999072012333627819104322008443629356255793778562103330750283435441809103137774514702047845083462327381900298089159044785985672912321044909276528077018488787784276202825687884465317352649235795816960337822894574396299569537236757092423951940566007193910709717452566283088446185852658155892803634362234036779875494705931896498970495196054761314839915879019309633771062465072547349164069922544901879593601110187450695235341990045185804283200548139059434422490787399889961080075545816512713837695929153470343624625466560688349270400323662851163104938695628986446524552472249425118245292782628148749834624830778778602033554147786652322289067730635768735641711867419612783589685363641046858004381203292269536544391743190295716654176640733093167727978473557166327267681257929856857495034307912694314463088490001009025815150258454059219347819864057490794792111603719177383068827243626375209681397969142989546928901308010652283801274855251202765713840018764702265357398652285524853533875180750158524595918772247155472173696341123525561075181966000089438888166890458911774307521841023900156695997485786312882640516541572726579551035608865271325994252342797536532754752470799307215622648177126555857756206064922160846280313930957788026976580545783278901802090754851318782871484627977000870042865583411194848800192619371149590560205863515562312018972367981208383512132017440870163101410960244321546139835098187556620960696922561213194784440089927636812081737848968249236765027204714824617945122955145017703242161017946383167022300307828905780673145399601900183840836091179908271569138543428961851469313572036793739381038824534319364694677814663840921171322543371272154005823591771264232528454291727294342229231144432144684823369261744289084079028907213939439967063449239282073443710056216713045504509433358836092717295348259229242863699247939896285681886933175905620260383112148808972428469865914965289998695219001774206999477737067092022764690472063127914962106966607627769970511102294418562890861772353154864860964424222031139453719977914823150832245249383534148670692291333988624987900014489972749613203243612695112093422051823127468213462237368976653283418407062361341274645596698241260393818329245495468988698014652859925449621639352643634957681947612859496834170785738543817802587236168142619155889789177901072376798239240456450798706512378375579190958718862696728267238181547309765821402440596174026166197342602558718848064585498894461952075409139488731387986194730965251346645284142703421617725117160348887990500131695524569369266608970581347850568391953979114636511871512358118569660348157111221089807798692408874969544805128951933090804748094449066434673963751236140325338600582206266271258793122438911714197223270907488472968040177040514723066626097637994712251505611249266262714613559461365450786090128819335361995921237372230155557435383781652384128160798007524352919873223333779009201671541082607421122670702130603518790922815828903833841742981463031708481698716837709923098415287299150056558269934019214996540033343634551716708297704509688593599738550759777729834160785971160162368805752725050491842911057588222162026185913083516320925740080050610854291749459194871055346741783762366016752615887095010273241212649608546224201387723091597342715909975480434394058631607329383987662670628604922057105293654061733393149823293886908542397692702312279843115412636807394245633376924845884842588933356398338161477646330576388743196632845527492432273265750675689288223078814495406870576913585517631074633061764454814038046825092176727466351385988187902554114748007397538679093424170909467336831551308377353097343302325368064177129120797214116379178995621941179455998042340651724769439640101770294691548750343096254734762019763495652316739384836000186253249482348729425030485775963548185546806398988163282221177547382377376910409165186819825675488432898865867503267275431337156376219840748748666819628151936274712691410469056990667590556826967886358398780856238040406823996405597434952775311525227325932011076442349190042913829358667705885175177618778016205455214625934790542896528492937594473494024979558926645188585715195697224983179663865022664610581993376912313135653465903952487879389615049744001324196789020647845262096095821785174760009005675428194999647849179540238800578547071523564741449712641618381468596723787334060944880516203053625945758057420404535785445687422029535385909745126149041784881544142818583818385155745175922304038444617737974158312805036632771382176261936109638655381038900417888233520682246222339151922826982749045748114671170658333319585414775872860270413267179067126329887408642581549407540657259428798033377475763978039092577519051845837967074533061795588923522022807142227297673068034522506188642387407325638908149988261387379845414543245444052807065997119092421824847308331709547632791568834512998933140357172579097915112547994862592069398335804407919135648978039497087744629441590711832116345057289498560005158799606961325295396874199180149729746412005786680556303445123236413233664493632285797597523437142559878443381137001666469980463948166836021875738688807140008593847297655176658553201938556291414019931615416094579876260747614938547138689001955802186767924087398192495020866389579587212265333992489493818661495498134501385090182898424452995121611715939405697965295269082172880102949323052408972735547395874621630506833091907741274341315393788822986343402779099068917962379534265280950306123393072746936445501303301688910739192681604581819533180624754569864709123626656779341661522078933426774387118338726319432442341539395554173765264236920037762428653373015526548565314090451069451645020523040909188661335257294722085307247252893103544617617255078956425403379465552995801047999818253611103620491580854546785835539364760208335939515467900204552485105629834018657828137921485469436401235905700756908775372081843135422211956535876934435131134725759801240377483034734312907010968061366213855780301051446539897614438868089696666517093504028474448999658838976942929685194210668029254428316919747135225529189556614763687703220388861887233336450498903787479092431275605336956259361668025387521827292227701066405066042541014406042078519380594928762615378499224481057631139731459538833924539345582584761082224776169804235976761953352328871118642637151284664753035920205564171400445326713305550365531525277780520996135004302277121694565051060159393934967669029866480439080305731370127372073650097826658671888346454184616982225769574364842176887144386376793640050652090451265982086486621522472870330019680159125815643153923734927030610646794947876856147754965283822037545017891751914219546712116313388301354463930943719560725560538360387325007760435622793328723081426935339743572655731201144597720670103997751371176582905137630760582319957867124837259268296386448199176942009487553281711080834150535076080808454449992653328793548630508339594569291961329795110949987816680057175508617536879955210905265129304800213860500043665936332249338438676831213876495707359362785200296642650512705791439734675394538674519551433452312179033511089228081227336289939638105651745495362549435095985757894784907301148782804329762695201589008392097062758629015909814216891187366056056002068464743397822336558646995879910782809041842038571010272842223881832132025565044089360038669474619024949069386031019319240055179763613699719805772620593318297832342742403210504962100596897638901400153098378638040705882540410435213638953341105573134485407766576030164767566803537782210443303178901140610012858603073138714922057099758937347636032925047815552754281674607576159446361232581964053693608938068806515230734825948942182002308913526059471889540036400005913412277384576231510562631303698458065880697478724198426486092566593175686479953739029486805787447576786257260888346432915198745695716409411238608119331300836100004966044389433425365860148719708186837739985916671002938081517033309005499301082206476538963979021248280473721916471956351242787911542023645719331703759655139989558296020274133857058109651213112404344660748530809909741838978736176644481319119690490783383081816803698502786574327839669781543028398250191466861619570462449929393779644786658701311890813262627638396813615343161374681314307274755834070610368490195031102561664915139619400976041070303455368285789192304891975030309010279317606394756709007104599995868509387766748464271155119847660995579101381161208715495547124607706438632284769946065333034588220819754240065167903545274052364423630265925692801011705811223684646944790653179992232510669898186767191807458369682790217284979372756339545240981822427503534753890343576837756375164840773596162636006593169304544468707548055769469892621278452153085835701766517386147133568701114291994847080837227639321098573762204248637093313464405309125566088036417747577189013523230665745022150845016558836547763570409964501167593472604944994580516711428335752139225945178216195592500785871314434952897519462090517240626870081402262068648812334371586016495443064302462531565633622777841255032804761463757409884323774490883314300978698864143541623954478688740803180078270909604952869093253323329222758862272045560679470460830418483464898528936526690509543326171939441375927824883895966711703573889840155547792350473405616305650032924641077739763755547873232338252995905307002368878337368005457415644111405958037664793241834925840324175453211567010531408700684553501177968041757978562832813231812377492324337331760972849176830863055270049144771602048179001403048895126555484367150740283851792730812117542499347031133317656883997717506197374359761705432345937260055534254030625487609554203229865268998958480929894582138568006000273021150239699799678671255829728754034605021523583869612658071204580705703838669357231313136107320904507787031609750348396688412730081674509203486683306398091760662275040305196259688541885290021165867537591804196829143638597613152096101007284274262953571066619248038602492167229799368838062680333000273347951232440581457997874505528968274519098064290936526496065898545610206349591175892510852155311760516908271321543397061863583310784598644361606596997601002645571633605522251052798644747372629842170028487915269814900717641254550857069391473697261019056679949324841194568442100704597878560575466018818720114426474400748235390818358902442400893069625545597751971536074724866018462049195104164234098993752894067989823291517211088185078417416948321211065376241922028434679705980667240735154043838795716015741033499396024165906768255700538694682468686415833341208396511550981065851961508730508367527661406006356803088909763528648195743563211980686101897692546649267297191811169289286162468548803957572568340758106665158765908370128741141049484074074043106338239281258341183188876563192298477358803336822002658104412832764104404475284363421240694651879889168660504919525482238152298853397117685674398744239345384083648071639974766503038437215734099867060475230408329263549575805378874220847082011219374549907173084198964508655212891871664290922503238189773561782974929261658417976215650375561907244617632902681019192503854150047469057665464852615377226381190080426500574047324714447751961944402119780071316521817197268211577431146343816763823328841860962318596544889597689805539414433909026246713826513633948635753756607784673851988596562522181318373932778285750395796571007447007220569618787400146904838111065015157452088953997878028750576619840596178349313147479270323516286497961081953176200429337274000465248820260171672365290086499221808798179879471963995067120799113799085810879973813976344027764228100794709848829515447489251369962658369011313608399534151116013461271008339526022773424395468400933829392637242314969932702106923239089394502318094559849976749109756814982843442782413272952796190942442767041379106265052377788959864693824153295386891125766170604321313707894886445453528759280634101918890052417744132462909432736731753893009713236945039195197896567723975695157686862676334232687857893595214431722398595812549488228428670898740870155706034994794891757977626999602848870208006353151768450697106363258155606673350544103784956069444919783264552004475604639902181592384060086962376570230559566586136926192519446166407585116447191567104216283700716067239796406777305499083199533064765884114756068894555135288463198865091725504210018806543746335646944869646816835503281047422215446026971413248955872394058249800337652602354492427463795698909603241237304216650167897129192388721206880016296977667511445803948596553943279039467048365043267565455457154369077020660161187703947391933711434539444885640558351402446978008382239215005038239773423907610826928718626781890715170414751399086692181479536800385919162525224826069428365750859407019409051724572617902365752300327177491120382201742509079725181133977294580834295441506187157452639925914030380951534386336883031735872052740207347803872146855165405423615215429658447947241277274952011462782016589925122002805378367681823729790167971803858523040222785892456151998326559717523563540034881285789468355820759936264517108232917240995201609950983588286842950091241483704918162626968652680590590904576069150104161056906487067768405189578185146791495475928181163220173016077148951565594331805740053382616954025903851505166126893951495179020369822836631368513057346405023154936433601252860081119444597750570672018430006210840676876231501580618550110777538257712678741040243994681606261726128709671366073553094638264972422532351688460375814199267094212519028313686556083915195446742888941244378220694883056090670637265562280417288141290225014149397829962995291171747483544264719951159493225411461663148770166015026495385352490872999804788711483675883491162280549702044470504063070107503638558779444485248492995189733293877800853461832470557944005044224120921516665150806864809349392156594930948647009337098843510922904964912599985697323442055847264271578468323588711780909904542083255281523247211072189898747403708740621907589463326723033746018328475249764529916214476729053383773320879981454372585240193572328563706973281591810082881610907165823311172770385499181755631075156872911304236965842323786873952995590880900052025442460970393248836535075687737430914163075547721845205012214449493905055571500457925288810559739906446368943795465711786826534507095236498092947541888291721283605856816155207724956309149495442264661363245829695511759156956971384895857393447977310578610740936274167057635773923653816082551260798713396899549967461442982053469017163981276583073118662379214275804449572544989774414201867281264263107238064324264526326022497397309665247578176980349742053425785175586961643006143840791933002835074747552588913159079093761659945968256108599603232948041719250436679666312811375237587860164335092815301671490147764667248631810201510951809129466748245814703350334802394527309583465361924536561657703400772618404129911026740483653769943710959793985438061182250422536620060319140375022227946637869833182345648934568751970726159522248372443147899509631793441044544076684293035718266926410575775115416014796165752448527129343129795154450141679068161926994073903903929984408990126776422559317041845289678943239919008015754231685819285084066678436794461390905391969370609307955740434860180844533921363437819650239816871930950118913219416412304170007498854262755758573713505671973005367280946524626178486352598579028000455630171664746102524073137311929679114489077650481855760070222599142913967225199448357801564293112976494112374757468246748703988399987701761511505032004088825639351808126036594866552596253396084518738203505798468006390243026257662959421517831093291854551446858462508033025590514371808962091322504175400533724938861082036656663904959737410464385357583321330137717017384696589326362592528207818810178687271995471756200848415966844868554740071330773213892767734005038443493287107940683423299422457089138492023481892270464115950263098343181733885151822761994379989924338989951351497125168190760327881009231762272147695424511408471162425067677680444711756379211704990457843144570720072788430737816941907727185640968294685676066643360533677392194198757375149825113727363665940831331777774305833008784672839615028695321735785882213404535953832617346694550042617135379565256780109003151815341297355470314490370659001685757365605904261407195035355082701402711101530349614897187985397362578643487241878794149369285391296979098949258428895981126600426410892499023014736859466975832202533728950938616594794075285851483815274972576555763387941276958753325390206135764716479455138193778084917720923179405719434262143848234399662894801777423536210571274494330023483913685230609595855550470241793566772391652458954120968584257371785730872455216793844407225765174457627842905851647602019084476960773775083418849578722914060684443968297476963527785541783506704178033919062299944096245278273859781244521988314638745308694885092186877877374983348244823974326894611890321920096621338377125065795148145279922826325458208413246923551392258678276709798161137067671601111241723881253382690539162919996350042966056440795569963532775454754117756645099289859556189120599906809668111310468135579514310644043029044908325198975753094922062111518018887907019728039518866369214153289646956176393862915619886786580856523910514062755527125313416075406323581549262383214167357119564878105083317240586055197618602403982002632380899616484461133269461609410782779306013676631729371729892609111443256456942427764276838964088238511437641259707936819501343493570356765821708793668345581468466649132367128208856515334982056891469516531051942966090023744700238760456775815500832567384610116743706513916239385794185037928728178377272993037243539891392171262099112861506321433574205545938995135688989181511191242910076822020395257646965088484832615308530175453220879824613129605572564209330458150922826428135219561122896204409133307360330917273105042992273787038461749115145739689404560244274399183382991911007085512185990089598297956718055395741534896253837073637462807348826019456233556437936462333947713385709440820406291586892638504857452033968295997462928439029175032705611402429038034043148691482893827354377566695593967664653021930371989357563761167152981257972934338599725691019543072590102242716027391909175767027036855507560220266918828195226017464538701758042360560219072659358905710041415695410536671324677963875002875644816783385275757511598672764580510507185291820865753556125450218466996712276346451820776488222179344355125953655222219237520258940138118829216462665387677764466120272610004423358600876271003974320268937292003825458287444815442430247987222413170591796182267722700844254935657889880163142246509050909872347968413396855687613677216672976394906787570212078000756336679907902646818456999976779107039741548889602806366467162125493966600085267663277109238616983385967722836217533425205258666663832343962401989413967036625871871866570356824107827323372789031567151769729285017075954310513211329681765472165653637394642215537413448909209437780736956848644442712962220078451471078828171942240198733998210737325628298257247664195285799405918378488532371536619862164746110292455189523344474163597142289023636305356046534564758188560443766536709309383954156890506816987240861452604680455391053166970460602777799775709267083756843034519250404277727746996783845640940121266657654636909858086436252322567550490503730508956181840068576557569269267444100189666803657203994774298561520831185474706674413842459546362731853584083877219305176984487928193585552315166104843059678160456825200193010610701982426287965543245916718466167813856405828837571735772586165862976118660431693750041466653334176758375055682762598767944343729127819938254007659672323814366430431519765229067666874053069542578933814410849228952581030644972279237202970591315281724081874349834015750058362155032186523334255601654704819107535728252950644400637350558156071829209864780582153352720447881809505452411328019159338224266002864969469721105968968978300310634984273273925984917481659492472298165182402017807270191180280061832053926781538534850931351110868663714183294541624648598509582279585731570061085565075782793837211744546613448783271847112492251552153142035321317909062013790201231193573611029970349232946475220728920901499397609060408621341175783442277031740984863184725749914432168698027405452516626998539805200091322167745677490836448514727204270793787033039371289848923794691554632412087923363808935237828645527098369053819556355586844035150390955422992666829304160179109145131089548341118172680217048648201945223034472530944723722614015648438699294770138866096958058938526641770091186473225005149911655200125258491716309870929519031396279593630269366480290689024593171144606815539709615069752489584740686000843093586810540020399914791148999740984625112734742705295756722664312081059994758253857117623175539206837251907495841417152416331349486778353460651458308498112385420527063941837321043604193767338498950553053542190777706272693653818759980906198779808192473965651374536540461518726731841048822123944719637183004351541061044149723562645684977929904502234327440177892378265937569696698159674352820846002481634874002783448657829673578781356229405594290162282578059944274370825642268978103996242577939438318097285768771196585442739276605607048241319255874472463561929397106333463787465316736302796401841968055455938917950185850343288845866947492877968568748156662394480675041450146573981353542812947328680403435475838002178606074537702263186087080679086923179213682074632710976585718065681911450215717407361933136945380955406435782788850690837334720080802266266534717871383456797641524613962361917204912406562268062771401153082874282578138309809694451501607943473940199488303558038733640066547479104693240568104676252400103936294191983684738723179010101191356813076570178170796225767109170626846244351851151207810946149300856035075212993566686174415973907768036785212085732649503602588377894585018256543295440659746018778092117127306822488957099997091366793784834726191875198912284086356127964678073367037297756284162155260908406786372300732130087267494624505847154350691814276038606594582600528263098588430384734892083945194375627628988700075740765332637528415485781870011274131255646009854676483596240284337126896097262785370310727532392217714622403018290720103711813979277247399185014416426169833125821706738985656079547651920365887410099099997560412439164489913419098979020846999900854361895332446362830863146103025048497964823051483910889121451669689641493752155699650916014400174856725943848412058588526160753470378406126306901688876599359213731011809491437835224454459366229568125743330228540434788123694284412077454041748193953550616931484854047615256369972165696489324123113802619854147861609814193363162883949867624187882320998001317928525118225864102937753752700735153498751527843627653803718600763606053838743146139529800563320434366922347366926422308659058563598706040646618127299506573513277875261915939995640613931528253714167146999919020223037558919585777913725035971165423109541327142889270125302040921218187837109802254480659851828868911468855039235420216350851370803223564004258782119428252168382491818551415244578346033946438660386742952074398189105427335717605286102614170796914382455471228555530206799996521165408991023657795865651870362501916815793164884504457941057053167440099246628876572602552013406436900067434038749660368227224170851300115984100345511124457868401384170943096570075434495182485344452511779604502489969307213008205568015635667468513097951098716934420719819326070133063391773194921632754772585261888138707406587601479052680126814634032543152428508361059039718150543930134995750290829255811339351253258843872581699319458917313731896102805252819049264323029315869400379550177091389486510702955383152386112014952858114784236518990273135088054369763508777250856563557512168810542812289249017462097794398402332261440914088382016653260546746409608870662492377693234139310381273915876407281121918711062530542352497997782261725526058426035782815708750637725992154947290612202357322241704416179322809499876970711822402134696942404203339658093181048669860618675953678816811164760057559904011280921933352241897429400957037401150571707357325161813268315265258782651314885297144516787770007086675140700611843430647441110094226108464975137386811565879957155935878937501873781509288325427046791844349002751575755091302511639922657527012087429791749740131956562062406727506468443619559209082207768277315125919567833570671802649211829103686006196544486831189864577888088872593739860063789920153753718414192288634908811928542802898964096806236578382895891152097433878034768773847137587221593057760237628173669688872877421187614961693355642907135308208311144564101087468693662247336070063428362161321549985281318498029999575525236893824981050181869724377202532108632804161387673279784574787060071353367824939723368478736892140288482877351328545328865209779398794001391656248283899625904843979203947662959877301978929714867530504508173942663920900962866296400258026752640888525684155818227504794533332905044536447327016285725231133251808507134985513346982793921949093601135929619305720154978546218902345574310761951995494615199627662148315023746402201210943252091170445988785661765377118390145243884707550373481136763569113943392919247469062524994984783684453115162917761219382191654942009547088489637939998439496219200004911434147752623721600940402562220709258985163306521745585206219085806678451867021959571120623440434892307561254928361756333618234177557099054349520078231005342421883036958964824123255949805411722291471651542068422469030712053729520781579208759685852120213095776658245479792484306596082844193077210631609546399814446090825845089303603671466878388845433919949645044185491388588845121936584029448681732584551808845252669738987534635439546069078483549524784706629416577231962343406695784175680313262013633175353389959811277894578459326332469491223601014364755225861565913803943438303245412179445561248080161032289509151270600935577672095454265895566360326539559730927314601830062885761149342610549285172230806299095606368030654011748900024198537247519874208719823392638998103768188544491168792922149706447216430190578483028284796412286620767942184116362430084545016183792118122989785127122149749195097142731845985920016460454638054901527618146932939455037196823445882686197940295318194913602668177182438269910226646279770409440190919930235953728356859824022645936751669062541507693004727023190275046463888486173291123735137134514734438263858845002877384453245336139884607758019192937466568406944433306565303173604288900953159959924054492902838763749069678765060525865354649636115606325530357664482995558778051802970186415723399950165558647241111200684524247353658205729604447290428804951436328950939337774931997924303891808074953287589542178430347631604324507110831726557421408341427671235271652786145288412595275380317288935316033774340514859288175890154799223884455858226936331746812628953073318229482434312402012282028146576834522869040812908102064886603117284450802025963933503789165287568558683223225655788335935671175027222464651888663005715875072387880930441290941004888272443975931776238465565093697072322638076870248889200519290394414222489032676019801077893903956852993990591593938578412612434038342357499010121159723304294252491786406886578587421206020113848798620806082081299725244948584514184898632619897634359129827405214850335541398888111465466233416985093931750389599212889247199966445412228112722804799671060188756146713510852213324824579497178769385473286653564728771262514173445439270838351095125123968009898378659393229906953370220548413328046741437094789311050093630823806181102964711167543743011436999452881583186049552739412058372997179838339158043615034155188229186391190352516406851916804922968119523646679473029001647990140957742534749519136378488776591788371213691297573961504403909506445863947383545574548986958405946057469769439899311767289320550705195102139733334861809410873837981309726090445324713418547957626682066693391317001728796794557992892886806958697246511319817092507196209608466175320571785561360029361475307271375301192731216281745132863142688308369471568312672112822928737202853492792749657320704588051476137667799325939939126472061937777360840084545657685546909957497790841675718751892197520751311951994218234105867854127695358895445726405793180290286237523405313695611282802281198617970072463230845831861749436898553436208401197398584145059662268318021241846523126690559284114997310736634248306627105050123990106166510527871103187893345923597390429066227897988451176976143244309773071672001046106214403222956282846332136542735659476620331249849360541163998943924465579942618636602936949866777685080060993269464347027332666278107554871588541209760658357205937813880994222775503211249410565870185730377549863244897198769246156407504350049501640395483394864939866483415082596878913301918235450526236962776128467317450961130533140129563482103578828276542521525318217457040924318297340256791032462324824598246303571494797336001273872346677701020120914107009200526267920838590401651004469434692896296474718675963854370944286940132399135030753442686747181077556012150725865230157018052769694019964900634505830034160795417781124354964897817870227897965769255941416684262696990530885697390798954101863895650379160436378118629761881609210766060737878014478782760683950575598695437184185187045304960629833195306949637476236897771059186575115302455992685733174500245412817028041709321188848369640744219543367652838233721855314238766002682452779762888610694912155319297818792155943547982680667410008123708460874927563716021378140793257455362127899288205792211855363202367830513760215338135074525534802190562160159680857072268788930160231942658666645645543544676155519718687925532671043684785622676790882816860248418458342168139667266372796804650565098801530317765990552272509071754560969293449333399762437017890569075135380488760767792138046156705575180220795776733275626127869432214849238636372368366045517128850645363865438561669450173101395572438363974085327905120886532793465707739178710246229267248375032337282107042644114940178815388948365868576050598454769628974398190792522645672327150528552227596401083686516190319578657412603480880488350109635205996744486252769400342520817640738332529473466817042937848683400140466227172203280938602991754275364618660300237083713812088375132350907543084334839634345487454209669399067486665889674141754391418731866317677830656459717649249840541578798484531312996597542778728253326201556550007853692414234308521505451520615666547791282630844420866890783894831593629443759161857849549296837696100168138437870566765821726963426637292765650592490785533363863070061965246461377313232174953689856445813152321984112070173343604352628219991747499674670531225001176028843649057082045298997677836813138897441127160242762831106364769508255109580888648336739374884227153135941165152344933366272052441506984493888600225159719544945052416158683258312685621698575478556373407834114655747810325777975425745292963911936787091657581302119794504803150281150650259169203230932450539890954644322421343727302436104478133873075036668131949361985167026741709325433721867068034285727244108090959556851528720471486116385509033808605712046187304986253898291504368563634209541915578079473041931947229370883271164900700214736891592048596855955362669288216217261131814345017561838214117979290284376566924431223709404480729134883986660285106263510619957800309591595188963658990384791818717284369617726079419566791762842280095960421534201768487452539265365750647033072885035233018121896628221808898427199638487028122253681340905404062244554696572749216617734849840347612702490857493940632413232469257907074411288550731106639695074632042634687216218045142701648746261125026783188795657923083055924825499923148108981772473163550748948962011506124246049169108032215058644318549892542451178886402903066582384733898536459364876960109251747220657483088469449740447403897936019144774785259224129726273801460321632666523529546382890836056398637164015250116813470254925655702257713533347717136543243204336805912643196795401982383998548484393817419373722610275104305245661242832462739162047403372243800407689394722674726575913089731605961600515614767058665324162662789441182780722011566745984832937946008531893819498145099385067113221103164815749072926185341885518652770839914798758481419730454020999338094658831144259181211452468912637929921507641832416020249058307190583182902850039669823917925479424582445522362697793003846899749625541432113900811606048651775187397961388099603589647840225174229875647298372104483576450280601793231495002909242647109467053593399616527449335495379917272520320809641963935432552045742325264865087515314705838890943050084562839258518090984327852595412891150388404917871821293877667914117601897447281247474965679506267352459217233649559883442969698702837386813533002279319302851088159785490739549420010574005112174166429119248546037057743702613321894105422990434954096453129408036833361712093733768703205449238357478115490591667145219959491215793030730157205988705253602364050495146416746523066984925892070626101414033191028126120312071671779317704748016163864529027562920882607907917292213868000600722344232694103864496095086377397642615928365014678351808070157338568196476674230322308461981000246939775923879162224617778617676029693216543409377577505031577501563643070740654327019327970373897937219287231279448396125080369883658578994626760295701720808644693546281795147903359710154796658647244156022809949080891778508998129847963680335109212200931205490118183212223477494974185406161376316376607871619180718998766552720297143379293565662713698716544579259883240352662312349803918766729677523000442879308084561875409231687817912834394218941730076498004569940264011692706229855918819200083294201373836617620061701203622719888804671889940132455851346834615767363944968952175088986415764273937646846599081055448011452454807751307713791127502229869977514361579081069815426839792830769198877538525742863434479789191067253080802792840637348262276009758835548109607717791600087302958533775130742974617850221062568775252495612922774591678365355031881464839319152223826104891635600838656833731319784444981112771246919031952567350096483207174890891967443622200162715482785838911408339973864735735717270992172136951555272665772311723796985044743039218804927873045805214041147520742142854858481067242534139258390667292263773249494608152110909998452989545386652913407972662350941856532648140042494454671897171664885012162881936919096740834881888317035337379189102167497097421841530795519260832452968257726369697626360905580732544728717346152356142130055162678476339737068989005577276756409169012072621262877382728009416941772957612471728764140494874026418037808403069311334506634168749156152170082048405151336015503283348781500955244608462485879884711737130920314234365834916906419082075313478173347866535249431231921698730099197395702503026391946445302860706764226889828368931676774227668867963330132757414120169171229332919979997803110479443780231845674252021109766390050305068889744827471351950025629405160193486344173648192240388087390841613149549934540129816721351939275457579336574041117012439829157496502105855323592271252198804032875934168221838241578249235994692323351184333420311280582220964224180874618067580441346432912577328352222200782406892769954675221118706904659491294388685698394797198926800399685353050482459527947595674838385451821470444439533005208163709879056737118329674701864583595447264699896693959613727545479122936438905514902731154706057715545738708429300155843608693353526650514212140911850740990087407904316181625195832212317946547228437662053310623556938818080635240492861958882357426643421145706759261197917864985122276338787241120113681724118255305847739687134680558280767056515282758735116379844994546324583276478799846283570924553393501670701975821679784833411817745679870723496411580073710303251257180591902702485010610925193049311452312470851246640068321930884011996347214424695032519123820304793917162809383880890327094053479652798334608137681461135152875585770233703437007327143291258419740547741969342721951555905233051508538195751124929060298313924951811006222913793195770401984493846251007752218404460637484484246630713996525577334922295886971410541188395448600603123460376499463295998381725797414006736322793889670962955546991968164007740413994476604811354071710901253692099938659251154897357153928913623524685683655735882195924462857905931262963698971309425788342624444433268960337733495100663922827348469032410408736994542460870725473147263240006242813866160163769429805757348756545862639651730143019770474400197784326989624907916538304080879865550684471631840127104299046575341363578333667219036796719057445141418294748215322468698343434584281374529143411684234851344411304026003346491776811214516163213185680742006209394701574064140734686520724863421347685694520012835440978763583215036809796618285328690272006783673445636318871921279661652586423227067806417898863698909266388041030894310957252050544637153643226199452255850295913788818125138613472035725116700828292657156402729329263630705213848891399557403631035088208747063067770451021071857438934867048317695599663958963695447394507047973271172059452654770948885514416588388451834663150014452067089153443163561950133645355548787962730136925307447910481700275705892525232473834942190684926268775071752738413179493566778124961234115710617892857364982068587053034820683394423803608923166422044270906482422090008138919653386147065858351894914589155080623304018296876176087086834790693558958929000364764326969700909794336724605573909739832854524908573903095205928426791956033635385103518011962385737572132039455521237107996057168130364717522155475145434262640483900262212541217165912573308712375643952049706019070464381461436168117296813360008405104276602841793073346950417573767351181591873112699135946387272694620269074907813270462533836188419950775078802925831199409319879721778352935423042224533724139366732018215264664123090047925596900746478716757072325943618293396174187869708356911400008914892947620685749816921467344968997208753690123625960882631498374741549615782120790708424048840350056107030780465827602960050771697074017093661975100726622841464763737460302829933154267603513122536262418904106656477559365847828969463221193548030613819728621930581225770643163318519770305778593171080767060150613272258925369269286726795711771961595448139346481337740507035810120310809603597134319003403295964292472154221012189964480399012123162719714484573960248202843414045598624895968634637656113163752384240909517360658974692846241760474918303438038685467810654739135832767443137026536329645978790890336995675119088331099493924500484245773729593936456336159883087816685838494195493270388680563966365067105960479004587502873564333312778527090422186130083746542443337986217165815267567704852095695756874942812232957760064794408088187757918758984493563001570860457242295690518571752008258898420924364973506564882834509845144498438380335615803764149113370187479386200371719711076467817181948162033065432835213336840939952781558508673085936498043781111163398032907599540003568476082116566453131106151771549554430355374989680894130709025631489195790798521741637789259579339299824030622372263800976277407919536532535749701859604951062315303021902975196082838814586961445088200332022837530523380589851773903437171997010732088228143812409940224200357387245182512906883077542083613677166426338317926957366654452718459449033176204359742502176772512418599342888463733051745307929153557983000482244963738350501821964054411422589647179185454011845232019229195332209911532789727720121600887267264495521134918100302131190315501374619567132964839852383272537736636126817756089973423715452513167896233480027447389168681281263086082904541175552339305997465489015495768371772915200561808063285437381408626362018620200031115344957002872297287556393250400885888636688113322941180518976417404531117676045306499965037540432362421342366480625984319496484762839378947682076853543830915625165914001359452059331301894388113919271660838262723674446844914404290193659352965522974317775945070633614407625590335339335237391098845125056678111411770364251871877416091872230500621379388485990827130030625829057523108767297956851557951281662524759542707232854130748010582106895947219936467868038016188281022570522929641642437468129408732660652600264004052576583239974861124479442376761413032253875126962976437712965674276224656484454148828693838319535056836974987018134578890578792385306480457364043937333250188807280515800638741681321835314970005608957802253926283185322947602651790242019789301974044963424803927933071506302970116251701657156874414051284163770713244582888310613447822031696139520871180726094381226937340895377685390253772245747078448393005838915970305182351659279020602978474514872558939229504924248756279442298810037552285036144288016590410049458229946121358074338948721925118753984451480727034647484512944748839490388787455009802080491329549518061952039439120568995460928360114234877882159627573010679703751620436873616306195373525050792511912701725513943114136429725744822538574943135442135491958005244246492036122370767630131123530859375192515876180107911302105165247272930361590834431822770458889139140385067432107192736630352836834235248214565079484242617755521755380058624737653162867317913534065132416786748314815715122715349885180525425918088202960499155267417073715798903820304487419164255884346875416164894461682128272342041031897889150443246255430669343602842737861049942116069853450506141878814602100627404000178104770072828889610921740343103724208665241480840655883385433723254468560038168202382458297264823589183187966382542396367633864267153334884178540059950954842446334709472296270643125997204955395223247054388406242391589410052039517153872111645946931329507723427586077408251793671566196630302203472266472660987020737494482274971315890292157554296937357804011704224110547649027635859295317055349984850775210041688865000729572403164084550488977365177252485280472116968145343115947395765540465276707164331771280087833647246282928597257012865695221429027607787795585085658561354749545477288930746778351427215016546648230706507641359923157257375905986886067807130033889351578196551628977858091836737543878582725785657983490187409505444846400602110710818836585394214324701183398013693603219712797513565837251852835897170516443540838367857569709689494597554048095253506056332792257072688621790553105643499692488871455248485231061028570219678131719326954858116686605142869354944366327598997658525399535108847850944010443127456099815068863937795086193233041929660018142766896675886910179396652945656830979735450213858986727056374367976683988510475941921508331534453876417749772121065362427174644230678477531582477478089292675187966078694114558205784617977691849692269142770220816182992615457503831233154949956018357757429897166585657232182788507467488127800865694900232839041071493484429430954417564272363041873687266327175406515201366251593997861388194109659993517564948435559597083450326480767285200610297553687960851875454607176388374644185007978717925826318029370268094366406353099182623954335205483978058230785928939702006436538731256025357090882861217203769347686865058035127368436256688382413659859940413536900649072893590018965100282568890075375531289572999936822088763819294867191372733250240989007816364490797508665155479778623790606522638829817618275761376350850945090191127420557804676151413410487208479492364407983793196445634059689674400375125516070882141799995595395267562717695470539779706019860275691733004770146993854252950975266681434570490819605722053142095981544693831967521055038072891063046210422326718477540468471950589129594182389010513148683630016427047163145116288985982846523166461088681458345320331390563810211241733932125525386674484147440908866873845468991812728664953941784248639579435031035059677768125503327662436902609429838964397920064607206450479719947907815378682647625375824583354906410112530578107833391678459464710557439241919866923546419863200598810372074658758185965783633703684913095228962392708563312644145105532542434517888283117562596329072598809300494544232963917004282621615924838536806479004722699914377397064527382031312296404150000824620752905885084717867878307155605557807910283046758523290528482186972656109046117419060094252387972679254582708457967188971795641498904854531428148720191312116418132594200972533887140758188624973620641565506634022294219697208401149274368386681326080186557098898366422819442192709396034344134186626729820736723399682522253483527025158115950068730748494795200125793673856091819901552153349527225585083042026132390168204721728497013913665246150649996538436159036689551081921670352317266152272515504323044446215487361242358377059608126942749110575674679683820540026714684871544321608163991070051042090925324958260494643396280775308927796451648767943876894191036671260910158107977522337539680304243246838601075125491381647027844689813828134111534066323461477823025755982411486784030929266960232501406547717874779079745708981288716854756006377941858176838868069135973373676855888796977722045410128866928387307578083865726590144842364383209866589345474116632092528036371233528472252519082255038184047297205201124674348314150630280410660985998814676259767207429290786343659531957774290214694653060893080940342970841723646678572731398275616892398064888094812000844735824818782202216753361969601034117284169313839461562889974285833244142934266049506281182876704367831023156240900745606632183162940093176473061302718096133813901375720674637997515221947584196174828979790953966667197327543495622116267509064712700649890019003039766134749493038676499825721112464385313951266830742153773355288648821152605344962013437288767835748218897595017896647826256450194646052208544250836196375022169408606449989761670162751448234735458793107781421257966283709528223893654011190981692450162390874895731939988249597580022358415776450252211340610062119481763553273622740296605745848244629002921559681645809053207021332491908646845949515681647058995993159547962075135013127050539928981530894377373331049135864079989278640150311407680164579534787503256266541788145310057577137511815793660185174385432473389130000031577373486214680747508051358015379183813811038930721662600892555951049431446881538196208053669220553641524679527724746161055434487213713414370373925450982084344517587451356393572990531044781446267619391495642224810530682021859211612176566460413343459304721986815085971454728785829494137548301484115312761450973404228396496631858789238726258703281026547607121356631144026833849597171745864208774823535264681979537909949722529555037681537350807166267020839607887401732282140981524020153118126386080834119173529232948897666220591641983210906615036230292442417672902348667452715189119580715584833664488056576793334157742514228057167492496154431762229403907801330732779683978573633249649154859755001527628877539798543827380247806764877864913154354635203493125575178039894885597516511045164116540782434857008957411250278477960943112375554908028345820297406595297124222270306648654408594527847704549350540953585822255719007885593536378715067671267923021823744753432229092645131216051360391631208379322294206142614809324895805120655570029247433123423965530879338453976764987260356240103224306741017974210427929104668891977696782216974409063347349288828842401210324283316834464317614480656733508973864992357605770449376404872452835352017791626164298499936147600265064634076759622410368723018173583678708027219862896607110508088548278734357675126424403487366552847490038072368022824068146575719288690776424345104388489534096429754203729434675635843917914585143338375864788888450619459390826935899955733390295572146260478929203957739885149375376362750066437589538513379466572863857798690534572290475753328896838268154075276881412318547136181482651011403932217477196947689322652807583907564807118613547337989074062426771166798407895904533658696226049899155207150962153593403439821904981141556361827010823229210852931589662609103319980421425440172281834639807866791419691655482362132281498188431960611423431624886348219847014481449605279789215704983921063163726862008880111601667083428147737642421213483333855040797841390544744776958072239143454499270245102349702532953975157914466127841839606634771258736006121770406655630716037465251569503396417683351686096943883891957618411124152707335488453537558680182484848983756863620325917824957995592246603023710955656791133625718861124262989279601294104146637153587310271144670812787887935793100881296671247573307878525495354892401992692254363734562179774033974305338286337145165259071733317031213708515220608204937473175520450206732094670477076920313651187896347673683237512753495089765963075064634780698370814460895555117750321639239060767109898220904536572028677496278755480472769128427204540689581860656137509878231433100111365319182770440720330413580695731906215282054314217467786794573773724420914456080027244638410984614359476096193344767002642633982865730794484458975967015896900539839406443501975746021321019069473915441807742244444835113876551394717850194133122279721072454380841464270583752550305785979667925730252933957810559623804899167549377917048535459135148629601323868109263672689816175950276034124780563124886685409179403701501726697994004064001779729744409711628163205264400670328703946669272028333958813020333769179583850744030919260491569703941563364092365117950026285281414295780058497794112412458961937789093149238221047866222036425113820107278423953945216296347067279108411178836961049419649812056318462965621031371517865895514027175841475604922818467319980286283991816653821625081336019727936237249066045323176175139903387184732054947325226414778340576049447038685332302068324406506363846931820027491893570056937378779898815398236483687984090475417729259621048938955524168370872117726584644473790683058581934436922841068810770161917168637130401250468517092996989227334726321055021601772523966213772704964764079310336533181320687477877160149807200138910961607229792231030787842894792122284829257239105439372185709202623811247295697278389571489811545958264187064867091468911079945451446416974785910615136088437107430045649356732569284685575807262349680541688924142621028193412322952895358162979040275720620982942278642584726236102399172705826417564531337785060652151825038699538696012786139338593098016286197623778889585635229132993694805493761739088156530659985018048096979248904273303039059164022461837494195612864144760629365485277292941232205965344643829825702775494873970501315830769841188885694516092836386927031308146619036560747137855356911144709093140162864718863358568285545905342996785933737962788421910364957396281246865384260022349685299030957431615818383898022502647619374421261181503622712503004586751457864308097855892412441603259746309161500961222280353152455966745805439156321771297453081527396525267106645376175886870076079684534899996759054247761440080220851165047854200990139542573678282770511454656995401268550050634662080751176954076620866928987293070456527278445527108775682365805152127809397811955752230387462804856233235748059791889648390952579124559389581440111913664927857033814429166562949540973508477054726952129496511884560541761385867214860542553549048692448886402214986022933740171799544912296367965482520614273188869098736415997555539427783411901875910729871731726298498466728528098572879006567035913031941721563507453769194154318614219307681339190680683869927208134748037125793521543928994096941439156408199034641223845893793192196028470115734612350979949754848625062010808380052097191193321770231675375608792616365176796082708651434061808989048578481704627529390709282886310945671041788748616879268737738149720087353450339399351950794234067839546248416697665843073065743732100112243291179675714323193607779978326106561208731691830914845083445632275549132004702755269209222223598034156195994322867156492354076497267391297507811210767460097499373605827234402557747391770865850205580859130326693241735056803169958625823021553490241159220983328767098202760666302021643928970050770746873839528817172952236053080952789163263254810718960030584162405191593376612794573580907262389606743431060853832205510859681666284154873398892877254928314093033025046258856062922549457166597911925301046600807781737553533551960796679112397449826761192637498171937196738639952940153020493686267973746072847678493492531709045360799736184393322048069097884766025865785241595244321738075548580387384153111054045260752784885326319051274886108828788701004946635304838864044775764277329198178169678316253653394045684497393289550037950034729213444621387844519709286478414636125601756106468176650022537038218271403087389006219891486476228091147844536757137416053745871050903391061297020765958345038015218462065516116424384056327467802324281895814517438983518983156853657472874682817324449851934879763308039654973886099360852395423726693781588675462167161987048048639221973609394849020628378616882400963824288600765420016872609922739641179806391367655367778081825898246689913565118954577178416581431051889624729367958279956110210044909956812100695486930588120684153085930011636497539725673457554741268995910515460628843752992742174824679092048490121477847209007431186562539217031642864743778729936824126867052290923601491051684318501278853839790625067187316809584445811640580654022446289729513985219101720222007775584690243529446072402136089283719312507708470542118980520550481839183112740812846557149717549135310854365130776091314502556399849888721159457057268491652576243998061536509157470373864168706130975877185800839582730609700727873012635627363530714885542141246217627973116542717482218382782519054394966788819409090134792074654577303526700158682614373268189275003615794121994504867634135841951005563004205746816145320901281596487472911717789521874852617882815352034588466291480095608494510668258755274914781581165869303679572406426468993840520873154114544191716124065273539478682649999587549688939536631759487720459543433974313404852433849956093793139932134556813282723080472238868800716852154124658885637941055742001713550390403777756542135163092956870809889236076930405401378871034738044139457146737875903107582654514365383017076937964573912204565529996668225689713360083788495328729715881916589927533282690563940106018718486101272949615180001537456067382775390240048497442208980428615308036035989474728850055250002087436906901626246707821763048839751206875423706878140306196265185454518807914879036243015968948712199790082343756185537150643122967862858938196564417352088614056740991334641231741005783209036287921150233063113632281527803869609069143178074228132165885587595374772281184374603929821390445783683631828044953981469503926365459391567206622871745885178574869571549552797474122564358765556450196899406413636822236855823321581702866585790924527970497981397968920293429271823719255477449657427461960340631501448247065322939990993141048602547898621755834540553465027448132337638816792997482316350316338152034179894491486706867198522550491757576116946618279057165628830846398386331561846642791459866874628764894306965835399654279005562272704475605066148094198640643733392249997947987984165130211437198579309386724627084170473938336713760386944782334076493756844031312248040792593451620438695243593805063546094778186061709824335475915117835811664095182452109212338975682161068388222643678049503081913522665886488245067871693766818978024956278673930970892379938110706970128922654212468315154072018164978061222996441432132783811644285226953495373220489012714636573903902009649404363378823694504187923593784798515959961865734447798700093657878013715432478375340623971341049552397395191890180953249901725772077424836664917854555305797607159985938593828814623420511151888010172122398096793399686878297279988712617041069939676988378709375861021312950110055068635062717384838877089521661442000060876275209613351329890069733857942074156295127280366103751616733707078474884029585356070348288265320148728811888889327397247405325836566160551381439401580702671092513816114041857584355579201078483810449344919318544112549256490235020523603394800095150772178846337207693484676384538235368814997005389200947821708417196586486760419229322980532108798679785770550808221041544521058760571270030266770130028450508972385725206048805077838470070545555236002254079396860281974944456781811686898778025743327388697699885058294101487814735307815201978618010600249980326711957175032013728533130334443626675480414301502551097393672907261679252973914773177523594626975389780073066294349872345753287008660117344952617487829748510696058294181996195704633158842166652717474689865771836918022630429006238373582249335959203763950484962780213958151988633861939135247459973971706321767413431006196751511010623476577340406626021810019912233302382126578094794979746450389862667110102688562725151355105844782723766041583779548611303742848486676156005991060882358413072628043882095701339975425001528901829006876256868302154549705588476935032501463046580611780093258813575572442166376512866831513761473244683584604155066900890952435242293938671751006266592864391326985266055192259176847203253887412813458991224954807039294954215936501454432334239043465907033670662594041336860447269796868315982581549408496685865775817648938317820692915856136283795879188410398769780615423354434667760775666629267015210440766004446713287484015265931117728899063795728966554484497017068424798765098328886897554469421615381538784614681213976672201098140745440134228095096488676827635511093141159455933022257815245387991900701594391500372794603311666654867906481107583383039078508303824870669027239371223218009956018357382743512373163796376914894610786837465988136988190031303485559056929668854707116749854386362486667629075824122572338717553346669274132965481899477768832563766522208309629906415069921834396803006504300787318654327203230528359378215852415914192580302452059954705167601090986413221790619676683918969392704170242300236962094673711046791845315470649276058054571534099462201260988441982000488321827428059412131587412105748098050842234976136418450978844928131731260286533933174757832686033304281208165871985836282775381178594949044028976796960396745646379299717271635825214357442243314787654162224822996742680947050539425364563911876529025074014490795755957609632228720127311284773467506507537484962143052208849011246727114826447429765821518571401098294109017006368222832795939394823734710908073402951632845200907510464682600555879604539032334061250009867334167296147366787647522932685823100681027195137047677068476884675251621756587463520447032092136539509404043705988275497603127177737525754782501036013184793424853456188773950599914163664784397063022871637097423168152976244706190926454209478855365855686677951873325186265244336644065111384023834131694207667217664716790096270646139609068001662956147423221121060127722194501527384052920429207622093692791394052891451776738604458008962113274990811806728912709973161705009823114563545039026281258697209772348235687119609085619535194939006828254851640245334319763974925198541947973386729962702643143564159217423224057505065886944318821008527811914791665377897789843287052185323542123706043823119583942519248717603618351684580578494699393211717823310009359862114089289819606969644706757200797740358829658994663188067404698346910421475799462791722952208833694237444774722702325907447108601087340043550879275017899498562333106760814971752710281430505003203146014851285335068934688031276005426445894554119114854769810369270116863855510324241072350096879451920020810851611525638910009018184131233069737604045690200645617388795038497122567429955498321520878645695878598041451661519257014888624123197683973032295750252809722576627200137499184755514597870277547513863018093442170085146621627064266177977019501167249469390987096713016895616927714101925966230972956493774502742305083288851882034500517264826068509039470324015050733666002497802423711048000143946316480864614423709191315772810504555557512927341150761025663376121223703354212680753536009014122861182836190519235719742269905701252187648592094111090810416570229031270810490949478439131440883974414533998846291029509980231274500199032932122580392582173252535042011536006203745450068305392583635114640647990895708686632084782495122233611348926719155836050898360602132290187199760204207131580080340136116313990414479772599594692527139119485834132263487000122202509691125858936124934114403402978469537963283526863704270237218355694190362498200844930397173135516855683107387385948015710684657643555077632180109960495601680138712603770299180650401278647922915554859907676213459461956880548078609070116398908427749897113794745864591583089323817936494030823647554802774328326917348895224103032831327089817152961948344105918519845122196174783150155546784306821643493887820475107868873497843405027752618195270727118171247740496984186560931135986563996369732846912217478507849987287285965446517200832272207340571721289685923431154671665205094459145154812452516595247994736598996592108227012660770366752592147445470547094591106609858370700414010419288267729452604918986064733496022994493787542522612846638746802095399566362509363456463772977954539421394328190230644829102012045253554286973136104236632008809012105456778541785823968294461040178160846607080659389097817378065348696712420333111376722114290367767032323012150266046407965106024015951300745372803309382519396449454711618648742489377477971769274745610722516955539129460270440590882043682403934044371509223539471230025826305848075078127328804392005226229439038593027935130887302360453589007788880229662170362260438173963920442649152414537267881972226753109209339534161871150113182071684201604545061627680870595092223227380835685548561599665925454951555500280358476669061755065045389338357749359432027358493146558092248089659672655373676710730691995106337450895011404147238607367849108960642639629089532087759431365484469314049229922180942161763442152164057773030080721151000282517496836830299742375422077498864036589242533471444035738586961464300474406685870340616757385348591111401689779995556777798337612288224657973634228404448250375630401125979019036407951209192757814948759421328197518820322931762600240934824890661059933986365903721902665321937090633892608527860391989357483930640031347404673504275896098290396568636533325166734620481141657187512311982804578760446190363550469959195862533062288531492545576406776153812960831884294900346804092403347410887577365051451844128334790889674988557476426983310881196804590025601456903784311566513875349221584808037909904894216162146348299881682606611939473484908092622223197198476997089844651862147922802962590873859358688096063888166691636274563859987130953493769917743682410569810676097682192916691532514477089309385389941077715602558384898941011662135919158476579345366433408880746946088658173122371910859424263815375609254937447549205157482927923241691915975682841004805061428656920604229746937293942660889519663941185659727536768054526502745659524893226511652943905417091391972357607809691938052691680251754103341187462689639610619460360405736919994684555392759507682595655668037392308739789682661543600186193780566746565693149848877968949850202136509796808122823701813555051732144739706893750760659466969314593236599236062940140511121109817952896468038355933359807978878170082791822436197202688551155810847815871591658642464521388501486473715023905688926977174141662015307558830203195226090546863602193261146289356815258066368533047518619422475539711836672990095443064734547942759722371611208048726567810827458078347570595856386824425664209239232542535055319174500751144559525914353481542535528570881379535635902302594053069226437016673539359548391110848694851493791917452371575285156931292935906399941532807378886666614298002014641721316452875960154733320295199053191356605681019117673265333016000518904358608996160970436182342341057422789199976577063693667685466132155464985712880409647900017047095945378104916894638920189479510317718478041359810211887414400813197349823509974198462646985329376458470474804699752297499177597123318695362795832666571615420966797092834362449623642073722178823710048319394029761222323592908532364267540368391629909316289819716233313530613531366015383261715874170835545030372341339161345006176344842403934896513143103176408605444923456762107974046913343000816253449373850519374744483889884310098575729956496446813001826767683675055998918245510324421910781749783673518913690851823211704544731010206645127323400622612494366809496267515903237956304399402088437759570398318645479787047794472300030980047512490721941549514925437330628575036560956851828937818495590017149596972506600815897935462018714153827715795692908327560257599383718251594749545551152158399143477904598719880698309620590582491885942169096459564708636061348658460051790418713225829400525382823849129122863214539173347384231291250587198663501813679850381058893545968187686755752540829508975358315074604978003257155365130675231035068152766685210818185839619210905807355249840793214885784238496704599958109520989997075532657121104783292182920382560335610655111473894489385856836471670465045035557393448795274049229902700311445336241752165129503803937417798957056375547805424017216704607350338963643015251597458909014422509407828698931114761294597219658966657216264212253078206584995085110326076533394283721596950051520869772308497300038989179025164171150144935992452738318248887351229811083768842361049893652433739297823158793681791435088865959600533496197330269930688861377696355665701117680949839867592724991103295110013633706077399447460772118369791731488022627495617006130970581175725183832732527796532359957437617092970974647228538714900709943988054007001409061973042414281208411896292751168099244652917270267240787946230201598802687589197467482591391015504586653765382847389031992218115471872437293058544273788160110219289371974828527175268292039271947629617246636945113652135614125602573340400769898336390630888311087921263817570928487288120337885263772866889329203141841336503585734458328620029322408563438170528438360831636300081882532562704997632915021143847708674746303220035439300826467424319329553274357237318872394019627850765154213517085924951364214312010425961679040618946450429724602018973487801671436032697454782047020155985687780146397038271880034674519679020939736292085265726285155069145582865582676265289360516263860009406478734300136028518148397469542733656714844955054935592431284478409356898932683011111489737926503174067827260622081479247344967893649041499139910124961419119856860979866745320538437978074497221165312534170740586980014407508635166738261758409246880209843768417447666912956530857138778171964531712780040271398519081767537350635742300029393668689419396649934536925172655482087428665747192155465893047406115002680332775037686903774410417048857095525447760643865888480761331180614836410323153812187310023890929599057843830729779471802245205283696951039346346439359990290771630917933384448540489849925055310488827287571181272092159627580804590573684141743007597161253081182308940031968651271061056452102372414305223552827417543534210049035468232832711274440643256352769832188235830819975554904327899543169473090558975873144102483642986791764969429258508887783338650948646813143258400175612416965847958678633247840916664658090579311390392512354285658654642038322898643024015563219776808433963905870091909813556508966830919777737979658143065049883368290073920914259608243283041239312364188029441606382563569279174866897040342189498051300152850544331593313415102547125055487900166145826007578941901367640949767678542178868155398382579253521127568808792814283495023289428683864478889618043379526402969631112018256332887638566440407531797381836288233433663276807055034733089031567672994316227058937322646131046299700011420155372922297961900943908849630124421821415814636376422216635753430868177964715037151073212264605649455266681372726290484921675794232675393643969948891563031421897210848407555831787941116463814107418821133212594299166721014678490233882934827522700693121420118275978937454354104579588567108344062207433307585136772984559832184739396110506056012521092294732280121624189252946062947270040383587548120115145738691494468622047605577674446123833356368653540602440826618773181925310336798099097632546245104334700330924082541748501372939373310961390473324059944100532492213972917292143484688880662247491445425077417967805951105586704794864044025670339682632120255705046422713877421963097733392498364184388189407615829375414827617982549819419803605404026716098067795493770306579485459242310821098709566518087830929547901479945650684258781744639029213783033029750219451558580583228854123422521237639044932673085075960139721118780655558740455322194577582086966391648624705012292816762409546321777102580123598053180609103500458266931540373918495969248429619224829036561491473553271225774215270110359284423406900032386291115483780755646142166969113289013984928980801766975747857147719440369797866523658134277066528814799384734333445129034170941379830609772733936556877714404081402478013969809308387466917567952856532550282463184019875010095892009623199322189610668552509862705184071928377778074102547080006491355327805566098560949195181882608449965940467701837279896752404220101759706120841908548283033531448065603053128355461700044566166885265729973729331307814401120450220884884632886890561236675835510935967891919689775649330643948001975978350621631237962337334423721526870905681577414637443010456800577127162189637557215863904627577526066301994196289847328399751475717722010629911540648167372613324439220842608840679309466969618568443482192845480797153632452757684327227272180161831647156120822024608436001458116902757053352827401173847945447764392610776398666823125598736125787913909995292770563840779599554818599874308371871096872141505773463348660047371324586846195884293172722382815342151910218736015467930133290076235811647339082780925750325637725678877257611642031649582369748435026954642582983120941490576794571534159458561430826651190072424276364957620428484988150565927682188767472444617460662047132683445061498062756740404241821072802380832060693446222315125937516216833217069616335746699898839480566494239101397290208979086038868520607267743533908099454184883855940334328392677476888345149231732450735244971613968612904987378315636685019445486283648009933528471578453971250081674422156155579463811842260037548253010240172123199670103270358707167929683242968285390248727901727510508511624535663524647037139347057766113490283531508986846547858588814309904294211811632838607265038409281604771478429232278452048315344062922662943768769312555271789293450123284215721431309304274528988111829018142414865504489435069009900103503029479650985411183323091357018869098460266977626209784085807205104133497966778941500899204885668409149695828100107905998007932225627966064677229697670422989182839931781916537275056573374658619114045269283366859007481075615122371107958756944346854775587389006157738266570252630368127262254591264287507840336506993792467627415818944981218403562587481986318785100447238032265919686011753816157739825722048310954909284901058951158817041510869240798962735256024519430592953545855162175728069862104383903769744184273753489241592054308961625916993280633814370888683538718083652870163207715597281830983189785850206307798349027104008205910980171842529097383954206139314014330865799666303565537975213895845773186557924860031376853554092067361354020848544031269052178750071996968030439870253161182600040605013549837268140761407807461761980947048728578594768184088647648543278492550729959271776960059484822324521346029706372781725963261985005838939140376660832225194951031144657366229898781839416984958245375266084092472880672343091686062764739271422154240964427476447479536209433860530341744162513108624707136727474797513836354367577247856506965905070746989208600095509759370741654102726553489477334462872487043798016747724601096193954226369228375804350998141778673405949161421927585760410171332197622572229610491045441957598121430202948448341286049000346926922585796225812088336748476933494496231242888920314109666636852753109599809850464117051022974788708680668931275012368357646355680520207045236898853508252965725107921321200469204617284436552491313069723637017392116013641465516549744872156964484818985074829052704399582384803930781711000624539860366814087272161280552570987734163128820713844670387187896544673475186680043646034869609837999053189935105835602698138941605433815248155810248823919236758478548304589786196098079254710236164779038013532780787266255769959499602667321495781940088585191432963496405986653215620033239287142506025728252830422443641097588134076112753066972157106045259657219939870579464476709879229459591494885880225806171197819827720249273047389081714633713215209157937056479354957072536286006424945542187381612710861204753162425751569342368074466911016170556574586006184689630532577014061327341177654026200190158956012094773783303646170108517509726456250883890635597273216699359623774632269143486961684602970612545071295750372256466347347015421812471046885520240545016407761218521916011267726174921451319318528510102831502047799168211527985071166653040913051840701682389320516254767194972048924604444727792895222747661869884123650938925339728088932761210193157876960437123744285930512756547614483451839472178218492486259704977605608681207729616561499154427915891329959798555636140480574812981932764682095334673157908306572446618331940681300576765915081799230237647402825160941029661977895613696996255350968898923702487930502770411131548782782105857386885516177116854804241834531123078049099525395656148259056430245449444916449187099896092990159628999113894196952610443170811946300609026103081621152629878013792432638578378149242762698672734108538796563516361512601280495515218821169228525698674936064057792246346838555536929302783125375273975979895182891186520835436137798527613999130948717301702418019365953062771747380950160227895881247693957401484650629983334189722012688216685933026014377503265713904713725788186015795273722499952154232661260426785931697455257236483163678275343369348085762003449358780305483173354656128957046047739732199313999718020488535029607750935373745248143250323390262843731135793732558371826055222226536430593081493119293155567151760779344867677735826051642490408180529899159784764341865885120318576232964061695878213843757174241562798493928541611529148488733631752954426255168767264304786605041530623231618882926755542816468367332586232237747717768973897024586239328890742574107837720894164607240735659770797396477834592600504750711007484050390147593465468492650882645340023469088160604868239143591353079090108763978703367539159742200212477752547538335025328863187337615285771449155946153809562357619924379267114811687227934986172822731505962229504935427124290810291752771611293890045296088994699277845581584329803350307073599747288461190937637751975642812894730733489815185471243464973162953723922166652103579834382191476199361548337615784553162853840540133597795075092026049885424010813298688802276550213872520171797855865373837275704174373652093937845996509198552383762336086390841300197589945362375995287572598546706402068778186406985011294571798852757446107235844483389730126115595166943854659749160053812012012703741005289864720552953255593924205467331090263723075455120469306861009382361784323135413543556815333813514870655403509344907199955226815526022900494420371613565196092116993322463810975513829662523710779325375738379168675692543169931162941435265376569717029540067566434508717876246635146821780120149784600407996362481044908834483729927689650282839846490625852454774009644060286662869941793469521417985859723800203892861574746561623287455670321879888158389000884019568047175009094501432602976570234177996220612585145980821098754230256879972616579812754069185535517260429764333535727142125959388140918104755784187539366158691972399627465006971604278045379231293677438617169920077858559921434828617297641236737423573984329153074880662006475913019708697329191139662005348994935471520091438104291255185465463798143217103820481801902775602937782416832560303842750231814486822672259861507916589403976218740069880467276162227468872999383271785944964417614825963848090518606470969329014551653460403413668135147285437338156309937785100011932222241443278915107822503350616675846649602411846948060168654124605229614226934167864932577465072779266489436448894509487477334457378050707537508330649729822786300956512256704922156324518017694697010742474409486280934242188382000910898877790391555892674009525321355284715787059525321339484029154564729776496997237432879482548349913476143555986381189737637237659712569211377086862962545746769742323692007412248190879241471371895959536938982938678743882127117705465567965477129568305822447092241656629595972639920434684512575172175247802514292525622662483583053969337675145088046894261046338901794317936538124888932086755673689302302099548945811406441708943679049405894044856603706120459434567406598091742378986342795226317424658574234940525176583805688505351501014379851829959286853167896175886591077316319860412722066419072165286434486697693163912478956701918908391562588234412026501185326515116796769324322670677637719474466998506740177493866233069179851762016507010701741223397772921134078990837388939866107187898313286586357316434428172973388027696865191032054293446000693272022891611702928652892334755841499683823975096958205474643714041830113185481732010550516089740588797534596932878617006982802316826091914076661166387017808415807398440252861437386817398757432629932004457686153951868482079087852018139742681171703354654747259864060073193700482669560985744279397322038735382640307662096320986424558275250272565628837973637322183699602094305473428577278414508504476511993480554026574038306027321326740603862498888115803105574854397190211038889951431514214636970881335647219986717209279116940281457739959638332586855530965187794480322986679572537259215361843565294638590839975018629883658007643201975359734268401482248029746800671200311156751384828844733212151245347649634452606730756275211746871759454032612020509409648089854223305128639443835792887463608149042254063963781814799590593455549932019477671160700017268047422772825203503054532972930180159590836667971683831284058938412462417472226611135434221497816909516421112188710977255202795095053287702038567956988166188370055990379145174941463135021072469052144417499262258865154706413131641876168427839098538517731568866930043995456175766880967121891583568805630745552303698690624547718041721174736165219456277799916510793831329377938589030358984301782171855735359393104376014013059586537543178747558782614240264171596387456457019876503959660090460447122937844035086654618150975669902954311176536388272540128491956061007134396930878968519749497144696019635303797140915307425638603867028931547429961511865457211703390443227473695647474880142403198236498438977513743222838942410299872836589757762493496101574225630819725685645414799482324283200105162113469888748770343244060224560638853165303790246162704754334673065065701869916704267928755009624906022268289579235012637790266741084021869829448955493460234439022390720248981234430510477130842072328046867334552304379057882587648895895981847522858059777267980141909151165660743608022569884489915642790764080414734627641106301491342028729304395049155852520847808247326626325827720394460243781570289187803831430260605465589726500077717249117956394979041016074563008434674215222906044106778168714825390509477258507264715440072777696800099644964168271493044047391600089217589146073952673365512886250065793209979206537139903612035189582299037519357420635958540087137572624030573876652427651725609010658463796017350707985853939994770890486328597334216279788487767777324695529601394950635923643505834902099961623608606435790071049256054595602191220917673307719653488702371695983108680158938568499096531038121523762497727509109020973849960821486482513467850001529458052319932347950473177497865409097257710685477195992002890667409042648024549377800528636976992686550716842897274380536013106108128406261430653697186744908703967456619277108289091368940736699620423096445175435969010263494641308397624099232232747219110587337956142937836742442392668412580299822837889447413474293396779329919503982872906065218498236177945289422219194642331523352988770295328903006149436844388704236802584176339807705908479722557335533984195903586232011425233068199002089428957700715104648333936835725328587940828169345436956106534051857013726148057385004843523910121801519203328911662253309089555292597611638300084837953869533514654228932456159997726738293639657918650017346895637053440774255869114876093262002779745178747980754239138793613315711937682982385790517590023329627708492145809821072394670528408518798986806259762340430519281499016185704217540225832033924819962660488779931066913638521846492394608732140276350445825626527471381715618985370617758104479272500277941834831271770608799612154115685374042069509148923766730644997829381917697340049634110676654398540526321350015692891968144659804943408542764234059693407762097246688166160600863890817660498050992818254245076143271361122493697209676290458875464777251596371221572352615056456751687620476819848762030947189758275709382258347528927534806765981733179443717483907777501845728573967587493076225693300303388576952211928348062847601575770133123823697073081560684441167762013830829607200064569965872525597997811855056533245124086717578837993036635066849250737092388409400285941308213538917679096472050680041460763729515495658522839496716619746156699587201571363542485961037903473349022604133119501450529850771895280536407096800845290333038867107860280825009389339194122182095375618939600466157816648150881393418873439614680025157078166515690842531442352437393429709831906384755656985267264171392727050341035771909750388592907623893204070731494014800746747552422755162029571194436777533258594961928621540740561634545695935569369208716249637360716363443337875542199842773866193529511968063029532343766931619963516110195681401342591198805641162772200058280890466647389517528028449422696247646582319081864827107408226133406809857202439341707374343735479335578478637586037558383263435867995767745833047553116783328790187955503826216110824257380933127466488671466107620200649845886201928527632217082072250748329621829274225126037261625003830666334592259147494472445827349331737336989790677668326295543062847653235919413730065781088946201711461068689331350289526948986412233115026918360405619921298207586410702147019420435092429501767707857049733028728955983170455360725619770464777758324287174419609387219966800289308117622844960291035731418398768840678551727915252138221265822373933211760397832910890801410710048788019306135106939755059092958036388672973732318690983889963596074779322697683755745312909141360858890055166348549419939713822756256044525556618826071221896463398986472456666383317266415741357927812840659452025615017186443269177212211489849949241321195121303831721693343238526591855653902179629352806481292885257666272996750039131723301709059834825441802973143692260451993354098005943632092974754839094086046935116275700897088461381879983754968224439228390520125400541331525937293683483671472895245485707108530989845305344062625639614021349100575158719303295775326392793790992464270073078492386919889931284183531889960219463813525546811328165068450986306142800562878243378445627105144587111033351166988657167857457991634395952294944085428805181852544260707537772338471892573405970752351556605741727685902245872973213047093237579023701283048822072704382378771778371022751751231843786739052079895523212872156980847053012505787507484903099745416471106023505157747126582325463937643584646668558564978543230964448261763082105177137443301691594794029262228064513848663790009606010867096145402505218433033564323953000111704200095515523906124320029569788453299485755773653305726749987124567125885587579358431186582667062997349073570949902557719225939440957262622401962909500422710594074298203630734535417161828487780035696969857721169311488248165441669740032146702745898274601903155554387869101904915040610602426173351201843470211667897810291513022500195452294577913995548148615300957557466323318817019036695721488086120605300597998885123257996059450990738698402068174205795026756490907596594095068076017303458385229051861492522417814307133874063620462866337731492289449149390463899629712380097305043770016538804009988112863445293947792766494370095469299659025856189743285665322844199660350011754702109833827851581663365703501240452957292224507545933808031873637044566079616497861396843695245142138908259229063385174329066657755416099338456308527714457396836910028324848040090002159714402127005127328227820986108065878042989378734674990601180182712461052012174750879883256824341599995841688926365081956334240276635129899263620806585180206369101186175248964862015386579151382847189771244484067553651631757731466396378664491290167777130752246844859779859476849560270449578627228804647724543059940160778608918304388266676309717226479461891409317518782641054026917557426935936211374327125850990918514290226192002370278319715544385692648027980568430217258627292727052616573068441414681819575995948712140035505024476774751576932441570604190648023430229109498507036326462524182701678177332424954754596249380848111233144286570948347999668564052068966610434668670012130429260908268887287993009526059422626340352443515528062388658994954181068838759702686889318877276143963955745874744533144536558496113391783982651643688434454328203098970839804880787081866705952027391066691919944305407415324649999698169647816736325852931470651095150476098372199719296402517627440697134910844796948128022202789923235572760900303796383401529177511370870295719593149522366695093942136353728331702688517703838517986303262256642940279926895572388421656064937702108198488076956049197031882791521113622328142716073269830807596835039365946613046442225072554927247065618182088210341211089344707117709561924242578629893173971058818833012813348861656644157217662476893645834299686924630723133941391140382327617308943610324701188270674101766720387609475697299362406781180947815019250224563735989874684266473407633983581804435495183556386716310314601018845991481996303225888100451488305747044777076897814736838219068142936726045915001677442570272568261050503209184371792763331997178802750798680573764032990880126025793547669702355136501229346661493793038048085618433153841231717437470053745236567209861897184743250085576942869083365650670329194418973105623546450597507324210441061766574588166027510727402470526124738158898237678782254566453285774601190510298250305898067086942394160497274860713198830425123509885909605666383123988730810147510349564515133820001818608491839671470964574975841100777647871246001696031346321915019912274669081194142483396587795277722333673928020258405468459129466721083554212897849006138688041424672751869461864815878380687476283874490816288141167542921902737547260123884995883423404906368028404230893718368375408070300170613995783583014833996415646768242140461602224151718806351479852538221009023689349338784069706566820201372832607123419435405818953667471992208764505388054739669123067141090473728221563595129801018112041905396977737907104674174953896857935267730123732269962577514887572558323079487775641459417054547043027185833003542183991510266106489582458056746841859095410637989787011818430028723066754914528912366937160489671699621974515174175183734258461905742030957780789260926174548956828798835074067705138745061129233393943819918122743702254983698491435606293855903203083852541004805733168587374216839219648113793689382838132414537091580684594690935071139118261143563237372359054129015918594697494514466477098305004177586233299945354733845241654347985238152352154399410689062813630266592627818439839436880236928869648300352558507265522279030694329523112101783048494162240319388481567779850248482335165171229277898959606986144532971100825232761589998262471189592895219324151707181215893670241036829170628627134868669685599734076175026510403927431733697208814584242474429203253081751065090737062222095179198946192874416403441026512496690589609963769864595800496523683411367496793083326433354773443904149454635456711302031772370930517986534746389090937509408889382310985033085904909446489443662608694340548190133882689299659821104150119553377040498498872929980866112164893180594746740075350956826651494943683046492378259474499510157464167539076148254296756463376082288606832304105588603771194392808407656700981586511262151057379767140049249946223252407926978030548200397879808273946467871185409654904047282288456802877547629067152811037106767616772743089055472391490256325419145358429036141981304364284657926503989701941714704593496337636846732424584783489489676078963806360665409637288208265000638024268217707568534878392646108367638020706864134497940544339603365098002312783392462543805173202346971442838924995376955495706776773325432402606075760917077329208572671846160732911070521439449278741535487479594911203554816383883945471466325942921467768748578844152180765568190188072235332556266013428656369282216369860206324072022082785726366934768995498719824091763848540373734701701027103195682086337007706069067718137124887864975086123046597950962904765717721857364294309941659896261258612412354437780279111471721816036914360767433416324267121999126908288563641064011201679199272989774354332684222529824325398529446163376712424476032045006350618383527055167911000112803326555471313369962073273808129468143377301234740760503708865942506779345767123923432271022363929716482786314945864231490791818625813405926377594590667735307295641585499302547278642412785891889984704403469944521487528675277456346314112229117150109932038978290592686293095211620853699063872128914715108725519257953307781810170811358559596592656309440363195243186770482323709146115334125425679622260218134619210623113563108789256246711751331785292543583165387818094468645714756101441479761442503294490485330210811263817137320257275579603669304480212074524897219455977555275158846299119292149277684328708595658487672957231076297071486203001179173072311016715945296155712325060899221288116648003375315004726380741280077447239848153905254857090349981877078161910243870273678018987141311121826808102074030402846034790962086968885829002683513334579694969169273848980725306115598316009534483603675753449997604934376534176154253579904152176782609965176464372402918214984299805652443532326170581238657249236164690996963438319423312982921588896523507498722453831429253156625990457581560808714935035565636030062233172205956605539129697476494706761485730949236687112374262921682578980137792812421976692094765965764753246659353094856553169805511874713944251581201180158079272849396388470110760166640640808574856783420387916143594652205980077380579412650383599150596027467620815170511316879478670358151843661445597430363929948996802906152822564587401134254613218323581195470582709641755682370152929359134192395551699669655993191940848712844219551645849487259879240079574107917171901963142223470644833816744751373129008901683444849515966331783643554557436423843463754497171711907545707447628911326661350500468370652153313745784599025481495295579882776367307074225243697565315445097710135503460656537957275241378307860164507311714047117102662500437702186490997008168952281369096673301902088937878741566504545366122334605336408967452509216385421648555708020680299748151605920898345075423510015731287293893755586411462248528849669283630496293006587727278357581045423146488057864746177075775992797644807872094541054972844736736781030633991648850476342484487063812109111326920149049787754588101950766801448362639571425329068533681594002783076198816808206906291673738002448335097465447207497759738943833782233464363861699819001055727146939302238188257550342770294798901760847287000306879675538159826463571957029264966993652584135950238283700454005619662554364618057832943164426479414222151216688619034792270302387954781576584002704230995696892276939062814436306960417119247651796052829074768165403481083436324587639871746609352241417824720456754465323382768540999011008726557834604972270832862641647580245691192061779268052207579501549025698361317077457178132989407553163357278439291197643668236212092337825788459165183344679479981074385631635008653852938857555463182217210914908948014685601206441174867854946695132909743840322442810371980423456437852347509076450458300675728633993191082141040604345426906913237611043533505168069579804587075199543928908442420582184890220682389734296338978585866863419539858144106823139459893069739543034287853410544701472076880422498359016862058157461458967015051553794503940811329280065885706861878395506472995984754846306012386959906528470963877673863614369509984139285199760476898214167900286184654174281890888227137701844205346227083460882287116755061965443522305865826136560063936632257329189390373536528215435018240097847762577024202355218517842938184442701788520100925437469237360197428887478172548875914803890956684159792879886100972580873698097183786965264208739139376919568590972354423837306870313285219830156807591383152220025405567825538800580952704126491468565396549667944318392394690745494196889748218914577721712491122513653656914579221020363621064038528094617071598913109373429544872405335004406586607226744948238518870690843936241940381895200229796046743590823431152789084472535141174633867045993765113651587843026376569160419641424822877486151556139705102769579319860499133820781178127821315823322654798818158189477908517463027970968080096832546320445797367570761692395691635325653152939951307546054320983257849765662669593880430818573378473762037301892804388258584833080520749602895660421512027953022640651376174521241826290793002751686140234494957724700624062042536802256413180759238270674347861402322432412307303188361588841395488971460078551875209862632803213499241163613490932447359387097592689491057068207448640530758382157959751693921312779206928301628810741093911229815446986585568466126577925110170420658164421263499505651648226946712946552647810801425552198381220427357778245167802976690241481197155176249470336899794338118936111125975190433408698060607720004561618509535150222901501948875323694925473358779172148225767382650415382513416832837644529011035053978088044542018798193627871748241616618135516116249231379543793248247364023145117869056974990473561714842633461932392908981105335422970953124072865405072791438029803191300082391830875053321287015892264396682944726819113321931940124449998951481501402137627449363770920075707293016352715349582465206665993902696573178509275420258275960497162891349293557613060998812185890841927209475784285075891152289308229564080061503392486365323928465070306065704789068884026097612633407588632076183489858365058626880296983569487869924855706365460548192944493065715847813913998340761027085165899851586003980666353780040903995283897161096444244267149768770736488816463065861023141194073072078088304149616772250378490947228199285456857747838371975120898362140633964435443433068319768402375665036537949616002857403088931999666619419356843796891120331699380277340359734032674239905063035263166629619098588365661336264547269208134596426032146351790835147981117369874030303162352286598523281892447897191782095940048011935087412757721672401208179024204386210166650314143668271586481191835703388860540979246306506021760839677315692779602516673426473068292761514503832556023726844217277682321251331702609648571779128081410868327439231490660834663159759665403468585888253902421971762036790833769925093241970289458664610502615165946137580324666908875918009429438861484936629712864812576860632877320921767988759519698780013781482935566390581401718929479207685372472188325603023993769661756859908032043728724988559329492326218921381712097475722202743395942916131585068473575019390296128036924556841546861501522148286491018308500187225822044913377127031970661007326820432337211264655142521646882496651468475721938879980163178909302580670302147672996129240751518763382902007521233819835676067907525544710060165165308459310249617442673287691992517789097712615395663227180426998504434615153478507543068278276219940117869339791365426596679948696164952040604247953668612958521691142356641865570945111664460186158619824709397111179962176919165256425083830233021302483992464840201222365818682442991629152188499564646415642142386356981928055588941186396601328910808704497537673014220928190848406648116118562515583506359630122980172156617132557593002431303357380778865150556635358351741687492952446047085292788195409945694110360750071965912086240286281645187257010861690502126889608701504653981986014500519331560575597964508040176572266317593037653137106658130322140832747197039464204228627106053912397082886080021450475991078313314108000694240816987906930700999310919692148902717514779647052447964550082894091939630135571630983476883695583576454909571792424496842523290314149737927932778830843971305722016117839295156254973681135716234059968573575731981199408070100225869940006984791964442504260169033465007754790855650742503499663299908037723905626133280778175928604193166606312093771903888533988177102850391626035521200467480515563867835035434706118457061930369574215420875973656068659511199762508969648795560211842002571417388122174534132710754316241151121913542207459506288287670928744292629323730881471195189563047201201978089808699285486564547432446684769080061699646073536004150157878386780999097183171768840383951691289163398848166414010857149314971634083527535630231839500970572965883829486029666297359461133497159609204222581622865950144175979452748421672783559090714750509783717713520239993954370741097624685049785912488611106735150867450032910850473968581614080476411534775099675336344094543524979107233382640126508799330130241696043789671647740308212753201681266908927790589849903872857416016517562374845753327470043383614125745891177497432071789459216516810459699486662450760849489019032961323860740311932535174194715591523554681425654404578762541942658080641875352637886183533758088501131000201497896680216603235346006515207271805856922999621558836667196564392732442902458074159878232886863942027326888853382170948637457369022344145170471691008261822311212556190845373280749596594872035416991686134548054697608535620727139111097141036863637425049016396031753420107923393071525040760932208612252833073795856991945656912735785322566879663540694920734823870902723321949881346551357543131213777244815041972108397278056640635133435776187446276640492591078809739424541319226838699494009066171983917875012600999012139880230069044927232459013000619535344572753115572476148710628909342878326553022422463866262317221530812353267620480019221943672734366317780143897077806324447841826709929365726698433888695836753195058517465500021950537585340558282120041517232211413935691476278306413192296277179027383788684244771801291509482818318280511320376311302964382577381341344157023363626687245597120681470923281648484679402066022879566723135512327144792353905477542458393230199890895713393873286038423171787741736522083787121289328707773017479757685185685331233100690783120349378397929261710374962833522253703148583083006567770110620837738846609947796747130592192600418144008801136415784643210209921528787580475043492307272800601825064674774097156095332404457428403195717452153724122801750825585746211317310268428258140992738270683639642386189774556009861575220605041991888403382540725339571219926699609207531681698076397325425092536883692982384800784831432920478270199097165415125450279255312170288740301790323017473653791571915953131857875399357664919684053279195818444891914037964098926950839583745884758774968336715341077475300038068755784839372464573735114854645841434032623044275323085076153154009762643724754868645555735985316069595436178027409600059088918157849742963255304605700332671662655479326564597516561339875320156596976485513402533992076563769177890998357875435170194522159956885893358291455730912914460921772934461468649600331872534580775710016675185659819471292147238512793490883769305807848843428238519174834039386472472645125841136592336412501163594794545737659064039156364805347547615498365728790819468552690984566117949829674848127445943937148635256494229478361624186747400836264248144004283969517178692072672535913664568308413678673491536539783032532558646683291608078381302538732287660981538533396771073547353623085657395386455481517234651907754373594009981209324861355519699204399218075853085325308857285883633696953793593216999684256943560590358157461932138630293159584109039585611934314768761323033245372795368693508929478098354761910977688891303036670483716975623497757474595058866845550065200269885865885784761595655527381831380182386508688079651331610557340774433326693688191941229589703270085291937292342009834136495207889205641166753945055626705771098743237818007557249097992452840060418717595044681098661343498437968961332386629557379542710920964445881281759054042322626749204077630751833301895890431822096482856508997438892221289546935742175939016464024642927760065373794397753050911070507035170598594000213581689909098872325105885328562909679641178830650957352963498316119113364939532461098051816552030292811611651242693824885340005788227086513806204912120772295661053390656983422032749500490139537054537536916336795465172568182241382833972056273436350015380168236724194939879480686394020738066914249577052190900298877348192236789767801579282523131576436573051864815432927693338001152180251688394489738458355958120760833365376960792030333917115983862068613309460389440612723478101505873128634528381836945649206241057420268308582701409256386880830143523004721755752822696928177913560934256801541060123775627561780186011970026093764745485267655606576849190007225303858521277175149089666751069545703962264318859031435016381786011455839878666997632440418858814458291941292545976574931235249409809146659675036614707617268733535419495309730432011101202506990066178110258259582282487750928586262608860935756961208586728646537472417920218823261615214693416438810070442991241020855235329313937447498564543698151879624634412568597309152047394031415137220559888411512970109212939568747583844350631333086334786653777836178488142254016576712464862164525603160129912036146216707294843903057525670055455605592351079589536964212818574581419826083986038380772834870871948803469601942003495663878379271870215801537460251142957186734143295129364459977496260266738937844400125983981330100996123023228991790388009173661826373512203878767732711744164428307991210606176211223150617817699415090266653204158542287056244680292417278012224792880269234013664655847322742753883325627449957120017874178243895460275600155897832422955616091830904286376824900732805573800513227345941667626947074968298626641969671389023546424748575515918261444957410317709922011534253837344223480102357376769821536097203785375309497027134729263504246989932799995849251030790914531434275105160209266206041543210910793409967888984856953511491780172956516298875866431040587986035312861465928665797217707725393513991016022400183872285331981940617331336840608551760136010826311721857167768200946157091753298607430144238839832696033645990319366832788676768701585238491102422329442393332720246089203616569969681833901276988197477254727514967182534333648464119663997535262633506778784842943478018725135591623748100540953224861617333113834921357889472272705145042935069125616243416131684612046323246199323977115396596337916335124181116939522650679681223759216276305653617835820210006180785332141651647982301584162107470508646267034177395828530697719230723047915488985229601516008904931048607595389065845234933439998125258586110744157977212653358429230421797776541832360295386615880582349096965495500173468530924140435966977765154757293476072266185401234303915763888874725342890686750256156031548454170538766988227062660203529860029754069091584681473115960462466124336544630176523790729617857813602724347765899287759539019929481918628153274802460825232232995218857592388066841576043006198754211249217913398278153406238487426976701560081076408249038861525537306631287075931833855081705850574083870984158783605448418237381365838686119219804736477849739094133342001869070914131442323844400125750289438724588078713909822970750700764906571723740377017192768166535331488481961314776059981461548534870351903335681045499952319208583253055281352331491555708307218044706196613108189628808731267858562948336979336292022793291333041890883067243282552125885416468103389168868483575397618815277652990077487849514294194069804484821065937209432820899966436739047949314426650414891855308884133034671576115674816844095137025675824214166646731809234599220508346828995585935176837867744440160362070198861042107176091315070571833348899429936624286771009384131438725844428730394397531757180702512756041704412595335932575886727581762975907400178640091073825994066399479781907756089901310590835311587736533016156877485456787765742280420627759937951933269291008656380085164437640035067481873782762581854643299526644307310433006929081679770206452620261081753887152965871066214727876957244798381022316447396353788327452518593843506302009654200286993396980356825349904644441212796116530857676570806646904021148314042150904434578880889607252765709422943918393757886551950682018260722437566736003978893605946060647525396206627482688965216923773025940606076903372696404038164409573636317771507565455920666922177983305041507255090823383084113281861732224055884106184269614116001713654522758217699752204213339248928335371270807025142067866441184703754907355290539832281499096268240784979150946759262302111252235820246821122605251182937347192822021938745699533515826908109169815017951436915015473128953204236014782174287985645809548710887860224718048863376832705321831840611377683246592001966011638224684476918679777448994406036435646360326172738405942254403162582327160909596642275114028846951079420168030908219799121120642410986231700174791546776431058073424289236656810730325091708653345931622853853032673420285825682836464627830851809276404317629066347433671485669139657980616604449586986390350048910803010905198227685365064512414069044379620946515793807941837936769640562284172458974293999008055089034735059748121475289494414116620751671807934380695657444826862452268254011398421745997120745910828554019108235481695858194673369683465138836590593192073224031084350006105495906736921059168230918873489045695388048961124024867268800456693798510618400944772917658883486551282355447630488229996900935540728186799743339903681099740804217228618651730919806416530539116575200139696178518231594628659452788277993308250623004369084780415040844216921456620762917631660663755434154910932423928210750662952741242901062755499327495527534869942764858635732961085209405174025054281500477781236782786464788318996942524186221207187680901960249345567979844696971101445518245174417027946849682249317327869024360075273519802745552360060671491903197602154858193449842346660093146017106981940637116144854426239502674292186911757200597797090051650302333235911359771662132133491138726277051774927528984511844730086911650018369880064611504230390982089836831040435260290505528758182917747274680228371456590874180325493825211538357954937267165892512166838429467867310038784993054119933062787785933173931530626600862932880334095371724181638976261253752317595450417487814316307626717319644740254393710298895730220629760048059044042648282177790347611739598607190689254590147501070904627690495026359852532879574449063386957954157377897234160868569876904964450127694786564217449169408221770116219700647898821258400122227644977919376256088465797342194813112648230364118019322163383787429788801020218542703044972590479846849135375086974785412590123133124478899750535295347219631238728351949614992340928710974646561331532654784858106170494805619521447559961804148922472291497708011750058916734743616609618791830071631480529359835187522222220773928781841726638559817841375074359653337056460483667430649671514047069741318907308009883132705403399290764499036926979464959866242250173253349473502524818812702344181935434260499599127210527493778404953028223441408839766113135095387291013764523398539332294227031194365638473104885939647546294642474784343850436689317291940116389551682326729669834229037404432648079332976306254587622099604041525725823488081543247931456627845497161861387114681400027505115285517919506300947286242619911920480490713805151345413751438522237948120482597987335517196512672496900678054300553714059339485061640219367708439358031402930985127867812937133402308373449819507548480707995311624685754637642092087569632336872172759757246741668505288146115729373135504512897217743959080540953369735978629790944966186895131367186686896885906574376217088762127320194750412338854867409297592127271511260495804794271286276514512255665041703467595305041832407401546946440361800313633852299105315083685190779083299146359801155762659677231821555118696028725411146645395097594778518943256386623751356929662963792247360775931620384895891758916703706715437099483919553833939185341827193567247427858717603003089324310273753435254580184040214374126263025981189625537263278115294619546534100980740750443097494010305348280874585307728933926634833269373802661299082030261159178366419559132866744937052201177511897031617578323181542452246953681076789437786532628127040694382805725645099529115898056861874852545650562201155265419875713896098442354030552211760430324363233736585436867569608748400969777966428411939436743956050554725637360412498511898293712784376692418531016056022802797174584759507807627896241586649746296329782196030359953817356781942791995297391294849939575136141651426941086091038197406186512647787970009112573057765136158544430178021161652035106421325014438255660126892598753922464436208438305204554289213208149720721326198373882766039841103764985054782369700722165081368465991504758429574047227971262605508919941344891075918718509773802018313704581555920839140284349292416286272722820818732817737696261350037166366151765228299144628457773808653707279302630707727946453247815332844965822865104767653080255554320709852242521146078747351482711620301225490487232087988686881533766857005986152040864596107575240498967886120103176521417963229726947208249903417653871306603022441905683191382018225833643538236705105344373110905379956828518488260377454999847316889129296432245876996499407482394584968843922117731814315757773721535299089108130697367357932530982883948124294017740612986586248720822501875242142504309505015324769413317838855106693686153350422438826725906244630692396439920194480011795382707532199818273118009577469221140992856717066267254039912246786846989801185682175884422112790264917597189199500797727528844468577595341428030072186240303205541992986380379099760164802105698011900152346456870685436398674307052366250969101702906647080776473317140360162822404738463563388884946095269461320941984745939560270450838435677698600915461170665802027019597462809782609959071868320738998882697563775731373275897807842471899361287171152197790778237128528504091533571047866588490410438026049151068072465910873551530818947223819920514986784316144639912457523616882971839074935861554098874062037619451784552070223906959545314692064530353963117067933592260751214095244193617462471153351432618244811812350490170785359085691603013612634291064345677729426697037730023447353949218783654767444216530861291003225344919021916525681523839405142188817831409248714698417305763720475654345978477502464878964211836151001539751465314176769159358573318395341818019743538416640155694557645084546812201468689360850485682430480893251148915280868363549114809844168203145839782334974955810115966852170439410191790797232539248316295121488901180569369708123318685499268838888126636639595012696030698390372054369913708578923923990356807454443454041696753443259680761994000730412521656926521794195260643035977977333345856987341955407554161896354736052366327384779423592452367603281391931116488323090776888087542453216118306333385503853081929159049313213943820185754557755844464688459727649825432040227625875085421998446645338236208423171422861570910779392944006964771264016498335520385465635942713867608183891612367495937998775039002175825543122503915023434821500079362083662395035130410561420017675033185614304132157778429291078825781956444961053286526908461000219927713493877070055547173532132700413454536262949569564760499258180614373566523288168803670024820466278434186626929972246090644444351660602322660962585358130173524952320979683156764431370067538045367460098264640669829250277832007834588596363389501434698127851969811844578634058739412482417387415031915897494837122056735015920711361305372506660740106549746673355527069489731816491155002253850079054895194383936645065407290517727857044729719140057793195260633958348497716734295502684557934836996820963268585062464180365172153091173794519593301626986357103330023610259255765172107877795626498837852510036530384865401263073316894414477222455047687151849897370659353634701791909309889439146369457639913277122329410584534770689762642746053106014124809699746914537878901362877233404110334417206637693530767984826128630210956729690120771974832225568123428868803762017566335546434694527082641181145360668646079143634697448776218756672799534794141959476492648618398095496443381888995864091591179793290239732704175541028430033582027983732260590853861282374920467038702235961492977265634649938707413553506286987290495749239769786475529309436435155878694059261849632742885008180700667044403010223527936566742514735834162864401489738469762964141716252898550691877782198620156377965963164985314456339226845222750481176234092861552694117592502003802233934881986426769297882006389974987475591020044804421530179058522226290597283849562163194567506455001557483980785516113565398436519574663020773547667158813408982375313631450187845696960831873359764584435303988402056338901162517629986555497709021724321995459980411491451605483468955939512348499676122571789847330923415788339289431116612035154309684808350349243744602659342738530400646462436853891682221506238293926797764684924246769921095967810062221420625572232095494336780323309754775975185608505109265220057849873440608380482587245428323159948031786953534093202179638160800607032552647266551548608535593134641432518055188143721544229028115721905563134830669692598507732690958027009755043345661655740989784081421461882456173600742018718916860616383277679437983653545914457886477591535780405882307441144455190281604315825081514796517674459340233566395065049246096976826498970863166617717875674718421066833539863132899972007152798423305080638636043373324500218451714586479677749699217181540639182176458048363485512309416899420265804924796404586175890795739836269949866185615981148753901094480746332765635683380093239771736349335825407397514188011805567835478450927382910089075412110804306843996285590793863761212214624448336759045920497707363581112255722503897852943155172844796319716519712917061153125143116505772703686231995514929177528913949102267026308093664173483316311954403302715083479542248859400605809130761722172709963085010690050753555001634096501644170692614808132829017357380462294705662681264592408145257446904148009831588007849193194177548313530298565746114917512398418500260791483753771763574910302724833734275016676554460022837903019263684796165437415985656830067914731051932626200596454377123425917470560683962630021039697204668202476906207274910530316262437889127425250847795735111030090583297869964423919437901825642764416791656453361011844015475581340678579800827386224291649257113632144630797687874624342377191814695427211412303599027759231707277696026641169519541233847182798737737168917682193335861186535613483298641275115382020630445313634814050785728461154022124430952453013304756741925579283740803797158910439668140971130401172442587029325278861111374425480008674291214883430533406833339257277008498445187895309452545674348370957930949938538795906082830423595039880531297777738439694269371332977717770160992246035951266938165151541742752016797537612766756853358994870486876961034513512356214799724937426291719508259469982285175085500648948945765361284164090871785714460190570567775618560382016899433698597416525301745638998246068222004511100739497544788972882534162566060615938817768607969684098678260706755020478353691642240432431275836773386555756708362322353932422423930185752941922915038337901115830468952775504930137718904268362493353500160692418826562001507455999962762986851612184436042976032633796395732131970963652924920472903596757971738007712695484310801556490550146144419458888930444739336370904757539474079179141780415760626389797836725599974784953989358653927832188549569177540834098835240306662266570739638953460430713776892016204625211219304122307598416023559931628886332837316631709525365799845343745652306851595741093338732557912526150984454636994313314606497141103832626444504755889356492898646356124001072554526170962843554735791413023012640933533783628860310310444240242120707775574849435853566362965745148685803442959143276975977062869336755216512858597163334764665313372388908254440968143793547542257543110355797128337600866659492069803163476799440256946068452562368511206106767967344314702295910333474163896981121583115515431632010644914265154394934901049829313280140088031493670789755061055997844801089217719576579796739176804428982326157958803435441179605345073790222501022356967950947097085446002398889012195849146621648513106722650447669042938135931089460628267238529911513820081067291651433082855815781447393592632384688480730829663874372325833074192536333847446710824814072694487440357186867694184447757036683968099176769180493916603940434398360756928483008276945711704189887942451731453893484793518050752075549369872225710702963316270153498554974164874980742632090480625948787211247286664861397890802895134114317815369987215777773718886736965446285669001223353811971392123833673587864513384528041704414164418382755187003237150091109455922993617834128103430801553882524840632276927728187563690205216485726190060173987366880374460796836260715008159005875208424476755153055841248344366784155632766393335413013880516278573944863120937798920338374020943073895256494289548794182656022694326782888508256380029926495254288184189136545910364162502336373450614048221071618298104227761503742662275332941926011131835801894867994679289239193909367517086484324991887907711888362471403355151580706992883741254951037647069350805856973987936160518260743369811573002126724177664599759283106628010805665223873086242728938092935216809562835317884109894821917311223082933398915238490902547006043851144926076666051741510531076942965197522227539215324843025994232529074275505839061034461000239706526172740829210830761191939893606878552774367317642468633463105723321787912391586892904664339543157496703467638219697503968483693591666046162203666389887799652639215399992276543295750915279645260613491488832674292963056260140447843937979338082832438523628335656820006940002169518902104936379121416247031725254394906174526537702597126212356665932979960305599328971217588176210099749369801306500222983123028790613035756394362156210541677816910205617242958823152519874531564001583459446307503591891964342912151350439821914522154307753804857566065979732269294971444757839018154409302932164470926697128037233717067182042359647140003899573599384191162134331468079802364271855839566426252585427203336300200034141261404566226913740118568082784632425044312191026366968097919602198856536703519571413318115176857539188144736088265356879443610873235654891651620736493054512250053478176110378225697873029657943020457609187878901396652646820463481031437986665385923307843990279725109055147953210373292598163229414064595830298629168551443382210260054354752563403902418855382009103196363457397247907115337920188770071036511817738848590324296918693149773238011659563888598299058277383418979694977831132206026915450031527351193713391518967366278505983786001972413310431489173443430677988804500563883828559050667713469883692845170938516290678010798073486860338408075425611251006652606957783850501866202535635263250037932584330532994722433428361333258776735137808905187339771171522741392340859938948246865105227674350096669001897137955817310905294146072790616143212784330548999156282620987411453163241277107728204950053835408073665215180057570821329294654525366568230097692974118193565781024547072563330220680836541465256033147725308638689165055466397186287255731131525266754523693973905778183482211964537125815473095410942233625899138605985476578210766367027427835936773450900320054949704986049659030968842755799427638354670262011258498689091893561896510134865604213889526649574296334783681236342585096587223549566703229147344276592394510227078565163859208448254990722927962643970893562798443236483376200515780403062095067247118705881440156773959191063005181998234582379221952363473862910872970227509162902688321359919411646242354994433541008555126777368824384793473500959907935514010680409963520641787219970951503539606137389577245816842472916256346204225990769530785289399174771753713294820073783340565507655308365603453886466156883920410771122723870892670263689686969806486232293267698880051410051932160610300728333628789492599246300591052862998876189802785906089549812082792286984779706074345085984857569840304934149750785794102916488021882207405452445805400735299582928653691940318917850275092688753222181413790106159191429184358453693754716563173303951438737462901825386220765978065325746022249575177765700958957053322352489521300163160700112200125505972599729780155465902889481766181867437529833581366625524492487391299828802004884706950394578063126773785550952050707615209342475603251650148405772908288057146919038524414213809655750170459179248975600684202527000553121128692483544714096730255228643768909653899638688743495345998326207932746684017610045496282877384546151582846458012047301301465218442857125506221898676092157623902238813797521288071643795478845097462272561663386884717095495530336245413621378377920010959127137541135748932901013958468129665362636858188483726427326055854871178608579015081785908696660828929177860781108716342342888368965704136022288742863792639936982899124047758566575073261879987995310652471818657572753875832052682034449013621620027803749090282033033547972660951822851500129920121447538923231678175212036777716407468548787573029629218945554759975711199832171897296327785261878505578636473984081446856280129857547845318493966027006797631733199528929032850391741110593512688662194989397024596874700997799823949439618581685477481214833073264622991547047890826822918105359457823330969508589359473528467740353733042668752098830633642877979315436322333048511470611584785591603233220510331079589231319954784265149208225776399948874371484830744306303508815142622564348623422132289091109656640893424787130938499045667586381594230992352657817157534630187390192713043288768567429043994170438391053747142471115652969548732373380829620300186156849034227361294368474517024141319343650741225699147158491744445275961147330263972165807724898372044460473192558218729606508764901266816473159984490016934119893430244632913163825363493786359922376991369629292955870598582526984029598136211128532072497763438364506744603114682510746904270603659983810539218233704324750667337720855107842605349106645981885198303295237855552749429465498161124631631651100429461226853305816060693282145251815565441577514524715730175886715440705627756102052191506095897848726670018940909435565002024327161620705674144515733796865121383615306495559574771095885194025952086656405116301251423511485337758312718322590172633802677506606227934115061534039714252602064370052181698542836045286676596098771434201110508103873399010124334901656487880511657827181704235360954035737243071711771028223713617971560230510221125220971223621823417606164017429086830857871702737524244236465743781491035605078937630166948746480783031014185464573058386066217998422409666909621040046994161702169127013798113284593234509769579601142065354544732338044515204773608149862924954732110005669821478807082030027296516988990413335839745834365281252146900566137968392165495120850848725392504085790149667777810479678113748809917556755452719133980856759941197353611148427428133469894456177655965706094033274019792579934228692523783737632861196104573967906584544523457406156842550870037427658705068953045534801490434094035098330430852536920097835974207134735789529657503512470637285878346088970562373765625298088025955530505229713366684554818341134113146610360913586086819123161164881105757218480417908774910746296822834688039088896205980707951472943044796575981677892671300451331826909552484944992438257992894110870150872466377187671165563179490170608105905228749184991162903864391660796192000808190217643217522949941242652564792607206038491619563831369903842599460990016990070608245542401654730280658815782820534878360115910393830628248609349662490983901024574411902746684178399732038679693242708946693321012771354388948175039531191138825701053999734950908666522518059291775265237701549457048387530152934839543006035747943727144117010239749521463358740498499090147201806503369625706188817141037920328613944083244091598271411789911595002999277666516253809432026502995145708942324416338656018529547400988229436108336865492993483281768859206141513460051350010971423193105795113235467628498040651441025531228188793882821290684542152225265404472648567627360194143717596076428891798122745118693440108527872267287427558132905633864686888008961222253015333920656803029495124809818961662109088164895265185987565464368549079756137879122037432118578068791125173032265656173186424807291601475878665621929155586362246810083104822504968394041382851072022721484634067006108339646823910838199581226688927523689969393082296560278388713886548354860804357663215715272708172064051449825783483442559652112874647200876591413733032120175983270131338219937329529709787701964774783531655957541732561912939422447316628239096873700828894237500607708324872594929978713491520830620576492354809438050517216148950694649054978501446652544312850691975247165576184837454434474376229539491881029819559698294920442018889632998581276130472853530460282938943282162002394784699478092104152465522092274850774105625676775387048525197607181117518755741147436973913927090435487243296933211069131856337759463303048518660834458107931779074663602992882603458460327806452306338420277101721056188930114456579623849546031108436298013302830804580537172489411397129062458815102514115711694339521274386428343115395384135902516673611637870447839559032634801612868642868495716992047883690638936122738946419255124675251173233747092652427185134449440424772148210695198631696447791978801279852354018732459830219740459585536634323931718622834604542173176771083008035476246888787836583056342195010909842482248492896406360954586645677619985514516854109243996212881674512564728147938627123320511973213037256622751973203847312894822228283242124401014296132306605989011850813072480718799545291731144424377516769326735507611449315954078102604949795256635411666643083498537013658418300291053179592326897923814170169527830943205142814879891680159307453237628969590558033916083042241706244275496711066265319549761603528567597324483895502841607519833800769094551762616479461087025972541180153707264084835939527182113944485526205788301296359321780397046257022781428440073036331848515603190495432081565400207345911623857198749702665820505325787657903438209696158937273718034738232309935704713423659494692443437372516559475761065317904974093440982945915613617568539182769673538067697064139126176322014109366618902178884691922588203832468856168170533019123238750955795629501395685470784228445140089058489943000909342373695658944595497555759964201612692900494483593513537949450356350746400383468348093116571513900413701014307894703142392410367082897382812870993107376917030170881587391260769593501928175748827726230419539619931495106088688311473329859203862807413602544017071078845253716561340282888910741791677031567246487518351747025072578325412424954201122305901728452152828430288620380939786096587342570677296443968039795861982439899606691848780887402738875333237910031729513205850162139963653942393599172766682135712698497714123504526505000701771257191594128982211813728098245150582536373538352433164096488521181002885437675917556308415952128645833477132915340839748173523889312540686920563070066722093828510380874302722858548968345453873632519157635944423728132958898275068263951710628055302552768273784383858812090274299887098716676599068065022188785650231389011734839890869650340543493162836108480751262131743211516552448317412467957724959578445753478368064220245277631395599110808730413247053077012460408067131845765129134073364601125881375705417090078402664876083137192070042827161032011755155156008046799073122313819754522273198503381373308414617950802585591843991395977033142477896765408038450888358499480931668377655736734817038871397741868621724830810978931743597117848154047391301857345403533352755049483173577014158453744354332410688847008855352418403850506182515778184220410798473268159678195009623037398092797435035054336857092069886500725496415861172851568493205990100359560936305790619793647353482697199355307419378992950012376746420427068147904724399998334616533503162783361583347363397364462523342102077338036348831632459482098588989199872574372104637467196689873890262418540288839439788510549129085911987928428139674962638727542352714502836135879825951910429672740998892417646903938203188556440747514698290217560264983050858129553869893267898814742819007634782101533515797606795985154481731374225612511711478899029741083005606911526882535702089092942404985918524514212618868096415420484060759802796592768368101813814932451841120362726325030210114083393623397899843738921647734176600768521650852649810885439659105088003389041904945631826998202171878754861904920945220208907965616911945207302702038001410659999232071467548823246459985320319374455010827330214366558142512051720120904875539916173023297009655918232006328210605865750453190791726541898764718364634599978944049010265202819327020664835915441735415407132671386142000351408702495930976351811256888806440971400501244617311503672503745549768925409774362205563509660320878985474154107275443485061615420504863037432229047837592465647278531384105354654242501401485476171353573588627147197367854296130994268995419386415026746986657170351825659532808732673885762819586677840390839974933722720388894982654217014661691284744484613986861304355149859608688605820868362511652213217541468971992100334130897103045625331777895976994938726660934417486607489383233922290165521934332279043674595643098412965243954457873298081541418266432959104520652762471060136143391009333123839898090891588353030986883004651956696244773795433653534950471589385316685162932275541724354404276297064480199013915438978590488911970212080974243961503415202961995402313393025772984456034235938264157744107008980396749806157329599700167573933316183666045063689493277173767162900173869483293841192651109615809043372243381910012211960992158591494596603389357809751608104194191069879751808144961192174456593709917940862462591148421987591389067088690972597026514445031921181271435611335002385131559762920541975558400722662140094622277415594890596743298480534854550587262508305674582230623183071505414266833558929335863984719174196278443244367427540380030704163960583980671447618884897594348856087200260249394998197537299311857742172646489135903236965428733108208223729449556543890410041732518636941675431460120516224955492003622197637770872370300529195947570319759784369232123796666851133346626754968455789972647321201115927717246333270992660019407763718333597952969086921579367008044766077307588426471873002344942552535303701232150429704313837941244306521278723370060412554190476832702554312821038807528882424221850505839273921302973936843644688450599817392734941360662080537342437165829762754183589207993572064922045829521420154954986560903874526209377133578593330210365788820492628251180037640096982880823402773428061962083239300597470267818090451258326105753145708345595263642285194910884788532510223786995071699961173297021396085577837799129616369973818067356388384808797179584051391219490171553668521860483709294098266155337812836456557048560423234623814353267359595650297614610655013445939992131164591134250724262410819433258790120944090203323277695120658605891628164481374842754925317343379134333267292693265395773137319023219512453419372035793610390036472164855366603187107689435080444546999473536652423873674023758054134131927268426401721829407103487871318988981935346098068935826729901983511083201030598934577995063471973984927953192430584638322648051432546449715679366719370260976621488187645876576989470046576610233498307046412938785573390062176140434017699446411239016789504425587048870154783611319134889011386640172633719542319939564166374824083324589086024896054980189598195408916547321250238757405264119640627044563987022520965089582387581025255761921330729653533671088867866860496164483239512707575308491210951701680451785421905088684118558740005403443150201585606024372261158135428207163226970152964059541563856502653064715326106954365622777813271137213876256383827746088020350407534694954885943845289313209763541176640970108269897740050577740138384037937014411012354485465441598547364937717211920159906361228984692148087551111509922042297977978483504359757064670872771714323098435767254793480582779244051147645822617183486666044022322787602058505875886263053134565539527183917717266418104006296751238659358107382243375731071057701915588776239346782593771128552631025923637801066834537648199214820298586744498919230811739610509498318290889479557483953680043759276997389097636210575054424225659075853305118267899634001610555681801367066881858564755289691750036485448056904127365861774312382288085021562934443089550577627711940746606921938255838070824440493798570992260673015357087312323449091247470987424286341955019262917934280363819059462571270535662054260640669764208946040074962263725193266548553352621306895387611793963583729348181831929139507423587892190305012588942829655815174563778092484795309254903098111453804931041858843346760015317145707887033254218684606257018529870296374284688187927283610368443523060231039183423537696216660127592107607967521919208920631745512625298225003842449392942696437744718578892248796583440437004661260019600256261169976385078516549209353684990580048462422451134226927247445418703293115270728433610450352099438680314786542571144021874533369129388880858120265811566016207414759785893568500010935187101556908071829986999179161712746657656802432992717549991499761832132044784100107975843545746860180667744996058095465928024218429653118731418335147971663333999130277787083726090932017840650402165484940771726894523766909847394208819510146695612349340740544507376249789869468652348945281207496709936467845235048990668251031687329041081993328954901347785486890457247652636514216427931249746504397654144072650260032951085775154416241815565033995476314459963081631006762091557931009100793019539797832805517076055701912703030716335595726903789038551299628791147524074295848807643747069303369155576533963513780177894431682253198759587715373858652408083571222482233001766285722416057932467548638264410142744180542408310901802781607934366539911493265503227359838331552621659194991019581231146505249360671285450049297612384837175633887505156919574200446375383672020235170350500322039677988951087202499701183030913569938992074601519697970123219099231015570937784336609693765917890543702182525514401461539830539552067940093598369053864642978535614272553923103060642312916042057324099744266651864762890080639448103984264847367212548076490740616163850579812148111464183377287911032922939659482243006036180996079012950181974664362659009525727079111420747890327586942946016192293320087730414913119590842452076807146679737014430380537640275452571536777493507419805538173644076052725228360247688748505100901894201174955657306500676172105880637996319202092848149440085611989297523478209932413976545566507918548169558503536986298635055608591337226930980769811675643481284720818935248082684174590408009553680597654077925301114305960958298708003510878696435576755672513496525433984149136554942068834045210439564924675111588600894797527537619504633009729427724243084266563746553249388135600233114544073047698367848384472002590561392604434935689020275392617653283265084698143000623717565625203264797552199799421532657119019245407625032880796180498281899837062694234598948956412119983645543888135277683910234455023285409883959754829980994677084221427164658182837552062182006674441143711124413057470949335843324113183770112626588843455629413273557568965686508851356663494791843075561986130478882276886976671594069810572261516824860003664378590864938928060768088401021642289268148265701364005336207725849899297968934389841400160164951527150727279494745756088582947394852981336721596174551196250123237429216305205256287803561555062857269606440445436129684665930271030358434909942712895635601558406957488698045482385888578682233810446545365765500539316094813064649334318501805187910914014849832790695629473270188759199410452030580560626590486890128598324517360502271787225820580797634298388834749382563651523367364536139834210739208684607147881040363175197588625953737070101503788115274597664150586873927210444131121292388972059631884332767550388644939332967863924030764725578019078330713864704031112039386659008606855971231987993434284381892441050480415155069312193252663755814925460709778024997426414274612153177276577164267514834160360142150956915455758752235088907657717257706460064592676357102358740137819083676113193005810558009912952381915609687192587729835899917336316654056617039381194342783546885048877537531101276972889494921786825314846955875079576458487017365356142453185443128050594917426028546137905668958549154741346242909477415224418392909883164580357762323812239963448603092565007845570863310037211079068318255751398220179797636513753584496731418738975240771199862743789556225184537491356668189309548604315412260012517608121255359656060244077919045494733165469287392961909218486753633788441619115067043930913691692262448553797210161881320983140401892827048285227462824005375485677762825817772833115067854032631305845704893067942518597295219484200777713673351911305044721547498069589881743276999613745095552903832344315965512350946297156880630808957189915231781397128730088700297237427533334253967445770554837167117432427219309152231694126870101570344508621078527838062121700758737090145817149790493343713863740416103385187499258736322151328831340549699520813271670247695708273303605677318183179144983832655682595572241011807915451879997002025886522768268153841238010607529837250659849628389593804472748941986615213902582120220067842271300324447193718166599344993598663427730973137456924867812805396837120367612291717131791553487322860994783102056571300646375425555104640792948768883403988631361116234935805753228587686273084616819804544566532641017258297284505085867259131575195108475550883913659786762990829108125611408983305409009886147357600601228748652597303289306412459164371321041448385021316439392011361332108594290144642829687352306585566748725421270075194002237621657237367563380150660457202850830837409287633117625059090880244558829029114412247935346289512660311970110443593144562719809808109151316252007863927761563768968430835353861800690307969313669742380395798131665589005060312980694444642142180476164944979569362858341335886971506746113310113933258681002108861887960307631071050157568653405041714250823890392036151912220851776957564328359420589846642899742150689044462547645290461506980235059048554446877430498928386480161351137123502705784142314721536515547338966456718241550654879253354844209251280007136835803797009061079641185198539503467712581807669961000618407316602739695764067631692731374876933411944700432884656398207302025473084280316432009558124562790622445375596056035701983392427323273629004994527697051177585437501934182648375172181766246914112576981470691442002005682586347353097610834790647924700887159544520224560266204701743734945430888140029624846080097237376459424086153088222167020834871536388340335250125741912426654541729961865935914927307727184273728367857307851420739822142649979049761178359704645247862544947182233618077844006791387590033941144006425461738156459385447065068448396508675811415073283541077504869897281076098761883687724498183684377613849167442544039465600328505263666867413292504008761621578696420613393499170821555567190882687550103326951735836566358991167752276580147712870634175303023365668341696836521767025535882924627243348011865410839678662519212160140083688949951644542248689593209964631784242553313483396655884624027292671421713467851869171844481376646629602991607202830994875816025836153615100793608850787438868706085420359519217115649889444460562906778469068661021509538337355869032463393765246957423034516355252521204453376747626432377522915527272141066825920616209055551757006746803689629456670877508581177179616313861327232397668673835457437298982914760941301163307893883307719901568459353259784019786888822540270177557397903377128121608027375362229574209142167608878204267841791336819396536862349911162998316293076410824560959658158314293755645075417393455107786103991481788697876949635133212559408306850521686158153278134287261878654251759305424200348225655408218095745594605881500741927944557067335722246715596499420179216334100211744445154813599549046776714652120445166943871011856903020531033578588254236711977296373315668346219379967605012957103943995834588680460185160302212834076280286106273412813065867438965946272127243210420309300827115362845015945788307967762529809845778489522925064103699538282686668833403208654187930881941527815093162361414162645319696111613921892706886474615097128130449985400503243215290865253179188607731349974194402190506938322909611471896432202486131391530165165117189334307679135508052753368154987303805380022244346860989257766214679220269406287644630798332397964740324023526690906518607207888185251850254853678907459905919188962071797403821872413945591101262112329062842080088545513086217994190185793246578807298184143668207811127809746319446685766788250537153458287434517904227929084990483679734010687713212921621375120663276730663636114082977192438439208132126703169160993423643153290665495850721019094147236414182330293664474271908005942227566870076661033870169097120861226390994361328318055101445913296313681473144082794464476260506663671226324582312648696028631294793771666594791596295421214059835784208058434726535154453413673817584187876015609982487305068892847123071596512355936952353607797728443830415022551765522134615120116138101335639193862773012733694595088394963771008109578492172977312143904188280550427384653774371420772494309036387776613041406717151181673815153560608311070666095340712123356968071730065707804452295688727886484320893467801368859665283764358855699884375923125895265897774593791184035717567281392996308579966353280549702468947045531954808366472775199873482370647203346503774503450677556927857524997962814028465470652810067390981863707804710721629521054153742519921630577298571526185693512940494493161169705579331732897018437191111686482469974099798908532056915097134538949533538910648459219850374373979694720560904906754853794829397555434022048133883767699661570689240629904272392060457750648031237168772780681359823843494859895025396651587357610849797881464602594000794850509749646627160386910838850835495266612377254087062185520834314203857043545533581742408496477535593569003502850991628460441877455005789699657236214757376604197608503335458996086119824821606966810155597114891222463529825320366042258565008457533306744855350848983233833905813712987839204312060829125113008357689215427411770225746823178641160432867993688417165983587268974462384627373178937635884358760455860000189170569465968816668402022065426189480411630945111333832844960774763718397287963005888880017772953338684796840525480850404800359103760943781220664740017596557162807920248401243962592103940013600299406008337000336043146744162199774798525857639563721951947753242068667412216688451495458942124837458790301336447828459359619699396857436833550246038561060924948857788709591947996254624941508402424098716035593914331913423570993957418351161930014338429527286045129765540146108239371902648290066129625571304634044254535685660946050344450599729499570711519197397288052200887518923022263425776460438791739560570788045538056118011174271060851578955737895697874279151757270393364594408330801332372275185697661490383181889930455416144101543182696147907587708862436432743576012615624379725031357402017455250888456028351432615192871188214677109563146780963965939854736690247013216838943698897999978552418802399859095994036371292422409961622447320344402199287388779157850733964282880023089031979597660893454204869149735908046674769483967833030390911816087195026348515116775750096893969946647525271729815868361683172492689496545801484875432114785167387770097498557148904485074203715904651383292353389730967206488834765899251026099857524306106223442691196553216272603963092820469993095239565417361185321683910103972906859054984138003051636230796888002152375392276321383763913316841756605693789089330424564701649525548755953020008331230980011829858613938924343633366793625491241433726113071672085175644363129507573978337348619009382888815641373819169105380444188461949719526998735084229960161894096165305945795014422164502101811821275779652929086022299689030221549360408554884985753141887621853512491591474493127431019269485993509641257022249226751374677314429409224944838341300267326852809922619298628002514750444383115033013991810323515754125036078071031976907054158486000309450010865710979354410814196045764467375362594609043007223116484432422531436440920828957083362872793682836935481981794456518801745363617982232329924425117386119579903155519045598562750355674222617615886209788263351214991804201225608106803086222584287776931232119190340038257800458541607925332023645150716055018673723927729390322547484965620758593054018122621471503639403277614860311165984850939606798242304355294589846019013185376258110377386425470930051865540098049607019543100632893027266027518911348261286261668586693498581952142017390227263430440371986139003905917423596440368050804826057763821563022489081710900968841624854249478358241777982403099208757589669662920759228586838247513314175306931907057541615155482295220886319214536934684454577989078822114007317585413700109547935059653708283136917597152819384792363643583464887989407518326181485954229544667183570305329000951515089323486346431976466367606027470525160508705425472019000647792597859798035665025868267505846909220399607650538118680284921406499061656080050903181971003588552009819966666743836769671735580668399387501045901021769676407480698093680189995177516630282798751489415065606259927846728015732698021213749075193224108643158156341117072891143499875429079741304256784781573180349968179485870791320178428416506509045245625195920396293154157587436026813758558535155639430456113879447314833032026060402379673743474072243943771127524681631272529387176262187270724516265889317759125373800250751925951904809132731761971322167509084275931327443625784373770989610542128794787822174852596396192172188375739068535537670940326836044413497777922696564823671767939060574839929871768916381928159175023397914159664962663797976963113198252887450351217530329067473414577386216534323197732399772048090244209703384076983211882736879273776980046641122177083058534163009150509672966064897057575936807876499464843622454659455857052357745076342425528228576420375637251581933331159073125990789611123001075368801656513796428665535981430030599898371830487624856452832526673422008129893826643144422810195124157313883218582862588247346209097034691192029425177060090521161626928287272546905004812215948793738324868844917780142017381793772161672379287391477795652948682483807137251157672798912178502567089083236483692890218339015849399030469881121729929670287271129083305198185332663499064186455928518557652646587158054074963880295647104433389850016176891335700474532483977258582873788551189152089351215371926422297028205817336732569269760833664353748187567288233595348714613472602265743189624779736355406762368524042947794060435319570437081939518255783868041612318517368933759945854561437748701245471909472630756419039143702163164825547489044063442451109864185925998798792760087112122200191047609326748212627406342516280851660195220797263658726603699140762114293738148347892012737690770020323130800845123874532641009188085954133872132904546660205660005913228193604347071492602082795519031969447768731113919885358560859652359719566358016216517577310458420355097192735578849500453478013863814280962640624929742325427656729642099148951748480555576294077935031780042425333228310746998010385087813014125938854839899978526839816894036207697694608818677965974918273054765609125631524128447181865856063772066993401935322882326622163080370473742485823721713045590311702931527078569304791567889143739890398370548972851537387216923316528445196135210331567311294298708988748913206747587152086315365364240415475842535426076633824620398822676610073987667317055371809036784108701426139150513184076376008038883834707445898472429031916216547910321793619856100911772800990619848992845093326160978435863548216818834326019296395430828499836801293932335455589249643548741206710832401018234015149618254633515899177526693987558084871130965933905653675678016552622292105112489754519121489253852787812974609536470018398820145315282357150693500924874354503997400620853168056691059473805614823943142025987160616099553313024372897627994967181283979346140162369340672317542298323033635489316109983773952605283838188805808077497367206542476092428873077474506859949477817738096356236908255118716006775477050449685971577181906657421703019667857833218326613456482807617973098967165721884527768549008532808891623605265450958495614975376443714217211869020668336609519940183504426366885960984929930565959055348205792347090323894983992855540968033984817378436477941100713842705058834038211006772719342471893670354979000994191364183672710279135417553579449677156024449690007326389142692883123986444385502083221668919331721671196142010855157227135249907526499079864144096144556639358402614329767677529459207464602529188407884889477628570869704723684229792443129462980430483336256496653886099476672053623811636073149210728429850667026816859036201585192257580344218436552426066519869232499058427526181497266935576919120454341261745496443389225175895119936408305504157483246955262408735839785765656867645323842919338898570373300167036577897944917462369338697308878696232990063456774364802202771118656688973762475943347760537735123103937805512369086284349160570310561555648239038683003713040989851480152044191642868088639936844412190728151897790423021930678285998796091717049863184575196061815453122057003599670891468929860809638393527815114327605453918488170602328365533063031823937722230595218103210730400425551689714549264709693551421017494987673022791023634781240122780754750025462476847341732650776730061922048388644409389428516176600716317672278195598568941542835776457571060492822150463192417269953648252436058649651539258173056123946147249328163665869850859440573751290238302143202192442091756005188542127955719449286145197136771261748686072155662192577980902320928210747791952782577046109137612608326682549073475721331466021397327962031675331681886855038554513362511023964301671249816788113992723349103642992516871415558340460450909452266015379734773467689802596488491113534036116498572894605403318127982614399043545526441940368988952984858538783307864915803923617903098433861190742954694161049086208294662868850731641563129686570675801917865011133808900615547511681245337759485555255302988423742551383429850657090833824357997318452027296618983854845214654884599085181007439692696802997848747910580237691833591891598100480448654298660766308328728600183357884964598221046306444028986786468004655390650129463501827419018292868388545962452777895701898205565755180467420214769277170907339506661910634844251136037524078560006028267887762629278580972738885648450148847387119699008308452831120021119376980696870733370650066625571273902467730096944528628943938091481932698945096440398861613820776192691941483406577211805184350849583842390901341217579948427807947877469707720037733948685982883437701345261514566828418847185238132574541815672502579731273175952885315343149505883800442800320791451428827108348197088307343452481209230874478910485443973759056817612004788052743551162873965453171477482990880197271535121368843509308939823097227901035474915316848873802128905898028776524967980069841462821297428662177733530310708313444233966884530088679090444140469559452263538655887245061888135556599654434500328310772224183653033912731331571260039798740324247453914519211818682763788076065287202974055821892324872016630183872979671424812661348345717459993051632920873817077933439866321343742543562350089732800922840383937177898017187860024578119721096522863089741801908494352665403019214052741346389438144960562414743354986446476798714896632486477004073801364610871619459979073137534671271644774112158395417504320517589452604631701061619701679212840955496882354026333514056209466157487035441061810443285797180218910108315294681138579834181384630111853482611465401999579017503586511514158922137282920753707103369672177339942441396873783222633218687800819718724911802700006144182523716593421378081166730149489273155536309119945147889603632158620177998865885270212694656257162210372316255396300775765160609191651468554071981717986120382018688602542635982968156135806360399203615427502080477492529285891441659785411688204605165913661529991038450772934699245172013746051282449965665904890234609694837594118951066402694340704144015526703709923559066711829911995739914635496345359551110594699434667989901151217195631097504705828789477406019999772981773370988595651747064751550918227843712025128710536195715497257282235240127611859829530375106854472392878749201981776149488035501465608836711321315387681075119198755028290368539573660677118969028790504044880272324877961675011132385539793928546971845379073424206422130667863006414043566372036594028140049462190015038809201627810589203710940764854860894898086463483152296157578775830586194583512349279620679930574949227947295235494900846088951159244207755862851548776646008830798765441757643412334510217845033395658986414568409485631298492923382604929953618405446141636365538787192780074215992536734554719210251082181446943652257255004013252607069897695693941215633997645953746584247550726145314284711767068495193625775959295551462474819790891670514606776497913835425602538102106017019439986028781020524817302383409210897464417539539177200079760482691617600072298884281465342117029656925756935223325378893269605196364440232713988096611117537487161329278924474747310373270211265388148527549967072841344965699534315180289492941474950268601681304973642822480855485563556370720719026706231020541841452368132702995854979020957993398742882916283579307215316515825458041528305353491859293560567285285206214391258411981452290468405177173357225421870505280176193718019018840373764422237084683791872273965893244782538790406012356108375558679847682046112131837313228016272063811698034271615680200902873280070076083398503928459123570890448489962688836011839162469267789791529074909728079831771545598718320720416343760315221776119370678620739852337216477095424118047826664210125934204587297257442087194985809006145566509123996072629944037184142934775859919316974203900419367907320706302446514366753785774958595908449604541183823752220308232031298988173385324729564214267077366124951235205431339785921429502673067662500115971264444785724356914662790912559451178357318601345856770646363459645475226126330927667696847090026195959515728878575966329997905644334514599984866767912993757442150981486083423910915869478559925978637562721022071823866667413748354295707449370624311866004499768583118801632597764209769959519869317026183035155658463515153343346548840451336017472013099090486513317289867947724276511735842601588867318318343609908752268680727372386239414689270179397068907267106315978831336491700236512105068622519680763918958701931178821941737210984894581290143599252887273472482691631450408888778766867450001296265062549124765139838071511104036963699316241288760409248699414363087566010772731816476037081971976468025500643600545689719077786003255068667200718139523138349615492799136018330938751279883746802426630699549081752700396324814661692714146666978722761942891750778968487967040988384756007251596403446583433301091689426380960144210184566010101902598548883904533726537963865965272895201238236908884601301371452321665048115739619574168654013429053956915614815307624897013923056105311459226970832851353244170533498041337794751266598756840572024967278104672579408990889883824837826067766253273869913521473385248203244791783936631824546871457464542030517917333921904219646102006085133598360523539389901506052036894115999319453799464797014822324303643259549032643261345062308103603722229081981127218567620507591921535695132723630553087014095909874321843991873780097468641688895935772653246351255598247764237308138941524523238701503445098069554270326099500536050000056262249724011484521987457686509772415237570063702696271928895944883672150077976891910179486726685455735519458352986503575450350988457977412505025323467831426097070527772411685027102598067562960987223145039326199592921100846329614476489169620164471891483624265176984571166345804748966338975386017388625099697672794891343032298862130147268873677900121525266516796039536884553244150394104382456372264629450379623565356094579830170945370210525158662087072583864043146557398940867701996706791844207144659590755219590011388538039128283104522297048237273525510202216285245132031548623755728337763122458305725968809977999660843465844626404558123449359256101598142331559550032581785132451935803330492792998402037232896512485518332159888124683562661177720146843969536273429866037854032487830788742505908011347652834047991827299818311085122586625287124320846223196316936618765606234981179967455211850453138142835792047091881200920167866435359624837820493555158293639295080245055411833377344321049234141595320561046867926818011500849116203130880996310227077121425539456999893844144176310875035020317758894188470347339921197939661225707361943742890928315116358436038354391332329481429110370998328457576578728886705932196016848890961067609260788558466224245065206611422816845819063113922339044566732390625570154916304084290371732227618342729007811085528811649553595560238426869489348475207306510057005338454170954737091391321260928612939564678629799625297982232433522204853301538868159119892096378811506403235813456315674751090143299493090140347923498109296010344531906848301441452762869561262724912609695543478534848059912414388788615568401882181251814903240039441517492950894461294489382889404977712102442479322423051158709466601847407855470138259383500329264466952217222142407749418662854011502049204162921324108222385434516888422018166696704528272043091362327303777761863098334203952023745590273529506785843732423535441252880369620461325844158237574529462365812716429176731178000758084375147616437760552952239720856429674559678942456136025071655450989596213945023582503094827752220666282567434834928453836300833329878988238462482037376269976600816390653910347664085357206075176511438354132958215293489721609805019763950323212721005949618741809119579644450512226067928805219293294588174634035890491089100487432764419092744743599511624184912929017714049547304416827069217331012678357444977558353799234911963335942068074097003386806038116139894125186757346012306122265486048260594431509407022723328655963004085104563463158929208423778498822323481307635330685851995092319884368134561471429171471344725173952323474394793011454580017342645603793601084528280442537922981779581594169741356473831971464480102002162321740862604041595120151179666581751519688868733130302096889675561691988748360406278646118354377317977077645542156485445489615580336270948731628892366245225423531368179943649813851719502931819180494157273775164466683382259888404615423588042884748782537449502316797338861085975706135771204653330457670350391281654874397875825424186543938354725205567130312177030467737584104099104860113456279596367687309575563200647222080361700676313526459746180968879842573697836525795787342621306314132633980932562754641460274598554842116010330012986208820504382086901923751966548496991004304881029911589250073414763075171856094265187458497502770405545479112197201945843915476068259810876395799233100126143125199453585814556344688381362831278143537201593153127128913342606428822167419942656709246232801431649798186152217072174525213345210240819293158092188287420129636756568274730715053515838513706184864632397586467992179524252857186632522922128429003647941162605681149546419823236244453927514567814187341398374332719404048839206257480005893321335957822411978466029461048399754330194418080530135292639435211123446410556356453027235348202209387461855226737661389120766656632182126107233133187359463383689734051468830499437949912399680960101513033669491379068365797611887536748219065240037549338853454745634653502143622525423135189772194640645932548963424526785613215242553726278561009403428732405501312187726245077157357697698359947687994759998636256665414597147740204593125689530836104391827519600463817360740001745857870687222555472998739508985160403913616594568211248363839026782554919054590265239339417356319071448973961228737445356229428837629171415310572394915131705948398116508893716840000596549685769122761258292274341786331882266277055104919722043565605054499621936402308131193562878789582694036499989403054055832559290180432354201691778236755262204116088728679563767962640440256042541808852790761608515232362556639867285252809705670834629656474568674231249632178688975785907025325740621763904629064240749657719060959714632822307972696395428900480231599127495451999447138549191015334870609390832267270819677093043932250289565542384368217916101856893173224245352836695285657444356968234443690723256856748509991867078447700508537452703575834048072378567454738824415565569100710490898918777530114685029675443424460944545504423764733877947923029747875339607184279413318443919991434605843650252892185964305777355574349927408939299175089430189064328487008353814790935656436308758008176498616421617553855568667820563986654483739367826900748075755692310441206243545197315134974283082957759916620676496481975661210338296764899928890873348636381968254520467813101936532230128267898492075089656165586946552725748265179079402843350472384676296319311194446169065993911842759722056653949934604243211102554108862751428203147910193582094599769013069137753700159287924872638483054659437306052301450443528920490023167702502683871558913677313652202008646129394350056429660378419594967708155620933356437117171902185827105057090687529067392708195306540951735149662674123415449026157040427242951263899503703900852772026164583641693183442287522880799592372888876676729933920314969123577772589297425242461963774383081361321703763863797283170548893416563347440372144969191122051506050748412373813193626651038866919926628318809420833145723689063417734984600570905550524482204600484890684116274750059867356275643854443835116237437753571338798398434647999108641683770904038640430248998330816779996001282989094188546895330229480604779004626173572581665404347237605933804709717090348680740142788837671456029120815535678654565241247981071680998972184819714198634138191156065986980875077777107067448336635995094301294709218340115563407692211684844539088188383701011952046993272267608611722231744298762209750651292365399174064201888757579227120050593439015328567097029755582318310219072584322866581521854434449178123213325913341982213768053019555785987940873288145517259824153980268747417387600803868622300156404124079215022219526765297186757874519438647093433459300260974467187172393374418454687508992316983508824737075071874406221943367754018581348045038835056002736650993683138213871889780062469109627414855060908717430296260464698792783374129002467416187858333842059679272387472769189783953684319228010174281927543339950001524667992314524545835443366554741377650239135498823884019668916689464331151281865052732465381844104501146487978110861328255400628189488094829525792867901898861628805073238253731877700082861871032850309398612534727380257323585258968336687312022662271924453279247103520113575661081641210918462929943387823362887072832107406232180819638296808561370165181647505930538156335973457856672046064912053869500523558209507011588879608696800776014446301609974212410712343594490042396913817912351152480645981662287289217529655058398260826543274625219675736677371994377920339871817571640683192817917296917525689135603071088987563949129859759899758196613089084858670489792334554216333925857689584857017916487223001567642888832560572470778368686172070724530814919363115542137626699400471152543404753574601703575364301037215361375245301117295837240267495335335823249840019764239709101720922294569831755856550661374483992330563011674727394671565992709785042773800425629990473968211009670301847804748293291379484704245716927777524767290716929610070949859721990940522954823801454745955484471530888190901889103363986054546470892901951792812646077233500848418354714670091965543254183619948851775751842284350404180840976716038312221300129777691968500351617527835472647987937000985229866948669230000573502854829570096880777236408959084387636201025605924165645902475373144129646623937710958944355983104231427116315970378964424894063660632092878752819809409731480644402910150386338566650601971373896037723670508677710293623313942314802512011475609125194548041611167446492615119814946345765368504781383622695315552542898465993338097183307516245286357307850873476829816236293054241574279871438563752937306765987551102553265464264631341108306367828694225990850786097897075178803502783709791007699104142101114750904216952350060864284264164362850409130898339102579166885512543999488551224916413069917111848144876773901070403289925668238229564580085582102842762964847511000861821235101172946208788103197646344420614350479501441741542932437243402183052005946138803799702780169246069530945986540814996186549540647910922138104985080608013819319141011876363280879884616482106798393123206244797254786950493240583778429300380966922474678311622797433488760326969266613769940066234828519003936347446359660833288425785906543451477095940285203282188112784651730387115364271749610754574158981353767613534230611215897448085899284669903706927513086331534997451639070168031574026497754830641302021067296954364155858907651112611898866248700238280587827929170852783217385904518242728938207572320162972924793350212283971348966044675618991693583096761018123970200554792588631318171229589696232417377415180306378576313844229915684152936829658771646388903246071423188163520781990556664822500934057039354741637127831146436946236738056240082247086151757843168398398763454690335707528347070054682047962901102492410395244441099574820725332236118950579219925952291547153193215136641438273048273602379565548990270043927308639682016413915776507645627392208836424526803152245530467755076043172601941524866065579913014729666282971196841443835039885709660584359360610371473438806068687584342912538584251960576032559739817611746676927118309803244549984433704156896346556582113631414231129044155575412593298566746733546065579215572715590444273335569221138717498374277921886279321414139376195426702770001231872094237624150201870341133855817588433238813297170430242315484520302990781821740576230928258839535953437987489436990924938467143237821952754347626373629118602710259926275136274264503468900569480983423241515903881245764992425143974441593981207861922373718277508097899837031889661244254996436425351222689618163650205924468587102431488785198739483323663054038014517733763332218055882931820640337576415346673187238419334793980139845156519207821828516955311184572953656252739201090093618284180833257316006155960492618589787594766879086550070078282551105523859633564992321591181859395593284325130489310088232921680497660306769839499969496220609404278672483549571849127562992987612702765392854107048193455240454577523550262078438576602240756106573834723982349807042724251796367506271229722146166447149780508365085191061961846393740241340223298439788945595034190328774030885228946838844074361381467560851259881579530489685939381819064905489109039388698633970264854822570519913702492286485992859343041529054839818702253569126777795494253956376884656708806092399841291838990489113866985791815350317445079398157853709377196292935070877778874848160375818885137489948815408821675879243162182991131720296843229496120687829365249406735477828985429932360924676449442667746560906723097141315935164309595941915201972566365366493984923747238700521578607137081750000487590912006648614381683252008208472132902586918225369934744190148825176826713495426727634220435868225869408436940785169784902514904880033648219390751947498733368359332312369898767118180648284619368627019295098378803250293562048569740918724420710726634796461623465699623371728125301802476998424057455636429385227560238741579885474276402974981480491319580761228509642758301819022858798107994182918701157724932827561516444261729375119764521890365220737175129732165667884262825562469911874480415099554928923184089804831119319891270920558964154769782520144903922294905622388910437900840789017631067508449232684022378199363698785835117283545508896733837222034832118454563089075029895373026097400178008800079899171433132287830713926507615531741687340448588235946126663777132381904128657075971238610223297456566300083284255527605403936470696273022485272553780109396159682415721055950009148562608071902440233324405595132820319772301569458699491080151645111816536037364948787154952862071523139760463742406603009042668410574983406439111352160461484649156219561430564450679618950152682286204384076361092754270846000620352561187572077059000321178038472757573350249656558470125520104146157561732955608984644172085709540614588534798581030923442742680521171392835253570325158408227159524747826112650635629412505141931782771400246539817292818570107094882272542290295635318700222507648260462287074909480701618730488654896364354724578800200439858665027981200834995050152345753154580565392072194093436468389164783808113760125218648599027811143523786692266692403465662284662066604146555498067574559822567038172870249808241746473925840863208259138907737391262195330938555022072940687471208060209159392841514055001266843098610675766796454576601375431876205065743768434166133058854577046422291254125262436691574372866871382480994909631760934569193842759595712590839134786671306533275417425739438945555268982412241524954478934778574110336585906849159250307281874678913631544077090721318720577436275296444727838817723528303902075515365383132333195370782003200453587664618768961562896169514315595370256476221814779704636680660565519127300086534109443049589101355499883234063790782020865523445669251398510222045625021236396849154105525221021592840709965072775625323438397256979593838403196783149795709765014533528906038993223462131573412042890609522627135197292470449792521600564813319769052790930664532695702194170956746784024304523342736504398712652220061824648851687333104775789605096601861280792050864212966988961548273616810915709387250370942479386907308922245710144181591448955046518495702884404490552428473951265668402815621075585032035706444591458085086893404425009451558962009932171003590240383144315315174409870657307035854010513384700564582139715685485230854348544528328973477117211254831177028568840037323818528067840977744354029496095017729549883896905170891388083288717531066339056064881994084941053572049321273400236737823026996807785584280682962083456385814447107517785226425414223072694948389549514566790449753153521584991329525673513968194522543996806182497303564802906208829356445394845766131262848098983955228635391907623055988487609882279331709958865536357309161780577129995971517544728965620545093376832443360224733352266579673165701437840828757719241063225531171351652268765507681604042957297148089221087673753050627525837756688121437434165809279706111596858346265022456571146215698618768737915659568880091142879679683958575684202772229225581816285760257342596189989863521197817254272692376913157964113072734222264882366171466639864107236538776619821650680309761975182401552848018523793636491597200858437524236749457414997644842173832197289537887906117455128535010636223091295978302636603102035759355008798850532462041643690916791693003207832301489101578793264649332699604215404809944534263196598715200637310867311418070921117060795206670454540663983167889202039465887004447960138736748267914355938256556590969036854125494189158635147518655209966559684127959249085997649631988301628995743706498066101615908057820591174991645816104717092803084884906250547357140033863597955526727870603575381760673862026746478180346363048196627547546101794177989007072237177405949734013667393600931746727251590077134650815918489845217133601887697848690785656923730665968848907067799419022755515179639346979468385047114831851942002532249358483629128085635074279034137366627241746747157700861900046213867262601924198150888080205958555492647350200632414374011371211224019895192078454550931836501937332869601863353971652551955311110799054221931871076637317090151479826597576173246889869404740364625429102440555336014867119289760170546389816574148288152864018592033988509445596174434813013566449342623294834955878197059701191796073599463801247788559698073525130289123475556502661730904038176308064990976412011525347654932114105535318616974754478036095198325333006767683571224787129081298352969281385875237511070816440243989249458868715570434209996450911920517698433218900743873015066831255782272270681561984423058189431366273363308371548829923722808387727692130723653662117179592400350089541154245382768443288018339404651187277523855699497118449061049779363572267692369826858589680899939999459056088912667139265590094981655321283683241452907106248581142052112802127354548407751702839018095068835579244612647780592623919750015612590761811186362174970456268394078599324930085900341336387481850968596937960661354675605258667231322426209341974893039172604443888797302104824101811370414270045658113904002447988957648709196920138177254629310675321198758938497152939087720744553666912892664162743233752626197573501937592155485165602801971778395458878569972187091131092064214797667168533195275846222300722132781876771088014029954801447272629447326620270703965827293596694486558700161008346894868769407517610272932836429348372948328278055969515161276084598107155116766457027714529065472213606509614309031956690362847481239187600024128274729639377302168339181775195509575331847212621344935129567482330718295163382455246609231796964161925940941139644349237729808768024942296431956192282556753149936125055568111920210255759276005723297544346195536049022209670806107990949887543568710775222954297944457839608920024860154394999900878996007280701161253779955819769035816933314592088886633280355862146364352416514908271838126232128283539995705138608473016144758484887498394370737488311236721251756341450977749308560676591782807412575728223513766667173296713054163826821647534975684519315555967500241304344719004795121005653509657709052922437544284528721337591647600375365803856158774223777179126623479066570501929301988521021238527135729420811657219519775704641758496478991192589097249021149601223339530612442068251118963427172196614615376748823691741195426411707847051974578660772149635667282696114247217436139286008727612240954434600733844393198531778653654637406726833741467886048931770654697770322092006117152707815689563216260424061340116943641685054565974920029223870304892946530434284339026040055564502678017202153054294539955372528290773884563126672270909811365329282859029051667889635266171553291436538954989502546867665048274643015559639773597592492678187195786982666434177976551132977500095402739570400151062572531906963120437188712023174857437507897622056680884781567240309777618549872493272226988860117310619313077707226482573626906661616848592520048995424468448258858252174106116016542556470467831222149294631895392762393408470573531766853685632103542314196478642078088042498744913511884692440497543785573947109080927498609231647946068975891387593229032860347708400954212422383266406542501062346550669866690612537228528078099544968228127655819556085430562517666273154868885741580773623696827334589118360346208788171136088117925230108873872062757282524955151284255693745523725738144566085423292900460287442387310396128294668193808313554437685664043196702150929059181132010529762187299917777754936568320242183895563973944845798905389229310544215081109635645736803511753442670838994505332740972364946413263171100702586391678663152847019961124195499004169484802102956377383261079933411613885184003012291952038619397748472195100273271721320837419410667595949994453327604796309937867604864154521416372048915334994048841512938708441524347424792480033586556446010264433300439571324502765203283270405246586297377407835275565493906934401801928138240418370531851254881889736099092531622706269552125343038505872374578296852324505497238854464114011930755111556811229098850272959236445387908402909625263070037885688526293544274044618426647752506043703122254439330497498604481979465264677428131807818480874751854968521348153513514310439128444606942883410737686004616405274038520442757894292114748036944450809032587809285600528671888518757985024376334075825059823414581562041186718530818544644948874189547254514553462846800915720081996354605640158064149993851681001049301561648633794089901953955415046292759918280985291071328339268387154611238758563154371422848869651634245619945199421369841570723610969607811115853057829080893608611259475084947623734052441965406124935749924521925530868677635500266110044929930439102497468189807000064900830001528912380338393700157992058119204878821183738630570232219208846128179154843351129322556466275933544948463143510487146622023046392425721299836846584024367478780483258001043506383781936895126994819276182952818837017408182978133007417800294092094539902945063343920823241531080208843144145299316913203303806886386300122582861994891326543802382411793188295455856200095590361850741751321096230682712395244649855987715348068814729925045196219378690214801853919982626018638912611456653376534519664334149025448476868176946601285841080908161241253769959391476915690038773675390444421315705736081603640153603050072771117364498596678887455102382601696191390911628414608588060968551526090041904660546747231936691742238114938570794673020506405030624034184956924773656711608419307094409764625951864397775883418511468359182571947006409658120265897157374288535125288610848121878330244195753735709340686398265408740190779602825407183778172505601504297330169615326834224698967426567141203185445184570358813913247726721614574192865455232884856680398380042241504413562945170069742040295348025859514667623426753932416718147169576665637763089378918260355343847881742768161255804509275280609162570700695215085281758374620053528152840505359782174376808730480710400539025446674249902991913623074077393163237550874438402740497625771588047574075879157684727226430588791732353589045998372850233411657461083861326126005547676924428161578516140390640807288849620856469633678757237930147942482921405381794818442298235955625140416359343616215819682136274373521929949008446826703621795843482479836518540986223291909389454876131070629376587940987734646021116758646290792165964579047989170827052265078233354953411753777350631680286482771007564202364778032479341032896236963840319527475859840841756286631637650425957140911881846342728905338397811370757574544942048750998187543044742457244103987778692586383641326213687928111941225107663108034362726387669836301396973603362846025775130407253960206861017179742201156268116781182787032448258963199678407765321188238778390781859696466652587389919644084629715701228223286608863566198791164958717405396280007051523241119021206872054011978089805708409065357315714855425071281660765030175454682976334740421100161327885769124070910125713207670375307247071355451278080121471029331937623589318144545920736629820167940652366392636148692677825933462570258292630096132054672487704614175145906086449607285498598273643525161148690684936041339192849872988778510419301989602913828782680809418298360276020568196577787536929637107342927379574810587824240459671291708504827530775292843525278664538530499503176503498077294507331142502273517335350820529959828188175427588605545365753421488181704084296528629184621451330280375915975731042023123839452056851565915780057494743776743614864270714339467972772647578150445479634984223485750347492440285566319359603839150546467201466541878204160490062883078463415630272936265375643210026162616364243507861329787934593177855870930390466145153004566535932895388264770891827169218159335948911804562787769215310717544662910884430094965408253132399261952407084608577886853138392884838243038397829403925125940534726862767564539395009107510176088842036729373964485631690489577502250135904324854068007908091875788861104689109412808480412967277468609446910854528011119952782587040017670325284624023218458686354290104617863170767144159676231024235505688721791628625512605285112108036157828708792952874105908764684316255900736004391132847791389690761667844022399503451965588541640818780446962663326691638860736287017338104177116910044702053515988477462438706965864007758519473275429741956590845267340085175665086383379078981504915872568213648052310148098222692507621150642747205899880714324044378979979450413109777044158581024992417644434197193479682283213484362608519093214950959027527384070724994648725277478800604410463680966274470394637725200327045117977263732369488296085041722136570262288513196597314664714457773433083873273714821761237460178779771118048566940996170903033157093030990921597248080412691246700176383722347070928607990306937906450819466669018521018644123239306282228222193566131726477795051283947293191566485559415998145373768201614220015819875514622097089484069888130450712756387122308142652925196577006667916251433365705415336238086888741414287274782685189134934265250006872835405703533545185993092770518807150185100203744409849398292479896720696410963048954354290755199728712199179125714581928581577577036353081150814222486567651824991585011403803244666118443300436515499523949606842199435873318727184145996106712692025055987817647978047333774719292488411727026154266432561969898030006500743842983426383095847898301186883124671762592540278123493398698272135650177596182046982325263856671545547322442899408688282117732415072974160942888810111877446070545806404460177633659149370787176459599876196152889231019514278476496169779693569723285112488885799546968317725896962849095241810599078450954802175890959681322254709262010005560730926656746666594861268629340077727651787801519212875279544848720530255152541763776957338063794442124173121243374244557368113947954780701276452918557359068259407487188753771836741943924885271089608435793314003070647263832553834149952659266429256404136795644109322938725350226565022100019213222407896547991613128399203673335475402070457017248512832864108757170033474126520094712254654927428796189501899210852103662250987158411968148811446861578625225688890748748088602408716412823601685865637428264313158145914210979633110070120655793526016055772531676790192376975383218412135427324595501350637173891771512312957338959689833411381496626498547033759896732924597132808353579313589018815107642885242994782364382528975333387518824969457575400645280609286644203376187687436050041114689895621019567106475138892653102304098128549090007987466625019722997414500927154334476090776596470300875021632319621351790343281836147689360201737768699960051394423263394704105669134614201243177701968579193689263883874568827881705181310570425158061096789151282606374479664570765299486801820784142763593411021787921635462112463793147768251056619735983166578000477880017855922907293962166960733071221399832078065247434936070343981978102525942452645245225743976797010731573839431441759745546748600033151511960033301305593925793281049315890360774331227186206842096130411054659124579804811119958360030350454376611651633984643384218638117596082388643446066667968322950178694302802904307092706918912916843850155609214018277006839151154233304464538184266088273661299209836824577813474493725757491685365089514622440369478860281284799464523514966356824260171201848424659016713101932759229349083591189031570374375214466812145678855504328733761903151474821121915327062250075580502589653117593691168466117106674037822712262592967845300168949152681488118264203600268430490989064034110416834592752040226159143185086658784172631183686129609844914820709151107795428802829327652939221274930922662760749643155234644105780452298544199686152610779629606145667955926905375051884153017619539800330850551551789938185061051924893724143514313367501047305284249036386276831219606935499581062590004065831117995553509402112783530060753106173243700162855958232890131667158108955218539169494764869802850260785278465008292523131247789639914207951702118294200619935167254773477530912188598698617530449035950185954131588375816691590524479286261854587153987267544091609180146371700070917950032075162002660359953877095032557842201448966303135757605904528182134511717291741168013909482107835930979999750965096353975519562759011986305101500414631878111485071614906603067485739930593916089741468838710539329350153632482551277676030328770749632521115036356673691784068871431225782429021374037782310394327701467146065984805041348038746439713410396384669378747363625171353752004305750002035080764954906989359988086094749489977787579190638554547627256309143776944142491242970300132115145762959562809292123003772523538392034266845607595305756545209161363989964680475514170585309586980707452629123449438784318174788809916197242906880065376054598277364805622385364775059923610061605615688501887671708088809477709112588130398089092772450770282131111560021151956690352756466642425135958361745852228485713687272331993862630374001810483995642451941505960701403281010054616802134617991494045928402293902942530423563734283767874421813490283774920215866474038407787746152808352759875444926745420008580256419489942514070648704883554032945145788864600557578148290911216482512256646568720660781711238144390612169987733307327559306572750480587293012264024622389852550000875154803054134297370311076931751340484997431313024918855136058444993248656267922703913756997025515753716021066132749146770945173775747423489912246422091920327215619410728194404455384339291140644128833798851145082406738084421494411211768222885522923335780528166249875445553044620880741606396554156497555750106148692851570646793494852245245338641264866592867032280418687278041982986485809036042392934688296733953808227489792555428558896996247249575658974526830905545164311546787406333142465036498105191292288725701404523851145657611953761986164592193759187600240541014509077696070827922002419478767436965657846445031037448513923746451975453153071082006627046488662930260428722017279444178318291069220599831898669254038178611295546412765350228533724794419756663357533499509023453281688205774418327230429405211858058974454649928617747983209483018452463715183223039488852108009632136720128423902066650508703561265781164373553625357062740461623609269343175184558543259472253343686846090474306291366922805820078882870062219962014089115082815409372767244788817992283413786511858706703029947655100369298934596619003461622080375537606507636491211831220254866845544530223473918268355153139821634576458790582844198013502642084706057585955607862025287966112754930336979886952354795634259395575266512217069170764634397802479799337910886591488599222506907224118105488840168392131748996967524384229716150330142473531966860908879814415582616392263962473405103747278268207230380292306543222606029421051200394230441775088303447608410410158991755577053979651581309407385041446759420134782534943348274949038461640118417689494457558133534201997897849386754319920596197000030267833256390278800462553060561809436948965572557335628822391567416903984435805179563129013934965769252330788072808487500445403191503103202654577188928935076653207245601635556742765080445978402509083683961987439914337966105883304911890408010782182134544114752151945667304069537177037240941150605306734407818893643813768905135992545806320390610376313652038188601631181684911266153013894152255317207729650828991776643211321617229283041978316037217027295008799723795140461975272386945641475618644257450549462073240321711992109411389642353531154982042715487796861098218001555148137780418230948682255064394698716340036773890835711039084760429446932312619666429651704240350649019660800762827768823580048918792254818441838495302673340751036464349512014961878094624680845969158832049538195891821185866293319911994328566536422364247838611445797647952293819831603427742804654467126537383548081770186133434383779048190709696266308418752835680109065795170331887055958557537309915109502264283563523643232588805670213051608777314065510709212589404171518434716283869008823053895734487414807822387803378078366643327172513608004179715691070184982328345769648576773912504564920653775640967883734847251792778767601995442385456205139013460507804214235406233687848902449218758573387428273116086816024002052569201158435823590459186040416329516781034652092172064204141789741933676049753519341790461090154303253677514347463327959370730294403157111224038899439266881559669807406832911128588427049373882878150351408451925789232018701634477180086213418640432089246887420679347134025816137170633032521737128057256388224870846766988730848773436904209467731839174693422949619326183955612412444523125190613623960833049166257842282364803884334073691778310094810620994312645113833825123110962983842327217742176046326364729838269099628187659397000321146508446247829020245625444651537805666364749119014083059337888664919095117401340149962338340471620091417800540282855391581929030242730058321941691034139495479657298553474050875880274706862547143832159662309541305066559220556623530251356801213446917602477579507869543670595753622076688549245195692092197249972089457033139479330778818523783272158163755010964624976259678802709015724792072389993579887505070349479276802239097114456212939073502464437621844252023622872256548674496782014771647262464309364066974392632246716969671590771449455022915562438844551348428687598833915882186829797338133792268733637588907636317198852105959313825349600316399020942139767179886523965167078692130345621127745538122194042095964307445747991087597330899241544026524337517869673720296219540838985861385675889551140848838701073943701595064930353787674488131004897236064958247790773528231237129508059062223719394163503934469820811704402884030969944010396797294046056612477024799671522730326587841888749998123013882813341007822969427368905338349494531895340205594249099957251888747537115540392283522188166090002817647967991413951575371827343312519421114000489192725887454803301866535729401841803779904504020263308404552722728922260566622394512856470228607867732438097302873546323200240383646429839960460529754031405226561693759037653906515231173305286512827555771367762834167770088876246923308805147924634836314857832037072532326180995814119724531964862966483878773035224005944960469089320476596988238159246704913053114466580406183392650242701972047647736742483875425096298812286501095613421381107025848117324784184564047309327094614961245999792691665186986298979830884868613867275369052954736464438357829879968598288085421184444638109366125371658049383700083441438657655106262777067225151230235039998423951732037988103771863926963464741775943314048672779779277132330166252257936464366598131835079049626465111567647609674442734047525556332152128994405456633593241083330258298392413288397750818599164149957263354284938353647983221031641876214000412102614958461968143540596430360697210013449539434379276598204162975838637254386381192365840124714316094127657320207211481880233217816993154774798805249711300619928867406984991145235550541909536665975014519710777475095035345825056138867369578502515763199660405328358837990569545223943992557262169334256299902325201600777095632741675238029096219886054806304864442477272681439786666418831216568095263189849387721353021676611292107315426512867895621268659852163343231435217824906173962051220279108670656232138605878934571563153415221173062852700970877420846090885917881498647000229787859324733695910596903111686692320338835819048798546289080494237646373589606888508690750363709177533471072459219261062189130007075145219760135575066703932021291692592199848587424801497553083834183589540055276718223697940295754644418568454665476784823241538154629803521700625465385220851638199704496109618247484789414906539223834256480031307414947763804494231469656354170930225329702291523782406053426505020667827882966877580748834697022500419484466187817669968212966141553003462815052496021439521524603624565144973193085410219245722121601119633443607952096739793276202426719168858872463750064472161933863188862710591337444083072479977578055276800116299824809819354568411179141470681789914672530610792472275992031672717560441872965079342612316367911215295131453203027053201977157434119195240935133944011698144959950692587529582739767498722621658830279383862418196938973650096647840259499394999043472743258823011321633031736760726776748201813326690425787348920968579248547808405089009601915500942766639211272627932943641902635051050596811621099869902958118025381804547839794164320342913976578350786287642964821648017240343089673738804674460968690279668865182303597868567307384593075601472299334727040662981296690836608270526528166529626083808895162322761057932231741521058211528264307161458761830751235254474350738622702040886933148313647718376233336269498036190227691207291032664109650024697915890526214882325077964554690034005387164402829116790451115312474008063704824545312050195031996314078832795787951478792024953159505098887651451065104649757382576141044129638197535069916326600519666794048803309340353968153447823642863734532367073420816613862005897184929124498440181185638950251587987488493654904863904871435656578666991877719182238669778473175266407500833167780060057065664122654040337998010164952463063149918704739421095929017548421406331429932758942080417371760648263089075789865205713297763931674910116365373089305849355341522573030127518906751351825093664579377410249048880891081474621916803142416909553947599044956737827197818399407178703194368813655029328940899382110184787525101756702684274306075065266201330056963572637921118038846614224002748799950210041496529752259103118946176627524560706447397268113521018241048739115383947769812007868841894289035595033588997417708328797780355349522704718576960532790783726235164837908400689229425424912839213284559694700977683215502007243616994197641002150159969172643576819898309429197838212429437828031317896528911535078780084206986035149526547954706243088782618618185336753858891485865354938954503607193986528072944745136688653770298292359823822434561047815235792363450953626916923041963470485648475004418802959912314130955072932402184206404772809786424483375592421254642551624776188811185600443935952823870635702418060471786130643019939971404374727001110568050617134864333023194756036753849744855884355207265393216555114961834818680789025501035377966727616697298520506048221695135809104140408537911809857056818206303394847217400150313840920558290317237725506646646323848640365882355244770143149273091303438901293697611674982809973269775240310493499853832274039317438778686960380060367543706625283288798434945275166918038672070982865031561962176241869968922098263360795405399477111715858000816219607391694729508583875867961398779112530610351418427589891765785224853432598264667216710209712675940292624566826797337490320315255692553630541032164328127546224743599988104929828043354832729001839773810151016410149342123463230642433239240824151549423045848858206324687594471446116120103607169441156378388021906013059483151343802770798497801649622371932112080852989606384950827952118447864136856259571262004839091312165589248556644796839771280909329943563046813408598910277680832589992106449271530905224026888481946918505148543779086324567925076417438263302852192176272938736520690030497309475738980539981938467827588796295110917972174831074536922741389040061727818307194674440288007969190366561596294467238718242726101324993348421266519456239811806469846717040156093696152059113819457549777210658273260953109931419907046475190739838600214697538511908894748478129892640606872651386733009177687587018786342599591339968391895712771080402074132114843355182381109739864508084594531181247744438236832981705939894061432569551568796306003278486815823146664247214910592236349690184595624576651669081623328851143050832403749199449583309794546909735977369408673588921075553908322867879426940789881318294997214774958884507692772913303476296855511502047774390299747987938114018633535030522587624790563057112430170834833511494058680030019846927442635147420901442195749587734922416075634729108253500875650787047147611738580171936070453857241869831468637970416757441402079774304556710927353344266107146824299354969183171231641908343767973664183452456734533836922492611518993054438892003225157609498179542842415479641704529577492337019165145534748080576667045394773368615379035668526823425314534035580900644163287576898886311546146987329673809532802075612499436212274553248336595775524868383038384213160151756458549429790295057184510165820607335297447865685786683906339720694372799700102674857287028480716537821637213115657194094170751611628609582706916162402288869816156816743286540991234100133211790250641275675722452797918128357350322494669746968081735080379362633807576748486698243819259733001721226109708232379333707922313958112807978435857031599324923099023322654078789444510974755683716091880003929667444741266806031615930353645836387926953035656211802478057830487892307054528156950605457425171665634630988951174372734534991636439597811213918091365727521162368735033740275661784918397972339801782949160588711773939755785239396229269771597195923878737067375257238225374003651165817528358487913842463349174358168717912561018521775242772365228489187776145141079083276511392170444161734089435067497075439198975946000526809384462825190395156060180307064274171901934159277731663212261444930644290809255581857859771725849945537229833477947309367721091281556565575074840556934034941509105023083230592795719193814151054534238135882022007066484169589513580765362990549000682685739584887282632911557012285657974515641210530139830027553785420042624949321988835216596645998580009003600769448281361945947568291216770516755459866966351867033458815743989750097807395972199512677512220784364757922048648341545064007522280872006568330805706205563720493935855046239972777278962690953190280139060769144633218327600324799226172784778221519140180485886383910513175327630066810405639277301917072054051216467984532341321124203305713454854285704547297226284266211278450389820275183208690685323282090241072716905027057522848852749818786243671239368123401388200772359197691470708515445092790873940953738598480873455982119851428223056720025344400676808929722893044256601497791320920192209834486793928795897511260069598508073196094561868574369910625982047406643828628704629055125230942032192849490817890645929850068917598300701553654568359482489880511492998843079481801991998792329761865766368700636801119786597255459573436654304238908940709358341740756718668639573676238286494241386050904924573427914618094809624733294366467620029856813804686187233053875633816811154569845151894576378096568596811968378929058684644628942878828638213991127687977730257929300329152410886205758168863312334023951702285271770395013015746347839834198516207181778995784777206594633778977837988179352591955572025472003923520644758780764179080309588135690692111798690687136499869971396456994028988860023737209855993817312971157385982708919450319351674591341985341849948972933132353786705502038538841747398151534185049284611443743839825614761994883397461460877574274897648730336017202998930338880200206936266231205579574308541340836053360911264661586836232129242253599269450946605799457946065768502421192994844200239324417901839536354826482624679435715990672739796434174901305617482790029410485510641173679515197647577078644151053367268893019562813304212330150836985222643356792398135465852499269351801536548115770560073600367971984172881334537152080458227832430073012473634666663561943621059207234787413930518204386430823011069587472126572093680432554237892225801623334654392564536873653860006507382198235607513957539381592327540326170320630476321249520853525885953678346264345096612810063515654689850414247923813917070124891053349751819334188502360723161544075555309436530261233834847178072038429729483520630788542892072036547541678655103084219929160421826863322248870284858237313431857437169350840860628675653290323596394376145251514547138776653292773403604173814677251147867099549426160535480049493175485216424464591909774644325208764268019974281021071002788963104316750155383057229471691487638371109198583779419167207619045562488439296635908411733203912609312076874878944985158854148028384093141008781689845481666678602551091570548502173039659944125870055320213669579789451168136953571915452203231149663281200169590468321798446836149216537554164663614173755873853049287588730457687772544426313365380653888891414813319767256677601747862747383022837806666548905749643990197247177499019697543179466466243453188317635505061029545244391280951332557002941275325295960838608934248259817367538592427573000844669079726829343864752618769205488439050372531740857340656153709513666964255487664745354254924116242959566974788641474771332298654782480847002722406379079413546868951513826908651289642109063530475264404238267340496671804559541246452320503337381346895365363645416733128472598759581362143216786220718900653986254422650335818615877315241814098193607252199672632623569617879146445229490434036576650265268747529736658297187206395926672875878987475737561599505820067451812718825296730205566057785744238371139007379356699954685373973871037787872202685428376741949758739650867463072017491450267783920926058898187967853852521515998922791437775707224039854414142014280569689161748437824312830020063171296041261897680484634351413722656234917905110357005796508248398639525713057058087751955643810652428831251043150200597748237361644055009566762592496658737633264699260812788096551018496433201459806766495336556246391537060027950462508496251748893359623190572762913158758324869564093405509828826388303855487147108363264310043429836429935952257328092086362590530481969015037115278870557952413439643120256500820445376096525058933611639376187325978912828790054951905763436177518249559876669051233292333137402440593051254121213722340690261278289913170786631105993526544533341559716720935577442319988688048392991407202576720850102674415040311449408575686906719776451118719168783529735346473115161496362095597239592955454838698848645002866652757551185169448993840119763548454825613622383120275685457604728511902001206586062441097516102644358760452107789308144887691747083493135670791503075335371033006773676714186650950189778180149818268597758524760285781474004153471078952678205446222006563430046967718547961264517132802638662284646713735521818838714300573294410640449037548206620575323588395443547473519307879221576759490957584473761695009581468278569125652248365294753529945505769396482752001918027464895851241226105977402335803809363276955543104874102658797481352581962646799950421210286042510773685177726371216662955215911736624454703202902691804424947167103777662250513034119904846418156106270867904556914034149231478664702453723484576956445880860748348049032367623935819840331480950511726625133917676145482547747632379849073142360951458960725098948412565696946238456999990513717314650575348549956437175313951312597716654608174499730073901298759708269890171992664706303951121053700896521322728930423352637704033118743681266612963591063964393087521683676025934065779150086940662993455532142108662948176325194383571188142833783840915858081725401270157970813238487210590413468824807598414555107537675253113667680318340388542127750511126390421071898128455372073780903262186894097355776320729814741006629321914664324438345666512313596437341792268608113878833670541070112510974562632593320233345318488748787183938375203712562879929805246198563457468751228990686819530340532684535335815352729406802284510905328527390744621515752081592829821009970478334354575308523587321145828024551181791544998197058827798351489491780661273343326946082783445453627627984058204596020948696346990541762702539407622775685173562589165778096168791895729966128485157316667411555969862294081369427632437014222568124724019396633615820743464095087451514948273376176592980115508792361863455875500625729936493728184095633668378468850640758116187872340653974909713760396652153204323396846627249536330622469391278325995935598623279756149248043419303400918355227840975871887503130744763503521213720202952575388416647341664759911955370624442019616086919940259004107940670881551641357907717871449599011446279912006143212941661201792191029471990042330626499507025217794895111020734479893048233629279519081508559881890490727445246560536626017695614667116189312107203018763065993678673383123440110718924821039423893116456007419793528769347561753685121698258701799849827086584755747697904109208256220370521325530834460905426871215073386724224343527050702424313372843687249527097930845371687027484687720857999472629367865088349316962207598202969092904713208192448610763849900744117244854864424347355748858797308604910278283211583961470835517006688060595873673526719719469401718812129572091726639467457061295663599585655532454821314046370076674157913394331989885853812937303011324574771562385101396722726727212558884986052098433801971481288703252492464154181271256938551993498570204449069436347305173856636950343472587269247882280013744366080513648222652007250307600277651926765508113074391315645070995580153843480596336165974943165358110724355350732633490482750787620558679986882659294315942142446204843793236705280679288390914263941336098881614917282771150521446347118241455164606921040721711888329816646318749045338983716155222592832535853919262434805316477766554803403009701495002336348630791767838096550939893828726080690187680477328719637732680132558503969319818667143509279410832291253952065337454479409596250472247134955095512471650826175173370650639099272018744188440182330276087350313624811323053527123476909446713685036161284782534817511094205539340577026006562476481228081799306464467854755426451314775569295683291006919240910199484002676613586607564104679133047793421419211843194915540007263584524530836536407437151042147740485449983993924732472548538146689663808378147805410328654434941543682881772655733693233518975017414791691409828407773573819184550730650978504732128525494368641959591866645871689095833624206997839896529496638549275894422499380127606741694856609954393351572782288802314142328568791871358788849512488034634611632338809070208914515028335309463423872806353099464313012929617063985389735325384099152849359160206195064450623888830846445387312666932912275091518328384617003652826260063688586277386055956484809300349150186820879901278733318875733547869669818587898392028017617341549963222761787330616471948771228981550281006911813695872298812169303624672296500149204913907299206481615220122109427692331130707938418637377175334237614962225197142297513961735483272131196623390687050601027434789214668542227824150712180386530127046077520644384848183585931527733513518121318960588855341178097367432584593343403983616270207664284884349327821107634968395853337537190845270247438381192953507916376980076891332457729327756925478378134233066464554630990804877530518489987817112886236393181512724644503171260828432230930247465493645277543630117201776700524332840399704494673247804008877042389752473681532769135171350266917127787258077362928098978589330473243454831499841963904202418585657627327744535857840301008186638802165593474668420812739074758771251323099779871963468290236489253979743798708083016197032382028673066949344346126682952533756147712442816321808042787804886738030877717976827233811760383265256334940965972050484492781870692580137192986967725911336918683209897541408263950578817403299032193975991499663202531376486056855349049601871680527203544438014389652120276458471052647437646150426317744772273012384374704035930038518105551620486233066290990275937049157749464546926788027023455653621634784545018644971934639611426251871948334048290220741516376588181591451410756763893207760598476655822424427127798034933261122354695577503244493661246865358951452258879652250089097948436045658229142320975022297677295415673106456663451348885072013556515861805307799536420623100263572257543067169696835930049279845153448660777735844635428037552927894453437199860090619190286313916227463332410459862629264007079925383102974884819701721075788072154919899518626557514018709244802619661186910418572943210804501344199348000726165085232252958327773630514666930945706677584510601620887235238468917362283674536334490698903264185553651878767216453522721852947705424253363597138587987383703774635273609403247290425999120958280371786327960629579921258318938488911166135826799797440403486416686361948058748015478661704113065978772161917057502717055507032429167904615352118978887074686847514373287891974332254690122258448098985308100994086476069036434001250738480989072663460856317950763619180986644773324441164672794711348554375955808159796648311890945439611952115729272572541464874868027955718325745315174755136244959259930188842305053045570188513417529735908159623368392837563169529340435840545934260455527553913454060688096425536881864472261466263950835335526441575490310239609483200418203465302292050993820159731475145606810915067921450961815996846791603559754490653336363080428438915750972185612586294354903459588255695413693794044328763784929496790669163844278076461731374834353790393347569340107360736838192558638575439419882393302599440163218957825467808381118228989720918293213260776604533919113916930817012667791365394627236928317713777575674588556257847524051797833859467996219899959103395854210525660931848157759388749092966384578409961903201554150782298302092197455453838301272426166229330152219686964790620915870232773821771339530788851542540931672952557214246958357060307785705621445743670071095101669336761173060880056509230947811751284845097624973414860110241099304544921364643263765159923992334888340857091749453388311639965381341823749240062783579502140170173688855858142847870003177979233662272357962679004354312379847439797130084583823690928175455411004945940703207126228819611679451272166795855047241169117305930085376080139145237887530188782865635127431459728434385650237068623823932195297531154613650233498908774441335585671314654804780728004106300046141861610184313465833269656264722644483038878720159470712075047534132173973634695691643481689341219691010421500243007111610432136465746013218520933987184806971159255925020320281697059517848863267679565765175098555610263283724056794851515598057765827468967497173830067148593513593637800825030104894979651938359938028769076671365306701386702078213009488482682875601181317246259939881307694048790765151773608236078099010531712647874699583861319371275349680515078546276682772814418976212348824566523616070023015242939785731398591014762292163559260399913798171837128033695149891557178248228184101117940142286955216848430865840088469159466891354270510800483538830412876546740442912743710517933697107420016419133784803253732808237656521206872565123638039411523161341573250475549416850657525449534592603176085208964771042181164493635420716635299065324792015208848198241909703593951975440437230799665141964328506510828985592332930953783972430183803084563958788297515850020638792528684824042537321487406330498992151429862539753797764239850907901977463314393658884495544947717001717836486369144457572355926766966543669263835316881987230517886938189690363186628248318329566032240630980117743605595465677304544061934312807900938731463263288673704938786056007952525810503723895083893677495259923531186935061551372555181487989066416587958745850983580818804319460918191834774042054521842003162652674735384658699753223297059225910248485915891581682501678113616161903191402364934666054128529626481382957856194529598896185368576714909696503695413720590289662421098288335690254389485390844475567816730233016432187248450522215559351606312269215614547663466409409223247109640613741696497907510622724881497413549794092517531221868467590676336282726991656459607642696955456723688831931246411489294079100785359270974567884416163047682765511468050659183385071137499389525821343660350086746956160977104213470018326495229278921671046634546977133646930006759076057628409056763234220003524896203431459755836476192766386328754001957596964589716088316984867700490860182365622212819123474310249011251979029684526664211498865071526417833332547799844200907085495398676209494072021293120424650101167084250723474861059626668864947041166395967022121375617688493002625253767878946275725051943898002542594045981604829992353087128393709287486069079962765061357183227966297536499870538387338457847523543032041837069868811056515454171356491322943156709507066068378476422933210535821164577752763294763466837495586125404650674541343769977674491432592058824949751861672156426554299281056294262000690801822475064248348801533494235164528302421649829699914021319895621165970900338346549756009595602433086159116942100550367181712057746887986781114728163339980464835711137569337436730353059076917372176653435948693143707794388605022067809687261942278770791471159983943532165637179314632749226798037073594507439474447476779504529082446805583963106592385908767312625141908689833294875441329730309817910714265547559897685168731624642523306960916120578402212191649384893242586962704381232237462922858066602361659231925566126141161955315919162320489641679824159823884179648589227238392399903999925392244781225171159569668400981448967232300220130419781784532239525656605001486620859664393044130120839122827926896201904024456126745836071645839135884852003135503028763754640346029374218501338806942814297847473147659661463098112819016222465896122543745867128605072526015139018695963282367007279854335252620226877770840775932370286344592531183530670974453900373147179051578052233981993242734161728548630553806090428654596432939363905027281865417202787302650649315827370499202390537751020017478536184614369556419431804504259053711520921098509253626188109357400268008680288531594386660142668720544565328594711116306409102303369075533495443118481838956271121694076425489302297194547101222409427520721017748829925192252220538476146483645270389465904594197244286912215285932623948667671542569784640580578920714834781215987653724642069836674070297985127869710927883797967961041680688361555115475707373372855270151579283827903882609450802404794054275896724981916085616417365597144357799124317257162805683438347249278937927874039996557945682045043864989916340734295238524399719057927942415345553547980152916455577880927909618954185236039534235595718562982699866052901606092008347640385200687599736916339188813479330988089532767987420323982419235642519923369982455005360278351498164763363998895610360600550249224875739216141493113537208894888384715173548000171692921282233947356093779350180777612204167551389096245224546273716880844689343402162525135098637827513371566576498193972725262919922735252024676332331022559343610230501619184570752232683533878319467074140685760499743206500925069147835391844236423621000432328308282261837122272398588230368469873797381332270617828786375306103393065200956774677900832267084837588282281349002775676578164850962925278138802490850480656054083782866549998173151036864316314179806936225517313399094485297369270017315951685295139381120324072529937618220477308689224815511918856207570246265298763917895897630883246153768335058422795528961521351626574851788502107300356138868766982858727112154670472357466023314206854688610558142448942221930984830065755968794459595524281354544579971493625568476988756529266750716574059392570446862375041895878952128046488816518466745114869083269441464583009275879421797063829524293079727180503258695821110677664212420978700491373601363616962573746076225901307228570513393834922086244848213511978414045916504238627050480706830743866414613020551905324500148879002772120539486249554601696927121017915027749972546761077688252848397824356119139864187425076368500998068325562309300261254124633341963317770432492067687753318370769274182050952526566216717881435857124206037384588105413060618589992201435254821320471981556981699269087020274400087288294755696248612464855425464498450014247861905192148547667132394791728990969876862582666277822304897562350017313876463965986918735785263515168797165566928452252832475876605437455027763203336990218495752867917577983052940548268880915580372870991387403840486876772616543337243459375729282391186761673695863592653260490077277227749133978616066729840090265864694077278551227111378032595889880180140010216405885429155351160702793303653800848642543763221329393768859813614549306077219883281243518041839939189403636842845409501503341674353773167400237939660604477759468870501234901417974673704191169317913010234549201030835569660051997338349993364607577199031401073708969597163065166689349171082880112111760855459441661975068635459108439236965456858160774137233784365628332928947351482909581863919011201301234223944681228389996486024144626273217481029313336990566029492191627154639345874737195516365886850184804255734333249837203947646006528277915594801518420762255591584643800427459814039159505004002912901044788286655548656055373757304252783482484839368768411814511465172817394086779424434786912822199359443150563294151527184978963071335010374841868389646235731721097422364208013796699392349342732440506914077847283672698425474196127189000109196315329671452956773556190433529742786160340506592331517123960868771009832682865911096472709287943192918767419726699458008279154758188581134143166345470402922241331258507213739227898395268996673230676083985552309786804304464438183936724648371354993926643880073006961677982950988570229595492837061896795974416306422414750152157440883326992563802129344532434197806504706795970553880742998706164108598968412357582264632761188992865896927697357487550942161592045244433307946994836515370481828547493736796758012634374968651393910098328433761296196296934994669783459790862558293699173181330164464701133250755449244444197561484598935172050599700630104013539269412704883734637796431148415969205063205800138555791227715128899808001651409593338018158707952049647372403878325593388890295109535688409105839020411867903025351323582122667422010400398716290423467716508247188971094237538797055710748569125207294133789149772227132814118331506387877381690446577037289771840247655375973025779102075385322029089856487028310603970641553829846607079624507812582904271765804236238934419938390371856393893809852619273058766516558239181544084038778288545021009324909694091563451126712682622277993552597060262118024608263035079456585889293044822762238588598344510363598429233268086717462249170673172503441902448097103806009077498772140948684967861292724729421452322148301534047063608527386492190425048440074002219457956173559493827024473290271143435769102696849125950709080989376647616024873215386317157660963704943085243231181688570759041278683917973980857699106757535016168917778761097357910528816400955136900820153997425595099211933960261261652390323459583424957882527465010623719320152494444599062006458403678300880831198484788972880293903758979489897536989971138559602278503043162332325519565993869433662629953400483191159467596575008842972630591019397445372611322883576788908705668085199655996001070118158634889142692761214883843626504438531716464360895362852473929732145839516694917719720922155795815501242993795952360714028193761992364338617562940619859335786226154398774693728475807417208199327697380536175993974303728434617311633430474128767951579958810278845516462533984392359508317212536263740858498408232071348366494913003658468890304814664222119762389992779473398337181943089067182328799966060667874854961940605555167452894499262226893207552185923380589288890204513369843357652564269895492553579996109725995534197266694191281543025885496872089386110380299337043789942449205289273277338965674782557425052380159485639288847834162182027847230218391865170336336359520280168277627273255527552008362937329065750270518790564531815509461276913589429226021411468307350608793580018452811726981652385701181129219461139246044088877507329170552143022665271701301626433524513018405509576353774678016677119174192211478352118681902210929690778884489322764604521079023418663845401560282315650777827428048209504593221225519762587962666214109284234163990695517185669271109036532447016505980896048039327910228420771168302077819328508713920629830474115112915945798428991345727165748552219525182837613447893096159692248057972791651137791639477847657369052100033207287819318142922802985273724729258117305228569755765195811075707331775584265972958343499238644002353972509334176042831813924231176825141841943304190524297980696822895240831760125012058591195850744506383572204569892676313864846561344288142787935914867041215191281176362692210536951386778920288301539569284827747941334719380117626846029559869361664428739098828975670674839711667527577464599459652383116736968421214684327681198919296958085178778929836400366744440734821478936567415986769133261283208130403382000976698645145909619549830901657179323150368118870039279271216919536508838998299129031691880084981726395501104590721548741230171497654754303287099032708765057372671611621616104460406263029682781853637147334023351016815081742705934497710569588528807565708856177114472213158234351900733121473806094550740904942301269961443547309441965356533687453610437278345975495180550329701006086565584002263891043108631738685934067910776624757962555431091639347528191655897196980392264407156957297468596413392339415725498019097864415147344944090642054397172653106104991648313405239023133586590752902179651369825758700983924885512248469726878499448666984435560118583359881450193748016774169529930109325784263942788982662521674259416058746437032259209598847322506971180676937873266677889376645716461470375649834386756282497996410198743917545100255233398190278299005796805424252934557236699096392483614578598863521516634062388270095387864205024412284605067569242486470433010825702783114239460296441075428531254812142033935457171713822109950118192515690287886516715728386248871461491368141603778727821137136190316703069060275884286329525036769764721896424359535113590624334693369362207201948628515128876690553209367012747126814346290233847477539468104781594132560559649476533466890421811540366785599011797046659322986788373747383439417773306420959332403920574223675168649371838180065925380814856730943173326980664941660285286922820456952244082229010127739702021068097497625452026031723325240665795423221844952537222796808222209839280792547434959747547601216936171686026563462912528763964690236449744068117600246967321282164660199343822736326833320712094909880165497553735833295777348016832165546249664377420562427501047144372974109636808611121126630100160171333205818224346341420213185850423387954974644614424282749558027079867034943247801812945697771397498784970442218661416190845424041991886301786671447541505618476250172203110151494513854647294396078084417601573406606776946863704079116021940210719625998304997374109888660527804903584365944669812006802876918287189104142799776387416480442764567417370842161007107580089444796465125338903318132146870269201053490841696492406286248991185720000455355633850053259486600909552796938417926733685245942008531352119194163680529326334691327926447035747762712909426752453547688132485895274650583303217354895130642363816732389730702850089049340755859060146277874119128725418177721349104576067122996806260857175646861643275907033513890337179597308188671622266628667910825701207108781565010172278112703279483168697819667978865124755472482710395203978775427337382293352318976283250917103610069530284543242298994017689434299789152420432377410905973030158670322340000071102155455979211198842191969048822592272191539107327128705072577881839358426632314295074205469002172668458650148886868652005582571695681377109284054131802747152864048406783000121202529443205470684019573668283873962865949378589059733448138114667175831387332625790614192520675922780136382039328050431091849129085431401665369110014731922633452925740941822065915996127132861800640988296468298746598533178739218163745937064740872949864735260816222444956495597699800107467413382769016028111384452162871889413401194675378346812278284944881554389323634400469775140280513894948137504782022298069761723680879660726876600723457466182180681553015561443698394887786576226598002128314238296036193345642027596783010190621453880152202541032693836979685376095423880951508457809213577444083410392264238116947801534140007264264184121553934989297761539230722903098331633986281018976131632349736889000127123352051095132645396554745518656852671795681257941685231138736146380448406510309318161466817678466214839933573182157728009807283645629286650656789130013668386508667365856957535860665658292588458781578792187263507469930163886954376558090425999639726910993257166810768101575862676864759976539186398675616981148910673439802080692901464301411954485492572916458221651050524689441056514695501801552027931350148572269740931496657495513672172141696716429403787928429724798728754800749425453169706212865646098612887850725385399443498116030957962602479915632506399352809795055389196926734581821254395422249130731568106642783517456246862833668267453584279994032021555136374765921566175106108768502171857700523821671927995802104939323397665430138430289073391592620587560847652528937658621532938502342048988810355665981131450830165005656753178415036497560817832109338898123478243589687125092069935124416950546785333058460378839537095304191803326559422085861673878965179608362437121444354968181692979006717093754268238404756510809035934014618289173131954629226925404410455755861390719831545320609864375352670141684035779667220428038504540205258927090298346841740043734306395453833136728719618795296958248695891815174152391783388408969702541568023563488817008906626896838113003702361935462628719892937082578493254975357479673847712294909139351829844598496461297793880049932741582180504678326771474988240139475432133040279197271150805993540485617611242187566822527317308940156700010558680237773929205859786564547946023294913094194203687197079054409242849629498091049750778373464291139094124375756428229077466191252473478378927548279458252477883260051431367186659177187261087262951667066556017699863902670806199650296741905949658408802727006278718995214721174069000984550004676912232672960866998503997491727977692396526295924271995248900519713644999608716114407140727393022463888593840977712513994999533769603827022575495226386731205768125886761711341867614924707752463128225791572751988388929945234239628637678106861514568854507692572155639436598823161201167946813504911813638285144289444167600788693059359143813806215355521858571709880154047644110977395889603170555329400965584299548135530067070388428788383875683198636831243963979400800342927873715971918445354180045306212801223230825524400039776687066689389546075752469008274588334999848497931962779721959288288342567761156057412758628820883790620448288906544088630330017568054781166425304795692545555698781347650477617157009336604161266651804850128439529689436166147816710974565105973076970006743158928696450197813343438280075808832213689904823507444017861246332467328288727857320722937228963771539166983219277529437599033465684965678431983148443062241012001520390744325225048770075113129228904469411198711915208602317036851610140388497767754840908327868703085028349166765037459132083065952125962147566105385429595142824220574073388721847427749065067748417389615021121953824744731459337272244812563904287159792438067310324744016672117741946412036027021811245977347212822077239132619041227430882953739846027636264486718137526823918232566756058840955916904667949290281129129927287093151571439207590276734294742531661779834710727082955979329715867205389016307355993104584030252747635031203883093380371759860724108419866814940883657016416297524361575151615181468457956371204280356605863334169447968265973313836961603469744175911238644580185044629490318602772032762072655974939092810802537310464597605056861857589652356184518043946058475554558565026496911772202944077966491039145366175175934534119135648661236769314785833802853575189608066860963091350224771980574717348616062200905971022545624238220436266759956570815133137675905021293201387732376485438507417440031977047351209351298750056050330934083961140638584322422716758035620337414418402947655675506786122716812767771998893036658956733836836604076848218179457954430371821875550269502301254745339430399589914318338466750433676829367682753596085207040043301739759809370862857001617256646670006113497037879704825470476804226106296675041696197848299105127364263060130968685904959071190220630871570319772226247063954833782117618392266616388537861508984363843417220129308746989482985013487079870923170881731691247499891831675168111221447243035857558458005021566424666565968060575514195302161973806317656550812435614574568475857697281164022424243613089943322506186985405071148724845567743927286927350506843168295082433410937242815505537076778564603583687803354529939513449693229629667637529281135695515591750940498248539119890496995588417711075069146948475056892773725893464514736937216446707041180626280501822954346286824817061754536065144937654791329860307678170918641776766858236901978115971468912774369268635358848644739371707820362173744762450107465070725989911474902971541460868344788384650367158381013463465015346235564270058123575410925561129773290336537911534692183840814445700664400953997524020108528899887755934363173789820918417791373299846956869058422351841014641447198289733047590511585917332403464900245388586410289668471903236380125475542976752741148007198291075556459461449197439195736907504527379275851986955456248473818187835929243466463669989114230639569207580069899058329217444971037425314458086750043857493976852345600261508346003320363742626678664518981680725874474246737069980377094100152183095699521878176954478258455924005428749694450930744327113290483971293877778395807872786197198075821882445480332617208629873093204980543532396058644039442663872419218545828665104583803806354083148092736851993004197915774829050415536668068630814702783828681182947241437898742726108882331592639182708000368506658776208170403166364095564900747302189287283042874463469393313829115858895257051269952315349163782278096807971958455865564797514476110523984396661462822224635542894300889407013975644721073861871572188289979363442907392100414545734040033425043564182336697013215570811281967307355997273933505769541192552785541997389103486219405011424761377472414895037120095319107304698304469925026876716951531587778486494174363939571905440199534054197775030816529446334108323482589234404312346974931915114053020400238048324490047666825834798604142173481235802047540505639759685394270513494038326248853962184240528149266495113080491155905063595229503363327877764718432979458430133416759987523637582658195196360896485299531605983950424788039696557913784618027664362409685454196738758258609590208046456759339150817982047052538726254929276028570333485555999343789874539324284591022091878265505668683216267433781386002499026043178759261081930077503656309305657662233888024443332084340977802831154428809806830208609600690372386889347607593718680862326567199744943892176218682111292348799296208624530208866242483250148580256400159423970250881483410555040947917527043698311837106944856485316481089134512193169766439515701295522423568171152718984926413204128219256134563429816429854471678083189212790569587607331869243162851539650795905349237161007707290998360342435319731083667682707981327146998659580547035138651514891741364825904659171752722846266563349629863087083390503313384982920336740102980201514005661483339736931501279908508293758657116627203406060898481193371925655280985313094079386140767796096086833124376360355673180089846811658079143940668427035763682620114781667893582559896849628542323942080456533221913672081221655586222140627752949377642582077643468198412375594970228922867868540192983753544486621574805974850761040338014410129185632904431909885032788311371403476170840838637635451174210093170690044310750547503840616835203583194539920066893153598457657438481001613516774117421425964772520182744024504578870902940705870378040885191761171954320188437246445362877164815012195780378023678977892783378349828176902481698810075587485374376850701743450928156289993540154397485931357271763691049433522110986311608580027364074408736125924478446500394681808964876175743505860985247429137743331027646252184462321815438922340044642931693295081944346758502622927128383975455332445877027944884754103805209832383552791012554151409308182775768060983065656909517736783414068428350231626474679031389666228393534208748528933268612984939812894155690112643221936317581351169331838875303216421223917315600947250055919247657628876375806130488022248560406641485019110028114921286254245180037115090327515620786099089457834438849825890041906814337304254408179502579410607237050145742064787781572017980425083017520549410956112307815856067421540745030682761593188389649096630696935859848588656382564516284248768252029504817949229816429369411283390158868055467151253452858380606306411942748485152775542815099593712590187880101984650055255755836424643529496282957635992812188382546745968588484162913883624957081975347756688225176999861336526536573102012928919010584631999094641069006770973431125344649473286939652674073308033118027509717109501871846898778792782376849984524486618219119993778642797109851882983660205189644858413328440855588866068388881610654773703929689731932680530182383945956541832323111631472397843205395913624970279187702749505595560893985221679823972547628096972802162977081101387876625927205977864955639102184071283318422679681301547369666485129346279596237780585944773090570698002446962774380182753709811885971060811321423015043368584071608016782190517431010274399680948931960061709670165979957305294414511920188961406150256661618487740589077856995207871612961385066994682017787249889673029902975826372173507629223481376302188883675755659842427430780963106103385325206629727762325773801812578024590022986006267833160445352756954335843353759867192686307042240298072048264136028889579799245644460370209372668687190335408279834726220000893696156012060231117326447990887817384208403189985046105356738544343690399145678504344861810260156272592654855892329025937272320773890750982317386343239399295504205531669713778387705914464101851888987227763755881000582141801171540513995144521032831520092739139015494616041331434321394659612669876081898715450809967341567042692028966549043287417603871515548641870955704176705765720150263486844952709452249012540299118068500673522808911400170881687272185204496879758409544702524005876902310162079310836924628128389256594160704434938284691203484993282168668313057633747206137436657044612213528446716374077583906620407653434263330010597801101919469224753022347983728500012751496462235890371011511190063162054177230745674500480888684427980764346257108830315352561327151487926798677862438807200092130886060804485387141181445622737143759966060145217088579934184019894202195948356243009280542742469310255768392144366603724379753912495321749083704618447409164663173145307640915035423168926968215533671096584474192702138287584395733650475729254354121448190414001843073506454280795593990054171953274505099806943258454030755904211463963480733903271428494792365794249866964998000591240355120178314002964651296335306102892956997320408761632479907061031304159361412092013334543149019605448091277471475788783782851571156046835979169400876863681161075784632096387048586350275565394014500996389773572812832640358140083757910083217455116466440210779518069305061326177739585802428302210957618469948335097244978520277697868601040777363554406476025279036701460830095507269340812852005664852907734570088353886895936636436124804963588160036531080708999678880498583896053421060906559313518225041492969866903685953854357101455493843292945207110550742882992307999836488371651548429879581031302379911686199446667112689215167634428710400568081287825276281634370885918338407696497020630230925903172219232725844266457559092213258473254811599035607206448130972864931431289662440359350407582958682718627230558504373360957927825690821726845310714331681222807794943752364314760195869918512666635556640308397884717724594301822988223949379090232159723947004597294289816073382658328971794983712226361205627613064505622674206837844197389861604932297469191629079676134034845313748809384790455313989488890195396484450429678084991922023892110657653476744312548164902680737065502683986267776751637940073984328482085498754117563061332878384866376793510893443819077673057978755876635089778043264992133923760393054448248009584415347807350674016547237214836166642839781478447777463241920105491491360123285512615175646873059972121313757514230066371964811668194719015186819580351932093189495944345844751129961349796719353041480859487430168079208615995481804832814507933017168313943767754683625431135390882481733354706390709355662942875339506441199656195213055262425610692630793830839383331906127432149598963488720402987881536794230805586418665793709354076665301261152645970406333438996071968634105882374394243847226284115399806306879111671497549879188183862888329408215274425496324911402684570297020029617536161748370767860398469632824345681976008897813891790060110574497533878569582208468438729830328531854527644462584183959087506886056618565924606219429274938466893954481533302667586397650677190532058275922021226211361267047445306371032115816211898729501949609345060433519549379544752330240686561388062836352014991992896241718579542835673510372929724622550559310662319962432376669710760901163965728828506005257296785710581142890089367617839118078176560683941173009340043342096099345215408439963662687579144418188519235729336864972008054096884683495715951493525722499502926271725156065998762268207523016960541279705742193841105427192967516548221895842087996809697860074926851968691780543138287875683810845595635646049605359935783513027282713563957994446445766334313122076543929849134929406165486718531580412818960357521014805132317606375199191019798259296432720572113507103812158262765738419858724503222581459369196482764708908298054046971746283853690974600169386882854510160706188725456481592399142053453704764396225977062139723148909945708952614081493699859597305806662881878140130855874914375174146588371475028751750268239962324773468216800418752779719305617656202072077901599511007210198707624371958436308500517744606243018271564086637936061966199050505559429357597844736592185597855286198328247577766803643487503500964600582657749509318376051767207961449751478595667075996991691115927896885215886872844831061716408927362989563939800427175580544187643975386372009664509891468678035925204222129350392813640728382830731887614600673258135522467745351667803012902634638503688772698364383227957692047505952847825997206425087845929871306596153197322293070122547106236412744277516843940016442468425926691334402301900106188418841532573643769202076492665113991520492139074074925984495213249841350333826396558289994774042235830954372341326955801552890145647088309650719148645744687071523675736312877809685680298000819985104837331828702316983411228324815849442680236570458431429181318312034435739880480303346025542261525528683421958460375734216779043424524967186034252469572312665094012845547331289965819138113157212492397000859303175774437220367810201785176440147539155760282644354656707983862051731171217346075557442508715098497006216941102721342811066404098368163892986241975613151967537253134145386697794988881544206330676362462644200498813702607294040035005478727169664457269190310965788252116849586893551599030037871941433885939360140532259694708742046623188776392017141440153698681819499368891703437379208097042305807312327819770569048071569612706441824321127243442237038487474117698077989744464424938386966499067534461681137317202376396249369754979535402473810653463222960348541459022192881021127702142639605534416003104297163189520609120568595221481255808350337180147883436301103156788127193952353977309269883652699640721011371368225045295340153808953426663493336817557696804171915373638946590867331361613518479394388258897659006094647812211901347068581731223984031334675864955615113384600510403826041424505638663763317993676844749845867194958383564867229288296849572229099312661911923508300162127233608285131576051232152871696400278008097428548184905225476214407142096894391097334337995634347627055047702121311070668114007703159616499463894606065316306391035602455945595261241614907297190302309795195055317282845292839774143452400022006842142262470513038343619031572571974044719772947736349673751739046466022383539592870052749127155780082605300809041814537322321371765237746271791206645932698549911896766656988349966915721992031571900475005233057449338274074128625768771041293952750148530767745374109531203976477303571202199808774910067121694701061830217188534942560462842467564062544006442170991266998670313833866570424274146294835029004297179710138436827759270799558842151276688298240579065372361314248782158966356384624321746699556275125976312190338143365058144408135256627963735805442951699037685185024742893284590615337293812284869187072366877262281044105137512858397016654610957054764327016668571688954853112468246455940165953900229208987389739227976036512859745744613456881355857188346423207497690673823802588666217235329805428209283440405813073849411814686745056482889122960027161289810860584140142310812988629356985466084313642586858256887415587208802648681755115638366455972719497685298829828427401625553885862038252698217906522574455008537993407384106809187232055692295614427119259341523055396274012002935780590841208673410381309237249414376048840342091490598283068420207058541930458480938708464460464444170883477456510865660998654017218999135925813151498863773399536654748894900437499030070459991395284074302436749662340460171307906668352951187412464365253901501561634052455038233788739513686706537505828235735013948177637771780602041929072861927567189231321672104121801821746797075358371211053951205599066039202257469539251804597133109399702446671437283041303938366732626585363476336242393571978501911824602272820064309322737274740811094399194717847143588256195708795082823926595057005881992825748100731600290505228318963046361606002827476865054110321426984915920231898649516343962758239991367618238978771962568261695686651762822230544465953288918265678891629629020035437542108759203855854704801410692887412261086852683412687575108627339921731450337390205123403823212080366357043194044454571651865811710364903875512872159520601641199489235904750400080081941432026463412835675099919243549219930386723304519438921734721701016222729141268963585255219130565314275745203552041831090354300671794912788015687785151946768911625396144230481906525609185630815035761067630645470195923781150916312651992077861918491056414630768795051041668776716809939318443342010502605173640253280983666496778252693536675721411449835502071679574314706173418996209999580733444085888500175005789882830198774613627643556477305344705852758677224904723200917080934496026474349586670902336829188791048025036207776853575055833908006652912256907722722423995206216337722092740673395174896434063351736682214281534885298690847746108928935324386904115613299765734149373461561639422254980563080301929821426684930727445057488310842122583121499329957474866690289798493753093155830492348318291127930376256631438188518388528254028754452283286814599823478521191794242905881751784091961583532313562354346910394529627784840320263007274580965325312281519319663152679290302851201007667676016564637832782051376964995412322043434251692939289968642081036301777942783183260076660357125976572724949095843277059510058314968067008232326158481996953351079601885055190102919313526383159476405594582911058812481042985010743210957332922789244670914054669959470138498206162529395888231860872547289759181773273388190230630133632427227008680444118239562071792922539015670971213551198188686226423743475808517892739361016097774605036915275766663447896794080986871232579376330863951722189214519500278439733483609901882845009388329019098325689583867515824188576912397640718904794224868149482531156916381080455852032678747722877501543771170578810373404176772531128715813068900385720654167040945662835790672924583672416798559567900726330100200552720383255092413221862295642430894836300650647972460423133878522796782026197688562717059442115126010149583356635099907885435379781203988966025171820761253595533062345720433934537703974123802798130039698392460189904421414970860412541794896344950786772183633138757499040217448662096381553342070981713695498187600073365140709477523492504492455993441179182483497531798883730656035378714718822291208751989899398487399745202725940573410153765885585169336729207692394602282297105513393648761607945936482224032255343825738099088671844367791006689651489543084042929764914891425644660362240461079266530351681709820681591361907106183599620439775649394774947102165639402723996188622389848615926079274086606769013225811633208476614671735634678740307057385405475444597397528166739033438979850985278835774278097829418848118291727613445274837757091854547841818549872414788870007223003179855728414258760954711940824369601856573144562704252822225852901078718162490635320194983639583342392888668867427665503255174330218055342687614679645021116839821605574764652825305945738456003325667645113616781025900154330612767346855827189074002419617876914221248050362467006022464843486802814117150182873726598378762137684663669943575822818281268932459544733168498510199480688024889372418244077021534685223391173097279486145043467755219781504292550649315193970512074156111782116330623820811158499461661705573356181126433499730752004388960269376666831615296685652864219257200311335734492476913843002845013104496526518652871927739497367008814418435092405095409528720073967564012569236087189225789420680154635124556629199794331217715091926513082697604234201548528259534912576976723610704004268967604307640838783866621839201374248480599219775826111281590465290271930365086458053925337558180591560567247979416760759947749120265836145875088904229714125101552964728308638068158135673566459394014491831107302539358727992368961741294591154724777949633245146806877293494071643693293455114134664262704784192442577367352617728732646904343736995482369415374491197026452055202327147593453582925493985869600229164540603926918755769753612864760614312355058037133259163428728116701925956358972655429686178250477833414741044083912088212219563630775384361803582926269929660882488450119109321179089097904005253290576618545751989568068400929819505828044894007800478551589813913845807517190659825995394105184513454425029345213812272618287116906491472587765616151659884387974977089678650835674221305322305133411334733842002112420790943729526435175015422889604868076925952064679339767311557398792140982313804867378544680892828593407633143248472244825200708241842829618015134680214278798920553836931148339377218271284899790517601576592135649976860558353154432753322371691277475903273173607652946058248620360678472192316069770380298705425059159381473583328501540102168964832162431629829736535369058524385702855116687324078945575628280613986727301010705813773744689263202961634455021982681847067365382677668423568054556702542465753241892555933030143707846067494875085189992288023326605246469706107239550522336160400673018275321962644384801161613436115079120636937794579340585559957177338950785531924906622318179838321113130490439745662486239788279159216052103315226955742181633372080573492503350287248396208889125232850723819426277617917425983222122962260453468289038307051958904880140876785685008808473815625045613978607146414917942722066570240018285074622897200238694994360244625897628338052705870291933485120000012201252634695967648223954516106446043511947147801825137069676799653554146006221734929574930148547385267430011345801158152154210897530687940870571492614510879822682152053916877288350998138995434532848051102254737225868464507651905358984969222922681941873989545586964775901702376374377636496187195559641075539081168533614967393938987544196786870192612520395036878470631860259364981160204370726877873379626453399985120806493120263055660607721584609821884446183993895827462549282510711363300520380648289144312641132972726861929708792264404160210355612004604395242172791785258102160440339400556973777073845689949662636659197513828846984645230764619055705562693934371974935295764508282236371071432268314766816303117493542134056517301482254314973952584927713077295326902436347906621449097681501875411483040015571916572284962631165813839834835516049141287986859575073932505097414126458812858846141000901977948030296207178056664170950951139830155136506995820246010586695669645328104453800658347469924195085654586657125128392057403301548619399917427523503986592024868958426894319806108210903083420562385715260408713401627711952048210862127988799821503071594869934890393050167038005057911267458883094755578208865737377962958716577422945986265535919249026852353382197413145185786035552910251574262439373362586548825393969977871241821710187178893273195014780751844604707574360567744817889722684227237588694839268864362741567457620106044403888447455074492443656782005758694338516642784229641830515009179389256115393897568357586300584627757269386778916470375163588299349892138814702683505128908192098993804965039957789052093418406445175907474443876422812083752935394407742227118079682490927024648070334239360443468558435975527668629932514874504191464986505870894850293099253210453125641300917628942482881725576664049603861949075111927569002898995858974015995653943793286430136660851885320465726964212628425557817311078663733723732821574958155096474222041121522294023467904060278410224821173667708079258291002443549449314238589182165498972089370623874190373800381187545182461596702691025785526182007482222431963147295262105102216500571091834630610941470561771621944590065414373277756035690447575593579780211729366232962771043649370773141201816172953019394102012634196577337707178660904084321247445680118979965150616913544508626903557857476935165564659656173431364099521409618696064113045857610618758698678456601325484564385882589603324044976799015772437094128537483412517312140601843612687556898358989250069373127466394356128296197642216757321073341004493285935667521825514553052277781568052469591204274131608813016915453813537072365318274899741630014762094422665243247617952139246542858568922237774783435718804155857833839244452267045504409796724815934212568148909913870233188574804960057807395543801964186581361036600427939091322728283916315387625120913534830056539742372765235179637282776035083516354792044880262000282607797418380439685494670660842979840179646608852154328384172564003152312004733538693768205601244828572547567264840848942831339069435924540297012587305542735076668795292572103229953833764872316645690702434953801422705084265578806049421283766923976609812323136400081456743183687378932907474251482220783392646849561341379060540840531224906436748875087185775068440899068995289742674433865940927116439087087600972438240626795061589054103016575729865546602883324234161063431585602949077393290646325601136619819372984981115119695152993865245743421622912289424729322065982395753264537774396317417955124077843812872594101512919712826535016209361045094970176836654523949531261901837153624323550293368641873275944500638276580137720984313315401703736167592918968872032600858306037205080308277169119755483424706793331364032180860683293701847298985383818279958984963976412737540265140682348639373388994602204929856217416903743257963341266597502973750088251896299764365428670873669939603092874877626336166194203996543945112098332976270130940604126875840216159288503742725041685578684886875574008749040533773944559406594911216095515055450856288623344341399082283578237470026162144152466716727497742572067691022263551508965141909976497907799881098237686320317110504188489637090588146262545988756288557056553138914457542238708237263160212269387184403779179133422874020403011550465869064917547197298340869992285411588590319675247291410012861539479833515831106202183341959866304097263406497185261936888838588939559478814013155935512020661771080990128926762972817470597461522162631217961749179850907553585802395162979981749769383286239817088679861943225085939369116301428291959612895162432983370654288020469283265562143248206330999426873807801865923369206165196865992841726466429079002850746857922714902362492630391508052010689293756827339531059510316322767343300937980708040338854378893653381566671358701029814507268706651150292840549305951906811349618766838445301060654562886037440250090518622043803445536421241292530858609052365338267377127165168526870318487554427503801685152139230693024392163187915849627348306605015974865640864266604835098911568709368797902591493647869612597652040744578739462280291077228513129101627343859278011962540495884881829424996345957253961946265974672739911517358737878446524973369474669882257441714339501562842273226068591769804600177567837734667682894878307024317395683085528240636300923358719375299215249586068112242970979136989608645201195021266811818138445362927777186279090868580405507843861145154077969642444194973878921207790709586163005890983598614861623252008961492162675841646083631727493930200255074458507318383695169424603888578578820680427240449071879359184952377260976549707994218657775360382831012339106523733098004088564591863988498923905988828649766236394283798166194405369566659060768200235753881989186158390414300980574981239149384548809804047500559149014336705518845886546680860946197364589229699833665266269214016047817302234866199164733726811151787914036567968782390316875842368319850305355362876024141898067641009244335843609293740561921178075931362895283177448420795577427266008279135551307784250582847486955795000841761469471958096031639049967700304513135994540314429560545648989691489786199284564828246109902274433095595304915867790455554791251485515238346513839053985866481336692163819564892577959379321363293495409878876618270102554989153808742469657734946535271273554304155746859165921230418609220750143753557302262349032829664215573247278447922970137700814770891904376177294842774373156991106372443775786267265022124389863988232245844182672959055443670456517470377693960315302596116529883755015605269997771528624558126097214494502343248183885734825859919935263562998309945107050713270759401560716587620815957901517907365494120782925329970591356381703147925018602422245173169196154702142542860258789390503186267543886652534390493646754302806846197637763505958329453390449953078376715656849056644715076382886403451615674524618213085577749222554677152875844023908343896950702265722016928676417627502572674579852730309732836120667657947477144963564247290321887764340845648333882352025708247557496951983111505784879039210951165228123227410150179948915736699457837483415217596523737416169078792962877976511438490353035369632589050134203658737295941601409351299862706738726616051561024650706651674548628033640114448116236820157977598047247213136980837109596996918934595734285075352798632287882631473413754206080279750571838128777467698845131730300623749449139708587131195988014106017109774911159499602138457847983008739768144393129998726078981437244822372851466711424642066982054215734714515668940232755511224817165474142647545625560166329309888111038160413465773707222747161888625445539085736466333228531854934472499111295172560366140152722278652147679110086461726652424940307594381611303183050702428584316127996712473183888531414303049613036179956227536826891779146864607053225742565976262485430142568212863350643994322733476881911190604094490406331361904485700143309189473292338002834367703347290178703895616956170556489151561747684477837983146986564100727791548825613478686540053402597716165448011666398010824918956305443744832680019869175185454284289142111533396664692769042705192128525984722298982218832051032789358479696751537535337971790260845843987703574670950557040172136994631028899194219835828530531601685831093527569624570260023756261921726986481676171514573303734413020057330115782209167905236678824238448742215508191789703810371134677322117132151743790829210246233035156733989015954246424318952980945051065236496219911044101743975663004193405754383735660108938177216964536134045069752717582857458830879212261327069300632515393268924715497489903994870387497800369740998572844229340439039264238173262078680258398026111579393062765898255141196836547240326838415579233884240448814642634302942168721675628113396055435775235594750867605619060114405231118568941977782677782424994418599768401341796188845819482150173271364037793648246317499899577866494406425345187487137437677760321811926359327481137245074645027405629149291254166257331915558047883304629441647833806711212859731129512307993295727119702915809422955069286971637592893285536155098437982674403201408494568292872827023381796918566163821530014378394803740345782675189446137369426273383899356456010346050577052241309233568197242808291659875052097152076280671137678518738286048173750042090066983409147094069533640900422108266823316829889411793191847457177889592898770039930398194726361235521055709719600625415188914614922665025085910958630905387853379756614672576137753041766699341934410615235714756694086399659430359459540709517396429680124623876913643974979711177900637733300851827962031227608087248233095971869307397183734495301063678850465928495114742157335968279000501533401711725226149039559619851783811463633232359108044797001610314347027108800396230739822635353778643207005323520071842082899076962320749347429936712728763251558325013088770022024417194701458455423902618437765740002546066966273126323982746817956317772300890968954647748473432481169873154953938733110394577355801958535460975693413726453471933838681673462745426353111983545161167281263457902805111265235088909901788813069447529827850572988288399320645606418767349470224439968148094577327333773350598070408536361306504841716338259948269187819739209563833046280991412880249144848369599220960000705428654749472252424266110812849327855952162027088268066342553175895560223453401637811380525295386261703322214778127573565629451494860669620011326031022931834744403883831756559065315691810769375227320891588773609730347395632398738403908650093148999713794454805234672939201610544064851644148281728767433072963638944331025580006893827739984293592172714620635984548160344642516781667543033448478383444478872565698284466549923545497733373787829166508472813482216324792564530411026811053039752229539500310131564005612866876317204468046642594228022072624176255625890040024548982829454248651649355710508495860735536998318421351920114045961521799559033333436241850814498302728593986165592894548987927988755298663080247234950707972842097078826284279411192501963468632654574649890459366435990932130253595105549484018071602226027906906522224161685714033895811945087384431845863333078261032810261434884072486036920319659544889602187951795621979708281846946153926766825807853341049654537553510236167212183196978834652901956950026411194591978527726085671202354749772943879152814922866476293126821293340879540387187060772924827316590551428765704491022806869343094555119114876313708354308280012873519825471977091460515558920840708756884928036022250328367184767289517057657531650032150619023306524380861943965946321916479358456876057906662475256530443577371067373598931503375543708516245467329685248579265685137949636626082025964057637715452066153418695659738512801754392241469066969385607248785968340986442312791535180320716064863424654846487900246508326340238266562383440000816497585794781790743491646055305827604243411868050602413736183498417342662005893067945967024024624485721011544465563989701909513919636933505898801164131977648076307871535804966959033149175962893018300218757266521593184580723636036581938767204336735544926041570036319493200417501648049434669547322437684685847565493607543425661171036257221391369215838433114849333705596178767020838467414367803888301187448463333295733018588023669231292886937165187523871826854377356175515313843760224697766392348983751253603176804486275118505751470429655432885594046345572120437998844734110911051856758973620937492684661954507873061290018621976975091035106161830509662634617205132635743436405593449422180669438057602608722729738505702335238663952184785975362334443904911075589232442240648716980622838543036832364950587192657030573988439876835376040128849190874199501461612541139515493609672915861846047811216104104864648824154575606722129750593872007037891174807488885782993121660774523937219050693187413267090553464888929311334859680652923119566492394704293999125787434718979092287875321224719476520105632373232161322108268241885011972275000107128900695590688485479331119386600420768149404831111462430929846260246371290828442042646510595595683671204273454594688219958756615256471318740025821216628775481929764937020240483888520611886416705126169071799346414451600934030980579415806949470206704742659714893591419097533395176697763671229850674741622196882789155649659025471410469943949683623479021574151430761188690031180830395985805849992104012086801880004351305763505530917596179833457167040166827047916697095841564100510031175844976256435719903592474884116003314800038372096716479434293555316878943818502803906181331806428751287186923547833740727790895677155708243635452155899911420613613141390402084830510078508641618462046660226880878074991155376984272029388112246617327679477988346553915913653752244186968754071304900751831675760097176331227881839244612151118825553199007636655060579614249385789444331657139749847922310766722367794574256576286735560279771811133280173039230218719131418311984538996506228807913964612041217066199106663965861080857958260671138604332614454586520275876110035342480718893357115023097208206395356852296633328924234854920452041075456359009140785963985039315207973863477551951462399092063843763424377523389815649410632061567608228064409816717398789024849675588471725832210833514910682537585215308331898154819533244289241814175623068777544721935602486419223665796078268801235711202156097827827259296738706711730884758190701196194551393221887198373016113575366586570024622801912003937718398577367918974037426052613467982736565129214833293051659541307963346609643030778184124225776014171724190958041617040069616052561099362976619573302554833360042363344578806222008743463238835469621078352993733508715972388413674116133483102358657085604468961234650279438168606824197273330112000864651292094981428462110738573965438230769412969467174986238412143725137087458147030056106657119082369328295333393133813783348726323594648901540949240032425357051585961824598612291575514135088593359699174997623802632417384035740493306065986831154580113658955182287123053888372919358541142414389319682761499297607978515108862311241287524575646582614549624681242261285307457001666616690995815717124706719489353819545213045661231797433587615239365970812525101549379332787778122861833238663377207153543260630954017190718513752505959915898109084303693263952312478980577279310121513585162525971353865937157552857870969913419918455099609956644941828776308879220433977815149320058786023380615851961912206337708037211211344936228423880151257700908072634517493695573937531826801638482549728488607501919228055341608354253911406474437976934534123262493102310242728164107325567249540687689586399414792608911204835970119420564002076279584486583614408494337369254141831678545224709603135239780423941634900111074021384837357916177911065884080832357781482622809831742249290779333819360673295277701461184810983076680150694000747490559405467681874455843237770566473618500215664428838987584050800093732403568670287112084152867355227653489231953859987422027085076452082682467441852836319765957794496127978751383867926504264011565219628563196731626082623841042067036784796158764079764235035316920973429810011851886056383930315792886875004419855455033880616206600659066819158128469243745129972729219595358392019648664543129893775747340753332626621711784153481810059226600949042339731785396764291258747122982389090807589253772585215729904666225879627463765464827169741955828088693574702993906731268755886645823923614509832482126460891339338972217163410695324242284887843871870019423091960639001322606641851000965807389689930164115303922068471592261109332952489124808120537678776795032610163842401408661176433533888833541681302119201447945952324407024616592053257577102165417312296941238787920693242952214418677519331360372606930060953390115876750263455200071000245104356071459578398916212687618121324558635905510387642305861485693795940130276820895604159868660340796754373935691621236717086135354851941695431902918609485396740156704633886736208263348703258228074769437977728590576255425676663716534479146513004736718711544863420984737976367347932044406034400275490332402822359339133138757258641137715331979317935894298566401313276355653520782646621083590300508459630881444185344258556218675419834387590684718744041456696785429012020242794234838000598996041565907332928847343977903377798678124071769659591976884292818764673826723379384556707164195656564673034479869096493893131871836125246545197543329671489452828881685973800808189272163775553915780314598427692071242629353248863273547687716787515686061021261124938525632254864137722264144028455003422815048835840417438907264445431916826393606027652160522745692566969939956536188071639333872249450193712660075502550729753917923294643168527398404684543939405530010006152045662050646034063387893043059869985463552152170137523196481069517015088040214193423045654679612060666225158934465974002745360599246552975524915475341630013191773237068941778066672481119850117201994142793774250310800901345790995499142955475486307072374868816154614167542965829036578849914038465926400487888940986917478270249817471754040223240922483796109121279082238351419312588370158623093396355573682545295991379301187343275077174322013006910578249740325856790950727279036273911770774611854676063666208979365633420578599864504538514803456904274521818045186932488749647498095440851916782084482893835333574549780980011991927502114116401258322616949789228750955987973726486213731102976080371506342195234914623077005391012964442921378237489013745510135346932404085948290837925694026566455669758727410730938998567158725486586896603929264365563641271448389256378193793817330174644505654805698962036740885133525384054477954606114390057182170932519208172392079096233747119097543676230282506849647949387216628178252836241386607789884878136468788008865135620714452649780648745623196552046038829154486755226088818924408578561205280194987163694533844199395693116730200330909791796093212941174608878467864046123077638907566095415475651710585503121442044899999581175093603868269026089850045144864251863697126044859515359583759154502530991838328374844319613905060596658295267931583170348063491556707364688492816123588404755281601999019619056992808504952545509094538752276338798276643237848666521168970278365184299557553882787933323615665324637681672822416609807615072061542746485298014599285160077546895476252212663676144551004013000586509827547595725603157534455515719083927228030239146571227104897505432559968687186840989878217900474718782583152322726512190741181038869578519305480005980471022607622183281875747649395132737997872963772885832315473482095920447953997436077815334108648739117234808312256964036832077509767997070159815913098159805854373506028928166563213871259620703558306516184251689164718312905194839628160952815108067119318030253240772029186431281207956050989140839873729151694340489557548561595482761061611163204045581526687314571613908129859246736185012894932997859695008938547057677385243302730546718651804231576760207046619631432704021813578380443200818899456767599593206295352390641729880643934293293889758758210270817315951629105081704639672803187565585926681587316296989163498025580839263474052289293191046278022439312596487174552647009206208361146658433406644035236381903479571210278431391340113602003827320947604898339645722600256837232932142018352529000779764657303658293363968018488701859410517779218340977909409069353236543036762285665567477726575834986634752309523131082161808768399585574699193103792232470475373834239846011196658493742205727000082636701526315275082028286235250813628777889812311472853921681487404025736891831736322032786944035941989380372854451756230022943914161686525534916391914018747509778897323627513002302113382889812773268666676021948058172747638746826637159525132170842211140751224091814701391525335456225597846415058855404637245206888495549994002493554705571619213004128582076028109790029694416002854087031327423295777694486439469774465808838545364580659994209406122080026932225039779962409536676593330617506334448809133662513096579332275338748129015884225811884439711354230073581140233008699957176419358831380713402707912280884291375725011956660253696251307443762371786301135029382757597810366234848373657493203209070867458002701013013652639097729978152232889155471849897919256446805254932824406983622514086802440528200233920959582974502720645661828341104799710709237248194391274764772165468796292498693760394258901503321162101978398893543375926864944591070908029913555418409633367670303149393996807982697102302743537125466721195903266148712921254466630397018847434689375017539374586090719662356280088346091920988745022626843064580537662947274575098636252289935279050142244572605021921497958708997166046446523508522168685521672624431338981073747689616670866970594539778205693835890146841336574684299296819970549151154522475668200788641292601880378213175915198207470922447803185177854879369053244182999484521579542468669321338127677117938328839190325053064599149853577660029982003338476886189692542730734054169996266536481353548712615403717675045615774910977003956718791494773211686336268193963214323324346914953013452600970249381347614262708724139830865018256163748400728674208922330360120696747469805409010097962050834240992165193623517436210622219357857746161243325229680992066713206562652652434791121315045191033046975634888263920852410038960249479065719179322478578565534612752761351984079509584227522824827772744032823844489068299462147642383166550736957537500720129109620494610679596895121530959379408311531092872724342186547351138823190340123497520095960849347236253219112168647719983626017326218387808220689790686452573497429924898009448894065597004532433424624084021409987984400872926465260763370516656242988622636458542482185399158806625526590404232102300407384797413220197730243757539653684163324835051038449415224846502501224927252326954944398783632994537600840115374967962303267878171692217879879215783932095956862483507958133331515845853073286391151496624968767251567829466991245236889531305227687529520945545411248363537971207481510298079848410579407635508821141267477765677523151418947679063864528859926345783196966696470853783970775750479611946135478325243322939283663775841752729386495066084492550436200486476928426614563197926599935368691667020647468347758289917231285112348601148122013715951268951645475161334723551672304997892334186257184959255554468305807225923971562921333532936197295912424195270953418262501360677618560672239906830134686334753734213978394194126311136877987992534295532832877874785361848577434562843760501621679175350872316223957804216416201320301027093785142123078376487238706547593854806357155096903488081526456114453849019360000548829321385130812879228072695766533396464338717008389314310397542765220413286579310516328149080400701600804792654501569014022327849693172324778837636221762244038702928950027840270538297441913364434792253685461166447010503590021567010168227833249344802387091043839498289892546171798454246404513380472436072533613578399902199556802125747969168738649487488497630138710619491689878058820519572877182035894989117546901384296565705370203696019845687515859253065534029334402105833127790819697366808248873903998965235416550623414637036637551930772597241149718755663699791042126854551751631336890548310651674759896019764058944778108910854620560205437322480986883446221504640918088427895132380732011671743382904565877007402424856153753145024961758190314572495838689864581020809551620062765302421039518488290557534734689072538430635090976146675187563541572589031311983047569256848948970476049011218279000548153337369131626924216013305699071939004763530863888008296823972099525804788141493581482571651214066776658894553270879391284642699621635451762522596831333544712546118484714535048142590541315930257388286671156396519255278388887568937769100254084586640018939616861445367552458510105669086333956940220591161523735904234659194749358945927805561635609589385090595196145929327814034161570886413683407104143215839204179443301227851889979836630958283258304581687102613581351226795183223046687798390322795856148527613283299542890669373594359487882166967922727593182041708467546280674962880428965589927116196091781947495911499268549152108991298300100886999179288593697643572060611552612840122960778831107864617060766566899450706658119853734353040816031706974762399551103185317669663650743121077012804573293448838294573442536837468865308129887527568362360304844710133834055664647079838195481132047681813139230561238339397359922342645001992664449182587343350546644998015186530496898841730643979429854444948661184952973333741417889304610043380716680638830597033734841221636338966593134713104565660991764818208349113266483840187677972763098449546027084807923248809514839257452803825827847226751991360789086400574526092461580467844007527515953947380965649912543766970830541953216936731392095405692015063749645318023429319359361519786664605836065789716392880603732196654114647586145337302875419412427056687014772016964033913353819950159425621125254186954472748466225232808369144276110652156813976469360252575091631471745992188653316035756895881278149857779213631432678382197307274451473726363399248352942532306455425131653073253572072298560457659494450838117912081467509715801999901421053135269694627890288513718531259872941333301480532589044103059655812052511159556229820693414094394331163122885818363394006228748945002253536454499030828748495987623003120279488164001428529353953638897282699449837913023276165461298913418477860832125343877213553974315242387251626427442701649744927298593803561051094431430667050235789606897723899195378286125542225797219266480363408162766122992067448316365480299076059867114578957985246666062528890724095086878977860129289886168225574556525547972326898347631618620519844530693024896126147047252290081766312943213751834707596686879528281155001680834240255786040121338701314458104198240642479775859912106784586374209992627251244013965128056032474365137872755319466195986308998593368256039578497779440019653947986744432527628177856932593408727592495880214126791411059038964055938026671182678818160888156882910558053913001304861958742325607211431391868321937356681326446684268391885600085265064194255334192879012348837299569789715890805478900478075374399752023483143907974159013893018733162673874670335738693630732561624345495091061271720448778775472554241810423893062170223088328990167769480588533589915404528804332954375820548129609517758255867799717674904631513617900471374411596662146948473123583537797726819579946010964138671692389139374087870144341679968898272354581128532373408876246640927146002152595342564771763843087984824209600740583647542925973176022786451297400987691613106031271797147279774233561523680684907304688001773598019119714329640047839441239904049206956823866283133569094095632915950103474915479096589416920161267563009252875371376072079841747855855982545450757710556975027468054862669278609716205916992224089177216449877522157614929893889301175648166851881408883540645602418874788081438176725139206608864435317248635427948218707379804920005194035000635481787209496248786739905372861914751221952475191055111168593558045243736907269442853886858784720129485172453705682817735177254395552596882805788249248777273267187110382610317912222493239933446139346968277205008175086418603232632418777113105709450537802667158295129195043797461689135860281520461261502289253138129080366635053744362546942866405687878322231049106238959999060819469482549430169285410821846287067451126953082571967236042311881696249683744394108771728729720980880344636565917022297492107997775271152513907391607872609730816621390310389418715628203864360323606344433965039570082354878142074402333413284731137174626398382606524501089531023510137917231185509073089690712853699118912856372219029106501867181970100508160372098780672630839645588862468875737881126585231963637018643776620462921811268264710302218059111756682914256483158813358102956660951094747077900896762022038749123789766711101514442337097752497617346465160167278749343684661887229962864535749408065267190610949813637692742343073832527496122852081751551297733759040673266323618052975964979751136794255357251973846225302281989392956816955438013978456488506183866164439409165673002689198308018319158588336259513373469575774037640373178095561859547978371663905213884093887404283867844168464138706189417454567722786794889628436614897446411351938177926416896041508622100489843380605049658458660027883733831078989357746191942418434274744394474281685133343049813514882170469776277801143245464310340417917373970384810570163703576809882075707194203505116764254310448888688827218915898728457754377878384872215763764281805877249429139187341195846307246385929694666763736041358628048938669894608466166885020943409813606979153430010372740504625407712951732943162351319762277854286337234063236000676246637857103867727406997695954823332609499172719927964699923101630499439001566081765784215960896998083708867472552706182389115201247288007922623788883545071025833984642846795879563231571472620740102078759020986131369248040659641908732972448894935844486738119366850280936441252717996150275667692467853723187083806045347800076373708837995226296596280091483245865331745697370578465270918637526431730520381549042043063053300770399297349625204321907026141377981507050414800942251872973074190283501157940504358828337284746149175576384529656070311884322445360437176377009956434383484489932472019248897926682747447196504486502496682300177873950058681124960364545563244604821081902574761302023255265856605287113707876258039617650041177910083175334547555096277696261440979748241432929953610774130752390198380781829810464586778407083392239868001683506378929264739574942528818405652413986438031924986706260976703291959468238126951969549283002285485639665950076480528473738076692018132680111305386645475755820804335785965732271495982180626045636135119629162433629332188181535486787377212105413907061318372350774684119102995576554365048917654970173786254808509385412010145517670654113962179291771533358489701083679025121591617751482283346844759479389004973673571808292534258656917154470316420415382811825656493425319312836337386026858163202087374548236407698128971315098440694715511638327067281120549368403421942177738765290522255654515418831373185088744890987660347393127144790742577418452604563172387306674703480367299544735273733063070461528326060467994064961625782387617047528604477656147095025336406466074247278846396475191327339147230056337879930158744088429202959508926613012032817529052287921617963160273733233950001412389891658642942879660429254483436276794157167296890592597564913454657017739330622523872889056701027777597079826498176492523929523145200845197092740828185623721367202674845272067137270135664514700229089212349795693657837903693495325493659511484963858717588798794702507038946820264606015933099661258113836906150136803050433391963195121361539515424741525606772128898185313750155863025103241014090289454744853427461683396984415265158768167207610979637226002662844704556547486340348298475807257599853896934023154309162348522967082543096282237302970592118091679695925955489726202466659339700847475980472173130944567887471664010116786838782056611534991418593382531884335262365926442568760320346497472341916059995628692877846939524941328035895310316731429872108749676782813481370050936659150580881995428754990363182155312682957253212097151238603836257510286745907476828857522306349291610067334405239297517606995111122756574178294535824690913980811125964250934223585132144369469924654256287591545570792254658746492166895875357851779274574893531213584815167811388463427547129113208006714816587038161917373887614300954138978258938125139739302992800431500998493470025727278623284932040694895973392342784273470862378872587195656343158325011461436453412397747192746976645298904519446795212263358500746465877389810190194138522261843426550621384382546973029210607760118760016836995761081334143900484544780930604139584118183857203120105499493082043086316207114215238045407894294047089111630535225383080051179078304353229202182879204989172395900684875368599809428076336409320215711619161328614649144350989495642807992517001012510738718516055826225756292101456853827439047877111351294247014666285929966403437196704020717572666507001304607470807778257077906006525525019341517437762430727432370012067732496385691161088462519295211159979716025251335434428278608749033791368282854153166551721175527019955569356732000146790658480615429594810531759894297145392169334891150765739356508155290679219254486801704230043710369945633007080272741713236808668380083447677004260583167481063505754056369340187163064911098058837548991082224870194026512110420066690629370095741818657358165144026768931818869124554671830550287369985177889596118640968779301758632065845660690998098639202317407809757660812934845581087626727469439990435837190400715428397117869604196062826449409224367078314204380542365981578930179486157202281566272847543307534962020471526069759396746519701449933858430959059650946500038578655496141688539989248450933131192515006029958401444453874783474669926189272908302708601764771135761855325903763451913872097328421049947428255979505171783124214390246281776326213149309576958207137107596567271884631103324936230210973714578585919703980650513834585977274463165402179462076395972680163625617649439114437963898138430848236966824151876059050960979705419019574928235702400182043370067562808321071101318759293586808424015256958056103754473999893448394787693576664456294956865134349277153164984437082199370698324935269636641435472655438984952128358709119071517846791763215209143216568187755012930523321794984820869367374750013440491461887398292042494129309616895115783054313219390555556428777282170245153131555390766197892690455378858436030880314184522066575183873522184200917287016953680967459264251956255472782491989739115620771998086265521218387162649708936425355852006592874970954328454980776058065722386000629724636586869494840061790684481704587649721278491215360143105676128565890951336847718670183858522632280529051457327149790868171559760897442136805564041017468956184373260290111722342389825291643957465212248070758940077019997489707414029816763099026808561827458282921920007504243477425578861238813263646756268591106691737262005454332171171206662620576748869325668320691801638380132651407148100325693646283015622115871237857523955397963399783366479913841526690624061053427526748231892871417166183504210771719759893707137372132602493897433252847893698929592572129651618265640148830476407062500349293161182532251862959364874868887426540294288658880876202906867125543926891481360629358141370900898427714086733418239000142990963368609044791555788979932882041696019979782018015796787873862645741039554070756074750699253909021008033440338845637960813245836944985139588571328186457502778956093560777410541898868185525939963532934039560472259945137580625039801505189836281903348435552712063286878944201259767716856709489875943606611034014221915907076837033188634476418353766505990484925175827881582225341211576660208197606862308043722764504011075560947974398194255355955803247938905968559990096692351212161742790373609674476891678488180546679692153889613619154068851376467656103230980635823708189067017305712511476277035733861328875289110282761712410595151468638071365407969590632374067454463490297185515407617041123620342672786766293718827698826677803876392109463050493707586275526910919212510916442262170350420645288536239805823057051682299040228520885501472215988058363552893211611950417068421523901489674718633657582149129031602118676318760516325836828781672407636188712550132522755320540783693117165693517671141022475090578630509818729162537442502820056646153062900165636245625714464030571673529130206420109791873589956803426093819781631289446021963406291727760384867023571326965492471452809396853024457944506122770396831040018855340712043444751729859565402272986999903534495145275280092965555871424221909233939223337702596042740378045404293458975090055303071736842356741031384163255174518977360748622732237478024621343026839319505925301464273673926558235711956770367085399087124777939592014984481971240543310120751059273327331521624342837482376460447988012152811422031968190952554786825983792878435415757094022688395679609813494827123217381257791874598930333192650667977630221217329079974986856732764385004614960746131941780805337004704602221238733243796001985130977067346830212963050971842734436147976964693591101214091776215019508233802717474889760347046039429583839582103110405670209994541211621970042100872714938582259382073859364730892163260616129770935547721187104373296491254814097993943211925468030705630871780912222026050856615008987021894549348917606192750983269510800795392012918973740822308527494827423312541735187186089827943147730517279447913723040112523764809303697616704263061116159248809999368964024145612668944308974874270152977990736310683718957126419538678654088528712912221970894447920834367713150315145989555812569080382069251476330705513619664935556447804402385344743798879855296489580785649886398321851775007259276078761633093282409602029779381441517735629804362701458911002255891503638983042276410722307716878670093022443196573271130229002259302867672867740374316422644731860908471382034051803467331253452302244342404654310306524287023472373818442319037756053086345409041641247572065515447364050190445271483606541793396578543453037814849998148702134182806395424179460158701147984836950380025749120019694443012011282643891077372324914608705209320797157344772053617001794386880014384712339099417507361834708145567311562975395227306564724965016548926299108868329866585994176229699616471712695555260048272516299257197962525509771133269185088083050660023954218098769269877605078621524650044100562385158012379678929321794316246261031075866014415270417893692388834472878463679296856816607278919163466025377457638039964347908150973580106192062723899752448264662685414302819579463791201748718743371997707070825137347683320402458651445369697229166253349093364052994475349078192829191270667185505293416667900214569496616323917758139592677534678130780060718009419393627618831162974312073504470517586252317103203208254836597075903213323118671821790913157463536549976116723296185577298328230239871513816702323924310755731833907125308390032683418513417397222255927359966507610971696029532682370995865684166129879506937093508924022595137333301208873145560374298382392961540661939037625481382379233681992111196820950170073223682049568937535863793270172711175379575993501074840864516118312610691547682331703375991516644451697618053828561438388258345017033801601645627178013754105364009252850717955831692316061835452368491399196361157845315294287610559334084936572156884325680059480903828757494956857005242949567929025522286543632707569844035639611496681836283149004646977152363751921297531669856743760061810139193167806021113745835700502849600902169821427949192711256434764215780367860222145095954502528065915318676902225167596443439261745189334775848652772406455321514317688165982214592231216270713930211150756954702471794907221173155297896358521358103044878025960163375097769998655785084536312151291449042441374376581451966513927067061214078550849253644211671682404823315971323667815846901921293840949485018585511541358712606290977221284975590424210516611644280051823299351206621082317081775116268723854991711141472740673414562825636507313172597764751512759172057795540547566400247427500531334451234500607834706327156412529878081049883777953106435435269695227099215990309458607254047855404445775914076735541880871806386695624579655687825069998264249572812849947428821862298949178871750778609618037220956082063922194908738597690092273420021517293912052398905498518740123299317174530876948595373951987263318616453590995772134247374177406792550076259374741463179043806603007617831243817017965671527203868858155891841808470273580622443644822786017825973399099151811898856770934509298103946142679062296302925053011311492784247455755470322449338871225382845440906011583675141512605814844113967437889859537618532515936306688897983538954810512506575856579111624723290838239090426770417615707288170374260253956221532095204822402293842427036713934048493778363113069179983421998740661150709153790739617473185537354795768455836192849730395409382522549630110705722033338109264785035250539640855028118258688790497499133216938559633376824934352831247781034701272918948089012321950914234459518679241773527950834963951265898668866737092349647175091218001524193374676196396772108654026080933374436549165113529608264620022326674224147026215516823426711603677388531487287335054770443303079007821200747418934360425270218507694182653415878961622591861233115450016393752257572874592726800805295782715195586170004270716029244850750718376623694083910208500668713776518392217806246371490146147771148773668927702658947772569661286989760851629227170544510391729939877667053798841886027295326853860417090984405195266029215707331857028534714198021696971205413839221469165098472198673268326299696110257613938893860120959354641606265937857688641557457317634855175713116489872468308639631544648717477883678579723243241449403563295687915966063277714297862448503807144517526759289556441524604218656141456129945099298271466997198650391737849155583074477347939214597969934742103015418136931889357853070176599868059076301250833340629558178741459754751888581775385014657462022706464990250228572013282833451275268877530558560049849630465174904565864482611498968989656656748557632821062762688123480815678266790900272017878179547656695050191096019341188696335374134952155721703328234009439792657113508475838275528223921614120697623067488022719374005073091021988798255121185784884713566080623469227773499590178191891431227235178043753813180736382491261028320635599576867785050263031902293647231982819603694971872831829498457081958494659003968640331487999669787955527444471876694403479448351670885330816277554556210425272211264593536757521459277313489950247786179052947248856988999137612777533392426773608356918355326197144491388944543996499968251351852323139831022868769422612008627695586078731057693292653864345312018561016957190808940690912717170656311776937050020173655850601026182849771121912991384859966324679378877747690498719595215503297697180521612488705750654337875438007620384647158114633879429715237057939721417519054976679145763604067311609424056167896759242985780867480290440570010089216909585862970702773893290908735440071453797033568251717142774686830382891756147477001498575256367731385370176085460548530089328665282852249134344221281959486348218063347303717513437687973748240985870865359557622684638611513597876673209909795746778315685316067808012969018953244957484119063277837708362890924202039585337265490030809947571970240941684117951359529624935068409549809544687466684045604858363455574177666353882787953943103449817734040057422620298535019497283135488027423041714477630755069262758396547331500098246133355867817102569447653227773934093370129469887403975837923824346544050236303412788412318619299318496951782382656861188770285836921545089898318898600887201396868767235885748028745240346055402885321209452099560469446357903439791792270227163474745496534079167677978811436176444399828793478940805873133951129852322688469526928699000939078350849185643543180401536022173476264540305246023767861252280232832817458341497716975152573121162921877031233644484122957619972705404350365086933886857566975825199398077176052101291982633139899766193495272630603957754153860338156870585521392208374448787605541732146904906177355405294305537414423754587919219320110115225578126817435847113120055016180832836911339531603716950455887782967193363115172609005422626268834063787628981369007844258816468577832342909440774614130591865982375791229746264709148207290207132284163492354619846156084098485973431778071161606658526013564453359356883579990352617586197819552412560315042944209145600205801803848063300068263933673097411395008102707994155118553779011310887597811934132915157524753158867486347048456691487257047937006019384114816694159301305431512629115143553445038268583046119068995954371939281120511905636460703478167759729683863473784604258668497383815075830073293150333265513048919618628678510041265039463976678525118077985115340731305899214476506216013395614141943019890356845415665614758022811959627346336759571420873988930522949318980992736550808146849545854554616993500958659518137501134484913131075641919955289803316690738961965619879922235347677627141675790104192416807383638556464547346595400682712094929783609400272037096286130035776040520649411621935318774611515231558133199660177519668451649512444497935671971048601608270857830904883958306797801332489277058760615901883041453055972276919006110580719640466600490322033904095477725927415871781890311314023284643312529649547414724477257214382727220258347402996054036416893292657287297283951257573577757039062999295909988586588499186383392960627887421391814647325798062061487064324167106932109525709275712215124587796664134452956251665734377968087495009660369799280398540855562244189379662080802653096032809105991711093584015393841515023228858732580898800671228224757908746060342069565516749686126861907371008100719889633327415064919665704804256201007401682810914232655672148706348376234970954376587329359049450425202232396123280082775242251718725452302457799469427834654539944904208211959167436204429838999117774649130578146402914706380493147768503646653074348270611706263729136087653404044656114689902293874235796266092280784461188746686945331283683451140908908005415027136773769437364251085794237493992337797376476199602469034916553117423192659453034898621938376422290616757972974117489230622138630241582692967341839837174663527143394435940669817449837721140090314580802406151725283894721408276301363022611027199986721404355927087499264139881253071744775108669640688613677704181988773421389199400530481319324985001424861938747516636072519028913265286082532785709537414102773114399040663953163161393513977905615681354500104873323495042924202665735493766524385950995302482347403840074147634359581808729691091282598495665450847383362757222269664041452784159144723475559688896329429092617046434269607377827716756907937094030264244034468924606193635184259401462357354147940822751787463199250808918587375100354717376673390367982779172790047040162212456584204847802641578121425974311748078369435748570038255103049888627469085832391908399678474544989064777734819447917129759636960749634698749207517820766145863352127072573771020503769677238731960563989068704972337200484556562357516318087972309472634983037437619214239290786776437611661241976565580881374696660219166202805510001319866519570019922612606626249114105631396987220822140838269943218880303204075493821253278214294819595707723656719551592051382720023582101640117354321598880872057931267794937844394580654670421416458547551826149800702420389963156172303824282628699856415023743392429654737345742110026157628164865637039469127480207173009722170974302360571319191288318125299824915233039452996218267128547810234836774754649045831063129273312373543297106493725455862832090173966329111851892446608290145592587207129708283541361396230096895945757825845430694759352226208136243058657349345247179471314856726749709363811311781704328923680208351637926188431798142536186669916259201067291219163227697139171368652696535430340586212099159393605209972193606782301791574595418960055948208589446529157738554206882506774168721934522076326355234568429461302366366332981351772838424986625447524604763080974166026748247187357687389090854889345022541111229838801655066472079754121481040432533834148347039811428293009583345187316377797811651125426907818528591588092102417886685233693041580256930180467467621422874391921540104523283988510508518107938119580923427209015674631103386405000980881706772388362961740444857511216752235646732078238199440982209365150007390300429307230922210695037178845043915886552674729764377520737783718957965749174767893063310458173249988235947215759276089608099008585577442839284373428847450613358206576728651183692215051449340509422974638774941843311051914713737291263363042743747445952478490239932516474135689264982633170142937986006098186763284681981848598671252424410234702578532221158786538032585879961574941621060573235821374655143569373996305186295294426136436332188549668818508829397691009210072691621611648537878352821230468710464468260979621630931292792009460307628426064285031117973447172376242453799492381390090547263815930402016220930231870481089222829824626213896165979312311178659114935004960393826763131459350680493939979499368840394721442747196749337162808220992011694440463235803303204439013434296986424247034633626255726630098602571925160525206262997418206477265480897687752715590822133055553273372354356547583742594945710641167590496497331226505421831805446958252347122719755627819244610062181229462044673630886840358958852528220156547052924401431587177078942233442045428402983696192371544967848984926026842833197961954430153927924874001862039790596061469135133284196646292833673354016533068761133016784461867009124827227235374052834449644682364165385140801567488454493172632603943705411945283966414683948569420552856147565753692524420770196280261588034327007248982278275157153080490096740149182947428189679358834083849074925306569418684635507234756073286351438176094323390102724581881258524116386294032368935381917414917188761415219502003825925524116757150565810264640978019832776538784062248083626000494898657273724376532444932073793575969624747157252171759342002750739462545902273258694170696455287775184703795675033725614866732419349739525569333860559734748544681999608155284148694232569599892425211873012997906632757818961813314600954058494969795210703541893546399760849095895953049242895912798129774787717960804719328260443828320863892276649072410977389789799744319199737668414515278151742151570790298952415943202634386212326285883049225688028021377710320377919866506291042377496989413679043795100475774438108442329192061293809889285653665463927701944331204303061024145373465845236937148849247421098072728880274433258998147167555851587943719533929741643930366260646595508835398974552914759427366064140550631415181732063144624785989718526541195290472515680695443678783421710716357951126553934636356023743221184072495409459781192211590156066971041786260840228487368043184353917549849620264332945479153959343778808254063247530085757663906671716721513410700779936729512378780861499224431901450705572937376935183273581358745372282077437402182703603215536654019723639872217590457014921167649269559844123856942386703793350220711106896530713519102901660335286308502379390201663920851297102433781495480747671761512712188929456331145359251415777480997201009423366109094352225297624366546505320745981834292398866621612742614099942068302462201679663572935055659217936749842982822094141230369634209791443216208632289846771015260771227373963961282868019744544155513862219773791353457807455903619222838282792964178697639302422822450772820682244175275262919399337302273010086783543936246526109373527698515053040434896696463206380138923191414672333147168141896653623281787119706320523728897546749865030719929871516708175203788035409466189023504845197888467227665854016874650139523593905491413661475810636898571675320465721888718050373869770044991188926618703471657522092659550691920360430552913609534893789993914889641028426417707127622144667745525707459081038957608403642480508028524495669190558269187148088373445674277644806370270635396292500690931521004960895874846339045099725721282373010283388386936275476594859258560605803983255624043943213895552845687618427270753833280051697463077235536720380634577309577366532014210213263939764489972062191683539942150085137682533886663305396792411339513566461335449529798785338231671843603718345364789215444398750854961842982039541667179354761005322840920593798284636079503360595064545347645824656532957462680236834487838613933072370938451083326725969524734137993999083118579751467672117735258654913751558141030046065148097622962747216148982918907695083878215512583277902699478886640899204152242577090562063095774370670297206060313325910667290038264548413591102487637294799091219842825146353028602757863153197216475381091280715115861670558987081323534621797945077224539222485120651995096030408874100765497765473114536634547289998659672647262468073222886523922991171765016624851890321265840839508805533420062436280306799789106481766377410201636526688560081493138829375278896883687058788858833100474531265844713474878606944251573014481902472485564896604342582193855853860099722003707322469537124927678732999770284103535678930988646914998587462962255702965174525409256094521731247210071067244100383681005363594732668812483436701476281683532782680955540532674708623427742385121906320083082969683725816201351406169074527510013251808108883426855017135261193404433969376682917435314781392630015159006890591159017398944726907537160609749598340489322673550540700183240583592877719571681207696258957052212198105362719482697375220062557076473932445546961653823043965555853438164481230968061949136794139979879078927622025005438606398387531697498646650878467441757497094690911823230683325711106383709806532298673693541826858325590320713242108834065078130875339420544417604762156034280908382802328229094692062472172494948424874491931995871930557389166757267623071781356733343995814582068371138568520929719283454067266194543431322956211512171732971628102187445008319446130542732866657819380225019298021013217860069750432635546576663396355309006890225956831130258051509414059183748150352628992284328539818253404039883914267210218114361743592275324245296873286100822526801190842551816090793421096159581142187071143909184298289481198394554002732427633478019238650124947718042197770268274259506719280834811473368490730634123708878670556987122161051392488844538436040932132852734492083473281557385280128936462132709494336086755759858893849578260325822271668531216636219001309446908524638060577983056699133160995727403722963490050435814402883012744220384516339348076923798351609165940309450713881280869227022843390795145997042287431370251602008793397897629037708328269353585847952263255416627858939149966664410539518485318601965318812147788861042330198605211394400846765497191538312956277840706524998132587031423480991651616447661993483716940707069052554406156365472932548270258570809807494706374592897956831580099438716611526556193137280448997007128001476734513544169051832541530971248882335964370337975600802844324920675640413887083433818520485009181771414218595528790595308447421316042349002397294175351813859788153522028088476356265369869873471016457126890898203004018279557572630887820131899645663230779552951855474218837575563533914855950734230498738422924090690076917398746565731519384812996437739453244223859412932170187312869113470696107757038897275398229174866313568408973123139178081330851962363529083478949984889991912935489272948097957842298401659953151085779619443782498721307693935025807951155033960434320577217643575944903733337950887112229012033523446011621476517474371144987668644184975918397926860859738758778924867823912781278514449361238747992943157615036814956086866424006904627944969477670772554014091238549622081892068643718830257870234999926896788343473024269884799914956272029801734087982552673337343717033601372616790655271394365926526138432300440201099038938028205687362797144054159681930771051472745403610037643550552759174167661125399775518900569764415755751495336110011182261749174622980787078649078956312039207303174117927513103672931901550527482981132102053175507271969125141898179026756111181984131836786664534532189184089198802343697359955316383816297631119735839181528667714939292810498648974468104090369273387284028831248529352585012956218922441905742862724415051433246216967878890556388220783511940785625626587824683958176475128267590681344966254103466285753066013298641439895212613579047828187467890758348703384221106265384214041907636814837173053220738484923087302182159093571913297225364831754569600595249015178497267276469251657031527388972127242926932403120903304958925518662652734659692947120391050001749113006573062865457252634160233745710603643192866473762633618769874355511890658189171918534831379167008892414594550092305521573775437083792874192063760024362097563576616142388175284337192171038512626878851253844371426880521399514498048907391113805311127719021725500811648033555202140499921489854555684130213554716788115717528916577454920487456160842243511058273698392199332825886930024445765954612499405847615512539852280837234193694067010475876802853410642171272192276538809485057036636462512565591043278579887937280045054980980725228406612909443262801500071596292510902870955388913913809789825514009767269190362104372206924928115599571893402870260094500904936906764383573502941645746754087277173411377395315755073119432825833922874145587050895535430230863751807437472974875793752256147012087054605362707481840572335360394722329164687497614182598444032219563517388110529049733507459716821077053917738880076838626861816831871793527745941850940277585324462002494571437812570781806762125596522961823208394565035297906112591088971325808158626239057517412290704682661842994601286707090889944212823258480622189222670575698152529676468653410549867933433006958768749115106613748812716497667208741220881932691712859372458122220071614716979397836800518681815717758385139562355459945248042323851157674596220113802628085896756848254847581331647198084568319763303121086967023175454202309960540506148647883822331973156800201663606274385433117986437992061658956690241882754078709248061944598298053146315710058588457130319114827938118937020404054673748017819667817611483017748734800059810625491327454269373354291532764254857015497688584401200941481278533332399984982138631412540750747687208133795126019933918290635234792616450324589882547043610050409136908320669011862436632114801122522929428509965896231068746668914242997879103548494599128879483452748621984031456031806314391193672840711165300019023001134382532407408591027016817326511678631303495074181296339593317408207330318076258769702769757395488204217450248776061015935203199356805895181346035129073943792626509201012967159935168416164850983435672453962058702234017696752464092211652779398917001758017884911383933247129792461048594020668488814556651879804058925915340871782947314142775206028325666314386903077342558959040283675123616777455152373120264001381084173449588169528682333935003940132330418874030762567546632814203392052485974333323933951777786065956859295834844329300620198738278027349787896083053191444242821916578200919445314871335707224509859224046005460093090467489110202095921017265330457956772569643820730333491363670630266004722399288699383157667892834859703024495963441146576848091606737141299639488808585961158481901775631219085018257384698640583525198257636424190613314781087587888131645991739885026701695242698212807839084494164435963301930039345379381167896648759389043513258593734745518029969809562940418692071205946597215732288320867283883112698101388758264492989384384428561531982480089308217980028746009003780866774774611314255566867990090794236873211539049877068086488029968223544899368054340649436584085974989477768609113548707642036472430443818018787345029687769470068726038803665586667703722810476886300153726135687597474842129760600056642559209639410270110264300668077895898730645783303826782980453835647007787094997743555102422525240643702629103067678121411018911597864096919613166975929929277406685172593605429841649195064455959618487035205952656037439954817404811914696209597667470932814571339112895546816028626155474777152996154015717726248800640428584149784784737358729165800273221197558738882080833983528480963654611883313060190073058044416920759082397386118699657278645699497296702931436487277343073789352886443213126530353958887406940208666379356936950181363870176118182688923991889918644926265944131093793086521636068479965150112549488338402354689004162477288664687457739304462386918727555352226488272554387735979362499922640953187843079358263369244566608668708965292677863609885252692927766929996286271471514826933793303871567329686629125178268526490661844335943197051796990632888783093601819153681241514597606645409333050373892854125955462138024293034114296931347439390609453120864743776201432825166149995902089264119834736523493181520838986080277262351634882197792344689300319932452377330039325472876754692994502208125218977487951180808984484240164969718527995492787329490292180199754770693827386069049244895549596979546738619717394309953049483915815031589244837621196415372381079412220411782213980248980855308812433423601719515176852656307024416522677552004657238816349513991659791306746384160427116510975119610497140563192233390657426973133522813478320450421445517230446469995928291999732477265989715366241743214317959967124469668450105061631743146652722914218801917325901945647562635728937817853718826540615679697522395680888364453434870276224208775322288433005574965353909756589666325290102594715301031300836995193489362445034557684478838957826342416783069568996865683270209219943778359194170537670257347825119159636541679616996401037877230939757403654248533386524164869475090326523083769445444828470905207689120444572997983088360076851130030745215257822663813539460420644048962362923064306236856362673160736881198317488808771985357826205317296005627719359651666150692381629903114139148355527499259027215473534160928308325923393920132990951392411788712683331781288741513225468876478758094757592743429780294591679333975989410129358962238675298258643652909258599059226111508495823743188251196990514352719093055618538596734973298655584484735472657745976962002544017796885757470556523423320504958282416679350784388954931192992324807437893714735508959772664176139604839014710940617953204238848528299869557037178500416627109919132439697535015961100262001270345307564104068263342132549063012245908213677811294792527206209653431116088747279162823058068601315693793568089063478338374976009567470986415138010114061309911816903961024864823217007225064367084710447173175595542691279822194031270850702419982727977636082917913067600535000621216666149678574620896437381170544296557937668660120242720370251431783490413863156169124353720112797578021685924906601568760404608203863799878441517575101411822253122760082035621445461884581000545751963411154448047479510333116869854978182828532663435258031307306806524862159217282062690813897990169639705326271049689665430388762853767813027945486757492806412347491227916183885158502879819063674003019748570353844271250422144494816913099374766124256384580125832585733881159486068893020147089326485939786684584028081018731526927071466064657299651218402463396729770116120908571697864300376256988512626267028167087036905479420134970490775715587781255283447499526782897129021203784940739174109284748453258973911425578188282514669793480289435307001616369785676097787873100763514256431682888947917890464909061563607262900872366874467868773457787378277848714879226182500133145976036115899068419360935037742660580655367695003913202194593792420669910099235963642457470451315713794111309573430881407261816448534122871711878327690748872909737626764489250898692400165031533068897809620550021180941935473044243755639178874584949092809210665405328395144836508434594967169615502188042849232929300267493463908168562441223208033647596821673928125990792395057937922889206501904632191275054992210824569795623644195494721164710036237809715687933607295831581776729063321245242506222570665763460262477729093369727922782534145425014223720917344926570758985257460558072189581329258959914040554540864145691841689889418748177167129788329387013862101933628212442707710773856083109899254778535771078667737784859564343701751762541757959968579307120553515749087272133367378457088231578926894174937522702097140184696282375145277750305228511068552546996212197214545312666772443498964846941756252685779545494946384511764947160365975576087956764969316672461019294295945502469205289136135869260386346826591874407431983565205311316399805933360209934597671327910720681589434211050219906350055605702960263858518919285389570646749866402315051460569043779314730382974077351551339070736113776893718462043129007255285825231630778428634912750003872314110614528678065154624727584623623501889227400078770158456565713975307617315841038534864924573300259086158870495207350260534934265310348450261540997421116916854521134122954066341593337222525444330899896910330328554721150358540279611747629223389166575302160199357395050112103690436056725970038568985429032303276549420448087815384762874907434563799137703528171425845135406529849949872498987036943362687557304860039421497512246576756402753630600511994848405629152275224486866304260368132507549445161591452605265161808497672478959892398866161179674056452005971300484717429457829214386356396508107442415770054189600715424562545219667362419988563847682714203934011380104505353448030006259303808571033503022779570936210809868393166287607116542680870508708882167742799417122488074169864751409435301026750815935956234071465549256754338756662568530834560623578874779803863050684632548805718692441610072637368498343716298183553834812172106992862833213768159107032971134888454451426410632863658528134201306524178837508957507424834073245900631333753936303207288464479302671207722277267324037463763673715924626866297377592487031893562850350380549406017964738170871842048511433055314055259691872138491235197258833956978461016069032466401551598622831125172087317902946343600771507671250168159788816122853890324030990279268413203296697972302658627963409498750541246380197062864972774335586986760885948356591279101536267390661236154472516262384023363165338218657444960814109725858067302334683833212264427725042764729999926688764812379542038835377651726312312651622706181346863511741795375474244315281089281427262994874997349967297502224164035432166684285575831946901861541894211535595422894837031540687758174148730479606541027682609102303824997875431008177544034725490227671406482411717722196266407148561990053574993756505748548903503852255376694650968902939333129130528572221532532439950057639204952787019767165526465437587710615489625569119852562240107869784799181423566797020767835712767618958521594608748582115961244361929296581609386380925818978386095163438683314926669027075859766757897574898812811208225819597625230154861821617744280192304464771731100936503918095370891214736384185992539794670627388785317808218570723303632249801421581267484573494585963232682710537299157342202739375599369375559880160082497815353779763169521874015775133433461130003733917806607254108110395630136558542911281060256363171579015124898135553374353588832658756167210791760291717530713154775468646590116669624272058051100319741755622067661214464024270283568698702954687885612214157772681366411648493779843855179766604649088407640106158704054587822024482333672062676896378821330374729107686813281504837673801960459135202214989238199990059045999575193943353952460965848962411569536988136084269034244298555458134497422927820677627030777483062876763696526571243688813066834085041652566343823693617385418455380674640812946495796319515877016368139456193503536084923123454173333581123645885041099774743865139509675970932636497883931350467219045881641564575898446827380425108609235779050871151449999212916169869002992039092660762342923256971888296378910988065401622982699682797013395051032484198238921764592113407140534205922356308416057395815107794950502773453499956866907810720172322654353075384539004856096557824475843814109779255740788362100718739102086023670124709169453433959539642616868059917291351299248369062932746837263065751933510665792427302336200601892662200545634783725826472818458127483076159607691690913867152304066844663069548367255459942293418655238414223033595918647228971515656943671706682990589434253328366928205035776595808057855782836860385420025735293380263344723386081161899628064760149539809909044192043987341069369294060320749797326105048276775284060781120512482388528886760462406050405939643253413437382384356893525836302770349924916566204241334866738979104121760173966323870453521034132259193669795461191847845847301639026117549954760211514671463179857891194431433863200090323062286685402453774331123353068425137814468300419447024181969625997862899965907123960831042673901933283432052802755212706050888663368613618119268034478209149568952084561796447062343285681403103970147101199376621599794198794480782838800004804416111874358302367676635960125302064192929424848187035648432136281227449597999776926080296057134810414762898853109587052698829871199925843260523464905312426724721649683907579069884696434780613498990952637131636048471092817985259349007427159329489340834994501285500958278716857406029352903263960541647986068064597711686939609942098950620581429603087558205600248415921879683725498230624923702812111549040579308438403339625630411877574347908253002428666027974272013615740235741119150323061626468884502461975905058979457265233875422610789566055346755030038435954610808589482809204400067388119559407340999708838751201895760009253359425026092878540738951812841342254687244230735847767000853417866171793330667394437533851440518242023515843757752482058643255390722487402732204283653728669736652385917875143074372786916793343762986558144403692384867517724718295663940767122457772715312019060218593747971253987863707108870020122049314480994790525669753379780303576408191410980985135694208269294047816798245198683763900610563001276931581685919529804995576619943274667727615997277190065475700076950555138328022129536395701550745308756568475534558778326340332576026419876701095386195666363690976993942943464572081948426345722481046743745080854922790429814992743827335157152934678333992052625977253534229473710416371049310441250686473485861614747991329145317406365768914567195012169726061626586401401032768490251428666230304075327551771507113391130357596552533976870478404633620871113939729925068055617005992641267123150415738407371318889017278284014365446003807340314259334717754434223398826032982517506728260763988671525784504282063703229927611001323366915361101036485417375840473053904888752637937993147922487913824673826316498422510760837890590938867513426731292240934737610656915082315942686673914153918022039971983400887697568125245295245508714131300242854425714423246676326419519454720680107458134766882999541088648618602401106064665574506656093392604251776844754184919946174131974638603933212039465319345543641314797206704670288333663065802331400023873010102302044771333078239482254215791095561752984911121064281986911918823845898659127883168989624705989909177507264134555357027692573329033395664011634960230641058733743523414681539282412749212805494986392708215898765894935240148997121545755696272458433383062941478000649751206175342755653150272710028204064832313984532508957428198765582017226748432339252339880099054345183533970461178105482397526494099661447398670330925676929841680871847548176472257075932570333796875332540692578553051475030272883057257467660191738623690098056063186208525508637325330664102578829006651795243758488619986448053052722279519261956971425594771137818659037173989161250960455426686161954566953643047645286721801011826140095211595388214751567090008615088627909499712808531767913143094810139404601104632270165193604478756309493805557156378968342345926707749543137375300706451369353912903772909056041408784187530495547259315370810228730168586340919560222321484979662318812507123121910716016031976715715816384552375087199880183129956360771356375111109726635867343930577829691582942565868774840351243807531898207159545777115310546113215130260262834906435998448686917985518186907787234629350944895464554808958226674604201153249928501614520861922240783542097607611360160663128167295067283647552075620410711174130803162189519257058913369655122679335493157776094288914554469595500887586128517770106714367060190422231582660059639804848410982382346875874279938020328166666831050939791581643286938115723040586492431229565358537264686862047079214241380028568165726717676332229195167186263510003235420096581614924341606192220871743728646919598371257056254516897305156312093926283801678470371120463372404016557640746217470854582869569755759431120063070971871317802241091303952669009728554800738360404746877396952703500560116904584944628388218237237530827082404916779562682030035499923882751083344167711956966893476519729092758793551370531115759099740326306974494788709349366946320403690785101136924734178435685534579944549594751449949183062102501851226818892302373346852423944058000018106165287981519096352879010659219680550815404672463280991555371328356001824039915817442858631098332204934568825128203325906544300156279612953098297716763278830954024863190974473470702960238722960910831072073542100639804532647272979222968292662905290485621116760348027946611770690961387645921620277585141421902370264166166193971404855901509720972613676937560067061241098166503288516138906148326214279538705976227947559807806241032007345392622460423484011306112127810970549016160136848408430059103666030290926357490067338850245689897972734839143809793301923846227765102804484933793632541820848599282122363695871803353360800476240443994721728814536695835526498508046649766955272044862530340059473648165627979368896957974040685179282262954148402559229946807640980406615864883665148765220819748820285840510288170110232291426701849404489311377266337204668704795528234739901735106589102765962794130971264044012743888239315632499186674733966599653798644032753954591904641764416839483295006734362144993684297691028182722885218060529474792042504912770214884846351828014394777204363812208107034781781462609622893888143942254726462726714568248287720220007097426507387494545223303059249484870787055352934539149702226822158914415206816956339481706481207940455838160065891627716816878341846016588579641866665633410327863425710956700122501834580253656315749280087983902489819399570620463790930116172476875509611085327921381218678539512864962560685018827399087276124989958591597941371493495299704276708322161762211464538190128551619005854272327534659635401472733324800292894856848947298599685913219772794305893397169078597593892002347911780097789156648796908407978783328062468187888529265924203374882889425007958410716410041962848327905268660332717374800714348745022317580314529212580871247495789965801720173259851238177180499811675552487911766583061481260912280924082271519140541693011889998953157864665721268866862245506318131387266463410214470978142747199362422514501925606674715527222203400999350486461439322814780822133823896758082345769786766245050961524586827002697768312001583100616562811188582693391411250761680197358675345062910388354217754424937525373915540921771887995935220760154285107143241520616117159965906464978039136810000459640598509807679448786262706928116140823014422427676595199889768942415746490310907654128654175492749355759354978045468608137177101566442095929363939961334557300035455097433169885070057431287364067205848374489902601158423838591073057109788124495960389543644529107676699132042203170597917411668786913477870290163645323146891865437627945115807943529557394870812810114898602621716758734161127702415426531150269895025970988446192350927429778763057183572108068577879962466059297072449466443997990303327530296399095284024929296009498823187130291870927121508493721207413132080702553354356953929514517711262674931844778788095626305042317995916591117943919911274737615960042998893122397123888704307026193520910604182632199918877396605524595736168887612113062235513485397379970107226593772721047719336318465598688353749042171395249279578061373316341433354020167558349743375263602940872868544602914579214759162860804020795908599721858839638033930002372621855450553447074046245095901688154110345509861156470790424151171218197764812678369011376058143995624211137579365500436678725094141386859673588699789623703077133825680941742552621332513166879595746171707913146950175273664954783019403146396428077586816600185692204733902200079823674558269922185697138647214346888486014624220836092663897273422484309627595941845707406137995274014901149624465271945464687155085010038460010999924787307178797099814113609334159054913616837186823800353347603856204277549802880362250269000835639344964646827657007913282479534431018727943396744792636854989939054678018347596307058808547776238725888353391752091950574581955847532507388344142452741844312031429866101941635517494164525509629550531274849259250452531009204122201623778170809410573732560045832279773956372671182329662350096050314402963115222059649788352121072207536585022736991968274640144546908550076254507514201211580378865545926653809613727562451121434968021362068395254268105018441957937193067301489594118523859856860850336825728511706241686690571775554205919448716714784487895952454125101521079772742942863975010740968391641302129844813878783037557585055580230390717353973234794297138011115696711029586246903733869107129875454087423562237015196743919780998624998763992517584670546475541504959406635819887963986204816997753245048770759081804626518533760120123543758228991420596067815349842407871745096835017564815785872442413199311982879635941077779685294008825914544676883135693278466673271785067290229580178158980127769949494673078403555623961992685654833616698153562708551956686078711069909972958780520627318388689195457446252842988601591817947408055547887613532584933085941589492389902994177183923452664717341843772959445026645746530529138488509998414799166662589229549538386810728778858102348508754426530953283411066616399064373293411191178609888527685166101253793296326412980496564527368877124675985942250885359542671468272606620320627456057650783088814122867201850660574428233443350656050319231653742477204342046726088606667911191353639653266854481030769834643051030499738785761368191418530617116731763039957751927565899476977046675680268650944702057697226990695067477280779945685021305786737865667569103858791790230379581765922763434118895474478603314351361864753817107321191512017818493675239232091688877203419038979498015689339803704209681932580451965708022408294362154278741247001395080251059382206106545117846895369025540183024076301601089071262023440579482388549160263846795994946314614834859728290827529296484348302603935865993624962936545647168766763283884520370180424437194939251528874380699500101708020700004233970477621007729003414748775063521849895689220573982076301597901581111471638371764953223006731413085173883555622070280197222307898651353031903754611584417327341800458528080664664497915740439140410809370207334994265923488965533983734611931258865356023329060537910041123505226542016799960656895034339813021214800609816309504036592145578319841623733435828542572633982019574349292034293771497931039789430029293718265805009292041361418469942751168336244161971803020493863261527443925667788998146462159585732732671459194459467294744760008326634997945864025050399172084419134459905634008674180123944048517657007164224997651395122672794109066585871581873992052708646449455917824504779081093409907098259463593129434110754141550706292128091040373724040537722989536165857841536957058992067137612034183446296881165836765396407562559254656600428726101126337196885882418231600206841783509663109234282529498263348225289076459192169848511008835091428723504032881910553008051930450660060749691499815402249401707900434246329676361552998631970711764591363795790622902950446340233459451612561606255220736803205750654100357569298554565994430861017954134060691948015106474005027505575107183446897434175599649075710273170897044931288656678314556101235547437589113198924761681355360645591812476451096809528129801338152269171563156320008499350379237314712300363312764112712954165839423536315437352851164054066434045498320152195624546091947150977924505387355050024138520996322178377798570055616328382476398627234747331548716498896995733313343005962028499913942163328889298132957946900094032922461753774549789890563250360775935565725135937931570545206267700215316466338244189769012826146229784568710726817855181228597849992263498248274058218707737697095188155345926743082368449658653122466906987639244076953115714594289396269943690038441825912554029230132501882231650042364952528295178771570029592961095659775870605639864330060534242150483711436551357058299901112757695345053683587534280452736545276641761476498831362640439403013401610811692877925198377602286578589689179699590385193088557396323529593854153641765361139046366486889883016694542724661078217676794683914583005497744265485810444960509751391725374198954944546585929543107389665643358970191892468190618584300747261658692073412081573792423365719443401082461300075811984737410075896375917331901814107692589573928851481784072781877786991387500597392809741495819906858211152400860841185601114111243257435935943336191171281828414401468888139836712362417636947961008158652012815084884950685300912260444617381949029651444209206616419936605186869200788330279961052546127475480774536161646177674356025829701180467233729890776969927092473892007803091036301991199518238846179321493036909580067540822116235521781392781311618610924656517728007784991128416513138591819580416172878972591967362058571066963294421365706263868747004253072180504020669119591009258094573831787687612234407973117517511327252471642107747854856462211902566359158554926110952409446564704808014886521140584575672777037952933352891839005872634138832710696440049191179343611358884264284767028523493727320475082259848046581398263506684626308561602946695670359487182094320637748666318964065218845607968560854957711465437434167666534139910574791813072834195579908044517625416843889836271806287649698194128535512153051716740167980014866955412256283709891819165205149107114303293181493895864062018033981388973356110267020091702141253775674648204700907473077849914292839182155320750148460386898379652779523376816030273231919761406979221158616741761699736741325462411308347787480514257680326339253114723109388350909489502055628868136112721747258804952217475965612801751921394344183313403391416113985676956776532080622442418963130335317158694696094827293054897051256034297080493035171353930203101673826143855697600522923229764636464751001337208357291911598847852942062201921216311945689459439991768948939907127586505571803370760333687352161136542830116277525682874874396532649388472897923188724002300553740237804968741988429479529605539462968071059945850221796997796574102981255758679389071817755390666037838216578672113743248034679144421697207694417986761229949728681198728714450685059898732274149533653579815683746203217626007076178195006787064298424051520119647249464212230902588474411817326370543888223750450056569520317708630215921607533142851300532099141230080953445319505599241878226486370456819138730446093833013550819745071046547817382112926801929051351726371323058357957278812827806632782626449600501005678588253230167370283922196660550462353489688785142667125579115333131155213351351082531953858640713201523071283778845959059217568065715246608651141355168663079899116061651707036319194771781089094523479857160538838262837892914042780750080340264149340665356422288525258502770015382051197981775832224644368376004251618795433971591306118198434740569143515658038909297786685363423345374231377635052572881068011648981191184620300928715432577180523079490061425756115169092417916048553811415860614968499030517163079057507715799821127814514913113022394182319244821726616080374919289529790109731017056013871361990423250816509552524004520210058710954054667867038077753393184351938832996301519028420887438389000141171894347247192877419703483922750990937514869465893190727474920271158417970016650838481771301666957138228906255414136508476885413053417020282075289256995898776032906944100439371228636575901027253848277643506640927092789835063382738737845068116297184337069586472980388185053278507594707765207362981326425521381735033793674758483353804088892693878866856419405890781794921259290838509869123128293364758112755115427631339037765223775902172313587904695269377602020300456825965704369842383243997051436018403870202756938676772389840739661911156555053707088016879333104938741616967116169792000486694567094145101964424637426107470969738819271905539823881876016081563254061282913275649953740682872340755545503228281668952736092440898375149646254701932944496512098617810551836474339539014999011452309856407620788155595379679698853999148001893010118015171543580700703129803284409010201930162856970711607691027710970539275085422797785366210560373563325973163290693005590380410559953980721579490313107237451736883527242671896466086564478154647568889824077842508528053126984918094791072379716126307435518359047267162538161896884389042394730176085341362314935189861839823553539761054705135338950424388953026673632023333620511195175761438820433502733600419220715194758345379213503702014316588869648376870019261741175318257772293348983403505417918358362106402189331440770312538618225076750412774097712113209054014335828936215123975029265117686237434188862900521121123521079188581108845089673797116016236215104943525380644475897938775642489735293724765208815333696363758919607987247332929260917937006156192088501579637276562597833935199535111527370841019379463877860471179948039329573036706686585923623607857771267951722353967955568376898357501305065296698024017858558656066927187992642511250125619267252050744172485333508783323876148949622800142398679650198177044337466261643960026558948414283529906625175823976374226472587904723530097426055128520694784912359469674163209054484285312951670037723313455133662945504849221422909498844051695020413655216189388824731224972514626899602650175639944038169953039172615309221165932961489584621107995875500038839308457216458000127375635373939116675247075166383899267118098935338682052178998890354085410452062883534398132450871886287687063561469899960430534323957957118232188794459934879571915539036664372956895182282028116826089536050658434668158599216417909132717218348313538011965743093086993718758644572285033643007430353750372389692363593931491081090649546670990888600249663877449086698156300996596277892208643897168656843581032922341794848743526788643038318576447490963908395395644379981281673125318990750749370863625164924065337808270981188372985374225463029472612550772298495463612052840333489133571269632006634302674527340084908515631521544255402799086472973251811255400194817428209246959084891893912403748625322878735273477485221336027002947258992075325179021084711090343211056634333440765838065752297069796386621884354953849668705280748213330974991521750103507586118204511611199310339223988874763020395184681621847748764016726738226770260873104322415867371634670641132931552725460515948362431567078591980266692723099741224666791897259765009345661212773462828457025695815834277946539557571726468997672521722062766015369253962189560666200370677606785350896870940211662576031597342635976668281501104973540389014146599085328725906933471799133841631249653020513796265282956802001891104502542580925691931382030012120978658573150846911467357201436073797792205117226205042046302233189764923195792921992812845632734020920112931709489020801633257327910069978608465146576773394464349474052073225367158799458047232325851388449511604069947350840366319739549880963538853730757349095408813063579544551772595525041906654609933811259689287154214130305788962515710821153859173861463952366354858501384360346439538973336241255600177327881550803621338860593824973134323231839469882030580028696320012293079234083870152093676224623973135573175576505524555139835928466223586758843995477583487308873429177813400732369425581988966430854408910722838544403403487966480173486179902917254246695526796036994905769985556845799965694239383858227050210413904559666972091058616383985867377205977698349758738972692744896496842245614349277631513428598509732859117787592521327913392064071151658719264458542166957403665767841339293392886584367265503445069966842277096810184108418887430999987689854071173938012392682307241177819449712078249528745094684398751561500109593629103268167795760831084772079831047133957172357399918573360610768929039033705450753671085981587877875653959857109220728898117717217667197495464206623799815712084319957020347102019132649872899889150607313210433664886691443386161262573009339511720083556756387999105006749551859150580817558675207306370233102877592210843884925131843420136847505423778255555607198249315038074934341255175838605922062959456942831617600528171885034575704256430830834518248719895130631372015306698026809188307750516771313947270470136102963138301691760256393192150841807767807323984849296093272714706797219655333396788897840407817253001940586655251969649439618305163137612276610236836131599139995123009192602015125103679619974288055761211380394043843289208252691772634749156618369458083376306974974163118498063615896062791195109240549608210086010789852867722380530315450423287834350927605705483817742103865660908548461987527848057498733798596861559342930262823669619491174155093230084296142010378233546620679624966564288904676308800509969082904070167552979577777849319093372061208670606722781721999258671543124413859646132508852693254833652725702519133755089329782382739292195948346779968370352318844285871958451642354230281225051259757196261967402243963938570660862722482273776080749642271150640255366764658264430978597613698276458440680742154401281567871806709868165653853875435705085246649462213021593034545049237630001296149174805152130400313394708753948567724518216112019986260898613566192315436844841447050084416747953211444034956911614798853092419423917795866782512653477627838746784020502734091561166342078230834603841707378313424155538339459756622419817033258672514991784246564674198215140848976114077280730595179695732737028905313357673841365685870980508299128783485019851478047960526750613013994114746339666337876282850760630298068803917694513688722991089043431043452196867308087481935851357622518896879218112044674031124291194939879719490758380245148424964770712393847978681214074345927055388336857282254152645829314644085445319631375110784558337808770024801219921608682123885080526024035966332733619101277460155014830122572012524659762201546884942758661031288595425753635730879567099652797465719917863200350700475610687986585287652116312509576697535527845779761390696070948879806535661077507920751619023295030085438941354373860375474946232862666512338625329746253641768896827563580963991830939822757023538838974810562720550808907697493036475208295423364498404243588031010844810780098531392269371231134027013364270059951435413002092068570887535475943892228143489194612349047854152912345258547282204770859602087116159468490154435567793986464801794345725499997173272600643609993048469579490556890696479137517357766599899962511267471877584787889660523523672876192083457229598467362730014245215470204779440016584254451361948489542511812427891892092252067517426186238501291332004725720818632517254453898889217348993320502995145604809227716937154136992082091848709039586111104288154147236353470501194921815544691618138111571739435736406579240527658422458981704543196424817104680396061734311840281724609341887768969335978795281093589529935330492863691392093164196639518478374128834189777002167402390905216160257320506538482019366953352409394699994836786889029407425882640721271115666576027190847415327524653760836419138613005810022386463790020243436337757848789475690220886684662026951136147648975163014521443706819944416295577181367795383543090146275083991760534721509839411640094433472724784861931018680947259064562433327513264960009573092267420150455982697863335672882651164584827940015905937066068812944204903354175161608114247918312137845323862802951856305447570120162558901553818639006797604297674531316047013522705081603640215331409575766961294664616204690535793910582251254903609201562150661048237015183621274439150548241866082981851923737427870486346034748109687509223438590549018837496380610037961455990934312329931435902068671513836165609302786121043328816233280443552396671810707965552404981732624593919895936469619427454437974287737582964509761190620728167467600400556095338576521480705828158877831895642936755436516435100295848853473405164566795159103706804288894208409340639716052091201174265046413849910343328638105998296891580624571256944259130907658509689639294856228861131826715345545111635007569518980910195893370243641547138024039971765530234310778574535561905601890141339892840014543735674712090134480848543303937518472077232795827380804784596919757976540595550130930174547059018491451455113130038945600656421737606304957420783020898265003863858417211503697152559717790778198757298432614606907314583370658430188489677306648755861469195841300894974026243961757740135694882454341673005112153627158001395250926768440388688594742328788006084765421174185340232960897365279084364580885031984631028773183134709760823637680055901837101570384120799114626109659133388744666572524170189335575605905129237008245120617672985277646167530126500031727572043320395127846818493730352244514674261301564610022535609787188429764503834674364166729951554969224202163614018035088881255311329699675828597693586789974345931200116451486479715446708756047086337735406453386840782380657946809264802942668816639355709421260075939754282850514058657189619836933950562383531524895638672881089781621122918449458026946850915064681817784698815185669307764782266767194750797203986710791203850890496342941355200933573339145484525363142874214035384261008913943167417727938659006096410123140966499687668829594404754930205292019858862469668750929116509274260175298998823661380314060294975880109167981821450597044408126750088894461970316044481800946263358472304205415000286592707501065765260320998090823400828718159086848740998205973207147455258549991381634562934604655571465785729719087833719071422355761282295058850498647004584127776686923222663491463760172322499563917026062014305913983066801604800814933865673333495937393495110767108046717358441851773025726815914252109476441776612860897775413407598658743104462405845986397257920929446538150605032798582820415921198119877500781716667418779970933183457811219474251255707829459347329032108251379139818666331311430929119818727214698995691380802667798996476175164858088732473812452941593059433052832092598543632964638525202951353731330336925173536632518645715994207021115843106291383817559370685629830722539517922097518362925177829657379805238849819257856193306362335762108548635856579455044640091978809699477315807106622728516794810184115883372939610454082254416435261390528219022570909269595377250570064724629058068948911939140655902515461989726571591269782749414154026615483639593022722925190940815617945685193823171262315612446452651931446951312427899048945492778707648433423548836432480823498898222698884545148490555953690988324703824508675441377751261334740146352848547726031763119605097296428860184655201174642559244965064493772223851860724537522566334259976783822296628626582651665534647223179204648188883240378241180271317427038778156532076498632947019533618615766152094794732040864752823143626757104071055438217161178224980199782034770960756265279554303078016687312196376863720077997122367959135119237966449133287170996391797528385698589978082342484241500454046882858880395187049995106097916608689293927825117669463624918802646419129630914892262148274427285140650724893389055904940535451213444984026329755114090973381960147821634836324808301137096979123333524677394543753347636401434137258049203264380250040420262183947325914896313106596327394228210247308809462322880019376077060352825038563545088660963518132354506429580480348691357618289047884710048652259511701997926198505281701873595893803437638834492809260156620422378802843213946993497681018546314719169805242390562806346333342164979314050846291522336109119477705793375579221258735649275624133598803387741540702354127220291816927030244858689796311527522552441748559922602140543930189507691196851943455303981406264550099600422178797816043989616003140351604450281414135378699053452673379269555245077528955455177057608755416003255056232956458910802949606552384112788273427752212094799502821546601391547736654015968244444551442403838190086759762367386150820183399307179488227892662493851329511102826629167302410438701639157642245243648560968088996635009193649756040500517678780853120584513433449537032123201975223800763901854771964120921531408658044248367737336841849519685963348986944657295318792419871598223779895859737007892511409807200138731929876707973946870990023519659170585253823145703989031094512879096873333237501370764368895283440633907610850169085457154636926116313551959783056331708277547261942272773917311241356497366063649862745075458155363976496509759614764291113906541574562873225942097690781499147063955702330558179492427362260031445152252884121468552315603148800391474918898787765279479120289222642747260872047836905731007977510582441790290958435524894723382879229192105171645627210843133677241493885351657744104538603692967856363191627278281678295118014345070063900242270279704113011437652610481360717239969228859091818626324428770510811982643563808500658984644104920963536822348289345460602763562341328671180866509935532436784205083801054434600190445039181024696474763699086012990983623284926732010071070249054104433439920078042217988163138372986176555196352971355471652442728588946973865645402295564330395033123061909582471446812795741286020403447308868008135696054291903089652370769644073748411331812615165168816642066894452157087083730315360467601679621382067362187596413258485627883518290855818178508284896002758872834857823003325979245587331017920180002327754658213026830173910408068001262356696459543101225156535387943458464732109896849927561187309816397066458763320652531682599826325786706392134809321468071002832800792748904765124275132824528882897855916204416285709275551443564524021787271372420783294025725644036081189279534270210756827401792742674566870712932020497853524894816799221495646006195311057223822910242870984959598286197466354952631644635127561432052506413708858768389901104845204827112413087520764705612496611547529265558406688016704787051109464466059251167046672364501963106211618084148997847806362129508322344053495046656670247012164833674627389223934397336131388491928409674870514549070221684538498132477072054120091892270494817727097668175812994842279815434412903391794441789973491101176436123830804028777048579965868942877824947567508443944176361118414782759725202236352911071472472892792802662075125681555978798591691575785230855927012418990474763710578736258200873848323634270205260904525904255499621835353469179817905141449403159214867948083501009529061028958589630220071035209674198635814036149912346520785633275223003266984925463220993437496292354560298762415737184606258223344983070700812899831010356374359266725984313894832173065632099110384153162092918172655490432395615835408690674300350896976779643664002660547438103637941288557746964368506056144825869755202170203161478470879078069619442779096060172950093581206620250403068849223403642318446005155559622520730512545284538505925340431826620678320748465845555040725649249713132266021367352493744718086748311044825546518902407693178198800325573125482432676715742358814629753801125034192982499882591572536958934789108777487969334704465825959578902682064400304196726065400864848540378836900833098670784928503504984591679897404683587377995865498160377819212013173283366296481932988309028093877153057369522677662950159849436600855343647694681957103620829338358007022255544261969010448164370900536218565698472395178475167060925550536524993600563901468001588900682329594280957312040741165452857760375261863493726676930431461715482567582071430732984650101295280486714216773335061852058770930803727770574857587999958941740867897136532280047685652634776720566639663565783450131304209643636967401446838639258581910942886499901927124511556182056705894913448545465461501944438179776995299968572086141241014259323276991322919090042038225936262373908922456050400489998122847202077666905300630681100908876573044705961728979825063494246630951175334812612432871797170976051773492886527025144786628089511742281257775248230528576691838858735911186232340578286635881697795561071264439453184228192300287343687578919591008079730449338382953872442379300325870403310070388301287234595045587702574011536798005954271646982980493121083229747701352653077761637678922652686592985441609113514686810910200059838569710158720076570939940154267607606836545464250797299119267926375726914569925125707259802118019035210605276403157389623527683171374043179930668755019879477103071850061759890013909996737778109321130271835625330467664259410202003323486530941191702360771549481127698991580997817126542814635912872648769586534312297034630297518863071556967332870602471384920760986815925444994408405651592245886125576824267595670917337747923475408465652369228430796646869372896903860601384912686260271970397643759263628575014147412583953502888385552788943285872491039783728669207184060055976247169581315203062201244433382280614163486444779496765423652627096375292642832913283973028144219508149027720334361350502305973279955154518034811153193477677838272274639485949568471608411065398500294119867889854906394812994606356466484788393500471199851038609523738117938918625672746931367851730367355507292200050836777657890924047359991121640504243158360014829108030876932079926746105934951823062395158855037690186638050996369044486472814748217755938654087172971863517735702731829747551530772039506320567882338254822945532475930905514099884839563368483789789512248750577016866970175406523895014797376564820104758863613870427901101479246666404816403151950534440649426722517172837403175477407809289348748599078740306972742594747011227577099206106078237972742164407030080411707173650746898914859442359111359370564416145238233332698772402195914055604469226787207628954531272294914711983446817614426463471201211109447840290400818855964762465244813094657213937517696227053995953222947133353954988307081020489356220613219083075466169214462231061441013469620957783671199240662142717804369248108549112913975913738522066431754633367954266211104389916435271363332908640094387669888366260246368037763320372332745410451816495315055614826529696404257636343084356252342485705570142968397808099749804312546419623820646387036932086554051604853414330060940905024434104581853891514124507030138264281515399106389458147755765683693041649051168425488013228969799216309552513317645951414083150785889010153585260449756984703624124998562221418900762652417620481652014845334774165948712672182361747318511773997594143402574268016630712519517293765498123508074193247642829594231597726040146431953393954743313242189497186811013129141567908951157581044975268484219173738022380150599321155201772422627440989247087465218114910632469192974128694152308046732085037945649588943334305286105307227994640732401127381598687282739245878246749738558481716125349800043387302628827749571316234091135479003205058931513393298838539401567117881031360723576259823248511507927608425399045921509452327304364780974906433034970632416613405372611501104669696702334976672878605280948877536095444402556455523183078658682173113027632531564125097620111734670020086766137257544644723613302771203344482729582514239911481258344333606026138788186376505298888996793207817405502345458575143235786022070287409037711855775419425697657603431552789446937280847207864078865973989914121648782835905179690432228685571322911153760482116640543782677241160231113352821658391325081708446577027343877683262941057710146577307696901376790357678723702987499953156054547352354174676373696026129407041022327377858299867151306171492566079685182298460747744930669784919630136898821891936771026393537208075731821278993986188347051800103322379014543365087896702006531442326796351601441962696403717159327250548220302819407985867513011344611433469522389445864117717865247010749081733065401313983391016494719611574522353077948377836402017320603337555929561554403098713402036792593334454677427658450500608652369820637866270375128551923344307595695246495640403237378751273500764261686155342931480334181345078975304808753377522112140406118876206887573385744564069820783695025599800094225544554661422208561103331036780341782463920990610072785737257142468400087700306384339806340300132794392702779889994699218977572296924605583245778344716724311033882282415486420797109814603643043367930275721371819226871316317530933422685562919305401557832896225963923188690012356942285451289556314930273249262435964708928625012230630501557042885162065110406127569034319405585614019665944061130174967736211755786553025034529024211211513602748472932539706908274652064447509150833592191368630883638387387448462768108368936088736508315171247946534315656571554841674190489772876309683774447580129149044872920749759569320476180539919985228442499880154763072890004390199840597453132236510391918997862295187612908259900426555284660023385279150553847694713481094716291944949404795102059993194590039188078193048567787372253816504773494029240591695285665423489416166963587348660895671560929405859537995613814676744657025124740070989776021992168305050707329026844279549722823119897356046247641067771107213057767092823790561135861151768268510620401458213179102333382187125555150875467266307698987259655233044913711090597811714394616444793606886373541245890397697420482851992312352149365002027462915520310689203766377560649960231496811875903880530014804893515337235260672539285769305497055421856983489296453895261528271526852719265435801601571402463542848873075675566833972885626253916725494395148804134129672522099291992385323033326992933056221877928544356551075589066031327376880243128586196530446263098011397039865821905625318521389414414401548965702550467534057774637360171623443020273831302057822070867874902911286888781020223375220771614312193237265533071681842076368876008003405356942954267922523570369202476396489409734127859031351266062691117539952207783658808899033974194940790903998540695950799984142643907262321301861395541217433936780572056181717166791042003374217499945055830154095102112325066046395896439561022254786995901426259242250746318242930941641691179957370409400619865532838151047887179613482964120469837555786376153890101513515063207946497936223058350779590705289623037167762325811308600808517590835855032429459780572335628792318414977559028032518125988370627257048388588329089618917303324047043631349545244173534250439966370860519555564253301910800880516861836550937038767792867082111787744784721130209713906916673330772908282702612053069319618974524323482883033070972188003849937679586516961077787886557575442724017312706205089238836012362067202726497597019950533499627013537523920074594442555917193774891795410853891860131327021636004968970943983931628449381546906769882455931664099145723051900668985049678114723680085586532026368380321795493618969236619751648303675812922486767075804908458507473758157710985294024834543715889045530503102748951703999010338838428183688004162546650472651150297135619437393753045940856246090018491722930708140156369564407495857028976871954641894064494768831021431929699994677501122477432154842544436174576293506349470261010312392372427942308197399363508801014553537932741976037810280935773456750757610337760548037537012364093153883869147548377063556704357583906683016412501932838075420711536652991628691553677287509882948620184441701805467935549210633390190379290076529417581256805867102719752507634065500157378542078387471434258728595595474185336233375385404804766932772132999660632882941855954737729716989274886292477180594735717575603286656877243930152879873159414595386897631881767959170108102145981632184334925512671264109946048729164668482609066739264055972577444543159960693201141959394662876676212633498560608311319218885690778606190248365351849680382711286782174689788127460727221791049892447181598024612447164740721730539446672787684517262629047703104946585378701404866702066788495051236650421710603369546791062011301201545497858474173142147957936520555901280318613148896744235560309577015803842188641407693468897898858282605191863783977418168401531012261795318744680298776513144110454261612072545720144822577904987135001121785053411416302330818661690038816014393973896524046735851466526427629228209957325889606948178374537518203486904134997584811415036796895071710229036296216503647005313441059074604399245501727741814644279761464153677605853970905102629870855232161862144316987393631033155381739708709726026039632565618041047643686332159968592461694462081170106584825329264510523273825147673046990230482578564095541985911382275986910627353603746232132451075226361650847688136220038429422477527089796899952657900480089125000459578074825619099512997467040917241746403241674253693374573197952851063823173993841710477430637641930937149197580636849259991570876661579208339020514077579403733845744155824052307886925852736686411092842642735413382716414292149853769583043876564837341348692889995866026432713018734041772185957355214477093441460846664184606155321006930230168503866812488423714232408694078097966310626357371694007102457371364355472863847283120415871878259266654111933704795106928653524076654482937819712690767299749771851245571217431113375658936181814721342419987709225735503196578195083222808031654431439609972044284591052596629178370668138446877908528640817513545263451501978085065058456981817914364355839128465957328864884720678423890090125160215712231001218865283498662246439289019771526255670679856349645326231462057200236563451954305823602048139104933407805527678308956819777063657554776291618781264178350229294400155750519625085160410881886917492934844884963871920409099539462955206469885447742873642364867297917090273372075389118584181268741767791909896502982430181724502535896019025331438820529383382984129425372525407193123792297122626664687083477334939300615334818180694225092529609236374192010602619524470307806921885096398437823222111874603989071807392305268442986286496477871284386025909074722629213956953484060085582162359031367566090027617351485820576833753536682003739678582363057564552918210166344553889613040104044901173794839207734113461801675905442708024088960043602152620079224771241285218301395881064527466748699085702335998365165145999613845996089796151241329273524432031286415675571020053205740236188486243028742589350735097426426715053735332072926310033461944651004492601333732520730337985998074753731163868918842859188518719278985709409338567791776697463694998407278376116861564830881895295332054417724346009228418045798445723070910676896220652881827484441392913770108749822135177635371542022920844232354769405168668981173748234454854702494686777566473254794849356772473128958357343580372834259445535347195810717331457217612730260553034738899724513615129603989667291012397838546682888517615271738711856485192487000574882440375051849385706829248217684944488236013229058749934851868460676235866307174832981808102329893127637724175917722537287857812702275682736536699446494971424103974067356925009347561061602992752112342593022218681360697843701431127539746990231238023963922599390454399558029414804890635154402841437763744773533170452151459039614396162348220063014668055513473600937880156132761615436669492561602785908079161574792261486923502580398213174411578413345778445346100156533211813666136751359339437306067446296236288458183894033884433151126808721693006516205671883926785333629088070546979509502784876710510582085075364705926394102023837094895453844114643319163215829996287790984183125824540705849172053370492675716720390898642488893648718134337888918899943313978786580325142336174582866772247133307459275793125619012008855209905371936517936177905268633525993971312075269070619012236785089553765004498647058546174117219787586186825461996721614297124642602831774936273280365072028968072861069575498589545945041387376709300199013226415830677342191593220328700022850237656743612784342271627268038567914282441748762774736584864371216654808510316822053826366988505497723022008380068013157916278577776766076284145876725637111275976196201929119858226514584336573297424287876462935592630163392272278584845184748750545672343228155466682420327744059096360769721522628398587056375780030927571988634160748227343283101035727996609097078201790698343768357746070227736357288213597774334575981414823583792117165434723360795702436113650166048479307769158794500538845623558739922110241209272833276645054431610378285349093353126920122572880231289717485881193471182385849858789768802497595301447948437140791803156340794581581911013578494488704838700976151811650122682096357401288998483537315253183752996605624236210818310855894196162771730407434800803054169772968470486066787988990804642681245782218168852540062341966869862557312317090923407786748962025737714813447818777422000057182341140739526501100250918356270462240886812851131705051691628384027779543286986031714004925631872952897719863168932772913060320858128576709176541932892579781079617227507067954601357630085692304915653746966025423676117941701098364715866536735358336196965101816686765450156063581469086374360720664434517048942049168925281135878906297072345926788533179395592151955924785667628767328767778791755722135039147583935451342447483990009883118669805260552023789055239731412028016498355327562007510181823441759817227163904822155899531372123630070034617279053970982880271898844116274895942482455890876852927762195219356817056843600771480119926161822570692977212697241625552412075046699848147776230824980005476018523853961543116040724088497181749635581443801857909579481753681180531286877964139546322486550024822831921027127929162317028743938524178760882218416120891705293192809172347991855395631531318304462571706735815396898140054842865365298316255795924725657008907926950218383237577395304974937145510174056874017261638140620245781079918972728064526565030744621391707600824752040319141681846565859170740680929169061171988645154327810386170407692898189750001237933435671666635126184647066532451493015619523282960205229135398641823470437978942782290933413938318115246523515413545362806135999211798240119894981587414929813276537375921522887503776249238012829588928716911807142956617636957086819520058840883391879401204226021637777347139236628068882867041846325566690641334026271416319256419604938963683884665888179672853622985945727264290556471851097948610889188037530026878446110946581785632279610572252193270740514315175946592873214184102686632357634881311994993779257419055269458150249405469556067355092781536901666622223935264288424257660413055184164173540377940967670106884864787950877819104382509420077689648629235233979821403423461938723155969454404952134580342431940107714815869102231422946596696881303071595851075627662319423406756274063618824479584723729031735851272669196795149540033853221470302521237588997937405703045274684213282194601253999657659282316890749573543352226200705489534539343697912054845064671024321734800462464512051003905588848893308072953149139828661771375284057310582399700863301385324167250819441172563725659684216700939558818207263029130118751643123405568631901249398657344964671068135076499479923906175533665928424363289876245557579266637687997839949313389142742168152275022593862841859038495264416309845539985097276327505971670332766033719009309508960818472388502930734891468340033724173846051671606146872203811009070285084168752166341991505042190256046837995059668167628624903774256789304965225891583128696671123587736962257585130516203306358358020568767619499996899145781110672774055853237424850202096369215189876921526839479029663651500726650377991490225120302311922473606248251344814606814538254779848173407050646805224243800096009117432034660862791033604914157673049328848546492191083630672361669041583734240817752679645062442798144053949805196895874115921395798372387947206422828627483647155082980187056456614434954764972221865286251866328714270519310570350131971268602829995306413386369740964134046483675154013787265122845690412157136328854503409152240666918939280063451717974858505672748318383047566947500227108259883416615444547960102178973017972524237712830858460994349741467477373174897100180799905925489628510248589991009807833132348109969022289883079168033402311169133511745341404000382899455021720040023230514776876666564323927437870405642980730909459784926547148145527232473049962093718915091969771935412650172088029279674131200033824335846775560147536562345095741114411870162138009031507260444000528550823818047765848765654087184351439422063796770750751328154012130667577593417726502774671332772237579545361785013907291183404578837677673812548719763353285167484846543130603337285204852653404947653748531426504347944811640667337189563557032063145689678774402072779431793118102642820560678735267777449285281598750394623420536514787158289055898041252903083677866082977116585634278414202020968531216006729984635780002547278043330591830649766217899371737570272630386047155912119311029521812065368716020899323892993282373167993489157406519732136577677379296400026591561747800282040448620534747850550936881604477143630117000394671266939881950913414697647771522277938326790658262786484907739100406018299881891365918624718059599548470775181639992693097610096037096449165895360655346660538103406985333811362907672864083239692221788993966238579387731976458474572612272040371578630022998904399214161138172230840246104140212522671504318250385256178277908111328563696217359662077324391181176352838525455262259187512107478670631880102160998021759342426702283377795055926375366186265921359674935445333371958139426225491108942570639377361324642348472766166186170223705724913994677087044310551297288431914504582469840273262085942456483101557413776943868286000642827297905351241378688514536324013425918910452822312100695203227510179843513168248935902996553679358613268817673443192094295662262460710784073653323712553072348893318734173905051759028505137955799419217360431268642142894115004807562978558004293092552270403421352878295845556795751122477188039216305692350579814502688082964108507202614626719906190679486770774378292651674822190202878547875137448882295151527595539302905078804421699361936903845949236602388203895914833645048199047717452707219119707757867693417505631545403026464858858166988165552956948031371108715691175203221505063837838216666429459611206036788729998818308717287314861024120872410346366179561593164259245921160605234705019282240279833164781259869950323093383046132417644297538679386523605607123467747464823895994179473361500730663638416155409824919321252857589922701800751750835633222604194577897887240121746333486928745170247347964228366740635969184087154720321689235853134126400588720466863227149670449211544313844440170132873591616786010950031118749448090605511279629689734242551240326218498428722841249035985211671128741765341125964560256257412282789158091780770097051953615618531187199780331324775774494799809661237464017966008605921849790987465145487770468193365880974668777074823948708884682299962645938266800139474082967870676244967017521642026580796991476439832247508952107052826214613559217100057681319324516211319042901121152099357760534902412117097314522259912504985546221031247426115740814648379270646410820380669543015003446496078694842685029661543620139992998655086428047735856426451691866671629902645507889674435342840176188109929242668087060403691308478237903372131366857267134888877665486211159767683816585807414001870353112548361568809156696972085438176614657934101291731917055349823524003412397428551806003546377979809317669630805339491265223346977298991532080669768634981977350766877173074737820973291715944928890720893381623809354860172028988298471175790585579918618286994645741358404063220106065742987361626300089804785899276486651055625097172150042772702087459289040185652890307062115999877584853750786772677793010562154882883265690972334101378656159657154889596463048639913860620029485052067913763999704637119451802266437972004234946529013851558064480756863183939446611085944218786573662659986524100854276802886544730939175452667041615807620336301252315908300430929595217417969751702556451712652631758827736333819744102120496686527044298044991852764949096807818445780351448554831913075897684102859858136521508816772479241148268859771606134152135263820141219708507641666272070105196471736558784509604140155492430198579481570858297995859291321510187498943869890219457681248574528865486109800656616500179176347805692911526410316465435893730992081867923685012867298452397868450114634143748146792976935680473622788997521106662827071165071429658700068253510314288340089266595116087108684649953230860218107071645785484250815433477247134901065312258278585343375451020815741101182624538243720129995389977305011549687875939143201480765048436768252141724237310107740626467720402670478134817707217897277035081208287640778029457637209163534262218593078137933126544061115213593557744483819410474982540045289498507253467923661151494806792805637326532181830833560214290839428922787930909518883468708726624203512695354576789308476283060951614205797711541942643988690934608712795997493025672765674751626436342400030672224627514697647090828196496980002988249178846817730693122896152834008106131281754289146277317723817014868274669176257693105551852091214510030876356230624042053177881353909575381521639359338410036161397856080420293584125810623995472941742035140940204008096804710902515051855699277763713808191408136567346446065815083123500570057746193550014502076776746627315614403311575669842165350557946741678403420695426163976494766387725678389623978537658853009135909306781277137535983728470722147402108949367853929564232172171353909561576783985548859927362864538170856641409348529330888704474406867768164028164327569873020437638785295868300559624349318330832618148722480351469743637905395577526698813674050620370729801466954621529748359505121133676767983431096300990337312227357386362447125882581541424840481513417585435252570800398489698782850315629638203007401770117391318484451024920508452330297001244894319290162395414761862744840273010656834377286638188005617313032103779675287490999275626896476020191270711339395810133171570660488058673377100095947089698053424768912119894713212743106190077842067684270738847912805362747018356353808866883851657118552835093317732892493119505045349231453648323133698827693855502729796544911404866394153988870608864554459224016015672198067724359548713520561502870585561893188436475405172396603875379208567266035484384796246296492912924645796408787239206978892812805772935025319822554632110052678655392534143484001539897331501398113775716531162115245966007352572580200595426190902586228475842355319612979238236772472890615458589836703181670851632910727103994244561010898449114158407152543192576354595805358116422333030747442222287534646333469751564927504309862680673833769956153996806384888917721719798672060767747352694083183436619062845890142630325855487972224423391452101463729912731178718637523630110765793480280930897521781204994050819241428223238572953336665859475499881992094110559391787347518268265268267162115191948137122354507153713673309889376191089793345022168245047774847745847553034125488839763918466927332385881755981507168103218994050618629167615644491230877640495285405092427839192601230485221512228736372436014078497708772052536025965731156698865424033939224875635842735097211100533030242163808971000585123783105730262811262959057583464295793872028280909953221208171337716074390952952286783327328486090379383004748340255314979437128584281956631973540816279458762532844017601407103890722775379130972194116562546277904806557467140059557851513447413741925419867905182104348962898833594557042991138584589520923272154114520277958976211108710797724451818671955878500740953424094707039826815183650151519371297057978871061250188568812608015379747924592637964501282937776141680322937192547408480466146728479163018411452805770643979935668982348896612590814045828266065097433502438340199179596151752378895925990887635889239420588470540723425923666664165617159135051090789088161477667354860206441666892851747480947198623228604268798005388201249081747462527798435300832866001718860818532290313497102968505480272779435919475905458764931850305818138528672547079988550346845467202921364337242741700955236411396099979154064870673184240213156702451713327660359372470956312868197948520190747922612645365284283735567731463213042287029265102644614305570484147733206243056955622435502517289153974890868309395261977113975391553375187471037074728943876244149590085581618817079533591309501082511441178958294184124611207761800663876428199830558122589082917664280760806275888500203378659942421780566026226588255447261110244011013560905884103929048736082226324107577342249588042808315458118719625401070136186318339677489454728192357393927569250669463043350130659861223318376817155059621530507827802605331299005257852012593999716538254943963260082204966873456800280672122353181729587760153165982392796844473503779315700492482855857418277742790331328856303945819977797852612038954450195720018285797984975579529330263667653631068745780306051760867395207868026934860641887770271272807163940464533782717166285206088638672359242865412922703278389060710909429156818574135387203414176829282935036248726597066317836815702584410488360692091830620057057165857340455855793993953510551862160605451807303069037105145641387705830446135965540913150612656372794958831449442133111044471181532829676497260862337607807385109273327964990734893620441485367116413225739022574638838291537421848308592360402628305489957975514580298154279339151756126364008018697163171693522662181076064100630805691869732272838903868453157543186028824569399391098505985144790288300438752572714855295926563765082587276935134650259130721194779162676479172188742119205477922596064043605613251466626942336174234815064326833683766661430806688792153013207724853497396185333311307899311666323721348941215785089063957728195637992374466083272391364709046816133018345656092848489722682248808980061446049860831645956273332658491337532427182646156178982915801149170672835435583346492955754582721391780451885908677867871511767626477743338714390352432038538251468103011839605524611638834963917520299488255326192548782814349422375340450855747716041702272821551592344243373208298570123706274112017432319380844018731658111422409282003464028858368781771158347190999436505924889012940347193310455593603261072955096668916058663253943346090113946248494698179758663931070414569986710434793703630744621397052827416086689242668398875480520138591295979299665453429546086354145274326347784306435863195679928649423313516718651156365708942358881839547290691376546842732397988638687260047818920917821612268714074292849363485384307376434695604565261018587684897533834161260591585581206481504854982650077700035286237119250066959344135560717350045337625170003302004064551435406157784328440549759580680375764501096433078353917493008494461197266628701451200463847140549494674332193318997392421630447526298528017399177789285119189580263459501260383586034864439049204441128020226876666345996088874959457113724493763341611660610613122190657139261999529588247724175343421004202242427780339336278646729825616670803891378799903586776434049884318026414673688806729908246484575693828060902809045650477245470682764543022095993360904332245830971649051907461543994561748736167341808990555521472241092279078293525469694874346022147274451106195097552697210442905903341044955174818569144153137024899739948243279151955131116322033209429001849620002572031666500886156061163887024924066659458564072866785074426314608484521482347843984426851860873274910708401505003009372253821821654604430136876710824632963244164517691170334585727641931259850369468483068848828340922915635638503116038543229659912635632737707753664587574328060438659377359202699364445648268746622426242667394030962309612817654953795369715826820874778302931357334108954300301758879636262206869569547799034436926906883451213372253310383528831302556862574550214730615517557831562513527935586221801791907511889866939481670287986698272054931399121544156159691048326452960845116790801851363181260376535085333692320346883315951695602924075795998269291146993815355076945069476721877265038084399196045548266891617280104157086789775802566743349626887837268421123002272582190335630034011131750118165536955434355875894076363973647301418565327040349581435792716836609382562310389609680788534394279784479507218059388522937965337673612876095490502758186996561383920255195062028691193193714644971949736535064823668419799907091450572566070297313349880283626103333788846349713194156366077817667452242899011324403163755891146663781423314956597386334167351895716529503427238308422707458467464948185009796642882461074380427058409885548154147988480541924387388150620854328660110637715768774892264669280592411972496166770842527203821626308061701381690625436310699099455131442127548534197275334991477535160029994764919231102499939772312179758244654158694633636517951426007459788904800524583682640320015144180569390300856422674252146415517414183359187277740394131528160813344153227643098802655262925900758465831729132255462194122569350185454593224838074040017221286540314418250698913763726547413768841737230478371434601102594871373763250887312981751674711821584566485488598905750605479290948994474515716231199504560650346916190371433457174832869534154478513130581459612726432701872845671616910029287297878457313559588075944403717958859956435542661173783961936070048808974048037953110503435699800219604319193087212913647498422631048002995766264087016498048829022036852283214955644137912580685264003086437713133334286544796690695495728704955934831247657865717229830433397927872116927018030149691684763059609801975636048945188136090468883118675644484344332891913518364205703707324289289759884294598590478814686001521537380490281914565837465570522188327442543468388684053532128609076440846821838133243828702459303338092038001654115875763356714211935713931194189199180952438810590389190454438541773410161852114848610225785703102920135811490895711487305688292146659961851067537843640584165015806184743322998819680787681987191006415559135387877154689006851640489245460565821598073950696989555822708359920708133088821978395542467190284997850783231209575269489514062751981805933926317300663388251011637744098355253161407713545671949964356947983561068453994741917468519531669762979080204102716573791196086629405647107340536787247137834892920268816995809073346321230973802555291308649164225241351123853015641092777686506770620842028120707490129718863964563229798755357458536150602195084650740981275340175501420100728962517499200717928168337910363141527450882354053636861599278934687849745436992034408866311877553253467654934255216123718040779454741654935989878269078647344057955479550974483199320958818364487124029545531189995431637587653487236145328426633889598174137998013223911372210842527621820738181191735599829807649003661254835337691119666168603730567239812172594772883980622984330452507630893719739600047014902496195168664611464657281893710655306505450268896170349092319876693724678507920253981214408765491712029700508887938927166991268861866770211747406178188628832250444888192877997351158789633507039401911758256729002829157161970932770568896563115351986009358039827321124805268646004399589481780061229320010574224585689723797112135558618110546462528888501526171834353057683128633580987925356324021123514183169607548887289699102465975492223712460586358331815597427738209793846842446475453994105153956862038154537173903350888987230833815122243716315684018542518524606560680807500538483122976870433320785254104823655348109369093375731751065173668698696749021445730870017078277356813371090570862778095598610179258655621686688786475335418315936172890853230065562209334876450959039530944530438253955315737978002820290623357106298125811162277462911743939363782148906031860271536805266076334754342990577183174663936599417719899137626197943075543372456024503706471918173533596463867534043713310286362777291474161924810380872330165561705240433513117083972748865986865556865580429236347327648572123051910415074032007685002452446487934170097743742183056933881829017976524424513938517988374891216491709218348786916955643266115700246034130821379617576556227185806998202299102748447562065706662209428004812673409391767693149158286606279063717003721508174745754545301147661793153866241283755720065039817805074423574765559992294078843851611669723641326149114038598964610799720713544249954545939414152400206573905653477550077723172154910107454094420589185982486325903737779053558685729670135927762615081705483482181477877808069678012042387665498682490898689738292285337940292041096926374449747299590360343139160786690412543956431432186422506408466178480234707815266180604289068484126934467329543827368834852017662542001545228218291866186891140014005357679503358554657019594968093352316574216017994789970526861012409141159660314527643926730272235189138927615194471646949951206912088348221601180365793133596455800263478652276047417084970254088785485829789664756459563826254622571804695507886417796892424823847531455278674973322827341863944253746533456652198261169672326649740549858050297188505999302679280573257551792349671841777058705846986187066280367899324627611956417956777053052827324830009248606748130008700337862304578538775064095895795398102148429689285260924617958325836735045340708132661679761167063354668443883553991220092194039380710753185584784995604143055069526152115353642455532683179384962618454387402234158326968292316515588959188877356380743637236462154148678771610731820065924662944798968661834832715572908040406892228303681746838314839004510057963367424160579695976398852209275989291452393163453947963966965892328016827108135106176996601148531596476359918599874460792156953506816395908220075046352912717553053289358615354534408294644231533861565031578249716586648179301257189587424787189463258002051960154532130521838667465622621589856456404745473573562040487307521346928149298395599023617739832894823681501517532752678604559507277705789964260545840057040653591006364542368154965553717488204468023940394789343404148451248363676823240820293054634587113582694321830888201921657965716533874752959123047285721846950254448426158453860643798938273203750916033210882069550579728088877399558802375546518389293290161541484972770846935894407519823636530990741039848402424635044149541260890916713473035818719190000039254973802537406882839264321440526602896106877329490453831040426971331351851646589713153159532667196175695356990733494620054519563238315404143757704876146155206276744396676720304689154448792334305106368965209379153886507393296933221897502760979461572303558405194146250665810127908618283038116818624097026987782290562430053744215781824971141048899950877200627274029252264999197542650508431489683367296478282607097512164406154738306383198138158888992639745430239309491594757264576483474341601643561655068453326909547490048064190642548126909506208304711115422184903140385890497728235273204792943420409883655085754635989470003646307677925739782940865081530268600103502041810153600557065369469021995460829057306800489849714866755665674789003147344115046775330040966609073003473758915896991408592982865592497237686716629227188734581724342511922508322702022574751712833326483216337212766178923615661084493552950544257040026165569209212287260679378080179309614077975317619716160881339665407633158642591830885100660986551872070410381524191495678416172945190047189151007272152058474324317447216586687315638833505325202601555503078300804349130347494137169503190901532590980242536816622811901523445238906076184375829798639987072679590112108150663865150303628301828667722817355010234589372187763997879893805516768862288058668135171147165947254288171948968452288064052302134016982066613622482955448883912831410388544428921871618490472404927895854390711130285666791787548230107884403738551223885689299063209379786925644102693077311882607246564525752363653539910817011342792812685305527277867859416855170742508198311525215367589352543642945153633982305261093045907008114391713957797099057056786802422058534214950956041577679267165634668391855694979770687754035028528884686901073527286419644720587120974741015759659634345337822438300333715668348638460054458611096669344581054354910498881129773785564615793170383562667952742644638710087313048851852580519521882070090108494293178756810617475199296288614671999601628101754433555648548776563012160469343404238219363568817851369528869376056908573287763746101994774722766416104923900621867572960117233005921366013909897820629662216939124651649126630000246792290968410090267655060485649436034228392840747293472296479588837108807237115536643410495012842720796762054681745705929788782964842961010845099932217766291420846494315682191289110867342847123623052012413541198274730591343014674154208299635938182943534048217604158420435047443641586129017250102074977241933681513723378079474414984545624258306317100329499126316387137122778099824570676445846103034492971632366183009698849988300814487685817742773222399993454644393099031375716854875997500417291773929207215465028941571807746303390755611213869334969072766743013071755940842207522174719907843253033891144203446409698360556375210031192196741289557653131837624535085358963987838967753301521823615766321890269014854213891474274300077385617006537880796876291578886000722502221286756148733860888179661708622029998644222633484000075039361687483675483663787394860931534006297741306151246531879701224202873025484002702975993561872403031693334700978143785700905129515035278675103875351833418070477274555370921472537190655501057415255462590676204088853580314951100345116380353169840525670736099361792342611773429523533844458591824303979036422841410955515852570994059683921553881853067291031383296826211776895303186033992424424439095099028429806342517334193878936109617229489218170855803691346940629228815899866675956888678026855239910885895689482560876461866512447918602311888444278594096346109712993406337999808710615722409497079490634755520727748134204622311444078711205858890923499189381482627357520462463968966480805313339954053662299686207804616947992338262526719381819719324317727100084121601117647286752302548270028493222334214794850202050092988546099398847297137705172650020317274354255348993620989013534886462500061529272382041565611997353749636295916362881025402150630789276771521067271880604953064698223012462277435848562005940269541501966329852058272468340583939989103134466669667013687743054770444407392186741242370600255309968294134765201915474170471962755859479861205446491580814025002778149076076143044006788793368105370414444608842864081473966534209522847622936799743973848165317556431799354786274637320988610625241195554186449325994495865120324247505723599758861774085421594159209450573438091656446594574574476361128410772898696504211088433865815499698392127722569655892832404361158484429888613294761643548173850818416808053425662746932449623159451420087208242471094533958523797991864676353685024802802410664702253263965181989281257456236246069943607586690384419313891621712618423964020260310992213518706118297145594392675501881491988866638195167723586417625523210745418124835523875315630553119507922462654535478712397014384865947072829018087526756259474786995109200286117457385411305085913278052078952510820660945302226135538134904173758106718674003735259657064034017718618889872390734852388856189913696929046814989002426106062329091142771016554455983116296720527245922676620424488732735355518717017665430260949714443602738241622176065230897091085091539712984172639155442391727416557192996279216381637982381317194629139196866228602085007248943774141364717628082757207360334863668663970225221424076915749905047827539083805635376172270862543663878890269296918856126809001558341859632170333665477800268542752340854534949670704372911268143389034585047271123954188507167811839159293537233432880625038739767794732669024038916109226141452853983590173516096649378645677308606695069571356596566839053462138331061769477452275224910979537390950170987020470820374274483461738183992289219449151792180703621482748391146005485342807732209184049303624509856746794348079100871909402641603567654869780815330316017492233252096033909042692066182931584939837435487241952280341959484488398171970378223923831617209424598198628293717669728725200587742478262230379059551584090816172041703482574039601973989186933832921271976826449776392419623840400958668826637338047574505959919888511317750810611709686251450651603610385517950714159658160987759975064113403933485480624852604177300165062223535959582880647113596227106591325149039173376635390301850848707895084774380286407781570155427245061136183375731350107506215788380671661043573567694539592647987913051151024786627413148781527323105739433273603825018859019723916334823174745282895819727423811435713859851881489966551811372474174088741593023016899376570725239721613142976216972963308413438295276712277686477679403849162106592663261429726978523441293205478489050146194535134446157555772177693974931387204064556217719955223551077691493386038477723793341701101898968851124224001669489049587397789143670410746689963859759129301991700711780216805520451446062606010384300164002305614811476396519977142860830518880579898685565293221296828523257067852933450405604603172468493914957088014324085211677734194811799784339513081544997976506629175547549407953479701401164828674748875586157710935478504969077307073570276746047584797760473416738682794208705321989155365129605391346676499111567068743753004415716117060918268411335499167574331224206325038998219808644864225586631359097831009888201988100809258164892732754464432331500890130817154070383486571824098640657565405286744843441015477283781026234170869859991251569572022552466538863765201423556208711773964275895680280899356959075765850972316153978851627688549239508546171776896427562973568373669389834737249260957540631403112698159368306572948959322626282894335171418454202491303485815644297568558646192222003109657312543656432418332716348915770709600377069981062384595056694981551293120595998472124115833382324093150006157289595246462017168497083719975015441128288256495513871672653939974145597048253750922971018322942375486465254020729882554761628875170614113536864239426472574274685815623760990151126215052552912014607575668958926459250529706338181352224601873405810424249495880305193686453378798341683543037980228195061821126032808839698704211593980246265829972736595569998654781962564884093808685886301481680510176403300650762232802411965860207336672072365242448413445400749309808257337820414031618077306637643270237441873038356748740897261232287630531114642242879983886866203938973632826173972503726530103456805269821480742254526893334105097856125683755803164478650862391091415725958398704126339662326982878959794174306852366784673901146382862037484269467155483135865886740072775621966159506242770344477615034698655476650904162873440728794186501119573437229296184992730233379834097989892454557550943518425168350373522059234452447660090856441749794242105817629324423853993445919476834475530882687172716280032511753567981369542437595200280521427520288555815392730052503465022974716285254349598223555399380916205688399654339537140827764987424699368397968196671378099372362069950819602063210863658676573745642546237258390707290642793988453344400768524521868060633006704255034636873111179951689170055973401835179513899153173343283868208679147360823641589328714740894847705635193662790799647866131563302039074861860888110494414039933238947285350285705300528026663204653616968239298579115312181199321657574672660181044626926979671658298377673143045931798273578964867071189587016793967729284438038007028192189363397446156097371485421275924582411533131349606946005757932207625512997944629238902995841594160755888891142047939868003138462765206819627980079212935438580662957288593846871917012019940788535062897493402379417248487024966640272046384311942860280538607705227799503046005174052258830359443426057348677806548886339368339185039395207762414697534390843252187148953648409762431620511657961507036027305070000125088539661712650366205428879583234846777553741636428683015541661471619017013461875186781232128696176821506407475202357079403781302937349750574549630081567090851355691294250415140140998998500126663663756836468940857815809255018877054175693486956546828318318101551982542723426198952360042484944968560404347112406909494865677863560226360836405046689170263617397943056410863231280273600125622805767399410274061038592370080113108754617482055963834677485675577058640522869898616622209512825892949150383721874784955633349485844735492078261543974644034255880302100073937162289463627267861304595325728417562070446797540996902917511941711901845208214118618762868421390714573212203585208351481054016315286226007193669273062536094189056056483327256489938385438733324726346638135063507226988103303009541045678099648341943682240454670949639956189061715824194832047606054622084580179405969192204747711457980219418714577086618055632539062726949481973748026466388950368583728747617268924365466431449357383923219004777121991685760538169923649134091535491004235411936846582292105637908480037116198621180589929976853361083525500244351949073423667755317151577230454219838396767708578842902947030970968557488998200833435825690215836632266941304984305554282345179900339464195728132530379665028792748979219520587928235581124736758986280447275225106125227523424786456112680023106651238410055657989936636264098581046010326570492039225746839821557160978025759316173736434377007906584247819044682106092358227142481498699933960778389057360369058255853842791311587987836728087208438281544001907952406274043815887811575292442936553994680497064266733184309885396731691845913904512646161747281069397771936195992358218465938174974135733852785640736934189214569254889177344709218028556459049423082492219229307478895291090076102072721715555831997994552919076581091718387993056839688158801641616835609186243795786918497168755914201000776065847787958529137568823613371802626607659138888063285773440922054327833699695704809865228696976911260405743640048695278399287105700474227346449938045397936711940567162926731168648679875095566498466674184154806447758834608882167745993201860090527974549730984791473435176140467679601676069154718955955385495921467380124531675707962444152549743806018471119924544661065752019443100443316373746794550428652687341161815583079640988126159715364488515394641965281265941487869749079857728921574953211511900254316792605387283769609196663606122351786212334919637473256430461698632668723988050573562588599804840836755702679465734914666514039135215947309598858892477832675050014244809563998571183890389390507812269027529722398567168244587861496042609630721802691245522852100892768066648805477118189091788565623844894479311060603659513577758307071421362768570556546657152884830115239796267892462849240423129679478961101333116235899822634490909341590145767987376454915992664813213421659531378665858956466611156003607642278240401309977584524430040717355937835666873012386760686584268298035437510582590832937154469224163228542670673179250881104821846056017406827557251095353293174070270744327099662397306063813035770321334486844837050780796777352569729071642928650545952933427772767014788861812220126807599427535922483380123761555374826751179564569567520898182048179465363825117706757290292502848310398082471832402162114705281474430680442343871659354139465219846771839923758318268290962095960699779705997693781857414050330170760980122123859370583878844759322408145907061776530728830000400422315171283843849007918316119464829875395575903685050219758998667903106805578908386730655264487670254118880162386534168551435376035295148489511016985458991419398716955838883272109214977733956810260527683296807643040561846865543508524272233065118474290590970899113826445810191855580507440644940783613391239769179452611166383357867026410090455852617805905761923955290238730215730783005073860996220782465271537027605015036652924756988855559630029072345181694584504592947105658950897078430869066772026969338801442587585486239494623389873423926364860498568658286970341977983282412014129309339720441994601935353975135993858129140340167726858477846303582004549185661323118969331178314724078716180623848319718288355179311655156007588021203250286482515234778793994011871182442246864388056241439021356607919843836258698321634837058751765810863651351144221600344172852899500116609302074230823622549295915097625290296811033837048851436412490032672041907728852792547582177672986996509951291547079092910407535864694350756641947789352537544474544627263043983278003828589229572389564250742219823246616678236411249960664838730085104711723979453034138471650132860527918198354800463978120855729751989173691929004929625940508957898143980113874531516103654343531471076511449494302713970877740829795986181988325036987294773544424661411133573208477502977971941727090077796066874955302103163365070103180401464610750322500962240994698904913210825924322827570767728992132007834877569971305903716558814445132505129332526930772150502074294423676458001435272837609314139970161193233410040378606992359762258425783863336158498047410444256216779961504847946707505122218772892799687029363197228219959273427887509007897444201812025972100038334316437762314583734185978799434057240590227773085943848399308461363598891678377091233897321138857828525842044946972468674348365417354554559983326231910881463016995494352241016100775184306166704395651388795748053499376202499027264741453138959357155682008417102352256588283819871281039721517597437216947232504402294121257188676217406193520246712885113972134052990192865468574281062837949309815597015284213173562676876774662184868381072441549972591873834558373163919137378544956419150019751801112641751914389028919207650416324924097003079846690491546305126004888399049853742223481582597667338596581239548929305418211375005187520157603891280270680752809253503499582398690256294059785854186741158338084973924357342859540342007133872734009493099638102817385567553911570350966178962345175307118411287009767789963238352747844447694924754947251306673123839831549744290435898552193251386975933432442133203522525681880150412295866008111225813726882437667134070270037559631368877618756805047831920956739075527293692489509625513349212227162357845284045882678310552845771698730588775580629228682436599063194288249046081282078269019904201430977290805694662093720083785589178576870584319771395488185608750771986558435535850170981402366694656724176101876620926636949465817947087188267934451187704610498777991570561487493699454548810015405829376187015517985524830283230998510478293425702507630558296998928187681130358633115390822662508094915065600793505281613704726600246026414361152212818161455072954623046043849729364444088734541276176899057756739809972865551136690695858872343154656014092594773648027706643133460092550826512085066910152367333827912428485683609971238102563752517537730241978205318087448268840618420429192841911686624045564960322039050449887762708889054930061435035903759001580040623692263364233464659557061015984499469753349096979418070560333174268191048201180299554830029657863689453931236596793801743954735191403510143459769283908535813825253242953079868697129965425790325631405237823482059967449520438174780551739243495964503672071908967421641385571624299248263109116631647751453634052613740622326131263222438938135751145509684822726861302946341271880827142617840324171307819834407866106762509584069901211721729487434232246537231116676613466924355449689654853753235006626450264370736326847922561904716276288873403529329247992749577026590634652485514621060959607164543235035542574751751609385511321395311572764019311223412073626682456265521073833263845878599277489100847445879254034512924464623310835376576243014110230011110849830617793904566251891586162472202239596489006314785210178716124622743803651852680931504658830713343847154129433242962760085991924520888552354822893950948038965002281777695229645650154520324281152657849554215973757747106159565822281876803774791435952415306460524232807713444658964496336118219968846058916336466758914686015607231211324373798883092237402300579595617591564841629071948250799769444258393115309281366127029302921835886329724612097042471676256997691391800013494147702359335200259718631849627624091963365577604563258110739374410465716983563867126428013088657552426553227667689671841219807379779362055419749325805850415553177486234072387601033626816851068289642714198821156813500928028126139298579245040975699242052084712660174370639477611078692213697790401203147274770921661025665728132891914332599796385636340914851815780399710856645653446057968827865316855828794330488217575419401508633180435065845332240297551292997730357234254005179274014182793312478506032899758458613925437274548555350679947574089661620832269746085830683314366361940990213862150880932435344076721555619329227548355301920849438051208536269386776077583125617977593973570244298012454926491276408662298749744824400384973009644410347248333041552357585155830047375455554228000298835958022383997059951068155749465485488710538010904741028383955573233333183633822830592078164066687203260191036287740646617074867937162456827042389044802760985810274548790922260465577994505174780480405493241003404895846733125910819967984463061444036488804726497124745715245603785562275391444290921085497809708799176392286763316273201756204877291829185738511810648430650185507753312780730087442028086849881486616827498489161188438381363709755231019541878292422596866842510166658052824682476793009407975057733530013259682078871361695044881403697755606686839894936914083858675525468041420120784216900740251394298899912203894232293983093993495606799232048177161317861799705547882383825529698830819214641119559622177340728419337213418595965515569200711204267028709334491168113720287326484238035591771816487460737036434412412736033064280469596978875374601088066210790698168044385219285417378571719764681608492347110832017532839668728786990663522308114954138612549944236048416008970868964422635956412095184027071173313102095600536864921897213594004340316929411422150091339960724725105468405532965340549342217179325572237449076981278563670350679725283483428887821337851214645754588543960157880788139827955370392857488077200694217039594960563957524557211082456270610541250395577792063699170141259845284406115169776184727957348269523279708593956787988000646158648024916741981968815754689455386694235501508145183342950843751132870028404272405556453332159589036147958262691597901072102559225220668254283020530777057337917337008226955893109362898301430712588000086214016468258684418780590816576721533941820225807676111382824951350641336886138233446445624017614932039430188090929005605466435193311964290619253540809698994682193297642244265370001867682416060711128710667372827862161651141204023136435454462803072079195885058881352808401160257745972744154781306430299640675858828552196156685143868200506323834483372196974173899256975813687270575764754222477160396182009722419174091056455312777871130551760245482257738322820892262962568157482468499910364638782957842735894983077941250175944002415507997956996386831199779939948553242299403607279916222145599677085324512205757273245258513469293263730114327756199510705995696851793442048057834636729705211965870815073789614239668628319277346343788781794932878934290652541772010798086983240923969082346712026317019841957283812110204564845272351634127911700896836963106988652889868955133951470229665700926635592928001736826743269878204383016055630799342725838167266400104796212528005565409423444216997984481954006866310204888040194712365623369431930219068238272992310306641004653833879264544989020590223519327032653256822875767442068692492312720806843218929568026847797129095000537718313817532184697527386080854657487968755778650996088919448312041230574483957871742031713039956270107409741353788606689178669162782203928132162242642747983749590458757312437790314047573637927355913056020304820210086308648545333137720150413515389665733247498548123259666848404730895904591485965660476600081306044159582847426466621741862782116602426090245994139390022710841596722431768409878928022345027727203554464918042141531291688749456535040379621038756095073122805635259109943037977764323356975899227669380976994626427449990556944669022503596310820764027237209581748024832865099697311752857510945185611349044062897122827834001181585606014615571947280556280400922930358073632974670902650948897488987221747163345429231725405529014385933061467391051639740997489574867082658241096963427045792312066780339731306593760734920713592947708476161673075720388074985974132902732141978068320090763248845677770774340785013061318661847426098456727915556289246411727133816939895941474993381418248081075255715842495312103719016083532156224554352489355873383132753514234106187064628653393411473299978734167895582912742270228311528017457239025397715696044739014330099509842302539647597794203665866057610773140049723495059763356019840150051039054574511296693827920021027384840458723983427672582523262129512335886700586054667915728756830515407409943034357246934124673452358689838647096926126623179299992355061523871251355450259795513644019265607012354864356932594970660752819690964255805099027017927397886286024897371386992246043521109093243815019327572031789691723950097020994404595331273794773340271298981518554998260592570161600166120432415167049292206703780477298339163748034170989599390098570018309737522256293951673016642834970811188221692818521996015815006056569005496495296140299964842573610160716248166763525964961628745490850590113154525500241112472381732392276896587563582077303421922526692027933333136536022178897095990660671005510143333950275021812194964861757699343648262578099004576625967026220034955754419290401732964289952973467040547175902290723196562768971071185483192069591191504998980180020827639202630581988206189990250258222080386929667176333390500770796322895446677279337913863873472459672151600764303662943132414097158131533584952367359395552196863496321681414838704140770808887663715527787884405465562975120967854775519266498080982971335376058384916841215982521355020881453166440233886833659152911757495139904986731443975852325077757461389981481696056238864057707350019403075566679268387899895718593675600639726490108642861784696596132486707065688466448312117932565081755097990439133989386152577008141592964791285591066411187839075716526819012000096977501110604370384667929811096591135228501411681134329152077680106285925638008584241119650786608305738287831789645945083414699892073726039765700492337208346555431272383225281539304406862431420193099821070423276343730803854869531393110797982561124677849373802013922178322810057562857291542474382687851066870519338339204893688152178336623921123130142974010866317226972060095820055508783095654793722105492827597574614664722794157215401499848284943508585184198551067978927475079704462381177471575288883486630178672166381431881691183835409341115937988529005129001211551936588201873965719580268294682303429703814696766789897362659691052884208746066134802028535633633797966865095742851656234386289847007833601829133785804676591984551653573767761581313652488005363700427634814770769413182964086221784982317328397632683528338719893372689865909427331704121910563956103423865602071741044637559738674357086769754143331580574044822689544791586307823203879010885833356387161959753138312114444875179674015573327835178682112541365928754127684362597246941701919140589623240096281518916979841683053063043981820153061403757342736683966143601231900720938457618877065251777008718961095751632103632476272401452571244362254585375651089418723907606424944827690698627678625205775552185733149016100143429685913408312347235283483608115921188372783347472226553251363081593280295914004916599892674780511893918198634449903000996423044942049465759702410292812320980251230891514058468195438801786400308838674890825306089560607237190561743702944444729472328284955220862861176502972356410938923852647210211641978781725830742580989720913344515200700817860962512755823201541043446721789843933987770265407190114300131180480684793334084163870382372917671374738487095025732381806946956339945229225220488153082218383568095580100793906340998505691836434410363836186258505168030646843049027895869404229276375274236137493876511005629002203420803147802822061206313291996975583862692999363672517388084310839909182768641222973701574647879498047431308430489272469073399826648592964039720597819683377765997480530933391470358746495832125245210207986175878539076343532366978601550194179149632263825288621453733028725160876078657061694245345211382339046493010488913114939814679854186237232925514108021123738338558539445379236834248884100411245806155326519119384495591862809539209332679864517079534727061605089853334063256014175506132398800551329431866905587047035980823087101329120148713812941367752689288193545402035761120747468461724778149963761350523592210834552341654679248501412333329450433515197481974968869784633917744087279520496686313317419490915552273999900881236345600842296124527686712294575286080147728519690876265068878936409372162383402431771448556432730686891880976384663935029848460767656678310873526073721810015139728827186798397389720808047059931777940705270640938541725085136042047182905828564502896544886804675831223493285233594359367088392536564358442619951902134024791621803151081640269703299728476729031526936078759110081097224791020389642166502510291091656576556223021323847868857321616559729392391234891389288515715481059673632917680732237057750034585914362039674499239926684103554824345411951014763217316354958338465384093750117924973281931030890764393480271869735438774858342383070514274623844933422782333643557944468397148759301865705697817668789996142416799923210167641317199259337418603753967130452771403790453044237573046476295392934834364422268964443217098411880283909657684494671975576658029851139127266000818336674200140856213673077967946193372888018241333084780324641857598848624814554973572239759961196362133214646499004539739230022460675678163828854527690495618354907460505066384732307129075403834473894135828457515996012731159200347334687549046371460219404710198832650984332740285174477119775798138275358669147885507146227015001902149948028927389791992855868513529971678642741904831672736871394162656194704471106360193007932178816970999353543824359423056087983017258953551944596583555821433233152617998650010847984216438121839031633113580367130170342676707105442632736196633971916325125998123010865014444258753059878306307585872151805515062025880235038478617968947549976563185774597887237766136068974809353384816777001519479551968259501765491547815405645188552478186534418705727554515143622037666487196773449621669069407375988099651847574192900171502805836121309093884051963682815935333987587510874212023902614725501371096442896188731638262846114172456125414146084845862605143353304750998345814116262751768953657351540173960583016488868960500130221731256901630921240601736123159554083275950873983636363008216660994170151696412732199673328846701025214512195619606571498808924316579899713061090186569355283391715508490805736473027121913477068695511631608383796384427155025022200393141514177234651136918881507243454321353043745991339415143419376260852728002377861889863660259528455075427143195140859115357459430221708190238904700047006696630847597440301608942481523555682662671501931764115264565793053881179552782576703146978937082460213882372358097589748665629381182350767702756673032471039909250952600200264400360449065562259942117310607681958509999641535822721894308425464247613173673924655179220975676041040670391893829604839153080670058102252405456443086618212391990375358919184616410776668269063408204269207341231990932952082416601101149001911048856988231190890561075892304107151939601135125598637183363918520640412233231599677380123110262688082417122651515761063447605281687769965865227566864769547965014999055366748921613993941952148414309559282968844977506010056445369815712710918446188430946778745209066316428625378741319436404643036797044197137408337665735091367127577956738107957027130156881237518644584552536751669637654213224443747220348605386480432202291303083335903748366882975095631209740265701157410021649032225352968331520680834400726437751220954336864280155553978970599429030501343053535814986073455659685938831893811515562149796142756578404769316319074370066092092443629757894184337328519936553902094074942248569569313428968254340487541612915872919592032779501788626532042464848989244056131823253680441521770104567485796059740397006692628140730673216588988805850023700195252947048274716211661277492578606950057775420054147329189000288743166218651472899519747008624284445422680755109436493727175526595698238202632103839763478518726653606158308298002626071889071031919273970938199412906619976226500672008948273015849000868341523613449332833296708530902000228711230922703231755103506562306989048659091012060036437836154632283064817266566600770504290790871301981313682623313285098398677017784031964210089730026687168865300167297606881848414461995577488934334658811906547553719927624337515387025779548201988825262488544976418315677490303519546715852507362853225564243882833806950252327241751480141857787637030355684371671574479432375235596809534606637734358550045638009721319180848687163083275591650523068330582527960354305347299210120499459646876110920816963541347358979645196514497381747605806325114525635688510187586800073221165540805421879631165870086781329984280804330517345979401541666176849566989978308994646558595879678210443542580309165620128481058640067365362025581418636153943744623369410799964825889248193311350648456705480069432063445412804331467506431660024119594241313759624062004486033830891338336258029937832471668360000016889861607124131904146873286153221583153950434690394414977755812471499334654508542966193828008686908641724856929042839116251869968022113742222472451174136190371670200526438765172570065983357800631518198787529642058791779252928638061379455130317269537288188805095095637643446338813965173009590958002436662693717094984471297662087458502364457512175413129748839948511174940256141064785345034943190886837083559591211242555766311314096418653127097859839347042322524996959954552124670851598900041125276591776637569833554536521129731241590662358107132718638709519236716486178188667320290941124723458188391556517591817685820922996805542426859497719078253892392646638218334992868063966117176647057556418995313527691156747560496360840970089280383115494573400101650930218507371587821516208988925810748496941136974896988847129103588823677072023417045501850236474521055314885859571277693188128973200082479997355769714427357779398100954713593434211539286787006739858737328949256570277477915736922123071814307115005254965796953017350200583691385540495025844818067832796724038646055143801288430559780381821073994715138596713408395691280269277065254954009669597587486088393683836227914348687914342449836070957344646116223500266888441910542454721639320234858892649490463403224219060747518319384198511531571158307719989445954781600678254093639954029755812079176843122136796612924461447337022528537189521606153676308101737218608527644801827521441574461652292723141901067652605277458021104087233284255858227470267598658877440515009078322688496641945642343656964469919019357406751862614675128918731795742448228069122398389036486767963098378995397973422730074163309654062518373139877418455212000798281998718713368061722875121732724627392354551238558262912137746955778323342654131564579556603145714912207964946261921505030057232248798476060831301313911572051491555613236483473609032054209170248586416322139002585464503992199637589792421595947403903125828781582175156545286614871226590936347070822532754699073936900453659868554426548592874025519146163601382220689783102224972646712742047442228728976629853538193126509421975748309560006922441601284670134643329863630260166767922846619568637536774649430953477504709242933511570478073708256799573736843570448322882535350776911066468595942393803120181921346893846414751156966147114693481646227513745544897560539420990178639327340108517583923011247206006148890753520753480354107368013098860010582341365572872381157435596004354165661019052121538264135493381292692595269794430506984160499350647709178889187810831341684603500017764451074311211077606542645261344312350407405229669862968983216395606758642063494947035695605880354372870191392867708872606985277923847060961380040240173228403913028077549958010493842191593359222113075587917374417569985393010636842755913570599060455139469828548451862320523694706002849231708926893180856765731395989748963902325995675931100948503188024593036547490031386491908334382479153112497077556457361547322949279839952818374991715197277316777630434282346447435729909927206671482439503968806120057715447123406938700188557187208999455028724681274269600523732468798281161276369670903453020543807567238832637994280010041363436381236794465529470484833424302632659911132662695171761354617718359808499035446369958002446824678951769591527220280922368964284465203152547641748752942713357557328778333777038282874822424660668264886868762898804669378710940716640695174378158061232048215854256277372808602655582739707093437128725886327909286267433058058088453186352504599485869303469315236672310873808933788258077522926299277645386565315787169917270408682604357339287264167651216970326523827907672998223869685119892181159025608957198120859825846515509249611318311756944419824424955561045615437884741432690001663011717075758840522736263296901305903960544601784094261734580673614445888362705298886019379783851291672268720671183225298441341027618262484324849995115378466164356567541578267991487114148852653949570107436120138532350716544097934730288068426292364258674903347610958035756068437159282979154448261147882928071161375381206073748118612941801318956007289513300279473579002685629271599149811580176600632057670423109115868883436095147352280403700108834119476553776018393976773336160599025483168316201157025988095784796122723405533894904479224241729670569474056827630252590901833175992160406627005910771496773082332866843291626644852583033977768771608339600446593044575678437023440455255055547283183428277366338406989438499721033705612855787177903069991722353840034413651727918137826655893516243747225665132293667075761457327374503551398390845055783212258295614337359260852624218977910911950244516803571499912144415023634085554689669149559431096644702552059572164865718167355841276165333322933532902542091708309703144028334697473895412141204633666633765886199322132491759026883327809706519445319104522711189884403459073612855620347777657326739125749025006052110004604417700000906417564415597026534979258508727356095595782639458301578118944222170357659965516736144453107341566032325306571269960372881936515501440939553872959487956144267482846311293232113624596065216421381802576391927095558543190259320683377066895868368034837961950356063915962417102729986497188423925808271974217543210425692288763435349401762348431329586541437890987552730449916176684134957953156276212122704240329204589288916818727679328001200239125286703472526509173487299031592555647320779688953310824770829743988508501465756385568696152215427207465379433703049197998931437479327642527232003902994681699279244184836259533723463982616261911611750929212290869996304054416878307871319333459688284887933844036896261509936194584250293490522802676589949169046674464563877575959694504347262415181634462576471698568136233225822198280715088067430214818237609741717636594810792398547237505870500802626281241706954145528186465571715681545935896145123047571231518612859209272271048057747834490204771215826093295257233850219832192686887647041444150513812420214540890453564742247996549407008440970453099729206671888482619460113092467701162208716128790330932123540468425803087304200212887354526946724144547667916019390764853921391613601219013498912355659583010499715828983078488029622897538144849877221765520192050813324029103532749885200436354170131858171345908654506514436706338464410565791850825512107585428884735527442908584451680584226920798726691418713225969497332998465663391024880992219974884032752886668795005309267481753287150876729553818266394745784003961736721184287238345850240996467891505460952126173837934144394892112398997805184802453117399690173204308030501990172354392675467854244385289485840259836192436680925078157001025636485316416964380823315308456925932175503815565261180754158206988302672515053302293310383699780082360238900830724992300671150511762323380438348806956488913474781185982207815207558922922555155950257505077376179307197065647027683258300635276960664953321396204871702201422247506211741379844120789193481698035341837015347207046255667313163911589554291400634392954131343709692264407009365370829974751525693385000930673124215750987715182063756470374072964010084018617572192924800226763342827212721925692580198935213539107105847004426855871813815288371810781522067944322311310946204675887170394833732163215358412680942693758187831019893153307275155219938915124320376137353903276383442711945929814868704153160216603916472636133729406672642597166083099041223866504959689341663748428944582386190131915763119187407162464236934899806629064796169880920108965784621624703281611637026821667144991897701182843743724851494946901032364223396923041181970517271612530118150202601773580550527619063374799663605225888952766005433450876136219147659871311054458880656524480434910451498461501624463929602307396908626109631904612906479499690186544775247062716479727369926330928252650352619224872321140113347126406361497780890493608019142285094123475735402589217699072949476970144479577656168082991646428635052885283275691527815480541141814601010460978219401912938562027284495352855997327415631733528437680899219955302438431670498357271566778746023629668805889634820633185861327316299573957299619319866990604389871455468704972066921651671543243961832368150895638078075465044616926811857853548225091609401083517685635861319285567333949047760225689620355202376359836385203091734768319862633122761245864845988927833454004913646551738668703768911243152974962079301922806819778509330593127815296505529242772976783381538727522190987890809589454975492035813162567301984576980618807663500756952783410053020879650168017923273805293920815739353259967165993642334369289124316966971718575749299218224456876640063091614443465331428689657279213010993001174098282605932630626309348936217671812531324083975118733307568478121811727427594806647387408085291563006222180604038897056207644288067245506590333846997414813191840110557727410209143363003483368000137590443280745445682541640614486927389324968260867873300882957454115687547120144354980221034562243119671404627480012715758489925543591509201453754726631330953003889061707738372231841236686201906250104420013663668170948170922863354541755769887533946076409101562298997949420582127270173692608317423548572225872565458899073213250622883017437549650649332956880418796083493657627184986193151067894582485254270070155737093233001091849200186947855061592143915204580586578984446005592404970460769035800025134096763058730071000990012053778417206217179888273094618268954917260753585523491804291027501294770480733649858721205979286085769823731343859406388376007039221010635799301687098817356457770567687042891668284267914159640141037362017782280241321319140746385151042922387121793079555449579960233963193902471080041720742477287188449832325784126393555768909722527564017175236865949619337332647957683320187057812449668928131082771131344590553893630831381934782957584707858469476812522783988767816089724330584168313375375582297308941705463109497220266154419527307482243554934965251961277181785270973661207252302591982461895508480962752078481924235137475111240260556588782920026606179397975756889297432114655672447215831352216086565762896974156509628849903480341002382731447530497429882091616659731093996173017660531723811337140367482053133704071709378044474758885628004626495372853313913300134917169318220771080323921597252687705637880080939027578327520150759093870432937108046515501216890774388834674486388692664920416062036417038511418378842455380839138535223463881285575971771235730964949807827847787428968027564698102568621384732175712748405831772008914204199674317401971535779715508713746156221747440937816878844859519022746208221638664218858956729316279116682063234215177097786193984447023146587667696008851911501609261466653679809892370470011824700877326016149764646379522259978038284505042402890207589036515817705248515990757022442185387304079452938611210778058203102872589992342310966183419832889484906324884058007437237035460103296817901108222061348614589815472327453009349757151831363450097937744415108023563091585610179140550082249920833042344665043738253210918966328072122451114930558302843665232761905845283139537062381650261884857038713207565151140753666721535073888033823462313226007727908471313578222932700596335893730709565423554407000410527593738782051167109957383689164630450764411224138022888161385778650694647671545408224834146167312348789089670582990381739983519104803347549193728140070046922362404994093086415937757969300810292155855699491681939438083662913356661934349170350335120007072642933799046299529940392839934371006884450277970617506562882094282385799256932673922013391582011761787129692415667044867383064620203384941513876570822155178581729282089050481498905913438852233312896057249120705412514319481708775763973865014278855200294191928722005460192554617209742569707731589981340237605088971273997828804198185250407060733609020959810333269119589590843740759583422025364095063125045194218114652286543487693578901712677025777452035750499058113530120572076999362044615635082618873431491550146424002998420079539455012256521461053188007481943384494146394159600973610738934937787000395435552172303821698585093001680434845456632068011604329697422321171043442347030781594667956146859901120380219485951870235536772264215269287726115923767575637913171207126251552318050506169541251348569588700328660014851317260847996035169428198634836501150413047593571829825599290786500042359685065247282869261929573891838004931856871405552975307117990796254355268895843188124320100315300876240219727988590623805390030245982900075858098779020299467885898440054956411966988782472603835921426734605826126512800888730453811273592759376426109318670310638350381216214820877571607085089782558190498438463724692783121833179348405211261886752884238905683287998893852492222321626075496593260210164842636599761640215181157317360300328534152737998307851406187859996626606152957516755170638254494274143653949484456225918361550501136085486891525878193137995004894597861787969266185712385314033031204624852607493830272104586939355078300312169375625108646124024219532512120431334722870753020373873634086723933621153307156555854338800589008729606636126223137157935259687343960966534628580979588151238092967903137424305107772795044416787578836136385446695939283712168643885612543938941635616087125547042614811779145191325453848367293296098904301790351688079665825480949109393882581617996161837523005336295369309177366077868916180508351801659888595631404819755594329023958327884479779106735205442697198580565683113758114741619498528883868331552871587452415786356388412610814938349782456120603849017840666258767338386842449038459774036351628921402618664818558327985789276218013451901487775067013268236246335814535684627407147296774998492246524214611791562262061069902058018338294034976366290418767430854545050728776131266762351111841825816921493542117840304633813599378543215170942542479069861719940794625504394082212490044995947838683819067208172278836659373945651514508869715310176442081828351389677854508850382445211922552862404746709667567088467245113388926776534568465365079053571346650268350519497910518867968145079709320832124389445420867547970360458721399717729465224636734944446874807243832287561077815639243556462058845937188084667475941756943608317251384220296117591874027105883395057020679427503438011062511035817080366697889055907226595533068959176314458166978959581236253718062217371390605515773874385643820387396704304344790041335971313640863962269531452755843176248495862747163354685855584662470734708241900291119374804857699828284458770662539460038897583380885346311728815191993603229369403593638969330924118721454831680220282451180648072018932516317848728919035697490463213946601070827761012756979806820299120872010804459147627777660109528492227006830470642796457605637004095632235127481975655294769439019869297623462337694616450508238841827667660096305619787008206933268105865725634310995403593661909073106220130121536196631838384426495185151518578575608701713932935990961564045809882592605852940585607951197078446887385501045270507858897143786054325451007165384006586863205172353929827256591425798846172321705696438219263561023841203463744274903563406303326042656498047656270911856275830841866333273459690939783211858520479288881150944320387934176885455766228181204734420249895483749468227008138037820390148883664885704713717528424724445211193698248579413543559177273073554501163113195023623990079698217531629642668343646666274143830441499800415930425797627972256109864475022582874161381919034965725811055496880243533574993373835566127105033413358538244943527178588448938562799259686802127289862569974744984301409609411720306650498062096704116163474922972329877756219351747086827991829806410173947452080014777490649792772869788397378330187036391857515663789130464483450821529738997608653220926339170544884286888199410924695029116332642195321832762796717168375368509102656324264622661163873684861990668274564736657737645382205572780802204740119484454823143271677098247863873943333358049613348037247914085958274847162636297368827509869504323197010479810637231932076008475525865909896692827935836990885435249356834438294968380875478714663039610894751056649884739481439796231927019408382413883475157997668994156790955862902531267069039071072469629360147041362400041036077345893721316532644689767599629752898122241254645042061648483990947742640701548979696972930299618070361075746236485986626294379417316076294894927555146160762458553165083029538667030633485764907608285097135452859993291944411073377116032673114358976559929088522946775261895687680798522969952748959351253660404403719557295089313329521586142985220629787276469354921747712445713504685551048580040053705294566515867015454571609028658098375492497123588032807391008684949556048810455717541053077615665574259196752004013755956173765964452571585780800671492209007558791275359618938028071060688444701763312783901477387389632161629246535667396970835478922468682103093816490616619006625024172740478184088473611831096798811486468430762658602223007158997199734726471741801423466423466559396606595747680136031871295696519847183813204331255329008959316559539028065682708202509606917584856296499046688557833530409183389389552162850433521336971262916523982602726088211254247671710259180026433854759071261280791756685866106787707131899441893409587202739980873608272793307786409349182435348592545036242096093927704285456042745359414556592515147915978770793102362273024884182295373019238229867045349579899291155340137838952330736887983518979190207388033730617251224170002227612859792221577814214629373649801798672121508192460908672954051835775779964968573123615887577703357993268726259172750681882994211830452492826869199428430296718602566992736390497775085626390947621275650929253489004201812354454244168196742956472527009304766978753838646604573795308517453075497030444711150355097527239163616290666440278200422807441587540442750832453740901489881618891499657281734428818655836484304830056102316128774882392585992188630574138559880365359289351654529573806476843489326214231119231660157713229527216597106950076177503375714884473410855712252365347360749584350173568588006212634334980718987830633735568500981616759170739864639860096010932675586333591571340627593794252553132776215407674810909154636231895241775217922016218646909345481280891115778788759178813636714364025023365228333727313607733262324648674485610708393942177030908709969015058299460639093757603604544955443389382328853228958486898366431176855383499228044315421145625201072943786106992678771672371158196034230696730460085014432980854961593396359289349748761864900771031289863472185802170057321450513478760283760205585591323983644095071506112028961499183019902493838238161823936768781845357109902876855079614114298810962192448805569189094586743571340323475108366602813024750685300781386929374263421325695765847607680274066467325010148046067445494692050057571581883554999863644258462403165528287247985302514077435356616719325807081453271311730322075731944192611282905025103230067227859139942770708600288585656286775891221797486843619052153553856880460016591017868956682412400120983950549434205887089995234829028706801775825421267675554336384415103201383193749689389929736388974443084392328101877515732953978720345493103773703210756032031330926187749154121833261832178707750342025957017789061089498613945200021054431342293943002871568826845615990784097418608249242307943056275926033936733500576271898265134079595995265800472527114312430795398635965162533851174534163876143355106760608859999354121428599317263015844736376746231393503633458475312849916005235117429740408981524543580230831859684014345330243817015732329683798011517626765860519311551331066005568457267416529296169304006757942651077306573175954839855552164365179585724328743978701269227831996698398953916786040482287905284924407025188634164017507544586203188287520205943182683586190623679553311521369991228488307137049160144080482869985897503021892489177418993689532329393099944345506645450736649605128712259034490014919604068506283131238976124028486847759637018020713777697319695244360162178487474536032231229210842614760031047659861623894764192901432566831154155557254620569993086853593360249610851728500234144500805715170250515274442057068352942090626306355025027271712819230606208956598591025941767192425595937977132931042046807539552569153487126263459161229827046462017676082834340168066202519553466272359878397298967737549881269318893860346075446205287872356430189589890903842092258661457402810007170692773938164373290612104095518076674780317937912366235604574828186281766092862029683258826519034546469848732705957862651519159367478201888271616895737585217319954485623819578919563256646793730660135603588765622727545607327915326801320929944199978058655841094917895431702932099906537786252967332845104930854978977501161539215445225594194018825397736730165965368126934026677226712583994663706045570090179620087833799101960524599091062531062293664633243120453722863730160797710180651273126219616832886497004841575370669184599798840823527266956355481994480024582603573774327458001385371677548717808591751508029497357902687116217908718467152177075495327176460091859868766448724949771798530534641767642395454586659139624388588565983645070199921043421637680672703516822555953996832000683921970544657771292777626151863727975429837148855623523230295479625560911880371388071632560981370550837640341326072840841666384267079261714297859301292101485154872161899686509381990597899901455996769095032992718237100037129109567556530017653562464200828175393927903276980322967859246159188601564433187932295680237648767374186602652558483713649580959957912437833512892758279324885284693190729933924624769643943462387302829953812708717296829897101883922534659220047944010478072307853221475989366005794293625681363651761388172701622985553835629993323532469366194928518563798883129902118446732092480615507628546014131192841063603689252481106660164705426208903634829753931541153594601578770397340190058987922566402199662268683646061510787058552313658417957988450949826354940371512741831377195783299524255966286528879250821723138991070281462321901409722177325241273675071741084516498934712930940198206739541570311463497183331685635873159156785332202093251879083098274942103998722216163151756990361511310409085668688533753550315279363143679492548692882432384893391317869608703125480342891459914817445108376515160112408598585278738184205742340373617811585108566768801814729053976172629101290771004927697960570110356003982041798043812383066027456793047025076981658816830319948057080985531610404108962794314086197036797017287381944964976867774890254794401590958685636050889556332546380213319189498410159580257723763911881030422556976313519269042604047268823952118902433875468540904138782573749067092881633838667013611149986368815679310461291700721079984501870419307840822204533584993955748541738183424715530258775327867647948030819109486859807586458994705890785998528225217946218929554791613630884644707210774045459764559325823970309167896057576502266056592822006143225792335542950464497842597394148074639012415799917188484708186384401685583497323522173255242687000407194830539332979932902447333812422002395938300770741069731249679479203071291913279802023620023482577735794616018865022662734894138790428326392977278703658925614698703486438732826402221487640241248552343703153880073009083242410464806730818417397621529276740038317034521639576860104976386352821163491601125102503920289090453371668144347599040812729406178664558101380720567288342282457488050600790331375789160470158807636834398756375064773886694904772418225093986939851934383764925703239617858403422817411969025741217550726180734698744785499794566072604115957323447837716537243843219226184417682016883724475718204533633290905372812336580712780953814650312974080971989911480846253972171743202558393493556351580525757055463342611084842597714843291261091559532563798983886658962551384566260523598609249435567393110089128604482939204299749639022789920150498270866962928816015425982141771832003685805869888931535358332773607528037324034757673061895402748440245473317898763981428247098205894331102854189457099329446329369962812587576537261176079738534814308843208043598627757977202618205057438245325113349732708247409910837220138353061218819807636364337913690695402871948373403555518827974650033341050244122534172554551464610896327492753510556913150250682347054729600430101320354005510752426750228299122291141718526885137362284645666336818254655553362202420805492770704480425294993221288535505644079706973889573557617012292627911009132084222154105932898512988679745723853681081294892650132078772164456482326611732952791643379455146542052653678404004086545491202111043012132210363020321102194316451257037544343093718562130558467402851080370171097751482608347364746395322004664366418932687550672072465251435269177390795991711770449049882088287082525632961961296032074927097595454803522772201931553359876240796376337107435469890434182349487318095233358680260451505168316157553062411618207931601327503092002297450556911712307391799132430089561239191367647825879646900840899301597065488967868425348209735856452118594627615662130868289959291311877386984571760462563523796329824547360413076842114706957901845074147421669401666138115151222209090907165955916550021030512166169742337858108828514124668464975613086834853274527064363139362335702641565063962502733156722363638423852082799424741633913661356269525365724565761041476004462503522715400933928259372767035242534061896562284598285712624782582059868768323239212545173233627402393658532902022523687824452658969593319012186410433869386121395393112346556247137553422762391823588196231733410992462068976615933085267960669351002180182154163954922617171770190069255674795046994841768104526284456016520007176265213220182588403129280854305774761347489427911552483879978127664653379639339624674641217723005738549887545445586381804483689915870127401505091983364238289326752480286672626371970235715343017262368379927697183698476538657185359559948541486404196519741784835850217842281672425246348444623414329281363738706910974962891071088933372230524389685046794546666990752691417375180267676600096160575932805059792547256773839381423054002012285637883578673187850039178709328871493199511971740919774356911617666831054787608863405789604738930332343573855329156262729091346742601005822673421843987859927461200852277560443558220053585497114802928016324220268552762248126540734809096802374888448946585938347966306685569086787670394547373500513228920364968757547658055918577409776449670988364979256752563204087287370371234883774186094146876814857836086718454349122388490067071425831086586819879269572241701956567157301528383367894561452468348506460855044734802188035985808772520147275782943418259090966734742070668759146741242625129153021227186568863935692488597524357572116502508837861070052314950634638508014446048526041259612197615321406526515717214435503235937164808179916908825724577661613688489549060266656324190644557897223715077630254280196675126877001344383558607634124832083900603409187417608411737083514265908607540139172911619416652206055037005721325570577397281651277008796150188349894375826990750090172214534833408332200115040245195357781822716192339470252856868203319565283350975793402712946678029460417110450764549367401572899032729224826944607267130380094761424803902560887913179263661385055423317888194914964502900984133696652388703404927721786362659549977497547137155798867945308097390476699727261188436159002676562321849068398893475935748586105828198751091878349252484076744314698749060654266366391498668347170610450063985501332266982647768082080286701055491257321412399977712422683612765539264102149579868623716490303852449251511535362757821247410354992121770506260544685798363612537244634332839677829047709904687122922095499545279881319272991180106923161496787430815296876317650356398089777881167360366590307385716914071096734170080466888031979511779842891248022348343123830047200534543564753993118181215718471463788462472206106959427157581959020833333587833384746216093198357131872148406844897780166714038518812331202730984843408587278172298029478524130535946910502897699577811971461302247926535506184715462080343559852097207356998886142141208281860865928201978044852610771317878530998093423122228855861671735276134342111370275798387426525095208291116170439707977310877060125938170460159653233889990251413426669510343371649359031316040494332008154269815120498248846932187679757761371686256528284305641649829815228436623302209621594063545096297973802875243536236450692857489308760742819519749763594014692136513832554194427520693092236869135797933128330848667470209150333217654911785496519019547881962010070550194298501846068175658584244620989402755849830722887406043741948260261237607440452279213591054109714240414113495726434251308590743339815893476529853963507791885335941375006027758966989182525294077489306550452948822916134977152425025223556895721758640265231942332089104865317568442489380725066300758135779013679398604767410903731082374065322704977669635975480677169207524026646722605912522793107801907029888328815764335471249369110610526259938065260684734614047639757393367105177607601158344174116573511761839117566677263812078549274102004860149293399782088846278505237763360354399794973886703855022620684097122485333804799563671316265737564722756672416914431628431279655431497865710891245072786552408915277725015347626233831407596765752372053111739143310423029878197126504250297830906705206154476624583514745542681117024690986712617025529184090072702462769881035844865578274601003594799617472451656770224786820822835810540124558645866389724808538920779277543013769093238358597331420293602261325901299402991433014196627255239374035219981179608285363078095732406782112845458720744145370770961020125243743997616475459319769639968932552193897191727319650191976864620299805523931030148331257012420870122371888406479541520187147566680933980665006104476555187005678723699346143148165032843731718626183395940672039203064923695682550209482874698604913006079754512177625626504262689838562667281402441161938070057623845440131837070634898258499497952481569596052422355955590193066661124026867935234222930252161959362241458097572976210294234459562802550423065039821551659816012292926396536599023892436305081058303186516723984431322328951951891847334661287865690780870002076995020164906128359091919405230115987981103557140985954965990600201456132349019267742614391197569963054588211139482852386789534111302111474658483784687359226316368069435644131330844934404147857485661699763707862884134020686881389099687573786922363852402840552285890019737989063547708826806616268574272374584438303159676435805726987472740092213661509829465191221892323687808139811800227860542040587845696781489556778187535501583909518621707141923004205202362677865872633653930433701586173640585355252084015014083156846457873871361294068488494952984785268105214582283451524590822131891248893441303294511478491658219548915353222189712649759455071824466448626007939405919867731621202678047757099994813892759750894575283694037864785704115585468196896560825056143609043587983074229870682141621200693848549181339975394616393358688662157212593013353342074486829425145787959362662028292873724566779254182271671397752415855303730218830338694458822934676943535977081960886573279996747971832259688068918726815639664875300057181045020995004175138110721231487120226193295888222680869892511192402991801741109505969150766511882784005761898590830809746185326950481537138215243860457176813411465474242309646960367622468028851415861229307687888760505273750076928252065405350887784529100872220954514497566775480707166056488474142867896942241377748271093847385092049733503245921917999677862446163688112517982934944877820424650993189281743483599653644126988461122873301628402085562442096797436606170006156073374109572363326803468039235709972858207267433338964552748056019681430983324187710427173166583942005533684813111365455971567204035333028731341758124056471082710537858241740720683187321772855691216795228782186287196445050351814252032905694443754741651905556639106294035129094087039028741254786821567062159692321418147564735770508116849818845832177793202641618749859828230319689235395317082314653758360482966539890183668801690463134147680986355272312677353993373960197237745726700548127092199598848605717987442824911707322984823164001495407586941053151327628056459676199741753151981805267968030778038884670001617683082795086713227414700510989290760976463651666337696720537598119201317293005525130090710923293711960593571129825814191053581946800422982846302621647695652133448484107312576895039732988219038390495655487823128592328992785766945938480955010484858295947041754312785068463861281097279776642594203859240225712708424496398117407113879898488939509021478219502399436460836065015857783890847885565770490544331394081648187473876966547636017118221693335555015175612020542247796062325226010807675599290720008225633843780185485011353775188766325768882604908412934396752725830394888347146795011441583315060842159523780101842141406768612257934858325459646391898447570609172277756363702656323481278173109149722054481572882334466870040754953077043911576008653261798630142473451850780954657532848180132853516015265559765253587636347688767161790337264570548597265958342596873238936452810245047083097882587380911652243065690300630952162444065611168932533067836586257747859948249126263507154814840402218309497360032243718338540653971414286177967376449536107728084845163002344114709215388881343535752236230086029828406533533109995066771202427515837942114578338177866207696622402203416867254794446395680482152275721490829863891961090607928714370657497697264259110324401510866625202329991047395669987617980992740502138126105819552175471831768109546131630614443037284725940183924411582710110371111959728495298531940466435591204829532610236953139132774818102115145312805625475041944706713778425234100722670903998845236994453166685505788442076397738364607561228178302375872537769223072230128358486365269358873245878620708765791143570105066518400934619314077345730419267452911397335538342641386690011715943911603368566940936159173299787959623361874683948549878627849089353233818082367874254045806572708726340611968929708665732752760092374049192419259322775882520996173920396480965719177228220246320773012419761143272418165443143351909184669611214170210254483083100965111231027885137487403374178527546278510638711914536539298017581757164157149878392301015332339652331680118523768811156054928549141403624368720270882581672952215991719774040741992491096122546776087325331585229836142300268929163727741969163166032647752474181354402665620129179804211730763820423696079029332413561557955690871102819574470690118140561905886153517211946501716490844222290427143468762530278045310312439475002164820783253640607130012953879252554495657789205512481015642960357665991137587941099048582230363873691610354153433996905409112600271849925790995700993448290178720961772631317271229447770198915978937065200358920530145346797768621725683294866180949020255368407284820744270366552295371404507514345010265615112255636363540187566927565464171911828578275907862138063301497738313834747166806424473875550007373814111666258812088128299027999060447926813358261675626110947448763485736104093512482651557864616636162800148480136910220595979072848644319902645981517120131760118260498672373675057712256907141909573870396215342132929204251089718875319420071558187172963319211290986781237309664257478270669491834036002086958161106357450356723827142408297826146683208359382274589955689025052265360935907549375129944493791742305728074682614262185779040637036282958819602285655557372804771171920845887499675259452876175809563379658391937792447561306627338923329599788606293743798926574316784220783680023059582947843914653850994221174852271170835827235992616446271959261166324837823570185509157596931226916715481912248940159849255975508546157048989355603310962209637971537324853798147381147311046481303463554576181365092722306789552231927027680871603513876137440844923778198501406073003971542100649523001165727214260825134731440998714189210752897512151113794851681378949700172016215484520642196793129672839077453203956672469291664513315841235701976467241452319922323505654161688025454872191184611550842051651528133061699958190377752966791999551646628023204229931920818065308243599350269609814490055355006950896263791846080440173645481256611312122191051229677898028878853258094085170957828403382042923661436888327208977036077303229920861550245033056703563813785587865908016686233933170295595513411764024626446492023734591068079632784505890724634328457929894145188178480827668490666791838799791227643293920364999080661064095243784380600762716669677791061319067199991565040910053600169379287184016620598911898463669635319596841633131333118041759099143402141406619267803662964773878768516774783677475149492560263146184839337284374635282368893161926568626196892321797526054766573930928602188689013325747263065462957355830761919960098376434553328529435909025595841519334229713470947621679263590614104976384055234444737976404948274005391605446444654555576235398355125364737682544252328109392814416573009887903368577413189109034936522611667415529925483982931265367246608343271098993149943367024353701520725940269724012858226643069807583024924033138629192614201309474016661098256560379366527483124790536826757185081218707685827543308377294447156175272412644297423000406614851421207229704322036838404966278132757181101466154870728541508282319998880996926885614659889022040076493377888949838658545231330949186651055084795431784382582320890922982304623266034288429664780190941708478454628149884878089971970010387762393069886273250879024081055350812208259102613867688480226337437638768517916170679342380887615558699816876604181217564855793402904414776053012518074772154652220178569791719811744951815068891687147785103609671389602240556997186556721374047547499127727853667454463997811274118272902099671510338926014199166963947229524087086415956048055657788363558523561342827191149652163809560688623710182461832204512170547880067298431002051501941886463590317245946112669698563316728958359864840878704893111135692976502117141538416886834108726119786215896172530002322975826467039506698582388007486194065969494018027559938429186424046135913226405011731396313233936636066020583536426891436872810159116934679010308869684756393106202591814921997667413295976684601108700022201791895750188319785153655533465697908090112822607893982487107406164531315215533987036673870999041308789200144991165194807356889733295589341211809595394186757760252321941217532543003283212364965170550611912286813724040497338454452801185943321777902709947900688109115418345630985973992923700854814639254846292742478392255873274591700748735036151049666983708553840144107720662119572031933984233718893269378372166691270558448249880084056253593217501820677365605957311497552709858937068765457885341677664161175385370072173313082772317836911229828509138051527868993795987675208136498722974714077538770864121125172497690267525381663886685191119998483267375809741216676734550116041505592810867685040112346600414931293620878501578210093452805313956990195339110345222859472830423733799588061057623687684308164184643071864940103655258403054231478306291747702239968554671727575207713697800170500976319476539970250114906210868781746190718893514325428468278724420234703872986462885595951000588924841368859987563107467460075534516291653458097989818062825943141966888329188225782034930569723883598009942180262104960518499557790431660897561918450563409892779507999407783486289197914679888900795630694138287807650134801345809695580997815665559603000089467076019183164121461308896567510122193878096661492823169202024129971423724719433317724233034873048559730821013026603022521289550850117240610433481029951030662977450106761395232059636773965944567849662950248696835762406721124686319693472336278684358468420848352490499311750920352528344484564235093532039323240014161329899861829330784089755581261296538039019928935807430784517888192721120674942605108325680246961116226126783961921151014934007027317799388733172911689196682268009946947052251355312740179869256929236813076780760502102958742202859480237060015799893659555665536892697849991002251255349838785851590415127056139892112667583760441788367631556206255273196523897252629637238258487138851757558242108121730021607021050118472636820229216900324917152563191535721181786761570399785181226355836148607210468772447314972185500947265982473220464958222334631446137264639633670953178621554101663508242377544349590447084941298341787033661226188335109849487792129309127602198158372364819644208020448837922359854279984938811590382155715863427059251197343673788778143470726345235964975482528680502484263640019021029953918055734410962353723924517149032435961003694486660620223416657805088358903723616056650868333279994424035091984696514390372894286896356053839052813940106460716502688527082590146506229167054630548061165686133747603795208923489172937364892945382211321589125109832774496024837464519023544243500626875786286102627626628929324578295905736019200132258412492245300709564017973243893625276658399433592549392806568251904654914860341305773197739608915135286789996993545032491624760573989413653310112312847126613525671286162827898507792553386986991199485414158377381477811559281451165880212120188156672708062404612572198716562880985192839701931172937697010171475466116723771830657319592206987943509601620526287650732797102193924702613125378606308393171965311665991123093998027758406338340972548788905508415135731083217788365333622945814781764783557896283634344493881978755901054642940746757516337301024374811978995300850254906635597346188467631756690675103304871698722958294784214478766401641705430861143784467303750300385845700954741372954718642877042102689126377283379111314167210739383210617195956756368154751652692872921553064469250113602453525065694380075245573904329216212719321788430199442052317878866841840460221901399803788089522204299273873843430773311132516738140471260606362176864770038606726875574888855668033009864230407220135785790011052656774645718657263590430393911549927144172080729025488406310570614768348457862038833631211786769081671842461492133433483184550205742444492762378819833280471202874442124411248022709786770427199310861162480142806667030575180213921499683176685992976672740792042973692457452099869402055280466426397914973399682175268181371954247662529878759198931095698717100535895872949895613232144247145422522120041466936723344935021946266044342070942703268553754722354192743748404483314789912005677039720205541732890198059513568765439645454130579900773253487900165180365453134126893147493068131122238518904678622053136875249642093078577975660664755279521775831889020474181233440512059488456368881120576238835596770497872536378966395960841876573358607579517674253692946749399928694311055098276221744624989691725371672233569095421949942576252417263827626741099335937068203082124170657834858394138403138619387376570062941567704454509195828606963798725314143690238638705587818365840670641131732878969893375440785907027221248797166277519222180848569421852668478470183414840048616711890028052179542696327458203007660694105226550989678975875135017608516596183408700836619970324749807063432632883562941983646542321780154253605495390770269067484226125845636489838640867504218586382349642336682881678354580814888394592149809852455955559652020534667235011244617551211268725986216226520791507385361752008647123437653385835757577580909759593294157372001173869579601656131168137012542529959306841629560762402241022085926095730747888184361516802955495521750475031177773768967564694986139321238131484347512475581353767639776738258304882986438598665355188683173296364452690013872606060018978024031288441991633960813772996297982511703300478307429402301564324496132921927627070584062939327128275717684608181362170914254616869709618650789288941717570149069433275916207958396624802818951698028914143424097825811690021738904328189671721232503372475495442265318656932757742486108689878053972200315830011145545253555556544846850304415058351837701284415537044663457292497560831450388225478050356283032875218119113200627329075031241709148702115419638969567916727476145151894682211525199205964353804638414490531557409454272882198256493133057622472230520639522911086062955025170840962784140899951863995440271926882300694907627226392720244256309661232816637023272440987674203133632309990054636282791409675489308993673139617833504731279613436602262484938946623153316430880877728852598898578188947167055072884402665842532155825597157758938203093801483650201647783156514066114606761223064939421181532640011949828458277853389721891912745756558312918370831670537064206799501532455135854674301630708040917349043276850068233337151730522813122800568135694301185899662920047893732507251102919103420581849279449062237021336923670927816207278742203231034803746030809192784243615398001255327120644459212828231532701372742805678281149252846843192582782862599358296431538965784346596418231773855385569928248857423771636311591880495402321267202830670951171482405880064074795055438388349001813810977906732566541886684201797611036510905234625930061995693873153396519122026172113525817367988973384057377358160122803380513013615364308014000117044773713837358739609677880166724734141785914912123259886654966290052110178846978198081668341705981429334401278996902407960386379751085893150836346552164926114725865790976484889493012078732763461915668722657299445721140935537528295825837176161417656621559909972771861278011949968443840059837756456147412589944378178523365913699988418095027826148697139304507383456310296872270830342076996619176826134917920997173046281047593877555136661403805842666330335010271734328531268450815883625133935155160502349540876023802204429761508923693291685373041001798023575684930216727492541299031233489824790840369937131575355048121289490023992734338425208294495229376606944245096278625367078559353338050115352459478039804643439115974618396330157118504431917361645068689037934758499947843022400272720090841479912840960104873236628780061538560080775849905918489373583819243031014839237517195505684286039293651152732226556342136399565190125367797723281724358550298828427669439651678025325700895548035206990333317702644550422375760529885821834759224057607790839859478135786590926854748141727816893893432780644557221083741617046399061212895580486152312017724684336375546531319404919116903241438473489573684447503604919321579168507954625349964729985295341273835250297749697185460714851488246296615304998213695336313519867180220359447334255588373296980665799445655703603718405346226966615482058564355453664317974631914124165482896876998105449665723398717202108145158449180572469908559964630749533463327119140658359229783905051200566705674655490716644918563455446326719681480962517381111295506358272916855456451659080737475279333871457336777839688658902556048876079354982992783370338919357916998287159125131103640419084284932210348939808965276014891818416961448028916914215439992158830541557073672120992849244483763087492102844614645634909688183527719178725432388800326258042503941963894154605395971394988412882685792881755079203435957376801212545758173142963213348850982229565908774726733702728272474608440645325995222966478867951749136495496124463581125382981336881855701755922895682709645531677912230068557882406346935400830031264481761643040299652514924114192904686464991501941594927230386557970984010366278293321296406598673656137766360185481174242158473035940907353499094557834398857181009868463750585449954732887560868622991569499252990553106421025115293226201977046366678068571381368679946932029183185995071161421115479615169628430838513992327871795310733888473605523973381557634226896874153591028235317523914104338773029883931291549764083708349779301234791707154925230070798692511497971777700193383658714740030593644537456872943004697190200572545709266019596668096132370348789172192606068816311940254262376868380059620641230299360473319754557341258828847330941899066424638891860322740766714069260971837842894368780522789026813275123672380205751391547986799698278740825368903990651855695779717832577084140944012131522474806188694044411481171233275632639399029406069614106793851359768224926190095218899435965955155826910426530385699096886168958020367749750912277083258699882225263693048313356208925327290779634884618750434909058747528036125461264687713558257334284513560361814490110451809894219649627513288349195658742358222566140515116363450416624945528397955062044079248939944180384787961535739708151289294647880108223696276644685383729499544932366338493490474952155271881808793174583507455483182731503896635321211174426222653780053530161766803348533726161727818582383389683413160886793464505190674497366432625931790222234438102180013276133274877432607371282370067013112162408282233832066798343002052319984597786740338238490188895953991316677812198001231491742170953426825878524522235238486666972369327564404219359719112745188434940340164388303152053748012166650141521049310530197035124993028424153158541388584368443020107078694336984866734323456507515577863343614342202315697207727771874987628295041444135877611173688795746552166495109376535889944521043627390402190762958547423098528434474191283193482924969908869720868222643290328065423597802843870878324701387059708630618266220445136667829447231506844825842274271665542486726623322103540116672093659575821590928193513856476047435366211027156676148229352115866126034019895058386221183053688743188792745911491768394302525444811091986827038722573138425115810462214181563227467805530087164359142862653004594485316125390003738999958722267847503713374130497041828590471952131307062147064657149497829500256321098380105512563806099074105671112892869982169867803897936885511876569308490571886421887120842719618089617165904881647944787913779639890774729392443619816688985084869618456392210645643432259746273797064312926458107853641789076480062355667530886376908969525718766164897871526508430465971516316226978637897337747069784904334562625386808621293382116987496210509026529140081448270415883342354007296708753462018619513274104411750082990142615620930746526862374046631246498960781740107482570760299660258307818837965633066759138476624727748233322395666484546692166340006083871620139766098036710464115155304888938204008131047798997762317495036948909417318625899262866322040419375136803878906161894793836044189282910852416253810824794375746879501626347358692934175336761102939908425960988333292028776899459325936046034570843294910837558830193824415839592489393888144122314176460637296406956650941880963594035680068366050781619575897389664973048535034729345721202014677290283412392080654157761900425765860637765768816521064663753077214678969231624395474599828507604353757409047504099565037473620851809145531437766357780697096724029917651011784290319077034760228006782129768651999198460230350910712658184820379202299013911209482583103151116657239900635560015924410929833520088791668080786145909704109612434148590645431183145745240087054158968301645850399901345941221579683822356664986884240804326682684708942688759532366912884418588220941032320907267671000433793313709514300419444934994868178471257535248921026931053916882780512916969132056644382719241178241353559458481542797082486589618018138871211545972891532355516725830740056544174812400022501976743057584984679091920882015589073099282886063588047736034641645185882407731198552844869378598640377450070214583935845015754722252078906100984960547960268894427492904734959883034543478875337281429943735223639553994461043657325637591142909117980241285947139822409467727260090455047228620334643887274251157604028674865314565868015146006806634994986232661242779288767933740305621641782857363185663742203465562761954413145816307170921730873459166838100379629746151240071897193903726288361846108169124932304376501553735583075286422879922068845132456988127525192385188773965471503705002540263116872623098282782545173338298247082611828192963207524974319289814541699704512056585574010608275104619854941772277283461707546317578132994234016741554798099939107875530490832171089171797291747921862275483023183056006863168434640718038993288887225579307285269876439121899706535783222635575354103504158954355930310340878660372815218242497597923233835456482291018951438591920533613611966147236129891616182295558777167361034133988886800888141168554313471541479403299476108726382904630469995112867634965455444083133036966577317740176649859289588091886654793058203368751262849184253208248406920360249044021445969518151194211092621741606101142311509667515940125419901512922898341554688370533301788654717455841298978510181164109357081945207332964503816902121087510316895102762364606705183986182403465247576268693883633511159095793948244696855444249813393853463983349555767088417496548328482794230445254812697344473210126791159022132258945202092183773361096706541911538784520553664468518224571806922907390609363987331448192828754292031918308814848884361615024524782392868841147856208854831285305478998892164607533447808342529444084355457218887151475778256647548892970432017667231506994947972713754485834217490243652474308151030793174932074395781945181978283773254056330749126614298643920510421680797180139213012852059714260404449904795464212275758796352376456640915568476356266177424993902958841433678259375073688711839462606444123043551606420006148164626473913826322956837123783179955256783952988349714162857025251529054320531899510307506011344696491017228758795241902670258478556493781448132125349742682914655428685741290705633258416786937956640857447145020242935247988948586982395767167615795611016815717803597494436326877903808847307214343406331626271109461753722011175070922506423796704137045839437068884871665932644595698860151905842702192744560891405869545230307220650620573005618416129318166319135769055853581848556706593866393971868891897090499163004909907126778076003090505353962541869761906244274334299098334999884317124514108665908387796363483838174144514995677840260505388546078019818532079374075389647731741476701570843741438203032144578197429050239530236758346536328302925354037246589143180053329106851925952575404581998610801535894232507158778138821711878437232678402941772035522535559981448458957804384484574635127633333750214097731296542527385110982501674141392553222673981444940052785949116630334913749898823224937744307293257543810481907940258598162970764660322085481168355823863743645855213456309448429502170098926611695037042598860663513034118134430884148714791281073795041523890886682031893770198050975810928195382613705209192220288746214063824107923636191692985457477352772553336711306119598255629423153064933813939137557162147797094811218536283601518287674919964192494794926818973971002638308045035323354805514148422978189920460144197048580058102806804015255505853470733442112768113146107197764090073233919059125454371141798784780418506800501290074794142555182446167883602035413479664647768673519550586332514318837008632003139295794177687726799276783551113908273326621244933155887253513471712360808014269712401600724091812097535020302146564121201031139641279673472286662057376858379417668484879124287201645006846390243937104502341159706766440315607421327370207797061345358061293058036117173994518301508764207296153660187296193887048695972372890850719424309540671047367799934511229995829491143318411182860669920042957629168288977976951707569621662571318875635797880543652844333692462320025609851640892002016580396120537041196082626943489290234658184783115500773068965385775756780753271517135997595323288500930989522994097045040082376125607243310936517339669804035893704453477116437661147241828835664693641989353315042414469305503983510589798163698868717471149337931958023560657824315095404049609390102529658629979649932855222302178388693512215607845867452331895701138433635313086789908490126583393746370762789791166526737076561850248628624454330790421528200166261421465589028734386693675066650313620169911223622873891482496866425416975737794731912730187912898270894182424107596710076934753664700488229944811047546208021597754742929830910606348668324526338344860521785223904127177922365320803613526079452892172123710879744671622244225157254282355418908847864628398434594758036564727753516944374330083775500454786841170016513734204820181457275271663171747138686147055628845944466365349421065283244363068878424404634590970046899365507176340106434305055625913517643813237629489230861932110911174868388507492016591974170350507543290730269301479133716952978974837035664910634967078160723819613570984806681494491928618523854903074573430447427266978462863833811723158579420560100445776884894598981182159480738076017714582356311907160461227259475163549986164143880706532998941363176485948340499436607245925372044079768574718869100266752455652264263227014941751167659524234411584675019628832532271816718404188876902630887910178698301501704468565975304366652533090113385764704091570606599866004171741120545538799905582198071002279406897539716364214394057245352422309295292006951368157100374519722352097424581370820384339561876547779413077043853365624878614337223799716583438950113722374282024199599384241336334584627598422981688342740493756528642390983652352579449199015515813293910417750353254144819220098671232438794894774854204873836396884955899775025778206559947213699351899610828309372056833902966104794103615477464954052632850599540624137457048383472178528935146222645505890706290100750329326772692021287093018018538926527813605389854694213631309584449962227260782998349700248124378603260982813901266104960634615933813762220832200558238059662332772836816814295277788243003491861480418121720766873302237549570274903766940724723296553838521523049298092781729736100754636648928836767002804229975618373431679573050268436107538519244516864782774946655368720201373064600527537124111160177693985004566969100220437038861046923891184506791745092647572483366853219562515847409574986539719364870620871795469133223893127483605721808084843368468035793556818442372525358829467753184737177955971332742975306734291162538798621600287940889397589093925598931325778976897233885793449576522528441544528784760982054423243153494880661952113911263566297365657615814884127722550212784331092826779628823833518300050527185888355808460186738100701463312603061271104270618625465794915442660674390340923408476545703317463446363520398286695494852429484581053385450327630435388054870988931818059710098068346575697756489050514102171576312173791271853799428300983903775344802654239455319489531113610156058454791004063470222821674440588518560358099192672391342533770482632053063907505098182489058078888223636273689270773022920584188665616258977419333978250281820246720539422900152664539890467161198302223982656211650355986850237171312349250733801930668104960130515557363477774735641656688626607921652696022893700192778204708128675447196960231483442449724761792339438875177047291977771323710173772472089515180174205219271661951542651707434650144699953265699756247656497953109425763324175680046153457572975171354223217146413060688199085197403766254345409789700990738519345117661899977064673178133502965393545398671639869006900653516091492882248287521037071726706296014514276374193453202867231806854578010195449858338925613478735459712793946529407560734471119368046144817840815273330093913710870797970459083482295004673848022348224721937787320351720935391208672848078764708097791956026185930369769962604349786739150036016724156746420381518261221062641310679876883125478087239010375274102303573913573247488194650797952407362428723721147477478556487102872329452524639437033262779069836473081427368894651523445579287821243412199589338802920456701123992105303787451121113395882912779939438607350977192961335320351598677781380862851864922091556895224162869742239728232516350231671884692998952181184100297946577489218530148675218750336465773183000132574713822657306815062254522744214264096544633360099432097970712404894275389644746515370010358526960357054747568089455289723574508255623678356419134206929394604076157809480051839460361957989429797584357304966828495152356688439366395926021868524832615732898748766101856328781404696068099232530277528290796083137853323121852398498267063631767080044851448261342486046533160198333679219141555197200033885122797272703965374154497518899560134599641450209896072953598988790958642403260957258263656075968421545555741925224579947742793474688073238530486018967055330292331360654614668560201543043514211373482911763087582829255550173025133653185559418462690537336284866952025497150589586184721589064828411452579652838387097988046921772200804397853381858688796879456094016670554105497114566992362454875163085971873675283034269711800969236429209079654113649606002628355972910282100411515932360240125889788659625028056296013100001011126565756891655407208131123283816327779045302956922165471109552847502516400954472999283996913430507463117594845756632856861530961628086296313751568005919015352852742892286028639059056398281954971940638675956639987830386890364323835501663892822673634098832386628941588219833688950389893527097946980495438166357395810366223178274834728671703244524060942712167236135654968230496592787523483708694634118070200562153654300561502342119040783516940994201491003589539928269343058625452217988328993760612629265320596703279589965418728407922616889213704309324785062659494079916960972853057356231960681502772056237010869525821363813534399449262631088147658428327929416627831092986282150763876454119481824077255470393727888949027454534598210607344936520849364353605151925201305722116108827790645130423028056258030920626197835042659539735369848583598585599413439683696819479449613758353545714154142635120961266071830927688415258444161784414414139468385831088556569516723482163752586691167100527068909140647017665200732175259404545402194976870707194453415735756239778489780297237190363684436887957045013548312421042614658717036503036588959684611498942046702135354393653363888973812029885968775086482223461956192974763182412647842163216601620044132958142791270778842067022465066744895310641875163879626946210022071826513641284948546424258296718521554297819087655354095482371031204690227467829291990688221867010973765568018414843886456672530413300836366625994381949309802685604226022338946196370837674939363890465256943927668809122226479151162347413270415053109929698838725889791252562634591003698930063611896166417739567345902816920051325888310737286111718501756048430097645273486538607913849412097578422395326022527776000389996506509907854963239241491937877841056072083698989696244927765916359535740745871216124183392351317338393119134241648188257001919126980197464751386220946395147918292718563494000712089165006324492129419756077814843431664645787572512028940430403447028231909729184863209790483386223033487375439471048747413343287311123829980593844893735661784987396180360541203498509786370846042201312170466774720130821260669523372569922238146603662022000126970512368199056821318394380319320993072746392121537334831532560375374326296966222831105652964862602844184269721980192420114522269202616106519421131252606646669862194986577125709985975357609223027127844590427181749536659166616667358317750732642497653371297466787629002669282651410780574927277038648311471899529106119586775132352546653361951713519611236365961063986085715573408333628119959002681021712037382360445090102394277146585686157120148446099611750116992889775939074167179509228605684741541278305984408891157836181881469169109495880711902018900485423513552768824185287771199369157413558072662115276666042127182150889562540395435497821491085248744397779134822963949125179740951847609063818998981925217319209426854854591435926385983386160255996845221254040046489441564170691117887331026425972773473775448685596875614108625359785691148169006995222003984204933964524956271227338410376819395958753422481315976195642154990495578817127488173841221792814885038323381129963282842106610751761192422354657612575313149695274359745441107008754737398405230486915574869427282596197434519651881017668787326347864679635278065037435073924221897004785856820163269040846946958587137782590806908441528573760774555399627273341997308360039027961988303038464129324940786861810036031489543407014892256197352266059463198636991341968347760912381230286573863582393755573821623406914184410046114208159798186200386383530292041952895596045494719245001804286710645651460849119892748262554254968862701317842171382567421575817425177334018362877224111658092441469859155882401573913136243076186923469939355454099186644202058445505345712354243465574206053237085453862895314761123844153592687420839397124330612813821829367753104018095141622169935243352360098836160856847339915381623390737006489297492546504950895599660243940782328986244262159587488780110023278166145605956072418675096422080231262462717600243741411214374064592859740398658498177307662630995977398274427369938168116655560559446620361806378590276161218719514928568759729491782033819938331297433749099490178002328533534000008615897859253961549620540674228634117653043573511981428961461610282198721207506299853395993380281642138429758424907794268818400391166286283191275299060031128432438076174074077543544700666653421215840879620685215678838957275573124269173815269499484080373266640473518455415757112345573435777101461182660380421329381516876128838466355416089324827928210174317313788681759090226948488364080370182503823884934714934733890812414843001050653278588060280875032758069374905898865689256843418602224056897613346296168140306246812648857576105523470908409848386365693608644482702871249289595563775441534574247975614244257142397369589640704160964886602271257388359315114182599870694294605815241271755623303842798411941600800316287996981271817265677910806197137297943815603100357668687179802612595460341160912745381647208522614596950532055722608258352121836982802200893680068597248777540269416787504191337189795816272888314916273950174807335197500763137909173355597735997187200042795088080680627556059649102063336752328673376377652915729729692513669050356525611675855723385218675575659975654871190679477309851912525381457411292332265075195962058745758232353748393767056174011169541567423150894041785143387715240148328133350952301545209858797778546381563308280811006539491350298228489669841130913778574295463063599121945427937329925400782680621298113736448421715559491361238462076722734106752671488222313248906396751397972575304650539792498097938266305091247686140156360400998639864921108696680001845708191495788956303893549491965304930267235522864756832914860081140371136479832761743131096521972810343301117723783466282559407435393319942583044849683879965963818964445698780825255918509181888114942527264390983557797049355842354390533756540960054547426030163628718117672402931628665652148961896513557678253135872948130776177159744974407985847672862990046222491796452354990813622704441357389908041413398006501629705601376718660516335023680844199128868929275625846818891552030488509440428457109216049107444705220194518916261567571101344909800427123692017005557756317490549441460159085115014844464555503595484207195352558628959018231556361037106275699085369881101334678299940231282037063605461520168253970744947318156068892626737144368587959509357263423363790293549795429540976893889421515369563098853095869315360867712483458372118136026860936887559275591344499260566470869672711826991415110443262391126836812141220471744811694213723888214862282766352518330343073165155296131125616564812329386552806634924993531972846642103537531597357769249414616989462936579386249519376700246827151382283519314104788668775376464017427477229407448026496808761294691535562961197397009611899203585485533696310325630513530208205762052624159313845280962096968444186971835453678130470303140021268231562748568428561902616075475645389762798890153280955748693844674527002144378166765337173598952660219667487362610846477838287643575868542650469097842486818333873642538144139966751763411169780009309978683255624220174557975707524330391265222235012189774710658866853427072270023241879118357225071507969537394480093824268276834129152503791810102279001998555036780390289369302529930819038792093401744415037212793982606484157168971546443019075982024323884961535985958312386101933050649555934215962566274566199703097118926791949638859129160260918512918099248056574879131121522043849275858367611343881401202864408496396893735384314280829880881550809447464907745172075853982808832259973225427642684130165437687790140564201699645092023127311764071214114289040054378318002833353915101577271169604399608020364337122100692933199491357198764769334533388289169209663878570550807792343582482779247835713987060515744827729274895315128588560574464100768076042723146216835855694182211298035605012355266785571810449991400545335016896727582104631175402713636539962460951933321071126790877267091965845696497291258244397347262148726449760775436540263330011805427105457329078298275080462353130465301290309062236103835485825561407524894459482573112117079747274409153195629258808501517436785286251922664143548918791797228397084817658840687077121224223436596888822999186620338820719790247803462323251740147925266745614015970633128645462527436972536198015289245864047413925420280679972679630936435343976181265302880348043771415032668748894545661212568161671932832044856944467262801604252057765322902350861341675078434206190622231283475294050238971083954374022667066784307219478457322608458842244577349405258072986377016671662405681714322420693400551411703231658814617696559972850034941383614035739684497426290837296708295877778879556829069435980831319908937089826123191319527093946721409004999781872499443690532774049106866852091455347606357624953369256136544977231276456769072445350399864824204563261802652172156078320335257834603301249727124574351873875530576796608885585051332019329568292728907565018542201434481572539204730453053795048862026309217572494446048582277558945576481937658257815443758331201725355029578524461043774010395987285812871573310447148701986332099336836783887033092303163853018027223811891367609389415522911758146033720919790700789052182680962454000349418526648799502373072602562523718750087811634029917352557129218187234943678789160057294337926503880607620268872887372396335699501153879114592509577587344708272578182721249139346962651587732618002867519509846690607731527689017126492888129984097717243592036741280106173335900749652283929979514109602427004348161244645095029289438155495762766288502730804435397747358618652960875031835177478233901863040618053698634741262102914175322047278674817012402241818828913574223632396379483935523704592546415271145071632519243848588747036785206769961040508537713113453525223246481699205099004198003054253221302713616375008997199542548437864357679193071101637005334264594210346141613970169148626087014445032868368513783974222240395094492187798851555502658672514022589335907977875266912861879360190898703422521088126283623683513008193389912930403920971448321351782428049390009720080106732132028320872407242940806733805250098294741331903382032039846951877045344857985593954777711438901354716212734715785884246881771515478399331842337275893670567576366702204567412174213985207489251100367834387943319238813720690901018820691924192885912485873129554182079128987179790009397200774947946144604692069945751873759285093710545718984483478828951480136959977718939295223357017846591279310620716929148614489169879429234250806742101809694458277535067593250867338153681187235428580690930377516499235234109364272901294202300873059101203674022499826150942160599331691434323897649458378115050739964036145966459879780562328376687495863538212079418495609260277241712054274735456775691379302909828189148089395712779553214585140019440503430196840427003099756030021634084024920354331851037569080374610877318352680973669657755355310801655103725573440757918361180730694706248267326863234391555496743160420837028221233662923929794870012142220326914381025123452126384898281482279607994538144454452889703031993186881909208361087643393355885699635627454363022787204117713201628517869665967050823205427262937626700377407979383135622912256821073572057759839666256964211317542234384638426065758449787513401938646450504935891495149494776222145441538939070108708536784479686132060010758360881115877013295275575499286127114115567600773197953332330846313094576771416035756223704923413106054770366158682821992063467471667031490555969033221560303471270744758053049051743953982840030656175833903243707626322802415378106768419238659348756626284035547708452697960212233873102158701507200426620838567750466078971962997699693385194529551000918160292016665083020659910743020200847217991419459354808355481997552535342444820004016163940005613349034269839579948343908584894148720740473696555413322075132655004709983661152122984303196604103240115174658207612807850317659327752915317886996430969027951705147956384396941849659641251723125552633435383563770941277163097824048239885871660399210498519541923745399965275764950064720292730002993084752595459245981356212769604540187124007343897620671115060428570666893759363169242972004496221232744837516743635588455749973513378443267623198373652642923836771934373419210947116601300035334260896575017441783462811947421751434142505255448988249069098151480184483624541109261316005282334294354979415302422598522739774733880244662131806648558680963907095145575975359687441779169496103386777940472293971558047564195665869063398163390566328366985552514904971537358201293239636504908186721146554952907630579285659300665573667996048035359233045350108926771400312486552453901523372271841006275307939639293086992900198390393967009130322003488464941765435965888342327960439235848644874687952058959828630757174565842867227150263646582070040284099383935484600306458818214701277727652429916816406175905221103445979287898554057039524244614447983886821272579361284340726184705813048642308408200757447577519394395737054797547684454075977166257242037879208890833085913026283467934380367374064033034632435501886912606814340532130340358156864273995424439304771472540157942473363265754243175622493324696458651441307164648083497213135864152844767630678264039162618663042396112231012613860087585941116361382017601448469389377832190136545112563531416308469901414582068321193685392966415404879437608907740876981108085746330691640942852761654651444286722176435164898437760814802575137714779003040597175447291244315176626634492544782726361552647780913002812711778155527784823654576918994487575979090221009504879234090308915018768601191090799590340037294266133230275164058811929997386115454327548182718336699520029267335933245471135220830372916139301016001148486086957777259354210345354076606876670110651476803446315176110852690938312000284020738130543834915849915582187893834817981238793522043127952969682746505498919297815866242843436485328430096653579497607477193354394141412197144253911986566605344602501602647494636308152331503138353845981307802701054860906018079529831852331533037592792816858548851390789068501491938631586062644265314750439428300218850112898140199300144383838503114694569773882503200514991276240858636485732872952081119807172693220225556926243120841563995927614750767496766761319838132107280634914270754841713863586428289485761634012427103513756377368392579158507961459541632799122207170149515241482278345947425310263520490770770485611836702891990583468294425299293140994040488684605607318219469349690034499958396608390315431038720892744226391058505429128836187894552042313279046755854279578593250747638414197582477396201349010339244640446950311286612286540711948819427400276852890131752141830894925007718861020567219469978432531018422268067918274715325589722459340114190855690936604101059725179444784157988342636126982418457119414631377740990320211418386902151897435660559392926271571614795487044040006959911229031469212158276253938644559304504722531925418725797675949561173240149457187431469023965539356698035320106857674259514048490331128675343035701479609078941047497460695855136740311644296379037263907362841068817723531097315095897085438544400700425085237893719496337772423842165831613346857364856625757760346104026658365182865702026137346011137150495294532343830276251172234149222170754184389846604315432101938834213925283665202053133296138629945028233163820582157944955859713246229232383055526216798583956266948537550934247398976248141971241205034161084609371646423042023085946932737523619359760445732261896828735835955013438658444387802182328993230285033406174205222551849037313345944900685655676652993938738764834460586394885986942159119646385598660619857395309687556880957902318533628292961198525928845550382287685308359378365263839562916740937487159421635280113444910055291938302821986047612273488079794698185394363383763793628624563705579561004832606062736041502218488478223223790427533292130090940284784874393361462593130862631252896410053480574601665870527850239912078075653938177682576551439608516370864145094779472232326358325472889321402837353527567178374707035691847911996322590412421577100041709976231858053787458392881597094574704811851022662622747186383550561555777429092289373317655288209001070852637378275677992431562529233012873598926868349000301205794017691074453954931415336339485621160706726658720172669002196076875748072027598403181871936123767489600552797445084082529818925050796152809855918432144867390175166315711326306942423043357497802009871231677463102291313818684860498736114002322184700065461931916926616512307059389328303346272666218491127253658301345813369524567536847653187627233155236686549714176695562104788123908381048706121600744100081322351271351051810157067025299093405682741718951561358807200373277065551667786997472983821601590199242474196302239418636376672883829045852924446731487000451722543650641332887487879451722528702271592589226372246454067707945338501886102754334203943417614730819709512323719376448576932801413333443188598027054131612020736069200976389148804183579563617215855666751834530697233103779010534038688578743127075146948364352116603354422708529446338329386629304704119834627760027694458949095743925492923596806242514753078320643924024969752093183064509708014944004975437253116168711875758278489489979842470971362128419611181940265437931205899946674187856902649313586073130826149939750239935148856538383272164788691685737692562609012013709781789386931456092587019465432304391483807802908838306458599526044697422462422619521991471775635600227534819094284261730992927856471734108292977648408206741809615829331982712083818364353715500322059581488041969117661578298153823879701386374984770288256860143732006880873658642945781672408415983106645259509148688756231802691965592972548255809446425587171397201538778262725305157539880982606673270793129437004412052981593378144964220869491357492654403434596292545265483149629880295967209927178657957169421396531212169859360875828448595628751711741190227829462023939728496377157791794470185929279542912416492935273843765300136712540434533928921094626579872545299420730690598547747244985748842598859451401215435361716498596124508597124086946163620331028346023201405526193384156942670435103215483310734932903999049556546833998686326518769985597030045318973883767784582998693031481569395594077625894466709489651357319928185296860637116068465748205388353070330704645156580630226312060236201429759902762229572897657621433414968779973091525806099682749972995292023132372595327238741716890488334875602542548822188408560501323781901665065540473160571859192221075230679904061881617364693866739508319185386153660113186972236495417904599613773463519030323772273935268868433629081040822179255566160217636295305120180800501189001294240296793697123696640871999587921401297263673419786744129177280750397844731471637711969439396190194350429077420945291470086522997272244207488596859050924225228114632197824223682341244724351449747261784200653907453319813967731817327416693597568600730117010315924943320320119195180691746359822242004038845372903404766818229849868226646463683661655593909268488646959636999996704839363888008155653851605639546213381651805409688258589200624186290117599753257523037595717122223369608508117938638064185291680968253385617650625618002392330687204628514938195308633605038361260939454553092154472472219783247017699988800812891582997685102140777912880570886583460549997965835563812825862905006981809817409380341506984284697182891141932206060952379495873304145976322779829049687830413714491028902472267160439419053770578906528045514790201375830779624254249593751094642108912258224012999764546471562052440984072110830437248086212435360804989076176044664805773922319270362888180239133802910110778165291165431403872155405152225718846224927660682230236494499266320796010874159523242490794048508465789833861105094529750824641119251970120183850067397735662648363668110590330917470265758521371650625242475589666543389891526178838811013927691794792456478796796087027921435414250658386969940267019607888665143650479742501763620935536678984595397002974799470166581259339408317831132650114281963196048386423842530118949080255289120278907691864891862735160654053372395362263819458756805899901210720144125776864049251503881906411970545908127706369142268560836854360699182186913339474020635241659157880367832378019147823363866636473959930915496824338679583481806479938496609765882393584727954744072701015070038564422080781227112298332699094307953752905069723038126181375322181631136200107179519851891597679896823279128024491864115714267822890777216213302667387511988116035497930604116155471278338555240588178337324009227147673445055748271064512542444792718083647583889754288492743471169438403170009570131184038800667459231238606426638267851269052936493261327996353625738976635554075100297175779471301008143171378131385756147042744407733405028489770712491319293249948147572734343070098697649379125256862746015950533106020995723104546215241326975167944514657677801005642409778720790057153671607611742877570324858063535345420103747945604087925052635732908285101419507143626277144375311688854571782920970546361639159083262711330003648106438147974984478393069957471106249518185547950407416962066433685537527864002381573027081704271264387589811214919348469004234298762016041082153061451246231688671456444349714069016690000086512967258341046018270893167724080598045802427712600283673372654319973441119347346237007862940459524083331550897825159320215139139312443395524453553165738426489508459367432873193936782882959359699285823826601074021007768472863209716500762805278861429465244587118933890693122586634345479991715306247519318119816481671979093444343124584219942362616767209635613603927836244311970137506569800948614941589520925681841943760552018874737620422126052992023128693402666142727530999057442218565982833701238372739257220645241641128192089943374706539322800560882237521512442456489123879094192252104016746427651449605006456402982737830687759019362332708706904408941162615248197188003588127344740355567767237762131814596480853997082295487068941988425392016918761581941240288756858377675129939052113564560113041472444193257575774683262885512837194057396109760676617142981806186201890655414982262400696407624108010530817463518579455198989696290614613381253507957006796403674970571773323731941147999734545000389876710288010777378729543065051392851419245311297920745164947505121853239727257770831322058756850321893459984109017308626453434235170521795500589689378500209507774264140609325252835427396102160728836074535363011704204851502782857391277784601470177831536687871825028964228662527762578109136394279060313806565192196497125923620132493554233054766092074129896699340194210150363581905230139780875333511237024204248640253864502400932382914334608159176086310217571967119744633486762941902876404768708487557362083221976414210511714150283282300025253414916240456190218703208832132787704747950334385742577216605591099835013816313730153807808160620376033495465057781294035734889050625327768496436945461823685846541216793626200757863050322509392362622983558103314422863725242923342002844923015190043681726673082434664378883014708324594866333419205631934053985459980045897531518821480712150812130955882281080534326557763919706542902779431868129697351115929173916963093222458889874790654466316017195576594199327850091133008747127160982935950118547323351000233241823747061065374946448123452562493470256972731695495850614275971665195404432997043785890360441213220033013304549316853015782759541210048688032168527513721008896580744133272821769659749077236480880296976062780560475575998355670112686326759362816816962786514045150448675432064859146756385456762207917887238803923359375069052342246413529564449373863622780342457083611802361729579048359276873769357191330684403770846644775652335651142169015277588520561859975810343747084079275899274559765827329474111207105442937341524472273516706720707059266186483298677260116359772432338674586907770966410350904785516376192090812026413669711429027569325838318399924541007813703033273184901530150715218006522861437470543533023024569537124436370806235179024900748189759777182290351200235535999309872805230153696500042403388599915511001910957072563124920036554365178150579977380870559132379933199577801277934996494864072315056423418468208463426764972434064393793529180747676223675839673833666839091134196253905484730769118417600947670512303651456510274674349752144022612254761910839758393293500798995304640576927195312771065064402468027588038022503597644350351697210038721553797225186700198058485980579361756147151403691074634248140390174736228813424143758347826186444307576721641387877014660216623683639626595867109076442554218346990672519319554059446610379502027489063968222414112706748606617002109768840122469932606625477850361074503440645015445940279871389585477629808563758517812519866943491138745977060359687697607589650468580693995713807422704845845680697455195899492439076275409418175970766990463208898393048868756672402830168676204491950471422524090507996141352368921754264975610241412308162354836003745252367144711651015496359017882884365661834395109647090575139715747745156192131174672086983558658353238904347422299383120777756167226047961931952786954308670653788786007959701498609103982132238205707111057363097031938166932831926514191086866848395201379197399458539082791671847668552632480526094122377921547750973795827247304528699844683272580767584034223072418384415252671924111396452215201713194877025610361484640399729429968434392350355674835527596038540168787207488623717371693174513278720651973462529252983470542699633179381296052003825634911461794600959390770398453303504175742555883079912949439290815991868531838909657380597158393447887167399702174228933875923695593580881439594725390943863321125725152024661907682695414016745074725611075171225755999629975288518177079811027264395377247842913001463743047555368816722243664471138772059335938323415026583364830637636842099132677303691002157285039667325192204575038620777249522208814790055214244040544891321687513135452699639310869749018997780054338789873817213205872713072364204814058009205818440398761168493462650330193727789986235424221805944274657986820136545674889166951830548319374637687819238424654633386256629860212940922234601855167780732567958466070060068875518415792615200945930024337883834619083989393471482290513435481162487553870227592547215013090553220063561724016262619328540464447109940165822244096417511477272824131957212719590451516192902217527661282772991090379732858385291415689578803349960469352083025504246768755408826928345906099798393964515354101765469987548542735389333446307634226182561580609283623499034625892730462554176837252603690157859662585358503189632258480820005710835366812634962170550200048601660985896566586015679326850615887838455155856634333114242552880739228701130772573416489484230600879701513425452389329184975850167423901143796456609061579725746017320155827034617016696865632929375501018091001061677800951932122000290146087813041194498833059580503492097584597045235841581228416273839989809172760470720818171972139810847483423234757951887455041957896744793182137883528362186337137700730046102737257887261947077998749116617184817601396608132630450218807397266240720444724933014188154378231249041436512515012667967338179567004843976298097492261826852201244590428788846049985451795871082769229812886744521103831444171536695545013578673534433144536390820612224555842501114506978907151441784927054074046425061918773489537325169182389744989563555521656439320507506077173410096288478799286182483337412171125964232370905926392379859871934345239608372841726371076877307546125999768211503379999289321283441764635607207443669263756702678722351058425874002656020608649185924779300295055173460434237514517828555714987002860224929672372255470124645360037616543555507109597804368041047607445540817708934779695748557239105559348730540937917187065741521190083610775208716687926230362193194447476300652830938171355853799351529982516796509135305944791619422501103990381272474287312231659928591922449921386580518141134024669637795867083654621932871543912748819402253888877227097466033611213684297802503740470946603542062868415979895872038294947025527360135954721023842370475042009531646464835901773004894488084755102039854835056673342735591178943873927537343194394750280769670446163468192066815278160516171362208379661580871742835941084536968714327909450400496797908147321595060791115370206957041627850309655307688013042212853679843051631178615308166855008139260798782401520740841958165673254076556170802080315589709096946807126103924775258954756373158957692506035677378295158641324674837951381660987298427627997763738943642850819343127511545821677662884292491928978311278887235975880213683704852867746013199842291649831570871357411180794406132947875478438501420220065934653580940607356574257064473123469702027958135797432705453380472738008824204819759750916566564828990381414539229001253054549651792974871514914500295289745103708885626633610304788019212794040789250971395619169440458368254734979104579953501099217362293878138075953389973040656966637079457274488758911949183285283909995120479451154779547030381108676877075343958236316349894542262087606845552763779472064960958209624740891153653352718383292442829658062416869308469152254072563847101609681541992015122188738917130561730632538492255035770836792520404721385596335293607476014927711046733563089282361284278069098734003734288055355024600464820170310847723449592859139740348633824350744011063013329885728475751188289952446926947239494145930693045691324403621808741581096052504562140957892052226513615265010224168844703791612402844238789316768318016058217223374799962257425190383956609698912105706119278952397751829717727887030484362232628422991016414864757307317211137381910021511050316168267183497777783969156538699788059986411444817684359304544801817618266204089768009208780332932262215804594290246609088179810652537613502431150357518058092500051353453153367884015692627900190786379523449820824412576439881914426104270806169173162837711522773179224600963115666681307745992344775965790825136628744666595396280801707727916000957512232191078211861177922351407644880249903071995940234229562250080001399310519756088256186348529129993274613631727816720131508855661232555868363329421741912177999384611401391074821802947858588074726574269362432535278705675187191962799489813057344575568376198173773456062191395088978312568676676987488489733201802108257196391859861395948294757124458653003014795870973249213302155860858282243483005382616621256214262592364657800056438973092774698951658483615038798469506338708111696514904872783821063351307320185028661586764366202510449482760427739625884884728057652116365934786100134251070869754233861899910690373598788519879808891359092323290397772508845453020053508853937442933595487171424398682396382713683012402950288297476904936433867266602317716306698725522907225977568027943066831875238329883958012471548646925076856083205151469803634133975569263198328918825271330917378663770036888650727837496801526717516718961479535565886568514914008151608220077148944397167286201909086871267588197710716549516490586697298362099686058189536729629253452985035090963797800500215224300149381194180103994310428749469108184183392731085469968024227034956437688827390187610847850238772272567012070091954036712146668269821924502143444918715220117352118462748239337974010102055265581048766477672453139811542602820035297439863550193231023570595958258171747385890035773930908018659191724831938383786390044049796455899401700604951650313092736398801286616297936355154802128569467872870565249730371188059932676401430387613970078562433288210380857507427704629540453465817520878943941857303185098830472481429519169254207000802669646592021372041320430179965269244322809853190654289675157112808414729905029675868805426516074300529109073394303768502191809943174910944799216164605580353659657245529897464851297925395934781968046933337252701791388441586638608791788183268692913218433514644790612704055893579077881975852082210064490222999120994225721783699502517104240591588400311797990367960309022743345609428401588904589870978822053749334910615774983306055517041730236406864556265065854923314781090064977793612911768876981075142012691475217490962165269501119552292421581596435253952414021236142535964164891499533991143438615374065834889605903814663321016900424440078533071275785820036578168342471170033780052620495936736131949897624296063795164545287148265584620976833185820414745801466217749924906901546868679892090531300667956019989182519787407568255912924431961383872739331375352963470485389223479038307116174249604237784686165321142831844994575096586170175410352655875702362056735893362475272950773319582939462846061929281634846369649705627858956820093129486664243987690051535724471614210113448594839228037228113668423457712843148167361125766243729121514643715666025524438242378982290658939415857610345571257159602175895163529842478093954291739632081641220823076325870733518079129499743656883780140382127150255220353226891238626655738765462276435447996421972694296660367769599541567789427609139680080153848316012515539368407388434194392954506443488287170922590076269818793901246656772192864584550884596383148028600077523654864312338723354339227631641291259488407561434725593881397400825135262183189566974831789919936650446041460050357053402067047297375729374878470207228181029272696844456126648645902708150642841481230575853482600011146758602350343544329094631906403246706743880899326857107744811765631589649798440940461016582221466631027661759929120909326659765523576006783028100516125270642777567545091420610616726018495989389469569656230751598032510763125713774314476216068558325739392164601636050266067706303172241187987546538528416484127556614612560258432349150876907690614593996421138319733165160172383665330322267405728903436877680457250924613094039824499420777896939858552913514494355914614005161457587262317417009845530632429952973669969953329079995650286351869703374388834813605987497309338293642173401247085752804890784828362397535444170904377594730574693861656780038116722010945621343108738897935748220936818002454112895801878393575822283920515505065995084653804167530288866565591913296207475959968878599627808483005549834446908690771280692694418175315287252677840947055012601276312612282118461587847485177487509556497376181121084156556125193461125408064378715444404322607276274826466987880930002918723493529851916521278447046717186240049423065401635635032561771289129701597128628644547591181659237850786482126758294040550024357228503060061640709351642371128013249069857836650278408345405554518189748043859382162783223577214718680390418188961991531385757249255604936171120733170607075821938933127878499185173300705963849513626947090307704924893286375768614881947619851383847324878717274226762189151170796101131916955596086200863214413600073417007967232692389808321533518686916890231510561588605728773763945713931156283795646458650053865028018301593059249464953617796194812885716598551896816371372498441767389793131117988127630196515120148005486589022194968910445717062031553303651553551481668844524726101380174590421250422895943212261932947460295597742992662458052768571897533585313567211807885375590504316481527710992762963428479525843937373575932230267864032028704596751308640498809516364833167302848867539403189100837339142275677108002267133775835709154363894989567733747110905171191195914378543608205801134965208004658096116535866315929376946991844555207987776074748459169269919133785162047629101882257816962794587168570152473372043936867676608930164062362828858078458247296881419788357624504936524562788345371516772957952945832589564667915472623132288568126317941503789247056801965103711824086699800306414874718188860229942217360985576124780454750587484006918856620803859883203406814315655996556224464088247155476758458703649286933749146767594494798631809833764085327633466667155206182853697553440934561306429961912002117029368490160386848394872638754675523671113090612548729851767313134663594388047975860113343987397092455638362873964296194580268345443780675958843503651462424942737918607558777320500829903582401487362620594680775504795278693778690551175603719402119547812181627112035003717520061317130970572881433384231072359790141724197935091751668102892554124456019894392646229081087216571905686070824251328494403742990482971527590351501675448100705013012509000625162867065248740276307362775380689577798360253686767688404528167302940628158656145648643908071027647054400598843702132225235115796103074093921929677682840900346346407256900704971952880039503753624273696468345379734914778138685104170628440567402671740364617013268419491987135559943439372320400824014574504987420613630456527530765507525930661225587978842989996085619672331290290074213205445074318173173671345400004645394102603770544320348408852715393322426913920855554586130451784980656456941084594921241067883457216414861390841452266184437991237450395112701558879369140347441212076008676224973820565437363991357882952893708925895426575999626601364881860998650583758132350475841158636265744797859068343015198478992467726161684105412196297956445468190121596965466931580189460275208442313338340912157841663514755166973158783646524271919390031221438047685093257387429207384744813213531889558145439961234878505725796969239770482864920113547591653390434453938947070954479913258358928785789669327654356770587334994522984984243959045436322589036233654190862176815538271287603981192202841862197363946523799358865580581081203018175654853040871369617624169180759112170545828029203227493657477163449756274666795565197236906028995245377935704833536948544123019701922042118648785249242242748230699928904563201109741611378910469943267151720075174250093868989096139786156933415589976888133458586984171416376204509626164936417214860132244923775445197292791277419580589163184085406821202329316249653896414553405082757376331953899491507176650719289335590986895538075637437764371011330371001505468698022023666690475179748848884771492575907962004345248856842603242690611808784081653448232445047730166952564556077247797343133015987989395261330650969674977340206639626880107687186536462863977708480066550184513531620018400201477405553356560934809673983116695650077336952771490027619129601310067527128859763310497403867944164021170699888958099479779166858038363197888627778867123708860541479140300378077775663523914262650628748078900650986060081963795561127992871025945498128162448404815281411631665691807143885657967319218551053399130785276910809810354987974910611158223585690799956951570181034264298950871325490915072013952860563525061029925676678149472122103791455665844020513255879582538183231163986094297082757598083801290284942307834479140434284272395010881334923953139869036499517965285984810514508119812520137945246693779922132432894918988610026009039446585130742287196205719251646608388983305404983977825862341538391464357044154601483315741765807628138436192545186836324798694752877904547745958952038263331381715826556746023839506741022259073181587298165472086369187856416562454871762347507884382816937261199567899209282949171609983620550449503294711146182496660166321283551839486514799777997092892828774219841134893205837101257858102606099896044446582051610981711448723951368919163773656475316656588690160584446662722875757397467602584493235023762039258576533725265238547256139125093987362498585556666297567136067410359489650856094993267686084856128955562871542958288041522590999998540445158415409889758589642044588363147238107597985104779483759572608037061927378541864253581792651874317503995882195244933855316238768826481800102535943056459802476875719180052240123014059911295294637116631281595768163697792037220507983846059596159151948073602495353669809721302582317477261301675924285419706165416336620240720004747441187491672350050074180240545133292534771933528531406520725234192226562008525300200560632711983822255794066301024322705240776556160166311895262415254671927421901518891467575205685744139416431388554649362432159610121216475663557237290578630968160186067938918882539323782416712615460295240676119989553907880190184713100731010738409554980635617614173659420322741337542440627056879259243230848025839875540706748160435517752137575853668993500972629692784476082550690024031111372355874438665668114426821011815195837585976148591401082166734248959877290824833699045760510208585393086139269892584276573479120675812630599283070949150810850659309973403265578528263263302294317052936558503867967866072762175685098928545424111732430483917081684230653828795967942721268983589350818638531666264770619913890489218627192652512553399005918785441958882970853665718312456857848979260854626303270496521022664729451086018207039551007231122867747516131538075820339277443717363580559504587749978132022730383398706688774659649718906365595136363555593662599811099554975644685879562436810893719843815028567369380693410915563378598380550335685569318024990445111797375131230981194745268475215008481919067911888855495667216310616069041668330676179374075142587027305310383952041075245376056135803474284286674075215077835629394521162219913505413793924897403261982853539959973314626007285272448754563763385207045296376182972691161725786828664391363964194087264461783931882199492846657330091816989166596849526098534068005413854970988484382240167717318668686927905019730143007410806849770086314770044046915209346921381601852210401299910394293052524609122275409367463859976214225731429206776250685064695847838756438096689894315985460198799038707565308483962646314441949094450430322407083330757977008606492066272845584904128701097810073044440307654531799209226186081173737131033672645749070459507565110067201318381724019346374528513890276840799209333181435117907919379311593383249453704148333755594075471017463731194982676823043148365270017607609695014465265662378378475431152881237933908843021188340299883290604538793220675906657715437447411974859190905279777568471618522973840688164615866379400549546412647099998426960129315038212921455650243434919223591433785755643936803128452652704498637212134651081482697613355168043449307524200903762848779257406723172988635966790174553761757511283286896513371275939049389688449860548360822181756115474266939671861809385258906742215234048843957730912239118238108323430146846454324046624554021265241320686019660171020897100570619963481608731407235379648898112265391273784533967637368352719215798965339454422381071426541926409674626306315769816102086642099160634297826991736207487128122938292206338890680534834609963305793828530990360911096795881681422419056446216736696524334536207748641209853718469848935404113630007839339330838656257430206876737609205409747480163989027467212310512678007140150199141127815138187494266102231582759152348916463340911261654671280413236372551499849070822731960255347828775810468716761511794847559952798373769853288541358417148790159395703203895372555879858006692063643797858778189073261066043765266751407339432038767906304812305964963713156065791950118990191574119707177922303042603312076434064783023911153129420100050872890343000821180358854786857221213060054597815134943329584582029152379765955890666928093706006909998556737532576254333161156458189742875053465473608256596110928726293014117807339226748894427109564436578414675649384115006825995891245882468027023549451465952384888993829025276362391804334314419299955501502175716734308081017989655104136320641049001377710842148069055846779681823698418052094331679466763247887507402968443366725774646995662031018623730968088092055489984793124647491448630958178696920617368965448523044534647318730520864256235170181548118686854388941427984812312166404775748944303011468587126574566458911807869000334617998910123000599456463036619664447039070909214381255726875618497589356609028324186338494427437240750505150627237086604620236434964614913573523527613999449219185793828371894862594142631705307463630455450114475359575777015392076276002278628799390139217895486762223091098153444586383293904065941859454695476294961603532135757367351307816639591764339094170606600416819301035727133863176535909821908890303348424490566814757697908439093901426725956541406861849760845166030590294260685357513872658016699083127486840968468160019479095626748133021143124834750140541343664908066065852665265386262670161360980948110517576900750522284072564899599761946095858908622302959045155846728745594862113583163270615478751438737366180871535998475596169687520814238546952058913505137869635839836089403484908773633172656433019358771020842753667056554792352728106813313359347273146807943587397686046551587878820885677371539101692153278275697887637838097091147345890738106204980470436321768140012660952205980489069369321294925424359964393894919831347219769482218973881384541126836254239524034561215022913430441715684009996633673294245953512702472193538225272143861255698461012224624284312814845635939253736626000301699796942306253763184323133960288788419619246913092801335297237646295273630945489686850437652871259510556892606654151640715565366883078074448385361128699145734970621714887472543141426088723258622362837720716421186074754794197008288779405717766563863525921085711963237881063804580147300314209825233745512558092413278064527505666328535994783638235992729229841040283902575813241788552326123486636477146829010699193019061008054183047704583634195407450321533041998592638023337731941073219946331579809805183558600630784824497978782809506395472643991034063595631417945188422473814454135124940491710752937880339469373136339859159511461728679145151270673796727540435667742130144280757232535329992998020704567107465624735670393371173994449993786985604989359960883286211341299104351355402549619124726335922673847999222863966474297923754333060155320257294214529904458132113429114170429886127889550735349056358188942146409987179792082089001553242491330512475922126934874393997518502293413119093853237920412277985279616265674413549595767478365400184294218734562083610460684097580402219326881292903178759051071644426269089341643021394207625628971047196544249875730896551118514578767596720239703571574144408585086801873571580960966114753387933912964992947878604266744524679361433245278448458555069246629375602338114430322473683459332226527341659102769893983437237366579365619317798042123609503295330707927518145492935090958786774065622632834798831856123230246992929377009124182151345387704754845963036254468641428398924027369682394270488925458356959502505920997087326264298813581528200417216639427462724070267909679758465829616994278070286527470192912064477391005227064064871889759526068919850263108561167342029230092014399192178160943108571659795503724123346532415921766407289617638252433240077732322498555381513830706153602278039973972379155372301307372762957704096423262453487347113773582512004926437544597334011649603685291752754787733482511961220301710635020669862295321886884994183028245866806216958203317309326319387820339830567225985190302061618842329577198523764435654510979185408314570768204879546939403922092111243327498567134413801221497898743498731398696801834464139359213007405335349648434104756302052677508470818103797941422900445361013935938540846737245074532252814318964122357489127979182547784793365557942383095424160360830617750580196198854608927522205990447058921439895231784642529176344673508772212466735986363438840086074471655529674765452788289711905298411887555924911748535526885662675354854589844103300886144675291922922938242552790334080377228794704657266878074230933986672960835079328149026797259250247697992612505862256972549474263025091822645281366262874067457498588622648315139013505690210562792951259421836573483592585754695092717446630900653707674707057930054947844092631991228502810810646000598897731138830561514790594031545601749449009577971408243883687329394072955840467051114111857572546078359693468070860241553484248953320628931146739785725850346874022145237475368610987008566186288809384844255922086942890388027463941876778872678370215945523549025996913891224403580883497161401949676613490221743449187627679002929630676551014939341971354935141549714297712065398786695989764085382797994825225362666386964818140665750101531531603000368035161834773595488641550538837859261973911845511131510476506987505936967114830724987077025403873287136626362080261207924906014777172776296022034094178015689136286688862573036413573406161294551541314246189126152288226036130920922147614468168235680164740689124075201976021647467186528516199330926209914192784952819344158825789067350577859692298926440743536555517313701211679449979120433531366785369112789603800138776185495794262645440889003208828442866769777110036535579136991188539894890794350138427515012532102385052032353137268861482977296656168027467254422842104142608448282294866730735836103546433746698333647044277817906514133377258443496391528926167071852704091619072577212790574628864517365304177336152764843237859414261341909027754710966348834629125803853760272998486806584480839279915158780555306758168749405763443933105170250779062207177198670480762344024759294290710841583678200419672824018571729825121357514807318326831670911738999517121427492055692670207053415738749014067350312020197983200446450315512979075245181799357651285821751523884115642016436892192093244391390905097909442201298168234849996258246828702752246505226221172611154967165473436786862401399921911841158007761206170461387977719692829591151219815409068510348134417181755485603657364677510609660759183290385974179326316115761249660885406122759280180411449584931969767270589538928520960732634740516258415583459697562474480271040295122687704004818217713969725682738303971266617129513241269652051661383524929174550868752316770708487884997521488537657502840672923225217720812725296872488346087991463927734206918871188874941527138118093908144092494778288983347393160928493059245956512357670160958547189661399511593216794264749717072670481852933139815754747315214910914159266334821584526762625269994278946630429670824937184067264996966779762062695924085899634515376510544270198871817368418977951369934420799894392489894459068395842221356237528554015346040275083972046209352459371693048722917185259551584579890845889483426940210368709094828457333037720650931793767090532497206950443448860972987119568193360418484267202394524774153437843382561290597939908121715945745164181668189895134164132913453902180670635500963695562048323789854843565405899595232269205859269802273857497740104188890830734542857397020957812692415697323920985318313960349242116045226343967520582946955739385009705518781229848438089772563201447948540257571975163927449193735354299836757815573615009897579683045848119414545919287586964299586396475814504475289081455035241497381877858972879969363724694325104104978933498529199269133224497141198257429696224546218495341761244244291007749952511956361560099259059837210093978909127624500552177837051911699283804036577588923347592280654298452337829511662130531668635507567682962108797524230213831014845094214257342760226021867845371885532877857910483907833376433012176901630339856521850887329322798742347823223130872541589602641289340500583032068257017809202578638869009905231358422825544141436494347564176158077801791046570473582568318491147007290769616728805789012132892513513765014188499971097756493506738688077143326802274430892477597074151703788354915082546943551141817029255209615638697125411564433071557883850746108402460675086019350606969272212607001338863985178704489074382592879295733765453028294318029984462434609483380724378842257069957457180811718763632024178320196801183898748984141285964259850981574314837623829953833013202092564043419753616843939550293421919805320644246778466247682980174690746684717111458101361223365339103071785512150028235387509890565187021400535333980724794355514891324790026518869295826594484482202597938595569420714510246843384080338961712939076814465660106089048410917935624615707020360859906952351716164845633391033653049948756902042624654145636894842059038858595145654763969659977882086077799675464736807231447256798786099126882203727915257511801128792666860210870315663051110609698254227667114259463010383593271913091555422169755120489824228686279027534654085023561202069930164992878578200371709874964380042097034679459487687606678596609250344316025190095770568673391129083416922706598252183971666901334187569611560357691105668488395269780157860505868311948695204394367909413673206644115624957511185158822250127872189725067175251589834090584029026450746155375546692437809510980979060316594293940088660914635537455892157437975905844638898483911653552826750738121898389081897032623909836622987830749393528588665416067205903315595465341819561888053402922348916044184855959492738303820769364026651407654011972030697124915166775921195683828959618471112538081150290886345781682855554678402348360676808473016806999214195808097915263455582625922613422057459017597490845658127119253096782530808519817403382722852440276706081049780074501474238901033900003007727191923388972616355592497411674567123118363041283698570137646107652258411007872081889256203285492987639173978391280126860377535563335095431592365264862019520261338107546207612609821501067775467247067873716012975623727635568724932350189821269744499303780253131249513997203332343983668714225381402225564459403196506876943923454757508179627692515793788418028277097065078184268658002352934114383213119567227128390027111835326812760848025561980007963029233542186507312375341566877175463797646864905780459254207826824080902589662641275547645241970007135776640654667222543909060378136355423484962064446427670123512194384173212965845243355158637916630712515703627389586673557544069963265890283237935935377183048281340021402794864688853880005844521032888902506875151276844662276972641126416719598869286029004018138592545912444493502710723599434173231169083982365613144689632421643136543510620092864000720323176583039147654727794636973636002603254663887481702276614670780974973969047712760052370602907319501860705830003600213819543308751191646643787973086942717691668616021905138585992859576328269518077469720818632146940554458095399384561851207884436424194687691313274366942946789349058313655154103529687668244971991082923044315570504395160997261423073542719564720828184746441720694348486351545937149956265597839369668426982856348423073272302312066736669852361843249793001013823075502523508169583765301486350603658469104260836640832427553706686343429653790753052242622425397853237804014389598825494057814168834968094527214154005427990126407273359941909727195880133150169439328515735231815259942477775999666927186926028699594163366320812078800999830300775039663218245507497535406305440284067058676097401473015931086316573965602767751048747657082487197676241891813485703267020050228002506750323476862106059540314322921088794430325868408275696145867587271712296624772900171630079789760451573589106293929666278576492397156223407908555295983185500597957823848036912563121485729694267158152579115463196652676161191167358418401986581675160330928970181215815233765462712058655874848173923290436219713201240616770563575531777828784211736459840629408382092536281161438252309289306032503611149361816008821611559169360914387927980054313618122891768391734719133572350259183898696626191402455140545174495989272053585122609328353821830105231438188206329004458947313848232470159237803904534401385333745383794099296047418170570875304190954310483907827889297100044000140247780930173188301082593809462435980915491663644098042239245932292920247762072287688966094603674373732277790700790000409819598782443385351212164606618109331874461238069840703227954068897366476613329636789431543353337854261903017286742942276221113528764371345811796078302581321615241135668074985195592272116174010560641518550127585809221564664819559360852128779970223180869049113133624147817991679363302009881536822726836253748800000519163549582842128609490308431360003248392678967958419185489273968535463262192717833281099586836638289080550329772971689631436449925882573043777389199460506646100539950390299468629961646703381793403632295357837189556191399486175221171648715015812879069630330949978667516803794006593542932425923749678509378144207981489561353589122167380806843493233114116337591063703687715574787790334086242665133691296181928894029004105239492661287103062092335815601026925808779087881875115508114142271600906707598631255592854089537095545220233013670475350021166020206882829946698062616787681003091054465498915305125617779198814910640747204571975463102525392171174814374488084750850547246766150988967116499992684208535270115108032800690921759100908502789243377241764194089300500125933283504049049436038045769778400034417393023881925965896579595306170532476469363199445438036594225206301965116642775095275960766057469065320960859941614835931074102359029681132145195860112977303109973212433934161932883549653165622474739178489443434819352260295830618148205409001775875108255176024732221994783799244014056887274206178157461440985952031577580872887728903494144923097222864279384384108290811475610129169430531167762896881379721736696724758491832136118774906552594011846380001808265496367901539395547789164885973194357930239935094408564382681801160308188322761585898990151247949079826691851714875829090044622489903101693268554269517790575713735263373037380490613912963673826585383681617217871632181633545108813890218000179563013253299685682030644026974447304908051860052607346339877613567108944814928835981032646292332016322912991389626789865510281569741771819255479511413740522423932764666287746715350151747068141594594359485398060782372378758505900910930893325000811600215554003356861827717179542930554091362185954828004514772756481561081761415537251601816366754263332703775093427599055659067113044184222108378730698530020590136805300555970710735902992776245212162392022080601507142775200301629018759082196602968213938760733753347163965495117146667550957025796809461491344612607190473210721985281490790534845970268939719265841796198709567143140148222148159424303631606360010717795944826517328277967927291793975356083376178293557007129468681803731683357224210501318215374736354523827456981139603933605753173889683444622067928822948490632199257173294800110327602831669652460004925917285560750662860949952085994107951959703573121195239472796345929403765245929682301799557782519261848953763736730740495989919630416895408981001932493009994333254270488023744575571882072447149024000874948187595014899292948098219494377041314039103838556096363300314903195458262400543916783381842388798206126795472810227477553071204553996104876689397825091209953550972027992771920380224822304152354677361344025235445675718479896433057197768245698482850391415685522399990562580069156558586290515786020984839342105422274368653574308247595716253008647027621405799428140512923663668662633979347439072334992130877351467227579086598512315002614309634959744369236015698288891595588640323089687474423563638105775284453137169751533760539020271991876007313228540389014678441057929872903290589628065465520581785457464332626610555189599847718463789144362829958992363457613614722171073880637156716892857042124074463582523310813454091762169058434557430662427069075726368472945426501989774393233638864337133646788713902857280719354897436965049124191288626790300457329767536264939502941089995353710879718686528862183934559366413244543857581870069810583137170504202653769991987667997304115176516320823328524591205971699544586398467406376944352842809186321731234256770634762128398750167445388332132335374744823412786853658596408307349506799293306932489181339518319271466434183615972553783960779858645949854032480471528635599451250243151953522873827917735821724606125086414972116906952568384634135772665250548922952376845097932475602871759770935744305215307664214410507733601734252179411910848650140996824071187378096570312968435679124892268124260170423524125229164271140951263217488048702970179127295580692973872233837589304508695787751099601954748492093811860031425832325557483750533379136732524609412743366740049650940156656677467711404708497047031579414399912071560078118721567854135579501351556290123441407023174211736172905895579441877762430670695612805769501857197023468846409242134352351763416346128923262798187419755911934955739194896723276984201802056856166011376442887271029832796308618047100939776997842488384552452800591499594388973983519752198852242594168912536005554008777582492604865353189870588243478298212681173505005899849584289477214424948376098066083581792753701606801759290290748169065374469643704144230746522468252073704770267714094784678773514032822703273767353079787659640428727812042420284249996799657410948933517991383003556170976344759689561675683943243559303004727717874716517712132210731920885945622931637175500335215604394437776725231628466715256823239570744131998836912481770438181171758093003848794777768016131453182831313252888880759382208829061816408861728703345519483868935494455738141985465855222695533689349931118539259484077224359674184171614278204233162568255308775188633213984647469071690047711021846548094999121696621036338336721438934217505143765188217122046702271759296558682839029966634580460144642762263066040199740145648122702882457962869063752090515393313026883018466553832920853553424867365135523483491529238667104900631464893200961515042579726087551201973858276004828267281446454761887429405961300725254391169695405181252551950637993086372791847855625464723227426741930560634514382152035469568199194348503283868692074316980396411533708100271580314443411983151423213145230672693742417715636315411779346511228977568003230420544619778243204301047369275451506669962559215261458857438420838816666334797392633603951517774019578091635280792588443093679596888562428965364870535078745508669373242050511187923230874352471881627809582406402099911919299778114029415313425558169719508782743631883083379949774058347176693393457996590860090248249315509361248296508730504375797509301235855642896206096785699232554441073854078295005532509928834852396923239144414087379454391445647173845556727140150534859311602200418421485652450686533873271314357649868957054236555888140143180410675019005915500729923596992763701645654871729733759442265083717088601611966912010845183829729982584294155327464753171831318002859657112372047200703692809382939137316731658863643641391800425339054171259096685285548315188508984918846815820082599020569436123093424574557626123422566865768331617208941384290483316288694141703873808812080894313480965787816580064406979612501150998921388862478387911243787026626597166497520308558224239954538849747939959586031913765355999742127513475191120771009297669457399211697366414224510017547316502457971895915286449532237259418715466115303778037718011910736092635760628649244408771694986349879703078285001704783984240650556319498672228561718208726949568247026838622397053136328087737285762639381802556146604517893831357281623278291952828261860912590881571493384666952029199865248709481299162578173794821719182459932317501225651717261626954847669178073104586515825667762416178645829158037208599987090597861150898503755818783053045536902047668869120767356001966535628316757848207274132199343028569260250344791866887945779063915404174107903971415836677537579512526564807416794373166248163361579033149652823141943750567496790754318983997094957823598326313985811250942997948127479383967583137285703622190618425778921166439043466970243209929821021087247615273996858709177536069161798903465169079934827437498345445604453117139481696857597212929739612747677530724892861387478232032781903450097640349256016589116647809126258485246650176763622478934761835370215040403252462431679269112587472805983141452183074052674328251993277779295335607799943206412975890124368094151313482050235194801217550956948020440611597822778837890564960624837070632556564701031987349453919339712294182467103865388770090581323152097830847788128043460421049018258674039634115409126236099603940173882954615946314721657960370735957610347403217399110192100406482295118980403294263942673286436455028154371195595637870010482478383559144698604432317379227407106222740604901592957681564690116720704874648348859702333047401177498383486453393237278148682667244555026558008559811236695837082923218948880170677279704665272596770124595784737912518907683471635791165681104521669190968940069308326391597513245074199085933583132649176855825923258291209774167772223903413864438650865177466933773746369490753046781014443139352473936124418968086240316179183163163384803861678098201559918829006213753647535572075190882249180152470804318984563454439676752509245661062731422279844884657379072623443731477665885185136870495761779141091864923703963806708822017564315019208542555339180738230980331214241172351022711191701205107379289231098178146153589786979544949589870465414469881197419465765983330332755828170685448134019775414883702995126148988092104332490824127473210310845891942517873740549487439956603789616892672824846763124680618999067615744085090449352561856929092693587767305551295898802195774056542112955816243963125829152796699369358480218109745581454514612842372490928940809042753889606505803827727495573993040307227048096325523414876631049385294400067523357768560005707399852059488832850457233769917967464247300976248385241364615870057228032550278575636552325008389270241893332315315121944736505696660804420534530211103411387590595956798253336698660810064175090119275306101184724858425950192229716838892147962939843675889572836682506690153792638644735138684674989354876957404553132027599886645147278883837978750058952383715981157676972551045723302787735079069581698471872697782081425152197494178057039201423374605669053366194552834811571034875005830661226526268861814043561078986566634830214899892036721822145153085055586462716564010011759588410760841220519969638874173346441609564740759649771848806157567890757696771891277351224926253012640268034318988799488678251657315868052531991446225158889306453907949968500055077104280439108253526333388427754207130376370495611067651500185467884133810839429722196391553382636298898534852225090190643064166846158042618972829932455309853333028037920751740097131915865284667271722424201890659254779501555234372481235807931242839140569171875445376506957545894305175660712712037708036527547726059468519436358498919588669924485522526275569973221321863039293950661831029214673109327857003429465277235742601602950586547608624288432035601263406182099003633195508126246778811115878985806587181166589940809995946201559473136097637516287026139224354679125917992717612251168664918376407972939276632616193421499794359538854652046297283586375947266117165495610989981706754573177519729361086011087363870521263134657651619028807221833930063264614870982000240435672379062837091074855148990971702033950994069677104100120518479603666071081470609811213789781338665139292648169122021912216565346618996259384277452947267193061646941341054232553727983164333604687499604370798978038576881897046376078773452159124237657277104403788106555609345170353382387067801397235119947327842582500348808817523963055572574149360000628818267887598150064171791731650449416273651428011305702182579241890591741887968349560202571515421452976463337281443130477010972418268043453005233170408815511394104495848883921128273225842032857586396075826343003591448469042998577734985853807665471900363164556883239696362089114281731316222925551837849403796254018206874927281667006868328182815463676506176960828971815843703635165780209610682295410356198395016904308372305549284626108405248182656302232009140535433267612826255270564005502638935224139755118595630305730194405467988624135847814067623408347554487964097105940661552995783856026265770383197213649034892065512244705023663797090442366775311408198271531525894707169975684107924188360426160021921649213705941158827836689190687733685678287353997396147853344408278824854785308256284557289355460737158578204723536677290430871711235512978777233789252637837014949544903471481218295762015061330341885615885616697308028406579026905482706881964392159126560714720695538523091955706232566096675826600046865941530329902125288179836820410535476266792926541270116563920905227370075015588407898749205830733274878245954368423621144303788677809784442709772579744970659407291238479111150981179312625679997706839386867873057474247358891647887507116757466540209263520662511219537297284305221343650660438867876297083683449809825902498188307862823956645777425114772023226587644501547151906800437306694892474897234316250320115483983852228190236026260985309158073311333515795961108340884692308020103463975718258573464475862531815781273770991240176166326454320409339474900489661175326294476907203177057755190730692101935607055091148743508676931648317632046566250823469974712903798646614998524641272026936209589681314839869942624979598544671126156416700314909369009581228149802060572134423167225829122806093782606649513549854344876103365833409931504805547628238712109715939843066734896599453655743480819824415189114761483336356328699193789095661194763866821535418639117678062181859169247719026329777412567567945135145076451223596358711102996288723197706722353865082636785403375869834760429899543678823219105692166010079085114297881567145294982724786352750393664562257813123474173744701891944268598421749981444030011890402544453195312835894131402406056857882034270646864998406206605181206613455869598941235667120717365501488001291686847852008332626977990266271927994030158109629215751483118257221938377075754402835719282404820187849811995982980895736593555243300824735599668741090034589964050559645140380656064042763759617815938124306635336005002271018876158803410501063230881004539812816846021063798334257086377488895413355221592294617786383629449258241408867826493864985312900803649136033662073218592301369882960833763581882102103555192704406342297954731894006945703340188483045892514370512053858141492562215593583277396396358205682595997885836885799424060906783185920131097303160617360130174243575926495743835779812621627244374328305615348113017872938877345373988523895831590549923188523685602994997405531691557176100096895932476803009246538606529626003988743041189690973005249220387191004605453113963954373331179300040120515163001151757076828070153341997720968301790034299548903153662728908252811903442410235239834055509417185224971149274131903012091933885181089958894468414348871803627411771895207993270472511353699661589798046643232278837841905306287238378042667866767974595289778391552700598189892784167155529109215492060347217571238520112237499425376795641437421011408766418622471342422320648500182541398540140779861862017524794965342335252399026650469158072820656524623793855829864822293568864957911750177586877432499753556583285876769114231328090984163620377233525926042976804686109308027010345623255049207385404920578091995499204580156512648721236371414473697829057239342658603327770391724325716027295137577264689226760595128088372066004488372951288088613288269771619774554153696027689128506267720455004911750067786899616242861115202476689478976964904437279373589884964762833109290608223333206340653321468345455247486487886587716753794457476320657784149403965317816110421656110193781136346096543272953094428093922665222102648093014505658124019592155522492441621557113423673405728702150404219475575985383672710308340188044168248227680072425971248109818687773895363650669375966800547543448748810813973536713689853987216604064651996485344703884924837291542065655800085686045036800267319729688922451297051178523819993441190289971245563895009850519821930096341794762251361658127603567109618018104294112376631667229866024687990042077622132506198626767176061419173385922679560538549101181514448961552652080288468075781476686120847022683831282755278665373948981794680126113388557408759338411824993329405187384802352531499553311347677689391726075620602681708118675282108079684701121939898445373440730425254859671640890298512687630629743353803821547742646235572296545080184985062561804995051460945988157420338931205703820997271045750156674160198623507764969680857128356883559713008492777763583554313775193921016043288057855151511578189485801077549409439135842076770523131273902532719576945143902668820566519739773476793878685902748740916697979722804321619466717632972346966804072868489266912590526738123916399063179362850578356143085662439002190830787301891776481172946344294696695853085847168079278199522692651811146886227824763361774302936364133772719409586812467000637967094321315237741203796221513791967100290735735004102144994358831707372385040021011701073792661912281456636196321461116024861788957984681869499417341949185379681708547253556443676186104782344108253181117500642238344368516398931573745648702964253344328589590663973548289303228463603137789661382938380680405336507676813148673377786833990824947304717654392417375532747486068164104566660500280005417945214368923457721964172501917440216241989829014647428009959818897473263737061119467436059653595820783100315940102292240527733397385528051991654164079067599993625737397175583930949162818219878825576452657519598981820709292509215945858187459699291634112326576104695954740527577849071252112588294515905537566487225630953638972464178680889110062581125880602761212334659923741258085875202145548163755870528717646100967902755229313298793205052956497023525836353344483309844943318823815080150001658295493718889633401315788310155613090258416653340921630075507656957787463545952631440380310093206701899532800423538729155543019302681780380768261898031193010328439802313349917737742096961142700927304072888951024250444352958443212331470714590772114077940943685835748881246611089544842013723395927264594842899154567209000989847791764866352404705926670521661607371896938377583565678307280829693895435321043397403521634611173143347020432806272672688179620379715676303334523926853598594441785697632914738620020900553301134791705551564514603589699323717821001095131228768777018530863908676718769784669765556737554970917000541461774723424219574372133945392565219608783592945067046334484235411756536313922024149916204842274560513102483145106375252037832793167595761014333235010240863998147889892735160783739958709183672512330607661962207776871438326310200347276756009894103966345945418711602197798549684920098506256233261152294791437218290551423472633509860451628675990312825869335123945070015033727363615452041346670643761080936571060822393440576908616761272840854747092423089636634692138675266031985311916149694027800926029822314682034153084511749203757799255729144628479350499961202030692570511489056690234073810558438982509858939847908772455747450616209443599072351080666139422451292498461243630445301219923943746705226540795493733609003345150315877846027483087832903657376340465670608401581725713955725044228567568763120151087304139738236422544033007860686354082821618478461982570329226699638967868640407630157098241683695841881164680217975222792061532432121105637886577458305527981162693793467706262456692890764000389299328865644918196462555024815563292416385991990805374488951945807421309215514954356781590039967371236780220501967393072508668343657507004124642267229450932044124385557292320420228497339626413291600373256496688263876923366359256166496136628464911153233491921299979989364260473250496119168436809671178256492138028593544576293707839991082514428970453038079709150730630217817096901812031828388939945681947874350091868027885899197807555433243926629469109974792330555535180560962745415903252469712887869018947788321017158616269505997109021085479983802333817571156105445466936864934042687555476388916439840461734892516279726263610180170942463008849201414187446712642973301089691297529232427600120485321645446989537922330162991531603866229679168997522672568161521098833223667164577758272117346175007360423207582964788022817978966647581775235280018305510211292032715791710384997118082571618088591784876687130557326358528884097638618395902917738481430917538364891403351383389587331937135845863081826775056683282172803531802843517092655179843483894739407517015196556105803096779339992844453810430231282282010434604643031628473533743073209679912717641043295175524430832079137772793738856295132410968279301845948542869185037310803227036945484436671859938945859912114376000400457385971601472898203328093651764122388209134116013433633884443923140213633415042322553640072326507206497335645002947746874989938885714754287224161930117652179532344179500512970724515910645609273715889581923305486315048820903236253180392265667696374633994443005077608949658967516016719426454343266014704113818902763700173605477829226855776854429991825083857517509231518855918070297246814521752113977046020329450358054874509978807491782190931440817210097373689253692556731951343592088653167200187647772839487976342005979593469591237405095679766144301312516136943415310737073479457139712601055686211433987066417915626557074765954285079677033238079732185922223038552013986101542853486828846383385120211345166683085014313642544927500783173783749618665933450099956930190839665716260882679344578758939230956108383366837990801757517069060618801215404668110915822072780645286646717209934593821838843319135330271745761795619156067677074602025778427501153537112224478537422802640058086068283210338255022181056764038291943178553261277359647090963977002395547843784741025962057668335855556971970831894584432558656953130148368755238793737203217018156419485887191728902162322963571517613883885571873607595708321853191942282124288713105560989486152950540694530898692685702423526555886261322038723809093277468159562014489052642894164543118265074170645874850890159314430407757314665548189813256159401984944816471746925186377348161056784971339317273810725716158776246642018350923335615620564472961415998487404788706500576886915751583517434714757482987401509339684562016797119810663845822822852401047482879997764552723488999755161991956112638763732273019602500674914656693656032814727129897408355798633468350003625763742350357487209004013390458810744607979273860941545808167473088591968912336792730883520783374073669216041662437262124390776951558866710160526968591111639938146896448848904724180321017156753107391584331743916662425462674249284810416088854426833450077673545733158642366973604205003367916533822920136703703969550018237655833850116909472135550638904615666613007799704068516722305488866453315159988118623127213421775426714995451588022683724742333108375930993028950302561346218622354533618182338700308189207281122872626945208509738128910062309892354580733703879697638840916216808443287407465872689235179304391864412645157466513933035441252091741074408870241510975339089366954491860337352037009294901208226808417031821646889272630712243751021726312183489660823660257947961810054844632443098449252911860909337033085671887155950523279803410740192289294146642917384047400883480105537245696286670692229898605582781722491799388723834831230277938691723264820988239267143272517833425961829813683657679218303498642138278859091042857492431078907638813053105113581517322929648422350119045644235549524891412546443386589053827801617620871920115556052818998376659478829677466738627428200345604206512982668801672377734909519097192883032569787793495320837310263475890116797737964026771021345147928620785834326054287610418989555524364589557726326257796959329792169111161960666099229406065527111886018292162375732537750780897736185606504044682503845997176636358255003215535345099099065163801417178565288387492360161499668092770478949539841947319629593609636299368534583921354236008589150151456339735271331424054474627093452694915159102908493336345616842492812028056041035754504573162613937903402360505929843215187239104917967250328625615895025884584548707814909277726293836664487744929157500270048864125874699960965304632190031848046496819958837097065388536227409239291537276345123269175768846843452351800359714730258286412582167693411734609892709027932454751311591000857042250204239489061801102274252319399115186937372253957019814985069065691447894672178042039130693998225405852669874675140475617275210338349396280594320438483029811390225362973919953847691783929549382853438041844197914658202291111458355587964261578390754029294206745184070463531285836397297902368738604299972219198610516762686189639781116877734867890316142974070071258493999183828024421268745970970218455197948167808537453901396800861681611851468770655696645553180911960486962836276355175385501979988763091424912118110827951714602568655060591028827439943511964935276697855789486463782596617396460646726703940516104666220168329396699148641661485127453562456126598976379555839344478325164854740566080568810296413508866166899071805688621748021839139403043233878338809219745219017210778882208781497572816451624881483867715992941222391103759801761499848536871078695869972874957038886882452297427679250471736995508695341705490926788702964324557294321408043452230870473630525319448580646224971332233422999441535144760367553114925016706288972625473712029139667531092348982188657123046090483338748496156795698048955825352345448691492593216341878193014839628087466357906169607005380426940333573734202771476291996941550884686316958036985791490549359545995349928833544461080077881414505401326662118408574838659989451682272493667841530817714590410296035085689037315860242154419246296250531208842003198307843207235770972592720134389482799790923565433892021617303300711593564618713319012079921499226522078401614236989869850928969527551717678106966215905585495050973123500925911775893872249026609462779092272734103187771718719866774763089212427011488942443475128794007040786540932663498684928854587097811242271993187287320647802397209996296189550277271769608087630584064156811885010579641361229873532969169335112515455819574573074918846046231877789826324819293301379792581257732063067317351511866592990982936035184720844470517035836589985229681040609935472836455289525954382565108492552422506572237375221864029784805664752330745421228035587216020527026640519020574988051192964852871017647981070086831667896633017164912122668604991575628972870699333667140300258198842028127140359972555908173240427617838079851206251453789236765381834065101202263211512439083768444812688713886341276630138244263327239601400236628411706703470386180750073654336559791944697902929522687091491551426597209396806508644452772323013758743206740055987027995728633927664593281298436721554338205478402965714263606670929918622677625504270078389894022146572615744654040273545763139537730427824042139346380684865818142189717092947289987660052636867105771669441664369387898766639409160819324793010054001330389413614218734297812876935914566627611654173552847476081738007816323480931436668723543690957195083830685193417166018855596157460439952792067906846538828956102372732312578770932663117252413739340184552402071881344908954958309080137599267464461790909353229676011776008884613051394224748332211478292250361376541573371176843250401469713899205355728187740356531273115961908304701996785747877304955898865585733477819568469379887002839918643951012143632058435453806223907497336411669108720738301568339212628230212106199769356278980208922017976961471942801881915670089368420022868968884566990907851214412545571410707166136971695613560173952080255708862263628403918662855741957691903558877291580294613019927924339581649031590792957811426060819863194994877529524261803057779412249428471018097118726640436836979730109384295529234950800695566469764316233576728240782753814016298150785569120633159552698248519067923811784263372903686834191007241975647875828960478462468221754215542126500533446712773271443992949955486651058757301354256012883439592934420205953454332502120755381552656360846562755798765706229954515532625828489004295652987830244372576593616558457452165703269694912922923008882722051439830908712980619724086533866978536381128002755505777289669666694177393167312219414168265664832940518473806793984999214624908605244108663408786924691690852154449421521711292171065229519686039303152395190172656270883387224825625355018954746156212443479714987063476983107181423018394642173030802843414329284617810894450350040926999070544434664192790512658770026114365104502622292450790592507718194095274180137982792009770600607089287182594751270028032922287426002024680160267453979670730614357365796455759380709735096822916217802278640566599862592048386507858966472905544950455373447711163897884614457795345333130469814051928931673758569635762805956284935624185183778426763701458914252119849626508564262623643558841650676628936438794948632891247024232482682307293469472724805193895740363794352016380565693050426763577542054966511665098661396792496828813102159368196498356260066824539411524091296238903538917494967947433885830206182323675701089398158161798371984565623391103097659233596651351607451430101438461711423627060971394410204977911584614196025255047904028057966741036742795831931951531378792790824670732657514884198143723852777007408217163547383376516943980981948182714872929961827582026300360996712738525717988347315748115193283588429999991790335722327532607304022820235685419564918547628472179044537976517175764773380646577810526988426874375538220566498350769758441730892923975375478652039982298286024913518313011066801559992681913781656430362482104585116818903240724624143684107049785835517893463122463045777230707422649332139846629199880546336301010777967823500170074940161090614502680433219465612311286409419374019390878463594492426260442956935253441041939842794675409914715309213118376291008069798006649673658918517064498265906501770475979713040479763373561708818538620338793929020504687220870122450098918123457654852770126327672236837758991190294419006770759197589448993282971015636758683883104249464377674485152230338871887355209914038807512398472467635608861914630054709407492040951920508416732583753852611654619881927604902989273146098090509298110199061916858766408098587165487706900324599017414565301790486389782199464861533480056805174210885317802445739418682876675669260679800407378792884641018960073615396896634853100671423694809712732309790982887466109586790837760976317701120771969681277149727963292832324116252014006931335559169014939196579618614444488727928103614194045199054858747315078621527254681711946854595947309968782559337626299717938333480124591669717508370207843072798993374538741212635568555290491999372751547836674453915686242753161349516518680131880008245654283492479474523784657356865224975361558444404499080123987469237820749093873919110692442783741663569556517285956317320655941148646883255427843591982438867976706793015268158281759753775094384341634410472600418183566048504511783430080630089079278913271837781793618804871452969158720210627346597856917309837243326961703771852745408415985530455331388304610298036594618233551532463548687832007295829027103751023228055929066598815125412606109567363610491500904865610291304597755573030400546220568641746830863730385149122132003910465412088323458937962697220050678199971428365120212867011402095130423837288782590263972641329234968491172916291035832989522276205352611078834897975164534666141661762149859598687879581902408925750574951165945887640594973289446386185187802501507501126378019168581433217428240894811353848547761859548614698435740618615593697975016784138541655815915365654309271922845151951087715967679906344579090616818756857933722517195955251272990573260187058241135701920497191395742089474852375638609510240326048171149252087164287965722190421943062468280466035208874519403756994299115676704634788323119670772801756989815223515536759805678984902854505806819490714098558761492393895477309055451707678555743344640270208522241290950444409833966317921690111357704544204630608498269515436048124124036722989700227286047535535589788319246539563048233588016634953277125728371880677823046675966735517398250533123213557350247230751383997820295264973586101653507988292047737825013011825939503432214413116556714938744319721933219452739390951700570523011310098336376732229166881962066984416421432366491860426185467663522914926540629187169884048018123222418430590068789404503772644184168343202813515328748786573924566293754516193943878360904672268003742971681910855259534830821756523140364948737936356715454150156784104800694537943794820365051665109526325112934439561825765621709132048714460853997825462462830009175057850768364851189117472056751375636148711756736229806757430370868908928513433597846940843199654354927042468795528306357034930432612519890481191081982133372316802654534995105195300642549208503057415961306470794727835476319925279059508846873491411757768960944671554596721159060748889250427758417515427172162181597547235080827968478024143168786610976025838698177936694379091164534506877916565160397809825399942132031340368197372011750094562242332213455039214325693726776845754839083591990116302188554518020493185729593652290344681480892484369670735591568744515515262462584862829642377963763481094640415755090505137032003631271219180049875551884878889824375932082653062878994014100369645684066516240412793836631533424000856788550746370660528144989900403223727595157652726204680515372123148192280074447858744068709479852578531029301076266763780992042505142716111524288550367528619004645379740162610184265605782926556272766597121693457209395370760031080107885893234650972053800652317780594378153294606702211434600363738620171658352914551783098049593559452074826874130871509514773769175102452602402773919645822395521112511422710860750990244909130283891665958248921735831525361154045117721146649469046990531382024904556809946436142462463686556145639145534997938005949012952194401294903342522420605742136522464248205902799487149789902026628889911832040357124333641834425456970934719119282736349408427106457480257609002404784798781274699260926269509282691145733022059355146354821354302075641256530541155482598767399668867778520427631837687692129391182763048268924498956914128080326015419163578637291114798422964768116234292772785275264296671288143405485119531400123628923455776397269380164435504692903127939038230695428454663923652576981973842352158380749374384315325813775699601684616494997202942184058832000960867956406694909768092452200662133521621333500093108813574822126161639259137184185984632111341440612850557021409049169843908246374270992016858234130690237166501737567690804556291021901214633685630756245096574403692711287777027583396377222598703945054270604174586511669957718141984997622054787516823002721063735169676867833479156595155855773790192099260909883119424358230539352212190168089429840446255315162353559536184661027355199052834491676401694854664090179168476039838577080953931052627913720465569604526340673552053608489429233853499094899799845042466866219765602325692856520124947446929456863361359284335048102588136150627327883143073525327925684819529947450667289689790874382923783208561639739912097372038617355364429614096761586080179022301378884769450651539279047811689755058956302734798844081309772720397396839659838184122437316634099746433838264698210017485817638513886362401858588416828563519897174312721009546759485777122443166640773842374447109629417823072010321436620172520516341106235880279421475243381370553139447646296007748290797190526686216747143818879164109780128567236151214441697053096208341611431237504597023946682506068203604827737877019429642624230767538713223161504652237421704523524807354553254015737132343582617336109160819903987390381149621747240331980098462227991604799021272904325178020453260732220744641057230290931104569456847911203120328079239540582020047659021152010956907477698520376089646137173692754152068582676147407686442050519552031858194811233222116954722476353002072991827375740627880578003683718850819498829438137948902990698819336304679379783618872060130676114660588892943216510599766419131428029760488349880959820446315585012975658199702114521857291421766213114382078087031810916761144164222597870161152900115042729245326062733340002578469038302297589287267706251481950052244386024661266350840578936143976018653336375387965006232793447076350680453973865277949741133780784525504140015049681244485385835174030566521401601282733758046850199058069532977900108158041412260686246842483009019955640017283535478632655337447071211219407525852320084152770050213295294341884122628763212013601094024850138112640524261797896919991053562078616217948809983956887712801989745163909310930556634996570209645324747872750648763522793088309289547085363163288089157380338714044298097017472003136628560336098340785686966068432911685410919505899655807461365987775098634182573405769090297359104344004814591613277828041004151426555100232536993114315533217998340496240889987682053569035566979754361267869927395724219055905720681121040364364408132610640937055424979978884348435501739353326587561586077785291276523008221892569939481042433342902068928623585052974766191657722675178917077920446504909225961752638398927758381435019625656082576877281246034291627642873711173392688904628023178540401159783283890962701104899971392135111334003312750237761582976645174750280009884305728763604689434579336916314309314774042396539388896035336711380347038527722384483025189375464492890643504983016053870038643542607714379883742008275519787924697013024426352458203009042735347438008976240282615428459047377042840154532128731368620117639088511405493220442059959597112608131525374452828916996418251772205855488281026823068600773227622729794856099847714864823609678719348927923351311883383236809103284492881230627356556379799467009530469117685843389247520733983041718750948214403083104667976168683463156002962718337721331190249108991417952554429614404774892028865411318962279019409730078265548119622297802027732229375760819183775828201686962013847089909241479980200090222431100774683308080934295397246932726376458116364202423558037493179943088268913200148636278945655740391037662077319142025324323942340648070281123663667265647149259509261819243886839558076836253630239888703815706808920948152157572526949848034992580309136291915807085158485670533905345084587238926221550459026091958531800002506117090471601015582311640882671754076856449301265355157721836264969552485095325229521984534479609596440680477760928102493789830043536176634973501306569620129333293500286104903011374349193911825297274825366126568877254086785569445340261718065051720002800156761841293093316826506191227238420566362185165744633623319623090977581601120974291525558449896215783631403272184138983892855408361449964262863056082101593733677271655266634420788695574112378979432259437562383127351974603493958425658417115240250477196176556459363804945379434346775335537601280903402470205487288663041828450845857110447880955553484139070837728098581639296322020709420883855462518289749298469915955686259746713556555701822334828965641607318850353734630162614826866619818700960422553683355964306392038025614778815338811650751086268887210011061147396470246436046666549783913354421051989519377885180370669146502195885722061759700965447375620806253697022452688222322740675749968966001895432537360359276116261751682999315640709632437723390395232999523082818164359608686541783766216536341892476320173035837636260476894841092923200009812134559084126843525976583991423652725536193525058235011487737870369443401056066937327184927112072124284296483307902327482390365516401467179944050052470996731135167925737631350031362102586831492241294089809216316163519532400250512704285065619087709426654622647275008665187630254644744178804357647441998246461870439211827436414770817593868652849904596223049419485599777165660967946055922466056116874561029305848875468665136033598565311840030344854979626115567983068652076973470610574031231691960980154507519346016134894285398043837723249919972497584362705533724371513919586952966013609975833073377652298026093994907111525256150626167696977402468466525173623521271393906215033015459877120663032525886470754309257736862110837993709220125728420943508121843442508641261282880879744412186921765770396023976212044438666297873584066147004674198471827899693753786152810489192907575622617394532359849709515419376750141267032084439976492816874155594596680658223635420535867491860817149210472292392061642582809284156756241163990998195085512320672715980438917503928446556719500637640162342929795780137814743506356188154229544550707820715724055726105426164375094891798155259017908548451546050043109411960278462340569601530825797081697327195591337724235580359717038672684715908476734464654593059151676240534326779142324642880696580524364424256463393246808947709583035138351443008983150615108920848092985956159464235849890643504035855236994590027529439595360490636261284041141082204707532648166041725685784562830801862796998473477140061380413129283965557774210657640386071527439715418225605980545350287742917983566176176334312799961941719273823752271391635752043156936995490826843818365588201264500500801924127629041127822324554855613357448719404672327277833425940253240176821877501674050289002803362905734398633116692312107799612735339170776003085320225549682181216515901529946424673706970470195983160012454138081325683784904598537179584027557590190123341847221783991339467484643311277391177046093679878680316820987957322709020280707814118500890707604045946389179765057162879853577317242030375039172373908627727542246675056054847702479587631579895758400366028898170910039035838022400134170352131425677996577317358232142949038055346306778723996846275927934531617974775853903386603345414486308347889002958586064821619736745627458181826157654984119807369546226245733384414780076139256476075975923221201199069817703994013917279452932054177497973699471501131707730888124672115288877408779087002003779392934370064291094375207315969093228744463423639806020868832938128369967796936804512647102567640982201947455793185570767692074750017460263491535710616107773789224239710518409794703081032349572266572627665295924266817921509168906117163323718249621321368547408423596691715831327504539666157543889609758476031468507697033866599729080797376848182791184432731760250972630142704175464313247369270956740235367179089855402757158289394275745814464973786879682590319504041853861053516589340823220144069277618699987690107248866465773317744585739635255247279032425363989722430233195998014367615256039258023884661705579611012108968990543207164962005304394913325510876024249694434785385643531480371034008055447173358011239625359889320117402920833946112741251690804231847510354909729552781515561931629229138812341649749529803208520241412422961578262412328887889145699002274549258222390308079638583542549356316380183607359646471101349277304047866518915525013166618895923495659541831918812648416160289394844326451908036539199697049033368755307171968473720198161119898705460353162744858429908059211755751724032191361685896709538549503947328133152117929960730952561185423217150273224879318176999954734468555173657190557995577990688274584867242916526793032212200504043553779672607057142160484126169772829990105295428897986315881151669615755525237251673074578537325274748239568718983267111077598371518949402136133821727425011148798282091830036869497553647716365281015811627005841803960417806920372739603480071138079128186439855790713777972288021028057862595679108420874452696332454000869250576351921450083734979653246286946661964449796693965561017281123874638120237935922335142731203147497729668974707823719195595216949006981540675490258842848258161985403955168603524587335781913022139973139121535163091421508151037688046734130008777294973150429966851949769970516758557429076452593041803944798999940462704327235571199234599433761686327560053545683879726707534411952176692587430188204248764870350127186767816289969026834052613611269070038231586613246907059597829276996878263780339619641550192729434103059794713041160794694131246513236237760404038659690495097832180301031771081714175740963297771512299735313300359047832319627995875419699415194017825223703317764797564625474314849559678576000547931170710225189153220910881838044910869247031238645904697278831488890331317008865958921634610982559240852961138606556398408970139863933369979487373605751175277703886392959167392567284450596726757737575723440244200015812313224930669025802206338305219490479288732153363420043773681632892185241300329768514200008557808783482583466571836922397112708170203880092109482161912551238735363754786158876243652031736323658621567489016182632103041830398792006507828924369792286764269129501087629997767306072064337475463222695194934341914326705441364892663881985760435904296182158631460869062624851641729311294657674398132749543452203737879748345804484588583565595067963756146747566754594825395123321654938926821988112563179979266403062758273231287357722690727145663127128606308626075855812828759999211642780898920561323184465270080980686944715326939674335755331508629981912374116261640122510742763444713664808703311795407088665981680017225423837075649908362723825236794159345274940177219324449616917355414254851010612702256419488901016607947771485623287803877160886049801011663166276697731669281261020050133043300430951841365950399982427701671662689919336412797234316334011706316185217047463096524972544775379543608431457860534567964270497647316811760508819064643907331280981003866613130575157848759094809033273632864624983070028035920131404268730882169336950435558215381439259000876004100436466443384383040459031373339044054461216075125974253642156029483749398956304402464422983332960229125066378185179120718575242048841025908081537676319855823233209431431530981338233566251086495202471006834859968079031638677429950773471617528876781682457436389763954605057162552036112528060673682858350884349622043101622809323682555578530709324933021530703341626578391606845438486274522472278576333302083799067735852204725304283269946307600282226223821246744640267487312298230458291535447751057984142067778441780368952004242822332236432244091548103434056164400305555670845871121358470507512965962765630242407322978571353432878234811567599991520712798026827918103894139176904869843177119385669492151907313316477250016317081242888614037493123094954317014210984618873815053807947180719136402849209565174441120581107278042894889017670858057053115575354729183777194612512639332077538363071588341859471663483821414193739599656170978444081393920204234745172810038136243123899701632652275132848233041218139640081354263718139086514512817552079084940103152643384405851808373922929837648973190850796211245840137483535332176074751263568779773608357759038953463032979883524914416448459350752769586988464612613549040762811198655350359589724952783297935171980766326420384115577842979654326434927028760417708477952844939709042094116661571846913780809529184779091640570179091389856777652970479975045083481601123290924142901560009491563401882106710146492744675685299742575103890387211669487112851054222086148717620131643609228590793608967487643160913151973689777421026822342572751702616845105382651082586174493899339182133548099584430162204129051118206262136995053307702828215129038927254014896617992702160778080702486195005798657142578636157938711977955532735005010634622596850853110251477232580503665283072515156325228535983268884147812704835493495165925053547596862978672158281476168366188207601989039655657106097679513236266485735329938774837136587974512220817474555123563262874051946367109655773175046575271115938600207771224698968984436464469563915484259175847576271815377201324747214047831645962389752038636162560049091150813179192723645903251252691561890172216257769657988257802323985081641551458912846945789391074553680721766017303364351199890084141420789258373748062084110151493557604790368988956580220791364275777057704231115659616874503435757908958361861444638677351905336774066829402809548323420717301413674909067537896826116961051214850196066864743170692662624468084587213832969720781644441947261744171849520367295415306179647766575207034208761531371832641748297657913992713643963617678562697955530171513652081765963848740530164019631234541331120240623506228730169066569413992463827077751056694687101548108650987848195916180987158093900914071004078955266218313988306664192261286887461556467501106265203592756016917822197641873771774720143675882892550533399549762123300885846483796521646095717774645123252292343778874024792464600627226508030709397117688299295456303778282256880745045535584458634128723450364746980272715938032441496656180236501108986408745335220844790644883649107095847618514506880707361504141411075734623145849767707058139086680311993515529229023184375321455741857666009032261498389998630361292665341212464489918119853792082183076672480461566827565854787577282295712910893510312861882731317938850361910124895532617518803382097621855741738017030313188825323835411646930644177794541600391586897100921161685447411073388116219084209760823326256790232292262634330230505823415701404387701707239343877288980611257694677195294517145085911461023117805634824056501415126178246789739287850121712729382473419687837758221952895184852003700586580483850452448535678973311784921549801314229993660827653699703709284647758103144689218004450346781698376254088164975484644419068511059826413190317352275963676902240769170242599424923561201243371548055199925762215530465763622942395038887088507051841933160916973068073135606336014816435584353609773950728221429331350191004197710393391616051165923892989334250558570864894916873954257974433130380547484094160959997233003817632767657710892041718628232683859501921928686824089905610137921725366238495572817443203793185132255823796486735313933265371061100580030518135096325832889394032857863736357014390948323848092814438203788880017871550769493534372519159726119867171638697907064268039928995214943366230470127941314602900870260379184190208723103183156085183891806610818523520079036366286251129052577610363825298165222604696410867861176622375902625839837174017150740957796951651960210332822931082945291547846907027874218153297349147569847532806612845739951592143382772923352852435790809968659161744215795419331352974176191196369177258529503038338698853984936332241626834160084380590390516032607567704811006053048531447126707273359868517852994659422120974219799992540894916846249811673035058112970104426943938899563381405946839910047240756078197009089723279542170047668742615939484154097218237693716124609704235479859790943360417026462253685214228027078046256388695286544658405987003301955048762144126004955760988661940035995783586016226884032382368380502944090865131301834608228006225717346366188777059503714079870271983257535092919946145672218844358047048832964411768404330539151414992805388536442682920766577754550944345037836552493201354635217173711145843863661229059552433911807257570375894981671171999079216354402241749219960485708582034971712317308092262152714868958473132045897860033975359517338720079449485962608563745990789296199513751993632078149248538429527870003814205861575335145335654301300244638770188686975710430626026531736057212948994262277197679536512610623110083760480176149017179266295418245565849735752918218908697261489772188580433800321728091187032515806820775341436173981388792898354591965613345608586961213740314151085158888425215992061250902891288410986098033686586768996662533402092848370150801610042948820924607486391548232033276739484869615306632674013657552312656185768010474999688436875769497789480413249486880314272644599767894793073421060899526288323334248370923275914191064430959419746188234696125333205551169728259651597262719910932536972390069364220267681199047041674722227790060311048153546925985122605869020171026025122302026699665657912063619269309056469406175910397582781879512051650318308960164704648383302261458652016494343618739812020850197461717997400068279109611624135885368281818050807998149647235184928304695405642177987552744728898072654388176067353747727126331721726232996421493952321974149894909060212429489894850871958051960826269220727676522259961043029083992416793555029059696497787539853373441020942352699240465059216284977986482276324931923747923649084474319394354948429700614813083020951621284782787281566575870478803803474871027032098400652070937965025245768769673770167996696340646780328428748414830626149065565503416028586779794378984732814449741860268832104929289223934590624985841639660442536275193551870549503395026872681854166825842701402532909113502722363083752082093782974730256980216407237090646331017404303380462404788732843644473580172988609108572761958219868234008758592463475374771400483449547938329353182304596251581917463487022428250055180622023007156090777156915754063197096623571092466453598317867962918217334016549034264986078828473340564755316392577307807135875712780711635668054919537940770311383838091117537931616484508079243103293818307073095879315532601078558990962774587222459725960333805437874025593317242156692802464442142327815233489745508731745875956812974330929269792306451874174288985881099500422677442520578930312418372082924476952024937149304049527575463982519808278936148216671011020132696554531748868749239772569135897529175511253479825176539493633087018827209954953294004409472585277267450641146444025809378853832901136531802514922514272469976250450840353339293834938066816495314630540690066895389968604164648372585455833300059945735521379782699878198472706317215416314337842066691551565411137559767348820686727134469395631675686846300169075580009722654410079342941086523955305232331547107899103470422910042741877824282998842460187197545346956969330357584395675604596686117060202652800376589665504058949319129823139011336487078148006591672004478346620053322454913310492416236412259002428271439648835575753422553929812489427587353942691935497813051901588241578149915222050710839490177841957457822254995471652084093297401179475898609589349746846565394112643061025366466918243199331368895177176213925663612807572061688308803113475268981491285088958281040453061261855245660853086057456450997163527125427019512393241648674734928713383444766044591247111020860910188115927135541810782263026433048053205932076068866213500577128623900382072533580630985169541978014215286588262840388126995397172491698935649824690042764383701761970760877528230025474745356263845690712070529923705556898736404605118585911862152202274573399294043951344481412716635617791929123190227573556937506815895646552937925185360247617001594276486448412600462471596184561045012227773146237382272097406455499336138108360259471118443180357909958485551945298942580240612534740710566763363171034449266563253634944769846779682582684283882500482069592041773817638890427831493390930605927616634269731651037361971869404344117552489796086911023037350545774498530872314733240363605818465756070571016922486236705066755197455322895384537418835478180877704543316861066854562033589706974671300406940050097162622157580774439171711932396702353373644048480765941839986276796719394959141088920043609280851261929287398281387481628013855853025652846278673029393406493776901908659387609715870164847630797720137957008495568970609307394120127836507054454501916616792533708555855048807027542065073753315220312224352957001803191793453556555739214549254160473655349584538489161469750146458445914396301757845688484058481895421702788307466329017124762590384101003586683028455259901881320356079878989178628052683307671544075194280563688015302305567420316047780073942556854722805514643632988918552028678577903081793316039861300660929664518371766585083060375767903653129953313723080033064307289661798824148324130433657098374501314813005821608710182416298837941840851405538308122643541019681072583567382626361387889795751224134979092352870121822560128204244759504459453115767197000603120742133074988820055708652936092964853244743677299519938512104220699675807165147404323983455725291317330219084751256457615453519413054063326249158079743839853623883534348599613806896776412918183633027962280827880410277642366587063174452615516691357665535121134187577576223060200962080094217579268875964118273717104184946912391052239463926442386950825381547192550757335644659632229468259224998608069226543117539570320388561055218203999009550825278292467690487546964462691639382269016968071185718614595749367948588937791808890485584068075486943138464588450631785477223306224716665331711584100301045413589741780415008592170612805123545844524743743822295191963463089482490773861254130998119294004504649097821146505180261927398503200341198508845136687127039380613331597359807725372661089658001084282276260787016631247331018587925835342611352799292323279533465678144560231031972491967686359415101831551118322029365229598113013373357942981842843779607155214823677933301060548717092966447061995207002216212753200212735451678321808659500381083671915123961093165841863589290001434011881683612543771402211378199519353874590250539086424193591341168933376109953169992967452357028915549490157718634812721133945704998073183026481719777651394671104620673413399580627388342462687657760069939122950495469488994677341995636815895121396516346881150834919037938055906838694608174813986560400840755254078208788753748437875554629106690700803346493433012938757397737072744581148689154373897878405480520187182533217963920169332660536782966052824730255765271105999196030132347710329107536373601850794727935094932050175022882231064650801144423907384852074633066461089867416599616127946626505535465103303696988185527004887530675153339362863569742876866005141240851543398032542021692398675056694238069050707018489174358902360475828399682375416718822053158396915788139209842079127148691263259342455867839527689092107714185974474275348382278383146802387401028643194806794016181318695353409275173085801536493011181826008476572070751822830097155767250330304108721231539692178068831094024252887107072639359995081191645582753149659592615339423887794129669558642924288273209845214403394142962292102447339133603525664506655611572424938338001780727824751171537613278626646882862500115013546172533093246977343360670756758384673189644709183809449630724950146284976311746030096210760838164241660539456799632194586943397449744811583402375661240519214217565227922349504792704369259477344485987894560821547713415391895033446479286990566553784990001087284071525718839505476489849139826237486885824960425532682869784373378943696035847382550520828405627507696091012642486679757834147816650760211052807383131076041397334202532953563449387718833460367854761749391527513410479312295135978945113662653455479117484325246315549484507889520942982952550131954507491494610593047129544093076389084496720952126068967004133330765597013769971470706637337621979923284241099614026656615129576793316689268497028525111389522009123613952332509967300654486077580740484735145988336591238291642743870326562331814029557796897562694183218604020380858651760121644438674967954808473336212647970286419900575351244905999959763698039363202162702344810803219326900937130091379713099740995863540824144931790440295130850265642800318032889494877625446948037168573244302777622964445284314262855964935368309852525509990584434352935045654445082000586861757427346718105341930643473361408398807634161976481682507396704389902747141984960570391237054796654344220040234315244760525080697560558657920418572626639043498667472933999890794045342776940182904554673769594344372158352319860086055599464627522317252424461435304719324370118695189862779568179210846331522744298582740487000202608001608829519677120168434711578187241705944234638487777667518578746004161458371420429331999057763372032706387288743512014881523576290364499491467847964348043101510795067361419695115701241324850068382796259116088936425555375754953917647832840535061074034527506943215549641611575502677592738498042915208238221293607860120104876086722515959415423368028055572555415683739169857219766999040982879025742016743479953635978318937220289467649443704277125950745749380147619359320836149803797734493305147821398147438228197707655623910949196128874024877873800487879048933253947657567202874490861695213273741864240672535253928603413720886812113025146201442373054952707205996430490256398125424410801620805066113555896217081373756597243927265794627836928794424066273681659095949525509034046234756067887168757088199848535910199419633967940049449074581116207044009096308042223162986162321587157864185700035126117453893563503170481257654274429597970335194366823110235391901376015672618717556210174361006276749224306269276262407086089958966975904506156048149555394003144616436818202039051803529237689854499507400982821976624951895243345386005898410871664845712581527951061671218919696344284969757839566415791937744439360795434848132025924314447507393036973973146313476460263300601768684022607213920322365156347941732704307274324980250965567150096444661415973426802688533208814311063807999415978666073415268889257106275518849626725240961399248063653055330185451743567385413351360092423395868557266435619313853210990758097105776658131021858701084750009157595537938624124261531761148185171920884630082807063346144696567152858388952057241209695348631396211171925478705204307995233057075509005693628521630080272820656678774059344713248997217217073200595956969821969239497036666879605583864486577843452764793826917683841322167029152507361953678206388323034177483724315599950014097905901300119672117172101653410729881262917102195215867954366514558686141606862390990333825217525625790879084617619171829618085969477349754276339348981788641223312327167185241797705955290734671185396916112986508098901445150215424600377339322210089956509508695440037172242175253373564518415667476426476170411332957035409061523640620096753500891009259795161199519321650486382194468126826963405869441180844683075143225694469743695440817993393810157905117073627899102224235103756039934038946622452180330342195197267031555763609250409455039549237594796212728641675506095255117717645511732405908332691872543583144264621552365534882944128581701680921818148746619993672704752315998652672590497739071351841678555681031021829607936110936369141189487175250239787779366975798138695680535767910414744463298537684556146242858777623543817105548663350234013880288808428456680886282322388313761103019950441670084362912602517103381313557565362644308814558056567420477100694796695437564808563979697957135599653511374528297687537760578723157047740889424022085747035660850977364175777769869809073724671952371036633039373452130172317000430392591962696764076081644908626648701639217852322194380197474197715503220289626460653568922171480194055627813417901531525188183730848910313827519728383668356170556112897859652983951513558954494651138727849204027157003786869692492312635823922319807877122125034869183420888882308691055689965145846548993558304290743074120160488931134217134224042550182148331618752921399098024819905757687856039217876932233027133773282008137351813353207212595869044493451902319111826745090225925345938188482194683591410799128880445819922961718522964808722390636769353863059057129134007443748056290096229922993146952818717352719048247162716472004662442189448756880314762345326314770662421804775206768669586231331513063842602524418317115142669824840525378012977678302435031303257827302605430406409370030177901274014977325789742361837773693043248145186100478869075066892186555365087901421539775307066025264288079569085756820893122241179481831763849175630730871724823504643315471812369152849225656261373216993001409362952815502656163423950321786330201325703397791125960196477836898346771340218271502342921684796137775924802144877449658981454943638219610441861635099251843215463158633114995184329218703544738377176506035107266317596996524010122072237011389958256631593086914258309544566926959035633673717735203708880522043998070478019855664142970867246933546980545487784863303713971897970470697630475406721982150725993448819464940718693870338136549229047457122087685913056782252406502545698226389012073039445095762559382657547942601136272952703328151063786345354377821535849357798969588490206850534642324824948527447860118807425105224855296254336024291787913558101367922466693984198952484136499537165783053767021437907692286517156718193391555977097788633414472096452740639149519978455053810694076584102393911032428261713051590309238803687310922515351816338064992827971427174903838455377010077645374504445631187174117494137829152011423880583713429476245750183188423824070903606885340380752877723190104390702635151431505761027224780489790243360297298515776424753014449730691482425616053335138288818284407741587276640390159002646044115482308602404551019430948960947014281490568442793029503256918406320396927378702927512678586352579524476544386897683160467521868456431477805636094545940056473799306370228107418088878032962222979939215763566838629877793330414615555034534114325243103902281400500554883243286555611299159944885585458737799803000381500743769976556556475324110465403230356205245386006419966106734105965477331752521992756838530960762524490767582254005752724247987874310311924259028998030017465881357764166199666717670685186588678448697508720159552968585019866889558345598238685894197094786682752374695855089583386781339049172936685635779865142887442803248396597555770606329433625560364807136054989806601952969411886129803935212746537530777074479066502828216556606985559622268601875026494446724849798394883712901565964902118870644946253191350059436416480488334500572507662419355299366959846917266465267736793121557486300568247441215948530628016800535438644051904222936832894363461610005023452028513010530592088064489563888223011043332730404834917547650520739537523113424298722614662036226849601291550290258223947557038048430280057544992163427919570358103907681485373730367877449203205341234574678354805173851164688734894408383713344075430909190153878730671801514573687034439012268572911488654392603245985523351309620873871845465354312680772750304719810204251863099571163716587810017712466485964552745431163580490878141637171943164155034357613350537008532683212451648367377888761290803303306750573658822168647343666941390136367647370059685051164471813104713530067747447402573404281064577086313779069125314598192881965166317701175295844874134432151335191663542877372705602329935730225710974060318797338015453686605117263101990197100482926669350740498152552134491294070604580445919584204689503824450992294723495997196900653051501772591540895926635217008098584517452554674091417642499079634618068500847895799100505037958808344746910004410124538852216191989979839348299758420367317764333675026601392406494651231155617809635052412608473991175760076790136831310604253984869701845459018843777572646025320912849138745882911998843066716949020772389525442174528021400222996529540079120907174629127266599660251977343025139403915130310827358139333394823598828549569731316878060410199798694260124488129720019214208656637306083064621602845791992309450672835032063683733378880180138015299663589877101626149643141131862195782036952117192589742796136933675592178311061344138070877145890694398965533865831743001728090455066019859212376791528447090299063577912446642883278889542849216505771404418043872484333987884216173133250446807713006116903754021090478726543022508952191235825196177576752996270036331100413567888662756744592726010630690523829864931121973940971549781912075438204095555241035169210724968670818586701425793241594846201334044755902994310071146740015460429240781136996306142974098998862497912524926133197827866254344766098126146261218490312047126797532576603043158458961675947495243739284838583670356931014303743658656665286039402928627160608040297813546260476224271706384030625255633393030973665471232291864857506323050419520683761974140287568657065596302975358841359510883016502787909485060919311848394712648332605979678843955538362402190390407170997688339411978536965653413044454914786234586538200959853065724902591362660999311939571153629926457393525977895619581898890197172735551002059634774656287627747115632092896387502122579091157410091427735169610488472551786049497208796334890258120057418687133614785961529843168308770592859816061918061550370124841205710060986110737138565418840851766043822549874115014590804729583573043285599234192593190276631045204495103354109734804823236774260069860693930685795775817529303456981981800116117998081864374693499404059210869945995459430341538749991934773069202117173162308503651765772496447529362285575451484771150568446722833706154064772267504143582622536554760572253159412515742812512736561433378724788872889033285215028067502573583239704604668032106714728233384068237845502007555429736674677655900909709652994529110809378934744985078322713111382422901054009825562479950151982294541926779478113942152307440912945175787736321683738493606499263307418646906936842482496715213609897650384336428636536952013282464456794107464900674905707722403196278767545783992915727318820630606090874494098384129440474889490994013147517629248362861193443149324797656865304970833777033731640670190679781000207246053688042168955784115512367134682232200609153782702957820437760959902485815811283356553984242609494018705110211802040637866656670615150748562288876335849131392414459606410332622833773178019255680320274053454618779017115743903035647030283747724801377045964949278371380425367523226402956572399383060394089692232847804135284720804015733012102179422299754643403007918377903946463178008898103933857935146386653148787024335100080164401407476874474264478238107003962196672877506313805379946041689791707802634664011736591460661043080646634410788425954083085487183306077647282797645456163252232149565880791427398082687987143606082802363294601391672543847244930313147141713466057628355202378714148145540814274488902732544910985417575236092498946185954844345680461942926851481153247098236058486523809416539921314686874685240851705875165222310950916547908961459928170828882114779469149389107622647152336062126886788904472363645678679510390306066160922516174868841089051385682766568327368658970498244499776731466753225231845997699030399745227445462663419176687033148145861865517679340840037179167667947068552435171811787550769270205246556768966281965661473867171140789666257967275101754352212777818643549933443053879579330840702525653436071787615942566013638559320551651979251416897322690507042394358112471231535465311910416759161554066678734390891214494118721778808397361094691150914505240744171319728305091362061430182456093103326395694346305206937467314016107850212015994037542634395161611460681102130885929436017747699554133747624067869023811764062159434049132468205660019666183836229081044254090263685723067384743870495576243370491381527104024159703084971629478090145661740666701941563177348090120754680797164552776441912091529884519045335996929216640940299961768190878651537988109330667819096981194363933041220981248287934121134517712566127052300000665698978786587765214739247712779857965534232626678689524380504244728784303801441407150304250598558970021912832303725443987348098174693887504079502146139524024233137650039424769016620240481192257558069901277676628467444505391796995971819171596873162553993119761253100383765363128352934583602575403899508971176930472736310863674785074762105950658034132684142550518203512291098680038354086687620288794541837575107387495766192333291512641551951197777623044860068843673091461871635000150838672370968722796534072564420771957461065825478754061149668656950827425134248024763855862710819248908294778694673910329493533223005943408541629943679823222594590897753163874524043520905442918310210472770328005894167229378625592290643729104114058041626811940221491740720814728758849768736196940801684618978116811200227158868825803941219781108835751934607977609122150988226147505014450980426473318673714447401330358044830780722504461073729065388256349431460650061348987568759933433115567144435401455705550149727376465342318960527079989069266638546323119095782543716883494873250017185608368437939180325681789928657368484065667752978804450452716895512041690862496556056737370764790139289778181757578290837907281506347314229385424128283464923379210703684569191249175442389346083248182725550667086691463115275796089880969065587736215269437363570004008854800484973313076403908153451174631992969002303270733541546834852107324110080014499946335312935214966304267236270714283250012780989986785077382993754665707394175891163080526346946902749142279447339867477061087473251727625335869972854401030219698415883834728747917869782972474394708748997705917976101136373247387741242960923200201800557325032317630711251512646790518054067456238839894470187771150681384774418831450973378307948107708641127365966731169115870115252355983271955405792480402772017440762592516063401240492152343314676938678919362285685493673357862104997074439333113261144359734548776849220736498187356164245026717539799408305773041420521564649660708218970293132831921888265874586250842089530462700869483359538343588937504138841987489878837046045156595358044943301780673150668592154093261384667234574723249766313585524699241852689379415095784210350718165136952710907922843833852666965607583876711937096643758721704270695775593041725326901859579558659341595886856916504932569680069485013909334765769791868496959995643009203494456359553548333988398910026533026420511251974382152281632184556840070699923229246565073076116991930599002045409848267740943950027840361280620576626957825243030997048967997003220583405474648731224170688188855212374773918632944998113701066605631801969458546342501068420929661321693487953712134280723333745535950276638465199105059387144477460296080092703339414677603887522974622962682931525334734203492873241191619255549926927643738114482868846920349047204279007457519919429188339211991499783034339666977667533257188902708134242588885598578767333789646710602762033883629486293968779013566946360962885951108318575305092124855526918577326407250185473271174417672782453084104906982903857919618597148807291253055019630706747636788605620183702515481716274317249898069391382311640467011256466636436797768897006267767770476220594512555739322836605274483662988403633994804153090506236559510268342202828094577385735410329305751127885248376310743167851415523908770044312511893630021393141511279085352142369783894726886366145379619745084507604050302943963497457207001051060319913771012162369887264339105443414872660415850882094397222916389212513939023215816269210991089870999180753533106157728592042966148108332979977331724085345233286189432770892585682738580053488042178954959746821746535627643058666110886897484559902049247282871851255481197529148727395866753219408944144357764988068107794358455414686992529941282143745142069435627608860913571978732505882174375713104711085806332822462199856902322758437557740070071285215188777878894686355355530543571638211130138263085329437833287965086017445037235446546085432133359085219324982365655317889535175098947115866383670093544533995351897603994462275432209923017562906798142552533395818636226784990674207674819395430243385807005920460920914444075861750648783095404877921313174182682350937098601333156121672756809239563499571701219118036523112143499702894736946445666366030649774931263689046309737535763328557377149722143474258439019141063162481522006325512093590509643915941065344173976437333261371929055956765630929246134775856300594252207734937245682705994366141542414277093355444708104308388447813011312556022651157734169138916956630345991117242437019495452682108891612859920632123583091570892784086660314953794352642637324956041399105110201771856994099234469299992522025255133833780976033466233401318238534205926137195035746645971112404487264076121323455748361120902362743968244623671526178871147258037093351542034120610435420528770169195074877261064757330162548585668522737359580191057659025771293846691868259465753281413974713174542412522988553785883349499860291161438324107811107873578565733011336398195359689736799024110290383101579764944683092697273076265453338402569743032227240661403035589022551828838817370779326704234317211486192229882163452207532785912834611713727155696707044282682062352715777924891307609717842823533177037699148689480976054045645937574642163372258378164833810284855932160096161385794680179152474120354045174655934777739118989569580969865540801424467523951103086333570390106832540985922863893709717277353886606752984505255087240766934465121806438849658747148349410247232832260460627578305181845066426860615610068401194730049212281677705860100769648286875458110155640189345590033147545779756237214987212236995277344062913928824544525448744960726397085257211697193338638947164796820897669188338993250557689993131316563245518502149602744619027781264335676878781735496396320510196338031391133569499066018519668672462936012908516721069318084229519897943719085182227214789687318483818157100313871156622540741515544276835673142850421723673543113783837799545831298163687661437753438157715960336341879997656682532871550505809154250373841797658159592487282939444143520208381819614979256332335420647212341917259831460941593361244219079676587254600671257276279991430420983642225273470365165190775388714794542357096618638526275226034072154497269363610994634597658787325899187921162616542686419553122171516402606969641226448943388390923475517201137170036716155316464384957490251192254204793735381951696822798214040266275065467305569388403635452631266747224474190138034127508027961427046875103976208943787787734913888102521890608486311821281662825108679750524311355471029094699544709783475657293735184312897721903126539199367890900526558650911063645411603546228155924794556697381914099994186422843377135852021328138864572583793095166346919462343433429395201998590208766600920307900884195544881772940808429322431140767812162933543275821259120794440243922990374399015054372537465532841023681638992424389787482661824183789255255048164068417630218491439509807296899522498216252363218100350723146207914247709950862627389227718776438455864637137843329392297117629317255736148554859688652384171078434919930806553345203797205056442705821795844911752792601229938355092307929722681805044493571557884395809659030945295403287696240362109065834480518164427226480038370135337584436941846168561049772201874758395842713659592723932775537475980506793049865002247525795604175270295880816833110391163638481219619473793109737640881388832797054004160918779661631764237498446705670062454794411636728436257685657611898714146554696510079248845143892001364636796045015840548175721605947478500965722921137474818545758188299525943135320561443314517792106852154467902094901723166299585771253454745204079406100164570260999714412069676778682551998276835468214178896158470224064780486004447116418271441889236927310106231533135057246054074696590043011909374135529133512001336529609258143414136343335673085272103726671471242978560291366340943361983397868186326820653219175110343798181810065720543209721623715830123136911407435270899985256373120074707020362641944870501966210379808655523214115688455253463413750617796992364697492098810586427621712307102371325697440261199813041580554942294047626954612326999212927451135185788673101306674188814239913455837776985068517222556498915606549924658967867121777472795315728125763854427074839596015835318033449824651373948520575587727764152233907042802067524951912588515922696739999612717480290683057961086633005635504475158218815081032495629017636862071601355090346400207926222536831531932447844017184115018654284685507359718245736883708801155510170001501505638013132267444512223902954102267478081663265170399059972295543628783666413244966653914989824231522050065568027098654095461510330087361725737531797357312045027773946589319688374159667416071456506944329857700787424253062582256571199423068891419277561126574620317078728226461190735944133946618617198990042692585382263060476867909814525829125059321267452605859704360804758418672553009837560678293227754197056511628782536968802428031142774933428241736536095878099354204769749617979641925246991889355905268143223994377726639726174956302833640719077148192494335697489287485990404863313651120115250646974186446371808349375934272398175020546602378119397076932509830269335872329551218090703830736464419827856873418751698064678906090521201295148948271264061438510555735417583199212611297549172251789006274246298417740276879105816497703010453908665229276695107358563356892444662742742186442985867105044994837648592717282694790430422436245505884771368841267079443060427754732486569679802230556592829678474193573269805810177826277443698242159240412355235652789728836100648648176805642165494094633427033450721335321548029776781852143241991509085419304303997608938680493788856477091173988466532186143642158507956650179515586297936713970670074575876831753905194940639533695339985938816561659090782710992430659543440458183223065958378865255133707520000914550159932080271975246135394697354530021849295415642562963024476113931240442801173694344680244979808251485213647828496395359514536690989064624079745449894615449498928801719555678637226064657623709941724092361539188609897342858310388141078743258101831742793555888067772090321937860804363582799779466447323749923904979701617802876522792064065256182421513733046631932438859628783305337724620527157740499150796546948690758679619620681196977629336544653636820853164612470323578261079583045045364522644599106150015844750533668966078142363128752488837756343666671337668130749506316667451193574031807991608690758287715686213186478392864828454940696688503750507360272586201525512314134309415563568729633391232419816866515407009409882740498593923784898129379057670262549851552124835115536972351001733924934423379741345242768394527937471522944156199525110972607632472304317990188701989402231364863339134827638206313080695183450163506251724727704988310813427056228388415191507484938387111518424747410683666254158649252565406991792285834495551933614996245448491636922653779137648829147524142797102769332253279271641337232006723505586950429749020137304106534475440316346621855147855596320412247777274158783834611397446739630069988205473284037786142857719404665234133436218865970271332877713697144849180581749054220746040833276295251161840104611647746439975029694048915279050618619414347690184444389496016181362362915676339399966815627343396414748037077390352781001681369644616756294523547992426211518634290818353453561434373909171538648284674372742088666546382375262664108930488539594917363402058352935122941031385606224073863746251134235711513966289419611286709398845358720517455079301805257387556218730551689925938244314951888527297688405774532523435810006031679264321628439182450717905532947162428177111739406992887954391747396034088326629782588527013282175281380642549110125961227828750668249857162812372052988930403369600004962592605904400824917676452272155348341089232154124149178925662526170425266481833252374934969026918967625456844193192690010083392750036370866614304772801490383267379558594955194062781089022274782162360569329770473067210249426448853716659309759278071548687795100754722342648307451351902336439147174060026092361871317212005649645711116941644899017316773922132561984863472649613432549707106662076312399375621304440877561530711799167262314717795318713997951165753142898983596540089611199006072338060277720937808148177770682147386820041071235420593761961269456618923497424833966979708454274687423452419527937047309612064288285916229031784137926309834612723338332732660518241222113868019998965801833653714511756725365158383379805377022668100138419771420959885729423209329104531649176045493527054664536162409313505976479696338279597102035371058317583136668399744564631894499269025443812396154825241208264734205512094324684351458640674845063670003045568731568478759691503674473975586253893962575195734432370960290860126525730074973810424792019700214386327111417026857052951395667084305568583807936603215020992917320701637086228242613056331147988087072499301853431885922860316336689684001230232583390411286611050255050506348941239838122861151485935463752970961092939698831664510261316541757123942880788982418084277697343880674328953207999645021716567738414734257000529613959312103759650773735423092276576820067871138208659771016661185501379472221440349448327029942510235979541817826880905750175051353584665810721550291567425753745107187357565541448234528477615492571337357455856555915036887237620224665386330227041216905949879630214954227464932075549184645764372718702742283311066295387586163335691447290690479302087359066939253621144726240427913371511957332829240379088619166188972794675513427950686353433439211394343691223129314930702746098753692900175737197104615919164337291148487766099521119004530945641629896345457576111616490502797325911478120452722213844250144062450511428896610946372035753077123316811127908778217436288206068930567297100856014160521876505333665482903467151828976616528363308566195824481120122007518045034950724637655132409715169927665862078207650280681448591810339919850735468416680682755246454047976379383507499647719754958995358819284159113069112430259885435374105334323697950294757089169404513671845564876892442103040433112447965820972809897151302935932918788768972863827010249870786263821650853133293464628416835236388728277765727191363149817372288872473104755778462106394107529384149626769040923296716964610548706150344958075571161543597410342049577869511186579208230685917026838758389728527612147448921515221939660315723050133999813590624359817825243541728854991094794971803886105860506723563754394770360475871061243605260259934848998989470418098938721449790654788242966005031923117174888021146141146850265077979621665120400009703908795470406950911393906763471745557955046568252463172245471539785227187947903181594060413752879905172019327490569065285135928793275707569144393754175422396858433251061856159929009315096910741204041310995762959945464212238568596956892585281254542508557270546753444752484900522857374029154556553895193945065626884004524986300082317840508557450169237652975335264880507221219770442212670323558251688982535115403956376553881605555416527795167064962478540822823603316023106241377212791093993613216193918389286428206899083530854730240899348157556325399143502585917253801361738255210569703412436485113506371837878809017546640273646648764632797246197079195789380676839794505623603665913001859485172386633276845984346938025107105640812954507024159167783723321009048745867418181295026781099982593585667959029559548820327453931599129030870439360394407188292470424691273282367133806020298572289827210634628433490834691412090324280456353265174906444942302409024742224840634136491544931340294586979605158707348022652690495094980091452889004360909845287969080388581831199440497018881741452790905302644052128846674402728522762093318589457784577645778881269490335822251439055944294133750614870081515960377964037445325404256076224936616106581279874853849048532407364331145942589677058192941074205002596121246440445649090836639629775119984841569048062462624954967239972483515726920342854549390786143235704864137219629051109352404985531378201976228384658473612724759667158359348139302814775651585332058469784682533637303116530753112905448973788681959685048669351992509133728684996177282590659036479107202770470674945943619908348168968745889696502296401007767795762714006647158703157355728897009927628402447388501552435136102678789774608745034906041790560796680798331959604736726491316282068567972637137475419591123161929445144226960517851734675796998393346563499454878539837519882390352605443672375678947899086882828963493418881419706078705165105306866791169215861906759449500824267840622411287391374466515946387691098755635368604231982258625859372783203956015470291373050811811910270985074710869974668695488028658308396716135258905219960036110080952859892841457174457717405578449905745024643061980977304758533507111338562155721616707182165457658288132843906289859040089535975496808802247589715878541258243474169014932361787637828753607948573831864309118371449820962639036869790789565056056072657179779163438125634913552187898690628968909484430445178260979793749434418478860176538815517770350292103688920096394975090226649003707120729913796981450044628665301952497592778600115989720020823995318978519920337445876315288007511960214289355203578583036262718621463469090691426137414206640683872211751046480804096836024318939101973512545220369771070837564809568842148951313063428872997759623853140328464795171317911059373266022582424867814416830664349381926507313909593165868007145566717658680540610446359377110587813909333499517907683697237271948646691048486141318751003029471940739856370559220096722948356271820635836515282838731886060006810250557344494113795651064955553533736521689595109966173086889546554584533776306967367654372195670146731535960861949597207308858089184305384331217207077555666970556868467154010301742780871292736009416810177387995831477198164294037338834313057041542151544548031694598746084282272759507121435117264205611680827529258466671275314524866756318818851163413311716891219350938581463802461104524326936076980866223388123946774990015410252699316011762257758791078858126554895703530450549402093185044209428110716379783001887348714684684355251414847599363153026663904908828535939731338278946703143408534703391722599044210393741869827525193606181659466061805329232932305454132773402724685188931441351405436116504270384838327320397997782902677524600595471724993970173038850648957337385476217602356900407774639278273319840012819487950754679759730250185101926655534999281679264174556823166424990725339752085295513286858800693360847908237135369539239254291506481590882472154952488879216186990186496974443407901594219490359762707626152691852690653739154399201719474799245879833606509366690323256853425779953532586131835558230028177506244389741197587636439314049276889106626220366236617546396644026986597787633811384071419027072974055121762105437379940323399803777761378132799351957121015927655610746947757706447750858501452551576182805509735805304347910591023312480818156037122823203939468524356139258698345308668254005921170233959657801456614666361523156159493749927456448639666138868418977484706273030978882723222965096367994946587018616751888210312750239423775977765026401874664158336923931018593854372860500899628961531867532920624064195997382935861977198937068297811896763937628714988758203557126577720956682732919452116616056991646642141016241779291121635403407079431268510483595517250350780476679747665831796380618872787768976716749443043371435037771523818206501619468569755795149160685546392446123732824224914205765528157883601988526046455142777297569864750038310454993946414796420405169911950368158208418860577825963162345427782235110297381659169944533994426778044244493202429210719063396037593163011775846099160289787863869298106400192238250708604517529823511731080059556752097324614124650813270104879471997778114825386221755982632985545960681980726491154101667473128353432909512698085039777191824919986124555112513862272995897826606126391350672648342461899770199981243414019460568355437083576024965015263417549003271301942002637545169792046503494567197282350855290450853537794685350160904443405142340307961938830326466543105077044568476288219047540117432736418261277718582365159262905191922221224958760005160395695261686096901215583305441710700125407494410493162718964061305943125311762481561722107794751749745794085609354018395959423671472211278540443206307048268758332822138872594775804793024445734491650508354713381737988303635522222563405451310972114089002517815162878378037644689721948153055368533653992973748907033556446783723665231223392272039426829759327874250512788533056522661733394122732207472456765871016492895674321556807527341797313057476377193267416513553327902164736636180364042487172920924082999931126604447000941217459440087123860094345041657600122361193130856675416241556106507634088915699127725910722802800815750785391099273996716323010525823719572430468319400372490684456047734132338082275530888566780557202314242729920890587115972161178216888120812273339751045069514275850865251721006942096250402772441805030071825234804288291201593188894100974821727328729139473482123700120640944271727522510351678125752468923463824578712411933468449715191854298238695436759238241662970260559559060219514082533936172099733794237190253288164332844785224105126354822497989606889855315004767370697685421364728020085477693827586181769319114013882602035059828906699752416936318545772313569575105371616710438989759047037350361291966930241893998431488789824914203245057951051517766831773924893233347509382230991594014351158519653836529562536565318859787030535304172363089694370861629051135922332523706056673153224148637849741927309831114144742850993784710754440634839844646188687652537978473817814520468938973294619476426234768081462282013338920992057562127720624145231154850394716554046397617514971956760981265133344458318385268150698764084023632429025626832456098977390939542474680443947855695128395264833040370320690661395759955315135980961993238870074630862829661917467259732334707388587114301498482172012413294952363475173899122076909922846999518603154512582204474252923652030374619951878794208062114640266254044187811914800734327169973880735011280860496598933809775643204113152414803727575366586787942893224445990465005463058587395656386196118657306254903691463278483363934399018598475473248927417324771868878976155598851018108580122221169473510319564159838586683837600231535865545757951674390500763740906269168666919305116547759913896441808213257695764519171964112789682048800247189312965040132926387410356477496497337473181816747907293903651510859510826696311476653583567135117998314894344709107307059844595742104651476160021087479640674626573928922039394761984582759635679613155907249504051081086469441187417510024262950241428100743239084560872513327032140354344037582907544346429193155745204807558473204357138906856689762613176572991149680551331025799590891474598705268791265446973641955242970000864679827605226107152967938371828754468860412741367710550763254177018785740937339993246144516860613093015412638956895583386227897460463039030706237121212446082228673803374696992152960417969780253614903456346083156356872087296988860583583719191356043385988235098082929416404282885810412091495897339988163134462984755748985813611625285047522901230485424089403603241861037180494719546667338305028763507473870362115955936236226416698206998905678810309707968371624634600041612228393268826418600069212047770081079432309206296067146004439433200115691533993959779607377944730712587179721045499993421329641635375119226801317588578397328885218933290666520797303125346801744244508340441159746521307413433159977199317411136728350168636921715916220293238824940860065158125497978242976994246196360629301134520780096396696544803259140511900266128646204143615018516255288721837918096058595865468419914366220473769490023891991706341457636688706946929034242696566026165875798423400754700359894088036207661080470705726865008056916517128339957502092759139091873789875853240809266916510489250470830754642880582408237485148227261119993979094999568618277111613915569459758302598675634711238971164931365187656837648719049585270315107745216286445078090300554371674189180288318433092947837622029731175794112608582633084509246847764106089260338300177770665781737432585072219388255943964987103753487530355644957408568187633202781122241105209119270639350490240212824180543873496611944164925806802863375635269567873427126443322967887347404649511516519296673922163340002574985116148607723731639867359845075629199794156338800747560889073009373828536112178245488586405895374448335995571181551678132253848868484812376084719689023588645285031171137737266790973934917550255038926788353890753463246147786582597666476877763624284734528914779440296556576514319131244869814849678706307319519270996957217328435606099838232507560304300854868306543083747142649918901475291769657689879971345364649192254255516395282406735335288513021415203994715181789364899997998030469329239622351947675928251864048582794206856619521128621297017193952159164704583978147152504746628169532875452012910013339418874313276818638534913033907145597159296617426823193504625451567104150293909288720467317698778845755206730175475204832556914954811752653239818543668525431583538805792999945367239984327395249065608623429622735536961199443264641010445268252909840625706141166849246354455012482605995195861326784933449130567870460480691616870276971065446874199816411464346601546113379519762212092920903177092001336784220043753199399339186415532207226034853859504085731011367567237486607170229897083819960393398649389271414255443001700661540790952135692895227232907947844805510195413495071998492257741129895706018858097607977502037408735942222732744045981258773760062093378613091516559129620927395059682829909309412166315372949459989016543432717225047827818061645900840015596649348348284863110349636146768518674083724944406264620029279777281937545948107305436649976906554828972076176192502908787322865216961150092736221773461925150055889760352714331721539079206830492290620527146778307061755665044705520951345919643365430253723477756709079626768266835826780292598572170751156191011329284374224183877250856113521140029749397406296098676223985529217575150496461393882520629880613677642588531588118280100383616414412318664728926957619993318362392829679673919197768072425716915213054927123036937837370533748770687704859311822590488558151263851053836871387017802199720921293675694806726982434865427778738348226575257672919874586545842133251883366271415564989207813576744727653738013021597899394404143510326183419016189035764614980675672078828809379578987288693688662687471025685825568912599148052144669788062346025516133604657687740975439061917232227230487595670985296280527767609721759925333020358969437269677853824896736994067938190541645892172890407763906966649091252766558951362270679261350130803835681775893553368470843838563071315433450159450923657216078691732485886344182883579270342249246890750419743907992480383408137830709777421154360989001481346405716404751520567809179104215660767740349627767247664804962829015958204520591357325750406318527250637314885876481628244056971003849907300520520902438936052117159668448455005504107056586312137457865721945389829545417218676553886879836454784746125019012861617787846801568019165381711331650559968859782647613650340682336525978910350219688812243335738277115078917656013949995577576303296278050612538547028171216563045878332250209250366842336357001513695270059351684709069997829166049749246446202949840274319266327444758005980366208992788416733264767308174913240285736414158912387057985107979933405343414480982864403984842196662351359749516438272756540046901000031538913045943432934935638388792486063483356339963673652137317880951542927067514678892286162831890439114390618289306881530290122964955480880537914572416784495747613495850995114317812484983619893055060844322497555010079388643002050199284749072682698544314882100350444118214401309630122707153149215474216562449734329832439692437904241588845419072849171056552122257323156349300471609065092786273523576069490204761913888670064991030026493227735218257105845352322326924970683616754657933758864092907511710423564331340189191765087334781250808340853675120842608983233521796328763566866728734531993353456641487092520759976648389019042403415166600690169601780001386461854694568509654458239782418714729041881310312841768059779021312874375075765265951638379770122089020005350241920534581956753027069953210619559497868661064427112329924283471345922132638170911861999288464947872791146776832304989228041242560460015607220706936630022448101431481870922640118516485999225102627292039439527107379105082381500747518962619003804809880688894602743212334612867135651646846897192275231568790030333238208042188824100126021887271272936164428353584469649657747345217405256187512667856010977564458026237112053101793725950700102615773857174632039773439301561580748956714630524187382330439532895363785297830674963015817823932689525692330237785051962507111577047701352793094195853602632089031403648247116561014781984681041309464220022997472499326600596690003563508545042366611312022800664967399032167741901837272210721645439671049299327554280326128261639290273242039815911331057767341981149963125395825460683575232981331566365647829769266958332536324361005007665424704030009887997567569355114410555437649661008707613999767958249459337952725409732553801224210210611675608765488661857569428258765104945804280824360747011836635377654844495924542284443936056193891355771044255585485687134863384437005583101557457902947568234838164528066759760709972137297510529706613358692578327549166119225846978246735309051297845372721977514254455519304494358061866281040490909710201526199603999394131295099536394484873324402804238939430549343804171753446958854880837202969566408461248516495495765635522550965407785720749778374769818447720122629601896803271844452129487061373657297312785495820219448564500850289387659530456957355377551528856492553436626679726971438477195850439976260948075237996457330828244231834252373729891689146634114580256007704731582190071150812457677292064466817715544709350979641118721127726291870438019897998247877286954250272230755016596019542113280035507449200096322009990947240081278104499307611558473234157874945382280363348066990923760598515765689012305888009257735694729345451851508298628606335894974212685139584391956846727376360340670189345962726991798531474658330686344221811062228728958948397186630233220596385022965079856958367169930655566133496973948439768297760579887111864191477046650499593579076236068922075500847763316828477597549942941091937788577038831936170860379996225679681452201437905547800468066983278188351484413964787297999990091059049263794431837509244597135694726466677977316155500299793715081341731737463828334415046695739610153179141858515436885984981561903456748113170655771298455038561302416891267309240707766280025844722821702483445789097552793440059551328090742890264880839818070611509474280190014555295834965649025309655354291007411524898961086372101023873981592019608420394915638304888079428976345907844181129346706102625804270020953875447124168688440874510735712332179019003494402740352820639854418294995176497003885703044022727072987607068175904783925792626748260610192648010308215495721609552764411905277624673440165891602714347657227357030614697121791929159205639739623639360582919653380260720857363026486280334295988794673411563486075392329281280400781167617939311465310024769219135769071700053369720983404125818037785563392232386413627415826412936158112297960745239473776260845275557234338538757320479910802411250960630799797320610275836153581574834793444117581381212647515240875201603544142759309986129278362323843792271249551914842939291944944527398948395462548018999848193759039593655870293374688148708376565225467260599461170268156839385022572824660870188621454763573976990782726738314197712546193324108798860756505174985278357315613164609483300180531847975615576253820115865201019488244852179954258345285998695896387532700841462780440008423092338671916906594391557613410438304069116745299388122833171356490669510701748723014214208967842422598771875432826889529095636652404083567121268575736360360516837841485799062995041211807365737013333888824013540156050018042814923631527660113158736815355110429962353938851982040388285631832403072496230010736610709115521130949584005220848035698922465456644302980956843121548817811991562947354395228179106994287113807207059786757745451041482734865622612343495538040765728939759081158282451043095554824436654324959010283911646270107542824150986031131639957095793745181128121651512601503804999293166526635705619106036932997156361039695656016452366925540224959820390691484793772351404873986408924091713459800366430886976514592633465005462766955979190265941865653038698745525202936841204734446023140151631287566887505938956861947235151878965541186403554735857088865919682416941507597586747803261164960284411907670972978220711347960044164154114835863655779988978505357498936909131677836903682986955740106221105209755198136644670086053269117825640056527487573918796291597658769093852666211361437612200816515586118722339032022063420238892354743777496788451380478874832837408957086099046021692111564307001370477254643537416017197854827550712463482240547330721252230712359031396378157306229017670825176663872398927990242375818608491677952975365198764901185517447966941349457075651819389099259109640852830856381615943796929945383272338340897838178311965722024092783272628301607663020293165638983612288927412453172176858015437907825965298136146077003458782535350047655240050391181646936131059467108299169648849790087362963383667178252609047688636848742394489880918702412444350353842798084726404643119410892807213700782306284776725167145991860374571155823435782974820722462409223487381261528779734300596015637428701089585167700686669429529724082390328751199322310559375707279705363119787141494711826025927387756541652943022739955437708882529910304885557300189511021308902446953580510755364375654236898063025822997842094059149280902905812441318862817282125161460590280759730125260979507765861120686115338457596143096955081168006458878637593419743251955184496703531534797311587203835039767264074032770084153504608339557759374479516808181647131508069124856848719888517286952625804737278808386673410103893437467599892224019440891571892324731107848025707512808760105134724193839022906976027731751212400673261642008910699904414654627371563990245759518324503809829516592277245330796740145063682082466070628878144093769630619177077799669456570061954465690816086222598690960013234169493865227573040259178642890230484709062327254604166849321854246385551368732641481928945725350823643663395771587737676624558525030200923516693093979633170568065548362969979322434469390197750386173368161456979054236082517511898685733639930828824484039276391076975423449298449076197151009926116257198627389229600051227477285418509306840309368857409561790929887282265211139790855347941978565367923161455408230503409455160665856199607963667520571004084617263154292670182389830030652675919091207399649522424031375171251909988050983148450206861729960704818135941837874748153460630983780629807941363423814086932278920992620460299382042697850869530707321144085126713915475722305170774152153377083797028541581026443578663021246566022648402811219874244949407080363266678891177485041783475262113217108639168630050152265798503568270378246554667876332834541283467824895176233864939366397203831602131261456242403640781510831845281449572112963973149312302734660039262343106438486716886163395375314886835919484433517734014951140360406371087615404007719121942115725955764471359102036829422525104807637856215499811711314522549955440323384003781484026296567595467571143068183144466949616021949022721641679045950997060532280470529810062065690422361151881891111967102250418550059832045273924403082183740604437808749630927734333101732209849160083552250181470184041550907982261338617989512929780423408098726948677043652227238459312149518176759049825500188602959573728221636951633082499579922165489301688169227895895782759183190151857296106647182820884591565242349790663682897359201485528266308882415218756368755152732651333794247118186832249997271682665926530310285564549056870792337197658820020433878347530716615587199534771451996730761149171090871702297901417969184149034388538133418667246785750904907693569256716083114184041978178685371902422240320833417865259525446713308339217552553596282667832940566343577279896243063078561156252889151288886030825046042273277272426810132089601121523716390265447914325809207471351563655274640792682845017024611025303994650282958011260270217244361800353962035055366209019270870859526354625081001212953645149770701361203275956837733400002273957524015597184783655014316150288270364644231586875199389624271065713665715209253297568516498716672475712079305115622052443754450567190590546900210852135729850990227685342703233175572506179266436075146039612874378521049305177480084931733212345499331548897833171839425208163750127013968518105486152816696309137690052496409624063644375259701672404423909862133349125454588935821906535915102092398636027778858594042109687220115745013288181914099165599939445970984193913981020957706739132975951378146610683653467762256606997903623160013758860861137470739406545483812192884649515496644939282248098225748277608206724729341984097901873369075382661349398609101178207728496807804427365755010784363475450392876234883256443852427027178577200922367207137760417886349390888901965220587086098511020314267897655888964176682157946799053384747661981326938158212824971635153965075102235596026939284979082702973168559367516722903900643497906668955952738293817343116573444177782799647085201468300802619648161326154401618782039141068130475061491688545186115040748836042288624781708851157709927981471338131549418618256496535555065314310587462904817273920704426131809327620000653428745521377319712735985301877469734357999722540743416738417656399338411009536152888109704557802417748074077712031953916765628249073803377586402669845889809436812015194319120067879443793208530243892913363908559854384601491154101761228014904491947147460606588100978446334969166391094684519572110923763230374035537565286034385716003009155399183752601805024183953788959219617915591145327645048159890844163520918247630960327947162097440807465661693888001096380457543087662484869306565788199842113093504670115027845450928392650248528598606124375233609298402759252671345892287666864058690666261627682198587259494940341533164822689652182770778568078170970436824283523346220879012200341179232989289985470669327457087018186951248808235944010457501146244988861599191751106765627823334761291775493116261464508407072619395192572589942375638535895512108562760344758657388588361585687458302761704664749622122420733352677388293533235738172340998843102118557668331516199482400607278814815486320272333279065668534257875572680311396744366972847992207885527457295643915805271864888409791352366591437685412938228917158897154941493579548302447516705783843377337879990003735360446775800932981962190614786049031012493077796789093984076276340363382700153271375294728096802049701003950313710252016424285372801669176641747786106697348458842271912251915965520270065973935918952913916300110433045951386178373807705224742777324502331467128723095129632665114646539036249798326000465575974536970346056726344745224983551138200047612109203223235989279884380754123383263485967618324287538998072135604827511045231628720890482156096125744443805578114409994783213114871195657419176119912155054889872783468269489571219841964641045207506213871277329438618004253826330369719718932196114877879927386003595726088974621870603713815953948184075111449917276944858035351786406609804473586036392207702062118599661199699643706016247120353483358646474476101935321023013932016273394774647888693972625360554070991308798989091468259338938002780508339476364585739753193983355346237755240152937834611663068565190125348743964387787881022208017980474108355688045871034167368370258541675029774644042767002736861869873332825841766270266140661006882126842091104270518192063151240505900202139532419786869593611053535492252994383904408405289629485236130680009352773580079140258389741337335354729745071970302486344302692690740614555341676987271736804127738500640682783303398923739270848705859769598101505881236054324612832969109597854090172341373617410205806263824733848878605584518978976225229768045037407868478945265251359987212797470520395239477007031588151078314310727465776446887387419547096248740982457022889224747256799211465652197077622929308029028858026203355642357659991854331569771445995101478577843424095270410496760460495086865508461604262317151177253699918034470686784229954874274807988085830445050775194767464579559144183021551838128589120046643258612734452934623246049823854696342484383571472173691253820160115057395111230660769091973648481928716689487321901571098461263176459345497486047452769062493214308258624850800985263973075114464283017353738042324865015415879445565166852066692989301210932287764153977633600255995788673614698884681637078481973639138217189820033164101288026693748360761601660104225541087302748138169860892377371304503652930409130798899791044466925149828175200182449804423977510703367195979927034980833860452556774966528864935318722000753932688441428925955809388645551842219475400251892607183767891388751016293965138200548218106366110991522986804431477522446267196779747642813337212738677407906601283564443426331588255740795619187374649531217343057778663340546498542637534194188263077459417104451842485643751881763072432418917636338186519296168410980850043933984522753796502529265872520407159326404775758771707596465289517835353996564094358586437125452278803569289952264629535942863855173000279029194132255875363444778624775281586001572979865298890492207279966850395185449807901588118110043225702958454211854431958053239078221200668572416033521266783846539069399931175576785296522721205826771194283176962240974046176802263527596603194970473744738285532392085234373103901637847129797167865516612840984955309830165094975419087968337310235730730085149811030619417175926931432226869499951083961948358970236505003162385836135745488363889833433863265234333780837383383616981107943798688994639146699537163829168977880742823989309518756603140459714842924659062043997985487617598329684813352578185146634563306863794455525399934751330484040277988248469310947844820097503781627528400035213808932866645068717247831289425189549645137962700909733158369659898251078967198735595159734846597110542588888783507741098878861332676105479852141370790303696432880867222734967798791779941738470651412812268908681545875654312668250497696687050617911205821127847157637591150584977790354469461648402161565449714807496838999659488258404155011637856840749281216589735397497925159069752637789307165562578450930166938731716642995954068365408952691049584464429512262490287596201483082792221215191177196170614016385124017898131579024554601928566234624316134464430961253256329168692734000069505387229667698787715761308524902836196483716413870390808587721506470537354501101476622975590764947474729070986552543833572602916940523149058865217928295791625721697814228620187667987502676616153333231882467319593103720961508220632784515618492044749576071588887084520976883948158759582757336036571482026000218246791941088294165050701227098812627411969013542426878284260690598168495334482763875742692555179477682485091836532443471876710155578263674538383586506159303466440356750312096997316720559363816432756696400953977863584475163195966558776023751442289284501507190715401882151827531822623973164226768564837754693061722636917544255425306727377584721488771909671923724964262188337253486087317864446806783451659169878318511516781508828795228028288328692425699857977153660281283858694400057834594002535437231931891373638439696695161110661417994515813833626077470264044961636687603082302316147873276091402182927326898428201886629861144044385594255971339734384349775190686538667891340446101182428066528220211968533457020541338021898185947629214789291642741001025529924509454895339555856226832282282991416412988205587023355801307702265341468662623397433017135200000128802599874821582023506302793759053783071902083648248278920901624660185701616460268714386485207917660340192325029400390493914925468331754564767092872053092732721754660829020966856927705119553463217052024510351336222708029335483439550538990095067108997501793071900807385521369849911694841437451447023099900051195228007670834489991441724358724984003586570958829003573006034890474473771604804747243547334062893457097521874030881753717889970492364253128031283782959211929749598024333546392026263272897522209229349884557553885032326754256108084464679118836062160305701898926882233477235880454371828473296451508173342070965238909085456387689639857793786953671375309891727979329439728636931514926349474064257063636391247880408089931325667011015530423723616309782864385437703232605483574463349857317064118340569857746660972071218956258651891971860840527244820105172244424237351165596096329256818105965902074703866349434323993038946038334198862146216441678019915821540265842243906152366086415374140582880241141664175275697497076012241791453257088802698623571374449538214506365578846228668101974604264301810891503139780406402912578243040717708818079591561430083950996284586582362587409581369888923904967545318149263133889796099154688045039354873476780381626786230192894121993391089263257743719016401588181846308103230917573769794295401465458189346411171015883947343761801727270056023718461066117019021382880717144653076789070217638027283475075080900159690115989681227819492659671485005280847607509767314824397834717069722656032177603859472230118792277127974911924031514232143544605590916152766002291386944485138467550286139622644405388734234453427108810327325486442541718697851944724505839006019692180150949039229626692763531808126175188430955236362332706423077235560578001430898894918166522660875723022716614908420703986360633691817840656398972152482755126249488083529391735107414944207009714219746138093890758471078883577615041441330339250578779375170655003268096560565019300572717156432682545249580211657311507015094930415506956915977494739164783044555536517996621383316451200279040430444217015267727127535216698537894504983922818697807867838440615769470487944980826777572049615279434702033490196779238170692880862249729873319322384809351156535716331933584097332624912299289733038913783369405334557748873422737146391040835565271861300179730705238135714823771685173608708410352615623009487366063836407731184513823148392129655253301645405445177860569140558287744362986329738391019019141638702940849363778972810237003342715970233722177125296338753724458349768656878286230130912399516665078198697864851409362798616815889550685489650881824453881120451549667379552419000827377638685485163960583973632635931476464755091056302163492645024084737567197019074013428465240442758808228126362608300712723690631534503483851431477744095701781256249443047648615142188072688771454205253724881907485438169268015319329287010655780261296300073465529830686788511193416806727349460511307354237177365951586372021168835689176390207475087383101629124554512951067840478015879816971141895650571789532403089863269584881848027764844028609580595706496640356631735024074231001083719482156354599104314422999264352320389857175255891782766720811764448812054663387020360938648699582198507545746006232331273595785718287049431839786619360397575129438365911527690904533043188498536802087319864642239979134122414303718782581870184352148516321154044609631808975505019873240493017891225716216621257471684430849631311313733878151781364948364260946972388695956236432136308148953967539076239620775049396225027080275578394624436379439855745820593203584193773937629737131772175046123924903176640903403925968334699651417479237271172218891100929470918134309447995889954056860974613725428647301168661958455483907838446346953985115254297206539326427260022655237041059740841882300842440042178194223693414348186111533443872783037068897189070042180608409887290304199440174143985417801574064649075355812187700258018038832600810063866341115847503890873752837419076788997008875966963830948065391654100774996000349142780197753159109558597542551400837948241958670062481716218796253917072655672270392059500169654878724765282073668514333309878325280173580071813321125827690457007302293292474860788938918212811148282490104100065993854995778325285527604287149056087259908043219945173972731559103172972139453738469250006133309344257957250975002920743488340472579823297226935642227555874689907130317949158684751613922143383568111214935486830258787447395338435678816353438730408131229716235916266178969088373744472682492795187967583805755081091403421158892593121357098716166923871883792310149409519030372343776988994876115529267543526736743869652249491145307428062437027451206821852123960662384144293762585529480185311839940095539466076145600076809183853637579856507894416191683617647356645959749251594760139328003429080015536887302289646121198732409625932274675357677707232399939236885910603263677143318154055800233654359710416167890764949322908493770771713125823785273862932372547583389552568025390846742755780975409110914171185794155071263817637410505086797190784621941101101956892507835160126892397548919206812928438684899595104295665578502121720971757087505929852523268130370184558726599770712511572790566571227231542142014376443113704019135303589250947430597742020155308395314517904850782677014230442195486891773745536017057283668832375300163178892775804612768513115361337936124720190115159433612222986602693494854539290104699463409036001630493001767407294392928132969599081762795396503768105869186381555728502658337747120198438598544320610837186650853117984893675953534947165763780512215155515483599095935427295534309358823401883049179028513974102477537527407203440808836661612179618547015728350806930075523285652109482542925934629183684148233338294526590076281579691857934624309436965622576148303444465442579415545370405439830207356862227820515780065165285851848640250633918910229048923407046495650845909273122800479613045132254342852530022942197534358572153355366462091215624827190729890867875341478689771979535754675182989191309137124939463950326520616823278373224212060624775439109673141950142112819208191020061903632061797184656250384946333310884765399621908957200172230597471934600626368041348409627507594456065967455875613718704912102982663492401347541195654702104413078891403608996566929015074475755247314567555688374192415174916319028747689472748376952218519114021393982973307977218894217957246719108689995077495682816130374120692244853082608041457519799189046247889980177103942003683543377445936594154665908709504409761098381678562531403715678126178008998322579197948316145166457650830834228938454977146445549877908064569631853425877973078825673165213654656804160668255788299242933263979959078043982442192933971760539149928667277612771732585091284171333872092791671717025418104962646084311482806040905569358181730856781350044061268337925149350189602540372194014042397007853725564435719002683251625640995954683203026110846023847245997248317273455148135919963178236866946636057625349457779673028504131123353877100571457533597634009385490186797217717983067586273328041951253772749757870565561409341649524466899812141044936446915402580154632459164352817270880252051570724205895516127688687751031978444415076991851183935605333292511773328948634582400251279675024891717077866843965032116871837535106074246594700803385606289129631864117340059837542745386175902838611262862582564472316493830598790144381281954250300279188188070013120789514942490759038993425170436553410277136524832282597055066592810598751466863408406589148811520399097484903662345822872423783241493814427767477905639953660715812932181412366949592076097125957224823134669226165637417412886009702846876864722094648558460172402683828556060849067667790687619910328350209326985546352898175217175179683844065460317106418688050072347126088996078720804583284138382819340056291874813991360190994625421817845554537128786667781891404500960361349033864007849114670992574775355874080205847042551980196672861123769311923368723997543716231310612795018605927961086960663113950560335585014873927746519030427614243517943934297686283275307890358689556972474317080189451011311589031276217662578664394549392202679657997508192577384141238123956853447926381742442273398600617890562766118679592803346738692372438551032834416297999519665316745307039969824869043044947604742382521050509520841674874369159808685952734353250556895885100901267593368665475972939804952579624094934522758916786112967480242457213563619452744257102232677011349122841076633826711272643419525419308077575654475572862179349066379857199730785024466501318149410483339083966621910280657564945693530774601362170578936411666913641953981042200062657025563349299493487102365463060138579943418204522265445584109484421911373226125471865420195848323096793615228988546333834878278062983345610849649600799536181328223283677565792002283916009979406696081499338592501425324936808173260414332704467829784102488667850152653714643378885588681200339589242062348609609418228777341377350601524141178885777835979922384463781957127564846043978862793339723288241238151023322934323603912032745951689570808479133147094652511150552163139193519842697253726989244522239916223112710672707124179444279146566206322786505427503212314180861973730909508325990613698179612727184932165324520625995216595145881905736807179967593211799473025739044564565324020284841614336658460627246032203759057182949087565337708138570892034768387532566912086098248542886146048126476574627614086572285883656225077529853059744493369111379284508076392013910758231774987664285253021387869937514433723678616255383423874831464482994879337038543772527827800625441481175502354587872202351388358004420650980402291814112062139424595436853717764574064058887268077240769929385565130286626858749939891731264973914404997061412334642812829675834229405565496378271416251790133932168246454730857600444983826429953617861047634306125493702138160265420324607426661604679019272364396124006402781548223719744812054322867722284229188678809202619261430367614983758241199160226605454881480056825097298491826693239963603989980397445122309664388385779860809297726291401033239779800384548420177188698286064778175265063254989523331517336386859539650801964998988097629314912925556557867964771262685028022244575651451129944570444958938103496117158928213629811567139851130338155366150929684254953186681895434590664413182403892260462099840077473271748107327623009678948847654271856812643962809290958956705508353221431318858457500932257317170076239092562725871434948272375323019622000650190511377891509290838781415861830124981278459871921357167447104146603001648831264303516409554945325544601653973610166977222679990655413595213494611865926120913532162092362747164689250001875749894284068220968190254254398509058334759618473718208239921923774528573332032646304986220698178165282557295192336255695810308316687508926050057494828130407997447428205864552845314234724975969356890016920528469991010417104270516448643543393782971329844926951007636343360160882196247366502528531334706155392098669605172845307873492096714089417973549573048433808853216150759690860541981886695539501784643368898987409047388925367362225802909636504907353294766452440093570267305243147645055431964580396445667398744953570061333414048339050225912580842915491040950521095697412689707392575625325874961217570138466902152942035099762132391630667663677149823960692348626279480457208361570008712061434890925778579515854362775590420783361003918863854615304593122868568296558570973410096828039250523748095447619863667823287407403765983084990387581400556796166742526335367130724885467597642502013444751513499950011556168690294021548919563939834636948074870038677831297192110993414956859594086081742299085446498856509376685346134066614473451342080660090613031844646802474243808248741471000039927128779947538751611798521911499730377974839145867434914694093467415201973845605254072490160757905661511594286746797843080271175343530073638713955239049228624192803725906993476320122559940981382989509578749815285189531536657519955638603615407565126448177352830966465551500038337584157317179110034442372816368080587409138898784269994958671729416800354536079178663527295462786574444735939653335622075556513236555709010560602526218319473413769748306265229934891212562576603885833456407213593669118165575168395957897791882246697465672569104268526008076772152248160131540568639638277343696638214561118426793071335687756747396236178567278534697312444313646014361522987462292401191472830848165752504274441812267771723042933994007888819251961564987072518951108772407126108872151018086055218086465118503960133777535857412552779746617808979567201699251517522291804559252506828888391267593816562352964252617569840614817582056855474502787388065718296849911457480880848831540967836243570797872824454491098339284751822834653524845807292769408041952898383995442377274869012631228422120705796171312723411946236426999865458235520811965422356045355810474636206507014451666066265530825783767394526871979381483669171682894019631086676790004065494725430042523412667297987361738103574036585900810591376561475671352684905966461347610208898545065267705197243265525441271539393425383542456904970248947068147761912616143992492839837416118003083919936881774079005379398803209961843653216057582763703828991581483889854860292049627674171482888815783396884347452702323727924273034268849070668292078110435030319206185814028543612726006095655035531364001989102150777185249428207791039444749569973254483054012996951088109432135723254196113793488325803270642660047703966128003014472140055815718342841843799961620677616629241483273456660234279258303411909963039952722893666130498492803695308584537152556464102262725342736345306982274273811629319739575136629559495970609514159060970000541382895914496319687172178266971286403509200861501357188919028290049316640047999245193968475907339509050434347210222197811781154274464178745140745749086652373041950569641971505178604129512293101652688279014291314756622653753071822668219699903903240431358894298736156844753144590685176841282857104702715695470409680112336848039805749449884225074175749542023033322097679274030991371817633816039655717219112731132178784696154746021432942356680674352175684820058822277475767004170401804068596535725453320750997821239456102832692801159151435320087218848368989457739304036503397577335509859742867813295902174023429332598944311234049506768925669308377907130189052006844292890195424740046806554753002018930889077883944614451025946289783762117389180586351266452613586035531456144648143117502757194680106065374760494352939682301490796062367618936563297966352048832928065343544151530702890975900096110885302034568327901630411471000148945696616653120102895524503466988240439075704450076263133927546144919686888877110994948339665838257578025040871647802496605954663913175476529947158268506063389947907688615649793919941129800347725339435466969114596165089164444181132212115689860689055574080236340814657673759805269517429108745318285628156186728462470739453669880511364406151447412385797618763435195340034146768174618159716748512812388436859932254180568636611612282421605212037856259356310730247410671118869791856675220858106484267591413887163585101417450661982324812576629924644666948343683461296364573160751726780032335447286284916953202129959883626491989081957455578324226754751274093125375403261745132661685178198898500159892855213617356625742656365456934672276022029249782873889328924138136503460115568194266200123607566018018813780376235738774228715962703644666735130786599782679474006729952098869061327887087741751591666620530688162181622738761464871311200497163249375590489962014675286960183255362656895232757152384439293674594852780238853055128281556300616965190131920720090026846282855049742159194515702028724715775154097700917016844945453257717624948964952386277339114418044602270804417971924113234907145718800132585097123384230765811977470197201532488371729184032825998369743173704856478652241272281110545443720290272715569041852641931562660235318532770402164322631029829063455237944966089013705982480010309007946120016485656216244388775920111836621029729386252247747074886252783849608215750649290273930162103492971985336532259672670613377144735857090051832876455100605150067594079681694699333602094697379395836354033540492544800583384274011006398055245176076589939952394113612104962861047509513857615390888381860552597942948554991871682274970274422534336828468542309498115252744176448483911823696233494408751745295048923931988480519372976626495654804818283017926207798661935777164837074063296395387967370763697734982642724822137596612578827674593381866547596927837326468762122318873848484736761460867176866693448402463538872296289480327178878363757811929751882842451945498150949848668005646649908829951922263361003359207474931898970910908658952555157184276659205687034612131853931166090628193749228473355948873020649224605200779849486121485656550126136850583027996712516219084068290588583413630219204008572592728468691853304509552827529123931636278597513750852453062607154585879862506444461698016195649716585920538601525630447178617627245275628718991691380966671787254606513226720750339320954449368399035925186810532458123269996100297362297200906808325269805740454285262570927518023837279174669125963264005916123283702570617460000005366112846310845933759128747578468825034665889703625576028325350072547607742946387837687732141400432878018603317802441258330971654677999464800674928177988847873691463260967331366510056241412805730726190761603634359470676307674855622021400420153509367280585707126960464574332870653392916041090397677960412369891173168540504269338778922621207904305911805435864425219347937734059311746102503799790333039333000261530820244373931846881026631683803768807067121994414329371000901271324538706164478379703262135944283005395122792065503236333567963518125491858575966199042532642402010545047682676597764400420338149192600596302734715832300062353018224917185185374255871303176124883252992844519215823499296619352288152598710191269701348534782949791224144861089836124776922041229805607036560133011810942090332598838317187123877517412143127863692429288176676615861141652839526826453086140624257348758231098121196848182653928725618123158088547800481279686244230795834870661284179967111845112660844354420531193939944517697369431850193016601226929098752633507553751503144431866705566338676752054954278201757769790704596659866531590447500711503165015162908219103756345660217652772716551592514243559480216097296039979529501719918098971195467705397115847003516570782486381524069672904562201497324146515788748029954155532114916405390051446979634890959992611591791611192604687141501607313701826126768788238105436063619945223224365467322382756034046099400380732977880439692795607966688636263586963900826088384343831913130948617713257694125810954557859652352333579716994688210766659054762625392261635923471858331984171439523799773407816973225744992348208532306295584345624665725355277884150351589634648729444677561593212414935653450054892440521866724799714787148455552085817772423785357081565885374834602167992048571976097433950359046624965883427949051735196916194706683651797520447534591964507334872037279458847562293409164348471313131454198124039346886142250005713554233075239380116687366032382339610594509822001250636540104800993141185496711636109329909932858838264659081578377701895954241290166552709147854283711116481778379167061505740785880732995691913536828121264416165740826121324288178913438788301187689081898711755777469744534570416547088958580799979434724543440427502915339014534847554715056383382962004185508807939739868229319551619042556983673417899019148793365082697462654392185713815378482461414251403673755286513546270563992233294992445970621488615212548004533246015847186351244273242901462087037311436501441681395141858267522523432277381128944810862203567912563524945439625470515921719544312085896632302712628316984410544949725483012400179791500461144338406838114492967261168382920562768393354287627596184070387382007976621923056516219010703896731070625298215820088101791981037974199520695604231016978273480044647368631000666236899244363364226682400241876878008125659034621610423653574765223876582240057468189176578812200352332147924091059243332958698795447429346707380250359038850657021644554077224160216363952227041718959177800829316423952988533696206280870425762465448164783895517074756548347721861679682692090178560109334867905120039428935387752556280278325573027001762922321645846176592080157654200018247203882848163415827299116079113122895765275204339376372936138384091131929077905686247474639636753689348382794824801447611108420659625942878238135861614359890571824936245031728925798910446245678716501337459693285081534762568651389091657640281712850010686253868063133733436082332147000901599255667687924196670820735348366181037882295311337620168874822212341971311278428447269348244126645195412448301551918816215908741376392928943150670328615088482440486957120673650906771126428823671746112944678741904825274655327820559921210906235503106741716660664196316794534709141983912844955121149676989625431308195829264836499712754051701929562531344466966950800575822800981316697414693757497421257222970390691170230118479881977296347297055758488813754597236286659507679469293338153674567300441335451916617969274358481550646535536749674009154819397048561317499398875087145626624277888437428171528927616099860784251555121820484876371401986890301784535210091437658772606643427229392483751682259036034602193376595587660353582137084450477917934908511888666582993055632768125501527755545031871531471439091214445311531567535046588992610889599858831242008595082179634827895814329520877390952112512826038724299299397182986326074821496581534772910045918014356402196736843524270912808071137673124972416186796803050460149899393760824822882450344108148367059094499534240288520017399327814168276865247190198250368776089180271411756634202521106521559995659525652590104052339869290011307924105383908006852973636779986930410955667126272810567888643679365320539044706467897627254304128756783041280097826117058821059658101316688815009755354646341698091216484386091078842312625483094098641740894095086190350971961583053588402425044893849016745847621411206621960974227951547511465265036932378213851562104055603917180620940374861215215569777472979727723978481332724519679288924305781060925452863642503955491191159771240584998220085540373988898166881489494519885747141517968616100158719847633403488115734124238535018085533133483078771095000087552039281936561878446742662193939931522727496709454324850338760313139692011680011054659045068288815281595846379598546129149951337522729834542841869795051499845489910658834400140336790952878341760537395533880940100121228757769306904714629206871867950017856311633638775605698152268611708973156530506781555218573843271476178411742170723813629064381311087463230242250288664117132727344679750705264169623044753812844884321523059209654716680898288938352160197673830989981394631605616165752711944854906947441099731214688188282698565613152502334539147896917669043956214297326091834300575781889300034944672227619100769906581680137933000656992731999731070732851978667618436805741738358712831693004186959896728763443624058079375095616373732397047039310858515181615036667609009895221119911031108835657150793939810612787110299052224682527105180781430987739594403271819756860818121952695806086166189158877510917256900659330835669399508630424770065180640758858004876363929163509623435849668955830461145192274933886475354134326316900101850928096111861090394998425724854715389052556767986721943164733728543655066946896805563969789407777308960797636150865601442635772184715258937963711969110005420248156728230589415343469655531356570445891724672269573736041110791754569721767337744681499150346895335574174622253529855231554789851433941398009994785939327584960632970512082290307519088352831095932237127666942424458386219040618171241598668751787082036397110642210932052010280128636286799579793177185986282186030223674503247997995329039544463628329788135329893125000265442176320823542676053001898594008146634930049191388665023457222809863221706695233286146743151459381838129054068419134752276898007363621727100778424935606062331656998761307467711421487122696600897362033525457406672120650658073352043938587157098564876730015997813151978581955547788185471862908035360270923879764269239342030404943614947707348008493564338403024291763291064876797481183732738133728190198535254324662152938585859735847697470637749931791628237390406573220061362523597826241323347446719980693962438192730438865330521202659164543235515039670003213865364579331845184429011338642051924401885466726883612004750316571410867422110035581082036086670459705085145576122628129670965898988283855241024922317643660349771308054302567819817083875821642620256913344504798020413121702746618510221164218800092865910881488445540973334723733631298190962017540336461439712144553975024562314268874879357611793704265039059643986905749044084476755767172942867320074226748211390177233339363421866260356366693275528831929286915725260468204126749701858641745355501707660580381725830966083961388984954604150222149420100524845431089394248708727707211257829326781958578022821511964964049822518151468290294951230202506020173638052382178201947062271897592558942740144717492573336267293474999837753359647546788640881260886906499432857755502855615966690558498905799468261037437030640026279969221216751826667397325044906598296725294003925498817176572838558514893044762547184792125949230728151654706385846404564269065313086194875200189024384423112726744115092981345489900076309879992171331616793025414733108168600035791558318933698235464356024452805112660054334779949951056786901516660288969632862077526439099278163260150780575857514417848448887191552087738942670563615339642942241099298562418037300082760884226900831836093646187933876708590027984224431241944435413573299584128867509996851086267409828488357741791267331541477023515124017048192415855736345465950174207168431118256510938613704924423973849984532315168990404322528714225344863882743461591887998203662981591831245775196486408874867159493783430277782959220779776240376664538732366676593097115785899307479468851684089676294018905599762278752772787353000986525698327697749366160943663410525003798706207489344383463925159588475347271342007705216768698573985656757970555054795395578684378396508817227730981891714070138167010529783863475636116803167065870100452602395539182689365050922869898166205705491826664098920972672040805100547827107848026162738617350805688786991758280406057020500349962906956926278615356782613639752415776772322278027332083454556458865753931866071566637686360352576604520942586242525555501413775289482491553042980327033570437235960952973913613634189002752649398198526713040084803219943203223074796387429942146605490038120507698490938143557499499797655053521822243673516592074922318971408098800828120148908208193344690937529217420099895654530981347313355539567697414938140954199150694158073645458437434656835100760364848622646639385538272415253961058230851634677226294779938855854896524711687741451985289463987365922839502663619873103397807206586668286156066313967865601862125059696729123042617712028950467944588631980817393550813581360073541429208042908365218231325196174781598460342720100348119562968994141035279212588269912700638882118648029323678128227582748139794443911413304129870522146945005264326085186889727421825971167812162052088579988352622020444332337722173727323096185907296559005585308272921856231127886454566224479648563119763399439567020918988198609779726052159650542658209732747021534612058682440836408826407382429703282787126270772620097891712411217007718141727387727981274404410130583414918856452917782917492435442946861157725739979765441127222141733812130723391182152327091444006425383169965088171400394744751961262950661686349123612463987318629196293958614788891469889836480367623337054181732003509925364899597796930942476483411761055703709949988433836746265332288058470705205269142774064584461826009348293023709874544367156545730277534096046928494516011375379208629994522618992277291485477090604649379452685423096517881700090780431755462717888251901357201879806281065086331458785776369528331359201821129869740039639457947184557348166088535133817286408004535253362979996799166854937229264805482956835174017155042957472466916520949689881551730958028855954509737754681449352189213902905471895638863675465304052837665179948821294919380888618545753334786623896143797048893035703402388062151750387234773546095514645335169250437703326678744493035919504781286776229981602397671426848253073592518574807463395298273748901238097426026244628275164337208821012211791534334126200592433364090440348339317823041298659752984336197144515721680798490295869823230692338476505997437644270942454909697509783681838357042345621700097317560662175535265308183776000113759192786568378561356730025112362059437933657153875045833951226160481087293795188345643519429835363992196538230508934257515386052789982421174965934061083965606161097673540847375871738361009282411963090942658318115926423390350561611225343363535412522194051528512173466907700218756631282004293831027294271018117993335762725912921690002807596282171722282580714168914821626851382728465429009297714800668007684824975367570755149146361464606375159432605190567307726644625369502154731493239716725016134288197742027704046337200682607241745157415045626115802216224636182158089914018171353532137348327505550924560251895957558872292887135410109836958441834254263610648612007188310001378415230944316324479408537326442696839116245835856899289809725904173947353078477669466431168255509784455397894340700078920455894767747914208585314937941173335809645536595578930305397011711595045268989147664861860648702463284533956688255720959921724833463095219175959616851691522404337777256477781717145656222578519270352300724708593162435149938751592123469808888185902958009336431333393775473828087586486194809410427804426382582931211709295798439264232676230078020870474917491534624355279948103458904560552223084104798995809181210680060541673714855845115881678563086494021522114453426146948592817828789988047396700645706547016146116103327666775865337411251214110740299078976857081746062378217817174919757246610603192691935364188593919361905413724956749117211800059008756230580187242385854819116406575869728108576292239108825727911511678220012673765016789872983176689141634650708974951561202409686835550663604647496612158051264736590308164449541695716361003526446126524082089154128728048540490685831700805882830673302463113152664857555604368053192052504224375118498672837769168006098285190587022878545022414050692845822848603556082833447310543155352929454024848011011330413335195306711291957553514468885329573125333413214712541086026473000262840051704744792814138623670266354890426456840015611213375107159142165306969977581039549950029686189214745784957810084993161122689211381298978721653323931600519309664117527430557496453432916174093378155850901759949216693397021735874993437781391729062378060311999025471859782096393394256489680202209662392204991385245155890850997533732918250780290001830526241820512188478148262231512868111513706756683758854040821835953617583296665519343253128081857639400682961498585852159622537880361476926654035541616493581848162267623046675619786795921009831919560037407909882468085691194518010996151164289606676988897278973924535099439117495295501276585584800552141216656136003749811701525854671776215170131615500142887362762502189883824881374139958554825852661063771207405923062001592568745928437339665690830023936936659743314595609291133514091471560505454230959497864309811501304012897523307146469514064412836083777499512483851601920280798146262800306802476402452970750058086140125321064628506373031465012338808276677364885427309584576732990886125217355091715119636281243186809285971129503154780010020354880208235856559489746465881614415994292357105933410056650654404254934477374608656863262022348024889785759051430819124866107214035876260766044128361760433287104217854588032712427406363210886006358153286922159475578984510492087496638579669285859440106953751022764918487191839508859506967229077119347159698098897850241802474934357685571443391752407553249418754361239887629151405416109506032352842699584044973297070349196741278908603733593087253734445246247569475347975084162056526116733648528372937506025714280758812217215303808196307050409073971919439782049400373127474418532601754671892336728585710583946652355570249376382481782435856054060117592718792101298269318206115013110089486322191693575962412592367579377081702335028253263002501442423355364236555604265090203644798887092150069965650588706414485125270325230571940251556774846261769569838575066339793641679301663309593130066090110529721146660568425714619228569945033106435182512067356049546342701214012542895189389218257031463434489019286358643319369458183463627932249749717520177901355804137184916051009412673632341489095610669929728794706544949701233560104502596252926605747992501073469564550901178542919612898607373570849724888673279925272853553686997140963211821777522250160694640736695357821836764791726305501664209416243135829141235765708314146278228384103666166282319209352548890195120822268461926914640360251150286470519080815148167482957339536530610649379686094193200394830429621945639693296139532074187236503078162036263185491344726487306292147701253151823440245566960961187813947315523485323919795913987917263119663207618021794647803196658627466072315082672575084371740628735792221027960209734364779057879943239236544337628927090579499053979790203589420628483709974391825589624947368490430425207982458670491215417993194699456394464101603633159786243609112808640065665102038325238579633555657567068347995811241444532181002395281933689722870256273584537872866742593581661357438186059352665471747356692197984878545895194659443322951733033238748477789298048615715310798353647975662010935717247775323476580086412561967314224947560689499299774308842973424403482756188038583155343297590024000398969131352770796562412624025016743226915762383105336208721477640423604172853218468404365077186734498430108642616920816604850570457731896062738992508678060051238373927789474299506712440099202162931461448470179978964367409335109432794550247571637168390462661194345200394147639156792512525596122617344002148901146448735730764844285551314657124972955164615550669034264162460968467904643083208425556598647305006954593596304406229370799334885209422650504642701992438048221540100228198970004299606454171948655188167479109030497972975535835892794432083633620131453773858172384383048928515404576333362466032045869621388427007756972629933641111084462188136133738104889599303207943392383739089960121731856738939077789867526577584808453549596468736815467573729609091142295761429608888084864894979896106627048312320468851181164577499211356368211880195422575069134209812214006074500774378193820918349179752506347708591355949578530536410820404636488004812276943811604224980958273685889998913121130213415097004233576653275658318361867169981168687027037082248061475602521399294780382638651999029473383522013219452196930101358769750917760580650491335045521344622016351845939309825428821868482383353966147832092246064696426406090289750645987671696577122280746422627533878919148149715018909436873944427869448542870464692325619693553248351995944695397825127684747818175624158166817242957600465309174336269081363136988700959159278529468364645807090652665332857935677968718984323547128435525252221983621386818661001470135576497484915560930606795456427928209133664947316110579220298779219558800038170137341553087738955918854612084276804267201116754989342520553190651653193645807275915745169104560736211492532149214838315736016156258460246761708272031284089165587798760479281657990304909463858948094754223328189209403364791630097032387966635475040660292045706508965664722235793597638639968079819308926023411195732863647732957760003495229433403316835206905793107053763802906149713792719829491856445225635648504881264227828475165304673455838228596045232271128209578435262613212494952640836899841264643314477536311553727078406410326960450339204156753195378302614316867264542195618616774766358695618032064037533317155019740519932858962118956408924431834105771509038331678765047046645491221074838683821856785276752795103439303189659585860190542077087325933698794547562715446600772012433217507497667233446971718973284098372199428565083311756760020862618264286882688064341165938843221321712153506295007587755267022568187649808134329507634503166687363227918685004646558113785797768260343129383429832894847991844466987403942708455676345984964838437495990697492972717631624386974071901031055323885381462533230564274297552090419736399504802107413795863986186189194286905674736026776448180655911683815465542727439142748469365735651449373202934258748577819514194732271313243278840540618290023734110231945733352798866749503494528310151085370702466308685315673422901933087343400673628447468478515580222209756785236478297270440272275593780379203179010191823091988300211978026599444962950585013714621667302984577030696478843022452757898804252767939770167673363766893414872311561991205479578900985579102677088694012416805062230476413383802460353038642910672137428824697310259124541837568185907820950634809272016807292528894574452895806072954483016913894306221988513464551169552997165956541399421542689575108411016872138501753516393169783370553145311361095959841164659696559434308241150851544238332706044058292907302502475625140796310740121676937060902069502293616068316247117572918660387132390952040473583716459364572930847970212395612260212436915991469045506388504750512901466277256780214403679082790104195647181023703006001333802416154303680064983412874636330123681719200179761736846957446685458917717637286641628541839059092324951751336821109051765164406944317086775216991147107447118761363321835192424048939213503406202683190166051698862120323438622703721625905097426338369905546501773754313660302576025040026212568198207911834956243588893942816503902628975289568277948087386622842863877581872845186943000112893350806482794293736451206452706904799779839312421884985645199261950108121067397961532569715172655248419410721186000686264343123070285604019000178910906837429627264854910751056977564819245865136445043218925457005323214971751734478920140138379558863039130797583177286596448527685125911633321994325345356411018045425909239659307558660499487373455815183197467643521146513033791325037301506931851059501510609586469755050383363013363509433739998526429267816137409196787462744227057592038823992811572573146979551362352508232315837848705129200115261444264956730464449801796802058244308433457197249383595956752257884995712086205934047142865107811541900477612166158595800704739092911402176071239637342158194005784867990965826992204029288210008875332646346962442752955846942410153335705377805803889541175046231080796741982419806575517688661593758112624661705944268419357085340751581602888143762873904487317366978438629764415546795668514702057965454310292461220352396632950547632705754739873340204712560805716742508561804534884987675705056368589632043813167999045629677529178088181936174771617976027123731629682505892606206750041016112265885008451031642150703887731383101997142616009527032409253516376879668792700906454539950788355207062943834225071482684410997815111202371911091454082780608637167165932748065058546870453578025437981171816993326568478185432615533759412808301450725210720517061322971287249430836153895424773685765990745440123172769805488321688532225079411484182754305315590733724382294395787217587134685955642470128982346833728814842400262880471333773908322637137974826091841359973469592846787133692023594108276910921142585447539844758880206081896967255222193573138955362878373480892275926398958275952075671344739140492962984752706135489138124530694006793873036759776332714271142106561712068202682259113256536600658722988058658608085234422129225235662068221388638006444777744557254190921968382413055569594319949331183174232142860745568237802204341342951461142095459158928989884400556873703851395295325046979519576172179471772284721158021430990256159941706264785347384418777885037426461003754338621497624914142098865311825868990519653282015084488499391357987816607259710300533784192664757335589251941091867774201305597040105272689904100771978532571908996393374748490767344284530615698195669970332151946308005499644033787900992377718659119827300284432897955881490407922085541913340715185360549779448046398497252278911205873695806419879970908945836378281711737155765809267996209052783858021562020021404127032860120199859102870176801920078371005711126308997645909975379872554832804104807246843054304340817166563029457430260157650506480271145504434092441286448923725033618980088654660587633798329390524478798749036022964083231700677551692064105720385319310478066798313726086579555044420514974090441455424565387580800871936810673943927123795590943557126231645997067585533154921385607456736244719191750249847149385412831658200080681639741698699218721977667028287081304860176084020748055696814977393592150901290372911878748975708442794484491490072472742969271040549901990633487789130633404386913871566928478087820654882203940358854057363228157481235603920535681754730905986049483337204026737923646380896146769853756836410338263390345241980666118610996176936053801599410876176768337499019540755440967153287464883955489130940948051881138260643811087332080354801633350814339293912274695926875520645302696305574339441785086924719604411136927689624859328667477741483835156090899037600879176584494703465584011800006779583834847758515106206478415407994430936680350983996758007725889305017293295889468829733713586504873942357798944775202984753752493909570150245846358512680830285666786837456543728373005927011249044529373305840783349016144080713181084347389811340739452251382323325634588660528469670071313828727513945907234371966698647260816135972310375635242628032357791589437814436250685213619533783370950732474430141504505890262463044260129411948494508012641064677531399633018900331046677606731016412238859792706900301655432845646813538934860175273900676823938974026215385982740248159210577956216702129955409721328523101453648194954507708768190440308004543058713214498633687798907501392576961393869708737156468477971305587774086186977335987127793051539940531974697575678437846580714647652379018581173526814816974176946549386668884058346777222176226418779763094987094194475738405145576713776143301201606902705978797379904006584296326698643194884170743707454861839166889933771405647498396362356323027593904991938625641268993734635932182201618586124239021365598452446228959587898176784047658561169166511891708294806540659402652192453880977631134582400616823951670192444092846921396541078642994250705978046250231839980885864949625820279423469447188020082722823532722196848228403623312347707640710414019270238938559119357155082566439056384468208271239844964457777682504927908342014304865741284495211215359353886763279494358453769578127827039097907863802314621040911554906066244060762366627680230718504613183244007685849444975026684141866945113559726616635920743596865206299797511730421938333444877702283413075476748704018197764457372259595173134540892968902710372236097725229955624538050047144321198009458889930273504082951044796112492129835782427824556383767744121147397258326932387679478526766707312086764984380778598172102669299307369047345277287595025134347144221079565311701133597939720653737310303433642352281916966859379360560323971092598639826268833363217231641612624521855114483514053860856231954420235431123510397832211664214880159210649912695947043826001500888739721412590578287596702534530869783881058330786257077037374233949572256869416697741962812986698483262639019621346267318972899655750721407554229917630392685854272316116452257751468778334877892690274876642155851410632521844485106815327406252043121687303252223670239088907156278590025918317780049634105378810011796653765647693691241056264317120912746437068861269617335146834474324505998944245265170330488412545563410300105720643171154340353797920691794200892258278947355102276368701069147855319265749985885782620054230369983900564483964997915982716550842711818195802546404511125047140219803080769168084098203329449978338811524836087396618154149177576912433990366057706167156532471938369440315624999263808279668401185994942689480813486216177855967921586790670491653901977199881150647549398651200297640151058133185137724129198267767572735060175691524263501633938877564949949186037560714721839436941025579740155600150855510656729587602208552587445121788291844935424021295632077146335605556204014445072960661457699479812573675955885857128795311233103806633749849050925707672040453239543202417206860637731612148295891016827408759824723409891235687317288156469031288463252383356469500482270108317718890102506844926839018490911229526566647747915883159642811587949864724276819214885708842766175929300228680564854515441428986420445885176911948950402818269039753851287389291721172880578706869203549834301759228750649500939560117224864822407433828640088549899668910631679429344552794765982287398830594877045493114857586469484745084791964619073265982944899883734872295663653696474574768627324457353926325473212533202701692933746234326272920319040558579895682588865302094376721582428118906860781786209937340311243205736776827576796828599946582085184196305065624479959977282554307974627880942112744029182221415474261293465909811545591870593973613156668199424295476522261793594369054249306173543506646378150819295667658047847373237342020529187221782535489911272868561721950644093215762920287714716752153294570454052260983457306494396529711689965768171166580039842038090950752374361990567888363916943397380556818136727340395850207241988054126058190244788790560540380634274031900789773076590527222140508092935070011341355610717428813504438746371625721433583072737994074746593798381523288229507886546153623376808546941425573990592032989244761170339206582950671268153261240591681587187255210465205543144428439616255105108868895039519248071852192524439234468436794755167137939677853670272774119770415617754679716389886839799548620394863890357920237107027830052237889266439677020888244493625235943983137278398952181920989734733479746457258328737791604840857517705859637661754723456579641334144421520133985166805357568720092957686245984373935981634830443750649825789603479104602307312763234569307287366846909448193134518447826672451859176899668948312733756124231845808349433509145366316210205211892642205128701870251039322691377851748149323132499445362134463565262781399998894624209719728730415438826221104602409779501850139741286606198051367231303472650667877597157801769014728549784152647748033113884803110635299555522698483550315453067158321397731776901573167853963289527091819702454927966265822312883245842527245103489439107293577464015085764481665566548248538612649817880443722714830195155332905448604245420987271371501140915181465764710351054374744667177622729782421518842189729258278907429507329175358781100820680185954084345107097193895443470153381841868974416437451273795164001870132895457419813542548200651003582871273426363140292005105109383792197500274764105811050450986010278415274904089640853051449389604007865407279719816747737448003773636137589344080030079254087226720140078192783915879929276624308363210156199975230000615627428413723104466086729251308489163494067948538199950166320503380763099686878820340663779163187422657526771591416402424481918056610908154189183990809011673276967783126265420770595438666838605974225449702917507787642474644468810397454225044139339397973395715020351148222105460374583294348486008930069062035107488933056486362046900893133218361575643941510933260360623066560009838231989299780987395012968023035615193243584747193423022887285442608474324586839054523129504509324438644761036069848451163156209203305346644602024079422965980106007256870331770881824633485902391027511156087193689168941270040793541027259867313914085567452186221742911497437457026838641311835831221603074646156848457346576300379252680394713747813941406016193391920824410846581756174933085241899592919143518607303036593984752430409044367115484262961224092229688305829976811507711481958436418211601947932613375399521876801927662868631552903755928544196096176774229598292537092335012767006058577946606635939182072557142101531705306313766671285060343838783452451255753322178534635091002214717124328616322182569830974024367470027792316704587091757295885717979531954511244902294345937858595976527069056049052875571999142246525967689812189071626398881928175988073921718183706129568779724176015034420105480597774110468865559970290596253267683107289259064019336429062633810437974688423586024677690460264488020779460337705908367275368453845741818808842248784741069443555097201339335978181969274031765650975303669907223492664100802356407974309621913770764591245830206620540595958337192929404131726738888294128052277607203368500762061296565464699201748396080029987364414655187944983982062238976199201408935361221162716614584855628421405229850994171599874461400805783376610852610267982351763261107691997210938955484870438522457211897454587722405169366290120981507574734705661291584106781749634113537978763978168273323901186955916361942538002557728716689350589978372568159972058511134243327257661927413401245451104452456471039265630934066888862041385621880247198720664662379557668858633770103429542667426362385032252482317000852884096671908469750930985786176712898267920870410042101702288526565635505184047236338987955880000409271715879941775027146118874648090356812819438598642343062538717556402168176358352652986486313502328207530686812837469739160763192090156800881686326523985748803831801813281031690718580503493211445384605635468814457302574096224440997302808127743086409776862656440847382405937854258690297648832038524104387301320574042392380174783822073021110503930725462917457999433869541684912418468880348172565731841625614952983515113755203523779838327463500384646129713566445434876960040715502790840388101569222767700808285721951863631230071369583904463639149222556183072144381668362850207565004069115220796005379092559438501335956813236159113385667576927048771432184564648375062524902813672277567119854151080660616045012439316074814910023006774771756504581556617747161647589234826217143089891569122483048071018428425614963416322386249876485728557511923286502987665432985708294045709361805896616121570716862791267144916601979412305471868960494733052620441618249389898563632797397573855744628711222708000292129073027786177066757153040220579362686226247081389779131470554376207632629976657774637543923213676855922972704314345128100228334091895715857349119661153062045417798301539023289592457413758295054455116975528265980431941913801022641643745603361309796778043781700529183404433199236805895035567725850800245451594882250514403157816073665124900877802009042536664936125594262943522583384233906387535645118897064704874933552241476403950815042482839586504815591227700811999080521700427892163485847247665695541227922946748327402697384336730976618893664616152498169318634561030361132193800968849451196226702939724204977740104136054231765254698226759259408339736541545074044192207319738015606524813762644012564904347584222838284156008751018850618183420627851762525143401650696083716540307374367475232713387384822074888328587252588509437012801675084991617538260214583839610195858461357597424348244494721169972198098131896484082134176362495034071844586219449244265500929443471754571987160979060378598360506200670047935704548155899485712430949528155605985264270603930835745493914142599182908697229832130634125692064524495288843692557781958234622502507449580688362305606290827502993522257633873010409403094215334820020692213419920018788280865816346612316334633533117870627707564816131049066274698541774345946322431931454774797689384132819638039436691705460283229413283438956075870449199964828730953038459143041373575667262512548252014219368706023586391944509906956355576749757703534777142150675274326549091689871060200147745328177487119322223281507251774745471859079426120997452681941503454795615155854838605054049422634187688519957823534918308188494916838460360716003954813043782237639735171831064183919423274697604075705338367026262785931240780663406906209840354630349104160616995731290037306321803220838593337856998440736610186983814914630967414400637314719810033942283693444212317470055287317393110946995534166746673956890407273514791188569631011908814798250374918040416995495963787094956948595769327004334120854429558070350107762151602265646873464720238012630746120118844228623209783063533811455358254591109627414388864213222695000388870697732416219253019040298828998489663082138364981069222627513645468854150818730063199816963809135593134413352748864219366796463075289516837189016682495534283162423439652761285759172922227800095589731035574890571735369186495170833425716467446643883207938122698466191610725177897983576950535920209883880852901546112089639158335395161967171342670627665810065426381653434539889793561949119085037086569634567451059688947201925249972740259395968171470061368649842927738380635563713080840426346232722247101768046843105847500543522268256965589005373263715274711379919039366997993775891028047781643600556889528432926042145009614429414097342993977442415323699230607229643643867480294645562527372403751719350854920517930508448468896175616840839616377258708882211062937780595209109188166515644459334471398795293597372253101404292826886475942409851762884738461381029542434325210690396984797418270787215221504384074938954869727365395604994264824204117724069870726073723787501389775371922545701968410578151705630527507527838184747425593150690573484435003275762509859520474603562381796986964522162950909026303292715569519332265993824364450852337145119124147666610475308250011975908159890634746001661205155489936007894729910841469984021048808813762925676363514658173467124042814627536631574581677930455280721089748904462573504351080329317614672484073319409595004230018888592264422791405109899975629664937859333268172421860809894769755962235742185824649304154119402544764690873233523104513715832390627551936689103943775533657091930362621192177228143832063360501359976322646889022772305135300562044090197497111801052895030821056318166448881853815638859438342985422372350547349781650263807863007984545847609905210824028661580965850500561985903884214487157907086053605604570745026405687559158770373068521967844775299928944328616124227934502588545211439899052331590667979342943503622693548703389831591001021967453813533470564695730529027238845847857331840534138882773608603746373860517583758113099072885727051460683860969523098939736324153409901514709671442653824262363805729670743654221089051280195618524242030211237958373449928812616787578871857833301958990899588071210634887171645609876921659484701485814683582736616976194996469554039308592097399496438788549422293944980872122006940333548530988599189333516497820437243970325595054802172225418843722574791662292920264049931882218609876263189740737949620277044968087797248909335164872219167811508393421652530618973367296253162870820227841188211730916530480569059954134957854081733928513652734516212968502313144003667592619968964856310613763084719393903311150407484977617400242136369989979984130788302635271210764695681396446033551966089706702228584382311392166313090752666294090308867457467034094166616749054185656640037638815836066086690004019320603179804830463829303852388491168100096950458345281614268723318288878215922413270319988361100370135958293908330554677968586501036593783884015964354394444717879440244735658187174366452241581266702955274205189336709339279702561082118576441589560992693435901351809682125968042913211496786440253805623839631674852014806386377026801769562362897569029440207790502964161714326901151143235498316289569192310558490751841371585536396747691239848049467256538849748435109409852789043423357895915531576254605985737698462618088590805007767971248362165337448595426965389459928873254568908804764768615070501177402919564731451765371219338605447406427825655045707097082557720975230305967407348556001560051311496133474875933105966791132541727205170493498746851235784996127496463922268280373640412978776768465347319756142954475466617478125519122385453503920952067399187430203088431367289274974110867449879270397353394001494258012831042323466219025619321864669103454402457285502710708332453372385531206948971372063645600451274081598329976168894910613188592823999614688009195505265420759551160718331196567911871547101042694369090499695033051471542806386851620191064566543895634214565235129993601722339184984361000727037426412666520302472423227450478336391997501584294276447214905466156118383728942848423483519805231546975502609932866726946150061678632297208245744373706156597267488259112003229066610054853275613662434340980702286345638656527629690875531358517090981089519219399722788652870789227174276401247368590948378573473468634877452764292971475064176250125465002489084270478540464486136710952576412067967700745154614302001620793064163606037779348134083315446432590231498193648511034116605788322351020084628850537562347649049031995441791207148589919950241514981548568064459935570657209400018739645454151244767648589227728785746421074969446096694014095207026418338750418899735457684894861667905334894024810324145677577069368878949684295469745149484933081644951541575220563991207565528348130863131106379792948313758956874778160072930543358986462778205874744558703727003944889077613906218156713439279750314587517054390773641760339773862276019690282499082790882676491955042178711493815305945144410612638611343050994080442432879037987468462223913913428606357544235727490115013867962210625808510400498331771989476402036994218604037530694317981799641676747195061070358399777460300373744260723598104457909454208997440155336931895617981037729612857829496163614365690438605708227188571324559855955985952591024627976047849187384067087582436247392511932381094232904357870331395999728022205531511697685974934746926682906821916371519859726873649834043235312502978284088843174992349037098694921268198830855128834668624998315641508104224915755825556852446710330121834217984391699521506485602994275152008576840577337416676804453503470273317711812348166960026023621787229114919887463842578788645577420811758346061784524228480179282534395776143080816748739936559558921737581497884844006758578287053756226893486380116712474854677018978346625063599697672233065949876628090219168413995718215833614484864696055905054099195484033970078619486844321458728847861178677120207558873748174935780333392167893159911591259939801621799736339037114983492587176650577239893038804929586307284031784130390489961071904222622756190975484795195205721246116847114162491726759422138280290126954901429639649585449047874875644186937634214909183577843123808942819529203783503403933108994736781674838220438736269809011007420752965622469317921235091992866473933206689253279270062447082826324608129586879250900478460909473834000761793829878155915646420993020923530984006447639693262942033432020023932546317254386942633699064699755973007597545094093013073855329573732726529280593428654238657102328792928461748418535267228481710727016500808642271640452263022845237272200299592378834946863392645375111324667234939826939826270488813679823851025186654996991113123400778817621160488876193940891613086031643433002477384583375284899623610014655712160615813478053288960486150738307306131800140379624994005316792419049450703002395637661500943775846686822470848833855998338251356050726279703883656553837883141275569183635357286699373201644936568621454888159092850030107004077589951113376427447274289336619579590355578434455809483599161966525052095628243469565989485855125488198213886629925989345600061113341304942384170808574335195622693735759836927793149234288305011136459429780039243516064050332012741842361224582077851440637150747054800811684571749050698679994431536202621744517550244957763928620396103024148661561858259230678235066748200750860613440080098893495410863084110582819957174816126314783700413615662419560482027626060561676902153554187025304177286403263209576022117773203189385826061966827363538004046757952339487654555788660478102259476814878793691400937776868893859570296327670695368686328072315600011348914230099968230129952500027096644108373712283097645153275383716788302556150364756343413933151048222584062995119158723324966627649833499017746208523924270888635591969046112094038308607055403570192895094523087610324692710306305884267522209006921553141933413707710064116402931198292597817930323534354575837880000000179981343321620348271097057600180564266318571092313036457872271515971932904343926876501103698884602173844598543981081301883759303816580138080556094621567973629401457177427361172834590967363010173128350209072303225455949763811598670496084069994189617585023392222289593574371422086030192100603173108875736770796923855813539270484555000775421337390701947489508336912591572447019265119805148286709393224586511386678317002817140419489915228323882487905348646883591629707354900188308109092278340081212771355898923553393511075066421266061878744365388812742460810610833571836169114976533396848682643113979405588606460200977356697344062065215164805531932698337028026309117338528569958492606709861499007320567022145636203351226257628650131522739646817831401156387072012499582302429104168061586202163950167170264578461876066183789483044409890908502143261478445858923691130506698229132504064908767703257041739996116486655128081184494129700427739455741804717406280635477381906577728877448302235575694666825437448395989985303182554059063956031288888971864704016127207130622673359959596281561031875785187802914848820071254223977604688440016482955639871200529816728989238167685814339340645376475984103981038720223833202640534581896870468026557300798131687016274283403395442729294524256492811017942556789303801419343159443160352535691062817080841186817296815557817866041605205162615982995174853238782474770160858297346496223214423019814223115491574561222048026558694255630048737117422956848890997184783906500189617770794431613053753754009115852098736329764689426095781786004415623547945670604120692890385432954341011678254961297068722798181983455802822154501508347891414535843075825362279730779146290733705135892685093882762740858431526026034924842217761330767967233880844770446537973865047627731797140448746318413167342290351381781067543470596153675684519039046062159729976006221851238444680550666814932454536642426262453936351812853195208968990295212971594789581540794366340956302140222423354819026602234662929856567451398609072772945138292199447165254053809642741165436440416351515692226183173826247937098136122471126874985255951350628126464854845137713444426719629094986408916067467847219309917775441290094071787408107622101382479248314911556921925783166684541344305777896529894860085152493822261744458719862068700433150939773710338918962200276143608266785760619601244262573739046306574189651691520471813827438995476329654451035485558080313228931954795358796970199309952370391560351231024913649405541069822094816048212524885494502269679697918629895175286933101550058942913796294499605967048355958727728326351888127426493321101928874474287852509586773902394737677559419534520779162306699637306240821264435718660482080718199565204116133852685449122468523910724775966091729551475895978964136456999548738001562419998210498288763077815298581397786735226303952693893038746868183577273976741929196357590238099421463715461673271132908542034381233159599254046438063090840761945841377030689149764328867557936125373283122099826280459250111708701628838361059805285624834693570343062127956820431528040821845409865317969682194335408352127625807227907701152465684701317170083946021988338724683565671102053034188165600137562045402424077509705760827444528864969973657092643867975481582798990249858305576333126965189166178135192799948845869147560673249347810741170871158565266768547411785009832803019153676207457945154988948349878214209549080085835167069134013371219898976194615488547149639625241818466996267677945960470690896604554070479899505696156221850187646940604076368107779391747192728232501960453182636966711942456606174628649415139760172218973818365207663057122406839387411895602786833884750908804755295965765799917356427805507032391458912248488419834725672545469327591207077221666960170047211629451789470544202824821875455009769120424813405659791553633563796643054821144452312731784501242099971725371184945576751002724909267214951664381030844497392664790275367022476363231825308752761744334233169371664807030712043402641288300693717091692595511812843450764071962657895354526266478720404648330925418223813347605074609156466119874243453164153550804631261428423668306163781132897607834691751820657696821994280988593742391146214460463456105647127162601773615458931827066947478826785698592337172477834256355279081123088622533533359071529344004064485047892040950076074662393933411277814240059734307157425820297182283950191105606903509775927142853042340671226319009967959177142191564228193915053678937420702297647408158540464531428728047768995316113390603283457085759089275415452262830017691086184147864308979088763052004781858517127844207881079705903745411368332687733576209608136542613159072448327547330456347788494088769047432746173585819095805089810662267562244206329812192753189727763293127234190280032049058788117144658606380416177802912201592838505692669547257390754297195256061390073083651511087124888036763240516334141183388881648168029597085615971606763764683464642363891609583164788140956522862706410874951453488875758848561109659840182758556502372977680661529871806524905159371259621458025704704828367993563237178106500371325692943423257057101571586733304085779309390255061672213584591242065144641150180832910692308763230266339456914597487250429289430623598314068565729221824863694932059964194768198534758977073721056030547710004445175344764262149167022604960793788330034286918789745150073875821209992573681324060805287435988088874969422942354485178285388991260258299194568855617377458558129300800824667304181758603207278333546760504553814577462251940347986913442429147426659078932534970953236607629719389434677657997236822969356997401199538800803810106398669753351429944158961801493554507963555833466735921420375611984127016554178750601280550844009865613633393616751868611596654702356272141589186830702980614811636484225743740932725337972354866831991641717164474478277148650904206921370836132384058105817211092866116866303834386827016292136658249020742201195583936760667421903388160892115418725238500157202047721990119569144825781451265865193618923024203936531358805392790121397523564023795264158428301294317784308884530046832427614762801863730170556834857223941308417582116000229717404737278718036563324516578894863997135810998439203712899081806258731901531786295022445020397943130524751533084957970396318851307021817982444987638239807409921968405817938830630572394749537915468656598027258662091143216295804254919490112199120647370881097648053746725594307303206699377877038361257250538305163523533072620377733127970062090433091298665855286560522957529872234637441417959144934499188421219381028841540740376817451670075722603506451682822392609340497308417358791306735133338683431118115553692503046301171748935289053962744457059198350631335968459217486961209888796843605224605911527448114271987231452523724063265882351780301938683751873173978010629658364231501407238127576792397196308207982692052085328481932972281946988171983336822845160490710248621699869751264776647217454821076862844982440165697064323793048968540947872240713185835418566640174278835466329965002010607692614439531724576963661682670570194441171437980728663166704206887989345949847788855287905744114362254013098472966973139370740543889501984467047897975689972427463928985854114325686456619801992936501723943198254933261818014764696199840225519846344216016060269387909034828358524930355923039721112497128387095002750209958604641325719640451838844352961750080904790699803837304863877715491005641072266538976367732064829816022393432343809445120175352786593118848889846445677832362423572883693639313547820850125712333617912161064425983656196926203952599513522945823829875983863145647551009485126234851900400486409010323579751044625923400237129472477802660875432201834808569178299025527904694487437437064875942191087435352988766946409194343078771170574646746624596938611550695797935693012787101483640023639513983599352812674066700898968091433346167422419569531748185251814604319381784262084755989433228585618627066212794236397731038132443172426911325821359257584358059676413456680864571652033367363180630296350270532402828838967523037596405785361262713923782460212216711805442204501012164786122427347180245272665126683836111092499918225906002081793887832680797321682932014321456733498673006739483231867837980779912999774047599199869983290652854016354873737257993123829790355398312530070450489730705270455366416822562884428933104337387882308671479498445935631507111514376689303152628407514856087894276142083277892144632685487060210559406063812450046016393971250174163574699960450270485075829927629840856887101550428037629504700763292978711209902606497662025940505602922707669954353255844971490795588843050364080059638030596423754082193998359104658535717909689841191135265685616433114144843867779457626283000521405559742646160472037537948382332939426327018495309697775288605534830182520648526679700739030119708509949476707097745190634140642410526051965339831966417809895279235746087726054851360308011384229330297185387397306910970650689594963830819445710288344208459163326292384886597333827265255841045145882911958808369650094046391497610386588483821534717392791745605284922113561455479093469078073398348941029568332872797301212737495068070416644492610210037821123767951895218230796025140426415428377900368768618672634822299961543438648178530290597040339255791070900031936227008097118904468861394206213292824163964640872630527629392166135788138643962262000252199304236530946993313397596255321559150390123972746036559250265884972488667654232142022566061754959589136528242733345543020435995460577293111599977957330400637780465939867060590079230166240768196867330640643426400269109979816749670355742337126736377358996638131186766326827495900006220281390131108842254159193222072889193165417713086492390503798480152523791587490556937311419957275575827043461810864616188441253399277373616089440284778295030373562649392448097864492549042668113560129801128005315410427377685717055565901966922398560715642942563264705340932487050685798332912085104825989600604918230471890912859531454483782727906578076750400932249175939205424243335483428094187980654566391823321247814145434628382139676405431363026189054522243495865283375686950302301787116791323393754448949600683336916718729177831822756512394670665927130712453042191740231294279951769566905182438005137929534464985574927867414199261570404713886479685271979084133185218733988784294159118251748144495922323749272345682022191454356779701835480867516485197770191945016506566158861168433478054739640576198611227482982425473950486228487939904652085234484062683170226867617169386018979495059514575698763916003261143874101971469092277306012539963626830110360880195534855874410221679554304028253824187563743995994053070236600715462884441796990683580211392156355516398619996313975256853503037904705011550617154562262478724862424755888672173626348534755863727944405008058507839996106539639645362372198007394969721468060428549107674821527616723278711466735976334976739087275154969515905109419003792822005111854104427957685876481645836050229485854567291963991471921497303028688873964079644901528586830671410365433855580949497365493230800771656804312702236852143452894371174114098084355297351192388367581969571266193132615709795516318710643803482342714988931572358619883625920166597602914982944853903619541491813485461802802208227707297681007595046186162418970079849685565706376483312575788674144528278723374077286023618827595596827947520724475599233248939654124105665364306856663404696346294809742944760949151673537151029149138617683911399640698367549010190958388951120481989549192600047808306291104321638548679652640838360294260827624388887869072027952404893337898785677906709853070968409875099678634447142835471143192021570184044009491041554383991079800303681761982306469604917747332873421402555984550015724907419879079269515302140104345532926608464921544063852769919331815248569894994337235059301475888503394572693467163300844276035896318010659798795804890405308275870902556848366082895106525358175485640902195424561814524965110503932874204699346001402106925119444845368063184628998132535983567354164950331855004241020293054874748650212044800702075082397901575593255684629774855245738441945347231220741613033682916284776834768883306270006792391402451404100140905553584057536184805395398210889888200248266184899565088648218292955439697432178287710586525038385529815393164514269687778156845303579034420268421502067124396956316475408022320322943157483448319850654448456289764639178412021390600603081469586862579278583235471728554899939036912296224357456657910523129826771915872330791817126892634937921436840585708326167768359815058414130781384933957998244341518573328714213812372066677516443269512369152936245504037513810813992938324155736388759384869498088435945471241705095130499889908622794722748631504558848429702758297298333085625945239177621927200402544702571567464203605364349232361411266476278905886195260351501694713663551936335418859750441732863335953776920793345585416695339102038903469902968764260656617583010454698529972653655551191680620164914511672154998241581632104805341720035974149999074428658228141890734103663880795435316709582453127346763931840470631582722185223812476772205102297117188088362953921445818827414009789918319144055561973916454717908065784253190278341287689821929581024472885816540266296768429072443896517849361761523422600418586953553979745226389283840835526525738191137914805704618215920876333891021246634749793187222962897477638091584528222191308594656912624679393672529765210452440580729593885415113547357572499553719782312779064278694300626830281546224329115903473531298643097652000908981173532946851772674080770448017082673570354972850188026414492781713994497783051508543192517309699036127219376524270630170664772553856510650177024983244216045606217034084709982377779346633928898339691496897661699925952507945370705881907647438995255161841498246991498790142192239850942014168658199241125082145952293256665549417020956983445105793004987616816121321256154149862211247095197398630983291289392426974197950451601031569761786136273840402876753987773899769917055719073593888496495069722443541780270739414716194386680635996695593291331168679767201982231347619367851691073053833102430290970866675467678787372120161759764555980046096899138251114568544694452779257580522523320824822540529332149420065082115377872418589190889265746048323570524536620312226434714929465211758890846723663579196626179772887157036881536950565949363880062633947610116746479287546778956935566577274234186119711057457804934580728032815537136272104238062658902400738065986512652146419883235637475323760585138751833177086475504900091164138155140383390204670102310871701996050900337446281008177734192441709721050580237563764261437299994771475564055019416760226901608830943983096664658728220628982162210388959969065578335655962838119288589244219155173141877211417147905147850201139553390539865218305979899238398987594409249677058329254078893738971393716890590750355869716302818229084800015988347327231395340816464955573671342598588053697626507924284966355997757896369442091059199940466182373708559726989990910895538591788666644653879996568462963684917941952146548130407137901452056105957310934112717755368835850292123875218941294276263892344981556655987798194030911150772249579950373589417973152339101521450090689508118932853196437629420413963049045767919842900530086024257670619419017648293363393539504320339186576588749879341919654930302480553519334583065624879723219578595552750163210817489298581113956431567658432389300496365019839109936470617558416450528198092878528933278054449775111461121191765454831687844425268274012784608172177204932147468874731843592693848446113029420614020764528438252153155415598597876020656855737411045149647353782596885919577555039780299717412054197920662064217153096414197180030845446152344302945202689411801383081585300784973332065829722170467225063704467404193250748781514344421793143354997793171614551725937867471007704393404587484114973487536637332242310528623264276810424417604823444777065031957834286452008383912234052177601771876342672965821671023269786071279012878608724781046404004248190565761656266750537212472784540144229118637944709499565568576354078595648721282520579749907315084301288948699431210864792819645834268146165066073488630978040625244495910878442469175772890661611297257022460545271447764359215790382262603561557430000173299448065616567148135256485830726163198822252578634953503387745559433785204156824370815992791651249098357303431198866863763862056985899786469782645088539177509001677984965767025220877732580686185679374922951788970272214629100370485811837534054233756547316891076012923736622876173376576049271470334458858337261084407869598383245520013362089637567165991636231061183388277161911809485851321794051580551436272034847535468283912046021351343823476495569043057927679246466058117817052333635787641633315424903823675354233682373581776908582689506590279927622255616564869466109707970338135017529843529968550284997095913016171382976134182368076231301795256944198326195339590391273296999119405730411848335525445005313660482433118125299186099499371616342106823193678089879828752163882367500165370351954635786767623356109933721808278520583335002499817699953167190434668533591300629456365872045171299471474139067662583566412012173294459755576712834440644566512326232704703250969021035975179084162739195347472068460562958266241837388498742887576151945496912869766948751113193470138831406158592243440650214581770707091460637762452162376770883895558476618732537432178173111634906183186547084344100519555684203973785721122730193554632380170433156863230615361846371505106908392546742528656730266036547511679973937310906996706455213444344950732596633380544637467371636271242808538551847857101569213850657471598960272016859672899711055827064481019562578275246779466950070768179461801838803216906024552795637661197543146588504352780473842504901120152252166706645753038536579257084006054601698978911580367683239031013342072413739969274069554426751114640465647052226765917285543424912347557932446755691380985544928605797145318851272138931167066842746073984326320615215566116729503563738305589785069822536906094903098960377015192114081886899581713015300367078840755194579557865893797529523540780150057218333228734768924137131751821194777777268201924464318795644201317363902726471544908191596597960936927702351665406662542953668154348040084169673330020226582322453178711652514133940900309481767414431386283711371570306103518615947839844074638887077620585263773215989131657347931092266937397796032759737880626060475606234873280280573217862132025876893188100530498955395302719512291511915482316240914765778454124309936322679693658912395656216681012478397137897770929790147466542909015944087220668400077797053887249691723779715562625616493385711797319815956582239328898126482101876874924525259068048695535519706576895464989854561662562753815278289143357544239039194853165431254762367658439437708822283487063652874046706644590774014063356604450152495119438069060488832377258151688640071298554781591679547507850975166156202213116849700050067292424924261118891582205675558963528771480268347693339132714576085793801129882524272334895690799733770737147744442341365522943478319259818426139900267487194945240078139106083101576264900942718145099575086929464323594192248281189024222301250553954030952125784081446388226203061403090282884782256340624141616808172639436271071217363440300985706444802343296006166815669127705264150261339854080808598401394149949750754372446099778277614071025387754503896485948536236549774978908265993437380423674353007836537460326171655877357361733047138016559632179488458708353166037315013343761355561507628425124916656456664168270111466567278292470484399334496260616971961689456184674681817294174851398107499453765759682184220746299645607393948302435353105207349969079474540579118741100793298272442982294841626588842169898509744826844694914650744680512974342244083784122765567769983111487587647660252107098944827712165562376873113513776313409115203084559372287274469624359724791395883069587475943229992663436742939637399618878597458730133410233960948907089589659033668241428069244041765217758742176599057068960171830400156120364366470296651086952978771837469658192046844420069233398573530642439935316384365625765081578593528402867487779738497742002871535637735276474485701295594156191198444469610440317401527361023838371432642807015577215142393093778602440356749757932904594163785412389814023861550637104587376571754926638537199646587016187327413773011612440346194229083641601481509499772872381276793325935634936455794820988272489715258503949142686519596768508511958226870435839018282698105191732915452708728490780111547087225019971879639111022948271061064004085034339578795696504286890770874324556877142122217983349358959003053357204209921946939033361652117739801308515282958843941761236101984591570500845978164175050740654367636100941094550463881556992222576051714868630732747458381648065297511560230721891480411322662333175306631230047316886631672601462546091877350839894127812081638568638209736261480158370748992804856180975171612598826126249671570153782266689980154527388635160402024708770953755844063884336845410366981740058011081860847152513869930180789531642277597101399265399057632831509597040065369449279572283083153766220686614493735062649429496452336714973463526771495099690200049054010087513267726300327720233473008058943006228357483825756695890328992882210410673323101948948420443106605306088718962270362949605848707045429940228920424707108296064744489421779387917707252836458041633183423405131342639174031710213126983693780860747379490238998947297245444046379922575766366251497947029631810723343055363093155757619982797130330229205117301802838523631318086664277077848133932473094413069057540860316656709375737563604625363621018541818742710909120056074593938930150900545070837273949756590986648353147908238809472611024753244323388009817937190934950550031407940141610083102401259220524746219740459887424435086184401124965369080491413508881788688641982815702224541565768560863246757571407782737529636983670581478536025476983785662666691860270202468183594178456614892567261981448253154503508325196765132066320827342083391144470144303489755504890105748873030316717539424204833929514222009571035352422935891404486902864911781415514356244187879100091061543346229398090345489625327486646850378866127241248599016309419691314723601938596181651763791180008513759738373751649912415222294275741600108361368611848220842267458373462699806739855908258203478068399116442951949189137607637788058031143791534527445848219614050167357498038199136893278553994060889223850392542157124354906286121661712041978588160431358916951337313173389185966950000479035822344977292429815760113172192266765396196606380713767444643675455742673006375147255537875640188816172611736835427629233104554628652247893778644314319965877238993909556895792645159912481957712193440143964289878392415365015390363929360211564945863331382885605854886089184605361180195180610911912467421668672934216699385739605324155577278310509471356728952377753839858195792026053898440120863544040447968380141061053275321235536160103617459872418343670626013761399379173732907325906960876106210664395772189462890276798121462916947703857855884443093767691369656270430170329983339298563299295003496528394990657588268029434464209784892980930170272399794944514395307191597285654178283843124355034398095138348982096559860562040077056135336843402377476826008497515360099283147773081285133765228657485585034312665271411563321506984605741597133983873275395643945948491298152733984242015768331642936203101853443900825861082018342875597062508999265305941596131599058465008838014474851636373089683479330789678997822395201895222852671251348526280946922470550178962902033025419058675671713736005843627345117934209179246325151229457465525787043463792236084419985124679499849385973957567054896505555251153634175124787296868794283952159359719487892891663707174649524698013199421816008735671378664768277493218427398473691474488355610382401578089386845199665133545884071855067930094185533551110365125760800048111816955423384176562989102098876492012259229639602362496221256350537917677009710262281549711174328319402889408109546112848668261648251856030620743435718054565139482204720107227288008148331300259551966456771789646546401382092043070741296493346725645762497837291629590762616090689972231491028384841726134836341740272938152987305527477342580377869507834835982767738489909485939584852102845946862507637613178412731139700552577450736775323525978372768606788419306062167777855787442486184629087977112201408887734398709896788682459446452232917385662935804283306411793536582459980488423673012315029292104226259423044483349781433878984246203440712861691810484238924646945435845769543569918425121147865718155646289274133651556246813202452844683473458937169525117749036834297854876325349761844746794330030365628964220214233042962368656023865193124919197871169538137409699300368968543195327923999653327958370103443653406829664983380794390079738448362890515960754948448531970802022412204503322901414554093920917504952986381731800769489076978101914722489256029995454057620080604958897986631941136057883603448527150149406822877420006275368808883769051181183779701629561217193183887846221208923371804134434409896614591461392302720569235036426923177405923947675616310984941440371194287779286712924928251180911839192012594390491662229734020316074629258965698809108246697980466467623924491775997046755577895475645826940161105118263969207029552326681372535657660126920133255210125414402808682919866528764200694792922461812499065533520488198880189407815600543631149552225357758842793395853437580143363284667247402411625021057378007369253670857180018161994669943386454453697914066028456375900524714751063994847835019303540713063662462721162476909157246862336516758075860299322516348076663943097330660252128890719597476972402342301603219514594170973344647569833458603004941588548807639792599452939843148843327882057204817278554908557501309675344361376408994960249516332538476500639395143583583341559491700911391562141363367128947699392105759331815326680239458377384817073957606677329183770239413300741594424557288151943538283195177457014936290707667270030291983349010311504996003811141464822704692642697806987921256338081849194029644424870272021746756095868836021243957617538198005324158515990898738079367096454046846689836647672426134219163699394204796785493594657577313234049846387906940567068132646567933293659644375499570557418115891766454373601601329627580307772009364366222799185783583103457581595189586584168420938451088958297832571938034077460933059361085119775261219161930306547333419791837485219794111038198347293818483459132103409645607901500275541246946897410535647642869521787055049109500203833399523179486293132805094805167018246500199219912624659030906005380978928163716187543853034933603570828934633146271808022605779494475684514894725106026948407945765585303538096457282142460228932103331794877178194289792766720836174082464227064663926123218374483066721774360411997902556204653341368943038939751751693677116646043009748430189761136772510720746905804645872293124061895785108670519762014947063278591431784176246155106289125274210841149767842927528384351735915638417779779700212785066648734931154244172097590071817724954686924126420705907320108297635205967822496654806487430097535947242777953574423930670538993137317704521405967346623015358228348152128285321842929593341894273084979490777274641519800905931136496037767675937124960184043759373357801075023791539808468172379658250471575153210766226841246726572739559667038583282420094369685888716423366155197592475964405888978674549252365645099207362282257005978537717269322793099450975487373479648046243163462115068095983181211674208714868340323412512458912656506577894369249354226736138480127905473707178978571767346922241159273026584768732674599542501349449554676618746930398723708146501808347388358153108772727190790777538993615448184797766441669218031888541066155125737195523383656403572279699612192960854675401427311322823277781135813538032207885845462922568565055588069703560054909376010607087634927698177883649971407896373109218239802981568895413224835972213812657532877008754419916146217549592463878188287597583753790293417194350416964404311228247550372420282005842143715325560107557508542293601462328234206018155651838835617531176102137461370535875869282571525505901469731467601266093898582805131526447041620853191708879277855200544310858811740718645342872655150066391165724772932926493052088790690036872746131249956083662566204055943096110089484036775383766454264821486682489777303018963889277543171562463723164657000427485969948399773731641607214197168265048299999222107573274035767316473387634935833600899348544816675298763487446317190757499654753766357176071818942528352519087643282641624396994195269600377035932292329282317840272661922480260460790476783236847259296191231386905791984386683082752699566406497953657572572454488397964947039718882434696956319810498964041706443113369392768593510506513025455748203823640468397600730154127517770492096237720155639953741868860348089217434000339196422862463754504645296551962229957688627043680290228170849320025006612861866003021514410453432365497521323138660982682664560258229782596752360035934624270813717699772038869052859051033962759170781548473403470456737432028899648607527703451423926712848257989707053639493215166655541487738463234890382024766957100298687210128799147653424070434956457578163270607696684986479956553456826892396625558482857577474580077948448504478552687571590090176650385981508957525586992727523521228267567512845904125702093999267817353624846790885768601562789448708402245420386709376637824223549789409880023183866616317667499416066634859139433634826737564456906015922813185807265525253618502784444763542006442762901651880642897074553298022416506109009506585886892006779686246055358583464710073479375921349929626619235674160178627343662821694251676616583326649754567608437887009877740789712585231292336271514332001499429448615444620314557231972197901816237510751689190201362654744610693518768405487140502267075441518103585148660979774987669588716465187234099837131673247737994573428109915532986670690369898571288851302529523089893805494556232751743025860812627408851144839428692563160194542857380322571158129952420570208790925782869413152112349267876585309186066726078138060566600733347491630611777941261786354663798409564733382029870041771517788490608787063250365677795365037398914390733739042315123880848462040564705367569242724268921931530007323796858201363048588501968716462022427735207589213105586877256913877697442363476166624264833255514364379850779564278211230247983131563169663170402539868793069014425674817708176714498099823310764083811746150255501678718317345652400756088474713409075408639787170363675208483927571170093852380664750903228895673192719801061432793985362425693539090820144580658616876153949251433262052384745151352679337573389157706152311764989981559559497012369823422067037004428889728954914085736236950754518387756710137514361454495452079770750525672607449698989046489038501987030471680706503737938795826251614149070440971211346153174439634154522475616283599354658748846887459702126764883367059531037422855888995333087793420428956499674189354597035169138848703597262921068859177223621712992385166660371173391439463818400648489844387418783927445764859603439986665249451112163392580212080472575445070880165141785740493765029896879288410346910467655630318885736817570067892228084704411161152986789136829155013433696863052506018517090061295792653712045916356451383619273697459281654877033812790762254976836356615354954253400165340523741659590999643010702313315143833006319537780946395367755122814005989022242433190290017049064252571999239286117243899085108403198736923390156929081224504544387558500452502248651831605592821915882916046693569868654384049497116045011408069766038306236467870437657517742485233770277173244152329063289677176123973932416550004075912624065941820424355110519987081285501395232102904470544820164442836795178687474692496182372656012013691379496029407682594204442194359863024942594030986366704862951991384155534730847143346186185217634114747335180258712986564549923313156062457932146871723652582852781556218539524117337161096826212179522257486908074517962921558679516480193233633171061306802847464276621441455931169081840784944999841777014274931129082604836093698720636584068612181190955574800544603540849926159300976456647980694639508735952050587625375372734538937418344797483164194432858950956792916533218572116305367389525214095854804320551946609340676670615834751232834418250667533802546839822315160836809721836237399012042875915723523689701598415859285521684349873064349557347751516941928340883267884769608435943372806329601228159994369058763285725929407177484397759764018052788251981912305570403706221947001105801826142290919240694786899590343499312339909342133938099850859852568980038468417868739956874869975258165480517900925282096308560541888191056740614671672842283268036995811608725185071278774732721314713973319632751780970935550576490392527209117558703499431622487882153377991336762260707608168211013372484465883040671236108520501514010195169302662802449482967013700678673813408522061618528114819730996666972779783725601212283936222630610781142339232242384663858448087847333818901335238147078043900660692845642557887796374336346796285252716510086672221812423266793163215324280691243295873459112714882630175839447489871200565550535208565770013497296456229334618093205417033463409000871715458030361226695487959950317401016813823630608622964136193541797343599824661900028424983607726664331885863818275770980838486235928970803697282598685444388896143431300712962597518071513890703708062205050267986653636436453128067304094862188059632536034314345815026470184585055085153596543041069944821094688754135224117286130300901255113552575445538237540150969797931304023422867868018899622234017801164099495907640973365230127045029083711323346108754545960047177524172135211297856679607910646954017699871963545833447168961169131389354721553096958628384691714380050489616659935017717692434874127540158909304692145212140236277616928759238324209575396764623389508250222178787250210928141869611624015444916201348781588570181236858641737426275349510676294616733569341613564530388741623504057605477577600502797274471523468874472661281237326724334151074109775048843123091101689485643148566359765550639881617640549635685526605776092637554575506697159411345229555226158472263137372832971051382158502306493200354207078457612299211547029847290532057027970594596571390957584639979984262488506718725176112963304181781908895428218051840817644520958713157335488209864412463465485272260765112250084039004551153066104016535377283268546782687454298463950467990996997410636858418125440797762869838223590060912068946274180119058150890783207786408976024684556025236663476769981361825436065563468138763881716550672962688547313022897646230391530499620932595807412701652050624646523257126003452434768769262683532587296499202693512344217012153128452285409411213157376085410055203332864504630449084518684869734576690264660307818576978760833979986385617585261494019870834001229772265897873059400074197390054166194146001018414832183801153942363617608488807567935115491426657079268499081991829878315645914719841888860566303601706988652288797185178854397650935909257490679252480437871445609820461967198165832372148052205212024602373418842574084343340237669225909853881911475014562987782533443610598400284321783399059639415682720788407870899140978788266229076310568086318709737940951380405451145282351790256400157781161449932724190136364482862827273800890310382085144413593624333667753667570062027356474860327967016182171011784771143095791835097552129834585487579920005852917649834208815310495251703043756871031835040974885901213261302171041919095048237850554265398854522589161071924672178987536105663092944064733043310448519498238476791327501281481151550972624953479024396689395596612638631262555620076049044915896238055733639361538287325694286446356988210705566448914985919871515708541527243600967519503211164332581132289798597056634352427511424184906660519517697054230829783393907301834888594862099424043243000791284957649024755189691232317700647392267539167470760443819799191714663208199935134927496775046452985843728074184740661602914215594323373352396231509041993409953659396148480365669879305171004305660861455448865187047181774256676644571886440574240743665532692424419953245865570476100258617478931506167959929796350699734763659776195817312465167212047886985766625352325731952536020920679082949840513136564751748120700118983342141368538878186032106285221425943938314821792157133133667724196921096909751763741853822049156882746321459066990322299749269066362525943944222831203512612801546591926202584144760788069229383226241495619335022836254118403561900180716523631554362215628759310760968584217709676098784448900924784883269880170060800752267724423420512598979434580204381701071474083756231431701272922908939910703776183600027861176867981153122668891061281234431337014591361632150436854049920136230130110515193758964089384882344304066226440210177543130528269553757965575423344063417573600149363294969807030278723264753959582449269626044029189916618422555063311234052073371176161781021676895358967228854028454659781801135948785621942231281213908954947745665923119176283812190776947664290179114908245008923604378901130479363188681068655731091315457046643514654947856209797213385614252773219175777471316887623089532255664331360310921446715042930665580850359933307941535282358822808150575834018353741405344353723601518570182857096398279955000503919790467130848358121257471941818279268227158695839955742649147395424451725537275687187871032663102528397382852401159194611338077233850572987230171048593188978461930830178838849214282455069581441099297019795605765345506784732126446139958226537590198489894517303185784782245317535622119345019733162820827802743535707577893970269335659232598985159416201037429613104509273500694333522307121486315792478724071981815523601227483241836656558610320372973781328708915971278260365936924241528781329517505826047868220081500190290438261519925103542876052373469724849388774421085616546161974515452464014149549003770846644560160752027934167714690172837030492627746260196404651113442253947680047582641791278246235151800259471428296287356662589868295948640382016613026444826165921771123291513672058657102921263244428732375610557192835164358341264015239938512245850254564255192045688241571564187274060735712501842553182546413965095960576286413308104543968034058911871763598057532592303656431880439989607245586900238833099094936869828790440596590306714793386501568916883166002125753002833608362511515850214351065007677050784100371414323667051049601595501556734742085648551365483224527945643783916452237764312186554734071684013859531915277882059277181942550899421710438630660902733674128023649243148941644316063949463853672247173380345365992151286263256747133054620732207825484937913370728576889039463302442526700996824944072912558056368929531450139548048269872796841245944183650193920227593898990010475096662505727543250150226450692811979396058547128398030528102136143761151758735948874891664126775018975965320228325037969383348154464843506744161765368213310475363779559042069863257301232749644814744435729187632374085429821781611373374431102760642996769048302336307523712459448511671282810510253791702648355413483494303635052153379269361003632498919397669447414743407379838728652293984239428662248092148066444863089263089716964983154461425445416349415147893031304889377378748854445530863531022631512116657794004879783607939140571088434142570932314603501520077444031183161675319969817908256657684812875376595734122621421437328993665778030803476164387924463789395994872536535096639800739533755081656402835360071773961879268312894191784042567191440717508555929928224679976627535963850012712584302605986050396057992155579264236491308705739313205162669781690747136799220280934979458566137971136587858402563086815484934986994776828478233751709954782210014148424302699508582412032188359380815804189958332105970228128342449964987978251329074659591274309053939085523931321890383095650905383363021801685110635521723374672393838849254794477969671595457020196176233188843477890940080127551570353828223042055809836924814127884429297613452083144799126107452331173415970486397303656302412332707599796346670736438703775713097707804727552410664008781422313661354038546151352219641028377691197883339156610019495381077691106675277843932541519028323320926331750409914304121952842203367380651172268828550742038805763790319804537329560955798296277635122445269965112056625116464653559867366503561942489196751729748275023965361314268276478176872074851977933496612708939680824407049468605165821992262138896084674030478297274584359454075108521678467885599669616575561609336685356607291286266022847766285804832972834268539031410333377625472841266248316201311786777374919148858043430935403483555318146264878762090025046128940338604085027558510689491098492490559041020315611030590271807812826506323082322445149762095987782261459278245401467291212261670440870220538925555096084180983163692041281656928597235704331605906550967129621058588805546412530895185620666909115785771525316607243374498994540337263947260625002272356490146273838223868598822435704858220102728059902312575981456417196931925045721765194321396454212080007314347577544407591819422309900418745711094339228957072044091526897501688374175450394002496309434856254860786594264433025495923231029310374246347048574845799003764860582181333195670039307863155920414461243046953785335282082105285146265011209177010469088657923427826884528663687566839346358863507976581710434401341904912406765342539445012684452076209972921908790893787650308212138476234183954161002941990277322929411876460836598486203420939882340592751089418499852069180588651438110568094699268914869356543315722952812456604008804006095302120814882918801644903537161585532864672974310279957055498848035643757271289963369169263484903424599248338195793880797706122780791306077240403821373324951478617120500995552642071553732853243476103116580045814720817631200526378197388632069736062155283760350532644074524992470627723189879970063915177410881770096111734864852389795654949943124116636184695651682404260060160092666718987720091886610510412249615433092775736266302395277456636022279597842623404803315787755198357176335038375283393283949562914236930007003564971417040197259461970593278910552741505625531397119725909826841987433185983895269812834118901890866393292130879224745182075018454428416350573700701845873014972806585977779932210006900281649946121368905962533417471249901115462344900717457480046473757391411486259668537480774759477295905408332627873555743670416298158661633008418918989251171282892237716283656494106532744669896020450452827488744948275830610939229944925656647549083978469095874723237406703251146380133103217839254890587700760241592393534262653548395797374573260284187344587945927740338063532033317084583904988905294996831399957237170352366391662100375609919216283478482903884595782628997002339464875148084831058752380487470327517614222402675330976097548607716324594200552483818179597686684134540602649493391301200798430564134045426281901373005552287593977067821999897594312562940809369121584798702314375536608683712286227445615801354347573175773399472884506447450341899015462795005234867772139098843825524311793347944126227641572517384316308720795191967511465894695721391242016015964805398799680255935503406754974932732645444524138568674989413370596662820022042249036634397212780575504017594956699115951049069884925410186272489953145154098713060899607518991829867945073937076142491090867344816862618965474064096997043608064507422819365265708915259236690258195612143797496573455822189655339153664601930322893253558056814265402863996627107397641575104157218000041456926636096813745194598151549401285598534068043943757496196122827038029134193699250438732033963402240329107892016008841590087402538435436448142842864202478731305833961441327354129552486008748987283310764965460237873547395690644128344315059493585279338054540866037572031789172159256218323905376040180962452415712215166666039095499125141734220887706706149471223531639729728717794570150315813050553853833433203816989304517669828884587468336433166376434160889930221959910853397142237905663520680628768914065097932992917984442702737032737590342060916824832727396517560485575739663912693200354554643796876246182561048818239359737254064653728997485666518415589091442815870493553037572445238084903968028771644584050821056238990997268162892561342151976366516323040278613580897206766716264590586489786392657294105228913662119964405356280225942634476698791893645424026815059301994108779784067539270258222372869705371267206382894374265627872731134979835949969616970779142929529809087897523716831214436944318798065580352627603234275607246927353677314384918514565680810901711677505129563263977247484829929457010833197657340893429731657614381432842948645258048991602490935231925339277194931770855994383579493065454649199311649036121015856778328614203314581406896140348786768802970022013571711494305141049460198077372885780549930921132344200523222265214401889278138226233442203244214625427559154189429837269349051110399380939196852204622424025448122517508646518288222169724699893139189634728973125807116514931137669089118010405179726521450722995638703704295324217903109719556300014478335743476689845765428202902116292477263178711542531588245331351508686389561026427834607282984004283805980937049383240188012489931137196085660743321302391600783968319941038503939223452078843400987746871171774982129877027710998084921668429797569182932872832521526165082828641164337024877537438637309148881953767957101569494869184695523708599762812572705650601537664107159999730659497785146093878368074611298047601818211058453611467788107208784618859225857897457944755706427503549074829504465301710415883085089858860138686550627543966977279883798272706221679175740464114762475043827162714343011104411410421863077311601934487916903750311606398387550361540629187041686293293652712315016171499285908896115376267700120586794847193895244539344896777438915295878949671609785274178029484484037532197295411030657595835743406997765444847657707436336052341902716204491295607257890965056395425200822941342864778770238054439435536327487459965964896664005906014322508525121452761059523248249362600024901939632544721944370890178485712929033345115381777291562681734886990438063260237673859977730641745143837659448274713405776440478623201968051524582921720544493058982031883111845670228852805410209174564263264157513120183159297656938240588440766073808099078373228240856788007433619110453420192818050658891449257592426550359799415188262982299786353488033042206580674758730785343467245024679638991927037658494013638858885422637409282254229927531730634224907184011218141054576028004541258488327147715976673391916126326738639508904268031197760189110347678781115324254706220045097248363063332472111136207649402207859366617637798333210952942525610245158493077938283755817851196777006872339863955623048275770293715694615050050190514178849475105718853799954498143251551989714369945324248705877605728056398954288271464861042383208809110513027335846349509925198724581285122171348671398484894742499612064206192963390390508342143711839085658538652314171002656225631821266041609767871483580719503093699546966274924977048844912103224936360119407870096314496532773617070771246963501625706051084528578526380831513297440407496780581949393144099893569848909084530904398739973818252845284426453876463178472698079906838344335866695219798493563460179352823135508837541741472269393341916436603675983663874568360421175718127123474475090189272234666611100363154307462126553249266758253794742144583546955144710473267503271568623681681269755574228617605572273836841507064290824345045451098852678939875255605131372811892314495877214991387210039440240474096577067005277946660962295898523286402509286046585369526230130341364121082800185794838099925665210314431824259339097364772515590462507548017589258765559809327249168732990846758844372987820446556054015105320359185109992875636786278226391191650577396871914594563510021780117801225480407597662694286342315051911934469806615506980693066338701108239906242918648109353458997187190867190130193197788802928413033481198141163044444152155239287514915323965327482651166700265585690571198275997278126605945953063321072168669128766416766658696557264870613081228997810494610902070598597354285192643009633472934999855934787166596372918510870685642627174837387430100699764850792823018451103970407901335328963488796157293837405058368613747055158680341896482244411967050503065230352347335669543950244236146110938773051879388132465017086687875404522457542761689491613084154633775873605000846824054143221384022898610096654532592028762995631676436383453812501895892729879094443023124367109350316773465689693160315980760582326786997535274685813240110117981557474328883978250787124182897801150639042018392443851294308193052647992032737511740386476258749492581934335301137054456575622188596195345528777099563528106204610766230539127837016038946077007561976503641261253853974121835182016617933056802309854145250873276712603577688051529083232643937130750239579347158051153266524415375598215037598191788619524170774825457254342573511637053479129163444453648258830462849803920620246206099279333074659367609272793494832589789563841973630605723958141416863616259783487551297370308221173641399332366771940708895968990527464017039149070140970008261121820987137430445470376576368303447036930210556029658224236213068224547665825597895432983700855429051069835621668044680050264405682188155163248474252373941848832521417895404164540057502020567965235922178358686812313645328692397835739221395436237705237116384015964893768235902670550008053392308574360813711906393972457130161845336533275891530892852710775653841672867854985900554181989024497978482321768617870352197113541189461618795112984436493290713530446696349508710080804389185291251003207749600177823131219329460055477138627973207107584599799960256020966628371931678340853029910100047114783272060352259391007419269821950330238094447859693238667786992808488972206435929627893665069909989362442698313150734431569894445516770534636228379647490374081847294769073559350341599543512269426438513685485756933160255062435811794382930589211164021117223259911809437079452372641771111607162884200844406126527002410515543459865236796037407641592451033811882249340495494757210840012763547756281431316067854553412476714050360506845012218130952756048496643793340482383640135305461333456492049220125476908229598691559602404220029142625345681538917610176680409498382203793598946156900131950067381105257206818546727646993929903117854349348994384087478402585915193913338659732949488106685116017912985589159978136721545862920918376319875156720489863463486777490083907576423787242766870629193861033988411733450785384789589507819374093251792880265384279162169947590698262920712417417567357689311379940263168636500076402035003138127734121980791249187459107606417127141175268747092762036486971539997301943736194730140536150117051425096482384507245911636729189226431435992567878460359270569215552557290509247374646578736350566593853780223580698529825275168296228034626623584491050901021851749542794982965871973740871951357915461104580076932132788146140802313509801336804816138913853115735180899725214650243783240954712526519408438234564069044665745992535635377529767945247925140909104463174692753842195598008232274022584250492195463021761432272710886153454905325938594049320584415799726798903348539252995966131702504896664893266654221577519394804007868887637121343701081477787482317857913343127177523534915848087071038696784853178210787763298542864347173505937749860204310441626636272217926844112874268155899161611445784866500390766621717884492050918833930725372801912457998753978907179592097469127529378040555763938472463148619425646364691619103882409011970372173754966903128548718666136985143163146247706357324786145633751095513672483883903885259860605610610693376141202363985734030318471594928479377895848984403094653818761001412027874007663910097091154683082288779293079017681144045938962060249430540564687315504703683003786341290379564044411945512953910754885720004933621990021244758526302969963976697283440327039798483213425574290582195157369918396913019696795894138595356664454510218966980967944884476669516231219233676564769990771863689697468206086886586662661605826312124124243225576059230457847717588382931481762413432532230334115082230043495470545871982267175987116757408852705734651382617221278392174626245694427440397304927238065222536473029927312682681861998769402612589417319259041216324810676289944715745099343591215850903968972729868356280354547379070249899767803164461524628607480608380430877072046285719982043650508700864475778146880470037873119413406376983016560402315972649342293538850225013080899427565193277129832482712363616052297506917700849076218019940943034916874389615890571156366792631857218319300294320796854832546392915955120280888502113028847654025797531976891515027495390366253022661706254550679139501377544180041697603357246364663218026770986462745563998394399346127800961273486675614645299507266707217746806998839517165572787489831026512690176604501337151333349220827266983212827377554043406147120424756094180295761705070598744503923520226206949430136778077592266549413164809894329497119471863859847435124563632164793713694763063233242889983404944745147199045222558850886687701952859263833828277893671926623541670601297210413621923278845878230180838363212095309605356970464893912763214762408850980646767188417696135693342774710328057681988159230413425464671157651621985664176920080653152250333110232667316400557388624948178416777827610822015851618266303725176520426791782432435927783373302975355880163183403158460860084771520226654914356460786205142476811994262553519287657316405022019836637682630562077878144953538904669567429421816808142334885045146213469935724830839775865924591477200424585680271075371893954923620338544292730472989412583278879330593920326344903678459760885740626231010168278917509402475110067194539839859922417167047140656730759798231707931347451537255121986606380466833049615046579673156030556457097749262740217624737552967437494402989215780666395225916464892928986212201313020111889621426162006755138945039709774916987442807885975739832351647519029952110711405300090125280858435465245930761934668126103238304788220103360370544409451082539471634854035533230965682623606238223920350042697829522205248179747898671689328035473935001523795958150413328132793795384908885125595346408394705393117252470695521347966512713778467765361524679480712738429045636904921711924168566886022359155713901703071691985912957472293811983937057259402203755723778700124554826776918472221056885000294041134065325483448216991033240970008248011239985535202779710872998699804466074568915363876926439764687766454411632190930123042084340088989560860509503252389292237400256708349043763926658545605332942535217002927197840499610545713299884657077732705494235124397120792121343063020093643365466666120636494926495413379286432162944598362213553717989251853308091558358657042512844036065512517074136051166037304413500007346166848185757645183781500196177484637941996257637176392842288359039496679334558606024479426627556549658545307706763603474112131461902529421378306152842115105378675343372758334662464011252400526551327412125860701600572007309047304647835804758288525165192710695491261358674872865838012811522272401409195698676018379166736083898174650523901830147820293799215229971734252115881276486992115917328542829929188404742015153081578997719318647219992432012439675897249685354770662681761242674961257823104891791703080045901359903750702336746397359813959446402125539184501921199590258946995246249979030290827434199356164419520110221452513068547534054729256952725752446342622861956950441192505294146711459295403379593538690711865993578066033385515730329829286053313299140995020273395130702004525664402030008530735262279870721085944702699286814167174424634154907767811801517878316003175597509753406681897504848734968657627229324681874553517590427358273759630374344904827973476310831519416621873283525531941459385212259806189495156532040947253194560375884193952056398920645167181877347839065406833795301647266005999666894085688780128483444003720640844648028568685429703248793188126542440297534531421566116796677416101465416717351220361888440018877015971613193553079633444528622524829881978085946579760528944458968553637906897826872740345709353051009203955770399504580469989393964558934923085352953449753317979968822714215463398594030162556928636349575570791532052526642903644831176760904373162982585670681995531816495317180972536818950924997502994090599201029786265281585827419670148666977387214726847428200993767680661647518236255335260582498706792927138115164702545030686084138336097725392110160248845149004062786292234867717119782167912556624806655917788648519579446905738931930670408433888714125494140833318393425048139426094802273139141689982043856132839612854510757327666570538224332075497634915879982630914352675493100315982127863862229751504945020756109667402591845775208385747997134723653333329662412957548003179702394542599712895039806025201672996431382382270780128035225708205867669327348296411829661487424222219780822784950636988225576916956313071795596794390367195083082515033147007909850470834979709374927325097661103805570280561712405620400313661994716481445322151101281386408912903354192493695557033119344648828942951543837524147433797138350890739651243288286817544113177311397394462457622501816336537963748747371639552484464063693656295450408999609012757207679650940007040556960834790797082149781807284777210769295303310491941395598285979513270227065152335334619759265515683384293497481075091508578463595519848738607881467015023843244594662320997369254090583324976715991082127457795850861732707919697930862783660230836358662506475758732064030271591389712513536109347936069997121684750253130395855603291411594619977752483244431710516422057626377525107907688507197511069196181794329745720462077327615754189201614358146226403222524906029202640413922763310324103917067659703255455343852332239831487883064754034151746800497360344586274790642459108433392773959988972894231018740165754044015776663689196196600234035679337449811641962134050748449908531158904558373535948500999343122771995369706435651887927351394141886748451915397824701960462303431774792539134654311881000941420401248378445578241200164656113536577299400062893971501015537727378742446093250275182694577675396198677709489058896202191173146892213136666946244165101334843293442959281650277110633477090101225042817493700323795448127751202547011396649329438662526693679425516529757080989398539284656642998389684959471037704509366638100761384917877128342765545908244577431186055964385393071392558525307667166698294341687352906337768379137429930087469370414479355006829823600217833082743160844348866679248711318975380564946780324312244019554648706002535272518828452920597508725266283757526785952365565316954265794976327515277161103812969855058352313913933102822909316636738707598910802475870453875964575906415454102941703650716726631859472284506237913974052314269829010216847184840005193729809728727498604223958049059377703673983699164010391178145937892850749886264102214261956008991163580544386689251644451190546043378425572569493081400225384969908286923222193839197978944877780978099913309212122261461618649319093901666784715347218799723164505300297371329080549141351525597060366760124330183943878179073896227540423619177658367212251370803300282181357034712795151202969876779209163398387880574820341888943365488083791854452735489248780484988505108544094549118528774935035452824966403350311904207989439014037784538313712149997320699066133088688567815987290731148086366006976882909560321447769737240413187751015202403239097652340272205082394452355219967926006921534802275261702316630886361194472516621995353533869175739421483657241638691951792938881504311811177245033602707718222371515894853906335326853132856092974100795114753563878491156453774775918534045731259617609628288232407082984991008245942735837102846946776098947888381464958203660728891906730357339435625884764966932356762590609776170407790043459694677757023264780944809904096090891117858209401505058531910639854021868517993070981550751037382916113520831245160749368552901415977967272871292339813676537334218903082326011684807095989346193440491778053963595824193439493117061744608092660008192587339898704131509004594749632913576512611921825689580146205423354171155511378271560664462038630584238412896712543097942495401459007976523652483452091807181820319496692981438253022102544659523344693685946234312023607808350278534906264159203279780631574711200680631907956721869200460267501436776301329690477485685722719889667605566596449934585164963441634753679627011012059491936064600737336912381768173906483532847443489839189845365704842367887904037760194455127272127491542816232651319083925485413949071845837887289755567779561493571932395116924761924445483373221730135693031923920251192154585064203743627724671130445604618769916467221381803711336829341357026780192012023026903752015984684785200835596528002825965204238288408692056989609549240171590222481095946232948429814268690400785128015360518679722186760338192301564492850816846911236241010368772813046812054118861000021750245803473093152998038511798171271064835313379372583470939433536791060678793794754896742401668670078423880880240483717399433597776765004503452296870697982099403878628426158345955237979820783583766666806466569711441191589888575354152931573170703333099823379810966092638520396995019889349572614022021505896683980268556533928414076092670837468624408688382625246131925195697093349504476438877881981395566922293472594165883785445906329162965672853050804608469884606124501585498217825044659236091987500530053365823928585672878008121749601533809626960904879564683126585592346987553113138143499896286885844135839488083743847289169719189178205920007970062477731106646469314514921126706917539934463633892629530096811924764960768957282141450521442027964512279688331505318127655116221489617417478742788280003949750326189045513047741277246430692060831886176949049204705183228595938196281800553360089926330822746219222430080505788394388608643434586793936681706273315371605113960624271768563467211935484449999546831572567998741275994098419409372026987431226191965757772201841541664694689724078909919091691786930965023175527665272341079077610847509475388559374832783189831333519779563930959328724437626483598706200656713267170840934012082226629650351222512129403654382690490033442245275539433951565681993977291177730682017981830272360756637618094537419994245968283946508866863539577700432367342854147584623107321645271185275341587156494952239990612153410331080363150801230822129250955237478516774715996189793581778357444557770456825313081630915342547811687005495816100173114072312308706464392186392427656160492550060121419438584889360702658594218298922573125276476865581183098660600925878183521111823683752050451967895767427048387215798187728572366755165918613559482842246789892720740558773504770237108877912656715338984135668063236019308872723028909186798718520960458806227881798207524685436056301700083044675250706589623055849515898117593392658359508872482003339146280052408678995680159180529796708406996269283190107414876228679214868770343414936726889856699760097076509561840249407246574757063905165052453783467589988615683847998293743685516146968909971682299006913205698719527477349863028834413527622530376072977253438925473683627712429851217185945002483374534995688918029074014224698994839010674640755079248570573075231312212458541220287846871900004123275845528548588320393210855526710427469387202732722884828265395225782414099925214210131633904169804071761674475368948003468901923553640328567041986442367886890320874769139271216942330018874362837153698960225668179361390254704131679316121588684939380330850464174438712856183761905455558288147798374591074068726091003926955715739669738902729284185911696419076521680419645025564730866659792769260026011312140895360686929514904043178991221313641451632814464665886932637160412810858948401493543332760189605700545478242348619798369604357309825482898794221716120667560186726902400206305085768711902275341557471678510300649431438051187671942751871520601293194778029509550908106486553572819651421495391815877307323211895683122849662723018020172043198068068283530257661953101688617675206095308798161835590714510177184333515883075766450327342948292267330677784617946496461060402920007861399261956394870404451977293455860458950405125253041718842657682479535195300056393035956956861957314271703259177195053286161228495530547384316295993547448119941004860283709208386814554116964840565777164582918993234861254457079859421513988642281185895257722555675097204151857248505521359722021117459422831736243037039808092516866580225230450432864095377803932323703831923441981017611621775125996512005860105924576218790187686873657823089403471512774118146413457615917632904997716338770450713660091680205415878476833641934513726146576766902701413183556824904589897293218082103741255189262758772218512480499960508623685902971213172044026722442453723877788132321578929791861076305178875541427014386706104011985315045094440528292268644838124224474476047864370102319669681675844413677036588962405018341214895855444332684424512157474580316648444753463358651641216650007029792946427980791870126055885940900647611172726978111003619261808674614122641720960196492962619967958359588991905066409624805649921909907366442721765809032203233911095184390104294927643463874175227379113399818307704422809424801690674677814905501729351562983275845266162590303449654848644601372025381844846659593023325569043558288500069813006597887435599471813021636546338366666268117669242031383361663201611103411400492389856135711395370596725198673408484579525770458258044919090737715249544339785448138473426926707378193356651740356898266052074874348780860221258333804349933729398246852995572955405689607362632243025822680938940776402574045491575297734334593140517228642391284971146748091238304793107070507591510307499501117560365562211789702597088409186968504921619842809272194573511503657803536002274068157522169430879725602323876045850936466896967801485846350393734015932647374413259974716556086433178737282425196917192265864868625131787765565316535968791966925979641727882517787638334506847385692851940599672154962824887139520939327752999968298844584546334264713991996966382054363135011601724129360021534256133196799836978929885830659703421460491680935859368707198981599970846309454741987383760084022146663038736279517140643405677438346090022499923169957292603956796050059891335337907589114345910658715326910355684772188067429543623440235237900380270343388849029162012229827874801060660088517489722352651968148695122154793226262168653959935781202302243813148276459566377957501299420041344451703338479105585582042662695755689557262695325479382594849815992855291524205043746039609423302116480709536122793850516982936578420859721836731614033149458528416760003669945309335164146411169058100627446589267443755463385044864374058412260162118620366064475825584248800429357914270252636460522157937804071079132360823099971061553356338498716909136053454129492057346491102288696600570461108687140876401626335711772466326877856696498314173372812779833469820816725382439116142455605197703094535585734906824251605678780576532916907464597108060332544671601199319448956044707562507324059661450043744690354440010862639967296989364876604152040027100931804193403809125618594792791995495666894576131473177619133058897387740549852781653973897234019406415814338168747776920282307993000585387501998698190859355124718159362706212192633123793099082169055450916552494170952220157870593381862312031013572381153383136353554337164529048980003464590524173112346010235439994872063318985754365355866014947501555438118294881960835684688363576900219774618296582815725722766476723066591690854120596879357015365730697480539363987298397523388147591694480406238497382930330654052573002936135371694080611085254535650412383809579197426724571924146018473110700506588264392644203777537488815755059872885042440495157194036425912710948270772175273788368907740634281262452586016000325970686582049378724246722154340010126221954166805056187070251539996447808412768361047117357793628208500836204210569864600885893576386665618320069668292724792600154558975099280376052932934423646061352007755709978109997007770774358301028478073972573922282985744079598730219628930725995683700093325531654719168488169236651276664542076059122069215156606452149412777718303731164123028455600123837573157660316901529252362997442933817975601455262373932619788391043247266443465583956380926766184148806753347322359870512035580271134110702902608700114224491638280671178635774098690254606963786316845487525406060394119379156115849909500567976760644081157099115162863509921705571022193801665643809675761597038662273934140667972227130223610849820439921679731799832023315681978761951079887799550396708291413946662492803859319745093993022702514239621968237392174988435631136758160639324238731246368135448906455749765924562105512876248903458331944542724237310545077043233109990930008013484078334393847920520430732803946049064831319666614623557345569199952744677220893018290426139457325661378220399291263583639595942839332826796430346030677315606035400036081796902836120120438945438783116790935046148984512244285107422073860938961578346860607683741070302725751111894540045707966379826291185630149262406774623788792027934185657399383124800685370956961189099953629251010147096919515502246754172549483505857292314224303702383439915736950937497248184109076500860133228966930587567437218836268739599383538947972812886343460755597856315900773796891268585626182515429057048288203722134900898652367825655598625501163457143731015784178489210763802229097358508782727545005813066783404003010697503070802916056220810858685042181992408185916322371785682823706087929177970641549726188549239960212427568413111292628127915807021805623863146184702060861854826610450354550082027329895195205538416633681350107582291484868597666985602706965151523812490361964873429693506216024535061858478409380156975407552377814274389905505263970745752335992171877191281509393132767525792838444104309223475516366811094888127387739412252946168787332606604401072216666177224960248027994700501304589476638138037445295610420230632933148964288126328446728062727471425264760013646185623611706776217229409375412256646559967872129644686737744870758596387041198212155885425730743810488790628025876213667385468492529818208544598684292637570317959359633515443649874313159580972839162017546987548362638200599402578112669182964157670700960870187861589841490409717094774898000629174318810827288379039287531377278330955818060213106196031245192692769064402867548425139622523734024911554495067426252961900361542651365820020493584604490059325332736889198315472800102188932379983195703740788406659480251552567594957639025917127715334532779026763610607364890119408821821671539140898287291990236040696116032538005647052024458632255741213807308396887655910913109061402495288990203568694680936740476926751250477306561628317451782977013926657079945318872919708467385568450006447921618754096162092794240622382691989544548458251281731965327027889456564007031900312887555892424184291049780763507184676637097141842185229993965666235364924042595507477094130646577926149871704716522948247595186897854236132317746549744104823112799031691520042140488891691946424251743075785785387606762556972480148879088366560396284892990880629213941115674780521455616771884817233593748019869779852373796520573202451139288510352247940678802363771428406182115521018205115127968648367017218451535163810555849923178018077917872265623854719671243946396477649842104124714676046654907145437780827087297251065519192152354421247570789477043257274136109486395493817947124881304090739501900877418791850241569937281815391101253756505110315331160915467222284152611710860299662591150670159450738890601897506780918780461255932814632351428453719309110233616786448261306919476940570967223233779379202462510343431540982441572336186533092224940257768685872010917595005924085089284089751099278991784640116522265964081461311536007619190639238496228444782944971206711507932818544381662015913849277971272388380092635701967436074231480090756892912702947248604293278264901106716451375417725725288891471598956226393905567507285481434073073029729182972060726728036367677165845481719289587544561119415568949787410280108454822573507620015391840034155737382453353318662986618961414135267472543182232739462107676120593894190136695871414020821399671035699185041769661564356060812239720438974043526700423736221536097853133139793233480333633660635452029890932809376337530416203277388848189967040470833799525685946285416490035322252512625753617082890423859709198560156419123903751155096748949575229561303418730038868482927759139203019684028401164748605902764456164300853711186037319081066115517453914149541006866833219678369927949677668486175025354291708446702718043906557240227456767957358652671848071917032289549159327234661726831748966464664615906002616123951959079531950500823671917096562342944870165204639268006215625771435914882676123379778073984095834524172383224386876685382111830688689825823365850398983746254148341770313639459851072339282311310053990217392272461419853322975477861305541698304990709844792809710586317982039343621277602182760339598787463151501060171354200708110241364310796413131120381705871756195357570304492376564679930914668458531621823983092183371442661250685001476998595415152829245022801060984188906365141307876409361400060248634594291874276843187618297746564042844276671884789734192383945879536247220626501219993566559192283894633202209182272017539183675134852152558516732825168483959244185349912528813854916448714337893616954362379934562284028377185424968558872063764748789394849375313271994549613445088983497865792777475629761287730173444055019641644415787273902314927348274461033708271517242424910347744865192444673599458180334549494340966381239021906342604197129788261083271968026556522521632268185017608847404176249352609257614959253953248931699853316375056929418849349683947803340565240124665761152234268415170620151320248443998713295711097063155522416909562969016565655333622090203532950009202825047221792845721164839561462851011921888581257860836604480529429489356839490334764336099680601300208546160320986267597079100311489016272004321331776778553326976025252480065964511821292558834771537469480797908015634719639228829933405527717169291855564069276960142566328785539249352911858642356062249260320338196277563899867514869013992870124888789905781289023155048208149773320255286149633923062248176562530419103865865583318840703634148394212658751592511300385986072750142637821638945943617351342952134543916176368748681168724682735934268530080065476949820226804479481015124107202764486023312241320612006968055817833998456672075032655895706421070058539126387118910634972286233553833759156932119487250875591542037985547054982128922290669372066711838452573562081609133673318733500895210931843007872263821676261417943627437804462014963107721969113676593937926052859182567908513947850076295962269084000125586975044339837445334720773659158684677737874123783932742734700697560241302656865168926858558441171277136959012855099729017998865832167069982283616541006257948721417140060159530466335535620622245470352853997043739037048614454463626248652773362165020209202995032371681992382504831705737806655848793209589430386293435932124881790438450557684443893459700469022620725250350720748032511471305327110454046699165327298248189684258062643545005506573798097214602251802340244212537359892761606741596079482476834252769196578535391250643437024854938950936722425272349325893983590471455955900176644390437023718636806806272185229302298276658348141127290167890886053691933334785351912955109636154092175355595039915266931182480258295288397705685132764045149410444773350250167749577525687559376561921026846093795261149512360285320743648408838509776657644150775729652973210381071388695481729053241180559609367020245791619442015295845640194597759006359464545847608311936071450984432453709846878286319113508329055029820168059302471981932918409942254242355436453385066238365820269845023054582142863802692116887751107236299626913156216992566227393225708156864235781134810720488736147676363342640292730404793875883867868026575257695933771301507375107299849731845987402617397470857411063196754792375185994443710699891795808354511062266102090528240479090115297447253224027322273670446460453086633357836436370952515676893474527167349411984798270028866160631131998573488261613560412200246524676943507855866258837052532157857152205347498880334069510131285977093059435800056773016972156473510595682836778752671327772534555829665289351576667493032796827468138992327592987004971191548514123837371722829296533114766125392091821929817834504284331444208543257851285051729970831388868680708898033131333480480953772172491972441062944740585818325970054906658566300422503193549841313704431843751064133193324551823589296835986743112279136804483257408291748519944551396756052387299721500604174203097844979953126342792336099647997706264177662090566238255735743645346648963111885592457545601651614857838106986539679310997215060030720324335195850942176666299726263775834482492990343643719422699037914470143538197937842946139187877628892199760264509699897285879270185911369956196697251547706274056094937885523712645886144922925521529188382701680855953884910727048660978898030971503151283778588185985036626511189871981145412999061080882575024181724608854168838791852066439945248015796661275162271340992650015862730094950885117019185255078307686531867831203232246861493878779612994010017237861743461752215615253589069699551973936559510792188706596729462820988367385109391786274019188803268972885365490782455480470426516029992810836777682989396681492320342854674014469171583150175446396788015733442378561341574900420876905164642775579639812936466099254710783404368411071408676306342050046582340014168162740289450828145490569397257837322640401505523200058513722499387910431187831352870106080100954280247623515418737141857787403785331845929507557291695796681900823995824373874607280093494644490118066486953338719509818340679694364081260369684002855150000661310454284805925621092786650649181307726355876395605071636828715090939662448169355546522377254501963136886846961822560934357348683238955426387241756934811949689931492073246218329260853290613288721870080855301012458251378688514000018089131030511399885753138414637040909765064207428258684852610135859983365246279718994308405313364430184137202891562406267154521458449703553897174104961740438667736285840385216945324989478191865757911031793618422670422515552947543267886590358394517454725481217371318356920960677736924590425684430764273494523388194515714256374895130494339897851742594488606113861787090531693371162238806111075838419092272088747430897205899172014144218628743612614054866480984757848239340745796758891719516601660211269187597465094999753007171609570496965752121898349182847143194306069338526977692987074042353837741597632573021387603227842015712621915747352136286117135965989716706981734935160843277270108570336547859518587578014202729687400462671716353335284645008005050599336216927836791579842202962847048966117144689903953088006971916525504676337698417083547938266244579167316926616014758259365918025629014520146772254338864380870379436858142973661963972520468544601841074054500644335907014936365838075677630262499896462658574223531564813489973725939812662662532163285044363959811591575163005260849827347994575825431776386156485381771518170755039631486033707481628982364053921590405440968918748631717194426508362268910420865033297435653505162365734400526766384590817168790797821656431070295621469833210650288960921704801622855169132975611608032376915534699046456269773569196615573215532140953440771008824031981067397484691266739117060986269224297746075058331904317605774390288877398950055838608599032901198112356996243202082043386238199894073484387047197632372053369803789761274317463651877034754122712934940322605904957202660420734984440322755576071267933638650926727358105265091413108057257084938442006194547958670043092458500684290749023845566298629548169883737354320972642188928185844061674612775578742139813329396155918826612674745424435564653979799537023578005809870000469160578691929972759327723313431494776851486153432125972586262486595710835586625760510487642590079449097022239307819095105254111771305387310572498551427606549926539696812027898015619839644779380973583617064607356960711414199405061446963152494422511502014610559358155649636318571901253506103370590275809130354325924960479864541183211900143635527706515788106066875561270193980388778132976784573786760959400521085960635785174920926067573089834047839867440232496497496388111214434222162889470654552902786849702449229452468498212902223686660180649172692908426119963170504517003109051163214717383264870138174557311988186899669878292595094480457708380365836649683294305660546338366862052434496207838276883884599205196648035512811497068375005526966758809134516523021521105545326184740468338300835686607855553263463186161564874388181615478577706920640087269937927336705205742486001028995065895122023438861583557103819952097498214702780356188430606249178897238323513275275189925437722363494854631869547909044317961915914826083042879027666768548743028130853943791488237149636304796106204140600093988077654329943246498607227417875631210563416713460715421638497402511047399920057829116669526256953082842366886092980940458075361625276335240703374842602422261876967797169135330844734387302632740370432234057436605843983742097623462454761740343880267372253136559595898754555456283458987501414683105032277419975531517176826529183821705452773368759721224606271279802548740830969418499077507481155457346823667278235147226249765135329134519543573151764290603879559376096069315993988410125651842771285307084200064514906748147713380343026483747879873739119907609060530756952535747277421853401157562679338633664846404816429269485938829998247020673840375417052316058908374023032230593490220988993372462777551419726633572453633271606726625676372994774636720123262254021430812191898414524027683646363357075606389294422274093990213894852807059606923588402737364671095762093217062469890931513086258533882113194525305922634278680833511082755309819915692635111247595956024184510206732619878885404202444466439072523388144820805199355102433274844111492465805579632021023400434287513359693876688659504722084528527266303699447439238254646036804189464243114857211975962106643139014159894033053136792096547858103130999074747947078563845356770495390533002274201909301674203862855075633322640833347439237079403737449978381380006042078352673178780105587299480585851741217321912087928463957748334880665983527902323332395791308032377864425155914750273207955073902988312992225974241485025610998277070066314294300438169460151551970272834565609258183154062406463361100210461044915997242457855731483126973792124920832983552333450462296081869320116826144025588293501083110246892679693524284812030349046035108081874754738353342470200435564750424564983427714833251246508890540828814023857868401899774243100896643013931357758363798703556954433436364687514444833016577176132497362058271716042071658773746420936933460211303860077308914746106558676852686403203953368723805702129954756178585735691194216236381636791498900296533368600515227505320755894998523052451317326069321243829446383706258899645306557535365995166147248567704634199085384413683837010826346684398999938417447121680893681178819811778505185660205019177313309151015688576839131646021469302253801185860114241321425318523158450680406417166519002102640118879695880365763839961729651044614741270176468871021529452382884587875963038677007333197555279186637932955531831554752839873050478711239919561565548041234103802027153713460132858581309467667427251416367063504302708569671917044896554525589977620645582808433112458669773392056976531655707401373755163012831215799901871710166977772859361049785810718690343454602864635147546082949633358259618999636078186851591889396821249511461461035626735222235119130734827772892971412685068564137286682539432219174232389827317265552257927875078343672749479282821643129728967811468856865688742134393007236280421988104047753632045354553143949811245964918669985466896839169921559854041501846157122713233892012159317616237848800668128711284301839766520029072004101153766854347822394093713384176118021396795136209149021474414282846287229488450101842656230663743322665376191783027733363508918365444431837664057742788525717485435646862208973232502180137794945340357409923901537827671971391460231069759569862104251642953920552021090305439645131108149059380783379071313543621982791626702482472729468902449086564665658893738839935882842540647948969606127819006588294881192034683400703485729908324036486484264696868449348785726724210292314701991233186551687307617226268743824830397400207821400530408457140938776741446939401574116305421325224294496928177893008870389702666188875290704061729142399028355216766603356117179768035404830931640691623219716094385171526546049318109308639531964667801959516209244742000983859008813951896563050852527173739554939816579785095145895035475731444148232247184469701733916547884150074031494413997601626113268340316971643959073392312371104478201490099678564568645451170359750890008966617382473274007929245473408278775916427322645099983517663912857334646757831420425616906782296614494377991167843836643319442245442198838782009994091106718377869407931967134347193180503680768192655620846283772534359054657242522393450805847335689016604850966392402721153377810467234446869918973633817358767515079577070371606756086747373549224574610755639456325197587283575281399540595997643473480966077492209419714223290113795198465045175330796246416633643225760109775481783913850859882034773818357284827908438512367507507126162758546987611313440184985346908825387363584701286859917232588974600623506976641539916023831901026969942385681843003253178284564433249923450120638867486958609755680975938629851578447097478586693523684685669081359952346547290829414808493043774096099487114400885015078473230395468499234632615957641538790652989321209195714337725949342567039484943767312686549814880815923412164148644088423685988417077459080232497379734197142085378719206932142943276367346198145201805475394893067989648358160648198813081380307918315384960232178988143443329197046293919866116531089954066632939427581964341023013497234255911261753975840779245054444638414656042388556199802047920752413327618515535030489699817232105638024284663859668529888669187026520339895603854962664333859422681606715484710650864976271092113661256170762807626743907850482207766910445596302760557021307293500845363330467465014838159805548346025169355411131196950312202572473876557221424149933268671754047565561994732937906887908144016921237250354997626942060989968422840503562344688220482582727731632182195543929042185692321489963819164868651070299931776158992766640241973817494575551991459574242093091533697413092797314957496601526686854871004842060486706864310221253796227566535188025990141864748597450910244052326775787376109481647813136972263846469606554232000502142551102523692168833054431974098116709213128121676765660739453680534164669527752478687252092369843948392529136691401644231770243527663735931307275645355157754874774288547977344831509581520312887130032372003739089948413016688730091277986431095233987732799127708311203379020593462274407643697851294015708104145174961618644286668445646936033342260257258335535613753555008502752931083708370829625295671221794115657854169286028326628028371585937850737919124479756372445379420147293199580184391831701001705256272429091873596376235325806868444935076908482268173827338226895404872936856552664012834197606135716761330502420064409127429487400039709525280102934581783462730412569821269388534242217535968679355381825908463282130902309927406300675167058185404822473223996574564503947055869976727926374707929710550391593447073055366002727122359617417879510999038246063844535986125078274693586229536052611527030602702023583448163067271721471700960463235636749845993898773311656687022180146059740635554178711078375184683921595078201863333245342424041310018395850442163304951474417642419852476432340668379396933451108990494628662350061939302876973031923806385076063755920204403892844918925218176881914230781245834943887979741223924144314396201332390345088607320670307774298087132327734428052384885921464622062900851137693768352749215922879502110343651583165263145500752543728237763184177061155089464394281554348487999438104474881886825432450790526421112982224219266447027797297633043484283310150193491489162449568547771322890106007411781621185209562077149432908710628780095615580333562302357588492468075800220612411920194099178873478194041189628494122484200468598098548379903589016572454439810545416258210352393610057507970545572803467036491921297434915548566568778102689172846065015370430265288985270274571410640941796597311819300994287812558662202657329274414397715125795614063037612019523118916980473207879646520100271590050604820803949547362252984707237122813972117846436326089207623571446767969611320994789786003752560420413559776597353986903281461730245985342066691213668276709904700391580948004079045742584392966593653265455968471622566035906705877848897417698040663080178333182763795626849009108455481437085788326671752273784711227145018749598981903100608993150272311388260369405222698418272797569694076469268796176331611999201881427672586786121467584190766151146477743533137852183229378355902308719151666176296691600944307366059901599703533757474423693621974995646159540996881557430653428815373520043355467005862464343580743465376659912132904097897635502791702991872579015640698370176026520218927731106929825823480596484683547797277325838989859069295677586553397980886047649812950094322786533862878677940908887917816183182560394376115905677854052057815615084611070348265661544950132677003215511164292894756088756703113929336537685613746302308613784354167533166665515009858556510452596190432864955729658644810914624390822026414471287995814392837270774796869372354093649447242254410629126859759739775359156295574284517460586839691635950829447779184464545000921389923776408897340522691310981479419553068786167599939473856192668446829203130951357709621309249251648200578965104847624909505592624450139521155470629851301289956912375593665474453844162395882279832022443279736824059126127430241148177618217419079296313021637073811923913281749555130627489587927579254843398265365955234419919094310371348644903828473962220198538231249570351819348715212557351913229286336129248614255593450964445823382419448734515984163188548924177060918270403783499091145878555822401099432557456298630820264668641093271671104158302598165668870531547435355312195880999868156383903863452192342620039257207131191556851965754806484604185806017446945360247751174433881100595566279643310979185248731721269706773971681594151213175389777952668180821786533624844155448620895950813862926264333866855970871076270519505343741233485552148964277705310872381534372272923277419585914258295173921824076800919767345302614688496253900296071961668069000173709820796297887883533926949215360313731913009238373175533924472637121516815713245848260753826604290382574041539908126848556972474772306206701549312707831918659402659155546719823847505230432945270546078031805137943095542723405025553832083606580075651426423565494540833268989022248715060612070608018101477935348524895107391220418335859228321586447740007481342472885297620056219306738233202485133182189420588980386790786398082100448691498403061172641830620558897936737564536997313196333891033728797198707944151538275030536844195071118457281232950321625195945345009286235867383727500278057348862652436796736857948196349742290510650749300560234767091443297581015346197918279103641076481462104212208438913985971012807121014813576286078836224207949061060465776726622315459933010180938111855529318616264741740803637094110650725885618139180508483112935360635253421076528373843957936918055589613334053885311627431817389504610221155703041122055148270771111969795335023353931434550360044039034146577700648966115422812858706332342183049350727504619009244143226854824589060255772200285365251812726684430073327516169326027809437382861229504271920947403432340755220829034399131817919248817134352454793189101892299277584842020130712965974441923783986821949164132956282553457743337618996742850848997985404675401587854347262415272886464846725365755794846017805441453770798465678641005042853108711965218485154614460460715222490308931768860561921902906771282585315788734861165407605778946710272307856974605309521220044193052340574969874607516981069409097276125744070253006416337203415084144037766109583267519410885690685573550846363111614240744849316154910729890087779930731766005970999426445673254593507458377690825269396790559077264975095080459225177263616370571593884850196752989742064784961631208483851107837665751448930988735262304035815346012926562769586293230558033024266033898694041566777003845460964227667858759021419013625830075202513541733396801090745297431491171004893549404855662300960526734450313636439210079697729912006067464513000255057687667588124944493182564865506233054781629255288425376699922738545004789435875842500816639915184626181289781201843158494983281192950633423539701679231553786583471686132590630888438192488771088122251134592593664347363429142700577470237197425624497277783612362676649363090792732626274021025094720785101211810510281186098196563669717305976534645675663199248581803390119348890342598972579777008613232597189436082665177358050891954027726986161540645616619321904684825284151847149135888769050573355464946819699530635186182144970379278599368314418748896682488695369102573611962232745580553298212922175118870097393564388929086857301572641664816249034109559347645128240474564353254435259666012496475803832156937565304818915503114576083326431255495740473303556782648582243961197708438902762051910721211721620935752266304144706193432505336026995293003518494247477146767717731357077398505501380581129912496950876562599843847322043831970474267920938564149396019468995840519514654501891390813891331158167557553786377174556595636404550749601772104702480106451356816096761547093396039383593783165153209033149787128753768734683921077606315097823066560747279313672777282215544073643529611625060154260372767748691622620508667146762948515800547865429830196455442210579909002925127343451418838647043002941420108589887291123523850766725498159470708430873737752064540054341927410197396873954961815533580492140589533401610199651106170346383994867780723666874529667877874647340529985617749807207331576028692156317636933745135001397516309352264766626975350230073264663477741353922198749876771507715019318825052566142252438878316965819824967855007164448141264930618705644507078898261897428783848531741122232736893305315886047570709359250255112981989703061404372891437297099677080887046082714304994537924306305780774725716660075846581405462901316455584231339080887501542641710326118781989991558028012810845779924541910704101521461424761991889589432063036632555972850340746278846034507912589192612587191300422976139979459438698574534040452269925349793625621488647986223270095581984500986890034054569126117352531981380637565812778441344333083644045381784390498650166213674302252629859582025569950741281362484767549986080182192895699378607524988747702792369231875950306865593676827187962922587279965408569374816078292473997356526025500520500565938362120996400744694542309258719275768102496852009907502290201198315051890714926039768347528336270802001454588021808869239891796156375442550158729452141623131922024539161821993648815726155226751169107847912147250870433666521821699061635615250328620800539685777287497725219279855955403915363147751544906177906239474342262609718450456032928207024039075141169991224746899035270573291493192354997714013881513664288216334385958343998891808170151181618938843591888294057346013596886682519691695691776302739616051940341577127962185363638402407022452810784713910984835111368081061517558305284367207206661380037395989409275479271752808073978907292613852087231641110177025777593336589588804563050256906580843465365838139226532317874224111039220892324805851327485966709887811413201179490629454251279143047541662513345307255294641137388013111495545767754523720690930933914151627950129748106792236650211337055449141955168990395818737425188674928774519126649040267127412838728327555362924170972215143798917252762451192008040942917990795715055228315569802197380566517473582679056525389628547780727052911365039447958296527805296614181318981658966586195905189093690114898952764275729659783334649121960360168980763190435303832422393533354776180028552638801242992701438624789606072034580812878163175118745616183182322788815185871761307878788977397108060201651104263632370436033379365969021737948138799419243648829804719649681467888592885598984365663657856093278614551134615324154210102016805636457019884145259885199403169144760055494183981137025933619857854056023378750164301992589763114277311045875654427168726777916644342745929381264508860842322617198460666935912936889658995101434499261952693905369886550090322575082254649178757946223162779743069319163536000801478597574867479680845975621121129785998842485188178672910213035730742350793328035362947878724692839649394212665478215157494853064485246751494726220581244825013289715708798507512759315463683247199430512867598597761437214457638814787039320955983811805615405792701785028479356983060768389742798198798264613618421618933881614639354184439513497952285587443788307190749585633325130666450398699117439801010065660154074924464668245883119068629928649406046233075942721215654924571279103561406396662449919594911727509145138456078085468126862877479474775374603963717969546968728749362704943192015005580962306413879011681114827964399544602296214875310511720738407719285916724025001999027968556140117033338762453880794152116602533989615633519640177344558770327750598183159697468071116583919148394644542777659861313277049631489569104073250559845875132209910850961975658168377964193480323068791265022875966167787153454710358934213481871128895321103600013791812663794617598594891012329966070047335592492797996335660969735280682808175213864485677023210148208334915520808013669514361836914649072557619354552378820505993133949132369167961154247803325169943683660285001385621409694636051436643372450545120121581201699474020765262518451008581546241871649529036730245768446005509072074951417717663196564966728731194142179139959907900821488269442710212935438570758231132876775526950891235726576331476797724309836017458748958868837177529366616460008412196447293192290735890681931747371673590187941924618952401360696567073152149987818458071488927671403234802705359009352658164864597966182186809447633561595782911151226560398903013579779440942335499354200095082481057890470148189823178280483969422100753240641919897067259684323229706569200249005155984850218188048148595797759394328369881097833963171675239654386108396370947501861555298738195887213492292605028000928550975842755051295377245191472402384395795109492125429191353718428131206788602214283632907690847332387755291642686078285901989969853911075174258952483841638145542891384150684457403680272279633110706855361753113566404780094933483971313687313574985627990550418288707769104149144983948512214954899758394212909928570990381844826599481765471819828047150641342553232155209090576614821807918132109310301263020481332734105333073850232027436422154357979915094594114064195455572739772947605485163321790485764058585499672600411009869086029197851103632322853251854273124455764861012959191075910944791975727317775695390638101776269225448958818805232495732173647518396151729747109665464954359167105649695184645616038677155146330545245608354861756453744415845482839078470018629325008240237503222166112578496772030283978301842359762032865850933807122093655437615693408443651812053813154221827749430674379945133764595341027190881692065728295623600281237773293276582335494985608905155198310742372623412323387951378631145680098693873470950477942339031916459415350801433583953263850697508756381365327739429514830507277044644711013325281050413132816771739213902669986141238447153703615499239060731384067458934881652818770954075484103559485353671660285177271920984432321224226887124044888568334669247561551174720765161045048512479254801095808823166686151815565573297631675309011700854220565059945098670130992094979000636801327252407366171786889653470794644967818723085896168789136001897332649992798604291035952193269555361577569984045010180104470342060959921070906241195449582811510133556615703071990990697219285766940421590187197037633576266198877026586075293305828170359681267378066117433208735751149636288418240716884237488519946032416579654786563050479901016458279382556511395277475155322614491848405646208393602416937607965330040080777484908100295633525703931371327892377422899197313531058319667514289196368680980807506099157243334173706444118348860724148835701496132996613443422526290597663010241523149567541214418238355471885628492812504824851732668954843957503668163511186949488363402211413093303241978930201659495868995252500902061553542847384128137389896606236541518165663814585360702326747440697598073255117617306460240691472084138995078464927242810832741995200342099772042844030935223438377674738233240034773750876826585733151365768540059774070242414389940521379575026616471986531058381280432162694077569876873396165760730257492597830161435584473266289505899018948445178635938164759430415612059999901463499907693109329218230681760478645602739997881619496027520050030002141798857104999140221323390565824735227390979933234862524588376039858060855739615042999418557380600015614147010262930598176676444508616879444225874342274451327457725292980568857581775347995464000774294186202859644715570028853699421430747384429683001572522694153316760862092414238562873905617749410201844160594194004263454408274269218049364930615132935117632677501930995522475310195505311325057847244456376280121849484213021908613770719803073029905924002657673529202228824065026818965523340678511293220188762920675958868504806529563706019349863168057617402585142430437727321626508124967218983956933457428057832607624366355959883537881255965575232220873673255793653830038771817776556235716863178600280757392973995241142676083382285667481349576594813240561644910501889010061586800790178220839164025568697055770974549568967576408103421257696307836514158396845928285228335338382581524408590628040543625549376614901944193291227385338587333822223079791232824848103171028152611533108336870889468313650692054551353761589417431133585347147309790763964614674453708573236322135064177910668101797029442953208036134248944650732290384681070792785809914853175904961825221500820195109621882687126887499974960014084888840959218864751607195679799800798932793047442983699126660522644051872555605777820914875737755363341010090082884399518431693681547521325545099873125143761562398270921679147282869432551460893217150039534113786014233707762724326545834191944523962255815784549289646188109038445710018665146993521801303163010380649299417234961199606842641841554642058270837993758136336069280730811098954672979576412030095347724396267618675617016020655406646712362227519875773936450029287417131775435131729935205741300493289447070362883212325322988178023968785358826148583774329815357134842445204209496100447041370878142872796456786803037059637483295215370100660306557226930583358184854811214852337212745698343226449392994619214082586960140893329551164274795660433701408084249452474415761512244445948286524117446299011135141121446484043720996710227134664191655378095754190204668255535881332393865511731942936589851639246300243653980382222403941649662499250486760631673975983607460666956172416047581880011362830759460339029683493463450163694611319078996377406909442766639401478464686916414648822181854232942114889622924501393837076570816915319631257514833630930639758727096230440092404496719641360652418123925695855288524667039843094386196621290470126599843342784117624649411474847559334373588294549929627726052356975723135218312348968563278672823529623029892235767456068886728732715284119056335222264212619945468153347747956721857625624844978934720088875338770338044231068932132566634701037496024304831147631943343582729263591717868318417271674283593696167356573311454554728268081467282314261068313278160800626036342540272145545587184193148957019511344703958245085687023552579057232688418856621208744236190720251765771517926520219904275277880888782860632967084779134208551434139362148737365686239435737540800020402194763623561317984049773645630291421756134730888742698027169797659999203273171357712141631720747548887174368940602994243543985984353386099213707579299678922116823661594867075276576134358559036725415320803143632873930879353880889280796294853381423475482212206061105453190933902466982986424674379454042514478704837990045293679587235775781609331727807498778875400478492722063474392348163615889658675284057061099482650868045135353744575643709874479906921477592541720136970163129438140813798720910769611007859044054555683435393228241625389819570241903343167880565515723517786027203918310686237507616692913924961725769395914251295424411669551628549731710802479136110478149755110215737261449206889972165976639366140257367664465543859074650177160801197687949209669815739095434376053352317337290735266213737383080358214329386003113222505229952373203362751600597545944435100325156275898332792461074958703660663440484261983955155369705181072890621360906901618708611479135887823927638950294000859615761215368226598342091283775621030089344492658925061708253952046634647742810519574690327453943661763439264622347562217110727985521916923600563169093533482392349244486450013372412602437132691731335246375409770980783407931291374644728696154726826941582686844701535542237671093558253217520132799337847279427712576011389059595173713238647365897498361188562944762787153834181600282834613560741757511998091936304030826412107389396671914403361689513649915170338813642470069265947180395082829639082774864420741365473606851233971690931896737763709122102944819867976170326108264643194885905919474307264948937225722050594281582366733681490628277443664006401068349586813948861561898792647576853095282409467085367981288637879194147557268205627927771653259184495874415608989803095071016123019187857066691576556971384714595485510468489653743145286396469078845391123965526602060366844512760985937432757913236143650765389531691068368671968229553959816387286242124755380334483681512730493874708428451785234717047038047448969754283895749163990715117851657260398488281955650009247723867461761732846438625432210738416784771999052982833657642270502034924460425624434292272845192770170006396804507663401376065140323017194652854581249022732678527083805904302292176220455908958289987968366553798165887289790827643772017759302618947288836908665921057630701533749207341811506057548307238141433609518947394299202150730371858435271184128992952867508450508895450124152848281233958751414296122775808660501947358127423813075031295201997438982462367631711964829805450258767559915730730855744787346131509057014317225572954963374555241593389885780449233765705669516825106656757203974212726745182527788694681627143664966711436764939143218005478177313544522213376481627456317274620492774092188542056294174504172989755657432144388470025920748110376632299319431615854459576426562556422422802804218088288127966950197847649582966718709355151651564355425816764400673820415351221367182433038934279951517906012620524859826204656686338160638061328110250738348579110252776197113654517424820400426526966815494021887270520905817568736354930816067902053197817143807161519613539574773409443502811755701442535594080821482923524388276244301409824175267609007724940684066711430383814376513404932014803151452581227044254935691917548992296192863148570261069629683114340217098508830466563238689245001624168486378942617305708109661190331333880146853543515840231313569338310759205539043068839393198634028217023034325745810053966767092446177398966452069251442840052484663164143845933676548862590109190039756137581906643017709780304651966586945444770742225694533848508166427684426255933848912871629374116455801183739326507389376692321357829246613863425364325465597069067754673919867717953472561022584808416273504489838968342494187744295825419532132709521099337246091832547682705179378286896287424833260062136239297891659266216459712520252683891957199960610818960816505379495988870506594207923317709201866784469360691726583580945174008331370739138638940815489439149219464186870941325257489252484967643495229054030118491247162763503076477897824732408580264996176941586768935738364876149731773781339075900772682448493673488963456060199347890064668010878602703201098422942119539298036680288152570280286653361522303002470394821545584801259317444477470978189039555809971257397974838941661483596797603179551113654058602236233860008546068124249768466053415302647370544987803779889316083243992144840994022090167657728428352039753281797846273605479461676062829292707606380574240419662870967187285143159111007532184284848750776892073225121762033328896887107052798260372032854253860303350260030014390651256073650883212375730509826743256770342476980117385488058641413484734390903255361386577864304191721417164829900169759437939463825360229428378899737251505686663336550548605767927793093155333905081298566475479287880461878913651463440195822056499975422999719956314723175097172746498277273999929606803981908155931073957995808889246198362351995083339424007822476144353991729019717691908369688816019560275062516415627155469667575567892163981924752635779908364191962115137567219834853014062724554412412279630139875960731158296547292900361995988116657714571934078717334064915615668104537539208941300503072687274955895683654606768549380845650011094005409795324040545703328126613922344797386438864693635524337020479956768775382022185296240794787916408000913341237110408309200354984025078204145986431761588856916397492061841320024007520733593699994707542433030804133105697373332761299654105615675837153945021336772278439975617816042361970736392763337248699441020667763930906737089789551105298773498529699197632790803127195383629018539350980110441392259419523654241134762401440212392258359762024040830786892835839370410007483043480301386645971248645438162876242205003828167680533476125482420476075963628072597147509920007521573607878966162925353964717216142198195034090091053660221023588123377368343566734698551647224827835436986968000916903029997051786243852205384141095334995181488613025937121547358899597738254060229270430707919535650812979608225958339581062305318703718091683992681772225470530553401624395002016422368331555920853506728601174647995943504878429111454103495979691518694553023167786514592066054846924782698561512428690577679224672100898009799768533667811579840826579874289332898535262012054965365633073677285371176993271382053927261867431422813563173982773616171831641258820022115484251892987437331198202861289481421336035176382623538866616678880747114833210687155513603697683436800734288784118988765907759531640755906283663487457742861850691576869532632862145362623771199798528656723988717831250695380845397536842165801446709151269402567283664853387715445036075316836126864842606230038247302998915324921120935189399804649749895753696441314010621750253079560838495405795755742031433504658902391604681142749056769914148825992160193585005065742629005377958927859558581635984258126502486141843151306390564647984392473622642536563896831834729589552304293047532804558652355045886958272169411966999260383496544514305767911487054349840617746253790545033564731147657959442408333453773424213760752455430644625852906429556387959735758933411527449441678782055668152256377397212059334764319881093055795268778461149665922665079337434160598082881059170987099058874843196635691805911685522070987875955916807535515756201680828801207208853461029094381534372936229616144456361525947231477278779359317216795112661857770370895945586985850008886661430864129444331446778255085413259431525753413936536623583326312106942954395458714686756343080703822807661011817719767997885052197336058757398957110782627438862781801882411578406691326971722901323064433611296427126361518645097069064389857656579420504790831795143237952057634601070974009437253739448257361124113668056773885975893381088586623238357847385513989929073854521264130195436920490347260255282424520025117398647132889987850719545089839118769206376130532213031129388595569089275910734943995448887358247305439048119622482270808008926592106089237864692585806117112804688150274266242273299679454281057355777023607201548783346397126627578815782076021701354465153550588706883079120449540209127656309978500664553362120406357590231492755989721723246093978066258237939516116716676137596269237484223871838166359842265624656498783828911906026831877648967917934321657306635570672360939216989068308340704487655482058766425491975791277522757236168941510101157292574496743335634592399340412478909597660601295382134602687666689884711847585652461000128757418609897051822358362988462886902252866096218343180862607860866115672742441584317783372090185876540860111469678426485055048609280131292740573727802622448829592735847685067786614061580536081942725693531109052698193185240179763318296992657596105561967475779224875760808165197372740342811834225912492959509115311543844566586775112437887033596519455371238627328349585346698063374860229444583235350575774554234191931900519103529243160945337147481411007231804447060789169992638943108247608110153634056090829973920772849425516334835451304310785281204475334190503088357198786863242870100636784635791721202530027412805852706205770715079912900423162109713328593034337922162787909978078636685273349482952331824404364110080996904379487591747702253593364612006025645516057464194005413762626589911231099099912636415563870485058627353495385380727423233614278919142366144756877075155858202846762119091446342853381773903949009117604232659126386981533108155902764409503843634551385296534288932992180973837301659509317867198838582171333201905596785679377880276009494592434650478561945821887409778195722580279220615563115232462886318468132456437247780694441055546388274854495966525795953450596366776471431654251643737740598541493887737926350391837845485282729176807452374892980158956681096701664352476450076797930936426223028807347961037165273823266131071767801959271199787596782273743450541688994088261774082584752297835557240260979058848109206613551764783591161954011942129648984389337153352328765186645138423745102593976568864541921381118983095991173984112466409533624112490573345444914363030970002958054325853237724211531907999413358261082460651795220699324647355695675057103773456441832887929260495215269090807694396341186157196793160960985862007997354042990231366246722330124017465825964965653917135304837385298206546918505207724753493346251171173111329866813369832871948241790336360082677023078982565844832161293134264705977627311640887207061878200832986950644447922106248715277863648372368138342100170371501330636846699171594272781489212787687248363868968048137987552952452661812677219769953938724319808920075505580999458061945961640408107199201026665843838302231102646459506984143522385469772130767146933666986592493679977016527415463973920536887468118194066598764002193474772810092047075291866054704459219865995513860397452788342754901397021898839140225824610439161823999266067909761115228665953051648248592676338285547390151146217996748498986824018865984610357287020097904248347782694577420811096488613137888994981273714546148787220845203628481287874032306906615586117100931542754397599442964718225341050959630432410718515749739402724390307477752772312220077473150255596489941444285427920181944151356358741763294280053619847271605810396275186516866699413716643219917137697531162901491059192685675309790272692908752722929994879245219405539483014631840286746031926182501619149359418001706291244411762604044658136496475702261604497259078560230335648974671323894560573982749963649780726093513974107883997031550550235837555831365230772740563766727548102709461669871199252777662949444472061146681916205839001413128331158880406176010452859396180466737718237579335594693462182031148004206028188350440733495695114551449617598942915952033160747721369101319678759988645581315258261960312501343956862208702586616899882567492793806448127663129357639551855458973344239221258445129551192841072075424272033593529650030821855857115507248030634248921142402451947263418705580298370562648441747561284283224798120511765766567748178576295314880243440180278908796814810391753185274536246887787826971101377691861700110077680507006196094250915099923351879271021251161165299646825621904509129716910736717344795235224998721187677238754460237247010688266867790127468622797690163633876074638541480459299224521867628202597828399682711826344699267849168925794886680978369381227678027909683965042535431880930553251616518312126774242707024483964963546208048313671384406431421673405797300135920847074411961372220079683535922291736886782088853997787615880076434955455491548315008563145010783208877412468079508798598239925819324343520479521176840127846187729457377967571428385194144067378192818174436118978454364540769157123914142976812702865960364317795609321508684154200707021675824750858925728899356434380053688931178758534491130209834046229746881640556054088345182853840625129977499303996171093785627019668743308150630052392653225366316197202307526432988612334867917786712406590566277010793118356444016115988197169260600222101461580030813763494941324985098528224834555260277173751249266253340267360717340557720937525267423170284882701659654826151535527206472023740078911775640430716743478785894170310254913917702846313895712188758903802382481340240658632805745178917990808856192871030291884059892693832149507057241930014054271553786718188148207609719256314287682127261528712799974424225665247616017831523012047660174291129773220250543227691441470664114525214937063008170725813497137642331798102592177193200137514478704311718306588802681694108342095753761420464487839006282928485025209393034085297865470428304008436678467807199411777768105850735318540547630493810090112498262974495082491504488081827988037771764438222831071504867819252375833069834641939860081063065710716654092163492365483778586829671169182237420510500753187818847795854738457228626680560720456327992027521827273946895749402719604747280450522515467022858048220110030264300170080889471982546632068224015881746042257705754098223318330223122802208533674481653821679621267312964860484105001395505362622721105802593545625549751329984368363331266964320864344809752307380703051239927850413509500725215013452346405654863052294749158139978466394091327419441508314944462950346780469451864434594240856787986281027176735850477055412308393557786206408474669003568259104625767830501288577501640985517609072344707648473542409636916151115259626562036471272792230747906460618745352952514074116846842633784367437912683093145849647673267367904869809405574789754221481570072754935765504845898396945158787039234646914460425590002656225386780839573748883801216880216308135508197266852349950239312794573914399621744586797335814823795446284125823022727626368406026675325828824925959753510866832160512662574339543226281558307033098628005239425167038513579103653500886095966185588103974092509609975247321403005411431983741995347341469956087083012325164467114178629875827660315728366515825887191125495476010395692644254959824779500992741759546952123348143790228527936111684152296121916198818463409161569355001338660310585275220101298907674807688193830340115172198907456563600945051396708661970542536240820918330449712129718669962447677044058588246183368669157011680656360943782517844516412200487789354192700536070757802485511028815112453334350068245756674714291196333487950791951028233599690520574932763965629488579527789352138608776029292623846701661488120612346318767896420668818902397447762044288480103935317523106924121553616217455062180603346486653799463089281885073658496809441402691429788247182484872331120624534263050329236098157245178892745745756359949632066785761456389922097897972106450213988533837925865749258224759696045002806484411702827756973975478841214136603464862767707563286339221470306937992900007389495546819895716865835782407499018219077013372989006607199648463647173939717146098287496251832609752566478316095319322459354702027740371613616881326310802848656822972598794536194955319745204325678180659610559817313497398659655726758592840493373190933372651800824491426702081096562408573513555612355059361424217323156338626885474260537993209161318434994017777624095219372525945111319859378842288765983684961627119611072935879645694378930512262915048013038019619934741188443108780116851355161011292999947293736891789092570395697030798821323110625627552286339979950588649671322812303454235142353494971759372977976907853453959200003598495007730499779353248582959346136178224511683911722165536097683107335264569973858369266415911777735328564734125720001621079510376434059472939670988127223646705244427395987824826222171777777443813150424491302713555645945652446800440033610453152593914561353246441537533977784990891256962500219518036339451487513366372036353244480579895971192275487581237244269967365318122972051718755530111603715012297952126774853159301522364736661036176064585404010719668445771528520761277133421972948258580095425794063342355620117571846960045541797243541380727103254397305341515514812778542505245372200779483856694972790562154791974763479407299394094877721806583400248041215257062027727994571153629846769193928617016765940160884845986441209374404980480806932952790396730654850517464259521334223298568143434133807531090105191246315190118793703401655548798446912942548367155712939868898712580497101947068671849809063858723928024425810157093975971370813277851315155928902250080115631145894771292660970017870567446918597508947959342266084927907213876872957663070670131701153168341566021220623213173347159288310012818359069654987104406397587506110264662018157293969680750273242522020677679084098269258338098042835886912800725589472330869925974882808622932946925782067444798706895184057925223340928003863549759312673671772023188747095166782538158020202093178666801693190993854290972029151616381182732768992686223842957869074563889414315465571544457050601647644927406897383780466660030651166332251549087576144537657363119854209803388578679164073162825430009573519902376468993682745189284095671910977840584191695097124139525787672917255727698202644945470733255554123679561290401671458016144318588515526451169736251826839054303065672264753222721225794103072563453690564831890660964928733907918060819006429831890398643867165254654931744765133049335540096391254849643142664085911596885856170594102384145829903374837147372394023211728997185850800846579240339524041960263120859685389053475147878940960778640154458329152596064815219184210846424065886907652691766680182033236911685898663596129062915073728813294350997992473291671814623144085226858883146848002364107370859000272948074186509706715505563655812363359324393734186411378121706812539638478403630859742277030539710308281678699861908729008138138517716448675229277041406723262341844821418977205367581198700207195002324914842252323650401902240767766660981664988728690415750205365558967631225293289643736206441478943276672233165395757389212718326212902662782088429109056887389690936604754850061701528641692908491125708886875876499700026368485022762995513297776825512465613201439279847048333199595338618501471105457246490222126083826761229115328160884595826568261063238968131074178837390408189863729123530161293771762239052614974791611633516934209510830376100174110360919312946988787090070670582436401651690663518743053459990936963680087986602226513639911639911335275645583907066845194194168322408579526037797161581036688980128323317652792106521992861278867710677414179026400917713564190358128825438282031261644161248241320681872046516225036464030739455110784642514736888841168301711574156013405451383530690532389044640858716726817611557836664695149960979522840814614470326911094862782505657488455215699148274362213250212847443736064357873968172163830650698608781384042243113759064989825647194865180481491811801976095690628736719554596667549603203119652454651196062198170380175947971028275115900064924397597324138137070481224013314604573388853942854018544386372084611287766382323400886952541058091287491752484777300150394740886242612647295161963261556885275755595369331698078999656304438449082499808702712066012510936296198641707263067880717360927987777045112459156631133658916023374936451075096485505506865349941141574041610075849652230086160603602535277406069013371683629174309251337685511861020611571854911778587528551260253724875564384470411192017507883305499595700575561582602120447003526191064965839871025633708763218888279775488174497806958958921188243614909029257800350774885865218423376520527917269326051830806091489633904976270534450674008120086238475427269341655388097609876729377229347207857579501862718845480769776112150269913140409282414240749928742581366194239211663306561635549963985566044855508615453335004974359207763098955559140813028762118062683687826040321735763029840041970738814908775825429511243172532563194812072681237093411074287274301619992537769646446433576418116653273356521280185258596699268742867960974152554184799015288588204843946404521109986629084980829221835583953805202551083710788228741376133440618923059904751126566051070967090534458109518496512496447982219864156822077775580568333868813160773664679510894263144155286247711396934338773742990516296736348444527311168764741069608133948188824536553540595142921085533135857466909633937442079921303315777965847188864070387228711515027456357564141030633429385474701203504914241764127446852140475955025752174297531086521183111187780966529166773910488221531542881725919951649976841926727072497531552161778226458289757288487633919949000747455183706045066482327038951768727096400022431186556843987853968788893186108897121983605510598549433352267957428628218911408863620719614193829999045622823077486358194615135425836699545115713685153408726840864139152674957094958041933981581405461038065123340268735659862049420157097354049086106180460778267819671746056287578552718627879598002283972507539666335664688138807693704738456255004315682908372919356778325446221507652018656871250463059160905736853011091271498307474593632011158302289290024013306349474589622021062372732565879513136291767874425239165840638040825429259119067683640696683721789714667192349057814513428458794178628438208888997183753355663556453947574161005467475846121216140487572980181579642344227246905432684566686028922665104795263593308691534240932644051945252343928094881895650971114810132156887643543523360603063688905953282798573911380997483028706433231944786852272874400864870721341601368029275123605478379598812198166937851163468444625203941276427410872761794099847441324060632062547953315695816513526807037217020100294419088310495427132486002370574823680695204690434635751668225905594397828313719980483467695739182519681122785360284636944037943861379147345855259663218388122475325931170378499946831919438649459976368666810851212962569524394575344644103303194110863145871996709785874228950940331834842864356245555093548656439795096166418748491726240975006249969605303643485894098655537957125669444151123298028677310713582367966649970837104928910375124885686202131334151788304224305771272145638458858575409669709081406671962389339094705126579512514521090109911790105733625321660572640130815194222257373416580167995828502481235042155569859805210321988388256675530404153727444910683435969924606597047910087513006116028183399460291527613817031313144933426978309352657482628539259581288896681085595772607103683302733336834267924008743588371236293172849494896318543180114902824186398702801567524361676932615831342203450526961321674385974902219304102956250538055471999749952753788457111431677149264108707837973647322946268485816920807853364682859931676654379976729985325452599789898035125443747029857519340525366088076831559002846613547859925128269861609499653035577775891654458804447266976366958344474218235210800421699364232778106224625480506031168314437350860207944869420216448378387037825990692669152144935838118187052421168453830918678341708892805930095714171800119565789718536944629509507675124501093125169487261938721220440566330305185455600816390105492417300527178413434808269101239340910008205152819808608917515998915644537408050966650325882585312037351395054491326571328050473064890497828863863489505754699940747946154255407898514941537272605862224512466676209171198726916588991900602415892994542881367684441459911827662846364478124116048767610481425669675816086332724914014397657080266618709918285271132480116782285711178325795175373175323811718676388272747651859379899979593162467200560214955572194482997200108114646936480408018079997875729205049017745659725338599939502582117019574564324969650091363247497259200334094350973682680226251654079298377587983001138433343855490315979993169126889897384021562814493769535377434437679378904883028041386934035925400424358836000987968736843764342917503273938805411253788140002189974153825987079385399478518654243159607013497990194839929818157511051687372841497255065451540917415960272800693514190039682203659018284441900539569189559841218211961153744468346711060800054558485730069044864606080524205361298494199253798625420993411837988951341846184046831744945976823952360559282097521009470848067330264171159486101211412162783492879247659125990909171967318717014784754714827196459283124889352114571511303607496094822439432791035990231698695727478822235288342640475229950854363049039214642070250695160264718640019250436536243333034741907550800190296821439469214318666542160219399214588173074158136650292414959426528327787468684414952598466278456009647031424420024480169624871137879725058549739199286525722596812431532403139057991750021844024727239201195763675229595072001749282198115191271986318738998153719821657326163416884335559938157855681719842470814909228625728295636233158874787614062594753801954963174644003967612546063589597482451875433645284450225482497922719325718010620714099850120496534478203567361441431677384414593053306898944116613839948684321266183967218230746632654836789289050139199092717765397543162325419544851041974226781992531146842064309525915367356507385505118633093558005442811713844011248536136478292965736238904471985121893154236414918435993169915344681616702663937849847438279788277574520686612000041804446229713526573068659870944554736064415819061696205677444098943114804746451072440122666168384844149955762032705085128853213246771560535088906666343139016874189879064748024533519909807801430323377470049497641130582796494084678029144560815359767914389530788443762731838627902103284485091739274513842482982699578645745969319647907712454634912992676087625461484794734591177435430862968521388437114728887841444150946898325497607855795492556997373340251641381052515570078377268998080327277109977411864313660601267770890516660557534949468278362687523227227641227592133653532791199049672680990727089910402560203860760331136276939406635189311346032960386889873606876089990268521133376192591098761785699734653346922805221111000508269035165733812711613575807224289158772855121732015512698518451840523899975770653831139216738041253358743992069960411711775927615997936891234217717187371733107714317274821717582409642925856080634424517103828903936431081561730846443084311410526143520151060370338032368416810950411039310988668260599071823085818022695144439006276165120751036701499259796927871032622373596494289670857760298185116643056624056280061028283373221141799621000832632246432339002661411815852491423209201510436263213397363896172334363632566814020828124041066479797474050398382533414578695492209054980315558465209613699443158919193275529777574747738225224624290419094030150990609942392117877327338579458055225219671835294287227923852426196397864038900601528740450763823265470383818325506252715611681544930335102415614287607510795473084418304619978503458974638510752909269202541873997785678462588277984751216286462546824971798090051142785657105106116615889148254942823191901537858898761326760828069451813625374226432200656376669184264100921229065212718603211880008800791270683381898539870697536663421021501328711828168838137234229033166994050918112809581029749475176536205469926525306441507870146956211866097974345558985621198759711632897106375682170889944037398013437528847018658755802994710096847992001752660056269028090147458371816547517292628967116793155581026926162587761180180216983069445879234702147875870060560269518017729370060276938243624509691664429740309528369764718395012201061224501450376034145667013841640173135250470908449278819986395186393102011012576998269882753507645813579434473904827510326659907857906911028149217781434187216657022711001773378571648507748120386827534081470663380139430337354467207890604709819229948627167288680647327235872016021860501726636071446710936656074387035260389306097507570257718706665144818582528578236456017927575913406033776910008520718650403749138351542044944441375329751871513725558399210285914743537761134741954615660182715296501510431199979130829333329584897775920613514830985712243120632061065410499635089535310448120312154809560581987164677533860425236365845335467012509414845334339115579618153294630899149995859107142713641289480183808618643352848762279062427608001220688986422086561074361822025021020828724397605819984043617048030275336210923211310418971988647393703071558180248725839156449306366651575942311870390377449408838462568544628561703018771635654246398028947543886935505076219257623825651575201274024769556721844717116210567571733264892746946277968998627183181737224136801521503073075776701881763509535435351452258787542711049270949420654540039504607003940877330662561766583788858976054053552881514738899204587660505402819432591606939689059940527805444540776706734637371622554425768538694835820822992100280052959103609488830677535666694442724808454361546485693551591907263506960223878910616632952836875911076676591068143605532937385321250173949126769359385607405011952729682409374255004874911448901042487073921263614686234346395109408880238738462916918405685465264771110151527176735742239681513127198344578355510360488608011160741333814710599942101197818995704976573203461254139304988325180938800425911795030156895372392164033221845040218074938948527518218987402056251788207391606021024166791821729490422554595601828724668468297223133503988623750914190317329051237386759425449895449498610295395277897129688937082890564637448879066100972308779696812333725047826842686964370296306599731355010928059914021203684393003667434487090192194856818427146937574870001015525879293880456039769745698223338679978567076890568696927161647988891657874993840802009054721698435167629147860407656168798327475710545996079778995256535770046164817664021080712407899508756075429415886802429557178627185679834216888762574353545575603852308912358886515431810918158465242871647313114418158332302254773681810123784057798265728807339544116384505531892034476340221282805342333458554067207063778590571999026849581098743902825327209639331501227324330471354864326803161863209784322790855166350344296243792253847319217919643940066858246285348332634306648093434914333899719788070897716161844258396640320385877241657033394521941492725685446640239147696103163617554647932137021734472422592557133855356055517421010666684401733981549369644105400724784065650819811238888042570861675671588028482912702876364024910137549874980784237613814018782720156946020126890148210855125388108219621397300989635078831962523446934694930387486510674740398464202445772332904066974997106023408786814055431243815086002047260460936039449412683290473605999778091673168368801699665817140615026606561418116142881296678056128132232075373220452565706145683529648275931861456768961243666684002735519030435591426410286941176413105302327700011476682557416108398616431025399766046715092412703376242124756403826624343369014098579039873513529390426702009903451528315084815994530526875606166158019805173750257145956568891694765587278918120100742906083625989056615185550077952074221067632663344970953448748395722548929928435360974497574120104306713768549377019967623654404648453693397609153560972582182981271218706219548765072079494872590732583079008942916228744217174650492029447919847652339670460199163162275688124096729762550915596472453517736678482383067803661631608358586606214787829596917433154916518263945552739972031862942674751578809261569344754889518739799976423650288595230744738062629381843922175748026589724941568510345463407338343968453412887509632189805207827584595340229171267035561778967103710459829095530819627929223565094529792193165993441236699055574234865560645843912942104513915017293567680818983152425862167158518592950747115772570671814342186850022392149455900765430489454313101523142687850382621012999177198085978711621262566132524947783389005970600940494162451111768389172370824776747182352032212596196317798179270329289484849971705752190698094711472729715488452079680429978253675197567301164454730192494410781889567539242305970460305901122732112705914042793305965756447866155482297905986506691705647858682053186694293572539085561800131772456850808899340377983576658056532361440602544044697505430597766923419245102367235316072624451696232896469787492376751008873792671223568462207113485962006484666997382783159510033508647935315538296201782279775973991312544560140268588428288275334990611200303537444687771923172469434243808909526260748395168378624983705748446801022048658764058578786047448259333533180345929203587655233956590811689583279278091771186735788913626541403891242072609633494532385618500893954822740065688667385606260684449153011887412147281806772922175862761226912233742531536364607003468327779549281641711603174944420449334014183475759685753106841614855820134678001388121572323031635304704752641609845008354238178947183010729598502997347958658937097045821304418601862417923408469740729175769887184518152562045618165882277337581450812838015238977479595480582608424232819798065519348082363726816684721124999473221864876324391021551648968024075077980673823528489740904392422433016558726813278243288301439659492224220674004243482501096135361550742982931085963325357260680889390434607339316589019161319911328858588892167934792531124978141830751044800917321181669709455211571737884423991399130591929749517496312177862583322458645216994130831431148038707153597217883808138012008638464626500781198413743055075247002577995241338234932266702499340141347735689402904132374997869745688579040363093497392339946242868080432981868983053798899042980983299384857996008520438245157585652219562964124500155951944165793958243557394571600524916270613527565943065147107081503034431113144827928794937551155561968067787298135714421050132242619242138557041377762670984676642853894842931052027573305268255483042361920169259622044397153484152200817627598401340774113552592352456739308240504358514359089130120203063091791580609554841677159322500862504349422356973724020840306860429613882649421316299182907324517814604675938427816183417345857084652505852776688844466093941381082496151982788617035940268439037294868421608156614452079283880646257017735172685538428643017400665213967988717490378207390437130598099757933058204126927539105985802457919555096830908424398943670878639219676525882647140404713677116151661123558979957230047574228989176632392662945426452715366864252960829645103765092831088168498043550275837516351022630852990381563207182106122871927952651632293913524120583308520380455484393036053940707254441808705541590844663515396048380353190254357735304264470845872722155389154363157437925552292610100292087222357800398129557097721599736377299223910290340784198195290320990055003375890827358504652443438165785279040001852874390507851406603913088400294430346270791189126391005029395399054350926573201252351419919152523071348434434830237421099005812780698644875542380572689159902526161873293083647515713420739345152090226580713738498663093098780790991283379335057202908370855726659942138676337194053815503841360798213367717260459003594336324564597720407769374346119865298682834349575093622160486305777814640484693035247257085279169380457864454326831693545527150259011853914593842943984700935087923609373930029941895465179992258473441422793888672110747579055113115756881195201980990586735690857776213608052625281090956203557862203790344296179855734707138083632742910448369750064510088693185684599432196819303659513899153655676722124888755575326426910882486455062239374944624867270983109446596721519968302895836553397910253973723928679180473827520127403587773750724481650823797670075758267635158946819074073943193007323872382502110889456672849785420484105740458467656681779769267880824092660487221154792666357778334888914128472135189826752594017124504754188808360767699561187792952647752233330995677336557385184211084146889833270292040321473313184246751710707636090342431618342887962419315440876986475656164572721368329975551522252239928516951154001609986639965571666745349616470924898592677740636272628148576712839836176972794788506622445781746504072165380620028133638724256656890559431240475253510366166542826035752269149468983838440797304141700346820416396959514111831608074396574655572079532041626738159335385862228842705564468486053613971824021200952397216016497389553378920455199676418487883692239794756230951761807344480704451775114457277866980292511223105257730356623189049007009731620663181049685136171672278554537967346093627771266670651624271906298569096809811326422048706541161070647141906237943476812243832116280170071328927742386572958017756419661191224247001539542042943334130431196402896007522808281102420516928360416901552839321570730524693582313955331629999358483536049467220205012576682913061720955723174146928882143159633783323599869916432717795248732304687375049680096792438883313042124912655476788800136891999795927368941335839117487304960519102332129569611983970755383938990108957245093129121189621241347816573949505382050201090913966026746792093468597638387279908489978436254671771292752491932579703709018907288942937595093213097234536316095963771940472786503696566326783757145356474807205584255159036612445080420087834018768646800696638241962174935759171873252973148920595382655932964145671241035055239099199628883135378101921244735930186261862344552543435798038479028847178400771172413839499019950400251117885275987037211830698383956878298248483973927000036872969091416899747184576012679297172857202496687926535685665787921615011106483187807840666843407581417231968414810309482140573271610972069004253088475991268600500656250180672151209190783789612373638687749158062772000915556775736440368949768841779516392327353309825437175762940275817076739722695633863908629866989699581835947608752987815083053906279125983193713897257959378189548528768241266819195952215121351949962394931312782847149526172378425999887170021451506621753575584321667960524205501437726791316588010445401959218528090583174404246737725520999690852095504212610014023222400789829512558069556349393690117158136571814865322945490306013611970172456181890890180871952226441868504139307750787790286791543461043173456216600770453275308739362049792565436846927959899066366634147351485316250779354917444073878557069624194422587259743634075009050277209196165348572066750095778121578196483530157493233629176895343700945490725584466036680771992792569547393635152768622863019118040076097693894139192030090292779504156959577451904878704471946876702410902720171003112447960875463191260854704692954111284572991444045805378588507388997174811597541590410226680559878421845779217781711103582291995920214213470953994089475852731648165129934476334120833621256845768568562587390541741858672267857227306526424951745261288097852469448546689510975196334423903132549084824020932215346809984138178246670467461519736523913217754172057521673438663764130663214833811223104272163538129208424354257489679302358877458967352845953628834846681223976162739379289139405619718480199368416079526054465254100069690794238043360656119416074978250557973087705965630887120226216703891838574708488684825371155049521690894006160729173656423503678411729377211443897927119913794747410218719313955228034749603160210293735116331836569456396466542514067699243523451985449191336537803407920587479578477045597050104493724691847025198870383677302329111917907662891947522613372006964717603458107268146992301291115876054532260883615022663259840179841821406297126312626184248717895564822975829281446287960061495446920733697139737897922583018797663124680598901831541477217276329945424545018558893000375619181129507376153803614997383710739592577436806742397506007205818311435205914078864694085343684922982172839940757493675414306816752220329674604695191391819747784857268069925864949996973114258491592394171347802371823568609601255470212397704644396444622281811518197078982592664062440699323434585610662603053973081062696520873173952638528646805457255000253951515203327617413154798487935506041680772158263466078862514817211404432058551444969792145567273084653325239036649819231362969349096005569667490325257595807820965642685612598797487484080223768473072704469016753001639258737741308542479351572671883270057250914557424050576939627932964966975562941920826764329471734549761352645914993940404193035909251528100359791440055288970124760599337058083269563142371816592448993154402664919628070182381675127162796072434838744311878795437563416760571937915730450855800899496144872587042713212124147844290299444196938109775097641922475999640590843191437563224897603069016582390650437364911656675371089283618149318247873395977353116076316575545488612954393827190647847538800933198670866015072066038873072435637372593512696700581121613248822582744770973402770778722027022202756848932790808036354643578308380127495249055464194102036352843057401022053573257048471947056116756274142271651665075907241623223825148991998854397935051551464590065846132725744429082154417137692752869657988693347289331974987615338051527347786855493956593456599356286478772781840027164073459983797599368353558458293876736904725692387354951174231457508728042602626620358157763455460606858338714946427755259578827499530561963442109058363346727112472787712091932658079536942294930075939072926600326665418690637514921934847268940924945113240129724690834914874715886034856794058155587739801611425368290386022884093284034609123079054468329701948950010832276648630843554696887292945547731622584612902524630453176743713608385315371140895368017212634997332121633915648508546797896194204057274626570430878460923229962211546708965691761885659901226763361938737335834688141478583768572247075020181782839027052799463404251490961851869659759763499493504813800708499700153069560380590807861398416064281554051047059242903518568144699175517281308823062405462149570894204666119969062985494980767831536395255529802035071557482264914452619422420052747235222728679657954442213126547642756079791558620843500284133139981380079015878899547827011719882058624753236601297369710415227247140741328408976145810097787951429408750511316981701721194550715309632910466666805170163074801702647534351030779556321740159646242566500208669265500815839001606047356806780941300987064076955033337505574787344300847808153100916795714082878516482626474101176476474997925084228184119198843530988057934954458866125558704804091908992361639152614589311996724849318628674620649328435274517616331243592055900089336459513466923967820234375133743573051334728372633078436366312993985086731408934620738470489619636271971041378991341625606165638959652542986605030291853158952842889815319451478195032218041699529765819828661664912140588239949994320371285123341262311184799717507272345333370308800415894768539733194672780703856273119716088714500105908837575701967733393734767581389876759397700561658252482352238077198153429734028191250434475038117309226022551061654737619873559741801054515141775504323097851392819419191039898540416010729500779458088126781972298624218314215739954127664311754087045819383760586576826582540447893133257790034856431493697422723085672856097699172262451525601070119426165252558537571241294622795072734950249676817340401996616417399970232497582627086896313804592910896864188938255155275258924791794131328609108194253470460784979069095448217491652290504412457887777239442189339008894751714295188906495154223829087869940961244674943047801220995491969013658685828835617384127439670656333516629622745714828604307874618285011138053700121532134727595543666288413587782892614965324433842600157460815965706682590289839385329230934377169936655078548115944982206550974106589530864625090639494002795125647250721811955465444740282555986263800220182630354550428076755007128619542408937170001172262568372699860858348660984379183726228997952591325635690725811829567882664872868449287531601253887645806999317288704703618356538809774348242657510921860494326034281871782639981900068968815700329727016633006068820074823571685248597478090788507963264900682586961060470595041718105446373594477257167774138775875782231832124677139394699021120251206775092580647812983440382673182032635718930115508288746263687223958992945475009078272403345523549622442938812710372306500399067353585954590787117196954741556099829545590324873403813580518513520792753762736523430579715854180427550538701258845032830331097944458301242780226128485767204024388456881070642296429950610674195405497698982019908567191551364178837919844813872611101155546879412233203317796453215700000598632290683004589266350479897975111506062803569935281283373235998998642294034382398771122295323377269287858542944135399747233651601794087550598087688859816030154713305532234489670130291092784276490068423771635874192174515673950908036102951986070690836725102171960433184882020056181941163689734866071233751586122577626047037913141136261565647648761804601051341380681862507666904588560075092094275754789560460046848836291521583684466044286793381823074624861929316105131390310674645792996746438736900374187347798878133437672310749993372670477810399293863731928213894208998661062848232594474219142677167788613010756702902950368186931525975126648150167934066161267811307540192137174910227032110480797972575018631568374946058280322093621602308025389497061396155696157924757816180835540865289764749072985632134238974919536058476036268818827197845984771614717413674426731632271735584842252242147205294631986112265200869519860559237756356537091856552175455584073275174284603276080399405867441499845106960076665903387078682464257972624862144585729628624712945370108309626076451516563974921634018743470760997433283644844825450403937578840625482630955647666678770569332070516081342631683359753177256427085962407765498000774215493713108264695901231795710248056826915142971770597492056493659395009609235054349646574945365033446138590380970665325059841134767044834748265647976448832553690783048082906449075451158472921524369154241978639181791400218356782910618346107756930402604207798814761406830020494150185968721625728234947930005635205089410861886506248294964990732763121621016413991657586383630391938916906244631062835596023441249767450026170540076650251766256708726179047703038113511310353802194642676201772995226579201185948298538092475534945318061188918808552097977449449892329828875159251603888875503071363965642594115625267749341960258433893400101710931190253827228344185556812508658369198182996832713191930470124149971698970854100408614747816847443364114106385834111249480567346310407265115387959852580342496498477605782212723034054081007454996977466773036205778260393521748206664550186006903636224621578145974048803051754867463883604336156868568036261460616546262972713532672362451153427668306002104175136292097850926192660282857824316540886478849067673862741865356917441964359730664734987618204928318928524110690853654542665033700449783682606825158600027788439457696403516997556702888676742843846651917500208348942178009521242618811414398558348470614727296162963890640267289073536112108262431888375300640089030154312973528563624845879939017227507805788051032252289311072361907434207529028745301745123393579084431453112717068030263290393172208129171481011620890406628462197830154413893369924746348752054345594825378652295807904706521984455715645756186336643957730484979479103634200893445744707827813667026369242998313260734680008727105949878690784242601849006285249052728786368309366413975446733302227509367558385049409665547070660225993691757136078401158070276912131778689035260405581440853764925024947785157061361178215340789375035032785286417143358374851861875859825942731081730419905497108436428309078152039342152393366632004274835492842764097257926847763417886320969977079396917492456945144162627858051213873619776084801631696566461952558008167399185217821808169338346420627934405840952048251984006123112047696377172286884882714413291260015864748757422449061845550007771274402600949270895524821797761466682283935433966252603306161252321284740221984943776270154061028669222780676833031674853249739454379851225467930889973631935891429930144953243289145537735899238232987797440538460171814582005811686490442972784211940562921310969159339846742563491994680949337776248572211253263440134559212544403002729827365957436969206062680010264341359693105660402454074671484007570785405989634498640031316342674605658013590096900192686883924591321841293962472798455356461197892111248080370349655347042010306312585583377169086866726439761998756382762002006369487094699928101187172212165338040154861984524931691737985102197252580046943920364991852653038640303761664795067637170332269770245482922551853751822791650937859594849910792652262212873267533189933280214417166364524130149661462403392106455645997898517441214204492548737365140546528225249878185532148996269941203068513668502078177995317173309826019803796933073947592712177195434019354248548555958368496996404095048660961792940079999678623086609041609722330835850357011251915856890659500564864467011022489358661983080448783973366812196631630704335157205085103211349484305286279256531996587513731327440574411400714675292049016721880082316388110766323139553471192217212976555540600597045774051650781260910600927420423254270439511954847806052268862456836911374388116304914424191100985855806549368140527408220650926412223068901401915596437466100600259805649885960136457613704677816159359639240851706207362739285468561892654271467285946671731361934433940658691507533918360706050699235231959431845301869920570903631342895890930658106651177955840513654422924549012265160170560707007534021706715937307334345974940176173820743090874277016343991100050517062780031511477582820444641566411435122783262163320602587087574193424291495576674984438970887750670392662834205488020654578375068456146619406850639166349019054315890271726188880785499578652208001075407618029853785501183002518952740495668864224988657325818237024413507342943186496417711651088766859455308178918479712676966569170104252825029138422816786759738331160601501980733488041310998895703809118047749295184352752294252396375181875738283899688479736027466872601358785334675593937333182226625140761581477751951190531882173091024049531780277362675459036216150858790267261671985067889729774843119932066253439503524270779033196191753161763400545829552330928243598850889749654585680450700525917336604531654929702369458859717848259849080066877035794413387182325603972327663485817369944796269614122074271262737797081267296505661171179968649707516669198651439898567030593180688657672396796666224184626337001553441260922300237977623746153009834536032734803577124598612219829278885486957297636868155148573338601732074588012070951406773963705734953303725186734930779879387284898787304455048033337016603408043531086773567404784768127333500133017284053225489314526580215895528204988157269922000800024283713229417192868583599695384941062811188895708099522936248531960100291461584457873030301478567954516656213346808321892229531205885404279354053557818858033275406465904981762251281180432688365497784309377683095702598605506874368511268079409516327831484897558078681031156670020513794545210785863448404556277034871149706118760786075892366077629032681496511509020240090705292839213047496839417962168180484049787446337493761418908658662358206063758128447677294738571800443034691252368909818453735688994675493409115423675894397794787633220929798548670004701865072921403987864718790841261495725302304445778005417269799551299293283541275440690243892226547119244766628287871697856955565319029414967011765299682264271796698515378744558047113568769746318801721816678497350909914408567826806236828653305016846666043344615248984273953078816399452600856004760922897775244497764774213003292705975113777301696992493315158489460108993023143175489282043055886379422698254382966754882174084705942246350878708074638797049217207032636405962260094998004930153612112843450209571288323870980927570796697150610690914067191996977694641461138108574199810300102138142270488386518914035111861225497296135818902187831451580619865243950653691395157478900820635715521458872682306316631040032283919663877020457945862450991356011530684565554548236712429472503855244014150517597213313766195684450300059956702596404218154574713513961637986749025951658297650948987432133729298472889416591854051927361438697599263394553422105244786309860077115361740071129369015628240498826861777280921728321012873971098717183918528163024888618258513395438291506661633825262531945483304030355414142218542800854240499443608758661294268800445182765123186150074457575955341721530733575781015915858022432131190124059625211710856042929601918511872296995167224454703358093232650279333461933240413135291499050964650359397891355125151651607705815065345066609494795811326130945300688030387151444159354476786371554774267768276594129289313312586723150326633942154168438030443368348597193053793947648896275163487974312867602933576497165595538356676924825870895335383666262217953474694432901693116233171773245410202324657069410736893998103539751656703786054224082234427505303352982627663705484386039071539291529026175220802124428837041379477676436400377527813593744883080957305360968910815837385380191853504995866428815623122425793590109866765017866249431678426020166155136361479949924186874918126820832199536216206066378168444730074957178723104564623975704133929552792571401905277726218806325484589824854995099058832919170069672909712404185417181992253652766950473061191442444121202707915521162365319270010919192417300376143745401473031774992881381122096714911692827050772715284086132369311607221603396017274662091233142720669482213404334404378120100903264013341250320999188749926974439351351876977029491598270262236301686879099442671281627101051879865622354383776524860675113465675796984132202505147936942350240204995902149139249990071587252224071463407043844255634707252900342221255902468752859884204201124007107742458034920513518846070093745377518042085650937950599273409361112411631431562774993419638203534191819640058092505949750760726058789329991378725933494968781662534731367981072881912271825300509701992400245755836333393067368461810847015221046393626753604070372139107144576708503038341957741928763779925856327786834924946299830494878225396459318101917232492675510668477886733957959861868142107393197477937314701224761682976408325403565738094580198478533695694583657423596717186977000310102361485110734360947150313623674099032306872912924208872882952745346703887202677541535729902866685138371503918482516452291244713390445687938177052033849575046759610720708905257352075159834622468920018212255258481488282704065847912304120145474109447808073868200821360634280688479038519868310285245286843148427181675542821913250648836491068491878115422986775993973082429374927389601944591076184504494506692244144650480679938522993123438344764996705135939529777144699003329060640360836951581861116706729313337979113588398415491294746805624458603106579486986725758087599096001851691515147115314889295240828621950169583646815374591857466750160530364000132245497343845624085763542203964434115276002621184969367793973907218520258120598100011751570387095197304947121811618095774169956837399600620622374732606755768628646181939743026926092813620718330327172228568651658206255249577424805348761531377655088630372555342402688603340270063412401270880146343878575508784141557878299273168614740217023526013207465841980625608296889945742683446474566901044795222379182776570932422747196549378920427464930499322412238884676679351487237082855648167963206285169768747064127186337135281534297100934977425794283261969540014935805944284523266480457248359897036424338079430968978961830828706187725548165272819467296941810782946056966052947366140432956014864170882813196758753941338350613111124838854853187523321013419495823797981114526955572358737759261566570395606891022704168729298061119851356519627335776952555647371469893325208333457479642633351783307873426265736436994950220117752307399169322968851377984585622615634793010969124231040395874792751888538859460657198433255530769302652664957197322521670305983049152272779425912479528420998348904023918719791370521276182023885816362324535723826125119538943429438575267475222518087270289889206520532612908162363828419871333391382961740255783183385816448656079400319087935482952907262190464524687414092362196477668098486908255525925355273730243734651481563130931965888116165958639123725879463986204597032150548327218029371338529419642392014605513655856652828964185707965412378726934665751735460441930945892403406941278213547219156053106502823005427408033798892740110814074912024117035966471305665112513474127771661097972235563228067099756556566057702967953389852360110154533535228088139311051799609711062320940545497292159001185391704407037278529836639123374408327146411832240979472726077168636337432200112665524498024874869430795445863690563427589780957542721292681693884065296097498970577416246831059067141518384756172981033054195368476297123901561876006180575083748448402356086653105719939421074448593521521884139238160612173137977734038772125961519986110560754739251452048773186829365977523228106838666704227294221429795048104978600171755692387230652172368994494831764760569000822022138406431165208711192815503458546395652884808265648411531001448191245210785958045661525737769920370175969307971780351204843803528259196669566435500452394648845656280649649253082619777617896947571960126633138939090014068987391966396452087198959418412191415676773657692027586410532530963565360366467285807843004414668785828613218566865509015597345996831726591053216082351620360320219497495767991929618234741650779697798854588952997626709735853054387334463550999413288799315533763043403971145437460242912866302626758966007333502037062181370360033073988195357037486911548378006943913229184977837209904189592375569345000097936426744209562395490738857750730926116729208556638730198066142067575348637380136345862101699259229441524241600711380816573972702773854960884779286283219159691285280784349524366553828822491144714521397464703142531469836625729458380508827589743013845972390162314012536228130251752655965979276516487167207040047554827973515703219322559795475182301685329710619917308233059831939878577618648552669539326623106971426298935495437987179424043036193876928769416771934771251654649170821943039036211198278855944862321194495242970310509324185349142019900332856506680023773056030764462978104410109796095035477789556769364798452094281491809163826063785356000096565212403368393644960464659092845287826287078374074451349367559827805069528858982953804499133641007058341186658406723348784591347579544075558619895297202277086625811739730062898867737284600054150109383104677783258438588436035895603686477865066004727909138115288402900062465943000376268638147701586473854878434524941568118869905156547258377762660576176643225821792066617019418301878407251476910456376609095095004197300267289773397297427754530475790177993660821321090082353989626349006756582120477031783131774005621619066115763501693676561042383908933492421469309167961083574746260940140555697711647956718858126487496702655511874059820071397562625533420022964393317114142371611674623559069865354141364926217946327687800760811998212912286615310940567312611055559527735657643841695766675717941962503751176044161538900605335493364023335105210014519371835639787601985400775626832535880016720948934806429683723262051699115661509835925813380711931531720945058446782013877206955265931415455513560803681098877574902440397009819192430162564491202669314466100979266875044277814719471612222813040334660588903596980391787051827604800664108260680329503667000223365721291387577106215090027182671539562618794626722723448700204984449535841877519259322255064555336745734890947644710743814806565899693495599917083185942485636874282266725657555172043837763206871026999177575775427528900002988816841732316332118948859865725587199914224009335277294806250821781715275303575826618238397994767112924498422818749417782137883335010836209815831473319399783257801378274333762191669152828088973475269661139920057732027280039960478521900811210897442998397973626981833102612597041883112675502003908365602647667814990743957950271977660918698525253502890684112608891285758778361365872154762108867554758583021049863314678877399142926705460632321096845874614742591275269602597816757562915942319553043793277092814102241491249359767766739463064911579308231952778341041937034078621373890880735098576446754625440864951815228679232971756788499496066486530014327299979438921263816780933928856956021617097331654172605369400393274106093155220364225901775488058446394315116719593423434317835116773977868736121802758193428966127705249247528556009581883072120969676213149766462042600082650979203283965714469977977799436245611734014480372400166743836369807687441425382602247043885590888992418639930338342236125573192266441775478743998056321559297690007180624554596736477591739884263433440726914648034220544807493404936156970096001626035623996667825458561125712237942283285051983336985363772370662688681288899994446653695839188150067300325664632374278443135334506693686639045082708887655313869759499553080360899413226352067018520925048121672170282473579900938464500920967594323107675400601835594493448471460776094522427398308516043207526483340430098802626286018810145669954260721737151789145315176952393890295853212193504208154607551614144530768800562959159418742408924635414205129271680675519318410348240036984140584479321963703603236038615348242613155138203048265148997083233912111450242480294341653326316909964740307265742067523892168304764326169622701969151716733585004642310886754002854950337016384414325596686845379684491257354053628171078820052160540087865123886921058709638411474658376172561236680337397835040779759554615100575798628766396680382080173398818942211198987529134878114676362266352729451168838372264760693659321224535349167229237697507960955392804734252359495203663785956554877203132763692299214833836479104850059511042611093552275726895143186771495289404860418508925366467300620126849503278310948346401443225380831664538397613553724144791518937255257177949537653132680653263889930743894250971845498188141773908006933985508715161559656810542243945362459389623607128758724496375092326402687617289748117780200587194538908069716197610889139785829336015329357248513987970932056001188885602692274200540210870393455524228478366562955254812144650615741813673514463445058035770313681116526919939469955393315346533105637886491820252563679978615666063570339212427399125963678661741070472793224666449388947211052038247074366799683927203490317708151434131951938710333215935208969511807009479442610994894669829155136823597909490750508798955196163463634717245694540644961993733453906193780200472869655574351656005277495384275431503383235206012949383639250327907062159488464518496198149680735941172373254103254760371149474287193940414804854271477399449837693366587044774529026559807820897712508208538533367158393867448587546674096558561079116602395087328845394996583129905991303031118520755588127086113953715020815020796339625071436008652007463698164781345238023483999340958336322478838821704916313720847653942121742686099314684480430380183479753519375836297167040013052900494380190973078086577581002081348389588345388610658269373273224110534818572139269811943208210839397456871565217902617479697095779066406998830206443401771271265441818964036386158968369413955136439275333934431420282037988723932532278356178338488360020824948701069209694347914950318764409122973917259893667666554322524034949538610703618510119050892566727356830217364980063536471941212981273011792784398985304873252109115585295873705587596229637730668273374347089884178883086454137302966819353517956021860957257727440917862683989371711254474466583735625809734873811550018718388011081866140370187115277742718373142136757673682079841594313655343436053627117927221520720577921555146230893771512453479473926797577604102405424608163155147690559173550332279475606957018766069504326481415473185903825126430642624217758077931936353975179826444036053536062134140208387731586211356052396952983458453488262541512795726334041865261520441188702311516880660680970029208282303374942539985032851736355456627775172737021338019228719766392472284435421690095694737550931458440901997057845166800830204512896913232098497905626609505358570126441838520255788082165784128324021924024691319898372983975601019911007597774518215264552341042797590084281332403781801871856363470883633786792693352401376164500477743302013732084686595996181288891346054440574965474160863311880617063022401913905419357752457471893855341430513924151740041185415179678195508040486065482077971298443253200673957591667617263755300671575681867563106800455773838378975316227489558124952842605733649244834369038631092572673536244437567480734941801421369477620422106299431130488739817602809376043927355403623116241725045975293455070277064555560016483118745624054920179613352386225405698877399431979980419024485634773534156349290907376447457494004132641790529622188918546601444563978457437062752241332769499742817882322417297664934363718272951855742356759105665665532795161554902387111704806326072372562727967026399340036731699197460587440581000905203620409947453655150418860209602901009977035262640040003026494719472818898010501999793500206237485611150202898971422129420987080654985442292864000264839254921249976848826538341217699407142273998001795335077241823673651452852289876431836991709024005557889803097929265043644687343694584018647143815174459724884328922785444478778122799754257751318322190925889850144079161750516062550508641137079461012666761311101789977145498971394337962604997532146718140989165694482222131512720025169597602479569563491388898774832162253783614639817496052365045834846353977189373402408428452731400583101888250608389488104037338391412535970742433404971909367257605387816163347833063554870490213873041256076026147114307212197029291733688754195788803037075724890192162400271386181743651935638852233239191200517141317858364080750243755727417697149617155251867613396242458061952980890386279545996077863899519492388699995148785147374168946095477109023646060013605770589714136835256332754978107645283332884900740497259373535894298243798996628477377814132701240731561130991071770549941461400492704410168614759802300879024675719779247569554676345792917243463682059676368995891741152108670052967318764475050197463599631266525885934213217119030566360392175738189035000992060595864545866272361304589129985223200694328680950891689633968577985294601107432047125649573017132739896118015855488979128578647732886065316566798578354568637225116816271956496470674228462614795123390432220337042461797980660471998806382551126619779890431804122362237516464052192062245338876011946125513441993015325431413691076485273428748653837765898443256708187118059707372536297914601470458373580130710462772448760957811065342619501879502865658739852316666668049552464823833625833489988530081251067263567996285808514363679863486831707934990635533159178360491912208585780150069060217950493138937545649030282833559742297188184130335706594988892355387621450559199486143951058258013007704384044900434170279865657393640604699126355901670008340086929280018049970444141103205360137669768755004514033788465010537380104817768113470183663102226069696994467650365109810637420435332575303505686706651947433285461681766193203162590099590815807823123742335285968945431066664852280386939208807848073935573658892129250087960025774291348735431475917716751307941755946667267847643237847982707597279836969197420963714969814782512206232111287889217906344124528608925893951702397697149083806545915492886733179639524782374140688031187074251921141656802577533734309479571136144803849013388656289795924191893048420812125107584946605705273345243454700837661408956632729536912469977536876226507293956252887149968535864018528118997524879725779416286855343103985908754850844362475000598096415792280050985938069184219563771775071119461029811476488337904202511349924834029214057354493265275396509128114729050800352890102074393083199832750837368349778817155646415137347429686208650761024819644529842077687047249471982307563805976952337669670776822783085940893993527862801515999370714387795047984356050253016253925084084446048373378462901062431299406921897716128603027203297425526100177069999202289158968041401726639998319877583121689233927086940463383205231400222945971494285848548484761633250285816715378147107288853021972851805150392340333822838164172388900744429108763794076440029755755158733684181166541813748707266861600096646193015043953309842815743676526574084207892036614057375394941646069318140776252411054498838375599510800369294619888159520660962183860097979777643402643588963115565992631110812252684620755479254385761880611685918614358992413651979434684103435328657091936764452464214870436149603961525953339014862564351314456957100662555513561234151703657580079518080307262454932641639877849450471210077217819024656319172452727897103755078764884720475685224577334581671020925804576194197887185930217429462746984608443405999899117624931397548179915575766371709266511203336993444147698127903337922454151239713209831502802453955004758536515765669712127837457571364935680857311211711362702288809541048586959867762980295825328118471972326723599189926135317624929188459726789588816258122192782011160418022630300254028143359657179057036097523899694388024533815430671509342674660944925690673468137985792905719000006915753989356586702431966384489705680894673958435225291173277282069564830390341309781800673081464076701271896617816195814228385382131398109793732820578606952914335873086161852833670925072385102588921718562480639849631171074520684255008291880044377693742464392889164361910657236533565652028119660895878848311529201254735462570423488815652254092100696548090524182807904782654663283570435368386953533331899044511940533981696368811815553786475337599077935745012195754821292096325500033032188982238259927803161093665538769174328028809349858877164449433149655404992192078906548193725363179150337097708167405797530217434424342894128584523179998485175404197857941018066887140173098182492683208812789373249637512483880523549710052527556432767145355293433071011131818961458544545172836321170757979735793230809643088024127186277507305957071917870001120987672506571262316804103334788076798158012360451490320172917921578363225631512734097838248066642644568439096566686672406019592432815726236521333543566046078123662056519798704518265932528444112181411340228702779223547518997140519228155752740933855192652352967763201141683962156560399899328941836330832973982009057729141836299923326808196608211243291601709913629358487023603734801167029601028324968581170075573116929347809094222855631270387402237204444640835148510295082429053547960509765421709360220314003115837005654336136583846572702254775179515516695412771096984501018898111704048704395310561333167707698208303453102484587651267698885762237746357059909603374397237737119563838871160309859172253188202495673081462303210964765452780708819517192126351582378656225210930129800744814162770361102984984796778595727569964609561534341678095894128048604000254785055959030137405337581802559656473139542057068159348216988872973179610639590264892519180013366122356720093057196650815136639253498659403339222488066364091896113880174922748102328604227544209982757952218194952323414874572594600331256156461649786367646834981845900048804957911190622280951663368210564287924547964490715640215963914140377189141365804115862197518956387820711883600287328690203661946118758007998730164266217396021670785395078225543910615307961847377906687261384294029101402355733550631713611449859300282754445687508802659782834502631956469492171515537308699805839171667937621293729119799930661570606906883159357782669211322118534931196777576148667760888485530438135898800201076773629343285568417907723290536897043058259455785028163839155078809383828115712366387351494458871460399855542139387193092444035382792180660677254386881700380718870886556318673466275390354316174032670198583693351698575580378890761427453368710529344170466138151160238186461089146052466077778794119275387247784851141760373856468019652945280203074582369513846838124499234616708722086013148777801122149658462597366054946839408275826798120637732683190699834984996333382812111395996779729556086242103789945853918687629048869328121028260158855658365392389665986437838168606774647601379821326008758401081383994734102886482526341203762351315232874802080332098316608093117798768656263429299059299187951058294938280587382013395284213887840153070245415679555931123855180388307652442255936200412184697159846691319141515437676070005227274826541435335993050430727754361653816507322948053772571566990625679079964884309054729734210328612897300915838761487018422105822415662487042544414919585642323608342829930167930818957466892679892708719188608847171188469929553468131659951007564261157368045773056803283388417238703032630790814354603134653920273054343417408404808849145932593891726814468678146806548991392197212828336445495643154669114184958961004520421932329052112034714523363727841563443192128554041918170394343019142500580240800070287912446235662732245749415574923717932440013145935209966152887769304041957297487377741200877861126133557631362499440952719923089389978150674417170989775544289217745621540037620259142297930454558337720468950613114707225934685208633150298054452249918787370878194258380414714444464323158164898507945308689916999929926402685760749446596388334605805656208670062654823861979785275345558346113641880128873216213355938436431280961496878727869176710623192742536208202583283891107773263153405595813500140016077849382185476509635132949002832448833685169612953735249812919256959577884786837249306251789788604732146314870426651695774892138382736337169577691713692385855434339782324076704616015564136831685264576425531826911933791962354752305127977975606315047687153063455169992711151524015331823568222537233359558924860938606030789303319261293742915692471475223499526995819296747609126298358978328912792943326806960206720156324054510371149885174989116110039420964073376132779437898365290050613986331281382920995301989016650236095936053873921121270208643714984274823607310378946539096992187565726380888638529459295108645373958007113043054686676008542414343441236134093219407637040590786060422605905862045697342200752489828001478448263059793864595524454116609217396630554471724903256168294217431764633929723830204276555890762767314576390248915108349991161900059003974859598850803087150543478295674201949135436329609599755300790728448891892128842852169308440105438946968713900831176487914389030544410697550576596988923170299121684147529067541485020755177720542556166206737340029079979801757110677234824803136880555484865207410810121927319197496207638351219598994528301277392469765962547716813080737091168542876839848807866664053032879754221510277184300222840158834953453747015386044889126650002994803364439897371915867084923698479330588644965576492570514552692986098745752361672911989583037184238531866307220685291076469477511520701918218431397810943071658114932033484122658876549517732331197697315931338115968205361772700337775310158880437893649752093397796609230997058861907506417509646167864262630762307301302234274791771377547418930367696938378432485863983244698837136095795146032414321180411148056826003819879636059390104087338675914083688912174225153749075526576475947117609668712741153201076233849988993434512586357247436509435331526966294382131178063505798640379174375102283722341472331295972484277859474392519278714501509379819105368721769089308140308574643491397452404169116305102311915778426964951816567803183009637363805093200870603751236355201455826125258503338225420379733029194718805991239854436769950833666783734625903566496263093459201101513504489193161593346123241853861988771261064198017828151938573507846136401802611228544710328592194721296581233533022511081512309850438891881081562250578473520735118923214266175215469840659027251072370349658504299921210106587181137332980989301082346970555056330208203664751144837098579740067256635083906442286421989429878630141183741243562491740003529643979574336598409984536021012795170407554720608597947477633947467049837239952393905231149480188782661730979999580568519481423010766620424819650960398711046682973348274152600048855182842585705629695345450729964046533766499067441930352461659609114400252540675542042422485521280153349680494713368494858404120385718894788263261962287329191548970888351328794626747849829647560162566627781237722892900012732384892215008819770347954234223138167055067076509522828875575407107423494177148979561307368252054329165106127234238459829106709793360220730851881713340071920416671713013722188483598579633572685303958202389544073570303275800637347985910258624095416327589186505867816793629519000448988847050394037126897848988762241636446802710284468643481071853557901613277163431474249940771790264006264331075295324581692463393677715780777269060842595129972019998830250542460818967363324558002779574893419429352768766309436826473890227847391852363405431681861627526581664380922257444699451022126246303427792950656477818744918625536197935771905461432598421129309920063825175959330137530374841124576058949749271673133755789608162875517068328332102939801298647264711034465041708653369389685641375054780619876376630504723965165636501549493158423756352506435472246130869567610692581027440623785489033356778200950835808275571720865435186704992538962392798908512446539083338425923255727482970611171121713433608760320856164132418289153600268592604194842032043260283717472511723853705217097104972244602276063206848718885318657104013814628941212255519754059906218191986315529571880442361111152673311196183318818839856595564205142879146943007962630657302674598661022895821349869177573625867679417905915474148132932121223986431068331252961038270734031608161095369837675263264902371801451450576995930147997272889273845549634599426118925727757338331273949707309684282410948277483460394494649525480049680391361440006915955431678939803854210669522776621597977785107840071635180480645781850043423242077529303435161331717491647396263202097197702509304407194995975533473326129590900542080617864822956039192003499004676897112448501084722443626066637141100092964965258650565912572047597666055782771640440995871690363159507965391668782623990196449996203047718594645628443229626939877912767652798926002847722948097027237527001162376963452939974211552939342087325984970724674399654067986187815444213215823936139624966082297348687958333840043230713576466998886277161703085767536999642632973759480271851814469233340889557792588481776546993150504484064483540228678722005941586226745660361253222959936028205996727222353668789374858207239278009566249701761133019638149687842644593843892649422483489249845836574598642415075830144063673980565895154087544696171287903915117053894719811999329951737348386145020358461008946743067153744764372945549988722837533745311269010349554318232211673267707608401296518439492588287155989874934497124410364858426199811475348666284859115860614302262858609899983809120391422770562384798601678980014792000331584756256337071668940761395441590903066366140036045063281646720941392039383658196688816461081627079757897766790941937260781706330812134842830079478859643136821424481928795823869981967249610191132382564946339089567903369545899231110269816865706295206904219755399079478620185225475413358828461434722869284677026472299721570342446252015668103430863139307179201826721426670139748829809818243280959816318378891772587210002517877967110549843280592782150687096551928777066566415693338701911848269705559351151084026377429429507132184482238636235499129535706647355657976418784674264971233204306313560403637316054698547386074219539807932451630389155275087965426147719700309387845178668388654372549303162579928797310949386880657652293887989768746983905185561724776168696923561018599458178084634340658374391495005692752553714369065227975761785166320912859292054043690685397048550787983843826056711385244507769099420529589149850873554872449206459939187319765771239680684803967488881438920055557561591930392207444321093430006977608781785874321063088579095123567218127863932319300693014530607452609338134019976428673618578087952927946802027983564621535223106681330081404152333063870923482948776328852530234788958840250578364453349196112181488137323146833296284302916221076594456148494178917223790593522097993537213138013811187595367880249615828889833557494184702801108696070233557220171125986167603907323948896622951159992085727820516359387342518462582742944338845606364288700340018442006560145196673478204179624905873672484499027637125483900397066477211626248339161075686925761752788441782882751570161541142999674386262054681584271633229037820270591984188659269533243475640765615313318884837449079962581651940504176640409966871079064371239231735123614329473810993980301642099329791889035762359433911500751832523819771147836550318811104994979210980820056216546341577256043692897898342876919631826117713366176055613482919587418323222077109719308634111735011633750293704321863073287870404638791959656300643549708273664996445327108464699364974198088376267402620413401564889307269702251790077356384322052712189768437763918904526228446099424318375394186580075555375403156377108488878862901833794818987206561304274278902767147569035560819866820033273939106316203586330060266637804095044526899400765140353924353271037743414064846707467339468620256788412874445136184415289860596004006014444920547982085946965777455103135780362273422143825450573190991493186656444313115531249297257117789741836691341716055584239522688487262869685254184498091646221190930078936492985165458846191188141532736759650343544825387656189571607295151606310599706155714418730158229208769398115086382521740994724174270256865256661564556839998487575177778421066072954264452256161685946047031236392468840739804661565860955336690471095157671036071739786043900435409948833626370947514755526873629192308709764636031876529533001969365336524435901898553534673959107708702655857035049655978113071336222123041632915491156703878605546895884805785800460027983017414926240108998867304061215984744802992635167224649156296141649133198950270888925923732131228190574592817782387923429446793374932692519092982067495209061303620640938096426737104408909634469836577148121387043543803384809976988558903425636747168871715831119350105097298561368736593702046961841360853874235069198433594098735252670688875989578168072711853355885224565659976221250740075612223298813317494756919041816164596943929981129134174586131412493003745346187294384103743480257504704753684324923475257919657275442463857337119019069499158244768870267129790854148807868707066931135569585910119655600588241534976471168374646724247706437224187200275524402710247581585182161627681125241913788979444505511882634628001716590807768730063898015177749882010007291604359160367595726017293604568358612683403302153852026178700010101398115167901517004958311000978630071415995901662113498262422550285565459346821913055061087795446751419201453578616359717178459686503664394775155784654458854131200306322916321245105460327643319622574552648175147476446094252141731349995808694869804889801701867171829300301496808640631180219960155241068553429681473021785268107512741363477005880936199831753900758390916052538008257194807789892374075643906273776804509370198246918823333373597459285400220492549170752645146403799829963546547874018201252037938923394692691661874443671021635993538609787868582174516503564930385103496719631125047664320089718338685910817327719156449941973091444687108301561237747476913883421556131210200036397910932968611802327055643627164563455802267684684939587270895322902198327562510340852604865411762232043496780624157140880652673314058979917856727983013881199279217214242884779944433914586920935216812330075204614220435129837893744352864375248662170891733947839011521944716048033910012952534285580238152924025420061502943772152203372686022025611235174518647395630771872302927578510765619527661864873707562342001580736100742938858697227795179365838764443148056700988386691984926741367717747520029828441948831145399832654562016421346160598621979559542636866802035925946595533841034326212695956196643217470415919074328708944550050646022909749787262348035360168421253236998820875653571303443301650694112494782023991313384158695146273595032336711220896452086444972027259008124801799259425890573694583333727538894469289982363096967991203043310575120354693436448341137420145090443919719610520419981506905538627562886005395631236194502461772641517142774745082087461980832072429586721452950338588914092030695515476505759191201026804358559296865889922268469449909202403094394003992397080322746138854929869052878807364238943580108331420850935956621774172458433391469059073492358849528117309494660967327410945247716930401149910364027586712544535519717615908998715166122118114959148407203486348812540241705660928234654491862029610796036833450680918146612684448183652797999789033176672127386026456737163914734981601489791531600539168594243810319246729790357954232535478759762822220838411569584849454843737365538799107946569017008276583532700724095305014787402356258779551662533890269425698324100666114522162333491545619945894098422599962934629822868714765795087481556702547455511353456655295089906500685665006551471806943429831692747544376986487775157683944539157525057022035040491361092471884830717592079971576209507943276689725936315863088110972067553288638116995790400852934273503870468183724586343298843195057062203312807978702937583170160028614852000335537193150293249686466816637442592444191065080029711966679801646121789102874479831280604654805277016043321825392731389586504220369187742877142598314121214898845850879671972754365094225778493007183107853674136645176978365696392561245668833376686067229645871815329940262455523139248208017006308976338345831158682861042536865211481509709667191617784275139088914461613052185631339034871726952702696046402702445938635378820706691193153198306611616436296957953830823233978005633842481659203024889843802326559644185427068478869852405911430743474989958090687272279788586043657711044547917464317863130754401170853375351281001081768083296104543508804619671484232513915230111436900008430822085655872949300804247835759358230506344533010248994999494223228313592607738179906762814306165270701957112649803780716337376474535971032196001961261261852027397138843059095699487050854502639177141085033818193478427454220510926354785791505826846913571808933574491125689544636635716017072912041217458868503922614823571433564955173165601617673414937453701659947109629369404739412344380329978371812873685898427981611103478836706719643721487379366111958678983181668431418285397720062043485583849741489401083533136280515648820938456851846114200657183540835905201958846774987806159344272053357428665621272057720579503487127545264429589341815359193039252443298579014593668351609420303667106262629469924748308648535553935796965013722035392396216042569851243360322565263896374080254772869247829570698074190578231247498779251803735178251853360994951300222576632610733331549024937503769695776978075312043573156589358022294920646013518559667260115119796309367224079566435834202461283090012218582783654814740782174998346823070159964072001159126507847699893791366197993533330327298976509984313801859206832168772580134807034661960677374130772203640125539800280079441432946977999307661213623083400439629400740687296812651436658361507351856944397145231182407540441563524737126003418950514457300676535643721525086430155138771582128028160995597043607560272027744588398341623156731259132856805837260045465483679701042229302023868059340165271373147406774599038832786659695566428284512917842182397314066054721109968785729859854180468592969271258252239168999209630921761705975000596006111252427173503331960998255170304524901039397145617660503765628079586678725798382549333788648267050642423414468011326924309648515442481682673423196750392093711934843931887380018487930825308224122338286725764209601860067092803397463657980286480132143646135003833601727240345410137215487147234815522915406421513087986642243273817015690839795448504783128825990382030612257889542192838015745571687905020562838356794626163674075240371871328661049694969391416083486022349972605820325832970899107756812642874438311078284783068734138436975751858413495548738631871367937877284646878255329487265444560605622885726148009109389179474131471176408738253462080689566117095748428809827810135079812165764756277501171847487304041542809190768577544822280616295979608261734003359761274651484158866567534261090124937497461233790421401669974554633566233453951123645976823529865805651823251094314465730646950696855506943235329177419320621703911281530574877967891269542192641874447878761101980391077710793233827182211773089017848312429818730748118084845888414817939267619567880963973846743512465511672319316129863247916698019638859613749857495428321299178880068874452100850113785465192009293308162058662165194379692182433579538090676358995907311638454739195900817944989195258717777697997885599886247784893482293382227477929967618797500510040848376802557692015373947813912681911657345166334830926515091213320328059836014977310154285928698194907304400438801944628948362618418973601253759617713954565261830615304552244238293579203078683635943968183784814096024056522365294734758324824488990305074833801248138995292230160032155716933425947756428052330388977057714107776714662946327612085504056326784059906353283187630699093789964211286499196521708648781893883607202028620843426561797459194961609317468940947056771225724833916570514658167561190219305619293330189229263936815849914317429080011639005654855287240226808111954614483344524689649258433344831746145886340715859111221008234206738048919529253040511217931369598352605045822096806826983223950357095920698839279560002498345075016340609896485120691921304128155927748007764186005445218361741643957795640132602322347150038866224779383513604069857350391118929830701848521057687403537101419647851139938296487911529374943131420095835852843223238598860290153175856012800042697082540249788055947494502762755269198983152905012869790714942332913281726713013781400580824600002284470906419792005701303505449033621836662352283901855101411911987011025993447802769071658984454070800426968649713842710545619410002094807457161945852206338879989561080682500614245448187233935088201540761654694517531884573337493704899139769278064245750488441087390973803565127109564854521234819052435449800137572155805064514788887150925025786951565221052357009578490618409493289591405618948322157964850639188714901415170690141247543491031798719187741987898418422366473881130296342823786471986936350029929284713126529368192405109140409219447799959660091924137984588132785700553675690268881700096683090753419700920535801412646647385314439944592326388009436922336101382517917282300372342169523422559618015784794080209143134909033574458751011001044817761143727007383156673804696327997668084270947197656510321483545443070833447901183625063610668201542605232764309578806522283497031861957058172768728042189218847500124456532645392676854423238694315745538828069918396892720450030405505432593918530410738962722150843905885974925351937298709205389570502092786977170393874140754854166874054670446232102896422722520644577747249042194876521605151216847580270299376777227003920508996871060797324458107794417829121419069056965976857870989174742937217969553062707147735063574716049827546596040349180738479603091624532378805626962255488097232553986950119180955347653258349834461953483720303036020319013075894888999664633323808968472509349507587392260314564473772522383694630734407596729830642842273078207687377636824115947072508531250725121058388454535470315842228728474469337727440350962457534747500867168910846431596853505785650503041224999865632505534475436171024745454320678641394206600740196878929681441891861535394010835957713452591758060633403056568713927703496848202987541021294137908128358842946436284067091277769987143366031933511910944197074591838820241519582621471776415558692674456511679508473774841446487673117822205811396819941956338459534142716784447295907288011760974659769743829823020177451109656240280160488879792299771212861840076433257976731440872954821075748875174052607798685569765836273101884635316276547005376339661332834472296204039918833781181825533742660678887538108833694125149099287643838730226636554654371078645012164402754874525892861760616296370656028151407987959646956006871763071048697694930738177745583477677686404179048410506727990441629967348095261188226310457768330128083416086320771352352447980294970424592333266839248712557399834126992647093632450024854608639734339923959458073161770681636106981343543884929150569383102894046635001474345177565165444510365411572092149276050526034668692583555874593248313692292929209188931577522856535583398271730718316679039086955672144902568949438479507048607075491179535303090734582250109734703483060661160932761509260233194991521312125204942410594195778294908684668710216982165063990123870244448541058625857783728699343535529796989660724307931025907899881771105182274795287285902869709960480086798372297739565257262715394520177519298702677691819634629081633919511607694265154609491480797238612117427350404173001993405403073136463544616606930432528567589608466584964439967348916889110928554817067836566576404356805841725520517209396516885583260790483526594828573588625294509516462286386401846170084128460770445980649242559052738955218858215511066333081186263227487551959988355670610020949334185170384269506399103646179878457080736940476465134537028746513421576825177556915963188696252561011984614227115339683883619744094411987601062812726071648147015779118271906355028790957349993612281673973727474747121201407829002990307306671552151597975836380435326351906154676264204637956491065355936120375707640899539123969478124654361442416337413409033413252381052121308030691600047402419140587088606909961214040336835055025477484394197925981236290110766469108239966135081799400027472592545030784771135809835949188636525959356988390455635600085631105088857659336590832247376232000778606649235609320735345679368556824475043205070834972071553830422120229327602898098224786643505467639594377533380869437007274248326663096687416643410230361774116549311568740283445789858973462050696465220671244123255623403751135248816672859946708875003930116634474344732613653439861725939182053365082339532638431842821331996385672751046131019255282229977052465356860901058721231475018009589182199283472892655656532384227956621598748499305170301316961268087192890680107306809787864046598792123077502716984860710827425685551408951910939466747809098518846231314836100634537866390714515986208464906564285660556772698787522469389319774209772534213295183410426315992941244905258023438888299178004226429697299894424897803885294883878957711791209783440028894811930059355928428892126443264706427362850481110157554879532200161844635870853893125728759152050710900894132376942297334893440633354894756272952643794761900279435094140614048242942797533345482650801382546622894918037133337894548421751704730850519687420210519492559507685225946164436884635925871105016247174740762363586746194037416931135903209892519474157999146926345200470573439033561358491505621761471903893117204822265753797279019163592400199719244599822972600556771160155515501959692303197769970143919211930183941569607748709263465434553936459483832167454525903895301890212390003805974523942205263665902467061986495164922380738971353602015769130674619897438200852899127671249742838981438516877012896922419745893626054732790203209945146034313019904379085306906774892930330666181886016342217721551419833627721289199138036436507782041175460035792924017396497234225568570417770724431585945896648289078953903070223227174856317582772821505901151134245643152846956151558994308961180764124206542994172970640042844469440559129206456084233556342644101237672840668121339281221793683204127142891784337080163201534330715520049362431284706586814651460758622286201854610985149319181100838486041294754535209308487247990422796509334774487096891748642647495357931134642709241209430117029189572177051633801730282531264592220119693782526020625707945940055596554497191363274194966578442750692135687328696442775034932622601155220373215284094554889276870194998372555303831603740211643686395717053059589152801641842187816315494997480199209882819361775683242165380496122433617938335517176040633777233969910699148606241621054147204688681999535065716801357721656983147010473062982912605315941588928048695218597532380251850588214021165103800684808736860815112633033362253914046103133164885297081259018720958134273421472197132276070043640536906450959337996497846393271991130209825768849130468463167433802064103749571817950978431601352429399803835231523755669422199631234070884265530951675000840566514008690857519176217902618693079064235113952351797609438863292007397070849451253359515847699221761014708580661478082838878327256882948894750761039023440970605493724687456536721616926018140755547123825975644117206432858541595183083221542749710494989585200655212563153380016794304269364440649707553026573373008979184023179205983376457595231874213643436077887290612327909359282102546936184255483210869342661900080148189865207901523904399897021616140188343705792765813446549278809888144023610186480171555931089629783426144308120235946295024224275313793687908687890162618681800425796910926611874918663833329255928656715803195810229333547024902314031771386140538049123631249636930982001881649537697508893976659984112359786210367339367953027254564408263465783829356797729557387026794431421715052561170670305383294904787249682234164527507058249869769674704780810682204157533364205351549224134268023868376855946856719343964140399665098430027321463209644149972641570137613465343589815897664975045420801630945930544613406964348615118517604982857567586975149484378468480589586786876929551212105686438043032398516384069187255405612591328311111353613290844257070000479683742623114798560592573300672101923186443604554198206114944241525640118336877550742371454320081089801171044827714292114915842550928266894985949130548620947015713945986396574458006015552884769418226384665644477208061418056056040620397375821634313040540429105220577605393121457661445092303705246160618899719214786558467358591861689021762997206981521622853503622157285538765805926303733842506811039559799777156290515918455795828079350640996664291380556009237080345700959859661961092552354042067928557234088575588802288931754704774514410429054855110453951091340949914210520496109901269466142298177634478427185955622204941795116314090215581806008516862387695247407635386609626991603144388017487654790998720056723863932560741328046943277077012310702695069002667424852232766363075058623112861925103157951809632297926481288646541930413039159457343430084468291381682666158526933079572199362271154221314507007568419622923132028884145444295976600043655600990821265102238735506302707891254178949109207630101408905867467422412404945687792054415363812070522803867781340835547311164154612786935812976809008778891209766530389021764227724790690381927592978090629541873695728749253334195705935215310102201013166065452100156411482554107098782353529776014306232629864115676110228264167087921679408286825867702041870443382142602099929264564465234257891079694053627840759795318241235273788574858589645258022215587596617130478047150697192819488776114182938503657028657148072589773317140301110230967085927565525562250618427346086961402599567977834237952779967335847423624316047410440479217361395106840688464084904948278383012768959472104968797317970229184769800664624260507767723191459007682520495335290197785545078781658564964452813471581206150935202769965711896204114503763509688071614426052274718807974056914461921880941423386163965419626412302446084513599294149839921822762227009158975650443397092304286724394964243498420836636516432733484837541725249986166924795339631864077043483612140766709669514161621233162316759945571458861426604736949709916305724831880837670738117175585389544002470245235697842790823835990917680694721517168146918384741931811246698640729629350862379273329689014062236479372871459269468582193005356288469007037658574585748006451346721496956450018964413635971545111392306318140892573707599805154471873402774546181099301212825723328569823538934954585832793411752689141657063096399594041337286122730535312448348465912264162125366886283976789213625815847348804037956970752524159449502635667587349933333272814206100919657390967116046355536603745339899600889695747376031245107747917965810608522512908000222676869423110621967773648380725752929534562311033299310354141662156153212680149007383433757384760530916410837635919185116697024659672721218722660994804723871609449450000602456671801578545764376014642329978733332395016896700394069312580059584483644130426994592681517288236508888756892418457924426451377927820571144706154058586331028386959243660166012268471825444438545826544586131982804656290435838578936222548566915149319124925526139965209365096527235265157645638017486308247936451234296650660770367797485061634631961902226463325444467136055537343514755165205978347279956826431278114623877776689459611332714668990669685753967830677003758194205435640250294229993639682086296487414088567827877058051433077671359932746984142430479741356339843146408411910975459557667103639012615678575606615152609657317766846420505486875525617767669010163589369393407274250092137221528005620585777961610739796288696500447841283065880987739226372878332024675828696531988173053500929584965647321847858510512199106993009220317183522206579840845600279737392856210632764970800621707078214806703351710603589541101540215392510886370675689952310151948554888074615924552380460829386562405866889929512181984029526259867780899905509130793918403056834191777008629363040041725812588346742865836554514881083474607313722447171381585923821506241813281681263616129615602280121891124041216182116275453809721020930445158982847455426154522208353144601543683445324572434470758075760468695873435602318898465899786652631260183976670998354843760707256834035221802702355563319198108787737426933075642288910386773782873854300580098598316073277806006222198587982655639926281866294280648863875526715984049251138009232827074600314228050784899099442712898235123781751730648914230766755305975835457960531886757323938386073276472886385132826679267535482501720443205240064930599433491711743204805948997692232957291016659704836750505900839742232073630667768009480191333189266659092445754790403058912527153367282339691788980545609816189753743320811708090420483387339196108782916480932760354041909239971597379664428725157797337381881957872707246498252266220058216111352742446562823625938123055132853269173513871355078287214543341002157672187858186467589309725379225320062096789288397517512101539489008958229001041431388338500206508419983060332876010619643880485830142210925342116331923955476296967805700926842679818452398923404107018222583487115013419666702999185284893760650325521560901338718031986457238315386151570281138570347565459423079238322481040060766535775139215811695665787179144322078481069457687355333577410838420915067921343777143729155230318422499904499068003550419301700683660978824522844449724536518355597359588855541372123244859205953630733121741011929986163105523871905776376399000856022242036992432144881048194463911767484795853065540956988475944380504241553975459578276159580792258659509161528649843521540256219921671686329975986223562149606239442549627292413336682642216880611159762491206449676878391164483571360583459923476311849322241078568187562969459353078241062310552788900329027751204514073947474207965358125444162154569903064516388581165639594741779408030705878631137934073279283411554501962246041610030492704212563713127647442182476999142486358008466542111707969726276433857118713696805709542605761593865113283208244073669457608406977054196111005797988440360610094509516674946488983449490112898699040634347673342903394994328022145242149914078627420135328034854526823357336560356367386955809740463529551495596291576434675001979987010064567755973107988484802057196295841316293528756604974479692637608952953253393953411361450558961652241965035845487735336431683609433925990741732007104017969767226036617877307036301630891211302711402177645944211804515141064416347108425356947077127265469736075724802430698423763596866778978689412923281361322445760381730695975623727180528117831067319323843506710742313390760948477087828935300144867092515070191363276234837824011550781714210688174893959734776232239456027913022348327617378664900604685088234552602077918519209571263861819992920358488529465297070621851632920504529835832908420932541624145926472231206312988870154444971974365835077374415438309634913468117154712305176918703770656474780037796889393590378391235326168495515122401005706383898643412230113255988086061253753624211259912119359787781663995025484821443047010769627214403343552591712836308587580604045256731808133658273709098118045658973135707261597138973429657106752303107264220651839879376759272582854934620468180523335446459149975257835681430062535290596671869436989954226140668353151671369771243606695378867780859666967060731041892255431376649095966542749018315683812223036739597400773659188399675267606719892287390749692255197936692797948799248424913296254594702861463702910397618247730844253650788263791722325048135576731744410033612103877433550732480181757700068424039798087614960782143949603179953705363217597791224474192683559943545563929110811162446547748059055176285406832019291592199320861906944018055267890568069842008559532236352786633007379896239961434921617940214479460669775816828915581667501785016548258518277584859361617684910799568605124442175057055341072770533822632836550557309955845072432949289049689790369407123695940976894190326659590631964216372338570676225411513758817946594852363021956002873484134049534941031983849462585900699329173995671986027196531119554604059958370910762418498068607610143451094086720481877137859672744345260258243680206792061066665940305576133813245888952488869917202749355786726771109613638188889849447172103271617433039219053206773943937113183631173411874383180019373635424522590541477665349530513033889830645925453257607126608089856802301070686956719738004518347928978675745337107051057678527598130286055472848552018819057698494373107752932039736744030419236289478650822093160675505896782346024635117491393403601084900278822338771877544892664398039659487786836926779515423980907704744154946942692658442995045268570846839667612546394544156572328743941068137786285726541840852597838870936614372917572856031958593959100593509914224284597641366692343785995978390824873825058289148557422148812315234672210439786050894726065883535669933684605405345183849774104719432424019006767787019479300885779208729984837026996073762704104600009436846316983120556659834898965662760887320289001922385152245655570311362499073777001443288528420616041820990599145196084549359916554396197731797302662767888623228624884261347542918617600197147912367078724495807811764901614598231719899663227389294035521124503853128884311117112289647037355067512106434241590600808129071470142434429890958115074668658375053142469529450724861748628644812343576945439511643387912300368812782131133688549834117479803811475983762429503722335948348488158973422995667496644975985068706660012625050233601198648980680389009346234571234814700136622396622955724196537729313436897358179069247461275878560724862733504029773270784750860234841024935090327233133031353885716453786744112496189590597248684724412862579609413473374347834324812705577989598787350524694747561997395710520429682383334231698569560093019996977911057105678820811235727836962863669297070767745999361540344030525507191962203744575952073455668468117979262587625988567727640708205308273530603449021652542482368123886494075230756912451057229471450786026280062773875176100277642913963483667498767129147359893396838305105062088204579340412763951707844564163251915139948152389260823552763091512867587107488732151706991655094649252620747420738586574217480887406921959676122480313306246526073327186505747516846516841949418738870903552847990694837921681123314882830081868843671054538241428988752316677197119841316030656209316546291126136295929529641468378450945668467059077878702031148965289481671767756210079199448849316398578710247446319998531941222313951018420644258432525581663670754858518121870875090536807847176345990772143897059233613082590028683882169528810783502282655579239669609681476583754084404955580212747897666316397458421955878225191974960931055961366174861231115834967163406012226845521993315737288644717168143649555738533522485296402821060344120176402128989473964704768261786185383292081945586486975513563911321625869071606186625218023940599763104569321485757658826363148813577118834968298063452426428358724874353486309837486631808204645422867697951671770580226996588601600825808971045980946949676190620983049361239821480168606818124896240291212642644370258845093571842324620555365053291349735348403534120391288201744253886252539301371881709780230663743512341099454798512823723309144405527439762001380136512786600953211806998798572159678373658324454270938338285767743000891130643227989788592503389732989489253398641119871830585821844749999836011708175202041281593820454860037556740495703380318389754720016756158311291086055027535380947143134495310571206935383335865588301853009379053318174078779880575630823102189971939737552493196373403030985922890617814633377214002861677914733987065913311857372635535521296531684930461812567036216684740300927268175848521247433512661951030494614477238487006458910138752077423128239425337673718933635836761726694707248361788223695258806952917972402274084062687142273442447998312348203942504911771152579560192529884649184428548262571530350346438997136543872402699809256306305124248770809228797264004065823337613868190312591712717725980025491989258228900699709988024686303240932054578480812801279034852293151550301347400545827301240655486190796554961167020683947246523887390856029176024417003298713450897673787659431059785804709394675423668756018881683946878830849846115691122253106744152012311221981616719569140099996795782497197065903661494309772141757263033699849985252238046553354130721896980535613892813192980562538954766632188374017254035802265461353411089115120975227076034785057399802135650879029635673976503986881686229564147657467335087155591296738649289942905693964587797386895313139622086316840037048162929657495241084411106926999846633657126138063395456539959806163624946397404909667026429386264982706891906294676812413674335617703735308646670990736368765218450273883438243232592311859761547646867533544466952790655370185172188053136564724131047797605608095075722443882628841049647095972854221630337615007454133880905020885961482266964253679760884496336139282684219335855469076457170449087165708282915898838733935836227100390693734216239310383107846972957689736457226644037172352237808823683697362742573818720693315669917012147869512731085975668120973216902329490128410043586467126464774313130305952456840504080233036366215924198111418762600508464143137437158694457458636939763516783266649807881741013884264995947487804721483781996424248041064850954740591686990784685568304781921752864319895450537970930382821363019433334787170685491003708151258488098781537312446628312136782658253780422567741323159169196861657235945085246804907174989079964236729730844351933054237804679636601699378327014577813917167091818579395922521406190081120430538825265520829787545648774955106798497070022008744179135520856522782285049932052957785848501139407759718595704462180553100967886367629732904363243934909557641750437781545274227756755760067846948631445725492398868907785900173722710931600115165543406995846823870212240062911137829932898870762383736765702781692240399679745553901901123977825965740702831047002023181247482325657883489444369973468985172095519515094963011466618500864734501135836481677898445339208670433385947207771402646355897811778929009768728760682250875278793463768588618108297865489041099049468443119997024714517079611384774793996118765803459010136905810096996396160850292625811018904314561936172025901413721904614997799849268956857586139188414698473334892129734264278034351929915041600247950361705401273532210998416260848554596128722859120748663377615381712349097171937619534071306129945346197526596127940915718564743264158573744938726863408797838003511986578411542076120047119141132785954324861770801396797632549214926172347443384682534220631093988127851140108301971874874383095078638194808604111513663287798916003341471968422375112751032598593215476844594397178636980737210951733918952842911480151173498507623249887945094935093417348816178994417548760861063987364141637245003456797777199821643915097177116281641906623629924975969356011396386362932322745894067311035961774671283757192435490657962510197435893982955711988920447353145618675343229044259621279929255013625667965792336343999072954713893788254376285908238710312494394745544211599404421955552472469689002134511200588990575034234919636209557527612293229854088089889153493887191451258922924408726158824262258044808503352995400371169130105407871255847389476518459689155787990978533216266495002259170319880289716763207666251247937802304344103408386406112310542754089005380783977410531474327751727050961642210629311097961242498089484153756058599575695441218816853750846716362362278691926347315026440231211354435319619372952277300258184685405120299282023324886315906116688381269852205008528425695353471376228098159687589876245564223474335816884031209122083291992406342975655520861718280995471923239265836415577723764048258699832195150163258068663157487520643277309979072860331696310500079757747224613773208885776035796051008755194383764040946094030025963707926484122376617953919363672852192438130052896333255653614419474292461390714961171197079912904832025982227627921600522981851060053857177182098772983477920145699452206320938454520189167728447328635670124430159151061025296666992728208229025948332716770959445758573519493199174548705621954307661362535887951553555931185899955896389995374877057732163974468716076902646181033501590009149576097416799552455418094041524696771294696184594011716651120465677522178922075425502521388632832471219729379405037279329078033239475044621412231847815409845525863916697020597722294209585233026886931316470062616960235368120535176693377281915966945733220604213138057498650421708637945987107885648164126785969434939116378699367373302448627988578726578895879426559778911743034191036917913681526902808254114266579051786245973112055004156785657444491001974939662077910355327509962450878484571920912989515401076998175993038550040874750861001731551812437449145560802668447323325549679777819465342145901235723930936336684660323463566393128854625776283837306015446447755959727731743985088001016631705967830777513380025875887543333649479712620757203085438852501856094727835312629147631044858175202941586180071947477963000760227218698764143663772492862571775876547662343826612476374521863304332743516575381222240774436329779028570560836048528335331959542305480087661478811315314592332680537931464220882779286920672788102286277245168204811315261585902017109913036634323064079060863305264445081783312870918197748458035218876440494330111540115708604610527229327027967658458942197950838143999745156783676549846646694012433626190703619960764757895859336007322523859585664940384922229266389038667209613207156866688096481380122369053860226201160081382003982787657812162616631849192733437529307839637285281046256043504880753644952768982573734449763967451209378208845413393397277660239544226106941533049327296883980502834634356608052559676504377079275340448911718965467850623662052898722635350206705237316036191796826194371002172282116429108768638301235450252376802474464977253212660730384463735939222377058244948300689052869159165496275219608323466292205552627887611585018322441770728007119868863157487152838510599945840847148246367668306440393111921397489230373601826721447456268552895532148068387466976177203973879838545031682838449479302403800575341243930617870548753556902342677081356991940929201346989914598919372029170912387908365195948417822836042179410576729807133604265467131049495706701824955610853691191425454643886712912277422017032894312122955345785546157623752753588685590404752306267687535036435842345395595262524624337951691287102215473559597501065743412777741134590008122033267798174436570256814001454459005571399159872985932514043701059282333705147648633670426105136624269270659001295734644680027685387149162982462846921291009131346013035365563639955435928807110494921629970269283058432320452381394326503385268790835201511136353707120900894443101578855602240826568270965336380814256489084615583282451245298597020050641338743487702575511266965144211384794739850588401544351898701689093638893962918389254974799825650591980017334086296080863299789999373194106292562750664441648150044841011006542185230147108901372493011782811817122898064605781031133772828979856218604895131100342089021923416939096162197923270110871323708297266202027028899274117674988583666884857736235345336195147956374611342896844432063678429603707624175798533945204146022778459122288733540634268877122322675183837445400698582598394033950265851083489964423824955799115278545890604430225910273719123916620425968654874346007928334115827636366747377529213923309969779103632239615286134642799024531381242357433483486842159277260925096928674339217055029578839148970122497789342006091306624387824055432030953327880934427384438402934118828702478381390780430928932247724135647279376548143684322655305661137883279726100886874656652856621019909193145196814908934728756657246060947654497885515853682184126781601808832620690852421323975730612339246142029364986605543140023340641983598039995100195209302392108182925537930435258658793307236374804952657350085597645231901196092350734463156457144420965409434433223403676601138689111559731072367483276022866939989906572312358541792696753195283470183835121548916608696188824760656920844480271844126460290370604067165460035997045106600437908453463076488991215057889460635725862214206103655620487197579468702535448889424569349030811340782472508376080186720455629133959017489511510252706457984078264371067574256374913074376530160157939193346169983872702048421957626355690202722552108730348485843977376218597305045083776059544400867884698968790590651901187411640083460109401291872164179281081984686288582008116848769125601709265423657255071921395145790426252948108085722750626764648812821021130414197273159816042519877153349484664549571107813747249322743475688731288122432091574512425979786413089755459120441299000444630019626405520385385967556365797726062266561816299832606238688225610978740852396972208037691247997358422131049555222380130947105761583895478719983683676908279720794159044735091028677409933448706748152172482397424950934054100653123986272929282990880388671612208394615583981270883340880673335107746316362283397563698776476316384428034617515956423887657515559384411943184664540928729111610369180799855021145683128413015297554391058018372106406450588058664690708640114860622074688665071403424813979751675524262859868369007585376292813418541272665689278891171139769956191154965125207475000393895555968326315907677948713629511286730907079790669649293396763708759557136112662944142595029888643584930163481230420560049269651281826864235743353224338092117742689705058648494669997514248034843178996116840393348030760168744221252853189698334468450007962371422221521362606965498564048527157234240374761710387603461621118125830993029917378159074937226052366465829725515942050101157991572423051311592934742773949743849312114284907599942170407726803736711236180746723698768727340701266401799079345954275324405777176377376364938844299123927180001221783096926935156796662941112511926772075150716940072112518155835117810223425199785120949466292550683715654263704376176940236043412546930811249460263186642975772975997438168096325250063583904838648831957987782227078554103988749076574670049527775233898421905382515901405493252024739664643530167989575221122533996611839856256937980346831044856261706121631625360836150195826890344460693472024467840775058342257704692950120252683901630245814242345584987912753529221976311297168776701452438817090663148871540489485031114186328046031571097182909266388717735639170988513540195296724324967966850217577509460582941413798738175235663849810137221369233764106900741147993764149038132147167533735742856227943818728155047633967418359106611105495325308736983971833977576720356415669576042987157547278357597726362729822717238437252364790785187796392998196271284757094227399730422894074471050183233584393073941935314766756883110625905935590811406212299278857343071854043152372424427959556256004624765424865591046997874377965538840791882217678588934993131513284595221551365170240291709523333131004411855385064404113698488911392501295465407485135250797706958727788873441343427736821748619505714045774481457369656276966251337849165607089344621989231684314498948193178767080964507389156698957525256908355328879541978038148247781585973670445438527714807369479156086077623497114591078945837121551311602333510290774320000192368190259628080744538868457024552979807297976436404907794300366246845098881872043374473858045589955041873630750134752605346393963633087735161077205379007286673547707735032004232847655276196031481461466354142740313612382924603477424505914159282224680094105430801386570083272882020995302793786052799209549157614583629536172113069786151220707158361836478367892307188219419926024435305377906617187773666008573983786805200937699975759685948374560548937702666031059217206785273386652658199872654472268644795545676135046622876574209854075839045297128263456960718234467201419737175318946315288806037509984516711754316832150590111571405024072827771998664926686506674549934003959368452876248773637386219123510638648558293191773360625723448419408865959119412399831833446756781180360869563155895611287009005426925290007228514553193034431296373208558231497499348966118771064168296071930015676372900224034749569435586369608060479605398269790701357755404028874133090038840463813795622243901740633714013773873655555712686441721256219354138300799374701249150009740147339927408089239150205750471378545773396696926600448290002768152006573057121748202959046177959348832522680685240049784168118402934762539373007220986019173788320711498993371721664472263253815842132365532200745834318867304087213894786914177515715483167903272369769798060119203298413013396453656372730460814496539724518689493931254164400407165835493326734098786408389489924861003540338156530753686528077117997833289338490903727173227419341528969168150667957627780758066969098218991193673302318734713594437745333003278629816230618650332978253087746297839716142810696617319950220452057995113271255870519393028945929511987563031393793636268697330512435529759822964802373367882888208518262667050434296008466379461200397545834121404746627156155469358478154073819671357328925019389120611059150356358073207029268158583482134281479144434165219979755685943909008040944773297511294861443806004720486427806682991103377069929519033377371212894655194827298405899573077310341704273563480933282364966497164753313511480512237348188013362687772625655569223587112151648716494854722382037536545459847202423470342965116597097272894074060482578490416691680428407745918493915022388021427923447473890734621732475441207937384214363758361860616481056590652329901039331708959979526746962063601399404767874382978985614726575270155028601986792757544074932632061755792830289339629805682564373250728130523073353417697295402637099795649947568596722372412692820368430616182530376286740383687288392653712243860730688400269372051568788255392288565717661689127264081418883754518786712638353069106337457000020403532085124913734224295661283134782996979965232394558907934250878701389217108304041467985022436683466906025456889602892684395287541080187019015973825133553228710644552069121225481249328971129904410068996414029556892487443039466536630082981489921650388584519039120549478928497378106127777185729220825786088752563791054645863369609096054268758047345078127797694818343862815879139663541603238688045139802692470635087261622270565786126090937511707951222409024430633930361925435834625141694622708480175798310260039706365980319682607350295230707694621828596722228106894593522216608696183704864493083317757642579406611980131340243668203172222187577768420314293100017292970769107602138278715436982552040983847323506998228272136226912949805997469159772299776190872420317862812046064030585380788678354707990614865433348316021789573058980167169530770753446451503660848131244802151382674784864758957559240173379280286494413088172211812322439418552801486936003393806722154864262927740058119223161193103179816469928765919795190839111698470947742054339029748522471743032441713281590829365895182818340529830328367326968628112085213662798362699206730006514687129202546785764847827743479811738381148737737581974812829510293112861431511253079940111993988588374919149971847042358432600370885694065727662012970783345844728524403012333006032976466495605535243059996897710120815412027473369183661296321147119972320635297355755564489948413885684660305258001656514494551662190088628889412110284233033968746391817991643387259347848542945654068301958512184652133856534228091930798808834368411526074762706499048898138321194773027249096950895140776320093829752165645777329068105995062037360391124733982024362069401123227447679193586853007685856998817964698848309533586764963636719387325940155641523331474646895696027057729304682051081225692419665394607354533860252039511090768996907726037099043789245753801631919273395180813791795497299196714026114627128611083574590411112057365108971027157710299194947971434751077632751001020251346904710662739437073569155721270475894054839863255719802609340464657713914059980257435236088860667536874423947606750780538983138833257825212725431168595463591285309036580285797634872817264742665550738638084333552848483540392133109114321125363088015593611723633481624589910388116434317081682619206118798074829555634619227424435038520654911188690997957965738306871552874437125922710340173072240301471773218413187600377780306927937196437615097727939133801812507504729110466232811643318295988301076358125355518122110159469573853758281245684497376023253685262532925304979534917774152729295979435164557283249972701262432638201382069124108962341513209075591888294615556078117970589337902328148658209257655496640855038493344159372118270792809031083400122273773465157398167514628893156625657974316721224647495255988718794178283210918478366887431351872483515890212841557121756191288701196089046743203640789161089629114716519379704195820786354320365318557723993483668506175861282669844943316342554411895624039231864006686436507287105462700256936998718821042332684486032229151202978645757135185636079395417642029418781555082564437405519397956344342089836687430315419701248242014510768178057196961659608063518188179813649862211493531308424980579937175788745190959776135002236087232846176212988616561671409383256234239695878855845694666541709813555319754480157341938862645969925134883461100908791084538915160307481306501555328451986426331225123016841162189499622735386413118513007358069318356043969364301935172455103369635937491758145120773628759577502115015932506205878044602538004152931987919309460723713012740837026306196885171348437215363865061542662659775516822398381523900550515777931529827201297156860960575088156637828822351751458912970395310367636602469615077766440975106720948529869931660244427478229220715949570053400631927543707884813362184757400899600965075884729231771183323336886525416279808740172829379826877414720643857814191219819424701155764748073695395061813599662087055733003401551886041263645958542753435150227657285495541399263639448238154198841711742345333641269845907788071544089504846439726188181649726100350360661735308110673771843904582531537709045595915937373859017001169929013352299218063788156076418776996756584896333700409744470257859931618434764192883789670741451589587965932242550629629764267649536214231736717383934653431478398018293654272667761461875606857675384938087659173605261258418677357195354614699036238482278989540232578542512941107261110480527774937321913523423584793698915925154315032709744835519167448792151709933855246543475228091449544492961927685501643573847014145458603482852045537761613399596088099013853273870860315073823515404205631768305509863393857179619648472078507544717852408302961566961922700822180632004215172675749407179291856365482439713776048488434397746933045309418435697711721968655729313109514476377636410827826534059610468555849163728896560822968354626948767331941240289748294777553458323366591366671320739923422845799400286688714248348044159447641800664167778185507972435520313171653443923809637301127470422254988615192563649972509991610841831828893098431521569204616037978268230869637409540229684438784181952383811581272239583994931774259765213783946427143919237327782364907215863608733099233413602293941434142048571510471547928142972799425189356530512968195792337570935926708128537256705568933739816154791427868320898648168195803462006911007704286495536014380100261925062846793715945960678983056524262349646615953295797515444318726143297848418879822081889913793878327719435478161830576526261746317165185726514875470160013387985078155895650712915428229795997961860683838249320763120918030683623656277814408144598100201141920107706386024594394002445752577726530390862104197987972318967173628460347394575645958157818560607102224323970130387671568730795871903850523612431184597337098353245007213913906082757212169794554316043807867583654375469085676700650240395420392627423677611902605360498201321414878843023328575366705135829879851891227570789875744897655136153442020304330486687437327348446109746611722727485134022916867395148550896704044446696447667611811813368105583692128252634902325821149691818469839826490014738798746875688835850849825445170769150430388193603670552559626084065600230039386964556840269641975783089215676036188899722537497465415071524571957117303264119295594860873108667907385644848885243412435078477980229459933544228985477980934651024020808993753626838943776328243627146113175633020252586689810620250959962045986091520157343912917989348429815510166940800711582776185834178267743257440209936916248690689229276898295083502062206223347326874091025510354119543918286683006601701415051202358330297734020022405210645311591121626718913762964135651703357096825614259611273959481755147848105428322233325754060188588134207894106914380564077326256514119584800748829298035235899688973661888374411612551620455965332014954725991078558253927685099197484142544583600843132476861428962814457825771065547278543986055356939074643019713462182739579539605323543130668794297639615186793005534101858325387522414108360159298318954823037269949831578733466027586867255572486381685846240296177376156988042141298345836261284896407156283293416967129970008114319554160892276786295073821951113539836196272219573355268723808331342652087878918965343372854796300374585297803832586869632309785951323640576035286589219571105296563867136487971473376752052356725858100029024959810253897726290005032744581285573890974396995714223593665279188020380332332836985143770135115864471913638317938107410985879087197008870379400984907478321463645399320202560075724645097018743116780816176167583138300035509472035176686571720546351240288539056388844981179843649168435346902818611319831755105448361612249612445847440044163288280362804310962375835948934021576494834411605586990854021909869524353755356398985423812974418523972815257854394570572229566740020305710768856947519572570526328777936619263468950111852307795357904647710697458955486773353028658139371400087272052965300364054320321050472995452457260640890864630466807192219517265686624289935209933584139447191567594669179862375072141844739939551453969879420917080157572968984738946143184241502461509636416991235761888801185167330624213308981970821517466537302778157207848948802215130360031135315840739373102235086379390385665684841108245282060076150745316849129228594518786953785211980996009229858537758288580090877178248010940416210495975816385489419269473367254314598906275462103963348046788480565170049019798582518436553125466497589180927294726818045067719965793248860403814232316211676129703228224600194511728591538577339268155383525885824018499534393427389694476150892136914032431939867269056657823633070413466236896979691204065569486353967442917287084734860491699970135350300458241150243437953633483435543449093956842321132014935886185271991189402864095726933982960780367330985452332167694463884046544939650337558157237167289525056703125195356595277445486289784087919289329517944928844576856703530219637945239270612503438578280073263399834550365891567886903412630599041592076131817338818086710332236102241774853029963971121839046890905060626236230031290087750203881058304308235316442888105878401737789163741446838556405221363033172477949558421628145736905150472419184781007144434244445367719436943307858272928962765418186333163497118689916767222654701645748283226067051819708984483578196539419625066890050429085700689510919331105820061890408645608867266245569447483369131402765458514892429419995920882048953135551748342691653574790542014073684010186464960994524559866871584235387081544377763500513833795292610507986390902038700678878551875682411182987729680456348126167403971329614779570638091886986676891961283295938619690116020485564456915897662966209593250560693668686895767819598016076850393662917447980990613252459662875577202881138716552667135071184186890340990341257747138211846633924715130270411491796925506221483388414025717955895853598085731218239424427981123899377025028383133445088528161609472788258396418107075505229234883809766256422106177139108474460041178562376839968445105244975659566310111353393671782472459873515059616276824274799025517074184165357932246922420900788379362556035249156378909471121231816105455032376679314233593284023791634165788669327021785885495075211557179237894578456925449141789029065271452033862745995253691051162485457438920563117685487484472189315083849963118254857438111669609195903717430655128762597793247595395878596100786257202017880452109236852398310365190222418674907945495132114325325006128586067800830141958287064390704132709730743679959876961706220345520020997247443861652132897967406555235899081571678963803619914533791847932951532009927913392388481433206424657620709453669242136842049164021560416887959059482287684269081260642587383423879409430549215944024673880813810967277890840299947052325486810810279348856735208804153654845070763716593465088910436924591110010746903774650849704330736367367936381747845495699855737202216265731898399858521749842548758480438916146069951462921597911289694629995114032842903553477507989774693891479251859047705872364816366578613149842428661161034607823489524526611398838410285717965535139130548451761272198740791675921760655370863963557701320319060642157162161151406101780649565445353542520981443192319356319581364808253551428550859185895424814883991894617901236453741715984560033237821947690028497263215725144789466106994979042797522453977297544619997132944196653033110132009603411996833934709721926973916838106870603332561094238853159607365596494101241416150580830707270412145184589029913520104009731193846681265707724627450644103147828530858853333826591386962438472512438127530537461306173765258626076525524087401695830410665694114238958686486607396529442553207606192997336391869898601589848981527046129626411147623471567077948460753221013290859739095889137329736664008312130021026873391755521420784405567797726636810745056173209988359201266821710287803974254692397632933672249058838999676952499924062666459853990191607333338120695501713709581599484243697126717560126061465002939442914212797999728896330638062864039005834950593206597925029678534663330922386556598130293141242850948169279989283077718929761610459468431040326844712141852010730437492453962193242992575840768844689635372381541457144615135683654594246096947257788059496456561204132971051949278322001266141468617795411401709204076038825015395167165609348801199073887689807386570771293466536341382990327283945524279522071357559042436172706937357348823049139887196816342111314148916916777807159068076703296777878357578389932303785315853785236593130776921630792033829050189617017106786738173402839888624808797937060497753773657933414144198532579107863409602778536457329155356496307447328020762627257018683466578459714901907416498149922722797117408697752893813997747347328197356339716966003451431685181236774446409875790582867562801433829268052728013861488505430800829868418263750439512454192656543802691542708396584162932579167600621865279577564395148161553411133556674060180095152786813199720685816912806060594301909407274449158719679533513468300269207381642355231030208523346497634700046906449293043006362531432892185613621069205450958651876946860946855039885227986976881266005546440735073064251741458766927609843818882255882528634642728606218635854413330875193724299469454136516741199853120735591257327277287053526070750271340968387558483204667625782156201490885093177184877794845273002720646275997448603138589091585083121372747050370732023513608396407248943727324736093734370152090379865017793879215194485131140134819462220502850523137038484079485306313086144009040376255301123365823596582466491960697593222790600622092538712766691943563125276419619627132217703741982886429643825668949929267450306383136764104952029752829522809497825961876541899253260155543223901015275749298474819798207245285193394342906429406832256296543484337670797030610201688468873614489633029591798941308594656985092367377599789608517360219018724305145033700709095000174734560782983138023711484209036705749706125053768545942252124103452794990637735330706352277065923643918246145842218353433637932274040379484150653174557660125917408650334702710020680200379777183671084768387603193199832257913919148849777301730668699442565668011847950339478469706059537730028467582635951631831784616916505374640221910345303656397296466136166681483429807625089790621785199629371444515785590921624640570855502917984640025369001220926112165050593104119775489384420537029921597419888731247524320815859135582468567997682151096170235888080755418429637179648531791641586016265373446206388933150353639358088933863616345954671312577248694661236505329681903662785118994680766873646994577055798881735250139133309632611708615578723253793075891722188481068036585117430922071585090333777591370635323636762208571625671515873026487736719025551593168395706325406028646604961669945432272257991500903935548299284018313134191668769512258723161260850248989982334059026259413350452177397225543601139371769548847354805525396465271885752621372762846126811978246345964717092756331452529423937122781608303133697841577815982932777855798093100646607228198465357877163057745456678720186866716098380570557324685763677531069351872611175600147966626588483080640143595710461643186524106527715469157382453647631280644954270883031259773670576476346147817202421199225932715114971103734829266938034562084156862644747178377774640564866399093474875007387732050943826216255706083645433131166905034350690556092400964818886305234018427758883631032769346202405397057513873010733708722433118718162147530223710909299108965059902108147446267263782271832265407025511902584740904086230933421655705066307532493245258263452560890528227159833385498715516322463239373382211963239897773053746140581601596586701026108296536857894005690636752320832452272539853791987405083624201170190280988541411952965081630444343250679324725603370994356806924245431009967840483150341817037374734860729868845756600485694632115594195952512610764269265659835840949745618509439810267144211542551197211574401849517816419165365574994369068282391468290242039351788592560714942950835958530142212349794029901527396432130469497307489191278655063832382665574765871113579552390366196568063670728706582309987435604745994450563498271457808781352749973451543327290071365848384021252820736363017180856257193188209404989374043542939641931079911206759444492321922957626887052645298875573554252394390850863908923355222421926550000222129797871838014793730744258149948669780406308776298530164911980063593906378792941535677050891107502495665605818697817875759068810334721121989248580004747589956034402003465955377518688400342970292502768938495471356445396746729836746874052917280162271059365780923195808681224133372329323876343743228634053297706990052238569078723391355252260551032274920782838865410630887879102198088035420428182288693545496850632787630505408127667495514996360808091334001598477866560684162087878382184252952232842377157393572657164068449331994604108471257719184626440446959939567372753114983339236689650332863574819156395755782759190447355362034912163279450314534096042174932281882605444516661944174100653326535649350696875553865948858569555470670767649139758463431518313042813472977962089919224708866117301425011218546772962886070602448775104594927562187957995726801025368329418080192145200908416648984450034746663822424803365215264811115037123021568888748524862393322064633741255675940862178336515906055341165897152587745452522135539494293781808363327352972120257804467797092357035776004710163216039318199375402843764661169684593481845835829132128252036175020078332727995273371687576471428812375437072378830983990355092910234200002105551922518994526915520468470546350714812997295908827255542330786511639764217474616006783801909063886375742869784748825037277236815726482160426793533961225891700264443552032931908718318368169066159407721130911972396461905846771525503747801617985916937511217086961843987044706622810857752902655262849161153532647130609189580848782987541574907995195982554639197348953877310230345985874165597988875170392347636010775678899184178165910240175185045354459567626954118910377642500964101738712529975968159207035726705485160831245606368402321527566627953068145226422398992248542481420164117129195751062059833522491055324094144838759170166781871714019583813581380349123528960791159847454804198590986440278327645213800506733383279675452683184919672381944439748129853831775293767383798405714735801303860756687550690664845466337007297440946450326664078691493272023119222895475395891871881285077456830863039545088526923125625515504135042963745461160614384202939457553255997149029078260548718366675277118308552229250748247136093600262568758941041497210177533857244140508158265603651996258714097657559190583596377954346240164605126670971951262177152453375694136298295508787790836197003508048016836522982886272824829459495041899312631018386073239247608691327460180890913444439468870183635631474589026954441405605613494589944401146076417178445658777162039013777131681029957216343482284807506931100274802692168291370147625570177210312799467525627384145736149199345335740687539317265166617059431302429133768524153113218710836093661248962113652536147306964477839417401801638258458838315946548332766570459990926965164094228062516538495118647206865279576601988734506507401031589614064379809731850338811598142502042022466109193275478378465117234013672348796347974429387878017517806176351927876378648226939073177288491980304154462200817322520883272181535166298454411304409350616304578436921695686576003325083311703446725030393819885057732548514126014005080700718861332703810074288912378743597543076753087010369227172917484724310290703710781276924144102006321110412304618005700374299732439173831655407377343112890302116525816025144323396991474227937169937681786529904358894175691516104800777260893902042637997007458462802751061858713391504467775933415698214950880091039570091426137503644291208756906055862030494013746572526082127571928739269982446433142818192183611695806801145131717336844808517647786553580660163134745672448466482140674946998919992248050267462848171712880410629689462139655810459343471018190370199343652727806425976318881766156925540924939970981293289516876771738929455212530307508909665050408625454818844086620488086574437338618642711526663061161020422409445242197639236684006557087115362790721745877051059734685152016541468702124126552171259479175665131266372483969212598758364952737303672607455668441866417617460810652721826800175719044088618185713255675777332991080597566611526928646506162510972225103347663437125061033785083797313957460583753616930989284308276805223351288068892471057234973234018317024759454668344812653795419347799482506595207297289030414131887741952813961018999325151746747283910814987051176592588111873344977976244705073474916051229438462179962556306115452858425243052691313388055532064336075172776087349040162662173011453316056690039729537639643326883704163308428032492612445545200098277276496813558619629099650821390338963748561250555317513315042530026032394631183148943191617546807207597398270266291730757413790350234585186049125913564140093833078816699813968976696217115101561578472342697204752654991835503435563367778289327541830585177395200092453084291205522652616087205547504080928804261903667565424271020390162259156110710483782943700562133356234370005826462989520214246628741734021481791623470343505434105914576175191318593089455078537340335082534327291301180375751083075306870550304645601549446310559108314965278297631454248129992709855529696273463470984052327801065634801910176600554444871709473980027525450981392369513949540436108748260771213384495532668341405284848495769574175258186671810435132230106399351572710533477712878904552341886119475419272308263731235296524906155556845036806753037497912252187027891215158710642977719430232278285803102369874490765054530394789322318426232238281371627482676554605966128199682787599820839766775039263611520281932962350742889311850604902038073273618626739220515424093620277273920183368220378300018118636485445740432691539834515604339554768413665531929068221183807785202271513597886027947495985527020311283080375416235361387442872295042737935770990823358835039647426424084656731295134915849374027318754721872548844371285020544219988934489726471978857536738987991474365671180590203261139284416409867754201611389260573746890845100288263753416520884147937542021160099104336648829232870210898450294544863987420256921971468662960852047552882918980131695054336371325258398387118004434048397456461648960144220063366748027417233085397165307359375990455464088362668836068273321366207558972509261559550551232762553068316245345981047024330031624087054956985821443839749741964459753428413577917882293721533155030077200058236449178592276993899042389152643760262991368796243769490441123743245401607565264952589718170077954616041474194724742667946507615565697796220886679366960595162900471532486337848598471072356778352827480226315290747372314107247971218927235367641181945401141579251905862499489248134157858316603791493109743316815604473556829555224835400720561797093839272833481921614031932627481340449134099824810811286143394603696737111155763361197061075714542552143349977768426226743030988611965682680222636169752532859567178374267775631402637322486237806861066936620801617807388544821948174540063952403642765611413480795350799424286629485234231396948150924961007438699434677249664245895264837855994767485731202902196886934662965933290611461699304642882720674996126350739988608384965620023970848164674407876792714612089970368491730423256186610393112609323910309909470570052023322600293259639724908313526315913689934860774041426716795305590919169259388700663872527764679742308828885477986798585983843225903181952300562251163219592331630739460516756655374728809638790191986751159395197149563854672953197411466451576624172884132433793165642421632800269766767311751657458920321778235961503979104278705675428291299248280316211636458403098935144015095791761524728717883835657417791571724528664790080293236030527905013811460911103734931629530467596584703567738479033011774225584691491298117147697762509399388503786653668171637145176546890963463548375165198066153397570029257684101534647782445562768331501390100983326266705680375575414683227131372319913809792650318392407048020011526436323495724424928777780554637561416433150609849540344673795956379592083487522894989263729888202106387248661270577039384920842829152638188531197067113729967972433838012647628069575296883834508737396213951205263166821422516140465294175689960801959510087397242174865076740049107080241322049215318906757620768666826956287715504416996391088160093847297979684043170707531006670404680325025396049843964163380460595054032364244999060843293679887078561541682629761598637129816028046898248860411236011623004418438224947670995562751790825988242596048515644649680104488103468634012094526616495753799080007843544692461918254813373451137645888019335120477821832986248472696721703765536799722005389851303905592268118978167997577312117796296421774481214486243609930324326253755144861553507472662478897395338675910542689492342479065658207877808995322580294997571190276255820446533553329215201782548061752410638428327710226682327363714880920464458021329577218262649598681214454442934447648901048175873305815602069120867613935100710130507873352912320117761650046382064875246636062825714361818144242883093684440157737758021438888288764965653631755841901387261108943587213970025115036925059607560718220531687702216171116237092173249244092345072057610759082695482098846251969831294101190248785430695606309758776409946447346141661420654868528937170885985859939043750607874876545449915159429528492886382309405024515663360362039714177030166660225837336396486997630425286162818257596283098478475718466913968630958836469573072610349639642305553645274389736131566490240147338241337644435808748888152416545413655129323116055223380706103182220689136126341232790563528083745652257204780301390022652575960049791121908393249028095262707129941749339282497631297519970332363152687635737085049545486213501116898988119694795725677408359240704474896942997613288607270323752779773477952434997144224527427640058200575573183084642372832214749417661402145487033186203361091429579195189065124666152533225764241664162281507453336113757598046172028866230832156651994889585201333164169333491469887847817793635052534703347147176195085072281827352204595260350308607515645970557738295067390277451006331818137986586623712312177239879963594699714890028027056747364191334381179421399824223236251576179546336483771599067982966158089537576898652849056238771691142782810678432768781743288180262996582664271450078912514894415968313381481760401526106815719788402694969675462115861346727836910119212791622571215007194575423885089205923498828214518459350964630903349832864995189470132594803656737927639611958009294297269000491480582586740976179173975043908766705967213555055644019841631670621328908567396684498943898516881736346978306375309413806178335384671472454811938191805686565711301412834708799481031826333411884425364455805533696271670003314806885556440199407794817708051815727560677841383383532590038154033183144134111346798013723557645073376442491864321323719653328475892802064642301041806309908633979657931750310589449679162884623104279254654114142884048035445370869618376958944111985162891961975958786019808313411567005216147338922534741629297047441570800738385447547908567863148452907292234853319138220443445980610018288937669633512816792590233901079419464103612346682267365956533938085078514987934965476732270688978497148437973555183628941650858783817118776166605461794128194814933424354520399487351771952923693582621200320944426195335480612960221197949793160518213725388514986648729114856711082458553811424677479675497995203105970046895191068973199580452778427133867522768754257795549199020258983416576937326055883475690175368583455787989699544968220935552784696586296939117928813222566269635736665318588412222374401163174792445379974816889562328024338338403057642505705137631812291170760142593746693084829625499153451451831296519156238941421901403674789926873584645808510682759805441484822437223139101102592806546233120535997355325291076646485763312640605348723579341803050048294609687437323305575049050516645345699114798483726174543588165147131270975784443759644791885035632513698118572913561239893104827907957369729375976069993737832045904623121910396988511786850245028506559635631452039302928594134000127594305370976185742737280697446936737412511106045883818008575728561540163117581944993535226321888890140686937301091441230082269685604868418700645225531654827201261653610352132924106450603108604542681789870720543091032219691838509393876400340815145544189256437888690221969859866959747998968395281217706164678367559538124933818048532650926143546909286496478219761810396064641348044689354216873972589463982593689943901324723427941706489302613081274932962815196616261535529201327644355457216404665771469448583623857281344991983005273794463637635319891787430737336285023673182061104817679425915549689178725514824410642830729815465042117027097435039873531125899958390546490900558515094567808196075277914746919094951266841576666561684679029238794258309221325991561990999369040608431737889247157445870432133438814150123694520646487590755969242527037679533185193276848095450123091648669384447990523271458474790046297366977380797220001244625189902643447498397361426231015870944030923465395391884605041085986518444725113366186169433419950009108086539309945137242765874599776245919972390923919610057750336266180652896190887297181620525805285849146478193704351879050730261931540188223729709060262282347987875582639040628299499086384156020546582106108242254507680071262201415710804778674986679276862057157684716298840051296611378999968612151269667745887150857789734138572834291876379779112274857801564897572340570300634867533477781272811691326921171912520703266041333923789316319145311780307408991504825583756524999900347497126845504611938741889142841228947797356202456244045718749476907957438492092677825253294376219464214462640370530951315011860400319810718796941351928978907167754241671580498647630052124062692621972886179943837494285834107899461318061062006109566636950445476529092696299180782719874348651423904726667636537936367579635833094956062790692734270672166293619853082339602825226077929169707246789696418970940398095300360728415069628617510852802815366233697668090751102281325790628120144619795113180213126801780652083901770203365723619051671198543079814259459470064476726255993541967218034611919632542384248522177709361876413442458719916444303358737494710324777543740833920871465128168916281939303994211263178338154226523342841535638586944421249973973015073065262985241261712714584392711809624785371677221139810889502101030234320176806921232213283605849226477031788924792653983922966164726285824322651361449970883700924817187769404419043451148708424823038798609090110824754881800164081328932394530059446385943782952457117626046239538703551366175390116170814177759742652313259376544115825012128914249444999079535612394854409423710083598062324535202691984150985890172287719240149013951825646881161634849280902734049401416333957433699807964196745309941143374601250701148006707279398618864599616339173526495499286568910462269688983077120375594607914463225104744867075943820110091643439947380173391989856724674699832650296236165554785832451010151702459528337465703993499541699836550330103212640213834368036555920430714996041213585029999987515495289365292931867696106812661475941748435925931031839812264660567411821462626502451523502054566266646856003233091433782096523514582227905980977233058830532282492837550905691054659470523312397743840010866656783639547696907561961600054984197214737039915860590899071347808020718173541508870278265740326512843744402861417954437365309815768409582551363470809632863436142044040178384894401114639588542308347975942155982488041493616374698068616596373181581535286533415292930711277903278012177023870532864716362191155540240119128003074877932662797289719916817136287033947444637474205216164615010661533818466572083414173382952478191476558189771332888955756590721377780435308722486559784325366641528868657537470269102522821718527098035409135090079704278385278649450403756528496966128307312487362274676145952179747095525930946615947066075638922648789250306347822760607264448952481531944105570735168365812219881296438937956996511157054414242810216985128191257810310087727769363104509393590292159197733040179992431441702919375644225564289204362148951777580636787176776118350723162919906041644575440331116275978486809567006166276683763327323077225611113391580089962144981071841983019682348859654101304103073287864857314091775456871269552038021086183615700198895453910673103698265504676448998821585656320613649366781574729840760439713876439446314133592772776188824535005426116655294908054734931152247058826652395085799091720362147717412640541609396195656724631400770923204332509401454036899626200956216354022598288377399958359540710969123507323457750190890836949754805222909904042791784986250931795776601514242362212335867967945170750396167936358181537043604209713404589218721039096605294753640209163776689782357051538891859230881167032704371590562986699127851952887163500851588960685978976500366395585377672069755171215362797689670683787829206484299952421551223315045586642489340399203772392125402008520498817667223595296333387099972894797586240262237811899383879813168000349273841066302548098557982245013440219202458667081397199954735575964008539571437409909229371713057970313240179254901111622209798748536646937235949961221787032384814043834948618013431573542464885340522305265313140845672608752065129532212100595215507278808315023625132112584062153846221778677117029186906660790776305599456424885281743276398582814201383694766784460522153889420216747979587947391635560063663107815573141617373935435402863701914013277654220812985174267371793638000573240860222604908570233605366517093138744208797287613272397825157274985766410668898158748170750673402901049001024000920866169532018805767201824802298827392195955129721787937000042517485547634886959858831446046348911944596973810636980659256224685243045019015324707037065145362840172504673539643950328493567359220039120232319527461128955801637028095367695129297247089223539562691405150849773368984020959139039705624794536498584307064207046182194842299109294756912036094011392004393757202163705098152946223111308535801384737776247210313408431072540295396970473634371455560216185070192992796310842936694627437675414596628740091769306020419516680275952183437996863653930777981110046570819587448535557738981570182213291805762856965225092468861131645593073804894155927661873393724076511010228661059667731539375421339149586702060420755651972519432727521731198185475374268088037682709183321732726911918339969257369706767156829434868630417404036185472480966949963329348300365616811616381729469542719701396262049334934222533869414727372545235768761170545080559971531484380782081714718117132813901359802303501723129152430667384092314940841194602044428857563553045382764332641509241961400030132102293823677249845227043382052444623996100772307391429563140776516449456201716511352974793499339228509195076644487386745050070400664676747169432448690179922511292740916988734903787173485658542862140281296375825637438085692967270421218725296751928497023657301048373470524623411378270467648921718324084436919150525678988113933352073122501605275925736914228885916564299885416199684693169159477575907829329517475455186213844359747095969294163546230157794821753628342899934587056030702742065661141324996191680818200996998392375145813339206085827894487755461754396221364794384919580612239324164646207060190524288453882221004955060993332606476310255521641246798289315918204793133108696267406349079433159093986020791677798891262631572890498199102399824450554561569689618149921341002962055841797038808787959380799562162646328314371985541544681829837905876685379401912932010106548106890063084875024224303139338255102149207472650832542097643464881663172168765195799769579917914087849180704078394065715287009612931583083315296000993848543741861232261935182427500897476319360606791054542173061406045193745614274897435492478825670179190552966714803446464936726389684978991696190987138866118694260360385861512955460880289482416977236309654788540537511687178843160377464733858693422016495985570914213838008178325013645452993885296266268727926526452700063683217560395599809785794941303286860585288195980771223070738637090748129570912886380221540898662488830435022667132165505154277140526243975115810296095753208535312339288771626172752659211284962354351306632688096111818868388603920602255026450356597841466332645196445467787145102988288173794126038939208002015695514296687130336366223664818569132563670834951171660686225521949911975499053886393739997776838434683770333885399757456205667976405998266099596549076936854015744518660461154964802720485870454380139426780282988527600119039529903624107934789791015480995332728419413207828625087124934105555228887571996569693409812069149181314688516187219810936834628646315430008546563631924179358512826387819450001377211629665413663017075390456762740059804984904589783755117778875474093476357270935826802899105890469653369829189376114472217078134061666832401899817229474605437432925493901368596149905319046459472044972570624549378891456048717394673271377366981310943127878881613327462799860696549236836959959569124816311285751501436940986014613446117522629680906294826974403103268455106132218196996911533411806311014379416136743721970063601867644183124842688965121558501794874735015058784045539695403165370855505622396756047427966357579760633974889658528536208704255200874242397349466148571351214632678223265327009938116735402115794454713723966584078931452156329596730219108289720636788027658951555298354891736538067701661502631096005409978575913272501130914410501379296203378904609511296876077327325476726903294485212568482018586911003507161589138050825823390901963058675778159312788997126763618905961561619871374739858220409566258749063984486433661848801601104699867325794867879001973383615020331254497474178847866207157723348954687127599840337796964821434719446829331847865054193859127870234930636340395350619689118652855276454885409949650910884438723974497648000018720079643567487823351855836785831418754303180083809037455768685843305165214010938925705505312333429198983171772347683986895920971935824837783152342238022812432805636151812777792536271634075326394005661644002023616635792481113864563870061165227870186967285177290824869932026774630303637005021381262478134692533307088024278412679916740705052504061369696263652478171417865049490544406923532747330003144352266301816180029790670105321924552898449387054424331161900888119670363581698841336210989498288154228323108913174705181684615501926812896802616614239502786750666212296248309185498870045208386421061429157802816076202099976686400710174736094845891709389334802308188244505267352398109305694122958347310907288005050056733618283692619203585591898401536512183141359082530212214286347077666116878965683040927707591061248874049450332792572631969174801679350967522074369351236132597404149799316962201881497579363057112492098071351072865967144691026270184698160020156201883143386488761241450666142400274558984662059513824233403376204044125283397175499133591137144253649315199011487002283845982322811706175678458053725614152435961743303782423010459798328676371495515967171596459193813306071541627837197351217946401630887063754715806930867113306786630664909157332604890153752756853876570355890805539568034779429676792428382322355435169860007593128523187706305621300809159648512446448023325942742799065434912754999106884871539404325159019551227967649085311039149567135603155921450440121537784563313391946589062297235682947500983141105700626810608188635989630125291094717296444735239765026320418868661164498637201738756875615354210388397936634896927959825093515064588393076734632775090281967106853071617615381321976542520078466566579055556703714547770618979502969099769546002227259822180211736461237889379762807942699240462713688416468960007866999115185427626928880917472902015362622366652859069286857865910182378281031065423101169093360184575148509702579295998365225011407802867177441125529931060065766958902339601208356169127163333518590433110470110121014075722315558545812774396751358764862429207465360401333561190719041444384617900552300973599898133427636047693583922912401073860290286369744218072524735979294826209420260983434814482226670929820822056013496384401644407378512456637079861878104774455197688400960717130902914418038543124628739989900028871255681205060459349163564680320063879528353976942672531357107954035457868028236417301156124685893537451547046370005738486343408341004888722748335845610961578009134345163228141107245568868259690368531126004694068483797097984693304752364813745879526891561703676996215241720118416098595583536165889048232877901936645180797458961564906810852200142746790515123878474368424633791169983127604394607448411175976482375943553083289023026087113427568635952040722197782935992576751315720975296252489043461063354870514825219750906210108176558968116430152805629083379533705454356417095721923580175884090402100971748599009278150727542279845840657963738511869114297362197100719540408105276082646547978726817925787838334919044031185657870693694979305467062280941194646854874359909524975101657078361230889232296607297189124319697536551487889819673980859028132444403563688992973449469555044451598802380754701935562141869862215112956730906093911501334887794013287345791605809273562464626253427063490440993685264388621157406977469214980716998974426653052914105053615035655582885726922465779644501111099410502514249919950343533058696891763173649543031583713377740880588852757979201902358599269579940376180577835676848698055385892405372133756711757438418424255502555664233002101640275491455312834416602037090552748134456861710849992110510050455460548482668113604915615346130794880987206542267793023256216783519054469638436154676315262113116543803784626047081072058585985689850022776597465379365500854639824982119868268796838337277110318387347254808320767768129680842070740886818173467781099968612186660578653904186853241744100409396036417089298860987694987074250463058906347989011150460608470013598648070709016881828584535781724762717302996197518325511568253307764690450731311963178056484905665894071224602649916022828839136223554014946961570089868558051621942560703249843011533090422313977469264838215800009986077840382902298027875222405997499772891343297024873684196345794740536588090631040243598150986460805461457797519967937207063163044734777665084022740159056950670804808457327169075543192923984490881631176009549101050277097036891321960525414553304086825668336668980027645190595434023473538053746489868628968717929627422180828118105960906439870182046746354145579965137348010593332532948213973579580781371338942585219762354378715342231086810064766164875304899699682670609039215841299395404305443706619215096308110687965813383896563276031026137648355117566290861105331181765157828130499359353930411936110125420922841011541659689637008996751295652933158644349640326974387029867454865417152699133522281865460236191791150629824239995209878922956697101393900543390951578293335421625503049094133156116418656441173811211570380737452345050391760866060256085815330511178013527904264282502274028263678632656363426130257677329373573896875058317793078559706860794443243759289986949865410287108876708586182239785356734136480633822168874251729341418972144041336835266619734640775266038913701040178580705087953122114160179895537412627826449513049438413956303663735930648517704292797033398195598073505400156119587385009080270205612446325696052585279518011707853260211492191311332311078615091768730620323901392485504451103929016588965833896943548116056126115201973088290583507869500460292336526408831142957084203496160940543544264590889293913148775303656026544762249757246154402330435563079868026039429712572000248254158240572246150537907303344185204285444663114764728242755753319188761097068718937997048454788150932174734257604335251440445354795339707946302207618810906722837986609203639590431295642608509508679537892450401793817012103227636806098790506075865529615972938885035072145961296146333300158565751751589596478928007487674558148179277575147363081193691919904823512162242652434844018174261704756493358837863305402764352695492174440081862922101931663091803315739801125060059217209744048388991484980390963897151774139986861017652974918839458145662269443174544902606228047020260229264372429455400803601746544672640092766348766679227159884408546951251215744472165366415139818356748870068958092879959868804941322505460713651286625148442647184093804381930527833590014558347193345631062641801239945284676998057324598408450877535957488612896267901922682608621218172848841713349034000272426354020479453985360246953704115241195432458002034110886130090457020257448844633431944007424462634907104584933961479776462734684007333939039560992981105939453973900212959441003107144785365841304391806846548592973737860724430949715012621520490906543435618864955232762761106640483117328672258391072326554238919954050045364122806068429816632106716980511082187619109423293316460131351513061078632752626532610143357079325603515172729755409372714039638429279297718338130699464991881555352255141297274331691041400924201472184954452814239445867506182749717592133825754517689494262751868476927085188371613066426433485677116755758899427130742472049411637673221258700953979454282794277273213743483953918891676255330050002303238324183386961459376506336769974770307647305139812494169248017832909433351811063254719652431251626614356747735965225936706567568056476859608766082930971760612187620350347239476844354011499652329144604658136389566908911828058102240045066901733982560039526328535918379635889114478832416827259645687580176539879732944857939869113807090005136213422134068882195682362447429756836312509705078488498654505783874378046463897321042246026941924000418475334273260572571569245490726984578414780382412309891826580025916334970435408297296239132010095474667331948401369924746943146531499193557709407214289855955631804455263028423000228350912839616301204669742085344439994540118829164371762352124645565794091401915681978297041884501133929214758638017311185073862430595680749295366734740566975186579422154533612837650037414998069731692553625122070972343800118892617024297177212979686721069788358260737981611002586979902937650288372412337201691356560498119671099533716600515792416271277514243942180864836387198551998489684794763468233110216643703044602855989016891116618031064229291469597815773715486128726881170019067597717965265876164258612228198917267396494780080781610565484012902273513730728643261491170850866952667080127595619008740536591118094879754348609881878675820073926021236082408953534904445996451706476836996590800176318029418355443669898198251294331118027623465969965921433183479064703182002470322211542251971347387504897266748575148186888057717224878079330174635323146681254167287019823748686997661167074543617870483657611266477970014104866235256824963519990185685470027746505032971818847768029979885594280116800286316633971100325098546824915075421054188432339652891239358549021318573767638283728131505220064759831358237788432496611849481346695466250884823307394790566707683102092881271951941975096954760505573214178329385279635267454868460173308009142492653588870707122737466976537463655093591094595437792773920337258007684485303364452932874028597594870674729903549693879180211762527619210202620526914818667376411885031434076097059283227365151726887757809755983247944127864264329291743062876009184969685164090895767457336962748049148845474582966467973707523865680405365295535654903129714003560981538065132138960875068317687469161630820552327109464780897538863699067554729674890087793389154360414707974103799494683751818304214678929021584210579148990547981600340379977019556254543437118357011691444285467526818174748509821614170802583194206539432070199286875075494532116308691559681131190800226305868666027483160934824234789090159684494860789164394945652200393599559644742188227468030264965889165519870779751026335973031306806117898339880354972574941285786014384185519996201626949028567103995222491726694172906384288466881671833307444804440580306067368929078317208141492540285711517781035387665863631429499102417044898188087577970132745586161925715577122313843262503617030253334018506164281228742408263568100482754799499971517503177162448546715902553202275471611398323638857979602859337129939467096200938243478107448619465893270742811285765060388772610625945362510569204992029304061813540305950015009818282318329820917288802679435260173622559784550824861123328399821999119167915091313028932512903613603824433771248699738089019639961311870631306408328901379081919552360991600988664200458167388590227292643573028556117077283461844838826102532846236951805259519859053926679865232448082019571850538658547566329303715967006152621660455849986586176021995694188493315658231199866777692736518109659948720732604720177694885443692413648506696603586585497020116204376753991007703146816592372375140461789810307739788971276571078943063591679637616513204135158233219246736156770986616078259458472451804797597394537645326961431672900938019467909440035197989252846658113444406728964745906339585052796114412838844955207114243896197504688538688580695650491433705778956947992527826161055569118866843978708702907173702811987330670977039624566877643830649027569307300381112968874600880327106981674274289349265318396928342489914278537971372262205287431090104029351565603218716205576120324792162763692674732961207462747442540728845502533161047158395441807052012576203355368158088942221559785038859197389384204392433242805821749524526551627210592412514061644764941038403177865278041074677481624728731061534416949370057898533679600532241698780750325086377705967608110412284845426720545637936951710925720653698589612725189903663543486126836444510942557514604852480105030663104494169181724554016703399352732180619531146551817276680900397281083510476281400398304725416326273352782546456912315755650830285983196139374483200478905965306669652711160461651232603328575612364739634575733940998166565561726061552658116809825652208746027027103618056946921492260837339776310528886423553011803313237162923967172247898887702952562753939333034465995187494845628783043723355936841291057279647312905014081025663210358533989326030262150427841411808117322409262247700043121250110112891006107635128100405190377916678661956414391777989131097187024284264055137964828539680542977195091042477460428270359975323330042449959195862147483178813836274769056680032922079994686858288403734962022186649172085332529573881307328455850851343434151956172864082047679797305345603038983059883086193720094414055312833940920451774795560030880079301248678798127912921113278923412970506288892444770603930304714685710275327205446000893099475387202062394017107476158742073301643884055270434865545424798314342034395358409614058119360757166754971432608773913070121440227717038448456338859342302808684300368812501328664983142714509909298158341572896353038167105069445331638224440126192019152993434945386544100935066964796687859883973147656042937153388867843603152460445863165108690954727061586921933962843870897685406952002323398830345340375802143073755945157188986902422805296516680573612022718671008088221520290436228547615480435493741508445018912193764202246171190403558790424563325156809596794769291675745689797599700456439661178892120306104570427724804359922232838125666147228978185318688913408948357815994198391747732554887370062052101660446715200917924357951749269465203222485212842430574795840836390900812568349219932712068603397159481635355851156864438652261556150130500793780623541101620302573346864694824970571637460162990295287034937824905007771850042896814629983234395468239899560792436895816211595025928458980189595399090968958792271645014021737357901240335397876666846873611644214503462246302192308326184067956973205571069689255530640432954059110394135576030575234228986815161623202441583176755052732777780255208594333239805588775911299484611087552131155000150418604629308154232504472506197780425471767371525724494145033277655509417169264855189974538831926745715655427877847799282371685491827613963689956670303060685842260337421491617851157139224651950414337773060489439162206590056226475691577999841716989840825254210777161770823997137348639025048239214346124166654438700219909549952219058694423895346696880539589443096242125355728634435679780578940729200846140072235666113422362380560153453697647557925935949053188520671535518242720921976193294268282166755713645740038319956349881743023772950366700672185931892922631269675681373215602130052276858757131644295293907079602859018721544902166017836913337007417928040819835783206428543130537083359828321791068520822378704958030634126337471373163122686968070185253768066012156082988508387891018367852998088003585269783914847239055555520752900615682127208459709473606356221688753628506272509762946674524693478584815372177404969501524433307543432628933176297063906761313372989912009509120804129175972854778889497527076575994604840412770367013960500827785926587396806547764397887479048780838349157375153975862988147237108840475979579537890356785520358769653020211191284759504447488451979681082284760668927347403960971336208155074855471508101350307149467277101407607453527417848316882294334093037461115831439167553873324327865765172821681684963330031237960199867520872118937704837459024016742826388308172285135797860262298809003770130071330065518273846535203302510381832449042515843297057205500370571186205136338503842242383135805144889119349785247771014404627572420343393030316281862730940448195330434271660946675230142896968084118559933485479568950179089047920486856598858711699484453453202297501857705342502061691658584097603069506678965937126223838762162788949365546671981964265575175931605318005178243491875303308379908958608213655502365369543790222127917218305471754322709463258706058620706777190405743440845348494315544526145609971492146140630218014326476809779431111342494877274970757993938743164287931197370697169300804273570700297560478204930215744548300054199988972255464233193256694237114616941113790175658063411754678010850761573768195126573373451456409257037614748387095189634747632606661923801022903528638947428702583259994057192054270774562183858704158169262235729343400634411991007292519348178129714155608321822716805521305834090617806835268616494944839228587684366825613839907505091522299712314316537445400199224079939576335727715105804756072305616546033248293173762685615789387574045250018119007884442384997469601793898341589906802653733267756940131989701501396312524648930631355162994623964728606567222047691273967437971625884810494011388256229503680927711489938167090501120260915107066917553694220550443670664248658949888194880694133159967874198168609352569906898265748086827894442394051480645319881069099478472355306323340526285843904966702544571747302910631646306390798956733873387525877842298682003454390349190885049126350866945848702889766350436591546419946577231020913280119841811349224311929624629420221466869808439819754445015592202890386176216622285761570000156760527427685152056527133130880994328436519593394780723749916576939517182653090998565046648728530824601060015397888468811029176015711806331362934610406053217591900316738534080426801773967383575376869943463764687035076449713683730764428806985655298224528528739830121370650111993885740908247407607474722238819737939920433432749882273089547985512687314129869987082951574672743772520769873667666913878984394089292919677450740440592888250031392348337479225682907970649865450947795074972319817336455802545133334481078388406011589149016814181032643358409301633087666738300896854785221006241362122445396110092912833894266357541752936557432915565614983269230380482627643900124406131832826784051304276933107824590390201718751391598919837740567174263076353692966515049048900413201174284622581857994185945529262985996973740317052448928635789144318617741037869557308594884850621571705818071702998777917407820156685964182822850581663305509977322575941280305125929104815492968026837330574568773646226600683452872933548152314821364550145018292085018870215896093454356611384152883688373315777510449715314647191243932565412680217066457942861987559213812504932071102394330655686423451443504380048917446995044068698229572367384622761310783909798179967092654885920334213877382343613590907292714275687508358760446729122205758188524954146544670223760880657945278590436283413475562594660273420413757125979200679497975921259962839920617129403761486371053142103114182000168670717941720263128401067922353398776468056756752006724419447599685885951535588899798022706514423666796413436187612340203652640540380204659117407117820347871264829136890720129391084477772467916293128935786298688155374985188542386476290364621064569010794650338465260628125061667469932638464007678069475904650855149583713630994592598596662422844912118606048183352169492428279925172712349257153886120179806971476009316986873307755801990493882865149559068510903401402630676827032136944929241921121907001237762255332569648755545584646769952878258374628682628356843996521302134399070927377072721082497336429556871717387605030571894023031273827226421881300607246831438527589388254119698322669255937832457565942832510253692235274430763048016266644702106330248601070901237210281579057536306973055062027652008876618428421751149294757224865341038575789043594698206930839404912173601715064148816604536293932500098317395648941909464604617091542921467306273488670781151706207026231642414769236828831796497543477389081397642238153711082666912796460160606832013807917690817193672390675595429840947900512915341855896770555569231913832626311366060864772251318728104974220607849203670420045239677489388275402509521511076936631217820194650903703170002972482393960051561431290192642187717410113382763507909512678390038266929935418913194262271203530503695178520758782222587935599247280382483789689368293124181689873699871318246817623832758388410510592793960934839369163160077785766820274387760414023555582947678704650127503442788020334952927320876551433134236299793609283404683385902665096485827531577253639306278044424648618269551591425193666042410318603945749738855062068939127877179018530519217980057517187046354538274187112458611918923744825541615984926015499317267614628250477817897051391243920486085476580386777285837702752593865324317368828202154822467651363127099249213794759286997716233089368030782697061172826811324802890577349165401223549409396992709506899812908732676290278138267403348871520991951683359198670520052508570031682318675415316059172296713218748483426926500508946897669177383782367404406200357903456278595163506360147669938500802187865120407801923382095385893367299852093895985542005160488432042497057821385712807933641644214565616806709784083639405618400002375658009546701762430389524341585654991602642097300421838161829925050097798997604440031163714309868936939581491376554639072409830039344300270081837930029531605755209061524111814794924031438690806102167672484566736215200291585403387215023416561271135506425272949319558484479482833549268138411493359696067528005511231736963366645441230656553319642335131935251725046447924620758175187957905934202714198047237871438644760418115885008403359197697789227063601636732284114861521224382751401625910877828507209104969202838071402924059544358653791853829123138242963228350995322397473233573681400256367626137327391755916001199890347201705545120291406871134520025178214013453346516104578963198753758660229017859610303574594450785397173234589058326293589074899805062725988439950744201862463486859302140128915003981687025540736590976030818330669417504491795210196776351923173077716658895969274194385478869684156114000172848974495891197959645808985999407334857540982218098410575371825189305563018722091297629732197960547582275756931629167312110334904675012468211637377710978793070948294301434416453109172595827897288797204757169350876535978287722626696221147838576005648070887015927984494613184455536432619198797872057539210002730358239738457602362515824423841933962777591338151709988720256295443736270018084724790016528073417736194144172428164838343156024696658094420009629016337760063131133006927530548675608806888590037743687912846578897757870863178728164302889596584034433473341080305647048191315872927259659072639436904926235364975428872085794022663504842936526046934531078926583239172325462957216322703140762410786375538750295738962562066378607674486619165737872758263620149404496736676882296093705299277600961232132480456251139543992872709378260729390148527825527781598409662446194623894654052186575188089467593310412781227855735997569041409606809400503301859231206290858768916915282101387175024980078346097004157241023571853246018961919872628171576244235493417300164250898615891500448696413035770651877319169700474391111960860634382385091044185449349468391842891612284178146303108347927194583834369659903815734033930576430401625349225084832642687656961915951791785932113960574871771613428483222012130263574029812730079315783993604615367890218492736465125837279466909134647341330767871425339158523609743020472172084367267391050736102445624858260912272084642975467168345709343365276217682223226311193739774739384179073165320570030040766036829253861006590593417285094783978132725941470338345351549790116385656906879730600110713158391877848126447099405037594044403729287246918172422790435988274378856806954547061145972250737652615527438999034865351191937035466922765359654472468928630020245245708737067185901896064078007804890300790426304016888414837401431681866251675437280591508683534594299351844368768915086223164261864781717531183071684956509624456086457413293199149909520896238908415311135170520235791578568729473567278208171947697012596896384290582440496339582652348913836467954871688035249847624656967458846811102239850768187167380586026817850507922127605821955520571554058171901334971461304588085175859336533286245954643144604354574600962264757103719777931642781172113316551850306647722506595128564608322308211295357593508983503615431517557482629866320133665409932941555521723251476769099379989132706151640788580406215232987760504438409258911504268308279177982283065924604644740689794674907822310049711115806191253459459535350574073366560471082569816841886782172067710703516394930583498095545804827835224123426516623240302931782698467565682535114136994609199702445502390390072398062024443933393830729051691466912410415152361779782507892515037487902273964964157271527119589466156668847400096059743243440986702214487975345835221490293660695188425373857210938893174636656067374404375146004177293422747690757725241617860540474412914002515555552412314314203474417977551318784073691093705566695303737551854287214316470440547192937374585772870545334323481974207823360978843749945420514734897371175848112145510826175924670392345111807215462884244608816517209944994289634486122574759847184203071046338266133853736391553825868449666139333291565046456879125668511108027579021104297834133980549990198158827011260026275239739912582415678429290437178207199624827959253480551326565034351844756449186946069183335992593714229928534632461442022318122564629069414493325240330722275857995828706219784906744005043431607947705290918412162576924889526263310728487493176742210866309086262321090539951160689675846198485684219322980841627884100299516302526722457973759469403941997966032900408685408298551289852612609998851949673047141537633863579705180183730594020045992929398755041335511114220013889934030657889636310512521898190224740591761852308021589565267751522365364512854131452891296238495947759776812144787129203144480093619007913163330445975195023591181796356577112863644634509820899748919259678527409092780086239354621713016649870836714131475786748824759366213480115246072957816668685531794061769998044110447360421116358821452520732627605237256470086859717653536989355075293662864434400991653747051454274705007240822353284931494829004737051630141731454100461274930181272997249847400988522336270495210678942229640058498476300132846464653601605741621850974182633845933099351941523401078177249418608027094732283637417653326843576052152735476269873764622879094142948283417236692963621448689388094613094418527826660820052418094137324450404735468093019097796690621108539142189026937520717513536927826864970296844999248172960629301453162633824920516993837405443085096224457337285740711716991124292413912697831891923413198573094435043298118282018585893002582754062964792047466830413412797792249010354216926282250384436084629451380807921172083875704753901975642447062882984569680047858644056043848592920980385232518922047194963990079440053611722255259925441139527478929011051199478130091136318695363564499589713370534361293524754116388604331276689162934590062706611928687607158053944408659666047290374599841641424091612349099027790382638247760762248184532653129215142577430168254546759879331175316141608837377064860109172957271673407812046777921360627141089935892219859304922681816273797200991120827634170309346351503527006670836651516588468824899557269015774642364131213359469461295471516586476508052040343094493992743656190017386274348654784204002094113169892080320505646264065328710887218348471789946793440300408914608444298546028119758365978166300451795878276834968832980577479265243576267453795640195048093386928473783894133166864999976965936655967251593623740620260359864519510223436424230686225400741101617402098701522964667105364440270364890246408368582441932634818132786130594267942375006547225482301583177636221874943535588115627962762492827524351935043869701169821230986598633102396905459008222159412567667883182368677045222528777428706706334608279320103451794878088493873609541147999306136478020328501222325972479881155639021985076664850300557342233006978762294249587088110140663540170583384508132659244855373093112402000629542078530683593168829985252809151043184751265467087501818791073081140513993216490888907530186321382202897006234937352009123639277020983369413013605267796533871049042794242532524323598355138245401503273085803833580081065500798039952313490425341033939672330233854919140295497516261876139731870209760444703601235878863149288517237640031433553061377339359589386857039731300887468872394093603174936789511376063739167085905198682027902181843451858465233067451059942075917190004579619616448648261116008652824721197363182923891899954411388236448218859715153701038710765692698128255708294875626947815779974357889201749116465982375145550402283136463149915622177191699859145790731394169918537270379003186725731810379678024709516384932860845027965102234487308101964029593487461636516233598275740164727564479277562268174341637705662079127974928166545195981405223507025493092857599535476335098174707983364393506931389980780651700159294592504713741250091015724015548275020164288279936826458013031938797973777677664056915252323865347131259085541516250858234727381448642284270011313152415834963968568344095653628479021091955728835208232126444019192518202480703939063733806845810532747176338871158139426734045304221777268803127154789621008469019356829814893741211506753815608559517047850185059520667409091224873134811586879343352671842918490667735064089172262473625751010255745388278137375764496017678809389505378256159810228295490232828335859861384128107556888166694450070726697214434913794384334207911758820066357057818955025912373354178740527021967774283180902528180908665035301483977823965133423366737658006531835178321897302136933840662758815010663454852231201334044926723704704353823323666858988402292901312545752338129376178590898915896478347166900394183232334655391063621396734177966287041544766509323275325133795841062691182602366519143299061211733494392773595960999286782432063728687695009043680917835594447247948076418352390811596354180747571546527150669447831789408508631871838039924447648021883558678260434177802433418766717000711033233869878274921494593732715988135637852294964964762168736326259984990356303130846417633908138598280449058458316833461046589445484277070168337318253560428817931550403696378787391781555429936725111816499841103048331942700714812132888499222756661003123699790644394877747864597111136492775469937812978295861424057984337662780754044310690989709448483676434206805271850960210865547805678610251828685019556049707814550066248874764937366996379873923368509074549972703667027348912335425978598532255400383378190107327380786609843172607982978669192530090440820505382800987545408032662320449193047797596823481735893842270001053759072415592625297956479005761181548325108154059078326145153442175371406390069929060500874652297702683296044286502264979295258400098715961059339204813241282932754380425453662401726845854952891425853150439484197398103696915031789252794003739367351568962131739142086709459205031407979694798068193994762397854639933491505681797711247191428057435395038669624552840921008921764934349995075706971245592987598380335414318976885086543860908251146593468770280174338075831413726278089690100198396684839293670981457047132916166030144931895863792135600545152762771920193852705679581835355381271288649032588338130607017629877981060322529258953844174591963927180772374999484970886263058047020708842160613432270812535220067963758068743248701374457130344029040851208541232189463302404145010506015968741675499251770689232180009355518209544357409999106383260662642071196324966589699170206234842797650791761470553761864814135129719285681530178087799134476591920861473328575102117860372595355804099394501443093120556016125715059075979120566678648741869498734370387153246927849572740671142160044892704067165943315219776375921066989795357095304076984601178847416440112163693318993579190185232441887335819454669216884664826222607623360756592367644928430607174682374328295289214390367710083059969057351149073852332908382374558702144083998989112225692632290843813688519678629581631838932713832122350991764544516669278985943756075760365934760595818596961932982154499110721992314873349516240304304674752714740972711493148126873882614162399862227199533506689688587747125709061439769659784664471423230839448430794888363281284548552565379842547359377145254359653469860797290679555100580264425974634926287640349875120050762845941762164053151174679916276204494687248781074509418505955489756462082341135605038302906788971199174797932616338209636512201259551594011396452999384370761540188109399300139394719662156904312251074886163108658151521652554971075470400659246492403718964460091065726259014886152529645523312381841920277459223346917069605156214753218130906527981539029004894485854132911190317314382718596188211181167103403192103862913911660970324180444590265073060978438305608595916780672600315637530561313312432936121891862014250125594527903106379761117255857604987158973569212220836361698303925167047639626252581259630090504483898737875495443927211155215713380736848084348405127012439240930719272991376866726007842092950367396970476738203990322959863736927923178151204865721411311108651979248948191110237168434012628960918689457297132513733757219927156910553037074249047078304245670966091329920467207557045689655090821074178719183458773590045431833126296480024964846582746397681617326793262957934394835737828393496182106347524591565527164115950279418447313323497699383859440347123314011459797908848108801396663878257610840187256091208444438307371645349775300087060740906780779021008150084480272925163696528291962577154844705367272689792026038547694306356230932230093908284367171117459760464318204399997545929283362840864678077225881840908281985888423224951857470551485436310459098852098118359616717494356691514562378632712963010567623439255886917688933009513892541187650690841001044493677194946761432410875768641266218610929408242431753697243933875940797482626886525142321928867679076831568106794169982449796834235223066874741140949538022759371125633401947478768399332234123932552672707781152048369511372048179237298650237204526910182818885866634194841248592306004437734576003364393608840925693337793780850856233443930562275507096888348740258852664361390541559943488876343378208230549613518988967405686489323311408080985093996354517513762394673557477937093126288455178978184608375892562461504781014866798471699624201668704373259066949060656662883345343613821034641588834610368941140040357623748573012869210120804913595587399080191613041405544134398915358365990427220450004372095806747179399452356454024044309921871718969868770726725368464717821858194326373608034109024168585141793848753730219396274623934975210828423552002109781783173878061000273658981877562026832884347817341958084382302315002016236672058793697057276563813653113975825289255553586504564161616955209789730602768188792498868171382420917783221211901768855892155540235794239280948652523601486082593057199530683162511529250153635059270888446595066853289365875515095211621559822371922602472718501595516129816517448853727538273183939047070941006214383361294715075357283373098703958410623912753783698361042939043108732673713854851638323215118608139216478822021248882122760123412542334152655610875557734199901357418358831547858419681154190504307331537308630283285050498481469701076187398720569332883637014135536981759858437764007867827791970318970531097077782638606369346420734256043749611598509158275982478215418386632380823595193351089030024210970230699170955428296597408186572650486810229380243836151369487994129905123018991873919977490795336741273925969827738607527341140512836800554967309315558284027701514941027111508724081996236545307132737854109722669535320892575288921939465079788525201814416736660485379707193059175736549930509853363087303651231472263354084628647789880355478018682049518847364035810782281636988173050976769214485406839840534584099617209424303759427068944112006677601177045921883068192270955641397133245836137236419306299627879781365307599347683575235603876513830624379488148782141119384931284877364511254522152481154522117011090919891251643373370217088224417642154581468477980741306369553252912955785880363163391998233458220206862961252630806171661752109556964154117686386907205544757333296810048798564329242983520372542395631200741091056946256377458972078521227096014093502704448847190328215731706368061852404051871714693984542041022785685910115472950262837608503313048127149160471504279260715809931265096625699386618723291552663402469295098796312693139125227270063253714345306975596545049595260105720410281235556103401050642114101860546605690267104373310069962008767045264316887938685697959896360363735983558511335463288005412263349905630147024545199446173698407440017204566881009196867782754349756637578003087443087398745717417004675528459133459360216838642155604513795327231241124309719216623575366067793783103643696043839260161668338883597732062774908476339841582618397456470292187025460992311821557957135337225295725799613947653585918723198576462218790361127711960975551161792488808655106873613646082518565550363078813568798695152585557605238306022125152847822021115781409261711119830810034548970117867269663033125889982834230290861892741499591559626138102806512880225016178918916030416133326731427206263640211487388975625840349789431738113932487833951089315558386614165717585564811409208475561980800551742206926806420166977765441296726769267177278182987602803346557188886002221250342610071032648723793317423793820317091982143648296485752090039828042976527554584196076826569254353518962562289678500623920946282694015247660430246332164878411889759225701607590242644073230336290819484933502944101093714804233768706154214315993225410043918085510453230541762410960668912054007534093233929892272365475683471944377204356803014673162055402441102542160401096928972905765608229907272993079251014316981328882435216426356395915313464645688287761710148293748305845601338926754529802437543426885678790507016220565100422968830725634376942328892243865080011485543812641003492028280575312840836515001538381833362750025542565949441219700741872746025418722768817114612316578533007839507392125806961135335617561106984019145823851477642175880935366122399895839353434447937352994708260285321216138826948626960503135529736473876477500816385663394425727947525879125404130726095506601099410329431099333808335138294055655851981163116058524799043846946735118721122382751260548947369174159180214962931762611047233965840731570981019311853727685464632223866694929396727064597558025767779731285695101388539637152023079419590621792001419795983753522984166425513535177133585404529636746252924195627034138228721124912128284601013644928983798299699697605529588921804548728051332424713741812436092554428552353294326143740660102175514810597860505683850939841049616509645674741704396687332068547796169104717700068557758538908433425175204940875267609091224530163978087173621593476930921378012546163889086187657407168012503554892850062851698593062942095027536918133823626184885621230520625264313223408826869940430413861008793557463991587365526673276024045130556733681170967948660036839291298006731201247914528357433233472219346711603833288510508476014938323445307706477831712829035547305450458991245662726287751820392370131946100148013370291505624120406995745607953275141045037687941705895205880611069770946499808488777504613578293727318628736499528520328922507213263798809769027334736138205801007029379782466372409367984157021167610701759637677278122465402593231072257726412424537907851238675201092334762725497909584964691821666671530579335400096416095428913923312128290162251437145657204363941393251063935776368359901688002152797328328911333272568189748464495208209304019888322665456714379551441932393673326020444282671412624795452909335538276570843681857057874535151953590260777561580099074003927404629038704452874565678397537152749182734174543594626445089048345378262220383312720314228382089913487704991173153042918429210032082455405806520295728002123202830284998481143214237026880760119436307961806977445369179858628922022869084305957397107811103795777503598820302989154181479560326657581604555475291429168594317727181157591066679883609295167060046430721269817607973503726656688618919051015306199928428145482742078492022136427492934234355121486807863013824037971716914923607383656160271990804881639233549981704247457659980428186908733885876769050104562308862673468555742461465861835145772104869143171427005855772252723880775487776778469997785584995061407907263828179219013475624690586037682151334613392955002363461592442522600173904370577089808431558346467738572010052919852423839468974465921077195687441880863608575913044821770687009374099357201460850446000791374514185775385576863999307392218753333419111302854068249659215815524939227745535057618059347755852764247960183163247749594299074883749606802937049587152496570090343861882792889001716465904802839930412682852562541305661855731854679534955665610043336239560605666563775013112587324208511050559302716767036304770429005168199374338978837078819785588510640717841037878972717016179152107675043401439736180029569807237121546880345990071374164529653641952668022175144635985383142334368297936261690843526175320781999596368975243506260822445149062896978447817650230914381492259584996479668725176092114238997476296199886887789406667740601546724144049337623504264175284904699161281678760414170262927321973362046306139328903624835088803444284754075875838047627743606797024277461496027097056219575201274307065472951645297167910402374548836813344843431493959859653850093771765215678676533631807183366216192237837850601713703253911762102033748319837332052243538464907075157783445169614362235640882822696298162945359334440090173343979825589257986468746610362968721934563472814539996569709471521275553954738625323106334486750349241839268276361599689734849850023540407835602337440592893450670863811974353554802805292180177589003149330036511243030628853383108522054558413456190360887738651891942164036208404711035541168812463107883283289952834509754731763861936082223565828528686794702283599348076961803848993223091871150545106047049898741620037759157857487304462413016955590444626898709609230283094601313804934892889604879461226468371198297586342413995026027042699939997103066439287992610358991333220073352075537177162529396693484249223945952183831627608672099747621099090245411301007936774266064184969057374564844005852550610125442745814702874949977923954363657354134449913973157389563362095717548247615277878305494543231822014612216383491521404283782205507556455262866352680953495611924896192192241135910730921037521837735801763189696856265309859483979701196659471746141800978101982360866464991141756981095008460258242083795525308834995217953717885027486212614577776583080348371248588963117883137233906563904496771173361642588185399556044304007297946841465726996386306707380033735675363400183172404991653554770492936291358015939412851124579498718825958197729777110456986810811275887150505606491935926936214715191390174680984146202161665962650599428422993604135945064293143791691796704383829028632414546687019825545130221697342641857359836210753517028729689177376501039291125655394693775805742590215377062932678573732978593858434541105347470086211101052845196907811904547548400703732423037563268966169394767636267443096001398042392663529429259985557609782780042803788514085585334005437206183124444109012549240964830739357416623730933718070710976514488371142513965812626541823434829911740371422366380819599472747062711809861630847120195725959989267926611476750164771816446284753620481500115151148654311676989255109401343597323356185815494764987950835961375165264311956821729664940615042380642161188086515230378179226676192378769404634522312551975878936927933159576438068700626666902897643035387339254096866405783947886721679485067548786407121292504384869077326785758690338766996129840068959461080081870963985130678770772102594027929472124356236704190229148528092693603098573914666242231304630365281466320947137008970413076909389326375076498325585244269405060342647187025990691946518454381333968684883152080771263661332590902326226762167037201467317171863266968416006143869051231858251969896639770393515236814219706085172579568942195621039479821120724690233142987556023778456850414967824083781110008064776653840938090641999729513263097678253243009108236250317532004506289333581388179770803234802240145561997813158696285939454347095612073925950615728971680873892243965632162555387983787742625599345238180461344949051524296756321624646555312537985663039522911184275572980891209945492452502251838321309983399312494709014134815159075010595723673699682720856724604717555417503233739147113238211636606512236367528849976556889569458411404565381250106300926174950996342088913442049283030504297028343091110405895870973096665798407891479987905100150617230437979324810287891023227671143401396906502275138978455994341693629484674187836003275424528642133406976096683847732254323263457739186710617715141653073826791799606924352703170050778817162003793847547408746206788792143513239754972866905075876118237937499005072239346996442915428733344050215725328832222250095912906347191182891694139294518935121976562795521919823746339626349736093359156388311546411527926859872387413037200428662258236431574716103342920794004712453269525212926019145784263752325855151025464468096099311937033457847263738462638131812833092023814044079293141201964939601437182976846386576186910694095617679409287430734983020376960294553754719144046132464524980029098646453439306394319618061077518326886497914039073213980389729607715308756185802713498147719824934993086563424123093318387587729689281480882614874847708581590921445793065992149666264904420234293749606338265674162388319326498282939918167208893116755237398335251118766592106936130545032160256183917968820240209887018482757022755063060727570628366109698542330689745244434763703415777625485358108235376872166190116703618044012804662733111179315684480142967197738259795750273593417768304204378872661670034749186596065384255383622626319147975997424511532394948527614132679889780500854618819519803974318757381181037232724122075049943550999492937656675183520662406391878136870008745184215870008910509084141325293085601214488097546363920335762278698228062063470801766764798860319883141769577960722161866297929151437086915017049727077493082787184064741690863589514644436438820766909277605596306999478301632372568956152693967515282957370012714414808318342768171998715007353079171538220267400160411221121094455988751196689392551128151620227165096094639365955096245384367720170433086042791190621424734651341697258430257206848170899667215972191977301610463942253896615263147677199881313294894166119438213896605801035543037793596069061531305362430547320710977569303010754240127385411070591436112801257452100240380461939345576091352261200024458080734709558855853297184623970456031898348712183988163386070671401994229979393766615190768106306919667310253242814549936335061606012113243767273722952920181764631556633967976787551425383835398259946537212763581104966936984421597363349673825931528374429464869374260614184296523744184125929059222788220762676199498297313270415286647726409099002254253588860720769620221143193956904605847508869459460749248798132609673105631626702547252077084784117626925247365538370822906300180341978371248302214330994674391365719012950082927240758681251625119749793235703400084854289649144274601373381782378186043966056854523731127527051766199887810762840801410650173848522931701559805758263323871913373467560324972480537283694946830205528217420338481389018909046084358622368387937610914050343218049839530450834007222899983645109620885276545110094694838353382792231973524507619008927237390770032080217622522984943505348350924473265737396323688723838658875302433150360533445736707685634391369744175470467774891060054762988911391791170596751908818486019804602517338339621657011664138030333313127100785546555374209070377601602973892809807663861093520024790866518830156005155999725310190120763246168981762886889818958489790000481381655031549262750186203421272507946371834754206854327436923836014470511620299513589193132988765986703135399367224158722181314787121304786340787822625766866012477546974452538904846841471584252274514781750641830301348171759106528023786957855449719107432835992055334602272064465880727625510323054204789440051430807731107653602538799767616785555752823814450352087007619026078815759774259737132735466290594707135597824593088459683524880485356192301842655285976654866877517580519409843575973160016275715495458670904322411399194251955614692950666012283581688193945762350006252111700599580447101658403315359033462362154421781679640172981672605249255891187864297659347311973543642896971452398079601156483039283643323891757450495014704839446089108572595375357736009179065246385587352731870085603550014588559186110137367652376605458886756094572923726788537401727566826039488194463535673041142028838997780149543770622059888317215883398248342320892457219646306781488606149743881051965135785579771859758536719847085732526024988476557046093979801791593065974170204485063678383616764150830758320456956847327084196007749176678831281468920412678330821646927909445824460067384929515454892250527318095582761082062224495423978706640134181278457100543988630518687658994161864645818370563551608687953736586232325955757512243618116358307506984132720143487348117974179166051385932767852648965667886680206521067443726322920727548714206134381842232131178384317043710615191628653164092565671337094100339169795674829591942603529772592083627704214360659293479796930597821619349745531439979266447854627476648371889518383310233968610693762511815860887869311156577366957830522060436869706303281093774506024629027527537082053331642810348899621207850308161363130404829160324488538580071409712672073621577930855809215155247073430319153676542013873294424915691930134252725539712066036800202338909577181824954164065456961857856387720312129282423054224939041913857327466724896501305553466563630725815155251983828296630062299184149728154084573529604329888935906805158623831930673571695423121069875175867063149306594274200100691516740137179441536641666671014127077794417471787339305179577507404665122388334142702317718402650050939086346035522631075384657882883288414766343343778737126730106786413818915145156781303775593211459635670867862240244217436849753262132211963639973646846375532509465666343919617218469588129124583587587138732386593360997556028299865521142535029574867209418831425130764513357367108444922823864184105126727691940128668593534796489470291034254086277628081909633422367303161522995043726279693137258983941293944909118506249446243065343625714084561289802613227727448204414195900237674932107377340979718604370560526706875594871233324996889764728738050711346076867412350300402097774724947389001926403634544695079704995052850172542278802234582776564150802774360621588346166501642455222943739011838422947769644556980219124677952452745854832794982181389251010003245824343437256908671085146649815589535362501616898814218661597251538673651753675647172070119900255245784743492311538884724509924548680289439792581177836101811691987181990634285545707485374797901650068093763336562187140683484244945506069625637940962420911869963638936440250640357170934612345522298680203336383048165457034242425167968506337982638984190051801775344754825016181203617252012160078382179340091253546004593341496394706484392716930656452108079798635220197372168937299693208492722949296599003529949390781448117614588357060679437093696585499784994159247774008516335657929335012680783428985404551790608082505939192827922832152655900053103043925692460437891518138789456778407275977522358407059234486878249879810456042310005969848349352330548569495919866278166366374179973664984171479003749993186214502776984216704724631918283284355017876216660905581035100420830448228095887809130551844961183459548360262639411941189142432513247926996126577307377784917584290724973525660734315844789270466019535661703032844662084110051420514263318285820089671299549590881471757646870450178995300734129022366971161880230548069841792084522596189571224807272923563212338516507727969047099994531921135371551100704803318570520122142786854574815239645802098674865931393973510169526758415078490481157069488820518518528529949536223830616304171156418457453438041950392406768166733079417499372443489739474382807903559807454995475433349787653932740369876632042963290883550759226491292459887052706610658113418073104021033017711987242429153941347077394360979182654946856988718339245395744548187458988699535827018149895480726068072816103247382556233429976930477938694276813912741668314044887110199329798673775141372489944525763511298357248461824525242194701782689466710935342958113681823489954024625935753150295153969323624317791016330688854742675308842889337034610837616893622082959684684645221468085579003754267869883507310472302793374983627820103758566777739174677685651472008011539383950977551304724563371317530704800187669957044372526060198376905511484637576633456112882081103381232888858065864711690276808810945008521006184858210397504799171251398162682753445097850485995789217791791615620605199454509838505380213444559990178680988460180940579669189262034563457903367341930629657298181012329695704479528404472736620613686326355628086667394348086670381540446625449180256897669352843923022259031602852901814651700078454121405264670859954645460820238995471880399330747588976177728617893521226375030915728483549596625406439652939645425713710925871468519025037711090003961396559644665509833703453371599762646673639658346240399451614184846109014081854425778221266008349272325648704799050666677937272755114987069007717147437037964682260987216759980642598936209926296654856980503752535230088073276915815066536016473830423796099948180177427125734731291767519725929380805554081608663432710152886446329331212353717373215948868120328456581831496934533885867648122329527546856919330639749282403572171257104390686924585768486904820263986852883529460705588217120963178004731660307988241548729520667512956062537420010909875566470341345766779090952262968085736688939580647135128419526764438562139091758182316034630179207642917280704079265378342180985815745352038464687305669279202217124561086301341669295932757700743418166900563273860833381532272099600408087870700982428513249675430222299325761076675747865695306814163792489994136415760096664190867069411550803357280667839825345900955946447497511055134249895926562845631512046934864146270493501974576641407155296670930773213429899200226279796096196327558564200336649160854158642946498963173161777302092249091068300936175099776224630224918138878381564490217613064538349367980367250545532857597107251209522603333956607971109571057733329439804109259051236182031787933230499315419255582965416815939097522177042417182862957501541836141189495310455286167669998306502792299727516297303754726122974938472886394870543948403829636733527734972859397935238319681189945218006645126100133938210106277401671280545448731250735290773074719523972408687359579286316291292475308491637858078915897158590346962321800539051718434769185388033339890797093888714146449619004654655141550496680298655488371256193488972239150562642897056878439725788582756016062432970976287613559501058822367542097807421169302664620888863508034474550187231145439708820216254664837710597355086860720410954257221602212901756753946481796855388175899872785107078692436921432770242905734497464635708589156783782939218400866490856372209025755342874649402696241849969475179551333740276702939486336493214839753842536112947654197641157071737995864843802955769579118210986996041584547779236604122520378624606877230454936803424061365320789462319867164451345551824615904606409958574913927305025537699005102619755152012284263934136417021170605206175442308998268967988226813350169111111406355967485676559443001385937191293994975664370786308997783289903027628540420537195931358426978102662187451404575964906666949043615415439804503804562335230173743997227878782240519040791155920482165267281819000728861095506435388116884207887240511431968050540178551668011930033444528921638249824287480434177775320321518538731135910183089043542901533546883287983669409476765588916651000298605738519535485654375844891987047110255290512103372754970444979061727865498351250141916009800646560068110268840306042885655071553806850275045528551084088122514308307033597705644542810119779887950954076674597986904784831914762937698457525226522129920922035792833884887279950364867907767992435993846971646377408596960476336465618461071471654126762408734699986366881341981071266213475373621001505680234436544917546308964198457502164805013351334880139416931631318738751486858598943250815225882731259139912378086938585228908765837292899065925253797749165296427615658944515647319581758419852384564511042637104819302004570232145738839643981764152277989345983218584515057058595727969726529474732600321620841446739103640907728955829540316876398010007244848622630846492879777662797049029294604435963692122081253012061257179068342826884424271743736819482247427602486352892472942050240105186236356347767719741045783472944857671073967681863034976840428598379959320577659658664547229810999671039293871635096680649142641937331433212145718171756870447956022949121218391284653894199896271604214042798358257237667091681407289609744507204434299339199931788668964967523486118335247351723260573453158934655936984999778504156191388789421695964338357003926139234441069504665398471366563131990151863295488483330400187112767909610663781574689445298414069866934063298618009116088855123285128720697554536337365042473040115059509186910309444756332619747969955442424234386239103031662515955392050735234449732498049633778731412270806696559814571887356824655738916439857004066404516407795423157878738643224680197209223068832347014692395933357127095664272111781347240899484101530349109515257585445732739617982185197924603567532283285317283701257682550242806299880756377332795676014124148637325723802884881468389580847296997575162593682491284220528758472445608639866251627720585122016996604672399463320777290313781479729856601034548152566376968559047062009724129880173531513516968702378092730333754186747939093758454882751795990291552970142627863105326254870550791740740780671804921531085192961618748075247967278576683161395112076513667243161584519365889486212178297051691018118541510518231875613767036897975158237518653320326923058175960224517202882424559835400311698610924299870656305615765203927923880220932862079126406764123450131812324868593438099915648991968017762154735313861964753360066739531770163119002385043187866310748348343405924165640303594703964808543331210978648622915788833160873417986651569668207971350056651351296814388475837516241609633017725311811182404435026469496891547069294878232346790591274895911736509582444767013107259097829213295395074937329650988486488534388444195283798239996859875020586262699691492294536216927509726491953240251558853075287961530918105838598771292803601799841979759127497958575686680505628256526080796327199007142524746455080219422137288932920312529724949777599126734551823477385656753319520104504107726163593237788107999894838945978478379495949472554456598530988710912617674655920157509527973649929690658783086384571021427478274707243070719917712293660292013785419103302932154156293403033964967267757467603541485181382794163284720138978636876350113656511104829962417776804539925706957556083427019661915386000837622332341678803238901789188845753994338042154862080298761962067467408497738687274506554920521915062269151837231573319531281327808188787271956856835957345051542288630097087241218776440079836767711860908638015724327131540443025149112416925496904189726531543398503472066279470594016510040781463733530695151120579559571910064404840266853018703503761096483136307798892407465637906919410318570754863126339165805859352225647233352434771933252099793805274144741947376429185272089847863152113926050578676214524590578938434733594153863957588903630289407739340261243202544593475848113020969390735809139869157387514477923569399827470462069054156509563104226518550243535165687365434126851021347856829043416349445610747822198380942817755202605862619116475263517930558090403535431187579414475830364686429862629661172349241557413097210600774940331499648055936067993958956373563499124036443889746834664418775371471396360449536652961096575626582064089024292494161748400767124781562058002502980309893304466613322068455335492519052171440273610530728542233371330367223651519747802958157467972943985408615016731191290431338783704057712421103402284946229761357664024292522841907736389357229507226167396977638256055085751331606998343623337545694500991255350531554692887332424920543780026758894227580261083821941552113565662184621826063751544612388618149362924180228240258341501387449105535832909972881859521486562238114460832412988922934976587092633098758410669458768644058526980461915012237576324919972572788621459335386105937680918272750749214269563635482160995950196694125399399484286042479609324186733812494808222615014599948374917879560514966821220908410929222492330875808458355228010446027813328437925843404742744694297043896254796032952999141204179389984870605286141732122251064741736795483042700172983045317452109547198420063712795830444422510398625788493234720082077423429916887444076861147745830113238035463987962131430098935563346759687901781760268705517235862564806310299329664253066863363417154028001296329576942661119964120712418297742066651639431439620302725069017169395109110774186154797927060851970187638127027453855644013217565348387249157907002232362093498763412555409738902954632413466746090472927493391541589444977036029181700398728566691552470241773765462176419870303801197305615211255634353493749913964769428871715476151250761402975625537927133826183266860537975626186538404198085932725797373061384966787041019895787640879958374110669818837670728444698613121964526240633298351601573379700943714143122630855520574751220317333142186094381365295180476714664935751126710470583853162315126419562338332725399719496694213402082904879318314311685819793447017099814979646058215230335148954828303866772415947384374823812357037835669444232489312263074583090391044065110037844294470570738479017833392493717036121326509473305016965363543556424826098195576448049338770819872826258107775228664339501633758641352630168063722236480226877208386083956589100428018208811017344382918361441381415137137503551789991669433916883788182087551173181024197204904752581485982130926771722125847213996292701032789629966561169602001643802672185807680140060814185658333255333012614838972387751417583592358977291032360068961123445042272347213324489806623813489569276842032278460795984816997441686845774408933408937601929191707977950968233673401352305815001788366154688784169902009183378458522996630513243347242834809138871267494065951137729047659266088785814129398690403028170988184277863571872801775456310129463742380017357406170349461043104574102496334471778575839067257745189823455997949669059318306237356544265270129499550022977266194811766399473960700274660042423898348194623996052744805970828333405239712402091234372173255710157429157043658275833340159624010591465207157898675937204242299026309619144612744350396918439504770712799168203305502521088310334865882842835900134295855619552788691763788605880426476269246874250820794459090244884015175178786343269102559236974655643809471551448994734079341115574831748700746330353473825161003158638474200837921584685619930535847736992833751344856892510263623987493700998307669088532823457556000685946806092515824217291049611871180708580244637097467660314157352362080851274186661823548001745913300486492581187821090033114422873779414998847463155683221725359846210375026818978084824500186214538510458836750982907010304642277481612296189704706021877470828437704871842836925809152090238469646785844955131351722187070406393152474097063114797558885766274414940704788851078840270104071282597202773127655569851304600665873238234316179520154777562597292539197004021494656541829320369878286525912050748405840399560104067417254875106657619210001569337091549779908207965633005347015484781828178474890399589354678539385932779861154987012787594586956574467518496412214475020461763922601468603304912536245283790513519609089361680507181598405689440473486500955466921308066649533138098114450133433777470218450154448812236568691166178993023416018739908576611312292882773117974739005504860257811226306923056718221674450466624925090383537334477119622913442622626167689138348760963726067306840682638041490220962114143853408224686982584804648282583748309998152748616726010062239414906716697712843433614957898648376207420868226513895006515110332201188522374034158742959256367718055634294963851581531526778655825544747300042463296136334848250069747055370906867669347444158530460064660955469973669190021907443373699310084813606710087447067300166961533264054791761961186976846764699766995304052572151814309542492722192264032519689197292764080620471904227530047543828720927487220587670526527690445876447750479180815689820101691610617933576743693863300397710317496748497281850214287825238665297002550415025900065363282962098361251574092365061084104260439056677101945479326418537700214816191258587186917556319315563172628727026560332348939546472352693320134375077222003792922579433865163782292539843707886898445854904754662519053179946373770847328603551193280855645565924111434568567345138759456480029569308205493206697102067518982390598408922943015392338321452825487044200323911621832938814723471605221528238184760684356486603280033811690674713261671632498722898079073823800989420542802877461911254920676258984742825892688534007051343369481904477191237327699308331764624714243786109837143503178277253332463000238813835106820752133281045810103263713013498159296085629790397615878443362931813316391741726992286537576217286842461776868564789982360858159056691094689052943365161485769968187944139965480974456966028902612916341511377944407871386961603306214292132655952120364474545891929325165372743217260033357498579714274710020136663503517226784895999374330475261683753550031473827477731492864193336817010420468603722919874834699100108662364471434363727830386847152119588025530481156502328525529852248807604224803900908037056873748263457851338723161045615430525938836245589714126834006030279713191817675208927082829784163177305445890770357578849336835495611507998583556817875555793443951516162055355851645699984619000886521658002451365048085118703702735524351877428967127178433897528239584128379208537045929937402069251686033528136561537879931003358997951067876662801447624520469754945708606253021129595239859974246239387876123304365234091122556364152326416602545245199588310172180840593825798610342994145685008452705119843954212902835938831050789959464669884780207491943298241498284708045803484140779297506417728786310252430918788207146169947541098979955920335465701465455115953388928704767878768622448931805340426475362902266258078946297413144257003815609549265032928597304099906499003981671063222316068056978561718074314439186160758476221818184568771183282258157931281642617837923764155493968104504737915400048506098514236220722221445460682675598893863660795374950646852550042882118364051302233812004268478685144129361739963307798850081718443873906166260682091327153364956970074741018440621422390078187140900175922527900608836041408409140094295410184344440609016276785993856515691847776767472568840011440462627632319433988543503221225812144461470541413372783195081084545164211438179994307606899364906159382196394328960719034697510398653323582662481499401653205204450402103149422785799388397887617735896749595050206349375437935038780815838072572078194178120676445409733767938787003895148845513377105864214764082867023459930262578514236626015826786864810182336934817558026114967481513507994314015661195811754348505674693618298584964779107186278057609711101729945436415199892238548792138025748854473617662448538848965709269439205443131446104940260971316901872694222850384025784801406946365126964574811443247928187724209830131006382479403443087119515616769145720828462254255404951684898011517842176470220542399753975367513702452016662811565468093744063136781534641740643455842574710431786391897622650358560045445643447316707331763635870197965951236986871756970718048808089034433442131111444182571299676556827805386961510438815926476272700949731424955857353772681787835458589484847547285667932822908840561802226982856786437569979768960523119105303230782482701701962120922367818573923921290779879227802853012336366026645380976031176829018108962457453266005980970878577459656901645214888621807562335917001760223927017726901027293997848703297054675730165058064949997437653782578682786881966851753357691580599532721252214401641621741454022146906896162946059024278646298651209608340725255811154067461138248567450200754629103864900793663905750114273803027685466049125791201677062783179687942597947900471130706264139917653506245949554430448551908384140719862599063496735314694147104349629865307880883921932859741989602375212599944804290901311047561628678572222251478590209048940533990173140688879411293263498200320244146045336811916048520002186906756841047207494887897594036763055945585567735232066757398901490610767640423739800629986304218429894392675504224816661760531679579502263810308177173155976502766634360776061577797214260653239332903276217142614069783350015978851899058284652932457559810679877145288970874078691065151172447984325956657578867380437723875088851558750507449711595515861252048098378904943155036505210878850199490106597390894483664684666550346003759380118638809771924976162074061066341476056780516574992513896463287346781079376101524679389896017873455198684151125101440531890479538146395735198075073125664137340784642787034820381706790160208409832396711905455772388436303172293549500255387887235732750528918268447152740166599252174980655035821263066004455594633163919552301789696397982058420794465295327329645288150758412783631915543045518050758672983484367459146057190013612187121743432493686718434774995744811267452607259560997128894308090061952923124369196437685547341694572845439524940109102504223478032691000105489688110834473023728551870549628098167349042184218468364396545281629150605591841807442967042947978315489018435003959818167924389622793253391045918964857290058528815650938236890108702775110156773982907929452238509592949145510448145046675413817732914969897929354641264062220267203850447812315544616502141475370743386628508586365559237040946906803723997975770080916184232769928067900668045734767015871552863435353574287011304832695692941870289186746286664790885333797157946374948045184102684384026673399426252007583358692504154356558723952703928064414248827084619108579198178467178536044574866119492802100594474112060520377823599074014500369055438442696888044046312727789263272836598807177290702896874135500019726421152312596337686021239608018960191862012861799070776117921800459881438644076055015294772680205205816168329412302132676254672296555607132539667039048567654018757637328422338129162523480453051348250813932346062445186135780839177946685824585495944559984122211019369765791889593292640127386999250079288496859584078715636222364280865065065078382994666947258363520361775914252796355095634625662137171158701018227753910207756220267415567723290551972985121611402249011789048309643713812840342822334193285122632159046705685004601281065725725634782148380972426240847729970280872160745626151072805408765711709250551113382489321144237032357127426450281821939289528214429559237899805322543791838524157314275493336891917519768125713561324389986790708945681004355667491961436634121587759213912009536019843622328920995330996010427683846062025942538247319403838222833790001534471185639144186904261403824347670986012594872406750534337959661811924927518342164910799268669425120851239687383656783601374500017394360702375514149641151519997752821076438587320556655436819505711934150886591461492117407456169997225958569010439394449599909751911169408341922266207142992970467462403554479856491289415779995325072986196954264067564515964732644571918948662392168434432890843015181525530684404812226534102048052470719905296251137895866224332237832388270205319126950096633120815901236092390857746616383074082900032491286404114726493084785639897873085631118624689174447056723289715933073818335825514532286742458820478792268111861861918419722468779217813539600923020531469990243594730471118250605428188218953197141843459247168749916883511693170165851988880875594285685824810323873031917722363877554527620551007998607315180859298953820679418048401051896471047115948199752374351274252740286394072628287158643658311929955229307932997091160999077331879479268069298704248653310055405147288846505195798557205996692154483082437247034360211207222211263398207553820549759995088517464684719986178023311506250276364241434430686848557514591610776887895557455261772397919031447103386524732645511281711274088523787342719117388939011517135303767121150541730311001285830661320632980633466231934358800672002125990531920619254958026155817059965689145451949506854619947327939578382801924698807718812382786715023688436749832669853822062843265761347400085944579014074964848128047027958304169558687664464831765586709186511774210749810260651566849731641315755874435406332988195202679497435884062126566425185124485634018233577834863245559708116230177900569477909216267928079423692929174550500642098338875568135847432191590703178320017165637768446042666845841084900684335218539635186809401118940085153056048861814207020574245037270769816168423823397255982019312060217431752107340379648770674074930140587530283362331455417249494107799820255837268036981763798875448784196849767958385063001092749160307159375195305114262946242425282386529249360249663439644557250353379340421411047160983018441399021309789419938716003649556485086011794408051857551113405273106833928779556707794546728617035080235634535228706213544817247774033489957518624515297676775922069240468533176101494487051363072312104977227097582169869936320592119369583797432092699151308583796780032405384612985527518909392036123725630967962096074013220038113032170481494550802965299320092544841345775926443395069257914688120173629615585185928800202569382120464073776740091885006189505175983558695939694979016971882341692392338786438043277439008820431774345641399373157351095596819475435159382639552515594426607638839096475827572690867944142479881766705052667376301799926429053908323288354094661434524022469502201459345132824639619359121212858056363056203563211921299661072978766678195852688400671647981354934976800582302004792072933568110937875714918708045528506029868872176942727700780434904754246398241427050049329820120992265038510605197380117209858904822342117455919933606499153354516606277125953460032034359095038439453704889946081911300593191911066096887382009705913740605154920747839704560378625561889972958720369864025647958104931207569068597527516557464566152143890331852381805559794081788747564142665772327078425914681642900178372995737673162811975781967527624765438554344041259851281712989415723844294184621744804212391777156028244386835487162757818514786700075945529387265011469220330404913309948126155443117872083688319160020792038241684030467910435791387749928021398265385557961090397481718812566002983234937872845363073344129446800125717019385733074481720431737549635759328330608592811150715474950489622997485969394021850269231110453521431142208274576046526706421724442649525762668828768162132593706528671376996509296859712865155598987829987837712234265893017518455354472899852671428938345347820451877246458109199638968658989716212067429755439355370995000151715883196940295784450103178350459857389260162191255845344649059911467441445106716868089405985856803234407347681861186202422883268597042395699907975126607565734385644860109061749309963613448956155728628613410888051654973430515272116852418473640346193198120859520949557273660325603969185265293834055004062213293223326041766561499853170567917305672671304671539141140737131507599128324997647460480866450014801452627726826657497462229375543166583013665312569985405023607650488207115904212075230525144683312402628715958162053595049663895698425105325394172887851704595442919443111320757871229427384660404078419007764537599865968412499882061690987142960956046906232540239491683606336209150386629029376166524169312178634757532095846653958483236675885555173060557514745806121115599350565267882614745238797647237388811640000842932929509422852645121187459814938218952402237975095356529478295518174697974985898100536330321036547355224247780829317845310623664902177663470218482501263658426322124612022523138754309921864539442573145086788035332102139417123797676048294103101186563625676827252761277488609184571803807633985080973416317048386773393877920063030192996914981274004453712448637514181777016707577032992104057529732686611931820767343800600715875160049418089261701653832286962067416175625169439788770049731092134964662992585643762814125927539101490294309251084717789320476404256844281981990049748292078495752870012995055567073231482984911031608508380759236875147405649202355895869915690216081661221779466840827215600349560409313325591894613649141653722637764631493502282436756759016829600331623503205921251107944844788969554781171013056881431542490232677963436828463715088310882299764609324795054685121189357610325833023067647657172788233955479563513327571356176338362906064777818137769324379591409822567968382871802022363301882924045164570239031355627492188501297413564384757319749356706733185568313223348169687416401576509826273666262946811779182728063874740527316426445092495717915161615111541282737645285307550185994441973781463081902061225006420868865182910639118027443760121201044074546632130565748690518238495142338237939774954289120226522448048212009681515969222698401944347078101017922255588755351008132792679053169789520591140544639036735196483029464123248860576133905243279379682295323728957909791190859412064949062276499102963102374467729596341469551373196952838177639818768715033494001620015765312585395830065987572153698919075088892247233201871192327211400387165027213725927775267825330296115420313413618522926987416354497973040771018020480164803961283593608587479390635806999578866382855481191208210393742611884112816365301309138821547193630056494282773810230692258126075550260334162848912728595956246897518429029753142341568476788390069302606888432704325422271031489046423376815650391899447292762941147213921575135068293232968289333116701433393772458086821037819872324258927594087864486027073957592341621453968367899257837896501007742899138451379652086018460205420435545401727304035276317718750881316909819697773995796958126158050052628993926219211013133638804952113026839384631628661606200235789321618502125289679034395610853162920351203267139881571432245040024720606594125837354851537533946111112998441832267484028113614859627493335949574632803080828023897510949687456920046417060062039001212256286277168694478855796891316916984421289919754080043508278662340362353070970583665866073809024772941090403337522033610638298745371445391757124289839875592216298558161518282683780290414633577358874282790610568826603406080370306324481817195707289767651890364271603834055619027077589141519765603751932004166922515921446668108640756272975215195711880117688269976557939075130716783316443871625734946648086018417831476948814503097779444382616814742940737480902570150448817339704643478381547174232941672993535035693767164125722631039779072716291442715792946892476232565176556622879065576074095156262945704163678269065777877964477466256395268515913053549738318547490271201293014828428057871081851941939680587556740837180073979349995045278492232699398705357361763808420711555664184267883036212554843697322415095952900322961777071008800888545551223431044464700204124231643641132275250748021563318403386455184205243727495657679654357407278290922735113728013486048511513040001864340276958044604225696036651417731788558797965019432766331000914103504546952937671613498861493813194899521986327658345338685657812647988817132724578566731058119206042188656047875456492399201406834815267714691103357973436062626827147497563129177365603694137734419380375813045657687786989486822762019443448013541307266354245355499774070870333912466319425072955017548146017478209807286117085426836096761465440642922985431937256061639669018054433078255553500535884079329844294369258905234107199098420438490204555926064707917831276662153361274301278353833554353352104835079891982497323042081446749477609880178101338831768519181924187307611072969200929637989873187661950956293470376787871489556082012924709111499778690407673320302510074902841630033390245483530044325075078352846475670592931245648487468651575779168194586008763216892348919354154639507486639273648403341563097019416654058696921773409656674514031383072207315633609712336559066094877478678570245135988643454726059812045740026796357157087431649238022260101666494544588541881427000243785299219389005761021730023982124763561277922474404016399024094340775813362382513784495462036688105116990181885516161257422896417815998999985387279847921258805158534435917616733570267000649709603159758668455853211513036691481881887609041848087440301434026775954477409137369686222581000859287000247402785801835425149402128835227226106667344923971636611364874254893657491834244303796051408872712616473765915818802017285065104897163976618737540400350722494423938078349531013248521344062676369419471307301449009989417009050163290365707570130575411197847836774231631505625466057397234337186749036734602663806465331756081259137936126944370861239981748535336451264384772522587930920533030924151954551672132692124434836943777380091796632252922350581134509851334742300130393118576118250515913752424636112924784558992372319810603939560986411602860263881127101897897995548536439686062357503010631085382957084718557779628393851267681517710132027751178756041099235725547258186182119114421544394871345914612170251457709413382473627385576849564736512886644947745791265066123367306407129119796301721390004694567147221430187585546477245641216886218286281533173282451182040701456625106933058562856940165401891487616655687232911711234044405604851260128366894504340178470045348633380505469431585469901578893935250820354330587390927692654953262848216408783657285674236020175543144771375086369691044538217548950453664833859235041447449276065671734581675635975018615376355821770843433339677719066878930625887153036679729678090417981498169431893494516207162402169646735167140723455635012974297007720792850781423693848077721648729265455203906022671854660690593755639160093165047226597229694698737576845725580063628200827811721400370634813592896738470549236332059000285448285688941932964680275880120455685683627392143893214947109522369238572627156868202989604302488492189869599777066255440355742878537167022597049316188873438616323516214104558121006342394972958484665155301276930772016765025978741065689785793923274154794047113119923107024777403765646605478343381627942638010508180491028619567399242685233402808014838377450042191560323565149692041505733378655448462638414053990452098823830858407853598227050209934408734505004557015455522826676303937531072779925560791774803321846294136552919788418245283001008986607344671409065623797752138874396462360889565472941152616097215580891604680808778094486477613732455765653660022754823987356607879584387115709888082946579726597695867914244569207649844406860520423991473838890822337418878264624483968894380503537106965514838083831686208409908468415951119692050020509557249446478863775007392488171724175728524361012535127615928087838405761675249497386457392145687519653531530335650922431550057850992893861951016824574447615777708889018323872581211518928212627854567894452342073640558388748916097782763392243456353722339967144814958590667651512129280698063541066125260566828492001331906317241535878634489334213173409593664051606336873064035469891327703783873378686260012019886531716201468097507395713928864208593910683011152091673645533989737889421356016817016385949825914719496917531273363101507533415423943884625055628199946780683220465596831568319240984954859145181720383582041564189355689856452400385513005212953732973958382921798033249303435506586967663723296232749368410875909135587523512594364712857621955051323186277970790005983234999170484692401289237466934384563182595665803155407295657649188759335871096811253306353039220248210234217287084871265080118766564073607181534128675924787552379129072452948952517014847431518710304952892197328313688753601260695801165057400381289703206031592938714277331501621486367383456479221414146859118100039865334462609884508073233604836642655491861004751364283032534302047669724188489817383918212830980147165428979774061294671953441745195817796491957729052451698254568328845293559622464513472461190611443825041188826003488471411696233631544830967594188100331887748296697543764233677994243147660481821291005416839199514515564424076897613225052599230485951306890869419347887312967915806713228498161035629915338855233837756791013473096652045693006239413735492768314658396338545266117119900293127097697865276780957074959466750512376724150550976294658659503018481400967659263368480302108694420362814446213266192463588794028424617820755891705910049084610753534118185768579881243021705740081514263075548448174625135651336409285346359202818848404647114733598559093645572955832460642731946647497307207769294766829033285047088148585861306908695981793866193284256431446634965543965562725198590872180733190922975384611652340908383031366871895077284500925141705488383311789236867586126205728165081534989705594021901273222160979758535438463406433475265560515186322651459171668273784754645501357183439236692228889375968732940386396957754258637103274063961923445803260845578388222545761640260538761037401377724990397399874304721277111614238642129176976998978264244666091916535953271150772241287181359755814682963062391240934714215116827822990467729618952817270168209198935940937263061069973739672694097329026968416103584199912868896036453641851303581766150094965060053872177390687694552967974059843384333422092603303501326540147660898221070514926443136205969701293615641091426435294477516379910868341941668337324738329075345301341322233681048938926797776706933294374129889600262544831766642810476189349534832485377787289694689109464815333934122771407330037591287393113976486689195850829192787725059289728472861644615112162926366258891171408043869797292811458910638862833673581760468152799299293548477545801001808620361338665254087001401878419978086106232417744766444630428291285380247734683441170907701946010057802858176518823222585239797265957782444558004636946897107126526124538168052135300499833222507954206574801322933768235576190458935919090916288570516658123397922633133308189124957874180207665240461981310839852845575493594327496051611625411544184960261312823979908909670138705789931148836284155643266455831354816469115770368216365321620986902824694776527491584129093878903681446316568466052827864592898372959714860834734668666708929882821734786699419140620565868479135864729936937151342775638493164033828107619201448622627726031376894200485919639459159656992942185230577922091936892550272768381236911043548587205688421874646721571274547016409576905396194222550504761631365171325156960038006350839065997513411364960054830438303182968097579198467830429148703922471617345877135379606114462813779872535547056106760113022420984715291301827743052630900227354345524551198045487909105254184727400046343255212096446104380806712325538204416710888053018544322245702953258915492352195517346164904839933450090234284785175072392315137362933196799948512470571733028509049773892480963366678270332944766564736881731657225433611099086938684586461263730388492204577082268966377627583116330560220273138248422304125536928219106156764305910081607155960446016689843715942965098433396106209042004134661702462662249322113267740086518300455347702970054898052402622322917597766961260579175030311104386007137703991000103574071433306097018519390631533522811050740517320359529153538089653285970560231908918501301032947015861205701228176711087089013292825195780013129620785075411184395302098320178765030579716081735758578364100735201334804989502795950713198673417350606771192420751833330503919870802032673699020263508431981699662261012257260960840771658473572083061735357384220565359050069109268144278272861437923289060056407412401143698546674775021586729970843086480476359797368370315843209917779927645398293713318802760804943516089030495336181871782869188022824845537528528890061950834310176916415045788462835268340483046289840367501874871612168340083841379769666804215031856675801198133319621892541996532306838063509880564938891454049359052231600861364484360556704997448211187299825946596937725041724794223686457220606194852214335533042219617911075725225083792268652436805317492721540953734650541324878011592260225708933595221404509356672460639152966107712417835587941113869230937917271997459700108719735424639369565305618559167017723068298760521221804190147842742385374369777270208436869060157185704080126320726825265255012539848831505499765913664597141119417832701608705773855758300446774573184552784945866044042865140786460158529716350616988526042935699525634598894013996401378273317903988909053549409103125901104701766880900339916597572860199793615100260802963862738682254555199258199567117732219246478291741390591947295681557545678944661698768223608591131172613906310915125695794415546288767240999990130825015711277318411698558170422908004402640693642440505897954455591009391946176741910733034159378495999922287088925712046306917859328789418048436438412150296259588672571600592993333041891702330950953550931706534493254693435177803131024486341093527765604297804733342275693576061050765590743412773801906469479302051035753579897991907606510808718437369742055447159287958358482633565314982279655467772467282109395303329103744928393784118362608808745793802006160329557143407686978422418360346966284805612265681951882020007464041381380280168195345978594327039179408958188874628380130116144943811741215998235968665247186305268897517335049490998646595626594533833026894107508145729280270517208693965914522633717782993279118666735426045781171825945944342714807005531713372465913225716591249219194714085276457637581591615852630202554496634170317180861456073676262044849683460866768635936242541976602730893170576960041214873502757334262425135762701937325322740581940301502384326295577675790379035310090331547034846560878664251626483267454449519879125707520184330028362198493302190619201013898273789950641249122477359353983541949272273484867945837729153801707044043276738863046720471953551008780845247752975615019461937920451154605130605963343878414281937491947635228780473212361550880289854263307807109404304514843665732507455407062687572094859543034819176892579249669544178445666369185881525112430919590043216054066689106792854968146720871129348061251928436120940393093283711092788432669914277354064472835180575798239707331794694712796901357805445236812592303728236165235143145065716637766063717426873305427084497488873006218541674203505515136777054559554548626866186831063317126298245472139781032230495608177751202137076539088651941715128515096117359134153617538340459933292382658011517927423057735703791027256820255807671625411101547196355733670210379808928341321560439799065924143564242414740647932829582065720381097315017185465860602758797140373402608878465249561431322642722685760786081096631716636702677325309433770305440581187787710869710603944150255619223295157711589517610150026006010501953808393961112854765730511795337615313453169591324908308513789262377813584283940923399188860347045251267756100759060113034547106919535813212250595449381691418033688062958262067859850534650114763798664885835637473127156444592808381073301267060157000204823862417669685501701443404216612710928699366790284501335026799201718009016939798293292492039656519906841871399762920846058544659164254313275085013410572284838335851765444983212468800873670786374443850071738668571595277949453453269451024308452234858131070379102885866677412499990287735465211139428388814296671973101887332292524605315754707664846255147357462903170721824953663059308568482489321712603560094989381722422623551880171123612761586242849922038765319787377894351161639979495207726477949738665465443413171447433732550347464538750299297506380349960601975970130465045600544646796285254508867904935245339618744407364997462648784155329978968187961210709258401241458414972503027896571559300980662396665626955054878378267189871133600509792066586014484272351353758521827105607157384675781828923594868486974754191333613999200090681219532300961253528902752454874713231062782058631561726784112854974466142860779567149785113769334097308514225649068631713084890588219012485804257401974817465275780556836410951794763759058989469792205389060526832758602387873181447792370997234389325858417183754975927808357986790279640009354835320622379537114828785293645188404478798296744230471676135872734568918467276499239706459855463668747789992703953878733232795855979118286413101652141128839358761535086306721902084403924420913671375353172543752706180059649343262215244308798332420338482435454562721539790458929932504935367394069875591738160158311627887757157419602331539590484439187063758120450521382334598549339482511520007054904623595190717071169230203743329233748743822095144899342922664133797342367267411987638091111922895556731980944056184205777555898886295376385970132519207168884925603603612277745537932024126264449198757724610065464607823242062214520850367995496774417968089837128208595041447855209959769059318136900693735420416133273797519272718196816514605151590908381912426319471032794086423626869689522704396314857861984219343191447221756735410339765199763928428831092930880229427130610058986031009672123967151940155940963579069966886343885981398862146840273600030900612216173011036001024958903808838561738554899846023686917705211511741394345176751418768009349730284846230582032410757591685428699327793842459590316318802160905337738758347181898512135758802913714431134602569091034482403839731970735646582077134497853434356127847106069808222596007385178405463498374166328439030407563600230277377356243515742247169085635772383483053772028860832216937693299736488553313240813063510458796588611409848175317474252661925944332016464888977154275071038648845269303837512170130772994417108930890698292015605214584861127367428310261297466757048876049217843610717771180785109411171424814929442981513253408064857228364657035599315534596775443120579143431377349997388595707449938880798380965777749075784592421535242394056816888444822533136745238007153831822807784777970021076876519207884835331210566635888601309202163796744391946107825132074003578910938017514935083044112409773571585277009713736805634971242412590520359960583646922248444704115653250703279367367831220678274779446877028537755457581465479841206371146122383058300714646736891538862697187340553339418524646255114602710528429599804062862281242816582519258818768460415829883815999497090709883235019380379223132480069910170780952640985545910769801443131014459761110585772089329450298009650093460574893516526888388651999937248104521034329177224998702785065472878648710802361826067281730861541325328946561843812642937227769877890247232558259857795276154730769502985843751740384135446476575623093803126170383054949009557494547795083709700358184905248216309298141020517989333657061656401250658595341988716461594428191382188738395856297900926825054580679057763338000536408447396533585700776605877108541317850026708186485359544098857212238731228889076391866939176679877679654953864153989853499692508527081590020589948745061823775663424000020002191893317291058538169493833409452612695877711043082056120323381014516185535899632196466668306420546793180234159960576525882737259088943349489045541752829770721710539676702521737622406884600597776691985431001784310299740203621339063172967445780327015989446219696360207138630682628472461951106914006420603670541289761679153663973946858499655414097404714920058223436105316295323639899747080352308293864584923339074741951857557918071130945849867553946516179672039615353559896878879764390380755639152588533672517517462390902645082640956826970786541870001245081627129973540697892389101766579940861229253345770854796001614423677151200337085848358245743483481203707825393162301720465985708258757846768799170871821566080291980340264571778579378346027916915257208083683173887958204463455972074468462517993722145514334623516656354046866120500605624058746382677860090901390678723428004793167882292608499555676219625076023589710366174336374890133192558475129301542478251203443019008783289184317650543751474156361341816667471186070411404080851785454378262311560431738128174487991050690706001436111192919263876523483634961631239516283263169849576836146965411887382050576109100868330887445903396884613321030610404641805054806591456701474755055829623683330762526017045499645367238113204466981363173239877633864083362280960199048008664063955118415959808947875149061241382409394058262234884623009054425998125827068798089172870255110969046592539341976664372200959643100692019765325089696399676067040521492978078737987450793450893538153104401295117935086258812061193443606653429638094526812757506880311371808851869925050243411625081556692858927725952957691264742990259355702602786550854865241123070601104272112293314868264852804525261691084120263503797205555378733476592978023525600012310792113119360771968519285225817163773536267621879294506631894072075872671572105124348367876472889146303349415333149129584670328418779797665895465989654817062336512905737196794469797967962699356048589409603004635588022129959723020719346827721367991399042064201850424317132386934391546169000246103504398074000062321167657544170665954670450910565485091184072254156913025736174172059092883228756996117362139939600851520652394681352646092965800517275085157471409642498105659279323876944297665903784012815310091277024409112719500834311896285417528384313358337101457917304504443747030932679470941005676440399590076140104357391662328485062120311219804815578966189744605222491598011508202209291932644341537557961626499893157073275954987763696612366020908087820722996526296919945044830274848145441521326890755275413481798349184579153459199481128046888770110020081916355613340125413296569992513101943216127670357102931575382709940116259372157484817943667955464218749066882539544531227509349243481781451268941335830898904710801390305716356451639425541938359521582130827445415230681845008486941522757076311452169848224310169220444159639451393538528813570012354442444263605924794779384469913365580633947312522641985644247951778324233417807787536339215046370259944045537340051897122985463270351105198875907382383926077980569866495903833278651414193645835713724659115392840077967893021412388067215312582794298839174906246971419409926946384597751389825323764154520871390349780505247124331788050407396229289254232038490441416327180045015751222870042191795829668564171612634156253417494246135118747780490329347833628860483417380955106522562258029147284653965033470000330867105293284167679583675166304651266752084652147869004544447115827507492560569228747997855913022739478274813717537429085892242956614037640347598987907252302056123544417026558334245813013281592300095485350804469663278437904392287386426690279050990017460553486608555648926539622828616979128746655238039724737323904670676260533084092554331391268596621024403675220475590154496055483489777586761794371637557145967656305595170178768094029004633589318140819240684218324437122542128730656807706386675269828858262928472739998486832547139776843867094665010753766154187948320590307126291314221791305755559994627041702216000766746969903223545665105909555218421471081505042278764782374044582035980931592809149262895965667612979508896543976803521958573977209100608912406339749384519142973969375327950473753514008043311599712880306271944182588148627120682531581754273654386843651776081260158683913598961552005663555387466567397643183047838920991616735361394987958472474561627001673906785610504494784204956784371662104982358529910651616430552413217682629781499236705997556240520628040857673497113337849030630596377294096586309916533365345272968821930416496329927740848092024596411885701578629102588421214244267151628427934002482592416497255583878594434967480442076921619577729531508971668605730975085167188954027607422973471435288948689073594553112951317875030856329662492903258540307456064859722498635510182898301161368478701171394665512342969857186712959750741768962032771980166367731825525942281387584634370234366246193236487767287609083684722679685050817186789275002447980970713607612697753620699459114682657218616696243860735243471461824337786724862369210249399508405396266158904643839918115283539458828621035914496581744593434071672710912105471143160472574091400470684700915791811181573959325764627572582957419882753470234336348000011398045925724369143749854917956362891519939150851160896823829823004259006822306610609409143052923529553219819928758751410904300032677959679467944091873994358067227445051988270742511530392082934160932538706327242790438268995934120408723854413023501843984736609498408229972271929648854095757613151512182424827420529357257179081546201008071746696107823469547661698972626441860323054591572866255074374641040519937379075931713936504318828384186660635040080260680987238384872053281109093092906048333740802533610497631847056323984760681066202721262054584044442739053282217150737650426326466027809453318703454066595336219591895995142093425619887531309986996395420723501352722992517262057550310926073776113544176153537631049618095342487464833080082385059693594882038318002824613807643760860170945108844933961155635951104028572404778746387567113560446627117861847359696628032294851635901019153907472135248617510315031857567956353252304197959175736527370670820388829785186347052038792826693215617217252011626002951630371515766187588361169973908793364472720251283102044761105976433848945987869049761033352397283649820362886442604589376999442818468393751502710497000526485084662022816186602246321679384597312118179196632173335567859949938183882253264737654753448768935048281677049644447450439202537816001652081491753711375562784667920020546780304368803866691201228799765675797149359487630104134308429714949603026882652370949231444712179111051258253685752917765480542440809715901655129268735725884809351542865374197222382032088532278970103168870905817467571880075494503969100209175968609077882148780876694318722085054262500201878075630686880725316562268213413718315708076015814770333242857943493415726354955395937571777939466410072367100948611432924981041434408493095690024261346580579629153072673064829620005212336524310281958003397675299550127006146693837644144545792518594406056052445184979460592504891223661617673974025457730747928030675790338691574827969129387971428142782086217629000845305523766132792694772399591447175090424639613377561543049729490852799144547667998817796117441583587957257387311918393843709599194613869791223060401802962367477578154182052025203019161382177665645387868159429379460519851561991059359548105937466245763804155579118528231522400658613064353943266020940155427238355714027972959263395954517610042282174004914053909833639317079519425466675152731897724882104459464052631757910557574187111623528039526403171793784006113531088282989948177155161519176933904299829400946684399054032571073437824586374483869727911646031445166232591367341394060143086273062639294350017794406072831629924338483863780240330682349952294699704609767224910471211330521457708891879674329977552628860336363890131094132166641235184121344925745984170494877965330547979238024750238648927381212769797453991145461459808316086066110444077539800348217312129577757620190665869680913667882031411281695600115126081544158609337023101579039323525878143938794666546406428026849228368218413225073211240600210839289574619578981442951459568516099684945470384261442121689616182184271873412785924785227450843631571030398829940239342511991200759337169741673205912990120653196248167571465065833539727451374569606138666104997993125722692730710164451787694275861072985027397305293760976809153004360444122666101821183993139300303317341231460545261229393311780526330300473284065024946379475507736131369048435572967547113678357342373108946108162992264770792388008413977331276494504901378976152209594967944539987878364190481965095703859851818586283817698347194502253042697534596239429231550903512499514403509617929863659375959176645538637643015165468204208412049471041220223106027455938243682721088220551381410401327599178281534505406792661441694913979842863941111428538102651205580761479230453614495101194015579838888139675287027068083419096861486799280332502688294742194365195234580985222080383186148492988515223198955526695730844460171829100465512139575088697724224650995752609013060136697340275996595265859838017525960055144697775416530940590890078340818823592293935764922458625720382743818758396122987878438926486707024954504967510050259798774651315814165698100986715705605285608916780125733941967060150845976279648956130501063284241885226902687911672201452708362999661307083159898888742284877342017431529325498851827422554557858152829633403215955436027541499315620977029112078201257137317582650878020882172512410432269744221529621735946574456541913855733220215566201461846667574270904633349937133618011228231849193924163771362914037949155382982296979806629119349992812965861450777221366186605729608384207603566987463871572100477404485331615476459397543136331794710073410801230917399488311077464942719074827899529001215666580007605369477640935189340002918656227947626578982373919011209488094384453381681408212432375878362676610600621998533411931987579471113936400093074770715851117948050756961716244385758106782499191467178798807592041635058895922318846887989536460462717578777938087212544472177332675162647993036735859500968127517071997376561671114688560019645447982015304840894485937579544770154442537906111666274583689441976184150363973044939037220549861761708357596067291335216867319115421452893149698979723315079032979628808093152454047670950132777489421670087659738027366167026312932368364870545286742224453451745226858116802766763640570588152252198689179854092358861789398720901331325319833133020715331926702018215705839298859798234970521629041180441884602277094670522756639163019163273650852628221288745946643266423716139337109146968204418533975580911966092333922261791843888289886869503416495699171786491639724508276927072385522468204262347354445804967117523792457824498256483879971322302171910424525969806559992431390049423173718180787788687521687927467506308745535771393659092889025379354920792241239263705642011224576516697772829831430418959163839701453221641055354640126301003888569315653321068974580536501735261529719767555069639617361602120590694979151722789730806009851127898583957155083209679898266416006831096067913194439036464389258436001600482611760859652745344572835262852786652132175682858872818617412370763462598882427611980018974388877169381970342468273869005716481278144197446031107713201077925409232093710011183596953344840319068598164541046110767344572064246009593025199841779827260336458913801346977214905087476539786306241142080209407706934449797126347818475357076104857773516787958373306841573475872249864686039478278673389465785249451876308278765166344840392809670078676275230177294274047002826531915736443847824226636176668842662002273471675163198656837596128185308245295637258269425735228256978877188202992237338063059033803419144850970266632688926067129657116635733467863143090587123647464024613071533340380136118869433597649950952118651694827699580158387024809481451540426863152136271919468012848073269952320474888811506627185998177147510328597826227028675341030835814500828604144416397172818841198553622331444121831142435105888173270573895908482700602647910688553087869902588408636348578387154288708995610221926597177222722081333385776597698014237800057684138262522826292870241594995867109265233326392192705588929879011540640200529357517938843121175770382722724818656111753043720866637442810400513786121438969522090098930215587452259081723276527906528692267975524236479173361514162550436357811314490443600453909918071116543077676644952265703996161324283651149372968538492626701168842859617351386247361565627641441301756785546547444551481056773160549712814581533699710133208072076747957349271849534819281403878270476808222464074658578499732314312067563486097802892803631340521883819498133979542476410609156572592032560043716476149000130295829283117175880057377856699239039243271679077590314662993598832137732940564778728803800885126093523730805172377470072591814258991200697497483342703155622162783182133927621482816694113686617920638087868482109116365060321651336541677987411232532953944247386623655849765810505902379190720696654185894050839097403292546098288660450587785325374019710167155724462972660060268628776320248254485299129667342833518729478627639410806475703825054559763663728119935039463942632394556755988170858665438649769305280680555051740562520017278651595754518311797496196294828546410685491146542272358714069795649780904186162859192646877461654521100288643161851897865834261150127128077551562210676196854665207518380598039464086406639836955403678685909625238735117540860114808902915716973126814849283500443125782673764217984437976776102706426921556222805650212964858274090567126421339004836213346928614459369131138254781937398764160077928651061087665582180574343822935492167492231334238307791871693294235736723064107140076543380698577124042639129805887690650238453245437778853596149497571859938593772249835625143244208760007249145726560105227896181965420932399392972496715550356436558134986907570218632114755769566360426402809589973754516942075642963587851058511489554834983895464340321889982531343449769440699892349145070593154335568981529488521668902675542640833496976561809118444582769406847103813328572810162807203961062695783773495189451457697736018683887592709050993517807971975231416511364339889098050380330826272945155445872317106323734944062505233435178968354060571159412331695004629229193037038555949815075241997106337828780445475515942462565804070769779050657595533565624480568742027282680418308600942966720434889259156150410070898272748012049096879356497807723804879951752585800947983212062799777759809446413479771994325510901960712702237554831315581145675823062742303403026082380023450124031312320517146761120618858720781199863861718430321928962785140830637737096786196408635483673110535456165330110466953059197042401099939008502979587882293500355977654105148725881835589268292913935977645214129986985172212584369888114815346867490530403892898040166913229297626202444179865125304949178219876877524905519193480004831471012998043028426967463914207160507494632037230547823714966333481572270999996149532131244482653086982520720177015371221547903580477310631698875037880829270954523430272391640551189288463464618859256821778235753388795074560384574771936612087451956718885254432993145888967564879755818264675328725748616603594171116935974592165678575923269400899297015007516873263623492858397804296150173930711369888319321262472574602223152001768469069969829563933222630406521416917506874122495689218893909145412868084189646391659588440253742046276233955743970342383301516602375308732561312129330376403807682509517186296626731274727117606930774682898305158631886418799569089586073858875105467772700880949188655967252733633927778820801970663248038612014631288067098430634753763036242792685438615711575670806860317355810241551264254023272710576415656882541943775267746148437179923203638613180853787132790685969866482934391956480675821144492846617933663157257466364916375737516712136639489256406800740614097518486494087143027456129526389102281602515581858114908887122317856741776012068167882766708426648117897095447528431929023502397435344697505679350390508220047492430869189152609850117430245308750884131239260342576118904426736013897243902236723368060142118460011246048540086990496077147023994061740733349369625310319926182508851693898642072398157888786531946859854274033901099763622217088028549833583585658749204625338554022344976633182406922162214470605982728784166199258685816635674941751152735133001828286526470289072197729652464649936891367397484926025988926206272886972156853958514325341859031043169510259240122671618811267390105503870340115384677063383654741636207107123135365934955535515426856917777988688513851193793978626445735488513621521668396702561166391781529474826541381067531387408257579193147792804180941111153253580869595708436734830492830738332119944105159834072709075635706885303301445611189272130035536149392221135362494665667254332347396246501547222601643582058028045320972105389239189568028695362968623806512415643937253000737779138164665347593064364288843908049425017939365139648381436018828502045875753157084229306012311723606364642955057664463556211842331246609378711650610521186313306690933430417573919586221360359578516069481811494759351343769719091400056501098413779267187611296328453127215272553645579467518894784334563306611330164281175572879139473218384480296888911459904097445660908873614246707838493336916316929676646840721755542113007859953994694287877097610426686975716898591035324264834588447664580445114703176114046132334691518468488177113184580200444813272951852572630811382802860475061421905111064867317337002711340923918338268516633260020187845206789013064468668334464073197232400289569974172646647692546191378149584660724924092412575643534558817703239003051013299116667459494985014758128396791564494742752950098600289109710446367129374204860893061514343025359468331884753722360850118418980700714508545476859690949917150200027448025980127660785024627727456452314038060966808001466158990637723810511723401645966395095017678975512927976590929026788549243955457201874534058082300588750289363138662805118862271595447283228118941997444344462293508916108109924327896748387787082514384722676539572844481233947832942703667198588145299074883199411610062811297770327121879300296857908155158356518652397645266974726842611511577459884851557809762095259490129586069704840023931928920556908750365197691506036211148553180519942961811524689401246141758768323788561536416780628838856157446178333467031110230800186932181171386572450881182747554160993808839324644343025296945154356750812726920832625717658770022278184385849979423597602095287062822253942535520444458746624580931155246861799590212070999366772750658347575574178517049551801588292244988515333419079041950578771783960921228289848063894419866874816711914364602939234750756689605748523067859485741017888625915461411494628355232198294995542933572628869171385676200510025448609811879005553249436893996919110854267180369453089289779430008137530211867454187005595123032194765269121422447345228772697383776193932705646248224864808512125241053369543486453970788000042527708811065415549931951864306891645277244165315248291619640459947861261373303936449414263621388654862317638735022641502362129167959543155253494347186971014271207803300339724806193845135625753704845617648843230551503559391284095390201173514620280604485257261556051500885069756101631495496178045546347687924197094017342494396352779620642655095148378132681502544174737971381795663762016768179312991965630631422272099142265158622095737984312876345003748766388966036800534108909532666701496421748497564613679622091980981995259953537360431420329675279807726132845790569047225740119112344945849631337628658557065581341874532647940014691023647070750332842645312283168712670811374290210503157898081103066083494225425513163592076224686943061453611416328971149117466483900433641596358993845715698608176366748117055517811034405092396511908571635399452684554761355608764830363769652872783765810862604501614941127455257990123197223989198968077011472682115991647599719694085216128680939800446707593151478040908781733403287074232249917486521025366207711930971846744912994672494393205799084875663707949513785422420606697426164548242224820237680936573626105188416710266288617068987752452065634590871079722200654162039661498799550938290860560605552021539690323684481976457938918174127837137500896046748269409056307452956770541370521557576804655331938652529576968253433737715486532975653050797470594339322355509915357605209515455371928278791232385639306592199535069237871279275465743909872926216707045516001406271676317098327950543882383559329676059137947239478359683305433898855373963092990030539716463593382535382639001984073577913565669710305239656072331734254540824068636825112412747514503332992874358384073360164722574309871559665674419749907424578404197243522577063469351407374071346583381974530927690534785242547437395861546615652990203774078773189969906373199010356640102118208819180899446670282493775333944022571803458204199395890747734191116219814541772839076413556705065767880679973350828870599740028284152672163821620972668901946633258857079321332775288636410396399434739862227802451441767102509724629679205229477076108659901532321476646584183902602701246134434264692308344352727920463263195762306277818536353757548893910047185016023129561263901419215826158184365446064181085422154148135381322752344337123378130339745821545687730599152843551114258427919665741686533097086504387684258592737027702697507754327553487542153850609148529751455724975940599732736354398517935696000534675130546694549077772916685431807339688886809778204257831265255992958241892535104267063818440681758611571899072492601229173594632340631817162265346741564439295131384136538752122691240498030742773019798866716264898475338492653209465369647050506338693364878207543170317280648192264524666809379605436672415638646507305874395336255696077326838425497522695880159889625098965953839878365627806492355809179093422639531899561451098601389047114939697609377954570474246599801450711636346728699863417476550780155744644082070784967335467028110997467029906523680067595106242152659391046158860569055876029650569343083078244787744336961516951262496716101198959855110304751358232378029202114599817866215724401578750218906142464651566711676433333595120803814102699027155962307565692134025324669873732105792939995720287335694978147204472298182087188752520326778592256746189133066808402713766564135248434812582169070041659552404009522276622660703417989929713081802859758143730992641486936366552535101275478912163245375127382240389550281291127345169716112853711885954579567372196060502833691226368958061930755875941386572340225488457062257032351165441819871064159982385473731923650150196493454585083475616966434689771935115159995116786980547665706971769632481942541624095854910842831096426415818049724427133943621192443856293045057031918944238885901106708105009035460134897609715699477638624724966203017998892877860955345498697739745567710093132069857911441861747507315947898246554760772488297125732399547835890954745715743403432795454938566096582365562274313217988711848330730616436504728322713500094856002958211811796601326911205131125720247392693312004021942361733959154319653662493650623724686863345026213127108484075509750265968283709657638016694091080057940432205502306256884178078752486737326594232577112576995983111751475599606694378834661673905189642187531356851247665367695685474111000125614316386574325759538793451266500752133778815923304677843000119726143831374481383575469493340837990481642927730665100546286918095360111389290809724923831222598215950933403398547216699415551149118046228170557171365506539619813885814716307663493135002933538882456376597679748199391460657982154301472146638816563237143777587522020557957511550827643401319502229146576157950846957107806489214165319068560453788095813165197092577707102490017688578051953231449991238487523509685328912869870306322495323181593388767507193115327430174293105446910012571050158449814234996814447485406322554444834821783981616337932535565647118082925332539338834666734704884424881811259563110647359019045050640492522574968674243325543652743633434983403719489855470051620289060390840618365209807604179482799205655517271962501560967675598792197856320358347748157922830349324533008695464847107472650345093083281530214203454401637951372975506648143233225865966471540333612362813800031605602630569847819268607984120170871213135860591029061652125811978626314686089828457667672374942838344303044119825215174025673600057290184900760119835552324195457789092371494678660230189133918449806102631479468416473089253417981788624223776682334224243706315859510979182602311272957876469047299657823545142262634604522750461720972859204066018478978055041882390263254482308737402994754633158630129769897747032471534040620407898384422387636965440185725996780676738685659597199806361331582481918242650040813758584890938215125341738851663972825456155347029861978335687729801376823075626368384922537202723151753245968968720424087216808502584565133918490825904962241463911024829288030732063976482696303314531071233805449299709244672776687009473047235605257788413627843798167623209487265468410772875147413527109485815203874654588217142863434562284336674304644078350891899802555838627669973707303887011161032868566256735908799240899027063295458395919586714857219074720400057000967263532289822251447140125802989080717949216911553018453237174150378468490851198032042072838131608493857486356067361810678730956533446414276251295687205463152406582990894390802082562963137886263041196731877228084364557699473557274127844386217621732545186057960385049332881342096720331898608952191147932651007773103626716085492667484140205811330340345213511005309251060840441643913929662623570453106293782849301524232878908798295805479353593584327213753423112175438432276582403474609942110758193251465900528449546390086747010259010945749967860103930634597585770181018422787131536565657143388411310633023937990638140333466085402161538898729235627849019234593427059306137054633325630813618586387519113781204023732791510672062853982959749081403349561472641613227353124798810191767585044408774851544657389408826744856753828785693822064158353650721986664657894685756465893400006019404322905431863602856683320594093867629774936411179045497168262763220131080315578857037162697969242069727345142153268566353397077906555971192154072613835989669226193249217366133719956314413988575320194027169910955370886725939016978155130598647892214421700407122342486127298372382903370065352113295516175942101552585637038291832544588988025021686525496759660034575400877028509426642964026442549493608172225266808773232997037801400779020273632305727312686045738151343217787040024749327379904467167382117306811882565200578803071338324868391395816006002744187075606209493390635102843433739583447986049360921342771544908911758782572263788114417489819727657870332892214479236966787428597510835976642730167430957871069701865493199182601202654645880944753565334871002665780240002991989513579708229556392730948950799153739787367383560806578848178037364624218342964563535484384006063619831730278424278747593766710080002401026068494463906562330672127743102925721728448209727255864424124187708608172893227247093009817945308313607568826764920414978925145606585324645176901244190551063803934099308433157157635256687591771396635135921165380579161269788905234112065090608950173281969325315890092939411444572195814130518446466451981674895634126119971895276603912812545237228121102992249439768472253366729734294364605994892328205612372011497190159308534914043279438508876540644655468698348129597921688019863380805257634760572393199143161615347765424846841912356619265584828194910423398615045062472074233510053456932759907778137176002107175106977383453173500042481773635808511841765312204457543669182869694152517106427093666678914438268079447469379784686534256766607143221221995695097644740215046428804803384662632296902067334772350919806510067292680756184886127715136370378058749809254873901586742422471591537240224609801522915797217836404855517664481055485431561752272265324747349363440740432987850662345936711246100897207334073722159887877698979354064129216887716502015957725012522447620974753546697452771631677903305169027668910538739986381078900251577147534146464971220960360394396784164789315958587193204043637471709867801561497902375852457645935798436825600711156175449126463979320192866896669876358402334602313980781824135981208207904281224532953573814846054468966993845645023420665892850916765790647413233236045821052999590981932896044500984024441389538123847406064386837178563920567464221283848119283066658527600815997766020598218583203612225652109043257591809252717643746080225284723739926662122629607393017760451039051203445848769446728989423677859131280548171802598912391313538747429552774715853846985423526007170237000085679610623199632738085919129692618762322319652259496713836166064841068381981068755303259881308162245774562318442646864919017182864057099164253415044449502059813684360043190483266678033394396150514804848797363514992531079876416976898526909726546361242644349259653228104018935792559567751395212998700277899209781157774798803279974582478766289588650322448810621774801480802195359967134923571792158774817873717210938533398655286946404782642843376016348870797987962460922760099009324952134146574152820168645111168927502023388507554503277323892327720834463126053295754874851009219517583479035461956380317738437373688772528908068419230060558528071507970340256064282234211816177565609142708809945266723504566299862677008664044674300899675798981593925604815052300488804435055863464758301030134195860579110292658119148455166070068410443452381697278100222304104434443272299171989368510899557136722000107768510122255868063973077658794405236552043749388006009357887183944100289818174528790077226443198569564112274642529765623859990293472720723039841386248481914470077339746447319093759751886514603708234574918872670520661813992576520579237242650432833157951628717960769348896625184326966818230884511242222643517931587657390142343973568231213410565282187891407285660500454095350560650264686748180572283980761426935776085569488072688057847820827590149572984531035557929249494486115715529167211723647727306740824596998378753734323014107393866189074899970647486935054721734077705583900801511258230736753419779796037508954012292457302791207606840946488964925303159846219173638750951880882067012502037793075778814816500792365765423305295378431714915869340871643010031859742474103404851417020455510844216644666604902512383503402309084796772134040246771393372734045325719836252344417064186679619016223867318599070725061645302377268960444236103712788306859915258663480191044705255908350355873880643631175139798391748471281510115088683329744096425166056804570488346007254500380501282808074904535848433286676256516186378020410605780397615804543943590887381960371752378952150751174158938248294074160612967114780701290559950662640756757638381545245135540015645023563440618499086161020410448484999087604451908420726351716468171203602756203664317720384605368550977620298123463165644254696741374231735354756211532438905127790010613295088379149683683107416115606846165143492076876442112074407044149636618480729635900918291795862298344009661651421604426332909311484744866423137389538572346535012158886830275864718865549893880818005561489082492049799028816168091457081912171782614368060677213041375883539271993206838215083954350446570622701293236856343733005300697078364481814485316084570168728457574657570566374338201105728115983865776940769816703762907152728066279575280627071779973639931554316264184691036966998934587762082284956387967745823378125954717176568141926021600769177570176210587824926657021283862689050669410755396915397508084624611534585813565346629232031513617739998032468747824704157239225586084585847313736766664923913803010705042211335075373488387909882870945551296891101546110581053190530677145733303272078955026248474784892460062795102254367246994925884514804583115588553122708178944418556252580990532820747106061985651925807649476547206161397946100104431490422028382424342177687643757959719815877762829482600111706625541761076378061904878972973266178687029397252049848889296386254680323758637522419799356958583603697859277463567631472474023860534502042461942158646512193383029696675156475754302985940071385711576365995467471021945233003586926441271567754315470549017937357192782275253143808581707076684858988460598193735059586549002165019248163095741100405159508346536183183247105255282731986587046188237417908786704906346317323973945362061689368103842427312543060143495965714833388971179172777787192354204505557504259450909146923558362790104904156561752900694246668726631887228730130390030721847942903140805765859013941925868212088256053911022090397675521404314738978763249882944427975240735668494527756265504524819565805791813831399564294253117136865468566614049835060934508902762534284478963099862135240683132989257179978098947574234623646462080227859350906796254152006072118785539549841912410454678028341777730106358006793972200350165297723193838789697190675379561550969887568279509667327067000781087559936227027485659493041428407845350129712998483222359866484481180427244248950840857163573282594055471048997491310447045953536618599457786770724486797372110197505089896499144542705279356223953472262689397355597341036495937606111146555056949794161086814365885128504038862721967428171505892252917712145638294140808314659692108875756062968575620935123687797464367719560164981941262461155668172037887081416978431861577841858788847405533382952014440441764987720091005092023725587982025921166567913949814482127657866349209449080061847939827950251292881942919666736806032191791037274897986322955968421236546439607797600696300215237373112692025702689160871963610282647915498286928780017827360665057790294978469589169057735094159045207873028286509899515187772080030170889339818411669857478523792793500071211611097679070286124364438649169334554734129032863547398054632190909977577979745860746015864677906767827638312245613948230693182761060901363379626052490038441563139888718557108421337092234213841059046354781175862821118780087868825776271823870000697905267869953340186591329411527538557694858512136855817607811152378167251643107615168586914566993565535304974303161040358212647780508252783839289611468007408047594660426465374794970402989940527043918049968794924466395695014829887670909580979568921078131650724055209646262888687546003611480307609613435237990096771278625918381204567498728455068203177252306097111597350381217553639402957367248931835083559598614769280969506813766160904565361000923734069994971486140087965989962930338801272888641305523610290167622649639648190294162162806103709668910920428562537635260662990377392612063134496555383408969942155190526713541876586920073450692687671692679110106963474526988671378402562350822495546781493340743460747328929541610520771678701752233672636143572144957305355023553726229062241399323663215066118732499163746127485788498322046792506267687180657601603537043040367232426125625563718100875945675953030459832399902758882667881151966614863488472285678436005835590163703913427164087004021975256049103017664838473671553969089763666821077504968568962597866300123625364782241014383000329955898191035747753588570864606231031216682694594781746732710305119330558093269497453854106533227449781948695874831094523878408074620501906494124675202499714449402437283762456662775668327160357751947290607252002300955256451821990668600136005618014932657568426415867020042070996773821361850914022811152255899019225432754321261134849508381885631991984591099073788234732921242932993394976735166098882922965588444574490017816669472184261321074121858706948004051022698223061547249578291880300991812670401197862962662517277083298741059130777040250785207553047404064437005179526878838044458688644538565927963202221817802726310999838864573938833246271110951734937292810012763793674415642252603481096983850172892887386987044851321829943062424418893036602675398432033790890851580478590602759582090012889209144388061396314366074439563331060531701155476389479577783169991598171815053098276696753613400908437556609009319507554843424078056459460078329180257104573316440430145661472387070094079762322925202352042348513042288950939907339709762197104870660036489482102810997579981561164541724268086346488959186747385758328273416620583885013983499629691581753011711027965167658625800718297398583481450108886121866546875416259615879621887171908037002041864193728628240538042745769314123190453141332422249446972555321797870557867260329436416700579965487807724331808338343874137027581343622759793137526931340924221625482037099189349631523518029650807902383841695973516977797318272576365088612667588465550292629547572362197730380545558537268016947698711134654523996867798499678577782505523361383992553746273514327841176254252477887256272447244782513964672624895931385642713899716632542528429258983862558375555687874375765500229177116429289840099757943392924356768868462323951723344771620868341895166050247605436590595394237730637601004564727756030537464962054540985714902511529310524732231924948016589897560409187907042892612624899072433199902799772989849575305606501640506574922094825427009628651950483189303895153923793484689290828383306825110305015823640179768571845173722636207440042068815981405018983788455804919395349342448459427599671043684621311258391650265809120872358229951732397626726876862504181973968290110827220402589291942483228914448822735231841894168428016636882610166196288873183733733250211373952333739820285683773790789637586853718709932870716597747804758778086812857302081134459840574028663151160922014440915508236512655554117391885575907054735405381500410487078988234783133505078911443159537753248966509911792533175746597434274805743227312397678039891138138505653906558750574766291728642103693996122609747046752026865634655179666680862086432288114879961013835932750549086991244292414178769872490412343709609514797023161881628779373295443155411407380772518208037622910839851812795608605193140567644525753132309091424747769880797945726457445882213777058129654294860510890080279449457664564889338345172703532980468152839071952724048723808712374816148142734230118433048227790906912180360462346659747342340796368388526682998032706085843038761940713562262216009979852975814213869437956469792158936956331312447918726558709799345673105078478101412024515823308093296498380726024653732723411245087156049333498092005129903938543422767317099613853742520923896509332071636474817629704761190470996309937427643216502132526517759208859808521185806773941776556887756343145692321951617084742782603646860507969808309391251146603146851893228793174278466458625022346245383993031601780627947689940585359781273830093163901430555252974362643638630983465467000370633590249411498282810434941003961210462273234185023460644166386436925848004818122476205921898862702043753005162813771239210387761733962102208638259915158392014879628675782527054849762300784804215105308053967869220443824611342507470052859272441803249330850281591853119036668003782305212234624190883794526392091987542170638210336338535273443392319255740858220983376639359002303409056831988889764137296907368064545442071893142533886749320814228186751379012365942367368790160256099882292717145021728626105830963230515134157831461601890361655841914791203640344849014045664260334192133379499100493296452867844256985541267467982259232921819242053488255450130377952572892481639019089780179440112240769192645894647288126055901679801995569505191513090546820258053464762319660608755608246064036585602548717872228195636909184019995836922679374081068196561675698341471597403662783855070129563462763016094745313290485123666499603913291676539000090250133651623275444940895162461398549219056638067362434982901264900515524803026575110144118220635195698992501051374356669151467004172346750720443942598036489674941534643401205124590012147188805343529312934253816641858464902368192208573855019114597922330234394745207708500828344574676551763821573999872598390586756805868317362660668374390093231835105603100723803563329172716475035203649190603983430901822649737903123784181052586701972707298910294911292469503363208261917079595361282052007420204892407870983096389024928715824169546693352217232913824600582687079673955453453724406126077600029654382615909546417054434664527364350745454829156553366758916446700485356719912969021222221413687412606343210666575252457518057539867121383417379753484370511760067735253318301657777574710094116917625345667287442909572792525856351077768068391696439324173494570049803650696484012020513535912978346575774859320561135001189451871359025167915211956914776190728116122101952118202168930282977059714978741908047175188163319803172167997806893280526845179439028376196266312711474072761202814109959485737202255675770362754611139821687818923543461285846506010946576115387925843784725930326359803755040788039088741900530711966854854014431888704847012839798385546665933870485792954236524683657008788865583611342325142833935368973415740465681170826232509753164305587374096142160112899145183249255802927534447939896778041993517189122845030927702789133812347398373438863970041351787589859992978954648226109988171251197777231266527306229505356278117746311872139205813859951092940063995955452904479906875918718803164290083739979800263908236614350019854636618660757398078278404273364555301044143055758511810679148825001802742528359594005056107214064637814544480085366586979809925173435216003492807714350655437489361650033528435409628590359109462616696484247841020348910305977016216780664345281052732524997637071742473910184376826995638402114224337522319889727126597859116662481659445950097795500684164846225154688112252809266125900354527265945061053035306162689535165968747464733342768488317924563687036272545020924366647619767876005322426745353092363052588049500438377066596649880996833586697102771548746786981930044656568959504876856478243420105363132365721985979887902985686133812324613596152326461848065113932391937135455074669031543575831331808421175647147575897755556408588262838414003440129973841714701479180680250373212203704968423840736896245302041328965395686617728712390619494675537155617868261564071709709345378419261618258694509865559768559328006228149395689711358556888004429149647879865059998539927683417703879841321448112262680066220858097492817847297272846592351615216876959074552196650098391804691288628559630925586154854123797114898584591273030554789437189768369208318151411611082538481841803994254627696292320329075307307117330898539679668648538479101898212359191113101593540551757372236709245118957251613387044858016327798270322588533310167058878287634966186309523058422679247381552258511277263945564751155036704346461524937089496495135590387981757347982665921188572533039599583497900189176981231025333134998960975927397881895666720555555038308431021666695760466876742793303742151845791421176318061809714366605188010174677204612510563995592051804245986186708380386955492179401024562178771761339155605014906144037945037807702452428691156913489982952159131541083477461515035602714418624905706963785194288721745172962402342411360588308201325212534752108232592358984426712336499635694336847796949494003693329485003487718649473628758048117935234045224507343770029444579462019617063298058184494219404801103261827558647516726174768366252922564102685219111463846924683902551675421567390409964216644915838451251810411107381425727988729210739240539510688891773193019548051964370268684437124176945786653410700325321188313217389861001874058900007516672795006243007169959363359583358175722069573373848980290880213063224209629611175581753904360473817025407239439892274381486401789657950474286735250583584987675385769590145973512124423584295933097434817213088575907208124692657507266470829955712332208805786789413563643450182713826367668415938934733559774442628281774815315183679286716049500612637741873793445070604568387673154574797797261534690711220020997961862737381662860390645461900895218905494037975603811923966821036724263316397665456406093752846003837016170596259604722280917684558154652606647360817830503864192307673538426461514497439170157782803818826263547308925719226962059034991405561696039843294931645174040750818096156246347496064887009373158432768739680400650063406965861037500358267340630884720639336441392396575583019610050247865621874113379779310180252082692067066851293122180235800299131235569649908286069655989072728536088040507046043240937741979201770891983792497205823743976881634316096560072810573219478048897642663561331500675698885755442434710958217627423986411485174975666437342953949604327982573051485383000935372594511709042517045315079226406579656001458472022222443106047366592629026031192898939830513996254144481437363283898111064070094713690216619486683628069107537511568403316160635892364785369079779151713603273297509017030449218299382840530835253128471511748259509104380656096816635611620557688475240411223461709275749696011937961406983685714620162376210771781356043569135645453377345683374090087396113020517642282499856162024850098319142611783879722408359071803357962788709765703930259266376664689590905244183756418329631281898418231752043115018283525396725430503216241228630408911524114495685578613445768282148315309691016990327935880681255130702623346938177389432231496538313488034354993255613488006840102902810130750388753191454019937501536512277494579558780112119771820777331964831380852804352253679451015585530804765122479273757493234780223877195652754845324001443953792120008552675910175251381763549739671904207878478749359652312664343777660793799842351860252651280229297517170880930861058441342071442369671002145167311432892014487985714561710860050668460210567920473580106655019565769971581960687363204863032410263166286951776204332831982932755283432077420315764038345884755253913473582503320164203043036404427313480143395263039094411733964168151004543607116677101130368059779066148097706465794427087327207887100213109013223404381994954216276687796696518489581774698780307626707180542829119229784649863527291305246765644504250300805565669904030578696061895562737230630814951117266607955186438799784138256520263982347386970277210224966753013269390650717056239559436847588556169690501675786627268746034121958743518943271233568663147442128707874556498964605336100211903840084392292172341095965304695285599892259598470441057597815611302610681987020503857227093011971494545038250280059112596797422905616695415785218606136238583041141848252728389988700292164522604083836107429626072125725610291594711243482511556539511720491587633299650616652089233402922062466750300740546957000762994496296652761341242801194306117848867097704316944912397595969724173682522376755953847083660346562876187837511703259159898666438150948474696253584626675472068157620435938548431063997511515486814560582387175654919797204258461372912101777727920173960069129471492549330179296435817190725398198991964385330287384946795524949698214976635390638870402467549255542374343909881749985010492336785693544916896834537898891602599350396024762706577061808902745755278227533623142865776060568147955825941410288138415937369051302572547288643094995812591322640475162477694515877679539129485922332112231183243850783635316024318807074761542308441490003631026974584258821415510483647373399807128278985292438284628612398698360345108114000981048719017455862988364632887282765550545395601235185997516892269986361011430821564493823108997337457627601822026741684641707955190104876468086380046759185404479558269314842560349634352071850135162758655695986822977820236565496333164119682126942913605510005129664052980281042943735474812521612296299247130521919693410770083020877767648567953478195564617791653444806210878178417739627794435503269765189025113245154597083461103442610818258817651428576787291765467563297368391793951809887554783288142059615999807234927816704729836742748923898769816318055191126825142172459523840709780524325066973590134837199446052781806480834493888020358327110209226484444087277931714720784247288332831064756534620643237264934903122883073858704022885162187074450165421954420656008810947702408716871377468512531289510842095135435078438426311773716109672266011788951756424230206470518637218723771354399132704510003163450882970728843166327546497199086412351186076353901239277108163708011898730912553867481150247814675490024806774159083661064817218639047615692495644892445830034272867056127904619251787178358718945761379706427897623058431133263982897266799579090238273258895586419913315149777590831798849221912799123950528530594903043293144765418681262983172307170567763403780353718575789035979034186514067244951766544183992856095208525891208950343642365343745324818331518698701611890198475281413113018369892720731880214565681983938025568442783718333449080167990191864544677619037293323189573548386038942143099265801379086198747483390343317224561815656668618546646323021625301984475956222685496282373079357900448991711634142724789135302757994598926609565633758101906918049165787392919782823465771950794190660691045074271520248962795623398790788773941572268088789992138852074631150372928631951847286338898006141137508957100606172973458826691809251540264258948519762019762601608557923492953712701553915962015009902928531944181330610306991503212652188949202030713322387885907452163205924962426225677194713979585742618594152832430094122349969757027216169210741793694167062687533708807164456382112217571429759386822027877744376837803804016470351355460593210192642721601691571226943746084171844621092875244537029761793778290543936642400117285937045180725297262953773765721591996312973729745234143762379125921467032337410483887815826865904346639810114673466962834843076289240950943532347236765909705117640263107796992865068840441465325347360318633638153926949045334532379795484685718532565792722530962610855495980188543033363890143717749046091790884639626708926979298835493803948919463766039867211564158862117608694428520184709770770081550777149146143094015180491384181520107594099277651862150285056976505776224639878629095119492140467800745855045853174029311237067139365128490953903004806899288214312462401845351112955224216866659198170319591004099200478015259597209687693013199968071839643833164771137609475038666588088488370858603302226106336435092990762318639264881669079872245220393687942425264628127163122732546181125501555416722755653430601048467053046151908348643903902366061815797712194507116586026673493606607785070663179564839589397369338540491575234503309927365783453823807903469166978220974189687241347725412540023705629225751143984414660076935849966659872314488732022749277037384962752059114406296772616621484040183209081987246662309477374718055028421009342885721268463767978200962410523117241086915872355937492604973005804712304441361851279259578395750831610673417688040778336809968037442278378009825788742043057399011819932582758876488567919579741427254512535641388652847290998120875562848749320427728844884364819601337359174656175958739308795188530562982072415604101245437629505293143043635941553193741385294978827501607330242232931944823112237469005612978881689055916546501286200043209493884614903283617089864797199262537372644661728365265696416212841589037204800325821845640396348736324272375426986198128374947728732935070966388630451108099624422127174451218132868512530718941542564915636949531255112170946471199493138481616903008686528601602799271990771467172403679736821673875541489342518941371590880550448620592261807109564547731875177314886096732253903846976458578643603624230922401984905479487659103027049804457324311380606579717998507216610627339489958203340201667887516164639410356535219540511429188802695455607966545699223137253002863311443855341362898666636995502565050741875357038137274709878786062581762137562326947691883163797519440833283712980359343239420033424266466168116876714792612733219220276247823767187366954903319169414608920453938210297914837573699132499699164498616855613493496621977888497449485012373087901621772795141939136838138453194907673206495209706806720572254276951231959333742132363634301284894042856162118286107794036920420555922231852475942966890410681960863649121747635625621619084942219049072756504866177452310934790355383187924467988335809118058182906017152814035881612328135683963065811588864057617861679115422316786518464861479330128716193695775407081746769899694068590927928819604517493975517176706167158241623581716135514841881111061613637043979189817693554494512585769713003503505026360536533582630430093800828647855718049150380603807370014982864293562258849200184485364266245068170277725680920014972712192558838570942233644337738251771279029652720387447570868544719487152165445606764829792203986924738241626717395449524780459024564055225577364165854823816599451934594819204759130333391283985404844189144597954149979068625586003978746997414373132576295659261005204477308406597327148548289297726387344102018503039009435506613469527487788820946777939482839975699170589027559958761462254348053208222011190774938373351048529303416942176006361626902081777692622362283635124015238248757952036165164206239942963894913922456109472566973098689828023333509142334905239380871659745910944341616527654756959922933849094176662487228824513113412770647360009356326036251054561281541656791024451360902543713474520597883297839534695319613646595240667062473461171157998036168300549623658295698470971614001402137581655349600336130580029248725691825595356716150217879587992412393233983416042536748297658940373153516154127987251552468516673695573817151689050459370653763828213504813772758915932341443432849547931625533269565379075782826400930213510699644116675879839033624237690986003723374010185519734921938023309136858305660999194069896481003877389451640934833581632902780494634224047931789103378010176688338063261420404128769428559895824897362436577704943735274260404795101936097479663677947715104952244369854574074680075075624851346302993404794446837561743602415658783544539217829129851547878342110527003990188965815927927419099434024162598300361533198916810819987407802166021991396407185899914202493508583314142764646787283915253873203772371584699714116552976369831941417508616352051025490939903072033751156679354717246797897744113388246644634195517984668451678683239112035669018639236448258763695292162024177851922708817915107287358315161740003656412384499909262540179748803050741100646178003782317306615424908934188949998838529568978559992580533820112985396302087215889400512368886111013761712856365686772829347609647391806397543567447825125480374754674257773341587491795392292190429656701956495400588133443976100490766965688138493880136351989642788224747388165948441094836159492457416597706608213653937948817490266006660839678064294940745996835971461109160104354383239196758762943865527836838455586566702936797926558031257694486950795852891078718235179956910650152190417665205817556970578607378233924138297152482387550654481402842726132903093372521752178652885620359358307974391627747298807186165556346334147785860432793588685810256646128559111877540119188390537854619786936631466715320136639978635365338315755526647589201849074010974128258654040566063216025288472020377784525646083662505620812770440603224847771031738421861167335518013893092017876850699656244954705800646348098855649037954975382723259404864836864942213910815330726762346400790694788721553761780699637397489100496863238879872734354091586590295781545385341317545084180953006248642882039891037510389384161632524777420145388953212053188655940109941975789774416213486398810293316288661563731694457621234491574895553914616567845359234926270869601694100073925434906948746160390075632735001886019160565221055215731688869749027016161074978165476214829588344097417609248216147223586704139965777177350303186586694060660302191339405804018377913488646041912587103187133188367079696616051804987530652631137113158005309163099571450238434146953184933530668086960874487524923984638410473979964843296745303184895686702194303073427090647531269587236231599497199742286671014169637941584145804649914825125673297229711584753069886034855064287209069386827014906007074157269335130389008112846295896882761387320771064965516434843866420615758332667153420231955777956464710931144264884981931015521769170477494866285788489036150792761484965645193357953216048712951769323436369496178783733616362038095379773402278125245645277258932474076526289976882983630293971812720249616419242373156409982422336909474296345234225488889394075921839502197936737033825718722515564674123173048230918081837997975452783543402586708133577407689715426507847345387566370008117172949904750944883123878773115041569972600255080803017255544636426215084863898262991015636739647227341643035045855361245584580503418055545555609953888767366910656001455080263731569832056604118248143662033600719682099038282807319234265572827550187154357447820334629949249990956943366322836115541416226933367119365990252790393170590000373173166363015776473117281050094197162859616552885817786734407537767125244917915764978492162320483067573787150995487772733189559288369434540446421331032105968786810671417004516484921880613745931950169891198090975957033779619228105453693759937088687958448572073620822043701711347181352894651566963378571722033699509986677804138688064078211971151940299240083126206652160294328132435776208244794477062911345860604475197761341514204276492001026722277493151697004813595942559397018705556478652767802338964197903421091993673282199265191574948512538949264495755994225204333755863972029090010534034150537991300338129311540289521905433055958517009075167200811459769974116621822090418772862537115798957475530811152839142146000784736007158636417937577004091288004340513334524887521027469459310622888516281904245691935908135568856257739625939123957432833432632836415046784458036963098939798815855403618483974660651714820722471251158461901522865911630173457911596160837114289872421351709801347272940314594563476329998577738584775590929350558812620043925051261538257877874791584916789700064140641613737123660807759174132727348020006069302695689325060573751600889007367684359186037333971382676729513243726000338520761980604128111861823378285873131654279179718471184245049818644855684107710038762133528463965475425659099977746639231146090094495617119978913150355022015864230665016082408814116948955437825180668724906601593500443849340811169872189200166046396030665130322175121861080114854906107827721636943473561439032625890673303756238387284295813205047282767135151137876639960812556178299706592216975715949542199496483583733589536253094968734435101570249828703172404122165346776334770458683605870636236930798433802829329848464176518837193502846712606295895913593997400371484608067241318564203503496530162980335382316158984701821524066565205877920762511316798461143281270498695009427635566586725332938862084383402701241604777080158348734351475705036946391313210519477089783443652406518878308532620447507934351089694091511314423131342393850825244245461076820184020470788325188142653635378950963439392182068879261221043287554672827366519525839974858587362669161207946795825743282424153114731579744373034130802569087695042235513520221896130410351946242480094986395892307049057208282153014146458716859727474662225179814625045154351943349155032308225453234543122622158522859998009813376634865784989356045822239181837813794954645275274716076933525443706086225275592452152968965175315947536034086975616886967694040020755793095157814516261230619611603114978743314910674932286092144504892790631548864391241038186263707763193076227855652313545856730888341747789716394238531215417903183866068943286317378299348734415086988032730541799388403883501691410691984416228671134407343011530940484306425553571206787215432280462482286983748871027685694786358358539068540609835162713147843616057982314746048527317409094642024582862573554881965557453465601928040770452097598807674117902007000632215232882632439836831834233123555781878233593884325374221549553721027978534238747003373270801355336559004033796827307547925122483935676831562384452344622851128053297627363250038545902613974204760218248360656885783107206166964037355617681274431159357710468240473421410215836796242707364922487478364266989243681098687367065030746870488265700556641703061349006483556096556557005879190423404414732757383177715487679938538634100020973711497005382389405780017190549486117599176018422793199093563373595027121317249572662746112461697329483824806908422377091705779778688234297834009402951103598082836156655309858777833117232799579242110506413242353481484120764512122135388478620272678590715337667839211322735634457011129094116063521569520752436210075756988611956721098580160685710580301955002111644572976640680413096932626399012846686185804642762297114221869819709186407439516330795554331866839701136291860699752474144446881522310897105583455769906586469978597686216254953341710440040913673082233225831935986417628550098176649794617604116726878984039674446456320384477954528556473095134633376881691088988344910157506737264873776352399969560574457304994761703325300591978739655136392833250449312382026476589946066060411162635621214046554492322244885513822868732389877104364235147727782010743213607469757438814047922333043355754839483971477691815778142392330655767150726141464394195712956240031542961168760952160169813836200742775796654672927909224723339999023225392034571918711812400146135581338999429446033569942733590621745723786386435153571495733783987563013205678575204750579040655424205810192266261894432431530778929567502405061969220447813052527907911210373582137701060092774369522321626991458370910144470199068517636431350279903507520339572508991068584706266419231288794692338562439327091535580702427507196832146898671695853471149664074763519957328672591860176332067182963694191015749476495235203539592221803636645098363132607473828165093574239344925614423620254591506047351243869984906630929131705930586100850157984653965887773782008271913260244325725688257020781271313389140654552674745124677841716600795376447296816350370917506094506850079765175839329850298401126331869821360053368134632601319368911414241772166597616102828694468035683364841610779031854367562414017004348005194195868661427511088469658570147775099117102969372369480621954636794297835802126122441009983182274303321798118375831388491402899201921433776924357530518444577379089474688761162307167818003257574180453755984291298630343818294168582718857246686950161500553316176014895652352132654997898603397556473681783314179539759374365474845380214807730981860936218597280967162149400924672914912820144509318515278750966943266801035423043299901732505001011737207924097609838013777013139267419891691251619426607935662153851118557733287083864345905069729786335933117220802842966072089769306214065734357025088650688319136264130550433307611777291204160739408444561709565095246158676758087983855780202484542841333418961372993596196161533030605705228941021018886818596115312987949263814612328920898231516135270545784996642462599324804814847949535109202832438135916935867673993190698987355386693985258978169985648510180275211010704182698590704492167949742748947442083430141514154253180562906408539270591676339254293334607187573220802889423240658783324663015492397555991633628850557805647145274673622911988852411212184965303077697761679677504377131551933300637684769332156910356585117019306500894221146381039921244832534869973435922393929833714418673848920306732249732991134662685565104078814593183094457722006533985352539411429713707651469282286305267413641310581402664861682875204226916085545290240175671739995691121364343657901501469014685432926904855680353425279228004227196133794813741579864577751294644745811340450292792290875873200807158332328286202216641077234617793091540337063264596721401203350168371315327675473371343342399683482412827597174994530984907217875519291498878009053702450185706250661581369352279888662335555549794028901746576515084359537275876023552953917655157760776163789793937994299766776629199355679910802244948539398580785416417974079248023745008216758165710658491585975009360336150736797234453675822078145516400813318455477952960135084806858507046175295005296376984319770623826519332018999942881262298614126848255474395456738777565940943741718573903266797379534281361425822529127948335946615933321390505663144586789786213503072467266745267636875278180504485029120067585646148028362719802219017945088616349576138391539865600710938230402857794673141055240431181122669170305357101024752124720272574224647580266339538386180155508578574765505350358912176523369638068759845511726204302149107555330472930592191440140111908040038383487571413841275751612127315728586172542715486586842332778853578863823851547762589131334174749810292523248234725139530168073900518147104824009675569341001335207432616344878439108129296919133951513807836433236129005079759957174282506755215236601825850224744641171830879593566577298025713103836458366732827047283364551270566039785972390629093030998370495557614493415488690499077641176854605719961426733603539577129859530292502366201317864786440305097685948942441076245526668426748141432353872486451268051058092616759596100605835702957344723174149984713244178683285707036224323279179239625552739096357714677104105648429079248680064222763959746390301771454069730964743289607975863387051375058252386252332793732192002565333467150905439509281241927918833285688169586645346308131846934294262993527170420478624763822268380349360412650358205289255855020738864346083781605912533219661886565894868160235725823359776889008343424574145162772668260467066801177513073863656123725849730723977994363753134493956072520074253815470388823287934667955994843744327465259097081795825702992653418249467302042231269971060093852292557865506016538229744760750153584302900370059130707811446804429869162956394806765576549294317811804909277722634293965743107956791292985383073582849851943652034917455131694042743219636671522344366944140126855809633705370633186421528669439584317584999364776472322130540418402981190319556277202901407379916253008677948666366827995106097041306155395383677574859900629219226448590672421008686339098773755377098068349450391244119474527455236474491541528359655975097942870495922230290793435584260732505654706408695866533726716380253342879153893062804908051552122580847367826767727360843132793603743920105035491781352489095302249623732362168709164967542441217690373986892939534723758893374038027694783329822880009919180730220072233378142846738269545336483866858111784825884216830635933225973659892270266170344585576178036709987602888542408336684079353786007762568551556602731850136815536944389222734396075917615763253608217770868299995860815301428751685965111192636635966944293052419925142820019444711039066098699780357618500351563865423044514211773687995452357790500173262903294656039982874476315311700683127426837080300855836750746438193647996525072945283517483383973953176097119554117377097445532852237098059878717441682660459710991213380968629065428180185561229235750907571912065384916254466632803287073312773693009384445968791265277616423781995295642844090449191507690156490288374086078927826433530244271777154039649753177680815489192154018387280904312170913865733745258044575094270010246419244878636900722904981013019304026643557448915154964192822896821887425328040520336303419072848164489787650498203590999378348870619698105047454040899788261709082287224059282587743493612758331365478923471073919176539352925794323556871244617998217558527524606090909628535983450669632154364879763327815211197577554215454515243034463384780800608959240044696834234145991131211172325785374233094583303047596642266836538150347435322721903095934177187449106728998333565749153838515138904911611377746863719457793461895957322922513177651266697465954510455473029458457300204540569937569506958400531340979559515047226600508429831948043225711443211256743025788349624605962374746705307179791614875050611616249259064245227992347043065460287707570229532838393111123834054858807696846706458008369560836290425431728306185599079386081145492916663718444910709308707657220745514816102923208639112600300511346780862209306816884254654144065086980824235245723225044899479934871870549595490367725356589147831042110362172208038531263216808300044070174721093388623204563935438932814290781249455020537242066411714881104444230565933044883981668007689272882853921565851856331193254069930424246928105070059531632807836721763641961303297590686646633259437825427028831428396808879516342393824792820712690522791488824661599377229655141219419021880887427668777149719743019123540799312923902053367929808949125892680671641079447370114157836608331176498915039805708909010524860823725763599028354265735942334291326581089218520615416288880822289160499115770912380792173128389461643598504074958413312750642337393556994999163545157687324855829230254773381991001129288298327645384588334394896136849044894698902342602009285081858894877956160373436417548306246893082315983829550408435804465329383619048406783267547841951095158655871276402495684576163620161857399958751502760727317676703223925931399232356375449981802803406121449510599092327360331083409702416994885872564494703273474241581360415550809341260260531380685224986813999969196535467891682669923769509017955620615489853098206087869328983686419103991769549944105500607752338934163778855852819135904526680669044730718341672452263257433453090244065925799431837519613588719198823773337276782792668347649953962227799388073409986299475706727745460969627264887039143637826628871999591123494015208230837200199481870886138744220520283907413917632180294934895467827207728727319776345877088163980245030994541515274404398015368033720417959388434920042903874116599211349816863905284759926211072552838067824174122176996687817916857217991605050502215519008099634260702248165593488848745471264021454271055647846234666475087233699604133714629737889607318855294244879502015633522620192233374908449568384917310274950175240962919442422075484102597251928451864716928150721208343071525278427763524708772550244804401288180898974432559132987582625438668122925935144194628701504633968266671655729081938625410964910234730933097376399567647912448728407041538339122125500302221971941492623557025602710847824484516787665957205625699366771113986901284111689760238628362840651306410558518409922431152836339069250140241000383225623544849909299901530496268598360607227931872935647082973959111225139817333923082959051608435740689635760706253694341141347347896145753425083581500196661838415264706453552372547179224544623825179804022189132166400912502725932177937065165672573398946787861576217826360683972037126650617226509394253299648548005418040115429745040594942779663443706981876844030355585381261174949742846074477805159994896817073525654164443584291216326406387721101083774505650731301208949233794911599180055160405571673782418738460124752511637074434009543607106429628159213593554481159420651001999771403158027026237625085549910001012947328794177165308760999640440366090663753819566984050858417530573800864558496805538665219325721515367264543413500275254170623029850815590082741042913997799799990035507312572444347432737985336620023528257643281674096478885212690402442876015918163507845297017834245086158436753422423530898071450341320331700486036976890829046909180591175287545253516549126661054381768778470297886425817007986956786265041583262055092743380753887117188850625152427474258013676405829271589674113742768841649536250650077177746185888361426530840921608267249609269381304980595532051263008701192140210826563032585769936320279132421454278093713401797955434277697843550837520305490655787042159510893750752954154976436518592050365644345798679384829783543319312954991555652970744127744448608421841835431365755935018090071151611862812733252986169649281920844759907218414035060297992205781778169153364370575308167954695941304190206096889243304270854242306094626259623934311008569342512606082986979174600024902093524866857135969255312136904292817913938394457655241750590331663723945320197948446449460414105264561264660344232517816910411613927590070974347438518824469968201912630581353017488637428646411870055033179434657926729984454403132933949007152389157846131737303624296210341516095889981445672304183248222601036730208146435794650476389621581034107253175994475715296648510691551046611663196854709348764984958330623044279544191339102218372117596039404192483280962856108807492416243702656723491946489173735062291973793706548498426712708071421572477949938353801753318735907728016010751220341024763353600955145403835321421685800805460356379292362489088264757553011885967049517048451188439396811806949972771596394667818309968179305252232721939764464222662251937655784069144880932815629360241733594477697725777550881040628121954109709795941427081563131491033124836522721325961260705418206281708547010935119660180944584352477165117799905096216063243538874293537386582317052424399334444984654260121036641067388120289041867156215412871781197873396474037750292483963191231463787122322244382716880246298905104141832258976118231789583011772833073390178580724127152357419059033268066140461034965938221434466251343001465921519983480809793537936966560465024080977089879594544800541358199347834606677230441635764965691526641219363465020272590980352001217884472720405880739334632766912158080951202605341544485212606985873849164927303196034548707705449758951161688719745513664618087517459840474185736169642878108612265056681170163164167639670264014544403688646774706811830191630977042961718357701167946844662506927938756058178513215555962330778723767700587545031312378693160489347694301329566907502195725966845474352757196292986250450320665062747811082962662938082661132850514854502004385302537120426667657569004618913603523486886471428228391416608359377560955725931387596747136943460024403586129128935565214872825412289698659886685755330498216863010233435328176135542463157242848427576901784938935080054218919102544264794209329028026698996323154720478902610429961727132403373560246255003255100900869719013440469350133174522528916168016487434646034221868037085223816850949890012829041340956723178282834140612254793641439325198845732874992065783788237971514642169729871314749884204985834440065474056947887251821814684091218033268882169381350928888376249438982022266305689987415519850708496497524138346210812055918757871460305899442697416736371446070727178563196923917987924311988419432125972463926157587689900768906275287392793814504225190846975819670360081100774361293828234072829566402356780297734184905425000600354297643094757218517638012617654374661087674260957685817993925045336471773498152122433058412829941514323024227830005140466605712457922257905465455883056840017875179354401565229185787535150670492790725836570002473054015269092962434902029174402829272412259934539352584395582452522004312297917851674695257709135636268581011673696289570798880224499717874061948914620103323670723855894922098947940443002950351234173055326848252677173057579272420370298222641585286710595801168502547391985225460074733624973213705012478019236416396225033726049602585179260332517035692168786313790019079510987251318012452512043307963001187359571649846021341120575801757702597253235447009271855389230390737344951377483957540920214862611066667135940483244516399183114655414014550654094662187883455242806092740357552032621586493778697903074239820605170498813732805585951641677510991441964418978252044999384806163447264417694823305139564943490770010373101897961608937552416073145389631175433748846186921224294088240937724039240528809812132046900187454005273268103972315616417311019569052663405850658156245791578876642095614264809408460201850107034395927215203264229314635838967899244160692487507363270222264383877398057640409773996563495612216435998533489052346305353323983150660360822433218150374456226747900091125037631034961771537272269829553462018315326756965653649001759356774893700813432680756568103705778611252170919219180785892769040953672203178024747269739810053680029298806839972450892173343308632068285058961431985234394487594927131894449894435182569818568770007401599813366390369871176276350051542148756083085078076026926404500415883051061994073706075111087629393427037990059871825125043700592121100208844950469013241518787913641597240451270807135513831833135938970553514509028303100517614311760793719006596006171493340542271476916424892387052779838788495199680455258112785877866749592489489552404264342851164890871462657721303627536227511922578879372514819091407133629684411600710672252486164115760043471483616581925435382503880968702164994244832508506473482406016423622823594496673385709514387098173935684987512309692844161393698685563585978734222379243360533089882395133629748298558354114166526239803975285098429817960642695439268371557915031739520943849632960667172673170416562827394668108893999834053951467305718019018774384836727911380573175287679189892582914112891398053721623600834129656373416712397953711536735656311151998262722136877551563377526535626569312396435317905904626434410355327657247134449290371347762431648642007492204658714395428716955499795173750184974758058649039446557874917365318872202180288597150112301756956605276511637774900118226019377442881892629748201652376090515763049598455266149992971511675088029814263974239800192400125027055778497708988077532679531944246823224193392357016562313543115204849205884503974357862949769242322591669592994018859004604870384322036191387509000327267936762074834744560992521727079514261602816461116655217106572055232655191876328865039597047441890243405719197712248179340922754401069702864895870435216367580482349057479203225656880300893232182749406928891388747601316986632260832309476764607192518192908056443830475926881431583242823895411656801420626708970839269014285289452008389056116551879980816051513932599105188880637350086723976196220364134519829997558595745602968519941078470575872169116033038079420660379407251462354301592579671502138655792580908994474532699065081451805945626501876797201684373804853234893123246025274463511021669085101789306260405883920380098509413596798101411954590611067569766981527207556257926181929608714975011923699728314163778320187304001669695342048311072914511215646111236064645300590665647628572607194557498936355070801381266395668982915027983659632418362199980613233279597826273600991044625408351474095125179587040689851125955503171742130437396415349564744687206648646556192087427080309097889061591517890511085526811829701810724409334336565216975546325996967743021750378527740342142421890805752974338001510856832817687172428039462027416161536535818947526610548463206664440994214051068689868415768423167619354245813943766996530673538878771436120846982793055227183538418090208233401565376948841438028472392771727521653977726915877518984334995160877052785483665701976391088950398692683907985546406876451526617322328373872632338966017477020460508175544734752811230813043037120555826919664025787432559359009023446044578591862864416249039579551425030579854342595544901425373306015195989863888837689631376360956283255585787595803078679687013583926082900860795158913989103062697061100481777536145736653006297323776812453659337755177208199445800832154190137911101088086307002996190343741104967036398635641052714016294373014649228884792403044986496927659634296325927301808284461710897145283465819915018196078749062018698657398836364870920205598508463724843999220626754361287555471265163276101162918430702358321439982977668814790023992925130548991605095439753399569204506579054836845264398136057998778594927248181283345028128843668640251504298508755219314130112078996671035086430254630778838896281635203275708256953280424472121147111541067824966872972246689104354321993007506100643606297660949643486280929286095207559455348795109569098359396170123751429791408087009580889246932820115670793714252795521235138461277968583914202921486946366986663502432647390668857204901378515969275161947589032572627413449416828704914533897561499382598648105284263069067487960340216485105990643164235587804387535302593458444503568712519154823053727791078714646264695476681490626048398528061992853752661137951901599165943025394416047651309771196765526040926043486183366597749877328971280672905964707216668787148226851241847420874924075745440569143288103904207562442071349768273634057967300844736289318708259800843684899526269978059766499140205887774257746776821697327846591754110357516209369498880572547648882199595327336515818149288180213475015352040612490031694401439055537147412436080031891695248015300049450722108162556044372213838466493653848067117963767178576233487381041164385813424459089115093596535091836534283940971914738866299519712849604502807361681549321905325674940203670081724463451857676149342720622670583911669019150673374851467023351416625663556017557837042055139174712435530786266714329785508095772284656872140718457695524639692974564494639889720795111118892205367818029878499970242115696799514803297335265705077730087178392650711673343627694692980892211381176379534365275984915933722482709687020920349991342399847545397791514603084961436609033439377083679250395277246022785935762095646588111135542719567283647785249285537290893539506788210339478306385468877079688182396949787511286570463230649830774084160423461516476983807274683355372535024966903105764111526623767427904603660434557169413134165116655625046978771494037950956824189194900321147285076609550121912421818633763328447672716964557740238612675798906614107970405025076473745472355820512812488528713579294948703617783460978129749114959517245728921433708312797328688319602333923351847359263792433244249531519197292497245797320323368084401592313610617429303255824504547486597873575310370783459707792922684561162349818472464510582676696511902179918769286100637936001240142288151727015831822404378717606168744763941950240963534256132940596768346079604572510201157188584254853204758356660189301100152476767806158419996788171333605436878279925263973238699302738531215886285579359703649294850624391226604816045442934260206370920337950930172212352186846686188875377363350877912362205209805804003556253075401557552528313152328644435575729029449654734415353361870605982504923745739388227573039247218097461047353310554477770098812780382588633921735212064155204497047613133042139035411145190291493594545795320920267068447234721039198932828141649934816347872650953166974840521672017998002858989200767868683555736202609719676007454746137726573178834342322412757666161081317083634021884876301118619951198049830007843955114626098937752025494300989320920718917913354926834784973262815463956186872607865427882061189280735072241528939229028745668845303496860465296064898800398877026860163100169946466996122152449713922443780673439507894979323678938922052248678408274196067781063179136909957927172523212887449317518044666768951395611030217051285859432756149866892092081438730721070551082167554418253951456859449556077525746844889256742317485031778191305261338063835733640713799524646318438213854555268570597981823697106978765523758030439372059909573182090857738824632283098602403929595914465444520013726007302873329166175379511422250726574749735792779647603392382253338909372457813346625349743688927188015201941889827657763333156814283532546421819369493061421692340260703190422259784720681077060049225465210268044021452510149633081352411607619593224913468207474326171567414857748305594064146018776271153717429421390887845443075489109827158467718965831517602132937776153249543307043879190523228041696639584703938115479588873640337456350873846481717060054451448790981695385636610267051617495233287576092368689345536751280963786348698439349791018978767841730040480501494343639143587507669364718891911776103796284492907421339785362437895546381457476181404609423459097637707990149323556588210458325470781716860936524327776286435840143922608151661374127914498141797624132429088141858412519132519277228159854219278245731019463658530318357672999509748664869810365852255924161018729503336476781325957279866390403749804122871211555624839783306335292108074835948003702800735650517549097155403275841283842356550944488061188331502937017357016405932994304116741031199021408476918605583981648752500550526777572402565809976594205168320071757420372525691577264838126919366945348952533341626963933585816405061389636613023653524028684179792843242770305010884960003064718338977759671348269233574250525492839574250402321260404361616126896118191220872224740160501869827470680764726401986987535227410625536729274299114805032139837545844311152284214223211069054730611413974818895594168968029941466850488143036451987713012647296578400508937557245246517987969477755812677748787887747067233568628063834518578661302628227854977335786792639943663261211113509870035926492324348829965640065434750691763209853285713109713443354136877917000122347811892902081114918442783582088139454425648977534295743418900034484517854580292427301623674772077451503789014765113255487764837674904012353861810639157890409154556051590094819813684595805763084524716281430502371108829658157937330117410646771710988136071954211868309442680635717886360053278258614037696873543287934558026410872552619702467692488325362576393434988722543164308526887795476333214978019032067240911865316391457737452863820163811522065716587369550419356845976401471693874091838885438239467362222643649248985886682077231800445922193631961904599778921092495969555624388190536489700207618576826740823454301687468638629368045989533972470836413841172100637525920611193680385947847784790082143672915196190648269455784129438736454735484260039498911021735371922360562901227184329724165455299212536687379395197458307741317319894365285560756643977541028727319378542140346313488721285088040270382511735726545156855657826048086790966194759811295097625007930028120825056713929888908728118284560491089522690225625935477607076463615936646105099902533369480467301365522167675943149972925590904657608649394031548724762638805228742024980619127392568161610654900784182711843454511130137144978559680486067042285032242791966998708164730410538505923316058271960811369908936235862273942469692479075379045351822624547855497337210038555698130267869876266945284204534146790847276130541562740062114761628838091992814360612584473168587051358628834424179303069301239330454040223370613089895554416145116210026375794717840679681442115458055969361768078255054120418555916655062213111309474977173662367477544868469963622767691042240120985724599311937412280262202102345129028063718083912939247385503158094830727131895388585012886995670641462348025757398368144932434414422921501961200632784606006515118068760204983980904122473274897655430826361727987135927174250917559265887033603533240902089458505382238584041722258632812896246270093134570395889890542986707181998995640463023420542191584927345331640759342042610556347228385573202143252924748260907373228961604974862403613135876661833867474687441015057288132663505037669221994243399445939313811641840582759601842868883224545853615326750556308272450961503110469231809067462490750716304307024519959653910440084822687913737542904757493486358059693317024168982871122186382156016597670124963548094086317686802946102923065654309800910545746871706944796321919372917351583814017898690389645915672725540236287839347329068991524057848576096909619761145837040948725407275863096341144463149773348987821755450714357899298394461296996704111540321708253391909076371834311705274641274302647118578502712363202738431810962225033746782712655681916125884851765400287888137980966795921939177620866543877900780468157004655317157670844759744476181747864429718067096234839803478925392015093939518405176660767813979107208786670359266804444459484583651219175564341517731467818839918245015769207210255638081567544920526081484455404149778575921717005217633799914567790692749091997087863612846030720117969434948662705799058519396889271985928118298647449595586551307231979032823763515751152866781123392541263680422922316435854222773235217414654613833356958063149213458543530257029019315788774705027767811649542305873743899217309766914700449025637791524402991808910386873178984862963140886915851983100393449712108388775622843475120010027654960655582188747432921348754363620685049828286304197239104120664416208748073823113718759258380998399683510956326093218163822411704355995933087191074565307469135493776493780942045279387537048683117677588496008238192912219385110093384746466718307296089407712478904486418292877908402883897049365245355070081387319407089503354350419100624150916474658031580985332027647528970185460794458102784262350738381820255442557493610034735587036376919195836942331073156475669560903104233529968668334468797094162958753287980807403121472934031544969489669461032565412528153609487978673464367297718561002544714865622745942908134612552852735634354525757329458461110908483979610786252016899561531160685907777331850370250458593906219436645655538143347565252965518258115756098407288971962089199896287668439112568752916699601563171616375768685392329864574339426296360278111176121620834141702895886402438361505392293740534367382039621372086356125113470209158562829055480059733710814657276949013034683265442288456068199476349452823469092539506528414757153096435622077201831067830789691779807152356924670704260220167683765506991476427177612222148546893558484104319980961866421659242839156953784064899863280641353188269547936521712906882689741313359807242667626460454846938873222965946905258479081378970664359073451825978541609054607049442913220084611258847503531584255480240331740013022852752397649669628068529599380363414120846279607959410203350560302476399454635506385459308663743926478258049896255689765762955752681772844552491892124679603497528766575671096377274859451206006397484933153102244934071844162420521562126696519070156916544653613465460072979299891747581567989072981667950885358772614454062666300145345497846083746150199729541219599076710615318883422208422374587805038204273154858754423570815781341234917855005343934486827648331331086976800259294702530176439341237260193906974310304946605645173428355232433409095979810721298952524656458259848499885631698514113524717111501412566806292755911844008781089645455530357391434352405144165458814509758769006293625789826404754483222819867940711180902250116674461487969929552109726114919410237823888218996234961323251276126490146921167244105113451890595382827967627530125899973367576087080542703374783369649018094609118505364257412491282768523450962008069965384671643149875853234594166471445961279965303971387021712038279963946767583337031654068401941521638754351382774383427958222373751805214236360420533816423895424925682719038485362359963973226472410461123586942401339441024540286940881737416777529558762199550353586733469131319327198642130202847886184275062189794158212706667257626360662795714170329219390581489164374590272548074210033213783686871937704544319423135063860424892079270728907249485934095625096415624337396031571144944140170741368468012090728139864398105253264643050174521842952323850348334453525117633165800246067051411221598325424054909242846264612845449118172231741355153834214142995570350238335981725835980841239381593845053329573695276862997471019214548674911519038009773018836340077706535796521697746321954577440145368940827113382198776387986353744033673411124707732416215342943565517634381853516371632837838657852741633930350681098863269677721783125785337415673651947735800138235750870094833831161937440353186024353441431138393896539153573870056967280767643503640998662249180297904424790550075656839515129697617610691058542706333066418300497143239882966423792020052410466775787614142523247944068809898463394188059907358536168457511723998983489266585173586688670357996210822606132989453918883052824848043623320831863637257580183523049662955084159384118592782717180148314325541232252252644200066166705054773838933617876844320786230191367852670761053775842444941491406039131109262582689570295153556057833920572548724117643374656873325902115370497555707001187588261360507566322897461375108489646933876642917542958435071474122614717417146491670260950749614927764738764556449596288157512236226139255235736791025618093847314163937050849403590857612346235240530556737129897304148561334792969000498883438873753544647811404674475624187617126154510255626947308831896866020256684407227759901697334542853338756165875485438829898868061268862284308780991594818616182499235330850838231064838979715174940811646610247561177180617304230270298404689776159927827864669222480911313475997736859967548783917934170268099866731610230302818189212262790469090606832021051450408548825000058596128848337954042561053848563676165994168552697245641434025192316858216345403306430996837984074142771868730020256293977506836047052220788829962623463015066717491981866185205926091630894143352089123466524558803404130405244450329636275815035691591554633984610215785937187673796657502434081064531390672082304897632243555326949286232467158874831738224104525411720577164618026750568159065659724555269816740659841562603397590753150733086446993780058964867588721997379010638123481843281167282541889493798189707905710833406840439256750431987391056271568475725502233609586657796206588830785028406924448623351498007934600706222350841337353504578317344531770638583601099480408667241789595169208244447268614828895713178163705577632552451231294679507984634289074865013935279247869615897823181010124269022869057499747427449866162395592972616881884410120589627553542125123709943881952563182427283454391218433521818627725703638082630686725753158426555877047543134247147916090332976467407456063505292346656581521764624847702593978095039273506868179314006905164527678058030564580135076539072562463393619778332098262096543109994899156061575380467730117949387592301313379644531737596161090864703875094906151400300651842003705631985353400453799361263195685201649853058956455338646194200427193590132251372056984528102585621720739700855079105316529257007084067569112443687993547163035556881041818294580098374481286263037619175405294015245102264850208336550705020745828548982329670305749716195900159263224438011824146179781337080278336915941671845625760435197086106158765838702832402481993013509326407988810454565271631450172261888749022019328856126319693608798392636009210055546666672245938161228171175323525169150286081710873781914343884079358238419372799738019355047741872439266439372002704748901578878762784329528138216537107336549130619019107328915980479487699026345168142976578547835676234411949680983473011544635248801828757019756936187890405973803292495305512550101880585881930666723743934390246232302482319636396831202904840834449860357198261723960276063149800238177993504467611483062828626812505068844576706766283045997579222623571214493188871054441671845675458471373889400108076195357089562834957526952505341985922161732443747657254082814699187526453168844152677467511547819793160714037987119304075276380998235612934178468628912126361952064082054014845929558389147363213854758768155683136432725685818191269159456307251988196322951820118939738937343581837676856462035565521681491520481743684102092712906776268363353159937606754849993295350729113903455741319154951297671902093456169523028121785864720024381204219304005653816861600245754562337811632533216365400568553048428175062127190393554629689030411069252883519184190964981569517228362338225653638410595622833651359453660883380200516394421665330299862167092586515578738008995126390791579498169469282902600675750033545887730960731042299441866751728047234932268985584630300128578803989067313014952322359340231317604454085371019076851074908780347200310117494584366307307757853265409398778993576572956118184481106388736385482581571034720758592331566335380124443921655971536871052528882703563233809713314479445554856777947236098096882908235714366391445844220515090677055216005615251909815233587893864394270950497863467460078247177931906609193073511573959039245857291027791675848577166644549119010075088924254445172898528491002053010255054560983958350927409090422782861965882448062074205526320531949429808740480464256415949791607235577927577881560235770541824626937658146853520345893142116609443403796923720541392251531056562189454864798801127886115786574276354213902189121573742910508478863202271354881508982559428034771563107650033989235001259600009524236520688732464127300188617037810264019699565280268574389983234008073438248839894910285457363797197288676694946088743265636056974784578546988215968036029474844644660239373747990319653489320095585731882720547125613404877258950961025159417282515678920245475755570277843784307360305571775345891970155340077642767461370687798700329804496523375452733432026867498738060847490024665475297896819944438534019477891004325926620085373955229860453082240625278065728720155103560712866561478815426638459186699208738323363520922377490193112026000785347161678002773150199491636056235581669238054945400996214768560007177891282957429234255300248374446848395456393909874739504908758104706235883587023759006763929431313242764206611447515654497204288052643712187380013390320596975131448178396376178554774429817130043572573648126731494142770641064573123307877505529456789128047483721449083691899652092064646982420046335834511268949431400376611365374302404766925175604508423445806098861920122783032594127755847072712831615088352060390672173164411050336341051562013809066367277615117471834882984047471348142168347049523237818861001640911804275095269355511580537104116053099264497669057941278066862132981008261094551545826419560384929954492865301686597973459910467475179622244487626036087626830591532789277640738992647065919389499658358118489793317512802651901022776891398604824845047575422502551069347480945102023004582803889106897911731770566968382606453343563180078437181614766259806058894004508855092568384572272029453558970849001304098408107134530609950682843211368273508937667928581860411212094091193403931818863369990610483684474204771903351082922352409144731610050568330586585777971185185236676646261589841829639282925898766575360430561114921710805619651013315770285591904027918447712468561600716230005836088204969798988183836492319040984523095099424765851398461838651304754989792819732864369448378578880194305996418184379584660395470339077218063405908006974519101148002954571373051777247622710910366215673426989894493372408691307318838716257802012738236315963627922640305584060169447298659084721853136139251888402021821181415579207559562791332455820709768133689105033311427167628582796581039864896509980518505014450367889930880006433071416824990539407360733102768378184413422340990409832209740763840068253074437154824897552479153998147805272211431386193508088379112533916568993589515376966567349571419496323768621003999467028319847245180725897178142020320017473174569841705318512587751226537009656857864912972469312299551517630818388090832398042856659789956209384142410223133809424749031997383057404232007712749189421680311549051446523050988208895475018378398053056312508650641651540378299264375859077315548924475670467547774220045029020425669258516451746028336087700987230641807836858557465737612416722492366361432091023200356065888400298344403613310860965804395743701034641264821707078433375258814184571763732303150042072434503241562955085085070535386778561115676158687152966016306893820932372842401843370721333859407938022453973855894002548649707948951516773974698909883048626906292109226323612205349638112167350531086181579565447690722263639732424397629170617138274378728460364511229092086283161589818610165986227433740237850782730696658243485275155773084933715303713670407433996058809594802540750656719558204049711229330450231044150302515895181105951465470845624699665144010897691172362922279327837658218933169584576782582135048911864149614633127142963114353906960738869771860608633367423593847719346287128694001964328144316205065774614987698026095466946899319500461191297681168344429003392999852225607263477414452524435593699413180072367201852199796715128097983722498840212270380168059812531592316582854983464791711990975388979955918123831112004415296972442058169475002376718119683446984492042909806426218907018871386683829159637947679201600431894720858635401967978500841137236220685382351159602457922786323319130973019093019487692607083194439397479977944868502741710676170785041673046965888375737068172490248063887628367776785920227848569561054202384623871242991470056085766705142094112720012801396580282558821273986285102976041761089478540753871600068563185097847318934460241571234665485528494024342599380625598547682252646059642554779183691559266530140867997046180526752508182266823785287165451832833281636604193657867924869465502915888641670221005442388179279734520167762500406090180563733905220005030936800596340910417807393460353016482164579070338728874994167808362541412387187819708282606260711828272821152400832038966827802117540725618349026909384137422265540780369813852153253598439126446733710244267250525581058300084953270055748722324703871408540747824885332997946620814005076959050144559602534288578556457418683728508376862924898270408064411682426273955270929452462080403745421483305845034013663785093792579411321443107502210288334477633594406881816421295731965567505662173265259427059859962439530774047762119909446087912850942972809877300767274768886798863908951759712738454444721049573119909403653653920216112151274875382857266044083343681255132754553648489217228535173049997913140576377910820917457962975413961858121893877853670428589921257877172415188660377044838540378721875707393996826704783484388651332809486801671529111841854671070250748772195485340797226777833100506480411191175049005946868051161275620188759604767808229270166214556159082052698052457478069388797774575832237019483620816876062066433600501522261262230441153392647846249000161591895876154878980244391534574522031216105437669076359440635977993860585301309649345820722481672488868796799991243158383731715642610199641759772646798193118510624109766847540226443160743928075155819994496543262702814867391057452703071105781497773182829194938073826697471109945427201824473946809745718306359734179038150186245503602647872637676170090448747415061193314963971594451484720441438494137881776195702416747344678424525792458829113429366312626027094110589358548075712292777614431516379544949174514824558974423140390943422713185830624581937297981268952513759000409137846372297835778134456517754988956637155428557501507133663906284404700762430937344085315760028405195290091978214444853623131545881405504430024271524729036878569701909260930673762454157422392666975754718557195422771027788182166580559631692916816280556355023293980366283413875610640811161296417083191472706792262516302416602027058650682980330968112480553833249409069724672863934247161729886461776778635204302425456509192772867043055869579689611894347286001336399708839454032844193135794590232759879670774219252555079888713552896289312680791918347912341936079894246919893914603088815029686451840988572996380490327329825126003208460311227462037461894663295677394269962334867827586181683112837496973530184747092692843010490365618734093656012605586274425625519432967508715659747997634782061088834802547422681782685966244233278342485563924707745477765360059275292602628822509531948087130003329708344066472305247408898562442727017209756486904791243703127303825660037698430775814846426636271949847415023817540193111280815899984274481023322640784452135507914899109928102887680680550182650608769252870602744255676092905540227279633515337027185876993978965142212788144839703564470311948427124685273826642232505639079282593535135511838002207718561735970113272214134709588949761806780616813035748676114150609160007778873413898710906128008258282728189824103874335962410974152951631359573406924782686130885925531387714812412681979836071790949046137452548342874545701073963290349141874625973140690737730727774181335554439247613126245924607482270850588138913881791422802155322348145123543255792147683347555428464069068873811563415393834222904844253021268328530889142883356759371945441067427274902738178655151541006372022707712648105418956283403344772671279357549339458742335130813135184346791338332205295608261767171332247003818515381999241905007008039591778005327021661965478550927714828183753990113056655197566390279852614277959564306783921787116541579235844649905539504525770344480877086613516699890827935381941799866848485685022921485088184732747684106952178697997986243126811093711386329178514339196814825301531779707433016114972779927078306954382380984272313199225107796902433104963871546942766728787001317380840818835587902459945257837590649185249868881603162290488319754626916657930826954308946384204681491830156444901709222412237616819016707030228146581255575825093030027919903855114754743957112273843015622393008764702550370801179813827586097760202986730990186696765997412070119824581250163006706556769897994974920200282213421783095577519172268511418769355864881690421443340657294968572381516693823851167078501930269407006016673257287884516529713898860256852515665904215786007357551647896370963028189939395134030623423283895357434900628787138329908867405273644081926314552765446725250037395762346583020574723470461608708844904319223439112896388063742932177239857416144314593993684969931894711998844425078940305509257680708163509520955952260235841211330839195553560818946304518932047769060492722273984702124785580763947518729053828939326598124954548768697600144954361737632135844621005348006855265762333965020725096621284585290859852717899853896325286465388757239599213208660070095443353112768069051313013748843659816531206855705262910348826113513458884276642556778982248249938971771848926492049233420518419893644303181767750858639046403327366066246174888886669860559834014076165740919284437223335107611047363429652946250079091041808403714489680735942816642647675175145655016767214101580501598669584741870113443564529569385397396177256762919254719156517113978226330168422127820362318200014613266885700833526407533368630010295861947078048426156627938065212354855188817330513888884581840202965000620173642820083141071056937919664012923228637219679100935844739077665957522121103273823292580429425613702652021924089415573939408043485513141224152018623763445608261866217943814080941184663512269433293645319343212964229368907430998826274939656567592446787572061220471394034960112700950777660681265367875386976250863542959330915605560579425714128931021303025685179178004965533180319217991665703068082534552687896479719407514567292987985862768830204046524257289598010040908773336739290459912960581906138900141833172715154797687017076201397007932334416023902943336773331595020712032909659734464624609999102482156481060263676918881017996935539651829394494881597249215254582605438888095258350493988117884637535207205783818719623954631357613201257301829958886760526989150624707109163922184414416374683166529178161823798852762275191602969733337493599641156453911334795150438253515219554445444842757945974582233109863474798472537462774423733424611583821539223766762813584276229638785862066319688601175167502816328582289009757987790178277879612512898001089323161714821230575313960210766907937017869208680269877709027629785182919488741698834933745213086963043936158321180985257657156275010432044648911323672778558672296763937286751789181456280549347199288514820405246254979170625106500440365830217040880105638409441278336849530007994405594715313005253850132384178347260589841430584245352543811134675142928471818181797097237148640425096508415844786973336487642793136574996066557515772458562528080263711692690437119601063141946436582497992291243269290128086432463600783837877991374685879444018215229708551115031229741124824469882749294232793777726386507895103502860956904297042930185299668912590569018211931560416590824329290063587750893446619977528700844441466298976113062627666688422369002113844693606168049278354495482757574901462919188092860440984891281312655613143422831620685214270468791141928450620502919818883808710039547207938531569547415693107524811519796353540564507822163620690264425122155254330618860136598631941868488444675193567149319458904873538395088747530407879391362550254484874857098828892426264139969876314925702456999152682326808528564282782415034640834707515757500596443403071376226114977963855542629324929644258278220296089534821125637476795618321050295243266719041759691374966924687066933598443428487200563743371004610880082127240648227946085059216247795485416020138489231452472522334424737914263486594639622795388617384362181743488166448614581031262318704066863988459586009040297758218657452294118326283268055924041797766803438408902385932379940647061655633284256194264766941374249428501687080989042959146759481641255772736222117743714584651019309365622725691417359295935195401459877225568259748001769298338112500658501135345746975794714686510292955464372564328337891902311663094391029927136257166983099776663708438605534395960563476087143517389223237319735705185835990314183554081080188074629551529459390787409307752423494502577402694636578260904436434967185281656038146179795021706530317976706158195555750910431800570423940340779399761192066621861536522054687846128011403080599602771609386923656144858497922490008558993047204770179384360748409275611015689713016811843109974281394954869876788331602885126396829782295462540210049277264151624603752813616382472253623912956099117457777918060411984334223699599382441932355550878335566833407257903580392476255632470649178477000115548292851985109440638795040544153497758632143551382914917739394771977214262050418611730649454146408072852611860998238601323203516072574645558145780449138882766953342801647246897605787550256129270777747629358182330956570703175757673206538298217475661969903507368838495318422649721464469449032069068085727125029125832943597980501324468381804164846423238149056641167977647540181389157752328848188908705155753859917726191007129475622162375021262344718709448177743898099714407443583936068779509284744319132406122194612023619234592572204073558553293642078873820447743751863266478759173777401564718990077284217238711686654839832134824707399077086935395355511692519501404167892262898055087628925492680069224224066383514794643651889082097307344681311693593079480267967384468431395622092592454856603892882401088189527231205321106670234370735599586748937509697172013209332059177591121036499351333580013184046668225431125277366830561129270141851223113059139035663252619618001968383543390105228811096963935843401395399691410180602045358497289047641254900799681285174287403097319541826673480622941027440379654640982472764107636421761932130536821198829701689000956943933867872333042887425816065152764066656811099705974093584040071855574881805463776300904036534375274785211237595974572685578337165042083919338184283203689058961548095748688869988047804453984244028867214005551719338744077923630335791669528809659380435908052427459395202423834305845323013304365725790961521496697500523541781229411627562460203673604783270916584946842868400225420093934811334864428651537867076765013711829481169925994439151274049425206939843691041638504863856942588387000733297816514525283791223727082267179239288372740392176619158144766845252751034716441791633866483739211163917081164812278682808129818782411165423079196793416900376229557164708582888082278441675123045438077756327941642833232017199619229391025673316103565970696635992188292825428718209412223042537696828242470101618014958251797408946480500666785173061085408654025801488186037319600637004858726941892044299125549477116783772523110541015382310753719231286334499361785401345222169182634305382400526252257196159378606723195775396695121115803944627523864489207118129117479153357231500081896038607448885441876130179947251815481052202419881118403670328167194183200363898287012314764561925792975477784432988918492107385914605751274270504725695503031459387664399477160617721538169659507298543500994862988850777860811920948128198174003781437110167412630236362846440710631490642488485997184724796008036937959197608673498899828340250424078606014441884249366947939716303439838858689469579216066422882425051278849984283819871153169963955146585016310862182422898132181659640793240132768744793339813413062170656935310071347695112888826247631962401666337414819455413214055911308857629692986480786154079341218213021368009485488887370979321129758249012933680897900072325340930446984117020799214418851491784659294299775238859197839486280952377322045283885090276824013955114064136799107085022283835303201537740311364256157423032663411320088544744913829795353097090474350716555581564919508104289594602323621130301072290573091003890716047976791121502638064742201726288874983739535228768403249149413709551833808491594916159360157937986262502447154089757268649962432746534089289467306478070813938983937947761160685171220438528264156698322601340267728849097590356267754200461958547991721344151770778043203196720634803313117227472623325273201813389496130016929730759560447040132157383851982417859322175011906316593191842955629644404206598355365288485652771366035476342355935954673406911598575579348892095883677487275043727031647912136520767908160050887628587077188279685006584222676976326685411411323950173355741459253095804184606965860655214795124314705304946139775223298673485269769421295912274481214031266700687822893931982605414170603282453218231484550453145117956710964587753534216273487253659101883495188886337004204946598309327183687906884093490196825795483345752488181974891129551245551158283290368703704176001733409424105876665961004674723104642922461613710918005144418547840598519411703324197191574280447117586699209224619784297187867398245131900228985331711802197125533707296805427942359641640973384298210408965219788459507430095332766769740239548005559211612230051869620004338682715436261631915779570487172871873551764780040073921617307784829496769595815915829237743643424543264789208300172381219635387128765123006148214759111451218279922893148223289772604438087174164452814842104099316527761506613518008661629990558513063692108510036856911127484590889106216091356812496753170304334422658493273741645300303918816112332311104239477565747693459887562724880639631044519757670984900253199765296010383669868757439670747138142297424290689219385409980393548592423278916302522119219689935319142847046238565971604460498572076576610116439889425701573776981862224582060375354537996351886223887968794634244733293897239581986409289144256586781244654438977886065115530579029441737486540189610113559724686185796413937406587688278641712717139089183147470331773710959683145658923139460883524460542688509623455158986143872147197515644031660701172170537933978051191714449046986817739436534582865679228764291080976185066030594036493205861120865838053012987247242960656289300278294701839362150480683433629277934780799379782509495919089826056089823475583721394344936045817899155831806430754231527671313226393192070259666396521719077832527393361216479531655700733085626592014477448633596247656529321806042230580220908321683347459039613835188799765901984646935132336564174305621450287908189928943720973203783072576518866324629204581882798516509032065385886298745356180907486267277171719778992996645852348966137098200069837886979360585163344401958643846866158619414932519070377236667024531752805858286580565210940188840701064896490289822157524838540119939846921347928820494587494686642354135689810353679204394462359193478459088753337292655480764944412611375257922988349752004637418942702939089106529382985346279063481303207618452519677878470512377403387485839146760388296192787757374439384821270321258773722967861308900899394408869879771458850062420785594657857403231157216314715443227510435074910172290709716702858213557724844050573336482837329110524488727174358083102465790770669395282250366065079244058089167053838648039002141634609284886917810991558763905172975580605707876058993650201874268399347391894516717770672276906085172692942174997505960915213930230472140225239131954679396441221259738942516216575593426728192666481002090639335556755704045967815982081826313420215580204723406055616742872090952260362604631113335516679420212302728623492096628239410354895715498470983231251053040489898837592656604675268261208570318640155830016522950882116531449129155481261277736530192560676304034902337685044799859216761198906905104529907249377696255726306578300832255418296712126678295670665455809940768174483805601482989607045051737442358460133862866477507395173204136465822217541434495020432774089373331564794224505234066117984619804947602371480091148982868542501680393547248147414871460925951824465750567349919816040017853531459854628665316632584756144043846740367006045231758918864430096676651923627993234340748209091638019818347478232944793288685920072567785170185729136335602939854842870808162891185043473652661830085319338555464633889394342843195976930568689918464182418558516120976254065901342944623923398056867471116665730626695262669595907827970251296525885999099984302993561299158663535103329067027963350784765736216489543380737936119520366923992698629005679809576681689373557019726154226588047774399461351685441079688363922126280993711517074032069185939295070507579291561511653010337595598045484442661929886955890270399707075508590602483632916922257290918626264540424146231020064254187345708150835983936762626801838660778071266846784192584183469325327221627584278735940743307891656191985207042733185359958762576695859019494248083129083872334147931748429106772204872462630171754474230897050911365030004527156792288803575345777214942504530421747858920381792907972431943835667656640952932514942740986504592633329460127350158332708357900842242912441769201260484761634956017526625929381793843580902391387176182843503449552266051187689426879359086996341399952945656252312295467071067356824755908745069148660278188524327847333633814302899205431292604301671538771330488746264833742519790214601763736965373544779070430024201531750609478195227432556501315437162574837002174661682341022595030849167740301462390442290161070031357021755842372603648557713767196441860613217792384026179568748519901480039410944315988878789635307803445673066056892884812097519828638928358017262962352511939002091437367024306398839776497628116085850266995390647841490212305804252020618218380667164005175017865254925362426502919650226725568555410744382097805625793666237975978207708261173877064477764920705753654812522196256040549043806271707662061854004542330776166061139616843624865207295110644974641488299851538906396493829620450500766972228279938306273079927158496359603704938806169618565268247834413351488704993377015758207730495668863269880558183857855951944629392939378507874731723972337765658005563268059067822558211779974295753297641256639569733061883255682065625672846900992872797682059126738681943718406710909814862476571979625345094983956291091572060678533203372361545183941314214367715210368283467281706065758684091199910847380552922571343130252529760185772704604937693277096410036767705320328316295428089604127053640216299831824942796360764567830319874039342799315299093773230967720027543729367889306526302859370832283227928377354283420476652678169987708304165693910140135617480090133577947715124160610624342141927344053631781630995559977542802070366331543173917744026786952742732136707019984330782468778946808610332586413830150997778555081509985953886122914425102079704083292984626053311871823074193334506353967813711940339758655805531532204864132664976343771958316727995890250918613365560049510290038610718785478988301679315504837382442840532858589390414827399181089036667348808464705058300651995719665223687114433763849344297430871999240058984037188924377083623298237198098027748218524935741279295770900821368382216529307283614261724642669054569103455330101065732953956475626456685972091703191211594546591724522738804769473895910282937955720554501368288205665009975253463762444598485843812768501881490941782288779021618044518709850149690656715823269365937408283398650502335030997316972582203349999338791271049436676705710628202892433130564282370059015202920937049981861622610815570652029077922803613055224718113859445516414177360320779944647667879041884988674719306062146020367102414169380898101288504128640143172880925811999389404479387256592201644954736481898600060674361068740574652603237876423840934164390127078408742347390125897256779529656877852520609705223300555431887544497952923191612531701736866105336636800036611249084673035086684624663691527998884825284228774970468067615140259458313234805358559175147037815139942645168494574366671428376034711627023550515361769537722831590453783234012427743787289975979724123641398329472057652789653539201714146111253993389129229318504114225445296689576835571457681892603531208000271475239912981290399100874385490089232744604399408643576089903130017178636309218588612183204655150401348696367556952841691194631996798841260669434521488786240830796889519105792653013415824302013822691172441466489551578886111399701832543126657765610480258715298351015702808863249436411986433952266307212517325215336450080070136302973956147740382529570354504594826499994052649178336413125068127923455142097864543111746189805666222104232610755364393720846511551442628803764339507916219684689913610411125996361885005675404694623303480786832195197567986215794801557082314041276146385100640737715633138550632215658308404627144029819247244082215770091681474202765749047243438223578676974532556450921287105368768632474092350587712431342589499330231202125587475965633457732491375052088344564218578557475537219879692918141865381243437788629904180783748854838785474946170155333167007153139896058222456198351436070342411699621818788438552142161583475908496824845663458727755523438382610682403066241613602106317467985275234046998677812906510877615768421370730904797978774579108179242154546886929198599470604783429357137505544462057137912014559099385444548479730746493623774581722844573330130741754963100512934142869674031281467465054436321552975957720505544251426876606987159779042078141306984617744157022390682680655694661409929026445724382115541955635548276350599847488503190212385554997079623470353420892394686445420633443745585496563275267930065841645844858387791537457722398175217278931623908323370263440327958608647791898078321693770740413682038380825449926321403399035849184586169492580342660429489841235012593997531643812631779799097556899033630025412657760960327054113312508430830525931508556019657683892524924380622757375841959828083389820470769785572771803852809752468805706438749818068979154652242674735723938999066294810505488566239016584757862714299736299892286107230339095147857971022000349420803424919517496763959206256016161976990465823546797528066384304945149543733549095741566840644552990065942936637810586245230770235004514820943520245545293747134206531175041391056639273081922440970461022547830622326253207267373161794117767061369854347245161464691326832174607652174504969793566505247133598923758134982214264824638819549319647549846905470425974381123927978952083338830881798974860444675564609038892508547377673131008331947271843350601482891110932849403057362742087380579865833794480599883475179577943496482588338713519209786152341122680243598358552506710005984950642161421019795712447586010854348045290658169605879686100839601295652918080872843906936097465766504391390462044417319377019206332947401701732052056241017488895766977618383321485308146117611734127311875319520118413941394460112942980984212082834645158304980833268473641796187130018310324497249863675277429330663111481640563993760242611468792882411831835142784845502267570070257594930451728203986070001188622575484632108196261871326469778163096772316538939435491483456331928179436978425683532403824696737251409444932584118302390848497309224720404511728111305138471671593623002864569141266152369758221783083295630463177433194664774543389001005843483846296650344714463692767002238538389121469937089184923910659541747544610819023354507182619847346461812191796280532984677691680893933077877832194373680998607188338023721863195532747906720080435610159297960191791885177796228569661836718431641158514656812333742982427143336788417450906052109033354885220534333246441312473641613886734664790233105029442824204238087086256721263097070997683731065584534942032234322941038147091594023567098661955338999558732505779821521030250475210465393674344209931879795052408562885622097383321373459291479635599214120052032620362802305545871908182823070250536882069051388929279042274631058798375813400907028011556370020910658214183294030250785568627758735140444807880960029622438940177795566495182651570753965285242327864436471494360450764250554675551206990741439369996996971267908957994350967426766708066904581466380583941819796191463635230072376296232908577416363452011575399904453055845246679611571383678086379895717852023100284473274496520667684163069490736086949208839379640704127587464736772265705616606073912917741989610236942109670658266677723388636516822062020201104761661688570215249353332525763105476852369738037985642840230788582905930035204132295942167153211127270558836556368609468337279832595820323309728726503958040833500208905778453012693874478240799004034644285726560674998784284596361859443460928466074474735138080596414685467878872182568460789360082691329084092482953293243095541993711781093542005726948911683071865462896778918531261974273659571615271127118356430188658047362109290871303409019959766578100514800708936273268317993971515107039492840903283456819570391813108019883235019941325729703282034700098106815923161368114071854249501223946408870854782108953780013870399373819497363547761992055461573259216977063101283178532587382495010669107603653078257670142184153061918868883956243188775664116418000077435024503624594903356181502950460891281489734303538378889110571821792539930444877005085017390592517322897845421019731802981107563156432366415446100680631304927966123719753762925861262967880914383349945349903653984747813435256920366821640318114217353803378139399760600979080935864202780911301377281487119384223845632653846760395838821635774334467077107504537356200594824137592446983484951018493635425384667721100894259927236083376593929167825373774057666496933443635267720333284794741611965778000725592505952016354309484057871575719056582129219034865076494499147533931863969127587180907043710838705624146589579516668666548847029564336482729810407597446970465266832015570976493975689960370484105154590327410562536693853924908597309613846520106215750250051683767779511818397394988523532040950225420292344619591002239528277515934040472376233629611532648546330955652010676970142501350475413538790787468454656793269592477406561044096014753996380518796325144805427853080869009422282086899537118133564816741384259681675443287344663305532353170329886958045848071724805742009515770813180164818702357078034461702781317035672250228171145948218998228302090323090803424296415055750978276251861989598938713160393099495635435295322753288767603339566060168191676933043764887319513676078391791967871242456153476936586045190288772937332540219918490101904261745738305343039016950555720293149606507656477977352805780571761889630910547060359695218819569143841326117835279296598783437600299263848227186644897692189128468774507121676303153603144417382634625964005486477566160560029677681477833754186304045142307168051861973043744329098283281851253230198479497587843532161820374602933404211154921045174785221381963227148289847147508024373897049163728098878067693068918026852657491326934874531677272227192811776087558226097880955164723153408122214405806309789999034040609922506370754982373031969628429239935636135491669900822353659177283391591243751244400384534804830983643865793911298588328201543471488094709124776445819541838683782483799050450221372120342129205441488072263574449440738266230258475092226131422980416451905333857052732543515178357641031269797745505170969610064556612893521399507693800410770451857347001076105872435220504247269068911923193398591079038440418456081363970063093052074478662843865959649911985918294774610072019550423259827410594450327762292517782425857729827979460305487634794043356498322731113009951491800430128091673743557127821964388365473976638573407834176931824205109121030672625638368184457296066567504938521653814506883146160552561465292974514334993080150726271071617866175426537920498790401292076504108271980991016897877383885169774633686363210412045686952510367386182864719351636806937370762594799343085731893614279322938154922046913324176441508314923270989154490669482355073779099492987835736996803217154804317126275772702205987949073234267201339835264969466206080642987153541259184534075493187451220690908503506510335198499035102853870120402950176435675423720499503486963233079899812166498434639445173054023584112376603312230185232159219934553038135735193790470431005834111148719199738101450985117565392023026929802614394281129837281888308828158564000838937625378818754205901297759188916497039231754274380240022821697120521020457870332778491237852094554864261484452322190088493687022771354678181497784519068246270667305959671981746669231667104639168786173024234316325870061037314728511727161499868179714098595409542310518710869046222676161444453530379862986519227481855316535237454380795948224525051765785525465923485434610788299648929665626208046462928629897393157058968535595743796296929921551454367573536372924201865033778569707608266257664163461432820483762823053989665426321898134939935514329116402022499271283159681396508404352415344061895940312304886937777823303731319435926106973693869707540933364326584858841915591913116571798778310562073939509440166207550910342272061946842619344067544126226016961626888594346180372737277389642002470905341884560609421104240568307152511628672261255301498510596670155432827814638463659768263169979638215506396998230253020117779631980171554366216568955386752920948571636697758119392918034006799716423534658872585273960827656728947042083948652736128409369502303844137450206099474513803891291710241815174766807619164830976001676928357189546738580800659607202402921270513953779523033851438351586759494229367729456537659003701196172673986299571055095994108577044189141205330571553544491239717366436364381217953335792093796528298331562423543706703012063100218611220966901101643694535621268549120067781627198824299954222306803358589947534726977967518677774910418642954114821496226672077754854563425543189099372128029157116120091425470605722352527005521092861863446031690213407248460785045237913962055607137948938491191289934790812949279666401711743783764007404571439090418572662607255620003625062718647183380095125771976836367787518912070854216759073521708558805285142098039971399334102731341669289185218418496044125956201407687855352064010017122233905187624390796287114882315096454606298390330599868851322027863378736943078081179063173834483859053613505090777618073819271531038961636956668738593785195790276982939806266283540348165431629198334691557760189714063768044727898462008353170399733315842536407541714243077522643319088329606873744150650578610272336888472383884794141057336175484651415094972689184662177934896412722497900875269841866633914184625083583922806902759410659000327366108785648483426153749970492869788003145761094126482557648082551322666514275669566624045777517150087784212668408845062107713436633968349586764492940801252862233213632757812196354912938256460966962283526816690608259845970300690659573194507786007243625883440086475963668446953676441796321155912640633036177961927525921005162170548980465042512103876085699295551029055221652383842163857099931562075631944054281833103825963839767365047498745816414846734632946909467293523057829038705707548874246123591529017545312968231964736320025177847054212115865347083997611810449307710634122360047675893164358728428269552637461275460741565210818117573283877723665506996840933964986825538115969862349266906071054453954550174785155982125813059699287491974720429707364669900127068061956566692851866537963392290954751866868652370296614626210438978795546250344074682571736608035251044616923457597273916695506413412266100122113462711967864573823239999799770795959037757534379244052977382381706835409219220353349331996742651378311187219806995100556598225238199931623280390914269528752411962926130907777481283328970343647995025222586568777963704890719468063387158940876969292158210794402501861725541004458374124365995417881333924278592880984210160708465734093685036568909464370333770700622917720041047488812427614981549580398993795033595692539934572773728394045697580825375566839095094761033217199514456203034159103646521671666782256697752352523824732209791886451835180143827824960447069732406469344398631451290695330831201680253646723603722213977824512074131615851470194447744405654913234084682477417273403545377390492063991213416026007557790480170134841394963630300510421716193594670899389025130786301791279126250798959510194854849524111968537197399488773954744455256508268957346546965531243504457196746737408153106169617771431652101616713552580358368049720185601834203202302746563446075051997731248808720295920116586329974046083967779249254102400193240229005868428086091163805216791392052054782889513847548725152613976028410017008224146574606941055189532835781855852762147850870050230064403443199698949185452254047128889900585379608035001298489159473072351373619405806470407529788399038507825292440972228903465485220169953737116489407595119730529690658803662519243464964674447047224346969460786030861458574147447366487686074780413257933751989802726105512396902378034550710486332938586347294901818911587942505538256940285175452671421318135161226631661446091143530174325470743308491283690099487725755254916710363117724856506180460184983800945972770696363189215091574662167042774942269502513903166425473406298264199216035826861499655510836811228359201863251468942828292374807884814701633941787940029422131424335293588383590390746546992879946500632842579444418597696273491427757037140507088689344814852713724628429143348007855735164606755055165936219131332305090942653020786738667584801914031715706934104019315658624946384970278756026008155517323946454413520241833545421626105453320869862804563002127685883960387808438877536436845053036721314530462910572504796624880855811740656227504020581578429099061370710578960362296124672318899545370627419902600738356553244178951992232228300525672489998204483705932734591132956218364092109374646465756458708949569884033877708873911636898716753295724091585634864905992098853890907786041177097442548151675100410488509795739367615382970079301540508961972939925283039210994678435658037407535563763154847421238681047405796344692725763459473343905801036656747606999036750863240318210257884789423731144554770331089168357733741504026586882174855324524019401961483514001415621947821251165881093867800058280074858358616514115369257439283873974991739918886184560354074112102795034743140116565087884022338455988634070726070754782491386982097394088385869339887424093262213943226595039992110144864389632021163917882243178287753397286122622642641687046939382358404014180792852419605951379622920552342012182631574156974078153763985627525853103090073197293790661048977532029709505855606668177195334643362776225669812789858492259216077912622490413582526954762345127600742958259933511478171007587262552647141903183099063520624697374096716789726814018576683999991246982772797543566520038756153246807215525052722376627327358980167249161353498819057393944487639017189782795802382466070748161583585544295586788028831493091974823855997440296488053553932461369966784239096371643796957137414355929125612780536436220656320111436125307101256689512443836176683578733920675484740480807598417494701056039845208222712187618734940319382473158566040534304463507115505472679238549220331362647537383117753403375369051875810165536678027653229049095189111791905298216690601011749338879230474983564399516590289258883616990627602086042424053354906828906572976305763888100836906756880794516900222290374583009754959390665872244415417966549252420705940066653413634660537807805781355569876052424849409903428041555820736039458567731610761410106312903749426841173995022452489379598971132430432599881202664878009559861253703135941529362353788528701686819795614885779840948654100523106717886474738626325740325546637448895148165382186097672447006394698324292332906935017478919686348827778560698567461013444347068703006784026102244610597332533442685947380820352520842803862244518919023843395758099990507824704515019196869896555805247381463676744311756410605761516559076405674563024617915722917209091713336712963874330168913914817662394518157400573257418336654372600777649724471480940540226187857067260740304592339533938277758255822891530806409103462026615725086921365993426139906058049579596138746171962196368799801889286516541946377404045155052957050690931966195698709641879863288493283761246704564822375317032789843069723366271599221823431161353408856252949243207255943041762538683579632145174683530517023149102937161112146524604334145299825014148866479071373718884644499756025229677341998657636089690489125753323585096456157944939982315765012514531074030479433005969171566274087213807150068626757126136140356451243711431536857745981984397182667367667020757544265705936599930691963526840062237877099009413527572116058266418161275853079274973970604123625936405513621982355799323854102479414237957960758613000444570141330234319440427172901017427296354958341911158177706622543898556678648892980247079961410890344189288826175306120398907167067881445488089483856918881667882979072013587171073666238061414363004053906983464997001792376426428962000903571253470962619468879508750949447708398316614311098419076992843293515471030825908517322951421183814212852223496501064232305276138371025359964276640761088393245821069170339274403671424668396587400349515968157975373370217270576820195001287413313594973011976090344248271309782346628743585211119751851337488285386272875692023051662573672081786595789727551889865554266650491068755829982116001704796991777941792809292529417967001034201828804124912589974712353182848796333782194096608150293561147013730417074925404690417979402697354285856335966460522305930703721918255771979946857477149309594780666295397492342901179474716198905352392748848308852944793971291127641703801586516762119966094298840263587645866503579682144632189675520011350953589341292713260264494986097588354415986254811341258460679046951408344744963735931626805659932435062322233177319743688501010772428175750059141340714794315366497910132618629593757646096012621767476841622891287570191385147391195131900410211767933699277615065918600969388828144628366892404270004418192865412375225949472817331681809096653380553389402028188056876174162273165149886142321202359548013955055875801906635100051220174611242962017281034332763827549059257318089749107476869689564122965507935141026168744035559104125508997219218012861345973617042334712152721990711014621925356950623950466574217078042493336735462444280026361510857483889152745584265928028452430395490369807231822615505335006127636975320075437728733632010903873116211799659295235205971406143486213782226901023855314796417589296778674944362924321073129092050533343852898696686647508477037270249947461754828621079196020904498514274525242866604587316668730921259280431039870519541383299746977266147552758770210638199592448083210951728170197384544408941123901106216415331380612104628543767616801112487309678189137772630497664333501539825035495078429827045166271591709173367670117059796597487784190315079448920326943704047787946671356488536529494502126893009425627781594911823606747275345267246433654666384068537351379628422495185073701184722064876258051277888281109832075223722084437811094757781110907415414161480726563348686462669484574301304082670409932861260222904225607015948611850601361362651498091328406235405859096305426236607871678974285832737710465977368316955344439549204753624272343885096574670026832623904027818080661227859646099919284530866341090763535162456061477319064667422791943409394542934645235910323649427252874782180877247530419314363203658126013734746372250408247017069712682964436417358683999900097811569194984326365977341959175593078419923961496717124971740562268228578034006717096235491735105301597597409925404782150908007630262384008806295765486802443562979845404260543679446488182753437317697454507226278900213708869206615960655491509547603230817402522021058758246434028340211317722610591773072040932687216061924434104554741154877792241073057240459898944115162593516271755835817555863782210129983425516857616513838614247381231493924901863334520538422955899414424728587450000018825803787257047848875868860856872170682413381860589897163408324515089499879108366328875173427521450421414441695572016276737991937580369848758145956696433436582494411198925463062915242127221784882371392811837376934092140719974042578363530271105500809224321023706251116515580248570880832224034814638913559308842002522257534783819769350629854514757860331970825953744263314049539341317932665841212256439546915516035146625456836443442737321063178705711246461524298201514192982646471919402488008990241623615595713104121072629040368596177648406369958414105557640920267642583911406900705737573819824554305198551542582086446832451629464858519341169085651455706104792965438276012891949802271796168012558853204169447905535876784854913093364334885044995366961144917361603383611907102907802988916514613308832287976849410258231457510117012076232140437340911984989581440875985888348481887764299889711088937104472713187507287703188410661130097927921226268715747119993668633707388156663177885452318355821415800137275968373578493057115728744382515804440687430746670840950491968574683323865996009694705169388527775424081014060111278009530249604928177131562502031504017905742953248415283970047625840747088505015851850515187056117650712618877844505651177160959702122812666548384248813187089625423811945186135120673215884315475472099925289798366058634927253746014334924275683799294805582398499189703019702401880650861242830953680984848949870921868869048918942619883471092753623061306466078629462735244342674170663813103509396286077394170430157659699041716737651932730371247624366701299167480533731442043331876543411017286586967817253586409907638734853577595005110868212632179322038236805189016630626182264675840557175143797062472842396679788841977628485379244973415743535038652275355118511057390398215908340318231476613717744517953491234291744704018788625569092373133237703518572540891779929399846408800715129362477610442186817884130808720841736259435617230086704337423249694751852667432346773647635227659480460775872952740795944730796744511050414574463403282349674365025966904258056326491246469261604577059512480419776575806169426730229816966084606799859501363603679036356198158738723079928483635412181938239888018175391296018724644378857913821132145675027664629590407491289921396497782298062565994656262136561927609575718165176521516405333351735096972670057274129643886145998613751816859424101158519791992992991469693754769120235277040999567215604947791949181913569970638551447593130272535046047599737367836273167318882349937047854068081139829343139965777334101686017216228664848856020991393424243710144228713391640852003709066305600645459185484019897166763569977515983240223857841977087810416320583303481653264261916931153647224512583840346280233595787140387874406354756738820994754117990382221142088900178485739780136219659006007218754467426349605088514423535879332519495293523353468807866918286502844461030481144153068200232030231970644007582128282926354096049680482672085154836301841299353476728390305197474934672235939664472276095863071483418023101988353618275121462797952316886172261126066253911164849545662326742006333964306695970486475168249712776599895292809952735320179764363575946347905311329352545038334912372144397450982995187437287540666875669374431414497670062459729808027750494788597370992821096930817211325321615921916272881621541729904288812521829234796404997725990510283134584650423127537350540647358416871133817068586580533337897555165925195113793962833040475356531148361039592937351744418701254847746280544686502595756311026261008749611174207878511045173780794343868588757559010667526770266010899625727808534106025927370008435748175232889230544515042075338911184158013391201064298511873896781822181627430649646105878652917468061400189703538317368373540528772925293409474455562920965610305771968948380517156799101042379437748801739708483255809127397614559389932077002055874541886165651094839407091056503628453114673742263177075062511103206699662230100130172405605728437555495456148582273425385517188566862172062827548522825559832679578751118159976272570754907037921793733642568177695379005960771732982841009763774307697336249447779960222745562942755908445715586733344872866171319190299277820467320078145045844331461897586474816436834557741318206618137972194037884063405678715303818187146545469136829996764778718100376684877796653745026015733697035623275140984453642846754665545463829472377981594121204258196719751969789536868440278154392901503689719638966013958583804380911698159042904060323860362009494439008766862856773757195472102850879127877792163793449525832986881347219762069150614567040832576905493991849200783132889183843306184507811425325780152224027749237944859828583462729877834096763392039804005368097495793041910773389215632896240926454231249321531401749027591461318412439600368545232284824810585923300630322686095546015518865813397382193631755065779521833077889398217481302155069026139046142480944806443008776084808777757349440893828133378203551596376270722203971209011645335302324779838001080095903950107047396039448606946492900102036014083255542828860626645370380993059969508504401875212940632788037574366885969592059407172023028692114035499886682275934743991992826665040175449947921565002149234606636053418644688772171491834154023718065023427502450432006592524515590882915666821061671819029111604371016989189897648794630098801632564533625975314263220012269225706206568965163916154261716236818393646111959370548736471355026594806170459678847329952714929851804674602105026444369383982901396143128311433557811136647179557576682427289288803259093824399134724193498504043497175412677842384999785186877854491083076394335446152455943252214323558643793869453351688169663060505979763368885743358501296518104004160728997832333001255086342113096371466804070002080909326237362750199703164144277842671516030468084957499047319505987565039085695073428714294982294653427108878999006145115775480045902204484697196284467385146503794468495011669500370632088220112679278801725949618633116024491593267810125662373148134724623815424343313344042519066204927728844683332122651672079444509922814891981804110640388891917645877755633518137191874175690894837118078827945985987544708239852433538449988589462801070918140235163128655232487794382662290350545982637536385758480754228181930872368010872625165348126984717637460256694064221518407204063904668893395990442361812857525580375478948199578463257971328132937780285496802471846293842370750909975400681317333990548826835892369985703477001078443747847466398250324889807415122733562605217996200186749367307947142518894659988969239696175714714298857831986748636094339756530049294780381467214213451493929906631413548187512364209659487816040105198846406023016572936619882353126898978919723638695708980206634446817341241530142803800046907937509163370383758444165303091674128322446770502473470047878868235505912668721346426296749536853826250822137477983621348662618653754776007345160562615814080455443864362260339477213166772585368817497703788258467283641221814828683630312030449717965398217019972295849440327560764113704426598537437853103550141315637074323580686858484502766065017468598765133029293341950424022302669835237395026909865851773397166287926064385015616979796562829659628588566779208798151857566127410087707479640485913221950388184107548660457174896434441267559066517714891065028668313351607957853187393633180553211957145152181174138831419245697565111741844216193945576914975894149279887517527460626894181257009351426013686866366063956161564621077273316295677217277021468211632228503006614762431871921629774738385466403197101095862446818649247630921526322942803991931447982783640710535436342885021206684013978886204666939441057631165769597431026503526738167519284967524828981884200584851955756399041140334049661824979703173907150489743686911719875643295658547043527494038687293837874231387679330022894751610218363601647614144362915461633629134996945186766634406741548322674516343153618851575438132253027930130693484476979083005960400924058649333501427765323412662667032545330144076921330430929514160459471178498511218639345499259671719055572263034545652188178103525081093209116998618658810776627729435563571255001302933324794864707171860254089319550098613225397666926746182480615448816918026208840819127810783280428968970525928986259653094442673348039389748991758779711312967660046377707894998976677582589892092441011470353901299867382486263090869225841239455408763001013957158335053796762226986443594585688541906629046909727208375609409489601938626619106107261921318869012760626030911285468612565654840241794065365944833699486329207938253956863449116223039737719913530509583825741004375933105419962799090240313060977028635869585173154709487724949800335460187215357160110106707945246409744436424712606106306522565903110618213395522972266819645566294784688779024720646365933544624948753251445809126563995410109084032782798490348902001756847540904423673469508614816032404175101223071613312644907700756997778427395466404350898915699432017305622204971551470041346149528197362292385747839894110507110140915343515301182659260670031793148313594525207171732065756841924441623177594089257886852398587200240999645082454359941382193103632290583770823923200355703693246802721162490678515982851680988866626279100643906436018032742433797770528877503629126455417462423808859842284749750365899073696548598302699987553302233279445646550924919577344677836752258063709176736276840546465535367766009356462334161603748504424600396409354896783762446978005103942868457280283076852868978096067617805786611958357366069441600912539281957038863563726622416939739075375782292345550197407262322133786391141901051715074030158808314274994898431714307408793451883252751214245388653606148189474646551765511602671474090481849729000821730209848575916492216207631312542488796726590558038729960520498824159236798806590833039288031376564977312455855020216980064951389634253249704544404670725672089072913148335559681893293914000249331952380449520574599461626310065196639551421676109700331942835492647298751870862019078852870389643640669595291309962115898690964833507844209502016681386391642211266876810471879563655922012940271066782978902665522953983859111745372008664703012589122512110642199053173403058104671811101712049015740299407999338649807970666326427189792528017382580204947351058618368870903051498255033936337686501949540603630820964618100304728297503834270017043831509742672495496605446955031451569545854871887251182485773901326963470032326831197969970392977225810497905369985649169867767537170624044263966430092044916843265522046133451477347361907936319434272202997167513831362102286040186970747295137096917928706030747205763421543754072603047811794237040751933952100656793788541709866935057899997163680110215474223383166424521943479348857612626424548208856507673733483934601734585024312585012696732097273137879570670311065011768382602584386498915465298636504427745051723218863784546378260995747152745292239138215814691270218725124775833697783530414577097144893107640324013463415599726767417222944541274738501283689840581601336991516406750174376802544420799542597984675831939379461157261707677090867817291265296432169948254857729732088633080989013276620297073327911987688617613720065362195749687933207197366613150553326567381365493438405717124132272755686303341298133282042527959690132029760093742138541570462776171619977420897417961803488757555048728403667638284356091735186525598860606832118303425760701079399614467485112457632944160382485833993366485681912617085443104571297945393669246222936454439448135629188192001897765112485830470913260677955307931470526576732690162496766037336624080112596465494642184874458538649377725167242241024342476757509222071342504058663051070040896524248169794041467126444376834738053688861129875075966629850206364839028504407561341310311767344838823405505845444945482952798423087479999841774476817383648719464535425159338616962637716483626787226636423323225149613779949868554734762839338457863586861810518635156229183943065387916975818287009207445560123830065498306316526514099694050360816801933507332407908618755190726898932847465434022496499024758827906124390483377306793677727517567583838594128482017153998653584301712666434832543842024646286562526090606724482120974057500016653158725365280069476617357221076022882211388105503850765266458320378193587732851443801449322962148489381072141351684933431744370727069529914738350445097199454249162548356809847941603504208956182916121997389774688361021456115653266042222008899629955993418217730784624271449242910177909139098816993113464873766807234346188607518667501771278027410068684825680519469046049352244633234815141814551384371958133934889768519960396463765059029010372258998481466831511940805241774570744565376467653696147934655386372448728875965673197635410498566009527594737029888327035886662790350039651073826568572813168169155305319287739779718915446691003040083189144663328094256372073686089105051852946415328770634179175328043901542268879791163365430655144315752816461046571480891114046230344601116646459352701968131206787946805296260141309224539512287635933989039514217164896925896548708217117005167380655204007913830991923214814112271622890471106155547777040431239257281733570854920037246560604089143313169397221954359376165386836684803102614120620713358194459078817511834247890627996841970972731469711594094116397306962221235636578904108253709100554919761747910009737040401179599822832293232616393376524325906520849983548136388203556061215895248301208141868819234080947409700500391501583280306883558783930616540442536372135920870849476657230562029907710352244475493511271830642411537379703905903889613438301290013692327579541707798281263090289119496583577015408364392398314068621029478357664961795719419532147509109160481159285210228987635801113844919340149437793698721905883741562143378691732137711212440879965445049893661938594911453503024851909725638920053849610960461024339081292996927235972640130583087178994913558071847552119227115719663035689475541223765605032273713888287516676793039123084460462428371951351933833147899912896055153499657465247692847656092921502343220230360059393184012485507674580571082167381578206517561658140380126470239047940453550109722581043408151534973027553285114021822246405303314273471984023881111322743395375303045266217965401595186130680432802509520616541069314540821431268283873089579729951333601477915137565388299218054619863847317650133957983146267729558699522370260269118327515397950367226483799992296664281066317532843354547269004638675648463160246816411822140530169294823354825606450715246369629806105928574477009666445923307444458313308037146924579456913828929023753095649595001073737879292099366748293934323776122840363629319753518276650053987692756640722852808117193376673753992468784137609664815408405682099299939276861359122036936765794147539191642016859919601769514266236024799536653875583789902582257272554246951663568060154987758533161939730150117318918078882741004392240456617152465728962606978671497945799913340767104235652670300223724062459843857320870622987859044400738098819364193953968705782308580708333047022310759049992243531993219981053924742956556963614804073340992721679870249964519492345952465221836724041877248379085013424893264404170214719678692694907645667614473135451890944860674753205218425271527193026222487698323941438089682285697217279983260619120760357203614190210286246146822875134428669243424794887949988808342146324623615111605531755332975602259469174473789078222627516886361251449067913792065284074352372013121826912142927004421937165626064928481496416302601646870098976687858990195455195292521986267685494005934436058318763627235198118618542127218840604468932259607221279858087699217166105510543856037512549348825499212284003568695554424258189545677088530338500724692853490063015889783012454160633316460458974331782012575180615314242232200225476607950677866333435957857079976119242693054355253275704512233413745226713601138809870065371186225339831724977817039540804580948451378032869866470796959117202129702650652700307490555477726574842986064090595890027580926494456828362246314605001315240566569537074989370487305479606732790799974653779516618300162848658333427382483866989248646377837580650895250599476042054128330918100125645297144851954003506337102177863178639914952306991776046128501554005254714890390095721877436430390515532779659580236537462874842488604976397136915056211417126441110005860837270092296517074280906137856099120202152869199746940238752563740480786581331330470573121972668608589236549080848464815563612874463807084630986752535769321063080082398681566517955894185412811335109473152779774212694552068947681745562079479053290672326211617291127201556419787404688373969287241271159980484362229892561167125099043925271213468321912222583316186850867992903481167825097336617432239455836083959945094270566992446455575504442650216989815481452631423355070355166309824262422080408184888823137035808054780602277773057142219719677096734775740781257977573797849631233560470806924916784552044892579335382898085046802675082522577820362241290976418331426504958226738893499458300653629989538863381838882148614318187938670774975465023699533886041698100906094173522539778166399117628849263363122994057735943661671869149950624896302199577062334688393857273394379679226455911037059888047793467709644426728598348600303491663279539835044409199522298413621853381781011578415699610705693412980820427869145998785901831310295469774638447576660392479119593816060115712431064622466575923757755641926238523634776131081770573537034910692720382552299206724288417121294600945076608468041279726182437873669831930879710626253666329503591953581833738055994453666366419096856808150846690370572723363973871515000511189428434291724448241602068261828435189073755941779871726509638468715876159280723013903939068813872947361508540960740821245426047492748172593078669085567331278718199247366381069551028115876383851423253864116343802296832407466361481612534283824417697943355997721493823977481261867721647622286952832487893551537648713231777735252208188435598538391954603372203969636614776547591927948168591987518062474708994023415875119902505342663117571534874288952856613602654283542152667015188050202523604838057466112471707647031775325548981965003369861873510741834980841661708410481495844426367860023920214315748072066196418053761815046892276572251204473274252927212350328502832291218895042825699785674280618884528374983756838723190716722209359614094405599256693046459468398920535332256011235627192078281596870160708805777833307170102893180128743736474149886569761969895085429791373996302991669318126149030131719974012617054685016130539603805798782062961236224800142818464237253973454882514279935163504814374733232003245015351734050610003970385464059061629154715390364481628182461107547512274653984231909386264632910624290987793021661432122652185682898925076671221378715020858007437504621674177874721581957267433205661381442132917794325563329749881589824477491389897566874970879429312920280532498060039936650012660304571375853293788806979894187018006744189772581689808661316200146865142287572876883789075440595278892845885763132170440509540663929443217627348254126278549670593706123589843680839188426763139345413551355988130817118787027776772616661836367527377406834762725971651040341448476578202463753242481708942444548108538822794433383087761512832936118217156116471157032476154246751462941940852139324145118205399522663698208716518702138282359351840804336678807146326796056454628182869170007134180374520024470510933314128311236573936525529043139806363904964769739672248639799887045293325531036375152967932241515001359733302875020977778883797661357744713931719557170917274612464408389248584444711079267280291315973991259991394287153976244289843375881601180515156962927266309200655204978043655243544696765186441050716339752334073700030940951378328354395835216537311625675559510957681954103173025247718532786371202837533183585481750027646704334090866271536822630760704376177910167890663547710289338753365334039280499861359435780903718223235964871520838078307952647206351144059314080479638219097368863057714896767483872388850110733088975241309249124580329975781524948132143666173800507235826771854521069179557233127224200041213233911012084226642591966720284333348667694381853940276323663658248382094241348951713371962608571685048436926419065127355982901221161116810534122863413795810061904052007607348750338841492541258993897756228856631098898037618631154993080163442197340033602588552258630936070674571901208325505750543304327897829148201300695675772241260573277498168980857280715166537496320589503789085318576097374926548503891123167902294211340929027127366583421431327723049845888466599626609510828430291521376387801553224271463255484055028694307665884212324555997521511141372478102894335743633729879207827457358964398336893962766413107018258121248084176135146959557943099141478530314917417109467426992467072667048023587854358805908513930589518263111409113573798170151298411605315704228874394752289376015127036217035214004010306727618040582582597569567548423173364474568368489046567729362551552328126076414872971270909702241159539448622468564799684225771685396507808003867275899309386031738842751262503989126481972550668273008995711283344153134048829206535674251205880214337984048389713092205635798841618898490700004622115463441310669897384532587605391710337044640084076470832640813611762223234276280658869068882381783099543331967345914365296736793796145921014544125554079106896142914647817146426183629147984490598351810222916640578958751195268978722201029215405455943399366713294618488382969906159913435319121007798761122840684622731870190869552312653398901850021783958418610624105202162037550766364394484827320137549287177765739249521025575177705157188740558111375765871514870938524674727736876263548098847333011247998240747498490797485985229933713767874904379034519732921576707369155850725502012521990631421398447395344021057675313721504337582363055328127075879667234847083203620996856584137916402685462650389401749836742914609148220328179896186877992335278829985716951472480290254386816703000225984096815765069088042840596627159000444222876009225976948244367994205733452109623122238114060572254184483363354675059887768309314494326528284915757424763549342449608287618029808498809220196085660066907911434968992624235128134428302659721656628577512578946595325195374857125798958341487473584319559953730771904709263281646660004689182598567284657670460074489562848836040070334535793501458291730373183428302217408759613946415676126256753230285394974026485954436441944088628791791053627931104634255604857085032448639598632450932262694122090051902522244600932456197446320269363921721888962604510845232091041193679519971454926616021524840737733710544141767752495811017916692149149008561484088770292482222187368234014392873826284425817085970100547614089038229928559904593902352284506718211217864080463231744341624179276277148423822898885266898442963550065148160447814067461050984858800011964366272096084632485319835524202251834254927242216646140952445700548313488266091615347854205624273108828546482097547829090371364106093996628347117917908285520264050245351694922633653695515363381532896147834249925614225945233949954291386072824541060660168547229089827915727550720675778399115591537199735557229681953206235329747104365224036103660562422662883731616548751162249362446527358954934316632332897738383579196988107360417935044121357694370895446549422408098332360171540370745338820625496041682316717912061668901708413155824303226902724035105134548113636904790942281914361982622816479925726037612500748737016685201990835628200575171859604177905610254559185256359923679615613485122244517783074018908237139701833578539995101455143452119852605936030948084699793722930930903745820145399751638182273210126311346672162313422155999696394753247839308194079053116315542307434012521382122133893712012259678755535631961695589665527616215516493949508215742904842248948588939373983011650643846553480093593923519957358994844597906839849475487390586667554344306426553438715114193867060190001092014578912201070957575389495268638424789764652846815898846113587190828825015962900582514272264752260822659410320519305520749658011982665839817811538006748478035747141669925250739060410937881107928634574361916049564252981017355305069325319970742342914985760124827934557206929367775945623690279294277626926701134660586902057013145961157618086327088901920683465851260639013890097112672069932465546526768441562070675763427359050377585373729485309411840633995397728211659645639028374811865426169651269747764562737336196246150301881191791624646494761375361493120958688936934204557892771870297664760240668527273607753996236694168799269770745406595087072250837748814891883582189168820602737071871134979445371733890658483359218419403460004942845971513979211350889678243014476048633771133208362678997053303694900497776292956379430127389231135165895798316782042219488309900379276644794213321742707277633474393427664457135325809260722500788402524385360673604543514439883852864550131796476764439707185247181853132156779310477336022243305681470136516385850903043006350887963098148667110540069442520258905994046249060084552073024159518926702198489740496679832374221249913722595145918300378873328362223065622498323844451267406563590008586260214817220063171190316467206625920568955604316799529760505863533103653588077398433454814784387669659637119943852442787794786530320506851773621155617492350579446589347182232881522188267793668587261716156405537473857125971199038763331122588284943597728473053051527063076100230824022764631251294098935221260597979174168877639367974925919189347018625361675294773642242518830754982375086157284063578803166626432968233602394403587778327326824382800257544870259866288595407149171128842121440343555547532303452422799494812403642093355758418439510800515189309444004390563354439635135777953179912578610550520986642737440739226637423389171736762745740586597992887619580437637430413677150749288206298693778449046671072263451802328115803662939702009224700994569022423006489073049724959684476735493266044000352269848900906259903742434417345171532299726420133005233876365118501402506802443605079901815218349067402745163501211409726027297295935818807604417083555730089674408635825007735259856375220750854594049823986512082075170932404822128554417212751274824614929395124875916220939809311332702041441586320907242387651968686953107258736291963958920335617507292216314748052530289498162332880914776701407472536077981333697364727339213772450779276006067089506772584210148455317238661348948058888932919950017633798985386097856632149436926273443484228371921778679922948373324024820869932949629708331655295126401863131710628270554469582967660892342664270190994079973082707664207823739653645526168443509876669988776568442193771922096203663017274562751914357949045236075930048444922825235475771206890503857900130148703852615097902531196099428872211025884843010162901532126438436832791163622129030472389063291865100697581720352573073238686699334358734307350970378724943599756389926845976766478873430686048876693512410481754383886272811093866579229382901333599915919044223667988215961071823992388077434333882976049480030390682615132369024176172009912494040961856115297568320458779396236061456715055401406146126711931899499970172531401472768147761672001827776406051241471791942357311472013861907001442262833788995608527546257455177777640354037043801089085618443321771954720406388543445966172299588260501846972843723032142049465386531766300485992669000542508454211579049637464780088557636481322650303161536146779669249529521077672037681992668818622437262735901606687882518884546654578852387353431718384681606967462635752919275167166096920302976803054891907527736783206321380510071608591952318801204912321662220958497777276640423621644954144750065531264986693640608614647346202376515331075467292251452157728809379816217928410066091096137397029141096010861280297238792570828101505445439712984589363949070778929678937170121458217938947322454940133732003546661390129261862084331076829261378734543096810821914901478312044611257147096409538111483195242294730103724538784375452086544180164766522810839099907682865197880116465880614872171032445419050181234573856122956881558797862342570986803160840993107218976313028617577117814578863379832777985796077025292257655378826295086061276359214296230745789595914255090878514711782287465602357868796048234174662700199434640859170932686392851863970613906917747453318816842009936235283986031445330939902953592786200277350382121627615268849333300981176893270641528774598768495392791412497182006035064997107874611032396774046966483518052564304408177749299496884169287225586208649577645783624781639881275914776505302148272361198606709217978368127884743509692097049311080173123075828748244178436494530943263093778932465609232162731620262089131706817568129543690787247536110679936821642904005825299753693732503513972813755319648948474297688437792792075584777052073253827834237369006428874550936083453238737755177239007213163682881374975228764065922667678391750641888765868451700764466179829268538899337571407955339843031967085134744695677350891692031470720665199198282029078927270819304939633039326446199616584035460360237972809812942565484284777567992062176721593339301565364326965374868715152925281806139050502041652756458094733364302392065307179618276831730260373562002599994508951901619227233322171077586985067138979151513584482332827289544077219146192482313076295364186641702997057610284265768705686345862369653000839389711657251150326196585282244905746114919117569562373637755203422016597611427308645717431056880013697126200317542410109373997721935686893124934482895545395465053979289813906898601884164912624119162192007213848434847138940122995941662328541144989074596080174339612010273318442476037709948064721416376668254140678211206103373198052741240656952279779006197873964695091709247950604669261855275926781823036949774997937008448445987608731556107374261173373907489777731929238886133273420101635514763785289407861623641882820471203213995912723558969308244347130302604491453165559918608821553495969520364153811519093150499315616678271039971826846976462439216673731239480667865935902498280730263748776876258202681280974865183245919574691744646210193811480858377578246257789283835998950278884320342375727019186465072760457000169724446088598073934169166471620754170120610271002577845404469027856292562446016571153820995122968559356064592748856973628482268449768894107906579492680430149114767027190797769804705264393676090740683076840709367080622600978791604048684704471077535051527946310114124369066901006808774199151033450950645304291094099427937441695371680508405585671579082991386892596685549725171158933830819634739994935816333750258510235775108523801647081841711934142144904365253039075956052536203657998922022192218037865945498557104838793145684787439347162622548152148010086718137402145443769364298246787953583238229290040609033611928615432658494309539631111315651288057744729777099126961059593643657643834614830207329322665518872744925577298513299505428901739692497848371747417234713477256100845191525029202789151945581920224691714774766620063220603314416942166620543058503992366202311133563232554393962499995260364665965105506424112361549487725200100852076202821375590263411680063609628301288600303103332349765403846012991649453582019391296263325967094121300541339009078451118786155331354090305315413050926707927180967901880338506006135789392353693105957284355968200607051901428280314173345760390013932680875296188984479445623308081003184133138971159024720377325140874836558756565245201260574506396763252206194846183535992547024188201187148508414440362614846918084423222194126453817933919972256985404552820420433085513134680386649680506706606736804132135168277287128255827201378039268969812946190588312817312530330309959659986086293527680127582057736292704225609471265526462250296556544586865472014424269213026055024133229365956097047394432240586875539665150112529859074400313174577159447411453781165993101714880172935889086074460069276797405992012338666049676059099243982408723621592115178788768226765565639863288958463850338418299139126630953999637574545127553302253631712926745177376590295135948962952111610919647325941261479398005852871301416441889784082144638686951283854432604835605057085355795586082871807454092321085210827837959122134933560698763188945928880328556762621985679762449090279855020911648322687275163698534863006668593354394022314295792276867127674821359917556212807045919331501999797466211809034871955816595364125640028038925513767243115489764283882651312337405694772294959577073883491414988654702270781986545055947761043995946301234117026621797786601532223829493125466183885446097261614215431867041442844884234791988914659855003542986869157225264869677476709013536383249969625137079069541624166374058136851903305045334413663506360793813196930427147219261554291477305660548029901662411972904505784521936598902240189932133886500469896770379963764228251336269805253417859816489755654555186653452872131676711696128530427698646997105773188555791064980593393625298962320732298574449769168945233486079457631259132140433408491237853056983186652488370235463651436567906005644947714613064633485822646577358429036028676001306626894408813503631839721791607227075902450621739563284429931228725597384985305889143059796474313521540931202763766803803751868981393997811744488739887345768386277785892345579507272553132674418827656702506173492186153506971824699982935937586749519940378885481646279591838972976177382351177525437446133894127724250256518686994534035357486652004090014771822108287868657538768845989876795165491723335406619503372741495297075888670515547280103164955890608693624968293091406771277385349476404983506817365022646558784134926287301471187053359915968798718538395216346828140039810709850376752229702243113957128084084718614915458682432358860356917035384909965201671987876172488731135557843772593846775738020332732876032162406399412675891656020139879410854670695329944267065001357846957271152937451046016036685039301213454216182682189202423611427380972475558914374123318388061793124813273261557616227489538103623886256859378102570467043413380032065221236840754579169034931928121611761325841132628543432479480759768358197286993102347813403375604269644401269396094718327235122232921373394093667629083789797035230602034483270327745292334551156970042505484097471171034436092582629897746045511578811742472893192616971877735267751726559225175498124966255812929141888974668456246954240739343223312983170997169627286426885392972696027284442982228962089402776213067486471291206564813537282567979006240376957466093004363736987393713967067323045024919091916977735344017317695679892700126276495206927014350118081209852926804772757466312863125447796317866363322932711146558937561039434767255677281288508193253893119588718338706441222679254170578185914423696768815707333097344879393474800667675720119744158958307403215726166777799001987527172477720540647930633820423761525933397451619909396820692142040113705343515487318366656162380144786297007061166147543846123214128639628500099987833830057817281597453664680721532569557356406996727289124115875792083468782278989829892812142799618629962514334837756088222969792565355142976133908060383946412743463426940140387993502069347318079844079343413600204035738724445862544066563287330900093736350828779194212807800149544071719407996197601155207692204755890088331457501514985294907092473902240583338654905620986548495646395057714679878842305782279549480919378257404629595523746568911052580446138653843544319202898403534847757995214533224953065221142850940135621399310702532254921504829653689716172883199128540875177785300939525589898029434188759261317699684590495233637062640352699567082397154435405405025827131808467877606089602311680566356577477524434883241348704942381584873784120984547720232185204653681035940399884015495670705374943167942936465598434800288287769360681245063392161264576333062591358130310165698639959592980582075751741732289103858929661485162722322957254360666877886456929523914602385671735004751073027914466111854532003314682956234116632165703184983122289290772392850428419962447731663615359369923895143937180241798947708080844622700905143249869977400181312292223373827290527108123132927354224817281566869163473647381405254466479489218855920428864213461358380006464351233985117519962111268319658299630007189352214665640270537074725619683945466780655222672383673413079318804397285557364829775231285500310619228757639259603563288134044953839124590321652188032137587475433923228246964171741250420981143372694790473674943241442388849819739024547305696468334792185908398447602064271313262701478183776012164477091767419266986793427386185070183811176621672322123580483130880998002494845690066883761553263269662626033534255008604896175905885051510725358188340944268674343870720955061055807177119971786496289317727186737356951873521923942709305226991737243077262236445822123357467275369255549830059515955956015021883432148089535650947139673945996202930329630859287441643524766653904937923183830051337778775762292674417874270474267023974829658802157761282433763335960578690659366015074081524748072976392200020562021380237514561234317211438081639515824931462572245098121165394686007225480979092044836024933332511960414219796344840836176073684867024441752403866882667246912778546136873238169699558705120232928841301412686356897579801251028336599964779735474085197496348090094009450818014142390222836906612798897288646651221076404952800546458508221301210241046819117028942140816755853203068580532334883619345883794784393111673709093649127875582868377229637036661878227569214125285594262394583438728828083431386609920953604836712134466055005258565255150637659186281012518352250802855944220259482020244482553805388923266205605983928318717799079995156538990261055419346293275038545391885836700487521773014729159625870827464861665448972014807376222783433432954695337990423694327275525714500185840221096360370747394323314377069466646524935164968067347816350473293283250003913667108021766338192504016949375809893347452621435966077124795229124045758371978860411090003565958691994576222254439789383598816573289449688291892040269753158976990121218617521518388490625387167516596543318125840489572185809735823252962802213566682059464367079727148283894025583486059758357692373275339794103022295586221127826463894282978017387476115960345475798024379287807302064656432710335267961519433905196754832068313185652875862148455514272080357359297525014911843576579391595771802848786908980111041373800333072124022404657236506926011568375876464840529270295587800705538468152411686366096591542224874623690305648716813444158243868444854091508207550694045313644287458880404076791184095451826218871311281283536349910679686153470454713275956797881851046710877131209503947739268465512640860407922160674757433191640514725254781998533829827709856481613934600035509933861773216364024670720780965053886700959768344312137916812954089586346048070975901361273536063851339623355307264911324911471630886144460701080195053672305560061625973971163437242464394201770447203304660230802487272448024240775731817458292396678121767306597823641533661493611808529189523870145463143599400136238854653098220609383284450459260075994651773188445995813937872027847527243905624925997946771697102562889781163813187661445321119307195365302137065208934935343524677394417491193637693162905832650585200709527276687935230012266953465792959302477339351387160949158379059089650910602024658572239786917345170430353987009590802234395206197455392498975985978801834644942122864497811401615541700683092773309883182155870919051644549307844916648553486221470866671157373392603607597581779756312353493770064147478124873713705355660913409764446465386809646072335117597371884336485439093687572921530403284856463997891473404970913679469107527266551338191053442878767566993475316038226862796095025076851778137680100730017985893382348903708802461955488425788702641250228123551609360780955063630786226703509874633963960318216681538238870410326875160457105740485111569743884079969080656618428719177330158910793143875827952726301407703869261162554810214906975546496294516694055262863003780103296829818857438890139341642997122775941399180030456294880300978311418615210551976706503945109158367071098715545465826492116776563048059439618808072527182318485721535398089983055320568765179907226005000155934193213427670086748347136981797349687151921916926873477366330753172739265085414677696252684089635843392194439311741985155317272733398345964951270173158629623167448623935592994832520029746713942142593742755377902869943560700423340030622895464813063440702496103073254255005487395362601403995962355954613662611881489878052256774404796309382713506491385389565220692101993784668964214182861609609825357465469955059042565912632593055018881697182900191265114408467492516397220710875863861566088146462351601345260841161311009477296474327347701172242550834203460120449938479040787295162812550540913481221607834171564166784584703764819692224462603802790885837158581485465508378159933037523379505953276721055995090812122436126060155445906925518450917761928336070875032800108785399046436938779059374510679411965209898096573591986881315488058729129351811611811103045711701525834172644257047935202173846947672309847764398006555773333996826748769819226040214575348041782014412162107487739371461270024114116274111320786020571702241438907268439084628312340968779608147622401360527033083196271823131244481522708025278959918655474381122938348442779998857086813222250940030061794362720955129261323677719570214499448325786311916934818557034685002991948029263754243954356427843930479326283303003460434637659806522358196196042599480797389808999871321981752570724599227420089001161698429472650986318194606465759029100423184778286283534083551531906805378476990538956808695190972520003056214247239663082412609181184352247102814519048440443159771184089206155310706999621643728945891694747088196530754213244034678909005190041090113637914202941241456552519028846230922942547484530528485264758335333636098707309081226581216511574650179335093987908306560084352545688261823002109174267266551320053534595380693625249308984379549132893024259986955077632669147865220145719476134311704360541558187752485298783414491047924854838256590349473170096038791268823392989712787926296132660448813245161494995447970074618693117659536804770602424830940728142903162496294429049498879876232076105504540219469220042951997313319724909926728888304622594199752515292331906817160053076194080895955608311677612237725055525205702236785499075727976539788741354800558211065069074055691353716702711718235341063980545437513452416128720555941690533209421613191354812139277840909780495619638633463523685546937734319674746975762317438818156139721917662264170847145035726437811092318370325847433077443703398730614116981977139168013028863031749104997913691555763452281111798635393283300865437388175108765001864785382494429925072021289083942952247570522873777790652197484927489501867095503187550295166705214458511207223828163829564648791001266775914484801879964807623445354435993445927870031377146134279238766948589568842719497647915716631335015578679780178391470586713293677099182261659379749967985565197688092990695311881104854424022011077692151843666858212132684586316559514235729698477305593970599811389313002421983299366839930149989197083080720734040521788695450401236757310924648432503678081743555190546180235398072768107082624430868061379871427958915142544081040287290552274356895123279843015046904082130249511876341014927576812752601112902797812637375026178653569259894077987764948979027347837446369593012257390192438372000413122212488386789457358044605417786584460927054873176118508088844605451379427953746965127581592346404475849131550418180843566157243489207329835808357007972667406159970108533555491442835793419193382604822638503761743866741950285920025445166932682794674136182700273504569677093364590891744872413945674773907315349177100570244991607156206713976513898408710472771689575004878356409397684907324722176882051276011380269337451439173040316372747382786256252083811904346753964506088354972449011725581211080972557827318824174303688751137834748659842609124380426675948346508012254343137680912070046435052564072302208452241787330606443559791674316904087909872388644929181195038084859959583374574080693715857827121806653444144498889598981213315728875005674134367485165120057016387657489963735115144595606351181841272288418992988182092209597149720833950315110382625038285996550271553822068863208522684225402031160752091234528531069099205343337573522563736072475465861261405328903052072516385609863590519776594562733348687351622374593503899058712116469995232398915746421078597895877399920959433855724353884942894968917515152086712656787675765922187752960672782140760799251767303678054936945490958595631451669471062584485291636105884604715936528865061667986382139212905353283619353676517009210579221161819665723314674714344383147049158095211589364758512747132069625565128411117081894052998421579084328335542018376211868894050278063235334931139820662462693853884903538646963608093932369617922522385646270197571211604284095392885324699437153460887094384736491937109042743183472015161886879157806797003226101216388242685661846247171306588068312630187825549024962733280895047321988023862236673433833099307908574662434897118550960433828642421701098328229325111964423764564755382736475978517283263480765374085908127079253208173891236663157842513950924106554541111669306936058147756600219536980075915823361266945147070043812716706780711118337437656462266065416702272005359808565730612524469849267566128876051629727043138445401732025436991918789993094069393636301307071658509696671336087512740050820156083225066914966701691269031425272971770437448664181623837987190339213137215108054787486178999278728099938901644340347342065317515397637386968919426903397539213747962847191255904565743313808750306670925696391038595238968870453672562411286919937428559562750597431925742699240935920950209577268987185933962947496208679763993383437929030516353827687481609490581215116714319593933424553798348133639697234634111816031291250002898206081549797165422455810685301641428383237527970401030613980903122468580368921237446943616273858931659799438518839033873368916909464276367408949425689003074408464546139554428900302217252692760917313558764302105791890608180030996476810931544141914746351373903637596508596220794942490530633623386273197850339642365849769889947037993959785592240447003985965218978690392488483738155839591515580750119439010227901514859713620632707977170864635152734695973145048332679209036484610924086785745844753907235840015183306560195834401667160191946489091150404068432323010280773856907756735000538344569213538984827192424783486855821658613377625747450232790777852858286439614930781984663627427605267263863076748696412141140644972691868092599748214256874428070881090140103739864979804172714875604421730035062204033379299200619821043340911144306140219175064626276139158971118115868970614384769273742560463881755294519681072635550502073142798209068732853236973901472421112187718872657417383776824722687343988976918265347961580590821539610516517725522852384129366936625878477321016581283781243459461789452841685184238492841166026035532637913262207813690176467664337243217307438412332170160329626945447746621256907734809896472451000936233234616962690360007005136068609791886232118117581385461992125325905032350645028444738003602586918223751902843104894750048319766075769146466614457118256524903016898166534281081613511329877335199414948132471933256099311811979834679791951798397965689242134766677996438983190716822033382097760561127824379980325214983030847839256491425615973012435864002141023899657498092996774485816837983011122195580777268082697750185504904276019499165499075419471898715195632856170364863184846136900282126752663182529024773724075361009828125221794969327199638805749961980121568560747052692940624920791329899855342789699237903613629807302665561375222974623365469278093821705400315458090047774882119215204113988505375265429019018603883852857668650654194500605775729967249165804664245022499343927712929720134797584425624002764894819956134988059059596015915216217801443802652631561654508893530399966082658834867644318514886525891732462743396070639227340099294716681641411839956146790949245776837784339755556680794086728180602735105394881450202282763023829498892181923719647926563555487921394817681666403720723390561671408013063216856892049070041796911273737350547260355687034763757116974806139777519627785678113490783250623444006860751177900792211222606942169170809935542803566440039810996783768018364415839066538305916722392419928497825283629292763403072871002447158223334725180035697788728419654255001581984686365640391167141955746627386103653703031490255386828063433967281913551978812505192740774308479636715386189817632164287903870354613518584066286127307364400541920279869289051703712317923879810782465675588975197936299154228140913483762120606644834605179935175027949399950046022103555554591177641812415760182840806166946403017718941408472061298150841411133435123602890647406000609954339799856518456624651195336225425640010082968259884802594020836482164408182135560185168216068932347607250633476190298588432459731340336987328187851020347106172918136879239625552168253878363759326443342806309223010319388947343853601589906969008133343906969078678073819110424708988163042674164754780089048032583613798380717153541254278867536315559311671665701268144909960949699959960421476033071429917315030496663601420182308768666873294001729025762921703269056655903661396787700005299169626403030927094223261531932560825917605423680021721033685215618968699606747328059806265434488793971877129689767752827511360058863365711182028910000307340546335102694857382230498122482011263350600170051795634277689290251010333216738780313167794947539198365786152406276721310672627635064681472839109515029669061925430860212083918642911984715038898061100687978873779814104866393807481734503495160570419922620834756097781146092501919375705537216294545380428809087188772735493823407339793656625750312837985273885041179328149736567741679159407854524819142461462316282331719911324144779853576628381693838607760025347274075735124438670103424146209472329426971234174518972155956472983761444243412853934065091848913377985700109818770537980634468236781497277763962350307178344094553770585606541272108976424769751565397997116458926967113164106061632709951075351829085643342512438147742591760617588932314895257976529068339255769089599089677675580603568644357505783759609329630575897415419312592228802216458198790590076731791249023954212441179112898188243914850134139153397274634320944538662452249140601259533366425610765429673908310949582179593363809606597101045708732444800579164121426849733695308185330622321693277057030087552190485500061583735572781769306429565141782148411948317165228691286152477891131942566263038296533350632076482409711517755032374243516847539279529991165585539246649060044183262841417460783201672218923686268104824422045399962803999877083029986571956501263005453405327786379670485871734418853474476028049228348280743998466746081947324483134584302608806259785231703928893775314408208452682124136108826048735752642355476784290414035922021679529915599738427110698049053644017973842684033734642039185522529756963507880537670876724378342247412706844903095681096892984037909684085526088633782782174613027137062999247456788136415452988027217114996769775716198144358456024547689925046709442347407925393989814593625379294108615458036252015382108470579861159323377682848760030403654236681995031942582979458890121197118494785646769273025094910591019599064511829121178011119336425593234772705735448784909068570198401031868693151702476843070052323878711722327506019995935334468595059192085495086848412081613646869536373067822439309448949794669720012424276015091032688570186084842916958504371614614637810836209890998034195051960718525183361978482484251438485877787933234672999605948408186742206339771755016177010669237780567380832763635104938356431976427801170686636346575077764638919443488300903301393354382250357457097951663411019029117092091214659325360830458710007398415573721147936269440660173844402690904820320509411113492170829344565142021390244012864149403922849489871336154731545891559596108752451069491388196036853032696420576402648817248406869380354919215134967420770714551763946968541095716496596550893708014886929385199998423784904307320614389561165040960420371284010733580329213826291878427112108038033782255824400700260899017233392802320264944798304995424822085463948683135685132321760637949812009833810496195088700859384213301639261247163608191669494761631523369611781447809769068003539444397901063734603138881529611511266615321175070371659625817168787046304838447771226841484824160660059145623816668085098362779366832213254539140657488847359561040594817377042272948858259626340914867796321493426135209587394573307117118291862952421414526625480733595797618620132468041113719259879302187348199047325064135117653638052773488667444031484176519924499016003222904142542075043249662845588587421197411044932312626172183464293903817659204567064943022346517382666724672292914860329672874828895640105274222109016072199294169381989585488247654870091060621061409555216521284133503317557241765930490084766005366291866634007689336611433728886164975751848258125318243258356752681432469659569616976975195904941851610019047293240404332712235232288863141989645522689724249250418677134123309237999150948231354384253746908470218416834140605746706147261562013618635599165054630755252430137293978265920404190392860750721510458804100220926009940990062344265523033096999163992629748152166634099170983690705533638053185384974697888807458478660130002256310842908887511348682717644055461465005320952738517221379557609269553356307065803350699768319757733590969782137507349859067240552092591452679475637607248645875858384189863804353402268134205228387771355711418442569824988329711349702477639226061325844338372857096043781089895654286652431380293096154558022994303203509352471350883597047050008164651310893469475294565614351622377712947208301425829818391722123392224701747391477524269277019120402225527330739100709189847047623267089521820155192672713561683305853667413674505367352214746544227425952420576058090305478011632551407853701477795252591006229121026937204599966150688067608722074990681485533885354757774465524906418878767559437394667616789732165771433508258676775155458868478274886030438267068699863034810282688708716606694293931646790727341307963491841303194206026556121096787232390238740181303470798751970691947081437075431341931560510378291786095578962109582103049557123247847653648633247876812542771535516972262655038768770964516297272540666120842525144271649487266614998656179933536053418103631556604912354142816396215016848390613880746227023357013375358088313971189855236355338682534475426934500136639864219727094289410447996148678746266223112865650178443707680826888446691861374721653285810045828966326066013358191124008016536690526855713917663951396511955459561345349090054779016622184324607861531160302316651552336057297008890582051907618680941596860423401771853052905715925316608723687433985314166032667299663210379286961820862606106600219376498445160440354979474302422256925026237862314523988424724423374232792708451453114916545108707862984825324032281884362623125056137477954236971660466689790446901692373017789205908362626539718291187246629743977329490074861065136091728166606248141993685380243860508443576811498774762686920791180475238034793854318170528557334355914743451622158675372187909976903475069058114718906477877468354971802319005458474614216765461141528992562562019377578240312947254886376408757322985243498068481353927696087834648067894077742533024667820618806721723983695653652107841661274421846173789064734550655851351469501935076014895059714416783381748124693802674616436512236078433494204041175382481866540488588768987769077277952693094689237116990327149626630562719644254460089956684445545017484582952288113637090034826236056808514462165287940306183078808455377532796309618977472583798567003993784429025622551362991920599270970555333163367423446347462494124331525458478404986090369440528036063185891183001735184675631021183621017416110695454471415129130178510444168229775190511795601695983104263182185105328695437441950668667876664694418365408226101843140102923787438263600541009754055285798088229709332467435749063783516172283754345647935066050590227817377510347512510532851634893273580851951013212933455541393463317602881817506427170943315037133638321240733489241045884473693349855786926666209114234739809522400394551764555654659943777119992383973253379136004984188001229133452655340198602915888454525142581342353348331680210223673089892183572487801724691792455388286726570908828131960493641887417644751913215718887833162576021903287629472010363963675556229430907607916053282849361688850907690315451671387467939208161705329860897759778951004413939565368275176496943464801108225407973555823901776192556509078691100507293552096801769510331991505605716019443166071148054687052415221166110668632373987182794753058352705738331372378388872649246754941333409871352296066613210263650098668589866078792297594312656562875710536910725621641836935569770335746513920311887987976698608700419757947211265519416054183135171021384671624954730087385917731797604783307496264137959433271098352856456800204080572184865809230463301120374205145572381342559760824563833264083596162986607950643777236679823643374049524024691582557997503633119481790383149616030469129211472916071812141952265051252035745184977560921407199460977832726749969573697067117517870497886731458618256058160554768282713907010042371750940361052058706814242766804601150210225685494035121614579751785476460199538453040371537810521741003311465165009222697503003903218440892191306515738930435805726459820257915300936685040265873542414556890463647150267879933211103555020223310816219278464098472044838826405695356502093487665883701165174923530882195873700768171112470529941036721012201849139933467431783160164087916946862667590311034325397175190813981565737238266310936433675495646793666664111723880085885454550749790995299065490493216871261324700931661488025306951954619603889906484772356054068761397649529254665480916657926061440693973651016004645338527743239319436838527881231214456924359035390804309238763750383545024368634839702634656863516287495179656034748891525574582695168314780714655357772182004439254288635386657910825447339334127362972637164797836805842519664774000811910839846172037687376458683752127189140391729023694760511976936173104987341197310140345860957533229210785734345600210025566848808575201714173566691888147313386893758755413909195387110005571973773066846528495054496081597453289870308029250548404441405302170665935543892505449684531410423781770883921814178214922726025005704681305686270819801915329501473119991045148432138337508297871868356508925554649372919601809491117579818710412709227879408285989043240817557150383973445751627340065114748281063424566706270571888144972066740848459590925969052829786786657986170515148639586557212937159590386010153959564773535719139860129315024556407028986292719921080115648793861890488323038619388639656534855595214885590349239827570997243129189620296517448645946700006497311626981027887616827988427841394331680727674223645211183677393213689921458290263830358719438747511046895356094600913529789562658872696738175072076811685223811426193409419578634173798189612112509661918514791630071261978506468622622684317567556222147535704283021020734957914051297012977439017313030656741986583173515947901097510253721198722662351840268315849188289520793761385896946715180049688396145409406364035011442968798271241675466055951993353010469029176201004382612876132789277007574384888561332720796589336019459136232167704216744756216026212574360959308272704134786366684835799931760113482937692615092361425255020008296466549860192824878554908043410472049728216112396776427442014470964393580855346815154896742515386350450799541867823344376731501597597032212969585192255260983562701106655279573401861356686981266918949129271242483805126409545009790965080700528483454050199692981893664663479085104358837645949875181295086801561475869244939640636236672066676532652929429294393554866604026583049360498184292488211344404721463152302712129960998314361420027868655035267703874656468981719495505157091738101208836597551875663707346377528434845551717915055699228591841010137677961365336007449609543019731511980819171183149726967370370391099426098251282610869964285201919938627796117797311218586191621815745403755597719935934719902788789910239284155302387139534077025915931681135420163504820733058837733001709343398873407987035201218054412467042068620087472556215033090271809925716363306870333343258269512383311352709985752567635586994734038812886275969128469985822677376355487291344571453307656800383135652987079398725055480314218131055922452924857162999564338755317882864890872692039605773961159315188433498506091855758335668652781603853008165901830328045945368842036620685248901442963144958711252787851224735267960412912802060367960947180306311574347940434399671162319435728744546228289919693687096133476729170356039391180072928622248483938008173960198096669417256195187854332608433443609349863692349127581392706287748714418976368516803119717212809656707372167518904388123937112460721710752895318740386837863227156754923591377280453664615841397008084732284380553885977908908212698334343111229029489394012853687632578120367118556438838266035150910287383733849320031818686710908242373413860425331627702573148812943564513261030285047949858355607603082256104562415440405307328160240705193339743091848383923846451450019558333450717458625726671190955239480995454896452155718031276061771744595335296561172721905053453058906926836877308254664834174105668571021585093053381396798972019447196311161302820177822331650943405263683230568204041167354250028986387276063282899248195661606831945472328027830402360779832874387023763271946299362777634332218351932717727156411726463435006745144405551905908052967903496189392034675994137107155864465141526049041060565935717905616797468483453995496043837910085037974611819692022611711095248733247403198829214668850558665429924441964295291049939513513112499249099529693972722960182615236909222790068597936489641012447793209520913440425988353460649018288828236216420844318006856936576623552322575003415116341501110324921340287248537132394320500355596173838102912752720755950375055530107900182313487854910691203661024297876171065117362197033448380221755090172279364109204448847715702503119982528205170943942472723706517162110684829307213773085267988768398444755565804673784346664671963434095944481046455919364056563229610709786046302025584522292917388932195877647022122622691439128492665184405176364630923789672603966494355597374001480816669519784432634006247384005012771939406740021479231485350734655553470222472733211556300395320351134883437728603362848370148695143371560938313445179401882410256850012447258335584107601946575563646140547453539024611567011749502604390411927966465725593775237879581877875373949905904709994802024750921562251960976255736993171657311911417756601674766679980217391873725926165410116919270438732654916063050686659180855631448312652475266740030586322159295009832079728523943745407240662553039752316516021310857777453436167192927047593281193444767843949999897783038958981844259257332188073681695222627234709733733696459483192665103064799282738542708953534327150170736105290830087347523338652577345877427115130432263283486970689953658095448836938545770698370967747078634421085356127386324987188240739089898004677766095289615728257292111341932807405403364567274463544061389978657484901701218898115787326284730891699786509484801782024435610616772127423720060475835722388671968890151632040409551982799362625894081492976665427722060833673472137420933885804052545505834592579097160700339751890589235329784002713622684928207461835494889471412082296438709289019074565119033590963338792640603128487869380207560265923120914169924861307143874175723688926504203464078625367720528047506215785185968929971697626418541849918805271733984823941285421661169623081649666077818804588950539881826065514010044606844387549299688334461297906020795451782410089663821462434272550056556084098890072911208911164344105858277593515897072079832687133718422858234424392881265555416374216632566461151987333662363174837629051786984931651645718182998068418141738674342026141844655307067466417347428682421835032162869596835287178142389531628204472942411307104061476349166570417172781381266619462223018342697709670715064265264155611274230088100039449824802835466377950405335782903065678089357322126768715050901573686013216554820159623775443162481099663525230125721635947384424188953886511522658847441015265744092705021424519926465687424794244986307822834732022440460519671628663950721375306175604993826466233931298359807453561836764798514637691283680905859627627270472962686568139547020894091794972668727893468037713487878894913528192828151439456621769989983917076816336330829493248052462994433874160667114004639164318339608311654537095242586627440252691805925000527870892313950815310978213195135053068483807157236157523540520904095162534338909754552192564063690169566092640993283814568566816622405436129888317213403819672022909235585537468042672451201066845288061667137561694563381564577230746789276529237292320852279281181354513866727612870225208028534508044684986966493446566637734883862502368234363224372822692827545874136286718718295376981041007618570370148127484125543047130357737824906452890064813920305075494171630025946927925536387656088569948844380027771104802877249205642271091744440504029805195377156681021420265457508597602048808378388154824683873476493272044610359578618596569695588409842530695126799275084228563881683068848393746314228037854969194208485777199342883318585531964289046961655479897635671463064363284389191454814263357136053832064720904304259872794359044228051284139179130184280718320086239742946991643706173972948813562373857916810003282322487001336587119247988859210019198397732077498877874574749189588686564276976879446861407918874968107724781137697068574035058084025085135193953605361409540761859179562943190656808100663268715450742720040346480521690186878175013608161719353556529655969468969040891385551122306623388163155467264567628511786750302762576289386541834330087546133209914721496775776807579002372233806120810960552346070005257136682434037262271301519775217294187974343640867951238813826892087529926011613860539288837668146353571394400106669732720306949828023571693173052651154774291741132200832740491811837837882642865153444411213192661813900238089474474396851376910364823072793688376723280011003810089427930221004220860594197864857381516334160419697752324467470197240509172264741648892388910818094312297426399623525832712152993986155520944399342680069668500104900352131694906536202146541201317815787109971004261702227214488762815062446170204586674657401147273730605870690110631974648612225289570920836419738094255131595283637402329671184356664446208590958243523564110357111717859137089028869416573616596703530635417341161609487060358331362152410577712101767699773188256696091823511578372757264403777965156792943445256054803987943845295663304013151318312000770479880003213009638979084391507079875049837597860652959596125734799762941964719620446736296657487683760730020690139774709271620215867102912631580908780313957922123959811936864488338918841398497884120201627576158089265239810748324706197402535437832850385778634352884426125764505307729401025281687287292503174041937276330245821120061758785965652503577619465733876364174085329957814247004549537307608720151857513132752232020190257853216647425932205767962044863426389976310832939060270911512984198756388336551844511303911358710149399391610602727523610600763388896036526602009260803682271088390112235214997827585531739071543482602278189051761211243497769239435514900526343918928713682658637099448822043441391502867832942032472066208168357641996073238311038199614251771894985891326266539784965923532001157705167242493383845089192036437922815207722271487239312440423376618395713598817789896586236972728463868456041707958042006533470739053502958944115653802526002680529507741279483352261055705927697290740459116442447317779511209071706875696015517360239100063297736907006368232449349814140164184476780350154208445106454037252107849157739878340718720802273848320675451157073645758678890832043187095034738678906930944216395289964582234016946264323021709386312041963923524028180329694951079422727038108994004223165297830726793942835314423843799797442514053689507436276435239466156992595012700678291140230551519181356665036894540433959679803679542894083549177154733519525162833358763847919250602002327520068971050050031136196074840140579872615436380658348369422229124729848881554632978368698644951751229650812887187871531445315887253427245524136424820774495896314719365278221735517360566695466013947805734193626323107265004437656052201081902365221130594451635069268214611918136876935622760005059303016998607861162965311883685361292339273737920788003994531426408746155878615434140749542194276622093958167099469203189076155924091751895745212374803499938501292104288927033949507058301391248218264136059814314993318990552402647966768883819223199546241490287416651047037326261725727163255476288982173947031283532961525754860717305847369071761709004502630060729795864066506198838299700598611809601896624604164518511951760077365327410080474408586912769604797036340245687691534832819818237253707320036860973566009995055405976302372951872336359795832209562745998187231523063344720259984353515176017491522008697544682688483188667482971078620500302168419692700708490290546007168882888778361945597111394813807140720251175631205858397954775621111108028921196903204893250682348921825529799043441917335524246829276440222281629792702362915350258428546535060275209460043194306601750918396043259479408860002055428901864756344081614553168504556705002111616940677398059800936598738409657931314529860386053089410904492061010885816750216346582416750021933666231287004475780426008599945825259274829744212527212098123262341346905260231666360480563367903424505935308470432320174957263068350176016194827169688046775634265109397423865268729648913591393864637559397091350010749509189749672832375692552680772457814790861472842254404410554847342757000682263158409045730667572320155120663053158942882239751743096010754291077936338439126822901941636774976090511633122473416999884085054534026026237575923138750264481086463046494750506071407441953172445067373734516646242439286678791171614480682352445357130167956115438612827319465255038554629151886867051151662877104048160864186463739984867971522524581155288900994146093320624331354908614300107708631486432427722805451164788306738388158562076696784359385916913975265232617332137525026465330834192975058068504187640479610765725957369329279253754006763069392571057787993749102684486143482471711673121336164161317700211726841914635948927379503310602982171940497283456801867794954495598263250564861796901821435960227015650762834250594274671067553920194873225740997821456928070665530799501744931637345174523393731314224052652556670809199941824102981897033619073002883136962051879839366739069440747540002584945056143533167974038987220271056996624577698035353339868523088792732577391797427189898736454692146415542311995820997057055259633903487895006077839319464358505913646728504892550313324264718956813865865011823218981492392923760686992961647204725290808595563596821775938829308039205225097779019636816161016657034418235285106268049834893360585718327624960339322156318949281900646797062533917360859709215040953358035167061205135371721598783727612373894515749753842339986103176392823389985278062037756102081439415659984055897931071043425967043276767484868350614770583343741629096140859450476250938534663349253284256066477673275110187996851895438166547058840821312735283074175473589094977461022741142362589205825033157723527890289908812188399295146638588962215757863444872489033087160168048572947070384489478377660552065811346959328725339924420691302547806250860502844749750375401500716881186553280768051931619496514019003664559798890863858129232995235052476278492500777081245254683147375054862621902418292153324216568657477966884018123005846420864625004378699106702255388600708664543251066392092830850433313660469124062482144186145697614367705843289631643300002905882048543298213586378517582260479237116879359201119596921507872395605611008184903922642612567917427139623105846687915248820743012460632942144916484348520333979121353358598273389568043221869318008755078419601428968634026583824707133402833497347384382896529116729181253268784835738493431036442800048591978633531869322120914700553656751380111613821053090103518389038619674945151395721689574951995639070388520355186534559664724580095468605187896608497940650004167148421739806592621736161567344921278522447304741662065312943863155079670897447309584642656029853600012154785558991102879650009367156724582755415679683074549732991886502156944702686615461587362508479210168989790753573011551011728395544647836113918497862204202600935885778835901604355521274572121535195462757543351331736142249152240909279148332810173715719435079059943832917359643539944076413620989179820783990594434387313328261584936501917625994750257819924888784697104745175964390172462119328815031659353902379490220666219228043014395105384918829405656504119574046640324534154764947258570875661601456151835208052794446692353213998014410446515436971752986360827838618641124406187691009733061934608029011674843763104180567386753336441854890068864166554431661846328360675565971939800218781329144208598020021201369457801989576164988669289177097078191192942203717893311745757342798207643057109383429541692563666354865935013457639932394095239889515390875119966725808432975721324080472000244915107440465813907598204582614272830814040210283278427723802901198848251507413357118917306680524545041266522071999862102218940586782272111405690524744193074725504307235694103944073456812998297169809910424177448296267165178086102625174074090822974775560354354614526940470942397307641278697355343645430187608418713180626133493584211728004453947673132948414582623495755823325971521730961456886254292627506550300220067077173437759960580508737491360941674117184399246830250201378588779148922028508752479247115809374623077134832160054016447529543377935488693370204529796932417479756074151696699422493550281474404144154531149406986758759620696504456672476192311761723076466905511742668891155112553954266475514763238433662794671043728282603372339345852182807845101047815395191078719954287037078845256990867585328415302175182845226578988297059182048798883588830402996281753265531795002011596589146969875754288394426033380833880331396667095923838387497677236486101736587092531751853362338626100687748255512719566116725766483258818007516870530459114444482038194827980586942138666273963901854030515605600761530400456449940727166672583779005858460014186726127398351834966596909781730758152601993269815226686431881992754084881792780729667687363385426873224142129852309249516839164211655655258655707832255756592166181617856056210230895760470255577220010778765471598993428691311873059373342224818746064267952529426628067160837478284288694470324516215656786189809447619553950161323445323292622180502828115395250876619677410233111658955629987414534442849201457708944654298082965824999388221702694920472895702865077420132941788189366957279383415799135436019354601755093062608049360462750555831559481747307204714655425017491343306348808389721839284418753740916540841243348964065175015822468561328015826714917319791961687480115129603793873076604980646854174287478932260512596400399555501815909552873269405752298323072668788362605467740943650952959223650865953261490219603767345692978476024636220950751719518742953324014266810975490408710311055848583586555182176236514747808680322156228623573493912820118555069727814913556504286079483872933324462403054035981081226510483474235464693802990626007751810096085153127826373855939675238627922958962995932577775543158767465879099456244097831311726978494807560658979474178151481969014447239254925439259657564609043766337526080236653408043892788237716042560525733076823628915508712843956968851374240188854197785773590930421771760548418299027865234468791478356601990298695716860243183328653965787952680083969166764977494511221213660948123067268854650420941650854552232187946222025493479044133033881028521010413740172651704815674890386500586345632946631837545785948097169536676092519008473820876657028292635615098027723559940713921958579823287324575384845909413493236920075624846964469350220269054371648714484532810707238189862593690007368947695377823064613082297863228225360954606812904110606418681384609614368661698278759624828211021722147133206986267176501892478252539223345340532660218112476419143022975020844087071888055219956385437849305487272202425070439893871927458925085939662947710649497634450721649147005670009373314889823631995133248509390038482433146309996592998332580333240542574044074108285700591083026998103228515068223341215789581892400427394963564014743347663070335797602310112453370565153619532804303863200680695241680496407121382955771276176501032111019944718307010613533350255482138523498145345748707442625880206477603982768085107835850144357667358773512523059187006175932803747274711239933552039731674267782527366265603063732281429267451680737300417932264459035089830885231580921096996832419541986478233896820365653030859852888179338771333121552386058860747817009492532124368577434899227682978083123185093392626849591953850737009356042312468099373630293744841127536527830129491264546645242412701645611710380583234138531875209214815100237052512391617129725101145690964741132218762695904344841060912948535115857364429199092431377091202918814052965032669096820128925693687912608324216676929861086252820220787319125151374983771045800918084315096660853027670606155563363022339386740726844208731878532177190559894919108070495838544205291173712984573024800298588559897632760450554889669783581785576155890209759327192223055512304587024284407101291834010945270453675522153227606481893578508481091573941681160908796416682785536400626083014748213731071923517760914224122569181742444195960461742593687314304894829789045825401132928398205028457357889768695602864154495918451712839226270107376196336787808065607212175232355599627836671869583232082238511815679317231229275096922461199751525644587830589943983325982654890448446391819904828744656553333527033149331645014684516482316689716822952306471401852199823446194164103819838245868842897040923347659766602817184666613182018606820647776433143613665077526935332217721265564661856457805289816170062151927829130905135140061173097420058271641219306684870983155538929941691803333252444064828038526025905932706204917337797971373143092760061249624341721267009074195323682675689715870151696473291528658035585069420188117764061869384142852079064919837291109741708393186756213045213499802132959347100957775092788136396000694960279721179671278204206301385836684594350099424271031565801269183964144857512882601470983494264523200873074582839767290365789340881397165358141116306867630751606778159473389530685299527706206639760049857438984164844948513184073959682502314247145719994015013869171013681112022676817266740146770402157862256187002683632058961682448520697953407495608228039338549050322609924352858721321017092076105597248882134529071749867892421665616493190777588354656082705873792985734322240751030916799338970183974374188354954763770011544094065394830591575958755223243870429185596395879731737952359959467423311233057267262161226093059967418740094267101254353680024228872425712745305812936510790736441610991099894350589821699783212406980221378464611150050044111349792127732061915347227275186470325990312433119551116300307536217227994684994908213669642645315728292016299215569102140793681936338912453169378778806124863893121437243418492050400875020815161915329985443935542297491499543925433324671297001256291090976231011406119607246296565032485666715069830880393761398381021691616887234537368938580878557723656670170655333676591219741242926092106073005282352113319266714289418382034294821077179285547849454793889933816245189035629518782256229716358868507045445750515236240392300809600814568212633777100318386077122296339536936346741153413427998707538024471017509775414678968872751165273944584818168090420242280449509521692835839639313267109961080866196169417446983273023901697683346807592294831482709941316540523091976874662047514024908539448061781549561646316136183267605541190840217175786585427787210159912563351612096712948875644961921001298533914889281018938760503335219716557710784158341043308336747330895047312128614101375046414536411504188751744492674241438078663701989656604296170765325678495661764785232994942266096445609521700204933646088454283891501354789668329996003937650044038431273353959303884046579555391570071985812857054695306566505502034808129796973013403133137690405493160106899195144170178873889067471520725588951273924237319442846913908304225384874913106971530709531634155186365935187237122695597301978180972053228779172012161186729118910994471619016856443072429653735072835328515208205682331843413117738957523380897416376184226145867103691658254425162094566858700146692176110188337292013948883160227979133870342001420713991413732991505737467157645063709805701766801634776613190451094574817559010625917015772052383042357475043723339409520735285374343601510609104618739584410788627655663616272406637916150464281233092931228153030304353347900661138501199430261224097700403267348745143380217389777610774364381930835029645213713630407191299326055696944753338598092554334916498620347734935825276616171337739764721647683683341327678159580735658718214862577795231719622136179827103404405619155619452822037150870525550804972901242105899045186096284327962374746226514894483669083604527738460456763632040594386527055106682911981013440409438931360518960168768527438787343843510056685364753816554361816890050368448027923381480432652435012488288438245337780012523588926992699291641793925428495452040946021012611757318203742537322966699273597550576888529441491562510202713560580062470489194047022239417659218801633319259961091563575897510892475975755245105470288425847259324292561705399341058159191429440736595988070671555244594029325406171872778765934374051128877505626132388857005881757600837584173656144383551185948934643776966628977720684242357809893170406194436001685802553609389212250486863028133139531208773750014506157720809237070948198015637659617403346072134162792281560412510152333924783396616379507495836730529654863355995049867906394159420674657864329370348955977703537424025589763494734223109382531193641131908573161909535706588387968457503944482615890097225470904813425150551102542567383255467856450939548451334308532761861566289903091673953285049468092709485062682907617265052089693187262972287802860473710173828361469368377157699479253199976049824591393557504682379949401625502611310428201001712173945758990597913959614441162712570077615183338816270669259517273751411179655610674991044740569992953633399673583264600188992511489174333701570674365995726165787858464049504755616651441505723523657235203159939388188701876222895585287192146961525338419464481466382803450621361560123949344234512022502471661243930549042890251658723612620993088163453117148734431239303119991252862257776299050464111574796640658608445026440016980345755781362862228318489163353544541003038115654833893446785634206458596023974682402000292824078262986925986659052284284961360634170805458401386246464897021184139076407022471760410194091935591655181980057735513564005940543593062492023101058312453671778861071377010368470161062675948278268005875135697042372046265925510982560175532433196344266303922611892756647899859010679561668964177322055109901269552738485993406607163440228662557689225891712290001274681500827759691216318253954980534001758241875111741590906485211027145941261096305228385670930245940847948699454148673585482394148271055602230215817242184951213446927415633431305125329123776617427689653605421660119522655211743456945658166900838533866789266402403593366294207752840285554587984578387221661702229550000709932254186086321972017266305766560000090823809576702827976434066272365913926483948979083775188426735821224334694342656263734181991621788951602746984659978030598491679002315365560891147321931069594301536757359976334343365245563646776573113918457795867498570111084079820690822485850092757547776788070279612764778403251484693781449067568331207835654405870757676300608922101970485352961170004808367780494314831533776487367825577654950215621946740675989174037944451076950181762466030005898372036788099739195605952214682575824388208558220268764077018907649606333634908881313138815275117439150569690353081681517209813398243268661536257528226431741839328864005973514653925549602060708207198694268055908212208717947136391285558529640559704000872501740839619716090518189403959256990244575245605776152585592418821263426516092078474511893978422776268240900922015445957964951510382981222275770344941077769156523028757165911885732758476774857658660430657285137128367491839148332833081057518723523891276925358792379871863735345978434213696644343284750233787387076737404919523754778971525998955424137371538700096738336138907944134475085153837648288200067139980829144672164448036801607877854518730024705896472193776559541341502967524716050844037641993702300375128457828822355668391007167973958649823733443482125825533825388512437120136089881490917819197681201585764070790822777277041683633168215684420844358494636424114117881233733777444339487799137940062787852513156096845208486557501055042692207784725835288478712271792910837989923784489771212057718945424082165057169054905118240406683603330582385257461489788238876800574772775195964713734377426360673217092490559799751577085822653213554354378133842027642693166864175881167323968435011249448890121663485912489658702893053262588362285845300461715703797633937433830943748332621297330878715769210837099273715449071451885571660767867311137782985306509044772603219987031651254947566196655242807475859866373487030566182035687770884439145515729079699428592037856638739892601917654820471892288766740953005742507103111842416303349932593322269327400950886177132794615584781093538411857035203287738082717819881716550434455421213813222494071029612298984191238933461705708437675584179844125920805568569273672679567571590342149273557261278231775685525053208663805653608320672421686151687557960793946377390783592041083489271387875711455254818232220313339343346221784894636811985472693353148745695293971374228957055077191232837343217978821727515936640865981316823240591494893118099441361636415299697863153493681541882299159813987441892041769182070953790030753126411686644438077163011199990699119326840668835675617729010849005545821070966652457210158883261468857572601995837374394923011798973706801815567211410461884035226635829098040090922947657313957578762756539549677777730822439335583172902894360382215545869404221159001563293721729522395077542567583189872831084664687844022120171676844773385194262644889421712334735030865458034909257617886989791512426761498672701813525520157581232226777406617195748966754530678277393251666796778425468746291365723574854524937436563418577137889513214454399139342731016227858263714117070672605680930031427443945975760495875287957367531830989552459861089301524518502529479631923767439453396592948773078741717722443553377752727660034716201276567106487914199833561559256513222060008371375472820921236893109652736829580348392129152693279917144740682785003344633774615014436564695005267633599283624139076283397533667875253296808823573311349497697553799687083188264324617788794773095664973952715483559645456749821887173801843002593892115121708827831799032994902105634865526691520762455216432746196565048936992596916727770992132222325504385509977173541477440580561270326294647153109294995728326282639293311372935664552040867489728926063402726748303842400042629027547442969039325117088388803777454050157510226535054027206478873073122373194516531812316329904243443349316336991295151200393049015467584527387404729558486947998659123197894966127673520930369407000882286609983851592319084865133851089092141173386309377947162309164880945329922023229084557544681274836018126104643602984174880450113206016253165292498719702439075361989595861535123395197114101800983192280750138343326537128689486077905641656938823520778739309253945747859227556053751257740349229110121848602680756677394905517028708241223644220324345796818588384127089925683836525144366263654608783856188576780338483538005258322729525108502732291556029305029422391463147386180634873453515005133016752925545212272076660482735031072891685617407160384558042758303207232722655667380720711384123554737739251793517632057195862567741180778451445097922516077993710061696963271895924532803111214139300679466541052554737518442612201995940509869524730606373556542021064564986409773526673164920011988548592024816398601925212317688619935088977129861291938754961611374325676014945239091193209614255951775895846084144654833925689580890850247456078459231941196604854872606184379142419350969388233729307672894778613665491777683991208748831995128334550253060931359173448757531182450832015243013329396914170810428080259108961507172614171237212555581512689675039454191480839368231447874578273290653731074692681731503928923207166753264428208408128485468524490959545595264646013973246424786968727843815479502932452122835611497732751143070355573837493624617464060118630769266455781064937699341289591872042954629206667496665314913568376818973090604249051427065671130410851954175048047932914854100489250867436489774393592673197070008178692294428885614561476231837217555168313511977738401823741965790462240673001419806129758807937686897798589975874724020108020437457436344597874500017336846884822014855473396609554777692648268355410038720013482185461354832553852516689281306817183326998140140325733840450154891290466477612907070116140509376107041660479681951142833566532782693085481991072265527498164619393983361081731342458180138812652289470171821614830988880668948232425880774246620221495245191247000379682526790095088725921821660977487888383016670307733337142056237681054581204615457156395164874778911341666227097476753017831158173048919492884168496771981160492771993803466939669864443609516449616743418627428489069642931988780988272952535381542159249958900734638167483055321236916763535808070625022986459213936957358948052606988970480581952785227975305726736673828227431493982402285908559036759518778623987181061043942920543428594242559250890206172521360244911661274255153403974240008827401179655311026963471693507024974110424522873465764183197557410157003710595360965354282287541013250772641738558892733431552834875511639031102089310948782794637784579833848275021837674991956271595240110040806945812718128107409214245415171183856874118917390024705235954297527085698759257946758311450765314360520456030471438786648843414303542971813987396506616403812270155021739309084679529503338048553578722523797208003576973698142235312100899619369555006759698010064779132434816991946486904085855208207290457701786891954193507424745563394369550185576029997566619330739258837100683048239197241863935978101550308509573905679164277930664694813859639956874233717708704455006092190827726415031589163353114865336290053539468299151802895147854368172938751111515657090689100347534069849075321577182245094068136578821518153780704751087727237422667286073244698392356055032746217622706040478290391288092633087748559712029607920780193457874547236330749946175749944883102825541613515462985569481023715150900484859569163842937168095613358250983436195532874035031321999980997069905960068926224980320540895124684556055557277263188467846370245033657078396989512050265050306070915912744012704427019417614506115788749962633370920701564841911757552224328669139309197756477191309034400390486325492502970553442945177627021984629300748539806537417312802794211024205451018568297291434153936037614306578789328809073449808747297125633155612846202036654347463045164215688641209753110953248905383824672690020033973114263440287558077160964834052125540533084885181757808111989587676759337869776190349197931060212525958376053825062003006383603700113901690043720793097259531645447424127902582585772068255856823565188850809069318185281245627215540850529186794665443177724254749617279160078724448942190090132063104305359878209166838116974047333617260654270067859029176197686588674316201424024980479821432054428672281764918910850978985579458166863937974292765394870011788729970277615358938283213860445947434680443373006801959479806327617436777944663295789165614593964006027436048744588055124300559488677064851400722458120886828801488774340510347235425901325484253276616610567959564538943634041828077337475122897045114189883667907838671211753811912395816899741847455233561540329142513675720588411508538305557640124978967488584192848081724846795582104762012885471256909611490433086898747593065348752983865681444409539217337397211917669103225760105550480077224984807666442006836240852452977085468520953244335481160524487422626478968212649885219097818681245024107314882041574536542774001493360220659921483775643772162007644762396708822684811281644886244461258299863596005963654190136405729748355553320048801234225633541122449244548308844253143493211034817950183153406217637846617010016152441349751859748463896068411738608605437484842743465535100293086968837474777904234858240864588764984680832155174347664174730526717252321967068131207178663698829845491427080320734256351294238242188867496537391836816453198798646489415617961199963092657149686847910429607975490614826083029599902956841948687011373267466256329526606544850176487037926867927897058791870679266535608719457113465461154935737978639539524894439201117091090445620203517414442489532861469318973638507729122968663480967502555854288649421299676039503477737397385448950340025535084486514109327589880853629782602265631194478810436314787149570874198321849399685468719952005168655683648531755159655765279159097445939338917543909673120250733599104606538787149949948545611592167991715222805733006689248094556359965388536131050518431036124634295244093949279629304112374743013654763030921056296476346724943138077796751910398695947901197533774465833258409578433508209124573745186639042820749391280304957778735532851803141582559344099633405972422460597186241260184920737147553535579900284680086512466068581173574557850681943007318718799036281468071180426259678932672378851304689638288066501446810554129610414355277671853666124728917964104414844916060434158166120977762696512447859111066260517457252759850108722899700069442345055836656794776461634454976670189134900440578593717602312626450082180180766229047269781696126954847834785226995185886925828322301915811314899362516213417112121746242498287152839078871196152541393576027159615377044635310861612798956331009331842388227581356862855296733046501767006987821458976673532310488713355218242683787897044106856262055824701887985559295514082252562176009952082762840716424257582757707575752603718628570984108262403863042032742261024525139830224478161845801171393382065797178652804469702961882106937326917998592613512991788946058595426425040778695531699907315797434839369551238377255970300289433133540978219856316007862564727928564156556478855996498239195839975528975036362151637986556272849838881143435263803424785600391488756124029299917720015036967881944561251927913993832989048462332612098762111097113627498074865087643657340785980198310997187992003772654656573405314368132637201875396938081159851553864862475450700095233767154875799760779461333943099461277605153230416216730503350670355118616641928033593010141064684692730220523654994838794408573450097674732573928552842624626070096028096959475989010725827415748885419096234781327671180650263802687241090948543453173274261241273787617106193913449511616447452462778881706583574474224721697564851095848260386544530462202434184092552454121668771641068123984303561436204473019266102486444093155172912922089039203255683290324234687776848463775788626713738373104353712760957427155015229318259701537574896737839424972973920889873620676300006337467416811762251657110176339007862282775707294029893673947527048102628882132734756340236037682141738401323765145688649666223204952928588850930156662736549056550619888769245331106554415918175672923659334747096801760435257696385722395883446299800312803844871495609541077322410027462060377986078356720269030518876361374336856112644284865902093138557286861666602639730686637557526098912060834143792662429309356247236709379367058590774490385757702897488863347605063514020438636638422370821666530694496944878435924867750286658678878951890826209226118665615444009263775124405654590194455228482595663350083034885843394854695195604416251412058368273010189156090588659666040606550453512177322046887913634919724681607929281865120668343489140519440106273517438260449267663583538347409534882990638181083623708905082263965227308277337489192613883989088929430226416360997023277749255503799450574711792717806241603439820850142821562767745951118126596386037740647391365354354539274911522540770301418647721773698344092474285048552542900415854466928456571961047488672536408821065695262441685293984738616681712553670382817783414103989587961553008483730314510314366058465762893262194434591088697029447765608392521540356577221349559367013951059046658747701626033634141588558527568121463084339787030567686760966782017617164975177919215252396140270336338522742111347722293974953713953373166955799273204295517626960448680782729463328003607826338717709101936732763651429108489753658251035851876539026494564937923892841647120379693200347729465375266169082633345388679508362729844817844444087096223359559120054763588264784671074549198734892925702149214847168851841069952583889230980459874418403534202159834416544907933333934165467445024226333328899057732734264968670940299124590208783540835352849551389440580025292710451347879144992043208489887652875312187331603463810532778908575980987661101974567298663087809572664945838288294727482277649754703292626545551402216181914633289676329078592186806309220133870633809805120639657814728649565304772168176397720003741717510329345837720131950496531806558131852904541317271899500449235434196744544789420193821689766034812787729042629565462404769248281775374322460458601906065337372308091412117265523127282334771688344139809787400068561791324117827104233688070508623046262690299256660081900842811795215809361360075543379659933627313352167368234374502506208692297773417303979215650741394869320924181405035751792596453676832195774491094051379136163795163437543191434042690343273028191119024801060707762758243256855027868486150087957879589304924444338358159175224317911109608597684220189555496306667233696159627458754374888413936904606887159566782040287897428083404993311680130981513200199463303511572615423260859638302929197145933901691251073890802784881062570136946765506185760058890993474044934373348534705659132871770595131351686988024755403107060790395558174283425494143679425119755370550164371107630881716227426633810173357201759256287598973184525782109613453927647200409206989700164858522425162645377788922009721327604849235740772055708071592326991175236103055310453910338244118488372814923081434702785931878875506973683898002386744586351874577822477419716320748190891324524406658077881507916178656656440993421657809402182595716058048877237139226759242610129623566032220406818159762483428971671042135925510654350032398767684485648593297588298815207843844745555051245586173859161795166182990553190143479497776042408522720004916184489150603440688415861671042978718892445498458041214662248061963633867950439111571235703283540288887073816131818120209769436565881344643718124121167326788062920866279558801587710599267470288279392986971062201479232465546313862075865198348760193026171975641497997599725846958652223232954417801612644725163287849911535167949370376257744091373893381697543037004628880366802163825649965662091532333698657532063424887939975459139422457354969793268086896440860811249683019346249878131259364661416976851514999326887362349540723931650513870956754440470636862305377660022766765479172111478018942505878329599190901563845184467434167047868153232574315906010334940339639761783229775377447366838760770202185584888517792643588756626599197303969690705053902667181502577438258618557611928643226944379475013940491340530965636247714219749934191994296910752866940590312682781796361807524740097121757244324989150172306010549804955171332201727864978223654888435866035479803531712165918050939118063588737181909196110863856723222023564767717439357011653777643893567721649006973035624137163213442763644436831294005432983205835572281801399448296791934191901674259884266667522304768625141572509523803693717825329569065927635161222875364833055807853084685283009245411025346397817975118054000660435123944156858364729230278534957498469797630331650068055283030289379789520349761150277288840464183528700253534698440725798300023315519342630246530295097506984184288772048896682040226011292958071108293718718885560628642093053710000874816961179718818339172104609584171923563192478660311320536813131511636686574954034720135801973043663403472281936297085556756494664686645785976013674009310105761172440541936357281295736416325703083157852113845291857361457727047660170783741413270120515512019133905283514893218030480244873766440296509781135673903371650642217950259360021515678563416398708155364324333280709032773374672444204536687677019589199552877360157672519334939152575566584743218652939026980917148959571167285550444374649120322634686797198945619119408943822288675430090324517292956436052191781127194083574917625018883172555077000159294899111787106126808875976266527970692272604612053833589899342268980184942411222910738195841960692157720832386663912335837056192789091866889995748134618016916151653902921853732793346034588615443557173009985305020429696247104161742961982316571697244951297289088094530413497330440916169524492165220260747856304632106766143877327966715394377069783740252476825625717088431250590052188970481474004386800617739706324413552794628455805446173773742976241430748381230597058945876147882330430610607100736011801411286345249288657384565728737490484019887155856035115893345185061329716368021916761022269769954961971795640274549381360782560082028118079153943624520363515142103270206384626694955521369232875156909194313915817211544739140939360161991263764318687797961993906675700318912397752513726539425060312468885465839363260538444537535850896017068632524764018747504203984173529509765654606169693957730743754017971421345729477332551465116407449475801150948997775322644426928710051821577644473691732709673567412567636153980713774053851430829112062009877293027773831150764592564345046462109934224091089547575476066351309601475015985953098532817383592465976740999164798928669147713628072190442887292115871124741557581925711128301559913755586787101212776293853269514991583753136990571333135371247708937690681299783729029261183581612782000678046651821847321610434095477689689281489731571437249692377967605863833844592672980893549431027464987060485608695017913507520967138023554662868351609502628483310107107582828820312278905981280604311628126840690457285001317396425684439240654555362083198389414524058271525571162267750121856061449760874805635241113339732825286949113133053144763560312592426034900441125614004554406071838194898549695435432727505606718126751129406658074893229479771958329417426104950030745411590470887793784212900719244736902688387608901519136040852939876479992457586202153877867329400122181112940390448422322221775752877067265710652744794381101007662231592256988288905811007802920058700655505128227458800990456661662421425100076917748917828417419063938669499889303400815465939216723826553647100954217320119178267024197948506328985793652852216140205090820975857148745995390869274173821382183923788079068233725062502214879138860743765477202556810670854739142088677695734026773171976000060450927914981241028274899803585591764722159661500467835280193236902297827979630543386568160219865521159259759353048190370910572527566637079509823310760707455408021861546630786863648074473126054244494820648701724986666771386256558697996843348322647620414317579876390917562570351525993729481437186431571308335575189661794622539223904236934949284921546000041433048315130427481289059107266986391206007804157646881788885202730353165565720878742356517194865903122583998429795873981977333291660016112015697695744949453011326405924721078227510662217521186318463915608981709207822211953486542513410665571724130998571156186755290163278538396911739559254612885752292736929461694218009974582794493265240703892692009067563446505852088753939159073568050384785065439887169713833607522014291201160423458374079677450216394446511462130866497528650086348460110847141828000321104392936150711787042255409371660286366810405634839168023984228407276036924974884752948483476910504056072654400422102220300060853376731429609212671862208136600556353467566733412546025397762579833252525280151434838694640725709044621745666463216492898812205564714272989015445944975499002233271695551739343470804267441068050636380042317093905424614302760481475449219095113887452851675067253552182385553750866175902075069486274828307383135247812222718997855158299871432598663690862878017940136540388143134067307803397033985256568304597815049712478212356439763879027244040793975454666867040390580973360184864075660782620104754350307627301064807740042240625858597162794411579258772561083526500890240216197254947752202721140572351551080750444757935813380170849739175621415711638208063044861022006406799218331814680473825912691219778228107164508972346377429172488886582191134738034040734719138086328907904131160071993588022572031819779346700342118908302941538735879786499653318731541406048264325798511356553447108608615845824781160968092158850847502239819048447350610536674611442795257387801335361533784459974833599233083834588057892467747694005692295251717525418956765690766320019637241373404566476619437087349606483938463177723619118826755069326187327562966347061823618205897258134903718125824145296758340867556596869078403903871911329749696376828741836264338622426756387559751546892820465002770981613384465637000688673735484492912577527726221171150462171572380301275356967729787971317980390510644952792349988745287857291629495622563416257470871500817041060116924779932728695589554119431799006845336942487210006470968840706377672719843894791836899470853327532904951378456220023841863867383887969186162916753398221323509345621425170798264777610747862723311131339783951590620001812098970541431610519919759455279662936265855703737543890331548461449718855254802971715011980765275792441441921571454959441487749817461446352911087675352001847836110741275792869972725285768544173126431756656145191516902565287414542149759122289566848692856272006660523111335035840021911192110422897823860251828011014757923765776433850590949523426950016442164582657878991530436594157145300680151307098917350602989746377996777037732571250171496923487632300436128300849886599848307698742025610864566193420388498501530009971484701639904840685572426703607390894338203015512391393306201871786897402996340064790480175465730184250061080149325967547054694812020850853414318173617879750539155494039019054123033251307592671571514912885913392577054202904140337492650756369237495342219540680927758168608278121076017994530855030301791051651421652990747202079034941871107711079924175124871395202018230515384004278344851286857468659649634446322311067136000762235086302204066966977902190869511197141141434108514318943504152200241012604622192944014034954091718522308270127568874919993125084082296031076654275601930140073847768050028793356137706077104777380754731896330008203649672506002580403579834291251177301198029745937308959785656789747245060904243455298226678539966845434748594006769240807166376171092953105168287296891225543178369290719126354161247092721162250345667724377430537799722720543224505857713920624016851903070942886251483699767400071648107449291154392923698734501673754789739834106348157608678946456929431781105603962040262748993022971998854202019955923612579627018211798007169495232161331557521186598472969412878464484578994814338261958549112487623142063370870632991844766925560467956390387174790581492155446151318587268864855345952455591910209521612761176087643226702894479855040517141214369974332820893446563758078732371587308635882512723804897816833692997393807811731560499252558034388329060422467071515625275671230762490449100075365945620204422914466526642961337102355392857133386697883317601945339360152983903562915980266345367783642604535243821903928516474526542730671975808784272842044866669890190354875819038838512353904097635284997701772144813041310121217928191848899049336061628593679683209379866604737231060965255046947948112838432520550598480817209295621256507829023928085781844093265455626578977831936226522662059165317717193730187998709810599394506792696806342614068339634823925712685427526981727976408285390455800371339961872690959438844498429576533496932252936570692802302677282710087778912106152463679993958487799538788823014479450855187713415217151034510459083813323186010498189788705176015042116211657634478022070214094506752057468118870047914413048992892596804081711410804309049487622844934275727995945342308967352177640339166637724109883988843699184128918217647003986737763740363202428055114415168681305806877974818278020459940985966941980153436155812417924914693251355856019156423851805033828726987201843342158886697742187903436942610935595905786050853040193784694012649831305593950930076915852617092813911753452906454112300895806551104969870885832604970175328838845971519510402667036437173056142878832873277934661822567415535952206836292289229653558875224392923339628514382456451242459559664037840180445797356175091767973795709191748599404481928566226693864372018719026886222730015668229934609927273561976034957441311903443854463595722481284067716948364607938758132666728813369552318397467920928232283396195181424334091331641543204246050221425616027668335043905930926846656916592988982522380698267097244845037629364877771297159155962339705923080111037533188139232821691825574507852931415182671003940293865927277044112165390000706044520455324988810279013669994691072097247382549741411236928223380253645322889755452486890721939301676335373060660430827710096738720426364942683999003452068696138048344224255077047559599018691925600839629535483429513984237991655136720785458622108488787699853185033684593681813797436193484193386796721104060035927673432720067083393648860944486913001131373100110406289223776564713144229458884753354446465682155326623816487534798207284100880560700683470621902427046823884392781364670002932254744897307586483883690533365360949068514475883977690901528588610805263645021704079638535369818440414446578209243982402053045633341532700169044593825638088055793146498474874920946535766480020962441722640662850262567590141576642016832280877219977307634811269115025213649923945895868897110263177564412522952087969961887164103505206727395469445655578082797972954677037047420913643183851127382783384938981724699574720428840876650274626168498232413054327217256843739760095692953336258126940293340798190979080580932001284818122362420202634227783446247235393795598644650823363421859672222065392670879753394201225982205200584633487690559576898775309486153997444294502899949820375864376035554988023084581326300122777604010099565027462617718039622907467076780848273015229024577044502136574172539868093657238960958087335545896443461432630178788384472428599314673388003291371941078678051545923384686325670551576753452430223209260609672017086463045862346609132558966727030725724599204466212563424290754438630507144975372224417395051896961145056206808321694944223482509035816112356397814678661303182923561838013783749103998180624756516213729868108448218878170022684461152816114198620132700795107851723908228056252441688399024748271237860929138708416744470901841872240608921253030129208906670987660929897022178097698453745199089459765515195153466700909701717549985269221041858924653192511792261460359268698616228684770971208364584578973330699270043033679893056141593779203645914396663475082960575320718174953141802513448482495833970197717839518329045010430712493581243806929627282292257618921306458577813139186721854452170891075040085290403146785869355904032978939297509193164723501002326704609957688380104061290434979490385341554437435077361356611627300269059975013247694090548433140339926333433323984645598665776944828677085947233592466694655726359617786974899129403616350238053020612958750099249841355908388399799295941506601193000052785787136654192385576310447255459553888421968393167861814013479877372276430252311124329560769915222139386472080244653636140903620625972292323644458428761295771558664994489400262663136496749765040642825836014296328039162006474875845564592180745541477458059008710667906126889304843211018068504611992943445532818529745860539463803045510334046419404199533852234676110299319907075236937305746445893580168048392400265784351087620111765443431817673344562821844372487040882805479837933863427456127143949557678927156685288647170057235770678850074505783388383038546921608160680600041189880227806974500924910306308045547729213470569761604086862589544550963419827742320681680912809959206645230011673710355983625156767904634005747805788535795280045621293028849851050945870475405994469125166425905191918157019923480251747700891373465309383870522837610939192269520056384945077557187745497029150682080074299584266689505040675901498821796767719733425808843940772399130601886899819053624122843661647160589378973715318534519132003085681310695597597053779484236285919071263343824870895767320016134675190504785467136038977711533527916870903364048325389022434172816582985421756557382036644634257342438191991714720623149715903353817794568103019396224953425678243769519614664730507515504870822698752316219009681565827280530888567963321108767831893319296441353321879573136472072888206999963853974203735463369951575910404773329889485356688260530252746767865777613344965346094454400668176027200040058434972337854245908971718618365605215517038974307275152732220954536679981667834123475556560766166879943999119619278346308137754450245570647857064286289040004904762932944042274851716999092731255115834505298243841260711943824401820536884828913779145416436903330531197663715407538817844241655840315726726234169901358771085548393089616035704100092910201818009528060751543511941867031642448106360178536874547046030742743699826761873772993516330017147731212658273222058738257448650669704374657549589794328270397512593288815499050799657307087245962537791570102768124832642839511943433201932761515901075414648094965102469127615366120865818108957503721203177256138359859402965469979425485416185472525756080806195646745586751795754102372974523294196641481835311988726843372041247442341298133701421116953653792255986381482888614795391386545607222251079350706424973744409979999877982841829797264919352549871941501220146704825981496578466878618601633997530781582291773955755918160033224751785784557011380667444979216240093050518603609393178159481270549513693659067672806919483740451346911768410014793714711998375035667635422328403764303991679441786750560476950314723728054335721501204102362544324975580078895371384980081982333205603264409232299115284883323747836057231981942156383499078385237931424644591384984533678678620072302692313776312844057590336788429320844158602701356277307381319146328633273128227290970983390584235234041146571017951365638605184056971770381980353505654206230359537188109128113342340541314046459317405862221460496859401083709104907917285529045605896912463282759515852676944664879715513534233973422287266753980876404645900630510641865215553250444776691824845524523345904905297563246167988668474572735226058499157891229736502869555878697266593453792630989003374483756968488482058925907596879864377344397000580890131673694083581166876577396675941634628281676680075764189965677610387804649029045600084346976619481762139795913902235229438578117393655805846001889209433429546092773256302437967987742737867752246941134403389945414740753628926122979277608151142881443649571866877462914465852858296010765327781126568183284334450242021383576126233139355040087443435032368738037355452721826989855589489313457719222022610644916795963706502807746894636550409255272392411491660896618339064516706541011409393838618240716473856627450427052044373417016592179386983349228813975844774818432105396914216002314044297966852342599860546987229271656331198371653942360672746986285533657791096415364910464699318970708647779742469809209948291255908285606560475427739194559858939944641009450193213067721551740296809715956511511121567788240413829484427210947906686016034171650453733728636638585570671441845197308997533111572464003581816294619209290280842416946837015134271272723122656453600623969175725729145018962782044877464038871258380132440890047648666792098613311890255353722881841171139517815062920664215177347023400702674815534579693613669962132272509122356452257398846775530953746239082706133423318603995038674571416557690173944446371092658206660453741312388668065539072105845389935149062563683746824947147190626572833205114962878235798718226390657752946041014712534464824479511404757510017449739641862653647610176735874857991507211842679162368454290587764944549237516945605666137584242465651522940270902073335354669077983978183911872728781353888059551876604206412281444354290502400642351815325423469424931659457378036593148490838023519529221174980749904349523711164439290731188082888963002424588024141971214978435767820634102900659414003933232182511464978981788207894864918682999296292067685899480138807337933063423533308274349075768836207883767748215379592154825159823911288606944531367257734672360847734966154776344694859906608153388884541965903179111035687040338235832368564339758023700525913796780585193896355971639059453221442509793629823711244765633815194672514514248857227271260162101512189561471963782410277979147595887210693674292711486388371947015305295446870395538297214426129050657900675445821213961386949757515552720382852512552559765557925812533632185054889801110386004627986026958727040931200767187755526002833416732854305087024816695894665018447828399333985026485576686192312679393329628207124964910602877771731538879847145226268420428923764436310788857344539685372571420869148105663198597055376304307307712119635457287589511926127563258642123639803200363065728511497127887919123880603820053368802761176445187890721751338000275041652637607931230517791344972196902066935666667329684062061535052213338310019092035047790332625572232061725178853955683612179299905072212138482060738984583151878163657044026829442129501644233901743933118943253561383166221161427000993846791377985803461550014905314498914356300084968826918011708979229787902246524575202827506715649909794699841596078034210040805512782828517384586733927851476930316511739940311380326771739756222963166051447419551123670248536627307965632955461601090477166972955725136326247443161032152599480737921135111441414383071131502625837338262272719713359649659646030780756716940162120446657324530890005685167512286946609587361180931188463624460100544359958634253255636603244234750568524816258284730110992572733890156240129157593999186016848772588803565645792100225496452645504191164316120941090690748928364983649175718581511288383121332386088978003541840850526708224866622102114360118084258928356597781652539613356886598595964836259662834847579185914014904341341924314666087399273428817835698901597537143952573576863354280155439993977895937910678731160317283945212670538535063367018170925425999794327505209445162118816438745523732929294841214847450061707025368669001897930622609406137003501677998670520953860256855405259733885849117456552083306972270914216266166343173465867644707004784465363661771968436275792051572394797058898008512485825572317071982722090297021489753162676134860351219671098440453012228274491983396258601592046411664433025039568385791845206129485556856122848476098432104833753817683424248664517132364749691673427966563425746352373766868451846652111098719963014082067715517198719152900038411050700305909349826381483089635256167904779305897275709203786210771298538056731869332126282873158478286966509814191938944700577050218518097305793276025801043747829889836613038484902218464760363546292624522906688226306912219053157940362178372271187311573900291442382817487831559954673547109987359098859580803320966088234219937299044425902591288159896005763278471266919645050413789812354311574576431154102909711113024171244030358233259645146900181416276562806741153635033263115704738425331126019330409326159526393366527134699439020355015737473900896747094736834157202425343869272936244969125034289584138039367027043850027935482554267721199292468629210147060334771918759102080751272612118436040787099560401689694686495304419159379653727638566660831701476166965963309706586414791343729942756762009252058319029198468663847866035958154860573166758590065533834306517526741867993979013760102892280082242921427369342565538664025789832604677527053071253618537199551922270879797483272277025818853854719292925232104428969282675530191358279859890138392034879848409271384543246114517216087268721272141908951060729207948598348493905833453206827827996157427541373366463766099929426986194168150776384456272623705235929970508927458872827628845554144410510054235455051304490230219793648698636455160003590923972665039945075391534970984059901368942808537690705421536860660412437861880590549735472922953196169053830206268777880862705981845381434437605445596829201890034754679325092513610438907605357664573146883603582906898487185654955960565540832403132607379154064625793716175231849438841899572416948043380146277298061142147615133495910256338078957414613430741690612096096059928729940159599283346157354035709959606578475885007125398706250989134325407912627864822538224533096969764507009117301277109146259006456084203771075363347160734948380076733516570275783862319237118073828948435310339370913222511532959052013195136461891239972620415033687429294450159874977658793816253876499778237588677213004098759978967050776950307840394250900103458229562809345865887084226885575608281221746089011650640598904113818779588027212727388450328770001129770197457843865805899464636998410980596516935765671866980258278571251661728783086514876687996365064391935748122912895921637745306445055844385430039143994344275728731993120177205956706203963690889092243411497335300831086662603686735480926483664367146855978057102577590514216806527124751843855941313728975617488903645948497103885471803826291570093540964008830124936957441791522078329495609896666134573136280168057030467049162893057010964680581227093729703551055555068559978235462615657491934617226209969608612028665381232434743059857604267266237542227241943879682588784303907568312965988282923448644598599530709151622135548099833284817790530870240820844866392264747480747403045433686401857447082821910761423410523964795578936669212732783728601199260094170999290545523950206960225886488611424382294104508521221473829551068248173125003928197808729265911959646427507379960847796522945756318647551616352724847227128243986432449049637163751097626722746601662079262841711224876536966497780259147414857437497729858109520783917309362770302631690579131224866054796898808061385922808898211852584695224704999084670056485847217023843818885953379423779167265530897430605843462582872969899785614628179675903571058057873395503595373581535335178768373636763222402704991625368226739440557231265730792454677191876069043162826991046169100758544712325770922256516832046832569030346259903128897252001751688196440235193858732639932075282781701203355008522488082464307644629266424519979277980680899489735593896298852168811103049671564945997088200292217049897986881388088944789510432884808025609037889596244056001820576450978809575403357065481594167449632696606709443866657578826497824189090597046391321087826885170820879136918225945272180966202088136096331674514317746660800015753256649300385522093449327048086341136222279637492222014182969762139886261759302026859658121648650330479869404985853280603680499691207675911996714674034706061054931031755929207344781310424569058649186393129211766319650844981681947896395443514186203319455902500169630466014380848159602030000732699181100654125684239205789464945325410819967958151144932022850397380578371955894173145718801323144017353086394041169074263948378531109916527221720770096844864517720291092736459401542067171774649974765100423830386518448691506852042846815528710568934343965704118315675751270267935824158263381222740109936159326273478479382065412422382960309823878659659666356759032935011098783681864441935828325279156201275461602858044720410439465776463729911514793322426685614770132844224877524213041073896784952013668809254414988803245997074785329895416092436601361789586163846674715326574052828051546185445123232574461119524004112715070043040926258932349720865843566999976684217058510535760829492498468315470107616106623072967805971623422884500141229194731449641002991093458257639834744641154688250360104064955368445015996542155780840192035247261153549841718286081262854399483885879252086351709178061480404487180455731622484935212599791426901955571696888282623021365875842731087244688154559007684615052017702277526078373286002494058240111579674292062776937761598928321904746780267600657225995097649142597291260157843833530007435260006264594447240829775353233570819533784489527170450346710894630313176710810136199368160636222730590829327679103426479003590727510074446467015849540923148878412016705594376789390690020343892304958654748989396826805033172070315440090256767650365097829130461382187055568148375587819179822829441987528115104743858092904990709910635080501494050542555419038594686799343364868910600569461011911575917574718755646403684776822850397216404440971574058528387063962635117087303556898589873403523816302096390589790655613955357217775372263225527076663804031775618790956392209312901180310266610398896222466604228622981516474518080191295680755352350032546108356770501256090997433731597402165378397211511298785776167855194120441625247554157644089459532096458521244745751775176310995990331439574102892373045843291484854976507274376410655851430847747961707424867690138776991911297893180792668140325431406058424258402284857269743739921481533839877432885084894818759213560150242769707276088591792701981936025158604712485060357472551621806285856628804140935636070030952273225994613227512328605432321748144737002542692973180588583356539692857076842905236620552685711943816149605103615059835323799443800119832976720418878555826249162054202942527688509660550210623489292150933156520106452929938311920743232978241111541359442583343386833678361072350341479863287448857865106320116195955688842514399789361384778931104821683158323150617642021048940146923198466881060410585933923175167606738405468824316859101171154887763904249638274358845620552909906757615404750644137263848578236723927949769035705888173582954493894245049408170171848525753864112634192650895025829281391574467840354509893746768951982862764578151219981145544569750527158227823335179262065886655998451573375490827027301402724660038210284793872334697622739475162784115892606312570941676333527406315502975125923980220164142848771985856113168430191655131440335057902357749917985219785989577506705092441644381915627179024698505609865408404867485952663177889864034868143377152592781109792208449839065037034102141755977022408955302160720679568785678565859070808641028742960620590081174254714637587942467608854243677645862860402903747957388187194658704358786435761526032123135497658172844193243997775925812813728435671869700483294759646457475220226079484642253095690080793991881624840203941129193316367616654566818494654968129650228266539294989294991825153060697228369232711583506882920064341360898080162767852415677135933990683990589840689383105608713748770308456942232243489611710893084550240038376349765847939389066661041354241626445505608721646565131747437026574918503144839194291208679878416628437084452440007678547613684128260331585500178701044479698982582574447525950726425584143871437810572937063176254897266042968166489094046627041154224049856436033258794570578747869072687416799630128526302300780502830841526034929763080362282993100537832567273330716714572258054869984579244621492567702668762516257657133929402762656530478681241520890638822344406414186884745493218559857952390122623423231351718416175729685291376607163398637632579610529642778045672963723714811080768257108835711919836666821358542525269107152192910721813553415919794675947255031756159588283901612765070583279060879600651201842267563200467666273460072887771621383054810160770906498178237895445223562662618609451879759938689298200303540354593331774654560828726541452958433928156959090476648823941904843527050325863176591191561274134024453926699023296337864068790223001519333649318978780839839749482689847774501008364171415517828692890511946002482200824093180969174076746909052048214366389580911227192840584300610107822490913801828835725205080260509431985040436560667697143737779205712023203390340679696208203820246611442685003406985120011879765741701674648799720524779434486399928116456783324493256211651270813181335217735451078123407990900109593046710508753814515538260486442835802445185683282215256572520917335332314495676613709831198836975613938989746621949343677812433643519999745730027511890593572518119087393136493434543199013066881381875046631908622298095141705047044502754819634241201557087865884026156295828837162829677783377997204972090950780589100596489939803464559874416962591948693208094169639856829016016045740964134247154676283916047213727669484177735555821980945655131607395401548532375336127423967515757680597910215598474653858546780832229396443040828359875569127420026226839511016256602755059041781400553105245654517247774954160814687674551224323765493611007960358903788943628352339523132416795034242684738014470863061470959199714299108694199153477024114275649445148339675636858731658929319080677239968887903440619636330971159118524148973113326350827533038103871369757567676731406451251343052549720485151591539645547492203930397906054435992667205088116747231280959846106534692917874870786877413546194139229857720001167348541601095365013671066395382969566492505141531593324835704261240137537537873568098173411638872830079947361492313084363824801602436632743549673294027276626167134281896609133542123784932413039527238540162026534280790005706206838427043209101469691564229511217275883172403848384564103816940563212584217773252494183570593411212524069530717683085570567150186291428292624486386065233910912824008007682854031543846243242694288616215031298243943653385001179766103306318173653207901515136533309550313894207639682801780986609100543890703312924183493792374528174260779572914849265351469406110865580460123429410938543077368439754836440338718972057819642807746674327145852560593158480199972616683977376611689548162127816100299771207567574385677480633067304869802921965594457736065489927149227448528635115675746939606877246595007673113160375902621746046550249050100377788315031791640386634041762701084612119417388544227252190446470863204667109226899161357161903606142454964625484124296434487067325445551822371730979888969558178335720170921367784060979422917349901044361820843672670482136243744937699045247622099481524313638955324640924918835233298433882009701951023746592776945477155027639656954945401510811533841710384268506280621958764212948336647929349147893317937221969539316384451058687073634654168408851929543392959166839940540506455032144059850104995757684235438464876672373432486680137144671491776187983141865449793386452978122060448381928010761430845211099010838990500158906479932071324532289410739540417969136138856316529239836928823979839225181847302947658999674821377167563213317374899813318750447624169887474062954431529154693269184042295866417829817859316525348364108123031981496680932351580625521600737972751444176772135353587677568396781454649445205124143599012858538211521400274053468034809373382961625738395723143952906022808340162292798163193372598494286187973606828537689803872989132640676446503245474447209988488034318304091224014740799760633580267430895936639613136602345218795180180513795302992127545681332105376453363987892082131666940882824231386284635350729333579429877670938171443181910126389864158015112740733584169403632689678120129852128728401328146385361950982161362673612931694715121664475933054723946779966669731945990488327160267286347098216569323327917397244727010363688209751215333988161926030144851264695182687539628847266925256134982913567150306445429103509588420662047144056225690251629980375296116991971072643196023564749098331094626800430379106481671153137485298584152515295369340210641824616289222551557407977200309562754274731685718430555793367703681797432257757127530782584218439312135159528175014277064702806707517291602282847897787735453419412594517397543858650723264610864454382072787181891303371816299233487080498990258867502926979187587607075849113905948795802302656857366397988637763198753343292025996167933826022580078279140160650754300341250597338902947676188837118568359414987114714883459669481297186916565611310030740331257092456093168562610003170614173597131682278597604603796103539547988825649681552195876906020390606342077931196565961938385678856629924166583783469839600018595632557543082852525901718811311782485003875412556123912435235935146555894286577087667557806048677001267750275245196922870541589263014301888902671906662267896434947736852422397234079354885056759749509928322943791973046486171724104760848598140604122080759469741596442507348208049289951017192114568034828903008199656654688586249611576794277200955178713716674176524464218226121121947497277475352880719656714993468472422464598508599296960448052290040993933725083030639756548958368707198229058677348406291494835458896307660862722722997433274303619182338080431527000090486265019285384276280813060154096849784305309933781876895202756594192268346542190646578101459292792386214989959858070515924093940193913835205121134074821019750306895505115783017529543341352966488902490418478879366054646902765414459552457544717169552525095558206681206299083933090331377513035859640521973767645199709875164331224091312016430700854863617676952697378542970514245454360695557570338391723686615862946479310640331571791645909620291523595130831151214906030696146186914191670366137876194457932661758831954752124739197425582016421352388972184833960205075694498316372691869861916545576869627170220649080484397773969109296719603974854868421375639017862905707182122572678268591520279330983171785162245379639964232181276715910148024088516762553017336668182580155607421719561080736997723859834202506232846477990358913932038370275957979054631048395782583762560209654404272114428467025813515424547846320202114471367035314796102046941462294862579934084566047391380267306863666190949912960885108547590693455580042845249963334583979655892000238075647846521582744961297268165515064331729886140264955593368397858039996845522060151861324569231875202377092844029021409407312176578156617761456937214643401287651100153680143443504513585275370427851474612200729368828448924997077674068210401304141953339560639066744872775506790819890370260662088641255571976234694038900526649514261779735966008306111076630224731618303836223791482371260818699673147096376218369055837692877590049591902145505483818337461825316670874349307842758206448586768228123671944143894797909655566769664236844090196103623143790151579836198961333869875077262174931225358563698124050897750504693714747736482499624355764884243276927170890255954119652392127256518060465629629810004056607305042665557932368729531145825163338528364027399134829027152265699228873470678982331206747815054967096915058588769391162960542050180218357870984859964948382288288585575460678246302806191958485040192442802699551878204128248611623322535788501486011607657617284958787654271722085610434627863003587329724680230117431388637033892027803482228932625475965567898532812305609596865997873182223764915239960537028651825792750611900778127918227575995799299886805259622609460667550292270376658825176208597323214882081292369626877245911127374827836762488948684442241316783607308028854381837900797816311069564679636109022671364377105950270797483472850518975392141638710378959471889010146527434616759166872379425943264935996153082864424138137444057615672747318598224204558834173644015452528693658563705294453543371701027095596999007576359164496423699579542043405617727846437121614263279067847675230112127079908151370828124135885935287179743731772487689797665465706763898054302749833944137525299012380976916821414672508559615063805412392612731352176798249644168987886374716080373509423232047192401446047653169195457035206709755317954837757164932071762412738668491414867055991644450583688108292406733399731650712396546263139344186882071856074913354544577341674372155214693504219290250898704642369099392498940941093177944699081430981788263765809379296556481929204965184567847190459608784882946949810692317099497192761345246963113386755405818018715054576872609856758581248764430863086249019333060804270647007857822237306690060781688170838410477529920019406532192760231982628041581357165580933935918956590969149598590201491358085729152023191747801648778885298408354759036891995678085203146128828685317401099586156812242963307442752470755391726330033734272190705861988667262213859125293888782748002523055734404235189268876470209256370115878835593857883329061431912384455281336047147171911235362969614370767928081169848267578657657135250889757686565397222569154555039435256968806661886424535296083305670775768309067169433524954966573202932086657279588512766460666551478147068397975410043436099233418300277156827119807693032372798402780346088922516204389479423057432572615107253862799376598055499920609209897511924050317708648028137999592975906085300091496711521778061528759281745420376894098037601998872767977893474333479883139893251026601141739417062994453057901779766845205084912121218898003329996386782009287895549027818496119907408425793276506672869284089790193089462215004226208404358824189161008283720541148302994794556143662221166961044408480049702258318450202258668392318371498816255903493577954318932250018599838236711948638255400815731183505480364550679294946839340508080109321417327209420017951068175233966479128917979611405118633513371328133982140226208854152996945418513909875331490716444605196458590148385619454107400344900063388356791290260053861911160876532818636235743143475836894902935317110019834629838615427611128057528303063556379598307885837531891457759379920359906780941439710228976517632190567293138237777178976717594466270026306399077167591629144384420781877659879819930345158716849551464216834280254545816689458737135568714018968157243386766337702705020811579384846717757403896869299237889621791323070814431184776079637666868219466697008452775854036726345267608328345367287689234672518799901309143076988364409076770180500643943710337179184011679290472252650295602679801354592526132598978443038141783698451626058696360460168565480300704490697031751149975272330750812452413499930215332830717743812072963149179893400881460906291964411097585568164239670692997216550143578050516126085928147454906591891228585415849116479164423303909445417558371725853468922196511105116466416684085103118634470274107631913955440012892670736816989377778190087025789298258519503331381984337970828536345243744538789292900089801327286589357846649225794328921464720706536747834496804169696452876112435259588887060504534144267720759264374419798089697864461881459659170647042166353876533375538861699006767775279189526178626174120984701912816408458563226041600068161588374602611737476772723743346146316711692922955243903666469380020725352858473251885682068889997832679110386601612129466305169347118057186782471899376354232984644720682638662345856136212189300429539165598527882292066050769027387848190917242523476617518567163827114715256674291527519346645568549025566262231409757921829597344405602194528603655966286959980484522531712556878869050657132240253955472880717407956707413472063699617772160532201098198484367870433270384502883890727121225345367895295788427777719365559282993507985240985244207199563087888676481646366609098897863208491543055377495636250839044668484965236905823729450678941793418068372826815814084585761944621039531459214178115127442888412181761931834605865510307799927390295820794112538177398061200274058427905948736779004544937601406606140024617004194093837557492891802767128157940498529259163955903933477408748148191478742902901798796660616790759653048819058333562279794667751941471709455330913065128240043457419041274288536925832018654248168476619990725696711653025176363309622588569360113073848744083841476720453471471581964008555899308322475406285914108996272725318821809437843449820131358999552286518026622722817070088244418023041353544947558354354142755631755716138366912931919752836383273556339941448027398803142793159338600319454409638233552042854939142087363635624093478183457162398779257136760777138268255587046202191183813572600825517586683703472210852256030389973750545447049648810215820865124933889919321118814146503939820540342940273878664753065627384664009731013594036200998018957057296609226656920070686534235282959348189525445896738413749245344918453244852671689648331826577918307946205127397990078102686588819585676731795780291641487449696984725245069764041360459594592031459683128539456774618006055144579765508693314500250786942839222271789119734175626862290483048687084052562518609451816855170157076901213587219993555391078482631521088174802953060360819311021978275512234111580356886926863922067310873440305996557139283569900947680657695507785715495970563143962168668014419139419815648861133931514007551229163373737014607544477185619437502998707790507658661344710611155399361625782045430572682644174074446836913220474517541859470753347657725164480141424292249722710500489549894107976696900226517984663928397469715973984239069611525179265505261225430978630193597643657050498914463604435488582828322701114581307576367379067229712331304314112797997284610201755703165920335940708940724519012592014243706546781459444371568486980263012513099160844197117244523794373580478912392942702247666766201962612188284328757069520716212181661923030724783584788871480475968309127526185797258165053027660094333411748442532307406362529576005045261840725832749115677179388884164200474179910791979582623131224654756532256196064347316588865565390110630125491870875408820953454925562799226671140980133537890773387185182118207314003803175788202409639328144710170649524194496071425401245421736470769703877075136666383365475294300288011287228327118224337093178752354095428332878386958076936447452907162304208383911700210851613211492990741495016128367984687162072205272755850328530109907124386771426856417812666141324742161928720450257481948093875730289278490015164977223050570337480214409054214406504249332009845083417261151058549728377171428238960604607711739670568592342294018133222767500074024482843543322588407175553068478108892374267120811581091095102510787594177792365377834417497885836539697577397783793028078665780511557738955619740547944310351329477816084479471447796459868638465588564342013957249982678297809896402167111536279140569659331094594938539988794677459447394223510311235081533626000509654573673966484402381969220025990636254371509016710804102487463787597051683463930249259093139036270085030945379257755625155192318844165667431581284213684566226201832257764250150875103870817726528876750405775967555894774628543614070147612074889484506690064944195546092606078920175956471426600117410430798240796200681395702350212103947430570045453968152108673748161858003823113762132076426802650202122315656214163480251760442671168074731932344620479904704008366343864339477632450079039839052295674889591000185086857096698299509032053792629206147041380271150328358922657524601757167949606447323068534534345801351649264952541091216807589550792661223107082826431909045652100592679286170953088221313671738550114208850317566354627731046842096106189997840626453216777041746010246842815433729719472915273847335497747087419535750505327974430203357874188516333995735056491161488368661552931773983386829009689820443148247041899623193548311264066954234878924948146884568899363527353525658531195227214036144827856753179796005602380850434246016735162557730921080761153661081261391054321100667300337559874660327121634611917629296521215843959193780297991542195433213209460252203144612007722239851548894782332843732952622870026819732075568761340666011054166160212973332650862608488203395035976306590909270562775240221255338546722941637969164097828403121438037888764465924372007036091895101129998873412104490975282894786112336522809675876925827786519733722388648606279550557420688305546934325993996875235287933217712724356880196122133923908210909727424088165292330627666680448190606690958228331659544112276379481136916082559181937135615191653279110949461021439976635380389780063910036150359535456411686702357158973049597180545492705363289876445936850331531899685911991442564855274973205687301859747445171476201324123375381305251550573110455504883724346538938259394618209684714242482052632170958414579490317655042017481127939760018298232981817861958032525976509431918784679687253776991084042683951758963247611144749191097696575183222296642720174166348633088152205221194325501433093458160937344790864782364135292345799342107824270091483279762954233877747308380495489482111089662954947697304349596236986636305255174641623660819904796746450363294566737659742583744828147276700317126277706189968574623038224028589376156226167290035374236076585791193646842598224889848704832616482317456020681792509459167705372181516479810029235050007328806570340200790918702398613297219754009452230974125602945224985619714182449396869434035497184876487280321639287272360023246463605759702342133112342989521684002092780663756947563700550216572929240253289747505736690187638723522282492690503892148335542263355018312459718172177811943191421054510230381100311248974370215497256129174212006400202801444562976287277345529322705132632865934439345709978627944338099504342543462670562047051629994629969816100904892874892675037149963406060234231048731717767189737550688656689297477552729904837404425751496099765880895514446382649942147021464714128850160129055502324743657563067586637834600439555630197222661175148112028241363023152471908083745668390110371756698713055192440984474114254369020384369590651698078869092580711737959396220085760127088660440472128574822301407282566595645107983275687366842306870258577409645344803468933672282034035612232092916944282275956874751622100548394576458341037206744907932718585650395245495055438023509496267689045210274414055570434344516327359013480100898592875053618228420195519350416685013689564703445396854570165293686483956841765879133741135762432412495885353306287922258950151017421399485264557469330653048188980047453979637247215207601560423767767356535120541860074584574338321238475208634254683203129109036665081206449275726766820181278618896977670374617754924696543729852669449501541992058327670972979165708989043567128037180290943624179600193562421198975682164683156285368904543543931052002998992559283431006343996926514648332752762910481670663400841112535246170976337326953062974361406014497288369808891706666908324453690529788370452247706596589386495230950128325962587942316810480287437499731421303166918888564269437544791793008325569304999026174450876060227316841501382982616088404702959540265805095743315021778793001368462852095678276642375331036891449430736515643317424037371947890645190875076073620067871363613020344923569001101679753168178541172416169486227345493350053185575400365960715616582434138009215318699909910349329892739332866709661043081680845602769262345587819428202139062134300042210137996073594295388337997592217711073891315623901849098862275959481532245841351876940917660765224661557670268105790661826398219423442203783704335873812368716102636429312752107723965992780027257476551156671201649591035791304140249779683079321821874512774459296377311044353299091966555639002135531961243918280964399131644290212411268758023114903838745464605496743143378767764128822720505772440645348856360772907060717910295327037312280745004529248836084177870829116839959633789378758024487219891218206993822138504825387946687522918418333398840574215056722461127084987059291029318517549950152073012594667395849428233716040963391923656220527823640364520582360208420938402055662223930098822338514328586310260624519623144075530653885643858715060618293261443485161662892333887664138432664679106673298693682912858046499146729432834176292222114503741231053811549172579931079143381179386697403258540181068693854415302998013385925660977723562889442875180066757351894409882752620142208057063424156033558486862068850473311022926143250457891356624832654940542065665265656218424466046063294677423168690502403746047981356770043679183464986437603990874263377143561725059979875695647679063108999214506168693757751062928186341256385115842038907057409539290770340385635027651110784120861867760216767555069649130303303908332872891120712069439575897119898310088343440588320633121908743691290271460008320842317348596290278588938585398159586069773754618015185618990799928060033118065140853546457388448603828167401511822267738139649052016799234329277775860230372773763874708527467884747248959423540975180756177588177885587553000468412214594627467573087008425772846278091763294402248877491655176166370610785601914893144092286390013556378062759043614688305862690725014435141766123014969244530610507901542015301527618618454829837500706164895504900923343955314307402323657935324917302303421432622745801320711294374268903708406512287124101336501485238583970186272312241766053127534531292408972432868654479588741255879430698137612091383508570060869504768014105216173931067528243465874537880152570737584882535743862968784099430066063682018384374107210515710836978834481648006686188257422100710232692173292208539206411168409866460178193034832122870041012264103669888730014322839969968124358432253928744318238439288305843943793129549943428321599074661153998854870681422388993135389910506906786907742148630548465056297081488495391598474073682104313025472844849801919825062777694110491637189367381995921492241963139176448296569069604736095628092655420707912419760482650553574251657791262487162548542963367520755510068425136087265564677756084930568781948440521976964346688214861563153892733138471897011968686844012811575551860533910952674972152694749131579835728335574906626074327924438405427324761105094581455268068590736732636632109775924526166453377566623845530307072445459867563262126995467818395564557464675470203524916924612361849526825436632486604597782296703855689407569902849638813515014619368179476709410907501453949613712751437926612728192698860701143214748317185694162951743374740222592499599037192104261846523090838149800683427785548660094391152228408687292630326913602204643474865873224984600637216628269366930195125937627952260189260939143888472442221047181968366146830109546297563682576341262245049638753526525436141647064872332862212547244697504593964049543962067947231740057889013221941317232105519151141967347884140945375295354652330922230109718313658362222307889730782010617678582668071213350558970638401875340645262830759627761549233397194600586567370528008104202782562816181047004856030381381152516593651261500122411717552902468013659163280332692468978652186779919288958259679668567703616659299042983953521814607324972827112773310756273817659251991975583331995567975229228327779061730530433750062869404748486694523329771541589119903347943380165270901022014667853247051870169258328390517166005599395921833304123441196522769500345817562939250677655993367815867980247264593610232317276844114542907692954743940210121730656738398970322054921672785639903335932313453798829695629969832614603050279577113874005310025844477954731702682778987980344263495846731432755522234760582648423913292638252769978291436262699330485159455213361796534079983972354756792532787699209984352983295757274388082082141055966074695144084133330384043919878280805360033536772530020828352541172435563465530863261788888771039093276642861962283389562353987518408454484682495652422529432417629493223405579779159101247276489399808640310281796695929081227865135086031491943861606372776075428835259815402046848384663289313813049000161061031131811446013198102158160223981647357376936717992782432985535347515777312626558491040752805917350014774336492343460493367715516643463803989983256229224949502133774561435844074237435631501251126224525814839716725627721233598400812546484665571425625305484912964277735493158380220459805645393639045488796273639877949848117790558680952402344303976132059005779029695576727814347632058276065170178711253890533019249234324475214974369886736868852135066682309162323171134501058859874363055468365960052265755947889954448728353709466445737037041050632738115205594592043041283077082861214584519388329886856090384882759864463628959928459822106826405006287910959732654507562905488908369991643567178157946413488533203959818611147929780666317593345481474956182284346605355332011987482238278147804594712518641877128003819739093398296809402400686366881118448478613245784023361676537037675309673430375978384091381451643200351972369233464448472488105431257245540416718312880851965733089299958944197599554013008225816592699307132993090264747058579741390308942934421143929035938720557991189633162603951667827673859120486301667471533739036077810263592473194856545232190170975032739821423914073653798564741886085162175561573756740873557746535713020750648197534756667292319429061302777583021759693605673541952752416311126228806962412105370411295327147025767892767376655738584687473576030226139627369247818606418558007084203189976527321168303518299942205616529188927646958692176177187511082228885266013140660668269350458130580411828365552457959305117257894705390567941699314880863204340463391210928251224805611531845280136458264362942867757242875283688284773153842478837776028897472879810705439286242517867682273967811516423493740991588905600825187616099526816026598221469079774036592067648351037249459266553026073939627150958025762382141700193318248317732981927403901395708675931297554093284014695816809724135084513730558348262035318038121986822619687932413017192347620508290024166265527022007759062904080600026022384140633840776870665740901871287416691444763894586234006223542507200278975626927675333743436717077221561244565835347748042382817421044710884829824134278206144866684735920553171020467074237167602202710008090713791153383596420715333381239630814140374206916699851806325128819305965166559990279526130288633659438989811340292297143120850990646570412556968864210557019413074963101299642579195679069305259936064683350389320325224729621304664779636402231744579581766879464993864506720741633015763465425070996519965005707124316677383127947123305218934409973798753753067927214656564731465353725286567639053967416525698641918678261366330646124640140776596035270402395686315163953804110245775545159831105150006505717534744864439225519782711826226301485675062923866531994992538078460368968013256203859799552782385564238272296057190517110078677191692159638712233638207602434851185682787492459452902797612437690777106489361537377912130450367833320432948532374650723541913763772676797790997982983135178592393375852328435248823057758767568559645386317368732344945726181623248469364429955791890683799575736918946899688853112593283651124325591208288731865612384008567102004734975122358923615748111836618434223238429934234409401883935564332103699249522210270037427770664607915479947368068691206080821578085394114845601769064958266523432242310400562320744650886269461586292752559875668902588854874786464947966368142874787263461243019496876216647826474682145397327010332067353154629084727278661472109622149356080341879779308863648054794530891960075933616260268324819552280232756310960719619274212488468949025342561867617444374466188975342885540300886980545924259241378104985622125901249918683133403351478728934637538294336124135991763514087250342865698230942728732405465885261388452125167347237255738431930292095151743152760039274458270024130339502026795691085466525107362681180430075295200427251781530600919106725901505327169702668236275435131578187420034012318457042802073947557781293803427229292611176764012239752651291992701089971258382718474381093900422513468483125886214007727503943671161457496313824890861254501544708135550537436516987205928974008599272544655916696253247037331397353570343500789719729167998414967247878154615158267791251893401097419256180667874720374909121620386298382665607716290517616377892677808904984766131917320106179991836120344572617149224984079080265442691496938222305157902769687213408951309140717880620275536818423039725061567137004065296176677639427569631865753809325267743505610831316104641295299863233890109341613914474972262361463465537953024151306441040030764176043374712334161190088381938686257557540050754797645029197701443356390973216612739837413280959328618126000892460077258143548516212280961419704436789275294285873006795000525850181842421782200588613764064903064181156507535110495617878062670519356182407265430334410092591643899846202274482303053394859166864177165490122962503308478607017081588468729379043589550747305742994109348963250106917946200821965315329295310959889214004583575555644003718952903717855191604995120814444434695846999921540017723652443252815951261034126176906832677942483730416109834263243522168940149947225784694724766769637034451735276246062284443562393196562783653247837398179066203886720620325325163713392181628743662204112198642744327988742782793621261129602539038995497094662885637256990284467242926462520630778808592731023077432634973324082462102832614910228853286456439869744403010353243448456317630587302967505832345136490719252104995569823035846457911041896338229593056786717304794333257080048543705659997369386573224748145589038658551149115284412393911816644080900657622282317722225343867962752060582361407749334064812785911236561620878046824303414806878472986481726581888847620223267485474238245096325501101491796118421621297386170089534137086796700515181454798949842160591710012414319435364057445899695342251855381286736238281873434556042785121067953513587184778352468305167420470055889899028288870922800107485203148019298011134641893363066993009913751647747218169923258624906378561100896459421700181750681425456136369567743378203957262036643236933902367215436599182193463629423356630940816342681230643292022232168143828378438437301232617165649912832537463496690294715059250197649144792374711711286135441440016356857258326224454987459126032830372108184086708870468193922427462961321641393538340014430674676489655937575237204045332342130099999603587650964702938821886170934275818828288698886050326083213789840362986705059016986100922343569321468306142500029380553940549583856815034699631198313987980146838484936820192970463506342642628747411696410795828992994228994528500128512529233365366006964946084811300848708659635446360624377322741741158909847456293377702110608461300746399378537039469947970362884253845848945212231589440644661436152263507802436214147089007835071663362287735173541309565907548052789560861605016412303236137219779183483545815517768900901244384969583154014463898074210095667771412283023060889735770493156494939986464643492836633919741543105931896741343866227942539463210861930596733675842666378443307909910431528898405989701925432129873309002496180390489141694345462154345650101721174381454664678349562204826837330463841027960829475570354022647175657215723314908049580523429534020530180608887809004232385088504688032455699875498086593063265826235332598602610836334432876372995038535616387714560964874153835474678699567090440322725694003974493825180287719808179711314167625077789882876058254767301899788059997804378983855707473471215310847655263265440257629718149859543599503141575802355520617256568650988283195616256289323318021392570268309199085031579395041208007996054259800980966832051629860512119133470763724623002836553703456614336620998986046396639813396612696948658674573506888973646350542960281301723048277985921344765170772641069843509629847929351387814704482423502376242575980318623398263302816083617240582558077367090922709556912171788094282319251221401760436480767083857938850744591887173412804084263064032763712210013897878486528567616315054251072492131197270580219353622540563324990628366781761254924209484490525039742049113949111848987931158407885329754252432924991384189871689738444583356900179580097855932028138740894959774057753105522332457503952478764117628199653326582235209733850279064618459745295631027296747948265524106591794946428706091779679467359784950485163276128500745196997759936200508552874674996311759174817305843083594425025626491161398408013934828325346752307864537518264879816701845219955038741638645794773322436448987214698739662410620591302272485298981126024141083153298209242235488208924505015919522849576082314417346704563990144834349811111681999960880835250170786751136069296640191798691812460815465953772352771882734441913888644858545997795496661389658863739899291081694447797571040201441114363642479879681990634518018001525386437276927084262613518651147000037151487522292119536242425335923990240316676996814626686467349264945029076236540980668679144057586714670264473532866994643720436246745731846359893274132638977763814606880006011224695415932614761721000250399278858680784366167826696257427720740129317878622148021584448027987571314395307829035344461681941993076448080441766625600544060869273999587617994483582560266504159302461776751429384871516570847117597981011416954172872241879034379035963101217995673734975853896711965926541499751721928744426029037059886909876209052738426480962643087583278380538013894187469670705917850454298079489739434725150129038677916540640875194460864162978232652377598327165041205465641709262998331586250496680907145105478700022202145426146541316307252108325219230734053654701085940543399588488177779602844709868129535315082931100880710890665766829971209109277713843290547008861844788160912107283806740407096016535133534712596003387581612648972454498392256704101525115025604374613405382970310594081791080196712918283803086506136967803568576238825482483672662777168699132246765008105883634448002002631378188245509218733968763239696565790946776392454087213248809756306425897835398752901026477136715228140513588573819097981537223758876515459934823091892463608620326970347720340252871335287075186731042446304995046263651883301852564420564454248806713269690431760613965199545745159899416546662472247524001996269407550917673827243013971668820726958349050974454753908348720371820839228283796120047668797066992557002259001657675203494460265468774482815831726615444472741444401104237990976555447239109748024330370829125920375724959018873254078045608203825004897035124303714326578977827277216792470861638393260246122998809969630373953992878897522645880317509024092429947548960311405841168689760991754252202308956420689641599077976477596437170293217242556667255821208477384774602888174489016362586060198501889953417951219159331231646546153789986027443447257574556958501642661838532639486898827186237962341738019158367618439413347767758657355394227380979884602467633040854058181627010437775811977094019445448766522356543864646424787242880405178727341304948488781070756193331538145139360821053971756286574654275821229701738883619205061106259645512585109108985612028990791977907010345488241044015975061279407597903286562319613301972329404940029663231615219711585070311997369593088326597339409787877828966536444865715996880682984190729058099394426288661837966463535130294636827936348245602598022220689326973008937002850273053011955482101817525286393537114823574995455176502271380537870567839310907733928417860238143029923468582926935206242743019400181231100138819430142054263144876531910805821229761166046919090193980189459429924964216157704359902944642664215966664774096160158356442649539916045189696230329899727280470207965446208834967404660131146496035978618102399900642419163239749506953784666766105989749134299129305581753924833424764905428520035199028231844449505707690542282054182733567450272344532290536034839411319296168074192179679161475309462486134703232231733983559818715668131535571304445175245768629380967277352484384325709984486713792021217049174270456298897857499060550469267283829378879340921054675533597786079371710570264036343746125726001440571898398349116799104535011842943330585600725841566312080928974682201987037215186742478706883389352722600207597114591819005659543909775016208641137309742665836747189092659013335174828617807549857046277165826828401845135167275985456771800951777135433366349771499012003508040041635998469219429614875634715298776705524660283120818471767237800131333531292667436049496077481841418751238814259592755482921777823496241994508773366950233551913023056219929636800222756749727125184975030516295342336090865435587520476307452590262561637281367885461353888692248912623397497686440511586991930552039981619793223828459833060825612060107128436881539426587028651128478468653103354506984925012898525110955909481271373695524540779480059201666085663940613765344699627632944324529436250428769932395823026476883748493200616081180555681565870252331979182411558343805370092978023964441000072335829031623328143883695424030417304920620463985596825233923026912179836582231724972285881092472107489702572172699680374601987910070177376420445445633617965328339813977238088699519391541515271926172345009819719819921881610387466340334491256163747317980008608945117346745107330275634456666680443177055673625875263347466237174158135237245333148902404186186711014556527576244164972031574459298648426581730437209080742822565023733410633141768377933037785650312915328113783494389892443531889301524859013597826279626830546328435946410556713816162862797017595617695147863836880638958033583854729073748974424668978032900142188663525442607415562608020807877830439857651324316805554384701785866018738175549886419972493815991355336172971413306803931818425514658494392146799478180273821070861030341541126025227542169320438105834083786631490475010515870871553943155612968696688401534129956336035940967211350578852676162598920695860552147073037088904074240009230664083629192694054772529516011070055888967183778584171903002604635174402268769027007538992377032246497816218755327163458288999509450409600600492632306744797789652951221597122783895457923591000132631174750943987983072606105478677809669477602298033198909191603583131318079010315676012585471008779531026545599563854958899923968999569294103920219452924031321431032379552838205042224960784023945596389738090688262955929390433888005494645742701364203311548763039992282287238788535099435445885322481664666556203513762791929038236648666428347025959983134095778606969157451481372668880756927967771329255581367581045995164477684097533994598049577669789509105089004791369957229941541402067221011355076004583104668696554928149102141415652916563811013428152005659721826850104921777304126183251903553312041598381950075125149152368583404076257857593433842761819359833045927080047972085018973804719534624365342569493886127579800092654622049613871585178987810089335376125964125048542072611427735226702833408523831757628508391933645592736670422018140515199860862727845306108452097615427569001854509113395939778492307155495899231749037532460413840335301372587590504818542290710220173613891319672516109398070169252442851497213898845972789706739772644170206150834613171447261590195733905862875277501248902166268635933318313514117924916494183872094015338704595230612787596216039762880063654585655228172853001160510133490653497577104333998221094933347856139198221982530775412745060797168360645461915203696955341320534259763898419843661393414402515256908403341693133676163527661622986204884489806386131773484867857808631578917656495082889336739956372416079628488986060767841951323511498020741594220573002202269345887374233659023410482022356719051363635403773487017848521527620879754823229494600420179023413069121077842267499208711215181523941057396111677633055519588036666691300408777526684667143833981740522745552076083817942214098575654924245099957340502656975216637669257148339874119540644262823961560799060564663345205446143339299904501404731595578364143792896908711452806618630066996728056954303460455115691736103055982526424400917283360823532177531581799466027606064596228103871532307520312835150817399227965482555187129354542239563672602635959079760625464670821394955403081229433087215047306279116938394782230285372996501116416802110789776458838407681756847859290758899642797595079871324456099680976646231787351424886070080584631853117874083383040709972504763040493628216681478845692677181592438500233489192066569685464457929478037364788386059979638624575025365889586978501368626505995257923453483461306166171929116651504282510477589867472418873087564968073363192555534363154246128913134717830209807449555463407865941488165493059976462172042381066529168751274058312724390738629884701388553423110031886104301018771989434223176377783450884472501660361374401123303693536345149673750826207349411124646839632654555939615063476331459794341986126420643654057201670509664516781573571661592251979139700354281502402963707050833839786383947882235376606791453246945750909959191230261494898968387443250918800661953729837444129369528785882625391525944506107051234724823260224989329993822689712083645437691096264557620704776512951199387070993502755694580908358129173332224918139403271175081829361746532515450235281702616053219848394808599696461234577639710659851054619021573717319693984078537088787318577384110032019307050159399470303898838907591117557659653701544431741637419988672479880365568368883150404206151193426090561153644563639573537005495853780384508295165264056837332344828536788121541690682432792236182075207015362250630294819418967795274917766362353122450917124443884945184282602649206900528274417221984145940598693497016756065500449393776617268191517564051121275477959498965918053812553378671993844302842326951514588791558890759102045809997133160420474167870224497921945105175096101519108725160942303979763314447943980354350580005119599169105998130359890673203971364452971334557830783767887541670963616927825793822356550798856795430129860590445556732590999900406702790584608573698596540062448910655862450909189934694478888405414184903381310203399952777989797849702471510655648284922618853884635026950119418139016133709200775343129157744045736976641213645039697580413360227661975498820525009580416918952935704363634279605067246387627202086235144778415022412310689036326476504316855148301037035621082582040683182237228170508252378318933730128942764748496089231543952413032032190015956019969698599825276863650477917615762511009553871129792573898771726522980297722383735160751423856431399944238868861059229329668544261746760065344612640783685238779851666731357215592067882259348436301802529329723528398380277640808277127178418527233389653702577166717115165332303892668888074252114957979673669704889851812770339609992730462204693842053518090118027159586720235916808596089876333019756556237441693386349334442163430445854915379493387221539730223462447100963601309906231514214648350592018407796420698286527683828728155661616286482814565056549269770128030629302212738039437807205317615704509392573857920076239013050451072762483354890251341460345581538619250072276385555955005784400670666490935593020783476428097229745118867423095263943799647765007417469745026046299684838609666581182550019244997152737194449464982209514560281691973612247311425272129756034788305042190596550133826912612992625554556530536623095787087567959379301358059696373956612060521624393099875276381262339439550233470321345083370788557466031996022077037470790885526622878848843335286988599059353464817570435750546346100933200513631457263979317667807990593499840265446559377964497241112547685300361400441422964495257050620579959034411148201961696964767218733887358193312259696342352230862116881496284948333977342242369156079898589204058494886255166980231633366476775526582573117625568175697436276967296206954829717238807329439419046372720375622874604077021835808048687684604449022796979383947189677441458596594071445642977955984593951865532410553857260560921747514928303505956855645054860952643657850355755264487082928496987151737077299163651294202372646979790239172676713372840902818516062008144704676616771497243294590486812544728635248757745510441801058375185355034752566451199606532248216220776542749385445205050459152075839866469304901767710405745952502850896196632103891255783551365685408203353105205279357726704128656926888231618380975052467801769853479705086908131683248950742223310130343107805043952961201144777186355771106757694895641680549683264659570501738872017614017285307128404787674190360755668554185538331529453063271402280136799075186244195383841581836310025929691331755582416962354260122941850592207584028671282317150141560517474179843592610954046196582237898630417526141548674295795902719780603666376831095347583896416425109052023818952315120210362598989843043326082953198633793152545556703455680589837668389086892091607207546072920944703557890417382468515180082766966826905841214636393985333030661718651150748581291947230412882026592622293053688019870472861191998360588634503820998366036904314823550245001993642140522410340466661217510747385202287984788331942528875065384270889614213083245289222230551690121880935706769498954192832445364818449338407253718738145023346089266207544586734039857572112702938092588684276866382652672807548580780668848218801083337189154879988291154563699440020347825038490738074054329275730058339634052801243293680039285399747086561876733085859553240956731810756096261811264676097759327259793326562066288558673457334191227391488559660648354488902095001484413106054963420305029834583458489685821317673038161457211364797491987697051444891498093132886563277077055253917103701868159170882379658029091009373813964942067363409245677334251320553537404849223326470037960216648052742386394559496887829063117317967944973028730288081980007558070024489740846814690999553135479368920293630962624335162367273462339922264434648218324431316120407400415498878511578296494873502056566291883487894177056839357608028404344850599016497622398346207265838299001017948274513202016115701632630988735737018832679533337658367850464498338843173289214938058250899086648733078877329558782484070491593061033392299388917001074456718184479925208872026394915942133105190794215378418192203355563824141384052968338034192770317820227477940356067998317800799299900651680162187064507356715540102383347517258512425362301285091047551909350199556639876135565919621953658467616111241611136042948403626884071743147090661652185656811061102418034947426156961429260603535624153287814607073342883075323993460657412992309139330834785340584334833836771994511655342632260904700047888600366358407614834957813475352777323711117433362852315046676380976395797617953158744651767639067853796716521323783590976150472882184047649057672397221509659836567142773705288575380143702980546266040240157736296351911677950741872775420219181425104833281860397156522105108213557407103228163606838875637670042048717040296709769848750277524831483587416771871812403092258978728793989689009994046193697758978762754436244212661388057058687207170589971392413225899052660369627765657293956386373285601796724197725355973351201971395569331978762182861276115581705422270083472199337737106191608912103625951854412429298497021189052083511915039482999309481275602473424825999012210612918833229064444622790008200223779769487445057079534875137514731691421262989847714325877825177563934357276861676665757576201013204898205181302901706355145322597165092786617182464906518961931983094872315789826569626890610608317795948974479340735561881541549087844843551483312032010849948784954585696857460107124296411047645415137778320596069431770707932370586301095418178695828989091509700536484303882740399812459885646434950779589870653886601990860685142462105133370527518114407515409275499044827201960585554452587062782195480727825707300363292484205155118844273853055158654099988211639495691679981801069350240065424701230520532475526475756878363185915968201376292762959563803435065414443795352146883775069535169260395995092028771161808208961779659708178286209190059825097545216052107606128874274176137585876900729317258454155463700998415687429070851447531836447927217123263483941199775571139450146465102188844224190214402337646630431608435110693802569151594184801038455724921353378652523835706066331629475346172643167319976276799557069925012701899409679929763958933441645627851112342155172544055575581506031275728133311538604136155712192300648008707772906145542056120435272982587652996195851205628266337947062149368593919037068744594309308497099090933309207909248880493962804345762878428458119688985667386681349389937363419673561691718372051254273530458882335775204916441990867792803477348497551179963106672290754993374810823475437310401248920467728667428133915874437624803898656583881655073281108500886773480795610282030252174948218501345474542183465939321440109537577324301646634253716407133422979827661461480198047926142029941665565961793006697578891184827126943538973685911148504014665457338530148291077273718876656479670235205161206821450417828325585958359018132760654506378184130578386962619268076860149403352106214290157323930992533911009986774010183007951934604661578585538588640541508954559339951489749824180274600090893429998870358931230529799057332018623506133633042824613920972531918389785566927399726071485195634642768653305709946406963957290734616335035905798481901560021401662016689899405901471037419219574048404333892356846893071063561421012190304902078944381125079725542881662703893852147750042038810063719622319174237066751675378194983630136996301923384976276388850451505736410033797558142430676128931395079677135009981038424791118763175849880128825422221188890612329215401967097664657759410515695166692506787371293749711559647238512712173396043920822264842591507308682075605255541604779008836894556537064833383710913306079566802598075555156737720355340854661114767574344792327081805669066875850595962705936338619228142629775953033080670460804142705755298275222038971232180634374011603615512867749505456879361358090632722119299447473746589778590233655090257008240206474349636229595011474683740153483696641066965976268713900194348603372207712872802517862628904944896579350117375999530142752041283029499108096003153578558644451534505299981256922195226936963600567449732095349301435405489859380486397273413527164129633214542697982173950872534364502340195515482448135414908994002746316334431471444665036725093674510869015656523158411298442428789520557136905505313401436924530019242073621027556977413493532803047185057126902725898563280743108675508599886955465078850936340879971478889556290636840577082982283104101462934263001957068513629694792404385437666675457794283503999024446938718792182237486695686912502050204700838558418752258262975361172104453155726589128986740330893883032787427536108391733585591888532319864566675930489071693256690005103937865251059637865734742919726658942556636002717965353856493619779252914887202517011629910812024678709671835149913782778359058093235963487757688156707847478049305059780533580734868368661571558043967288911931547189078107296525204881742682469905639477470679931880386749802874880319430067790338970688514963762432521784185610877507713032519302855572218689134176801218086448805729235350500019690322991206348677693864570242136945083868846785854469395769529838394276814804063694383680042397857255566148607884883449448748662316640098403822267371840842704478259586616610866511673227404474583383268648453634009038783251312179899884451312891661592371436441678337949271705829056036693712158545825510223011790934351960899562195753475496627384569137344853405364804125096412742912845280591729259644071424000398707888155346879871803573105846490015800593717253229384978003368165629085483659475790318731560064766664311257031398544015410221583689366325927810427367929164751136952044089038766536754748483394060724461642589552379769656345332409896836561440431020490071817108095195749783801131104006400946791306960688278259898136830526504180404381446052540772497852439009092010686424068137611048584987562108408834231715183959825907126489569746826304918461775271201889521655938266221838380269075069782214351367192168015586646594208880295075745856287553763245887716421994078886415956822141999951190249472433710720645996090476537138683911911232500320332896594393905748007053107983165264393937372849280407420183157824270523285865544165353676681081170439541069377634960177519843817070888614067092581262902853405963722572911789018941965814155742817713090850582616859410428105018011181010218589006891255105759840094278161879757968381598678127889680252891378374928188565739252154904357040526593756078877707090506516442981174055279055004350251147682746423282501974253214261087161263245973479834766627762622304836225555522053672293595174527797264462066946700589188706182514467135852331821500362312196682706950526841268841575966384962580799380913287569346673651791954498875021182292808645748844805135709537798515988717828089748754586678818623632998741214268494809872491104228693901131407245950919321178974108821728332834191974594116974501009746479767018502010190922490366805539376523698088576659678469323205049852932330354808201638831639121065081471306182410022564242162553834532953086070926901717405850379754708990108916820523587799734726915164178676063244780815162377751744869635944629699424753240203722611936486332313156980272074176299386229823653760619939513067392628801769428629960902282447436293630941251489439992197838964029734676050754136825659061644411857470887599282051525201177594575458261778214309236054080547652853738212246221676201220065116816363002869889191889041664772700995365118277870978961973327262691313843125178887718471056111175080191017647038460485442520511156838192834849174249877617579043498737049029879447030481366491115682918962009925111673794986744016081584744298033751683573477295420560107527878629455488426610975692464826855524639497225891180138020256216345259011197555843682560057907910014950666039915782654031544146871946381482253763500080688508394689770394584740519130639660383445470100227090453865079606680652685472284953276157762420894009280132495986869566237263156883564716357175719465131931763113436950092870277281680672901626084732396990122644514708130482021411607072113022237899897389431020216257036105630412254152577992444967883782305610697109750350083708130747981482963487650225068313560737497177732616676265222915690052248145200500950998466140630435940634841305493801484495774947288547494633617285760976722583602893478148802430030717876273364901851106074633147596108832440554049818283233068478334509211140531236409604571499883713323084280187457848502398514636892822150792922956718969217104636501682735199097038165418735737475377475756345398822249482864824529282231989750655288960898700482562335829043142433371317501744088846232116874949959396893174526241529942396377713838165955244456034309011245497780139474525693261397628090916371144875922236720721208361617742789368314262465647105947637200241981240086049082258715464029979274422758573495739192963645115507226697319039154368119394877853365128377092781903530661208313304367555469818900513656099473528046619283170701104932558498203833247066750994043814282736018439292132333499295114140656971053760087295369643336084681714302010364926160051249642468945145598709913424803557510821686111457984601498861278928253184364613408536692372542026421189121342074199136510699051965034543632135260947174862361112816625032538474495244321329277648570159327771798334848938090551093290321271520359546602308763554762988771289530362051873845794784021465197125463626044950284087991126152584905801414834024829524202082648584216142521983083049224106530229862578098178857242435717391354819912085359727182338454083831785595579546250490465827811623579475847096916005067425006936980900120240119492376133565526443888428034571777905546337498024643623287557309296705947739657366276256812062816336349906843984136001566177257640396114966528010728729144240238704448269362841673189599003419086503484311417464791997470146215830022146297489056732543157970387044034595100199117160466303864160741242313698215598679255153795761337288364700985319719011341205586305173365074987196483222527412090587281433406598702090849944639449543628983966488314459053524863800810279612094754683531885586686895264312671908603598389530605422385159528393787508227952144654767318675815238779399583062853131229402840348384569347542534494802487704790232453964507549712154373323606651390736475389272173178228746853688031615853965063804373704081228992763926631341618532207800127544992580789739788897227696653328480820042537638494451480342732974240488389028519728556751417460990931469588401899308728647426540424279882465565529927024821733074751032682787497534120964918267662332677128034870699176012952824239172241407073035414169676547513381540998258527834604958903474849990631483989616477063370763058539348158142335808369363166205465149437995777644618362888712198488992344482798038438467085556673600757666865744435695988732857940057305909067377724799130284863990397388810537362265639565577079469275637364902857596858077759368688247912620472787997275210096798088277364379371255396522047813249243063753117821389150384232955552328396136926336081023910008882948717519514034034026273929167332749240611671466678193276897606217919118711351985957236892971049821425709867355566906808984990639002395995021049259491530365227902593155623503452445248739630051089021854586910886620857504758025304603738020888865022409923141071295614242681860613907070537907841019365131822111668133660617306657213576807662236717176686405914102016133711894909205774698794434510242880203525319116907607357102867475162720799176443344633703139074161988763502014530072486765535796739064439822575608506053758001561342915527247278923590339110396312815418022997508232837084421923624403190956914910224364551309972440383992588360844342845061662487860071541871571513508707932752620571271476148189357554602088005775266417439124198295373925511169557622713920017520649282777226453969906123562838022864370988503749617414817014107151093545545717098457885901506787590049171586217624089160843370094861108088220063681137000470376539081665382062761914101293154937994085401839886778124554996751749375982293972518403795194591141327905416876166478615677296385154814265110207871881629494037414088044896148083111158236016909338191224743725467433161344732877117404494110347297558728006096400754285614875686490945056508689832799789357236886057582182394111333163651022625557936216371006846146267648483692334577333271224869014109086145341708192036798070778338758917785878043970622317524641425890005604047488827676139930777069258816121174437505978885007691208206916073428539812274906131153515763658344706969370660520811884242479213796845440213021178305185806793812398276344965187481490519025683942475227053841494718167735359920281280970503503307445427819713914551815751534566122570467146810971485466347711243037299386286486189446004908075193240607107579082088829353982852975939073656625384816765794239966514129190911352762727697171075504099090005037863057566888981609071102677701584166294319420435716579653422877218590812199520093821174785999984075675208760382424272190753079679801294304445111289429782255173983232592010481315847928240556511356486316542565890589392024548884003559177954517858600059482032117926709538550495960739832729882154241426710530979443311973259831659800069091015621779950683845477741771597004085910821722863738610563614226718102790796788702832716939256768382979146699729620948234705475961832678086817932861912664533217696822273282834005820895133554552816589204645499629011574572236823198261390342709194297851975878880678847504545106328455667528527295995177524146285427719436664468183581227369551710718271935505187176231691678273625107095382873725753680724256043283203811730021835786298497846225960999437022511741131881020710482883610869864166281107789467269093024460607771525301273581916555455018668684634555388993706597668896211856206528240852509817814501831429846617422270901331003636762718709084356503494174192048457042556319384929740634648578548803437402868070936387660172932366296526969128711610945503145684751333505015799189257053974670816025724253795722081677538774902604053708426448632386736295965437464587913981164111974057704106528736184849521829123396688554642106001195002167818995154461848694721378454781514484469648881213291197495663900189967753918627458030537251281264019703918420423512882216101202548422023611770820372787641292024574300800373972110286104022431297129562505495186223648281862189014286638438936948078945247927056407955983230815287841860031220181192029077980996392330417343825746633815418041534022750378816839573696295162138904915846948923496831154640783924720349606346757888356730329434958323546044211363601947904561780323521274465659102437550090401894596618315849455723142678860359918186184444565732715494332161725863369089454716739197981471492787138147277372738933528983806510766004917011850397116488801406616859077904858400498017839647832622911848615667138740062948578507578096963880238373821363704643430802790187382191941076336042768468021454589192949999401393918766354776473756334525503756697989805584052995007843320501863248964338337424522591055887661821961306428176278549863457483767388865596395773422698324664384671575695811963373076719545137818642936820508832331026330217405381030060299178170568472656729992912096633105474478676848255758312222062682100572484857629117047734852272307188728700263173799000786934274677109373217423430637622057105378165304913292914648239418732464929927755729110833858044285586429737903667122458224621246760101994731675020181993144490326620072311103609086296642483011356689362282352622576555641607288595174952012992262741193668963447874559960022433815144847849098574433646368484601891984809407404452485031657913620588276501415532605858490589243655669912811120755403357571126056527956035566249431729958004060520509198087239920280570030553191640951627544054570272433165143143961844159965935318306462829863182591335194114123181857480235966678213216788789537668551514048291240779457313144177151720301682924146414966117438927433064679949735020678946898745988734268139013031242739878010136353701263534915384940883747892590093585279287039369538936673399057752669908099206200059275261961528989775579839599410890696212703395749226955577000147354361135790488611214463509337425073802872798615799451773543586800099950602869324725930786895574693781543347257480347567717939011354479944560642287795389594219294963382387221533323292209583764697145555747590626708316829584685984632474428017677221848412786236466414259948255394418006762856086463381102976095339845932702774337385833962727593104868407533356513816399311514811651216543297530548207168770255022729243425298444753568803125020527003431235458181690783821091645049718821339815413413417862341249102132062109217890706299422344472619569440275846800081255433728339896483128358088908375196211130952202131464494142393254587193166841345698645254520865837882306056091328973556135810903752748204402299216331363482308452294375333749293843279925830121568883785999662203491778649686829618192770914131835635096744959025125590147893156900847491001297010832575644641521891554049165227599190650973216424442077510216006515551768940654744589897178809942545383250208779660416731760956126347861016284229051603692293020980007358382045389690270192433162098926637114111036244256581352371491212348538201000318121946873243868891346276731634959215213236812263721966123241864161850229856629477395678363691541742280037318376551908568067294043509745538142676571293974071101623052968211254926398589004245982356390434029256515599012236066950595089904247289893766145526020682411924151341935948437601525811212772511220599628557158732732062550583059218664868865058782459656978368608950296331665002125428600631128781805248499139375844512891206790119038187237150393709534790537529863709720297645373920111197820216756391289996782283391861656383368158576324899903561834764564834053206075733277905732158627636877574464427368773847756969866834521665180844614597811624637059513090654442108425667783904133353694605983455266247428587846314678071957423014284470528263923354298194337410526450399558582196819722749184708953969743527716474625754414481892985467227935199541658268951057667413040002172530335736027312328441192555066946893758674642906252765774081438465831362092684165928752597447828848820797155714915876233913084129909048827228208941661413575400483047250107707720088885804079838830960708850579712069622311359312904272996602513601379195356400155528804851976128802273717967045821412415654369182090622052280514356586235817968244531343739535040346851608530161368085454694204956998960650344965160875684994514380411137526051122393845633691775851097906750936668692378375070320991485053846507119711771282429870134091329578152322604752701184923759551591460356363495587757387211976647039351163364368269951426912897803861283942303147831593779459114117971963686023089338980476515511673183494316613693142548453251883158812419624740930227191922460315864341142742547603334698338944589415889984952747873812241975801981618545665145934854402586491966832462190046730468244093797344813060532665887025557438515851875463197025439956330605303100023054627308919414717054776589766623404807435191551334961152893640819382306838390979746982189829107787539608144649769988138883502536356393528794116867701354849527718319745237382231760808744326151654688779889117847445631189029227792284422600929914988468863022123465364658240998343596024890181283233210818797296053343976785328214569387066406301046707614461599129775866310912553431171861834767290389060874631099914445084704451486345462419329154684104311001256640762205008774583239315214887139665976118949513732114051483807383398299550308392636802111559459604709168611393342793692985443348367465286522867409403136834668682750044946782947262859841539491411076177934339794105425882749782147417888880494000056538424874618998405038364020789186568475695928451741660125254025685291106246730255692729672327707842231885185011830921760519130876902434510256014907445788961956358896428442013484839563129394530343967093286882644884590631794388712366666026477872671520004612296573944152049339439307157201738222206733538526518179008793738520202390334728665069260970070036266423746618559603704931248107184131165475818416635367177981237059262739284004282264811274709146231055519705508973172598667927650471430707941003406463873145979517768483084788966762168736538680043450246995160460586446560195396763179625568111514941534841198449135971494878856886117409611728460422772219505516136677770508792702143946855335050231519335486406030740863003703381798052466340244289505947155017317355431750997817725993445098897826216869727926634310572377454273256824895587780688165722958705772820298011606730837081813185140839490499222495450885927955467021225459159720748052375128584202333795116852887811251804276211045614090034164193866437867920524494514738547132176621541119002977019586723652281429669574219724544369886389091634584196276861794807607442166935261640691586619038174897497439579450600645336943425518428423620229514890008343991611663171206420090132202906354162256870108209447363788584731578348765797204447313002183664724969112179530513327997202964241861524319205365642089722675960678171190483601345327431496212515703666862527334889119718165017881640026503571151137924911279492100676128601270399254942820208915910852172227698498205875363367439394592356177834437940342416416586084499633838750424336460475542274960854056912651760759176069482888175873324018077878254580158874325912597450095175983596625811002137500747526114957824871773222788911854466130753448657281998547709240028427056613602698525163412183462307888701432389787659953679995979783603635461627972146676895034246301628456534898216889451688031747207694180912572415350369627081888066262989994995892617352562641270678135920303000163456813634629408995059300043082513557233612250876480059422082115194058549880306977510574541137097722878086827272859818289350247923229731731182414256552386594903573311855483780276590328601128196388665929209257230667226648809808140088002659559546005093632278657886143307923607915855621361906724391300847349127445021037700614519676707647575097868634183608421540527134940374153467578692419483154557762226783316742824093402236712758464560852940112008988145154211899081514822926968749337665601997028480366688383736007571783187346636360998068432097576360760062755999159782817455923771141655220193364533311571731876898964508750377731264076062558749567531179876046470077473532863722114729762508350450787424317783855120074037404776252090161625731528082065572567362324728988272024892159858403264590306495469569324293367304348771457963445980402034925465237508813439456858673728302330286482657829227885474789411119194611412223165309776277183773920918363009004743854900946137487931059881824812751316298339220470472037835760806824236281589119495794066435612118864555653213649819779217372107097476668729818092482109724526976286193354611251546871662452853137014287044753516577840297757438232136970408956729119907325790318019755308190005517093705637024235873631268506979290301563093081993997690800513138616661027399602870034906749866952098190966734422931474415252757815405836555392188169407036227714858674390579666841203207985113960326927508397150969631973798316786308506484252850565790818818167577195674218612290041439671648622181782527056109690454209378959457182342976311504630369461503153917942188504556330588514422672834002339363875209960314630791128637951277590189722535245776698806500310436831616545152328181276195789504623187711882357390247967802075832827402325250630969058224876553906560562410048569499780060927552870021541971609967150343662384010186598552273431887206012279065187036102066751480773000363722173025859201302721794695586836152132672575426305295511328682209667657579791923648828214293515576498789115751828978194979383142741174829090781278388808419162667487975833173782577219700080048988672160480006452399442763069014180819597812304330721946000751157173474111243025273980856606474927228755466453096108657639881022112044330223782049482583889210766281758651565636344001198464486952658558231098031532705482628442460243526139349100976272315918925814293492949513334710359829984293289177706017065560036185363903172976211770612721881372509013897053219652538349970614267716560536453467140180491607283834364420974865948378740133018211056770224978043693901675120956462322428680655487724863011020131437742112661588968674017990734232472882818849219228901911280109432659118506801066598313256757089605392614443086329330419086660929854810353389962899588889542558536407381651862974786151833978042703132562829963991451342996343474288747974648934985783386611505789109656334360185733583646193430457145725673815992243552014567978239223323425340870587086176200687835952292552579592873733093959870995580156420225815457002475923729221418586866235251874582343276798900184907359163173277525755034984332853653407549080645579233808252002997899224370725290696447276200223987726160607751180415993985182389462068740803899207841894052200083889207868352937472306096435095738754808993534491939009867873404828705506471542088745228078701544183679895406172125703211740669340803288381316296986279869656483837741645584865931098809925289764240969031054398948076128116632372793677371478701126958269424172714515917823580297206918491831642221995413479110457469176113952589711439145400045314427298886943611432648477309272636170388863587344346054009266116288426938386978460179881889742505504033467593610193777503636850657152208173827720147563816679780038289462896162484302836192999008455071610511519549131868704510085409906182453458572808918748298393350585356590530372355194262562741574815035036833162592386773245214066713001324694487168457377628928587592486961843444045667360097749414978457658460673109162598919522339447910207501617692376651267441218518163524988239247539068707703140532095662153326975618855347287440409397733555858487073881666587381983193353160983804335825591765415684922670616889261204277575042454412190278478171147474005168967490167657499288928569116671415809067105670525028799857196040308857810867345149357020011954472773984404910610327888465334988679100034505411378888686068245177785160303200177794476072359293164352878963478206285829624512698385674784094144104069400679692327655661532024751376466935490973266568391558375235013713751175641847342802039562690525513777367606129642284744638199197523607811886889118528783396967016941407000932221310877298121556120610763403667472975496953108611156714988614177047528507843049678356152491171922261655895075115632119047196979174053132283484440057509489468025670981077308192698053685796188306590508657610406836161146408542601776735802103859499042038224302274824654315458644137670252906920873268781282059479678511085242574166260844229027368364737657906555910880294527299632962472164497288700239899974702790550181503850817255696584581721745209233427872621434548322550673115154236525509469463371938209892670814582194199119135241895399534879999293365706920605423496178505367585785042550767350812072530329401424528272271021462392672385218921930805874017008256926405980450370562459208302722493233233581559185822182186309072373908447085056163566086942141300203146347512637934792126518804881250394117095589182060397282364282850676359816855092972845688173728478607696422291506517203110079049307963908990745739764622652928243146782217034014159855778378780329786084872653637528229955279651648423286588288331707392648435033898580176928793969873946988774624882809486819505477222807935209287100315592501115995096640493544016851033959044586147805279258440418960234167263521476211155123108317424639361878435694359479852665169736549870274847241133701709651838041749066322357395346395164782900320784322797930613073290702334601280947278373898549440251123285927959250235365960563893631631873260100282581235071881411286130173202942200420717708347785299590685959600521773943884995301337810873722113720211243922741719289899525493972128552299226939592624667699169769591109303837031512251989640042697043139502819898093242510379142060110974480895397909663170314545313077904391665498049266525600584802755325592627164546749642513236000599460987673904412445881725568501549006396811199173642976228828231389025620408205584127378910123174288445467963647196643933195691343701517338297759833654059901763808314539953128753553749593305610707945080667573417410620613094064582916063397718855155894616998922973929153569358282651529810205669021514126641645130911840759701765344641902878194776596123017423739826673111044027797897877891950653355321440121091071837087035569832626076911032395872764567120229658034108989253137101762597701208636589800552394717796898159276542909093877302448938402351317265498899667628148310242194814405041138320282735775175410379947941754174874640237411603356013830767806413052414123286262958104221157760900649221446755291543213343343028415427308577281575117113983387796344814742488872585397302344666871999231195232127259952295891006253965528795790367135532260355927846370962147700587873504301648369837778751431802903034269849061382156476558266275352096220675212480390905468462085917012483354948191143698026570190786368705038596534853461381711103037238420276932665925194903996854660899220906866585327930796225283118631715373555187477127671502230043876204175959124467134662011495323378603497858855606051408181982835715160465037951276776470525630323763003209330212018024220110488891153537886079090264862800248446898361413469132096263899475122792844375862043553521473260719986041596132179305944415149013361558769299322445308345338315615562767066599284461972977836500987261463080005271166252677515420606650826902328697105959695144513166776046244383164083261820845454930632006133598056227794741856920999977564287857111796767978794984704674336143996562209864712119975773337217090075980753264016631915038632545628374700056082047920280354120132919934397349776047527319878157954300387251107064175631213453214789226791075680823921964111171867565473354996200367726487876695644760577417288321924503253189842574743131050685369311686770981402969429008678269825033506671064689816569368966564255276934317341414566327487836457877023943406059396153966962898257926443821662601011599828561098436774526527885318074491215793519964423057379375539207211296510156091172828600172094730597810696496266442455623785071881834768441352052616688320613616586526135787116099234255663066338906356251195188093187148066965385276321355434285934180649071337384889473018948801548700278154854960205157683190094289958286254589099193165252880875486229333036815647332166806891898755059396739553352112727917464600652186622036471662932711552269501618217166716081573282580260471600467283701472711708543895775444786594143554604434670140288934355670293429421600164237696555989097043347234037183884552342774653370036103750013183306226792404560648975339686977661969133601317017229339111679908026891131698697328879213810701241230570965031916329464973033760143903902496272018997490282194046818558115239426896639931177542781103535207441548115252181573368224308979538785594791226035502897992695024008725664874035945309341391113077983546391995460033178219832233302792810062361006010154350732320284327374447246757831969343525715851589673363166905911852447206230354632008108330125218517543704281085555150972713257950065534365015056529936316727772173583031943399070473623028449732836575348948754345614642003345954575302488969215817600190315084419531027729736719641077281101125938648630416990780603409046155524409053440140104666476424099399353961522461415998370829531785832550162673393415536638180627909634602559905918611519615058500295491437684578851894630007414590699599604128636435892564189939365551608934405141616120721855085603667671850819095700056189429693442318338405232731770922154544560855199383757222339202362861908509359969853882503145064726358166130009492008750305107089958656573193357487155452913449042942258008951538966155936593045353150796034997004821378228589984761708275225907487016175520676138031294159503076788017081892325810131274837217494788718286406655936628346245754155554893774641520183624418560323553083638360134560634232878119136427239736145020821233880847839903600436449819905025946407870265688681810388748708195782956719019739371327223987409721934763688294194871655094134175381206937720133930753869462277258068834141772271480307886415309504940245864399018057609743549755168020856396243545549979056226238777706939133796111622517133861085958573377529889401556575323108400570476399059118975288007056671618672816598173226990316826041435979775601202009956769750714369638056621553916936543729743412663250130914957158650156627819076262770170957721422728722379099552299606514315411822393484975298418780064963643583306672093881655523256228536033581697151253380577096727304314024092001855620175897343433479125602791514146934884567313144982899915351739673306551028768130105475353832338568161279315522103315634376579198022696858434853696077046099693133845547636282587311559939999314718793228594449110346638966459636335267111884167671515628910464035682388302257365991184725139466948631528004433313155492990426648674933274295882103210294294736837137766113756714614080894057895736176072940085390000591310147730509382102507359852650079956173235406937473494602279657814025556466651066779885520240605424488195563185096929096892377742201231075374845511470787493670803099285981792724052015106490055906077631114349875853565630700457716998612316982683702447440567622898986218918169309722388026888110185246932634778158252203769624503112675283266713606204587084379834324813272968782011450076523498958403751142052912307006889883246595173150967318264491978718011415265848183449677394957734434773671856884478428970596631939651625172563760279088684596288632061554440358065457305921417785066856186443069109222914708132207409888701429317796230520643445189905910453431712772565738186766569278293686564470707778787003007217436334822372796464561230056796186030772562841091738820021197224367706142759110905518044225010732224472297285113127736877970658897245100253789485683034944102086023969387683171927923159233561630468301886447419779758699144046866546627785164000368289597080001679083190149548401359948257327233732863231866554628679581572450823080764067148335811382011665757291165752469070639344756172636695549377676088493883319114335809597233143524325171061105286273894811354226644493550239910913510410022366346900414385259123649807358755205343192117450400425415094423064420320039957882225552521834333535350303721775683523243601534151808094199413004196311532741806639509865575377400499931998473513455323629961431238924018111736532160174191975440365141914476465949271413633762460179484791414547496519854332057356621687852888293244121787069971922249791593464734461255412587214179320726266160029420010259434709138906150738282718216568865516989373754799025819911565463949999867924692060531706252875346239174594626399582334892959540002641427719086522096350922928963901050340304027729851233253199661502877001931704164273909538905923366794625455872496876085433770768240860699017640415768507305638620802469997567371330132319104449738361047488795418952179968229898014833845123783030691695059560500943344942954391723624845661482272439891142645148563081019097789433236729751515981644885076378980857188315888534872761799752145786171218656959347629195841486277563489992165869356719445786554619452444940708792084373125885191822751094754007074677716464146153030259187693564609409752447773777055791796469841041324713397109497095657185429360877947397360933733693840625109923647472160331422610054886734667967983824238954705659130855114559770841177978004893454713900080973085626807571399828847465847623604357446905243844018118979505658467080001252455163031248951297178136867431829828184533090624759919395256439247463000550511040186681768213251378048918500721216610361993600528219610560340190008449185289543556348381630240110091654516904988423690508389390856229360197237171429379260533922604215020523836355678004314420033538159609107468595216781450707137788962428421810510873469836843038376546240360502824195184129081171188930647597498435187542942433212762507254294313412843505489101948841079883360089661101576897984877725889734093006533599545004115997008108986175019383422096063726463320206396802689625404275337514628361441211705817122150953522444461485089027655227827838891530859161403119035576158816035262192943068123393616068708930405235330541353876896898100620741299575000045485007580351671806421311118650589955826367557393858219463552579392250865486047942534606028014031158332825709381291332891915586593144153177701406114351981794100282949572722022391254250511384675002785512080287996224298026625252882843166768052016315877164196404197600990894269559152943649341831328156373125069895614342042904138752746810721968371567372206455204217078628761243624381750893843502853238172462861298303610700223656090913420286768366042220432273046705408390127791634232119186224802935938107413745751834045086999919719333822121195554355627502783577732473760849928944944096207469096136461324021956514770325329110938322413318664188396822414084672166979472662451163267217506169518081694853959730805046259567602141728649580408703983047853544595170166398943353200270945488000907106455050049742087803666809277498423577692324957335167958048494324682354157181265150371300299552951094563429318295648038096795449801392143103830673529946543264847983063514484646695485872335814822792703800628243411811767449380559549562220509904185546309270761389096102967470351324444963157731479435120058636090130813232571231713172552163399658350005807798610984234011626567289150933085767777386427876253261907167335117693699246566243123870046624597612811118349297146289147281414489832055807545985258928686621413207999357941299954008565450055453120180396644467502167295492232356741597904462631312858800008042745156042696951685528898543189591241898668511106149055422544271584763267405837197895831455436462441115996713456927128421146231742132577134102121159069204759847077500209286710370931464549891246885878363114468670409936530414377352573745626880559050214762401986179012340608119187660856029831707956153220241150721207295193575368019584281415331511542973047901185650532805417619240866210347528406055950744822340291635645675545800700196786720346107078021067509869481733339666880261015698475068741196827915760922559550627253631421270050699917591796249508257183222680275776908379733838477108118710434283294984703857538858820873248070628795407535850550928949894020390246417050813219321486727212201891121500741628468843620908550273146586879527975404275444647764467529925138238589075757539785190281535243614335908002668812553939119721155970289760478677473917679609632869052730795578223333286730442455907636524657693441226164053195550613742243414326298587017312317708724692592291956118900769643364449998140792325060184497119036825375179703989304419847606695051839246197465532533687954448608827792090816775859812823707587205849427563672574477841872520060641560282061815505734883940781432019982948685425913851701415670339663351903899264418482918634475931752175621478774627828516621910110478760488985237589489911117340535733344549287617653927326512148908657422937442023811200764176355115026974027507495234244426713251583658344886898208722365033064515062832327155949988004033497490521202198505894876040185589822713293241213982655485607880908053942394812003637849554393815987692018706921769369443683925095769916580461623052612088844407299651697093052455365601133597022122608024926102253489043680841882503934075427679497684261082368889408879088002453913452992259844606599484630199526533893958625327192149514592264283470073220918252578311076172908063090110896355397935190065991983400018919765709970868646348381943433242260225282054222019282312540108961281390416514274257533056132588589303412056816048253919658428674446209404730967058339537761908912955899759432483386714817859444568662329752148543794758001802471420094692897115207504329085886686160940092675452603447069230398617423707538999885287896947148433991340153177667116603966356342196996250124916547949215703160404690120531158243629227544832490495355966771333962074410202047429147890278440652789325144808498547461771244405479583116667671783786379475694538525812879664194694505215458584835621727716269761628982071818393517914843201027425226941172878832603386702655874714779116481006037278012654789087878315398991473946364086021026543572482671822780755948031480113189962670696430243321846255111447451914780975568997576320623014144735948919755495584912533495777492234652450128645730386253505856037672003715710299460085338049516286498460643031439816952798445236604856444575894105463319455090044423729857740401035058710847567618861533461788885165460645695637447411908259238984923500486648686004579756902975084469510836424210958772626832576327571788722274060156695186939555890138616864724992896578228113586125270161640760048667983804817297455995707334524329450082776934330180212850569853707204810903373924103651723226347399230565415561794777635020777041711911098244011326132889295120929878631933476648788354334734011084073353005276341952289402261451286229046675786546573750872752281898499747910651522044186286375260927632753030235935422980354913269505798243702354558783292613496816215000811437162940513761186660730858004115591422447717842613293160131946301176336498984293440059192173148380522553315562439208967047226550800896667725940959259056958799222314760285188145060950489788130704838934169238482821645362427275479075283036017240383079872895876815935914831141933668182335270769605878082376697726158843168887755868883566489129604383117307449657351323539699940635865446872322504582626783612468017329191435856392646385652101305919352817415976833578099153023252195082038887497911209967981136098727154180000838020207535122713844404329762998990582923285761145784893562005951022865331845305166592889697331170649025532310631107998108950982064663174653759318564968704416297825696517233352647145825561520168380127672281234368929904023413133132681517023567787220820452431986797198153197993523280621756552235890205499064714302511382035991153909921556376672899974768328881517646201816727139057712336449817092237364063504771102790797550590195432244190889428535403193330299689842754515836124915959361687166711807529451864841969723302971570742125386312400925788564627141016851291768881593402712145145384105286012125041864603380743072346595700541212921223467493604485719632732925374514821308137487823258510627751816286099580566863128513813793868489855148831984286443594448362538489821957105115481086387854495294072348607309603251554024218700896354702974896096014001994784527329576807948909203611261411418909563198114522269265990750202860848181912477117196261163104464463683885434724777115004648646734088542109363891995192246546948363289732305618794964623172552864209476296000798039272345492105290850219643104433598968484659529451583671311689407865396143907560912513360281118651677112041064449112229915166007681567301476232925787899456046425191194884753494476143090350006398279954908456400695885729786443459508290278350573443222909133709191635204673608375054988446410970940314115468545965366965675978742135330785156023502714735540925733799018484492472046253785864717138332249877829093416029387077494442035336469170309636088158134404034148280743299183833114169351599241284226962710862012604003186274826816487405671095475091671377061826923611253147112924164111721087003921824347684675491520380467780457428546449491608850540032198835919125408910771691314054700618577690685203624428567989657209089558344365460915142482350073717512477808969365046594872550213416330552573365659397364159218234357645776102172842672075744130807942756970047394450595384000060772849258989996046898400708441534605719258808004517783976587953133709325242602097749943972496292027772498880190930754315642440043828003733933984687821482142457580288757349748949692195286873542776551003199350154904105229545243164549683180675510915303789036037428221628733235510080803230297313918598607210770298187196223026751912330684371356879540402716943301897310203096443175698700574073653610262750981277766329864299970489630372550741089917419860597752968921537698491346656486794599381168435265346644061178062155721798778862197251863611091408515551997118544909584923755972769329598231992640970738069123355074490843732022693109396612154464193566153530065962391328039178372265042485153739876091509575899862211202612517463442272322610842201531831440715029213982140344793147149991455237870428632494587476151509734871479151682998854371097931936070699445574921803317197912848432839961338587230450605882642268588817743332458858623046282990403158512894317791840586029529746974191562802081418486591095881435852741470698126672849592451251015410513526016813614737036207310332987976290995163411447892801737959920119549494556884079614768655819211663536001936433715474502957373473285028405282199690439043641509237119366900902827003402216788565908671143522244493302460231267477448158524792510521760989634619772519242378515531674918549528003452838664345790463386279714905321595039773631440399616126392039332562681187076550989666928690091163257799329261776776817264639773698958150946484436837507987140809145050614427946285494599626380587166594321821618714098277813498555320888405869694026421216349368863885188470857412653512056897939459058235941375801743912375537642269645268205930195529819480091610435189109975775116485214791785613094868511090220820004203778039895886984460163309984904170567726381610125328799526596454840698305820731447756357064177011752126698188665019627478612003295970764201728631571978644981870838098532122979116190345201872282663436394042626363355293619116703318203337371674052303430832054331417136349699276466272867136065564992470038978896158535692753549769948423912897967328165469039024934711992174414895930426171203056668083919334228330558614022275012812883872793605165061467806371321574679228654407336439717828771450336727442366005186042491200351042217971159589615031878099609187371509346024749090668738531694315904281387178079752989971325518791966164833074005758079441207720346851839633158912568019357831368065693658915204636709756414892146909963804210067033052205582573427772164793158247726467742792937817822708635399695767689804709149659256939473706285699587734632136994016279322178387761482402397206547913544819444128103383492262549392161126776744927869295577542576159392581590918211409181686516363214494821722049511087149615376658668328793632841573398309316641133654797451328086790827683085849732029953407337581278119415140975603191259844793077078696600617279617595814042503108747799338139590479662038800734515579009176141814776314716642782672425235667622472702494835710988098965415797567008624408360661612784170006110100407901220246910509866350705134981640770510694475885285344785621659838802352010550686717934566594431559692288226330211684437842953701361755027015223610161513254389443682907645459359380150109626498173651904183900626959262737491507041230325119338859410191340582434599565421835547024793432558105890383802008511784727280245044313848717038720466629697974916604997446514591084409715504337950663097923929319286218501869560022603271315002729156136201236265494649779856884096415216250241349934228729504438526332044710890677804842482419133218092428909917586763819237095675291254806061041119838210484312625126913408561234281799554732276483927349892235890174137353351862438100579921306453900938466227809510623171829095152110788403781765927751595396237948217121796691376768049394877235027752522757027096732978293337373416739293618106879911533128834324808513778091950366348921385835383483690578078697552895260918503147346954252352801656505110704433895287087133429950384021307859274668418350381063048616141359380505305739207264155129835615940292130607371820667290147349368739358713080200423934197602665711887141075779021847250292565571015916969261960367149209258562954074585468459175052879315454948244855832193907354987525027083248280132664883123540533580964496157793680556623492850141364474666761633501352540833181625521633750208180672635223070376921911205911272978628655521866366634933880924314914516832775545876725158733231829135626009783157088390402103102422311487132137097741069559674475257684265216537394472780418801652042869296213815603689601417996657558036843217368603653975296419127862799950403407042508882953408831126790018691368365860641121397953537074743246283782015035904900499312650782803707657976152699439858057316615756650272627574866879963438380061687434772812248744915092931419320289385672899737395489815707069969378491686522172969685427518037100142878112460992292320230625014896812179254961268240942711810136954712856770318925669251154751338287894829906048332772971052105674578624155900256637592751227713272187119451472080205242745464367727521071287923889093936507473195837295652580120633414633287759486720848422680638651964426531200734264637434966864185747244675703521759295454137854139917478201182543046586844356827175110484399501724698969077338150680611199856790205193945517907757909563923197449193876363608975240422652889553431006895616594029222092171674081847136951544911249810284554707675129653233565796317086582037868139219867458416171065942104410813245830382726551040531253591446140724471312549026823265157656347360598519151758289958648579824122139176791741210396771571754827421719835843208984038944780124136191421657912866446190174571428922513314558449621216782052089230589177052395314630862617529734431787722703467480911034122125001978795261386536045853825822754639069963378077352587075463893201872689126902690309649783015788703712723256583900547917250442046366491802169134924782110295693549998599555088718497441099858561104359848985555808809074359457281768096325912674310915478691751104592144862195304541405851000758431555157146535336271021921477754423700578831681481643758980796478978872822788828044262787564854124647042312207119620326494646462277987300446876508120340390891043653834009102674440877417581289821431477002954979341729965676045755838859721126548365509389157421813013029626128274889764172947290024230925404943573859796205493755286970866462768116659677605343976484296488798950284448924462483571100234282548795454120888562278266560413709364822438363630398252499294645156647421668508524814847608167906724496032914961854371686483447866063853555052876013063332861558878188809303340125788638033459588742236223632838470673262837998517839572205891491327484002607054317648428098503289482066927070728150593959136810058294645096653394197885290553249553946864804180146226657778173716816354327627468964893280615478529704299328558305227834512535235522303216837246892702801090730192565055881503494695666021615083755299911099388095031140701670515308327098247602521664781584598538192909909391862758954064430985366682809399247700926758518407262576519024888226396254805084031524316109957240429197850692931204187514283862909590886695866932359288716602052716669471533844144501566865265945729671502135763649654861902252257247907591476629646211060171491570299781917515371511890958996456780107157821322674024475128389264370465134219999375007395783849052068280725941734799281322295136166611132182894600362301231907262728784952754025068198239338217924322682547160974126723833849324962954420719489186491603007621325731518378038828691950109448365262959254152444106348719231704155628702569844576641138460850890959211702316252698110379070014486353768676804389067809794842290141817132047487339288263701543216328363541932824394597580124652071336494077253248568874216088991275341046585204148238768932102070796298928592219188489021504503789846167080318736919806054547094843758224895816481956352354695282533336097588488896316870783866935761357514049363276492380184849129186537120351407288247407153833126466685855036924604416207647417732969800089770741862414595147688041563115899701691020200262669073780699935213431638976188051502122419032514317032799617270003682529248540803568495104537049323088270942635198754496758436159874826465843290311953766621363151450968513765281820945983117425880921527009677429830692078479117069817025234696379592452608147295365638767810174481588115358061148392200663303113763322360096772724686653184968766359043280113827085908850056964780601983305487343667314679929759319725837319010528497633844411313180086864949395449412549757212276081215713678913898860766924110443373452345809244621474741600668086158582469670297803394228251882272506846094763817735228485678569833436837396732027235922971185652150059010161407407060524962513410085961325580215621881156398895649023152213476757227901729282697857947327728525714697664474246113688514742920060017800221490469479473526352358787862827359862461091349210961409599749333906041915843919678295292855540054868722797534052254571996246002624015893198462833350024787743258804842307076716437272535059652556396579781241508636216346143416754824450041793365537177656387821922191109258212787512478055622148690314693296236530404387466269586219964012120646049900202121226576263738226989121995212559878364662119147426917788817728438019521027528519008328021209105355809223510011401784050603008179169597301088234518269405894261741670622868839871898994136263644037621684535499453380528480447296094444298024586355806083690724807289900343098089794446459206679968893877256219608299023677711494299095441416486606080647683055039782027947271184341259139023778030166012292963930103825606987735810679022497593543091318509642949241619818359972860983717368465602862691987585179303082589464937127199088012491612519900885898685278582745958949675009298985337898690910438638062074555670937351066264880569684320412129395089711928564275935412369563109612570898036900378292046377738135734978518983923779754100353180163972256162191226023748371031130421925528232338096129089388490224656310269285281611756916002907966158837678282043471798879860534343671958255982914459983259465890313286563017882268407744150312595028367899378440873094146995721721240710160726783683031854867278854541265065893426771044588059702977644567038020134087732312858807776082247817783875845059478468487555857996787442688831324724888964866025819606971618262822589359401839090863341098979554899820574726900742090292957434565706419632154742261562749510761945506220467100330554870889606568484951118537721999532868194928973961468978923428636219817560071801754052946202285446549715498128803456892406820351711603861354402600406691927045432085569932812290604156505065118212478096929800926366911851759571831792210570817651755801702431959165003567322923620776033263554907462752096870022470259044016526931390645644683817336422714630902223190355249696813551954710408086599498546150049923251258281497972698751402102229680385990092928436040541150478316119755764609973871942986873554420137678030259080075053055955012290428517538084233858088864706617913906641129683722780779478955646642902721211681596248987809205643500883600775948782131172011164663297967742405629965671063987994814875880942186983619696892137547062428317468426849252173238592138854306631502647946925567071516653816635945324685658685918865596757222879338468490837429883884119202250406864911386906768856667130188899108192845393472997198940889221967538982813820748383573504081088315229183614881742904389682682730267244780695052748740468180603201348708760320728057006807725654711986724789537898309916705867923987048481042001707278118287453536834080667961134898564502426926454286551023685553133225378052542082066816041261650484897224892170791399738870108855740374343590636623785112988839191344077348843169324810151013001907266776778925556818608212135144815465236022221195682301503428831257202252861588361896277656167344240966649888441464503313855404256122735738564884770882410098669112877701939776847775112740661038774666361825268660331569525147697315387234372976799585651241011418110543378025050898336191882453951510198091699966436401432164585059124180788856361941920883886234826399746487880467075538040988329671522039326398308167540291629145398585669883957689968882817575654198320348764956614121654251957286060247518722959671373855574933011045257356604032924367586254714851292553975602979914935539398713608660082942872365689490952490346048815837450315490909302305889030304380668220301338896017124449479731810494404596556997931660498264529184185259127550435160778751431641023770791736530168599433745172596830726026324983965524403514845606323955302425759212332713554291287713842217566458420328198864078683393821562489360220540254773689675825051532272359237376812403496995140126828574819350907764246330201657875248112286180460208177095464749838140449480898927177353784678621230487428615991760275224385453612392082342533751979226015963606518662951966588073096133806020606136417265253895770300216585423039464849629314653457436264601475685192341754840059323001150195657821117633426329218547976283458428403327006365087621046109894339532946450103408336708011381215003812059653826169971528667836733294254758947326079657651348214975077595571700162756716857874486404751933558908747874640470544297952943968800935435007036219364604925354350703184804341053338114631011221400200841079545994446646215132877347605093071044701921077921286882999462911863384201009066473009019493786917587579318376205278300743160020248996523142295627983274569990689940996190007874877588012259912763073540606644566507620013273077412444308100013461129620094848430579846309122399773237519266950305959146218322499399807706724006861626320953631187363082377412680496692749092620894685541778075594968971840605790422286065172505484816734043818745804770461607981092077097248682423772527225953648538191956076468023664116593195509369872416678726769433919380548276646378911059777297174781070692759589364605798660086043798772039232650871147404546239235278749588425863832207805359035857678302307008122516100950404884969928387575063182324389890384965053463518313265364437283999849190464219977683584453479021330663281895196894767745390463656240801405494732048002079263001112729162114771955794050544352001218970962606580835360913668792452031321598596645875938491304633240845116451051558511088952097078345278066674461429675386522080919809227794755347149403353025752562243590560099844335240197993339670526588529172213108121561481282025412113894114756633954300786991971403865079909155382641448848683126547385013182531487313383029218319144575408977783470368544363553399358833911985075239254739338211585565254672236616776611100990674241434629600172062445202381834131289121542767873075209625830868816040962619215914982512898930469320667448799262525182823620463981102498378925696230507307490463710538145010060549110206783010624750008760884559503856220209355052540894610443199862483933612566863671599489706960882788046718425148173969057438387404991632914175195803991304785533679158315937894308925716808006854074986583510798898349828465785961665105937302920296560577965597560803864868841675961738034898760904688327690462661509787020078928206943900753446795610966986176946193603486883881741193719513435672710039330790317984666376904491755043984503126590018480990326475322815202262491862740692827057120116591919183139171784478355606707040054562161410977904131620935228402100358236263212042329637812827163709064076667807194376237032151849503050200938027709800002824738425228397232874690140604707206104963735399863387628409296135376981397396686774609614547437848794286730761034764338883228720874501300356132592427703098828904047818374751398673695168465674966948826774386441487155851592571506183748566015439128196547877656725954266200021804990525837368493423294710418502099060267746388852989844317299045038388529968065259491232159593933893420349029241413225758857644121229235075920984682545725584047838943034439853824371418186772042031170317687967200392495398301575102451699850880276949000019555797277100705239716877313112582521531051576629689282454009347657530508510486144619314962982829947808915875160774870802828125159760762239694008470924327991247324122506860752756560484799946457466737568662963968247949905207488386614610970853370421493287464413702388010905179036903786489872225095784603408560468606826626997985376334596632204906193433514099365017894872995210748064006389847976630727977428204149333193481380867146054467239965039837471738538310768339482165158191802044120016229825217998049893582791660686809554794564246317398604669612015809763447541837084500102338934174751145658071850031502344957262935082134964863611174557418532813174724145595257637617476293901424707740400225759818986941467650522524278637033586818729563111677154664625315125919935176233830618101338614676125110351867449548780766180872711630002970041832451956354726980513528563777524008762371274904841997064010616265863823766768062482665371445996019649651092001253415570904584167459053057173216116574680574467661547239115197571243555140257478749924250565641841337860685421559509505804264195817656284514418502353227526202829497707784062585402858912095638064895279006552625643800391156638372629653466376887896695123776931965998363241337685802766652418836558089597151197545731039405417455715452824029132554220769119406423736327548003088232745208302553933979245431609339623347439352169132585404340817113996063133150605514967966797407653313770984893509105631788546060418476102048472110281766306377254877858639769866265384204065423710505180283567696195008148713982815932934946561982450216086855434525530646330224637586546274583177463038250276506185243957243089783443268606760379120360824520738869946187587216903078412473908958447384299464303011086656300398381064234058092206421857728402496596966546634961492642961953666779304732406714132601438059174548436725860025548405601880719122233148778325681965008788119590204838361269299902995269796685538962861105557772737001381008887288134307342616327172809865545677484985455516035249978440300395859414005685873969717985826881815317426182602948877924885809211359084877125766278655503077583502612644761343809935851079451986934458127545635935888082342151124972756234147467035884231806822101484435437889026928459232715979699740631223508115608556189350146963834144711616221890425445740134639266554707609827630375583436599075698502097940425285560123213254039181066387338826958307566187043825563334540156986486923945633576417726874050895367971257252990616598325301484441750019693700697118938684754841945723040404545881436273290852289395300486866096558202279130295282809615604640334585105038207987483607951534580316054937001694158634626121095319905032215124705173165876300804171893710017426751535364481872898776111691122985955002063070529083617365373887091599485016297028150660726660552879496401013907952934178234031970371982811246092372106220239889998647974682853654818318294961980697043935298144854881564159488989132126942844944430316102588504662575429816355590334583641589906693646601162470052972455844147855858178617750172219627855191584659740387346545975272788793444023145022341452715860933701542472871005171724073530462563619332440555557748352764103300458873397685155078323472986563807157019851478583096881639861580610412427863302900497024382151510451272276383796177119107474576145468949729146479942447636629044714632136470905974496491503522991088381594868694540950630529055121311213256437641512675636561648205765511752267043736212400322061864218353810245279298456419519715430178079597722218465835775652640607623792630193071109870488660931152434557797077116869972847364952462359020549117112427048451445464700537508007143215728718972022735048886455090254750271345373675687398369709495706743879720994172392207411452219069563204050333750276987435741388644070090920129160970990561230003736041892872771569537495996003411235168545997668572469084564243115240684812166247554387010023444947748913061030100883069104337504872590365478233083641957747236922026770673869220370467165740935892582911228368960197210426616508123274245098259766428607706719747510382774258204572235112051119541445436429122936580276483358105957642196769539808597818038474681214880566646914034737889904586602286857466632420939928860404273311169129255874022103388599123468146830904460324950159333423822078724738402499560041324411656223211964659807108808430420857538958067387169112739532033801206910951282487013409087548443844004479434402977228892190757195746111372021641873346540350594386515931900886439555483939994183556863809305230642417444650130958841609227870695453456960653865938262973863076331673600164456616825986900035052334515819601235882242004631887980717439069136863882364940165805760468937661596367787536682476559319637792301134379864005725758061120176312740855030386281184438410577512587564054126058386817158313893294242503934276177761073884446109906868179619362921227372826795922593493341323016011488975450350017306573729033410910913211822027528740130176779097201543063367172527900524477816473905100282858055410869090534217057617876667720688563342637107720939816669618073874643553315659667346958250111559964428437161047485007932593920569958295959689865973560779520562207678897906692660278524033921605107728946131086071038311048622328578937681485126141047513529437297392165365921913860908975718929806670481992106952103662987421117486394570293681175365760228515299894385909195920712095427525859273688206344991825201761421936938612214646909135583035429992608799353009458081148991727501666889615762573408417480894019346922042260197709250575001845375122165967640679016707581139101241344477158010550660494581257351810011456908799598538827332406805341235645765176516979295530188912721957105816953077961697661588120162441414961531186093268115955739207595472745288801371003772782283549680820144045424177659377947656791847380241941272461012021583707635197101648897402992364223902700828906044975032641670173353364196344438933306475066821718717478378701072468954360239881074681534697469998296811739849474898540190394844693059869827846203132918098837335391488254008024346504932214414731506516859903964263637262811301989149139219525783750105588466198582869636981189950771832737999065759536454405416954017546396070978433863848650481505369407235864040149401988602329020580593760064236206002641982113121427434953604549173011308340300026822579637548543917203562627624034607436749067966903788992443735892393526382964229925122196427072040178824953768903391257387304388688190994360392619058386464989291379238371114826970336416627585497434274283823748262752318308193931835695567955216170592488171230288898868472395066987356072232845681510832372883203636195286772156877662295157780994681007663842934941276550036817862497332032456297997322466271400816364026650019593050415492244895481693860443076822482647131161618613446644990693118926999436893704886172491893827435726006684816992018574866537654894708221345425742014401743828658170047849444818188169971059357279681750221682365134504873045961563683022870880053559537728971264524588739811126178706766886130806413742590273812215599516214950867045270097091722345665545349620910143302224255273966583715573012805539230736175655354114006256664671143609569227776231161518240938056603143783596927598164362328665664115771089993969262387035504571354414531666634156592942911010877130320948035569638266609971831447261237249301445915053194341902787889097728706050644774922176388545924347527670013011944189581203305411230271036771699195247506715725915999732499046368643804475155923002740017701418527179519279177410764233021163645007936657180855887916838901443699215851129292742104786474496921109447715389383272996995405587393334855380590007809420970879528171197717911991004457541450732124863372130949719104634467720041200932638593712252809283073115930654964884208020691275757737237271146840182586461315582847920811795465284759233730422210761812003941527741962353520887141757632019204631174336190514648382263630380434381984771816827141841682851268935316172387384339415307927492021221918899911489740852644469410553079307378273291064380912784382023391254366142575182362862606313450083947449033052421198659718495183123303755264285264764192508546872835683093408735432877282486444379711444873239032430959971362352976756981912821812942292835179545532708544118628433079726752215796802681499197990218565799698232743086037615942966431150054343729946438448316274410448161964530815012314891457351023372690983750706034667135099554490134855056898856887839389182869940832800003825891561463040111648239783235779894500928152575371472567143495976748092234792599388260398251088217516699671178646337590476816804122404409890345511233542280086199777305749838337231872148420704634354327535225932505341555263787316022179626338833924591733616623162902282150184180785612029467327954803092916584462480943740986868563452491474258132419015796236326508206826644590070148692274489156059336949738540523513660910827911933197332005936690707017526088240003870445846762674162190191134919613611799932728378319667721610670812085272808459112526958304793843033455481672562520902657912479853774410566821726809165911424652047209793501621268110412436475263668277265291290961854213907169245481625979565047296415964116068893299136327919556717871513608107884895918394429775176542561840555035614693035889417157012878105499647191751028677296165952707835188203286954287415453814907694128150743529009932910695194694780297375742958508915496775998786871432552402650138230361671416080559588563850440441061803911149245345987513969066415079224995389087120951482606258388374030710173624885719258875480582882534815423910794735318655970203519537541013998486042348336684851407750839834022166707380574806733364573677324165376084601184452667267700243849455484038747465332465553884090178730860127530274209472863753045376480242877369584281461616484076507862431294806866162283141288944249046471799697372293336485875930709051200674952996338302366812542399437975982660719224718557126335316370608195947994646563926053164041719429548444699481312032248520005178036896022410827336715650777773148351479211721146432284463661977752656433950777711962565434960670506868520010481335826801117150417013007617002816496479875230335352275173474845368997082248495287352227181420104574675189397859551602554634963710759510219061808648699822311680564393621104758103890872341608538896525314371524659693274225988408321815520078549811107666001448889511793182506837264297426161551917052432356584514115674063936417658441598065909817692824930517475566288751809731105489385782750041102046884894797335171233519786048760763838030084775767408435978654805137258967068543355405869638723516051680349138094210533607337228445769936820530071483802310816840251469262146869143060231687212992071337750300344583208070148954144716332554756394531959999458931227733177589821807927956865226857538395078364012937234298599917448478874556841307786919798651643644839769537594619591610473690028747609989607240931515044634923825368965995159317410065181070967515911468866141188752775840199776148410671851405589604261801659199611793362329950893994133460262366761180623829233022069016793493103934064905790783850673987872437786515524155843511446301785607421599489207681952977755761047393496525897463797711128380273209631240482769199013711406124513149870968340812268642219248614904552308544134434976803120887363916404909090507318173759910917638720111884879509602630089052778106569670681770650116628376324246609014400598431784779284156919135147584015900747087098514523559482767017646913558820887550831259794667085833941581343750179395226591107916147878303002605915785672541078598621481234642129251161811183543484971943322325138921538252540947188542042914050135681539917714361041166485231377916016723971844011406109884278104339733369106647566880376549813580033612611226568773038076927865317480662515778810903936001614114459426147743026165160093409962153610000076228824635869986769335721152595302864786350462881949256184286270451315046977664816122033179755289850769910211418920224586310337486527493646460424439344901323465112823382873504859874159926721910505656678438416966628677319044715982920407709383599223921817090243823704990546871767783265404191465318064640221209745662004484950851483686308290526726867290615091961846830991097123108651785293585047146192379883940226040930971911039740717488380068645747462047569600098994090036302181338086889825297820388026977166997521635786826512846254761469381400057541547344159817782540717530872188356818760543072654285036284764559788750615946121095095243118446280078649549437998874381218793591325213317663044684076155046814825751281286999185314830557074644381645794485664996645313084461162555738706959132829571400928505511275911888089502271870413326231858577892631341000805330018661280837876708562834679937067594474065452839315462146514518067620067330887832615020813817615613598645160974332125104665244569631521173787238974300631613552273022513430034509232308540094885237951785109119467211423805836866560955385023496814774838306803882346364316988717302349379425518131524651302215615777798210805125666385255741180623572553646294162051414112670148840476613934991450548240164951016635138217055288433002961507243110866979227821043135862122023586949168295288232751819305232397153505217478032547101197681628619893245202974264549975413229687768073657323046172892403472735920055130750457697689182506542201271548862556212366936552489225356396278852367047443905779621898036640292431295613091890961914272314413484685570192720112118399907779384580616018217470703375842302067243220402394773648014194531993056277129343694477969949591976464054577757015751649103023435913176363183407150622022502579657597870200850290368241057403402326329042743722885779493041817238719801528288068378747124092775242967307715033142199960831272667319645663905412057120071338564014766625964464886494615500778792258743798992094544481121783342543379084413563054396997374735658471494929437029201920272438070123171208248674936855213465074221807355614382809471030881384588275192580250543633186916372495605295731213550668982021588457884700637308734298533640332964857859377241938695830198029018099766672845699489738035530986826718709389393203402093292464498944840450569444015387217995243030814144951999362825790213036230377356831906205412263449518594666436902920625734685653304618482805932996398423840791543651201867083887279987373281953165789678277368621029429342200619816693878811243500150147913606625593829245762943940529433996510059223818803763207787549930207508969703158724752383455057549957767452975468130042628155969279453291897978985053105170898021375207908623942892182011402977587048835861828423172285337607043984563247230944096258735216456286049216684655089509554639764163547306464116576877170923314596914388812818336111931772729448541650663526171562817821087996397227921915112427833598726411158406581818176082497526002570136595299639062323968814841989338815948121785512107076388525857788590169573096568889734600962129915073238832927662561934831441116225286964450153446439122378663030462192775211955331195720461971353585610311829155213821593311751982625973430330379419080207081607697485361146286672669098818372135595758746053721569244223398763538849386472649134605086881178474226607297248270590059458789431689943326148610756433945844393830096493549313949859295189392154759452246345601392728348272786718853150366601800577246566694606572232007771263024964189153186378396953376057172162691649725543784520663284805860880810341057380621319037613871470700974268157612039605651447746672409022063224661810788756606376176621753304758552489887889874061244462678736670894155838214984111176587874469560523872414459676240962465773136205616631922092464111921552687755478923453999387124778073040736255699534798790507052093998231937091091198192413680010560367499485807860195642953403161834777974619426841050732654384520911828821919532878345298525339320957559998067939001383921944429274019784464183055342248079426338842895953062206883234011949658630085071294744878220043537125226450825458659193336606283253860995867507555253213688657536521911849009471323393736645956171739434031120840835633324633379048026305571190903541691519959944457652244031049061764455363690465178920743413535931683808050168283502293801987826222757771193764629424855555929267447052547810043087751308805448004116025246178366696801396407593888915277423458564683999622474168693229697105113821679678204882171233662252771796622289746579779111825672405916680809371865037056700748614931225250335763464964670223738397270367471902131124963247013457722058332155511020506626532179593430344812461736018770430199357950056143684591288375891826527285360109563371468402579584139975436083470796047713644674855472412706734396635521355239834605205429159029708638587477758390878861697216086151755388108549894734632840584470161405411790436164316508540443218924005815723964593888554116183098414121827864737214411479347255776590755688223835785816106830591597709098267875622543809315252237066075026756410957886523600468616190129304890519769783785357736712573029464664343497323867183368227414583027995734049187900896086882284440849991393788831784343181549451833676765406191847550266780518225361051960209498717310969172600826193029162607632176049154499036883818676411971639199728864775783939402448348470429617894290019094242580439629451805699634299163269031296250444662154940286046512188096723624667821109195369638518665059161711012781573107508305794060628383685755769124412478418045147682994711428580104019293248418537637780528953110976525008061906491710902408362566499914240300344516812914176340314478896305912026952272776008043921006769285243430544108310272883806763590158294356643441049371773931587023073177056410721573801008253655415861019802655775617554082838185024268611427990319717571944634420744705715425776087609715337366189358290166953215483791081047736431577733076861971881360649165121786318547988210413239134012161827711595808543252193951215956260910957220158645577289872437765121906572125645475553066480501109182662039291340770911631008527173600966040656743071483243021557518853796993833562220901743451909847460973495066151911574610841275102729910537009583557487742753476109362295791835681263163104987915932963251532319821923929630693770334731126856525244818112481372319085796201592389765253589938694295844189132482378489799655860143100090211203324359758433084011783647152926668140736555482528072685779799325189537313934226595014215175005887228656329944134332800997936663229622037542452475832442062399415234957985916602800984697239327021958725128374088643371228969142122979090083074499338557812531511938406059712689703600488470597202856958502822453231293576370633178508128650818542166804451237776513250134585249826139314016453891430050968234606419459280730595648588868314775966667465936943073247485039335905992156766688605977267057590591536179700100743092855263739116839573839987639049390952278132495163212370877979517403424834901758804903084217550011163393098298906784744438279109891451751450588724896605112261682403280584432877317170173166145595258417438374056183655090808471411958317505754075066353968155995271020226954344308989444572300637936111102449659457690615086946750606636792717873849527509027885265286255551021359324027634230650200569156599473966431217201036430830564422730215437599279514252096346777678898993864702573068123030307573932147623999154003827656086742422596667840661152765105534601191836413572610301325237038443895362761076217370362577385977383696968328983365030811585188692573170961881683023846564559217883992732827098756173935990905414185298591409287899953792992711149929279857202628528978974909189157410866038651716479178196233581348223724545551843216603011449490514040689195076958567077029572459777096323529709109282222443846027230203714670849388962894575161791260787827218912771520699022964232519394756362121579877615482416299745718614801738360385127674917705650934025916867774278295392664778032139152647461871616709713023716281496219792102186737594829057278090085071558587679399707418177370962891350304376822169814466718878451536719137987787845492632145599391269484068309554747298634545235747581338723145046960535430814297464895512345759356250762607084111334582404443725065586139282965902528146415707342730786387547013443617424434664862867469154484811680809012361727881878648057361137625459909197935446816372608754787553464823331715480783539022395433229463159879543742988913049101489604451710271452529585151912556625772446132840186014883291137030569451651961437672177734137974041630307386680471622175936961593011809545484038495921321514046579548238358881692359825384486199265779590041919493100893108975037406332879253091558733246292807469256313782827455535798614137635102383706381547049075762658971536846002007128096123974373920186648499596391530232280368293587007127555855324261906354000815629779981890882121179044437348779739277117549342659266111655584896964372004067857640966955329969658658850995028331742948953802374938906609504554397652170307436649666524633157201688508979289259810562486425589048317541323063523106157717749696268202074249595168210033325829109354294054606350640425842448297519807318564567065025982615086763518843160997583440241632365917547513018834978577404079421835084083362544173795977779904768597676459745396579659942155326912349270637216241130791091494344079294525874393940982992921051751075214740149809793729157472145391685465798419520072421365599328124722919404873470554213573788796140699231720604898964498413518267890921480411938929243355194714081577598391526252605593451566641174006897497910994203667599567293265721559392375375957382343948133619097991649361551560339287718888183491937433320823590474693116040770177344273270966436867051252163993033044193097762967522175581218381621270890616309643237698922700822346139783746517242207280757011067715270336045402857019374447961854763223568068342357133052173043282262753599889867447536694013970605122829824547776124962237059971234006074765901605485104467006428581291760209542509498883615508441416436921980694484752198808287533994034241498469007885865745769148587209619330233813456031852623076686553957181877280995984115728419007606088552817719873149620371195266840251318499354239029375632272954073832964037515367656964960627342821902933345253805351765448149324336683846343863589148289938830677658531885724707991660251826627376046749731796265974960671140875708685750686030686361543788405940542291994014786400121362689642457206506691446625357121508997328717015966017170407246058822662868256885919684720819912611126055157747183859125126141903050326781228107284620621304416778538406719754175742651774128211112353396546801363814796854102145303748963719073076531395011913777188802634535759544769948108335556056501089084667886712560670078162385166053463584465714099782025519486244364705741695920775377092591671823057615793694997742543362949784956772543282978607177402966791702418276383455888593041065860277698911286182597797255830047632235080264466472338430749104555558676674576836038252335931522667019851040211593996883821152982969636925311098241545262546174432433404268363288960553299237149490831009865896912930799081603173712191597821389499530347342601490813579380278264451518883290563018391292877540142966794423925958193153318297852329236442900018823916753171204617369258784480026585365585116316645217950375494674798675502920838827956957647899317404714854348533077716743482526985568657061947429395650123240542210032382142979129691077369951354762475641207198763360631893314666071631086572731545202532356525396288855652947484797237904379462658367703358413057767574203673984922307321502505881026877046731865877958717224143902402023650915821552156399108110089196477592467589938494019020292110399531412649641369401879141732970541862080575085763616423798356411899972617111759320058894626322805182647468175101872718337940244290595408782340868695518321859533222814269603829346555946050028622424719157593368233673436254410831480093328319026160424858968688933805907078479572973096045795504629315914395958682860840207538708731590375879324871778361773343233046919052834482656006485186799409280872287490448874146702628599676626746700833754286554759371039257889296270332907360415786758921118583708330909829008642633593253279940213422934844041864921748413569519238671201190961584676966238382140628676678974736795002995020478715242344900473272056353335480711581448024109423940970009086410806436624664583521131744769737594431666255549097604864078820514987022596498411236914490105629554397343174077502049947084571732682190678769447951574895285806235015037890469179635095375089703677855357032368899493148964838184309089525367245439180997647001099517838866690476410026143750402007014600468465016021250806335386062282586145325934097964470087957092689730235907617196819347955365231264109091178787293792999637025644199756026647672855067019935767358480505154019629003137466981014581784463292889623386880268465297804575576156039243129263855470273518979844483610302117761911819380870735078375114038665203918169231023016075129302508803966210609824766151269998352770616158269337152559098576048835950603024417905373807128806018992039631804608831949645094129700536404277103938055909324263692675968995915340979949863281257080425721991326184870603106779274465244884122641936720746249875649513933373858424086286163038646068847435737305426148001092513407331243444657414849195018036680333833006648806206817371436519305887663964202106659127045991761892174462254237662317213831601520150021091753787350449052620821331515812345784392983205636260995597061825540069275792259851402030606586274519398991507017024187962273266710558937869883674179654234080565323021749466437307053653847605728584803358917764883058907909952286785319018818340794266809848816739613101388915373394714724190340627620351582938000489883876124053227916022212824854575801778542607338900689834188242999691261913071080241124645378207131285503678109009069118866949674194545145059680011453952908087296303876018392668039802960672013854174946012106020316315734335422870707035355674784349672180460751115991170011860484688984266097221119652263428363046578543344862435495552199681420250990128705447667199482454249339707904638009845800248109221942511835491783920325945837994788606895750070547731717012441325946487752675028729731472385131602782752497914047122191064746198152353968209231176610010017684385553083934752822250633585902169830825580449528816844772319092113368347392474736172511334908366320624291458384100978797924645242763380854382466752178902476648153251197783641664826737695938849217049352035979344159224317034214126301388495035599474085350753684028207040700768332295670519553317082062779882635609373190187962252842951028463484337859589945700452467436225297028577494733708700986636558272561545308735428029654522194004671773603650797818540582730526283527510094362299580781729051480365474523285808669400816428397958168482924742986925477712588376211557363281635333411476067234622900946137784972687859301584140595121117173758061065888862119777186730662843782404187166850418781508828677197569393832037881466997649489442796738030264668297252145390698144823227947163345258772683111787330604329097797427424794517329698305371631372672222741106422099242200680082710853963530554278526750795222915925002183563815914141450441159273603216548737711730390712135443196808444295239016578210332709794245463146686441872825754155572215689069752201034662348029875442518625605612194647946036257928761031853208828731579932395289496135882378867804439276589766040384016908334878379193814435872289975373793143528882182409431570362264377395143452031373320515455564966279733349045335736821491786229026769416506984622568965499446804646605616239897892120738323880240251802377415035559094612875239444297596729374749112088943897659500750066226288214192902721426199942448635926986033269954547889231959437558525667308909940779084336369087147444989749322008045691050211783620844590365916336305307367407277525963196644586993775441111961203501478119421518890765842891574986314104062142193728123653611473331172467795990018597183950856846867764497626627254258814868970204573042158237520270488668948808439497742650763345288385590756461386268891163591192096191460034667255210752516343718836796016946949525633531185136222493456077073662724194676955233377049633508071753158614133232158957852509158528923085950146189276543334736744279806916684362510460876399365038335987007370801847999989145158424227302448340487180465907056768781538134779421522821230982041372019024512222500350400008454603896911990839820178940561069328866098898777021423462736025602546016455020475948848658070217198794524586583048801655755653827769487771655136060576087756777164435307046651590832086623584651371195342106883460724895157959338938995072863727708463332832833583618821671517733109522784110350623639550174863142146496232614319896983800589079124645374602951922684636523391907457959982089467299475817049868912579563488815463638960963989303761986711922926783128828487433373180968769939880333198423378506700821885091458863803462821937552531485030322337367794596423380976720829384875573182198744410729825223118346790330415009524327706619255010048146673501886919573736752843015223063503227327441475923252338680866328248496388681152468475358533022725292944564260299798148784965935960727769041852118270325203479076784815871970701492556867756589210490521684312078833214927636047131931409074836216396974035412802054477779656859965230066541289290353773441239014594694964514221957030477993590426434634384863331932614240256325279449852808235302159232501070030310663546672881962819417585903462140340531900783901339295152582004121807658037147665282877407994733860604208256589376017811984836552978470349788334422504977244870221405975070176105976596061488509123996125673662111652664705470636432082264481677442238401903622243908959075269534947876396206750543784573605021974967654753423128379141569548587490836792325277487910710847974327713574020306196594572667657129098198161392508126853830754473482376509413679610057070791584525547707962460237879081888527885680842929588273377538180506016711292679787466472655744678033839601341693162695198921479693657165212945991487504172117293241590227583533039371549050289206738377705781433686281024156891849620375933803950377448099320498943498643975864454014678102631672854496984737396829731743848768782758295521789695699608830245742806598976271134558080826245493982439606409027258203164565495921985549320456056972811162044716132274753047554698127976344235718644701316836857798400279294020464644834505491748351647956610844221536649426089192359720377999425520303106902235973397964261491388280355765588657568620866442304756345546443151642842306970839426291149479811394399750821893692532394305584687172784169376563976554918597479582572304275561918441709326095198583098898349564930383587030649880412702069326136911880007510984767186437329796756327242009431606151041253877079889683049642203519103104581818930792091325584959871718187062029698565268910146781582145586431319403254441778679474185758641559247039584092854848946407748171286699119743847642994352424235669994212472985117694032527638454941391440672573593418566513032805146116717729411713956500450489492308760621840051011205059824065759335225024925499040683528824254259203016174543174816407186052525910827877702865583959688254613727937438276636247813945454392038204474859862536900559558658224943258265912125825761419873259502332652828161230852604067353351662627985812188750328824979112355051258073313258249816124286380626332684966679035181498752232414344199228215570632798243865126536725943888651386496885816779234014624283531419359451442457601617428210006230479179998906028446455603294245151039033496115493998959417622278891463553969013184004618477271091808435775703868936946729375872407700225826604090744883225863896910995936812430706265368666665071917064638163904139908621561462380861957211542343363425191123256771692027066872448950390632303710807602042049797696301337618862239960092749441357495074153269366477244079008638040210337406670681326698144375411559536185594981142166165070832102944997079201623668557009098583273622332975222057867495573549479991442726986562857196688545433698727044669091014729202308447165662920995326489647695836914110328321037796475517251520684409534832989091599752784661904599490745091617217895302934863923452453431420445798119253602165261388814914179268649806197219730123349084235376779621256836451857124387608984265921252000834895708039501764702510161240517937289155806288142362325319602688380320140442236469560126557604963657909846197601525768771004655968716743575870738078048800482989934751206218891507060467664249413771183256704906841303563785899714634591323937393687897924605191922666677297229258210667845632484440222347651104900287195072183914092589108852316337760013941227863275907443389789193226223032626977701163800326988869983587900075047418842114818262783086056017236884627498068806868349939677647232336886490405337289315314901470859439471866398274582718553559850733826514932262711224588147459527843237043538626477067944374089829843325936585709175480706047457354210966950522332526478719783096008451233346870779755966044599341059535999505770533920563929107026527964970747063157657718707476847257912797106905720388834422356848626495896685253312001621217005634850320764123179083375276200342034524321973702671093744008476080497407081509847435819275135493239258100917671258093687023721010086749596355483542932035525138940290217034517362674909984596518288887584137824587550116534454556150380622198747150723081912949780644854907021376923793412168976027680589693148869749981015121584373871959767227860850745926841167803711093020743120810551517943034166972673655561013468967265567497281511649036684046710881062988337024349856090541055941024572819889397595817386326494672846360285162396048776525033422679930719940415308584603015703709568013672351670211608389747159251504177885859548395091644473816333703337934860993344656501633010816888404217162042485434577511146621922037663674616645189034244817781112832350152009469488716605953688483614311422300325212493281284355579899975857499711553771507239011012781765509630053604848537427805974385820870551835565348003552833084040019759799443029582966548002399403103361973293059595508271637227148692820200047239026847718614227389771199483866269883272946861548723526422635969730572648242361464763631064476412384091075105799806162542222663231341291220744479268633214482355176760995472145281419323566125041400145043642153426888266568502297096438081403252931360018800684754810990288209534210812929457458104783687733662403849356868479624936571001216056306863888705782923473995550311090189245133008056120154048827230636086634859495194885011433703049061298776769278452566246490714481676630009026029835110242112995804646358200505755539744573660122358488133727955041740855715610397050599557634118726061083178689925451313341573416794112531270522856745923603247571613039681510214410362935672239814177540156159895050478337977768729494816365740168468295132750792242090774382645266208045999620046675068775978287693440845751014514244105719939530596833795926129683559699345225209055800822827604652439455848480531376184143837646194528796594099319454864780976863489060069436198425788748773292955455723039229929747299441916056157015964110490737811434308534688087941235099548479567860113673363254239047671531514550346253037972047672344689501879273159329003075505500703832859171969629673145632885621997604510457486594683782924013355207160278259023877665706626822517233422597580918861804912688535525379761690950795058451022713868517502655714838940016250531997388000325641564987044554271597421880709096127830270883967183012697958598770960555983294281136132335271265332798855297426686821040406385697889926179627831594714468581158210732712524898614431364101776300574687252062543047570786482977267033125983483195079956307286219966264988989784823678429528847957449764301292693844677540100152149273884669155365249303398270073486289130741141329406353879282421614749648069328338033638152314150528967103696730029385022445608909633602768407774501162630657864446576440645079463603510765150162195893685264367161517636807676048305011769883583817037309064562276879865658177217786760482092405519784312841652694130013182086871412818233475291077235105692523480626339928394554403019973619973825846428516106425486452217363307810192450188115257163591478879337842873740861641674376080617723750026664649025308478409421903920190800957396204882094853257897042791397312009282024676349878722805853583112233445905823274705580775140495791361941568267739810210483717976662566583866726277161056444866806780253395657879829648091902452933084178182988943227761606362484612359049083898130154792877226999550878332847531193884889499448086785494049722902949559990822436176272029740576561254637046736877657636637317795684184037888651968448067134575810635514244034159615484937575358460493478220592992859916153665145083822569051900098166531212966258501209031290811543262498730598261227082929240602218979065271015190558660698316298797883534083083860736809897055185580159529890741173614683684628023786674102545376240315252830757908078103970772424583075936873594229427030192377659112368124897477542370586023659844781682614512254956010352577308430724846535026854406979184064464572004684750850107215308794677633639300705336127171917316626907904138160117972370360948099758884394640753188853336840800998216486407786223937986174785768456596338954250228691123227791072724687049792812539951869113429707722503345427750327289859166593623786770285936871606040717607469648088400363150841499441441837427780532645320208832428688910109477301403383963524250560808472786204325871344495262678457453924613519912714087494700275583682786920010332980237559066050140996262613243985893196858516813997232594752031903190111217797330353080491028773057315273667960611626169504994746149808457552685925138232504792856756566179163556760852096170602186550644243542527040882088314083501635635129065052157248110098617054909617019131518765891780600862974496250306147552242511204576502396510709965059973152794501976775321235598068841066315482371589800963777874409568890212650779570715713421679054255645895360634037218203010422591199099556256560465584692852562374008238402831198018508484712809469964638987254558122543841375695528417940520632388675919792584687575946478536841031267769814022124097285850701117743788686796244672893114864181276980482623917437997431925723729114848604548835741961630391359917869688066274020772883614533831242084134189404858931835707680952893612795344935623264550627515743952579049085816455698109980771761562524454190227110947863848503740260922325256267241631887347370636482696656230549325238737142760441613997467972377444826224790450267545407491606653903609654576757529495631659159180377635236786039850485533256861354204303919607705855164334555306057332828206673379835717923089809392917503140720480427090536895479605011761386133230243366075109536567582794649033703926031673400505016101486580755656563074409411167658881575151522525236796723379679278363163910332517298952177292356657239398258058553463461089634151499269028192678775792128595681409985865692066451240717536460738827111389136906016816664823819106987993056869023249800214951587984626579797057834360723510707258603334616320692063619195669107805346793764620706907872311859925163809693030724528702895611173226581338670993026218427715166391285190570262380086875723103197474049005629645753235782606853265539745059208166269936499315016803630315907821262643811283283407900579379822663321914176224472956924369564213008591060253122045913840582856183205090632865419153211834673817341177122121418568670040786743198815553746659919738757958562975834134343668263329396727309009400491103791059084000434222132849050971585782838698662298092543384793689543702711321850783231539839375437137827284500742056059650780980501835850390131934865886580760124421564773469190707627428439937607669329999119158050589724123753046487624773952112702815811018818196783329539135536294256557973306547221065315429035256108944524571723546974469174003950383624380631224173781346407192103021263328895472530485009056225804227293039193834294841588121778028954186936947508943304252514304193444287211741360509173081022121529443063310296587394451593829257163123959682001024181621032446273503527645103294233464789485326580432027425094549207765054961769744614052735129971542860432624244438479219795966781658594786390317688219180413153427121537188746506843798116174714866275212756259841313678834335953908092448755629343267046422649900107923569207135915460325775654527562815193666503548094635951263843641362673925129922913880185421123608285826468169848269635909075308479628843266716140955303926859503593156456448270193241387589044136039195688126586378016697959428367382889908915663537741628110728487264680549611364095711516765831523968528969724346250989065202288259990889750253468037661459170142019470857607212612833705596670522200695330517916282199975031032068913926328267654808840016334197789958780689260765896235189128238956908740252492197123688840530127320807064448175682634325146275010894948272267313989707403231914964271296838030612683698821873475836266711210904891872842263900877974567454043095092139647304150359777598577062991419327903057183153383457549056788429003079253084199245604938057231762753618768077806711702845268617802259810763546581818333507500493879800550941267748358259781446782757901107444883184856024771788191206829915551411087585801689319085172960191112264572038034172445696244259674247319588010762155250030786573371381623465529068069546253868105092875373160693395417676383702835781963990885408366074130612068557610800063375735679557985273887533460702150384488678017870039689935662198182205699595314651835629015152468241372739350198312224340402084528215105945953184162242860689065863526911794635410095143075051670380076747177699506638505620237912105950226012069686562067814356118509741615214661550340199608032580517416198876949060632843168030064501319397567967239023495904865924802624961417532310195518302058853165700298068362977602826097477657209019426309332757577909834195255411562979721053019736594903994768260305959219642609009978209500151204123343982424127971787410302461902487635086206708888770159589129039061734174118403837041902187987538200255091054468822734659913234006495216440225094655222823189247653753638268242476852464465271165699686012257334501813035174670895406371453141129784859878327995457203235064468995032632257325148233476957098986748308398634589645761283236877096372870307830692743631900634678342572251724532952038025363524548037828193438876861380981216052824282916645569197374455496847259959314610152585471466044076139004957874654522080902483767400668642344568600740045883319696113745001351614964035250907105451932474686267798446891450163559091760268708190003360203736961597670571588124375076177277079004066042587669591105990648349587800369513881028098716694536485214586446157602150169186972955392010739804477184961195425615620739517752925922064588539767089950774566020400832580330074122578024508461492452134804341258050411425155619088724425366704160695744585268993315431375030058974801877365126402116313625273814851749631489161324150456461388386440383917663099204131795747247535319515856024692136117798250422142632156987387009964027947863630916658949105438020698072299953496923558223339281546089938997496722541804965561643391364794183459529870969069805999236255530572600279286165211330508182719041890703645808967122388003352605145051773278093935194903260705226004678972936999909080340303203367954175614695768979441809288759565593028268834560251152256552482687669989976894409323605003730437566056616855720936029304914700467621719747881770714120577727482327787938381474273436083351998658701314583092215223988654273234022424594786374909335035687216667452817691475412273456150249353367777807631324095973013437470611712083842184837819501743350572416338571552526742400118204609867775530304344836342272908017547400964117952101198465061256779702049451005508245751363615043411781295751584005004007958502186748088252115290271239700513451950138879244732821745679668239557593073249045909421441502468166414119806228549547372456065958277356652028722159577982223970874464831693671387734061834794890465898280447885825501361592912787216265939661009953683764953562390644996063095698951592489859994534184213915332001709599897735503937756444480792736951647534112062920136683458641209012629146006940782186424025305488110217025026009572217079268660468356939320488474836078569221195515552201911861890739310577697965441519103487774937044291779330787653969730475929188541899810343861956584336590046535541928732974222089274289514910073045744818267824353690517046171750585068799438858469085783641608432662120668624373996713727020439224267676301748205393749679995636788775362815728059892524440023964918372740601704504849832704005416079934710578398565127154716643150171112423582137723021473952599520955389878420268518176883824483334960307161982982317598584217420306471404619105652485405375495675486685568736842450217679109674570646956196523906906097896419254269849520980015736095122387672529394196417611617597861331705405832729566743525955684100801687745751789699926461499410931244541728637455179130337980376755660187898135755682080903457930482150136395809396790551975763896984358837998701318820957267202510204684092788437560684648864988384966364431041989184107600299895207997071507157284914908080716129266731857652601710883925955589345177417726049578612638943478875478471986231268386803834058420590720758195272427991820806448200242878265357121207153062664523765525502259186765109911028120346441877715873383123257012825917301259912048225599043576939938848435147540017991003431821209202418855266155959535464907618775218702034766028204623254267175389149080557199755949340015914260339383884043620775131209808180536515694402081698603139939979353511767307881521245056856976349756323056431446578645092660340894392229636622721647988863183035127011245975703958125537347639524998125797045345332311267541334306743733375331543088792528969801656494650055642303626114231555495247063787195983589412861081395152623597687668317981912698252699368943377627025083936115062576066445046263692540402160257974208233121280069838667401289764685704868291109564611570876423559837698770726307302866354463574654250899221856854599411147175699579851472350920965827089443076346956871634163097486649261509939677276674094284407704488529323125738767577551375452854099211009340407181367779676789891874310586997359305106743746217587008149505494079786583566264643325469209023643629113077435548285987456664763845918670762581722823376892758099676158975003795467239245438813912248514612333318175294116042253218225908828862440073174220749453526857254605517101901443551994568535671697475405687920160742404786021400425914008449897675724520829201289359144572861818319510699853064792011300248398764250972373061713872442702760675806131768291235403187992926012067330645716475382246175320021625644218773614872214907580385108061434887348593824429530721360679538873628528852595715788424919081496908214930439100338225036293264201588982169869544040394414131678732538433960991299303484133110062420968248609337330645907703128708340982805321109897333538002413984192389792322948584809184367586659100698264318539088079490068480239131572174705271799722127300641168359551394372135698877100353417670325352346960163373778334208133485619793216265384743542348623401797797749850499767487855314186513066593093025585559651374571818163690835992189371613392786698071944616706446470894323178375661145875401934244942586225584118012322977802609342982672436478400468590771842528220946830975379820345952609381728259475087913678048305439610821417356922225613269364262259311771734081525434063147675659847551539372377522464039151200936544848560032257606287542846857563330284364510936969906067035658637150524852171552049083663055298840048585284260656022235715912712459269302819954499676623560522781884857277344392992919110549847556354272852559438321858662812096821927656082319135169830558941577425081910363443292016173345427449648333085658129480687913843164878837091805611165442966125182714798656975181971363803926364513315762632553102902964276021107954396821005543097230346649275327685287101957130107529268409322785096273342782422190702680954044619208417530066465052933592849673267183182571025759867342983316576425062771991876038272799838042352602053051374295615264951561430198702202005264244087118970041233732370392157007624242306306130604931382120887163682614236365490417055317383168933577677588401731889581829402211671346217486643296592457597625976321170769039448748878421601888099674930372583304294663457587766763216849990847249252311985964889432443763679969364689564067353146325658025280510495683792307278025962963731990400504366928758139068526979885841390457062823398761983279022735061150262266642430222067860266844262053019382879419480705279540674430980369687718480988915542053738275467930905501374374394114764493174305997922783443492756434078526974015672794988511970324954249973122985700335533215122316282374498736378075929837352369595261483524498870650421309755591823469770426077568852259074628291031174168106257397808145689675973968514359621139659239001558833947593434299617198628189940467544551044963036284515717440005319106841721373220352572585597772347907724526165288534731198798523318114721184918901754687800587877759804767015793890325975613902072050860373189739504630164721019055045269917980827296771475351968436299578425024468703210739679322599452611059560567230806574847636933607307796041149416295853606158737277117674202399305275404267211247898379343685676559966147939338389821906472302121911750065738448600271968269929257711746605520798632480976366233195440345293353735183908564605459716529649738181730551617006925163625752730282079603782752637739424322305482879575386823663284783250663516514166076601578125938604986786288657267664902772550916119644265849237074861109528885078331762488699762175678472253036426389534662489281371501856380764711728836760074700708151172105770366181328440833009109904181257710355728811908131655521851892294491431175259219949810920149154698853927110986010360893814645291863058546452710529071341727518722486163298776151381283021392482646674250488868524335020971873752320431326975028853556859519101014954536854805578877525248697667142583214627486107406142174192318395416544405245579349263813447555428546885894043365982373714517680628280759672278674925742460473698503666875452485659352556122674057289919358781951416244222536641936379185867986142184053021300367796581283248510839854179963950176550263373982402598045118481636486807975030016268690383394438382960762483639950872156066470199390150197312064452507689587255501572546910941580096908946598751046704788302131976913289365121826417913406223750700696606164705205377649121021313818224954906696086176010761925512474108002967886003600945976371842524987977726839700810635803461067976657069469723472135330464477404987718096957564960185126841081598116849722538155528720175884448198656419174303722533646141371614384099627634943714921058689708157431369962017859219427477547040466489439141929526392301579010267549657236931932231452705099906706302654583456444820527185330051791064742494198403116196008470591596200120727208847830569874064157794472984148355688153236471580632028540567174288835725825127499880185816289403394605525832725880787135555808226979344726352326389841654720986008259984970871677562056359214417903934874784342461412707542062065902383909809744651088818623647485382950409312788723979279395979507143528876352577813766712905909657401664925574998037232638507976301147721135644597082128863117563650729758146794406766402501510319284745730733424199018590745096809097147490394636759999257074199397990566100192792685798341224664904893580576811237183157880721961244337320407531576073731688903562527310297816597208544911674010838390183827969009476437433795280057930330476276166228975536454962262727356980230559454771699821606961753022121280681229077896551293450192322108703126207436367022129251104899333232063842856262244286063099020867344760288639081668765081855732141591381554177591294994820214984307115504472071692325195272384662725481638098778277512831378106677039057763262608263449850196718762499574414691099273999326104696947543769694326934410986293371616340781712148747502936631111698492801990535091804463583190787367698118906990051744671334357250034660525434885433892387172121971889117695446246432234450006410368884597503531808066601681872229473172570522785367564813903349153026320952058638389736571672677355590511351308230592967102182818802611629141511043155669293845456242649113159006960050956333209990452552303184250055383961973222863383304794728156035481959301351484975400753875811919986251402116316993431711986412621538070816334976608980125632692914048040828567865511365921225608765226525263697227271440952998023443477587860346768684213490618704960279009064950302436223350578727977586176636073177489004639191663053171808179181137129696469555274348460876364124220443440149292794345567740446696188054015049789912576012435525367916560773225554043828311852362168956790065022179487722706155840453380580773013190666474921020490390748958096753557282897227401591125580911245606250341748250806880804735737303261518219335576505288355338667102457169657435092334417562115113387916408160501527202157395327285451334337193358683809574346357246383163134311380925502085681049664688518877969598530910275380770614519554833072415168287432198176138987470460741695565276448358515150960290420091948811907873668586439409585799803595016351485707156230956811988283527644658201478309681772471181461464505542981540394911103853301867712327050672851094435346205697615450941485872248241297463975754316977911825324900508900964543204221266964921556677236143372837292208301307222389404566547231074608617206601418423236573532351914358216104665373374625215844799782957249934263529043476308617719228682351603070152285357564546431055510543791140502127522331199829758335212091077977744255977882374470654711822954554936990240448513807254071226901219733652739518062968013462162122957487660672826539144940065747127411590666913456771454633255471024654147893930461237745275979987088761488414230779007643419415313650512196801426204759141724455283106165093036698906241294396304273119678872819078901688948084248117959855521577974999777375701084361075529571864494484833776729330076501320543112166723487496116986248817610143905012615015254591005826905488662505945769980102123204499265630541829565981177728490894686869454351813713214934564430976329064029164932744920708259329285506182971023148898459423685010085190431308078244114623044347576369618556772565249917428548117605126333015325912201817726958273154517962644263813616675307819817741080242117021553202647951083842254098470725529381383377262870818632527746610477851044214641955732180225672600952034328453355907196750532159709651835490348594110118584863284107997896549941070094747941772449605048427531159037652597794229058252406933068204517782010054373655421848350298958891578599984155779331307679185640807312927548792713199456955995925125439131616472718734957159002965327180966554692639925009340511205385344699627187425709640357563363562526852211984108410308257486983229388255139103475073808410157656274903578516486862493371678058799420048728431653125994658218304844755778658671248463009310877190076942766575763507829277433296415891755274850203138268035371623051716757881094728454798275506676238002924603063990551413871307676323360793458935493634578817671831535108989486397496858844677352865795440513958636724471253927382772737940032597779412866283580621826323948332346606381254613882236430895691673327029354231989608885948253715309870583176102319734068649658543640371993051645245058650939974220402410371825964446522176070094078368659933003785678690591752824662713455945903046332862066799085274493705032279294576620304023095458126574263497019823180518092438585500941887518209172939874221236039155385443793120289482257244836080495180022116711648949309182208736418254479988388208552002901884219437019619938228419602660566031498263296828617840748996689427745086039358725190925793868861353664694879453632866438471084387197567212607772084281071654788845092647030586615172113555710519439461217527014732933041678494309146605191548604444879045716109158522672856466530281970672220177569512006669144300670977976852238899142233325302442624120720189110933788448401138909318867733467738750864409867367547768767576657330323757144616416314066758568983740599988003508057934762410973035214015870656951264419040405036517429565523184407353508673360822141304257239196113095227815147321944925120870144293465237504834754834985469790355092170271972654228136136834452276068290052458498373543330678195359666819658480532528857764447427669501203624267015161021450252455307290779980234685557120549877141150702198664573746389334283539393907989390496455139309173876050344303408965996450731146044691784273695233367214247730287941761661519329413045106629335268855447780901355696562640053733308921856141077828117010830573068713545961510597956435878770113031604753438463470350580870174611689699008596769044362818268485699271107858672381938765786192484601458710323208181786277227803812360131177932611585059651607702936287679517321938338024667065586199811554565974955492979868996499361917983116232040976472013117679119060523362066852974278549769634975749633610281357873818725923801114554112867096601926052852838589753652895969579105909432768205559181575346017115827049142965052960353123696577122156794070106401574272881946224331949425053951404197625146498132075685888157611398385018754963175330299724458854772775084884309548531537965715376272407108910586518093585745406779018719176029482639011391760657804157156110095371330492687495838419970742731998359085490105849608437366729473959609995314383089456338772785140000793386647128615560705254576248079032908123646389347753847485043813932137227077090409421363570873554841209042572964253408488850213516005880804457112812600690534670467186596416389594043386961060083906385959257862052960250145888629771243635738054214412085941135619522543736557086671731834644169434299891402812546209318757294306423472298497563734683482817380048996090157867969101975617815436076073987632364053063630076762023727753394066257809391582076144177122239527325618466058090036101764354776754407827401014807700038609578609201512844057837173171534693321163719494320209289885937802123128813039154745800215775111608993073133932837803801886638407960417360062055530384799948617926790336971806840066152946987101623705603502833464724365337529878338111050939568835789555905179373371235948391628110722978786691341160192668705284920826486320132697423906727362562455579854823210316066648919449825095336508747976618478769526709301709779783067074148544623939589233954203557774865161990164362016212500970812492677222759516680486642896396962507500809753276400574720263704300472199883412733738766880832889347686120191787519524646464460075634210999122137762204998765948247905924777432079832571107800427706167562140724284796543210755773873923209547605856281273407589358382295736181859180840691175783633619287396968735962918638350923356217723211461929738984755719445652806226679779807054697767539226744555864628622297567715862143058147711949758218993538441810866887889882178563758535816468738068798874748516997939203298472466430995001141720893840111914308119434147512513806720736058494620066469390646991114536358681031795174716040410618801042006296923436504655419070834148024507739878841978749968524004350000358050781693853962348341014671785410014251141435979005482016789878872606278609055873456342803141893802582611346571446072325069652579668713257496819755444549496547758049113863290870468483999465251826751596655754251921263401152081143538239054565934308191117379047581021517815077945384255039061485417688710491826116315922932250266215043062435931235685777217872509238950535357615771273767593866018403836987197483509134653090763595587322728640270117081259230856842539516726738255337743291460355075152328626391010998632555331150723905502406404964410065848218222197353978509547958377173505798782853435700103210337401104017116365896813921398683343727478015861411414829916955375866049655613902051002559490064565586558704069375680032684609817377500153480626881084566536211454853740247291555555054100781156123273880136779909154886317463786763569791726126281627586518817505797240721951380329782961760065225817416959531132462721626587747116148488385839023776456326021522134876939934605251120773898872532325346059453813829061607663450633234545582200345816492144994964356946888527022441776609879673452456599105954525356648331422095926509778611714381414171507466131210723677884673079578503854539565349499282482103407731916256421172970836447217788379315968151134677651041260494768051396293504306450580491596627706233800582441476229400714402573093761025644002264127878530874665229596310058872825095875652644157385107581482190624597682855840533791255314554140210702552935078194647454954567776244937155023763430631502883000976119615998740575170229861944695852412880596555256121803015471971831855126740023697391876294744635765743479936698078582528400627549770887638304476800338709915141240149269813187806202076703213247181646824310706018551619991352263400973574572045841779755022073176555626130141285905463821098063209311393434699768472414464045819876314669012453707980170330265296009771576474904776590257767879311200257422596446238488923198441458572040044607630499200512509965986688483306675799815098336700407883880191396452776474495560466451754215996324912046123609507274740050432668388471314269725180169516337795693394944570546389989395328185924589537996290106698688795569426780178532587178080411102929129576302934340621137752866255693408451480146707850241568596871003092382511989493906122172124838562382394627135751728096647690025531392796134805008356014179275360383634132043921442089336248940489171777937694609425134853969577625805797293187501275263106304462790312025484450596015143878911316684721527583208043986035978151124430942147560682426180179777295726592419325558799381574084204920575205907635213398246154408372362464309373365310460649495550408391233094674057109961788088390876717783442361697134986259946859713160521862100926259577639605272323978724901611329614088447423786169864086596796208346075963265739302332358079988561445417706110725715549287670797221064412569862415068813333426340181814658486916527746323594761584698583550660560572757705337358877518550939396863286508533401316380052064083731339173541907875604158885762660157005629826666968872855869929238219517897156794290328933653936452084798757728719678970776369998256011870750808437664232000362428423908943058890795682092669125303437164432372850672046646581728936511470975693480874311801818579973847190316903796783009977435672179884863098693096136516385205878877136255135500844384548170487919781205669849919239067434469095115090258950122464433352701333710932832186970192237553579723500905760284761468456037856388611228065614391929664615734202298148999440143907822423141715761163404470029714348412162778534040268810338697013540968152978874009460190812117445085516319170833883307702105485230976480519311569776048711715165370804206882149065679166683714747870733765289273142312298004353017799768577662189629983259142989210135869426984452080160468186457216255414070512493998633818513553278092287701933656785899551039651332381552258505074950852742006733381572776181899360635658307300350130018150919021773773635409118420725428292028724845950185605758609223109988210484467008456392682946900625963684314550317795792538603245448161738060504323454158339326462295471960932870110542838087864608399659483080933309146542823074733707122676546140380119468588882515754665601864151893378364526383451473234658295924119100589294202336813602308846852168226895178185801578438191053178027160375756953313073114882677592348324807369995006837144316811041633561594007300343118105745563046509283705060180488533098699149890973900467208404292568780698265651871974540338173154650049277504932218866116119748146991903020577401198529265612581530219314193249127649488858207270598349024344330630095570288553830120987924497114255640341300946341399318784571155293720958777655847535565552664611984809787713299010289755619229918624169545283420743710136058961469601970373445642019341412840386320979740905206323169063669720499113951180015612586382659484349702561472789887670364935594833277978845539658726092485152293417583327405709118218527588148261909472183768186083515535757398493187613141607816401597252806661126618855057391894857831787181374301772432554788496289328519540879036183563137664814317994745735392546106396799120036270469258899353815945705966941596125283976080883908505236451718551850415297505090953427022756911201471497198330390999719931635089674893020093802300008867907337814055198366196106497766111088438097390416350067405764577019953164405467491059540660256430408144121134702269607500049334410416147083881390651768657342234229480955274615609696849042991949880755014434049474364481351209834364416045315391165989026933354561296519019264894337557792516389892571457568971187636515027321584206643148138362469044951611616775416643720358435431316872566405904523340944741896973125003608767277777863457888882705477824632020614389736447837769089143778582264814157836127173945381305288561753384233023478257742409166017124631936679704743420578472902618083593126287792311203225339912604807917501533832974305343146149798823669950300938983497964423708860987482824647857571503189136427337488079737932723570675316399941379220240480421963601353823420726252876231995163883876464092596529723117380034871905656505250772524254769396530747393484123921734225275783181571659440699399140319867293292253764032138957679150970237016418760475670958497475126837143587035936232419133627752530354895710160238554551623720787439255305706232843000283736168032181956959794603125405482311149134849112111854498137291405339697770279064051109823531424623256691226422640423401442219591206293818715694431487273841890616114326804442734368181092930076809902595223090030872914270830042480082083831567360997354016892257364680709172310840468667655592561660035631860154448035033470282938442359999541572807204205007892317292900598207154585957405029918379234220597125460037066771907913998457508276211650632394117906820757999443628384880231222384423172301049555320573685542147734872229863359166411225410816815349440020396558659619138444656378636641816767112127374936626236965775368247896407584630400295798693890181259304938411545384525601195462154745247015085098567546394616393710779351361476100214407516872258892569842705680965111318235256008851051720095290030178631816417556789554999850591227197077102831867664633702887607570353573704738959413071158696725898844786705504216515112070898384326020976366024332318351660774008370137967906077431570272686125228104547490578069255210918999095532347426626325966692239406155165914515473641782753719735769512742943809840596186194115391501867881508258655384634867599451778632499779858020775880153986927638217142626738327656874211182708883319736161431237120071608490877385033956513601062256585503724096939566009875482357466046468146821119309318882199495478282740777332666828088117431684704271254457516751818285337152227231081901669159980692917135684303914566333044134405400729023126055493880233599688129633570433404044151101959262563537090391520684802423568760956707422404134940450596588506432289057063052571065283386170941102408603682294966098451213985402577259553135704339393349434233101442725160310363149746588528468740267799733083068857014307957268340074021383984146222054446356768521815787100206901584261815295122424255480232329917616785368998335230907311549099628134696926121895930048714140939694172297359741477222241960832701266310142381312589000048595693863390478188030500408125884264785967898357585152647706961667762193002405394777241191171010182878117246205927592883648579991040130922937103668780484051101631303553291438704442132141293261702903162616357969745277880709495963924842918043342242906277257722118093229754765569914273738380434314841054921622299434320854628088347941863498723636765503748176596975639318215559327113583657347221298659505897414359498690298580240037323582514716924070676136159433070418664171422337918877143696673405136936231041918841247631312483170867001118290694207493519679938517185174112851784914198520396588308713769670539504842512523182622525796135928270432229263507383827123341013964172845460482265167254922366455678298693299556631966509248638273351978638389252254080209385046294719826802583683491769949357853604137757380085334476694912351119416462587371048837494247859243322630292807142232251918093377725917981030305653219435468952511614671526951085816186725517094827858781158019079224962003155452473556687827493661614316130412280884791532115759321372755950606205403575810307399147405667750988119622925539961936447613878613368725000739548946939550338844592484844445121155855039466703590203170809740247659476533949534408331836670351847368169735599603412265731582375671250679009432607554533862504007134006540787679369250738895638841728527520241074178656251232781774815194370596232803470256478297434165371213110723692361845930810353747148421982989575464821295534603074822156434519636709005971951294263279950226020538116118634476538079557107759780045296283459227095542046128213347482948971304225751647483600741569645297726279890605581509883853071481406200014846879338448316758893531408029325830090931890289650313979589410648532245150810298863153925430569595044625374186449736374356509713088586726107613842860461382451346104400774695011303564930642689758485521456269372219226716705335724210898812703508298477573024439248346950723810750536412932946688310637088316995930896483815322821931171193697039641643189564045575591956458936656278835151499319586180539853212064697954910714281639237104326076166564662687345017627824087011187132004493529957059135475053641495507405835726995015540052420924769315899811801061645212529996421594692492509856926757388069182379851532192986136963504133811410293991149442203257127529194797509022286084879368701504621473362623765929875517833186521353077911816217390062978424268526899211444110913673650456047193963137911010501766487684332847511667539403865849184128222487116879309476577176705380573573727954069514480370505756454155811762382413478666736100431394440028459634591952366674847838093016499472072091378313647590370270390740346302420865128155443481262497736949079843213051923057479128733940116540631038498078259876906513900470351605232438216854206910910454951462655339245302383959211954079389832166200680938136613053685354207619053361380588547344217855823007728963113287479112502442061709548058001039004998414040230273888994409725824435235638965506577820277247460648406845723050676580202282902425776644778863373451673256561097646521449220521319292082251075311554987391174854320623127103409751933580246592584721382379373206981680795768697840316427107840189459100565080986302879693603210150066860471681243480919811033376915207923679331208561557907309470051260371878555803285777369832498401572069081836504739669249696353049981088790885907882818042392043637426107797962231154111426774411059817044130654013004544919147043515526511425213993390794232190915647284285887671688348425720033291032199631117550671161941793411663906420884100625143768863333398672899548791811309658413605359467550726464638883155874007326600015893031415522861790271559795184656891700247564293199786035631461384848045084390417602421712942491536907075006155231104321580462247616044850792294122574331214992875805983234507182559768231453503546232306135618763713629749431312702346539590720937853369060782658159317572929912836386639084838418137780951891825593649898325940106116919447719446605505345480645546607957757927387553803133704415112379112041718700868579978732015944857883249907329271280563929622989381356276736977013643839126714580401490765348879193391736706821445089132332664686552970921188519857763631867479261632861498808647804369852745684015438712678166953630527164168653531114885491837357485017368418111112848577634959384433043825637096489522575385344303227654074127657932418835208134942977201666416337101264370244124653566990863658567900525112288291702062069575638815125063129175198813769547705517549354199723829165581259545963002029268902057509477788669062861014218233569783573046991198229139764832519669927526519712427674394303113307130306131249891196520315176243996372871141271614463260717331449530236206339241617521887993005550727518888055621160348005312140715737385608895674196310092046386893712212242091271601988511836427014160118159936808001184519401733519006342500768361261832924112530753594454399925360986258510522207515238597403046032039712829921389148437133183881112326659946286484632147163174669297430684741815300756318354094851745958459688787212048485984032684552368938697423949697360019940973193666514618746541549939282504134322013142714550543770320949571516565175976177693564850617795825469581672784644110017184888021797641171396926452702217139550838077025519704459908986137147926814334860096436599160634178603904987869429235133883325643759552064422575307049826928098017882066822228003659271852490256588348700834970979541386992208601046962787107009993262888791680784859536723591277576024095303204395162185421887576543946983377904692264741000333095491444387904014384154820321129987921512147377867356119941457347976252183273507547195306232406467144423152572394395141346731542329833668055340604693201097592096060082270616708921827677850533125642577329100199433681527692227695080599708255625380227179376372914995278293923777898090413353746545540103230926646654629839330928070998789022125480115800635766726747005543235455313834246798821834908391140209779567613926019566768169703524256837282284443679893373680149161743008941723705737454856481047265784960995530583961379520935900733391499688310981319618737788213068717279330603032196973211958628716567004067190854356348301482618629736180778612459128373779941616989947615639391121687327104477848341511216975047982397614274944786048118453743192206702448414504293145018099613390816596566968273326037367302950626895442714900767921545707893662768903621147783380482038796056364024482778832300011271016615939027416802391832470459609042696682681099077636693788020603323862843965810397083707788535994932859196960032895566413433366799372843593842072265547524527156989368991012895321338488644018078221818971537368974356035139076192524543779756384551605035668915647826692433470999542966427903945646498556240145749168309455931325735904114609154230932749885213320889815558343045545685910716170023391517063649769768256795267873482401273620412529797141137226929524266047339507773098551511101566323484653461436635609217708043084200925713152780852872937727128439182078745931291543581876794096744264870667083231150792009099101495361899172908535283648296432001697842421208544756891889516834314369757964586890159947579599276953937652735714672935846776027291624882786027649066358441837534858658896828210079126228174807910802400912417693682689832441763690229279840506458152260373951761554591845162296798839488685695608784613109775442806466631055335847104298654928065228643665932389526451497072686380800549908150582720974947013640632969284341411704190942548495253528186894876269567400388361788383484710238809165680973825543898962025578718968027091354863114688360715047774413986747759370587884492298973739470911474907966429216782394303465317969371614375147455582278418588910048687799407165074608205492689424811369624475086868232194219038891556652466350784140225500134027191583123035461362538089972172256095127040463209004935359143327679659909809666175263259369512960088821734316815183256772797546469107986950513353284962374767932915643376728144273825027816599367586003236201717433397813401122697916708385377637042300378043161143489776902462634353149497839598158266060878560457811781430122643284441220107114476930672333767542006981920216366091380552291266958992575231196031226685440921384710633705047998399538618630253469423748115732170232332373344538233034046471017268886459332277733120730089997840591281716739606225785735716671130714858877262926770648316570002991321929512750040408154269964990847781638889447614182818708481383632325901327359270935908656106275559586837993739346944642774819747075590745647043340413774367230537599800192856403215137690803300838511316918858358919754617895279275961924785963919050263945454509437909982596077437242918539692746162197751622073956629547979150763771145099019824026719437119305214755495045274572468376919049046760050602019470717447794991577305774890123070153450907675580487637349760879295392555178615033627427956328972739156682327168280261242070369970221224390883061190876375532978256461044759193048047369687039651742250191136206967417130655392814709056071361607277366654168932157623448346980113473570273028680097648591306060723277677481180029811708433895368817071279950022572222557705809690339941096734535628664878874352188796099811940078620325876322971585293907434004238162470487232581424697703955301222411630090151077310672794888411667789893657571304559268153410211992658836322171228936599741262166947115259584308498470720152918794982487945131176392415625328658068463360573204906474565706964884956295769939752943288329394657733879668906085740841994832385600437210669495210136356976597712770302800122615177172513793905228256487415462588775445741791496682022612804695251662468208856618204239583867483699952226385454134212905534843609880165128449741653092311672797743023769622423137332310511893355238797782904809516631614327418078862349676222098093546512945328935951736656890197049785329377318659622285023732238949607309469127145135549424183710314820893463842905482753041681251725092032914664532462614775304601351194527668305701871570482292084511346840937504148051834131913973837296595139700405853537603217467009183198619064259777914369236605752932254675785543876321548089099021922282759097215365411638545921659327467272322095009979313678923781455399830827113911064953839863685471467913579126350930401475741638998159446197909435433021545963283057851824694091899914294591543614767469900618544513345770936687740503389506786595065221340349741646543763582971090476489514523902976284884055906546010872112944925369337658258215468270575046757310201132896629283179216731043148528881327737392868030319644006856062049585037881042825955612874768015158823884549595948519846709093398364887865223116160316131030215265438786420224876737472252883063512241984766617653424642472216956286204005192850897726257487774347502660173251681774252151614135351762997191688243047663054142887317580449733584530458086799109932711332519952348816855104447656107822370620673368481541288670443968024804774349922559197041943991624670607477326886533633499737537810485138398738763088900014673958012539294905605266224649508328728510326774768488793723808350552749250122907280141704467292371880868672642693290270457353173787530892630234797652815553015010018873709494947990044506279042923900344903504011047910206765224470588071786936381036306790729988186149359493145656638873142339675846702946920167993405933044858818540330617025637707824173318069327793183305757961591915663778886467519149920210412482304954952613761281811495192204529238636489060057242852261997483703743876745396266640885506766686489934070229396021945702845809881375195729918383353580866721617009793643764358178169517193778199667409450505784871582376630906913416237812672670946427262042933711474524089641482570859596627259292347743711728427985095518365963549870018286429532464716160141440223496657618304439637650571952308970900798483084049768063936050147222577743916123386691375608327312454718884578432650344596423139620147409665223615661062030470854617653416764205773372584245821728795502798842593795919353066186635930722532757219559703111251290935033551265605569758073380287250312109846121655614250673809434325314610195186007365969899571243564461162025199424815005289493122043793796091943251480681098850827768359106050458164026549543215169745467911091135950986174964634140002294039243838081582893292543479093810197588449658650129415451269169481816722312989508446896645750837907939702009370684489600204690717754574548028798273925548179526747844341810942506255436307963843891850132632908873615308552353698830660342241597024200626670334827744323589462517256277665619090851626563692541123755832313116750681934724797261634604199413331454163873838941108225101737498110010424778767825895619806721935493851096254376783604832564868808202628576580503575553126398858995416331823270477899845868420426875570360239362935449608413330397899167094726320538755091364382425731536184375671025969799944126459888718464497366248654327357523654557794679240071621297365017902844201423070519045072911198129854733522103988849007246220669355813844752440119959238449391888985510808965857082899257654465515177890153889640907543561246510991733516757128721357448242557270621314820317845835325683304860370763426010112052773941158608752956699259145909768273910779683343812080485442288400034348260587720391443421684907892927423514138261059067600474148392435038297837082812970899642904544778732169449822934426807648983026165525845511711634862965067539334161697445549486608756814740560024992209367861918611077656996524564535729810030190165927363483571875267406261347804291524686452972114609539603454880724253089608065771132211787607755228154969539392087139245893431876875807725087556598508362342361470132022021939578429408333497625813968975641831276284796449717804044244594510523071371490258163307478799801460177693907040332771591080802734791055230785774346905866733617434481802552786615404885800632826571913771825229734382986359166920325392655805752534142819738841896749703170719810249271422087049874744346022237069004064383922791501431594571205387931019227829429025515443769466460800169187150017001280732462717769562596557560500119371263269823002928338924829614233308713638225648726580293440649179813016643016325834145213644478393415989360787467661363105377919418859377760821410534942479960669441769380826078654540520074398030279863392239652431625374097607513132397456064542268798626706079325115285273342494383392126055630743915408129281802558372061861999062528524593401886253638771460931790077611140097604770889974108306304790029017599388057514546799357615612470961919374158954810683598647488762012378775331697664357977347875416164937305356345983873724948209977653440130466033540971103755599913337545309617141873189077037956454800343338917843542150447499708342376168043309311914686610347004667142271749685496477700633263618142241229228444847761245396451156823849737484973701824049142108562673453104072161489178885135339585308429788780631385014722863539631763758953316893323877229004583092290902617291533264540493305618782144004700408249474113300307028800435137415677565811478115196194645568452648478100736327691206934198924689757112836469933938069543188946474638324243489256686206433323172906582046504435261929567111956527932535317845752247812713642765134626764357352732342930668100096188561097726417853116865572936081597877233083851819796781066381783052253329064761742078238096126414823176583649168411122384653805526642316134745744630783741861332975956274550965187646021441609311858189948302868412974199289293652889205685454773527783017366005520141311060288366943693240833058506529617993042973295809706997554502858263224031000348697787722178065245301668322624965092270062745778011530428482333724931789235354026939240315228015945972162609150897156940758148294207797446150655860558788372649517671034304604259812057124352978192341066077877173538292245284471260662528331111939475600519980721990995733503760903216284587545556504345911211335818606456847051186705921689809850402485578180968213552735800720516661905690137468786014371329181834382842673366759391024675085965811757727844916367512139872723084992412125493725156911122606389466363724272573951150350208339478836152319921706411255763582409693160472267306248164214999640364830561651922777856610707948277081677569526031680796144116854127785415857538070814016568274618200237674388161098089232447052745394128618997915740168210659152883365965704019248044751051045594558417495540864694924558809668248767598610163467916315294694582093334069738645107760432739077488714119820206594417231377687415640811034889945991769018710855855760520803758470767112435649238104112525460138716329752365084133326386837970239479296471540007526218025846841767370804268376664413388331729411309780572130103914317945351022695453139474167385343607817796806719898242871358795330786176271870469223008841566427197814883393334926569189389944419076966344201391200724836877092934064908404638789273724564030167694947318429746920210690809178756963366173162217095239512314838445029983910777396781743968347769398226172021977606211603296371185337595278156084693089099712144447042222940051099824742247345161095871422058705245408568066919029428018949325705015629189945011365735648388197018645013024526836010332373714352868512000354752551938652907737585208745330377850690212740818779544187400057922587388712778817369145241059538665225715530180498357191305425593016850864648986148789915784807980538776408766898626966804036565851355324426127144328636237091089577750424671508541691190816042340308669978502163002581972247033952302300618982962757617089797926646404810399860416975380415805008413178618348014342584057192968100825682880704344224662763591648237747815575765747314540726918235455842787088639910648461899059106797557744068320898792509444101379100893942902029105862112559350423002841536105477262746828451792264369495437140671870324028439580387552782584685711535080069216821244337216230198331863262571354051992630263000674256941809942959206946768511201778150644463127879956729335711568235365541584436708776918909123157380429963546964996169754357049072667742991911907149743279954668800934137637774415238473676100531434310078467174725226254563101271666124904295887004540805602263450067795522585596228376162708184823786103488011138190309965579665341632698540333036555435543542874604913414933381874422391264400180111062019203222429127205295753002928000679265624781146996662955848412136146555006125123709111566616251159661449994252240979501650059157824434326681605373366178848193131114904903092232186982804100034044816379077325433289832730246755849566969051019171710173349925654452931713980713768298105513707783494466136698145723650846824267939954741738715912220377484693535360307191156843078663139014167453304272785534479078572963692399818316584025796766134935992951499577759601431689445028743433827881697255975339452896941010836137780465824651451974970901007548683708076018471231054189823669381857800009006207997043081432082122653210928750073632958057415141627922716448255671761382642629090382027506589316085215135067043098014498443925917919435300466442755353967595032294137661179748772444479687825748036357013253337398145083577175622432330841470701816630302075395602460461702124092408549262280684002735895533665408823063787056045143330916594419036704583243468408832830596030886227457085865647649111155721481468338847986282067985821791798574600677242307789120421837353815145861136517035796489861046365736749305739514035519752369220471908185976332137252775334509149760104001732552364713553550368488373073913281010700934726749528000693654787755748339096300993082258730404843868870212321666850965329042854516719895189128879204510480717905147210710621808508233157498677782745745359805378268882422599241611362486917505605779868075160605964260110161907935081492846863498330128219858940251126245863526790551818872072465037134620870662358786609321005896468093074935229418344649180485196007768894493424363691852385608814664418952378763760345340586092902997364752267301198574367451624522569032020721772329983995089776726695171963397688267176611397994112635441693249237883596830862515391789957280415968418064810906051928975719312623657521862037028483581625614599362291779553064013494629202534123839695259019017521087810626313182774451156057313203637851140053922603432480899056108495718272805766637828603919111532041125607608854109177586768762803068146652390239959850494044631738058239763699063512958088090643670659386792922853507596669680494780273247129028425295601961761565329046316770558412024241151915509029577043491091300798072232792305595680371617584958592850956870002917581545157874452817646104344363872784258890916726769378464120457359393577402921063049295632241870804190708612518612063586437059962965738249593258848051541873922237824889433076741404714966565727351051430206683884327767656563120452019628414946313925634054744718085131968036419708110680471468289045253403528553327509534395996773626650929072849336760453235282095988406784930895177067240918154847456838336308023534237723785994426333304687841330448574074048211580445386686898522620814262616903422329469265324810941293066856333561479809070664474895893270969795646502047224396162199544408846385810980180869137558247238034954272849851256623607420754060113144426852734327690538150386249677574101839885083517261363745149940751580018042339046217566578362967763736421058381877341320957933830437078470247688794599325054230083509602924169492914587054666626529031966103507148912761047993943963227069922964827745540867631797711712070426818938830456590350913883784541259510157298599701135851073560521821017426515248413474201825889368121746306101383036134246053385310761347232745354133718103963734941844272709680598662761068592606693712522425361415644758855707816472430537218392813513912110931597992013342002028479557819047581901465119745974919055796409320698668374032851326296537587584803751831053282803471828004783830006141526663574147645332507499046593259965772516673499961701311339311142268125043551352411369915342995656554388140124028083348621247114540944436738746852786631023890941368286925044890748717830192135438957374983105159316299403155288691328081745270947957063867293915937757494157640210435421728666908440399456391179813285311236497424947798985305192507603029836411625346383618992483921417196641192982045283339988241172487640956977034716481540479619212999013169887756885200365385987264993509662975076191298383296205240239311142450634880862483336072065765477957257115340635218295020674079929104560837768924621316275582090638272694848789062982280393243595602923564666168387821699272424210195365971795443755904847293791993403957709233102466416651452815063343340285581297207711466181367135047618695788033494875907590854033709036097429879733256608830996901718755055585848196436146652675874301773615252788454129793459131645609872558132322100177539102300674844307945527088726432732715335287630074176695817220953922224342887119986688646690774134492129490251780612803353631003012509457607417208206284373604114569212811971090342828286400591587548988209618906376701861832438044235847037451104982506323080465899476392195604709783730712575374176066610233651023402762567693000963421378600604150093134188835765661770111024737169740121329089678320357779295895026530679450331560938614111194608704816390073198404389036368558533401198242519788932104503127599559140063644150121166925510343611026630770007633019815922864323998488315424270607096562341644656403313039655644610947566113508144746580198307686387458850588619335052421882702766974548737028495835917220685814680534282219030841551789645488363768056403181982017756394350934581228829076418142640063190895119839038371856589438932596980451505416241703290825906318798742581348055252171579437969458661896802037257559518705472433719266265072100460734998750985020185193615042077598520857738263336670579675943555500295537362442743367302174293913320291613769761397007665650572430207428127986983352458631252319421416559457800530480604196263600518201514510801051135085496797733085147708133429274170236000450569393191688796002356520997822653264456308387485988750046335711968028331273428308420883363766882035737979334463010572133468225712452435943929542842697495449317974774135489530060402583961337399576070947754675781175534914277693441769050984035317085675296912937101141360995849181717691941649794066318795459662708793061307535919107116993913481279712623422703703813399155625644387579927762621279108313357858554186257260989939604947433645475289686107928149313883040669009123001636318244807127901496500031744624431641946938911627599191807879780495131152436435982827406484999768570135084158874788755813614697014012121521955588787868328434694543691375128992698181963219201453994906397948945484829492972791826185207698974138870394392610617052646565850711620105069335201725223952631264552753502222093399682301448989680955031774371018653388390352701781314728488986650237732195907156104017279026764413202287295122475697997900323932829809295083410810791043030121697232470220078927783846093005049802383316444106644847965910357868688857391330656059149605285806476245877556348633378829716797953520826648644856080169346382073423761197836130105696692622085980649926213906292422294324241920078630684501066157824731874828254431628231007273318045200781390679917068434044277977783699111968740961432169563016591386730159083853242274445733192317539816641391037185327938717963953910865911894138513337874299660741948270881904777937953475947080658100896219836598218749310009284247623227877739393625594589083904098282964820225282369678238722271198709825106688211770300134225841863837984817558700959055629069645665611359922312208728841748763479911604485457391447355095857076713307869174370961223425540712293518226404608921481078244589413821362495921145356887042233764032616072564924034982017638511457577212287382028731609457853834624974248520088195481931971815847914112911371999342850014374877964221745881608175822468431267223318392269156081207641400420963396576690699943148496287547109711749714639725091730732080477691506411283569594782919480888157256244606954889637512216314445582188255870005069116416075299938951123046189071888203580913669159625627592625300737626937170824660645754180916255532958235194770496386878250125808675432803198102687814918172830943973809405565594314285573778509231697093619316120376630551180080304413414178343956395542046929945196629326836313157802337249702755583278219054484324535967891619712933101751222765819784425653414048446647134205340295019023387085985341676747939179020950498865445995885620955848397723642473464545456079607939223564158419403246494835483907265902113211931685468588928555542766636564471112284195684907398407941377906741409838698378995707778360026603212572443389750266458766154943401292288777652252161711348962508953889383373824093606201095206678676840592404510046610210396473915431696683321712546462229147020052789114256096209856936605221901842159005126519350351864999166691304208329595009771711015885161068498635599447310419734500887071898686182922242193072776771432657806165697967330159966717475699909934799003819615736247544174360240296962526117638647982047864091208026753420533508394703065065753757666791064585873881358259997222285306182942137073839602753149944897766352988747320105452006454129869963970238742068304167865909614137361455069268327314206733335101469294302370271828667133552648390063854533262664639056320979840042008489394885334005752384141621907156272443288935891123327245746789258701384086782606982922001263925737346797057118150858105961579626841211733841196883285805480134306114859399865251835146344606941876623931046676883575717965079945505012228303453389800750392553443267223752292572656912635044443371473958262969275472210030457798584124029918033183417383864494353718852752868232710611060685111097841743158493422866263769614849256148179001624645833904418435960373902531360147662811764456585551436606104256705871711617486979092060048920982830776963388697710684406897734995557051621851487524770532766990623199602645443489117176870426633551361176060402503585755036466114685232057557846675596433789033366408082456042845738750170548380376964265158883788969046145272146897590806515431215088601901961513462176708500805730594646264403103232932132033733579605167836192851270873553981331481517574596231213553688842303614254793734574173089635733455168445548662156159842860311104100216417686395550885198251310471727059954617793159219359689431268118586249897695805672408130322223107987094823708778366080126685634814869549995427373215160588946977569109035490975839996963200048035010979483757833701672377272988319269977552711825358625729597572660768377878260614043613124726854182290708345491437474148953793085074573834451579626669113087486213390925986055535053765249375957419125162299498677112822868555884212720604021732649039022030949932323719870240008171540855159779015930169260309615288375505666366012202442012482410898026322177348926668199852869535547813849385862453157933830958219094117563286526666348812545214616578034303012911316152184420993069363545003575469342318538412643528663180220014986612150301120235206111771808655631854414633681065815077207981752116916821913006695350038294599331689231292962403211233697108934237389150945445585357914779448110662003809601626079012386466083160212047728064515433375408353005986718415556409558468815112766097489036759346420724751572572914703663057822952088264445560348521884626498299789185374486941040847955956659006274956033485167895972824405960248535092491433725663016262599840954280603751230091007419992114588695691886535211230260581445218807133396454908060592851489023151960148369285975539348181519230908510957983857632361595915599888442494625672136560373285185830984659330547375389023681562525428151739400689865892955593354404425979596094057121338891149054313153415106786191907221883695296082560683324904363914806071225086373731250060409260820491223784025137969665450558586932346457074418663734019152701524377520403429079959811818873549663466981414982897136474815092088468656059119046035600533327713074516900792988288432662315779163887447249470601784409011694173335235760407786035833449887071771290929394515375476660645078031829371696287576475788689470590121995352119412960527826481828814864186577121596739310047686778076160938331262807857521446241963861513909432178690196526527639404341010745833482574991973226755767992601838250309901615385043159729950757187895706137585578714382765108734283328508448526588356674503992604561784777115173708046001821311406994766924506409307332394242004349727877371276897127122137944896441988297548118392283784015851128327699487929925234700186948217320336572293378808045142591629934022518039475396839689599381370386674155203338062299546995735495955556687287222739652923317003658870050383642326719116761984991039906792577044338843848924390947774390314066641784192038622199947609470731289794522895747886280400767478621479679275021572733928301425781883883061145359927108188108506503361556695893967883305797722332760182265183242783229987227788928136035920499668995283760149066294294418779277498196247042837731695058732707596721866882289395970063261906187357509911102137578965952092643551111111769624856496708082713734361241217792580162100847677447964932642165213575382521170701691736270770352754225460855753127024009428568981281387087125444703664241898549251067780405377114636616592395043608921315825655984970504574040079036664596114256927022008467101081899234380295402727423422383622242596380876974453719992955986453222499544836100577051968473498153430533350750180760590358100840283467853781102436895293595685054278178620278744635936022341170890740506410311771988349606945063567415061962361117389637682116320935148605883495659505227039498375189588868089228317324025072073089603803847153002961822250590552801956078812111476482229099821366743868616719395621301889131759195887883229476727805130007816743144949903663794821421416320402097903369514419507776393868991048421144002098629844365991130813965710821450675728620301517498301517467697786061294780496412353040982935408904142451364777142747619062800588200015079772024824057485112120156147562777164575511375240395945272840598569358708723434833473637488588810187596348719159487811547521348003878806077386817005192977019137484540179585486384349059293078690178374480321076666162037387622742058625643336314351094610870914095062440360896693358256869723100190910847053619436355986121319466682092084320356671543506590145175263559652873227957792404608363667510513745704692854351642531914459913730462522208122296571473171291695393036690637546301258534712826727134232038306213327696449017829350458814884414885131213154329051736130875946555696789491191221856724526690991240781529959467057709534236484124505150383784867423237687296178957293947488769151848987877394808598096133536391946357000542977545544847590721276312990843520652999803367508904704534277694471836103465932916097577395393365778224586758334499634696007583014270299253876488692694422985582457332268799481285629540540414280384483347586703774766953511197723806469977645605199361599890656762410448047011529236111451205937473980002184488320829452009982641580203080387550520695643354763472658727694903603312346170454637806290022817203165813575921350291271859728648081170226903331638920231179381764785920923255666687908916938891925966383996107060223886028240091954453870127896958599801126560481270738051867309591697618015553131172543680010647649956961783243335181586834060324884964008423684550775301466180084303393517800290623921175388781683760619120433005474929350416635688815808551971870737458632095234740994074368491773738969790335939025834696702345962726118269962783612196701782637056036484234275578375174237834756098151082192182529638278088902307567803347624369949827161316873245610778176612730534978016958274107298575129622940026537748916993583331036765798022325828285787210526067437019408117228062311797514869552284940589496509672746040407630121228448786614703421968027002214852049467279671149046352721809582106640020047154082550304516838837235957609684326036929803019072564914353286403643735249415168564665849479299452027474530378988052629659519188715953727615572223544280267050779173471225059045848044641438535185851803083076979358096787157795129049922349540081363542115593289718875032997493086856400963983791363914016348558409765849281215255172137368439260290907774518609367273059069620307418734390399078388198871590214329682069628515192553629534262600672648689244249611095331809907413457244232893841384620989519212330958588695106116341409501311051301927029452473957740419603693240350094393766182040416678788343121849069257025546165554120333332008128323220504765692652605087997605694454979009622531224584265961410301876192129600447769686419057219729982262670037635508678769337855376456246004491802133699268904858891960327351555190266391158798937755946316365503300525548376480359753160191612979992187406726090656378702540291314554886971315959398854050811298467217922634016334217475563742564085930758558829843764100121166851687359281054504738605109580326293053259954595756322908221243694936968452945109642919668833407779083635294351084160545463520892897183971590055134654810712984516039925640094322133548259848278028377712820520121552602625967848338007115335108334267636640267639395614278499173089770279922130105785078300286152159812208557255262791003283534741460456359320757432867827744766191209584460179563462923926532409329234130165659950761315751146391754507283574675594781496726507397389779524661640072705194978402950788531961515053890832299760356867345580343318842384245689328739766301311460014798857302590822486030747747519605509757965302810777393009785135541831961673669476445982943452692760453095972192499020524613782372685214763715969500802699712534709517493934988995995730320976128779646066715221455922419296305333326181137717117967282850098313028819184057198579688307889888367948578351231317923080597650109050309754230824224762368735428796145939394819596888160961742509293568836164699443429150542070771381992528482308159318034283075748479613607603319793072836728393384565504727166728057879881275298583459983514831163784045952711657926065623247521321663006683336597829517979053469606171623650595742182527093364224985077154630451605455559252845896467715147394674422409939554782276545924241028637437506382812200609515876213201035679703215006115370925191563692340017549084107687285864356327008863325451408595822901791808879842501607741053149252461861966910512410015285994579035665421180656187177533842294461240962471876716561611685264073014903733049692687076541859707300821703374440976944860477995707603844465608045859043181618093213744998633702057285722623926364682006956415182103562601449368011082366135940416254416863368302013890795504134402621179277140822381621630568651542844768766195100567808200913715966978847611044562140430325346846776649227032180728441532032742748998261780628480444419862124469093718997698066050801608844632155317282680825625437863050333047728608701541903415836750529267570677496829998935365961803270803947766030434732002654954848993606708492922497449072966638689797364481338091163666388637165875502012374896737322995396057813658301331884758844392486435566751779457607445366366220979520364925478211280211819660585948558611520874702711092653429187269333539423713661528445242530827868032776018114304532774403631114957346930452970602097916589929889934111009337402118493914526623740333617008493000220544952412713020440084714897487841937095022605918819458980982529028695250678403043916268013857155312619938467839494571982618152838123357211711960859606901917626002295123905307827235258377155435584686425318340749508305308968565591181041827805005986079495688887274530364170752939780015220630900462320303591632417767165935713730605890173405598112785497898854629090519052053890759674667064656174964782119213937975344999103276098380180368723542328526504864531506769425514987853076115927747292726866499860246236040266320278805826420753828473815901433138337360496798538700957930070452785284492976116799937413221282333074630065897209231107328784114571959763145812309103183706900874396014987023159598363413106320806293047826832211490527481643711191974635574688295013294360048233416064063357626271835557649462461850829868640850259153331053097472736844093711032125829014699281359548718743438486665793815522089967140198270053500082446854711791732266108936000197988906753578535389337528424406769304391781432619710437704257288831041282396634158336475810167745064873645373106297891093997340240340117481346424254715376644567413669091644799831845626829314542524014352371921392178390467705692263116899339773896721214064682767711519419722217885823151575218060108363092862424143312792795556895025592229892806600301703387036804112295492266228084222991802952005281782903959573826179160120025414987189430032361214710637601802366560827445783734835294426134540787919781374118432544893028470276587738246773675567865263254567916042432985815046896685986160469786921896737940711850615655794387133986477343067840083190364374195835305772270196451633735016126140600025297275332669945056055135487689931888726694437901279096237459092786762298506529825048435117665257111377464429248221067817197613277973017915262933070418509397457296075802083307944307366823337608617118230198770945453518232595062139207381839073857460032354220217987496455303100809024267276543276737485568032453350932700032853535872747190100858092435508462506713473070033001371723267430895674487165876087458984705453005329692029328430393810922367495569499185807345515385896582813999513625946783077930240779142802564493464097674865458978551461587332917888103223093646071363292984294833204161164096868801636683239497756259665739328401891826382572697394857999125749751134461574192255639258617430123166288279651397056315529788023563637170933336755670525986478612318492207546638471538482629964135915632745023588533662751145786115003730548870741659416027884377262933419412719696201028233464296286349557036172875685140304453580932549120838925485405207159608420726147653184393463860677272607360591976206514122380134502629850390207791055983867418273439649546573225103666991972685313977222625540218431117516135552298811167388427981795098077269340233499497569056098202997496962382401899858412680560917465419095067467287900249795446707637862562355035132634934448212254172494883545524888970067101524218710970462694650102554536696152195513604802523450103950624508355848541495418791164942936933659666546500957370661558310397836960811244488032481744316811268056469139637504382134701583159728999933195739427111809960797917341499745666056297060867448241003303627443054684006634238650317689167727635781818125520173656536833626734292605220933104965223630052549015622087034816373300871232003967169055546852705771480335639402323146755245802121942668984570410555035964247635310557413814228868602086152240559453612929267637726927189554779568595547156334962017045996774698721144807641205768348973890430562501719475207451202546756323065870759926960374714407029857959563141964300475258027454648390777722635174724102399686378934073666421631241026744566911147558849253592996828410764378807202017911844070041636893459802155728154356443490186114590293090118814081773929775809704370188293004392447627081689479000331826283015382857922318848919955260891558761085265427526592899632474162288834869187738701302863841801362265333115837901925454719113171992510473846160053733482807395650087424569442511643929307120070315144994733253026338304131331036595928479008774501857282260502722083715895631132575403190341349480264513121188235901148370848369534240820543432814745226681829678905881345649219822503315303299765213961793662905709870757242663481669825022022168526513926689001435833264368524727377394348578332904511172085616840701115801858912406643980360234417352844868610354781123818218337944121764952159321977567819946043933831638173752449664262672813245964552188843655873368344760946720203828957045965304309433819944983750178121101082065489955795794700013727587110522081458277182842524711023223838038831274720603354223437426904729590710907535206746650722561171945892126695992486096063892327639659910542554563627157110588381518409684700078729859247249844085588997451504636757614413758180361396402437691341649796226542704515595435044758377440056258062735410979191036282064868783812056858777557920308744924750987147051915841320843619954484541919624150956782162006870361617785451860638667562387793971383476923659279207028702021979831926302596619473728749255921510112152003517399745779174576644243413516054923047952876938096208967962876834332788916493128182150631044133106172503171062338791280587962202401194761313580976732192508194205642421849334834211131349779356828547598260515631103190659553780353960065660205655569329650926613555858085044342659628879183976837670007803541957431912878452988941243045857217749804778253292438004784516686976893129719202708165948728637569786008692226902355658238697779302561214761422322106913461591946912418086241258527863599437544128452173289138247910435843315533845048633918872635727747347703461548566413149577175354583260141863069967845098008567855629796877593013908055844217816556358062840970699594386111395968494268149948383183597830673819242453555321020331556968153361537606162069826454063538686204931454371190980854224102609230204905315714628469373980970375990214320956299950757517456885202259641815457900233218324980340691332235562132941729785235231892301032193859479239025948400342937298870283425806400866285770666280121274367989341391656846897026569348334010617768267605686711095691142706666054108842046378984270345477160638860149444652863216157963223264181116549041619610040998911276879551649742009462051543390006938767025384865404485439217873793583290682629918463958909222189724154283711555174446124756131047030408330263193748396550799868206572300346422044793504692927208437854015463900814563033719586737515253727509902986107406631905019229410877147147724685228048817326861566905833123680013257236297831146069871220636587355305610874280072490933520406498440289773881664710417169830231084118899378160542458949108106470792640309753443320516521211684417261768344483276115115234835958626415531635618545414378940277988668354213866318003858021644039669514214386257965988463581360412097081700019681481385868766344177879549342636438227497910260976456100509134051942702741651388800225591337968639881664467246883954513556618260894274428761745886950149635361476428672902336689906788479719696751924014206384514154268862035042688859568740688318864909651464255596726557425099329291093163227832750467891798655734731324065024605289756634021663089103769304201918475753587096028726106038707716147254111724848913794727484076101594482241494476927737666694159795461894505319502158268734961193942354771163096241393336418274872463010038613599761464135119029773224758537662162768387814918135202366070039568412807031696349634071285229313838743107427947368940969261608892468670307705410836305184498061344069136791903746331012688283985251504053997446362153023396647969588756945172361311056497242896454952334479651865399487938156347642942522715836389488115590466400668773681974140882482809759520856689903577881097589310339601183936453132676436786079200774260820572377254859034395181293767410665590608745412120650013015689678150309657342656145415703368452419118307573736159708379013434847818427537763493044542778159651828125651208994292869244063451380150662065879512238479337140571283205921029515425364043354069478717198674425851078860790608894744556010140290231439896840888075149087585370307120034187260844481881902729031931135942036433958071465258867162917665046676219488730816170577375402663990549789253798786331597348829149121195897351879363542272599782858253311361814128240737460552195486182178949664198621951980775069626860232273241230897722067622723931417116599302931276746806483075227930197340953233040582022384046701061029027389404962583513175352651920908900264865518322257288706481918999632401050417323922733109846105749679012120747398997979124427038934661957022193993834688282678632494725962429140191278863970163584376518090241922813753643217130263088746179861343073305457011080758507074618297720983046255565065886818580172388778718006482180455048339734696320950360957734636042632230330805943768529411791828927826593611701753891521244853707759877443368108435012015586287279046709202213468181979076241834965422384052423867983936188145560628459641183191607053962865012987458602622545444899053598909892022444415055580214795070750870634377981896804215466090411031339300377648436687554525333377245694559169541612682114623127370400570618751913005837253586819266822706869888760594206367870401486581038467244723715942958575561056957496649350850769952797329113360596439330958675987128130907451562824540378466956682407203234469725587367305026782044804382046172968663067469396589681291439694970494675504004760675542709467643078251247681875844943317453015907375991176604209823450790265503700718907009919262530521894282706934383894697810384418460345641224305817834926579018860886457163246244501283044553050383269236831760102191072211184780158919670107194008377318651101982628316147555391042449667651624038080290462317394715920959653667293564795905393417744281461589464710852571066757597910702039209528769408541609646556307468236589847005369035327090828243995112328875602981020943205220094982067920649475611279043519975773193162202535384356206462734865954515097266584138660267648902374953391619275757833632348612263739781048871093227094827260232178101886977754660262324301037945028715227535137360558377324649429576377840506617357640125506067814844395140378692024776768615915999175992163033362567348801241611695072843814138106189351527263348711833847594064426588137506440551664065131890665824917989000652555173451145725328188415163944500991336302264987573147977401266367022332919524061757137075719580704109714688546132131988339017012437454569881808710517741041620889881146971321585192009686236782095267250248646998278500458764643209213299045749077115958639888710374456128808053330614971572544837783988028292344934784366481932003451378225747032704842331569333521766235322092378562311321781376754337907927939311121987200171069542648937159839474439738727453753877647855704266811886794474502699699624853338932277657585257486911331225141708915619564912994860995207111083055326649169150756881509795679281366904597674061552762781531851452686186466846302428734318408872233782491958429960899905837614441172067026501596257434401541324490542402776064890078610063662384296745083049681249333067805051087768168825901633809001029112981624210643944950219268344479919130021973816732345127913747193466670827374816733053253397882643281872408468177106822643517652735249215272918846544864060883264515715522373043119019662562834487307667600478875056929622140478976029135797262882151289393520782484125193426457756102192148542104638091229188463605765538219544020206519154585887228230827505220474285646999532784122540157913119498884262642880585375626339843773530063342857285402370301831712748230722384614385408339750375352697234148681750789127306716755968058618076855147836027558350651916820034547276167583911331381908834057646648101191823991264874317667866619679704018780879505215447098189659996392916436069546561915900760599764970860397365245882356330536245532622234180262758004961868064735712559026689394631598998838746760892069542020919668117434731690497428197225943643233066808380225603374257364041914926365531039225556932864547623268650105775137403570602187328234967422330253173614394979341036380764601728837173319309036224483820088164313491981423771648868405133888831912247888132528914992133919978158724472825894676562899728301868536304786129318680516852521405874114898824243006650877749609226613417374995687478106733610820954407879006247982861542041882810877707882221639149144369647556812703137675956244609236196376990001340410912105932863257982801700187001305901906918180238034854381224627807813313985725453744659111432731711880417267518338646033717863023819459419153369282461098434918184752633937441510149347926010379910542003447791834291029693620245821266465333021927349309688577087408146574156732646052514249905189173045923384907872222173353934329842183040239254665752975215978795871275886571566101875079504332181728048756702858203725371455639328752903448774192375975221005268005726966303438446417253610642495139653610141885379051876476564327628999051641783880974184117096539388526292151266561873836486214186338488995796249211085859074891307390888867562266245581112744631390096194859993771492743602452172012491258021585997900708751642458515394469896365700411493156002786506459710787001583622457051988352463212271581643895951965037175606093890939109597410907885212119844559254564809068220286335292167053331144829846019725264723525972790708236921107989450299161088972250600744583344030531031986735033417041648942856620790793969863679630977511950061269487854506291685204709796981715407519614538131874306312894686524252127000973065905409518643880620448214895004999418582619937041477814961797811701977086090195031741763941648914214589954499037045297046720807799135629291642361520496424439577697403594946909186062125701352652647654786987977812208682459030287218604247351237001150245858644346380119361905954206839489321116894683312449626400003449809895212881948740812407915346359673165344109835690102493580564214824540663792222028788185174284367103597853367091314713207197610382887310235899174017714595309314954432707120657340165333115969288736676751544440198694165059372568340327703470083429008363344921744525380429310978560676797022740254115642223993965712458376795871596660631033676249150930739050382223027776540675237287692376186301628866049643144508376813919029774486032685928515965360963325367795661040045689207952071944015278767105007286384217819229465467062466667445252774800083267414766672093604775718742183712551078803879067789706048037144606414106087534975869291266513162146026505126618803861836193961602064456578623648364223272028569985880930570530766612768726850997603599716369929962437672156607208088339459023458195298297263586116347924845439029621526465795122669318923125979254019135665102617686763339450706620564091749567646383595924745201472224122404768931656322310856954973841340634362816473413776825217033354729221527587432769032165158376474739285611799612593517715044021442555262107300129587772139260299962092700331224436564361422224734648450527799931575828787078912189964715477301384822178503243056908326651797765782819045103827993926128885074397761781130048720611776096133909057439203036198192952287242270301313679968789429861498242803998373418655163350089269530857090035419625363932110042008484614763275948190423107355598189998553134820889342679613127470526530932586836185787715799995598774433108223363815925126574728986309331656381807851322253363911171900015311672264433740163244749637876630717496445890939048003344035646751709204832235697641889731681702463001410468447001454413317935473161033232056693934649154731533228627671454460427248944543460236104121691883274048960413984529473657740138148760870265910295226971819236691435904820154666816417558031435090904198980810287260982594786142983122479554592149776697907694844041961116491355567678681568839791230314453165463477392826110985780821197068247756850202901939280213495187971796299962426580746170618354706094602941666676477497436984340966681228385169418177259096499309918537958262120465885632872999331457575822508777946264803419489829840490879364867050364310922348209113897622298935616519570257785874096928201904174235088933234646076258879312786764944674143751935860082030316940668970197884751934421442392606609635977037117510663630054187275575996719130032558641459856880911289234982960666812790844880087656731423429735200679006784973992639822502861400048225086015492876920441975131508997204645749303487806226967561329749442430580266514458461118213292105238361802281831887675417282003023162872643829175467319647856886521566568356231284126772599139268099498425889841388528310437800947372527148855018497725724158177995045447722972562459351401368074173650856442080434992346572076987592296775449966018702288128150093260350940111406077794429340700814502935039906286243919990133887634730946267257422649659598074801786519324452469327180390663043090484263888161646018503136241196799135422421492876629979532846662794644654322899018341290492581827777056714518204447170125907186624930188112280329733802529658662973953485100295018664605991490560640848435422101544941301342507531564283031160596813606177976885921327489179145652656769730133728321009526710742010087801698237678925311206570220852255723852058686308610758888342988427504968545370565707464805071052412051364995303693430468065176899346816508251534000316035723827687606166014939530998877859259433409031234407862989104722304967653314259540205669450626553765568438319500564415290749502126901640831610089166550834140769733237365054955808772061767673457093519591116961855569854082931181219151422759620570693241392679872470055473238094866822143947328682688323845643738312272036000717307795919340557424229688056535733181158443421114650686033948401229055482055175232804443535461280368440108941754149736272253272569097801763389556360780363795212323982048522945508133326598773991807667776435482785704337829081308797058222108539827663583160595830501181147654799301532927533660602233908062302129616926749327272225127339905031522069398303270172938800864641221912392293145366848994829805138402378588279287955663091948815462976716184870618666892953941909922956147873804399732619573572687212791729479073524082493646854416012465330335414052363118113535040368541896620223593288302815127574679811412925260333556817513781235383925680993765417521661387074947327401364069149040035357871722708695498746173449811322885810505085334570811331517316856577867662749075068823776521263984505495172511144251737185578988257296752368133459502560569523474264407750383988702241580752120064303348028732688908522466206307430469078962498213312202809200488034880173904609461051362391060331484440915876449672874559098930584007023490516192835526036595741523165295933462175938285010213936028898850911420407750587416942205198665274194094888164734623397210457234906216273977015077406767186921406771930119856699017383432917262194473021435873185909692273373659176368871523201218630596002966206335971405608664113718235250536005136827228323646082356163647534463637718204524363650421700542051230151511156525962453704147128717067178879038505635292077417833205844497749196729281453535051601437114550748887232524975904853969702255505055918090490322638700802440647670995971212174225447436842227740707321089863733570996984489722021037534990649560956931208736357893923823196536781019077005690072459819777717907600321452938931981970456077244161892515927574026364487092585390139657305717673704954886935815148579377174758685397844396505425070359562344511685359883118865801029008815139712165046270359060497251131339594976248678988144883822085347222385388302423834311627531181038109455871463616612628180789271073167527040583101918593755544260154435385525383735930753940730080864221624237157991453736964401142872731441382796317495238766970094290924984151957910864551722144678734430939013191732195670499787667953327994351398628309644557115028814807204865157246761910280893358941322118974939277752498312300173719653661177165844917052739097451813615789210377945636308511292571122036109243724848713973764412159188237650082089016141926568277136885778942891135248468584423279080701164307419460925578871154324923063598840363741879929738067219292525013869916653467321736752751887927662856734371453417385369220675433092471109240391049063193110961800592867635834481080358753483756280163176857099142671201698478878597354570715301636711524712262416385176120032096439826752138648944249976884747002491528007541055931126384574695937476380283510320074054801397411311221179208940497721446765552989696861622262062148088469714443072552762841125355297584691889571547128475130857206136512056883414915178361396468859571490777762293222735708200857401909587967577754133985511668553954248559622894457151431417577685073196074054514871369173501380083887954782368611020380940670303946814237123696404140885902206171979588117474094462871709886797863340536214674639172344754826365273466296946031210945215945620875159921585978037573778989718614591227766393025406996784466910657901703793152353581339854954094080973082341879564620157257604193652980382742025950378509826233467306498686773183488843008980467177093853364616820705361475781536053348451553543837120740732049197012379351624045913464069748901696175636218945703523201547398079246034876400581914315280351287704647112927828815438894977346391684491945736905233617421934959872897064786122565172366825889077934350600893389398183405568594105057878539440761196791419655807298561363371126046865635244964087648981230249687078696071945429890383625708421557194306591945739181910497505251726392346314651952595515791199350487927649791404995350651848838641039252404812773796987127307781719237486343662835179078502523976341699468221427856077611862287513330977828204633146176780773569955018631726623879952914963352034752115582628986737517890127286484881701510290395256862271236651766255532815491405598848081533761836128064331430799732988784627679453726148461924416665648690558876541333961038511097191869953982602739274006235366350779857631348659285255047250413384867054037074251952475124973262044110436785324768762353752813851660717467378276387081939337264411996184191009366234345806861038953325097653335069171679680185962723326486300410812248345437122171183979902776330630775434949801172239256600031794696104148881773666258540456032288521830888838506459675028851613740705491761523735219944332144085658041981082433890328083247284664967847701039991209549666584695581804623350502470020162026541126235382032216020176633893782084021230541614347629965178460956281310707896605133573820163638366651694766211943068315024746374781075896474844876500452646339422184149393679464135818561681539857383122281102856576534116478772269200093672089422498783099706482111540451626089071872729838265510986897344565906653929869356559651635043160635578968503362118124204572818428216396148716397257320869477947080003456592756591103228285955354060302377078320219905291761563298110535615200533377762740923703628380156836089746905985674402823931637264788098667605878557743165595583344404553809582138814839609588929161499323501933031668759936391506981560962253601251369353353735148476103065250344537441620627687611671555374546216032200745857800380301899785045247070973871930084375248584994651133460316050591426821227690303109078020491088759876617529992145038079492418491172331229175350306351918683800847344183565907606531140602384060523250249624525028469014712266176048938004804262674680077243586493615403524618264283705657476004734118893696643428561122162747082444973705375787071637332443611217340944459941379215046976727008565593531846427827802942705511108204504031818838184157404658494284609683439018033828170267190736561873088886048645677609899757903260684774891399007705869226863883649712541494226366075832574880310061424924372974987452839649495369187835705432553477076133696069616670935223347525962242435072697464594415390332137615023666396709489007182652379314023928291430471034493963813456188379208755488446010181515197339261226177945503292316017861922815531368815423947972408133690608757064107200062101117630271118266244248371725932476620125758050272091312319132773095421140086979454034944194937618164719101742729399595614184170987603694427678724813009031351141253411715611759985189338216504937362080825953825153305610548601953057798283788539963196581777790293015559384713031591586952638320391299189316989531760265155141086240892229325758980594084804890964819108409945577866285372977007936128412551824303968678690480977407950646587245646557675109095911044853726036903739956544081798506961940370367279814898260784538914192709512628651526429979229246448705837212383700741928024269362296147999083178347878588300487710031666343279354284083521003114796958954136749734479887015810402728467867531526896161801223218797457017084649293558624083976739879483864748311453072362557341450238107774555730284444325367268715921797627111379160778910425717250709230604902047055087697687868837724914708835510969477179447693232921258788705031361919067249760513671591556992829900381525246627402110769312400776435494613023646515264652527627086166324571421771445589115824086620836056821583525425629623159709243423433126104526533488351931640639017454789275803937998848369461402413605024303024531891620719578053704137955074586385417675570787913204388860851533942952507158548143631848901651363253340702335758271069208887831829356657796270141180537339098363495877702227695076444590618361924497751956871828012769817031018594732076386732234297878594772192549636152847844620548739694488209199871848380898936098181232499419414737116649315156922297503340632369439076705724741503050139305780367524291836931330832124562459431683846975400996063511365590266066329360696260374063431228034407461338003047603496631888210491883504124271015007194018174162892719233446879478267936101851533420755528162453287519948735441647552238021789749342280213492307636820237366761415762894621380759571377172109643542240844009590192763485271508135918528670646161190236600524111988241662361765219579049174906924460457491721103790869602943197614234964875508219073580780243258378264125935874364972032579009461710517153862506095289407467925158734317812017308683427544857642122492453437609075254387127379059494102664379028456144125939549198031058931873284915656315175952407355275159418718386311579039749809573755088152324156409462665046931919918206271277568931349561999196276242088747269493065325883882169524453896229472278980906967148448435510605652813433699457400377803287996274957267563983408752223818204707094234206417144213274157084132178818417020353288704764575092560935936171546736422725855040189193488684611452804236503824773479486148188066095006343965456296894266160272218281234846610723127241308640508595446632569891991678944126510235587322010176125187521117973987789587956880121640880195790231051303604558460866240890685813399322301681384214454365812086628518708482333806767827505428087118749988035102099175814798325142505071229293031184325065195443535615951719380435091443860569399775632031816397056161004101970085329129354824638088770754739430469738357597563745833979376878265521539508482441799239042435876050939986093974134890638825639246080471873324025013471492469001485014980953737917167910185459508138149198035951848024785626039732570044547897283127299755768110530064788042847895888422063622420427382675089756980887634116320667401079967446084382591514323925132739203117512628779594338441571516249502432565723565571643069303647632943030011930296914237146256293008103437686689614893277830383388875825344411112869336414719379512053553059105791294019642376233355794943156604818059656559246949858185753762273452465489652499667776688958388347472662518523884460610995191586664270766197365414271845279547301632966313445294232884060685178864895114276052997521436657380128716806543288792585516241341652404175956372551520084813907531127377426801602728606252136390260179418914879387511652077185882934692869496715838607390490784776721661080519104922311114188993102624776335566047996476319738347716324046892590053333137868354735666174700629831798074824214149422268356199678853689887775155207978359060832483996916004465646504451986372393440146116959171155355193979943494218023772657461084756704194151078502617707055576240123399598872443387300647079077222293206427993307127503141682210821894697480977014696590068347991615578558915593759605142798718189407613920092520138790514594734593580139076654387794225785696225619914279390024917596997910014582226649411370397273019831538901737546417833010603515284330138730233302201799748771436637026823919041665929507975132820495702713597945050756476941539014592777838562066811927735900293848180570502999872008888422227107088328396914651187848538791556041532446878679193294327431350884480697470882086534626675176946353377452500350688465053757285895055153728343405829516790685830007763430606155652098291196848023764661584259748128396430902984394389002877291722672442542972926364813988391148609629245618830630036133081749494505992011727649956141210163473372677612211362416211856410769065636741571114053785905505949621339450265745444608140757979260404512680855273230596963477445950118665079054471048454546774550010362122449404384712852491058902700976742506654909154193448222237587325818389152210980267583685155038131909003192898517771624381530655116453510068751702947170431930259256276880614443450430178773803434842736467097118282836613271436739460709664755156559825117754245990209640838364992669677882771000337970390288029156852035207403402672027555856661382667134876474903465588892388036012290217547913554543837611058810726925011193019294217705085182582518482963755121250494332158009786121160153969818196075929223097690771184401308087213343426673624742491440783253326272250713435348176246812758867380805035924679335703343937553347805774486360765786762580495056319265798927975462247975668248213153121347623102493271621568262614237237001864449041302176746020150704281071427674932104969375659769418322834698090885965892361947060517392536858588072950119641909388960606813421875497110556273091416257322453001101070912025989019040956437203299505561188872195128021559769555317133786193488324606369220255784647321614532467590950081066290153727423722556988584043282464752692712739822136526930839399490859442497161455704770716064768203542875172123264590241320464980137195843123832101255892536860516067291656502221171205276559540183868249964676557394967476559907731463201830144700400158232563392106023257890185555674733665894423124739574796929772011835309948933299114692569016806604511017624175621379989002781722403105116103714964046817315766778731987049456150559548533326174423590073048836020934115944982231731037948226773238783142056851829407365724316460483221652193606951279551624005257332473777848514100030335148036327357829189945948692575312571649768058016474808048574231835962670620961502887037854792280046303792677660220251749626623685128053804262862096283768262615745921248891246444336152263322004401471706603353682957388861167976759252743698043200992956125272947612673273777502283164497173817167862320705333533177553211223573756085510134445386238979561218382008173113613004946213359078537481649891985916056872082019265246021885186708807828761449092416785949178997800373546688530906626602903054205398755388049060151057000943242288956013503364483126867857622413988329849006591877624650660994113193577990289204154885969177835386233683284366569608874024164517275188079996777252098080145709279549636017824964588105079069136894040294606412540253923824159223402449377031990957645829407803337957668410108890221084681605986131169044053281443843658895677448757117438275592617728745991743662767012231704912963222645398197407145797836073156873318800202623368731772289918981122536040612102529768065466657527425986920081958757956818322209251666754827290260022667677729858909833705910212270957185254894575395567227112988339255955605006248767050400206303743842435502884477091036076811124869483606579770542731840651623729441626709753364971728659611725977014614124947358570058037271615514301321719466270327491761929112758842196325909273939500105635669867984919596087185099218929230142356948678768089727571577060121347132185785607418217917160016599815580336978498499991238433993788185744736617128429553430933240632860140331465001494354508899386097543341570877045454840119348951448438671020447349006241551704322812793596714780226609015427675622846159068019080776210805186879768018588572187404335336645072316266079766105221327832304857512335260908720369360329474209704364936017427839450275583574667962827582076802729603648484408100498944212701438410506639511774251731321170645134674288181559653577174599836597776900258099502143082570573990145592956697896095078088614376757878114352658395747395366663922267703140187569637371629632663618981963450324569630418821799702433990444234564433222176060147790461094265021394143105171015736648476543393551684963570403451428249916013427902251636376211830715185787070524148978048038791794148877108493016613764845692898974492303917820827371377399353427077496384025247648642950273663905166278637550075620337690527462988099138255883337628157567276390012443053923821356895701568242868472266123780001116843642724646139240173303787150728121888765691333284842981760057025580063253834519357522873530262427545497594483626624058153171695396557578710332822092368220817078682957415600282195508566138659997616865453723073656293111720391186333169124738013103380669711428770004852066557862426924996791243836092528222024599316037027626655860997092718474182808841725425570732603658061362954362601122449912469159110611778415322366719256303932611780963488092404479834058149613078323301497063615305465303329142723061910149603321560140649182123120990396900197237927258505121980678039379317325054845027871503049595108808358115542773489665596092557358020184395802770500544629485340744293434920201186412781327157943885997830854364750348415431787234217309135837940176463523195897441369779193811127195718680651340148841761429141571707951531123150753606183700183428714559646248365054387937593664945197848443055348312402731609211358711239017591879524744086561361279591068040628419332711351546266678229040753544267877313708394545077170970372811599043188843603225482737892445471585956365021068432422447049153752320197994391140574870500208647190511631984903770995918370693467805915213592271064592002927069244852866649904491988258255660082164214821837162085774594127389552992702142262157132213303934295720018547096296351018661795210868022499660317457742900856567921850817096409020693399129496502774501431001673606167166203210634813637660219222992439931960618988421922943409495995956495839793560544108638416485264521926155526870532272398783300016825950750277855219530403806274171758107813101048861144979690144021798780270495245845711879647075965287270582670725195771320260480997149451726144092824545176603536938732333968565435620174446955372112821889711858907039401823007218627414811628895814273220167266674394272439543455245210761837208686063222986544081141392038904172449505968564038608587428651206375871138994946682495817302375436491038919090284692949968678106668694991574139707745959279531780079742152760631787148176464911695963634856113015367328518858441744383112042937556046156624684773985399457490555883029834710765954403963379048367550939799714794267037258235872219483740102788375712439978133889506607835826695224081360787027272751735079909778403867907045666417840519556147243256937627123587932202872197707906101840503663829413146976056718527352498583160646338731275167302555740197990032543872249409203472542051562666490274976074361689907346993573577051686394686630051172521696897381748134180536300894157162393266573207843777182519505680954169118433802671322536436096077501934424688836157578205054179710261755116571639679176870334292854195219223138488493603978108173245129756333200083673806098469527376292000000181930810943590763757762528322253900603095912707382102013161457772113947012960999439071918797521204372732913941704761453108996619026890029364310025168123699241670312015638766520235112888950667034239019453292713616538753712332713522849351929609217167927559688145224997297426822389832382924619948115448890772370992226528767227291526877616477829075403071833566779748534849937743896669360710007586004494919837569290734915784305407574606168073676357834495457374764498361631174411375981922992722452152894520503019267228735878322386886886805765096539726185696772194530190832503614756102327878998741606718792220791094515138188787267595800934446194373005188298881305425217954006338789108813132000223282691532685981275842460992784755572601829447648682181235766790772734199375773928752399038517536401692585845111945097411524223298329967560342634133185855749505905256008192111999696550881937112410006444756140589209721747880651537555321623154159894373046811469753967558816738788610754425070237980705594192145680198888470193802389095585892062793946600016961789609151604132018846326686343955864652119593686811534707425979016002515198545281742228099576354154471739413289687066139383950590819845031934770553523457873533336917610432875890524537482353548084067259009162056542797010328080653820297243193579170668803819334128342508077825765935504824695276310256658415139995211276191914092057416686218175963632286006751774021334344988174354360812468719111961696620102908473558453350912586279085062758271782643989287783384560503920391849839930484643047401530970101854683339177868986886701557896447767537407499614799655334055549881237045659593865919017248393624720978447452556988132994631256193643752420171204776958566167236842618408893192000831452488458730154272152340025726695348473461656130915643551979423451602732680974340071530579232869653643277086487614470623062414021267289743262350899906100362413325202147162855016724044273795873638813483742366750373767672623912687595866935059135684200238251150274490065586564240810258807658447061185430954273621017958019471115103237577016232294793962778161603464103560223546934284292865891829696150268543986258372718247102867421278442128531768225228766869634360832449457540774948345291932261644237116509627556474366866320471520594162896713655393040087630545230803512365014326176856506855457102289036644760293640386275194012408513702096655973377953686772153459052184933823962554579073942190116982832441683365695785322755734969191951245522155515604153832680641762996940068569235231319402320286848924732413450031410464661847880464377558112244233660391673866991870230698998478016557330863791015710792640957758565732215374676021025127790280250187393402787578966303729387814260423645351666278852543322452592044502480992614957337004483598600511136823480678952495280141952718986891164918998011796762719810535746535684498977471382190305439059219620292190782416440293262619438176153886941158446128193434145409212507249967557677961571732805271198002875755013187401027007386445967543816988720285003202747094081471470219816318479445656289236521097685627666361617537962682889910614335239703471124030970456789318076859289209100822986983146264780075539265939946750376953761193724999696932746716445381497445238425151223208530878582328487755716304379773236207315474878402762332346224965232167749989277696951381067182972693333900707860560656531003715041928302092854163519067811886773112758476910450643795321876620138737013440615529778498657902894131424436259257574562501393978157508865033542271853685031368669322045335828188620323036887298371116453329815749344074320398813677490049553265399612765480894718737888470404109244694991452006822684821486186920557991521984335803893530814380124522808249658083073709748145557912906530327067040117209407557058919404936723394275746667650888865016557930942095108336330342951986668947869715518960730746150323841164603298452598355799594834754368417095245366075413030185034419233444052902777376641767710290274259385592876717300960935210184366052978969265597636819362929649535268385764351767551292602364879929308003158026801856019540760581437354876690679942585269215180792188277449773878192675159095216196225196064592577865378114534655567835550344128018384726715978764755614977581908084269214883810960485846266872401094956608398224313152581042291893565414338487696049099594483080255220790718852694054858616616304646615524129586866832485086453046227128444344386644578968198843563951089557104158730170525147518161516675264296738165648650269280750110809530098496481898549770032664344509276883446747518522021194608500936820026988169521696398597921191570430019293071564798984638493195822046998520795858704909848425643184335506021157133943181905084977986693173337614362188933597693824301703422797925749821944382559148543747375450421628766735337021840324915074642161432887041571176215184881446071972202517033889755313803793793976048022286449827997449560329645747501227430631027728755013922387606639275070288514509194636310245464037508271621734257920826218890253362062347062488704778089874049394375978970583997614339968198545457924448073834823298494666354823523729047339865648333218017148163001654384528454992010162651032159439975748902666300856178385443350631073264219973920146866499673036387460702339797875040029713421576434845860012304695468574282086903311901423109433498280881354671746285830440927556455293935513370689865296666820860838951635908379284404042380181598570021009872958461889691361610473633800039196395493784564204995680530767043277339134491395697654756002801411041231077050329206794431944126465090799003096204372646088095402317620758824015257835117814878450940890978438017334343400358440830868065390104076053121034550252318091162609902414587922735888039022330741376147132187955093290931360072228170228719818772251495227992896518410031285386010798662315660826042073627215614646549701363813693692093592105796509234724202883819597833455439276301197044228369606334125989278926902163125699302623534189490529631279594418626842925267079441612057791573804568076868725521444058341576777255828404573888390585425205697904355560447872408456560805916512543467214435365503191350102275489941883713571994567791061350264222741010701327567478696256123591718328605188114489958404968462289108799702653528684780293048603057942000828892176508409358848311233350977737059281536712507386218230462173125424797398263780666784440356449606918271663816082054084356199646903119239815705337242901375746888329663454824432367875304233933162200782248547068901015270865944344626259138413487252877302291411553074572125300677144470263580962865417997231690002160344816966592596439975913775588692481931005269162685794677508912826449494743859470934428320095524722913297614380781753248015963444329046724948837426379501958754775317194580148156286999499923352372367074601359896966540782219183166823417055626930186597341644048782254350720423281797546125647200724065973574768945386897046340951623837499154863178838591475368841526620509366020723514934660270064088514985106268555217152842826274500881007134955936663157014978106465344865852249525675377412461871535976965266616854731470237924924379997946505358789576761777024252312202830480765428370362372454081133608450355758384932618878744813796225844522303292263742400483129490501292006390180885740758972764024376609942745699841385638610677967615032950171281274460821400258655665064077227037495528124128134213970126375207566333180177863588869464187152809472554923161400423580317069185177313682420613978407899120656129999378671436983739859065849954937115063862476929708568713295225803568553653395313354991230373064649744993700664127881591777588834828535400476467131668063694231762519348316605149462315272497096777371510288840572384863462127736431107554893649194318756106190420468199870018259354279825220360877423265129465872307150705204059162468975527623695781663721927217728159298001341537788510193804915668027722177536589596529098402789827895021075452090119955954585400606047005514619617437487530818693007783825183637498379396809919738314320345597196445820499149997308900098606641118868329970149563498663459625630669751785738601289732140401689383894586005853331474141487422018551107219515787146185549990720182244406536072733832082726331333979505598247173907035352918183830184720052641167177456002033491714554999881375358848091577478740169172524604099600708318505872343649606057070322638559567224987993612527900704774190092186942934120889394264438303502028759054917832743361801100370461211552026487757925758181736080100420950157019868245831570194543391986382092690013587504453697765928593641919214846342674111903495802441900375108988042528465408837332983780814394078514199101839788830066015069867707823552343764404583241875271546678233769443148704507193680753135429798117805590561381873373522191882237399325310812670369996809668408103856108390880166876256811970199096255538489143207929794657239977738159383627660186273975686576556176097705624376491573153026834522325739107718233090925552071977279817770311049282794413209210752633991355415227360019797204646735228859306911366121214945538770516536708043738175160004950257461484026083698774733359532546186128167544882828202634870120601320343463493633208657028376708671254230201739397958076800399835892140710836001828995012862875236615597684355436611399424499023539859219553956751365855965948717033110556097388673673805255469739620385317366225670592388599380652543109650166048386780094961887728060806863198856441238153802867888301933750715835992043027379301870315371760630624703019367081676952728632081356456133391714905082888902174561544624843597277426257305293715705797292957745080100105817421603067300599926029566383143895842106370520598304722286379837141333511637239924846177584274000718771849690134223398721797808191621889993423181604569334432232488800215827434948742978487097801721771240381974525107182789451764928493690754176956866548761985216491707977206554274911700274701287793950845412660994907684943851392799199311972396055548492133221538686954163344176190680990933508064160121822759212614729698449823243088305738951171256921746210443602821300665644305837690115615705125022986830558762982952520548589126241690620493647522649776078472683733266013715597099121366423243042978045525115956869048824151180726262724185986963630060341693004392931009425313005313705512632117431443362935595858106324186920879555160601050365738371840825984669555506100470470072103301025864431788788082470143107578475485495991703026411253715282753782806621143082594139919621125687032062067765825645779627743180253087839224267833519708843695395206618628437287514826165149536468130509066266751705172203021086893119915502292839658323123468933660717712471970149229328473154141357121844999831448242620194170957405117550784632970892404199535291650597548160424150960620011080262987686553522917703097674252991729973289953569804589752711744625132339534924701226167148711760901308445156112411758445308652602571196118432864689168451578031449039214465373145939240864201750781354540542131730891291231052448344075311682393098168296949207656331208953101578245978071458080210508362832633336774848918971209363215324593345273306941406148171972535392306593070034622590578616236375560672301782889348961234942153920947781124324690566201877796601206310328195441543952048834945869631437097256292981765036754522583410455552407273881966427978132840219406810149611553356924329317225788097956445136156644725170774445125668023715261253986176125606193753206941602690749659645709210549898283208727117859015080135660436281825853401061594116178391039810470019319174321110805847125871875302787348987920297223412459533798707484151461441640625295050289719769856468587508935887495643596266530449682637174222426952829953449626682114271615155028216489969790472998789969306306160020671185419883954841691595216631359802850271663378786553787025808679442165257107961951052579831721313608646884106166217349396821509637779397353365143068756304071491587067369710114669443141155429935869943147484512307993629909130911614821263037752374140142400368593805966616310255024025627280874798278097576826844969342527853184250557919820902373684204898477663655899269990440774591197868289186204848297320100636495965269263470835264573140260826961330169336169798595574148602494686560138102621747621098744405709361949380052563392986619404515607582206917615391320006664147783361089206071640407178603559107297126936716270332546627510121868892750621039990368999178502593248927349475894864098322338815641750975447484882996073326823039623184035359681639659343895413175196969715112346732621328361037224818466482710335305853760565768789988224082023589954491267073174283236059334798983056178232138794777075629728685470252273604527316041473785631001515137106312805746241404137702171703248533788269764265345786761540014409384123890577039851374772567972995060008762072145614438456020565965794397820410339798657940403938074600330920222925440158535494672050099080499388774605310975124718855216475889831166407845205806028475988855950461350769414170235144016132576870304173874672467817552874220358624329322588450082868652536026353313885200928802379920568272954627068265581354373310444388463619016861283170867599302458367628609528815780483220062498175999484124679809843179870795711607338354504267236023507952531550040315285263491717888764595341684374692586749553828996532604649115642568992074734348814395107161768758203154212423594707822587574073245726252411567997853599961286529638441738628357846923351711642223857438920334674715767287892814616908054951869109608865860284014377787352309900194737945003246417538312850745049451895148237275745128501836257060874535517441233100267233491200898250237949938774586521390963975659281495776791013799370086145092303559750317643360860052071113561422967696953075548693775635735020447296595128365089298296184356091343034712420375816527215738491540840613666592395003396280205403637062727293293436379304676594564235086575598562844695005189452558356958121084999422560058062867436031002026990446484411179940623575067520213190064562174128833623963273225389864044824351244902117031491025401137558313612409587128654102962312455627028473116344395561671563527711919220111894219278316419844278514886961388654553626809626483172657828384753970318785947376102847344512793261241129073841638487336554006976443577972458519916644546740780142978388209541208074434851283633581989642647346155082179458458677004192203190829335191825910476418314063083351152294930468540342043118957598486493049312680249805460222929595270898878112266212869487111638947799317549062843460308541038452202887302281290446999025196286251298213289408939654686109863072029785697498069545147147543145559665601755576264028450803682774525611370031403422861799703653149337424907614656784828656617226592381600049970825031536889350728389263312032346824620738002298713264144600667233760903706615464410116684768773963150269244741786257271415170026197035639041799951973266958910532975402907246285500312005441638764079900180169361041614822419014149090725056875092096015172272208397176139900576546722480398269043203557712761981551764469887229529822786051232176226872089800518359660415652779429802555181757656095180690243587553168128052441497747373831672262050390477107923381684005362936502327265190252639710302948081074834399608245278358369450747025021615902455730794821384939202582927429744464101455329487520760304616563972792309712303846243980741809219753696817928257126002042167559854310464225448474824542857023803311217932258404495655456404051883330429822362962471217560937554422019626777063300320815805232828942750514493157933988431415345391106614819961708378245184437831091853637029336636215420190750334420585307064426721504414036274523376404449351693415867224623868607184344308029477519704004001937493167213475581151295480884419365298348113214552825510398021982792168858282248399424313438548122981146992600597484403013680521028983160769030050143682949035508278399268871965437747751266573077075656210411007919291689412395671668599553409498773787355221983798714511858782984707139890157926421729762583247511613003863301274346967817798905026096010230832763975569730098447543039663601407482209882624337594960882834264717807575333759010874692665196430388127551750499359238005178020000423565706978426363927507792996542554753850722563705432690152479566620333324483378687663426820356621009190635946592031141216737086207773161638561708229820897125263102610758453442406628664697283926236381722760949214407801003179013348974856533196234631478980455839335468263986329535187072335738184623202767711740637543933832350110216771202561755080918252393207369094717290501201238418776357197452540324973150690884642141718260583114627061644814096307949296831280226913825718855905239728366987987842193467123545323414778019185887747070549586247500482799830213055851736913467999921393761387305780903147531623049037389815402526045079523651295915926755375983899919378365953810953633878173984342249812646879329164611749224903219314115118432876665929299890214402958266629830500198031783035895768963737920328254760864143447909237614884243396939526899506143472516522831153525894870161505140126793870486298945164809937884852012113981444053307437442605472733293032423393636370996162595076468608168466101787585198531917734015399587396248840240683963918998994726757678618160891215242132860145761908304181560166071228021496024956369096989889799125946319877354530742319853695362035743640983472500250585043101916143801723783307865532630055849008610852675356674655091238226327624784886464114162236609940991098711443465110018948519602787252485354245341655026962693107704452941654416971128652803285924639045774705975359207905081153423799992816953136272038170484646351194556708334388311378108492648349448332240683198988338512863505114987419230986032549613264588237822029466103541974428529270218938734927817874150984848968932532436789190635665106171096401555931891497086584245421154205903138450687550551425376334612191597335330776793686822762400203548749816603332622949079090054748243935394924559034957956818443562219813393254620155809912910605860621006829633640932210454301430910635892074113590851390728266706101297933932691877725231157796592820670356900578026387520774478431193389799546699796011278997012342396156467906951724589140884446063045853022583215306611097073489390362087674187794860641580977473588209675800040747812050563668210210899369120000061661868394753151814258867064450573068846018624603682347544019540845447748373061410991080019511621098587206720143182078518694917959026539109246452249170229857309322212511402969553471375911007807912641984774879447520076576860065136682136418674789276824852036544551932753021108486570076372298387475574341226354055942139990860592140672112326576806923105450458819094434849954017769147342057232642097016544935329630901089540875014007713322764962304074373829474819584841261968129618511594010139933362707701010278453435216180133328869662341227760050912931895558703755256940801915603629982851552095757548538744561681926486295616143788344821005683283428887377479155159071145214301750451753756281043408627096046529750468120600866436065844458340346193535749266097881028668170784908145707002477381552668165517692758316900243807214829321396758978079096061085967521972564072756295388584569727408339554753591558106505514557447276062634891393496618287244213070281986766521004909885285678258082686846600438154221447381337879967652873804591080838537476108527054825107296987802545098163548729000960335353247231989055115343574162114238612476909701604493964046620628199427811785531343951522053816262974051171602898542558193836652460353180514107200582692311131228153151055624077304153904309510552488511429520965936694082389438875221430709851491845159786683582353183656604664403714842115919376341376744853864446155884180004519160310090986804788979347224402639137148506234434386430345362494721186958523041206847726457254801729462567688010733586670260027937599754741596685351093458101522648959792513371135058208009022008085183844999630177260689623959725766676207908455632042845216311280846469336738715390281338146280425088172392999785834696375596256704539552581995760945502446752381748509533140635605305758167232607639952594015335251357511755706484443154201975053137073719974183545079617660468715857554751842489579244899963762031695610009052343260898239400104238370981209183611814436993865709773191386491927801801552917643997411150540589509022209959496934269234518621194041638908331592638774005540436737181040818033439671501568902316868568715465651707525922043667994046625845002806530116640552568157282084407010442712080041011367470040400857745683094220428963443545145064635065786396915910329930122119313445406180784135572367497527917347996700675467001686797104508522008867570925193021357491421182422844281542016940880837644267091784162069357866110871505140884311506595240489444666157169620987375795497981961385461742956507190801383417100701376294612515329298974182843655770924128193751205867215713983959229941593750717862164117542487936756420916975533133998029037214617796905862617314035504490779986215779372079311083649927198945985266887061366819077110917734085134004796962414338503220214378849230601656769615003550918767877212446539904517498303832329362357388102868724972340461759791906210067858357272655451365441827075991156313238635660424513422632437838727651795926169081427839021320932265424596501362946741495758533483086454059547613804544464222205108637863123587886308643451005923911536778219520046954445887790777236392866393399544168294531384912479964793123476894249128730696150044544586938135374965108193846755974265181118655173964998037368958324889770165963668857362624070748786729989236292150317003591870829331807213668779789666459445409497820514755586096700059961917552009124819235127741187773876144905736670509999592102389228045207409063425356263551037237189719868258829680823117418511448482390795909639665773491749195125038201731775338362052889337193757522345182008501475996815949163749609718943827136492089050725808094189705629502102375471110846616020989653594718647917096902588886454816675756769577816214302924525039630776038843801520087500931236368773659160292927444301447301475116136244416905607426160490809827685955149946264499909096796662161672598181839173893771752725190440973666645168298278821497144816746232891684314406742903433049825461864280347330127651666216981322517917346430708035514925025647670788506032436855097916826035700572611689873204061130426836538302223272794546512059663970980964496274253514125367108752431023052485301066666250042317945945925366206406898063844598758120068826732794435265242448161396454401268549548458401151859346824321141588078707311188857349827228804681165370444301095458974184217067254428512123160848989842971996654933633494252122717836332671728456837201910521870505145529471529772502098256889067096476971821354770101491259980031610089822509969314358541553803878282470769763891881158498376382911278560024260742154665877071436029044540838556086323706583129136169691498675712798134053706042394295723058993731370924648820922809605787873310243112183334620915956444928881876521122344339298397487348747431452502335349893850128035724395810471444967786253345937964984403115999271810757172442391013598896023832699691881317196489814259414328480533334339263687098586624801125780933477184759055307683493015533572876326633114060356173707955012048561098446473150242175556047104269886492205879771550818736342779409403165225868188085462949284645234220865991304650124371930983718580050411471840700380597257776544736437866392402712046688983439451315689084237778974349665840116155911357287653961802369893948227196238992138099708907515151364085040722979339988241301579305947686516592953118854798621387274255377380839177991117993885252497537625529445560840483468692557732134042929449718755300473017558347530836877735248337593551945470530730316188670878688667272008499385738527354480745119825679621496439037519221144351531663700725385231002739766851352328964741844657343786169653627694499958526294758833640465676226823573616090987826248027167266361089138332342073327790697253706636313930797073014580518304738092170917870233519135899681988530489299347089615445397037252905533101147392268194679578918506538556228041186117260710618033104054093319166575011947247064297871009825546317684329286663084863462315956047642267636062721790961409010395402297411233023893144975453676986542602622343356653559592678841553938067290271674920563714387104277117688949932675559326353495980810090854695570967415323482418407364502634640839668551215067031089221855188838776200896079562535051981109867165053282778224428265280937253629010410056637724636474841353032709253892869937040394677184056634480026398545034400398458186437042412083554761259023954257793712771776762928622894063713319464295029286973289643387361395550680834392748942225623121696675751366100092987871546958077010838268223284437615110170651425254620311678087109212810931286353166811902410335816187162764752773731673153652063575082560247304529537799414522132654313674022456270619921848330234795427630852125053909556965855822528070872750012638419932145598631713735982464341094825844651713234613986835370686954408002749088494400134251377772077785441242377338388580262982251883771558710056070153824920093019127810657494881121801040713778810100327056562282029749930140221328719199596711727397581280481343410073973350945815885451859119554607737889876934458782376584968450076170439882259648925301313899865238315124319280061688529381664018653376193509309410970701954702314025639709557905849475816337604238920714643318960168391028525553992425373646887435644139995580952607250665320567729143572028792956912038652933010532400239076276275119183806936601579328709183793098153745327024912058721015863395741314328514830075998841638257034264733129881069570073972146727176181113118116904610378087676959805690154532997488539714418580359741680376914538169342233597974923700200234116799472625932077602202660729407873906983136166422634780605643983782898469264712452835252983130949191737017285327181285688378200626234683707791171968213668859131614612163137152348118257568525809787744064702321912848161103347181762543768853195903713794491003029548222597973665853464005095418864299814899963611206001358791907878422760114111346429979846731705723691582160340014128888291589059877233398887863996485238298030427810426616901560590361999437496374314548655010465389616147096875279510255781407990930470376198477639004695288690454897635669989304228638583728656617408165874937796684759184900425932732019060716805650429556725652237756383216161950686742850118883400147148946428347194342320245595881562952481906344226281773412078797257313320940640349639533755345622990898285689931559703026661001691507939716534572755001852163428706425721105046985481636677235295626222262970813114841930966667116978846732085597064892613612306709685291224800329589067133895148076719477998617795823762199311158274270626934253510610118911440982542942031292079172266100480303099584472147795198200588719597716316021103700358601211956395744666106498222474830168115505472564786658923925746304126475190794662936025527144999493204237424168335328441617402623720277804587141923630437349314464702504846827193017110316482087641116421979105307725920008985107452021576900222738929782018251826104680813833691615750990230675457496542165682475772098252412254936807673169106294688373543667132806057371706182361833984025327309440397138244637750999043383033797655152136861619529366074218131848556575827295302923101183263262109740228910980810124307435688608306765748813254803054697232882289618989231899009768417864240438090792046728036556546668522837555537185711067255493341355145238900431895066433571591455276535443432069009175803356653859618839187488412846318126488364881073353990838873144122120446745002962911998738395690028958942664712991011643049060260449492311069713029265759828768860087019459346181761892993646097396422199124004148027041561537778686843774485720564097379198332288210436775520874647690333482000981332119852334797392156331443708518323196104243728071567719500274701540608342743967787172852742832959054173148331488658499033804625617196758663401731285751206168845201867690789565172435031507610107462504549135542746021671399955097050806035480950995098935567443389615347080050262280660627351215809349405021337750234403147523500777191109638551286136399331681891701865927268685243387804326912889991334271934365257997195956436509271614123838753527639147983554185427216259244830121456383036382641602996759259744723337772238321577372338000760360053658373805250848570694216473756328279953036829656501030734180938992683228919929153047143769664543634529517407975101860410746037297548818664829530191133789858786154315897039573534450556085820865388706042981746238450288485263282036320055696736932485681582295834807677054628643595650969327945028636406592645762205422267405797573554316698959755990797890370245194273323689341899983698836211824760378065606771992647408265824653239494910570449906482798106978356365266833474620306929155465999763926441863138640737187643966601860851292493499473051726678944607715370969339776879740306680591976281492957979578498776654516602894825271996021872673792449925642718317556041296548791569356565048188727697212911336506759006326194554728275244390741572818844558909704382298816077152075374616098317039497442112109578360937913312024811056542576138191593773902999072452915024441102628306896878297939855999438622596679832123099841275892285098921377283647800788332751735352542700715257330868277485227894322108620842949116762980878856493016820306266377138322046428314534959599999395951491730724079819862869031305175700764755996206150702776905151063926327866759285981632596869576564462099128030907802910674151887761492932815880424752012665036431834441405488359228009966688527124845673122872217981874851686182881850645937193888980537241019670745848054353891028580844699721139955168152692021786199659712818497943372109304032175095305465516314989632311705904961114985753400005838254156222595387418630630185146620755814593013509844940393834822283823957316465628356818443979490516561676028102589153883300048469869697219971050430896147399835284703522606573119930921021606065402543406320865807134978079632168332858336786217160436521691706389036312515718930017383781892292837837418740048196201743100203579467205773014314644335384049759233736467344232289868812694390404903416790978947390905083496970582506234118676089092691594708496689108080597743898504096862935125260876623235306235537931642501176543899430395552537229574632522778831045788918537879675764030128544043467910974468354579926334353348943718106593475342599196561884085766307637388991236067258704382207146143071938981330472362382108190430581157528464600957307064343935637251162075226061993397185024337536342310037980361497297686647542610784035245435088187518267978728678771796366875494492060647141683587766159780522608662454343901033924404188760565151860136035521021424231564897765462659598228963955390824119349927533419303866436731685295668621020593105535569808639912676453280491317809543428985013835970388262550898245260720500734710223777875854157791014079396907165901354664104199848911622416031859590311349055746172686684059711715676857669024917917117206816475343414849465527838082614174297899047398261293604095605810610909857046479048069643707877746715260976586932880247543319111474404642388477611932597291119938988182810965080757975545261108373509215112654373057283598556154451517527931221173491824969786112909050219843432091221628166691747636030704373960450424490475307943651945096644811853707530450867687453973649780157045591205268502088561052076558594138864922886740293094334327658930998138897775731846922010386681141089975197865988975128452902217753109897969812385398060103622216887305601632765021416153085999654248247262754893174953282808425091582036629308075488903320738936641092894002729044411880927543433661423768685916697176854744054912131545538089986187619011534739665425322173194068998793892686223888419051863077439742143027765671658178413125183737067520276889749978973192727338729829412837234133021837805507493973319486734754136339648843287338789589942410807321609403538116163670912673893069775389196615407403920557544318546207885281478659848649031552650084404425621763727470407094854105546347564204198360261679813688954813592273979656980771357768778136659934314348111002998656672938065925651220184288569104097132553791124472678366564500581714676488825003195013238766926763340705070048567661021972406206366868327043295726594801593735671455802642687627878963061945818950864633563778024144883795968468227410722305558088447826043576556245400579067453203246474304058102116472286873287158560167214897762790880809970700515553129406022663475766668545389211504670810264171359360172704960639696632770785298537049168269396045422675188338867803614481346538454538306736840721716426449487040113956164200876474440384983990711946706576258562410869675099243611498356293452883033470901412659395240868267747327447827474840646041426884112609906770835754879325097334195727357154157040545553297083456265542662077362463385316536322258133739008840905981186139422325997650520951296022933205887439917773591565424605263158926326773638499208205056119217985611911988137101435258097208130500689978521694099933342293991179230237329465282353268299426350724238360644471955423217870036894938631466703257029022075516634761941270516859556626019360574033272600793559691374455230723357665250942250165273433085082160530257795341921485933853934672828948414995486230785919180218562353148622103938416896826101263570123770960363140603561094204794099713044212755312879928277455025959577261988441345480598780948150946141581313164911137226863129045000015251580820684655116374465135239399270742941319210402081188448237351078886269229216754647949318323776207973131388750331858356004268858738762927699989487365887161081402927235191715128705704249362081893404052859045397344456451963017747590765140135570894546798398718941202095830540898805249441455053479220589766337458492392822621670020342742621415230923383469001838064624640605618898497062512394823971589979171447199118038206272446469062041864602972402245696840707219035385164544417791977812169792040930709959854574613262722354294951991405934709067663337398498526136247086887436581344262404979336875072295733515027800113009547155017450402510755258942404759281901525671692405357924160654791578844469196033665847344174810285539935805256186246973423691681977626089747385302128777550871960471494816635568340316606205182285366753337312030279861980259403915305109860774725798787797997246775086502928085566088111306194727718365708729170679786658353254200494405860254180745500618301875626678327433069555966192193475193954305028314810460836484714468618671952639762450387297767553220587650991340998627825848144897659534305031756317961676173258081897568028492380327863261167643419697534587224479320003614283595273768084178406612230809255610799022474739541802474877295782134968989304857988417732487340075306389412202295922596198685477647246657050125534894127458985788649580781648144049204814612870590571447944078501216773952611301116155432897009232569544269394822959158218259673310008965501400231353996754342225536871878361889658767011003407667054856922424126594066324846355904756716546081528855557713974116253946215232924626075810806719066066197650843961610429632245966495104378257233602072452118779807960922783134939065708153852140219389745269327689380340293992333447186663134641883334628119212379671005355052758289077547603299231400476026245587569070901485201379453698815229034932217525829425609754172617412348840425113175027401363303517308893994972656565080860121115294691959904645127782767322168102883329530075914053398997783722889451509376155225292307366025460469234051847864168489109617971917404659621821124685858665340722354486664294878800593363382344655397967740482105250744307364151582691472700224662141901861042333142449166796912936529089138008151049261370257498922777077146679100781622156265563313436309305404745753586734881844837297939833271966813208165732885062205683374085900460902313012075429457485219532581199373098465307139932110916876694745915699434414200530409249640600773985194905768751743375711928064736364085465022135958721352660715204811681283212931039839723963958477429377755100178322600954109334237170290815685557384407447919804330341352297922196741979038950527500385708245003649735621507415504724052566264296528849884490194589485099716293514008180560584325442630572903701809197928987905225081053360945457330811136539636682023511769687152258582328301307794856179299639692199850647817386329326285506670444021326594382825351025886636478532932446371656807743565241097164935880903429530289718145689423217388706296139625798413737610266919107603821875324171681004416292091783742360080653029577188195080453686402566505416030261053566026578417926581102774369030246492044788784634983911640653100297025541753030272296817212473862052330644486728760203824886507134881890202141808096514647682471883639189700388416529403616835589203173170048098222835547969870179481573243443358772102244002580721082723529290564438606589922579739155173458475195052830572029798976058350575042015816299310052711997791799200633193481676856976832631465544464262785667316145758794944727101363462475877636039962491615238482027678289962370216873965707306137744184603981603500966541575324853350707988298044062430944012420808663320433355280781134764633330387461278606183300850502762767275887671933359310164214937970605809939668680365761687837588285821618547421704918255525171147352476851003906928025241862571671572108804658745823822946676179838501904736032778846893157828710868452968356328461870253921530630099646490492204915864702950530414978019991249938283186295167576455530234231890301253885334872980233303632032106706320852649533529019784473390708569396168627285374789793949042781450686025772365185786363307269123349564669858474476355851218530245327862535726578053891873153633971130189974842940173633459633225287990280274633937378462512871279442758814280735435606970348665424575556145973380005031407182042075539659100861888617182359975453963642694672079499575385967841810670291104260722110896062353632496966595455379303281319863346185459760021102068261974665167170857422471787533943674800201434995232561372070274467206229581374069913412836417038194323139077758510715700824575867296876441294409658897395666947770404877633137749116629688859396946953808542391963332162867315686403617323741367730744764076014030846752485814195744340684684387349273703181717108100313908498668736295329923108969172582751704344445642627606193854399208107620005009601789248193129361901612211707406192965666400209165506448886050764302222179009474611590652247096290781211488772752694608632131414055804288709907356840211276690915487337665622122888400681995109283819280863005285010289986355922655002544510514399515398070791515473541120175012754417643127273104329611271391168979810490983639440000892980352376572207342191503506670468758292187664514325050021514306298152409148509530496321926091490448662572911805948338596619176200237519233147870528860946198600744093093523690245600156787681502040083976362619407612246266003816457648130908912901000260658363586228116048952619459153773845151743911902412555707583292967529719654119979237539937956728413278997339788526639864995471628819993023311323418865445161566125224810611472964611005243497918643630668715501670922651646830577081527498274932111115914436590857460291141025197877597672625024664371424413435062120617853951122238877890199875484424742245444983053875885884045150173046620304281906190962426358822988233525339735097327046839808158799778402593691140217263345281896970333658056319219213799686811635657600676616313855994569219153776095863899691722271972459030154282701849991495830460001980389864642043662817411268540705582255316868247016552803515363059779519874816435747689329643508114288329655324902054996746191805811452562846997688882886173116891730235101883642727340166207289944953495743898174796119310295186234695891858647873291459224595098892946867153903864026709641415468807125918436206911795931475843465869561582410096143122215424822585243809552040115273279664410667681904743088225656058770869345850176381234620336821449998646042103882436224606063751575168648715529294874594436229702357060096775842715163458297004835613691760560220081215939109479348309188243917334528396454692794153782388842842642396893276137473050804903726361483107667058603457549878493919598667429876415558817646748341871637355673160803906691044275735272109840214686845229658830711567102628619714191613017329135458942773401128658750138792907817308393753087887132367697314397495652472906655345611123977532265752163468108352249738126758419115856389490534442463599656803329581981206157452234411659500847463723278944184795809568321781860636374493862630465852114790091238796187147348808390900421270064222751655936859468122594389412708026030831852040157633931285613748851889825328871384497680507955803109463024718998677394110175917377231675452255108927779328859000365591251542620651273133428485299493618855166319850164538532395154924332611371786285119838623509451683894105292282638735696751744749485636017466419002349829623687167485278858036377665615437903909042924984558120130003704598993391566418322002402011345942922503303572025401431375012519481022631639040417912073781577610441233048541611204197375384918209671970725231806317084266795245612033115565228932332224394035200300197178374632834049662889910184374666858809929389771995637367413536494408537200337485955407593393893223728426953280116718885531980438198078715657584923223100981246657230353394890974301368550276145262710738697291559367751378425638224698857232832803645398417784664132945317065144842805934476394128471068909450379667150254147024548565406033062423247952050029683015782312113898489779897391649888854375365853046483592621925556979340471317428482963580489302740986747139410138701865272508523261358741267335730319266576638496296559544950969740027210842978807537905525419274125544828493191935552129088753957458364719798776679612527510114252808544556745973582154840221006401003395232837490029827392562972338221319021543237957963459658087887677993903482877784365846413492223534922124529301770732266807270219925675656212913473468810425232346879497335150608698120799775803655259792983624153308854986868215380621284115696293840065599073068687893006753978942755869492543787145012353049616521691054805168581882949894926657803438043164519872592371270649461279290705970574548299377238522692659061022274644675149209558430299862493433116199488747624577096453883742675239848529402125982652127779880769127418605271226966481850051136836288087234099016075707164579479768066992407566128674000597713939859695934289797466108148281058918736539462564839348070858745401696754030624653169423187872290916705386398343650252936671738731221916254946940018664004713700233217750756963250621490731232263022988700466064898702968058533217106606050445645731968483757518712272918812733020121867531959994630072177008572803207798729513077889378616924924902937100696902253085750890961763551976908604628222185499364460876680199443170916197036166256634073680549635111320945374992688098306921564770897486010462379394325729387964856170637765650897403372978067629608746093030049146711787394761824359119402586969985920973605979972140409030188036765986607066213973091287449702475211584612501200181900315929677023855932961565577561634625580824065736527280022521954711757810806736932487536829794082233457479642520875706619559555104713693668312062217326284007564068602924239187531968028272345702869213451302056969812850538623870968908290280467835525732644287810684925666377834097660037340823759975999006348790487132924091793740889002452974594678475877972964139108016883986531284185494926676533752290458751663654163265428155231717936947190036253992525064820498214415635136412754630043331221901405752900815135383339863795762579441712635728094875676445696072450736264992512448661372829312436406281619067043320971323507566936648783165678151933181404590691367539486744581071257839292529471386406015791947463764053409400962975214945225530354325156436408594366833393898017699189330704924569205431127874775816337768608572979483804914407849720171771016996783394643708789560736278179426237133403400425716155309719501825895507670646038016494146339761639344574447334980211223771692490714498676031264835864426456549880896601580782138269805636954185553752595343645975263236689667541598542187539420901637811363602147866311051246542169481716762393871434775894579268004268360527302050466942759560164174363842225089094555132863973769288588048934235257761651311190561920252526390815116492730586223241328094178431452602113910895014429767668009532795708809292568101843956003547810317542489421859784927723192019908166343077113239237315140466885502508691544244970223267328299196036130222716569365363050719864921793224969277826749593829457784836800615967590654568578685563117933539010995732391763004891114874803251226182832810690895405406868348394103121558461823847202997157973700997859783659768817000339586991305939856598796240479166251715514724424038827162162917416873804489311130957971972041058430744178109194506870862989798644190644228692573918770448365405636745787108240920797207252066182321667118189345703605091355100323727519807623504629942430537968347973460438350783389076341646229025818678531258254952393427767386294378869279654668566795024593401735720842551489240769559052955046382756556053034356711902487615129121964023993413559841071286158682845530157121037717713597846847489562498184863474121184564825678468294181858065085259081912305494354599121749104741087921745066959994877812785763243267994068449289395713348707717121659829937392144925456167798594631124206304317697363590935801495404069123420285594594533978488798180948907384151926294557442014134433618801561544911404003362358176956270883600270660491518515045795840371262685955548259612344841049700507306169591458846549381923703535562548989612761505954749859469546888079424511093250680174045114002054875481614885640631335767310187783888567013590268121391042073412815754471397770349579758252991356071124558684357464590822860775780253149590007474774911337346027161972448188661469354327143123565656174936728879822682365110068448628195562625052022079778243202445553785650234083462064538549298741569906422530084580103791893468086072416207831056977532027024586371346862558012309245428788844712406752332769310796294994466396457938373405716881508331946649086667524693771158722332947075922176580955097444584820612675222516150717059168062405305810721571318288849321854392202243736196390660826932740452096805118478364706871128318693109154986736263360909498770744678952251418229262899207659021005540788276989919239742941628382860623406923080203817080520450618822561311169523057869180507927697065398895277795120986398609402088216407222701230983511301792350724556698005115119332574758341568919754303786526650685299712118512390610216227738661946137586478542757367486603514863799148414996170641875129946071900134890683906465962408834411146847833150647111322049552050044194470305930544997332172971243318380654039728451606616852100388858139624601315654950512788374619513751938997781718939063247558585378618521872404438769958460060130725024581595723839176473339730480577558767032568399777561042979660138594831813490759393785337799065903933815404067158378187481217480947252647318268187938016425347290949701571808398954210839227383496053781274229863905554744137054240932140406898797210156695791260295343765204590327302155157842522861744313980403660927632519051084629554705950283196172666757018182768521745516905457605364569615709717513343634541380736805668606278089737546122781757797743744792151325249852190226396418709792252114574214593828922122464276552088477449515312671589039915772807952968612540553117127487367125815751676760184187714751379249425608359848734391381871231881867590128274769013236118501254853685119744592652563568816190637702303872532162640238212480754287451576145382786659029369461723602965979518622075981604457396331194277222790424040568368686980080913277529073320146277321683146020935117242942609266213111979297883304138127485316113902466245059817652080199999756002534803009444743009027367630623887693520592300020238384682305361004412266933533501799655334476419845114788793271691160800821593657660915320689572995409214796644304335231212619706635531766640118394177170111223101367914076157973177664311446179126511843401393437667843734673642857647055076303334514697218586897598130884708929332176987100006270268792980680573626162394272405766090108167995137736662612521653211085232809275502626149734573268087148724058479625849212585621519334144799017846431023779952777796804105087274782052255346794832006298290795585896155490089232699008834404737003464252034203446516875736462391805888377711117688754860140686231469676819249605352494152003105784255017999324271994506322759494959371114642663009575580898956439643778223190937969914561159653333722377563171576503119524540497944772555487870091770149078678410091462104546082415751097835161291073624405106551138427911331648384731702620054254778971471260614567124665708644586847760313419615828894080901770988707814349915604223668392162774933174932000644907504237063405890089469417591149421927163136063126798100823990367892085529645540623600216630436059370962933262068531511072795754447885834675765699187561137396154175869797861939948759192981880443809555251461761877427562371894784540705598625789291676431701162200308312874720335070267822449604100298005361410417627754707441253430609256356167882642495780306157509062651522753889056514782328409101167836212788653088054618452302814755488798560206407632282440746324372093555736363432696473023514484967985904386740532128140841448494077867623699499871912575235587779174080308707119811104391912862785793711556028344508443131001942795476170101389779994540748263661811760645545096342152439520033401579297006967946005005526035757207111354913367099355422797638170436478586142836720847755401848092776374895083802667982449335046044607388487120965693689927157649087771720340936447904462319969100356942140211409839699402411857020635012838951677921214640168269349674325080436704586944341780307955252091027793104405905473872756848188254063269981141127638259844186078337862506843479696535198940794537028972742891889284842301394203111253857693392213918651783191863926003758751534954747923355043562489810763062328186691303265074373107250834208059783401138449771829911111489192791770440478995082001715551274759047700046233984304105184240269333669773192014882835334238050909460545966559049303835360922824119154720675704502326441750173020562477460040775989635913224364489298336032797683794359550715237456383305854593949603817991315404067474320998319860019110280116367597622101901578722335724313949040889219718852702553113876670027658524767821308573342241617199796034822285897523657394804715090285116004698438926499977152254123778776046136227147983294171025211403047635866646277450040899529352844268991013428021672306752458570582957771959248519948422393971796784024118271956377107548746019882981439267873914696821038272265261829440520684815391289706041041026002062019690375984690180456554425508854962896314946282453798376222336328456822652220625611329117673500407171764691236598544683669501822301767994928924527084230930657922384255409415664148441751580110932405603472267636892773563912328792832193343960285687364433414567275644240600179318831148286260230985190343923321314722863749300432178941777023814283525112357341365287008936905070064543740033034233740863282284595491902463121993563848815519358298021225116498652112263836902977956997010856303132759981969755434778933255426134507162881865599496118524721617114627002658046401581737227022934962577443273089103236950393900479862115410979470386690274383956801359077582137451556097638816176597722653188407307731094967076850148634193050714151286253729865941645837816381355138240284526766267307430978969533042590216208335169514177626442426278614537385471913829671771642284659281432698441777917272055378328610888974023417870584864581938364448610466241130494441529310595228292178856995536886773813133663957771114342050385556152472712702456138255303185446058065365208071427385584637264832596791132291655713551232137938730311429320759969406223827038944088734601457149066410525795177774540099277456721208307559874638978388845040471108833433113563929894629663905281135321156877038355743176992336267631024731894358592501363710037081455657486991771835064824812757595588326060213784149137183912063403282774695872375721576257398015841404652466315732296276995130303549949314240523080891827923106953345057925933705159245490365899981201469776945890837964914398083584630573427822014638246371934223030004502597593146390721957437251487232148435684025283702019684738298987175719069116332459421909789759819679546831132326145168715570211930819338121750581713707420477572930987718741407233198455403021595443062228005992494672555242874368445066754087686190771717139607788376174900655083104628126642478543203476710789305115338082835365425618364379116631872282430147175303872808091632381819081725398687044424389819876094851703354240477181968123845809587325579612931099383273139359650650736178566144166988738427481154174543104761074389917378764719377011204454177682908105545470494560324098099392429378289639352613171868022435764757448648091132585351337088845205019228450335683878312292806546882652232233391306031823318623155655373195009574725880633181147761763878112889961582779995527956742136484670388729208227442888294747195444754794915448379164981120442734959581680431500219011064288132789311340448007466325519058385251942614858343753912696900791453705695438345460662645401112524244744930544506051611364277243456479268916858034556101497340322059308872251638268415459450437134709107653012869114068914513883274149874829057023283242336095346595117893486713496977766794705924490785463727491381354045501764003374931112665062908873803224350054206313034589011987078429643058152725424836436373285466468639241484725663593467764040514543882771895031790561734574694825968374531935698119097322184805420939448437337226553053001404352341161583395450373191490289732715898563662908643595999664404251780838924877608673072206106496580665532680081296691272141189138869138959411146758884736715806490603591989025764045085075861723870752389090265109877218951424787155948441661732007085838181735797131343026733115578855937284563586441587813947246554144985962539546938478636758960950393572257861742586292637376792742234687789996763658699470875906483343762016424349428824855459961676783764662389366686084734710521642403687448796238976586970546190622936305851550566133218001960126439992342671852812591211223294616196198497305239204548513381025460575239609427613954743061532785233097349727170471977311103325445560705130538095786071544290040486288870608514999361948749259451228651894408145356736412950300768767068784112002394312737670505936967760591646259670030861914822517250064564698455371577021980364859282392490676439976391621546783392270574301800358298953259436945058441202893017342212183992685178444754738887727763251647102289850400771550262372481772544853607296171920873440698492239675141754711188617763436205876755052327521200988323723644680387007833993606871585048238154163936110084025771072793050999867020382159228080284490680215191047391547368014154011604215428221593705120931396945579508172489081783028194174066662430117494311796433097855014646948381465452308762647262085841357367518522661786251920697471498144135157499309066741994218587327496422791987518715852375131344472485832307580142136319314675242499781927976832413151277669752077160728133971859509647048398533858983314836761839498601872773289149418473307099981542562069352844302985797510407031384008158384756452620197241657019611954400131197572598166268420095451480882433081601348849333315045532700752245980707843276133021288523740089829418064022284380569539642505242956846933824154355110550916251813891109990730663157953116203606194052033900648309377893661706763212524467302380936479281128656783931970451480495239729132328533148696121579648789563158689400488578061594657445798164337090348730004662978209340566752723428556300205227901504106490894999540062821274313685365221976253828108758194572748283840783795659863777574537516581613544414107057733764744831517206665579764536444483814938254883297863235989128204735499173559062282931606967918579749392003274663470509178454832122521380020684016598231625596457558084566590672582718646612377396822602473084138246700866870012766717145209729567016866677380380714810321988817328807065641376200816339813719003467346667617279071896318843985405887825451900487812316469367884625527316284566704546020170971707734240716941692625720647259261567643514936715826909303699341109921019341118106291139917971888871844096762226859452476883218337279537846787091381870147099934810415758610271015032645350623564107170233691691406381155357789100647847254283171630188275019123375819121815188165706904516714320511679317429802662354445348786601299439367563791475414553523938204327761910881160637450915211862638653195364882069575078527989117925567240622064172833168902152279419585359902256186587441800584443591972825037662423352631015306982650692203781804559581708429396937290079942737283736548361506195021892073125999363849305848342369074486107505288527076869949132019800177632535347896668137455249822138927698574333555431915865728651693447660126627270396807499203288366655161588455896447442964971154081383153068078457342227286500240909932324874249918630549033521200041613463335071502585049437789310065740084038463377571683679155372605759676813589715958216483015953204923001655346712526338643328131875084737610651291333980105572829444439726662823305917710699460503572861135451411730132763861269755225632095258255294131763683872778168337870484972295863836513329582075539709130564319967814792724764149044659255218110772708847782282449521742095536446271699411889828465406608451442095210329565809628538378080327231951517861747361384736633472788450492632271029366571180164819415678902053087267818579055064543358952634656461813455101133571175858715126088272105072397262308385186016808784708614600714479655506703178922894053759515241689373501874582762867305822299933036187293451477345427090292126806508734047507108285779658409739439170523355915781703756576231026845099598423269091923080693749868381483038712470651383025275709968270985863803111281613540882709445742225761349813421244360685503379731976868157903562748122286570166826405358018211763762546381117577185405427775753947786235535609963347916245597074659222396484807822105206253444254939994939908124088538283421572566854513053395536504808730934417547141755176418541951961527423787931827812169855220806705154177389776487388924585451705997570701472641625368986274726104374763495304789253800281683615760700754349595914011845885553274293082226507274285259451312212467556359194018262183578075503378883125237335682678550525169899503611612276174716053497174027430659567987947312276354743955012364035941655199503398668361262599891995736583386119560205048496712011787823087558654374880687531587231531858008127308152510262767867291757897228865129100959663370244492244723749217683238285791779048605983393123923666095402716113091868253838133400917645825597608608195255827994161663017026136507860227099209798480834392359775758937028911853966710450989831337599584379719123820361162111488925411532644326590063439467340070246434636645157285567711110565091808285229679833538806678195794002736833636776955072162990563463678506854645979050485827466433836899365786272427560671068561704029497905639631090252996132658927920732925114569301079959289075427450450620668424263084621898296665245862967284423916345277363342777426622529039355385909882338606279876941136283156986840113609695573439750154829954085783431997917583347504485244568693861592695725749259278940219242934227153604058305380701151053210936205324720109940588560924448398559473413658245811954532935632004923554077092666555975144212714896735799506643438522990304248109072309344959207442692873493736489427416452808979201310545712201826881686194079081457488808233863328980591458833017469457947937048591394893937490916947481982965203945068210778968393921254998371744493897079417645663498766026249155115649424032077306365081219131468612460474248694948342944617951117125532643498177879151947921290236707306861536523680478916288303282042409532450303915272085438240921404879663569239254332028420722055258324381545240026755032152655805661368323136378732807921774706460940308088155986146246094107825063776416660376245270277945055218417105976422286789552532557888717119872566252212337647926326111774999350986976143457870642015308389905543000067444225295108878429633236674357668903443683243452853138942024245213377381138854248176325090107090547251999828201686962340405209548890325656213710562631239693943665984894943760856330749296079839017128998992077009996357577242356397086210328619254591066678548690764052163076486046679647103507037985671248066293287207349195897791265933726058107944956138017698782646778777953704917558849208961156208442378534452575961001734313772114366685224115199788732420713855676135238726640149514683183420500858656976900215088647013311373279911068371017832420890919250310359237301380277622644959825433545230013227421217807988736171769259251603608830784322191926239708633181942287759370976089081293521350315119380372462704944967642219057136441221774615546972176484979249114400646742688199055583942138077116304876593548507884536070830174467826216107847494393491154712556655844387356858017137913367564585927600605527722328285694713806643257037587985330306419927294929444194999104086615694381216176448936856701903847322270510586630153076706887683954761998204977761364410280590610908276511936149390315072216621097262183244799989876461583620723835130403284090206823086141497126301052834650429750034506291363350961855251719194896801551830770586980700566738280655149675507355107225160248018536516772556263484473321882899721933536652727095112691567560369375812083170248457142572139710992509296284290423889486469413974296946015966889297779301958718979658239803456800541708970334033769219802000927274584535191450034601980310164798710872454375384376827233239936867335768719481825370829976228809695264014330767831247684766403164969086928849296230424366441622957652545308447650905001437698413093920087511394462061818053441746613228679227719908399031914147360213263467599091095141386983933251890468774594090140634517419187564564374593865202414180469077331285468016094239076805246618917514069519979654411708480589027960444841123496191292027367203680518826158945207559702771871363748309400059701213455858088103866680746375679502147650708580778541338025600266946262062888403359902029291079338198460433566622061492260859387180743835568708508413325599971896812878879690254950908932087054967384142320948235150038830985421454795132880532179657196885959782302210716382411038044586171735236574606271017744164646013754715522310883059110817140105813788382551987808926988459696355064027565199641683689722739236899985273148232681913692941648489475184093693994485904914262509402878397959567530298686784316238651767078351826894258868099391745834380993074129188164022932949588373917583324669197021611874584248972860601623162619587933747249278059513860746049461202538473430652765733267406627515543560011428708045788886513261601372039939085979488491315973871820056814931531721528488771635453052196950745276205601369609506219168613247336901013098440727466644973083829072988222461546069717264151002767442607562714729011077007146226660771404830977184405269123899948217313818545662445193967731253687412947367006002684657647358419095274014621316570784130717182821341785891048560015756618893395239992109025009647733789467023826348489181431300978583152755989153333701313974123582053033500383629833977718527077738564311436221618961842239137482295767651916891443534955188963160338533779205198978840996450859285111851764001590489934084321435576629049832988116455858413568389566259443561886223285866678085790048320916055689946462505322439710706661743374631020691287259920459995467320711177995593660951165626859104880650765580275647421909823995650254079818676242114252960545446301599568953743498185815688482130537299894999688572007100064975609010665525112556158057018350144623563396006065393528281912985799506320188352477029136472443094559418933474605201844670664314254840433367976457703162686497509374470416336543134006316875806920828162227013309801558795896882084303385546428144404416860300204619776959337329437510625946658042833793932342166587424823659952301894035709826005706778688906110539327434698519546980362358214218556085021507403089983770764876542972925839170220608947404033040734914066419361592669810180395516953348324136619477811863348516212537420473060130693286820730182299050287883289949596584291946717174082868819837938957777567279502732540823396642942823418091703070882056803385636542339798437591233493669609596472008467462731799146489575285244088966696130353748339966630011165283520564834190397804635420038188926979090446142433987293024621831607784034887889219329136987313030672839520051784620105548909543118970032981481375602367981059221399793409156581984227553350962588866000557387143317179888613989065408152747624465475389321003119419119285707973643377021798676822850599225122942180343816805694587227892463955285410703501089743602391779376079225447859183124368489260511566989506624776596899929669590490825918034758867392988088190855761683948328940990279157010410143456467228312064338043542776590720376068906640593246134379876949330273003248843641427550612828081419980421867841640995733300436490766230654530773954606010381232779663376445871757086174042876321622234680908825861404078005847019094143245134960291742042736879906209580958813374614811750286760431012911922078625045353659319308212683622273633161998846406342090876774650502821513306045975070017419579025195151670566223715058476222642334165771585274843088910830596118566944004350590584579294005839247034666950312323695338232848867730526194664106502939876516840494344825249764939364217472878348748864189934795685445895027109024272366896509844427279094836839188002455864572562565590825169501998210680338099496864126780771238559348917003551454714783894586776214326459932463176255603666961476912314610589627656167554598476442572319941432497213520416865778107276801057313990093040000784423843607732675885475184994856329122390387555830342842305650086440934763647414154537736617294165992500714136917162261516620380576365234368991916737876951418628596635765048559239341248723539285602857092011618411604978077365915343927034058937160513251081621635561777648570462083853843170754476223198730787997924735273636639832410862348858517109847797896154535418394157423729979149592203761536578530536620788926872599132051903444653885725213066562191371801473247473631197989063132369070555878864424883855492469482168516370481476354876607115105467115759114590850184315795919575791258738250221931633309766339146522481033493389273232381268005038392520556457235629152843250237325920083752084770460315545510947058035813780207003671880921163302754200793358902581756398121582330417477509917048230386835995726618295838786910050434256025904868226884572862477288977987772564396984126118761581659432467568240337983946083205790473560680573976308815607286898819890829379095297261440450194705303213791826281048753893557124144046473352399618488327035537257794621897267262833795981954812847208244554636535642348168562509080427019415366958026942321462471439638855622288983806741585843511249148987147986110446808585748665165330514505357163985504157072096240620800441261524359257825626549379470036984754157322734924803827875643601468444325581719492442099582310457072122383813043987671213959009445451081046441032802535137097219216454978580344049910968128439581955174344310485793448519850307167172528348234271337983881103962608260966182699944368360951970519611494828156378878325234542687610875664086222481337565747134221982612947834214553708671599588637700656665831177614329124987175542663992092001487092265481038048699639850276697529042321461910532375198087893774824786131026429607867719681599965655362901517058959393710020065995007909461540577988338017486474979156742402602967086036922039120195123829136071430568695840832568038552566368491797075468342839243453461939413435596290963506414109627023989723819959304033890284297363724406787012261633870669846398985871567032680897957434389586432176661583803919253933017024445161507101351607091977052198558425952504985070289645144336631364250178648501133601899912237426424270510795808358837901911446703712822310452599677019391643581361158903962656344691633101666781273158406434843881590055449708874671170316596399262064503987815933627246778765510745953709707152830072299010700543151312484073903598317935769064733226269493270703185769509947154692906973146151985111934297859939591316223226784738397018680036195863647832174406163607617528642786723379025019303551822539871685899461180127124371998704289418519990623978119772797005214988371091419863403011205868384259109641754039274846352655288268877711576796033211339925844261662868790984512318053047685409103617803326679564962618798709547427083828521062310734753057107507811030005835407147968932826467822123790312322410711815118820950708804989770328151932017504739515592666458584717899608016760562056418515031097486496394901962134468668849199748425468742786552369506765540171615024602118052139506918297762897471885809038474475300386389022362437189482016777937461644053334143621326771321129315612079736706764626752961933946976685860353448115371847299340528819888734382415288560910255549316295162202109192550385834349313080720697115985213087698654098836297486855851701504243258138603815180579422396356355646957169848562668078047230758203351933407663348981826086752401902055351720222423749578862876032053377271431142831189268234235428608316412578747092790112257542538866136898409239347032670727324579461197267785892597784617507464721218662933529299410772491960093246547430554627837515205578549663350658026210502827703040182907093732085529049388210405179825915382244908722272431601934877199739182366943789538034697953799356941633373896656576497253115933951722348167804452829255495004788126444987872378439368343184242209777356195835189011223196089686805886432129539982217900892815971577795163198739365215814806905649865556290063812582208228663057957607532600151105484027227529555171089449274749293527173311011992272123493780086513841626649247301942355274580669822997432629606181069171256101194499719899267026373848091518590708361407541237003185734439880428311597408327620944320648954863605603994190768927492756487360077611302573333497084316161573282894902835698212068746487556341392260487438338996554542525944426310337456644198474765999899981427137253050680033110443639471975084926022992943604493874852245387918778669955849951836151616668605579523067011931999022463925639804140056130980440271866766282726464665996382845069512503220869266216547827125582826293342420278030105839667297492754683832386261872120420153973178647144727507166594765145846742836788045956938754929904115809121651305214258383586959165303184330512799568470998848336631976999413056964813408930848493253482577201550937366242206535065909171575751694658490910595118967572360237229828208243750345331326884044767224601959713633215107370525297627205452763135641769010696466742396178112679432821600818474092629776874826520509526764833132888877073139572993803996157393642297813063159758623657547007162816423149871155328456625074554805295457945169345330216181107993711762521922295634870878601528550528234021303646830726096376831099874769757733440875171132671976545050456114389388024563950530757169897925939830197847826622083447293683997039335210192791829363743010486271706719386994372849932893767862543968268368299186882595791111473975924923120652648416329256503303851597440643341642768891542657228566651442770411787103849410476488768675258870378378033333371563579950390541871874205003567463811817459628591375503006015962129530928801691483036829282268280576847038238361077164322199640891016198361646725874948756674459239265800522658857470786828575427247425471467258010650639020975434103839335870458123457045236439174523862338272745043330112289002832079589671707014627134517558342487900283705610819553315032125007458915708771414822152225980972171990764449102900133437859183373448842333148237738882660067710107189880371893649000626485573937926170121727796331447775489983829829744434019605720587250290844455842096297278888658879387234516560453269400487950189210361501875385990776499106405100009626686648290952674880007480120846849312857538514760813945915829816297235775079915816735204578166798911736067439402038387454923568360974422171089201943724115208128885939392836049108894376471666549636359070221334330786279575955840532451587787458939877829293304793359764558357236623331214700652027053985152164739644146182981111067167616347867865647527042637097689891451852469745951965612429622989905014520659852495672964409835136260029231467999278085679697796790908554297621720940884542931153380579627923945613521754314389029019307888370445275529366194785523860236423518185418477283668375928745396482249145183700634450318687043953721894780603321420295829445932414840667966740348535851721266673990098730304339284013727271744546000626190096206535186829924326093838259402913300393287653366657622093147629188197628989372042849765538148348548734173267519394448406930227959432542223618133074882968586502811574756673097483518626716713034537060346709845687656121782353990495173019264317578864721946399875168874587049189261530596686754826462485539205118815891964177441621779406684846303478074468937979543855140743530127732867275322177647578563047266089536036771118752242254911439579586595287774224444668702275009622223623728515779931406787738082630540337268400418384954907730044010909307351228494402868088912197216973325321562496890199607999435110999734900983965343109425366855083203461737311468457160825512569846486471822095109043427493493971048179323436713721930496903255417765308536300642140974999979005695984599628258085294641728125894908268753533038682456368617376059593258726700920761719120118048022489644722293964574500844295984467122026522463965939868261013199282674106258208500069422815109725663000621550198925209754581624235913802952615262246794018484780587942355113537768202962126215395900186235275828171370874251470070683726463341742508210681588686892869110093415704480101171712775177550675955949522554831382226175982337667298351558863016936051553193206545002214304103603382250201609978170401810534692648960153746475713848443366791335822502407993909298229839027090383364432094758194017446834370505202467177133809809951872211265724366620666197706064861533770700052115674245634736749151059664659892837596111702038349990929780792142060542684760350240967030079963383885916997601249104739212484154255157400066667842361814243080036417838596362671550831855206891694688429422582039482664875618940623424447779000417552041244498085660014042977828774043347999404156664643825842862291675931427770400929317259327597650939022609321178466562508392162802362042245250745357078462177387165398067349226272164518043699082489355687002408762402122037096551565039631160712046760565010863139004455177799654143392261245646710212435028018518434067179374861955552296397762020215394693407673573206213419987472235945085672189526547329008279892547883503216377695598832388887984707841553955019538232122112440287097098289432054583889957693984807898877616256689769319352878605871128255118967045734378937096460646857017917202760765942317867599473412813476512901985431196197183000486016289114365006626940694463127624308221078859200676938347696773754647851029875972118788305552925251338887003465636112027952557357351955531665342952744010246862743295053681646429408540203240285330548652248792433009816202031781385559431570442875080764429277236714106487239299340436876512241452534083343636381457711518417582886449818924754652671891138898911456088368545261918449710673364119111128606815492866432806512834986523994361555749856863900704850037798562645133008345969877822002725787974740992308916392943413124327419902380427104445605100945026034954888662852757998302259141594361513758181380592347598873016543502727115640947891189189756585029027501453546185424079725626774443037949595405879571265872445253808730195126196227563631384205223548832675756253792964799185084521952905940740840090561143549197117198577634290256924083099024968315048291487659883293184834704761453608774814755686883691250146868999536818356183347719819818376671005975457910909441261212372222155554996945152902828572510883428442565285058251605901943132307578991460390917488094459404084407293603243072533834432598071319516581923440737251567711356774958297285789055169549905321538027854563155581871709551459193226478044547430722289021161637397783095337055384765239572097233296243919774481688042135214951099434660781752801627158251240577906298871556430868203613914957541110733686934085081273294094736893716743862179041444131986519070173605262599089326019814116191387906131856365429515005614993105961934224871865935828211011368469200015593195250494267969821784868933058653196256346590056433642415977077499636033186335251259444902433445308107980705592876533238245550782934099096416556158659089644776555939689336276678774409805238993937801131435736750638640176238509914867375272879120437672106912527893283591216497617503370852305087804897047395485301179360833798192857307936668954954092076634611463516618208836862237506016474435868107820773373088575939369420430925450193471522987518547392064998308227455991368794581204507598375890440643667516744780886991027087772062624280690374466962341021510866912799235829176300290629791606147545854100392240560721545135888513945191251288577622931317239407383845686835101938016384670371906355688396204003357161137428991124345496496599490765021646423849540138816044851130074279173751431065208913791404082120487719579861780877310991220387338977580766113792949158806265745212816741039809705011248541044171807780520782454061061888086447968643387473672702090609884245923125786223044373001150080098850541957219001085206559276830212518674643330109390077247224342257793356613869164242896842925800212099919392155985846344337154399811883331105781183341566233357723129814298071009798961553135747418281668771369967625236673327805209075669061133055816614393583369685390751359735758643535357153288434154729361135356928829172785396957878529324752732647430815841292178419434943872063827670022474292501235911810137405320543070825843084504068900137981409248371923097360781315790888442478231471776223538840544821890193375712818668385842314216511065292877822245785938072342846741527383877437675992986868279407163524804959199776444052261969264127836396815937809734130214358724055696581950447276194473285374669665621442941240963595520881197457983672966924915089162715014668167631598114437545444371322880014689829034370503175047630310967927150673886455424247212841838443529127384396973601420709109167552861605107011105528956335899604972866508013899411219786674679751628288299075944617339620670551469635828652981073894289802423764735096458989211277856819110299829059779462504930169152185628875737004820261894344749737231319085677772567763326541555188940922754606176272526253920908943431156705850099752982507437221699908262883292213689944335128424880659245585939655775304683102817591412449002076017208465329004348696548844981230685599004491245833345254221765840528511459164149106362887615005604722987923123799138553867862383341945383966795632797425150911689405719891487319680539579711132279365290201866623880542041688310776868899312688594217436775373984770089293821909453647606715516607007154837110008535475070153035676557884855340670454415551047485764615024539195286660040787904737052136150688667632335267216421984302396653187739294626008013670901391088952154452469687263106924419250828239590907756834922617803474043292416347926140755259134070088791677301894855445874293544669812122614550583509048255833025688231640476985237058416699930437977813430783100463590304266071073454732610329159867359672137068571204251311520985451114394022738329483574077483691642152437332966017838690773764716817838753462575215508523682567600676611220881649487218149415157585689465532560321566034037417161820799522680066123621939967420836925180290400202316572746014804745366064502589326044940301591043178728074109007354328538919452434086992246751119202026647386136873549446349794881595388527173593705495959142519238863984453356318113692756062603424770493687708449952177071104100894822746197372247807928048013197348289423097006508799491662156640408153954732672209627860833478036132131109523976571155230756463344526675468078309987209426870416233766022587486331039820477970257594884866225143221039145322517175648336876866125306632277874233980508266108781914412105571315337460886732474761771685869295343466188157597213563970067628667878408732538043194498842189666039924936298249105118789192310781244008462925221873922336572793263714772597999614262883642239071383243772451014035569953214103356281868238379216478002393603865878603617469101517461977285577642643379562930817866251434251251087451860529776840951242165842038274187715445736009652184638761693644083400118316473889064629322390768310172066941895466789233915908199416556515152833013139877505365202374536698794339615818100391716061828604701634770535682026022044788051626299591980289540471010364317628702416161692969816521660421390389406899558231109518816038611494330778497005643786872602239159034220535055634005136248511900734727172779830388885882195349006126535181387249050853238614706598821569318049889756504782178332993057034298895536521522651499525331300164260528064527166418488534285853731932176602738439586090954234975436385638267252611162092920896536538841159328468493738499965777321887197902970745612583577838682507524559240648688188496575592667852432257382626135723991103199540108087128866212160341597119189704381051646982294914206069958869075752151558434362648937656033081705323889849480550379172479658978667139111130461708253770273215557677199621095978112175872693547711990130328321556668867691939111262702546858240267828333850209047885992356834425319901642537257202994783025132957994557761476470688256684397897380891932929750645882593251019224165995288171861272403455498846651740549590849676355895824826768729824386893925103908231244950936844362278083606551591444731962618959868137791526599475942958569999199414401567898193083520880082168955453741787632087642957298494621922900479068743905217826694700373110184436100661189973760963149750034855116914846509098132163340372419278556084223117076796583360625162424129401312024874897704263652622874188425211352961337182660018900715930288060621034048878190720224385121125425665226531934068728162605807680967948336143264199161842977330920642492759266481676353438273407482274505644008249777071260175978564887828553289348130913348389034357263213904443307180815511044626620448630131241890140171605342064040366860399924932243111841192119092110779041820576333710461172156349916452858176421346614210868746424166641351846515699462160629071284995031008853147472227569539252234891256659209831456137587155714897720660005284307078682637043720117994113198639688311709760749327994320591409475888090820051606852352083087759743932480600778883634882274596024816865906529641206531573091375512779743337182452327105984230976102381085356751377725579054104845897579423762617985126498568503036273349477782708070609576775536952396084747982941568462162210676913885378754287256064825478504467578661799509840949142393999091975171918059654341786349719787288932346505014777932467128832693232455012501801273826303461742865987755135701405582743398094318947961291419829253165669698768992077083845546563671374866783956936879537830760519528253976556348149606234513714072079917983599270687924060878713507333048427578318334096036738642340359458682899698099985402182122736736306478658311291955784433784767108359853108020959355071686082480049807396135111448346056087719044715605431825529779473723029320411363634734092877593753339259764395392508646662588562257486747932397228651023415166545243934894338290383341765589161737002347466930479521976294584960883026540806946698871990815560457568083555009140802266691401234656108080785641939530266889365825158393176118528594493946158512062488884837645273400556123860253584729860719994404030163447762824728433062126272804227747918514398240091497432327596798597101306731595978433833990613889305123517297094798333147360431540701574233009234116752488562873517169642911633852403927261819444044673846460374407218044848179142612833529991708154150229398672512012379052052587939226403944758293476877787733676105426653675047264296192767828712169914635047071813461866126182551129700395715025429256269864764039230974936993034101917880678592221977868807983591816630573846197912425036477869303608757077978553926671591477436868122237132038909436797677814331215299068091128886360401072173766522412864789988447528642456120332477560238907246234665799291756915239981582282774421436570299814289603715110331266217493871613559588782562702734440263079329552954402419472033650100009937913104468427188349443589994936902088039316274076805227962646655577384714637671960263433074987129994148236995660394484227424741986760422159254005474583028192654388425014107029941755068016098222143183881628897149895554390333467261067811220293048287502849635123917816611115725533097369820295876248454183929972981189728147618782903253208801111805726566907387172794838981989027393894905659864677344598253782686137565754216787564166488350368261721047837186414421417987838198979105598806174088355205547178558671826634025251393700849627891011990540121955375167082752893527914856640708621210887694266587301432050035555283464140344425152357254102516609262219338405864437807780805035671088353972944392848716167239221734880443020561415795530675720135758507407386564947034514841922660083550985211833445934998757025961774037789610908100005135656952537670475562644434370022040503648758828971510483820248796044788684200473642272475191975630631311091980645622964812241148355853162496512032960894717779831115475180006963722279241271326838915263156956560132750204485499435592936265835383572871456326463380580564445545374314147016101303987993367203060717884823570387150478739915829733789360095284987044470477729809475089048461719980087984949164868821932758761570647921994177685641557050171689180623771825428338328745056082845654680047225713098809472961402045477354271189247539957061593323002442115540474440778783397992736772450052510682893213620237310450303881868099334105552314833267089970646956381997600084816511006436972079570577250924650955398992855874306179390674980600317696585378401352285537729649063082738257079419497090099524994168042509556752068753709104897263826190124130765366786561295714267121488757342821183606490376428587247106704310015790349523544208231886523461662779781112269409862184407402751248757725094754926207798403296324289774268855805052637029493687218822977283967910228716892064057573587275359826319626137315453676179052679965457302817576103026946086717521054364842934525654879947945317227726782139826641578197582312783552793204761627273338970032460852305249230254332253656760943649235209361319964203555844465232520056356962891295217974965652773784288631736407019350467621239561879040906253038084589927465017573549364063421190081408069865896533710753921632672051378969227776257433013928279156815612110518039286288763873169273072627946870636727064266366899380769728660586355550669149658719680341518524622871182834520151435509079004544870994163839198862561110439740497767735928022469217356756410610332031543186241509982402464728469754065262631776435044217636019611464197634800876408718358046159389080509375679273450070252320772104750670357621072785153069770237806104999391076800432683872070402078414528191535043746247950627945647832856069400156539869912308264733795161160431497489738143748095636764108221352736087994291880909232634777579354635893672963937431226959866082188464805233332996590882417640374213736902914110133512533621130765190594366693402032405791601032533719682098589426710115443694365973606158141126845441353146985369076636033552660674464193386748295087009709571381244171183845521519623978946726168770362377430798648549687620558993440949126683557060445459808230371994626713491695415743451055232808854978803919724066347423650629106858377340827467031643586103062672196390061179886061666767439962994749740264278231029989333734183254646721027786507327706877369099069015972582471168543264353532008972437018079792720955049964138757550713203029010684084049261714477865318552613934537029621902492147660720659604959074222887712097934773077924852610884638263429879430535962871056926974851418619061150995527297060778032692787818069533504706647169543253898725988205798591171835192375209462443737382760367487471047267069588247769418227060105056219344627756346957868769160062739351172684778588994152564798189966464578666938717562642806518776660939760559624269398372559698565466452761720064746944331360940253906315320260445256060123084246761093564865144684280048480388055003672367090225408921008329257345930961064453563832243892832645750476881655505436440170532515842787458503112969626897829749888339316285589107871529264805490950593291880947972720398867630386597700656927641263922561377710920482919405751375652234072478620519611107929802504823314509318638848856905081579076906280102185817167528965961906529756190619819179062031616124215484168555775311993610705381896737952931831143770401684467258639298484445692078958704361101459649619177622849777127301721464550673288845234631797365270347896335613956706907341468766320403810120559526227286123086201543683195848694411424710699818393051900319538401538954373299914513549727095275414691294763679492760934965686154554521911988146530083071214717877637405933314037227771007320146131237994644038645890019743793205699857721497646831208809424427501521000753091218969571549367909651898248575438652539098649467884277071521327134099487790558835372707034013303838954549873119631551076215954883123485819468177655606103290945044078947260355331671913801402158102293636175054611263973908369843508404882449445191112942348802623821556087331049661306720005533593752663670558393454570089859984956535546446340947815366450760231579298764894533482551064271906189847980614226234035723812185004606549409516521167312861525506392492918905664056789743532291218646743576303378152965614298695923074670100922116497466154035618208576840205139047011962162410437447502723829233258982902344984244689812708624803093660694962477971292404682799197587479221019757949819227539305217616436493282887114423355973430392558505216414504035276270821821067564434378849098076423827609993657011618852825016992445152515288778490104959724093973019369930258018065180991610207955371311117409304035181108399156749285590487098095293162397981009900385416057632452889923532790545407571937202997757871572769581139311188776321614202916075110073134014190947529411661515649105347486601126195404126113617879004459210803466145072738775819469329231716086383391587124827579281966103251166624685667302196758396408175439372883738371560231835603197079363082438366676564225044416132097518265310085687636401340830840281545646083424056109746122773948250261348823228402646436513097939632601400718696457814782314895681167980324944515281578412798859098116092092874565573536750197796608058525005154708673149389228179878250087003793330933359151590028433815570477732069717078623301050126958575469156963099466974613805630776832991214303673808203955434176727344163804177515641701557352514937084705388481284075389296372262249824480148173998649982195358894474792450760936715351729585744057941202534121703027338922784558710574913436565294075233884027411158511000084397315016423002389888679400966782150341606170793693757699088211197642575215646443261849929249153663999447539190734557466355407870137220053483628072883609664588888973891335455071303708429847716921041726918773828704121405489391680805479506659483591451431308569453231087684994379385006271241950715266813781307439113026230048511668678411610414697407299635403086845132500525350562700536756193640670033448537593129843615910065976348265423064610090211056811352475664697082710592487714017999087785066824483853938794546349020155902647400788145934069736934876311673048711440690480982993139219638894786238252660837449807321463238216101740728928640950608660141457803093763541401466485653110439905989403369119378034380594519660059878546255564497075375662731463754931579254659077403463666740111282739763641379540292938782052313364724145687002429879178157156945270897473702144692597088683300095403059686024180009748306126947028503646599208556863955782338427666229411272436310168819268586252713464675259735620458227072685037226153552992914421130944656920142981175541136448265203624154947876243696204372829339184565832068924572977604380944872820457152973062277361459176171395757173620308773689896750962882341266298381713844589910909392564105859027287849452973797628085172004003458606178228966942476905063855518261644281121524246637854989830593074576370679502254043381671335202865274813411358249144905067318851843941208698946037561129143344353210369730779374112641743562282673662454225712761597924337416271308518197835943584823617731612672685019224216491545503362300166465140806570892465366025988797997062360771356954604194160832852951349207998360249666696852778247008655941954493924129123241286610445125271985058281358181920904160773843653667470802659053397127562630202509671159254945728306084895731741151213495921219545112198113742152648897012050444980267643250402143355967272139450959157739738035794456255108048452322324398830758750749413021163537490858855401140756755116925207090442465109651337776743169119782751189010524449111095048189516271616578918778029074666945150640417916142686798965320108675135281131873007956356639976688166796618981995404985542443974931674420673863210576324700896798571101747602449113093782614208831812569636605392120685779410574616663579778795472274874262795477451125530479426581112949299550390333547377332828850201128504456603124807314259430743463719887984932536339109064271950469227232295342325840442459295077680297007814190841881870469111750543395805315007651505485542389523491169715170961565106712532509173709959730492227347348053075806210089651388786872100049223334973262925839661529495570785851368943861147272405390223589302478169425138444974359226874110026567831379876935479214012328430030581761750126572812355778696255046529494422939668011289555605265056224976342446517605872855629100168628634111364960720813657332454393820170848712671342732513042141160872168703961271455172288841411805145296730399716412608602156405963343756462586070972194824151142559675813249139915655183509293200520492370556157072561877534519178967258824476729955483377075085313515157298298743739839447292741147580559590219263507299956808827238198741325314085221280475915592899204327476929699384807759924952126047070149227455953908485486341555727387732811711345266888755780450843494515792625426094063026206276680122221440430280018951769882059219699305477531225873250611033763452845866516017641459342177475512811247141821155882598615556483932437533272727324841682295518512111969474470218389014381985272644800658741629453699521841680841223726296188403766486951690365710180085152893367939460010947729611265737992200430479593870803814189466569712189414781396213530606786035893522117549316998293489375213024439660398986016316246300519204824272837911134135078055881705658328029317311735443140957530016963725797746010205231940769069292156770465439166947344668832966788974528317072645996930876541857169459103166590277836642606787320587142777969876995439895017186141104994301911891301678673266261517995629583271471429771518684647941915475112571743748244272141125953464481603672609007864184057697911710145998169828775205888148893247369640619323522757006153882377452293216729633508928461850764814747563673799303975041060957638206528670611443730112529205382165454729092273517624519477787375606795807646740646853727847981281628116904982938758264823152031396157206799362501960330676179902221738291941221533164595597761896374923580534837821482424451422404109368291564971556959818140536859447878410115154246666632278191258748266570744570543554185716999821881248682057667270957697684029538185803962969811610297688727581629084993827265799441007811964778789052526361479849274420104225503648245029074242830649606755998298791841619469073890120719582823631304961174930376677455106185909285297879955616504076531098277344685294802567821273089289678456517513509348478072539264160210328414805993204487471093737299252829483404744296955823952162000169863725000754719412161509499335855761405276492651081180671245242937658731948023183517571286289975561806549043054167310936719887640569533975582749713067064490336229351068592634612693551768208439940838249775991900563865206630179196375389776633483243903057770166742790598325459936300658526283284933963744265854327170484981985340444878121194300500019732624247814800159535131890673363798974006821801104090414528065648751620572335188747919786596915642833561964912246774186313196439557214000876860599615034556742920181781531849693370647177019956795784766338323438606959961548774090110488599722480263902760261261274545274559186697832405816605157976921434259419743302764303015081563907181295773645320565929376495107741392758243701385156582555617349596120019187325960383614661162666557024033102473610677421845385471441731244042106898953381450570401062159575445238115778512787818395942700464793874876892658186712495473655829861473055156350170913129185806605212395489133871710998407096869175533492390241118759028005638359617835438044710489376800658317625972887451113211093698278416824568548074062020467167434294541484443001991178471560675045736854753990436671507613398327660830274662343451567617362146647230970866767973097441048104909876706418471747200873001820026240440362049553336758947420788846495560792894393416577472497647189985242641269863628205360558346085024261441426312135994170854346248978513694025389395185748255120665428983841261089558272008264176284998159908337474071336505095823213823927277775089753502515044052640026954810951201524646602826545222588885800986107461747683723707363491153747354770756702411967024899572243453768618406637215436814003962037841048844754400929315108556103826593678990424637585536392650084751190993723108375861108722574539256853165306723342398192897831176563190791369993179282221538995019901467205000635630228467108117516762283667346642137214056861604411169155293819262401603547781471944908328874288759840227455882953387699886130229520310030993296588322394120706943090656486736052015243080183341721426220517996144729452301477114017408090182225921286837388888151622046616050800070752357522697336855481854279105924039109638693796691673471279282046602399859807976155435312580570494669807812924250059682745598954250963989344592688583795353647454108834981513436185456248042839695564108894659976026715097819222886367086886986065464372156996755665284586124715098918110906553010784267857207206924509044431205604294358928636469940040153670174689355773113693336935400656619717672762288924944237572686108959719074847350543955520814232142394595677432236562593687413267031787869512726446899723424288020927113229849805465860980212111784468387893717754826738056437498753331001682587438912646927084290372818385914526326608124777073330216817177045781181850038150673384479839587224875125499242631141400937664624661226036240939345141609599767164031191016906417808516868840859255490783627170188683863601727445491299023628568655909421542320185979750072236574209491263743128004285121114706307768930600374749142713314605091140229612973853877653721749339012166379672649095511025688214207053564079422024581133936466778277374131025872780833831358358954826320288810605140020645885672454764175132508892723981482592310808899146754162886869655439575568338714059224073975603562706102678884707031428438044511476963618162240588620406905490540158117212661437781512063592730273664701951772720243963115572633121365537194170686525610583831406315308085902465875365282672331506880632117312089214247367739687361297367201935299091145338646260906486995761759576775731422282767720377545658914182722176259641610395973365125267348945456788921804532403522884521307270355463344464155656576578957161803662464307717953192234828678674594236588647797695850305655308700623460368755503694031418023976771738768072735376867044551835434930795780568677799505534351760915753359646974061390686907620282551128053006973499241199408705226205646039270192827844084504443176273990619188509061138132764486462641941957596717042637980387529511658016126005739092721249844542976950913831715432433011746241839287167527487333690758737952900056730888875305310514347994797949309049975582689433401176690369122255311977894062228605942021042150210192910161875726228675274532468538334595169491552136440802388934164948209615105507559280023445897352789423550060842590261265522833483368754330114901991950931466976609748616196502196102498341016144633093477651422990651078208564165757677528272449521940004323990688796524136822805326577915173361494414185495197046058458613248756931786859593940575876019864708382433419189747078016558489672668462488247643971411817925788471629091721078257846890498685734324886109286766815187265090511388898410140912305925280345107225468572317828477365511014587016210809361155830458168708305790160486405315552519845688738098201696745205645110921024175864268942067693689067789871633509996529294727383345825820126647761858575387526135875257741287265831540461288311584541399055851334298488994809727440078727244185232888254171775137838269032025485106286251604132932715803555254363007111016875754584287282458039509333348532044352219958527134968963049755693960633632759349053589574970726982688360717816492093577743455418567864205497189730943419986208442808696257840363078786727024362758964564658540926429424861973026236771705232778792221133195520887785965991935342703823163601979374570137313016834651503739748635143357833810763246659417111502806605827643406227426022382472030438802213716926832357406090941407160206819612158304865762196337775945627574837534321385181213604903392920496119538092891685887564663435057349059270951850267061208301515646632715687487805505829384949008680767500268741711325972504957393318916751647138948176797413695818387581110825372692233913836195155782951243877545462809427345791024263389505834423052577259519020911426191292984384628722539493855550817565143633820476899097874124511760015056653156768906584985200295545762072038449428058817451374444139583546718426196600130630216794967344379363473707182320537519185596584072339384765843472929494425343976986998247929805107448849201134737190712253821374552802341320942029355313712703939508470147546453588091626556345009936787693811578416363807731482953289354201926222523704316799919561707494017105611837954096577291421754477885125349239552742387143702333324464183009956379740325965128746120930394830222270394365396713797527680084992372920502964996043279466046516622422183097481912756029481536700241357488030522720864097373358275407233351558954785728657770414192860303124156744014744710806613745524332789115720439161879739411203804284438320628029503392532487735078546098745349777967023666437444093115337495901967219698596869945558931363027678154981633861828332573538197877450528171406112818169099681597437922492456437752817239553823277915345884284216609204341361212141298283031713205107951496612905910096004948900789117185352455595389060469955597175945970239034885223253214677595037948061508572451331829035001488209839127530256196773958831230362982184888207601755113774723636690322253157814762868370921167742504269433646896383228629294867586086435846432988553983406372382746179720030938481366217192994741590470993571552911057167382982820553508721665748219239197877107127149033088375592807794300543444190355328675317980625351940622266753560704836571251743355898074996374695777298798423710999127493709868099385674218174640175583563715840721546501964533997566424376057901173066370349654163888588375329837404358791156933327855346248580806492060034274973127061810038889285080801370982094049767673293166387177392078906255880732070822197651688028088112458981923056788681222594566102753257860508261738683737804624611714227639541628966293007929920243255613719864633937866182411389891557525201144904568391896323434084246985899425604309204835251321664375858797355128867514033861322524982324291541843885838226141675264311628455790395628566676728923734648285113927170896802530002394498140575583350966431025968050866023012008253525681137009290767633035713918537629597919471046236744692843703868742816597110780693273176937445106280682032495193597731781977817904127438082706432628329685752402704586591053350279745123599547892588482976168327553743715601139813952198229494378077302884849779232079100916271528200774736238038168529199337048719650877262653682449486675855331569076795489544014427377663406941231623485763457412600241050948173101574352520995736627351640639945440048836848630028005725564850791480673046300631885033096197215089710091914981734473191221158662453346880779122523811078356539599517324048328429387310661660903300415862927562166187357874309620281995292189130488197253142158655338888534115627390195602127597447935277283360620050668591686652098321771949060391576801716062968548032949245254230875358072782481099149687808636036747109974411138650300156864493223552706409526811106894501836408297307186742639472384458742852785470396690290329176596316062238059671368415191974356252511786461209171848902438632300850875260484011698847940049960894256346610066881611155661552835556720464581707377708673597893049673415097726026539885300801393839667053484851463861226143930899193631787302566447163674231376327025361454207056919333778438946274233885723749144120802106009793441974288480486336553393502214857312174279767621480062905060714769498101385267383539538689698091816535047776423113592886245828356232959509675882575428541079158856667735250829103135436865068012689789260240558102307864443256960957642661713500458078540768241243543335709446375951480479520532975564115334199288753543704982030872409258263186886993911674421075282313859142809620110992802680005904055081826292443293566700300395444253517628533732930384462308697195713067178331436149566293217114814729669448334973314806947629545827620475550404384438969530796106836723907667398729261066803882173936667406234617274837706032878972014361939714859707532935874134285995604805054213171250550553067502118987134412267683628508205310137954291210560859046808926957609196407529688201675043458246521042287270153945152064182459115937439724074019030092842802102051181733056706081327788039262287284682139979218909999616111970875489859468418625907253074490392927012092902114990937892127552821417314918120939621938058091921333951315518919839490315750645283507862492387866740963084871602523489016576383842815758537668767697706916430828660320828117927249950413230839855959858753353411547479646420581314953447315874227319873665014258670164149952324650795241290480729745542246591926439072458380373109606109212781777058609455601314472928250555861360663051200597981599813593173855901647782940744429328056144556053329330765917109492540399571820605287029092415851321477900527181854949223001001177634540948545013171569805463420997940086664191586952676815678350857044095117289303760430953571466354163615826920230322752498012588703269481573994943136130228967957704436547934443998954898826099602359832581600276373952233059289239422147876803333382092686597773987991151635867053370106129930940672887179228733290193511335845048706694595229027322440924705978708033263415598634586644591572919927989053904171463507446143745281557431971838055848606582071645255844419936947526923370911633625817127659655748501990730959036467266173066119913561045568436825489533083106158761660380211991831652597615758185001298381880086765870224812525443007569236310176119184333331665491018163305884356267450496111091796584725233144292566775289196896608125881709923133929449386848613388390982417939609194093867510387642219921191744192377363078907696059682609295515365903340834505856237190979065718139426903413864871802168091981516033281061662240143961701980705878936683027451408047681639674657854752237908592506088051701831411593051003720453862144844389093035514494845216323430228390931035451580980393670546586507652343821730829255681350362382298132510203135313762554765069687279440992506995877670222760182582170240077639403110462755313946648717478347698858534148289509922209232299166235676506711572310358117761636657597764743638583311753961846180549863499282180252561162187800622780885786875400122029141786232659277570582913178088103481916574740072462969839346748788496655255739865464543234505893620965372002690010206880278439528265911035534348617119794436959586371188812358169587059281876951189350905281454525415468611759611815721694906927306355717863777427989955088687948601716634457493899597640097385148528693938116608195536412552508213212287451010068596024370219205571477258122980624469819153062459396742019604072607231380541870528600108365680724377577841444841149570381756256823437286466500639214459446300408032541775139491023333084395791129412408178617734663898530672877713248978965109028169681969887946833342563894152676084193263428098914251460182949635389738759595231982894038935324060833403582176007916017934050496789301939288657658555374370833731652402672291695338028418099768500452595416516033392230346493960166720691232984340444798830057192244089479411682038512709776499075429528201767814461132829884940025124072747991113564441876711447473766710641192336164581371697904586523747710561202305787441339589168689814215711770706230909154989301635973612355323386665633793212729824163525549247956751574836568973269995223228460777959320390497518072056504255360310162490357938700063140486111457962562021772217547505504116999986221421147229368899572952908286328489386212990236953032193115209199633127468407752019640621803988335138661723811257902089199950833270338528320179767533163428263614154048198601138648672156733804643771422494238290718466502714328508885580946982766167083356043458722021242490823308591418368859564621065338440269076469687728460721365074946431374409531824146926105526511252355447436082927817179258564543806797376279961976971729197302363675047191060390328551681716852924293578194375796528065147602233164325691511628932545399501391233090158110340761742462520912459128492434365604300711188193749341509562614888190300849267737436912615724429884223590543546543410565091093525317887884082347812255516342297088881967700273902015618789179267029525195444843376445232260859271134281618523755558048401039837731923936428827855632857475341835709951799799184974940129775701747060881506186592529893236767165722112585859236636157598612246819332257439691360980317677375355167181483031932314841097434270846772038625299685243641394262054120652104445131063255974897562413714832433161555814236147989762338182060937174555965844977140464572686958919994380841614957962126371377759684814264826988955720119108088661675126002111030104701504915527376463180697672634099724153771600534266546289004506881951582058320496975574039024449048132484028762240037971370103379933065723477418719843880648800902326408616161439041840986205917081405428092152515726578505850954357739945553343336780843132406396324022804897217329913524806877467126361644923012342589423754861655863317794303274135791083889175714075347544416565059934364919667804248166523336727539363825831972715531313123998633304509702291135252809782363403690200643488022653240447452798818611331113235434811860031713076999684532800285818121740267782768513289103618680642064505085444647381198561673727530514995354083427186707641190504915125869631704360810709142193183586908600026317525037897184647763754999085184894790412432494850404214940417690091400986057076774970079723139382746339564290327774268588923809383760319587593933026708677626992647501745966837872790922532844351825482025309171448235881311012783641155293264099759119801274332033850252441120840071501503613855081919630439187139131225889125110094818843888596629384310384417855074243601542980145301851792900859164030983179166575049035068371692197590310122453395236976220897021323106689363071921980577042910647658527066670674452759127551951619264727868812636858400891345765176671962800245598420171273093627586818587186430464077827739399292309990087532473548580198540981564829598101919207132850968390412881994358111690028002435800583501152521996306245406508809478405433708164957952767603715435670343636967299889243826921372810445110748629742993411311374957142794466946538386989122316488271043877143466044759264047416747954200656705390371622968538964159936614772940616211161638065525809122735172999378677938899397188785899205945127082190330105613655959131300570926132619179560526328749917246249928694755042686591585051322430822097675651149097210297791190273820914734135366216931256375732300180881330173137600890013021155741874247268304677877815045719123527112868565653888465826947771387655188939618467690789374674788106680943653461276094200308436680850585220870551099871646663132131598629887046270491355762598990216253090431012622831990933671612927637643074262408558875998058280589097376257395914372482435606131934265618157418588831529756345178695977294476699859831925918395858733063827590374175933543342250524395036954703244696286237106743920278466677153026058425163025991360632563525965574721902477692665275732608403142409809630433953879494377227289690238076097332167361798018939862705318703238698271892408876972155497985265511878829909295048244820899026636304530430245367840522384997488994813977781723886846190885602174777012067575827729405329812654161100266388344647999666560512171280185224848317567365841116735983627491596172209699530012698745462925736169149839078538572997964732560325412406050956819376622969753825695971082704627087451910323241023224847453649251359346620137656860393807370279863642779570630389539602480706981698760369326690164477607439915245063188674143496703701524016430780197484123318680726080283946126906060050988752198524934745108979412197402998552371370199804967405470599448809591653407178952239919543002971699806558881753801642358062303508020513706070831662279396673417316506029771092876259338063036167816311056378174525858714601330310520504502742005300756977765189882925046626417381515017405880457202307888209307961820673969104283333401508377172096698434882699525344259383621533465466977102466318711666949789888004923355013725353031187987435151679116199400047181990374638339489764299723754354434245396759778079429669280176079327349575481001061217646075736764056536124858664631601089831706129648527490349894020330241570124511060876420651842070889808109193661608118758787157106002973009358963235899912090363680583404025081856475507388447979389616081844960925501782544411146433835634207145706391307089725236140623964473475472574250841868768030931043750001162195442652505824860812865323013731378931707589266688939090145187119008897719923824439096718134909535772592422184599963769475441813901925819476552478802807539886347807186450626488496725012811234334169691751729649887067427155199435763615509966171124772391993746564192556341038960061084072254138753880047784674350410969154532373518531933683617900447179194680992553027050464339239687622385823259320126457951784450205915131079068547276685843731376409666342427669765234849725464982761221326321872843127722994717824280597210621284698555431735217478424843874347644305738805366082510179747788999082318736009404817275763590833215268629874685464605186268594297685946903628988770438291649551929428285159381398125870427508485075741874788016139669542741081912715114488806282363381030549903814406902751497733345175572365637711442220990726976421691328026508652164591466784053478883505175571524605530650320460161937892186184938930143589445911121853186054455453622150276229866548548073998634706286541154675170007176558251160746106193908437487943987858608077449335671666808413101070186430638017729071274482914897751285904012741448711605861345744806618303132074074909638567422694880840679107082914273231005766312893641074244567004736293183168922827331692485055748400062944635533664569908396467990897555010455255313649595153235967991974647045797848932486158277163974545464157652185414818933226921217413927183029519361272086080162073719407705206907114788280341379641462861637602698358640447504784289101833903395757614413237913583457532659275686592779321720895692633708729398257878479108328211221030553189769550696253431589760381943253661004910024333768630046663468760752688358627854775855363051122719843767072248496904662495055060355776904128360436559646528162820870210315663833088244889001095536351462270319802090563263167893052403566137565186070656927208798869489031266293562467642083550821569653990203929612805848803087301273078736929021765061789652936554239200926056811649493240532129553243753682187232545360377212113138183294750481254839075157442641545776334694360388351588661570090502493499217377012187807773684945782702117212949700141726639329557608618243584782638839146660577352712424849111740038355416859934242357749996191813559761770442748660579935550122019857425042258892309871606763421363842674467285489725727137703600707503045718534714006313036264492247866680260717540496036081632060409375855627278149045953274026607976231908032484141128697964907226012504715372829991534284067382499993045339454707249571352013620836754236438127366984497080093998027597212425427341077270334212605093176694590155878635572950527464038692691336940726554130055684889631069005793782654281936586853454070650993913867909117792720855055134012437358007762554916317219631290365370221349559850511186704405197031840480497437378862093442436235778684980329744045280448167907503859208879338237587424905320932194058325396679328750500730084131123593320160899582917470378526466883451553255388094309489350409529713943641542955635967626970409403166601403279464199805705341293446299023305423758813187827712150704337695877060821483187654694501031719291797858060752875488329021701184255488310814385887213285680850799149573584005270436119777448443378966808331719355061106659024919251915021537845698025742500902803656378269163084671823066567607095979033404525754241293278449420255180055174550453048172519730485551185103855385089284474532812332211529783904246516217463411300588657325547549584461523366274246107794817050857779713697162329583157606898613026156201990379491801928279911646399122248119982747167443604703909468990224128448578648873036689749173220832869660565111646770338748349861531855081289759590687257103776524349035818375374840510921919884441847747872711908701894736630861809385339762678715162826895558406855479968344718069081917333014404210610784126576265442280478064979341067344232693816416369432435145846311563327987794690616340207443522412400560054574118001905144710127806460122162863090095075080310575260008044171586813341577356499412834643567398530722364893323122130399850915360964753815204423688598756989120929415814279355105989520356008174954622426518602578703734122582557955831475064301833446531380906585256162745754744460418266827190027099132249773863491920966923342755731727710033333190200399105634979421431663525910901088154127706099883964337237553788989157547379486815560524207332201299964100230492065344721009226844470497660088633446401930144730407450781368737696306345583473346595517478672802327411319924970575028532364786717295373520448796005023848368863133093760349557833763995884786518000508932015692909175427675004855884350884439688999299170394188161450306293059394389801770283740794028223014762891787182890162323305286167406834574282796543563255237414809735003695699841567404976550634541779077826689884475165999440984839317190437331966624240447762256686560398058846735597541460347196442931322027678447511485675208848535320513207641403007860981248338886493261660732700525279178696946455258999998940267705881195506401980110631301167714088205996929837986673932738355507459503495122011303087259784478226790842206834171075624024901658632541502114028798507545788043081418312232772488327538956262091695416624490847581575916792227169434513167335670524050936605814763985670347249752699715011413735087114708589211532590755074968173567146825463132030896280813226861378690971457402746864402157828137622196010758143754914325151140578869022291106222752528637509827844102498187052759610045213112371684744964633805724021488309504339742225090856786083071320769074786188503582336197319891282019677249635122734144420190775675171807719916179643564192007578887588816346553505607124311476271904559459070834455888328125171764520952957116550125181287255634970816711956082456382898537921436874312513349673371054208071249479085830085608583486822939831781185567348632294523483938592638164559798610741665233422868652328595225840069591019735108211667586080950177865289743452809137785859185028422612899911227907097866348631037215033667905532009906279371565648601153591032097916697369608964540431301654037478271686215664141202793922078730148719156753286916198207913629107163141179041289187004992819715633970606292577323658493867122200219575850158677920340472477340627558058585996948255607441327856342308469521421654346012011893074350150206044963984125311670865872438383183451190461411257876722117323870443431195547756759796584603997596121802761430185244919725383134201804761423204243459629164299795119402036813456278170778072011354196283059661075193624824545089994467921914660286030827807811463285814863609710531468471230597298329079572679697529825655572536398413381898906185874798950445097029143135809782015726184139136896546592449762128296802501778385624801053395475271923626045555472275005316341561295344291122491978941178382060271674733676658523418762417363069910774167776672872748072647722844585728927567767832863149304323435004639680835723059566365807600820036847597462919798816432995617992374878556637562304794290340605863081609227560391115258993253635800990445552590574276775803882805152480105910761846816107180840311443832349977054748827631773221928509472566772661648540675434275978351749585267536823515676424589585009513628831113301058721463265463602253693339386846315850108920814253575422654802849007282721332876816733535023978137739990460954327217493718682208381949160333875885598937291743036731149318508263805298928882085008071242239752646590432223248523725407377879105305287623265424197820743886557951507518684541637685078066102194881837581025770177313579188674208655082395564414344633550305894376044524553050651733262318687480701596613936981590689673170575581924668856740023595133863155921916225330505710182681789761540694576512280961031884524793915413995054317132761332619742107322982985185637509810561961747811681231348091511072729114157783319954033732241136248500667986770201979082923143875110667006476363385440441473731409996293371815861597194889474614857794317712736548204362796068972799032302349687833186324942284805162231775435838948343466386790800175849417076352511946747642556562710248108751253287773736363090377315667122121380445132723764273007361500120039670154169681357305434425764022355366493732490676692313234834549839239847994132176212600234484611709911041849211469079482216095257976366415766800730543573958218267848633456936714365686815449112895419261930228981727158018165659502291296465896667371307726955679681854898922282013116183371403718599971151912627868110497749861268236244725372750105123958996278046281310152268939994381319527467652681218336153728059390885937552380055186866148078976950923955914312868653787014791843934043522961467941071975202070435017990693504517238825605243644757897177447952084233319499754717261061920463802728926551935271114898375433929231580265895300070650506160051215327753281615552395179710591533997401029443092636577607050847041642167578816113284694225123667848601983649789340840592142526056112465124370848634750038477947243788274170109466609049157559302038949400907636491734079208509110390957257499325148388494239716765749568324604833126859831297337446057903986924643666361698082920924410263198332529179483240009738163383537443421613397196091177040458886930872023639289681418551481245000608421926566419965522221283974267635041625745036771595995322218631197680732209121089180034483965666686569937174434210633376797065988291879060931128138888553823351232577321395863434361573492327224030343626608764553293413818823557900144679092994597456064423489973156144202177738426885719852229592804807614449394893296552197014352027049433742957372483804277308180203279123417756058836225286759939258297407498139700012831645773503626025184904264366742183610802287819086828944332725685611121514853806620454459326168254821064399950132907281654588352801771538605252008094664642778045840427152032360795148707884118326947935740099335435650119003973888744392796689292710903978438642324846103093439292301900923694055876927924673220474854711934539450599465060225295794895308815837093088826209741468543316908685408547662004878482041321255354338180424815944309828378345053995574940775349514463128873410053400190831515973639273680926520246722033169945903677133994878173188161670856640403726284519168258651078736468699485572985249672953435537436915862405860826397239617815852250648778396323746210173563597745574917026242521212421820556455405676616679037526156354229690339690941830847048360990978220040146199142748926693244807296949912613071334538254858848533365706997183726315056219939583997346491662943745883474884894161930708142896658780437598537658553928081415250856190668728541294995889313780050175506421701831441220137716463612911085524945089641105265588400273925636666631914231745769190227222263817390722987974407122352952457370737653387172727001966754662458117873587774440262306044409543085706992585357446268622354228482580118859750693800945480205905372572068142453330342047487482961470405859136545206588380812686004684554099663265358251764635321381482120844187129136020213681986819938117692117111745906315300628427523816540780603696316365752049297729751078027690265665419912482487429827742259016244327807610400536438030245153674969696784253328320331310905726444156287496412131805665603928105184766627751066403847438348449446933120649038493450475590859285220267301537745614667474425792240274153841267199172946592419688258851212667476177305250384024082375697009336629349710678152421824456042183475852630730029952608575554883418763377001011907264608183325508451660025574262293809750169898966054608194531870800842290061832657691968300209742114460091864712875332947427326709312328221535011515296496228263006713383380207413763872355500715334787217498157329603124203238044448775690583452612827175083142916209114246027371908656596176379361270518297793560660152163179369667608370183543897386555532054246419095696386975118612071307515147751919811221210727103245362711026388199079072098842382849422701912217971902587849122407128949199171199110293789771722305072807268412805817397933991688829768824653668978370931209670135100460391607063874374811131066895150396943142644003532364559427212852331826813263765426854285899767831682972343098155923074271684501424556298156109448373187782187860411911859966210773806316358560756860772743071731456155463754786496260356877353011003230350818569772736333500172783050361228451456911845532981762297394920949210550170661463868574910943579017227716270641425085546359637381861653223205487097248433449846910865747971204435872988135057111711732286613850872385862673864514512580895713553082520249111023237857903495569402811907042350456107864583011776690525273764528485386980750217742540954140258626433371621904063332043238173485873151973735589951454238114724057342823653697660553239352711442594639839117093286140298435758411104189011326700556414352816751586567359974478703084612849792493960297748045688940421111015550510994311842141515640445688445993675719667316469135917205446314151168615171334879968247619954825055313572952291154928286926464642032548424157923926884262882943418036466978750505484333502333673902499363099212539913694173415093926666534559513033073285506640191913698284287226323171315088769682285068433524289244774515614903770731718880216405504357494820467743586862632568469569439825698362226737088953284097450162027401103524097926368946348484137547837208813479459899527840331481905369789108072685895155928623493031508411454093965683097624032111527308608644604797860244450796277235777477854842488053507125776033310910600185837982889968628802170629066495542948358222156405795290088915640400436007281500350955885217130002747452663672924862771271085499912614991745121723005752670131743502204389152772702415733682193750626105688060164581214363975146843909247003167217564669094525828180364133932138103136155114344364943165979262100509960212776018842177475575841735048426414565223311624010241281727023733003061585350381242690866076255520851968969038347106920303813477259379013846408144614376615927068614566701085001851326775638860300739493279196979402441901659183009715814951862070168863018269690845493688166730798403891204296957002677246896198629008316414591628564356633699641527450113182322026637940293710225311861334490949108877138524266059985328309173411764365586723782052172528485486354312592061350149332160281946497979026422034152530706102752286051231882644079679286467645943433890815497547725983523354347860854513894893230077434349504586737549762767949617581270463687074282582036829194887987920940328112816892416831652138628963401205305426636961257083874844840001494948828418875611865104946973031512566005380207093948302111447028020576144673999646298510341473586911939573861708871845233980508529424297770164674488174611509210794511791109299083822371280770780829245089209697482195172401613758446375212662831767624380135851841399233430427378774883434098955413423926495799406843493671209652514869829402376359546950160958377089884162109075849773670454462044248048699822797662859114232372621179526706541941166805255841351343953131747226646800251354304133179473335992143472068123135190187388590521126387504990162925686619181894517746062420200426491132449046766205063406201704564507868360301947685502638774153779425312157996869067934593502670324323321047244875019130009692997312183337276546771334499971594271410713384845653496671865004949347201839293345987715816571766756768306837284903146469196774870481334024513716538722445387684129019478285441391212782543883987426513450793380205864440885700235010373853080810051787400451557919659102548648244772590933976867533814498632473850719106484867650500793800186718013730928844777635776436929940421735262195955975324532984276204954647040480149467290642452614751818746665079115950346037640501819032223122559620027494215610093531063755977213757921460133793538467540225168433423601337570663692516097862260540245990866868075184202651383845512455155636650781025698335402460687918014598273120264563571996379903536176770236227268775513940593316363408882752878174673017865416965956550392609773089789780670827670260765559870571815847489517335532017861473521257074656694928181088967966197869451832578608474632490816495167304387506259537316293315773764668569169488851842942516233609990047122616775078955907655690886511601546839783344821506481997675262454277690533389548888271002184515958702524711382394748678387520169774488057486776623454850211095866308640487361838279299400867758215974662205193252422313459934495125111914503776645726246390947430531872635634883174229763812904759404037066204915185569345193923791266192862702904123343198525451093706219193522286160195022120157645604699172285098306285562241616514584606136400232246837994120054995499234270877879296444983590892537786097891887837796760873626792351249447983421619699038730006388349730509106238878517133386435539327836776581512533238075560047621403153700339481796390561303690337107909406033434543699667585677056303431537360314900224793927428644825165179877156677001554444829041724433217845079550735334466110969503590084305588927810383153617697679031945990390416694371366999391022692987295234598797942743444192810834820903946430042654275175175996812524826791009838615412865446890782197211713582170725538709306147177438027272829677153050122322482436320607162150605530229831716798205855381672007574977128608174223489395678423413070601621185477395809168764508820521447358732123329400827779520638244249717933235470893811904125987077868945451619003743929269687245849391727778714071399806984206875017491650294145256477391418358729950374585663151803329383362962823285564774392792694009458008830289165881922636441679331249101350568852926880776520777914531529114072818927844577227273756341132774353876331196147955263420697988008289949721903795413299693331580495270146722334700472981059297577542993129304162264935786174462737274976014364818322670323825366671742760483192817011989675519997656610968181689172825312101740456221418945745052907665317336194431014460423066813777783408229773719256897079653397473723891895137212154803452756326581827427659392480162066267593533856074642377809287017937213153531005834236582277048864974930598822611169685388347307468961885640172636949026310351691404447982328044308521566707961287003328631049279863086677421095051916245024661659754297659771174902748182074964840072488431144073471280631945959887521238824737832583601216348076778912247346739425967183242451480244072163852056062842223222086127174132937686344432608498276417726312038568169172681440177708295520661851960717571678284193823499692327077443994963199255591498698435955662489809392874492009253655233344758307473268441826957371665406687905112992660435572192142651988840009591662965423019818178899991371382206055189826465960655970298392646400597558717242839880470631384976728983136287674729132570809619846285174814444214217797455568441820531729767367572969226960149411575569165622947999319757452870393016555282292500683359450556737108404339678050903629953017758471325690016728653748753688473856611167147612576654335703134894396236616389430412028423130267887498466780516195319299422684584857360356491388728869494333199981606126313631528992321736088321477288775800784888611501466756027008404859722278955794131474708907890507449507948370023585501329355137862959313912125138772953293963637553994097781315133061508553966130908962795698728346432389283781416950276473308194904238625697735313602728441472010752743838451651242855497651365822487036612122080361908607751254239193679302318037842201197308875138837802619616805960695347097307581696572889426502019596054018049804550946325354228504777043399471541653367340259272750002523652647523005695485785892332468978198966608319460238776990593063784752378190545302265408588459592553955897477175331175066083783482905205142565861905115638766811362337016021350954152450477268568482841550019275756043076416489001393062491679243115891120136536045307733294836983553466106750693880274506631655023443309428036290081144113534328339142046991346955679923176624210297915233848106561295376997369951672571254525028222809923509359952420904389138055305313823665394098296580575424864703991820983802638298713232795391604300178874116030616351058718941944586531317802002856877110006671647369704726739372597365945879652449609642379738147854035753141325004997239675944520067737110436193757647828046571844935138960608282603594783933911326314603799783115143671803491586344230052918844825044950162657301013340036798216512180398493256080727325991802835560487264181016481909511999510308702767535871378729004772308895031664680947279345133602782008114786086572491000650311690728165007668851797018724758453588481760634334668942364739978284474429108308777800343707974195905511814859700939323346151182467666446884153122466979668614466964782803563008439901667493280487300742782396363647234671116739690465116844882778045876565661702843037431476077657758197976012407446674230104382699672352429539266465328625425195570864302804695028094623306729960351279889681821975130036670966582768792546873365124295335678224077973782796393327867040346718595274282646324647755672209155436138386126670518066958818380329795159483928025817097994984360174889996624838726058497802033627919278325601403833145190107616677667033669771650456615890303078636788280100358322920581402907364497844592768990038600467623129132955381672493831837807805152380040612347065574914542185104440172804739595571154789941129840293283237819530743955962026292400104653056018919729164072612035213269077104225307413084367574049858041598213016962802024158197758749748017492537057088441941111661934269857508074379185241464270900594209392461225323743877011501254549352796584868841188048519875994528398391422669148393246244585127212244345875369414049277089902799488288807162786367271788726905980296928820399620773843791535134027391022697504463221910360060570044248695885292703446352764834336992286476775525104854931839483712858470275188070896870983948296532873430302183323116606408152906002113698177923578266964341002551904393741112968482274490963653382184533388584518601664033312404302228810393628678312440090617989138118816770006116969428299127933897429709496094760509171608078705350555473636751598333531477411659039859595270099318992614298198153939448808933573111415477975813560916931286382331749405141472613900205241085763337422642043198339589362783478626434346254732297223473653446951985032214641719081611490508994062346787194718244184078058634398010200868603263902479678387266595845083844142820775837891297070096304681444848975174313012966353581748742454891315232103898001048444601524422244084387781019644932499428715894073498521068991907991010573202136409058589364690212240487603757548673204217283415472060770521438250919914957889255976168142121379104096131326864623242222174758858876333059087004922102684749023257118058640728015108573632629638495728032553306966157470541557534928251270984793560562231800004095179805608677080635187449662634869693806864868127546117519610643718845532878995731578460955014776334604051721649103642646282488593502446983855878732937820292636950618834309753429379675988057861457635441972496942866690677579744988523298556202609787534531946742065558205286655490812404925691721573104328689095136283661600454975368164889425646551387791323103006869334150617993834207647155197732164560069607523519067685887417322250390230722948568525752782544129378780070125071073976171493819537329017478328700261845688043427812882839018264560508004872160056034616258366446017063308595370805354701371069041860425656786234461963769049088110346074746399821556830745861829996509906907132238912933936526205115186504806487904280754469086237335691112324021427200530891311191396797788531086881350597284930405678666943014591543631023375478293992722650877433043205234465647417077267093941121993395292086506251527449780663830342829788650568027471676992733178252169495827169171381694344581921539475551731282475149851189231649174940211407860646917693153268302660647856069618403080799605101662415506990561339316185134381989734764935739122997182005504296863756147801986783016894814689068527179177330838873261911780001117106171524155892099929467446903432358029878773079180937355888993475742784238744277205354073732433471671057302454051914014346753444619950524348834261680760500772439334009026276484218184603780167995652039864066868827521669953891975007291251851915432328462147027721932615215950669342553066717097975711883380257030052281991155629391239292768656328760466862357809347677003648314939842439380512021150548342917474400903161953569165841391615676497812121777154910554111223023142240272927346765474121701940927399143743456065925627760919648476547909185880121663765491297430917858749576602761871009021515966391995350118913120633300826464992885222699266326307994089898434769504513863719059584189935604584076618550946985685222227293667422844989319786654019205645463074394829830757611880443517957199144674594504211570576847662500952663758505820544347535523325804228224862952632207626111845208287846714188700238420627186241890679414443467132765442644222968442092382961258149574949733597083966800452943047022944590223243310148480171241462150067819172018833929656793373815005422282789700345357067904301680801383971245974905173730245238799638227616759751825687094319197142618595508088215486364354001948825387310119772136309965212846749870804147975454098298992632091979995099625340358842646965592175480105184584455269129728727173947303558343465263026076612059957326750159584080976106284697140359490111753094649293067015336514282239501290184536145218822492459157814292086410736653585636257843307180964520235837969167776614739816073353540723758452269311350708721350570128806913811474700971990441916682818540917463116723283486504025227360830178859534694997164603900466145307173279865122990893516212133693043101393717580269454730344820279749294315538028319210773583456286864619530490284098453798474968098213410700432858439065514934601695687422464842310253783908963264815228581408434875568809829328457483886209047362848843929622495351032615681287927503695414750754462521763595814986238540879282222114084542118518427812053546577560807908013826282603590550640939354420575623230234526216262064760451802106305250595047242239119464283112569509305664555967909981793128083417191259077011390655044450073037620067963301545897737830849741138125123997124556041358712322493415916104896865668084420391275419709528789611681623113068790726467358927899478059941544838976304023190435474679504451287720258589696403850701746896521636316393504509466253267280886428500086429459360958513249847758530971347380165044132543202838097945181061246293154263532796264833151962385263079946678810526424326649733809311272047528038422729101117460278737455132309153642959810430095168320651710617073087601109597429285789364188120936908832624592055220702154251977549403876010914412820292430701581986623623719387383456655303700945535875053678351775575132473808135818395758689411292839041806502783442282183446504037536297983564207940316839951736118852230314092162351306794967744035473786472950296427197715252579351507914938354248037765438828550544872806549299486005063447097413599527049019341716596521618951481909271059569133779528503620534596993998430554940483425547880499231002095530718427214714794140861303318608321122415890532409224428099175846251034743537003518759603846079765691725056181059955495687456113550432723537055099634259005647078952535871971319254477117037663512439683236622344541157225171740820541109106603475236224439475121713043114260948494996910225798428348060548026798580743722660216568398601409547054151823139948589717328431734848416054085028036997930356706688006886057855049606562149366594712880736471592837355736568638923019212471349714682172269369426567227085725208815439534173982626760331986147500201636011836353212707175048015603376045443373272621689300427022455376636938714645629323817934728788536667241978361734114398485380282450460568434754637627709669109315995910302797065377795212372299872243035392624068789044576708462303760859441374141362685313493575177878901254884007004714856500294019383367626612307598940763144930573399903435275777961124744960538518876998029428662410104794532244571763490179521613554057187739902242880041529674303848202405295211826011713874342513367666158842940056511479126177393110696611169921884597909519653844174251792940400714129431165919414459360705587216639333889638469772380242463780190768099457282494026329536247323971495071339762379679538272510654543822840153451095200054465291382987691381225548315185922590911843519798251327438761117142886928060298540181686641647825476231552977136110342816142338377902968504474263885550958755511769894622878368014366469283824588562699555850536215737385572967255046092018223914405628136784542934124373775187864352568083861754164827258901394892285077630835747877080764812107949566438070543923640745080397782410589272034607889614307672994433634614957897871708813281380311152817512413136672179127922258033120086536892676522637937695526369402321564373413096519820769872828404945263155238303381588431539669099942679405673652191578745030228710627719760823339379734563156067429712311446110490351989482661993282195815079469368672172862449827153278313540384462404774927028076823861327230395748417143381984699420804883157242411072075664192024483223343604582783996444858224272637248013229163713277996612853685216042220628011235268716316260865715889218607268697205794233851917025657626757668794852002751918459813920150899741986412496053622097349386387180605142415920253362050608678326663979146995826929372579457341184057182544813975716605004335177082709955945609346901841096986708740095418731645049002698286315418159696660580963019635148184483432874086807693433999548608247278322222965356005977663654024816956134469532113959092388413493867575403520976470773880170730746114976313539081087152142812129798930007009263013868106415341399823733988619984483980956804639856991751509321385678570894180890321620875055218359721920582329322258704234528153663473937271076114404739859191914137792760005053928118725281263207731206248208944891669499010335085158945782783264803616509832016245912582731821128258403442505371293198556837893671238358187457594263662367608278447895002911626843150577835895617495343149745292050513422032855585333857587873264382797821976202215553403632008476646278613590581475619775132035897127551270506913946388255847671846899881257062709253623905352937098225429693433642470158304016466151891771966673700366947586555336580051444464551886586941481436221508404278925696869892726772528836681116210540428875822347325677007454935101023826094929965273984413663112843398027702235736767797058175039319299835577703023046010971487832603359519471152718937140226854065943845610600489513310877911640469340783769822143707124142302453509571880974104637766015116271801902647618576566970844205275977659306323271554045833613035870860025507087232026228843406866769411724519735064893107088609601796596891878363913170904136328617511713329971528736264425041022544142905801234792785301952875253018653205821385148756545730513735675276916922485649974122674485294988019268990400660395971881255048423825698474703672329285369801121090465817711613514233252510806038530664462272382274681163154123594731935135196790928301402797168051843034051767936861251875854273333650935361407083141788217500868792876702074545539359217438825726664571155281040123249211376946059157600391477505978745938507772651019890550427152691063423638030848160648420742309735860216319537009760635645811853603736259647361386562686076933602112582402913361843847146066712080615746027849154429299485436716921936816463901555963994882683383378088672113679301346233064505814556002273078266507357788845123150157273417215181580865606053335918940832450608152209940342652395583888662536824456060365872657297625675003516018125119513964584581427554192338029519949761103050788538717207548636673369322426975019007529039502014591703744131795745834773403678955519885652931366034107584433724994455186259572845112453066975250441988046345897359556765581864159116197932003490508701676317638693463054013922259375179119906729285023198159328454730736144109287868189388047379975695394429285443171067095991733671346100067813591967294581290673878725178757229980463097980634608217401401361780669141946141728767646841555060941718753187338101439630113403091258842622780994969593166822244647821761618155855932731587090939315937802111025130964083597884172114324549386027716769385339805578427637006388383378341903440376860111227744087370086393894006977253853390520793811394890795737355748172472521286517706322102205186128175826788695952247954453281408693360397843064689053336733103274561047751472152681059559573986334616587917022691707386389632609378940412647712041069945412401147206646680571824619181268240049108021908272302286863399298644468948498705185148638159023751315911685542676036661894828000811279680006464630625652449039114518081403888716168849466670018469465213577510282863470194362423211939815030635980809016020033829106653567462302205791038191031805424114295694990087377697075113585855977724089560208119365074600757924112345947575572224308766361729944679600903840540462484042252085317683145721636120116939048785034859160809908324388704129096618049194342591394866807736061118611428271869158379675290420014977173352449135929880016895408891762814805029866475464231263312657073783358348057442567606869360108501958317329395161374475262297507719740649073773353949800190339108207811770064234371903577173712436058487681242593009120494122356197679334274141610446855806040976710178486957840230696140102157979812681700652993168781079546377931441150966379489430156555208602084215962188062203904692137761994681053797455143978354603686675531456661785284730405353274802521196539338491135724235085738055198247592986129800912119684482114417425904280612021455252805750415899572444984316051704043666959509851921271021301042266499304686212393695148816219249694255365794840406398412877011951920011872822974224124932141673932259098562485814550176689086405097216235441902666024345322322683215956831309272247843803530595200639741408106881331645952849839244063680687935913593710127405647699304786107214765078096047319883883704158608140284496081698545389705088656425864881433629819609876132566192409411800097040911111220871880515863843473259568174311297347664209393522814014715501020001572246168523800169574171193032427235685499333421771658762157924654133285210619501508685153352386398994600679999156237450778173145979557128134337060434821771391616616991102714383199732491618029687789729803647791604179212120403970973425956828941585909041575771152639760241569117299547864564451750958920898426435694611514468555698439387986703175297339763437834464012551259779678298644679102504063586132395657993534327644730412783200475982124358576903798157158068342325788064839365763861205289071197524797706774248722913762868237154990978510258100578098542504612798908842170377418774133762475977730410335210799984883828065175405601124844167511541232893155430901526514001762818412956275965498387195900736762722708613950236186336341782180716553318380230456455196834933658558395756105728309662769289082046927245207764602867924190182022163499941016179900705959334542033088893115101791206646569045145389811148639963346870907799517152328046656143721137353754596262465442815765189162588843556206952220842745973344585159642643452823860770393298546709846522675793797313324409751498188854847404908635653738369005995763577262895642709369742464408577769708494516667877761457224163117345750250507835306211453479013002309170517313346506605864900761567403392473194673862739282158191178401487033831295124494691943106432730222946544895373646297671285687109694026736629970334325276039509623345677984387404095778747325376864304947619795999911790714127734539883744090182180692178331188810440728518656172852159241091103430084356486981501038127237500446262717678655962027662088045177358423535340540626057206347043336269688254294863612272275125598921077654737983867026602978191111006047942500537323269426356966638522624641495273483253214882623418061311663024191079246319145115775866071225793048020682669637499737120971146698541920854809136970878668510078560027420300813634395111745276493729399763929774860658905198212984353915185469402592963922701082728338127506881274887080508285966121890437253680513496698395367732879865152456166650175769240782809496813186912812311864907500984629088120813158198358577845371799555072227663780871589598860460494039546048740441025788583308478192934798541836358867826119179913039515623745575949071234767871082707689033295979018023598229716718127753621294933325439728706127628448477549528623916153367307590931130817003372919924326532712960772621343892946328111972235889895185648063203563111331164751417583490188413735345492298703702396633087407469129806994290099301174346662894203133881373425328790311461374999471037697108137703346547473762307558298665832764318048798584402308303493642910921132569826988448743816404819293211259443850880195731838706733649769115712911275927937764476434936302926384116310473269696349502382200155926602588986881423446700628024142749706871292438087131191128454408689485405730569477043181355111615205765264330605296649783843495449764586276628587260171407157637047433514239042112943431079345001686801513748039676823098249133213993194699400173119975807133194411051155138416666588922942661246186843460974158717936396159830649703104141253588878257870492631305206348920702142306046929278752550144786862363541325829976936443466941915261193882835350202701082559605098251391154698018528969712831257238741285806227272335559763311036075957486116474273454745531591086682636009983588469316285769207115068053209080557612488619852496361011387329675469863928125683792682636770541959251350106596253097742341394458352031353006082375724839710373622842508953970987974008677195132238889579252517840147748948324896290420662741015300011853533419616769959194855025162466013316394700171172734756164008076235413217071019373830796295344348432381906089323428108428305574756110498419529291151644976719676398410454736079889666508755374427403635971471351448561470016780458918894614093804778165214776617165545089544539016778685679682086486753598248825085685892627425271878725416723791025723496476766903978538956398348194536831176437511667292607120032958809558871385807126269184205245434120572171968790298869594152943460015474601038999269926022028057090379662657217560149660960312063639647743199567375373047345300865961710178917175953890069299746028483609126901430253873407871179112649915819445673512915784005915151531160521078830334116898651798769667121681542361999922764333137788713676275736363783084925089716627113203092869728163421149667569416929197838896539683825384866376136635417448488950402353677492771023181946803060672336954390448447392616034995297472077872763800823097233303788267473669873598383699163308331195152344808527813030048095573767892609166234459234934799237938144080733172098922268819573133388511270226959803409224227889133113898589342297110663672098863166011746990395368185387371328480261904992270798342059261219964617862552114746917556995641537976861964940061920919318827471100482056944145755024445634741430302485639865155645913817093435981300001031360823634916606110360226278519046799798819344497200887291228033846937471063615080288356285187258814117925169922307734825776059233411416398676335262097139615301399818616417868041815922217909307118071308643518968547023202241674219114882739756081995539895598759646689871346939926709046857853244123613911163029148543324438681899131968133808249186666008619350728144304256479732518235916473332108492152377105644909563076913120410331844114293427309131506707651055860341089833373166401380299456331129466793732203411776804306688631767149371910094318800011816646647900520016634335311789680514190816420390565673200424602117084100110917858376251980048073856878418490728974058277184520988245399023736985778520099484377338292006083162880638466727164258236287086788360379777743269743284257849232605167864556217082613696888077914247929375022768953172803628962095650447692862908483450934352895621715993809747291435287961190125582855173765798435128598665198327594015361528130157713075657206527846350136007521867700717676554220475038496668017516309773695769474088454739400793827331832974529560841510810933947612186166091531998632641379552908542100948732604172709964601842917296265054349254776571911717097621517276583033715023163103337635937312257283785963440979838066449867382753798149281195825017558348202345701261400793054041375781937362247587746439922543721588357769941597389704678485245638381016005267019315359266088933202716210831743479521196580447583301903004003774048517795877956868687316127254880254462209928351425040341101156461236147278153437946158159768282233669516841210323535324062825220161545880258359457457813985916471185945900670066030851042730766743943068849662886611325605748168574891641039524877675588633999471912723584176865626875332667178491740242734715768653049723865904270340411842626373503676349769352213270828854134150640720103008574691258330009002011362856993657442060657235669443481634854253321822091689598725717241891602138132485343590440943404701721199980800349803057655190360610042875040482889347581160587703907955265066798695737073402076382275933894697311698818762186988735890811408235418014168692936001636006222119974413806392649050860470783225071735027571032616307224525631720825091036188331555690001437340296481019152607283933683868099761754018498449575944882473844445541488991145355630284091876432669523394535469942835863199446075597331428630862867874913508549996800038754553281706507967821402953606868025215760523503355162769526209652718289648786061779848764739785425310300015208440883323299931140030419703174318295846395973590706112633378759968846710148671047007206117371185471223861503434723107104819041764335335478609487266886249441779292604936066562358242932713650339809606657531141371241804790698051552854228069069291546281017464239469648737498781109865456034177248179457328538472349567176636037834616487179693758010722075344183219548856657796898422387741416141303814547507077861518198781982435671107677577185359617587301865429244463486708851971449515567689963948331620879795587364992656322286714973180195312304568467613219432373730236453959683056461505989777598149628663070963032669776595909984218758754554024362682343382649887149492309208787018420881526341458193560869443240665834595048704097216260126715244659062404751367744396223389986861087908203755504015657936528556046601813720012903161584926972100578148620419003628562765035996864290715294778442073839097785829248488431445168788501092048334273779098699665249198034962790840945333512452749076444081504842588627745709730761578171171255990307718237028530064603258730261863854641722683236964613921380091897532995052975363249307675590868393615554477171671495669575379125397644222766790500000963686844069210337297875416923968442727582917829574560698754490956338774294421367798622047201182469893192363388976169130820469644278567564796364585010545446407696286169227821981360929845866264657038921456164655756444069039406787960234957352770415573753992996026654209631656454591104602228093585067204080052460325815929952380473705533529182789127075924265517197370656393960909206398819580673990735956160251104424100792278592776149942109742485664821812378115942414987971352632774728238426625272668393040348297760074538561073688638967664060012071430768212837081600154913339924167743177201920032064044784332850298045347076752228828291282009347159312679464981884454041036168689636359281739141755176490860213301315658473828012721244566726923015711981368316556620108424351149170326751813210120593491211617949277315211833098435581882075080397353528302005237805076534648867649462134521833627208532693160989457392664549564703201647442947500577471805437921333966202008294918339199887584953973248524134147228620498096870745198647000945044325701088574067563040688575776459777298395910988417271003268029216385642354172873065055808504946757111228399384014212290633778202494906418846255551974071993099354113766013900510364185138589219337761911869752476521658239277899766177031350075604864709612655165592971352089850053678719429614903844123373667042512419603102669195762689215156173712733569134967118709900224631469998760091881086503441229625220710464277619349603180079141874111246460903099560039250029562206194655569066402252192459244346911024859182131911979032165115689566981252037578817006807961810153930485755321435048027003855424639722787848133776680325776453056556253562131638917958419545150943513470793629672638306666631514675992326931242618410485912166145978662106318935893824187402465132603273948177375096275843766962650886142020532214957588805295518608299692959905302489733613387575848094611934378555430296116743285110007047581512197600743118157369783043549088991155389133658719330062550885968925991241313273391487203455287799085446920769683054225158330807810114378636070841778907605262133594057761393855685338664696440114775134438425059879624487552010366158340375181998665315160537614468986152195408738004860784384856971607793861508749446166098240885061707156586928348382370468015483144160486962973580271231386040017163656462702244685586485250226837513625929912306387917088060758632074130141035076270888971529785379247222835974954865202821373506864718895621446137787764639757968374704604213657773777769598549692648746600264703360848924620439597282297397115039077811636823146945640430670672628544157091622429776384263739759886514895303197562795011800288720763322912213290182975051668476775656469761670671039371122245887682846571647773569663009356792483000945681487497176805530969601068011049620879787042106034184191547967689344178953201904702455314518467431435551204661034474634892894533779141948964790935882191658973759993522985715321741517025880092307090052347690662337504002553056517722148521377769428141281371237613745128193865482531605888768122062675454934109735983406558068790468759970405602589633073232765272375296303829051884286738361923927068775107143680339900642479601725910559568064486105773819981240331981648495142488845307787656660476172290403642864362293402108144158908676086306306536129169848442068457322698643212857598849373379997388491683405698116377662682663951987490491266982875894900057698838905656957251323416465092085828880579945356639072663974900097308169938048539735671843496089942207716753558420130889846563840062332906374201924289544560865197937021603906147295141206022819946523877500074417731831906787537716199460929559819351033893490438770033362639846473548217601271600339948428729578257035215719341150880658779356896474459864484299839559251342792886465840136802853603892765987251486347010835879174652224975390468311646117188813351900659535908834544741050779373185357263484747223020774781220790671233091932835430813873320574716558984786653005767172980916677901434614130938424481336844760971353895422490796737469867167859102538681029127879863450029144961637978917027822757392037416062637460800498928043291938278406375319295130100449640899440708875387057037984830332973481203785852344011261247727504411422739802406848556985607103037070675796650669712943729836842608874493511586640050408666852757096197153560231338346538907850470820448283195671138643957813221784661071334027078770846257549094103440869080665274392578746242040333418872516730891054838844849348084839529025573865973606954583328589248407363529212106546268737638666305231016890818231590789908615480403858548152932327175198909855892750392661183092821321125444367930008861057912725403290839134148444336132290345143633460502571873463872939590793702455931975968682997598288544820341307344337980937942065289835338861532619199668561974233408994855956919592889905205892047165032060663680977021560550030831185769528207609803237368481582309662681456070014708294726576403653271266734509863342535346707771666916946749307411758449874401468975980276366445931844159114440713890113827292971803369511751603676096517235216101513525639207714851562967676735159343149471259601921327278217259735806372653273165756605090576956627829769850575091492187176955682484567268332768772206387940387338394921660422049778519696247928255334009712197003350272902566463342146626151052692925414422481895818999869739110593732282373519760845288048559915459455722903214741079717599584695923952045439445221427717831971324039196297236365998101664431172255913548083679489281908325075330326124459590692929030910627953544480370960673983433347050945628035820574076081971231502049251150299389959271517355515036869949215253471242082057419470873620515017442837076299044662683944477396152091530690167015717944519961272544483559283290288324700186482890760128216286322208414550968689206601541295024672092259734503980067987134715126412321760226821404218577755020439498855243842130244206856898578726674359085937247447636666887598765496146385189428112584647305615173294264779451380143440707233014194524035941589920085450064510889851468058046646096533330018558075602616362068337593901653688424227907412080352511977499801522369637821833169850070545635707248390784102467201385945159618800660700218461230570178095548467886803572496378727909529506756728451801523095769400133886702958885461508409950400264492144978620994562980465421891748843196000486268119079408757390747011277086369745226121362344382395208230656306592869612648498535698916224144819657595475677096755728050943181438411468644009734595315582508522111071495288237601238009414900707144206148716785820109812536698353331996715393364097661513100905356568685350280705044425965534390544812670302365749327248569560911104126388047148092520506079402618420760240888176290341560092914265677627486753839242303313081770578541090545785287219424383208985081225112442567830310439784968922108646159369582497281683469673610237913957818451629959103665316471325567464222885454141190757972808403329384923117240180395254904770771312191853280737202460328293007084355662695438530140320743237623520701857052823021175257571857124828048186967529697738975172658650287323775243548203543921510652694124405931975657092822060926226226026160181755625609021537099986146323756649170405843772739341990266099720550619773009941502522769311241152645338421781501522580654180418972215924138168954357528800360586735176260084223187130942650903730186225669519685692351876296103381994723250583072996446912902005164439530791837045501170493115049915590350090603863381476729752030274862452253747781266396735359596240709440158551279391247896205548386441029007545182761263444258751661727844339828724803200559651924852910712483513479092289737274749514875191080254089216491655301997987191769048102628176595236961146362721460983221645539512727365191363035889724337414992442356145022466896243058582266888014056701357761192918597883847948098593077708279774146563513919320943590033632432254276623560876658552900546856482511295756989085906687395278014368299931921819174662357730374390289770205791221413979733264367230365647941957769066757381046729257607823704918146752992105905768406658699691151699573463822338685831607975568111665088095988773296569245658978248353603797454269610413310303729195565156118232425071067840856813109331568158593218925294925477588485295611284506848336819902799169081998322186790134807377016794680708845328469767729842125075372953729149479064561317167218538676564997799478269826269341804811683083246346183850201978192414304713215309124417902208499054891756626806433631627372690784287397457708989659577498085004636432229704046255481528013467574795781440291669528170803020055022023166945758662489681157471628998261803807735885334629306154091374063768853242989268353160650722870468866784974838119642895366008732283594522649087156804288099861340325956578805764963681517092593313021750853316197001025087894574090245662166822313915738952952476271268566787278748361546657648653343408126185139328242474312003786103300136501418877338516635381344557913485020016952654106142217179026395365172226056567895257637916459916900040544232897724774959742612625414352802084184799315833490716153625952977502068350447254931204406321945622910509487664583983074213861506024042736337754069603442927437883812079750543077628856666181777544663874378061003072017732234600529454627200485484667564015251762098848742062997474238526461735578989779465794096985646897996037312161690795060094235095886293176846395643244264436549257960324281500920591845981835316756843819114665098250249172468008307111568634409869779076530416991505135129489624797033411597425552475057284518970188857106051118721185228600543280499059761964887188659867531532542093804526103401301107051191670712350907908715491243075104994891207873364593010265055883173187256679594780965150671197709878606006309183905064155676741513022105396524152696444882614341704770067476469469876152727398691514809006487920998553490280630469148676493850383283945843227412805219136255370585283942216342793111752966019559915717948238829747007285878632949730877820883088104719556175509949884470351450125060015934389403087196147216508503772282062558355976720073635130734166055713933863174898449331672265257774953158429611555615077135268221052891430194426322312538343520583980822526077458352635589329866286594736114951085328245707211325595073518295844237767076718448764737186721226686017561231660598843006942019247608577772428057359027003243294427543762980165026896172673275876098609221473533420633228639475796742681678140880301883506400563465610301230454970592528959886963579963771295732797302534149605851232859870506590344293890382004093101023595904944565205685217863200756453577755844596909031586947930009690351534644528251213597981584632633681095676822372693530322068306884831218824865927706637928976882128003064197626906840470655426710800688858297999490958891990216186061836351184933891733455123293266574175961978014523207721993524954380290680319886507897966464115143791080001454269096455710371988123842169646565806883018294355567914386880477622858882488227102432307753472497461813995080188140955634805068524127662261870534211513763382466104646966622803533199302803924729667557115870798842142091477537014541181127982975424152657725242195742398560879128528480478589114525649394745547723348965420387619757348600890076956298310139195914516522168242503591078478344215909599548608264559747355917808404358689014627718609201774741420498343069014158367438660313439077260252017112895891560123321626683266072762100327658277915359337069063950389846707307276180663432032642993693105123913308465287979348329130496704929217219341625149651907926974034081179973041799559328755416221615607250438307057393720184759813046649657473077821086187837453256961772608809028572437495244356704264037134433432274647683960116020161465476476190298071681405854849879540466952077925758484626237141392595351515588983898085773400249427824481136832341025008301899080282293024170160925950878472707339410361998613219583524818631616723684352238578924805770700759790439591384363776697158374797362810788662783650563095447103586080670535033610427682629172435568277062131794027744867255210929962875069485907450963373437639961321899668008433654109076275771282980808215531370538404249435928952546801312220333610727749373318528122534206898385089625854949557723252182011347868244231252420604263799833874675496327362862368582106144707249158825587015702056610322918187135093951080925436127641054207639742644697562374519391486681872094492926622640981153211633559738168184522062744742396770345881159214012988252208123658259211417431182882578809379102831583176138243265483190702831241025586808010590042951372824720753034436283831384809323068002834212917712953087310187528062991531274966815676492931340376771747234520549601245433551948392521829964473533025968761821065065012417237909956992839432758423587996325848039638799555101430332155170379061994938616527102677680943788812733347486619947079161136938807595210667382987124194888162606415179784729339411568361419355470539403051170067142755509737548949341542612607256221976007270582683768490373929328707140530653597324405155948307019564118946426334852781697806386013019570634120174311559410732033622828935827994163454443376297305495461322516716094688700355569041994370763806141792085910855453121820370803329163626919500359719440313793396666733711591029934285479192886445048130922308120911506869042488751019352638316832271185828380368836111955706346552495116748825929293072269345317369014146566630687998371420507199687857009876574348102914962626218948505231166777670092902042264045088703805658112836399254907095209846808664193000203623745744763242672115208802909808758892718840767740080155034730246204089742251329789309721064227412055376089196036406853776493606126546373947653740808461221353121306328279817112008347213334769663377306900777704811961561140289995921872879770380906616239481094431746877002874163781187438892622531162484640396365574568137725024504041767658237438010034689136501004654225674948770478278298948545387717706209667759608729914600803137196497642071164551367128285718654505909818197168621599619038496677813254188531817493932237326266772638622053363675006228681075384370482571192430670106641364306777171501889852231417431555566220312536743669267925665915243389127910018258935612017987122536661497983467757494343088854685043645883329073927063397828775938627272375019620598064520440686445137961640555314671723045088917957058828723211225330073186077837618049221883102968038694024023729887774898033661079420069491895308172418747630959174333638275966825008338567191717518475815749200001469834307850028414723035101279348596412284522315567756157861429645639455692824796204712537463419630746698284210191462658729278404030648060548238532623066770497307467615821292911950408163504766839664532265990067492309008005377650309661081741423068473729164536858582928850640608457927248923448131320277318958959066627585594747820558449659249584594942084881367801550044104947184123305648964608310281138371904329495459519431210993499869563065858072751921705559060509720160462195383538479436933829052856377217814343361992703090622089807871738647770134886799222848631180919944631096541648409896953095413074354651379813562404737087553100437506367004163035193458556634137158048500617660692672703575682757205413390936393743218792672212041772121806710892215206164841825781784808810612688724617853732763370098007725549868450505725896413252109470922743790171239835629296038075229665216643496319132010023187111122581905322845418566658881167518444906994863488771638548128759968035581388912048514494705622272104613021839904519749143955931512918175309381891281755675432940249722867932043097998043725829653756354957706266189825585516347130575283730149484454208238442581316034847334412141608307040687793211369274404594359863809880646697091032755664619977712447509298998607353113390595794263169475913958671464945434901647401236845434956396558899795653707143625156931489893731258983913383172710749289020889612390569895587262487569871047974184037590961669695357827688178279631007499953644370683294220333309072422526791851420949990787818565696069136889204828896316548012091369224409185563182087241342589612665700945626097619760743799341962180852261340537117626988547749128939918437236033243570679370826450625471172413511849865147137353004868335050352958935068475975590738495721172413042051667297154615080159358305989691059607233896563116165643431765131543107092495767312676575400958918325037315799655619058728458471457969150916045806513413828159137441546818518560900885258937992809466970140999473990333849552839034311771179154348098869035870497079486206251039842922456381632530108124078763530170107007629006411859080616934082801117386703300295794930991350033275918347581403139901241633968986050647382579997210582741317138384920527011701426121925679345090248770351829926415653717187378747461393304430088057578266193438686965270214603187717551265509511124437793067938547597074646601018009831539808408404412854429633784696942319015134666755551219886069752486444161499347727738477090279003520761159049568410399259432374631241549806522916994930633541955158573084446027283871422000098648577356525643176989789514856316041536087630276877299859694089846220161031107987387678192154894229866740015664761116302592246166842698570092841341631721793286615717445379662195819063361716534881903508173588601956911854853482458634614943956204127285362883009869265952109801951902324512025633951051283699027692973216943715510050419841434630206853146064914740404940691459591472511015603576111982002438788382840833199680051014295955694304740017016323916150750957063316571633214459992764910476775218534333830292111531612104164046379908937909694630365479068454007062295855299084791322146940547819551131171606652857303110802291189835848733592208270132668791820674181811965491237922917357493985881451989856490521668910016282393437390367802003933440698895594285486532376996673156462700907680136584097488606360708307858685199240276113125682188420522577995374577489271426072671146330260460013046828760899257145402175327301216912449741927371775053773917375408047716370667042619034140119499210871982174470820638903106067082807888946633687348492135590711553083214727335717487347184006032023991597199691324111361181933213296261068185489616283473662818065549873448109226367517494677574862446918472551200461406117729174162758902314381699893662439175623928038907189834251798679906698578027963682484204869563065617899282625162504481804160203539094591949619852243815242400500826181839365891321948757942569014889967143381682361564528260506208020133490059057602838583644690271888464707752223721710241656594084043778270740562004950338517927630310654892233133375829376756686339617501920495152386705141271824101044570870309111629967287968794818929730994151411807226901440509747821095783241077982850025778673531117343789517251873973519330996484046748011653603728890705077158067974033872185371883584099814290329999850123322500815949671645329988533717403609516965778263447764372690505598924717598156131184931386712232044533504260571644553064436019788448796146801902190197858138000940161024133281346668784912315854137737599023864706474364369198217889266162439640093875400772141857681396095986252495951156423001792033053897183476518974612862782224939305200104673133456816552699789117652534090033717864920302964665927302206376020711169950453501571935476639721993791216408208039862286326197641401319565712381864642973314478796424130320582382162577782026300358096113029587335866826419522910136989536864375667478316548724233398386314107215007827334024180627362638767042129411743483888644724111713490337549871120185286169178424501343084163365898769519972337987475705046903462877582697353201660815142440209726605341451961006514288650663058398040785048142293051458459539177156915127409760049710975932611817593706880275875421557690267257842011215503934451818900886771426434651883161811860446078593270200222016726069389953139699655014968389227552072447669551311595422662969218308293878023185643060520616461141684623047861195851634742169059990522522217366211930352968692882591860648780020096427099211721238888235307837614250744719729972691588359355702477129854976673386117290960218893816833818564006990486298635149995148453784691708905277169569679398050661986699842156359124487173579621955836813064534770815994939055377218752826955600623815624225478698582234704672370376350392580293490008470752493301251310503978667453408633995320966232815453592498849945033393735738369225737061833733895966746589248674586693754569237898132105921939944796306529093059823629125027237280912690478200756835684138870266044542956908253820328254953866354998262995509604353084530090737428687189449868194998520592369633534151195760266696085698466633520230614368878968974370810475643297018767565617883551526006330145620363079331784112476517231746009006363714628081806897633950201111121412152991270666119926513440328197430678420536419938720475691229856882082385542444807572517540280552935665809954140539487085418604176763326476150830305290446284876071622311038187401841477044181536723206345407033370370351850780147485023857430688381105077296015077903239421837660275177547071802976687653057695757148206114141179182000223458016258612950670063985524757110205666767939783371861224082070872203291315693802726757436867549262668937870608512776512221881964548913161360181318873145767896421837141901986733364937415134577665253165083259482340138593694571018908647221842356707830960138344801724757054756663454591846759467800122796175594534460453390648998842029904210018793714106781846727090258276361608237151617894679184021260998213627117306372325926599254146028395015026318303323770229680298728883548572002436554999380969703754254424326009485817586003013430127349478337923723589326379586215322476912494274660755485997185707660492628557092726615120277455711732220026833956781695487076922300931850637424871323368441249898460283954767425080517127918149021074519269909206195419865865210874748183877896329430932892189798795113752852196621710183841400899799659887660226716135076512632088181223412129693736841182230371256861322288897708410864438302277614942469991893547790592968483858595357653856071237813616059160109502670673648734758532377733307783514367801539772492107067649414836340771264680018302098481583890628811062095949636952079548215236501864021702994317648290127721713877396659020982261333659442501611690381903467752293684960069131888056705133432965578161066205001125268925866130415605928857318674439828408376826619531784585014261357904703237762355886710286475577501990509153870282635054964546245169386481254714133689096683395210964319445673466214582405474077166326480899195256705063922240873886580098446077346428068213874571652904796881823260912252542812460245558347204713683801898696495232599519895073896360653092267023914948487518143736726172466176246087601979627040893479456208191138287267173070142459926097520029885463531608535280390758014240304301505385139046594604745811061547778931472815679203859791567248965363927440605272554098801089425555447913226692761124422386275997450061665132000511444110062465607471637319578833779588968243014742682237252850643058766213327555167037585920380454615801855914397276232058108693905411260646070225086800169001114902889437632038170147890631203889535003428494169826866392001502655809404562438334942236360554999187612929646061199677169829396013805272759502891977970245639132541245433309204348462064192849181589984863492659986939185193293567270013023304081159726075655700183873960402642178793025085613410169487229659270958600609056023135031320295050794888338484722406624302424139955314556344947985906782477356662026788342469315037445723179624353142090882788773094508207602924694270316658913625351529568901713508746519750346738302488230942018512544473895643131232028635671374254698925133331837261276998011785376477619179096902089935547973855639234713765053579190563543182797550412182155268392669050095502362211317163156337037497682288239247917829955931577389482153944032853645272618539840636839723956820912722088117731590871152414912383865408830211439377924913210825374635103508149525438762124428486643591138193994415017270284908365315524455178635584106719809587296893884498663687505156429349218785542603639859738774751707296146615395337623855219120000559935917227267696459634987844581767688323000430884510286700204915153046534110234528005146750302901526105964163588198222630970073703159322927278431706494863848297570364175410607435313602454874285293464558203928662023437707946484912470361330476617999681119908342864366841487047268982377377084059048138506630326509520079330734292382806895674985549507152587780475539503835882842789350458410971717210067878052568278279423322731006057064165527243395370582352086034900310166845804138063852696566342476368451020051506983124848193821514042599080633959925601394610930004582600480916707122349064477441412503922203425363750202521527056828319985179794960903516563943541330605423119974060775418272163592763108220328708750072182841871554886356169984162873381631214965672452273544156835322920092208750605417125734448249014842067537538027727217462034767452043090379202264822547202456315563326289685479744586766599931418969772888214286146670756497199105033810814147261728404396598005247602869770155173848917675847997000078148562412260972529112626870127207481232641404479645662747257690014929886195538701180295722521031091977155279381657511434026015023790198046702010758990540080227951140740407049166687574864625715241628302312129665738880641943962506654054753939947061157491743847225340834161912401050130944998241143225458369083349786044605699742596370657761206878116296844573800084517421500726019500198841489220984846233073696047968925321080616974582874517674806854636936769876595350821865718372315374556935431799440845140262622647249191456753854933864647261201903919214792674212502198408595073987268123955569480643492042216974554717019087776847275353409960313071053134025051171462962247528900842253011567849535143170758573372256439532137723113880725464225895792963549612277340510225693981649498685902925235058013309206073759597835458944141467181950066387701847209272862630960280589433080679845139392510014221201786347306029220266204194265076078943398729104004895124776978578271224421608529670425841431311165293429999858021237874196188726889773678326502339666319230208514570439587508427724418032137082196948950917876101638781211749586885132633402308586613277930147391975094745484589001917819911541999307659971251194672586917156878745788342092513655471619707965219991949248537827443258330004083268533761838563204595043639877759510318035735058370590396180417837642488451359241389708011914841459528056120021649727067113702548331211601438360182903053767861282812525724954528777060730402795554758892405730007393151659745890889386568847066908001439489164491447808026608654618114315855094669213471239649287370965153794641065138502952969031483212293490529481885259046556795433062329694329965555538933742235016881702666816333700935866954186719129426973058681040571172317800548142402548006057165666817210244316927575975147667845770184332838503843708862521650327668976621450368801121068730444050691674113272855503119976018889227252888086463064514941171603115138791644598055592516186238003882857751757459270563683180799934890794745748139733616944964261506256565027733759544647105810670261038532034365615611232731240255113418879963327669669050434516236942844234793816417483196951574198371207611406398202302257387871636971173718255916188745679663472430021008069294202683277249713422590109261931344245342403953985893813591740406026741550490828547612145063377506355054865695624480054038799258630010717088180152904668536219230216641885734659649376556671528673387746830415893352242492981847836105241467789270729009479677942703065455052437823155672675343838867679381680353600803588197059003650289076427112263089981721445153898123768211675151739992175716917880487484067542231295673763886052782815340362984261391457772936732565786431838325883450081501109256748743961189057061845696397478345759559708189705775641222603789525311176598364627872288758853852088339006179361515500894871202511958207912236500160647921648807961711216817798334200930487100763233015870295683355309768783127528656426634329809966660600944003256653358950195986712072514123970371774542909285959873977586571107861403685171369023096675238766983903851200911306707462843404795842867832825326918389673355135118909914752562451225319678723348824905968586139572332851612964663756559657391883845546292243414695967105899340515888704044829670584434989157607754550531733488605265673594750076550141688651291712540121035197140839037666162120057693172115342867018324156405107592494712748143103346552551124657562003023367403728423306259738905219612626203110246821314462529999484369757547520841633372248731192215106482194903385925951849337162440427053300662315076614043148063100185789054811653174591684642615324623817935048415827160432470074286921702560064779706192072716935679078103997271666795171766477543905135469509709966175469254436374257963346103230720687351203897270568485040966417252959087957282686512847899462607124126957413266235651820218761944746971717389357968569650027811734461091895895449562444476413366080447718658768893762168932253122841987325001563555257245375499031652318015891318718209203360435969318886388163934550590064669088439909440399320587183077120545027892796909393092546443991812057883965554242574320431328407787221513725120111624143284644403114101504881844281338321386177569763880276593031889027964628937660039690414540333126758120150014663696802137645187962584301971915067999152346702894504638811049802268116166873601582258964983374464877010837764118316085168965927873991010315598595514987902715217995813426443607919359075541777511056550710821001555470751599026777718465347160614216721557932165451640694130273116585270404326513318878256861510390625272099363198759302478300201284236776003429054041548244491716536455213492868862183221694045415854981940183874165515526492092474135618011918519162185101698207745831728279049357907333053616106955087761471195096676930679574887657682872351149752511868141512857564469988168711609470443072108379848153788788444960323024985440358170037741626671802820556882622966322483353183099081085627562677312811161306556172628526982888108333005182415988379299529262752856595391340259031849211945504977141956033389878855975216469454308064403142201361277822117261797290389413893743243938977288690928445315207186985762618261172448358797659810432893239044575001724452796591047154097564397042491499233867158504836705267970754682097892206610229236379498485573494861565268822230815104345494422246887755692115295781855242153969383360356934100560258785104313854737418693299907455854390107587739277030837802438813304373075548478290681030998803892002013359068361138680715062796922675462323753203012279916367767158587911353719849199925451540562206172772389505653783442792841222576857424207593747048764336502581453991089227856436058110274147177489043482986315830176030975310517448252767672470500665832448306229409176110547310534465235402481977591869516775493659890931922501292995191855538031258951003296289289876499231921940943602577884226523470205706928232776978257038307812611788970893697012432262191283437753255196543806923118941482131293477816968613271700847147305131150796440315273628459359783795146303121667645071553188681923100682598591929315321595679050780347528823005104944976613901551885527521407383780584166156232591517388986633783092648759630330040564479268995676528220223714328177356585068789886884340636628606250225752750690039037841650701089955645021830787119410806301584298963059618699998372747395993360664707992561833092551753959647812303590617693058463290568196131855723483257613966659840054582583063687345638866271918862762607630528695975384730854306734657029805694207050667677859100339935743031278410528483879636290851991519434778653850870315775685804318903029935460775862163754998341709029378478620233614246670143622937888792958798369173405807752554955239249068483824241423168641231917501413898670890483831073862399894055181848594594308919044261280539710624610077376161846165598738669817348895291934637538540248354352866509449794820670703710153660410139152189601085426614428711193933135043524995570652301481964884671079531836763635187681429118757911759240743580779663361121158006482898802151917147176992715905573239198404206690126176397840167072393796137735895582911205464695276695188142767886952665736560077030278339969371573255735700013948817909759107361649498532406179796269517460824174854868239048084128824583739522963742402779201574708270596083855534381048235799857419542394426700777944579530303449248330572030232416235266052867977311294607278556510283742771447243663666872461873402593777577007033925163929882563531405121979747116197032809500266514952018092676054122589359547292027574823364447471495742824577596231932897995416260632659575111648648125832097362178612730361322923239474075151857170439696724244978771190016159021079684927328721497016160953253199560360453547379693937895482082269931804193461350467611238742640328182713876347635674140453186822263585145545431437214839167050457366690531827232321325422379852035842011486524956454962688874527213680730764079155391164580148735168642909774557260207257417024432498088611924313528946266795309263402258019378106914429884197668207869458733375158211618676005183724272822654123921537287282371263842680904869705774237777294189005191751290111208405050680754805107814077390983465370793446707727831394312740325676079220949195588072713734386178754586530008420378918432765455174935750382993171232526210539766825792899652823118537730176233293402785562757226453397231888408793532604939287087397782325083478867913195943239056801098299617378359353342465983826260162330638695452058045497651938066092562229432097240387991140020185486286452212486936465053201878320093999907186236210600811023027271463644135753983306431148715377663030479362921774232918403093148847498429440501402761446959118331111101247262436272556225517104609513963422454049754159229984764199214827257884757301880131423988078680216201994302394830954003479261548708119819320947291847619437565720044519469989456569657040235372410176496318277853033633039311189871941853441008515346095610722932322618381813018167225545387548599492922929320713598019823634808805258371523173107984423566960664315145236067781384272076803785889912298055993507530103819927328213906710226071784684135766133974722287309440326514790573392046544461304238798420558342741439826572494460093269288426826173211271656759149146725487596707460294388585718801151201790427521140418599718203656305816317032115377807382824050187701891458185463702730074824864264207779764917824791408457616834281019288776121126192918968110076047355794694146052195568811755076417209590540119777209265249210938695252741024544004340155876408094358142862031598527631732975912145749823578410318206806652092033447462450106979518380828767527026670181455399351474601308755754459748749385758351493004418369251507016767727255041325459805894664502791127054473768711782755860134859442225532792319179852040678428670017123034565799238481720204197950414587550324565704216854916455677816310423900405938220899087814776661417619389492983818463879444965085080213107678355563245357561561515046845293721343561802264804737332912611299389165101498778074303462258583947590957519256036822448610544073516662096603733136479339178932776801208377373666318060614841904254214444593995431240573856553942687470584039124746761635620855671969593911430257943932808089048754463378780449660189220318425160285979051703288508021708243574653725674909225578304048500111535334757021084633727889340347627823085771011020140765330961615606566324633953048075890398142095891613847521953227874499193680995605006538223063923383298256382174030338904945757397775455293937103710039664025779075390870476323335937049441797861388642479738843030594451553717841646956132304338205197412953053905903361491546553223137472309004041955831072382868779419994438954606882581375251194418013720761213956092757017314712695353928090866374476795379478938174274585314375190717052848719983322276821750075720610777919929369722003324020719525394064387014952115688434921361593231575455541855457153448073909703475548938037498348417452174487714195853758307907906902697778040011603660461398354972118970564567579103787245150214620343183980895977204852335007110605021766692965154937660723918003809001057124792254578742515419974605203390649991154319543282509507244059305211162638514633493266560142254322868575218741049170130821544817276530356717781556163563738209543976914796578749035004189467944426034094365921648509665752725532792426448120355068497584496854081395457109226196930100181678375799517711226350027580521542762471593369699807002253500665299545805272847112460751509377809838127287695942821854464375656372012120477306844473037042227616505526365158077326968323476483708872213878887549567344988383296295822954375210435526872515042584149453836743069595807732255904765529303851580002436465342332633289179195235159814331236768266181629773455302500350188023765991957908382568066136698425380515711365570725615282564608762412936836140000770717559312018659124495582919097907922204713163155033840793898355745907997544491715968569990914457730395365710448125657696212705624581681761004597350499588429799901389432997947958887972087279687668418800745144821437963337839002622769619026753313347217706202107020305663342152647551121285486132907142901808786201923704958022557677358262025623960028922163051129587515320278323504761356575158058832699799213228801879248821074563589082956800046294247294254698863852920689372827131488558396172123241612178562878732896242362296394318220387730728832052790762798632018930919593800054107224961333637075387105773074399500609188146271842028174182499627442538472950061608958066296973342017970377737995058398972313900160462956485673541605745602496892661273625337719997959453752752138352771285214938421944756372081621062106605675695500699364161584892562788505512633264817004587467024278746536086978807923159484136922703289769983673779282263817481500040075321510037924696727302978436020008069027055692247477063400410547297146038000634579758420673525412370020192278323637955315884962631323090300692777905468742475565536747460007430635041728130931610344364008395957010344820658461485111607293810714824788547618485041594885860631879470450638539724865793345277090161951376810656558344330221048157647577469270583684964772644528594875248089363224558908063267739795148381411520386459276372461287132374609167676653607317609608106148433637436740338161112109091877282295619362317853814680189757471662554060579911191340197104559975949127437731805185969764249412424554424270345122819974808296219475103335731161827883826737674541797612747066258696395545341996086970157337373167912578540791432695518460586793104235558655954418818085481802682372819756682541450335328463405412030563228972180963376104085778823253638836724124713533237916836857616431159048641127238243661456470358540287205181889818743318586444694323141890259887307077693522610097872028168333616511293072880915930491450678267199188916145341549048121886772718043020178156595139522575328374909340832045418125913309818908499921555080641049311312729008550816850284276198463360461310232016775829896203518841406604146197993980071673859900160367613895698518200521311248938270246422825521661955500331589484593285459719433725988195170502227167627662725664680491240882974035108299734175825995540998041589686868973490738372616942894764615165225982750952752352954345158897593166155201500671944146330825229261459361011413021989564127663463614218910481621196707326198863907005406897989486119858756171354670140340007986646249398650799111475380025102071161678056960848625468467545471435476892502361926284503751114263079412374096834856307690703646600466325114309573704934700544500299449445657946194471915195656463593461288726938900420160446177605793910745879849973446541119269976140158981428739015589975702145807228034815368895126498500104010598007031823013850176728368352319426029256126408099313946192822846355567086403679278311149823475984487013889995440879696649077518869021977322369637214584736426138577856535021220700692191972069683013477090888684825342141835552985817262702069075960526558105955435185530225261920994807456003504184196669243174336144535726212539738918618563422332323553036198258111202516747196981969400566067010772388056370322662437400182178148191899104162108109269564160120637064793254197265106032420165845648261559101217500218805503746293836113832074066839110969374974351490663896258099756189292934527712963191812274677234858964440714074276969637436957140558947819011804358756939037289845649743229691863742998934102265121042044881954231399341599875583768364965960957893524020085353591803632146388912845458775474406139674837001865979315733875836856377701005689685592069291529096703598191658522009490967513652075158826277328242696348033896462910890854542660321162683907300982999746126050739140859932903290708633429283419488739167023288466988235248830998546339854139393034233361660038210703240510185734408901035924824471142831209914887739221810811295770595762307485678346856040834320126197336961422094919025539413666891584775562594540693244413377946922563083603587203742764518563017284917221458431365594840534466803898741840202909788608763423174971733684138532374318140720863475291654905515735490197127473212657114953593336607324668198334157454195715370591342856928264907610441953388334044462080710966923833531762825221640563216909292098922828575072720208494197600386240257360226804223168842011215580921670550435365255216853972781274589181353893583632045482934950891293266897825213878713107898392857854934118277953061945649661320553077379161251478608675562364633228905813857146995684762209823296434686692135865467422669261026810766597953413532092151073954967779479997858626170564174144083407712522021331675632919943101185610599290767859501486590912555371520150082253098796692708487880412364327546524878877208884431825050488762804190689706244049841309450653878034152331742690761290804550411066344623854186037045539875465007915688723891364510155148991236424105888933338712640347661140452810778412928070247621653757778246790750140285445259833169949369708229922563326091761523047224482341264596060119005182842138507993871814464061789639818839557584503055599310673239042581587254628654898371301995998226729338291415295185268082432820341623769726141967176877350792990780899530431908134466204628108541202403504376360427340821564391319577730594532653371067838824124297656931323528809929660909948401969451883830757268218118507670709972335122831913263536986102496776257863738584757682181761917286399991602947873492969903542380403031407572347803063930978220027787740580145891017592162560465040581732928338977811838544319901176748734215730723139876464572353846038413221229341336684878122432890461346129607070052175959770877960358174433333429775881777495323600726457474919960929901799923026446217304131084970925834438734321403724592710795738894626154568620669416193810046287628868659040560973839054390187950026641984363381882896655540761461820712845300777293354240653169751002811817619113116171965746966872528772687816291543446257688389865258536488679773361124763270688156334921504582736775972339788655665201682797758181104821029090981309241857695347042696429022224957849390511290326103168448638954212273403919051537432804898279071269878319045748169969688576525647196623628566831718248473600155939615713402982369190304720223622680441307681943005903988151763798897626800421563369760618996873902802563420462535379803815713530865722538064373312751072868801915680221303080765823392613112702866959275229270609491870792827848990140694809068697211685232087437694226067978914259594381611317414707455652389114771312204826638189820457401104897798504920292817167489895905080933765305080899864820305220952566446170521527299421074567255461214303406050967472659278887511880469652829363250170435211787807650787741717671251775404931594497180695962569468422898387190639489246758654370426645392833970756995009726645258412790320241727456158839483346302005488850889162490643504646368303456174720052983832762159320350894234626997314829057010464778995998805748776049590643876029232063603263142449703432443243624210763403760757732632956324703770316911092530018817965360482408260047602942303636248339462564068013602073465556489307033158407502678946425610843146616186131943149365603441791876533877839302121196831987348997313264414979154037830983247029432233988819887062872553718894514301485847753988112427438779121478141980773706729523499253977240768683310811228233975065587783289830856165677202672905058825189571372242245441789140147611731712940012038489832876630720535735147978463947987664185549251674275411697029466366081327994601730402510961113132648701275953170393112614561177787659533153480669369309448174056880294777689407074960368060145621499370262185053070741530176949600247779617252250313391237912701030506566513691903846615468264834316890545043986589008746150416176663711039302926665271025011735387406885022862166234921696421454302906725919950979934543497645779136664342446659949952443176366534153026478055602409160668666517509117269395973923720675514688708302495282931284887481468865129698002344757640325418960199822485608318794894063313572267484666483651231345090507257078502545590618370262804173142166309728355042681428354439687631182819367929462846972413259150366044884824965067985275111668247158118273629434251350655744031402542103062348225894989997431895761670352051745157643139475760251570588402034056753533702321122720908294300630046304950951383801738595425751409044616171677837874713628828156494618605857847109006280432502910575464030608945202332632016234612780217535641014919402528406251517555144045347951622283276896239370007626992810990294911803637530177850833960814328164864507907192228324933802345981391249837509359200867461740749517084408570547967471779638644613507837816065158382781557844756526231251450568343384525452926416608529920048258313480839280822429778836565267448340326966884468235667273936439493646654659804644404040463222390026451059991543315099263728437343050108894273002293808401843789846326013800542786091319772598599450316889421788324545774758521786085278794829718555095898689588231530665271420882114626649629392523626759075016211515239530167095200222591747416167732481590670072625559101353504432647095801068211215949902774597021154923021497787004709372301633917031804611160961110666356548979472744939341564081289175057244584586280787621847961546593204077282067918220825097607987018601926453347028642752429051960741024898000454707626957273896214221155787936597850160888835690060211515236273756179111135514375270678697771691913636660098626319897987309759636932708159564241796488147535822806276481457944109590340263069462262896897211120241726895887157163020517186511459848951548903075442335117067006825923387600826311292408396125087751137980623728861919377120118031988779491156266162392333761818597205630906004592371500576869150089202423478406669531364429726653432451533181836585083688298525853090208109061627833348748266572241005221123875619701819387087419185506721249119275326481278609324181049332039778417613038840167876384295327006293404141643892453540351530546183658657454661332804932925740679156456979660908060483204086246461411067437288529162728760825554990088753712366172909577488531544505462991277385991421984743079675738660812837588066137987771990890869415565381308602711781719199731183440534898617965732505185293991147076453570618504560296015755878946218456134665957392516782308262889461091682182828900573660545816107188999783065720046939985382035911982809047338374922041332975635134217154379987201338986332525083228920024716398793492163984824996141119014568531425378676024244020565998903492698733095933366394253867231464675669375374478894656803792753055038178884289187821474486891620095894591618516269340809108240570395288670365353257126934033675057824329206894663637891725592546118303118589746833064554382512614373489894271982402537465780783631096814027913707818458463495585508703009492643946332391308139707193551607593696278627320168486359680331737331416813064444957976698536986629794681738575450286580974477852728922945132462113609638933514735567557539831639974651334674587052542751554376330055777368903530975214101118782718539427740549760308111427684310299848679786387900853154690650295773661724500964050463704117477938259253611220150161768593508523360467355825036459007751730435568874956595311893840944987889540058178720199780777003494903180133733059586688010950585936014889604569237226577854056219057701462025203034719952933514044891058202225948535851755676147866540721180850843712323928560632711084946693586589212675569240590865483327221612451014835013216899253948930624091720528118607332606700415496464143539145082696801704350532564455081134004746986566512081876948822183737035130213792452482899564924482984093607101860989486026173549751938686831073713810217385059383691053071429130108918245326890254147220830075258765152407054298267254614658086937270514507860736683489161565351169993729953407618645787845673516683156034818001310634007948228275687829053630686859242526879509544728419409471364726896887327454195886267603940392867515380645912880281255124618065860584189006027739381699309601757182529525611152823061477769494468247668795191404611128986695352255761867870237483720412359938395199285068360671116834532952489360270093404865406101680624228109745168286939754743861703664585337319885237017078046731384295258059656420970470255979102960548391414089419406527309330377400383656536383546849649490025038514173290962099714760074522755934802167845611317630959316354072477776034774287536261316257069863125040970662424335266261898992498801935479865512223579747198363435817908916625563751680819510544745968733672842265858856924857428925932337921172474036912033770068842474333271874898937169867497786473556471984492713422172313795621451833384420403967346334525636929978365960493766103440309881727448314734306305923570431869266248287347600053359476752568247699775367718965448560460690843626770897126155204388225319412716456751676039266447836399847741191886966570216370267946267892002484991915380297882542063643888143604271996570761289772217119826581428419300454899724577968175752577446132412932379091428043150073333082819966951736789716247188027061889093715877981491803740433863904084301694499947843076511841722282825344694610979101020175199686247749353809188315697020753127564493621368645868429506004972187730502012658616709312821121002452381019041846545554311293549384806052278318969457923605888567264120888915800295175058034738433389561660795623383997913738093160827063612890988697796974706643280751408113626430730847069687256798543917334238832783608214884842987723195799108724824563694054608538583794055753952379168302034124965696604076400656666912456403874584160362107357753261037098288252212158040438861046566106335713719694137380339005685155741334918414426560482298973497410963472375507404407896896569958593075080024356425881852450144356915471879786365813806459928015066721310936369597339124473838616991011653107626033443129274044832683624869031827655685015043321549366292889156795842161940696804707485462918286808281369363220246796022784364483694847428236681644537294843754576908045205470159730497968330747404800162506831472556245177437505256041162289838553657901402784624801593164879834600666863597499388069746390744626842412653371282223748440421075949377319555179639650266631669947694198090608526067361790773448149642538427071029241580493194768383403360377778217006311752474254151523723331553002933294856124132397372683566090891959399629540816408499396222447645806825324253224981540034090496469334851445085688185515286984794633066350258963764813172953654943899359388539125100851446774174284075155328824254526426101418317651250916485626757783911157305920814233260516060599789839335428617712401665911718385883034110255589091424237758600725952963005335111822449870902426128657220995808347772428608262834402276572584758552617023180407137778310587348647590579921301724580882221205932600663866692132771318002290438665235068905960626577128052799398498454491193907638758885721644184097121676230186792335676917183100957087990615725422963973763723763754533553222014148384021015494394385452818737145713181500685945981573448563659826987193582679880008773397573363679532143697022803255133768890901437669245948724541651301070885953998301446730176360386283097641403171836602404257870534182586626923754445470878638828873416446927941287749833997274970241285923495488284160310571415846008899649546273924101623182457438569876935423871651516075103692361665036476918974191617498984487124212836556666991303441359068985977927914636427022545017241396470743304823469490118356243210406229960231519350735064711736620643080943340744414131611142161821082287558479555682562422512949951608374135574226390009390045391893127101938350251061754512980381334598588804606588487810123037802530501948744577704297768659856658985949198398123746525478272753408817853069837307830788493978727731489754016839402103997457942354077697117440807956796559054995141847652013494047539124936864403467991772904216745994189182638513062229842097529437230233052785794944472554988697573671979144812274046080074709548283180026610342377341405470903852846640660520299594340223867461339437359521832293347340528295914772392678837096655310721885287425615875732086695259230369480881716820286482927108844750904029992270630652088270811588245725754042781183944198150952303919130464719119527851358079519595693361388261692328199659806871757858391594564797121912469802275485996790707574310969636872952285335741295437417979253357555611829778614504183916561417800496642795473119865754197727681319444835744815626174351905679096685616480110307098242287486987818519523830020361507970902630524851499373223494170931862260540357919243549530808371035462842351265913208680272782663463930792020492386853024273546472374741217160522502423003173325065976107891835120077611919133425454955874763242259940298987506954486026227213024365112180445656485240665213523881189881449285711266696819571759884634947247948618515736804283760586848501954631598482347209635565802941985476671689129081321466571974830735462599812622687449883968627125764547375265628323403020158622875149797640768514655987739743969020835442590780710958258403047833201144751243914643664165689139566218269108991625112021231086284061735664255780192905360152950603083495345665151516487593170915481692528401142971620766429805306093723026172742353328713463642001243486504333507964400082975816064539537487844770385776221726676385411823778340007764319888081759212962043966973943307886318121012653656820613989758126835267929722904802597566639886221544301752682173008829161398134582191244309211189634665243534016427744319985806174851554661548677414763717918329936385150632047528479778603465853189273824109223955560522737262689348329566838435244145326136450404693987645690300858446321556524007980984692045697709770617615849707178394357066172448729157774839901469600075093488535929165250787070239106086483910442483439650586448327510294096566866120663056034701084334346468445452088199946216932414226299615900217371203204427553888106348540273504420399445734804243115572063425168787842738862568670140758051880067631263684666878131159083665338595280973144740252456277780678297352760552137005376398972036347726569786250281191118783991187458254934806871585248154785659041677355443988995389682076425547095419162743579320587197333058562443902513326569436109263988026495578703998595767750415235393829825414231148903905768650789136099598799394693976627743348390392083400376027636605146116386857685020077016585445074429545611481369367219327840650571094768120765545913597854624256809252977613454795961563727836230021084202916512439777034670227684202785325082706416302764222527151883744898443244873237755326770903494957217413227286175436474384030956518449364103980448502552815110680085312543300668618751781703178952245669338387907975596387363461956586982651928578498798213102572866566969767748461831191296199865201817237692612623131238053989728345396483444286598106935581543144770280473392401267124554399978965683232517598900742699018978194985276790619846524377409348812316987472960304966023297177854684580158873086288072517651072043919818644181754998402770361374749813950441792796600167027000182438228821192519603029561556874675243462467708902566114003628206165030299690429185888707164536206384045534047325381594919694923082740644527244502102347615820671731426884445210200877082803701485760131238427212138283277632969000828108654054637288942656270391318227186023282781481467710138494326349871693425988449305740704704586366963569557476452542160041783624283633312557182240017370679215235382080212424893975735080977218110787502590490674252248576132502227177219515124348976022148147945920578114078787158136150146430688232445510101682977173556804945444401858312043463661840960333605795538100698521462864625325152467761581934780623340470456493596196047711767293408499357782741004641879484809305002908897027013682164347909982564986556538593225371172859014871073877165876198551469184987895907922595614748465518683544136089845712842154904639002437897578338876905335135958958825205725132987189847914620567828799727098725163683167275136718198369970589260804346257417216275697987162592759596670632045666343975471967581884939514029702870109546015023062485608021036365833349562546848894219654258499724177190555971510682180752011555798600474354731651136374801964691177679261851343492213113719836980014873711615204269479610988639292410959145446072238679769976498986132638075816930721345523158936110486379150049193994522390204980919354703226729630856957582568289088590701850741378957196066994821919540609134741851086986509756995088807627897177187938937594663181572701888883291635677676839356740272919483122795176830495059958124565845796173153983486502133910599694879182257202276127479910282087099850151463873958959279824480718665434356688728381714834792334222069427446284968258253120863373581729827709183246827913140148640439085064760109262715664506033822951283390422156599173570321298992569259025300275296427942469681233695530000859456469524819505510325214605622807708238974583799732282575866171205572715566968311816413798171996449116910921583774057730149445549816064219548262512326953245646770248466707181664458308652670718088424991499303120980240917346755338159436758652736661224540633478274177825543998628189218325470437787691746337072651461645245433011464647871087918463635606948956904240255584097962795084617550679641144583991842564590050493544931289079996100098442278285095427067360722309758373116458389564625091486533893616630150363752756430515723950204291463503562039892454576779231261481428904555116787299777307276875036355475406894704478555686236068952236302251498243831227195632031152223652564904066357668422158970784363669953132259277391317350260608074230527404969295493803838613279233612302346972884307956140723606112830516629060911468030832940787388601861470736029033840026055498247188249960619766384373860609479589809627494829199937821732289240055427673838758679889493554361058829102399908854791253956897311624955789248963860472745681506237965264648983861467408501631260979492542815796501822358158740729036466201901624064679242729437338031232038748250894389760029163672449364610187834929071048347237615466785861497753041327546671775196609903092215278287254252731862869871434004779058781073015762287530396488711054961197008032068895534812603760662820362646151829309811326447976337048560647538027923191712156509144140776937494233790528154186848935068477483584792735965870732917805928977611571543344296647693898740988289959989621046798574974710015755514594625103415099319646528789807209411252136636780295299636465133198479469068896942884764462587959563419639799985799718937834938689982950379223087436660125323113097558422083662776681692462391809204677065189183027533773643268646144361851194535818189711440878779249014189623675715785599348977044332309288241913606987032970506001590872655910915014524367140967543129633669348206654658041507558542886234967627847850951003142748700440131201787979247348544572905876975847515948598195916732751588157280472737798294042685773992690224879137488777358069353665165083163511029563485596248125570269297196825073087366594686516874877438640019202192984227001930501255214462920007537415211655133211188066345672609120495616852775953177756225106509802668514695827019874819726974277294813825925941869563532248872483433877912307511495518092135411984553469603494856422350621394431745172650450891259681230621742009748641599440560243183010896804550795830516419449415821523427751633129077339176968449018911336962108900624082770206066345780602019102053127585671234603748838187816439153964078580894228154775605747795992422438099612985981087843908703701489509406195522660784966606040473697059122167568458286314855671718192435656682765754659989382044854661960980033514067265336239492483121745302191609569638516083499160766064426392615920909185786888319140555611913310315611059809346682946840732710356760136125020637805594189979888586627429620955246239149513317002642976509894323507996943962714328515011913391558543021273027486339203967733450544050205901616564162580228840671806319312156580344561956135600186330359058434461747824689721673631255770574973583806856694929574067666402970547502151908980947814664447854156896592762961767343209248867603511542838258006535126133737180239023982783218169171364673867602754668404758681692135816185807035212163657094919309143839790463477378385913834453705529238154282353044254632362868841577112212036199713785292905576825109243740609474897788271717556421029498370415263732333600670398975639303351187795201112933817488089377196924025567202055932817215550409649831716897022652391020892551958918691311496855807421770921745810764580535677632805286731464657557587681019557634559840571911072920496307789593429927949748793422756257072581868382202973759582925799583284055863446696475921821895367599956430984491548409338969973078903515411621436475146391696674537132155793934551404791758409438364645648505234046309989605230557290629489926289144621222000411133280233193022452641536321198512625132902408264431881135732703876918577168233770619622830467826496460384116236449614710011673137537404570215921684480250787019958059551020514254873019016739817813004721715023458473315376107938601309073447999874760136849807672351218520455881942092504961381431424677692343172402245882710605844950697606182897992488379801934927759032842486111653309621838008621042072912312446993625252587319662316750002290355287416304591002867940658476828806977229038967327926974042865183110075557475521616243063106255963297991255561392043892662040896653757449081833403140652576358418489939574075630112793140241256023360773063272217314649236413222711781749940611193737615809922748156650549142486593784804825150871512438680234743034308908554619728755629589582086960013560050664993881726336314851252080196076000356876424453476419159804485848539516978623377309572234845896839360014618446097718830580743231313175145101167230705638732070941077247415910345322999196358114671005298003555871075007502492471945924148468271844657225302472365253337409597986134989135881748116843507922423086200079467326464527775564044189449662161865447014028115988901884046625774791022867895969495453603280404117932768083677361140804900478708711105922557560650546625304224988480285452744520002394026920206044579522054447946603288136715442787697015444477321741575963361114172612712163573127416593046182753631913672059940939276466589566582545053020866405858837673620701788588347968323068292491126722712859837104635628925808634662553457896384278442758701161222582679848463348863708895951051311630209093339874884754432397879695629579671590219707128480645678307832165931209403311043895864766727661230114495166261428195837444776684406099178060867136923115673441953057728829189160436984260369483408235162239358266240937067148483769917103310682497212977937538078074934142203480714861246114899002098468178356965191153583526056491699768626775955058209613296050800421364353292121414666739081647094354647308538618346976184890443632037868802098899401003473882527742532008135545147642602015645208782693457572594170030393927699533014486071087400581745402679215240734304786354789995257075781683501536361309216853004483661424848240608745853283620150794555395496926530598738820276939024949563876230591393786832839796675588727510391165182599093862930144739327209613268778315260673600178034368335423395078117453377992033374326985516885999161058468554299401454870494464594080952477986449513798662817107955433096339080975914227820157719838780664593893484512626690255302401210288273970277407641159056861883154736414913568091524328891284079037369989203962693930275053390072578987076356290971874019648192695420274547688247401260366203749285392632460288024471265190158877841130637298105251018325917315660951695493543099294783839889394327616469283324587192855803443857450181696999006360715325401086607748893611711178777999307562781709682702354584243973958654838247228172631218821085996025513159477880809425050030850765384245033715455948575835283394217627766738746357307145358413146217160322276078233022402778166554404161582632630965974999811759769821012580950040668392880766773764695136829945000108325409494777631068517877248822821223462110633603087207403429205330460975891706078090140200326752391862827634419116449416499704563393430187299896159771838470753802907687797840701863463786827240866238056587197521426840053276022568956167657166101173730952595253622214591350584979037517942641321658017636617053383628117245007823264812592251830916030948643631856453124718149102751849904295974137900926433842267657319111027684713814261287764523381943983978338003042992475939876718813219756647176081926422754129458247677531022989875441378802314558180032978474865148129383695908752453329665815395088756947043113302207375314194169402654889885895398316539287246229627114446108475621001722680730100228892920493402889244722932637468422589336521017645138729181522700464735725832577580136519625151018594964099270514976274176737540918452257022939383156251264918795240914959741754092717223220964507714039760555267508165928413267376749502103962681382693349754408100078820038307693730720612511604732807017212560112488511739556790080371752644655125343082654646204149666425574636681764593721594813690466649376257455824082361981385881098700001661642847858635096950893888267046476192840794223845713491144095783879708212419578084416607905675111530552828901161222948420597159012412950738855521931139529830666648448790111262811239006934743583594347079189338697391051016948248462709778443535975156080599773485746803791366283674233254071482997870641171649729608583489175746765229636544330065461576831908294274937854483806535315225238202556105658606153007450912665000731875947801513568903924523101533109811848423802679318585319460457436285546740492288364785087260656228255254981088312283469398326359072333827053047244793166100833229112066675314400650829571705955607161028841172635780818485831958642721467711515035641785804582302365051870361973762738188666309693427698134708642171256165928693563727542968380956469102012180918383927966764177958872721261066550902671109416337028514862890247181695420494156581164641485562125570563979395889713635405536139868359457534121892373150714285531455746947605103741751454460198113044397689300161439999857741380226272916078491983578305306133526793031162054055183405974130353914091912220741586840330364452106508993317939218721474018378055667686854380853095649209313317510820823172568305154139133783240222833675546300475627279627957963902403206230816770809805531471376546860072460233438205528291326464765916342629153456322398805350983032324486583211362813588029483656336933264678063707991358161113568071242780988561436511516714763306841709573493835661595462593952087252722957398727606661747546754177364649955525080667205583071953782722233917990863280914186311785937660018115589816024921947932617427922353480781623936473353854341290872045646296542322837492004468944495957514223578238055413853494279218301304760190437475262421890186056106843757519301590548354873779938016717742027919640833717418676197890543984903590025925129302826791537930536302467776448443830405260944679667457875261769998799179487708829445225878589725147683807556485263910878055732434622172971484173637588008514102328209660525644920972894927160897956214839271978951131373895352202109656570537777713089491085507083813683156896505333873604867396330025511033378271963641550282315133837380548854084680009503696470826770782520701410245662196431626158200456189065294494115944989577124998298184805007956679799075243092960781803345367600593015681222059638299860987726426421032322101900753046973697881295926016253257642212478771390132543198372361220660135615317947760112934356865926401369338151803343281607675794707450897618005547231093836530373287733011936302053962560947646388466917399719647493599382210853660438591943828378225940589364704439800862871418466325563961816841463801626240801351256949153698463912125362438630701437108969180605881248700264642753055189372980516971581727343252972141541964420531015275966800522351636321028157480758652300633187199317803473811810723011976304649272261291038728987701092488358197140718591936140122150332640072101376363435514010873594117387186363127223152309508470599099403214162031790692846156396014073426195752002142104386059596739607309055845232422419710604335842151712036303426161222365880722308632639889003655778054689602963503735779460960675492372584702233977510134221860363806085738324703812147737998952712262734770409537963829351734068505798251233310887293989624966039964091392207996040125589303487350642719750973450721350557396645985337764810436461748123293347300807041658932715866475118179210698861335381798995721336538385663132760820076520809546276904475589560144462326496605915078196300743741797369138711971438753255005540099498209202162776206951965110489610851682268584303423554735412995368608501983241109423838289555657642628993287880700689483703417220924302927294390511542234523968736620490370988932120713068031439571119912207013993005187679866935519573477268937278033481314471358069102515850773047320375557689884806586030735115874256761241565752644564437489668870598019804130560605211948437022470068526367027813706024679181494175864159944125485512356013635376198511647115745921718339638880230198042563858679666312150221778861317058905210400418902252631103313053744532144629433868806131160653357058224670409881954247142008380849192001290690686217113758691473822030268278032285017082239589823000288927288223536411954318462516782882225760219478801350902041195786457804727894408986766731855867712243669513869773273539266756692697282444727931273087708248261746371994955579444785312783824034735455763799389714665282947341448876106105062543215063104326288644456522371867121337456008379337196502570543967971037765373412379700579205614669190975579739167768609405017084068130070231505066791482437868110009628471547826050731258905375426414795601114485808824943340335768800304935478765984732763050781963590319706659783357325004322247474490787906442462684063431773437041296051705252272724577089945592401314822593789247817290974087169943175072619782585466200493429549667431213816690103509470862915267762767902058786012735849573579723526738869097037431237572132799060316090521112529773805449546264492414017524090508253664766233566383385279215785327010932705545260916637818568582763299719501432188199549765419906536893218513409442350597968550970244822925271248360358890641610371828514345585459432702963537604808257702616266106833432649041133229640742991977331139022093121351169834795840375448176275755041494657032470939097760200543382433014058976876645155992309056772823479020722994070487731190029854090779114621395323071200533607108708089167421815474921716519351212262358934124777651176265806564419687253139449219014082957024926584932380893986809393017832244203678952561547093374289091770660014740393599622762926809702562095260943912874410891110158785653519120289828570671683091219331344219569280934238762793637121146722201689160132089785668481064910363467811568631755562347257588366639783668159270263130294240659462975777770303111650786494764155264649486907430467979717751384904498993187962826103910764116845417183200156440373056658381944889478129766823273227779816314373707248493127415922970930412590608104018560234683113284286869194176609394619863447119771807988322718100267405420134940469603675225026923833422483109317380801467185255109110239227487490832367667047673555016121482090876863884183864996376777285510703114268318648250428917729934121531130877733316982629524265724181910272126919257580666140624862722077480231194187850078856529954812001997000266732289622349244555415754525968160624598938108539398358702821186511805101652056367333944186235241548435473591740546793082494513820359274601080163976456931845998071719623373489517072819889610166927354643127290175042976998678268743335061786448833531708714712168982628473240878607591250568048068630368703700580246049561664454377597495083005611810451480443751320220168301933026157553559164781879573470110866361498443569215649230936328240746700766530244489047726114654169583688578046171499110032257801718682022155559745781974247458493550027324393896297060686469963554489223303376538930137521188794562815941233904660767138316186373638821487856189109056512440379732226097367258414790925662516803365449561157447206048287786097417657506359121768045284913483733226972480715162049761558798374589432534201837702734091010706816503302436362021605624912497890701264392032099981738401134674848336493584384008428414404070178481674441870456540803312732340841274750253046042372284691677566381814404614877567667250750448027360956260779107547754328011301107764534645306397939055903359843171553763363867089456108016535608953322195570409521403546460999866649781075728432317643133885623743013431856576576658262084781669355717973688676665552237332096377900833552965845687387743548360000775717802016276156896319750095757816374187244307621661966700114343971964480473475369742300809748716247942585758383079898716645651070752575064917524063442377236594127423710356869529935363557510463513433148579276595032966004869334494584798558513391355741390382911172375497993829941312362789332331035044311031165321595123305708600889598183658645276977029412599371415020838990308869448249072805607709588607153248362553267032025054536293349581755027912234490090158014548848308224305868737696974903994513801439263650647433708913404424123616959632331498902264020665856959375299301720244220209929804302835474568423580766571013030112721085183362813334148927802979989271247469216315889194597227773894227959216832797622517425063286454227156557566302870801001880730029877530093708478604937307666886728759321493452705107987632127861172075871640665504263343277421502544889354932387505038587331411408995730950792677025180437767223157248752775848529997271887132151546693282112434353846361841484108645279953444534351057493283002467539307017776259489993804487545512943456495118374928376705282304601207630729527149509007317462845619404020220531748263250036089453439064243683956213307881106901786926173107822509787520753301764671253369633568044078991450191920822663312390399857888554346656385247562667686557577545488522825759325750448812823722137064893516824268505356850173226892458416798615053166514806612339196071584312739184249814840803149444230551674392235637606054296852398495990776468560124058112907712980330455134372681100727303992025651250319342379487235006584426561834517864610971900919358840777573155068390659569283616472238378614333759494263530456402286292518657540109791279738030690053269218636339777701835567760000510838680003670248189203374425894407764613488258144873605423669186153436528541217301956681438551284167188379896678077479844135979055776303221859923845687868769078040901032206709894686512587887096582235969875998888488424180486267396996207251118460801039042098444066071479184688687919930207594583063564140846925933790011028125233970196652919620129130872293215240886606600175696731875429892917825092114443051170274951643657845641001504885686331551651207377245575184718599313770436176566264428307532018559482741371973274646232924992590269337654689062703593471626152017299346860722722084860584704181509307485581686105068109939850619431006100324728261998689215087109614821478376336886634469131098666208817010854243594310951712395060017431592780143880434019137708482824532392181435898305543901054859110612951896425178999010816526984673305618524727888004090105994221755322391914001840760864259380689857369431248757990830087690485288320095495349301811517165258135147955802235924632625054408027564621408051511449012345583537811074905326247740929103349246358882053171798162848289968132964791343148662054241152368940221375303954257166392276979317443099236372819083790321694168185513890466711765152173410081569784608531839975314884710473206100522274009443332520567094574817300580392973335077698386665949244058986304289727436169504460300076051502238728274324332538238581733580258955859286176789835565632320294096018841679650819491722597980885967378065814738661800269662815649262782228781690502910188590515505900620917379507563498233123052286722441144207188947164877177388250995021792585239439850670832409929998862879490748708181372738503606966675867269160043696065434882592777124490179975623910196688390426487429371608431394010958073312806756955778064475792268169661594762460069862826096050192984872514956367231031280144263543864608062215344670094703362840504820364482612767188794593659855989207303685257972855769204844992351414473169707417719489572447067214393503315785282211740811010225111432691576989099689762848327602776975208850396934843503187848175342882211596962871736639246234396686053813431110941759463199814663182297823129436914865064071921564658755072283502481229294632526980869521659684642822302216866155439140839252262577499167259009122749099238523650372706814654506836199912631483988037049560453147634736335197048366065311439332315637123421732952509117267883223482124406325861800343654281749249581172687528333404975075673417144745515693642159364331979596237475503668563801721294465058689309949724701411043320656809456326269660219456834809682439935431352958133290096071385471270949627044620040392985656705311044927658524549075028465285046033170943943585377246951474209090942157188472694880651317149638527228828900191636045815516567007521688421169618205236116691180146114161215442241076400297561562705981815274499752317078590775040510552076755076873956285363461243016260296105502331633458691431306605310707701224185358692619136712257104454049242741436152764256275671968156544725724577302978005950418859638050269504034046819288992412018496474985244692440503041335895610218317663069572318489452271475893640272101010364004615980404569783483507451334039553264717922230369506282281610342847450235041429178305160830896587338958036423083007178416512957768136667574258796682564840345334387441708978410727085815006492684150299587311189462911837382737076432001471796518344842422298271195385001689578585380673233163674457122997142410543057079303584204701288410143109647236634473399155594857574306951261097578818848670851009714492400016571459920130558968746866370125798053094106679431085257424190829273332348029231175089741726163200592495189357047721491669375118082374940513378526940259426994963029769783527958114920775396233464383292494029109986691131219000902928503386006734929642281674848150839972229786191876602535598648906579427740050806329650767217592002898169583367233810120774839546507994928994398693857422257866557788385483678406407778153264242144753266450187742922925940927425553096031821360307681408276352243945723031624061475081965941783318259878013284680664677358539927866341343081942053734027335519123444790960205767952612986063869752549314784724668070541886237772458959437502447793589488913463251568885357654360870112992252793533748581389189570894182703993941626559459723034988484414525222515268635065005252471643507297997763731996583629591609441825436167335486193967533821591911850098713311189252725356267939332390665937540870790660683653179475339921440313757255134159273940541900441072907608889532978735447420884327013389154210784317575870956453033600993496501999621825263295084106507477882362714393961465382927918679811113690884126013417872093441855141650873405951077335219191599823234922818531953564153339639093293634198440370814293307739180937163769629195499482256745953519816092550556973540475803066197798261325004331968322431572366260649392861891791730598388694811833119466632963076721686982335332981413243780124122593578951528808435663722658074008177482513335488444414130180296050924426101765273516138552430275932501645164527036167568570671806364402794935912989954922213409007492761285641757656537722309476317180292167034496840883624428862074857227231990980827312388371602278004597595110047436189119676472788163592187670900246235124732672373153984043696429080356085322697349149473791691842792418999096950232381489485518816188549105050924977530119045429561642918028701051986163331196551623560841300455006647393853240112668177924185670067978924277600539251300008830193304249973989217604600867053743324410725289905216597794855232835768285023343853263965392535279665762281903253688952870329668473252874821814486138851284223502204760463340746136501356358579350339920711630784838388615080279557996889973541841833433111579814260009512096014052783671251188502759462631576162669163134754213734715965552074596207887510365419872021023703107780477366259268946369559453571354959155126435209270301889217350494037124549043474966779856324687636047478813379133701750414945839304065093852476201337888510730143887049966400539428176001129065867999849815997546934854928232345502801738061985138087631080473406731256195405159402313938362419951596898850444941129653708714807262196267313972027710387143783330267296247696077498510725310942319408952201924097433147246814241758853167103659594168389906991801846850008819711431193981637530117101595693744457881532814601065028413612655449165905591284297047943734660682337812246181741449458041037967503338199577382070812812931931021981703171363929488385539091991497811956257803998731231095268382388470109033560567273551426035803323602969564714373345492458899733378490427174288853115508486612363109978169563759252460344263047655402571960020137092413992035522960170039310778501506785437120818787511386862736802242299208769492973444239102703569873153970008938562838064860631856842574466032234804130607012065865228140578120252358158055495319293216276733925712100523699607905017992107760537288423692941384092298591727813953581811199142251808950037725580363362712934960396610292988235476326719403396465662448203501972285770171343607943747323023037004536862901674990852539098126427201028421170495474245114305931601693871150370782152692446010781620998601179970358186006806632163190990433476608888038285212247336699331018606966679054320785526630363576622728015200089339336947370761444706393895478261459045752521826339546844427045829781999974661494079273778654492916092838163835859826161602886215141934218683220731648938431856193652667476170018361861319600983860077342415978038842927717312440437012168820717952738562156649087144012270430576616488088869166449211316553536073531958718948116970045486615354219427984842244148025136467415378023147648739014380945554778049995026092516618000960311464444495080464123950070739821903994591666892102284625523920070015627353653086427090960897281793182219009164684129553205741792460168859511386446532382847910558405490670672017486343806954542997639466254206753430965151772182951493268113545671058020108088916330728246302996578016483884367361586595056601867348322090508795778166198716699223404443931710405429996162364773536153728814140938402484957386919013231813121881466705582346916790724015209012591305289807829439258953271252727537588802004787437995481997594085194065135696899568973524892621015631366353831095698471993802080105265267558461053177194336026443470941977787379358863639985610804337116553993579188666344035002942395901181068316378161690269171433058808512965617978613128370496111896286245878276405444925042769845258388984365579701528809102943722172856704945922209247533028915103974069751312686284896081485205364134445685877250707003902833778196368676686009852420246318054305739397291467769863555161624367643814022880240895889857574799011618934345061512463992703489074062321642639839740987677608906359293517300744070796265100900377546821917354433762920579156014652698361626426953351419736172131487913357886376711638972148146946568763614729636166939602200257600639123316810406396059464833884992321034169375018856583463165148811676108340000357213915430316735940518846885687946962848675521332271969707685393124370467697609418890758534025847586247892549787858164865978972505745573071618292419373471978039194008961506511541452562274293621570662116010323114096415275088820084552864175009363359546569267739549687209771051190420016530558593905295844313670155867566659186959052766560058425921590174662256016646607517362727879306835540597489506949682205691580465977896396058407648968913414744969179340027964326698024747795714039325024462851226452156860525004661277962413618859868944503764312430999919146335140389515931299764481531145667754262474786561845820432572203827877345617422341552523019608382357745213126415626720008872845724626672200635926239377405455002271978587001576937197086774686910282882349668524012777418897891182366202095308904434937883841394727671626666506430588017900453647141616661483745088794365747104234096326003499007899415339311992634752997613710461507126796078666255569586362044849956737237312284097661203902173647138000383594900936393557158291458126011711589262221977662430825075969908617836139923674078458097024112742276908302148677671581861546833713529958738138578437076140279062958991289334781287971130700913532966944636579925330689420560423520504442001310711654254072721176633936817380663853459312317388802533787645175931304566118987425880921353238998661612581341907447194738832793411035669502595895566476978372085012414082627325251367771187242661510658423202619666183928942086226464278678741502506748168166134397164617369827079661050453475547450014882702290110936826950423752142673957466777304488968517079964477410360740817194084312843331225572107712279060594974361336524933332426256653943470804268364511308443554357635892806970378904391816983317628205823736027803805218663735706623327418954696664732724319412396036968774986814412406980924762391305026924394837358710497591549469601740793250726907824817891363698980836448968868687058410780160446457530365239490132173464635456102879364652480322953990176029932497728424949023045185038719235251355724904532495587651408111230798245230478379104042480578518261812972201326498455635744767729431344898305772814923095388584306087672206579607529328016080478835091315907086650698540934405337184030647294528992087999916503065398679324230651417273219657012506866405164046788813184355313738184667083462129023085046318623728133605626521332496250841665831707222266837734835363545293267586097709555383862310421931134495152130739256799181963461438468508759436666360349740709380624704277316487913091078979683615364605408348415029180302972795311370957276185289493363028962775125439319888227290800281795175557700982241653471734013776379289778106846594483715319814924888023879015215739013323369228469362408568883801775804041501255287040665196487868675372923092806956789364833047248013102846500543169112236446144595117669988662905599999381686755971636972009925694167498150319950764240558146531475984989981872227608886388819816440111551021297347041522706379006082522956075882410714812872636703927803285316593264087942813796462905445472358115064371361909607415301958226563304772755731168039043754488923375215099070776915833969064253871316656379148525224433328806758310551119944647318240723858012845786367552546218537607176506682377641546375902666443328213407060707844453473496218537488548469190794998487255216303842005619470944543038162377582264262715948827228206996601829799315824535810764073033744772560215535437078855971907789018675775253942854261783890305350676876497350965167699865107373394874666910844109227003931100107002694108923129170542894521474752871162993860696779235245908763639194075087777173633937755964155789663791685967604782905368696354756937593969665142251655624221493719380802068544257677557298964019415625291993484935899895327362420642060601426029296873142840070151945821770546801463777873778572438662196239133569269759422700483678919064443266739021582985116365341646388584942274304381075544391502971185259413317404020185991247778582164365196843644121941364411049817776979591656621636765130316364512698612299199535125036922338261268429821728624937443726284439432536433544952069965101655062701877648870751558713758293552521148357947260256999266295943966321072254907754935711909170807666179203773329736556761057195673494329611882416182182252289321840745170051474114581370436689789705358774896143730734703270100106654041326587899132695108844400050191223005697687227317095106309698803045366760579901358720155666314039465244100477053971706621163741453940653496127644495580526568281450116382556874951706884034365016661022200040927140714049785768674853521118699082632212441795989971024458518152169941125864335926092297940357772403023673216875459871356864346846790699927956164638939603666648154983265010844616898671194706440677005966128109455399460687883297878120889632837705403381083040014157361194564128940694152925985398060728830516854248785161309700782312865961350845157873188904647565457601719653913165310049935918766128747395903747004973475756483424798674532712363736613435359975508136614146775005826073155924611989220900749002907865283388729369635500412166030905979728804812613148977084334511868397232864104895049224737371033914400149769635789567280385285263130155952925090192084089981827558706253373739450462745475540704227141084169716765211915058506957185555492419152771353470651617088700701324817146194395124999094800641319148211346646827920037420630724581949105928659180709101663465162645402087727167017074185357209760114122710704703385215227859743426590147157559510544244272002279097541368264242448654327675677244925191699523082936661154395359903527871162915438631463070066539880525813353198011851764488869784067832208232794437889916218749939371539134704390470985995371371764246307340469267717449909190639229011136531303053256750781108571949223249095294565589216164000464929514599772362955292152930633280938327954909826426619714768029750378940107480446615751996714479961364889296933807956352161580618682173835743297809554434212170557480349184352124624840317573958930377415826633106368405832211314776755513220826219159246609670464820737901970450749769690843083780517755604180850417097542778617584458259656039252556705989502514159022549871284111491352751390876458003256255391244502902438169194820662043753604112384762459614045053234206911832800875904273909446411096380307668652422745208840018001244160357446228857004303468660459548890757116668936148283232768060068394901771452683913355623457315893358471761765937330025542904282962667394601295346311254408351614138901904489496706091646362862429339898965030256003003218598610010914690003505355902308111930906627778476649557045714033380294705344068473020548820910465787376239407749445504272881113738927167755604688617012125300023444989474722098664680371135415817825275997747874836824917972925603704059774719719047946858506307155249178916042096674502089202437959458387362011676596216026254303808317268920613630969842540271311189526965210004622264317339506971462695689419178186206757718043952747378778713592938198749514145536217975851166207808238018050912900129837381588389915637678082257721542795095725680251872968711612384276735226120707712232031192488440858405884585797551325625975870189436172328856195419891309335948753617878608247690482882481126963124001390998630288297905619689931656812957154234464586103287413888968263484217329781218562980978713167124698918869615642759672626154943038437922673042870388735396068440022493611444490450611891912556034826083457613199997838144149653286657421769529717967167253523318527249622736622701675048021376635752911218004690756512373812978098959958450381945731206243354408362112148276075196134003808846587136216761843857038056695441096485559080268004790066473823292542192513824599162180130149695859307082431374092944116070179391636881444156349199417716347615345764154336620298837519424035021059424404485474918347363936798441114243138637246625877027368042227119446423917964936689910627675023938631855384686039293800455188312844779892262239746389846145358536699155807125171857929265661584092428179401715913204366898639068238194405166081606054867789497896263174745746165577459710195373592762720836113728485686313161289872656035838659046817665405993089178255672076077843942312603087091278662980892534875355883502743367574022290970255410876697203146923774901790289614097210286166655313381125672846440225886081100108817694464908791108317751142416942190910281744893146058648329366842653654324329014043139330666926494801545787154274543027843156763851787181410742715481366539569376200562466311860674946409910382769156511884908133564009827385595303111465547648347765709913489850563668033117535034584976363767225156316121267563326875739524403799825625483823821031608684858102223736669676602203533505066091241900289837244815391545551174161809733012657420937436302293984482900814706387631634942287120086383523100787332169459420714918853413164826501080456828525393884126393752590802804172574559993814924616086323817244802786205738524902441869554833704534400686136469948415528090474118160807522029141876836714060053557277570820135530884363895018918517530671233221694583237905202326366859083002855575209805437032809243264332340010974513927939009347222702023659643500243628856190670901016812113995123056720134550958087535295354131743484748953696763079571880251998296263241325580320638890966297794870500280342022259096597905843906734219533356091885409331568199155518207985679128263467070393335553406914236851475918755427810897612336565373026374972610524163211986017947839443490844320764387171330005284814856364793745203752992818267677400196614143932192592099232903010218200378522417086381085217735985663568440561109767050175563133177038677912670196493598077326135852987783638409479489536010255133146036456891012427325555216389887996256073408823576905669736433542944510022197436653598736785238427102697368064583329225395883001599418384625824597951337305796897494508520733616237223892255435348842104752471967747397075583683274897545636537971811536265816834138756115686900886158438726472052622446102435690741115429141388610156633072281846571986224260605052717364582140705671830276207222672731085871989456819202366352752236145151490167775977552818630300879805085995115395068474235712115072910215111120825498577566701846253890867247625595026208149798487023205479531922209540977590842926238533800599766671794968112234008757925921721159003527044069259986617699302717434712090887896690855402209388305672079573222748462601299666448772293577963200887662014865642739816722838883865289519966567725168189737784734116966261258423125511433079455359177612332545031407083130434265587461154352908587681513347062293048873995177443232382241680234458804720652571438910773947767118925945486727952349061297722483420394794150874466843212974401815796814823476847798593631091944799286781824641300404496076506187306103945638511917001024677594295311864401521005231241135260886606044435709920929061474368255478758960804372880974767306771261544578751570088342709074620009639964799620105070317827014025219088335026363264244248155010774792843608223012705051722850353094490084661700633241696900961496353611728757293995447424703697197382754465155562581760907299776958528139529528996125500204463896007545638433809702417260263212203646437808391197460410134682711215755593618022010465568898473242643973556423383211084501678196075576616159846159582665618278204499069234681518716722917915953704921670108451260883364094652481641789239316091880035451971192992360500779424050268296891802824844734279330547946827365756024529861475922861827570652894863274792188786999667585156377187008554865330824833129088184913026828796953480560397738228915109533762415492713489665607708867481381559210806357869346980665323837681131373907851372812597691344497390149469528046132093284116867171263824968448473441189308169379581476945414005301758273294129205769969028682552337043195690603630950874981711828135257250934251339865544494940767069257644175049119001018010477389457270182402893395565684429988096070429990169925169590891300982166740498161531038797612956442120116235505158668431390962544460137349075728654264388979223463566815527024381074941775913868366642225089302244585496911837792258949867227843349925008358887170880136541413477491843401780102308614678478747180112304656801581264797384194434118116954704675155230015379296384928134170527555482355545762092306380049688958510861589015647680828723620482229533558589152044875607324951016869283595830813204218733859284587169858673642770928445048051775360656005960345424646005255102458333200344729589726813810140409378855761046260996492860981097383494848878686751060346621964632678735811280685219206946687318577466421736537737382919644702621924142560673122266299251535429413120725202829893615880942424678609997854431628697124255765367873970423464063727313172821074858980275504693646652767845069168370951443464829943675091480303378758701267815129132361631688290614371854852473444787001686417158842091706920626482327594864773052707153470342263520100183184132015558193250658817204825389484947642144098939595501227429121454016961397530620159815018340917937207108277481453689440380444380408022483944555130973655130270005445296252138012619424078878736465852309538608631746342383708465963556396708839879337337652365402536342842971215524564597692128067249258343499724924046588041937719999466944517141962490401210279347004159930222683878823327589573239967894237746105522319248967259186911160105118381985409666407712482131632764515781469953825751926514350737318724261741678783297141915391142787871136245953660542589016508786855747533580172374907910137195387841578522313146685807874627822304935437226375551413328638181689025414860333721569407756848205106868507417948898562997449456654956771295609409825228816966406452978150741206461507162537703233451275120547361469014332806147031769550341919549189912958228757259267991403292457882362943191673981690958983212551961517429137507887209545849413549898117047736097348410378316191323061299150721447293236834033649152146516768495701156198784162567740529112653019583439043461396956439892924337985502833054360980198091692937413727049649156474029614355785337205842834000310732154756218637715584472426081719663683871182068390688084832763392732556279452558891625936435386978745052919158043343519230633745016673680485264764411455309242644721382363728602464408075980545847462286782462772345019135709182421041407174442172670079905128362661860687326258890877104779533419658923287157061953713686968576497088022996409626399202087773639807868084888868677855748286816890049752862158192378873708053101208128649666507413949954277714164940877469636114739150072383419147317822978224392140965543347593204361755345774544477507467302259662119274629938531517114270785181538040094508977835985855747529223462986141460427477771200363827872550735952231727029938993719285222926528673131357804157200867629682854945467744493168062320434368381313104497136504902112637707258055807748260343638862077038642490057592042110093887638157749698219659024008002555494316144084177367688881275923438289848974296127224618366335931937953615115706874547706724226358173127197608747182939493184726891124206563386100102010734458309073957875809628419617806942398374900160834139132145679399210675596107361333375473877206272734795667916786656645294728089874353299242378562440365859218752940094502787581314665096776804948629725963720937858369463771169511336189945008722285264706706125985550404391050979431914060116738173317055976011662733072881473886804575243593418990224369960149422503901188152543074700678727268700561613532451381175832128219560537564630155452606666382707938989109163312569086103913856108521635666884321923269318570158390962682469925794475845850287445416049689861621927752122236734921295171698827230056187542024949411286893498474030036386950473913995228080856843201502419773316637632414036556748038307468660447308772331008571389329073447748748225344610854492032293404592102647180142760272393810105591054698645740896598181109617006918933431242099815857327268621941219067332697628110184594740593991312350277373973904714559517435063330193539032199215261853557465111117224337910470665472073040184951295323809071106524733722661727873914784305965309462666972490832874853995015376495025199681385866773225599009419832640693442991858688172703703751334858141900832001997817541534533986153511578486769656977011831316925067432180033750432057060363770649478762231210311568740288287646013929594120799769553620639579679920074776726482193987745016526771545348831275845770128829529673343018321333344724002146674270297485644510337696539410970906856215909980221513277411786256669361168100591658191345546099832721495737461985893036717743849240973152011334690886768102896314089455064040156178682351164089880389714858739207189252377972045868247896084479192372603296511381359499976944447530601954124757618536928334544170872269604916796328110295611350908663444866038074744269721665819163554674243848441856654610807642143872975197229523955380599235719104015108227854004468993616205729026911187024313989320026549000196700819046740398233621503987618609390118784587533715052831689209663401222245995055325435624655786625785538966141259386745793081743911170967299343561469388906421547056182472474023531556565286040383076813174241254463681204000142747434129581571944127712215182765197947121960870357972945231301374268677519761622015804333557446377694157820230392990402552473538406947968164954005646944153055811070485880875511967274277871770033546012779966631762630240952336579743653291683628728158356692125200223798862248220565117903866914554757737278863928187433821602928794762068491305685933237579267343893345864607954090467227480107688898280213410803923567814801598078356875849358490071262922259374828548072307557311515599464330756391935594755234195595649669805308917286152793845231785325973656984805895205706129609891753398745682725071001919675329447338010140517233533482679365243164475486699165736865407461004841726770182083236578802990225119139110393260574990570424449721358018502445072757146520635832256681460279006032703180740963793221795015998074851535702826383627715361607190264779239475356410482863688015380242665571701080788962891168454080032319174715910549075816413316644362501870668555153943689662013711225923325274825812391946569360273505487134001681678999898249086014695901516230729882427154984493714740408139745423279358273916179442366781275984664027883902752150977387454249904008445902151038909501610491843778972600669659643400541460044103692043123621413136020067252223080732651977288827293985335002611640856320254442257715529162622260152703745297020294520326592952568161132195592133489748343209894799769804259221660467477796808121227965968890388229078568196249545305055352158003586184702430581069055661538513225789844689675297884501595607392041103331231654559554411325316761221679556703374881411741632526061407167046767406082954034876148925063288960615804826146227436441542510113966833883359011700463088093957849313644851083105576044686613049910710432163195621880162278450653107803487625412175765220509279349810317708247476460879939140300646915623333262980529312244496228740372324324607046236483293670327340150161924644957366878919601287321023896285826956453412522584669798725131646285199229138151829162148389043589557437761219354083728799306870802611815037403441004536372536916833381569943616309018353385232721129303466289726419957037210569092039242877726298261300065548924298237665705803031001815724330876436999709560055701175426092162455485258022366941688095128223738972931003291864267069945876302700670392218255373493034454232612603994843092654163290784536192343503883463174378646582529006237122008469513181480902205258950842474860758205241388903552935628986131797748505389346984744664326902010130672440856297782683005548540210813450143386303052182181491145535989220228519970531438328516262141288714687400993539137520889874137198743526804917526826183648551477940115132408050062796667028782091750636877429908010535783969434363704327520362867058535604974860962891825348251036732203722335278740059222190184266019569078871669243831469219554960065933264744372380778005491314254906573432789227096985151497300931383331517323465060499621257473503246170631875051892997963676153372885566308865285787371188015386738301526843880628718242125686451992401141128192586179223787316195065338588300686470465679566375112410503388886612586910229865673947583233736030356029069489203587772413137261030302399498470868697704932476485821897034726299142135260188514144927366362818674410813586094860548162042380975212071231135561514058962298743721335707670012200608477846486326059652721852632938866028093005635949443314850078365839926930739669364775024099303083301875979588592649622955576208040088349431574318351555427840207755659721859250730882528771194194808539146274764870103323223948037585240345322773828973709979987769248773383541251851062075726329789173416014190591434414620793330426483321976008558406059340934739605381954643364679159670377345874384064264982748307909766404887599630574665436741677566340429114345063219998460383977202390711540535252585731395302352200284715180930158286125070239854412063993052673292294511948991483894154268597529924367878288694998078577697644176788463055709601052579523834222068093354037833563437954052483886961227467767039151186078806251028126939878646788751512961730783877210848962518676204651205276345602451999850107410648229951744894259775224745747964384557403849756767720025779473150309020873550355410575091538872392678430204140124016245108037517765156209685041888564577208282097555435127199128654707814530567659995958462683839205938399494587843806673922502304216209351752543447875489434561433666979918902135359724175676316698335600412633286241196288003949289298784189228210337667963458960587934989955888297098758765079216814791353356355784241364934259013394758540604667979154168421201297236757458152460868845191338889556344999110204315659821948729151896835797371335294274194082761060638098384273117901751907986278492887083271369775081207350105065149614514259263573539168333932807050884603822326292347036034123073131194176687762256289329996305426668140406312875371664254565644565603789631805561225777621103822632729048466394211027265276853947642658098639530593830377611563282678174028902468399679429603746331544600545384008176026255769270424377794343026336372382722338120020231152233104864299725504211853507719187213932828470496242736538099098128473347867748989274511680082604787143843596194643853838776773503197612446826905007617590672686117208132083926758511452975388633650456380622894044051743505351593597495565245787399886855119676327343216450439715420004574303752478681096200543167212775314691724176915408308963519891727348511075493356325165128410023603929022737149165816002756479181844560608535558073855505894453536752966659576388636806326817574592235214573075874447232250716720111804204629063978344702544109977375360511314317217703598444030487438970683858752347024052892960480512821470160762666954036477778567391233888322678057167448518204960653602023452907552326574404274828722374717712954817669257625165378163727655908276599230094116492519120095831287220841804438513305462933438409066973826647220431478724513491277796022030958666508072884165219513861902576061968373424079730741365331895965249759100223293752338629789630618910079205591520204866944355627718403244309625102431369881503615930267850953576738687487583833302847272444836744463577697206754922373675484355526761111773639374310674222293632051737751732456292572194786464353911946907286313777838963888345252100728699114637945509051066716757126718335783018963442744536340621447173771201392012031461112630034417815598311161694245268374470542617243053582291918520669264364140649602191866434557813544572456672404748943211239141175867038523581178752614979310412750193209027199436268331522241243549972578678432366490300491071652122058225748764841651493931961957907238792819602562476232112777199128593570210265533548686889100250445554974218329617284968533068908001397993450832553548791877968362241547838372249563489273782802423724514989990115287294502627112387960497737147295822317778888522825035555637755643697867767624915047136548702713869310594537594385937278295085002524766513668096848474195190425863392631111255093586076844159032716503191272218610548571065092982137460370638015969622011575099034538539374301028504597691919253497279626484328278007928288364268467502244968635321631605578619626743000440531310241063761094957697414642839188601847341263490414660012551928168023107891357959417350990790515097015957668342184479682926307882656701306253665219199134996303059289102901552595453094944656453041885058791362552884179504309655383537073254461358403812941823194719605584436435242435116687730196158051090410469629909568544709581145268738203426734354780307501008792771983999853149832919051482578769650968844324643820225774733812125098089072831453268297726001081403254759494290401396467978919799622701667513913851725325987022003543266378747016455213758304740727869602280109707232251622099791413458994797139131904637448821750164559598865863217130274521263116577900904355855383169949278839378440423920101764713926752061664372308159721860626424165567327978004767950459653711706160092137060118276036290950286102080989103636369003413321153410451327657336256411660190455054533491707768343613594732819640692107714808682814271514222031637917224371049881189117424883473077015505333621169426282787179906224622431056537911901009337088503475573293126994168689711743243400916794929214998334278450160944000023541994960181000478416252455506046761469301332048855485816237504440093438670718998836255932360966937804981718637234995006673463192539511428787002053069484500701847644773870546021234932466822516630057454809251358599264700848996651623514550737171056158633052871480660375287855730569610372770917128471906074841492991355137337854049060611440486904087895285353411224967064572148733047577431739345831787912333604306575800758560864689605670864245594708203622271282589903983214964511278945023530810301933497044758270085815292401573851370652329710555048619143193516706992865868370964701944673617327237428796172001596558353292081000262516457400447083431582930038752994151926030922195560004802916154883878216980196369160289982800106167255787527803799638500622958783898697136133282807357074677039978876665993262237722705273613678555492641954669534456398714014358943044005515947561280985772979710425175742046503094758303530878324580341711601631157228803554724801179993893799767274043062329284839407274080604018082670588625522703592585992892290710837456159797145908781868441816151453244583686340002980807501586781593147986817051121914048165453076200654026898210793093036840205187638512187882052346191339976161765320660691166141957202357589432068293465799084410493380485373587626192147598326200165618920670062816765968524147488467182813444340692257321609566240009719267175907422074583811711630465673297862736964863565648433449503578538777589276160004926991127564548012660953680420432070959975808879729769419087417657182080268951028013711255303648522777654225491211563926064505796004485982237972564399053806973115678428711642149755364759427985119432970189019890366805904477565464965045306067422913593364828744003294473275466876112996687331062674570085424761328505238201168739851027499989387524236378634003145033315065870591121487112148790973453398717460595930929828975096207656018806919691040073824965872270535539458359581149820717924429092986830518955840950765381265973561524288287403741212360368307353807560519617343674097799961053525070632147336932201575839899087458748888303628020319743537764068467795594886657267555609247988885961312931552035155230753905752762730372897434455040177261982010287643831688945240439972005083247440490023785339361737425698755405727628896940466463859130809142448077571023383411031982773455387722792846153312319058840746751711650797483198985975064012286720423619794571869522488652579898322168080702274291523371905065825018910494708236627517410062388976823547597528043658629795560036543470721817259087536141574690766595525376521177873919038288883728888522252368835026484805750421540858643967752579795518318937643996794856682980914127275935515554396584963044314908980229162813505572812971279931054553436501324186065356740610880408164317761633752836436996505653919259470416286156778757529691028015565173128384903566589950919285534511693387851874404639395739903180733566922982544394557379309449102389211036140974254729556632667142453442258925373894210252211302511364593123629729979728694087105431104787266511145776228186489769133948809624967332564802533939775306492581364140414390511711396401007847287230433113674852401474678756428970677502334814221671338889404635824459497987552466365408190295514018057976171909518149834185548732773146815668065357254601409763691277945231061725296396646267182861000862623916334560335600496077874686066342216440552217721640890499987733680279465238408005891410224560527697237389482537871184484731231803165198159565743696922536491070054815398348329221285114561811579002021072544204349974089260101236699725642815884223526937650774648858862610421727798230172444978953468721618378049700075067024722567891169801914687726719825256417536000207062535707883157181116191175794689142409709241699265109333742117916412256750267882470048798705868973284674574712824153034200232235367219064542817430012786057909017390377428271559925628908635804697333362988464232927799222637649214208177087708634517569477454461625504574477867730365396825133840464045713462620212118809859411655379610510014146122757128497591858765571029998011827874386666567254107030946217175512479867784490152606246570706077799647324364331202655118122903837860394764943239282351880311772017253093553492341466939104029212946791630993411930035282501119196783175820517233824485053014733026511671934588759516173334775635013143060445429916670538722321388161998414877719064386564438260454720074761654383079781900531149257613517348975640539205631383825480609165476529304573323961649708745789592293644795776402951747772824723816480202106282233273350311599885647856490304194699347877788852628907978264121012382342148292648911551005050742283460821600904981138376915490457208890536673262227381968550992888052758462379458242156666015327261904894824971188933526236644016382070158882965672704966961963334324516112323278154764173786335219352485510138744109997298022967988082794612009463132055401064834695849821541092612936338063277292388706560426362922807504719745962889684063066049881765549176916608044765119808147054275177334245302499987841053965248043520005166104366174187611138169928512217307272299252441685600001384839707839412842774865898172541868464736075624512483433874895580745425403603403910289668427646294489665093529806145384705070551385066730481215961663943402928105247067762448619415642943057612550929694982621571383970282200174428566896409583019103738252443880946670333831262116203123367757067960562455347902144388751657955506050683021756260593179958690897559823151495845505357235696037664376784263699050014252599375402496428283164025323960082949904739421340347809535920742048279637274979508185174019753370410884090698283032209282431816188147786124418475766472799479223810397337835367933955045434670253142825295264660756316730777538515829356324809574112425873638191985535075703505983736506983217565026385399703996307777879214890415844640850462240796750031551979752615934517675574877278387114098794708570078786981523407728237019058194538412522268562231007379506190562854588797580530703162973791948422838270936557564341289754297357659754090406473097148098738643040655871137387560655935899536081866796590393686534680137288075162022980305398079743126241008957138706319436519709347865166093057318392491188295261819561812893858329492154899218782263807112336890574105181403771520023480143813982162672447533087327263018384492772238982294159961043639897566652341973659384783883624616681429652847973316491650004425140536273653103699793198226862195994868586572107518767481301911768980043792383486470780076699996383587936515137439010721261541723388514812419998322569494905430353331124114903276296568769950424756150476404496192491211762808535103114803482285823739513014472218329011044212510740961060318005766925629689219843833458680608058698277699716912258513746671449781474823921535979412960372332370526232643785872715154451355513369637521433326881034224618329424461372695407732320706335236998159915895730529845782887695401637531460380881514779448003585520506616496472795768411774565643860127357624430767921561258887434652489710071302417544170315671635810222355793485630461677202567251729308783676077872182309731920330635069327472552489743021067146444343902767912669373032027275587308427162155880796305700585902076415119054673895017457035870819778568738336395640994716888217038747724057069018317127380567389782397895129837546633977774961900736265208128056889918764894022676282558401241842884961809611251872747884450757836322176794097921082122851463004171367659675762642456976006526173599422638278962207423530099493428321110960543909424610658302325076903354152253370035091532769700656980005607564111074232075317162767301445229937618074902413768162442667891745545763736769465086408488649612201453263027555065765305856949528921390935788925983318737742954680219197430757009351972203718825524523371265332230304382388251400500209946495817478325719703371528351321259373190386739035181709962479280419227634806302672130111323159038075036700159620323025151631446499657900982699495738645242735742052269018978705771695195535137617163595973876943952986262159913984091531635829634469557144139148498624897314333078263027450600793005145939580321056215106791881572068935820711916712544153369657499120022502557204964628593985615508039377812321143428397665650874631553983068313074679062072343337098811381975744611330339964150937215528299418806587936461594047646923962617004016425358876361645016793927691341723062782318134240849491188901986038803878498229139006506572546752809826974792502513630275969244353534637365829271628706777533242733923861418896756808774710682653234728230693485250974734674683817883170652124582193044599030569718874165148309566896130212818183467956050894483923479534513464458658304962251617046075092803065761928508193033027032403701723381092099181062470570165579901209215511054584270058840789574845693195801249189799142148495212634423292836314573103383348687571265699079533523377049710776511541449279303729410840473397724106552110288889382903756733290729742379467299553670560035966303444968700536808831321203055789703397749331791961465058579552773126825978993885557953662014602264452432159311680114619140756218807912619453717810396502220948568160633136164193544959234571993381970955968535099202350403589425823109993049995297721806544955208333589368785179382616011619524174815855631058390432763289996380266263259189516683373475819175627977892981940050016295754711311982567270169453417316856973937113878628779197351514677163880468375331236601524736698609822369990403229760936487607585504799242959464979710567082432243860157255916540550236072208352434318981873496010592932547007376201698441270952680080621502014038225958387388869149348069622452290894855849964268207328821793605874780743919580547223875238451018874676238554792441940018884523734601332012424279651524008673960301608070963158921741043564624661574308636102065916527229800875151060591608697922311102917778829711152103281146784668044749916579270619097203339298219759966452393278757971104355189527549902848687561869471854825421952112393856717417756789358362304683923412140066523569631339881786699616128503625707130317701910722306586862327635366607237501162536568886861681231699882062236671959231730910512831972956344060704123001678783637943746462117442427519980294134195951741094270948493650517273399751072451460428923040333660802703086109783076941911012680678457791369312161068339400288278245739824647243084890765404311611400971077746151441498764353325970388753177583131990307154849506595276606815197000631538975620604875782101971255022942899191944736903455183960939278332767220030073624674425343381687266987975261464324827569258511044692529377460926764014134822341601914388330589502456383286410308404777371500631460365832782143546862156884163707249831293379187129932740038123263280167753679451700682869154203027792287294228526701263017679390877005408633137477861266924844084325283812574198486651152534982614549638584506857053276255059299010168508962519420518536591283683750567203407942415107516695653685884004599110331522045602944122258672207029415465862610802266830879594551567672964870499473307965608263753332416696865511990342032944888073655038594113787288115811902472600224043384724463581261659503406965515427540513772532912856982559790614903053788993787254470933927966844570688576644634730724559410630590001102290154563118710123500388140843768645291436080965728143465278162873532912953122732449532801597338815031478471707443350466291162001233199055860513400879363111729542111594779410929907597784066866735248672471952835798288434243870992099939352009337692441764819527074121036649969292717477068470151275671863069972878180698443631240502496349441328527753527672085625685948452165782192080603854596393062477859435197749640415517232524112382023758723785408213152500089137869055922597208743597500528663352651488798119069526766948970684440980546687170060972743281251495942050919460818148460952500771012332239667685014036076229053764684794736541927356750536941780172283989912513964850493956845558664193612608586982140197502585213022868225933033274663129756514499762922088425890597950845425100427520070650764140130457583704521102919586123103953910406423177113102437135602600179025382946695365992462937619721329756922724478336107500673089028287062044013874612519086769615330819536689142301211410036625643547068563224119444395541369166783435077505108060028709056052677845275611072253015735553919843520854958634175295533837220188887428694446280504786781386483841293924210762717485756709537524379249959041097309928515439798690246022079429923907532047192562240363024574405135052071553806795381722033162442339864436898585159460999015318841716978706173174416969831386745097090645706557295431818374467764631240519726360961498115405517609041124307440782805236290831955298815991508493383899063330838830147764460846288714786616328786617039334666832458072953840597415522089938821364293543771841750841166842515875413443643484604644738079000965167069166760385917400717300826211119321609468983402108512044815892661739332181167025503981271481934152341619262837698141952533090467330189505737114696221119187975673444062722941094219987732844593974167320998617694878657629572992558687595899373830972635684170896182357599160130632190902240861973323329168480449326286877267795624182647806471489966296838968565671561335047127347859206011412077229439906941542896919522283363080064990710464523918518664298827764213932857288930473263482603880545189448945128545829001095364853641365009540491265624835781660427330036581471121497642726068546671419016456407676210561750980701013008011559707534046360744130836867492057711039641787493149796012797852763543611273446039470639371652422734835938540468102839645870213807090611478224543128984968581379899196701414629509416819951153820944428312707263255758063600552929200242409366031090650983684778570970439661738168598478339211983417262284528995079707901911492545853623516230538253338613033304483928991715119640298467581966605172991314307124427762701698829118810525409611849445400839818144941014342308906604815455273335086261127456700878868548936703318224134463128959237076180214188070364995473822380774387821963054246128083784517607864164412812174802698858886592483686859179873342672223553877264791546276714040149376968898924850841547528855667059116839741197118153312122578399939716308316980496556600328862878648141953733266224851994973036916780879627569514935796138797628147263877578453325334544093527768780970190565560156338155932202669424429694285593866055565908219799354228730872890403328557683964381206844937048674739939176949944593766868498938027247660193031744856749904708566382450802053496747559497432074619561345110054611186781686089350696066874562074936606732674733328588073629309987610786585161809713709992398444065028978443329351043692841149890624123659273197658648544365820884256848115927698880081927883947064795094038543162651251256761059994926601474459123297463075109437397191446561709708218699014320552090859711889560807163909680639849570535399876917400208180005926893083089674575517013622936643574201192474114221184753908591325850011997377095386106783064501839119547337523853313006688949372833643101445823839490890716545887570068816857379944609528164633217093837808540965224686319722165607010279195942734786567941187195353725802492945838790388727730494774960278931715589186946266618297894816442270185819872142541056519294644710402340546735599396620451592121970765199350924813533366706010707418029328576704881508036240353316592169683354005061659462201001088215531221165697091551966400921443060364827590081107557028332202119286757393239082613572536694040771767938659219773562066866112652627793739733964553651964748612485819417427135348928187907413399506565004253902033991598442435495921374899531731295901583100279784568384316243878792387232124670174943471372621489077927451825683750813710903229782465902431236299490740419648234437019193907604231238284424677260844840679720877283057677720592191459123849763217247438986567193781245432395022576387578524472394373374261431483191918924652603251232200502348427730621517527716341834796931408015350939500053972423700661855528522819474500549173729746156274590733218087742855975796326492786357087994473820823714494521301920941511975635354278976047004559715448326766047626481135334334982030360521733890377813102011118492164373096481428455842434627550745423746391296581692520936125827419330913436913659119814274860116767496448202815262690510726567793037910392651744839926009257169068782336837513341877309224153690760390346506707546774841431033839563139890595021261162259365117405841932750306621978340281238988276824613713293763876600823494808530214163167962571497547644323958692994134287475179878503100126820885255259893833432869244420426401899364594288594364797144191390800898343274379397988428590255922251493134395194201540975580941119195755921063947558093435662903982298116799213389288442300866545180967797391849539059430326089029022025821528888476017589731566229064682428679720475111417104050698233201807777427238383515446538710583686685648473708700511810285716606298898870068063222663713340767776013725533002262274679791259719413825349812075623220698938418141120588219500929372601206567991118633787946469899127180281179080372318353441430903272258123411063127691950754753539929838004190095581788423626617379151756330269485973380400855535234899538388046408586465588001403453022141115679118189693607440457463884326628187545406807698663548958495567313065828234118620074958989320923385955965605752361261914840909592134188816500038944585356490028618497472163628873929044777197197817586509657484892155999927643936822666270568813990246361655427939645624552333893191202644053687588576857514001522725579439542417696772760379452002028095992257143466640350347119664546058068395257019033590836139964873175124313267380066039531375192749184655635880745064653020592234721287396360049877975036462552349270184605520264214012636820440333423239664451618924371806310704703799148298323611233877942127199194936672952560393484099014000567346771069631753641237480802088547768689885265408171474378982293763803217223733432333003360099460785299262249050602906205219644076627243533676710874958637393473284698869694153366437093565763198041107715331649919319218385253115609694969817545711676592958660546140751032856731303538356677167495153772110679780231664360409974791162414548140838770376532062812807772585832071146418222791388049319200884413458675574170789955209002240842435950008307113917160447788360029541010946399843091337289616656095782062816209787404059028718446296004525455609415946172961703886860250219188491496942731895008859642257828319685214017831132286292187275537879495231872964194789286584235143957176953725123431239195171546242858682061442943624179793693260082991985135800224682653463651480543551673460556046170196992269357652996870982223751159771149093727924704041545425013567541838004988778107096454581062597667903075530887417896889180097512833340627603622834529602753436546723546111832746765958207416624375262287355036997057197023745511969070313431461498696404714598029438274600996244182580861339723640977035211225327661628374482180316867992227295156509263551351649447062649418644698437423063192568414407440780858802649433092025525535166394444798779381315281206979493348468092756879599331319888488579203329266015757219165261494121758335665535780507278491644897651816443504399711326430162887636984756226779297140962679176638678272567335961894607266363795708188217588030202667885448589906808123811459593224397298127669355148444123360793836582934710032132339045239556514527730452357234322142154364261105999342384232523593498212032563741889556775667968724556366321899373658098383506301524134693879500512865616281961366795425909237109363961548950744978708345219134697429066126611269188530317303722474814504396803255363177759156301837213208546458618547283864777884273695935007341089653048855653641413779055018616704777928899220333717045459892949363773484097927757379464999861599719374487109596540333198273631444595843953357760578278369332608790249889752618030918684615166413202029212048554183097967476139031216082059712083516024683017840523664256144306717915696551546496675151203321400669452070819377536373946498163726097536339760675064858505238879577965668949522560204171999387872279486619508557611028556305418595119975737991167815151901163564637104579984313193515717050117202503374768466118300242137442103221022299916852090030500982473117093447750118663991540432436660232312032621173400475403619507188312463200201763274414092399481018767054959258545806756431453195700163329162481068438739269799811228389397594077638978282442174315848625382071340246841248497656289961380790127160908849599160436997104904505335988900165711606379339143431543494911910301276110041044009777743112639090234062616645231623817867949997331402605000175254116834677284341827627021006890336599426450029509543543365921367154038575108577473904654562125571086910661584084827931967558030794685306488357515786744090380623456544095379804655913382678908785062145136492461047354587326485829480068999460053400951958536526609603286685007669257573178638050850308611107902048778512280555815274726045304882473507329913662140854699546317750908478913365807068949289114109894446109696908536441713496431012415219034595467663460233379183102746950517372282658937934517513658376448535325487168984504745945999938532237951297158589171919157984623981746588401108083254067868780856386198212414377650637250963752212625366521087413068957255850147572791917215035840970123802721225841284707074974205283581989744770642549403997280978903654683751256222021034798884723062366116565122164172412250000125537442755226316123389055610619202586213422980091955415063732193969499036566603529938836897451242149365294504044128937242470612874883918645665846202642805566383163539020848969114002851326807917236097893011017440086128115234814477983153095385287143661837366230847871453381970419456608828793191769069896090991171374171114961650186572439316189673736384669896720860057833616274650896192790939874400343813172376069884240339370497519055201077651260454568984234842792376502200410067130433439554418948420126437424466891005466776074540027865654876290697231683101351786174504482304314286853031357534477421602103633775098540267258993585730780945255850786388453382257983496414850485718023916731859193165167013621513533647092150216144491089646469123986852123407522360489434949636426137835270305093163730699386887844407604884283183828933927494660248107864344168981398166992973285068569634146906226488905450901758756057891929768841431732356804821578532391663937450555896062376230224865994540990766572140734826241152291131114974494526641446983936508092406366865604861928539238018037596505182253813090604701954029772097424415940241078609178797550803937015765507946676554056556281433439813020169991706539681711911370869539411431854649497712925646292506772768631886437065812026809491838287228755223612113343660625135059429707988747411714911919562471509584238015145220325726100188871271845327297250300530351418253111326857168263869696840022890600387431005219309444860995416623096651239756940783886027746461294672961896716603513149523033094988302124536398667639254480187738341167871741368418126416480359469773959614141136956346458035822287324000480335338309384710424230275482967470271601951897983514243012011851269895001880840627088043551110488385192504313816377630940173388882031375493822753976861667442323208126584562468092996350239676666173780359784039387661654871446362569498756498340150840879492635641271411303284908857079147549634225644803122089349838839554643224466365616331402459642549621473528480027511570135602962254412507602030833663015302089997205571143574061813660472272299432243122422002438535426874270203819027200788950425817342168901519721151113123487700213724104392548294161195182196746516581513329301038723660835716765588858049135062146280846060161618895880416339304240093642013311116082263074140449108041751512612623963179979355326760240950729785991540020002738366740194752786118462136076381293765365903317562800355534751779043801988244875414368879751193888496860873379179250585918324067388263275416863350113463660521098185464525295477960680256803565679113075511520440372598994511071953019535946929638538368206203195537191757685301919790712686972727362641896436968748542072630389537738726748166282486395492824500559698333244322112985067200368478655044571763299501574363000850603415615741851024909024315871075316096040776244225637299311501396940929531532305500833235031685245348056895898187757337446133490307300303215551391750550229547762839881353099001145947697363532267794007917178109965166529683122335753145198326642429326042284575181775829607085355877225981386730278684203053772122805274962637151562489783523850289906467404754949835138578518480007351942584612404438845879918190027552544813037016002611947393371880482845823520523222607998263043287987400600996823494633698558269268899414543150097749030461324761305787971927220240520099762495446969723785105869542053634968643432479507930964543488972582045235936056085375473668667721718752992163262412755003005290310806101120037766186770644017077827248892711205356911267541667801622717061982480469958448825739197276988163247781428789995077072798587852865889019372433116667163651502165878981711536884195036175558023449630544984296435289194304413614984810452880244322117891934687880690993827700153256805387732622094864583929040315202365299220225275292935685526778374124627534244848860216982154964655234798250178246435670783772536147855474954759257435094017441937980112284635805495123220961900614485942855992161010125268140103910111622222683021312873596154294620326358665794533508803611133089736585012705699944044439844794393791244512218950336939310786503919743820236420097786674971497311078132535722191660616549897008244849807406956879476752398638820504585760466855653827883418926107354073161778664763414884860783329718222484386952336628218027934434836461479921085960780418299363122163054013191026747567153532297368564466501279548135397983161217698265976755720455704099558704803200205404861418410466015708306538751659819310317639492872735960456670310418151496818192354189018860170336326360434026819126915412870376041138687903235290055437348979293866577504569502983898226722895798938298014212578400705725357766700206126010434273507131199441867292528546230764491186307362197959394158885046240641319289604972378185777934005009482692719548570461270962602508416301043973624069646160077689419329840778976611244353358945261806978977963268921470032748002677127311186241103355401925121887100382415266785858146212690322894937271725346605587693336701636264163856539588771054076522504970689211475380689412314750591304855135676462416222216526016557130817565894399478211729967692498302547314507808950442366711228066207413473953501283281434604568194583698419441356786656519097384473706600244471237124773891284855309428892147960673242701031790567387282422364016604437463453147692111331462050128684855398300778093705833908357925679220744200426485808126165075912718918306822118878038608039692415777869214946764224768476737868537998744226993809658736056411427334151524096944758560123492888748557778384661169378182040786919829273809178541263992632383706367643283436476155921944296721107501126037070788169011379870568729394339656736411097099839801178398028922222019407177901025182349836007393153837975628864679611453185334158854454006463451758219439273380724035501054607546092667783412574438678570481397932857228032664823646316635506848627467215996339243583073481260040663577194461174769913792616778445297120289572750416418102875510045659224537222604780992413421349615099816715357110789527401541800589553175731594456260016207447051290064097176951257430020878182965409574231628220333516933601809947518102008283713509353709562168205566045436394903830162486375503081062762434115661001946405240299732563655991801447666060521340322944541727383356905813053813704683211650042399357003800543513508149109848233227622534039448864359653763629214788019079857567742363347398040327475358371748244347267543653836670756382526670416324472932805913999489588037495542273966685378625990469090089722737737650363631960289898211078959443244349518301606367151243512702435017791743029977946065462849450990104524274764738813342493904052117573468197289690527448343002100539974140219365047387161431405990766831651909979000545679331253389938966594911019318982605883011609211469832894282575385787390876924378092866061991555784087929164844000921134836257425069342014312674807927723600556056178531702008563458875082573132339539715996954731579894493272186250078161433951396583919239583353468284602852577548908620217757037373216343986024819178400306725104261095214072685910604002514513587189583120074378962835291937626947860818636591845198412681753775442953611584388135536520873873336187295416388404854125125884967761310323756873138825650417944146986649207323609671938684286710628831166671485918280179160510158344697045516746022051776342657940977800939618737685265428380871779175357621479001961018325374009522018295543353161684863782007783694960586240369929035873747951871460161858701365244657335945177413961750850852658635750387966753851831264050477173930649821419772935035596566938915639108263386053874682933483052508744074788327269714893679724191014274419159321606948911698877594446037335750482020750036880974947581028805368462446564895499135964872662297376572955600459346828132853428699230427721027868585973819737072435375560769141040606410838868803700340471648960605206282867610733186744631159683961260442584303163035710257857955259063040428472378331298915329310836686202471160098231358924385040620967300098546073738310014073523670206615826754611479398441371188767621700548459698552400299850812553447994333455228242505471771026170507767688659438964695337783886027087220455765964551940985834951174062432542593886372956001967769054346152433925977075663019729786341927421686194690486099318840121686848652805530394583144647171802196643910888764518600988804185941189773473812916522891383041950015471180394050430224815532784932372342618529107537772369367839791535627892023750663402528648846696786253811833027441764432318340163125724638434648961202934631381227490549695012329505545119240258068516221015161275473448777760206980694589325409997068592459484356151623465883329157591612957639634081667926723459167341365695599208342576498888012964796627418251886464323561507370711085437978358145497281919395612588936134999621878559302533641993135964204455464736684534620139373436474909110943020496172293432666109328467457134255779160834838541029682969089419359905523312166180288327917774234391471074793910384786916382433004660326725297966397400790336381025110014303947398070124977415469846320307298863528265990630050609135284925284927849564159104037401319201766522559241403735751622152615465850988957724258671337641955513943699182398361750678459470475170059891335829078516564511743308210332549455979201348310535422758640646316151061357515384582725878902591012329861647490860903850959846886827322544494846202935505886120314939413891290675276834942458080937490780082366356747539043360391570423142737030861195199987891819123278014510134258481206361372770137981834037600361674579532705746715964944295175791544224186699668375682259934557481740480399097641469975300563998488081155058433612779468769876518372760988101333944138675150746662828916088430300063778713915355322552294706736982787074336277568640532998438236908941690089883861427786615649673836918627106778370141217472156673413277210471085138327134846341010498982376856798359575499080603005105635980657995132411183444292953598005662106172238782180197029161380782753201253878971627268081972933444198770170014350166704725335745923649505417547336751656674066458137205616208863733530749075217589903418594359154535786909747908092078701431155420010817076003924617498539005356221473713807272829759865382624898047254395103000999890394914207770196544573493233979382563584475171835059323084926169373712073972473481756863094117181762806898032391324771668635034471363683240415073388456133059772682037601271995892202279046596148035122556478061741020314770836637057177186268921736571649394600319135274708764789149049278528426325077443143506315603678361982857952497233737476136146411437205686011396060761078022164722298844264988041535255480735109647649290054047278123112845321026625388860723669948950035368557907726099636171867540668287061078710399477991463632356342875736682716279831193816761984745293347020497826865508302985894326129590977034873887204163603734549648357572529803079785878667352024638945408497220320339187868119071332348120492997624566004088069533101087086716257784610255453838244126786888206742957955486094454983888062159741072588076322882654067437911146437877234011438271329672754395387814874260237173730554332469785300651561586349555510613001135117051473779875212731510608890962092565498536385089834373223544011736640813291567421957113383358533820568494632650243562158456884122697355602859736503982131206088040264407835983757592507875857084726824536542906860769091943673331675884151086827067840702209622081142737750431757984292395912443408198841509218074970471985501525348172881930964986829610599227803953938443687336948496226841000824993860162104816955540158738518631621263102416464509900794720426261256761016578430834302083851554381573970602062753632291468544718185923764045481050939644900514978329458528924366481173729346445305187297546989851950931634990828927327337729108052090405027530079466379467610276312842113244759307337542645898612431784328807213421085578069029521049066725313336374023296643035998081470880901912479550177609934333764705254830579163777950697628862577674184973702649297307611964690667131502534979235375824995528129145145097097486893725161825530186222813520648993774852807598603601363692323504391519224379043781269917865569523191191642664867923021808712164711403715579858154278505698150879693880778119512115023859280963230737271989752077656500874498152656567868477971010868535711264140767573811220984838833654732971070771935111292920360283344241007165967098968122938595319825522632021455939252210348060643193702860546305203200205537393616279412582697858664168950389468811848146170578579629249151032118691693131635565176649913041248030841370871211196843686552292529665602005510469788657270165906650783056812805451794610602649633930749940531289928556472799506572343645766318359423986326106291001963143824136167840363445175122668664841651260993696176612625176497497475669823320091176841781198867687553339912896723579943596319288414070176682565975974330195376570846882509134695835930676895175421580952798765898225093143461540389780861678706198451760870066333226952366528832804967160114672922527415728079852946771112352341594283540880080615848055522724100169372188732032850050385276429621528021557850234552664504364260516131707466791286429900265291063565122658338824653894153653576565403343675364877425470089920729016372066851675828575410866730195384435077646050086590017513980287104105949041301888035714524624308234780195992135660828751061545384927393575060401141112546616044452146283057609906345169573764579504656294554367705932477893554446026254340387143893161820961936253579447777511099804907950961608524876257437309141912318292724587307416212760704512276990781473024149959711878265273423875878052483091476598346511872580949142796591237250757487472322298585422245424818879817426688497875075277887722894983804777310287131504863833267169437736550263019270296608587940973894105145012760996839641009884939909829463391374936552545717052302960186103371443967969340263943930014695860659577650787272095915748199873007235570606796261330148826539698495100133469554852955715734449467021234840345540401139611338747625986708704496322104059966394491786028335459293281171316091415499642896075552607629962452139761303039501892860351359647817381613006973637320169899704063752399311689052998061548135599413306693167003515554286920928888448351092213967348709622273007333667022696680356971767281616113334532087228714900672737358892276336688528243683003994311165656672867633753944519688809066052788841500676377858021164880412454804230259012369687974400758141523476400621588772060248254564191857961596105821382226637557627743144512004357252496040981370454338151024219050972790577349665094099475813890487647368996036738158545419076143629280026213187658191712315397477336104231165632284615530108035072493320535138729004752042647291838364268608356772328389466692585941718916332147993431086865095160848981255594908129708724074218679134640837234027403405442994871428652754202774766230339534187698095933459009257904878048443804834282941393844122733313710857623340650818611051399308711854395231175288911514534164936211233960070252994941140503833762608514027266931899551662683324817214284896427297145070203548114141447873233309630886517124714329900752720760374509316813729878736513032824930175935910630105197029631239353333117785960694339220362646976969171262786375920129450424136965262199138410849950059992412983745984238333446457333235883033997445180373199154747738300573917230672924644503293880824091501739446705707300421556887884774095068419210431470623875279272007912896920199684498971134607592103131212807000993850329837242448994384052420017789967067005947962688153850727795241151666290501682355035098025293897934755445531117258444170316821510973048810008527542374773087551981621707223642545165367461815437598339573721701068331285349516980772549760346234880358088102578265339655571255593888220235127874876906014162252788643833498186542880639714494116266481329277127216954434698898269291686535159324256529927882788571473525011117213393636293625625309539961312452017384625823536675235862504432217074754227887802423663672000040260063189753115522997471816188193623657181699411694010790007274385477119937079301576977522200688445559588956651655025689177105723738307939974886928368646631270753291586879984459256544646609904331243828462359425383225620233413373741134140679930756060249095354518671094116262758932085121201729105731973162723337315983471567799556026824535219261276229184769532256016693573536956428027066802838067052346513280658683456533399644785987649538239408203142901404238978414705449461477490020676426709516241746287249752891345279629893662802491787934610856560374695768496573016287174795221629534728572769950202794537176842925688416371940911414909040223224861900785657120739293341819181103487142043662878885921616269900317651130534436716689830279209404837633002681095891387146691026662770499960528244368223491314216236304893378376449858611471191383339590139173355269905326714446002497578875544965815348512833063742339587286139435369220644427319764346332928284258255332670973984587095618130442666808762647781167478709979470772748736302298390493654936637703004660965425250429324033906047608335959607500243377358202364799447048317223915776289628822930323985801361587375237249945317373364380092656077703259107641600402955289511124544138670184696033631369876839019460894175665090895356569338417757713826743906429915750675669045081694000335746276761629566872172222701635600033803076316751949521923525960311205744939434676963034450029815910346877541506081264311055730035732005175211959607346673876079576491895505602042116921818214504067021947994574773105857585517446817496222617682908081679621052498955362848050447367908819673257274124557641266234436801798978288950750170017462107686785664749219299773854778217501700401598406101619134074322235106062762367011331775802529380260169318597730785868289592559859691481236545375479151946313347301626240413279471191418189919991283696139070394337050352393434210170353155170377386990421208980345406398662427874676229894131639131927853198447681800962838701633304284172014889125932186659917979038375834264210149463686826975187834875794316976204938189427733925206490649486070614929868759533213856666636165345116860227222722656042510038992070132892447367862143467931109331885509124881132161790163278668810385630040857866481727188593139055646243462519783377265414405613770303754202276033573501553948838661848979462869711835796345433369265231931755645584597073818253690405185646102152972153064092183987266646121289267064422378500599014902863852760047193087009916428166307197314540188339210769574595109408942193385384666274525655519743297289608299655001877045600302608194013962108976699175308126351641295558207870359806954290887498830447784029605220696639525858677858911148238445995194835969468996441456883850570392729423797471308364160074598632735863063131302352624330441470825082126525778852798427977820234014783773683933091367134178449852549062002945411051686496174673968134655904262668841127141539680212873858524035444993895066794922723520827126499801581548423853306449894067748634542562647986029804829817196375499791296195322540542942765836417087959691485315824015368382958636789357729105786051403252974330040083738983837838289082336952708963526662054651348911351651590852815237822683881448598677908790689882409369305877146514121693645113782351196773299925156124632232757027899874835395782303376254706939373057157507622464494711870705905808851904617724864596666707896206402618343031487637052187772218204735380839971866894723256867186883402725616119578507023815405428948739214359832126154556501229345849878970885544608731747864341951243000939257343373024113025533888747227283204560109511026595988883737378539430714450541982679473665776786561634436075898413605090399360667618562350331335652223738815278333270097497365948489208258761545548701471580625692264047049400509611697007566711324842711199807883651927959920825390563896516956067148289077639514219979859094829922839111823554871972781671342729032660597596632395059319984036698276737663728119880603396424008776916284284094499026272891323554077229664187775915792018980285385779956360380619029336264262879204604980952454925663482757101107816209864516090466928277704935112530279560223653666317988934550076376657813855974608548379762610912215583132291044385643257995807582368556239117482590767360118321240297824304959382969174266622155126798065252808505277048960804770004579423219217023776648909453667902255054989896254806596003384410114575046068037571568528748949249252273485254687699010694168354004859008644691472862977233064177712142717302411601276510880056041530828034043703755106488202531933717661074497204085956006403121397147047670159667916598007789604611862814218546666474476375393884093269173341106625749957295217008360359250389922700354605631917005582638448085008580122374339774131185844005954462531046110340097346806705585686778386206399005858286382430757415780626003566294419309779823631448344749822905501131616348343383263022546688432673457762980167249772932075731589152766773390623348806024010010692156270663021082973682207473066589898766351807756272602240434171849086751660992256731611512222897138440013367213956556702355612579001146820283453974514752996158932816235983078632000962856244424903101823863688233253273026242001399560474832738538757133421931455578824176202654977964122940281010062607940264910851975207971575146615266007829752176305896043214193274928649927760544811574153646056489955975021438963757921020212731293640820513612391035264683914573052497199981922439304330398395211085024912880086717029512792121165723741365428736546761964576501499054168511294285709604721952001754784856288151677286966330998826331243869924143952258894672118653331731418840553125127763624981516017037560607148890333711277934441492581505893960918930898405572006283793140963951377072825446431680822256337283119582091936924831447649486304468016181939822283523555726144916952456098212222405521431608097139653880406621476521804780114731369030322108778011075441790386658641707743403249974276747469186369481585647972081972667530738765131993991275295355516541113161024484699180902273499635758221170258953763624734043723171898269042442313743811625730286506621868836655130029651141909268266637824009108967266215148686900060926508497615606820723792829034056280145136124798240879527846561936310231115078118608706441289859577178058013989995616452450726378405453347416169390392774551685393037615162730627659498965761635369828652857845383072492135461399068525134788541656646468066020752671942968637417622561099416803782866261873544615544347065050181826373928235343004284481245169804263091189659704285545898382770259676950185276578884426275451555036241499979774418462682382855875415111222364073710462695095393201402872559929529471370171722357196293527647783675251409139040610141220943251829663678722581110747875840954981743738109051500783562023276355788572362895375410945889893991701534620929239457996677515435493474096595905084422162340942156435625293345174428913828426149366248751481743468514244394061902158145522275106897210996057854768004879199313062381367426029234976770367142862504976350464705986939980426970143850184101764897166500491040683471253533913893268062938180132716890836842417058966694973443789577533193099457750099922952078596847022146576562710619537454690843266595878934901989613978320192377873704912361145282993226145152487969246103229835645597528380970868764274050962942870140341884868430494539160382865279064869074876966795717812256521749008144005514243317711158245958165150848253413706238623979185690699737507163159958476567543124792989905352834336915553351724863139568418609643081540396768833752721291242952784866090202484151618005462316996951244457266320426741973010982639217374371450927712201493296538372091639559932642743296703762948119227364929760326243532018761109568066858273770009485038198381257164151250277133946819248191666969565378547883419655462808436857076648446774155856500480102914466063315980033228421648902301413075506373724761177672695720608828555062955653637252338927853083294596397576201068462089818780093139280601711660999701603577237991286213848948918233907396261648092511158968665426624694533302924512790608232676909855745221105216119556437577341794206896806161511301964986397851508844295149810607581590500557243704192645766037515603539564710067676393270919184346644155914737377913808024418332607823041664968113471908910230712269144072812780379631691364034030932763875336680610683009363775868641582325322080349694083688069426445664937303101314636688126672607246065451025660747148452866800610294901348378143939102519899712319895538128405724586472652980564747138000703070768620185838569585681348122368000035304030093903617779491694394737984958772333106647276331756915772166265600919291083555932611609533887849627170515488255432970589572790760731403977795340051102056433889948072249344092824659070116860500823178681128073341047439504093269167290613728851463157583688120718725409345647814444473281501863491784114006073386899220212385745675123547852009162291723005285353711399815003841638025951161299922733728136911940639179224649014463634988399850756338158073699460943471949939415075047525397461078706766553200174191424968503239388216993050613062615157777790354465155186098935809884911069681645059861486085048105520443934073790111912105854507240519205823497789401748914658841415303331560878278035219717936765770040365705190057795129657403278294120205881160649031890354283028635836218401433720246871561474742470243789275977507672161575706790640592331303450091302249151192986046912942253197595495536724088695435940354924058893779191951836513833481576312437855311604558821834646555714818503577463049989934383323051934260281113466085714894010794902026068571376533753286409121932218822367192048550301125065549822108747058060803312779485052080339800756503407860522987472584190267561557437824006728339135905771424709821803989824252530948639366406970931198340813670441230250068699780209254003790809986882411756332847724217362115992316546857042007768097939597662496078468655529352735410131149263581572424438323689421591659432607837354470400516084632385859272708834884580883776291173238943729589426492295507093770644018910455550433722480294048902526792363523200857793190595375541927140695829713206638296796341791302064057168414479827316505217755052404250680035890965295172620771920426074391406774794116826023820508116975247466286897204569570026525807857495365938887221219892028192881216933271478457947687897115488032443089531177800472817574377504599623777494265850550274234621949149429266760088471921997547353306130646343612829439515662656949635481437699583583099260318913649209667549303616007721837232429074730746020732426715873099790216171252806870897532744173310663104970294999163728477085054043815385464430082376251272541784338161343536208363078004640152312092354071082331894101785294795340936713497745643057230675659473669390379196416420990217478854070428360050768605928009434662286769946858988809045527130067587659782400691529095217381544520458612757245145387248577743023442067015145277505442528984987905722696588792490693089316098781876555266864895078949507290419086699881628893192537156995784008249567703643887894951347011499694692241511591831623821814945045275403576069182595340430275903581995584672894347715198984881380640816829314568982363341711398911618482724156509133815529225644943072229104856296946534390642188094389845143194152196641448066883428617097098434744566510985397298311095703107507400286308046300545941200083629847178885268833329270857801163544733839646442141221173741879297413285227266834811110306218117968383725619427839235330536612452350232037805851579114709837149036801098071307248839987868799584734647472126120487475014052172848228642096722507947448895130168256835077711759995957900295851840249384869337289512407096765590234932900783121629580919470855880850933826371924289953468037362962550464272425636393042109032145137339428417497267926837988849090818227658786880499671374926717542070236155707298162219080063064198521518112935792916363909166413865450466088891988042015536109641718804995235269132279182424355233892473239573892636969272678706562849652023736152252421578647005202404997656437846150085929332879185265327267121934721732087298631805216303139510723010356117995691977930790983616901670983856667098828528750527609057868667788227042896695056866500628876434330547933246456200961481563241694974848292038544477709431873280124393231352010441250192654208834532943589432689735895678461237572414459596164862441209436172536607773329602152433385412546470270521543661358448344856651275285316334196532109296212541533991842130025842134918752768065406456195490132543461342820751079069817438948819648075397214489602220706526633417336629089900974498425558333536419080139574683496542002368600271865322529190607529516049286137936170231512885118416519885767571627443583550028089718865159431948463220045172956972518335263683209703975191983017837890681101456594641105118324983121034130198148664133312503484836490053956961940452686535234745439516443062193374324834749347450999497461437125490395603941318009401403675092309855672049013400905500110475659801133792497744299350174883640252202254839856048243794371315847721514991050747586516354251347695632881538510993981803790339639244344155710598686398686127320432735719774417260420351378144482733150908100097151670941696437306571238180026922251155467507991627398340456433539871625760867867981214098867250361234438233891314983284939883368988416817404543331108413398951939199059524028466448538612595529964581437765928957105681427822037735597579907904690719241791626940228331182341169618307840217479979304298763074591255062968546316596671550902031814725949946037872741555565168404026517133118925228595466868816369228592748251389873764766576661521727299229392261491319433647028446263896448001527836519921551917853962812371899118103899800601077375597128661883939101435197676500560170067680541136261931828904260744549956958385485486894432411368625867575412133587680576538699027330484329808001561618618543999313485859325801708433801894387576586935975709531583581143535038930333130850283606308018622035232267541041487338792015887647950178702952665842360244539169153823115056773707238821423086641795530204206049834101222285638540016747314678165954306531662989187049369167377070983026105271574285400735954010753605621072805955635284828277525470939582878325137573638830111593990453241182698095243573770096151693427007757868477713199335870124913994739622033914268973486961754764380321694208293720436189615378691765183405547329688118790124417743448160862183331822442416029967025264963250352194302772560441328634508030555243276755551877785209529898389257676754844548401403147247440417479988135741316733278012403427588973825791723997454213547648679378221380712949629627690766324568702330803045411114308938332452333744837787465725507277013453607841364442753577431600554307288564533681437696002172510972723308441905516719225189448505471265453078906627335979449110504662433353057464037675234871054091037759504871447717789519362216887759826571821705031541652067073036554149610102982923818418051914531788373484884705688348510741665500897829390857346355835603383995750929427041719261673609361972339893110867517584364220659006890016657137935124624779997640163060635976087178881730100546096190987036465211192666216020917760799470079402282665437043036280903904563677109655152220317776596594597062521316163473193224138848467593846519244321268370400425408453101050829434188191375381013102611276321235250928131060532854637457513215296082000716760335883385751546418551376960311931806970433716454732874558200894797029773299225852381914248534258626196693635588478383113659583450700022013124308546574629382261350666723149559021843779724036735195800995976898294733038483568995049601044931177028803898077745779579378529377505769135200450169401811285429496353694915826548047760276022178647356656777083409132874407795310550747415730574241228364544702546776012700230938270688352763368685202859280004204323978149257969525099918437451730644088237716621593503981449510230458935791221972435820146248794393119862277432229362798577431023429962701999238337468015217375497761763123391681537857493959972764152687410302238043298094476570347647220915315505177126389945184646388282440885867806438802261540137021352426215119173868368504102439826734391556001095820658552344907461812198025809924224957485784063828706304805750725537860140041995799495882880791640760217877023052007038745303906309351793455631880678676776296187249998700931595872710062321016503172820949478947281468186915483316007774272691022102828135032846008415417659338874149239261527945895898828513299191140375571775120828909246258590521383881643476524036170966968333634841009339379403509013581439004837611408964526867471840418697755798203150661428955477210554775742529765640587015748128777035199018600203178131730485877700195870977265691163386803169725785894892012692917923704449694849018409268624593558981329912471082609544414477349951686447355221149260612360153210767344921554232583609589844899240594102953747410924500197990927530278441632940080664123671205688487156660420937029834769752537471097013518605830096115866995211255502522258170848347195028516366136195934663711214414852895507038719103616723905833038103729646954095333359950712282476636553851421227254624041232757196056027803896819181907376813020334835527588742090876714574771425589740000518600693911317891851158189193195894895819779599001011342819644081578685989560461010024089738568329240054553750887454597188555154149359106204906149283955573069556189752231933245283622662233322944631795654090286878846415484162187796999607719195919239295256841104490454589044118899221748469982213433385046511304103851337860688050002064523789416706968051263631623176893786525742444978837416964328079436222583095477158758444960919986491383062340785065592377507415559284044737414812793031001098864209634462576313260503590301193036131094664664449502770326946067030747121711663447442216287629678130597820966108420738962069354124174977447865170058218845730721633983570629919018364688678034922192429311923288628622557350728767665573428775631140141013902987084367749249671582383417153014236068863253042267585376056932367130563050616888221147984934839739358814004404008347767554155402548303290838271827828892581000060447126037740942869765630565214691817336454203812932139811944351672912144754011017127939896517871153117332082413125667675847673579483883526125335371041649492115135105398645364690306013178097951536858328294418357682743077828139797967333707410181875650120044698986838159895407971446157924655333040020957744804215092392924599394349629884000431322947321143239472149262630990269890504824212809288079643154595869350589939483306340661125143965663985181307075513841276188413582856427738679491446093476317975821365010249676109641272097214451018524071860028442671005668572837085236794562416813503175933156764647068108512412699876550386016960849668955918954699403494494972021562371294479376171266735265761051872692420908992839773618306552620356011409625929523469456962326660624851970730037067939525031140535452160728744858574280093483416873991958234103308398627428508040963763190495660951312851831729117565394319511622545189650751836104726638775712252134920101085776663858888935876466809389308151072178172059784798644070041136063687814506184929261330685616588606366691831189352104810593324535168448075816023464690118902277477555977242670428447005754877942826821029438838371945860045375539661051249218301191123152019290666891367689288522712717143331333575861371151458314502425081694782086922615354168756961920572642888036747163386467924021723432235717437393647321599282410523937232901768358392230170717551887597388178303251342170689092303598580479065243651021929065879199765581109312894270026909076358604889426403393712680458181415683082874025663631348227527898306083900459032347073128107465612922174746376805590714530581473195607699860079922466805339157492326071997490863857902031849784145161045751655906051955839796643281149462376636553363708762276337899848866519658350334757779038062578862245035408047514341241617822545284990332545079415934246186410538548491137665911205597331748220514142299808663085979865610671715980184951513145009935047834451258847713053670970442546448857195117547183405437738821447672912322634739142438786959167480808205573147105759202226442131785011746381527546299327283430106765892209342719072082972874081161926495571413063436793103208321932338967335331628036443820962602050740135318778904102855896733468418794312448047048940171125947773529055011899731609376894267214817967593108372738157071761224945969295067205164050702146942993367696898780329243283121402587523751043208370344451332551643103387035285325045070609586673657013467690842148406498476007610566905810388687559326835775785098766245691627245490551553476660318457012313298770817569821995638767108598573236768257190089374112690414064876489100918024012778331987060120725318417877212994346902181684394333859485926197884307484092284522710957226698318478224695873792289898689694666103181309348113073445900803670761727073523150240636027733544209523257538597851694522227393176695872970783779176616127087726223502599455934935132709532208308555678737094461488082906474451105118258385898422292497195567887745814157050529195417764531201193784799287819848522841030931521453338260358898010595506561707445101940992765069231633430681674318009023564477161523424375291125852031642726690299908001949689075740282141805567118383935386414228607959232785819177808960902012538737227461538190989205329291534560380418060123083820323481303967224113813914604960547025271832280001446955694255775069873797838275027182740685088838857894778545239148251438881664740775577889812075214679944947353298489569173376719486358920578657670181244623095886866503339654668865702632569338236396226109990329438822995899283236616591486601780507980853479761334841124331461595539867536798087745286243318321886717053111580104536403974686374534154679825241871068092203257864229934109846008874204559720667887105075720169482413632981106416599364437969869626685389103144712851556237712299839830917228544567537437758880793474281089775850630357210046318008151497289821736012631714593469766859285378219947990907724573845510289953201064218873372186582120653689226467154693891100886203084609539551898337204095605266956140267346530535895861820212650875079216090544775606612617959529422272294499287816311393967910711976031863057175209240817953757971868242945823169595586103907470954896799458970847482965360201372359054986379652711216788665270226667496501270767050492062779057700245396737947037771015823866578004377163803531076609389812824999787150040650379289738194556009450007270244814469658318531066834389794739082589567278062623031313707564922945445599673719292881961336209090930463315188337769941751236949542757309430116066250858802050651068163923500887477194744625048971841283461014031771029279685720764989436566036915334533740420408110787757981664786394193317436254903385722670912236163855325601803467866320839275514498444737107247215804263803876424012519153306076590147310930003226279438296760389105913614221990182145312850596711518002986091762350629470242070130857806220420456122919540781813960023518418691260206934120391101180162980017700998952441693406961249018002191667752383975682007936848405342457865571093743407405019931224136456126493641971112631299078092244619819822556124819104446851222182124183827197652489859623491868160667226801717313468224026956039731673578763069287399322194940894059908361997103428091129403160049905851644731207631417680919951363811162184680017687269648364753670912509791287823487675947090946329660056679247845728063053981333924372024566710106091797851873071137377244284433904452231156075320465414307845713205398691409402030266553203613373723097549931305362604064389022810621190900924093971586476164808059466206945622198017362324226608127266362292154159572437325816081384550298896093865465136421269985310166125617342441177291481006045614226607524341218911833546356942731165964785185921376349415415737093702371957152688586652351725376991254586979403257913660320987202899638911386983200337123410225730920666596357278728758155479904428681949497954149157552798069511024082549299358817154036363140560309891473070553876370335876504672761900303270593945815345080471449711794082869795965163555598483579943477369057290555803326303262965016943275716866900310084566835416288465381687056646142231060308434413903555206767462913076644668067328756923856549063520035470891953915292908176102514910352124900187374694040055629511888333838876855073184107324881861467561217597133835613927763606325317770466904476687154497799239241383759387846958807560699841526254356709506787723624307009643825665092916688224771911215731342809742526654317273569424281678235802519894534774824743077953606170700916394442494071224926826417247997105642897010202628306977575201486625442152662191972827545272716191651322475530725872995141094709441750824668062442062249173184453799952929208873137874475200391436673699436370588366372484143290974649693794711547387111592619567934117678684180768952715642065300403837210334046828063663216354036010585585950076050545574816063643634804718041799487338403786527072107997915942033057237209618609242985859042426116938879144155999229029830131648804785810548538754628719613124846420269463919357527494677091796738822812175239555544669781765557019132799078467788663050746256979105074931518239361050555105157862387000272959062705545417761943540744865200760778948123251911461546167608224473632259480635935980560903318221358294203934287489513174302109068946409449177869660391281670374258429860636438209348876792060946985613535991140209581146708990342232610118218116984758085623015590182400154886629025395386104876595341637806622264531190619865419427717808017301175004088703801550189286672723163229221526981605711030440138796238005414069177052972571670923603301986145701283869523255389649356076027136720745945093696108587896140274736782435370604390083797498161031687312643244536844085365339170040760944027005277780701191298001838576653978233139804354666002451688071695726700319448323334260985298545842646841057887277388228980213152782830387363833894822056901689008430233602311993756335099606009693399478133912265616175154521476629059737252399520918370733357034420589046944707069357888913796260550422895435025677449625878872456798614878177862456639189758095497375393486229242805146743297175980901335576501642523186676172548542343537841222685762507593772901806137198437562950693526300318847906378890464143530795320117285709491251366325279986431560196784858775780235560255274764753430735750081805598782144079712498581889226010489574883575979272991226994967805517521755378420203312077678338837469661979365940537302036731306323285687264726479256808258056447492731694311603218163707632131514976790839396272724816638525092119978599007488015706506302247280367647119852221969514433583554796609617252528649853193954948581565773371846615567184951734956971767724274479051166810388769908502441296647070254784546351861656543080535801191095599166497409504652694635603221919041788304069748609548872523647570494969408832155491733469561402941735295620943193151599446978319865159504264369857877363877737646525155187580455457540987852382015794857949690922972221521219045545360226737794274130615795983190890655917348830905174739154665102513668679055582284137504374040599943308478149004821998110088109892325553218797003260766328210963909276337940902983428853106186779258121485937101185549284790190745416399494424782553188189927949037052366901837636157994867845521876172621619425432619681054707313069188999482980445498940259560143891921293420501605652601023661126602220104561328656729915603840782614331546698056643165918445121332289880377897136395605244350359723977473332406536981974141285253792143501885473370052137245128291978356771314162978416238623321067286020761361893003019695493945749205905772680949219867151486230513199655486507013999122146551465764899099921101096389581415077172712018667682040699508740064462721296453600455255742617477351765352769437894852140344993812889502965502313223151024751817335049801849975598245031721739542771759998726872130735647105509140401454657170152107265916264036512361379303835088722380228756053267866560419979025295829372295938432629894728375092054141478511088394388764265368761042958906181162537990427999742856592852037345678713830373201165416853865949691530956399475368374531568280187963335446230756839322509417540606605294196329487453311796481433742287089689484254549617188303963686175470793875404223126899727592416860727311675982022467999049472751734273548966050402073372815614501452224612153255460267707539877695777661702139212575674423887283900412410051911993202936087234680874908712759941558255919038961616858209469446283195558985154236136890898610076502717974126780603733872625452819012672114645724445882738808785678524098216202443852695860672882105237834429812905451834980916710559319472317670431471089128485364779297114964044009017326471705518272734666969151377907185217249113327386890375130906456572318095699169993163230848069454670496503078000380452472054629827733890567532065859564581083088802468843648621782470441839151177350117123969920853236345244254936209842891754464951050465653954540932930626141950857457194053991835587984008157810003618809261699486278637409726604242066815715026807372083410219463075573817622267541207660900017303833118001074294967266958175350621522114119714263137925293923545663166637253564668419686507453512049245926011672339939937252598893726104711226991820388272602650613646416281233940404411059442434143160280108712354365687824133601672501767813469479717998185325984959621491221995230038337784031016609711807184658242495055479280843981091932798373596621605238143670275451201774955240668370891837626107372429740465016974978672429400871622429196778383282463858412852414138637149154518428485448339666344766058636721052013702723574554591486435487617913317992492542870642762937128162119600315063806467305130969992286077999475086155370205313813795485410739047748572540564078669300299370009127329422756271077242268133407482291994497198578356575937444912500554241623340774014817892271247459396562473349461670154261759682277251599837509098411572225479372432455782249970290099086987225253941484058798390836971603582699601656493854251817362528977417337984801417255402620161166871666491551047687038354351268923900973160503418291637549146309441974954999371663546470343043833513362796940790537803137718653370200878443701759413553527325355238369935150351582242320360013509786547971824192749128958909299523766946290247842797152997497950331188853897201573226690473887909215951116963924258772325434746750427944089786332204123179142515802319434770950272369056597933965319551141499762735863163495450841399607770587682120745241547116314174794719336056838542401435407496860961617536832691919793277368837384706187486667417452429452022980935377794089987512881089461659159181850094656419393051362810359900419884185936862448368993172621949929075445208560616089599973119603532545287126370838532395332553564971812573159938233224682623107206491009537370897903952863453668719259973125050799036319742865539555650376956471335074285454515569064187195682147300781411407368543965719938145643926333770182089707306429331040856536266765728319029433201906437547888834748744743874486475166187814452680527590029048933187200221122734980232194951235157134196571932266651438915680592308487594857815449743052477585695106642551250196381681284656281007048889062301733632285416389315486987984027030890242470050657061295223476560011872737046505586099036145615904314332787452036969145338079153166411650838446955140149785863275106062316031449649014184170480103392219459087316510582003221877390674164820009150690733048498527908292974043145280694355461037282630850762327240533116902856797940492039825949368577549959715055160527112281925295465597162523192027326139159784371866415620364504940577026818939219179976203634673493298041665580698782933032802297649876033198118448586120280188466238435298586436051250088306021968906693205836475041790080616624576316443664999208192516508786090970933447469283725901181071315298640634574877945814661115275923377117214687450948030260548934813206318821427799249521214006892703072525284570472975950677472080178302458707785608580343176048920760231793863470625648621094219485723442005315169995116020244153404143771797195471302664854740661646071519516640505523412284131642310680894062502519883689766536646197422676150693012943847304419172522098283853080060459215843209822484760136046160193809531438809453135752269593731567297796630756105424360736021135644376596398362027329821545738980690407534528626487566461388593190652656153558754098806750635445688949416531018863793384552036628253385311062108054976247490983548262627983008973046486405086141393208965765944745909008364841849153201326827421119456108517301391452506986149477052766481714005532558299578608191127824447926607250149246479587180036118524625960179051564801937147909693919055661370710139768421827602898710160148444436869047929032261227589643239181382441450229994894777996348983103779035422053065001665890839050053318163939690815267931478026701649956248566575044392255287445849669539065862797139359718295365408844413961414324435936490115024369175189659129388752925382324589267442805654081689789939189292811425563579142896389336077033886765150557297380172028859575077173644707958334157187398573423771007488239205059066341099707934014376862062902602479443579258466518379304625360886887831849060859381305531294013982854569180518354220509013342366449150716098578059534487389255641795458065260672283927792860626031517935978151291014312664514483871844942547115420975135376912588988019153080418686469856807469853977474184434160933220161032182416446129805333430200990438796966776653848848038794262952968912278196472507598086795929335941534966709441800950855890235892089656004398167458015493071165160101578064924119635003571593911316216267363256998092632426518013439030773628704468045059477909977101173082437810652111048338117557489656758038017063767044869174146516730465141474336438443438956642439173594793765011349525127937144606045106729073036949715554053924369692923695870721981673508751212869412784828927417302692524319059530463732602581650927430347151695951094981843249226224857349107715276562601301622786204028143507607151301830389129706573690999565585751459634325207044908728412671960679071384918208150193040774170378043945833925334566074343528425580498318361999998007428980112530967373239339445306823702149093346361336573556627689232364126695742150675155691617204411968651947947777441608746110497117725218658989463871118026724159241884741321606212878482202250903179700190216311330661048513711024330793704515664105477373077803427711801569531048867483601490094703049939502121607705044000301979716707978215476969193946516710766586649546129025623791969154589627017395726448484451952119732138930828132595900900570985901198268436261218112707666273830384531877697271999096142729581131399318578326495299127755841329473444760215761758417293631081506844833235337417110862100436525503593198810261415956638502993433840203521336292459394044485863574807505463052503967250352971631365823518518533953339029661765587229919616491702603269986676380988859981569703983053125393011179019908410914972729237573814008872430147181833833826223157439715614163827964711826035938267846991990595693837029263993094888961677551047630913285023832444300509661592886558332175058313038448105679958761355100967606898514017579051396872221774013095276541377045927109709842284049188504447253061033250946515421969669896225851244381876816907648945681306061428604181322573693788416437164499522411709655924577346244309254898780224204484231295096125425617115869378591524489033480462502863415086756543278870724340500844179413674916334499186377550530191495864421024635298446763013634956026736578111015430839953030015069253502443340964318450997944808703443718990152663059574438191454745885430161120793921936221742166593850732924248966158650866145871662729968619452451983910888231081742387719964589874122786639523056350739435854452225006009726891413052504106821018146599166873370018359487604216752372478163151157580403065862394353345696572960342809953777393353111399678150931648661002236025001345058583085436047635017870195836705372987208832604230292079282419647227876001019081403255728496143785641619266032052225085051777290369812073263531825681234619393284543664781484659134961256725218407168014126504289829778305825330762730495874781386780790539522256184598977004260372580405528788118310290186082570872391870508772108684653723108472678014353879697376274627432125874729828026966179486897857033630090471687442637197834519408327645631087686983270275845749686927339049193336918968289261721406520510848263213866242505124262317425127791051749086445579250033262916664719368500918772251001750071082890074101279171772607742504854842763360530952171119065831362433157006094402746433256355214916321795853488945708760348850727549482604835724572788935325382863510534950649642569361918236317769353134345066033322913551615075752895138260974577517178867295785136849680056728063547037517214695319508347725087544559122824813396741587945646195331246079334354456337549994839331093901080274378282410208958457717495548844418005391653584130736239662207124381987836080978940564277322799957082143728030458244499557707095421543077853130700333090484356982731227557459751737074845668959362316950450682176593123843324642785720745274114472332700755294373088976950408872267771274631579833720521491059131812218049519858309403522857171443159645006442889266820434676763475594142275308645899248046569608075970534822710528171048947726196547780235305437164359673176745073022854565086284245754336997463695384950661875086431570287573469482398702017672331850578430541391898506915261854056351967428442959326796668606585530221807450585793737143498123600022984213128347925756952868778399479807134198375773128312078617174452728301130260453107123748181324586799137578154933929046430517497070959156141027146974741649329912725655648216566599376648080164322496645901310346898464175940618354352151082205470807067230888052129390544315899370588517281909350137928211516528790307891888071527283922639698722573260895114424746765587050905041667278914073360081170021117031389902291080366647059694925302060276759622415374211103340853800560911195568232645666526541347162619914705069654428283134506633069551566872644900559241896879753146210301299182726960105282018871683840829997335148439513599333336549034246529494420556835276936566999567081939999100332384185210167686637003802715513503287471051622093766334561910724585540566328858966086826976309692000312097572360567715215477183277475930442541396277568917136714737055113198043762282184491773594495672019193778875280090470475024855134671849759646777482238650279396338210699025297201453178469716028586988910355779949488736861995978390404602246979423957741293320705241051207746228132919219057115716010531467748056165698708079453108183501226413167961765113674993388938178127703790638931601331174768606993912068922946005087892995376407998622856039330014575605368540618215161949673053396971042302354512397579002407910881093409861580383245027862675734080748589690628167369060084403283500836028665738731904986461863377467894508843575338683113829280571517778907939273614962447322815714574056952078960362579798829715148668095399137708823071000116885406987476479164724420541068534265346485187248337737153464003659906620224633481971550883209494009217650778519251064676776706994860571231838031121712985299443479687725211677675898230566419865252698160367964635132999262276191281242772925364058234091715115357932628949077067868954554808061717269572235301953875281254047849731687602516629169329954405847170843013113961473660345352027954507108594923529041894782777130469912588738519168793896439459249269047312833239784532610066453314557606027873784591677439899482445870324671980654881816876693744482736428320312363004655829991260329858711814054502934936968894973137762911497046577061425204570303431907829188953236562095417948179772758885913477347744590963137194525788909660366557601694703997580410828680389780859292063924533299755156434770058208000770742474096585878910472697138068528483226967542272368792241223859523379503447017569305767256768592009454252023943186194588022618313089266615859716158544251279975021750673658828401026865481856749610237218371640690422288603587726302052018077655275180646671924446714526120173178353107283035740547753810801616222356582165357531152498285508702626074355368902652013921510304342701092898849851653800705367000113362895470577419963274607911291059237211782085875563420302361114637075296240693663527961467062018468757103682701951160799296000044751679640888838552885613976619735595740300811573678546679392998169015799803708725207641256688101588802134598511710731246460550157801316201121237587070527327306395214519671016733613343637635260963019506481423849866705890756742538871901802395272469107509778217570293054632799361922542785332070349968971024054590017077594178526083563683092388716561409150116902633772951874605188897250758233624741046786289077173766031577013414517259817556120294385695554261275956086056279598577993192255611778991629060278269060518910026308419738701538642571177591740036924326939336442995684904196957868243261165527937221714980846718226620811753246721392687981747793721297792183267023952597807730158949680449794732180726933025343821349529282886670824146497383145822416230001210056794509486997693567949895925898371790141438326751222187600267630866653771581382397054802669453871180596277225756955044064172615617633726036157678082747514466123095623837625294182470838237606971457417536100074605613219213413911904445243929498389628138338900023270592450658367628076056769153658317608483197856892773804448338958971455492372753073709996076653946170901756305124836302914816621861518771412721014998072593017588201117168608211991277233274886775444123197196071208513201353939939354249259764798495792065167450890436979227005309214925694053973396827008854308219883765789718186241374489302427304315374367357752741131682932873405893338610630999487138877625095105423171356017301255278483261502926316221533417400150993945675885844114277537177442347056304963531613473643324260104920235685977323820845078268046750262812549283248495139346314052165659149111163990043747777398148509252540040120202938174691673061069082423191918910168705289597281095982836307941152352020657424535934538773079660030792610993403302669470841302583735384855850469268611252703381354367403446834059199150454736809538908101765296698063400855624886470211668617750430107614178103823930221892694144024245991808662491230657423518943175229327520915067128538681364484547541497553026728489228055834384611191470877831007255133244888169321170323470966787677725895761118751527318174566732087194339671128211333175887239092328091744068872244074795259337453799033174384928702678084901655621959600428410977692493271918854863993552333026121313567480058461584306157437568947867187085572326767535959615405674447641391334372091705884743796478103428534711574324050534711664031205920105446318126694297492112620134259998004580222839794821539797366707061332533920599373513169449201081044843937707953330388046120500843066088677821476408438838741806427554440123806355129612712812568216852264904730606038877832968660194565205216270601223469093114332433261016510482243230707533407583735326466876624604765334133931478072502771875831570732556436291832398838637772077317408906262170052888189873243644554412189389419827901333979921688882708212812267921693485864491250024298222557053152928720419850283068469665251333528230156914573993661311895067179513426011219100705668304541318062319053514593516389909618081645448493640366183746429183447583853317878163250485604666779877937078955011523733635261631239750744601905559250351592743064700181402552420557921443917225924812262807587871990522511817041268924792251682987194549272430411127059421036874468457027702409189348403166262733147938356430215873415441776008179457541058615159102872573831596401150604146333464026762202752886569039753348180775771670232699841345122841835339523988208447338478591407294242597715182747297552392395391780969201866727497513428047590088907565077369503180504615177035983458026758640230693360142668635508274166767827231326275037686545969775183787689940685539757807224205981327402784224272392273158723562006812277383986735053191095586243647918982699010367767443914746424108444176193664827216369507943997735996915773181771200179172418975072899008231012510025310677707220553619046105569402548782538086446965084074081258028878185745337662924745602196747946530170462532028345142405678131672635288174008161831380175311517892098333541352318279713612714288932097562102918580981826970882105283751299255974010532946909852381999724545847991867592270551360498041296245922801616885811601753987464153125740132423611483922535713854930645034736416839984534648587037925928945650874202675941790614227244012601106002602491954616972395825994417251524179359907571017599508650783460173982819951266997086235672132056835099986688098335769635155866097869795401184942942729057938771306985360545353120609167891640154831509193849606244513533899057871732762755291797936599865229827955264029182884585456332668919036812702141869574457014727002948308156428124582895549203775065464169801390358499943129215049724484373196173131969155840041657760050644615505364909399477087220470027670498460690265878102321585328660693463864810470463296422489081656708630550723612087830149704703788385876367963801894306996827708049989106669428541077452176842741983978272654164327662705430827265200860310258179931123759405037968959777858958082329180394613027944891092610799444132136999954783702248918462358148500404524744325533819839572621643751940153814211947572535980282185616012708315348708163669844262458836478094001064615308427895938675005276458307554592062870079774901466094094737028655761380412692535994027164021437852532587879763468658830733511347931860256360287726063954558772070551029265832663435432460111451079285961320515784499540419415927378877764491889613072235844707792919049054819755229696886167419458464542385915823956493052363677948047364147206857306265443549239891752656906270669648066608377283370283442689074875604312826008407189170239623779885182076726325166648972910597203278327427692266779224601206628701866203318345630802981265960186840767185340217021164820732818367215171920643657636772462655189289529965654447812155358400193274833428730187684385955701667116241072994273866902705169372711729587136172138103515583881221604948823228075549602664896063815033207700147740104231342479681870673065110501608236644041477024519254372805019994671515959876286591089100594894938784169101348377054050771017205305152904493635764125476586300932757396340446919692491889882640872715064521618396304346447004655345140699299938590360868286773997613962801010248502057152214816533468262680203016543535095123700857387024619314530028441752981519454634773049470652584830522770286838014489153939954074435512434377842918725829332948838625209674591566648271701082145643192547812018883561229021968373293261417883082105054550746361392018050079654787063089675156802086438202790814495260478772111037532377362144304249094499037101201928734015080445361545865423759587979884906688771598164659938105123158012497161095491370114652295482892051454804460562673115066824000308072493434860105602295861745398268005251366485173865770026687053119388700679649817230344718450214356765499844733146605467163348705142339940193066053239964138820630957706581253009547690302618674345157739916547667930555493470370660623215766915827876781826757388856639884052772311526406752523188485547311562983151189555495070734100965027646858139124618587650176225815440524559855788067316198397607180692825973677904938964561371575267380581934893263650756516078034522920735768675519823253329842766842109364292825248069752154267794256676782836037814346864096789818197065939104589554442577917954454801982441029388090209849133261559114228768775891701493571440806633487929428780122561745774268309643190936414328379962403891828113544639613381349894325017591054943213592456954689003870242880413192742354811933291122143632408750981677071679192360959972583465295126478771027881591293504662855572952729099264251312086386147926058714553011491632391154288715886167989356275168348387062056569849126153481108848432354582932850175159413073235890420600843305640324624873829121810064457611641992192772669683188473016995568744551410377856712232512773775570279710160246528365846672275294586667843964965722223206765852965183015500920989505597308129309810570626201945113070343640085228766921043005204814882348101132502178140615833998087228218796349360118678823330567200424071512237860483224082793722169170199482531224210853306416578246666228294403863066455840206562406027235414967394890916065489375575013536455254804606601649089035848110849499356474503665426062754922475980033711072630796969188763067711929034257478202421950753197769763797585733229193198298729015249498659195771278986972216664067071260363063881078004417463810685144902166257685022163268232540381345832921261498682505968848827793122345613567563518213511747466771369066896424430644561730897903624813048743801158976929103098103060540814800029954304408667081892737631568784760549277928211564419776534031744516973922036136687181798015404609816183450819074167889012403933440090064918363418739229628038226088339377228495617263868556509856375893318767847314448143366554305548978374392158820038307466471199362842800498690048208637132859608416668615670722183139460379016221681225764147477419458604495626774346535325977479063146565262048578426610268275258295716659762121340245560435746531755297532339631569032146529658161498986566130796182634081556287926200700744134630955136539926632404746674124329558133083809413482149070017596986090199104169755450263120641120492038160193712074737070588243685928695872076100772356516200571181418012531262000649578798181158547894054345733060523763801430954963582680232770738392047816190205670177450492134801482565582629793238007221391454548068425450808144273747832425143645067081466256437457018787437922331620252712242616388135857503992063594908108939048495745570500653767483667639537302006872822578109505737079390116030851466800129640887199620524969498248623663524922461936399134763637667548958102141392642498112251447843045534875519635582387470137269641953531839774270418012684117048332710134763553544083301696074594873814536167153099979661402728590538397556289160031323476375227429118717806171875339339483716550999882746526240608626811556208907061423671542944805428516131990671345044451426370853927683740707285062279683583659377607529567633636945219220992186792793698249913727579470121836548536363623993983470697835455922517483457721225157160847712040176141316801710974558506833291871495151712500995687029274497344846464720800983616540755934743083049976678108930202540668013462318050272718273096285800744669562788631399882764502579431236287561110723551355836032499571799489460103862488208591060482003849186730120299703016889981589955293322130096696545346058116119044978789658810086002647752993101396981375176131713928564219689060275350201683621907393617982480190243426786475135772212348409400967878417491453506002857245116469686647471341025545739823847738096064274505302616872360292529043969776229025589161794607709180803321249141669661262419089698861035287767637280588838363265892976925313475820429510597637588858264633511127161694201874396307611476883508699528739264478672505465364506127468144115175780936511706244690416893616369027279209501419810489062705759109243757472917962575151107984571719888039604121100754394992816581984347978611471777097592556721449730349128836951963139104447647679290291975166684524444882419207824547785997067713907613322907361955533906747878902372226905107295617981422483865232111700092494373884366305628256184202600353757011625509175021241620235536162495220278931992062139343986292526352281927880621373038861391279215891934101123626150173955723819238195057066895802561216783843312621752825700021283035405373281213489409824568641067131034003409633276940344926628294221194636897117573425436615374167331642506279018423627223297282983745910459177864962624166890412702395307520659982696218303651435199964909177904739771745100871655014634452592672722347799747592655032133099426565700122673398530119349461474245512680547104851634287600703010392339946663042864467301117692177472501371303565677432069149996156061002836653111001060008671525578520392599555383845309296828841173108566331912981944989050672724036760707681763960424833891543933520899778589055075799385450652163660882891031098559978504927304088809107962604126942462018763190211366790437915357480985199118021895786475169098964480828228565384124021645248852914728968455817802079679516399969729220707893779640325574275314593630325634225695726705772297539977302072501440009761399108992130150877702123317822500150258373358211007313276635620494301185012195215000425895665927280418538010383168567798978224564526555356494023025668629129997008729802514723170220466054372807247402464511708303457606272194868351590817372606176461829851532743310093476177337756568877800475618869838580957398769949454537746094705746748607189085249789127237921203632717899792294195376470196330920011386948172865494792157093986379807969185153752262204437787674083782203415001488813317418956462415621876392244921102056209489070798471193542770019123367598425213626523251895235178680470404917703172006061875244722970358131047892761809486686854028549760169769128142050486112780007027851037475335470407413484911412289599103051505102312481910361173027489356606343457701518436977727620719801526748137434321017573621907203349031520208943399437783510598613340632946100452274746490826182425383043467196276757318408604887830172793318474921124189683541423435881125321595661514888967690265239660880323797533959200190441391142222739358094189982551275337768333522903703816113104363887385233872573345070514651981757101824948153477363353876621942501517995612082344021152702375439450549828688538662502905570371056837261748806331459726694326618655865316259332321448525917914113326973442755706411546292828765746030405748657672814660217533194651494363721378124517653430563889928197950383521815909109207806874112634110527156009963015984582222402649320241439660303185098467352304990337904349473864470815757385180510512826342029460959055735143521773733495609625861464580745741365940883546064408193440091618075434576837845319746537336637019221327720440824834953842628908466705231892264034400317566496979702683121806124100799173251181889871408781734060135219108495015287652427463620701604224491731700331177580557799530588425476635072056840554664630215895122756658351119523707768519013431965055965297122754892576308284053892618605837307903376024349953031720253490563591801211184124127947921622785715777062299727964011581937349953862976130072773163831938278735859922713323855327921920864162653050961786235166897458875478008847132629238079250639414699664107980310261390026029832295696157147079040153427821813600319874236892400894933827392715839629257148492538877650270922529708429692855864478768107267706521027702480824022541720485778826851088643148897733298154017801120643096093171270398774065781845205970851046186090553902555898714616493421909755782714605946901596817972084138307397294767042322248023751307665456990468593147742981353760223987485590346539676034365300317163128116575695544785326372640740394411159165127184269374950645322013509929533214571682855384812371727514148752849986374038192139084847489300694741868369005332861212650673421501220574550934824319428079717897852398959591958774990420967341854446612368916552053467355034717276785337166451560479890752270094117704086263952476383617678303557878989093039103472417326662219308611879461310994735270471176592533609173102088381437650912471855854655912201002542975768960408973574277519441516338224313154840558838778189972036368189693132270772422574314295114435011879293044984265446147148671697961854799593751041276229819297059769367020836677876638096519872886781719496731430852982244823651436702835934571091700595395042416380584238897769935993955994756983796123418380989973390525353680007487007930659584335484634955174477517637498497116825929973807041274109950086115318456388537786498329825213674306206927807623343177662315378565675335791036965305951321361444582353815980997678480033756222400302508260503988912022797950489489401043067857810194518906155336589168179478706230715155042088785872463178470523554289612742768610554281769028959971308648655558330850607129468220340659404974488109458421941133429490621121921175277062156125230986415612552176851509527619897469045024470303051230842088189699601572376284236518093064459949199993754972245647757012800324120033410007598504984307691429714184847410069595079277833533642304500465441421348760504166485172025334285374815729134618935214663595221489495244584244314147826776254089684787993887956114452308813734125080825499591250921092133640288481269843870613248237700067736196868480607259761820048643813971426226607973374326752817458221945452071950136029785625249572368710947475745510419891105970394327585293681364615889041153107678952284114929311718003750534564895443841784114459912789830730727397426670570785602489975469087564763250236485622120974105906395787548632787281957683945039920964687753088397173402819572146046570616249519010066745405974933272759448147946231111341878851870674311973891591124327054158412318478762005343794490262234669843831074761740539982475634390388722471982829765350462917984588507901079572994836156620422247716436618222185452642762222976740988431976720468607827270064860325189557774525909138275256308484842627875270878008104499750073179189217502644002204987666237645694234022020557657529214540685357095992495914890548112081566657968933701594111716317756748565616273234269631391867134485442093193060055758091005742049847740524074619446448041681812835389560399171550335678048184957224485489403921922302508076452424406235336971141189651718335321364548333732435630986033663918880855670347554937006706034658584394030420869785745263305616813381828111615494720700086663034347956866841541051222076907711309528620172718481035538366207689372733872860435104800911361960653746717015996583797752208323585672424645726010978772135194678023779643920454099064260406770417271696950346307205958985587714557798104171284368994589585001382722411101026556205225955816276407765180306217867783797943912475131382100156783105382110142418723734426185842990046069514134467835192839949488057907895780759032874775740254548742009081931429358440874233060950543833779755104807160980629572683772244667417117402368411646283899674558674161927508960424709178426296256881574341212803880991079318139714279522661684956853654833994570728489641032405184783556851096891366360243611740121498992235899493401885010687735661524924242571190679081043486036922338383032853972439164156450238118616227734339278041588723509945372815370967210467755041411061863608292982111879235976612641699153206933736353975357874917134531717829461442191508979447128566509769301894100459953771935719778242287024372444216488720047093123141445057705272941958559336760450580620685738676798967254997189946293147762351482535498524969121116245117782050701366361261607595695405383784594802772521501746587765970330396110281308828846181688765804904049847907451057905146895639291164045329194219894548380868160976966800654032834403792667471055749080184843148753228327971655377198355939774222384925824530268225771563896312564590692079886046608758358878133982648710353307427855318751833467044724783586660001519275416800928527747005845248717079736028103803137140229277068168715615848336620819638261233663630944853970762340331953074545007924770230437542296967808188156531121441362550916017642231921627132387184605685448040560068949172016944461705437590679974925301017851249786414686190263823507350922179260069856661571390143009505787592856439101203328892963846105346904701818305446475294377135453520267894374003091945229470627531360599363933294541987183034761494816469795854961044098456790854434508788865317004654919623544451869672170402074819002291380728218714617213806846747863731573595372784911538317489136873345054894833543388060787808372399076753970834253682328931633880698157700210470011031226230345285016265515642012063410225350613306458010272102742860331237696668570938550564858928332561786024506980805239365939557504588493188228898262925909497058481075325040129827249265240466466080867835921161430327136611307256409859716725431670375031104724482895461745333735518400295766031739530075181605558652686766467507342896971069195318220953965205403176506709377260866170896409069480862339290171758185945178061695321391427669038276486700664691421162515961970962597860974348085076621121507502950986658197765798347809184823454989535164075733485175874929200677204247948435044092655498481197482534606861646568253801162042118437317482117202691618420454386936818507677719378368873990273797524890670928045423717184020603519285063792487639759959185053639602708029351837370831916880131318766233423854936242918743019917548492928882908781223329375054911349465601865075504545700020273217448784261927582970680015191598248908424115512027571541702073989296488838260683553937826154617840955257728783215770525526027694360027743733996549521050925255126086510280721502013350627692095850889931232053095469938472409196353569429103394503695304406081479728054257769243031246570627861853465284626234801443408340386242814090518247972993857019002062565056804529173904134619415781861071272326695307065535394616792250391031580418535593463815592154112060800101880233044439945640814439371381016295058189269938787707389139908954731475022951312642517629374827241891270356742363776568410437740223114368001623351651557654279193498290514733760323073811196741556309818390605710831175412925254405228593402371701012261175026011933917305950054321711010010703234697203863981973806801191853213747690378405953437262005440263401168951607725458444807698824773824845457489099036218951068421619974827011511092524513206428451660255349601514121005024816653590554384878319367038836099532408525741845902319487059849155180179623837664808162355356843831630629282467236182626209934095908971274546149282421639846112703145317312715906551643530282400004325468724520786123604272910427271438757743842446894388450270432647922324270500643954649986160416787308316493124477022677774721360532053717196187410792356967256292915241849885641358336640096292142862204918087789805121723055178108496297612960054770724336091735202567085658996058850956142186599206106366690670525202223885424140910178195905928246766784759344725878950660531170360963281760800986514065133371190862287601833142973465015893114548433622207911560371926255867511831064927578991164735349952104478416766235644128461464653428411419939713156353699003491028626594579744618940688465286887309034503827215950157848186125895059773882809731509856730681982494836307891524104941137939668552036989428798576373635407559410239629316570117249118918822747839347226024961885817862164712315834518334976574090690397592037029929285057581182648500778802013142573415748480720329518781060985340292275787755439905521243662478769497781577854130444911768249308925784909837911361370386518093867056417466445709748671563845715384728649737999954842612643778209636508096769753287910865603166492023661666825015032510436850561787492715090526774783338603537850976979639335510228748266875759506028031436219555639250419001268583497058535418274659427674812160042260947202742586890914977582580679893614516890832373851550474441223771491603795657244869211353498589792819939383759917900910635804164027569253790119825860757848604399916372076572137600377076082112356965683604990952587824006736363380279483899532426504953790246457407008220621655986525968006798134577953272233725903917072575625722762384816749780719045026142862072207641404791645306775396127809187169339529258084292126863917326906803079672633335422990278525121745948837167308239377137902584855563514955230260120446359982997718129077072667148694285864253896548489328836826737910498469053268397098574014490923984545104809710245275086398538929745715730512085448379147230446772867868380969288576539916939043575200266928447304032511706090138624554927932496529184136062904236804567354592277660053698425451782228567158105018371350870198440235535529241366520341242299238489415745530217216030831485559516149943426503337052764537075167590107142513081921239810623615081562117035629275481087695105710786573721835514223075190068081822951419859802991685676668425046925972715349868394091751696749872893366848964603933855329297711395129972977799070398830235461030168729713815038632829028277148005807393518036256143891418345295194530409748386108892602817154027196974614684272173296887443669689474989301057640960644880929868451061660916757367018524430260740473578987562063841166587026192496547126167065098456497256254196520767595391766435465240656284002414270291489828576822838775085349150214314094487126624955296195344090062968003407471171887654719470459095865488596777327112354454823723971853704317826162431614963636018183711364161718494730905534538365193025677200890393502481806102447144773698889030553939761100408024134162562904247049105764316516541082603560527604419471299791515215239215105391546323350415062938973185438765197872895007312323349774033268735302161211634272671436924813686092460498858357939840371418983092091955270575203810575265602328741260710355158384355735013376004029940464814197144387239448839176524804679122776642865266404616219803378179444086957071787804854353586069615798085337357787805277980592568081242549745917532747860696956361002777459392866178174858791043042448429471834873983001353115304535693105853492798084313541859263668365796137675722152281145047565550190337101866509089678787768312296764274114243036214359398384651248358544299215987855912113368668864104811730277596571938457769089809094866307654058089557993442670724574973121045996370897146764573579226843319887613158633877766493630785240035095166325644359282733980823002797014190014588953311863286118056418640918664824917284881220971303491293153091680402458251223453742644729222091456728742960862218653235299259281184724706968412188776921312131885413106758861410655532458938078017899302131452059571747874795537563916079234288690914997984106026258326782186414406081970076413309058918590010717737739681584357872640653012335692177908922923722237345352720370593158378754390126729646487279831161493367300272541063540579329472559786974667899365652858037156438991729666633224368897334820694777434548596072357950878414638014414708337335151547897307072261836031725155532482812356797685782386929315493893569328712516860021055035162490186398086683901936693962855708858093930406069492977982244145469751598639010836020036094009345292528361136673427433065193073785687163638059828061845679951006417546941320941192599837951387055920095543641276078396138428603125159839738929376886262071594697990708151399295540917070827379997041246925460403776337252914366296290164140026004849487963293328640928225046743007244233940458093807943342482243544842481887668125164545124023879872387864313863224915851600940110687754462530904162378921603584245262245460868560620529117890661187204459354442588027463522183365382909153437737307224869919194122824678487780619065703964112244792340535242006950869492947491084979729019072811444483979865244733071124935341776640394313793578673991932664179934350965809882725859101604657869093729927281713399510091683189730097675823229862356112561428508293536629277628328147470814398401547181616301666218584408865704451020844134582075247272583374500096957723523143865203259802552857642010893524514320360780320237379119033278809924224301100568868232102432426905576732722398646916213870076811976892153314370545106521377896953413214701574417182442967048014745123783654480812511848091517217915677840511432411231253748776649928481747071140161667146244171539662557819472677418865586945035908660290012564234251763458371264322118594312439108001410062366699424229733781419114182144390843343066131843102461187965355663218858439184844971710138111057021184023009405337132042629549181654757209380609227234249726483027401478547563138174442728065529255396928593991171419956604017645776069232539547089714812845594544228407413978558765707729595988044225381916989313531307610154037575894228311684569937238604901043715549849692434145951226706406024218538163573392815613586834634758700655174141647263223556765144638714595384611451975219062359501537901137832680984619336828876941007122207968793605571993666775912137562576116711698530813766546319870306966172834638956789886671986638850161608440368623674827204732000561635798485364822938425408952008690612962560827567295203282112068059295974454428202347693949763751553521558825576351612122200892357181960541059167883943833340278566108868713917581494627988726633842820379745228367737578232131437931900907515965088446199489245303638052437654858826760133185337498816547153364081294621820521133127648625910703831955091716728405712724348251877791429509784583567997098610292007093519752406781731940063586484404325801471851439250443571369471234111229077651944996801705085841823339257040466733485694073923093768968071383951090828297020572937561037427152041307708334701513913727303636979382985152944597581152264926818097060051227443873598502107067782715796049882219801576650216291685703161834965371220268986667422727890252452806679530039029271296278944675816732817096579183303824595000076689025631435948702349677649968864417805955786201859240064773706094162222599295729159441714488862874779737352867922024954045975711900802469688656481028439075385623231370650915487363636594036232253119046959783777489115073278353936725026184119860236267192368234653890936871477429674316463864422861755805617618921446548293904606536279829122547069425288926317298079337366591644616259831118014308953665931037984814754362635200374874136426956305612643483324199886222979024432228163721363768073993866716285660202900667369381022744941850743152376801308065364750659116322788493976549797466765505392318075151325232246332098228075446873360798217562724163403851361058773137878422152038855909618825419260167752395711203089731875028516216616270786706520386231549290264114493503988427758516216828720077216501432952377358143133926199155519548460317830282814436419328220068565173357469612723158417808822489190101113185830523586398487020005231482003659382046339707815550808888141847179856236089691103679600753472258032134376983979399285808084764626916340602105212070469518953698749359885796067525505691774426396923351649966825951908730911940541590900674450300069327318987332910370424541487588134216868636064615089947899376459644381880957434858963036920488998672638044804484126608723925903825744540392082550398666668271577559928772034326497101305783705672463962082797713766633878026102640723156288409836981396810488354837634076967337264462074580180878647986982308809005596037043388927277058684589613968252803895163002295291472526098593757002710699292111104848473797571152149303442268630384298374096351400348912909074678437448664052301825075591811536892914319493811875228674911775401810201647165029813420416739021098786072845485216636708164694678990463702128141863599667224843439656769375338632253169724154024590437480466116218547084265361733008660207010201269817051332861427133687393405018166826239085553202719234904100756924056048506497075279462384953187302915750286027975394687097336846333025763411876615079811385876609842010295529980327954737521138890205349055859392642821435587166435296209079481092819754438696176941752192083118213142665095138581784479956665686324725693654956185415833994752823344123102716188214273182102643421321267104103057672504492763903709466288186264870042237975647356145537294264580478620696405089917784242736054420142423802454153874553388840567903714971441830492387111429434397444153056085294422740587190609586869838432051290801465507923725297326755829031348080996385606118907698382023999774597499410065372452082643307198172426996503407240084514477790084203998718637580775973369914663266112480673915604020294249592480464685757197268101203581130573681531496383668671174914285305542593909254187458445438640928974096076364883211764417592870594723567900703646873670571444787239674115413805275718685169472727319854233593840161107931942350880932024467714148388827520583520941863539063969676422886885008806267301346672738654838649611269169245980518374166564626977207137237758431136404314396328999695061674620334530139686403536600435604970743928619405429860702037241884705864179181535942138250006402703662835882934620198591233255974154055219425707254391625827682535546267820861084983156590209347571162076441458270460498662383872281540902104720473165625364530305634946843012064739920632214499856748735876712306318760161754829330626629785297485535716769345265442015556314268905969154503409811782851465265765418969052001935645272211517888404788643040846560698449902220430557978020128214139628199317204990891413437116580116278161242256309356552114271632432372531027968047551032592045621013043120027010114642480654702091407938190310432406441377091553737003313680065990042937534664724333556278791443094886474535369501649637439090700298703154066346328875186397813884634197131020863409927806015733352645010724263548838521043383107715235509944018502947537272841634832733351547407492661469807945907175522886161531788324193079401840571615418856417933458568231685054240620793454607956846726220037511288062071198945207887464139898609839328907793863874957394500127672334116010419488628085780735827901132777567444096060561611803371714731261597237119239740915420691916975159846625177511871443302458308968236154633782099402326436098029421055112110179999700886684813782782774105176769599068884233477673029844694230866136345847782049672356159415294188108480141949902157336960438191901558660932934059013320358022048277456687319220873266407956260277887129408302905075527808949986103895144303408730608172489220773792870168267823471416520115877665808367790266264738048015647147817217963071755661225133884258735813614679650419829125577925060233436961813991391396320117148058832446756989121050543704402950017472441067249192683139281988942448739021504880778193311658502006598901493043183733635412765994589517731098303971991844305396669210986368152543213729403242508629214789115841782539715514369745254191928979674051646698086464453836039284223381786967592634853266906964786674620324297156664924643271674457665576210505502194996920148733844963945260038139437433014996819453049973035625470006323321407996261713221479074305291377934771121443171988058655949897232141392816751443777206380506126662939758779123148188594913585471087523051113371212323634944836105722577050461288945906580731179148769460250553198609683730445039233906146403078049360842862088316886693282853108240806532124149636631398351488589735342961423786363929938112845455006732041257707789004237687220460636983715015500639631445738584407354637104097709412942380668842239403953537478231502252836441518476546134314565336876207869027139276669420175316307952937838664538898763335006342797147833955429979961805959873699817406246792464490821142656717682361588424624259332835549580568903632917476507106922904689620238355163397195144907375475396438677684183414832843145105194731788476271599316350537110663344763884469792949846934291009296782269847741252057022912508349365679920672005770398611111248509438708978790312260493074469780277554560170790444704407092906463932078816968488725798628366161647320819264145862140425774251136936911238125644291281852461279336477098366323397818696927865215263468062014473321322130888270841147059654817789850222993490257456163950046687331444561298144622772489668498498710702291586445710471139655265435616938110575060082744121234547195373320176403798819705128124627516085302045455871637736475653587121456618027049508552091714191496090305626652954137859346002185417115378206724704101790401992945749256169885736494810226491629333831168016474623436956841410820832259721371195924771734027443838355458621757595275973550423653723715744043212577472263556491654695843372178191894065831658618274642052555346231772668981101508487260285685674450966207832519737474749181749261741981204522237290062533982515165964094728679022018071441795735871985841669047864221682884978037680247237977153890222552132975323973117205749499147180079843449302682797013751619859930575182387194437738771499773514171174367540901501603133212086725055885118494670872777842185733637045437892625475680140033216703363669541896496393786917471157758710969199261688635593605850458002521360187112578952968785874319887029774203127430409057550362288104231633591536744007933478193006623218289521782063329216567469413160982953419679306119522829106359625330511620124699862131138224131692116848914662401646209983426684808033687464599531613475281094333173962304022787980794608011179260315532996657993391805500411289584545039897787647008719824035868737314924415083491792845485295664199043572868257868338825552065645641308217456558646635740554112305945796976788425247616702156018162663589860723584720646369932604258428514039112996555157954129575000105279764182653851381895355785045963768346141679473952125350813069869310193086651109340749891057405407857521100601139833589385289786830762471976748534499360720144568559779110264124827303251694059715885028086586532019010461643201077717337467134493912859202588751417346543998048886147705179075229776152560697503771708465781680774701622260604748627092649370311580159297997754598903333814803549322949495855161791618693133353260147127991518639997683537258759015086231232632648350092125398021852025504726586291312554082360037978402844269844779484444973694051857481496528173100660617029309391252708232974013041325401629777390467225830735246320617770079470094982614831314633074695370637942410388050498889813630424058367630323723856996775751920074550417484290929958090293859070635753908845024602400580526944008221375394737031412417200496001943137684246911682790545211761681356170636362750676998702696399545269911683607115908280490648824974222197542532715484603398861079072712656066684931498409821733437267883965595766135902628316666551761833217530994847221340291749238910622501102745542994434813027734687415410647752104103827881365405898832292258613441112875475308301491761328800474049482462447392877733394287933226204602245276336484636561763046412930802180543205404189535753034073537715299165665469681052178042552692745911963970235669728257613076702634947532113401825057171102524283974289290720272963220969628323883229524318321209279403725253993630989843514028733238522550363846544651052587882342845648543308925149421371255069105479936967650623808372915718953378780957589060296663555465191080784525992404312052831001487416401057667380731857576109245626556513825946779002431387427804557732394441186978249838851039463187700827054972045366501260578541692767039410156129581747240372533274025532327789787096953651096852065965600765169194610903320641675981267252584555351939877099810241998436860318209084032357287810271450104065491260638376428544144882948936724165573962297694482449340171285408658225858633214751145807862263153278988854562145881830432918108459257960633621737565521901926893126797151712409219268426064489522448640584087957400193819605517545678048469127810303821145988175611416264059202096809977266238404447552575807538508414839872984217675888230745585846498197939157192346084730979532514755829063540520048431424892754796577302299894417535300661081219745539663312929526105480532085487023490284345426417509384281380371549169459707256968751150206277164987561942216443617743611824612446868973093051056451540410675065613961735692555700092842771143299518405336251752305851530967606855092083307858006456919812695700270242172748902973043249512050794772513877064498663821163627429679412977361103043356806636556530023999191382515100207916371192274637792652862259873193162305143450107119746244931882954026171382376934016047476893028320310972821495404398600108119210527171311333705850759858584790195998245172520711501566566244500417041665124424111317205549869051635754659556175221750595186381356448131775216952282474264614256135256515468522013443181051795114340935744102383058022360308545109424682456048551736454522637804642560991723745482100424183897200158239928098008307913657877208295001032492000390554905864964019156225733399120628940446512710534460599019158052635036403198013855049223462416139122766882287064963615389118497535994281151996535046433767509562471232586020510733985372178269191341800663404423819041399212696438055901743595880075638896643217892665016960208243518248086579142870378556416734174796692877440138945303715003156230011076823657724150120368351968802984297383730977424923193846068915277303815364110176748310566495548371613037158320892805116080110130484589019226303836257140065543306565594985297755323056653714941119047456751795412208421580243461673469456662987297167236017522263901201765807609628505666690596624311640464007493128799756417348348727965978022968656490515188814437091365497892936690326319147720632574213235818136402690414995707020693746632966207779480246597700740709504782984899914549033298821880687026853635332012357481410467755697813126951747087780791445297735075978569358387542025929509220524681288666391402673506390268028965206239491668480618886773445975510460309062180115426828581880941368957313950782088182864270616194864391393197094452202394411295591911777057072266753230493532104372239537025221370359237705552756812156825709549120147940481393068828198569714160583670371257784701943596204907125066939165538540559291866527909918824842267601139289464850820209456242870412298529017708945473992416565415954442752527220476702228368284017490462606246660608896622470087337230178519755780338012802970968114209965950813885291286566179023689328549565044327615093564727586814694007486184305271679280299107228950497826658441539117674043718733935078334356569605838536502302064807747512180365730903332631014902061106962064465630698698409958317170568200857603372626657758982042266807379228049567143072574738969998304499324505437290897560352664525509233169215199195185784526218524324321230533324207745999479066413847115036606944854394883357255093160174310974295272527110673738624916724161805911939079547493425448149679813912437515777157839237130206637502830502704491519588149372784670784692287182765391690494379930956884464570319910496619653068810863054638950026960854530368103049912119214290944254479997195715822000671458504740321174844509336982509708869055009902132849196634149685799852859756678734636005810861906122016351128095630195024873663311958493508558837804501397012135251129663822732881884057987786386056776885316723919493318124623066112198855020247359624150236208257396345042318860657071647422364407935142596118263053918529977166742487090758030765994308744081674567757083983491969387522371085139922871942049721836065600199268899863131431209393348418341236536548879914538558289417282123324133248419521279816466497798839082483935780260829974925862863330702133063119317212355088128186202193706330577968952019250223419764893838640076121378635542735100663299712602997796496348442132332899665452267560469671844002486280684606934115608443696441185621637506572477561167701798873554487162104121587715169790874650273599470575474683822681785283947923474061092426225473446951996104775960805690144050380763391345607865455840645149776718360142974968937707932284695031601106179992837672278888116868439292587615329714207539751897874716871204843011909741691729711515919598573690843332388179114624815114750227081225366605361148905547510154944687380240110946212428496641179918777550324874349460192987366494426845800264777071117500582598443303088955336740549007307747252590516371904722866840393308713230893860469687485059922481733277116978632086328222389711498582634001866226492485361095171880764926828178155956249614748786668510857310768766012853253076396994890435618999409795911744506155616799537543706023409166419063168754540284694679452844064049664502945827648134517672980701075197803007993706420007613191886432873470283319133090100715806765626615918507121413536144915788131118569805875593481141705042439097318542412041162126505429078208191948785998536385952600373820574286619752252344575354752714736016845658158785439135862931536526579900692777829667062531880626921369748031550689609990154983802451937476231479016901990772593976852683536292742477276700966252750712394207415928752554490227551834117280367250729067390488586082432672773824789590668966489986492198527312924275722868751817958039862040959862778093505147203095577742999061847711627214129189271544283927174315596165869827618295732413835035312575441828649627213414400082266580030161159029796277421827411678820735476096229194795316485471183524045027280796606445583280272429317267721316324201500194887277469467521742735209509972380583792886296570876833781034215022650064395620732069814549956244791543229746693853201337717651785914790709051680346241982512218444334289198673106395618407675792015994187567210916191086170919844065882877407888337961760822911308885947716881078712270447644690147863136311413217307413441718085747363522701074336161152734816313627177295351844178149281346325822104771142474516502678554964955791830499321460922688060114049294902801073301340330445066661206927096762903613921162095718285089929920464539817538625665556240832930558579002518656742802740207553413424191501089565483763189456119690051977386311731461386949014319668686248184220207009695399665683434181124643047066476153204614150047833370902783896974495845606321381670965458884125709213342720232246608511923973811858207584357446978384155165015361499293585676743494996538148140136351454523707596772006016536316528648915901588758153099870530088241284051436762809785792304664348371853624004325337523049248571345550170960231927185889926060378911511123830388634730883245231025909655007670012168374757262262436125276929444663790414008753625278011418417415563441715308340066569470561368119400536384906302000086549093145232439685911467863138173691804005469263949542797040387110582760225032731910406503431246469634901471184992596613083616103011866562607791849789414388576899887836068719628838145286488445455438635892213136157478802241162588291852440983821215345612541970948324955782247254709987969511144667413443370676235816953772115568209631721272775781162414489626637509575981818712624495729830171274306399426374448536753631551726211026598225617969567243893721936356211417355989902349197177827992297294157567160866672693383705318226349651858553329543382477946425506490890309808536909739601604913795120061627874529128676443001069555687617893027742306804118534632171741145354666615235782593281520445501129162550832713978177555361026182440701426368396926669477831316605407447925004241768166389165521185689471588621272858784377747911757814662950557835733622188195044728219071207400438409560392219079997490493098560495351803162265203714558954821999250894907762216486694745895063707184366180873749028840202656633247569041817254715102882116857947032766819645139804253670279275966919186057573551371082553044739816238933158942830165291218702577498913406758041179906891831144172340910737459497540533971067245529216527216389476430273891439236725998168557513594618928305628246368393496519578229703313353021996331070801937694733313269178077740693439996488195425888313121050901885032466079456554307086062942219422805503588074418748656153859172641992358356804672602388385106904479573471736647593721762748898134226352879362726255062339748520972747351946155858441160949779861446066470109324696534489582485642295668960983862873304521085597624792227737417049999882027573388101636445208359542422450523475676975591234118491439285315746309247272011582804796591150444832061302706381795131866643028966449691212101354536351102536827248039757429389182011594773091560394108687425154720811863791373788265715650923577194399614168055282409130960946572028919230970597700773892985476303678742877724224023630794331774323971754720360957564364384336453676258625999527433255706560059481168862337570534287218241988172471388985759003194630116098194281155941862598840500713555132405831831474742076387747872039283123759828294094706852107617341758351512526312758477961125277663965162173470701484413256353344656305223192467502632174944606820363749988029771237708800659977934424006732997480126641720160923776382149478878315689484086290176225141108998859422252415890236421138229574227097057254088028948793689120307529642014519577668882128249472019522964710159242102210726909153771234017794269166957942445973812010286247519593821953806592034422876715276532715951397488693023225097135312526917848764727365339551057077781230590255745642618527714044786907574034672943472925227675188769340226081524395946428962495088691158984196472244033175990688184370077580536924567702934952357552143663327475797208202634844796423476208679645538701062880201580496303182664062427130727637167851420500336965609709569095196283097293861115873155655175389157595321645371071435994446555578996476345007431566919409408072315075448506676535583443905416133261920183348102966403666779061908771696652910587303755152385893229758269454980304139424633095901785981167025324988701402311074234650437434322398586497881830097454929297247685585081433520926883944466180631171940799067832258615397796749287112155637876522190343337744798338223435477956718939738685687981484295613592660850818241972671252299750455307548820999582857424189600993426779173504115407646205593232119812891262642240736577215131011983450047481149419547252863611832275182122239216179248932053380428687786351356319294076005850543687504776992455639353430480998411012384474979805602004930518847348976068120534179932623739990743123916666038639173872038671221305770166414021490301883183533234895831007245487966336100515823655470312544627018386581870777904191211887959380204937428795472987949908914062786285173522193661548440688754502186909754579585506285536653174105572117755252415947842742188213557838511832745959015554323691130228739981863598147290308522533524572093430418007618184071503851989783427993393689872765610841067843928402741138903217045078926630393854966349042653916675340545853279614660484537650128261897025403797211650473442546113518105640263713067207118742478877823356220785214938592005051488864577166711557599491726128002999570152416024291117662018557730246271104358366121658420445787563456099794574569019560253827862255828452090549363701065072139103819945405749270156357021159768849883432332193606156704052359324925665078045643853904483316207683224526146105082179782909845936292081790897613660849558960487165165601204120495264813381868746571756551748693511139920692464056807884162742961921597087795301620174537232385649791069822895361071077402243482263411293581021822900235514135633355814075287606969859135317985528773766830227771377569912963002523968744505875887360242275560501916708778333140274600869404533615074384265048350270726650610925136837807090084708296253334640881413157702911844482707967776228777939056877253373282372150572430319059736227331341018286434076655508559164855738676828957147942205963872320671950936665340949114909925466266504668685940011196415044069828673651465964878608390152345629183876978391237994260864652926251166806496926071655662072598869624234084756782385607102171397366476377514367069887944689227683850242528732888148239273293871025823934811067145472890061833431403191696402685234562134497494411355895252678427537048458858481896538609509735985575416714339573124716526286917935263775528236445246587245166280613671000560012512492340157629399102213561874698220454066609229008023080601473274027836001467681286708984594615717789664031001504009015846841821248935874292852164424846260402746703105955662485822215170408178181907496265531468658326609438431998891169361562309347399710401292779448107434520027704263938818156107999592970117193926242688513324875097562107978452442466317446007813936628688223134069460070289212461138421554383862290057814316685421182929911326280690551920237094705138420933032296991883615727296943872769046802103232070304891693546117512478834302511575648505519551887469180737098566526125676476072567538938703633545802025110689183726755878623749698248720832305215528678572435488553802944613847602547321980632761694532858429849410222229433821470682392112469253417835004200049357295261457360484431153526869785043294274069709370525469482659893187414388750519702485329942328453055501560626289617728062115003511931556518302719230640778403603229039114534188249500989672637922345103750116066539611147125532267646868749377266945753865324420808994740235913775991435298014034900616564439667602215999555202351592445502381122844929783819173837990618164051637375290767698676495325604864321844581952326668009219093726052182386751774018808923739311071192672266463138750936493444263638156607950307557710177180928940826616297615928954166959450606180927777482722322166399796244969011538919432335944921600824928756474755165263521641589268675267294990271446485625959333110511840343223656489233976679435170938958742744233920373954899434606475982331401854004801044907739839317834474174212860162431049235105370351894119057931838630708558805773176682995041472183640902194906609226855778324880061143203657306286697396911448080413460745583295016502732667290251102583972716488096806345618643424459558110159528754483178015411501065547666269585294164168364784871258928934084883656422807119454064780647649788775549964033484942384360625884378342004227221804396814050627871563756184666302781887863331292008450366891706154746525014995813183586726831974322309644395380383609296802852926448196658484482319646011469417072861689651645830111757431179555863850638100127928843232699467683068812775145116528780036031884721944167917646351915581733691818623326212707590630079312214291101262802963175627981975298313780477237454608832562102866717291680587841732804285879478155087171829178705396684096310392632418817585837218078234968659655035574571058832714554642184573066890783971724985059632677493967055167647748607437874043539651569167352783523463026147106151261612217714738304433443338895080951525219643039307024023111888901540174052266942958407738344346169869222052841678584139676447622979096595966628940745962811349462038879854460815232263191240710948290180007911121062492418991889937796138807897236681143224865782155053000099123856487319411948484023590792878110460459791046670702451417531986940882974125770767929012292124737473297883370910617416394474099280299124798009598518796944233556099986808005977129656616796458417236860640902337923048251491767018817440831307204183211379644912235974265438826275328976282855506813448501161463811516447929996832745781870627878917505944064809264461000863697357287865953795168130416581270284719106480498923539373195240893312493603038699267168984015851999544945351175995737567955897215181452228600487021151497654797035507659669912442341557062801934777145584371955426462039479438286008142989321475569434114842324498013834497230782337425978788645932809414051015899812658785396049622820080792704219917247090412984142955849299309166044943157975977076732018591687297293430000167067334335411919706358516878518704421125187886182719643218411756931493838285701811994188148847458510978394912809481122510179888933420857779302112697694763245409568671729693822027196440150060684258901896585274645315067071796038023521071070049239162324751675688037428018462341800111771209021787335565720454464983715579321863095793637454571741601580828677853527074057894555738830198366587592053066999590974885301872709558803122644242739841805103157354966613490102764002495205620820162441052032726589398101588987877868578104956367673716964886624581157868401212311183497249853613522567883361146496742086443950200935038864084538322217038392174621115519717267268499993486432526259501427770274315335716059165684445195615515741242572184644787848881774234268627206161240679661519553682498389170632411284208439219019807141764315909181701418789799666760563240186592179263592331669168956342080276349180501062395517638823705045596354580096189605926717150294130286246470505256749532091430277708618242440333793836355490927587594079036893035295288899519490860969128138903630162462724530229558604287760713404761857681893851792074874614060335549463329856209184339233377326235877558862276676170809224682853608352300652813687041179902937548620121964705203976074252292516262169918704191441517834997828305869474856758681361435999124929432359599626883885216221928128928083535661241452701181481339578699168512904589045124824503594038860796831792220931168398955422277781461900736237456837302028769281547836773299298081170347596964057335066806347371263293185353414193821299363933280312062850628929068637065799188532232858929082741886323730369376351573692319374990839175375083438561600814658972316862801261993844981766991793592661738190638085841432458407943668601649069828448587153830583148275063723344961533018524067945945850782499083972499532380062845217025074511405601507779361565745370927610069815932288655129045197938259168183887638841022510418755063542692262527903454158009358675950608194103029436114499807742948662144127421116993589553548224908637541449183364550832952497176468379929781041579484771067076725949328988684885043278851612612183493768041450830748739649608668240625725594370616314915477206980632098552833443741913877350455665497840724260397664130159359704882257303581297309555889729496847546916739238791544347221282032464128724045189953044967530365832545374602626530619624674121942863243319237510132823398170878708919321163339988773135159166593221704856604519029083820995354302566185170150378061381286304333441345166588760015140854876788920737684909004067708891422436910454222010881090622535150157627941649724552677923802629562153954411178811373953859744616765902397134002041335072739650857256891184943317706740401757252110002654796499659131263369917492126902305920263892964716486928653922714416732751897616869529416512506578699639273399497733456012276141876618187914639388811925368455565612187560312687335429895511452069472812371959047459515321723442523358656134585192760137436819374837283612020355109681566464733879022413024112665413986337447967515291103345557610880658307968216538312150903921503566833163730180307719794030727711475121772887814531494687428124431291627327128923438152326932229415758899715796354223345596384221881602546002291618226316215657306990876157057220607840850825145685115271237850181170420503102636696009326907280820581120840047410963850768006065090257541810908969904214809830831639026130167339227846128804777126488049696891328273062129255279400176971847795402600721171762305062955399051767786346335295896147753382980257796741846891246272442053531048439137562463262564467361130414544991701769983624914601675607268670093736519379131044005182425715833864079097495904701239801767166576581016162615907630144071166658661288526777648930198794284521741862953808004350181792197896575156691252288766539564814976796372680122418590948242209787262068926589289250614007876072250365310288453154393586404933672665240921110165488842521567483716229983545225408748857179505304671681975973926933417070735634829400316261368479359771613501206325394166396369067298962918696509449324821157975177336760056444457795629958162334120733736545510229723760204548068187002672487477710927840677841886531174232952402256866043526975411589989048426287698766118081956228188358045392100427309185984187296696570097016036364965665143677746132913434322813286660512178405373463440095708636754717289605486984294009134529317604269901216677070960001244551741995613105180748857813076883079100467084741018637078805576542335129130259074053189232910940294118654297013353022233793998857917439426291744656676728412481776233175870446917316264967228591896856125517655680868944356812199671347318616120996077381304279183669267432671382828948998256124607755796635184995812735002176438893299642844905276650029174498996977484912798663728995795220861927259950450566816854116112528569584427179339041682910364828348658935172713948165522438053567392641352726412738322445093028673334327811919666664160163021586612900566135238621762421119038232277814595885444431139993748656773957632254114655037833085741014615063148968094593091497685196109834864124389132278664497001402200612563201186293885632720665974788189795373069749201623600993703623487339536068700650528586660832832827182695025856710935902281890794873453144302000925919258860788425187026890923563226053500006248321352671207546469659551077697230422795615148509744208993411017181051996769916151607046608348684375113046699227284348638202958164990753581293105478690559481135037490307508802596696128490541335709742267043243448301537551241247991764558725686539198437626120253646803550376553962896101554318004445975706076197082706086009538269634868124073643468671493073438690726212492842683502813800737275052106792405730136710662291012105254330091630700223214152024033479982093299048840131358239826990058837524168344387996796808642003988640861437214621175150841093028065596909201724280007108347934607280043136710451107760816672244213177519254321608706885296936495245748980079247470082594809578608637224334324682715428346947536901494720922214500118001644233384324519897586847180672740576570614066657650960693368247591214784056520138608131444942071483391116887007691269694468984668114004319968388865111619152047771201435737001825237103856270660965116623800316591842802074826804699821694559551690159685618549045733661366734872433536382742794303275799046395995778183235768530869730101289887401863380313018986027674328118692262452137976072394424675180502677909655572804883191498693029195310224883155947185360239119059767829779258772855522556519776793434687710667059387175416353372224413422117796675227766280386023826356787954241112274298730920339346794744298460649054113210415422103554343979031063208206164767670400931262547849821252447930408778484453984819988075791615342300529441355891454306938687798403671663171424604133029725289608055679876578218986904139509319604222957914889087417265076063971370558972356016092896767785463619285791413870680867370187676017290804668295649649073803615415171006470699153817318907690290473991207198548695342247024387359975816547841012408059084702858680247745752108960882936103444524922858573742633014171556871612500755509563141980084906032594920770944968565246856618216990722547907423100829960984548502613121703297376045744603722052900535907989743849482351023059083090125273529978854597365191123664587750016486216702049561997854026469854511447054419984586777106796060504035208518554569900712274070289506528604092884855805731717152616511289653703681791833018352276527272230646383381570956809120192718313598872195524730493608159506950059409525300570169306729629267044036009688619351836371173272132126509355633627289236934819890174031077575146178412025728036123811191915413209169959997975837591601709532826383646323690466712529485898699260577262590444428941714641523216209669032572369286835733585945069675480975363712462304645744017749566738419134160621337599620310716207563627933824331330125770744890372539153960015710221104212957982219820409096800708328621026104706091395698443509781942783476215284305155899598501951938115241208430765870801365341306179734684257055834200619879344641745653654713629780923816242728092989410405779747713887120950955769503024239053828245162138199204281986036422469835542660178373563807072735552914658556991071377056853162800040515725592848367644130962670667279269530864384249397235733577002710484697735741228060416678068613656511973815029570042598663605257777489715889115138295923726076002638170635042634232929894596992222386185796102471337720409671780779198116826210652951383657608059834294364752966817049473536141250720724744686802181482825966297872350917181496103263012025774322377113554705962986237233735238097369519874480667927407809521657482956452586344052957996821872779581645986951375250507340506963086614759614991736281050003996437043743065732423053956598302801017930275535428959423022906963456030804573042628727999851319612128630047928582922200257116617114563262858470761214765998124681542265902752990953932198338485068037874051715303942556851863239462354275507466597124985223248770835644694387410592490286460168959684174638413106185266446453405125236143177982945603399197081562105417608729080896527733345790153115809933456283739378261191324147601589693734566784914796816676519454550952045957768770541417356982287804474662022963725910178223394976593764453609688258354687963745755019107022630608406880884506125718597399525431759552165144009325084306052086475965132680623241732388188060043311355386978474241584766929760187457450180735721757806041288463678717199593245023504763372721922929514182654860282827812393633049294744677234250820439076316955977345511963911269574708661348685811903850812176166317545032126012144563783694959403133320455522111330466200687172535552206508481951467228701221070403130929661623707154436617883564014026764693987582557138709837563469447860919781096011505870889411520615772705104713567128104191453145400704336912153567310648129465992461362605330752238077737882536703770494622398816013749339196751622419248713700295325524642520267108604535687908833665957713296642949185785096019993783946414691782078464290339875847802569919067612775192372209737290568389312706874784065267783152805663961539536378514855247102650551630460472333146321387692570856799519635602206242860866913454078747522390875095623056093944191965614404060468686311509631770851626002673201731527799738670661738743309940575022227439999916604769036346905774744921476789306006101240928465997956376091045256386004236717515595095085616209775540552817961203366195248669269340822067781089662554431161264287324221112535840818314556765157496138965978717474296962887841218887543006299943791450839645072996948261205073690672252238769120234067224058321965234344672192346721772179993934633133412795047622751736906735109786437803924380923161715449389292327590766134909674333881256577797266766030587518732963434217479251502577487294626069384354165438589577791088996777084166901797507251851742010545913866548406529942980199145471999079324803278679512818227666477184064369592142725336729969159660219423784299238167096690249535676822715850927004315939670158341772840667855766496060183850601725874725825307500426148928128847554401811372620954804139353315867795081405514806620116690165587592636543372552544017073163181499292993715914303141631916286124176136055335235203668773262704497856544138908054456163789454182377667098364789846607637432599159451085707486559614827029617694752352324361806597179923960342808078280592054807042199396906439753900091701480108422066689787868196623371610217784043294860579866069785105821785470946147214292612825863474478505603887359017770907530768113436698119500111017040513088354789242084038570588236071656212423373067354589117872065034509662033894099042939666737541281890646921386228118575272684319583137308800497509421864087867233123008414610697752378098483505250885231235751275299230311775501608590673848506113444239612652143159135875523069197356044582782871213804682435031248243641852536172643487255280928652704596245337453310926519984344666807392100518536158475581365078519230805872429673468737209250340379001240162774023771908296612124319689643329068301322757246097650796021901373519023510418802783678271534951561016233152473007772386230965640741766404576109992118420029164854561460995830027557634910604627500930068627030364398557700945062362266533599316142619651054459279288296560273683683001290917304490118820777364084207499839450960253118848776737481342504807406808764165294888245675882597094426998348923947623066286878118306973307717754446661843884791668370863780639764402004205995924431930149725442662972615174851257863733739392428565226908561305918806959887425160872595377189181832636119076530393268156696874591376545000541373504662930664752935209996921969117572349912059110852495219909961702239474755437725112240486927959640337943627978433713735499983825196660445652610154821360613771039148690526941309919860185138405357147219794782677645130620285069108548627880750896018967758733757589521855083345692115945794133801322564020642616805538779911616786243515484869905465666824431602914993573061845664672560379622951125537838742738268933447006373829293560038822286003309802828393662876724076164212012600475561671091548661203444128854302813385434445326377597230896965639053200208810698210350017756568953944465463079517671939729757981934269367517425761844344914954503528273356509780792761835860488943638835152184925680804568898112965461874487467057008962936252408541899712464110661748064285333368986548518870778672282813418418206464618145051951004044443734436203742720197221658470716791511778912273599554060053259485958204798484372639786096049839486004268630767722245830470076134279854051708115826432639708547797173694825119394255485441444595473120327780338328358751618324342166498407114929385207777713293222116278667747028243128804566479967872415544783065786699093587897957773222781320331915580161525432227215604072625495886217085161187770770103743700178086930818011720964346599636176832869831050558521217649616687285859533850901471812243864694546736049149621119642728662019788154698354385896484821221095586015883077365844844480992598675802400077405304190949066661931606559281017457509615179444751882797417906171359188690339219407310748671104252044047236647591161565374122565442656200204647641561784973205610746994429566186009551380136406091930086709271848639974019516424526805217213869905111814037584940265854535625713619630516087688899477125992180816237178572731238889995573083278896322112163744271092376384507712818459831225767617891765547606008535855708485183115704994634938706308159699823884623675495930911023681962896091026560357660782605708689558620453385399645560953481477958233977288736868547743341548334951792233344892686491254141919126465733758173332915830611022507735803232117210977751542035265660245667221576626391412258579489705596112068431334171469353316538824004926603850932725624170672594357404488460968969559008416773584772582538661176026237861208865846605890045482501215676205024135292502440659478378433560492293934046166092515905054542268675136114677689054122343513657085097664840653021627732675099915176286424692651223065379803190279692949244546296446869225190667553729997893357300333276515168559707179235315959959039943461825982080942585456475715196519591649622146051979067788205356468106019286605288011020741462190249354213390231198643004043345373511437672001838452655880715286102553886080857570952155393742486326111234663011684091729346595153507474815023159803184805017864203658880447065247026938825234138339494939953334607845457598578749429174995809892547867848664449846935901698643132563393814326499587423861433082296206057048653527671277052246507731927973700255578921118324937604351227587919527555479331259119916749814134253719129213093706395821001761822075976113028019260434731294383641268233056827693660739318362932918781474022117736810455064690191693612942417120343904257862992197657127172413070446494102942318329047713386643358086735401427349842672376466742206337121543707861196672895997205006012830470078260325084556319802451499402873181340005131768476606239163061083048722943834209307618823800604399458726866960891050269345203665210325579912563108175608034043426206709568433306068041193153799973547390780901533562506689752476293229868670639041344640984382884694047768047008231819695184573577296952303935724000826095678045939357538888312281800277437402707758755416781286964004328632249433727180952786915136094193488741332599901413066769386030926592469069227416299880610059960045605875441134027394673851052817279756176731455888976843340442813093438622517321342844403901937868260610979785304766020437318319953550434339402739246675933840125790978974290415972289584157967235507809349561436255725880674586985195311483925545815521906330825630688124475633591093804673890287003017520819302929296903933602025515850833538044431906752655862422009661064494860210159049917498785398819137074950061915161144529471453991585054411022817065111889864240042623077008985642169833011679451669363947773370266220150060470281304863920476926653585816917482426995429719472446000221643845549194677967054275639451907196508231074548301780353743244197217205109585525283999207417754333571822072175017497466973164777501898802093510240347695339357786893873723873358361785744964608567303723514734997194611840263339990956223974959633702829497977573371572778628964905772078736134244966134986337383640624085198123463819937933346083271065032691497522505016493903980541934598398256404411004666021384791731725241007360669087037873871681044712433531952180899796510532376104345111359819737310673113271856813953795099397084497790384433996522967628057196319243947915357043264652910426156410133464851259493271930498977028316724503194437696791670988098617510939651621816989110145120161931148297362665227642763519032923583654657431251113895377784076186302775396391259391072520218148815844646233564166154405695835194372655216838122445288745754035902753072709959627455048897240133109841124701225577506466723902450578477893495261127859424716401979283518956846212588727289211746696153812849220488688210449282593206057598814027594677576541215222711008237090306886359804763202310271764293803284767028789561566503275414541574178870691608820074698606335417477922163506638124632432627868118345400642993032280846292589806480613365765162040896360224965258898390534942702479831703764037011533886395421880099203768734851623162654215267528811325924724268393020057374258566650057116670175279950106668611497429109247660541266118467160703374978545267889898635257185807009006393642846788370079337619551978888603354070169747610963814304268895091216954294353506365058321361903287032766198430854082180940971751198538229760615641741597436441442968893732860781712641310347048107697147564279379763155252250619018250006469420206798735678850805123196290460854124668200231929419446072968006149547575152566841963198898317961396846993980738802237826328805692965581111558071567245059733753361147821017705005587216337174029164918103857078593241706369329081327808548691181140540718987475422505207548135366091405243589764683368646879298342106166504428034163818376996164751252746925990498350149880836906445718940865380253314320151711755435367490142909576671660979990811599542960434681706132220378043188241181854081701309408635145722038711264313658032572132950642370090559805704802425400473814111363502834817583399857293101000562798633165343216020145308383696848463985139407300916194514247438084242734317046008370279748901170563421129370396802829138885700253324578382227980075478864113832745435638526718214998815278255768089434430647323973234163801085852382173325851041173551687332105816525238696247857946575799131195317849782706687697116920671264398571757480289912096766569587445366190298245374624359184456219389304096738768630030860352460815770072506978341812380967789188850410895038896557042483019531702720503923578201372327077655620248206628109209368685176085266258645273105070074716064258021734509181621609799586836358647265608900689883139685948845087794141735133917084580338931893905837636679380024779987153920688899163363309009397342492895455844690386056025127060304658691612299339729473921982029804568559870094218778620540755521911599472106831698183438183095540814354885419950175229588659497528376778378643358542890079714510468737539836523786180705331672096720745473584814814181081568538571738438495502130646857403516753168109437147353005769893533085442982607268500990073963237603026271763234539906460368679064556431583779932905055588277896526230341855403897179095858243655099946869107055071671137925289423391874754860633093694806971219486212400605168426388472839225856845609140899023816502576825507477011872180748593009084670321027075856922811565000178857454752962725644553985328764942795350521113181700010200697080604103452291962942634684454784238998728567955160876454863018911047037038029241090811508096782689286459881485137092589871576584589667144239555121811686477012133950695608530003150291228604706917610373852907360468528679351319566378535435893874145361448564747361552075633241580797118429562679828402339382186334203231376147497516402721677220731579815025111133118220513308494407482934460955749766747502577545563177424564889596433254986394489998590930123038730910744600952874603131608458495397797566225653968247674005991335570689139145333485025568101120114121992061565313298318924360614938813128078038896697978105759752238926449156085106566153543281024976673895891812417991793833316508343701030412094911950039705318560478326715666551088844902250670975106610246388385090463059615263520823412910282965460230899274511203096791680655474719195415951233127250266154503536706698764241688585217879249777637517268361034723756201487031133972622423192584881298309459222761171523108172339675633292618801630805529379437905413487998976775179340096513241972014661296651786027869107054394914186551129589051234212250672877522327378600970656860402102246599019438943196912589732477358260962254501366982487478170136075827140521362159440395265524614369662431250256616975146862951772975939290403900616809395561307945928632709137531435375058009662993904802712577878850529624255244628056884086166981701766578209332855488434102128591707950917049990158336158518419446511812384405465999135847615248598960169198940512514868805025018751322770329588724808603550904678056596790238401254302592718184661945389813931967029036048919869799486837234269937177833454461906415534212302769213094320814948385264776930099613322116942822441584486846424944722226684128817290155831942743645045103080743398487945057347174469683135458893738338707960072834301589237812974087369595463394517097164633958859878069100143058315716926504988713690932869897737661157480028337620498703374871969546234958368099288900304955760206257923099037016587488406494523081902310177682628855529834156422118069995745615591628332188789773997717272471804181425125089809785983391662148240893219121977339632586391145371637867548804807299221614016128630538558931141307350458972086571309932791053507589514470329482504186075864075997008785334358265558340258141114785676932336849816777642167984388423501233862378824222583834983324176448159468062641148009506428359632229806578495130402535641817391586918124221483808092446563204587053075333303721254602053458610791192453406441296933351193209963018994268687785599543693117451151499374747999040182762609022359369528422007718035909297293279721466054487062207731439928698136050741683267263529751981660502049399988598128092618846485670118359946706433532036790487029626568416985805092370348289327404940994272675341970498526571407725911207541298723096345266199925072301782017493787329833295825296551542078012841399097049490725301398840738586385813909019318566561959631163763399081534205055246231540802238769846921395263166720099449170562939047422389994265721556745878563385428954580582051580952890916753431756820777000729255186130548595240994331506289311644515656364962952389768713330727555907182443957647972798623634225491902752037860206472633149863311646599461238609341421356596390356440358660227756115067524797602371921090401468000463247568152212189929472515388274319769718132307412458617719797428983181863350824607955864416033858667113218098407073316127151761092162784957090948462320525472113569233542421354897861696391779838236643258243772982854973340030119908555321947736244451286824303808102454614855443127862626542875852239623544106815338402542854708290786230156722644805724284945087402766717384831348969539600950721390128661904636965780870633199955356737204888090810062391199185574924208949133180893216204671416338032764518273772938878244773734145860386775185818201530739324645116064050759944665168966438767004545657961118001198440238628617165910837366138112586096585177941810588438538298239670887608464634702514252481748196428188992443515995859255334758087625738865691550822555058929154193763932596804497553290609413405979707749981077411066123320781941887181113307633728167360097624471918590286822729606821127401830608611736446791695681538191903163027546172553702119493976979318329120831255884274617564680255692261562985848792774308154562376537366529392913441429833882099300344689361294884937641601859674919685998687673150399317250380632957248900017279052529415664143952375898148402445073425195324704328367887667880295986914409856979783010178589024327781219185334515705223232638944963217106930758694118022568052808627694174341634107003106908490037777448330089685356585585442809905293858414175654287983785058400569452839338134934749011586522835556708044924165118732953802555218723163423874081660634457891975809698371307308854537545122740119725361200238674318641390544889870034323498900149111401072548168703990406877390587053944584606384118666361739424610206172177707391344781039238903991914892768497980359712432213630251011635292374797910875048914500098311119372896187837295580234940884865351673078888265082792383376751578746858629942341522051621458489761033292932745881763200445831760081664218324186613074993922001174829013610220545402626687574228462119635510309534137371158274133232479604876772007913185732453713247022798757387273623324252983605242154153111507734861433509120079890687738680185861765257592329620694160041769198559280188277241235590796030684866649160574605398816972987042942840251702103802190292655810533398251565427195821455216174940160720716759662875403977659318629300519726426192032000989427574972811525908223656546282280998685891982915423038846164319518194388284223162183333409865076927395788753477886519945598526769245373166808085986698157902880487338943730985222243129478342692979836544154442988183247790420781043932434435433672297146236538491893451680837008585609501596217906820600834833196295345322277351418551215638533755831158251353841394288902657302417375281767584416460425116470307746639737404183241809710539476661638079892772145237537773293823794390519582025405082298392626991262986639203857075343907675482029688519096511929021483612090859987215015069724286250501338151274601284194133577022965718829885923838968219109419018713951164150387130038456717680976667645477102406705113431448157289292538540918275395330124915431807667002298061232110670730815386088252077677101634943536760463935860046586749340767011055200939024880401429786826948677811285101777629812365542487134390435666913758381686737113794405626506525560169084346273480652498975463007607885801317420606399185462594494513111624529204785048489499576200262392876106921022506449855073493397710885757125058216676863200990958399450837099750736759114750987505622253234288674996165890413480263123648684991322185600117343483423854965746813178215545529755867219862573617478357080701220424772641119204820113576872655775278939730129984168917650469360518500982841727985686881790881872293884687252525711589194923088581976557457059306933812725660236236571480144944314209458896287738279293679768993715410456144543793425738112108338702353058373696149917750675000758767431477249338054752415114637569675928594382682355986887635545297339617232322852732164937737287900096685039818944684405421895552707677556648287684534280902138798509003347138972163313953533549550503918574032143152813617362847892816586907067514193804947076663868320196683960154651123134381616220871668881299778982916356385098598380165794706904189557468812064388458923251349599569325217137782566447581338180512932858627367690823750987388920724531594826399367797296969304333519778629215424778939707763920080218544035292511215235958851153509060887881359414710454493946310386053609882711599610352165264494910701373307084705653193045212076799719240229931215470360691636709906513930243143665367548036929895215101764317453421015207107007716986671703513505752546588558040548552443547685106009903119780637885393753183906076522606344092442147095670683887054859120341886149882100024725027154111132083213809771537276152661693748744868857318921282224660410782954740341076290786119915737719755676620427524210944533114342196963626137634286542665532550626302872280643745322695183007487775952030479174697322261305734295642248001781506296506572672685615950391845972342371436740576814346938671440606586194561602373789845049041636071857294893176323000368420845009330080409535103587892708859312871997955245767919064891725742023366545959404313361314150924190537426889691776368776816012065177153717898776537804952222625775897127138644386279495302534015088024103475664602549321668687601646082977359248914043380670690971370123890046951337725561969369401628940007296481458437124918427479946827940455448118324318883633012047603889696809306795356882058038962011643029084453386943278918633848556563383339008567035309686797790212562097360585076907540096819792894693876780573549310796082563240777310847744650077816024769148314694041668174440250402060617658454485749468749909639259820773150349993237427539564110277015135811962923083972790444516899505440564544360505161570614199759498715891080520018608861410635529454743897603072967272896690814270446237743900494523397427460107756597544059235843234511201119249739034937964014631878654333950515118288266064015229964024291583203892654935135853504714154755519707055316361060856460681635540673196131274373424816962835213557233406015781324941883955104833830595585321912435526239884356808633557555653090697342746284943945750607047540452499643027544963618698699818966202069639836556408235930749778093694448502764198605277464990414870804492103034563249132692374351389441409670549046827061124781345017185719745915182879248097416303777117400765372060616120275477861144579762833798730896561505478607436872102433781825704013881058992500945990079842516799778461767314819496838616981479955210242407510061321173701019525562107622184685202354948645968475068910782886314379808086339205247704396749770965157472864274805892329606630208467758051991522836675009199287994878368235997984981804358448615477182510260407813479937468561175012263310217606078444725915461011405146400012604147433217868916862029081326663312127136068705229428623442616184461868070000637258833766784232274552976643999183754867702274189591740911080407345140473903382076109854543026328162689958051366925636793622717548873637276421672977010812274169641774386276698946359829708301963330066327317376290862494961286684536541835983555736301765877395307608094609691247425428289025655578408112571792044928173966174509152575165562718877897204170078360593486885918867574128964760539232070578661053569813329906608526260201903293894990262496959133386077317602109338410962786373840435341742744218584164413593660079640831646729603792076674807709869024673813632444265737958568272019055596144295978655073812070771363226509333445749711155942562728082047631503608616786658521425360139452988639750452261568331961371000993836021111715309632306636811238732204409763539551733453483504995644698372556807873280524446764690632183240794779456710026848150620027090443352342223675765554748729206393376380658553479806890788588310070387455499854526894164326176914305498770332603197769958608666213092001355272422052107326186586036670924438426686613241774792535116488005964280685107349316250516577557529672018850652908616066605822680802007364489161992342436270735263387222448694796754417400178667252579518985990131648796313321336762596638868986143274480130397712004457883472462507061953568493208859228027924488754859037232592017664530802589426260836467149711214191348862285568811714270743974939609552494721602955816031179084155378096669337231248756009578141858065803274620614844078502470200356105466197205816650712092589524187018035085684362506311796981901775768094891615418128576207717127089660484063056030943200263566663659578543039230728275106835497243798456068028864700466070942487686196041048228532391735003971113570096494288516107362632976147814216619029970316022178519432639277424791111178101836649760172438776479880170076659703528270942906948870093897623356359222430972686360410832599527217329741510688761213086989737820637690443730573581765036594949157312102207271161563788176690029673896670418388371093928127590673687191193847672501104631364193637400159537548034336762733596316266334856927818259975388036062720780835757991417302781436115380631299704808458922978643158885354290286534568418170345904992343118180702495078834578994973753931243044771679831742296372600362893603865967042212272331916126341122327042587675557958485092891474672556944182137254474936655395070883482079969206251200156944519201905048036593699201274615697217115718395161484724068178140984774617973197731279845202770822372521140487390329495944826623800258085897251232276811485937667114256502970783564776014191896055541466952465460593466654902628574321893479860261412288210224671716824909907768106649666808143048970051514478654646579631438057424791200700623988432704627795256271868618105287588265741728587034814931079144649357863867560223289018899280470390584079839564771128956467806913257045555703814268057806357773463517952456278106899912708497426044526553308201912840166308405545378622063545606763371142832903844478220090020648645088644504114911701383847589558458285995622399851855144022255327422693076171579277351978056715109769264107167792833074258970587453983993587573857713039252654058659539338552239758620798209660799281346919772099410954267763398867459506103365389285762553336581543574518803073154496609780986610740129028709243697429568456067103044842022615149322488404127112968732196478014632809437517950674692453987591445852153238999197202701693303227828216084134245448178659165934088474868132783233887347773243575727267918553293611202943838553919777568155666061838539994689418034567673260644737692016219833516750355280511093049931569882525302384976017491848452168087156681607539688539323435970252698050349540884400486546505152490953130767195725279058235188172086276905981708546524807493704346500782704277017337431831538814268928293139982427067794660432215609634976155784151834460280226679060624009097368538151547594623584651031270957313391550034730462158845012006870533041955860943782695500096853953748608407311652740787217657865627159185416505463166023505937785682525010247285469197483319450266789825453814511437913895408431859428298887559644063472148281080202031633244547802450542856494379116797657402311921527473247435454789251546147890743032867277644159743359596142565355658725272164452938042308211117106121865979583777771858430828599682306479725348478991823776632715206693940085927396464432191930188654784196813797516748478948789075580840607514553088232151109478087782581564409039424027140427344647417390892635305147052078750908746674067384207211378745024930748560715082296522583284284748638944300588309273392025701372469845031163049849695606334016079211105312499728482602849687960187777590628745426842654043144825998426205757324107658230738368556313872319094354295031977168902093727217479285346286595044919014646052549216980786016720704076931247597408783655287429158696993071957697411027182297896536144348513454450852110571236624506467739704026502942257501385536623684725192264869536828828468183521078627935541035522385748469011569675359152478968669783993870367958957437855117517669952160767585981372639446181816590928036205316274032457226690537337810817031814535156803077147806773931044905472854632871970918264312991338006882880062384608829002648539379191425132267549705257722452947733702737057088992631163414104280936480604859419986309360730855239437716040964012974817354525308333437063798365025345022536622844162681950969130783996352649769246193062779435627688440365155939603557584276355649066078351775130102017031180369475123688249348754956436172531523108806688002127727221936051634292001898656841524135222883172487938717576880956471817868470558926066486787188967267018436893054191979726575157843816168241787730339568373107838254046720405624895524145798187841581879876967440947438238060805600024326637417504281997003356381958974712940767280218779055474102053410865900118600831670701695701579780394071046114453687291857641281263124560056574892538297062564701279432588622162525248526653851939053238157605180191418980822214452406866183179769090478249591050297161355002340671213543364472308842492757630499102420046214917448163628666381400995007112887247103107602360353759917337730956002952899512255579182741143694217078818951356813500439081153030840206130437791817458918746344429980203021832681512378935964925390707098050900853539904206415216404397382518405158464252024065364140908985913416808370565827209409290862110048696503905795473838426904278380033720142300503932230504899581623776455069656605882126086440969197841737001428517138864869949590573110522709237705338130099959245166766108882378366085025086199714037850660468545847236766425439991556483980435355761552019142259776374345963720803613446726506445405327502800517719111906312585166263565713920751227912412075108904721012606154375068836785633058878445505443100689335878398890664361191205868171290881881606345670380111136141258690308665185170418350917624992659626718282406409216460857586294590549160375394324268217503024185721152433955938510251425214104268607790486989505041724581722331480796878262879136976232546045259895929751496469532309644773951873219028858806365862818997958498584801032280014212369474849342397578074136141453201737526788342110618976609038331756040098006794605473007357596134269732483570894950025768214856689651708367376144923888138791089259154951354069026806239059377640198446465840862238744646348440075167499049741749874612609777050992214160714904617631370414315283338997834241509768041510334533856172442698219627544975636707784180015168700241570284474487642315941213813216031547423940873406057637158501113857126577900861207751984344350401212288015507806660403937836671151596109339387633373320010759788180015778057440840273340051491166046320854354996189643839872022294377749646619242872982774604725958380337967457418603809848304242876702691184546958071892256529963472205321820396476451698730340202490533714006153971318333164307859273433776127321636638812753663140133906634075711806657891703155559782113312773050140463995564314288524459247469219489651898665205042376997719298893722907827771517520787061587110346802840918881827904572428786004043042865243901612114250463250770641980788659161092334176501909901446448780389203582655098555986484518867929754522685543002278745179542315953399636145364610656705153077310255712536839216663970474376211807320458860791545649402880362618070442227718206851884012609256622580087109446389878939665096066777655336755060742246537171955198347092495033220832783715082607535515422077676903062887110504442870190436639177812046038834743891859180261674744417842356519615511701644872297384642531913709044816597409253810862209734937954797964578855886627287945930529539325368863060910162448270309325911433432447854824282595128917921689177156343847979229013935805505831569338093392655446267651971347154680846271452793495622562305974640573291820408483563552937287247672303972323801302916379139991817573631031545082270180266506533450376825107210214138715453382986684426439522334386704998589280142607629619897316555457957685521575421189898983964830853618852666318805884914920247774244899923875769179134085826493026616265108899273235453825325140932148120876557775744354092941011924670459271435200838863674153858227223606737065601278582994996739144540907823112734593781699157387253774947761567390030771894231053727518034558463707219069377354772239774342936904862050408228899687514992662205047275999372539480465731464134239471222277843885964323328517000008865136165681142768725610194264571392181539605560136779018954197346621099878892937728354973026126489314476276070217287586797147333684640786525813253099050609117108802164786151884223992936080285473223062245729703592244299704422160740884699486032789201675227560446889943833016713398434811853495369430308137564199287846329236581433666352101527279839109535210093813373089300820757295260094205145236104083901452875608430261516429032392418482490962926524466672371441855504006507295281137628005644821026431321480616340362355484715418887541552752601051269058527208357746064096684797970185406293141386389080947649376422385223802038723256149475017036469318030654419497623939034096158608855942673962662238039483873903897962682634210902788908940674604631816362290429598196353871495418578861924411818605126939872248231487300701130665240894056926687769785671542881427907426120972353862650525549342014198272313676549291003552730465776557706927153036776155571187054676408460991297408544114058283163947617160459499788190058644900983412594103526243960391475147141319761104619459265966484969383724836607651730343535086526783594368495282020131036604084681367123892600768008444854550979387388458620746366044668827191279065177905052356533220668590819742273072990476054165499910303819397446272308552041172360085746114209589821636876873945882950384957134046916578635095209832501390293357577192251202970756791979155405371316268065391096229275140104385129736915658464695316437911120820442869711222013412491461913147040502156598633382631347686593068984088853087436960543004765918099913568913741278425651664710394682308980374674382257138162090524715530427387078155135454128928731500775852301302784987028319865600860336522072532223653326980115434314152321125817903910496978214163073470124771388694277865422852671862935649049378344249594027765518192603283358502916404764781142103244072422792147302931590404046800248827244951747420659225199010175705352663366164386062853991580566675657116214290971007106414316716580820041181719042855005336241223120407332748831906441906546687215577663944919996126977965623745986909157358536812352412488614408538379178263766720746949772102882339218918739128415859623544640047664496854939427565257968474147972862160041720969554569791873973954656920603744719621240136548511466111959633876123998694166946372276865834536596917063348649421203035577627170050646361424889213677935426794580735587823687319890261169172275706301372105044919636704071127996551014653729710545334713964171296250850297914781600186079660690041097849379253548910471427214534555365383204383223997653478408672856208676172129824607816282496401714092980654932869336262113945978789909500433258213746343375669097090759033921783984154869696370469691088262906072822568737652639402614946435203573450762322235726901677826386335823353209921482816520226857590792996517502706145127999342739877028811218580098669847925120117826704165879825301971802382849809745174589939118132228909809196818448450609475427505703854355245139190403403355585454724822474262114794638250051664066763651724335844294223343928001410375491313270799461921911785960783297191234295093368880490034161875079598673877233440131064660471171583854581907492218603197850838275416449343601960211215165780741155552845219325244469430077051838993287822207782878087293550511893469249686336116695454840335830394206214888146398115568201706949581275132160540583763388952912170096781880836939920467024729232516182118413250269289543364964558411364640686777221471858781880312522145191537059506572400883851571323476795422437305759670848151111410113089253415895510070427989443967358175887415211516234291564181163279851908638383546214156075796019733906913489648936368115727822869294024957161835149820017799363492606246473927569976455262081502818428034982331634130887015070428433142156714731630219887560129517367846293816941200090378143010015562858601595041464547306932032800546812739358189900341269229427285293797343849817063404527811034616316136884299747670207693681498489906905232398220592764935710977886561597096064119769759947025698502206825905043806300204038504504097910033920376122700537404666188275178062519124077326914868768142278220823349883228076516510208796797323477427770575683175949501491587011587528162086033437169279353355748608752941008831297695018488901834878318615999882907202683395020339440233108410980018011227581026998171680636156839802180758412165670741396178574036036607255709228980526058068525977479543472118123794411065178780763891643121756970914009312884183401367184481506779508919374086930062516426396376063073565645828557495825749789536737182821437640779284432258357975018943651596558607901637752167073460083910346151655748028681470764269930244421131634711920132795815892415965580022451359798860028588804875023243644822391672209803837136937502340352353594859738387844722598050039067449276906363034036112854799629871337012818902673789721578523268717995116953015679051317142570438605229673675226635441614204630544003557566045020390445787846365135916335378659181001478038754379831594176533666268702374119997779626148471388058077369742180678383350722889206421857250161725459433128811623146230528175061616029129599784492655086792842121600298674996316857097554589181016423144582337475087485906298555473469581974376463579059536563312574142595338998805291939408616136610804762904063220654573490588062099595833214999154756640512534902028557112914988938936447328812600093674353369399805863602074967922760103716962531049670599084481979936000057873771644695934637052672897430905112475148129426714000095777885182930121838570347068731729056806836476594574321543512085047279556302298469536215217461433057255814984125986545633183702783834495135108040464605021127124903480186343128479382574667733718078913250843486726758533607278113917521463996453881548181207882099968249496734954973949809571810913061739331227936986133696329104942127838021462165711966388121149763517318377747852174058600941518228583563442015081582339675718388056677274476852888216218443798906598678063174649194617413598558583333186372252409342962657130518698212408864952409927801106567468086378963719149238727368593886624109203402376383657493633230737933980538251323215327544850965750521942771895261721288906079447956273509675393424248090718308431736684865709246241319163878446846352880451009133900316264569740969750613193608801493990468900518093810822203747222318474732667842818378492591846848823168117495472732847233957294914352503715819331714739294594013462367280010035183001275845874076629328615311476900232680898684397509186095021016584088358838997270100113263309862683222667074599586483145800304917218957806528516672691185009937815732184092960735880784756474777578556081692031684663484603891864974938164474846649093343031429134572598457438803132412284808915099978098589034705751519245843276676186141112389617515417970706718147609292993946047281185341900597614567274591851941387368167231517865919266980000472669680636135863233654498018262853866963178514777370929330007759798440672246880283494105089127866456460551307690995746486762288308893254077153538846110263713691005589592213187196092893005829912682589720450255821485502051859551834812080688485030143701172608142722688768919230184763107552452604531702102778517638510244199286015435956903221246320869018827094132753682308122531728721591537661156519867576365924783880884621014281682144089857179736445527023713869060649845823109838008741208514821902764393565803733785965328490564647504449395448911478331378920567612390213732587660375784051231710836745145696152043851344128834234573859004724506720665976833839229014955821936177471132845436973635830756758633201130613101554432717985381025228829888368929784955477400932883528779474260879527794363771253016692441872037669158425954252474397142655193662828124393863107376173155713599665896973670725218145887430250787814469787684520437402798217019373417805718077286895109942894986150884255418744422228966810655300264938346046705707503162199676319485673096379673941872072564009976840373961903618228395861193743023920102206175425022146659198946084116295057369032852088903709392733260352188224805761610522419577545416537693974160784217193022238510543910881580692539502481878191541084919803369510924201573489678886808353622735543059155272896021405253508611612979210962159632407978650974690055389466786132710250838569243077410303304937978758546261796267464648842243456464427710408384512316775425979742643260314044188941693445154999031890802977536499356192735388608663318200138957314569635332882307858873865949734917390881725715538226606976472620997409963802515971996794178166234403672242645936914226907519583941596403937185202277896422792404346492968282913198975235469270004645505588328131584217945680702893504711209949268343634973150533111343628167854714732860984444594417220159156920368660335296510405014675452952194225120718830351577909759891372393587501372911099291577775933084424183568636822325084330413885405652106753827501613550354302674734327898996917794636797746618207454984173155734897660827497406395465015054596643175930425824652675493644019359355177544064309161029065377578355826013531671261941380081061735934685978433679243133085244717683537673995652318777891153124497277680784538156296773782229469977559268106052364156649642694911607395616762005920595866768333233470493145967902400967587722425840079156691731038005998231937320976816208695567834825737942062867690570588287306045504109135464740836857562057754085335646818242864817187256977871956631155587470196879639245428620788919175379852817217472293460408986620701013429601456247851077269746547149294468199152370986811684266330179936933318567069818487908644224651103425129373046657614753855162924664650353317066634657598448243123239844669688896386523320546156725601642385554447819013201941108901491749844113869859995780806716252351267013594307956403778884920484236664310820591785419483059256774751726261112339696256041768268097632390689639860667114499899872676208222751002685373127252242886180912543086625214365469593786941248241511706358145529889525032401417946230782081609934852565673144644525607112198881584747772157196504699064836822363943777773170387512723290981121946140928529992737267106179883965405761793063680748453214066776740598446089747295124676660660737042944950242767673420372568628042798859990603911268086699788665218795908072297936198408800943322456493799634811584957149554862363517167254695848908141087291332975705844722555753341936668940163293050220336191288234083574209884288902508875132441002066536247480758661735121541066907660889660136864954906922473120996592272266733446260865122429206328403426424830515203804859289059161792181666919865212273380792134881445974805550683014674869456158011273184244550713740116033898347684935222017519809436015338462089888711329735581801780106655348450909640640170226579199956364890488317481302269466543392004921144672293738221986669002843959629387162130486269639787805344526655696063353916183067557054053539258346700274288267973988617198062257764465183069680506964933686520946290470803769666672545704718644096421323069291175532755197070037979846488971880743221435146282101905828847462897294464286863505950272641576011288105846497347385861128625231006586526709643651161361309869976778512588256474041852646915376655468901964268594351038217000947243329630202934493995024484917186171511893975757816419303744415489967012541503896025323934927250518429844004049065561198499673245917595114582116916239712167776697088284806233048000722397349077289735346240657473416451442675808826835450918778136025415401921165510743849228552014469462267181432031557009949724286637921257501781853952464768720512653809721668263959897014008606323837225649711560173342758243095119638054475749187677745854093105483223594843860097478670157288413164945506812132797761871790825109625469459804910304762161092166756949464687691017293843609459997808161889903928166504876800618531526026471243872348545829980155807765682283801147741438058070214683208030989468660282279155966652024949273841412177171933713398113124353021650258295048887391772813533857157293902524406839532312432189628341125857770019530490278943211447060692217395421580832112663610663811611790864842323880619703287620169359474251796460610918360532860211651084031341402467495261189314995337361375540926707408470363290985249255960451733323181139244951681791402718228060505855467650636137619339106923270089120698501514645870202867946694028588341295425208272974688549866141372561753146144009732691943665171639922235698088757555812279263380521227201792905574141159702723566311025415366268879323876387256472254614687675947896471323472693185999855929423555866197710725767501674990848798929540255856819398474241570331444868668030223306088183924392570647766213451116769195086071684591240644888597481449815010243844558147507410595351969011289900820858852724412196826430061444471476799699034829563249923672187193929228365816863184611414191522001513253771178396448481533387970547153339196447342024529494641893341669344509138459296870864670543747694274926757906466703359863446910187102697153448099152280296767446895327420402276864913050141262796634994414427847636120234546648223230288483497587678898953249974393693645962560219731063680724488153771457274582350328690704519615269568494919055749006775706826612211725862809881507879818092636281285623184280731936513975033785667609234531717064098378212909545875575412762144567731013349273396384077932693054943400471945794387622282216444889395191332331465378838675684605508084774621170360795180833768435986681947966605116248987605512035361042086650125829278208752960992628333366880945504741598406946383783543646609976163668314853921421946025405564116931636228317233224684422650884924686725189354923297381738403453717818861209086071420735787760654503067549159911577819908056615396366523012806436205099889010623694725810676296548707558571602590962372146506795162373982927248155812602724778370325478400529445786929995930453952923790891061475891816499088276055810314946460947639346632349182720433571411876258992026634378847269906182011013523033932187109804534327467631369861043530394236205542785056745862651030320603015763910949838646520105868345664394232306505026387819265028525321534303655762438668109390516107799780849279097531846951641073874447596823328133126967304128257405238845761526630548572067444823893728553665728197100057670891336146530062328223162908225437131912811653019628622811049069661520179308826794999839442761498880628924482769332842935641510863924158478836939192930453040028903732970382121377958573485122297297108799601654081514504263732027458018381808914620692773870492861013454233760434289550519927778376389396395756060472116437569728855611297909618933470886608924886481864203532315621977135832614378086341286643559519926123955021501316075314037588165767028249154505099439121402538335217490777616849369051908710282462072967897664723137884546678813060740893065138983400662293580827822553200784989100987700683050895380342948403121237363073492089270958670584613287287907054233674655192957828317129160187521217476346902161434425252490344672298194244533354854621474398173900907201686713957894306801058896242248104511278654952056841049315495465774238138590557092658913548535085214658263447968564974208709637959911912048799633639483058796079993269825893444444796896837699271359582073229327763845158006319489023043744123825029923668732029297285362970358560591578633183915314874056207625938128175660706057521210284039763021948022661882185610924152400879545382186599523627926022027045313881082564829849800240186368322868024495584889321217488589583137337907275913979162262825975476266402914604010462343648767820159468841373747518682205829706985835914158571783928582470772559449277675460337324857795733552680493983674597827525518027663811259429217463001036672517976610894732120898382887125604850488745962563162452531150275593138953324259194057817799840893868871835135967091856391572682527627861150080855662787011146911077526256191978183518959613830979158460145384978629189441555867392718601636113926623250450300313841285732295186752545371084147530794689171204369122140979762278350099481015120527541556100556819559493825908704531178738096153955684137492967490908006977176169716571007856713332460226044906001970710695204915296904320133010575686685540791366713108391807554334143570516090592512937941060621856134287705329040839172258693281820336514784438956667211548837001376478709999904974737966206289333051512260746571125370006598040156887363722653030554571717470202412601549352788901415748925314241231259873845963477465728727105420029191790063122686977648256448546333387192202140564358590599523503219086945956724531141341577924976389163318372151596480115886991625349933779339494802125725260737291603427642924111695493561039213803070799792701498867379839273104433530062554571613772369948235109695436138227015454590213589296772383997080159541359446691236656601931733478289705128134989117434023693121708301488539535037105131397469079118168376166950223968065768667238638833333378145802653991250903198487053748328623554542697773630396386527793880839652407217376322946837531239318813793046801899207420206131609819801735471489812229295932655187913098585705917934043862323430460206722097916990435251409510039110611321072167248024389304535957438658475336200332635061801084530900407475590578167417408645846396063734913114679906486634119611677239470428452909756814765180604182358271785995599481619223739028857286727418948228419753948579411680561231098921487068767744999899954588571177727240549510220938955486856532127098479394989902949565337542719291379771416231113847163909452434680871807297147256307620219609432094725725986455224529872178195106425759058091038426639412862250428943454884185101039324473091789377087095910532301776442242519555220327518261162994290453181331754099705591823898330630447991428704373492646770778307887071663060286549040275602778140018250983354412161885569554525265682435856959924684443955346634848753548657274547505078100957306910297677508136780757303425863787904912235597178431410006507394028715294506979276198026071366179106111672006497432085009603869384730708707916885403275473104961990254047244869575574269378236231603586211798692445626710737807195532315792175885408087089462824177557198141385776978964796830087333063877824254970822608459030853962665941470879935856815919648464143965202364054048941335877882787061202989656165356155314995503185556310014028896632441751753530683815444280184937284672201918946388789748105255644720807412702481591965806991146583418503473796567531512063272863158506517334603540381953094350628605048117331020093042696308894033606535361806756066553434151211775830523036896173506416201713236634505399328947127370514717524222505289718065301832200572074544350699677720394405581009772883454580493210077011548571212013756850401968231870040410464773128171532204098266343439185650967876528121978147402528851812693537662495634953002046930092742653791886594348747055149806286354812838805148675791202721739236542342765820817415439975629882722289192011221540658590696216594798431510365739817164925666746541013384880397134658082406903076292206880563313068656354919003919847604551909692334045934838285357368681347994718239396376278254058042062054914669685049369623019117643664742782982491561936630744987595808709803231119361428001033200984246920357812882576389943787521683879208886243588638063871513776037271409107443126722238232555218051490299446608016663208208863501100662706465319094260491324024180155346145958359779754702937640392798953543183374899496586516314321220586938481830042654417389472854492635748619525806460230788330764674890403946424051982340502182494175763030129526583474241953750783816254932260134564474724704621117644179477617718769584448760917113063960928249311403068493317402843304610883984228530712690656557222222749561954169939005132765677260337160404324876168224715347581409388173936627491776987441974754503552675917997213988871938575406745270099884898313580309437216943887387806632595385183732242560490906966436609894364910450043841177553082194989082828199584546134232059824326865355381788645445984469138734492755583824194937618558589659874841367773194198990073490703983782791920706852270379865704320338356752591508407608908569091742137675329024965445924873358764395650161794716716623893186739685487538284989835448771822656561152236042298888268428212565542103937030145042853085114152791495800499763309840720063988047400241889801528088002134962661848586144719516881613914196877769279834816520763103404195184578724898649990207631107400680000725480164021369813056073765296976847058814695541172929208418041049652455444568098392072218710901320613471419358758932402253089238015616353045315213923541069212507808563279269614870822653563664422419810966713917868300150786747178435882013193321302697218869141928406300361120546775874828362845164408728613726108138598570800264380666117475635915000443858433943734281151669434648080448770598490640057767130527497242337217182313858084186851376780479369088549873916904892783107305673166130994375404575167127736196019452897396045450873997072839309584920398346343275417910725846697719866538980800513871137209337358787075078645255441769133129091362729785605246389315239562362226507729647214421076230917919071465220067620890999646891953655781638164760930277004710095416300160107459149015291439674507451671125173436218733605989483139423988625111514027110575604705403073675590878682008730090754407691379444777622854701587326981748891492468905314438648945387784758293110055003008845788003300390595888035461823553913352960448860614166952258434643720480197113010418920264692522444922943450524462880049400463680434452025589500447606037399767420445507059164568666196642802367893315525741407115597169314572352812400813004803078571381473037950284629683315299645150895511810761939654535782855395077305523880230282502778647758124549849355757572858665458175724407972066694856927343007830827240515161384933331798405629095130471633558556753562624153449501523556038462941466136859272296173778671981747556794178920108455279460627697164236107718087031834638273311175138878290854504112922806792143703579494197727831281380262171600426000180331410808700193349811931443345835702902465698267160899345739447603817978992062065726580279752969598320682213002879199654076115501213602828985151530208031105328180982688379452272553590400021823931713102461631857345350749327483700430550696530744021640273064436263193415311294755527916500734592874416843247727266329716989401785549742549105292033368636026882123358841828833977819395908926990321520725413191164225619191092209615197910962347054243512139171348284505484094988007056500966588490476269919026219142575608536946149775274770099726747262408880456541921993870574497100135149305713237546517657317761278195974503659495405433014916118018227566584527626168063776626819155768574707551622357017098679561834909277845245166368644228525381616754887965855570638890262706804853793687193231057102585525308375979878198903235115313120486886162205074432238388270786729851934230466496412216832418763365984368512163552703411283192652006210553783617385085438895131587237042362574619455739663762785405839217702014286106622246809367960388702435741297715936047874312259937357115594962230946768452642192739611589603201040939474840145714228973493486439240206329223068241845613465975475070021675868846411137634683282138212069096546587959286452818260697344344562510546086496126206030171065989184115667608342488240466157364366012363689825443857132251938459949699465647488000371930696345118632799922417866961279487127491648538383208972455885599141619505727487451359087483569725954554904888100872350366229402796954845124101515603619196507970350864598220146170598382114853568228287698175243056863617381244368099410828103823631392340941155853192518086587812523116544628265677863637696837999167455679718520516056117458808671021972088062123398878436174178980967755311851584374628809170640785968272019599941130747094808895444661463381248912597472640553210337246366326845128214838832410488841689043767368251550270502140586177482273935422289452953075689260208846517177192622396831398680609436768780494781039203173549934114940903670725324626812218601655448118133556794656511616274826094272944695115777759682433944087760053929273546954842403926121696462284158294833756005902687789203055895637041164497797443775359903420519164861609194398823750685564979027947149856686396681309944996379066927450387947548893461606026235866849207095325585055122215036422352172881581837712877357032157039190901321675548432550758939707198946240282823777169518114125670955500826515705014854775801723404863246881360237063839100392487515067095803949713141131594719570996579206467000029166648342576795124603048156002714191781844463544778170872246026730154996836656247265698826375081667032853685687492963895698601688175414560735612906584822978884712560423904311855505353909832354657553598073553291919610592647214225047782239356791633902845854133776379972120039401058449734944800145463702017772108968222545047672659460543646679642995551981019501709464074499564722684133275187355854633280637370640101913633974405211183189260323736995333420994746607195857017760012802980543098289866869499402096025680454509656930144756257550997633085921014960901067900254874905685638687645853288481729904396142389148791361797844272092126700179686336942364029011266038682226139563470808334734243629790649480467091750969487625266901502487310146079412412133350687799003393432849393374421885338322531566386010504823619573478618946357921652653993004752282864515590323242874422246194827185998688699405421069060479873474548034588242649205746648304135083406515476864250319261078761221317490889761494211326338022354818947759023533821485417006488208620589809272729214922701314661744890108233129855308137060457678545789382542866154600863136688475374215577638577361965329919628942650276503217395633713017569976515371533740173963833422498654132915334654134236933749333395517107263909023194791950158811531133633290218181793035573308593466148511313941652853916773119689599094669880850849983485754602140179356682751700881263341339417396271054855278631118034058125215444624443745999227455362161571240887846203483861281076340279977639780813873087115010882531081644753677298433113210458454947751164905908935559387785073914881122967170023538254973333037758162408981635666606061990869837864368394384922326717340234830889011644635380723419021539734514928593471744738363644805653155617293830508057780493964640464595348524791682051567930876692006535526538428017876798641242697737949895116872394003122444008265168324918736655332455255405321098129213176877736700906673031850128682629457053977939188544715590984140507712726109736226402105106675940120703189107509268799557960748008483170878401411443473366997674989545149731047508662371970222479278550001962781678765883495364152356349395505261727240568860917758299547972769168171998043591318805791865917228996575648432089810536175162624100373057534646031945586369903876914454035777852384543539098876683320962858240801301861886289814962883339979401289519248094806061778445591600201913212116007259793034523259210470325540322846125876507911793139748980590607210841793640496047545863592302081657963494439243676227159997726242464947848391255608148767379358181869796590041083030380429862210841520960242992695183861565671093515704409665808811054950877782441879766290441637111443167878691143961363587125724352085573641837904793877281797775656578326530639380546496778801821620221392977248552417277341456299315057034386788025750695873309398497659885067297200480246976955272521671088516893015498867214843867246514649270306853640874921113055085716163625915980133493806841100822038245432120090869102987248448201026688071680868675803479656053435030277823875370158036337737579324804035733271609423034570481805910265389217228653417649342236009759118187698954236215501047918680891322032549814175311592663850025020730366656709147049863679722918995298748416448554795093283696729371589904015724683976982565982252806119684669407079910627848446376596074693865681367352694638072968693727301810079855867710137618355714960410821918659346608789798344747715358773886546534240328362982120993702297911493014296496651180901999941135662103567538199995655608630286855766799220412181550074880330974834987919285106341545105505787231846122287651334107011375600513081833012964107950761987990014276601720557747917158997319672343000194969578541080307652418571886425901670841621892819828518478613516304107217260899509700739791018186220101090471911226026263680726421862671394572984260106601010945735265691405258182565272281650332670188074742237872850881415243640502363092009211066150601497842756602032440039305766311869332847218287747387931209044032613888352286304546787107987827529847441716620606354878187116570493641247441325477240167358330129486394100965163997506450884851767807091266770731790558799986625254888317200578013888432748100565128736869433310364825333755842364680990371644791569015493838361184629159092461627369397216404105299472348119176601881032284467346160565840355146500500885106039461758019111534281013644886385771848112966235239892284877138313816407255455359168682882776033088720247666611973737751565479006546420043202915343126765892302130681963626489899542986165777591615176524251799782075137779471290866193261688995641503161043213515563656685868138908626193098036023511720553837965852309200840052688563446486170676520193954230890462099425023073995437076372235725222490895376924023906246056942752873837237058173988074366676181522816747088792566479866858576284420063569045540669948961496427943455936898495579606248739932845149583190629766962826618165219724455589862087347450911230159899276492617380682034035255727655873288835722271468789195791964912512153054339430338510019253456122644684207048527917934530333218718013558911624356848666191528946801685727322011475676432012657903011937160866460728531009247714609694659401103941237642380411777204904230405418368761190265995670244018050134663199359163480734334603538456721757659926380487999220371367510113114894648707864419815216119292144828994594751388796285074518301766178513022601019032151223332027568168770864115028957221678511430197602202540004438339235768022283259235869419107748097575448136705175756520043115490366268203301007675034763021390042512395679292016150949696002029972956862451755846277468891968843325851406727475778020115596245527652115180871876789398076935088883193631310897881640207932866799658655326424278781781327111131381548356054643471371396290296278677584547958931301141161694889118637583137833813024875528002858060993986425426930921379385743866524568979913165988969020743248091731438035792381159198999633591573038929842541630249549397989190267773921324566668724458968865465277456437888517798446360967442618653440860962040363969649070536346629088147615837200603814741116622694153661105200581315415766952187788445415088816179096812175069328911336458002915215415377362920222023933180709215805326873137385738390443998909268052306510520361252118694321460756029508990016326978091145845909593267351882237241026320639676123348507979825576407182111520538727892735939098322144521740729787673146309785254802122830989272319147182465883356263859591580968120127368542526621956997000912710320947638451917770041791661178490127229949323757874021234196750197437329978100119210782507374333874348722872248800853483376311488501191480281945371524142663912151130278722394063987320508681720897156842823089702381522333537643813629547355469951886279303289429823947742062608768056176525110701036069994071306304917276115628335865711767359694381077907645213583023866026067785686278171359613614901895149774651444001245323823075077620320969829747747642948966035644423466408282552725471049876643103949559932547280085506406123692952266861968914362556308329206819332736573490380668298856008797896119558112882794940178477040094416996374571617461475670895740128615411585520517505280171330292323827399949320074514192181836265529675073024936071258666573130642900789880376907671304828472502804593884315186668595409924150273187437852175256854268526411987739477872328936001942915509133494773414419304965244052272245584297083397680307313664958698599215062781602229413060808056456282288586140096401322031667264524282384477001139982942396399734877084019183188183480749712192300133903358021032220266924340498658822470584653230220281015082724808472590990780335415742647613206519085117583927260219515224212290072832117483376313853841026166857933541291315221842758233782279181226966518461244349207006991953245372049064394718460797608918681700471627571336038490271104631037054079362814394448859012825485394643879237861388924649726286705325571848402572801437824410685635759367119214638606766531609278883088855655694870277494691246586521865986146234793465052447110287167140556974409566812224283701257286053652410096161167010102788030658624321040373276885026662479247170748224635330254631404667711176660516157374473841965698608250227985949659864310975695096389355448873238066092169245002235285776353915427679817678578547751732483114073587251658178303804867708962257936759170830420251341955806823664559038451908735414736177031493095128101030547255286241005049037275777275861363831992906162907359208414547766061042780115777857471394812831855613676763688232684197558292728544217345150970778908200158424405306434693522571008188720304396750152717888168851350757638661276349530853768528448389371912359278332210051878310068714214977655311431438865664919294720122110139526226160615046039434037196827602466182617876773325086238106675016462187484703904280870045135634928107950011941483420331441349287058865259062433867372759019694967225794602976742219087448154295483631121121881089573320835852378747249715642114771141813780236429478593943091283419354229135396244946126341844415879240507689416039421294602189321669568054478724209419983349582007550284489624778891546193477104622742647093155277349054816498743486676935964668780513904496013423216142710264693625438217836691418256486582757445351083980715859116677741040506125594451426547180811311955693970064101377604642412553700285732441101024616373653106611486724790487196602450909318774424222358244656512237704835055057972752776234064602128155641570455447857101572388615113846140677648962261380754651007647545945487702985845280887418560716628042558992737295996585232298331445177803805336234116030760120297839369222361748387483807222852479061771054654103250314054861143886787768027166642285333841977249605354226200406726949972375791509145561531369141001801182311491208284967682783173548665307027398142661618429732792974121645570626541793491999943520603750957505616071246096721763611995102634824448969377351821601254002422535198410062737426899656625621182619208281061949908056033875171899498721643464524097218998125108048658398920820099366458653809011748222035541475984965002409898537885811696518772925668831505177710954587621323415584959177089905916757564008598834553600615927291199691888041339066317516808097393592428162414453336314773297225151198197363298686757732273578821225263612810596780960104243933897599539785605102798188740316127973665866499701184128319042396573436985759525048192414510581394609124362393953673230419403232693239528230619616652809118413499560043613243547461574095569810381349044734055889243169818878155453747891922564336520128270931445779061748095413552684560786397010424754530160354528348722544695002804990225769747401011434410090950589736928943467901402444460622484016625413466183793412530218382154073495334833323362553014657228097985200052780387040633443481545637967330425284395651915182277353937105487336008174525737413789001379937275661390722285172289551173257074613376665044791825326471952397054283584769024003055527623142536081153137341885950937608227034249390965263717754798915236153358214019804609382901291043606671280621558443366307778747501664072380313810353803986874273318594742924388744943204710041928334154773648813049089901839809233252726976514768748387898549510501432967718957214974429759430691809049616516898542182392975224252432636771865546480669959849706994543417797745428509366760812095016033572907558472846820790520682563273788124452392292183129346027521070758925438859806929297374023300813571710897688526039874966375983042937291138555159031872795724418237124005272960030496259153261612336365088578041087833932662292670457255027899397872847357682715387501166009779415531124975794766114576832999248410095460644370453092346447809471085440489855643619749496565173323692471320082509136398057389827555580345752444948930429169154975688467962481983666147681247306009494547206745500766639103506042439454316602902387777189203044845080874187681158750366562444926910742910195973097161314511437419087533589083732819323855220515261382143933232072916963868827813683848060913869810871179885020501855167223680033959610426242423538551520200657184812023538681485651843175816438820460496919809308709919404283167723508694105924167176002481207917061276878062214254229059059868874551908091991403868328400515002509916266002387945418196703688839759721137991156296929710222087922101356924862628399469687782976932821277328292982299821551979256755013028473796743047666655376983261358302180155493287725882392960874183089662977167924795924578500648166866197697793094843710373756121216527074725346008336306200533061399682979963686031449346317336700471735547505462843231884238742050853387476253732756520165716696146997863478717382304661285637892373267556604770647384138654126028367126185347291917016219989069057033245628864202488280856628561384947880445146354291903779839835882425089362304489234255834298657125925795869181049569723250616458269467565707401265142017320500761180746462946415591172692772212533593965907760264868384324735474050378097609247097127442576025375562710674762523494129501445828191271937619768733232423895947916233206554586384271270670519132898468017305884193502818235724351395585084515691185768198776277116993821736479628473491399984213787379110568693127706394582372617769209667974725651400403338649823418431533088510432880307316405791294804554446841307724033565555921693583848074820678820035664025490658875201942149389636141483877586938763727671681642042037043373688528420154468849219974318857538410026840256792955370240712935632134508527778773503793158891162842803632323795652020364701578023283595601428325479666448036697776348327147884948542324473306792049794669916648634946603505564719255281722718012174889439219943253952112352608249289766745407101373492462221952572281336287622108677134242526429280082767890106806733762314497649594914621535662179241488842406777760353892798138375687419188317212396253423724438780482458166617009811072363302962143445683151037760958446796381358924308474686850555970250987077772985988273281994265213163932045542971862331666524392956390366722705628832490555638009761903223220344688317657820014028695606416197975749780642569510692211782648092618146639537098608463506272043640625970402911872478154321582988915267035236850081189498670593864368478637701351787868802278469036895847926474845413991523765471474381972741905297735985509297222875781536064361061594170669060257542361578217316513543907755312068996763984038756280209461931371198838027897650256998087101797155209049943726071643185444587922614684483803206721529037580730346316320797923429862057881117755653532298023406662970780643241173116504165991105953724008893070636405589394180688537568580194021117819118416629237927652983289241558512769002894840047891800717298733255236815882611839303896181876256697418196821811544694651243186735479187869388839585820617931938086038675338271714177476696003095100906695178290904006141358711417541375581228218422310935394777916509954343483885290992326693044474585815040688210978957018947808649328364071528905400277081101555788775486934405014208725321484456571956369120322479357280645377257453469819559705126359356052254412718125625615460070652511718986448793167708526772154497528384974273862433718163324025519484496393966087088334016838415193882552614616529176463336796445873282535275459091103925174642616690571326002273659442341700222695808441028579672017417179201963693877333811665094756008800499909630035256594980045388850206864631831508173214424957523671676934209314584013696085695950736837873243073524471984663530832603587786559448678790194635840504941597943700970859262457593590040139919778517124680767028355584115612601489651162457886798216900096199073965823940325825763256113330491336300883743419764276068226477338805277665947211187008508954832400271850497499974538107336454061248944889765598015089010030204884797625230849039882862851627817013710444657548993994922984066479986116069195651194636041690995218126337891249625281746343045691564380377490417065089233418576118586848376669064297568907679396094730670280113604590397202911656536581926984418922334732043746917883221438605434526450811499498299120959811929756824818189519419474810861750555944433479348324551438740867192872524779365684715058849817877321048863032787287366071113254006770130185544592951382626170577522126936539210036279690366474103511157824557610740863147338331284304100874148991584456571481233976948590705861749504527490728671342804884441154962533091701684459844927192315996507418008753138976520058580509966047391820680856113539978497748849630303021504732708047699111334284539978345292528251514426943896514215086791899955994126188313292679846417738584336331749822635800575432463699121326566422783549384274997432387792068112739143678181552764389243477141112655320671602445697958272431894272961461581823564224430189168862863624547516401059546891354881386365113736093173054100222689470656832148119691926209977983683286378576860463407681914243481399410635739587456280511227117781766698687875145093779875913730297931978193916142313981439275807196316159247846979390456217510343123572058164293009073311852639611346556607434156436742963769034057338761912843986794059601467677947328423531549975787399087250477504421241742177359957860501095364777161695318326040228406448548979949896904816560594227636933599852942729950167066604865770879821180984298023926029019631016542782560155403388552742553681108739560190443420731668292689658657812565497583865781254967935058101461535017700946327239395222026159423466784438441295780683759760408881413718667876752770576447719213593179806461653291982708984130294593329995022405073805560881597936468014736210514215166860686948379571832909365160682125443179341610071343062456330295438183385032797970413559576299606118444864013194828959102220334843330400693346080175831932956089587629272352740923593426937105632097816488079637731537080634372716513179892435397915823019021162378386219992083912455070934668163865779981786569400034054023832405172541108999936448921698250844401485833680514616074262243235209766518423891102672245799234633140651004659115850637911222457774159373884441693098312281934837958183540079784046750325967296706859738039729550738212746839224279607816075037426725555520353398012717175017569954909527592271207204343405865901933647191466499591561327733835235351433435061644284709691623144119688750495423181253971472517105043088625838171579753769506120658919063364215773226434759589429779613698640643537084116616790176958019755912971302249900931227036842188753785649328279004925765826324516882107406027991216201298985314035209223676551929398517052032351126910910351852747984592026792733447036569962631186542142758435853239124797957987335123548315609737564683809277844747547697988797928829566974489149223085070272741627049207045922247459373503101278720381783531761929361080616420194131959326843163809763513621626446682814204371952459815083382195507705536120088401663214962314473639237719811169659972429356673906876344929001010721861260971009008709852903533965688963772268033101191102148583601541367240503220494368105236242481323026177830251314023318242244222721049003753792044954914717390904718292980875674068696023983058167233404305392264420585955118891062977537722045475441316524104553689962655421876509125156019958841452309806492294788812665978338848641069789747539971490755457285319074106431289971620532061910700514303133279673998756107247045412496737882589047814786304109816554761330643896484658415560073102152638623167696250273478408187828977441016833922322121170952032718086117365806686125083352402115544035770666998305256469760642396834072490629896111200512765179979063528424204068933763200872159681485055669340627458640967553095828983645283060366576686587808137936629202005953863167903844899754038898051682990614871829512732667211503459751170387777052475652827927481003679861025354361635422775024482431843933062693693762954120151677878775504959661257634377574466679167294689336870981635164505035738236949134274087174219135815196927720351204748152035943461404989315665880186580492704927823362670842155824687680594579544140865893102742103202743090091533029469407494960509041601840622874164551809680306779532717049343853986496874518873289145518102377072799657808364124270299127930684269931880132133949231869797402411812294304229691447367041432539055617521734201355963571533064124722089446268931680061133497002903316981401527920707008061197007687502147280602879157577190623023666210029720289774276410329849507784527342999260019529361425059020635857273498073662532379254271189526365603198290746897016430321331799755820261552025242960983119177552056695983849467901399113950100802058351923628360654956892602263728532712620971883056461949462006085877373589318815436037235047208905556149404541377894943325132057537022656819383721945745848957113716836968109541721171031437216559883169079366003846214865759584808167019580368315808933210829950398516372495030019640862235312399629249853997251600496454098077502381407167516879022064664714900907470460153064531202642750248419503231174488599024849239467200136556320288450484305334458737918927978312415572288547967812165491589249221531735112839294677563444693912247929209507975722278091970335227967616565103646810680053359394835178358613107633697615172359682974418995113488378002594102357286034355078522568804869570769760937471618739115083549283931644417371031811082474865300501557502780685836102642088848365701192782632054530713022891087519755386246078205316370058897455275638157428047601337021916307752358890606221135501158691316429903464719635822641974142453622658768110476740921152285615650329817271275189897859278905281166390468767044553513941993991488615900357619122735231336757945632876849467998176761631325504371250592597031672444515625029807104136058491023878794074153257852577851689585162970824723029451294550705176901390432750462591368651469517145061146300445755056573629651395875685081071297206776450238206796411192845830732929964804866823731533413606356898230272669883460511792429540146749075203254735412289104900454244010610501789476892639806943898879139299962330755063070258452620039455686523450053701930392589819028742087296635670804586102649850547274398663273474812831651191066935058650777264461885367250632438563165163760119904953957372709910181180550770096702660749126793696405905890929788709863815096091314816593149730350465498960386756248186879198076067899682668764302625283207182440740005279805579362605637451629311495201532275241442752336836910928694384686687643402825452577840351140011126131455999068759451724852044986367079494215918988333054266590061976255353980536563415437379703688206634805989471245486961340226635654536082036451664209672158638966218924258668241728890902136354390854218141467514612337813806674682338095172467836995502311491374010824537977962447400993261943611357153757999618425149470074899249761169945984434287911871321495439336682049534284582489347769270749240171247267344431750712368300330830286867986489518238737191108215537907323702531228963042111754526882934850745982832934278039790095226251266264355624957889884215012060717198305705630972608520981735559457923128176597708942457851509376154301888708066150304472586484536010685890640177182209810837980753012308301480080877856488426815898966276228781121229395844123200672648946129503438735395258435273223930166643639368087230645362480849472227334643390625107023047455725812802196129353099747474494046566773889929345989291673721099580514472549438393887543726499103974859323433828193652542588593977131042529915452526573461361620722795115021071452248261435403283855400091123922092011745619696742445586463986919095361654811873370222006401177308093118323234953640331173465455561896253459405262353796952738922408741327673539245297837514865379612034067832103688496456002137839887257542751715065146414136745700592797467157071262259164459077751824337531495068604214536315378597894002893925699416777636325620978550757543571758714142347142868559627076456008367574322635915739571668869926517646624686791295579341124334535908886587005567114368162739441495182331147193408210465467766523690846007765637265686290807435827336839191991760691878057796172303185906668738540257219377477458033835272288515304960225127213739372816500657221743193181344984497712505281720445979580417886677337071786187689315244267591030259222441812513802890363112426970792493875150247717797212448483159464711966248553614167869275763935946179512293955901239694773326133973293897341412621066643571188300992809331131761718618530225361194436494091092847153192692852916358399824544421014355448749627675779276394025682805051580638972900339779280069301254433633363981128269284203275229376484687950395813439737489579437366687404775491066820782693071742857834730324696265475234926871281567739489960381330508277824873342123936747378160608521259636603090601326534096741061780033704564342279389612306196234703923968508912900471689084449664556066599700308407801022273721251672922645092361171571434299817475410263901412488573826840897213380926413846326160035896683962537769298310332011871402030634035989530094168269686641419205317020278168637379297232146562495196323273964121599598102536388899945119777749766256006252685267466433873381152307006704655648175411336037053918072265338386369420041476194671393523808394730030059665179278754647416476170451409316312290423303958427916483060261391753915398611429938748598285556943027482756826436261803652400686869527727258994964663563156938582807707917739548083601892464507409382961790435157182167601441444555312041529197330271851932886808704232351397985640384454330184479572845599180347592258443945577439170445904576519430513350676763871676208049796631974595440287209043217787433749239007640717513603267998072074230393674795698256360444696119985594117482083136313495224759299497272676368336449631707291414799234298288951857623986754255439465555699435723345861848203058193575459171385598163670009284206123774839373249536778704732220989255896286485465274486916968444629483267044428575926728250221776151063218834056251446064757997024046624472761381341864169708493021221150060678476201648713136017615554007734204829646132828119834640702442095705452929624906878299048301120937695774200533129102344420459640701345482235936514679445247222488898866369433751760831893326379074086176603995622841910642579371082211210937910749586134586481180400735206834143435924502264900628229188939900703818139107472587350405939814580959227949417682782671419458692459354340576673982244726976622361709508551289576646650294011700553441472744918904077172165112925179698797308149925741123271080648086133386295046199694874335131869500122020826137254294223327837997498519555189293384823910108368677734065454336071614961014539756668319539488640558393344865463367558861734096093211253286405986716147839394733035901397283212060079598696044091867842221202861457224363127629976617914976571978640507160355215547338249690656572655251014863861551103340347347850833976585520860190436048482096901016573379439033938598094141057085654757270202459829095342934534498618735088442707880206925442793490345072807735896911078871863258366974075862357145191583226524497797696244266033176011007430766825131628674745025475298703025185123710604679726713817485777230188434599784803314219749461929953759516476693567047908530371165002178339989743670364159659168945391019383469364408337691098932065723521834473673062813002283708406524076905086831994998198310957585706766064947277193331491176154073737205678322935671353293703779334067754766160206712120963692916182148627721527425043255047449261625101083847761226677947610430634263070876692296793941003859605122584129446439675708535498611654925862461452072418103299770971639684961572115836893421615603414209081784795384446410414049960524622467843961357748575640255349764870902360218867575644044066975782745299936543653698710551011997750509818872809789571897115984924411620824155002583718757288863506296972122473355648773464753030457655747333743449410774465421177792309732922299226804093614432665668809068883423921474794570816811281697665301530161155908930462268570664939832017367816848467453001745443461241834767813935475540765849364567240998980896506257558110754445569611355440396357058777045224432018251315353776234528589237704994885270806880186422399845812412622538465806587032961974143722765998868938714867649843149906027930454309571249799627094904743353836073306727667722239114640370977235058249722828515619919204020261635899154406256628984117281449543351961650848647602787350792195945714963641117172525175241939154000473619785712063535602982760862415818179326390503106697765132002980176023739385659934329478818927459118143825073113994773155770496991729704309888710234752434824243603181661349507529843694249602373700384941746097126402953719817193294403662023759080727229882242192293128985432923027544942233875277439246013427141536116565164472631295926196420544821650334699309857551390686812779843194303511420519211282670367151382133836692914239881608175746136638093576563829393656636817851495600416981076059184450997488006283473258492824550914715206846060930248399262803130888997533155391754712742923558520709434266614152339816100231638928271995134637884912809200126622382830444227794756233713475332728493071787056867006128873996230458957743511413688706692699275835121997730400334817454644708801801457524366319236333855234887337982279606729739010613344762271928757549708301519832054805060008530663506146196914692957587391849725061200867463226843227236791710334382599945257314548030252416132457130135023952021607196205470392452304310354703577289905952248251501414015462305826165941976853345110285364222638862245875877769645777850311500563226667873532085610919426123813642863613393526161853284606029127817332796239971720974440446882364614667536417115590681496142572810226204534301797113390930583095188542063769151787862779549869738648950448719347118886965326047645492436477905949887313246375023307716803391154261362398522163993503934787776135733701826834100039362278521423972114060498766925448038551110175908253956129568406022189938964291486149063556481453651234213087377905899677374632294657510522495005416787900228183095796401102759983337017938287444639698734597288674986058701155221201708139319769842910369761829853681199671154448855733039088817818578481284512276808211545672135945082998052265358137113272028488501888585006297550475279874707081691684756284090862605506328482830221501684256511873994620968581677980141071623283110883541904223097211409195366599606687039930131283312834155867979929551322360837546242765461086371175573878612905925049161042288039041394409147070919383926261145213475808472364018882023409480826696765247489800936518322695721535830751367876228790019147830201475585425637527503147691369749396766389858855656691566977560163279879620204378188989458260040592758479865831206094292932436969145424430245580551815576629490984161022704545165116017255693100906066688157729644183042097245166504133871586677599693366475100732120941499661786681523401889900611305049285626588183483531726680994844902648259534687774064096486740769903575487743203536231723682262584026857125569018171815668172312222021046583257284079722414725208792211223959335707709043924219200348061307689483748343767847371195269683548387358205282079685825650175712248166940273158760355449763997679499756408754645940904049660407286234207384936242885190143451533788563510897302541420017680628381181283216680851827413482754388229849237618904089663718513119226618119213653582897723378601940363001071773647135206178977162548807106654075843349850630979526711261963129058305642425514573293733878021850805165120840123389954794991910000030097477990024847997091445711710818445264466468876654105477130756284259271775878992815177821272679419520033230225961882513548436164995845342431186996486670557450063768159452453657128639759302939932668009273695350084169348996407851817989377154174170630387890814024594362955112118357172775199213761701383752289748159739287326218703748624956572539277514575100514370384721898440362850943672353956245873459175682719305898249754630202919543713185948946157028897740918344431887938606746940617193239174857101642725893975600995272477105155681068109323941000265312589039088519828580664090316823343097420310595299803596216161180061849061022163758709940952497747860125097147664122081249708359161240331604857959483406501552523074303442584555316588388338254799984368556329450851934749392447471388363118266040703165689331621064314304439967082013180341720689855412637695911456537669420684193610013636289259770457355773890771434648180012992126135955299835936224029493500618319927224249506850128930610900509899858586886682334652592457840774448528757336912292929828651020870595146622527266858528341529496169343669685187723405731312444269774770696550098137688831184043290537919129388695068837309309355483606538475993284792039301659877832965209419831049091881750985380183560478475921611830707487496972797132135121079280611464180605249090091048734219358234400421210617920143157190726845094245802759168228425169888591911719300556510495178055796555196300982164391513622504049897341985846825364324908637487090924794447995663293056075738024343335890086958652859986372842804013957370575652052780296597243258466221215926384303967673274559471937921752578605758997969907660679334090891506206630197089679942326472162940920966229665668985350708851513017691858470687629702607402248369091163131667322479796104037365167013678255893120047930933178959160556714271674852932319672030541404755928600210007655218816899580283185670535353379127476862252919718075615574951854382567553684605711035499313414852618723083944843702172265667682652506794431875854160258852601010792180328747494136902587321687086247604682978530322412751810097788957562471153597178796857617769357665536741856324977241011972222108508536778563512203064525285000560362656124751258657747783703610234012966702070876741448259144923524133547807558709425850610746554001240708619793786653562629448966611119612101559329295368320137094395397532517309253115780267328448038596463544935136586482728326043473498059326987152585547968268835743130177883351766600101396175140801888011117542482168938027284933840454888800389312001703556464279829709814801782098294758538314249340092872633891303509016243699757367930817594549355840081006908142099211158408131783797017059633233162431630657931474268297926329978681284465065618252475241887571510906664140954689759396288913694219532981055735316083818978740834757977823619567688700097312179008259012757617388714367797268704987747161043845736770185941519674797136541337363706692579064952522862702952696588695179358272647461183768292432281283302457526968709234105222000464521064002707168317250607856287333537877311074696939147787814642624495950801433628831726148775506480774596785151024006984797852069238611803899364545314770718795628541819208081644018811371883135384784621269296845185139079235043811382448931488341803240399126287301135108035009707750941143041676732979118743611600515831972698648465834623719056248928158143826307056862743827446666774750051156993188684939190858298083739933180530675974374275970750956489090723212501025503841640861655679019015901765673571484673907178623949432950249747361790683537527885012667519730563088649164966200607006527582530825204738087862126194225501526409224383258704546250477655391087596365923128518368944877356206006960220321853217587189348423624885528649943307578804599118898494581699205901358144632679829929202782614740541959245547005288842639675276644666233719038934478683975200005790732445500230002748317331340175051337920923929642823780733241856097276220589097221449775619346199356665504255813581852026825781098705755807198667808590271898091629709929841866636879089389553590100489509917801036073820729629357988329071052373277062204581857940075458446121344285063425395222648468357069645409442370745863075378503928088648625574432993929058853477556143147839833853554705381750830026079321969199361344631944113229814639230648563341280932070522305175493375489003710642533997956012857172811892467114088363554075401751401375917661008403038755127823889077857424066069506742425478877673237195647035947306792420616403838355579589180333905043289709381007439773538185407162620646771740299214059995830786205800864037729984006397476865582132556936304554515245025066608818909895759878461458129060629350388111510316685209530586546626907943699452098434210062907416777289527181902227329472902519991886056388348020376885156953368369876498426256442224947394770323839636755497300220135687044791566962199659827617303921450679918013230461165390832611263214636241333808645599228066258048247321671816398777927317980780272690925330643846986127498667127812759222697922410207449796341791084708339236802975417615182490974813102026641248458646103012385699600334999020700192462097603417538284988673071240281860366706956485586567984961926380610567723882813165231068014773152502259372837316880417495376744561843704725886216040881211124489969806475733969219564807115388375327471929253017219770385248812959050865260229444094746564767037681380461478769942250609866635106872349236690321098065242407043459853612059094344272049381494892889186569579242949582800068935666416227646979571361566225553994191688784254748113687757407024470516666719180388097055321068522739719780785005280210921871676235887698979144854598915171202453937957038657571690407443397942281266702859718325726416865582104255558686330591081427516754843462121993236981576625116845627178066683239855238512155584034594156521505836753512996655945930825953705717424655533617561637663276735588445314116871190769742442503793586575329424312222300213737591744717626430631547760456511219036394086879342464546360759160200284299088209733952775806760597864228874017011476828917989460812048692851800591147204526398407614430326516585143166244625704675000562596384389837183493875447472273655853553241861754062067676907701689917930153495462962209701472997215320393169029123021152646772768352748890815113443287307643513432044109279591717792316950971795011795922881734865127409914715121520801455712598288674233058307489166310624077203233285437986064872611863814210696328567252626551348200274545864360143282535004739361794037393676414111019914981458682793101975282767034516671212046069234894415505657709829300020771759976667071236383837511503435894759983383642952824888100727822349913100367017824130584873635543814896811071986499574555313091834441741716001806901216881418991174775642334908569552503780641136166069172786180179609907460811263864947196618555385244256789011226246147393157375561198474769827648606508276456703841693574653565567295991336184039124612679621291824144323175022905866951782031159558522423196284065904831349994455179389247513324883640961816044842864150982219675102949472281660003845350665079032863875333972916724248535589120898450576916003828641188339088830800574401432676795499137873695874475580621989900550162840552746635090944233971525234456551964874217422936726907722796192605853162810661601399376966786478016815411555669668899050356472828305136512773998792588493348214383083261947465493635371371103191551752192056824199633992687077458520120631783655671644972695330447259040788519148969714715388400311440142611134680683584069830739769238940010586662820369388950081384563931635241633325930157914063040844293084784019775516903741164458897694128077310918668198765076042967980135673825299824823711308530676931737006453863143743317183736949772628447948325218935094407956698713216718863819988759258673400639030345097715339917576709019680090226360566580248937308374387629156956972803969462547043103867424796716563441968676717819228836517206316302755524846020001586657129714561976898350155598117269186522602960782355557392335652239489706965592077612168680302586901607893432865267453690869574881940126934842750993459615284651887486767643149607015026623434984107798752673894133149404205123716442834137112817859762112655180886033019801424121188646421296475760232815472536635773943116167881154323052158735878510918845351415760812825013218400159272544481650801355226653562650054401313690344134131307215774366303108245647516421869787490100321432563197315513820796908164162228663600898986281975188512126347197968986094784672847788477196859541260865189048310628206775808791362664220509910211707370778615811421432887761575865657471819863526019494773063097872487182778939809700103347686914956966804361579233826245042018022223368642793544273329292933818065419295762017724664701682075843190376256953941821553325999475745868086658877747022146634784774777492618926706218553468238963494485366808483305997737054132328850614568963086406390165371406555453438958956650061115471331584413841579120483917179341287204517672585435857096204485674333121657673634382852544973763665433632616795391381297549830238311453795494243381062075835519626255127128484780553149346901181673275978437773579439113650861138299121829772992703502402293070583861322747450951490872840277085234605293580438002559070512478801518295970894991669597268064893346712774959507479820494285326753998249717990231589170361177075000684887260413921572193174890200429305968470247331952816396431157241699379808060132013146803963902411360914465698944918187000329691044405241848246922182729542068218695902197407481311942724439590543558350426755920501925457633972672719277810334286221060964010378410155836648196328162999218209669959339574239174637716048299379785091012326802076683773214089500886159182770657865137573981478839866017326006008858239293370078440754740771635341905284779001414176314515031528389421611706338278576608992459881956908529212373417367535016069468969621127924182410625832507422233656925712693210064833325416651979586410583796570871217288893919483598784535903573420138368907312857330333145688358224358601553249920172222650062323076844022453068618309265648764634518265843973695636788183069664845395573844170590323195771220311810146977641033620577430055238828241325469626332616180603963172230027910581382388141017691760787187458822729257551129862818778103726834228670610776939091818444487646603587263094364717753279605575855579149258137141243521122844290934976011335349138633151222323888998715397123326124289970148586248237873142171354758818212765565449727475225843177765506129050907024188441618642816503289576785648161504213677961332400790217557048083896871780798532968403117540876924091861135552117125112917519833988929705642522892261604982812396325695296944340225097402502516371691214935861420826916343460212250453605343737699073524452841142759308890631300788146248189143072741450165906843197319414998345966566266002794293088695014831949401352319797855787085158063453808885895569068916095837031452774834256873351262727818583179342917897422557901135265556433896550702331432523123051464399272935074292628893595773811072383823645653856314114007217882833214818961728513014874284083038600787808468611932710584717143144358981897037298092332841813162375210163350211603850385601814013488659736332165212134499921731967558099448304326162795407652803455789365407602844543838244419367062826484256401513771368345575817583900723384831292161675533879327441525554636432474284995148966261706070239669182790737797287434384645807727448243399019306959298900395490880178425608589966218684249754002977868859583691881962030324332345891424238834274052074050193116826258901161074836329622055840647905924272587183826279633616811889957115616664136283083589290599255629689099022120454589966993396872602351383981945112487873613730027063481974405848076453913492064374160945395477668581826917046353795693248640842356600838919624903932743716421596228891278682385726338713841332445460756932624292942138933065407636032303381809078016977435876953263013662285108749795730925932453777624691785843880325947150009718857255483927543661729947021727809210068301476730286537806353882247393147948977432494232700149606070671893563057824530339571057601456042006542652983121795698340242609271259990678191663064227273558701514447056109820880221581711413918053905569046653827736228711697017061908112689045028680317959048184081867435496499646850701424826709436455329955693603888394944991901114930870469123295689031005611402607759855774370995389142688615167660693790773285073915033577614677966920394087938081153396107532059883905103357457900200894305627466719005719983752491273817987190991648813344333465066530661209392276421559926583373047713672238130870767826474728320732043470654725814386102973670333154000423170901232956979423579334440636350376131407208369413462537278475007106065838355510305641167386019620504007468623662311866753249357934815495422055847320427650451155972161252050905876344457848407347319100772627362345654073427736476556557074882773552066830012454057162416021518306221768030705471332541360566212044267181723571343957801818960658131624771511111929530377808267646781546871349475699340399855678483244569318364651465041341205300217902535004734844425092701626342657099028892738035826364950547067678191291839757113159702017686947511400241097337379264477728515285084254354195734659399140023601743794771442394730334300956270612823643251170285129811536830009837306923440328559388994171880109397021145169669727757214894302111292202391393581119622609653572319416751785804447170985064778139601568466183881776433039733655047143762638251645133674989179009526923491470033698363419593746840745528597838706668865736395194995268484380252428027588125735415737068232739534888512751664398690508769316807674790149148889676553537191856679182855718135621129460772209122090486773197154289137683554745501224762636424598459278066174275168588917036446427484572019843686048619143997856888957592098425400919828744295092104775174200318155998747613263121695457932327916773290154249026974412878001097300557044401275488206273474975123789865087666907653929518436336906963365392261388280214691023381715198533560463833277896943092782060731699922509073332531464547855816226904554709833186032775013000931687114445815266780321788699127544534812794038595404926224552193638079711649939836107256198767517853779409582021172736002265441293337250090390869782354055832204560899046569276113012451937548852044110438067554668862746013970890295738863645129633395501214959597583315430988392606990693088588009086957633327861887447473416623893623826305027255226503975378734966555778823483839393953379857516081386222387999790754178331726236734816494999556525413077538070150129706162224282274994918546888502990149915778750980239888861533736263477235267712465723048347042651872973076142622955324444358708797319271469562501053914601232359732370481369634757284904027616028953495494539426318176549314416874457275438203130465974799393378710688810951765026696321568015706892169939094037329866491252817029239776383467854595891822428680132290165124631494214052361769124219022945508488019570592811622675740096106618721591701468511527502595170944733113987748631249843771644936104777766334319230751242435619636532981433364193071540477594874461318610126957463529763183313090181821529585592141720290476706384627048133713903203687494880904153499060797793959256084689511341205634632309754318504772470362640509696425992147988669903754500182523557302383966297068177050043978009420675958643902561832299369214845709906872449256801758172564183668247951630222718889983929290583113641375033742220893109442217097688029872784464866479582970484686256597211493942007883943549593813432795106389399000579002044724663339910007588731996690991220413178767519999027430662535222338732352133876511245302812656746523862401794120706843311878925840859565116145928660855777908996031453663860480987288398118503995991893149494328320830108715510742152069626214430651749467127700261804095841671477255424363498014773959292147451307154040696470446803698390476086505139809379951482648538566865771630022466909343011894453946146277985549724138255618761353270026095588510255868704656505277298668428330670631474623678627399670265667892287751793796240967737906702259885114449841066972568675841010296049097632464134730665660141380302525824348094758389599427094278293376031241584924656294293017307691453857170536926583158424624939988155917857495869794023924174710799655611798007397371351194329891087995069626410620268299207942289327671378442289823986251369508142681166331057795417296890988300461372546508439049828744591009245447496176329896338785287957910564209453970226526536676032513182426549622330911290123903534774336611443862042516102238167536297296747077737651183082534985851018834514960317596735930781295658588944346822927940005119799895480349766671378298431505383747391842671804358688396462906423220316847734061582906467308090532114334448073319396402229069259264431620847499778329262841188081664482593570047363770036146292362724855060497739494807885293174373186675511630992596366771985696398959188565198601930239059649563555663674344927689863808614993461311059107269639745300909898461502033506883831565627644905662853563896561720827853240718026914483744264763761937844572851472619782592377401927787698046586970192667518477685073578959079884814284230349218455011461518441427843050664219388595577246486331256958718115158779183021914041112289346022598515556343961821613476399859313786778366410605866986518155506237571522073474471054330918713669308782681269870051955925310019056958587860602170518011439939379794349564560555048257827826007455002089730493165770089608806974611731023301729773532029794716813717763660345858440428086066809209437059176202161891999712047098206621224143310337392978704364618997779884304672699512271734455956422689792307956161358057325648569009166025100938542555779790359855423810115006975056674830756761361226151358776158474912724644497037125145686717181743975840942192184690513967980932887026943966106667050474272331947137564896397386750835221239458203591311367155473566252824154731070256800298584112219112257228521367322944972700413970626024361826954649773856991443565049960847838829065100025461981033893902774879717562814091666272165617676324951787847901373881331738851188956465683346446974896287566633790108772791385842315743348437578624608485616907896076905074846065878791877894195362154283350513562325328869367589802956654675627492800265204651719205650520288025109590308690686277333593418595819806734586001302142400030911130024758718895767457950708955134688829132601613092439807300381098618275826871500192209033297425900520013245559086710965699871272992684358477472754305190089319934293183097375588904276435885854492110332992339659316915876547611099852491267810519590525235544260626324485166350787551225509474140925239958989636359188670914476840950511373487551068006061093409080274855774040079672639628039426407342207008362173085970840385291454821007910184796730037430854297101518069039322479304609512840100265244574829853487664776755507169011468806573112252012066964163810451951608729972624719398912534349541796869572512823917848093495869972156965684400004635763072376170372982781799317530207344260047613807046003285738490251416022785334383127913176340961761147769136004767026239685816087607059102229928839610927849782178131427971955671809860708091450399369103468077219478199593438014397903976869565721109990170021071521066562128353505507449654847766334527927640979813841999089513204426367334679791004272799714080765962722513674581173229181820532481854585827792885649114602929419074184635679024193710885074496677959114798146969405334624719007084846020353236606998888010435752318901898822298447492293431571461738508483084433389919867357252665797265570068182904647239132901886561999018662515598079657977168983166959247890724818267561246832158750808995114144835227605003987697824428032676563154010963456374474862108081791940395333537876479854209008486827815490962402919706894838930315635564604004685231294413040696239455221339703818888130204581129667546129794278752951002163537889020237028355188383397240516953552309750801449471976081864009107972599749672570102005247709880344896253189990826837377959457679844609136472706726965773768702938000563723982954937639453591379772116233598457681477643105232235968772038266194957811590263088099425786085965003195979713954772668892573784796006496061371203832444419321476226415575778089968897154843559217591619576761003698438068515415147191714618518168472984104760849695872495231229206073864293719692809461992983525171401103892919574302007953461333417078456535869659626611293699324941280767154299850988332896687831325475151620432794728228416558710892193534211928511143684524937379388358581855128435586115610805662485837158017220005956069403832172997432383246901648937005330854351190999625664508274580547102925484836134192063986318827156203770523602572118879028435029911777377102953272503744625852552971679689148412484649577438274787032294346804532938642478501229986008967186000383822198005632207516866254499712469291304950616055425460991773284356926288998366475564439093246622338369239730383364937204000172386367545209416989671610129912269128525223278948262038582448697774616609152271985527859429038093812440821863854171081454052950120808657561782126932731815009673969299208370749352198017072972723036423471273321470457805391102221070094387889966645015448774833706939334989330616667819050594803392845386866217073800132926923390415162483238471633871427828904179217293507919772061849660367456622118879703271878480514540935907081494317498946452525552242054345477514616600894259916682264035199660773936383570548269370827067126930143586469219209192895768548653284919626786784563007052823217131718632141806536958177789540457802483802977234131490155671614632516922423989726851176030602520715174982716006395941365151105571616823496014489195762941248093514004233906383105249755555660417092750407715987475664052697824202562219994510868387508550934421742334261941611425738306098037929003986503585092014977699410283422470359483190671047452415910302209792970313876936316843362780374736837240371941168559608324876065962590459705625262625815668846711595302499370974663132879603022862723612948471690677067247186936727848030407037251323782829940074006818779769684192967553376105399052997712820428017761171555704356665140715356894850604529895575005182781109936562966745619489005846715824221390573437097124315389376057943493465981393340117982917987244406090388692668241960896384607959057002058656294696873244612789166989251733117462474196625329106768839653795961503540069669879655679891066930780782732918692646749437625538626023603875629518339370241263761007749751520556302639604670998186206633929919233644005585119603876024179875011760371062456155176889190561609075053793774844077696096585880442767805836594374057885121430212996633662407749942048144045890231129144988993401906559691284746852390241643705320669035640917367501837701917765284544634743899443732740141649419534575079254570869418101364236553199195643081380951790062294256680061500139086267380683320512754752061134936303048587639217377923431548348542954472551368165364496778624735703101123164960051594150122242572650645080264045632461111193943318560927481611757554453673435859569379897620187082895702750172103325125531735176438995858442943377604107536938176240154393613193857250779491875792234297520019618696110579919445974778936579203486882927027862701355534146751588789856406417334721530276205098616972341383087486870147065535281813610375789381245629086717230446947394267604239593881074797758666707464100710151856816367264151567683008798738440080840890477370558391115229102157445879203180423188230531254535026986272130763641758052881797579861822170322997268395272597198818556868527054040477669108584376151526585469592639217223312555735452655645658721240061436757341026438502632429740027512389345048335739404342662496874929590109484644843820263416640454898336228336327967495850391156517080699421815401788586588649424044940385135296133914782177497210840031770909711788348604504910218122305004427245021825064944781695686233375317536088380571070753255988475019364051211478197400287623518888012181489040760649967274877712499115648722571052767704024499772506760514487344570913390820351803162024853657022428499332466603967652375144365835389698893528890602354171818393029591179414504112267633871015548408928698146291844555982608654502518174901253869291641770938531903720899438234535447509830035795750414561074493389454994416624700713882031079574054046868145559205827513856141067613104964453677749303702253343599905050026703385884691947133652215483936061005471285889580124664540404130368626848891118071035248356540448070239332928164808778991934559409345876150342042557173812811808464172474104759013651734572266620242570957836531376960059770588307215110591674591739301963907850694333429197550638965180259811046878790778147552799598992818270760111121396102170124315315801006443344922910330092395261459592882129108473108672755050883508290410110247533234141226403330074589733249960085365207381365790324797517574989015778760677107057611585090257414314007607643338730630955113498566748659461122536550405837862288911139507198312148825234217649267037316093880213859040234263163723597054689765956166773983807974162375844935394695903476877292953258335736502810152470650074125937230698274522328169049106982597027452782181079752496217803668968082173524648875846980103604354926230327563277667054678148774393455166826900615405261242253950013370471193233451994363698402045465491502509022965101852474910319559056957895781712212384010463462788027491189919878577775755065400075265344373621844449033214189782357344635481981314984718212376094177822796400746366161204776837273150588070540268510934060837186354816930593266557837267790425562306383998473608450227617415447057563104683861135227804794573292549176859243055020706411178338505127581014348862192296382801879724021641138468257488511520889700596160053035825477192225908809712690982072502124768549051661982981983601793141999705585412781311702566739745911523585973811868588147192906356166091625895537272885878837884918540026999781312008631435918906361577680990430174443891450419548516002097953511843712471087683067692496188007089285524257528040651365988134495519259491484306203135840382685795893346542267866820935164434307248624092396802811894673298534045077829800135974500256628996501604196447502141276252932479174439048381647904828155517241480514835926168771960470015675672892104574415700934398080191772141324977923665910683701968836841399574163628627409439070308289987532499666779620152919262563674741158021144725130749515962222577446594269654470127080234875813502074739033446587179052679197777499509825640456487272151360834144988231707320565778141374365953721344439770101025464738839045319790703175789789089307881931030112863642070187777668865871042264757020114240120042916968218540590238400550811096091729098212006189391707848300996488622584036891713203311516443331455524553369810794405397680026268139607124108956122970117771807521719993424565625891495321891342774018467028174100772416248984962499801422312818514145263129507843901809840121825680787171113961811724202218738552797975438045256270671700699759735062017825112717391044156961632760975348925185974555421742696373082037292885256105429186131424424653671161469356751553865038197729476469676997010121995608193504357574722156595776949518255926345352444553226164343849513639686184766592112149277692639169089335597872622303974549118116500271660031905638375288592925236677196400304555536130656992412726619219726631099794190058185759829167119743399129415873329968696239361464392346626029103708067854849454030786573396869956987802028256165279644545340939458577079101329559243223365256362758301370317607764683417869442878323629408473192186384933550522746676769873848233457715836222201268346341487410199935325445595620573785224767638913088292063523549086569988891782576383727329347355749150158957316498580343090629127675626315811910191260595761633210844282978190214164793957003260548519562152724591148072450491872185899440450716568929531706927589803038361098625297779892094580894308396714575354251232489441698681191046351764803001465882172804309655157079766604384236450534220944194986066187996380941058343690371939500200896246212454104183726192284430246827810612210854818882684979007590610652476084936388927075216063607523102886592138990459275961694681138741658818040037405782834059587949214008371379539401338434822674974244952529771682737334342291048115955430268643733604229134483755542573608713775496673740619838426059761071021592243756439356584794364794365815475729791571825749844891334241931969224093230823365004967240222495929049397836209573250851582407994502189902322648101488314531660376038273287692802285241715964571468003914864308293693705473225692220558519315287439167596017348252480309201664761755806935535555052989084104804405860917352538460035580607297165106355551905316953645118841723900389961450365201480718418386385649690829847184412549291605622165975437283928199368981788804204447526130759877040806286704360147795778358793800995220334208794574570176308606962680106881200094698537528456282199894909648105478258761827463255467138593029245963678445911032875171536976235925290559734271875646633861020623233494469069780708865329808676961158992816791827032225973818103077604612938902263521705640555050999364634563660921859232394265377512588612282019269261586808370747987310457635752982583463480019249172056112191876241389082991733077564767599435868917959412590129216001694341819932504421138691209156687609358001295928933636118378454226414479719286731119411875855681420343504054182082097257213061716160957012036421372563172549281024572825487193392536858630564579801007570383497106898116341339643430896577278742246424327706588189633004623304586160059011551599346972371250085619548914939604457342900671322588679398142028360402706080520191010643855522474414350818289772188229915577465476361304783566690743815704565066843372878518371760914178421106051236217892445760249472975063298083701202209936567180538882982471562985859785476789588755583421119522055076428883264957787157050981343354611730984552151714974564974438903396095292996759600614724634334075920403603464732520209540016274796097574353366812351860585710882821101344088445199409124222918458294879577593395844749662333285572251414505058706948271633173811763460951109686011422898266470115524963879307125018474644176240779640103381274608587352116743037296379817508009200795891957572017446055928031833952279593849632596667076400797095374117102477083953688926074677708082255501385746769629822949019027639050345341681771681554948194425812220812998094409961944785735389399789420010053645259706955292937846302153775075409355663707150722058142659537268820286814358498008742746094454870586120366366266827061909641826348091795737522605949503565917583440261125868620545302171288040170604860506897378314873896707425475888584032543680930839695562675053434189949525968117001940431091390235205898287315467299234821863718840486612357390070332033704432365326687235005234409905526086026678870380442226460058772778793760358657837421315207917264936847086777527618369476058908137324330677302360661839567838730826470046297298040762799620349417356229217663549561663504093799406999234621048078936803745919067251855334689152156673918342417361172669598134940621288079051875942829080803225117988452162406225687903774384999553811689703409700343025290968125584405410596435313762328457331295496666776060811010748399394507791579159084232316293557196576820438598321131986479459444025621736118665907733218849996983043354559703187913048071228145867634348579939772082847723541428185900777520061507823468482435037004023390587504245330373841781204309799301934562235660356366009265930939898955835213591534476699287514538454072236208136551065484119081136800076125287683781545276203559793331234934420503407604617038193132099076058774028661729270977208242775246641871594030223480759661686759613072041195980302239460950522432554079882696276973958624586790084529501433617660342649053276617547131355157930296718554862084610767587884703502530630126572727824925864254668172972877787301403346321001508077348148162166224947581234821296326332469382606083715665034130444517352722750025576353488981912512655842898812876599888630886764588860224836356519140385931490502717156227210092277021095078252277315245868167635389564479396912691372771586475976955333481546692416579123935479157948843128280062969370581338877749518088761691713228716123295361375328048178094358967458379120252588512846856109504165312650274673100259182103172039906773038670067862829365761705311568973133685489703841870773363148007908504693180145815230736932887637765376473547112377271432602417193839101612292296042420917891149021341698344910389717488695702110590697392858915497858410966441183682966954525040081323601680098956493415146327850570083825806145693894251063673964671913483759228481345700055963182056085992101931629092513441605246933596726057445861889710407481203828078790726029180364581850784301147986766163212256316384347133125890342139054126592042280502945336483188183135978791216628793308224303402943138722000475592083922401266180167255061405476673154671123019180307150833239554526703557996245830872074774401766621132770014944518890539058314675382854621256885363306483629806409535554369347909007816976954135785988941570485650667163242170753663895280971257594902569730365332095380690921386142856149953554689745759178773089311911502680084300688355759020034399987500676366380176775811317038232649282743734068398375511403800247206461617514795134159549413197134973529870697154565176847325267138749166506600979991164772193468617506266070882586088676149918692476888521291115692968073903383034566875483417511236255549137192591206439060577936425272491863113461071877968623727233998414350829848278742359941312083864952004354292248052439561693622497784311269144962556527918130477686275142780380741721080218540684798123944238526353685529676666194237496374236154672659651782612526521034888939160462868779700122998824772904243610560074102696243601636393236638593052359758960874741820806265669069644597293235377373768590280246790560401520461859171928382244022010772171434782509455649402501602234010029687837598191689881503404738753943268459171670577256175069983676926213290697847662232285935465610339510662778893264975677589829896987873950863906782456056249882315184174661474579364350006847410765343529016630064855723493797478542172633405222151588572051111947999926690920248017959264208366403759373898700899036769204344961586416625636389906173806681756990841169226630577964750469299356671678916840925717677431164844126281668613016119328741546993897916157553473510616406268908569385820794073043066866646349033001377252693891090350759058093436947519218661653958836800976291726863677245424059619765506414319802275033187948560548602617499525657409623834034138556111265397571274689929582256922403082524207515624616444299141080782467843320443265095713276647033989474113704541644186346043232259604963325901355744793804689732706116199993143870201410387551609697180256474474497200268498386981807285081361257448923585959390268489729354883958637715065432821549404655705818076743220937697382973078458292637660416823381637391497334481556416399577616708263395402664341457122563662287251400754502983343118046361726445848362752090703643211637053396613029888046440238467725996993102379952846436726725309898329103636102085151438637048476107111373174980942862525969864607483790982395471557104786075736471796889561139245814013961399937577951439166946583088303226338031881149857755738017362355406563316175604988680898210853621142458780065347188525039671872978594023846500016706213048943824919464577927926051968271502666280843080174084509824424447078576363588088534209771382791966127347808550520426419433673355134893929543984160540444302956094954953457473226063837764367446732812865887970133563268140533256200960957674182163686607765497799464276390820341316392587220679152104643997165539189249442176222727243313107099718310907337285231711489693730219603639113438453457066307018702314150967301121815375979308050527888964554019827229769739885248309484668151254950289706937874820926428933229397643526035155476530169452827953481556451353252455870566416256912103414075936949116425234688988911098382533314623749809043706325976283003987839175042420789869148520720477408884428352025039361219627241193744511416713696193815439391033148962884063260531238776561299638784957162546560145927428382783754393579771663494121851011865863915354758507383376383246074934234718948889354786409214119629954904365725495089258586404714416201264495116539631782368750352869891355154268919207774256334876835402625632113256155258235431970279017866734704893671870611557032369319049107651283959808726444051309211475270974098410626648152470383029897080947404961062861321690840698121454279803248150293410897368953222109081768574828615445032104358169537641594904644936291861541042115012825411951562143266891459470312543421801598480098578460325158270810925464939450340568187391904837502970836455358530501212317275027379327413810672357696365097426707917737275226964693288734532106886291590614283482626520380465181809502776833476665813296155473992534554097646153553777307015112364971161386669256848174965483664595585651886590857311089059864781066827274318074489367448515513585435129821512296812157462449510793435833485613029897081706825247216057903667840262492481280358927659991520727107626641560025522577351485307774836557774389104312035595997871179104225341729780668291988084232296254183687473561130068607089636431217979499815170797252585830047315327511805351832288831326190009510029463002829886558938524086103989488656900845917337240562586239346750348440446193808079144288420697722107638396664866709425320882125821714408847385157371472430169922929208390224040032642904782733484052944004953038076280756286928135553910285331036194270957737270844676911194259221365439118749093282647205584929657389826363467435807767606418994160807975223068102774018316601580742900620902836634027858141208440833853856035370074678587310306829637381445856226779956176557613779828318250235369818386344120510831954441179771911479365903544849325990829257353874290289001350862743176358848314946464216463335657959353755484608698059012655311348690529248932284119617282501093123757966655088628023083636300082230754919633640107293746332007129596276865037145329316514500969502519408845455839036361620235751208710016551353227596919599140139950296641426214480243766495448948821496505232847873511241792645652480535327111072493750514671435470780750533277616808259123262529726492970762847360591185890771910540471455812377274092562754678345419626198926174334301167016969092829046123077616598587302003613707790179963446062767113303368148720239183679343606301947078418447860383871683417427877070319717678134256896041439706704181649475670060573241463868563652450643571531232619248116566665086028966620627248310104109221430437949617219924680782358181504777000297427648779337750195490446298379140009294234433402610773789203716437797699600225387289835193673709366868290298284998437045416633375335359424466317991481858980533568802727198336099251517157121018748350857285651156996248969712924907782856325612885450194125397804454631722276155684395812568305052577645559562417094518547848042219467455215318226363511086690747128399584441395661939129771217195515337876165748918588604250181766197220069369559155830556217087826631254551543078991777839632392354202695623075956777078103326495673495434426745192246813857028971612605869893947827016326959083811263212148317867225287630429642122988324226061131882059664785457919143959974629218810914594861767080041139356653511812747635964113742665798918953822232132370182614200987355429093214282616231269670041602502223155605134082322700150728279765312152728761303962462500774712046043965935532081363776632089338993306023003617987850320151254167736166085338827754227729189165823045771103983126160282409796154417044852712574182756814062577828000027518747996261648291331907168589309049684824766916439760015791936234460167540588717317254371332957197439492471923068842758380676449520289185865850405586225601727741018641282205959615819086542946743214512190846342010781886998938415897777943967992149382821547422494491558419920980367630237224026840890522946712010847960488227498889823903313255896590747955664910847065447424396886102695446630632202177717742650123305917305575634097873100899000546479538519757907733389044937859835931390708595804006391780417172613896315750335585892369946194449112200704251752603849264916303532390818942800280537809782725227226134281387127716708870329688656712938689159093253758634086377801890527290179430410942436539487049223160164163503096444970479082319040331021415067783736986659540639400119705313878660204356387059897789285925176893994284861945953739825268496796196268746100321128321666287573422053959970861172491543673412055669232452719137108999254739543978636153558951124318454645651976548942909545289002977454591908151984792026028893863854434191677629574923762773879991965120426215985453632938834638058299283318981328125793444735762270477600353972216346399143156936479053748950892158115447833581795881833652164919892775088462691396734480047669671756230186518809647810921538157676490927003284208904545162000217426836558396143641679267808293437983166262998490537744549119138672157167278576765837010455025367536744879509266723518355624183509302850249026542016744459650057415667878776201619927575503108087846299050108843924595749617415958455915161354065172330732557501719147644257780636581302900057463579596228657846808662807622670285414257615948612193506082099388953024381590882848919865484592134497861016833894716643254382363020643650130278850115515932432544618737547632658416493766413490343864756346610308761317023224932492516498446255571063164333971844353690127073271025519174390733688536851271645878707422337467477674619651219428043022552255065918856094796282523236587319432180424425955389798512789590359224696589143990673201214440360078353378536536133770373361131449643028782006192822190991540703686961207330223804136688053575694713084145554223134721686330959995121784288015241717902256994510161782403729168488383358559095741432727324585760554275297187680986744748731169496126154402911445287792284130697739513783403645022262509173876771446091686833728731536231548560115221727964351742407072178649208066065155019381746703808800869950249351614088552742227175127111085503603486195786243626304029676098657625534815576204713279882445807771586402797454186334704170709037105785178481895190866417310246401937372738698823443174249286822775899598276675118620042987139038924275386969177134210052711906403017657063836197879337921293884012664157410943469802435185749730326430641773190222860211597617565668843971522452315987659601642106702662963348295081848799513168474917933188853146015063185422653429775424408080249043413413550729841110525962152068970182498120316205541440551040741566990586503787750171469784399231739447696404045625046752071499282909888665979062715930057642605371725188829451270883713976890407181899596352965765975896983187352230632994243401899940184103802805481614018376578071497263417655191317858806254472825748390746178317894159811642028299557226251483415082492462105335358888393738624304382072226309256291501478274018544500021339614092051612910423450047369851172505332922262250210155357713938232403719604877087209107991362502629533381777305386584680779057947102006940811381715879794375864038633003482031176355154099520868668412133947193323775004710281049563984423498544841729012444204806466757714011645578025141606368404062384675357092426170341906829532524296417826648766653635852662718924200877597417342476340529813343749041110241032517570882930282597327598868551386994499160674236297830854614935480070194026093107010082927184766714163679064945310454269002793600622883395064694419537244944148091701230224950771534771720295838221006841479601823981475665354033573205773526199323010243576181881718311692478729575049196349624384754968551480848269836624266249784950225001386362878149495177403509003088824040928860864993941642719355194546382718225482039461821789224073517605306500623718330600164357824192924672819217868916748262582445734496641050842333860519572124548592562011855301788562062684709667543529583765867790551795503535770496493335799035086107987270331774193550138517782519768381389479528128908696409290044014777001806426244030079010422362805275428943674210410086795529293925552817248522004053238590707979320110136352778221037624854094813957926357601258963616079108786843843318747200438193716995503199649806610339198723804128983924473805548703937155163614211741150663028368955401854957423589659129897583640885996281475134339097886890246453585138534215742457564784386554265176290563000052834796618229765544727039085846859923812358450315718749407758733787678355042106944146353532241123528153944331388635322928018359254973429238970221706092626617803649968840918551288171109830526510535610662840360324870083514592298755276739600265083266233555695150401544060863062052767696851136066295203520735746595144029739658501841518843087825785907352154205546511968053002299182760989585243433151847364422437933869925036450181140561396450842734871163393108313925512001814287277696906517006098250115345115397584891286883223836724198082743040474525159366479556988421644924704607499471425682325498765814467512835774426702492495490760269828895833207847890948905482837969931006896089669175457945247497400923099326275499854559375295939587272219664386654827603803282467538396759276197090962669791244842422239400530720888410618138728170884313969286288057079050701564893599824386575453268774849526515596707671882886225212687566126000939704834268279387482384118553018056887004363743610203111003302743192708817735662451944250704799766821816394055780985312041026112201463696251562040435571150756439401480241511231873916578234420027622439493589136140276865451696244004362553673479522504091964496702925136284696022625614850967858526045440217580494266999001681659895371571046045281844868348651605658096126783228415306527802644538937637474381899174479062771866884755660797199387764233499842441269360703932006730357173487667312822215536150018804200119153265963407531112185230722018978039399644578252739962948889377676507208548827061398285245795306173404423308617349518307126859534093145553097968288645265615018459777352980073461477835224765283005734502144129516074325023676946998182498540321849568463972741197241294837380817947322601849642217730965736645473073320223492342197688976433421616649316658352558897652846930963764994593382827285712936658909368703856671740143158597297533197158077654507058196617146373422271545546403249226157153626766202102832597635952217935456415464764301139288669386688276673625159973894404314217123821727921816118305530061940292620990647842780600562145989296558438312477312713830136284801895886711527237183887842872373165498559538398965134675313449621739001943008638901089155443586815760451907114083460029230117521639747613236340157860533832473164884699294862744892937468584351198205317132076943162083604003785887477890766754693673349244060334597389198227400217386517238815209711348563496219493111327419268309132246846615067388022838563411523401676532237804808243656227559722301724578253538321483037237842534943250648875556095923147628233893591645805739171125017959861967993193113004330376317898978062241865842864620712942066118527891241101417259971854317368193380386796630844750680121303971065525864805891420798451021987135730560584197738005552632548417037376980787115033220403596606942816496378905977259836394533084260232573375698450277568410924895235834087910745181588673587242318400906693180417524211095877117102666546361125435967279556352594783646564508393246609405135568448803995027220167370354222176258715588499704867344057213724942442812225206465959733421656834214301004188581755096235551359992211399757171076888950402297192969731932944079053282323488979124222978806376866083153864295091800726592095374128223399503783346487970254187190137801971334119692442638191558096774561343999092245710585735932458983530549938256103946914718093884673785612935656123516955895195155127705293573740977835477299428447146394537391398158688120160046687847090966072974979805579685639919384708694045289143231220411988182054858747170284427032446898265893413025710371902779177357214882418406872794561419107645290434864192948291525377476412532226331922789078267431070564836474242704320734078094778190093973425517088274515401220041969089901496252537743397255137217987887631658776980838176416174711285783385884450088440015765343728669923600188713078601683070224307320202318959132333288559353022752574185998067978138897568590308899921223885911893342696242064636408319740518033564921402023528227402593163025409184443270536733464023314705065699560831410360319184124932226292303583987022784286493953241251916364351760178485480362945384034253951569064065130028093253805175627391301978973354904735762238468933182724868190497524680812655724350222719806726977694793011688848798078561478240132911241549327077049879917947409920367761077888842151262890058916052141702190724535891883830111489447168394227514589426878755212272909867951848012853697388806742248229962537269170983615432591233405178765322711594214806138485731341430472359146633534503339700377072116116564015978782822800642021069487617862772684722910922314749643011463262449816436539069039821477203153053695539891642437910628679047095588685720670971366656936536734555630843293757343972947722252777249423768108601757893745028642284300410648460042632107838222224497815364893758641547809863560950699799840886648761746709195795746108340855028444903030540230003905142747630473944499769838068943549119991035526584982088558011666718783397739346569826269366435626756191655811047002105349351226869135088196652023113579943469584681930873481594158694175950412885753059507438853059726592834747650982601965346440649391250348073416335030707022998241191287916062160509428269373483419329211357239679967868957120013483432811504175374956376365171551596202134315842559405621158853147443245053388598670927185116829538792221133183163026335687316235145447238894672373182234763035766187358331728867578139416868143111772025097657348343617383084286397286708552073009990756343438161715437657950741867217373560625953378036846503483856677559892745612861422647425569018148610903592985740132219143671286843523329016779210735830387185511176094633944376697307852628022602261945529438260790185129978360919913411700623448900140956289585334172428664569848993873627038895891346283800521816736287609175682262104586465254403597320632276469318697445536836567222542799434589796366952811205611174803571991011316537295650384060678062478930492191348798028035103651510080877024963492060592699997227788112778137517912371200916783225671488913815423280986667920944405427871840097260334555062455218058095052996667697558294853024032133002571259730170955004921449853359779613525302948335168740150872220772535612659317634017631282433319276942541626706110536467305049311021671789491994415689216884923725874679737586466263893367091667477884271423894618652197367923489206852087160215204317520088143124421875877369318426839836286210115011313162935057084437614057152713780619579193893086205579537946898212414268638701504423278493967722394108180237930381459289272660760058408443507857383998664854616948258318347255446187660248500312159748829337745048210970670428359718139952407675259695509353168675976656091943996316073075988891026865225097469789715616471752662769337716776921514776799509993698980835350246582651605655793249014438147497571337764337005661554563180581425233245297771330359395760056476648288759049237736866372354067821932507825147807082656330989492159816292168501236676683088661999498460326799911418605807207575401855887850848581051620041163669743543276104336458633648528841972730992902670191340737390619014733629201305723398263026812846412901726338974358493329401639295828297436107846348657955257702800795377913056566671991762538245487311032626827152332605717335605948545451175005319736757468946771903661012206064456088073330628585030971880488070327767751428074966188911577252469192592464723220445522417208387052544976502474093101054845581424216004367430582920980711100247538169308780916726250341899392694408040360962858195783020997727603102133942704001197068612725579204203613984927111403462931420885651094236701127833180856658939600436673226290426877058607136696862524658459917812087493234347540756692582396511160375382092700607392963948391805805369476177392812716095546920935894600199434721920658956196647842005290457830292120470079462495256089286099424973837559988049307790390691335401160893345679911867218653038109979196124382990270218052301901542631270378477693862893452907241639237355374428857438959538881172246075114269928209496525287846218576158353666905527542432285395482470202501600195159890994098775876264969688264933694118321323943027744283832934622259502564228449481850655443931863605025238523140752038931681178700586661233131296720294546902326130109283269978442453497127920022044048368842871263363175038854033631380800955374746752002015983750178903375685926312061275081133667129664419174778736921517430734774958076098751882763615823585699613105355011095375433794482070455403342522944334281550214215920953055389248477889213916034453933135157601902711964980805550336010808902462229715098348722935726766145875752593013344609276754655685149715256875970256763219848228714389154755752382145465129748207829617249751988035338999341112148198148379582586425142248201612462115427980110022012446759984062096777407529827356980206673344000529122830257476641184631870745773245089322847359510098121173203433667423705804118687881158965445307919375710515400355568488671953356548276149093122826893953019974518272910801733283280129103060194252052571610450355445272875847903333666022613802369345468117211369538506307732345403770966257044115521140192384692453866687438462353372048032641779875795092431729515637681436445356488889301586522928275826492205657186351295484468647709849121873177935928246866269835111388625106179350985759565688892132936232032062271347033247650930084192581586566114181620411173986704148472146650960231275019089340610778782975250375923813747473654467018864996194107957423185722864896008726551738410028815515900267383035618718116693958305029134073200098708583521244557795678571007206059570116729042258375131748676214993203002896047478329848142949279214021709178073083946679929301846276051081320303274363164591402268331268121906880974457889957732152918453495292755912441403417331826971630065509904430713312517858449884017170668106171607612762624769643790086578520349997616961659238956247530746844974425906919212557898427597317583913423949607931114088345349417927710187116976068474894590797175748713904179195671013939710685959710193998323593295284912436888312141103950195520685164310054049920143004420594904852971646251852908716228666022245930724376731333905005043999946959691427682515563371551285162498411480179786802910047922804745578521378119139823613458981979185978123172453221252249610952823841415274196232981600178207572337305130521984768622524379931392475101088199279574324171741530373610915011847674638440129626701284350652728145159058029672785156417338667775650883719708079077422053799797371445916334183925439022148803064662010272093401442340554439547940769149180812506358499939177662065617326300438939355283301539762068653282224341025892171516607261375169733268510866042259218513133306613009617012823542872849562224775578227370356434086492405849760983202488204885352775830095261198048246255998080028887487265018544422281506929482733280324067380334430852847569288447109397935558382763449142169871119771056472053655954539406652993791364463894870291528431842445502225946831873668087322498286188666024001259570849420135778979812364081019091080945645834504279893880580125911011156854355832697357737636434283524520883893952685318558783653640397644674262775173821536431771463027634033031771037180936840463311210800810449410161628861139511472240942923146037623957785853946989102551504486396000866101097790187272766750267981992009183202325200601169710907456766300799741528721019826452218215102588555625314515237826936018896965112682621220126354272702045055584718402917489147624209716652106686228858229447541766078825548232524331622505318421964170385860968204419326193646764473360337967883373607616006558163947785076614827930900442172305656013514549351273711571973818509393658862270203430527389837344821308004463195634593723637682232086155722493293438006801400826729503620622240464518451079852523878740256539958107002202343124651745630349439539371814830788973435891675473293732441540934388682635094095817931591522977290346805845798854354830827502352196736711179622837403693235552628590363861575066687439617198582787904480517766802374308369912931077565490124417357812701194941101585566272033098638588434422186189691744343965643461532785375719441377871216285176820033752393378763247085149985809528024885051579117866862797619068867475258764831679870495524269432121981758253225278051498686665549958842975045634408396239273225254500127306016420400931850973635280003022277804780793316849895961681447772626109145511259473394857116925045498748903767799149475998906147959618272207450882177293458230903695433932938382191162094235547981623960923619349816881618730548176258158709812579913489804343808360284208210785488609118498345016307144092193614474039119225032953956817031196850259539163333609649151783482288214127836686454219637534862570357588545335825971628822266033979297306960856878404745833638130114853740547673604153305122524710808658205919494707989957528293431288289787497801330170667891478107464900189957594045339826834588456813819036866771072748163216655370466543112846468170063403473391787288188606532021420827552614633034552850641247994571293163147960225632013091593541633477732283727741483426780532020131015932589075214221748090293812110159295487081353176760328972220248345737492707862233912438428084376371823928448978194634052489429022539086730743943707152253825780745819430177185724512412190602168197743460804240339706676507625793409043557290043516238603213521063093250952739381963287004240668603325821266310728911870456397634606108362106652296824737959678688862785605736705085459098050044711551524908288409738713679895278310186926625940704702197270288370712217252559885371260519597575521298275604549768392368640268613713178632660417115853385159860403101143643363288082353438387487314121881204321496116398946027752435859998581035935698970631618841939251871689501940383128674442898074960411498120652951672882907192904198506669261857590869661983476901667616849669348962316622591471442285299471861947794647973859087863030413099764356749923690409019756677226962836557269379090838625894274018920569272124235034897117823523970378202965855303692405594552713612911548948198055957085940836862002116447957518828648626360794306328495938559484922244252173164719802239239464271449257101581624050113626732773794233945361625423973815490904262178040589880205160063762354937417581209816835697096568708390182200052603139840676936603125934407957694066051527007273361046025688906444961745017837032731469694176892777436059638747870204439909138973985237560494923185659714036897895317445083387827565682689828973097550561884327734083180609522097554959862929049368826710967347955885953948733008934303534531930251424468985372193973549961111880553831208736050454159216019380335529563268997863069892368137587660959100442451076953531463734230679205864878716199432118243365050374862834611755146452581489376940038465856491010380727559154978812003027135731464990815615766210166394279301062681970338359305912672194818362183248268603607233752889228810867617851403296601291375166008294257699696304111169887375061939728911265394972992591108196782024132820062741528109498914697043114267979700210103498767246298543694063835050945451416783529886547082695244467829331909618557738017700479387806608595022579002056407595674618587926983264762529406160511604357310564289250491912521445206819481211661211910053538473712743674009844337262689612083496680828286133245519822514432239906421340567104517473231254290902753492849940829138540614610084610212667575854282629003739777485664200359148709443187142330735023312035815088955355509280904987879723984190522473278194225434288327199922203901089854902345287356008846671843068107692415550274994592911970305531600135683987561910043425080213155954328006096748535439815429926997841689438418068350973164363807476242194799978448901444415901119772007866167113547561150459551147034750646300897680398884345987609601713223504600340960722686019294100431783179639429296251427234193909331033373907738205200148912649127643578758696868842771270932062631851224810124170546239888754368099165021772499689123273814118006974055256583867513830134815794743703958867283982116817730353318422032319355529831458093563364204358781991823515890155941397876116219645016650942622732746533282723059733471117912855540164614018860591390673550817368702901779993269813613937415211525058415391872064372536804440833262003687335062920006076588583479118909932892776789852792779718482934238795724034479560960071544594503045704782107513135886491829801581712561324646987041305610793257798270301180317560131878175096349831729672903750624446705139907081238165034115332681675665795132653315798126272944641882326371817076810561782404879709174694528453768977965081167903658934070554469307500298838870438490919635803870332551140738857933812911853425654631873193832945233055694500221155262161361712229299422520634563761658863531916706620871874547622508273905546123035059142921909793482727112882295745612677896324977278650524701313762092662450934011288452535867483334304116372241957345398076196629225748821160839348988212016780892830408348418575578659176050937933886815829097529460200683141799046343069696294069939522539059756743362168393070903025785456267270897478221213040793287966375756454863956318769645680579652418786665503699451474141281251106550583051622798431531578451980414243292058071267700945101600045004963626094604475128710882213997549552312754173953948576559701241580016895760254718908043745666196589135428067976513026616405363666923242463478865325362309548993844728411103049211483686394286635677884006513808619904448068141646631744544190418283943174267123723851153713141227256184162734807468276518583862538225603840391702411203008309236637692275479706610955706465201651407537344317701840408339932545277169812813097548707229431884541612662166965836937749951602034706546934300096919671777450145162644685668010408005731204373561722613675519979402784010300126872379221554479918358915595525361884438432201216962863651875518908285981220313932759080625143934517390332829559487065736999501814353269487652217084051577158291272286544619494154101087242736336576062961545821808531271719795062491933705493919975980920770212384215243026264560511445219791535589745216697528945093023715259152139712092238951114854781617688059955293633741526463994440446077275329415177540670044526355678926939276014479755226984020601888869120072987962242283516817178596309238388221141459589605068133042543230961192205669376795550456468031203122178298121001140950088370042394345196745886677792420928593364229920605876520877319121699057438883603481292145384943147801953142894664872850076704953207625350561645294132566643167382465857652552142977035681051067333361098476461012324938771884295832192298780146428679722368090240793299348371517188283995411139367576153121478170662204644990028095040597947472093835783864978436168015789561635107739428576913332596873882008501670140875999562394591950315336509504302070159596803945243236580485972198460417994091433935503405704204717941295692589760513662065844096522796746744254322864808823685674817155514176617006915447393561441843232648970456683577875041764537327759986824269105517959569724338357870146662024335410061068841099020773287940462590023426296720121123246000254989872884662802821907571100991517249700377702555280589000844161765015590198091217001724176419243889001792652104042893062100246648601559213753626230126274557092381378216689210866166873634308931071642281596506274928342683609647242665611481764043292386852150774873734982400124517254805399637717821066309118347771147707668449409099621961726668323300815813061860559357934258929525992659076855403399189938299259786720907585925974230108611801007589944309499025729664148362883959228265094634259934891322204791765890542061182399764398385735836106177294423387035092915338079933943616798011193754522099745025752119374074510964957919613442539268736177763368847130042334209283737603720626332397374567954770726116358585046548481696590197589562925399170394821697795018290196999533495845487489890855713118494417405837205841556772706931347095435647574503319716021083357873219599762227274505366734466495340212444161094482977969657443169028370917005164472719638837425972853761508269591644695707052502748224673382316333036382625110661722343492669925081386279155742179137782119475302249921909063835883605878966816658425079186855767199689894339894338701190966150127473013790344203027778361673007353468851843700380094573426378545781936337381814147106982152647462311515002234780394523139636863353972708149469072131984652305289723575402911814901945149933794109287989686243514422438553260502749707880836776630038546711242322503557955906533172174598052557993870110471755157785485479173936813899083081014647846802734115813767794805368115243302560526140843369708418280425764735555109460039472370618432764920515895404146663375232448403851968415097019485005456384107069389628007046762649590049858871904111506416060968020215677147564414427283211946392349224197575306622719037615371153176626011284704574944900170149224483830076951656166883706808075028263644658866647959841903519339086080546717479238823803989292283607217684640387646969913867136347253828470876402170845700173646647269196186436727661593901455499718491400451929421583166386786530928052797086462575259394346865605508015635819361284248753535202386826517132306880441167548933376472201596141261735915964590200521398597607006158863954765071640113959713983534082787292551567399824006226934439041602834130939676464420818874350069656880827189083309846792631385267078177250362621222531383630925412207538651416239767012657003653646217667297722733363035796360852155294473219961710166323847039493267581009475821033485968185693740122638577725437620081068775581260172127235693167494893255113544136795444676565614141351497337793969517115353626515630702707984943643889354234899170065559283195220723074601419597007929313596833066187370792830342317561203826315463794180214191540766877758903222583506134645940830699868332162927135854950485765753029143393626298995009558204429349534182527275657584310058601589529540201774677048666288367160552189188315403056880620657475031511258836015986275649538362959931817436231791162912312977861118108414626866147737139548813365595301112695725646098056534593152892597029871000438955774167695675108983150449171177913883169865616206437593181023932443099699316688106803313601363738298217830087577019920875418913160959126440773322747527524629517718994749643907668651821015843093965133739951714070078007332633910732588521429604311654418378381539685101526440648701202331114972801820689670019890809528648132963747676267133354206318642702172128724952719626584696635082122823410061229679629364520436476534947352282583640084894438154100100892475101582576477609488694901893926648434515090281086959761073725190364147490378052060294300814440128371178161923667256214907302257081717178894879951864296862840960862838120200885135412747273952519227947057926644469025869914098432942102738674254322382863783926740778348151746290699958745474105174887948282828824552385334421842603252203741705250614805656195616654987839555048410595573652299675046397093133954050953660401828061254033902219041224864258288776465003796082731728704701582206364904898658578732205134353908068737802513191797528197264707652429421127012364671767836342549134247216056155099323396139113970787584579093741596813807029367882895663821804094243371340877593823330393009356505392113090132664835318463017256561811514718494539886728110147880941781415339868398512535948347191908058394102909977287871394146455063395141767999380879073344714335280093444580957357916473782566171494584942153555861226442380295642947588892796995446986933829398697108122849354815377434486241624433423254527202489073445919578227026716850777385096158942180004877475468786344319661002056464304340153598207323261345027522892884333529699614840536765216073173202697648392824925205407081823030739014843846443796587418926097634568635877230903445589731992140032911729728883328521967840713760982660462418529692607999399590150453850502593377205110596039845214095303119356977218279325470834993651675815558104522931265665515069371103141776245787595672248835485803859673543264693113378148565834014164579294598802361601728417452818761634840839345485299182806654730346124479561461696359759931112701821377819752077371548952475751333610053438362193191743109104849243022076710830027458920435007417388495254631400709499118115364708515562276309229854961665694099437648020917352311043575958908109712355146760841378091054020913459224030155538555514004325182645400298666800050485158729381685551262159104491149438329238473965361433976680314207526076825248284850492719888858287000260501443661021099678673754563436105517731476002868339378446635121426022903423067657437878017052090276505173016663157766540785135109577044687234760261938854518904977602795404969513778176302676132497186948767714282969014924836485224220722389347252819599129036778098073004139252337066609937449176971269712559241859849157008840205149770565931521415608042246897550416034877272469294145513835461192555961069014819314718287289620809685659890868176156923828672400924221752660273411314290917928256162062356319509024641169044490087547080084294970923962119176856673205319498459231752159075660132036561000041400645938595302572617310052059239431731185794930661695505271295160589077491882345507324155023567564320389064181617582715630128215172406270804621965136354404888364224796748506388366806808188282152836630335834353774942303332322524190801178124925959428965954630302696701049803180642245210815637117135169994150671289354229373968644303276462286179630275402476928022393685113455435610153823087832051040204876656895921247418025407943331944730768474322800092384479565134857683699692515161602891054460306573785150712379832071236900590630452792565937964547295723785411541462950224413846189990152274407601055883924359863759498195938534027981428013450973027975687029839775634392292243651824281996288708459182559370044327445307100564498484178115863726175202243577099213463927052442332940639381018705555171775646915024951120675106676581729431562842932459386580146146864290476689450721979542454538822384529376996758381788151528996517515123921898432570487580783316384690278816155449129485387681180906421744935890133702562616871997989446694930175315821523827974666494866990320455255072245309591969349893914355740941186941515314565893595038754409108769698356654561966872087436041894843581877143590677218539914503932828569633829604883686957581563807566377866529471204796393022018534667019346211486011785752774157244583316916673922975960331147201814939818775607551298864211278421733735203548343841600109449085253226099296775438693448828444676982434875657379455186994054269675740342044496565533377982338171596907855913386124109233973401082225602747492723657496406002931893776419021068451179177742823202842996537804298187105470209739348371196880916470496455963720665914254887066806949864363907982075564545333380160560743748625134294072325807516094900447662378220963314597795454161925614369944326468317812252885710370879702200211385383735934408037496971841551970727613263094017763327160467127844915850399629437850645120765471936324851796007526906733346270931003467961109789704150637625349316736266173752611916254352949996365032279292578129048480335482733938380813146270517545990140038518374203725091662764191486652382285854375988557561167627033262496695557978875286851572720669667133804658400922758159270503694389016472990742423163143390383300076324719050491962361324444210965014353587373954301921078362826110199040922026039441942467519082955420014547917226468025139215529545249964446701210989951340657073455380165879707462995850721605991811482468039565100934334601066401995985109889501762551785476575753916005634178569929649150636205554704516284196992777371352531144195677432608373413027974428231875824782262933276830172995134496420398166600328071352473059593166926952903621178640243951084219139217408539410126042828462400963257794738050644960513927111047129814880468404071603908594390269063283740730764243764853861560572097584881161231662740379359655092769365620914151230457870603599587520326956853446408222366013989957908578437638828210507604855180140839009092624041061971790196601402901682871586035944982294036760407450392220298097390983628124739950629543185636339328286584960211471844545902605561515713711467703841808656119997927002860570519320319162020437971750560102139096369468122610558182575646449356934590561857607194851949951000659377227834803690647931864133745541142207734179143834329245219881108363972373499689758366989818309873168347939656848070747809987944766074847879569683135910251309785904700012655262245538037463336855876067118708609894283969880534974975609112654818732418289977880801321224906028988303702415105823931904460911884663887251664496834510877116484584945660573370375515641069503271992752141506177091079987689087371334210813766424094877764515366325245581546275680630830785834886916851792802155397884419995268488975292448267991315560294914424150936625313632483352204842794073018579105851070495117725015863036159142370673713615584818581144503337973334053838194291804074042968837211621878523608057016336975270258130001033474955650668765705131057148888371557450154387042403950865889299333894321056047572570886370049505744126751191009656410741445082238717828655441626231545352754740415877475092598766991290648859283932183127770490028276813090003023989266640384785399246328891434846597018076892673475296055054183685330000768355749527850679541354389233325293115281015963970731569668479552475099489672532791589814736901395941195995547844720379603547796274627467384057984491878216662756248306619171211063057396660900981237983203719399397854346099679627685650068756891003963066512608092540945608926342530076615070686350010341340307984413302033635608631429684247582322560845008649944872175509693152376490177832953310582839051086828794051185728818785082198890469488835652009723814647568611319928093802545244903485864566344383713024859732270480214315715553559693050203746537332600233778829554519746729514531677576941550305379985382547950349508548425480387268413839697826176764283479917917913381340695120041866143683647387722822031109941261737562759550689975769525924956181870100926007000251206252082605459062661952009073998257633312733702869589528957568980985703366561531331578742149043571021994577158293538716891280267274062404356182742016907833311379517164981979227014179907176850146081630108865982812299010370922101368347692163099466910916323500532449652346233027855518165546327563688207368701779575940826471460353143676215965777966711432543541600350058796879617602034484618130254331243409057985863938188354546895176235743235213539008086029746049862903622649203824035163194533113473790857280136898679274164457851248951174023201344028009393692198411385094213749316757750264375742822880763421068468520797226941401354758982019082136516135887424148850915820782465348237514692260229566940093501927667303953685683171988267569433839555254019839569880667514367853897931878223779773783738512153937322601658997453492367972444267564292225195334116205347603015160996089622574643941353239636812950368389407347506754354096725650661162751469087570049177936813811729862330981209170811830384805586411160284728006077587601771803431060394349833573899802191783395196591462775519191174532347289730689278286562521171098246028357614549429714821460759466308584929114052946584886403862809043411068986156340728949188887810084580458511074892779792451684745347878767391906668917671843048212537802020342294179944739395866476484211173701890864533686145708625999606427994461224889536026867680243868608840903771777599135822962554604045294583278787839116008176198868466460531025132393389417848111241007159475928615931665064432786076523667711723918828937738328242278820296375810999391648547657852104888431350555425565905274561643808933027323906178327302459233324315556473379079040752750500691736258185966844550752546573578085746084544811393470638704814471699781987221216489936923241062221113377913076581370989724961156358471545115868864979119848574341668278671721462077160640515334521196684564255579371688473045193533300370566859826455899841810438938960820467856078301455809607584157818820837951043627433783967616108009531553588427501515771334635950847408765478029538801188589431146057630336759427133397034575051639627219063677664509219532872418976777285475201063136194235587180920989053117130090723514981551006630741170157649226492896999709255659920784666002489042237393286454004260127098981604742586681370919353834840466599736277180377070649735999183869375191738156783854401261167878646541432322146775705676543008920689334812870269436596518073435523970429467472583749889658335151993520229742140008466094273367597369242815427740312390011029427563486579155217560748443089003064706588614046848845552638086194856573386475529087428419449300712462395309955375539065530765869810329437402930306410555435065413489789838841840118650531938167745922351695132258514328614083438054320571973169042780583093576462677489429778556661634137855584449194112460688553282388552485592659402534638484204262735387625605679837376188887579859927296391492630811463514919327369027710265644599364688772973887198482415075672088096246275127621545160811014590745122300192191048847132188082840276275774545253305834146209504703443720414540485594382719427177231262122070397093544289292302619459135844949854200820962129442632194530570300137189346643227086283573943976791085030653358356119802996113089409501313192083770147665792462688331850562511424094485511264127389862425879785723595784129129970004319524857507442859832521604653992359036728462228089159435040520931633412964050808606538833675144564036772627364917777029528665406519559066289782959544755318355503388980772288090984340111488293176606109968914370531698339491441229562359323771620483500673674769695144509558905094217503931268198246483895640089359436475924767165193136046477232824899429663566199602641914988356634354802940981735616163014333722596507254858545487224746461288048121071645750762771985532686320263282319677963797734983864897935871220354190403881434527240472673918792647720300552218069334050915373384544909387708122145894303129450939293487027513431863583190180049127712109288627243810027794373589617454576771010411747809664243787562076339957015935385118616533969726504547255257209916091477703937616972873040487283347673173825484214307233594006261128228262993422869108062759234394989189192101974193452543187659744694983926516769985501224188935147912043638284304568054620746308199027772175844834142156911050103126788501812698438725296410718843378365609038758243236321272173996638469421942704378638155042388431105875311935466046669912090194246905672441412508909891788867662841911911510654507605601963444712035710919655079198310250838902597073128676044872123749927356955870192435570833301610957060366952007454969883346687385927589634450027560901888045952377437561421256446283394113551381089252158459999533105776848517450654258479597927628330440531434021447279182279158427367117049318042083224064210567746956002474740165680470054419724891628005594720281929197992310731636508352448642097614168544812409378967039288287194540440595682125242428264336264290714423186822964852676803895884082447066907729793473783523183602192224685895566993765971133013629047058097335505418263169405071753584267630605342601751669743078514254052112307247564923259454948694356076800103669685980008485703956209751670366118535829413799989651664178804717753518773614445968101150669164856010518234884892656864991679715688738258929343841070810064180490381089391044823974708223013209415195926361148093663986878089257033104781174410488543731261512938300107017698849967599344241728098327566235351501908678048379831708555379705410372003659667002311795812824673987050795353441881846041150772808092136635267413178984354638702940411806625463226977924748131720588146722527947616712309236631363977590569985853845923562309075625976701410338947951596697921890925544311710672179910675777870057372649632532417260263800723982092557173670621803973351053676110255838613669663863498360738971078784507636560531368676772263202280282541864704302416741536486759473745007286440575976075985528905859111980760724684671755264735178114495905790516421114132627275367738844115290425175829478379369046989090383617249481699915754054909559147593162911518789219597175484611237687328726440475103880572476462271779439122888722266034268236280142907050164945870197775978131303282878292685069075842019324319527251962497513848147305811076800172285736924627236319635241985513376447531632710884275530718992175546380474024935650379047831619167735180634917598043411241949606974700768572862544713338639357624881076957505446853135584504763899776197337760880590376162396879599588328225558183391189074334807822763528254927682856881142871197346271405265380232644334662465082845821728984965881718694833190727375757477997909546904390040401340593546227735929712738629617729825624864771526130375969987041274698147896423067539672186409752940983288863611709806081430834342393039165418048428809768993253148960162526460765379966472337443047972396025086200079003397255404674443162623165159236865252372056709754892040749215405227888266360346584441731639677470467683299196467744815713800545851020155093378108351577312261108047878330950080462992410487818938191919696513021495245896561601217758573988851649824639104186626836612995625970657890226518500189079508844230876681593441767484335201602387503887116461734904414464491954720231828401754526025199789608374464915380784315412285592794682548157399562827909755476034268979690097884590565293152214045339464704823961975262076030683375424825930802087462774120252110842359685569270153813243497600801375190655311241367579062497442988405770571485870667630476396902820320881739762050684441700034849104793808311221812963134142355697288043067186962311461927074929959514102284064769359292203406743457849859660124859671087068732238251127535457741493778728208083272668422339228616744664818125252444948666115085030497181755520283140048103998162136159794623594980834651034208407840359555753200366031515102340456246746268979700868746891044099984708404854100543236808126021304878446456269000025836919078444826000814570136520586555794491375049721221416687576478914079718251938474004597364662167610291004579124400534791869701607313553548179515566630791423116859083382045281809141462207197935358974096287411971872757431365423021687770538818017594043773207678836024823262768502686280250712890796934875493965185520369823964714815142997864703179450983255181963846056036607072579131982116987054442297863823459422402717227399057094768725216232691781404858276439025036200138896236614322975352804865136121002106109125563219297668233909889934678325951441056398739400479332863317263781039441030181712651858200107025909701413415447417966281605481631325381511547347067640783903753147848135786237997953225776711961966643594127083510555826156898344143385011163151839491209487497009412121111097544648316723833406609887403807561637649006324442251446738178692833649305748155817703526453845938288480897602950729495236575872733912703941372317220541114023992265040428215466145903911632643222702388192670505103690422126765833391513752804941987002669403115926323389981904010393211356155299297495581750440889726705975070258309472234257469717271190973371887334568827659618026648976692699091899396771640389347621703566788554629189517142754855183440652327400459618515829639470928221620934650379512283681692581329445246791467758376996975315952606763094215221775410914636131100946441505573369570576060835416282788275368842697232477819673633759078433312867175906672078040381315577651098931679423866683178181362048390405664127848180895528387984059779169996563333741679492484456226109112443519769858461454268306751352555494044668252442801949516887276016480744147805644473038244985668950783424995985761015885038689207366051775244797796162575209258548369900131797835443943689103501051649311034271014639583408768741694636412745517985424160609530501309973206494787998755876164833236637910317967743824836460811678453181618308413915559759795769232353218692037788090185196547821878568437035364836256707864100387223403544174786076924723688921220615534130563002079616525719849819293987458207131874710803238468032975891259241472817039147093344389477370983465946995227301654448676056958686009103373192920622041417461703480771738941361173639450675452113774261249048649476719297780144359113084973906710069673068299490465580214759937120117243578725720893602974750940879299336619285457739467471779833276601503169679152981432040678608357718377392633551896393134419992000758092191403428782949020711345373458851669465788157922167150488290671411960808457214716031366502565154729660293978230098084691532646747308321431811877969434551146868318845381855497703191219417850456607915596895506840661317232679279348064676382647432331591572434860063025943064049696259405538606254314946661586491967981893600519788295030867270907351875721669166433365921515346941259724250590068233308339446846867326876889551016577368549696618484752108363825109088321658404965211835158211461514949308578083534842340392127588761612036029953584827648741305476449546040590995922596455878723258566349841744717658872566324731980098955693980346917698440638433841619160988257591234815583002739454391914166762312496246400656838706134130718335161012387349097536868012688017078440617768838316024570840107439315047367581308838965539168456670080172497374216011696541406809029477629832543642632306844357230077984693905091476766590770773292256608081254076498938849919262451329860010004931116533720855678738400821126591169525670281946185987933850144371097808395740860827947255235131479201082402095462433037671346234878170772968482897161254624398966103859819810564984534591261961907048121875008063007644071890500103971294794856946070499211954780457679860812233038288279096697048919010300110593415434079137895906424077601126382611766209542622889228025978277460523232508519336604758540349243496326638136583202622632826651479622782590110682578570421786706417277567149256505868620688249424493113022135775189617453133421205964552294894058803301778483904704011660859565596213260081748489701296061983518048871919318239879151311135828996224463016425864082324167625569617788237468512983972268926489807344577922887224206291749668955947997894171164965722514565118286295548618749652607210035924464497509853614103849359003596648653681020429690612987283461528636792631437454060537404761125791753032564862255230335192181076005677788798646900971285236160733379149224875678752829175819103926286742176765046456914842051225178315374471203800794223011704546934410481537725129649184237514165867086911922137278970173855744760433427922018196856578684668911400504204732587821685358169369259290179530463328702835368137983392182591761786389712843945912784250085075028311928801520625829493549034986917017635053429717610994525894824939598833068208741749449177423668781340185463763523399367414411491783345023757073417056960987447609669487531371037372210408289266312678286215606331262795526255460379442249532979385814936725830715384733131889733048300170285128121094848717579094356593036977639268687868669369610925065382052592357719592232380629275322528408352822127180769504512245376046941616494524094510349355225427135542805108391621853562207440336779909583545352935571033346336307584232437374497668021660674010820843745526713910176045214274850068052251336571416516227446479409463988160654310871485208864734450675138003441008546333641219192978425724190516618274470979887029031139467939263489778252544951448492440595250693316060967853232637009318071680906975979511532369962569014466885091117386126728423892388970071917758529196888244437229740798327182539499346329170768441435955114561227787881626760554212392473236159207503570065876599170231648041636626516469439476606488529632559504893348802214888116091776541840370630477564058424425631626051529246291721728326267126732823328492216917192666381466642988674614844810328721967815187407859598911771680834261311827126472543052732456686510886147017703046283704289341543081310356775621708135683490391011735751676913743993425919465364183834198207936937551283197745188915101348376658461603298478499534810703229917731884960162007809367607695480013731430018158096986331365581093157318840031578585401427278905534445787476386225654476115336266273631802601632020026302631037338900548226257268438558828360793122801067771769057201143187076313119620552833877057212692950287165316802248707759042121990722162381277827191883561102327455093622555684160655435201642352617801698749190260884568935416212885885888290490552214434165049496059338739718281113193685775542375127349561172528872764768767859868324358989983036353437777632450216086351829277010846507343742369791864582892898933790595667068784599189898715715157645159174801965838199142107044373942925871337949273410291837524004750917528972667474124053601356928378053944513184660188219660437162113540037517261966785439733080957633365626049105663243706308105974265168798380605827937405662777043929160940944737576959039504775435830297366960061222471471283287736095887925701951193822917136255539182459232186385174116073727450219945325267157907486671816180719015282228604895051681976671287817889184781423756292012682467240690556695941461408477851482562011890582883158167975413629075682755298392725802903022519115712079342890016421658942800922569566255002762851062029733259115349866929158429469986439154688243381973618179735143970438776798018575458800681967968110500713905194045994524792020461743762070160805305596808984133208199268460567032023558651590195853300543897313928050986848284266395606863403066358703120520623689053769580373160172027046351338148827543081821835224847145053768931784638811233802233745081050105136765254824747671575981295666743077324993726850459637962362048039866587176971147064363068373148006061033592834049847703958497284913672147187258295147756928719592696984674475439015858215430497890902498073136825808780980675859599812334471474427967342160664629544721567831880462778498880917919733735845107488941121261683254846029333796919771937907510753393989341461896547974233994617463593953445897111987246529909053826056813747388381631025120273898012792217060490702984042477604046233139588741317466776289524744087052754688578843443470903576404446498778815519614150858072853063438231584648027097524045500574633014002157664256777846757585581552130826071536564100777406382908943437568892639177839473769084039550495846220564425003205346861096839349622225956130395656704852862523739561780413655566102423725496395564463279209087855622908980944102924661514461031750134302229806520696809847766472534133423264806063806250697283696151485627171062358697399458914431690539557674105630805090274453024185156135348376472058971370297565735155478256995522370969690754505625530020933291708604427652434370651873242176019690014092877975290312416366719587081620892163400875869513254224185996676430476580167829370791513662353977325247911155259445972336161980894130598229478451996046359147780994439400789903250848047442218435796088732479772617658223293804142510472473482445081928312178637248090639774978289022750387417158614032084421920661459907542222243508391308442820703922652018735240498838274623855643596285202646605411812939816771843229057828832129314649083466135829783715114254847260926289275802059734219122830564849747691208126114793936473542700683545625584426798114323920132549271770524270879838307747289416621758822454384445905814557995542764874339099783316425550141485328837256390154916177455416540099341348006479784583174832663847558099501914109984871202938534628240214936392922565982495370379180903362811029825037705859412002048236429960106018933510685320519025919844855728689280044561390931071369637138172032031702614746085746185033303756337136418308072388894503701612004996068890210092261250652373382594545165972041143683711729869264435183483240794228931110336204290461574232999130841890068102651345859100830320682259757593814387786749913032378153315190327564279555238341520127261540888748483783256860503685436836585693092424079957402249302043253732930596772700391911907010043665454108155886812195934232597823185025984491473933598843003211963906775752771088650156153239629560216310476046736078886241187863083142737937244232679865745374985746138537991653482390788392006440261180888532064943729989745048316193246950045537868041080843857614996262402999237364802770651454001281976646817149835948254374933258263368134821582934682479427195094321125870038243298124138623554828829456864258685840747726114425250855951604862091040070639398492087654987114148201432314221526230789570725796360504373589284597211252746025602568549390412699207489970715223810752361423893353454467993743947592616833638337616578393052383840299766709892135341558475899959550478899364045931844014050110365038379304470581234669394940816421769079437279788965029396983338871458081409008202823288220753030921945690196458440077871033392168413720933263936490827514402763173899892092961010892664856757805525448542930361687299083861707081325726094897505605725295789135394016191761410184322498701420313804995418242266491059694949986990604006769125874357087847422892405632223922610639015573182870513803825352751227439058140367755432494090987673050606251424240022577553993868671612926863388644801743929900571744082234336418939520537932412390577944371023074127965402926976890064531324222143348341519306653311079687891159343493447765505311984186082781237595623680558345448174968969401477488701294000824255060624954307634279791716484138928462668252887243500109672473780987880567259488961800001908098234010309794477333388001321517393997384073489814538098863864542994263773594512212072296688113766610519232201411374044405936259819772865890627064408526078804883593293216891513321527253912844802515647157133692491389999744924935540868476129431306941326295945296245259252328926421952818965123874964906479027903802674926234075347995521595265778361570155512941311280918485238323789802233662099421226833370055485524958542785135170994103950656099669483688936821368674770538774312082569002333078903833255946023276556735826808071116772977269241909570696124199251186951793569826398970115390404171120661552331797205031382628159229042676769902988579862920309814396433880645129238319151302969153269369108738521575093269341235117247763477513010663959101088704864125212082401209995659300383546777758716597066953976899567781398739775618820593776727603937350774612572844494969974063776783424064379047538290339791547548385555957190956807591059697843895236775746034085320644249075680056395455027953041476652978872885627007455519625293192761971681166483636746250230244066432811836777872094703050175562052534092808560727628590016201525825224066367826602810771291161147443306619904542828134529801860917668859665177850630426811001754849483225216820165508223608121412464999350220924817945414981015309338940818388285355702360829777457187239721147680372944830105145452053737961661758965381921313800824515552496342102719190958718942073637899256705087662508718333322033260685337316354064379802194357293075571086352485709945373514390131467203226869991197967818937668361707785196748738078950125511800655871688241255343788728433454196242481608312776748792477333237731830830770811502284424030206009344239387615199014776081577665921468022554373168246781904357352158773775881226399081087101124624196394231988715498456744529417650146736594535313015358475230332622474780475025825031209012793768981885204122754786561916246438705028496396428416866909136347784576598137535122339664360592952780775704080629555079627035333956439084478452351436774029899567029148888824157936353701874299432960173203112859422175314632850997812468761099308775295571823910769431062088028737569124514645136726025472345411192200744994747020323327064223981067611335164126970445550716455575084180149856398726079059301974121717508391511740458536215141000301261768947105014821267189546531932592657512084039898016950771898189539258449407222841629394114627569085351652460000977654241032138403236361658254618799870415603680427915639032372006658886924567638906540661361009656950512921678806214654031483889418835871449392615417591540211016998157975739635721007046311905405102173620349089139369363747678377602491754431715668943157332889657967270280438119443541232078076038695353904129367150748645113201998490655051927644129369552605258575985030093421079721100781440507054554886516509670297035881489009872543475050496734361870212977694455851289815143708486369274538488023502931417434714772984638539745206928155703460922081776842370173518275090116057525085865884801133645496709443834538553857842720778080058950466669760414723696721421859164896456425092497664491085211018973106978009354237612562831993000733919560838225766240335082807725098254970444947263783110079633946150731557128007807073716331207035110198916678118266359272693729601238199607348668375001184908308063472432851473461901942885194100387527885687207236635542053496166285304061295618003141294820968022890533292285750694295924626003768055066247915520213481043121920632430453381108923563029959652657658033545747438617043289317059568384251488299638014000636797309890688491435101057715371162055966629923943095118655901080903254832980272346664952107152726812036374181808562269984029499626843172378966587401395613531573838159957401730754750696575683640888561151300722855279324022368393349806916170592287511230184561376416319438462675322757002217213274277309536747272875016597107143920481371266645905100015481200485156413135889819207966816351151143648517869169149056897039716736760312076679641167459543091272159309136220302279672521866321434373658301439794348842993410773929141873840622370831687442367155538117125015274067034985704817686725290772354877908245403444390220836097533212581711064754201779150375886813591445194048459215925776775396309884294607026078171047178112840039958834790198273310739002326625463080737439586096592331977526480610381542700907759517113550273366676250465158417424901123240705355483696290138832853153088659540431048028138106049708565546078246141577541791525273334747994780983575640899790636554981137558929984888133326322385968115803621878228909382354588534230762640644618443559854080097739643214224649786468189054351957506121504250433940243541193301269117041923119290331359275122602894317889884313808182110531645744611356457074074328047799526809453247341411215282065145793759389812153157121399573239270178940065623805620174973884305589998252277503645118682786749745352031752999777213885445405568432108609255655071126858858129151361391682046398743352006415930579605366781777201982410738994060636127878258552763128301300519933775535128083506994196120319700009832334141346346250133858937192160515752928574801071028367445950114793378489673937257511070575128853072080390295056284928800295797927214297993406835816168569917101680033623017352833888697399466182455706892016264248819292272613100645074793705924683331923455151404300242833323375125401581710229849783681511665427083935175050473900980760571176230588208924937761607149580905519194438937995630252991704074678077165974596366323940502771997826146208849765294386386821781675425887195121092289771815438483028138662112151753734542290329491102797214552977121507234942103731792428689961013950883254225523881220677488259060239816606423783917492256507218809734186648547352092069680757927107749623998185584230812536439092056497984415176216979983405427772923030557606446760316129057932179339635403658985295242279614828096507037338108174122136562039119014377080692794280607137454379427881824086743796268649693102204898438382331140107857485639411716238262201063473875691736910298755687259993439125706623956259594323225553105832948046714125439311768694617094254537660690976873100326830030957300394794700590707318637746430443058518869269488203644651812322258404239067391503274941323388223283912594987426584747276067959502752296059086766382250210404685535748023627597867339342501630173625408256354592920314292416903795240434822246692652166687562070351916092688589314752722079281928531620311196155057709966552987310315999499500840848077797897849080426343137066098098896226133595665900759077683930790254904960615883899547811303885423484432235832442583568294864455027069191380940957057249502923415583574148104567392192241533413456758869503413838899752582826751990858804453855458592641719949349455902107151972443663153235302161493400173838480324025423931915394970011329761559836735610457796368132643784713979872311861428283957604049803921876050855661393568827628710886884375174190617851623974313020957200594014748620515085712447168127772826536335271196544659078082005029552544894770985963923934947917300030727769316231812392558952753505773685088965516108826655322189371444840076287013297876511911722701395664898043195427147939563930501673434233167893510495033838540650960071865525600681905996394347501969201686888545767518839350213145424005614162399442142651088562530164720377511409177348295585593282167977708008364136739277274878143336410758423749269986069242467572116110188646759292972246249425181022165327563738602983534899258982695234226351933341802534131576883932334051037513171531448481655934624045365836298593581294109234123671670555204221229854460787093914740787218946860825225122326688824525087549045354744779989827554395547099298581122441632967618065061990878348792379112146896213323246281226565986637857473189556434043317577885625345857282984375071823034764551905520039775951615479809323386268599019546063435349854380667128264697404350577052724534245543954572627328925793518045458851237569407471165636225713162805505270952577747228698337811631465995346029134123886598756364930245645910530337267155528732757032955917114334704780112514475687741191720332907881201825578906050373551030058647053638476920978755882869823445171132966163090771467451439596707969815327318380744844915320299717312529253705811991400116876907065459857563751366806356974062618584164757791100383579925965982514337196536817452455382511962335541209952700959526658290226304590382825473502109961689030485001200120982444524475592340057916197423349867654541914236227240316468018184576970415478112628582629365516915473354350121103065904586172352723503492875657578529222520776661367781594392921202861459272783232260251472504183914455161558264035160784867597931250140376487343654652453827765729818407153187467908336782368025434452241129488530360960112796428751785720713959965493002945630195980250630764916451325696528942789329887863773724512448759494641209809694440955117981595441135488466910653407791939422926809144300388015652569357343191255645149920414607242642648015783946858333824171193735515305407238773426410276186966118842828512030963034550626472962969818213748869464848144352921929817782645812796641386319434587676775653792106045978830340528917782457792363702323246817665171328976908202946526565291430427884771383406767348799813332950266546764970609566953911479586592438772210417469575309483533623323799158106302621703260962546901176701535000836105843967145843887527066975676228834998598179258209338287885120996139584138319792140520243636342727814090252117029493818719726934566782699096031073878957917750971497030420351774427551004878060563806708747310668708715902128713260003151486870558661724899263434029494531906708300958746337962513482670438477358660290031834002631273549657994834365863825698014722216661716492206850152590369807291022907783936922608461681692427874151628877709275058018139039965729729023626576885007994947954009797774317388705900400601804295448448830496152114416331413941881889890112844787560689931522814283290501081596426984583812218105648837139962364430181760137889596327919125886351963760282644787823315639571534266558051734163053601207541771537598145856581258800361618987840304919783402178727121208990626009686473689775932324313513644475318960244742969030446432489032628672935432913058229163355604333887360302770662497026402759385878237052014384769429077155649911934430599419324391458249973098822674007284894519199443238621930570198600251417386144185031784850010827601638020568422592176019862366513235931967663679851318622763993571651177277923901595973747067888580917733400689573454543886735954986380931109833615439547684784498222895440465332812456713194623925427654743428747772357734995871343111035064191771837206034257870568485727041211695375567543156498463465569963943757045412173043578771954403839873894121279711742471842115181811254778752883467280031830202891309658870352650986147225503648805751341396282717967596879435901437015971901783106981484021714017213465239177163065173151587602496896326526406528547418374077211763171117552820612932339402524395695933980093163877842522160023965919124255658621240739473901161733752497634706896312591691491209676631388202253990362005195984415158684872281970384365247816791676224811644755973036611538181350439962282604084703513168688385588173943610991201658603605494047509946511262759448839631017365578926330196982048624880513953000144839959034070736542892997848553794647248443214305627972903794540153828718037418208166089205983203396015592972530778270659259932956368244240319619712898237681124164199200926613576395979975044749842597427991547079719857768416336441434957496505296243094267250594788511179870508447404984166698768086637745515865629738869998521210644313833330997071529037808847379034377861607647179405994045524419599322439555980464554092311153144461779127220269049461920666517177989711486038585295347785722861804364268627662443009489677063874219109839040793882068486138327956893935975244676355344370714110354551860239114684155289621735845464004513987040940450119052020406889679595835327006328420176659163283827562233823907340872402415787872721490179424403851643026341966095128921519753156876626828919308490210946456872551147748914327777663004487408060196193111026906333993092594204182939565295079368218941340078012706921689123119398289147189321120556432362127396988829366132739170322894991489433518508023261012275543990433064634927331982651542794921796003562901285214681267658098448275834906637448609358157575178034689131444748986899507926323203287823003301439675217537115179109871581424026579806704096511885063252551184041456897020418418233758316585722785956343444921468646066298331135406627961960519949324967744371880755609736218433636151679481059232736171057634831831215807599265429213292353346291160558165345453524546305087081354917531718530497314775163721531791186211243779681018482717295997370444396358085699467236112268243282324269019806703735512283844793266229002613079582204338860858029588040626564126845526849576573107636778443706495072229693247233160254173355112805261134600767318611144061645537257322763925869794581904076893706137547280936158169957078199844996145449760972141762006511147683614595346601809266853944874040218217924183846479926574450451065824286835874363773645334868042504291176993739105875572022085148033413807310341257448805322580173868791047885393685179172286974213226413748811051637472864215359875923883697968913580111193412897315933625858769273667410587447588929376846202833718801462675877283946598973950377228630087144117957377253474506091526673931367662429518282721699129123473390932385808880615354570516161578625265662799078996154963439558944692712011551135616716205368139040351929046396068262272016756007526072599052191479525058423012481491305256746836104351058143941511112934843383842656900178444079484086234492324022538256366948673044199840908753097066707053969195236880181001678640484729990778808963407306897314941713661719236359604555237385034246598476474280554847485703130552749283397245388730407490466160489555184182660268915718568103202707051983052673786081209264415012493370389354014604681079733802720559754222829297272577689422419697430303224892902855777389639408991988855819867341454421798305935052365658468436868505147502149930159962994489337508740779808365141901265498228446569992570248569890495801497195860236771882133527845569027949298109391649716864587423875616210705993312763456146121597965543858171637586732411371266641676868951373578958814015921032126354803768426851065891090980516627244248777241262671747068344050331838963585195605148107070252298896729017568291743809644261398017559434367067793677399130929404412760849825959608563634440474236665070726248884111182495721134192912898605227094790639387029820936719838631674476916882717071246817338774643091901139964171338288945588588624956052048881679257513956301164853311603861693360371562815480837148639268719852499852083778251924689210003156462608572143679228374405590224227505977771103380847474626985770246457747921268612240120341751890404087808224899971084367164681917212052323894940723355070108173389521986278761416180688283077983969331521739369191120716080542467122612187160897250326047980914706464968901445624700957177518408783552540242738572248831845791284170356379246493250098028968484111294864297805939129987507275281243112109990520832740608313119665007197581810462381026299153246970921328653026040964337122568524076015687315183849829210407561988927703939605607995152186064689900117685512304196678645025737348966009211909181910024839004752171213285971789154932057810907871623114693828766451771980576986242102753025719721265601689675285205305092757659737484605721013507780325362903709615243476605064580057285968120901402406608259384003555103216168341190164211205109319471457101676115729963378343260085229343010320550127826500113224001252925660519316194482921253278341271775218732583271089841552507783561034101755832076590345897477540254062268356538469994970241211909203371152368680774551536360155550757742463878377378857634665499074425008746531013280706033395201600388643900870247638322631970914915722387524696235330344300059397867451838981855131782435335390879257959860773563893677123903807175879365818213536458323841258244431661765510304782425316989360840977893479520557637485538000340045650549745610247686885063089798714925162688095911387599788333488959493665005550966936275971485342352052437481482358025560088603010992541812249802519370056590138849371553090986664725972847066594223970596699217848253745598263101329060761735434009477435036103115837200250662301569255172842482341425275455169136452714574807403014215206175073130889102073776468704592132997687478834573357276077373292267455129731693609665302365542084000481997002907985528494459937900017513056094144295636879370109742619140073759374074414376311694916860949585125507490657495508929311829857334836092602263540698928096480753826860042273485447745240367795654807994350177875180422339089525864318120422676566818357950903681954099301488808575522793918670595661498752956719850413765234219222010616010514673335661933026797901615940996964223274229915801681425856046820977853565701243446546541648145461413507021803847446723687479829221890526937006608564745735284201725182472116440927177192442384328980180106508051895540626399974540588475366029121659782373295834220705793315687876006720630490903212855422266756747310222442078500180439903273791948603667288422600289295666914568539106617212154818555640955614153145148627547639935818115286947195479819939231397640388125205373866328244045105078367260591551704786596537500830834426541021285879063565611372407651043407993175700711615727738710007716640241700713180161701451065886670923198005176923410800312181113071104764928803466626710208763280266285681507018096205034491631992452285147566620302161504581794881550742029357979475610902099785051464767343850835060088481366067855877291909265911373251250972140110817108311751390038462585387638573982049356918267827519535857603408566337430550717622564787718314245679468449479412248773793436434869504326800240959643259263088984698982623870937775247941638677833253039363065380782109163617537196280247206456554162512260136994149048068652985449390486758808949234255077011413197199458511230200385812964745825939138970053040843536846121136132964040979278758082174372585042263004633714116961949874183418852534768022647409750339451282070967137015324599842099647055351344726943067522291842115080371639642281841824198618334122990216839691251662565943567437503301913364050427160657638995314387130079436702707647003704779373504487673164738550865387438155492080277316408282454078280862426198291367168448800872497197615887385346255756443928735086346052326848332733997033647022604042743387584270726508726473242292428664310485846457809002195601223083952263935143667699156087899220150273819046197906802573045303178073188480495987410465341397177097066425640741649182576204882655686329430437337795978355152962808330470698096448048872981315815851217193729553581745532786453329278064680735089434036204472319033738413405451447748647228423653672616309579182348816879560592934075249053913083991694141526788493862833658226350381691529755059531701625297627755664194419667961453147225343155952841253326311822320974823739828922702644519293212159585653951347254897539369756710487686108287014041071913150054173106918617863987369689404592260581049666232668437544722259015984746836682626653745739228420596653286656324542716691904857584076761296498134653317010000355524848045269088383014755821688459197317606594520221556874457927627192614907514887574502532371014004843286245293852377912535782482727488885941878629430683083008097942211350246100481010056286120917399349995942118726010409361774158008123645032925471159634911610502458227527366423860008726223015510837029651436859179078732680516789870456371762268879432663907501489364923382352467058353161504888208334819265386032243407568126350200490675347476721825416842636230516770067011906488083902668913779309105157187046146485510295047954343508684779804642480915115458388876825344943167485499730964396993201292710082687565567694009659536882962447143342122873415402691643442335416424952364204854989624925437846975911974011977485495945393548121725474799179179415556995754403874418314607450131311887976499458129596478885583026714759515282123901006030693106067137426046587002993974643111436806108318682050758448326963143283699671670219159494376838404202562562580063357902609501403539780254988266939760340063683113443106596882905608498840936024133051233231410080398484433485911251407706375528729698416441800350242085402827912614751549782225706141995161497464165757834113384287484301175063609814262269080852990480769298705341789917272984661260304837550906232640587432582545225697164363128969375049845111935396380691932749532557097251422239553376625963816073847209998612992278875301341577615556211271983593565882625213197042269908894596611624213541225986489707019199888563226832753206691355049342468821074366775447612055541340693083491922335058495959793348008842530692353117759492704925685892557791121133010772000311591718227123000197247170037747803913878598795572968104215575053660113965321361126789376620121670781103862409751857081489228473132291190513755573195310352373380770305941901702350190671865840227698335926905431646203532501851108017690375427083433610405005720870602921406965655121338030873554308891662808532075520878618926259459159151486764205465810166773043040735376412292225244778588057938830529502051235702852818580484406812275465054213272571129245944672914683887179795814950273511850428420229157176106929240840318346545588865036634521439613189768647054948816133362095239642852489704088613815842880869297673014987409555720289017277003302174318390827266334965347438412554467459909781121646776745006676134658493005551221736973334333537547091218867911825128409622100395113319487405846720371688032539530678485633515700719272494464555195254639087318195330992547079692985741696101253857020839563691920310690139269233321018587447830190697725734158717982927307568534259369541205556051287642320252877509689499983756604497762523302717318858397658160495896737495015114037869670895324583970940571277235801758907391219158833397724019913680441220574028661915634266402558176815916520685269459091845745496963010492298419343543032954359038117750221778659984317694981984893212626462755224987855720958088335661761056319140369178250218472460640724473916912168245927951867737462623153512835261868902569673302245422373304299653641012121786468725130857110213771835626636989816564505634585729872389622483382482070393501888741821766605245048250397539706217976593350744434475536520563719973411713577618430278421235698214405980408814095357168235733728982333997224525511275212494698639490133102717709689296595148212650165011243062771949383263983883153298794873212949211935598311466269637161444706323682646678821524871374206930667382572213569592353657482292406416798324903115359808481157602245954792496534131450588882772847356487686268420191090669766357977535681897872252249279416705289879116365995210071244281962532032729990345767240455412460501703970202806508435651980370702487424963135529639263301569410269781137172137690139265699251472698342790658667251501259906739078284721664593258459378710698115513582426054270634117001309478786690945757697967936334082739359215771309367882932953043791864029256205229832774703172803447155571433417205614578590143192533897138807940866513947084103870172215982022565284471347058655830597107470289902315348143311466723807047756284485735555232797278716510524482481389702773573519558251182627595892616643414576568197170685864787567870418852178589347341195652776576817380432936170300780443450137781766805044564399083967899271684184269685247948160903683926084946376554695852536428251504204808423151008558396571458150510927542766497763145316071626401443416174846076606241443290831213245982687763227617329992047652678307719976706081686280381750681020814346189540749338617603121704959352026327359360535169403747788386746818842611275080438817857580860867444320780174456113367971244592682594388762990591121965887848387158017577124713183941813393357858387186414664771723941566851030983898156022292043203135815987896388608093597327988924637480456392693171202835345881703016065508669888265021425561393193374816406921207472644208873030413121783296265649408742322190459293170266517573957881293946475034708009454741802514865101969840501624098863105175157003547517031761514391007442749112018587158873687126841178927930770750910629554239399626345316758267877355304801481367696262869602025940703113750426073303960123088312992952953931132847406023468543611641656941304206205141915309781311715319781488145820120299049499628205605154936206032081114198752527730509744577346773478245392633422424069926037181097416034487825049930564770551651045219909439778492696281176374511097251403076001261934449126922597247550018737743582110457271768189389045799699114765482779671931290300021057012305982196605718839431063333217925012677534004321620779823698055867711242464583313404684384851495750061275523068381401102857028437224665337446761109971437393573399846794440967252677738877762997273474378025076004793410058563737024213082879504318880231953767746312029120733541581607935535871182045132100161135451292057835310976154092025146009186359995382639556480830579623450152068652615087676157283554004036414989907359169731141512829715863475460045049126794812446588890559737123263777203361133727153125528167914470553570147665749483392440534476333743760934965602483331587775310714645589396984263973204161990663518418678427725686414087775605893745575038398280884149245954458280767580661901209681140827564780258164211740270956447695348501659599255330305667171686363230363072692393579263811328123107064693946061125150643702025052252445601372752206543936272257984885685472940109235527780993287093161511085580141188585817612831285033330014009275338410896010737760879286907372953500951489651996589329891329457553148506700815851459014535346665368592711441798866713945820637885456020968634731320231409041963453219324077780629461404095698857272025130189069355168265452600052779743060297429497089155540096126862299810489105018845154372694002791778344510123532168973568969605453420349926095575193685590821194642061333909696262231122466586521704769111780866094241792493041108578121069866067513900400819381626910914712991830989401472401434213200609823676715178497076167537866436345996588694745715083937332409199660694496038045227793987541169771141399632064180808490673628073662674242396565117458661050831882765052988428164622982778092757806665888976131615532179326820998802012861485242526838014002693946096795662676947834136726333715573620575886413939502436642757171391144665397239669509465000552926254792772289127595906588675795841831613369779580104549413411445312054135006008326000561040232371319786371886290264743383786018945705180064832280944430711146253527605199977138919565556050842879534362384695149835992962767255398604820123535578752311838019997921758570360642581584081942658599595479505942920811814837081857014679400371771077911538321155566381454061605012811782959660072074858568553510154276932657552992252397427090977072741150361580068991382115770690020830839120206306450091652612393278158933984511160533351343200182573691874477672140369371543814744423618610399886084308538722278116860619431611581910692557466557874709107560404494260274363097533426943218911358860775783267389090573453416780572099168929807451382097834611113139883197333959820494381687493495844167403746487777843107136730994488725096556275959770058127905198575326412561553680517934977749142684586098497967523638825226555605368430212513040159264467434448423354201142060005068611604526592650606620757866490412250098110240331996409701268750370893348091878374639268277607469693621199942579946424586157225881555952947686166196753720731418451747519469205744550789402388517572839548893585454539759808692640523027281884313290300015139069315614392334338722226978719516756493098276206272125704828203667211331243144160968648101948564394063184861499900422169317803576064939240607589070568962032216060275019810219793734587195422108787433718939521821812862593066484763814009496005790878690526796384371990903243715051318552200996684277572889873630541630538233763394350766810744131122028620537863775984378319362483211806680577610754092268610476420061809122018469848051833369791429812771617070674884376019962792064266209977064944476112651953433810452937771547669218622194057515331931287644342835727900650625544665749481030205691950135070975096775312297113972665021921702877219734168051124661938551481424226845142353324485067339014831233870515601342292904753620419536702118150161584479256174309273342587124936250170843885643967920282610315571754362298678751918567500580827366885803581613367608684450970976653420432827027687164556724706713442842731106305192151354421445622323184261259329349619548160206221445682535801192382136556709240588055485800422057922971440754742943948181912763964695147952845227899616390133584327349090693979425508453521738453489303557789421828198903396214641485051083566338734698017543388295334039952310071210561895280886812130434625462985240923374376892623732347477691597971153520380133219122509707178127590403179813145284402630373381292208386032168468024419620303307712189656726079088843663915645996075487053868336148758347306330576984399403958315528175868273508940172120449977007631886466418609508661087463804004604723266272170197582647500246496580383852796921883377683739930274592200207635205144770193700116694506391154554778449097231466889002367595522913373318254494141917005232716468324137123720514221293773545139923381317999139885155857846823553186665350573915961575561484378887929316372146801565853574528215931246784585294825382140212596454618156379595907252421805148030819009499437621197305456084937370307966636391814621323606121211751892630111388025533186172549381043772575828214088079558839790042559229576578763404776628236456616239503088808771911244998211561525053408912247823857792169351696314132544756895805667897740769339707228199219996621037428471233774991855516807991500845956492535736919927881295482106907072844202047180942954958615915317115983323345232302601371571024087316259187941759341714185167815996669472995912679156093551476594907888315827982070131204517588052596182348346019146566100527663982341816831243398322460822052241102337276952264920604497873459721987408268583773514712277639037585569140687248634305267759830690375529248744851656808338841666273558302778705649560725899752039325164250367962895002303098909861672556363251329377744988084034796336535716816850959486086534832483913728357917233162707608405862962131547879184644558613380911011136420543874618700388781473901633907227815041620850342013117553763828648758909784357022888620318878793211278967220275688714432999712366564695801468206227131617029851480136128058864662527582253549363279949825713873084213781333697514397525173947313909401507699925178016132169290903867639304349188988839957277553040300717459975667174575800099766047889288439358769742584667035234316353978090832416251866030720718691806172699619602743518476723676616617728073983978826427786342300867835166481019170154856236207418510611694711249198786070161060122353546191524179145385715375385338708309764752045283606596806335169785474619849678505395969035936297691562962588330076900735851447395741132554935413062906481770308286087011201966025428140047905277955908552492690722391380256666132012262955634761251985546986043594218757758090960284389737074731256710372530850751653616005206315894632243381441987104826345629389088984766612254434948001773020755375988651580773167545909894042018834686594720703942341729890620897542062694061310008660923139343831120577727382931692579520483250719096814608353997488594965899745025869374934097335727588857636325418927170693585842534412850051180543189675697311054982614870142954398004218864520004908436106918336536412020559276371585592653617468064622672705575324564098266580544843425269346491640578721837292726177304566360241065075601297268344178294469549385409450318164631973832699286792360659204152904041594268091405491853679890932232792737353628842039294606639641106704655509852444294506889130918094448859318499732990554114891786742198172319134366987739127002214199380381088667823477057117480140319398262185792374554006737367863097667845778766584196756358235768171550065077505777892910413634395764868344991171227742403082547010312338448778959771817436987849386464066384522610261012764461267445527931498648526773789105181939994497844617074155409367359640031937358598531939669996712008724186139678860804226320948382664068676437945801052057971742538749214437878385020406605158579366647242755129041968239637385648249610261258851196884028003686635807513317172176989391495276608007425428365914402399196934286893659771424990963932555511004517532812539118043338186855381012738837943528973595006706976059005239710921681717962382661087539723305002926393562066881394918610899825354196596532729457072880921359385004178982972506457292500877685967335890785585728468999024123973156591341399381618017412073029055873925304954387355280479453798004424238258833580894609815777130850299020794929866685068677110507951768866672181187899864301016568836526667298437500384680809331862350928331547646228961580065736432888573848373890819495179091487212838576064790764024562553092652822792948863975450200426604526649286536992852110815681014290987769927808767857666930083292345959695251675713433680702071859059015201874160310977581227236237290707670588910192167807805194753562303101471493141521370745235415827851606573342171478571364441470633013892660018112966970754548574132174761842411016020286664411634637424556202088403496646206642689768921026375488816799053424914074057618915596871640220853359803716181231074720331938583105597630182543472423929744041747091653634193904764128860520918094404019148564974002474656429456553623843380568163330091976293455416446486516805493033189072940324269761883923283820809680795062880933970609502060680050643616338411557283695849806984165832893114433880774700359027004138864582231247955537599843471572725096892321538406088991263632836098735887438006280783610227832840444634249347808427744730037503708746102635092428032938463610859069440846592277686748231473934860448727763522297258958625840209435389344665621696685286988925498422069905993196434585472708775558106474086783586727297925494042457136165134716897991233300313019041219571728389306682999240345975630395105405849015280063032992015294520272678597487177687711816627329110169849578464527225199004417001878623355702207833031182554171105041674765049382162065680015614200066160222046559713579857870288359287282404578468168538687849780616037739390107224817455394228965927140089183328061444099086856630078406062340670353441583978113548041841995091023924079687081347792726150192681506912124109813960269362042132560051892846883931300168634817581180433254703011495511786908537705263248566702344918657901542118411318074431446723614727693935876482282086456250890906044264138018148587615049237761630390717918099801405526953938862546634261136263271441330018340217781871648867592560936257273271821546245108519988385707791750673914625592641062417668739329263231174522563719771610621754428623753369436348020458766807815168082684559618179886954653428158428714803279386059559994977224659347535252012636352164953432357026521662953287413843017598949751959549707166346950072724791839659713997329330906968506092936493883867754916509307949757168657118598256851611598496951742336592770502193302427998624349065422390381978228543607818486090725011491648852469706971047266704445644751480922072120326111950910065035461533559433994106319244187188865967792913318482293968141810336139724319757174706676305784816762502225633494994606885140457433805763150388219514582680887678359375105518861962464633865752869912534203681629698090821080383892297380845777210298178785622477316596618805547387871352885847291121608483182773137152250500194795007778613825215987999475831708175688731651040776630647036739522723567589299911603957000965291457028452709188130751152187737141057055227441037776901619304864688047152145054119230662825316911369474223150476350268967453635246011685752107465512095670617779626018124290672615356173111693558217098099578138530297696042701820516403506942750595777292073510940231456638142124787526851924506180891837877138532852803887637848271097313271985032561834754308733158237549335921082510513391946842903833502491484541360606504873867015468842542377904860018818858314101141985237000739802888186903375498081308908711690150413381453695210735832180576695478861331121644629456810384062892640069634630991661422961452671071229838515741965254899749980431870070361905385931817089377188049356110542591723228062431511201260261257447629320771610272969076570373176724504859286008400338540394536233093490965586253666191268908384103060576344274089246581609042023624278091319136270226414026935681817687145380355670987733015158324007426024114327391892127022128663462848620069581037477842904729796237511155147852058021005987411049266429143891965557855908284280658580662549696555422429511564332062280942938888973442016101405736507067642174331730776725681214674885826806976364883326232660666366312700791442253272648417600325429435418470648489627865132995932472082236813448236936036143682968644944282783861096743402782737770825658056154252784478389648356916803140138724492496746670967309653038037149826585409307485288121682687120461397164896721813335660532507892625240773532629172632320267354065387539200167949570741115557353420562443732550177635112009261335370836395143257806696435201602139525943827870501915624826330562945914002190470517977552061610953671050400689631351620591241078510661642872503121061592999909344121504152868818012947567568529169094382299447941996741031603906340656591083038617072698192614876763155177198079003232938852751763136638132906984928249312428109390399230098439064553928586582183937901255520380723442578222385277785095565972375722736064721000096065214502583775877407833288216804184455891738261410325593566152110865365571258758776196852565574754602078431874353565058309876642107795830489879851854430809109383849836294725142759179030352194554195046934263037405023252124900351967449463021543632676864683489139225225884341679711641886958393957498102080975570630828383575237200202712482445908485244405887693097938374250189207168600492157009630335774891053371730215038724099437702419919145786084912882153668083659680044525616272279846390681661313806318973610201888221783477308641859650906827391592707696542098214441195676678672899912027967600820404640615620722416762249929040096226934239839121372255329228916882833472676388728559798105729432947927034394400167782255106203496238831228845220302295148231760788852130983966008224260351351956394445714148853382828789281276413650714217478496860062362581479158678143203454516481582741741679224051193786134697506359893235169335570790591550481461538261943939623341515015892708066425827957827055867123574605565240843349344126470869082639940606961537791853640264681722484816341646974751146123203903238323941866292746300858571961682568116987728912870498948970147475724934938696627134172625673102464409909444608435303074232449202156067983613353702117833762996900713059900781424934063206638074920613906070714006421211480033520152848262299894504395266300489450317182956939322065689831088915979481903105986750029011428535337455261733347954628818660546902635718499210294041811634247835368910439717600038271844508657297764029413249641582670806273237956830098646297834942653433858573582108604903889612397986218160852741172265245155857175578664441544923073781332094212121860018827717988397790011035706070823205502455792307322389709478090826620073823461208545550122925736853477479022948006593408789344773776220784599135477748134699635552043685719806471267481662229883015821152719069750846916175722358948943279035869075609745771472270436892703047955206532895438122875071181481950388322947603632072407395572837485260105067747949035806911302955168766293449543144699597313385647398629929769121211147466356602697367057018596719937239898955898299036256671998161289811010167391601939694984328819300933530163974850112025431659340289837117943246137186547988735318949114812521558178800513463331258605286805872290507335952013209502803610684074979254438523169235527859809613915200709177096885580206602818538797512626423715257334496850044182960866644959782407306299911965546337832974576330719742295259919535047659632504064762558001485547217339607859532793584177016194807190269780879089548447367393922965531155380345684501666204056744829724905502453606766626810429980088147105116402491565469740962944714327541072604962883642472153992125541474615634671036714471770213265083568467365143744395826776366490900364461425345713358378352982809316910818063929454418076156202986045181216728287582618514384792737488726508851294956681704656922947277305097339997248078176472299540322565686095305006895539434284614571991240181119627226342111405297860758806282547158839867702187622800045369064097233558970907724010515983506376683941732633440148408210418705651960510561278928516031364465401907561503454374800509325347769654867347035236576806508461952151757772107455308132535281564362673414282124422659471475064926471544822503552935364300123766507298620809982362534943658966869505337729612275854080884477821517842897910444604580975044667364031450642046560114555770890017812585584944691146698249770613156681276415443297585765084969923371046483246093965446401267990901765054439084093666841295075515038164837791518494761818583323719979017364511876150806759455069026806031769617374802721718127564246351888073111667464122433755857622883501339212117129431888917740927511433513307230930165436936928761454139955918375955070301496505126309662758955806722695213819349860622188306640123811277204106131359969894058413592104919357372971580174436679684291324166862594640744223179971908950448550763807209962355530905007480365158849595107828156233803321384450477080071786438976776798536803970697713248153189124609687215980696249061436179318919853741927806588739557129279163213710726627826304613351534019493830369548891629436467613379241997762514391857287081958356502112511781493351611224779542847262763998687170274797353309754136220414476943641724959299158780423363718660094726099433126483735685991022017705567671811630741788520602372273204003472848452634401875607750928094019528748734745840381017084329729393714421857748619442861928424259387001025760521919329145401495410254292876097418255935660209649433152170088365729033760356595897171692263174580973662384560688314594131695612039423057304607906145537343134123133476815070575625153628874423965072442568722393600727044522400131339908552708904475672024974988595204167868833387768647316931112720312188879999115352076798242660853342036250610476160577053599095006187483311993770959069268433501195753282635229625598596491871848379650434706889941628805305188425960242591705686628832787865014515611788175018057519613617989450174989256424211271841595541198059947246799144008707835971313217104164367516742172663121175589846081402845364640937417585821921797616904959123661833040312643506850915361561161204982647328116136977321396550158598166784029793959637510342305415079122220903628315997299397119809258497940441663578499770811814141054590155131071972254403454010188690672226128111579316733221980374463045616574144373517639203353024877007903044417447598626573510047162974497561906747254378366404034989091024013753310171635706604298307839663367218145515614417735488516556602305297228761026059575431184861333949519584174819935009249783105970282706118927558682760890646674493070167090897822611126303327899562037020287029541966156286265875766486400666281873451441207855330303036974390494355312886549922203662384775380610856245181869449287489676483177775486560756957507260607806677642826232489739413299231981444520895593535874637658860288726070767461684476633451156293622943872889905702357873586520080766157037066902326676377035606318559240592145708231653254416999804097185945652368380346900303914931328425187837141879454670928654670912119742560698709215764772898070516426333635491570284891304170508685642439876364682136296601406040935933707960886707972568164141826816542244516091833648441923991625430970079716056044560055869483492489227087514589107095010742142753022181578132524314076020595420574974333940106284907952575263130813204025407722280048310514945304821265236245801706866884394631645922844580080948006518174690683186836011799324188108258803980601385438806441058209264939110759562606297794232624572084684970890801980241311080832308432220254592002915361834399015738151809791837194701507085569775235653162452549518028724021612183270292658440706753646542260232932251751558877080124746594042764931572031479265929196858601359176612367613569554741955754161338640745741515220328736009512200270833898243948003363306874204976065259674549463154830836756194787277919442493132431379257889082010879704462791323919553260616357684282228837825614049234765310895643630084626527116896217947030209244094204115141570991260118563951139251041638725976774224827738478955274346410374985349586504164701839268443038048470918094697420205514323143637240841683453368568267999874337499683376361580011482345414952693105260585770376240310841634219508536229951501412281738933453584566312275945354336240480913070625001667138544236450047254049980879435990258942489551130437975286781690779268431516600497133601922674859679612499177665767831346419964394712868444141601584227923978094763651488630608837524491865636637266611026247662718899255233820745091342103187220282895593306502942834620328954899733925453430990024352591007073817129004035949769276355989348401854690847337355392998830551878447624200914158280499867646438631391170657147357145198439500585768158854279173579790003925720219023734356870690478641222664360613516834208836483611801507545824401193182354443132422543581707454359276260768040662221162516980876090772331970916369898070105943479181657464899294179927875432989737902455717195625455924510613805412940377471763922348793439126590565020868281199436913886278722665409655072857774458309886227301310547669110163108526864151536428902152174561853437557714115761729810693285841619620546768537837318798431506268939647338540438606866402752580950999051750484059513856042551526444099927133117221837854903943803134703381745509465640248034675771523852405836569339507128770240370039053109858610426299747276479671584227545566350338032450589346284918614181556938500665163824190429622781609461389132455486173558165181308036645159726016348449463400080762833872823528877600638796732538829069201498274184116448034620657832200249747928601011408766819865859464480616416395757970192610628949898223394683280764599282206914609273406294851839945647201837404393109937738317762500540915421437254771974493431062348892073953033786096563498757767023005729272373152059202070207260278983030891240224047173738326409259745184739102957905596885115303089956335699548656495053076181925378206537537869448723937276282769695333109234245971361915977603447845921579688299253706065102549023830465936717901106337723567509165596317714287044837309747124300118313305403862606268775284428202263279319349525789481685855110697092748523860647935490233180087065999073744401834117735467776764701783926124668422608857271216286918505022247943709320984051525716525715928844104493520675859058398155688689158434190534749541426731280287639583737209565639207685667223552651903968011333854369041882413554910684601371915218248549106125619772923639776192756000208325600009039220067728999754226723776091895179145478423905980556840681288227766108642795553329758816198738625386115092400223645160368546741642499985631651555293670386368421940970121550714596802301435591732719711276173549949149064057796243757420654066006852914085640366497346001943271462917769760373266989363469948974446904786802639823127648620415727943199606051898069022782367540238315276468534016631494165687497030304600411084343033622686156064870505806600632972550530489993938613362239468455960710493269451330082632042292264541767350395739744136546946882556195756593804027850459503510523085477885999081635493052736100935291953290107797222214852702481519034574137428490485935696597955872646362289559134295227552821392277434454777090598600336995008999130556632735959968246649506668818784402331965897743685434791429990734715368142746979753868417556174717387608014635943665106737086431825169701601849645871070313633043720004403247946328664642900148980918216357928348669524493190176853069866234475875553889807233287404368839099908006964594111173420613146916468030384857571429973818745981718726368324757022052437772943753384170075446057153766035876545119473329884074901741610292682630617053379161015480860049550014616016379280500612059734711442253620509406269563106385695244142605080701729176513763867993922874877615936697587422134858665095376540970681597829049102886400695163957627751272577528792465807727072157151200872593208467866251188172728201983264321673644671552987903121557683488397881135581458856393865814963388359953163081542748564064451130798880538203044100136385538927547449040628275361254780759145018134221863113558780947170998070269711048500766023445593841130569017769162985285968975804162138619987543023330119029993869975417831322074890413267470128382729280470028685553978361386959048936783496968255692550961252441556831444616803969508005606465681772187517701437012755482972609412340371121353632741981843496845047515182364823630085082347023422920326397690400309257383246862232749653156689051810019506556643800192707442430770442320405793134618512327446419569282357788536848297054714139951143971568747191885440435916490740858863031225497287336507931103439802891351912382715059825306941880654849210405455377091343369121640154561432197570793106160725436216179430272217810823912641583770918394261691402490119878384830302740907065192671403303415050917225983430880105427304356869293496480291755289040256914444259617711578484119355665575594778774984600133608233234393587713719997754022889388854962383106494341014204415310263094832474578178392399769383137307019360488427337447997943678160692790587679397859487098322011156588741224985831612192941937427383930593068106737732377814841717897013745861806228868337898684421336689415097194668783839356386760938699587387820941715950761803675237576323932405520798714348916765667045994178894268025739788916497455381802270983300163724975441635243424953976280998416362201070034966764480593281620156932644263027045172944394132743783551196404823737277602679985166082038149148406496794986529259155507168645786829998220304376426234096352898708849582317804013184288943609468375297838821022448273091530429793149313587365915758355614977882753230091366465156797166972667027721781306310586085413341565092791861981967124463463903837150926549782017517700479799299105099465343913248848417802788646373258781332141417854096538223386233650343681422988515667534509637687304181044861777895264143112477312195585909634454157671190308534286999036350442940521641328278841288379463967556155156989606015197421066897147505132479420081764003666741773234692077358263304838685822435576248514936738847000871670311715826513530796304274172524451675766705397508465747368284005945619107584493529978593239313568125363052510883561826721082846069350836268917634554186868298671485598744369960868655494737893304855469131393928565570249059631025282162258426717689559784009533027168337878636478613080352700419155669378145049748253342360501766688642866119674588870761536528301970684030777346617975345811562123822885353060943937733048431607260193172209269922312816978952450618960652812723655247091297601766418146500363984118054845939095877456724716989798274528148976226876957024877986248736540850085475048180297404170809988921692292769196926948426365472145283395006606638939733102987854997894726766926682258925359350401064579277867785616730786880212942547831557209883569487680356208263089661619219416164288650408498840492965692616714078594776778480093900911157268189746070951142725668721674977903532099570670198707506058760496500663344049668048472729383078632877813241678364379304634681430670202517345863839936629486536741265825478152789469267162601340397934172187822936011450991035310765997969052338987656977117111497885778016568326746525124882209520888484619870127798803407015541072325431540137541261913885291115977542132384964861379879304873070323343110437045278332670422286356553567176770736378247360427841470642291678627789890988414038478126857949378690690642758119042746155873728315645203622140401698422461505146382207964945473122852848106815091880747881840196270241954860865098725908726104024798918205805640967601961326056271420151038743948368007596945104510539680424755840959855047175332621491401712407060567278318021356813986365291902606143879528118630989561601214227589902719085432037863574229066086376369505695826599067249487702056200613292562827536881922182940907615373592491001773396715440444063579377616525170688132921379712108592647410432671550290252775814038691064731732023631009670451421184283096039427546453734232503252856630999395845668498095178463739347814634987035263411188021043829023048590055306143199828953063337508166763146696196808284937133817333172226292214680478112765667124396122632845162056495921136729083089163280344635620506956025154019593058187530663026665178248567857806423201167567052003031142844921077994883964626950328041904942072134734173797052182738278566681968750915820928318787138268770944335924307351128821820583065445446590696199775492733909305211517030799825375793045199853665936174767488001056463919986709831273373392026165941416795163478134968450148056578608555569492555403849984768050717618092691077736180957342908614816962568491625404479291580562852000949754326847068774357564737474366037046262475296944558528586844948731245162669076670453169479779038164229887944985518614216094408314621776821625679576335417166873041861379188030336009732142199803200853167586333739310771636049180635118521007645707779194460021119861799568036074342707716952409265630526200810698547687576615802356016444638444983245825191050185527246838347687048937061521395932131309430559339451335785800675452704154848657614286550496247594275974145540034407613011513198022399194797491158724406195206697662103496231266374356726026082266224655442467642973740265866109450136479087855750221671606417033790563429800917115419687537688767374092759642067846148073564374313898033423468671038958767485915196728950353685563339546604827684651501959315892065432361418039408028287396256575884643964154105400466670424589119724949803265600735619017798463400789191761982722664076937933873099190672430346228360806607504136525351931568174529372647336350407171931168749448833051028252065463759108412483942494013518289844680740728788906041563973113501934045265742606934024014293288790302953362024979720275074551753186084060774938673953717385752284605989693369783741152789682371374756226259141897519763754974171101894432349296561365688592164007298651110658636215528737620798418383160496260011015775271172944128370402826276655783569442191279639719977822780060249242104355244442759189761701351443733817584636966990650935078608086412150986829223433138906429376274206589292116080862416805390493462947576182709609767805637733664668889291827903561621307676328301049401208780613097087013475557390754517027840908686362783082997488534156868641087110650879453657408441663534384109391797433232538225088481921031207389598197764893843258178529886516655263044660627036327581538910680728650439728925904315227720192328747829404229104243174264150548400338918790960070731368955586275524929936685462819139288597570016578647810378947980427333699847100773542198728660504936678046983582918804257507303234037428953929655297866722645636632083890405287998545098136036372878251838342376250983697139637127769903871693365866439134793700858227723591258946139961807120663700136377626991364791726360257489020426700228420248676555455939383031794415008996656256656936584523446411491295154463525211037859779583612086372499960442297633202900865427733399611759741348873647861577818147092161086918418933981821667265827636323621438941925334961112386499734935536182806266710885500851237081635367964692964205816628261418225239295741283717636292638259331434744564657970627871189815319399432759114876494214919712569526594080152828971914099109140395791555593011187845015597366910878803318158830758208478638706726670353063898034220063061528222815917840207032770000090058091145321159549367563871185749869570856518579346372139657020856787647178587044002066220026899867551276035180312584184339638723990643988261058824433817078567245191832291155292459464645551627916374385361872529915696885172356299872970859855644621664597164090750342209330943216645371426069854835385218948104230486714678523858908602689213243256789941223335137149759216009038624739062789899939362280962953387455017872317610397933197483987854202308372701029085717940097247465569568663021036701097682422229416676599192211595153776875109168317872900220722002074218976184058058461208486835822946625649176266073971199490822315457479877970637875975091282464552095734966003937193164933622671273650076379232328213075423288036497764783633840637480155932627638755524477778687545072318812322624052738619501802767237407247449159320330713226239128786740108233927304420099114836775564460924552848851298759799264653349695120946013252996725824471921233615300056186082845935747136727503664488580273944892903919310107399212734043711873713234395699403671983910684765355408041163592151270527853006318308300984017932578110185639996859204358868650354007286313898078735081459986548031044402744772567457129872975402157634143134567282574835441244443759357664142258826079160529008168313041638931806477062237696926801302810137273392983760710624303128675030598305371409600409039751362279735622081215052889253936415943439271022332731801438060102714361800488387548874183394552208623969869561463606962171171964224473095879373852101967725385405728880025324224081824836132847551503407758973777527662474632730749813379216769559785794309094985150924090248086001880148921133284265319927657066315834966562175584485765040854376476364599708227224014024384921465612908008308162802285390286009222480942710396125353918908561105046044614136341907694668864276460203105141440016865757996507674907253332624956402518081694101497838307136367564124285855732286432701040343836912668558444409432157761656824428539326116084288943042836475981976884602176835323737025596804075898905487981522911715054935347504558457841555945756773492026424292528966291270844898226783129023514024746298325884462375002158572393342389901504847125090098995910245836152486844420539017837543293400698935901322430614585001111683897162308792968501942121849806374258190789913999422507020104944788749178224317552733406144031697163287412381030808139903778517443678707902038881735905237657105571066375100693881105447284883596325128949303299142412908707483686072298930022656374445562982983593502090099428366907769688596674990984868783405588195525659119318248974979612062009736395042967041091387360422844478245196850000427682657121479406547953122090374911244506759171803055544033107512704763750749924115765166395416638799871439352685441170754443596498334513522817040070582927367495414553652471663103439693131061193413370511608021653079146530317674409304058104425111948336680857107606836782890485561151241800896878104638330680367326782291665707377551699181404663530927225373734509195613790403492121374292429340131517610626401895716926211819277102969972477242616364456283665344131582158216703692422671688699558241671456173679551429394700160487847696482581679786296327608523866486024215575606951558023069496844287313732289942268268613635992189951642218813376808837038971929557717373565591933910528633973526953081092749126803067774546193901464149694159508251629009617761926070507836151360455057404624738926082074498656757172584476685955445969113679237851185199875307383631287352090847675344089590139286387814718230837390557294559327627313666573454518307638702975459523811734408480798844375262187443355885765344013754774721556616219093968849737827400306058561101356300040850432394141019086665954948537227734912558033144554210387606535373194833747788253179693780759158725021223233259435838778625288200658160168769957037707497206676054673582558332412885833173635787068272299160376409056771647923602718691204094233003871075166007959572632034699384852861947352512052090849001772162034832578996318654197213347195961578121370832411213482765654785733291419347356643242110765367512103899548632173278570607054109304540006780235365931282419024371390925348276852196538546267218618156434080935988786691874462606038859719710377376615485483177783355030521532689022302435909039663551619934335422560832622468554876223209039480000705625032918907412609598820023829997843448186885059790326369476920079931826402816088368231565565737265954204201523275873121871007386882230669032256864730145699256525747160413518842928843781369515018403168620525445638300087338693294436326396969901927789456596423523469611331969090234708189191801673663795422351712982910901893103203155768622254568008665123258052051906196136371942186991339611398484209577623337689136758650911811911537047522534810442799881110254769385581720063189954191675107753131310329441022573747002726050749019531704070250790813551250657818487517039680986259513764019642437154159634748938266632657102425393409017895809377414689104024986470899384916120289258389965021609914174211021482578669925795005072081941347119026086390423409708211251172642595006608809709720838472569068418769939997719542298716974311959217457829183708287080694066640736622256973964684622900298419476246155969119283057283613882166258866107103136042134834896533269631280351208301190824978446437365614978755808695062370443687809764353662546189748367513106233701036722416549483879573950199229524401561070853980397161374601722608950653550821590926253879306511455316647624221859853673521665334579342541945167461921708414341867890100840653100698758023397295566492298859863621925676815541353333673353893632643419396199541690586625539688799235678505390214892607131112605671541368340799151271098544521436837006168260355859987294549765927132210652803440345169433393931229244666151157135260743443825078130250319054540156695114862044853830774922739861408488251421699488447915502758966210683598323308268484479029094741550363295296619896679213043810354256952055516283609008444545996847381583109755062126325767698489471544816641583199258998281272892563658147475359610949202567128414117394627068978997539664768837462592650919288833941519133555062427715016026759354323350665112475865341009585740372393452340708497149415172927832905065810678155409558834070376094647675914065731798521502860815800530499733791081742864983694482634063079929307382538650257905769748857859335209102387052138399375089948471996864298742317555230046949016665609026121801054163613844755185365095789300531032517674789361810106941349641048300895059171515821687030385134825185415738124109320663316479175689630582122741318760302922840579445689633504338668758185479063381962422936369083798839587967505827878111163976500722432839168263279184264354880218944410925234944330883414066274123045360275598377918131057873240804085739834333419244459139458186909742133996583435443991482958095289153676405739712580514376922921829197896179899187628709283993215640012244310749068173562031793237939433063221845296077799439785048316297164737935588112295707071757103589907882323077116099563897418327116840417559199357380456826278246418538958050866126410322159202960236903731723427046248861067991945137274917924171538619563658731228286659964354664090263178925955008208246964464794068531850390658338744376906675477878579897720545090126526951133535324159875127264096567162596781674177516047223262867814729555366127512390319561284493399574407698126496383084565362974871091822233293841386159181104121933656925893616082791199677510638470045687000986620334044214880777669277311359442039623658724559542673624252331833363249679663429971858697435085962424084057611155136341333421192740672573513661109094060082081735105324188657373887309150457349653355957413796898294807420076968351162537520492259933345323296892917632967661308258704080409425714354078723521379929712292013225121642004974237863979301043343989312468698200563899567227036388723676312742742029829261206949541482690596410270062889516723195913275032813205152919769098860811679771425112242678171357207453181011582439653781271264162071214316084541978380834856184353455508029534322489804748267030324241024754160119995705272017643972107099440026183715273522576732843893124890168956227301722709687277180254658360188547844077975071375911219900480678376630248809422025808484578603718746523732713828165868418455948856900474936331115557302029883499802496745395642145837759976117266422371842316355712620549145094611572185621564060957758990497539578020140088208406626600902991235493390732719243668247492299021778895056460588675903265722904958334737217194875678714767055634960231947192014655217923240547764824476718636847687964936199704509441283324596918895321502527656400394940436536242252545432228474097513885624955302987380543276941304212836402055409373715287213862923167562212727170396806802760424808468339095214492611447571760138775770212291853713125597786192868934146111281903408744514961491714844493465353075145054474057164541098024422588537431870076490510849085935271023033525971171737836956647747479952044614451371862221251985060286128452966334134265024382152787609648255450650500167116790858782276717887919056638729291328687632711304428849841502367754636854903123146569566600747978590602555041002479007126236091812782438440032653544579652670436729847862628198782183372509346529199941630605221692554863237132450741596012831915386161170769279099583633719072351548176117377107523231180446860098470003095719508306028695273425644113206209402158635939499325619534056911359526789203331302499052415145626182095235460301727326698081773286059507150027672893563126302921138654164474396497724876116590703059339448566223437356652181095378288398949618550294496880232260802506495536783340123374249906321364646542260200581358834402466767532085218133999606176513766480187745453139886569356005003645852566374071930608194142824411026693965224251379887820208665040038658686884617009087273727852886405558457192211700688441806692515097591561434266279106618333439268238441773704770466971332862793438049818893836483889354579582649619868599429070086473417710495946278224694372301087684800765858941548309501171703806845255261637026290269445536777599166991358617825063762639330703535736104874453480680166417190476290932853017710387290935030652191472579382493060053501041920344946871915428818507384163840404277347165612399078006170533466633860614007831377829112005658760259103074147722990335324919645610209021900712235658073819291138104341243544309422215048117539780495458675096726310966745559882821499436112543031005695043848980851674321468626931026436627002945410035473389669216451381553062378047244732412964583503705016813447031522091981957432105119440838526647001039696458579348016146716530085332881920992898672656261715155430111127803419235702924645888022329099064557720063670805935091227452049664299708202750460866177621882546534007883129159028328162708233698346941828256299686599640884143285869456704873246445043074144207073138721097046162214891700954794138597495311155348409549474333088673115175364597354636970492232567227854226806395880885914700266971600975281269996960575653151889386905306974310540682991667387209431268547515103762239031776285787190383961371292531611770310642911981645940582837029181434178838690139633931492461360631403187485600747915900111967069070578751830991028456793411042705334081048322501661543532207702359919632869986312870288032845782320340919432210220799730753372348353184088733045787021241904012387314023694936385598099457117757292862226538455857125580380724140806475529952441500607522473114290561540853845992053924136146410470536794455866519641543027702683172331004692247925751927631029060166197911753620409771616179665566822404374430488265401982526845817279108122561988313400845897027420517223437862033693446138123204608128809512595229920284107358033554831530179615425307617390700400044138222450191344563945178279196365496744245397993560458697542990413093619095767684651600263091844410092228361116478810337796567044384198716457061640981579172671635198127838633977024969732978999159139651675265006689574938217847295409050626259330159214249026411846808443643308566056427533901717388961700952316490424348233786258220175375948025100832038274708293137145197091977398142871216717675282576117407161632075372672696919378221769704968020510703935614203429741330130522384155745900811932530872372752231071842560467224108069205874605007941654968703119683185466960537785598392495598588248060288077241646308416858109825986084727395134479382998834732316561897713016606521980703327218707336135592221673065737253031388191777872054373409547113728589697646486747024997241284704617249784609438965735753385991749596712001569140990317176740537712014625138814065816669436796826327268645652961629847562731385966190831216689605665077641242226695876275386387978822355964556599120073754780315564132332336267313912927447815373667454458725972142858012873067885786405655276446610117944343618736895363549078039386170979812490047878844895397924524926975648961796402049336089335668526434832795653096762933208598254395556614904904654843244265116177617922617983645655278583411983129728039196953981947785422738337124219307857016908763026917713758496297706101722136612424004399350991490946664511144625227811831701789385214064297296036108885017891413176615662945591409244370621701024510936454766523540775996918605451225265033822266442313018610649195617306820997028229044428210551477736757050749805568961493213530464395888259683068326816015173986969961872349402802076198301258348289226057193634379464501305847635817289912612950891099715184229152454343306589031709771732889000581571255927195304920782652028826570231470986938015838197222241987082331664429074679373393760417724014483372503979716066200120226375426741475395477926601991302289525481845354514868177142342734013477942903224805079539068750618585733533372340749542229807858191194536697721990419112304102161683125481035526461681040774643502915175556314864405483990400484335755074095732233950970414748912825063311675161893764757729926092801374834902637832237716065142594586130137879466254115643960489177299668327841916663654810141289887372505241662645441052647722533954888277454522508582278603687181779838232337939201624866157349485654705794850254255939730522927842511209325775793063329507889611283849707280534516538904219659235060846076590630060682501460874063722331098729609892968565140156657474212844602454178323383143550618350051858219070510157364875468569221104436625619648387607436491138241354024292267716199631442813847619237852280820291646435244086789123499950200830010049467987924137277098507866393605243712831614545419749383920057713566237885272110753594874793571437153556654049623613181820661783606001191183086740070176523065873589745878749315658524362266622759837257446484314825525402926133079020902247899093040729714942390280981977223804741874408777674698479405488510657954290024530139588466417925783665395636004457227152768107703605429928661528362292360727505975726082774362679045777829420149492605283878555223158160850049711487088366363269346386329408544065554701321730255168955497625266582965335300956299583216910330366963121954703996067644774438850914576041783222785892826233054525968196388166259665774180880985927616526991777305306957592673515894433466568163282563730128834786775368928874566820192872960159405441090189916436801950781823889429730597343873161569582007343736172034255870531377092707707289545515973296404343206935178977127398974744734940468105962719480315354625873715504322609810758614982380007102347388357095992745979999394854458605815227285776252544419479032403081876195729723467520000925591474751644673459638700645371783010642163749583171901492436794866063945206276789215186282206089621630383677295626007703418102836704336698127770965328272999928529776440446372684934784014870367885658807954122053443426276316268809121010647840181991036085247047621632394255354374114596994298479292168320013145220494099859249767107732019636708935509780600076670680215870400706559952220785317771939782953626022842871062190875754625082395375832341559162093261725838736586639804843878927945678746382908709033211195033977027543367595570008211488229746439471495569530254370696052580355167031497427346280806795353750581096599782749751286095232383403628400079026386139475122589909671828519708728845678009018699232803760499743239116263729619606572748577761141395463230089330069987374000348280909984788372741638230748005473982109675107738769252787643946881469776035297445566112797303346499754268527097992613328736115978787894337077285966690449556220920367553876841057412673458149813111013513113983337529948960103702763870195558235310393295950014819052613513957334372267747731204206850278381046133407994488399337467556098305778693595549672306021936335263523886744407762284845473677689757829891436258533743413962999541345241075929633051248800962653745470828129039162328384767447277729772101197783512076731030735065017761250927081984278965695633446503574617730793863958371532935003926914389642813648634395999953750518071917342869912652614821822832442543341845493048909562890521097843177335286987223727820513275996490340518016144133438373016867874898732300270109420343264490186227076464937478330809586500941910844464756521060716624316955835055111374418781043806468561563247225345599828793490059799238662784428817855795670350856130506310856138600639678238861059448713252203572943139478675754502898566649544244695995203941920114428347313841399851579804321514879264829713341435806981183245228707857351357071426340165541237664493770818279613395660940302402271136786781667473651217422139761182315851122639692806593432953538342357236545872231647451891117819864746484349537906257714737407996019726077566060522707802598669717234227886490354412375388924034949727733770308965878627548974498394046806593716907555868042893034129392736057514514563838225418560170084700886463576591241578670245625893190977971772860754679035265582214641773289605644842587758798756432194855174885128410826082472068506401962304277090430835421096587643610237749670786989693296889395249088430197301212597292993698914428903488664623016017726191741907675498655423215101198099467700026129958186863864019187887941809915233035718275539221040213613804894153919275645372022415419080357320724835466706187492455250724218083823817413084190397440131800440861792443264853446066894126178210443875684326393704563255720023605017476096456526948174671063070085740351531264322232182614638630214647100759164249239401543611281900743295877111933935504388271417932609506828350375506637217434924034361975746456443964752818785484890602632112904788985593629512505673567117580915077297214905222144627604156972532823643351535290641683342594064160730850795823884237864696477179834224869868367638064545589002391978684211978062374813957330795885292779443854779150782554796046113927804981765897313848871872931929206687499686377703976864395980099658401777255412721896007798836843631837038564255224760091438162071317659292588826178937126772939653661537754577262683403070092458465082542658411419751816086158844569622228726903925775942509170729066307451576030000731483211981834611580439634948824551947251202209499806005341170427574615467385817652076772272248006541350922132163994009524580717486055671755282021061170379337993498084951206310408458692692244389201096105683671743466773877292829776125603420910001345229335254137503583458390991553190963815770152182855366883542033937685328622479028734423500314798430020922299717840500387529916130584137389880850929445582373997775567961381211599505883948772579397385346061014392774424890002499814848737705639289083023541378227598523000677149600195480389686491327720431019224186339747060015167191644321404393823209317187136083091902336323470111316431824846459877393485031166586407030505121814753035554783807653173937320927700276492144870645392690463557672632632978907888003165439983143726004812177991976795190473918707699869116262088664515468730333510482969833949312833548759583043882957878640527639503149276430895823535470343959284555254566832829659123171555335669553131334591537063567484540197605471063933365804609162273682536255839955712036047294210743490118008703158041997742319502770691901508353054999347427511720886087338049823273851944392779487770850491367305624516956597011611312144293225435382308542971076111560172974716733501093828586605641548862935190869345141791439211850643545584412173259415012720165837756539562065975398048989493593325928163364927155978885027421945150464073213933284674698459100781396134393593236210199356658779287457412649281295367400099629330863434186218228149082332450933306089496948755997345066020568344164826654893419189221350639670069599476243263483193733401603800959360351879695537237472870531328606486904704301088918382443764150035281367520003007538858402820268631101180472282037772144036518904240435280129127620905273313414818586903603994844702417829930285225968609386338565299424511345761614439457150111551360595767468684268299927957031306454568939178870324680387816018753358621602788199862446724990003600795687172993539565440480963762160097316400846532267455139014722682725693530382366411229250001267565563635112284145568788361825865040651836478877857170172271947260342162831335543437464515793816912211344329328557268683605221253227640713860584935603915960230972245848875657621183262365126332160646449196782742458340433022511946175394395830719487371124833371505875122827310560382311341653842510216635814348254040096118124818165646296390873380999557252063755545091373288737428646281165428802858775382646526464607672736558904113618306472287414725748056808240754031127687672752334193202523753415494537813638215489963452310737554697906939013010179790343307088828890195654928529106690218730492748139282572424168187870495046206364580420523512427877959635394825358092082852222001748105203832139527093450128376404787178142301034307911195473688507247923551817891178289650041526003744181916564658830098105249601158790476141398821670036153016256605304418420776733466679782903237411515659975964735154121922051374294737396362171099134783619106014233294282638494601274462657944669528115893124972040093621147264026323133441567561024644726505847171423302550058957714349755428386932595531525863114379439751933355030895991065453485219131837921947283154228022838876392394278328735556137208220980260368671809203291870275406913851312628877261683256084044356906867298232180206949553169790501626034893873897801964013578034339814887421733729380253188873353159611483920141211691557773105103230154326686885152194195463076590950923647045422244460296499186129162833494550706381276568164640224445113857511017491676538630079833934159616176853892386508324314410072391768843618538011907495315285870747199076254673194997999577064850401593296481188561201207834960507402526138817902511981754053670468591509816726572648513564877061640062446941281758131087682529440544278495722462742729936688979142243785457403995751813844157083178061394580884806719797823512265813365426649516033117903876868233490728923317085635897792402697071975230531821811339098429674132688896991129911052818468779851550556706217652709549310031220602196402761835310301891402866036797330842089503440075773456289376954958811449594072048958289441967670596670135758609718444374801375203410482941985097144646760722043170544273393869943070143360367715005194182126868105850294347950155242337716907888759847223242814409522416759248736394482878174280090232121513994520150826074390632890647268700233378729918187017538292224808443502719498839250221884631329140759843606798107682159198175402762842733958924024504670934223915368317102526317494091228914719153938088118058135367530684763299976927061965151095405524679677386885760120081406511596935972433307122643075007104976890998067247213961628379740539786486981558495803996757983985369934398650979001070590735873360174719733048490659241513801679670003922073395549264324493458303393022895243479689514029172319332774299214338749286904572364300168066188501012547859584373522198035623507566060393493494855726628221106327351929080950095370719727818311217435253430201496651379918830700406618782005220446438667462159272940478455468185929507200082525755212334408265971001581707345153396141256817727512220692087103490946868270149822334280373592337041468094691491044638022626543440310396530626119245120565714154004557418957466039921287306727737041784895739601763878052046450340823778016906920130085090219983192451876224625952523267628925013130655429616279437938350794255059620880220228953146714473509670109889273268927316008852025974932481028437325234868216935270616192308908325852270290162308043514648969178172334892006349833840852830610551626961411188985966509542344677697482130556071341784834634227685467322124022933888457910448509287115481760882084827570111771539750793209326774121384383895096149576766118263594132696946442789342584423954557344616661582661976388305359923618564566425888188904063603032890127831725195571238620051407746123317396228376120749599268596768713717799765568022209035642774238921262407578179800933168365709657712413596575095436965955575283650748752747655666128612246327481449397948420546427554972883530089570706156495951446913553119248216037947888602452278315137973225773163932421181248686316340543098104478699723157481852026949880456376001049452149889570012068016137904026000414769149025749006408357792102154310254923558493525710078323371595836828253812777426748755575134146250580976385502824314819524953726372723503365065624370293167484758165757432258121720339980492763267327121185292381430829058483283544719660182540118979986086314832883710433526337522073426929029010649975275942341758502379254658809995306703207522166745740020609148084668349992667998536779867078859429159350987289477414366325947950055835014657574409606278982511927365198174531245059721901653731751155896883732665077480576531405512415153198910118180811959910114125707786980393626270653303777199974256821363584232512861980675017833411557218634908885672052717147597394898942523657744873470384781740614045165529551925841979074120593510061607559709270706078736485273961253412765320533590665297074629407008540252066532081625897601478258299959657656814139427556462689408389641596671909824231943070765247349049733050329425698971989356968602053287967897747238320124436969890781184233952797711824178606750212997660523440315891101755169461341854216068857279969283367285516365345155422569346889946703092524546636041510678629381645300477602776150810597490933477419300243022177872120984142917602840573468122017642059733321036479747909308238354744837366498668746469337627302438915439482235970418464169522234708418452473587274341043330672814146299812186036780691930917511792960238499787263227813871527629156797689960231256679855679555660429290498109106717876794743111944873731056202623243826801789475313920247588293057769393322683121056252679216397138401704031709391112991561774645464309497543792697879720630807073564507091859391109752558269584831824608688114974202892644916239965298286858666779099683347617709931606571844814104681629729646345989800534301425658633762975542099680577127234734580527066534644913928094094371947790918668997081713851611011837801128908931308527599652242688922727593949964793751692787319983089261996759302360666169097456078517296895341437344193649696410002129250016436770656566075052741531797574163156495406369218913811097284140817681944562213332767551971664235074446201949304307406845972093924570607152682397245887648096097059371590645181328414379833992364414479981983013753189149367550423692728050905512451102601061956074291808825657101506491333166619538914459795291308709344917946563337985081691524580329962708561498814154980268214975844078411869469555125029820844029436697830286561486585155661809546584922939324897163429081114372173817317867352394652987048471114046154839254250098230467978660955325579086587789589597710237148595743075453806445637702246785002443315099838301537528757992887859417825006496484872495854885277823474023578269718469183975176857695032813184100178860273058715742170383894608769135432547092824381947507500269432281444555236072402402754172679653941012876940926852491710518315354558360559950623973662074023241497281670451098648391948885763687545586853512499384168345975454469856296235409161362119292527246940189177886771656622622099732594589735975792664794430779084319994544828999346356042428527451208182296042340717230383576578467940789310059972073518153653895695366245519557426049203317547747045133372255040426602575684126493946030384589855568127164477493395260758703871036194271852664458882052916171470644026202412684650087233519030761000205308536439214969996536312589899357596959630011551792895597918298578771507441163426606816173015876722855234344259040456146545095219888763717792276088399452997885807464876776650049651633080225030000753370916866778008349959083818339598549257987897404093297232106045792581536697972451477351176383277215236570744849445494177438887676735812903772947406522146538938277050788091071494334658267812873006626039198769965851000135667586851888856216072875503390482924547056924455757481619991520326186208129882575318372274351223607963685531077810150803067268680056059973806773032095283710470526346469726703080424656225804455904260720213742597837155661746575371802707433216300505736935148394812505480771751711514396853615046971639364712668637815401020017176082640147067395687291279101374662895585267114090082823756560090506497743793726428889131000552118458801815386495465052193074252862920105323685302438324739712993795906209462345909649478564701256634007242767078361988704554839613935950329876467879035350933819243904758657245596438401560605640483182883491474931415307143540032010159176584843953120714325978584797358780828767544595111879021493094989272965351232186811415414596623530175911193609220911729080685466984349944178889927328140216119564289905109868036797270868094761310361605271640903605761213796618725464190995718172589899468621038699027109808518639384183597666842034158378927409417945334204496561945121080415919305429507250486346573449996272423440044975018291575361542385853176308898580227558115845046377812093579649851297141707328354137347833788945002983445457502438321682731721060808186443428199055027893297843506067551662769480439937693289964847674185846925978899246488961477996142561641047426493854717984263569020798912729810053816368918476458057674046899190469690536344200560595315110600683310541834317562738985665077345447692382501172893541464922849891749779103689065836576469410226035350564668786409724063414480290358656695286204885916279627787967803372356046766783509964551518575662588508047270545977935770320583957517445568486663220492746043620294202347554351988012245826551695650774320513903618054875273361525676581449155325541712126581388312244218447169796267655807335868822310600883363580788393631782557637466757970586705776912545344101368556265242986139973697429376721274396858683671335338961344502588106541314043567553508946706030437065960728664763748966147626642246385793140626413668593190076756886107772228624169843760478453859927038040698452088989384388844158700080613433933001739039106444212459343159293058744327033702326406669094302311540793070330840959627281015822881030587554008428612525935712189002580740081266818379417963978316339888557183960355975381688019315627475386047784513515324008102855407986506140030760239849741036458160822977418120670975563739741692121680918783184220969888811192754064714787598460593286230619606339668912999045399505647164646006037254414955765240835523728981282894823887320090127013708967787977617108522145336003149977695271570911404487130256912989906425230740374574940286313496302340792607564948484992243291380701217691118825733852320797812376951715147375237833017049979252605029943710431667120102839796150722402203726110614323378656269299536805328950179382876493786400972174664268435819495225632549174044416876573056846852421525246126678521998836264063421836881718392014919149367158969964074096872053207590151522296324622735747215319591261862339221361076224419536001358228372521109043256491929514278360317663426998495289986069427096151717798391914841669502189949694848473891440674064714197711771004991321858015305083707006021305420679122363943842583635662069785975435186083946198623001660015750918305908363453899636312245966865631283746632876366664540909122612755775289585756233142760901668224503429360648036340232839499716046814976563484399775932925939991932179921111802170943814624178648763307327874145310994761366561985155518629446766484615730392042115510666194018675319097472802077016431334448912973024657310753075324059854170558737835704189081364691492385184937716712095565139157016812820186351417748472599230381779534379496062763989219620907391352739602888914404985870481969656581185433199066965299456440384225497735546638759572626322112627770149362517021746438522255593941727521689980852684477158700376680286991272527119396734671985826320084643248923796959343675144566351276871445392811567246571079708775919518384787695501927605754284458296971297041685371693657910975115833229344503706404360205888726331972792016834220527945804452246416728044630076797173630977069895105542510739914699811413491478131525901773109262827762830074365164517792375622169215323603157115107901027862193870101010601619055622563041152610297219807197514511341912018092465492235599759518802483961235054657160483893571979719844794654154159529013709564733599157322378230485753800530069907499124375921958389475844454568260329479194838758410308622929704653508020612527651720332138819717150564355956413052435200337200531625587433211548439878864411580812893503803543988967587641279446367323274430258039407937042743711683449862426535479382535145807316171595551349804072647736189526053637322967707742515298953490517757224199877481895578931557443954140060204565320835488102269832711836232881884655240230606117212296374645389203591767993758638250744433108452213546902893803128536049943294644184766603740794537879297204625589443560213678869293689508022688369272618189405530652902989220380071839116665482122332024410338682012919162754945579070626048130709172698222376961503093152154689996748270447163459573559483550598290167828517683064365914552209043065810433415816421598566180930671936541312400708397964967563916827457247371346245795920653111963546616123817762541696517821672528327688501239145561942211472920452958944580533282299429833687920668691571852116421237636424111722465724629896017675354678615898620635245437635287038737509711997599723316696414136717530367793269797924699238353088778737699674139326428122300237403972782737237067648223351100772042149003815977493791860315445866066898342537490101773076068984045409514533080496660048538058482808738119814644838812775788762077368135481229146756458783969678977092159217991609942782466325047760519404607371549249702831393426716350039917326644060040867420276795576953315160659617503500438881047263301313256522503176066142044027679056882960643474552750630761195333743198262735049878050600542592168266484139730826708824145708407677573735354422926008723658649832661221038417237954718828281195735161721476433886703723124140198441906406210171710228121216931116606318726207941069645672950104621937448940774025783971160522405911905275108118010644625530764606342266412401715540588296998038861911087625419389663733744534307843782152411784915872517236832297959845936099314100995362532198224491684945887115941569184041886893831865920420854651933257531898766880551076043904085151561578396486961859511889031344831388367553912609457189376914845175442019295579189879343970434408335450674798286230783639601621110711989356328623944184830465241946752130255739847827825052219741792616072286394813040047500711199495604089070876849066607770875704238673340876089883643246087854142458525394846398307753496782046920527609623832739201901739375004012298845615655385890796452128931759944022167148815934753169399172543622694118868061429129680474251617589705424138976629567918768129352295799392277215130707280638028669466334992233965167014075902667942631511261805808888165628230878517162391059156820028830086404439737131513525070615001977003985346604231321853360077813413845188019455290465769990289505742864103423664058364970337246400888857758792292604532040946177636958590931685845268946207234941213983268492932893765794401595610876676902000660610052197505316609433659807798683220192434372553105396622193308446220084451675590461211200900790565963819412203397781193252122264867602493535858236727419153911827751562630857735737282949713147837310019295959636817890430420180562850493545519960676048153265392223654089520323794312960472935802549633455676373464167038885533855858282091255544086068336663358970649202437736990690199027283809744931321998787311554443717360635800178668280317967959551247201565868109756294587033353289742746092415739488695848254547425692089233026432952224958288030522877678647602297379314958087896153131799760153148861380263939560629804995070290835279672252339535814300668675591407008623861372873568413542388622706622582606522448307191940825729575420716947486251605966850476623980784240340115166911419765477830085937175124790289472763728262114696366196471208611679185297409631683941402581067493463096234661100160457531450334747812224341509857740989277877816773751720498931181089643686318809164918725005235010938921650139890221179613458038217850002471414102984102500486297478644135004773625746953193132547304891029889191205896748903713625078375511778983925677847524295502432404170695100740828166891890675577208931384245721318858690433197516954354634506343450521240097906112680612574243684637391567071250373046737238327614576083313366216118550964921655952621582713538766902801499688742414582763258966343098365153083266600934041887611394916290203388527368309929817606527276690169380066202326143041152681650511945501787853747906380170202688141134345538186423474279520634833919384106431416295531620753115849241762029063975591568966900589533659362507621538155432556462137783901873279140339501485559030195358247263283842314192829726491799411560025831098705250763161501215737600500439384583745753858631458237868217360709972756016959976479344450348999786823529274439026406012864535048167136376947513043461407716099571357448922977000365923593161049371963605662221537469593137209055567859452989046238131938586042135047430118515774797835059664600844202366011197101351210340121896698240891482084523793284301170907688098098737475689347598442967992171530014936483653979028122581971000213734218521160374094114111375314457887776448549189748612274277731264797309034744506396104458592537887867964829661062380248596033269800330393585661741638359716826054861622095533383181919740358740812371608679976453846546805090415332982789950527048934385153145644810547376164661111073773515323947370350493672207696775560698121872390912010122818120732231776756518293269425310931287362981232653343299610680738395990985068728131320850575806561863492811054812860811825350760002089142675978401480761850822165614304493465270198814338902297803969607984258249109410518591527505592209420325988750011540384958777470897521961933135006584087298952274224445335657737495865452325441919734868062124107851855029940957637215775967699675975729255199371450922473540743231689855471179354388895795472649671785691895008118621423633982926512526813292400056185823463294253524157319672106552002268940143566661156122845707735039582329977199801578380390990538780027745815866368760020569769612649059140527912584581887724570763594275787616003249678525794439963087902542050108141743789657768519070478366583040641223389283248832328163006656324497793302259517806008160810901763167586301498731379474384459163543056527636444379862514125828690505039584947614237640232731963233705089026127607188753198332824688896975870855412950057409157137283405720902781102365295535883588834161600790885093212873985386778824953393368504733856970114441401139210784291609620109480426915400139314042658207612524570685287503521685727528328837776230335379828365795132818531995182597495424660378742032333783310638316640314589172118176541371569680090911143282653797876453307161313658614131999708718802965986404183617191858436209924795892916855488573734704974963586720681458586290371248342864641902340372207541418570295785268141547006583317095691233909382498576282637381178887580297988446998206318665984912697633004224645818351346683054458262347607923748912907614297862551896056244272739698496550337879585479038341358274747348159987341557543898565961811634636356275486006204833369032771704540154542674800505601906321505085470660518659893156309918507765657002829798324021035532629720962739861085992240014863777681546663500630529132372382232635223796291175315438559229325785625333955282518168517194020866160037541427772213506662483769281606355922614827982379146405443167010452827055992206205179692935696671452296529857649871472313206062609426931760312616344351066877506547333919500663981913015834092067451696353085639663680250632415786361571821316252934532791284399403584464507314124074205857940972012542684491876811625530032183588929554965951722654334323364577530538896373121576918983601486827551717220434759364227949444716124840015730783998610590148794787150241763940193877258827111368079455080367976753921257793873476944811672804591117021585536043803564034846443655082131966295429275914602493163392605334952755961238098211482923045881017401344330016785911718448534244428691192018958858954513190372649331228787103409932193827439146152477932835192081514921226534078567724205354310380000564566854503607051513930041155026535963857069776776796423080082968586435885963304808846620079601163378526578982419063401454073882687024799175156546563715278776015250279160614445511450004785334462982871097244182730167004420038601635175276528320387772108677334667982034995801146714420876801607960539457986991609034809342731118194878742847790232711731957149741728390166313976465968214258971649694018135160519643713458337545202949679493940278304618817449337352140623706437817329064172501352781772683874548685258940729369409939644089296851853473895728702610911309805631953126828332997787809237518062472110611842675835241757042258478897165454751729063180933562288702810911066543735524455084486917554578777130520064595146097802367233834739074516373144668966530434674559692373347190671094856670232813240056847311933741687492573813660866635976771525414227779507026911870285317965129943473469364894574585646054066671321488738073721043648937416047322504250314464505522194804892862231251921426173348918855902654919436950527699697741658876693860187985482161404757543839843797457647405865826346309175936012626240842200754903200567364833747252407626639502099246579717673462204307140097420298953212419342245117350517298314109242257656598224197572138667527746530065519124811957883290953837572523305052611371259770737997892433504209311360308134081081977902900411097899373312188389024795996908500432816932622484841669480642599972599465265559173407434589765352460743702459507492282032024390787370323035883579287122057200442254120523946385126324342070204690080649484338308938220838100733336582134048916820227165551782099917615095996689637549249569270997373032956200513790920826368517286692289918343403518279663603046546683983666336367701826739101777153963795139878242308064670681669285751785116126493306653144764887882048138264277231072160140118455780020574937578914494243755698031454528992427563370173046361474954515472933880752810216884339408687250070194924585027719480458851009915813199104307199180531976285454850781271567857168243940649457954621118705586194548646773055561929960507363005947882459484014973335753109803834708031330720258604072541683773325745486305813319248196295940075968587606664681346237045797256293915233309897852920092828630787307888563347444967542943263556191241576671389655974903298287627747256265728601251908239173036737675569153792529059022002490767020831167383136766601284649368877415155619481120799124042560436331509636812209133541055910408622017327379576547186638750049432563173093407587722546036725583342710785126020195581208060401633412996496248211023571383644904896173009774591819658558427452455818010983874490472875053497110646943182836928436312424088391002663346045519556563285449327406529598478109690034989459064051613697976859369176172320027660196914108838672038579121241824023510749839600898908224654931303058263481670163573744455621022913021724552381641886768350764404398063357979089533101864257498363567590544391026984400428007855848446210057907852778896356742459478774249655440441184168812629725669452413414781627663334463017836103473758231555603357110458054039309587631632588581463299668310017448044337804248362380081008275610672690320938092608228548561149433228883658605279295080237125562980007318592777257294066468784410634612401444136707761998659770930698026990522042904285035348526231062360863925375772253335895972599292654334172547113985203315357005499240415622159304535494991044298166145009178542144677228088472854847899740517002008425990405625218933829247119042363893522811796025686081465244538256639796124292986242522708504848786435836595163733312799845539309295967159401979492260131829943245133224100969360420692159131987512307779116124950404175014135731820276717323768278150092210765294820643312409584702460243522291068624296121531144490018301535413671590842110378118627226294022989906894949713090290221658809425463185081785027948449976174079214907020520455809250204881559407045230029939455818666642094585962514403366610083945794972489036099542649803724965877148918488944084073472655755573851128691118439741549911674205691528591491442207319639387624903292797002200517360393849968948202181729353328432047631277675225817900254290927243473071186381003918421185416561824989138042217955895712464328226882445850517427244243150708419329421191215867135229953041790762811419698272179423164796764451432368619652661077038738828671914420671675502851007965479550634194206775727088914601477360879365666692752010075695735042955149223760078219192866693790678649182397799012887022465242764484881997995840301806058483433905857005153931422631981290522209865206823583242037222437979682040045831545447270227871791746451555613194751748510240187399196920492672566506283125158368562576670969522840910667919237169735452237279886994311049560410285067908288266062061885693638643531162249911548132635644219476006506891121953623333281318138125581078075405101131829961361687731990129923968638659546506889476308188479223720278121128428126253921696425292097838557483764826268059017526944332505432999172468816602337366480571019712641295003736049623433491663838092359351167491783613451828528867376115848049173185842867146063498548513588834090352274821818309159503523804749835564186907388983784575716971825047164181643414713985558701593715944011866086708509680727336165066421958032348412903810337078196493934777202833201572661868017009357301951017276030828279647671750165258539316189142234880162604483447302989057180609792466371662495084422197259859136304353271892586837179714858104632584297808371164486131916630129308718008843897454324451094765662963062761067241037827168556878397384780787399482258099605477328818258536233566425230061797833458385958455092500203018612502113230094681621858614324818535333585725070858509236009764895485405059517130285450091314270685925729433770303773394211679847667925418452578825861288157545103150006366417163449132458210830456296930545919633848277473252848031537943093906463092855920275182313282310959924053539605137681003560036092712617272602033889026415135983829360827811877238910383269318082846004134392607807693367777706207953834118354748188203061586909017534669174090713639088602949684119949929406711356604840542967750763013050762067252193138274909065533517957607405208839221681479394794743800518375215829426894579355601065424953728516155811264000166725768614572597737214561434792112150739644138481784417236253490471651154406249082370303682397206933182477160921980702647204941145547668019912648678389593495394036155729405348793610297201585303278794140260103562163544339805957173754010010330082007026804098848810841809402217267112384665417533146498058039016398259506553196242056298906331535774011271618318765071330928475215946451544740602178398988748785310686345741284414550289487441355424272769935724043663352229000538323246760763731571776024062716201408642918549081626130042415842182687232118094128463559601814059674212374054062480830004363754733085184081191100502123908721138594796074546621906765069182126913883110520576391137272397875341961816372157815753847208935444965594609923108614762840587239812536774909012964161511093559844110152992292918373629984213637903823401959982480894576257567481082705256193944100672573945709241400920642182464618138920420204544021791094034956748704450506995903328423713128031996765585880862887349689415957108374143987099029047790315596122757197002369431504708955752117430547097249719801769331700195654891493835928926872254563077909942417694532505681136089299523142747448251613903687995088816045548359392941924831818621909804582693004611638824232316984560124386788180451161815954517315487870978852868149631833476024508505839131041934887295570632394031899937867404934153072312729168811952169150737864395764633129353403846906145654336773603487957839726749929723480916362768209796060837705446269934018340471846845097754642187035873186661235597028200118615123390061571883115492327982533165225090830129085974946470485219107974046071414331511395322000559139047437750852660679528390720440863041467077110495656774250782904389780110474087162314451360528131972388055565410013093387991041204348449659107293125752514581024193952511243018758668929164088539936619515452337535874686822807595940615510547925410241522092768554081896993970596255656564440436433701731792206522834229983151550234225266850078516336918391129929631963432822089475874567552819898222812625488282069153338639799993068821185805010877181166082611667149898644788452000644006532697683236319370571812668477472655752418194921469824901296672798840735954938613773239417593541707669596883918994398319674206595498381253718671533313604836365124617305676864962536327906627502288833844966910532358851740403388097544767279325982132899331108825036676978635338122254825263458880336272655583719725185068894090940945858373503353562416858632238548398519362776453857914425807957775487494250554517160569475782950225869862101843260014183894964620874464359276789928811096791330185726962278863638072335581624046711722955422905773491736664036458791609208901893373091302828785650597284715346025661162938448593865221117247782704166412945375609172925132821586732205464163918312031363694846581427142540606116925859178997630285216438989424340489645743351590889855093246156443801297197318723713656839977535455935288326903480886921861147536785727703625102957852351704673543102654783187409848337840959225684055918944075787669064471072986539238982567994692128559085132493270129078004017617202862006222699107119758418831737382850937211089235028576468599993979589228391541953610601030623355993577286757867037718031414433531770555661849947047329418429960848039934055331033351544985198698917569453209092003832313821509773957514306648277690630712841017039017559537461464536012590272392078099389094453872113960176262347123133887779012457220416539295273883136718049902096216927393607163861702783802666673649644477126563763776183907342690217737047895792674529430678618260387493923660609840350655931112848821772612917335035527161034626476716814529304262543374906516647302122081765169421598084399093697901117992475222007290389266159442367319584538112968228498276413472150805064842384751410816797937768564321007421374857501315166272914412675444560026357580929142460440798244885780671958981206834844777519913374154665373339334877104561322108485135158650037974560823324967346001713459406549345564094972035619631136442372836010623650782431608058734443925541570392212622151442035539832543448875432408021309709297134579283492964469473891187866997113679188170712923664946285273466814863558303759036415785204773958739997918792982424132199546474685753207837272157075528365027679665763582865041766786006108521107503526678045263735988630298803624467729696249773201523771603517698951605885027701701139834233791057621070658790509231931714634127086126397324780113357823043802391232161427325659304595560171392778919746082735413357013708953879969787944136575885759466096187139193730260716690023868124112414687619780405707554963272519099659634579881054395578735359481721093174270194563170540873541430014175163385909587959877597771362613667745251044343159342092122386572218259833339906190825994977415427742203724155959308141490846282712098951242469021039277669169874103906645786982937255978764344890905767359318588347645748666520015131382324940718726386719609745935144985004754746959595960884594613537481036796296776357741717246261120784574733702100821224415972069280317857206825685249159102075000733559277969519757109211363881667890554537926799187395606359358765518402205056147952829806213804642156926289757427811203424958649840200699591580736018218082915514672032652079314923310603078073260984141196480155508308913856160968421479393888347432119625316570098179122115062540538270168234217999973671745567372083541731594562245354714499391663076097888455242172797451285506627345902604397302914349637672210889337768807335548084127290464179834922625328137603394998799927182863695150912193294388398689140239852776910656626926650509108471083641574018079436927442430094396149306074648605258587931745285740884486873800067613341669398180431397655720405934021857667507122109029706656624511996400454607056170834747698218912466775628910616317935488762716692135375739316696563799693386983400303882222411904057375354725990290080656334941921071472701867070897914396939866633809152410039473224643734176348419779593469398457390004382614533751753987148992249262413043013296575880591258098290320066455935056064436491146999073659880005246455875822071173792232056674903609387805346803758147934558228566774595995452417419492077762706947487937250153127201500881248491082325347418457857764840259479484691846476319183073238591418584627073729803024263074175457889253807463456809634072376687212865831043666398413442860782411676534339758944567488522473210091092723829107333457155893652520286071673073531793209255044796622744514276055942170381551190824063797362476879639849067282137471544072638409827762783012774118085994385420687588588558460239715898645394557694064675983846268067176657667858673476137879047403158191603182240072085550464456874136743189143426183972491911708052251276127768990840730414120089388965340555164141003663988705543413008682644025242508607011465069656756668224566368765616058772402160292413205337300023447043778324534147063527813550795458890845913977666330593903945768031090476738818359532239493123640907419690496401130687636427191057645318316907403060559955161130968533175071387100510357890761631958427307519167890999665668602538937756120119074478833600209566249084294489893546220566014015310917991825971828379987839314161186572574149918573262547897600981268495368040865002288682376917095553330140191343389827507974481005374717750953319407850323333807276433833544115890493218886482247792576829621806706340047804840357582268052629163040534501632207521478758178436005430484628554095975608894786495565658655284802289220508883551255660769585006809947450149408383698821661642059048604510987421600169253110977902974815342797339181831154107881147024921563869646690953708577018267692033019609616214922422561402857636297890847226413740257949491418140359126296019465440964368823863786597080993982589079415746663190153240275051380487579424760051963387479983711483452706551848491920550765013329074117471175857644872506835277144310515463457965584078391896422272021650090513263893837245074470444617402266831260569994036614437736963287762825306339231499091539456940303895842711570084646628396709165000555184112843653272158876321743293441717631762947233317130718414986627439530413176014571574886934428177363778562328800576157652936010025340739081206146753752081834794766208181272946948316995022101611404495883288190150524106839134315191792653719299054847354593143969068724675410019259569190851754433390412040082857874864572342792979003408356148554179532354373335230995227943233670522208876862536798395677577418918958712972769403855928695973883515315725354899000360718245942149760980407975311894767997901199560248395629449774954596125339739269753987837143330439030075883848920917951689735676012231257405276303163084332888538320968101214249780731201203947061174874763219773957327425873088893266351983290032880793123706870736038900946797121947434330822949154237446270142178653418177660226057484025732675065512310506453169139024236014683722171604959574931478371158124056259763028881467055379142759558651118441758493849967609984098844037161496217214581521907090577900252979591567623007095772198228048396634966565068681017514047417974001673346049836225103021430054126998730914076589277618901535765896395684417093604126549111037776189362923822482842717053457404687009271798357715541212411238385051834520991187059081287448171989104175797313030226649717637695042188058808644196831971067422176038993765208098665837094257914360164211579600878638749362723913255931584688882219269045123938023310590838436552535843770984382890402811869217488359072055674814862432761562767363608679429914372840749261292624398819776575639410761583079888082139972557226285072724846056331187557133595301177210127452195962265879786795449440545234346742174816413614800701084327222741601887427334220353290875033786231307969343277623233277219735635304369675130450764493981016503752444174067315394749658697340998747767792936346016324330241373048443454465853024114514184543433675241093684525362100322499661128912099037251857555203799383987676556107788032299016407457515371000584191600523787162824227156318348525549601943766697109666226202083169423529866327699950249578548102798431806267478805197657227639106423313402316410147126212139056014692120527094670264736029380477619310238047414437505231291725784390738943726873679743902149492356297577559313133800235432139073633251650818983932443869494027115611750247633433922111568552926810463301942435675721102628257163989928471910285924886152721767709532675767287679012755438113794701288471516449474129890743785977949174166355267882448095912358132780783518749784575056160372923932600006444008245183533918812645695005431708489546482485550293296057642722869318888109694124656853808985251438158818178944816382666032946845042741045654463693737798641925750365569889210575606603641951409491150254882292740461128867156298956050300341491776405278205832341395503373513880016192123376366419356302935047648353495832987955418420048854899680420066968551300806064375883950298249233204810747970495503355734320889030737170776848047343962319092625727975436580739546649105446649876844872341827148713184703078383657763772568339053182355581258075887875723766740147754584611514285118004752746869812396387040503943080979358170710047606463135431250087975701413721735367139197469669330827091688459877166358957788249827882125614519347672945741091924654386865044519240995025354221376121294628660517598186683549324118622225559511320297829849689621582771635166363901873736428839535946670822389065798381209830424436364019182541491640252391553524835761117853362275329150724190521037288931340085747153686179671917944742921247410475683676544814301039972053175482353843613849659615745571612546909770785844498884997691661633893841769390351332750322616897987317207984995430151817912346265145474520441250682553284177759078909117367156618533579363253556438484209253486844873553699901143666313943022911318930842802688393781032116059212506034942987537204792632294749088811897604453740617471054398684342598061912038729964837057762336479871900218961117483402966180831590446748990245615543828441899180621078061217059080718923459829235998957831160870370853438994939668960965158121666185924688157383322242933750243357639558807173250385028205385202098737312725921231631304171436052048321573771769197078845696769050884180849267779090571879396546979062719615687925688662384059101664786920657399736511704572337954991365122862489734754748221473145613300053133369575781931302889169686997953037150526033970870551362524600752785424775669318125510547078164938293243022736320333690062871703855629945614163160930230174075267464256784329873432475400874419635464553728184069917611516867353588723153535721815619856106220322800717366877830511157463020259540498705028804895902705161332249930686522403154712623104788829180564800432780613349491132578090757425672579083742195685660726692388284163533251360284731180080187238251819044168224416883437797262285048984228626829370905018455442540661276762379181913424202522255576771513761566030240801864541517377970638145037120208515487414455134427252093000191595474012576495938065833878696649811114816464605677268119055825749531443293027871381070160224180141332168144921297079066860392654859339390668920029580514104570851159899172163681474389006806377277410828302488808815642124204985169803339580973823914616589951068865882618370608555259047953539169487478009368455829881073861493592024725012535879065655184170366055547420418990101633474883704106332862730180461869796501761267321644939601354796162197287380342854834296551491035826090816877314863906756041774630066138334019958564003662531218010934309654013088650852359559822793185080632326661941213978341880053567149014702178307514864078596667987954183649686955630496297101015772119032616268096988015373207070568723065779999882924239948763601005830948281650708560687346049691656644821186924829828139300351200686670307560308675035909252298187530239896196045881121112631229378194862905329937065767329985015354962156402502791441181495175283167362388811227737289662420919539586887553938837225752325552758613007365955615436962139382881286421996086612107850989255140603500668882415544067311586110751529560131025238533808443742202496407130915418721964133052272368973182342391882910512492213537380251120155128355311857699639023885650896075362324057046452688781793075009542468711882387395035623335774506207959207455601048809554753555389823275317635201051583232756631515400749606001344716518117725946954785214233690356236873099700661167878617451231255505505231144795619542435617186138203202954830864848464573268804135452104877993778905175399290199341914375544920845060141950068123189642105790230260918214500571318712459135165170115408674765574813360029671284178337261766011583472073992309537279770360910963447678544607670230895764934885874171505548335206730458934606226806010997831250332382191319598406660212999382296981903793994133531087921924570642561735912838968582423410271003511599765082836266690162217146084816672409938451078560446126813729043228496150746291026142463762677669836057607924936890095307423213831698250465901075080248426895340920462433464041740394409137801893684486839109706622779300700116837122925295682319620633108421284372740949159853222923140887820422756369873717136949154647269931660518661049091971133271696000624992480104342893897141269871880978273653062414408911861800186058056609532918552510029794515480459287855861776904342347421118367454930478044474925411005462566913653166718293059728857939605429047634338630499872858053847615357563635414723609392024639090397707309010350344840010427408843135419907440996899577346882438439711124823983803620444393797163454158092229509036397200665342529313068250219211053128271649129260625590369680913234676204719400344538850514340091440759244528274706155225519853101658447818386770197707399715295251797080237922237959074812617030177444949238657865679373936851116119792817547260048309706860583266500963582720692405953429345295187280208339349377387890235417425031919641314455531074868351176416559255922991487345836191930133798519262686085267522039340661580518959807961453078417701574187741879326042447484465751278205921446356930977842965974592312006708440779347990641055669083770599192522835711864429570642368462691286680274734899057481390251565982376113490066856461525969927835906673578236754494030524842803711424457471311801257364919851740587945882530833287327390320439079860574243924676046889244058377814204217997594764725837569213758377632654038000404507850443700145828976263647669805998067771588808867512390401865504807087905463297011977116819262779243937980793276654205514565296278999292856895984452764502299385992701463168625392997457912777125398272170854523334423755859002383013170953871841560995729071866627015984438613502762326410649945126291595118971865436461491792350725550110533315041182622221453527229606176828788927547508517601230663809910086610346753431049707328314545113439381484691529012953765829050657424097652069154495251912216432926421544471576689095101539679885336373581914383901249274191204453840368835862503737468705147632807410508137838283570401646034193664581134077425025837901018919902123745394290570889941933861076553501262662945314207092751983102797025180821355671829907474822919855573523106569893228132258319011786642862413000321382579481113308695720806792009002980307714775234841955919973635802226183070187673487543568697876661892059496569752396751977912762555850509739160071148406822092970927411081542111948483842264033375097882109240625930471044618250131653831228477893618152543803587212215376500402663306490972648650265946546992761395681847466347513897208349753634655614632961651260771642561511086765531989541376804881448863143617851425513248402458535927992260771888572211503262288206135358333252350512675752549295615102598936501641403164805330396975742041749346833760209578424128770871231265326606732237853141985868316597874172345525041052335831667283474359487908195632505098472427566610778441584124610501888419273848695504114015758041914147450612652078250077462549118978027961773697640317894990768172430446874984689922392712448249781732038209827870685678292549518610618648835513553081203424148019006437509179273070135517497226308044626409011213182279641293713588997953764484232471434181421476494523660464092689646267763965154579371560369247694662680095711411362454252282882689054990030186908153571490609883022949934378252192436113487172318454429371856293090527187715211640839225683687697347407111753822384290815319905628297065409137338473186085459270517847201479491668663303763277373372413285002609854700083039545084612236492201055713229018869281029509301875064444948935415279537217492885474864425578958661621387726185404463318372169175058489905612330222955800169644935467031997009743680288441318855449782242232027042470469706900671257038207923928811162360542518002756224970199541259327513466273547284273781407248425452917784558849760848459977586848464961745567657325995484043301471837314369596629341348497989665728224213568525341602454345291684877356201757898931291931293168306497224395182830150009968385030540017694343922561387317360729455543615521868170810693505947687037827285158145501352517661367969331540788901044047054556784796797637318620308120066649072014731401237762282499356137461613581559684351194607225517988036837065784434661066488658115547943330705908879815881020340506665647498870799988099703407922839111111616069733057814735044962178930599671923913559305788189206795258056652677773503627397130959328386994488245359010159674439010023369319284761441424579772068481814126643425997459936635776619043995689311642183377823811943267665502739792495759046245165678946494376351751106204178668035430480323704837324344957455158442124752834051823285233718528728054895508358805177045638719344361709275891931291911644705380685372916227949406027008268092781025952944196717656046051753570335111457519258620262193443813452464447019575639465481202837737292874380459830826955106789459078934303494063986204885424393397491036627933753115346363684124900781987125560749151461237526348284120058880488821063758206551272964624902115147713185081849642314246561472410420618306117285673313925267675198922828592932246425771697417499716421282937522600136664309139515710935455999368460857046308050188990940365282327559410541053445008009365030579703302038232586599778974181886585323643304395253992870153692651745504030356150097600499354308605179795116376592945701497778972666110074551247781405669939444116089806764587789087264797553912092626664328986236289429242112971239858467303204698539880989705586933296376793161434526212721363071028325542994097782970914587442904669486704286741803759177378171150746717127385097065884584198640435401947627959804825576312374221064589123192898895562913260102776966418825844172088316772401790164412775027425787554197291058534244616815018381227806941894767482971135264833941005612793512394993089152936736112501497320937425345844721179538610039146934099821940489823633015015600814979139594697764235716755411275827284061060563891105287328125410431228239749725810186629427088320892319225106067589027011127053465942321912277151189342095296816660774388717173132695641979218187024330379360473756739072609060885481091872033921528172910338349281200299681392812662621562548618066402924165442300032377957305547891080536177110977537563632863043667603923539402694651816975972963965896009037535458131825560326430419528198899319671935711086235391401930447827353314724091270076853300342285167487668646890319348559258119769910816119658600925877533243450066858088135792292042090551100333228761811193045455048771237292622130725614456658152791468510749236916063276935209713205375721195471612364276219102586826513477956415580221993053305682249261507966880459771728091720437518590689177665503707875601084130264097378219757425335370664430078910349402117085742956937720855076248377439226075018663912160635090601182606496900660567679899333980276203956156725217468592022341532386084695102234013553359032707784777991790788766090006197159676335342512959246453016647569630429925623667133430629519942942976138621571545644576321551375494371020252720423199124431029014169517038953112333365662199205363512797778670605605546349399436997476564877432146518481600461382084034034296240759372271071078707297674546016417555771966060394097267205097459131584506934183133451080873917907473150855204065057180997739533622082789588133285583245314803595691296323440882746896014875823691304020435281896066905762234083785790658788960926943503094239911593360456569318357519976779060361713374131213058114236715205253517700490616639110491477319597300627457990128200438784820386324210285103309839839288261633955030320528246048684412978981296710090561323568383831034746909988127712774549690003888524177945706733027937326400591937124870890802952780211878959093337266047838873381128347448974781325246684901007724952464447988835928887174792028638200710984847332986526588853450033987406562757027785513145413719608628591267325976631690540542444142966481788033759288936838563734857268037771496845201767443304800703366772432257976773717902729119751522260196888132950129840199367271729384464150514480617384115259959373465952731728450223776650961047704785452634691115929681082214582844543964762805431335884614244429668147604633828577977676169260804623111778870507869879630114021119369135161118409653383148931712991568291667881353838205314506866538039047475005647019337078923347783692889937240233868169225766371447477542797727859077657595350947647749943229267686177732941905833273406713912686507872066540560793784075487262682189357360995880192706697195432335640333385496053721322154735609767502336212842392987773197673743925655699789696163024099204101205242066197551974001111205819715783512863812884493554313338428666800493914673178891415838954224705964779847818321479515030868621567461943161243774642820232999423778727386112078854492016847926814732713946342776258033438182612363008039875278130791079116705702752790922543094231518026442957938607997525751006976737110669161993637125833494671410463231929336775051503952806023653752808838987744822955402125515757302280121481633882418816709993248820039579074344782381644678470582353606207367317691974305740590080513010945909068885822700841603290421806285560019248760963349144540616400923459740344347021309084423572911892697744389840495095566335364799988272148708576300202475279560872616612994653264797688275324049597396377571256825915377165548739249905119607079524744423733631603816201904710807467363797648876495084721848768468922712395284754856798815371773982577737941290804972739514379981370263157497355354502347184969022048954334677886874443172478466544417988752321156541395963744013664728404533308153998572501407427963513226965134855595493410377827748032076640285870502023526182976588866921314735151159574563609213066739772382865443084915926768205732396259406854471854875338263679198671345874214921381430848758654963898360615051624425428957281239413042766556972737879506892096813514160027253169697743820704383558468020940258545009241264321544816548817934918927605170243750870864731335184489761210432811990688453355095591726846978693518911272060158767330459350497072515636395510970595197183288869355158017438560039222914528377038850580107368549838442276096233553045990205288488073973213115890740275921275159133311023941522414926467804157604058654513970485514523620462856847031846951902273749508955580092909218518810162894550427719625470251281256865567000061261435430341121077890747692510244168409620872893493638224927804758441035490723150833554633314941700575230291369851113763195934806231331241778292723271389397347662630462263960741496020456608153383197328624076790901403473948351024478040019705052497888907101600923505469823959542684883585971324017875486492864009104256555567660540451566546654702476209820308372016713507737526213714574197389944094168841612195291499782425603895864368568884701540035522181023177674035675361293430982627865932274798716111804073635125188926349472056223312000158922491725548168528180220679442075643236790078525570607525102420350423022277420132967362331008139744952112992298097515770808134099899899976179594987960302552732362078195847625510691237848994060443882191437950999328729563131486192726894549741566003491125408247277674484869137598339642126567592782677819768067494982737429050152498734581044796480453745478916055371219653437175806818078827537012437919147427990975353567970920455058363567339208952436599154506475923600263111077416422741061108572358246452280558669538101439339972100688667700578557260578315315387346020244896581039471807387743643415666809504596254923748099535896655641207193011855779416389764577849145793001019316462056744407221850992015437085695777312167961655493496592157546140906919258073650178158851952940341706832193481580656971723683810882355010490467112418428103762444245578201231007524435306954722011187233473192772116502543988553099800746923313790680320814784815701022179579976591415056451491681649054247833747246507372867382815549661494283062840084490415844768016491127592707644373428676337062145797955114220321634411647178931987560625332422790352554202150363370330560106016765588122571117051782071653371715277859869088197373155312492536107262434655388054265196016779830196518150417114932621730575039772711542993573114420356837613942108344380523571041370387719641763037512059569981848756803981555396163230193282250819869150736570615988450316444739130806028978187564117967904267059914563590256029577279803680610820720585104160839886242340472900199967729789817077302773849684862503587435390879178440519706298247681523114544912794711853487295763582845058822341005422026775958319156893152717036773060496372352759766611900826609371343296240516648212883571135829207111404676444704899366735898398729945202487068076042115863329532833222865733770202252994947241490587135846731909707212129775729629163364125036595763528893743777099258068218506351759200474376290352749608012328328926956979013586613782381557861914504266333351194101141668204722127469692323640729282472277179841087104432151142627195157267682648000337371198807326290001854870231609374846168309445046620919563093951044196783381110223298576434947545341025382333034347274521525519241784973634296421910574924772855747567635686340619237553816637516064582707026997457922046309595264316867189276941934930044464200131395691384592843185116425242553679701883071845963181900846699528957425116955578776767393435807506107972020367805795754544808063377357186512118497512332627595930977918232855471422994411407058464968249994991445056840361700094922669993425390437996684494919283864040669454954958622851173639953600479394206299813106298443929131510268774848104236849152373201784096612081759008817844535741751300252135975951551914874474695112797455227872208112351937704023851968605709014992065014755388887963561353703459976822738121372040566761854381871763929873963825749655719570258141028257606251532811564063254349578663831441715508941137340440002031947705932754895062666918455417525027004100439905905963103392751060155148871670687655741039005829332214235973149137949199238540044341079378118439824775860808361972168887299287977010367584183319196147074660507906740837159416174673488595723686891632866152824932029411037885269008135964397411609160696410032089388662299986256037455107059215906586074254289701960427512274603991101772488818347062474639672438485528817514558547890374760996683869149902266574939457829518958860434093380671921445734756858811596293556565078406639009751956728381993939029253534141768496179744797945742946275961249444185431266840098725817727687818833345266009452827551763019429524185101159603417275638398821213473764797627044747663031456313736024141304079289364153138858064616388670168225669545258073546404655759593461419249141895526776928721728677295720214774708821841704065277487283065859145659769091645588954147159250945149561638039256418019300551470978016792274022711927868344966411520303737316776418481705128620014212000740769083428166733606164525802561675955048791468602107931811086984530592301708524511149119194227414001615993908652971825915047396877088959886019036558841225423528576993628604007522422404941940243503455851691209201606654136260027973420078971660112341064629710287092824263056238732218504162195126968614976525507464574982043029546269471029439611002512054558886287469292450875266099690237913373008803023869173986883225192497013115699251128506128861086846597335950331306747271075760170856701344391098821951924973468236219319686730542000119164996942676489617246603608253821191548034060339533300941680756686737783381266032671822731759037964165243889776820539972122773668437771341852327342277010291336229803181789874498903554782313234103942502143912648395454400581937022719919290224398462232171378713213812822714866405300851101198770130056667821134301229984393681468800614887085477639080983141766151423280416838473349468190927090179696842048600781924907007322633643626293465480936131005592852193387123059613785846755006410687112722876089751192536425198203350999360139416713963727960890505709946006735328865340894867368136169774571106124875873044034215074084770945081105397797298313985951059378227361053449871233756679518146488965524311785260883367181066560828223798973843490985634379183556318655558528698247473913889487820158683664037719592462283774562711440415967663183952430709177042381817925465796371846516895102606048154744755762571563024418953926031919588052496717552691025209194519200158363151821680016431251515585977461790777510372180230588703536383427492117162497993405445930910688541565167756956941701953995571786799340662230504554492085207799042391419124964204522571756145395868622531659334660030690232615688185400644621292764461915796357543832264707076363174900607388537705649165309961258520176628338935649800692653167398860858660123101187642108108640998940885946743421603799305468011880196333765300329093844325627506485986573943794989259641298269599709619176995609397479710074463210892075684403195263070515128532191255001664666761841462450582103381973252761719034529434906651946345498791978883944998187441808366091845263739900718947637553303294610791843840499741710869926613353137051520538460356713444608694865664536660609722664163670040552173117849801227704498502445379957630102508791259767570127357672553916283387308515991215304214372631844086809669214865834732910152142341283786718172397254945981209466961058160435419502212199238655925979476203826593841749542142317525197723308962190534466867047669275283889940834880053054772269962936123772427719274816088855246744233991022864001227966623972231389487260886346904144971947738948027187762396906879616998993769519307483123604992643051702629333593782899130994483422585914736792773774422881033461693417985894408273213490031700719740316738880654865254483234376391284302149734236819444279993537286616102752627608706885930003123217161562473507666135751306063171443889542061677903968050087143318846557623547342851738318579891490302621042508792544569064018455879704069232823564446590661119997850612867316458661819825598597105836650821997994857380966392213155544522318788953885767297262637163650370997892827540705233947151837439316454089944991376809401910291350600910924225622338783696557338515732445093127854915909501738887678943919238001260335380403402008899453154384997832708431495188469834607745013167731769857758182679961802071828249185578350910980272710602400981261900728280386461975631455732414390423411347120390940389653120917228593902231658128861398102463040034391569643790925296800284202210323684794765822773503064866079635135979498205204403718497261622326798074796180609164654922958285231154555716018973640408133528450927705678130107622447568803864618758973050932448031662408274310456686703130519364778089940775320568806431354186490239189531997365683958260285465316044803038245528582387899367873309916959669340781144698129143829745046032798589122970926984366736250228690467645976522234037795055181092923162769273338765482286570684873560688640810418761380411091349657283082610567361075583092833191831817338129225288528047065199711035484845337553545148299232856861139747217787977728899230446269832961512142103966938781544253230903367867186297848454790224115740789243359964836977715514027025154190538154599742920751527956282691486705522393929814763260078271377863140645402734488705487644615881777237522110733779081960462133844199484892836881029670143678557436197630675759755535537003177136071891555485053009521454214209492521414219305109607537118176931728172060979099502913917626444758890683629595065810298567342951528967056041993423155228051272406077747542300406331968511870211451882790499835122215630634829864220293628198070403547638174533039589988255692793025009748433400781118997436190495338074873000984642971185798872995057294069520562642680654245547535080272735124185904001897002725966245929040960031970515824196588315791859528832454771635822079938098879836465585024965012839136612253205592558814355224332470131593597457345595390504096509009492819714603685667796509273322193426891030403025434916366417227889007726016176945000572850201166455856910395644479211506385505846218084596655387148760818045505228984474975837105231528211539310905351624641112980713304606554680470822479330527764786691105398140181337738721824868055522426209199287580391956677831867740186506888195858487029304027626418930465703958069629168584226316466804263184461979712189493031624357057327379505704246522431604634325562885473199380502043570768315339221906159347040795306387053550492526670148498425524552466695891121629471942102128129627373389548557820506047919738795180835088745905129401319640080877767759519285850945675262004929718648466341423769802044631233629596617384245819134074555463522752825913809719648152969040709351726866754839884434783689250368891519095893776036136963741144448666547492509537752362871461317620971852700198415731626117306188184749463115145417278039916306799718336357751065749086187211207768596132055189544579893371854901793706961126046470899422672396185755064223487109904191019067144682494243310243724499062404272168020442518546752492729425396128113127303119807003824138555952161538628183901609476173687666874008467933590614353754637988801172398750404444849091876022111451461481449905370535086372703904174966446591446491461926529228977136315069967143896551750297419463380771612482595601279561650264914374600292454790458573457506634348430687311617450286008914191643991886905029218445903463366956051311302773508198315857239939445605257257505690424284740979781777362880924392972187987461554503736485040948911119724189759891112740164997608587630351094170779985899196463699925505017716243557428787156607479906714998270039659906686045030026436395194963583422640518486302771105513081398158989228070073293235891705376154557469228644890152997320825580035986827931781682669269678136596837956867137516952973050068967144047478665856088493217724185565047768163388069464086502813252726342542551686090215654788218170311677023394465499725377291188904816145305742301667434858052639077956900893614152878789954835663859440920081630385057761288858502251352982627885999255279044604669366441133925056823745383213436779631189772001281279717217610904447414987229269601278599948665224589824948660234866216148276725559465966225961984408227436954120439969472494146086526028093605870313196493994002467687118335628005287653717735651358823545562641799213223809014281430085923848715967770124130963519491946747107916353769476867500111139968624860133351516428155432386117261459382079469826590752495794936156576287728662643651133577214322443529831277640717398903031189164269532480025567239508849957035254563727509385841013470614225272440873217234895261625145404923557173995794790015928907014687563460027338187591996217944414088950027337647401298124012019137810835837150389748175415059550476474511815718211149922204553269081080286450999470097008364137540927565342678801022851231421584704053008927671514607679580712037899802298127364444530426947862220205812252152887735869342147809350389945346266960678281721797285434138924906893296295705468697625308512008864828182320128883139574250651230046949978647704202444958502210167509086741125308740882780043017530403661011080502056317692560894872910533649166092089250650376763998808971142564737411465610894554300517691391956124263719440725855634288440465772674960854813736705375936506523361729803145597080293904618120623837881690220016568687598787132828713270128736720075666011062032566106859697625356292319067682895148331229894097649829615772688309811880612985673099701735856917146543482527862926637721419510684549407893462499335576182192392041641078495593395689748711293918201858445070390000865113973582572970787253688696467431548721990115156058090410869746067462629749094649433667080998989000995567588844407249498835174088073687828211322328035204023975384462230718347785487982221354760279267938406164547228253144482026489732918978614615732677275753491868140004981272221551700319318226658113836255564988127673808168969066977467002256185734478157758254641170869801330029523169356342817926205075265225895521503929407376957577290468358222976535339924170939410099550462831047679403363373038128216734795251549805832470909351291086737363331841365277576256347946529410128306921906101420279123225825450288982848596991127174417531163468258683621370777963361466906621638522762229243413534049187081892402684222667142091999369450424436390511820621980375916281874503784975600235500635313429223941573892122954533446677161526479410536273837242940379323209715708036417331799518377905841796793084018557320673458911615538888268605950860775880133970627742909301009760485965533675107065831774936358107644122233781680235291176005133949475096693868565365360477848339368643727907798545066909883042096953118591786721510788648701084141252603064144306160576301072471410856494155177481205223543649804677800426012714961559548092262640849029342959608042778347758890116764690698778984280955397574893531976177389707489409019021477036603422376173662775501292012531465125080104307641813454740436677066884470511839550916408895860121893061117423892885885729000814743453910326161405581287929790223996933533141149510172194586172144616938439587318670336305952553210581801718642924698559198945588860174350508036409891567167529087240889143314294656877033850746684772485364304277166823248682487227364125271177399744644429338674345953048492968564632678578154868335918130244993898520437911762614521102706334892165183130791513644112313897034424185180909656104868346627740226148714623318703471520314773069373516982767081970258146675785672460131682587626800180518168979873507278195629621788204927619927545399737265938836312777072657503939519586415658484120556734771132735999395678441219227493265792956915635064653342386139582734083381903699163016090347809818711583907143900333013854810583911649780896564148469441664481711390718152981595359043610436334694119177997165637868271862662995567079012797858021245958493203506006420737495804879249377787392019967762580771723992998206225719762018962749514648865550331560477843123208190125241818250641948268151823988111821014231740885016245674991488101623894796064525614916294678383466040787330848048771927177895835770177740318759808353866490666276053007461910710547886549273574434084412897346407778568284409232151013158123774909030951450979879735852163609758269115835534725795827033476557195681265388126250082963039784343069524950565138038663847808543743454472258916469679639522134653212680485678564132457853160161703638293106305347937511416971268347802268181855742652810091840949790771491606049149076229494500217933082926969123141248598744853272960595117758268308070479524096447487599316612030590293702413769461120506719508438900332997370148768769245701508907185327334622916373758142123171508372548326989852684014904379461269101275146002636090045365603936790809516724230068880835242274684842837281944224852204309375814832617985615266979677696473863421601134194876467149458341250887147920025037979248928664252297719322672812622089976291372519850704294130135351938794067000661662190416258982597367670265041315753358279204323705028911828501123881905252326228974128113497957817015740821670135024893473160775609010632908458913277695013748052153850844368758566369872660064382435930239722148000071362028562835049952006504761326071165370248392907951568618785889230473799750314030734198512354344408433228145088100298834632534127718152709657062652264481145624418382438387964914995133236460132548372117258133270079808020325199350080629045763093795449412482222083907770927122825619157628026592833538836436880845368583746383291176832160646983263744199745166819673556333614784429497019449517753235932212519040166624007147725264651996050393811484466949566568157001164593239757115814815426834648145059044179452644045400792057260068015068949825381851058452803044840203591374783776925300533212176379680043048791552954914234483099135249898388475056673917724515628285237347916324758161615783305154787382099266889836099523861644849804621354065565710453725046668887857984421964585850354238349498785492954608914564393230517981028578105553324111947398304248636044707598114743188721514845325231865545721615635920877845456097873596454811219262018181990134311724157033280076351141718042371669702736358133324844252319909333382105974423324149799449474519198622562945446469710108774218343607810471038515865896729466749390478555519133989124445502385003568469833803048800505672074235635952656037231883101130101532117854817323143071200705977482634394982341146046017871497812012326797136666972814591077225092321904379057592604817469427961714669904081953755066704894030037130455528855866726962576934386391245968841685652583494083439353683861350333127646437229812450749176152000128416845584349143793713932074108743094204914877108157771983349359959796490345299921573046577318405681072761378243113899968112138481500454887795453977966334352007196002399659798333623670805551992592052842809855513185759543196409129977066413347026566578842136453946112838295248217486694385180284429922128678624020523744553944219020843654087764780988953871679433401127772610807384685775295107993557680040711048580093554612254019157653189845313530682979765868915553441113323771165974268715740152016237743808440361736708326554990292311605013779969840240746977557620933810774417334442421992194185717029674540858603473600495228488852700266558541146009928669789581158297853145279676376227571046636099668126753203706091095950473015135040074837293649216526861656705271890207692289687401280034164908427328807964782246584601030943356533293840527871056565732806979514534265875281376722642901683113629686699354599556371148729484260875010746675388465389683748959411758543199387290254992900114275432886584857226545560077730602320185279794933941900398955457228339299412775589882656983842217767137183163576685773352434089714492792642755792425879432752117053309226091802490971682243847758246349634037133130447650294321945943969489285392489612094472326110310630389087094608060890596145039148541467622349517989372260287089026466589308049126936744839371126660153646047901528190063085623221830249451623805902285495323319296081892078503369126402492292812018212176116421779340503928387322697192736347830974656170821621256098376731442284564184464760018186742283039339267397614041760366847021231074638025792118834716692920275377945466672683961418581382176817842653545368289817627158498570773534236190355987161487309497478744176874292933782301008610192775607171999436377996458685401532576754648796245610772072804432333938217508240884394794363174474750751507199932411633809226847292873056573489120112580631166933167442749406372069955817837969440437610675212972780557290946046972646791021636082690608241044975464712559254671456052666816178889271236523124517833713699149257788367080493792858019557850442659730241701055616784321922572290996592870877488110498714936170164088752802190745505406681060351012745734822558255929561720851852711937709955116466759947785769365376272411805732575938267281519072876035381772513699992105147926275288054091865827184032114984950479269497566093729465810141958748128956174321602384728475302018757190119785079618843978754746777426360958239680454878146159736953395355406008909885587193929673311561581641583124255811613119957601199436553615891510620367287895788467381877568045973569396232452450109142373130189339440056465524986449216091222453906449283938817926915659412932123182594011692403811442827449865350756124031425706717741227447160160063888671484909068266604072290019281448941093910096058289472603320886669877617472387909196345538659165381400866818205021867887730292730681512600665532719830067162755594711471728478181557738349700507448859483708529702842847150533103110284527389164471149459360269309788337895148684457303211656334195839148171272795038819551784548849305338148512867361496696074068376461033386091690194581356615446564291242891195572066612990594121344568552292331927775127245187094332574858813646720761441263361434584798189666987587261946750540607179258309914775522143577391373961232474820023989592609558366842939257748030368868505885322733358244642061524384747873318763384569391670580945976619540539808656407943990960022645800335853107567990217190626178920157806314604849021565916185640560351334043064389627216345988619611841959474669383350971864477994086546240458850914189808825350666391101599566227644351555642159105054276244400906020851061349297661029145364896354097469446019775758815466927588369106244330526054508097240325828607557396342530863135208448534411278932730438344575049887050950920201435298855651723249932665426520541267266117716790088499761529310191816430550408088056401875830903792387504682660866325845681520627080236839327312432925970543189397941505104088447618294434514919128326234305202112018058555365239567456892377815706192149366613289985537311522079145372963145397694701938468735738814270886407892101515239089094656228035052600469022656095436676154475895375994272547329268110054299322800695546303142971524919299453644067097446827134047229605433129293440978715058646024661010580922409710767555504756199210630733696344110128150185657852163612901952122925824049036643847849009395435605352024918465165781800071006168532887309252484670079771139294906341974873302051583522931137714070781530891992065398339777961547192916348551592262652602979652865941134505734945574547790788550086224692638117755488754533897219537076096001056105644213951535359713842377169515716894818262662305949503308501684772934136587824135655013852121142917917981926853058907559326937911565155755577146820834177846570346858197025378271231016928939239075983649672221453786117882452187613994204696695182580949875547708305606810674860445456981746200142243606054929388332357470575950993984029061410124240487613751592060912774256356557252100345889118448845493461999882737208655132905585167136800264402826127346915892826084681210731130589206117344338137301226428349031921696647967464082564891227901695686249575579520856069478499323404432948876712423090956434852859861097977958119571249289005358696683289087885932274669023945171568467101253425100005374340144568891503789688481485809819777504736378086177026179482793002579667477815044986748326061060717337896846810537820228586765770856431998860417261255306267746545591855003215463316130840458010815171153103727766513868439113268176704699120669142878813667698727371812830009605043754619592366298256936991487098677618136904507649883135203098679486045609646249426459123178421839416128864099738806526927497349278465300734884008030451736532022456695173560775721049381596046836639392354971387070521241562548058179439308991949470763934471466850502733040847608440873892542172621432975514166209036604766037202736430810593440951310324470782680132657844780173111447980882530096797631300525404512273087872048831410658585839745384902261867292730312455968658603120411188965060358847931256118472150683253717687767416753806341798883779678703925641186112818736637211366075743854065166000390135181309252146430369494588736728490124170094986464612844161575491279660784046713367352841575883272661047586093551280375182127109244683521946760163474434364854654294495076169389726756633044344410692322030571029186518979375712585857418107184559745411816080508942476057913650339144582397808750626628063189002735928723139072233191218759808578739365225927224416286239115742280703655586148207361530826595649857144308287037852310959218694657651088097336812186956726097134083573611099850425078954647545485752757011903130892143942446586767255792834217717852307450031488059757369770558936193547966252802864912938652120140941351479153662741665790730198900086805098430301430932861882582941753941496536428104617718324372217165554007713058567210513808637990313804527351182931290289758798177965208881320690679810024421271124028776724737399181822456923026749570685238969266582771886200770187613190890327915706952602590111445680701602667548790394433063083127448027087913189619897016206790613836087291106502301239620802508873867732427234424354186715511410161927047091803833733473429096820602126962216070088882779051813139442519806772440441330989313371878294981072497652983176610747343973219677759509671076774638597930809924023882258590804558354296577865396089684638918099157451487121248657809587243737410157978801047649152953820362049613973665086255650061526620473956734158281974652740664180917307104173416729675592609764142960735188231702877942635363737375163936542162185001635553596328099185682332851733758841818765603887517682136625325875469321580048445064723221206016536103317928981492855374325664302812116366504347947864948154805310581494492797498620461034557694003606683287206758885937805450650914439920387946309203003775223145171619070493568001612009900073157054950297238360047150335713790472175490490190143567531508119908250001257263027171315281987037742580250462354930289647123783273295442080726073373335614432152596584158747009598913806046601769739107339133438300943353338497101214644120268314767454201008459157301969167477537373406470867547705376676865987714431734016937853788986971867008952259047125808117731824902219779520118224588630224788301345255344429145870253558139409113809686381029839979636823425018908693694835981144461276948543486559990411861481340797187096163332454509215292402537320449243759025494343020063025761543087731039529804352101326990679896334944014609349817953971363382205414260398499074304347681041962555531489450589441802205811486199016550577168715502274791547751566300807594886491113267894300972255454653549401432304418996988310647264076742754901321911809435892318142494032945376366970705983525938371513736825848148021107040437630932176353596805880095479333449210085664561504959754051409633566284369888589026752037357508050446759657643731767511655269387565851393216278039506345476431695871950267137957939172968523402064622100649659244166023477326080708965116052800293547610215305223243565866639511510161051244144049640889557668538341824738156045339187801421719238586450800121139667735057373378597157684087998701043257916680418417446677957907606162819051762632766675720708499601255294321147406117717784204932109110881967926403548542320312250693016500338756272434843769897939101801552456725499335416751805762280626914341754942132283031597429148311572013370958719272721536557723063269077708334230258825223372037591665785904318319525044107519205416761002849092314663014972036214536068382535174533878442913962765502646645083923808391151287402414479774101431327102595561298279909253940566087607615950264629980486766391395635180600364053391605392492382779107745885491432218491591341307269081027152792067328207629415538408989123328780111078404857823043983458597385597590268787605749845165863195997251778075949803515512996606677120095792583553963048384361762756467479422464528943455505664556644000095779913290052932276381874993641496539763456984479111390954441149006809176779822395530509312290948088425048520688890747097051661358375891531621145222985146161333319126563714610063936773308939121863605596209544477993021935940643388036293633062146904754432905145081013534019686359399257852067146288212017270983705400599961319152009774884673099794427434288750133646354677471971236265268677574625366179355438293780072145107662126507205919211347642972149925056239666439561941325736176889986571907132871807156857185484457077862519129044266279037330644506332095083817497883474156446218050302082847994209028342312277582747949269916006992062346574941488668890950526768640945509294786833253935646222235662036498730773723968047225774269581870753205541550573212023004474926038130418181741407442570151969864938440348818404294769881241055192587745490226452573170954757590262720603789189800676184060371502097899913815577169194308276883649816783991274188352344107579426119845004861966654249092210017596981221572352836627837242666739055313028965024204597401321391939607530117054118389444198052345416488993218349866696863906264412189865046360666485890263015760695824350563540481557957219113101396836165082281715364628999612944876315236117961979181067855813077296600043424882817413649413565507475455367773791668293164116202503883925287283778784545038006736136077255266024185049014821652496078112413462705227583074390911983404669125187921913832138341289333430127135759030300962114879600378626481623483167566674745198088516726346607055551911169464941168930392645615817929566091188649399990568331859631607358007303493198620268874213405863003027595269860033415788825686465686690167850543689484414696363597048762635578345925106135128666844950562292228709370598073095620205558475571549948065513746924161253403295230916822787276742439681212780047404417868674712280960513196918491556929387188411096072416271296343696882081808477738752961053086449014439798002287181152673497500573745112570007960514865387026465959186221712296955066605976561546679850398276647573641578121953641715357951165613792108947082434072236061325277241439943188444653598503740395572981898814926105536237322464904454481468518351543130901779744970377405185864827389085157408296024075380865631511188717484403465940541801826371502742021162747895071061069655531618555917363519699247050441530865190244233742076515427395406656279365271622586674264749696293730476982784687115943071993939981233979814052002050007741989860925729285279584410576632034969560859389766568326227160224919637184555370585829322803514619856886231210328129105019656366796130967695572698455328755367691677101366719960197492424354208147154178603783818144847150122269315479710397969826358300735626068850495685791846270218204705555994609108175013275433107283082070206011581155146876358412588849489007456554106362895273204516422931246136393849531339469726625871345425876454549963307043668284518941446874603182367568091185300605961804589615549224126153728673948992351025858283355916861957214952279070365724759580514630146848648690920337336968129518501854562155031989715152834144604021755297446718932206228341791320827050335739205481526627815149519265628135308970999953414215628848395181620323320069090842677677345035018041744142230318739436205375510677419527549658017897259025268288626776780702566398755591377545955166334826002073028537603200988214773034784974348033778857768337281609710848681127617477135657019628104462899654355399046949140886397656959931052276506699925921796305838118344449146276485955850134953775164900067240367420323323444293040263395846492294578224559725103773020683272517771773337921068515278418136796579618655763316566771261015827914400759600162699299604237854902099917728624652082443533452396849137916415559766325803589457858610690936368098944927350329301561836455826174853472560851097768755724394142674204248792465131387931346654314494254880803941754037195718176250019899394201195953905947868863591644990401343621971475993158941912904747433933711354573103657198847230955838803608904146395944631264337638637945581141931584501634735829981871504400023401645163582079105086696471823117901468107030586727193552240500271282788838556867772399246544790418170561704160643452195661721680057028847027246054605929467444251295313498351132917807219321348130438281324805518930484519048797166214495109767938702325336128434825399085929737210013311964798619351444387545717694651876469032658078885502773905395013864602494052258131457453598729071365830792720101121070745682956075218725447142928885057010141466560703119194340349314349999775017949511291733823995329533644047303701681536342453623335613914001764972059801529613484234504041397028343887523465234947986380832211352226984732332456813230565027557696333483173313460393578299523223466761904185250254060847392751747507545266869013600619084304698921946618596440272661296324387040543545111450768525030814241767072940908587475431155136234455237942811434107643610089660610624334335742994415076642455577324424181138966601677736150275271028331698151278551760048677233115485917952332255761819884963987913685692721939384222806243431566611613308772291606353880036961610888729915625255596349039596612436090916424932765977242910338021409675025635713933082498155673461887331011707474683264684739825110579688862329939196665600981361999143211110972563008787672505595242137542653685761797394013390700185989598172243973963687413574121818955741525583034676295204580906411310328482332256627930022834091432835621737497902694007074355047294988022721161614838558064365160808838619228949296130891172307316521702031944037181515708415353936904058266089570496607917315529915485923236805155464984497362779288381446825534933724507837137651375619991952719236663182291770180469521224235647831931854792864445300450188476175798721750380073813271188584452832373258889434354441278137435808151206391314467382819054003802165753389737772444231397225486494137703708093608778987825370441648963536516102423737432586452808711662511500709157741683264418721994230827931311777442257378794759344277972753911600648300380274737415468232323765732829491377121075913920215916374037038939633419529969576478302705946811785679759629810332414397607776145296146376777619070920850873771092608334825309112174868319232258058363050186959105103502845454362678736998589319430526187350449402201572224362009129721950019847713948459344589161832049631199097330121979403933813170789620240851259869617326045112610446917192530601397470395638757813254156313193977338891519793293101131336894869042893429140883525204534068788915688559612322154450796047418597465121460330140464246767950069069120708470785433867507945571053820554536275111666631997712548502957932359437796683885899812740678096940024284103916367687588348064496294445960596261575126084281932197112116722443818903429170431440054969808371489897868313769845057636897587808958596940073275358371354277088903497811927738745671178851939205358340237735275122008321685547784135101647568194404254223535739169522216005714156741349766871249350981849053137170296506572864994902455563136417117288032870154046206748542812165228589584664728418435910162297321562001816632724764419679197020536556155842594320390488441004935958242784077790823377592647164875250911951737747870524042452567103769992362251955777067978342278793832575773293417137106582974941276918997350608220456845389173477549021432343417539482083445857717230954781528817234047376122922147891289170226363487147211482664915582558796088781871497362296371713632905324930399314799676446626100365812594586266812984277868583824209084071152208718933014658732117232813200448308611745746410366903175009536984882918477889148155380263042454121360198156166752422686293480789188370072474893379321745057306662716367644664040396050799043208234766836123872371382894054825636549515598972280008041476592490649437504182917245231777165994455759682419322501446888279361399987731135328269790935129349629422952603902136194642545622193035069032187570938865462078372163143263633561407714418690825681023509775094140644020754692901937272334075310039138743117842464091498858845846457065261661071409408290854684877085315333343520044055020594880260612513877751441924163988625623219535097553089659260920659173834460392285025110840838762314123224029082000966523368549898903438843247926872163425401259548598206103252014180359653359715067654649670201626749308048230488761969601676994791684859582229292033784671815950834880752153378823777634043107949421928015038694445576083505258547951520715881096721816967423144708421728297821126252815757343105862365608070413196326979529610181554332480746043103492932856282731026122849293378547090858648331952841776937534245739914479181344127887892502372579329338941105410061581604883880680949609112683605361742447822748238571591785405366361323589209507581814610525578681184133646023067939685981639721913918693100276598231885387592930001981646549750263667891308388201795469961428970696693244474443044095519931968907297884062375874282736495994204424969780480417122934634178311106332927344240201325891016056558230258315062160229900089723790897436911433444359880843683346148554979143717877629059209905510627152993323102513400810383220323829658380057696232559426240365894603270695426637116177300965356698649842105944363268115141183899559657240013615908103584504695265973507797185095560911162419619826978714417785630225045145363439654808894072705559972260027929178534203586828857315430763856695207694186225609434079282123665208834756635611374297368900616720155467060595909776991794608832770855280460060231026894175452344857504865148400805073698098697276848821249543851973242886580601005841302792754056223408944917040066077421217861361027700529165120402986690770650032876227373102665603118966495865934835815466744510508412951223889056836427897862889626333552738780325021123515597615937473511322744651285385522481750188798217788737685905239356969216667996488327540210954236275078922992922700776672429738570841947415127504278131996355927138218904259690354143800523782885406041420440960220145776860812227360619507124634589477930610392255577938951116613033565232567311126856617006213483738293639331378433678404525184651878446069380413103802337657792770059077871212169307653016650224243554419294712125570487627353491318251660902250908058828081443019249701120837436057367876538306689366609184364856488406517014042590189207785348162753822877178932165359078227184871115175936712464980869158671385436281208323752099153209737194894817944025849914160421835884387236704452057894400638323455469038552613169126857716264147473216231966382400268857276570793926780055555190239670470376693378864454573029489459917567824861497854974240023199197027708168789487413372210412875984101082088271875924168144969409726427449216539476038431975591149036689501089235852804442065886711727235109519254282252528698762957154527081247182939661721417990780449606478516710792850779538199299947931140180732765031116846222127202753381563477017606360441092160916886588759985360650715799661146192785104109097724850004903289705891438840759807934229840742750079917299724715532149418439801033236138140926978475545452902569940200822943789268840174772057933810436607833933684587102997305930881669115084319679043096437982268615043947478622870519323926074868551228010694650514907405781198555288756271248602098805953398227911013651720762741114681396431985396313885531850858047098947206223279165622815711795067123308832383572638736986395267084064404292100511472693413084264746091170128140659355432502821271813928198962420437308221334008966842563422240994207777232605594023179116526280488225836182461633549177095979428816546546475502116135477329249953703094504986296737371193619044691440513099624766627162164336240517745435062702787594474285857610784315106405551649435011500324099955020195813202918157488996841258983221286555655433350955997177396477978460237155833225268269824599417723217773174462228407764738266246621458397974241167967921186631813998067643857419223402418295614317219171107709192483212582485504408949257291243034246479005482106818217537620067114845647530492152031064510376119499323556092549691525373234748209964066133946397482474413292294598263402791644355575756481170303091706331548266626748699466077802869812729465506267990267391410135026267317338059886612734392710268678013362213153476840342626951913728701466791441780786538212585443146461223129131038762349255161272930500082787491131747970760286810166339369995281334935997166620059757713813826228843301261693892962781096538706178891982021038363645405055509536004277246561491310309679516568743112929949306398094342835240852727015961390032714805319543510216540853122182894820668368356747586066478227322307186387444485845075749232812263786739143033092526728572035795231893398036003092913717220582333765009764829672216901129470147230379813276837629794004733273261366713956023649985578092163099718323864959561348522821256763370710188106129904429930344961773712605862046776055084909222486283791047044940258846469314477890920701148905147117274139709827190584839211601135131123188529129411750396379203626971277906756047322461276904099822069909292175163783066891428299467573103969029907419663781006394805777824274284937711267742860065358111266886031249769671335510779605545803886888499982819172243971629834366650167317919039032578880182874132423209171312042348889711739801451132619540725721721862419247739488818765357022732183896215092558164368959487814952106263823290482933487316367882791202107741012592179814541176877125889208244736626175153559062461506669687139297374981288277194482846849615546598156517133979829540103824424369128949885611430394376121704044631735891893485232003906053522998892054689745642985820115483213490236304930093258779344959225227415245473439168281022823991606463881223334889719619879865876048163860614746052434543343688207041725244789183839531892776245476994855327606358999196042240197779227266826795587110834344942590233510923879321505697256525570281723888298841664088726286718308116431125765685789365351779300988285550665500602538424151012480381008073711837104491907271211751940342142996591861975549615714377647149930582216004969749558598522596374457912293659949031571256667869095481127972844083364209311363997982279021599226397654405382294862932595547619939015601042391759157040088266939517592197431975669628090870329865610565371037193526343103659968471603331862674548799454001293474977719316190494763594550988123190093237168995419462548716868957071298694624398896197101160451392955875074007947679099870964347389107825899089430327260537164355825278112611517891132205905707931566888049128227965031889419256758437858030002084067493126152393976553749291580267484437700926864077731859935295268627335842743087839772317662792896661096358440583085292281961324851159332856170098960172048794183351249908669222146906296100462419499759325865179971648418985594642966420524225785636382438792969112440879481312076064911699485592642414515844544702826702667266216333697238167540162452760436055659189469393487437594512189520373961960030196399533014534958329324563418201554222831076337852215902362599258323297430819307601440971832940598892080584448643246508102165851998955236922074268452860108732993178039887024219651528341833480846050026889348233596029515492364968595489981003293622308721162676980140477818951448770004785296293180453730091294337916528184476680844017115730959676923637897910907122469891095547024224568039745204236510070109401080275908205060109899919451072621107037809201365701589572586550790879855114672136659091646669514322641924770612778863393990574966320400258325310847607641193956776751310868592719596309553682224270506138765442870894626124533746637847970548602135708592885452837199770902173230236346161384419276828700457728704645449800064482510096376042868585017763302007458980161909800520853219821189789430685571912487418553106994012837157415555304328427084792189665697983199360764044508609783344565010425977452343582278432183450496349360762328982060257405170086597726299867373087430991479232199902787242403204587922984533812019360486859294653779663258803958464766440340853633037228646632993010295134595574551579831236904909166962117022954275866915928106369745871259194592145541446984183504779152205834596100981033056294511470977189030619231809444028624780441901886345057811286943191513416670791142271762831486549720483403004121724435680727367151191912552845320340112570119648393462957477958543302493549569321835472968832755569883366773569486172815110772510049209237827582169287035560901387899049080854564811378029771169228140480003344159899237996086451729030653280346225400451905263230842797834699810760945211733460409179478196932838850695643116587000084426367909143421883350660784719233880243008926656811698962903801421173016577007378625393571819035599161390253300317493598527235606837329568244864392793855046060155290770746393944984223429051022081696768762100668795990683845396276110696109304920971815099019973097046349178618611143164871368486939873852334298792324779605253575590579012053107747612278752209636208121017510774694584933386072962302449186554692983704644338532572332418808693077979296583121537411942776402788611319284754879715072889462489790104855353142826842528188138433753634471538137582560289783031379185479715678131710355203766382336067607097556572829868914574011078100526368420046027310608657847841644285127502670638795317348006611691452070451818637293557519775399038292223933550385046164056572793302516018686131695745095760696065087158942106757158333039425463056577560326113476576769278118587064588808129656842459246129123464924131133838809180148361978264922471742467622604846669498817941977844549844187399003195076765277668015213135371091444629728208557801667775043317865300217166553636412314973200300551118317910843595672243908911638940781110492510864017685435036610927303005475616037212018876468475999920568809873768039868235790535154603150169694570915955598890781089435831015751393866945287795413865700684019162766598556483165787909889198132282250999777925822450216483945285237867934055946973169421708365228822502674187064853170695217165760561583029325523043173630428267138856786008781666882971824569243253932384648898130956083263296257004147451802758564883944212540889417832810594311257882805163920220402563081613435613504884173017314624598881851837933363927641523111250543043079754445578400610671118758625139089407192807063897737340084555217266227048908423244308046238282296272101461577301849790184574659290805123423333133248360786992965668842619385611476248290516092541836238836799378790600895970168891940762520092755521539741882806008194411940108113456480542826790888207403116390407169573147726096138909784808816838227114359242772556526092020959998713482600764300557637890481552071227807390532777949372054856956846871377528542752858922736867421034754880933496929356677018174327239114072047602138261912171918963728606871797977141918123971293454812889934766141589023740323286938309552788819327494525844456055159218183652486296123891412256769755432955763775303016014250930851374097708542550915038349469685218338569046572784656738061523895912731174816556476588517920772115213281462088328014785212335308398580357906862095179801294338696026999588448319572954786363530873179478838138833101140417520694255770912373355725587230475700386414400306696734269473170209099998229706384820321913189678022993399165907998623570819863380765149236944411216586531804686642964058604385293306442277525073723491296003532043079674896720282312954265368176203812010721213699496569440755502309611409135321330008445528370626754154782553149801737479414675168642018406144588870307598682755559386373907120624084543329611294640544550679904570386607684286791657789120840890652619239895308973140376001092438368013472090165484172828663763316269782680424873197728617068963524888193107436476966510268401584773777148167820827633804421019734109197541967313756178818888715224917660438370536972922826989187385386821501567709808589500099234738514551303861134390131310836974928885111123552621181856749033443348493643265634028319823437874304964321120739393702188778968945501664809845762501770674089208336244151660936019340027284371649446258239030092325990993683229943660537451850230812238513516690227049073871982579331085828347823663600612577133423592046397493391934191714136585463976242684119362302633254058154336096509065441182072309784959517461053162482463420072269709944219610265491903560456018600850147629768792985206406881500251059056485375896079941006436144116452193626055791625889728936687517313133484760723542783078171890583756212064575272375838849699062308662875263839889563060698501031927417557470993101665803029679615278990728275115253347724131105753728238652882290206080946693440082051619995105429008586479138409475804453474669332741976913270847665113158948300225014754155541774027881134452818263330568837746956591527612570234075774584550134754753026080584394914987401718085929058934589097375861118297699193796959534418357124879639372807955756295507870957471697071995631331203975647625860527804436495434132440075581007405357945247899995165874138198066512929561375589346759657546831591200301777163608885953460713943073616155740293152875115817719419244103616248290396837999644350374167399603006487138605458450445504548778861262871423583547203043723267471465964615302655657289571259470551190565413449705852382454655612609823508675589422516782414256680024178536612180367585794884809204051645053365426690782712247203492990063064675517326509971679949768604789064079582617618711842331604172563960987070311777805409922030751386119952403958314731176836849894666196242290895201829112478154843253540466327156339233538817357274326350873555125901362143245995007981656621817031503869328236854523453619459019549832051522269473894464800622097200436826753700364837636881138644646710259935482306545462000294920135844421296884154267453941167227203043124086547613513271757012256074841465709037668344311868694064924252555381274921051765360697618458081572242726326088119982502183071766896847610426124272637922759235694492510070752675070759496844432095900872334213301703533121859778059640390090187591898817285542861674047246800420837468432353534240612585888962876896312705749649577262630664418349363086971783966530116582165990204802384752999732693678504859313716860507030469857533717703680937356979836038084299190419825655691363891554314445388504952081905586556894895169052640300143312648702328200822104671233314344591275784557385935453689300777492370871631880379298640587356907912828131101820375726824534675322210830308330185729323024433455783267108547880183395096227879249551003433313982470562641440297129679940542292019075687453323331172965283975031424556700611791207290942132348284938499871123841185911927546886326627086621494590070752167707039544332355400430332493541495042730104216871834293955013895136257888123831566674024680464138588517041992925987518408944355982804212086874384912146529233972470504371010494167538606002607680942037786376432693281782650919007441591206675054000055785370942049500435479183418913811989492980950428817465870936359577347843899927160012864759532591172985105306055957079067198998191860956350438174155713421664776576063642076263015908316179150015519514542467641066624073871921351573759164347210593413234555596506796703424123712229401944282479855019282584595576935512439310697349644846372020931522982801022383789924889963344722594116167422996686879775084224316923244981505772442165304999709204760433640717035691737765032064991107870168630096027703702958074891450775635868080294431444926967851459796423891728050277653087920160972365109692252657848570114488332414014665984679663284336325705127956211700454375111532803029741705547822585549861689046710292040019260402924840283772426412733594104253810712768302600175926997091467510861702932841499293195874665179726585770179990498918843822944049430576170419148565216045261586847537650957452164542776602215598805653713862658655138959234565058165710820695700804085620777114864719669926038173589196008080147418748700373662988661021718887900153497326640047612192381617706278847770471772515553245930916094854467246806623268182256972477428936773596904132420004662635263030782360632440946167909187735590270105949217830255136287682419597199099305707187227735018383668865177645201698915025988155782261119918603624354275032490933209024755168588602862228523550077566575852186846923373465460993195706898495052991542737397929274144906602259798058307596208771576347188503675403394877529672558712344134488539506261057344146800634198691641864009011406970197931085183880739402528217389595952786549769618461374036575564457382683399839545028491546985755584254916088569938215873271806284212901122879839808565211615160388379023161891855538939311503362386128003448130260085872581531199492027515666894436298625663488852941659256452418124606809323554239560644311665432201817235759149616075958243274497544824557235750816018979869176955098915869730736875090006457418889462673484260658419031041392375671894698358622637732959458670294502870470499173636370264412034728782849894322751258011575320857540854856883435315428071155277707106770960987635254746501785785368267424543058135258348139802555686493472464991278698980208878757677952618710982286205896860167173437945054199390754604322194493612977267173166097067360266743913181128801716836538068367212422263811691322788835924479158951598874181332400862951045503673433886493794871649347434661266327761947273941314348878039033853574446094856743969924689852689113352380310274067230856976949911574874234195226404155633342189067740407033797926471134189130584278099194392923119274923274802269498231711009907257816604306809962583149692536630048398605221679813446176036719115423652957366670793148431399318455017886953922327946022953358643911520117558111114823466429445732858108428529452345312198277390142796693101040845096233100482555685458312627794756301592699907089012627492385746459891595197168434613449183507625651940000999233529340087641999071498238518184597383384710788572208975297007676943356576843443605421529321008265939910867886673411780238066267060029236319347260075443991644258250241642576384709575332714471007736309715989434943899802987711559614028927548257469784160618658229752394786458107281838680820128058241478948531533080306041707849932340134478975016138503915399978896115677832243867263809715814584116161417016262397749012138841921333657997984239032868786275029604737571174944550616254512964357487347615239181211719078050550067846064418921314183224919549737906795692606403649092851961080028028954802361947744330267196138730268977548379007558157171811463347127017412070261560206686664782021087212172456775736756039963191215875192361066476874876007477464297667118349582634334704848222795333355793094864096651432814066264073338914210219783211101389423493982119447885069295398753406866816815502539261262451508463762612155458374951200932858147348680973500215140459786190739279169660198952810648718009571915882651351271444778047892600056958491869144503905434264344577724078917079943024813184255621635775476135266154328427887304328686927987376822588939099313335470919093416447442438455274053500795935723756465312798598084631606756609050901265338384568863450919948882622501769743700700885470074475804242800499367424282296465979260073907116797515252752020154332970084302087252481156173135565363067355041600905646377714932296448808107406390003401503964556959104886060275660579068320526912256432957820741043773592245768798828524267804463613020093569792227686921745867186750095604554217312024693123334102215077846052122425586164261588781750858374299008512271049137878485276883755556306692564483124532516570430990073197119311496093671649260207567369703075881592456541886277648179094480802375195997689556643807217406051713885020674319939621993911525780688077236049019414145416309533906826442480329471787663450675877114582955468901381602206520821560423769924019656609789923943152707098208822984482140180885858762695325598099860134380821147593426495105138401889693632509833554091693546280182278714993893339921122123927128688668911214720352953132435527043522848640109572093542201990785457521589796746094835765321505101931105090329537926984026724847789770657320275962292958631965285830135020539940142778982975065323024732268715206620009343773820046661379864765814541573921735244972105712333475618461916659550139186167127592869676472069214897600822893753841126598197793647997783422233069729359267681159825696901041301834797010432882194629719784133525383722401747469695498149376938891850449399495376403749652154324217395531403256991048293973807174667249685548324476977185808364608329199161399986798862761969046246950834349767273065084781937812902196306929868650672085350611020147735275215205755828226826271809521885432075134880217124719982053869020308769868880599826846668171446706653899187582370933876181244880061587926041394787803740267350197733778521481272256094246275902327564676178969046977942481146498366100541082864279233673538019138208065199929504953430024214721637325134305768511722644358291000722751193366146695300900387726975644914800294670644303006813393533959536230540833678057632519527646627438381238065548034064257887612317422354848668728205259157068012522054518974002551373390018074667972304525261211550755714259818291032337270322655172922697508141780291451485706198774219480779455872690173862450954090115975849249861797219351189213253613854125575215298953646308123225140101787149460215554429937354720532468715348272961952933815590116691727097732475251307922561602534075196216459612956094179799242932183061080319196652962858771125942799878971243658201415819376258951678358883997696244765891957184560202903623917705923825651677203847556532433099444259758288566203781224912551913402048834083307053253856790508095135128588371907022906871211321768891656072015592110017854101719031718349023646615233788944321294606948740813824195427450701197539561288675763086978267727403640654925812649431334946054176407921669380826245033058047408042791963750856649402501327538454261501319841786149265304746620098600888849856429809136496065273681114090741042699962104452078723096992515484823116046575850488630778230813177455296026742327338683079928726189312172042868506464861847786782814734713410201919028230533980435733105844774995987248290154255415338449199337171751533422199130650563419100540933484181278063774384083467238837155222531235440267560140841347496982764291822807506609235418374868923802445799707597628808360263077325722213937749442317589099830194656295055126450319353673186536636895749316667614802245838588302748771368189670304578852338768904229839532483789196466410309154257724378670573194894874253112171610455835234233230515584174449761007955745090147187156223321675606913200308922853249035168893587651089909594196757329028903463784899256040593012344240157860779380722069460197381685491669376727555290123744699589121776914048503292053447406375615823948841482566978362253322546679672739744663858977933931780592133118398068022769438903431295863012329801659971680575149886687749783367337454683724820052248625542811068137019645951711453368907195366845178935404353271105247699165381816560492275934949932557217801587120209365692948026074301812152683070446483535612437371656590764563645147033026986678186322772375592773489775191837091938306999798220511089875232953728989753894570752424607773137178184952525346230976565905845067477670047043608625082823404459666699717559371628427344658038701454735007809593825896663918558973064488346023830923551760208666337285759794223537662915078941637436212718513888524446264670882479303594150509622794539604535704019736567388639328265692980465739610557763181158758792898851606589534599479345584836772895599624198505078388343721632745633060953257837923399062197674750516026122818736914505675597928376387029704244150612734506786863412427874389931856436766460310356956596178767377939170994904498228924361351907165947540794581255977552939584020164681359018092676441945662367362666033124344274529333851983752642978876089151529729782543603508079387600015303212961707866199339137511059529356503737867869744988141195181653147836805490111629442940166557271555907995688957983362342879082167993575259313987316609436676956589964315441206953739195668595553376696072995683247978450763661028655333710469540331982711951211784365647231337314887188703660232951955636576966922571232673221951799401656022476585162150121082846266290269307244252161797416614283080614168575104735202605125484598577622288780535444981878652042128492349208596864845074656685713743174702576972618158526738369525375781381937998488985281283952424111417585567038704420754775038949597535805471204076507926804321502750727364589976953700296056904341230074186143276538616070872252152420830221555187762060705680966687204120502958022109467598813947353358993469139151826712262314442366973586040071346697903139922008224873899022479531307641179965945060791414142103055894627281998705999504255420499024257318935308423989763312129047889843287948439726379485499358728866889090056081624315622238413275704018170576346603504740123524381624772863099534969832791307979234773390269012605613686844594153705649874314120012158246609744084946980315897532393646722618399114587546564402187314162998166813205162815969032939532141810638424699549509297049006316951198769175031204494338844362349072293329218171585050927063085988951217202707392342486714887989270253488843083722774421329583009835830871889842453171475203089334853790057467811075232475047966731147646199334875235117379535608228340235813832141395298911250119059770481932405861566998034672764207503979757117164094139743245767340606910812397688432656670857955890617938799994418597645081326519719779690549969164040801583541335334880079989645838249475454308038059293692237954399227678856056325896325035656058667200906550140113137138232593213138803908476306314911833796252603340203099931874261202340026533448983147264245646465345012920052784199915329725310081058573936961066552259033469844154956792235021977824183861198478051546093299356536504005798601699438966444253901061418899188320064127025943308898409400306465756109783153968831945745519423173690480150397538535695198919656153305731080872404244063842841480706664434047237982677554702747530891898537770534703637034962146622290475048487233947395193575071860322776906914462405234734503142029382072662019529734287710603699371276317829432559675927376826455470459171178116689663312449880711123149327964556906303890998124057563677674426533970488109481979218645629092912166313835300046240465719684244895796301080923249164587211515392382406566859105948726191877132987518451074395261479739140453913322287325171784655643393386639853875430162194956841326666425916992149220109214737812111879223284437919456387404166042574808450726684877642357465950685827990139939315233373263615330023904139040199521675523621614561047698811352887783224679683237310744986163954597538073964870456683787610211568250519393606817355167523037365374554538760200077041556070989575107145644177243384032353019302809896461368277408431611163672293569548753036140523801237078240134335782257977093512108190810571850923107154755665848493277535274816542885357033165251774079229966531609509486115999651346038146039064750414411478683168422190876426566990057927585697902217947918283401279565410717301297542493848931366347833156211450907904626521580386124702757089687880603914036468995003636270724604992906420663114000743318079067622763967081128749772639472612603374628488333862938147536946220373904622799532242312588649352677434602546987355790413892444471740109628875782622409732426460914057651613346612092146138729348266673454105382657564664182268528833806894442460144485478431251046483362733166227428180200232673823676293636950260573771619154105619360758288512576837102892845994853068501275161911233936181793197852361365689521118780722876230675313688112483473265010194277394711793234985877173069549420374900877625051729584541271167796865617870290002487044569895758909822992017921616553004939291565664175091751008698982728183877061313071526657471873783800303401282796744865116870254385235651048032338790663422566293933181100682117165106911245079114277330112062652250206742670475850467042216433277329589343275966236471042300650247979080285621297301506027691398731940165677040029724828970155672521594141997751482224012235357164312730087855592439257800032534630628976583978974567330787236950707821571045983897269546614598264563803587699862416228564497034688738593760597375743237727885375941168130072517930000406489641968264115950006535625272211036507018750111103897989947931813879575495750913636381267242930994408771655812684808760334528528745032786948553933677873531406107092642100468197919008304495936975091588780353272197435951820631360769947367272052059273275415138987122359698401327132681746974999531384147156923601061370836077216309154669795537313579538012010364194928749891027175832453414105558169690176369602468119623598394830730640192615170665572132896917875098693755130197441411084265378492389749043258608060024966678030406494830870275117507347237123583147247668547538924140330549746402501310100188731815199221104390848587704680635413994582587316994318067187986157242237498293226497854460240750195291038457297733147370783351169980487639002510207203982108884933175489334270132551040576762790429461687753904750366616369709711286528972662182595746997251206852105417918432185146966757929320436168252173795186114202309766152271650114957966248996424426643180574007956597040327713831027312366908938262915556267445110357466780497881116103164771014452504815991401789929049396316262445770647315641900383857114167729671684627574669007264927274237114459662125294473056442900623800590374523849783238438000651462744219649042438467276296613317257082528542911818320309069677289008804036349217214348892181499986566533457673792063004193932168551292240984270279501918385064183787793318548949254069911584358727440807025704896183908944922736696419831231668176228098577995168276467805775017791757277346950037702334704454541906223128620014205933118128206107181717178617919100742578742209678174248611486657961060174968946258853454680220154462477289975061268055449583839225536336837675703192611821539870325843017001109240007769261707042314854287320561909994630750933137343065686427528566537869781883951538769197007230094939798054077492343412594422149103107063931196778666823298705797437230541989231513496287725977712187157038582199719443913571083182534105197194751946316405200130263382194748214436100124327412338327502351810445729011151330754419019527902080446023612474713558469312315823746269523388663176950882062745001773292140709011711334307862631574446033848859126171928870606470613006818841754352975736832485705064070938789202737985989633211283958649378628114570523639287286339238952650033175865047410859671803046637486421918901497217020835655739759327957696364670032526687666525236017631831768940650601625122936808054015608609399756997642183366739906172126416516865396752190111938393488670970052021677611203633557583993433369665942622095140991831643174319786710210926111325166860973754046092021161313014222265623527654443254467233225583837257112397347241005172216587974250097074828056358837191429984648188334061873262703170042311734557599794980804881997261430844828413967860266235975312082048918667154558668066658456848512359330284005206022536893503164727138590124570418871264795740856366097767352098673912502450407480957487542481110571753639916624361632354559428890230564143878862635705530942026435462605442969216373374722867623714837517558219790888861098089023713467143187832571234087605536007200483139934872300212028724618328079488440977688920200157778670523298170735239161215353606806079244775956365698190585707745093016994494604711288200703157467020067447768816640720652973655680036448027044859164568484784983237103699663196368975644005418623534021254954483873646579729462754914988919063859762405438001109339393445647463964141443611884746957391688331687007953516716421959388938297962013866267229037972897860296968175724431973753305223303358122503572252388811979884591940497379768086481281070109140886808993081179160414661184114194890799240033590773830048087716784806107070192129176730141080446849878643763395895016356228115428006950892216002370075951192596963072864395635379064951370440906486150198442289525910520571788478020989661798243361010953108333862796034221422785183726198270374644964928788288461533840210006490975653373909310337354997327632308451561869551465717680660104662008871482148283653785790388186503303720224656654204265710551914080908375939633467751672973385470274727071949850841902648445679885546977277736766929942243107420726960874757260025869588181234370809495748538861906917180819620922349626217828785651590335259762626878260671132616858737835141224583185750821464136901686479690703523270405394415210015428199566310443141422877936644397702357878821874354954731775532796354761768992765346824081005421968665142676122634014424911490096864077103423036938637638610784351767580536414898858627356669095392297959891465779440668412700641034811230313611450482424195885344388562099488865409815411510982074228329052736497434847142001579348373001149930597450579566941113013408853590141400918518546826752150887374113035698955555298367530832367918658870776708052322505515060384130560257182492325748777971164672243885909765084741192961425465625013485162523306924393222180952913982790294648582901825456088771164627152688960028422577520163688403818255118918024461947015415128028036345650812409556381162917578980861697691095795831058085211293487039711184720468556371286104631028784679940162069512543516659787869433546451449932969857347521085276873085783782091107429498260684964877283854232226354656988945789497208507797263581289370020565176654482044973108924181503966252003902597700221694374894048349518860642674516318850210215211356560039368192458406064249192143163560479568901687103446370068230974258489768090814418884445638895075711351069669242890530289906795288458118846499869188742529576893907807169661966428360089950515863303957624337315953188879118401493026313863562243430211768767867383863973838584091198038407471738624923491207263933711763768154408572307836031482876642818152696092741763413966942415396839389584626297398148961989616513231978632872480145362000337794608882519983300381155788128773958026703322971155489309803130656446689093854317208691775414005380931868266340156221145948255675635163437165514570317181165194772870772113686941923792539177394898898972048627871805070471605788589439095466088422168194420887842447960386154101539616669867709669700208992117016759119336832435089184198592812502681219801537457516813388996718941204396332989112859280278382504244252401600724020135935463685544359520435259440213014313308166096910084802842011797206392364470896446489854954372293675034711238788045115173219094745975158118874949927407308573282095404313074975053671860460622560266892559238940937895252595223288070416540359994029714015777319832947836917042287749601233422284114800206797644776522865472290963792483318784186358468744349096990594735778432387552499943572768617225895023368300712156618798698450903948942088104392061255717235847945446103180157522329924523782220276804095160659644129397764099676646498259371824584314953308846805708426657248369261175349058513953056103983516665673999175825418473342444267063792831220822768745975374777640351594819638618129885302919810936344066539872245602375158836238752409913737981388682091773625159669362162328489831482266987881238328010793903213464150999517615586544772178153008410741701075926136790129895181051753558230430457436215920930706712231240559010879686055621258655625423909992266657621019688856626326070921522673435186440863639833283706657089470206814626829490470570290205955608101568789840228101095110018293859184739138541933854159832014951891929740588125486648744662500590849768822861350458040722703688584050762841629331361488501875210261038128012282215560118732697925849072486775600194583789999581445698703138632159388222893713943734408226322994342159131629063916147551174764292625271773522714374200447483575070928390182321207119069997741653346304765250730562420049164852625100415569633063236416265078967526720538173832400298479731218867540542705364928610474391595922662109188605167002580182260350105313194109640858813904522195626487494686372279570963147825776249754982134219915471783075798581072149167566312267385207157139944306745962289242956771468161866337620523186471825382551851855140276601699592009564384427102609649793808157014011748743928311928746432297785880287844202406749640042529659932912650269584994977873191021123156096256133314871959631265977135019730791638079667252304438695549249159613362403624025617071045416683246845580555222971296098051855496983122087998491299632771970251023907516012474517104071396622907198051224960377088972758897973733364166733055462099571075403204088275710180525345787782866503429389523166470859047890494931573992259031135729988958213797561828803520590749999218231836428327310034671962224003340162112025141173663881219004625945622646568214061022760148607054568882753071598720526587024889641098280416972275302909804000783222681634372681367022553843266764373796543618855007187406642277397258004940719357605502377645384522207627031070316088310845619123325467527044913253655272320864942615005010891002964978604521249102046582627267677129031567177638631201973532884626405844026111816562555463541303001292715183348960390666853633952062850693703145459896111256789870762561328510531623716199312161949727749953123618629787461546043841372474721411458406817998398231893961267626355180588215131117332214868797603222835472287144902945778431175877868280654725298210010602648230206460598126720617978932822387391436432570631655205444584526623727386402289207533960350234053516915286595255683563294155980804832523587467405366830143404456715082167016422304492820702296665972991985697983590693429560408386807326679569651937099161709565620802368896278003443841043680150650641686892540687437541662866601448803834853481802300528441682495127204164860219818042284092364803145452184470989270876690150518323065152790278664741313294835537231732588372846822419681718969200595332398378126184186240147322092996447515827655208823489076397238639930327955089380554758272912497242045040200025751177954592217964116411616282222071440090642182952197504082722843686043435679613367790575675417500237500135755538441743245999550858750845648863589814857062593998534543560632857815115112734864985014216555353250270023363403142070093365732092304844376044509376597436938805437088341623510110689320219823543352565208361581762578873133376910308691897975213177120714459590267463896003666436106445040487080514763180638096900247357472151539698499941844894714158539030504574248326274091685537546693497283999157581102645358898610584694877008126098105479669640557244160697012274126219867371209308411545416199058642572022848095266135806401097937552987888365418855143810227226937757891231024787252120255058471114957719014819678263361875744807672562888111244042580980040996508171776460359295151939559394774969390832253397210353390585182954672719453078692067245473260564285810081068302207760117221465744870448020459783433379063734316567345040724281080177378571307277091399120026750282522964555655090503793649110875564064796212322867621414334116305291318588038960493699510078029807420861266618470228944433623198657044961737246032634139740835274253239582590043892944962339261380974668317444311723026090112557396545860378060671543543172832264585659972721512121820471721118106418008351607217557306226665238587334976599890516255318969687147173299801275362892579545262950730309674589848026142872413648178949812801862961089235661358550501610918708904083996975649658247433122398763469317037388943646487534976674832515030176261045993355145264044036466037424855745551491057045431561658170384461332182264879162184284749889711072151307975361737328908855562705454569969800240788529750410990912263141468275534264084395669343160573382834877078207054446119692944430357294474204249797152312071911625097395248163386542603603992840235644339010147649976581783226188291818326858779873929795033188633165829502026815190235561809454843573028818674063562957798395166834048922418805023106758046716533769097526816288500186408947852770345119232828329124947310779012731171250853293392198876036628992889225068703721238910093564818716208321297786018032319435823601393383388537967115982224067972708245343672495976862346243323433962781687952047709406315002585958470102772126494116633380021482994808099593687227988951104088161566469241759351376037475485843038132338199582164962182866656595604840393076322029736712420321391506410061520031435818147034879244691894474694804448020208438320451730345381142567855395749228343374496397333286871381023935466409402773903356360547068809449164218660488375554748524831071721871085710734776257273338072021739149667065364647105981377259006751808748797068596742346003780856753882592287908769909779704603391088252150451736380214663778615811164291432951910940057818603113786091930533384059106814288993947490944210450958379356739902270390286159694264993859292775499481034690218983701777899880205482113047051351857497861146396606806178457340111148831481930333870331500207911140421260639716835637613517327019783701390309029466853258168980459016710476756612939715877193804337196816229668755498276498175607369717907805177479801022742545732226049463317779943998489594889311423841163696478998606008583724526582182293865810839131967932400314000074952953014264502652781181657984926423648874882820145276275257277502158765940875077031543471428160751288904400648460957154444791801142246419391069986323573696605872063982511686130019733652057224210419483019526889620445332043374806010239479400159039190638752634784092938969248284393421898001594152773367755069279157119746728992357078072851624074032449695197896590041536864184601125821688473540156116939353798364363219300573436223778680870206060524278699260756064966872660141555681136027184569681898224706733005800010308420240909549425746493972348288806676914799713829148395098560373263460097952187578866399056374925418364756868202103788569758579197029366820729765606436090553295713033928445669782930565525567321114290226950783193423774448770715660633960874781675212644831947400953299794515172928180287881846712924528722520306387877776801405192857196831567985549836481014211570073323611309617416567939719529232537174719106079571948586879518624985311817237400606930092236873481270030623204485467181585546232532339932869793071969164236338960758466812220824607128791763479381745424144106714963355303093623452868326910267068772338292979372287352507889393515207592122611276847540563810001993636743158544667202866208134038822606868484928005005222094931171137908673241744110152538742574028466718225714080977038211220898519109087372318768294524523855123068278799068939451792964480496695394723605709798756906171376868156765451061488837974362914298172218537225910271556306711453800337350293892528105372145932986906506672712512442932246915494627457832113127597465956341262689560725025847134299889247852952436514822197749056055322476791173085525081997470797939186930823393231520851266473870138156255579042684721452076296448151069798108869400316386069023311305027998806230044337777966087094204069963700516659330431424128504032795098256411257029922022791804565266904344425901367449147870673643773032713769888586414794824698305849727621290814453784612700054470921762978796682347896363927449432153824964261400777319664593081738525720645828972572709353880263864681259136677961593929891674731180911027521789630856332099004772214341450033113406690723490150878142050031016907203125208306008584251760629930576675412983469666167358279402618723782310503522419958892770724984690267845315383977765622499381264857548788712760230001702407041022190983839409112620719115644219517035011197281557290155657116617839571091566101333528538401708566735248661910082647702838491597919809152428105350144530462072021799684442642042681833075163767175512950143812720830622073311770500879947829438508297637453781370040021492469623375995987092422609934229129013201364526907247985975466662727914313916318285427432152923370718843970859171408754528597460966882094713761711848782395399630416443947479971759556582567660271424773155460656925926233117570214840369166546269040350846948625942220343248632980843268053985098016903598216928512713883197450697529083339645782964623386218370419155771792789089907756533081714708683325279056510682764461243553971290842626792413912026969175594437440677535341836834750693004671745460197393092342350907673849171288183351294471869601189671172586202433643767777452909101331395999398197787826270051727811876367260356400242035059000483750015395024421514263174391808320166249403380526930743221533840279253458597474545747119708276166883292777248440304097777892359961824263494519336375268891188354762506990742421547285525054219056031786869831660076033547794297916505549100480344417256485733827311248324432360728240556308820597603079161589848133637939564460578006136870318713394070405142004632541535858928148669959765012838232430941346038567992834873792521310005658572416697476827863019587338106257945944504464159626982124228649816902782652254266068148909938177502876914677561286126807367732481021933330746535602254170945618348554875776514712584999010274748534954968990721830413404631994117682918615652278110037956526586970512887918478690233107219298764228894353736024129848973342447895731250975068318023365135443000395124164390417906457844808037685986850820044522093284164896981859580195292443538819467296979977535468197790109808542515105778787281940456856968054503393811854754377312744530583557855043965718181185127561090341216153343895157304444883566828064879246508944717799370566385794124517335114063228715503379967834311884561741060292238046015996220218261670640218977065317908111560955366518419818874819980816386775467036961203223360853545793100986705102487003913678529840162386212864893382486869975985557875503092746169578842811761185443244662791638770217756833496440697444554066613981094022785284319481303652608559738230825540585492082423850081029181453546114118568786600721217411530502423520500683362451343720646017520633499942761184774263331514449265661907944025015074394463068746766517667991533515845676751344175801850452864737349361640387548065367813992776432161177523351102515751562545963680754467198310879963742974847174355208416251562853397355097019030825944950768177742014844696714720056689148047416766328313539289880774415074220934635017371210077118366563446010949335583327315860009012874828485711672777963746073071879360168508205522682474318388423485771813368858969493168175813649104386735936930468584721925367709752605335698331531238079275301412783387236483862617465190793158080167186818392506135998573726595716627279581654642037589166184287575178051200034057702395703016423162057955341086902932001555143022973655268710137617441157635858908179584560256624753439373762497644523701229601875338756079117856128299065607607092925079763460565504083752992860113283065581341050062559428230207862305510604886572071872288131037391351220480687654986923180351099396041928515740719243049080514099190468882968871167962296401783609830659981930835980802722937492353821416344800667309469184470226740354750530583015334970508056199471519498028331971106619860462082950399334320490519429540990701557181623327621633868512747350270683439103801928402061124109777453065094546721746101337542467551357850122945467926415468797474163846130727523652358978575071240241528692005614120199099582423418610856270193420147656776246847161537839512734248467741881759142968859816679332143181053542868911564498363964140279030064035336280424843728294896670004756317525213353247342757663536567062758305255069155851746482817957006373016303580792509298995359623595328038414787223861439294572618318495439833810895161342055991096636262512131112785454865811036563910687346109602739994196744420301558111007167939676206320771674117947419681925890210254364808275871707247200821323840072325621764869023206562772586537557630912097703706429952070788793897776830947364982423145083187473782824332609746982892123982308256577866803347221391060725933994604184030766384305422654476306709544725812588177721617680765693908185497101227496303113293407112768318082039759087871850179916732871098312991119473157482177063437412951110792705671554171791062825996873594863959675502852324811464296199811345829091357767409778280147618164275797683327178092214746150515194879881507749159886248261033822461758545270086372177251955810746967700926565079718210708374681157970141820991867978732758490153929456834785238176624689786861375390604479169431589839884507274208448236214336326439049384164965550117206395413936690897092440690325570562865617152780376805654712826880771760651884058032672313932019165580535488643163742508698091422235399846238597737677373122349386559410969255563640591566905139881782297204380712315798805951015963522423828371812970669265733294404236011696172691173758006286100308967348836995833089607985138732371473679165631317663919260327518861882210581023138635817367979574812781174535306502001551454757268457412960339244323310009228575035673086972128410191243376941686238235994793257148643927516895594363699392068934505469848725158319755551473079341148475990075037806089362288551208109360841701648708506088000662774732621594154189566762584911780544177865080504997783137510125508882751574331738800549999828878555822443433883364934523906598712325176224386512890286754759166816082369316240325380455913991120948611474947846119941439585844961361182300555204909177360731840649097192661965295800540047408565283688839719436619070702991758867866117554708259155052606497769650505061993584100841077808503145775897400171162605056015037448140036266487445548559331486696568235026171104629786963340607150181660424825512976810763938576535453279294160432335967932819178037196343969417614522919592916429508023740395583845713384926972202778564214274638935085602640133512384891976255863734237448159811767247524889817089478837016660918068330821513981663280104769475856179084430882735078259957730191877870561939249576786778427891619704045516985710269413874974243148859036641071535838182833625684883679726380030596935429592649141623607998274818683922069796647451463066090890087095846269426480758145221025282491007189734308203211732526203488188216854539507203866737346549006769959813928682903798980775769429451143083900221201909505939990070637180601742979287276865951547294983598256862585386673109103421331103556235954625244676732629322312372915577230833373702929509598561661901720528274977837954661723888060241608900259944204484492701640997648435875715846955076526319487322188940545709570893630990712767677378332413005247503919482504777272781353332443862751317032132513397795071594698371286929023953603588443513110825618518904400127198294454402072437011343038059451950078863147856128459852434592583282252788205713978416726234655935472970150854457181585580549917442385353513082467506746621759936742964186331557454115029491840052713436762613521988857167575309149663288300516958143465688159474745552948743951194879577188121048776450035116171235260710957807029826103646971029555936155878422582209672096906331496051263452913101176353512200574941700152743341605056619984101453676987518761440451850442104323036316350145290515590713130532981634395020848061740171887344776995805643596919202928884594461635982870196258713885557615341980867516334536663530761933027952703562504559920328114549661687107635729073793740472879345930484275644476720850202919593000526334803729763433534230532863163190938802950493533507418902983619732289681301282314372060084935553591614810674418535174160711202761489837920589811691241372364779927395996908916174544864782436597742767822614273944984431307258945994018633806546767272622883326308305047926369985247548809902359740068529382985994504771406798396995160006328287765946362036516626904809683316263567482607493959968041400956647276663308804427538906313521652169213259840906186251534314856608465494322999711577199907729395492622473931437560136194961656700805345540393940052568717717917368830327062628356945241310371094989750641894679070457736364519138447570241815667820591484794739443917347506340115765865979416501135724538075162829133197311546293247769340032468457310970675449646544549708644925341403270914165878917093950069346535555819816908445318482603921676387287721999222385776560648830927876376361120795392291925304552323451451245717844968729162436615083118414951180275717311042545069606704066944895594110481044596803234777218819919526022774862977544724262659670207663071212445508106720385101642081681443848215194086379284718793582159972718532250738067326989745823520568493181200217781048510373591604204514842626462571030102722233078914019215161013639267571564078622030033586111810094970908190933588347279398785808091492501347518884060345313473241478093779814759779055243903019804169008136413145116974380870465439543677193877706057784114578672088559296599990049182813864930876589304364808349213160579043173268740923122867656187246411696563464204293311691944607262871165045355007765990791857180970722199471427683779295170578734117913331036004256983778129249243207027081044417350078945178473378345251474190236667838951344934461935424967893856408689056281245973858311126051168858745078175031758539546755789123206048339434476678118792267336638285796408113994954571662955160770323267659970745767268879012330230172140227016902260447553789865011191056010959269254790921219322952039346638614589883656480007566727126724996110209091837231062198290209966462862110526436558427199576184287786959056418732649600722008948030403385585848404943404291145300838673003264657003402850868896412757601260765771625133171279370935749591547551088816222528497722139172130015006130954210330083864309187341495896151636280826693127792775471263435203251576293829941198689847747945415221933434342406133336132252214749637238379495407322083442768899407618640321978622662711269262204285847694085973915184820577043274114478570232981078516322716862647353854559433514602903035833963844976361904724807870142527876078960767782136150477936474145989257021532406108396336891585074300311323759017190729478429908605747437547035720341202634258984251071667388966514682980778540071562983813524212517072919187355788197474519946581550384519292046099295665968878468517923552038293292520113939600493409870488811389353814552526752332507178461435766175716887868193637309630424250913274962943823036326577259387034852547874572809668417080898573074625806348781872794698411726807286171095473644052869659240816610819435523306804819343505528008690179045663167870556682101943706455745916473654163964806114752646505361062350617296823097200419525108226348935742574172791526865884788633117838971971996453424191113227462206850851066299174694531407123796301649952401357263066105059923181035635186331758712908023083627762322137635474431751775093654886630441132725152807600645781361465365853921935054874938354451563109406635999312339014332837564106689525591050878807791767005084559910301260342304862937351112709617297442590063832633307991496469324471668688816086576024433541201432694169184377164258262738927635959230274197567452068112048581019879388616640288929716054029415734757702706997262896511446928105813935941092871147105797909773285627287692319928379535966682922835792881393024436764714035880631171214883480936101288036474258275353506196247526120670896597054624938145143265835680984186570006801489859541822788427763215234585623528766529074015805682153507643780631120319475382763394315207144552507934444075791645594620585859151911109239779978588697247976994535809447932846446422176091700390191522695765821137712880884676653260343264186918201768135433576526340954063435801495753053901972290348019397843005667329341127681765314907723323916722771918599489021867550000525849525461430636755564665591200189848645262671966850043996832806065346025443057055339971208252777438085626339426275950884394853981808028265700784852335436386475664206099173953134721733869031248388324415128428997097926827591719595369402670292844215595517036101990112000052914182971538205353992022595982933908975867709217943074891986007230810312573585511745342894278833840961613635230899842039054405805304236622289314604922129371484879943253786823248699532730488465383624049694675114901814201574863115118224538350160286472629884521884106295983694092241537948828981631951470878720159318319452835586794980918905819183058974460839520585486221229043587437536980449674395834529364529882096830907678421041762790164539652278392940300217913762763459580100033264697941563517799342525690345604357595702095114932511383595701506665269715440923758522008034218334354073223529411043563312718386066631484935424348162826308851468388121162457031211675529929437455486252482554487198464927526576995968678453461558776471682717960955972822177239682772905035908550947700474836391286699588881473511576971863156367265681146148851876747091241246882997428613691836038687439436929820619570951658469182272229630506199274182399342148167349465870357783691486087124079739951805664358448037930974680649976981108184194008849707413726265225452356346135903433844440286868957191889256858890549783702923687894132931243727838284040972161552412176570684825535692126987295262558994370816108720021098802962446087907947244172584908159485557534551465943854009660997527450783227739207704831369165623765182176327757166195091683817284351066470081206050966869839377092454463549306052413490597399222087153249784083895591040483933993974408484591288025011910204823564005651628624117852663028165349510921168891015867817183497197494602279651325990975053707300815972713844312240766455444915533906203768481116988642197526909281015880904358636655706861547791471200255499366288205165319510862309191812388125196312845421272557832831340336728727081094115130124660305718612589620770727531793666897034490592269207824357187088303326391831422808278475180994659880423424547269239527526849751718676024523156847498933814422654149225775601057378327479717172548067449510368458826508597588499001732350124011496480984337093109175025673138503649783571567613196241563487706716430002965902782829404877361350878600650851841165607770536794305934626838549756643161473531753846577045828722679126763533655107319095795155220988244675949591170316489775045588385334514231010372877992078550761794072093525356790126702625761389291386147085552623472098544440756615187800916595004015072743018814044589767312775012508165694980601941666700996618498643053400194927548683663201096506316894881459677746518119474775416250188325526098923751325371898126085296608674684322116934282979761286306053368923094690267623841394176426971989294915846633852121825439465529434532301940030121191476382546694379010028317426599950530183678663967005256888113684541909396891991680081752670255000030927293559013687806225472772506815784784155589478870412713467317093744847462832789511204338382103040654626014620991416576151947178198559244002343461633171286312811905178320106805369769078581847901423873609274393372734575035199370812520316140406854150418874772461002736643187653118951316790279462929962514060632825545677172484300063359767628872502569115257718204623466018323753380042192440624183398238387388216559148566813214212318958496661405219923329523660178387783493743526534501453322413067283697533615712375886561467152403446155971948979818599498710740054367400868946605942390986713884387709318463939077559007458279156555952787254774267737600896641569018993355419036798783868535119731885260217980578790121783450307029908368193941176882300830276695005974388170504336203376392046868499436486500098212431265019285147757146337439534485406201248906087465569085171770078351016367925827855094545599888494973268511109889299272014366933671504934388559156749029903054938159599974016828064674647558209845940977360633078489306513296939300632743352212240334301609120539530113303338704859588954575342181878527709596657017136974668929257229500397665647702135118458044431962031609659086377030286885933551807898389515848215434094475134649450280170157822506308233821411727685717357245107210500779251781135105262647470068512087925480143916967818391727628243508648378675219182985451932915691113555462998494752188420366564573583804254061739215859848450963623735080369630056889075536072429353065053901304132218182160221015382893373235861611013476400327130660142115249835679918130751612104149898280179145250521515120472473574297985032593035611964986447523947670944483097391010231715009827900611574548457628000056467902741382697998047000104071161585499070245019315720672267162831642089421430842233809533026626859256075707631807705924467432831572980617468805042312502117020988478957484733990719897090198199560807125379010003520652467475332494298486559004223646928603658362293193519315129241845646393139153814577295762180223936905984904374106741407310129271812719305337778530353884808126815463232784015616632303108489315029006880694474079618491667197340361068217472360137694767118474248128585396424163371995524878968387557061661703121119606623599268410980824479049688541128109760023650986610360169419156224221139967299695399578134133860479304518585570265480220574416335277035110266225156441594282749316073172577761192172269076289853867991458171905578572355180429687816823431789588683467285899026374077262277384665649774612152621869742255843729556769532162720063668104910081910679202358849397411593102675966064639234821975333393566630166944640165923907116596974908929014158924203017067973170534463136909883836469356457882089212283127456304537916764854370722021303509296801384427721788644535895960512095490806577541962564556987061437794227916192723576369536013060723281520758835843678348476252777185459748823311017571583099186523206457378773544273003499751070679065113509932202969075886738708676334311497643007369342638189960525946580434487234273927738072954971182978583981733823880122997696455845025372505984593828683923193235044026551676084750716086590777909978369083155817811316007857440903483642040333195479090675055662002244467325389917941128771598428974711985974150729152396546222645706978106385257274870948020212343168140095609589512827839808813082037191839434254715072510570350552051780222050406885922689816988123649217872940283738028788528025891883188441919805317660823157328985180520648759151405004990348732500766652889492301943374487714500498816052116107103222451819728461024268586694912462196061795910075570014942352148817306028444013479226574354653706680116853816578912501349934131283238527766266560192807423406152898185699220945998589144975901846767179829079410340836981338858968760057491618989674524831619122109981776770563231993166415064426733612303536378285808645022512010193273369516012500393198322259323253713014102149581359941686611582051340689991191497512145790028953312320921590674271568274071358706177550742773646431842755658525428289507507264701691613435945029691847404703425586654619938275262420704723457280869906093498062026877910047139151102102567118837284120834535421704061638182005756167363823664036536736088795828101566172969111212925570965968947213446185518114031770520152376464425256280205410701280401244881565093917622730322761603760450372824458250722408572796734660636560228438173935911552946480935604555401651744524729712632037465095382214720110968418176948199243775268165820565784376322608603739194083776425745783739805242451317819806046051685857998520593325580883495450083506879916828711481637471688536390934386437680275884141664311211383460387391061301306567937373913022295396444980566644444694452725326764430469363057297457950099307260619089733674471812702059638959868363303927328045376770375352367060068163603058809409126971329645942796945716524275419499531126404951003115556744975525632826730697759397749477689563884429430184515510890030995121569075184024574026384739465326882590673732429124528610012260088005344911984583925571342481090854686860033071964062891407293665232796637877442659838771322976697960947200586970379910667378939902653115797900753517335289467747980333871497098186904426841414559953213148361721542529963101449514195514949765389099780995757003183732130009965800393463583570420588539445903939739310022522422458009639469905300044195310432133291207784094300628005733186808565947528269948618250673900415396827088027866314741173935212055698129838384313311589467023221808573982400530738880061275583685851230587554034991505473897399438397631872865783156084818089183408573636847143406519207857818066022546678190720437569522606433451200760345762885552196050250449599426313258765593431987814603421441686564814111749714321361217312137188607127769943344752146693411202713421013058300648719734309170563994601300566963484531511703076736323729903321296330897611128287848174055270095422927735902354378974415922895825584487721196571007544648018493238631906398471170689310043041980872740777324717518214596559082037753513100103997437820921518660164101785518448269729317321359177088855285523857934265636754833425209116719515748433181708115986708141395331394218522997182477447659837213113514332362996258995742868174385591440565249162750121646167676114937712010974520010986564405843810524559087632327350410272227559631071564044529629572696934308859942102080811322637652145050327169833491861869139028350519235448781666273828212288836467119768497254269147048251265626412745108769107696559048050396128349467591327329353832095572389970317505772892963793602114748139497656319330939038530483746401303992405757527845635855876498876643846324978542896642757158642623988967491956985294595104271270408768864464999320203550224219988042197030497611495276950785980224487966315681770190083716453617426289790041320380872030545565367091868158515308743601545617484245345095553458780082455239280296439679111853584296399214325289914783529842439725775955742408502584733729307979075422051528883235542366185792837561583707651234971385096086036689509301744157867154934895065193741001453251861337943869580773122168447512310565337416320816803762508429587424671870513700304552793928355009883028110207004742323727243694505267868600442926587075668159759501163091628122390247800088310101791903595002450387803671896827520070147536355973336929865768151414732955955724174419114949466699087389799211531140533170429090688598959275773266967144085851029825731886377280360256974340192340034824335533595523415436842464546751275171235626798415283321476550674611773910670812958908248846800463536018489537292113952310492107260194282329840800821682207732817145142625783906492388348862473779647463251084231070892897801983985563483480922760843946220323362619683846546947317977231541224515694149257517490258155442080027773839691850579161703545212453324446741653399082582184004352978475787008710758268345387885801662178129874744576131260213295000676224544270843396292711743484175452248440955755301067662333145521311785461842955894534437564652897243891457540577570240550157200814617133256347427194448538450940079916447566702511447872386640639998090099222419688674095669707777626797847748109415235155621073593629280654151412346144992215821673655066259160381856651398010737366976897592526843843951874272400330849134842640884001656409054206592903497920561813452011450896274475181910593763117557324302861172051790048782317326347259458355217785873817267495045534671154115471227335044108080977597322413530059993847409603167871241411334639771948784800328617474041114016156876611711719269722605996575780306687668550678886225348536196092363685373151910386706832935136715802605384098579344829081371833140818475116446085361735466873472686297971333689512641435040847233923139383132996752152187593254496922507075593849030288515584263276663821900614506112688258455912376633688751134678213961667295013920965356994750365890918593100163190841157483367249323477408198558453856977811792345164037092064099839658320821479675768727269458329057699149328053669430482379425867588010240828041839285074282608423764595857484903220347737726266270821193631068096608808872284703052129283803451846865897372912759126232435984662102958926583478709131035721899489040819688868278956705495713857185017697543510439226988202897587971366225651888916713084262814566421160826175795677193862216671129785134663781897487457863974510558048750933947019634436234413307559379127925364441628893466601197385193090713810453808607840760581097558047635209255652254956019052563268937509274133536149804943211352489595033935187541771479977021652795064011248460632378140613514255304669010584702514644595816359900954874396259931976856010962345701063031982492564736293082339162258550563166319877928984645751486960324702115943844221652570753566992419939618029407558282437619998812534318278751332242437894678719167516489032637878630819740555181231369650585810410682151040515536116445929961523935504881001452129503952164905378680202512404640590884803112908908184190642659661470483818998698918648180587468785102974462169716177797698830052871803536675642652399884620648963898905765668666580770769871667544063104563515272160328050477413720818783824009238564761594617065064584766455687850305508268048730373110239707544878048694410005987218639643908001724024106290191171233366095429436458196100511903546321958294769731528966050635569982371111856896179815071182866740942429661026215684919152155844044121282946804183804547445347780366160134112425265768184697644496108599307845728468254987143334055113216551771668193269572367132751733125860281560467941453822511549835009192285029964359446109713971459316641700287442182517671768008840814580437082620281989487073484739807496923625096803675514844969581011215273865116093034039284771095479877214502263547425122064526213714328424484098730966901961991048594823246740872324479607079210940848698928859850274332770179377403101598512779631579573266935384768556427026492809890260165872392409607081109572724396729706209843577125901041057397667321255477555324862944550179679131895670124686327669996768488125133938355274447313633281065354711126109809839526614704773033922864885035061477881239732721906620486820949736826516685286572633743799702822442695798888835919041832526635276188339598429458754969754391176024120977602025945753255245050207520746050479112050578523444376063230404171307620226815922755104641962141728458641497073788499581067323573474210775771559317772561351504778119283745918259883381653779920322096319158402483006147778810830898873633678894927482389959594764249963084435535476252176098945084030172282259122481992806145118935548653069192318443913011533830435401439927337245472647298145672530563812282420003009917336202266777137943484281052317920834913877627716865467651649247779000386663171515126015662087437712740753268168146203014415123393290425663877612095688346013884695481442029121077538690278098926889352659893821726219043309691142169038932610241935535026542211335392593523089358697083107834395042547650542159581117419174911633244508799050054916611714005929063116224863462757955958150331434992687807202435310039540928726948069098908155515725614517102665737240143648052145755705343408390474533378676752402898245367738898721318184993066735591077387886985137831450148153372066410233016350364061426709061800410556992657749519476860775613394572272400003280627094879487120796640277266749256361756026556164755954182168956805368180713550781802967932131168456562166403570934610997026253085859310380553237895149471333894285510099483765287059277551171587899709502687255503889063878749768154131202503913502778109452424054729632833043898668269620668823494415000509981125034292904982672259468951571014547108304663521490549648717730317876969996585653071238060597518074434735554176874379006116774158688550306958242331239703093331387820306957460180364947852083278496185712383730211399297116404400042400879518154647877335156580890198113979009384238523708203775267184210751327821204268472691586948758728918230806251069808182652340995382355628198121918549529923660424277067188729407119463340001083276889365624225254038590616985772452435651836380749617850111222115825969081542151873882612141627065967692154349290004089543875288872953696759362874670771949432828878875499344829974689786510614663107768826126579020435279382976986901730076342635634667877629243811393277800855202465508335680079990958671444715126613730375116626111059402268911753329405841451957619083340107718429467541027827174114821127592812123759876267852855979223217933494071854469247012942363351405782140295551941611369392895243955869697669877369025967007841992993259115818503506755981815144729287009216204533379969125289110547764053707390430296630088969569046128371735897911393714002963537403528644236802311519803229213977027394573910292238199922845660319047149372816490758783922017850761859198805105943564449277989551114862506711913828995777783452624693388539289414471687841604505093998339005599684271392468905279432859616100169416233899044128445989934740214184656307126905038192337963668477889936287229645774905225414450350244339931284574396890298417644952678024104455543451810888622527275739835975583458891714681627286692477688236892111054245807560647759610878030015341882144647894832986596892092061396123144230961037051501609454789947582204400602365500576587920141811152267966220762972576252180377852317771547283730015665746431572798856800615275754962481443776662493177088890482525124291285278533654930162886581717192807015636795569125738391023585785108947025204062930806422547266393576709706005194986668839935659166230403120128822294675674368702220361000556196999991391699532108407374975487291445090336474577119731506167553646540435444450929444711118580207563572050048978537031971851658015107280350154232590665874880602414196930409600358731162205849390913933173743467355196894275430165980744705811256524590958912670333134182403568633671428090435018282954205429605034093554868685568380803601998588891665766445890876424357258392746552766544611446167928410303916438430727992362377755517534669974392559696539401227792868245639273441398231432107329054549515582189255607006413833233690061660231790165189059508043004386724793550839509102787948954214974865751094002725688758994046091994380245447422537377545525865283743861397687613290040245507440797504172683017214171884941396555762860690363250383550991605160987019206850119005072103730718872781103489309833712311589107234353645366795004493012068735125900598116492191667048147058146615673943477821769694747966041558169664533815748088447037661576417313355796857303991864270385725250158246204993039782657169899071236838152045446194628578761838890445695640254184710837936108306835300832871359434040487432044579726584027493095781665216252132917966360994136024822205932109574077950759043930974699972770205749733963047214600895751559236343537256427558821747094390291385884288475565138630197326208251056754886194992997023751347011050110612018630868822111933802809784883313404183080949713482797699032551228623966468368936518702814830354783173754209190489889896875244305620851516479529769298053804489164979245580560744149887922953531518821686982053847004593967212721916263308053635076724252815154882922508110537444703155201017753037719188935682019104842687661445366792744605544764405656780570660367236868365715823674404979192548458831788489031580823599099197993525689883784273284110945556918986460774165630016919952772591665898731722777410150928760540727870074666937378262261548829665482233512488594074604006328316521762236698036575809988025753443042609228920142853275165973316700995763999256332734008990162153407085035309884948325388750362152906203153063873036194075082204328867230648514131486743560623991881892075877313080230861642195647766284185988235852864373100705019979795437059450950110366994988595970243854935666123913933066812858098042893118947939421557223470404052454384094584223060545633939632501150563836134510650275014886260844357930176628719593336735882499146360115600778350120518909814634451682069179150017361715035471899835567604444081315233063465566341436495329358713599923514209015982677259599348192909624140469455401240005243256284598862924121310560208925948055729969154383907929596722713165496380599048237217524646455555370655309464956579995619124916892326621307933729336265463085886512061757047403977080638529246822325151380577768911809777158889016495511946476093182293238952415975978078456790616038392297742030370731391990658261850603358963714153949561792889823732750095049797011730580831007458063087361833351339191185719520763276966881017250229247166457624372148464443357834402707201453540699078435641055592514724011691606407496402499741346938189848369149261760786687167305352109559581692862261325978079193689004322998523547217208308231005055761967974323132409488159340300504156054959084660008122765165325103571355356893990828271229916299374762693339176436990668764757519342155015348110977787864539053817430154423338777306678851760828518664012889504139961372864293654725724945211503995262314158708222715379764188304839118513391574119526605893788359409228355588168268729651988199438307688855538297158908293899369701252624832687990224800544194541565829267643763706643124618592654431510797722533632185464393000106206058562026036232472418711687038896577230744567209819286412937971572513048245227759149126227029983855385135796283459817554697684438326760406192915113976704920706867977208761159609407450429604971866251684421549576411666905388963279495294213804303834933771328259735644899711562917611086656470683328531855437452180423002144182815369755639361980929129935990424738906272521770302718565097329058939001625609339389329414926501151048655729202150054694103765292741858769349870355430909883683959555904632152117969229202640437550243905237837824596396872534960227599396781357974597103541360236661789330387215894912864052662001533839449145796104870313598272086399319350714306720174932471895176781486432964367725075779288212048016180784410622024484342171622154132552356375302037799060682731646564606430548524075713315946876793944375612370714816177424023107205362612347185445937879809680890716772336374211761676625366482452342435188389599656704146306296123855705897810342047628953581214270079413093875027495552722828196502340258230803118608898684354454626550086601477810160199187919304409143931951156886903758350903303791691687314867313356499019922603999470095372553758192921690989089148770358666692751135164562378999953525288862536319969341833961792061308434560916389899148642307031604409026662104298190648105123555425995378947083372030758354210542458826323808671828990756526318602785917658936550743255367800956950002028253867262487843659002987285212613912556557288026193119065538212140198004304314636397013736264763141187281658371311144478201899734282220695121861530579543746091792858306745052669093266948933034803116009672029381807576919541709237731263572900366146123397445394545736873241225643471449548955313666841387350590555938324589790346157529736267633378355964841419365842910531583001496599196134882834046736669940125780811067799986806858044106642995396659852762002555064798127311463168409037991294483963023173271778696315018429570011622242306574402526098715479742780926072939380358745357746516857942046017188277857958692057391910283376035096225855648425212385543764343110846008779651860881948808778867618232455790242789212631142374233773433669189660814954182429675262520568261523417196941910340941796357950529354495509455487759455867319123878336885798516830663412206505885974024516959855978186918176478118547519697941544100072752743215477815908006660162242273432877564821884156097131647767285974170335779620140027998058964390991305135182998813790883665760869659577620308667647207672532370163943794474803371866194484317351511756497782249009662313237399081591076710603602338092896120277538635716053537025146731695612068335840974740607992848417810684149619678313920570742459938195393872833344923817511552979462137528481907493151503290440455858277230897055095326979491076917286191783538500239925887625934742389710695721653494394383224575245062390436411010793481274593564006220860615066852176835983402791068057375637232533467855927102794703259362773173588426877815450497498048971653639315886419311229321395391661601876579409969873800660480616605573121284468752132127845625530987750646561950832349506540915557860134845511613669687172088246191065987640365317247936799804811845172218246127461162475374119678351655264517026766440544118414249709108815223334295250673546965975242452819687389504722174524196889197937192503360381540321914968994997149737914910657004749657519568880957543967337963268285387893672558811733998413316397305391233220066908602218033520142884994106668546473486056505051919991529805763202239733359017914567991704239577512502800143405161148842856247334064320156998009375383976801176395117297474191241961800228002282979954765453438434479265790793145504160871307084721235337334785325394117757435287353507335769474260577516051945838734508787191254552694565650253388672334425775465551180090934664008184035675560393079855284515571898230670132165988089195606966311422801363327283965256474519564625325472108803046638987286347516282241454660303480527311137920781664360976142934421754030749596433390545076311464369496550616920062127465405776407483791136201686118708831446726080319810525843986009256743022153693439537477575102979788143303203347871188160936959679961121374250856814669412647822742597108450737420859278188557595467805365991893117718063559611936861320013199555480964743181668385140302713518167544826899333716651748743893632329453885302471005174437248076756378028844639307193585306065463178943547247863010869596456103155829335613149589233544142661157736465034846200291251572443855028858367202577476209852970333636965212955267497889810390434042267212074800634891277876602553577130324281056044248862389983310771598557054484877653538158797858981169387600169092758651243220547833404762522717479567713616679419365587727468167114847687254346106541091146606301788153631662504794381453684562177675491820564589355902011980338417673183262733563536937984595716488777482181847507096502433206694963768287633352502138638091494155783534061473261910624153209087221526473557799879318036381031460339594618156101787794164378587850422755947269546110733590821348960676858809791695093786756023945061991234894107074132282824950646479161091845686832480638737947219502365801181524914403337621568606324269411381101415230544501696844637685355348940351275270617862968367543115927959634656018667838434341974427281942679172806003690850990167498565070860635165056461634942316562869237729442048342372039627221007643311226865132797025455638452490709450133879412247140940538884198932856548467620110397922853868365152204002834476637973112844959965323366236014070892710170941236999715170129595174954530673839294855716079199911995368533415448391688933410415833900613639997057254187587231343926012624635718867515894556514957481084521114053710269343586909428442394391225908257937650090498152278496827400980766963599310177656535057499127802666513148717516739951222300289961209309651097896489660055204715793959694698261718319852804956321347160925384961910750435898357256661359180557717506019056029574119988706723814106800156224295025342117404542950485546612811667322734906051330145986250847594136931145637691952644257031703098236760383648384834251455785882751473130645904960896805600465537962582108821843908838905039717425125304363444076305747185641032897678437445318030364445202848888829491395159855046684513593210424073277799613888827036823880757990444295789744025745863081004527587767214292663491311785513421086499241245529423634978877674026609049752222752286878052957088669663299030238011892277582994549922512693342316158002140742819811743786834277602281649762498435605216638283985976995865834127032042580485379806798162850502069784170236343395738569780551869858216081902019631920818325557961354406917970976555077153035307623204172982688637501352657031357105003892722417303501302222002241054833143703193380350120128669130721319519151356765123543844980345583840108844444436627313084140212197149676996772927116415270934340459033347307622776207181285946916173938395744395136557166328206876732249022681222761114191987508541490089602802860610693501689839851515981121145071144398646504041956028630609554786313619182547895568079844168305158256716992946861476290017487996521291772746417920423928155703767519952929924194711003783948256309036232310726758636263015215752016616760387841717420081795087463276325425375617039255421427700948374590411656955056404882568440987462922406948672770347759737365334584707601566055275029754325891302567779930651966937629311520350774856929814407830661434360485180931908631566613383202450956052359103117475739991895317449359553180035326976175915733919979752672179419532709034037996313467266833994541504950492161791928663714234179509359998271353331231611671724086860406385778494901224554981109548748818583306350351633136897574890409815498735541851376746404297358335286516991884661417543072633491408441270167299304244497507294677531691433970115065219781882603410621020349757715415682041153764690329322179998072681903491602329089367854464434276592818347958670751846088548589443629605258979750008105233587413505484003124717131821843291168921590441386420857882468975684661180529450477931521165934494054301552846835007670465427742965847502688839776795350052378366572253470500012491811541616314442581283675418465749897373742954053757848433490550835441456955914609565359345246064399018776607294208700236228739126073826498115368291126562970660719649625462902880677501161748422435195782774277665215225480734550582166343156584883865633009101244492428186449278792416492750899204902669777396226322932356839749001097206219846313740024388930771294154588017828248363532001611332731297978811894640461067494246858120139389403431894055875583281190095979649414175566978156466474649435334303477241568085119514609522011779599223092027732293811573889103241382074527146992272887893899954995865514886730243805675962804835340009021578575691550416356180506012997268959498088344142763827294485958925666803581523353867477538338271933032204619061312845633564651700292084667914225971646792686855230769757297548456917810744771046658386350214192024467927639669607256549264341712132396327909517795416624086512986825767318785436318531970001973924247110231046661732432642788640528870390766522188825468280107158458205627483615670969666155363816214795210819758363470363028798356536938798127110909825553449262789976387520859898528529765817128881652141477004974423225375531746303751117388155925056340970416769675133005944583232770308507600061718546263231753661198179588111474592866188363926069880699281361874149442340094221236596247456269416899047396495052967069440918010771335208041292806310824892780642817332652203549487952149694864672703454544792189382417403482331880496887427975563159356231035206117323578941833703332034309504264705173464562202415217991691743780204778474953269569771245015946481104612035365748006458571874301921599948231733623579049921114711736061483333381543755427828458674693587813356981677191287961060128623721895085720638499844855380583349651994774410322945469984068230169662621354210991007167480805445660892149034157648067200914933705831875588785703393737315268224835000462595027039276547612062665892561504290737663602950954426904125519174481380984141066021530666124380798209384041495208798184873509596038457169153677094255048783748244093134155070009846695732009254086935940732585090966038101200376675480964222254075367744659635374007604142280195428940816325004415071056167341668968404067781387901531864347045351486891897741879834076488083971698388773178260912161029448298994378202782259673996800478809450828100768452200083763656583439778374533322011099646390537538188948009000840268173120424075626859378787261683722506643891271121657153575090308413232048576576223244087883472323814370309644029511477000429593198351109806714280128049052167111686823572714087404981576304574474143300099346010987991765663931165929361421456885826459002531500904542829714623998746684083670497845886528513512991224239070208703078489696692891294558800602508409933326934612451649487335245025025917733401290173621272200661598508925812540422476512003425296766216573802862240159281152938803574867666588760513202932439789365307315359175831616315536874607159216278017395728966446074920216842567136266485393089128570547788015192431056326748972933806096650034733043484364171786830074022473863473581180775200138926089001667919101193277117478406660795566686746231472922095114216138133000820382831899722622366302084698698663831250590028936360851927742768623304737648966224532091009678694172834542311511542504150523621418674622994364646454108631035392589070715012630431620389938257091107001006438299280807909717849917778057170066700594671146904521955230468640011539065521279305814577582378543059032381005249868163743623732072082809331090747072568037100266958192583233503492335475733947713195009565927053915659555003168720199478746874771128711262416629123275823380504981308193891790765301760567690337003952772502141691103166284504401701111777560946468902060321614798896762790545910384495977147674952813755450685763733604451531403504911400670867261405706523628217640145940944279892023446093224762445452610691313067450550323857416718213531664292738855201261960869829293744503190665877806686360635572309981238688207991820644160193290041248122155335904622881054927472005013599218758185931773648675551495075433656324520278096415320113732912313709047813998536196204791500843099101782999619760958391760731580534123733600512853969164491055066069418606210921438466399615651975087142994987484264342375150377695932567466656276021120126211172226041265571432611681381069038122810753984083702068792040586918344361629870742437697819439867099555765377904365642400685970149086481908359168186278167780164589502980112547212898980467388440829277063625591947202211431202507511698336173647991638821651586882493966937305055259412488662791770597473189153952120862275246134257804238115177278774806100295554378141975079199194998397122411491550921415029748010347618618717968052985445124425082966984937647146503124906036694882047494827256702860614979463104255025361635246229524588133285367995963150172681601216670322649255475885949487647133661141411396792588723810575469365120476062987361305230799113267562863269734368603297051880866838531654744665116342502361444642697697911834446238093678301636395420386729597613495460702222329008046680085747288766406767101291094968274841271941596036901520388876310964641904307335863841881859083028456927470043487167043639539435430818689134459143970231230413230810436484411279697055274387919329652677794157447154189866203222826006656336140161964519422924169615138734821627228963769754239232109391991717462114255270210372586869339825989940781046028828062764643439978133777807188326808602694916283196106345303173262428109700429556373403480471415284987319027293367239562743177581602096327642409363573014831435250033809248723393230381022957758009339861098681364791772212683901235658773731778763621125630360576331325366501558616095584669438852281854959540646289153979151792594956981468202226288037700747482544273179265212247398986540278276686055158308795463824748196878267356137017125942675787617341519302954077598141503065341555224189079406820466413512285922641059790213653129711774344487188068076518932257816410322577022493709653242651184605512116644455628619453262755148959631444902496540280395095128508866017719983638015283686466671267128970706334663287862841776616617926887521614624624526662180332116961698370041373597212579992162856902812572584080115184884130585537805648302267882075760044595920537150415010956696238988783817522584091246268764256177537639089242645214700209913959332038056629638129917054025354725142484317972417793438265912742498876625512333652500504016697289390036826867925800483772543442507805567441926238159606030280978425492651379464689535100655787836457389970765375830514972210800963110348468094068328912471233486651645796664747479704846117274300841496936884031829208142190602265995648072586164070612691943118370988931134144211147850222514382303231098098030191536265912080234551593668821599586603353823658402322400732151772344584931528215985505904272576600505295642921245640870235456874695306759296641628294192944300327721000761170638983795325235194836127520730732841594263952018346669657290402998844489333855464481071172249725855229948141990979800431007758094838473820017014347482559769055410313438722052436736703476447042969006433705875714175204604740970088773526059025237362456171384125371357491634428928024621572036091873268301043705201308912361693975169842848216764053958843805611090825219998914003726478055924279797697245291493178212133314174415581649064988101542312087101855206886458227608678297237426812915339072483377620473711667396962783837069938274235198353586074444606035778354587963346576370191921406317921644186424018954420906631040662483491874099415711203252362591490568757272269700664389247509871965417369869042515540023461881849815811840337137022203323385965672524576847686325691915164371876671277762946049335238068724948420366931340068429597800750697957965943370835939951205103765628582608350223945992455281892331210089749139699263426472419084603228244940036293326600403779248358480027111668945877464047108283487261597870542766911497242250923319149334076583500013477824348459401469143667345709385456668105131056206359057183298323045402321279027686591516542303741129021781302672997120820630999847335699168516113624324841750244690726761625899193312058496854108265420455689374050276141510653826733861551406031438534944790117035929488240184051730975702859641975384640880379993410377420160096964879301763638906881405346230053213410146372948561207366241320270295322213680149629702323257055691662345843663639112415038042505041004204958605087380019673248235696677178578202272576002770561214695399447174350836436724452778678390754801607537403670612191991770016420720267704396397125709169663920133638196962092655790397486909619331553859389090642141584810128836202131079360789186768124394322934687108090177692169767866904588250127387553739242652841991627450535817785200641111976351517791326058072161141514436549328395418404841887261172001436558752811345382949474153129175604634617918183268052759830554192549999355046932996001488868815248548542163862157211276764554157402070105910721362390451996162156794413612446605169671918822045947819274540091075060384777252208056829406312126633773454239118571914743981354831895357350383009053759562256329945554515033138768909068548002219098582836684193419406495340690182123876958894047216866383725011474558259354870714247092642107640323325480574201994246819875896127438417453183529419948337569005751529966785739278135264073295671605612434691660679946610651761662710676586290586713288219700166949284357846247386982959456504536973736054325072877223303209816173597108231461288562969053330174559378614653036639672851022600174064394406967052312563158852766436391689284351792104467762810353811672274359558925262241675963914458838473730408253976454612001056635740464626475240268648783695008179149416555818363552624383113643785613919016754992196681082614747262709249818128161527354698867908293618337852547424464089896771472864024883456956602763012980022208574013754311831764469964657789779175912197193200914363450042757730941067869977881840223089216284942558584542277887621925348249420865152993255447914675923216851677799876071679398063947319309129875384794508696811051544367906566826459698211859819021576994840711081825737308409063407418526660936822781511887875851695490425234466838629536400272489843729283624846613379731665768988803963569582937730666326888640372619921636697892711769386514600982100979146190904277457542864515916482931191678535174408801280203955142201186572742235272787161839021773559848153364289715621835317007437820018562896043464861281269315825951317056186521886955413581374112420319483673996973055578111007646284569058574723887786041484614582420404761603698149918671694510631967629959106255116456322005540042729996525347939934376492637003113938356674972902371276427395652856410240994685313924385106541860847390736659729620586198428854428580378090195630699810802120728238764763913475580258143820496145060860088512956662249874912043059422793642737972730271013210604885177811008925946234786912222735455288108678732178067782333472041474766353956620692430825156412290949307098400721076350608859854641411854646528210122658853310863842749243698535918918538416689104121471602005967264145798500503977514306221921050770158944999875278802469918647153113152823838351548828399571551754535408229434735737701363779113550568562255693831249779014592021447035270836971641757959112734129954563786488254666128947813908274696672052081194080554378422156185941122448552408701611353441308123501787764169815013206930906280849473566111957977221866612559624523970773302223956594274972262409850823799821879022868493099886549327244355430993095481830939092304597739512964796111770054945415648930526643899829603294871472230438681823601508886148381623738506500917337052290785322127186234013341253588816310388222439458230600872655085842387957686303363138712928015606456801863447242611250700955376086166704635700288305708326542979929971510500556005148561826205099719532822435356918917289431387345599913810449296258804509982425806849583978112845010736403614525615594963519935190389706330704381820547710630895395780436336230245463105480188326907226800197242900676627549587699057152343534045052324877748104640905175856235402952537198165483335971558772419472188238255404546504515974394847237519628891108864351000499594454782769006666065644239845395540382206378393253223308664100859668087731083629568279863975410471345296153169282712333263487050805611289785358210507682737016933948378674039912492474658770947159468051006124209020449040319589838319878372502490664019822135612282441994183878190739774939739938191453075589185985596583135970096603453185265783568425278609487758776259652671776726452818589598728360477818487766699448325046150581063038407300176082777529547984877023235265360905984029039341311019271915170345973489104031438988735973430156254623514625257495132967461961812114602481136255409921050927278230850739076757655811384045675981904307898578196249715621060044702684902994571662613795756293215936960272041993438635011248188171976827698619172853238343842791127054470962897705044473629378683780515083489198918007718947566831007822867667750316784094909069356817723216301761581575410182816176661536027672338205043033350250911729927693966937921542072151420055207387373928751842044241812910951188341547086964715440952895070149781926419938405070978847097559947059187571438785621335913079637518383854945826708821978731141366374991327543562205792714987136101251193376300552376534947929374403643400574373878091369018150281686736455727575025344815319748746448124988220856949491092924551775579118231546486857861409915424388208262343736990437301649943473243966497532991461102208712025221396767849512073294861211144763963863067676950242071073969117797908237351559857524621046059396654181931096709556171338652795825708786760579018616297512031736756540855415257382532507998080858202470939114380685188772883099980709048927443677036864329023722332870285910942927480999373255750357531304877566406064600125462411813843152513112688412026533097008164428302854750465190809561891560363673608871128655375336884705707911668070840705569812128918963894910122118149258919249366495093676957513436043360314302717392405150147073627997721252521491086010164372835289567762067467123133064328364080852229015528086823950019561753868233218240406612632362495770416874767350843294536927551721466063332260635698826273405609178496144692741445192654126998460180193049866325670756909975061350660888267556973665496649075842312525305168875330021544200084082877918564242167995493999419125175742479675340922743245110978079457322351650785383898258783168552480194611979035838213063547564028509445603103090879320637707611597902587025360962351424959675506550758195937040461125791978119073237161159896619542416140509884121798567072479828485488156896557136403519300705960782486502313301280026984801962443215753431395689092583884959865268522361108219023180947984251918929127103961783946817027508997566138394947894266602396059762007831417670198912204083902857504660399740058381120502545090380940012935399922592684562612674929417750981966495095994565637375133813767221611771529120210540767841743287493338521199351921175226950772313622067346013389396517367259941529938671910296858947793973946196928158214632257741761040797086241545808892664349543819499871830693571474942858156727498824516202479696081797593721927274130412027898083309279036086916437605570327575799724157649170548649788350901757154018446182586393089198278252350255567452796885273025162971469636267597349375593320835144007870381110603992331322921600864691610970904024914847622214362355085383428316803169074145245241981248090689011702975684787894278023896868360148860708608837810621513123586178930741649201742492731299600895385071209631649616963121967928744713568994813632722042305029454035662699173016664489247406709358425148406003103731542278285708219926641886111773679384739282405942199084361442436500580449403447859443230594377061960509904425700625415301416426192465794634087623060586693416878363596708090352264064650755316425356459847773133391760949843383805623859221837630691477792230739519562118198035360030067069729794638462512870936305921163644946827585253382857105905955876790464015639685517339007792892037042824399943055806952539997868284551087230306319128985708695223718327237899589314239657647039412692778708225470734911793996824948502219627059732552462208857546535561295953374890240582124845978680435079877759815142211412103929703179431147277538282100155598402516391252454130573973715162480407924338532628519865212433245354591679545613550650971034477870973535642547428817145795420541722293783331687141488614728141690518625054564644249664856172839742096707961782298743736791018782595656194760891382600782249505838190346229997707218065024646151088594743172720944479738329906897000661092619066028642323439329055590689256954010190910456022417079557861600549532197282049269919993478139642486752141023876401571377815755667642075608029464225222333156182699094331221708772469922382326425822878545512937007717574342332037059740949645171905590317946061186279693773968930697093528348359961308990808311104631199187739724591418059932456143932030546463570174445411238809339993727844618658680033237753510661900510640094628442826121651331723576575229674985863144931991283241742272118696967509945316825173715516028715204352423764011985124280905140841730216228879001511753250565162826604663407369023413029258709781177909931508702912099375586573984041314184483789128695016512354450946246523954335923901940626402605866746858021802216855124268130186523827268768385301231753069063217587987187910124834449939787305983200677325476750414015929189139504597895159514928364775676900195841117039536829757968209689932071592327485086077208525478717844316997933261635400918114257903537790281928951030438830149719896404279252764419446528205144241035787768205926172117781284018575318130806787423772949630995269787872086492648316306456016878493443812666049455279964065414690903953307866056146897631048288236249455087475997486214466987348381761468295650479260718259328189309035266640958152207318735708802519260250336434034504808661934020758969720308948901645210738397324299190689462074991851404402711951012429996944769629067722037160257140541895114688781201317146708752990876251067748850175133869373581538505113318283219245892273565240354286407934318296138923158086583251830576380286885731412353850374192993790188317475561845335250878907401887854813849515609983745528771243884254768773267900567913324822174118548855813413974960885077591716716125791600212380606411061779409268168697417796223425424038832553659708041855672292662144975853574772284232045718979043033017614389099041388394634591189798700050736805742115062559099992413013955858101526764067084622429251055729565968305208614449390839675220536688145377850840740525081296275789253117711814755167203050050977447395396361870256396176650330711635948791874317512385979999501991243664345197477487636891126443495614003104797161928855385347305149977507058727708557134157449957216042497978401340314478887890629013243775151848994300647587356292436772180218984307015788366995576829258277751992733160055376103571151202660615369888721148549331681016936170477172883448902487044596766594253042254519396174931575636731298303079334080321539588808844234978152869289415142430426759738510451106461925361581113002770186542166468229644081088212078540773214817769387010039302433793673207464742170068094618839863966860229454882116249405230660248418866977351485071592194696689258559437210714453241310712952770209971917651396560949819303288076980691803364822298623645996080536380263794438541997124190755724810279420363559423333751084870489934843180148931897728270039237587237636720306330240510748311534518559379318357586285231769942037627297693318525902552109740214698446468143994608463808187399860441181271780595742793924625884808353097786688993220370215767050841741387017974212569490540156262642141864449915304171696088679637928283618258927810989443390808375930342590098642308486031180320888836277474416132020762544343673884639402910951156119483440666644275231094939795628786748921125553714434415503147801221521757212481830347431470752871466767906591049995467305577142615570983372905346805892282965066207507275902845794062358841003416867823287419970347196625973486355895529830132419463488658603426900496553958739769967573894079619594885165940100244227304753218342601383927573496979036248679857684308290972752020077766212466240257945298576705823705138267606052734930061415750390944598431651935050064597628619679525824187573136870326299058510898671577824082742050182171869763749028306924813346444216094684526222974971044779476005081338354092958884566990948990879151876765046991168161510212582213771653515070974758146205367761824836297025509745156930721199382995086255865982810747693419039388826787238122049226643965237407901974075745055529529070487403253936153573437670367166062616563143185351986383334845802115052220911403510525045523404982664373415048977535027112305872507710585982124568602526377099087938716016407228814555291702898654413391568643315404319823294423964951826307707291475421700841884414884043329268577275765824746923234769521038306291062964091837223049974827225641948664755504750621613060466367024446023338361684854712868849996345563741546902344246582962077097470028117328116775474842409735132740786415996380616656225961579483594130807181761154234021906302919573330390367468165710426130281639035788137820039826400376857202284000782736749210395658904389460644112814391626063067655707016173525010569314872367262327135999960249320734438363274423578383449087326891904994498095573403086246761034449701579078411016993439566926600884314886409582044523430518281713308331341464396664401168468664101611744091920939028510902284937888420333499747399886356960984503425849511763621869353636737875485860940776016199212737479974442166855139029683551607094927284878696241316218588694341715304153360956606203001804486791598477338196068256952654608535583733325283839147096975183106122231438617674210627890095496411825417018140284955120803140656665772840237074930012744518191407551158945802081283526149212618454892542108695986722623751390164844463656922555891048367974351506581754110979866770069905436991461934490238505092935426429219771609406313498858022453451277317303505262223243847041705902160907326251161709623029647394498590650225607664096897422301649384469195260241436264304702259404086328305644399029742330210342900730707820614745810349240994772466341417405670933627388895623841904572047075357739459520302983528237718077104140141867576296959082670153124549961287448716712927965295548617766664413055139366025245697320991537232771863960775406395836974525166806716987931954100879866296187240569137468529215173080818726048028996404886599601310332828198683039698120951394427987752823093237111794492263621949346130688483102891960405026501393145556391669848730925198126877573050835808055271702342010984041879120284505989852619636371012025497955153150678045370555276326162159314531803262995563123432662501054751896712855551790069783339715347839142602076429156759774036115568543072042817368126211225455784451902882572420676176068603640250285278011750101803678395160258835602190495934602524527989817838859170426242808955959405851578906809983365177586779517576087311896925448123524194672644846391658576778660382502051648290652246909471782469354275315540357305265928961975750873280358586020348995714524388889443645863427019443261971889593319133137422970744637419211443735325510075328728191938199510282831044421884615062075791166055014088496571893613118813153994465990420822037111981783787187959200240613331321209708386918437903710034629523075500388144833569559624986800235435699981022576927076350766556317505027579021315063716119547188638508431201838957017566349407022433966621914139643471512505470843627051256078244726793623926437519505703049278449147586632412730775691756072046392175802379923592462502186287686006916406419922239988740010685885384069100447981966096527491272843179603297482004251582209604538299655187207673633642329410650594287472401534023105371251717069246931418469102318829251044292852478050810988947261339417531240816432733856117953717022142068282770197690502048353736841543071930157086098620509474348129782320084366852462583201178698709866542100158294673604705118453618382564897519750315686151397454526168310096042485063361588181804268137020559130714505817778925849424549038520897089397041320512227295841199470889432692023876165820533053894175336317108198388918344480811024697216421215416135690888093207579335309999414498128886232922586893854686954426136519858538941208619714098023963716673688943776905743835498022951795459140402157517454429348417114866591395529397262177735462134117777872736506273914697625434240980904621345305190496823590746950609679046068626417331763236462176343837300142962590053519706347950868363108279440651094715207103934938367089727317178684714931013281919662464933321086442920392293942683633548942569260939150371484698700081162620230817608650164029327659797699787926333316601085119680778432854670960038531195723570662927468094522688260916014901071302999275223688523961272967801324483098644852731403958253748190838773629656277507211982162863203362606188673854983680668138605410995550847854717873448471230437497043746787840365485680208422009662226045704856745301343339405966873819419388053396775879441501749872405069052141321411403136053450520647247932518474699469027794347510194879045310318662148291874085428948747555739103195142433456819537468992388672983581679860114444701524896642299014191518584032417367332394865765236185939690097327156034193470507403650163104126646420812237888181578398934359504932736772216958064541718435137273710669263260402053035222845442794101522515658500529667438528086704137026294369185207058247367654376357894378954377517516945038827110784060422539136401452381365686655607106435201831921264975112843026610589409505341380915138535277711938964243097753785016586242167914045534253277760296463026035063151732530270657281706135445840997061704934186984402491374685938594581497759507209639465672612745206999914260550624975546062542434476634718337936492015019278582684250674594530472141206325415453093622143719065157347271257026286716164409950949754609336328708522464325144351579857314750876026187063857862374413046194312792031770787816130238316032989558315540467803549092838760083311069779275119246071283356536065396565267990511265433924438777387096594304162855480928949419788479866295297856985169703030013833143874791251484940508721038998828141836676938515963925220662714213323219713023510061949101974733091813269610633095803062450389946784290020693593470357118808709071837443925234600166475603142654101112333997400793468436024472465239942656061860793230052296091625233850526199102416049578922022000840456205091089782865981217941623706392409423208477251312235882706294508759437351487461394829862126734592022559078128923813975994048405131016280729231507718892108475085642373525338259449576498439680132501883869862033785021394120801891839537562545579515351160481986647091591727722107382506270279310661763637647920365995774633470147374728738701743720627150597266645556608137444277193492961096052744628735670656938750582132640384517016313830887163763041487647713618043385315854546107768296077732480818038851753537797764505689336875800826803131855187854350565594814880452145177367283657976724781039090706036013575136326986443892358259795771408429626031704660775533161613829075000556397251570509357587691890388827480544763018741880308415889684147056247388318109995027217079727007838411115121512637899904171421019964564134474902662233066622249537435102994772935879702621043505865320886583209696564076388024742484003188897563385453262688177400561634311082180035208289145196437345851603842034296167755717203817044229729788234064430250583407654535639632019304329980799891291447145193011669970748410173727821616860802316040145158574162089984174196162638978564306811931500607195178694474127579002514788850314291960262914197234464001938718863253294003886538177036252633472472044328766399586379686073354259050345584857358656722356213042060283061222543996859743969355133665927767280744934590539478351986819360174880772809028202148954814455681330762026774606232655528366811854833394878470845639976057717289033274098193328715128388253332042634400960137619532048455380639684675111120816250430546214492298210600766795956285677094465917814958923108974510821884943463743636503987868988927025712693449501379717324417861699705092454646934128523555918415704243352652905725632981087228951741939000534248706465399556185929773968618404292134869188504094869723602782053891495963236606398266853592062098931195447773232907592867862440413490556359188928390028156843621619083251468784176645146694247058351128632419344081323244382459504774654982640122958711536995464346688535481394484156224687903952767544711937920049706910169809346105589522377817457239223373059877060142929994145864832426954734468632673006772848475038178939743554912923347692459357110908688888549729034046590902189515426418187330555810129255344539600290601788420407086285427905800364928069665087353742731031316394343384298726789998277898931069048327067813810054271954579829353606749482238892255886215389229022791363808624965268260776514904713268713869679431129222122956450524289174571004678692254715789062301178793768059706696637179263375149141805392694942939896389046404402153889351425407189259777911732690404942693848490427275386634177214818845273766361424142148766712871943672118173925218409334933973402833101694986146115485213118544040444504965507829155686368892035151785348485878391026605932061067073872158499466037896698592064648024472716714537676284136138098147082282644618022115322584271913828449133868190143171475781207344539003840799276865207784265374457844680290501265202783359929311522921398185821621351488636012858668752883358435407213357776000081596425094390921126712040805214997540165790443343244566780378254018253348322191469383885564746089020699244068695823711873172208521963707614832452598600479879575409688228108933387909536326457727276899581492274649797195988017770305429647037964476175421179085214921930748485748020269832526608192935552303802916752877770288602328285940344772923685491467146891665423977197693509202052658695277042563277110243862191805579451391599124680920316288482199404418133436020334847680735628961004083635892589811827534054886691132553819121384736864525328106199790711045122535397032913995918981514140257189614807107560989952173480618396125840164097671555913499279369982764829787145766158131844618221722951078592648222637015095926989002653453256182248638750128693229766015608828671967033605389761928241711644287867970093995280731616134418169341534689272447043377942990583757053411784776625849459703919046372170504373117819756128369485697917183296250967951557849575278625114034113272785019631475523490366110886832421358665518382047204113960890706890062199128382036487469156360222642783527123276607145999836781344173850521440355662704141905605425273043231557065598270629835596187229227118097701072009044400188121785067535702245213003467405393785057726747555357189280347841540073664299358934561159020041528819213842104428497183400714425663281407950851080363518993384122519387369463819434621352471433495683008792552272179128131227763932761075265729622993458840143786710962873903759232356544624048013082304824954989874866670069558793205936446419738512707582545502982425689956786692737901911435056643177763895223765402008997440631918972289711008469758948740319834749828034659403031725321728757572338225897165355987275242513577703423195327135141110197230940293498694631791122088991160503400570992471168978639538249470060863851960340518672040228488453468419268372311127230466966816166720269148213749364102684015182506262383018621273101279652339712456402100362926654438574824244438263195515386986671694991927667547368296316103462854765393195753927189532476621396198161465658370744256865750352655554019708057777874424658458452926884945034990166430576768632962622454955238412813494445508415436690731958958515149025612891840989899150356347429630593783502939060509179932885222021920689381566379738066178944843953821232251988233610835790426298686021412517938678465349456425154330573739527534065468676599763467035591846630662800618315766581357902622787102442811571675548157756489076619095720127980753051554878215855703131019152429941474952239501762438056230723764451405078610051859897085687431471404040132728729289975441519511521078270972126383968508421667238897833182191195566583782240982339680984543703997556889601813137268435068658667959513813954800324836179518191739311555854648713687668438618647192252389862564972606220141336006434336356320875420767136321144998094460922529405412651146058330273258716135097011950966623650464983381078253833900997144011973841992358805061093557857325878298912040472990449156005058920768281540820172142024463827037547253233473765761863477532128964460859035427886833857249494223896335404883514645557452378164280631605574888361062170689209901226003477420235239187269145067720994967482859943139086961178964874191944033399208300194449715704576805416791375388856537466740753312740744046591578046927194367599656250056446632018965743342280794134068399331622430424770383076430394977681273647298297377868628937167003325858122316792347944704350100144202101522665947736751903511334492104905548020475074658904239151198885288406095054765077266848355941374614046145509448427268763989091540004904259636643059886442263798115911896795986916152037673944284677450923017365964852552192636466626491238243417987220463355280541491378351065124085837773039081141368655606808727869458520859561152848909947268616702851085258971379667881299285764863032996424907877881792380171098526168463861632560921594721063062422030009637860190213262972647042693553575761706133369909813173242311354848908692976168619153678902334886291427597175582067079955601894241629388388709638105069814493238704267523065903212291777081397832490484956284638789524746727528167915479310450539555976513424311695385342324582369578622935049731304996954542919223162250497221978327708102451640454897972167494497149189004865089416964697349407214820668006721208698776834084519494602544657966215724463405441032647007658573187551427757623513128429235418016792710579663699866620532873963100963404964830028733870888139128702226702299519257449574093774025854594353769529103732287902151789889455310345986941832866605578788806172399024842137220945097424081646638828597406535700827970828548361725739856116711840732528561135124814464528099887784868833989986049925436160606235866079259663482470759990261105369165567916322774502676143921470329618560044522215053857576532215298955277628499627027734831367223181943991640642378529777645440289718985423579523506321449883869639186475342361280880855931469466214762891739002069483135363824586608558859084889462414788839611143517747495366021439253461399778718535704461613625846425381801375512811884119164751615574942772773699503591141029085620968732681745466674873621550751116373020993958538700121301827504218767971066129055542829572017980426039488683349648885742831513852130306248002374638228071617224777007300719120348367467573248318702464234818190810013530801178131382166657117506693979101794113742507929171369455770719353206159511707242627641908967144252535602635948070476404355194095627599013752429269427764597894989214364812622134610648504158192937151167363220265334332993773178397656459022195558241395652010877843946161568302054756253558060591819588719788702500808318480667261611480919982729382904293634145195255079548969524836414916871722448044482078305383262049048882942048471114311122509287867880699154311365088827946712049742217904084741194637409546274915755611827883939326885274732776768110909673513791565046442629551544845769514265704167272116231967993296792843618991237470343008967695072229956119100936549813318661657858008599425277996613118973083667864509831927106510408768892943224020464186495976873593012250157088138730633987112299085574042472207170760375731971269824636333289897235629788855051876293646593431014633643362663343595661548522676983975124922831519787052911059616356142560559516796231430101478326620245512150156876285876235334508559605744236065670413735497105814225959204222298646417012142816864101824382375570749415527180434116322457026529997934179720146395836098027204062142722306980434101999547077855983671855420861026304759908945926698047511791126555960115459496897483402259983064266460807676659268441908822829601487540749861297318429147654690146960977368893365413907093735926145027037098107626956087606931566379546666879251106611546496331387526799089496228255156653203929850108422974250289469602874838030054883424091292452043588132906154271360369533822492243659600109654577654845960567369191263593098498727592473626725415535857554694969606446977653630701600376902485349147306112803012858723287978548765361868916493797435218365915750274065601226363827191439458122670277300514172422087053832879177223317683337790602507684380553489630925074748632222927949445112701592712702395538411970896323996641340275505023363136726968676232277851514612451580643974717784154359654625272369123640171902211534183528278638428912478167800814001179125475035510306648297280783484661043188196910360958613232310077377943591340418797055402475451673758324603066935017126262323644322849678015495851613290524275112445440771432180737468672006175763764192177559240700187742555636582524339243084991414922975961373231545003664505512620832482154504899043819361773221977500121679349948551862549570136181542567232578363147862847620966380594864873350594221179865369536786942160793460593822100355474518941592366683509323015654320668392710412409069761714261230286785805523042053776937618978084668082148548323981677302592431000553978739514443712900150896406081259270486496494806615703665170139001562183211076749609878192879678759604611164619957649569388748250911981310170684866409816960516427519827300029157442875765508051341758673463618042717817978563997586992564712954561423210789493771857016392548775220362897303169445309671089597367470161653573721936035322731192858550479695410591747776745999087400709692885297970650439454465090270676550607825532317094054767237327307836757146623238588245243884508278099157184985272007888627027833156463364377485022632808357954456955621118564952822677065253799649697682147304575682019316744146685263626225334172623912534532732987175484857856646150884662213395999549639804641689433598529169465480129477231925991300368825508974044010950075609219897462659811448208113308150855865111402082077930728172873490783729953623740775022245193626859183208216938437125562540833684450181202205355253313295735114210684371140213674303082161558863696947081428952951202705425528683040637624707022726935786829030716574804766395170406031162716177763847563117181736354173322732390582002520473772392052071109771945959276781867645019317080185000018747336049875999937517668807837977327776911126649124357146065809728189680815107107783055382761951084962599266600352945238190165493455161808864957093161407491090272159758971307877846348472512933479117387077290259287766863187216377874093503035118567621329431850357924129064375342167833276438609537578238117234499295009047479624975194690726200220576697595588293474380144354041086800236379626955025511403109070916200387444647993938961425978203643233433462641476657938388091874623279962410102917739456107878711304220644043946986161241592194376043178828755667495732406986110830918251281255164671659320500420919468797697652507475333991742768998299466735432847746747179154533811244686277795627657563917174405687600804495188896329811502568203175039460623550390952365538320752026606160209455907417551389816157312509216282162742442653570018715101997299956973331813944264950503304575522647327421985652711951297679107359684641312054062342680321337995277561596046479160665569793687514960428521766860862645497009050904487508550216414049873060143798570561839431827702325402790011723490435077069286579405336535301259756723889417481422678100308368709324064566320335149044605362847965363775518262012571627368778581851342437200707202425234835595470298071270198167256672872534564384153090754809761570925489832937751023933585510991548629115406520449146335284611704985148481542455740899749913823590328985486583238452711941668924117793472658213174850284094075127811047555010291156209199117187232531283880215287183621049465161676514517170956465747924446116611031196790843260356776293157911007738185768057594232993106283223954238692903843254092718295758047273501054863394881835427552812132466141428075931364134324139950021564368155444231878953781652023034566634637751361806023952714890419279563975011021152902063151533820869176261534206585982370889261649876193378366986743232474391424122435184084246358108925938867702468842770432770506749275242612820114301298848850585180224703208265747477954580803753365701276773970213300390001774556795717382254390142772869176295592108890758463642455664008628052878781004223746903326724775823140918970109055721154276739047155838838010171085008997702195902472396232765855220318503584748694110145756373629581101272033109590771164328237932727426384725024463038623024472978391469686116345902291528167341948187733989864733490666543515098338626322315602052693164738059092698030283469952518002555088498319394231451148714733084183707243579909020042224234836437143720470129910505825638395494664703377771210623465886971548344340351961303542859551209401740645779723286830058460759779333961792054407809206863549854822634418820072398048074537650368777431351964521296278021936583210270637780356561012785011690482405062683878016226454965838101696211922293572018088905638777420346355892887284811993220769216586703456399583723689314443685475560649956702937019120704418401794850705254120604319576329077517287398851396224507422954388798109406675015679442047268621655953923840383559085550879525739855544945994298263469345054908516388225098694827760507263402730501813854433554642370988117698578536872512753573789136525236753312696363053697887736875794365677943078100587966228707079047467171790102737012100269744147273858251450623109147716840535769960522167390873016293186081950034114603961491320940100084669329579805734593617628227530739572483611397069807586280074851647533203875975475420505465857629363461582484562742749218138956600937255988092092182549318449579757959869133902033581532148423982877833426121076638297207063877205280710705175464591807077848775245059107972582930318569173017610335401105488347767249559950645051627236318681007900533502400428002019772922635625645203948071070136254080872098772602939517169722957156833919789915389463537645770969522528845938341499749148093107399767307253306078789685832542346941793126977087856783853373957822746857643268396363478188187692353411290360571530989244256024469949903816131272929770954213249131814996020411642656329309700083525448714943471080934774030000677538230764117112391961179328956987461085528173872628652901757202746658712659267186329625434047009077589915638904507720492796048838220289508391183976651757518519119361564533073421940613340722162322380113036737893365043141469175727566885479503709137622923915369848302198088142894991053258880039552400845678548714333120691948716319187478169508446731128470470168310030930918471961855433563934234723306019057469973882434636685519999327350692155739747705039157940611967051527020172284714828812088624155823659016207044908082030404888510414246116692718199783326259308780498128691117673223400204277363127809285989446875078430277394454418981991446903427475590022033523722714753250560650158557661713895780312987547076492424965538322396024923022400706496591578548334830058514800091726782299359872858601339182856071251329991764668945892883347967526853247605284381178523812080019384976830463165457844886527820073783937357511095039076287779869173326392849856609587296636624531676962282103828288517692187263862566698183959165404244324114265538044339418777825470972736776103554430812926754574595072630588370822540517233788852854853761082659830276546846689325959071534265256072588662225453523658649342129906274925879710364580584952258710569622987259593091065877331219471324782134183701264534135878995519688383516919456991485573137772976308302000120639847046954492394732588665043592241355586641968624214242384647598907997517169035879785781857225188223956556417107930433368115360725452358512619838942187576559689453769208542168041862113329921158075546243549748468960050125695031009866196981515890681807709911331251661361008929184862752967905315795196906734352614280308239423628346123444962480365785492003011227711253595247404008526702342647975194399239181091849558994657110415590074576683010123564820800988043397072801849820993113718445149456447146095697486533002421410996867733627591374682405842814836806748054927694692194308599313332073055809946509625222763477836218650463849314861107162589607231467844094159701417004071331651309322757561700858511279730236499197554994561696354927140376572568815623793512606473302285888033094700178223164558372618426713822824052997023378219536505055587781465383224520957802642038412249769806207733934854214452335878460999445574525496973909746197541554221192705470299591904247806695129994383611150500982933548585439526100613451998254201215628474265728155190113016357245305074047514122532445453776099271202857828664551468932825777169884290889750099080924492525552301719576301881189904408885110071301861221426594512174730333717148891684472923659218245745155245016230853054714335507732536797798122432649805345386753188089201471392937081911178922334888727307713573393581169775254014834669185534875540902588797966780792615228139281510080158406462435431029198093256072542212605868865434533491051769986623619343691590480245609998864364474421881227461065469696087639529383128942886110124010468254653143150324951381413794582207509791819569303464911069465192743321005473645057636792849101674565789927719253630046339353917087362013156509037499331268370822584260784326343993214340818026250671360287669293275189390949221033902074622748096821384193223933901177485084885429468933337129516352678379295891885655550092957439188639361651406286013837063987441916806457190898038830847265211735161383754398785356248092299939298395767133150648198605185862326730945302227063364349779241588249772629176876862653565280125868928849519266232709591057299736834150358522609650798875829806667397335481089657184155105855073495654372482474108714336923396675304935590170664899549031392474297943538707942663288694714264389835043457840827246193480067871644121581622964509201173817516651210329392402426282874890733917434696420642408893569772640669183017506790251793943675839092943905075695785700308886501322414654354481339681194131452676530648897726325111133179328453717739799581157712419023726873681930908270143085898239317546862351430141371968408930117998775332821385677104573864727836274352577991882086953431563634945048509984396767952760660660365255258762811286321479061025818671912773750333833233525726762072696318565032129850161551659677102736665971027012278745808098474338928685687056056223140005616606127213273771015641747578877658347882004259954913938684478115357116345838735488864966825514968354551402435489841324461494613951698632866701275637577277560042669572970119609149146253809413628494003872378496731721182090437837477855472959097094245731916723124345204227778538593197214436148156052482204487585751984840933391255073272277182943434802888636666553896118170490761635472321979676255188421817786984086001024879384467990241473097380135893771701320264298163562888634026209851143329543611414278351049348699238946628997703963710660451725697288329642053440778610189411707943344597957929876577430148474962157830501297867483989244771648130327013344521500784516019152578513477432754349240442285485969782171572203917766996238689618279220650340871525054350010376907929503735418272766535809188398127917007833858863858856636380370995220411623170777979626722275924706367918688306939615205550222437572132693728157497227328011719091044461202777763138673663543801194544529806907984693283613842269336355118501984668158640659205661271004800182113229034872296402829796019049521873491616348386735768143631623258556850592846276084721925653906728969117837797030352691707945776502846403426200108533522186076371838828219395582532660323633956564970223156547326442159713264139092346957266285897644283499221542127842556739236868252871648091707847031153661405711600954784584838917832359728789445474769092396812263586044107266983528566664944429684539689153132720263474686287781730918007410509772968590923922560036025004634465243383145014518618380413016779877953960585172197902127861916107943525031215910031510318338921112544916189303840345117302557438769136198393646653193175666181952729008755705677936396066925283400462616216714540732704593747223190147876629038919248916269894215923554027229049171022035209512790917386535277749652982670870852301551642637168387269116624724785904206750186594640374144499644510821573764256213850962605780374661891656594085987050167484061356174824812476418578901196088651039115511904331229277882489697686794425687898098070793478629233659006920976165755320450593311693965186938462126427966937261962774401448723100871458265121448846825502067599367182907378395876409781566525858720734326604073297027198998796159613407489897084634035582679278563065458237461956365851129317082102586855924581875433065412005322012795530571271470091482086521828621584852662439163586171554851243101877504420871666821021209172936824394219623197986066517928092335996222076416076617207215941507108188051076128521339693403195859873785862950392703895019529011662592653072990419243906271981096319409976920546399094632411358334199997649865623567850264822236125658834363533268535581846316104338121747384636882469254830085423536648221841148575390031845437927051693517219535652916318171805821927684270606210112837613798284045305945164654252445178360595862595025097023233258397802469590554764593447189643197533720524650311478908280179539133869363592572983997796947837431177502654624184032247031280526902754272972519877701426784190228569561563515333853793907268294314387909068341151509622357933704829390300925625155833380301112102217191679277760066218734642796301826246222122087701394919418172240343761279395259848318127257938889328573960055817476747355179126259151168119408049159684190692455167236264324861620858784725041559910614259551243212124934547564077318945658143483670252511580522818587535795893857023949144880717174988646747705524094007699826581565176587054667662942499249996308474471064775239337609399468298798607358702792099071742310333323958271621705171850093287284593808935882764657389278314863412867531852085409489676357188089181624916216737261875362056331692524788503417121130451977344941526176460331984947702270767002809981168081386662134537660317317745042422711434627292194077465561108360967821841333837413133704963107799806941616810473437319305101896202612156340323294994075769863570140024493690363339379722679703355949970554008708018944893101273033469634689509513813867008346265153282454525485711704609786980088547820416869935536662605281706938728880666981603391177543131261787266915346525947445060005850718285352168017259369415129221950284727280483772840743720667407557182126316569436825775976575591902267621973658815889784544045485978622708550501231482620000995325268291074379094108261220893936542940398630323471049087151255198346705160216180085617223737143838238884667420207782858833661080714418108266299926660608739089333384018287603352807797588032469713245483131005147355669440104997583316866808933387937670965792087148093124353719636938921868366523681753830141463831098279932505748449863363844686608346259363431193952844677722697021099418856659530725832516309410975799471146825984771679351184955989530157913093235450721436849074557982176118440728307353344099927807779759374395797515340914081894595235662376611891686216647028135625620024305813304544348301448663364958005653663112516973972397856563892306391554505163167137586990901957155606640319752454191037278273707991792818945648210969484842580180267243180223931021538510771443244926369531539891761953865210607771275278254385975870591585239616502654448069280612469797009954196855686191671915919130888886859539730374202923719506703296521752852282517549051531306684758898538797347225350626629008695072172479074223354118923649971639081460667409453826597169342256120434743831890741206883715568726018574460022467552020867749361103052040100307706156000335671989748638517906882797222857838756257943318243027914107059018693251097133695486247310427868454499437080093145608079836772823929881083786809749509596208192596623251948858057251291636082089260802289019280382540348923872918768679056031492772910865976133492102575745425078301508774807949791678922835593476901239756020731296537325670334029613185125356648007834720691194606506721765599032175879038119018545090424664831638335445442769025467503712446620462577601571393286991164947664692850957838869477774758224249152931574776913335466834832449434499401854278944115966713256653479250630339502647660929498973358358621399030273249577213541006075625479751123387390352237067715050784582152786160883340284249452394333644722834495132991935458019788008176226493535539363501166557290431550897257823424218874278309486262515305433463010931452277936360277664847891024830668197023311111683241859866536087731116105779693808372992262376400280437209288626544369174778643504167670425423014850456076908291176542282821454502637706475650248139380104098832800329177440941448612898536991502004842500189327774081484727510013848497875645174521086464063178729889764201182480949591412960837539280954381638846375974094915553223357621604180702456887231540863967518189661670225270127068731878333838154743834540694180252377822457044971389751364076560728389411069298563098346976244767869971641130895521478275340742487995859973033615062806612583796788125107311101355678317864881126881546164702567236128619886081096873100165042736504101836519457970614846818815035956722287237104544038793680435264527189876322796768059599261884805377722366113380329554038113131739603686425924502720327803626098697609207801412651553349412329298581554851166335221659704203147148601894187401351553250476238952790220292964985838975722691421248873811381157417185858211571789733352191356477081420321576812599691952956967109819624000577462850309675408309285873155990569947770973922002971309895523189795315098664347491326459110159906710219595169945537310575438839560253183888768690290086708658121801651186608070388375677846790285011155449339224707590465025351646983118891024270925164700676247967680082400067876089955415780623712201947501071712266640985074312171120204450471997025506176608800350064971976494329171913087350269861321251182905086732945630726118568635096800617990932898851504319904536696338875625315790963564923884635855691958644516033344043990925230548937000551338163915872230376709076020277394830876082202522167935561595094471244060826544802843665539869766719320527493050015333403469137715190477834711372808644614361425674937282912819156045072652080223631690998308649201684622639421251120041040583221083672897387416685835490399252882125280069952798318134561936491350591359516644343459031907123719361932047481826129983296707969905705849190638504236091910515013530738161227904637126069297064833821282012493054636602095750463033872658456965445897113568784464151027117613623548362867195942029745717065467630045224179759321842980900720348453287449075944130875679705322230628311859277111400650966896789237778709618527689036902186880285558043484467268665691848307799042878014438833227719561098163447032375164826546264669037189379145375467369850751569953451331876271742655895354155972767269018828340825199980334739294879110984834159178452253360430149283016030263524520553106421974305881363340712828638806536765168539946977452592956984370063201848067027370406559754196214977866167406530980357766770326622878239619311369778677579341242738465097541365841807736803468184225013355830189767632930905708932014372392713057408449886194060937305173238745728010677133756097556874686099337883961916684616551041906415460766301849181385436212723349904008611523224160222537857510918514481315923392576875123393277264659212464841309344351303495295562812373523442949685503871607198043460145228506888748894454611919499101876371687861540320975129329500730356886167345961323136149859870245350137646099625767895315291208914226124124180234211142136386591644565168897527874793662970864710604876800456119587393466254742645716696294611411926579095028656102835738645565430435647871929051187316258153778534995260694274443343744142685988595100697278968649117024917413252179841070213790696020099791604292022988950658594480514635325639139442016112012711234756130617867985239964946970821242471125492406129948424268206748839284493020569350471271323356253075384898822165417173131217597624881723389428595038292810683352705849540115584051675233418823020196001578954546112708779383286655848870637873334932333679611268414675090505230964390080131413963086312845941737056314518435321902586055013152758330291591386111344789564451521502913394254887590301987781816191568913253741711716614557748394124772061924340405595383376494538039395235227118929602579277200573971945205617813588352134665670123292633884121998408203799833338624017004433470821003443599977258786274663236134879496266741144106822562640796850113059246772457084129630131120441967654215086656478880543669967231195167516950402426448083886649088169000355411577183326945872588548337736187913113138870113026929203164935579970502601920271031953193517347560579089176516224167421487180932571544843018280685180632420448291909753771444057030747465840632838003722919134842003342381759343143878394091421672230037693121891385113977186863212534667385213194263177449828435413630848922465635074329544846399728408486866338436975360281890791994142505157519476166394434840427696615475307849267194071573018532623960749095540560254017259855318533052818640893919193356108940945657453177955305569266397353509122289494247795869532874087032218703020657490677781683606679515410159273419764408447718360064633667605384549344349890671742504505691227346396726805331392027646435261880639238435727083589066055759104009964976313397151210010301786733588211550668409229210892733533377437612962842908484831290284880656888101217125183313112078347833302080460851476997301261932888133246897110252528574237265403661515065870791971041714211024124227373916948763557670524911049348342272376394368843185281683947748691895580160925936499430981984568688733814561018488865246069711577276102181818546363778628998570421003421449032270278199653813842636534588632722223929125489591596954382501533983990666421856777707890186666064610877172277347740584931717225532764910002760331640317653907625109076722745130127455939876032947915587869142749615473710530769721019965515348222517485517478158151138321437691737593054831011602319290435406999767099668841791276060282358640025407937685455319778987672543286633337302623692103048629712689768680886000134750240668558473675058614034518512619515203439322879007881912500950383657040097624490488240130271614740423140225346253653208618239434918846545031499711541862581327677903311455232301945435699737261642101500793141408142180891710626146693872624904461009466840346389364006319476562548073486225121526128826382900679082001743478044505515833610166459213666443135999495615989336195454859048736717302969151095709281140304826859827218447224735748399247855875882611910825369497283526696144112887954801037221038314365961060721912965751215099717727888086928966863534347438585499150043925287143019512561190040458114023715867608027716482358898687503213294674002017059053506673908742642303712987174589077524115199002851320426214104425152473258227167640246963259015267992280418634925271852029373259670589230412576663366255183783159781519930865054520032969558294810177971419467834810822119246508577150102994684782440327869514624034677426605736060284140648912403778751278811700752988684366023610828757808431242097956335226135229255844255421481960887381886348718244144390160308685142105562211322480964481610927028756023430814259744125976634498896662558585670498440135028133025807271241879862755449668101406179098196265445728925937030734719926164552183568419954241926529156967138420182745744444299647415511748765941598641592926269634717021479433262576446312177454976419492684508840071486842820941606913579039852477360053207980524268013712724277604452463929065894454269280248698821869967465847173225150848024841778782833911509925554117845961456954966487190455903058033076510500991152567727201157439678457862356416724602420120675875363159316374623183734222778142337240792411747448369276433287937822311900631257303216935652538180868218648964196101827689746967002833741419520426669329505022486512047180580331860560039627049242370044120532825240223980228247360705974608576687450762430403707664647699019951142308273449894292571674116918189929275657015693338760485641053483037880577681522540316706030986712229881975929325928080140708138437719942327680539471409929823621429086476922564222825810155061630702608801305615682611107077745621978470356045409058764897396121247710634867992234937391446924681105358827746515165613100887166330487911613155297320714863994908980301280060585576101781648090221546309822341247242357690797564029593953228208324899364586727086585359110529927362671908252031235477567454730193155225622112323592030110251381090046667994233669377597989402526587544501104757896670856503579934084515129485893430308528045764907749366207483269650443318245653627404481135899611665867355181408628426738791607106018500825709792230949418362715125688172416992255748234073757563500590419105954936609774522020691273043480609392116507777013078627340991011756549779023173912067645753407208840826730491622396409171874992608888260412028677712171619649385874477234977493845367944231050502645604743697306303661229007909901434741317783132840670201214736690507404153693898657701260218113930700092593295291592897773330802561709782385899627950476446208473649630049898211955405238803982864013134727476114382023830005686408713041488994490680751082713364545685135669798786186557662782597523272051690143721538974733529063319287951835760649094129597361083699940046361869141725337932056206641643456448938359615637530781900846121834025724455404650539075531796463342277737850334646701168398548823958509535318461091227151468485398479834278320184855649081237146034502170449690249123414121119894387707147007679120216397915338964077549003893642505644124333966468260734878395121339167327854299064372104445064495249886041224986221914544404344200446089927959060660195346872863596811278163406283308403290199846353440589391783161947734053845130156708363576445179823437028311020962359246326034109547909602487988599664143519389856554163736795771628889989587427363280530447965087541706125042509923986237826452836011054396530961707279648954955500121323170665442103337487546484539017711247252863293991555558840889116862642866797037929782040084300834075639338789703565189204227812033320868604050476874871800731126530397524787443940319158016784501804475176755590314352193643286028155452517378650170248296455620540633083297421677002788074106080412918395873668462963941193944431007215509062219004955374904912526326055540474994058123969958030381686469318913569709037658290001004869717223801596437364047364501221630368106768267507730817729027236198319387605195089704854642607052114067539248729715849123414801548912178601140776401030671164341566364417917924865664603560744132211506802817047688204525627226205377481994175804293383240092776823960012150303003635133309012494457657563368903395439796181477201264604706845336219812926325345950618779534505453105721864056805403492004060701489814141664629553658757991173236001580914799346126313074726306260119167736140983671582307161683354755784270451049171051807318264383417445487128613190208495930344416283092362818703452811720440220008411495304188121505061574963028142043118154704738456398409999876742742094335612290999434748159253796911074576541763856267723294551488298369568967336822315139763454047541358060615453661549676562025204916510073998101317345549616008609042333393602236314103397324778889189015315282044205255093280078864803526004179746147425034853952482196683179561974671127050139520881360983915474629905300685419878105810148658595968962977394890423656284055341529546288805336422930878485169645848606477497229054109816692879878349806459311437953829503155879079246458441304570173173974648624536637453393018383279215076219482724614973143352667300874655517771553935261612684508209195670338019936750524040904695780773029289135413786702721427452521825420900814914640706627203245657942328042301612815933440507993340420747734515066687029828232362324990397590021883732462127124063292318002685309612894273211274062861636743136759990984384780786189931836609950956109681801885055780366795701529102091605069427063590691851021859434743266849085135660577787390065413593577471489363119499318454377450747659096352754819905139320556246656603835421582593692094692119061732339387037945265300857702738903536984752306673596028913832036515122966950359122251282986467382268523800111813924491557081903766552148592201855513627830732790294260526281459192997625157932077396774183495657709550452243861841153287216953887696149653614276643260237599865667300952490715894327612064001990031569813086284754884528893738401111908781923816567833782183701947395692685036617856159192995383553281949381389263047451389226406052335130400865243072618522427767195516875693745413521055195158152489615588796056178615886900417235344044123837203842810340419347576568002390853968044195493576673406797992571166805620563736315629458144915849226448989698725233125262289598759321082635327939267879671077237321249032423794185345168322228183439388017978785746007727647395527678844604309116293128754691070067942964514181127896561883158177803351136219809040729852275286003714192077073439128251441616694474483744075036523781234347505694254566649401792374856564355883125423313732732907442988632251059441085536865576939674067969704195058129322016588345102051231848205138842578132646093302362010503736757457722417580233220674883655739992350459481336170863713721156339960983086165926650124586125262731777296163396083887146427193872616430780362651713061298569554361552883412522030003708353068776867435264624537430830804753989304941110548979952586155390630029933839747008932727363977583679866622042515480392054977719720816766382453927315749795540253260098522005413025219275832686585810151245275934675920703465930509133981376011135091710627761209285683713047291388498060261462962644119869460450487465991652837876181956934283111174096566640142970470129893575485151663076137030555915207914614419989310798444346872125683109775504826348726098492194194757716876912789514255004989024136317417459312357730699716538489918568662815983689183318030818974457248333926202637422771152443982803655858939705739515235666228900630168213021758208289534970537316609667708774605940861536233637936630086836365386286826229083206698321266088815498024807013745747038298666805713611692612108815740055243439911901776690961341743674534603383791181791833486631354947753930888786572370874768620111366653227456883879020985966254296804126865967952404678615224291402852741532249638274231691614358413107869299729448948069030545760265761868363850549959047836725525574950674000522339164107897522336896489240714976200846153068337716720155956796896924179226408315741330363696518057374510483825436266029176249018819984189151382570318485658723359096484728972684676721336347709961478915129410090055174475203844520453983233754788954036511371236679323586772954236906191729400989975442977869892521566809717195644044987701882480715280225571316217563008752212943341858790319209090103473514328195454256564216482173940614379837149716437440743673941987888563016289912715030039351776534442214131882393364020169880175246809146173365490115865573836205423499741155805695473090937041203713478862268422921264925422712854071930393178597336080871313245042238869020068275112695176546369415006553378672358517271428452410115564046093326926101094340213699986675932185803354609860949640057031863711988212205202150568909597226713008622679297533643286339092554362990211891817378753688801407887330916792722550305000110019577856613674167810308452332068403462809267168394734922040431951926936019966757451943958569837285405486410043218050328922953065363976788361481894926328911567673742998003832675381971894062386311146065624203614816781753246443779430859115574354270277009794113607287501122035872250366010187806710572375181842186426225884090738626428193397334055463002403805867296878736572482495707746441931884107698502472444898836870718433381139154088181756221981221865716665083223054965090143750599655805214996403567972609403148395267438969659252142278443870862409086378453132128979607207428576617381735942474404752162049333795809958433401086153028745665330004043645926329431140884108119885650482198510818873561481268335991555029170737204381969925377409579131825859105486103705133848344613155091326444537181926594283930019072386949343985878646091265180031344145093533242548343159994766249229091861926276696164455997221593831978627690157975204321890085762092670117538374847131867615469113974945176557627894067483691962131046712571929539438242355245779486450649056721298605005104095357126515747968795773710308083835849171086238960742264207849039864344879219685501538664760258279349792544005917066930959930037598031671125601284719085961002596772170446243582117009974899092481637096498858269835552824477550720668966671743899776264314604171963409775383724316561485272705151263119896490918937033898224738202015875617347127203569731831117599511775564184783319890246511503923122701504391144826570668940348512332050311593536801836116457828592554620274025832527957044498857535155611239026202352898793933751322941980972598167640971427234915977419590368657772039107935097928435367875120697551270455757255338713285369268580231235243235597744739471289460055282906304178472675829929047172278441919733560089246742646899454068900887311987909784276640671227677054235116001485136472652794902721551636560289952561732593630534075449569234285551004293165026337825477803099939064244609093973126610066601017474885337375146549827814107632833826406606613973374563904697261202676200234572625247711179283472576597992222286142554987367922483963569034503047501291500569077791754467811732695309514657572409944871913440035029711964185520113395223840132847814796882918095226264178510013515159930888204434004156149597962957636889659479151001766226990321418913350636315105887768860026369235821527228555982183087547886527461567675507664736944841182465715547596809750583697007584530406355302973124224219746788637124189218135420632214666001180207347358690998770298547225079789211218237372932592347100395414206578928639073906492932664784021235741323130278188276974358639895945132768144771470717600034190200978428325665620567220451213801208572177563547712009544025321290988480449536638402968672490866900222352931602957965772892070587181804253951203783613114738155676371578205253770024167867398638618863326106720983429414233861114751087540470771643789566134069125763625579002248323940490799412407453130260330903380830334598780594239801435054276516487638076407216171683735562961682259361045119119790012325841131278149036734337322055270560712571949037141225855825377925100387842210766834830025466552086623286975915605255254626478079904106417250913233126321376340780378574091613283292296136001077985203415648854547068417824169842573013187879401378322837292587568651046107820163967924400917175581615479337714247771986078572790156362491400214703204289939910518557657079347066161791280744167532843989152517413444372182401017041510142460705008885255400531176908335270214592739754750688823935627260274306399885017786718507326020558846516689586772896671246320052489817857620369093932362943702906598275378435478256750485501664542431500537482652881116744208170702111373866425893124645802352657341299215365201627466560683528025684223114493469971494996752396310336798388225034035901311835533776001178847177969202387363744911969580420052053686665113881912522681255806116102898717121934089769777571455129383035238352391368383982000756653444836474874095777634261832581322399050446252475498210089122076649053251960788961973088125146880886612886801529033140515899733625398654708271361056368060895884122025766195552407913244383727831806660126681623873304954203857016215533177778795837619642652170285376664300530936742241826274629256942708165399450803100995577073779528722146557464228034018123118221105108404002583066434984489233680943735256093472441305625182341743848210415046255460416355192311934960181896793035747476538206670537823628776406247873825432308336258114733970079819083063494858354223519082501150964905833528586826255387812402945960904897463279322238384804085034768300578901857381561459816682999698626056668669550241542786562280943191941966296878581819357960435975687322854550060792338903893266186567924409036661866566368935798641517591287604832577526632530168831514982110142953331717562025895044993083671220230129456260183913256959786414566044023620682978706802324196445744902928714734614730204858552801094484024634597937121941669921941819576471174853296492730100723549871493951735021743241796669732854895299079696369708397499805891341008530504568548607921449898242999189008408526641472580657876861218290761443068421661373836717093238559430222073487733419812953971506994927287488764004397167676945734115660817864025408600823544941280176789907640683639314719482844484611053163577914639872119078420760362940801912265723884575358090230399374976931498987412436832558694941117701505159434544059689392064486863994212713253670064934156787206067158938357081935348570942175056083439008040070279564639695623519429034306121036371277055579758969109594573784773027461589625226814522759726137017798999702113220780673769763346639108019564792791367874371779049384809470925625344259125885929845844685229614405642394359071750530449881372570263500963182679373634866084022813141261482809049843673362361908589741523405093395910948127478454908032469084173845738942945833857086767679943361412595098377419872295789433191930925754031857779487831926232130712739326710254432328419697343794562209803763019683560192202535180270089052463251621563036947972704779726066592737448080337314369775289237964457479096684847376646282816918964858093382161647616747504238749500522221905682354946296425924152226248954623278960156386611162416312907589360557927964256515854858260629968935142003327191539749296602537651321527980259817926858815039504903683865696683297668547213840660469184435431321840859622212839421075339938770004044887985931362664808915506454043567994671396273916134867143846589416092648061142709658836214004014547672631024640258420307319259293376594959529260719278257742646504865217312393606865002547930730820968100356272657023350858540641857526010572288381918515686206922182314266675477154341768600454905981832089742675406547669086265766247706758470840317010340220515014562918653457043496121718909434252814744681697659454032953921151646975783100631843006262155639028227341965018923717442558662154915699902475194861160652446568622193899511150950275917962160042576911629316923632742782381540064091171071912777250021108092293048111925397763993932438921303791307748483600922948868179812893750663634948097031442441920353939413078559108159835042613701713543574492818768879627697211156507111608638714217125974381578345071366091144179209213698173341908918683737025931552628158651648125572072591655616607986444305570941797981633879770631413548663468048457685995170904336028642289550961307081093213172626033292472436192268458291469071954764588339136609478801381639706578451395368583323316323084348857744117501824995515583362317294232837396412744067129120959516679816677283874258174638001076875805509921291695409799448999682902816803095706318515839309188670497541988965367784803549679835209101058595038253088850004705993019835932477683976199580832120907047211878282368194209966786185322879004662713618723552171143357482670826062546745543018535769332600501504761516733765675739886378854143950463746279169188470720560463820022118752558370083407485057438611673698393658926514925168904124129637494296838312491555212577015258441702705179583988231639841985017364297501518093710996787580764372528909726381384546268794175881440112161732565737846297294155294303891412487908128731249188660682474315719944802157095910828321890950953408859706900560900091878788964677459485088527953152178751954649870752769692541311763593727914744330160101363741557621773233609364485948742177626783138705227180792051330544791182516500108607611262245634254194089074503255129066717473283229448061170671132665895551223136057774666144782750576319858246216892236369640874386565517846121193766407241425655353074863926493436264973634478009283806100961083964459655604710767706435512248865304792136769178838776786542161494976016435220753871742778214875394966518878355562307380454898558138629041755317984695329271408679115957443540724157873702224466901075550948212633486130880316121777775105939886801280001630214621742974658468432083554982692426673834286907162227915561616165755336578345895644824468072199810506497890709243713317702132867250755192663059490200270163123614572355848646335043455270350241203068526712053172785759417734856543819396177380118790684399556607956023376913452202226100124594375043006943211088454110175171424592925451271280881012699069234463736043173180780155827117584219978745546819279191377805842787850759476981998321048186857307314778043928829553928488716885217525536978846730204928136018021995721363773698932164695449401270039582704213277777773885092250527270534849344985142563970831953803584771961345491951326136549449644502816564582448107544605516373106933277424922888206304558468325724547099916108448031937759647966589992420692146893388583895594683196397957252850040480110184845250124857622532388520304556883653284820266778394446989532479622614391837517477414880163325462761802268677692811575800529924587871594697464959627353139354772821267104324547880120255769414409599903019359139654665350725910903643254997926070998525378970408285410798312865018253055785293970292898585611102734380892423740362164347131431801798311373914889294281068620989137839806904427585583881740541293347514760755824589711878860516460397923456955227439821308283014979908528042981144844460365236308699503948108303553731159010324612618833021456240384372372234142916993374105981607119504243126868372090309998669041999766499988846422040379945271673477665618352445340971746106029089898681719666793221404736233982619653002246833120771597254565038225483928407347121877878395997414188432601795515642685540892117931050352945760690612915052184264632757094611480574655257628069808401779719612832459181668888310242740250633221381699515280877567781329670058549759064695826440543050647223839752208731949488917170813101276767328335127576879733404462406587087148705139700036924174823961880706869455557139702770635786785440963160626675121010071246246139162449327981666721241376359012659864110268824396903154462344692316297537108069912456869816802315544131349464685468765950883087419022216149076558686841342135034446482770899482795971695024814122673279113977832311522377747968985918456220481879173908737318257645494796280515930227239213152043298183034541396049400644304303419039713147327222222786101380201823735143361487390175986016442820216727998970196355330026392997039886907076956296260796612627312757423217620156095411631550347972548758137919147828029192456725260552825509421904614473263991862540403810575579069338836702684222159861282112562831592867562273252920498175484391342342069075791431507719251036316800741930101273640443587204480975159827316654665998092492337817342252578239645452520594585694953669627930103408790246269937314368873813310129178004133586965555247222847258498873606221921088478867144087245036701802695531221308619207507673917398858821699072234451411516354378126037698808310560448496885137566859110644587620409785185345007205917868250529059982237473069544908506246880079478155795204209857715211576848647016163552086091442916624965910902815274433710759920464699015899632290753514048825717823782154477534898632595387305030673173925334069062571528467056815442124128265545269183674092708223662061843667542474133002778388930756579157032720178622074773860828897050434652295893264539857572961287697019409386889787923326943097370177649529486464564299102971010535866992200483532078512564245256466824785706519363272761796747232119481473187876117782074157116157484317616913525429553877660973076015156354330574198014697970639899637126964529836313812296938225345266355702307414443833274632969478873372104736684705464300914374148747422333079686016568791029124619655547516435064453544312774482278236556691928801433174676993384316260090384726900602294519355764541120708854207778532879006333275583291555035993489518528156050945268724974302325898879318124753185803597797709590530681263780323302203609963016357843257004736055349922489341320261761883584116188130692508088991345498842538229659213493599335074454929011221244768614317596049958757525048415093425644079933079146402304417416292432001947780699130126616015475549152088948118555795930893471426571252901948847649628659133813434966039726137182941029062648434984458423650990111160265612483699498797728086361174198045991107238374770655194560625589315416599079445868548473833371770409038378460409351994511206382057442971159295022295129763521411735998682564238818904869404735593453388988095434804690271279751096442109605145003987041958133879349835623925345723271404123321186830832893569961994087643715110412432678588792648089417461983445893245994135231183201993246049557091396119396196924916406166014498377192708300214502908778367131569535097871625223329688890706132697787946158004146684092357177098590976625294847579550375678263058106671897398958171440335701832699829052717482517249487030704590076402483941739004253973080542067338386019830234403376749537993004091769889504779457111222294499683532623408631930411745712414659489440866281322822263217077391234607253298234673515065285898335334940717630591285550585361695967276661609756167088282221691226981968129966037995684238531283073811360617102030049961775216520233748161534982124621804145241127060215553367180979445864126059190468665042912779630999053089349707149868931019475305998967583752140487788089123531414316145694479873220706062653012511960721111446001227365749715512933121722484040080271068279064804093558098234547876731271883922572320336238051442833238495997969664494015715841193580333346276884441017150293048674362575571173290366368298661177237069973996099248708989255453130804345219651310624485609797665338539084758992784712757850279922035429899644441529303731980505932975332691881744795561676451675809319080916338023426297841327171087788969230173258434350453309362068387897629562424685555577275486719987969399495310166845286725086591967317742033828770322631329568800986588798065311250846077492648975388701790186172729758095254763298550298355661097905138130374303393314782353267133812198883500970831642378668788171261394715055652558682244091059865094626692965686867102899038747589819446941156341922919505122234999735037206742285299105767138243367114806911003436863531012833964839705120544949354225918339959779207090905388384965822677358084919669978101306290137865471610207802404336445904997176757367367196636405627228145952670426053760706761354287638844283862549752703773986433612833378629225516038899910353550436870828582547065864171768825179647952325690221216820071991229897964254883461892228554953626457390971848393296901546428668905958106691051641485858480954139752967546918051099105402332755218489361153088073950506909015558174193275030266862042313053987382438545682811689312398331287722058666218743183013290037086669518750989783279115827725010680729115078628060805325499233877928714864693256279981675586345270637221502155549559825223977840649449095852808807400592052410749129053436487452384827919660075645624741897804521507339811198779902013586517883606637611964675131785117283960981158914534301087532372228964862097025743806024833322311589555013551173625827995755461489866032917104300624647592936773264940460040604140232472266486921464610708289318928886169010705731678586417566474580049866615195670112192279149107755848556333235443497820815834668169558400262747854435225835799653398184325027635176754809586585061950078325036519125991436237452098124733789196001369951339858481546239193354369461179396164349069187287323946781776958643938803392961544821515729998988187214674674289952433758978656495368145630909141454866845267309328440817405161354319369767056897579416132798053939338852578828864713054606344904846942112655902463005775555027935877341182749318887596866491169135772929993774296269948584057055867693118551385118558062027002735005598556911562408686014332397512997211064300704864152515368258968205489529209917552336494827223730432027195042006552112811417087517961719273257581484162909206915536317237862768096502269595329576398090897871543668016237623220342016058406985939513830022017588485424618757047404383042312830551453133392327847949758911439796506333044060623770493695805786129011230283340583200884993945279576973160128611846265343474191617372305647682462813430253119266246901678425789263368374014448025742195004874534809392217668796195764039115204531294388850794811528695287860411904159938697638191599758819489212760832602569216576456547372228106521272293150546383628805153349869409251486110033307717690913770647582074691379609360545336526458902893624346739108909292827991992958841235619086026706740325065501831512343630999583701822377730597871888600503863243044083022131624679169555428954398599980791769440349285938578050490828327105075573166683235903851850380265015868189017998774390603703697351947128107489499759960081909906495874386902210529101106543948241631982637188416810957272444127923826301238837531706570303365664794998640552208709949241244052255572455456753620377482527841527106362886100116908899207216067105259116339990828040877411653110234344154689039301839979764808324689840259865381944949287135213419763385847664089534992222760364160235203056869821744713035974133049225812224911200298181570636114541371940591616476379980785406850672718887908205179849513898215828189689698330217976233401118368578486126656282364747827303781949382245931210914264198317187950055351438787720294140564869093240722787092051034637821945214590420744644318284461276921174754438632922561526882400087458606762521231385551291177654393009242191423527714885474240173154105861683834530589074350792725840255841646628806653278112271692169267790737771806818737332962633657731523204932329499919084131223342172313044755551481750926318251593364592954948525423490357740814706354674978606262484445886980707929431306046629660474671970456415339824233027085402557948166574783957114319137240019877515696196493537691932405513809605597822903730129461966037707962448598829063097578668437330064497355967260982506177147727271430154462051854387437373361050371131278071066182782276057833692371641067807678490710842580164470660999578652654426174949612898356809352129973380932786406416944205588265854837714073483017573712314143283443719316580974721374066412783128654726228522874233600578548787647654080475506481105355625449476718517555949777176630574710959229970502583104553267191029283900124595285283483043557287124591854420041483514058163780143992200075087878534472172237257151101603439319624422457550880566059881775609794679348353197986370365741350155658906718721017633584576367089570839579604761024809619424806988560202863172852226854769655673417031754008598095509118130495329139087683447592550520347603452812956026580461418173204323938839221290898527511578373125128842651217862803773828749393092225584075990940560621394800403093075364047673943424014638201887555606598634529113315369012653074359372102254549695379099843893670291059739206688056515138476353642484075539603956866415689454016114216940474504446377158962227954031144312044897507768764092649342448755523096367167154179311817332770447392985409156651695081622442703383735106510940396197728916263616125223606831673788747292590544014141801657391024590894678759990658271628557046056819268320386759008738144749786154531002640330351874724234064799073824886356717756018509109105497084870975376161164723115411294456830423021305252892703492079308709407216879998673451594918613927536649811324688471179662970994972538086638844080521588948539654145268626071768554852519342239740896870065017567712388103473019746961004533364277488748741129047407455647170632784079599257794538162364049042191920714006056118341522346759343233472398447239590069360031394544622562934301671788439792875871005481549502554754140705782211863905279733347406059347219114966611247125043372087171426268087840610035207234414543178814562593005533676601205003270351337729055047777817665090436601140787420929953388208408399690364154130652878527492182604171504606006481293403490623204297070065698013956903402962423649844069039994578679505713585951740990073831950186278016224034773569104612530782261049230887132188575394897701945390102143494402312338999741415760766458157374879155063929240722840476408277471063158988319161287559684431712647046463028437262908272475377653268205951326331053881632154861998319020377226701964182509884303617803423121711490172223010677577772048762664731016800603902362764271046032700071647278523996188551159005399535935311296240304819997504347795814198371717477102898992146390477519651132546669549216409342100701210117847583889886030334876622748721957419168374681314129905467851422914932412119891872031523009666261414182005192745289861373736099060414628925794255268765772035657229958979658280714937434183227092366553700907823263209225931496193274277032627150665558644152185568831717566290692473784549104217745262099957293455774079967707704143925660096595384555682678105613533598910060210391483386104000771333270718735641925317090808633850928033618178529916901723742786662312726754013595385074691874689558240148814437058613124454782304121458753591391368763755209447336172839318764247947551666083351196133497830747481379094112429866977886668319134262796121776474228261859974795299284321466524434423309290405342180713086768431588876304569865657685083379228744762940205472120049000307536564488336172950667350090730572913075845652150440823066361850482708085635637219045842038165323910991419157551120504233522940343534150828873651225684699837014312581215195827417981684837850026310264203847911416083856048866295711192039138920584694628134468528875636088463810762429430431520544092473104311253479020119340949180397085281989701788365921136509779860677928415399867833847094712325622153854447555970396420834661407495989834651553178204575660953107886729946942775940659228073707847894303376727182315058225518345700934201477302719655480881486635606191548468468605770016362142503330555834372949868798611455487040156837895226229862725706328149893199650076581475114135404047496736531336377865494815288540317012297010643551718925205842322836495543289767336691794876355079214837817137470670986179099898523607677244989630483128507560029323790061724402706171750071097957918139684036614692286710513345320580417127705217176146772547669312454153427285701204712303147373466622431219875768014940352771772365431458650916129360738509854306783292816406642811728076498242425995224906974522362758820595419933221245865937043447519554829651969335158169486221115388138848873570523962690402627755972352950847139820395431759083744693056801662543873474033811463425314952467882136290766659692815363679983974739795006560672544121970985362573612948295115750315282366939486698947426770854826607162187925228467772816032634627402321894507054107382924578655663152097133516978702336290632443680012903589111284727497025047427483296393757457902197120959174982977708307729794567881220060384769287023326716673420483794600671165571027075113637117690499867635596316858680002662513360339975043044733772786880143872455127910152569887765869444300896500583275234067069556240553813102474408578665722960081766390498166250912612659936011905068616082893485147056231174580043511582943655228357420932148340739226516711150852674800860649455344565218380261247358014757295432679834117110593197048344810318719348661009348683441282639070512609639411127270774702314835230150847204328023617062245481865867208530589628086763254333122458744871026317870102104067875381432539955651665625577832291904971368409956398660499028626860665586985941057915415502474862462719055996612757644325956365753597748309013271737086599626189158042087749127512420017202808885127120276362157727348332808963462455748745702630941909060491981527138478428876654083999291898442845698034604878385571329548968264693569728443235088868814003946371776680203655438467087360002635746474575932724454785914244672574133357537798849718281859280334396576753537284035846781624144571255154648546766631311875579726330753348530169138730575762910401922594837453584717074304417210656116340135427312980970585142511349243632393735782427744479339543515527837108683187322854652384154984186778060360553735696462026749251070633688967921463403450594183022994758564725310560425445584367123212669297851935791534764934117293668998528877272038474731208345101956179811678691043513461261705462028219724100665914583849460439616351404504476780657068142197552253177813123620671862076888873093463797755692526377856432487614836116039251550490309485386313035599283722762466383646518703916787710647268040772117965806574819319819754850035272933157476644450904822261468928374641294221849021531642908574851551989949750129976922565273922031871044466538455650932577367422853837791200367890046849907715543594791949231922652416341610429599462043939970199556618668111549524305305504458884243557400247678285530159446766336882503944325721086710872292780434068993480568092069410071352243436039756562894339245006637819559750622666566564755402517463844411116528741727245449588730230183733748395575705785721812885632264617681113587487858485706541880237538157056511175182916744950027391903302925396818814026157057849993206754084408454539021768857592152458764250700415159389940276590342763557226575382893427111022958079978776847925749276672247214929941903058367025147883872001183738467278090017708085051294767547147567873396251351450846160811796242119939404298815593267830827567910657874273986804506298804963247163131965988735402094512895960971421903219565089963784198206276704734646888211862111237497177926166103395433637828854715149118689996009822045939738842454667131004736504203142711731565379368760410395030771464354040424822108241358281476680737876830260570526549688028903082490491333795340885719845589060360259041868940344781783847228358099757339124103330601875053355664648926747417743130599165255957750082856610671679995339840681665516262612710901450104962785317118768738786567428092421441419181191114958184558033100863601908603349418225284354018417843532518002551814960749048549122523641989447777487616315661110004956530430091734192704364156773915033997533401539099487656940039610591054632765444410865425578631039201466184689635099024608224288859963691550473343357431060428445774626475021002258852678261501576831366796376678145380391699977974211061285824777759966498783595015343198105308832416242157145655702904329454017075350358752579786635981706445815380673161606968305256681830622700764364931967838633078224356299595846483354572438813056757288763484650067574255989685646502240022410072531450902056361186557627394711377095079986125242948353291649225439423337407302964381216822614342141416490501477288588931492872514198036881092139135465438854301038307059772275159538733704332704000772667877587593577779741347663571740299845722910691706955380922215372328263680442095080340888190103354720278242534596242699258958856996402051580882265735637124442389680431911593842898345851688376214527768863472957788681584488229696937790596370420580460202658420128474826289198408026461039488033485002847352131981781830544629468147241913096195010473591683066533526438494141597398916604979418812683742998287791817439585739199118509977722970031352200294630350492844303131140276420510071132572245032170331874138072272244866209643032666012349271966350961976630867919284222557245250659745640310255837138914535296796615900354568857739984652872654675329768331298021935689684867286851726841346234600110839480857857433629092301147375528694477461117389947011099773298088939746505788194093873276131521686666974062628830826362751860390226358974909675282097381803437847342048337220408740328273785571530683230758205915915256251805346558013371436058052607413657193759195954952661421065874531153617823561718200622399569177606805659906192332993274457919359065155014658682682122597390348265568672746293732453429821044662705142968974497389508095031820875980998644496728163648055282635546767157411800550045533050860740492425741337798723755290771501620344244350344702045609023431922315876856674334106811025585173501943056220895612948211778257746215541860976064527652254611876627695182498392806580319619127237363151074680485622277809039020054474333296711238132598161913725938023957586827033479858267111823538331159837120291693969450615818301171956777077553694235487955803125580912624295837800929592629729687298188294254643311155736811527115785949935632666605734969038090067022077057133432177300942217811989953181295522873867100264666758788072476841011996571295635866368252798554538538424353158076231069751952904702406390620585786042598887313525535531077989851091175070901881359780727097502797912155282905220093628803687048375639022843132600159271817419185764292207872309339367411195881150862847458996649638133714830084363260146768169600132498847938661238019874322085423589938017905877260763409103581218251705070353632305586759106659696014426077445844232815589831483275422777606485472007393659410591655444666633587637447102894958047075951166460401422956074974486915963591491204317429861926327424330788017201840773473153719817862343326289306856363808585578363781101276113423625715967034508628145626000968008526440187866330507935154480894128803070432504900049612465247330413453667804514046817205696017657052316542773426376593559686654094375247776306926324634183462304867251246115066880858066336858564606997406344640700337555931690920037192878962065454739276614389757063141418618328742397428508576362503168437124245321659471181359763030726407269481266464534573809797583281006739649920593338552855738527075829671609696945978132473809467172361582193769644587297997350905767723199074708497230104043582942349631373666827957275223213313763764266200727707786849883256444713221307720310208852901583561351291941137832130096700709906736867624410506457861207685953386363962315838508077612816707565093723433718198259639214523824453235023887089992152618581247016343572874965398598160302611810921402228946219427392666515530620678056243887437829783632464947769665762291690453631950219252908832230690454113762396918505992380935346906982803219811304995277790318246184358061385368955682086577051439259184809723306236282679990238975733749605041441821698668547881495161924566575928668918869114371496788988964614980852045144058028131256384367539524200840774413086473343001105584679310599771601175521569214675101127691436026151021497272225647648121123772100291537050104901927370736833880704171475263835904496250416993001387990954431982800165469446579000345839546270222485045862225507988511752376161578734275428124408177257230397662343893247358865532676896271067282538600829645304722331651764758679283792889858154881985786331501237130638276070113103087987661848252219148717896321858651848447876727470712833169058894870429114331062731612894869691981553837291845205167312651422268966984696859529017032174216333645790823441353813995100134817431529998230181755059240259148031551612937219130857737486946960589086561917960219925479809695240042133432437351472534875149487283062692974610299846278932578630432436595433313788104793598175211791600402183846252259313452949088263752851112902988163638687613076806962544507135544503152440660945181496216703051273554862418730516934182442678216862860753598780654248553587109109602841059216625421217341021750855891466943254891342896827318687143281708070491403682287426047583746844145191226824233189749472136552814945278025904272314495590381428679371345337508831099339838409409957149045794696789542888273749522284986911246810363295116112691805326990380293656757199124464598313657548760829792249428914185992081777118252168821710563543533359096813190815831033098061132275635569736743624058517924251277316635103128590985489289308428639840146158876978348197452001478885560049697764421629660156506702996106438924076533881242103172829166702062522129399781395747984466099869784002094114626120965237468416935356355373812293893084540790224039668691657744832965045211321748657752960976763159052472179126296556465791403070009125194617123554916617047194873827229532550948047963907119610493142383218733677937387075245417646073837862170331570256922410185691575066778662757998741816489302807383595699413306414551716432280691845584556109817115146988509544438183251611417937001372588952145136682238969178307402007053065807029367357918299563123652513642074053355107744386107999846162347950328666902198364340568539780366884804923780995894740740585848154063661729271181022165754078325980361818905580137003870274436872105555994455157952948945033459823729482283455305321294401608796674999487600663146450923526393263541996751565139396375098452279020893779265175841337239651106761167481298428764782742207870210445905806654499601208898419171454328421664168862919603594360629341617691691987633904506864255380809300473717427355599901131017900224487607993388887422802472361836215339134665561080561442908579568268775266344498439035272425986530643097926407469774096261422716618229359921563637629160648079181874206882776877061885090989636194445882814414849638894319204797745276152160778478450024421008510830413537674443076872342548870474543559594401537658831679089014899057772624656875084804894842397970406078159650575522271008380819170777687122417923170866798164024100293097915832903586537431226435446475213980774964139313003749416047830125218810882004848808121950981462530855820122697442009548032039143641173130807372240597270679872912395229003770364488170577377871556269144057229491755139178676814701177645250694385643617622210204984306205244163103601684440908578920371865498132628984311956367363648951263173313527128207947675904349038110301440151437087610176151763711591805294943039425500034687777876661361433072538430297993105884934627586782973187879849351019611917172744814268089533079849733417891359382853402765812346247006145746176406178073924551096469282505590563200833093315123594624050849134450954275545349672264672963824295105089993013334759191333642828277675883593964007022949003533546215394903689944663400580506935034421557731192186705593017014745640121710725492801287316322990013999037986622392877833698405314208239594096449322915943091305792714431440938425156649109674314623397602353462743970348279973695367001779298413272784108384996015918751245875505366861362079377140996597199213437267835449290464309188116570299319477493064309080087156784597748964747322721230292492078057980008389696569749570587318798846304191525442989913348682859150864819393237287020337266523419886498441217575090345810253868274117453139168171555938146549465425475681283491950085082150909217114239130417660453031414063789112205569407248767298471295355382899371563116112034525108546698998747801225660860633666771096189829311518140729530724159009099805735299506218874395148786710058784213375489870846754766330106207256363685643152302817930882985484381967582523976059031383929490648576761149894389116119933947319069317688833574034405938442779226578325465125864403099440004012333057710329385096117704183488331194904912771810411022942844325465333062738798121359862048812304728621625236547331414515042615410704610684036485799757933347765156762966433798155028054273144731464411448378063881496492394571689642872442030680251568831025682833638763198212217499865687414694075021091206380878675823516277737470227372499281891953709886560067872128816071213680860530427975005614890049759914915993474224620094163179542030824829463230710278587683644372260290207141565113784416441655500429736747706331338696195003541035761460373362451054463177293674331495011480251885457908168823044458337543325911478751130966877546281007797752860715706773931854920256848263906389411799992658499364372910178224789110903496446591383686164866221141949938990153130532187470261597052895512962298366591590696815978980719656447309250919194060333937858869751694757053367192059987913959023909441980095177271217406435657297568892486026956465053329417167703062359228976750279176537095889215940764687337841571557475366523651777085804823119008085277757682025335023046131552025819274927315472153038065001348467043739048337720976104423814598231277522788547253305876994357618176231541605605817803059355602227922737498164142977388631817544363125096971790113640525869915808190579314134631044378011552659303647909512197279852362736791598669252318449361227725418424161998762837844964540712010740753532692751486096277766567615959644001411774206069748271036657454693177065630441011594583776023052165021879638753356479492561927033843140592778705901603789437748068001732701710800545776754976377307385348445590300139817973494587526393128728998569030109541995124404183444312423779677083011428872288364082233779189158475790832816373981521422761406832896167464443723493203556026520321188339568654235688582017298469536401292095106739734386098219183741112697561233323832742793725929701683174907743641053564299225594572021530234930307062832020564816714106875999435719780065932999176169080854227021824271822278036330985233580926350487357226447573773809142049850096987350505465727965089531961573477247432645921483989461985504967890402794838016786483084987314364942785956285966030092775101636027911069701202333224771785345479598005972661023341939036277145405099332759245410364335177555945562376151985497918151945610705971196812002268930568272495246672780981545700618428498726413909705219691111467339037942453792173616225908321385246753468079857622532226988287494640261154831890600559391763982027928974952851745159409013014473244682416282990325761507428016079508507136292782771497406920901086815209510984165378440891764694051080089928428666363291638935054028574882783260339693146897851733486896868584797724389650965753690474006145918650737154688882532987835930125467413242739500395663878425946016737773734966420097623119004319022802566934182805540400595024106978698120383660644393993474020297873131393559464870465486987919634916027332112526324162172822287787574973381362118394945075220976022130059546457571638173667278368412104334340045892526671308003562476703337841169062492055045229122369164351396761817674072594942831922885483049626771538638169217239191854864354977915643150591446505947545219581098582490656328008202802658541828769115103482318854509959809003108757796929859366574925089159983587419463283736576192444287225227698102145974383599893169355980308383588979500961841347155240473887579353961081518436866224995627616867297558844255615834490821993236120448852296851787314890878128483007443873987036846404579470779732053759886566313379068832017856397291570276919441410744754454966168030986258700551282081045412231675919136358289591078059736250062695325664533522196836367614853579976189759511232500223371018627533630168215326693560951964830348936780859476607193870618097536602467832467724270218933481519599723072891884629197007289536673220684102073504385250006241909005034179590291116894136299477924618028203918651786390221019615472848501479642092238126959034174834984830635782286105489251914025982949356588921719214411010854143832796946719886225454172880290339663911900447047822228724991286659563284493795774988171168271229399472334542301692232572041815122100954480931958597445182311577302914944152552341311019302964482951557147226049273246918295361008955183207257384679583473508146767618950110422600582557870151626617201018461329391719909812010485126391060405423474946861122336031429724081505600443031200717755137652932294332908035344671444717017454278813807874939381640138480686801618156210031670578059961928761916436299083361523668312790203732738143698350210728903464530688891773460235081870095677378490414839398018164967794467952935748440628460050976283451985696097542771663938857236762958174008823967816104843305420463437271888585705109207148969266965519392174207397964772349844263728292918172725731596455562978384864634101835946674543178050465023691065342501848083624461964866792263182354018128984016560005524100331637334482940180529184552590190237085601481968339294025285928026110142151897270640068513733566911970296900860281919052762574277782172541568682990318784452981712068630490011539014578074715568353497522056665660532997082212393672036276028520130440893178977933135259717599543572093791650773861366639805633730285616992513412289572853359629452762303462737610008911164848042874536680987459074822907642056734595991440720345938412239411980918083863775660718955907247056328444213412984225144634274432446598606043948497974392933867464351349857842082351349079793204418725410308210641017429743384569288137610514563041635407412599771874564789584460845304774033559920457745328616628059539814049124792079987182433857142934860605057348986555694649860028780251689016579740117810088250537203684387461462424479560785868992264375850477821292328287938233736576800482144615955161610045201414777820983304039231897087822493195468178403038101571265277874584614273140921018159528686279744595408368070683037483092773590576406430006735848220098603526995142973430876702772192814125825264487117953644397158833253627652715442341303699815371653653263961532123926957771276768998671379320855445878756203483504375701455843504100326979782868623057403428937569478745622958306191252201741550227692695617642983142907286969579025505115376696447277190901396714343331155568798740399829211421201792921762639245220755743590542261452609094509993010395989576343719667714649845159100110893079954915924033861427077039660709079013794120345743484314741505324065862810909380886159189724644590230849975406617602774819798615138021307222943377338998932738217839061489979225214497496561299154395858376687159371521116637625589665966825656896549499293543902561897040866247173840727689837005583104593827524595422441142717467457677478100188844385681356835311022353223191260564402689955218245951632491443806211424478231697148002315341331054823417994581576428489645569380899192063506861464400935728781446038154907822480986037123252867215547440601764675077744794158530082986964950664651833163209763750258226316532097794126301325281809726013113124781408085891783052562961686207377381804276192052253557071350824900054700141266195547283542239324795002837771246999100668149854400442356491698214128598380077831844652869359316758874651815291632097978577044571433817080201123116914037513526299952518713367311329839114139746417242323886215870873334983491215426256778283354177364486582204032619875482451890727716205669900050641953441343652962566188984492648290851383290493246857167555219107549215258492994446865972079534286389152611801210633262531073586810783726715172973440512820274650761222028939629354950013237450564434635372045211597048235531689890909293764725805026618989864886040224681145979200467643645897281453503563537013208483122223046717963980919986748218955288235966157380832382262046341970485728100862564630594731061211488270940270892946063365269714677836965688339178268771154658295785614332283843817066361326260857302922993717323460582473702277596686834661005503736290064732364238549472831784597607269156317703748862831842513092539425073164644759846406054432488095732453014246740371820070147220024396682425898819297513413786613933574617716682271473213106441281913938721495875140913710074512456100356201889518553956549649835988427142390748991818458116159475528379262202772366620337222220625402935264374045050063515355337099512531822601013622009127589121953062375293047262256755805103521579647110678109075258904567288172474938781304054167313204988155726600011876746271834481031960481496572260521512121238607961065295510140532308866603376900272425626202971089463988480526450042229398142445002183117563736051263530530320551651741358412657237321537670604801836038333049844145592462987507243354838203217681529349656267194833164248167423497305848446236307639462549190822695485309452522514216639949524233680284754913474891986336994732892522857684153688147707800537880048024744605886268367780860076617528148225785323719433808527865652565137669528240075512754030155706197069958455139758017992105581610880642733165002112048645863071656903477947912860766860309550548994168963862505113229772566727168304236180878541795463955831710347553489007508615217461994796997813851140672791321340974648791061166558437812840710489431945794617079469126087553647856533939686199638625290327419725685585953428912674922914781813062517904221908099314054965554230470702322160270021010817020837266986863600812375195954808410155583311723659252522447509057247170163387794685538111341413809913250064170032568209338434027945577230686922029082260149557566757875793843341277990340245037509681716127795493659774095295239474269537763413467459109744760810131928864033068860214334079320044537752984538520808656909600101650989142214962855552596800684889470009354117995433472289665981469159657962516064500251311161761036206632254250658796672188900974712653396555457642330897872233909964154049282139664807906824790329327220651512680688182361044752608290753704854338433459366298047674974894023156493557843534650156620240468856467193189939605980396665669389056741525123374165570434927972385479390474070643393682608154594722671179954032415178161467490483653810072242731063168767983427255981447652673563135034158445079142922749370902549660118169475035880632177496392646235931451952317915260244067869646075499883721730320243341608608371985619802604635389972589547673103527793324440848780176157810308538659919057950772572190347420638032498071270338787240377318643510575953420163935332378469500802746607923087969258410472231291569941993074542031648707882480030618878597668301107944475141803936075322653036406706800709808582651852466664332522477124071403761575538861463064447579187845815059011822211166696190021064060042174400127918376206093873498817329811128843968773339129719963717559113611717909193948758061449972194821725156884151306674261698079236362072603948683601035086682831273926600754082414195512247121262757026577779558604790646783152665133911646281477682250830239853201529789861184995623654684559273445976394249376242685518932370642213955232180157192662420019033229785188204221809627316039441309039447226644720159605423867351925802167833796797013504684215479901761910416389346890943402447494851422117499850933620946799180138280828179990596155298932187927919723262287582781078581295145501951114207113372122331513471321652712663470024609357127178044078847667900856682524729789556220079731702576473539825285150213690310188529250160166924993404324362420940010565675373855356105753918774077946096648553893680625310181800334320138303469533691930454403912775503269700254334846698876959824873647661457484157548992655323204211841324264685473889445237738501196795388574081557425227819467354695272397325435057208775253746383411850431731921108476464977858583471158168587017890313664182513998202479707926269585288831438011354901579360331491312530461847697961715810421404885332639535690943957422303044320875287179261968301042419001370486046351989210649090203223685472168175904519947759533631124820297446070918655830690683610719886086386345832059809599571855773017568814887174700127450838455898703372433582406053769070891489946651096559475161879879484350005887907600681778408958854019271643078728834020574618530138915084866404130671436109052003852453934806865277936556939051367953372456847101771211416758813229783812341400597160264578021432353391280885496635542766427400565959469737693276706837204844020369031483789656326228776157615346778693330782665963044802793740176216503825572603424185286324578180950877172613145060483775511393839766735504012039354120079405586270796119350315254726838395306926856992108008201643227975961548946470206650705751798731020339640917118063221377810309419776888437413027136995370079561035167928507709391349196582550427343442177565464899522325546084470358309702498807476749718463037501113002961678061472033391085575926767465519392529955577773734080455831896256679171961518449441663544787011457400356133781265849794991255442842647919022735469523639103716922595722693935546245986607956639772658204041629256443869147563798876493434792669933730071835491699399138150282761742950193622438918638172174502222516114188005839465799903212760230225742301639708671028552305045965289511019667429173152317731285580805008518065689168532502884573885658649669829639886851006095734372323730002546067084657621996197798016509602633268242518746898199854419204288682916602290647427645011849444730430427755135350933338860052188474772554507897853460221429137342425378991556028900551932185112879827630489942111428615113717540418924454597729509042721483968826320413229259216586444601910779219136223484859983545897497738483233048539404046252774354869885200684441231668005738140104487746143797122980612573764805695532091329983601854423398151293432186924503329143590924180621096758397150830257121619281129037919498829264428303190315480307506324659637263409794137272322028474165638636459019130966264523777227943925959549349630629942904738337327975068998030666152162313943810091429113235131577374896804899634490005371751241769487455696225974333436199537684116808581336206495414481118306452540513091005755309151451622922291029366135208023324685518853076937929245182616770351581625904687273300184633138415170138667871969229568239067850782030032048575619364465355728401224455567095604238488204493003054711805495529459680063952287915986743759399228091107798546512402491220053915910330592879889447913523310837363918409327628519512887276211281701596286427449791849224290736278438642047469606564179024969100730388847752054679508811064251972818913085498735518348772013127117596954115453269231550518389546421909227816706509245841710432801942311529330968452399983091365809016987784709197078050685557675252227482624327234194487759637649684389162584801660820290270914492711079819034836144093947410139316096991232602348479791695684855650569540870428117064057316469862657245271328631874628833226708758262850637828776771624746467564903882193231423795512720759197195732266548874514541481898254047944113063418184618898653608911370413448535039405182923658345637047687106525187879908832656695485454756402308375320939479539019016495534154063564917752365264217925524581314013590093428336091362861682924701993034545457092001535150983121691914779627085144325038813608605429570192590940209820604423407998154537621063784915703387666053649387957547527730546441014319564293318862996507814791552168556021330018040835893396051535508852670873637422605691937487473726189857896067242457295904565254910524701613453579137229293554655585819022922089194054690202068207344612418800734875066776196789724417143786211242018579650033909776332754043630413173478907955810216138759801583357442278009356553802724307128659421883359284264318010029313604587393092336765798629601988650907941939970218418339610404505159060327132572431951244836590259637407944257288948002069457608212008609113975330962658602598741626905207691503698377210588923822827571452356045678263276452479285683889196728190653320674630358900447482807231829417709643334090046206109736766196908500235702076153469033588419761725441020946296719025037377080179627566806939475913569922531403675111958121908465358708925542902889606989038650907649999072267835746591859792717329414388926983206410014145285893061918488647153188883741395013822284441066348777173002711313218486724311395808606552996252699459435522472771102351256053538045747184494540490334355164735892929265765036705224396445274607111374496744827308054123919965383950641464305158055214726647711659835815145454880106942970973982787055187460813513035021186688312612229117390510904836108087650130362141620549457336813552976568423523503850844485080363845645060402397683967788469092039141577820397542305624280310695799333001010769834179299080302181816618082254931203641092436172802893881235004704622254783223058663621111719737558258001373409833476751067654471674586802214558732578842556997002446401913319385353929529446950946147306170305409431176075406797199820129870742318443760573472306345735981470446387832899458458588355911518369417449055837687630886828995767241838599255510965250929740585610216592579323842321187785779564189070384646732688351430606161625034597056229287418498969396017549528714625125747716309603589466209139239449388646866385442778973499926797616369336354288241073956393170579936048300945835167284808704135185440760119572051887898132723192123021506571274649373557488845198391978845445238601595144452318489989833134244194689522532589378350064539441369107103050879165475325225584438110671284964481118778222269109461892998789030736870940923903696002882093302306426232019774720499328587462135848667168697247406727926071679175819150752340205672061385354839375764052889558942634731753494455084505361722341619532895173038765957504961019398150780405840205668066210182580430765871615021176135992738233318968036094994436616000646827861994832502924792549959138688400861047854555748537082664544915075244157115269152832611798371922345024900677390358081808207187668609644623961199090384319755033282804215789126709452916006159921407501648463757459411380308743511281550351889133678425943106197016351377321890837456089445375209291276805169014645495476822094347104286219935142294207341125349519488914588070413452927580912681481317748857194954112583825130723400009190725274148709102375608893678634688435916629226507756323804161495651692051237595475278031342695309187901055369623639574467368667532565858609582350578899442410164823459554604079604393712882849444450880940119207772344427714798463411234206925760374351045522515926226225287826514268334337995192624583826240548613821615137533487752072080775340757094399669041547433327107091386101089141147849128114852056046630490979317889128032475342557936259872087024385362298555679514966274927409321716646695273257812943399478444174588785639731877211021731014214425717819561916616738554112955555795472100573590317773753753264792530149103950998725337487239826106601639395699541864015361954323687950887929940533053424839120560454576474864617544918264091027565336743319380935661795053451706692472237211986229394805931215429673874005197518049001591014689956398626670081493943333335263741310344636854807211544369917215168101748934792207413922995913045170515630066104169952062809683204487752456744521848000527860146053460557339640423205913046044509231867911938493844543429176677094098576158259520548187238157254177293557040970110174457303048327702443866363821676368807658393048596175514115624975793530667098800964560393123367902099892021461493711366373040232300631996918178977247925791774708529024279642729639246850821622051294796592604673562715649208003686692750971304564184691909781570339640453410246006461650887511374228080738949320669678083188070491954559761730994850043752760252119248979101893711385386505299982433864166890437095370112654832703022890869061208722856251311613614777758204844678607023748928818040117800338369837643881471296016310342352030351211611732269155725592219603717417133469902598400707915933362695809331114226164484361170766891263776118767905990537259667905956056106402429402895583166559953856926312983796332802707199182691147016216429822537754737670313798400588132202755165952736396978783107863343395932012315904278522824514749506407795292425112464729541505804848640067486809257336703308524784226102548561773657426650996535378238675530156636784173597633309329735193015144761818370782209702233781073051151868259718867710434338074224425849098190303944523656976546964950567883986396957567755070911047265982232855352355557646240145405129772667546935412315294547153429602676658075736740287254052993965739748942090701197689624382037536965333432747053512392028726865320098074802263539038736297858092183434272655298843280639723425596917122606477770470725237401849456871280678917975384574468006440473660648490152291958297396652154242729374202547073317978527439687122713581847601542063922246705066640188856025128280899938213109025725678282515014356564226364203234854500816583389655858549005351692650456784805369601442015351107977031360615409180254956866054044850458086318964032510346204295127333506421418746383193053615899779748595490023337604034017093656425683268625682239939252133958631254194629481765442589756644628796399224009550990269498359577377474884039763691687355344354179524625379807042100044271815706442438030671127012625734270130140201411350126858520948814133071455471840816054878579985201643324675439711074002836660878721816948699014809477303772214074338040602983043368033207958300420157673439840933512334007939991047061961270778235606560680133939067423032733598107911706877558765493206354626816802406428548829642089253263654277993693565200053154378603989666342940716862043929392363616678946262819263256805001692049229095417424780013863321761785616353555610793547606398568625796735720864561948629057598448789103880510428051739104415920683278717141781889054022541324108886697229686560792402673575189248099575437586270610910718428117477280433559011504569831148343036403135666731350479239980014141686225349583685991374191028898025638279866715672813147569567511406512081564579257599934013825819748845344142609651265260057442968826862306167928467244584721517116698084661770617005030488709266549900646086019304125577586461730342130368213496060817019544021222943297262120366701560787506631011640656331983096916586216192765059160334121506518533421081912144443795978350380692957589730387972315074575333997596277392799643217949242206056116545419398380314572435612354534622195326832226658480013441562243963422419456257313337585320089189993008338259440599655232818769611368469592507954766664694396982272748917847971807822803692346743812363887469679958758502443723141742156790685176507485187577293389790617978063407780970835548651803695492865456034475050806383499421159761030405569708772841609825261056596887007111858165311614506579366848747217743690526611901810078187971487547967889227109943923955779862154928300565301942647570171255218640054083057283770885165374892246584140029554338515003102017728572554330660946227071024442110070929916654511234004347740707508008076784189874620786090282250713427055501073766853204206809690439195145164505925312729562358518923150735090013444434959849499739396725344524046343493307377463536714967419848896589417126212949088847531732552982552866113119567214862872365228814173204908645638145329843070686872186829026505472652859973618752098880610781621248382814527638781890869715922083145363935543382716530506828425850729964996519984291194359121100730321399464218534833671722809964546122293794895137117366788923996378281522370509290733244592799617248114684552228905849154724437476613319596483959819123629640181842521415897193182312745077079848989406500840647933273933860259083078144556523909778554309771543544713629911455019065057105859764194967413206983992710288502096810160839172557176541234517495287327782827095371741184061537220444956928151284818527472453975215572552609309560593849922057281457289577926053252197904009811994507727163178706854192969862727378898903770277629984150100810479513677390751547303287979476542071901517961800869060474646995198185150492433154637840041963897218036593962946259564294813015781333140918874987331638006181966555458870813191375544391395912037627173953762624342930282619998199333390044252856406123363411856474095621868559760819726213415526439156034633446359922329085734102904989356506456082982172598520180080222011598243898711834973112524850941798522377224015772541872813912762473619302757188177373578435383759910037350790780689186229954696087358652809697761856944606615036877052122754117056613139774251862108214589397837730788558573047311502001704958622404193631237578548405588622854847127897983440399323957181265422052678477699805252255316635983412540121329405725355383654255317747346294528448186839940223316311838090836428669881477545941790787552650189333499070939359580931171212541917346251409768562859449563248917350763487301860542091244003196593124965127964210766112570456650319237636939665027104519557844581997889327211474209977860399004613509865817018997227624142847935463979354335035798336156623186882732986412350439702703839764743279373096947889183137804230626420391192308456761415568985700829733126436011629624785518931565272638169257941747185262465255721965378144485884162983531137843198428562936464662241089779925240788524502776502988169927990160573342695982670538074693750096013165460372254074735342463747627870091288329550153706671071656636647231717621837081129855435872537613759719414309600572774586375211783029150708716501825657848150711979141313004255160313774791203695551211273797367896543291468704270647181637258109901586318166103656650451601969668914787802178022685168434625420291143597632920673190763714137082632735893412608215290942533618842495365800179445785756421527512924044121638233087011870537226693503641885286571528429625998638441059370645772819611699492669460801467930218814635590577266510783541467825736612506934085280341773716064432876333254355933450309744442790052878755390042476734139423573881736367322010764052395488392155069578855014710350792788012094145448069655200328255521349942204449621519493523322887200060558136600279345663214366041745434777062576440308725160347130586737913010543859282245005626721866638026644473670564083763699050129616110426933779306816945316144707584889829263394344898122179327987588880695335540686666394542340381811364075792403859212745022692929879254462581974272311368603779175540920781643002813683422010694793390531361352980310387414552854826797467377857410476576363320776090908624328803074176360425142128264478601473032175579962875555978895279104211594389225317218909149487067862808536999871261587125735180564994317731531837904918034648518755499935383920975007510630869199238875194827032391576521093998522749614931597273773823082713259741367523409712532908222292129831534904221219410191397831579613404987286973721222180324983022854276324974210653484064619195026870135720170286286651559952441307082241967091300293382195651311838741462539142496399089284896387240730839333695248811618082463180738520350678757455376504118794578755338630794065031300502445109022123383862378595789445988821093863999566274720456819711947742177635082170982929138912989418300037708499393968352358711217875813279515072189877836499727888205314016566800475532243118830720361437578173713340214070632181919143488199532794737427939180584718891809475643379184241831175937879066819136159587654161604324434549550145515260605697345560240384761300166365790907658033435653477465879984328229839805479858429468169024616212934775784517843888550690664038792475817421525878679692340866322757782044732327611427361380570824513971322986418219626293115958864980312384680937736180251005309634798793351379928788342886873332718612529979358569792361707298080204646561010962402459721905070577930111667856716794956542627761092027247454364929425091851834579056362582570595168934924391833392434453093738392653802915941819004267471928246998144339565774376412600411015698160314472215355946126691920118858492984623018978094435432333404318722678619702748720592892950723874431821012960447016231075711852698310574353987193459029737055118193072232681594945129821755857401304358077255092955281440740457793373626351498450964843403883577763437193689056848889096410361213599591737964322465161393512006564861854096820552258289622778764432831949012086190483244983311679930300549884469533811102378988153842920238589073542392398793276577850268723748648830417346580171546777343857626299337463689168976251434599861028436065481989557890959172377398134085430313148603177400752951541464452124669360418473773531641343389431513720059363623512034555767544815128369883154936279904000285248368006699041956222277934212065069354163423450036978535221462460896088816503559751995920654721618608967113685075424678008812759532378054880198118729902773113189249279917612818060084110230401334728654042791599466850463180655760794184349710983303104229241848371412765861979241630531161209661471221031945732651289120746219625548541095499765563838170685832382921892327203529619566572812807551592152258487892433365347461597219519595379721185834916815819095464614991109256822376295054370656987926482660212024955711978332837236798066592668570290589841820344276748643411666697984500590335429705840905887467996957084433353295739598948508826608517765302033741516943777766358201047515189698529902235902892550002011769250203481256888197633642690221779741666865986068998995195000944411578905802483077984251584132296592867433698272754492835950322432690055677804046172222615261113415740878082699237146110118645877372667754608647888709180003169601757957536356031467696203075589225990344693131574030738958125059709199022915847787592651117794904200468176723952799905576822843100774400434395173986734926770518170957776490767849598560132176348049871418164790989478491878303168191393000189625654962059330777730041518841657241862347352466806064642398457752574491549888178743926568555167189562217837622486158592586507620112840795842928860760924616810861963278413847453047412034158319020433908985026505938080966784252480690366534513029814470512546167541362895642161414616841560712006632316884327749344301748506286539417033843657290366565805018323101006087764967085050778513831007030482703290263786041477027192987272895331984775661700136958743057175669916544238339106751085861590407627955560004110250209244081103495862648542682687490110364544557776404425394761380426487085229530981363201343810765940199844775511277209977587265454424650351433401518012794247810565199131268319578805260676463405109216235509123867567405806173617588524132367363631382011894636445025089885407409043986012795611541311225628214508502254572910156154626065778413765075850471338390307353477483772322631452516369754584160046435863778553094537248820725941804581422237863833186617365174954691958096214072896350322413325959495667529848893532915240360662675498749976793865580044292947869434165733032417220817186177228270712775419578397929506746714022067373597086859228235814761018863835788679958945676152490273269841665656521553592003817188807992203654516421420624033264017044140897999985959884387729065844681418005637313656761573370589285052617915198615371700119914488831767817072641540171581896529488687828645317240535964839994320042135146795531971099612569848877251893716386012437873119690858521317569133141752779477602204830799992596871186009399467712017734413268336546157420097333587634589168612253488278886609061691982696839568103905051265553239554445557449418835616949494104720852653534047855830268529080339824010020362588625535614944429918807474664853219757194746636189575931965858847089889901954431615899667026183096749921627640865638452556451583801883012577488309866479931975470466900074358831666287938859409976828298848230076795471886646827104401936050888315986962029642873953707893425712821140455509473477080219117627867367590982682803156142933767732447087586028002301304774904927588149729402128210902991745763494747583017805618599338137085667769610780392612725457901054693778570659304107713374101409689362710740783778427642959565745121720195862171668604402915905516037108932417633843313902237877197509501406169098275924107876885077086219081874317375631295274476930179290342039435489769075077933547044133335325970871735807050705676559098941311285114691616687033756069386156635096611923285068147335878033691662896951443549806724436400424755354927255379070709319219142069946702090736134051573023077792206647507636496471814524958691770120734482704282631808267520721138160064509018510660605956927079263534543502665704954371186214839650515828531501926032036317122039201675832221185946954442510160747070144413864534598529932302431583774127204510948900124597131080927876137560364914917400894589716168393986966718859543643427370901757209518208752624415963339044301781701275657061994814183564177739028165130595143422890839638149029147708414247812166019961263354922523942729939298614178187993567259968935057562142398701444052167111100228656167938970304061934574835495613965067873340746535668438842872693053768762643338174159850863071071387379390975420320756488278360727885006909776539759030862627859872699792513344081548724261246157742886461932613130492086685630644605622023549223143599726482210554834444456052456443339833566464766341045153456019821216866668918809256962701024151596971998199309044379298584532756869812729029706391942536000290667004288477347190593141623187323050128977570398786891559808661252235427435231539428837482872309134805549929897510679274402338552236518689809777707104831775758444071826199237700685444992759589188064301218875346212946660850386634252027088374757825824510982387922768416917912697117650686465290980575038693830044231139162157972934053487184343486569525491252981904864380069509732417821045640650675549878182524773827339801916921996844861394851654321261675120137766406423183085684741603871585041412264109808658394729633306036486798504546019046226309270508752978164072357936080066652142768101921647565918706012303286243122558949148853150745257674850649641309582627756200921936448959968138253605503610612674705785779462281987831468885439450606266957638425500178912986382500200880078359847452283199215264082675044016949603133611486599942816329379945594523041473330441986543796021001376339642888217998036191025435798448102485205922720492314859604299947752631026136767065891349841474638499634613439214120220142653255157623914327111317246191420376319438799614910360701580886856072652391278001601605433616239143349619689094295789517006159771789527804409726392261580921553530309017796331255160398241523412187498114079308348810940646175622827214977391623802984290913238948998918615616882163168157026574691166798103681347930937820562968204408454201912693972138084614563736632728501716146217831067986103665077412044292511293769226159496445265562903488569402107092342205683630062720221460628052126916355949209003909917903137507465239182135437413967414011635558461999122587231241552089073228309978003011844471065509053090267217006687640204216384023145287635953415540704467707252042168101941864091130893562316382411782598677503010479088434185474550479375694380840654199967897861406575345536147498002517420513779181444002726559131272824035650365871616312219772061153312565873758380176986318464560619198170008784252181913432583479209103895580181871391838857392282617563142494922366356352681862871187595917154729683375196341060109440633026252969641884141339572540231385065619829043727677910682175509264226913743493774904663600051505591383168787714430493202645305773886394116538215351114210979824939726301748544730721688037512850242120864314391103774204191287199677826091791409810975317077524936420639912108998160003030372954721718905906715969821896575261680182928168964845875673307076860547891217968031777191193373713838377536658502900991990887317861445258127792554726851238849952803358005853335094220223802602162674153311359019654747428139804427884570178175414181064603789088070305057718377427971867797490095505669025704812174108590080024280452013400071360931690183601100072802655250744424182567381086132659934135448633624653709865496387766367456194545260736484495890795531255377150578797069065965632774982792870138502499443894573965352000667178197919094353464639686962402004160773086341336893913313241002708364418787946488101936773676677675105257735198437783273523805849993226169436523574578913448404415034708726659642387982793869173309701067561178783509874958776119134801700585312371093008126354923294487936407323436497282033044353262928883552876649080595702764307010094780963348359010310693467997721704153113298877298693947928912569877479864962285421830335975280361132856439229992705356688959638097649680963130938179604542442576949652722582303872094099314613660755362108695932259895698335780067649690279483182272498175810603783993056148689710567260479040690375727806871766732508145393022705899073551348072260439700731729653212650212277939363749340808199881717627253293041925179308382181424007671149768082312731501634272902592391518367799959746757391395656917277658218632852948518040643220468334876368835353037391087996400910581083751833600531754844955134508655790537723161022673745695822504098179939150105683756007692825960126897765242962057062847495808835609730226399388276745426061883353304459819753049205833882083113255401843064839755101108196983873336448434740700101427276176659143608660965182456553813518302118466088781307092325904128727998277200536751977864174965092014274042533486948796570533785242665498925358938964288875673991376380190375380817445640591726294550360192815046958774745564707168838199196850830810859640516597873690108748143644937080324614357023723923619686421010929627140827316677752523824010990179558226120272240609863280212417464172017606808678842599441909105151318422402628438897116366080650450464592439581818267246982134452198372354880393275352746646340005460776153459365410319359411987921498046603711160764944990719452583054369304753173068973429150393859685469126678791245863480240597705763939088351193743701700594152444100631863539431677993013893138534497907525210043152767884121248189826990134451054198810658587592164431712063875068375470844225951846194804389189154008555671780708342391262769208612409448115510545112003283524986219976333796456911547829065436213054500989869087888307190532509071019773325072444735852445560165716184479265231069504548729422211540214324920220514919946779743101386917747238700239375155255748370952143128723518972034108140893326650870409959809745508989095701840833979648982584127690869370158278018592560952503982088587125338677474076394489926862316686444788077369972892714986357380766599680196594718372414623908325480021280250916639750767710610882390434811529035737829760929517872475895723809333025568722345350847994082932986060501567478415958140783187939994420918912789738789389651830228820134211650752703280142704210575060396380235040790459349170052053926832126714038935735638624511245642692276985619496222336906503415988186319629561158678276633876086322347955564760656146054252704582475541802119955689002425245716005317177417661714544143010900293341591086295666230457126923537878627685912022572424402225923972819182840049109969866236240045877489905507201402416555010317966475033899122321075262637473005772133537968496384321271152257256384256300122567764981515315366896480256610820066284535082228555997523581612672992223450766107567698764840371019173802787127944666081346007366573063564774786730727386961655722658249998809044888681884220930358706176582239952866395943995924987028395039372373174150114671560767066051908969104487097627865073048489430139377719410257833353339590057863532722602709196985514507686389191474106743668167686241717632765894192368073490489762852994368662839680931615580665472069717144301862515550157880160268320646674393565471951472686332386963604879846682576348573051507150484837990904732569471304404025429845431838805084852398383935684819400399834039156817133772947914142247828146424146261210142453729110366000479054418299452623377409495699177243757199280794693313934274983378055212101501164722066085956110422759510291637315159594288378997503064107331482332938778860121361516260863972316923867406443238273136527541100861895410842595286352403507611570979734683484129829382317598856670396443902705911765722777908570045223864716950696283210488605663629639716106682025212465380969575904994325100618834133379314883468350440791543755341612773202183789878770101933636341977250412373568841686166734389835234836545375655767855588714361294794309330609971731921835231051457675886523624022707700862667812081536401177405885923139729163292927347560306373809278317000258324850281175447388429337643011413506640220679318476289132549359429263406425061325714840400859025155340557808963762801597706609724574051939039949085640263351118406121520745328562420263323589262327244266659016509585984908134457097066156414939114332183387817583746596674554485723542791929157455340888191166838074121791318927330461035751889574905752328447540726278938587240807932157611928248234213110473057266626638643368835997932286064956722385277021525887032925975898839603910339135620931482612657736144797883765411900588992765085797501939269001932655293264454526785539412901321117534217549680805021523016245452753189397308416584078963067178317455472256509207555695059184472494065939743311631857353585919449131295251701658577569870297696548714199854640236468895395304382759845928648346046446964875570100380745514842671843926002725007104407418043241631406039827702771140748070606076368313635967151992572843331783058499915757237567506191772309833058725073150302345631965894665123692813918336189264437122157670780296068961644950622086547646594273845914494670573997790720230606385272982970235154435915854003439543518488538232999075421356105715682889110733812449096826756906655714066680798814169414746808968230347634306722214255864507514873742945465633320985221360084204743283129558879777389188094511049962348151780892975859613338614373863721716564709319044331519251989617155116910482623822734050886124539146977419832488636229568868044640917249988472373948633623256355194806974387203789083939541906548599626521898174816642126914807042387922138996010774895302021650567940813908507609957471961915249800409284854984184780630936675504796037076881452769950729509166388363867178925132587010418596405513479074539320052282397327447002888816707442454151574715482731580329700226109983436729259217682206166085599726283625975524571455844807244658273473605707372668191935241165658431257119076399223375304175326161629475165822972827667701993807566213148145474675377112753938839602004090743341863986892221017134173612470873664242563445157938320181335717543855497303247670469058343477648171553889054776755940167890712897482001968832271239036195804778886122309208007889830271608098573308670749962999342351539166943614572582898327479653997142387364940419377498789494716019753767757153497090331313356151056382644725404896557205196497136112466315936703254797947873142510150109105303773723984436262056070197838179514381447156205451884957432261705323225538140542378870373216525920274112476453847252418214703721284779947825272588145630344810067823362331395222180806701885404694605327883815526094744026944934744433405489449981565986981775263637648674528869418501552667508076798608904343184020150037549767089974356954374219864739076022376073095055592306477132964483463789332163395927590741386531304164639135328834049393584121135336236441194850000106244389182620947419420347371536232706050964874435378757681689883009204734194537600251719394478517711063308669018559075615505444966424039042533754340140058192731161545828889477706108818439100749795315006377488811979136792908310299645909729347132486565424348796324529184413747981110172582338972074589555800634131882282131764820105728560759247203196809747383386668759853854326437622894688202461666551344803146932643396638741472329580418962155352651158736121379204242522057164282661918365023976575047087008455184412595681155887684387663362083340691437303690990860838961062066248243994625094519188373490989708263761292009989355204300432917340155185818568947331307748862378003986290428325575160615406843613580771477771030805468001017710461045834777585602591568602488708919777903941896327360137690104820398328416557719394486834762019207570450192277705865850750658195569935861821608295740478270904362469505676699748202288243293839856825181261107550470215210852802504872630539167204851127380688472853833058009215614751386775343708587236188484466448989648080421437961319876329144579721245182110855007696361793367430340131918470923731682431614696612471865785896426895057015739129306838996743758923645460938844015564765851032748191050459752532958045945706751317202380741590453157377292828445654478620948758583886439029162215942988094058526459620530358970833384002771340951953504175927097675233114671937705895168331079745772310082366955197461327995037827763503380307536544074953916896374607082428861623694118861921977890423867523922460548529388333594690409305062493007222416786151560246407241998394386404308366059104332841908730962485755089878921570120652557182333715078718040464717730467828230540411837656713775566338905551403552226868786152903429697550848001941636065042097605103472043282522560103477210380479059164232166751071746740734109457524148170278656037168674229856430725033730711759723849829969112099247712864547938323432602749271180090537690321200732409368675990311098849965873251133578194885203991001482775125814764232093977721440895161677437970025765633221093590409258620155987306794546246281681389001579940309026224444286574113760962272423998748186006507540373215396244826055012890453158551437418278898211445793409591350121317228891776519707066431413747026322364743815667732831108771614378837827510161457345545742068171143283195474298744809512791489291864314038351749664500580359989683108947567584319495097709723516027734713627451919542748113301422494677520782742057595176810589236930229778279714383403719008028468694053586562515955270717735051408428032857688757024513808867024130775631572198733810282329191983799917261359309955077452451054404280477327702643785506249491570974980499658222603205140154126791556222879966412571585806963474180283999542401915391512628021887213192833709270386129561227766218161167339544949716780690859148635880401477130589088123411135399398416636475742809911020822817635179257760358981861462980977590618959068631846068899630278117278648234413816538468919470907790978013035543249190608481885379061915300671896076870510128157689186909761306418866470169201402724067706421928677123277155287849092618476441082687968014914114542946862631429876747929819721533498323156772219903870024171655716811211656167048796778212178822004003711260536352059277579901410863318725542190597493352614090968965439786456137390106603435499383177859793904516976653292225886135034465845645096946160471687022858034858394817386485597931293741354783808717303005109852510762109493869976947701637254072120844499656601358432988777135846549708191261744267791528761902021931418751399859696924706881904990761099328472415716919512627479684873972655075021010097440264509979810993665743253109791368235959704412244897426497064967941661474889070466155402913961612344043043781474473567421033275944453005360158446524397068549766131220948342668817564944500602218180062340538723376640207645904521861309734143843148067386089318718935333568830695462945846053729518693979880114509012146475399930092219035696533564061712932882116537475356506700873407782468204754177589418634086336724405993565568005369720589800809139356936947649131526926298146826940570274447311506227560647578091626321785432829820929863046525290840140486656851371278206351223423530674323876681616622182091760755448745394434785240771528919210510624990518519629155650717091883672275441404063705976993452405797250299117262920460915115889407201471640332951128223835147353504076918213138451952283791337663192667216156370951813054410297951217540628581340697046965172179335990470518978925337183830371248423867690903298615807346252189982972643271949656276464247242151857789048371132525671030254397731515177403666315470802310360319329542277258835697184756501757050133043872619712717012241698397002301184883473014382235502600543718588357772180085386711043415843376625535481813462964671207119331920953719355487375277086929747598562596607854729348856897645449454020471361971507486830692465830868615611420081337067116026622565934719226664024523601477166899859659969701946620902049745932632344564747051023316914754408840177201712237788962046426095269496213124352215941978285714767133830860204439730766903594853525889385323157842422911892442675691461037973221571107554889267940252607173054467248526268097129575050101548051529613103265756171711901061726775526054171936318887453584689343803795400671500633714919449798783128742345380167868575491903988310731126657798885317025449971614080625327320257057596059689041302243301121428702711310614341685341306914779945448526209957314864453700197224238069820576652066494531506981345131814956975039523141027548615826341071164261153345564816378279312140078934263252176768014704000491824690780702863189721816855373260829016667324471028933493691738359038687655580964335470720730625511782815943811869914747682190541744660984341427434383942458795978590478027763605023327871086010137948670791467701343734536202580303102296459716678682240402437994012591399114826454330173556485020218812175495173421428269683633298784443237167721164368642793523919432670406271898033456478477326061130961293084217070245801422442000344254059391070978734284437508789890521333000122429653023196836786095037512247054671445122161534001566854243119437341858653518924883686708531934287288677532078237044118455531979394894651990169088458017635161749885765173343470561684777261121217503674365396102715189451465843222105068922918192109931245793901615188089698842270631393637676517232377097876057083248297176062011151719460130565181432386839938357623642589461334533273413385854044493879869300142791321286300484212624179736689798381248000538677787800622071759047592225327205275961071950949196180779490387268633132935128450977597096230591701883808507650151251849505681094560399382382926059001415588286504294675329200920954191426634447898724605844121976486200201581221910946761432334893401486784169169573146629787992588435545289304849489717474388505560497993476151081419460676120426561102050602002358152400705499250593055815131777092016590936603677132658501327339454894804507142841183420942730990343323865884460194128113797765426087875869828634875938668592708627424261743557513008757086292600961074188887376468443235172683243541297374922954797653218394471654347809107892784975427784872313705186344936442438209713627363291325657518378221035571533941670268849058570268128384504253698895966806894410237230628776544773888897522776196304593231904580298635272887983076745313746846554867105085317334409830795226441565314273400858440055956875811370142065759749097875929642541721620714400544271458911071780590047143574062988345098915979016981362031947396665961042386762789010570693548861912879188242370209357238046451617437551533495131578835353781524997604035219650644924918057703586908296187069366344236239364292138949435518126702053977048389814247952071604562180530960893443197776435794192231678458744613275928690685078794726782968046649891574869321629081607439448109212537746711063136382212754153530185436152590858179617249358901724129930445693324284385779392281650076713790073343653335395300675534268086850508130989748085295999383402800051217057841422333121076518060930877079557346340956161846297358711472228892338538633814057932319171929919707688517278099283074493790249084973160920840829235185100917141650910784491284735646201695287119178601694604770118750518694852718800246097229112401794806051486607679088773282859221155315016964627774931855985610515167067437612173715223806152560376176613947930418646858924767318479783493498939002887994696819023709833473645167145357960361397487012822744200758486016379638517074357290554068836805250004386176110084199743521225725260156928711221042063827287563586107879519102780535720610374413687410996525706936941290189012614546168737675440501531614783326692392216516993135636437484350750196231024160477935093981658722963925691834872911802812093783605932986888290405331113712759666392492714257816036522419500140625385736741923558123171823996505705017186525461817692342822020957071852521776409481710773631758169118809692608468207512237175183737032832760206827776382499761805715221109788185744995348841169851195866726179271006888846499352170711320317698835199568498616030472927986751547079932903766619098022946358432983214365248273575319917655521277308931236258139127762131403118997996568974230824546961345410623076793788080262910862289424597058941226687517915572801591611635322331094327172478303852698130140426620028927277660974044989281628916712913246722305992839760818523555378330669213417851358680731497297414158144814877682740223612763154606442107096373946546874749225418014749535639594859681976614866983606551163127502713637913749220367356001349051218085921019590378582162720909031632646899935855550886749561651946159532836174477798153724677840535622978653362275691543028148755331697685993646931075971712535062794439477280879450290343064274140475954169176505490482414604631650446512511666067073703122029981685217945376388815867911126083241008572285839821892217159704384033623026975351825708697002177718371103132871340849061441915663415203065109623342522741688684811637640700982438877045637777928914700269752921405870836040092068762354223815513925380620484748970989113050316518907921720544339908855445004211366330382353181734671110123091227753431890832633592573495254843636394834818925083758657551413873785663993141133496097968983333441998790073042136325679805157897884894721065433792460935552088071266492885896415468884754020354040079706740131817573292003856056441733826536657292230377713673644720528315041610708153977534653441259211201837559509739881996665380105356543820994467291916512321811232990485769097035121952179061438591425830361047039368767521093353763228475813305064101364628511160597783336855471309897475833050417125137668833796717204816854239813043921395170101496222671898020662723875663863177045669010031368963483236107477538932806933606844196122715074373516698615354173114030050535426627659362494058809239641668139696205347772029343241240719091367165288150625504064387542760318353958669601604359259290832549935425712966579646815987045720859157755735021642566772073569598755189295299839507267928977135927362459399987539487301093804090341863153456591227258544300110834782115473318980541767371706290338762028867408685510799879164430297152492670456135192379809657294974143704355554688601798634465772325081826759776545319578587824178016251171790359748502264484979711697501920613898479935923294237947533124799513022387744049245187922479629020001661399406052557159141425098755201902747711091228531701215188775113350105741272697071780859115025102459750166783026234632574999782040327358980765323585030650816600305067576081208573388186585219832617275848902472165543387896039862930319383970771441236595748024413852686450669791067971031485440803087592599774388511056797997502366466413062326938496352633343524433023304144262110454308341953856946648698896972318008340460770684983554079770940507550221851047606071160807811379137160228589627247269357332947158816314852271777051521274121493203636366071960769362736688375243425202230823015042085623389779806782355295864156247267258768596727051942543128188762608229603570168813263639872155722756662174978493677082859854207822400560994895447189373660674633104322986021611994099576300215323626791003594913090050871497959315573038178288397013755508363117399472418360617673989389330500511394800949950955490172041004225150266026346769044461629142796864378130601398865035528838886504145410535137990685191874284633899873007653080529989919071026573841145702093470578692154266166692126295440759148165689949941932175038354152667619593820323136883152387041484127787930396113231987775585077271338269436065201496931639110983503417469944129956773009013709727306793785178771663033776644210265769472144967411129126939339363719775639174470021056793615734871747385527041017598761365952748321710569617236474613041967987870986317197651870675462102974349176133880349196234096270841719791883293069718068976787259633413418103024719611058720747790017184711841045100276607727296905335759693220296882098578271252670995572864805201574252402166804268975368162736563880029665407196617448794717691813701271555402973315133346385225283859297325847639930065766057680804266238224187847970510931575330922018629259194132625893859451630947214427208475938948953356134072926513009970575296379610313786827233417766671097903365835466471212996451185454025719530386178353480579336299255210274000295845780683462536162194705479296196377343115940843575080627167932088045366275223454481046766498955291711484393809696471579815516465611574701297761472663541281492918880912758391836043194036943145914633897127415822523175020925743839733200351896527914771373142623478637661725327668211776195699842616511615765383082835941075760939221181726330859613134277850400945173451636866378063049396506986304397514102070342875159184824741990868107560489403208162390655357898533399822670870531496401542353122370108187658204794893338682695872883177810869130890617142217608431162416197359078497458031829019086123651533544337765361566065242441975788472841430239602742760403003207586734169656172873508747863998758554041415854016582312962630478384308363264391478086339538775586993254183144323823008473591663276776142600097771162946566573492846945266457367132442604119445435411233356630428022323945138146865616471524568802772489888036566642447871755525159053648718512623728558836604850869651131228807119917086620258906017637036369330363940277547327789573101747546517017071022421376084995525294288011057013711686163124437840872294821957155814151545566183633201663724656581517348086859207472943837176508907845254585818176211665062650133183184839265503875770890044225680057021885772480615061281117380749297769809549751640607830620337614581726002794191641894401319055659386944994385722061760440265356623374529954915786226561691806732252410340648481219222035243041134527522778662148897697593362591589681029604556536974791180746046557289540405666467889225597358216976863521778378197724551675836638407053164782913576187780577035941524114193819237071780347430524949711310779526704710489645094368909338572702874125100692265270946711482621354090548961550372247916794093652536879031137232932401464270172750832419599987288187775839638824841896715314625383536428651569541028451215002518577753486082523701928631096876988369042817682342359901979562821573459182046334120698495528520352286356880647517747876902597274296710764859082310764071987583066111921556970548369448326433647269942577250730290453519089662803618354507147655505129648334083897252991403901065601575478212985613034783802150342377239917890980222994219282214187388083935606205479529084556132845788344697020394710316860734288547935345584134120952121056800319610403827932215403827857909398471921477118345746144541241926209099361769494715455627733635683130841070575480494446826457197963264079950813197379244748317708316513574285519908172719849580010155290332499786527606481132314388237635923114706567168686648051959028767460019512796957825856808400234012906288191875929694536738472766372244797209608928394697325605452175979645978678169495600846687866348340731376333026843675879922281200218278244408129919137042141606583831537497069184353432258064962943267945908601609862706572639552945908144841553506471333345421402936119431404371182930212613155605507458612283850346959282710967464328297988401416512653651221447939652461667859928228010477616221067041637040751717929880689557948084443960190408048143981897984518280470303597329034039335473598077232060236237531885463701565154321037529004618704426131231377468658906182270413975471581494011085020570266666356516358511923792291703180790203791332674122056960367481678031883470191623213231678051347278606004669112680529164084231345577031454373174505684725987773170650687959988448656695270438282301397271418494833958589141850548867143364929660762036602478013073452375386379989329228423345926635769162324922677836628798030062652636292524927892197742954574019988338227684649876629198503015790682336738408240585540983416035169550476930024311013176102927503916798987200657839695143178902115877617203435063750490603104427714643707757738685724367097710187360129680916973258362096283470783378002708980786594923050671775012335294673710816670502453323209342759044410232080650324501144526403906252002912922300404506736236142953699526157704837690658977233071551983416186051989638243428014738342321365592748682375181425506606163384312481475020175323770281037567523582667933415970233345310065875679104483132590088377705320838233032981558545005326966267988023136009338564782090029350462556190195811748660525448571039749314212806908124036057474555311417529077702376729298616791090577097082270774600170266794004532877005974262515432375272022716967029413524610847134897935387412987303918660346726100281206920051582531720155915402075449079112136569447935681877504554758994281275738868249523223508688492978418252185515413675355285835904556706292750512123268249261986800498432902654509111685012432021434728562522518515188528996154534186619306262053955902397918893337446832707096546137603710551730900837529326703749213320351781159160346560641394576697993248749049843336336794890265364032281096917573448181156836060345031855988253408103542054370677737317819158678716329534998220486505997162319899481876697924422504430765226187534887372399719691663829407577248353756152313537805209779237726362772053555118574330326082816557836984126696007032250600837677534191473878385662003419121645759446361792255667639206329261662952761489425416982252592612751755863980240704435972062698584136054401467353082315461886052405180137303363035432340614135093685471233539277287690913265938355562935921988314483238823311851349711202626605212110018471944560895571676657265173926231957546233351076692609156285665716530039721155122993075281296441385595802205229895360697289670965819112258056988030206843336022182063998920444729872088419927268185571164116391013131123192252225583686679537363021693023425329073942492150882693591483989981542293758834927315608341671268454541813850458143049153747802327401820606614672698923480266222562147096841731862967844840715661352130481243084823992966840593214814062487979226134978857230393132089647492380145525455318627417058372571587916449671995660290503625984463795573213295846137003359035846465958850509813923533374133942866127273399138389105359471225798528773162541575484996896144637462784674984591752874940252868912107256082419147297799665982959356475206869121766393782340814409958031078382737883081030096106325840072750295692874528298387750187830209171797148022933455385563566686179568380912184326137297914135174164915778631595389870145842096322830335710554882224111018008300654414745690758816990454266628130609743729327505970271104728911167258732575651566365642119730006605658973806980481864449449924395870073783220875045997429804235719811946933718149513758416551140227850666705091551079964837489039148683434085521417584303699748094048272410161023714896640647506076917141217608244061581586315059570370631980440823142046726836496910447197455426185699994338665827644568719135794296249155019404114705184613947310013757028901684944780502028011631249102735915750959281115069495642593228033061128102621226829660262959389592317256836371186456744349772930232992120792629294707368976131170280820340692290232748052819948593209081632988249886059092018649722598671488829979775463060561732457250421535152450044803400008591517307533701807199157353696173820825029769837455070829831424845136881123960443755324144223477218728713578154643462840978857508816298339181234699575394753765316668579040146519492052804237947880258562524723102541743589435561450344667922742523604894730040701687915823776441314354357435355268460058977210766910395679117281358282471587060547532577882705996942878572113880445312169817500406405397983261105488030438953673831462440093930228540746531456060605625745767370028605346514227885359939773707653246830030838456194608442264390475099391884769589327472468708135893093231786431395948084519823697406434650059236810561166130096423946420812102044400312743794381900874314147427796306239542341020768280130196265436010040792622595922539328306378033504479911294791295398146535469049310886386185963560547723058379074006395953456068036030356358416733058670992703977304361650723240849995815763897002322970439403349115958528046714224606049678938773211701624836808298061161608160600261369479105163378476206247763971785885212384757824996552491602580351872279051905074350717504086764493793544331669872727740871272003640902072830769499193408077647331238295928644964396864179038375860455371695915103181193069903781255852424429011693411262722347941335884156694454714984725829362532470807303235449402530253612087734057218000167031991606766811174530929636164788342171708651537651874092870359246483626862984022676694123198530925012637424066951345549248167007469567580887419914365671114592749043359483163323410214385549979694599741585688138713048903900562176779633206331392641982861379922096247623357287578086906359806813905561434629137967795547615846622933380153731354755794777357705550939974527309126484931250807481692948691041797746494486714006104355883965849494022110570704655460255594563809999341393675141224614938443133732664273969096263097537737969763033827510096366764571856832925359136574433242524626869515452104500162313914161880734601412750842007908356039773879369666935271218908740398341857369530425413361092759377268514175248632560437719519321069893014715197680069384925704206915756816724652749884372525665260519509958227385320311514668258184406425291436374190277275703433982316955819027311315979359787605337581600530580005816345230192002987610703148714415541528728953324207596258275304369118607573266194459577910496509859802861274561207073997021212028128223399375219313317319528427104283772330877946241382429126577622979782220295862434381322855822142361056453341242327458280661182962342168405451293380102812667684129576654833444366656035931093825003436979029608401249421390555690175725724978701118036683117001354941825952007573257908840233191254097832078252824918007861994119975396930636878299707376979463821144617806607505501559207155746381145712624090164389766092906708375780410479491693080260818333595196893386862367098247319150458205484515611740037673602100531441964984231354417978696967045950155776002123933269124882481584389930097287463978503933252104032071086648787282411406146192303615634693931100640720547457497158093736007159142358195279391090876552095767809493343553276498066618714244524899330709554742513912337693852840043974163971298157073318039127849535872101308264376489022445524280801557605484273244297957710291581664249390318189942151461946482889854130916058531702152729949074988883254540970139831380537193363937739819897508838141619246858643762463544220413708164466090600275160198245399981782524313620388374020338392804349940659920011783991877274615861864811482116182850753331609140049388481265049525644857564281867867877376829923492712860661841083820478392709096792129611409125334657454908305864590713492048896678332226792153134951592799130641099008264795614114757186707683239763181586268642322756028874041432304327270937191747928105395345818342823269094858373482032196897792380281943866822262673053089665362918796457933981313626487381695778966076048267632860284167681974017118431441267642008626635697515388990706795713184479784257368279547701292536504409801540487641742584931760625479189364234275198154135781051186951307697464825514221547430970614763258344047409401598785002519392610074280039490628490052586493635800863344642740485967587885163730435097000623865877787084467142664342143194670419465305816886540770992200053201209519275298762407132133055268454545864459202143026706620669792606811663572525918734452260885655208347699392533289945617049530483271889810473899738820472061250525773839209169905418268345600427992522581478077370242937906618601132228791461565704785780934572033810186887682872160510678623112477641036068797406655169133918819852000224412607013174314094657517582908218996050147376639395463987753215247866220899460144635784735574141094438190253042577231291391343503248599320379522210034719256832100419010938740922909072432507947117132132563502516485442292619233049322516003637642193988738030738748781972349543312986746612541823469674099175243124984003368197973507757208132562989900344379707855364071053683495612308544173482229206075825359077598277832317093985280295323519532604797455791299146405849881433545606077473550573607974653091122412506380969135315360836480573244105527283460261024391361475026100100708710988415167819994484815278146953687105971938691879927734014791680593364228526298597937473370153233629251243078858683034708385801394578137375733342376433179593933099799978966166695107033950459031199485084815925213341316199825350794529466257757719124658249120422350076862913173746455644426672210109593359609126641693109419304724376306467224912409313544625597117320620803630771394443482293924977897097296176866123493153118219973930371540879010626935391212736636493431796433899819341742714655936728586838017093259441465856186358003160919521153630232411437277248961090909437638294499436854237398111671245294917532224841472418098666394538438885152287450011554263066012979157740054305121120655619863435337127901525838094118585121036477970705450524440287336353692987905559350109230083947713916955626748951284622224211654164946638302650066520249890491914896036251025960105691769246186695619135638345940495829890313526292402515800242300712143557616407269850077625619652090751841243500605267525531317215700824848885778585584400066132513704905003873239446049630669107031774284372134118931505533034249610786891074866285407133404978681328795652918051892177278656837111646405257736794907605523882185651624632836720139533809592867965105928562719770179817109336758309713325738092184694777982282117583535764067200577948769009610586470724320547177202458623479280369594251704741902764688591672768503438975577804090719866320086011952917599852168709059028545616594278848881191996006813839097886385489207660830846361561596533343998767033947572265406925874514670416774811083955804622048269367154218063037527768202759500863266623499239490851360372170078533124285935991512672029935233299222781528426618699840423801808829557786647810257866501443946105234451628314443321587567645108443790870794543759147030592355393944280652241245554644917328981768035563627870526842975616534027747169858783549421606457757254887775722615195288807970010233901397625114488839423845840054608568264611361445893909316680396199675623350253240206440003691122817108480692245031272157607218538845450781723083739222257759852806552569555014650898638536273677660639305249698900557055740890604000276552450793413334226751787936651992261218172177569207489290104557463551341803226020813613103388607935994668376572197409348500382454313612480228851363302309671796857843926841599528506185780791759281278181503722900393789072967184374406361445382543301302661093031953947933647096997153770403015889103962601690610293135588887811618879049844398362710973902908493822031160196470605001530091272332377439519404036507715530073047543269249962499804650469076589833372333631708018240257146355264286523673099598842150500957531385784725277440685584452044726964596737733770951630824849867638668658266847875751589436584341675294584836931045406435240662889952633651937079567186474946480981748026916149042598840957616586254242012614735045506846068269793016561885247729419877946896412569866556466548981887663808258646195283389326588411269418254489036488490842201004350678986505922873121060252824402174940438283871485193613940817677888203716116430535769782344197411544813468891494123667525919383334919223002949497672066783619791959552389236195101129593574529580588413364316182520189336341218927639672373056514532514233708330302313454105158768892619443812598398567285648572634324674549607437572476605884510136455646728239644348895922478006567643877285006789077825810006867848105988216211282379588728536651126277916194142722025915676086669482871281722970151160342963214793087429676692967103846993254481310052308953274502110042377683339151085041120593409599610292413978813972609556055695335534269694211744885785396814808284923482271565942315803993505700725731441343962361345950222114943028834126169647145542243022488444969743972990779115981446173128942751148642651231190700940524313195232442522925329248437270352232165894578229981840853312915109333410048842152848201212291874128152042846404191488827914440611391467504351496328667997451901078288462860078143836569256378350189486998910666130497333899413711719360482035904570100354345798004408747491592095874465792154361303729464854507544617755103345117688644847156662109740166494800794399276574343001371406943558766820823100232542360352417050947640806247236514221100957775115234523533126495141948089137842013971646528371035106472541482476150024518454294325501850648861263977050298254677697214002610107781557564199924798386191855999680201444337428148898326548467621893357672861225620758365448777140165090886988542795753220600770316754292526403753000797418332400709006489254886752221541292850114222839950889466175418035934494585708689391051823405951557622330455428356545845405393255364221084789313865511594062150749016304033040276680371593407824725758754407263346723609826080934211688388623101512472322047460743220510985278763663589090361389830259685452189658326774010908355761559852717436812911100486338228460414445656059294234363118239596117715922723730414153407598003344269755316274830154428144310380122728793925282933130546333967455978303940692474579599960419700951340592275607808918479065455674773978682111295410052521862412787469609013264628809203661680639120438276949934926516890422916099532540515116773112737799007840824957868267912137434197316798427976114082378254221642975436460192887650536072975172470354971343616109933980194438255614755105341543489512669395458636452285439811805116129972895511256256329539133982946222686393192113776005614932847905740153928256153936975386756762763333120354005288895212238004573891380183409652615408524384923294052262239788024115397149319111859834667586766281956846190097351826481927020030023883790668500283155558240239303593257696341718528616606753618153890884434838018635169953690126210867166178036440861637836731343355287226326152762147102022638981823500403727808557798257193723819576246648021832331619768714065528382505500173525277935771498947895494534257062405308399162150912201357679082852763334056497994972111650275875160903793247174107608802058675683040579521242855115756765971058554326546957147970113575796015743998708023229934938234623251874757619838865570325278398634783003712013060425847939440234582947977436444183522526454349455837304180589333865685025000261030485227028572242842283085455539018200629349127901606111616136436005589102221485453518716168760225406272276462032551906902763597351232658549887964030767988865272363246186503523404830476838412367275883410844051166202742139929533868915039854938270215407887863544278752123933414127164487261600101488198278860687615232396290340920796330077907750683711648255086238695838190069604028664827354508700333638823764899337331637871301098505824462697651576105324177243789069909233081997588303278771072197375420283845134480501445907614636558626985201417418646895922178445513051580161169476854990192009697656714984603869072005078542653746914353400908061826815952118324328146331024861525085974851545877530015741615597883585589162042351106340554405997723259632563904118036011216215168496995374354692644512741994863855389611368005351081851478416995695089717435963454394069551082539421308471545122616028813898089726002076833602399142848686709446570476824141168402644571442082982402232316609928130301784927030308199379726540708545267217840799616089676918405917665804679108500351432038592272524468000002862087640519560129003397689179925652149934901846334827536774236285092450083379434916551831724527755012104236053083061453512916389891410391427843866199780395303262988686184307142879422597052386714267462027081793111785044702437917415608967829945286378551335058721035125857441751105198305188649926262147096771313471555068009259077351047516348950155134931472723260652559229132290274144508106674703430557217525451757225741255742133617306697207699291715980129787949115951745823362616851577192802873231174545225843936494988302441559263549797531885130581527759077516918332737961682094303886823858591213909627406925914012144763885472212927205689186292192076985730711706308329896708901846813474733163487168158913379252926367893239648678314883510309377608564107103689263480677797523267695826597948665215819930616807854635882721025446934390909856619259061020436687890061860037441501386736666300220258184495404728376551225502720939713951629949966527906559334316636428819845905702089069487332592897510006012180914401394715119094157610057391840502186531110860454000418769636544061607500327424114699344143176755786216815491480239224529019885722303269608188081079038343634701174668449905716455606892770138973444236725179138665168659855250184416208896863154667378210654189654147150073680107413394809537277613441730624448974580204502007346150983903674889764725724322160406839182126474272926407240505568904897972204148512034504608363595729279326525931800105726018691321955621943481770474684479278797102045117638619008083169669938146507044773421651219307699231488400042005155902233095208202067623310645340024881457678800848707585271979491128067597501562133632053611933760372683602621472837853460545086206073443896433760008009437329897596161754568254148634871388797375610681953039265055542341673853461177089924641298889438544179900682780823244014487486102603503589952404442141038454446534000261569821116247658063868113296290807628149434713189353890527200112072143136273041041769079802284797038254435455864574495266913581613661409625004917264816957417479894182836291794266881266519879851284772415661326272784422602699651742561072299349694547163443634500429892570635002431677100580057104231102415897462395391725308954378849892163801117212895067258809502409062356511884470285128259739807207778231344628384201797289349260573262841176272932328307418429709553149805822096485717336571183843546762333510489348398958044636391982664471343653417665663799894856062082209155070141565309369886249738051212188941039754187050921983623323456575883520190760741035624020454191728274078585622251358068479641195277386634342715711731487963280171858367144364661834700020141201292228152089547077445627437776327717631860130583885698023844306860542048560693745416921897563636264918896166521039474300751172036373059094742207642295397944631201216110177504261635244783121822346600982319409436722870145922964389332415753600091501128409848959121708792740131346975525054974599565043717827070117370032554878066556687876734280046763668420763482089452651912928441588260422490765498085440650680435090238173425156311081951834707108235812781731943003411575656697367799640132452306795884196087955425849084319534833389412996585957113630027394053460187193598513680852843818833288598424544279214482313459424027500534110284032201944402063820409329485639104325865626635594795820089698513624800152873645264037289784923077779153274227160582143234362200238423145353739394429617334614169842678027039995147597124133384207785968790191778708565842845171719856388572434262499266258320215538354035331241628621730915244523484337679325795820555405785418852341078355864522807691197087988618084426553520227951846309745717981509269686967258569039112881105866865976069472749837700475769404739559050684722848064406541149635709034369832430334274789039336288490792572841563008515301551248608124983350020175397724878975231317032672783522317201705562711274829796401079180618049345208212701777918459732182424478716890109537966559171706982148322211052234891163308912722180314387085905092475018335628617247763863200611907516055168810144599238413865057319162448179323842897269658934852538781691882390643647736451724272329739830517499790446581386452062969761582812892597130912089212461967139377865984939673391059907192167707760315903026672043150044795595057844693270551196873027951567488682176442965585393395735488173122610360515517323814268271977977653236301962101485462213944733221761991966110617514858422816842270670081561222664747948372930542771886654554877162999787541715942424608233422839586695230983971951226082873306082776301101620895084441970211293785839454611205626773710970659025777879955475670316646376396437563343626643261518629014297638155015474989288872531952953183860237215948230529565701222392901555638428228768452163436895258954898544767348341897886681865379414285546380274504824232746121927606195430572240081997606627677348278636445409422616682122186144649679900370711343348253128393933939641492500239193660331201497289469279498146117147529075684482522934862048688048212835013881097722518482141832893772607985579467649102213943569098829321839830044565322644909330497491152780205644885724198150655917914956515045177479241988474630653053110484419537450874940172732925221054602405665184039183514143212529097360208555746532194263186014252778131006776441241670390815173730998817381449070853310187012521184416761901763152230025356073587194556022580237778606740088620047897970042515963171561269046833580261107717500314719481752356497909787480898542816861994196512104033796580796310618077719507037482065060031707111723152851310939215401667016959382666915478943194840041278138701206275291454795284037220526910682495156164557359424119974802680072607097283406790570686720139840312661880341768577568681091545704412360266295956414154084372868686200873534309363837724476728862542864269452432595055724159986451116239931933748368474447160766789234512163012834201738544898705501358622709250935379500268833151015170034419361945688815119837052313259183098317729120649863318291807766432907228628882563682737963929461681767320490470383829133610188703997327460300161490961173326711415504070203626868487403047483219355511605499616556181113328068001460492767666703225311870228562886424278851860629807817200916697747110996408521028188898591163892245849160610558382629717728614106181889809242814244053867510037372802881521040614670250309473585173360047617936474555464180538316456821756033310917518601907657788222670084597691234484559375628604468534991968903193574814984964132967475500774247433022433546923745722752841211525594701971768932491717911630744797206565477290573980236280901953612786607788943018296992715947997817573982943263301900385978771678824432571352257059820077772356104993117587775819043703094944847123567585136968379426357563102502545961677290007413883756490929332442978886511979119694332565355255234506500277034153596467702753898460170420618257100638575866341653711514946966132979313286868152687055305412790224102224515539197241565763430749070433782465875362320007568783538548943181606954769304111483566989693216290825789785244556096629307132202657047772118938822435361685579201807437811103680478620551711971011793589408744058458286042044993072505327137099004185648697571729807810808121866812513668166099333776182169754922382674153855672857739095938269352493670478885679932579265056635802654686634950235609998802318004805762397046339950229665308875749818913806540397687564987884640595322445184204553389651425207223049261989141854961345241992556793173079624310893888077275510926078974183157403275569234480750769770679326385785765043558357522772497223649404144924325440013996782149369313293370674470598490037198388352028194888724804493929338905003447029233855198891371632583300873959630915955553368121864834595762992252721980984929247648380012643217836056415068073229824075254765492010327173325817559493337138031226646411684170970939935324208179979277027883689090564602341581117535376461228842252699873692328082528916079313448701573058994703023497084689545913238103553297398017315449454432311157942996485480070069643549688460070365349801813262486045621540644602932317592876255446232571840984465866408523092912326514721857137705627695030619613242951907105677404728634484189211036903832879925995001660909623590385703852841091031176416414048092422326728585722818777507371910982331688916981139809100812106006456627642414125915301044538056387451908756792737928936904547953079179101753685699769170225630840667414879086366620770536670046801427206586838629964751237161950690831034364885471857606232265968475593407215700070991893561084962716801838749374451835206390206566409505399110470656962755438837082934269496506753456445823322141304405970108237562136130724128127691623722006878544591199860148903133488546586450511192323813242073072567566451978362898716682354237998332936592107459196653180503100753937714814941408299633940055042450643432331445712026644024070998378884760963786791027245177142388258861884633633819339451327365152463185822912569739517103752706533447452098506880364348361188637016445088491848079720933867242214510009900105527933441930257610727242520649521664203749112643631242337316985111886183603269634782239579769355475560025007582609325502038389590672103573248032103463677390349815235239825418606008451044392667938353333902924698984133913634526778723153701093985497159262655770844654234840562074958172107993312209968329185901462878753019440644413615749574990490316788733604964090175689230992697245587580050837932788264756305139278638530032697684718269629123710551275383246490830888660871665204677862762133201813405829087514364295757992560553219323727624582257113260210512037014613811060176714562059211488010689980673043347296348359185647099089868743305559167911920677052653932225467640741313887532925083268574925122983798736304398907734722137285774577732367812334892267332563762054095322453813199911256028194512920751600984926289735144701528407442045571622137403698750820683639027982280899921310027679721639781683576511791483040839491914141643771511560451505391925441610664624585526797219419810992476878999871120401900083929280044164010372564272883903125965449411239240125579565482278607678983146718022886873512033087583015739716816523714781417992651857488072040297253089764201462347889484344349165428800198944503111320961865451560455977467173510813223062922446377936190719080793656206013648094462303118792350352085385638053961034288282731716900866508363198941561554329909473780760052854364562559931090570640474584676355320838872911422522869737967452082847573914701505542835146177964603140598158299083635982856138956855271363521216395057571169814563769010403683995881882358114264950058681558462161630681265392571189507837203172534144240759591343321102339266509742362301895308462381766417834705794831293220789750667543714278483157658193845072499819436180847985215518127848506320051298874870388946883725890004914273808699458046216202049715213191045516127816362317221709147525432306076122361416577372941771329047484575738945577694685988136780768624531377931548360403873509951290478018309167285169054967047801403294595267363852170746203804251652781470929051031952436230636105180519709267481793573122889832835687061751188728250692691225243484575007179659999538551885106360445777177888502864206095493010941665007032736553848334547736916046339788491014194768459492771568332071523979069316463962010633570276023541650869612570780919801014884275061513402402498017250501448795685511234911662165181151044978809399326340924234949607490055956047755444413048083626834580996693006011034093343697098086282817160412389194197090478564356519768401885862990007299859981327446636744280230535340317563086765286677206568658135027004708329074040683002182840872106484583541526972597688027874873065475841628490855140110173470940223853945084925375340490768035306033817231071626612222124886822531022959377911872575256558372467692345254170118662486471046581492097125562752462461321265595397344941428041909699317101703117535637270412506188633321782107058656523120553265997800307334793769624295417859960908208270826537118641361574936643911613999862177746437595786029204781932686015445121855884901681210513230323478619854257503838638891126125857418767061113720211453054328501181983507400775769557790035431526199941934209828689900624618871626442879815878290842948142078331060237549161592361194230822024323320265682613112747618480576680582236479172173830205305981852124725509367487077948540581387689415979559315194613464643408155398172050202016461146114044143912095619367254597841613916058897523173923746451214480807239610320877272104322090412587823786347572415383595209162491141235224867785962711924231125448418428584743809878001071166220406895950691844008686823070473326702125034381383753945057547000812289209557037903192431059443120060411218113797020316593332994951464426773824588490488982973217288651874693384794991058544228054725179074190335686284938715087990171697398235865841506963346442321443696685026461833885019391608973963548322670167742861738316620938330166862428530952554011659697255605329741836638237422707874588611755480875926462287418565051583589698786353217354781271881168896590955592979350122872285468313893354295177504194012227139205694469943388140360793878600303509703263413567267415217901171639898286656854659959252010024066642239504955876180585785829777702388399890957398496097663338499597712972773820120699627381529296031721957937105564002799784886440983832506378869200915540375184867497223140252300880879103093354160665824900015831169519345508546738708800654292076036369457841510708131765534019241226458701952662928450190708388855237282858801412791573009532619848059458968008587203975765629289990821272816851465477569594566392679266758217479974348255983402836304083676712187729182936899698373716841813314780593313406225932615427843391131978237259586730001287148364356864447939954406195242641412062207664977917764788302369341056911310550744031248486944592107167779943578116280237672311711558659781901240849250309990906314040733242867764982357914728495130843497997747267395597387922850213775598267004796088314714026112102917896345978632686565606488235694021235350648959517973114641368244921575467416813692258006882404493859338849971613800521929805362956506584442196580840148961564839929236241263903691866896141324627510140384459986209884348334111502323303442253839249711773986901628236536458648323979563056348431614168196791104190671147983592923521684106850551597216619438584546247594168947426308402194553724091447695023770845248190721625602875581564174253385767290566149998329995247264641551189167258274433199696723033903765949888184395370806751283328132804547954674750258553744704305460179204949679220673738842880895463124616226643477246504604534857279652692223066167820885353504922075083094137584367776156351080983397025984544905218387705852256014257241846214861884219690663316408218145903184627013922272543848927545904351340010138679955077015676361247455088637103995132347251817846849941688305503157341502108854363141038702254799999717521158475289172275945357867157500323472874543675866281795881747156743802107085526981825710608189398540623844157739741734763661183453694388102345497719110371159405555015063795256990454629065203631268712919235826818952761137915717087780789778148452671426640752818526906734447163080771955742568695555280998528146683465573002158401300733626112172666659847867467169513519559425652596952975943164162311509725585993246625890330133294298554855710568102020613948598336938303003509633962019379608143829559528431796624269982733859350384640185832999511942902859475740177680948432678591746810162790466780800194486243294998147063586482405146155013903570811018782390976496250552642677599994556838619589239175837113814034648306475748147435361736377797473664897495829874514377443631034994885829598687680724113760601701468299841887291523407544316130833558649677976894775998651839535930210903814783276269754347276343441957818944069885314461045855963993473137149340540574700526582478264126760770268926713568775995123065047800873764374863322466340513345268484658389063713940870020278849833093542098540742264318038881750438113144571087327934148526522910910895876395816803137208601456342173081007677959299766111477424650150049851115554209370139256655821575623856013866294893976812052256854263118699714082080102508497714768252476163636340949230165152575000384233559361294673003978169719999432994937530339371108746347572220588035419938552347701326578516681861501851675338487017885181178449796784756995585994787414503470304875992832257933907156513278200367211584701329199068978961943630451120681242094052727264063632710310193041082894502444287770374819330889785450695365346410425118107856659238972674600544227601063770640435607668871458982154074485295532441750596414384174437336727459144525441535111859958461579246095602911573013410755933521321638092701515239590481219469789831888229478809026553810751342670347249073673303017939020629499452123757087233597064441029728421853258757806117919635887846402826777810753546102341056571927142813011753557028462947054308217662333140313182189270271198568969335765803968239754845530463468940799538365203018333182678293946027321413602449868696281700417028371346423263250297111718155030252758145708114626217468972673576547744851067826068496315712597373352773652802199351374455473300314475496484502208715239423262526164818208417944825822608126761016109786678329413194905425298326647932531796671530841225765618046600818542801595780825287230044676085563106365261926573705002275773793625638090239929598494146710767144984132032274057228517728681245650650877430349279070415129703660506384143668422520876779075165713333988776642906495322481186381182584540595066506361443304059637654423059994647613701808809241862823339736148877556971092049523443002957114587668097967678585635227325998164603715673875553523245430030604517367056295926620770577334980033051755581427380257655892250307243491563033577490271119038038115735465361030572285301010535170637367600382026704038884418476330553985893538272486519868198356808066832739381877237094874556292425601118593174818513948299100407398195937938485309941447003735665967716025335444994754244628337971228704644520795145314580360352546328569627873907514727398184939407541918241998455412032885445944277961851018185430069364188705109585902368427108428019438292823786226927649050370145713489697851599402062242324545999546735263499567846682662127789313209580755411707694435722254107491401074898156318268623777859055830404856325686546583769759896200359116496212765679227197953626614294552557573249964610282016717715660035041048520722492483205812017194602427206660855538718915783069252138349765607534911355833200223931254992122001623200619423963579427205027019101043280352563289259069708501714479506535711420946594851620284318998348057320734340791430375916675712269891404854556140110164203678197207103017048057945586758463591098658884246122029693841997051105167634845979663995118983786409307119342331493406688019563355860357835089792485204269362564933091183120247372151362022567621438009862786493152480638313935304966423899994864820178948165738029010215631410023488127668166373999970829078855000470170116800247740937023557245565772428711672587295254434184855535422695209276771075025158607583236859142297321860189912085940822385456804654142947747769702034256629391786082738472224358029736390580382353376881432065112983101333197508752974892453896797114682724628811588902734164310255549724385282637931233074146674121530249801305639105573764559646504755722661332553714366030804242287035267513151465485450416303869657909565219358707903125808517464057561079097887050028874414408861433432021639307368375252195818810270742962696752740177943177660884151792747261228387367435357449996794042390861974106487445185042270269152505641978230141260441330107640667064192660928990932518167739793983958269717241932829314909274872193269777035190262245815260488435529545157054035415810177946446975009391149792504536406870588012415270047085384442833508890096486127317885526807451702638920090166607198440522290420120461983046881770645744695833404142059383546215100435552428958842020512471860945189674991060288156291993625098730831643989680537093879218658299585007320352690601978506845683560468949790999969589176122830753814841207160712544545162445885117651758896076429574829618362919154575281429755446844643307481120684076488251811964353362111370082529922322835568445565839507603689450445096566870225215132923521690067284354419157464247529822083365094844582867305058206745672750509730484338579904525755349100750901980623624633457580676593187609057923198927971384673282288482922668183667918972817122138628780180180000102039637229591516686918890259031243562287450537397041828566051220804801317667968565857884814762107442888903240400795554587241859980696521953572751614639416190802408486346225291187818097860587436436905426532888220087142957333888053628654529670488602569611267492160599181178927113062000174301887204243587644977110163881417665621306792281081184422098195361105722084110950691807303955698519162286179377231340542392743290427241801699031866382752034141614461362946068552597506859001863258507977795501453104889037150104688852608841118302755757821844199018411828674368561936648175248449632678958649197821383266125673369565831493320352851813405217809766562237565052063178234469475772041754440502486626150097455262914269781834587456303599416715284583279470403861668521164299137347540314782457141381419249340373577942303814647206246561254719448445971226294330041182358182976074123697603356570887417135723521370620312660081104017331105336997061063745761242688875541188331190087956455610485648424486203299337439113101467392275806441287289263713757175940994073592672014895210470229730730029755893775680065203059305294089165491860780856696144913250069916186388466752385444120759893748454878965869549656040366882294250528265400028748477472732923305792384125010396755470775114534914409445140891594292808225184826397973596367832847739439613331156466223609401737129954852616865595416675284142874186629598735967175736505083457642070794769164509705940338617522247639594259958824830259091803895277998832304589405915184751838136935483711157940965713626752347111066213379700923421342806572576572963905196464322568117492723670179775445581149078472369434224645190166521145585267474193566291271019209238913627692667297991028353503677516312628110979313406594278042304977128135605068374984289895906463971738635120929709218877281268806875138510715776070652428834756217713404955642046677994049529238088348922363088025171088034330552984794922847769954645199120337124967254945240989693383354118898047908881866810137981408613779483997180869760520023552196015344646272066791622484683719573562439078749639840004053569132132082060323311972397888345721151207573021756335225203349448158220897503553788562388288210223361489583466109586302901345984758953904461015383275607084041379590744378072496038314982034683048733499267252695614310406912976958704771247444681961074779199986683643279020564184311200445429754999928971345894999021450328705187116287518381253606243182446409821837430661046821569097777665956733920178971708971921794092264286541423883632258999171538780996343361828046441172419147811720889731155763690768684173743630153051474094560448545200966220405926623543634444171130981413366369392442158698380486846494863674039435621926100652078250288926060650662881726111611508972077969377151719320118587461052922307610255530933388753931451138108241256985474376033247374835348975507921119566650086967335134461497463304191154166032916778284187689856551935480993173512098580808018768953051701029673515763386551785783109157834431601528263919500016207954523899048174688838148570300546506141142250209139004847612270444695093291034804473102957760797115212108498372514837695992158302419798056927395037175513135188122812653809500991166191234495522615718253951741583845769306162112178491248235725562632807488217598259259232976329435945641167592296530454751013443491469554282644618920264766623449492823338484992087464501743552274966447504809652220021896995774005212036342353131454625617555328318239372711291998951458742457265937584975694490254091882746377457908659673971522722941058709749572538132907134569900192750655048864926673326549696385028981881917242223053097256451941937561670659432835231184268413411700834882643081059491576625326883950769796035024262264107056469470206421110377019257253047929417630576651151811687144104970878118326914416346875735540796018588328892981620508042696711390940771941444452745534730453822288100309773219440200571785198317505747429663304343496778881503043001835357952456085065201850393691044867140401316287771095787885103345658060162719487147901380131270787592937588244880549642351375945890511956004320770743921280823503207898306487711248209603608321786298366676503202171001856242133806653022838320672790549690640023227017649061311121576528454351853990067042019436918104857778782877985341358053792117417699332300338154951363143508004822087255687809911742517908677657026773248501837026498100196300111043587147489282565770782671505873393020795896645107698202711814985267696210529424361606430319660400166712251626558812083026162479524524356180046552450079782754502156967145285681510122731892871714213283616254304421811254536041708459215814987731225253210819783994719525878560197482498648237049920473456349151735749076165862960768817076645293797188307303162384618166996580510769806508601021262990035086084486701836188707610295297686417571144067872282147928324440155445379847366279292623903605786699441614745900205372930065988928126549085243914355226191213902245182559728122350396165526723540650708746561213483562742753567523325686964772632756781894078408346391110385516105640544536319719885144891000699530600146057313321914153512773716619284556569408644876935811901171617416622975384154717999377648024268537792119859715477410198349650508937283669682056680164475079591117053940662536652304339080966099130249484831206605105488930019753510055461463474544675215376628632503512167917752517501390214524983052450897769782096080433900223810581417059268563429303860547829581388867151853489732042614160516142619207453235715464941941942824959221894028034173916871665599077669600541828279252993626312891536595371061346700614348220553760607998214354168233489477127728333798652127797888342875460218691477065171334897891438184258978572796060823801415153055795905660699725537253951689388471186624148072004728759964052444799337784853624793599950896243537523123854001325125714113288583372216434060429787815397567816711101877019045422813032691071796962722804257358353446913156099611740585492203984187923332419612307798693208990746350108772781321028617109733423698308834224968959526710588133250953300784009354619964770087179179961151397426368709206587803595277494037102440831000612630388054384963383770825681541584988541582460317382212911513082147283754677724683182473038470058998178122769039728203477217050402495056196590189654424694156414560069810199065571022847703027570651135874609611401915735950181666164272874305186066329660105153224559989093144475387775459755923780411300130662921364560705314546497582216565900464760613155848573551759540736906207507374718745453238402805818678463182783239484457286729789260094606868032668205570067938649303201293047506375591952715621218882394870901883307118942073244350162294207289582811974861158952976973789331205894550816036550686118635172474869564339788412949712143310320847894585783743257700125227563610285007424024224285571875639198458067419059744606032828668254502328553250374893460711591069653934132774470111001292698063046452337996759535351317876974987134339768548374671157371120682564968965369163717368734984303419238510476636585038477253509532519433437635467384427942085602505274231711064866770871389999450263553295048108760260378213823278156958889718936366304230379767334782041788453971185030481843507022957754384093198384649432534725614250060855669159304160676379937117111413610713947705609684392172789101957426885726656094514041781680517414942843856981798476581673433340307526899535907389628808327091618254946494566497427678243781896280180715182111149516175907738367131348267291209025604540420638446748147406624399066947993471107886803102538170032930370798368673164992158963298498887821623732443504070877363717746949793927114258594293715413702947128661251239306504747046836852320693187387987295675126142601620542807156398365665383751706917331075503274036006974608103681034491950772043896375111731834697163953534784467772232178746682722345352877114286062472589137388692745032135930943777391109440609102892808317901427395610300580651246587726686789617438335630019688633585697054535302261831079718322245066849789882572625762321400194217996135073146802284117658821693804761932359628284032426938133452230967992688906707250068324817960630234265790807554701354504952924906735332271253681573943891244153697776703181902443183980931052985244158492245602186711965717512908688931506124931875672632346584333914679442477683874013237950621582416257378764454315970989335835580357468246149983734061790709659459775017906275891617303397641668435258716520096247999909213264591637438528401020287579684434217815875092431394722726816847968248524370970806665072210945255494561911993947639462119691306730546732495264515423941743900584410760122918059188166078800735767677952973520440634101279099925813812618195439038026929030038777966284969151015531025289792391124958695340862027315366076372481784593369545655742190059537854285259095588650112555746071531343578903546684249237091430598785033507568667086491078594930992724625788491799846546012919296718623798820452119522586249393050523467151642670334017882353152305642371133121253352859180072922509622792883566405207723382378634403567933007031651683074423148531512230628368241291129186554129766531943466238827330065192946958270736346554627562177442043688251463727436465280534908267870438016040439591262192440737563032240465607250215665537565412605439465801705404076006038556038340950021331137423181397210667959989345702257221813659721735710587153536106449871193911195725164654601307609032401801264019051110425211720747891487931199175304250179630535733473107764103306647950128512329951433406446142622599597474125296024277116117154703628170334234042654452267942307051264465536599438031643136097475372442363786664454304582664820755523118700982920726626599714635096106659312425492388862297081085318760483900748980622307582428601315798657906622900833857709777217925849780807880130350264404618094026543316760671586636204003015414539630670490742809808328993725960828338241739637445980942572359299611743220547738652158346289627842893723927781984854152395269202539829549513787530250300633685861856569800974798785701849379503996092725355046301450695879089420471100204918576071584563944834468975385449605565347610300973345309237318453764988669352628796727462546428382917057063324203861014483555059539714153222694270255331479234269027035109382248176203859576336256931123081004464485526475710336239642076282367272976553001279824777433235606411636822569195552837994415567468646316101542963141414633907706615711694280235814557568166029787382205799080972413112355416484770185519881552586626457715424609461367624944676048364162884021406127951470059511621507440346723434243560705946443873888444147482675593537780801843547834578238422340470613053910434001041393084838451769267190458198901211656203041814579862730472565863237989770789374406973457909438959109619825697879253456582161095111304875880206724937900466494788834661061822657900715072235244799963008913138363850211567992527029331820865427187048268494462430866078629657584488885932475563742654376634987600874091038566059176418959235636640933505812563172411064507129460976176028660273566688153396551421504940761073119927223604302883000679298127779655935911659844753824091020889394668496100556559094255332092636734808910061593395882268188407707837413748786765061764118813310936061408817309985599668990445324360565363445402487000376978219019804369875602912013066388070393621090879824956179504126375222160064126121506512489450681583389489417839681063393223479415997638434761961127670915638686830348560516881618487124822821342810971770933307525679686646455272650854036694155545404172794221780620862357738076926557375439752665974989719779439113826622854190369542125444723985204613962857404908761603816718662702974046127176318303347348365024053900436933298667047207006790711378004614474247310080135117565527590237584925008887919524861996840993608401134378887049090641750284786340209042239964148941744288505866514021763744315269980570539553135331004771247181203196318104484619706004448131180167573676096392839632048316791290669575114613110505292162225091166791877029682232483894174662093371127084315290009368286312886318842569570634259213894591211736147646235057810891209483987957959275676172938640776383793766792240377036042319542327580127711852716701068222868485054813397300179996751440948502895694491210269214205532304391969408441629121852034592994583195769511765296551847295785992795894882772348700051341985811290165560710440630377886245293052278748293909968980047313070178499893523260031483670899822092697600758533821161121437197189155822162680799426265847767893457098312638171512576592799983163793090601071297896419847345331045207332386467323462783061324247756172008440341975088235845512765234230542053877885900072859091737145306668342440274127862738599936856415506153542692441982481473917115195337479125555949920836765662799435107395903116733936900148098999459111860693095931788121903039393489490429111371689005312482412257813912680092113028322050200216862394555965850214684244607846526802350656367640814324820223742747889803226993679811888729859887209395640904122916805171253100971241008838846691698598105400822122951493513142238070699204670525885223473708854719729724297571859584503691669567127193692756723002904652690698844371602228995462625348174634448634447465942092280039403403245854825402302830668203722693884844750504490065160384124004843292951257799495490123472387829007575812642983668584190004772849043392930433205220153802437944797695143021920693213021533423659153771668077001443902643395731199172329924832611232384046950030966642275731521171307742429306745302702714995791173629031740370215868190242360850960740853995867192516103366719380763719127351860133654897931250382319448474737604772277058477224266337565799407572215427722505996696695410037146480428403616454266292858617350999474771624335015333981266983868502431546950348276315806472574780466030216587894785738523063986983256738249187587332503933667238795608127597435223622690958091522833116957949335812586792172749792076151501447168304904666076859139181350095392819569999535460001451944875694007694007676661616893127121293997548793063417707764674305425661535617549398009110085890015806114192089928714482595946968039985482320822191671196001462685487701382344785775475146649705063251578586700734082293617575812960976582015687383299876879681793414157961001238730006236719876928165931827309800016838828527307569321886788511696647945414480527824935379109659935363851999277321199480237449788764482680212117082885764904405213409370284861531420772206681996274849894157386496523383963867825478522566014784552695613864804168290886596108093607319489371277296934985636197626588568615757545271680549798998917425536085986234001316488603240000622919727792386765229118201312648741072667626514104653395191495631184114039404083297233053656557788001736431622419687909567540848520085090964762958997091494931116821784406422873651538123423114821381140630786906207412493332779270778379215297382313734537339932127218865411114844430277178158587079822497053798533094033850652708004643622844138801797940329974885778829424577559327294672068148381357201955618237972711805955760870085590947394237240437900438724472913745055395626738673300774215694196421572632875499105730887297107910752257211689538022226133043315460176526981433289519266665974617701234956572149882737814681808145303983310384334376975790382256818216001943708003633605210750200357133047863542099967041525446699288833671973060442376305600076352514132241755235776144542215476951925843973368893691014775957009174442471079930407161661992112651523269104143909863365344650180478776631580793657936384887191379473130157825447931659532224634263378907320416303606281830182885374744423010414901255920266415225345588589089998479907220983142891201404518629768271807699277408483369148216228641794659480114853885941430725228291102762777110498517823362316127232525266162751300978502256654849437375812043507326426947679258424492921793208794945536760671674927272368248450910114008321616594635597241087134581491898794507648345141812621202348375809266594820885337781074063561668846921985739595109717256399933446452470233755381887957937994504559959909934389995118742304967241102348871239003983810286859139134843067501887121167335612186056207276956750973736407966376712681260894001007982236678180601116826709226433572296251879828378214602931688747284515994430544515919246672900518278032351716501829245173406934445582235039603654706328619406845757722058226589612823802694182517009127496417138166849482399165947384061750806338438458712468110597367011490968752141637480716565587121845026149816677621815429749201035949585477862122297734672988048318006646411472958729261454787452006318369747384700976121902359401548136200332720712699484051431550323018836569451836703212378681367388827557431638142227767840508592158822260137045504370095971246717897382524972178256154815790114904924866474651762917000889534963196886484278028547758323492814219505191481534275300189925157232754490488364399100304229593986147169249312185235245965336012768510795925169757872160535729825461831210897608575814429948810600098630196357589061076035708448850494649058349542983152796427686032713176645387985225906282906025839409591462252225274975747281961582563802594674435264356631032687212816694969896810648514571501933988953593123736661426796436524828816391015600934574490156923795792717447897345245702901736910432561737049739816046720275593697176273988725849838732181880910522259424482031769256510891023204107205854573528952425225779477893541087776004357154533331911119921787481891594613987217080549489565876397111964702443399548550955184928177915984107639246216018371065469557016355975403857375750081442297722710336196801943175183272556798428584451866256207329876027278020073363171050408291587841981408993771864563716528682430816217673809967013620279349740669828785402866399837015267613034274697410737093439687851670663293982257245501177603250153575047782645427841481086810664717787973745009768696340547817704191775849000244168202330071067466537807544978933020586589373962739224693891289023256668555488595050562322953045739021267176512412389626040909345359389974604400014495851891649760753385356485057338791581441143021025245139710856534684287782502649190764502978579584596260460193464312654133426018398569560392904664034049196412649901884278222674376835050956582037831727078734470806580954243484648310142285800271482951821606156554452441373898822073354028678405985578660415969013660920838579634515869032867332642584292233943510881702531895691644324634975267287305297710142165601175972548592530818133458324847956025736401352078743120973636754127806021657366748863225682051712058947670571300475457457722852185649708048082174637152871290154193205622767404417596337642482808863045915931236525865811724822212821556482888663530782532017758699017034553326696749445130708773302654409623747904948977947528394265141405849371913078127844216184430101017056747439448990353124872741623304096310391719509100594157285370386360689099336239865080705965504410652646389360346828629115764767288566512029200274148590572080896193842540918868807210083123924055312402364768517192116659313355320128871926877683109095064300930257099015517808121912821767998536530938457448200662079078908650009344753212841882639283890908255616537948242054272270288917402767090730601695207570364417760255368743565899667321219802584010604960100797114691577595206343850823531797726322112394372024967856936637033696640464878963576880085265150813459264981641300137300798571771138854984684563711095024571347874184476247567387742423302900770089347109341460935356136960961100524008953837517874868501980130825479725731950505398101841646925510961837125752346510510655645127092067325667545863077317473883108296498416699820471786792570194415252938616724714012974525320533397840850578979559085237398951325293140593442861652756855306321493402243403943549994438373382599798532476948715646054074438341972279477969190421755371350497759356402066124512785337518281133374653734662491051129604798870520435001516606599757983977285380192049944560197748175305464542125027986478266039479098430903069778849977402085941716124690874583997609419873659718154923497960005041256852304835042280679923177989848865292430753290859971424220869798999867997340907261205194135647283482068404136176378682622090854786061218210062236695017207968971669746573404451926814519101512581224787179113577932646066364595404255107323291524020582785250867540631659515868384002334739268658718659964173400194597749957179964762184248421736563718401288756742441455555769283161691026418207593634798755172522456389074759160055421846010469860374004485559924465077085741095260026270659468752974701704721778271798201063449991592301379172144633521761993112309205828261797464836826072668754805261922625210107275176420387128481346057300796427278858106556459410033521062323592201402902492842044031069156098595165811864767748820149115430953681818670528699053039988930603493726600714458492640272823787253245426215310485568136334357349707766351188295110194154203363785888789562376574004908803462859905806622444340583040390294075489343640363939067711816583864629079907399339104591218958896355211713866678029099045855862984195986313452738041725779051166096030002715245859286300542244014281330134517213257422689780702911558329749531352049787272181269078028901595741533290396914493889543596599143475365245976927269521849699791177468617763623714008328497924147875027307401497222329290993786447004698663829210340297769260529776679980534828493143983924721032286397562388721645185539713708441952796397307965241800643848137290522884359525559380063290020368827521581380762272969114513689705419692621158867006150691820033432204367302915378461720010412377065230787603072177856597877995913876661358246136550298241096490725311518813646526357253681362480732383156121872774083347588332568845417822119097530844688594415961236664026304113514909111571019194359176872684180672607269006522464570661092802679657679171481262878745591685187651356893674607582530539147599984180078029541006694350585693819091347994816388575844531244711297952795264136180916986781546815619678476448786002152109877629399416062558103310391672057522202080719178432579248393275403694016721609232920455487290378883414544141431474223028837205539365202569112532533178585459499527979858898390584994213974092638257476196588689872496055466797009838543315148319380921757985630892797471187550211920695609487085695288038372920383809590043751186176917781036490057249995273927023686423455347463025345371490466147986304826519802081274939178388288201983657462345646029853799270572353509923868865706094616603864718247375003035316980172858944394326921179761479228607867399704275101816874947310516579435561189226439891880049998919226807148633256264730389520907003941134289777422761201029853513928906969119164664666905961919938432754159584837787797023567500251713750648914306542967449408744924518770327600171252577606893998848558685207216159656929032904241350575618445439831808545814931171420310999960232762176767573847312594477213357883811506380351031815184223322476245832066316052819055204774873933618503836600752962550325106432693890728422433093553269607168889261813865400708308050084135950197919958384150589714683313040520092404941420411024252711496599722720860538660017694346840691817979098271168907067359877074985046054794015436226429488748210809738323088828187720456299699283086811881625719546466482592338336865304337527968624199730435020355085302608254906433144851533717408363088265271912503962638719040636180788078538189030785034273252886568195073505534219124683717393126523799577617051986207633341823541524509682671578427888568460959018994753460575914480267765279349634053357931743651440882700830501364759585552627891705907985197790429572136599263508261887553620825007761893573712749564810068837052297570053666405958259316808633931936788803329807949860502863037199589587698621788710195643720119434444135716829948117776831595417277252097385164232460397548242135656291879105503217856061746312481435394053754019598833233288702608981717152240670165077676437017047277450538641693196605743112589862283219513378875445049606432342073703137381128873955953234817903869718630168259131743654273994864829594957219398364698713828785679915223168941585490516206430305902499848194383772694267814577503795982132851414338871499098675141379070803591253942956860260254027412070373653981601862213034761237648490537683496211194956320609178498724678476820402871420909329293844519174357700890611215388323770489228173086251590604026402621197807902256848176702234987770610435170534449174396675551995291261101241158364688672521329311545089899322152063372161987229136021887924901038047643375376949884968907858687039483934408425865046244910055444612656418664673225582041597496044935148707778912181792715703742341075923833112594074375408003375357251610521471532572781303922790328362897379908745085089283129244072674338428196103520156744750239083303195778088637363281004449806451501737954041491980061237170851405663097088394086890947310673745552263546339032598530787915315004463853580119465766699054664612997167357307127756701409035957373969159618590542234260777282667405158646658810806861377689996564482016560493330716251506803578758681832441913351336432266970735155231419639361449457990280626607389108751177197190977798725398409979991616982525226033212837349698052350410469046304410783603166824272526776009737128199001150949381668855953845772362609615428925768264351980477011315284368738246597493759205060084088038176380979836179146569909541839213286570882956601014650790404887901999376306095723759431762003115594293441442697178047055007727844247119827177746857311010465355342305127577559413930210116460632689450184184648893556193546619163664153800936889863410072252429869791684223106998355461016789643219931143737452151330477737532406417947764536663860574990437798696441543284151471954814092932888110690970719348484213647988122020296154326171670438524182818855667266801985286026052915266509164356774894683967684833430280669376308358667901359932462037993265425396619519772874940070250015085649920785729776022511623263628410096691388457568933056547292775889232168629605067469591572311770962328314537110849955341176970307124724171699628036229492696832699087559158421193807987095082950427931606070958896666482963007106764152642729299527498344070879679384274350308517802211569661475929790811397648903103302670230373544190351104477897650486592466134516206426251264027292116947789761843777768543661907217681600894070129012920174888934038331496146582969080439516946848679581184762190931610431477727159783876149501501438093874895247157072806987223636680085306414178108941463468619053432295552822307015855111600715139793196843054234862413013802433723935386354836653378218543513009779975095260899019011132449234756056003474648592614070088621756718169811046040119045080274799502955475859804596279061509330358230971567101840296545252776804070418247129466757085716733751723203925416955972668363303943393661536365090827935814493485693831354947621439188768418779613259042181938354176616813760122612809746153524404054695523967006578963443114959214352806513475565772106359194171926789824472874905286757588942944728036200675641228800960296632606145053418562009999262439078033471591993028357811565929565674959775425845694072988625904004792360486080513526872184698911564569456484607921003624611886274427818269667687877347436910095450153963698541737630259611950386765441126196951025933473086044460108758867134901804248680550588976184452708410928555831005056411948940570423984696156140449802319591955300147522822256701209869052987208174772498158117670444264689706395304585426549863299827683068055017810062476567358993643408576735416595338508762296791706682635848290633130018169478616321340531843435172889142560680825073582792360440835452473208046999781891147543025993255626601141043352209558963654690091841390102258750198695743276764862833654934182681797920632336370114230546542970464075878129390460363447077107600063202086644714896501948761980075282981464185473168360643987984211562318229954023484499211766475954914124739753406338670148002417167726837507571740399918478025675752650117662626158475161256628997364117745573376805075268868934960970198378141608290474171784922733851130065816510165255268267518444562363035046849400538189960528950202527095423320963008749878317331766964690949014502016906561516110206612471142809918975096693864664725509068466342648966599895527827905544555959372254922916036962939490154857061346321215200567001613976038782944869941716094534787869625258203956217414567038474833436786262918782536352307322000688937676971484926238529098313274539694107371183282805991458652015485482209200594587949603542948449570385174235732697116031173162886829224164972536514101826941952984554068935203030643942676764552548343718431332672669191068572757045803583184662176097313795219763891865891253231251330951700524708144939901353881061047099971701673534941547813784467267388658927619101298580250053138341633458217761619018153064889370470195037116354094903988948487627504744839800853457673126449692417115955391129990563350398940562225892106152994609680205254771537134950788475961534633170746617400462031433420684441783846359977066741940839839359127202937397750597883074160697741575542107227361334678786853174968294899826596223826535964481908887999892900469505992122322866070114983813353791995284938396986679847221670592316533231246163776782290544295830652186362436687096362940605323459529568710190682530647326457683128074781911493396121454264134083492760644357854398486095170494114569599439455126973711517550376337464240415954454638643158479519316279756387402248360812652950657693671640675506082226224194683677572111212096326150305710942270587702964424026808947613547904645303485982420982222268107563934394098034454400792915220700888159669357430533024638256794073477045688989334136410270926884462482967393133789868225881195135990285857375229616766876073743687687214031724449245121591471045980300516627280601558087012202302733614487068308353472410446580693482412365198367881560541251299400899909776271950156497541249842636041675790638410739051918641062976882587886080191424638829922298328019656396259761166130166431998761400968360196967055923438399999347398681229462426668067399347981756929048730705759556377662822146359239405254512484341390733508549783171212660080887827260683588636759370219082225936960009480137910090436637723371975024529652667953863214611389796505003256730017066345007647945504640272401579423776415536607613154907591141556066270936176022667191953375126425132821929311376515515880208074153580150955051892777657685956436522273979593012411768290223164571564724539039924904901120568467815566449487585290080936943813185407370435629100432774508019360222034558679567949742801323978543435864158533611755917134718334563617190568381883486646860451205068457929493694261150886192452918609537567017307945575445962901039153596257798198486704945188646479051958384968722689061826307047321931289451189254194025240681030305797430919491383459297246141481456863327124620642497537881788452063813910887992959559134387057038993682063131127426132419084333295290928796824575061697793356143895652945280819303021249913657313248333595140985146853326293814360498460612473473161627861554535238315573032347183581711958540828241287547773439723098910431929876084289626363074427972139478469451428466328465313749719341610614188490487863399654991792168123862217230206445163663807469709740699527358297644148839733654662660497704057851705341135750883301365809147035900286164213634848101653504621255175124716810689793598444459279960414476288660365695495881747011031387294355203723370669565212925310752931073614151072749528252170218656903829344128707348587265849146135230188094409275456182349867214775479501170251236987755259006376123652837899998783505482956230545294133962837938607239282493170294319485007083154119659123928505822781760905412274743564297530213706693115946346819776349752350649249284407054544695969512335966990697310167932958932720636754412496495199814469551463973885473585649517937636089880847969068700283191350451318561344821547651309378005224203733531972185521281198456135768796276810109660143829012664006441075666230818669840542033275422028115759666049000107543389985665558684843697973297092058928010308109167000049005955513144641211469825691661561763260207013530799089473896868838937440937692585719623734629064665932767123726255248272498013368450027010594746633997485114110575373305197184379238875036486121597741832898712954208360916670837741736368198695635344289403803681422666724577552253112881121111060177111879782009755219044388084824727716556102486724651021423901144349550710589587028368239127097679968556277406216498947456992652884824400129406196075938796725442519687577269099164228367555719821683748633231161535971924344184248127568948624746661532590616043227784545433668991677502883479490578865303009155509891495064243311841555206416880854678046994044214256211288814665275076820994585539126059171571478892712014274394412426287343100032063386976623945142820749800944276201370890390739180112984495753434648893154933960183805158492114461103927581089532170018613049935900990130565772705960539747688571626327190318394983670801633962412919384415100091983616807188470251785181815203666420799200190252332181187066732251648599820282312361146540881003057363757578234888082250204164416117224140100496052254095334834137020510305862516517012725354779540998475343589970132044011740638084710450706114068044279581043198965544496142101725749592830456999715885714513469190992728709064890217007914335077845784243064505113959141467350274411496715982955647971883975260964804241982394601222960237300175912217135133524128961764783545838223586119791943076912120956999811970202805732716775708937972637763923929719063452297072028524471847719315884356967092917659479929186266424619856460368409521240693817560112940084245367669364034726992015951671933346047788886392656241985726954368383166826913955630094475239174676919617082457309116847273233525248293038847730689737151262733538067165978332326683335944881716736186587747851942366056394196090123716296237220598414523431958650709072877171380628670341645849528572008814552455227512633345507369585826737930115341828174392833794037448319677134862309149417222306865227936990544492390764260922644404260658261639871554077519788651339499083499731384747336092015056964994301538774162365399940359575750408068335091647874340580061606887816224587227245516748769874477156126020621200033005505441125552614416802642437351241305083993623354836393840100780710715676284569177341633036858457954001556911074416607585440265295884859191694465753721804885675621515298346923624082151411385520288554521372393699217309221469821196889206612370605403099114519392571308918555325419039869448760043888312073911339421623054843253881476073559558389800336733110640745354443355854111374949327596954906390610085097011478925346980343683589236208735672147055861286190430680782047649970213952253311240246318379615435122306695998513676441900344245112148231744862847634422955092160611264662797128420088303034107790914392635980735652210900290838047257540675035138282788458093190375243481360302109291780127962863592849368680383704390262729945686221843649130181105819975008607201080422464290998779150806013989764240489487095745713354523929491621116113820580858103692600468716125869037391824807874690627899513866692905756089571951703470513156884529776706061546960362585594715834967684752054282775442176268555140182992016407224485226036529455270288885720135147997718871702091217159425985352099391613541937158033991067447390894064804088107266055940601714789460300308054273089797653465244204277717706154568680411638939391112132723842382907185853282732130520758543668775652953924124540662526175271759089480436319116570995433750636572564368439051954860416789950689193707474790119871067642051470360868597133886252353988175716051809891541163798196001946618275444381250871177794173947437601939735006648690999758593824121184785065005717418248364541029089375383773346823804571239104320161711518170294329548868968117479106032014898347500723406536512802315280028923689361150815264979239632043850625192809738585831136379603469661821747641790230333390514007470792159612277649962463066085137755599573496525435122691463915148858233143489389820332481554579358806607480080965620428574828681882993450631619535958476745234314643359537834022735277914748804615760952245760910088031694611793497329570178432756386426218919727029453993076388979706943164228770941705516069980175790784349537324857691703589398488584937007801711487772202584248595136628783419260706322692761046150602569321298950989792405731545168157664608797168895130810601281459553768355464912541209694997061392868755400704270750367136747205747219949426904788078626010698647956198373416140956100154233948942253300109298326602418508970651236695806184320126341534590178975131385846362716269227045307469621080799161601267431904997799251415428133503066369338071550574199772129599226777154429030688489112552139887167820051349881245527387785861076603569444074933888907137513242074699151586274858939141379327072862512115282613489356917093973128228404396069516831972368662347484220168657248552703830329740574903806043459067807089573776040795442690103645350018246048749589466049231006023218129973937698945710180625753736327438222842483474290192456531757886746313214388814304115903334205936879177955874540147772158632533659612336515922634217631215707992784048317700625563960490584012932592610162667922614053641668840910144299269779297576157056890175286969057003212863168710601401014970183310963229866935591897805371279842462536135221203244052474937251149085418125429830488064031378913334428078820040991667097434302063728957630750851771659330655411407943276547791553895994453945021213296850933768569382733568402299312157755569801474450952476900088076178303736678850302217132462975627018760985338073762140166773644272308471584058104323440945578771636466485615273601199154619886658658682030737254591028710826937381395853977719977502820988837724834818114175533629465644475714774016339718200752263517980955805426598016253253712344047700197517622200420727593776827055562838100681345041402582397866253459653500075334123041742045510531953189020963095461100091388883854003108081435984979149375557808437049568571280608766187970229986150690195036896753523441107442384624541374472190154631092030757374005756394392506019599622679640909022980309949061725530296858779926927468793961013339946712576683447445023511203104044951098901287319296645922422609709028448902575503620425319826613332812167583667650636291179128761742667538709678423338165955486103758286276047111101082294313272319185130642170572537759705649537719662429744741304251647969686404166469883234220073091565385462735770387714777768153522335661383342967878837930613811077304969922529793580351727426076296898113029044995475787698280648864626414599339742186652146975261581927798503095734317902505501991025818736551161216086644308295588960582973184469288269140671722493443238898035825691743229450602232674710877157250729051489178540624819197650853918185544748012399330687853419727696519018075863499720695747419448639472101221899938082137397867443465621354556002699412006360923535368643158939653225968923349303516675481264394801108225018088550563112548416840148110825751353250533051370140343249700000996898962335270505881749591980423045196403847180566234059716218347887338449257055679141195725214373352609867291752115895805698148570373639633875660748230487950292504112128901069366585743009938891431229134016915193225348504037967960028449024014973845834448878094465917512082573253764524769619854495354263023686607189729178301003258051800619554436894503923700404266893832495826539109604428041642769399576078514355147521615886207260129664930934188007179220408167284672224902650306981725210758880578850547952382989863448860342530361084831070033558451697469413756375630266284846021452255793560600064231617213619462208025574376792045321377612830932564776130958790435549021625970119124034684338770294555026458253955529926255438781031355691231842706093476597288576743528087687224273092144784509068495956899022231337567325780052570717633693801228169824356709477506412979588137010057571724603066981120590420801644950406764157987143523685435474187837778620757856685163145687318102179159065078967266832624872234336692168190066133293580569416486343653244411028406962976281403635931994546022409499984809207517346436215694253116847717343362723767977318961871722980265485620577826894304195783093648336781425532895169320613871043427921668220740547661395829171153924894496063554041120964257692612119941970816633582731942452409775909365684797319991367537962315246345834578365667471266087579376230450553747073684650872344364306487225724878740698978250753902318190860768041755899871907221592282788816658883418238852717391988055545960697303428077695653694573559293299555770870908030966103124950354447138669684213684226308948198867920475168706847776968444781860867732709284763207443785555277446919862495966809901085867296958876711889108896066216907003877326084533570473878403985873632542432477750242877233500815981933419179009792979642483074856103754259548920512853684796316211821247112134838315235416178858417891079742542385501007970778126012766382536224794876750081790180147027096964782014047589241937004955321541971509092860270150167191830530980741146104950496204601511458275840072928680914917664554245592764625109088480315372232001950690296666241444347137371987070532860914916835701497635506957432501494592466511737638545310556309012462133299685962188752726817775376793212707481347444697712973986575065061114466066054936649011280996247993387992790429326953498078297824808140383291409167699478213757310826609683923677750666286135901960566000083166616515344774894674684423884169462166997526281077583934230907186983705302567722521599019074690079633833727927173231618146138169789903668962405217321265344994664850941643237737123175411132455226975365762631360861596511513558301041247902828974528246243449033910255465769895528059998189236420314903307053681398613247598310519622724495162656530416299662586628468027825495198339729403453854271708176700517686519357151164325840997522603524144445027747793423006458179616909585395565661690601592836598746287724631705236977329019879544085859025523519285911708456009820364920476900365432838794659512454643718838184911857519785973396616606290637843901547878812729644344479213309462475993680728949085911503491514370227011634499797499892641345053608798531197751840580832236609145092542931937547251640254765490676683269291652807735790153813959284712626041084736150010845375802293498158692644849734931957882212727618906250409221906748139286159800623751408883240076158014775578715113418297597580369476363125934456704643554083895639724572734598411499764256569576801553837323818744311583510986864763675642672579768531967248421663571672636738654179137235898294345794207601596804335082770958874097927167137374021743215557911006017880579142166214343860347495926958514527385205288669205742758392618947154489186238762518320309889496204367695015691159637707916995165299176960517583871199221487099764731021120039219641131452840220713849905186935960409876127304595982416428095431991100962064479923947303982773201316057976391290639600159637486693865515048393111841565273610406203748920854916539242954126925835927904834766371091067431484249681320632831877485685406550732312907410400464195841086070931135749104856781405082712437959540542259666875713835035304386179448154902702505671240294344251520271917209594147428944958512575481559542300471749417734782726232724268429716425424470660473424339976945588427954682051703669582032148026527513875799175044247389079387720125869187523906450549958385472295956430860920135357487473852867462568752995320868225820490031555582235702644559169148240249887318619063572236815816719849750575852485803640317185819529723345448322865294285967166605081623812541155375862595367026997409815542321469236837071563456242110413463108563117871641390994273397691919745651319482391827195005590978367362770438492767843285850470868330502172645888323324734437596205744015720435945533817573871990471263838655826603264285045486803483989090039349405637907177609309402969970303273537767279180127538612476580890769207860349240461464043300320519394984841435710857646191837734511473273468946500646878213158340067813149806427982986130900700226804749144822164570126855526383042444848231916817580314356603531102393059285039147786246398231040228976108281722638658779412151755960887676713430380646475439792968853551078093022214890328544095837449358541743331852253239113769524457373197783232974681398858836597329572595810874256166629473681805940532123434078611178101494067777597088457430870446313114363782469466637602853576568496329522370470808169509983344281274054906708389412743977305263349661995013514487074678090536016204567006293356068288614214626823012468018331203822818606229849110771617570291059464203392422492732005229675428830229972384373188132183232752672678642262103773281618198903729776660309106740584962513906220796919534774564585688414572871401482896257735938875209472042389725680032749234396758385807683159181553880046914689998977099187744559060308546085849061266255044017539139282826134383238000905299900359269794195609294807795910802397326330642541235668292789219940258889243870607161579966794920765912842346077963166793369762784953037234052903907687094397910856256995392572606254846918582479689609226623837641439941323960019259162426280490630902107460523590616813420000853519920843052822036915030840013011858529391297585146374648897530436168705416123443596920246577577424470501139260421137553483278162082262614244866368754936609450553926387118411267106022338216595280397260994122768721594896067682282330379535617169162311978596676334710174331637557379067284440914038240032495551981198074575709566682871598513660719531809398672875670870796075016313868134266652536075369813270419852243313266437202764522088732938184810090376947750522678784812600513887049052860499318904475798303149987234974352682077286649412172597816174036415281810903107678336229803234224100863635377894431774172651948201484270298587406401844574313366984617801745428601958215765815156311314628337378036684700603663913598879509535962110839491291639761137496748326750288340438441642044917859702320018835745713185183812457020054049990466571384995260522893123966816410990455189707687968546015634004525358025363015373183973472779185965616678581432439920208868482792427011109358521368716755661735103677652211176247616654036630658118402443770441393562618481582555556640102899730449997702346140697366369086394103673545595181497475120655161218125556029438316265404932718604357069769089633089322616567652611860684236005166269399106457192963583419296492977225035976482623841633328331887882505423815279923968026816154805175634138335688585846519628366326966791163135097186096755167789004422777635513265870984964238345554064592094658055905603057884672059366628052522050274899206644350505335874507387030383710793658841951713624105179434956616192262631528495570284238810806969486212432508163403178976793774952710398265612263944551352798978280399732652099208698893956685378553167725045666297998832315950612735990770978928220672932800203629624587257010664438633764827438568151104744103674645309003450353324412645844424289396916309228219132334337583677920168481060651275223141389383398056057005294998291605614689611368588390247774014379800021532793179148427571719325669478625397272249878434746365165838613076896146900062109280848697141635535792153210197883050763641156298014502796488714036622794593647677830098439296444039572694961067387899369851154474132686546234791937008219181521853272165767002638158356818686578086701461440226784709154906293478311820212902129542112870730485631297677251688189250950938896876573533868232388547272468224576658477723077545202072612977915637675493676582404239595306082647537885300144423545014958586163488358467736980219432246947731273977352652281937557718862503872146127638691291605765899067226343415661253801030042234805539835436379125534418350426715165511873791690137327523501531362133248164549552047955800876971193038240836513246057146567053159190381196920473421485424327254131491860359576471683889414108655398112707044747044673844929766020942324648585576537033030371582608402845599074188293677439615501018106075238770751155036896442817682372788588955558396164511920322583475753437815828264543756510747381678721922319378284866503410113458984609366636774832416426647936384461701561216247700033230377519353572786554586114144177587142836116532175065508360204708205568172191794360158184123192821119816497128955096961403352642853427111433676819122262272947388692192305132040112933900453351682234894380667216709897753974019842708137931108314866376656332561469583930788355955642507970230816243043070694783007788510904429861760462517779309809466481117336769131573083258625717080931198038659198754228138325165708725042092780626598413426104620252090362109339161553347396918297153870660014641623750903368773133071496876079461681525942604394901820388665834425637528433487144311692447084907227598622507096719580792414894577245384800114481827382893691979031137841331750113913115522133828975867766491420687591538809446768850806563790885884911637394366833780603575046512802831354766789391599684099709267052964075812183458969143072660848797949691547762447938382214973470916002706543380251231587601082440383667956078144217087996812717939123807376211553141240712644149713703492213330225823189331193099711725482004600831570460972213578270408417095152327023482671291219980560011800892969303862297035685624607973859179883042783189220846480976945990619240224763631084416822167334985577742482170514359768131543680316814321113770822471754791116220070414218469995598282388135352255462770484024799827578150005246918980745843611276533301312067303037228752613936493747587985253638663288143708982800163623042514263221410455891059327543653627335873098757980451356816951064855654791198825074850877482239320504160472104629058101891691988748178698053604135658244413135559202721734088399349476307869498090916197699677264609684571946804234680256681019784085939006480587757700993056638701138171401779443417734810769025414025711022575817411964351320483978584713399158882685044320275113013626431037987208003488330811943175278313144615861332389668931095480865272927782827855880727045104523812264978638542875684129575819439114838680764140795669821778555572531622800490168880244097458786731779022844605675775995963452977259481988682192277949788427923829471099409922839434038164011585077444352542613544428989326942647942353218094297395345360838721037244286324389498059653058426371159736775773926117734719401970688331434162728097234111218469812748827136307270362213743503710670538796351399829221029896357694575357752609504770193271764048116528458333886938833041113661782379688237553627438664652818377645799989648734064900528304017689356245838304600779950126153803513851772363701926909615549447045079954782871119242233295305615451219372068797269303739872437615234659898370667197793795429930529007889703348854622365552101953089547428736373299202262145041036590534946968475832644656269696429276695816686127839567411861843770795433495755745360470984346907938955439900353695047552909497335693830480312995722747390104887480677468512675323634916656647103605303234913239096338904852422913800313598586613239641876854312359663523582442115342676020299040102730396420562157289731093469537384387564515666026816082242693014600735477903245747648273705004692644047152339694206178424665742437799553559156625415324721668804103810078901019030602772179170590956550043893676088445978906884792541281805296799749152315140481582082710527420788405296239672581948261509105552738807589525809723228853055693176294945092516732210883013321800583450588529265982931869692463295330402909592184058826660966754403910265198573648647972086564626633952389313733026529369613499499451416976883227545836510028181841686019090768923818050690082648174961656496573247902195681399415270696890473845256860748391759703201484255475364646090340792606129960755451140567913427350522179310538553679651652162271225380991526526944295114020432850222133671442451577613972921731367107942037216651102284048663479060695470179748493029573733218896790614426841330406723283015813222369642348961331542678084214982666148309166064154050162271482617794670286504375266471060477117484246436506922070746812285803146421235780224682494707437962863818763936202070539890231845627660755259652189593490206620079453793915616013607533169762733580691051392702512355365178256365767109733515016496751046308146561807802916646247018046987593083398240429638719779899225749841064667950870300016933609510836376053672668076608716199094941177814975729133509614525014334573665422128636416399495566118339887909226962365630480986465672027167235255880637721276640745970146010115987291679411599418338219282096966995004574185599243861411780445706955498129344963872324780702496311349952100585053297002411058971649594546327863623701467317695678636799768590406495849522030042859114126030591557917955592449159303756176508091616773604962580155480073032742103915293692068890577959018786979586940527636508743955744766613822376055664705771492174336156132392958273741544619777872715771756369740136161028297560917816978200045433172140383497873836568656653566527033253252187191355319144144566782898672611588375977041338553783875257555106280981864287886191627619831470807793843855432150809417728175446159321495841161905174535432359303957383755236417429517499310981077592891827597390425621211579971471554064794567157889271109439235371428205225764902232695030445455821176274844294229010965644101652864767264356998945592131805421727539960667554723376317780886909138803276801284647394438967053905644481223766959008452107036401486047770302588597935120151651803367957212800405735390635919524375166896863499468131947008516571468377471982565326734185530744570228224888157257523694076792785950152551896840294960686243670071380189340864463426184630953372262115905953149906109850455924995210423217585696345100331353662028708490459906873927563399300692189905282394501046103045499543503497800166621660988097931013370071992048446871081720639966006969264172830614072876437490427655370729827393275692268098502782524105714934598625900969130073362577128386286515174964297828350034395797905319974351647255448313596729215973475228237760753042735090984082495953811485661039977158866949232177904300705654281516635427853872207845948057956001682502639920262354136286356462288993399973109856454775479681382347246391103024441315877247857502649084307445818362282262980728521349911682387356152787046081358223740307165800303667395811833466378185859083110449394462510418323466239070496745689717918113849609875205401761149582027532618846841105367333048503253123313896219915566575931944254173357523232958708307571196820354734658101309846155618622563242324364723529900906122752227425062589136565446891865228676648579191261766757868246605764984803878108483080415327392613525065064412811106498695791309428777784386050232848238484694478615160177707229730415172245149297197594924373613851782687569064373008874585967955235339330513826462621401467767972185027003045144370845494956091041634203285126060997627204527787353137406221160056316514613921510859205567202602844765539808273611939941802138433822501718693454269212993471759526457745811383994345277501780206465570583887308936127043061017036633449513440894326357443981431622648706544348325047488596479187583148551978982247749249949058302415396454525707801766970257294964110358675600388133253232068319921522006338970441356639840526680099264963490060032275338855022539909516216258942814844226994387089116738779473596186965907295794957653786112424041213131282301123566709632754720228133944577975927845434651498869708397132260357154050878947453970499980180533329244535914315447013763743902430657573456189754927661436839331431433274570119439049021257292448912848449408875419429445299378467146932130759651428406597523209344262706587485467150149374037228078351010364186196070408348117066314804007975021150294595083946496767453830898083347521162747649744147029294973402251667420888286945146790748268871627284583174125676814911348138414088066828681282344803824692060250639938689323882210661768505647598512124339295311903126046344610656871553617109644221479554927684701085376669376684655502482895448879251320991852041105919050664890118808534454547820520469481978400586037750359022884513548217114405149776852704202569864445937077780909800282105650478433255250712973191240219687526309909256490950333693405750649216124118773529457485702848929009441912464889894531985015133855640725761360871386526985224602462929656213792410843961052569129880043492581429391630189472960078034208760174971760347969283420974635401202058114329600033618433933868347399998382391514792227201256459507083727144383269336468149534475152336592805672927774380626923014469134395667716414700194669701232043132474146413880977591845092538187238715927998822806806240117119030036945238793024163377304024074761690185583196316523672719832894932710559561391566866654640761282037641820231695985697440406483785432670147034300590911131590446345251600070217933043610758117899132663245622440115869681509085130242859491221143466512092564019307244891947099682290934380669463705226709333351950049791046076170778937772344452346359121409095222273238553528321280237992109154710199725143697741013808350319522728730122327166647817248802740019723871471112582637758142849005040307773405094348179365064470146647457608844814957402800663200363489420763663119567368321903123872511469814052096834840275673777038426555943850105845837966076376218640278073536229168792106260019372468113226044001125346446224870960587706448807827910019694350514122745563514839672995770525388619403840172043765014833646523903118562561261949843032252785660811744441748422416848076906436034336906497651240384664552589821636494733007727380102076477160603487200877591330644886073465231697713533675104113655913798721268099755447711667367333988510549236794423021748362695575921340164906517658048717118177976304063450861777930147214349117264435881740742989917411397456933881910558574578756784782690176904736670526354689091056281600653089260607558062834247426035618234469539591040159856235587361680318235524089633402842560155444906230321691435080295776993547973930571669058309048197995390847752093530445859844970393475288268402692757772928830985493893393356928812447703780240829520475931902151735114252142749532292683920469727167913008092154961743863985132759221908431839097576975156593884541477216885931409361247283003686587531506139825088542817163711677427925081171582735198136861862336386057350986004435517963180386088128454810523639771427500480016041425447930402239479847588550385294242544268002063778586973263716527488375336670022239639136622996883647556037980384193174311336371713349730473156634730348942713522819727407856918032534477653859849039934988233525205174330545129084730483694885277400726002307195875008882687619506415442949999347066064155804473268947429746745468148289305663282705204831332600162547504679978763347985925645500412387441257307514985001481321426294626247626920563650430099854663160752737360188164144027720241495635870032742527116218751235009493725388576394369566128316640083385964296241856953195317684431611573439156842551501856256287949084303414811698461641953476457224129485299751470489705363625583858921963896991421040219224745234858809389844627342673119286172094467158414989608025549861424021901076334186378316481741204805966735815872897930573493213433739465984626163150083636498724116532959756333005863502617450178300562769701083100582272910021604053381056508946046587002919077081910909023334066921771969286218437460022856760578252442578863574525935872693430113150413211292291615963905232927158404780479417343139353897735795333390966935987148432209028047573636135572429168574858084634121055927120631932698923489402610924620874855372110303477264635814427262085520192644961031177947190638133931573290768301326799458984699860398461524559326534648256685711870180479382604323849052429967917059312646361356122185751533236106528761957818475520568344939693188170388220828949151732566257731996773265738716614522173222380782240637280226426823881724344721697701230267980512594276940416208818127327007578926197696374957435315072029128511783520221491803604572820615500419884852213724968420837162988646904967276666923011115348543560246984087664770369930408510273088673566223521242007341878679577891025052302019232357680373146695108677164983606197398166837959126034055484008284240144525826499189119805350932245100984112882409144109794350180636486972483177126726389567192483910674462302904010523063003820644528662122802122058760504579827239233582585800887624759038094615116553469623348164930263942515920322368343154946687100654090822940407780910936797472882972065151038953799055193781211802351649488764517504226030574650004406495424009215077726227507541979600856094296495302623384393436308782162487960956761475369215650198440590067705132229209441666019840326661829892394957285449058179112317304084676231525477219104672861574994687560082229231002833557528564226900742135656528259037431694397519754867119409844702853169936395533343062233017590333211743158574949061805150960904080311587440974688661963676685639883317126286151859655235596718912830487136984343237077062014170859783785624856816642451130772153597005614375885123468861156816398366680136683057960714191613940362063936348503373166610698724867405130421272218557682942559804452850724373271560767104586695261645695103795547252713210363677383273104430333747730108915213064661846989081043860231622004866982566530895246959250427637929884770948112165736359171796962025817855061488785898138451993338831766140810613422052228171673825383389863049776996461519142456029077906279729239142615920164983379367279436830097863129581728432620526820937705454160074801902763083058935517149150141442088188302263707360423284070545050286103342877555847452222710470513057453878730631120920345878543245520556712308416182533508191166223226765360655351297304994376904385283822253890383816019308003739053831522897590423038329060702544634817446496809413086378187503788684681754774774258803465037639525255427487903304635753096178979916000895746352381279722207159816541999164311475988644858936930237520835265932149484701713920654877524132148982507685724732887767444677454453070107790866640431917363312604242639256690340514239357761892643237643552633285668592649101462175160789173398132824189526640434760919913104919619696363660894558334245947570176452026563419412017941400606926170805168262084902930276343212149540591902130104314348409308086103544288134811703828038699156242995204091348204855830556536135418573505512622159311249177184376888946646545803160723498322812279806391447454024322812073126663632954063868834984864272321504573789375356119089545929522190213486901905278360903958663039207117981110519287934647374231058405208810082134724314649892129751467740570641160035731999437217418556724195651147162253959849966902492663708560921151972544017934944679362195043196864328667498446501128315906876450521614203916409358725452449775819728924910057878638336487649603192863286007251404105216311650564889537542008945762556693683096463094653527916437504514569720932237789000896143177918360499713827124963166757313527348269584666596542931064152316399573899558319210805699356002227169963681112802498755715472143490535536692334434935976021148133392234037655882600290471867653131792829693849695842935428747318486337677825880528457339906842526038152407567989465080289165226991785332125157269737632326186218805661182722417454889477991795778068796452084861599153964036684453541018825233652032113980246098661987812362698600661405216908259548703355207681339400019782700949413866666109608321949352692081096144052622903170035840652439292007876949219006270368673192143422697166181053506247914701752518547442422760478036759188332160670654759668029105579870212016448710813211130735576000649775414546306536084334461093439708756031019232095095511851059136276521736919630071063363811632148681287233952567508717128916058972747284988656396644959208086350094389800843697031532386912716017644398698126906551476086655332822994646544127961417909016161453929639856723290044088497959432407506685323232950732010778144776951058676761188887937641023486091151649769354541265172245132257622445618067994209313598162380682950708491955142194716471339652642725248595427664952171365707984094834282906930440369980427640828090703576788435532092166882224989035393458325432465583230449530765336880526428036030356509994372461111990435558608976672007963855948660396878240202131104478915723744830553961929248834854218494780708435632132952384749912205942858857077042104926972615243421231227746915536742001296944129143931086809159045707980101859163458142697962051733221678877425768588731597315229765022402567040986270348386217837403389190644314179430558062516876377199475161064341370275069460468399471610236517961067092941531784174082147080881650602624438432490886533078228664649419325514143823503734143572755836026611564428740462100686483811258673779439326048906094415610107793882435910553777245219083025102837945484261637882698781621204457563299055383648208464290121966736989750315042932868417965874293600896424086280813330151874204225051424023561590528983322942789207321865817530125801244570992770210097241395398630826558148310195591860762400442659965687970840349091132515627373585477444682553561409742345220440092481074850149231310069047802847296415300586473870545961980684973572291776541223386822245036702122242434329836449096296175067946906419728763940596320562804900254250323071603410952015374663256560484382384912031978465346284024996316747269772826603771753128010358554216297786425964896139928911549225675191975074961909812365755149320893874387791313156784346275839924009940236508097196632299232291699396499394968245370303199373079670124086569231961147706201519463547251279021882944351342006814009903743546418653304913843112436782786116183063572869771979454447681449432884504042463849675906059783101316559583518331724407675023025946341608562613956825450953581579496186242273070377999988914190580723487680720843655135479943019110587425372638006727819051097244829302819915526360168545615362145362152973773011768579078197915915502795751128780595827605303627925703272340722296227771611040253984057557477894602042740211523413743342214507432283395965725282469094592823644164045893495164792896640776516359620088820913001107316686833899298766576009643562627793058484883280667004149398346676950664496717412140564658847527694968818388951292308523799743136691907847039263929861403380905085380089855117784853990805007455475832487222357468878884655568780678830152999405882310458924099161696459379509092891232556082984834518448553633804058519680744179476201596900570565727538265233234369014868424481394473664622609262154855339343481915714514867138754985780256624774426607296806578631223496531800539341543399531005446513355363161878568221045838262253104469307497298531498670786404090904013882329339288688453796110846028166818829647980143035735919000007860247934752203753921426478716582833469389211218090226599498463752101969772230179764383626003917167376166958958467079683387202417947569936405400608356914013059115755838952379419628906993222087548170371619471809788739018921962306674099763594666641359802335292615024035545762703717983665194881811210060900330038306727505390044378047813799105949847665697056399516264432555905626480974996417698262945674809810129123798996242472346050861982963098326067895531613962821987356222255945087309372517866677281798172534971829756935376112630879586635923097927173273662597482945333762515017286129104183477081776241826355525638174590334917778953268793867931273944785927600949732254686005254196356865554955778843213550059092677044919228881199241051489658531481292126302603531284638306138091744486422132007618164622991632367112559338414111745737321714249389921815236161918758585192855696836156634227165134492768179952189207467127554435183563337422618264205682568124995679820708251031887937102264807434153049103995766935981315623675577557712171405252296539462884393417253329602851921441435002683256986990484848280559459603155382669761206067282463419632475359591893482487332359189666989538551298198354050567414342033100704422098104368750949141315157272724188379914071012137849218376568284377902907334481557861769670501446863164513034815232687800397070718885549521044558228652116010197841500390713769685247853152642665102089606984804927261058017633327238088209021114150790251042951832420680477703554254861043897800268741113337216779697617266729578603426103141247036985630335859130371818570467306864802132892040330021167122352566378913035918703332211563488083508402031538052310937472288096391468988018199908887376436556693067416327868206079844105916458464521091721010077268314377271247061218075186258666242331626453706625749639347988397591541454190190528443634465831291632264791142275153544400710891297974777559527687793059865160159517294845451055108840907064445189373821861716310956799672734343232967990715247009655071209373670735874187106417249148193113801322864075983407054331122324812145658077309320113549403815903933256769558815367546456159017182894800430538393237656535770057302438255033259425462225300726466735135796808670988619022304963680872368479322863237748106986100055836917344820669566385903644661291478085912625657735790914006157574064779690389073609148934921475128563799545866053889474069732692488827098110671829049769482726828431195978192854481311955254154488649385171298745103495869490976074387506474526289229102618915264777436575581292837948976605202175844622368566440529747056334915291820930665747984252457910559743456697091923057080012526165044764514602427615209080580640803454713599373107781840347277207022713457343332721052578283378802834090922081068311342527995996784026034458917250128902680701890925756438843501799263230840220051792710711411835715309956480637197020169758533192104207302551436334237892425609812332791530425817975462799007891600948864524556241924791114193205197601475796703465573199844810229206649058069833783600979512805172061485416379557932637145094786437014209327625289744812701601091546914756379273308124092751486234611077104151822754929545412740847861630421132929854553294155486749904206191740803676128118175984510334983406030140320759429271046594902823603954311811639033806911409900709120604984677199930893539338565137744653879251168857281606074129416042310323062772688472464108415741999027480123677837872083924453791416934422694739475014450354816122504905231152813027253663638237490432150076635343061956658404718872931295404611172282391077640155187725373161552797252219071362877270254490269360040054592510207011477804775574219913773778516710380140235693936244775339084847564022381133876698466008844746914088933127305712702714360104744937908297815086141480009438777251352884615424692991560765659142280157600080536694478212993500627203401079376369802453172486682480777661237899553582842708069377332348981488038201224094645090911801901771703731683054397643309586520335820887554157994793379588158809544160153148177911663161620927822162934645539935712153403703635662677718822393585660788087425772222199127296574318941883876384371801941877233868458746934621546309197225519284595088739537900242539220958395439986467231449984395777250744018758293182296878998752422516446836973217262832050385758142670807241950263921254802870653958461188753233582321567320742572107169188782579017262326767900302498397903318341565650664822658466989818766528271511359006944931745028233944635900632112952540944397600075151619217774839721828056650380360662481853552572955852069734141982152012715197534582347245925731446038237710042570794087399394899630633164743187894666191982215790975512328120946940866439723123550582896768314504173841918675774249064562696891979944408678464776983198374590500594915030101779285652200635006169250210966893652972304017723682159131320649821387141022483411294317208167706850969824386943104894026122945719199489782501597603173549359630971623317964683947856230498694972695412734976650273788425595260534419438407970901595577845030113786161069325241967779903155486993356033559315796908942866571040022476545464947104079803497795402167137933188596714285852615541468081243101873595453962813574743066128889987140140629657144849921960884550036661208646234087325162711085408333118727667509847829792341438773043038934102882786647525669226757584780962245198775649231504490557680493471173779934769952091900201656378587749066632707847501733459615264544040399757144015192442944827465119390302245575993099954361940498051220286610002740351422378065312138837471068230950303071085476505777358763387048295728950360607704835085260405091234997497223392587040848351511091598289663768560009792266085878046969715227187013308493276008459568152941016588956318795149159415046937990775900271097918288745790017538353879793605306705715008325115224068271168825437275099444908996621123045772100735424468682791854324184426294819520064551371572805399199512196243957204220380148853781760322054860105343686602282916233238028315882077135210113199277884178298530563030294071214972834768883879496839673371867108251336844218721098539235639469213994357101234461609943080998457700541523794087378494893818765029413887380699976891186173192181640598977120769583587901454320048118766643017307017354585686261115141132241035350523937797440504275056537647576771864848507598929133592492539458992338884716571048337193076176293859495033923838711833828260688534517069516417539854562257161300142038978779590369657750952948489380168093568030739273010727917962409724336076215078773596556568031169238395106053011579039481021745789686343417929652330699403824822257275912029754309015165785674556466267906073945727215423290452697371064067622251125373199071466815109983000740976110469908432015263700091229298238841076294406795619919326395347131923930831694600179105186964393079912130255531723403694054486410273559279997872911975482187873333083366197634906198365326419939034429519752313712279917408166756733974391104054828105815250613236948821651803844615925983377242614176240771625784530045096570814929454941219247965626095986493309903228891506671239622915273336279142391510255190878860752984629968023520447067459630048851614742227375192179929327236342650449989396554267809731374452869088585426029893218198449225935764351891963287742842515524759449375147136898402220428213654608107193965853738621936202008539863479182431138871572599848175422817737240023871241200804054875123605609949894342417470060418910996054897173336836839062933189344014660559502561390453982116473111581307453753940801667977342020971750181536012884589806686455993837783470314576280406423276064374183919833013559552227188743775793296295397709366695256834911666964043416695424894740044670079813486608421221673759866687421360844264793082127530104876890011365966973813818329880675402185031159575272611691048804805137213683484661212743814899287659191132489797060526559142744560818352939987072298309490625610569661962391260753647827537513088692750908322104079369540120063678432031268758274482893236795711677569345055327049768977116287772796424525667710356004570570237733140376450410271439379673502997018619418062686870158157797878182346464073195207193236530336531248159418190828915724752722582910402225467022135307428778275015402560797335548586844373967236304470552174625324657381334041711527146900678453475947996828419926011693983452354609472940609045452077964853172255724697961124901378673427243881642055877769161722969627369736158134348089683294737753311577201622002318470078514284817909192521622923118336055792582616051061333961311631217785764485408815601364592865992074994653019649558269428367403563941950202145536496794923145137056139905388774927865839381926951791452864135222626361461376866696501899602695006194963679335367181907621720196572491912308992089010315988542667706243849616255209962345262197757464105529293361880190588585659097826070015070535794076819740178230586715766604932906433173455396292105575111253004510018263907094460571919938335321047245783512383830130768969844642929929803298586172251876802425282133706583901255472861821397851575252872901309182183820996696308398062395249556987684877977261847218163703637940002167731325369703765755855980894256686300213012798707258609369576226835729554492010534017523787230704764415780864435886375191322234623214406258751231803057674976503535914135943209904467549834026797588376766237152627163581276089306484564631660659073654007036116547248908989782201402357726517799057240754882596671870775763539690184310225316167869994714807477981560902094958812577025908674421553605141876126086572725229786250186038467477874377832806847522957544237983309056788428030361829702404679931678688990683712436484059498760906403886534897377308301898459083009659037741947273517044662175730592076995363308635128810922893458456926271454987277133078405299778333525143804254272115155361487025256301329913548978377319289474854457463606081954585670539924528258020773972129125981533262448176713221570800791476573936503360611604503872269669578509002118986342688659555681813392747659543390069779623927638646009806612685034095848970526501203307489639488477242138642528177521873004046608593194630156722250226848610210693429052076307678927916526407800929491720593744647393929025808700755018863819352812535280762154941281582602721511379266360341447855888859697044569029790790727241907609242519773166392496859292362349125659128768715376098289565520734686153766050758227253371172625717100581433491981678589681363094080130499129415385050242877691894953957546201721744831945460607571323158053709971579993739559281786761717809588744001037370338641560676104248909765307848111980618988931455512356924551944703300041352270159869309545139665893508673295289144352869109206580185863296807908535689577041903088191784852692539275596882772750865273949015380387590737019985920866703740634639366723123866624748226682332549818119768731581130854273564382763620954156762717150834247000227464920846398281977641925634354241386345182687302831051375362694210944844214354137193007841793786137672475607950394168411553029550832251043691105199800979892968785712302508708653979328592189968841474931261118189617482303211368366733573484673096628035472480373765495716594256499109726586440776294957324999160296413182532228574622545003580636889865906808589194770804575350373375611113914832184853516315866023977157674102795940191118629613781823493532569014554119717416044607171270286644306529463427481243040690086045015260287372047624327228502967287406616839576427114264226710075467261341955495649846147527030225698888094627689199489296043374159482421236721704279784195848182729770380874568007971287899055407061923302544898195072852271651538625322761730538292974354979499567940425204624945517318266794220315497557955904695122491580661947011313949550178474131212171658318196979112095730588674070412781534192795782913742266013645515000458637404220961591232804218902302248316048539612047783164393638095976560392868215651601430397034337790040117034648949003121032228104835734986077591436258166115647794548630206970098805593495771174268785365114003203619465173629133270159243601581861520091755113392470311663671882974814653498621768913897800914675974213907372152872215016483647086486111259272903256634608379387559972344674564026144101676733305189195909329316994738767756600169636357843532119934792480591167030135575573455800282148015898767414557539610100110274810075947594542357599964180697126160868900430469868958397749455100892905409403549612741368429454716477193999430693963524981904033715080713236901249376955626729126271191446424271205777552396113991458587117360249294720031146923090661243379144073830306607908107288960543165470345207729154556368349634941357106597640693007839024754868103223654820884044469294530522181622046811385180295011530636010741447435821958461400194508879284452027402550199215050488167412633193387034743400861060647480998597726865044636638124290086233327617537980681776335346094754230169853756780515442300709900251336961190467773949630779853195324318481356697089283051959473409693039043081312990504432171959935518147259903367931248997933625395971605557976549185894055978535035757279356911452900140761811873219275726157073036291914654070369614603459116471271005736673715811349177224398208019508642624870946997465725309418206440533011330709472501445775103943324372093005824872721777500693358741949518479823183793992440108876189128600097535170768949427220837427602890783554552049827268752187373830951823412102698412262925901122105703750615471482257271667953041040361979767650032555847767017751166008191535277379484347040283158079257137103383873462180322292858866362691241631979402802482155039775561750462640528603285561961370813844882706928120410907185971176214169599085561705959871078150180186783917316161872865492308902768639393027189367651776118883367701901717654941615206032838855138997859913647687626907620393820450043104146889093910018305092805601102749131937698344660002788951062630580103721838237051868176158970144002770495893341430985019146444815308025985250853310548848875757653610421813597092019354677105220971525489480447642804037998948355790425365053513063132165033375548908150755885094402774998035961573779321930594948526974975689657070562915889734150662439429229879935098116300557319589514027108840164321552173899562531536593861323043980226222183310341538949314627851518970104626022238479757109317189801316776276488552020174256787614541627944415750047778203455805514179446312715848414213167480328959569403777161112690355852592491163985336584591705937493385136687496200709967846991613521495047154615292396342200773484475152752105512092060481345619004169454847423059262782638585324777591178772479445227562534953402244584017533376379872018737246827596840558669000441737149905201589005926399618343282687419609418885472924394895804307177971016033048832621555407834263262543933904049807296329018260647156622347661184148496035391355087624380086452469341242758343747926935720690048814869766807320385561217838345763722311182006735038727012477124091761185816676678517312907592205638297539091875994021997597798484312417943505336502771152233516303872455653655935856951446101307161537159543336440672518257361804056474733141456679743590557668294991140095342367411787688487295393182572033945393478466350562716288820101528244113996564035771085651571346330610565566446739776051872666144553307761013534047690213188919769528564534337211823797251040770892559236298291265062815932869959448427781061156818956177909507190132671718805716114282377636356964703490074233148930403004009810673818156252378079208863870710502501958582340847605091457498706800350608696714369125121534840976113732231269790422062375856305770660292983856707072712961116015172314153267254098433481286089254580449794549786372094870475792145927751860853255166487041288186514072709521781671317434582210506272463899467919252495754364497073722312326397219100953019191161920190101425283165680510442230669353378660316972619072744061102407294613853797513904244965596122187319270534731525034888454058123290698491110087313373656955457291260635899417511069724031385002464727441730105701147196050893032268434962056629154735819812656679935295191195810446790565318619019468586721141336057328350924156512027649505889393240130175379065177775648267902502224891755186126038182766663098805856007519429580062403168514974308489309699335836015287569853150493274656139053013380529669382297612658065361446187014178622251453527800611877516582744754489119267027208276927966421376395741254851181025337976957453987425593360732104889676887869518972580277361262682293652122507033883804102398531169191601231349738679329737938429449334311424035383041653490339838947172737581585917568606500856990800007855837320653354584387075450118199198555715345254993554888402248881916749536140791705392467271361158850587802785684040635540038630978172949232773109813091196933836162781707787345629393131575330770300166282263807558954183972725201714256332211990298112743727419287852384561775252455515063272997932854428647411706585948389321992920001284044154109990299604559099483751840504832717989446292661684889845452904809873897700992631190708468246041840544016510433514608615825118403812549872080509658775275064699282105710739597900531616196394037217694832491265441997806681819417166344528927286028325744034254553836589468508079629460804811755636221815582018302323769601040999369140683816168699073276803729683920539280694058091947164017665451228461054736565551634325642226152164401492491084445100252795023945901689071113995237423315154157661192945179729933755476212574968959742631761669535662628396677193659108802514962842032941599960837881400131831021822403755466047165613681699322665606009252260414830509433994994058043622061863752349359106332771801551413698453587258737990097499379624928809715174135572398599316845684934204202708558077371310458352557156800872216186260225234913752156298890011049526294353699574614543018095377853778736406301761687374230367713483629464244635988210576821898199336255405511680412196100979407972540292338687131956955688827984063362346639992788518301159146485401059659794781273797611579868109357814636144040266992943823444399562689229537609417624807899245035535815627499453058265304659093786079734087546499492992232106784615247098873915048589550030050340641067630424958637220946277748697771431122247718038211456300262201755384244294362974044048886194346789877484729494194930274337834149654024273094984268988732362570934188007715888047269023496830867501547172114449642458679969192639087450300978784979151721588308286344684903533898887257716401886905015628571543370933727828541028238245408457424114328307430890761420435321119363828998535346555963857549565336518380944502180697238889780976985192054585626641212376206032398854296536301706966495575862780145636207878031773587929752069787325913868877611000973823145487086061769380649102766587794176424639463167224179560368891120585259830210741899767842414290364992975072251834106436663928345179803610421113053510279313984813589753547099531825099201126070682052931440390176990560249186025075825484447276348650252072134947516303372824867175741434624585526592138303366240268394338966463921921469895721682645104934903494323030792727765849714190211775719950523108601735266308489595763825702935707434313872798643001033820388427972619023935895036837292457674961299324344279141602506915149070082195357560074851531767138255737381824028015386489926892466829147471570549702218266948989863132213071493980932652737989377320160313565837857739363066531516206673584877169608424513453579954023833056657990676789195913045118174792661357056671701782224008344665982341027647555650741492368638582556060719733851826718952338303101905465000249763628323910896228417036769549096637141960584764850854293319585036997474799785004073969515687272403432326509321601165666005513049001451985760591598088206420803690257000317984543902100191620129989831709440592898293604256080939980833632658138765547319291474793087427487038249220648994559271052457949094817309475901255845591834384897059908611760085423546361921716863372206801249049338781901896735978939697494016742893939295034134878447850505519524270811758186536029052676154742810357681053947807777241651471216255181987419358048773691113968277253715279483320402623641092070987089801703372261477293254063027908631005717871757872802424027161214106984616233612749586853178559905288255840311388548930624665048802027824510162208417849012831556824322964251868309565983966118662271415143219250547034928615852950327304618047119097121602972465770348011064337517087860172554442912307212840714338244450784843871879775148245210699571562349543517630769070211043928689478290614038419766691212592542265884151311478615846918627388123114601972633691494189433329316905506573387714058274811782366559694807474943190964137484780440480198130321595759198355147091300766317312914631831231100368614468614006919401299345118170344519128876324000609377542971483412205916948497220515393197860598849451735759175227575263381925054880941946508510205241531298126980094478573936827917495963410945119056074272061561524504068502486506870377805721047886137311800224069743641788705654237434422674672247137043593015019125226342781097919396274709651850780567588342718944125101863059873725872036124430972971979250529957258657930109450184352324346038431066750412153195477674756779776682633433198038559085359332999123295671027009426339279746045898661018005602425146121307619543134777117201960786545450808487186310889244379886458932366544407107467407292094640856253621939472181822939085774709991858531961767054051796090684551441465650009060305170050650481837343951235172488155704384614214613601790524175867156634383253732729323915053472806754292659380211575783076311073953395505281982154426057532499477119646830167059370812248168676135724154534607468329972283070150397479695393768598863817110428210449570277174351592529041477603918897669341707990449739305883846228533375131494191459024524553567414483772783141919528159431760626841623158524728677943678563447323436446203684579922575104350021325953755679302587086126402993249550183994209119850825519773372478861569584966180071875237332880433495329013540672385881181323202921297947272549733677369668249889474198283791460424665333779260769996802385927953332691626537246309635487566835926086466462708753637605496224757626471944176930441447546283239792601728966885153457716655119579293367182081723301754198285291937880441689725855825556593221758961578467183688949142293367577327683619241997443921995785193141330276423040746275144582727954840531708587442473633566607800394503281851684517326054129406461245039780606877723064244972142427824158498034634397720725339952385608394027675021171825500065206570738672474039508240047953670505294794249214900365104556778348847626052560806942402411067345737195223493035850952735491463212553509442600454490823941684401340284104522291508442371406910357257342545798611030629215590460814760900901382742815264248573471406753310776616279315333140094630467843301875246202507043488447537067278789921143922090794740436109376040663374861464675897951433763707644593098071016523429650668671863872697089964659433542241880571950186391885907386090432825042876448585149644659507216310742386882915482960326054915828831980879344510423115266027524740975808638111256342629542800246660371076886881151247573496548161393895510508577027244107875165394696455730972131991352526031486847610048262327387599277287695366634919183127212948713010531694083658721109747524752296829100345069982998095631861273970029417031249204888541162244137974606098022512954545798552550978549313080030162718707951032396322808126306453321262759421340791142323448344577213269065658701424148076531944640374517177362673226677312492432103802526637824180773696598892281157037578165534638384860825361047989536037397695438798773976404295699898124875344545638600579788575385198728717338502315206302847886613212973047775779601232798648566289405471948652328451694342491226471229341866773969097000691903574190789471914542526766695107664095856835303405449996634530575229611262142884748519913193369333446261217187917433314390063281469501769566490973572832995806600415878194903176704174221128599602656192928815633737618226345377019897603103503776495825560926637520817013848912716379316860623301691498862208788216768732653288211743772922220562863337754743746316228129305346219863511137618707490688157400970077069510317658950042160957783925503931958851884248542490111656556127831287279058279512150493743507072844327106962292614406231943627945520876795528156927015831380392769860528489123772127814101116613914687629382498671996380682913691020435580033447009816553052314479733148190713673938065956611376810492134022719569023593397365365316390996339591394403493728942758902936979701980419358068713853869115765141918392570831128917174556099870482888746839549087800821787420275241274522213108127973680269753028037283021907936249395007260898206565750336015861974518482177300333850486337923813612754662711753893512013368884410057925243487882407977511129710662275754463715721870641553094113351337074756032767242853143576897723222571958923204033272255379026907800136558461383096246895235000117950148756754575736432037440021603584763560350783857753041699924869470317677170774538001205072735271260130626295430455824379325065599275306524475841380603281017249695170344106740650198926308572517647618564143491480351930631793737838548540597826274889431446911590540215674934361088459791514696814823213824863989593069313882416187999247978934623894743606803160781204921644104283297025939481454613565096043182546602414988251934130334191265652930583004544405687555763146593119207411914186373272718210876417742869268737289705780243410516486938973854261663519830594219584027790713176353843639659222702594817559364164805285171880405108518190071190534722339464166408358741198771364775251931860028378246038756478136214855618461667051083905916624877519680655607730479992506309303340512308653521082047533860327455300051183659937181007482789051257248321756152152044756725921472899536259498763850727233814294258152190574502974107468357725905440637366517491053613100259360205354655292160287095819766312117387339050820033303218352026379537628700998624350627539569272535257524662063354331934741806777769408107426146027432883463745430768359112445264640493857424747620866186738618618484099360218599521066692660702796206256710980396222612646097340734844260893086944583541101343492386528711207099845383430228802343860769127946320722425756302779684733718349564249388923160429715070187160523380451536765523471057990380063649874639417284636555262619580074734393969232354055323784290258546295594639171433014114346256876445798984712607588938186272353492004020054411883956332386907179354941346396886813360120660320684201921992408813050865757593767677545863371432774823108204376414642332433703024992123539566822961353671808088820236892046725622252443533652223171964671998481238998745097555361440965520180006639905237471696252552808293411441865071500287884909859322066390527484287860013217503436922023408506750305175331849090908721650531932649392543466760026664163946518128896933690348997125670073956318787616384570488433315753557272251616518427979943766483965006029163352284493638136878155068629474728575994721131736394276867930287187628564151674500499305700534546761911355629464869955007960869713593617379602151187917116875605071770790912320407371959843472089901274943567876995072530371931165443807514373326465976194894361321439272714594258885224013537912978416256556878722344296167593677910481669342308871626079438395622102309186837936346433847943760698289428744413821004717344261864101127988170407392485801051532591847811048452831971080448627464573701064883931463417543045079198743209065035808229844265595131439477239916140380465253339965086300772721411848030615924724265246345983057557649118528363765725894482506690711354847425424854938943454208769083785847375880089211888989214504833505530538870296975680579881729261913161856604819341934148558730768344470444247796417207069240652936936771634707971465988326783678422584142202853910512726302431359437082612400486344091917427986582761901201165188612562479250394252123525924996040377722504996610980308849060918573038490733392987274535593217948829304439404762647639399981684437586476637719241527377605902504447531232260616806135124295862559127340538592455903689044391528198685202342541660688122690869285142915547128591270987295989129811254928160639706679334399420397865793135387057790657459781657860003636183816799509160623265940245085893005873530301735781988512115378963968402410263646035400930152310231124218827945178798812729970378175688352996031205638753029308770453146927351899242757509351105926408733240226789494606657602795231718765991140590880467324842660119969224611826778811385855631132680571559726552923276953931486640490782342366107177005988977832590882030050250128189976222202210999255604100086614415028918405643012904539969201147144696230029339063594063186510888568803613171372988314127589004504979069394000317715346012827410509797807211853259460747088451586562375602584800154296639587377508952556972863499406860274651246918300274835496689536580597345340028074726223771738583199312056174065222668514759392321484359263286941406418784918847804068446029929488945383267304233654299671359436314856527664120589539938215356051134081829037099187345033509637654136198870395169230558598474657918501326950942983722195452101919013357695153802831646030458408343220284835688004974265748792344502336105731997352208848470303954374724447498267725938711063466022384248088262931268074458132452938724639544175239427880844079885404815090543750791410775857983879144049754154478220446139858135724409895859807873233581762438035309444489527451138423538328741920234247421248467044812365483993984563607951123360031502564542976378944645225604336190079867064843987305448077051083321141487486368109525153911289096839495763099265432432857428472521958580758931096561705245467655052289177378268286514765631808776877390483743551688556144341087678000626874175573605223141174223021379731548752501778788133186448936806382923778540183526872982885771914868093220897988404636922304694080948754002319245318269001722436595030863210314985314801936052251530555133231822727586709680027851903195954337429903652973484829405820651374875510882283397958076927375153460742108871349028066509854176222775967884100688883200204960762509513045359652179837763019185630000497442835391952795276125083583680309818722796693188061625524489487355879127779943842816841723913594896341938780782045604576975764537623105955693156605038263770463418513923941669631597049627190453569291224758510595238984905572117386310295905935015437615001385689363422078207426373804821466454851477297973631588184894652750281782702943585362996590676497172037453246831721468622688959623761148933436772334552767605649438493164197706515394610983996521194129249461047977352731420675278442321686926459482518649353405845093375052162656600328497640721330382398343894397435089704235189397000365579876633139032932993640025160040521301858851183031225995856147544464896856890144989054341645152820901395961846432124657370459964485654841705147391494020161010286276838385033829871029663829231916118197800883574065748717424466982685256612114283580474512734409884811837163346994218620035426665065439386909985970613140264358859890631668551265064638901112416955001399720473427428086362677215001435602694944379834225869841999760188340463035882464004303167388775407238938842628620587369306064253115529751306823466050480648104392410544348910649360087998924540813172102236066622975876627561271269681434615825789360364225934006511859020648847422851638786083544523600286254153453943852776441654298572049724583689227140696904809654756564618650685821142512101426151368671427618515912968183009498041083080910922623442233490655189788949483520100945762854824594018779182101633309811065385480101506390976895798053654881517066586290140317626530632705688353518936836412510538104948730254296813471038499475332582002034654355344973758845325216607060458926354542402682685432808390079047711326736569650240236047445484599552917656430212926042197291601038203509381701954148607001388552021118129181101575072595214060960826217203101504703749188975805144592940611997904284972753307107947200033921900875577351112709827043311134456833458782538887260277023499982662836082322582233184010526965249621959979330789868192236279515746860207903372431639019788468231803109665996807243562758233670324152289601921568351354701851739300123046966077123155357623551044782839061137358547128973928226397584333291302065292699229651668493153193421775403923762088206661359857596380200728270352186778977840760978249779583636225703936228778677419390924324100212371912565114512936034448298465432416369103162458409594396695669987740579999069439301751132699784676204872722870419564208146542696207582022049701456835459247036387663861759208390708571114129402176380852397482293552373298209290321591578075388221252990586139416123729667966723245679157108587536634849173695502273070800972214783818110058565651260721074157144158126060523586246850707274709525799042724638301834542923884266447589469193809592077587904104656121484815375388384735170946102738028281334881119210775395265173800835855872674319235153388229764235463386027039393762076964289748094071648721606348810139319869872959674050757937880998697296944863342192127596680025433442033591135645251045634757967853374836101349842466422010139169854843191438276319929698322463261758837418391042943823770448695309492353922815380566546454974566166606539720711780028379611826718176658781963694068380546053491536983601420855088495508359280790484460373630963916869485336511362262292375117528116876194352680838721284848929527857046907474128202857487388178173014824959421256587210677913539428760059330773912282203947804475540501298564786710102808349433437329799536484717425178310680655716506476098494702619690533134771258085806653727846351453282606096783164627239148327538391791847546809041657003693759180947451591687024257484289845276215910684529978874612942569418587052532652212395681567572350259875635377779428147522348099592395983243660396503806118520568380046246712475296544257760108235280524451106584775861505939042486216338444159415818494532897209558153365621898398361691839647882237991129974125690509589221016731008493707642042371416174977038804445335680020881782196955263650129125862442199075403194668424979542341901445391481616190175425704238845544614552503023128386886618000832612249822767080701552988282698693227613739254462412016778040441076803345475630348071117514623267283327672155133447648722083393981679671448222700220964013623237841579865382799516925147846692130854572830151117301441660686706101111320343970600393325909385705156262417857796965061098760512645675473689625158037344854351800184022144609438847620972022264027122513811136527677764445808797289559869665035744597776679197049182404719741812187442175504114142388179988526510472999364755108759089975738686823704060239226180580573670481667891872910576157210879326487443455517306889377268474490492870384068722392367299472028604702795180030727411329727910717418025506620241746997788139495213752726512955185858449948062730594957726644602105658633644788556952557445946083995700469016601679763481884928121028391965219536149764809961888057549437096732107737305372834913448375579032103393344184444840336817289214666155097519262974880020957220687018881266319631197248703683254131879397387945292578831544948900906242598745123485793373075585705830469722653203079339942534553032788702525981600057370204597984316427207965820281154338095390837418720809106499030468501605244482123290127918216984977884903001110693036578927847948873703303175629969325592415177614051477723487146351726664396553894211538690608038042201765762343286007954884195306431936635571874740130726958446640571342201030977592141312472761054897587756014379904790694479382995491866193282546580938108233646786906126031152455413459848574193980678802184526533300259337625858521207481297488076503561606116223836569554242003684569131911500475034187207299046888887038503146893993838925197500422745079539554359063679244366129452319452756256976931349510659943570604117042374197044552130406914595263634519628118980596225339000100211551621234274756793807867401376473432408394113246523371746401886105873880229614686566579842083437136450867971842647755810324580742301083422871937878969626560399016144212013983760293922172909018586678143353339215150873058619233511374503321750713180259601321167681787292007949156047888888809155640234548768901654464097678580824868250172142934761927846453180323257673507229147510364397459105698784618761758234784539651633004724480097369589201367401126293447781501491564337559136981066772183059779029322300696201992534596705495312616604435764653009197884319871089907329274063599717557015237723003389930117012078064154883027359476343015199697989115198159705267929831026212045769391184449305280429154226258979332241767682174577286803581565100729079189496741092851881715943683127042069597854395926744813225127033913642506188767897504811449690880668064546845899106327547108521081917830968460761477158701427422211222873370146038126265360143980621647060075737030009093058014639149366844464103143177671496696324788317924823442093552623157612908313403666989865179517586727732882902528982069816251750150247571286444314295447040691914657586078283030728042690794409902116028423924055785458058664678743369062932959356833491319864203503007220694079272116481559575880503759047119578759646120316829487071628559621890803730160352031378821452335218793034952581143303093580748554397820372829262282557002106512715505971133853521031488038921006270665727650926744334094500512811584297649501788736549811718745688439175575318995278873976713210695071169069509977808111653989694457739619783722579337357555309860100852395226338144807105291814284224334097746849634814690673707357057208484172663134599737873077166456610523962506698776778895789694201981153152635716546543555702695070794742843841654563557000004722641351421406425205961397998240984794453578634458686211722549416170816020588177658711156464609991934905713777294337147868869474616973618163581098004103355555440335022049668933549368687071411783227093741587116863585457748398536161916782013796614098219536316113645917366359018761798774153305616976356642969158498838191169997562544472014274869699998952531049546239689669594747149567541318513058455906309224391229015256775114710309132845761150734602226926365547126501787523828352137875598282879789879685249152517928955346661348958045106699621491743002197483429938728050430901015331458633346275986818726142189486359851019012240841000395232468662624126330532862816760516809403110458597592056995124700956299117658523949780349555006837596914451973805373944365575193262202917833347360728895328484943608026481383328547027545263311417365145015228986454002577828105755912152251724951397531560463024843119089311610602522940482773729209496068318073507917360610261385097005437441016867783376236981085963799874152943022186732241975783665792659020195231597862205082549315115560984143649998641548736751096852095710543637377371346043703285183686232831464221591149454699490920427160712925583808689531506655633164806495778370645543307186557088141776566826328036077973219219468799159725264196437520897678890700283498147448291782655428199783180354546421845952407882714094540675117468366510404663501443294723552815203577788218598436804718462237097615946313643648347136972480984495934374058160756980864970437218137464750460283969281135066986709489614162298781035596947271766907044549098324794056555486671509551029579596036491911251033446447319258485542390648124967975605383973577941877988759111541315786995607621013280600330580408334790310912273750349628693061217135929421501256270849536768166849777677635404968128407987874451616028248075966442620501491700806581853918474054959369997539314927797264324579847647568725345770238394558630602045660194835379646583083949671351278381161060027671729456406911560647650814971482755521100134340876861863896517720389815487463570405375453396663509512005586360051639540736774059123892259940261497740177913100928967701374625434074251284336788118526042702868484396056847303784630116325269980054192340104105229749582653067507950526600958752255566346694179058854221573796911865418313693329905047462634682520183038679755137799693046865425345834976409735156319347048531721913316196908341671313443833041246004994144732940499332763534651062611597868309137693540770136876642153767096180840478438905755049309902373489461594726074322980204663114488144827674005985661977589826043644139283688548412788703838806925296813113894997164931965790259617800386264732164498704984243747280685460369574839440444433407096231098719544566788452662846555446723782816293549023294521628685380038318295257374712807790439858670339838944603407295591440056151030912421142194313538984878650617271323704194763759514341698553225223648590526258647910738150487604948393997276996960175647657655990317597032395027541585655017863714823934283107464639509430164112470257267704568538387121875936699208044852990624537152819992582729817385702238693137299752594593218898098111773531897147364547597269048370150729085090588125636720734145392106203484166853438646377081987636640287224517940999176369944943473272791491526544743001566638480356522438999834976620051299416902205409310090720426864522100026503793327061305375397054989220885050099958063301840182806121976391815395714437793204525542857851095826575220169979184020680595712897977793955349097690093049495871343102642243780691937016807422937358521849514038796537167076634662922276058838486915849738492262675629539016605395892564404955606910469803422255456774165543131189263618700808867263041272760329258895175695954365577149713486051609408996458831905715828121033944650420909577444166480884599578767156657506162496471552364588851655220300600294676880026493888918465184712128060258489000360987418857397704295059922819130708838903589374348375805432161994469608412498000963916212482668225795340360367527392908855669558138912487790461543188461268571568306228528429501512263113264209217106253482454976322814045125612491610292788414588623255031974093316440822728299634271895838404900885583912196265690419578705909209634784053810936203059298770276427577439710771210273309923056135892519523258111499752177033202255280828983198081359908815207558645755220669954382393177943768242599778057471156628800061833778640561413284063477582120963520225372625658192079301716988893651493344363628766603799606603104767738529941271408656002720301252307280917569250636496354107992746148848617655285954467678095154234146669539395464500766613717339831594622395343918601142547816205718494174940770626999532484024667098871087509234472434381076091573085962542956266750718527250505379252520139251690227527492395535230896426063498013143043529669744182786801182079383705076518896257631836187243669561852792425952148078815775091544368428288773075679064778767488393136499716313422191658054588785634601754099755752669869139126170253957733237756350906774296441548882672016953802797397240327287330589493760801098824564840440677903087942085329803355598380902738247825858164235220299071870853668021956744956906261158596243101139565115624882838532680666747832743290997599604798898444627211679994592813202223243218102991572655364657556297011394062550529150970160768524081848659000597860911087059457736751106423492489391322548727131817334929674121456910661179932642844374511031812357440402216100785841276858672957051367840357843289614008735391349872956937828448711839840080233770785908405293650635075826656948151200960234182236632043063128045804665432980990414850263203787217295316396169048269025371066937280752637230937339969626640760622106374065335142010454422517222176619770902434116566181704305457225434942828690351023096363536568325248823425554303799308158937522611590724881579212878034450247584392690563960108281582202154349718813495177321815387920182594344187293798269658755329078909644306570486078017207243513542190848745783426433995503268463977511751648619912561622034688266686220084700805405948095219125565773874592228710101061981760435100660783334443842489114347136030769264320498604367336605127416525744453756633626918988792603748072831826960051248424555803854540526426951814135257537148206090902914141464433606285533334195326671970600680636211110011378782373931851787761243548238030226772942219525017795031729619032329250093973367634586117429249814853246243797957585671135435133984369288188580359557577101793302119951677108547173458329100492215429282045471302906128784916773336525059455037881073381881057684218942386347429379905350065046176755896866876010777552137554165567103603521815183638483472772483547779352840151182182941416644240523674033790413135717032903524024432583837503042374161547618867592146652325449627561501701842209248565381601548766194839142924951657150010864761869628066235422404277406622361697643926903458989833791558232447383855334996624822140535700338444351591201026736801619280629347392063820602461870070291109449661273719286711717186488299839933029154885348825718271712367243381027835789726831874731101447940146267611158142790617763580931883867362597138663859387226484539370306840295979483644694704466044110280475809834530354091746343238350075230761051670248555149574174506052975303692579620233411412319550858271822076796402224669945528665725671770639347406754067866127678963408366643623668835815454625962267841265292128978592729121799050258676487019240572694652569893212697932609111745917556510376265681992256432788103174984646016648251821949434270363950947837347404181606044332826984489544704784627251586929868734061415807321921779645439820151029779117390759073094994810486341829962310693347783859872947591959408021318497562418861276030585472291893562009495857893937761368572720905305773554218756994071904492364102648503437467575227160836624153584708292299659588644263173252108907653436968411335349337071158919007419328426002040933474667903250670223979630282176360258018025796025384199031592499222603052519672407285450856503383951377640302465836099693099563262063297204064995089309759901433771713263421502779488862767355300313803549259471190619942048864912169966855282676289119700801720664913858465881014580513351987828553657336971492394351055428761207757891669778063543952568006888894634880574812687197209072823165120737517629506465561839158165187301264962090804054286915189375740892894539988597972127526912240071293454903903880881290214101775060931221119576998784332236849413986054784899902992420909253506527858790769095417429757263834325113064083988419639177539814934303403657390164156511890973860570467918984281657142077834669438892190244875705255336231491973365881249913456009477177348995732735862443987283807572059163169454222546592506049637731785519711600293843736945998491730806371686588240820586993441460070726293037989066808125570233845984999416344639014546202759907046774789511650065274597282165857772589206763342355580972172894815456851209327970211804354037944642576630919323820061378384544476136908774170113739751213983151647159971168282230920976180116276224025328612417170717360354216259509778573969986339954173392396072344496521891526540042218352216134301270129933144592627331010605105401068322826385565694596094701574603428444871470459703984525530924319386164375987097969060671881145568545309064304334807190076121129888551765071492632863933565845127799169761635359300222750996629855892299072273770760302783253433277225370100615809212205485822892873251489174435126595161468662872130603566598489557713575382368754308925384662217911858994009126278804256119573053659517281174519027410684674352016709535403030899462329941866588399513528069345799475768029881018835190444967753830424988289264785475390631762282795210976434903285258039182629939880905045029788851131811892052936992419179237945437545746861945597933671125104367008134902680182650861991531154943224446944507634902481526769198520654254439840485675807952786623115455445145294408534401647152948148954829750890702400833907658136339008999086041889216183980708979389797628008993967345516715802111925313114695130734744749565090789914630368447117894701959841371989620719409528194382701130567923166260247413725061483079727275848526371162417750419601222884325046250571466475693007800477027876847184036805905061825598728565866737821795627197412075577075629523099239137192797270585814351593154285616642045523266351305182374677852434379242209478399152662225379073019779217952353845342132792814537591824180382616918427335668372682804530752525355650163351537926382442859324782147774842124962105669247220288612153194710505154058174585311249267033766644371537191323793906581467907476044015102158228965411289864227896526500295538650453376649261757607769217535256143582651995941871183398034708040164821492953725657418936552305672551075059362589761943220529599372965377336643567171696990958496194119731420749296304358247973918828955311445517811558845049550420964540283149372778842265163555029607188780505744326802737369311500919775878479510295640492906608334358509503590013890533804057582649916402990048398661815626080632391145235253432247264182398680560864535767531530381927746999956013804432665506931979883441417883084888179357860120693753823519613943603029236115498084468550682145063323781579027609675044949029950859723949010903281723182765215988710085008705641534418317517459821938753076120002214917357525060901170829408033413090886414552430939325595325012941954690279165046051751863896241835353082582095670355206037073151426115758765413478384522250105480588478587014183798643584297450347278108272019384504292977454254621796141898276926467890506316466490505696011154307487524954284830812974909547290536363478746761871479741595549688750243950878573166615235531167632990750610719455391874933034036874372083889616106130659819331932688211111837841661868257549818782745562052648295385084729047992082661727324019040373593034419670618404480896557610766811688575711235183279480818751563200270391342409190753373920455816952191365057969578772516317182492614184935027608335864578638500737650302374809413700565558854849427785880616444613483210447042683414218195456063538542054077336656776005491417636207685640079412213727058552107376152453787215440434996885909172917192903903649039161318152011219508575194331161720935661884070704858733448764028108595121375737460924491924725668588545983232235082690533817703604854227295274109368196625036993858604186880584461780123301609333839914909262753783498793951895252392990380291589244519248506866778406212651053502039931027075175778413663382176826584502368031912547274240349638865367987749047840989735522377560335152478438947245862065712692671598642177924402615208488473672018640787801293998011812007387191343072258935732917069177571975703475193031668394255897548840403540320529531366151635313875668709650145570240640029796071794365803599684160032460316904797256670579822234513530757993207217618832625931612489173112666613331940290336551628803540391213552187478356023863251861664294043656696489719047437908687340813006515312925323090416585224927813729554265562245536991139715565501066027744047229441729993599388814577654139434034836555938968490955119700847642690817791978948306273026906970052024179208084212997484260795755792517265487006604505579132139896840555055299279200571232436205669805766137524902371209897810231682185016427396594260631935771906364691936896032107878051261149705611525226799197721996781984241100060221924966976498879865011395265957253474817799651641838783722007289815829829121405381709603420731228576126608904279173485043863859045790398742862236240711768850078338637735342595767362543652801104569099879443502271708751868549490486631113974791458017723176040358856863945855731647775844595314349956195975488774165628093362748229005304418420373623416740226294606502280757246669121946037989439242115780000794928503033364986905929727170327063049751710031809540324421747319162818564418255008419498012201682274197079348472673250974359154072650683606175009096346759153928202015534781860028782956797362873400101768331837059550708214878562838376681766797116096023097016321893536167471077329632900715050715205655904087793541723568509500646038502489172393586034339975719582205603458859188321985110674112735423845127007766526175403466528721932750526061678272907202272440978607601831933246652973922696389235308294425251595711763760090121298528875012824323978009618265375824792911042378194048093981100419870457734837200170337804966177151212601175778962551362623598737810005136539661830057082601332087804257349260569335503053346081600724169045343257919938115597924266936687815786248347518468559655369737002811823257775957049058921938275696054080948457125185761639984856847958270999347339009946469111490979998859282022387011189536138351579716080196882530624642666464713965682392004748925592957320139516249076605602723289155890382852821517330399927586188830293282815400442693776549019433207665093000989719501875565970438900278205253792624791409837360047881199150156035612955971703473188873943997726290963889195132277927273700630254983392077294962202635890040515827977814145541188280294990124288843931951356923425573549052713990431387041368617767802722499034245758024442142667856924559769100079540155704563896951317352474632746610279981984623066942906045408800774883355112919292405398833847515167767172896149822786579160446473572320432989340355756207226911954761370557234799453788734379857034030680204711569914246692286220084462151468240403297271874805490721250199484871465179154446926066333496650598390761915330244730436786673440698564298632985701229112697125666113098698567106715702324768574277846468139276102036629276738362284503568494004355408189764158357738974010069186902086025064252299957054331406839556890691045745922175255861265678674603001288146093676694708349260623628773724972637005147313580793117120447399623105659760223405064417788735211708436010708601347604678270034189912266881550187669467322081248880395811665763549698567521370289181517266238133733404866706577374480256669191792954761689261575999957040424088639397451704501000959060498962851735699327129158366338508770566078614765787052736793531627272388329094917620039721943785025040453464488218758454469089718832941657917549175977412744953932345096888335912627261896961391934945430825307671305386509059811252894025766791708747827490567767663317904160239290635025604690002332267832914087512411701672010602624541309214027636459864090067080330750709181994724664064578466638973496447252326682313099404780827254965123840114207637439235090098192361414798526958037713394498514758451931220152867408176719489581681492572230168272486233450019218369812985243375390074760404103219490383057632918122719759777683020730619646808169728614003831665528303966721025518863231163826829015669175928536965993355766967044126059786618161975310608963367057642892152096250966317242425049724131242237090172540168583449190596166194437044140536544400969340261588719118568503512777020135559757501371736506231974939475300716513219404953581855802624460631242861078679803201173744398124155660932839571643115936972947446885984765722598406111243037549380725876500215632477231672599248437193307027974647061126914532576738645122747659546489191228422337960871539477947229685523066955250470747277836658631445942633601608662222029559987121237874895537745558157342773774339458333727563812058361680701968004869777897255661038313360395809439848919157378633665996951331384010519036115505254465606822375600535982128119090825847356496778816299928160145206869202683152041808623619584351026240037893350952079746735978480775938239444937602919448845331449102120554105914115374435971660824892137544175288030890304835815090023867242959227757804561929495535151185696689814486135820759164634191100644202795427807805783221205472724455281923848861151310630230143466396290073843970067485071647178928998671075805240045884831332940726599177237410944023231684823928392871907582753224522129308942007980371012738864455415028790613201717821541054530768678829640111354273994677971121769304100138173237128083219055612373489017702550947656119492895772986116495038126515697197116691662141706898927179650272926512613538407103801455132869305757282366663137767758267513698750443764735543284509639779589483162127745512892016030512959800237035119278026923838942575308257729721852655309205817037323599613991634450440073843778526633558237397691109150137605104372373290587077315982452251348795144803596349150885367427447884930825598151777953603822690138876660313694955814126118549688425770424060649186403730064008505249037402324703763486385121983109740587732740343404679990899950048411840486691078804893496071451524416800800799635717666488500088682517487935869825389182720256046226385911231080766512366586655130742999323841805450048324233561309509835485176312677204901555938988927439653249908609914933842114321679292993996115014323724967007180813952763578615815491449911864845005099188129037292756150991289591352950282120566569661416818628076410121218510150816525627723181430167705780848942572116056052845037182303732347917861497072195574775307611426622543942451145233144186968228991239731894377938844242650216659491455086617291789294856038031062210597476705853391494254119939018449171525493713374821871850624453378915122648243390314296453390815054847977202168204898007592662190824060567047933735973986811820738400034786134145608305693085109842550925403428200636287428512182030913733127807050515946223732045037190464251158146387946820812897427399053057187958024542345930262854515430424473002637330837886576541987453759468212689464535052880053268366765010132541172973599594060244534418535677294045636302411369635011264740036960669582291042848351648809321469274601818228294417499957809825673724573798621469414378109900236051559805793373714455871160947994317006378016723602690226957631508431633444003371994479133681034984709759269108014742220105996892727108100516735039134676766973207494791109717486419138781515655834052447137531168507473360781536698504636209466196467741733857845777897616216584279130753899661028750132033608798438859301873704343168865383869249104366952475968162217327314534309455293882758385822084244235406006152391257443362203304239242401187623643252634799907350878141070867136562715468185554349472992386020468288857456929618257447766917347502043347735581826765403637927880684581242911606500558223209004804685108598727552476775541938305307911550583650069773795066163051878182109604704785335978410239005368354574046172424120128456007644800126427134718089365858037274721859324486206413248152165684054848610335792614344592364669256771793082899341269213771121324036317867879150386984890606110789612966350277242117622788769652792765983405304814898526562075073928516595580041512412118396359062095996007961376241438716477419476044420662246747960877018846305606877558724926658460730181992249814342577240479239712672231408047990047673904842641496124121265280735445100337096071460514762960528769214003902231563545326984035191572988627836547653544804475353394277356566076538299035382120683719738294997243289550299230726422509875015668530883023174327956695493215329414548765348329983667835829457393546605739165145849843923435061757493743407514441158573759796500259088455937286545313301419455316026496995849336393687927700654609296851863647647482475203620576086517831702944253885940009311322531804202570952041286978386534847624179829150259668210794541541854526974319147820058527508435302074185854348757373509892418830339859248319130799523894783591118946756640029546842341428782969943948311337112087714428194599007450229815527055635993212625056734408978157176224488869073548570016164061342082627405516262815839382447806864664573314518683780409765842685144273511305650107081765209907169780108408126763660491868950597224037182482908866107373786878015457713077857432430607644747488059710348894152033525692736267534945067586979525548178405607751595727852560693629795331718690529692544180048606037246551557664108670085289661619759595797765090340285132861694999427594671403613816094350902275894408064082475963621579482323747422007973375454619025056771318039598363735819712712351428305594635942607742113467334076365741104919296204187086280022489484253127189683915715060887181174803278411728869923213236631155757143626394204863779708045221480996428587280901464123283086376129530291227977043511126367085388100895739441540128115226447207018561156112121276632214328097656987726995613639145538586566904816108646456205866916899544504666643069568367865732432856674654098588382680326553043159162928190154776256873547958445624359403474277501773906803815089094255933891859329415659298763281855163331696309539984777219169994233367316605003027699361680490128293518746425222101394843789277047007595231500262076188452286931730593567207895227732184185531711739859088111432912621620946154201240601291220575973952438363633899801756946699775163777050643619606378509482932465600439343254958260128565595650855374036979283600438329932151356403806177613090934056642696426572377981331577725405554301813941847932347252893979575293599243225407905451190505341371110521409941654591255376609366386976254880478671628406160480948569117597714163849317589567883621216640904984020335622435470064490590316600170922057881840707391426138869328089967735572189538172065769572617497531557966922103155456664773558701966470639838601645766079393641160029444222790214630402295249749598556115246702462153584391700602153344580020121059853271823240525894984973861534248417359998465021579058718077194358617921830403634894538420676110716659356959790744022030564993212852475753216552481790592577434369710343769424694987422580855081986980040930867344281834722559877441125511533925373077102380156303480618532190068615348518987825707115342396180544437805854788016420071244414716079000547942451620035908951429548912670187793685583739243394875313132139383057981831054888246155120143349795207466697721218213308516764363489691359349166201380116673132809340879111997860314501704843734201646533799638173728239028349882223616930725978225825527246966795331012723154640093599733391287693735702968967675612775146639396625701020818945704481699740275742549931172950643591031272072862660582203856014331755136403618060097906992444906780310630968900437056635398806506793198222446930357467624527230135162154762930424136416848167323815825712294096539552562881473750251273814432037651309598494274859499296055836330251487874581061456588668505363819672563998630126295605421090265326793103216823520196528322146058075354300150662307998739268306611625232451013255254858493590462578272587549605584842547045743015168583696767339312815293541808028800278981838722484289048753510532067313391467014556562490611749548073416480434729586989052830351228483494628952288274325712679529732057775857200301955585136314844440139221038839761592519390765295262054477445289893035496780608110755115236686850964127508739268126876906543097729753197736693435528418350811620343511195662333155054831656212524875289632271909445883522011331775632182435662282805622136279528224021305378696497322793708113497045858633240418643531178273255428266747543697220202034335285802741076055157622635869883296579404445638975020538382247695441514388291073302991910687836335865707916512251459632019162776006810697011446400678157233610648799101104970083923235930876126565401201096212009945699916866099345690976434795208178560807981803324742051973578621882884075133204030282364404421520663524732445449847828841322905410127961241762654503840932750348062115198499647856351830855967041528663902549833437002372441804654266182563246112299758944107849435613861034306147400160386048518129203693334782099176526010735697975217970332165991945217654777686892015128626318923930081015497691181345556968125372926964425959310904883903433708630971679819717889475527759277760559134048354428197711552038002292679305638077896876813350625733568429139545646468446006038842805194630233219244668152454010380714352289674346703563828304814881563950838770104443370141566986028774616709466371428546828300545832030813245998523797460272169966580437995432778128650087699922111093227043083514378249750281132275593691515375720383708772888693743824842987319378982297796402047683052511496041953402742849868463914428925388385288056973319290573765560805307991393311050697909749764381470376477140163313476609219072469867274615086922991682195269141035593332445922089724549044269383532746372693391471481082279957483696588328897415475220648732221491464410295798127105321026794193875089206522083658095759415769021982196139658634533249205839314519432822932199282332335332424244483987072088043087075218231191449999983802822657829441258759080616325177111024496535394143052573794812039942253783848074856181878878170328714632466707011181399255454783418639756217914068409068775212314512071231639535198784389083603612167321825353855843018407851039884790907496928903239158863912756238849698047103275324329664734599666393429739642258342815887389672282836223099930706620060123427732565533791645290848777756953324594909594982060594845034690606277190811874800667061654998321209720287892121057846962898319033145263311787113012675321192604532597557996560281257308655259172720210167625337540554122515951058921315042932746403386024454007100075085924437305456416813211996903225877618136484390404172987061955891037172757742382150792347865786131517279458392247627336153043955631030144939037897830671355268602834647629077388973543526691912679899015515561594777617373408095683247023808383117726712099359058379817139664138783902539135247915762443373733151600570876348347274584644379459311086518658615202987459600674183185134897587415912296836413420123716937257153328081429684551421443997505030626846580194828716879876082369750111109717873708680369950507520209881231735537267257851597263112010480826592700356998903377652171941701449984043564841322848462043238033685430925880643961210899728474193688220419640573056998550713904158858966758699444948850650297326500668252910676956006946385850660355925015931095372244581552083571138556061616496185852312370913964628314254156135282272781771791951791281794929247301558976692438349939469593142379658988114298741279581313770120558959671469214950990179391994088201056345789496718531208806448689351981349758375202527211391728724005260612440196837883588213698001846928593947727612466917478451493441593747716766553826600485734511907387196283849742761432957878739023513687401880556356761051089038093276188674358811411455370884994805209902357735463768217047490370689544444634349364330984544464564552915206241883959230029722574032074856251826930666221050082946047606536526016688239730647227234080027175724218238602692950188383712492724909597921826027585144595710300439297474531815540478073751396234276310375249083994024066783533851630754797444541371242470378279221090612893854272565011810579813455077979307196605348378998386904362802001324869082302554701813250345739769218059537694722013944277147117765630775593938223528671998600846259042546743279934425877038784704009502704530582217054141438800133477843528527262314264290881776086363717284051049637349363892262692895116059592648641822981850209348068999599321658705405651100743340756912107227785708255922253604817848835296622655271915764545792186963377480095985494259094266763567653530721103839501932885137904138671980041335638721304862313290891636456477254987922797525735082176334776777595167320828681450699055649437692062343416470908114091596119927406334361986411663908045798368791621340058056581227312930855314533495629907762832872411096042885513075235986207858225022620590171836578548957553103381600451929922275151139781694064509988323276726812870654622933721353577263586206071690056220768137262538008203105375890445585615304355355527530320690223867873221002752462717811436231763062931104718259593522331737979746570705189618854232691769706149615612776484342775474831769407187349928862035714219032132778983064578391517960588054812361139707036123822861923518219349868825470210084294366151512363670544164418446502505575599944951431876186315891179088858123231820316292284080741599801642908232645890294976959539991181920382820443008677212346997176776552895497999313704423535498732797736077859639877974151889054090324769319314875821078831177211165383021199272527537751824500767983997837579899592171232876281519160952743188432926424236352700214453913716225856625856315733570387759477603344925564167051742716379296355589056619334220069278600342971352343178284359089715359557792125207485495570439090150307996565728843745964959080502036373561108543246473224710035298247309649729790626262637226019818316407392420062405790939500039960459954513655816208823048876130005009858713286625628478918343385515400471200284280998553748353970087600787782315914399362211219160657377072689258676562066174316972664024373040636128491383417495434887928280468937945829036465085480521215753408214594475363052115893787768214254161455023080898842714850504310685344914646359756954506106679364488378205772389779870113060300573810814995499701197747666663118535326235634926500368311736017019432987036003867512843535546868836158816955569691543941748484768136398907016174828548796546374552998147212020852342304581970570382087285270628393535865497589077006208195669085519449307671488659542716946850169888250873803045313591073328862033917293104944359228399388055596669118127268125490311155332951912604166065917934679556078375272531805827310419879465670440832347775646082540184240156228472082558779077578635554934113948196986502966333857934724846102309205309006087020749962787934867663155451804666887578346085649168408135421152809703998931658696821673181819137617596091454054256581202750162584440906830534646189787694432059218143299647210076398159924434873852686259736305305077876785194757265498660073642060521215458828641820160150056841164513912736560391447681400660353960993551562004852306824882035124381117914704855458491332485896030626099697670445664957909036664684335290508115338892593302401297436556104382282043279591283486782792440967684718529935662503403386497527346777188113483974973960355054593440711655573701572685736118893927218208003861527234536985012238484352435771679825126323920421234252338643696183430812653327007908941899617359906502088618999573781827412266400582378533220377256839194813898519323657044757284358347068210165958522859676928063533714603181940455528440970218537469057981191360292023371040891051704044376981947592764274413671741188459320845156476750570650527878745336083311300727989901066680990972107745771615536313668645107340098067693598322868606589706598980294619152812273755722299072551293784306435361375420143447511921770826729043129919490761314659170360728195098900627535399839126114271757437004989426115525799141077405707047831378420198810935293943059611670594847780753483419725551882165356560842907919358156635268951905431498758292076752379349929413427752731791467209842847905966488166335468521820050465160199205640030276315596399757366025711323258446373826265245665495637851128409575780391778747735128526755322304864208733395464622544213170772239230369877035677601057699456079197679519798151187324146651542737336248159043588053230071248277865634780454114012476171107711126668585191435527360871382524191331313257172112819870605894721489834944517173128527650348748616876808628872980901016602565030799733975247649269045865294400620818203120861654605938767260023532737278971175110469387774329562494874509772947006584757891344648759458297361058189053201089890712397739008688560998486562599708693979154365055253573809773168489426685373662756222690937772888292458530084796745257509412416497454718156903614757028336289541999365294419389436850591053787674514873522155517083532201038344343161901232952534341886877089203076341907740898157887678336608360464096697733181042273625215840594958539801511166660392958411368203438511656058294986832899713242336260040006404241439247961480365867283850489104720371079204076542238814029845530629274932275255908465590944065123210509637388870096105640371801969093478383813064601788527898270592325072672072995259812074727738865831890768704567722814406686781489169155900939903523821498814756176617046743373809791537226726234248436660986132342117920471227547987346603205549833315683700912558701839361903999343017400243937982216360009934336100493014552283343944042942536014674946316332941068133357797270919938053610667311685454119690406629639241036491257907517495017616369011660700381361930942076037511692900035242110241950125960875511295351050727455666844064467503667894178644025391574802840462794132719149477615265935487496247491692958010981266876787057778294228806277636956508415328880539640572840882408033865052268500911795219918006430130498644548541342022595293384672069361254093171721091132491111245177421065167331388630664844590722457075028726737034958325303307308527528535641272333196771581215451891136203284242119173879978643022862939515881887452299106309906748320503512076023330192785136804443122170650139906021881579221094286942314445634876752212848224059748091060944590758293581334615197629102680159779113242350304099803519605425003071326308313419150387808388564430402854620925544077702054163782973457279260660083020772979370622471555656168750649512259331945204286704776513333063419681054956655188365842225244986086345431625064232153035594888677596255040502879075996253282844543988932671648266357282382259834798235382401067819358656517494669647232526756450114807598759900736922099847849834296297492021317958795181263553063941113133390939119029801276654099570128031535294905159581700273996123530380426780942897845330766220485985033941214492843564163437612570546967147798582358291371338145778097397492156554671594565245871709588474984667675259406535509813526764577676695136001724567287254128963718019528574582153379714482988463379615867493563391581594576916974409983425876661039480482839327344963281665079688366592008158747965790360759728887232879191358033765658872211466501200274134097670368597447920990691806476617959379627519319948716422652206529636050325075435020396669763454541364886630546603636947390197082132682941058277945482368593779439325245930326482187542723905134910424211817213256736319515122612012383392997760724434187765921174553327713727731890984937715225350703218045303780091716820758062236943361292723507181911000176362260038236339488373612805468115536761489594814162684402860867571137040762073736622108934465545789514410628826337297418273488283074766095125611876722521717947341827004561881563290009835318765051731435525709433705755319874077752788647123421884773240884851453011867371823249516216680370108750428606386332905652597901017505554441739656723443641031994045421234905060431021336847420689629034146491900125348715622547432579942396060773758431119796472597774450951364143242586571605688075375882896076200775705106969460732225903524418819376109814645113823737864876915810871877066064036240526768692856965633729515845001954162311668627663839075334873928622064481530173867906192242771344094612070049120178022318766717065043030533221413148461335498468282879490970964861204907955007901068828603649521820924728536107548356132155731125302118085199476538755932162401782000535033254187112219464006495193878435688270972666359608672873830341497235457062323387870353462370412541253058864883138430765714743771872108131128536297858566568061125754721937999921508974636046062945915924968150161072552844029184932960706302994559771091295836001695593883571566333486399801782705401189876467113480342549609935082511202016228167019303483738090125763795860602168292787596644358964077668524746818178220434165896058899540278635347635093476160993027245540200824288026524585019688888762428779044419191900002593206028492565260297652269855522554881903977040451657700661211509853405786996980566276508260937019419615845208306477692146730794002754603159433422949517863522785133985800889348202968374758825501788185321615616776710359632367533617250631633423784074288213945421480720612948838668074649117187517955591919226012617714124461793608962918337595619034348269689427233000243190005843771499673558565412213459908570741133192363412081698702801361320783811086960107625156217747216049498243386212416691368944652808429246920884925246934184409565677310390563978499640195285556836701552252431618353823804737785254797872917781642064696291401430975774223655555774975520316803759615826920911905166314501573358541004236555860692354471069854781582293437874187281905683603398383403396964843700338075192088124755981078191606417969197267928974917571209309634189043310862002960953799820709270375523033440363773822797115328405140659179346970850225588237309541534036168985656957203857473079209663062587381794074280695675639151435405088740390503416801476143128121609670905536924597935059012289356579491084938867413109283593830889588426907583502045474769113670975557389864038032887562983046458733074125492510523172905769634424827300940007891956562892918318405433827969452935342976483987652421165216252075336060023527826683385693387932798241527577942851599221971270432850235059054928089357969845758573944903982239882706938001954067464111326823244123531093108899793062830327349640802571860058058542753600451604354373316118366090579917311839987450613783609051512699941374368963771287083257599501262162016923129285560946232366627465607196562934425059021815388608792470314734671917080744631228409190349846660775106233911256160088872844421019443065020003400150965714432372972063151204421986511217021570931258127645704102824266741561932848513966002675158969261503226367664745129521837522546814952558883067328292596511582194207412663669357691041230510065042600781133170932965564749451113165733766942969026342813474213903948473321995454636912146809554697975147416381433761918898225587285396309694739179851230443712596369648894427248291070452326575138926525759782591967521325708661741545156546969168333882507102144095276481256201771398459402948152015565613500852148327074470487617184721063792853003109992812772703701367731769149361688226424221555961378257147024624335067493970347896120922839732549510506965089426253942115056981602524938798214449279614425188321302624126861375102210802509132944334526056365818999406846673093512815227713538662012776125059830245040999238272884492415435574660414201346836526280814555094677074602096673957161786183777020885981895032757233976967889395452436628415163318444262703936604165948288904586247857207318341034025772622804895862159161700178001838237908278323122113233522305618702840693172326693393004684133811165583877910949236977536841491852308450717074285947547968046746790630917503428010352165093084159031608136587701538696581196016942588227460985385022954747163686170133029377069266095101017540002294800895950601264843006153144059014147906569915392642145249004806880454983381486287279288525036289226897680105314878403666814925501647179700939419565024008639308202997126864831347112172168222277970571544070148513509158705148665306001996657353175060612328211288392389400089243843789831444580475992979492418920629465295052717908676263493943410941171389747166097124894084884657993887054641043904151687162477586389295660115365016976946930273476226101266115008047328231987564374161714896447994707101511634493664520640695652544812205100382471056817285797099004602661660640067480925603812911601575905920915222287640993076298292170222603386952188728202786084070071911684268398055781230189903539597476150067845553264498893926318622475923834479879623881600964491260276367873897907288940551084045189733347493159642283360806025878884149500337140858067527317885926162000766941937581582647151610007799699220933024068016799983111329056009882947389794889368175662564629668322308659548093452321748665930992398947377599959030518989979927178205195070842655147993990928190660778900109268849420533876404763676724854054993082228832385491827033516192717766837346333699198622659815232051837721055924463120231761491371789366683760821008868294877875149663338659165385420329721512197241233390717668492075766962391715594949124825000816878773500031761495505808275989543179232355681651758813451840636776411920750783252151948491446828981109386918701842756006479860236644784520436097406807236408878027631500505694389483919523983110419220179952430309046928458747217885598181500369570682600407663789293507065783310251518650317201378217037390631941122711700312868061035390872352007373749752144311852367565171308702283874896134763030660026200068709790803800071305394254695860119292767392279523566484460244779559706312323971563411780414737583751463752409432004443846738100159610792671056512206495170776768054758163966680002078552980178270297550816752474386347163617423138202902652632422791916675583067826145784931247299611461462597772044391798944781262180558120338939112648883482717253374205107129497255945304800340211896612424645176848496613868119560089710805248939965353343320681215274159249242227205811265130024155867544902015877812196015321421089043073478260982463250417978832812299138733196403543711641914000854897550529076756302734002073403031521131191582723499566290987433633452213836067272279298641317808088165218587111896256558748134453115110986664422688463218565615602865678704478174647009517958493529280265963283531287127809072250589020899412850947421358120026494965257280197646833653293778476357594401950658412565507404427367608041503622555601361902713258330149088063090508357153119542822110431176521521505671770850343017016202242228592714733015682088950791837396558361239317011568799896866295770513251053375269005843249104763539790402742375147140026727969666147611228217005717229847607068600215366429543143570355600721974460750362084035662862123980797297431413786684336102736696889209362186115179687325412092235307193152571902877579219065524510305415254727717646762518189690565707881353202302819755253844801109981118526314324801223805851465987492227747599446901500207927866489130101247910570468577341872418625969360678605452368227020023114113862387302771373910774016897818062236020337875655065259296792059943627092913702755141681023204371103408699801305753979303776945687951774817075171490616249922894584233300134884835791807232678232165567834868136044052262653708441778171155372882586356003259501221708377366749505698027830481028510625938370809084442492911312727841749571494702978151834653610876696880918465529483980298701449968656621704528832394849882681018821485472062061448613961743092771790580110690792041489688924233380985647708641042797797138610990102582511833639350045888043298980115716851280346489891625363550848449908042448692741878854594514237310539156663370234107827592116539115301424240210163195303194535579831238296302676522938267761761641729405468054121942051229471015572980682854386486058963540150778785041090721289749499164373477791836371956325754919808907848540156252133244547299356069444214904575097905682698608487022473765048775610482674906498072069329850681876828301375088006560788761078970731727087597617757638541827549962041514653069563751261009834770580588831907839122567930048490189208703674875261226625494031442442966195656597002997278098468896920876442969742068636041746953020571714509898064483618893146195365557860143109287422168081439910706101372336295738310160352033516534399929356196081200397461570186612813679147060650816806325810562233676752568749777367251972360262258950712301303848147661878285925748640831470426570215850164772098458637758909367362909356199017061872142958563374770517569477152313854317144543589157250894567719605062374659200278517838903985711108737412874269324512987129727732908363105040022522039784391443677898813696726427005807167413968912112769288643767340638682209002677097849844056527143844983539348145041928429964355662999138451774112506825209840548131015414338643368264838717223544737045909574458604240019872539770495017863680901589505379799988398090113759899229114431187204283980559476893742019801142751888947703508199785001597629384199934197240011284711578631441419390678084886943271661323143837877608066602121494821186751824053788012199528937550134697792621877965804050041470010706462841356247790723519828196553418882466615772643438680666842518265296893587526041477755244741016388760382264548561725126947128044802847362762374197351592824390358804475520194248177624736892709711669010197070093670665630756292732868927323483404325834094030143296623835724630792919086766621511119508173418318144016245961895708915563285499003962010207869942642729103775788266134793315093620191079035354901679368056816073859402369330339865728599803821629515379974803359737909144774895595823862624366646157072298617851396628237899905914277806254933045073921292424396949688772297453160642841931240331826587694154446779339052234130775554397194404617964238125007835764358176498881661365524359830409920602015863795562104038779839286960907741674522209535684532205717315461431819514271875059646552686346323699821729026691495768744576207581191661889207655777117461397465779282543293509518525698049382140106010763989163473259420380845183519785270335887084126550310107877398371750506777157641578425414969050326034156042088782847314291812867463354660084991427060494114545294511474922936512342504995097313106082745326726629536599128059602379993449747144390286236200690316784587863358064626023353268860200213339163690017148307758570051942192640109740611060354274950835893398286783399471516422586090280636638232420804146956066399282570667401208013789127424493650042967121455822098057965953735976997249788256535529744664037248001369473409128924954342395559329996178369881579437887046492827746573196255341496182084032211258714266132502964164611291726925742147452984715733873167384029570891660842247823491592127202584384815414906667099272150806345174178678531186228143206199119450123331945734374910165531494322987739460972258273891951546436957877927060432903665243981398668895760478291004272472900771296686150368177453321675456755524546850158434213974009759294115507662860544741568784979669215121975335487521493270190733305039569906557602103596746978267654948041632208109274635428780017539481170055123290248309991490556776103599711421636510626828696541631784509411462948439968395640940244317482992645200666540985550661234085860494908259272746163977048059129739296318594817412624995892380110138787729708861124055509051631214399158150012767425482521608624959603923271707847055631933139286772848155434126627613524388450745259048719766370037062875872101177457223503539828931307560924574756219662462979259438501180544546780972045964592720240978025126748159268424374236351244832427480687504309909466657309023779026001859070665106742504020174154925527994845078482566517690686266326640605773702699598896833575708129489906678082612878888017410466114256898297244453993860801786318224451159255011898137445452928954570280960733331866736595164120444305981785784350419781513300656475839888631150836515613082402142815658358858163080447950215468557339341654823859855567403598617561464949468680472442968935850901980857603349988268291563906857395693779059210694999745045750658154541680050803913065683073331627651914700484951244738088546038676871769046785656844314541913954767905497131726975443785079318656394942873351114009259465187149286300161772792483411266063017105735756106156602525991380890721226273146048775273562793443017001737534109464559350041468400135690956936857412345554344699705832888397990791916118031882583391799909996847766943452602990098744599228520120963391636187631536657627941803523368585398234422867833592505457584540175067760964710261433842169123014361092308109947814630001363969755004726512678053151553515337843433968882490601189937596605105744690724062318198223837794758033726988008515250146734570725157046117759846825754644106810592695173522405768333813940776900032694923587472499264718900627661379160855990284739190054546942198551179648326278365539318492642352306723162907837198696210877142136309864790562838391893310274724964320196911217606693754731162355570408585336355064432335562270932275391033927384303334010704231196354407924343072123012271909517142494904685552682776243764837292716761728732087391516431023947086046058764343433215832579209915714882104554042608082934559443980126093631820058756921292375478630710934479432664293734100892747447062540623238683117561589108487779129099088807259802163096162652417737505711587215981015155919173783241688761530775873644167245558461143835736071778459752220756563864883648240574960239232982485429259463055745033297445535033437193152811453334498308234288889658879133833568148031627260425889105119206915528424286846269386994680840497872061982757081953132597566152645830634896799560286626152644028046478037936387803475391070398796202489498891603842606715541486930407053739710707712303739503182392602568223925423696755626183080216641020985900880675261445668034076918358250532659211486711657776943371428166440398907580904622032852724645156137702502820695085856229576742956453229447563830190100323203301139925435802517691438893083859912439341284151539392282305781867688421132570569206219726593940759031447052080085002003392157821708191455708668788296843725259130031846904602384700757778975818239011937867973458917795770241038231500716703067945415620802909495176165395810925161257427107863268794414171899433558078571267818664424604799476959910711486422121072916572930410529957276404796141491276714781742524662318509773226855863812596777853441385893265447023958719835259968903531447894783607516696099013295289641161762873259574445577944952244275952962927593972213866151448338304639697631158191788925735339279774044043599263367018850932331253892235724151788297901554726777890487530469776429614208490676180685657370554200590093545060723476515807141074763401598631489912707162359288730729612661498367212218929070152746799586990783379473017012966985768141069308440426504246937243344609920204565649427511060332588052235199961147133858156364115349225834555804683321126723737289071621844831857238305413224060259393818731171609350511755833740967113606221913421546003543669838208709105456450102529372523324622143658508366674689373760094594657854041297503291202943979977918583236229286245137364167595309500778906622657586280059378942989436640511256921264258539224070779059837725206617625749489437863781449872112793951489090802181740638562897844038343955190747939775743631056839648265791900944891036897503107455697455082983155676365574786884667173933443869661013961588268872328911044291857847107909462852960946799145103135357397926511827030207389913178472343884931293009654158466192805963260092452048624780313661243397783858783170381763161711087346356825216748566727047173627466680575598566948594821852145906103355337457646085869175943191918179669941847733185863524415351994507916132910715899534276198429520957874434690701144844045082590769025443712312085775611600657990568601674764558479548840160674001644929246036582944813082029621874447579655966220339210308592737379574120939762908594062405013624217262804846193957951151378703355005370505262726309263906501149123227101908534634066426346367494635292473467176691476010432948138417257153637599554653114405536293689653792604970725699413012531474887019912987266404087131117224144986789687290340005011107226662846637880783756765449453301476815843001808740662901871463873131090572066432845457155215184043868160488520246143130262607950465356569682826299230841953911168305922794797862997947377762300095476344044950468268436287795105769504264499781432673233300937665204156115967577121676571711033957835583870925930681053251698665333472587030044269495476485427810295371190055008644638322471848369653272778910862071314110119292314208041395692845565964329225235508109955811321234945316225392847226707747085618574575480837963839895854684428429845045424273444887151145934937889312252406713220415596671682546312919237344921391507011708201711578695994910109615739672805577388337703105720284992912781314729599465388777023590235521351588621059946760913270678264937030882952816334233723270698658178520690360000283605917418424487008053744100005361335614252689465497530707145993863947311326431808878352967559695314091289880731143860772067799203666140455450951546953498511109912827803229462618718057910209373033319576695276731989571212313216597553630071148516808884686522926598468428212558141611171545364433164547785936987713953594742879622285480771466855554922651692038259990341115388022306792713546446969850154479789369146923916328464360701894841238002078102613799600089144782986754921167024825632588406485150820620137647418410978439720875288955370641641115207290581901598712259994439009129157214679331249492267742272694599691923265837858028916675653648353996887684924743635571095466014180764824810260259773530565640997435825262741705365301692635054143703740107819275674213037827017015204284763284491418831458957019911551214172197192376268371638829688637433388559736501721324670522381648738781579807352902757047615516666369833908392079088912781782453994507532339558278952941828843291532084341029289260941327257540493441168599692685649994360038511709036340856850185642237079257301013662110939603767013419127737623248911725536755506536493791431439392351034491977971658001363327084684080548366439607001990558172459919210415172928766590426021955010107874508870701456312264286948728753404496605680492754748781392900899691481394602260267296856147895710240778209284512147691726360688496599504335458749872172917045219044239880782698364836163435068616591640241063121310476421521212376774140312653423013259614105009511887247263086527239186053933213019389447599241612918961013189771267912595050436705117442956277084652681637817410621017601470199929769563076426716893770680651187636450320825173184552905595862151622887535794466699755354384954380790352849656889000120684628390399962738163889228999156777003239083573996127564741792096293654766718918564193667283057486065613732918242608413609054678993744051615125489394414407841534951959358387237829560392000320363826905323386009666206338753387103552654677777643906407992099432042944495319857235287957109999127582644438511054539344887752607381757116717358276681768301611966410205831718894885409255080095776183055997579376028708038056055372115367960770006356183408009241106494076757142821499083294035226173331903136764562433178189029481426612048909182690256270276802246254872368717656486267817281567278930162322596364401060591126076822629094217140857097353371008047707931351965430465132805974957222961864618495267704106646826895233664010249228607522770416494360977805456121049437903848380605992376445232984919337261088200394389420190170106187295086321902721672532057743829686826632973728845875115708595634999189743128141680276449227109126118774049967267633915357746006364877764038123378281880965899816175372531525014215771492454625217410859324978988545118285414443993650568490269610124045891613501682573773445562790251750690322505467947080959256606356477570700755922412622558422033158359962835555094453983799459441055378391147949187880369787635482787503102249808851087076736845003605142289415677888638551054927035708680989216071255720191403729345972873233344386302253760699903774295536621931904759863582669224070931328927842096272239317604882416552984434924915851810097049109218160385437462246924085619044921270084462433738766688160645796904019396738033172762053395453808623528937051384280065171371012922762430187074541403147544964041638961918921421175651911779072680973047965005820003569485655440135437591880511929370689235798524402166737934460387261137891182949784559932399316107169772289241214899417219954910931959531567958151197526223486864891438085876533606543255636481321733614600968772496130256105418983258420313948076669311785464993590084809858722944054937101359165251373261589458793471925774913783887389208152533197131874852221563113544016316626235361555663471624110669313564619069782469311018568690708905683122130389651671242778119858172816691505146735777351231165926406200786051126062773344716084004819677613036761380924606249335468463767609648743631561156394041356641191456158425349495028940183743900856598610390428321497128405520298575436144190128353768960447631433960605607611079250094685969193476397135627796538227046019307063857564695614284374700756090372868005891290432431718194062765361941501953900097379684543439991866012221517898563786962521330396256428351712705051487153923951280646514473071100791776413156672500726100087782951968817506175089070062320640503457720747853617870759490259664860257299279168507865729557423554996514593843641767627832377540030084214765958530519535469862580103326374254131250279786243267669931584413373450684143434217462587260598304764127118872162197866627009192110989387037390541200595475454691364381564564594322109005775376977624340778681774044828498794131970775762534716673865623391001462846384562500740504293497905885529949280739524175187053618661995167430766008188458128259053077092285633728444500743307361588051629585832113021732543055414065224791199810364280277730906797847801493503202694583092804306942766583161806270667181195824724692446575657585220358935731195607522529059726926581193125243336906594071051371520044006116524305585035686829457123882673940131495821502198470901805957369054549768731293132939426819145242156249521666172006408328525310123122941050811588858515962131422243999953123357097339970811231165725930287216824002936709407483926476525925162229211240976168092372832992454603329398083051844918294538504340923175415750677255315434925516467593219154068642638847770625384267928505484672189844524773360322037264712208911706048818973017476301263648018507601186987548471737590140782510299175519261296964844920872210967816602167732581103915778101944282940085086918589120885250877016462166854418021151552141132513816673062827122797750142685447158017386323799624489561974922489115162022714382468234031223861149270468731011163638682543232838019037427636542126795996003041718123828413091309588545877575985252649674628305403669467441706583873818562184359787069565722773525952712600334040310663450694619604525064330570225677586382166706593053769468106597783592412069418763085234925373425690679323249869236814004718929939351822877450054718110586765388462536593116548453291928790631784484093598459116578127190389860271522175669308496623161594140558827744227672057295566679209156832125291127842300183115376580698890209297530843650922778740454246389101277236293626738314138248299122363528121400403039452932523970057291188358439887236578171717146874037201905989161574997252386392105810885459905665788979428113661041092277558914111396506238778687719001948921313367816086833396004686542701097878472799418024953350693741440270364385426689208444474975981754810122596907676357734867652456018108889319875105191773150507496367458360094810500047368085985792206836902601738360421979100107106953299349226836981503969375292040159548242722555748861564189675208983626106477207083765334089915594348404861593027170690518392756844784027479996401371075027341560951362652582590918080481116102210620910284060776391609233133996414555966880238497963180528519619851888065044283419592213879912832921946603515686378825332036875551418974737642959465339356415834136289388698254962735005391355024880559884047112850351260059195094160518178879964417152110253691710424664693867236329404320461651864882903560272705116653120998771476512242680596610052110788663175354494937594115302601245313097085187156195771062077591441312244643330782234792049260477570062925767293679994661540865790690353539012842313054316412546429819248820903852842939759937882713366068828201780396595618175089470058924718328265810488362434766659448112580543342654518502409334148208163050297560216037855379882521839655476306172474676017032866190327716493272362914177911644864576300839470457047999445142010034368074998378317123589799548914785743540541755356067291332565199627172214455926723407377987905209278279231598234904257676393217431272140796786853812384448754853675211534762133521093990454019661507186468901912787274749824698272382871354822542428545001265301047298778053391050247332796790896196918529960270932319128270932977420668960768587956112274344255425217627242991928019133902895538882264898954454833752639590745671878303650898253940040417509644525611806272213218959500433406693330402634743528758150763894457079882788772852907420060861578028900523403996565204635181628515193892323060862048269518581987055396724812558913062966950262533192962133291228098635785842907760843876952637374160257056091304831169390901095458620511134695850145400256466639238235003275938393584455250808097365215270957484683648363706725735124602297188226606248849249094754275418639021236697088009752032893250726858756932119502672557000401059083397931578467817686130804705865865699521138755067649740281898958018476770822351206226092174151528899130797015662465012738960815602061386183223808909342575544302458193896487947030665016105010705022814020272808344514184150506677345353726219651289109610883844848784850428177227063611435515275775995064108565559839714970359187733577109883743933874674789172181856555388571056472810559631070981425331152196819328807950977027875652883929267872719427954914007813930451932472859142679553232996037138575513196491029632578656115122835776773583497186699227917176579255687232860116987751078873316103316537117299378630300424223582907309066082801326786039662241579977087627504931439732430072252716314838118072130619207600306641119132863920333734064297127486859501310964621117463294620521177929749085415173664181006590887864435422126893671427381552516356219658710426455936751526362498277013036289329154911983876381961249275830652802441082263255752143555181088457658168192474902512668545257865961535246831728483624880922075639196041887059033484361323473264762056627565028672229963913470906255068433993359655515277446531940862194574976516226151004564030992175797624982444070289581115881702455518114212168832202708718703783214740267239728094537246682416123240726642466747432015394900716115858322920659359617218324455142825341866023569970337596558476006993539401892062429579758036921532589106397584603613967573646372266358209661316921058895593537770426210088313941928718173621732779486390282449188328938735255168101762625478624361557856759477854198751848647871534735864007261763815440608871111658050888470908263275409433701310740421485672764359420635813654461973302286270138368379843940979833791042183267932671173869111851573808174735509061392016629156889917685113441293309507274348225574547680547312367779975279506781977974826065772187315591989060947319043171527503245756987313028842103310692051017905884803721866831179505006582640189928641411055174627217779864907414595158682544952630457446252430073347746869836279829185848783798910023104773490432286657369994513950078550084548004872507939040978041197453229381854902091861898329129528295965874431175295577237818976276715508375065575536312650764056745854153174984803997623264895519243259685105748324187056317199824087616249807206489697294874568202746037049371932994966935205686146720204665753955949185331232962188635726003781107237808401454256004200618091038549451535299694908434361996702885634348584102790013864381009868324464345952398294453925376548875947525057683718641341812255204734088526269516289391608580106112076671603760537090890316971037232247959489154808628850738952024659671603691991694363324893138372137904443456042862507368453427891940234645526249241845098657503259691659397492163038699780497088362010932729495477945590839760591360897383709945208354217192747360079617089507424309020574619988022761281959229167594672882524794291450618259118388086843489618996625898325357777675795528593389378769655747886691038623515137916912166519711234203754493755240873242798582860450675775960476292611453524156054520926749338908717593148524431633496154995651077081059773061159816288245373825896188155921427641394661030423646481724696270003424367518079624657146089051419026961394658156199789093858886352297198778952269940805071898412233070090857314334153108065384191386214819187412191872820334930321341739130629144092841194151300280728020684993398927252443704076235452815781284005862735120010935121349719603609926162733925497872907886794486276866515593024986183645699598807291652021905790542016796147310577180040066831945694323440243820593382904079644035506731235818036762771209883671991346305044278284702469288967348922563713644734870238794080345392291268915502355043362284176817396139946399832896994130460399453608714309986155302720991666527281693694582410611179128723063357244007889370754850475889945205645261208166239079820888194926290060831002205149809305230747616369651553124883115326631200869719522641381372651864148333336874884720939948796105564015246302845191815897317140832115123991995700547154128607944451542820668116216633115604895540248110872846041781683473799030797823085123186827015454116992396702735792230772175363320919477333161600248425407098376763094560768868448830395347308411131332359962013275767666167377337634496147113650980569675252555253158480767120410979211814341822942263856077954078560668384526156436841503848617793046089294137374672138632157139171997915210566609865475887622626900533841308209576270485032387630555286649017384304699454215038202106295293177882054955269345500390654436214764312967061275094833236134586592844252203178449559780487815192867313515853995198703849837519839707119183114293848429272101612796586597216099524018585299292423545435241382924106817973494507533800022207564879015094220257954569425945166315244976172789299888147345892491419357759329834251560295286345563855816039561932571180882727582760495744607602674375932253605426550882965399674648537719874293521800690380549997284852621398440429956853787601212578203991035026660193714537457389629219822540071949351182322256539461315234013462445961133225603860445923179089192241838377935000656757769182710791476560878191455290583836275983913096393436126224383925865676608627997032063058956799702509139147368637432845790211179276656085370274364337671933104824465140129877585119855515509345960771325291188815771561479080446878407142895067172822167356756245625271955369319867625419119017929709789597653510476640043064057089840464566978008835379280216527976115714272640114299953100714582677568884706911035086792416944380004015278571323158281128468573847319611586354237730349058559846755383649381370836360933279186141524599530537730025602670264976634875405732818643942956563979033730500156080380840898807257390782765485947451710006933135874082214586562584219851550066325289746113083868430323230767729231407100571406634908758437307503231836800060844494707631836975826612472570083508260906655664719047643942202461200533334626991166255782692288519023855378025070527921663473742115666058280317130933566714008019262439031500574940890167171542184359170616637509105400779703606053261547644884000323287874825641646302694885730344349252331880313638238439001887707608296145311852341809679049721033663889328028108850580298337926307369904100464431101980193650948836571137926453101874973044021954591060781135527286420254551419465752294557947380099212608245647957902639272983599167022082761157599905693247015897542471262507232442718366032788279581451606285857582330171902150741806349361118457431657721077799476495409941978782328132792937294819763481966729166658113620711365623622722342385782919767833001514763377251838386112418013172092534233722059593796231567860091461935219701702392578889673257884223862882271697672665726523437211757400180440401203764120310401636314879104688470148542285686515703494205418455233416776615198657440156589302682695713701748205292973890670593321200427912108976289709569808270035733543216571259798033680623701422087526704634677767403310195557103994419033535739973681008267244789292676697960534934438337567357104359233725313253965937830361992332914566012824944976354095131083811262512444354115596268184259558130942710158832638847196411610247995143063378323428784343990450649864037742176364811855823614714256552210799440269220960070910568072032239116338167751646924420672274112565060417627546148366551463324074934447141286627488020638334610210356608119781876922422717321336949614975170403307889915343802634977902163822496890933783628996552462474709957526325572868684025290069942024717019823231537062759121435318841005980638117813978258472223257398745579076633230801719032810196215146398266882872432997099500472522793572492531480941906531988278609379470882101367079427648925624241339261107681518332109227241341734250628883732657410295980961548351927460769412061538881811619368889681915813120452318555048485551562798072268840592267048539132595962034958385802704206314635575552141092455657725973170871639522927652754702574183281471428117832464108031877397910396092284953706836570045715294862012724194242412063239257410641589515020959208750704973633495733393989318622081808670571586073725214566841130027711644978096551779349769588194599143873416841263662925405676015021894439723334392766328887182840363910795296122994302591215899673207654493568114099025561169985056410881769759285421010357099856533458044679533012425257531950618220964679493503608978233902187828629501619581092851128657593817837318028441217148771361348939815282540854879992238221132380840817375133052471719400908752634726616562496523734446042813717248919993889726985729712722621032003947373689463547188264780086508670128247124993252334190929410235051312777739794804197224875200172281368188518912773127528109586859890188930704956660929535954651405415964355079400876403025834808762860207023489454895253355538454537203944028052274346985793775336581537684369380971626167811595727629287440324079316380240687032814358875443420683175082542146496906547820234233969355262601583030137474634944296989128360825358449915558379328579304464533891721853762035174396017173120060560536923214038367645604159550076558329932313073255538921402202309745034940116430926185597934739402868086359531802406586917566264571093395078165093960106861683043317503613711944740131610501280320727922062373178037672066896221053768526372986732874150427680334276073897653734492898060522851758353659880197881384321462172878768112756289452715149224237254888114817307954807925652984021288049403308422757306859609771225448786620181396375555088715321474008994240357570332098590330964222631267207024176167328522137595923070431002115973616851666260954675646423519384940514809595683089057116152011596074785631958899914213685543682529223610008134997085840842790172611740013328879891699515737059395348791345405249895896329415675825304580232259627149707896968544194439784057772475448044534411197951230411930681653421037518559816918380301548227127732407440431147246473314316744658999669514775926306576449249676015360296648772075329789596459098756733271237149225596812651616799242411488359025593569976344376564100772231435901510603728124256095482257189595801021536897103931761157547618852794255965475021003198824619101575461644670276630198495613273999490670743505875733317752753092686296514476490606975112875230738625757785549460144519661105083423686821408184125375717143844207106031016349465573335918925575257004010958166878182446782607801901821133739838838535725666567656435436653403741711038183613464362009510325703811257716221572817138143470229199597224373581150809566395294238575805951885018402750913735722641737772698487757875948593600389445637836136982900224909293136859573552917389673384372294958249911972970128701347458407799807091738026124658257135950898771791434415487085700401022851795910266020324017503563269702491206564548047705809817807108777353455928905403012536597711715275191268373179837442914896499498910763593434454903691020664800273641739904227231372613795443250641074105299959254858181366366751239930664513848924583666590397012863628064985428180506578064326977916393556428523513740614585702125987633173573302139010995585982232579921718162755134732720394570849799143466792826950146427079508817099910364325702004701227038855604018897888964616809697786368249032918079049251719899641190006821650256640126083941758273772478253018441280388191792470582660463906869883531319483455723612288167792194888161040752797621622676786638380926465698685556529439776822133913712315079715420085066401986590074238132599953336985810747934614013973437956731718785392913799071596871360346136126893754535096468482628992251572837593059005215634759553101380908058257830073855852604330766383395489757760010438979798949546583834598484317088177271039202041899412854031976075570173384597600335183281747226801035456903034958652075075992483551632325684109391937392299462118982789362520601830472270042748784759368854871326111306673430840215165282756577193441178862156324770943987804976636828756704411217690331764761992158695108683101529476522565740772102835997703580911737139993689951872247399051611752112671596304556747019352293703052098982625746795939022033624895169002967525059060610811144191239091128283624192921644372235589765620035663069412485565400280510621351083537326021311572561566298707320302589685791249868504023287675484427379021288523161010112300040900090267269911668412167567022751324883338966690008285091826771039750878079522894303994300473681075436860856365378685478080136794163422411768804484620627238147740040364306457468869448734568136155116167604349118289464479866839087782212512956355282192949798539239477140105748942643024607228365566561700493187416074853579869178825672604378649338165171415316000627521287981723218327752914674705678964872810786942828818160573768890732557323643888761172956367555464120392396752092158663536556512979843112560606119255862689984244810832300156669304459320774602912465067853782284865515609138588043172427132062436063211244913868040482240131838285601211838903673705233673736384576139655504099677157631330441293386745258462017018306142332018482432957626514063782423934315173305316419602759653701211220593700427171850146820506102587663211852069526198221456071069400264313793319605131363189031950419356052368078642861967899318092869906374207099192889402676063510989577613071859710358681700469759147107319576417295951694148916748028865757267231221778608886469336428669153671575496690085729974743913596093396137482689063230260587954885279345745426479521056482317615023324415414488422511383921547781274508221749495357302481400987099040227808045926104297012179361066393071027039688995709920318555941125560880746751290560474424703632212379937779620916151802996007433597313373044887900826065684620851621079202328719146132811632431092941420384629927704332940799171243514699533693323123219428811445183787554079531986571818525771510515415188206191551390169619526253160109354139514848502517057971870697474907850403045569504840848955226940773153045646322919348591182220712450097514171832720274332747425412511338372640975123482527469383279592175458858123885010480919752270997111661653524853512034694319862014263738224811450862654343659711707958924152516976337566436223379983807672086419622474739637707867967275246663358800057814345327975505334792675954145594993859975374720230776766665371838025951552494758874146659543745300249439217752505076457385120643307507815294014548302816226334367713878511577263553720322374249567033777907713608490782242781500364994916580382494453635830108198165503637056013267189473466984828427732594478969261025587119782052472902737769910514724132392323821521729692412334177549332835234374019017301289858184872413658886441582017506548891544957362624626755895282591955662588902377018891196732785481193523290215311367383985458505486912097642184264556272582843576078852456608217825213844860899768381154314841632674505713945702639488844773509386253615984275732972440397127455596783596178860943298423415587501062873645004878424190783407632356973051884788653770014405755799282117107545440616050360635253493952398483885315892076620552940601807773306172775552677308201288291950654372246405573086768632622387551071962514801746083651016048123542981671098760284560718847847024268783943136830737053505835762526823879282901336010801337210358158853374791971140166119691443206745142534288812569403150386853896773989668941291115093940357643653251758404031395955884009299962355785962581055464283168022658695497803897830174667850839963119842669126355003709483765990301700192659670150212942209483698794428633329341275634434238410664418548684478345893946079965449520051371512404762514828940657150695118720422574044134424545594336585951625844007904525029007660036927802356879079102522257579254291117925917327493483676152799062033972722047506465664356067654639770526616091061374828209643025386041920973077396137276597201506601609477255957095568270451557059796695236541887236339153593402952002940519672860631889309823199169683185134864556579982592353427544724210239039977651089766749307051627318769425745523494231495243376250773605741896929761225064519442207241804387862727697660835208107959919199900535142953064915801374821076907580976063295273402302491237523904413105795124866661924581728808003051590878625963603289294433182701121178506686208952260722562246179861536388600071498093034507903733504003663754537962939911320444495076072289001057202851876568812941500886494641240734753423485456964673181171287081239898694457813279944334811822711005089812436443435275153262221837273589859568584668551612090474854208314602961986478240647668545248158741871646721777193607784896585423325570187362341183797948567027918580600725137151602549426245400099918664281748425866902555274028725877967467353699392198547367949366415647983150453102657148040739004190624304283852041977878687493266498304490258234845072618418711251377257139094516877397165550881519101031778843195359977716362689933040207279967801705261302289230200321130458686395841360356805656006458582928393565069461893183843441642987722352978310417545382123917891931921488796478424943038909277400063291458991841695852539657512877985364820319695994577352217459490016357774782929530880659182470820586851692711795245957489728866113653056314499667812562169032830375602334625685617435789163487914284960200171901607116758090309571931505966614617716470012094676935782838211426476506135911942925203994928259268070791529702401675465488439448309135380482431760770212340511070308928716423156929767359707512258333195355633268741720614108109586842955856565606959089474235711460990509305355828509891851015603466870302696521834916689177562755074455580250667054687196560578830013802643463514221410261479565109954999680243629692041141243511075285030464491717343637625941413384108892535224535353391425240818586175360412276663125693866090859431870248328140955073392753133575344710256210552638223164795226146856139604248767469374954456311420813379481347005081823855023763918365058109189173253248728229644978884049000666622078484864398760084622578626888306312005287649714170649480057348072814210042902919040420951464528054045055690792724758245297450366292763720777438814382662344488323673401335196579845854107301679004931406128485590761833410853186254919739352389105282535548115228151045930416792079429930127377876093589734065641849094626079873739024896576938752616970400462420924687174127951841669113848114033124655976441344268275160085723190421791349916699469231005425390462882437651023054945902321731912206844302292344232362700524922701755790324040732862068109603462807295456676550054767456063715213828676491404119354477115788329581940487956122747468704637279167406710055560980000031613537960873040279099620491789446027889463435893387114500417221977204157129939186329462260881646646627477824819272472526785286006452746483188989348183317846484927517517211486376163131449752614112876612510581226818132304597953917302514085995288234041029252903468611418636409435715806270102103906656495774134073980813011442148608185316583026547157129897930597524408511974295070069566867131144786320753765140072711287771377613431688805547348853951599004602974060407648050904682683431518207310264937450096005314306329315383948078346510482819563946466765384057168002970524852405932904872914913599026640038946998343683530052760741339453150268320791539471473065524267761963433074825033719286533654826399931780889884319629047919878818226161284086670310839540505491216769179154731842483997615402899965137844789620210249319033408223278722281639861570509858434417313074731329082251903244388017833247293754644817767890631988703957671561143039003483784468692978966576197702497844146420702269512195717014156740311845250979666882583059987365762905002999313595822706637713739263590750316795018588169608671689596932099261891326401857023049745335774595312388531529677301185144275837769911431070868234981725773812912317824582058092707484479658139166277388178490394907683717285086107563502658047382548682659342861531511074476756375367247249580460084865942616786264766093143390623390993399043812389607422141258467259449523055913641773015320403409975196553544770654541394772234958487028599638967063445495148010747356181025726364667948337622894853636191306392020613544341055923442129207803950280663065041949704390482410893134253765928716236725674680250617660070946762866481746432854413821437394300521970354847194009408895754559370999197792029533757553626965330072452790876606148223849576195494582967874353524627667074686219596106788129986130424886852574788448052007329762858145691123769802951181666228257289605194651434173313507855855037297840026961250923975327928969237091435102572485724669737923503235336528677103225835068164349017097771765702286298404952041008833911874387695891389583755937148083592876854004547183734570879376180457734024139551854452517610152359505035837794951976135680593894673061431293146298233275910516461081415856555176083053035976811371677193879740038166343594886270356886052728916486188389078604380826367580477827878464633113438835788381769758748504453910487989576375676162050604902355676629739098414845108184765547223197493379935297333695162278937896891784188026339613694599994586242646327583001321588990671639239398641169169761312290918933366168935112973975914946207552814701836692329147215662773308589299587107199051729721924615532096708263697683407902802347514281573386166802854214162633934079086775159608846179644175920944184049194918851869888164987781675455360601121673543882337915867758503674228947642317740171247828810383935101020065245265614974992711503826586504500606945848465969705068961116161472474562602780083688232750111498191426480816003964379898116311855697975015379435150896514157806655515778215857619807816663888708805350044434390461432331543503216979762979111787680763083686783925961748742348819678388557962720445953011647589337485898541314142743631125927551261653052511605656235262393335170979175027673423616517006252239453594054764621516888396138187305331379082738220352393192689356034773966982919253543649234337122515235869517561804662656803359161761132315067311608459254034675587182382103891519725035765208417425553332103249045045969349184141341020949820625059953839127154082974522656317527042079178832918481345560109233987864143325085285670015575744747768607542477056740767208060077748367264660377573375038792223834267442663672903575527434675131532617350956485956699432531617070461231174911782388418966971132597617369346830138234972661309668435829909273004125030524051023839686673666083795586723080704122493516450057588492596261267190287112130558085380840713443296018810869607570888009759423363030700625470621503652929240253194648832460274511988155663959581028510728121193878167590824548962547581121896480050985520973224241174378278853506664795318813481547171738267482709264397600803442095307249282740469012665586626910830605059705408401766239800192533645341315656275404677817329683328399683758658771309365651473613389660923790777674663503799974619084891640528557388424310649322829211291445071748882648212193182842228872149291029235929008191633154569019530980948321037288618400645024272241655115082211504035343106529880182858327058102512674061619707534616595830613884881025109718233572445447669316766997047977149504023872375619874271869854280745106908338718626405600574632312328244533405566219688759770097716464716175087514909847006040693650080952429078045813080075605358708810499204324031673494307203658397615341485579741592317863372609905276724891253102496623138413855644022819823172657102150029337070217230953707958610214405230192919930392346643119375614378353424632477960494319045655370195069053503943849864563331843737372041856751233198259469291923367260412222407433845370196645782440719907286565636746002237225963274895106525258681497617519959453591866272008219480891688112159516876460213543063467671051509266979960087917885485423882499132576225372007720837378485022449740106417194216431034627160803456946160653080130714979370429335372074608769169053470325064394920028895911561053404378110394177521608317418886039308328291904370759376313511937626023870230517377046774899974466473155950363039878779449793446446852384005681865247291910062917982330243600957010448560566360704954538582423998473718927765043979668920196005204426919609688591309612342893042473581883423232812955205322433359111242246858533225092020939086889827617150600875039280252342982593807562985054461850008584679072784078011706030687047586703723082345793719437905677512986450567356903979862243597553408688471400376748076531352154577695826627212159231592339059424727892776376101578311188746626823849582259835747458431381754757264322509507993886976763349445013806295297922959667187079753169428817915079643801768373296351713262729910238815278379010147511011719433158311694403836045841212928877991804961398507731571148592232049809945926320462137847532892181055431151738848462473827148081868932159055940211387815545986531938846537192043846025559987572357683933953018329408866109838918003751368321452594905514798557154210846042503251664311459535032162908787437552061939910212909913456449071147509564372248965590764600327612168639156227338184473859568875198117590236777138040196884188234654230297581711509249298720726909670435501312428985077950443458560645498885689562670594321812634277353765708295336186555993915651910591913145608232486329808858329726864227750653265211945930844370687056534493047385214140057424808282951555076857095296396462060365230466737753405550304346651903468604776860663643114863443122011971343588456782892320182516650959638714953518108701654326936259429630045872574268922456366777872587889642163382026496665740382083310727596871448869462937565455368540176458333559245969552590051624363415662636850098018045348457315947816386256256751940078156313768194302605194479398711287421922632740629831250718680096907566898460235200214447359570102963677619631403732769558465406648467017835297341393119043518765466475623680244366338686162099328760222206031991044162113675140113021148792208784940212145112918417308711203474552589733454710084967336155278702527757700465841510079032453004163612087392489821423885180890587155552669167479447268627292112989052901191155168521389900285087218718002720562805023375067440675450633323313338744034099931710877510873272484116364210787479087315237459620904410159243027613831550763836128724775689257024063885449680344645026279491868756515138986782394634522038314023330103043118500199580687292609793489445653688968375429363349421560815151540816031677599512830172269017806847426038604555387475831980079726565484415291720927829027457020162388390841685330038986194690667910041530260811589495160023280058704867574884746889056758012437755161585802015053660327243449210033809780533908575032866344433380682394798549555973691143633215208687673295150278152507553017524023562992749870167358386235496035249918691155826559895189872539234164174966292385280888682067151394683226730322388462919692102155597056089032888519167854058387479511402155381171414748224733517976599507312595937903617874401038573441476770663404272484070890378507234164957597084836086892877688628832488701325084673466807940288332500484360762789839835071411023310009643501705651652890110552340798296331991757033312458422881861498016880145319194739693748873182351872619053030978564508364380394795165192959193339496518409034660409635470825373542977889566640339592173793552410489918220851466221024816589029522128502530703643762458571378089075329513956159626801609348158942870624398390659657005296935010573180893683123931187291431292491424441842588637541325463202696468138298336749033293699797760577099853768900511543704302242314133584056630547779890691718641175699062805208030622451064607872780147699815313383801029710083697907685145444101757812151300334820172579660349615351543673890231376910297811181982632636155484894927657106425382041477193569746817472078025709256171477258739744804394022420152413859158109601808332410104859401696982581303559719275442690880848135759536516935940125404664932716914086905353092968485613342401117830179387737458622329096415364040307488000378342618009007390625013711672110940012953377045046783054148070873947650931267852586171342482349857573945818387532628827099120325776196150433333411905619851928986715169498694170891176727269970702810791427935288499796837290855748628275024209208851026639825837698398666685199394131663251297605180799279932776652805096681790242992123680939996136749149620540235387156583190547976586903201668823378523784722264032565499661152185829473257213061375732677756329979929199297028688122786286591838618236568875722511741661696204380438868292020600223173369641745525338971864624844166199116941352249437380511852664702581077800614583022858886732248789145900761594937819988032211673946011873993436100399760175318285404098693662933951487217888382402789331227857710076697468041335972734871405092268472577090080203550360836240946048302420712473533168022846172020707357940763996969452295271487659542576053244368767704550391576793609335500638766649985317179140984077938718084164967744369300431438980114498368675326437508852294025974774361534665244789137821584690277829675128638759461622833643448795206756712270302663500471471670945355117980619411757846631076514909128846591360307203863880698956835071370190281762679370028699363182934411424076215928355541032659943039509661288956876874394165384489729338804845821087626356766844237852120509723865773207455809262528986449499234937669158442949480991550796788749106726879823040252519434898789848149720104263480832808172703486651961485571441381895603325773130233232752985227375432367110358321016816119776401755200120044863470795134614889708931749332942260391375299070464787151766169767082522388345289476424143410489960985317534608235629112139066846122850566136841300062281318449012956757298496865486019964011851902124601849754943918516775592426680758319967458933201104536430688001108312216330906543158815915237606096893477886891094731951550695983886654839270949761118326154440458753662890583853106128991246950303880538442408215936000926520017315825029516611722301617514720301644959692193179150640719536852100467533760588828575117548408535346655656826905358287022773563157793345008585443643415951742604849913208389237574629484655105529155193530737955610087466503365868715975440538120686391785543844737865316705028962035818011302623519371396740725587870865233442092679544777989196609670579609021644415715785873797372750662092059306186878374194069422459928849960342327814372701049512129810034858652855735734383339035818244308549570570716908451940180946623130855582975467102884022337087900714300132946990633655902012115315175631504872615595295588279558112703614610596016987123980351690411191059017036199830064470424700187335651557796931016249691229786419006310589637534108234989575758973351843050730031037468580251351980975671065265372311954016797387893522514924011276313052451720633382988439558195710096271436993015065386089946054560415633646788148997651347274376599758695590677240972483388731314091578504292726230618202564698460966062524098698208922442905284930133942605371916914170977522740028935834209822395067478256235211047189920820487753913056055170238281389378438543576302519837057550135797167641797207693069194129834979561983564453782767781666920716805792928327249970021369519404156767131995412276743009870655028407947318151989398921805407282821568524302953262531317749074011013904845922443258225620098384871625901277288637651875784203656104873735226194914280931097801858657991136224178920335215686785985820810051606394344657184823369671302298727544093086825621319017839150584950388220420385479354984937601654582829827026485017266163252006852390669271358854321313946733852954847873076600058607788090117592266050629080534345741324868496817033220802457266549767108556592399245403493152661666995177811148265867378940588353747894030834384875854406757290201066502481654911566089823285730708601102198621450720701495321725170124793954855025879178746478084104330660525666631084493840640138470336764627358295776424466443350957905321099076619916545584670855187587459372696158994483981553585046353075177255730663551640269935765365294979563763830256474011948487593301591699152892249348677879999717073023435419711866686534597511796417861741291603664404657455941844019391183558727867866212541179533933982127636434206968128572661554092554245725316134768761241399054731382770957617190218973612287815505695343490691071158789452509608694783524817615585564303541344635338736670805148365052496272344345871307684226040247569905730622253854922588905314820602633592460875400327168232338072965545148629196802588639490905676217515493225276750007827251228521918375940564391203982457607864558022908101776891197272632756910028694867350608402994217251958676800165368202807733293431039295433888737268784260241058331230302625495879837724330092818588928033411478000762608653166893787686283104743563237355536971946639748950499825211169638106676272648555571536110713363411937339505123963598540475690968072409566931629676804643050406387974985736024325286223366855719402343057729399532279279022812474248420258909617093815022169823244340709404949038636480411656314783117594044831494019900775114508179702287903357682440469344396866614426811410413998601829694370873186593015268662058239932625101154796840777457501342847546197119982159240767078020204018070490387207240871231843806591645652250444222300326503209959021777140542896280654353765419372951716553119471600125842265563886995730089807763536821984306742754361394667945945356700419534923526999188482373064056199434404981010957476676189432935425966311566253649799346178437771881940981388891378380039507042931970538905508843452955212365155003018761652093140298617574464722905428312075061791808542283887020138319252419585445130778689099853204194118652696312329725241478934381150148262448944207057076189061663234804674359176745517245266712244435843115681763716111926829138379845206469711301209749734869475298310201753875997132597743868145816649382406149935718755845325333138170762828453488193435421300589408899124355808147263444111549273164214185906429599110384558271585603762432545967609678358188729017091249475289653339075884640385903294080200494449589603553350726701677856704937523562324861665696962210282963284561226335515519970832687473647550978198077237443400769800519014004323950853988381940958923268679384660633225198720797713776828243381146916288435584459417149668239030625452778155050597478844617431828042731965400205228334197643478610097245854619171435200805281031844731411664794103101553511301206783900665922638806177919552513790956318072184540353170642677125338389371165052138549910729575036364574872021830372698521651775100404952468472723294272414088267895521496847387178910233597685199975260064844719121948777160524714261275061258892602936828545637469089205876453988009982153390722311618677894418383195823304961983456991343317855457801466711825269206609479326084871548676485287175129547541173660208631453925209533531571442218903371749866366151004884587295252835049281937491740673965618077289279482612044762535605622262626054411624220827157681891214148281711231507565708900247962109767544342250192435575592532327704507506970964851317810681202755554390325604479646645069403830570785688190366084251256893620029846985208106017242015557604107055725418943858212601148060726879867199844350763759437724402687259882510939992602112711453118789509773912499645727460585106055787870718360664570565697126307636111849110794770922888326424878957116525909641713390187902470865601160797946950522206817653912274212419534431189054457925204960562343532331893152307437313596221287926301799489423309261682058705814860211556373032531617957104285130353969713370840695174407344250123560098079932955200929725126760355136921312535431967626478730901712053880483091114577371705673566491287020744975298645718896640205268892269051931831943106988249406039524164874582708093584827267936852896569405273398482232836834419620659856191943530728112396125486085155387661757795841701856349433329600621768423028079221036787199082936045950165215597227636281153382328310020944988500984893095720261921979835565247499599135677639070561966161624865936382010697721138473519523572984002571581570965018476939538564593109892200394408918131717027126238159472761887694381311042470699038919942287143068223167785641446552812209043940310690492947951452119735680887916769291558763852449091784860710106642175620256576584542918221358432387064352461650320463192711047866336511434162308377963505648788120406602062784326423073924533314087182353725534200190332751175636779151374269196871884923024351273873811097459009075154983315135960873357142989131670711810945094191253858180426227326762684928801714065960626657371327569780118705656151257504803378717365401775829586722941544697255387860274522573722586368980449023756526039645987276350088640764904614521087643045859737909018544832081177677270306223042712389905722432521448975960155018327587901263448501889626437008015283408708172243665378237263238702415446178916909873653079876852976464201321834293817268112687226614771044150192948084921470639448611756813942199594351538515061272236589621257199488925498830325037449654847509742489079725834181825053916511909518780520302846740092360353313880141800589703900235053378361517238711896158471833508389431243921938546962579020311594164099745651285157493688859825631399930749328303471716367901801599968967490711365850902687251597444015095573361641451183269302192064529376574164203305463235018815802458472633420522539108055120047261102335039807683071549838790183054370555323769234874774048223198245913977866962148883340726785146760673265790466250463186314617497512923957604373916344187369115177266017191254593316299841716359296906365314790476924651860156314061701547554242906346669667783394483997497508011671341137448446353869979623281035955313589797872597387271946282782985247365127004560136051204912246488333551942385258732122025479766710312331701031858453921849565894750053588926573323762356192949425035863550079811490388391667035581552866175799542976673979286526564665906169369782183626783132694024295655668179585101219705614401791704098909910597634513160717542800973725163955392494913876935509286805220614837640449885642456885560108301767479519135002188083668804723373615083235258521716321804317607364928819121354188623363877487633955944116658464862835556467084374627326906916577972637296350745785860128498938647121479634902341550279952928047315563416179753771128438252666163698637518390254895015432209505345486064873477867047224772032072076363886028098657794069505426370020197588653971266229527093786541890021133276349819316147505798347785273962570131369842603451070363438087072475234789515601879623590787905143555237429139332908250666567778340170410468178025354516529968220096100988030238010055074930894308908364568612436157889095640449141360273449327045307599496770838374542954712281041497825161341443594972406872224806230338812597108419297402269243809869479504325965544239885491100913310188667207399530837624635738517326769878698023784779935174421058350689010114673117377058947479228308760031487762497115035967314243672004918635092718676500223256821894575419235193413738156684038743364571344298965265426955588555420260805120622548730785956139243282263863232108561094946208413164961945274630190748784245525766429783509648985691957860117853057811169135157275268439969185376208885828967970912024405188074410837405307324788100498254236903637569023164708396838804724260699534764084592087328674082896987872874780039096049284759113968456891315562669749817605066157677981270356019302851011416597164010834828525882373168598796923334617124941644581585064375786963451958053083872008358322472647445706221090060831589546873271043221807617709643018783083072130783923554504611006121507040267841841573793677315602021267781443236708808104672229390120991039291754923485038408306260237774798807812860026282736519725919971889601146551810568098189833428383436610148362780269850737513253117565009062690962053297274494687709714774783413356237802048637488871101919184380010353978205524686471862396261030847232831905638779731282931395375793180055755995865600649634648724112857664100148930688870648439434181927405689654141335291468090419780967837026561125962310414508360088764621567221352161066467655118512900709835006032901334571064219885355163797846753033620874067194784899495275531598817549152657562399755363388671043418315415178243999375863930314793664303394646703407817050439337969434874287005009009519603390678640111541013328792467539111522128409127419757707268896576410510464764518091482967527914836854603436839175240531827610068579602183049668072673110264018076427542832628498260998080603825331233366385095387968804418575544055680547268673074175250019202532658490232566849703083396963671759106616825313272207546009449954830249272261229740884405184303846939066867976588069353008207457263902108917880483922569050666977308122622886387725142236962685572276614483808148143124328687494700081524371966627139548827168597532183664199273439334353478789842286796800351922415014204159144077994036909032337743973098407676630682071226326745619073426448375933641576438254003142111477617208661832534914966787206449298707357568599547822618571618489583521238600414182706657007231644839070635331230249741539152136503236719692082679775885879942781591697363691103742122617309629212849614093914459708657960404422822123259287897769520024041192103576186700487416259245675534915693269810698634358054125142189105550711517514140580224548211803988866604208511809985068040529980361510669514897809774089514239737593123749215991831481990092867702223400860420420894735526905281648956330769757691780695990711972307412179543623713290493534469192020668440427183673118148240752386855261062128304118213759171129964376831409130040737141999122680158651000180686150042180530467697349668537186805614753378716205907218358623678084657176399242374350240986046699714086618255232485832013982809248948305447202353359050530352607979492166875303925519318770219381633203402874240532300113373987237394796213593641084685296554069536135488560095063921048270577935972484976090437796563383666325414383683964588141111079227723702632796555848046556173950775518956059834470650421270661161824929227448675371027085979862235585647362705573916848394282751680060859944000565756236023968785603428622686446405867409158781037792022441467351487773820542627994781363028081593532373759887893698126072943227665122354466789467766590417160115389108365932932955198634214433123583576817728295452631148608257103182649630868213298930315368838275697876013628069261428284682343926980944540495101645054408950242913200256704217221515973597267600483710426909107848739549399304759957445639715332573694816823226724273155009848875362631153234692641287495203284213121477843283113891337921668087894973630183019275587380419452441544727009754812577177935051619730918529112798443333451231539686883305820070562271208968084494991317853476928995207173791283399386604205897587385726700994439155917989410726341322597314450258359420725590096985757405856132440778886275273254861873353676909843886746959946573209159537839725612040940227002812310531149808659823443729037031296236898660208528569612731522982063314473814446095622546315558476520930677084439250883049624905477744233489712115003226493345702756931936074303189440313732013187590959874797163250751037930382604872337480096680512769767966421403969660918040138955705641519727250305019417657431845653175630789756426473240423881981983462572979735791601226964773526287740094025415207590053021364954560616800185606338642815003445902093251515644211721609437341338129763182036002865632890348693659761578690232957311673153903316503427751343634519339134008420616135760957893177349030729549846649937132179364197741962230877087104709747733113415067032637072450838396880560537898729661301346990994341132451676825120348420795431249395805069642973213808772243000295590386941646659478569910484159616533305194982096833659829983618026707603926852031783173918504452145526254847659959742048118428785545465684271016416832993352465007556949990346230304191292604183931361041633244037151913304599552413356993870751472017348176913215668249722357012862897422396797935844910120577806613481465587216494592658425833569619611613449702913154159603412948197154349574650342190925407661804275835985225625968500345847563799457086514917997734164944633316471112356804823868436306731047313208183191000177653399893290345932114846991007794030416207809210180027337801673865213005282983741649847717011103298240437919001748372872675828708146946086860094591544921903628935358383720410060709853147662518066270365483476534902761809123747091028059399469074345308224892338707885452377092876215942708546416031169440252606453470033058943049667084152576741702013602573467810618264404160207861177241086049746764949888888571870208104253048654151382332176174333908248822556107224638957037624187032210542812303641777016776259433258406777632612957039459041366362884286556017870169396485060811825593245299432197884874557284636008364326605164971564571058709369962592457512624365741871329396956234697690213240393727492615944619938054916795063022881061192905476434419880783659876047298318102045321854884771693330303128166791955578369087295798450011663167933553436594950790812825838405054492447794852396245456896082170769619459037683705264599299748859915176713361795329471186125122090420623878819766573282357622584090075561064768966633767755139146932172272316651601748759075563357281185000810481644410485400543273841447768640208087945230806972068136958325378461644643956119790520410699137878046100103832654131190626690894065943856731773673851117300574637365430742316058392701029506439685565239312970035885778798657455867438381577373401526586159847190424761489497371695125887100379868166414436584524770240329766879314303598067642632767611108942285597078920328227810553157167000962241467279806208989771778300917615016632573135656486790068085687733596627416350153302523953006558487803802042405944660696585207608114272340828385502822148504893009985889641149026418955660084023309841548631505952868854580542975732276719207400937541594397880860969886149547887186212855980712295545094756429944399508618571663716583910139036286739111396019989112030456908486157205120431920124038456745270710094823793070934603355523118900554509534137083802810012397437088213664613599236662814208664166235480615472922018353400769682706834426711340115745962462000419483646595927910685315585285867161102876787238657036196214554623633382126813752055463403502449379302437333082642313010019734588504678175859115870883112218910757039888360661284528981936114506761173483520717089067642921705931785664528917883720948051287321565510761600362144317425778876854641278349485427788865431127932896633626011092663265939595911466064810181793225024569513563316202166099021954442764208098696094871943466361353573548977004112872512327459330165603212488448654127578527499716313341690871278139635176958333660042671657633181056115460346018201653900251243155735479896612963966357704569688941315456232774023000356602791559082901626012014842414447823023407390358100578132512682187908908572383775184588760275307027032038514836003871584925060862621122191953841365097147550331277723467351912852097684599213395518023458536165255775018805865793942939058246478811326586449310645761830185143465776255714489448903092249908755928439144901493803460144770526825693894994752021856518883311545808343889041256286229581201804586527892880573470513688964075380594513083905391897035815001210230182227559364136550578556260096599302272243130631105564281147477565499505105381086961101957731258625022228843074609658636759724391512389993313618365305577181910386283724681995140942240197348573988327601907265678662024277479774976982569227258411643744460309009000729449913592027548161925746061799139564601396188412732427842159116906592458404778497574313641078105500736881957461695360967318424878349789113861496311912294599668321640426503794883144548873973360864491440829902906374072867205004913433884393576419499572353513561791218902448207905994163333613536694372603887066402025385467336305916931162920644157227193110356726397122821385562174376589960917779534580757659444980185476710978091133979114649959893397368271126035923953112810951704204254922139226430576917055679865238984743330377179058432649900896608394618279033281488968220667118600950730748081411688655382914594429489809289595505979788751901695249854212300031591004773882792612175304076591463336644962530273554434090535158782669406136520332469510759958125992177527423307682397928709632467464531248930439224041918990344848328770624770568326295342406618860268823045883657498615969298646431216688302205987226167542310978396976744893736644026132165381090986016996446398086619396790025694713456832709952539519372491144960853039353588323152414280346881719517636456581781788943567734957900701554651377434751858329235507038249409440490950873618535295386615424017452131552748857644729412898701436718183500244892998456861382457305716992866490665940687642290314449450903123815103332009377188136907075054292671731404788606699078325560098897087323730538760884127456262577835990861672944577590928163063922370343499247866804594187530971808142868299064662756768562278657435479260540159283573142802756141451373987212584100560877866180478281454997070397559758772872460571825204642945465743338307419486360104856475805941901951843928525260229571520975834426617917160498920536001247306402894933800411348890143111797660154844930558938800560461536887073953137569549725013973974681734603516962874044136403596549136970375449030944334504793843848032429804112451255473390424108076246293166598225124589306104190633694436572346167425669414504723266842723240482370342807028043274936777687870395653436685457820482219973056660353270222493154365465323939513520851337276003042610935383855110792555924404889708928250496658603552950671862798874053327950433802197043107000036032479886233143298984207845436561421945864525326901382979823595433216326672375841568093579592843449539296509803527673073189586371218449354411448174591250406727377594237602946325882431552333151794160033770462718105815232293457815849157337923913971036918436995204182751823214398993391173769049229841500147046679387977635708886322310079069780663040819950425091310431573548860049972674881397797829059151460305662661946774466824699915094284311274951932111154212019159090599115546376826848899099545345923159852727577503915170896265015792395148961431692545229822978693058049316594619473310948649948652083493200636748426728944114572005510158812240586540058731154504984160029472376241544275309605744387031943305490649667475469122138674715359346395807296646309867206445920709041172106205289170326553863618875038727215029854596250383561700481671015633182126639399581062462874626238343726339739082894639609657374199385387698645240232068819971032692661872615993850308780221977951969652835113053092042466526712761328793666840171112652134827272914552638054206827812170293070277058683326200298732002177930643352779199379281698694922450044562168391767273533690983308945099220788368817212215105163061863361543048832712627408292540977668578940546366734900164116599224595434259892204018804953341055156544483734473115793388961199422240421794688779354406169707755664927981516995690628188362353974509140588937806731755753411208529345892640980310856060810251384027530412881029796825701628348763204946743144247073045690890943520807446964208861475708391064222433713590281428928717921966175186457473284561896725353824776347157374065051328489641259439364016688047262307925587850616543723726235654903180752332335613224721199405371344320647438929402909776637548328616460842940487330709776792159242728945007630788545443067193200231380267312863385539422840892878074912428416783367581209588368589918029102124286053666605061634239491462027311244577772777909789791840620738491667615453047982490216426979786696558892794349330116846948551945496145794384115464667908841563026814928656864095156331339554418095573968125223565521908021523097408727057047251504683887073995987731793726647754117874474742154799323496891474465398424941327150822090132751204851466941243400122729939168200545634861941639946634731646813922646945599303469251651767487937735199492896767889981278650569006432214629810799747823883355337373447184959061852951635794635375909158564623417330404508607000433027390226257492722591580890688964115072185686006742159075333084628154791452668568316680336337350461941988385332895890111899289579485436028451836706091701141526616284732410319718602449044040598870182584974980550810676206393833825330897269685749556801458888041692621723923785218955900161619860818232628737466252631389350410576039096189932431929455471342775606964774469602344850885613156659449870742721961742184600434631102106986685463987411528853588157625156433721858467734805448962886096194719187626773842707465934128570865258104594239930473625981419347341265675717847321894244649036063478114487791122082154220803384257708956843838706554986228289280365480993440271128407220480215202071043805730556092853831981080120146909296428219451563858884896961321950670646844898103053206270438200405921328541758345301546834887351146872556793565633172622110270772239949495704960207763414537478567545660026437488676588622285687172565738118476313736179131653618772460859401783390460350576600715834279996017483517380708605807695347304947705926443205975648288599376446436926447409685294647958436418379902419633278752991417397547684060590860936051516071866941249161489834415848996271041015573249906187945499023806532247048082516305476749511175045351000230737795271481884412130560963464533256636493471318207289698804168584115073524275228897268353464562838421269869848974123687078289174157818049413295015454184179332298263449718173423201757786274105421652185286502424918424865155160418833956191619712759435464653291071435959053291014772216148903544788350830783637726250910233956945189451889507330787651242043881172125839476523402527802489485340647870509165446161306871367156165256153056098105107327995307786144058249413968070433584242797114170440760444427839579334934188795703895316656266274438261506758974599472261490638764103800762324612110828484398078538636372544510020446982692161560153782713293477019987830944444200581996153559999058298373405373667963094873409453425355276790029995302804308175981963216172235520482204526791356194996746358145019159026623052639845485952041933853186872832252614109573501157010525979953005705984596871706768716282996268515960359069685213122371725252693518451363037250333435953383123213127797938040922218435820389931213715454163245230684321489950268379379967209789994292618386512844896674006712002621310960955803545611887839738385447739819972532402733240013198531965041823025689341272352564631146634426187567579198139708887467805639170845097210636678660917384527225333473319139589967224589043519874475545349745809114674723532204789021867939612189224273040508820406133143867533821554750683465503897119580398422521934453469119366601646717948168671029936775907991060720379877176097117646751775324564791423635933818033276406746604240532199871617463060792562251381718478572281410152180770029612241021234686778992944704123191784221503730450754170851681155459916927286440094173842550564751962739569707369106970730255358015495482551761504546615055697549768434245567675979983954663822661312832997645846387797359849801053623725940419548687580064920670653598670322148343350650175971597838208109474966095695785809143452226401623877540205142556834595949310661312625789392078112981043652523877551307088672209457966840319588471950068395554740302247697894074891890153185271430480111855022039266479853185346128931343849336774674689321600949146037862037556244278484648098749497889951856907670089409997587075335365757055338233023793234087089243644825849919201553069157593533414084812392733055558960981019449198146719715107537020966876258853787651963578685360188100021746546357805536760514646173506888250980624157634137109070296878477884877373904888545056412125520508529612346651155575809743561687277906076105586286639857599547145067920803195055714654494001777238162162749862379693361807343176832133301068786719350822478692981786938101271159253309569110346335128740194456417073320778259453226388767282805785980432658491842813417570956832130687493328050799318686263949707693579100048567086251402615272179906639715276793993598897629780537332838881765754665556091810342740104110944452870313643872920828892606850698454246429383306153919327436978283060350297829787453819045247561455411432480600631979450299477085734105077425816399354021126745195148699980993040582817856151581324533897173635731583296904842110504228180517755587753249689124481539319732874213841104918656104301723905719356868282544172574256177281718018866810935143080152542514123527347939879228910838507392270321202683156939931353114316811641558076944687668195922933133662935802547126078771241447873664709649939575158005936937805010260880318499367059925086409869855909540963368767958836241155210507963981054231172201462405013518871667971928320577483436554473178308083372428171840257530299524780417027809801975894545120542008952328674981159660620297471270210194361011063959744290659345792866338118827264827408214564761862188499907202313133851765251555814174376926360952269754882886522362986438127023666248239315147728165850920992704323178392621091606035834064244961820413441758124964549619699267668215976437356196052084349939959976335087664180500835836015071615998637065994831719981844572148393709442686416955821458093582126001064359060446312665598539176330230278467183504276976825066104651435638682620165212531096496408149292000593333451111160868872881043049138280819613253883013429641153455644491797762980315873758665883154342601483730808904826025727560316615374765016991906061815138693554029091689673694995811070001156871822788807206795140544088702937361571897114129855709969121965413473658374925472160919446294303374463609949577778987813469011090778932816777430723833879517290127701942498049904881179287589462664387530937544353212120005734141193498188149094598530044866049706749414364549829129213858709604589418348071780778405601803827111953894596965757246870714561785822736039225276384486871144214005066282722929776500086995180682948502084508895874117934923884729480613750034632559180239520693784907160368673816314963971409615200556290036345121780763875515176751654863385902259786047368259428562765259562263846252286416358278078413723608584365071092571816618921670311506288756809332810020161353175962118284761669400375566523558803835893867916465856602535921016404062069712126009244483471887826660672452625936253433568820530880378341765034007974054374241418637665860635766772224088848807251125520652505954559044506364846131991806155731768834309267174675976601262225645292711346252473790445356659611855641922829361653974557788345450245273968355987146139898659107635215818717303670929909444502577574225465035120296251279616050769562049776985326355613786382053793692382664949970303794125377546170222086270762574790451908722702748599367996740770137404566670372798328068525047280971023895800853718241936150737979735587164743739893129684780138270298938281100346770487736942663071133087597692111643994391278377753499541546562425103076761582519548911763627857443832183981396743089724358010235775445563953601287601494804324617802871929631231324961762017386687043546061175344307201202628760469317660636926463168427205154724774060724119245744135070979156490363595259714027469070165243641892233696057732247985630613448424543201183245113103842267532726960501456261500145053281317943123693807367097728905933993227084950531440496389858534491857898914799308845246706631860052576079791844234766330490557415308896434128140761376092854327630280332329002095241935518947317394180258550124558783933112266566357087090116594699291588202284461521335036928319855710555368966898110296042771710128002011917390292014681379239470351316449131784755593013063551679240667948685078830505256394960407346000420909341659344853857682193707607498745506808132518608298794693510293170781822214109656889269426497880554380356656566733049161858782843138840667200137298565162368236294076924887924264786022071144413467433170229791762321522711973562979236833563275443859328154839685233897046166736516082673812392941820980001004694901195772991266726810122421595369541073971675607891282126509150704523967884449514730905395334740256952669147827025649307355731103596798492613635741117662914011701634554940066392484265299914222244359082397103469817195135282846197747797824376126806415322439033500781805377967485678997070282057595204539655525411046396473968544714029814765072852210147975384867065698210649701395208206081082329780595302907876001991159602988548657694170502835562835768237999446677341169523606027127475092745716529826106764004904219370710681290769147568105157887228126327675824829184661691163362017717536011200109743599596100366304946150825078716875559814061921992992254265146453126436988209455845522734303258922992082505993876627745085691128366191758882700891889638653986316139578109309637777328591529889402787363960904575200274889216200747707649830026133193813894215914222064034402463414373038780414097161101352870577818039152117752304449729580702368447963709129917662510004238253429330323905153527156796507968523966850901705882349049457624249789173246159565201534356344356113799692509948559132247676884102269565879735607575922810969489046708728373209439300244885868684360289751964990713822712224323605371611350968276599574136573518857233879967033464629991791100331740402169839131350803364418471581096643270837934973431932015636754190172681974359724990029165655662870956073603150323545497337156442567062237547374429416036967429752443474023467798659906086635227204549561177798412565635403631305544236768076909461695455012620919259085431775583777350754204818268287917543917665738519536584279037801338296898364900237875724610935311403544756873175297057459780527796735287642113280118501418718007562736646602429166981206658906662573051792986818162817735637795219589022770583203950733165041176085262913871310552212560760189315326713519538918141456016421213860154299286895041471676563149536899894382180316651041955861152772815114808996550781352363797736096824476428825026980678656864526093239596791166762069936233107201320109587714813837889120562263744270149567509035619274850569600034697076385232185650284576592142816585883256514850831155636641167675031739119201179841466374198184946596923457016094782000471768593250675001770521487522548177952156636142409539328617821988289973122857473574168617092203828491721270149997138143649420125660106246713959904296780797208268814756862245391975259427568779518754148142043534179243188653935444478110274452888078770745946204506765239869862665934560403591846321073966721586192448973299797243082595812884718661583147018455666200869917840332430953638764130563825575611086556526400309857931491255687292443765452399738259826228907366923351442833753971033676949891903781507915859080656637359815604320478448945976097734337763818533019697689957786633224158516967322049363719020555913361296603591045504934856052574344728903407999804371537378113259042254555726557036462078856683524538992997517924432401621331477455516224821808121787664890256321621123562967905142905069021227632056088167017567544593404465408948479240124372044367260668228225252628571265917544280569877904133627466974116301983356232322736102167065022752008228267565066098551753712788644719186697339571627777843512864328178269743374356096705815027719853058407819968671348386183525763051670912404595005373888524397238756374323563937768566580429613807318492815185115763484991077360989649344567863895208375806192050973659900483829445059104478922102978487011343251132333304576894176428912714287411736706831753940743800362822077013691457978370771466351036008635698237862360414947775913602485274506416234358367544732630117701426595893625928053337305344219123146733110074200569980751740336368366041000329144652273493714637003442487285567604792538323307624540893844622864130140339149564698111007200307558726024533722590718273496141817266430482250082078630497260749731412547942773485534896872951014162615824761439129884247383509029612469148308022951924419055174681066074198163050301265160040530475414444871232468726725851624137832709888712824887642867540524874339300145120729311973446873484077498388292587925099237786192613276646163186439566491305668624597870869256349858291398633927374084711927986586088086314484362009905491291870096354695604487431300921593917610767409275767170274817939864813050966489783356418186403089013814556176852850679934249700159555306630101058321039783844217058361188587715719582117829986569628035784696992796762797909985935987556435846505988659901076843914841680932197184958128143926041654895961984689180724859217649474645084893525211721713959660874633995102912708838409283130610945199189124115029747579689990713989015395122576270651605898673179515954544319264282831609126695365643738067742423550135297972892352383091229102780563938442886825613421462278942694508711075116579842743593764375726607071079274330485609440238513869376287551161780397307320525837059716781637959553690520382798150781121596511460901281985220730642324809174314881806045471148552657125715505002847794385044138691460427333743329137871241287977491122368949851801217517263530966556551628456443002767668032504117328309928080463921022029291664127952667084076860762840606223570585778583383891076936623890580106138724274090925012450179144015705607614117674708566468596177967677289280847714997734043393859021831654607587728482134920336708015835561445673386962686150202355334831356258841492798680788920057609204535801114469622724181942946389632790908118171433556500406132033301473410264678173190294956932425390243228086193090679406575193473956279536323992052504964288387839459595170258243827425362572417469057685887856358578599929326656702191754389318753819788728103075411442406071870254486913994446700490636590136437659195190899174124404667258998457060727065770477991897635633352007576692471771445456926611298482048372495804959060606569917424203931427737660745251527882985024466798498588016775616939740790955905040376374754346934794358532143473382901325601379709914055267296760197849309192089345991336371272746274634674378932818998134649424962742912962126703752351792591738656676978715239045819791073043441910391716955552745222189131819980066753628985138727825824364638882852393543588385716508748157155167428693328504331915560269395768973901002167463069649244295802179909442378979989352170663756690338968584274045542221948477997609105059450301624064263046872410429776803181751526500773226075487262602795202873400358732835620250746498962798227275399308277249113250798734147888484790337549256632208116099298781386202821906677800508047827285274235498618278708193277289404699215674423962588066334366940795545171458104255312795047367526351064469506859562685170808253728754622289039478260399569906789342407209392580066786060720328729660010009693698603362295852981748335071544017178484565965938066154681871105285019453292652421864834502304290345754239775537508144793510635505830024794542833560741544233047656497874185488052570477169178746338720339528136913761770599525909147225328118229781444919235043730873961326112576007746757666013524116847923545203269186627248552022612073956054741993374559789647649076630478860271072502737017198634408788388288647540550041101730904522861557592223394315995104381727863121705853952161537034095711416695525733085940744446170169497282207622496138709432507566476535100600423841614619348666494309442074701919106123445187695613446700568879714990362800667160593992239809588699103096668448143806081128922699812162959330694926645238976518004731154551841728719240234898145443300707633408189443775823158936292540669821285517667747424507941349923174471859429212712918630082923577643963865224072026302304092565114287208465407184075961664189573086302356279420427506042640615483415206845799117810430731380281004820273741289524132683018829994722614291714853069706730083734187388164528741144204587284541929437579216883726357441512403664245369421720513169628742517900428218795421009151826751203988588181650550924021709215540770375268894670064542230931619651015959316634948080542528888234511825117215895098142090807080741174045675909533070967254637606895088791693567579807826881605186756091614613461755807907829006424053990392862913757841895927588157140823825235637770719379816679409565539093865621754028268360620698891187667079468712713177565377774859770184429525698394366255172713998839175590023007731818436192775418544687949359979619922785795746396094551119691477253639348932890942566430980109414362689660696009353131774472212972279551148725739738666271843749793853092798454768502001109116018393850905788491138349517350217979179559979671553715308770447173969237585572976077001323286546226233724955676270366569535664219968646924607450968519388336321909520867544299196281377950768021680504927492240787038631700248363268001200638614410812222732633937455308788464550690349044911920833914533787826432328064844553152833425199025749236063927405585972310800854230535201279254174343583913750440761868797661300325641646708578436663191097069118834870151363781702222580427843756591319801410555192271583475046831520742037922983725769287950711899337761550665719239561112856346383654436756518536756957501699720203277438128797313556064226014544581030308047176781864682215485083965087788909678101753119041893901728603873292432038606613260907775091293618419013770748340144023163930547798711015507011907817020899832504384227837813463715698524129916359034422165334463921813008697564794194683349789474737210116334517831930686973298681428811110946246168860911762177819363174827271174130697753112155422387305627336652657206547665213465615683899328842997574674561384573355147891550496465342863561169965827867356570872076260172097282520012338501133821877647609429583992825634773767023698771204468353791529334555338130097631303765403023531084467405684033736073361462690615506495411812226550000531949104113232244989840919812840312368248632806667407402641934133230748231161117665998433592765047227525809377863830005149261305162625510066506025877781577378559736000182860243137771417697142281257089964516724737583673279543832055838434571683384065226085139451848670567599284470885936300537408809649988677830802771417536330539539497796836591262028128533249146701666547119809336066708206229914222773864913620790068019336418322105634563425683427106369354152420351638358430814508274639470031229549680468242739619493968884625260934443083721239916806765715355427066358563294820215198593921280026105697911388134939737991243797463561869268062679922632248647425035265073313575973919882343814597076533010571902941665547123152916830392672461914875536490732139944423612061305452425298938034305675998326203160324338668943217085565339715656545916165268239236087815547137163866225240192028389081113208318069171289752057823143466143176520560035194365345024424192068827487924414015459952866436737582965589636509797029893271062888048596205231614850491114682763311607916378395221792073459171223565254287751866293246654035876092705941170525369930233682065654628602871941369073688905917072350421639333554696674571140193773569470221941207485695616378170223829245606994293227529972334048201042189337729424205600101170699549434465632577043083481802170645929289820962360660308655362778149871659647164047222208927476495312987688585227825321158585129691558740036450169505184345981524424803007522858454982860243703143722498915931368615246895427970984520029024992247407156770656455115347313102896287695896551925403071757818740107884219119583520039454463848163257298395718631199810560809427713265644313927208082616913776739117650989329496961121760246273204013902058905472422676828975865539662426374739888327735187963698278022400897781785096963330657928204496418849028514925541455408709920973749741189812868063677075591517545795510658453745370822197162664449008539205223338507625101053435810576035836233543589200791826791159478016370119864908267160906999033695718827827072231354197541633524007426309592393588293340467892807268751335174148211539438836841898388895541234063289303909697202241359842726423247600136983104084660674208379507084152178678822602222489665879513525660494947081505119303167727884929315503663117416372306510182733271213641241717903343956355923008294215588861316078392463114488182062557831827004610714477816682365047878701138932172860150983303701043594183664062222811329467890156136061321311302904603536810800386866633651434219711339386014953183329806830821130550225685909805850113109018239179393272028889705627254861665384193111702679391468665979497191914761655265290676095854683322626662998825502091718201337977391067352360799514798626149319145881860074855201754326971054143171084508141860605269880344448415032028115825293480546992845920087444122200677542465359161201158231130838863714972043221880854816495567403107742575070468266874487328375697376171225068329150838216485303080595067904597140501753886463238465824197786609615545691342331824579467783323875536929887032123225041356924396550886987346404220024615425536446861148390095957930806622096751731743487357152130696175875512194445745256250431917264713443704960573313071448878617407617447144925575279826811562247658372141848666458503266080228455626251799420525249482335116669088449889622867347973692826494828044865280092857930876535366542189948793419907664986155422629260405107324144259858363639187821235923238210135786427338118492663037605533340210379100055570952289233463877405792529536561808126763256932838063529739619746681573742838538886762954700052159307445715173457174746581343617518328928133655873545554615658628019730554256358180428423243545103966533549394428461484463330762307654317121948743804630786671939903658661232101299658461828747307228193044142618471026924552951747250807548867654346257478145725446635855638979493242286585825923658236811085891324940425185889416102002731184814249521458019375109805716272074690957615163391035675746218695809115093066613455675019083990967176558996930797686883396294186629204016093402768541090976800583309185080431243040275020438736005736065028361945289104230906453883287354278330190138423714415686643582003758508947649961804502115206817404019800186392892365365747512483001991350045900622942442882190011455444368248520089235185439830107091090383971782080370625753233492494497819070260802286630349535933024065536227118613921277849267420602788486948896230788896723252429466915773922930907117609417524807219750920985045122921115780124598025190657342830997089113060271862657120040236254841432174105243708284995282276376160715481568008513733952910485238018111651781582677877578386480322167897593517230049969840833139200825380816339191121338170656818405548205788065363686495072562623804982389036428912889951283947670102069118066483599221041411859044808304573333490531931898066603250483712337508371675021263022923750984613356376663708870138140839843216051349054514305709077733999139977452712384853435501547680009896365402859649653965225135980504692763886732381485761228629470642922495241715074728502912527587267572610740112959087790208415340697023533147170108425174167153818118565153349717108398579275553340988564165294562915568640619651537522027475273421280471988367647020134300334516721695578301071033441652629638506495301353999706100288720902106381685096352645176701633118707623563590498984821520865282410494081987867352002454378988028882472732412909612042207262996792534291299211973038838121315958394418113495416177784250441403461959461105330697776011467428957157110492952460455818253261846481539199052436557597257134201452954188328729812471987261743428168977173788005613325106765946133532466648499883111618416345552262543159087765400977641211542649769909725800830923049943006437191608014105307535231627975833645143176492783451776458413530605105660528152742888452778860607490023399419319320607568099763224954505247457642143429956227265109305704186875817170759181379709948325819965205400849259800108752135904494429772895300691222418298023529190511601108513337712429531904961782835594318836624875963191850165611406310187934876350510199386056089115703709923050978623829477534423614912837163755311482548313561695752008448861650172811026656127773860341702632555524584125855438775887388740131396487466984216011605157466328038979661148127997893928536828309698517927729012451633223303205874004218383633838645691756547483787096284154964754125142701566190684152923426288684616794599837825659668959548067550836194659036318312697889814930539632356592325075601697211855373986845112961265572426562312620339601347740455164595206564724665878546869335718496417895743926192960256869672895822701720809478111807008365179382423865738547056457973805656961148671766162561967945171271296457934650905572856865911098924984306552860840901904168535031915279398310919406169735241519655646458191056721620128280627968380898592174096629256725502332327853216021054052892797941106904407473250434543381883434702558677711949893089053818438607110572863815146375787017407820839915683632576791385437286143269165423328650827408253365881999300002817593579913296210242051049147566079778426775524784998177721211781413746699444619215866864484042645314601447690820964803624132115088249775071848884292666840806696137700885115837650271856632923988685289729830397980499465741220053615488419252463216532681345339225187753649779473444438495191980216857164815312251604879250764757358786192475324407518697966114534893594441993995670959452153109082568453310598134808485065706145522374315971167627667908996157812416896116539141313804613024287410148628411758074458745612468334072795171117333211032988063364556072260293385548959924647467135521837838572569237776050537511058764118974268932180408407802567248724467811385776955809067350618291250181512640768460216057096567572177681383000817838798246350062411281315090913773092560402267345472609051660150478598877171531646598286468630125905881889209983688218733247821253407528583767221068238275063153694356130725878984172616595830018512714008304215811013213543853263652358633252029853702661073386850830251993119152322021322358450547321950866386540707249778306175130912662454768097944225780818292403614300739610519535844787823375496996908443703870134325988711766617084800197639215427672452956087352944850642255858340515957168483582193983987246285180444029258902116482024484330447235078492387920641412421176723535756974390658461755036774599074413968632507550384623940270601527873017543346732969323174889701902153090505422634099944945279361762199020605078946344264914275622313718019365954433944298789801910084483168966566736652449429384131921527603707554922175679464213817533088788346152698411396075172541152642336142241402361927860384158671493714146124685348896565729521029426893341907323358451589061854553153694216293320892365753410267142334721534245052489629168752594539076028946432584818063576741128395350135992712056820370111601464516602988075875948537054183025526998999972633014704963554205705434489661327178711810575262050545759628250147061339097224814483760114623202390891839799897415921216684308644808334913171972940189265152527065579002979849772574694589408495188095339560976207926866395040797392620745320118361544436256585454428398069027580741984938014253565721389214296161284519751797557143556629080566023961013541194396994023791886621945129738128477655647419581134047159921821694665559459443930462740990173152811250229931581039280161312257562415013972851327917597767888831124148608746713229655156077851351950588131477193499024858294240066444899019921798041269654311585733790749891937956345875858430383504792045509046731463360777592672124850996784711365454327564750647514187089762637150522033332477806747751302862421133793270054224374942331834248047856292732309060011067134759516334863109607574422189993591543545257256713801630260731126319037123495641803865483245469376152957459870322465892187003597348950023009157111873604136413175695965304596232805101404138966336695225682186624207965348141392127878910929490971584379505144448445777736666835420025527433639291401019654797805671887739012724297269046889998365785954467657259552960319783760984250177580303949970600064541086875616373532627570987187188065940670601928875587479841375712907833237086000308301359686898253316749209767271458601016394713796512898814026782872365167047360197810781807506891650317184025906009047891554478568926950891647874632520095265112313649678195203371480090440387270091511202301170491606080225814975078404669770265162693546780983384732678912715982866873391303884998529513471206014670087042751761716727566192121398826281370440268752224184914396122493907443319309408247465139011380110959476673583679038301665778999126405719517183663090460030847515646252170946031018922038930883594498112048836759706645915708918035347321312205221264171554790394280733822664088686845154119161825976167419192179087411854902668370180399116327432218420325323319706133276887495032269623089041174293969237483437308364914018212151617165888610318477861973330776765683148183902604898069065808702423722737100073716345019736145347214992360469182490241524979607070120497589377493215568071381565503401724342442424446129094854406501364469482578759667754822152349286047526001500810239721319226768119306027044893002070823696445558298460643098875369202821843876920942419858524115137818094492205676697044411900524603578880923952722155152266694920299836204133777664318760058738322099354764471936557720449395546781966268255096565962475270395562521123912048319806060901671928535541957903055637088005049238380832292455169755550554528508238279726705072771607874536962884645538083739760624542108253870859513561439074990455948257142147190494999828751064452028005222427261205071524137738125753254050935988959940776475132344157093050502843488991870836202360285192143295000518339941676429301383986016212195959403356571192031767643172850907518365945988959562695798331198095153571379332158840710844207884344121476512403831360814689945379741361866579921303805600150917972887591336440839735261971168123600430157518284210181483618407956434399353748524159029445894598417244832241357147776707865607523292458768472910221735982230837077438661127849598192812647297563038536036222851539888903171576894215668905646970421482387385746936419244870618483272060984495140351746165104542098639397904511614827540836278603756120219225526017825628254843441988344257069186346017100065681357734065323097036157659144685666944380587506263061221282064216572435564958856980923531967405928679743692520433371547823297265611302388695554881641150487939766857608069629042072453742292084022309064644437661773215179972650117419355139969202845690504440161034141586527675724741628832705810977266770771151133029680449326601116599904526709144129087718764922731626200823098904447309065338118919783132003865574718408883221287107973566073373107405893795616027811741050379236707486686556919859523638165371836547278462045266024939275608468788173720255551605999009728340701863650650492393645448739994497343462348720675088751396221128786884176443510868868258606874715740852597883272184365354122923739796793534567142202393226988423951747289387306209314061826778248771685385538944125024797615962878521701274981685970789839537671390119591117222981983693716468012098782886270518874527564790256076747048535435785529561922277140850314921402416468288351555401464904608436711497918618164700645451401042003912594067436968164533099017525833721074915315842585129293313897344796677271764969772568050253942051405611545464505799505568682282141312322358472604903909952651902813148387685408035945904363051018067400507984250156157062468348286234025919005636306702535074558759802489660686755068315348502039032272351638096121321923750696515309618173539825297892010469600025312051863856688819826846611256501313188316495485273861020381234391898996050034402261301823204376235710334831967309047478805415601872578074406086016298039316371432389293505982545128813905242306826163199631229698701993776282176492270921251711144504764003138313582634800576053266013499764612953325186181070847551792951177932132692545647456873960643583591999670493706679642116003443978839104644578344078078122067628403777150749717637075436045727192528419751979929099287128125950975947861607191971077929526447343107504262346099557298279003898918846970615306679751591985748289045707180079013699714826803317320081364340447731696413101119885256347107559573200980622294504922030901673527738379885772255681779582572428677200444079396019330128446244437186035924422366643802452856066587075449323811020142924949515560720634821501727235859988818037468116076894736951330469407089543347291599642007559146567988761559510562010494319079017425689777250075937467624342852223293696145388291906839668667698103258281176101667161476344771896072794206789941652132375606963168883857087484836339231387267451833498291421299084133649260295884000806640274183302487128022859427397228343978776262500921186669772703534032277760687698353194485626235065410755864999462329531144011627700497955491921084360100326707537795256750409404756280015323315262796736761586884215389029919222046430423768462870158738162554053269932812644507432428987286740538896554594399905583333012165141881676799517880577844394057206088339539573401555088791766504272765523676815921373068280917063381998636238164627385215296227214316628487287364405520571741871272390157383423730830057111661460636252962850595152422309852213553959874910721902531674613541300543731298985365862233093091456385790695639942995151074153241125132838363728342872810308971587132432557084005024856521325093364696261961563916601525502217980717863488588598420466424083402391103623511692297252140796986168895489696195721109925309463956752171526115820453097865323317434615155124401837895949179917569927511259315059455254414746964068120253395945055884037995940616767233643420752671133129709961646325809274207689984366639193099230378117542368488297515746848658966716482780473383971762062494063923473466478148853444840249212638824315820774443064312468162294589703739417042324828167730032126410255788014216433891581454777710018986957062542284119065236659077461063896025654304895734634897895624400660041787905366587031953067322342540165037944284428942024091696353804091850173492334282607724203572120608340196373407847547825892763673796612124565632047300072618076048009396608538969043668685523164340979330808498159275183881121341577246116807385720063821662676253403467166042186397029213182325775591576747398142699015970367439011057305002181797536679515735736819421887768395513629178836748239534930593925323115564177130796995291921996791082479534085599496224400646863337833005995227631622913406050853638377230800388902613614913888039127150222580461471456725095411926940767271736216259134074650277360936884799417183954622966982669793741722517313154012536942664173160495256646620371868763660226579675885227956912563377115399512642641271651875403944260177307368982476431392358763579014806606845360828915143585372666393934974284818897234966287409488316715156572084016701660975191317626639832615832584167816427180896472546112824167804105758212806658831996830957740493272857715671621881077270564039006606545551723111228858916747961496868552961856922130269991362560101010642606464855407403488790636245313658656451775226079170517414135646073846892768182023910825299179884900014330268321908006798135500630074084963406285198254159146945648824193838761602847495290764129221414009733129085011228144852029111920269434191190851622591684282020759971018139763628253497713736327128021436757208253366656574883884038439108188810066475619699896807984078214400116473032194332270420316399229935841934927922839527820683918491677476670560322677899206844619765128948545613287628893597507210259214218613436035577082778883009861303695207511978370721965886868675901990327417286452255463588467207366325165975885373442784645814740000105723686599098455594707562682104151849008835974270887366063733377845872073939929136803399744898956503972822993933879400704271959811137466990715780222327656721653009308116232541946294295996407357085904785245858725706078347179142732015668285452385930173592724477849990277766231879696840508388709683534844853331545711826817790931351643625104102122119039367563579385694505557872940486547812466245003913737351857933466506906775694819483695730926285029989103775361922403828082050348147636588828121628726164931143736161085675124563382523424063548478153707068869252919943892654086305031644078860166035262151542441627363747682398828177593256861883182650745968994345263295498300373475627846173946156559480887190694464702914555657683117735382117169355767335761443192012673446731450314192158172783507365751968308726233034314459994358574690850267300229860627431262105864691828900964781851471072332680494581464716936275681403326957749225096740374185588160120636327372203282254252830374377345121074876004962864514300315704659884895261568287104172559424633116053330557937701064466235625243380782327795778946106685288346780686778945745573360470635576748357098607720269848285491363713247612154296484887785142124397300198833901061677979364240735573830848320751844093092596190079814332773790318478450605740266584324686117880550966518890409890957767923184893704343884021661328588519433101068201574664348222600346359142372594276687453231743976142790368198028236419514905712996027291479444654483874812453123737462084085276610215004123008223650876325689495887725800460522268598871890246735677492110376236596914474914681884092428953794900580542213184267467919946639176423827767797309399759287883597124888508401530523644712483530920976327340468296481756033666026199576967381394275663470966465163575503779166604513651421985767721559943317661506021391372614744288312191486187051310300110651376779630995808847585573349583223150577721688855800621013686918490164900871523506565452065774058854671803718979555382569005928660832333151113527500168297919461202071276285879901173762329733359355627106819313080411701048528714540704971221045681380557035838675289739515567155572474304157953002618135576660460476888744910470510870688993982779956672175694850050340237707126363614492846804789793566771897849203022373372153344281435746425753423471796130345191441708327366854871335054783365693759107252348889440142916782157666438724436529247796885577349783110316552804795393020555060892520827719769266646066849533719518150066505011821359845062298673995477710287519673396592847307938224539530209270120180799007176769069533286493544612250331400865306907231026676844281803076300074473617118142613701154900984948161570000180134878355007694030014181677114904978722965562141425451914372999275263407223333746088265047577058951064657753370973357815271022991383554437225387348132234849741981033263900556021648254479026313332984075254272804383435253491399688521603659343316485088359965465365417629304223669401244793607149692342597512651412947284987842669648593279101387701451024982143211851779934404512249783830195632208504229478815266492097194851399467313595915433201705749966790203018722129774777406137200001935974057754600376003547327361687846537130845571632603535565602830613320926213924096731581688165679341039815968304128334314941076066793038370042539068078090541906490005711285580766952723622121278590818502514728383427839799006998681029058473477815717590581933052548170176960770103484702182874641862266173242946324238893633948297341298793511895477581921968263270620019088236333393297212848961880330155796582570099619679133544794108840738501585910669579198771047970803206035316226912816255336809568624337906333865907449939486518643620826939527285741023256386682916272281334672501925673633470703387385143436400724452638219935765992295871691274787471101678521226082303087691154005297369791778282380553727222438838312740104388043141058499350201965672093583904879179071642332259151783891340176701903820513145696623453756299765658695921199831150847800468433947954221415469156647119506336281981596091369507496913694654661943452939113118998694501767238326412376048461668675014472721578760966619990527586397861057520988605083478091684780024257828096779996416441726989750447206726362316677473623314631594980097057787731300980440591152135336439270773249549539346424082051841538055212907511894803173101512528855435124530387152102354855129096453538973061341771579313678952472005773875467597080098364001107758729151780059360124307935167500765450524817631903919407462360633831677503553376680963401778247173611663016131877145337091313697065020993897686109987540883970362497324835725211629753192649085279657201666120061579084314609730081623467589460639678705353021096973002196306542729972798372054297105095687432326464938971827095427228607479126874076282469138402250760238839845787582088134338165837209714564644953815931408715887006795658762226095836398256770048693423869732274031631864822400968013908254712799785164565360709002502546692143576768416961552548744447227701891600693190395580462000292080019198741840266265253483752650570700352078565727392250772209890881062963109885788656119793622475866864362971779840273463008269212791489062184406778741919071119520411981618050552465742834670645444755160547311454431700868788372422272758548316664522323349853476178069317188939646116116627578155297011188763765895267455386930533024020109414212042236094897247524340148636593847734144947624294085937003162599337909405243281020701291928006898067856814722903625442039916274552609788565553783909940862744126304901847920047651910546724258064167136349973783995887866032289800886328160109198710864381346330957158985172115477409791936027842769299345722952114424607772535273471378829063830302978947272246164527009642212533263456996754201205604422980296444792834433550627670380449025569934527156377469054830309407712256123929780138186005884641384751694847995837713291504000970499654843491931624011411105552587577139401417997427608383243452407509031376210474642263681297218541490340163661884131947398510683339966243908661678519098516997957092020349774302014524852134298705501057844136593759806079211346847609303106603615955159296245272851123292719083628008763925604602813630370412766957850933903016594752092492781992825411888972458865548489818720649516620523001404488946632432926553994303546653169100588227653301528466152725906090995010441706886919479981949267940130918471668920822830957618630011839100856419831487776885410726598709512772772911800257108076838840995627460261027469274302784379856925390983592207444345890069839491652906221013202863817089594374577610759616426002635443522893162689335035987001154871510342901138507057739101048768427718700542324529095457854106097342737869164388754057841562299165508090966225578858689049643080666220897664456615407312224037959158398395508074254698632658872185546743775428626928525580447511908682870008566526325222859072592020437694195959530421537405333778274843486924537074624141350662000195187649549175657259050506371263837633032626473482347796894317815396860743139771962356250656112466105829671225244602886734923859749576038304092260900974330909431999428230371634535844920563588688387884114501892702200683027449887617170953424477605411440198919669474143080817271268571270210154227916342530402437296409536672992771998510506522140556229440017459029398783783690727147713063909301074134696816113404892601385713718795189655501848116682259194823735654301550326028593988879759621605091929554422547387155856828595735301431163607764972367159358217726387197805603603411647786634183232266173348748212550640707223212745562457507621586637149239271566037475919936240187860475680997221020995411163999782163739627023085241932335858788387346313665252198469277835399358324921597997612438533740105717698743241757780909676786637017553007201480746779899328760820505959880995653040593270170796101461428462601209010614013125371466591969095505347973552499304750827576389031238172601214896155418233417774700379110650221017717209466329200494715499202558552284660862913813275676389432231189631053642175061648805882269554287250177203348772232967319436643541030517227940577032220638332036053414500075908266308303900456435520664878113098940486131422303367653738799991114228286238697547370756761641811775990509523200400944973801364060985832580005762480682973443664093758981213254176026067051137123288740311618623277729334914504679526624776903991120956349405012236070001051907288593262315528339694125070881872613428058673074458741727729166673255323381532252961929686064646328837360630101145650702614839396740766461913291994188843419585617198759865207513419778756657232822954949068194874804945049504937097164357506580428729177555882107824468937812114266174716601953944024840920324915054766684969272916377639476676209228600047412977215215860121269937110728140615034812545216089203428033648729341887167589812585303848046209408157542436808155222336086484266840203876868180461095287845551763960648369549448805829848295885928630314610446578760837320919576203928539355909488280189025525260986399688988893144285857474498555108604951689883962303836005366789490406493537036186951468641727385377904004015577763416792122622528312839037230470268629802789849181188914601652345494956513575240954474077625287998456938654217474999365554789451818451970930008449867844488703585654629459184221959028851369354156385716215823446281007852146260296083930844736682156797279700771778055041923329177535958546091889879529024645959244139606644134621971070905861300758569994649443035640193655273775958349024449129109366188864846089729672693904621153600059021869380258370740083393617673438909480912060196217594601550918368425677697663911102513818515879552920851902595496510538284513411179801598592917257810442649503826501219904019883963361123701435019776165921234032734139945541219657917664174822854306381680864621515276141159111488622016251131028156955172510321410709392085431781045341458277464565544273556824458718064542784247065175739597060976527690939348062622774876449149511045555722088947955266021318194670568693285960760630419588395870970925859867316421038367136477998991932781097190635605862434583128227732831977298810838546689268487525876150465527648567330552051325794405551201695726940982453971671335254338448305075067686178818229081673068553532631840128399101020800740225290527985241602911900372031680524860425388324474559321543564244882569525989023064604928547493303814194952317346546519223682855324005074036394729369382346443009917428972179887415653726114016357575916586884906887274092371473182130094821982257118496920956099919027126178248754937996792979203285396605318466794997861673095125527309718554578124923656680783007056839247956475345169534157326731043620749924484272048005188155801118991085055250548472230879874891834000244182995639209993819117588910752915918677709852009540746265748601423796650830430114193163799642752472625825040591745265223148423684347321478647654455365506049364611793746704363094794492971036148243174933373130433225739692053029578176444540246647104120376415936317598145907352786476605048262040197632026455543643402063569821639067613846801635714741704843909218744590197565523701736352493069105953829505544925555789134901724549879397266597237749715989221674780994346782130424664636369950490682303897846590395615555240408591695115970628694304719440147107531766378699919669724192703113192464663707357585728128361095637002419935604154059055403548270332539044795885803638349997785510924563683005347007387520864288835197700497194744773082007042232972057583869880608324423861354773979052567690008206438087898363285645818260406011124387601838906102868731843326863754105605556279116741666662095202506572636589711536576287558861732904862984496144949025846369419291639289391140607500668013629335896764970538057631340921466166822125009295863898625931448098368496270267290571816875431188619785016780945542055422628346030206236111432833331867586365848594549256607378789393757827932269245798746329940626207984327222948743871840250865835923012170224899204901532235171033118947155294241190014251765051013675559881698840748417262030247853573091558046740555046193268009220771224602530194542400964902473677093855266102164597221953182989594157287393348752178138991246815263880900724436653517895067116390966285034171272734686397157418530046372610064926714860627818953750570547632301529905640482397831964539947558721340876558330643094280004966529880485519227631923878049143637008094336133840269615003321987227076212520261857174510434943823118136595888430674532777405260288511928526783800015478726778984080013911926692922324220510228063710002245491311080287495179616630209750005139403834929360882659438227165624307694199484553852900585292006479877207964442251138948990482682753545551036351381224063597786881054133946786105163230377208843069925323141222651286557642372972507288198073360789379758110763647660269045229566595890545048983687829500198220693933132940140150483013448224856108409952224255280515365384849480079963423907029858659680509361148318297213659582277805264395077871702099488214033545722915592760812360768024524224425094112483441102300504317017636066438920800209698392506179043474192577396905395384965273554904740230724143704787789809657098419361615848548774778718055554278643166901048760255530894158973745346886999345668129040841027354030638420429887357776382288561737318085094865277418847162079334506091689017427543147419216107635292884897101992992627314787779430541854306784500406887746230042375735118033964479815653925833163733460547802780156905923823189114145431562006265211512029021314795718134486199813113140319667609044173186965112337723723069717545655415970930957037989114137362473701691977796984079770208740619373540725616209373528430440994892677349546858816686684523675124288247139156997736084944272505953727080949588592393680037644783268602689357268650089253749893311031837781798490987726559150314556280959687349863341628697745572485515059344514369244097413129249990255041690077712875755403061178688579030691167947603272237151735922924184188569334039376168563456318827284915699439472307644062704607016638763455058336805285546701765262089786696071007568889424829091793001725829588065141018620159355842310752543825629496235615749768899331221774774789227380674177396557234567390680254115539541670018273484923237100419589111267816061169022155547932501539610704292714426037505065643176808725302689221357931376990471333302628640020256879585580953819467413653897745735962839808424894098090909873985756342540167363701161175554274520208485346372247502596355446376178041151077047950631246433115749362613712726655823281045551493330180560008881170303939193273408775226203957663995919254762036317961946849059647264220022957466859900850658692244447614696518298032408111076684392244186918983138433051878292182124567657004746512001112036860300186771546028699610425831390227248540834437886795386907567819753605125538479056889492908465093300778140111645691187935559191894088025175139748497536219149074266159951137593325071046710304700772977604160785320407616986599962587913018986461743805718082519579089715762355610138345506515321631783140411788558632146760669076171570701442512139679806636440049363389131707053885272292551980108284452398865084548743358714532989320234624687330390065144714698971304997001958900528298178249088273890368766293980479865361848691640549044076747185228477161390765370454149067602094772039007121368969232490007151789106843916582024837338170620997459692622367688560703472035396374093435551448514957972471535190771378430881859102215032965724740882446460177888604675785304137079604510176074892815516744291763958900029733583632836254006452010682156640285453078153094577730006633839165416524900101773819141092451077091937396891242760367315428031702267749568836727438898742587639198480812250447939788006605485754908788150097177713154626222031185392583094759890722973306356179698149427997194269012950459095001959601187670446126685940687271817586504546672018908047090681694764421076812592711316552496746101822562353054215350376293053407228344710172716036377908943329911231737278701781282240341625079125664675878557092388402263317458043407800613502663989920488833267613368663566699228710610222780651362789305813730749103157984772202699048123690936557758719623690148946791080785080633912593232277770411645731811334641268136650863354699008860463014357539595813688371518756376658268407963365215417649058713914376419655763186795450138386292623207348791113614610369270175331946866374515255029910349217728480318044588923644564768002326350320199759755148450466637770321227374503513861075258707703289877725334195250198061622157618469861381745520177793749683117163174775303693936489986041332123899898282138999471272788713078731096806871026910090498206279861018602827815810931385418866141315136194271897343700800528495108101781438493203336836894488988026650700579543776843237234933058867269881171398021553045567114614515875214300946190911475191317460639571074621970491109421970085745748844949697280534788072622807150198264593278079272393623530328323490719234961821049169556777894477574572734100522768791279432987314839610840935497849325086087187838635650034311508377755526026813750840865063108884714160349386640127106806509645692713632641332255605114463804903014981147725848127719079427291446884415922092969499049695050739711563522706043966092090146706395365457207344852492315014474622123533112279524837771976149446632455786620101186905737285503788209487389963540619601528551178342994095624959756748506137262069515919594279620996853814152859969007921768212266695166875735382568247182245122129801349089254563409518316513965751700351164214011370800420460331929818819694875056442400759373243773063968812723137506901656180511705023913234570458737945639982085297718683677791574522673862507051066371031585729114525731230893433525443655330208184134068598307703260452172869049317709286328022248390203873572460814301030864618292475122372547509593729170882945571949277150232337628226686294339651883214925336992282979406002479019856084829559313753874200905389146722577936555089585290085756696257911924424933192177591278340682406991647416177502606016223691786764406062003312670084223530106953782802461316461266126886023270573409604870665340248947499598493109728473093919357235583521000158626370261647061717608933303506157823409246925147657699160867826457073937226284913057049797826498471995836680273368670538504963212806858679908034966425063958367165001095177709987184559178634175180352989828741311664575151278656773991825448471478908663258518817330902547255548506687345915673481914707245293986133343311789826177175556724253764670656916904592702184948529642637257416158911742394716229815808632917907543732064942709641304905740133227347638084700118197630482586558293923569924724500040877199838154249913028854913319009650313415035068899986114987839508133138410354782918185097364839609500700547077689141018035777502393691068715769981690564835822687525393040847546798280672302113136640478815040869792252707025890465587233364003125218461125555406170560768890427405643769308044485330845193551164959631567641073861476840279092543662995908284069029183326413836983828993996787739835238076855696136687918298501255026747640653700843509181317709373455520373509607574843404061451417603249826263071200394499162974775484029976335660799545172893576422599667468984013865480443315283020532278381432660359616922186704344601298780397042488453553623489276628998624206379185295317277872976304264573290354194361123059231415778554419325913907502186098223139898768864276161395792661313042911976129624278471139762370090244839177697454298549826024056708583014614045214717914840111711023694505282399147106737204691139535629297256313545151426850499739785602582397375244762052905860216709953817251772622621560332986564737524759668963572165819241877815899032958398682182931887399115788653342239805930405130737733485775773355480085820802276938092166908727909673725961749149412789600535877772355909394669779281056984433177629660374363668461255731548878175031532457837554738800224941294314850835823310606304246317353627604588345844930871638849894974073861088078295440488683745611539448663397992954274171881922425327757176709350956513998387964198811011538171509312022282389186860071561206671184371100396888572766441722781756007772620121659313939267353351687468605457426932595969777724896066843190021549647265393383106184330506259066395748280947721390579716281044756239184685401170226308382617474182327913154233582593119894375588075920202312440968784365338682544397449713085972878235393762321643892279762111074656206444107887717940502613433887197288022292033109951671824942279171883936894997369784571293429517354426348212610581895550668720144229411337583577582780822884381049897050273045698569187609028627147215958721622955760774432305652426249022787889630027039385986705931579170451615576502400837888941907157306520449423151552522012989104861239191260890495107043331216599263933529773059764201578213410067611885754161675604208565522425997849343361940282750868280392124852356941432817421038822519876248843787336492566551555021504301613202038836172741926202150784995819703668076957228154728759674593832293475347487156926568167677350745872740752361889243273077764630614553213391291153516408579544993363209128744912311858909136830524833913678178012364770418292291323663192553135752519881155832261717507190641040757398799098087698530471895238710528098997695172255621342702562870300446461141270683744491245264123031299720060110815723036011110523743169973498168736974469070957933361395965232152174553164018802880096505945478025377305043729511231750297963099262473970045734554429097366169183411661981692689108650218200528628871754449557195686019521613432247994987496301513917486907351434285572224378771482342801634482826159703343774601453910391488792276516283277677406391980169140752778543705752744508764021384871852974068017249577857737787810668092211288128369797880930508436795153836345269556941798909412157002047769293571697779786650779674741978146492090063348491344654203623075730655777192394874791784592171441249454953941147163093252907121896283433691943469303040467762992007763236660951162333453260003192274724206884249969037220011035787799503030962450216686606617606951963599496257821909358311975995971661536517943644325340855461981881884402228436430433475511944983019102409370046575649010280463357504609523181244451497737585369583044301757627502656300246842840355835382506844478176020511059776798096958051962294349883281837297976200428446584683817097875733984053336988724865244803031749322272363633752533750737063447961613935439833294509285069122010823247541798418143039370439607028916275466614416655134776476932917111319524424492433969486825365312807946134447319259948441078057605543700118530778181651455752649420083214093337255767465833048161007091962907579350178910642607200863228764462169531354110970643734938285129879590574406119348054103643801010513483095992636713445617426790202194548032466137839728787970213685831655865980838112166598841491627956207629508512777731550045033166879888935541459658313542977482647619045714583767548526667481216048186738568737438992778470084706602166525836479576249605799426605278597356717368288509064903723882197896300621159701116127309080041530138132750957990548898762475447686556338609083822878660873746492371829616970551117904837134530004095665405983204505449485013958039469021877272468895948085725743519448086240483296078874239187075863399043844458787168143100735365724438918860233161863521032329634662879775595675128081464317308640820871870163768626023166301322013654778418788128408626269287258279717654708086307163562211695571328499013849808955384218478498605751604546790370305929156159618434084010123583667571066245603805014305679103983930349392226800585802846795247025026934335989253674490917807820558943329247502610253136912474031645672974198818664137331730015115875445703417409362100401957340218520875708085565433482129470147623541294463494872649634859154519202489667038981107512383462246097836345852499900166887366688659064422893101165844507332382001467562069271695081145751845313826087253376241781564900586777683148389854735949487225984791381668340147118117569656096507185248024013144612090137694972195253772132785080024082569047639724595988896973007719715480115860769109773072193700956408100576077191901423789398393157314949434944427394702082937218543822048948527381297315899900159120566151735390861139050453335538628380558394541428883466068021603292666190166966545159550932979524119297622464368184156515481358608152366892456479964686639382226967893303665067365177453700642533497421875676147235181642454124906075005739239165523248765766893510296386418897425974216773119948446115506466953693082389420109764463906416149320995948026627755889549095693130943838399467802572823336855310719305934373834555807643187199581843433511053008210996684863493755065746780433632709226451716924719041326490683935456279528451287642675079258691275749550617019034887950310855813744039221248623118848373470940241079712866935187657975122741664678520063810436627762404840161119798135604019592923593564250223369340285828191178728875675984596740278561364397578130400414481451893882732684775633370374346511275146037042064386600319709758457951258423768382902058705547685381431876094782060584277630396919356507483808264427532696195115025927773221097379472197013397273874561741488633722808357566909314028162681827541351738718669476991344354675877536553197600441829276263554286531650647806772720295322344543097281730308071337655685788929606551301685004416855340370759606938604598556662556038800779694101116158456605018618713370658928055475811695411181717564200889480837058294157423459607245911096317611761437031311599822287552430755623860678112922795315667379487864703342338703856615632207935340612276927826922915380133449619171175608289251678290451701840838497140436916470994848943472170366526868050479926937200348180151167274739440662381954152363992869550706648910944626974546615054149067044928683639375358453783720844814322455047899857286962533591025012085874783345585239504788533692839923177847367292008262676128175269370796280978019298911642891023261594994600260751941370253437914471386079898385861386785319185508998380445075869843702638641652569904240338165215839023527334124921697836859845212391965091746767383307365996373897163842795304636597131938599067537585064184537171931523804828201906649530068761182870532645246533700801817877552326907550088695857203153646150462946816622957371821068238977376812526606982144885566354601631540859741149644424296654303724362388977424974883594954995481144290313874479717430321177316268231380370183083900793834195116720236356200443532515978345770591867375806295845093080495973392835261834532678407025488281338951608733999605823985976533068531332491869443052018623766404240560447659993490842998242983451935996829058292832891935224957422860977711936256397399152380303380930499570241060356614191002771792118315660017471984486963647480691477672392166010861858335270111380450024620699551472203846942189291648210900706020164842366922853045065689730460000792849216548795460332488380289746917233762242146713057773410228476791863095971869226404061763992937088465684855409012881897489291259641132690893545421409960783015003373574312116354960173761078593776613174114609737503878966038433017893925921838968414767632784283572159829687956435164729648310769517744162489329968893355132224673510432530846951052881727870547308865120169231889863909606782248258457643483898811146004518921240819062077973541140414064682877421135289106877150647838933297797695653163851674302476063657320693628798500094506812799339544756179053189258209570362801112536951486482421536011148981778696162748402162017459558847360759403564398422463773205286102593954579908555240855621749468029117226637760015715347341596159034056228983964997037575344176278859562769816970258585902305576081923960118425137051256935558539568038314025848543915437339066092937665528306580394588354452996247368281101066202417325596778136030462160504071149813629928700245344461013755732111785947844594966187862643109881792664381565161332213388010648732878974942785787178112702280276062397039884629892740250206964728844132375085368795901885225476373689435683443869757836591599662483037090112933521307810446921082238727653648529242723977717113657035605724828939948427901765727472467285870317851808709603657886885750462849465270957093611134153199267228781414392360786696019048841796430072248454888898177307337746424903291848986499450666976500564447097504222924794851619808997858004657073392886373380326476776081306331562832691564284965477161891457728833171919978893967289647249036243005069939244406562043138515461485334135611050837126441019795641601259167260683512049190678848844807556938882956336130738120987252941443322044588359292432000095903752058381452671777173027620698211959566787317670778516804359670498539352982527103170640324144616563469702840548979861174071844266074810583511613625572728626341380853987925200194184140945692804784586880351995819480765416593692386304257609678465177900649591538300408389353663473435495726810658493672616025033600858910965307458233288519384592336796540634446229584855825199156997929071114149343093243594710888849155307244362789754614381883069637982837677999950574199086801707872967160148840336737553252303813996175457107849630373067670897263566563378880943558853244808081666696291145844215282191744489557932175618367328488389076911132291497318233009740871047438027452457380976006140065151480151637131984601469530048186384706463007214905507465203704964973002708965108045343752604234226514981881724760116039630351850990951355104183495092032595193000815173173767775395377199448351273708524797571557295564865709237659415948554960577875830250844880185897954339202126511439748665706637357785502344090927471900492425269733187986673416296531202386056998152605563495051657793994612302881042432775480727095595751140263320496926439314299874550756158129414882072572102525413327570916120445690325628505622047312078073759839622841718581489346952794975584299566058404503342040679609414425830842130622099905263122832900243181199674877174839633404803011402220747562897047290716707076801229726142577939622244402471932865490857587226769598856958951544226744408436623955815820232902736496379221304890432096249605379483291400606520378621192065477420035280160886735669660840708966689744656382741622978396072341841676076630197951968747063275741634613520816844653396326131774384926170044353591294207612238409213504932954447145191858345150093177135153495141106329857407118427879487787668622102295598439663310959011346753419207864652216857253456660247459932603470178573686932636668100314316865546338330732887181129193227080759969493081414025516275565803122566682451300030393429721299789675089725275626231228312606192231137514307940123150510014497409791812906529333109505982236387852353165105445684468214498821883252270809727288884274883607164854306256115848317098748192564258754598902814735590805666011028529312458350604529955173755064491930537257343195192446349577132635656513394593556707946690123458596685739456839866513603785374552066109700031419825563585849192850228353394746718794409460017374346652420472523760923071029860671555442079913714828912061525231172483582815924104818685536728158716429484362611833381397436625562901012089172687249122619268255035603630750952726377740292494227123334428465934344505394933383745182538949108193644275655027900222350789529523477900896342378652542818113430244805226676894806278184810729452247225888754308785534453518012696953166295510202748627231826774002568419028808359833967586620161434415108282185795951240033845124859336704729081769550895897007996538546755206831747532283456818453548009161490244555728012752238037177805695799305466099943684103011915581748246920903005567952756018695930272952823935106000778669890867852710561139502714176319871956015499451625086488060072376854896387675822764718932783893636457481739727025920478934165796194299605115681874415686504166832942216656185143361915159340519582460405439275399433370249265499868382815687017071222182756755610393310528888751655090016685053945781213080561417850728345537350316415030161155489808815282397723289856765005472096303476464183428697438642183282466203861919085161414405131969233253436385953020789937736743522274459225554978509357350795107179893544572575692218221191316574466561115086735243293646419471014588355476121966428070798542276263854308784095114232732831878715008584255323758248675331534091172445536461428618074340465771409483087416749046526256713118721751615212252042891817533854213916723416544283913978819490357080264423993084921391387063284757221980194482758220564288614648019841960716970832123247265321409161640906198417920329452878424114923445107857135660973994758203075082959402910080320877293683296740453793801625005621378935916642772608913929689729226390626584639079159725293656614720778882043052725392973697466487084502437750690009677161756026505133147476674083433387813190703814014909991999299147764550386139217550315666208134426691272431266576686269217308514734603583263883216288487958022720709513566668409357937015520453428666607405145980324093636749129018250561746059485625684819864753333167341853273222237845173368815897813647086240809475973302384638900641272065516422508339325045533780246362303203657841261323947166351884634207269499492767249532876482978545852971151079478038610220664982879456436680585353860328976108030327620458029610404605380252782736642684257279358622832853868941591424992757834799939485546078933265523892127750078677565616183911602327499456002347868125426945912115342764077297706042809146933720039427951569160607992270000186156510589991636759176261572050716551257519942002807363442655194525503326341027510974488665748631311929499504367981441414157144866403560142129655042014998529828960793499031494479852431977967319533916752712146699636796477284695194217718233420663448620357567058042291324391190802670390261023358921811938125437441755094034071305769263552166126508265641007494661746393383169396940027949611939085804823058260757774529390024575690778372683323704913952557966313501497560019568000865583939775114077647831776440619365468185990469524591219390685780520846691252056162750381141300798471163485307369323218880284752686434636637009189418963375750704136776678476605510655273639814065091080095128119484293680489333461128905989817385788450439902578979574342904185424615125767042101788582539414907706633600812872288883017388243021641390337653879422117254473845765579494716699368587608461209255420762990904485232189967932775937439568733619517418448357731753371348049767268679678379377542179814838424790188185162641939450465638691854896614869644814312932838342467676841964680863050487251378804791162752201891711257642088709337072361627392158621247656627366812919475904545783726933806119143978943088341259865383606706549088013746046038106775676351692681515867756999721551110024547117302131325784806398245777852988217552507340713059438656045322237711925126612275572311841682953818539278138611074265881107849620317815008405771301599486424668398167162275705315944438395050784384690031662869693125825968788324676271183564474909022972924965254270608840589954964211893179761800198502271849486737222138017265919374801144460800652076882469360058208621907876672856972626560872012202249543837388348801784555636814337611533593353765031311458908108041774108792613242069116731667030995924446637863056188096746068129695140643902751901706980820867516162234985769668065061826421196885008449087964408730248645487318730073226792364835136071593995415103487057468069215979819507477293578155638137224513802569118408515210863973720441994973311986152968320505250119995213777768529505777303279804202140252415203613717958468447868829139358816165973228039601074843951233049952226976915479778087928159266156482462886140478044728814112785241595726761487214043856498788314529593303839453301288251384593179025382092681735979486271184538844767238171260980499698400011285285882468956002906459870050745677055962761701868140146915411079194105838227536501175396420103198825964519576712278010548479510853206212219214198689245614785075727128457167494214936496796567750187237201648170340546344391759400178567692285657275326527368422802445235641932940395520986671595242116074427063455205863414791362375985450667099936498540128185730470205869961260762180044986827455458772887670830947472127550593372996407808112621584804454542765173016801570621280705865860931437031912439920553064844737912176693017737270077300591369531598623782660765315521758884404242324972504707097095551628635433170816070633160409854580297950070190369603163411436130059739101616446911629501424229560068711285472279881190347362570298925760689561056183689143918774995419305846637048456339460480421306304095115885654341646026712099340334470548074833587256238675591565490204553732963590876436500706322478940286820756448015660908254829391610314952927065205569817019107185755151726478500668430864941257753248487913630671676378648447011799702511213700348332509018054126973593747959548376189634484534455765799142080712091643460455864206571225304199199358764017110807389193337435565856998171066646523934411390191012044396941988442440013361677770857451724717582696809348194551433495478708360801844767807004153020710924607670541205472896471580174044403262858224908741645469886554136173558998867716073200070766516106996624886218667627689194448021741082528389993839936762806345637293099363140819280979361809340666228836913762796385722279099011031721827273969347858742630908503906461325948832460698710047262204491337476862854709970648815320697544136056363830730624247048929631444650884324964100055245618242690520003586729432347317638394981336365103604408088166418240119091418420972543665105131215297987743181043209146181943137719717675385666487178900807211157478052264032550001028623556558889893192030657437190156336693591528042507608755400378616143317500386860361674992027580997490598325891560535026015120010163338453336719750303019302488946131304153901407615002216435472197979815268325130013673969845551372382159704484369322848770698841000357003411612021032527119500632577723100849180353948327310035325372127572590980312116725873724416470725010102069095754465160845924231839252155716029411143170586732400068057335170505110086619907056918548723391494978357775029051271811429127849038601989868019264171759016230034525333265036493561752641375122710490232149742247781448339347579604299849455516680100304519488958503749020591614046646063604714776800928739470422950007650560527524923449667795242963998093409197885133248336230083073059886122858530874694839527657015412917285852434193664910152061088025179138285689421480267755596715723243461781454183055341862570330705911725941451210307995555441215704587721766044749531535034949010007987820121290919691592424250071198617578567191919887059640882526476779212321589972893139645681974406381695903206477844243084944798872537540440986702367198296909976191947826622877601246079220076957123009320897818629962518372424430921021379716933615822455656707740899022241812414409063942428182446364587900309788434903342565075263684458238704324526141709177102733311738322314114116162183715084764576112588240264874244592691323413633887110664111410254191564131806521542466738300611892676802257614442145541661706656609815394725046596642083634810406711602149904395712013468254610953191769582518336844218435464047691105973661041677542456794223362872537805939806029163843036801371868834899604492585574066765166414819004436151227006302784338315746292059668482340704850469374164364830627403517398424514296502315520939492918574850141565148768370126014218332603933205218564442766889663736951561588336176455732383213081453930270578494632028266455912782420386524500082824226586237104279101264659922009427916237089469063320974374664308957341059502451459299170295664926168309151377781312941255438293197273083501907263553917198810956524145074588315362022584785413146839501494739777902739897540560132102954852017624535470997838234607004090436107933577695774788348076529274524364608693313764123819536611484198802486237187590460697614311236114072474860342222820027122067358658243327285528273540547059688419649112380115906685158739449219200965149461960467729196644603590094470338256418273026641565800299400241545213386142754129803134212909298283032921180997327474838939513036878605717220946245950906531849948066932283269026218448413033116877072540766187387175979073197762284086319293781052384057692768597468401037065594741545664665986945268425657124545279337198571953169047582171846227377479249955474930068094747386582895502988410018054647769838792003670516309006066386692781225570580098253238264218417493860364673319311018634638742189643303154886010962386790490873387886909419320737034239214014030133017953855865601548366346590141148242402650394071782762474310044567762036345443256962102526922871027128847301129484248103430593787117475046144527691921856768687678306419391456931640725399106564676889216597128122188080662057988864816331009792271307183902858665316460052937160286969243627129668413531915553811147664096268028638475562685078526755646254020824648186760119525607806512755273794734295437895090325998640927945796526166512800648342473655425788941630761289081441893993756218734992421756326038701470666785163859303376451396888756855622236208733861257264468925030505011741982685878906733673094272197288663566948235921879236141480648639067435225445443233217390191954675193814491175841340468801475560779808294628472904037485164356293207946466799068084682575255169321027879446462854455689642504532164043107120911914810350195077337187228053190603078342702785053035376407148550326164066972133307290758434090507323566481771407168051950487616670853482341370900813095603315975414933523644026633813258892490310115861749682853755322854024996432789754990490787539874169487520819325100803948000978041273549659199111281678983744678760413758796724287254745640024781116973022022154064026074939031452832179159805326399704960222839550871796475814430236035095611249980804343429036504799903000839226568996288679198974007709201341153084816206445695639413652051762216723897144087756888361889526854732299247088873597382475935325649209138008390084816574467971381755363285538678438285013325508194716772601961430961458208606704592915053225188545534773927743410207467402611705433310674844513894227213629592207260155874767469975866593558454591639603888828317985874764135695679993143325926651106610106432151466579548385430277604083743336813884769562084218767119777712301713728903358884062277706767641495181548167821186172887244721591456057456080122677306451259746615076087213118104793801352047400146015841939664729012695565066585485733838089393796735865339148264623337152973534822165130631317841683120965779722627674117511807545488873757480882479180362163143151540149871212273153239649954904606288568893531493886209803672607080021989144445747181110608583337079974701527304652703831624748641972276509360559295945374555407068676905509421269013735812591805365424404463727356454184696134707093642084843576880971266124803440322003799801268298864741510916500700559269248115332255304593326093597045848680037196909012236073052842383400929576912504135516273500068893702237599154435075574146626552916630511558096598361085664624627871262444935223402736787046523488888495200445911734036067941990545741332333020373567922469871337163907581549505364670481661882075753276929693251507110563850530955505798259704741708995710727127067639070234095689703641909226925714651198373414788045234800021292243313604214445989831803991363716442673142367271256805475587984066602355583948666315382326169779760416120625531156837428617523944858699175916646134087560009887817195281317050548283228976396819052988349924933781795377557163775370596420973532826359211663643972432127251725559602865405320289149498076474341109365589676970099392551292044500636530906499235019484547414327113786803487601643253586428282700401432759815267291687392983652192168007475582283202574440644985599406530598358758626223901531620033792480533508167236116156559352171510440256283628939378518266486481004853288143452498374794643032344734998121173614201530654496891706702351881907902659399206402122306514614018631971000832824414490354821739328856510207295009447135703459701372868938908400037202030842584638849501878996043425749569851516034773413021149362610530612881483321676183589122181143326348244481290708526487043502430129169027831337936794908374931869882442953689929420084490706011625900583377849777932611166545704102427022658087411259318571749905163244526787527177713667303010288817112088445898901547284030497735283307413036807389426366041539129144143431923233582849560619554009901737025121409406805169736672383479343938072648655123036149966433222555460009683818562689598882925193070075610369983153701340829399054166443404928578995135097979113068268943295097510945948218871341109461470238442158416665414412793116307228966396828651865010292799613857878980552893138077199806126839287574369010634291636489540617532499378882657391623859099674500611169304013872707221721119621041531236916309008419434691255876931356642720601631022055262073158271090459452014508800197209774933009037624105267338603114835108309380472136441540888132437809364355392378965178598822118040531164470021265585295393099135290187640833396874541770788046259593304242659254749376292431628707559426194212303620002880495363930673397937081819061834483787061948539211183407550784466136813161287662652772676161300738113019112260265570219676421627735060363070311119425546950215013747957456531090309887613091585416407897688207792294448051029432894025223638410969753083581614047454020493633888593890771335968775905215229209796629316293963210429033748838929406762310879572491605465147708037532299571028610965998209431376433788034989825787556334548720256419692318970329839528647149090835858389782051832695388514532402688494389637810928001098369882853814822401756354109492480678055050716688185196353981823277417995250358903381924886715368628267073475775874790701320615888275327022069826363491625902584830239656802073617651768189950405012478167076810258517382053241305031720772764042478906818590142532759301576007404604493256407043963882906912074686848651836219219703862656809888761492469315157128409033825111958109959478082426750064406904009129912689540070094432593976964176432049187340847383049485565489353193784411236121961587236805790585205055911359892391721179688743563806008821011923050203980322109242923980339199962357490160749900384706466361228968995009169539542645218777228294512581262317263874492252076113103800023155946443122142015102347609813096006181308958877927989539716079881806666166935740969905582288764920867560143671032038123225851196001753689457837806975009274749793861452966135862081602178557855101556725585575161035757274978563379378491999003282570244747853891281492492178935557713373164693863283849325504109060973365219733708431156773136608724595135957305799316743151841838389771971466025782064235057510171767836142490046383506119056319091270349431868613760391876796178065016286893238324663202846626766951648123805575700929520735792654446613402495978988404934479354461385933702865964849987126197570004602170600403846777402928356752582319193007842745916722787219381496317842140570561618090610753054847019707670620128796385648735752027950933518225390476147627308368857955445693991675874422984484601052038863590331423690181480820470137357873359865836712879084265505012371862913660870366326396361563084782823979689490431634262390072291526186354020694755901895971122166609604939405411481662295926820758236048004592713037422549721961714046232166649623595335190506896343628540315465372321367074672049188842031600312665643021829894666923636535962121730062564050929344343406174145669239769077961875577551853691074328239001702950145003851295228876609332809176373774681773491993279981330610284002721552989163866298938172093673068777560540857762518437755272663792718646529584434456040208005532025449636014877946928036662987863678775084194163863993727210980781466875153183511101004590674332569023636728857440388110406986571156276224245951037426102633175661215458487955487751248487491056450535612405562840494971087000733844857452729813252876027404813791559199472789424883835725672449197629505237398954759024196961743273931995605586888584689668421694921686035750925565173681227527650732245530185703011710514839363559838139696814438624447431714181653896800242032227117576140803082860634933152322531931788004403019357275255204482377262091396428193085635700972417981081546207144548064345682546592627357797581510611275079792443464259859819129057698281356169980326214397959018430357811732242565814413699871393054961729316736818432921308315689951232999068197505776995170482506087883621443462619033045287204985580532880566437427874425213376243086490014242248331408336355263524491260880741956293229616530343815011954327548555568880380789814663021348845882494025155929457795683213410168777790666141848882080626624604420473727771984464254652970341449871933886910301899708495854003591935484190407647801549429330741363249928814875867051638432308279222453247546568594402657744925074101233951615457746205461034866032544357720608355803977349094102885604966507428455651771077467486373536696346320713439616342724330772171277461060264907851285814532245608335926254873580997641453271574223707582916062890210872507447465341450927370687149560302786785744962598802435707015516202084688262993918757770205263982222863039038736208963026613551980277745373102541473560981646260840951734826553069000234300742012123027096853717992547340259230204950629561256203262382795935440646703580974535168091953148842822644975464475633046851662818050986108386083487849036437585687012284665697506811450176229778421180446608326544011694741910056692591591895751025641852836108225145757045894663627741828211231911914895548754525900899303055551256938252919176585665473510405516916738856684175703126223728447481989211428242808640650069414007662461917229258160782747050575107311740099132805727400757045064102056786608512005837705172347044665487936914169333947103396598823427404917399112448088256653782387590581836317321629006950064524520095201971776701901841488080325257364159586130940805191440487383423208726309390234579568343936535673198852112595322545102134433320907641488960077143662051679061136487597890639090225831694810095719546119455546973045239027057676622625660607611281382833277591853551843609199206712989661162261762308701302517771491089092296009599728085286842582018035757013509920038564663967091951397733222806395896325999183448218585067266715600061203100818997114101541288085984296384935153012020551395788243854150737912488146984920388487948702588508337436878114947532313342968240339466349906691359435123509185054205143456601794950134732238809967855864979547277348025242792997450296291532901633488280455324991130346837585970929357867393266540034441108766565836025239805868998275357351671488372877860287396616103075423290774740085636010479082216297037929632888875401818326688455615141121307931517014172432272881696112502799818969629257978160676763009853961778448628323716368242430299867713801440985432110861841798852346498382926388940798115848044601867248786785046961630155470725381353417197007838429232564633598118820566318236019160301504880887354495813923104201095640486029203648816332620686162372448914215357074634037258909356845618775692123114093252425679118209201567227914113197019418759618397685406818562218253894775578853884455193132098198361651889108652118031590324673803850399836253038757777831602123146785191018742326224148198329386529403794039759199168329119587966313975169915434550168953832614961219785463390009758979922191106131816732586916907625188774115869273228555330526413383172105615651026339359867960726201340109097853490929404890932844963798116760071889522629856573028965147295351737654858692270699351583691577383249973656553918598837092389690611926503077295382105463046431329883085607499014914358519679466058793839508907072708411813933042482574926083153637805030159171540290934378608518986373236274440151458155920601571546621897947187499387990729808102082509488720357758180910580704955060692119158745081038846976332806815095358743117865097757441666966089556233320649110460356961844739580351211804068709888931002898840996421835658533749969643799410598223738290097046793570805124850733916537582873278108399422033129739277816637201019860808682661114204560390301137081319625683237333261320964675123699318601735216546739258207746919161621647539453056355672628546753781110166690106147680498885549499323779505392922839428445454239472869541106891913176015985723411041232989995461989864294508682660068183709082889642188314161331297451676033518876085756490758307495383283285080787574799750595020015290004582726891010867523692937278716204793772951481730749826310364394560921728540686551825576987768611680047125203947923345079427248184951039846354938939956655985791537045810896109146976707744085094344209289921604417062400865674273813422000592486345823164840263753026072588906024582661965085477713525901562920279666185931167543979512439359846430589925102564649418278126046981066005763274788708626350368126241934030938045368494726638716428292463511444950897879538089894565792628138075157028100458745786482746874873030150447847518148530628279555583936874172820123700803389913946010781181611284553918916819625768824912427214393949834516207881387057740870203087801896447348927207242347375229408864296911888119577530374938582421880071862545809558657255342730647119315410147794336165130116711880893726005172679569197110529192523336010599427757499386249458227512052660310767596250082248530134581065415890220917911219776584394824156397584063209896453235990882119919855944307074354333613825182061275293007605031402460168429033824975918001791947312548762195361011899392388172563651166372400883993766968580870951281197925911391273436783748765500978996081694281789971380567478295742939278864701366800173434970952189473811180691369167149298662522390566215319648386326148307518483921296259338722882780720636284559468328617854510416868259471334109955706643943077198472271133050505497348958449916538553125245663400658656681118273565379113816171554980335824470864962776677443987169922204227602060215513569598545165548335499514622440575135658319279986058003165805103780740931524338452787407209316063756063994620101972873140953305179639497025374942250401571642416679157460797416940148936814970729787409518175996595571065274244003020164796104098180322383948859234287491686106007787215813578173831743411600770044969477512269771170979583331708070711664695488586343157798973948210767609530202304308533744689275537063208394569045823319901323119416073804813014586738715119260881140639483158101082458621380210903401920001421568480269618897179159589693001928454668258899843935078095525937882778124910275430742958226903315258265068610919133993325149005969125886838942899307697209749034138617496837881104717877161834902225470091168320719305098168822476516671271643830597584526584369696034642054735900888394998497656008398019879066960322155337163183271702406096596215633709021112352839414473361492559597370105528760723852595722637800581765511517673703681983224193077576978199234322736548045787930324043628526168897216026606727331540597876980337832650196394103245342372866723109377020343772418572443042031010799258156973717733275865035481294600784360031492048867569824541895666316385962454845423224050037033778909567883327931523991023684570739234671157403322542151159228956283257577324206965031663289154379035858136049703546442450500899967244734271794233326304410856018136014580850493820906686741859759945486476827677817797396941051474649901816032783147429682630140402563848269211414063183868884771800729968083447331843260904576848010950528064984336142315178958409375416873075317773832888531848399159183753695795203287573947500038782123340513557032924428394598497693390889569912815913115184704492036229824748606251923402227912218655020606466936457570403218337905577722841068522003170225125222031989019031384904661835085464378257393379121146273368755196086005435375734691210957998570005019031182016206729570829951525047496703632279693999002767342261886984249724002289741290219719384216107214870850381291122722590066227956379882313038121660212528939256400497733113096538648704682922972673242123114136551674943819545668158080738360968744801357355133198062297228460354601758214190707257666231570647194000063610877005448376130617376542840708978505969796787647518454567499844052389180584222090084618420598761655912808207730020065221442599028270670751772958358840592792654177222872314723980998744359685115686513322411374678105605844641603764284706449655075320636469390954701093670730890286257634571207068058903087616237765651336710403660700585696641210318331900835676751224855368320709859665649025144334794383589894901621862286702846311574921912054896069299554288862978224608152075168847222890676493676383248875634806219448190142737582293183301628159404769534079067889803880670996934855306382444428842028980480885963199842578513427754506408170112916390018902988004219384174747365582660588809804573773259748449530950961973596802986608348425843503851780482446245686795120868562989088665106437414654586443634847607314473553844162798519325605633553889909223712991930037094089459370037969686445568054964274355305466330126895003528584552893536246939987656941573340813512468142783502829533740123122728662384675378884253076591274266200296815934626108512715890121356031851681214826965726493337154017215951085318329739471655078286854623244447855213568650183700094651973121926084525172486435392528828194266624260981567285713586571840496601788491703770996448213899540798298027745470100943593483965199643092352939994262112016667014854405287406899369319631925814815256514661302820642768843455024742365431928143910564215366411710094489483145263441917312131146764292753863231055923340571390990740909567798592248073331693535549940527854156596627580622327799229171400732746595553135524740225330512403525318346372193554209424116859154391671656737534231721866220958367160705604271005011153906882732476407542431446821861643069507672499601031542124885702586476593487011103023601388351015272609005407838259416636962275260461529755315726056049713719704683981875664941245442249895254737524509575585203726678096742720092641692038212095718047269929928532645133862108319738895446058057513719853872535935808165375845037381845048949292330215402826359763279233383947156133734998704691500403965131112282724281452010124750795138777642758417257395144545091577772328758260338796146507305835722891551490544412638264034652654157664842998882223546924634224301093932135391740932976313356558286167820413732176042633170057117086112147992307451143817881786301585800854776507577294112437963751914053507194576522913148632357029456825230190863919156424533311329929033759378933406314774932341235051290741688602794704224097179445273002940638067044183009473611356593812385437161287827677368776121057082799978740120352376447804267972989632838775214768548057545749093026072945982122335812368287690254586041902805334915859223154529238669676942712545543934509002617842885584669241977923396589922166674331275604774557568298775238037959049600544114401395767953053615101163658790337965021239595764943753670885742255160625501116062847858752122448900021839648215537077863812101015251922531959508065913516715431347029231229158813182531230177279563904829486634167666799581565981073605098019930874259205148224840062572456046105477266435819929655966501264844569790968822357746568334370434941627356752115130387635206766256917246963394764858619671344262520220105657931454350382130408345074953853245081785088654725654227698603431051326572527399034377869404493087217595697431222792562206618578410606737977522089586758506875515088213329573916182694386952871272527059132160355102334510332449169993791388695069515090107730545587309320250340574664235980936089447205098934588492457804956267972821465476615868685628382951162166331144205269075384023015901013190745027726986800033285716921583988667739031445482621548828671121217405830360881867214207044381237526389513366450335627468451521422960751835315021185984524157108809955542044693040575945301262102694025766118843952780520352720712104259904036358260712662443554955385696310959484418624491740398595366657988326353523003086873065372469599553498829540161401252511715204493340311692232020208686741355767635051752658542694517082200301872595289874557316630147521430245899149537445663416858044565020274561345804930689049517521815354357734967090576902073010025763980225344433018202594320990025710490086647222782747251707957411172730574288440249592270869160850000343535842410111781275452782753640812485696579994108987177819252760330984230469282854074644883589455565999585451885522054009593151510185552860075664846291907093855522479059532108548800952888455515616537033227831884336910157425157740949368430665269441315577212494167363911642026242961549571127459491363346769575889918256442337386056004393731482415277976988724125197361648820910825375111165295872988756142699583671803901656581213574928929034383884617372387671045371792516945553981033513822355344550249768953363744297153754827415969570263395507812397033995210512068440006391987035090557546081874750598900983786353290146828929932601308860764258127637642220691808903347352806368325288783005853191425660041181611004891804085252602258647001377646588559565400487669903967715498681199381646447303453772297591252403855214802111112731610817275249497401256131240122856717749302479572058966823877976119273148354506391862510914714780480765914036653203029221139120317370310906261982785994886995183970705793040898891124558452217645689293589156041981507541859910893622444385431503328440020428944237575049771209528341737190478057020503366570451894740566703602291775272022130574010707540938448679311901754523738376327933074499991532355476043894668780309584146585497272439469218087569634267454678628862211574276972337696101608014346616659210683051381962275501675609806595430367629444244928597662277884065943476885392544871136658755318137065380078790093427159507622114739192366981535666537402102938938102703203018041889060758906111211123891656929889059931974314953792198966293962349418859539500732098616105431491904596051787841949941552695352435938575651091706457134969288535128894097054819216835301703165766485819917304482516741995692528890297838994368015217802253890914449911424245366386567014138233030825952410002013922328914143757843759193302868643472688710790165184289595166340176249328700553446740667358553887544082169371340543555133400371344120091265038927365750603935492007061463019958742072393681660413378526676455935314267267713519035199053735510922804064056033397322030009508709426641983092457228356830118588421489383045756325255368484655151629294361097809220421578790903104470607548580855157114597346852293689511609572530087138540421561713689413077666109728513511478797167100640185726906066508824536028349672688934385258352770942567704272645693558297095945232309587418288835607485080355178725899004034807856136232308836589021046436696991163182941819159303567030596077163737023239109575260527609443348025821303008207175676954494717078816461026999820545372980371976150046265697029881146998300180756228047787973557684943458472369045355541659714545456917459960511173240944077263995435134075656482373703261304517840297175305320509706289051946177387941548261437841084305255789743010321640844173954332842201931812923673904354139675967592856657408800097471091891384896217543210141365792352721150858738491116636321220153277125575721811382520346532723243074575617191835630037145265719013550422463258574034936621432389966646721220900014448205237114349725590217407430156274391029561233972379826572777371169109299318590225459250209350085735283458978403108554344613113113194337614260915701611902979834396985757013845131200051185892897839877998271033918975441370592829301440248522640334580188075522622063576307558459981776924654732406774836303230467079221464873221972787340410126465455029963818906435130927847008676073961377429092785635928194966677454376623900276942397006980449296907371126690545935741191311576290062554136389879827831691248931749706638537622198726136858389961577267620298846330739288917272491218069009620589062761415400345156525146611735850193552548108215028483386318525117970048503462711392948847461936531606016344701468181969769935962654424911613762388404994863694976846788340192401157532781724066753078776317255583385807394180738083826202596969339367297553813374927042624514516953621771724938790324556801648100454418864638000635330793382835327495543418009067471556064678338854053497462157416532958858968311592817307930782536544235474926901003133054784927045725517288696104447168741568376108571900597871451446173834612434813342543209193299957209024093721272285006092836728772721030775789454723492606542435206064488226621522016431717374486473176440142779560642597070617635072504393937747833433549737158418813304676272646745412001413109013260416569490978456480373051099935441385670864844459531922838104719454048713178943255600495725477502968602688840099743025360035481076662845405077648917338567881439640744915691776639140497422056572737329804838331481144054694054813366350479777642829901048793404783799174661635690981565324308673957980194852960981876056129492664209192534214882557048982059062495939319577698435487513057390004326655624072889569993675725643454400460169343217404453851317661855456177974446679070841977206803399208656641387455311487783360698815340593786621930222844218008224152715750985029146550133141393670877764086210299064921481309841596405976687216704359815945686459204309022933531291174145480473904584293970117556817422508767421890591233420637389069079158319689702378877057992487819485144612360336865442944422540665557609241063704826237156483908886046867330989184735170654483731862026460488187080749546158975933905122247064813545574554607734974242817731403993300107244686791710061061697675672323519154837744557831238893558855515056116672721477234950198013166552899184016134026646064861261964943497874480840318580171248230538198222392184562260712344053794229430949482002855725619453815764228777999613248925470651185749705282478463247320157739107420939518315760255379057446633857038601241349020484017873767564106698726844318043815718006467073595099694629620254676095436374216736548150680094726327948673955671486553601099195207693546102006399117365787469114552695622749454854040747126723371786284433376538127285298701872870892922702045285980794226966602067083123125168973610372744198074224315919667827723200176966996323293491775669907844880480939086895608333933961964840536863777059505707615321660149837611345715124676135435539134040215672791376730401106323071898282314292594554851338409434617629860288818245444086319688869340949321457592574877554599838968726249901926640943381754788514379974919787925067471022639006439320573563762467915214981703780854562268617628405266440302923120426065446254436766725652514037167258188775765792784371917761096009973835732639146572486650892806279509700477182044840852467254247490303594360430785670403231237918240300784842639864562690735689749281022188100473995911671849466833118796553231504693738548364941106360836397978571063571310998341556252208006889867232532254296666637407498579187516805229982720131885095931505758429199582087864094188500473664934582780351484046847913349768051275117663054848912561636314469085333409625691091081932359989342317665390271871007036906060334564686805336621156742925691794270721937929526336811863358643484401298445314285526358598018104649596197137068770765602315219834226491173726127139595070299221438671486782826020637805931762473948815967881659425483071756323441150280874698563927076807246468663577141624175034961924477489351639452934412431107748978942420421392035834766119943111167350255660558075246146509213190617487069957603704217653171849555773272024410024323091079862985986455264505822290109386506345430895287444387437057754430242246705978003711452070596304635987677291527913673104028057797930156798544933672067562737303010223352854077483776427269726909088931103040483064094761228489252483184263744136670717481896619609995221716484187273811254646955346616249505043319312784778483341277336902508082684989607378169357977873729529788611935544500826812496619493886267555048379759194106098188645404442300129926244893495107156256201836610976979233937314491895138673148497855046149822058145456423744251039041061745686447416700698054548215698830141903169657551796933201049323829084146925107137170799618187475768107374678205552512465561037182655676347499810810452073248910220839073348799191805692485955153270078020045689430743087070951991826155790874125638740836425850431171500436041417791918136584893654466471241800214729942421302175143129300473263931478599809540274504318829464618299533665082911660337489982464711970530397678085955121358773602855663306775038028815082118175513744707898075728255284883899617537915931055543988359970598063397693992622789024172056343161203914544108897830560926013800664789515350793676847713777370816496041140748953008524809868030602372442856563330545943055340464414439006908397127805143560644002925943658250825212568273840305982283873322461889689517873607823574197811994645933674976619480173311264796844527313253537285682559760110414306446014339543558546698967445836856250622198924557244752047163321028412826445408427540538773667918549888729437401802851065659140115784980797730063154406724515260730237560621511149180397482061658712195697176822482856418281782469145232798003399155973647512388039878893107778369561217694135411066836652263412315815063054604793377592443083612341818822404737933702174761352367354143688666641078144578402194963792116049726817822163356401556965342693990158528166555754663924779606204716675585499080907779161597210845192028382414621861979475115326956212372751139553780263570403591102280347380575798114732995520542641470575316833737289026565654193760548172796677251206331538643440281177960626242674223637905717103142259561808382415368700748798499481744595491654392820794609446625337489862073022972303543864081031328052622119579096704084537134468866486825359803069632144240269562105848497043594122669581920650368855018945050820291465322415583289552370261976135984260348880578286538644443642850177794644160165798319293458720520474547600873425981274639807102880042588831177694316151236089830918246276222264191204142648044430195208298797868132192933894447389915762275913949461345304213592399695752317639175830978245041358227938715047347637793440253877278719643939141595189651078445294862345255341714131842299899606559778996915172068138345873432739505822407782366625107091918184839097493397559573640686890157592752184123381760095520176713057002615103763624476829361690846058322684775888596492375884391711256884281491632337113780966868256305932527155625809024942731302427121637929571534371216744134869740121986515963063816553273240714659948755624836685059626302557148741713796692180567090501230634776538753863941349477477156206168685127998091199135964205815694456410863415884571368531646517102500338995982724794323398187934971983091598487154031297461886155105005863074797245217067282071692900503612866547344310775709589969114476442544873987482465860720833358537844858663312971978414932704416140593733502624259151804874489512357234133846139632663978373913483110190959000710240250635888095897185427157942778504129618113396876716443299813670418160397271145732235589527831328724937147558294647947250022059569955988166266448796817413112423804959382815301367904499009777486835050874050949996249981060795654671369817556104545304457887173277253981577127763956320579330557366456079616754816625116173990614398317138364130922525219268664183653622079717378544333834492812605230777798016556742191485836056858088459463112245561187204998748870291225779884554825747850374868506841446378829367087342481654139990364316394242342668149371892766647385308372723949983143299665019203753683413702636490213831932580402897587372299277893267728975246618130713791163944416962840988175542809283575918504742159238828249658963119049328594230264821809159920719676490391793203845600717314716072553346652592424311610382455018687288141986710061848443726305119890880233164800617685206706550672975903319496717568336433949942830214262772686128737662978183096692397059794046298292283395949588733281261039798672388434435857040909372812201842271247250230612860317930920308916632630968591531537833114045160803517541800526860292433241229468022373060155401137505280573392735817821810734339820466656121968268870686907867726223291240350785262701079624694550341915263182025065480048444920901258737195904161691221887530677237203771013665691475995500267725587111413733567394264876664498534874223933674198262520184652296737604387226670155196913929513815085398313724527364048940516165674476131170784207266394555145968694870239952909506125958159909720767311418391534224761325474121240440119684314449352891476648742775768534713753484743008351972050305148211202252850101101295672630742330831234448367847395010944521135080529475508173727727613084759804198033576539280594562943091330491848297543188976763526604980038151520279687004610083996379771227440945859999587864275589425437955278220366359065367282754490142888222026593995297073445213908326139113879042528724532222005051947671763799880163787885479976967377633168051608756680916619768367450701725796001227774467976535801450518409853968112544971736198279500363800341548361659853080651135531762586441880377184800297825979843064782450456111949617644747391624265956597287879308988818543574095919169602574530007882282777446076404127884123382321261637370040353699895453504325071915687046608767761049171860247670087117984495063492618189401172279042817281038254523444007957899200248551136306719955306158955633270619799254735983302612507831570608449137573059698864937268975781326152621161559951236168945445188806938813573954130571326877361584512039320101611244623059392144423729825549208584885742923802284849117364656910440246743968863751742566339406109160681485645042366368215661899795663241482785951926581542114290487795511359341560007584212724190220795783509676823258806634457531196820709808345393568676882156301426096315567872937708548163918780758655860809440634849019832190788889278339059027064381314806187136909296466405996580941572027729137103055545694061390272514841434938448924832306728832419063561478219789142526952890632405575968984460826441208990386425887275380779742264791991383716437714275552224147195287957200532813995594900449489329935585653774773408969676993027798368804649446607476450540331340803943708579011265345639546263861558164889397608494406097031225044866434426564441120509836255007702552084670280309486161711383604867454630526140408706502004431601203999291727842326330929481068765156812052140784997683419792615309630714573295998703573457361294464333036617817707957820063606904565848998041286245274958693595007956704958951515075840149669954043903664643029313327091099685434518188187107619380713480621010157013794042178458259903452811129146933303697827524828431735167763807699215976409450182325655928855045596193439009077339581656548489274529333994849084969055608115217195708936250401246601429659721194470954607273511757284752178639053003573198570633207625425907719523187830221837423914863269069237829392281718796424763766128440559133326677141730767532942971199645362140597828545083423596965508664997806097960271186815939764602642163174319425125417077981105515215907232265814438472252814118407568548915270287287564461641551366310330849170397409158939501479633440700592522741605426147120389749194359265314325105548254726011573526773270681531402478553149986265222117565919358928333491426196493719086438860496284763636747719143970402557371840991485838819791984696786846009400109631400748013352931115589948057053255543148539141667990780496293074439632825728143235963973600252526571745466049444835114396568555941101007317070795075595947951188073515433834078668274679314133198278769465836837255341187491147925991951175025880522588640949673230593841569142795592053009028467854081891464402447069278449069766720331250170291950593483631593451434965973695082201140683874111053409788741760491730393523628311607615928173893450948957110176247574503713343273190002214938520258732095222365379477786682714075816737137535441151345300834053046013483176296258069270947307694578373753759825195353000945925215830677470259536188924788380534317061450332634954970224938561912320526931619398085156086686220122534240357359372496519670021133063618134781850308505051849687393331972107514590824759506208716581754416361103493637674056897372033828953190461880318736453844361021090519928881967138839399131601141230268827581445303084145678343681612436220523353613723570665984299085661681682027005574369835189414206316399890838276070398870558659934505856319249027920495854627798996826474128868854785255362250097391305639722815236203829192330953187143682495041513042930533221841128492780135324021344316674971039449796574710648703691550373578512721244707906006480366535664362691610104731623666419225892288276205777480386647763166459847843766623483293650294321401286645857611125492062888566871762434625744965794822000307683791870566460400304901162501593841116181430730583718443151274229153413732043502100753560307516129726735051534139913211992723943041327943638150935204382531459146882971757787202559513468682808035378419391833104497592543552712609056441112297470147561417140647502231036896532570799488290887092729800653499340465555160814226007964661386820673607893651685074655758674973988021935158491843799707609458656775818221235923223307164976252452451681119657711571371694011384743536595436443252661065506830914070008811060793204838235339267973702130735534267841137008543530608508686914808664819482156155647626380232349270439935586826626871041482953835284311062369482676548639933227331663058388785692927179386744666787994087386883394564901846827234578690567885493438465156356644819501111751451846098907232625933348625214623926831242249796296837188698818264598897520842275835581250282785081924381878194309416871330852127644797165988395039713168912738909833680631648237515754727521648339640575312633812318843672980319134864388362253589472553709150981166679697436258639674780546095404828127118355563259352838008192536826742217080504982120602768028202371865175469579323832010117776024678777173012697001871504731380752793756368373065162454984858250849791582409823720721932542047424309140002384562247629821627647535788744745154905457340335199009372401584569000820153313300692053504714046307996407568448498843589059069081362453416382765299851483289692613231393033848380952968593701350916277724218841251942139475023748603516189218367672407945301820593766005288278126580864845764864667902895627947327412600961098476875992502925877906298559201702220744757823999957014965961300013422934883916431334101796594336871418992468889276828064377873953096005242057179504639377660884016572072494871343632339304680839240753661376949672936954361068727117781243897610737078473004483721480384621888949880849563455633469780160550374858941929943687449249128458160260073516307751979317319435284108662458835122327826187700975842323409603409697358659357429596581724493984624237416677187903041918900379843181969616131738797205400286421420003722926828213240442750399073473738273936568578153438264062449033042860751160780480732013073861170758685023012990197610997116774169190086286444359731691684892153140654694501836985667774110164277243982867802751035752806463415794674686611195046876149323492498715078670610132127476977489844349004136355686178371646634726392290700337236269648520891698799382092152728104528834602495603328842191548633330342081727506379647887580219093609700697928427140547698541353498045688335933872380466498743701388841813049062173903475512878440478783876204597875104502853236587114561425409960310157219080468865669091361778450521331754925655434128479101926199752742482284023462534232834878733736792804432011151157646318659386672889334805155599537359538877733570103090919645970001446972790018306832686788846859235823339043692425583569417507259180509556393164368382471698911823039806986802025039945934533722533052284904797850806214065964004279346336773397931776975158835086606717605596075304230064256621974302873388362949346128914636213419646173520622837561099879460550068001416959942287410386859696744010822197386607316959305161967268782652484662383950921967449931155596067128954327092345434862423646521282632462124460408693287631012061770184634226216223404054620814281864565523695370690506259232845270548296619470602092438243862665786433034055248655341382166089475053288357307412396486733710292071949687446255323164351617816703732125512344956297347771711435670678816379244161480409008833013202989235439752400188722461958477534573195984187939708736555834567002387048841558509737252736018345121860884985135160616319035035760752851610249770849705680662000886836288428539989775107444668464414850098312832378905464061104482980653669684393031761662520027006570527774141488741898424497108717863000794617987458273233610568630002956788448154218874153115982091841411749373933151579535722832495256686280238674068979129345953155128771771528179243227343821235360396947778871507488088955227819989402035421186055146337272325583926548998089734526990984209143608993655506760409535061823856297836769246187128947957001652722613983827789843913708401496644239800514306630259022748516397008095963349066208641553486670493828296188665288002805886924957131767564823449980409044954884490078238376389465062961965579028721084648124763543345668362131095373302459672625216016581576893239114585506083353847577499776805759101814274038927872482964384461877030036742086081668187367061415904127140047866243816374807607842047871445376031298469966055282765564130442256105248194771509988726219623059305956970233597198947186395081435874242247666352713635349560196358294719712314605588458055373481213034232355872304672862509654173234515911326612797402296358316379327536705282773587101732707166852632858637685816959737304209515321940519659033406556904500712974115069929918098228491764739688693491568292047892889239780497901754018494234706828815574540110278404474221831737507660098082732544682233963643425311618448664202797512764912899471873287082649784612626272603511368842687029636860585972484713209576242914685089029890260588005201721361482137320227681074386178042326353605159307797456335731090707226267457145455896865689805472621754028033791569704913222548636726422102539455931582294313774411636519914347862199766741342072567581642792994786976340458241790099084279568474661767277320960068504847669738810394113290308795050527254032935915472192977373771640845077181156659481672086739896484082696454265388254481786487858182416103508529868517374381299137181213882968275015118719647015262220656110940411159221977841537419465540757740287795136299334482435420784875946490868801694631569133846812783175317699854845611703610123703312085145459817174807958369324371844310757883826984796015537375998598317753142904560330171187455895357143223901997797456270891239386824032881643560939720834020148294913262285230330265060286400126049974639827020919826988492807030753925633486124244093096065339174429477043609195924616961231225402007291834475991841182414963080283551205719901823095533760959156515890435515679434951621114824612999650877406764084744770555033261210446037216155618842880528345599314022450810339050772822363686390470247055204662269592128186000385762570099376996452876170979469750922423552954474429630972882467141889523128515075781222322185370419336177712441407299812660781680056096228987786145741089694065780229732641537904831703116937167152205047060750854568181988241146174870569992831801731041642750567825070680524787480717737150574669055343065752595838912362221292998163516280236520767328710376974029690888457012931812656655446395491624804836502056898898488957985714514098042783709184579633020858498537298902798830359239999398721801807321855759910900967657064725002870837685573794469887252384131802870270281051115606515456167826563929611168178530371697410288729225435051385599163336350076420741847221308865798165177423023367630877045390578355847652300679136231165956320771730435851093086963446260525448968706779806159139210508451749844844531146311734225475109740557443769694738389497994785691774014426317957887600003760215767461363965166491449774918572686150853119469601328468544487131773987013473100453402870289832439751093576789101746499229849262563847806154215399202459758632266940297165834693918791422105851767741563568416355119208064114598176220457039659757547217503081758327775742816443472796101763160270326013793819988072165085353418907511837999746303308241586875910854182987409982259183759252160701222635786686141109247116289155651121949006681203368686027007516162343532251750420630593460456332223622692147625961712592134821660599968633538009643038791255757163021349838401893159116934766556102135443271727894000582834804898515572163117081502921575339521819234431311151887216153506739615432158215082258662373626210987833234168616727017779898228765095434036316879590071030740171457665923810574396921803841658131515163093344062518833550510193718359752019285686405166963903550195382467146668599386124951111084630433354450388003000537575307324966859258366670430398160163093238175608259373962136044252116176309329265932277122312761088135271483064335327121914412964453441536655122487595602326546878575136019041171027174986882614154711292788474284218182078932311120331927947313004150652939769473776390276034346574866055989497186610077206633875984234406712602952716424144695772642991491205820246383299989739387392041992102210310081020458406700878074537636829436079193943833563422393922952474776447190177557321558450906231630455345032931460298767135147564238389493654521960330998039358298662121528046945642719470107639278591138576088044235046236404519503747783211542266249656410144413329479979540125137522541675235213884598599689472953614626231334928464585139222839075781426972611382630609761621748068121976143707370553457084344652504332413100855666643058027317962501197504848382516888146308112747070879323260815372648280838743700520700873724030022399248612057139136266701184975376475407826844743668701021746014483543905829374548086988722524987600784646921172542445442755379876132476939196012878019505543195921189564877355070448047485916956981078262571667922300056042086334836558975890804684478289080267741257353699126784684849715116114522559551552213545182518916376436377935887619928710810320085988752578849165756901016220467185873515547974986731489915342608039378208363732724354232024967825243897929425058229282508928337384157568415373194559654129605025263002070759038174548295753770537547819943029100481729146289196188690882489730198874814870761473951193291681005058168124481737309397724863333354041658714370003019094717905690041250930151465446260884234682096876441213505218144804060358153171520351561561404042772461865071231582948048409124209580571490014363103714884762709368053536415758284771513452104818700766815620766390684631945765906729704643287381761570366503893092359421412320633396717431333396717887895873785917956871269851153245844973758264324968043099930282224343416536124016134809453835043685271560795292195802380300109965434121081928695948416355132918140393460343730451168194024434225791792032165535266472423662161129069262281309731827003089876689007536200067594917981148988332910011351872643822553627047926441829685206950960102865047913162793220978452856128012235840434310672955242526847612796859887471033705014756657704883094292567145625429852240890666136220704061936935993329446854735757963069418619412635386970565097214909436349186244661936435854580387626118134387268442454109273994023409040183321001157258831124727698220849781699637246002651903387979543193523918760822234926149424717217984169779676769577294636535206671942587561078867677914226725180861062101110703330315005522911541136467058396624824186345032135457807501988076643599848263898326494084522969472375683461635597584601085032554443979065674310671092640462283860153084123228849009899575709519474530809159454247329117566583693651727831410671680649050103718238957018000040806087622685730786331272271300413939521622264254990656691793731789024982142093120505276592675271610659880035887018767055675180547809017870699164719562718135616596449680249998360863212185039074888353924396080568446406414216038815393188676321665705416288557240440330524340117425545890596587858445633708651153699896686910263522328395939177957528762333159579552621180015340273572642245127489275650838839814217237429230837393956446868382011531012246772758465140089241883538538451134652140193956710161790560263510731067094808941578332189545946441747045891242138989931632112134885795566652554982220920590904831264576131382273149855513416554957789397011765838645041641090576602902061318310241780774688649257644538999615972127115697680743691474807673381390148689626261935279012892536639560063493768281652994423899553194099451130814831794420722322413832569140760784227976832018752004959211731186043919607043046435570600514257705850094842734782028649501428803061550094561699932242339095093996202802988278252652472865615318708063626690656074654737611249752765485081652454330483499648658999207480201643500929749992763766780041354351587273610075538366032915695756482727573019036359978317020119303089250005186503588763165018825857897288383278671803897169620687799999363379832008275375309678099625284524336743457728582057035065952699975762096506669996095803717220621286222066195804691729353164030589427986374586704052564521108414311584511842473824545796101503223641432981730049637374808058784573401069013376331526236742865217423989237045399033458557088181778373166764448865876019063990817273615800859351852157286165797910148536069818543373613372695934691847933151716854590418610670845117526590447660287572227872707018707651418268053866425800897055030488050843923771885615205652070558378956517731708368049588968862232650907886240216645877421772542392934919211548611087980270586522807630299307311838157083665220967242489904634133823029616056897416492200390524146529210280762210339503147545009009111784647831640682078215387148802241881757591191996904347422740657036706975160591076089675513414048889562687145107804805941514989383837183095516429306865133248653205289907568336397395957699361598233175139009678053700983263906207220281670858825099196420792687122442144234238994878979067895764555976367438201099038181887237788032946792623323292467437234291635720088126170825887411835692907713825645617047734706913975426028047524645760629479669555143398749145464298348901646872231466122937095792348832145255764289531321372302138620668624243971750967310404491491274170765487114719040947496356797004931735294127146591971733031559271289301998558525824873173176315332316269441714492607414966257856881789085828118894753086030995153331847022325132858098977649302170268110292979268970540229564063630800696780002507535163579583368124861950210140843766929087205343371284670495984370919373646943571028118869884718595842924923995201548595554922914484104027467616995753645089485885892069931742352930324040807070454802509437095757949588185151408163795837184423576141663934361833992808426877095007012929238279111986845939726324296508954965577222220396292514144380143809049328895510894471173165006243298464070116138213328014172367766095573294493928595961699874358932279137374620036820659097632474516723880505691795420899750410079076241214442674786121538979637353868701011989215300125102970446895181411995411781682910333950079634179030293806281503350336092099725677288446423515868027246914049524562219733699813263884597959267681662539704804194883353407736529713224663148083977662872428626155216069466466422934253078206177506553020934780617150602822427163033364163764475259953132755403467562593100303210410638446818505009630862030374670064111151180324240085791077519408972866487342489723308625990086726077880513387199359394740808308034525093758678442472750562450022981430084285151173758935548782699587100970300140369534754484385113305838512870764808161767615668662356529846246596942196959862901737388835965158420704477414777327251621052151867849143144244807420840005744031639262095243823682532504633673454871884565159032761378907942307120037777570565133404116455020320532327226478047669501847403999124784585311438340892883047371521753047656666553341733375433553465579909445465395487746487570514534424055029649496453727357797389861649701288071742597152693166480416805457764787688913671436423483946313950101607307765116756928747873854567195457594149738920218496166563685187776793801587253239991629215940354310280033590426338265983437654588484343096350462394543061401979576623344649935067346104454478494748886589359955993209699455140315788857335104807500545850616672675064699546542750347418717761603070513186038756803097402664287627990671548463660307897261455195469661702633347304735505189496044647001998188245255670241782126817310619013681574614000004419650366328298447342032337744776519848369414003518460252348470550302088205475398875009563443447236557780656601491196705888775414429368463314931848406263855200613035852472298558902697826755632643789209266548224708893541005628312715366055317541903616871311035359553937552475984815624760123031120732259852743314342156409997629586614506364702317168406809589341355647149033521030178281338763512497404272166232661300884471730069455558851718382103081936746952617395994820800472184934817515188672966929891459372886827693653328225774486503940512001040081899338221799912998514453680979073302700067532466775678334008091648182974970075464336959858453585860775270541408598799552334529157689318898151725289536825098194191509753596093330734760593004732494994277386188212691641115109909044177658643346223519555127587228274214637646156901791017252686821670863997033126896277066682798859263200058299401588528026177488729974716318389778884907081079646905248860201052319609417644210578040178810445327083251815853795847999284837403673191871100025618072543464029774243443744358926713138222421447843737514292820287900798080724086441862108176802394305257237843988807659518152989078284809180552731116825280778795732780913360354914021138568444889377966023727164031667226456739015928144762950184837746321439910120846152040868491454064119966419006726265809585491470073860028346541536169470303225804335118736725556276326446470519251246444666304508561682969030039027352172547957985403492860835814050285267332090603795016440703788805355286007780076156219920402259078816759083609506536979826208251613161340027758698525239982150438737049742871330305866344297180699327995898533210370424008352585801655313964297854055210057498679058162142552204855905575729440972703178353496359978351929530213225691003345679444258473028271233539981845228580131295618320171709125175122303874332939351263306599591819498686263900270469344052079273878042499187048717642364694334440771581331012706927552628160805336906660101818736763923708715099612732454340176534709553696905327430463817714868992352890227202495613329717701934057914019057094294349284869464409619279579297509094924544102121331838858858257834015385261769827636261669450529434645460193146825823375177475018217333099546297388224217952181646096686084302272864292532357062282866245580548816331968406247349456193261331550747294130554813085455596354150844498657800873855120820958550668866789562227321647711783479723067638450900764237350351053239941424918981894338484830553827249189963298073449876489446283389915842061581136510924854730831332144418490865755482373847724676756265968614608511300279074925449378786568228880682214540595826902539893047741870845463638345732234511708231158273569049607884472195368528562745393682021639818384395637973401485311126296792838422605576552317792254515013290854851993267401876501680150848962943465583384015052542468665361237451138546121324010290982381635450268438331553806585651702458063595156128927846645109647085012645778790471617187123495549355056708638471907438862610685612412451732080336815971358506642084432477147132699728947242236782265090062046612264527825292383117299788206533971079180173239849459219832330107479973769040440869078433568152082064891651557776224633532053642199756866907528739057028579559844364033938858997754179326771621888770818442853325700798750298232061474023259478830560123555000152761974475006489507693748556569268585234770743867729487274424670794896490104941332656884847676438912591888715785796570087803198429666720925471867304861988723590669159068123010822939924789821729062753226855695542924664428863129835868583215523672992272603199843543870707562646878395971288114075086272764799692751848388902761549325597848368636430848869739919395806018644570911474324389587474507375130014764865141769437822649735430092108658599996489423470197183318478822398228104296661656208205599913399765866597242318377068564613887112224629553438874627966830457782883541225322300684940482548545811802755328200854139554468767462573110068894008264410044781185958614507970996287854327346180387696118973082842549377637622563068808508610819305217611417987231431424007665443161799517949461970118133066088466241118523916727308752775732887839971353665089928841934138628689034869782825410710219883491791780535492336769447851032227816910144685233423392177518536727468357517159104644228044519817374156862815718313469608943172866024895043276520239123262822979089685635632146399733499811714569429072627578598591880499048269394081691239533068015166443150250789780787895490220493698954416474415089618365505213240825983137921768247977408074405915668692912919829015714520228002231809203439997234235407202848195712133096014456049716398950342134463224020839727098704919328637949118913275642480960625032134440527100818455191274292174691789039942736095360425850219292924891601987148067751763319533165960328873329633921465025016859544903907904192214319151589712353356760439234839291006097413212643906173819235262343868838413177848911121925508695340842153850959831206154548431215490698499028231576494776721953444433406900380551944273047630913031116959537556726799747897325628047303638740673216736492881749748187463467367729939690866872654324191540239700123023145357903449994096659914833551883626945524436574592363367059460141429722292340147503032399095331534999955686752976897051412999854236236908633978215850541897158056235122332004987385580078711113815059584931789454540227222916447225404036504080450805722639133622373291562877534626493831434027584640844740088726301214663252838671765384161771247980688565773469919010488012995317490153961531714370067233076410568809042415033471322434317757169721514999406483099961115322316355549001850896598050537040580748079852481983495458740214894400768260622741640216818488756253855678362553063216303505376280025899600991357697483575500292653674138109257788124105961316878910954419715052813590937094405032154739887229902281477662238693688202150148676873964857364771029892070719902234059556186410995174848924250690735579086771130455593879758426645730592296461316974655775460149761272857348129766080167005907723530105772541960426130583925135028886632835706983674247052565007282234691461217878637015742631429959211288254617794169068099761582072348887881587785382595346747992512621034909280727309887469336197931982764362498620043553792203704839514898542166038593780868590314439901051664050183448316503690463604800949069133894414769737868000502922788982765843678597489985767565534169739724023435958417617722460499233023595883614883191039775247663648738783868226361135510461994659614775843871372103224548416220192608151156570298153311289021890143544700716975154610468019110323403780055174431314160988605311684271983418963501152313313091627520436357761176064991477650247611141973282177267791917397169692115231104865774509524773271940803777262164801081235879685333830810035789733118872696778498729615009643235537537393333321523190007219746905118706421848527817833094109300130535949945646984564950164750399976245798726360931281566507583788721474063701642090502299978349958621688675710441977804031844187960544256514845580837371116456047492013682676447851947568616175031943787330176476503709544781969835556566824512630198723038506578152440943048875275245956114520823766083760266921048783158150947288855828672625201924571191757128540979593247155535600525246911850493093301522590592707384525679049207775772548548410031910185184938916424668267610302611295043353987630926578394185971569540053386254944932162062027925194759463419853519994893632861489586262524042102608900035167356813791953829784641705471314442142786357951948721427333530493252309481444353106868764654599900507263956756476998352206237330745871395237511754361318128990652005761120319339485295186035777575889827652009607440165015507406863019428297463326819829663911775890371416401822950985296733719897084162198387241609000435427654640085292336592259986122311574673859250416460207832644809550956596312795196390225225593717500264972598964321423030392169504243127438895641757434370871742087444655164744967688385143054394090637034307675834454161071806250911055923202400752578405626394409055846956662186607340652869812829598657767293435259752575596640669928062840513581630440525973919036555273130886610564902687736793321141755186432619808054722282253587977629060412170505558646891520571896672512427585395874762085143277735571975573327602336748826159798031322481111821612842001771017497012361589493160772850353292849323429064268338329897665017613572945003156322481691928700902257094797845833234490460138973849360817368572141674409074156193665862555654416019261007722430258969827101799235678920852610079232852369960847232634579900062119173638917784363305315245969054663461026694624007573319672180770387940511866110966985082909831614337815466539759073853747879858828264796494993132572053004095674919309293415292993418707764842547543537949659643686959691091595367797304303555906234736529983171976105453969182919583594313580821947618788230960180071509908885558063714858306071516771100166667682918429007028680182000973905098693424485063139687079588182502625191227971368179289369361537713088832467962649655917007384198346535641326739703198040068126826081590792852059914232089365040484275902074110913084933082278304270371581254325847425202351863902323031355163499045583041849105721984259100568571092788621247603355390407160746250225847413754867650096701772817589233793282873931747596542211570372690005903636835160709785391385843026042106887748211915738499281217377498877576536300960277411582591123637940473307624198523518688126934351861253681925973200590005796730577258507175567905833929399238894844163798804071854911191911779047320792475792662716074877077552792859448591560605928874180159000189292928350098088863545336706393685917481383120179098394828800077245246219374694656561790445567014332875684129825077706496016708001265241058553267935777492823704143587326338654203234490327950366521770012744550358668000774767464636699106409500457459322925142521241157177856891789856670830700320633122210720618450217689899849993721059702961619293626843113844867184017241101614009453666192314144865375569617643242958249115858589341642752095165615877243474910857713776029070316260428883579106224072990355060385493481250012878425403563133141852947780410269082096503889467069318102668900609696333820535888480216226533916985076620057302651251996709617392885033894785046554125308434008450818072291915678412970832801971070036064009020858016081499689234320159179547987086034085942524409512321552265547198051295070999558409050262077319538299544759196612540262219129041987151457875417581660553984540430847173083284012235092072349240244003844680283379135049373250212605407986537782443242338457016568795573763972844971938695803526643210418937280837409119087107165748217179012087317148322842425822042649733371777098785314904020392296484446691259503591062670185611707238040102938753801971287536437967380599894177866222241268913620734738668078648921422862751179584425043862153838066296848315430121939591542484387252705702433504314703788947208480754011909922145716331409359003703028794699028305567593302454167036185258913983957088042119930931031666154294886710924979283791395337646956865158973831063669912130095355466582622992508564556689574252075416896448019057681488207942781623859902952986497115539522441713992431090766062192337505006465804577670614495689567097397533022595967991020906647735708584715610596604303990506175079321289786641619503341343362353496492099773961732178096179861232072399794608586315841469045089911061473469963031763331999266133715683616053563262183239928877113787159993286431824139665519730575291341119421803747151870862194928912946746090936544334263128123907804351397750191317626656563082653285418586411298283225635403667381248495499336972998428754375805182031544077667324407536332652432196907892500521827186421228810628164379605779685019566425327814001784129536959376988942380340232677496956627589820331533073053545554176314456378039575554012929249319223087169027699188290832934882114067091679631298941279167525831894126466203717032775608706993083892564597365084898452092566720477723937087289272826741592377396882301646930123778716336516906832384235700140838548264856109309854721174094746505285380242825606248412778646453294952067638463729209156747983094647626334468854935799097398976347172963675888782050552279846837577058467015873902439000246270684609492952172049601322963424075204844135894636777237737701300336219880671803718007190377789257264706069062297826608881101277595566341074745641560873491492669259896996124279807488528703340188666576013535968089635019564816844003576764903812507684470496217466624668207611462016440549946288721097094735475292753492076960948817387172096576356438872610658659120813178097268442337832908901375297942584769047538790177357364763075254841878612182649776237965756040519678894126976147810067200113567622788774688688650476276292067253039063571337400024401829775722848220785416695695728916104387881938208853685222527023340734278109253604599151485144925126120166973076853783311765427659384626870483096469252474695348839391652041114461294925832185723130965403352219779671473624103253903043877028170875522906120637019439137246580254086618801373756780371189634420653771716633267055798465263373155719038196399383799901379810126136747367907454586245323420180482826728523838528909129791127871735252425661705685195553484219949942910178747688322701298145867349762234055526058995992325112052047182976752652728021615554614982495781106566268105814653905215744182256866542407274172009610987752324587532736848837980260762054817211989991650160102686669564312606461207951071724040388108072365147429326855204067257728043916758598443178634908873957608412144526432898862773851991144236856428749715286941399914691127335871500077958819704069274921561156926774970185020419842116379207300814476367010662958519877073442235406073487563356165219163148462039354744669200611831537163918924010467610775940559839620470346173737202783770484499280687198316186834220292110128766277331905609049511830234520387208927782775915263736787678291984996478442946686835217639475170938054405614436580243552759516775818244362777017667609527396974133710444460471940662722751111716201896253006431108484704573427040718186568909610371524278763044565253377277344606345227718132941464190705402719388123157125641865073904595079717963858650293842756412462232485949022485014555443203210554882861892333356410229963504497378358303555857893025793152665408715469697576734227360837532050750355523873492963592338224834682504606492251683199197833940985334401837707473821929245513386245932099028524047797722376058739946546315417306054825822231570538443838222317832257355119557201157245060116564240410709875602087752726180410876968034971213789732835218647411128534832666607224818692819246289235444296317307684738337750555372416850138369515394707843928118189059247061899770374196245341159514366558602381909168692421894081959207942761542011989519726951358216406891244419352607843897922408982594393140154386547718875041948745816751770355704630805238451545525010191999881559474788343925166085447330403621609696751313996792000997064473350673419309528639744886824430443531898697984235740337497966848808915238389542793274368961596040285925016298318473823819842041056974067874780489835145898584249980442804477850742729880298753057927117915201337958651501828092155811774964825558706998745107350610356610593226330384448354234140407849755148577732217127207060783672384149246945779247235217051872904805160010327112971588727537358557717179772317328546303864533865086700263780347645052333854435982061845486191063861013853139578494846158190573212586288207506637219089025221150449916843887050069464994141991191137946331796844387595267726035036498451009831688071147379659593735705669117187963320964007869145831407578107709543825301753380488943151687851606289676126333000278298414478890209456244024513746927728637790236697983169549270601114914715355977054963269679758071906709254826277648732614798920149251728357380405334530850400731950771395966273415558281921277111805883595845315833709067921837948489283314062839048691943833878748994851547210478657681905039882966035965935554616698623609943088367949239439076987614620849848743241208733838513664951287473116602110377377508761138735159194275212033984347826395401058033166860672355448653917291363208499912920010654917476472497306291909607268821368678910693014681058295556980279772642728211377322534902661452721844216200391124711700019906499525211628438315486204770603568911666555466526792399973793346487011886506226051783534061753535255972590169899378152849956603746499838449105811289209626421793575688192210781564120457497338871928100237174108008959395813545444266968748165405070380902135655444377036342119217663011111308178327889576880396684506714463519443532884256748882146928418695053848006389044367384978289181126701161468674225988133399904567777245815657089729371389287722026659121366607166306858380127357122498168396908330168650204376711207152253450989198184096537828915993991842486072547596132468212625027084126458793763399912390436189817892543112292061223279116978402394943210830824193913450081137017385932094801665232745664086318854453021079416566505926202104212540416887699735487823546795582433325287038745487314866489977810334476374089807073384445890509633991927483869189325255854893060880476674369486161980217524004213714976840710038537003205827166422629543688900899490492642598397752526038332125027256437062263715681190532340227322628328061700300290479692472993514377172266326657052409206979719693605981389736469334124580466996170080587239358307099835977359529154618284497967719568879714952208962102962823622512639188811424048962868821806980141552145561338139371144284202195773036147267059763678709197482099590205714483761153769208147059994648814603158175351984998257298620268621498214499865770313262641554058235554364749657708301218840313752427700349795108375425800281744891819164533565378128760719517115221153575493277763394711049049889436680841525669226633115372617312717451269029166800895131833518972858284940693137822446492985857187267369872291276934486703230716557884422671793418269414243664786485088972345066052594617837918620888957464586250944259582780726773123561058674937575526947003323963856706369278487081378159639257542767083040523027152823535808243244933769277754484107300636629104135033131627545003941467818540638300828959623828425077976555516635295003650196033561884719205117932784491216936644675883305921730338801068539183716932870313104908090109755035462935661857427666564953314751348739777351706739110014758991250620182755553931043904056788359730823379647098254446694969846642707486083269948743721016711434411179795849654650150923279389001656272189928304987416769924500838893842357428183013957634855316477561711266691703939694518075652024815238966679155075521987644499067042891602685497683066220547782751287487770717825564369208967866049576629594994440801847031298900392543565343857902684187213300506711644791531463258107700361389299211666674564888957208951569024037050009658826166030825232271183476670825424409381786610102798244759538388889983574450096556949903069276739387952250124931148277612453922494182716066152622492776635292664416864342647642693452812941624910365092319018965805923108088139936725783586960030696192938420213969510680772107976675026020526516345589701093356520226531976496742751875951486849330260766343794419670834503233350506974985766559893464216952303930797638783423776637300109246304404401213434713520171963530644479225266768894592033797809340146323855840958974408283240495633719636243355514524658192135402531830294007078532699786736130041435037292074713742517443463928940113436642478840145270969949617937379387560927199724652139253968334658717528481899035998514007175077664507121538440803618583694860171551356791892280026863906691036966397662661725449245526801874665796182646042131929342251342438716389831024398846169163069411134424844000209093158374805364890177761151409010274712109359996271749440745718033199961351489614003805941206157202837495121067723174490979316214620761111426284238505462076673395248173815220929155793910284632112747817805965323703561857303908873495720382628900945513693578382113954348676453486109155464974601953241444655618632915691933340778081481562625001782862203783372745548608284672630638273431932583619679472353730068406031390189316099843539725578071261836645846574423174647616421142233762313880155608085247513033993322202574211622845145273108490588965210585907715854074995376483889374259134573273270046056448361324259310972157867972432537782121186576617539530721461201572995176348096331269219987058269621908935901987288298209044043324786769800056977757279996150750963438629844069870445481653986391683497041143313130383897560100681676572629987553841996808943951846698359526376156811708242480070121513265898455677138374843103895344689019271377135992438058980002821769574395514043395486877635845588482351824196673906141227959508977768102435844241993874340371211925949417401840207418372453623602412811268287994546216333202714975843873388905671126219439140330814099050405894796933414033557091332294805461044853387098830010906927564527980361642740361233282754774903153992367710611048367576908801941654130771421586889806344636621181320008343476462020248408376032910179423799379257466288638331270998631370417511769566051870337057226917612646492387767257635402807676748031179215241089449306433101807874188916013672174515364490820408412764909989190924123812002685663720979721840409986612294161169708831851730012145403696448561325777186767582259891586304247641739423518302336918243539667799757631036166223343946840153361061206159459725678007872979123957230397064295841372007579827016310076255592739857189568132350041998685654917423737380583341596964897054834375938212399172422900961046784623253538750982071904201849697977841186375083785544639943094988168713689902001452184166899833049022029640127006648177119502538405144613109248126821927200685199248154418838907447189328122365481218241414693131569231676631086178724881071507511885750447150430764654193291981897094261600751845044031990224068352288272400168829253164584272007712811101844246833557577812759105525716652090476381477939367221770084440291456207801258426309221049381180729975331849337342441242869242326096001288462981389007782091482976141794658611063355346536670968816874432940860319686867489382255436103868348089782399327275530763857604996465546181667877883988567356789586024153228911610714045471957540662727289907134917978204015825501849867216592745606635962717764526815650978522541627691649632468129518948091591722565604421968547821993385614371345980387858464237959043990841692814505559674440148455414322300665686729927390963481490702799440992094607502921270268903381556759404991356299893503009486408530372807064421066438480925479724220236386829556371318464139239699997937982382215307697911604840283720488877360383156616167259254903724278217369793098459785158586567716180785567096284900406364457226588667511650810239268260092803519397236047077709596878775744153187356142477532288755233897215847125292539273414669389770151166185463476823968672759564856861622064700273941000916797832483299558389158037378240493055985706984085565303136601470827627191065798860605871751600685494877117100645680762730994199182227487155077879321547356293380456107848396757634470185915649906753398528908448092167803863116002889218044781810008428771956612138566377584758415130078217134769191536434334692970339808258483168803605602928605818620159432113751599911996198815232100221365526784698994963300818517746944319323051484295493241872178514222853023071365137999914806927713969530806246992945563884268086348483857525101517093881833393525311306531371849558214498820203164386034336334865216329301343655391999217482564525189808577591819279189699428815715542352627899172546926579293163201747543408371677971253129886187938076647351418967554375400924657592171099058429800715892359585473016588521818692041638114620608871144506224945065723192379955058709213418104221208507718761365754002929300143443612988132471007162990393093124017570795561285692142676773421597970517988093845633736543820044971368683037708983956152771520431462262652442155801944080556054218842905172401051221946880863038000193183363022190957079451162519378502738267014974339125662632691677783788744455467496983631480896183267605922484687326149738505055897875592129106087852822124744514567238295558461116292618639124492718019690669975461242517267485442167864048848053159806690316240739485355714876533515632809900967169747233434422174811454745913273529410190267979756517544336429313545970008668558071404610338149676295008627420315975228501050852249981982039728106589928667250285053542410832835885463409893439359070264681045430620318606480188716117943452126576788249252424891102773140584177856569238787898698681085857727891636944668785969558813763171928366458657946104055353307769261757962311211487209240796344481725553533601032726005608683720019507421396868893368427099620169511449678628534100269800269525670300173623820236512864195706191106392847330545102457230474326328982554338185853240538964797318437384885676869061072946430401468568948524604787724206447754332459204053059245113085402613027469767187147398966155320504944760973113212202087169109434936494146166666165988344339190918361427067815351963360728352446218147128509637619313655775314343527938632999376260391737905846775370541709495819242882895296983374724836271149640357389670697791748532933849435701261969890079167426489951994799305600253565065767459668720711442239555049055580646878175993635132998973238865673716474097168645661512612494038885771918174139168871377860150205308393104459995461638476781670201351261987502073781902431606840270926594163831544362122798090467550229707974146491644297320258429523314147853808035598868327633546180350318352632250596826058029758705095771105995136478020580210738896411475760267671766920549064529720207055930813956919737296430256411299176271314133793533752582318867719598010743934101035375801509806572239639312391761978985548894976407341628464341262135483528256658246444403058914497920871549209835987371582094546337179597998175047627050962749421849202349614138164252274392456792317025345051826137655068448324162194660768954519051159680121848588442991718359675372718987291342135370120644273432433762322971603436367959984148998304896139276528515303730286726397853943762521102868064796227896936698117898188734116745599417915436836347954367239694004783697299116165873972305942946212908591218272528782597429534157578291201717989783303619013244124420808897551428140846814261867444732594876732123532341084375939187043520851389164197784898942088503407976543638478222228643375772560497042969603645272544127154944060779650493872989993302632575000723757513786342279071720091383526272626778586321977451808953870713979721263692744076343255156466301219390527971609432603978657264665746638574502509547466664871881532717463305443488827746400310107468970810487962211967015451711448730267632891887651204688233831777679034994365904608517154749370508589274276478452380503625600599872423825771504813990482729434358908839310539810118533575768053608070489534279571280497978034157879918222428908692799665572787114588074874170496217029259524173504703841424528041283232613249126568801575454347549682528499018766825522675283715862887145081460926309409104329616574392631928976140996464794637028335426424127999719566732636404494426832249895774418486002844021282739390956679432794050920057691721143284832321605344416885326828096294370323550932851343969042530344253872302207875185650544202895160120291080935672913931867985857140830484204991173410600030739768861565830920642443997480235460123723059439967507299634276854148927548742067140452410665537959227538985322049526049154758108846874861614171564041218743631278962437506010879623093867488752551939494337252882971244063302809548338599611737308470269102968140142046801713455159849414697199117016689865480654585453476308327142914193084079948301913043492017155732541694036308696235384593735206278685711055873158358371401637643540021537832525648372832077626155207712557073791904196364560686257769720962109232519782816058330982842041394914049618131702061557242573034984301556047155654839702011605836719798588086918855972582997033011947804939637446242892816609613635043992984902455946914752711755225494433586423404349362050119985414942410815387272446810628635510567311382978052511603466258752315563088064816256726756169368494678639398150453429220306134404587177443748790049894945294720611867214307563989922482053010481488133032690448373806681064422330816372107568510915490347396111144169579522155856154047767552976076410474898522369522396464332527685087216800518395880447291156444876128215743198077914577193645082162968301682349484211244986207728095507818041551352076819490381023786888873960020645132471243129936494290720799360175838435323393863789036226111790947963416700968311824827218428217807986953400901634683749000839930400408886865407548921183171097520728825271078993833339281628099813567175849966794999775124119263972225686539821501133978607657248289229066232262720527658497020485241170215126724736965371043116969654331309760007885681085794627891389525458261326888772313214904333181023210893316899273309278964769298458538150288921178072665612554817525868977681012636809807728934557833743186652032446073501346349115418717155227069742112075133791408094581087111781275786517823447030401728241323817823298942472523979723421300977957315355495941183804569509996278270265113761513566705887082554680328260429504203271914603070896785016263985513924178812976254470989021936078718661121898941062512550986974339505454734030612748296085641518269744599928412297727863714470085812726228509186586664522457607692334241918242825201815789333831325164783378384929310546975224211881292092769759982815294995779457379218624088543973527295548042396374495272388683317496063300942301936453635356304098270533812851365261977643600738744493643232650431203655309208396920786311993639105745453667598511041596589305164472006835030983389912784788062177901723944138695487489260746830348122010445646792059903178484334831064633659465404716564095682398500396345028480579264628282338295786303272727570158663550335676195279030341770285723343515380754258945809662702359335705311490221956843527850074807653488388657877979344876479809250494390605132262302025549037421706789855524000469669199410131165589154574784942568915590166679389700361822015089560460608733108127486794885769914839580550924334302205750618205709596783093173426362059508569875381084328071435967340886522192625634404415182550780485766907224245638184616087869311278682988073093488231801064264445965815054007509033148969169159648400517508411550544353847719796083412245504127312831847699521757596046658559654914119285877434822662691219730129046242779505966422429206364248128227764862857554084039947319517855433868767491916434122690829089750516693241580034800884185540869439278307774379606774283995088609885416611124502217032459241818420409370322272359319483577729777809250237577157588812515081205670820434707860323528321381699655680663260067180754379566323888942895782674259316954865852457522875280430096295674713389327748678816594536821920791095670256958546230557895099707763955993694090305467903546320496567005806756437471501489188154614283444655898104708511556990599524777810934418610741610919008275977706442351851021987415351891553370161614907342555818790896704051277561018369424258415543764313274281719008061455598784263289559181090385812794410008559751964680374796986449939550342269417514718913184996471002169469215069283166851387141092894821606989407499229588764779374996740932800777018118849357853735830668518773031046702063857608887045401755571603466432669240434255595697593477760453421881608398172029879003059594572443871487924273208690141568437164176370807505588325355849527792858124478506037836232185406239207952053365174013804429629198442966663100953964166488884534393566078811468265861156698745080544841078768126353374697192153068652206476317066784468718065645499571656387608998295461580294616184576984276803764499817518600471317396806145597842709266276207261858101101591498874771429146182836703664664893928259358780880494919580347639314964446086390520755814262503283129009255226769937470473352045132661187497106000011571501677518203624867861871052495692496601398518857482075323189900133742084139318204259489956077754086485877832214383157539423790978124075660202448210296174117085897853986554917505102683118498128414864555286736030002890182728540459736409783717466701313871679035170349512310903769166385433926570691538615507710695380330070172073557238921665679540718427661204083932629197682445434786236889222945609871868238885800363332491196577120562896132220027552633835361173661189136879978433540386018712129461538241828736144837235608332696068844406370083264758194663750596343059283243140783806029465724196619794923425254941763145472793952088906500290102569719776937322107996441934594589882836072213050734449660592905913349716580883769045303554097671926071842822393048037043188961128604915589720261009663738146338923011413253078598901602637870536686628962582202365484673985656670891047417316045981225265368278986088058700219616719809241071044046837564953465574060308742234474623125153453274374584806028922162303078754161877038697936470138172683688366647588249370383723165126474854613350695649910331146825756984361922566116145669664568171071230393472130271441201960573522274737784309060617199097141939183850938008695676885345553783241033136580718771295100250416715301209207807891669221591179561787694124145046526776757161609509564892264053311691849895951264694898072918223014050951084936453849235829553966631508369491363738283808874153516724381527162059441732485950173995224617279003732725836674381362544833686253885645319924808654755568560770555907504736774014492478377805292326857830551293324591573610411246738325049650683850083327544182244078617580300256907197799165040715615184220443154363215873566757322145348775299847580706049989204482857653662176990806282019545819581333052287443163335758709070692550518070967605271138489185280737327518600396061882459627940698677917940868306590154479326617955559024482577208085428553932441091067163133622840143551397646523086411670630365539561539787731555143520920575794020947132140700856030747062024026311373625144416338910401976840600086921279013636355460575189816192468653305833293849455083376932060502834354404880245873560551938917309121056723734760132791829226539629561918265171858303010551866621477461527228511515008661715249055123473513291757302984187326673363231471455976179721213042396891995568347875741155554310932409609288545693492317913976817071118033314630233329063304570083905696112689897520512109909015246779219630311462011368899815444111969010753822289435567976221594871218428927308402213620355642378565201551185343531367041153867030050647136460801331872214541384770676651309231919513561025511879577488124738819112175456193940014271760163657899163439507375459220807216570741947897767840722780941370584593118164264031241740594367782217277508550376778196836543030340563981993382140712528091923784289761676582263172415994187975414984728719560232496206261028973004451977171190517148676947522694352880793792662828536883714585557491581727716146549105570220665970768529300077902457449825432996470550634031001791956440730518138221132552325085279804003041314023311225553238787541194193088234132392699614685253918113292702512596156226356112897128623076029028135818435074002846382501488480179803133824000729930113534973008624013728035872083114757986551238105575622169344440272965293235385956664093477084823729587388045639116861153980435474333719893848848324158554929512971718086472169851739054851733778161249197314395559322682902835675889665460605280230352922590830756660248781849211219764171272643307656915828770824138366797619955599818444026021229960360157354834368606495283527816125610132863712495577271816070693412298880964532904266118140962774757291508048404641122452495508554939768831458558089692793444063542061026096013006827585383579538527532826234614942161341554592200815554194823698151301139970189177333676726703726795162690592245415669712244184737244986200050878022976527304106153576569465664397697921726351130722781369791762589771109307373256477838060907850325708672335668572248892814962146828073569492379999460811079739033862014864191631549296948966410054444331201808599962768957236158281031751715977065026104769122665100196004634968920253014455724561955663290562683290289418524403754604124170079731070503363122668853080820221377870850770630406125122839676761446051392411284855212412048333270142409803237735695941136898677654670192425140627461068513163270724154226344176401735521004359713840141208747060684370025918756863400134015977049155607352019729337404156034939347898059844240249381268127297107442637256175508675463529476677664148361550567424593385099454050566273384519805510398010849953526797255814146138680853623410431007254881070415658498787702375881467278683478865677520801064230662252432607702558097594094530765495933412852379288439803183864674995719614070913475061327607560755146835757900347797835958137123113237928278527399961916656292936602717965184509594130678919044407328034511972838540896811723326084144884892257418833210442840694932750011562342093479185407538059343052078472402298676801833285567949310480675826892290671619929201643865023703147755002996651376376869280295813105726805109187209464332098571623255646568130468368408735776088438581049879515389528589865765353813257327429533867437970430991313136699732906281351193448360152910331697751195403896689793719974968107862288139596984709067318910455130584980858361831473763840987626603864210159807995281841952417957981312502138802994481924028915770181888212935569660983654155984391499571463377345177601169001025365755181897865298027420015349857669417718037074145527957073863973902667085178739580686562212333637467629322328524453962896690289850542579139551762914183150074816651945469028359534058674987252261945171513088538270630820085186116419118527539911951366823283386211470864058178667449588963756337563460117353772107658292811364045418121168155906380713087258186540531720676873485579984926697102564068163025649722921316549227338577728955513333911317301085391093398093791832927065151202010891282070424842088277216545852826039368218463654244297329235940312213606480117194134972901214805435485519356177437074184064289242044916036971948622757101201386344534198394773239561395336327219935438047438009066186448708963377162381196112562228402177791129847238291570210818351208345592091597932948193345675276240010328225378283265949831936773756681540881240109854130980154727861483755914392271568505404039904753839495736066427240180934551968534362275337427814025742078479687176017183978280440059685190345801366372047912738981753913185821870085296892989233760015359190361200483118580081578760855060055017072272884546333690421502726674614400051374045160158697581116523568960836626214393909824888909055787294822376200554986896261444534244274960951480046726920827281044890177976326886781683328254358042536712160848547444376564120555609067752186476057426238863920953665021456034215722276249621995183776520021353182442071828080652323384211085451982828868337474640911584469082076118280687183438624770833285812476890976895423146086840048897931696061051325494720350913384688769098778113546931924518522217376755126220668340137321124931521768371283942419700452042302690121591763796636688595218962951933768871540367331564055340990876040816365668738243502002427697954756191061665945368845856410249524361336248417183461194798929038187005355385804725997173710356397642750577144044360985056298626556043068637657291213952416751730430444143024058935449348171939780881397377835101863606142095899923202974770658380211284777644952451064872636471743047202474532735549335639353362602522849932214732051885798921016542982013459745053804795891450186234483059686129910041446968935852397648801373282156194244753899240870352479155079002887547201347601539737897679317777299631079459708210229357728700776322668194917316554607180683115988058029377190790778429202585478808694376960188939294171535524242791845971517510809679726753389966909559405445737853681172619748393446648667984878627966570124459743170404720417180939451065767135572986836901431884543690784560134186283867013226513019365032024276360934806493051241260853592825622106862375682030770961193305167793425964909180271648496611788574178231795995289424552221454440695591173309195771109819938166201309842939908555441688497883920260946535659334410559477775858880517052910138523405886053121634526483536670709055795928730182757228146842359511102096340469497367195252133639354362686083704969751494061578737687311800330671822661286075779332756241589233157965153075607177876884286685178350558285232548730267209699446767111171073237764030018526276648717467688553948361895408821683010291000000795112048145212804760576885808602550672399749801664689593281938857822421575938405504934655200767207407564254567598740598418082238891362808347851305227971900270813928327361400274976775265098949643015713844051320891422985364047700495057497064451787535362716303050464249142424671796746760433032017200211715306928381148755246915866101986093506236245241180560390480694286800144698099179375016780927493505946165573485781055503559174056691323003052686980707893049754819679646068991601611308798307265198340392067194804092928732796630744197716993644673165264087777599110706185895431754776989023445220983289382960572225262813633264839245068088282512280172274314868463984375038790885973256488516398502336548434906264081768054150564096818402162387734311215419685222514867593963535599772924362777560919870667257339336636831411919914285204074266768604040707317551505332940128282778513829585221141756436444278826526151745022656157280471170945353235844039558760155469306596688853170212835894135568092053200194396542963610463881035313881365588226368628843984566759227780640568511686438752069585598902450983160579135879739580830415207141420507863985404500885356579755604700760117479796084068254058449457879120472226914126174133785896317370806978254139971376390514303046464891822040372014380511553766743165490066680278025028637339556843708880252468364166867999296558230572920824767169585810030581072515363720160881018826550762071726047280758962469303003316015466281263865620378462885628975294309615329270370223999312296895225708848332587102668777146585115421050775714338475106454680432149875628988942250623130917776529872959287243089077557101739628388213604044296001185308424287482219741442738852244964655049230220361556850414952900215287931709896622739071514877546566190734948495617736426563549145165725747739384360772921439846550505422246182514139394409516539418330761653545392752727860194652920754742089443467585057688000139432520983038144861651976208295020042764358137994712914930461077414939272944164913563281038503791162595295293482529778456458931417319619039291946475108433719200816221282675994422955364506786218494749639748826297372714863658235179078961498613232554316450875148799431225081493023624653975397838256025764393985968357635482758997369696509587576039842722681464218932113101382101000182253305580254732767383960978031141089455081285793960786992463090670088947776771717398723594258097300195629694124530873624511452858581028782880342961357974495706813601283033276987475256828051414991771781944347230887771265935593126738614148444762458484758084549329774338799200543423944314118982465753703940871881614760130999553369390112174754071754328462186920561310544384577317278291746750698022738134161790178833407609280844531513288986790409027436910744153555597547559060357991901180616120826671412160823623931758351491303217725462032809288721978766574975403437864080974098097575389689955106440177578418411536179504679479592887937415978470553853465954644698859037450680474873619910436100941846454125021582675892165814052058604302236378575890116979771475647221898116673920670456509568955189272559648777068891579949444193812834657854496185972670357062838283287723653569913285511827192486576431032558595851455693373174018046281973012575755358897876866342385023147897663661779394103856837799519086896340318267320820842921279628582844186085526971876209309814840176795723441209265266639286076433291644195834167590875754956592639848119366311933090495904432846777993722298123280432508145803748978485362095475523533280589745805726512057649696330821149419772226992137374906817046290176115275125105484697482960002703152568539428038798837120244485774753171646545302317956782759296705138846100782213766277952036246345478607309572998499890629832842782436072640015860435799326693489277407548985668058865883747387515429231473215668875017207144056247503465129859340958200955683804951572454936919272049236077730232924176702569630969064596709262260947861890363749489280820998969895724190717861410187925937852101483755438594648529978726197977909709575990348218868851933703383028115916470550989040003592494874973954092695924574090354100399428998409049170342863366749799337427763935355167887100000191181821934279574013831154228162237354064896927133740611421147448598142284403298974199870301124971532565121923149412762439545779865896882242075409015423312798639120315150485670404658956567209104533336900303068127874634579595214946131709628411828067097402127615536882380052222958054958751351712006205822875133525242132597538746795238364988005010935670160039030250345690287780343449230062972641140674192257118108719575717671553096635699171667540859529393333943653597831805401879860338526546176426337497254200187465420621722152992081677942492961956799734317099386397023318910143940135952016285554068202878139405751502340155576727370076951238526436617297342407400951636094014921287611159649529176650231069291701197580910964653517674361113676387876996374466381278086527006383723898916436034698171584599264652125448429299293167741237229869916122866677175267445721499095313211178078952024445330941951314324708055782976681976582481141061075429615227915561664689490249855584114122232646811043070251568422016079951747703491450674195121811653966868987247165241375881919960112417403754707922530449117321580547910095806135436774462335878267843529567176610230121163121498429365060701172689102746497513686524225640871835244900185723970855108248765210555121483616619463105535178454562940728140344056817285877785475852631943202617570131840505512843174681016568111522293555741556331972519219251120041471988325902874660764352499258383840332420353323204991101148624736233136127694604612121503354060240999082682729660591007115718873446299207956827668698241510336290171449391031916358465108116592736239893475888554661743587584149621236469868862535780819301876616690336032096284342275112848130818964652456963183066558201217267208040235696092698752869682459475702264829670578221800979844446992808733932154519864694345023172369741482795734539597213786126139444495191865420060914233000424773760343959742426675734053168322226921237768777519603861378151579276039569610121516717251183102521347727106208235653917040767202499004314584288467008057152532151958256623247549978545924766805321587926200724494857526917240149973084701500639333798622840943291654613035017049164307204468342410278559221268540106175211566714276597336308330866273939708039148601222469292606047806242541529388053447649335674207903812107834686484251817966328444492548318007072737613907642509925501901798551683478142408979133155421941120104347948527889356370090772070773784225262706370998319237751958446669452468794087103194474578425702655159165753978519354065130222701824451310236694114816565914273435124748503846820783544992605879414243019604796022218352381463826778414154378406902460014120467688732251615359085461418336663320229434434762500095355084520172224769684464029543952688358509453822212304286632516176316569392092904481975722746273981548257695336148076784913527210066151868100794806441848865107363418121861381199114177225801559859588755702297970575847386907757400789896600984989598163804069537128910760141083473782825982741145102116689288387153151471270837399278123640466240083845791701517255615319463463046120380356337221662392072888442794772870744748199447228519517794537175947414899259859389227699787556789934553626043818862515498092228425806643948216131449017688648600579903410675629087179324019809965486250359080993030595343616338098518048750233175848033733661498142271789924387339801905461586743903167629995341381408969643535392932558227641478815620020174117887121826336982324834094530094206917777562850297719017037847114876708973227947778571547566595579008170426606091121488155820817630615213593634024384129941013988864468723494987878991668177143556791972793850407105290753745142926996983198641925154663907468542707974404735432880296529840557653443797680380294998492150394710217592219516091407111845937520721393077824245544562202257685312016317256658413636161103514977119282745675732378222187717403712229034500415065375130967264488219752048939777779917430967741315099941555811487763643647897401917859959725454625782996981521644096503780914456472980349551374979881472139160973532495641265984721012989835544160199405891028828649506979520599483001125572698098599560756052919065423251424606170024719070772944431255330892911018933722025941149664654748516703700621977448572936040770751958984712251678134752803508162556256913151214252872213179141341267518349628164655608151473790652947601618731024253421524412819753431962264109825398710400292372851585751720862922565343615385680276787437183695515526276179299610997297834426174724917221801993143479949083603187524320640172552075847863113111405417233521489750303695340237888642845002696717322281671768687588114048249654026245205522139569447184280233648263379242478233962367561596548549196914254480881143060052333027418071805728742908724946380454792572453295642938644685165983048296958337117587611040580807227643754002666333877615513379079460076433102918595958626819035169980623170529157726691798801106949140111247558874697465920022412629918334755629789632406703124771362995184736553527686529638388281049767897593916209747453143780414710672016991462826045390924366448714722442735766064010939315182387872036210445545645974395900633116408346701618479974800638617511395438773867253455978671685329511220217903457821358982362967639870002289125690600727805282148907988102811539131500174601753975603549125140012013038771449038912946310725957947005945634869570897096720029928041907681198725956004317281039673961361435042473281367620229120265262312546229203675788546233272584718028809265318219323538226208828468486820114281855959174843135574266505106907166933408295380000441454305019332283600338046611075183592677947840809846592398480352029470346943334520287584908405376343289049256861148524947933066130612857890196249367124987579604095022277805845168288946461578435706862045832533022332612063481300328414288030300220390233339284721553037149361863202632022137289279273209921518576576396342145214509777667972274202663273113669929583549441980371298464428281670531268732500095956187313058930780561835973575822511563609833126672357086986584888513212714621497656703557454764036347167014235381082947230527130625578383979144212184674568945641377366171104703068417039679040340553195992310145001913175975857262117707423398887835154777362846204228707113749157267880063719174699289331315867966896028909461881128626475681977740817866003643424566973707634051750987520314734378507546780968501754895986244336692947547422441979684295509309506761890428209205601076928628416900506024834602387303399333596657609274664562122972623381618903307905949307692523871663442106204610146348421062391870209326770115892013584454719018416711955772306557635338775842042488510738476892623001891290034771504134905061078647279128413224348136632949862754628653223308150252784436537084857332523832998630068805355973899882944281554443353933710916049855578817205693919534833524091169687319170495200855544828234279803003433347179553961528719862534803613185145825514324501303970925562491511378422121247036844093360486199835834268907394764250784344231808469063579290859411281132100380987251783409953720795371866624829585871044898219806110758254263353325843854005729058662411227612532361450683139452193861297748596341334040589387968465152902901495928955418687560161179315405118032358042656327036437611592948750363740297978983010670212571930643474289113899960868281203080925931226187882255022921700470394992259933623622142616000988668529489249320221716884247361654100160231814806489142691026805000155202891361325608703681554200704649624243140762773174973634002340003837016426806316463772990572076020068157728290038340142538677794435695574938364278495356485503207144393713030361223432799521577915695645080734578490754869715937048993436674839663308650910923362832472764404340616772228415022776048277687085133388089440027068456991328380467234360595277361603974526651494170340143853070023715766398584781630511096579053601563680072059927901176300715216475081787233253670365882625988909797759565069113782893652853947333240090661757318835699424924940030377042791424750599637610761735292397778334877689436512540564502567610824465613377602196610462523959991192865329947403378742270701177333834644500419759348278706163742726315708367115850241836084796688764908319110421825873599880345454218586308516326083270635406340808327947029722838067763026460227265472220212642458590970971579698540510195681607285313973205576445084701377192563960958012798801040583692669642099406270264396418508312763252673648314385613672680318710873196066974219550684717808195069051299413598169514071169542663266635566119315600254451870283796236251735409463399872826161274096770344026018856709737347300578409162875376811108793566904842874676190699135948626118434406020374363782888117622789242024096628518622560670969643519688586818434539898978793592471266486941362398093904716858010701912434559166636170366833868912193825879675663597852978741008538194628996898089846036452795558523896843065590052067427046280381641027661501468983104230812784369199787296452398915688219963598416269835220422755759854521991898506174519783023954298207524679301664480785790470065853153017972070902963101171105119893173541670174876761720780760450174031128332087723312596167352160613172200248742592940062767886515432760217325119758369960844653731336671348038996265750593407994909673607195789377402784086347385109703128830170274210865298905581466338491277699451495871690306834928098289900654561121889302444878991292395744658295254280816461836205634833456152859430441347319148722117127314586982914914078358167124536301255062748236622364857420733322622775184314455400099536426629212286884201332047933689123119782535845229698384177905331095775192822853916410096507671255800137406277645358821421493165406667290981315041358764740645561567859676758327329687965820617157438572684903639571865546455077902224084716638437146662921544076485244256992259415097502996600213240593456401370997421964385411255425598993995520532829632984649704797255004576999976762072754853748336267742067178868845587319154837686233359106194448958616699033957433862196591686054778821525552697729589411425985013740847885093981950062132372127235379333536344618588769463331325600590260403590028722746081184705603032377354635833174499129127217322223920694963399613998173593291232076236626123963569962293767052411210436314408866438693415372622556554317385218637690714095591473364916418453659256883752848111645089582477389929770001972884415188475270033077133789940711473802196671171696394480364742392585111917324449189150473768303528992676448614766457552294783467143282649306606619550840849791589690105491016917920017702272136449223627538219874008645121140736720526914714877313399328292240925136815836565911475830261580761030125854733541947203881672259136010786943774041303868520995417670777082254353005131151579376544733188210738559526954098899595914605547699673016592271892981620406445322006016692400876801900912232436676413492169131551417334854271892369755219567927895392043879842706761007896837030714703712470041770654668515519645535847656647028804915738478820834559495925083909474424852319817195175316772380917891480810934079473303527059397830956554480069324204966128487590434793288114355298444112036467562237060758109217934445927878488107340016818031890715962490597288836868712761334627077752976558948305562675946035120053185543151795035635959351268252178339346775392283180573844179902370819064740447404569753287313837848700611800707480788558410431741670480967457010822976888253488559933707464565291053670908712920339393350249549422079038267288632991283828276765778072605846946174605331989071617520293191685297318461727818836234004404224224212232989418061243585999357128281480527616046268680089024051092439730282572091472293854353547986115296967973749449851190395966548214181491759079788085561527188364677819427669403876013544568703544871953725503015616331860984739817108009250872139398134446605135698180143606497892739045149005611566566802680431420776184713996786175539494724814433147358224016982561737261172081327252042449065762912764794403972453412610109837931472552770829537740740698166474503459604000558357968826310183207114683425814118081382624492981675762523765236455610040416217730820675829618209938377950556123467191870573018784229814424694035601286855814004199850674450215496108307566725066689362835059974515577412596838019201121441607557125355496229509129175194903964849628298444357987200470906249987070015751124110548427754194302086056189287374232470682245948570021664860813346178245594742560609318120391699909157744088455125485878126971814691015280876962422629381076987914595496693235902815146035453491325494952887717745479716403537724667451327285585221968913623755548109894546085274515182648992457411886002416056528035616212656935261688356581932284118191195141491933566762813370593029459711237553205412331213990617462047129388909794646443555309080187170759226469649667315529934647176487409285964288376607219104485316412473232989587007376412041858419758989350520224004194714889745781689299155168750171103742517746989014857772454298111308831463038763568844182383833915402770539788908360563366171711014826597988412204606839919856767214794433695147201874102555878828372434106822494704270837797563194990393937222340683482339442509642062165808513866958450298220313769065401857207839510399155805789356885440638077191900559121705251926961281473927804777847329273214126562886376119176065273587325509985967191981595651616748729392785699140785693039183054592746941545388984725994942851833379418964725233520302347067803067662742103086584945691980595857214334170116529245526940368804241415927778229072742081226722366386747719379277917221486923700563108415513069928114083444468837360190357884636668747549669854588432661940891199370207792939494284415064417789940646082975224418358297891796350170957648902561727638705055851240871029698090118357150973165892464235882658304280870407740808516857969072986714513713158734917305178888432715444965928492804394884210980621459480990841207915882550396296312034953397073900288908553960059319224894299845355941597563011258123882970430903615060470991583671877012728254476663322167618918998131664896090518231082258547041169593945495552481971229533950362930842208231443211477603138593734465503687584980260200385267929852938268855231068902210473359028531477340557047626508690439139203290595086832615609982652110938935521324498056835402019937671064651466358305514996300812542955729129165603534957667544521371246373333708456592688455564753745434077528662406539707520943524529713496248444468008250688012716538929191411295830254811918069848220320889058216181676690686278540045369301942038438189802236639273650888923441616690789528393713071824401103695895373981128226059551919650798571717976707141439167424381558375141922163489709678296589383544026899347825923723624273386363683089601327967295711648183261053576490840326890980261710394996334441048663254552939024935717177758103103018929772603543453071165741052778796397938445593448754942125286002566858004723323164319084424337242730643924337642715914498350433422784504978648567765712449878364268538204793108061444055068257083367966045103507206838574006076196437845061639315091414460837296070626342379410068583368366280105124028817326781972600570752116895995749622063657818528339986943344159782927283425771006030793474866811481388079865451194126078341413441130461505878683408309197511529762463086317156975867793227669818602899350013951419073976244374426836843338648369161932407016426892960530278492109142120992392065198820079522004879002358472260972355753881446774749406529984218632022997803571359786774825163590043144692322617786033621452421233154851339440234853820120853409097163007878433528451251121521500440936683858531950588363532909692431113832924173565291590264732349157911860473638160615707017764072282445202413136523567463496884632187087681262829716388637581593865515178879892586703747044713998577749999735264060841168803521785942103393437222707265789742034280165373489793813049914303628575293848117063006955075794216498387310613862506778979484127567817369182247246547965428128115799340735613695907513557382904141330336659463484971959245093360441312872404849807173830214932272851757854446897194085376392095107171509568475893642968051442659520728467280223062797038620052061580929847243405729706030096041170940405789675885114039320474488796087799836454145709679068237326227225163855099214559234943132376154111582916201746347547394165146470426449496558877432505516396834527059980947940780577613874627852938713469068957042135027814236887785896326382537840503674749892196426890718652477805259955295733645023525535393426097867477724721227444188966769132496778794170456077015822503375080134956705032702639526235704904145814165953634682809525812468473214146387118518470413032798001916564341339366235635040495210448703591463604306284367178998070497930319048148114408810418128617076841056871933857967509882075419641417655555570311738095837232295802762973301331426991501368118890603106266402312382216819538272069523726737612732411518014676536146855608297473587959654180452152155104546119854792100108191709631994774612991270060985370878553615348917189523587043985138468763850419363544494601177659886926416792426888959270741698090492049999747567174291155894089764077124255502913013289812540755387950070849442208415437534815248048582226328391536444262831363508747348496138130873148923699432448897727603819811102251749498495213040289419211824094553203622726748318168869123155895558251693016325557220255635841603435883222319471710388738713294169746318751750846043854119826345343082131970366628363244542383400651999057858808213832303292916325463925879421158453379942822455174477512869904963052431456780020519775272396629561434975382545630881601407150072924733991516514106714408346246757100390539246383339446170584042218491452260908822016881517346331400725745746541727667674136534346926649810379805967332531795760138366455439845654869582684978211562167338233214584653189515073471941077704543609845506086610769248031981184658795931966067734549950694608851609553379385705616329786485071302435984495058544623831154340080614272654214114495214391408001322916824173513426802897781967535214661602543310100146056340159881387635528080420122306189827476995232513105187758990848812839389457111544332073102422439121383077238047090625566786385033177740115570317040799336972911029259885189159975200192719067054049673646245804707255767339570549618069653508514331058263058448962164106346129724260927577011379892846821804761874546181251050686258956370832649757320636386236391749918287875761384747327220391389786675263489414028633903908404210566187908369322549695583609322827383126816875142515455589430083712405305266458112660919199521343879176326678758215849127382085602071734561014542058854782384465010381138450044715862808519132540210630833924271202671745629615483102171212306959142023272796884156510829421551114375549704098561943189354505417685315172115731971345774616653970324802409563331259596585257288790973454185241564817914237346730521391466034311888468082753547522921616567559461237496926706321613609802707287285295159433595153871743461125462056273453056139908204055123863808354579297542210566618943820601488166573024305687366585411932340422613882039209835459652041301284539005696880115496004450409361105829572048570533596216645453856817664615212176647291832345578507117107516365036183208428675709476527099879057596641356510149605065639467624599006598503112849894412117492791546706448355833007379664722383734355603180956704175593883849866220149598550104138843443302333020915789048401298845026418048454232800406498523941009895662332214999445853280714567435021283120018641378730929479489709975564094844670237540239211089408414546602814167373848254819727717568826949377656183776476881375633934905725219354287524398651861397622297566741849913191307901871106561260460356650837147482390669421948353709024663902834424836539561679318360971406004693703905341155030137253556579711335542077781200130202139001553888934398997226722765093453750040200820406949487066821186499504513566957886174458744356337086265808507864264395189092033424073545650592696824310264628326994221391256245958509237391886691059290597218233947232787508991644454455967465411127879591783500890411123094281159350103291698322112089447514737150284590408819382635161996233004075877538085036907340471767387916663663249523928415785669407989311606276343373118398121928960728132054617804429942348437089500616067169088613641333668742943690702802066106965534145258844273335201065939847633238164882774349440119070938968169398252062770837570871919858173511872439476597059811666492866046143013568727012179626080194921744953474147986258420750267909260972578476286932192373138683262512274547117642444363468191726516383224396183710448710551784580521199598878567606446752693160662014852792350290023471103610226393957694572037083320567472354921573634183884703419067492219700539938444569978188867962587622729228316239760097817076000328586581425819122913704509369768217437929919746246437646642626785138318792742705771671739578153341083159704666530714592948287784470012813609024988534802721100642676688068075141122230519183953888049088977262306107949894042639168486314010767364431190416652729411603585914612278053886029250677911684420241918743453716888591460413466252406742132669307406650193280726264417803347346165963079436120329167627829590040586326653650990146993400128802275049925877531543321049996964155393571736866400632359399704505792996591459726456888253096567379365685419490655413135871365622996829648436428947570020037844199143127222820442605216681453807101504516345850715933021830003748553872563427344963461413248145441196455656915161673572160961459818203248292256090892681910501095011496499635624773014988032377021850040772150409983428323462613223011958422340981296577058249937765572353447488249297449971251817686570824057919045670385849172667623422009855157178933402890066982909385120529316387302647897949640689551543191805413835301560361613385876829437953602808772047967014599493408961100178973523443643735085194249869282265266131857844812762831270403155612303081831303080406310527585562044584151671479560043478443564779199260440182385563843047686947331713628775399859798505378816097401556461856619730875724827204637742624500263162936445558815546231768359721604479060897149302859141359524060944729952648161463287760239968680422016541446742558785519011884659661280178059421024826033243758583086054217677156717888846641438621828921816754057998250316670264475452309850183819611076146380145421686626258850186801201350809724677092503145099082556673046344416027254303053621178865681454622425493616263883076575553957264672156125372450696378522282840966275597136867887362891218985326657336846085683602249951607963459770669266590042346819902577922178231420643867832178234253234415094208542144912744336101751597251140386672481214335426436487803977684827888388961845855913213953594663016088580625333153564732156248160469233170344977923377664611314100523196222477288016454413671161649197219036822975424543974749911532328669742021378482624427216342244282039264512912653786170717841014008775016365188836061392096585341525742281479883260289613823612028656624065009771831390815818308789509530259946874740805230562771012111946458548506584568458691847037755822346478496601279689244703314655039983605068743543091616726465590207650614184986076624125811914866528762046778519068961000443511678859842121300393447957094600573584788933725411438450946954984693271865872266636374199931947907389042997907898347003108103659001555452705551661806779936688131732932459656742643536069411029781632298456658046270418915720295504341862158881589312377956742412975240094037675967987265779566146718134806428460025610979891525212837898902857549308087754768811571629128380285883831831715835925384530220515283396341533340915089920530368181224961267344834525552923024332640950736475763858338217602243879499139016939564316196852798558556826962137742278518459614481542959787658112545626480772094591866771342274084749635892803351266066188454775873111036029434700823925823458069129798169436701906784103322834058142555685267555890448915988772309186579335637335497968174571674018200348215928931672551672629015577350478418383263770159691132103949907730620626923458385749596199367166745723053644135769739036089139187278482283843139446705495917802144574564794130567270144508112833003080802907313626966018823385645920358135507820680049014778877988016677588927686865455466868703901939620794652450675488214875066386408739400156175304330801239243954512987931267667110869889423846404124051605670892623924728940659524308443683877686794425109218777104913020195525969817395207078081453985217280553324055564861169929563534943693845582009964451031846279263785756849686388530534987450540814084418881277144839776562172919177127524865691468820118896192498537175911275594700727907910303186158146614182034996155334765216371313424811998576223680193777557451923934126895687250966556793765194826118274038593656199943812352768953584239804982867297438326781173444581544146024918567009934637226242658783889957704559376199024560555463129319494915770532330733873701755738422289674749484072470627474573200187500255812617939891614128058142390902061967398093689018237496213087032206233575618244376960749371751708152015163771138030088962860571441466942012261215679316462484561852438099714320621086180343189424127904106119250764378258825843245511402764856270852681708445839783690268102066183568888342244036429567999658372086019813508665462228490606610015910536170605641718281702954258930756572171810597985486848935661021055328559750141322497084261969342854122943616068110800428669032974444112092202085200018323203976092963697327994845687951783128356578323905582968823069536956862130287488630544866301626326994935183074483580437593307944287841134168040054022944969398405186495121126501751105377332930573831105546769967869660986051216337024907986287424033974316315816667050373469512147970798335772266856591301239089092110272386523359813020032214601843933460236599573076955353601019330975505285881509318358243337872881270320272449242019211507833913720746379880641250385855365925169801579193632926646899136122070949693064394614579684385455401974417822125412734408926003598188344467542272926357462903806878737953067925539019398605584841790246425911396308219962763076554901141020268599388266820505800837217380774012918875525258750193012361989145423035337036259891198514058876520522940804556458535578143800528418357226639542614237038789717411244996049882992104530079423352257433931304656653213935161645430315857693497519843573770178262238124497467633091836698888474230692563424377407582245003760205302113767661014159349302230380701169336843933863350089700012558578638218505412567556670557113298547574579889471714593146761420525992392456205598411948058251860461599842658842811177498951129001385033496872199102464758608286695412940992791715517397082112799460337718190151987153638209542258370281674274253080288940866131330278700367324604455937043278996444591056827106922158377100123724244346263198259924874442467273654563520588197089230339282832848231084593378963403501512207819390943149122162646400601332752571259423295952874683271350413776052962381784640709635314731473669011711585999944385265923526405784203994219416475657983187736494183912707440966894961284477933673306276078854614304961442098691008538177837029055643551510728472067737868829002896446724754943499807170008077476963199138448675230735000695595182403739585653951902410176859291617254679487693724766638585018938463159314425874792958688147970411793864863912865426952822040726802798833336975384018454799811683211212672391361772220332896549139607785582448134580656183873697996486990001759771397394430544969563914700573054319348285545040148361052985018366912722795300788423516004755936893110622357849841325237659037740091975923670908308279623342048107354794932670349860521596215189180607783809759386490538908941755208021406553806065496755452550718696891503753012081869101507996614586949704528109888197752542804083425898257040229789458220679137511969952645198969127626873536552405164858349900103188575591441245632495876122730819865979333717293208531734374594745455702104900802769254369221290776448522006753669947801804367716793767181101285849638849268605379384442269307557323610172026837363627720579563039916647452708688370381805700429312101687514373872217695478069452905158494044361125337495656200454536314639444411832982671720928582772031529872745148135987582810013956170364159714649030888336854233951448552073271203994841376921218414379361354484652146140843376218694780172653956832822085128419732333045425385387033613225106761684401063002883515320058651298534661910433672348602595898470842859318296101511460012507551458756781890039638962318019558655008135210613983231931892264174811281361240160003458380504734160120183891322249497133090782119761764476119692703418803582704784195676479270164337387360249065705502038670493854921901839564717389715591254152176399605581186628323714909859116155147179162272156629874498148671297302433160988098984764960009555361934343514607479126519185160382409636810588135879113234221164811859955868321893626333647726978927981527876086838419633879319742224722025439164232479295480895696739059975726275502838387322639103764656627468809912734290624274229135721113691782607647054615113834014146189115899933592024495376753087367998955500458573764844542430243416957375694149055892848054795013602395315114695500321396899856781059435594462137939591431447133116521176981020502189420655687341052393644212776976366694497467566940947130136132582018912705101120076495672641531951354791706515245862500446238639005620514189920888186852823720909220449325682567159953135028898728343504296210473084158743525872272480774513363629011777557158313205228135364662212508104908771472605233161637472962695125221267770167445363434203875653222891412970864682639977503896193626812082560706581231884531368989395312206038488932306771926942689500169966972348714995272046849691182658171572935147038383398166416614452180908817194414804445999977098923084394751325175873838801418742036405818418591061073375943446521938054166470816566238904522540242508601693598645064420430251604569053141640036190569122888093246937767123294093812166255582143862536504087754051933620297318442176432242377103949091781456771956109553941868520621215166256100559291437648505550045077006472682235165530268522128925627227162143646164171916892676661727196154300064116034744676991606149246675527165446331428374619131375810619337266324702621836672632307060977177728614328323241164017350869457289765272125005068097293061261826978761280923092887765430463003743457532604800273136407354534901716295717826169942401127734744216951730643308371022250212056765599174716157129282081313528432412289016106629726930521859165362781179269480711466642554108586502949497160156870649939303893182795064717959888657312027688798851897633656503545879672606782775775297572404336103989345698176405797106553456521116399868373298398901193346689903500362796036553918566535056626610322246079420950636187576222785116212075427708535226956553631601152464008643495738447421758427009183916548224933711133615709193808118626197134183415583482705134934909903109421451367246291297951265082634707240289918516119883198932846674947311218153151983145568983374231517841759566685824064323199923662399932419329137928773387146136926849338517963084611093860496165056986734716473639997385715560378151049002747815838236528387884626118289061208244537425996401999051820229822371875358640773599186691351509273904114279718828210192679052640826789681924534405229399114982399272215969904335541610518312956997778439312258385337099386374105262560544877759031535766279298168291965402680762010514396250354872855676358665176628244785268388102344566797466029148575345504795193508045533354344646194972074924088366078250846767079810278746466722860327525473020382210700498227404340745154321634911163256799732900768846367529189435145619554475062693574162021063053632754778061967510520422205567064101800415855971777815947859526244622095037107786584366626524294640111295400686246605602789797424611622331913995428989480591512820514265860445077480257986642283161925461218329357937678765748879680459446016665612221602486496934292679119100615571909972855423376437693038910624649258954766281940384392094257489850310011974932108364659061341377254897696012766608587837344292043274884408063276600743716534417850318305926044240856421491702342467836037323263004068083802131690158495168034541416533042507971670111982536709942914735423100302128036658629959349464951806442146400793591687973233480704104894874945133699781325813872260065841274110025431155602529433857988729611804845235711324339468630577263403895419163962699846487034132709963318001511774566785030506991195638749384344629062179352740362868720261235662285283668006492158793020694754807818543759742950192299194523341897937273691499398478483247271949516451875786141485391961287446216467344659909322228778685171736634824887013635246657641137546437889240507804813010776840364466604465334364051744472612699347538144610008963389815716347672415654562871837888984874924312787061644074642926703697307409243582346866252660649104743545349456815467606535097120464482252581569532998256735853003306921881915291048200084728088434410152986307526801086840932628125515446775173169295329582219538061905846581622030443293091795093985388853381015100784286153142104840168918763893515785135261637520474085667018119209638519108699228559129562872551929307246747638192773748930541053414953531729764263005869305970560377355174466929900534272058326133340894990465003467936730395972068760224332636551115507450049271240501770742497128153010365209745819643930985330521862545670407766702010180043629291793933736709312253185548079552339526144416899387313178710507520176171702080122935469572158208835981930283682640600388290419479339605827873094235875058950526383444593184828680532677036409586476477251439870282313344706238075476775583015413393791896420181116208327707118721656694595471940427615345019402317068374877337247897290921719721368258154887111472461919910754464499133694622006020860211373570918013190877764416855256730044162160374706526273783394687762186705516479272465713137177668289530009665475997294423417304707373364540897665264058672789072902226834143299538758894922285998743243313635749130151234033250903095987544894851496822621315512593175297845567327838336350915357584028681381128893517268470720390663894758101596413294710375182279528287352100036118406047384421193753906146793743961726946899108410841215164744323995884013348244731297524615153050559105839313097500977294345536238732291425726318048606676095713359200710822577985917561251882635038671055174296912337507393062971147607851230544390159210385046653302427968926582112870191131688856526518824902913095928779559174117176886867258088728635780048022018542541820226293405137167842043466270021151835385510593126220144856221900030204750036704849015884345647437950781720337272876013946735214956469509045622302404719810292726992848380094187049886481163550288916679698700413039477346886813985125394543882323305130412233268101189210512878519147966741170182925535009710243482111984050225335068214436499490081694175724944375575220998140090560921456219494839713509357303419247180252388277586502736045090479722796704383389265068990677880419699729177075058446864271859122118576911036195316573601669736704987936693237676860060551536469715916756321983979958766165709264561969905730133098354183962168518298030419404377728785147395965229349728273581820882134211419611708199117403365134963265042895389566723804176213316108594762685795919397857534462270699577469895042681992746855378129205458472373516055585735118176062526040489336020211281043000806768602390742033109401272740836498370490530745102915762125733510105175726962370759602870235013348027855281758005711848850777107797108719499955957113674986543006381688763814901985156135292855978159408150322237930757330363038330101114347764953701932255818762566988315146838431370399232450788964299649482421113479296824093348159773973424896158705605221537075265401224652538576639787968507629296866502503526497756121165248636496038174152257803527176838366402252022058167437813631523877892327617053232280867664155174913015493400203361008588581050612371569174246237930964941433691089183422338249693706042336966316373438723778355414944499721582663154635413225235039811223875717582779698661603953847069056528320655941196414087573207831048436467291603461431245707636345908233733232840111314660926924839408890103008765257569880495142761225752374608792501703898010106336077205150034440500527578824541101834555043278167592852222226662488178699696957974234488683248949559346335655251735307784624125099845215684544228504543970269993759264459283835605691980610286303876724537157101102418901644352979468608922086030886587592242236675065616554659969670740011271542874907568576269167321055662377845984051968670014181945637097272913807307119865138977520119895828144612415452600739242240920602965082145126834997742739097957169368623288679676842876209471176072198490781361108241930640933277758685980541578614964598245434110016810343951059522835218116968148259012858388125439491720182101184967241607022429950188837067352592744570815284407197094629176776594422036403805506873194545815986856278830596016766222696576937662088329247822611885169149600063796625802951490194113428043827556790616078001408460743584951766778235286683805049769094804895941348276733737813091505906599609010443228769581230446906835144454036207122542505745959012538990720981087159792537604391352790539033020741037131172881152866338179198400067486474460964236414685185976988315483920070149152663744027487135299832101486138570030922007208012992440991111046537143022298594075596068840620377229574683480197554033155462682383446007580305772343263809266898404099697056026884565549006495922174379918520336332109555521816785761957714381908093519158566421544603977898780811317363563000629081519314904994196050167494301608519714066694402033008967929738763048136976434408157945554014765270320745262509664049102221377196582564751684228621067630518673710139306329223476599431651049348911479511883896389295305785134760193179858419744054880574233197938477577162736074681227541621190914762837286234285030494995905615902431274065098957646619831563216497057977741522108506554211634092601160723368351004193863270656185454728534767059449856558587714743589501688897505145761510096344051017209367154634615829257878285586532820423077632611507579627678782889976740118760430842134077174590265184034661301002860394036376119479180197087858889335143158633457539325585468813800012477270741804996667962440565285468592927936519556555779787341992300586052437744714546952086138223865175862364079371351425198255585640903404210704204553353070450424361979461820520370743912972018763833809666617016322786551600427553468215368607720431493658527295988265994137544559373470018569332700602549602711171708730725629209657590116365105255354607665338120819497445684575717623015940067337091143420826670576343018632377656700848646033683933537989954679872716980004881948269232929440972257231851930795920735636089120587335755387813200452972091728142488901383636645790088947449319262856683977654987725635470873088445818025983632144821774796701477631256013066058519450854931818889946110550894525471827654617061220506427744409948878751816958032397559633127154163471948932658498275674916500724491367498162436479150061475624525890698721691127574477145360166003160886721262531274635253930164645962405963011929451724621708441107668818001112485578499848541856774436247367146448993175496969886289637719937957264816826598322257383333172535908956623387297338089690735051868066605108385325697870318391558081929285708413203583762419929681841730996105118340754054471546883735479122809474472770672478556778538038039867806661200574394739879270698587328856729241204380038896697952238433935543010034330306192248162424774980964313604216882162277427723780749810949123701733825839295014083952554185073322061226754218266095705277981497135885342879890178773409252570209865924160050167064229825629323734319602297913602248880788387850115733573527407123857704974580733540561775230905372269420367639935111905149364384346344814014745215510453503735999725931998915491908631626907174646704744320947503004940451794949952013298945053969602041185137752193404546768322305671194618743484169375015166586725678452874143381628509879486886478414499423778853297270966702216022272718573423893403238809493201385407001418202631108583930486669456203427118008733643119377166093718668880189720521421944629091394318870764662822640475778454948351699275402690182777537382206684352589941805332110872909234861058480542879237941694204293041001884040703989637679093900262225520592979456056044270693538571738982628871932677287881799872282939265011551965489876846486848558105662505940582613876678603013789125289585250670045477649017569582225579193390108664383095913612014323736668665731863269793682094170773875410855523518520590373085964318427167817106480884865222400817077174836229159488917265305852834705804212844969047606011405656125882174863969928561782843727959563378326838412326479955779627343813650313011279345643507300279880589660627727778500034017622826797852311228329682012731167484944152866590253797572571976652447124042455188915091388805952334379272279774856476861959836230945970329239776478916590781649667688141771181328577965269458952307995900927935305186419467245455195455661730582237068834942871959788557304397541290609741334882650157467137081644777006969918421145220830645237612041018464079456278082163691639829048453235774627026351802370821782887349952004355094536864623172735916240505460212304259400840271890004472114434694381713864408718029366353749197347096287844547836290024960599606753078811595857742556734689429024980076999221839811479327443056042786448072351369039644065416126548814786957447853656341159837700661643856296930659978664092069059889612861743334063178140995079580813762475576803939240610559141951401898544137006025653385112948968523810270991784382639060036857391949634260722755952519311737950176451037118434907096597738738555032513886373897610006568874960908977211536436208652642520505175496627298214518290992586722955322188492708281846798689109150118964444115325254334570923516033638859977407395804841192162356630282916824373667289966767380499765446785803636945609709065939798233494333711894109961043941900017616769739971591015501796664019236165217608157514286881862107470185444068076073665933390643262657010571731293365833504665374944276950906024826888129602168248610285085858322045164760981283715910289731558591889394231368505832719906717652331318874880346536397438146210551624388789811599192340347607469722430214650826112434159237823776461472038181359488310247242308297438933057193755738317055962676948805319852273848330885671621424414401947139412673111414167537259312439233251696123216057120940134913647984410303084786574573691502562583185287714182008809516400752174512061892652285415242662726514718816224661918812641870077555523118225535422988481578464081925627786193445042143735842783529198798784333051236466946066933533212433869528770316813539020029591247679321481066659332190130286830138547842813536891963986049337621437747995233718678234564529057189937533712504644028450605946873684900017740178974176314417842832789132333991073440954503991298962605944709745441717325019066173459477871289857230195303578718923095566022125513233230589671799776790389397497068104381798629826787425026375169887557913028253275514561498194268700000867665747632724645166770237601229306703573018238148296763419314631645990529573598695910784036381897468419804577023958472327931458733401678686620010595340254133337769497640892261871892605261637085215272734375935370897643679615430106765245085217391568158931925969904707081186913946003350738594384466571533614027680367515654441663234347145821381980237208400171796549717670908206111532754177326871991423199676967944960130244904318300169999103310558567435384577903626134651231404204247528640028078270395611729253769178614148023229654926876414768336905921955681621108500653622603616677345211926143163389326441240284325980449930882779479619784718866365025113814084819957031725643248363894257419616754496223284613647324685222538866181291267769521250765304132027913569603922224452673589260110217243967524451753886550826112179131196649921467682923170000553514241830420566510949905187889623519582755478645598209462864974678947074183472110471547770303880875091649621772034497166821238394107297525474391159363898144265188177248681313556453284479728109401519930250687149275870747374090456066609058041705820553782850414105280963654213561908283395577693654134637704524044843195343004124598857550245578498659304343125943427257000987215913058956773633744811573047284144023012208869972789952864114240871848887539137710519993581776099159956781765629162694726986342350547506724950841487440248498366363882130093305608580350921189869971944665784893191062281201212095234866712171698953021842424548179495178534254344908738630516988003029512368162264896310841330439827576248885221994041138503893847786715744098168466339766062406516300745692862307785765534774444662360193426699104816965923919281862105717142953166741320564557751460055131597380233190463026681701891821693314108476464395837904379638596054079283552187107497518326864664770948887785147931987044847270941173205488301604322007657407769327675004549201161479418252112827422529880643890160617363486821819423360657173516660559637127460843159316184284123993351181171605493243000968932941671790558938615301237229200679648911813180219448317671131440133036166766577441082833476561035299878328510550783295141407306588203534235048992584272716844032253597533440080573900717125239110710251691677427742288641043322374831785980006278283880653605282560793457013892377553829544558360274171076610752107554811875985014881096313782223976765444208721122732334508258822657865380481267318320398833079368342172414932498983356264221551793007474489885905963040210687015971238613612363740064686577845870089567734330790751256735310345958174314151463914812833480739241521591122431380692242378096276557450895316739244226049150563768321042528883633668718871600131267631675258191119809580666489145977850564000789050518078873221939274909120741126735578434165594736811371229873184872838179505581439220663981978445099376320933459134978211895516421892851764351760829389324434986795919325431229449757803918718860717943649684927917517912009710897038834631265281050206574801930121041905099225681199985116261632358086612331715197099716667939941227971370038118338355818305466594152141457859310600176762989313006034601531233316201772691192308255862795520721987145218199277680144435566008335834111396324174384022695576083757454037823184093701977858519727115243615560634948064967120503618452048238830291620493374916568862812698048134344870790778954626719539639422563535207384727913282670682425214208221134273724282716362545486270208126440859763406306974873515577581980109831527651179125101554839212144838317008584157458211846152788935073112212287452663430898587318697542974177221222701935356181624176307629575249238611383501993390539627099870258448499504323951882670224948295082871597923419941618600316609031290491617104108058914982956419555541382696991961879631423403049094888165251930334999726834057995168872938038864386448697880929202375544797846616241824344255544545481380974710414368091924717375408957947183295126867011051528250953614943289535767712471058863041559441374014158018529320922754475332105512818242491307732244834535973493629244231858377009697017437451257076217351971151230914137362556946050734371691127071922022440387612463495882832560638753941209878122229735216166092391770508526537973230248153656190156786338517396902094934236772507206859943434830387981821911840945201570029530082114723332930310783314275865488093722037102692876134175858374226979364979542891581265839240028511835523340612208427269002741869945855063893582609195924393786034717481603788495697143237353971861547720635981419700319812989085465844454254495488126510877958665316150299361157982285340066823655086306470582437919103326511757642587871740287750931878380489725553008315361556471357123917564627529201264308014837062363414370154379477196033686626995152501646136213787145422476612693557979993003926561679978189541259215120397197832049350095564112952288997894628412306954464777069911042024491128441673244294126492628035992110015572174791129689911074093581418197788921435271197088048303737607405445461366913066631483024731668452853470656060221809716018549789727108536951769541304442378025819583407091656598753302187560090403675333215766044546122276780212116259186669226694732997996321736977299724202870501645429417222432874913535099205681674324315196659004771123609534117241045752044758124011170091796388475027413972316567861232356843474810629652888246043083136138088092942073175705579336573647801682989281425751113816147487408895481830890708555389679318877408683298074467163110239159869446701457818532407377013021825363115133659035024502550359182528711796884982826306886810681352936507770344010020640626062304749408156323499281650540295004315758682378232593480734331815385546297754775436210962426068000318147686064557125096452067477549168421648069783060042422306067129397465949706674642453165311123307276462796160655129714879122536868474585211729248024274158210240104930365635047669111714250098820681266958067957161892750295709133038441511660671127201002083717655928350720449790212080806833694838661453734853679765390271124066235269430876180200160947705489077875880932641184549089243079843304084371328548336008783630725453973268598824236852328641598723143070173171549759651744912464392475241967531743412416299285691590616996108218242110524426914685850586565666328605670639611513435249047686351912259849692295202269296186581024738781266965771052593752254688510273224187307691338542339173823360637452459727570976017026710846395658647870267101112472422206234877323744658039496502758086408538766000270471913541391723232382300719559552684714261960630905149777964439716348186315137885436812099804269873664515320726884525656278836582178376811620535433206217783755342995931689347563396443335478143670707007128378883796629889683173121291158375181026017874686358269700138754313189637229792271975826593834909086263616831148988123104753545692242507058679910623128527013969880126698481594906205834504334715058441217218568261543937550120141164204321626288059712971621115037909838129026590229210544396422727772734684074961135930734368835679042372743769042963926155692961768328826515196587779495761902200037641278709438962329521119189393278556972779781651580484480610417805301381162499893192853734712694635510419930262773838116086409098907654296682436489583148017950817576606875472798017341114807353623469552923013927490809822717048605387188423880935423375788818758945143428651985792789161265245888700190781900477636010498271341879148672806030752366202014375947898412654492887434804693849369446944672957740183211525873136803384298319573627267118522987464014298796238648247626531347543381526969984200020977593356178053933518059305391307022805977554942405064383494798474487975377085539988142945781088666748253127728217295906881487637357573466776292183463132933593125156862734509154804133619101697067792978730361394136675218011705313265431076453194762578694015482617190514927508079845757277141810144520518942661504956538234447790172699758844994141584459702961087409063271332181544499679563869881822829597528700415077700015793563374103448264353524448057712052177610458548004322222628911291874223160303175224514994752189365627310972708309110013008230723697200459640521040598930073385205544862928753035880013008160034276240283159059182951396502400369381449646441683380956589087645557286957717742404121086571034446406689889562577842476649966489324395377981794415802090334028198753183446176422028659898322488620164423136810673135271977802435561282966225176045196534496964952584539994981437668427346569828460356949553450555803695373271152259918049899983724618172387083406956818904495425907711376085276156159114550735456982431850606676995805536635732995520188721460337341289569299862382077974378295228653994107249256139486324337703790278630071938696612547183250198744643812133406875991912204719330630575254641133464968716167828175300146149856400409892501241829986102482292138678004993182297710135711402683065129912272834451067985494288506091316415125276031280139650854654080005770545623748430308539153138244439522774255866568833972814072508251665520243045489789125966525292013121172252875466522817042665418928262638328916789231999041288628227419322493104557647375599835439786150060716635942421166177398396535941284741788309441233576772231737029987884513429769085988420344108135211810202591782463639865743017546559718664977780734481853047965148291116719364087340472102789680750992582097253349107595685118438106369285636694743793731672884958220607839067509359775791866765081744400381114678069483707638255152056151854591403445832816212147033434301313609466086341354879561708224246505297783008394194980047526911342063751411029411729592746838273001251034965249508620873929799169737091210753708597811228490378591037370150019219167198288605592972507759286770323193052825686391649085148625767133844750050185074590119377825901467379252762708083772295563087175432872597346127363206214263441925378371066288764074333804663236911157332500672060577999133648823635125432090901074907685429942696486263706065847812839458159356610227157125206789335153633372955070278296382025249324618841534870035819174366837315407476170305846355121747281462887701428921150642662196437781513161606892683846831997679582823748588033841774812618701586671695733042577921009056823557701414217540910875742733851468908782277814869404489551186131576124024290469495456857817392359365721315043180427145270187359297456365502178250161266729601943988478043182321880924923238147927861819054388913164480379020054334784647560308728102572112785732153249469148454840361131185168308095540645127797068450986932546643604301856048054796009946940428189160053165991290091095803297213608068509477423294096262313708283646279812202205067408253973828086821774101492612139375949349886399818632632011707548736455962963586836667600793591811596521523431856762958892190072521170970878783999931408976024773816703460517457628827307523486992668038941846250380038251705181693828017283607869032319748504176698226032526303844549121353333907008719721249972479985941712498818601822709689142028932479548900180600636888113142623003626971548367921483752960420997503877039383387558097045662226980468571355238630807296724251397440191490295530644653264619204450487156031381601856473561960222518057983095129658649896967905871035022367210452254867904255718612865756581175629360530083238072781745972545817204593812841095713763701843194810280103785879422727492145289849709530769137103728358126794382247332518289591365661881824801659700235297607930043893446447855799379684272133270774298585044264117031531943942934615101910336405572503709215719742371807076001819146075921257147067691742741681181425084338572721209822081239702469922625134244527239882516036841668442607685390533508082238967884078362435266347782858864198641116956493087274559469490325055230319724861723145503141594454344132635513167117846714165436668217440289355321725567666994679777189322927795521823978286497379080967970096882516439147679874234464495269151015846051297764092948712640525351069886564392572628801168552325866022927207638269945467770979523813677179210629635379080744347469516765755502327620616168984383266249920021421416681873110232617964108033892057576133862522626749407980836406440745378839932938206529967461181093178441289748202846257097885663329563328017927411110973994130816514926390064084629940103780753927261948292367028582657821802020597952717757016998358534184686778869065946355607930237595400161364514103756098263354851971458471675115112563772654382825547962921660153650802946848284270805532276746802640219091332173164154995847575950089576147040186692865849373450571246734226908576102513868261159218976041813247908299162959133439379217740720098572475135591227754596350223373705743548772095218144611637476663270274746836384444261572617946059450799500409644233205366983819585987783991171290625455347658355272590358076146499197942249529661991378373902764090392940101040530186289725352686511162316635259330738226789631179699055827657123887096764803770298444992318957873581484073773840249057191643315353390051265097465671999443182700793529471561638533283191285255014571162487405119702912865307358371642428577964910052394965494956203007424660314474735969486371247967242129428954290936040216794070282775107519225004278380178520089945589567893337347140953475761685791354751021326636385915705553303222119363591780233979603928785990531740274421155623989327655825073547663891828008614150366828409486407019524423243735033662479169565034118199652834539232713664885793348156642490465078434751881726586443151247272370817307477745685065207227868557490568649721446675325974637653294301575266311089569716313626319182370968081863908493432741741344353775711797812227581072714482092468214456195223119539569500637057193327105928593863459802142003489576407262043698683716783027954170177578013375189656952168489873829335013000044575288243213384445570954986546402387871679598727479661333214436298255023739386612916008727772181038816686736784022185602072894623154307714893912695050407872150081514128725698633742548026391033319421593223808729500942658585792486830101780817645847720704315759211163239660497382244109200359285854186738041444614259045525381634311775299654796638434297585907530403741024026749824505931365934821148137808122060415365678760380423701109629189251713690389527633406475515104379750138118387178816900281787899294753402867491899898252471704837625957747221471360648665720374772632696999540914716056561249239047193896840214331343812764472996239547099363994139990406667654427400021236464081835255031193549452005664704939291645188426699157249574526897219391656768272945022076670039582654714688982917545901390718418720829585342548545738165065238617435904225838282295151604436071872018207034368942623666603669421388888253420705368035771682122386375751648506544141342580794137301136867568656607989847629431182771819145459349169841293587624648333480233814629201213410399228787298433201063855129400063377128668653533320939186888173045560475793315560732675390323372173591065415114638371230206210947184457772792517292556153786389241917317954700700335672549303462837110754419819721629448761591854374446656489222031867579158614798306816834679835390401894874197095809275750523141414580100004937091002332024345512032420969242929091493553009378206647706623614149836898633859405642810674738542743257804185480918510840126659045508936798336818881865730660122043116621327380828464805458898019566679986141904242586977067517274252388809139218200353355064516373188077069511560339512309556097139392584216870840070635433984568307288888320019499849574509941655515520781889857362486438065019828416146310494515066467966693506306336070147369206111614108227946443230204764061779791754828621569612527579644378648458567058728020824232361049703128984136800663439858548556941952039868689472948114130962199208037042494603817659806811148036483339860680773339775799126504514057144415087512701599500461143721085804065022407812226172037068156089388143721036049200765254715743934324503411302025969978363550256384413425568748539471103982770746809167632803136062797754967751767291100372851246278593936482460310963098873797268588369233459074396935827724582886235714408406111674122334852654325181399449083917206277793521477084287227367058525224970300947427821553916958752662159659250772089689375502607025393517940874369096453806511757485546545899932121192221162477611155062009415113142725680022590596927336362378796503957536068855412392145893130456160213882577287112037864920346656282663572925654816826912448805676818362155539634347145489829684500637178246978687048155405250064197417938038732194402691479788459496774454533324989109964840856250822675314618507019305808781549931508546427136913937701934731222819767974038689640387333745386873211111042733289303031706940837319884616174474152125195337296356445311887283556151069227654742482768384736327343757174770936797862988156227172778206234975103199070679371322243342810049678484829118252192964918224894475525294635456204164280510317232769119400014010412683264838276491015858279337944650283621759722734197842754488808078336213545943287422069349503656414632024045301754201139344576350986202149334376045748176654908119499248362439979596414077741276043170138056746046821332182176709446061424163693668886163595424012265959621553986144900573389850323214026025044509319661154159726882231654012927026222311252179069893393974791038918449013997839337521065703592473686034726734298860934608636019025581983679221103956926412250085810881755203804783885725666254293501255444241094555768054129263686012749331702195155552460589317120135884179882167509017883758206021840430422088583348857404302252940739928459719014178245994954571009589845596360984600151019562275149373053050773710765445992600129397946978366703918447863811194499086132399855092332707366056524141481265243599426556784540494553517095363720491407420048682595883633528422741290087978497009576242931167060745997562071801345088235670169267935213588856845610277774813325721801486586277108516483682044614353162515724732641139458771285879446840285526431055089879114381576186059491134501859728657000258043979232680917850100052830166419216139217877749124038557580844953169715447062421074028942404419377736389692258162493137453987631399669943619637649802249323687745512862674374795813328692591844237386594420869190149948468916541032922053971039857304391025652976270003581740584574185600224755307288513790243148982755665353904829240410821693192914235143681908532431659813344900879825830477396703794148715303689708604875111004276132080346330512703960418975740371319206928528381167558822420050745796856366669373739884439878481083083009478197183219439783597537779943787935373273237111151020358748231918702365199479657023245462252592278554295581456059796514317053720726102871166824059224568237313607851737776111878489957141125947268790109323588406132385446408929657108909432896929788327077220278170673278388707147758066592098909870743674719680461332857969512910604308696007036939123785598268279097186990622906226864819893514304952594614105067744226798228830461616082611271340084811603827695307178466608110985572195844175762868450282472684932239402287181407466783101126503567846819420648382881200530061396340571890878148588567842167589093019406269684344982218845837422807346246339797479580438889052805464841073583441994416359253118064397952268451651204217586176985032969072797875616669512369676732834688597422797596752352971744583483700241800825138093833105613754052593233799788203746330019559137112969893030813765949208468248673468673827914657348697832064728931704634100777197835355651252129542859653402303035720666866762103539575082634256630466910922506844129288490123548074009633386272188361744277672633525728719108831696573533645164373820215891721292377958018342460584417570868791291911554638316823164207789848093459928659077988352725138059021696350237256635493609818164326117569414480695588171968361755861500951932180242335274714277325660591821371421843662704528067519672189234596182813389336657382142419103219502885737887800403840394273692552915183641642633236635988687351693439034741185889640370565653899278946260405482342815846407694223793578991367434885900062514102509458134221656398835997314363586023347104363146326834472753889354412696548571069729361080440621182225467092932169291361868933926974234210347872997256284247019812093194869984571768085313071904320133295458396515399587870925119262783085402543817944410761613884480357639182860041306814804165620201479066896868033750070917312260626679675527941631262990360197628048576268261963593510110701462359968573480375160052821350701959640396144163045370193582249822013580675842860767877282412930147284386196496837681666867189227799890050044550295709058139947067352953058528232095564142118322303632529491721489856704778806454047490895358690705057567421147384424961730018063598165257260670232865015672977792350892900920022044392152888861043425405819798614150133595244707566259678111963470742856940312392295542232122998961587501632083241264079088363430029225360509894210258341513035910818104189620597358652015190638872792110692593483001851796771197027840765975610616572967124873196109957071599200379683478595967512918410636780222681765976057551133522811259312530320562230176137173564943863044130226060666067582501263519958042415730423172108255062426254314180683245105958172164272377382473807000281751743653881639622823561411070738556065373678066814619646215239778260592749506066537819073172117050033245281257957174316425199102040944484268754991724342168277384561330980737325462753186418325439859837279166712967514061270819370185891962049218985089476714274672238122059403038818395144855470358182398033598811127349298043237192518846116826965860778808300815542659346529703563864738995248863053491430431368412527306806226157612059521947639409847171272631375053376764644361572935857759996932866144100044447409317507829390016608556521410743042091903556712969028829250845835561142740349253139139240563855543405826864873144301876731562531435244885775719389423692444574228214613244327455778307709959236732527272953041024086324364530194086973934730547095183559574189273326204403644053040078089271002829328062700240676272527582702760221096405417374742582461701631619141491446250197699084667278085103487930806255323008460285714155270945714524982271268365435154865764347668431940688670719982563389085913749479813949673569297518236019188116808302075464929884690436740972201510528215907720986431818034255838640948083935397871044635609871711466249389434782601742396292296785725281105159333329275626515660367997645481550628127310802059126298468626181706615848080700658479176994807868484102207078776890660629108630686547801533426934509149904529609912429974836127785033823237795315916500147720806626548912496082097872778309126264261328804654516971172409499270318969006922653329118081080295812226656618497245322488400054485841704879469936260514735615390895580771704579085753337658293092175071946921430603623001437184452782780192832975807943443088584821455935389311420976015044956499469740308749913992857132178961718603996436919509996744342610191956155675334503019586792341054974944851304189311432981273976895277298301320315023293298089341430788935424546921396134377661523935823159315010710592857626839865894898634945636658059640143830179919854675207017690146229879281566623010478570603292201090987346650260317063663127719952845134576085353923792562187340921358098663219761565619019478159366977449647204619693749414821363273632207621067903512567336734234313404262731433714013423576720610596055007183815934589214369912649682948554445872309051540252231372590804570518174138409085089278686152986823431868784915072120912553169888662295079042234344631524391433349983074352295264566492155458703031150300359968160028555005244588299596230463309145785986587521943524282378401289375465545487816327555092003016281158713308756174294239969100325571118328263354691450725331998302596950402192480072216583053067528707766381844247437923034733209298142863039715020238803910047335564489795671470269556270920642498050091063272092123872632086233011494297260299034799708236929544343006896872179434955387007339624832220859996107647331226159596454350917071969538158569176650352070114595559290120103151343751343377404488017609480185598539179282885265929816122370392870043043844852672823506821444253362192005643426099988314923278865827368428024114664875630064632078721111759266991136415694109619081691316503992491388502222057284619673736963664592994951428743645763857529264722489915439730866091230512608124748625008924259164512073057984607967367297553205066273535314782143312898230438683136646862823829100449208488158250447547706550618838319942120000963796197157461204694760698907088821985958074255600611387709389442388181027234053222908550446177385907622252656373547011325205811693492034947285717035326229408433232156412590502304247219014753951938384650781754711910699641443352924183282780681815157745040126268226742400311813955594836121469089607021633010833470803052382821255620985513973870951331249049589156200238509059997995303244379019412772054301833170963389819047833522551360897451866582277674460288075902068815863924961637587936152305524814703315248297177363707561547679982337031390956939641592989881495831406882667562877716159190758245893159714184972070138006049782999436881666584117626907796166034928606499681949874811181695110813642285519731215260527979994942368488554345921282310635904240754570987109501966511809681863310125475808048913324261008432460392982824222261507307133149654890081448640245142226613791270720239172470085647881012674253487892162130098519093719513713645738184527142296689745515901805981408730276140611512035301468186728694767577704729348123534898639683758840996351077744852454235490266231323285086152531930397965798729721240612159924795803377435248952719135084525879815945330997994747824505708343104002810154335583735510034421674479380368768007766860423167736226896501810225445081474350748035896698495716945164026854126074697723800816767991476660970585870121926908565486542971722768530532495300854874354310624070328042631713151820256603773964826952321346559032269232353339488232264929635590643904265724140661465751388454623765276685596690214204527484437362848124306582278415310879446305997614332910861763551318293709790266330816084124586479322247866598791700525216817424147692947728702528163669223856290885305382702138075816372624541184564567443762229162879373637388566692568137524292300108952593177757689890649386534165527531576001296322337710532651340545362734997723063686946694188366204486591271685070067394266159006406882664092952971884319312768453141582050142540477704298839404795323236733823575945779874857704270680744244911808948315528765164392778977092413294320136747354187143820928938018861532458481611139824366682294893518015935393392931287872366431828585374857981684166672697375905434900538435673795990603435847244492346128674386760845873218014963678890138902998778295239488642025102821021725588530913273394899427408412043724699239862552628944797963864673648583449357059679250179894549515127900165228771884303176643750496477206498660850830587660711525962358668933026313244436064838298432601162056705286369269891119115682927051484511830279040505342933872270515569326804418538433798651071134958508076410004223502568859275375334871623918844216000254762814365075954853285109666775782641953744290671005630816767108085498223369898378078235131820849187750282167247395230007526674677316591596317307331492463627267937849230080446599332787240056010154500265845946673646863380048942915236361850895613367585553221203511689272856851033278817886238457757422565334218308745062497515610613769931415095385209370908947828741840319329720465680952114625351308445572451618809100106607479482239459273550213082610014001765773731181893466075697192673715621449820812704023514498021978696429217808752277301927353198037582766770545516639281938913885030573256512507249777602738580431469581339707670615277662792471082495373381313119361009117056747361207376849236359362679877237018368056191706354130050131124587470045221060986750103817693109287875028743486594699979178977352338995245637721599416288622364661763060046881986941001960969165132522581439021543763860832332217601373320190748769237788881485879036628763481866407323987288589647547740889520061424203122944717462287441431673914456431506821104623156618979067046328157755831067395595484873983488573491768965004586489801172091788136146773060703092468049254230492066779061617194439257983827090873790883305502391804198203021646755294423318311533504219309711139992268038594926757910137275974362928669711202266977886641271796798985884353417441024847883924064269928804312301731459750101599678240802859430998379799101664762739043964542385633824329412058794356269307460601999121120187259428811294802994914308625222292253108373592581641983087611319491756669053539580123820839569270007180403600471698914760672676635644239134022057638905060830549512652913781028837242810786876556791235156090464774875623883375771083761120179771569859137554455066629047711906960256584311872817128752753196418123301288012452899122208499153785673079141781070545549466455138761373912402659591374597664848216452324819083268659986306068499053557005708149727703602099086533303798727339908515226612185009698542863053377041960178142604916519710532118513838829055888369593262244863854474587460418108250185308066722965609833511265666707917677983523311513555408346463319524264976869166851812337130452041641099865914283994380021791748620863888612933917837314420866240060324847818786652849355769136491807572866913418297040649320192740171306478784104701173669585404466858852873839162631925652361297653783685256061878037954888073087035763861684296473912181600296980964692971405442389341194311045846241227355289383621703340708754273681519441836300940512058463052742885517715390951727519344832014594359992608313068560356416709984505932414197139555265246648027138799040413669287361090873909142428401890076884931413670253921093831724438244132136621159690981121180395181683294719933912740188566469803879199724331633430921350809562725534000945033956946218300802707880722632081753263442786335265198899102194446573901246347300167851757743396876987451486906962093037885765759264538639476180702874412372362730250233641900559794354845973728950598179737344494932403032647745410805128668883911931587194034673291890964355646108383621573084313646289638967675902197648965832843946851060189347667248742898108943120895710677221352264461907374081994222042729210000110412349193225040915762712443112554672154880615643151621679406046047030723405574760508624121496266837930337998813398852282722754295279678998496421601941454952886330478722897927467292813904017469759725240286388996616105902237068410010120176771291492488401850787558791672589866851851209011276891110512425669094187846951194217485012398829711718128319328228622386588988306268928039211625083334463084479911098850768137354560285358049599605221063121948900392524195639448422287070310707807445795434679107596358311311390431228146707850260363500992467338818709644664942620789541991877240664669086372364532599748180958138298554025650195804614348773327955304751032008513347545247598883112708140054033460730789565791668680211388522206178583886387540314959686739750764346367009128390896820648296221966722009299953884936421945623452441635982547423930710817825282074489409946740719902966648713492709091832066654348281140496696606985883159389657475117922465080345606641611998898775237428470042066668385431590235563080351504294551964445015124184138632440297170182261527040269388024741334313079227800430611127431214323186677879823324908145918378137436617853898569354384490857216696592822340204936441303505770511417407183502470841986741093891840700848155788750359667456302204000696576668927157596630231057821383422432177998928205954056529947647447272531973488847528654412396623827867739496132105181197359203606402320436480784016116112373755047803879366249315194731957336903340715864663320462862648162494467153788051627302311840884066986974866938816015806374306843756288006633798722447140320593321123089603619230185646979978147038923694112600148965624715894723385128346977964028657563660258732972579158606323950318301746738185241409368542335401596723563901063611488807817392447413274226649927858660121358765538588842461298428485220240770176810400439498069467492522228767628489958017228552011555803025627319492452116146133907169988274097379028214558281047667210314530694850922796995967370727742404891124331685006438848039897061959917778817959488806708295159464610268353549591332082906834645276507205290270516664247151213796446787391168005235453528055935232243768156778638143336888859749143593601043863683537302920820466362495777176309285342154720733129574372324416681065175579589542253000790390223129380323270309781407960551459504522274529264305039500519221046566994031864238344001235705692920036378944442508266407842758191064568467233957529713208431668668777857441298866561273241599959386801449461005357451566044546742591651947927145462829418747936665857342764179332919227491459042763647440758477228393089052133500856142388689669601873760085296554438929152509677242221675519477864304649574249548624729771136292512688291499432094253915298024460928635931705359544297017702851520239749801557978629031730042850465866250134325136286797744222596891165647134097393858285399211601145948061243923712922140454559540297490835227798333570078024872692016701724403233432237112780387987203399106912692229286151210023237672247781401261875152727790672337493303282448577802663443549588500113104543035336361622858601928466019362718438071442421724798582935799130758907239527360134396564268340175068827487095702015280218135259616158520574713386783302843703497031626129501176194482736720126883716941095915027850238869196356793690399226821835265579525382751486704307038799689760391248811522621374879838461371808945689554858214294379770330530019140749651411524852094125974656115433357544782002858815401865070056314851750184727266851384784620735360455955407345419115681875919934243295762268456165161770784982716784833901047518486435343522797340510555657114953041870591041657776762291870530818660766651240243839114026948948024804770232495458906006022220561860321248782277442212115353355682853998280771532014348778035445708296073064203199511507188411929210171837770636790281190431599590952921557052939141624760357002376879155102315880734180319813005005718098532769721027825611150379326981207856745154205179067153761114471538331049881051259948857449403808458682102661867867976213021865234689784194193536452066921149890641420286293458927563649672276971085623047334682071495323004339477388734359496797920383654639367750913716794738541381731390641794299733868849165074056785721670539738098930538398574846920331344077778482624985385664514948344180407334305702725234719222649301478042468483190755886888559436050984464256474319422548795775252430731289552476536915571925206024481658293974728789317274865025255083255725903056580531627784188026111411553037899422757410621664012614533756160335908341529972516265258134818518539730588845331899550530052851740666738006626278032506189542488863599166531619396673097244247708132976299265145568405380915218876196447096411344195693795353409203459385887368345740283147792708160021258226328670613823919175942924378852746348683906627855962556480464581384855532840620088036969317625012895636603546164280663161019197677819051735584150540533155269461994840499327569710806595428579461726270844599483166257332734271041492846736974384615310316717493397938947393089665236571931498057189990408494949577678421831739629433705314980501596796985710842035479498562693498578809502452764907991774709991925122853802235737727647995766378440814879505053755426973033182445597881087106541000055198328174378839341829646973215321461280546063761504835484180404445645066152497724707343919539328863421002138768540945016028023902942957921402148883492625362262457558610111957725027065038710530471803870071398369221649896065943011630109534214047852285219462312252740966960187331619673919788042716813329181097184723728248188729050408081707164103224437097052930404088487232500767662599514145266767596510357813076295264702549785075617072390607871585199287013683097953697982059796348528011206374517330117423046130096854347256975372478760726558569468504096342741336941311833585974565807204318657834038192282062893491157318305963117623673834997022312681532097657596838826644067588252962706054401114809190331112911590329783375850387289570473979830118351902224089728588247931498675989012711290932608580548476503062678628010088579598194538153691093142223890027347225127155987199247834265605754246023645572858488217611096402518504587732939752740812455539814903338045456110701975240694019826284199126454441576312477252967815705995809094821595010844813138180785515697462132808456647960235183507251073731940163151694284226378067495960048920028925846000043431906823127787714544423629201756180611223834481023990911399950659335052185949044303476883490594950225694694973453725249872525699474676026278449804531692020824580194005964509077582065192535283752758031976776712853537373643375168084769127934581287164067823779153798549802865515308921807148494148107649288526952510637547944160627893266953038027989992827970396655555093062706753291890196104416318924645938813061402509529681374327014032351171195532776252032577537551625075641017032109748389293172633013809547441220505486947666110474160756229104182189363096398401550269703303334780265190194322059876763344653615218671386773033450605039198420995593085282801785757066683174083599665314873823583633564463254235888310310594643458918112712993636738518538500172402504989405967991831785125248631615080454310794059831560969707468523342227760264069867634753958198198549666008844922390207811515590929938359422827945150594459126594601177826896285893374632058902811785417931619741808442378405001645889119814575576897625580448014589924950868311277319801151631763018395660133540529946931869287081653481984603996237381374182081973825359023097488399604178444702137324626637751795960276994914509500605746077934130648864502105098121379750587055809407234062594852155391878688781529855410675112520627535885244019223203043839111987554264179278646675128841056307408944947051800927141994566102581207635400881286256807216334724106097584548609558128388283541412670028305606840083730122711928994383176831056542313102933180098424789503596686095051891751859402683626720333848126603870373937714068353129638206283023444846603737605223061801122044147264810536735702685511539552899350695405845636278973185491750299588730607416573442328923435610475625169637759490439253601922899964109808652728404241416804634545034379932550358575631332782640833722026109961262421862273584775664898466019602115505369359450728554644513852401660658496831674905461339241192207965843352057167317366676052064683818434327988350688090077396954855669931176028167933902437683310837531581353603830187018901832796053603660467178626579410557513336208759380443103064048901916862638074507281153163518886573572789752808765290482305794169923285862811931746264691434752395275466820376442680677370533565303664619787791051503028528102857617370497892375479954887023132519197448995916422038069769629026332006376265205535930072810662741611017840582678609558365893983899319111933129288336004366012388446155664814893039656206728845946952390064546787797448225475822920864337691179415013668875024026589701002786430949095304532725196976073960654145532349139173754073975398128883578581631802113365095468712190527471043697789265047914047987394052010069722595792677350322954546338774893362367147723376964618179612905149060624134508755962139486889871521467848695425569562447582283066674314597147330097333714374700148731295524796416983342697986010821805084914307543282304201669599346807136015098185749643225355546812607036819061125791301047910662665471565980013614337832259550131814584557794177104712961814967104920762715467730987836517531781662333773892473455392050365154945405665159375874767261449071131082413808627985363153539767628739299792371013042130766578097384530819488382626939833294450220122872555757729651015990826556826213868363566723377927021657504173986041387269145031575366574294467071416607575028248070507478961683375204391299967003308595885129295827445497488144674054720654807301633272418992728426445058157379126511600076426640499222596286101986025959339246510753036483846822599905268247727667926706850128861453711431439807623526383053326431528236399323483801245045376891001177612873721835709554624204295442189735679904567276800340356347370096067177977926078087823856843405173037626366976969351124970343451309715521568410955021248058730025600147237144120531335315081738751162070652138206458823296041177067066937316217522751703643318992000713934816480573297164002053838421094895413266311474375990176392360292293259597039538201076158167960012401655342660287846574653098180941831301125888970099930699615919503018955350299072112401026638269217446972743222015389414702857851656309071903381056174498550255645477377828774896341768952565922813329616496315138446116628529037700749046644119917421676728766948750288512749609826189063497963053869648232739778075920007057056562576934954914608000079867731979585377984538801277646155234646773219859893264049865306668444110173376210096959827631297947301394224031753451855320395906766024071675070895631684781270550541709427297036049234679950877568649595765170071698748981423682049195070150763523700685205612474448088325805575482655557548664890122767924098893508417098623771924235423850548824468640826817238477654836767890184146938135572621068381291877883346144767599146312274947310797973235784059774120859181956249104152014426121307611591119289601381427640239700170139281690586960426436738990828750559106030903795524414847146383990405063656772828492101453006739697722945051198109639040769877592343164527586776722888112141619334606412248320288134886381499453651465670798844044442946278729551147889543984424065968442549466854115369793327298031017439446867763803613353100860023178958038444895805999398843648850384330566337451784814671093931119237893721182909952621856549604809668242423937092256590451145108627001439755185084606225027131356006104234377046461539825900148062566496806587481889957568589358438126014837053417368914937878269982557322181485464108068112000221157334613488245600460062830023981749985997131215654709423921407042866106163671009555293018479807462518770824341593355685357400963810933344469817353890346971271505137856590214010526354830462995889015103923517346154154674707640313484519638714193919853048854430258199454368357184004038314566130212520261096752726049829315294289281155751244133650901978495945074837587015942154723576042214893740641873398652389401528699196870975514519848166585977176316859403724304376498198062777872308396286130363229649051674084458912263814518969703717568805961901461076790871662614531162324303678383883385316686123455672418539146251391525854191848813884962300828917255081796236156357545603007115246668236714350064414529715009988193672499725726602694302639509355556719271058832247383187586340553889399757096137729885682218745595302536887751782468406859967133360893737852339469577316007453862671730520470570029860170637300464206355240744061545398060954283324288830005694007395810189466846033765688821565013202561241043381740099646468274721935248110546498076268247370635934952115399668049247015176206730980523005557308163179555344464339016566014705493260604683223709247001443005855874962972273207257994855919968159328240365380989880448153368307746646224572054524933126966745182177490321935269055843464472796759185962264923513608848336184980816615475145613356780201617740502272884309874240860679618909689110835522183787928966574441290845379088773739097643941335974288101742853955940102878627852958963370577824216445953889500415078039649345891588857203317157855480898972334477462778559301538939434505965014552135278178000619112656965635400423710145521265932939648538089627025777523572158762303632720198656929151415239374447723175084409590237680820387727375034921091652925303719178778959777823075194497677091556773125126830576259755898911397638847651161064639035432062799649443089735710799193218714198360427322469809346585205509515487196734869452900915254149158764522183833371793316231019777704709973839742191544884195456102102190464780324823644233806623873152575158315836811796387563422885043621542706346495406122316711988700456419281623336182230104555518669558862737310935217847739912216896053479897022296077766542662131423250696071729080603424457744333190731458701278451151510824831884810640214928040536263525551634570792121997876698736595748012126551127664568915077463408124069239628347510647565187619039909808298103309611308025974520782959396690541155094107563030477175250668586900504829287402428165075361248305347768275510505581144444796111091535110145762490693623354713434255627307087196655671358691247875984317387357337989167533650559200454483073256683139884701167774292373264908689418315999791173475616505571689540006174209505364278495141223371505544906098879477737484669406383083897138963203272556019726806163645448672903398292433017828280784417269846144626908291683307237609329256397106136320749473811188171066382622521928593182835391994591398906589193457982572668263763296602523493938152582978966590453552151833096220567700773945940166983087381462985952315236887933638720781084210573008159528471034748238378392726022158273655699027354374370412221452623032033733279968666284291101750905301417441649566135902126432834308825166767389234018314882215209322262402140311759141328009700170951247513227951099194372632473952937287061119034311854402243342028166990701136315961608297770571511810428919958785680960726493489749871967474016215184607596978508782536910962754731377623349313860267517792790056705398682435411910720554830403760923828281722067291804112676148974095819100790670386290817559036620718572539421927998652460921966320551672396369888094254634373053069753880840177904965034531808356462096722133246641895742194028751307683484348932310706965815404535746365875131592436788917817534545364479562948861400564207877736732896791486792907201666510568007588282445770084604968637032903406253329085802310246890490856712046245368361485893244891140458516600319150997735901477724966331280393245254425843328244209608910823753816004132664904021240854641522944980429930372823401431892012149259923557849576138862746840782119974434424292247295656552396464099184747902281492312341605860412258225100816830124062423179747163813491786741135005894644348768445745041988229710835222473633438923947092574807882418799362447650679218255555847136934297089807683573254819376693016883515830576375593015396095472713126210352319459714001163861645115752803337763233348820551188761504977985743703879302584626535928583736806768991984616434184465598333404565608713985277910140304020438439176689926035559148764859383335512325654493514150495592005229116795767045507384091464130301259227555928597703699651099782566482782460216142507330828098798987779826568721953397040632715646912886763655105564924669426656841304238699323768838360129933213112212353935023887521806741824532890725715551486056256371377004393220277575673117222827031980020478599020335854929653671871865579900931018427779173847500032485632074733878899567214316429383566675891203461438051342517910697845255762487058581196619264663540205532043259316745877533459999790368745368584441743505403037958947750221161096772394265244457133121311347977882910212446047954692539450530015488802691693435386360228960963104952448896929432304007253871877431955893289478008519828898324325347162112424548143493932601967916350843085043896180390189327994102761071406090854342173458529266354960869416168939522271187838870119489391867696677867816330547175024962938853452643070100861510463821764420895721262441982729257545193849380869483905253240372728187639466903798739704955405302389856503118882617166566712818832575812691974860094396812472739051961193775155804690838520790223589696727392178611313044116285346479361027544991210349981229725256489621498102375068937507695030185063164732873690628064050856059598186588179268674689543244621216826870083625742054383472991548306704906040426453484723403533868585356410479240008252465219402325983650435490163234439837706412288046236477365772240115028687979442164901669102993707661279760717657941458940052365433522723545442384522828428122342080165087090896446443923331928301531759455404469258839608157462795274655707441680607594203037026392289025741508897831631002649503025736450028046748047393515557393826536685842238075716051144316391877675365985832972522546611565935432943280668312601166624961044555205809813205288084236114808388286581368867754463119657364565168678530834411617850361563648103049471141770176740316357364426863959399781389464085267056077397749092258022310496822058716634221945461281067830044130740631635365823273958809646816256636896394298763147127866421806849523557484309058151542363560959999125718885292693426964769086630332053681297618673409211334856673149242165085068325780413037508010739382750024321222790700709256304407915078159369460125386721420723666467969645278393200122670451136800846639116197601604081507595418274035094708350048407693234837579505880508896117051514380305247118170242061742151531777751277112955912854677979624986027937674901063098670610553672537870647002976189259189253702056024310281805535760466697755552205073639787912967757623324969626806122453690803634583274688900165892917718029479289786199296824889603050864714451313957759983225857031749207371736375169387693081341296760277837124034615393081329354177891130254509337672628514964982928125077252740510141561570890709243426157648286357948469131302080921678696773786489884188665840103936358160309213878749149462010912682237366382904329442051211026342151621376812215713695416964731931577604863381828057657564561031768196935402324785736475636044481034127277921681689189339597430214333895234377572484555250506754367284002012443401588478061940346004040213898070425571457381527939837239780675037454491222700462212878460877839837644154300013454197387787216529976297015600200264127940495172842598589007297310054036457318326951375914688029940356986371452928589570625436968637006160288794624731126729718708330229453337650476933758325600030383047328126693167420486138745872586783519021802231163852679163562361350765517014126982783367132101485295998323352596061619841899680494439853237414835132191588030767822269182479617698416836904762127621930952778523189490665907241225771814367407270186186647731277274845022450807467286316969565889117506741107353624480484180033865644935816661154877081083895986941722224950961993632867846278677093673194537965353887850137175142026087549685682293296167712157182775589145714993350250146817519980503269589061962585009118849704337199611078678995359352032010739318119418442773211958656248895434592979232770213090973779239221755098173071317169060093907611713307955176379342786147938521466303403392539338629651789309317927732556190516897815114239447241327454308675359226210040593486226389980412559841863927799780276204789564547785268700517242062093024462597243276152798363274256392620540543594353647003274404604029730786046828729493603383212051419308505444576493276485665255682311116596853998940340991241403693914073700449279276425345236800674720655682004922598775498877876381054901142850855326278331169133577735308691157283514558640482652944569500419402541117680553477174076460032941462608769393833931773121579928867295007843987148296609982776827518682434864772601781410650095955933946724730401291607696425756094275702823759986751793007580941266067117999993054710987552552777638462679977169340825340577701808444395998500947086871758954316975522618786169494966872736278126730701411599267850044813909132038034607861260306072206818507490036294053325899856658628875756645536064120604453205822882437012390914409411551692990093680679855792083238282987898544994619257655500014173722129892142913139244110346232036928609440977879920255637547484795047471888998556280721973449955185536136305538298548372717855243828515578639880416867080244729731897197940519052115004502509820120809057616624846827892842052609771663267836017827442337732263238405937500496787573519118631497534714523293682926127626701605300306682019831554311540934175579862285093338206712930495424647595725051117426612827407735132742574126075891517281313004061346199798613641564294489584685401236374099642023289969027079177193239401574477237579792423105353211307735595659364577312351762430776901459872669410822659054600681340251241394073897479644607287103549999794243941464200480855720951893054897192390762610840587571237080884335743872325096067503721396339928458489549031963414016035051854420884331360038180077982279804964406663011400224096716061222872162988321114982747069762370716247456436615222111326751545485231692060795296316000425190365227391520019251121091169584379293575205036387088183517216179174366527972928452336665994886331873310084099325851380954758709153592331917655582811089858972396732644235775530430406369091903757694587569397558173024183223081445653341630299260044967898893577460806294002874167857258925722933821345505644958828400563055422328682742046425664553677079115289392711082588536163740794157441959045211227792082028274268226309813486360942741266531503182813454480918408838842523087602717446078353822520206569548269345102717548746623939713261938854107281586918159721816616953237054606689987477757189579258550804472139123584818963437528407851292991867233247117026153851303689855378054186259579608933698157654415908012015977204252342605542228094408824613613339556337518051285985998097151465384135636426633807611973514340201525664721425755012324653676404840662826562161085595813800129212121301390285560469247162464744921399474146820255671365875079539739492425538632350960460484740303941630071473196447196291351038641405414595094820326360210331096155642195962221631321145355916958695160942580987169711394381953853785024546329188674119610900707646711116329306065304363599293850911709049953156745346566522143265974911590093433971351736706380773303087814169108157685706478427516424712246985963698019509017944500326965177272494041099361137983315479507903833101512469399255844286582753384604608551242192786392239460387759156712439696515850895481823438592077492001014394228960638659724926746512715583820337059843907906171338359269604231102135437511662681322326652440417688898893841450915630201586587209389336040396025876677450214168380583638757387421803030851179842123420323221874369514491967532526651047825239814175713508279616668350729084970725771735756387002025382971859626910260836702813795237959865794567253400127266470739865398337648350619652055800970199644432916889877079784753010162780472379330265940461846540871984134179007865180167896275745543702477365554856525086715324073652570242472467720641966312939274766624827219289574497577180049411927424482824422970032448521111547248520400417503453763946576111650901395405690673274964819389221024817559937378756487532379875979343398664521757319691684388607941123793187607411254947561298288754048935280474496514412169123442910690767330864314204576153348173134548257909167833123564770795530306969497353193196699492470594604581362168164733888916058241025431523378515777948818402801854278359027742420640203185383335873400829756395044984330067039553128207010468168169652473346180272887789056404800790410770162458233631408474847647475517370320650290029942244724934953147289705633428370524357565573765889815194810654560858690873609463170984478325893699212168957563790227935895247680585589782729432013064112091125569196047419719751486711955268383019280177503311232929014880867407416495577892832872762302336185540217394257324638087301155478150295817031072907832723322088446409853748878838199729703220544212090715059130878838977630684758025912043756357286463145171954536476488242502927629096811809462242018667550093894016915253509391564966064172653125362609736124742891783613879500728249529110427833377208565298181700057404070418914168322553060039277436787429545762218658910365138390245844265741191617628331309810286915100307002040149341197176807154234708700294345569080987641795876388520681298329166677442376531317866447529398829899500735170589233203229513225344083277462517569881412809829990035122572372869381308928763516741180416116474331712296908670123280403957750593243531370615438006729461409274212289544233751305334238937037102734984392244440271135925933832800182053818126905668883725522984922111474701160621138430989971876319387687973372080750403229479700930767672266883747581032447951569938395272599843365290497446776107922561705856143386677815304228367816519445376753603331094707720679295589867514919121034081047758272096572131288006299372287544926176991099285225666345459477497530058996139554848566305523772043012119476631757018273608814358952994727453785500948008919126961545655030467948686909583493908375016905368103320733409080766856274154280231754038473191644898047684062692481561822467571748220360427465101935923054097950425739580371769525277122536876505454887552944999683198233826281906661676728641674275619559749323357608439056218267339583453609941690010067886253984909215801278253970687213410127928046963024179675515924939452232092535420901623707402273009697051070896927921380781614160082143807567887487716608216484930588701251985795988384189658946195934210071343281701493758710009440439419645035828975583726915876888825964196757098056384380203350583718067806044580671260176970799496235910223951602860169756735046592708095864176725137252841077733212214827801343075231166979593762384606035733270831872811142046343563912371093921637443307004166006253866366866909608371782788892153494059127066329239270309651258162826666138219864177774208610069462414296521827460751106077674790248538648164149498280529273630518915680848455244773044308719026752068033109635827033111612183238173555741087578755857717109112055027198793355361859382039553564735930983566094253718627304452507015080749465094712890710309565476341018715462203366185750317425496900625976878948861984577480903907401865374938254865355147145001957065753436766680364803021662354560235591908659548822220744558004591820148634829852723269385128978849631969829554840171042766562612020670720556557418887032432891591803364064534737092566234754531693568913226725453366525399142673933872968184811602093689359979694405245780334952391507423169612509953700282232907234465271018306403246290969686547442286297183709338578406998775918035528381154589637394692115066561247647991019040213087479056283744453099930988655637994270825573685108421598974331315895386576121774472239519025436662610580445476914632495904276563360963239566307943605709379502656708357572062939332427740025548334346281448303487200264924741246764291272521242235331675758638982496631958625056858262801368783662920725273803391975862415247631843055660737315287092617291795070736680523352235094633971512847700018812952714723762919797505026176527746946703923048251097813809964735905219287364946698394817968975989472130725148828598392193371845993036511021473420699241919413998966470486916432659776952329837295481717699427811691044446185286146912467200298164484759912154888306225432973081233269570968022973794707889405467131765006711124998414450601278522941531123409163342989816374300649107502813753893649989338342003072063661835728258028026673110252058607643719743121804338108346217385188253557113028653177174722333346969552349399980676578363105055814775032293243686725926154036183232198183426088597910993245477983420929872193173208969332449935403735979876077156773245045906280671153362134060624277582763696370153364613585785195983053168287478780315840472888682607955418575198292659483897823590771429323761707749626949886137264817946828473358813777330786542993462934953147756062243091140001070233484454551016304320260577284384586263053062493829942221866513100820783227867493194581674057723253860638056443126154884172850384533502204986288226946395793761731503813090887940110704371938095159909737999141518766070277988172288588114922067125061014340780063071488114638849604651949751232959090491903340814415244056393293325501334111458105284987122741922922878131615444271468240316910612375261182128546815347626655852854390810510392132345021656845500354328784956180842594497753930784801768784849373829399076439114586265415542674488056600539066527729863466390395097075540708941428079473321701625726114587358011272976526760320820922987792968882150117250948739953898863151920315785278782313806781269464162702269057841947700330111964309529901334426606647443978410268683384571475191990247375699595837305294119802839323536622434741080888199437932221586240915379085848017054679236397494993276917694299944549192846109610337545803483658686875902229122247175645558087761969830775304339332153550056269882826860426615806335340794424832609976741725570027266761734391310896413010652218108394641793063457127114488284869885735502539927605946361772584092807894535969830598304825360001676963988871427557017989584805022751975051094157138495302162173176211404003830568199938659894934169841463597504490491746771302860295439255304180923714956402811877481986166584113447353145373003100676578897747996552388627829343410653317062221441871550942049783760549136875686809858241429382346593719514975426463673982523518820502095603480126437494464076590496302613075785896961269845938356366371988864570548752809384573797077727673282486227829804327821365266243864224808146657139477452089372638107712378470039135274491514109741101855615344726918467042409556117063485154354722007136694603842359276767443125421070528525466372370677681294379244942887392249558995615983605341534041112244306231165252003147736108787026393551619665136084651789029608583300598494438667750539286571727899247628001441055719894406355859937709896102564631519742757070473695386461038153891705242914841120520979421921550330115006576769066965701306440871095880727641034431778865882230982672591592329311926353384458460417829284149856801302700783792161233040694899376478593311315236108450525540930419106792088554425720265240185642057755314921868672330148899360388241228269631456879781929886713900911986950560588292840148992876025440874513895116174281899879396851476614138913424768510047487602027584955480492434968761408204364955273328198281621586967201118774395008361307431126417458816080172816180556549560579617966959730632507537660342922389233999134007732772517467575760329512874087694214756654428273795444055034126829812109014503366736388854007799477484680985172841313499594180636254536591340148468929735908466321095504447516966135442360510807214891186743750201805329631226536321209651629389149400058324475422293639614126158039187444865217406367443980330396750181695897611087369751390770597397552042085244721237330069434252793133744905906617088542225665277832757302178783683998989568558234107230708406731038343424735703795645536245430065782569081378248176951285114540447885355001446525818725975926865205490167911112083736528937839726726776414448694237724302081170924677309758534689187092374242698688896472779425528932095456752504699282054695515164379600768646169411600310592156837963747866179487768337188161158513860385915841135134336566374440077839502715893408978069374106524548277084075029350402283303628495298946779879579572575115566499362448187199376903011238236213415199442226041664991642097770152863031714191760861003133826806051099848072675094440464088618008875126319097419072614178058653023679852808661739398272163764521223610291986050872575247815267739621040745117637842675813752289691685928116954405426803475662938845024876173975685713517449162948328472269984634155550843892077113961110037593296946398744858458059498370136317070552460594433892870114433622663457854286406216811059540145420229376923708177602214714205193667505383198070171067785098757590326707152915298930908476859523531615779319472945810080734239319616015876655909432664814203155151741589480353142032932795607127708529266544628834769769866725510988332594420318060604892091285988741860798905065247929604216374349350420157528874016430048395478492277435559757536301126846230409795793670643350787756604243414736515855413687516573071111534256896787548911267163374538111798606480769345065800921769417123305921009120193366483271773648786784161278745077053680014389250931557412545460934006207707209221050996963908547661550204347604898457048730795573271723495132581941207608185800306430426395679006124397798301397275305201543661129540546628232495165092342601377108737347951880694730227231532634629181356444890567941134172902324134162576798461298983341931109486666957425206924095860846469618266844239397712340218247221747044544467088265370767973979167012139662157534607814841398128246129422432933534006482755005039969132372994890859651817809905706859088133318822777880299767408611754523165310514440512147135409886065117849718551595120563962409193005298322581630236568677913702742565204869296247112290104377611582859352716784990204324845920994847415814215963949620362289539178302655696224985776292850569975524814640202940691979648711957505022617085671310196278739639035381946627289116758542208920151912368473063312881125629125934934115764586117181594021478275453954114238852393630938681486113650755374475957774264251373526439579835948761091797408391290286814028169751446192280190980072011679021365805514260960873943538548667642744944408171063777635277606484380207080786804996405134811075393090214049460122354407341582993294837033115527249176662739993283317309837421128445567505047300000652655143354205854940501599734280798757574167926454718999432507647539254354110697763886840747755411903781339792298396561466191076063499321994162700633802548395843904187743919199041587662940315382542131570299888938350798848395680409495414666951489998645982234650701470167319996053019552576418319074789298854438856175866287392451867328435189695832735080314932976412654074803953538714800791185470983610236036455476891472306357706913770244419362180283419676475081456814928826635697178184160314739092883865783671128777683049286275117345779991389965896962842125670177496091951684497597847384804384741813381289990333034024415904955628321673712981005050039767323924596140338298773407951690406578054465236545308697835618762414222274736333055253483269962321768445304291515960888208306941181130743402227762314636524609474268287627676793412448677976351887789741722791472432527877410888907186720099709348535165759367459586374228402920586174913691759805209894322823348637575499382760087864035560600555603629291243476196895019739486172067651944252149549081083598482719948882910875175300593022204508229008063405436162667382603945288997041953467789587973104921132023239580350913065356706392490701856276671921954370175449873840001637349182513781452172466858116341765209726166074686454528479854982377693293359520538155392246443696767289388638404747681027728969800057460666244764789390924927818835666908673722553128518225026634344532259606044063628610641209558015210940692239562239075349006248295976975466404780741222566604791172220317171438534095750929085279970528752351522475813323322492138854830524432010335786153319554290917789996203347997215352620885339892607627813192201640106809086176756316153236781084856824114683387843174117566457686459627162294280479825121863170475593589010593321973042998405616480895732260038039765897625492528550100920783210386183999698679844985708687537703899128964277332843297619406743607057704719944876880838228561399545254624056960431872501097173695955796804242915471779629581499489879733893366466504492986798729334609431935372146182861466406939843644078620852626124346316793150874295447063569268584325004013056855734400390848152913395089744341743602764672151943494798717254399062765899433530405928291576641491946892558830760658251110809235174835996946206274011497731419686679328084115784904287164164528358925385413885962060349754615907875664568509073093139085657675393589439349708750344384097459970263496579475088474355997758650677397082102178208702447395667203162399079607543335072302440841874665207182991794598101461310085049576874262871451205015756894247962942575737482056499757324141498436493619562564509642974846460179634067377847303075660711714345290524309576760258829812874783996657541213252278036020578159479052766646633749949766980696932944298439802571856567080475616136035970729471630421436509684003942724927630486531501614900940696845841444676800103277792472680562318603080082969903227245454908789733717981352062502284961706493910506021886274881157632188622974281591768796439949297163570580878653012084921695329865898187407251521677467710899792869010364620723426694086823838302201248778475965157282027680467072292809001294216024646451531878303047848578211813927208919746974138364886584232508421766363484550773155038251016075446124946027584872883866068546359508775757239454507456700998184934911800383909977712924285980021531743872470746492706854198123477761853717286075531000090210390194335433339479171972338800706663504411107547800511463298742450885601773420521331970940529271909633296841269752721077923017850574958152280314370774351090723360350853266482305265162164126487669737325353959907650942555897895345822938868430176713416079504197733156833015609384086681213121183698081621875209053315251141956011175220302864112751727658158445844245563622113362868038009556351745094823879276764783001139522945631774972785438134133197479011377974841521864018666423689835600242742194711756513867012689898460173863830741246268414705823119833324847861340502195001552733343921573687477072794814092452225987942564563225067550458871896245710501254044684169187772309580269014325525211730296885721421501180912987079535397684573909116796588465410279706965540851724382722043817820465169352160503348252016011369144739743362504555199188551220956957131822801515119484528641949673255564541943982824656439207894681132139218416689366377668145634031501409975874726777354625797286108091734018144328595486242830803282284541729254749382121363057800819779719584331300332981093973966373555364078647544986254930065591651170619927270985975857255906902219109537439615037601808263725149320679840572139156760683917690867889692232257548436829121799494699886489851029889782309318097441367163039194385144413784208460585257417844968137756558324158740948233870680817799034149987287783130738236027942841479885876776870493181565036212909047145116276629290992355225407304329646381295499374222292634299603812245802606063397912282959461297832256361064757078994605285529026389152212782729770125305944623922640815530602420684012467383510438064439911637232981058530431703812157419704958254188325224196158527588770616576487848885337577871507701058776015892940786385569326072121789892018476266735468524661088138410329090911739609537390848060367544524775057594073995918168341894556623673516413376245927187978602888403095574681677309200243653445605076376484008141858631613624070856033306517999692347505876838920166030943240208828786381674233948723180459799854742614833597898349371883463586802154558346363442439973925088393623744847004295361781845633188937801356207115641739907965711859652512381838035733716621946190345359481492310484611868011495515142105549017281742650744425658424857272556543307716695144801377670881649960459492264525327701495245663940779312519759242315503364270739973766970996249310913193133179258729926926864656140914837737154891307441391800673891962128874751057954993990053990674845775666457199948326561382019420593692615759231729880857456233348718031541332584196558387820515706480402288651213192529012672306346968054718594472338144217679284270029083495323912057801666145013923065537282469764653880277395570918676538191261762937162140989505777435214796284282892499668673622623941016863159538216077334895540531902162355378588784427176599159970227088175165014859948133736323096388911226532253724056464117927693729379815170300119542814807266137661628087971855903987329435157327135434136413390053529176730483409865243140118053169837408101180302967036186357898598055170426123469624979311569802835066229451133863277887059393284969321855076734348519689284300677496328724752773700022947234369199017971715422742313075491388279677093747665577744222331719049701112612721188935569192778767525920694259032499297552294922753102218512034569651301379924623731146287231465746324330886371034276384754492263947900286283358210296294564581119147463898688317278247014218512374754076578419084478907739239386831994505448461092932755687460037573175077002116608972038006805792078177555512120359789444695819020727758616205213328461908096617886319587681122864094120991738800355197677975074549732212087833379999647019515189768632571616125904548982866899824775396320271911657355732638397434011513090539485105484681899292874710160961450724702024310089817851479806888783637254000147396009795126713193220247948985336089801899724765972171140540543885293963526704881906038159807680541225230398178982481712542734719223656433773973151449047641455130224179992613207056995906730099289235377880249522020860115121973995234726341866747614052636337532863725026862965021622982682094018694835237514965100407351693081849343424505150299982456506526907795352389805256417017490530781837018916195866625164686817164607972155446041800687014113270543537247121826146140698440762789270442240458471942689106923376902271675293358216589049860067758763646782887052615048983150363623069276164999233287916101774965137665700047825427834783974522228863694606328164562301543023798367292514277496266860301211191963223740237284841534138173279490418752485677898109188897114879618387337528503126095992002438975406523723394860886080499340378663160857829299386687960984894594378573614829928177945094211669055907511387433805464534503765379579921660617777424484815283160072274745334720249747729082879994960654651224076400377300691990871346574777182475936075623101202806806346382836692608024223392811873592558282755764183550510487381438137797614712714984377658068541706421264867403058846624283265772914238041637405498729005783541360469414463314151227651132236157808404743583969534887729592764318494238398592535063674935092653394204662982804650908983267393768361484128438470625554753146778396487612289787094170064228248674585349081528825038077543745803638271409738493544367406598453213410641936917109722263324896131093426020120133225511109438365811841141674576482587308983223196509834835941734519805263889510381148889400085956198374423433603090029440684853938652868094050170521681728760667568960744907804752043001464693458845205544269741699903904098934693559818488463664571812496012139865659220181910128451133998055910955958586330541935721720438082381545506296763224142867295834347807853516585418790125581190499016369079264791074717681430643658269810624761714068034106971061158123029774304944948096294993906920309228851414892386042951113526272922337208275998907175764851306769968759307594047104622165634359417280810948178627364978297510492834769019604975771914765342901849910978596991926725345014530001692977341611300448075032107386962654209609038728041206381061658411455880929099336223545569396400098144442214236459890785440510906562594991642116449007973323009368701340967333480403631659343183545991469388547973637823759781760679486507331758661260579841582458448177374288393721159444622632152899348861823443279397593323194495511464366939039247984597392137866376331271087511366390798108448045351897089269733429751186831381958926339008863974061645049480952467066845973472140364962026685967807361872731427193828546122722628227654193306460254281885795805660155856681472626667148898862564935455603020097188836263406720021912367727153975723207906672036012287460988263492512584510437701536241727620747545681143778053001075674897987484320062499225183812284504980681609852875128262600686337062134510923194637049774811882979560270795339456557940995625955944477672148544939319439274241276784986882619045493168727128938453823071462541323024780746986772407548172343577200225020022659327967406833702599878804257585478857942651561101428578123317149505105679114066536072280172202562808521949479644140840215567323977819137971971041218239618288290487416910118822062329217942566439965485356086502013582127766530059743145903292837707357122577396909877374874061219472060230792606932322341260918230305382991068125013339001666452239217058441932765099724784942282097599207463200787698426452476287090539544887322001666637622444177205197579879677015006996229815150759625707406197501890622899094978214027948286502810755070558560554473367729689681294761114281945596952856605931154964780701193442493237513034732289922651457024414058924976446477863416556634390817742703388543902844028976271610033159000736485418289720534667870849492416938215604392980801546604828169585247601307699381721254818524289443979898652611674829548553570124493254317177754014741362196621780920038252702288851511647183136334012533637423491495563944934415535520610169818728592649248678274820911171734219358922438688146805578062219952910777651197041627230511447496019200434630336745490519237179694490711828217319157097323675318242865335296201647630377890630860141588181683749663257092613843735026388615638048227317570160223993750907677082159388207180547281108981527698786019704022998782248049071000960577486229452353071060816472477852463253140243712867039905993654132339248695555525416472617743706540214085337402346221989238914794311883211585719458849012349381936774749627528479018518285663692251923077637128456191092345208260744735891993496596145437074897391942760741435979863276394319034682213293367507772739118798818206835644921669445295824699997095389905876379535115973452349258923954859708968014642422639739142218887083123078819690071609672546058749011961188093967202368458771574162930238431424347970450062437562224794343253443595668805960958066015401085386075882672481239356287801342737689935608852436296211036556604847602321493374222493231220187748156150037362939522827160514585066334365360396633052846912968141506854409038446990201349899058564210335939409791364703848136660588985150619069425363780137227375696510012268896334100469888558974636249005206325802856224325675658910903019608437149072600071837536722274135624618727088868075317287683650707776004022007773243074202497246867462678135269659992615522781371849316448498947817450513044628879235412149364816522600562120600506190166335630311263788332293645293547735060868034746927486325258470902860726836671428769284753822989406700940734613325224009529226576343177645583417408123717036591750150663127835008415929807418931473174147333310947041960027699797994554135619525281219202639893542040673898520374070867321913083486856845262526894687533057335760038739103617117061098141566105239865787325594417457614195704244256195635140723825248965364267521660339318429956097007028736084556916065044601697761265619353070878242140080020966157361706891617468355592573113124709505870728582811722675143712108597360139325565646017118450520885037693739784947435839616481371833189523469607404382361641804109561552623805828329628479788246665116668753864693836579419830591061558051066683531208804825918491403512568820069016263085765557647005775269596303549240927560055163250713778631374210553253687929413285295640749339332616348759677264012832743069624894523172245539836307229437501859166167669357013023857386315994348989922961579028428718032111253559331616384687955336752979075138684550276565772458298731646995673244790177944059366306369324615398023279216440702294757614457415513292732057676805812289698727686887363908802627017138395355538296540625943795074511407362078704867838720708156705114050478176543197610161770011083540008784543374060271853447034755598516015674163897800129947030689700295259782850312026644772587096828312320767714950210090853714872004629908175066232151221957255061904051479335121276682856087770697342157252922563401305485258403919559595472602342970849140181934030083070933527561873967387271807038086251074603354032528568661871687877173389608172933062778117549805564971463710506738116815558587143025309879447566401748832868088722144438412614285834979799236520894882035619043573349090755942770321257500788499252390681995960531326952481654788272167160194702846136960819958594062630192157791308146611771116614739589596828014589335111639388492698820139603571807773445272566908214603434598837677070427288424335545024688614358931557481216547123597937527017241333440890221092160566130762682409902523695887872723921852697444225242916933509223522156715016680935445536074854482851853114221653323030846102202718276008318895443071067445223346588632326151004529388889916727193209020616367178766781268527076571420439650545141234836365168888054702170155176966131907220893342217637987359019116882388603157477006747408756512576170671297096849384149753310922871435453929368697917452155992609254159345717590161229259548018937454301296032313704002729333353431000183157784077544469727888579335972166566476467513086432010774432184145446173247622263913339901989487895846242334510044120488460169192185443433829783574831210303115920001271303006033143148151243097280393198413242732786861049388104813362005637145255071975557508492084074150665652207890818176139811593100593838950335071507426623232240906254456662839591125097407158692019330956014973109681192075281135351428374746561903455150014831749886835700138900571998495393309311900424600341609261697551293997786110803652987937151188877521126366061202678539161334379207964658122527696359949410113001969423645332284288870357126844955963537592340313805239145479068076601463510399747168381261149492765392172448340384201815495201883796240257479703952359353152184500726595303152240734744149590721122679271809751404679862876421722549086735002034036500689605989809661040030327225401126036007763118837486755463879185540967315461907924362937930240287844356004718628341085724506504738986920625013085035989725143719381251031025843734195713676126631294751345434803089224717881391607495026511693720391993008321237304782448726169040241602126930129894944609820560911517354964143147375460434365867565954549994131051945323683370937136054453330401963355638204081910345354395184843205229427267509494345248301929194009184955678343039752846243298015605541336955227911905276086559507824746089069167470169767549121901128718801503280349130806748742247879770334566154761101691394468267475971785150497551462611545565069937661390995771484601423243699948627247110576005975048269434766240353555553813272856522507348872104595186742666798233069846106178228203115817245793050540679530488503707465686357366733298752760900009563182507105296133679744016829287976727689607423397936442340744632546555378070064135257291232139713876905491402580883827983637105965481351106868486551251235025641196839348045609910902236767989150418515061114825336696393812501804442590914441251644762320484232201294381790208420295580659752154614812236038917467120347259776150496348818562126584923872913096015980142713854389816767696761174492067169333711013918488166226909585189616775473440148480256744010349559182515114706192250867335928727636706829765825605871760658483702831673895952403813539288219652835438231482567902516662656337278178046323398564855387530381427389949722973050795970131423720841268170560613468546292699709441150607570704272008306952943465686203024019225920258810954884991953293705760116619516667460875136044655848572384323906472743646147213780421103102271542379499293310894277220872026311200402806593675209842364806619441000383792797102398280967219939646531064617367876648987106612475515389781283469037548457925304423071346852347303063855797803175171007259229008160214476973027129630813475871001212820330957717751825136407555133705775606175912108761425705347498394661290542506609165220784798442348126200463217325665511225010022724053148185161687531761787965114312312554557865219524831101193309618503520908615409688498612932099062001507236069954533709131060876686683734195511316682506147647807211719026364167174632177824398154932257284685876978518475378553319987588642536288798647972040696628910105736782036905729595322001102870094478646616287739680112874403427570876089169140167873451386927510532426235239831454962382884957986682548498315639370567605251301300629760939154920926097162065193925186455111913942016852890242874449035512080577058627410217580607292737414597293883785933340533406668970926215329530442260859008139051855067281167916617964791818073490491408558066333939892717978329827611419519489912533784908725072084569729016877456927049346026633979269881146286552178636312596787709127624744248278783964261822067139585341329917898677939250999873261851403273685966530362929249142158075502628587762469997279242853714416160576781136844259190726610939501314317758460442989007446113691323544799392815218459649234334025179899253482172210781296418710684392048435392280942468029113637984659501861666824806018168775824381545528357344012059280419421513848432481879863249579431050112117277026665778002856663994857846871298008340784949873665109901359143656848835375667294629188218244126947822003630408323058525089504935307851209090887529757896114960230112366860767900192428822372555236591629943389891941784572849669853252840455914758071690342226039799789812240161759426326550381229857235774137412185893376582298274993632421882671589051126212905426818034767934780647981813438763424958706601902967951999030719603488232975422732675637645691225349453456450481597184967280187895028620320593078550532946572152044775234154982560423669270751230685880315836993170532377135501528779813129765340233573786937085199638800440152263308030383460413158084526613569485633861462290249445986867627891284092756894023399160067278018259276286828934287221071863323969763912724117905891214704904934342299431438968398864557229381065726289310266482371371855637276781574221324558880536747115425253085899594090502315325300776972932365862855633871097711317811848405115877041434556583560183299648933278552968977091573846671248735879732127994730676272925161474593521270506697737784538164544468891412374199979859902219350915750759367469744419871826732520960107100901459375442699656694534302644777337673581932271753227300829807075589608763679495877515986174890969597289983810806330365481423617634460855980555755908881482556419548775457596332898898727150247161412042657348676557413092382598875706099326437070207467259785989842671874769490722746498998024888498185557712520564523368889350085381806351953785768419987925539708435195370286533247478827219199697570728214546468732169020975833750541127235397645164351004228769398405131836683567046270436552774142854043166334031323256029744210485486041337683425773681394224868955538734194777633255952055633595079603980167534302346280245852208448566824218650123865233165244738278279272570186616579568787159744781316682402558516559092140465069744531157471351494560214679473042932499600255710456963870839723504636814646612283454832865496566124312963446493535529126744292245929797036913501852008427788530267133096401249786665295862535074307338774802440281018860220736198090554097497770908070514231455136343603805132201603350585472131405281486347565903846088220076165467571207430711776716599880174572816757538796647892686605832388589098097467140021395228821337024706455287872605376779625491001900123376797045853925764345760941592525039447766163461612072250249053185571310082052664695898655682178493530123264190358591247088275833035286063273186024586336569710038836873795410211296386985583955597657798949108805800962906114184654751302848543423135684179383174390436468566179569006684473435068551437339605615913191706138590105808360031885637231461898029716481682918941224168174066850803150069224637816818504586116945161953380269974357751735106535934002392321662243987601776333474898272798993962407977308382063376681791947847320239611225979179594562987528635016448066048760432558672819548425285368377065689480532767594578275352326079771453782475100681411824189450969225639422707024956022113623806520222070409464810024425258078698302906729849186361309466243900061621531189772011648474632531579039941073074649312100727320149290308260121182219252323700427411002749121126569623768364070803196822517743505153707621957021085311150425400100410894369940305580257780838197522333982774266308665830954684660661199232761144397179278373813045504705656410949204165755901722555497796777251281822379485482603349980612784614336885500927103723885905157626066182784262047228801994606612527195913569348713281922876526132570560137026824475959379935050449117492076708846735775490231653594018811852452420077672202690963215328290707244948493504491961757552412665562769165503354531678177178031886335581910292557887320760103239661317394981744544508860734791803861390222702043976868937998372260964035431402802399105131814628058633375530580087253513741693113831808829972007448012789492170069122642477268007705687694120683183621808056498361680436579196104782227141108113593905067871486986800147066046352460205776389100563821725741386157611320787410262570664394870204928722674232647078086663399254808776357623585439733232697467615124476398757858630336257459742402219780552801174013330888344426028571275955216828077201656967007907021127354190842062455455637801585732166693165181926302104732678484921457014159735214337752721110048169775097530291762187540611615351334092792373079241888715188373134127062664983204843024313584601547748625743958454349028501432382816406741485262396814105313310007848908417739893040670599843090828726555046480012830070270485917285043613622911451433435611019411280431873000727924481533582681093190241479880916118947178702044785251677930361401562743276123375943656696802703348446455149407122123626352977471088446892347775032629388722046608719381980931183212538859690742854188830684392422821003227535735546202950724313770464545535924061645088978017026802548601735308038825680292170163587730856021577533080590992938026337315002499024778791998319263420329221655820363140931026962888045059249139105716563036634559927446973941971756477495840493800217221721377911575256474401199820245633784910740609111248089467773233418121079055356558176992603226128946867848666661932396716083848223509129177009727080598300012557048981567525459101405391368393713510103251913901242771049815587049497702718101236999056556315498186638719491611207805734551556320912818230326172914516213112845601267437180856440739647099452877247176500846852597420288449609469275662868191686626316264161432775862571816063050167863245058078451102443868466995465080771003507872863164755595279601892171469601171949968045319412478856487746162417016340374429808502486559362768313386007953978247881424133240572928234020645699412016989249287155935311705671656759463685262066539321442054660686577959365813568507641754518692539527425312291254434881345975873859507181321934240766022713983976915063742964550930548702715716973725423985306028521353656587538507776161681106132578179856867087615585974519970680647705787381874188896527405866719290542164562256282122249685374933537170119332213213954426906844820901234434980037629776951311486430107755171259294194225629527937176532049106229448242975717220790618599259379855856124441033371327265530342863842305896348919616852000787737118175302837013536440895134384141799330321468946380502229767803394937082142648721271468220691606087630697154803401808418978802763725832390255894194070942438287526526123774467869032180670235752534767679214617083430869939256134488888814885345345193732880934436240392945960288374814386203868038372816441524651295450737602042854875086026258668761779398034980681208568269249245640133328181770329024055915117609418448913383387463440889377114234168285469172539072821658670335027997005553336111444440634812740342397522313644346666198174732109538258954443170036244237199757505389173160933128909230358079902782926579780818978373067391147593022632804806254673292849821180543506499136757767948151806193347767657475841150012395244547575052262639012434828340176654104382094154734018321763725626932631883307170687667322594004181519973081190269154445405871638171312101709699566849748371223052500786975575947508574413593221532924900020277985910889835367154477826449060955485362095965124963607128245734526943459262514706524101780443924638188676125937550920933850510305326487893744003670601559309879748154259372953411843430029303956350939246437589530117970791283240352905187372919821890103763743168603306726458388644187943350655698115177262477303480403256945342232628495236331852207831032257308123041997150259880703797185392511672814296470290269957264540880154775809092909641293461555408201010182263316922560426355985702874930926019355644087056461416530837882249649024790161392556900572953684877640944025509263603952856208815851773750918417234529951013052126926589522675198149582893330408502098197647775833440285547074771040827056702905991935765188961827454218473391146271311333866853528877434493151132663634684199446929921087438379165214077504445552106338453338533837743273169989937040712265243388118172155828619761039738048893708387017473104195662803277221358077978055428026258926932503164394218972553181747613833706974807683246167641352198333318710995765833262626206530338136830548125530946023052380967438771030406291470766166782755391682572367348191010360919326439343484608217502020533054876306908494148472964539132436031027198635338924588603755568642940038589063967374334454718327941055511289072137509423193150416526481861671597155589856945721090708594370098663415484811025585714448630860774113195601159583870958427269971920306453468801185668464099006427089449128848496131954900914303842137911857803034161867893369203505098907173984209341567893557862369080924646412070241787943059181891989165316135085960243912360359964241204180917284490131549929445912365849625250403456958421980227828292579530759073418818769166467829469574262115547460730178144691315507166034231814281191635640370904075843585055768188542790275685237211237746457023914730588115563584583404471681073979142792751499838710873945973501041470682593532047468048908152684582824657128424961930508688841014698242363773134253070370574222259463645698619049981275165864212777493675996440220403630089298346682056823016041082227390525994437760603640805055997981246194500000421987825106856402082002377665826730083341038008034717378822615136214756772009915555812348066495475551218633264150910028671057189205278782099532294440697016318516875348652835897833326872623321956726547050393573787621626830222720892324361696720344986063926205724178185587373424206822194103220551931935437286641732597150474631981487138159189805052289487156051823898986445058345609956115046957137718883675983745912733631464177341643067850839082768127013382471935603265433825051614380807117203032397890904903435066931833150333618558474713897605169413779409577579513694773417805964605697319628883553895926864173433704807288109276052967566876216178304934849538573079454627734838144464885849656580378616934734687425776297205255760286297819365305248784326836440263030010494221674475735685011785989076846611473470409166376682935307456548756349661720033564108478057229016896509766263920523052548125225988023735849437276718885487124909466571565719491687375930971671474952803767975347899982557764254303765611478639710130769239817674227428920188588145637307006943625358655843907877922152295927949031151245002828653365546444612107565328864034769216032496666635220427085289153172915966355690088025784775394090424944919174544387065895444817775805153724641157952858256377522961367505769010479386021562423023289898233110914212320371250277200267922509251760219964994015092171210329073377691453236910839473087514811622836511740845672273327363830873928626661224307646015255340970216219182614129568920253704128147895131498581525725096844359683096888145434642869189564903097090433173864502982612123575683507403810792124480403224014654839051396238519771939559571397938427250312912731275376588953621142278357168301237798472766578282180663301524488348249733964229444025565246792724311778608438760471253724216490156428216071472766015176523563905900729001766689096085271674567487453780733382494379785239921742797134750042569323238553405485925206614524922006373390472965684216989954180778138324220623217634473110185777406230354167877724580213327845676249565469756996943506984335957012243406476063744825598904507594728488862738272564455898686500104684757656012435199398939990009406542888618619578529023725687690337210595780563220337479071369342454660739412485576944981241023767662476697711571439066562668498665694214350724690041470449748950010576462012466153112301669010013239712241755596576834207049508782453775960033379796928484338202397741624993576974416743155552630380758889319318789254214971096495710021068001451812401034626975409140298576298534983777028481440302163361835456402684951096140243564316956462364521880220094112562663859405863106714924033519973824626521368500575683242753392614408030536066911352073026458620935751701666988134699816170964210850984300982386065893047787971130891731484006244582352565135378152598986370024833365480122372335894150440837806252619733667494747301940026099412774011778779844019121893115041420794457185466665671907041754760767529550313157673291499669404052449292788225059723062112075414238087338730587907756157466041946221451686963975764493412672210986361214391547867579831708703539321798066858598791678799860969955021972681838824812141522926418804541290655423993735350274255457529364255035973677804897685293010075857210696692668741043280907722964687356027540493422918392518364865311658855512295929517191626608185837908713799983996950570008582199854629736494207103136274226237627775026436390202103550928872596817792963028573600276953919669223248611797579913786124157775326463881223919363948463036821559150433646192685960985451424055182588731493377488780270494055408780533796882465650817108919769515475008099688416364941086581004980863068899361875269778156730758259605813603814765879222267366308847898554443570438435272393149716582788686257795743780515252054577405529559564715995522608429197733481764709932430071670863981032664575442373323612674851220070991581873109529265482458185323042886928199884388942577584934872947810668973140969181346460806750161946526381418491688674968765330596349146351631420789044920166259202191355321586830388956457075749951323790780693712698293198096447732497105400693075656727450964528508271348625132538526163675753951379609058819101677480760598527081092120866761284710834166240069200650951716318473384773719339524047134114679373758897257207359071726307808155464035285918183034457791992879390662293721813207529178567253934842777495080339024592987911270803735470689496449879137673108992776679680475691999645847345809908748046836150443226803739002988704766093819817083020273387835633232162498234976292881783881009864437276284745466361198105603030422695622114859364551450627200469831628570911194499660979370993342320992847232085060046119730040581445350318771362184063342329503169904135096877938229015872063549094039192242492027606053841060294876509700548446452746634378300912374551167598099069854879192912550060040665196461357114904390834391088175128638918973549470891193786761065415115298588433687145443067584624016531310007846082991363044099035781666399847968680313356244200880626348736443070873825809252906974909653457057857434573110938384317454280672210803577481275244513059687942906829461840785189679100172291788258543156409294429316801689123866033139334787095638590927462404203550067518476421723732866009891396830537942154487432991379783919927976953047699496432243054622668969967310886366335293895322535771986742316204934506429768141962810906303568491560364797809493066742421514800079254744964940671171206542375821442307129333849965631179402566913796417715156252563798869692731878505191482127011847010977985362190749201119055227952539685950623159157142089131393876524488009308056758702150344376855084334490737884739420964474047844206470323091392619387026929179461717765603541202643729745454490318713699336818324047277322652973659019921319908533965101635686259886072185951442111700874751004156657637815274484737157234371768469220318759591761816582738963354071651358139006064154890706153769510287935827548681558924694511519873094763717656152257402917023792519083526065577267704800615637114099756991999425049447200389583871778775109524842375047801143243262376684626562382737328693837698990335842903937186234796527373272391978106724353387521705910367761839051643736129476020871140472334357044709392982615894220683282422077821182331164367248226382017302494387458616848330138037547246869181914756975401265408961472955351650263108088678396803867914875526818949991795645811030926088307697083194034709294597174353292300556422397256181259187572654336306084313033033126197582849207544328421461150053324827094880893702149679961339758778126461741269371769445066768454606946640472740085462480848435980987410365211424588348043286526771769193489254888273769805958570413292241290967629185810610046868591403734948325183032103336500563730695020147300611388473711074444829052589119940554439773140125826938438326585242819000402266237638301158349003477556001696155236384195074890073654522387297225355837497905090661957407666289903784044686889124139164265019677212116734202963453837619916173276335889545503461120041369647688469890873982624215993565431889184338486723382450685789421950090961653101550158762727033606144501928967023395797400951814750199422201223318678891425196006837454265688434685983849781097912050451596069510898421981142291368828609894861359143209732358414923567216524150430919915117645946144602765569798575023400818163254219017648713538821322285852828675325598042754651752880075969424106412750423645293564673074085776857120371364667498137384467611258355442016376147759536730191468198105152495983265769889667169320914562250713567000140174526590861303472261349766649617163420241379168531844653206178610388070615064499924498093108828682812892923960340513313621926914906747501501653334488453346419910088896545435342394577482635705837493386131707361867812496150291348459787258359543547946581618464242644579693148991637688705653413519553139369881550028947704252785696100046809143683654531894694535628998482326253120456733835832148361490203646836260550984785669130226351921054180750885085974877687168943198315558817175685197426806063859007345358053325400568097896896103096715110189564511285964142921365381846368361333173058112550314053422496106200692484659950503197011885136359954834753732617571765277273616769130079781910414732448804323667927266097514295070752123590697731997856317887094677990969624877819190115485157207642972243766217824902069719709793957915405601479004873703623542273789498697660106238074453722194668590044314583618252242889808652264890256047965745603386091808080100154424471871125314176432380870364054319489821870555701033489004310412369026211297721657328005574469636842444380233130369749003933019050661168033808659774363048380236386115672476062601332183520166037765986622058190322609218363934265475927221645666182401128314883947009193589226726740258481356936542145986700689106998682917951429888522144095238814881638293223441876714492308124157650196678917195887990026299885831035132109739519016244531247968780728007709235118138703848380591801951364681428628427784836850846614467781912717215974252886590215519407152005068094465739355473068666479314551314611714720097725213728495290864904806758669516897042435209727859051453171704139683961659452067998236947867852320645932546443254031610741587487632176542316189557151405162285648062021783470221896492089395051480394805064274094415904422069840462253590321982305731750810381209382394558885980045966208823358935373614529716523836871681198745685011455230509457720112904717334524058246156364528777019127097741549476748719369027270733452135600213949756257863709610068727090330919670516117267378490765785590929622934779400601429344032784755009535467474714274956138628535630168657207632271076994255159883629394582677160261060964960776898916683928444601849595736951261195383473027617310797563538952393530569771932601140119718001591478912592391041758396078418780604172012938808748836568064142133194431975649451694836696019535858159484713711051357773771300887827732913083403712267934619660022447345763691968900587281095320398155063004778911784693980879633963293844505243455466035954074266396971107217796909676798806150214724297447769359029614395494359743770028150409659334388655138853660436450623442028914879953452310732302356455605429457045365617167876957625162335119979934009407985596344732526467615161217508961619727545783053612376612927081444968603840116930625807198195942064880969473208213554058301125533436082355220284256458633024964024328044593381125663736418495828581893103006352610430069160819090857915662918430944670080106856362840328756691114020157928740966216317717048602870521515281100200481562468160802484015677822321593546881431778892443914313359769770556638184943590164506675661381431062708003306882173898862185729354664404368107093281275788551641013858253790190031536090344273577751450847789822898823336239603555246079188944389644803895709078033507318826069490405425311446749471263597342383085495771112016715001217251083613876109688042869360578679243911017914104701340819059105882035274998784456166326015452616592284275892283880660578671993016084626934700790884975671956994471627984699719692808740200190943652522533779370601517167717802262577719057876761402879580949828642437360219066972334156681884118206736745395848803111987271039465265930047284525182645841351181462944245858613292407462579047271292612839547607196933809470940647800664492131621434946285843544563210142469832962130710367868680348801286038862651008637772270071475047387312299586212603971113133165237880402634779122060205760412366347465851297769992031892255157202084536002885495392006829120366629900674935279532584613308284115821863461317302674376425376550592572835759174692264702406035390529583181061950416633251099522151599276346702120214890246767924981002127563176291110094735231713819058427866510171295642354114100633419204940260169004236284804867120767447852728788162263153236017386197195609249052342045361218070012204312946390092064756485242679811129340845301293890570138980579945953036077718863690573495476191092362574648522881665690211863133302360671441225534864795822743255514878457850980828043684514572267601718703434719708820110694478900402006894076210621272846350587643001632811155260850384936127204321805907072920782981987757482034299700813365982802443920493372897602804738859166181844114406087939073400967850558645923340738771955372437442635892479980895000082566825971675896605779808903837743509186576576013907882071814888942103394699364703712897597794754333466854468783374870327733459075040780647385953655756270471468881567815916771902499009859209100362385639028756236070743437364254541717570098452561699765272945585571845462755838904643193977220976526837250121071473178813531154858953518676692788559856998503197321617297066419971495100944581562349830297582259799936638981225554439083960111481593329581894201815347668715708373817058028680628223875303840286557639725058017123442784990603251626124910587826385973519347015610210204044139957033373222636742317024619480504972875787767705562904497456739226600694809162267573276263311467421855791957343805953489675827527507563025748201561654981151090548981369382571446773977997963168420915739614123755252603610862096001526311167450135372984606636929833956330250025008543654643121655463436689863343365599997442438284130939410365086662638954273314901103750762364475588968790199794664030506452934420536444083826953988476556903309022408828393744436652010625898902727750669459589864931795045682553304467886697307001360490408005221852008948479575888445642547892278077325940578275327580964945544808882624017411859225797444365222277168928055894038745025225815945889378304668540080910043495148798606413429391457009693830311586665963484227131071772705255614575661466720188077591029087410105618512751625951483171190742655729173313001334549467942882640053216393745306445862012507086335547323152019645787852255180836083593709692021125243721384916811038212363181452795118576248640686334653873219389223497364617433433608679739286193666214376970733477003250337638236379963364525481194343233721097773217683912347666909519461081882720673240925341285361241851543959470145286930713267687971177418789569675900348700069831132801457587573218222559998193922399962803856209597151224856683190447936762972072102635847565215238578904133840937280523526205867487959120201222007949212227521096170744712999602216238885093272059726321138518210533038552194365402673735381129939120958230366707142112818612601307213402309263351241003314997929166693775864988078033005947431775985732893793547200598840789464522099246611179512844203482500017706050005959399824529090996970322364380330749255784043135631054097748475134084033622074026948696187231546491437215430620807941532942812160436153997705151427954821972689295381352025564578452802478174279092986848193281957732958673365164819857592566167180674522383798806817991457495526732579559511446641610556966733653402485276587275020940257546617019974156289676467400849986435962663717938058967600139153979749423312347264509714983359592766242324754886435637381587800756068313708947137546819102896891455631284878656497282876080513636777795187050483352770266004620647376169800666679298805712631960743465948052506475730173470611320053619468887046269974126112220945060659722882447299702174624899385373283494272368658682324935093364049608878588817222588212331961071741812217470505885600451548325486648879086500179692245541416177589988398297278058612229001255390026919778934556584091890985150512314624671441898205138029086318340429536038049254597806549374126725454230091617730941539239350107128211227050707059119498974211423675375032274289022245084820936154976158217254839111377901052707389581322733047808346989211214703714316084615142232639331529738615821661444333712411806172357720023585262234435172239952376103665182663375862523616204364141659084320766256094728391605560046924843714510345159354184817535912592406272932552498469488515893342199851257362838346308957028656144892641350894846908692622940019448425480356612813623061515457837050675094180752175964571820328003353702156704941044920354720282832123693153287276006843865013060680690663594201672008679706476255078299119574880493444305423078699826338099755435179507777621650114489033833312258697027970306774348661508375601410192944540973254854393901838169295647896590228971519390087389809278299341441726033252620412389376710471270452633769544531842114983253924566303173287325668627385507766680626996353923917556753335012684524427117586082385003250315558404872478974214052647007984818021286927436023076859883585665817091058805397537438623647824806808990953975951353761671753891538271656926640170894938040775609270754578954131003145479394628410048648386466850247179419927032337385265838664723214041810262592080685020160942715061493822551327015530768495451463523666731180637811365926444133798378482606388452392448701723555701007597481335137849681675958109540256672098365494044283472191921157024555784474887920819504745984025719631373165355284306762197274640617902708128855995792357497188093345844072749985917947237581112939387554317769513768376831974489021527162869575534525103474276972856502917996828053402299737851835065882620305476521877854113455885139752036482112759046206396002606126877836390787267782510407691653832730163832866245769340295622321049962908358183615019243391580079576643714817909603637779522626769403916111467522621522725191212191894479162935130827326793126961012902842385392533195747815980211279778489646592701190604274990725743249894081948212604983784730592912981019076070023187455080472944825703387492382325438637668362248528844686058970519538088853940107675470005156993440089810617081494520978802125663714213334088950076073899160392858305223665275577101941665121359425973563944810512910682559098955928886567017832083177271221648133768761496303327353656913491267157298241480847607982717223542834024859270082533023718109184118898155460470109074719754200647540238338332468553886692481894881196128622647340348777212234660987725775818494233206455349557840186285902488198497794459186599327550452031597538885548768596478948776948961466152530308482217841054947419643355892164304963995409085244182504029142750654975088381207297907134479257668663440129070314413983594243203812885891839214236625030186607078099774888614110885739288226258443746107020395034994688504982169997434233924575927267747269132787673213680730854461540395159698180334515510959524557322334345993368292793891432108580284659628043997584881458052597541176247701177616041530564367541552774138385252756758138231828824522085287294319753869906607186314461065120449976812984963787033773840998166138859453300555132729886044362893850254813245486764285173660621447870465219494455777845059675234571603494950428338531501317022569535906707408646187673914668249424822426045934128775660905914366996179530928230503459331661634558328294766918194103302888995103543351253364430696792606497364122158386942190088092160158362134289207450373180515966587017168779265912021029980201787639113705397478454522781179307204716359602229532415802345513046779537636079371927168999547839486702593057703415366289030734193915899358247851553841605494475860327130063518057224017826988281144256457795296865148633866241171591906873739593999599058979306233382972407085261445842277781933986027072422854424486929560167598438336183478794234562358933892041506262162790497773656268580038011255293626435983475225557687064652465106560130145857685085704777548948161062863103981612074201279899429384217853201356063528260681148399526870054628374868485889833015176055949435339419596150752205490444548955573745420756518566039197203899487090228968406134686713022400016300639498890058308640464890680099497407465192016363590119431269008182138613341029370216974929428632035986450153781674201372239350788647418295798843300521890285429296441965574779575422358794217383411337393439743352858640324563494395474812352667061901666375450491197426516333973198178255267891009482814346937483101731848214612586681299839898248566427548347300551895942680435181685497136599299310680125334255636881351350304675944757948632328727174217140842621499813258944058236057777397320723028016519323370605076259427798751049633626953101092697532868846299407307690739648479817878243780488091326525762980730854570954915582453096989377365935511130172562496090262400945054053062326934954923032483953581533562494069991762172157816015592555152667070602116221111778573354080531930089468940225746334419001779932244655934436780730217310204635874452053759453813417068194225813951527808346617781099668368990185589037196959218758970814040753715958124287098396445256389225733244070962063908760207076815903155859342408514814903873420318394707330605084155978245189682008403491895227178513318834572154025906492993870800224313097991767744200286471914709175547211325567373868227152290225145326272389012227071292184522609441741661668774939636623839940178716844479992899602013338201035773937847847050381881677102926250221872075602054711184699628879684240402517576446252648978183328330251060662930366583512527902219557342801024162706398821524899527019289610606208614601135171042318442680103146579954742322147196311866791101776064592880052827027388540737496337369614915542659881247529109212635880490525772772673302104049700941444046582294738113519309773611155654340230647769381898851925986536418018075155986449607652499797237758533938393440095146099052043886563689679307563469145430449796503503074643620286405235824215265543467498824047544843771398254160901230876225326586895681512108718347585753763103754336695822747873819961898129631500557768737508853868045489091661298631169084137186706523976462403577873390790862002256831234531301371228408299720023953447584854947245392709722959519158141500417312166659352436820704844852705095976914556692121932476138507720045768517254819331501944965047222003407281723325671483266495135558934877340919101824231637080370843697470803880399259182310782036637692763568188690442028701164102841483448735546051807488996246857200454771328469521191836356901573773510249768015898197720345852974063196477358697941393383799822857443425633760747577204380293774673787319897154586963351456694233370859741333939755246884818425397527179559201457898215169000758569642590670605384963627723075957483803396368784952282352592499667604513120416811596485128398887200491820549644365015638405820584783549641103669370932612945454447774278336586810535568397911929636974155889650239750556685379475229274197115051209742712523563126856944636668074619598928756534362140329150095116249489138249206448466542750122857522878042845266989328639135624923466279506418687008921075296721280183193854879038995292981810476166980794107057345492366963765541418094112590297333237278419310169619248464175781671710351917081351616406391840138576533140332182232774657728871531027978367550763167345873183390674999885039475173005971772869705042387840784812758796311709970831370447493449824488335433459152758787711860653268167737458396229197531628447032593807098123840535610253929329779251291645563480564175453893387487566878052826486444278784917262948517476725447057990322657588371953175112556911036744140357990909318631466189656335096134153249509320388107873732098150363633256721486322000466771418662025024851240479120891252806079745364619431519440565206034562037346377829041433466760445272802308692833385698805125910927195193498412958064249418238499423304978858956713819146744000161109819025121028797614337526568303921246297429696783733748671841126588940624898083546222522653231424893190742451737167810565400517008739786738259705880538100421458909092377325361657222827977408315226886445160162410895637681499533445303401745677915608266835661936349012823133872194239917051515751327416001186613327494412068553506773923502408524375691447142320213752018623754312405362140900334482127229630757270921301508223248840407341996794194523439325297621353523952628819835661776847740666362334991632185733641350846102773353614452828997606093404933824060840554251556111269064966059563163902288867640714245448314496817296591836552908016444814649942977100649182082598945837525371439702845328555831648982363263273532231977755191387231104809648919695902137540624033912857956661340308993281732409032033131819178851742703427827350146474358307511627660546971127644090621363922667270437843838464350351258830247989193673567280983060280867610332198314986227126549154324007522022349307303152206409185441305477716298791568208194204921534139486022742183586188429899456753274158888105631122337384245167497839589191107851979339744121564437102835758187975591227181552380532307920026873321122428066013404004852902508399112476779976072522762839444598335281959759917419342138631076941854119425306203086019165057369481899029119011506470194164926168129195763769882582269967962471953472354772870974534908933798476221911814657995689440043653755049643844287221205272608994919366790883573556288490736329517026392236258404321515544562060287104589463361733558231318354182717288685128583997608289043110031182926265204723154715987914519290840215802648635309073179125134058691150086520648166597746783570443505393586246290224898697937190878647735223712428199828696783228168110012356767696811470331060939832393189142219017615581925264248862568219722887202601370964922709145938131311896022592406149870550729095452238814942263241278565564055973161459342156012943844715942734136681894043188727483495251168907432164759336588808766949920552067724316096569956226055705951784768962255920094207500307626432020702478455634363044106957399740835411692474524882817074201634763997148679145860759965196566136606180183860428464833680109944508113292172905495137555141280530470047467224535003871375940939660552953247892447558326758496224882954071094943496958469131283710031604320998444475500175294255760600929800286185703127531278347485949335485667381251307989835511807995609778485493049102546538089811376478089283374719700216574729460541406782296898989733187299545834352272850982004394090969872317723610547050996503243164614557861366758235687693143065319966351893684430975921726816333385656267272129129372288002375739714864164951135635230288064570762783646430022302511127678686012808093835252695974829798148650617209468738749426234119428657293891041405746118287137239116062243255371503677721242606643004796446773919230651963449510620845313875309144935590552716487482834763643224522027624221545254217714373976091046856066209529867228788727095188877299873819214037527389405230032745900105189863644664768147707798983358529057133834760506716029004590348264525906403044477522768822352258996208153345639332908474803890219619799841181600230818677831044659943847511851127870752375974085515953149304928422438212511625722856623665584981806901904396919383425555641621014594234203219083152298011251695758590832093730652880447212145664908243286640234245009277375125097597143637116187932062113625728149666654383471710785628344719970466957624938378199266728682459359829910145420353508278588309189535996393523645411079920218165765591977382101848980125075702600929354079212544315383574649050418828976380498922538243560047297585302193894423894197193719935686359235544547107569653241674652069766282715059991434011795866591163421979862512346583836308505376268057403211276686531074858605924113189045546455989583798606006749541268642195461152267616488935197934940562389342005737095651131602921427753723489786344281547388260661215749989520332895719687168143020378309490079028529697342740906736045578111470858311629136223967414505655044606358913220625617163487022258310795383348557407176037261694168179658544025537104188380255173584818666030495985044667086101902330452364303154079751059763988118473259656450079614208030156153990848365777513470321302831790705102575478486772426616225561736031235097977563200629794633440353773135807530942909393204802463878168234145891721958383192825435264936226125518783157010924189323755923255804604520889968403983765215660967119496211330772828889069344814154964692604508977732552582690587058834723675070024434746884676269813772997750454345132359835128527496674990329910426886716559899127039931732014625831772941811059887523956162325125740006420870727014517630691772853860754750899729330768695574538088765820860824226957646072364026805725116481618611681882986551335651439028427375900918394545609994885587020599386816003202727350327802631715576721402592461685936749545824316151036890309052730131038362359118335029922746512529239948579289058970910066886547549329404214489043541625700090325915772681444575826809541453182630726082953256710570997508225726109225543006482030230223918083508299777693310521563386039142442359110669742815563481320094204020004982716879864377340787849792891153417326843668719738972729843522374506554391900648868575524522437779647206398391447848004115785652570301721259751364136019296135070524622172555736771308583915791693974088852257750874311627437368429132375323605684511313103925686501347164275311156738689149566927411523987666700158292040956547263798246147033338285365568634886470465496296460517891631129165371954189842222960505959586592024918924342433639478511446269249833685192479064444930781927293051999041637186973329658975378782160819728072702933386814557792658196192074685763899914859938391188567612886994777898191632595966887313427779396337445681877024006160969436574112492023309122119391327687677850564983184535092291464076142948168060057308688500170328954946995985520889579630551587620258407906438577290810724958485990738467882731304722799840015772326520190412782548915067338076485190953679062946649095490036136419832947216403535465107097069638757879411044170999569674392532339429963959252593277779530944735579843702021986432418293374912269901935143477367036091849990047488961707904042875221461881190669193771884073888872870571585774276850803295756466707360401086356860795234910356829002402352360758392491900593605389283550287393405312504151941003997000594368416820010595786064990144728995195119968796876182168728261356758164313009648673346311396527837003869589578644203209054165831200781450772777666560072934167049168090676901503573635764135665962446978690046020738525204413345749809084967669612192978226184916784423734679892054167227074507501096003817800586256490652158009619946749728460535737864352531450628842040586054972753950135605888893042620894818054953185381674565329828508106139498073659636030214724119062205884814879294069916765937467755298939167240012575444544427254626184510512680887685584365798738734124169309392127034344488366036371745865274250448640470263545387629409594087809161662319308381404558932597681128707239314712420294613349055136882291445019919759802725295696432513154023655811764654182980887304035298478128470448811129993936032333462230675537531666703923617719298659406131733080113464611821159423645185965838575134252906867182491742508097116987721628204844265959143209872984774943510750925761685255548868683863464324669971142264325590640628610882727529902870111105337041040907579124471333111598047738249359811740593963663468338879952692271887905288021449247811410923980640137987563444871066354690703862161895145065383766908876837637084599327384510859847168544622202182722218258076991022934900269598387154186147855453404421518020500215799508476813104858185702028587085163040287674542298778441374384267078078948525963562163397096937612954982990645727819697254428707823388819307657211567203903048117551937293987843327276287504454394902787661270934368704362003743163737638399750201890418298070959007317067816249023400193383146685070056248182634514233430513003669919942738294424993271861178871016194945223733080619059166950633529389269004595889801675331841823262255223605296207008421746578438089051156228637135627636102764031827973485521951430651489500083724121469542350782184311112056011798814393623265014502645475711328103356608515632384255644762426813176881477346264659080264997740268516312814638162630706620744468619641980575111936894273869367935998577569503088968750000002106425929106519329590063082921008514810411353016362052006647184100734938298958078744531419290926658296795297150384126245256646874674994439658481374798637092949895090150481866452795752321215045466684147753165593938212810836822054194136280096367183881233824322879719012717883668161348570747132931974129148326669071554286417346810864793323298457472613791680528282152341775792691384263944447493052402590599269041419146444151455565143767233450292990457136553766373046988198378107694495338907291603326039583709153038258740368189463590626883846092463015885134350943469030548006775220544747987930381578050941753745977851787435374381852974878006415198801358861196770101104686096218912680993117587976193548667381787644139630319007844766556748833204602336964733548913617422322295105735551946649525215293797506688805604191761855891117399080257311988545933504760767896539244640565131180417911004496293865761914404458770732967243408158136357660280681702359093130409368130223464788348270854797499465401816957324208304202003088190756887069936106870650449209320325689783269019453394416137089370540372967164066855981729959575578664998701860916072957093809541845979046933582458541778307447223620520730922834751754982104919469864679195436563732348907448774591999837361781113022617107476687601119335969405838410926658683438880307966470248366423205873452885391326929653401739729872484575615315309815580840001620663203719495651315729992492087733803792772897081244373100665554678278057219602307076313310326177269418888409422480051288614726290675441345612907728216023975810800929759924158362877103433431947798227772508955122127801534875775143622909264304275852511437384870752321386654511270903854292717809258402738234076367257090241185714229076532623871168567700253733116504198396507077343507260091834401892364376870002857151398362945779350652563197653037460865757370906435632544549093933020489065072925179548353285099393636592240363241543393115683227542872206965428423903123142926667167913606440113421268472684423910039493576312265298924572190844207440762914774117774967020153352951620744582375221356821639790807587776937284233361776158744829508671659608516998718816401883276810140365451887326640424629080277576883848197678426440345460887001402873914979867240624189414130802743620927953669344997184005973304615620757389115999903649474764146477361833361613348036182186854125774868912791294727786055552505311096594144210559688374395157354825494770296950751491393403601941244287146161289869591281190009862061688915995958327301834655131231504607721414069735603373332683799197677069658635911899991503290466046520686289272693153994753632582840664085496530401100215063121869969218102965392239824486084794396087447652082435639744570830958117609857632397347748784093264324382843852201871672749722912458275839890161651316028206175080126808335864094777181129809898579565958815662996281782071549736646200957342361200985735232940765463175766806786423116253150440316083023478740791706149884793269693739253479387432410977916534723772809524021011641465903086426943043962174389604001682871303197258208170478921797843615011705135428518230841460088235966744023339434297253666460265119747360843697953017257715785359203754858598300803595176532243561577388324866457831776996421512146361034644031153253419658884834397461579809772275620138561875063953762940623407417009679504571289007578583975902078632174964773461313879676601854753773739308694970697487116699142712192043986220386038146570996644395228623029802209136681322999764057354723945767618578505033280517662725324389482385207904217556743212060949436914722477568818626525838009765666962904679004458981364852466153946211288743311185356419334198845470740015537294287666278508762310294321180739867115237809734922308907192187836687569087603902727944799761353794990700940952145462362913764368208693249401997430397255098599560230914561864255720243325066604323340848333251893852532697684986448152643089664945615207059620858768624338683311194577133165893537407717112024358570706754885925747098340453133545377135508849743075075803049291714361523436772168292225996110227531816268122194941681364191876577427662773696806017423184441638749833988575672427168781086690777785864560878235084634931169259598164039203617302552423765135646893607949647270000860024333739582103918210954004469602100012680550257992372600228078916565653093914911567715325001593062139697201600454870215271138894405070941771286580089504490546439264772332746962968976135271424932815849989202777670056435215515678571898588061941483092885384339405694332216930180622389240747609475281325791664630936747899899532282388346840443825553297556358738502932724039230709853999995996608799774491992744179824049939533620116828154387712324785029551180555113825363743323727121997061532323834826182935142789782454126876620090898106527364208646278473139565827914786058021654106311617254297548783851792067356222042742348041148181471617539918177167340599266645208069479194571307413514935080659912202940919307585107445962206844486325041177474569097065857980353296925569919105393303394945635983954607629000671310255481853839041460100269541772024192196408663052606200252396483760067668439619126535188978811958979305402395820498191795009659539652022224424897543697257751668557706190242030291246255914876884402774059832938953294203427828921577725895820805608841306293086993530583029842649891312999982290625887906708751098721882076222932313254458893653927561401269624351120893727198673555510922668090028660503149174367194745367333128048278791536191777242481485258468254702585305781567418810581596205916133877151195558298483260772530489980337768366836286099026370549684283733988234839310456953757523022041234805182876481778362236929321753193003098438101510346813792669884401467795939004517932707400903895254715447125012677267559611950557989138198808306511478752594324264287940314920822725495012696105750721585681596605557927938049871245728849433546970965511793551823812422164613240322090097320805393296606446502182990366220123049370578341882267058038833687868592827166047806797309597565888365297292808797028260219170759646426651770801552741515492901340292024874591860546371063483535936650435786311227145626410102080968669040905628073863850487719800574085283549170447672649888885955222360455616221492088007930814298845857746025143824544177734526408091320948991558390524649747592289119680106101315133022742588692529289339273549612096504919580976738696902004321043929403930631707730288133541411382903765029750235666692454269061219438144708051488346923541661598670319481911063786981809702908477356329320172997609573097281545966423094552065334638129385310686164195419508323166918878708438776342008002737493961250679287706658825287900062641108716933061615646337932032630919959501268719988026377820394404293876309534023044332990602161343644785988425115979231858215909462893103679628576445829704283161433334206722301908301394297597049276707000194811007371754087638344233326862973810024545579092359247192942028659102959325834404796941978723503437542262696646378723150692414206412712752391457716404920157583290993477164438989142937474507502591028910048069646221845615659324974597632933827541490279871375079800518490052973618567490435866419423427728530696116628297722848397073044881762970138202543198976252848110386612496139258512952383866208051715002427279573765015817995272576811234900541765230741788604152496695639987621990844799154194359366429407809274131204876481922493111800025235363106997383762161354565031108663355424807068796509975238128628035042212972684655257182097833467620878612332533498674089188994456831538892034415768937925813174466141164033782344138359443761901175306172341178043769314619078507286870705937872830871022939677498974248316379128124360251078883459858858030248093816888434069543467646222424007847288201817863289706171368378451931150666096549921814053071417883023768852571713962963642857687517856820985866653604411874240189226718650593038538230336716143783270645606677619136007143756140458228272421934551086835370774246747357890942352522934332511138888705415952570935781358959220806401675888476324903339808795868722871416362402809741790380322825332866061812041292132332276311248826664241707958915026406668258977757634819869877505274717680801880242551753250294472612510461591106792747536987852955050053388046639128879612983759779367880514308980890147200472979255661330358458022158031506800382693952144023804616899410227590349152339616066626914609820015180864887641330015194102934404393125620259732377487184661651507466402583993198661878943736458445559379765511275197676057469517634401277731219863140567531727017131147086168334519120239866156381522117622818855074808868720063381623444002060913583878761954262201776390224326264743747027882735849112751101152024165698296827966856436437016125326611114546788265122857176239782998324676108364851794582839879970637066287751548350531908965148880892859319109108003317015056872281820488970953876882965711496191605092736780458287439247076244178649071813006527874932288568668935059822356911033564782510258010192065809684518381395418923049604888072619611559284889405090730006438411467373387434276936910502275683044490433056475008127146769189025513618652991401910140297652182177808735866272059668415980312449645666240528630871250504421810870052150078782506935007174524422104946246719743243293279313008787206591793090916976070141858765488166596902044941901438589787329898514963166626032868360202643260505809278957244501148209914392083711999645431362709154258562502690708031053058046870795129699364022485686007209616452072571252863748262319453157158101314177732360413566173726816807399063985276231066453597100905375372847830682595788123385458800832876014377021746714457158925138982157790378625881490354861445175314310645837258081792811811205154270686992982770355015393181860912151473208324817712089544529514008880454620076933415620887316069519935577953803151633110252301421481219387390686903002278402656632742227571336612559254418086076617921534210303792002162099548288347112439240368103621582507983773599513579919907512737448270826428901650085360699484542951795640640622071901991894358352757360129793003862985364961969415056152150552094546544739752716985910273242645371410205532941421149118016565130961160858833839648391006357464389810719697994001810909366411698410713282184946852070851922785432896024099061905370582161083030571258589976079280702024033430897469956404027786598456802586437762571906748867866176782567453961973097157015811863325638241428170920396457527566155639985276721294798338530015721467202327936790202785680044123472266730132970304422899881527999749927917601924939744858096853831135930685543206977207272116809004272925841329752816577553816031229476764257554061434326233338676297113044978809645675875765010081171365455713106959710627064595440811464998980784385223724652977014360722369609496950934989340849740442226717391289398364178410341773700605551402036518726170333132157990279641310790324888592321803921633573240535236917690201695700684725625614793021426928773231600451650770614944425145223625330615119884455253595855102557870981223415232179932820514063200742639731109665467322434121300199737168308009050362743761948279503952906455398340148234164474331000071933322556085042410561039183819714821372980438695240697917584712264756209495273950111955497643262898865583087086432760715562924405174987333329294802294970757237711899900157997308240908118166342702566430575086589885926722288853739507377991113914618228839308827867900817500455418259135416923719409988716471645532705289354885999308895258246901575086062759010686576870514934219718087125970666025509770849928797258488204536321128400891052135254552165316047223054189337899425022102302148702323099897409168690129898656005472910021518660734306548046328202591444444123068671294391556127726345377360597515038755830627087198513898562136741452044658178202848212832328468153472679014220661075039743641488686089730456714662868224355425532140396574997751699439987581134337296314066933941725551941008630179528651295278662294350005639063960439948901882174349525324476683689201832654595273045141813860196868922446566582007256129547485389333236142493050679297144152247594880798084965434389742492101590126844470299526746814246733633045042515442854304127653513210686508117369760264549433193481821296630308200354781894179536301870860296650085173047473094995052558528400053232788078592182137155101479975490350562455089371899775369528456283625403594436426547663422903248000996022400009445191226866633280417578253633388324764665869951805298085313648936616603204383047820886909190096687486046730832102655897109942308718349637207992491986602045856373045442281683998512291260478759203980326835890526717284369644241577423723459976896471362567938838990618117304350868444736158856667615196414553320305519298553982076212636174383723027770321635785942127342689381506061703254056162481970669234786961114288194990707199269721852029332602177403295796653274773431362127025618416956187529148606573347747138076242123839377734444221324034542403340507363252841751346956265969834283204891602087518208283347717214839163933025741271209251943442004024535780165376767333784631555278699023676520549294389378702573624594220811267994247458599400841611166654929859769599013064310832201355253969354999616731536053563844492856770636886350088052569166920111727346811049670101744275418750443830177231149103833518069554333502233046766180797240693664529537704493602209745000162905752653173037270980306127824872223208106129209874026034230407722857835198834027666474113118519443821974299727965451621084840629512785680761310601806967513492317451461961363482024566067898036762513526220234062986925122111972033363251670054312963063659599970032661702865578545716653676217858098247675812875996937472616471139275889765215669921333676370775290291017450757985793394216164499594645374577976042770849925641206039913415515418208135857167648943029706898626121211161458226586617574069640270781368183700577695131814044768810759861834076754343547988829788349152931705706837349877608213822757110013572179409271415558438345735692312955773045169338492724369425647266022992786254904591584357410061801253237946382753338955652256886829717171988381188817286269742104340383187636467805798912692507554141444828447197460893914158526437654105533010152700207808530873510556850483420959518507714146238001405929582543630343451969468334643570541844125766696306042256949602673803006021405647889306204407747680341142984558309809930971206999824993093701434417108011197032833784286467187395861594905010610681303547610109164774839843817525073790214955987918406252419408425558878127725279882879986983818871497978258221741551656472015560672351881350178189718178124834696400997210758836601903380496093499513992428115829471259284934391404844789588305025675111856523596330779490691441455831145107249388664900736373335343803777441191502668749148508615207377554700918942939744620973259204801198087375171637488553927083724872358498381068747219313278814094933874350364330500706920561321533142288172004539819336670569695950293764792457034630004157484879541407492603863441924522954813065292852423650147065136840371852904118598270713039433147780446839580045191089895298476086559209582315909618656430072579391804349598935279370790401837462874518266597681349977475430909691343760486286983652189436970836786239146700572277767989765417660751416615540812718722199512015863158393111952653539889747363510869423196228568048700663017203027211549910523398139513726866836228381657511389184767475042750843522964162092351362686312371428458193060122732532976871526697308936325668515596915023695624924500816701270154126837775158594741806249237326283442185232208261695628674105643956970343467167394622360663478010868199763192797624518829477050105200692811755563974142735891490570319858947882295481075129355873636258011896945160001262396424501652884332541307327227690682931720547396105772460103481441172753088915035445673165470752459241842176707215055607935418773340665553956379971177533267503730283965048901620140612319361721471209897098692051572754592322221803502370394677102575888690164424883616742536107545819802724481959053451585858411534995078678444219489157063526223089144390865414876487821017605233765388271395654772309059015154548842510806719597796296611551900575089954927587620982102383622295734230508118756826444758063765683375966845102678405067618899270325769313233791058679371353873947949177946759865137349520980996393968990481447561468788750878732742350657761932110661998174903487231374318840658289164601362880328287876246735226654833001688468909336855749767881256499994455661099426691392472899814430196287750439432663325267365650097715283976601287289952952020627019217802194420846595308126390394234197712345319249794257045350551811826167699999452977573145680093421227033632387466877644561538927409104151074848103189618495306555637757893726723819767588296429467554983847891950155577685361769748815774214897186492419421358072701945143633988439442594160718522022444956178944497055334570696093784719249542678865343113449965533725486230236514482547838836183851874888312934726760148789512599356916237041971291498840626245160957844878481962036818714387370805126717206457310115958377866712037436304406857488523981898696747525407203212066173664734185539318435702394924550261784338424322204240568248903833748769247241987155238872981516277120285328309232481745226344356586270431874834512082786682492533954772605247388531479633151388481584631713456425827483406982375168563735812302314471721471611614231785147159514158857919531458971673659639150303692628004899380497206245245569464186134420375655120872392157934667739196504494120130083723040966560373802572737656231866111100012472828292389781463680834860516186583974284471460047268876337946586914602385285489941232311759967220118812009368794425169348901608386031967229951291067176729497743517359289175621221298378499175513175136089000415409163926497059249955290098582100396582016280559718883227170118770591647771302883603068932614952577925804599020925142678197365403414748418545961575977319042831331954370026613480182883376270364280693068119367446530969064290789467943737070298446088077639401224646469238988762905841529161679628448071856335580696818474154160663856694046588510525049930895619498914616242512403453120673954782637659640631373685408986284275797492798084404964990327316377354003543246618065184646160431387486811662689564582069325052019972754435166105840329856470561562785503588501031802062533465473061134387120567765360773711123625676143629220872257790810211644930484211829057582430500707888958190483869995956556747942697349414762378468287882837781679471790109022079817541679068183306653910901791197594957158567200451003521950197194972250499297922098889039171866426189396736728262459921806313411432629001257719992366707317682517832921322918005998589243220743523012637880029630088077889515925236376812727525444701591011938641086864274235727819954182172523021778959535614679325505918736962109044715392643986085048977383547063501986054114891239021009898455463760234062052389978567232020817882988370327870916005909138323549146451724085372559549789445674255266903471429965001946104158305125665945122967283048833826669829486347728422154925834672657055364458232485097491684035577600964100979466977267174510200215718287728114784696329871438853198390707499559969324066952424880686713202443955035155259381266558182692467011970044655008961829985285245361781964109351474819090765387182675230504806953005228747297894612120790343453752963660641109271196986031384562335883604883640947120140063059905976427899196055634760259648706298958561585246975602017899041111482243368923514033875579976638865868481798262678931389736682403211636678797420432762094890563177308418704094015815684823117182998886837635056711356182142288800516479120447609849987160490624344455560159568857298761218391322658024804777081954396701256186174175075210026151457114830002513017229376927653761645743402837910284859200986501517648292542461679936014192617995754247514458762675690532556645604848407048516149895396242838164379016606489568645975249396646729237148472962041618682480846013128909054488938238289719332465454921610429251527229945960994862732252817463278307147075052505858905663038474484812106976233421703990329596951873767887327454143192476810962084542496046320720165418229828721753519297694115704212823688393080840938811933412322479028952063078352134767689158508315043198322967580532592119638248629426613120701529368016648633336049688744440566652802182150728894166946326408856495667980399949455789282372230752391467425897271398328785091926581839710976385134771425364313800206347636519811271313466480333949563730602896831652035820064829821766160981339935151536854002771560329885071038864117202824430945946507385970118557437085360674801858194010982298228841155154890059216012384343111829418764030756728490315991801636016729970573120048486554372258825512814024903584330537257344895664381434616247294640020748773602687541586178606855448474109413158093598509408621570778930600346875018124241204862251688933891872130850708934153395797471350144186219765534233855538293283305934772869011754440276064947267890129142243730465060234784431453021356841140214506959284292868053201283548404577381766969194284222678893740565201538735497503523405167991153754238248466015039171490659598413567165315718248434600528733039006147599954256626484214312028914254579691550304848523249686003654323078571778672523500713423627223226534297197221525897925951404682723553187876816170725965443129894725845942271900729935104160422266589470767479119993977877486844961297653604016172586646086777873792927313229667102652784927518885113912739935229555092956827312066940994977228515074614349246126255886184370627716157378039419259715395360864089153409493322490725999246947642393880470047760873189366083728986518749327053302829711140258902382293496237834794565280992787406779307311829462708553289038327998551747123436028003618767229128248110233991684275384766394975771250416255669773453819304102964400584383176789764158790492854494458093496009158117654900136569354538761561877626393994881282894366869700823396732561891486990875394402265582655003897233961606059972114622073224162622389536181025554062528918400428532809853583876730442288719308648108912913649941168538732251787983973366286279760908663992993251207105818477836653494033473207817237686746494633086365383959098586072394045733994535845588750520607199802726846606044929187247430293589233994369680816267822780171170980608179810185685405521574235572081821415921977065840840994280835365471418396245051900609030444105008439141394318173957993660931746352289822819886456250217346009932381584512376103107331212154457367363755269964841672884211878761052930030255638004816803407026479442551266908748414909582229915005673467186250699794141303585648249844499770881216081270607261540856143748963165070770088003940241143155059380988456803194735427364845668718833817406288842786096882089026359027333528972560293065273650260288903935974708757586932480462194243235919726416399708922097310986968458217279604231540690468050217768124247181066103346579407886969790177108486963698650463142331160284649251713163103443285947322000732221665538609226136647612309493109049325135417206320133054034565841336700506367989240129587292389165889295850271782431959847084628211373456236629154896236733972290593677796332998077572053851132481999630088135999583846702842105317568638580770592139202552721250525915269495827319349320244829566543257553999732775457620050116131537784649346316432364735616368166787682836546675772543440303015713229601429612796473116185827395107175608501120211854428361116157757939276208212291616883627476866306452816108004226606472270653893571984079423096325062516439103907126225477479644351283251874619650367124977671642031125609617898168191472504436576086675502637568705504539277974886411865864445975676535086433813233410545803368153428196870589428113916810788440395929449160750793032250075413567785595813518394242150446555402535061866495291136618581443846059108603274197115944451366769264204689388078004934617612413821042235320242376121902995003957546576722735564076299919912340787375203767494575559063980960037403127792815512193283789590523339036598687578533754044020332925708424810105180453217551728730427511983118582411307436873807277819584544478771430861143755641297907369698343157920464215849769935850890509591681976735309080557961304231531090206759405350858500387780441070872921806343563007368344569616175212868401341928633724776866787956681518857699593360050012027925971525318776195289233545756090569506501078768347601525387813302712752382356241811641074417735003186854396869141824345328917658168061837846561020005783370327598538749693569780110673355850007347799347609579625698428466500379628852451945539651820155404771895142699389349657321590529210304838999657085735791982600087564122087759659062438252058387850505951032271111098513484482826805818996720371238379255602240779786622722411818696928758776273015751673924799896718346760614569799908783104421701696924361679968401868074947048257274119453839431554381979837727070154551571140301494265216627028484087199658527324301073158543679806027094739730862703427786208065483932361113806798453265037230450771207179900684400919077720027829588103941022074961219625266387610752314351537334021746192045516824872206134359412487992989047261090500727190029613852053921856871076059606755015153990137647930952054249534478599337444193532753095862726634335626021502672795978123219143009244676302797045874627165261246478541661898372518568388029764869746614838819046815720883911176402087166044717857889558814343192279512669173886324906893535639896695297140469653114694917875414643457290358707288710939559769202742994353780818884447730451445376757143860458955585933941451921610698227350181445929748488262125489368736755591430148778089372250528938844732835432628494454319172908989211637518683064634800922731027713980461773044726634844425330641044032260510886746831189889763814085543281830710416687610248366092545339281458601343251382274635967839801036411688335995980175077362727196055718124815258700292420348346601493269286454413868713626913617947144362664848102762047458324909013801138455630120964148251902955787353748764615289249226093451547324020523573643396047731588712428411952857303490242825706650894833042034340809146715981966947138026090627780649031763334433173149023418016131285705170820164936414831721976765446036068339744980933436857487382383883441998026573728006249993999590625092691107177333613353663149754738213494436555751996265968058515078175795729469631114086467932588419116560898343788761359697622297127403350479893183973889069794531926206973864174842448969008047927075067021038457965051164918558813100291252976606148129748555656237002267566312434392367202338545842924169405703194664537195291623824145130121509445864398817399871752609146300726140005389823444482789235127897807394014031665868984160686374396824687295514039361214089152061762131661768537511615997663824761887061434777901341035630782614607973364820023480422115468687524922535140897185504142463531801964165663906328506524835647952301938847251403146467384332952413471432414160733481955630119498418238030623644752571656311416035245338642800655186655894944489341438581112306963393701431909950978333776582590729063186108788963567618831173402775948286191077134534248982742750317350607102755186351934629524072179354880355590282907998475959719600987602749937799242558115711559935695152431326441686513814854780029934805287193334095480465529589379889259294082051593371243778742147568318072891219744385699531646957282842182265200319466778120496538679450080132434592798884922160486896330971353260669317341867901263771620539373436354507551178227586479010930710404641969454556357328010645920222634037847202296758285980591641475913115182516502714697795844030397737465323449876586630423102103406125869029536988212739457208959056655613509193392970371060296061196438360055684264768234639572260389919921677578110928780959485094875626573205196959296800721907209452258333084870471133113517489535600622176581602890093422101253539577758175393569073665899452092889191817564174549699358306781970637877780311114439608298961349021418070289577122145788189334340174457183974342424280799760857333096058914459012473146843975930701191356873839949479784193100256706014199372875530833707928698519722088235068654919666705501237380327717708244088267231978098134739515883026882740284856194702997010127661923723262544023483844886032191851006867039164461881120882438693568887347424493178120932489528848394130874024185714280793942362083875733727372597656687776035474029410818902762900090724187833402692431749776899488085446477500144648991751660902780356448094630089878181003256126067597562114170898440237102330470748780839636233037313749392177489197639641490606027472137950376603621503442353083340740496301446841367146928126464439161444775435965626715756956949778063879296458957746389896395279373169823838830722605873100579608019206236586132333338640811624241746748160265646851520585775148788024567732040248957860385256342199866857794156867372612647537488985819922429178403001347014878791024273356570578468330413266248318960467539046327521406055799013636901567249223370868013301640215233917559665230073990989913971801140354258429181669585160594510036946183791086208146713705487224621558277582222405388883547573196573198494953278556800255395639146696941205267625223565191150808226090618840158933692590052046460472354090609828288922258015665652929770445249264770780256976378572519071116916223193418436354383853331206193320802133188786547996731741920570873863678701853880819054630286000250176518311682693422320718319286549804797150254147122863902838775908810218350167505860912064320801105732918206080590911635633726510301598662625389961041704132727059203919607779181678216965049632948339057333805835070235789901872746234283427005031230364622793461637998981597403704186182994905629669177541069003679650610506836614578441753959538310640392124456894623124600279124228874763196913467698268990432223092109291830781036709058988563651733142805365641400624492904391982766842543170140959624057109711720571101621338003682069411250133654155004160780003113392022385852819286593768523147075451745561162381863471609601484494024635138450446960590003773970557368575615408535868933442297158954811891587876546665155444677269721634214520554854134272663197782895239564427542970506318275924139595760181176661192273785986872085262674303401140966540205471770209484869088971475208320406174578519729593239796748414612764965861369191104852748592430347825997339022752496947066327167907795449944733503329317710606368741582645852895489188601961301121714288759967160323534368736734897445070147775026283575363527230645497367511553933752651705070403262818053130681893820128728128173278541717915900338535463460023711201626807279946246042674406049841128227812860621555597607412814199436466610378674606507609553963837572025056357087503613863018927709316962596111770603250660510238669756665731897674004381218411685508205941627311806836612192656098037823069603191746281498672931440528028773476575345241638881451828035495975739993902198911419422443110209179913974671448562982298559446702632073506809352730492469437998739396963663856298981791120058302367780731619567423309353242127480250434118196885122442002843919871380232079776147110140899973260488396474552080746685968733978483774130020817190269046878663368858435331315877722778768634078971644611932000443025279091670985711841231471107950778340041429738297314573524893522049231401820531637420873694093740730036055866454396802094420802868845277350032321933696928193775573015142410460620662878361650314720802698941268767057288368472193283650870396843981141576989885569032332912234165838836452406112247612326165137379671992880255332044762899359022696447908830023978118480436409661900073834997155770732387492602825141218492938119990016630973354869282349060078209520241439798094723429358889409103362851661226791406289133038539879919848778182708138563517279429051778865963619702440800016096222276195815528046461230953369081806478526806633702848834412032516490697553625204942117075463343046335363762534097858352118510323847185122086705839329488615800246158629460173674678306984122148797698143032473782503667932567206394540089016177623210495373060475743870728244329129624250449510813811642293044782728437383348373623733411507662559640567645496976352278465224517133207721288949655675403538348715103992814553994393911003784972339477003477213046890025655811780566732880226563097922654733992347328946245968171653346957479532079725180709404111136487102816908260003368201282951955098798304556928959636294213315953838206206325329969402891472032866888190612004390484620959312272641568971688755962849208848806038069869219004063507709944274112104857864215522027879762215036919684669584500971395717495110992681778618138470068398453993652909193297110607434959170520818480352327226777721532985196932790887320574551465822086095988702374293540703937629604584416903027332761605158097625677566724941535288221954339810038680806243216169846997151601328264201511706136512468000686775860511719849130550436198383398917998151239110896580223800046646246913167748263735485188969777990504843015098019417855938461109444927576551093720119402147728136327753491938705469146977821703340614568763816951159605051747351731966163620557304346410507627292731778691929171847346834505394673057291186826658511965589583092569060184816289006396817307868786691400732903894678687382226631116424435956607899836378455923825202366921510718076863171077922731353501499621902809565587730204860922404649482313259928272622276565751497440712334463010512309688720384712467611517060314071205778312331129120167666432796661909630857578289055821136735818730395447898905889799098408810944011480172204569375207356658742804595587247352295267063586181753883846123349363796451559505547839073592866316985964226543760994620578195457279303663789009258853210271773863408459329338225530487124851184490446634577850796029616186091391308063534670318385023685412489932323672962729198471237019355439566470490448746527596618338461099509937488409375367123700913174825330437799545803701178973070764618799816867612073172121807953735163414819830166434754352964266473012811832976348874422635750521796819737902711654195871370276723161147169457060182602342664968301397588332138946994869709032307085548438013013392228561516163596472611889695352338000539858020585776130372860760691594278098850940601724200187292023878843917198686644901413805515345830369454723273084952807295908750203482930989937053044814087889335578274948133818615788717082591012141099669415599300488373316255344225064459306897279735664725341611340096521057989198149260140056854383907647054570465342189428896398114304625256861874669407520231611523179110885230312771952473468112233447734956078022585617962053083393507629343089571125207246100320704279964860494282530627314489042616394023736581669817808523856788360921047056879274477296185893614168140347245631470886618577835196741521039446922051284576805580619810818982999972044399891747156476087313334203915204335310989669689665065494435985733725862467413487168616634114355471800159394668348788860757950686220567650737480446584154226529849764809081967495713447755850540021598633379520372089894874783611972483015555582032915223678103135118977570542511217702020582402432732824844586497475264384946750396772372551363343442717565406068810135669431062492297805503170352091832928612716512008289341813502275361521683892011014587310613994268703043954602335974390954295524579152077162781549627496561782738183507136260938245116455027045155409969369948408727906439297850294824227224363807414414711513916787416905380388448240524967945574382410202514972134795926705134075987990810246129716083166853044824752669230270957557966155574711740721784791544114092872597944201927799002647550663361637223219523985682242985990732061698960279777994033084626681995821188250007731664088324812987728363887828547691988351698288313074091643411875226086143082567043955320861197401219387587789020758537645576716811031070974019150609652649331925595229998757843435850638153500271769249833451793158036262205500262206192619027792168301877148095404836636486260969108861816067259906372682257356093080464117726101421703842355536159135467698589048194451537171858130618318684587319646840903901834382570511805618204263079852185206001098662684104810342596891834387176454600885145659245780525876965773832651187508674273252447291412983767512193749252634689957151046494262983939404738301297981726441485107572040383773359349992443904063583508975143543924167661021317545323599027397310990366473021053867705724811714348941786777086365483271517662495396099840488101401950522210354756913681941360180293766772638190014179149024701326513533788876927298198070765862427195273823119166421875200854796435129215781283613213720101729711899219367133979663204051042839541402619662612061465700855012274489886783183538968955082650412549596253823765858049756919621582883134972329231391558815311029095344547163199977370964322062761865475857956887737271177002438650721014877678353232412976135090109848458199420938187406919434620161665176941261621462321008691418671761722879388880037615051833016124533816470179307901710049332111726381498423965896948627409852195133574646045233041353773160877951394090556010063768722248028397250557550151061009314545349687068047666635594862963958249515879572635327628780515037708236368014144488376591189735163656686732115179115986743937657723038485361265565712430481421782506165720467337283323633559232920790881107453532215211576374681770456460353288856808680699293193284647634514518321443748914144991074477458976619128132489721662823318312735360275840692860330696229062713012782317427785605391774373667931554699561609670375745289547358794217504982852047121841341112637708932930985807134154961971110438093315074780320668055187004156180224103430063414789778471535724161096307781471798622586572554548995511540251579322477556074174686963173287791016920183280645685746143714712812885914372582250422881143296071513979719879763652090437763543450268550770648050175574401863321230441025012763227809381165019657708208574021236302843683293537804288459769287331994257807951337934751909287638930853263653954231944779434040787357912260622177356748205125347445089531334642054320472844126586844005330436512200952827648609803902620471049858204467433110849615163532373377649923640451902398592130585858887598562808390523527558743745031584957627991280797332956324268477862895067338681405647808559352138778124869952982099337526502739557180701368765603864957465805583788292731952467189204170792744461149519584780843247192121457094208622292095804502932039809424511996586911435324645866297872197300937030369660036267397297475607573522729432740626632276030186652713656861157779562954692652062733059918327907341859117633653593243741885947007292858035390123218252660916694684701208045997524873621337507927291984156061662841018815858405774038936428254366380174345679037441735061383117850718881763780575506547365935935794977032878053060007463486392704373413843353604731245161967334265811146441179355519101197494148186965321957144370196768868166445305232556943115159271353913860429507785108168409724767541124647932444148730927627361782530884312650520569422541771913358033089610416283709675953452517909612622790853130798781104816352586119951598233133705814603247751037495657029245467525817234464646018909017592516730231988117528690673763309232471538773351119480500690882436745725224220964918966140207568754996889083385262471530688385390067385196599597612473895870334524357937082621674237463959197797666258092104709792629475564406423179784376542798879168952177218927182855298141516576044375773973684533465421102181935391606274475608599365750180525229675294845335371863890414800939177915945787365447942690565205496450718576136406711340271676054087795698802655466488705359106083415665819362178300636635780705569958872504886108672278911635648789125900877600949156627984552637929107121354468886875378027807139853292358137440232988662262538913635867179202043551713928628060343915445340722281892893811076204900424767118740279920573476895541371891004984311219687860140778045332260641490045536178320883442156968858838475946122108321055310684274339485485844434378201065400756898294341552102069146351338262627820972177806429619342878213027685271984099602994955799456049871972084527227420151046607732495139047895187039148028995441871238450084361758631570671153691594001690034469165715892062990112720428888466206176430770204837244507661524018734065153032057108710042806255592257869264327220309736034398558436574548008400108651492308431102246551423440116106817781209516299103968466870312453031045157927677800160867057311273857440027208574754672551476403153372064233930801353760345980937627607011612043124880052944837502774818555362868489848747556283027645629626805322576772246245431979547101323339684998879460381114724975981608338925134086524645158263447994459071248421521016122322510963980629803222906664955642046524375919106624310040469607176571344471402988376854938462944147018615553130193258622596499904977212257315231244495964659250252240292515726059710635171713921817537481772477102942318256286253075879342615050314933977893732257303950371926914738946972697629125169510891049139866615201491062062360507865768821833431702709495558778966002328722309309525886395891945183618361766066944677042060741429734196960519459161575653815545718673847917208196194150926999679272130915250139378894476685060801498513843239319448724458497037745223396148184288163799938432308459429814116184417461423490458156229567614369843699929097226762443624678647759101217637215308995224518072800490346976774785323349809277624245666036869518189625379878135895123046527473630690580021125246474963369656795862309235796098178761470746085455299595748925841903382746461782509941221863505978280150427159984892950254494606614739703333432397914731260209538711708812927121458186522041219837643027595605352026806800753652694226692183189512609222123579689012158610294515545368926452796927548632755741745552921687596057893935059434085403860452619346524584224994574669102562636502086531288975456534460838942837322995786326051248113090428858224478629174258676742869889737073674275734603144477524745689660226583373044304215403774978025509355445041925920305950047132507628894316979199907187210897993704326409664086743446560283988509490406485732843764484871429812995583434070021269342237117818543197118395536403679179252700297250012497434179816996632577545380902013316769052976765000314152223034981928298014320090080818189403920668335427015121814882296568211991311021445806960825777650389422832364061953067600644461729249427259772037205236116380434210714036465200678735496166904825901037625679138354458237010197337158401838430954548118937003810377290613601276384116142198735369850462644492052904136187645826615001738437190313455282259226760286591725197470824744590140747827687785905497094760534858013294284774318053476281109003765715012891594597698774744968825208232973426796683156562894861266788359696219857526373033326760821481477731741056984814139105996250798235061164149579298865494495858504571775773498300902517229297084668842818168361589791695907696763768448186496221411160020014542759418562722917761557868284121902845449169866652748481730984430248353343027077565430499388425752305243737006702867166861603093108583329348125463728192210868897621915757737152186411718628821705171084383029758338615528286931808455985791455167816749080225537714462660130264689920529365613404167671971294117033012142008004780119120299991770688107886086176896129593920370391425905760120785214963156159836819873888904400244037496225557171419141203179329228031658307156208259610063348217868954149212759959159322327276842556725168863253271783180868165954076360901479787917788103184497294113501254725843384440156863407129332329254670345652803054498372669184726942762042859225616832671971986701277346834857511145364287337612985079100650968021381902233754949623069558289747182734302300734630135842059086603181732791721013240017305740222391239045093512215575063998222385899737057977883835404778345381325375889663633922168628170126559107079999398236002064686167445750704869073473432490330463451245236159970444979161351163058424879079742441952868480278172275772287419574379895967729389989502537155730565970389235192288900239244322667113302540109013024677121878121547012399288240077569923970913847444438319665526609417558186907340960287959855599902638051152039717515021532510222285437280638306216511549947941301632219542345202302110798909525279291043448334706648915287303195891704710878145758589972568694647606619761366463387036709824916554263564633013466425414666699072276426688565848355327614797187523023183110117135705044544568924290744677578345101439617646289169088831155639997560369645519474252152661616607586749219960425599769556483258278598853076033374994302118089322499572626776599623216886926787903525749461794105865305700782030715893315089567211161843663039836161005819785415143434178118696787065283636735356139441916120944302070129174740441416109384885541524985807150642844552263170665073084728200224251358223854124398327075893947288667128720651814246753773359499201397907773106200969883124210971463893233482746718541267825359580548225063942873671504004124800066240250259734264452249909297276788141414383310303297841756727710650440732364438663024616286400485498606079991966710272619956138423678437409624171487878844632896929757959788863692619982039237856757320358913458028204551283259270890707340583338688632804989738603123401164901845511976519321806888435145422026561823021864905556834471196380709626698989079202788376391043417269752392057479805119726197501226327888843779139774099572165672914809948990329296319286163563335283266058484195300062687193232113450356103835344400939871249371762517488977578912126682326507399667860468913126476760648494718735565532772738083734075605239401109844251001046447709844967373449176235419658466871600557350118759370125605681978087602907816178207401840370333921164604243840982009998301380632038055350835469807678899429443319194981333145305214228669568804528083055613618179138074362520363174246693709080358193739317935490016478874953476896990377146675230968037290826746194711563161167326647550149124745583667079272084049179757716468270572402210089689989986678931051705293253908181477226245291338008077408036588535436912810704128388432637863083758534941936864067932427798073951024908780197204589249790047545774401729849160225067638983041044791370059610952652443269659990038392852764232800167502757101623603473606508388361876868618927659379708665550057477242824851308488812682991978213538607800472571052693069466758820123435017353325214626723562593067586638885963799872489450694279137740710426635483925251745685908968919659445092623459184936634947857013021548446500253360412695891738509612791060263752969006089614504350792989763609031486900122305774443887630190351627905535595141999320613740697694382088257272192954833981345928151450190335632583354021341000432917083443716134301151975652342390274160834943243905684439581007575922652987709531767945973540384430747301850382957005912658954175259624162163335516322772319029795575626809295280371128178755288855529160968668247657081600734720859046095553729974143972973948970561339616054797145527194047565491970635064918613041802808155148489909101269425397989809073566557964932705959689717490148969736757292509980227096052960366389033273544843811329208621505797455169086654499305235891565976144143231327130205704019092229359230960504104892537685367037338674871209429559667442755732243120539789955885724091951132149231547253163335939531040327948226329948406355973745753419383861304672368470324663273983624886545385784511670957807941657414570466371380170806471735833449043525436525731849562702191327449423366776715368067759477605292162591393017372447952331523847862627527249493543664252972726996292587362708476334592621089445546741764690188854551861501354236083849629132696812416718376283344330102194925521246006758970632012805900262836932212234356014651106028999798635343669499243338564200723547468332495030394411513198804459613623560291959039001947114800579886675450627232187612312648774376914029716076422157810436323948414347934600822196506136223609560192112707134949123543207220978062151522922720794653843926396503337054288202428696918080219895648477941263506535246672617275942948706834476552925187960839193926136045160120024701607078312944360658667264550887439946551622626447845369309051234004441695244818100918584783199915762059549974472374968230794312139974791155014341144926270827721686449973952071031570934507265550162266017966803404454288226828332524526590673700578618314077617572635962782261117166213599909140699550131057025306257980191155031591859518004043311725219361985451510634911759734802514567225800593272616227731402157959420845340988677475829408385993624790645600108797793088707378491190357592976947861263746428415564691323222686221737514567839596034806305240059617120769431804133573258440725789078244149699180889035292579776481350996918962674973393629550403890321935329191706301724063242789594939403664358443459182371061664173779346763474077497850717674984067529284632485832996122225268580301385623308007665948045556792900421687726683297339090820829138344135556266551384645339526378797761197756025370357982838488038061981791478066032356867213891734927408382377222531083932183036098712777129218906262599384925723393149463951071549023047658121730925058391463985175956222333667510409515186586812908493374984596082022129096319082375713802453850505617071594749292157051192439082747447715773267596942199375398760566314660308317226453594727316623554496959374859521298652111033632192903779087469079942381624479947051927631545407222466145593403936092146685965395474777155393286821245961129360148313268615074744407574544401708016965312654712663741941377159221842675916718076773395311773444191015438305691813941441051687071951986858090047812568890145600958284598755818400692938987004673524584894538636008519734263350283600156137322931654196848661123148899233549310961168986328140109173738253687486787050851404366932067916259670415418406147232469296839959537777687119332167413537965688853268720139534063823982489988058271408223710733607880439132358522582306727066401165296614234383966741305667720904331160891797649728216853464286197627118422041677483112431220560094463463123937997736403469807718955073839688640533498011464187048327355610272235152218453454524162862275478215102118940659989866035742238977087398782008867704914763819990829929859799826479704726118966444363088724987283052940767787654470221748637025616870756344448259723340232758895721049279899199861733581388329306486899194936237566709114020025853570590826626808116350487320026565508365254744134943607887804558201792227131686678617354437492624993741421167089798493938850081842908059038403055368698062905081925229341093371030794963065024898712368404153921667540062506589185107600979334766394897690644099057251415357137838153031467857951917468458428420875168945164573544781917773084217636356717207170188693759972889550906532708641502050665143900605904561430970497627729354693299861189563055424246683882349201557014725864803045570765061370540025774037590034035062772607464103853654549462060493781143777054218637989174038476014664202970981158203319639924586735044923872867934013606560440928831762398096060811192873423214369021796602318155108909211874013922599434339012966974088762320920952746797129371087100761965814501657706923620123500148383620158688888800787985389284586776803363569524179917090096649194512554662235726228840108401378965810463821434487629617797095929316192686563786681475385531258015310401734076913524989259393119413620594518355219176188804675702260560432506894637631711692683695844767496973546624642106774730050295682648883873536052882657800627262561097824478937292383268953908342511667694748566667834582553493852036643323636381523070663279974117538673578914945472700199227467660306862371385799194132179792386530926807747369870720046361393858281259569085510904453093426245863056081057642097549443245380290730937842920227708398901578782755442680752864754645233761183873836009735831311063609756169260120552074905057911915730470753042491123123941614618050670638869989426463878000108892758592792823182713063462251771300581475007294087669196209788619383896796169245653699365952361254084234461055215779959506184711355231681979110957848671356019547889406975903032567189536129197100376435103164768637111997730608785292659127392478835209883823195152227851731574663134605141470806708805747027882428240621153540621682283880068641571173143924849787186724667625592133769065138168588704476301230638480517605005598556071279253908236839099566955762702290543994009492979972912176607258750329164541155377319659866420775169405505750971849944890976699886025848739552728775453573481369663052915914305095969881246641993784631481903118479641167380305593368714017572298189337561319474276582473265862266977985479647741035558496261235597203341158619918413280889653692133538185697517236187469947187742829616446924727285251837374900921830276205604621929297534848288940077673852886430150754563219231398939179730011952816439857125491037221390375195099095323316538695342801090046642634930548805340735541082808396052454871572902174991176622956471818474102089442317912211636311454801479811587834724318158436533026156784762506301441859095866283218277954559943579417572452337816668956792100840977075990954183757347078103501691096183581304449866098427353477584410020906317099398110381008761098710452069502886023035246488032603573800841573325201235612087979337085922665869051546367449706926814915947476383585039738222817209936362873301085389603850764773143450581428490199357265775974711038478327631654745384973094349516410095342703805427816845175723961125483838299239893420286225585061401428953353058391017893212355434152324326390433109070436508213186174187346777025381554083798051353012046475069555904691719669011898877469586513770335789293405039277652292976867432488527899951442611681634242189540697319698065830108473334543529313003172491322225679463547611437067842035729421991391937368209379109388350219768501221479883891634718111058166422515886022188647327372040260315618758037633271214861396235807041491798028330230396649421858105525980362518727182101391754375416604674318820975854188792476459368022073514003677445936547404441268691933185252771202912776516718735527073582623452187061798022591175756739091054239369015548147842248027824728390056216805920881856399621197887557382197058878352742021464800807896195666966661248748262037837690548463601437408686402566122612905658139866031700692999997159702244277522345772847947332833915256814436500243931824745475831780281661231426224673640256247998001056722928651972884717936161560729347532140147860303956260671077973832830920103328525931547633768451705667353591439138498516749784235353805200314401084794263375432377872689049255522388486810305468416808107657077077996637628281913304320641875321874551900235402852235704776959641516256082994476901323938769452750831168186506311600901273579369891089089393626010469127029195956491176924205357164262604468679431256066328972195258579781498151688750655123330961811833107668988988419671430645833403344194168711897649221291148686265103958967996405244502006516091906575362406491201506253080324597288429963102097442357963410907765237774656324605599352664895561102982489380123044203452208482840095692632787198127577951792767794097935917304486485036269305713599857361405997785807598804739439557209715837800683822773037870827815008523792489839870128374806785139424802100993754796694879355226403071819628347344512241657721819154070215918487228076831875679104294360155818494911027612996526818253621402941672959585565730817172318593013270087706857438530413254240168688963638201789465152961549938328147911037524460432336809681863094286175532100398461764307546783912176445004102707212900426002093989341567654936038390083345346691451943182418762742086898293956762330817025377737050963316867363156710104149740395564563621657001761860007415384818375024575595937809371040799895899893704695901255928382056728661958365709647547386473506271314015807401061874694246889254924054745728861961402214229266213552847453361860654734085434412177447854075879555661803089562800370609631790110344680294577607148395299966946993353238439746607119244488553950138384143194691433609630438173109043627675415408454254918759613070175128198311130782620079667299949167679043935278476176407832909634073835607614777615276146425491211374229229832109531544587263018899894610474992504576390689056560345474245088606527102125245247066114088656348043894899104513111776086851115093682153683838100616118635076531915375602932111338108100623537634163106011581901077685037494790423836028770762049537819369769289614001470951339407984073274089473259319003413290611345512410022995459818868525057906253132886001115097918548643058076899290752475240643640436489770170709615835228408423163447436991492793450201544263158826535221297420400847382117976066802072360271397107906222300668396730487681230213004115038904179786435725113391029929462648645801772461253048728845293582147376278482046299528179139759128967779645564796536629975763884792217536108161838878722871507296485320732558590765365160533671272483762819110144543583156012470382298498327818977613054239050102388810779206909528461864334379349238003775103238817934989820428872542184576935841360597608996679312286315105220646708378533542471253642969115775312381467570448614387680822510180522519097701637841878264820244517510114082831258357996641518421568783962752351067060432500839202980182949183672617969657066916625466783993101311432242954703461066808893786195822022223772788031100929130543618114216730852990887342181144744349614922995277322671494011817932608994126056783496750030217095317903180633753301729207743717191904916625363004386767401358976805704846633169300943465870050229107739527156398463030581194695753098062960988333370593312282511416758740551261506381082207031137884193518249501928582242848074070211942671113635487192640195835488639939964340853188695153743086228158391935815834827365037442088680703397353357982017557747618725790123420296025893244000148788374343492977833848594147093944069240666921284089174057128909547943923193161247836269689745668164692668025811300001898965281543758403984909122147813686408360520200644818145966885300258075304457202814835587762969977541437852057463166682734045822815805123553404411698909237034768571979958047025426839733378862556655986562800657966373487197345234613457735981032705004442984132306441437717525566643770646960737834156633107344327768242884608809702463199673412237384713228062030629290689214477036669703960212699251634295645041127129433122582278183060874989352884638895150691769375159314546745882050245704304832300561193676896027057398988787808223523062317738651045202135678837236536432023756496412044508422533648721446438745372490452501364443967673415951829573822356022201798912550422631745197605439020891937188798440527182705739520082310299803941872680753837441919392660874236553048898883421645826348226657535192833987070353374692949935494144867331220268743767384014284650683924689133904772431879258463108172767610076400533352942155990436324670613590033450157836356773616198258724354859999873697512535146057901500454548972342864516703289320212711368212977554737014567270443655553231393478845890683019304546847426003282662899236136848865950884328387989738712933935384097845723148758760794065129875431909080678958798496084906195844866533297553121347691166747081353548758217993162136417989730196220218306572341190331803274527060498455357015962929456501233875492890762833214073302414920700381340089925897997718071609161304917159689351175361192439955316146258119798205146878890120166304912270171214716432496189152868047502206562927512334963994766945710706707734963350037005001599907155357864145950032007111053206769398224241015021855571256421705792444777040994244289287711292862708261263648821541690524976087052182275615598792069998116883764055029132320317876754818492811826868996353241373189131480242505716790075222971967140078100501410574013835929174117452764981811541353326528807982586542667327029263950391929979697990886707650838602890966431638748031783531307908582618392172217710346456681676464713613726639912022157390711979402305133386756931863061835691421886404698927074018822677764713851478514861739917920421902609967904282846591728137850767681613746679779471941619933384782002257827306191856121526827176503387041758100377444511880796303582115726920779415620794161151461440287577190579329527231931329011104448608364724758607742040316535222294958510409277638051674241253171037257576326553949001149444253298684383056577587428621903908573880991667388541355896036557519188856362318737883502995027171244051133909277841222201613333789218833451693772669125679948789752068289527335724187330377361237958383536762862364049213846712417219861003728653332670083562481768710151923267010722944681680910034239403349618164027054721359404365812254185716670049774867709821336844639537553552281296118551961720510042301815383592256998072017125622401514763576516636487406382781674737764741655130411860827759581304838957677752707177924362144894613797637187911529693633192835489338968116471781693959696697382921423477502125533907767842042369180060370811347210458402025370692841039711238268510680685918956849621026645167776647461318313004821491532308159864217797882132093137202713318943437189648501141403829535390255729436866062980885282813511523879008634680695643619022411145884846228796432892187458362015608561748301848501456855402361695586644331543810487108529384742264097580061844006296391000823534389928813662640005445740836733118206060649078161429146090560623823109244587352047330849961068107140480062790474945086539543511098562503481198187910961470363427533132804287400695269131488483544183558582818983112054015835531356030308671191893038633785430287124645377993017053150114528768045955807812494814973340183626329443165374839957656896931082885010622145654826937448126099689800292124830779401404721159653158046121498104862723723835841118389901083156832198275660552705552600088279258080621818249893988568132831781548269632647565244714593198493719169884963917771663883217975234421985983916478632122198470239234351372150164422218205420345269659404755861156664291824700077117333801189112860991391427107311167353268722599106836046643230541667856031941786196518348547708648511450940129095409577164617348788129604945455527825166292127295688905307170989361856293460432725943201463803186407778167442303455720244009546826246164612441192085064077067806676426173957184825578866943336038179423079081912296100139812274967280206882152869199227026492211458278209833701185520568718224404776867146714456231212487281413152686061049127235145072431041449123832820970983713961118603656089214837137397406347395177986245103254998135000704528536979054471262223270760340406210663090643736327138180619842923086768998645164745996297660879299859993127410077236724544633610907814019508506670351221671558485229358222354405497722036208929704567721739177504367388919351301879756834407942717784173373278917101016501180607308932485995890609338799455561922740972115687485271068940261294010481684575782279010071545383532856465043971936235668535496550319109284027210139391270887199163604116735610774021362633916661782263017049362915033867385023309959499988409494896690550963352558620608894090223830762612196007984219632799806693629293360622893276310209038267083101093779854092463875586570501457263583221758738043728784068961931702783175787730501071871352036381390647870999430677624528995222954111780368941003370630916629758311831996951615369971513288917836317200933201600378583111859629577407555108969751622615071866247250783244066348085962997677091426381947161540078673548050872429092294795363731645272375966837463616757562390911394840257609162854866439438468720958243059577144620590088704211445712129966047109067796650622650151583855347149429939969590211264527458506855710507937770677391772834843682334324504941184293319756781095962785728029793815969317642681514308163285799638503271542828830364624419736232872100088120061637654016184292782824615466085391250789538456671299002940630335428347004696520712920629274217440044235615021302398991610961586154012685244603137561218273607286568735917121155253087392769361486775235769442380293470377416891662090967655981781061832148197406346553780429964319372828740247904066507977192518397334483231049764688733587909381389022542987412051556664807702295933253009398369893278872638120605047788065271439888138634391880315316127693461247870647827622878383419326033323679935545126964429250581230367533889371561244538381558391462330328784939364610091419093418190138335064483238506298641081962842248855223374810433356237155593287192448662362279686924717341453875556790448311697509855957154264318777431117021074933512163080601244241463517192900865594414266182525356098409228336696482152622212318214978652933991918964326728058189675966303259471090559369092674972854673515375982207669171036892251924111881242860388073681886825045130686956616438791019255604139658384753893386151421950201060574675875788969736892352058076309561949572752910216577334200631997038889419213639476180310507876323624482502342535247815038208165040837624075361540494649546461120484795123147917066676524575742072368516831070989793443613221184076306857212597681380529484029647309164993551379442082830231282129290127528797858501577468496796330857991299142384178438361885678406089619007035323329190010749765410117933283081083233389559355851760410482985398333685200723000956222141117245144720948914019590215121722491335472960857998386796167849707746428377607035484097665950778915521030503222815065931052326911141566804828472002894648654377318730942241912963554368961286454305109163845146634447376125285806864790510484755162233965959700628959420409610625420104896812305298913079895745740848741251746057822786971264969937660778713384447640446338642455146352691748637934467693870849922765584410533672761113591588709168060713005433677152519355921546587603939311225733145843136436001350622689738551027234783049827777396494545586121482557849332079875166971212291180874982700847081322965280995737400051364025857067379233894528979911066731283619408663436851695085571455526965113556598274953810337758089000574815072304241277622313775234513472261360292649732326473899289696320069491608585366606063729712562750890121188622311227431920318826391297558506718631637684815504192043621163276342739610768158030802039529226211585359126926200115101418833051242697230272707266946137936529229491595776426706873531441872467429364264611717410409971705793332360412734155048124185799914225712782669883123970914227819817640091591487953367988374046689020727376339189490847329156882288271237957164114043746036108137042807576978202059638727241888829853492868428651880572934019322295062461713827186816071779630459185678312286079870949744699985461547190432584931865366378744777159108985137201259480102694635716452409292961925722984270246441888075918230030658504197285898115241952672028835627706797854284312259798849590463003722174780758040041519485057754133041521550576030099693543509695232391858620003605926747072414482956226915299435380178413854825211461366009802913975666174371384672449079932226651687430325691686309463069139503866882517639648977716147284365106514820604101932208791606831727132338283955642666873470435713449222595158626309208878716448491007958982584991882086495512879107475398729388036222237090656077008038218456564634945523284258690159577057138989953933872439607871035794414576400292079743670674397980696973905315438244293986513430924699725132121388430991271910621193446727277815372919653968844347234725107699897232730727724450192824482541059872284975039244767750858915465034965911819248758737200399257075189419801002734388217106567801663840427703677322451565439829445525714596343980310311497620934060724438202117274025774621601592943394932063520499289980600237727916441556382099547845063360825552355958196564352647935729240194365083701918596138952181943697225060862819059094681874967940121139846519272623320059993123063873086669801063239868826372395032542116949705569577764234015023892212314910506468182608435543846596509841624092587515812397436868238177076137772127781194062702648762544461830031352311779720388450895065936877252762065069614270754188953052605945878571021932406445036494611826615056623242281083634956286891202842515179412960291897140419003538799659867406626049963443423970584406588537015359941021743061498489414902243817451935026428725094520632793495890148148841992851759717554932882158973403464963722261968202540102588030357079538843835916524296058250210873861722114582049668200128524009382662691169617697523653410848164973296971055414571448157707898241417064233444612659541538226877465796830158340629511545847546291069844965384047728312752327010400869103534247002080774785142665268179656340653378324459584599169726398331834779154378532568755118364574553749937712595234203479272475915275825408845599362887144013009439735675005249225980271538991287452243956822773939015310845067105278886157186519648575050663612596428309224832796576737645336296460291129615855389060017172708911930932705920102477256833914480455871723809796747949050117156979622485905442128362252005309207027892944509975980540246235290837322534099317930292597517062489980413910778901988301652080927677866466192894313127086619227663867126035014803226355121398561600265762351692944932882335274883172785022216732665804063564494395303791397869195614718929318644077794485294440258592352487897446261860112454209275143241495779867691630928471286729934323076558185061499954579300357482932158071820744868931380748656091410153800535326710259701116079312208137976072100766501689425205417402159612614581861730666889443071678815028636984411426936261337364228938935722002873358447994359485620581553923641927023483774973128156156112608718400987893310821297519230190461410983474781921413424507627793984322617406930299661254862398993523120198104706745726751731616527331759548428423579679842639172758319425637510033092353447713261191878384206557401216472457704547964526971821390486408817290064227136237991492762526346005275007472151920004733090172663469529490297998189634157071001536523954382671769145538903072421064970443995764756007607944512017148536638945886014590250574855681753487266609476184696484018509512320682139711217875284661874991819262222951395027304999787989688957532277084317312278663335083719356838284781660184446162162747789760378865275075668133922680459127291380691389348522746741259238797889134457210504446314422358772664674872287453471747362658027394862258532799680908006923888136129273621239644226453008854580242029286777722437905376973380878975552609860435697003050231933119823498816464767552074430956025396128158165769913523914011919888667114210475207580716438280894511884301861974746678497291536860159233065412472520087843400743572190865454686887052743630218761179431974649360396516781848794374989389546537842031238062689293737120203478646041118455794249394095203776020072737378196287399866115817562924680428870827925433241883820628037557208034870130269817619883379970012062185039433121599769768424817629227855328809453847522957478526597680343215387266696755032371054744474419519610026584325840744330028496523634198498298765160171718005315027133502236906978510686200720278669102193163868452906542039165577321998549816923051168392418871505194696382615847237679782910994010642516927279983754558940791581034810925472516946210377631465136995590539169990273906522869446092166724649615574800003883190477996827052801663008621123506123488705313339061616963572046171900201005184659648974296918475341447468575995590293016741250704840135232358810031708905626044935707351693764362592825001737927005424244356275765716770992467609775464889856870089863447364831847158965943323183401208498172730246827705280527054374166073444451410439310533945077526021456447553303188727209547526228792867113464657402605828241750009691755192550169795421911145541692543460843957223608099955775083434203903195508463460471120169277663024177992671499639288041485393647199866478813157195857927184463410525741575084315374355768752652965395176477863598353437556087253152099365486975794394591900111072328908054173368373227852211126317229719191378930570565978087528808573360909667992256172910328082144128091058213664587118182245647057390097171645373892424022289716294156259252551153290194285749534306781428239761536211839021228999884102002604148779679202653839368521461198290455896299766508388487295271779338150920400870402162829099489967020569421927614450485973216767311412605478006624788497968226679921916673968333381955336825533421826760189395044713748240148908351670385844881254195658401597245732952102378941316891822927388787462166819308173503516589709293355147383999868548333728329537457461578024787562292186712485730993499253482164038892719447715501576625183592933635685217871879846761792084544858590275316931277276864960496857198990215374786086577325051382816366580454265544476393172495644080966181595133072926228577036900587802513073269121556513608044944012009281415706857622361164528634982523007290799097272555587434148281317742601236152671547141989656143422272995836623304441417431684485945917793337070033712656673245295099296512004350625812194170979209625923598936138535657528880561916384445525299426158463353929222378545127930310540028326096609368231453525229495695593890977026962218897879747150775149065789096976950096497265957022633423343856956342025415892080180589659701926252539045737013327193214530042423722497083331680087540764024769811455415122389552830928294825185070574137414671165537064706190869242605223463960486532197812509332559591256363930851275135523279141948681054917685090132980126600559458898864652496584407730221271289025942580268671831567127150987233985135857746345191090367614019399297805559964346325903252237924896381718384074797310398791592280958291831050388662531966478445764024487200776695736886771616984361236946871140346404285349054849866934539981436134294713680535718021756981177712789970902229426212819449861618536473142278842988502697343353496543687160272689627362124121119950502376469644884375295909439155460532892573184889713335804374039010689444118427350173911282923447544812445879455391078538724276645886983766090736501380492221034819717626160627625798925841420837363117038282885080871451491209417034008108031526660212624245621321340006895103260381450680297913964114022759993175677131533566117223601157089700175877011392793532999520593235896895676895813269304507248868490854211618551532726467623324112852211346475813868039172890765172976267321745828424695861249838035006169085278227741015430063535399576108382085378956612241546259279167687692059710132871204666716253576549568612579269701387337082259841775394555413471386017811993369053406902033065084348213798571572138355946201324428834816737040328730229197698965307428442769369179476577817176929349854845118301529671607376764638836849626979709069264353585725242810234528250973849174257667594478195702988722806359552571583333650216808982100897433988578349547212127045612529767123231889052537444891459687910346402603757403971850177253653695481706136396705797028059684315582558882741123844621337182316484316878721828761407521337106038943166026434398554912373500328277131757407598851388853142462887350178380937349680246787267216032981988284672502632631063920018050535510118427441049179015025870838322661012167101294620294907704725362847794544623388699493884192977450275721533194069720282838559382920648663911153955150267339415359308024405926917679769452072234291396056538683390076390830517074814008484986782897473530306200412681574753021861138576470273206778005507042532388235917363954701000652705997437286804053130494703693964416940038733829092513767176344318832541722449370174184167863689997396133878450537657788451264609273947806246589438614716889791690336697282655872903444911134218740172224986087320988385687558077412444907510756741647646669650198835041986519719505562907510287763631885478236257667394426266716778646743332809422106976613106932657629190050416135425462934831139044297777378818367763419528251292183502126384289261086255131943245288386891961926423940404649220752993341906465126778227536950720530140997813663147744933419842042710158143473897052358766248961641055385337723043540734513039546286988559690764368923763043365563682767150015563346454653814341821025520400704697826648078208843329914522681147159239738300364533092491887572813372957161181860763545957540089394184116078183602638551596982033413505917139150727158907826004104774764906201486060838342278226758694970202049036798759860748008353470365400071278605828471841575583953420802823852298987396073572631518656877291857112162841249167080158717677941180884490704168282798905143483342109074571297082383666942299445743923114946407887922819968159445666907624023573716422991356766073396084704090739870155676106437964361603197200254193189882762010964842746197480844665149797349003476578519270042511592543386202515299639873324293107016299504054067124511093746900920540744020027285647029758479941554694873921864526880667663619068717895701754543362537978597486658589817927378724612718119871894693070887988709654428526895460317509175142211606210452132870325462961044176746697159201489077704678226121992413583988235564985192159618945744269664840253120604843501935856771470901064845475361479263266889547342576737486891097696650713255346585806817846709472571656674940241017688643661049476142612155601326911988591166225337163450625077475271014001934171031578591659921284809346632869624971468155151658591472057317503535838870833039343130709720210448531046831558433448545797287555058063537312423455398358613078385142353343939292343401159892752034404237988172012126254107163227629290483708158373306117580359966435173810941115075789661537464589231676981447766941352376587937203722283664579836784675921862925643675965996594103341281762448371266006407732816002484397789910849138089445218221471874835918727920210969821041312308161339098612388873996962490018026593967244176915510556052010000886684289418048763556150129049160742471968910837423127915540651855232164966467978517881174607801775215646088149936060072343099185570368914810954219097259517719645672144474639321617346485821311772558520492279535801333657092749474564295329333952625854140061148902675918314282115013251097298470462437536869703076791868281017245911183831965266489852524595753323551670888403238409496948348742684982746214559765411966594169965050765935131797041151087674081530111994461265642647117021198512350823125651040079737606069799016210140227429793552059226111945971403014714680757895472718267250405540504048188036769139869164379789785196177210164573708276002540149235416316540666614677467353399946257732757012332212710308974449322001447251940137228712738922444824366063756604441265172974010543018315965117169373586656477525211471908887943461971631993304308243099056559741096231884445148296585233589106725522375347526124819037522391615755047424934711004876737452675878362151311464079829879302352398299269259967944372117863420755779706511254539061299404077523949709152479778689527055931351125009392406225029225353220880618290947816612205323756738647053206857417075622780418654914863238599414088661319673738694653498506176119650356069835890107253417478555334375319741627383181309193303803752379172442610352828943643332791730871052650910775233258482237343450215486826980307746272337150999232033057401232600258068719099470324125331507205672091399666371569345953936796126145560913441832616120623898169792204815646403616935736513805050707457825651206567635114390712267340081642903447262922441538732517724640972573523136592230172872730247292552410631477341462864037736696262762452610504651432901707744172799465271759005020437764165911749396678658447932793438912851715269443441170530765158042880238017053891967621666003715846305640337627902483100061183293844654221981903423989912243998597472381416524919873206504100206902253595777173619370741328708524126907967690878513584524209247496607884855086884420687214109578106830518648643816180493666386650026231090845009960296757868533258137171865380150341994023584476167417387584995873312202509820025653637558870738394545373969551501999189062386850499896671522046994179071781553569630296812318044188699076610275553473777112097947477693032718059582382815397072397238605357595434672507236166006986359403722908943930453429182379153840343104204490281735725954285890512800809986133241819677803814746261579563682361326164536299883339343375679218004053593344112887851872061469414722186905701314161457653102883027350048801162010404512132344140447458851017886867494081966422556809539885348746531127653107104313167522418991155430679702638612668746287551025610090688619950774800886595694448565053516309845775828667886086224432551757631929451787038625323932366501878946468678193766726947036938887874202415621894735236158666158405657174441949258778944424988161406251276162257854169105968698869711270475121385078297382940292073255111671611779513662010468366776085648313961715695528040514754150220975147230767988257508459766733109155224443504061862348257921085483674515993372143792450693140835590058590044925744509125643806576974031706684280723787575714468261331294988499718595213322163623216870427348419170371050161160769841917246879670180103556779411215081028047072087988496318655268138557384943777404715616422019628914201819125109365484098770621353629014367204650955412533162486557127131635298571798749517716997842401671562098818334909543664277996960069051212177858680456155668021172205903557181505044572634949007398533167980892081865364035208554275203694264524758606332471397483606933186527334099620806578400825512523382877781445277859923155270421757811875421318208867838437086557558294361389957563659384824428539788825733492531993388972997228585846053010804695355854611194115602500478087604351395047650428089952115190423602815843911248691853248025709118307304338693763207160134547895506767247288249308159460815831630450122498028232458131608697948135220586873452982139861454336415966836471525387874188655075949670479957526789013634836096055540532298681427560578188063779301504799183702053475107425031919380890233316151065342335070933806973254957833555991628748872456757156375776134464359133035698930262103153673880959726250891643296872753333742115199767170756634536214954664441790696089452290774887398981952428432010293828292101939131320858222675096627830653554202952652266767336061331848153384596842402710839600741329086632858780339127839294817330618848320593682584811198942616039845925363254396138870196712100031695688049479355816343262579490207039949002691036655466067614044258911962073883687704432192411977396242709968225898480938616992921979174024801830133893381869581617681997237964780704672221125720838981495616072962626544606822344933530870435964368666279420305945731093479917140897840914616906899671294754544650671738408408185844617177203638683667173683272319261483595015771928777847635448667471684955882301939178023100028801980187207377437631275606833441533266422954855504382286995276504952872279568105191796803471842177341797975828275894211392255719730097743056298303628647475175854423892056604910308107087613795951625124941335907133832044663960709758171161893966056407731706307296486406304392421055629963565467887364875458040975065448817433527228520862899597787616191590753483352943253028962821976018947026363366346183431311956918836701420403213752933142127855905882634534876152701141612486208003634754262391168580049945145037404285946085372533715672388059971472611496495618306588701406063023221938431054107841866455026312863026052055100507357183601905616907132258661172433164490708871714400801722322616327363685229160424067595186518078043811581491484969387494505261261636683971658348388219989280336019088664431673062659027738241283542915077986857106686514848843991979619165866310550956905612715568089443700225650864279260074568837851375237702075219681228630810403497735812239474827533680899716603894570121041791625228455005778101920371928487288993449389545325786638952168397339903329396867360259598979841171962137799408322265985360141269538527608494636899241396777127150352445445160074471816570067195924276772171461242659031431880256649419807288164451715006421997962590925596949289100420698299688416037768319928936770551131429026225856884950849663651641191811630631167641827547743667276470074528252332055590716097933824004701554779265620649209732389057881864223926553260339113311949855397363282295255542359435944899644381055232661758750782438826068649740625563825440877473318711944070395166787099576225624251515600151473572401698823355525952751905808086132925145324987584045070227196302074201581565282389772757635621540154301307990628901415274893066743453227945844583672374331488582898673721181844286970316849456270448771033997850255714862486875881418676235689474754749042435134067094034856074798932447696985835222322393708791688359085295745122921314951520761310026413405212812829072343938919832908941021136032393284749160826423073116948492623440705173378752384781248013992093609076907348907741105645572591050015787498794927443333123898620344136923959717796068042786012482807451064327631961786536318476159824509221194660871607467748857394819737214615858078807580085603651510188174321979474968297068771698037592455545604097805834600745238987301005635354918820912813932803447782400703937374734881663798811540102566835544917099887198236508322800710882031609016554606540890395186602959298826436059888552960531501470426446429317694197576140651524527938172668736135080100746835024432894005598426630336050628342900398061191904693564501063376250807208366587365771116605460332646642895175305963808042201918395906192312139608559225140835003301736613426235894387972067044637656698764162174764804112959987163382710217919798131845564761008707447332988952069356656609422948262484509112171180457303606988253993369578199860011931602823452832803045326004227204334330136452509219026200533663764575799428747573131821283228735637350854260625148214405457723206189586903935650905491658411972285978728739562318522911981725186056768696107095562384614809639858223246617226664713929023767296630853962916120959517487974077030826563951314855458033926298498015814800690191748606998432584558192221662015889897515913402980976625913363617937275726569000417326039050780094031004017275727131423337770456566236060480779304264669731298114325389424508369877285511930571636666099507365729715459625146447734298174549403314533023159111842841504977390823908691357963856852165346585230323486500205827075269137359808482505493658117167535740355990160240541317250433498160809356250487493628053630492608530783066218374070332585506355523902474706690579596463324952933594744190359336244481197930792491049193493544027713618512428718848904539561279006173942503637298830608721832442824049126185189278035907115193118153086190345788631038973133549112652532466375585651300903943233412669779671156592520785957180149379227948658924826568251078701239225831561889091293027614625248324811325541904161195990699853782370609053216033936161670924953248871581842272259442894129346852139874220749620581640684137330907118962255842151428729946661359296719832494959083344127535986684740349732532227623491132108712062486742981610919544764064660001173334386370827866716993799972025480566634302104934207885341630619629668181681448294201614756339496471272623383864603958345207855906721774478404957516346822392401694984312066367680773363293947010705629731702180343796241080512904334186845393608901599732534031435480746641254804212923301931018742740138480576602480313522588361439591341848187634521455112752853612733713999849961190207138182662927225064847162392848843956019489334381712146501231481971480155351990104977954034246954134789347699402135953374770726849366988763489688520286949464287336346612555083309233677633538932378474223815666636788953902753772475115486646876772350355356449269225740595749090514863016450965654408359228823823926418633326064656508693016456144803136399483222711783814002244465796619190868772531159669658518862440175138781525196009321959981761553080880326109005405989822289311026989072943093641859885594802272560020386832540267663443384601931291342981843347049460594553408028467564257819761781815143356744658003830012542408895585435813076263144818397035044085444638971656197103203864121173045326512395905392395512726674483467072549940223961397970551793914536194466426068571409547462533801670516073147114576795176620778049780900869198314328003009343144625887175307885324134413041287326557999786863692071452396864647250446645339028180614599253828761885494346703569465817608282850460283311262200080330988148712915651206782014403445204943400075791726808449466690731342420308961855086575190250996938149998896201656692941667178907216631613420698078803567716075200455890276537302240680338849106983102006782309772053397401069651728265335489633937490733635190701380406889204181569253548723761275839786971373749054115091065856531965535582544370102909702846974617842018970227289599212082476646323266860759740504728540414573592194993988766565437561439660500430065709689002415114358778095367190460390256547746221454997344568847879306147233653290139647713265625621919078719117373336391343994202625453450919044655748431863744107186557205808100480620491184543901510242056665402037008376102323573231282478690467296794357402763401857775045761783548051021966237872674662073385449723979651597940118725302016160651024771855307696915805353488635925875369961670644330230277060353052166800722958650919008887221185633690108126617510371419487645310294253823784278992550125084875635942049457103857012206503573007186176094757675528691822876163865317882342140921948819967399963431016049963387942931835802620143939183285641569743526801123897275391791295594234180445375509785302667364574228050030284927226217581975919486199853266838853410160004503659621470700569940370766774632803315596813304737523224821808277820278414415559463089451169160972405647574356385133508359294143240690689799291045706843221993851691772524357136738186705003401922497298538525777274939876764685170035378398271489584397821612434561727619464282830745493097548626647558901066024131822533011216295510338398682092899175227771132523489834680668289836983469565123705624248110899735419223937867279519171909162586171485471830718845317892446467965815111967243343944286910738284557544188571794790814853523214000924076845597599462320584323604242550130453701965834143271144198559357597409421069868442173447069222367169531728359816559276769752818617836227516319503984898198916380358615978205962222567523335704942817012276368440371385172931510392218893713632634608374343606297523917740384245297973273455840999727935144332795823352801488617069930348619808534311818766871773669492739367703084095763827826311441280445268061883461244898091228323460965409365450288299339653823708870974851680221177946690028017590741645662916876426024673939830077749727771368024273458671699245323680514176304813178190111259948803822231689148579340293920208137870933322499416284993685545304452774533447712336973663455072370427746598485545994549992721911088469558325264967394640761225266216534574130675062489860489003052779880553719199293751707131196161037183406227163281761466301564680034123007412604509607816046002242371413415782603499606623232880422791455377125644742637287278150752631699246919508075035362756880483536197444659584459257481657906970111306119074862622612729926098130844775026274626755503122431104222263928679195777327428710121905586517435599235893847578667849482637335690713873195256019614195612130323790449123986401095807140054547335928032330854239090942024005739923561446804033245000600954462084345550113217877593829496508714359711235486092285201985210145032607366668283147267037677197443276917629213846205015327039301150290080293858791580129745637159335057239614723310778395234999927123255977671038361962156804476082206690021076186397926485295655577421258784275587616117425188723817948230337098800023551971381376011528779318146218491307921536322011159992323338579482641133827937750613578522573347972983231032061672153971870584222818603549752311251787149041942063199498045764772761479315976612213416899888230416191233439189239511993948065739200201127405081567376423803590252835084889817847791961680195198160000875232029312682014203311222149927665616513916813072452241022626998740007353706472369197480852363499407797387475579522825662682110089033736903140045363971159257453146039047148721071866753046719769212302548603171569104016966843092301967455347958450683940170640007341208615650394695964109188227007945822343249287636900008677005130702386159406078454321282390508434982343455891157329512604814787958198808437304424888478876490953057024378238690170650328729408992299261488132964711638926029831215775861787376848643009287605459271349535098624706865584017486285539164317104735340273035384273993007847021320062434914907973995615980247840998257728325252159728853399637179492741149107401313058200523207743401057764551175416244104652798121954412519396713551967333319150425995117562559752186360556619656788655833763305684350694281025222832515890114531450412065637461814221526763370488695660762862574500821675688784357581029730327843406090261777514841112630731745871137280543900362719619755713106994318921395764607582286141522267290640878250313122315659504601793934190547699362140348816945119847004867604340270461402515631821296757654557038704895963962931570941436705482147532896274525792679455389756016644178385057927478680665073517223835047432879993763707643901360789647395529144260484587704693844941426399927587078628114021485463701758386242102123993923336424611435030250421274966287622456785941148805653240436014905645982179668869930339287360715602155491776315362742744637009285466179935901602661172363085034922341145223517673979779763794977674287224666432942177483916128646807267131284730328572651481340425506793581049547867750245740334610886268723352466556654677800066121736554912341851155396793504164216107000693341852066017929360857338549796286246335673179275654084461369532268835711498887895808194288061386893771471247674307592827577285912463073643008772344756719996477148952262580447021212231440314204268530053332360524729149112411137217739190539279839577031728182909264760044161200460748730633220909996777647038187408304573800794363423637090204082342769712568475139136408586235812722051229453773897025405716990600647313854434651562744784157273574160535659332367386886908017548945045535187858049575430204070349762350735289598899883512932070884661271374671630533843581175894959655947005429570105587467477437458295939944121962588719301430609241967827951690911718284568753997227036571369279853464732037720879289831959547747574064979047304158064484539345884716391995492922045905131589246350265244915634490348459743454547419304478244402330008138367860066612508664692298805394041635303691754289633610295893056681906181772582229868245173377433953948469813686748238274090017254320849906833834780694341111743358610853430318131636242977221347195908267178598639235591845225081660712180034866299086964917527121454043258297459436519193182198093898322870024817425098941897710965228533867050970227451171523589212985126500379759241434336424780211589106592512571484456626867763462128521205322660543713860504878695293477817480781458510208352848360627643036729169274202320353260774804630769318046982571498687547447794342012930388935183431120906192414595166836627731986719644325578631653495194252817478369771091788287694879606361854488854886010759006351185995593962011017335123921679308953137646777746786615250568915937171221000341773894555242198966556712757323898437849026803852572692310256044729316887420617542462525670102440931381180493632562703262370734632782053485857356584677061965440470587915649770824381002519997554710011829697058420302821512501879355919902883891587418608694421356905909943537670166525785613265812184997052455585028936612876818387738147407099275156102990961118126180745292694387506470899775746122130005566963982582965453902658077725005014847050026059833008684597301055621058033268151679785215867241622446585056290951595637738941120520892823356018438880216398163349898858175493864884817107680115015138001204600953119876313444719589023090508101231789221457728556409179309721385786653933435471434999266527328356135489785772133951715341024907668795307832604967765432962411081484382652094242577570931596130944061205140545858352982661840406266633375078358592555056806501069941995883230144032382362380760347755937440893620834362616047159116287968826138160751136098642478400233524215156558858981516193329911277429609442302595792461005869782843266987550130026644498172265451614992168503605848343090709518800380169779115902794172470331323471297109242359380676955034859122194107326952105024880427436443697765202309939375051526495422524519323851838019977455967779293591696914277530839442760732031916538128356442014605930319425188633473169939683126043030467044670022980177134349387367619598769062561354320144960274041833310566427137836119397729828644245594742261654619844234663387531145223579738587094100607453263874860924535378770861655065933201865659604878869975143893074920532689305352801717932352171514888290577186721350874671972492387996080503446943551690822334648364219483269195257133214091935265819067596181631637263776676842745914923235926655253121362547357678939165142244988242877027018930798313963320293592527000646488658184557084530420352231863219573159577597249176063844208350472726318069890783618967496002899013905616286638281900652336111223881071955221999485777896427520190091700673337640524678482166451024588873226198527439708174090786121811248910420899748883609855372966620206753974128654706025487514137425343131994195734208170377845661306602438878248048578006994777452382994947934392652944391183765095942530521549398206644578135226084667000528170980156799898878629740831692548444277899007313974143970802345110568739511748461906113931689416496242174939197805462120322188971830489434225426476853217704376439301599476385068297444737167989092609089268535916970325346753704786179302704214726912449217521145341127201571805563374720565528917682861974255647403218146594072053381868366976477813820147714794414991959786882539513253919498540817364165929865190835487767178684812428871646509400406092958749351070781740462181840336648324642802557585919318037937417218222208872896290779670792320721096396065784664225463870807640189431095107838388862997280219370392435903753178651977899830952898516154234442336694726186315901338252365744389105298839642284438587084274286714521985237563525026690691432062501938254335213668620561723858905297330880879627475057909778212966892161872455829995952952355806547690371300519732532531649786581462729873527941664177108699623822604554119383958071132995279675121170898706658583915777208844823657927537972452151358678242158998870384025435947279275238411664230644283686989453841170292107993127315867364409038362265698846369076659227578082382289058071477836678037063720970967271558655599840286239579776711877420356070870995799968227729618400388141267200376170112943232957979016897441870633809336262834282658116843059369771714610188919950562686676667825407575177673870699180034958902126966794505262646064510866874592227157584819154892451944537929812330725717059346161048274807586982052332047514061340425327245411139301719553391401184471634068529128283975482007102522462644529922867448153229398719588957806324711782001900687596202411512514102166070054363241570144448338321271082088611278341510316709161755574469577097613419050331559751460689137564710034627145574444764144663201422122179273914194200766492317689988772018976356756445164642265601738599037433955715418677964203092040266607268119878951560327891039820588928015365953305903655250916052498049530579948046431216270714445211438604587713413948020315499870312587383055868543435216113099062261373464930519637778701264279926086563436030872242063619118876261846663303636317197396568281516977328115024338543597513712187731128544996992515043987983199735055947511790842266956150910018696327835372896098199077968696324090299214950900180214814092512394571135661634332088820244663346120443565793805741401742102812757235919612175021118523152900812885747963176897859718937893727216154594680742335530917128582615731547001093231782523259158172224523181706398836973794807659842002602482334349827976846664456621380377745618441405391736332998540848707585878797547053298885687868841434055381999105793043118104608964338076670821038862779717881227323492591195428024318067192632560439649905482132896604938817993751616007623912549405723585525632436256932453530803269207080988472533213890898086919042501262075072438871892943976548131152841750611779377376592731653210217311727051924842318676977195294069959074738897121083537941170056016368552008149315811296705466729569975388917519003805100830354959674890553114494481137020096032240705673447949320976022925370425551144837327640222097772498530281098450304020102248027361953203633531622535663654488575703753529869003133435410697401454129358482987883515443410044474940918128422199093958109126832330675374637819930646440048989119744028896284646187469762175296836862495676029807403264579714716813136772347080626590544279771457954233067982786395216678450288431325296478893980668479000679400524054948142577359089126877801473558117576194546542672778366783447115202429316844972136592944599287760315656637272847939972865683452214987395215843381556760183975989824534186777332851660789432421776516044939895039264488085479244371788979387194504749070230287520408472244242485324618389737408037470788415566527441106354643718821967033031339477655727083194314522667635587690304509151810794614443947064019001990495895022197286600674951348312308442174324075264132082323079982481169940912001615702676147234832549677884631194186274811901167412882211139379405939777583654113567680120944638173884965429296095962717134489730810313253689859527738219168914800968567461193619273908167837667049009404276920839579653787715986491641150186931151125543902409652298931660323535741237776959134121825646076108992087734667049298975712213355384450150119924661281793818778397169070527395922743410854174573690387183747537230682820904317220448940225562138062875378164736909612831862679939023911642926517736417864478082335473215333499030245065194496295837113189627895287426647500418142054925207321308668967370502714727600170406723774134865595342694074250937539638748638333856844331763735539353228922745139154752019604843284283103884697013168237631413085372235346480645401939300808320341051297750353163958145308898262495177355456549886569181776457687074692728629266941718315018881558403906771056649832162792189343991207189123553175587190659964232979930786454117280497123312255734008664916445510373325473550398926410030647885321483106298310481756013453758461250116491598090379375763972630797344003073152738621059023638778328446879921109177500902383300002631305216716525151164810940550986719605059795062174087564638080773719539458886331542544467915401578465337642277376896584927247894914296523901052524662828487955170140007235707449293926493481389717094494551888458002182392856480038395063785014947509018911934465348819363008185114604087034618012429305838335444648798767288518979706600309887518270171522231092443669351324094858927205335897254511490364155685932227793969576884941015209361118484429583228630595291208406581158805967986350880179346153390959577692173269032394980414699961280356362427092083972392060622101967374136803059964954402914037186014461834976001960630863525942046951260777804421900213173661325239784705759106048141701251902400162255893964985015262521423521393392589116209874751452214139292304729205102456201753768491042194820074770384045818083619385856988250904480468893691625715939431905787570677649710678705689216138798535239543454042874017003836653938348265735798338324068741126755323394512927372119918149103238383673414408887120339304535612580899591445622086086043783592583788361311098646037403206763316557924892227594488857442755835806112681365548553091052332016669532130407659106017500771429654449481302802251720630320083606087900134385620342349578899888982649705246916617621495824640120131686492882313732639152820951194719182110675385962787848926935174035181206674782552989233181511032998947848161659104463704879479557614782397482708522441551099070670892170412921071215361410447850758499873186609282322983871829548110369036237591076041385257862757856059021457953092670740873931395470614634397154160301366555413138943344072712728428038553381650543874794221319221057024851956163242611274082962877455025406129021120526375566028078999005239301830868902044082225145707656357519432133402114934639433982369891708898803462403866503233227578214786672981375512826064810951630894441056691548546868742039091911510085135274938985105177483662603765428470962925520503886353248362387852158460711572169345527641005126824623183284005938663510000158548990145959145731383106519711614860684210724731192972016350523845930803561528901990772771381381089401851005797757498071800992602756942722019808705030792171492278602334949380970410619828186343211071519390394273458506917465213730279168803694309218651382165358395986319140428822349750256347387992974017401827297186678838266473889024995900323227089436731713217557750032295848476791548639647286464266169699123666555448264928213731760364015359761283585079782145331641812169502444321972927786005969509101441393765181323370617470548878093681948519227998310290046333315325372316040525904797114798288288187650913768601987632509695635442363315337319996909453219052211060775859355292650638346991698880863539845790833741334330191290475366859139693316781280949734404688217392344061689210097824533246986123324636042602338648045895660678229284556527709171031181374270507496618077166898869817656533379049703669731676567785712958163192711548785352407642440341368596869653947388937617764357351353960082525597531266829482225944777709538714062809551708986968609643733509921890807968154088931259782765392884853859718348653514684390966881084965180694261946747159975085796331049703152828788390512992932659419393249749600803771303377832418284179590935837743813741372490563727259622672275671877660408628591518997042631009469362706338461384170127094951314090901468658910074124574544473979032347782797618982880799919229446702431046039224229203593208444941449774596919397754043179925772571256051525713008619639406324079632269384908432216421604315385635384900629997010824510841428796308043964356732735742090786134157556462020797994478723884205721368204244545499544797224772087601978033796059373446082418823975937144967552306189589073345447488370187604687463640804624160605586516992035161865896868015188613268935771525157695540639323849432694739733824462626373340534449508136060093626049617732387184284133227073251268210298452866867475964671474763126016273088948443123416830751102907023759355291619978104492856339572539205143226766894134752416760055159435697301501026535086865743337367304028711342580183791342245240183862260347672672323684642563254841274114191351519800102699684201457361501822803636475471579656726009531073245810573249283485904475291568741689420074030090897576239700810742059136969148454300542972507101914941860268048496891660429540209773718579350429348576418879306855517018182334371825795061150381821556456322758713883032681585054584089011689349004769975133667210751715283733208808763103375319829433728043723669718538105047821773919396046723203856202737762630991928438622229396693199734538834008591087596072343983932745689975547400954017654829730613184874855323517469387306052193746155270228619086660100678195193093762210098208619929523124579660817943548859467084328988472978665945520221963518686123471680679574903157419230183431128572346866990247120346783373076163430663235398891520119302518646691501153405699761477673075996577968829344379530684425309685774762501051395448392487130271918194113502859066802758481854838622178987010165734010002529569401585896684570126728011638894804743317333037716481124168634390012278542770132734507585016963860872523465554819179813895734699056743797442703209555230322322115756288229357854400135526332126920706873522838193037014339787973004162018778797054448699780893872510266293067794519740643688351398335228875764208189536300300585019544634534449055049211813926713964634116495979367174565645981548090120154291671210902462183859881148148114475829296237868284788929493743320689781559319547232499457748824889963459364034627130302270406687139090896016328141937008003655407880230852598958369884280579123150742389228775510275752628161551172966033431008444330722241105347744842772907215050191851852326445626251137115060649225367821191735160323280431108105871167762614933658661719977493675572909450862347813532660860317908081730798009327055228454198162073942118546602646873785331004816292414486732990346115871289177715824618426121739658888014276467677008500031663236224204726830945027233339234332980442134472735185312609270528601489883166079727957804646722968595570229828306062341147952758945963420720734093682975610298471343459563816517184719971609131390170784059595867167679477092928574722822441048115819356437107249192111212438052396544120512584593234365739551758343127183381149149237029075868993936157346476563455387118139580597109940622375830994955447100018234839805803203375130860489627812669563376001993729078434999627904876870473067596455764159034089030161639124132813960209206618109338072407671155264638606850528143785947305315424629759557470517908831338665215202482219183292645892502213826720825699973440758923573428027443907941223932836935526422544646002622987245264213127783724156038947616517040018587200752688452947906683152846909386035419601961999854713832673242184381718983565266521634898087572407487640968876997702110816382912912631707238555679695699733532579175118716883278692640902487893420937224396513943396133054604256135587549079041402594141140136450342571718096472983549715219751862207137105542372129969017895504739526104792096956855169862917454601735593661342268533800994200210298655881591385693878003563203041728527916610007725680460248528599304093624702424751411303160916727945427561530160954677647407617224882071796460956745653146046695690905404121707216516187287688709899225271534724506764298832796887925180608719980987195255003393802288136876889916357692200174564293330929078219803738632375538565998851843042144148930851824747661983215703327152995844393430140355999333793819693812395806785257599938233345664526256188620561564129137074314349036000904167800484244075855605735162311412168663341396988549224525270568373081212629517015011524068420534564531707374779579293565487499457077963812465574185868681634442350572442519451845873204440801561061724574586624042910187678700103124195231779315491580861756540623993786121727841277202575266147348057587298157044140582105548544149081573137413175023848362238534683961709371247414307581780203067556426387796549373251473843734106713306508241230922846472654308948280129048844264282519941635507089905900527188375444274385650207778491772744371050495587812167738270382496700108244076187879896447378883813411134889980574522928788802907265356063905727436497563571277101672002557099647332028188312186528576615307217883334744436436436294980022650723700926589212929890296523695835302718890572690864629335629945868663434804669379762310992358393312935533423508918161220661508377647567974819420226896925251786627876459748090479800710258401086096758185247880011977544872639051566161448244878848474426463563509411557453296859577603173699808183389487540868185623650691054602834126149385159496657885988100740086329846416948038589702146448717617578706359653982693516521794456912936412134773133574817876365024033787737373946460398344755365239227034011052326933026744880761213635725390021065877645432727515898725451693452575706042612173774582843881116135178939420959672922772913284114374412781315495464731750393266196793274950104670557305690686750101635668220509040679954525540390721098055067484684159804357368838008600599834830071382904506641564055450616084139280833021006002613463938891034258027890043125683777783237511821713692825127945130063760931723171038582011279832852283449746274658628063226365549165733478313522569638396370967724978398101638281160576127035476258250313265067751930554295986334561889777826961307072550106350858653441850267388859425850340889176046332017356244603368837034900956729848843094904834335640207724674750352523985596480329673437208653024274778644755682028985806176113195772197113124057383237253597256746044031081931838344723574553508886552271047439485304921779753994905478340219472347120109604475520383602834706477704181881354214993930143400930742957343836270817974649505348133575628486742770161637766116696157319484184214059050165819556833827178965149944681655487427393664049794984257999736881509089458508648361660948335307960054332241684499599727394338602415003535029734560615524297317567506091866662638068953328028322563932922158105053284545104925383204375916760582680837439990946694401521776915249073086485734129354631728084906509490834913504320012029736071709149224265685172499202313042515420518624716241374612697979182270183636089423973670970774587947974619593922645446640731513369371650821405280491324375675734546101536013081444365223870587499887016551984220101513243548881763337140309394249189813862697930238968808940830247175884384303614546085363711363132417317734667936106838203400017752791813896795412241058382076587269891589930428181898199417716947579316526392664358754169797479314398151518408474195634551585393425792121489052112264869220410592181415124383503789314045488292706723617597794079594414998891273087492846411899194011761247406754041631553499562136165366044111820948527162945515886110372075818107574899215645839430277887593819871599490998636434480008738339075825915257839553785736093054833298939364548887063759063199092430300672426454371265979293828794213829438521579553608984311877097109807772549562934000027920298171937612942587846165295953281936132889652330184357119706443754671436855485075314141812042142078270370484591783005152014939473881199433811148698833677003019813598698285338221164220732396602314399416412531390642790194331403098833006910384459062745025219732180313302741576938338955027556819662478380900829215608254985930182476716115913069050658340334469911489339905206500165858736297452809941899330775503428674023577807407754366972189968710987263464061763345721204506535608748862954538507212221463304152188752164993243477056217250447499566010948420020539758079632674409552818776639697355064932134281180437839955794111482561022761924369846099828520609066602560621434750376567490585457154142677414628631657504028288782293632324621457259062051639846195151504363222460453814473681854933684610581546771316539566371900942755020938291061963761964384256179366157406515418075257411707663894585616959710726675804622709931173165955519996772678275761853646067925322473386125543473829217898740171125805908817650106151776587791592446451964004837595884076881639012325660842342285373305078283634676910581869956951962951777854903421348988897289966323263135317403687153248294686346773128388626929219004224535512448033078397220532949352821668171721739743379550173552601574831341597743522749816439910950285598576669701906416345909599071078115319887865827173283964233959337431365091636684636691059524953750358125946530206992367643214540108642176647963754768617530090916924119300628188474921803596253588319764795912139135806035836391635412778508393693233160550081933926181732931953771460634499869442217072812104918457257846766741617828373768267076526799371682177831428661557843550954798805111180510466302328592972613842426553223563734950290577966098904881798902564795637703691730738897911392046335944953573208641552102032674060342031861925159781636640337369785711225592174307892070795726578444992138979763967718434844494789964284982496559827379863193796736530347543905644331169735843125681348633283521451806043264171946091062836236434772221600182710764341713506378856602734483901707933644548927307599542365776543301595408908042588684186006707561745930868148105731076083730941034285934818348787382322074575086114572069110081542065729682778685505705947233868981623660349090119568383023837111445665205856722217112618786487163495138521135786745835702840415231910235821547373507020276277400498046304127709261812642771017049170981066947540822883414868998514169270772440200969627161511735172086060115497282650816826063833837316870447551987677596662667948522408027639703032837768516084495474505168017892512392675002612267236057030009755801439745046583202158170445349885846549285815326772124990485612025914959685720952468418459693315132919709484473315268780932993388223469453537102166887904739441055876786898691889469657265253031707022361042552525024572117584657708316774511457935559718815344981708296082548541762433777380435098094811734552491081762146837554241672934271908144691699391899918393060149221518027823001924727985584819868727402290415978101183786986472304750472123873102640908103937091714705949228944551493214909850436884301687605659911670630534662462374803783329785011378771094138680288672048969211070151767647602423078818455105711142394565240305381976635277663746329450071024762501313098599918006403459271165677664948836809465996120723077986332414054924774744413759761029039643859631813588307700281804091446245134015067805497751497721843415812795432746233503831758984435833912740698845843732323869110793933986002330003766507776368070948877413800309144425089819617813008461106298123370444597579880306810246283144698698754091386405049441708034775822954369178739921757703831806037259630950575648155767529240702946071106639638837838407629937823661986931501250732728649763274310652354528267920108944563236023397265120579172085896178728308248327016652135474994463528192836887797261344191377226682877686648434257166979192818700606712050687059461140483975921313736676236825881974800754559056145005461040465009871650213576426054032564072961359247546213025627020786912374692765411520452780358475074146698595602654384058486027184639773047018127864150593405747387331704076297399347280981542867505018300915716486368985714320049144883789405147477675635555606248321096025780298971368049266292200186477289632511030817358375758925322571270453883400199891259290315727810667151899601239838069914659148788465631108330789442803472968706994442698209244283900214830853365937640349498998133232922934859702427121096647930538188011847827096918810954662275790709196035749148019792643837442660144226253664759072295769367586844274449320575670926614045382465832528997964020086164886215757209875666807103454739501307216416631240861631131748855115871056470335104697722860192551129366627014121512120422690144630132413645050049618780317882832505162280463308732687555521668029397855952316650784179652475079322208972728876337002550541139476951699938040624400201989770888878871799028883410152435742649007063407891052325358190868963077857013608383318035777875251691315456614077413627028218961822722601162458365064881498719394399178194343679470476996029662437088595796367258301543082034190071308217221536117555051657868821751120290272816988206784787176293838810441267175281532780781905649968314337914163357032102658323840173935182273612597311039887616202049411785952881026433394482293484300896728157781169166877638826268132196659749652356691933417609527699366879287310917841276924396565326263949215054073590545069132499677034048088950546957798868958591249114641391038813033827423854017500867290178331774388836078547419553512525296381597618781648589343167582080180044737174273189172014888441429142867303710136713506684314311966330500287158601895271597600504179310663172271459669960506550437522430282124093945932959006319471425722935965155222563566126149239694900719420060127219115645095060138880277258202563838296853837197369270466065718000342866666886733458720352183891710195065994195992973908724504419407184807111149981317410814130975488777933568030522600554677983523636334641075991052503385168875638572938316682175759570316153493183303853193209087070857127960540470491167475995335899510842793190780506861783543609787332163946373287413528060264956118878834686078035172899755207105605247657932535980697540719505034338975180937922691958361451745279615990390576878643501277289769002439061934504612162931076096013944742824992769814667440920350201091691319526000671516428512673457807545390705002758101131758860819875795713009996771264796505305116716866673271303597039249004053907467292299738677157871703324714947947780960132691254220287354025888475099117655309502010231196089331600937024247523960529435509237200703695571154760634272652496292627178460308733582005683123307998473086236723884678804729874038690438384025567465685582280273462480140739653032056304716498406652181392708743182198492289732565082963631810062128917918343065167348962514708694794646415845555143569347750810459100862601900842200160406634985347541703850707740102739245317439815922087414091258782583316607431209115781939028285019445425033965567901371386609496033619151587299601174983637068000186611610762506038196160177317031844028992110967036137341989582323555933216688459387688203201207029116382301415758165639307457000242603656790486469941304964899934485251401083348240791268704157907239413644791969191393354495923472383760494518972533730199474828766647122266517778018152758085315976426270335859770938998194612720093124801910923440096484447374860259886618300880636338621384292537241864856919151722933205519585196579289224507679863285858948717795033275534692744327820377756935435783518150245431726817679068362023442340410995887762105435546476920526258011365804594077043956350131427543841758370545491844267983182783957383426758299881221339254194694864827032610192089699964715780443920629466333821019846197568605322765560641902725305301701133816797970232670714544023874590274509937977332897895616533210406774046666202166499152019836723910878665063499776957142853364464546452588731505673753239386453889991035935621166122785696302867772961856933214295854547169770175289126660741991947592480900609038629471787563413579487922025916243009808114462823299268625247933727266154820644100084454458324533073167484043282954581919467161079085249077000768102006524817265379133191638230765495684241560247815961686919889006931845131613463447375531984590276089559954667112173962005462647925959145401774939823585986371612140943582361706418332841802179053579161040841986109309726542802607463840309023221101030860485861245679616374729850555927952113364423790785757204666543670201415024639351623874635843260718461392772331084532840874014037732765313597213218914122029321437140582238090101098284174518615523913576703604542110208428761202029504456182707366935297361951271536927961173149892891905038453941854768610945807168914845958787797471022697001142877253439852022032843391786288231776898296592025556831562630388741007461681543342265299662055300159743418824929049988024486780810555995918791982305408839286153797802221157746471873970651082158309178555131111281614150467336885552994858196630515155267973415992756904682978344508854790055118529536474742484535364500802698180860894266007033451695643063610434060181009003993323177522162187828206100894687840977276496862643570615684534536042303966595980531151990776212494548630261226764363370662665945371710393421979091335438487787425749324632802167297048917848015801092913703393863743453645642484353744168545360775800496217273975575257339820198736870954064033688469670355071828590582785427107961069090119370241688447198378559615614906876477817605608407575594756483020966016764867433399894074427517896507566533978297980574402638575897097631554366901142035481681983221701255460840684906482232763903469745609178435998646530936303294795168605676204941501682705788102975125267922095668681503484337023444691287220948642884447496306746974051854018085140563701567724737386811855297146994736868590293385700292651285476698293194998453705254283722184519020140696862172240789589197682717004624664753890729937741980752805740329538186374340608183558991089545658184286711485896704499950567688804523544238180298905735086891263195425928754528485905938761522077018854566869932135177869096789271462692321428925780351189535110607982071663726075677717844642386906607544915835595579204297119488534701171963308313278684641498994706045119481535978604845209459957937264830191120686987002707232322339238353727441523736974867918174702181312467111984874289326014012958731659398890926711857613277819889388410355579213493766629084959168060983154380910598458166687770954158856187747629635789972233973429082782727368171416435254300011103750608324746031930571347579776173384207089580289646989092526656351228120988259165826341895219259491612624974665027837298200857869463752943456436208764218636484988372435114893566652908920446253902489087566955737453376980769978442213997299305216746568766619645675636526113656217959866326658629318342024993383879882706384201314231761462131545667644535138944180520677515954870565069998875604805992059888167061037781609828035319516745160644012233439916213706377007595578536979696457543030968097025453986977278848235485478130000357880698169151359171786905659174545195393720415301743100624177044361093281384503805176731638509139110768054418095974642821490321924965460141319206214289405705948409394846399244920480626262841936603997795725640094497374033382389554799060478112029228791685236054394372116043717192589363149705006675733252248058949937346522783833017883915512604681198802671079056474781897890038218708984020993343906450241662610690510295809589174719663886531446385558063023064702028924683719741311753967972807250925540947967744078145699493347812363351794308968494999780535747992306615292638428355152642964025190349244427727081508149390377399585622364162793240234658193136499424436675433501830430297999250753188642557551894245454476605530378666406860978681057735731264866417305365318491564683422204313480828803510849938403445198245384304758824623673934782204560747457003461146573975773424518001491524168887795121120929779089821991312749746520612609752102477438893721213770641699947810599124741287569061150287514571140450790805521285548905724342771187582244531950939262699004956842886018013950650510515197401182766881175866078057309764567737641143712623971770920823952432909442522650248336923733570266253645065058407782200707126275503839728285760592584626281457995350904075066322897098681206460220578753902320895651834098647274175378464704442019820825660838332211234358248861972867378726061721275425354055069004332347043759060657895079210531627669650670236390425490173614547757252840884787011984718777477313323177859953975775369789758660848960815984107057581196997698484331839551703822147631580576823772293761694603106866690241590385864615501816329643614348754086515670129090794741686214426069601550156903934052235308487799928871548408841958616162575576774512582463765026429846868928917343040148018389361173763072736045382065360162796610757779267422232827987829464380129522015427851480293265617296069234207296031489764041109192519376332265891450306512183014822844337619201467805558924087289238651643549372304198166486956537390391548068407383304081811912430026364521248496188531035110243362666617035858790518974504365768033426683718009226301929307759918835034954315726327595936160692585530749209292876134426243181865594068249891664673397947808853057575321256038632294373506129751504074004717514231747959229830632143958706510516828602693778024612105831898981623427866554537594405006478727673399694206285077173273494992346051102031198515543729007146335350875483036100171581440452979368895763520063300989931421435666054547307015605929507926930624937478570567772082618915121270474636270511343290044111474033981736581418420875000149081412080857620096405032735586227047635062926831744756745088695921804434959216664127640352900777426543088428666209900278979854332444052665369503718041337547544178850569486843489510136902801519872083992279976341574142399744765974446544244613122502127458882768174894106463276161628630838706977444832503426045581122159637347722019220015098293198487858153719720047612963681886459940944730029645965912502102337340143107248739936265475725454967871582831285451326309078661098449022370971406312060162752095197707461206149330520468766590647592938835843068857579504153330763091406213409112146499827463618792089470787868688023566512035652251335508570924133309533290680312737770894736865911995032929757470639133559379243204378363785873249730079397212815698692870354460490338458614670612450907266204034348750630149621903771197596750151421755682326322227846210044429518332727385464979441251768057578077078377845102559763510757321172044605960223810373638880968140319527065659035467050136962868056228566188921174153051749422188179389329333253205533928132569122754288597144394729905012289666655697738983592812172150675091897495926487355862700605280644250942420605480784936030398009733119362353984081872615035399521157151791295990371693820810223210047597041104305620035238502300188963149276391834822091216118750982109294721652248712892961305425126935264043805852265127231357378577428207469217133546164200162761062767858810312603811020125003653955209165182849162886721297901739047230289255894694283810588069342475136048032352528010263771308703610904332063677031329081382744236841144524882337034308637711096676843948691627766637347434261078767093951021761225153614017514350684089840167772492388800535134741872913801769273439189713028772163006950518100586303936426176126359213025066605402906236855008702764796007349397557343581915335474406707623354397164920821075801255511906014580392417871627010726515905132075885252322339745359346971249823478137896096283366472374169192971691148383770491681995232688988810667012903731678231632851697162112721569577655047810053635253303613821628067152953358047752926126341915560607432313016296693169142999439074735844854831329233193530415709745220341395881389120788042974294953581775380098505347519011218140186221743099606744388628768160371088813891181365615972729922158730804402842574189675507667273132361608625811686240744577245510406320098972348410490014323662683544773822895116122942136401883357866920363373976205391955958770570538105770816966185359560899278888465028455012125980240485734220010744138824623587373582632089175771872712885845459950529194806567770614247580719072488738698397773842526087225467257820895164151708924170804210517344821796858092377469968580325167479132932058025704739835984994437399033600673604946431009612254114264835904145283675494912720822683458148889297727975096366290592950072421984659213281867228310550770151499150330748109320195343503248152306854555364788488541907813242825398558280636375657076560326901201307792187562275865176574933094949702062757958505555395702245246331115408637277588502094098443785887897678611897455963029331730632454513039749741730502850674755102508095021475948230174082132604929623979998104144618603248773379477870535695588268514027939484575185584142426232356396224977958945411794818294238887638248756455152763468371212534742236480852808542583801367151826669473588769584305739751690626655156460562500972424460464899145901614383090033535410774000627165285873283884311946537267121126717763291943896402895883929559190889423475312119143198019908213758650334337510000702335838502768807310489054912938647281045405806618803693942186996244396538400084988856958815144093368689461215235432345999367423288408681653112843808867906394910549809389472300933760899861809956575444620934733360547796974156056119482262517700380651960071799799900760994854173122326402627146059582781503532092459991910041891402358432284138840880386906320316879699392859329607612145089918367541078752191506425547541349301173974236354735220247821950015992192670801362211416544873861358412638834570777829129181673519417089880865600873727864922031991781815722647733298547028545215183011568098024982035017154859834618790428624967605722544082112236328709167156960226265610406306363670834368231126401486485300393695120032074878715419206985248825054493225317680877239337618559669206848329416983865828456497852398061143111868700284429029729527848076339772088660248420745832861254973856561220700259888297734851844515079437710691305590169537049745293487840717839434455838018525203413830192744762664283831879783463579183866002216602328978673418282729801290785605700435127007947884656582523638938887187172318122749538927377129457925318336068391818511186920937191586581095899323128578931234788625394815600600903805990289264691247669391552746291875098361467535792349777922296867949098828625136545138989098676694685553166900115898668444818695224938198110756480014945391567222298486101711543361340535397526149146827211225210196756190352246970420585030850809563033889408860342793069216211081338947141947960472124932840352244145633351373361329811911893007631552737220039954071214568407638460521344161837531181513516699081655029229211018577611123044677080741823292258160177974617739811838989186159579009055131769977436953547222318928174256835130042691464906664938774345935696348793858551001070926822270179398531185024234141851150211294795248253682176278034068174903658777491761187339386146980712788144834406567857695871562201454115666431562942646283794887122606638407445840433425469692481653804046837276539593893247616791967910138745388927392413687483352249381801460452614697888644908420856862741487169272777452057135391943828238296182393783594563282196119165619223981771488507234670428106866905997377151691813707074818886118410979042148379405373708653896625914560929240859244959055035589833469196628299015346396638272633914944290447043494862186710148603474166572162776165209167600535486429013031576200445380239786737111251870508865955193468070506895820494988569755933457245160989900246896061767170240604308126070096921042580722103324689230181659242269393376366458769331344344004959264390237944235939936358594517984497941161335078687288314750967363229777066958816911513749877013087064747454561744054352163710403704896466020423035010946172371529095955366211811399193897912109319256653674418815277896766933037538124617972095806797590670144338626223654627900993385480730223049555913108778370576628483526226225511212503474161570998796256652020465080538954740581749645960414802632547032709519371334677446000823868315956167210846055838587517298214723360925932798407249589360598972948751945099073436605664105285209422135639648667927350915175012499850162880101710237686375482480115728329565802340555814188004996095463003084381103737070895226392761313703196635248844145870915241447849229893855624925041234019212185872316670802855550567073821587845989108361524180041488658858331095634852338933172310691271348149858266827988955521633602574340417557855874061478794802361271539560787960160449945358530111088820640069334221726596341549148631385552234462438901556762721706778379169098407881238706005154864655875490213438572549550602446448079792295300558694855249450556951368638516205696439154128549410822075764634273630533002688823735570495693142353734874547718603005357302878082162426446215620159364270466758117761527868592265302783488212995740547588538157767959297727742835118200011613767849428318378800473257773078440777505870817243450316052498199398513262244313645497453096482909638949792941152714472768006150548427972826338916495646620606968756791663773846497403536971828700266982203200853666138528171935683116831090810553751971319103146370176526298100803682916417312490324440392954514081648299443248416141614403757976399299924515853806712958150349516601769075839451481004334129593420446554633621653728235494662988402688848985943170246688766440471085834388769234428335813223996628982532415622421831848071159999107436229997878929546695451635539716615054055194617354135300931716155449092135959618417892767003530855566911150979608685204453787575212606014879340146275572688536885737641824593385122740180419681183271645591353023034746378096757032001147277384059197358794347148421231811420482423554707985299266941495012372540734066140853751662511406172566506342266045581826606811459935410196854608773056408030356794852053126636615468512547064256162191371900703481432724916310218255785833315332929497025092581100634738850769533422996369954747726273226163517981265883014575551113782604190419570221522903547883383007314832060071498780661070207366060145257055162424139800791142136439707233257923415784657437332171575873121332154952753243144063040272803127703392929553197632608465911450675571975982441817320001430377283197606033240986818650650797544192435463975457797958173960729069619840165247624127754654091986317452774340556990316414253866015179632443812027128123528435176240711323535298598502742076539475330676403431919281956625336398151575683698653034890044705236634902670641813931647103652015342151561225908407409073422944497987833594592149683093494108274422814371175671672935279787600708229919381273053117924253844452314262863090302130767124828450725266903606601851753202452989324246533174007577688299009305830722391509926183404884070000585862656807110346776525483096042946299804916212603037582800724489667656858499470895169329754804746128476586079046532862091081794026910534027110684895641792715825158774149361496412156243473654177910500614263409913021597953773331728070555792425286323283244192271705803466589998550428670571974904381790845239164402852814963660362807231822675857758966313648167923584212112266486923132201571496735219693446553368391591362864221558084149669178122311998516701220927428643446690399961944614146774187653394984761495422408408364727182257619907865695031735618868580915059737335528419307462325427842139843678686406809377325649393772831981126181457603913043306077169206356599002335852211533862560365054723274180945385592759854513537496189670487115864310617029585185595506539026224066868292924703393641928263372446690620341942413513909885503699460537895442113662925820784004019599488934000235508100763974354307039778594633790468864848552749947655969006873590298573576748001072589883715488993893285570196029070685856712214609293415427223884133416928020828383902118056634837620420994553156888684022171483234096146875725351911229363378886698016773095249740276538118916031805524658953982861819972250964096664332527854779015783084975930105443241711589591303545054520643916953894777355455432100500676679253251499287030775550850159398594496654811984670844011319772804371344703333758861640894941418973870032509075024840381523292356709729457557577004899153962916887759018043823852075528859080212538087002852372002126544871211200337227992927023848051546797328683225606403675235870947494130057303074482328424048242010729543233953438581731441144870267315694745473940718629576687511390860296595510258701253771613156441483469181094134581253014441006733800597250499171077665059938848020025425884059651479948975366660575217799860970556386055533562096994904449180967320598325827237935413897373748068398474737921128049673541709663547651113991859912764587885801638685084853181945480069684787389943186287412731386873976374059330050305969998393372579986262081988709242324070040308961496518488829632078773439997726353349907408919496632303835793514159430930215007279484855566229571689669910440965076297817448523625322044365892918248670539618162487695758944444501015768117722327679146295522962028954176794103187226998423599881328559169651285398936340024052916888647480823724786805914377247384472154854712419006750261082661907656645486378841791799471097016832096599665118186309920716153962232575505215832817198644803019768689274049609929410836104033699328179345037049155783609638343520883635070564799396211559778660943485724749201131001029077740571984374015796796612020900207463082962988397818808048108163060620972389493799435582821877338103544559543452108599996159882293760040462921097770478740160414112373398568390999923749105390406464945395334368634247965407838788260039420522098964438383313898218758537351309118460019884033776358310088087451934608326547593160222338591608368656092310103939607754441720296002265742111570433068553293642980520309610275799713698390227167735243359281340535120796634991462365018195481568783695403429683957805407671360070146706743262470419485650558763420611165058843237733171145646346277294459832727185267435144651153524951284991738969810286020394492053689008037580939098862922632078625368581036584978084133370274140928521526314836991940472609912017307016416162363614513305745241265107246630221947772220717892775953134518673908102648686138794765699154350087152825007027859500341636737388870096972618533603594442354758094981922945729824549892168070350215925333213201289307440841286542347209192435070286286767917027851939783284493905388818123267074477928543204245365764956550742019106534666156415419255073558922141058858085864953872617108960123635797763695525641895336352159795697726816886664207179402411509194188873099377256509181355618643001016787350965841116334501738109737061329781948260638391770844158104301632557170020725941891569955016555293285872303886881680643744215246135427298840534436342420532772095332941874793134669869372513686155683689304780624950635378125640568678118967155603731761795277013908657655897257919270675638619465329163715979261937000912789506575371635091138078849069725218715455106608063566264718193943162196410612087699420584994620431461846994641318602492842988145544474572424391858203278803168891850339184777524496258402579799600004953033482611431150106539448158328539583238314953679544116600674671838601428363197507796298578179009924435284464541656592206713800843034355231783458903360088632647882819032260784863749376148056161628680721073682673384506673381700386446216729244281970524077374369829634543716657502067797763988324578744256912715483863654107123204920971037001500324368584794922213356765598012999196948246941545082691598889079212450455833325723352357703820243236750952174996203871489090169449353176640354337679573895723802446888212192607775869290426872302252343067377585624237650417192644915676980385428503682914688007851165257020057909703654246566584477400985135793972702760590598289619880541488437016209661673859153759907796320440211122403192976413654643425472134453467197579233065702344744356409167277986026989622061881150324798009410081909631166394652163878042912611515373888131112933158949893434083470127914096510306223657405299402485637329996103943712301233996684829474925117627714689817063497241681884561583848582079220413119230953087139124961138483269283069054152015034303495378497870263951556420003384517253384242858889993427869803283249722103197771481043118633287319872018338124564136867486426118700907718859475813871952985319394397312756187359453653526610165454795136612396833159569035912559156790040594034707703552906239203656132215350479246679106331782710299314745667374632913225021574729265615878406778725890394854674190782912410789538163556264050326375584419762640104883313137020604497069053886606483283764879977627211885820864729356575509840090064444867415574299155176810582849258104986344072818247149869167228916377652257068677502561943391897149731699715635982567744403077585083371153389106479782884942320701500147354961642813635081051425508281292710992278746983070215557647361612800067196671279615875569436303480845246411830684442606184765059867175993544779669222878753742041326161868729649297272802461775972414218620366918657028432170108558108844298599928412906153458317697174064178772688459477387760922131454281286559377271312121790625034707678591677313279066025526852330319989525136338050373914631532034524157423902072138784628674791367158072295471755958904933309139373575756131707155216772848245585727247163367919248535518763034740944622380481829029940359982545634510372459441111118279855337930719919570670557703737132291018288127562136344779073637095714404291303312433046600042617787408253016735912749677471859339181305430085581875049590968676428562495954590948233615937860638434720038522716956771865119014721434918694885714397675566656792574341402342409989221564946224373508170536526924980790965435017515463880243465149178909306217605877873617447708163097526294036434739726759150944971662944088764473277101629718536804659064182912441946542140722837954334410576058874224531525834330035325355482807454538247219335899918229618299094274924898407313759642829787940225599240606479690519415932572806663006317921484721927177438650061432875483258174062439801269431828965072207891686078770783028417987158247563884746400864841295991605166171372331170393291135435084301328336897380562754077419079370384957776567324669089266273701726379533955741647711150842301451917321131457999815156310932764444542809115337508672855820643979907639603548712433428241406959119125546720113723582655042950737413759108261441137768627934982568638308275377346712605015134857120832967327049729619392959685463302013032520927455789744194651304525671596301185216232649362032310569322555417286046668592057651826866999802773310892145849595480135831204572765445866666843702655312886456164544144399635411389826391771038455406380636357316470457992386079670483053602874451620469456866319365939437183314769181976671154430722081143374210745478566683168105802673705865355171281489889741508472634226020142282750275379893870363560000828890153159600500452404879938146881026198637153904098962472285032187528261395103744466291888219184677173007822828273281577127933585859802453454852753614639154005866603176073817202914151637926456074865546517224676175824750329267913522740224819107003084058173974685282755415626351060299757649904780850391438819459287634210669072735852235910686774186134096370379438242481587899993627198293455760001653282953276843693231193640555245337550105741161523245058651703601127780168330302179600465503338947073342647374375116675343236421468367172509913114281516894996915148694000313153505744668757233280388199531366388715460873799872088801325924875194381066463765043280405127693985293055573825963213747458330069196036635491200862566076545378964815286380685735347030376490988130369841647716970028162618569184011870665396336678480125788553406074837513523560447721855481587955659378220651648444193797916292376552197881523781709122352605163711167349436060748813565066062456903503741869514549668452681565115278866068234805710849875731507118293230610450026772051707879032730388234427266420158098938282538265645064186960954623922928466926896339248631010540815235499848471556520511700531308285901313023057305865621738282020290616992523128715970124518275021556137236862130844608010847453467120009663708531141108758158354059438483038099240231445100345836391738119827582053581018974344157205056427008993977091421091370265481865861727006828508822985495249019128165167137900025600029960240682943277944838849777400096941239543537339982645138516417257183142026112658862142002442148133594501686806845514229192687098068723039440677807239082372045681330169720731393098737293204262637027742606347964428443500892914578333491766483104944795961902694994014834567496966684267232334368736100272187960865042312443156230464778470874026203301578080566566908775526138448026037755618848048271146461560037685672169130993766399820833971201799068026197273310434451438520659497539238422405409295375310974387525667938349892704391645456946389185483083294962944910914844030655528827438517205501506449862646846507854092841601169098498751426486280545504564069137123679202221406202762079613373584187814207246945674098835776733159327295032983284789358073199986897874362692901507389481067545221086884281353381057044311707364614731559002823892832986575841731802012224443897675133275145359545979415372825158192721195718350519571993546892993928699951706180083859708850394428733494084361946708182551637208808147993732943707181101332545599685828727653571277231856252883657252251808786979058508518657416379285837843379331239473310549239023538430556027203251835567439652585213162357945803263691470677384301500026794584669961946853178522885835587912573552381037326273665492733997614572222308541665790027048110247988021353401355773658457636912826659866116187032247283972465300488122487761605236779770303740408462963408765732419939801253742856587386285666689217636528200500237697951012816999334722779163382236865077492911689042355498476773678624103865104240188078381363823307451859098829659453469026204269122341162894800458302915883721332058826524961178027526883099750377556916816423283072319822324092298718776637838082898631201043555286875705539254552135750424214815274498164763763830084681314181799647574424029222892468021932044858408551353600036991790508668264357947157989835731731448110153867220657963707522001039793981170420280281450599259328248225898793931091917739041520288563293044713984737272268397586122011500816427275586920713976478871722839676063606340237879456499662402540236797276498211693478088816134071315052857490431615219413468756437008041489286956094508181802775546458290359711686792895427643857881379588198008300692147639199707395953613169918022454135174985734703967818214300275284312963814541821103615006128623360539452258529174769133484256567646946315486323571642632839441132452799685821322274567337182439572286715967332718551098982554931213248249397681880849440727608802791820160047890877904267101522383758522128104364257237685326361631237648712789832676192812537785575054745812714093598699670249324019607317015020164694768919477806034174290491101607603460503679087007408445388200861023025391397909906641572286814919501768157969027308601922593753360546012178011290320547667512603230833102674015343964081580543668454810472200395905802580501228335058861059832440756404081615524902513339403329908510678438588863053153633728200603662761680827259575254031293245181825353953482450996308772855642977414331332896217217383228127747787003059143994497326369621693520514976640238488301967238704598246123135114477166144125794234372500866673310939411940821255085053119752882160881944591150223877013154494157857600816659791903350008272457638212682418323409783079343266245980654555781303311947645759028986434993364826272697621940313007203453652774855885350076876355586589487027078980447971301408504074239661485534132518008503641567239506940313725937480074386606601729758128943370315454156877631519553892323850450766303859677889452200240074301723370520839113305640881261995774810740916061117556727545301861607876355864876210855884037250895301276248624770297013440405672932786405650349834403251399630932615982742046972807835418246043412236177650592798857433330861185869691333767505582046562165019904002717848159508603299532343159545396258936948551583907651777666853606555009925950616916131021402319855281637030796778569159529039254955339290266715782619373777366516063239689208713367992316530457495791266054018462737025402028519623850393832595818509040139368093549517495157679192973121752922046121373398169363586703535301405613167199094615641806871310434728942687356133640384255866807301781406154951921122614339166643208311984589226052960958561180792642638002344486966697779774819379083687425327716602859317269462011930733439971817108242616090476845488908766915827313551936564104104674711758502546505931927397826020293317277188353227563088458541024128908192925047086151757530945791172915254420803780329662796767398127773364132707069020335012235425656499878558519182150458652952786609130197904975944133410972216554447964073295808979448066255225684395576256851193026638234822502018553744524293624070927260988104210822569864531994667557595275662036961879690325107144975152012095150882913826583587275174293922566148624163600411821959908199863311675481148336384308916271920026859273731925801991887603925403031041227529430239851056693405031195212547982056779116259331839476626207320230334212266475718485596577290930616300641290147447793471033197292885184930801832682013288108716394625512446942996330572767640842889613724453061160984742695629820037058370126088594401621286336873210179962147631232872223744031817943412556204593460407003286781689841142867407155888394402299586916070090266374431893250593130325689256973759345186816417629159326507528021465216556262107820893716219291701627329486834295028565372756217196050805068711320711491599610470890876163127601370122214333443418427491593918239545971371196495567009358986579787455130891892895387815559569959956100928476841873844738440654782257832100616634006952642146339226584813559283804720256877609008998816200147946811332434306455149001727735156911726344207600910542120413615305569741943465196233198102154307663945113278097607501316887405022148451260640979806574821452063442595110181178228153548588259348977269456741285468984321071903527248862223825797546965041066909346737292131824314878417788467052589150219559155659249705286275037867237674899113804774857074280550580667979918057115476058008953953680948118412394371733168176018697225158116299328610234567750627308667498910158549232406888268205016471097403066204547371271407795257116885048551035842444073644302090665058732556188954971627360747351554099244437928519511359389631802473722237018575389481816503854446971902920060693877507200176092926108851713806337220718555433261893165691795120888501307603290725264171609935295894530392911578240230272794686982361453090292104691204206105912177674937679258652452128785064785692496880115219708711448082420129747678959264283073140855199878516179048804407089148576010095458830830340258072899189742666714582770708538323977284063722514265519570188908395276462385496559358998617012090990263411551647392833113299666833978398011496000357466685760440289173125259248590923198601008813846001423475007078786715586741146004227125812814074219145996753561949140779406533472940451604703429842052394297270617072606663116029204802641846909677670805171192647721457484410719476797181071662757414990164677441800129554190205393208240969350326542012967319856513769210761622784748592957720234727700542948590830816926164410482206825495490278849676470124285461853732707728675771393660685769677764259230257474363224126907084073559325241049687531179179218904873106141026024235514393665212253008034064248640171813580658187215456267769092515464766120833066819714535317652525566072817436455640432593966032828268229905240778204393024676002112311228433579840588830378388720655226554932463066924561796978125768552218927736977278467289962611240782002498928420778665998379659538402067883978656425207898717381989002769097426827102339540255323620400002785975197113953436028943260754526629732168712197852489620153047790451884601483716255559103222087005399326807279383941594531023616953968330409330334626973319298195748292947234615076337634411252113537427038254839312337691875899337561710850330194996074630733698656259106948579345558385153745427780848167350496226686972856812349796987375708030208054481272181979903158181445579671053416061447236085324467769156637410582570918693893342682988711536775531643539290967565916660652581554949645965964126274519391539886293561834723758898434908095165314124983804271704617287177002419821547787268151815734178915688570880403042811376372157888246386279901337424871057029742243718939011721915298683285448574888652478670155618589778800972864488839532268561906833753834444634919257194857432896704492661766404547115519921082726457615453495952177256977257097112249413563119589568473452381912378126476776380177674067028505082568075021690367691842086176455356142332247554601181124110791168402619290953631505167630519168434186417601100704409967759836086156709294413491795134444154915793422987714871470856388924928008275133341114104976756158425383485081407420647942846604927014671278697761849592310374656713199037455057467914809062526989354019832934470678883949200281961254015888937523558079190011109118232897463326626699390099992017575851395962139227063765998216986551975481537365323539823153552001117711238453552137737468952901034341035573973844614091253564012260795539528546966610941730381141977334059889325660454967910742733001973643170872933689109692286725327981567165611058874003845002421266006688871062279664272891555409432959311447809672755517393701227469000810911236342683236639894921676605316853176217406276509969311553687629730861554557451684788142653275697041997753960853218198214503222064026268697357370586620443679135007811591076550763782518735582567077454797247781388334402664995952377603424755539236138809128567332065575647370038158110060482438282582853894034339570495966948547603802483559598420789784328383016384784877981056966900039426345927414535627941559301456594985300889953407831315499751872251140257707011398664837002713911177640396535851760147884071864848218205367321736551977123095708185615390978899495850446085801373709487131184843584875015320360257927269412511159846054564284255871356609492563903463291666206547368382099569703146345210437807514385544383511058275319593065933162277743012605560005294099736961029034965185255288629859970509156678356220909557256040649499970490585151850727650509029095584314263153343448973432562989978088758808891146013971601007673050204742911987576383856836960142359628869793084086057873433999543672134651580827903719454469427190279081130861931796537994058287769456763345714159291505916290508253995437835388226525246261262955631205095621738587088776013176253036581270523839741112038914020227660881706140493460758883177791692812800668818570544466260565339732657398417185176324292573727823724914830026210701462726303256396083661118614024436786268708956166369417245783259285632396577093015312676499982165851033473007351407697703586919818421194257324886902215553608359828528658622786160631181587841268698983412850383273795160634108080827087979169280483118817289662763496217762063486994154194632203427149051132861949178778900959320876071157920950075050215303527436217467066779253886658391297830287977603347538764245214599267092168247333189536182489259112535641668305558358119550517397486202974957741414373969640535249009990673849029720461520325131849120975071399469766117015602657834584545561598393200047935270784866470531241873741943937164640464376770541301133228401876872351097928434618299288123295884472945699082370162970009363665109075957648048478579995196642379225113578783530096636572743379879094644182335718111468711705569970686756567449278988243373497365219510562367963667352831150973602884738757758393643346475503383736088831810603892179690858180998097509922148377220733964193172875937964140921143238692728628795233152407931352103618231226228846397937010482241313816877878641557902859708688246378118574054784772083562216575748830472126572478410413873503274716206515432765344974982625390544511022298647570120145201478950711906305206429632214834701446869785789981759797085595593198664898086536504889699704403098617899117759830682647569628134654698517138062330004928412695070053383244142502832859440912335229567120481167864148789700902905990029853997280479053641978202557877737105462432819875671305552893032368380560899568448069575058672113715104195641893601411044562159296775533015916583815266626922924439927798475016228748312139868786098586966468992928395174775626333804940059149272090730648892920615268856925803825153375223776409940628232906221214666200367567821974056936764256476775059529540216688464386213539215071926071675827432604077029077968581002037830544844728221584761999870864245156414695245073206546429721383232634862480153279315933895487774146394346470881861938323103782116240731606049924093562418455407556994441621586347061157562886006237156846160352090048307064079115155166120564665453104834698874236883653581353332200671986456660205541643183467629092839389629215519832249166776451771950371631397524968702799571668154250553770637706082108567922127942539849861654852233313356721608724536463786492813040091171615603788983815124679939905451833776052171551771764603440317904657319973256737075766436049996774035095581266895529241861742386240449910578617375697730082164667076376603357825145337400357440066147381791626992618798835050394648440458624047903380372829970238806500987911677930098697907605875864522240476247180614050822707405826886977039701351205670910114242680770910835400808029589066597919936000739436905183880493629358647381753985188979992026834139073321290253157145166027931626268551993141062114612092790451487223452270596539868067245484876543932496539233844223489591519202229230468750931556930068273216771216905750712305797941571745051978083730500500769185221395300147143884484096089188591858886347488934534305804081175615358423782087957982598175853189597335407963819087751509088013834178422014101314901585521580771051526689557509791045761233006852256757450520135726306145560492912334805588949188840810627610839285593417832709462591506080663142255999326275769006612851618452752949150205199108461247918928732021223711264438764446494357992836316435182596143615497426880355970037402654703288869550030293596461572997838523648645902353583503760443224238668568255621236312236610849958661702850262146484486168294983760109616373730534457899549427372818942192263179257701883957718150428416604350794319854023802050016373930885795628195298006938611776987652414431798858701051783361990823197263691753186384436328404126119020172736652057013604017878958969690792611487736048603020871625254071574674242168296263957013033732437273680943931804906766060078114659873947545991136908777468931705891182280319132177098035814316549172015382806441600086826426742515785309545367532356018325236066485174455828959603420006910405974478746378418658640749547649211716267174214914969536237230604564582469050300309111502918634727158170056154519187365143374220824272542843618780297078736065542307763095096415404834938662786553808163823798910466177771075412177765800076638653349773781461845729413216567786571814856253438294958163816435782722956428552853658303575357218562500612454084589113508494182998522128154119102293456016628252446759053734472705865700384544103708762260321583966823231366849746552023466121179788301339689440132834044886206374721669948472556796652295409835289130934886768411805287604283422139552025303380363026960127846330335980145451912643731973766492254963126821359745846104955001029235657680621256490411187357054313079464143118526598731095821493228410091819876022097800305364485856621519369676756301629996158309779588330795569090511721841550438839460611470443436703496542654093656058025277607834087996253885368621750939121516004318442011122177563447159681278917311670701268044279284324892348131737234618484473728460782390484495993510784319000730574182464727807098995965666887171199591378904907176921716539083020409439849870084092438355277021117754311277303184658289767691107488999165108191782926652723925454997505837153030506590381133131351635438654515137649141180419084131705171494040081161272406126914409935007594222880826792127212899629048133176562449590595560138734804361208044916314065808413905964939509816700263374785856963880454262422001985668678384988696475174711055945741449862437119455478069986640062106370194177891361834171944292622538026716112553978495579262985087945934220076370242419113838463620930328353484213258114360449070150427770443246051384052311789772062200565408270792811329194495543121435977033585860236216226930180033710631193114817817048705154565958619493752305288572792731133971904114635304514503434698877372038964204538877998817891074665909358447644175290462817311964838574491251153307021866055854156592185746568831998522652149903339270047966936199142154598195052845140963853486266921284651797859120508424362922687981241934841472106375551008141763370839309642604382356383519340518627813167392881149920156727816860193496472078106579256171801512478719135228416732959505676123562446236642238698773252867900052850786815332080866754696373809805421101982230897069728029584732739598483579709854301388964160552819077308251655667441739309096494747401300813265927781889282432612155559697139279855369999904586988294662329714358569217087483285400201543790539678243281275415339774092699883082639576241721833488578999421253526674448820530019989329214863705790126087525458141767075199442747113935365328039077840395653241053734292058036141696557751968687197026659820506144785379018640932595868193894624108858520344748453000391914108162974534383560467286325885487156462963060989626932670761113885376131675402185436793752287491580749792665758920931777322775974328769614500650053283860796666347037079559573440613915995963704666646062054573253898592467978784021028001331440717843131364016121496531555710261481789014294101685337886959163435402598651769252145136538385582915677699044910475806357814140253025102740177101096095454329156963567185913534623738362423696702740780006130276364872735871837018005399693026829123567882955456147492716653030844420665173966654590160119924645776811440681157027103942160132567244040233156921522778711273954279302366653077006452758613911247264215232211517889188340769672926878515509628760304116533511662389951145057664411419668873823416540380337457651693707469695728003421971715502553813711765939842699258558137767165844607394415144298403942867002508886281613935419088012617320206231696548102491855042769460498220348786930567419938783749712932816638808866019989299053213901695631407802476963611901006764099479319243044458123890092531860083759388486334167755737411770983946842309858518184237206068670260748454303736696917980047371742952567446343853306385796305444642113215161099312401538302772995059153703983890195051755102086762890501079066552034662915865450652433513836493596863214942684606404411927426619036915340174361514363552717194491490743433035063279307287867714205393152846696818153643759667528871373839655874597113748039426074437225305434870306801229177931796988564700723641409721463433019963445984842217196627239319743404239202008568605375550951213525877166156329081232980140964272568926659144409991457686158962238363227147124105103914704782292140826177373376125080138732106983362284047940486322016076576249885265507646148423016491053687601249122546489939903267875740914980539663186013906261195093991423420435733577747266183816244555655623725777474855805240303560197421153667616815619274838936059443028938381153172478589944265070496636347898142957817947115390493534779155144557246234950166330413570450483295461647835758441534424677521104983456814404938300028149074219138728691550180343937900416589764422036207695669847127075979967870011600088635796686643319946724211921546083878814111079744478025991527855432200850673198645199281158206289274809135700810517780607307088925915992908311291167232758062251055809916658621580228440386398236923668727727412944508289348941105860788548126423052644950697820848767887972297793771641523435492582911505127330791758944764975296228444149871111416392554933255393480063372243965868743574198026973329183185026767091002252704682800174252114806886635644527941803863681293427571288764459934686980468501128392589440513047292577877289666748075221774096372953261606254237085394710864725188533871766894531545138050988345410260720083393624561448520204411872495622284218975231619810510484326456694605190390906095680000565020182332477800375634115428922277938885860646632837814773912131762001025640664896064487265818533531098268992468147983105840120944245357297266622828605991579656689157691713789097970340915318399235499736272890904518519676500824268655457280909952190344804513478757450924301250255483022203504526639524222969525345698042286572162147554837409948037934322488851629771063664965401243535069442191863299804702101114090287110522152798796119615768489538761092584171110126539014702691162841946229132468113815673181169476266208182996427006865717080561482572215742766629118968101159162144131546902543988041200200311798153008914959152163680234134157768102496457780064912312049394403533418858248987946936606096467344918175078004136642610173884442750154674971287372918934971247356279394116193609256714683954167990354609388846755417455350196473303366550700254356068871257464840464497023569441957521334637242536548287193514923558485073200268525487260851157448541380516676109202547448022255592018716902474314440296352868721485819726587644661337890772124163558735129100819246766593376048063221756178142570936991715156492739750610684811066138436030777315723791695176952549664756166524483277824434290134039737068032141135498108225498959340322112121292311207291965675115005292477761531665779198691553232724248284093249444122468641684689230483433902665223780753039162761100547966185769891912100679767425911979366925607436541932371360834196761984010225770162073619638054089548943528819376761448438040108783498254786363328401763165671894015389606528978838941070916259791424841315392936224049579821827987207697481172723109004980645213139585021814333303109331631031734215460412504882594221207921520154221209906645554016799705145236814165159041294937852397479948058017421188529910787574024983231406210923586665912333921268491174325590352419055359818836518239233309344582215438055914729274736442519011668871430759905526839113430745924635602157751043807984664666404126566278811977695822567327412056849060243429779556855853330784644540565914633393223946687320472868837195153177889406779368884730099289511996865258837921587716389716730827242708744317158966611573447117217589525627463207550885947695105099253203290151854767978179669591408338813664553549166503606618544612444875402138669169747276722590311570440457791104150400357593154453716376740958681352897245546331553289557489539109945422223347199136227416397154056840109798898825963483461178562497987697109093231609194996854926464455456591954616253802733088046428277715713769848817480953780246813070445928499763955806589858503972825207412023191807744006471752151479931532000985144893638687165329965241802757172559913739835447001127410754222974242657478274284549621401398350449784080388505895093660012348998003918726161209837329921351402585109006944039934070927354466355743352648557004474792208988014186051385653919454474597959835489789611900038914452496072152277651624925161633009461896118261116127971807938633546804316090182005908635798924734524147230272025820678092909477224500916756117681465358907438876466023181567179822197731080974043005801477425765219057792187352496009396676090628936848241378444995072144105884025158069139976106553424081614522671450157204558948928210108588176642521126087842473744354366116026470961245769977248914827067426773985703796691798839112668543820921763500883564366942506050352723751117829971472749415484886719597039560587129358867360536528265068768938159095117729092182262959233908773541904133413654366219147613056442868150695903133045973540667721033700361619329979825482808044002061911080376757739136949369202967678841465810289577431108077477009064758235556044013482025613473489827384790558405432978485818907692214285522266765584377244089137165512521136806529538321067602593644691801372682521956024233981556807715471880121409980551214621816703655190021942091258676571049376816932139430092255994887051081977603349195233538403927258991317210708143276093164645410365066958689834318958117308644500390093254942252225525389406001413033386872319778562090741329376185289087163698774973209979659495954602601322893715610625184228900660253716243295598008757803092503990715704345472179519932031293931508663477484741627683795829738532624370454052068217952221489457001962923247789484967308189842922038116180383259359127825481277651271134847754571204873244142861263009476953453072499605285371526601063077822359770440822065175997850950370477670210940400066235479197307492299281781245904159643597334097003037970318544786806322079731403811602241434484418941627801654715804653389529723133202192452330123319564088773044592540230264803431717270337256604470793697596916425927270207708239342602423781087528494769888701314043578647191950281388509394443366664722694823839264711172883496360855336296822917418047824831641949171321831997970278396713197819134782808245548554066076256529009075160696398483905578745285418827243334288565463130578639169651045910753756431067054535676074132432882006349113544909635545067041584595252088727872527669373515733525560387144914476557852232973596354675966613949024597113763762068165436397572132857315229987185708330459338829399350196220558063605909258595714738208504988701865150629912186290998568972547057304201101550438892342963264548125732595473867864017886935546566623865834664467554075885438177800095703851293485498038313321559274378970324847162814125612877338783456914312305163107976920723727741244973953676534180318064015604453213986482061051059323885460204248636497167308521745330117704684148074800410248410470767418370718637331308833738858427095414116417652273323643123657127050530804478095456529923740973935469631413425566682766691219409271548625863793242038604199082432906351285014617611061042022218789505453266757309697094787336379199412957628076825331366024876993262700283579956055086638383969087606099322039476741965078016871990525067619781467968593114230471533396232110931317181442735872308608495933775287407206094433412585906472320984059719477323973429691885763347697110214095943704753017826332088182399252817025155125147514628480935378123891759821372358804516363951647531464497210674208681159782375664261619212575260160670162393212240368482250331561818651579906486780307129088834020048514031717323033250467236707097032150596286236915443022738744483330770697978758969634143414366380790913614056891295401895792085556691041182032369212885441533886415717283049954535205112949169225525178129492304870698890850460531229479190674566487310878175259078349355231037463990037264004443130329165160000376787704178600674086193369214918281793899358797515661495408079947121919686295762233631769550648838667241213057003983605392829957113074215538691454967248398711357281898432152365299997909965148737053764540918491305245022061835347186393079266708931611866357980225322596851299115243012965629362106872081441123545010645963440916241903746193464609121245559734989551523769358713265608195997833784667004336319991452870852330706187467556748883867964656592941805640757899727674673727496448059351017036321855570359642645948009458564973680084768186072425480317591976462528450631949576976609735635221021207816030409163738150987747074206677124775691685935153519366071947030307342681923411582914912020970059410772892628979959964486335438793488490837653219938448177140341040554009517299153203455162610371142372579620756881584764387823795041356863790564414383411771270174989304609338022233451322801746217791075518844904667260127435581538494768635750994380962415077226419592717841928208242296825173078290513601203219655683510196486584735971051602888001180715961644067942002210940846919130282958844704963488901890912773186707571673275885422802827032538543157732705256619884840944964421048137654988729320497746850785973215484834290749311038660312199201091417880416850043365222075026831312317104794806054315606084531186388750741049684836907330905392969524906221111666418207595725783075517062921828034865929425820468106868769608761781727837269494909840938918250228692836233282515234175510103947857865884603661806929778207312994382674187824179791857952473532693255885198170606040228967374382261060605130935612832244593548731600716757133934403262284650200153950481816406468969129245670861817523795968075897119661504002274923001035899334195945656284871584918449337983128108414024275317401797332444122845604164986331196663620558085791018251609602990709673579248792297687137571619552379653684373292683053125844539905672403473937648592311778354288094070292123334930363125558118820032661562574303684879578134658920502550216491528119672553406777735787912106915532519048369127307014603273152417681183213711317319539295466153934372490289830133113826923854831425111517086536922804144464594395599306713732807080099719036899977828133502357542849316793013923561421122039159206413309135071716519027439799003269962707985594101157154855687585497351477389221616601401888402905939092567087996359835889321576138497634938218840903352258869493401353407376363985315885580119575709407387897636046981992847832835655489195268015292846723811265553445676867029042919705071660875659036276269545875061587806256658307867484538276925109549989232906583520360099408084115949656497808945309048141697260021097536294862574308544457389759053015826692082851941700947035984138298636774432188497347976220140013915548428572821654072543236681777838141995280373901294339031377584480782219266821493560102933894524488148460372751920188351210772726432190145455034793418404377669861667122247879288332698600651869961875936418832685836243110397014701173254286013547267258814667938100498708615998819366185514696705844409278968133943656299052794940549181607786739345036621558523487429924867678552679739058266009452159930952214904545276546836175853022045757467733437917156223019160982255212872168798253381076349577634739094606970358647070144498437918841492965879670269061367806994916638270391734709358526752471162491882856447538975359714317790340509198988667892271547646196096365103151035983272829584078395029493869312401406596139452104961901583978459279855046440632161013213602275951846735043977178556427852701162801378114201286821638395177034462873910701231881069632995373186010696615483230463387309045665017898647771779266298582209989855115958479631094027489901358699432767597813366102796514899903966613715948652142907450639264027368800435377147939995245992480455208128039906437066861542520046336222532414399484621339497110906146698689335253693051902076296088569409470332635380984902973540608633453388308099816821246184081103011948249440963768525489989714478571157857639086545748382444541974820843269490241994434846085360247905930123335904141342647982823988880867783043727119533946063138399596874210065800646074254094113106186656576114479480272496418978045626903297285245412352152179950623635384334808908827649927337061876048673795007800428565263021998785312508842852022012183757186925177883308325696610597701409852056835113931055059090254781144712535293185748872826611444618141847456290807752510642422262949292528666386668000181301699030575423616516968445470901344709139784083365222501065869926376154418543963409489435297973768419511580837213359640307430674522373096404478603493695171635830224008967543145086258610928454277838278269125222818433147393273125745572481179056072048470053691629788014958640900980181966076571831051624270123056776968494559942622403007419498451415868278714114747159755545659488373048709327612648026483460620511026406452039611540130705046137345011866784957489522288069482143005385229744460729059834433582678512908875832399877733957030211885607948377485321571918741124347955162845521599979701931478460409183028873364180392883049864768844144031089910094256295936934199755494346737533581574825007405665064850048716340469438891536205085766370133962144428310946337035715714093511282765835997902352685924179814948104840400945977273467574695672456520869685095077663580410326042358227971455968071798911493546822423575589402321713320686261853355414858812934485502692747978087187727833995355222668572811931738736340508736249382948927469719358985042638273967185533242773236923862976582944953028868969786951173927351549588478912461809497728084039463952228194493649680429536732590492631091018290640185260173159397977118802044856629889308695188361243639261815945656395520671339289392984295355162675074952185708027099826568085819592033707847665718539221838693982863326202098087371886921887731221931706150304822726490594956291061714611623430035454550493896211452620836645090744848445973417455691071535767729606239600003240592944920550301238898702699926791074400913966401968621881844052069870809550682668530244039769626158921742725978556821563065634236106711588920785696429178875433474411923193205732269538328417300364921475664623479453391003506879905988621390371884994344703113223950709989591128461093575869931278430232728265494581484560990624541917296592972364796944200221171059865001859304500569635008253640682541179003702647287116661054377847924773361410788940967913546658413016570716328581303695347015986713856247448625171213971471996436762285696882187451719954014929921780253285586153488226892539696624564689826417231611592081305769488742885574362484780035537505285275413802176373572409571570662898222181822635126556291472899742715626967325344778514657954706337504267005189297785761618419820164489151703277288178294952586019358112320355507516634273563007095825744161885592654939569771806221786207400614400453402901440383665490855177937171945200102348153598961929794896386453507581859740860402533294617975031022504526426309483569915264521662665001822918472826820233529110794529802816707703311559730010130314084828677830570109238559475556289533359647563999403488857753708212821728927126397434214965264355945365428322246780306207548973934578984031978027672525742696117439908417414214506556498366066700391937250743123286563397583024641017395427359372526597256549716564129433364855826181911659785387960120704410380668017293387416025719254190328974603555687178059477277655263064057618756868295557468936751406151324186224977304653681187454698726999956118389471761997239404083043929890960256533519802049521976966438686578726399787532849193363867868472197719337903678590682872542719536077517586951942933474236671951869071661461453512023402838716732918227679431104926649188933124392472533226015465539191619991327144555992559183964430047085909910611661287005028283189835917086301585512307184943572993684161112048080603090997917739658022713366330473545877757588447328862584471315482132040384346592921814622896281328839914541686927827075772278014371200537644925273009206866399464988403035361770420397069836064596243550092307222116697048715126602944423260223696199973170061871620722496668076822217650131554087933404252122834822395585723490938914821568239913661349242631233964581225142209908899605887050452181376836189667041731146665666072717049819824557186704480826245252248700862038692919308922662180970488147068519281521186489642063164589306949882663645867022696465976254909015941794469004518493031126610941266031474713361011734838824826928536138758303760313685418772803398128483978416099633646534420324917350059092924437501994563142996843457283292079145163307288311032908008521846441927064276895499935203241781196848720988484035553552801153978739558546997781789803199301701410843086892688809993250440090404147334204722466759188489984741326164821350580282549879428731191682308271209912208702826584987091926639694264202836995698061517531154385965743071477254295296689882484396995288007809219515878974105344947897861690925345237458009059228844495775149172251115210502677524707267240461007114319801187157405226556615617467396113840432965626063478665712440672924760376867205383277693630455682406891156200141557739161583022119464433157970225347224622134390239560472510360663305766819842772442358145383770111616518282243870846684243056191547916294056915395362521256306879755708855469483680259710972986122853855628876635119466924783630972020588956752354905059569739898450281248134867013528316526050436414379877635234438727068931753301163662257439367085718234561304894066819662310470843226936778152228034931406067077026871216356259996766406171241048958734384964975103073828699841662060292631688883225587480525493876506425202274266528691701657999130776021051628890955951457261689363324716281847396783475193048822732059425077470129796247275296065167728983610915066885933159339336231904228645315683076399406525309549803350490118541068549468414557973565484852037775601283035602716534049345623064748437774238794016463339071350986811158831519489796879627814271814419004728443037659935205506193207715615241529867367643117011429946886650461810187946174099840629984192721870053485258907066317054337335949001742662504793022903461758182442069844642451053601333930026506977933984050341467683510899154469161112124039625403787693643062184928287661144657804656526460888573092271153037982933341038204823727640519757633993655012925778461469958858357405890387202150155047896439202045998353585053179635888440500980261165954196842532128635248237544905733705059524901412790593889213731776837255602762923222459853617559280105193138581690793152441303777882355279870798891838566443026586981728218034149247233772895924777549745403339077202016789815688925356897215038271388589371111878160852857635980718424738528325913724138989493286125448644946119106586717971893083239421601490131352613395783085236901215277711311452323170959096030316440000332734949746442914867324971327644678498083465152439237836342016739590064517685298710541672079058779715165779196193022995260668085553421873370559885960590493030176403956390470430709429240870709230260596141699512824713022541798000408700378962081400507314612018899635599611609784931809803803613956910041154518218175359743285341932354360945560082742258722270695067609528232055690235700162426452897857819064773762795801523486984155763344260636446570476756376971803682039640439079339073096344812472162309048353411124054685740154050731604788357692020044565040942737390467865040791758276982497620786004084869943866783182700183017016828426221455598292885727731039287096812463107431160460506461295437240351483004853259498391063420503252385389104379034867748794993815441828204525934231507866717017272644100382888440720172140798229592142158950485276877661730190484509482671030975094624002295157690442331528193260291911176409987032897161782193393110392925951878579301476374302293357339375565847164112472720118591756691376975477668982829207179319762145609023294693682280237555334605335852850550840549338827889942147473853887565655290176933914740269263409564811740040718806680902743910106440316276280249114811238163318172469143415976733209581449072673084307235035069449279747729959563494548900067491525298759395831330833075946456016293605506521912658512447708287510812098495643630827418048897088818904532124969367646823468556747853762292920696567181825858960952128591817206601437975658775355072637174319120344310045391486558135510728287964569129810949519790562179002179317865212000349809197976404127630321554433790980106019228973432149639783161976422927285045233496952418413703564172603414041773037575244202849686495516483346733199615312133924483619056259803709285886642116306546117658115765108821402379220565810482513880264843954609760833820336091135364805479490188121636343220268696990325084124366659532812656687669120201977052289995887507503041406706833380618674624040208068880779069919464562806837006666198097168376579860670191570221439482186601980808037478099531594436167367954588880382412029676170611587381337996208089068464041465623240154538755536905933618631612731506671020285512445526935908384233603310261582878217940019943355656863562141108939059414026958611905085021959774685662145440520525643505441021328402897897956608868517172746613022898627308649599801826197017774298910392969343903296256503326467525471087337014086352630141296028331018962765355435829259183918778464028911919454051926913617952190558032098381542189898329046178587088197880682724161709926801402367904594135775522694793634515389713357053558908978130195139047102310542745887912030105215409818847536673484513047954763407456711711964699659271165850454852399936146931842995556686997668869539171460068174910792831217745040719863156520337841406864092014785112095987364216163431235396992706010695264501276005045736600522059756203349591165568490557465372150523829901958949351626280834092111718947379005428419606000354478256704837551930147989936327849633410559724025931815703376273672535154704531412536850601175294937408774861037375670932339404823093424771526626059855906299314575704159482508364599325370964007633798092645187604833591490391179538178990135016732045710026849605573914431937206877579989504481452571869678234369493937023651477240823356865120529672699500482176093003577250895060271858961822847672825027206231460597179358104110654133073035168697768851293871702792164107705677444873792787013315665032090516303989481770007186372065104654289445982212042259263413793493382119438629232716445752526214021250589172616838829358341570757772978897136340921100571139389966341414794839649933695958423172191604259870993672090811167956836082048780629407429437809942802036063212238301490826877262174281568941511637385943216743108317651611145441100647824070407173157000124320343516761477440701164333064260368871795828346964031336770338546889925906773800884131805792364293734392530463251804158342495773018330395659852076188472860685809442534580555754289089657192951483681474264019917651710823232487196815774381683073743467346752777693167547484532585440726844206909150574142756658800080301788097838049397828890566405846841857315389778910326804908995284284630466207421843959434931946045590314689816846059557678458293866627369295472241138325526940736124339375516360256837494188690776583331865728109609971248331731032778803421558043821097661194999344549272107660527703393067732912445284311174701371515965461837105111092508211227934828025108718208624367136928015583679242185881933261712845516196014836693385187567171560339855417584194453732496464638177935017194362778539813240762927499435631696771878222877785894480243483759642532770919905689767467502374927171786711109850327572174856643778717783934104363773103923273321705651902476496221492543629698783557053349714844616140681390963142443193374566508928606684155021911293933372701881574504445738227553921092342959716182632914063469581999423383370029956980803890542697415317502503539501001601502905341284837823831409294041560499200542414924557591565325426136184391132546154508198860543999868858850681190865828932796453096111197012127279946599757363936763338982527993020823781353839821911865141088677919644586836949359069118790806433708316885962905016620287795937988030575197418592024380437319810355065003651559543508607497381359104011360401086753464995030062163438256896020017186632133593480086484779840500883561300277380814758069539332335652210978041232428109766991856615037086563773997300779258110401160709876157771069103559345634595254390825362171609114219310853965313284317089855349835289466741971347166591424378260750738123344491648704400380408658948334982971549455393846517068710388726956669867437722567155231023367407604326925390995071911098540235024605515429115127604658540542920545244958284015725768646234147125555517629561091566061479588084840684173148083892931293433769129994477894111899889131674454452287889952374201686609340105810326298212176647390034507358847042127193964578663459993561676291346250680759336963990558627993199456223049305049683105167201803801771453709004021579107413228099401096958398568364153646200625888562019399185233942074485716976313547348687096145818103131171838031662120976876914942630884232937722469775218142149379522004478869967852134864071684265877824779306278605007441894324071390473332911521625883093561247201048675659675548590294244384499758176188777983982374262655041599747801193798260181946067534565722484346054232385169489446804941843168402162169197425016272254741262715568933113437452339654658643648026911944960378338810713179952046674038076651954098828967734274032870869365163835677340153471857301369059375305466906419498955042144488911630985126313483128316452681622851732003989885461792694654033133525888814477761574772527549796526872832128978422642249374591143839878392069340328447974194691660298226494097633708663079493146360748536415873685379625947365731035821184569215174270721581921462977275322449466323996081888141329142749412917287002725461538278107918879484490619105042002753411190125170611764213215686431122432244640176410806128005892513047565384793917586003796494217697896635763034246166607650889213531093472926199312240402612060346789794285008185669758581980289955204852006090457252754203099478511010045435695390038832319235626424654166310114152751190070850444443760241125556670508725116649971024711400987019243817583737658166257318722771951796093254896272086180316277066203206484241350506255072964016830794635412041394390854111011086595435940161572817725228036181868402502226277904297010779775920412263679904326683025845530044280333335063905113864230919976882784648116087572011770844558645382170622427673817683818762096969434312049307074608886813393325156302128587963827112850605617590485270142024078432149274405732017884533974994269756170111022370383608737727526272705722178516148004663873334734079583622041642532769112798202492021692272242358653119404233682436045407477004477644059513873631681956211633268392506341831011443740456526886138217900652975255555812476487345696662579932974449364815755365799956376120492306661953710644335680242729622933189487555665947904769143618319035711175636425513364673725515541186684524349458187734864659018692795189519130514077383979304719281937486245655174415009142641577446958926131811390412486292973864860337155300083121922796727848580345465036999129580665662343312906503877276837856047431703603346487621768564577241019137055201951742064881756507235212625791969034872147732280808916404981591181235633820900923839490326591728215591566006246583117451775927727049280561679018092617815706261750975569075586290520031107010007699461976816151510471519284376874154925521301605517128251007028006248433927681045654872944607924197701444017686082752238646036117984581767522907794153046500699375449018626127135475856705275907974130014919298581807325555945628400504831335834330766703255086677855337422448334146036296150097764347040843311083357872239807237097157430401118072837749867629533295544832799383033715721394704243692694329098294149242247765653733204535459251549076080087896069728706750452788643205372115345856684036003229204629809289887446889372081895485153004726844909189589538319801437681750083809499086544639294069451990114916863569266702956616676067781236104672297465667546907506763844454727667023911666608189022350095381902634193312727068569746664785348417655059893381666176420741738461090904868759555410893378505544536746352214935601213679249804533172871152597472961463660215343061915604917985752311539761505304903391540203469027739924806678591895956570948289287752782536744344350021944414635984005837806263973960325878581098861673903614687372123652423763022634867417608959184396646957772877881582266696593002220453581154740280921778628992489770877666212247282690949190390063245224788436520639133111155393050596663742707672510045788835007339411423127320567213656633141691590846564798909115365363941402679337435377987205594755576424010287908775016141448510646358614543765088619239538289517773196046198214468530576385325847582780625554118585697392548256875825514621217032285735239644733634768750783259085204268581815698438358208623464734275098888638457528130654046670708300816814818804903901981200527526278527022673648744737125541147539645239276484951747890638565228867144493611717634565680298267459487731086735564537426768548332544444586667191201263954253983216039528412771571996341709519137565862744523304759940946897696690759359409996242123035530645860667235857636759958783651798093756505232803125788261078013980358924307041625223983380315155693424902389957600235845608724789974262570590349149951624278978790559025599676987045393049699987256435733390139953784394818268245180261947367666376425176874491232208417158144538925018711107544265000907338876365872276817769682602926568474816311395777567552227794783340132606113058096209614994967043138892232062544521469276145312305455746659925885728873079736546280082053091262144615314596423495933539244418109320521368664745592709815909003444194652397980724669429789596244304239546829289312756551380714796728226673603613747775094853538899456943818711119445208639643916859861049579914600222628690515024128321018869666349931508411916233680466974953932166748195361778163311617396981003895057115910164793666405347147470143360159966410279933313779474337950152979508199255854371885331736033951101466471866911826319697785664658501706019161252679820878935231624318961212042362263243457322845948250136333435351811368910870172340538464651943327436257664575271547185208366893567122145482652778430800598309536012542897166871120498582390098611267671282749766234302234365650000281505819368441416642775890972843221995730246998876893977281946639365038316768854104420671738062051868505520868125317358817273260387492893961964413140734516132112358913362349328489634745242902185828862895950928631143739078997590798406594990518051180315702786429467213141368719847168089326954789706919910971791620419664128067990830364982371064754636883588064042999772692580254343720013551719885006696441474360710381874537117980323174690486812276021185795568139598951139141264614071013467977632668862255095619721178307852709298956004834392690330812119910983555908043222214450234135496285295698178601393337523178178899519828741905688699691669497114542364074460330182857704305156679821131342735500472554349243859709339457461886279323229145075099741112925509499917872124533494606759202861663845546360327938929892610891525645543919592462244922166557532077287157618790065380321800338858360842104197546739033392921782998051253365247790991305149020279689168959420358819673794867665995400475048038739133804004282644121663301816147348276062180017161629897429156944351811590639851203118932651945656333219557105312349906927825257055852361144591473062624069976549381543530858132541670633028280716434502342566700166564758405406168079041200092673074966183962279825798077778911331847142928965459440723387021086163642275204505932702022841838639998224729066586243686407743136134951585473003803175424987093952194928226187996127063173489162536564665846748862792027675598394862110644339217837163020237247337950478891575934736696243105832002427868850587631461438796914666395756310358749155578352227528997139579577299746885671953340624720846173511088395903853071172582038861300669246928788877546017712908503030519972975502885256927951066953583507415196333774010113463247809616818824854186846915599683219748558203855332924659350389236304738162926457816845128160811560134913413320768195873974088518215603175326708848252605312066453012290029186957945417697104471455740004993452078577232863160303140658002575310123867245829798803393406059329409253058268775322784861612751684803233900504394415793702493598508136844132633615937239837128234093047189238664418808285382561941050725737744729412784553937642222728544147503331053162945506838923230069791499031634051246976846441273910322462166869840721395983234599403563432975720066302321959490760755521702589781687540329274249996897319019240156497390045678495311024881003733867661309337608089498128751753571017115344779389965500476594763944838391902306948186166513161056988169568287784580530308817632171884750057270506468281981459819585458153380211839796972747512930318844612187625214602658966599061595691453191454389634797120137133400706442180556454334393635054686077856381815195204558449497787222147853155803422539185082243398978350836636799985026346325620860921347342300981011171387611530819429558480031592967905456163247196295406712709361293201008363845690178251468801039433625055262209458101223584384709176711893382807636776666339860030956903279713233270496834337327933770572770045645294391338621134327522331323028422973300024495752626890244417232671567412132703750188905508112925060023383886193766103508881259360197166420950904767263021038487199424798867369247003431190220608782432448899482286077604010375776565138734490606904622684083464101213697740802196822372661267355946270947668785363336226990138328673627031129533487203692261435109509597908336235683781887831620156049883872300457568588696254329507533472397265993479742923181117268954208646561111315188545187787785809612334323014256228605003357410677941515097760896333895065849432180662865066812453751220030302364153374281449330236467257868052635817098469785337293829120991072816319093173432792966976110013300334994580126473891310790225241980532683148031182625523123020371963296320595246739872604153993297566052840733829802598638148889134659957215150307385632006260194057659301617500031359922357901963941039807068970769959586532863568663150597772458819176442398253420380975910388769230331813527588543062941110381933632449379994393453759622573491163733877887273076285099257782584913915494974616080888272072352838915709641072444484745492244512235139032213522424089504926729879693455929096911665149258137439564377254508173793749411259388618713132265592753290494641618437449036998928171667356708111665952230136375339023916407741444617006666089228469466012659152229586276064633250780453878505554371140945622174965540339078555311365055385426866487880994194452866369382446391848751690926416583688357294096009344073105156169251750434183770223102007610966089435344243993101539168342585485230900582580664028567834596755826795136602672814123037788536205294292624462925863001753387564724940429540272713587045445723251795243660184549731952244493478194692264997655836467915841027747585529506779252879414268006822713675896855101335084074644892964849972483852871713668224260649870444496665433396560740182979545493722829314099240725781634258744644834598091971779176350445125172761151563299658085822005379896158861527408128384492699861900681459745956182011573684215958652007473325744852028215362308031932332318924746690618229602736461677592623220056855828526387598407311519436765657550630021429274568122935705171471564713275079535368085650931207954562763921526858372379326874023812388187225418427943738366076965477010865020439409807054130938914548294089987457503725033810717995275165336232254151022608581666004683469295720654947329181178623201168026466141732469818217268116540658571830461133877787814122219033254022383789361719924706256216636042617095908122137131831215797330223425434818655115627474563951111146447219787223356824725946354348562164600803879855780418191637350933117833892792366349294625810803790711735481586850060099633289213852319863012255441469509020239714886479766073400057628182337301852911880562662905515117927548421411871814541568145443722400721395437284813887826935433139634668828292470113000405562386765851001720279205775275423547016847979619455163961475002890024607236456238765538678139583009425343381293958024442648125615383353729836827140199219042685457808568726559459724685447495833231021879903660320523663325354386953073679314936241717169893111512178338040998532994024066953780959494057820150961709771144911339010023823255359086288449687248173390984958976673770639104911196425783227579034527906712890786400425714037574845372187840073799222402544864916708684101376478633760460046340145076664187306430123662433696354992487981779168260325557358510226873184826542289081013643915462563787400956418669138101105527477844738336990707462185613644758224745573893975768775973249977886255692458417790088139240795664230263228244715143647257710263448239699964257744847949433713570287095836173674152474447207640323779283707857233842415249406015546257073904607072457459701904327703828067956822644224954754750837306976127360474667383058751639137852430136021070655563857893871865784634819258182643319038012150979217298919671723277116853667771750772920867179051894921173145344511196814839029600027085126345039876929281544840103597178646924644423586697913001095705340370437737645576115261350679580564955538059930580444812603119970368337760073624329882304499402561826793485711807257160251782993735522170532303198044474897512563415263596599254133516821021386890221973838648022809933415009952553663046358519950992963110428165465252531602466444160806394130825141746548871501227847176109447219799483071815398778078364586459784444852279415101746468059982646774240249636887083352760372188725212438985447107034054016840408427344419772508804278294372439184664804919448897831879128865320976388985641260260515129346185487734177075182613961484907684447702886866810453759953956120956468054720926419176782867420285052626186780326123013297914826894412949151274051511956397276120862930228305863287195337231414257452595043620785221148248439009299948385458368755163030560362321282681379383011590163783151549382116766845490852310557245860149992938558285929030585150610884492605199727750975137153354667504621977485523917212241015731971591840459208947875705928800887043178577708901570016385681266410141415048793183543433441142418859546196172387076481494920018850918162961292912682376952982406969397338988627951667159951441106320008420112747657515159924930043096881367497906307643550072401260913696481269142132382678343222003868383043684584022330151972855515964808721026908043258081452537671802621578288792422244412428440355278284540050021243383182934210680040781894998223632510764989846057829614476649560935233581126968347875894867692600743620013684630616212904822931093041520832151749078758842066668590333885725403736423201888500365166997923953252121921140200445895593110673781496974450193180802078495264452140062422125531831817434568489486687426620522482241055434493152967883905623977622964222986711074391170561917460949995304143427934721327379923974639294192087676549423293170110670587606338161653243569529985646284127559415200065881290913511977232835926002496206084449078417216161548392859880565589961954188866421435810955650075050435394894129837658352554686429743184566974901170503647731708039408673380572835250555007486806138709941151424826109645513247215496307518252822556561670237499105520983651322105106999964527706584917280478406816618272851320320191224444935232210988655119234714936547828925083021877848208560331231126517415727397584737585904256641997261845191452320719428691469526610909566225999079058648105558137833596915563897654809752537939138948248068514159619791184946696408256659505766112588573160336690344920388755845655156511057429253318875868206198442667825507542210929276947205646303492653425990971208622109289909067788236757312388166145367037361014343187011221633104466512621940505740606419299600096827590348533868263854367370836409745747371596778992549453434506933816375723583406506148353160201366884309457242734187208394993416303075526050406752488449434045729240310099340004439611078014484505843269798175418561309332938907226545087473432296370533180215653084630010127851651917720975729354113197007247753607627776647810816393350630704992143746833681035381479609470103530884121871253431864293392023437730929650766602432609445661633734682671002293582846099132172515034653495968133675867534107724885787088729844482084324355194466695187049340949848223807690359475784152605455704354483607275779369512691006932301117227408424747201869828281989313527203023163147518372885659482203803307033390292631784911817386144956597128391950896051946127001109728831082103099418248799122453845028165197985857934596642209941057278890918106765458723987696202805882317792901024978408565750896153228793760869698875664844881365451489259964198589448578576102125097996508400769566159674921808969972825069303777560125647453099879316365339630492799636228041394442990290687096977371148640074778347710757652738035701488268742491028807759134660232742979940834080103703073863731304900649721499714081758443177259907500840896752355531752575694314440371121407016573266517059816747990427566245740892062311790173753289965909857880134799722175895960053476839871632912346630872143960039720463822838011764458708379128919637556973437073084671773803140132916004403798959387237263103628462511955680530936995874358154936580703560063666464462406642408289186627007042849389853165043392814318387762041521523628829192128960166193034756465454381292609996606917616757220519076357048663747163423280747494916158020829564887035588096693773568087831940844926222571545558682349865805224445016351183961052186501473818887689798385574579719997375749411393895340212166407003754742050239094535686883483722017520658885332931468721231497449756823531318561024702845202464659853907750064731849816083163104849004628395638233192728571324915090209099639344744606517932815409799928519496964440863433497475281662016579458030791371411267960336203972400448740979236145228633797249290486883466036880998667129796340333366958965638638782638103674037115661308017336530246248545435839310979138587556740553920211747446787107360197519109855359070228470359413169661926284971332854142793016083947011822727945067146062695653733132165534288839693508917185417867983541317296994832329242697677579957162966657258183270889990629867637045012065418196571757075934713330123886071251764322994540172375963368004305014000238610028261343226881685267925435020652638402836935222393340386205867459345998147875298097478341951700773706474222697440162637472282062469277190331038231922627913746136274922504520973749067099887728777078579495044723408304714026498458937368531551142421625349722031066831600784857547017109245632040935019017087314260350659529349640646096600585318068727108151573980641133566917445110219985991536194801461356919081639772459612812562760830602652895089601761018050279464432663153305624173999910505147231016760467514678943889348279873354148804482290768244566076184366809780798745745527238460488991669048246079433805285511067249441229715651025527003155172426027142122418286122270111301861125355756761550040279769150427019934459099794841235536026558110093337583989681355518833136660765154753962931156327136700754533350457216698330116392188119665154977443450814496842115711527470848405962293253905199612542168062015714977717193433703795019778774522754189386027912468107221065117430584262513351240260381881830798923866875480402284655515857436145421040798152600772458459112011486568719990918009788318219436691245658549630237011996373482758255005963324420806993384186905089765871674052218412470795624072089987448750321474825527993187629243317837353038571821338936742088806719305705828682554102851694849248097585193214675267659220335999480011829093283229350844782824456378213188117714599954710652460079620791183868389595269904169275999475873029124951434943099875857265124991781694021400917995979862561588532848412117595793848299850003195511864992002603241903428789547543319380405135848408899245255176566000742183673517129341618042577141516198893907748849676990057936667860003380712630284596531010845455508559196484758350157006198178320756131094281878596997778135229663914431465298864958527581740163620567690805308890912981896967363125489298429776179533947811132887064546907287165979343886775462999722871302549248357388022459029859449805511205000570408108322866535714632480334582467658032927981604740405106751552740348280013057481003699157445770174920355314864526943161160667692714198831094308447517892362976644198977999184790646263465050749289477249534594096871805146076105231152714714317389124375084168798271646122654681350579103267377437211526696392043762711768575563675065733426841613767284789888252934506246955504125208415626898925042807069857344738694814849726976367655090754851979913008871530745639521259519329158511621802993558710689304748019150253156854121546180211246953570292704531631914417501031851974570765591364573692169013533361775286004859551195039152089014871766587117995098531970666706082241141147245178076057938705225505519889585691306753431422351982525163657672463412554850537027601430116468371063472087285012402162546175344896108525889084369902455142225347497967404780157097774862161305987660085653299021494911567123714925995086313912118379318492426708524717849230171900267277355932876511197677948715646491002133124226636321961693498663416520199878134579125441367747987881502408427555660191054045121776904557111274234497699930605659826837527438969143514500989403815882786966456739686786387476632519187073623235981059831242649248560513442753626336831358118467481221690591484993195361173535720602521033550378792832788968276318732033682713866955469191916179945942142081793154776403050518993312974852702812433726068108619446474986890986723594043883198562911387041193900901132112678839579450204956077588210551766462206733162102375366192103362494796270812770463144507690677731138016964432793857281090040090243588774187732529329353097251787110734363145898047947250794292133980271709922507784363632770668610364466045645373257895562726653804833441734817126983881387353808763433922958177299869721196769510144309598952156711053607817273739842548130278889511485507499768885297147010171568198592373936737737005474597499581784360798993447775785156104039264909020938436674040169493890346934584328009691372304838433240671833046452714103327745932635474077614366865192192369503450264142898383340210979544622135577858933540774624088524765001402063493024539749069489785833608808871583674739293996208429528287613921967197303680168775215975548465016603674337094049789968993785972805039430722801939912144194906870575604937317764517352476982348631671256165190596401870700073624796509064983477215093703769083993199047972871921869759241924167555279225666762645170043047383695977601551965714809130583423228406929201356002137037937104271319510571352099963840644197107014407676141156768111484938493732919284652581428140097614070584100100884808325983792045112977301591605552269330150117921927069372205458331816955402907565629342310775811992385784913167557448383611013515629800870406293366322345113418494784997602301358806164303016858382967273357707404019946234313096501252932349286788961029358354326182188714732329072728117185930583680666628489357467519049315744231989377885461544052475427540785109067966250545158514301077822472140430128567967776248588643112585162222657220023370697882109398224976338992151705988439985844342938627269904697083219163800732637454710460779126218531552308198287150281137880610592866666766729366149706962274008749413284213234001960015331682647152403290670283090957176200288299708821798685082285212257747377573514090663344746577131062242817287636367883080150630464861980073952773870987925810786751300024536705649199483123905445164663254535181172481496643746468428432619992765093798632894521790607940105305870883779166340477512740188472447970704915409844922356720940995239206046851456810047946283504425378441413611926600436173058758404266970527322434634782952098988432016166040923328526837219517510904492496191558122774449352638901618904300570572530665227790261562992225503059332439326429173977101345710990664147461479810433341521514381658857093374275642437866958002488252679683962692676346870803206895792291586056798717139654188031742186879332320787606787733631437118341284625852088938512985732002796184664649469923297846147883154341972289860769068007357230567069115212180542916318909357030567617653602508518776388710825666230070919330481772923607647428582196992772887334337901617040181388680964215419315046186138622744446690638916515733472489022622127643847840217085616208227026538123027202001601505679716885011954385181924536509576715959759565580416816076845338339738182091075992908804062125715615453924420164810931839411270275872945888043373493465163383141478725398182021121164744811923279367259128439246038698324559271984693698103667510847232450811617750806639190421168035726023846814965079732866299835388453540641662808234960960138898931137990400460534002864597122163519045471103472294232431004399424643781785014602631164170907010805615890959553043681131164502548051314023194930140189562937022302684002922960129420527546719823437666997793948385999505062629678736931332738572915599519394478223125120598659726599657060590672539671186959306493943145046214989413443916430990936509788069544480615665038198768442765883867447140681344127484072574401304402421819893201601951193294656681811406129905456657310726568803656727292633313699314162561263500990283963334111586509521138483014722760073926807067531955807216707926806612041750448628678764211460321370603167741214327153209567182721361787132757690861433218510582922001280160191132239943984578171807789487562744150479605813487843354890676372541555175447118539119624399868466461743740509001562498460814703410661669833291906054503341854320402864638652025153316420022374345188847752448368182356702062912220771412762069150742580343609411285049418335931003802699423955892617401598331029126385855136152763649769440470868151761577839822088786279069282949178229280268409285147020176530431001702145512011051390521614963225280993127066535610154510449350766162272970272685419153323496858056212019200062438589769890103644283216910390626938745570733880991580406071699351270418587647737965566464513496009054432532485626904349337871234734629806170648789320872330364414907867129365043074300940876934726102366672305626898539390305504832197258337330409019522051212486157726218388030213678347597993320319015440134981720733862568470710502852252508593968968509636949398115694399080530534310483297127380569017235910823154551398430567578132318841815043686870118137603358474599209492990156665842276106557176710380914728497597231746157250000469857630831139646139682471407193665737600623347084494742638498753974783644813988126214191092784691991983294162739924588635550840248510922534769061163244511479229794225364564656222899139339431564429475405707891303726215077114053571443641528264186415503707916106674968256689728639218581489463543095050780275409719683154527299816588623491394406918141621638474713412223306577781611946980190620341667966560631221656592071379013171772747427727609650920206987533103747547467370147447471912496630922549560614977883658995688956218154386818382666483202094783574926937189164393210152667867886196002735836604178653414958488386880103332871614789144212225669350834687694343246393273893673422134062068569169439140518791801583607539577063121648438892019356211190464437130241931488007549910870339662892374190199915351358808186047894006630751675782605279448821361183583435323380855872940797190657248577723115723294005373420171312870166823968937238055119551410299439535050904416384102612417833057955894790789205603986137788389791769394421584693177288535687606330028042029353669874341908940154029375537777305979160341996851556347085799359287826036160192235512420307604010508582452152074494966085411920134804543857662036183717522162791660538576489040731697066201331258039026765465926486741720282689879257378050521950835004865841879372821231004304253945483915784101560404220171400281860258003698519171902836958430839413345602521433717473457582922711305398960328583840384675731915657893346923198874093527342421415979539747687574661401691699527216653569025053918266656152911470500201111440768173262468512246227880200981254529866887669788810561975020808008804172449649969457043977523098292385681697291505791356587587680735481518736124731233749456385660592662651041057671803264613678482119264025260446651609329480474542927481733500019096324610795799337853076198471054560188020818165142524065085751431265206451327426036528750771460558031339917841682651768377578837225330056270621919263751282368198544340196190602629836013164730508361389516043869068000826658521359044806800899333579353370668099179159139357962763091770775365109844432830820054920148874710462016775326947966204411212772076480396087804170513347314598419508761073105925612510461777320983899588355262917236694480473195265080557000424937096222760147426782000725673017258028668351607090499300584565626495968109733822958584788211053133580029163402086140127986354357892044435212104848787452538710215701966808700013214053447750057938314196819882738429035106989017760766069584046655215547013689124878804842300294253769342310233187434661856282892792255947055355101472722421537216523663718691199807941165487100968102183048706099274327647295583071038742147869191821403717161342729920978126137006270537292150035160730622824399192090909416234341864896730807049852272917976434298663962048134815517924480845666416105227881788788028200567887829408118259458950144128194759263913234998524093195707038303502274064382428812522368079560674036760749237226784422424629018721891372769054662140311178952113063584267364120394871798293072972105671752300518614880256761945326984685285967094142382986714877633738662622037141369438124371992668068724270842477673655122852107132079628282642627387441068622973306787037219689476689449857815959372566542617329765017165725116134175702598619022810247542591516420961956414823511214859323750527462052079496908629486533783799710725284707870920425906713359727344178478918621038571000558456595200267022774492520140818708232558692019412176607164505159280320855660967004285293252024870971672120193305804530713022165141040882744737493003072659056193069446882324529595761253164296684496775695562972675180363515989895724692897945816804821354769081344827262062652613213537336794152061759250851459219850177199837176194285979307422582735600448074651599081367297736755391459779196936208660745085477015911437979378709596632567392162524249034143696002647337663106280359700374582108800505671598651750684436373502266584795888680100476305048986863611027067104334726433459888979597488384349922104491849037279742632334181785807853393815112139278947749470850244505907930807971410799869422260610297982807692075281542582642395912692014606539352860532002671279350785335145817825229284238504513288174175304365241351632255872478764812702979065530678619081507070458845120629712613179935297799611695686669152532572970725893616516353460754028856158869296857331585438382171838228205092656335309147871829423693437008963571557497812009893832586681608466619086544394534355568067981106001663164563674104976133350004372327433971607523057638238357835065847406974580426561476490595971036102867219113510744596523559752354451033046695050914295094921139807675844398383279744112435644659174774550577924932783628280259565292273283717037745707097156185318960730246948268777168150867342954254145442843985482120140115706172759105623233564911151582602985466118387874428008157027562339779135714180979818428377008503440060228228294111942276252959118582520102433003335137720677202008351212538918488302510109376111407874376073530809689712111679008279931376521316913143997291624206386686742389214026749049741335993543838795664573689304395168557020161113943722977747130212382868113810613975909773669213259839252343501253444312015425587673036135703995906189367622895522634455031201709478550004086925140374375698416451352719205039521490623392918315706444205003051833196892224477978523895101395601002571064593007025345517436752983506729462219687727563085264382067437942696282291959154464806705061847875457774890307268914459426691293919516853288264542070669766809982467201096605877834015901519443734705670289775116660371806114708328943594116540788917999667332536744171511153151983944842808569530194693586315811458842761886172569405475812241555222176976632563085784252756144675103266936076082235706779497825108987721936364922259634159173368905506084288058916607469384515366754181049411943721804121808135483842016078097929285917039009334730438189248329699919141380248097199910401232445756733695113997005981492207088103791066070227433090005111785196667001795581665308312505818785152646190066671961525080137801933378589493635462834960053733268170398519182801596631711063062081303453821942948505453371053112322412645982373244698855148521073619379201105625037038689535507605910161756058315156350828596586017504553849602401661534663958576274955417790956828980637218895105027876588241145019182215489265837626732935251992462704391341734707593783920203430166654793207022033665129059421915617376529972429163893557688932214949900058332238519788968892523501277045796355224214017135672796563295835053112128459700455538043610972560557165304262336452057640424964401087241618714858114813917160028482734531365731039497856096748591777394288970466663008195016904017442558779162768924395250956594265016229529354481650142004327269846715755513277982419973822385635471095374314022968690524160789921631386460601056034365351715532673528081465248461983796735205291336585001216639189699150460629966818480338776692504976683610532400024530680451860759337803208294601733242902962967761135335702274089752443491280563876118599982451146165562121276721168543410166056086260800208477290192601101863275474335537823064004141432168004448568752112991447088117755252997789992808869995315227414629684020305560184444443931374689369005306813379219068304044931283908917357697999891143453314887013529004449206676038551567381104462717750788847435258284877898335232538350792565850796652719410266320148408371945009088270548436682919561013503471989323604353657541731080769625451949616058610152872543886628585454663993340032064352878237569501108195260177173903808372305522704494932097047783214319972610082781468961827432934094429741107138975890945712670316067357900830988716784822659651056825451280449659814134318110528116366230263605428266144108629689238966028425085447593944175188847361770262207791555857188046241758490889623427277029788317986010559178856426393630812735104815466726679031609934422288648145840464424739907581698163691295363985007880820735013614068284503165577495044883307893404395168731975049501408289136305871524520458950900051543892803572812162885525978779542440667640788008431397369230478216590130098270614406372447133332439173787075493820874800972714181130057032773221739408773139464807538356940582307109571559298717647738291795900696070069864900018339671337052324723951607688557295684035799607669667075578547294014997363831742680420042705787119584366013779993113405618880338515768598611187927081729612310309323903249100824048715894747613768373405751337538180486201938851523324219344064543518116931768114533113038068162378518617061518084765059276985699641881161891871461509551548991853480723282546802141044443395262619300125025995048374330121090194420272372019168225911364107868394919880231068237976360089149690784067900238816645810196238898400403575632319126699941247263277050356078053016745411553861867530219682736597305075808085804766075268427078898498794248448720440821557123394439996391545036203077975890613493282934034344684735834347824452698224269734628448471068515380286075610612943623177453063434883331950226183387962173510454468233674226953026332523145038858254630992357559429959409633074334930803758264662381862454351776820923234564493867246222974516776623148353841093783185643197965049006118017502064412109514316218995857305801837749637223915745012602316441652229532602525112355575935907114110667543833084219783341964417282245850160533737445442653336386611859190521053883300339761932911561219153196409084366695829907504992695152340875222871531962012682965269518310739723681077932196098483721491398446919005272694656747946601913655849123929658909111566122599209569746070728548493896408741588383487893820336174293186693382305137986128383827234985322302720995432035139837578391468299948472165456015629186735554385567335147920127314910423044896935871902979629943454428081644832766453116675680689207905281643240083479214789282370671313604064338756847636999582467774723970309631778811469475608646067751870218028266600424059507653737242579029634401648523328831630926901813693382693215554725318899712685909123673229317988028898187329476275037536200385198900615290083402060279420092231548292739822237834762350102982747234826888312568119159122968963151688227091335476908774613429715110561357048105024836192934065035194653560311725614246672832022090665436205888468713936118928865976732668110891827108947441098455637371768401489132477266070990124476431002633428015223804449164806081741686892699357058134034496177616565266261026420056111471671412191373660358904267989126129307059853774224707461613207473062695199725402173905051289654811275239173152901570660136156804837183427708268477225482370831591060160525057170486674868705995530836794278975317355714016584978232308228812821506429232466617201656129963777109612631406032810278668353794903251472812424784274307992601936452867062486564943287932356619857304941837240524685857792445198940675290111703957129393714587431532800332411653262812865411898743855779155551080298627803960701545716152327603327312647641500042894335634551745640502944426908339271321832952380703875495242275552407535346197036589010503243004048399768908006750852403559789098793999111123641360174449213302021837474600574389475343981437760276296497126534739779233129000384846149620387387335161815938238996621775051608977563336832908457842751249896903706784799774098829283147915718177977519804167064027585929949557929735919261240339277301615600579356346068418768930633186518180168436390923180104236037048159124737612356748305251319692154276216678487180032531124567255926373370849500042933149147516522152945785757627865751943024830339174417772019265285035835464765511738516147611850116497101212515548837913904833857481598296286989511459778159594910057502029573793125852349398338324437818370142854517344368933470085191119802016601936248231975008122525846735896226561449411348140543951367887442890553245278898087857593497770224937629211709864622619236903783341763204965045726110937225975126878685209795099472374896276358192405284219076218227474275592812350142562066421486803943732632071314189433783966648866017872627863332887293280740096862399273216308010738688300788929426803613548097134762749210401240415006086872955340230565849528565793473917056360622080631272606223438120670063894479823957302006020772656692513045347038042160557049726765734621335762851570327744911097457666649535882889592496403944206166594000805368419437000242727293206832080502928634131047130196843272744462528079770949574927875420323722416981194317398541107427023533184197758798362526160704434445428567202794661844914362576261449398505588993013678391855017796209872182237882940832231402440790415701914424517842614521421215142581467832955535609741517563665723475762877402314944501446376933449373128394849690867897897145916993283944788906611081084077249726851204569704338855337400029005872520970969120813300901409489855627970724074981843159207594138599642193541254820100654019452300256809886404454319767044007353387144139917125684763576736057671056373984401394162139548004864390301882163179293741176097792818294233276631169121844205759389193455182879981586737606228269570012713764895540764262117077757985461964857169050552800471033612737697835077143665646083525056066617287552054368861078844854095084301636392578704485516502555555287476745987601776395651359403924764500734111964955364738098868920718390774385324056192805855448191362511534796621906393867242900856795774864203816572019010018499486680276832728468569028020054485774954483697017739233934302498069035857545818715543498464375017719044894724614189297940582271547873657011379032041010855498441592386752321968318196254887046183065801420364814002507959685801899205431961060337858722954534215331939169892356196043219757208889021322817153240251816235541249705634427098101308754384868393906483609855009388059004945659882499747956285577800739083521791099843601325586905661746494019993938894477612822617560508805805424013612211330219800259465822793518542941775893027312858342123140648033560741083437264945020485270402910021612859241556717012499894556335784402666068700039438649813822412527317586083497694512532407880922165828317543673956380603990298630308182188522444189925245827276741261851219274285576630592307241629266914079699678489915000318627892846887855864377919017414701160518358294044189476682431685387804573949627922145950376742902624627972793652631453459550054769228871570890690738741834406863892157132826844918768458126191079367920850610912765711748978593854653083589342439822666795343683194231477982519557534834566874138157124591186622887694113606604304708419709762474577284179629675872628865094875384187274662338635673007448811222054365808145926959050130639313655729556008116041466005230419940835578610249695988935521421721111883285181084712941540980043654131282795756670240257358972100015563981610993715083725659858965464208148420956589374290058534664012891070680833093174744919336912681187532862914294736545681594454526290182172490971524400719376709035983224342435492170692651961912617352184968945334862989374255881109402061383135646631010257975169102009559115128783521281494496731175912059601511919705258032134897443078193785874231858601988861373682409890773283102385930548629749016680004260173408283194956540278928671185082770557916485262010457295894335850466343278162770111681719898965820073249809716936907841132798860870510440460910046506740496022866648536584173227081654224573532609268509104677007428694487810118788674336358042279942153206921771515711176020665593311147626914627753242395441922511595215387166844072712885084101155619480438146604937017434123708547433229925017557807665979437982129499295371636923100833127956591138454185270524398386856619442126466912813905310366782199526917443179719177408888954861536879871936586701767680740877306967073716131994897909922973958625541869964614203242623007298149127793100761467990553247350629770142633513664557900950614397332811680010077335657987320815889472913748496167579345809034906008456501817570274193415428993897189349747279810170082111003933641544961461931841036592557986106563166574670323491300160700758221195162736655952114673503747180829093171088983392211060825849436518127119791732378367022122342047223326545456491782223798463877011917103466103031113285965148150921068788108159974085402704721359496199227442468770134787039352465448659986879787841995632822487017835447931529660970270963650179907083049677983379202811169265407334053796092059243655565448473539219924984836614567436322109186604700530778284145801854827124592326864025868365759061532767482307839931853480046172754603534522735662691766027571649263594016290507858944665909891873619040800440423796928918917831479150537433788636520225162331971067141552859721465899782296492911416312764646112441401217094725051172746191753598029906513940342587851744043091536365085332992785527551414494888309584276313491870309103788635822297490151832946331796848691966777388980117929941847589526154037398305545138986578100852209874869413237976140014562199533438635269229855749202520389857290456414768163765298545932615271159889492525634271719355161239919150146965608324893170285168264221157745621929374609523310938843170288536437926532224068212037657470166089550170772924478214706199841094344942885089645076805429030726393812531261673245734667345099334037775235696128419540961362312001343003011994760016004776957674872147888336837030324540367265874603346797602788539128586640920980737020616509668722189181792468678257849245304909581578375909600337425606762076424105896462490204896680400396600442220664912636441986899961817743799863081771903177867416933199125908489181360429721930300794915493554674290200490128541496362636568461294445643410782464729382141538909284038394795123707972793271955108757634025861386991712775328561518016300682616731182530935168112885457346200166406905587991033369794219412667402698957978279841843023292042411608110270378490088817493635276284422115773207585371531149656486532756562446431410955641732615283447302707144545388666959402385414925367836970633505936212970193579610059535948706940213085832127066738870058754859857043567508879706412202956294044801536231818903848921570555932307704478327458189606280458830998862145656124344042482564490847615236131968535838688403931663608099986857851616609368108903505210050486848729850652267770649180721326501225853938653009303339841230925587731949930233097903288464386977765772143246906774218054859636699124927200731554295726120835502037747183067496693407641735682959075009898740013998475958285460998924011293996895344625552638179550586341274987238680992669511901486036484723936116817015332059164356339697105744627087878512694662086596586680491449858568308780433340248750599121013968683354321934967715647470118792911081481140071712436329110548198240370372010301291036783108860517028137112569515406583007523441829941644516616436636553165093040178665846246620527010362519281900508900595893915825955592361429639641343478534931166093645339768102632143456236674459214724492891061884979807027268948519893969561403972165807929378423858564012392494797709562355444057238377312593252759996206104855762665068433670857938822135738231698720366047219972798353272541751621870639819626837200073445342529072950809633997376294217323547386292940996570304774225523645094928049658907993557648754086626532054163014733908477812277234199353341521788833370904954208005767488728992794433529859767720676264121524695139422963895107837749907360282186915352875999851892384992741300264143027064143191587436301088064249437430468189752947199933384039214913555253822670225851950705644328043066373413940768910978501653765888051948813038528201849257459864604145432839492187248368067097521817232342312613224758815976074015433009619880427089538343852912182634907298125477783091643853593740234889270221617606671819424267720463700902167828864432444023903376211199344299204119863880429999866504578626995399094571421527658900976939823064067949175917285595618552045966728766413915548813360971273171813265479694214203644810084540469751680628620087847449398516513695002997512736875694750930236265899662862076728759152866165791899843572926585807752743177999711510915024237724471745399114974252151189398260035251625240392045859329827272584211615037556791531559029521631327126805705326566266384588064696437315986134866568718719228355547437544110999889534047053756910644895842960602074067553398389384541459774603981267948830375075458358530414035961560867663580808559701291450997423369129263044499897841842732155501069307573305153010086852781786984278692391434300762787709897034088422017986195851069528988773665182262882103966148961809816698007970876937037000187239962991524711799597855900900121392179723417920242496879947063499736344932886084866182792211202625660211049597855222453933490437786739258087513257848701892003967207103473252310163329884432063897926969015979514720429309431682509511108529282403639088731712812656130447980749208001906856410134611163957733980071993592349452616383755253246418536642700193543347889604468474806869067764381477406503117677640205066849264504052147009226492326729109423114261072054923443764885945657353416822299425248879967795364183429324597568593937786872889314467949329777886312833930215998389621336608528438031911696483614313494379856999877020414065928530716608361482315967406176156657356134687774646967716219327715402412112701057337087139049257885548824317246930278585329753983142126981340828709585763541647420885446973472606443049693435773557895086803727709215562373824947475638226075745072754842105491832059841397302966509754668319506774460558117845640664566404990172313466257785227973850016426606123979403239568795572593103401186515250855622934041424726301442616000952684015985780534815859630954057330982908469312376004042907040753524680844833085716462113432835536766148441130806394997390759792974299921343655740100621415535259198589668255032130589489468295083200137725243649695384188804679036959253191859631878753591023328880588060910305725869152498534565532559378499892500023968003108084137099126811985610148202702662177985077327717146574291340990407972976041864455559686123571190871117461845581764102913567402740919136125623969766108180254113545765445651962156212814965301598839483324024075201587291048954479002742677574307668773089293984367034741326655776418101831050662840337288599511303199655125952783311955786524298320255276943069219826760140287952882907976580106909264236002790285993058938614119936670682939864824791218023440725040957280810815546351087133073135398387705040355750606135211015809158206786143134980231137798082719579108027593789024719834056715211572935571648715970858641779717599928472037856106316127984385727178859226808994101005252445942386973067600286150546529526416517368896222185974678680734923675893636676054573599964798753194444328801051620941442881805171466314099802375559564229394250035453686986016760134604588320615348959684740555251194168280547015012035017972705089817882640427815170167626939320379005021110548375506331371683828854835182581043755791425643178204278656681300730053581074923741247365860818987595855286877342642958686929544427089031049688224381275266346922168491395420456448089873170571046559311780249660358037271524851804565524796280025414874627794491423827095930358037596641237719007177592678611062996160300011272626962315816471583298774044115900451419481010154681397540335362043275309800521116501258868944591142393718132010692471369868187683916634278289827758281057697766225852483118764330290233566303985683454606992745658573379249991106291708170586189635776808617339327366057413522469608988056156102310163652508652527819013767517541779999636973152009670329087528967052134479420427459223331217377649415286025254046185388244913657480872803559811213203955743536252296014604828694438982407651669082616341141122874084795838289128708864191823652981932266371043322835329736819843566830496528319529452663825147031237212034547199031830204194939841194711161111216099521488656046009778366376221422467132812547247455065137313823204199948222955434297489067953308745969931662730353376854441329277143455702975186208711950588882355862122864643932623864206289839091257586825083909706132923421964829423565561144839450965229155424425995648018601794396244975783746148542159906378562850191947940987555845864978620511028568185539301677302509535050080738560050493645840502364969505564358621037946526373930242942216413180011238116259413493639485244089556685698559907869646137045762339544433398205995361727851397308875643725697332997145231520656051590409278149589119976703715961843825004777236258617780149607502511271124097228858467375594098631647906315459365658442256074308203940792933859466053139817382484402464403475530009668778303704823244624338785063612206460046047552282945696045698899606468697579782943995011695520110214874703078891802909286898710249085581523690289142988797225423643053149696152920739480189976557378234190392863441069931779033300344429713079533767946836326010474448060268747959363743659595760196589837328279243140461590665441471036642971053350964110625033184504771746709392913402078408135624954168580578545885351041940066034783871770765422954929182078735369664045438397421867400485288947409985252887134423386452405425303420257387995380219668794486231068301733772968887789723793667120515452415105373992814914399554334715452792953002968631328828584759264028978964331722295383906826266353978926503024404949038417685803885761302495780520375364296583044676226354188224720622059534788841742788417697233941066465891456289474768860991878728353646627097948396323889246428616730268587351142507299632538291646701676140476232852474939759342894622130823550526401480266398175061791515543456114739179903401941274342381423041518239800995175532083600595035665769316351974570968547816299811405315130851957076080343697045388114619084684448808294079200899954012419812775475012820451583834072766888827987144266780088575861288532295020177230738410205868376728016137673809266060773044972884278208250315164774783259746023060293767260930631606047158728835934877528542398274270827102110495868447527166084462117479017790307111881324753692834053473571915868117808853001992583423174340779275390379957580791961145754289880967335649946063416432753290553486692616967889447161211672929164581017511164712032395666065317789965474200085400115464310376006400139459292064249546080593129532592871328752922226951877218749139017291301506792639180523848326574783308074668834019930604748659121492422604127860298203728955543039429650172671890547852042859463919746635010698018861047658189220130176526076822709192156803576067655945172525190530147848691045401856323909494987567551964705389942894297779205722702845990932800375437496172372429862564165181940423086324246780861823015913762032943387521088995964090974634221556586207115023340331807818279514375785478575047529892455711849384747652291089536554998145457501702584019106524813990127511878731326220733655561685265373289561288856946453545620391884526917601354873917531440232792456580334912607263449722392676342631436835749987536320876939636874035748951623838094987594516538690089899717120401487285237393804414361414027363343663613458439852710136637136073962469049294470667412330246344116938203231575330250507424711029864055335452326731744143958606076204495196290297350555368224815896227970844901772944025157993805391405707237221345266916805948252901649108480392611500604932791465853538934920766898184651909719169057299001611610937582376355399896803346627155621671490590272567860181351190851459740776315995940823521738990092939022586139047569787173599083050601757568835324724477519687108843317966892292619814270210893117462676135034322796271016372041573536136825419552003343103508399886991818535223925204999114506125874942423331430105550140656587113843062733139491082361548884721860295611348855426884686028939314543570473683420937454168389699987534211987612100699456731721421428741611751541968930455501825637837865503801934717319807812413366763163966499122910232738957371673093201204564235866698056012119649325590213559114173731538165758247840519859241499012596771541767900071272474521674847174323091485999962272207076415688058121810761675554913384425425257722916908585340646219079117945511030816114801022055734992342299587287672590396027390104608626241834666048736643645332157113992329411696640021035170869007135319515297801354314538643563592058533567038321006078544754760035867123977075342023531005904200996339438692218078584201105329987062552026362470032416981541757603436861858057801685209986777891835747912812686121091597025233948384716848568796917584137773927220384975834490148575187395092500890158469695464290720736014493681961244647765033874029948679297375577357655610185455644986527526491422306393012408987401022539395531539499122649345058251344089221058166624889046842530060756278920576716460584339485656603888633607085054176009961975639578119687183544439539204516584685121154853394798666913077349708078186403549811194398980226787069204970855851108509071860120635036852084463430859659858266326889632798506314817835465329082244952781571219857914337048931197046390257320086234570981185184699277694957169465432273439604094017181378665671364227410709073006706345425285172583213918928830231827443271206228264673561960028344222648539171364844419686880430124783282854679578277396519614544912742540297597756269660601248312510420339436155592324250458566855213682061995616291045565136194508067988274976049876880194849263307065424837607276116225836859721824832106307777316589458534446350752830612663497902219505974154978890419408782118464024213155805885234342827821227855785953920701127472472294797377093803201035041683011139980924085347176190121397518788539719940372432043624718947850121938039881089842599366414979436766355923324611243301003619888250672429916726377643114771348970260875887767133492525436425607339307819949552113144279814067715121316532342817476765860559757833432464542475618320602011195232293057866481494345380293080711221613740053145702056516039644248194398604317515421084501118294617174685314295573432779176221337170700299517573393565113532561425614574664624035679298964334407835516946033327437893601481017073413897634872933075816320630864267268169468622591123949851208542681901498115201668262340851854845850137317875555356069873292493621678956492866651334232081213527510417895975338698292515144660758302304672489976121915383311470557723108438007735129085414224303094817920841779087619989097315562698073990823124251017751342506516918927480305746250301176852972768830448612162991770317039148570619364060532832987669105763950288427543021015852711070631463010024893392882913844634698532499054509459436342313696879548017127258228482861922959699272846760983043249537539355831867745897557811693459724191418759512727102927083569718038844749260307938576684086703620455088098572527869398390637596704918266291180657571001125820265006188428668371885119418200194376953275095467123284601934786797938903728077910258264237588042582764086774540455314800514568864919614725044500798146348021190626509679202650214221285958837216920349602473604502871917234785886513408762379207306128550722011638930947763904216028104858187943362891064295131403220594043122511710812163601205283766475336472580613464580819191312534597420927119467840233863499446999576520105935355823047991432187767008486710140292143639328724347840298530885233460761587578760831367213530039241667438737961358370279430981723327947719596892034781837696024465194452350136095933720013301734370159322777083509869339010354970739158995228268146612947999710305442874642100627710089910297593434271156968562814730361792142795931922095156560073015864105076978523758326842527103280962130530145598731335346797371905504321248815503282882949332288758417446270910795263522812539906350550779366003845591014444200873106160153715644319695704328102832362503724638594940805278879715727541462408903321029326311865225917727869132322705765868971362332296449249739792119477869293674523817513382898111284679159993518798949429483388379027202284132225683241862418230846899470754108053260096268227764655132402596886623602871509508409139297705868245044833563800570959938815230693238403766805462745351340158485067784618431582533490309357124969012555530484948122144067775645240822410209491183971623657454526398523463575599008225112181592109504579488212616048106631263456497361501952132599885882941037264921879131420899383782026296074066000088384980005503562377159265953309515790728001357674085437597211072792847462550851980074625284793203869927115036515327037620869996711117345370486445283597992623180799998472843394692149836817182632013979920398352038356996756558491097951085009015873357529033700452836500901458434389848529721880333675220110306052617363856158014324653706711195980616603507406275410421776007192061976760431349837041426980096619092456446017618364368298664065054666647155266290770166103824124061261124328816734190418815614043187508086353430782890929243491402734901104485441671750099986868958109736805525282196878334001480777192480873490706191569264557335565387318883598122573294480514403806033743775941621805691802893496876950498050783681895708109502373136557699383245262944486873255330760597167609648594971705485667221642316652082688137726956259866086893927816715995785863712979384094712242843654568039555538882150247969577727908234055345775960383218036317864024766969757696572368988789798538355845322064753933669132719529953621099869487722270763087643840824574103293566099798040437903097437799934794411541161113902063885334553096144150700027139425015835764640655803092043889053354720392930853148297026167376491149858896561170981741933589864848294820692893940230845907907173066944223929341650441429478412252751268679879783107377152499933483113159488152582427939181769652230556423629452226330059754409695210037430362819578043578531851493982840626528062659676198394404494493515116264607445658231741925721535572360035966128894339392544010986523310128620813373962681133574702097528742716972747864082486057933087003055202451851598644295088027505555213280919667066428802753925381283932842855567843022104494331468436568993893303259874813266370668488255266267840201288007701896997591799891631834719955040773019200668888928415793968237080395784075588419250288548613500956844222178103901434272039681147455672094939770858854330604056791885484952704602084953255810401793602082030512617444661563021940948641213515550890155528928610342174800045910790107658876136241609935363538775517591031570112404876875226119250169281211669662895597578675503172713658029865120518622731921909461289499065842245521677034081205484526238762165552342373504438535856816350394958795742037263961883013373590205855140824755126260152396746591297763361329841519834725749443610007412860615947941838806325781006846079378384274448983664274382752686323453642662141780512017327288901559735650724034783116624007455421152827810736925369637586778101200571806468719337242584049297772569304555082982232170065580438161602753203976876258231148615060058904088996597063209876358245846115689169074633238735475223321757928197887723644648683454250581202049872391264792232798711220854820820658255774270493568316702543257647654026675691162493108277427804092796726761801601237097751691334236839088071156111309564430727363534374754019892604240910590032281218534563794733456414796160434852904524910753456369608750918199724271137302623951418055098837236929268135875331856976913772675128149001914416801822925813976825127258418249707946066352289549962286528922019881056698175223258141633557000748768640666374195185141099723411979472522653939715962345794193360593783945199641268952014179065175701624096122887508504609071066406740054626580279942928251893311325523137947717587820175308622053047478882444926271386549923678058100645564889573242133366411869083829024908256129232018678568796616349135074113534414728541314153692685690779449979606056757744046633506914134966570157766211278944030987443429362675347949077805676610587203384511209246449067549505805762364695969127307311743499645739027240847982974947120431870620660748616183693219595606083967527002534649996374454811827142404892870899270272688801619762289708032694098308695792994761572544299636452408027768476176875086008437302827802761895020245572104454823731829650385434639400755194557937203073433626085455261429624910616390069053458631899456560538388673559241889242031302154561087717579460118298224432349863255318844452101304754778356430027628680142268895404189116294071757527223769208724309883142381385403828000590597802714426004590721659549056168526535719690860292472695086514442679660486422928084023591240269109388853397493016953187565600640781202614337985629982315329391315230777948040348061970794411747411384797001626605114763312281944973803501190919512444808574317096103670595596030669937718868720491190716449611229445000508905825561347966099217341034564246822493123489864449750600734773251323220274674277822973296922368693990452582689937386928984641798497516253972759886583416158067105353211481460077659870964665488852321262337472008993756427258422709913091296116699491272251391283867313749052480775900678963261043227260316051832284056651281791540227254256831172712467842065400959291738970720337233863263481769496244439537898610086589038330234269252247019166937463374577545576102430654262613559276948335365676064899010480463958896312918357762369878645985427844028935046383082394229819700629590810348154133999156091708765524944636964087145357152308010310047190163069036800920864143083386155169267795584857816719894165920157976504918266604988871993558329260234220755850845093973819107177765888296211808642281605453471741163244241516352168412245905752425575268980674626214482151575427670646260371677574103077226471302027412098394059983054771975468234881603006136771881501465230161589269607204118089687588610711192791936575173751391816532412782141337620758094394107814862394347683733319335539064249850145713988516104943353199086663710070863329048883146685264107776630059099314222504422120188462724508266246225958370775494171053974698669144508501782541096798680793247585619752329517802895658657185736670690538206683732227412847168715024320913139468762914537966377221154552158321188143753893016668282278028164892778160834882023284059896427581534917728056636689823576369368629553911536949631339323145750739534745546977489892487364755284536866009724002145667180405882218100797433772308353287775844602505269657613549406081453979494497162544284431661689139356278006735273339630194444767521738628826824380146856751649346561897822665698662374841976193911404967795495249358994529998105470921482074848527226944170421926245043993140948260565330241315133980583826037199939859253610024672194006164447441372429335800449350021638367008021964708699085558825500044521853245551867331985760232515778967383646712651292783622609844235051536294799158182442754214345785942346584529623425067185582340155719750843526292677255838388688372065230466120560409467486077976088468401408718834058345192355641015461485139113453319049207402088938584560677289102727596815545501302532926118387572749714505674203553495049872525989596872255782175690643486533707979072740836968088666455854609632256799844235601725122304605787585175184676169483672348432191364716247432467336747473757609712141702838349338323452356754845024076616740331579787081008130927400333002790030679676898487991110211589291079054638859744790279675988027258908809252429468956067547929614698969962768508545924867410567622792810948140378878588913579461737494184050685833645196444564888005860015984708059111811238732318517464949398000421398791495558186318794344925486446128886352736935013318587185401683637153124864686838649526442692124840207191773911876235966940192703085930378370018745203758247652691619709372059151140879748044022424006411009861766317604059227026234240361556025726888379146506871489754138499175054891985302428466277939221411540003445252271511027698129163656409072224581201891423045070643488213968269713735652404294252875653559783583829596272838695297314582028904651606476386755511400244021236416437516650435075184383605295589202599067645471128310817737815135311247435095162776279854005163103104993857963630044584041485059359235706397947597452896058366797748424920771547716930184525138719804414076009716006443377372151841359144934392031542498608688894292379931072977030208798422878254879568124953298666423027095242187712696988100008984460604007155799456766742498800306607351095992134175288067997722166907331063051900186584742911088857287231739391821301405022792126565215159403783174579620496035150042566531321353204063189248075290947200322686432080154068781787590822155778244382855607905768988734968715888964900213378692805288830357715397246570271984306743537688097315665685818107810246507935510537095927882626791281554539661028955569387891202237454393455215246715331037593139777374042991253578498338278448754264417604124655552021730576185007817388748301709913878931236594567456438230958190662804294493827727534945850820903903767612901441873736680883712710852777045743636401354472727125390248414077908337388668937920212451766705475938785276317730781277766802328860722669677796646725889262162354740890416442483123947789312699427004860430126808090908340913890398645650010696777199027718680811176290157120177416565876379258643013727469947166345732097843651197224615162082956933904736697889210323514659334194630976249470983488438480565901088850953111179454644902047806854389486625507692268066682678938430823146787595434810535852196835428471143021505430705891759931569830885778018495178779210198715776064975055257742192261111096438050917435370599737696028888797174884357454817982806662197993870565268687593150679664704489998674747264635243046347227450903341415602331550971772004433957067692959966521809997895771659210479116574076081071210148340470791808002871014390275480149605398195357680055560771647992381304080830790078295537424456977884831968279246389630740580426506748679007200973866808902586008289628062997650202969765092473929048252419718909369889283923731644811472980002111445268074039576263241010518653068155774922325325242276025641672300628620904422520532991029416668203817196826305503339637842525684619375932295135703484313317997532366051800833717063579266459197211689246343551196512657056317533131497460735328770130375320131970855035509804383208150796397730211505393021655392955963932449983319877518540243404455285675490342453422766888618921488085924385697296332620047489261431548287373185442450852802604102827507267773588420873266233663447315286354004746156605424111882847444446859167122633702328468126113108348572482155430291526334359353913139686138075065734066283488343301112905089004206175419412518526299424245074437126162703190493545366962651932290139095875814178913911920418298678607873893988907390728968177574406826948895532275182394129631180764843046254602067118028231260644872860547875878453806607183129133541674782248445528108487206954258031677735225776766810987148705017201440101557524317536000292384624905779342991482048231367327712000662293320286337603243000148968379416735827079039998971635660136011980445120936496970639008828378011167652335923129483649917930840923735871833181391169050407600334399907916030037012321718568183069198785413377598245001057917455229646044996008827392392338153123043310581053889496145025199923800571723689997274988921860382708595209548774090344655566023881812287031860425147548603962298412156799026452338108790816760519426943167420346760134457489604452569206478392702972953249690367557040546679151614150351149886435953201215689015427745544952983675992912736066145246376304917993568893879041028801455402973660500748880762302405025046301653079475526917565427479288755146287600817294801036578136246978722818374292280032552748275351361033998878178598863837977482567479387847340445536178792214987475721997399696697231635060872349701773998367148427257245003523760577254596563692156903135999222302483589837352147970938302021731379951110543122833299201245704857188000434958998921769504865060847504866388712560190085469731807728167930268988381187170332917733179078546136905508753830894888546914628801692830004297818036507377038042309179467446275986702868070435252185407400842418226069344251012772204736391263369016727956799409189207370706555961979585494124159401581526087600769816890507994109902163059091609353745300031609908331789633689036903654619692418604304849783672397991175851848326564773749215162278844298123042120263714906105268781019911679367783604844723019030142398556534113367180514756314337461093357411260461488085300648892176849595007747422981520032455855256632344589239970232026145346976391603870327925732615978838620747501011218748060083781661039402243468302647363221795823881439811788816799123923552622640242745134811489936016777193313717873667617023224938583512861351938658545675345884083540108773776488336757236789059047433028112007079982065132634403049904321580250624230690370017097237209901707038339436626510851211491384633046207935946389647229541408874969486588936277226350342159937312091488396249301777452467742595275371370718817303776151119447891527123529028565753355618499382050595441208355248131757647345742856567426437200979477681158965065714326482813826546775481454884927799534950846479283376747525140495329654015227431623144033266998633778942331265270183834046820373485329831308030903825709326805044129462860597275042935989928871278200213339022803990858789429789761707900970495761132829219224809528299650886250478265332019395833569430433773454296935283565065059945641844838452829852185437283300375264947734278858199861588026906526738728389857361020866804070185994251193612610087759706718391526212110593329982457065382170351867943815703978212952705336230752321041020382184356632787352977171767850672902144072464144049426815038742202112448492749183370191792008572968416032977478442175415652396896108725944781364133915670157347607683474087210265064450269564904959379074133452095572357582756187697008753152418835322563279306636844880450354229014177976914108976626222096523114392101038549049601061009030964924798072242070128839310328248336480582977259656401059792744268128752159006414401941035832479216811410760839636366602124616054267032378442456421380806566866654041753806182898155047176319746233144152676139132608898221186793512558063814907400465916180141532186013833031178089980636032269547319583950574142002809676746395160622223003491306179976617309451711388122439733643325451602960118895933801717098909139183482364952945535304215061085445401028361380261940384802994818170791375159476472902318086230462353334997735215543736591151915197971485610698605191771665992239738112913427267063925778442501436174589254114706614627846065729871379180728501105053875500922169482355354860019514885132172427082986535600772347580673399176155220878204273959625931542492571256585534682940711549300434114764936736028312240681181732833572462837651008468977615242693710697320596624557842322489000220746091559121747463920307391701187627450074450758820437611112590604273818417642855711532945437149523445411209708099813031375897335600536263792285939069013940806031615372790746168883720661367262543542822683375379417540256490124201521924729395829149790680423648805926638404480292754922555540726417810509182798409297323296095843991351449062580033677140567382823150622258728960255780729295862261956959917373961627332912631798448537903519216937672156410470438406947712996504255330469388548558336373880875030882149825784515367532248389523277079611844265268740908475232075443719547330646663999364687462597713054384684359254726985306515789568611576138602495738137461275730392762680089031160170273713596056585656621797279172907217359607115280967820358834726401314695896719507138071471129851434297946547697240078853255197694597493710340550160200954959101456269449358362664920527583411886909821024405285185364558013110817994832017056386433158183140371659950386785177486887784049091248640825099902736591847894969805373652041511902914337084378105551465094485734783027001265384290896622248295286849573809648875531617630880827627374287695941284913448805834404588468717223406052151131818174705625104140937934851480744013291564230345372756564417485125059382975861370030960870699595693370736518639185738076523064740378769293835752776337100602463378654894150333580003523435319413276871107545204993498033782045697957370412264528227611664950782005029313911723706974407153097981038086853263916764400811787251413234654588853897919098589766998666863125222728410174053576522723445422428884594425020710681420812088308658010503200987978925929610394454464306576149490749331903221121144304902876060539111451518928664442389626766339286783337833680119016902720228695630286621322169117649121441300033662344017773425530022556059475563109091201454370824110146258692959717043687390048379669513458570548944881483110775795389728083552669266190248447436607767938023324490516134775744296410273514817684244695539755490239884285672282115801105854993873356539519630995101546463718726465079143299920225860203749575162800971657421673764659530645314023460148626315971998280979201519243436535115747785808221448650555573883802694038893088420719811424052060237843026369428286643738474067820089753142776825489283411797261402763259938079210276772298716319920436703892100376972903851631408562230160135116827392391066487726005559551862534086992984823808674285304580676532600406870622222386417661821169897124738666956504600376636094682943694399946869911607106719681184827393831965517899810020558611719703695064063021003469934547255512601122301117228492064135610812626120760360869331787226257246545301404312535970150821321044309544719560456719874232449756189429444493052433905768796456591884075526720223167447354151576951195345047130642735074555521936633212105009234481123810328444894726718305796138464395464383508375988354011128657898316289275999504291795554965984323303405068377326814748326345377955287703800931107383932519769657416178154396044112580477499651408389882311324970454434921663155603055923782342620494881933465795925179821251695541285218337902717597729597173348888498145351981609054938927970200610738882038985722075121652061259284397446662777777884979870117084067378459532359525548892122549597171818441886124342772218058457512858261250775712679482576541681929325324249765870694241525814432494956917405131298165775273810458765302289066849436617241655728134383499229324585411879933116282080431486137868754711936108256083153517396800802119262471058852920706287281196080850552794602314005574567794601186483932404614025686084851772737823575989903214260375668062625971929173204603222923761571039506317915500676216064852807071123318806560195605116892549142501947109459618835871676004901787943402318918159653224041480752139339478461368810291022580373350859805221530573970438405479406346355684048811690863946441510474483977209816962756330374860068872930916316887719181251796805954274985606376007006020846143469233106561440202830229269532885673845580141999822035381801114759530341168504286102920368894853134892264996075412258691931038155476116079735888153278332773113370773081889752532969992970245219172930695694904944819512488135927710288111803808714327869215164736038701448198584590460300929095333151853940186733412183721295048931341715454557092636808441102039085253990595291892429555156105129676089065210236948003210036857962529281476859498756927382030371242321436219398348690532166411921456637148672651330030125239493804889192109152430146634879132029260459251403757917565782540515702555829900422815195198039805313363875329252067346201320509021169624517163444742253361042087865785706919408151455057490246440844563696140250790626979716409106914262378265221273030973205486492811915026021478629325623190973269249120693727245990349867766368501946556030895766365250731304913264795518742187406497321640359432583267864861618976891547227936286458208121857154904543268509967046668863030220864862065874248245831620960960493902527105890001447298006596678241370123355099679982868998484129186418694888248274763605093023428266818825537785947273618580181152039643916899680514091728389367144411748894292938945281235079864251433237457832943324427419643903584514330784573443025181441733079788493866920541929538846874488689429769843592152452523962105998298013596205923812714223640197777106040571193849104701066285542922135693593350517475088933505543111485596141066353699254041600227902872499896249583786973477865308702897666127409191558627853493507967838793092476076313404187050490229014760077846646076712916803211920447153351621089270461207200988071708177901592472040722230229139498003580282730047800962905924967706515060338608201417359951033326909359877304741278273579961029272271791064721554554682982799099431220422963884389883069827209826465844821127868180644095943613941876399276489940505338978074219022301079018416260540782554809216175082546995306856108894217127484241931136060971611465221177266827788092416403902692787054549435082087856525273984671175819629780360173023909450192507410885820441139414030199831805359884630115124007375858344515482969641298935063043134084819452731256949528254801266598870378178881510947405312600045925952980750449665040414009329004145568835905571584967253266128919595621428491508680597720155560230399672698304981152460661356197901465440019342380353833376937377424846106526252743342315593444814024772520871981740865147982883007363297700493900245907374932530874917086140780251700225137258631055094829526445241640500500314997143328113646064124982637604171138449905099699869026285122099668617683724798289343022973092766887862552962971341520053148563612473737933250462913151719570629427163773478455840378982717676021926535383612971383914995414883907225774441106036316532129733402017969882568495199911575600207284284878438544396076541478921587313538475978570180362240599279992110179357521755107472249415258292993566180171021765978351509985258406626870207039437899751587332172905747477377637177356297204000213723773350080339010187950647738441896751045677046898951896484506019276103590248513785357919710562813547555091637616119724333498052279457693463316604305970446843640839704628081904931820855806973531778616394919261692685253237111757486656200725072353496823383984959363733068339552555777263828570395049852600546802677358271136574966706664873161304285837936868499515533934079309636892469682333578441626387114240145253148832027988358794472542954977009970597482154588576890002647989520401125962920790262797390787574924113471913620955036377253273038682652371731425376557409845657320610704809666474553317749111262655274511072368782525726327072266197903133143524475479709097312931355947663719401704481339048340299010614740623110766512686029497667817124228646767467197997003856196124044402101672576341502713660236383717273042643336738446657585378151699999685577581367992995052926734423645756809111246463379376850929394198076313733232872065823748907390885169523576264391031050013208381558953822882068532225533298771067442458525942523846787626320274039792450494683269178328927763247765307505118962762599240918196196259719618149096381470609834871426305939172577052249158632173709538023077385163937418665520490699342456025551688472046194803420470712439147334408191006988344014442186117149987125347306096174711830779202025602706232042752725001379885919251946622127663758544982718073602156141995007174596001147973470370199524911372253692669909183927968871730327322313358080226812204770060632262172961695473426367229344085165191944369143887570797160511281771440184500111456908356514521285988808204361873310248733040517551238806943860047444180122475463484449591755781226637211474431651762202062010760495795592100574426689462509822021278992998197252975094986831149439309512266280899339654906984382211845309527734388006402758703380489072392762983367443721491956058521297773303278916803259893124395243322710496774876259476322433990187697736702468764361801536300709456681781740360496588244900641225079902237781313765001348834190192795392434049961132825730996870510933867328674188028314322690214262607266058714762834278325722093735043602611244904559302001170753255456216360313914860078624254307174551561633784793942534702671871196987528133060834098852753422463488023293785697852044633680093326195639897059943913442932451971507569207108388022625861044077527846568492767479669725387116984399744865766063052464987533218932582830159382210866817522738727406302638275279645424984872537933318515919636671413689697136931664171700651613010581560040475017477010010770071958868605177226341640669845822787825985366603168429947482524809375168136508895613804765088120703175110351753505855284863927444593694806562224235266169638686942920174812295750230394294545841485303895441006857325299930649908458500959265531447204737985856583199194982838416568383023648166945741550900830115642507652310646100769682326328901200426556412134079252378552276872385132478213100210461802478810552716626596109886415826702429982334718580094516057654763588292520909697557916759709808619414523649390663470703611507919465646516622601685880246318437516644586766091982286396573903867738226613485596164738819764491992150248262819480219017060255414211724929301299395017504781143741991500187574738661895011990597129364779378237997679195572272945272000837301831071726844239920713421822118239357043767724390933482542952189088993060409914766055657213730783324321706887134371028567745613372098752900949754582089539232252478228393305772421761057044088076168501263325692547819246165624197626014782432731875939899741883950777816515469054463241433301877045284457610934938044837185419291390525709132342544766452799660845956304124201855018999938373234702835898350642111798254383344358163311228269273865244129990816443225970653580374762225465728654754399753172977584478349283286213820980241197510205724858046104970237031097341042415667270491798713640222293853739125377045870964384252442532252009041796280891973877213292724999829086032650012725374008192504413367126096993333853943606885324009712043832442924447847691868363471202243634445099143000648514650382576606661770053777865885024811285463891164829044651058682395693514418205804770728445949080350232907402324391100586729257052686219256876067469140632858583419201251261174213610687888705090213374909546518354181781419171000724895564480578745746180624358443916360558472964039718240575646720347012145739691750901425949613584804879612772267870578955236998120234335447420173174694677594928681226896537043031631677736770906572454660790590316042966934429755208647050920148644778239089034509502414697510127231097802795464517688497647414522210851865270083697881104013147722489577627964305744184554929583508962075008327543328097226648116277693601008413347765872740631333395995216753440467646316668445544452831115258092764825190721595374849940358119401028295956340657820232663647909253460040080761503884877490223401928484373980675902391595746496308908155996616428122191837111345888545166348887174316641955807895046398054537217938974815508851694981074135771345983750199910246406524079298832918952362703685536613603982024632110617747258919653788382488240777914351595892160828034980756847239310703802741879723755450781263065112990442725629440338010625227859522532058383878857886868347486126829613365743094918271438252204539838745225305342291620894187650019359810208317973000964472765357023979438840332073683527883150097132098022289774273077398730992682029804928784260543960597207076781747243134004453740395962718374439236302923442500637945206653278848781689453464365717091301748279504532733336174780520764211088199021422336298002094703726819222855233550848985194238077396704373270565952276432124669537041509121380873714336463498244838202856810467363486286414692466487808666024257127503587777124121410686457657705187391440367943038148971129541952969923858167110372260367816705629755833183937142204006662414170878165455676782681804583535710606464359418222186856810952234738238682126712241140139760152716275160778519710900971751773314812886895628593116795093384468184465285923088469906338546488065625989651158415686970609601915389606210102696303169475398288592581206061328676625878676964578413490718355821406690356149029490031012609249773913757501935283309366701658170689493490752498518355409862235845050911720610397319248451831995662528918990278530191390661499259513700811192713622738601590209639377324422295572588416544374325348667751513630090178482913873286896475723431470502404720240918249683753050423371250256643443185357173335714460149901654628491797374467121869958486082981068851241847820918789031502157358153735978367431487144759464336143260921152433470726220821267370143934031407756316013404415277360145141318179853370330696393936372889197509937588190578029220233290490580135708490813899294702500195179648820303517520067653205709523090063309020600265579937912515181901309080481060025771262009393660691747339944658079969498191515887981961038559002396026739187513497689952004147808835330035854475517260370340929407442007866035639634120811483762727906125911458797362351434561964838366546164261690059370180611929229147606731623143004521516606054627390609384044281648223798232245420947341336410947582667147137167856513339265092612142402159345896219899526029655330637100064263476644453327263634938335020042056579553142774881754093578340350315792899553715432989708807564125375303635074960570217877925475011221774397329986967515515203447741521475522452237057277461452586857104565748524961436329618874418330100081471041714710814332842643145429756660434480048840185591980449708467099778457021505028586261954886358017125983080281054762373123794582258381126342131024704122586317430171036534920680560134492073983203525381773469808859709897451370364287779354220816516962796565665976891418701225067330107376352967282163649080364049660964132365015702111391371941673499223113893676099922284113767983273745334246028919001410396776755446136710194501947174207687740301235226592545856363960251971634399642080485173771139772817145314720482284134403493038477498597842126178656535348837471445922125523702156331896590190705397599335426181417400075269210515129899419750970879421069684172948355365325779855432384806077233565197339235892410260626035296190666176912468228109839033350272577700192427442705071567731805902260467998464305807418613771490740524710045129986991961370193359923745852552590191637839529939803400165830156360988252662697002185624625117453963172344342878225600733156654216852667466223845169549479403958014072140062141794220043175036092983494704256500121271030826190280551263866592222224680383409781999186388005795608759891964891863578616528721665106414858755307261334007198925750446405990322109338242003189679748764208319099281496928969156613209635942832537862527996549636855592877680806821803946540926469932347970860801204216324091767456848883536259053761342475736737651557610248695880857408335859198705025931588491917032743851087953817814132372633606967768392725267343890963556933487571732633554832042672141820552593750303490344662275619994653872527865713389288649411207772585197363976893264652208348808200447931536099467554296173503767844632468574011226686880570633636768417330371145470961400882025229043194172790794053257118833883916589691578844243944027447697605909959388866658164042855395384716605352338509558383868049500697398150563805034732145232888589200839325460092663564077861001332285845020045523652545134743435995835403165773512867387591077829841966010276645193419011473140232927730401362378999802205638035777973855078505353680961482549071120971054128786801749926709230980497548346807647126648907841446539071444108684643407865698357557241315609879533821324857889129624619052680842619124813274083614191269495541310348258073709353402464781057246960963496288932142175248778741733507383451562418850403015765280357678801603824899867608070621521391703288281596156405845161859141630945213276519981061649272363755243705464495944768138586967174704613932310760447801544294719291367895843244221547671310169967737916372070027035204772199954216053500194786511875717050695149068583740674406124466375087597575282763225222828921941512793847868261707361541769108694915511582529599780798326678194900663424349696346244823578308384003054884225706718367748281476883053082238371431431570792717471770573246429246588119381132290963721975408575718900627522670377173564428145243586419488450762608307833945585213861498606193154668543218867330044717899767197098276662494381777745306703716801916593010256380130999123122372599309569903732569090278961591182001642783066537116524067652839148902653825602588087964326313824694732000479974165558867944505108626424638857088910284291210539984942187605075337205085051225974202206018684477033255455193309869234722623863789764304198548518025183877782205990952849855959028485917590177042649807407542189934870322725222000419445933650076624851451856847015391471694757292807595549520531270291885400143465479767033290518901081612479080248307231400721693691276190558616460960578812444019808776165872210106630031834204898179319390568482444694962087246083936240124465451375505743791711518375258279176035205949712616491416312207595139391893949871426297177749620941294194577059426466120532674794536095032976923430396337512510824952705035961710449051018860371518973836526948470838316170363531437745442750092832869953363134477512658680573165936634741975009209602824444017728846458131479705287771762585829664110434763347397569809563804313461435310185723166601325069588301902715314213259462526983518100721278717286662532574330284840569596181377422359355538191146189981905602019345670717948228001779199408100307050589444138584446948609753219494394423758423812391935833382686604303877596424289338462572610746869478224905581439275719440039183167786929698311315139537752270912350848534560383870909333829813288760663195337932087002984293826418719267018091199350807818619368005780627637965339919865011363736190149282105415229155514574923890196319380895672192109978155582128434165281515926962072840073264046065302748681836103918968837768961487304127853726165902304845414481261171744216402123560691629115081752615855092955719118329187105282668897153753921521237318400938750212426082738241880106733120894035472872335512392941430830812065351240340973001814577091991782207039739547292140400799138881107567403845837431096516842300075262996888683639588559289876191544339336954009239203951060131384641872528881971060429101966062651078840553445108724296777978132841685325528335460995231002380290557387043617972967428091453548583707149801462308262226030657796914636460461017894072325416898618037489842137286398452255893928003154406363419773519572851821649815260152397952301581348719809051038440450210142425602505636257246633167510026968205423812648966720523718816162398627066602263531875399763648743933478157039160078793595418959761284541591425665257738485531568440910367582882102345866565618396452724329469985342295329468160029039209328295171666400250200345835399168216280113388226252976351773833759851606041912337394432279676223657402557627421627273205442134934503724393970865945451914060270876713177315880957014694919007963489515240040272266828018154223545841566751674570260863619776841607354089687993052795852200628474598294238450060410027845308012592485069731485045593780398327681474870547640018846263656307145541700213320982947905410264134855148009116215570060618754546585823690799234011579342026066579740887352948991268199984760928357278602147395854626375378414510866620296181822139988756397438935399191550024923061501647974121393916107103607061514564499724155975503324973873998681040787461033274673454221786051771360378680913801576325821651151358277535052183083554045778053269891785523103198291708676756115193033414706852941404208185841372344821552951026629319748911682593819838652241532029858234401808297079969734892755278421335873520941115147889973454635075526397550756715003138730405941245937542484881001796039564122845912749341670442583082879230189850425281127452949251283690629120737883857631095444538606188400394675270126975714869624892906631755279266521549904544538241817956702232458661832230601144504812535677880696164711679750950082191175373315365600586906367372054354146708998095306942787985652232299492660967968694441951215322093540373464977807168421971395116174150985555921366721088951656552774473034460747451360158486261371113071657963047949007459889128069151975581086014571893434077994591055503412226913150003884986795390313365403640001166629023605305782947018786986714768626362424194011095695800459492407363546304349160780054083196925729559242798056292025631321558924365791835207027460488784997269436664840164920151088802612971100654377139628767066091430419955078379453942817195685867307462076744344054239754851445180676769611161664343967717611521680203137751570506429258631838604874676776636849635873622407326364615827879037593259319965866691422815980430210760254876127707005200370914352592932074238040874771543841298514620333227636637513527779568127623322178162232843664331705766538453805724152477764624721550459306533644243768586363943710156775702131497898204840229264018869171774096824687486652759959205691435750644694080922317756318940201781498050601824942516961014710144579613447645875645123999757767626018773710423350789701809803858149374894681132044491833516974676446940202566496979896877383772841332008365163808275167555825534309244244547450677224573670984575316188732498379208073299465629482908099581924832202431466390210536368034467024928536208711376439472400719167838976863961431627280784269479831410638112642071365658128819808723123801071713440155446377360290537730746056971291343663802186714652410721807470898522553493633813204386270803491518364808263183790158291661850998991271327404085411685761799230512144423446529512720613120502836021780492173227464427010136306698007303506808098804338583053949036298506471373071088746871373254108838478263877952615291056187347719204026750909876107046466910066329803220875107025414933105323088513174001865950879497090665770077123670929591375426491874956924751144104901838577032595153392436123112630462216294246198934704472655719767634382928527170690715924528119339951394123222814728527381468125627751799406643454098623692362352466588753041205457143150920776706937973870924808252009873844051332459910682933595280993624670334516399622039844327686218683498277979872309618190230299261481502179426650618213343434345591266391464453767877609224359302590256663826786680572762510139339884766678792218180200414630816962616575074506449923826263781538346703210235836077360905500649080630254636992405287143939756265465311781333557511483080949009912143026940233247256855710591477483773975992790786964233910567537286086765826614440674878530212508060569823113888002788504684106440064188314753108042704783189083980948194107309734450010538748637737476602238969973883616685670469746175878933907555367840147689469612247960502975558541756413948590178157923501495306648505143106935654072973962454375812067676162814790778932933694449268835175064266552029957044167763381072042595718020552003884034113874755220150861324769544262442858190943802441851332746389508815612450226467011154206815257370091309262966132278613589628897009865120719523996861694675263623931578389580339252569808294855723540230212367460988918091060702237680999067603363909803024600336948359512447460925454477164944502676070477227488352898240189267652177890043811996113168149851308776886830921455875328159654941287757053127358613016354940979506324426452925144806850928788847943980085539181539492863494643549188775432513441562541032807158836600473101668593015592793959200820635991236181059551710157803980372956410549112071110489156799513060659340696454119128716264394650074622461748620198725922441397758154953008063004450457733120831033896624874080567073672611286721901344372499410380987761061681973120637938390097389561812356459602909757163184171718119196614020167946171942488468362893132107549989915860826375210464428365542023649838617076874753778776261706010790029234680289536849837085163259720494907319949766347574719051627677847917112777352867984701518841961800129122509382909610961211900183906189323206843374588702634982997521430663145582376466299883391165610127208746363859738284564265056756832718588178324869388587643764150896629134139398224800420510008384994654992629530128487204701635939365089287113232044206207505761768971693969231563617201165963970262159128481844431715611197220700463665660108953476077702034343579143334323212705383992250908226223677271222221835425601234728217515211568922560884873380713742987799198869793063463537535734029151267428045628741299004083506800750776424803727740892824522416113643305140678624079488055769609973468572518882163026120303784919262410725944470822176299454813001228007667720305660083834144391648192371367844819974098102988762183521067901460440281031471712306990383767467408556244537242163223437115465131905806594086320943108153100801595574507057170937787027234139346070091196278940713297931726338010948199041901742615372422109624081450414153966994127834993034236127806216193487766901375217187885952429665996199728755248664504109784247318134519980367357996127126480171241379177685192092467454168650740058352393012472106356910504389461479113550704732073740940359477736121460388603886487392584326518049469267164159781690862198514892330912768893873166343625442390291021823163930078167458695826945262510426576171738312199283685156031415138723375393991739928797717463229669011289016526878464870405138167337101392610448968713767025152459613205332879774530078145802059175967913271815811871355465838889426238490848697668054931694605755035166734987981324307487277553751016153738811767640166013890414777371564503174788083249351775903175096767316216250967125417271883006783537535338589596002610560248880712685284399317481652532076436807720117106108777986153922809356795710865797250710475606345642050432460800155405033309749106408523685358695018995892326715564960783290105456788850979011038529465176248071131854634592495913091808261484964437729922589885436725851466248463300405205840098182786478852337697751097014180257478618316237460762022575546364430287932582889777662292806378838179224614797563784341426662677869297347346323046064459903301527120670307845378684879757801964533515986384251331857810221024932897307018994013822922460386802743276489004561062706292975971548139169935821988938116429315468392214309925236038754258292883020086845059911491831158762548260780478284273162067431621731682580317199638823663752217930160908806767825146815267745658700902702579482034385991180209736177555981470081899615261751935382061885631256889780152940505283105634570470124461930005940575917647287526945815268028409244555709229094096708257153673001341579780139390926274547667310149380305913852664827000851425924297716586554221058222066661439396758971001965240369469417863470179238654674569195796056529920382324073477696031745466672112217785781169735379868322654997704017238804425470051687559149191722289066581570548196206516971163748521707644693082189192689954879019619430723620506003424301224272518195478982181903785323955760012928155607301322744151853000842759284103267875564053990194337279165383713082425089263427550772599844640224717645364242269585104887555575005886829247173363900635698478042324326523458291202599533682312638987078237446059859083157744337732118758425256739143053635754548328525266144913710514050006316397601127952918598454902337333874867997607149989366443963466282705157101121849341070356044860201542298597317257957605365585203298261630012317787595880028947375462691775367715652020751153129875611279755447670755483277644149709898806031067587031988712929449088343488904392266072227008860540978765501398506344487311955705207175845510721260621479900952754791875302233943575660694388846023050896230520504331784883557278486907527044627306921629835083097743464925876988514761217943515246918535548202764482196596210232691597570997555253814409278100587464905001898246716319583999060558431268332787027627600509165288276552857748154014051535564549386628513320783327577836610598088364781091302425524952661170812526063483280315740841919925167216401344964567815465587673801695975851049928269123032611442970016673748858108577769886010993016008289040398767673492372532066674629954372571317847745258957727781495325732195159221314880571734907894163294939978438374161462539411694671655666902819857511394512898871935874224139264324840640093184494432290444867780907336834826286816873466657304059005877387977923551409666185206863267398987292882321582057775669059774262046044499659488932466032596485919021492969160075619538701921637968904741842578345294813499626570865223639340204143882088241694686142997173287580088382734231917011304185079890649483821247113210837919893898218099811334297026456098548846794477919501259211348481959254146995295320894446235074156298421715693177609308861262467209762375570730916659392312581254302146450819491906569334857981269903742656635610437733436685512305542942398255791321988303870975125057472127253269156894289283701192707459555069187938816841240696274790852078990259018029937570713632301870445578413463129077911926174324366191951579970314337557570216305199955257275844669092756004879433589367206320073076959220513629590515583970561821382416693388982302072831799340799262195893407017954527009473678393240133564591901241611679675084230375484533133686258773461465260238946513753000926400942278331097936707001389761420344946948757711750031136827922282943091687772789386310375528815639530946517631528304711744646739768240100854601818874839276518488012960738565778965445458865067054866057255239692040807863061332530669741315401209026814933135122792441198670153949249306634952223481476138145340683658286899302305691724758884523757590872592020035222904402906790990336067903452293958279656313001309314337906073814991332441984525478436709769680729283749739620123481364341626923585421735961745145691197434873867095399954662988825494923093684112599261157092356718659587860098179148260835812500781407788775151765223391206228683865053354477725877363741329616545840904848272436943744154161528576226101881636676918068841472240151513319696292015853833170134048917976732950263967016179652194302777163486453160610966832814838556120005582356749272407901143297778127894570509878859109139941419645050101425603620129619059582639238853495518537454356067540977780598549146149330032100239970830921734431877257699071994763764210248404928011689523842466864638254190313232418413184592436659596982664430548940754427700680333008171942125524307159825377840930413777464067796668803679020308580036153063325766780936137305041003465995354997800387184791836752115245060269942204402665444067171224748674314935583160660659159490615857070593191880181804410723390518274848735119996134791576767557859125428365633595445326190027277635353785093441727106479628940189727290229170398644928680313261894326610159834694005540916602366452267890493639141266810968692416893189736509049157694326994795214253624555478909552224817327939049639980939124964449444266051564480208354479741944227182565020475908168362702920901135532623200344030621785451457348199760615938242018417614325915765238256890833324746430321550111796872975716386293751211823021848627636616395817971318964375766943023801258715210380408754460932917100813196995417660044143454691246766344171631278702044689589721526699679468651196417844770388776987771737448973737707546012912776616381075712725096922930424348993738745648537248998056637366944310323469539529843012416251676133435445437015357691118172210271543665301362290442025484689406968049118956979159738815209303953074426456349557789360299028379819527512688686892406207761377872946178833289834886825525299150785067090112635399321932244133079919700462032840350504830662304056840876995364547173325988224729238412413658065536552330787209828572320812928146462586393243758248451725104468262184953549175756201279209745272300033849817512604394477769260814605426260464094695669301359910433643390027070165744128894414030450187058725953876261497701270567754493380555086597912088833470721517853921163406304729362064800786757377600602527458331244212701828816000588115198600884574670028441143115997015804441750548494167881960809892367444938233477013421326677415961783833449846914695693944756090918440835518585908446761269512358842647055596827570045036023815128130709147176416535572974166867658628435959584548197751654815409889527527972137929109499142050735962369536191381807782727525605961602537407470082022579500800608437540287457449667070139181888942829850329391392033482812903509066749634781100345179184637381023639392033306025420123057661594031817805576863539385744895564223366369947233033341532076708596392342164653885443562849020062575405822492225747966655265642137650706322237636826642694025134264560538365954676723836891315620616943205313822437496827743952379926684764534692577509370253542669282804757880441131876726511296638326787393500679671755597365540770350713971796930389334328361309549304308066178937836318854675000353857897599432700825046148672134332013341462552127251621513687795859848659285528798338442329655802177205867146813892296731057870918614238308451924227881335814472991473537733343825413247055276520681738144179594888412820936002662810334054465592364410162878434768106808716449820484674288066459808549386691729626251192635608864872307266810140875286586906260346978324458856570662834778244441942065980796673001085907998223351234845625216483573998735529922451955211442871213570210082766931452810508258469426536929504586575846066314814754902332982812575241819168483649850835244752428172923046926156468934532233032894554632419205011746810984490130255640006338856495129635367119379618599687686481899313971828404499971324505867635054318928538414675520876215687056241804867496545157711265162004843814454133482109737647871994202977125600435644493631361859998158550374549357276480277874430262484802300135560046689126863982250327686399561312687666433533034406481649533722101414911374676206798199913953607638138327188658585766496354263819980279937594411239128450240685254626044381004826841506843587560875102737125962130222580301436356008923659064950153558657651138249463923584693322303303853903400325292067195518240103730885680979784566321124098122366314181726650798194404160270503826064885263768364358059591728903179530003297643056383144301312398257230125545393344104432335956580967413908256579375451179638158228272747125006053712002062207805554741903098984251310280831223073702661230776008586389065758343731234076372058049818595060249428103557659725162112832368490457860325849980551667436407115482998909646282630236614538312907494885199856861091557612650037099721655993383258561743270709373297823838437226217541530136276340151187308687601557332100326523644476360917116170538416732672368839000447487762056211388773550060663931855363138029964500487444472483305696101668443712609098799579304764451273289827103983195048491323132251985833312384780951575228196452392876893839843071853854524031145010459649921939524567982559381426552791870903784424287435906685554025813528700388388032151549828966241179408540314163144900937645752710770975861678418484373930638567970758726309069385931153276445580571412338783709872863671223898489828272963102856952056248411992610939954313861945863904426187372396931165906836736731583108975143268389004359808516790040550783977786585683526277817438241942575058477751931775988570957561095376492243506217574915945164399381377209522514860118476575432988611442146603280158540199191158620903342942849622040809133182265024102462498756148968321071900050647444898852811214678361583100574447888272365745069988659608627960824332680314138060169720261756750076642789012070186387785838079487641277491175595243827101611297423782449357957482442898392128935325470008330658047065708549424705222395650300947956618617993366160739262973866455874543104046293076891143773767812308446930825544238312557065402540241444700972299124343977320039162246036126061088223080387644965669770176886023865389929679692104007511675031835565728674558944045995405234819134445014556128206138488987704187467117070513086381856335772394848741581305108356805857597159723473975415977153534951314108704296368432862552790474156945683975029015464093258979250281820598048767526480127968642540497852084633486504993103861320654339481893483046972860273147906914161892266890610938840174958453503355477441465306229499366586580431862121256036565050147997328768261983097797699972113883849359980259924004069023113746062314811551851235379986816601103349500270311963642150187045939439672000122981744790790536857448495996139998603578392935114895268914708964677660915573143864758540418229262038287595042755370561467788220947626683288757407622085535140312463567388910342239723211425674650094371090994387658808951303691235090873627315570859085500243799545229540022563669158592359618537946412739474796980388229902585368219493074759818066692874781400207197354809615266990950872386787112222720633885506046800271494925766233784898294978960731020052492105726471395321207322795745590334536781718784906433252868849794751476305062896344462922840315092386176484277486678535883865341058512710037546587145988810776506213757766125309002670486792513264181956638227439188617241814979907388744763911066166419164419180908408596061380952590770917251248256768687187463953101079836650935022419698224253272767075586133844870729192408015709595637445358782771552913355980420859084329121783318104694157403462848947385241499072737104959396791811336675419821907395604055074569273721305161456337651814575989024840395636673223239014355514168443800084896643795728525815395926457899839510660694522595011587825208442050098503715221571393447426132684193083023903359275670919918614243741539496049802362213851099528533596565432320237695028303136868877437151583093850774773519687019713022769673198541131345225648263894781135145543344384944450403578481484386110238725265041066330336417990234020251284173930357696202696917353601418274581924043207292267416754700334796716027168182490469945254844069339772898016727973652075226674615515161680208050009908379372374033715902153474962576746145983811216531060783722122159716918387460386700953873200479720047130261142337354803332363494151386423075855883309323511599952464343821590516111716395677966811635019135166859035427475011636118060004187620387022294094954944321649816565384192289338345577174543466761897621508719952660481642716186251878465789639696597379430687885035213589670828936372881278133472445490891891687821871915491284081518461062484374709141858294280350541482163237986916041204674637488287249124449910781401482792166524151999040597447412390317450062545955503148248703091987561006738835148967268212810589096577852151886174512734647668757884395864151825967524669295754119018182220987548406032442790163790327069437152680617099605202434426487603697274264427855314672098723340178711186893339515702029446425887670103962731032095915575183635047241638673212744758419042144865962395332234959569145355243207379562752403712649842994143277903247794425855624106607486407983710385790986480977476693287101205066079740164297243794738741394730842080749931565542636989273035492324755828712156988912797470071927553568173346645118416727747297864540572832324753916189561458523161791420642160744984927196464135328792930624341229645174804250862357663541435864136800161677073325736629263752315103617622817474684201404027642213888341726176404415478429986546125592868669355769300333760161174330977163689559550962830071881698396314997857488761208257277980035853829095702438525491258772195945765056769732412858557548452817519878944829173666252163627601296866332400021840581807207857299865269864646459027736070248169523069453879329935368221908198213136764615850509433957748155508545700843916280367765609208852766966512872393516466559153161009959440794850947200749363077655118823538246689382905521655476402459399827427208451783024209314525911802583302932354212662629117348611831346614964432352495335232075519711805949221730129790730956924987614800965595988563492642177620483985413414243438231436815375203043955305445254780472419146183118325632060286693136354596953546614440014835729182745377330419161110343078216669639587644039686036590787397254491156776168394807392429123310870112453487858696499817735000890165475836927453102042044379944643352896599972770057474327466609111047259091772418750051032792737040119620048684445225490698102378358436530771039377296367564627058486454534953991191790202006110579811918065289223738856041232390420692335587913793904945894786779024902856705758013020873757051283662643906901549968185326100060973650904674022990362368291204602719096230043583774297248265393062547074447020201819527306191660877383403611019541079584044986977407715071773864605737307812475189453827573838758206339428161922278754395506074892022098227775515231613822541712266447274076349781184601292521030636346259172070909154182305409606380725289846439838381076716918134937724099329383228849890586778071360166525882421696752180637791917707065450004422824887787546913351111596136797247447433361407291584007466680490584842577578871613292673807470865719831454760859102660318577130637739048290325249625021977950402206501144750142566463369914027145879283270179204654050271810228801759989096800256771765756107195171376678856063138984010212773483995591896149588778636039728867022631131442582926525889976253596913377511543262528750126714567463172684418286141985746742145685990813185165667497595153545525878912254130295154864346263870972689547484521912440580305597282026620836514096873622559677346496446512799291950599824173138669338595364875047084063874649386867822197131627139541303031182656262352951784829084953130232638072436497925878979887229830391044617559518912681568463889770217450091667959690735464250581425580619831781239080466775926985359131436395935544178373676755078811597461446846196887171311128574525762479132333805872407854283920816993026155888508991337065351884622668827237085924703289483008264530196725540939910692951464454240717292589967205091485090418313855090068266691233167842515695124202621620591379805642426181836370856173056470802893361087946257146595591333931953557768131711719219110449163140179773318502940803877225630334933119808492518649578190616779245711743844369093453015914560826632678887428903280311220190789619973271199026856022111693225094354659538111524526702552096877989829615559609715858438124288092952754681939103099802546325466649357282269355191316356429420977593719231280277442405410170085495808683356873600861145159095188805345800674395555503880436204877504731821756343016872644327448697596779620531283775583897536222813066681380470725355964162948972396962326732418173742095023075492916664548517885836072157147563134520688966618414020277583692424912206697263447998817175641131738424770009418124944490495109872968457265820268742844605411779353555854146110224992465416485308020470318681643906342240009535032715871909326456118957083605394470346971349410707740638018115415409347999344491102845302917132352540983732033765577982308482213240744996256000200220358927015405274471759751249176780652275235943098223963642807164902192011117968750579583406085642487543812160692369557588971245058191304425739765411453198077889465468335627362185164649786980024407300171176649180909315732988810806562501834164165449909922811251798371077761135945604145926407911141328494661798427963998466416959993639101876371440277614030175291083467398887406401190960039927193395323558532204554676176491443724712381339023786843899399536488667504566639542591030134492438078835416767821409734839106060952707224337595791963690520217822604477664842641251709453018918707614169620941856254724976536697646820923165373084813458529867509069246074981744908422396396462205234726819842755428301394304153611977129781515600566013359877022921691156185410630898810430043776549483138355171006255247385362102968522117496652940808025381014066185359939299690277447464331091006540680907601377317183630092966084762742901430669768650628777614384487024340159836631736561615668937203929292913388084905778154134324411027706091630809880831831096308176840472038132479724471029978569331007799437789263346157924177113819632182612039544283270593394900716345030704915996394191860686658521870535335631485559488453242737769473696394664311407464386145290909232110464899793463220120353830620646248006487331588667061831612515545860694172311423814904101548559758824424041914162507606209653271846381551234221674808791236556845126341833951926106170190779123159600335956045437260462724162783210967444301954274045356655580475791591152033581747024175918015162305709723520301098375816364003732202491914176761986694938933648140302505132632860785082954973601134928514811683579300511525600194039767836544666075657361916435532757503717820790229148919315824723856852285583785254087433998990922122150239291656214468321085063966864723768718009854283188012976849147805016320018024313747538367991139930124828857201264187549501397772560925732214688288356177251460058829430576770149313501132717123984296515554885777805319204645395563185921278977864650093225844270683303730991805427039408972790657497755957443398601537281411619161877262170700884664241153032858355662972447652911105815971140087988334880241578438004777253535688400218954684943676486406796889204994854106439761563770105993732064237115547640819852981859039992909185947279619267647994642091825763432743885291363291032587104837311235114306710483344331970399396136972428261306696622342135523892657723444758482468428576046910462479825427034579034529755873551606732221102465090307161359616650488852734078873268910482264976418486264448592250715600927952188834253502003121498575814008916769259241344051026096218009998543969445801726076163184682432399249917392607309388670201945914907159582539423119802603883448515951583699469903822929190517458310174468131737498868841502419808772428164816217295308861453240357339051659628077101385115425748018275864457281355486159948187823483293069824230554967218074058915597826910015782803730351755197377345471608616911061094231797658990448073724323342813487781754816199784976800909786653696199045864154590253409169258736679519565361952014400400807050370208869593148923187860797477051892588683771584513792531006410235627283518449055200334657592706387559120951303407948947767972768133500548905121897625307493111064476298941066836391244357118708645023039134376237621107409489204218935203291365929039700702165130544252608544418074923424439851059388505405847124684918129291854153124370484999315458342913829741628204087384129890138120355509281506903024650379761758463784468290796118695440932449974839702418525275917548384297477113442945574464624502984556424151250214489454526964496904355794941204932390680823867025871060237321759284031561824689990488067787881253420731900290945655463472455074372406488908924069673068863457863341066889923179740941558444166782946030875765262461448561135058803957508430883953283536134710281710822506951085588983509736301230555328142241028842303550571335556642863651846308569961584108933009006504367269745612252853634991765307871623124668858578502355978565654855420136849149744126004853870086301175112799155668091953787549629960154117693423652205958941480681445795196254875293615939662855388429031315263906792383530470421631576714597280775161409768230921583743228891817948183688959535730570627918098813701638159902614893238479743622091139568902367392700194051247192196129068287662409070649116783077189526427925244589955118175262209538021704514640841620790516173556974050282103564814684349931136396795301715359216876204859418065048957406199074431612176187058529540520065450558856646366426322652406941196042489961748560944531336516470725447450240958726307651017438471625344054486841826805100588110241552500099991003574272214106782561405847986655049132742449009668746302270459656562852522670540847846421168002442886197174125759023157318025261085812697291712191767956670050013088092856034330125728384475340320717646108271433320367808609598592890500411486605398149479844804098593177501954548586342968528107077355016537026163720302101712210611057291863131173161667883183921071533801702422625645257545352211418526665438185212984027066275592250634212788169330799995608719352326424952151514662948942555303376915243758012422663636592317021509788596037236580217501189401771705252965836997450399213867201463768674323621879981354667837399013553763594613383393951306261583775373484367340532778524966289449450809259144302945328996099882821294633205260248963318645412782007379468391279506910082965571634263645247334665522576987904209196128883159519423340779300145963926542636785753963374098818245606942986988877473528625466454502406554431945355775560716942695121346843309864110671543686762614411533403661634626676609715052995861478468402621715562411970455310410555028226059825263926166753571654066920242824358068300080650415625742009995716081638766442012326549082551894856448377892063368050060235728975956880998273048398597520888586582994160238010193589011356297755422522088771557916148699207619831888559277153742625222630834702162371207023223315444807235242818764249189860381030648725009986117333639210078928359952959319235800784611880104623434194631998139559594590393986114692438069225957851065874756496862741025176062198143452754409895725865691566417557984638935060117557166244452840871273377305948222661541141850930944583368288780330803946442209858217609049937684806415313044096518026237289361558916405105378523410042254991758812731314622569987991909984019385567465354855525617192330830001895080266090298223052116010669307777224165697761846740888858934716847627057009304508560797227586627992742552133456805513684697296083549325828421675950714672878492769527546754633907475957480493497689820078723848169140924886946614212325162175535019562999566124101473367034037537982187679205676695828616056286680084859282537257508311095085364816207969587257787009889291829531343963320563278416288590664572233064657918291577855850679920064649351987824564025763248844100615586019646476256456365795921900428203777185560097517852320054080313754125769843538098908445193491849236471764361338736857642108139380814413189955267506197223503008301422122377721102456010657567071069580992348773049468023841239353231697383471866575937394595346272622618453618572716179743070247752061015788465704979947551722527126366487876419222509516243004422790149644542391565999437212460728962474686533258515671448950565111522507872393009439441530793683331235836378010298008693520056402025839366854053864823075615453457841286392350491600201014971955382972890988795598233415032764426437718252916790875896740993871010267008076268324754820622040133590127725833120179810507151804258706343261661444018120075897074258186519964028612397781162819506490787590652955115885654866305099462357256784113625855501195687839321048983544000468432215572802203905243274871243622769871516505638358962491229670484939543336651532922459403038623189320340747247674770773306707734080326337980316204446947122827097907307088042881623572102648837020199311770334847830815883240072580092102887570014316233922073383648097670117356720155173500824433532819903466476860835580419102285283603155717347185505127088654777495917167138206120050249753393188652195442303512834173269659089543616853304174540671129366444459671635026938320194999771454595694877289048045808832796319678819643504617965245987473499806847763904786733955140236655321923861588460970413049087843012991291119346088921491627883805093343447383195112859119751788278298647584733724755722947973494970629267612772014169137436415397969991355008822280483566350129322283092457547509726759796789669424285687190130682291541318146269527574851786561730398524052648422510605612260905058144189585100819431287170936425873022798946470010497809872480820310828766058260871981411059375293389334129252119574050564086200899568122605809204883621610501034901855632219109583166341715230384927965670567504562279637801144299161459070284796296827158999549597666600898652808875165183708844264547062250510938526387435412345843601534771875515835068215337817253399448598304224754450599705334517230076611952502042921997780475256253371118710579992968032130109794476552132728201686202703336464293277275795659530700776481043509894859931796838909779883514479685698844374601250545510669235980993501094706478640007201084375523258289598042706232815742057969494762076823802710399993575898341343050155048568582124038159943739989585906525625899203385728005676835610919736853316382604739805700216023627457751493199263559929078621834072063537331690264208030281412923880312681601572106631922422226465430408051024771242225351825668587327300364535318144529167763991202575324263561660661110694679537084024707239983117358383400898319227964041920658911131560826860095159431589844375610514315229008713020587318837577270676460342608292915117430033527265427975801280745084144847173586101166804738647621721287787784753169086590479515068492021945049348211951041219061020356802636658946859183333181082304527288426687589744841594137473890648895168636707158071137280262796435065250038255532348281662322126016453412690264539002056632381279216326472663568899620763463179754079757041217989206923650209017848898548408423148546530585202132321407087473794987478751805951634164530821459401657893790242135843484822539269031244212528370334440009078540335616857896916135913876056560014825146593492480556703498446650232464123242504556590762040960192987896025185166957710401012023246210442586032813784614024004346723144977616386977295335217351182622074575674850908261506326773369255575558766055125056759485862748200315602332756258897686566791741805198713157521241277541314531982873708693614117497093282294230079274790338435262698455181561592001407259080216163232753581562684635692734038681540740035418195389371705294713812167289690834887496779602918629132121513000190640372661804145061876335319934216427720676907874909409987807589832124311390960284891806394532545661641004769123895500267459890924701650609978220455307220015548381406804620506358216806768696041735466259805142555066162289217639953510415790957151773613492556833109141920881186768747579937048746999461204527174224085521395108212577564281005622394126703855809635151787939804788726774405175239321192265293409868541259230994796078579548769946974196890556503212747031198597982953364543090675038302684977916680223956724385373935797788620845078151219791897532335155678516268577547048660948412207458989785065664641494035892826563023091066160570529984831115139652786158693804425848082019554194922648833990471625649870755856858531796295260732461349679903150846435519960868178376161380365273575032291780469688896762293799204048954517776814647981921112138452854924082237683237922483400544752898148671324392420006427804400185440677948584300103487900140041683452507210398936595339578808761839958327272978843757355044629927674689525875893218726819823174372429871946323089087905243685707730140151605772756533859391052201153253517142237041763953664252176592031307918179397674443831046361120939204525423623413245257320280899715999238607543105472919685969105852313562629028813872454447701140933776011103850173019549278413934336176341035943745164667722262847658053968906492613912011760509423327902963094048272688045316751522431107033903937960797173885530996270370025757413106493780105690828930254016241444937613467992468262128384325824559680790563768934781900353198142540936450266436328591759641543870520011210917843808535487426803346200024357959632909152841754361640649889053101565183767180460383483020984841219080107401646897489246660575825140798559065052875659235118538436253612458627642927398426502268671995897972840147309936097666385409295498786603775752950360851960584330812378728458702928322017351328396333025804347968706913941037151025347018342879340938498499765152905300154057688479147634088296380620717921395055457635829223882475885583719873783865497769613839464600311203608797071525774778831103584786509728080534069303616715416394785367897118166890227210073667833410403038480968171945228419705471853790351341985230365123414075476914353408470516517472179640264603526979266984790841890265405498416757123183296856655497006554442924008287305167606288562815238516843773732371681196014203981127515643661039814089029195606744066068900433788144823234530556138669327475090744389123813512828102060007599964964727258050897661573355164384593450242472358485888730462737642829595371082781801333474716387978370747151484497021872233632518012895132019728327330272963015551885569736127923353049646405230934070197384744194771453448757019011822309806308711085408563553905526438639085707409838740154723180132210759528630766215778733484518981906939107371936574390370148952431988311394499295045099198177402624305824736751227305128423276864182973298959097230076588948141852928565148517022657962878268963385852371259401970762434601186310296409830134828598552644454936589356378160230040401899176248257571727833976179118979453685625685443422103729134997321111839722272109153266907339356295329029696995373473535012112435100564234549800671297248887736828717842036778921068540145124477943238460829489927522098117639095250712457158609697572575937661841686019240888646137691126758190465159699104789179140415347150692103473703154128295839367686711832928433391205644903909750830390027893195441809943386181613222579852181067481768185202231261913649402829662465885174417889345411074501851406203909913416417458312387832722256700661649990477432269489766713856495682853885493775703170819455589881498257272268203526212442822333776683568772660641757286035167028313771843721446179410265264478959886369692591583464823950073074028781184756696114408866446382080858192564633305956526732896597485326652888559357795612099571302325876055985083625167791211586252593880273007117392203885826718171684372303174150373966944477401024613314901010865536400397228495373295762566345826306977434123658732659867249849417314816109427229927282007944200130934570211771102553227096587117795829262383741620539559710714893954062808068917159564528884321586347287807132692403193066974231854342782507751122828202618613887877584432062029553400321911131254209604795483858772172715208613775470508201408556055063077306952498017243838353487515405628351872717752625096199254697071757950450041589129912163036943599934485660981599313100415744064567154070727827038864569373889207990752990488006607385220462087190156594027394268424443337162632645017929077704398524267471247659782957731909686181245494785941009042137501911835397150865180328918142288229076377749275896033429002799793525161911104561503336774428552701793774732399250807183910641522696888176927450264027408417392564391599785263835003167903469232177040486762042779768791988793746184628447651100718726933212663849028947247995366935430487118531538644910591331826023779954668127864633671668147372369068668321726050393889606757290606413265386063177961286182067420704410788409655905588848850311402170438069631837791958044314937414118000363296131931045625705659697406645890101055453102837291693633369596713830253167799872785326778585093428970646706565681147847429125915301219448074709842484936896242259972226005706443909347846756080431172162248675241761975389764065352030211218791886885391214857226641527080689849144519385093832465346595777605986300302275563195531512583157820662784727970526252681836487760608749216157978936105720660786889494643738741081647659034270586327796630585824326057753226499650341027379720027077158781982926951872388421258173705213676207137432692942603985062013343100079317902509335414678356351158422504008191714673154811978177092936409566718723777478842196943826108658227025209333262413684668796448277110536842830909651625745425115967641795829142689183457383747544238558203876157772405072915523331043270492485896871745865184780451761262867229606704953933336749195168325778226212515009679475408152445687356308911050467276168029088449417234717045638163799646556337602075870037298142319356091429130045091865319849236918773062020983017648414000996704908391021455373616740326966785891382032009243932057663053594172432297522067492239479554071327205303541655091623300290460412639403278775710017817090412007161121052139560716962296893929993126667789980114774199469212269172133182841579394897644881778876379655497403940268223229494491622251161659563713422958566906048708377641428950376444899644661499376768515764319784131012655129818614432148468688229384869482803581271623548143611297847515929188422759842835067836570668108073189005310328083685069607420081759099832404642436171475954295019407772176940741667569692419860277784507626900349700127302342870209135283014128209442507438639600632946615974577297817124872037942877304401434256046188579942956876244451273130466653658739436462210276862538263497018492738968285149684894946717770577862378334230339174870293648440756668952966903729206649156764500408284808411878811416403629494927173071916941785198735329227823668601862261036906282927547165998092135138522758693579729793563722969796863348343646089106149719211872419912146277231280789069266997042849425870117297049175459442450356434947642304834637329555020683818710772755284095703529555285363353183273766969762379707435937121585645427001626001751126611744463386988754475844130335196500332489434541805097011930879205817295624063101034981515146820776008301172998638958939064584315007745282356991457672143885253807655954498503073515199379676749666174137582064451705610478634047423603812728347601074737804341656070859261963637164244213234724225190940097285148164453532311656655847092288631097704124020297574597990317696712192098309299869530664018169870043070065963901075066251263878542480509771437380085654518562721694262571442503486404222779224605249868781662507726630325665084917195948766219422442585489217587583910916204031752862282555859295334573492651392595904804245196931270372621357084262963524926136253366096156545547933967079889602300838801975364517230204477542435370753127115968091309250408351521944293722122949775390059971579180775170681932243769773581352525445940957658509206720118993332006841634611865966652936740209799051128515046703024869256737143645014156810937066793689248299166360457969300180170043990547615773589888599802890640792771089870079742474081968992335570992830244635032821406723088326167921566977835550993574781464142910226088079718758258498180624639869439415541091772147857398496009747669263118822563245803905155877443875965804249992456151542744440425339392744061663457293086300941400996121438353350868051938486088495925271608776074791573707788216942353661028385681697190539602581790741435176960925639892175941942932508972106046317275553687407933899563503301030154109816089077004791691907480763329149083577348917535870775083536109701921132080390041725102760705521526709615293655233880745519652767399018193471373039447440961348783088768095663249959946278699513752831794202022977556106718383714557972883293909806437310064251563815503969216092143633795692482475747839082132129667999540092778867694725146837136889166990181268096687187832337160384242029395846813400328738527458311684148571559894217204789232255008070599636583073438524914970329629494128485728698418043273283087238972470998832630712140066739030286684233889446433721436808354807682686011105663496750015865211850326003579730748410317941962790432063284122277769371912435195906641266477169830498687791250726972547136807412080609319570718399024560147084976085536965556180346100903397527628966317893526064740346668402888922921084361200970068217104773984724499187694279530964469864217271522404912089844046565400738346552763578850988766630222360741944905255998889241275692233121840753432982618908799718835783085577638388174734290847610730466814449470414547791631702458787851757142665662452394533836524295025240406577322499931611337252533955354236683013768761801299504118320857198474500815897268216737261445384402125303131446874605587842036371627438975445653834138902745454787580946321275670538071143983037775962391392026701127742697151677952928674066955325300869677966318190386246925071202831020678938777602208401747042943600628749616260463171331404018160034163342754241532887578471784678174037010559264175307371198286539242162829221790568955046311750948637075218901101466227642004095523677982280008046360819142062704401326892830765232693902521369594642418868513090936615129546299490254373965287301536944769296284060164103499824176460414104519189093580739329261230120201495230745977412974504269901276545349979705228228951173613580262995966295504758626444538378253379094771808457989010927379406308166956667967650275766586095435804196123103212565383276250261334860029894724068160413577476563595509244777537647152458223549482499445611772928496969484551289875768386497274611600519705976743442261528166835483851380052405006219929103339145570547926608717207226077995036442284843058493554720849323531685313625477419735878386881532172982064817366204807527104514799529773223968430257942945142708918999457130083465171086450179432861559299060125214150896101606285963532168904964879247408181145466269701569560195118761633754230904448514886078730712382286448960028512115264566599300896377394646357229267862143523342988579303404145606460809385457382042634969192514693105656097151613665032370359761607764037528397749376429784938016819324173417480912165134723319420298632913453861220803067937664157507834480160833002047349436258720769351679341739982824903406493879205988151020065521555986778783935607991150730456358501696675565199359789137228928248967692485088737351048008712350640558160624864922313334394881803192928316209398247289131252653290068220960677036582379640920772076515839775960955731071361212360729236557331035249234682189872087184420348240354550116473975574864274497873555093894980543085174512453190321878861522629608093910984230481753055243592728725920601889623339384198134852089434894565126439967192002145234013268324863821373516987013085122910891988391851941358420959427576558526364403422035807267941643123610320505688682743910674815313290838825356562873545281472243085276446903908327304479884919189736535242361274607894460958307271102735454012404094765569982185421277178386033753629149714925094008534177607911022239603558519274597354355295057505102373161400181991176897629598160018091487418954103506723614247351724657680118670616174573075113372213040873632059166173802876554451500017588842964003094598232997640120958307164862299375090745556107949732364340290147428250628350081734353712605997192586368958028186717849516465372735213324591243473956148594344777665774028155855380077676884460260918673384073904241512219920194161003244031566286407332978602149226858871133825112599069424007539088067135561451898781881482224785142600002373770478252005265218854463480158706507916225264552216206164451578724983337006557509456585045318117995187526853912992464458877283184319273086224205867711964067265695804755720909886428404350552604563300929359286383628182200202442208916739370789067838460904914322204856364267593707361757790795382378487332914224402012979459129989178088629363211629941345391637514402892341245511163367671373367850356405905737733386475708966738737184230415128198128735428048111024754772834716605747794663102144586215222042944755251594292703296495736530978210617658767186119625814763793405020627910481144419335314142020287044195446615286191016860848130318584267211607992204941056393311927102943868642011531775329558477545763873865114211324277237331973054700387038335087632737148021138043415088964852687223304246818735222629139379358274403582648209129927588569169305219618560954220298580840752424507591795126508560379311554988726184630549807521336757053056626337947051401459774870991606778657678339092572323750608108668283834578932514403912255103168805795932352157176971735045303359601725354513805959097230892732286656823934519474135632479337998947316358662568890405952181371028955715607587656851634090621393536010373877794922450157542330775597529858369421808875665218964302316141136320936174087061030010472041610867533056628888400441419512409036906177338373619726429325571348777227276471449360707234784767858106463059884311417458376484658476924896614771814734137653913234881792937640696396711588602388035403194111275727343188047211442047560905183984835352644633454043713342788141535638543333202690260491053904092882772349216239982673567576930800196564769755786647512503766496055909852118748055446372733874036409606686234478778761439226866859881285640866302929391759412077818487345753481356945910656103817180740202979516577354200195367091953421383058511610804606413850377799140967952642573906865616288765503898487279576049513058423004941426633624756686568748326543770815417837410282694724207735075031336720769839636686664227783515985237366594334574931399510578759329268490996206220637688199341372907104387602231586306760614551609225036563745677984556147321392290193067070649784508393488714376204809635043527192002652438730393332858306754235684606839887048606502697657073358371736167523809247376638885281365126054619960124082307662429494767207288064993890473930577588950679489365165293348840941478707045489939924009136273570209207795168237584128253856079230594936075786043682250603228152807261312788959902529541228585035003330823117771114684907414451906117273890098043160290066322052010982717121471929966123686433526278895308414479505957785064117333870755002654574314143319087194689691244960187251467396530126073976991687724761990935068169627024712455302154633001546693975807899149722332401385777872993741299928395385362963163995885348319754861051369451819398263663959199492369992235364081716876672823449122197919659036518319117378713197274429536274356916658729149953265850707621244964615091137645591799787295714743476205436196782699329231760049952530482749830119331397570666870533880899653658888382971205716978555733583032915544503253785169535867144811443720119851998684291471531300189398154427631796488421079028074058804757400449684771594713797870569363713431032603451255446225732029905869062677271502681642967026715067206285887480243940400569174234077027779849837365424165657934923343697837814289485879716934802288501784514344599078737798163836342925442585858312292569239295920525013246159330304155690417083733066971638818815693878213874569501781047857415609734391223308338615308536533351503866072714946084997606709974079472084104657508404880178754574277733997195652779489114437078109902646926643199162806605355299711394775157889362625320972713706842392520520709176357759504635697277150123463672426803553054410006148882746800225967309940144738944592397615518455415545461929673799934709714835616010834546582759515258015291883121442260039985475141815428927681852164680281641683186650692446228675272581385328070560925406065503190616992429203268616417461938557582630936008137476994398921772544236639539154424612834718663871878516571056909331946641220704083693514724542090577083697255236172803161232330413118991380973740610155594740439018944202454209938001616069002163200141951011016472344979908908363414089957242193961092683863899505117534177913752145990775742997099312482955816815127776624112104848348599184335664553263556296212121042212546432986410486320862390023075982546501822722714687536211162314090319134165848514230355320230661623102589013140413935021233610413949440785013152866905565876299569813683378234303824266629719608915695856629192445576136789682809095859123865266997463320152219253963670705366568792127646008771765151539631263160153718607492712497932316941320937116565369050459217126390579366258993419304036309993249623589293605742324092313402739611974647099277625041741233059044858746146492465015048119790668817854819549346494124631627594404457363531297154561865061360949098434732927119780530426599940680915147508310763153876629509298263688828199683876965249293796755306629076075874179712726953808118754436837135076162818619059373972502534464654517127263082237243520363332638076962523610937237055741142986942446376318610434122807969245845927885562265846809720411324168087567994204497642932810074989020505707620569640263954299073783436514411316479893591166347117942413722121234102597365968865002758928927099512666495240091719352270994622760164523228169301774306226403386245752699017598516935054493166220634459209225317167295165082575114955182286346364227717800799579062913529470309464574888510716201524805051065367216821690522512358524470888535783153756183215115222665953286342067995018984135600612417186129949979091760021419351481756111129790578885013758337872064364677452501002957901225945507849837711124928271696553491794007808164779036833506470078440362679110452405174525116792297298656336847325806834525528679811347746504233192281216023991154172132801293261195952082811244201351475410077605389876775118446832456325195223182843996266839218586276682561492792096586712482196907497166612331100609360605511097274285374802130482286133840546482680513600085758957551686466069070666648119863214994723073544720405068384548794339208472444860620989819516027047713115517833164853828949080959421397823494122701975621802978252370912324782345996155497846792091997274861364667265058620695722980359041793904063347026908456825213547218668888504264182389275886463400157710673220035077811815102840003757352975329771858672390385715451064425506543552236678516781398050898224564892775039775436594944598364627419323261863645367431630739643410694654493251681040168212424533477614753418650845889375909273065417629395392528874052517535833783603859369865568376984282652069437695959086476985749100812022442897183050732906338531820652883554728426984062116562499601151258272610902589660417312062327924742303749256618750422012332892975228511544580482052782407832145982041956910332345683426623695172221969066756781288853370625536751425937676960852210993992193989693158047890255959990813472509644778960049356939937827732297064389985460649764400023843048354409803108482689688240153323063900780896132649317045302330067577345278400374207243669956115200801395707065285216741144126379783221847296697539522850931997093315597709550072388952578836719197786972107892088901278098496953828412113953500954776084687838221572590326338120658847460304233047723040177501798652195418911075766489678676275973767178461480136265028890079924347645828113831163240622756961172118350736569579507919229446920706091442102838059974263208411633669699217386068400917150614522794984407591388676250857981722605153451294680156079015853335830305881946451099188821540790474948241754833221402537609836418290808209032777912596801137494089878622206294099368716105676677136014137593841856470978852976067730837056002482085990265692395971403751463761698610836377067886314283012934081570656598205377371156420061802955597967335706751071871071249986167980738649967812840005012036382790285254900069909274249179482324028611068714486935405253583899225093996711372597334925175796565505788264077020821374586590196924612526908711806763971819285561776053452751965782482173610261473568663767960378017067281755798088589884038939694089774157417123730298657933909705388298652928566958575215434372568671092351660161039707406565550984570133149949360853748381939033211305703984834514572509004865163344590841282588567132172154676817506145225494357376726557852495696932778105586262076489025902184314344986729746971210417722595280937898148999662835778982922348227967947134994302855628421006166634749486230345873479885131235872125648728776692947954479161352106350323589446087583976776980825110450506851040710254259328691390716667715113564346960124576204916200643239186807061134834481437199204691663079951980775622485747147649091869237901691710225373770516633529625497080299692394137670876178804327238013311746888186502664698325996833862831187710942436798223900480466873290942125478012264886008674474943295070610465848292036759103724876813118322172599739421419841260391127548632369082865043729513181952820270912696671548781553875818430088341127215743283093674263560570735606218061092059459837873099168497061959209479016040295299930331854518789908051612347894338995997414172453152886597400976744362278713930905898870337880720916983731944026286028362995486454969469950676411057869269729657980636207564927645997456599120593621048479219841221618958722184420627399142629183227275801705883113268211853674974976923545670115866008187420119385018144649624577593725251774433909255907425366757376575194845418619873872115436479708724574197097253158760697055592062949561558690527158147826841512898114019440416400203422145936369929849260653711755095524105125160543324225193293893259445433090444329781937497839590315729376830288363079924012169565630967200851754935693836059580857277562958036771935533185374886915959535514321532993405285709873147048226116734002698557055229610059786719336637122036842152578847888001309797538752576936744228313685671452302405940501222728588371925812653922954436675147719012413799267722077437779337185905154592607695828162935117315886060025261716615329029718273049685996576577900408584972464055005983181899328243886939142796425728402168006837130666078283978587898635743641591526033489773960699251582075275428927965517764679946519674334794888309748602033034869360847684243378771201948910108963059128576138198084877322562561270733328110588603661766176073155775162284403481013836679576302326694118917261683161065863079538865927053411516686292105833905658155956234499239419277279885364520273424174860326730860837811379638415567618785867763999199329920479349554551016516443094754684861342658241965702823690004625627062565522938461177098785504567807251458788829078515668158116383152079381291491012456372862964780322898055918644620024239567377585919829444992620099412395525654808959281889890958087653939017040329126929013028392929821007061047890649405921666102132984621384453444288692100885081004500797663934519995073925457991943886022393933175391943288419416743653017453320323388323958867597558040019522481824198598810002846946993788473290844150250945972146911915365729213312861432480027395887687422080791499283015956010889004621127886274640265715412878465673529750297105133027687385814508923802031552483048481274781514401053249664712152480900183682586980618912388633894367294246518899579768824613697432691565714362148140501243604353895730175480708790158064207876126289336130176211106608319163213576622189211577363454213178535742019154605034463613786896097945335231028172801415038656209713645734014243715203872023892792804968172444162295480189767517617515257924324914047898865626808757498541349749422781708709688432617966537383503444620219676451648783168405428218995699672225634833972958472109122542631183926011457903324166400562498027329380892470279618960587005154663314450479536562518070338526525379430822166141800682982531984384169056310234662177343983140234229760554798835245829266036938287920398467162727167940086388437893214156971132966409415372518295642139113771029875337365207750115700814391635741737228974029264724117757201112783300880425496484385185023160335549665079803229066208370185399831992468894826544218326347099681853930375951491615142212246776813028079630220281450709670785315257732528915372009559315339492392639312522865405282197470897191776463323876297683978845475247796214018511695113661051180548147698974067765001004364679880027992264932196867897882104177998275550486913104392417736623880368638312646543269255820818263408652073720956968347534619383252668370319376605357008706292135243869127215634951020986221286006588667685004299697682771805138754068123221067803088696032344928602359772809400492309521022479673577137388941930636708017648957147521838895539665225218413146227093158783163020625617237067771584161472467506587876283871005144898766037227402393788275700683341346087408074235543672932841165352641986527881939453306385304577555346309293432589563298138511961600741577502224924869946176919242251722803056648582271180542152659789429360045469796253875034570419885808426774121427176925613034672131453576972215077689541853849654738580336687531323503922625852301114942062185889762179108431236647490660312102459886140135489514278949809890018933008079195002008548458194500998737274120931375241885977678834991283843812226434040181744178411257602001971582539244679096784766320323638401851292816944386709145229458179218019059527874082922425604296819121245398965280304868889940059503318527025608817421388475090996385315456738961049865487720102918577310316710515442037857090783039956549084063056268782061400933474479489055192112514625531096911029006044488316152309653463072635867229529024063965957423529183965050244456680046407542108003348957253899662351188914011531128609879391485818006435528378243347797639907712058388128051183281906521297017742676367447656489203512181339447276990327801355072220829976098758498809682989197180411897292060345270898999187787724877428731458422947344541814843975643209238440810364272191783872516606261474888858953318591871192135567600733994445224337377955055286926926188284647749823439882452838092584031024088600196641188188553800714905307373874960476411741625708715274532697570397031204247658790354276418225078689183042707459351999295502419634029949701421725824947381004533006235635132729056200622162670600211433093539919495997572456298481294338519644243058819338271996704409609309747390549034426257435549924163499154792830495462664830511021434780323337210606593582300057996780734096439610888835700612185559332842206044764274892525732315135801780209608549835186077781528165666478361253515572749450253786784053252463671476980632464130456769063678055569453970629633280547496783377123336455831049935339902840292602802993285866200848756046276965958872554368308073252798712247866589065744807682307113850622294304007367547358463029949049539412950844017886871172421924764302341629463856979510959495172554131148672905604045689355165108508398358373377229854140735673144269555988063362206566298608390870700480676705608522215415616022558779208712119997851024549555587349068372953956046035148609774418658054740589919159300639304302059197544983537401905809940723032791279646022815721224551190215046104471660428459413035234788496430949283026065233017959607425927720888328897636107278652773554017223837538433914079328023459949427143889523110914289704992417564409093328563936229318579828781541832735046910602550835770522887425052723129859650820294772377204458484781629312711530754004657057823521619208517285414175849889397996403178636656680086809953123542874321250895882545143449105262753032964753781922997810656080584641771001547158727962061539725955654293608487044244855749107322189879510792652671088039948936125092973149228938525393158091522234477759888218344296024805360818133919306373486071648768688519973585980561720971829095911592698834712597703597061570949733985143689403967462235568831414984588019082866179592786629248388980263237331082631720544289762605073561014248405328126615514906890560747265181162614548798755608891813009205629153694890312390755822163485143624525734498215480939288372850530100245720495909733049250623564572616228375633300963977286007806824250976670943134108289465555919898397100248608082970511887840477923942149442913600647937936492656032886631628999415260669918380162053234877435775774577416225553907001350710632095788552977359074854589143785993619687983526463990714823634060846431965248597810316262151392034884630841778831206117573327250812958962570968309472912342886194602619761094432744656579509763561868188867632464814050259433008687759246434270641474767844935404715872008048416800091155475974342348482649433547125161736393717752336639308505289864993555723007283171631576339549087507827178076890167341197704650218626841452162897797770731417604800175907586031371722885299040880689641984192046338178648553825993950845274257132937414363974872549175584483940882500926166351839512999883274415116635391714845397949406188457439187804578341149537010100952049842906985503309125945352567854526329809103864417129775165315497128007148862364235828185908462252453113198447631793439667595332851198285306554534770662176678478608644686917985172734067433179967770000762348298778030132719234822838731701616744315650951150122959714902957812502391730837258050639914077868296410230018867456612423192352682314861531316244789725218006542451569742256483336242097937693937876708755363129745307638012466946031444115685580169579819028117510906544589042223349494168968753611074673986835133093280812985492168985508405363226894241519261642185195854855013315579334586963708027243787936886667652305427078592349772498131912508757775232358936325214844096527760616747996331766861247252434170782888474238462322003570729234514895046014729285167568864334128427109403188344444573124977870325385411826520893363334900264255034008060679717731996419476972820454511301149362574660323267254515296517625701264343146264576544922410325736413255692210523680910285405672746910326472741451878847470225936965478838396029844577658911690707752161311924708281327284351036199674386976197159644498061699472206381387982363927023022828588041882398925395735638209983400647803281341379869061123096709773129176999482664510715563203366861878342094236100951901182270608856277688339974864682600431231175305754791523796230919794061617875986862125563990265265104184581128305825508671375126908626931580141889512547969738683914500156187178259538353443750211166132042243953005971338348775095952690855630784155858710879465600450250785777701445881339264651690182242916390526362850927180527767065206034823290747650078269175840777239313512525954218180505150539871708489405540341081043510512658549174870639900298064111625609708462712120790933421586764048008965509619056480967161154418677736249792426768063343733071624344804678984323895116402845764334912751901542441992301110251005531458504319138980314467337636638846579051596901724675191870217559203043689919267593885400829738982104118870494674440777728270972521529387603142235337062275511284596332495539710788660635005985443752048368488752305258698152858274686639632284799132916671494649789249257578825771745366246012269854711340148940142803026279687779303490012819328674794901673705502376384178139333291487383882799532043747954599198722695784366762097865964971327495690025054529351564033711216268930240754887181470857853145525167166493466362477527946163727369607510763327839342130952637744313259832319785568104776489873121480172763916955510113482348946733365120305620449237753450648951550377522976327041767627375071792488575097639062852442116643258843244274561719466734496313654913092821136640980156174694539426118265081157678204336140618740178221576604213608175051627738834335802257387364732120347363989928797497979995339546618532096805599076276626153936590168731574702991383413587757169044741541292168923105351045897512194548025993234964369016715745510379715851761907771091573925457626438518015800308955839955154817007647961237141702266572957200463982634788494264500645585723456753103345807366075223032335558071843485015298129010509020997309508273421251524831215920656511585133520183957755897500933276025782812575166610561794970747956380223386955740847973455460998302915445654562174546927455867402185715457089327913851670701179589143061805445096638344585222983315338329661612746245633050336404222194638896734665867413543400140569743997475846485697938177325333067506399991276266590384851410816184138894871086796100245814653321830244497054718832198549845970884034756647893055868365689980229886471955756458797003805413625320404757484938185486770489796076793924421340492335805064929415933192396806957316675286841728878836363682859583002089044842523115777923256348553061693197732315146986127121883957359772044603724676249787141373204322779179905409092876331419112432558396133675708651858287853445344967552173282081400995501229317452645834550468443576148815947726174841559949706060706564514299043376090047463482501598636476324574093429355409885287557658877007191478021247446049245333570467590353415100159081199842942055520540687772292585630496501247782454782629596298431118129073594474070630190253281354074414290151456125006690249459393064809215108211390558894920129065632288590149457820160847791724115540907043792464621045429654824769414903350352634058553312214579777302297212018260178565909244983217506293860881535007428507376774834498710084433961844042865852289335283880008192192907405053059980666885118043292354229263311123892790747643059038253844293267702914672750965245953905367892774992092463242606481909806596472348851155169405402831222460901369266319600629641173249081790064447271839076433003974057384847782802963222350525112182036628726357125877334542685164584144597280912892676978580224894666890367381281227319159044113334695744714411190010749973886551166064459333841720364911928206913530578115649424145753827897022139977951169096929778587084029042716294674028277078470838321668134142158442838679059672348029423907060580791301642685615387431255037590814496602382526899376791948512225284933059207409956106100382116225313727625895126695888231358425064664784929169967214268826720038529788724428433353614636302842744867098741012737974683909183074156275658761527506988617538771349507600220835422641371532291728277461126018116556359534575570190838348479385168918403051756343896957837350592490143585595564177777638310355653660498838454763683377490272061516824118890539995326332222672465174060031672858287191094867502177214232413192803799494345954722747984889900536558900039356704613541573161557138560272813400176628610803600706015825432355986593335801594462356827759235993802043923155563193819654493798122893337677025406714631362347640352783508276331210538542893355272713147293575107783468868812362868007441872092131842192489296969438584571991275268626068478750283594181558036528358557791794211173917722764870654155464808942058595580470914676799823254335912132693033433856214056831310203911116702266704864040712529382040024094210557828723531159510071792448352928573967147958397245487540374502355680329590351662315716455090607323987905099218556579097262208494965158399532129184737578300613222064202222609076444982687105737399910727283274965009190826142847685265493985811508057716267397175017770284772281961038135149011858207558732969020266151693254663358775770778276965304615526367205235944375624108640994653821311049186381065303452240133170571112980280003612913652926115399553873417169397159402875515846053618944387249961727519498543185622997995530685323645518916182165864268621114562569232456347064268165877132010465793167522699627678742166628463875099817001208664059298223107503630089293827131196901588114256347344363446392141716482606912761691682905839250132530052138019643475212202252821488373929362773503024742243136799931912980755551276398971433299316371571791963463532085941809788234451942337218514053808882148618494536626597814757886539324014116855015084917585310986215208047058476033436203905028557365472805193512538593565693775374581701249438092888455875966522372769501473350201537012531140135155590824550909767195281574641487978753700562540652519243085213977538921380280477158417201866428232131577186756578332689901664427565548608448128487115372845554542329702750597544412855839328910968177988413842980306495329187101477817291035826120865389093339918901061821667385106967513214799247743711490320655298169880181948050413735635045513882845068324157832480855906155511648651864088368065440476247570445067013041521963830870583359997289122687271155924336805830829090401776705516954246582311413347421707598108036052060120212403302357023077840941582994640134613670044962848831702967834837351073900427390998764883789741346163822810782547347214285220826604700950255414293436561420100004146699153542821064305604341647628997802111696298296254135642761902652439281194270926698758554542198950029551081359162223321708314563705259780112323564604408173166874400039036815484949365210784395628743037570943989148697272678023568611961339365251351759773000412818929427676687623392262488342698938751404790682602735835339201526717927786732609475183197406601467079492413856696096675237887069918220772231553289678554328749102498804511767740731765341169256361432693488614230995115725199294984019426966272383670417904150466769036430785354786168032659866204395040099273736529236804545388637059780688868779278147330758362012840914461456299598287223365122681227282270428461318696991749822588605110064734949726189070295318382633224447762335983209084070666903590546843286716897464095164342125608657052423928660537261678416537063182171422977100908718590921337337177661783320395999715945028410756067386156091496053884395713415827846977853752406533246595901348548308156955014993621828653215550683702430679167493085830033989822907823096331389238502956039690452799964472660412929743533713513833003520903360203895180390277976065505755258389236075176141461917478022386620765624258529776424574156089863445126930827016001560507422225608950480978071426818805567792941302142919096029959896579860422152851746117931084172722109348314987688305954363489143369083697569866485582264436939524796953465548340424062695464029931506954007413875177554343057411063797312957488510619039668072052346789373927990100018189397678792849338273384605199320804882391585766728299126038977547761088190448019016579073796523101501203986227987129125859711940577475153030294797580207382006343438725010493984554031090196854136181648424454607122111798534281359124454827239863377975070432878963768759598353857670181606002849640724169769093168085596619238843792009853173924090187536570277651719305740729469323939941539847058237784588394170007371273697606363309841361714444114591398775525613325091684075074832674955654580163748076976019335777270679233540477535252020321103853502954072957351770711877825830518364178072717843178485640196267247544753844979655318528031055793170134906559843709576561863208024846715800860446098180578704460538008337314307914264778772386924201063803438190458722783457836604337702659592669666369977142716483563331211974608137209452881096877780485281698736015198047499843358468525978726150312175593801968500428863734275964332917076976265248338600081922576401592702228503166563166599769701041989958403477681494167375797479387640389171727565668320294624108653148095413091967596801996286013355121171088834343120978051445063611348651214320330901274837854686812661824708190616225110223252097680091605761871595130305204269279647648934791505991137914942184427197531787737026578704580135168949246148185999318469030100096324297664911452482928151442606992572388256650016840672890293435064450302319389221438775854600247991596296971235163159911696780397308417587815848090348138864932016731240860894340389580911420847765852165730499256069723829790855779412919858947819877285929748847508259442028901710983610396975705214822090394476950020523829203407222191124200862250188450128697379940209162088099370102073132847618837789393292964748115667119247809942730509744682107873397836394939466112510165633193326102710045336481942473570971473368464791079558449230321998478879475521626355515064057409993024061307337627408835437252468070273887758358882372487654718179628787435146350847494350507703169800813088334180179411100600754117979969277893793050092398728260643323639381602703068474112102601033959413768822238132160922358387835515448025130611106205973720414303930335342128641095965062266776781628993353371576272313747435325794102976417962197418244668957436853362073591045289384713373006327917682953169894328571382763162940273910081534998717544726599006337686985585521781433399817591914823108365667702177644409244053454041959088116342175268732545053850615221754989597742432928135894884442107859198365000957933753375033101796973207140801285218579330425107332463735277353259391436769253683252307595499866009378481136888689757090890499156741155083886807321300767235105059784018115746223603205807808491954532793272400562409548933255755461130377514943957716360808537401745892770037476703993139091501569995383929327390476833170868531336605125610090050698629714549955298915678708662722335048840486469802561315051329450034128152280897755328156829005233677443551992663239508752764328683467650597649024132273092531914088702754706160075500456623891124512203075794669688515771527028974022345611876557184800417597282284375398420873549375708580698451397811195243620411767060939613723013210697629409922670368484519371312342046190885563378970902838101552847074324639317519558718885502006651829524025769476321082208124043651022933598179984900704048165955021880863056931227779256639941608512922770487729169786132261565887374942343617955456722541996943176564822084577153808467093609834302040427047693718044352645923555671344002859701654162568971450111870960741584349010252512167692800804330565831360247607079660561912372320343581025550529809849511823606719831761550956861003716823684606262656175422259640348240773200833412782072273251858925471411525537801733421621807774323982268450849388622803448376447767303154065638260192902643479178981102836644989001735287967308934757267363582715851487741624457542180111362404581442506321457317891799101668937813878144786862643546982730886549024486969712728142386984115863739588343480243570561612516605033891356689746004200741238799927508275969267585065237056869228332869474901462068730502380941036969048549591425282869831498477429517832353456824294472380879421172571854901384517821546364418693470581703195470615529536079448400487159781325529658512466851955913212243681094744685608140171053083248331723426975805643227962281150595010498269769223218610120560432662140123642669793024517269613331272154752488101268173943313090547574620260042447495906250595499981161215695016592039322901636290750414361488086056417763387809279686692501238913036434663443078314891634046063036127428740964945335408380268202608754449597875573309668180937365264207297936969070234431261516295782979224830657306732509814581987667538148047838339574633521469712876494712612479315610480344123797942068330668679965645984543317853764422471021420262172979511161446010719660499939705958510834135071830902787461374719859835648367265579124742571302067311667163375660039845648700764784132838419233478752862393874540752525322178841670179628015625559661210386740315316675251691391471763763623976846799024140305014252883447099404626334529668004822641350592144876914192961683103434120585621642698331909304982324707937970359862079722186826598647070137702916841855046444617196108977054681942231019114766864517522481154041359882253525831096048605438692622568348248679817702119525191889435102448151899105681249890836677971621042606934316241808195951092052202147849381005539172132077676773541366637826713464849147983658344379286316276072441167670122169491407653820986467727073076454959091736169928397263106533879473714025612949556932869279814862824715676989931035541808197727821459820493906267353881680226292278153448312579171961999350121820108490935757085693539907944371671854346023500022092528261850148105991237703735663274364381485320726257279304170447076920597164297516922899136577551306800156910497026163989456523771043791234929472661425078641732281304356380127804448375608138682844029422780622650528940286304258779727984205035778572942213843270909614255938378291478945189481890520486145833950314441811900065607727965167647363007597707799158656296269430383747640212554347486185931508639120389850178083025207452850682561237857573110753956126339885672350583723703020713884649439213963824442703912179334539915162261069534539419488651670382412957207705853106747225813974869015231976164270930675424274180266780839482545905523939561534740276047741874156346785936585771322345693354151848536405234057428864599304186505119212016908805530433008723500356474359400820569320548540976699513008117377736480606250650377241707403082567802022234026692765217786481295375059768937204519427153771428773036820199563454013016880177810519562117900317453721782160989553526816806452911997929659580468625872272852347959440320357314098092501529967737930153996802275691287880656982063773651657669395872711807798546809798385825865154549034344598167609707274472763554667124546058278927827944861497130249389553616251782403068443786360058436249423768347279134127463194737425225388944490367302136807934781243015305980694495157727956196170121341296512740060710085584263790868299659185070895452387084707976017975791553322649551056930981285630367905927489971536128963545922998093170973105842719274710356930856414936071873015738593784048913414597396282552417740601853864782340937189399508424058484799575159750692943976261299028682261981986377649317857623085445719115690129881135974726407393475466204351821998185943002604101945057625004020777429583192220489191195160942399859287860525910922529255077352913498936839822605014540429360793913140090189616307285793153645196850274165521966915581386000043394962934253092534258511075851189673191073226299107148009022761449225232310771336951693367589756234554181752828289753867172608786332668956970095204966923365381127877356695222597999393107710743825778988522323384211751903151608122279779227362078290855672572682446456745562845011231873003141817417083275413087672285382007717225299886745115734207413013979192389610813986432330838678788802209684545884041556464729090522157307566370894681620970539783058869741641612328095789592497882765739145049343614674685868090158359397235758254563759666232499647091484437433522644029142372594837617123784647933513868820586626796775173643493577159622123645859861885343375702415104056622778180206925012573965198507379082826303318858077174395999594753181045824248235727188410426118314265310456868614484116997614378783715357836776559747871002659900771758866366180045597969222170535001910447694053118091501827241772101526724564006507802046870973912611488267199517301922798147451114047572981703717550181379358332894399605611424898038668715063398828243583231082372507987177715956647165515062619425692099891691580412545941550648778478269927835275974696572409856756676434318828564083176221760914248137834657801042491522347181807429954985622587235004454119820841653319680884915847868508409537774795750192865600185240087248508738751020636014353201382792093513601196253812818030882533134806130534637889491531335147179232562126325056243779492333858198297032717420947058812963977560508279063379920410364302615902669520941313727757904183715533381805554471677416342354204835376615227716753270875486021177446854320822899060063643614993945555409906327440741478019114452698021438938988378614946568336809607354119797612152465014888591415229981943017640753495529722649282849933593858044476425497936016037165829700274661385602210248055715582841851245257794720465477645797652010196601028162677173820569134156723605569479344409794698285392628076325100684229543914162432837586521857544407531595226291706137840547581488555220070415328291002255216184566373508416300647319036263286122296223332213178985658356661798149367744075576422409058562707900296648514403888971995604340726337616915533852880111140231286563956405332290967034451821358221943684795001314003008301802411124727963200843371549962859307071104787214418365986008317125229367760623118679748564035312607228585906818793515520763627184586892105476580808578680809545896951634627056017396089942902718867316760277782275985567644775893805057655844897646361033671927631427128558545296406228824923000077640707430871000581331346551660638861952108480574864171581797426487376148579267588031408309394177860884260478114668613197224582643072920219518071577819444528855964293024613833517749145742053687695671712422926445929452844668485648541118874556854488708897471721996674790614514961781740991826943272015393650176957220034088945331574465223872922799570017484695456774223164923108081203192047325930581885014934274333364467544166523003288407701863715080978549891324946636699781791784905737014533113111766609842894004430173045779108983237336800184565740140406913844514350182281815250730582567155550486288251231202770280253293871483456765501143541668801287133069139723110605972021278733409633871640362147191432699333434949463643756784743345341663757614602939761689883374325122859407354192315701503087238992462330481435256165433081385500319491182056374350970029715342086141791074573897105830751684023582480119608557858890020258660316058104932309428013461096575924806869582740057490912616647888769374291432020213336781835215317542135104769090102243194628567088358562315856160507961558156827066196118212915682320485490924817975214513851684635316022637524149304287021591546394088551664620397700875329984319621542513132716226209375811599168988806706723537977016479497380668731058723004139444106056653217185217632850705542985644425191094949130271977389595903863213366765742843180585332770648166446940183636678812201511362912499739641440193911222974253908979614219354945619984484029689968696848148105708965786868866808247487860583224087608640295707623161749905019027657994972687824998729722909598916604653304825510426128624860729178655730186271947340461564195190464866980233204506530334678853409747931850452551260586341490264436856672195471597531676797545485964150558972261868756211893455156713073433770966124877905931625329280475250416400662941098510805353909122554716463135212037544361038960722184017107269842834763718108049474073677203884836355483262113765571010601025053210814378114806502306327588510263665266343489498446326480859115579787928272050380001295182113305879440326768762771909403636696576915545545503372118800839413898304230199138991048322377225531773871209856454374538024008981960113920620862629291842119293154269798574811324055018670278534502360226370826816273125064090689565071753759508586493000816885301296574431199264498548127632950459651261020586386045765269729471663849103978467715839392657912711548164162202496764285432660475873628083874811825671540099572179310301350920645598038136607736976641803404022051441996411266446223135596965458583211850876672290439606553344271937405777484595795454588603493685086401369819349493272352131733696456191193646866580570275871181050906327283912052027486923813051230453751904770862231467701171981149794501202500807565178442408336453593419998557267319538442998407387764150634279501607395839638831080989692747925406157936598064363584950454706907380860629198426081384316929809350577197854937126932867608510653783737395704997642655092934440486344640595723224851922403266136018019284742835488984344065503687022475333272214349978203338483300974927073512675326517134580914623016856246617815068980811572849561409079782197320555958917450685720921696089111724512435908729505617196467737075870380889415723053833345588676371924570393412650445732936831353062287865865403260702407167018268737166676154543314538227586677567603862287375515253228816344375113779549455307986354804859896729466731156886957292061112294651019637195496537954637808067892029129117068218419907849104099060028665371618095955187500387472138676203121753757402398266754272624192028460053052120475333636005645050132179818863569402732413716064724265627070485790711373078021573496269924043991674052675250400716585531452217167844339857265618209724108967234301361954647059283340235573442708194902683928782154711631802845011909999645947711616088648782312499725659667305569010531562824314131893736132573529345099780425053712087032893421674303224746367332246716033919200442832406941869429004580693603484506329803689399259197607288383556917469118355286186847142549990940992119656701634183493271949951732072749081389672250452329107063157253347503635250020776419399830524300088809157078433551696722733466038663516034278317143777668097494442331612681059165666217753482925390814188591030124150833761522891159233007362120520009599309202274881393735544674594892370307572228053794092324941571791798423950650387679116787804766677517372130836459781232194206876883243709144628038407994751045741496632801169856232086715582852984329212508543533208736783498000010523535513872800817250040250287402050508470752432574183748247479078428534131875811325693082345528251587021141760294547537993653165900949984897762780885603588374457715519475261024076026729962274935478355851617128361494901482632822801197715016818776857186348079093810921467794485848814404293782060652759902836045140760879274386172591881943468188244421268997235350137507042063674005957944862669169790749357383477800551277890658515913806153043335816472311069380392160384174393805903154041138920449909685239730781772819916762564741750699957870410311355722127411402020708379300554396369572023666583961625740599416896919564076645065914230994604723008483770214594125839641894626501259821425345208707922819044158313910500730222752997657571008870182136104579641537745800800388228442700787430027035428196226232032384991208379678795561569861328790944312505850677494309857785524742417597104354830472891217840565516332933631602754188710521843118621996721989870743196862515487848256438359755547057449361317784675155561082061171814089026189872296218369434190898079376679723143369736922535344429584490830805363527319256271021812399929719083943481658870020219698308876173624401039096148704718375912843077794920372250537549740493097540293347372072967093802511195014429829542701368906848547396638817531008607605112025501510885385908631548873090298115647432006235162763678425044620933285298562623345212922746448080416687487403764123035373757913346183125085560667151652680109441187655953306428479509393514989582993043872103013057495650350923868349378177752556332624188748243792021620581013729682897694480901995265475660039470849133007660558581098555349103794105748435145391709657516185731667314871328719439890111031864462416629643776876359680003221099968670559251171924329066842993916434613504064054747088629811176550029484782589034680705213673333884002312390317115885986392462158025169866640911205167912068488245977015718139452069450673108518044497986999118993682825877479901727035563045213522911946294433336278771299640061236220248997671695559792209105069734652797110514057625162485255147578847456467165280987527239406520017587370316406875454671220722426430641748889634115569971096912717023369264014188266805563032929359858227534909547998419911840825051478092672469721927107782728836691626472226328083487164579415952662653325456403555998141041834309646732793376172660424941480502796125653929626501524868750047511216617606694730310824796513210932115784427921057396479858941009840674123201656355352925881226844155032570744450961739333316208073188008646195743825292354641609830638065729758099997650802152574859639169218945640702317759691566949544297363463410895066263613118010731280293491004641477803737527600400384855301935854020557357121961474976756447655772503432092708483282146387132966790449577470516219715955437053339536773131571178182346133260144288830831381118444725879789252325162945805625476006825877835831907907041167791426471474504999007643292391816452384795034222688271788262542672195314384617415512774215364476708501471122663583060543536176470974392558434543503645454453105367029987650623673145158301355402682941207271178126706677230727898335480542789854361339602472798003762720435835413489034039662595465166228156079672713065158904924879758402876466836016565845749218613019547421827157206425748068827050127362810968299284689517443500441057555847355941478102061837537055058508983004540155191924494362607808347256610219487470586598438358505390618323170724148178829381632540864784204307408513653876890385179711276244866840245325833741910074966747826207848796000492923293875488217017546485533358164974258724203264531887332079428766271632293988556972613941439285845003860891886388105025756995581511963003628888512412173778219498021195933436132661453767223223124680649095455146119669693975239265181841627764908812079096062415575695349595536509401023202350703834974043444099843983481494228006387257144372290088524409451903910655760642340258072770772334349768148094069410322160537119668587653417337553632336710512170283889059584321994111774729022329000957385886814882532325618577449411989389329125188724066700157448054412015246056508707385645699279314728811453151445523495969111034193436466854964173422648408733036458567345479969606463864133462269001170397914430478910556361035503189370228871073102712260431554193496584331915952338295216465163527252616531280255222205405626847137631227703426124889628471214073897270404104398308537698871317821061978575181616550812249338109967643027800204006265706598185504623206130511673897759012067988334572624087093958634592546346645629300896113588340525915212615138904837254928563771085865951229245304539635591304391027989343329246829527957555483935797751610138449556511986933560889425254155697048199380135646412996257498728043117534144657879273912807228775405576805271492714415378125728432199314489708624773462657590700396366725629235214834681912524543002257307822222060798457690133005555717752726374312162221536007813013891412957271166132949356426589511779035799832694190026575943828712674810699586711877320729439884658224872473068878285371716002439927940170308584152044600784388425075914140889546790570468249465698857265180159408933018255211238411110307399285398531249250907890730753715547872636385410971505450868989962909314468891120536502943450124901373421054528240302557460782237097106524238188929157856621980025789937806277650306562333094716241889096141386325790125805480692598338224074754159086648065966819506504556263862384207721896343081339776751609364772246099495168399266148596877120290931650138653625590042695695591958120510556270492697565926658338178195070478531980682625409064382093198257695699204629122193313578589500208157825681338247247183058184905747706765990089992948511285493807625110923648388355186455224613681367337518858655113268126888007482623143020306090785335859017679388268871227291176839249514757019629601629013920139350575011190131800072796437895491095675361607809923962763109361697644754803103909401942572730909756036906327779613823376174641523364864769567485550485850106585448048346612856447835553951972578507170608575791207634928961276580315768325056299809206906722543964776305122293786569091345569814702231285303240948197424398825426040841923510855762570905245755335380570912256906151048923008053179770968878772842212953134148600355830934969609030592220271429553365123804084722834717014158041790654604396482555778048456942833913637464499092664341107709189870535388402909895260878373450191244693313433888779675715897600330698880895016286938270285017030454017921918367861066750926868333570302826583177667187657356808167278482372009035361263466663932252914914380745005300002096514936964355707575026556584778547105610420301582392254309802841187031471436946129333002125604883228736989406261244029413367157702119897601220242089983325589586584928019103383589588028347883900801666032525461050211088340459151364978813636009095979733352505010751144985424145189341463139430158883717006045849647499635196906934424679843544165132861210309695534678568743084097446697032146804155537921428386039096802162906390013666817056334814801478145605078316594295181321594486878719091667554909505144368565012681568473308607939126899174891466463811216734077143048931988361015583766280151653720263957190519512558025897392106593806905653080899126334995032375583890256927759269562345501941509808819777218560794102624421630195597228593145861073373403065816563971667538452427366545633791354837065552502208712918665288924035939926106634484254438998751277797815612885709843825403296041434939010842941429366555877919245466478001499279725172422394877338152550076510833331700721965842615020651841021852764185483084919776086046143545248399720470630503990954505171988450301979126092892395370242118773321150013238618276451431949407143103838924244057181086781527443347930444585988800867996758177909716960114614807589736890030824659066512778981693969001368273531891892725190706753174315427843557861024264893284141091708620354892017529734789755202476866989154506564260713448019557468062183947590991138310940138695177831249520228957223269474319741538317275817456011604745621858617974794099544603004933818036821250313941473264875040930102176367982697660685754708485221899100319013741872861399107952428414224148961712227701323127568080956875958047061069449370488089533055481089714092604514105896727879231898081320336582115501869136613658704107564167516294974977356909539631761958696813356495088748392137658936686902540422141102813967656561723901992527233841276426835778962889079243645620118525035381731802693090863618300981602600719045960545651098073499684202548679106484168313181001719222975673452154312615105261344969430904906291683948763655464346818137360759149849530698918357738585339917161884326606980521856177458142107002515833835437344971763377437045606717271061214590383561147162177546743719416606658467089463716450114972477113052390124476565448903149212197148312927138411947193951362647860926382367335070246283331811092249684882565275701093747975909958886561554404181341194549688892463367587924077079436938280423544371528900622609068936306622504923728039512066297517995886194522805318490625705202528517466731127672270647034181650992317337653158716213713027573692690662372825376672185804172722203120155967814760755387157431870742762264640119749034526692916369152309275747482187497618800724578118137106238355628657287633085360187259686696405027947295803439545590478812895679191843697425153143053237044343331846270840443216945797609737143430706982145209265422724740437300920426023499670985050267177185260781147956199991390417671740551897496434608933946563293808684409236314883362002062424887877894375883095475302912263400601686441115573577552197951592590769214000250274136304793367067874318373854080471531594292140184222862259212836074197786908686478423207728414430416909331505027375773790688509698583399534221054693809441785596459058075210702380161832521018652695481062046419499521094093960004245717300783690684127374658607685730161641148228809970419062012144202203971475212760374921489107755121330071324593200662515422383218043680614799456115858452809296794159414143812253660266072898991188325378186988379949736619706410654880176954805755419087126023416739967249027807247220371531028591372401797540107444526301458852029948157888562937769837658325344164429942181700560784925664546449887046932973623995495720463270183996636238994917403560213139033041014399264820205523227435086293715099216443079080968180788690152758850129178028841111872950091203426352299733088887835566851126281231037118134932634902084053129149053464295588216093666555080549272543827162663494172252995204223322804896620987293312254594889406075250678580765838865932951604186812454959011268600516267159866112565434978209180168026136109283212947538160966743174735725105302910209567636412736820331184829488828547444267235701991939369162386132061630647683390429133842160837464983621066696728110147691689371494052119494810610389580399969214421116339399701084028771993709951167589509840188525571236420946589788671787974277372506730583622917975105572858109405922772575547563713873564125249249634005349961367877475205070416554229308705573450337525308537218197596543809174179928601751377964340914484611442552250982517886237326317393575619870475362278494768701067823200838512813809668441454364003789868997381060543973965303645556315355250749719358419423789387426280982775078457312883120089517916833845048948780346200535786623541117904441108151014745782233283876002697202503257421393467005009904793395734770419027960868679187357413315702074007182546780499060838762669749214010365152976345941530451150379536226366048204623973047318611273405674910498875290854320736464457670597166488840413428233320381340463335862515530425365371738144842673797091950236748352748387148970406305389628103750648426733454350859269022860022784078787091106646287278553221523880331347021192481692754331120466148059437191680906691725505770752279845469488051252239163427108468172468853997621388033952125540211451910867880824364066055184550578271583144658655419771835777270118375696197733670340032119806084707945770976141369849369719518426824829761517671618755215445471873750982557852861394148280980290562120169202356775147593423342381720920245076381179725482246437347876145259353479620186605889590780950602543486111025903539875422737043905925298382588872786419518314391779065969451184678516527566576821040137497889435638118882363974947399719720794851043181098127021020615075463194763843309936668306885646135669151050644295444189143510955410844160739599324161699157617042892540468013628063871541255787268214832555743528090730626602261561456848037619895293453718257391683964734860376931037038523709263342532040567892923899139414860742040558921485630559817444794994505236413715736139358755182532542808381520997622074686784327790955995376966783110691565692114040637817435523045032279617268378659264617510224511705103698299815032605282523566392511773306736462531161709549689756051894045325508233057747525044570103350008421783497929161683250598406921056511203456588653288161908466859423532966689341613748629743143911890790159953564656077164723651559849081108101505048385489835997120697084395268884917668217989590590494292479932000368638919733861812042469744527672132893900148940145949954633032742111655683471330887946706917479869436657035254362473334293855711319266641099483409381315745881001740859486162449163165705610985989343144460750608520745952925046910148058816948628202854285032101839954058293412344575620296701154086375024832861676879618497561468729780574215029999115791388814528091601488340330162880404841506845382072413373134176679555412569094881005220932057725038064486468986118517462915335325030090961777515483353090782332470607183882430426983071335277358902355322340275115390028107826791260474085110373514041200821880064172732774706886622111269004366770063710735216600407142256359995978162893741744469536205817114210398601103655008776306548127062423116317099389438373874951808515130170693354703912778756478605797638481725747700235842287390121761621351236202994623406384717131364427898768888871275172068681589818917141330418099448542995155748776853635733492021192585815321805217157230354865931974362053940422168181316051393122756473246137438087198164187308538158032772452257333144825275504115102378666682541405649840839203856533365008674890671010434453957993354518871224127160984781541206547450066385096789787618573545354612644587634336825976082952815471255016905530790152069583493704635389360648630386117851960961290119610202218168944214107304885890976982692820844572193808779070232618402898686662570706358929082471137329452990823555405788840519068628791052683965571143532545724132623940613223254563114806747689132884637080337252489154317189531043062342225108935492279531848514673692576015651135477194931215097152652835396932986946372388490354044157737034628526627272067943738883815396935260455653999293459078762605899271744872722746982781247382358812140248305031545446696754488440554184709239772288862778297123972284753279903906035956468794206860025241195178557943268373788655622945439457826065107631857861595805856750266723215337387661801587553771734701040874792869687482521356945382056083927411463159057379244086966153065637039714922892038198778625228138467098194079895466642577302869245210726873196907780068752085358326728256724841263505184838407842809384562612227703391149348007279480216227660816687111799780497149722108268473304874965722002026329500909147086161165808654204785887557273042043089696238350495585565107955144572510342038430177398641841728989052708833070162325609370124173077840139598528440430763604750075576963821501057746067919594515690949926671423278985759474970691301525620844738240888897171351177290624796135518678577824203959238939621217959432876399162470321185771624942217793312264607684247331095782903331981456919172984685711750043087682414014150166998254771022640286622897323165653521017396847010595622122063771950196434086605043684776595933402951940809927067726245156211726499211285283054367251007510742135239175492175281394049553042242540159069200442924668667197071101154224433646576369732697834617407033098707488922053606449920360561153194432657652072381388502326338659979103715691845985649270129352875402736997620734585738481124045844765348111192003147344838023313174947321767773578720629173583722502511735668767222221746206899653841766919470202511452706839216994777333516121723219329148760420587031844706296265477663373819363952502671276300093898385446886373009234794145751157747064070738024100486450912615634979048675078205186087965939417848502835647765043252599141549494232666001139293071672476034249797145259160799041492898980428729575162475293809549780885913593859553959184035046697267156804214273419025946034994333645056482408034419031418781529242734037632070870683223857963882942628527057082791736111159788362747110537747478574244593867903711957379902915762558272285595155644450070117704036250645715124297415615090488661211583072493824946887663191839796669001253453605439287333079430674144586848843566942316494876554739278555071832863606860979883893330994271607778074767099133869939946634481520212583123264055696786608698838212790964181370571835012308209989918385025993039002141748176431562057460332601607822300499191965905883442445894599266361139119882278108458842986498673407855205554027802691447650971963874544520674998972801238789109537977697675239503655237486376827530936477593721166176180811507828193881952267307522404508530869888408705711118364604126439347057440621646496947982836535944927409362840133513561432164945287952126910134892280941460497294718196167743250544862323663325412205579996704906137168676934767461107261754306349573470280118134455919813680925409008178086181208489043156361704397745648525323897889298720910056476235000641923227986666882274104684755660366975838715964500849670390008504952148139860072882651822058966124447513795028787613969409163318662628014992394687264929469747288370605650845576238327839677716263069563502325739665370618647472048789664070125250879102532667714532391611278703618696355309588860472378329193034619916269981692819428174692614154178175819817237917547719139661790186332849076087963723033816897881700834108389049928423602819995505207737908147412173837650583510957926087738909869123771682231444124465385324994739971140575868662713533592451163464308407623178864685340133478493802749365529441956084638356513218183290509602494372684372080696816630824414497922317799350506443809314763808737626673919732100025479655988936603624767963455518439480741229422053705164815881898173996856269830362353397296650854443830650805819048583351714615796152353295835931435934359310921365259285982215610737268097196088479864990565196864717301304054816256880890997718659705600162476361026102962351874404311318124331659028071700562469273894396804237713826381843776121688406220723130247769610062433678339844785513029162288568691805326158597909819615790530962258127468322037574650979770161893946995024973477451104269236671570642051183614130390674832397602898332398854964650366940942773609781076574146203394370618480668729967672589391199302280112329874930095513422077723924584944931465496632043452961799994774675193326921399939437041048250084388131497681988702350541042450836579880890503771809609770198238925887047762854408653778207010999404739082990631656642607833666972255689203168121076974635676316412446192438331565968573104050540724214455270907173746506207741774205494775448826074262091461883319849785305399484205378750956117895661916583279714424301088898098715639653776093399714344442854118817299906790531133352651218162523631229979389107652375146913704527288428520166073951474658365397624469924426196685840410000567398365189139700573718133731441319742589240796018993254081676424493466247109248068688942613001174497523724976741415696598676351655766861243125937529369805489731498334570779358618583430704720346468973674972188025400439010006624067634159266763514914376925779052457599847048269645009753077662258489276865498050964330061169241877314241074629646349934132637936631771687684858758707578945719261466012966289177448508258548632371858968145021466610641586202863345234337713194090866829147859643170508198553452281778828843199345886511216994654378055374602778966141270916751363171121054370475331493074783142792716997479074447199234348017826853197034871277981012990030887672105250797954547665461736730379676349668501626936838454466128792341244027149948960767301083032465835276980580920972405187580706233448239914986884582824389693600819632605954068720254889786723212107807866858961024459508352329625916344941603177795066861033955423009380443613138240739614048543821929551417225312207673581140891921178890566769172098388894480326520448225044528317051617953461302048465896999292198832479354016099657174614307234232934003725164817283980107901959785980116743934842206982220327643862203289830559183523056961720298119801794496598482760059900068663247448513491646942063171187613209604467612403268603458723199159138225966880759142334519052720786338782412004024675134479375389326820587133875019924058409636142478206814087742272163096415252081697601641673226642735106023440054263776537843502423153010287839861717013809701083512464074547942832495914699021667438175305482980012046951103284376524819276379886684803709734386942779331927143949397433857094457089578705799170449809257666000887877142809076503195886118094330716870489002750398280970785869507884862139811916050449546878514982567550005955337823109971448392964279678715121475701956079337785952568404867011555844471170115435209122982205438381201968480898979908534045442497522963378164375779881075882373603434469300571223460307670228098816977563882835247267093279237843684016649222219633494319675252489070006940470977392784329518698219380095917020260388290017365204519119253258836224627775365713444171294196929594380295085825810969014637554077091753914268878492019809882158181610643289846225721929461827663249986321024629634341455486429596579993834564113166684594850866489597675431557441464146878828458685554755814266430841896796632609788127933729664130405345106393065638387280926373540426416771339464665611637805263250320213752461946156741099184025718569909191025133848868163785606948843766118610870401357824443818462955605928273652327378093829947469276354241463351425924043822640063045779403970838871596982816194353230413580512150860824225396607144912546575854184005769257038258801591242963435315784977915865979329060503912207286551913979307933938886414364616790695678759151940970866799261606245445463215449231445858809702855252884074705585781534799049232025070767987700520704695488678944989704650865594185469900790304769221711792127045421848463493737964329835632727994119614911777492320825655608599814277269569311423297592817982861971729840719041024157555072930865068867832655639550893413285126178121706281540771731569476325448080690584432361639607284942221561157856699326977955266513695929022025595081150392703828349745120508080818084055595603237306806429899745984354003043260238551126356484458517971070560539606885413355251848222915670622617369496087841415378024914771133067533484308946423824754813574932361432127786881138898099736140776170221946573115110408982190668002161637188157327498879011376259961554632792530842307579353348125550552867417905832107889748268531966277458769022838010886022809016030735495573558415189336056807913049618787409058121061487358323443932289623527538542485686214663692475141483925640892988856218418165625230995883658769792760122544238321484970111387650718345463375027854691140859068935226244991396208670782120720372147167685367950370223043992499122059329284166738003759498402130110517757091550904684076715794509840462487206150959568637096790269029083648969037823689658669205553507030113347716236574817577939726448074073513586276877786363613009623942572669048139741095686696289692970102427271754739499246511202315523810100188852726732821702063705670832366903411768100974233485760537600158371561586466420776446365366593459806280291887821193095083809058904088701252271142717347536690001759145925746795887308131341901816280700185590356247774117505785498797387772215852588671548811530510622122703889302794309299722398886447673157016920675349666740921931610551087656555483537146471516380659457615720196804954279540563686523460019716536775774948383105274334943771832537119785491942739101379170844425035385704813138587119476996736478662062002342904070516773986816746108441781663043180286886755459448051433416148607175528072340617742320156420385923533366689059773096537984775958474498074404155451141510796203684539362640063533925554369847856474565887563541995798967687518856539105856100557837787113464778712703672359960538896359678672882330654261487127118193942920072925949512030246707373130809731572750050893986264202047505379852158903442123629324528388726281502071662424828097721363042680508233868987834154608956660380726575567507305464153670989672692814398993677850972693719194975929976111606979206616322686962010934463263933096936874853385779703466834273099992359620574755111141637639021906283659967975803614349861532461451622025223094768247400917862092332012490310011091226661612637281610601746244079547643108182465857284697119649824560078448956683520650735188547497130668079614441564804034565831461436964594099880617019294470810812897868002567513181200629101947774337335417437821909492472128516465042984078954843864935269759464468409859035572126459433724625641039952831792159852454679355746318307613252984803811457690685790479790202159147105151139950544180500380914474812635051116173765318954905118262017202916580629233645409258579487261037101862754200521525079227235476069608791632286238436148692132107788182180224000390443109825426976500108032103071943999063611896611114397952332604121033768850239433011595805340240003068284448119648379074110403020059069995305741283120477989872951055803373567954435187571945195956021660768152534365526119757513179740778481049341221398526964623020581000942721352056061116721179654392277424964619215237905642748779023647247236620852695000428450859104862185545211477914639086675057522625291526421417075318364521041511216666856008485984796496629953593504253601284593633499218219307485815689744747400970447313461975391893068622570672378755821456820735049999418511193498303634749951838342936342948943080010882006547235488464027231739541665989772841764116565270126397894657024010231309086302715518130826389554022043170528864673866899359603200902271824109599621874121101577604439978333768711180235428224229897719098929584450084539316932989279815387015672440588618630690799936154207735038506700358605940612544901669061895275971663976782656916959984655316109973731202462009105217091971587533863571929362968438403231694246029048122635808629498579742941396420894849272419323416322227966706657425612299499390851823447598331146784449588678961681777391424833790587717872594270987508833694567552099394293622734118549020874637192304328950926233520905378809795207230842416377122755270220073201870783576730185103337932326196622972175280854094037191310715422341144763262828769374332409382894952208072779080360570914929368261415719726649183335058267030130343058035927718359702666846632542558930303189330864499602223929270527224071035653394130151965185244465704151527150927203846328638201422049785827163118370447679441633831176554537918699982755098215581765847289784859290507781909289077012129564744715598092222256916670498680936524492024774596213002163439181077757562221063626151708271180940218282075039358144698738924429202163484762388778900571113472760544130017808215326306484843031616474298317084850718446597702101873622237785886833345252787067569080578047874173913501343738321127797727914046424524425339216828707362410157563320019300779184126355174864746954509768427176291039018456722175884089879685269557563104872148911869718138204915808302854807480032875177245538840294711463133948593148271189066535007456028476174655126357333246439057600966754700290767671797366729267801968711607176845963644341180047095733179495854851457730640253850585348445831521506494215089976141683550324478505761503939265284482470635597919178720537192644735645655966993106440531399989423238184664497664078266089197407462350610667590355999241635419483312631490600142603448663812845988063374588271150419437985891887566853994610720940527636613118959617955091884303331057854074928290936736636632279350411259305018423733946464069633589588665581808298105498175816801557213261544165213292146937530534270369533796141762413967366986947431289595324745834100130680697766293869065691936975568874451943736349161290671196855322771062384797568039543822942634783446331039482912081409185554132571109895705679556221616327221199220666135743475181702618229302230715978065405145625284410170307456116734455974712526641208524067527012754141958967372681098165845141823609798175275980483628229202616920095654143236868074158952644572641841738192043876885821031308643082677184711359257057424042230951734651710700337700277413917283295189390768174481512716944919252591402470048648936104559242090181115584566132543438018878634997143136682343431433667038231303966593435810549883658532819445205934182962620396712126491038701162486923050456962403055286827564936756969219903144281623242365038577365983839241161431348344242386789379759057913710091129205914011382475682986498807898122561678993777805476464079615859843972975602132312475721855997471386325830689381830027446459335908458061319676967664202047302166250985184870472498862007222653441118717279111253240972334796616860288278895662932168623444416857969358227240519552671285200277239909488952301182300497080897891675697166089637985358752038783157860897535298982648609343436660249000189901488429461874639534097814735259889642263930325959048863184143083294349797251556449723651149328212744920619140558156458902192028470780013643388641340654462125767155577428643365372199725788263388371323294928963756317044748423990214509035188074298332852709252516105474711786842703570980731663308475644971065457865264188245988525857907480405199836398239455924801708025218469273685363843732765163384061921940191819185650906712185436853727863841236181941147325766700657509633396691150259304208040036423430718912547564188272761531472184705644947152209647289626021707892993650444173963041871520690020198910219252388630723415648837225321479549460535821620879989380031625143435109993688152709252114742197513634145692589656727335308058343524686031690340104611840661903212033675456893740487238617293413346422438099580933706707072281572146614629782011535389532241363292222996067811139455295906723405762851816052041434579351187047518351985967121535843674522759560597117030993530438170926750076186636533567234319874886692113789341109594412755759260441099699532765172384127499425277408299840246323645110723829680615676180311354808373975392002295557553215772246656251681661217423499518454711506786608128306990406141371894213372251042578287091352057201518711249408628918027564543111009898876262198494832497279048471221491066279709927102099096158253371851226494869104036756771521766131800070415401176665278529706073623755963911927577201988790841569390351210283350683248945582487124400282841154292995692602109760013836469081249862164648167812296530931983794473696274063817101609631451942546116608417752229131977802515697373934992879751691715214414980608625511509158322440255233547434952512492037601485552604994434868249872471104396513582050839697460703657485151848630269294505783494337584071162953180012683732899196498715370404171881314651269835623020286953088090828971794641236088936915455503678362853828571763123658539225812330153888877941479941285985355219551879176295781551439075990104213826521872650505760391219104428328519609802234558021195899181321635224031277041772566475436162493079902278021988269367763069795583352907485146416063825584883773729220989321801155500394433491557955534428655642856879737132709071758575555159825468558166707381575906300117349568661660753148356579918788778906644106689086914616405277813371075436488229480189953003470528275528309152483008237988101690733735181549899649273184838009413992158146605396128177148876428823673800842557525670086421625203166226056316896982902466772102526309808777656709632129988499292506495294502615262097783392442688064860462328720858740115288672709842541479277058603688332347189715378600402911378395247624432411483097357933710362175248704020940570216729358973059031308877320052292281737594982971845286390108746372536497055729467966561722390309114556916393884309084590506678179390007540023335523285071033766043185364493802689802042730096696786077614940654405070668850970700568247425409435106767774542244319663055557430342444787942234995203068115786444518118193409871763208080433162028214567389354995317426229954117748315290552689421195554615226147835516661432878316081907572630333803599097952847937478796108831745095489140712188335025411949045579153478876971260899878274814138816117206290744790982167384800094552474768972963923829300962287344614360711692778795361231994580904428340781159074134703043158377506514465658693033285854257361566497818808246611609137810589555844124261412340457475072868352969969892640544321328451485407207181942633259670933600384537680504248684312110682851694038214567145337536369457348769787564416719542126048961094098612979179364104780100319724819212660426196977240140384865538024210476424349784771617916025113980662605905598914389851572677273332116872729076107780709286282845490642865272997855136309674838217509305024714841505140630291406962709666923468392563080043716200738604312755311245094283828583971065682354280116136602144164546045520035396173402920333993810558235540133682015587292071274794280991784307311969737367059624429238939064630692415295421082881859691096721129199709952472352485997745203233235644578818799676434017640180580944835043803112252877481218023032799184112606699128819087561583755987255278482540978073420168760134975345243108455123690643813476123888008211263831818637699098106656011336460122997487708983972386737757707626855174907409632242830977302570869232750211747612733405398099625775575132685536731032414873755646002123036560398493072546789371589404367690695068673481038629496141273732543538940058998136064276248795800754126644458198407469898007234953681383803931959121875224087934943682584207742264790250634538409995673622177947731984901864428984693316261371039739582066748292711657408862811318653725980012797776265349854241859362546438657857466186732870955451456292888649522638278105589789961968849613460151468006341261301500238316262513536831430028078333776580872671413984862834000211075278222709319727492732389564998788973152425313881422697553362931859421019195517418197324975997455712486181720858898313450602450664656127492605008273536507963534968571392384377534987442197339403079424655288998267184605777094115205706803915845588456713586152582141320065594401360209089458662645318733070761836516527931871961313647898216252100443853127673575500885912796168775621391747417616709522281321099913253602636137408294215070670864495684822349810987035806362051942809896945502710674548114130631283057501899757904103630559232449588089791272241413612957141473796755585558866542183709196451225963157404011700302636759825029918697667508239311442826668482706637631068684892339694238984152770736448816784513549309904007483230695670818356564047454738501383106910533822277345987136630561252255910009389426828632264894602502032869465640426272961079228072616770752029474150200629459417758556437227182356645740528784500939005444165845554714336043954973334258154799670649819154149461579212125109826185224021233327330159407371798853678647967602476847687620264616376202971539755646006961286466543489242413945228676732921234764207345882192354655590288052696157092770048856323250469302249644341970022581635522482557068992789790689181234893167086451397435242422839318311099034869925771235871085632047881592526292453220951998994103918878047603174953251077047946808743122041717764006946481205943877618610511235608184520823605714952072031711868433543084608044770668083096293477953599027561217835927986096149267612635662085332225281620419341971620802289145838338809561867677976778335114097556915841604818525174129761021070760960835288499024434672791248679969140078421157560925160795961938907475635744958402685682632357174922536893674784584644205203160977920714919132191938244330832002574923524306454302985210118226384946686157282879422713926197724744868308978954213060412755627981197094931912627157366610152124248001503923979062478355203029927687557544137281653347481701162574393979564542080351051059980383844145566080398429407404799704873656619364538588224135644636867178219617621982168055160337560263982946545880150830661531944244363647288283660552824626349023762384402298613511904494569428496808074701616950401651859309682028889136247484416259511426987062240747286480582270335992243848842594117168939580808100298100183329468413759447093399370665112914084489611732887123342098684118865818620488340832033453867717523741023325531380632085828864280690544655375143688717479088159520002506368148372619889523902648950500309165580826728204500251307962460956993640624537510973765455241574324659014591625187075039133883740006110642599399119270361272701815907055912670724143087480560694621604157028537313254103728632469065286821041766903328114344892346464817950190383855628705563303337399901983101059739373715036672957199415881902006425974374528091362870300770544159647405814937483565678911842883601701883822369710636349773556756102078160520258995172997220793967377351074562367577726408962104784345730518966642251991439396160199184857440558773605949087926137973111700079568249248894016897164797458161077237947599063715885655490301958220629274938988157260803190702358860757976600378553077037037394961812782254053701924677271745094943741637850465922359646119052743787108234176005303807666430155125927198780606922106311964122669700628616328047951687124275500097614826859994361887814397814880854959479176784520750562667633329864445871166794856146006077850371738990593753564542613181261172940589002122212471554108338321407835374952230655999790151116421567730079651321427301483728562230773941344051539132802225162515682135440605098061534739711146027334774730909529659489374484031496378398644747678364528346724123001256818810306583871151911254455086984737481259280188344735144868182615754605236836832389373334636472742191981490455838200753926544515769833892841977200070838440229033113605611026119508392579667582333645889643764301279205273651107232970584651290203669038175167174128725999787377221558569741107414342409152733645578275360871942191735702336562477335348081462881006745011717668026878133105492107407706884336742333978014177907863318688860527945125835283736297659036471435886398741664896822154711572831709723194748327440089556477024296808840805697379969406624199183492088415310685000795013624407174442162595174223571461955348507960338372099091700062746365816938391961021981369640975780219282731645432473447938758676284302231605365136059734606623307244125273907251124464509339901394698796892714980210237524170330388664893868461251388049187335902811724384174406281670622355357563025713251780009255784918451009205020620813480956786860067101230402606819228100238263994541398067827676408815092470313894986523792450813167578219316548818017340842022150286864164653902314250108015827053793390417288177824306704738407914878046361305836804875641691288986555648129111594981282981202702348258652491781951195977160918057203399246803824698840753141974658107823034379414296348914705812098907312847344178539926524563125488323668821271277062363135688293623772567690657230982832930200655520551970600307269167772155975099307069642113463210783138848575001169615934292257110077211604359842629574124918117999492519742419051667489614493185263642215685827891445327467585065434382485676825854668827617165239754711608707166937849309233393822561109157281248294274911159842929435240216272587334152734672721478900386341877124740858982901478052068507198386222897896363007762270457811153406535536480771821538631027491103887657467730019565018298808860418529021967022475635749300549257365306576007220908279068725800929628905786476746157158737443195103856688528373220099663452518885388338766893103897114632784722474942365423251879311132871358634400162071983985329899126683468661064873664427725073879413893707143028152286043488695545230003267960296524765250018247367896530084130856419997566961874344887711724199694522303911841898792909084606730092539327810322413010842371972435399714644319070383548051072028456931633036360998504878715496350186369129543643348589121334788058927448364013465754724176597377623426624480611109514343511589544408657522802635904958657667828162597465599644644195068939883882940105748961380970001664843369084321057551810336393343325203293705738807026398878068730951446119704828930046779029880249677906526192874716032562179568633879269863089556572694091519741263534795976817607131104489630355532961961679822530294643289015980407882561354579633502142315260773741886946236589211853649666841744315031230020857076282035125555538799938715984565859406909363191164147784490140244966877590577687651907093391026812504192197238206138807675894153673114648380600861585171013083949201071471685454704964217367203159802531713614621167729186728803803266187736861141270652700995424442873942305085292064709585425886947901867257345525697862255668086419740291496663888059721122581916253421344299010558616949259174995824118730009701019612734046325021663709441621345826133370907137852087518541682785175593959848502321190362337902930968535842397948279206383310224991818447444075542849158971892734243692012068760987546614115547217503106177104522923502369564078400377112946532558440557971125411151694332120303761891904367855930875714853988507968883069522173217147912327510875107889437554339082532776649253385438844190985478767143358298473105599146243915578274739955284362072115659884597112850738335910450169607877343234005902917702614014414951313903220059661859404299593911085565529318791288259300753921804935207349691447020030344496913719482582302113278284049064198719767667262088782905765334047456393549736862215348035354495274424791848076079457869391051934461904619173606473201812731256945526300024497022471910232860937976764453275006289791481771515054300471274618191382875868078381654185250564408236697334119604720390800443385170638709486037034243479356306224713004673172101159777732565617054425815075252073214600534676220530150238870405702244072505773531237519969845408025386308014957256485676054180278494569934868530165906899390643826570089342597957085174207072155337045466863850736374279421660758139578744221305371782434042677029496585484049866757335496332274457052230764934119593773747380746535867228150019963056034954242756854200975327460762459609033111499583254008242015391420229138898989382742272066054089940178566846041052385124052022054713308613209761453628858050540219008169802165546515321983306173461858648017053000589537321034796965610129611680473987203290728851417382943586892663374774613165970644823490678987793175028186199883070905903655783028938572229079288739649258226456481438994875276460489196949213635060129242391050296912303971042278892973626634780526490325807431109029778761731347084158074668947006957099137403217029813257468608241769623189770348088854413654526378285855428734528701118642802094370754993168261935872247823571007331065996814734208006980039398977114728037360768826888808655289357988957863558102366655747253047536772889552706109229760897561101373070216133624953787648742000831157846443274323243510641989333198038995781164595455214374482478372256532932694272606943647593235697652816631540922087247681074312340072344675032927009405523731059150878515675744064228922606579758613137080634347808576609046995058438550451040019660784148607331062784677152542443123268560275422468297958888879902001651267810940915236994524734183761693282085998623240344725545279677709058347837358618351733766781578046215066221600187760426776005675973486054018895528951791933383719455485071878471423142986556463268806844227349926118099594511257922384978770091599055721400178465905696895760929851337782751340986901489811666202648702440296776729316252521683734799928617241285607497740483429252641648481878549659558718195623701823779532346815554540129422073227814511085873278912662986034176910814579075144258320503267017354413562857693135367520941579654954208617995767917534167600358828524355422203960684098738621098055508612717607049666334837951188901110244459894656572716611207500857246912660699264428125454622674317307220089569591218922126981306432395727061491134037838809897013608282171589887331974635710298536635966962719706453697112527145637712254844871440600793320001700060887473774566587549813191400119873848960918514196552911302973336840823969340654470532967175527824923886380798757879173326090930589002512836688368790652812590860582984999402554409614184006366276863375669751066482095469451646871670643763642672412651286809625854791291584085422679250863517757128344830713808195785858398924147796724962706560188617105713162224327133998256568740030912019987431576724749260487312193174653164108608035948567616724574553540559916180597828458808577976532400445393371877671317019420735743226476206743852191382570509731155674414494881661538799995065393780373615289918829158865074903928059150996269018258908627157949800130357288948027961865072047149765368262894676702254521323571951707904698494738225688486885288098147463494496067501745727521443539707857112452140201304127521327269022213707076313933990868421907454003302540269530308848998042649060031734717532043441998414719151957128005351830641412573326415034834205784407076553628439561297086067037965182652035254320045237285691099465889644853713451222366989478851171258694062396956359217733287470579693214219548746615798738230365369311999485161721538585362966803307291626063905142582319147513452558910558589976074976169878427500471804263111458947286616195106931610585139456441706981563077254563210631898934761354707403873999365457496983536388198581621170041224130548459574961683538450416815047081495197866485589357302512651507978725501225091299306534755228330369068221063646136004931649282413547841015127573598162248528667437567896848241756229933864689700958535646963065169149419134489319942319359189751146355154085875367273639790142431707579584623757741531766477503894406736929584203430547691673134683714934415410266017185511858822939200899743506146447680984162698994902505156137978586216732382386130050642235153461046449548693564421366401455102106123885742693632890281747156952132167439565572255437540714543934908878116946807188998516391846847671743242489400933959701776829519005663109359368552490870583657902885507221410805577906910799026653608278499506361124203018345968037804036574652631247689169518220686863474962005970603716891898071231956121650117287109617682794736652993063703246537821631112173041537741522609385243432929568595775577734526455667611414900861125614294157553049209329361674318614886136194780201334257954355967160110369980446792128464498520520152422434670869131820883898738264973181810991137456282429681195847134735473377839286183051411053002177737652857230840216785241037787511315161353440126967395332381176777491232286907919794522034017503091568837374083261691606967843492960420377524088036851967472510013037276095518530375802525985053271124391982465923061944078851611969162048838190512361629407871385982131065694797439416939761254618865864487614626851650079191106195624937225821771803859017434632023782457784517070707385507362416536361821754250477055225031268120780514835083841816227649934633761578236571181871547570978091818071211623196324386192308886880362842422777503662934963678139448413954128955209598929327320915048246106944282387996027098498584047439696960003803715979304624748854976181477544028810839709410749427785616706848157605963450746294621635881000548784862110580623270709951065717853277133443873497018384133812052538192597726807979990187383857340647405166907354961417679589380754791936649033165222200586474240364136474224560741729701254610817416506349376149586991043453428759442228287580692077322139881467334809632568331778300816026586597030700042766891093716468528792950581638392829395180933184481071479359612308173455745074130685656856462604523794902287515016361997996538458154814960069354804740276746802570750694840575700440774187833644869028897720443778703068678858000445985314615925600206380862015469054409772177424758244489900944285423815085287258370302361913432044467470269626954356668512891991368636356049073067590588586678934539882605115927510039215408331973132417599676791092636507258404384647919256436145652040618605283362526400521227394754650766105948131821859053974172252972864916592222860264979006273809112502178097508251361478186597603061470150971043356572012507874717784621999613996811334017707965568291734590132896060080215035315771107290162198398647735434110319636859504781975376684889081810988819933780236859750091875242962054942266852781339910563315302968502722130102829263692743096152947232377474077356634282985087590484398784590739357303744437572084547284756434350135655920339452075260745878477578293195416995206806594634997844256686211333546858633775364035792104256437667177470545359094478325576777911570352877641804488838624543140374412463945119526448701197973453983104845935180524891053669184910776641745680414687702653638048806123890211189203496948359422749809164589123993080489920291590605811498786349989798352051826705131444759898713337547262804334148100151848934055550143742347955256434471840446620387502870384890804216844145900791141504570230511167603917457743038051573150741006468097488390370389496941489469370922808766544713793636108967358041503587904146181252465419351375231489645362010623756527558608354843685601000228251667941438129192389647564937243154560136409417948226127554228827297796019735553782104302710591228956467772077830288739478155555866732455602982295344174606834445851372685752401558084065941156442176795099523318781799342153684474435459276126954904730066950035601812248337348233145481268264094987634550454947077876052297598154852833236542302062279131261232068723685936540400275927450244900468292324355638468198936229238880713123652804025063683383030374337341730985042106555119423261984873744134381070554741041244846571385304500147823202043463883078469541032426399413933030252110682775946594620857052273620082116164861533556750863639032386284985016466686163117653598257353086393193327715379632001455194868002873971211780358855793584781496571275943979559887483282280202945127435899402356490426561349882303614627738271723389758575775471029138731569788094337659948441747372462148591720579844941723823116327336646635957105815037346211766402591463132163665337743908838905303580073901073825586451295884184940428325462482349869366194619028786305001464404159372932158788077738282616864728234144356503221207105566892210542671733237447249191123643690483268529977871168388731464453796885175847422410451431034323363723383416704947214377388021283447243716394758273598052822568243112272310807492670221635507057523929705217866223887187861287368771170344684228050297590963106306156233718024850045183836746657925257120069014882998383979928999495081559996157630269459840995656868194522500433048183386152041820233486092735938643828992340224703759071412223386099619215096028073697610171032449406568042554118362572137212663896911700872519083491255601662548580146684197966778019511968310127625984003101793116317703837659133960524024278687225111398530675197835132786163106257360156303924306671402264471219115425964852913829711715039585096044263037333668210721157275807929446959953659238290423452879557507057232984256669834024980754364107402874982573992794236916828476122703647341234434390078754873384249407899596138407074585262645964553693321846644981039917626106562854469038028982658464945292679326950661571064400141499699464336271635101056081649643856242520316016838486778192604906328667668830609734217076774240502931639449209109685523798129193494998919926890994241722027334749377831123178796024311459851335054069069168817821848653842063950142369329073583964909164533886645897889509874501254848263251826734752566472221727218784528733298264473410273253587457783183312626282006455027041787750319647502016177187499765866484264769573236705732475442141988388279157570458612866038096084170640315057131258043457801661762938844782418173713642929562443767331910081084226121906892958651041674958825897327752083882315641181921738496179652193028742365957557160922621032855772945080619205262588570801628818272331895042260607216146551255905934721720266534884424996783668857443076778317047703629601213626162449276310544645420206299173776910266300665108162148359235312462174851406931345245274514737153810829298202021628198973884216912411260236369478298961366700523226174240817611589638445728323702200153317342833612387961914391889268056037212773394248002905486819335552975639076530253631983034923820851522234266864188480156788913383819715399158565581138299700354372450419009243369311449313660207445970398079606313507653022004786283199831816225189767009001087739915503138712919837927562709856574715518354135606975347414992849648604550796117736094910882789563219443090113404501992348249289394541065221827578143614976994466392656906332880552989597477682712718106235972295183850244302520541939763760823168081526543670106260547070066392569527690177878637597144489919090753192690779770914550523404965693634059771371820860737536425862453907138578209338758820711887263300102409031649366322561463044734765820383606006570392792359889268106599044489413876011127396406950414949594526204899541906709861746115461012799162056862243479694353871182711142842326409669735713853083127917392075551138166536475482503927473126795505721391831013949563760645827404485803098920178881273123867375470878927997224795698013033168932437631367575737018961676536775076338465812392770756027103254065636041842233659138147465450941642892609666225129551304791437328099968720266365135704577367485759967225587136313094571021855385442741218779258631413613200979626835048103772891258295340046371525882994332918404702273855590567579111345866105735431846938831154921947733890689698357620892290408001207789412044057835305767141315205505475508673889776347455903266740639130107393446577765563089781525114803644458875295483211176765825215213755067687440038405203232046771995536519973667682459748839031357555574008984977522428274867079511264829301538276104090484806692824237595026691037569845191339746629874316445584158747431428294296629897081417290014239896475139406382567185843415309835924313666263401590212222863449671572535944450547406263422093754840329328690492423788692001618133054621323205795283662366307315251575283373021362439475548183008688653067434092164724522677753686102786848642125022438417285561885937640220302728227503215325233138915243264228483551793868296959605023761870393279628893228524632481016863542665408235703500291743000487789418871731812701600142112188098286049384049934878960367826442149618403052469460443298040124034512047179701809775993151990301530383347101815640385650539569431271641666856544852516454761318528323296956720069533735221084844430760674159989965530009484518304429298249457623732142842547828552546034256378239306642971411740469113813962888256762768989234604093741583255923711823898437003113826294038188254841683736282122575155825601321240594533008227672051309236644614789116254585373345924141574338911615893980566783539162070592423835773868029913310406297639198214669424474104850427589532379189341977230074024382734570298723670413626507578753477701053299078256729438727752102352107829561553435951156564702827614521706660834755715323647741642108587502793083754306000142496844375945459479254094998846723427911456332628831189896021528109532518127206487130628347362129862136224067612964283723042940315856334693835086489030630929993621587071356932816744846431109193546712108885994251640703973667613114037631042530324074083401657348237229757456454863229912353446445746928728625080213935962596617044819688005566877262271500559099327443693103910417044897339551659473921189012152198401885933556781882316483122083958252259352672227022229180986440681556369917527031036384971022268070025774804198819034086633368911833572039786702215160237204150867726055867482491651847712326158008159278807388202088812382178765847071844010117636456357744341919270995925747813719641278249722844579431681894334838684675891676715337872961333776829684890223911154902585693572623813804337330561776826420809709646027331736031665435800155914713809351631440328996727981739911419795147778826555384019347300724744367211214274706289243234653650881325965600599015114162496575641265605841069556254849567476593784305679295844805350017710402608998507897185693491663410307152975084657527728561273294787291413971358927291747204970133357509057869779892253350121944565400526189245608912188515721130143231944559139339368872016923044509123055159354913146390152514613986930800719618298223380281540134835544295299399951801254480803083525357608889412020263269829218662896850950610729051467477168102285232472497653208200164947051014913360464077149542832477366613102656658784013791668393780953924396322480503545746570434969641487697473606667402761747529830109298140186035014975715157491403114879064614810478456051077095386112679221385396003653412521182940700857630134711778793803535197887015636176264465976194648570451111482522552673060842470033168007428474796427517844458913307751742076787165912123468737829193776151645896341222097005133919002151789192792137882930068531411324318037786460204374320047311660588211237854225314991441837334135012179480296736418105554918667266868336713487992254180704699642179153539730765125749044222597388453720399030851046508191119686086460408385651698768134020445019667727971398265866298970281572318588495854099210616472342417646450441976360787868984056960313022030292974177412474018706460214790141630988888753304349544033568624299930915955371714107296332764230751687566896781630159554306817920580544139362577842953362624053620159238751199550540292090928142267992145631284125396791870360827546610363333940942073860067302522935561422009316061728174097449499770373559295279830779127734328893636206434951796039135134142378387524280441712620090661852955273812718506957783489169024844835184590278155282159800596301155148486086656035092243321863195047293141111279041699828772768158726012497982130842740656596876892112646120827072164220664939162162098333159744108119079637460502407961520373416820451844434304332728130830052158443154420507779698733369003488779856459816270155279532795193687123003279045801689324841745546771372928276372586192990456166617206914075203720931818758087805286101719531485047047445864735845392363100755290591246277782856924834123786047489665331885773028267392574131524308759610214046294902651186182927554337916070549384386238245941280882239301341734752678353743786651166340125227514989582226531315033655293668489231420409341296046566987926820516148481636997744799774211390964944532989147961581633013969815575310819655423244070690098704007576385299119623061455247290674019443668650494489446652801955268337839325890599201047927345459122128168846948936620911140843543087811115720804305097976428983452056199464260224430560944071920821696817782965792663495929994112007338619108462048180195329872395347768342142119221551427098997164397339061657506589701225364904257562390264800195593213818250887710569278166398062949680808948116853944091659311254965336147758247974256785390170431363726372063817805231535568968444485529320001441308002342335095783890886165247401248986435815323374452139503239707833539803367052188876892584882722835447874717770117318964288581874657622709713485802914308704623404037329868451541359792002850451818777008737100973142800323687149242797267422768264325890224290260791335893572207311064964284934907992346435595914511351578226552232001928055347446216278970358664244960465334734243683714747893821872859222533918145107878129469843396380278462401174698948737073326421592973579706910060115845439256991685363855606482015988872738144737900715504777606906985094086606712917542589066841439656530676505554850919515702237159970394584288933572923806449618251582691866027255214489826231166743248925768745288703135570049791300772575076877365963929896731350939309043726963226375977646280224511839346814710658515113526146161663632628210897956687937651163275649283792167356269100896173858833434733006413176694189453058347848209788272948097631827135191297692185183758356316023731166719984407083175274788207383910596146175102513247457923467699901120923995005424957411588617293434064463370224101732059739210015556474601401479368584611274838855909056114435986028053117729192455874175620075246885027439882730043178621896419498216966602456572774113367372459109791814767263432165192016220379559423912849145842209906684404184541478976050687162795426964801701263938358112698499699248749029389452339554989634605567456095031691696949191757179332982753701611389848867616716182810364286410189962367656312429328928204728436873601904566776103749039367436459828449320471377547368207572738938557112321468802386603137692020464038299138216150446978145225144337982471458827695420559227560862509484828281267492256439354614642006883502444285538588725595618344288180848280429745073609241074429362542532764752487546850001877371008819462259859231009569295777888785566897061327438500357952697804918245945230978403707575299638617356892974813899838273865328977482791443122932846977554194782836543539927152616938965931099259834014445910554188060940307641332950207987889390335380418134765960791975140378163872905710272564526880524423768633884348431573735491044353698198955577801128657615199182704777111649121657176058744949863139785966821419364670575107565116838612328127786004203458006505680980243302039024107731329548474468128904823831532532188734687605739340735241049156876346620319417496624987888839160568319673028612870482623339548479416802256695955416095545739076172581626971104283526894845212449911937010449402666618454118761333518290518847350295256939645413272634230668115397257597568202093911421210724324423708373993182372502821888400239501287572246773450944248589535167827294115760736998546063809737192064892396710092581164114834798251952684449383690469530433164218269550990883358747779970328828249751384068689995186915676176646524436066062473876284157512710211050039685340484250668967953496839586539006555971588598341625669748523169367014361703079124506880651503615515856117724137515750260892742373533041251449062047837824644095009041154162817666851553206617251777282252007058162988335176910234241115199222027116872076750321993181709821421215196403010424711778311946636644385923657027693315892938719521323510892583657188206876486185930991811232025582170674297529798076984543723500322938810194257692570505006049924800781640009926584526195479870535908038484648009042781497062355402856955486746915008644566966746979262458707884452597454642691670414378942954349816672626525252996750241985246185642609733087908112522674216159880303043712240553846416058245908821562499420076073929880832723193626020689326819281936337642663317040906040564410998038459463859358224733479930447805334735584577122840374413967344463335448514792989343015670441157691287465422405288027021142150163478153081277689516629286981306270902276308583505764029521750915727548982259812953874572989876611833123202505723910524875434728291937152452246794255257326926010165248997595955016615705746527798424983556270691981280414407798681897915153953396138478992688927805698874111432745563290805207949136635415730164521611248873728977954178071843333496373787987615279300772742762049956307955035995259910689604171812904060301754304758121497237039362127717600579963633805053785811235665580847485793880355882948120890163640089894437625690003747988662764937323073425812599555715817228804590447483766965365636904753722131542139842974300155982641896928558599212327492368584854716756567966137581063050298035323498167333263635899101829211538179346322965707115405567898691194490763035025609424092145594284314963894111048518908656645374723839141677231737944780722471279602369024879585232686252718814104947530445708358678915985305610261301813645425106796376947149684725430430121190548929655471880884766048558801088915449943885374918263527140498295733217295021735422000362439135880590756731758804644831040514321347734587237900574334228810282246292859700700027191718284227740498365819097827333028454157655241153626054266761706362106991990253635085239166344533511946141200598418671894560102165653202287981753995579403138558810968349060557236851547983962050379927437616064737082675640617164074501501140553962779028720583673750491486465100059936381459403858423074663010282264832842039109516997906450074112750341190206508226742507306722802473338930676840011120926160814893387842215901896902701565538642737057193688111284949585743489240831628718448153586886744945574491619404548795545634165075742418240679674051426532788609185005817290963224935339005333985455287433565749216844068037334160445237047673068847401036303327005341096255472705910667477527224502158656608731472188220274432965314430542101738774314518927120428266891928234291003761641349854959980293218341203750466340293381612930143491640017858170982119960472458125299896677743673611841680857628426955645298847241073597934049591955531381346348103340276679704684221091463345568645386840770439106456244599269419651641249316035898620018042712527955904650806367003971589480931413372374131635785526310122877963055777894879881786417052177254954741401844158617942717118665252470650712876385936914918073543663540684446401613193905977257520155916983300656154687300930687256533560657721225378747975508396339433236383768416364529176115192611042300645375037574899607347653827293413315393417873727891635581136442559307983344769142878341128354851485165171537984134862653782318288222044012452146086385415422969169763268770151661230240283531965969428008390775734492760113811935349830136623150125258981956122552705776653965501747973566447896221850183636162388529465436045998871295901218377440333942719640780640162414662473894040651164779000922110860030227833959256010973767070413920943878729545056596492174974069499377586705658175380475885523475315874660453264110245202235866504482059618986451199460393574308336648046136803488826131566324076091449750772039253317075553659951428399274011578859148209832536338888623568837534427643239356869474619710612733738667162883245071197078681285559363091869067117793282781197789318672875421141563667540158722262576479008467702254598129959397937394788014670658264036026102459437137500142573506099807111645739389945949585636966899437771555078012310928199738659296584308701103054939074429578446864796711317856763468419566358982090181222628599140798040676527804737663382659053436536167171826563382078392473895666975299197801628222732166409010846201089559999542071173868101846558037826161227772417860159779072099548358116742377071181582013756367773029571725691851656755584470512267053691157986727378768161000842101504058195392013067575667445640271734941999583928524838845124262729545151011713244411907125164369490055727375722693280186946987200301788626165676214137564136915689372178909376503328686352705457931111463767555464059546088049730189748794137067290794201878336007055278644881466358375399069731322921196822776354720304330019951838735142777449510948577654762173994529936577043250235221165430129701945353641347360945100956986314976929126275201112103440752991357467134710748332631510750608373259274595026647410381837353034019197689442248316891116173339176730905095524854316329511937883732079893122444306419453176497245106721994866934297419117451294524240926146761418390576941676681231233449979033980459045164976826377573969500590158399203776410234233828912241854637239528399585141961140438333655444016409173515131290186291671330035280966394138773131049581369264557382276341679638447259213638248924077700878882897779079385693609756737720533490611545637833290115982896328057500230642994684365333104669790841122464715589979643553479034121344778644759848839279974940176503334096123590120989995296115125793277143019474682710575896164007830426492870987559143193292611890766412204671103885899791761181746759695580929315741853891752154158668212828815488186122665106671128888369340893709164166426785914725154335871310707129201627997796772355465938295731852740394722119344182222306477533245190275495954657254167343390810698509220032066629640439853693251617730551926581200348382307798131270601978893169000753585097709705752749244433642417658824965135110660649117951412398825028170192374421957068971609178192921262346157387020051828382452092414775782493046028936614352758899970943898613451475389045354923210750473106748310536893749407867700447820413808093593533930241591401969912369906560076761756724758555083549999551434906297962891883002824016076618071058939185687661067653598820984175130684631361574596234715609731116025506469177079211733854628149420285752570003847120687217540934464973497492854350393575295873874427673324033988977769392218836572085959122255465158601316867724205474374763867613713324031291646330358744350271560991010672980791519674488554852309047228316384065291238741315930402618457255437678391453492266885578035888196483321314221048295193579622272235740828936778745353721338153057590017114852128091252874644526540777003507753015773575522832032421628497942278380028617447232011125747451687419592053420184105811257862852930715859346804032914393888901123422278976205716714328179500999525373463339921458373876264067059481495340434966823063636283114797509783194959961956668459351120568590247484568525490671813149719976672760022137210338857582486806257014987615221666067404622764490482854572090873282762731199286981647414115586782969641507614612488112922474141184472821278094297921947945411777803547352576101482428128268610266719839661851343723422397043039884358214753555881367938017117703778134874232680648752357827141730226383432715537811202659642191726933757138119195768166038713645223406103038731152713088819245196357350727124516015157505674545265574576346294806009034304831264554556021005036160306848639571019153624906678281747899532421436130164538550962524468482277074773861006844217864709368996939264425339414356601337989068070728966024682456073399735307489705153102998812114361316710902351196792515168762334282709124548155622158661194104295760806903023478415661257940638805931467571277803347845415787181856028625512380840709220088970404053234004604682390889014068566257319579689528802206906140178316926588771894413299486706477482285770638249873129336085282510440590454741398041308670342257833915170508222511380020184309632303174747349697157120947019954671942553115918964686491448570954385252485248064379647229996934414261401079087351106010436693157192509377510196632202845454346624207593769949819586094285705057479349259140958979966689648615483246116220558487847522909105232374354011015263721662636511311284727833076194006549888079666306320617095615567666039700983331108052143111371346571530591936153529367329873780889078259831338102175570949605037575168080402359872623497904751361352706879236958309182743477009870331505743296761698806360681723110238680781178096770665229226345168840982158204023799007604008699985254267371893199812167506425955522135337546821001524016002535922798480156121934212622727178014216363236277633364182385757301090853872339395224045259571960954126156570899398813009997499075723725402829261308827738250925381887954704766245383074523629254369577982657241923604661747506051449327265476162935046813361922507833103242378947498293452616677000404711611560635626451600974228557876084516751276585368523635134072140215079061757420541406875378322142922813641816884677744445914347760353025955424099117001242482904168327384098894746856029054707466093562694986214648600777710743063677434635743371225157983193355316276748927103367663478246961028348328125747011836965742308741019462491945315205361430046788207878183768530598253371443483865051745848599889697356725750023608543844028401928992833529074357106884991408721470110255380602775161382155114385906520846942728340261329156783609034459849041814713349183473988508917748381789879796907106060876335289046669774951973913262346363404073089114629280101194255265967174818978898271786642046890801917416716855537682659537503126272091217851927133176517262092649538312048612792788982479387206236188753953114000904252748293672748650602511925240664458341864709419708884870385324786777526120798363530241084341482422664300397307665506934030067276905954735390304886253729305645939809508273779639538427596666505760748733167536145568438796942741481649671755312358655084712337687205994967069869497268560567049359199217125775337831329733964327591999617770428219405924343057301469191205059433811412082207896921546075229716120539539066190915857554392040167412535946220882501615225972152047993019757220284280317353330195657498144940520493852217926769992244820942839862739104649469457848086951341545752098120734769810273236372800585863706941030867589958289894263416545826487227434333431566292245853179228756214003198514169715072195892237264443364166481478249362280686341132077279525596545526911182692124850060080490502607773790130570418474047392384748755862565461358762553873159922048698548145230202102333398891745111014059895363136012585744464274823188573037695376669893864436389453611752328938575116288438108833236365064137130224824044563796259736719813507371652352438715439363310040594175255891939067724196166579338842095149390982895717597392331907925783896800541683953658897054251116690364552940613878291235067401596174050684488379535239333363323170717132418346793078828340025950202193415833021907017273707408977198261838428795999006849126350004869619874755251629112656899037696749546845523688933598597605155903540970393657872236335811486849342894756091857278414097589921488854376007858240375404475871492444360015374311348014315806391538486731872277614152925352009271058367444611923605857276215937818368539278125029493127555845493561594841553848423689959586075723237183314004942885003893478521501621691216605860526686956876130896338308296111028838874869419621793958426184256846946888079914130197884751113772891010357441518371117175468108847702468896588039053857188107330620802931475408289156301803825783378092410076422408703486667135856805436570969993395657683346655498402860428595365692723672869661249271994387319828015221039222302750801478479381475502801649870596327810594524402804284162406799309815848259442979366986798663465732535492668378281080332680250375008137795436877358599973055238550441441372212173188640087889241777121267469647711379476099826715905625647396697848397898743001504587046848529295320570049001067723860869977209726060071445606053972630319670296192761614059196950767522405167772772006135533541874658644339945773445048934632837179636032856077172231392452426039834307283521286950661534287259925149528941738392513011499466955485449730126674124042246088427951493331754107496398539193950518507760235039160911466755032244903663096030269351729736166577971194406915566728275728588812876323158367213900946759276172084747659211643410228703137478872534781004890099767839499956418717605180203918208104322599561620327855706181726855899166783398156445049957264278640113972707280293390034198957444085243377961276583752644897217848644147626274851696008351463106966401159832286667108157375805311786967018597573038490604195635667998137032973252252090086349878347737019033397284180128279307348162307448041410435854399391068984747063908472234800658616379803217917406107891180905792951961394478892207569426180980947419384882399919568445259177696582057515561522886214172318797304209190726742798061955311162947626006938996201365217579400772666249804782521847957521209741935530924582442406616744041716270127646722236974282945564744484337609356082980181859537496965289067846161168381111260168922607967580193014907991025578325441346747635128499465176199977827840515529112791754120342665068876220083098851790435701608734213570496271897694927709746562210629680456490494616085601855421977699697884579420104446032574315078972731282774001111562185796261484631239776604035915157607757754879103150231951613002729795983313085506814720728918675992608196299703999475176933263445276941330405637008613888969850579815172401285480317442210736328921467058052918319658059391230058505807904550202825565061023957221784986302852759349871269392887172784598618653707374503504798469175287458747950337603667327421420193685892046338757098415420395332183045181921051861663287712728931600455237311148807920716773648465949760641620938128161234341075641966113940925875479386626355997816802107248166786168762030636461270473911113219313457131711101236506419208694074153960100228623886260582536136190141661086854104211569100086642796523981369070496972043506677398208048052138598598159663536048199644009141500465189423179176697584578873328985379213055628902979973325852822823441024786771446319520053470785450928826985922934329035630136867620654341224003916575459540730111297332810610869705554357109975621069401979377638369270841127707875626328112182123178697196278091895888734303549731527801805279116549586224314876102377125831318887613828851765912680334407629986412724019995539707575349377662782687268934310567090728110188951003735782569879916737445334701160386135850538966197828741497568885085045735070230600538545176120926931745061578505990913650943165151925657096666596284903984931636850532773026463542999473440308155907789579694392224932306822793625715386271188160678856222295889638815470304192796497432362897307549136534694651866896954865970098630066458685651363140213026901614193508047555012679468059894561484112663397420294718689727406198732414752000936793375659805929142224890893446726363161631039363470295010639731228191094583429313379134284055236665474623909705446604677556326573508590810669737961978727531239614633598911806989586406882781456865266444174288957715555966212452521985531272866846833059871668797605284898495355087115889153094919439209243880976999134841462730904277526829885576126806912137836163836651283982228657374020116010331318175517158168807183299832316693430254491135464947353388612268315685683831569273920368045803835932232340084611034525278551582644689335208310109757907296062968201750526576746001943298550218539256308788454064024230392443387813805128962862218484829967368290593763769158474949793826383707908129844285309000802499578980061518247745684108490208559807741120187295651609114162841768649102595198307476839435939555727790166754708935733445177698536103706250106023825500782281451455777905492528422314897784430071771735606767065829031822718787361184113752908456544708347338402529831357384567181957027157441056791908230152941413056752359834163696886928342497675597656476055265683443186040959091206240984898459453344308787991903883063983835556388749843942789685424000009500920827617241213127046078212625056484306625258729928588090713829511534099931875223816245379141707388935310056143566416462236084288393900493509160401923788091848693431688736580523165466585572667472609466862526949461929337540062311636340064886855482167140246252706048931580275338255901159388984589939772560408624858762892821422867286186011771559580522697476050018484472832475324203379569501833155332906257987953088488662343366361790947640639776065882834255332993583670788768953731312798147024662748896425041896880589383377510438252001345648603289903051851167932845739150421295796014336610785328826180547006635580483943301598281890427803998712195544390734454552450409333290335636279253366048690067519767781387796106240144720185661207221064979116796060566485779605955642795189813240942600429121956952989906768982609763798501400739299411948939164174421700167713692266465534425596110473455645813663302053647102891776869534835617348180828671003603518704161992430500120988727072904906656377641344789114461938241304561056875212049293952078662547903259860294517520779487223793252977512647977572596211507987215382393229303368383131937177663003703135940420444674590781744140951450914967835262931293773138921323119821529566254607246003559972985965880312075517956591532919260565767664222872798621256512624923038057162448154219860026870036237002695483420552480684717062395609041109435492131864058654957297787016140848420153892247947372205119038274648730094499524938496329168727461161007567330799337723134824790691078149008033089900825688417572092854962064990510054982833861194347499827195118727961074099731388395895778644889326447366737009864451521993030947200906053361816021233656252934114253725722479166571798719864234207693157726319900914708476467099422198149840680436609810000697545509980671409188707908637325377665502740083035229367636854694788134919002210480087759509951255869069088267963277088359045059293837178326259190813002722826594783869230567231861396075817617904945083084744021445036413838252749242551432999499654375834426937494201505083398527113489755286089383333933929809408784173603260949502429128221948213446561688411083145868441110216339690279180108195676231816050036341512140167717254070268230303019127078841035651985761476272638724225221705612565266198129137600132875736587513716692338039761652790884073383726949960934423580426504119052458452891112845676098001117157427432954957645253112619329512291471044956168060759055943133660100734268743308142930871037899946267151213542603310291912530557897722648952643169226889254227790641269310873189842487361413189430161313557777707928138837558709978542267150657593872484962565969701414714988646571405963595766904446355576665580015045357403453091681816652170340221226841277092069918093280522508779694025321233770110151522247281806557633090371516253210013217032763061275627818338788488142422420375843766615905661247013965711346666213723171981687096170245933365896423958034338228792458144567287712822923993281663709704432192817659510755310760551795074445298153048411616511004517886040699382083743355118440765021576906389846998921675063103946306787861377425557188198933344114213283360241280825724324249264732751431395944689174383629850130224971546436331059486281452373658658274432635370835874063880483931528439740141674658121563787952032745649275829032366753760910279156154935753793200081721943541042491004196200244128597432753186984290365819784957751418823639608212135886159664582256084685665975646361189996272181689440098547330449414071035125359800827666923643912681839953188367855518673788182957353751933519188448115018057869121966986539544400570344338111722788711459952720057629153485698633924945924984284507603923543018704590027579016067619191634273174800917002675195541222345091798657288497177130042455692159420751513289547105858763729674802480560272479363702347386733107768314367247216161506547197021323399412352233351428335563666245704222212769166002082336650952976978726277429646040110459324556161966104843850230657285032569488310348616685936811425737267741024536256064163214929331727692812666086277288796754357203070214647162645695401974049648196706459349129039308345256461757967022724063366416517493299825497191705891053693992782775804990903669674254607555426223282785676419688567870719511065302712274113489055903433810860592252434516663144383339210377707629257114489458932310168691800992625408490766359104482715903107743512044022040480354271556079361649058618511554444667126199851994467583413511506044100470839102297294557410686530108780888647037307168486355645867844374631055795614715093740941347078732947550594418390048036959547812594917510531878883856530255073909903034803535532683542478169853546995213863653108656490021207439971514334080221373312224888933071237282834477915721271251656989233336267492522165751001047653169561999975304156249138417850954107848931314370120829660123043265409289532649785324558709533769180856025196655744446290697804793252981402847470863278989642405436731110244520632391250659851916005378637529775309662445752966385041956177743438812941742167460670129768672689363270492682213702729192534997653817106844878510671030160443784159525714361971161976691121327703095407534547916831765234982611931385111173507620414287637710113736933545929960946515486314295733802100539752586690731848704558916932704680399275936110942389255617446972671125820408549058162630945216372303230017715554548953149157934459833680678536954115530239606252673173711744518095187014729709006674519996090661341581929055567593230011065953015864810579227416687332161437959700303628346550926706389144288148574808221462591065227385859294909440013545427535430780058071787241128498025662292524732879572519951491563266475137791401813574463220381444488050319706366168512339213231241362080792419587662086698726605739441885475557855916407156326676399450559761815971278529014858012885828588643319370383583677075680594240263483303736695430286671396884020500502576431509749073288489872738463687912566590049282050110875736440280004068909178772034419756509313387336951865880618094347854005107937974571576518704585459584822926529058732541181304345125083193174498905524583648428998339584270526892185892790982622470502162973342973888748955923733879168647443851543628302140961434249297886837560269804924442639313090049456581443970700773819091576681454989793662362063726886342440090759700046617204875206169617950065614292856420763358963303622965875791417650150436190245092853013650816332573888282433821522163947420905550820715298350290487381639796997115174184020680339895329131190090559075091181092607767140974509216226458522845749574266753662746184281257938997273102609183027479623272636010122789174782971765304938697508397871737875975910509937637925274215226977787789596442481117538647694030135380828997100087200401400193743380779682930501911678590370658956317336416956121745720357826719075774049127814025414689728201554911217650645322261173721031637507458624001486117953090747310507624336673531248167455886577670310100147728479981467536629400040585886028309409982389977662947294561092432567586763922875173326278327755209879052697718098515209606508387364876956629578404574914147204447014484250520486490076522483639062805216614778189787828632334608409708796249506387563859800724769655199118255874714138117099444846935075415268868266096346442680913560198252287045519827933173616046223784030167766288376019522801890049331007283661531063628983058331760556477618786760600402831703898235317465777887079265187427907378878267140506891403333020002757869033777427339490478787250862213949882799887768581153375606171791828680650827033452241548925148102050351539223292046718940677073157577564911015792761320433588657156948627006671330414073221972693609032714270480619807440047797159452329105606423023986897489816757473495110603653290913848071551855163533858036043440290201037734784207134899747339368223950304408898645849758839805317997991121305361544583488063379635759458182745591296556590717861050266825228345968252745095910540765075294483683038570171950996901606386887457656357247867198502527554142079231168570606732103130637800386227564126965031309396618221479427391741018365545100112645528888993342379377867486410146600085280017069206581208672246757889692988781709098084256509205175878990019288890126482548745350043679861445853702876652808655679387375670511114378274348940440496079278656718338501049741841093241722802195417524847099474353781512423510403366667978151064716826950593602037548639741065622504940785652769551152610790100729451008947265297019477451763705326958731660553267979217230058443338057389097404514054614693094315016398711443221017766270045111799602246072509806423481016660908768289240818197404276002130594521733941472746321865483138767894236844626745371137075306623315780645123753525094094002761939033166564009093814573802780732829020169074105999921488237506222579723121247011534303873220513748782578847886569682849086422912137024833186591914595924095705364050042151255922244199937342464725387134917473049705086702403572678739518283856833830385232501082713254621661675569890078063681561809691447307071277121228975249555215045113081929646140736674054945211884856455956804726727500980451195792253577723735700981823970350639475937847456390584067367404371847635711584167938506100739824981275961324899868980044376542010681867541445279626973345675645749323684682820945519523981483787923618789478037041751734630677168180978128683824412619679633418549632711139984640568887343910771496379934878941524716705563417548456126897909090421026502752539593688262331457537954333791281495178682550497434984674549692785695426963402272047418477242442549294717957913727680746227775544611364365969225837124650546669449841480314697042524417942109657598657240464322891143069037088547410267735784044612478436287138781811854936404458462055834741837294656417791111869652705926347711750843770699076571481648124772558888839860515980710280752246106533871032816382616536826620197382060596423548245934611671256586854075709961735380119085102022944302743429158575270824354438007942744482025408191583713197008718435918403647694251175180728338892424620351756532360134544459903220071576665558023739518573894426037541536291284162452833180878750377753596051998317881021191408301760564170222143772625932806046400331335728780628634572990147757413186250294073806190553789644645779131262445364726206007378629197418618825087122380221621012646050142150354514667675600868134547194544512023465454335456032023410966541441469297117365688923562845807535960236126416628668415166056292088122974800998970244588380829914319957517690289063203573962890132282535477932404096977954698596930352504665014846404826001772601102589489923486517174516936475589425648088037943557216170285248074688143186314406557553278532532801752093708244922290362424269681856958459813832527275655206222329983034891312946447914842097253559948246481361401516824662289008706497234262838716212134189343985180858898117583287553110062099640086783255250816164235434912720956698969594454022041566823039729065305366082821942686824931357591650232862302752148471139375240654856389711324862227233254581626651417098036975410779650236371244584554972194188614709745485422916972129809712611729287072513831970693239065430655238089054740403025503255472746295003106117304042582177283569581739648726517932070604096847848153515204508195180555650412094936290081647606488775088861774542847255781348669364341984363828117193662086244099438048092780250590659654501042273695635820430617394466406908901349944217622652621450231448814288216993661801886927234801073670482031063440504619264086913520282451323888373938502101926680056965944575592601192485203959457157445960246366462572836584594962046111170420397799905390395607259825801952305615124896379111749217095841941178941462813101049776142894310472080356707091568911921531164741136622998506200278451653704108842751036589012233144975155362667375632709308766668725146035272016088327147925114133265635990433324382435981589666250422985853634159631316252998796731043710195638365401023649973338626530535634368974204814899276583616947037166419265242036439252107259249387937123334902432142821529574274047535611168203670862995953487662808346634246318259954888669514559190023433084656447015776836645764039333897944992987930481137652550929594688432876609771667628536296206228184423097041081150688155403054205919702027527731750973641389242564099584300605110107448096982708310262692657123915213998326285363011155073523690359452324317502152268079344365742697991508856838666114589144038195307356672707429764028720985471754385252006236711274078400949031577028748440208784385710092809252251969566666862631960165766979858165336059516770184539517820322437251328190013844554037953757519369668017213571402349506544826380462248752080851975846019779133088705862111960468527928406213490293318966473618599612481295180721156229914012086631818094542941147465243750180781938619303114162898861471054655272108129211561774121501663180763223448063728481037639695689637469193752549507048146781179362770321037451933428823482015057843392500103038693043074492517998277428760831747034982679899261159328727312687469112506657115728246221344159583446148858907704400695745825955030926147541573787003422655463152297068648889682813796936270310561425902048901291002045446145232261443626346898304275221994807670622665131278228216821360980934228509412714008823744253012743798111722423863550265597577258435392662163662935916093698398691902793098490814812682059558329940785104879743787381377316700287166090469740289863985698023178913151204781689272170030812689031376039154288018361930597769022113534010928564112896631401590685125612171248185807289201741039657292543352070424576419038165335314603405491252038984334277904162831038806001726141926863080459024885104027402599105543958849781556153935030253178840052676395003170763119212558260480687212129796747784948643746786434042306008228910700012304183155824563278942243196818923755008224921261215883213622521765327980929388472228541203721005798971601010865868369265037677983358002668178532890630688720876628725218016458110711953923549512904311496325562193692162724158755166125476343404540729837389124800409496370057732142195084692787487991949633940675543347229761460731026011838951615847545978969113412477951172009072450936344551294784431850305045665126670158757343673356328906007942005338252656036950350500539220432476554184777855978640130953966089477535913245377789925007985034868132469540393389186229333550225444431122698212863468905365959610515110678587680729421882811844807625834203290140304921252039785646245608915598795669736462905718336412801935696966980131228150890886086207779043639256958202116744063028929699755393697484577605999302668184853316362065356557833504361640366298523670548409252764758629582931247296642676258735240704696268318798165461550271143549783096869312597579810901112382061391315891295194782943172368247747540197862347300883322369527355833787506339561143793877120182443479777175715492548148811362152969871850594762451799414986664207904917187185088663398751334723529394797199228627347664510715359503572386686944090847678324221809669700116387926687724354991305316217693696537522549358256533376803692956646829726001560025997416555380630983822490209788964604498621221737297783046161261429697810436173399952654129336379607733209427193469221943485777670925087987836132004233032496549841444170372957579664686016217782298769805300968272830203653091951289374134885095400409276492733298059166370181682240765945123531146333009364423307912825735443690533172126071711788287070183504742561515390028164543455955040398708025091058203695310324382993081144833405994264499879345741569889786945182603327031946544850599952470108316125022266166357842332392719270268138264390225504249787408409660804473678097948864810270266452110392072292101136888672997513509124746290349866040353436492617361923743342953037686720422154269769008459985990563101746232061203417329560287986444312959610258154360899014827089044190877421368876263669459810062295271344644250004423597226783935355162542790489512627363165032538507211898468862332730513863651472610341777627400600254091129196916077440943947756809003118910053979989024986078580809208431091860188369149084792137204655950465425300221873706672252309219283153447823383482968120375353333946051443739307023667906051699614255597543622835094726187594041457668309141654340157551296753676365342732676611816734730393645929293792715403717459392731716871471766940967721007248506801590605869078783280928222661031810671650853469919657848846768990684883049833110402885435367769658187029793190938521680618196799224085291766965414787204859213048540314192811636666148544661431363696691820640453564890169125495979573680674909581860596336310680521753153924282769234747051204625517600567761960142554832783676398892320279966421790250111675104752953909445186553863094699573315786836209259635626055396199601398789527780039217417305218992650350753970380424239077182022680695169173395795007030687549448257746544576660723971027810182386517756102511038766169843879779358805331739581244485254130742942650795260099046829995781195483211042137311845769151884978774155373557218182233872930283013997595466953234226662259466712676941957494426727097263829436860689384477490142653349349623908683246620834923384777026412681032502056219875916440043253988464954237018657700194759944510747780153545929242376761509877689687334538146716133294248808847774860467833271510230776450541557098852024343245626433661996430812254694395445777462953925253677600098363623057594304148805207873938350555488679493689766169185936798157308874911092884970116359631170188107349544809536821696139244339188734425014462615692828539287750453071518283139101426810836746275501264495845689825282094437869431821312546770619018837506159773835011248216762051560503720825690614129319584893608494231091271318829165941400936497248686580918191809146893887997895804234920212459545090614210217848968151869248456327576630113319139998397028165390841871018771748654735519604730955997390200475613644557979714149824251721649506768642733074022812311999823028723226270173796607265568873084122147887146710861019800526314311441467210696203331571262738661191937085078555850333076280963802866367370432170064964714071203088758795718209697470562924533354021486807479072037180600568129233838057132252757463658831879045343627901870942403936059580421050857868341341460066294654404330267514642335260986128331927268813755769993823211427545076808823765348143607597456722163104910048710572720149632396812044637584678573243940575706055815277932829634334227133486652138952983452433461935836543350117221510613608187617527363393716051759507313761477509085996775973523295048061002439385627737212858452559255876635129148796494215252974937194559695436670862210656642615008146184945261030132155553467209455809613746538927180902627027851522622205810028255560696076719575503416381341216460251832513884092004853339008282524705291051145423023526083700136198316969025941170773636609559631806227088769195476834821869461215153544402773930762844991046822964368420621811952067088090822160685916464693367151889627058162614471809165010517140113551071641068045495450471241168830283441654335642921458520814737541294761156232102260086608677781211236963174641451323046450766610911770761158915133372313119427869023481456556867817546991988921083846342247415089634768537335491959577174397114776699618407489029760041828805181295088161673401124991806132129165722292375461084587984238277206066410601718501252516258278148481778629101187381245502248575359380616394915432959979605041412171554647368555623757104845709479133709386013692360436584809420047818638105870864411746669852319373915667148252104030604933571250830460988079159555397411338459659614423144286398681174795012906176033770822796350466673825832374957789339353382420745307230733801961824294989365175727001804581309020207515166097258311620122334208913703452365660268213462665548755458089079628585051223585170094003328251859703932072019513707936757882676421370039929817161562169135788819927657619674215651629724361266098967520116259044300024305309332390948202332387499755564114726239200451495515768710924888351938072653254390774263148300562396064167343174076144512272145883679273322672791815695525208481576684669420300044950778316514224479350437551119781445608635977695145413211338159193976972166686743235666247263813330490931471547745498840393291532685582185219261376851562515304672482201750709857372143317036687075895146509619589735583058667507460714973318097721144983022115274359993299877467734383388682421807212285749020681912423874871737648006201035692932966860420756653275806608136603789434276324779095609860825499868844745279902312505909675944427190426317454580219143290761903611658153138459701322884270607763465514165190214667301351878709087986099129582868789218364973566653298703196107988991924492754419655375058520673228216515313066695161718771091114965658300089469620033838294088566173594529957145411271959391405629124278752854195485087504134795362907674650612268705722339872908075620681826933239187836327226175719939933754141309189897107315767858694601285212100246862300542060765423812618029358399050766929967839200009491758713769657011255941151977050619017765316098520596637306544916118785241133249694486622240733581349931838648099061069830942134303131651160199769525562417426186189373887422276146175925541352367833159048470785283974578558934859705943634082646175589973894305507372244673705070462154608702183244954382823885863152803852802146548542382019247759011336336899012569027315493623840692765738213842912490154715339716301623565704871286486634345624949192269433275669380693517235784051946172811291473122412239000622798055893808120282864130555387282503849726412696071395493540549413531706924137230332495188120007763452218446900724497464103593917723056660473435370939549363339424043096770397589837545269226847353877006387357101940745592121251333060863524812977710600150354258149279955757829501462983325437158199977042066418957876255873480499367935301807909520314300957505770947260549908785908309461190644922777676739843776477956275466311798754529219438610620692740977234922760834471152741336883680889574819564923571519107509449105708721796931208488492260000222460463251618821864138056519443620383425502080761354102626364583350093441855384362691137061934310174335596572316600928017748999552527731666326293674639756270359922941656090545404722355465566973703312743086127000671640527533047829753523825670893726149427716392727273326921068869424726307758968616059019390203309911265772350145486208909496669481578663087726698520189190690073191255646093455635883681509275162583692012737434775319794172352233104861139843619552694077857559604697085422860051382049303646815177047863459291804442310217424475560364093261864724408817795393373172113337413002758867656276877338491533443101063476891961165311154070712664090510929543214439130548309688310012655819524829145209929606607195433232989531133808235231556473289273501742848191389473943610195664997238865529962651704484713286248481467516172618480689999056270893091431542785009754223620591515178016177440828321185968046805714104716617512819594080333826334890531396953616304714814556296558819702307040875368311209717034464216369372960945933254065039555983206240441989141450524533686400076383762452146861650599231968323664626116723626479906354443445133788364066777424848157020003333730426056465302140134744989832250868319652150328684551224495960837977334342608242117104757685408909346453323208857940471635800771270151992528835651215320774035305823498246201197827886247619070930849178775539899221251816574160029435601670721520860049049052053840250097908457547625450741873997142789149902404917210086538564365885715972876673127555584839693610878660986592597630413728464686574955863327542845468028505646236965333765139551768159022810760620357738563744323822858064363586775810803139761987725208458551538052490069209917948660338379149822257212268184986054493804390653003849766989476002449989367279193153435483412642537051603946934463400639543717487173165727520645769842467683681712430075245847505905679625559967375434371876696625234499943301219148158138683204490881077246767886724730990944611823458818764625358834320331567782740347370367811807643762113831100950986521179981930903904969294299221462060119478144124716846124878982920187453764760767760523633196279823967238932164979429224599552993448264686155794021952952066538116329265454908506112909058430493415807012186628133386266217230078101185948141659967784523539429556175672759230402666338634122749869081934593048375362363767578046928337635378799463887052423578184226391665657891597428880864822730857396801491161784412530087457009335607574308194898566003598507763097110670031555487143565066561722907931676356516744287014192696860842334029630449753814179673470930616335462024604141042533512021684842389886846892789529185635090344548779111219427520803897197066670911606631054145365086174508278165669287537149277506315009200225746757746182440765258948462407535036712064240336262848842940537231651255710599380530253380102599571470999503286226051965236584507830345246605543458723339648355049318088031161666132491017267215850013346943898092364702128068274864387637049627189318402175009985572865345431582010446392730055665858365557499656608871435677659656482440394790939679167985974951580273323148334081172284632188205082044274986907673305346745469318258147720878255063103173032966341759646946522660569434924556900045782608629190627760476363164930296150415818782215617883484735060353743994053482752601898686452263400165850925612453976385261984536226328650199742851543355434718188184012436815062475589696165643247595060579565039847338429769988291557071147580207251536433829919220510667832922997550082114302139226491824912904672145995779828792239424422078576473398367037053578551791367943758150195714310621836170121933327452804188045965579565686402871816757113178123430433549320029398999993719840564319705309307135968676274901916655660629869269065132410233902463773624360937188748676148590747218139209085866318994782053092058808519849789756849155159959917762188522072155860123635203670195548786681404567609691564105184201703554630416191214126413372602759506120985269128187744994627422052531071003627239098750835094774994768784131951008080963032807633646711088687817772371495908251295614803848372156853005509038939510218557225031504060281996730506230936729813926286773528475863648544996385791920724207734515708221817413452169815402620954267227931021489470824901434721635711299559556429947799966949118116609797371040353822005032881433078420605863790366982930832414876720510044938227085872803093458330707245539034156106984192084983301045497452338991850806662182193791097125135359432643931226077688957914000107632096082000716058768412094979636741400802148882352304738165108446233435260687885371342156097463231933639265894287389483929493899230800206760404006494246301223931041642306908783386169185352254278570823256391715181435712756648442384422589740496786918229791006476470678246741464960777210672376578903710585917864810383227677510780765456399454031246776762027546190194701048979180161035960787236222920833801171984839439900641104841297025544483467978965667254712307592834753654527425875112580438686780893294378937513109053911623333157782724902481502091738888981496862316408935715268345927228342157120591935129998980991126242205516394327639165178385719680046221755106254491761413270643818024037412836595413244102222582829379013955691136573364235555556885682457132594309183781315911416292467219484474247105862108538797572832163548117137031433998481496461326558772021633914083527030022581328537327870000642788408318413825433063183281519851065739817425435570103473988835393593613292756092454693796358490177493507915897494069603577111291777475437973389487154919489955498688589222277752858494993593036800120818341099759591085514874611232061412967899381387708529522966015019165800989873584518476915322310767550724856569337414160543258437162118919556743403834174485595681896927724507462218542900026529656625521380539655783017885567926691211432337827919898157275910300860395751396723051340270796677785705151367527823273410672913370498766781406298576340978555607810908778409100114258731308013646625921240815707705175443249331785065257098013048850753204542999891240548774826008498874884007251388610864136033217234708792399640304189339558664682931164841886002058348512275584895082921979249183243819024612366424062205594399598127299101136960373367788367763042059756537587176650140105975703857278178166862521631857782011939887921108117387826024666689460782976540176746633017577370164664423977073277361985094934094662634469607797202897698872826327993755487134913871167187184630050338600916070358342038031754070546679326728532481535772174811062417131553191891758292030251524481157492435820563344003617991130307565586704874691215370486567857179878841037119642546595611645962393346307905055253255049492282582271748350317652585336666154895763789303975940151965191100752997712963556588074599911683092563257080556443175844642055081105406458016108025929235784691375918702983764205335902807914708540005120251249681703132635396588968236801357355391176033989707687257903685829250852200576191829320284989189239227447592959503121602698413688823020187042589530786589393578796350455002735315000488579600150716968690320364928331133894091488005407022860314893731089254954231803191735997271015286293273020466848300077980061098292133065681446076627419568448049158444007037144944727621126389780430768008415238114139679743823340664318295632714467450674138195929285418733579260137583297050218921255846535942471821270312989675677876407051827722809652451887703339950402687828458328349780996179091508969292284973300605941808081089295728802058044637944354474204167799298719864812810339960012027108660736637156872345805373052354856643024452780799691681819302938419937772067291536902328578077030424686540202760540802399935723959855806646499057117947596428284832130602106792755505820397792685305861073810940386439322539876367410868077999987157441177012220727207701253414123277377785613544179522941558108348965481751896213958239159349386386928040681979189501304272985336674776147064321519214541207045349520998553740033452205615291833626988711408200740609926855384867983954770775384002315267776221717992883753504121753056395926290099522281137046972843006645171390162155929850396272101861459337303476908492245137524359809865709446750264616332639219974746720596309963052300102877861454650999928956115419145784335011510294010632001896036979802846860494314087501287856717568917806800150075174101174922595979070513669269892554827292157386108367509858674396738371675037596254411942069191273479507417973194615699117827283409044478639297893150114778331433076671754253744194021642146596547557405872762948205395190540453831460672428853476669434574603592014838623568264627036714390859907321331669653875949013089034412290387508914941704066197599066758962496980845420421353627597575384395578500335820675335244351118231820068220870489587753161918665724738406970896904306174874322216762765726229561429243975984999866936705020754215651938219903521713004380125529736481053001968772116611735674113314885025144430731476018539120627638490733912158456459219242983637567691522063150735849804385544637480174342115516154221150152653792432103963898533342491390406337312086527402425704841225339436667804653902155293183987487551907954782156498272910759905519706926273246198979072408739765651676939764494024660529069412284754640476949088515474043496251305226175179317688417608676838855006657417661695444055615801573377248793196661637526992826445922219396231400155255735224413735269703405979714602419560665370005513728822954092928301574308856040668512848881955914041789718127950674710230055584865756506178540761333736458966808249033335883455203201977368660383941697004314352206183956412780725962960123450169173211785831733581582168981193127685394461358678831491056370749330673745166306296928168089095951542562264262466489389545586154429626921323767499248795768183712622008808214566003235720775145250921266732859964019808709485516669128517150574419126135672843228777561780695581051060971683950818297129078740902491383912659926597146592447824350485967940493964822256590650186429787696441423138408734427790988249900548331659611615459835739185279247012744835492947758621082856207400154068934768162718394124615219471386307590314603888695445539624576469256602166917370577635548215185549595090159212865346422460400727686214441670282605745193956653538523465907886555657323735580215390106970894051801708781695210292472112012779722753763258242630756280215833822090505780498143789976394267680984591874496698409940773672201769535253623907200754239475023982679637209125602242143247253286591589192618662657884120034395048110104445104434519714106664539695299353137947471166365605935204874577865809897353106763415672273005204780105095525339103158506977041318155031212696724224923733676560151527987319973373748531808942639881503965651553055748237902987463945773781830549991718816968692989061084289839952858322415752723002356719739845091037068236923850522700423163911687600927888449366792237095586103334022429264047829375398328703613196656687672249387580283311677429907764749643719070581487717083648593406639323738514861147015046217428826948662829225924434512209313883583184589110507977365645692881583875585398756030013825207060879102222164976831159885598711407957377321402320565106756214165085840997285647285255550745687199221109669470572277122521952357949409425834357672557146716772788846103327067736044584176407281467677088167305631844532250830911405333595260636390744947953334579674332283302822589298378804204296766325665801462129352217926693192726783025739364161601765218321452205574190607454983459474396931765876844015474789572322416534572775096603860145993007432193935538314967478840289944359522814180997373294662350817850278344252309554233238771164135856685838357565904468114136838883045711446816622807392225355662367295307143106760583151436254739376070713615962602950882969114159057666851142599466816163065641426245546897256246152301393966151259088729228507843293069278438137224491021231470157203934910888857841181859074933448194938287931569728065456972846415811258607202972401608146385667663926792169251433804918980087126721016499007980850746530202823127770487303691253671725178058288202346188989185722356420308539889429016842278245546239653690149761832461706699519116442119211405951690269358200881683579135489892140709668048012987469770545145272894999234830208274394614104851045140407214139781267952671664936489306391612654193901924014577084941066333866682372249549167461577064539109135641054854333537215521826594609845867531631744712704269860024002082100837051130744578558272379899507470877225907281308115010540127723870998078571919321894828762456454611671000042945877353112407240472245620954290138434773941144744224865467613867243737681833909136354564958304085205113574698978012468810653600952912912319743451226842688476283565028628412347442624607441139687797556389182877705199872100001691251912058928253360086964583712143208644871844622923748073039030215306213579037888546156061243680313078313018567165565086727516015633766641493922173095614324435521401282865927749416193084774825802615445398198661681355853111926833925605941397605308644373651895402791727488924616074099580982813573069838188802707767742812019572241291048251736616801823102963414439009962620711138133454653948289034948980837097848437048100518727460131587293999635068416704616291396877499869519742014751215696873140532322435184254933668268351336110330206293911745973074932169677955873065041955335889553550777423404818142504468945298644348049649430541769668653046665966560170796622858892294552404862423049000691569203972647844497321146475153531410259214607336773376438367018014888557552604784064261808150024142636964074237152299144858670069499656950587298645330730230130526212118413138285060236804306820349483470541389436410745873192666409122970277087519912435562765319114194493191586978583323652810018140493071586496575165190128917374691776422080268697540741555700738150345783347972797321657463252735684911416441700606379771617590470284715673105789072830296872096142386659931716297886664453914883971885375091861043338973736523191288362852007081399312787787972205733748929624296982568003757631589370828949031237409824223714371943686684657097431731501151159024834062498106669935504501582444507620227219692735615755543327468536415670241154867678398221840420888200364061756160962389353133553958771093437425944450872278613140525315536517505213540619441717672307022227881050272570099066343144812514056552731793826987787846748074550369882103288695736401230028249772301082876480336236216280140348955577800611303474038670863971382728530473537564866744973477545665659492767766123498076417891094912164606777700796891625623668431936430533113136227650885892423833489613094042218088909912445607643318944498364192225508396253555147889466545653158844593143302284219994973798995042361000154446688551331665482340059706434881589901675775098788764448971169765740693255327419221096370098030065168405807505871316196171206681053000529536002940999700537985433758869006661811042856931082907019586884052191148921423391271413516051812805514172528053361855287524285654597598301105383609614337751832149957921359257807469317237176066487464685211337677166597576354144788053840010884653079771208958892621347820680063444698575500950835893166865398006636909905895421864606019778463565315893640376684328177349531507371390543339122719729433959494328824886041358960004156700957651128132052261341399892012727351411995433165552844903681518983419843284935617907308068136058198172225306805669973061030030378234552780773441584899369650408749152635364644009220467730691878821301953784179359737079893596503483462980422602028534044667958536479616729021800175276724833343115029585663316783169974592549047028916374962254344892246048458857691473064711316283736567653956572493583181281412803691362757367381804615932754766040896655617992868167262650720391598331713352658995276114625276368990469606355943507278734616905085217143876477266460630999024341308129524423440871692857733041473423024649889926184269265382341115297912604244861591517317924773209222199192808108932202171089361145533271578045795540160933567127845553259815834932670681582893201500304896157274596817229281763065867803099028904842510014644169086854928973197280222177364786645734699027532864019008319371102599003480479701922154012232629929050438081560384759747754191829102299425866914593648759571842421031715070050704767864751742972904444039133939047707059251516336954206104411389533792907355245707975336890663675440013838018570488397344646784557367146188881702110565291343152684054002067287276391250253507152671612101182508353131854172666537066083070619441391530260923086094499911859718083041713037325773776859972390469162378928891324990970727856018722811887044602398613852050213753295397049740462517487302239092018801002908167022691899997531409442966094212547102365285913008342935044200941036307539695058778475174979037074670397248995421667844698055712461270308396175951960065784604560295446998543484907708141109498451780632184709884983242286308705288320936346806527016777488303248100885539103615731377137609971119465892588216665656827238625102806560819359077709484609116172536986395397779960683386829181316339235002662667113525828013289342891143003332469708576315083948470356640023607263712529265291317331327363978109644457529699386884756238121690601683506083582922096746789176580530054851547148339216200865150174834520677897537470600508301493350302683077732675865013575458321844908160003870934347507716912425328835228121722206676690106065676613542167395912681998843529296014690113219111138154417067446232021546472210670855641082102751562422112590049951287919478439701214042059447548395531535101337422774665335254352894991207120672615404268548420215906384530751018011793277555534352558160172034331389564756672968973329753580540971498196563022439843479601032869374162455866084389651687932888478058754726676361564255097361320059824877259256272968777640002680178751344420815395467098061721870120228966206874591740029894783676823396376913521674372202799774134687290034189663719163227779181440375811866115272858119705053252643155657449006718832106127820469986687267403597173241254847025812132690706554589371017837910246889316927072708560514390704135296755473895981488958516784927229148856166830747958208217549283969271188281555440313315530435751217993096802432215225214516269310541074755914245303192031709250434263417892172632953592029272114736688582410480809401827731186545888855379455262143300287223792519113675129673086401152047601187727529122514467985379383616065167920599388639453400112711882376965722703819745168254299456474062729775615489176358662728521757684598246508146873004554419214318716155364945264444254407112160913475706620468518423609887159461367451765952052682207379289197694434348126709549848023261597047429349748184975074283269555547121444690965171352829968568466636863085992742702229274011521643594540455417600498055031253607802649569517075301775710540566410069172327236565809187118185412590819628652073026998864933841287467753735935840605146365193928812083864913042021297609991449988224939056338277790785045452563591111197585385406557655217990767066560976725535219540248337054856470410707357597128558068285813858579776583889170818593267360786889531839675753470584645733913778322157898792249475648598573621791120713446701052452423024257947254504323536432589843688368696690861459432249499319187986982687343941069014321767990900818648032483074913806072601817079769806802670496119978773055867672479844220669204252458439042052537337396370108959522686575301889123519997657422168858748662956691556749326845990629707483791693367910718552437820707603346556143970394157052375562469196993952397677040573981300246850041018895720205934986951187400503772229493458682970622877069673575065866271447919029995872117907240658050930383890769284820340424558764422681841123970368768059070405612623088713455926583066713637734129713382365651915301359351626105269920366911967233468182735719425029025363906928279512167680310647240131161824472763322863921020300899829040440977382042902042214534093976146143952101066968557390475541569689132546887007435470677494724722911581764410671969664784116008446384115274119729318871343050594623738205067213559852817764903201371352648313112003124070875742676499844022435275429888782321712998842539810518497954825227348536999860836956423314255627008680186974697383290898371709056327335064950028829847687570062443638293040514043595657167827697294722316361695387214360954118362032678904211628233815675995265150330499393243937073467330349455383344472091541568200337382910196779031071959200680001558077564282644650206410565410161108235199880635208407026192858633794371589858278461973378756718554467993495937224883186005137569676554060955654370608468766518051970995579070878850823694260687510197975441849976678618114371172621081362201732178688741249820764838922562333412975511907586782173726468195306554699376498849470978248845452750721211124929409671376400956780788691931098233713039811126712233284197506782571190224072551643594270355298279878116703963198526842672449103430998343412803523551979787657870384366788760533493412971477198724684557236521693360474671862910332071798127300483817869909861637499967870090832889332222073450295713181007096697495050021232568758163736148139505471506177075618271220733595617759908664726934506395864228905176392064120054647323757886784339174388599521003208625510932863426482469077562281987260499821215184530673779274633802684860220755698495294196792091191447996721618675116819596357179971964076770378624578725595195081751717333555915156829581266356144879578075427584696632952765713333161743377040717797079494367236289255857021895616224763332952941292714636604903311124251932698632396984923427202427385525081261261841285692145617023649162293765706036339277459815742012983729758306694684052758439981962511280251796965592925975541219352858341104078636088311572249645481187294113686423522638044105188537005231422758357114048243404915117321436384761207708780569816830910403078373581880418557418962255105218190778272469732783882407162062786018438374818860543084009393909618501514161508512663297025220527719044806372664498512419288616337007892076181145707137314521985711527479150165143011762523302701161432152601996136194860711634650634906034876498021062446272128442971344693923816611336777154709535446775011631780179180442859386621891045233746492479372247041923424153652686238553919358631388608511365626244313993691997668912488615354717563064466068422846961713111211251396541526197139355100362594189860933868495567388629780802712767677217411826882790944244703192182925679281834528980263145269383209350617592863282734488202187033674186373806552744208048634505573393002557446933856732879797425682627083955905623512793368485674992591438061880189288847682088165575347208060939992033469871986990057934622881632177706899739710596582456844608997402236847019706661755198472113278983161179375756110864304694735163299406233581765681917720118473205418094753839363811272230992075960551234782614011914490907182605325547235473496298306333019111010766613801269416917149571791098416819751395610566125904006473171707210823488273301671076676477422750826469992634244936156769300712978447511014242359413184505672340651300159769368647373112838349637905753496296004268447938972316962158806230845555873931506242034710556927825894710675521153801410162745435975101780966941665296479385666057089588602085160747517463782062576514377800255062974808698426891300903839222122257057471170168507273489255502083956491849755838756424873579315932333983245150584140425828613675486441595640531203986301919014223824376920209294191155720679544003530510230060212973160484316605666622949054166633089371167025317439074526409854307271628683528948660678568251940784051723034319686081751408182377806155704786454877378785712639684194439403154964863752706096147084027651630043225950679902385476249682124095620945877607758930478096880640435721010620099339013056381376721011345454944836960487386888412166924914908533281324054347567686374535534706358164347060560262863684431907693031318963076119422782338256351168424560161133797590839215624706589764044121117040642384228603079599108889326188575690275453212038774725920551392338929340951768788836609695066292420992900767234320777846234210425609070096149595752719069807668850598159754197631731447610050182063337554061731732272610965747394519143347200374378006746926508867121879486740295706048102093616708598124421682501549061144279087924115367451390905590328015382368517266270818520137490417552918895088584526714223753883488618222831388119940240937123007444835456357722524020231568164646449803338653446592605309339018271541541611497500266813115238302409813756526183477880861581791665410939725718526575610325305352853155774815728201048659674859885255401416069051889542406147390352845748153911865179477522212133161560243746474037263573233701112704870669403151301824990443331077244590109233491103601130781073709479785025305046411096026033451673244048837225218089004300886677385632750905345332381171704417331036858055620911295802598137438422334655372157797220893217199293152075394877284040981267488163355378715150188052210076780986262076322009318489002848315184752588672987405399912442366536929182813239652348313010361353613621963964093397643301535942552819486962129505178002819384150358424201651131402113732899435332384197445674699985390063548685911218673847796766650732546799162149197363729494839831719395869751899777469517001493733002434864805105164087782797410634975840315801246154358983420579875355020144561492855729243505398450134476441896939399549891961596335919584419984060667303634466742360896969219686834018922226829581890570670375352133411462095978648432592169733409354962478896231093619962885920165864013250561742109835533191050394545504207071201990299355437305737967777820182301824958380392756595271270594214266224794029078761645944453659892297730874257488309072957466872865130538794675996162747962022139592215512226801228468246801686940487373030315325249016853478554953358363476609502354798141218830406817634775289679264225947880547814646347579240762860169711281487731281149742746904158132150352204374969127404176917425428472864011979653327670994670592249981867871880405970495786709762102714524382510358661917271140618054766946072183276697292334446498091687051543222509100235155439052816893941993916840328795072974204945977055234505353345578299510251380102886129042359045656950107139548789802193918952991565715723565540782114053907512843081921357803838381161378798421420120078676265476839406463318898150784497361390007846984153534121347684854440940765183430308044914609549533927802363181906233805417828762588021375229854571046579604128343334701918622102698673545853266471895347785711607798668610343761963966943072709278230586993406981069411709854909727337617941977092052379981660876466804953945060049833226973404064823922126799861464213039567348989557761765341430006134271661659447595147431874308070823306790322041183952503767460562512389937970764637862534189473576447263751095108359655072585598835499391249382173802168409926607120529671644201102326090847831647978707614883127975431987904271663291424720359869138872038981557462277420463232424437303989050865243911978295460861644861808061042067361887450145808461268353258301073982713143444473124815783091126458425369098887911553384009939928528697944048167426737111483744930081292435377271594551735475869370130292811849638172845501152199683431971788402103839781040564803042783037614624448157226222196065595587458741529388940979131513007233877649604608774206127519321713022854017484316262043197800811312625294421204657689666622759751163925266345607396258832993734417904381424224533818158792407475664567765227238097094546057943610079684902291992167110852984863049733492167968585809223768342011749481136223407283832946388694069043855643457103211345500863302664071727214104552242741649929487833586509643319890150840600177100642823163920276373409017635475649478195010581107651712820898203774771805371181573410473531335953763364771899249917424606742436259380150278232169173368118231460355723027723248672670622984395397398525813301076282891659919521457176955201707401918565758510580391588904397767621775567542432873083049007198939753403215271210165245285469808871563397662198696255284025174743766601577777353597406554744691960620011352197346706124213702133938637138872235587685443063685020310534871528018967177090247946107735249278347018274931760642285403611788723494824705983094519660758307617689425438589597966807960234149719874960308850774153588970261087907009142278983339465267115669469720877806681416509835934239497987583331775773881841172003439681056995345896997855121549507749938400315990614471617711628246680827023649018389216553434543343746079578265019364022727450021468127409968724253431071320467006643299482289526862495996351787844798883535288824637137877023748651580185233682924637625705269722271785260708073003675029909324783213926559342837523850596043437728815803589010914356081862481135863981324699905708700107261020999170419052792783246590472615004386356890504925124212815579857363829774717871514642998425824579327749074924727121055231696153093327791738365072749899852300744044508271593711994527752973741801923323644236678289311348983963766334943687505961728004616719541151802644874168865013576767093252261080093374703008226087565404585598138133075609996491783528634987704654172089006188184164375329735666893034600383509843612480577530508127631315723621185309303152748928569671357793349537822135303732630424541477926369937243636057976964037291990164364763480395907841751173106196463992637011097524568073664920396706352605344294407645764292715406280070418653094416747008050098182193944740679224401046574669492505297721732173685404663609366131589477557081620718835367193185598079006245593381908387876771239771173666508170102691542276543417778758953603049091065718220601551482263947258388018719869219586149252576194221285971037949829495324228510575967790906001210777958037971140798797034649332318221002572641238173957860456102193915826648672029930023124171490782528673365731821141658695355827518170994446517944487372445262432968150622618534645895909294373531418066783345199186649759008072939001150725737905590219397070123223536384890203402078334229499286281087458214678094463503892171389441715109983500112606509058282412981395795360903848530667296780533330148294151010263060709005201679711598989745517704285256188726006198320271644387089437828880720225030722300924259237156829346324870197766821042310003449030460191124384556775703091795861798699246847539193715345121748700258475626857872103912987855269042357106806222010494288259290020152661650897939959036023632410423943762981449465067804742757945180774365178388868554401295197838184941758659281941083634692474094545460317475594687432276266125262099191780697018647224901175332008602754029812623995443127392465455076505036037895090882125820794920441877792914980220882642741926942432053128409300250943636551023475474525863865062039797317659725469535387640064119811855393366207052446507799492752667758875669569671025719083376477424844774302373067601189904759898025936324064796567145666836526353870213757071031162074008074608687745770808748199932487931585431579911324993881959947590997653823532576484987328381680298485332351271183964543419079036934615411259720865773187944168597996081818574843984329918407324091032581403256616957454772541485637056609935542233645472929425830331034687567871432355574308266347398231698109130277347443871602054412022099254007221517535168975637433212636203208821452496456322801467211554476016548400208576922674034301821449807488590444527334476697037685219424791367594793410289383652215043876855118992034594499398082612688268424076293915253219731607038669392405815429483515024069958252268264468685329085271959721558476135717311601920048591053905141886548697946951250202328843873939807021390601850991375722264281929048286614797929056180557406562094232450245808024176145682755532647126224866577792051356603165002113851644942787667361473164004286314552149308319469760321199076555467034605689108255433248758734233878193136002378330309407731097946813044782683119241712923728160082565643364147654258340374784912938634369522213719232592949655643755133445608419444528371575288519281707863280548352654712509661560783172890223234885290457619176726609062782344427105000877874223981187687811295450436268276562184811778331458320640291118594744718513028891360464548030993419231859328337434678708740911291268280183059903773400321252256101071157185137361207780498759651237372912725693613091152018372514214624607275495795116410334486670789360967810702510521414128143229123356430650494332175868186716211927341251209669575889114949158936662644291091018540320683258337224497079734731740766744124561009700385913860166656332896821616842463803070819588858063920476810290006149042809495193114834980719668669891191913001239801701337697018931916413857158918687404328652206408238454972237123859297323557837237419785897685297774793655129255038157854340586601956102375090325449038142092322648004252795445640499430723205322706260978155394535103835891687186459270035199774041618012249305956823760014494460167204552543610797382581539682605886095811731704790724403802087814643514087935951968325047060244586661375388896780410315818010110318320101213569831509607082880964544815826830724722765525951501536356408343306528324254984838437639922188929127472621873790171827991030872448580109031392977521445438390115029069695337568523895850797455867141543851314622962530625415796921849915190866938760282037483101232574973784055546189807208453519834865328333841100788018535727962700327241034747046041450512299125489154321655684198928303230406754032421046464402116187941602026433051572274492022485920916978424255120158007163839977874146956875656742397412057929345154166993389621100144504263803825563018789809322095076060985472939655966220567196767006580968303838573218987689894718835210069169255202015901700390777150729895910776863523657882884157357793913216331167400035024839909154849842425760207754236020406578433048880184045871565747850530006806782581376459370281476854824024761380710141139352207119028753240792842028127735941490738564553930875488333761923311698374285215441862728630705595330651530031168740521344190916074058936601441227537583242824870986256497314971922036713420769862563281308329217068094918843138055684458180202346753850556539423360971383914014186910052863228390589707876063100429457608961278819215990235971599321206281579315112785224224875669426185544317988131132011915662493147633945035535022649507823235467366947878973203418078347736289079292462516525794104015883606202204354141443777055747463732782043792592070577913054319918653936662256521274643195292774150061489277858668032327673901008068743109132998383716047610704367987140508891472647233008110179412413633165353406162639111693416117172013603139951539601415625877387354818146216972961960846365718568158970628462191402828986050841961149902579309810650199731999379597242935263607105689970938956416007654402952982704755504848852545031009015947834206898610361605098653162406460546850826279720234903020733477007664575413558706645753839442488481788990163058106468123924006401139272060866305186992350334762856882391539049606002700025502312483087481308027029399702433845009467102270641206063007502254322267009130086284995103171093992170154292693368756547673785973585139641389693530613067954882935552737639689397435109959687430034127232675738677220388844319604041243064459286065139861326844096065928631725708010308664148885859499887032534629140207440300508541961907555507276388367337124618989115480530326523919370794772801584201312002008929224972915352181313407032354486040092506431745426758332692052895669126325934296475862649076466662914008595064441279911552132051736531447667527654839881895668345131139322793323426011161744853718706735818131543998489742076881617317394245186597645810804453514140579817192426411825221459690513004259612104857859701728282677644366816589015161766065544230594512996556994334888571190863254518882955278225005552359834188402963762363475358621551764748812661550373839170890783717636933941122472711169728229653362420955849163898861379048690429718831439597689050490583544033088055432943312079088648772888125173121175265363608518569875248235946971199724422761131598557265584454722891397937433711363808263687369598426629995068921803541861012265518808604043089667266268962422577249181012963646447479908913523412809438013599393673102837145537486001747893394169071681200705874918609179891372482948152709454784241133368234223810154651870638360762141019365212788662712308304226174407502396176410386341104738654106687360820201530633444158265618069577517411388493041175424264730635721531248658850164823383302825761414264087531512812150816307870327015841163194797766167800272478268038958184753358608001323760015594909421973815213833208908227247295750051829644580157899686767999391198182245430316203082577603338283851036299588834172668809425933428511940120352877414329878445421232205739459957061661250437654379638816466836772348194283074778544844817561147291970416653695261997604346977044662202415564842226461307120321899293469308255798233911679047540029022164239555043302221396637108755879116082823845397200094621326316837380908441065969971836731418043888547265450758916703563153969559532773243675725374933601451314110817153755962682172003655560452197440651248230242644669528252855223352019323661071613248303938901011864437605010824205298156310809639228728997336332277003225424751119560035398088317855401362164239437983728222396967593953659265050679788313348778825013071371083420562438104467679524637575651448572232006334277966521769531183159989734717359059067362620779417067399324842563233927640564474356422699546841685453158370423191214305728553646414634652978042291047386951268141414943502253623610060873070185200174492243466251483176328915288657185652129256211906734850998164345192252494588373032356778446548670531824456763567078207379600470199713432869449538344344434919693624375240781143668622713700945355542628090085375588816086895574502359594339368401957227820842853082495606368239052194297029701866184132688907882544563150857229639991358920100376333687828352973458621950340053617719762440182834923434841927982536192442221741474421617405639036462246513863248652133596517980056027224829337794074535184350811623035553869723725727349466033273514101971099959305483014942889891785515001213746809565334699562399297301673369168082333467027061400320904038659976552894239167395720429310458593852492601044747883156267802932204800163021289072156483488739611979495905734536026598641407796835671389068405585204396295067562285271122749592182513618273955205972681500130754410244913269771196663515391579237723692683792532248747265790616748819096981644044030033983664290142209229349280290120891533731346346344100296708449496636748435130536689413643128712050275255739252854013149296504546935034660453890693116717624078188788335267556962680322471915344702150098548363247627583914406975184856223063558127875369982499682784607701394129302956658281541119054882283127827256476806188776771709022366286707077155494447617195022424116763023958274787949358195123643865598508284933290060434136725682310474304567262518554014574706508541266281968663097448499936647812989912414633080004600569794899575229743389374518928550864036677993119641138217416599057658195518005219111247082375052655537920925931500142431528973948738230555699231594798309152557864250748946812258160920959310414587019253892348209532183566866270730795379379636680620386375970733293438352251726190429251376461979248481343166032383718955896497390092485810518433520972870108801027257653858179248217311274361416798017872576381742257276554352622116502144054193206685040503944453100418535325653070230970618875283815554883028598971081348332507596717383711663663332130499513629269158471890381714231685666144214733685630103841344394936013278139974087072861002034036197795566682460065854962911369582418979103753708011404459157885349091894973594052884969368210302482118792883588384621155971499204869741324350801621328001119495757277599783178391429072490207297012814466184624760302294598680229078851025367657456955982675895120120626073001477027463420278292302824517860285671701787225530614729012918791196160082374935829309691699092245303328777999658839312157855273291894508952778433340649061170874974905318008022973320817976729116600515850055826005790362522265392677107808630565587590482650325116494501893690691321712645936254579480878470900410119221220290427327523740716546867233319283625053978226960361446370414426471533779574876824157114041157782891998524408331400152340777255373429157787717902094802373768047465785211827523320088147308717032293824462143649267583216054671147106131218175584346772465188406466975952406260121452463351482459351050741205074326187425342220520790300557691718456760201685998040987384642704111989057034228776394068466412417692901937130762143549352389281578911866473082004745139808348357686104957415449897513004220869721567335285808569907619429365418170031129350086455267110135817105181769591915012047806755192912158613834631453902828514576382537610824047542001162006488176470462076744956391712856639205608172942797991502506265613456839704998203736675963520564268148070990680867200270561670707455413438015857612978758471523918432168402639817829511934137562441797911520755436512391692470332232057619811629295022802534435003125120924625901956808552327558170954031864912659249206647141987817063048336292256351274373968412988624313352566557995657365471907918392836786782597635888332637511299151929775827481095281379306710806541867497315396073453296515311945844261367657353856406274446978121415212123631183515688553366232130864811309733582944559003308180983971429627870366848459366323020524227002877420025599790990205886054664134692818808668410303804450901478605954774014723205751026750855606858766620502134587422321602393322807242241436015094073560785363181120052839367098972101963944525122670492506738217938967493505252049322123431131969775301297917939478479939634637987728721199146418654791334480951172489101624291287135180884030571016875828438905124125548313849834719820056458413657593946800664523884404203964552854415726885352154663465395224086727947713084023894464833713392923662268127163202134256249875784044321091867242623543309991516522694510097637043392752899873083218480584851225386514843687673214232471481853693268544289680034926087245699581271384985806008601751083701293386212867289031509308790484233346598011577967192928375871958821867070553841510700974317024561689318014186928449068596084704754824399366452193643820180533471165181594846601140148391806798018630651677906379200904374558087952400887040763396973468175538069646088703163989439110351420226328905402643103884427123761413343526618913727873956471663706928944635795703547296440838102860438575887058896610501475214232535505535403163077273232335928041321305430511638455877830744683476971888042796034883965854922612256612151683765286574416201628876440635716874818209868694243759173108479469215684514328678150808226150906826589499283608702907733360629927329645587073295994841633491891385553039171645791850622014679915258738517728432286188315300460089933532653251457188490923491371922787709289952774258605355462439249802965724386293323450731212585833817641344760269167079954798269062213457595907247391236416488179044260697345015390024841410894533593107136183376913866652770236444923271027552979950830254834266283747100284399200026976657355416263422074784861268535268600562077965903895050311806437842831838830131693492465717129800652327148281211769991782443089225772878040390257893213905779171959082225463059178482274725911734577499808489359396739456956720494867756424312212803549478212949112452543045998890094645793498417131727146219218196941701153218664578052448346519983056742674424283512167740119361461560501973221214916120933708468588669876387814377124099676171779048336681210735488193427936532898681708718777855885928598996226336049410492938652607065884372823918483418927730326265454981010310441168673112648963713284308808657244529028284433130513819814269888889053638697311898496464913695533624079084602336002179545896760282539731821374315730134164143083855661162448931586956820589147562373599127332963433046098410263700416575575781056424060225579444684752691690850031207781146455997992809153760325477176708754279485439864896640387611331581183080502523546111092406626379713932662137665511338498503871602991946886281406455779584368664820554046530451839849812589960562421827687481116242669437634123478017092786115169483048332673697007055873967967253973426669038746450182491307865452403886151363497806673973830946220294017318492894067345649169233020864841054337712715393708252499546393314028998317284600348040029818191679751436583691298267395796930878534342221776837022071067182733209781531103874092073056313625721958615637209311732595016687840410038797190659757828599616115879359438743193665536663259857061332447837953736665981951516068339305308647775730427297051333645941274155711224227790859906345090818526812547102732725232453259065587567720823388389060461738822011125539262810367091573522620067941518295440792286887957850604470362623416406698604092134453316029779419220033599197332633891383496606840876517378060254345304785398316606567733164517004043807776360679738319011712891527120118722658755653928701517281517344345188376973847855772657044676934307531422381788458316769385334584299834730578694817191418147674755357441778632301150590381373438858897230939757689365496575598908610626275862008425818869734536801541699612901919840463548971885842719461496542552559211436181064361463906343715525039816259520070612433141168588076122363631612696368764083438917755341948185006142977165026695194567154116058575315352646279516182447321565837551574891289076394887381804899686774470894301331041451622200623968179371112438659201733508514423084600596538279756904036833249342003268305633162941047707265323467873373229314663933141732768993605330777821447013385348510939153803351634122367698107975976050420950902404806682977170488047407312367543352877013709831942534499505627556915053916193010793802361254263697954307699799400297181906551431865406312937942469001995855764412597468800821147161884276139727192669239406225683012282156205961129187113560128969499961819567818249848439464189170818483941543924475727940108452724679337582514219917409002374723481095048324784269932122088779114132181450081285370868957395450408224930225788643258132631714233538228172373828956741411864094028049344483758603512222208202448636810493813044079646415796003485601281094560962478276481201467320051579325736841337853305840196916267125788511118325627938716891660712841569821622340665974536678833352413314139919456147381658866377152863537998082055855747881754787008002077711062650110018702964372414545694946762583451905859930485781283526095481228283038405872686940195597332306803825477079447028226768784609230805527085144377813112895613026421211766065532561336327105559036787204905434448210887183932246476988857869358160370403421141960527479187229058035368890767228600198527359978517357490882940415801894822795368120741421233434205028238913065556599096443767574658894511749988827862216314421417925878527852479839279221105033211085752598512000570012137775321059431845203146212916687209813803981003827485485011859065859215572676729599316622994541857315144085591509854596793462203163542657789484229013748796813982341018736205765548125042331694653282548664648870770462958702200195079064121092441056600448858963932480645051010967474832257987925814541677275161352918597185433962668992133500112246674084906627580075349945896212731641058705894734009685853736514500035204160757917007441456845051662503889679979961636818548701419720169902646638952520199127119403272512324185502891029215497806260739034202088751877092088581898434477298274109218746904726312009672270782097759520281291391045033474305296067667190480156923049242829605445677373666059146921505032858715189377356746706490335897445384092325956699133218457017883526669660314926355208060006203366626378366639196566993151799628143141426263307206410062283881013410799923562135250193860803773044389011193603410179780131561246391577962490142357153517598702587974291793958622229723202550320457988255288875175982241826210115712224023059540085068338972194123703506481388104799091872291841624781638873402970790868559816851148605198450336838900304175002793823506475845547481251725161345014188645080326389934734356073708766963220424837503571558594295921733311222270229528550907308839566483123377443159156959194964935349857559215005775316964165991885825555782426214976385718821006000684648395677504387129264952759970116207922267285874885104133267334294559509368202115714795514118915476300190188733279711691801055720929914223719352740509971892091627406000633558154438115737575396990654154655177720555613104970825254268553209045225104742404247145921077597322146036152171236580623281490290352245914637181198089074409421695540750135792885067953431172383942645120222301668140724376550816481195455308407418258289522881721843711700666507156533155887258395678611655907172027799930927228950844390285643799294632475165924573685274086544419754801484635329247922853933276226735946138464225506063836806217672052976477527038669133680214362867893823992505054909167291276204440154982670525025231979950253664300004046502145283842510017256767342959099215968199592583034072071071907223292996161919110674282354626183030391975337502614228355893471870889227513808448087268887569220052939044206668623161606610984632056034695893878678346073816088388991119305212748389643340152637260431653052682558716393479525043233285581784809327747444823318950925241911486654402114899992899315634956300457285139170789662994182209657567113399031131069271893438423824490637106434874747295651153449800325126459791340109534546006884751649645182219596636890650786895466788320110200257315809297812856367791145230432441670057400228118711547160090653755303902876561292192389335721138946763271409603816849369507856650314270976881478500801983811697732358329987719811991170923726844916827765084304381138473334291133630772045826739599434388781062644347194621229173065407582477059181117519321128489295657537522676978228823383473758696528666000025738510056541513703828448448630372799906539101700218294490343365176959423003967733689395897897250668960476535432249313847202013049360098824746582003164507320371776412246287973956935306477849444565452922123844598670602081358398799557603264763063362307964647805043636415499941827792413879602290662655580113969545151619597910397606420343318808002245544180832337691010590559139076401778899754598549541511945156730146042138447177490187376360830249647438145733308473647219778897335359462547370199199630604787086035511248134332742007832460842319453225828004311636607445119243014257950347503020804582719671366995010403032850117472586371509959721215495276925305842912135136987373785384813509765027548300453862616378319630811460439259132586488283271015570141432009345109878477744871152054421014526607303735281821716182785756285104612929318859003406773289016867666446711260636667806609827734730927390302036179681512754711303735360818141277759509508152621517878696563753340163493120054656346704944942224756622169271574145885632304293407681791720280575979443575213500092808275442315754606639239317244653191353601975093686621987963284421296907897291092380656660728785754652311377950130447435315628885491943130856476539751467057335058092570959646460994650288834850995337565410704713338929751533358438210564397565919524798442676411505239177190598353483557523530520607617895566025154089943510582034989307004379119255547550596282653779831755321982043528696289118253007896634945078322488359953390689628861617219389726692659097883395915567980654505866595903979604614287868735520647210112850963362366886353239925621792496877766744301509186388819825575317170393558355836985894292482000104469665081973777108945737169942079878332343074958472225055942808423795018303765693478207681769976630920204154774757559845905344116715433220055675839530750370467906873096526231175247644878290181256363010403568904861365162985168103494006458325652503122212906611106390613596111953285109004139399313621535199002801873307447803805812986147203155672101871988395173658139747322875343272491220069513853946176555275876577161834441404261692656666280658220443405781567599761511902352129453975898404821969392045676740571681193620831773565457554668721319760818892176774576060329917848010429194939927001636202545867863252663293137861065087503098673598843380700376286070713003471844718336881660340279718982852433783703737702872382708271048091102709831922686450313274068944017508559774191389805279551778630636925579619784176465506676909621563338133536598769651282622877944725560226624759903975175540084654936254949968779309647755877566521137091866690938342290449190550221932112106328200666653225117404277128022348895349919478684154391348357154475674594146655053242862518166716435527523773821816729693462718665776354646649138449995100070603074324343929443764868923822828894605357153644262778701740490892791423674288820091871492675540132191677028916451430535081834722187054060535471278612425743436893011948179100276785803193028793063392373041026201137396799431394561128412542680563077921342436166063702606563097374440312250510240902156605648621954003997221002777193674745534598364154368857510494050986586318107336181373459816543857704253398189693794103860889799481751096054731616039030467301386031642916043493346566967190275636359396888371693016905418495992611004992203288346646562615088122501459892418622584980318288265638870509416029748369717053672052459810331430788969953530754554365803214952488919881322880577942176535027344443867820929551466929844096671064261617135806309329532908864311076038925303491769277048618360908204832252926444568942796348889076998312838601786873246867036126366498054740063269005375958380954005424120138134441218006048904092231644744286333176986514318234816254666638557421722114237190609706943087390859009388250292085438079809654478985805115389621997062013549919379562816282034738771024056369959147757151642222203743785750027560318615800290104361943398344061181803921001684418997558333044332407042904695860639074001274259813366512586707388777230269155632757969000562609425124603605603899766761114889572642806503582803730279804185546111013345683708350938235625316416364584530375155242775859373196027006189767602939871423885195667308936532315512289490025541223207902644686935024036726423980044070326841584813881918958066199979292719515510077112362379457075861969147323091223648173352644009447920887279526818170193203769211079974127028824898848712390150621922922794214989195716504626915749066870604107251492492347415466271018306496403983790191392576443039271681083407477404022609812181561958865914801206070516674438021159769871119466791051756961304591043359780328850374178243051487757835910094614320382486432300597139461828127263589068331136590872358347250820291749020126935541975402156323355294397793885139163165557027532028250786549989899563876174920026440066098457951074038516165971146236373948139919910186366926828051535421565819696597604687585913298716605311937028694262522747688880989512406457117676628460266997342441387937110482777172497941916239830488840360856882644593352073105549885910069395129697109205408134275959282318220135045739663866823991103158550435058390625592504774907122834297313753902202508739913206468964315035499343135843887747107054655011308983208537478570455822728600874768183859881983315425900448219512511065608714755166909951513834815879369987161117033794761456262405133645424529757300740378591070983076975782780927464799546309805516711599371736825589671595363326398575489630991542890863630069637844863498424240992638100838866186761343563275759291073054033176240108058258745279039238603250483201598631848301823972186846056020338719110221330849513607717096977238944825219962348018858112954630244958415547102624710372551103173196786976321778318100889685035893955057965065544004142569457734310977012763000123449410698915839721518604928667182006205382424442413281262112877134140760630512245639777799280075826983194096442433103210005085744001265703216020421768297052620094712067376066694196308680882145854758569148366869749245532073219253168306300853328579090760130801637431938138683723245718658392201944462993143561438586724111323640151282909303799367939767847214242403814867866990795855112255930001617464290353744560898718770885589011172575030754067465659524698239292584098864962868070854311344745344977226210142509655940573863070327357704291331444987739787292076153373206030977702615130504276326024456359002360971007355284460878214618568305691784179880723155111764603380859347518773954996027333299557863531186585684382579843441648515755550075144754647865390486051275689493726878661755528016474585938628681484670827640457691634553997825054687708471720373541409463838505520887962775690016388518362110063131863184294539665649609134581149030112827334954744741426915242588894094441374628736269509437209338138684561199100008046271597759118337672659647736589223864415685251983079168249505342243454214410907219803305624952261110965874285832058892976487814426794777420408640010513750948460389876972155987635603144031907089297083424924477276622057694682030163791060888438221545309074662916782998684876141403434355041816530854319178368112872943280679385335223116360047002139869999380282620772771340604721766259153636061016635041932226985721967228426435534455930809289869899801057311906688424978333941888107499386511995203631113252734469443027258115909682122239661950094537878212837322997131624872581292889615174782367481928891864929824595920574586847237056789956678978538106817534052328187349695577814369287411069688385227189179145035185941698987390251372721544263433844876028379512956543060011190622528689384870738615726467691002410152478336463661679026802763728422406323610383691450235373406480222608835203913373252656521299969955030002617782682623836519190722100664093598972277695955648789044167000261032091718396634463398150281322383678382265920029229401709957543915736548459737015722501206915971353129313429553212711461274043163706589252865053141693442431223348129721950410693249905471024066157540289473832911716443411648315283490196775009153192672732092428391369575163934311878324256630894187323893795703254798049203103557009812461258433518954537481422428668756773599691603883034291026347381043310032145290700127085543245123280053813943822566718215687386441983497004737720799954596018960769942505460368523054010975323448099334008374148214486366348549835639392773072739404537138503558722539567708844183807336033449930431706732714834042647990878429045093377888802740815102673771777415761859746142082219360993076690391511586234378134505958361305458552072164555134390389899409637010280372351728446529698259517813669265053820888680038132042588230385582235178165296662557572565180351893232363898158445621881857999837331952371467740909453820791414944781761371209647501859885038340158483639097091754352004768303207758927872345813139079787522161540570159447487586828668607469631883614469581987930144914182539128207028890155029607437402905057471247994359230761576774452399045354824326699551606040764008152481044403519170667125969324367806674150126951163114288394852516880065128957953219671958868048554067482591695269801240196888182153902097854428334503080514836235987994574882520290266977159727420399625641862683978029068333951028861284886449366709101286932076432715856125072997695019792619731434429680897030204722299575395804288588692580285751970337695266284948236345694335788926233810734025168486781388187984959300928717065771825641417205372329242754956505747874146378001924428844376898030274598113332182813247729699214029194547415982668827008378603586443693727260960369128764660130086223218737834855031004265867090365694957189744448877305533615095223134402897530677263708048748125258011443769005801259133080733459156402762472095197865836576784173143625315934484403433283380066295311219738492788973119688538654105384475233020819224123267319181365041866937566252163585865222208313594941314082830667230737315062606124631824118551673386145948038628844901826339647697206972046877113402863530236165302421432416178173804820884000806569918415946448298825995473656938255128117725132994698507663444548970616281676589430876891394545958661514774287660575880941298147922474246505328412136874126478939445452028011721746345394125969724763297627467400790343413014857976601937864150605801573841076265381933641618557026178580373351339421585115398368201617030690330791485683748683699786057058897943890753463546133020866925219325732820835025527712168996788018016804314166899393085242075538171661903482221259494805716394367655227924930036513149015348508278688401254081440818445599949321530869749028747730004432285167613262084772722845542776812571156205682950131500745791792068896365596239278564188256026499957339439123587370625656016801657955073344674896011022292987467480930407339660903187155147831153867744833514574290502925864588211572581607713094655653655768124868517393117811451531434949642536614374686279285378559630658805156329562308438919487264239204220005762109673399688468754860972839733840395923319952395098384522593882067398743952469427209615710534276304332340890067833326765456347461900795666000623113629605416683819595872545936314274211668286272952997986728220691216674792445746504826106280173354148971401092325348714964718886607324332969477659139695691005362368919299931404626957133491428587915481500449127717119654862074181517809397741118264111951139547336256889031057629137983849543237734901910802562401446101614616265779393525490608209653881544283082812893598952393792259457644038324821890565405788251754941526978473112012738284023702009947173143386851932035840006272396844617595382539567766285792544537891358066729338097599349804604828346388164319956629502669505020195424943925365840320450654339762975503243250205148662142136899247948756474466765697729931495561969955624161285948515084652352909299519497785052725896281093976389412545108906173002419446103462730156357618383587692789103766730276475104487719645615991155958197666418935013980919940244412970346411646649167644869680888913169400174708919895034384534149828503459941419770398743830431615110309639327838978706411678148310698936384953635547926183721491519858845588806590998817681355641505664992035310340497148057300358457180666504901411521731833727814162287785871268343050377740594332716000848071865011576829636546538668403799211826643247758026211927452444509946317879496998759867024424369554903741237449869885113402622718437855601256613010497357527409021869647891908261571930198184345980690188374692017331578337452867660268280113292808286762617122425835409732719978180539082018656234425083074035381831792729711917764196482553584188175503002820859262062800887085791832656550861855935901801686327796598236222403170117654811862890146604833387406523760071671916491909002729782656532559964469611463392600750865973647270960420924262520586735601951628633969354907055416524969160297872808437019765125638139756316929734006068149318112756609792051135435667777526600592977269931789810442765934012698013838674865145045438797585980972747388747654993226821608686588759463526714692922176187265790760317885356416955921530696923789322969426725124027749347489322168593998165872431321731310050262513514428081213168235824128156346423596002316361263761087501137503250200624025186914022901207023320190331832339430923333624150958298677215500176933379602483638045427369761600771313693955773448412394649182115354155101291137875497317848888628645059920649353243204898600844456154966635633655325138247318874239121680327989812018064711798402766475265672374308217052471460541096954475927463733836736319478774856524746734887635895908391881798998062428660080107434840675236657304002827433944046335855379822653963245698875575182395031297727615054704828099782308042577540517849707340146751758720476303059562408390024930885757313279759437127543744257615532491097341764344612181008171777887634111577682650690689060671076082426342835119554827545918490354455454193578356596277593856724188069589320776877630010269488889199942309094381154133922236085647795453564756586720238783986062361862370550343284207784817089563212786680689034523125335506194915832517908637292903559391898825159363112087793947684799098249433738138908033917034768184259876612821101422606823935953313389335852633574819751014239459614420494908697853084998297912262452169900717397674387015831796180520077352587877984582752479270196310477584616560488944814876909936184835307943523942746256853255336199166861274799325656319046975031307441165394700965685581425161909732633380876356877465334418507292801472331224256085669793575850143003851861277926212788667327585059328352507876896604506791812990918511130331991448936237609316196914316436551525924706640474431838711202602093348219087100957660527771101181378924033080779941181498944639244660600312683493517062380983675164935286766556180767402183736527940143355588552168385057423592337584127497964196064741810016637351052410678939930399423213714545339310204986286937817504603795155309869102888969651120028912583132973922537027351391141827024293648884592823577250550709457095843567909778488247768953293307321440964123319648720164953164463170393202899983163449816501882944377482525035916204610979614767528871442823320981544223918532474414281254226779880849552465308034704382424773278556531000582599442952102439249687315925253216152233638336869203683111261880251359625726730718925827077443381661948829010192788993927735424597750972418255687523879686879961773597279159654210408344724198246902356699850130941466973820705431402346032888343294262405318910957148886086275588750868104457974731517096238867254594362794157034557962404744370589589022580514357955540834796108883018129346636150124276035480231736842694704788324445951584573395290447718258728011106569717354787230299201493569721962870986064638284915943975701722615268441489242232550112054084853330620539418553347098967854211422918153595311761623353101992562016294865762674176883901727610679834503513238807425354497996840180310195420487180867651418587767552473961561398033451339934833243931352290498510351272496649770956855076469526440463338471034435797943452424433547843013749402399113454891519866235126422226754693613422533722573779212123827408439578334589191185213019753031957281191512379595645270340973370618968008873639383165466090872306818888304598692870035150583713657375137589563724996178502438312369535486705999952872983705523088745939727218866702874831016089598677367803007339623041236447917164617549657014936370998242811696377361305556506022227763638103509998649591595915963386177531040488847424890458601609957979983657153137031137810416916459214586265371733477183564661080059497089794332552779371809840939447907460913722225788712727540684790666935622349573870803519208290906795553307380695608992703161891939685848138865727143320808653584565990405246400819039788656809655780464764804420046853063157994253496475365797188614141189447051700410436979517850725362881193099750294246690144635422032058448430732972158666962286749299638309808556441087970449770602780026423440645735646149613268515081932952136571186630044114406830336562483001157005845401177603971730123559590822461410026718229354017222812744543865652363021343710369682765143507328112565615114288819078026715605699254167309201759756729268576107888953068690377361940489623896884816010558367341000460634944978906857449099229871742428105274834126322248274205083056802555730764753147383423615266382270996826597574310093652197557975671646248624799724585240134278953810180731608491308590921903395122145443243038756688676264791381503937270226472410636942848979930463831741966251397456223601722947719171624955010035839674557811592405353447236115034111141294148798678644057359539240493723014327291181758159932092111471419776436091635174652570807881932410637144426502412919149092725460408390415574879111660740105396841585044099381351525410777741298168328088617698219428906762781352020095481176512610464987106169027221043229061568679737437767282988085205769391570668037605844913664428938370802568463941146413963219139668146989763526004764446292348540351592824816683212462711537492870432399614980511178188150014806836777548363490240711326814963545497077245099137098657054779687660830064829610552841114634656043153054969160700653250794389674489377855292554045191369286682382531476780702311220745505681595088305752538402054094812929405289653504380990511898880482014781393311369052280176613789848533223798985234518268760665290561211645915736405173293797421299384370561857201182768744457166044942559782881375022326106482919155663069824853598189232568632166073568571751736281103313830039067639466914688497681581174961818993717116681673610321288765177853947463254877327974700750489001478525608686737970524501877210828327460431945327007482445521778500560576598272660848328424970898119490367936909044983350397802742638777803808858274189833891680481391551288455559874377355329248873772393887671557054200423369689623805275896594233809918843337986488127133264280735758571200114644352857350957940635160041758213840764769571828349103103669975688449032122549289083598226930614654125013116373838528757482324942274228846432402083331766716026520214952576148605816883911479337132883315287653544230199278330066911137259478968214143709129455992701730880624705764327415852170182680014286920994619844210738434475827014954325872214862874369571557161770878058075761598002133097659457099560219330749294168207165628253759374912359855947255827170826503547115438245680713163479728885346082296494215997841623400954660607971343058451142224717645394208013313472231328989251839341190967898158608352024367502573146605620669286229461475361726197022919278866465524910341748271477663547450843185223882203730750572813315168419594469564675037296112199247864507122622742986317176455625899103041129396492396056114804967873774272385508207937656487631477752132794871741006487564380957402413631118625977451541034059583274648438245978071065562469637264935159545466568574726350736174409353898201930945173024948604095206331705692374306554124197910152486190064268422817042595733852516872235170447165768129108279454360289223568691945690926920046523373057027459435645336775365421041661010496025836770122867312942877901939622978199913292069464181392399296291948571734709052400228854715020126981120045921498035824429481133402051014280421954343386274372066485064555127094734356341097068144125598286500625056655107351144517563104461648910494664147491637025169117682820153989849085437530095438769069086748240523442457769166289684328980985090612376191799577326136698048622741882063430342483360044837871865326705513832125883378818872165016270981974878050940629395289856377995115297297371233479353328968917101190004879130351663488836327814643437604509292309535375087191487980630411018235593226719297639526315975652214473407500455527873077818128421021225477926178039327883427500536270037468406266648207584457327050938611870607857821284939257424646218642995176432972336114650230057934596099075154731660595499690047364664653290064246658304415800484577656065947818648942850898616934839135448758134773509737695046593584470212112757929418531090650019294188056661954299621205618006035355875820971252176246565996380962304769735974025595284013659665107073929247185781924724125680787639422655482616193757263345002260960966163238737027745991999640591576906662870090301893229816622106700171369193689423418500915936400590329976433295566265513007196220393899757959822454606341357885210792204191866155127636300755633265186796293188505007297735910736548968297983246817144743213549196295699948775560636538130738680439557465366935119619142497502110244779033428396546868795510123504901330157776113905844831992539636181715508720960365590776228498140722870692466823864631931689290883712690261869930133351364491527544480992780548758046100637493717713167669070015866659578148738394127973587192045168425220849032690179710093200650337179210108862730588202676303565998517501930785687133938346574655157946962326233823060683454012342013553783700000824352470876083649395392028999264403809489162452775449065331039588572638046130461860914080942034259336141774432764581540814343201819225329802943959750275436474369350500171055525682462667460216446706176298063601364734940163956531496782702118380811299841481305831405121023551227552251423580076652147706798118184520894819550290572265901626937476463020043352785082877859636741899802000381688605683488489240858871123563885006032415051169966970715066004545009190702301967840883197979548018724896181009890005464876681964323240933185446224814828206290818390992852221672883514339109497730655817442505732764872144863547346051726309001028472428923678081928984917381583962758412312556952052851941395143402710424594656987027303579705621447575488844973591981557535515526558118153984859721279208659148739640890066817960792000273731708997960318244835025619715529943290309193072785873802323627428918486548469280578537985832852572912756694640763684215504115228124848615736699987744304086068553873924308693517188150426986801734564580090168350198060518154356965003593000822299164962791594903623055704577451689356068043050504748637788273481790153929996972196016453254765804794874132479285661112316197734097101476021150265946377514714040597384245331315492308776522245393651116222659798887889936454183346712726076887539359727173268628545626301070456236567581577343678938665572908869813735861174165325575478320988503893392614025192389178400468443999947645854866547170588546376878442114302335250236343853652341467225763946963379303751098662494723480252383867298820920564754341490055457179081582727536816104557221625970599775603513366517073591092138980075110659803625238048247336480202369445341813514071082499134791646493303383976430990311062418168057349464562008574708301929055728432999466786081377696624712232006096322960496518680633447209884639769289841938063158492448409637110993112344290605194773034369153119628290632037274381857829729827981998484775799378189365816367640538269936599779143425450690296907359839951967426682237636531285467308634288343844490492081830394947883097589886418791953854149730842505796785028076394432033891038711502241093148060892888202459159752099409146075637074904838514538119100497723036762651741680005388178945742121790582706898220035871228646180158086672238860647516404654395177008071882409606840379893428704419481989726070819518812975348266298667159981701763999274605500883890099089198720735559085142896813804767617134844777082845843911597985624216968580365755779772308238330958471211697623443827231898995860852215969193396590323765265560009987395215807352653864760009588593610210376861251487818421528656446452008554654660744223210656606133864240474436589386698020349768056797488626875483978899771977115078057734911894040815645207375859105989275939815311157890656993656763659651037153081523533257346776752339093425293000071990960641186011946746913183709764281087345877669390824326854924774193172089747962231273104343884525213717303313567987108519519755976782803032543128038095136196590793702475499745131815994569026928323825118822520011858156653249240313432856279121653790125485700160265243636457018034452270981050285029979370351724998417852836001270510162640269300784017634884208410102439085633388664848666260251013345559273451330238555057387291848968005034521479175312714135914118868943372915907387591463939923505110417872192387912925042525937122299862601546200086834140668060885614799759550263416145244123081812033341772143826629748501034476016014189985967670325299669796909716275493334873352654793218124613396208761645417396932596784339773423242268308333754989857912664674838515404033309920598646607951011810196996635345019267425860936096663136583385526054848713556287974241201773041403729320581867484968253946621713061341895162284752109561162188581351808899564696446462643659523202727080937623826564794276912750675700085843062186434188658019579072387359700394582429088967943348060890829361193976669947370634363702859824315419700951773169160591960071081956324031064170776584358576749740326786858438560084223194708600379619013571191978164619276039341659949171780509719688623400456593033578529968158907479208737584006059802520983821023356812411912549573829938462613609643316117911705739824602623498740087208886493701631011162612270486179085261627608017301314138464829842313533430889446967067428794234865496598478763410604629173319746181985738345694531431197221587148536053830319954629239388331203230639512201741127954168578419903883926802743878009960925038333250703015250991344420736484138032558246937913926529158429420273726151930472106909323826049832087200312514806209406831591836012083892296097979542184686773795264439869071351200353394220744082088797850431794292908811674391564417722537968210752174610755306849980567667325107776040099777904715609214269524182372829526825394533546733006313380826065511874726312508398593076915271573906210600908282010832348948767771977862417502214279152862971475414145859105736932122996019755193350480610235912646491372994912292224181445476335876692668436028841691617016682498796318850901528447082704468637436810527852793794142302473704924245335331107373637093962860519559986543937399254980455141977016260260142560600520824609303268789477977774993663796258231158094752700532690011029881038264393563341109492163222306983575558708555606293523695604763613084969181565232907196570429971800200392332807618352545753126309057138908954252692329871665319362225283651478459825988483032750177872561645315651268710393523206420381531881870876620134941513018031498454421343228633132862222667833732721739174565997268202015233225107504280478185014980537862232542419738443900929915319067157691789300490091393502854006883345613005110918634528807176468282920462643422653626296346994638788840889705730245772552312800587942954822983177811787281401550241063762680253364039624870248689890768936618220598820616356166888806686868184213489538718647420655826874072012500209413341701212262821492905832729871336237221130852443335408185398630438969024114667484822011666068340189390307382551187726665677576538708481317002907837050385740430704729609664904396406599252447973021357917985053040608576637337717600535699204482487130685119263615542426666817178153606035091220671246796030014567706298265622182478099478321652029242169430582249072511163232203822634149149840756112846090193816082236777905330625798094275732847025019881782659597706137171150796682614899855764604430641924931508891910036319650569006244232802464939227283509113757028155478770145527074772233554621592491491983193831824462246448850840537535261729903819614536701466333577561098242231628631806175422237622311373880908568684499841437139828632831167044694126498369681722475589146697016230995971681740058134673703805586144229071220393340519923094398740757324786693781806778915161352325216482232588783869794040416348588779511510883787778569089540799561549759874736229662173557523899625992380352860597308192872197070340453459059182836307336855231030101750384605402969546819469479889889961119616674469386993889814922415994003714063811277266296210151985540024713341102889024363196734753728261031940070634341725791545439959526198002868401999224720062959730004953444174417602909343521771084960438401229009540202093734772919670378688059150389980936204685418753784707003111830814183594517283759983926459577944402812079160069276224071060347208922591027373131990176563380395680375327777844663402880625123557687154327748584103440915676124097212370601211425034838132326734400410061972024745111628644939052091069439079870271695016469816564957062722700093392790182250028963761940813713682591170181991222094450627794993702281494402625472857579879772530103033726180175064111468642776739153552434730229491235164963355450021389006013802614767148791991259536452288621210469118408131904844311129264667626957419331371157449966351983389677584288726226555320244155388126051954241304774617273089454001011285910698943917114512895476704660946367499741553830261177859677604390911835807469850124140835353799957777635707959533105891249006434378181490282926133151603604138879455970157820133832936262696109328010915220189988734949829808987493905675401196383194457264610149839739994270247885796106524381636944504152998992467809468906197286339614617302628515007296415568085705812706181904870644918568100226950801215569959371604317486376611132009535605026792181352151866910235764868214395764435128111422705551303775668276734189386683742681953703487536305428310576742900979960102590928462720289696220346740666157692255894122625252022393352550921538932895304034611806642636774945408772220935021591840500725201274446514744024308320288447040473938281953528478194333258665038131052899545465320780696344802778671772654807051299472791156257118136165497635251390251899065967404713846247868217297443429029907795785291698682948285873146902887720008508150219973644086342189944253313042248031487182804812696957780465384191389543306211523450356521557134174683867960791349452405425172138298080476819565534732043574747911022136478458812672729637170229620228931063383293905028173994877302468136503774153827005555005273754325350330331317210248163089765808827511149170436393173527445619480556847395404912652506348651796196388966920254163725480681920851239620643629466305083720419305841606351966769336990244842161516356520212851173835309131701266330014359914949515989176195968781208124028805102520957683883151822035579504694130703861538032993074738641084398543858393612777238289763447512794068920097760065216339903519384606084085548341638517284420461326532516955124883906108140779270746998013115492760909180806628914273055948318018114397380303712299623590653854169060953740357929490036245892871362129161563099532770021351163825983566006240785095436260861327466196384427828698073757032275987907992827694985964807511094128680255702637828355259747661627344383699976280317645037443595967994027608332718976517297933723042509208527097005175551658316038105221125850907353370956316924955879905906533014186053615048994180473304023591653743052425185992647457121914524514876027671028380500519245621021710230858965084370569376110049443982577864834759653269188188250537198742371572757487878478746344063422233348841682431440143268511928723917223182234364048823728190373725149439414928656138235002278752495347654110281911995775898867790149148886931695130280683493393475054406166796451513147218093557623912461416597507106911092162508657996071029644609046198183356757803454542092135925691780102479345105545351903848167670102437067156958803643258559972424973345687729338334372140388581780460414303417969676261242981089534205135592286586271950390346769204206900602064754871712497662374596393003049762342185743995474756390845482796004238324307822331183752842650347109683605656416486221922064856337154804170033275408690097851070625511025535339747704164059828369277249284151679763797310345688247703688174654720059370650583237584734197776730429578610631968697852383882219501742741028102515794836031425195683311781179716763576657127919570490678559451870702261196963504276182166451834999525806649617205224493401952339323542951792766232771533473012080214421220616714284438809412293303271864769311078893695037185844004158808997256260109854828524406176618263798217694750321413367070313089780249457659041979496680209965962838066004785897296264620446343841407369343635552055599551119500697032095183309300152417452988693985764874091631765936106999095651136887344858825049358219638682735254758834351216335702149282050677784525412281190321710507743481928842593970320992941707413256542374041502171613056479357786948987333546564144854481707211511959218152050927250003221033039379275106525265941267965017106361020245121952305475249575934188152091078320681982632670998714368739544996639577247475026024953234837901570968313589145863596800047267233099674143091109212107274951526353835073064711787255050817613645029385013667378328515859755534231563227178123255040819533597228252551475299929057959238457226023303798381010281390250293564900529179613480096046869641097940230289770078352182909927344222560911373132824524869141198226449348812960024678591084213328807214530688897923276840006750524778320126274493015378676180075777563418804004289427539395799230578772396907148616875531055992907948842848508206857517210466998031728354246822441085490757975808824415547349010159327856074914665512837977798946143838688435862558541672932972924547686271360485998767581731307952228710481660849777541524799996485108074765735698762527078258818344120094908511044068183498248309781618611754037828033499306846912470943430900397702011016169376241027046859373636025743725730653875391659442318760889483106568774357736815310422272280684325783629786028923119712101430513962935406441347231813413221667603563900071810520205280225471721768052514815218501086952825614477008255853450849375441000587410523374482537463926767435857492196429106472231459219881817840134651468659073177424005533449630278419814821997549699161262548515462360140412231558123030788181190859583379861940207956999247957048793315279392724073346447694216774596069924496498276815130658172158339388990704626625710344705652056528101046224795030822434724794168478144641226433869882211086285090291559114026693574774101304206630135307352303753767196777438260065070900945686415371697126077400634462321003080928200536730684360326923420783498779413752542223905667620509056854602457709690135808526354469184963659576874925919957197649442383762388857137874362192773362471810893584846646386611668955346781858786047259459868903631787931557869113835923120184961705041476363877727505859304882465092410171994174088019727258701687138785202151950843273784237158206424124910874887504465155618631491398478405337843529901521349302052481688324381351320906643273630906381935788544049158214364349587390936065590685607189479362814074853831349932900224880268052212654210502227440867963383508860609143364313220867446699095007566282111119027237029833562157547298801391853353439176054392940646777716697077723488193680166746024453521363245718979673610975546011982979406045456061177575305566459034294978323308229070321087838253213579926629337053181366566554057129570587178652544571989598703132676186370758982681644461135565734907041313103745333366864116401100350269846808622763180844366672212295173930971934335831010160398871185991216352071643972116569311970963801248776536834223351377905012970262204930346000081623407892685782305114638601956752419477209715253511678499807035055437249073548749892449747560571163098523293954920444916512295420772359721353412195892562709251812658755000279353007962004557464854466456421742746258425294717361387152112720486868713127828717063261352392233527352919108075946731883354284704612192557086300125640858022535839122003295303108292482400920191449564688036410520731594377152265707932056032836381120245179348556967934377170747794895332333549133989577471141718386749577893544345819803423001809510188081766150922354817861061607991675426095148984706014598164945054084986206794489265568313810054962969561363272114891884733170832912251627788095017457665483919914700115003495768032785044595508983918598224895929987675795668495462829691323032804790918417968465428547130252911040839368641490300012530115005972752508250378506999972519772960009190707017354543630180690055732335171782835452588833834072131757011801064308462142519671725923004741374042651349738463996765802473615337923674260331022004701013032199443740130572540503151470973536098466022670735628180626508396229245111081566640676734249297822902876325330513338711356950640199503215041800254787491607185234049479304023142953092058656823000794138969742687651868312521912584251029266286772038232905607978457973648368241971961673633214585779052796528374712569846024902755269495189100509406842140799393894003800207212575981773589733357648159112836693661111248818441697505073299240423957587965572311654653085595301212741016287049071925745299316553765865582557446141466669652855386829408487531977020406658792187417706263567575589496385635613693001592097736042130639733042375975611942575586075048425682359876161899461816282424453723475158382429219600992034696481379603194215712562974340929801111109746330775596819607412629549534185176174587692255805069746772465418174013323843468138691177832078789831311902903201198033480830731141615877465243527063255981454891230551005809176928007059064911175555954341482755317491930668967501962458754856235134185914496454743492646400190764145606197379732410061914098880439369714703994407109577085707867370105176545905366669058766378201373707208669790360084133391622698266828979695000030391146518811806637937332223456874844544333589442828282996982825369245149325289267638453606824153412161052385315646700250132725892072432954026008390166448239611374635007462111447966959964164429735916610671369842220968011047011616938991850712932221735254540737332839281346231928664931135164369577190680549412489941186188041217019984648242478495374043723741761800574506981664474870222541699832368109356061161452318598352402810553814193562989987199337587761939254147518380537820890197708592539390752726786116745878883640293818735719195486940043749680963599577330729635132017649377781626090856719537086863970128386097160117903185787200451027622666783926506746333381402085767462727401517235466337145121427878624192436079443427736853667417579410154617768360785536932266564499005980798915451322092551918595852967332895554332721581053379391498352394812471474950410103872797345879335427865746274926643643351675325821167525331390521063054439109850047291794584966922333834277173153254815224317955608105380262716099438844329739978089076460770711828030729832500220700596966018694427087187365918899397284734562846897139078217755463201159643556922100138732004474331201553414682118119864389460005880961256094806716910482530018765374715833933724669493587029842525427595140039780561944583135882084058559887311430126925633051194820191296881033211732682881631441262488830020599596847310222951648091148232750994869042873083068321018294255717308111718070592437334025616004642560813286748054911220587600767615306440513496678629357862300399946338042868607771684700434277207409047226455241833395565408193639379375419575179182320495222980325564682462354612222295534619194147792578852119868407894115884118464900543637016513119324525261350233980342760772671712301598689692465926687442205184036268062096909330918583816288228094578286282462216459077911853765482131811504098552307658837720965951939210403094516543686423285770261482910176316920267816479728158988375306192880110466442097463568866838370709278035854678454862721751490547881709520694609048429112130497590844052784825507335738242063707349003968320119591883017557835175244835460735987107104551150376189231793895922599385266136946892605332793280056278348774811680466878970513264011750207148243305469169448314252867860571787771495242370491026247901097095249089150835670102493073365729792722318444139484563191990781941780294210822789251341157333811984781030626348143280717106830695612517056721968755650080717401617447945566167606918429852701761651687342564896784701818034547980226022017173788486253169378689718198676966220933109280709959932369735265720258869290130621110580761990191454945179789499550504350166392988008345692998615631154903547386747560697285016268659411570467083106698764558435323194657735733914952844038780246917746680623012139659252508796378650290091299264799514034877510271106195039736913533472983252571558191409946596825190475584937657674567473854921492214355799874801489686948809237750755079621929649747774299325442479657506002517058156808851593729202672726552542017278096855197390965507308301011122334847307785447856993246646051358841907716113277044730721557806631854435697920686727011289899142477235056880647946624580354437396268037348581338185361917758553376234353823688753610077719215704148951279262826910240533140781822988757640740374728177295481173312896155885483131712559454286620955790901555087614470121938221879007722253765680769614305717141038286177060706751264476213633730561178976926090266806175933472796159041228282609157307512892485113254690076498963911336671999651197089506776265003639531859183784079294184666279971832882807502359440447749409855125821808040921277021390135036563072272176579346672396482241854298728493868551880735648866714363138599458263283521948695597543855279086871779061283836341187823030656139963440247539156135792098975519726485712391207660305645472763510392045207061994017648091345323950854919281647037123860247383293679417291017839682430746315682177011147729231950377136747906633170543309550973676986425077643255858993155174579408810793327298270940205274069163033773574692349066512153478395422597764648609320876348669728978055698735674217219067929374676504027013893475318249618671775396862701960766845405321583458091444217308824569949451451398450094440447068432470950037658622240878381703262638083504034635552384125826070971576363801518029380100361516763807660247403882797362715429171207487336921404949715184442037953361193114533097034018125836464621258200262296376129604473231590563795761269020627085937725337023348224333397714737922132671550989705734791718892000389661737073917420514351633642172530572735246668931432374823325836804326334457393655887857616951378342620771773554906764957701258503764225067193146778705908203675265613462095655490128423332872235241269373045712728168372339081803727276299691824766317255889569905323996510383652298719675206618616252174699200664023893801050855643561084351065778575960645645739909435975395432141073512516589379037353871161848212155254209345882648684245032823174179312066357320261717734153369723844789112434786874055693522226533641119463497856646204908839665829249477217301851598795101821933958514656007580456429268044787014365019268009659561237683599892402564123117119908483106425220192943713174692434622623176438389980964531426938708154649576847100089648714590046701784051747805040274653289235779413860383298832479547635360009879148363061489805538278084858253111054309423371000257470096667975615645943615240342585514167196238724416461934445984315212797646210292863732847410754199372081816449405347736611046464767812175438086394871696862498210897075267614925246665374794742180154270029238272907337795229402992315289540138691740094913575297577060362242398898655534743080511313033889212100824000614015515896843732794700790594943334840902678384709193999024523613678988627249010439009093189335897458474787472655500884123871773317917090551157138348511330554660606286918209423576078053865965278366400365213903915714649903914272745729187249108814365456162633384694854945750215363120506841961286096935637717421305846528050367230470217563380107322103338550536629793384163503678084852848851014346081438688004646196174503475594232198862075046823557236253134464676506932471447902058802089324101030284794033068020806265089285136434470900937821637785200781963353132706800074660422688769522183239950185729757196686808655980204013189827002019041448204950763771043086365329350203100180187359382053992002865193367539696628845598729646738767737313076969774984375047393747832764263257663963735059610178261774439186656505123161932828651254978858408624690189831918310100592211933158100381558160630248220036482953215068679578575209738487090746123463279010171426207007928159510665083195364930462204707147946375692917856164374681404117768827973411431907972771233729619049571064101258571433978508139702397449743880776010079809015750432882332511858388246659093244524687816409424670908375366288736317296353438923028501290664787972573021375092548625308470202030234407153598251020673632747210200731816914321178696922838413734958585441190884375062740471342013844607405514514345461715516576632937150328600444572733280951980848239006921258374398908854750843176780681762345258634386171498989721120076265961992025766760621769934448210534005254852261161566002375131736138376791445330571842354152222183742230055216581742435988628121264251664884277358952696016349194015894301208822723254668055086639658962175276892644026959545385625660951818015807146711365665819062659613819047574205500384794203421894103618008531885139510510152979089147955485147164664868288295391815892104263007201767907455384186249219208380611516330862701747734403153714440038416080938305048967295681006931771879041515488927788089608857750879830317324522272810537331706705495132789874364910579963575062124344054320157363856612543126733569648206517075472420254257237648700385450592636792770950040773606963498758420675881286105543881615441357012496275180172261437673516803274842667297912652762597171772029012938127238627626989735987879814981256353723372790791789038915701095311261441192225774736630836072492747790241791175563758356177205614347604006673696005111969775259178000296682870911642840089014914047769456386010814361894856661412935546395767081782646218362694284598186762561550442039674605856356523306113678543150952339821772364305922817900203886159203479843590561263256720328886012304657908240188878380317282841539996110001656859875004587604202887469650031319322966604851005856327813799199110379048860758331907026064836278749405059349897757981908446553141024310783841885148172568230059760281978276414750881696282550380826151132554184383589660823171734293956449015247612103362742930026292468276960240559038121732230366224867850470622182517056054033375715890492874993397563486916502072731436245769992660772860953849077918084131480095836393042894590080270492742404694418955351824070901987823772912177088788681017105844036500432648263489829653890876741991299623737609494385475933783606667777490971027957688885293374610368769631483122532661671176838736628854110732653589663858929764799263893584085633191933319863456642494861837796698853167965074461748264080432714814393660796058672599064843734824775730266487228931211404216998333633939511852338284423117808805426363552371059560834412309435655311415973219018121962243839308209550217961036013289839402322442864297458615160564600767904619027941782428124715641281757510209242162567260716285640798859423466758200872674402812661845907275938243963968591265694617969758601546346797772464947136578245718723163137151192085866690190275964866997386916143417002584315537239492812171750695316276494980335768267812206295977225892030866330033717909546908971153311115876934877983187603794560750073333539511933842224507729223503538664027318542156979064150847723157233269569903155909752212838897568510417010099017556939003360724455910166031443198530656594494422639653943886244826512403365051016470207368346928455911940407577158194920351968655489363070387282015994949477371877680237352296085543307539547921735849438305769717416396930622911480637245356673501773466641052303496240140339976249884700076728402499316220691165310669863108252227719094751231086567690392593479932565258511982942775375388269442401249381061347441062813047073722714102824233764891460325961054348876363560189693699539039335411449613258865038959807730836501789930753839536022385374772056914267242962093258680563423736795278591843865450077107213537756798685529229810471372206413732320996191233578314029273507616739868973693704301773240172628955435612850329770814800948512136869749990476007927685741445011366497768584928232841660415521713802662791028995451671913137579793152311078158532870989387675534841213810858410407281689163302464276829002783251190118633653617482483576772635303313939542885708792914017020571930397675069254074263135896398608429895813865411518145776640564463486535007283407842139691897701112057584092455091476310591223171445841781455776545770668311936475684554831395156088358879545594370581082508602023566101198853971632282495333126593744046132044403731505620867455009193779198662922742114142085806656743540116523671287286667481201192214779059520313772074809848536217730596915203883015332845473600796945687600157438403616686282909039180914165050582151447769280725798353432613263775096954617346256387575239542499258431757137164176972541368981732273176424922842564679953791644837623554462792338098085271573005131852006552179712616685699899315911808129725221527370124144486787113978864690477096744525526639635915859547265171961393086035933807726725576853944005362860394438060526103217747286107999512859661871940583026863963027828029831917682900934402813572782444015365526588003702577209269480128517217363143739788559002359102648868596924245288412225516474814491810984941299786730758114520274727493630739914123427068713880791357171595068869985619049090024051933065397576703954689320207802509737625653527670956992480359507220990833190935012224528952175935125580500864938134235971171768609291417610354492404602734918758827279815057175094412677760097576005579472572710350842408355630998469570866084591945217976162186331088209577256282311729268697852835713950319898812550587381228301623215118096355299644974677314677333566244661908411106066264316538317233325541996649903243112600582168125421303606425441085907154236337235736769874468281241381576196644710020452798818729702161793274013452439313228848369623991882558225261358304979394551387607242351261188800572231264345725205927491780460266092589220348078051619445435689278746110174477652990905324090403778178073717218259805454646068698788748843605489467978437338611740632114504282889136613834942455499779995294973534392514429303456215091083049264537975244366293792695117777329578214867171758720331548852048227470521434975722117509598293762799514906542337624406276233567144127040367772905389952711647457324005052111278635573386551408634192607050448076349153761905994876137375632456225882908182227987746984420762929908043268169935178682650821174037142608451509336274228659255167270691115992344653626620174012127105636603252406644265168048183908369959895578911244234518818571155204247243806669687817134010361866380069469950448690026192319490687715624860551962741343098119651268392091347263767141316789637834086959702897827539319201080249258141407352992455439368168487425213187160160222888263799293529711683653602959299856978733441415364032804481828933939338749710370929461617351313484771956295730821491346539715474595049925965908810979325922658623030270976809663286047644102062805657312028731679006591732812522465842549201977315026333935500752541114949357026246055297629455840460930506066084091888916246009180527680198041842364945836082242720726167593939672933268576304875428527919233945315970392698723973073377194267291436056662240609275997894343062854459196676468512109501646924750394468480022318651120890125220648959685129739787983348233026174595133548373936293952392257596659278263574667305194877485679366822979602653691296090884747977729422816622227891344126283577201411031579007949299111152872361895999165350913288032224768004381043526645413351883918568014524866497975233464045563065302569060698335786162686059896279016323619189291785822102057412219387821453972807617998074617126802406790649552636974498861867827669189563486375133930391157849285279010077972344057794276798690930424009489978925907923412419573278417065805802088173574565726331460419381910422879676853828359667467636906637994001289833865567100528008011510859144765530390564499864779284340343160456637818148967833375515918128543018350392543565005128325493542868380892675908498136069758442657682973380679803139505524399893522862524309395859408662164471849680066072589788463882274112840413036764899516568933857062276047294279504049812286284620014116905172765791859222859432356358045194025565674463528499096958290023866088639325823465094916780331105880446079970927418538408422576835639956021514340182254548731051998272497417123874440485886321859254051096891389264653781643881450690998767858134275888626928319251371587948497364938688523762746974047133232456302802402162270713796868817328190031662057812666621698552347319398791533790452389599121532485580603058848310404746956964078494710532028583963002948053037046912205801412218803949524975226589460634376187543105432339980667689908700395217184090153834869133551856912945004487194861562967317441927230371767155688186518157076386596718230360023303817117922786271170413070985218808446328831252796219969538928457912594397301169920629335821252388332211801005690537582863262057348870227331957604037058146139306131295223943688519325953146236694055678710784305923200083047758932037024375077318317494988930885721757164893101713999332192503003250426741541208266435656352704802178345843291675860790628830895233711306197968946951157765553297033878088171141358810713852156180043420446883530262756982665103752601087604485841083376549253864799956362934385351636714943179304086449983118888570077976885270376405644807597236808851081378101100318173829391884125367540897466518185283200575946665316792029332417211771655243607074215238551070189803940758811722740847115582162502177773973788868973469102628414520940807285082500764299234289345978471538113933161738146890400438660969675805489332661585472393495917573961099607906817213591362885221405921986544171551968921513591311837859118686967766612505647239952163449655786888624245565105356574545296555926571366619375550269148723885183823819834470642365304759136983997400720873489653131141868116274090731920609439891483500884587268602843263816610198827587866915984844781188526318412552660451679984988066828096540444106678533248513328491140440511344040887740321526095404383229653410507160974964760030655921588512282324178711558391092759117292764749926982570283255449399631777464135003429655904487625594739460020334697702914711540064562856147713993559711325468884020388512432942644334572196960447181711786609660644389531434828014662729859976051359295437282971143383315462273401404286415297507565089359760555951574747230155533671298774533210431871562422511064589844599079410114957959220897552414948083739714675360953805896479940268468716804891279378360603079913070732085363954209492029636948818846618742893914167438733879137102658076674051485312227253855615847829409854099008362259670370132842771182021994309442922435379543784034600553658746245943566530696694514290766142578887094777927594278551896568557015333197347348589936099108285656654855865705862054128701751684141466533461232721892010265437946106668265163977009916573430710197517715178739790788856874285734497751096775537900542181778870037374960344186826074950715585591393949959692653957421296515712722221464090285348250624522214623341186752761116890238149912250641862342497253042792463629201739490783141873175314796903587024092208547680771636718311564338993002559184854807501960266204211546829320664526484322577607653797008658098889809512843552053140741291042645329857038772364828788861583768389817279932387506089066750373218037821428647477082024148819156014036822648795002061500610184842824934499305121896341555470333414321820016582488259738925230521299583916434339991881337419001172006075128562932838517621602677190924625200571058534065180856123166405499097085988108927597979345169096368958778121588003770185696317547478200094647625940169647106910294232812782385196207039023061688986464353958122823645606881527528959878684572566235338511767690083328400350228457537575051604168832081076752285712358685653388409677568992355725058956588355884593155471748061501256972072029011240747738103802026190520381640912212794019736093041135511721572569627059236403859737432180222428923001455980479446042768878732104076457252130628081507179175591919572428313995493155549286492025638644578662190532247379060609323259251753535976146808574523587857766386988412046239302335393126162147102062105131662480536574704005014049452747558560241682291787011357855948638985895022858854450852400278059716486489629209241378738801881656395559757567065494159066008954071708254135926133321495738272883061902067948013431568006062072783534075815307272919304891384424331348416537758388118267999422728055538777237819737175331161224974033118784427416925441988871808691458107040938127147215665618885880754721278301531842101811687502168877568335960313149299943702405846418219785949154298746788702143565869857384017489810218099538462330180802908225836306906344672387467193658567801418197158818575015901510777307278750733906962923822549443920843554863885587427534326927599638211120592958520122105219862612850261978032189467429627899240632653416348235925965206605812944015648789908550679232352878049260472551683698435127358680499700324774266070740774031995661021707318077539080746795825782928858624739077481067399292802268015878988573612065433898705134996705889274368096293173928794711280093718427183615861820658900492743344213375942887074985730987533858208110152331606006015305563028801317207455756483730873448533409687592415301003555493773461957159390763364999987734756091086991628133314570156495586593178228844000963979617494861892574065069098368039252066999717696333330663385703419867409069692216329314696205472529108979464783232381252992355264814080153953713776907972725158183499832217026324259901590807572848419984384897686401016448906781850552010701034333735970165209492804896885524169062966684137431096570826965509818569320593854149740566658112288857746111486846263983498238542039087322617530677319836595056532074830031490556577378426066678360258814238728545480899007624460078916398484041960208460629637559960139553001817231293197586041045997205117530276856362322868056977824868914141295123016805115724226902249109723675473614907983788944026346225434468103651126211036866715224574770922859848930317040307207497505433950403615104863242427372293762143853526636222997881447654510616213539434798268447885555679959666386781444258115506091451820482157393638477308867767852068103596421407357287348268644555486984154753551798646617947997462823065560905758890426852276370609709602867670680046347734253487771561303977784268626927144145734064614158981401664261700795236208291729002813732660868360414700242279208846017318864465340428503785208776223725993416507481098488929528784081457406993174005491928168112536770588047224898870837403612075301199714835463181904772208862685895471383365020124863861127261824295214576008604601218706093213177698687949996787156690875058762286189476140868792962826110422821643662290767186235902427116186660683414346559379126086218976712609182735612371757448213879507357779421945955482019027679857516314336890748524079782124101017392140256511918283849619522175047983664069935213919454910133196875287209497752264475264714224931702203160681349492203963053495811013763260294143701478151068674823937511426768828403641204216070521734910743285852631233572072488304311242198630285436413532926868389524157774662276119300573553878990112512459791146852082514491103965072633892616302019407748843806977313229753413606878924872026075901642182051016144100350423783340067583548908333362065326212362659571556662433483124922956510856449094865413350092491423913680274306308266856623505043669525038140531988386784835863634665966657464725954410528360479672657032518555394955917777231620875674715415698007667417637730708867417737053783244674087527870577617260354676131653096954005146329228551748032492433412667096394670581510809904950155583502196597085940075255558946893837606849945359608806488951103365349819095402001326069171765699168146332456873394760214948281251891478481521716929885334889213153244578270826918293375265388913722966006484976471051893877062028969336638298166414984446148365977695100020730843021060339543314169570132773418500865876940265527846360248553098812665128612764645297510731232429769273973171644179629782630196826555533183703718493166618298106538920228883719042242107921950061927448926812202698250144309815896980267081786509076612441949738542405736702584379289107189412306832758011207470284753409298530241755555604300856480510632452162648625914088254237075275240689675786844151264609073022936998060199917069893730915680080078326932615419534066959093289709039931789288257376080153948014798844162231894715440597603321369726552715578130501500491527534146048244430437092098060470843402258711647312656484062387167730539012074102790980478520561076193874452999567508278037556589666460076081506374081734810738623463824795173718967286520716870448870029823605700930841694028321831287108623686383893895143194373053666776403367913047911475191259759851035551550705013487699218428062550798954742870615610634051536202983931958178546087017583241257562314568729638720730295089701498234973296998815937934007571775888895463787475030295474888466732031869376769287290245921224902359695153920034899974982026917710961733242122004652032391436241156673168306968908555988241454972995283242150261292071036915110373827179054665643762448182692190348610466213760707197540295604975161550303424306473042252473842717696701985349617153415018271385934308021758017691589464634355709713643640589221529750623913294530523270017436104951004868822510756274628333536949598366101193093911005097002251618396932764218626442811469742043571643015599552492495119384382238567637256536131004060713308884372176020432690203270974308670336162934547772609973787825144868444768542513258966634688284618552869806770918043603628758086534331255783017867625351406992388884178538692101225494315953486415776400771919038136824044338269363243853464468752573861521488628809779420242882746010246381644391734091999009596813762038321443529293751614881272227783103082440917597860164832449697119590195959494026515944192225147239738975755425937938748953562852557702805886153735165297123674342164821223930478791973637567756798917113461360321771185868422773161889497862072387299630427304930761778744087313079667938085528754740354993117792136912581776342054282733013427898320913318403041450905999389763481324102002795581080842863848176727355150946057067483435565087210859285338081330093076298694234103590925105498627474782680443052439083067934254966034582760221851095596530362298792515602143128560766147160997006948577239380631707590318313363137270269202413634266717164631759034733072650065347089780870358441647046042195059374679776467048456830246806077911959459174718125549215804944889764621447544036218484437671516855362924438692020702168082987768684936732712979887356769068404365559138885278781964035324993254377277145623155031665025326817929225712007800564908207273890589385598109493846662209567513316136486191961218069734175480108739443162176232968887939868456153295229051897864476905505431851243845170891771387728545837245312772010978762164762628443228762083700135481753664554742310595168012327644351737280400399751417141247829617787837472855141258512979159539404472448160803969805785070418338380012688910930800868739049015495639731321024489351148792525897221577538733596651711520222504607527482215555988584199638189151176402057621509120939855054054850443681079437604268502629736826606838234516713615039486572054549159391053773687682491192718392892748881588321879508936990054965157347929039615989905226887856850095206073729498406508704212448046476704084453386258089386995562812918789446680835204282121469062660109737651396030673453139122369965579281988444175216342464184953800210680481694334570883550836345742145995553329642160540677328811860005373571874172725920070886724282282942965626322698073387682665605471890018219007999357422016770044425353102679193804463798576768626910214514791894507238079257826265620407862269349643569230507625221559466466570566191421335532452185464797963712716965108608808167499085959578070387287969534471821969152185645384015867555654501645049398132757036092371797843709406506749351602048514395000785726737228566842145467686095424261085707589470682854677128992277388252063055316114430732743906665939921287320562387404835593747613549319827254537687430479239102210239099523893924544322887880935621876699928925355075266752151267712113833895972028475685282445732157088418819442468556988598495989160411023462185179901105432809579371060241280577305229162271652275837406928527045558389767098529542508425572293277809869633039479642578795340714096145061998246010867499379864120142422759743274679935975851993098659830432912343202153473694062198071617299891757443374562808407450405848578797248603998573571524825448660358917554564261727103260597621127700755459998512557623263206214153664098589023896042071053634806847574420622077207247133256298187150053133565073123514132211846041543018931141185316636802413875154163241960808988828037540800366786562022727961763308644731423805897846034318562723587932586393058510657832676378838789319137488578552210818857135596237081038926918381937811504551211368852521507956885972527503707322331416255700785150249019567960335190529455463578970234087117009126992841053326796657645466344258688653055985226081467440085658312710832391526936200318156334835761267771995251625616611602128222704622704460384716318020915887594571159790413661069391703579026932052730963614811026199185337647472403701713300499029381046604647160677996054518988683111480372320581350876632565902235058310686761408166249360802760428580259171883309201967095026593711963053344649628587789286788974083548678132886236429944841393647131191892972389579251653901768835350947330880516004275746866944197103130927039268788511360886597208292337064857862312131924175058335694378046965161949366791890005163629842952072989278685250520371642459112496219967687658266847358852516651496507881063850526113934493674041948472841639972635717992222561371753553844337354737879967616172007369621460317409731559234194915985009385999450540682184959715533604901571507592331856372508636377897624799092698001281602659189124639825944311604258297612653897282666902724444073704177991422406729273183193554841645909207186055201837859715305188119277740450696437008984516214344935374350301803720195005129837552061000864911821502053855098201952323348789566012406359764556287089720318544133500883000763015785934185761319715699492825217427125276613644206171755720930470465508357498097243125621456246243426526245281957978298848582497207019876804957336393896092667489531203011983252979180857778375474081290147185990574002211953026240386332734329480266046324284869992381803546186026456871239875504782892607311192763338698537080855906320485269418135643611661968530167546575942628990389263975079302188267500190725730511977737829186433164341932963830081898701766258755531818002226498617173656296738352900028856293314535400137117846674929701151612145279880742004396457482311532743855596343470853487880183389766870790256578957803130519273161687398392969618188345204248989823668477503955601274606858702405041726992080294883676867048570939128470890106161833236197202039162039281154498159887176834634307567986771842991002734316146468962063202516906641524804718119535660498213043036361393054355640177008712258552112397446041632876871858055899307586549022390219573922235955781888626063061120544894538640085960092940631147092765816673255224102890948343919904779160560234476075604669114772838300552234490532527431797907873460173842879580295848468086872428098086977257781590251327448233648174472809167046140567709921011694883114983739843197843487679853828175391699078079906534545908507092154894582600358824478213746974651417106613261412306910832030276622082572652495810023740049420699295632694423985474998598616230939393762770824761170701485815241392022695008840755558911990151425143523404425917444688238172318740152833702700375364356704998343286764126815149626602715068182977112643184863555933542215994074228875716294978200890367056916858025644000297654348034963770370023035821081404568158277386865412917861610755311830808774379096876381276049384675531778658805406800697398825480796470584344676297818808657944945130764258239650138129828054074342025885000098318389910921285720576719306937713950339233850709682697964184041949761154060497776305861666011500506623042831153083142982164041765849023668934971937255245998791066924065080928972836507707992699398658045823368314752538064465291926173376762679576755244398635640991973151673741365220869774248578049424307123891929661804184628104624254185937721529842944603732845222941206649120539718747039309832482780025488722200297115322559142935715173257469950420941836724140635617137497774025353468297495988097269104975893153027563310398337447989041981707739787221271932139713049921284317936969581495151955081058632474940491770250790835412665134370574649540067688463771769096045784590083327312558364754229421366425335484612666913972742017194531114472547164761860541454994590560702339960137703893330879517961169283169886317165749514833881566535778987953339324409534995712296508259018417696153835833785201635552162934262398689533216211573274001671661044122440267121001466027537903175831442015862105645908567680039432442497573265337781177657583646063592550810230254997754553920250838710345274350518788317128048035870869606982051022967046907362089699586810534388430465812720698524586886039193085492163444799300609614787430348711470068920099225666732575860325624431101188752471015840497226104684871502126623813187723917975587415791600776138647377748215162065840680104284856800035440335657232116178614237914754310490013316346139521092222726848008650385110533865953809986174415124692218740717626731064606503193701163824724401120431897521690140725079174704621165249156438572529239304850647438375039016075454252363098341760638966558323109041201300513929317910998605233044061120177343004060379728709886246391966249125385519833197625595447508304484357400805937411224103238602109128493364425327009759106749370913929145730879813581934726129684480924893748800670967982404522232040765334870552094657632291057510203935098821828243805000769453865262544207924380012973122648332353107384203818435732131331264936877398409182861705649391457471481977453757131589712469810774748835237951945075827670064718177186508161024085213656045425995797452397251074528099330698339844603067168296996504701032293094123587767205414167124261457371367057166648897373318992098678466366438196689544407112261843942863542591876440335314489891042266791901602142393133474887594158419102500712916046938863399298405524099514108716305903762179738319265038511528057418207892915647233487433874795980542685199601117456439574305696867103781190087631799923867887888856359254620256898631761073150262079945596378247316436433679887443938786440523428858399411005680096245380389266467378824110085168912732977686150572518386986683115288494784174941063046341538714387922728114248263199053265434883442615411224376054833285164786709520571984925376042678612644309175760651550169474043582436339447685312361638741749561823384687212795851472801055765846184845674377215800636798247701166310788645916418440557450159947245087957575279234585830072081989932466447634013725372649751913907721086551350113015680343325264972815678763007995718904962724987276500444992032058853358338302441671408730172689739700618364836253432687030538026305279605052243684446064944040442900068349204260380766268759721280402758537426942961326040519010957430436092263690414137857236312467950133868088159230929250523287929882388882802718223240783069448104108405912462226141450016822713119368457449880124600137446371554825514875871575880880952124192136951007183566037463662125969386963622034140906023193938252073579584048576942427563988366966092208584773091585532459512148738780525194702079092187897237082890076430812775539810875255525160407072637291054013876468911097265410916188109891362074676245696692551664011550062056212704641238030702359558765833484331294952816388293205803422435945933183107845237664233075501777947140333086584327014996364019756127056849976653644701209836413365221320694454073961757616918842972577289675550078979077038979839634967889421294907412388588129279446251021234919620249277684743907502241911613585936345000839755571629964793646949637264484874693541687489853397323170245300317054936419472337548864676496373662074713853556506122020448949521963842578502694935906680440384285452790260456416504334398563649068173760496120218060114541630315921588885937477476388277528405036789491662734043755101936098059470875753358422281866976644726097886190286881617040516552739934000903248769914112218486436551662200627505406307999954202891614840622406855686255823805176289606457606197310824778815022732450987272651908976872018948630073042055317881388499433816778350821100554254822452315348456855141045366053690396382873204113717019397517452742571151043480973245878821470686185479709233225514827539135688303669559482864481496325413616094046736137360229557403117321450300447021350527340017349739233178505444537150269643794509268862616182446352210279644008472130114124278778074370822703085492791329212240530138284995357851112487461836325738746247171339079396089279237378408141456250198403736111182155075724663080832609486736320220058865072661770800333561988428997701177450754535257725479397290861554774465575285467135839084987738297398627808521455755103137217537703686749754754591359935303540928425789644714752155474965646644387293435997498909137050532645848146261779663744579925411903956831062590573809910356319038028023647211001102438793400144727050591339982099187584925366864662461893940356898690952205984330194606739478000302754674486093215882098730234910010706873025529327996000015981274041718247364778944012903998836001724144442337925024593341848952400789750356155007950607616999329497945698072831865171035608996326333862281273758234150223349961275101060179182953463685243119580379979735157021371618422081597370624911210811526407017623953057778879233274218879697947120099313096967944917284232725953714133875342603763827457002289887949636946886294059913447058966257385537564962324171199704784101447155826640616065675936277165059182435655123129925707547478455723325097004340777836812109231521978788842787663338876574443083286153712386739602672479251421173319167919476458980909544908747824668621362520816084272460404818223505020846690890449458265544955287693230422400248009964261744050179170914323539688273963161588052973859392182109088764330931409124135559921021841700850809469036978071904791476049188845314928205873056491753494438558878794093064008958090156756669036731324745073951916364605958181626384394288827719509608375900612307956426581048607070751428132423163503951361714278607605169071632010332203631452594050265870111056963922400953928908712097565704070440840834603516654022840406098871958893684840885744928701708662177893077976481019736021274279141559458264245745579347375427091953888935443869347631513826826632368394152943044316304323234030894033909244068649043348755765771401511379493209740484444396359151044539257177408658401897280086411362067333705590885416051841168682935873596579987865554997271579052733527048993524946747681732865212121570307283727389903380154364688386039696197699305840642503815382988974801843181122060284806976865179507714769030304903583018036354000167502769665441054461284187535727423978394567932929404635338844584683342436514915341082621626485605443550006573859231204632450102610421502257842973079382733756024617533816374610638819233832862401598618748459026296770597569798269392882865396284338223036619061708106877493999756458163748357701681035951335317120862445587664636373723989580073889921354956040562500769080275542767625372542528072818095812611944599713685858880402441425437783753708186705094810429239200861116445735263647366666739357480036009608289590828652359438844662293149980302280409013084542705306757367328086711410438475654324117158877395818462944562248561735160299075757433602398095404049749484204827993641314881376784154043253398967973748372285622766185920003223361897228341962784021673367077648791974892564724332777475010326879659023822577578168976562283759128488062216561845997390352534755362775996447110435951903489326444406886618840851551105222776717271412490542820006562690914907751587929953218674003877797410210260381628901525075822637303739658597539267337193504410593463320469449517726214691624192840948400800032043900997796788984991887596771301665832588760763376468175993443049091261796319386775669521149559531882366397422236732092244784144848399196839157325903356158328676195471078171194574493742485111663575142478600674827282029462661695597245984150695515529007142496822586298370349197287291457388933213430833888534224247483071832464020273619236757038725907851510614143859587440843863777989376115009074224409897000052634351676504987878285034314188897066758681852409179886574762525330513088048047965633139579554092358334556926642989722184423810943221298329037929852048986358851469880947082919232005733890150911116707927287029373678731202281799452611100581231552644743758342480286779725533087580159228794398029746207214450562385162629868528674826226197055803345157632766753180522255962126915604668400647359490827666571565495521702653495163945862177422978505358275763929078951861153165532581987200260295587739378486086783170495547969950481235046741424866749998610502618235772128350926241380553289539252750467593111578902466934822321362504957465577591536538346324784983583499307935937906696812446279735058823927395820661262997030738755007020844206426641964134364636409019448148035409991062916374412898792593426684977172632267979687608050955783510324886984683072754746176977226878532587594998922265959615726544443277454215875868339512127458309131028808103529174666412034295018054559887344368698035685256570981959863484834591828887229300751230617058585865451604355033468702642430445573556180232641059211311275296918693078709639692567928848236864253003098971150734092760622330536801216768733864963266253828360379598415241200645629236323919527474968098452540177648609646931087789797582041718861274242390677068528703674855338765453907561345549454593081159577820309254668171950180797069155413690386471042705531108792093083849473453692705365984634515592049393532026442124111995562704164120054357394488417412939869367905493664735432265856326107844132900717199137001424448058205618255981261755015687307579976133870482866126800551079005195258592364978288075315083478848714045482861083593862926999751099958768170830921813191034901437492794121173885436668617478440408399320839481607078009135729085122482324223445566148897317997551872641707812779512960854401940204895286867393124386824621646317673129366134876525021604084382647062867778128509388462644447552035618237817853024507097887637193718712896156173580630586161221250103774794644473078000177615132351459200723967299283010447058674532506994397874184938766951166826183020246749308401525924530770308517427139075521791220399184417972452971931803810233883203831725441731536776777312803074286500885818693422984495862640534118694268261661916530052517898308834682664860811972169149503672021768032941025275454695782809894547232115829945938750428934854609940668389966206090092493533979413037181708116148653808249365773080396291022539784101262802491076834145932076707678914348196552827962608069904347963485105735777877289197530700841776942034854608453842958066112803373812250686010309261549449449534925599563333427711781527900097534265581448952060704888187148893552357136223390799791930962390789006819122411478367277378307769866614779750377095794438352969642524585577308645360833275909377433579724865995306367349844341814308917689104121613159923917892626008833625935104061372066879324606997688748918532158969822517657725844442353301224814073609137143317153122468508812977633746674289630014075018592911971844048099741128787672489338136821448561511121962804336142820966167638584997921932006896720508373511815296388565151387748558702164402788043655473530573179739533573378802918695527839505274784087119219071541619475752857862413800935317856560776001066876530062172257246701403554624864398544868574552024945542086798245604010718153144580950224869937241468615843361727813809813795991052546973701509589343031542583140293669850756782285755846853029882906716476446918047272953822024646078921531536445033170375462018408181174628255752795498330168125883377379289690000125383160519858802527774324223068832729626207158716261599211577132947607247814114414116670328266484303748598025944704806505193736458926907224886831671253903060449836201709613555171491549613899147791483686026101391565656080070142308398284999192721494729894426934649200515963591005031921241428925619604330645830099298496129157621175447764389238972836943735989531882770245173081983116641416155464250324178410744677675951508909189653710003237780949693439296135410321480762099760097215011410579135333600895621501598688297428502724911642883724400893325602169665817011754885674341667337190544906201877883410177393474514625068447274825387134735079244287244824887473869804736175639699304608782893264316136383407540668399222727828749184196346215240444419336169274829414652113398311784248917060023713477137532913661420183648081025623428112719455982010541254392735851022032347766110040913837055567350519970542147998873596919925772176762388561526888215833412784290074856657704898253334384104886867710416706604861148098110086173353738640379186159901042497036530185039886128495920226500766364634770822727851773660891400782969905360095399354799945220318947229600238548822376874787951222960450418705704020828460505030798377045899827381072792723085696894461818076212517085643277457024435618727087334747478925899228724790500345301312402618146827113222723217365339887669999087668070982909595876417866232212714630161375185482658440677606526040581046058112706887592745502156484216835294282499478006294309750063891057032830446227039425795490841574934019931994958312061224661580124992692724819442557727063073916093163652402221058803831309498296118132213692657162549544497373331360077026688478424215128045294182626811729359829561752988223479983432515037759720886182727994550457074249304525307609058694930802163604936733014864079906531170704387314634433291429175464197495533401228928350868917399911494848383470001871280162858025724394158833816470738675949385819329037895506337687511410172060823828355589125332099386818677198069336351681395928293197288044571209534299433576348546501919014214201746944237119156402095784190744179243581905066347722277283446869243663194182390719772924510172860924447494001406781578330039237955595163513157150520913173689447489299608093437039099899485244826925086679232266939698091902380574079356181785279560741667976389143474948940338089625227243981962834019646809978611803808143646263069429615135881527960482208772403419440842718967893905399061798169249410828869018579359237637624721055154536466991075987094108245909554851455073022768759910538836729288003707172069640681084558509581111803362873920632125070242326658663818656692023059007292938792802755414474512043898466819122414296395780339987897376839930394770249351108325509828832560790284427909024148044564872905084109955972093342351713098489568781646003106142376803437423053160617406394310005245684203487714653371771469210520234863676871009784976444934748814532844883697370015352987866625515774209476577602594519185956189917518067379134387936970962974497986022708335737412587768130100619094323515656227813170320703696526304703635937105469824912126436076239915026406069527694555334015441461639174935247743672762964034621380533693893864067950193456223424641641436940841161069996067912645892263986526290707149944678153523958320246477017041003850388824455595107725057783135634074073515040660475646835729356248493448943738554242753226081874549700375179894904208751285848876984937162177946717129473258773688324297029228541054319640158933288211753272844348518199175900987071990028574727804580614245733523915983256585250790321541962227685984782674502592102373007690261042838952611070713258879692977479063583150825787357452001629732857896916164256364537934109381098891392793227310166317749759929875822354809427072298163587442418183165272637239854105770624805551139542417227538846289294837893462316003682314114253716748941952574178340380712653834299941881303641857057254538285294539093478702603837701354555617604207115889601702249734127096965045707779323071006814330418293527134523038349228241822037239139751884076034532922427927820064009917272842357151124112433554845828393425469619771221512527841302811795201478756813034786579053442209080599571622862513981935782285273122069489836739805080160190868502017044890853105230058319671124308547112754343451556430114342676121786343722856017904662252188158664001979690427646331108620461731593053466367278263666679739045905203096479248790676835772367682254319111174854685434593959356641246524069961854810508021261710470943297052958099470870542858081238232634042723903408902753289446702146297630172839406873691335763061363801604278396938912276976107841809435872655752381886079244109154758630658910579305538950833499296788370430085741511477891392625394132968329241330799684259393966179608055004505693660902921257216614872810106052728970861721888114716524826775933605980533132366815145707708074196199875333978570547614988267843695402827255825969919582563604664029876098718397478452657835877756486387092902030863026190313914595580287069385090695139042021085576775434283965810388456039616321763612161108283228367009679491874425637615933214311453835202317569185084460451493152570369002509313223901261517341533069741108858508769671822682097736295551477128431278299448364990252867659409389579779913982441748873576211374282696882743615633795629619578720259997316420451000995291418410713089158264166813209293797104279956031054695419882911658503193977886534652064327382749592226671888404300563226072312421885102948110934364527283514783766069210456910874520974728076352526823117828826141965926438777420542100494164314190870818782191442138660279182245419261774616291518171439468959290124607508485706289782948172566725648428949100988519556349104799120528905231491566661167394667081804516306286419687975925055919496178407591718406874295340315245825092339217277162814192407196809302365181579908680858564517884872698697681922271860744236837404149019234616959449168640249932591923662381410852833283933189080663592859255557085757494229322648145783982449488564375101236475354275527896057873867339073840084238449422093275299759671029745629454692115369892691042421760770289711333573120690673365680897719676832866094163835904007386531993716914390516699012645756317467765433899058120276577348562055467362721708350757673283024540364845303877731109477219296017857015647983296638864275032439619244478292159635145503846662759436445951591020185141052968736365124013757529552041969464536467174096780157918452465457073486091520043227674659249949564560673474597051780168492628736557641078606495262073258021782696103552334637329566276021296044598940082642637440043707997102413167473513155044073740791651739225417517474448952158588686812048203196600624198284873299373034633484530199552749195002767251588805968045406648690020540202918906435969250465264164292995618573683491743647053331517004843459431119854541693230518209898139083463309660731860942472789602487335574350886222360659905213778174416627673205278586413031464952675007016698755821264893382665377130770075901482275077954153163137814327283993733485178061347047756814381665400345151390302419296518125022480551213841590771113732356807039675945287867951085288466242109923505365648681945734400570540221882848683742535388770571303519341315363726802900736562096073575746458445479327243217348556942186059419921487107549996155045236093031110491432500889702847252386723963847662351579523537459937047327115193557721740220670394497042086285247167135560025792877609486538657274948230309921496517052515092299336566270212296858143726065078491984452999637187042273242343051324662304263426427007469164981445805748661416521035118511211959675277233060177136048510853134670890841905816761458627417300529487306674381647253360792092716405094207435501189707706833550814462190616081795367130165333599739373634193984618275917057745090959687788306119075950521905484738231494502787964815208902218200011946052721163301541100252125703146744651918731111363286014842490576453113981908300586545657513809197696008298024712293597158476148174658388327074688569486063481160488875938927473828403364383886570740635707571334816857656710051793350380157936720001486623339841619996581122522465164422549722474709597594393827244285229510794145202335209830663316894132309420049323339674936244737853671025891108217017650909947285087186754258671117175244698950698118361352148372762604382105438656971257729833819995269029549751452191313272859979197401299307247788576475912337475083752525060232169868483765533193431998333614176864918704039430094996040998173420255517027405376279864649301239769624457415432081653704915257221460698786566563445361490442366114014307455531488275953813084695535330521303285018113729740830247528014458949644487816315055917449979525382003752922010220127571696482605849362616946725407245029490447252194001958171224397908224894527552402760378713548358730761467326873088061342516893103171012204504362102161016904722254001080336213313089630000942848803008126979306188114438622961503401679990420231822413535776756789633885571341961710102092300842246835204859671502299633273080392597620738616508511036177193213207032037170290491381281080064880790517342632731182743871605742410016905687981431554302622430303387458945430199002831753317198702725070510740517293558052278396324567236796901404874191653087844265469978316168027947350936064867414121186017880874064834065901958189733840385725111853824586017283740784801541244663621042473175098969256829726094900926276476721248328666385748514837497415156310207067195553053770374917082824625157800602341647674446164103247329621410056583725553447413743602879763522043995178785689277139605990401751847374176794830197502366290687554146711989496083961820604229358336619309411188616660457477742474336632362058552212399424362851949867652959939298146213409972011252037263837516339012267244850975910909962012724174402936577811373329127640255034201763927354460987072996485074108040345162629867259115393762953251977782863435329265671763993066667982488540153925435580185151465337435869981898651527550138885611058084979499510605156958516119123677100777656810164841485239398095967759836422605141926804902370855958914664976821626562322361502387886161083836161013731385837089973993963037053589779383271942053037959552759205365105457819957364720657996293476001242466307422320258508783920538144740512947039875671437063611136020028933642778354740814924729485634550415890957455712443007186883281637553310383154018142521483846177224797357263176965103967137943266865873237419350847380647114290765970068721316889533175372385849270242245784744663367840030530930118968534831052966470015458503716943673208480972610902617348627294547750298730571397992181155025524990386070851527631700019867020099784717837494663167741094717949083563726398814420526461481416466850729246977103939388952789406346761178066530727999103437420920937366439714891899301438510864234776116688618913945638571545454409845431255717440229302282563862827964767650619620156295743384491014700911760556472621257032480249190175523703855183431263212958452527496421959395954812856263926159685847382165929170820277845995734245319883469378924589233502056533975078256160186569280108614824608492758129879636981832013421587447688768822000232595921649162201022406445274186955747687041326717753732088305352803781543447305431984045880169678692243745396248395972707692615875870619993311637512960771084930683993936051821936752583561761855384115105738399206545245526760653051659096305795435529737452046705147469051064335756655952422722411540298605411961331397064309353945117059098013409645489414599950615621321659217791980617269249029477958439445914165585796298551029034453240299205125628182950242024826555347467216217716829117737704682661524558350611021401055273822741190462724616415526444163814899685350421750586408740049981013278885777832911124881209257173221400030743415513315495610907022754901728177882528583770730735403345830007694294645522857471359442968792010237508997637484931086609773533660134144452805792226907126906943358679293412163720677282525919016212816282645883302554872046229322595363443523703825219339455789491202234678748705377519817774779422091362085141111315651560361309268862728139754603883713242137753429416342923313269658407867294446858441867746327306647163745310197314187840947168987166065369047802399543017469502953088429495003442282303395948093328920201733920701717758742760058420343595949467189575517255147210813361375888155553042818559608112878677288111873613680208887684232223477833615988596298708007190685830425900738794857803122063619447069430389506173751768812387480913869689406706280113259356779208145849791383903161283518028426496064483551071722347998205518148736773125651080502619347284585589546778571873118628204043789641113212488597847668369246620115857077065168335226223306866339155470209698867359285716588805402484276228008547214781461932706340616623232289870558324086805355977688085489529405909353116282472040448305231210692594363769537997878476447917465843366354145340569478117912822244591240356739637978136550035366208218696017672300874217343343842659507394128149778469808756525110085763108794568135756168220943216110986687755668609580567685752438633835453648935278703566647885520651944882175815945437427566751630365077451686094432776435393564585002663999114878260744679139674342659484051388752233728936753359706210064811303267596337232162123771256801826539787305398540181859932890710791817197682578473360366619970844756143005435735786267993912880891803934483133598398881006411596124614407395334050206743124042523905067933987896143776774418425275788883653509127279504523541759717406394990211813101445321945937692594830673546427811453568663700285409484254522997197391916521412282428715634463135033151532030507979373593357413751179329590319285039628532388360657269510182714086598264016872884924762614665604487344519903450147141763437789756806449935805716942330463779878172542908760602628554996964709094209611201939073202515308377551193351749888096522118518701892060062859151893858602482403601635380350874208042932953733181096351588337622520635518650685146630128660923416067924147593978349407324314213526529287504161035764120184834175387721440810071371761504502365350554758718232291481768010936510333642871510463487341392034964503392401426179236847334238289625768530408025786301322807483397549800123214232063176618609044863418692888872488646919736691510621947462104520186335729510790323458204786565286508015773692911718780466123212700246086774286838795498036158047507928398931097604444511142375557887863877399581778531687461181643190036637698248506536631542771205517339652297731714553612165660846245217723943727561700562834465958029970937967597497519748925223425490667514973239084903341119449511823591044121417063627897464256217886804639841079287700832240438214034416835480489353077052734968739125080955271451358835097311259235075655000931160394824880306452264966499855803854819241143823252444572803577455262002755608235641638073512946176362972122312241195442586274765510271975890589146577077316611414196364129871446559504808297942334884276222158081005241795564664286670009739855493676432473439220008588375142558693505090434518886861956762074286539628130273986456158353147931997402548106385228014608314589941783523945953461859984989040622835827140748470119524991468963715768263671479639811009989463440745512338872325075398926206231255994540432512787241104886799164802381236645754650471288383754140677460783096762704026687504036896871628863359016592812045593224421527108709285007814973385015573103834262770957762302744735868285753086636010574304400162374197516647116279882096001639625928700674934003084809607166831968744402216322970801990088655185150762209746432656646056792024610284582841897698378761732940890269449061551600450813920286947484827412586334121954083114908787168452478024061031074202932491947123416076046445518304251761485855727416386878561519146699718372450797220797747239776933132877675999368258464622204183856503677643937643237465354292824428304915063417987579420993048544039747592838708631166025232450681883061137457202844647920757417589115069341333769915082359635466903740829864245368494884102389024791571058987963763385442924215964517241794817051562450689472923987833059601030338048638123186335743565816456445471783274622396024948138321844564282469425399873504018020070451754333584368731864927773878170002677126498406006032254001043586458151622335758155048426216558466073277612641103915663768489475667421110239396411922250629002529171872057260478095813607764459346267815476080522405357029360834900969413507073903077361995085059810814484964351093452518415206187204301490231665714306118742057181487894725085971577196902041541523419038649839707374497383741176371269531427804121207740115444942207150278962255150308018187371201982340827717634515882112840523932043854897479516368538594466232989404495494087776588003619395120593904588909146391501117532080853084661243618328976474598012326757141872570712363866355822898251758734481761106124272939979773081592055492894642547703945674557431551634209239444744925315398261129347876388614101663386793837822440296499164684897364403736103657479595504859754488522123631936985400117769349125318519117424529455306933303259607869356597811127083109821698655620231924710282070103129229922265058185605732693668070752161073572360700204165335693258867955563568469958591023079582678895358381610180243957489323866765377039185480088157700243910765042136102778370230796435408089136415571447455479455244287257871962443893230742924828965666044535749131238319772307885654745962190676667575067572315361960353837460348920856309776348747546676450208694432572697723363304169078964022407856970475968903703279244619717535150791003339340351701680957412279781814761012681712144235396189359948505772933722640245339156426991667486876207107456354323819737337899913769367955140154439368124698716887809820647340851689439751654107746690020740459754340346139150093007345700370835494948387632702363048443522334996286577573016704776286015161991859035819083775382941199073268316567379844464819902732459775041610027968735224418443809985563011484813658809417891285809005239926808188786486393809901854296184860027853702034095036314161462562730091466370179488647674993872241026007790010043090209867358255395386571180409576017546021362220623512437412138397201337103820620665540797660845792456172272206540304024962219918383799398980133988941521140847481455022014336382897708852886918203442166921488272916360244862217425146816357620037816072318206230007810155479769832102911582753860244247570421508882771132283983052892840161402265329566409363814950645138436002904784713160208105594645687873961477646795264471202273917566313445507307156636741088426167045712131770931480015794746354506780820822472770126951457896924496664000106184248799198424441038319740602387861682826302515057135646315927012150152613186983552353789589485359125154846196325095776574310577850302424500474284452984401344672707661424561073438401874080547827088612010106479904780022793068758500981405883714868338561790398017318840453659707143639997428171673819962424644139385716504900537168576024057180155785972864349537380222744524658978148957875124669147003227673965855435726046728193081565705558985889287234094593435050821797666580780662889918811748533213160545197740563691258944373872913444836489532235114322837729005734561886026939364078634220482280435517575823157539449253015460030713707383929314509124410948014750963262292943718583323789774418395811706397668552653694066830835642391926533690457483731890584649762574330848647947450222561087823425091039998653970763405219446676435227382974183887429887369198642579233864232735521288117955714795004474380784995962040078343863693042858771761093894053864935550425712690376496673346253322424174195339011638641457286513615314172328573650940769562245324701271593273222191902699846212643543500014402620554675690007557803998663451360688482176219778132349320295072371497540096488926511475626910308278757199297979504965868749836099311066205114807079437428658330373506161429881032708342214781497849845329978003627795592133471013331683129576576826059430794969237713290985211240954720147593737803475941949254621208304759991008610708278182361321567348795151687590390725497790645641952096730327337470827426082589001853458111029512199546045144347563133428621322542064095646587232337544890657270159618764538760889962013782333222000249040202455928352500081775749784737663607192234148229150422048411602328780985151400698699285818712052002459762697493003944450718490300162111159789385310745753827523785084204159338291844544994993537372568511418867308202848838487233500507858532189702185006378169878087297887554967758265824188490775170749451030476218252330191466126706860960472051844112152300387226558697437293942181279983058425932363458980465953940233119567943185477945782738306513878306654443556034914583604643084880356950145641766771658877449736844674554485427341603992083038758035198809556281837197279183021339913441171210623136691446933200182783341985603620871586956271816285377570035212805169378184621169452821816985912627054490057758724682210244475814943868264710568683201274677086245057895589137996043168051442773389764051006398066246402404988241766817439116712595794843328263833018850690040938417940936620939967603043403716688452293252097447202950757332738428128261261465188424952448384005228806828157993315449328372912890990989255729982334677162661188894965607477801741215066666941266108076477022910092400928902386065985386805070185450524609220021825477609736018348840429131379540428183173934274774695303991492826913087255304449816743870213272208541399473233298467180476516408513814236544817108207385163489938721296899312898761536318661536581563402558762406709403169672960836529483115129302818123986996539591677903119298368180621477950758832489872841021396944916903189680636629964594063800518689652806291884356754436193496366487037514190121914602760604621089548076879103566943474513171167699777293939711514001350736072168570974316252022330198611482385732346169579617490610702569650878103151918808174750911959846382895061701748205532228119649987776818333357027486774095457365533366568857334921208519119203834684846758971537645191572843199016128393714705701557779689392933796916530079855795004931122574884048857123046055498209779321738623557139514279037152757103946320211778796339026270557062726747965519626004915758365250130392840873015003504698415444132471590453297546210602899475074516381902074397369724857636538659950742925262256681554279250502301608680095551724573069964040131026268485529846124289382899962814635067374065883909714395157749211167574647008375238846392238159330255445246619261611663466394077126746428576317263180142557921185366018117317017874529516351608546132773489714718140218124157043324487277308883441328403736203133718864752837870819225848627817627588300001218871967420781552417970290529198467102680621594005874877390970848817595588236669517277226723409510415553553494842148064463996348680649537334066361764314538295189125523521309793813178075629723113136992046011957982596140133109425702797698486512223632394065946800359231150864431421993200073837748311604328510277880702447757226468020950046796707828550269298627411305902809508561179327450322578320224463927139604073742324920774660105390664923234047295966473426969407779642491914677660486833775427145736408539631741900177510542177497683093207848352048476664840881267963052538700218863685196255426640445687154700419730107163402642788743857170174344250404278585787093433847460536623054517927865804973491323773892786175477717541473559308756024952009875619303476474614470359689022929653754131609053463116546504952052101597949001016926388350416497977115198524804851675120280862342742762946417470981158976007117713738185709178872817540355449618905745948772621243976105567821179692469543385493806827145206601129172416442784484419864162637778176984418956340031120137279206372894447940238665137032645984860511205139101152096880094829396155790085367412849467356574315637215158620888751912037561812517039504143161549875202751009262209967217496684568976289392212452869650642282142257502555607988021398626836626960948949416320697181903059515629310499448793475825977067186958041759703098405714785061465913198042151780572042588712093223677706021426478310856340751945609141367883066786995284914234577128818382244444578160419276300233203522005033306379316164299693124641876282381505818220208138456053568993872958909338213932906238276893877582717290986419027932708644688982061198404454270709881530974480492153485547447447818391055482435087219690398995284257138846013840196750717951195307961036614327711660467473056486686112507846088608267331709377660274606594460069425809335735768061868066893077646156068506733295623019039902465891922454088365133587323355196180353209420368350148287284609812172248649562333825864818656043199227677246158815699633823843372050220260302024056296515476566582603014041832207432127745436169683533198575797952144555570812827261836634582830950890271563481252884726612839842593110732665278495707157176492296465717471640312120427362910915169589840108413583652098858475091122217160278656006142288248035791297114232401311458754495910540325839258048947640973346855479364205273723779304771098735331157593139534160320617021190278161871577364229629436523332313335803510275071132818609936397071432221722602211535493877663097203475866808294361650236945085724198935392776561847990640952914952350661522688630673345641509740001486161778477703302352103517776809687465190021438121422891473690040254031589697919434489349617835148080972336021615240949528354891438325362497143855426928045698244571841442292301431438735390368631055644234713254900795788685351141816375093982384759927688136474649104860135678994299506144998580918070220577669867404941973641327499977365418817880847260210469557413094375803952806439247824898992803686072435671856605463016571276622289768241307417488805348348325432072905344915478127883696135889305358049588409442232286928772062070580281581684477941622998917894015662803252107821565760512253412173281520197496266497758471562697648853949862673415553099065403228140723199146414072530175258585175729066646743927709834791116987780181387427490925203036308957732544130666248118255387519611376411610053169016259099585802491339036426622438277361511154523090438714980646522596449293533420328423340219920037134797784088676409137865853376891921518989557814487525705946042215775605752133143020261122998133684923793493976713739211870123679787342581039165210081567688444930649027008910986329033184975454605823053373396256700938024063093983782182811945473847867940796655788852544580620662865107576288665902114876894437472713615789799047421328251528292329832304191558632747227582655098016538471854298377618861587048500949103564220177747960198243021663769453924381158483668105729930010959551190788496499985537163595757493286800655154920326100203115986563243987869086402457123050098867506404346750869956021568976954244543487084654884732286265255741041347696494395424775682120579919789328230277049007125655970724544570363607425246283094818950386776673334741691199804412467474626755807960217947317361600073344521693548575397116103965046319986835713160624373526119077402745372485557831796356757081889457793749440957292962814847858986671280438673210046882176119503955672400075639868217579043745764713082864579256795638055204048128448066857140851559997129985726062088716781618649385998896179483921895794638163454984856605232385312097994002550144050651092370822365242624156463704302859432299458162781025507454791648609960765263028687032700480118352479480944697678932613106806683288027075658650530510154262385259239515640638688618024592799810532782166055577186032116043762417551837271346049228835354423349188918538885270012988835527218058991920489219023124774279209850289189758975975119168159370290252577106555114248318433910050115953263337742643970244321250453120422017616478737949774222833726606267527692637799331427380789890794885451583682442003286337237896107124814315907718081320469153312115847295400000042018282848918165645294743176427847920530546696307967999018359208035255395262370792092604041088227127648776910037781119708923518798607897914330024305687539575976575171343421943326995704523309094767820500386682120209956206607719586927480511290369334317253148105301619159085856642079662264833906576979355148229296958269278218055252560854209492315638021423929725262051894430855275360709425547844489815417191787527115012760591556141208036184159536275530673520653930529944443508015651229905917288870862640406857105783590238506580314655307056485880336856611243227029220173563910674809778387900447007653700950543682707907204582717974317504176419974905178305549978447415138525623560462428600284261633374668061223478327813606141144674698315023455812140787374208964221006034668029775501175990954823516507863678941486436806738564172831383357440428909764894145047479453372845022828885594733891758955782939836180607331475877772604157940711506188646681290554239022554134824913381445099304707053369899635851275808444709600185419585123537076619284447886043709671446389102597720583142584942755278537212863829444829295237806938875044487740726680581795307396288659427565323002690827253100095952724790841122547050662510915839216828406228011700985358778017078102702026349857193982843539310409923660570065706369248206117525233559715276986217387374079916362984101371546307285435182768441494010435998239324418971053035055628724829539236624742820347865818292534133234835204865293103633253743503573872789498192800008382055011736210913360375222709456065276747903358506140368321734484646171957288332585981865953735421450132098792027896144796284425360085718970012655640990776054624572579210854481365587354418429258410877440471711255889911502126628142674027256332419733254458555570123081499356116388629684695787266931042442520766451055979059732028125587435213938198167831866387552149577074583174520526148709044442758826147370342411059515480825117261807485241107385510688067916523625324613491225763754431441387378071466710591803616232939529703200951390877263536228643103561878796213360694904175399108095582692500477776645696189417961510233396575343074205945128323154647197229909622396010493144601361113982261574927842741383934923864205182103365728707966865078230010904827751599239615042750453655028432471215999025986583822764416192173766449232275695010309093179565055482995270041376871443363755851785853457899108630406086346660123044732089119831600643905120630674746462201002984476922547648196196636531213835665617377573300625729819546890760478868075527517178491780424579899566912931415777199018795272627857596051754296713361978604880779466546934110340867626264393225699068758717964691956189308553003816790795067266416583791368717602619748018173022188324890794392770388762283320361156761077420892148283011422391161514504746618777541915491470342160463584560193346768631525042806871719827543808752557639517554815294804410740144153774356240033352536333195487258564151041065384604602823206235128121138316912649562346232755028230706996938990209019691262735579293116977820546602555869997468106485113070340470906715617436156476755430369034217167992179888484887136096183243229374774705907248121029908108289275320902096139844455766048327409563286712038675087503595785009958964456626036391550235637067483473511518686843546157231498442810882753653066383350702476666072768224024840106775424535941598056665148510536981196618659023354495824338119951056437560101210299762826256637786594053967213737354660010764116229635728482198144120923298733471782436309098147055372629838578895691720998433563927785668538658166073298179614134216390333619710673505556185521266514599482535036411893238416863348153376832665509976767179033962317956536450973978463706800453285892046666150208037948775340647941755964100523977229377725800098071338660159581424916683973076508250517726569444049220951281619994687599143894073599280865002037034408873208643607363765622051662648570366323942282483626603361823858036604015722375995780755648266095716671266056563967440724990758578507099435608963284943452798201002291306916114629978884532756006414513413245822228486046713477565120422154178372471383018664264165902706230249237421955940518218464326993156516136277678436865503802062978005608729254976983611245724327408770976990495105060926002921716016490588080983386797536958551087965765247742066441576586970657060369131786276398358232121830894974208529872340640834708841334519953858980271843304679386925063966406086703770685818562171797621960153869403003424576707442526535713196132281204422552464852825391528409531590200235347319330411011609917575167796080776651722807858182320288368246894472377015278322316560994136322149672008324191336708383757436376031678712074108819277236664354102745971405565212098595669193284135800862130545681768533936818717067678357518162752950231966927597429941142659850780566755327291779471360277824521461858182490599233995876801489094426381829196340629323181179544890380958049709833601355865429153465107945017673535265089661366781253930414408203907027550141533465066318623825551173865750364931897269309708264743537196985271090213227550545936292092057351339610421473473087439125199364827701201163304001070287917548625180271874664364882116120544399009304359750607384414876945215082385870301626097298715164282915132711861428695833428059874469050341614670539406160762151722701763149549638893080657524342490705497443607833490552849387099420732735871326135070906036624860098952565345705608419739553885959011168796198370532984500720775480589907693833931629934237112543723845586909544334020568890160477213610977285570697943529924078546931138270731673042006883041957508721122944285554497495415934036109466019843573327440257737855269886732262833920927392224271830154301235847057164297378956822332954567646467018682742050518008372084074349625344933805212832469437991540367365898277938684055996697184665120997981067355827442769406287266346683182070053192098957832105700960284271080164392584848663640599401647996041522263778561090649626571901976677066594678032532790522608663431317027287237437448933451507356448778390704878414156552694374676309738183680308134689110032350136252491691902321513472937677444725519380156192549549899227150065798007755509207946867437376844112123825011999105780589132349991064594621180405349495901884263328179243747767765705488666934203738658013554366659206010489644310353304463850993723823276682199566100590968410136096591292776663876882655908671968932780882388116387579060632988094107655675732934874302794004528091167826713126366039288456055116722387046093877963026044675166470899013980694245842149752202812157016794777674950075409450730856433891568527762980396070881199738343243535327212952770732400114665614761082940214527488446797376336757464954835726016989336351124546176492549246365958702325153671102716901413847323111853265222403760745573084063604883900383899845023101663733051570627967482104182983573129259701744840757335434515084399418033807915575302186610112992017664110648204156803377088222424663114597283758332256988959893153974925745645236548659026005670569278095900162171457306964353486859907370928663941103805021039875934267865327924552976553305019933440722797603563674472132698816019676223718443695860738833689435893550629812958471363843079297248201434806105445040500019288702161116782682554453713378866871637363686838121205671091931448234897025817066808414451658938681977089109514306136239352684548911557172505601997164278510176041649387526083980843268109656021357712965764328536832694736770665114322809643454502314511809821740502593907430536072082674410949681969184940880697347516623069910331957235709416448371864475723853675384018503119635086536169278346937969259791107437707355341864072236042946613254835917772066085739729455629807983278153570471677157817776621250053706558284276572138048754583582438151283808814175943745513449109335915963090368150750271704671232773311460581171953371700328576639311929921049064109413008964512123960168348919145321189559052794800872506974399370092857099979741349283749154669621917601849155309581948590641049290167493298706481042991987855851187201704698919445317710870613677682787031418433667484172968034644919187953014565677865031581064443236061540269939026621647696216866211149565982650905069305596476622308406633194901923015916103459336248305006871683613868061565132768933577109934472178480057573363494593396278201660312992544399662215287289901921973835413957160267761600189280268328559824759154968865428790997344610971199397220321214922814196257332066004045314507426923157586084405230392136362536737329881312991738941811673026079975110917537122473925359424312201858012449399166387844065215337132280458124445006614266777719641612650573596333293895438683281057379429724584490230631383186529131388265268916839701868450681823024978475338334054867087534571196967255801398945809450333774217622044929415578692940906260691581959121922452364390534293887891468326731115372007685590764678175424132427989239242944771369088180640850750758023199751572301741932038087575624209240902070251667836050690181352276668156346250588397943118968088265807333976985000272972957464493334754122603984674794136810549449554479934595605958512203043762620565954860116770321796462571133935976649256440767391566862313458004599493264397331536464511903785184493377336048610067346476712474894686374274100545440628560048506432223245643485185344478013517653352612409361917467889451134033081155685367893300630634449725960737595294422775815230036271825851384039981562621197813527584501571161846573377499599842004138615340415532291801194073540950716810112507339669360560628728059668580513336584131847255104579984497505312916857203658219866102115935015505766313911480222314369784813119943549728915067045759028878475785885216532627041146137292711126616524473911121204549213071757718301054391915603858895564792140931699271523696218378194043124500790157988895660949409416391086028695360435127328695926917125767092462392112797019882205113659860774781403653984107122618538464843924711093160102803115471647726961544364658233721879591882925156291895795320127187311127272239096754503916816070071998725145548180133302782542844412091023530889836505681752839623814330311945720823683066278596899847918275226490956128327934361714440844128825403304853165425100405487083827583251703740939282227180234826008754429636540084523564334473561498453082536706108652745897338151850539327957860968425654021701506514987541820659531288759047873231141137682646366363620705587204640873577359117142741574002137805587744002493906185870132327541038045517742074140401638293557127271580570400408081993664101933020937948242678396860934273849512364367145082239122961937982726791108858364672297172380924517400687482766066007325972518077066896464361268889699817324380581068716186544582677345183912848861885017171195407226723066985872485257946846650097646342670240196620171229081215857031342777517913935237471083342731224915517049377011478343772738863808115078736445682051568111680413067233179886052340020402840927736395337419274245355976486819175180390397598943740792351096459252261433577739568390038411175731296382340195792660845376304890592831048270454051733129884459086284185404359784172475862677381838693114959666426166583031837724189556834923533564099328653652196837959009432419288077751468083074740795711911820245829452461865619435204397573767365024520698356462566168115320068167014439794303149292723315498852198372277193578318275484335658005275907065118720505840683059480810657720277595654519977679429272030552415660232919628650316861265977267592159828972252700207389677798585538026586277327442039199404504092900269907614665386649653965587980400054819145840790614498633261331271462623577929592145045991229748573930804423520932388390856029593912546186873433137180120723815152434822219884308476899652359833066012315727530060077793337350884673580693796992799469414813123215422776966381486602135856921420582114159947263451784468661889030134156565571624396645450283552932279350525583082051186674397360810094365887779142999888162915480446420158012559114332445935172030476281737004413783845994758373774046542276737977970110794714916845507011348523357139573660216159850965472204051228824474400019694375118953195123048403097451038572591391255358178277580688788287423571706352487712347572023804753941023826461199156618952062115799173584416996251486808236854814399866293910808201619280290542489225966348072211065494192364293727883454351001881990621458827675747863637404770117994336920671745128441989258971266345862478608090289709515992920278034995377557724140072337861877205765769245300617424969588499603502017940086840732695904939860200665149957727823200008239536362334750048735511860215941765243730881514844494872327603386597657630230792730030323655799261710140161316396717225088479379231665920344779164918611943278242146439029106852969508240766716524173324054868737173680450110726374696639725848378776739465929166377269457968711740318998863921712039646939615906073918755757891117964438605175592943563230133018793584142634709098204124073910058232665148004312218570872847869518555868999691675602253100079771246038333317030114513197545109661223184711341653395414859760834245568987276740627362692501355841426609944746037243627466577495426007205445439239342665635753594627857880097737673641006147798154793893426419806619784275209623363318972219774270695442049850159608138237915431884411193758647038319249316567349777788205795552894628123117785587139387262708607796394649248973857797159866951851445951298622676483897306815129225110738880020464039652222166609791760956227203318912095754183130159508588049485592872887449658131919434690089975901649921858147513851407907264299678779389275517657951030589057591257300799639599257071187091274032295807719916462489239404409428737828893986543488477032164630086010231899042149488322738029399008437253700167154599679113183191082613587974155967291481169778069255742887570013762215145782436013235823859962756878823804764928569661791597493951017253820743972563007544042761947939030797317863245504188976308503272922987295305096659030116877787647584589842582072234804695522390407272867924827556628201994728454262535086695729192161494098376839584126955148403584203655513911691194835461980945369719301077063337538711665979906873997995040578722521632824412182868802694127701088594455544480235262223714929528470160837099159394572113224790441558760653222310923973003224404561099020074077070408199030745870982958010796033130281286218931701874064797094148329638496635941861203892504309920997181278731966152468426829064214225653592754473446803658393409786087859563991682463655955551494143993545510337055223344609562631180284149978229350376451302345219705974644475363419213049019021041332893825714793510889810384970128618046524964314779476549781147096043017301281510431854956715165374439102993591906217659979846040350708639687220190810601775007302914933480786542710756696296756364667508776052158816274641585665727048156913199299436745532192095489286500787079813802494978141295606618273588945523939394910423685910543685641343024946287976273246448705695042272318351756539685036080821778497016483282237402401851239175640586078060722942027140156313838123414236381138725911928256327503411732690493084867147522377343847177333196683123805669345664225556188383819270155475776902677098658911493985435961298160689899569369453190126600522720319607660348924750633124209935994560749673763215696404002550031373456232629774832540132403399637026916925468262105798772436550188882580010662917043307493571315968057099675419917631639502161628099701576654257617658093958552877550782473698151552026319492591362040187388458295641054466859564754821823904860824461178425178336669104245333635733477059013124202713585657349407542970855623078856801689701266332500208527592669471182478037955931832951289286361438712165441805119987658024753099068666352457839598621798326788331050238428342565931773346228639237797638215359770842739838204940375966106698750305151191266547563633712111466817858379700402861458542029619556083574333683918267142914032509744310433303420737983705461253448185052975476392137872702049697118325121988091980226041348067122805016467839512588327081801630946252052736550707240101221465945924345774179242803431497863830558391485718380022820054285871979026117190472555982663466393279178406845369950784103050081418445604519492279583578395354355370170401864848142572938845881902947732179110758497407483176466609519126108222852689182605781360593949876461563107252571191270024890924829383553537352497890869113444414875973618465523752767032447146392774699920805692791944739186969863585316521361594157630750760164825287319415920284925460614449576380051858805854607846605256041728390687804998119255379829434610433582133253358002065798795486175167343866553861129461438191358239090255082085964204015713362412440719591088038249131195315547716433344561551437794964034168912301337054908007336233387937149842497200616765634742526217805517952423145494238755532738728854015873343763665309424598734832167323987431212292648800773572684041773700373717652899268876728185758570451581014939307845430891801612043091177748462516540421680216283298348718317304173180108261167027043978295036867470610921398828570461388683097155577019238953189987169572582516908692876319851515836608612317521699917539137429149669099865100342765787869775748604214938657718538451894512432285317098367029538053449990034604866790438773476808163717087365868759876226079999685765459578029438048569602333733620286649307585206317630551753617172531833083716977982302480520532945154826456443820874810613369430286156122458091849313381081590881796149792966901210736733973843997025031961637117850742626632237767249601354643183180812070189359497410367765575507331712184746642606884664513648778910422405142031198019035100939065841070627752350365115268276343293797612766615115249690406987964355157193144084556893120228782487745016723543496228293791225686771857576940615311466451032194442893019457306991331246180382550408669688360260124667658652692296304684363859988721046646670395806253566543574393850219708580712870895546407130982220214124442813455529979721732796954738589157021021517097182560168444632259628812036655956710111986562308177258736604650999565347611963400589450800751260480519748464672544804436253871282282304461779801828661121084008114668004382968499323432160785869842803906647945267665778122384245574300111281672575951950699545693867062421163614937146766201099783329647834565567395307995772282414942338060471326772121271982539772869370858791994730462414454585884469836103236225475593326710799103621119146757729651016195086103266885561313963264445416619954804609278574125884230422017923974216769618104905340665645047570123223532649586209225059156554950500652830863809777433378639946324212927591014071937324586665840102996537862346652953084803759724868653982940701637658961955846857359965554159764152533484214410371607798796795192624919636922822682132645485689583642146157987224001676112491651090146665237888568827432075456688428157953955595452148008126165260262353898958760096217224058743746476921326473616963602308311566687274039499480705447215557359515693607493045590261433621530451072956962202112033126975563216220631939596911541628350061412414471650469480485427975737948113222174393277871271658007935538992094775452205701152504068068691776709250689628809840475016074887707166471565507949126000730762544940979481107630968057845817378268490891229816993323872776791106338062409938095107619153840083281511979469228514264539450778482625265849646066152954473115102127007104710982008387332042724128547175586501105055962473776926778558365716186964686220913297504494572280225206980643810816341428270787780800929310200074118342777867061455671409741978710651180156575958557783570679195822621597072133212859048877820756161517196258152948285618700037023259165712075142549018587480141153330125713864365718725941803791939728192949191870014194638990377494733901213393799388122520081186439009294347978974838636052144791427965279353159432729353760700051474421483111836727417070476332232346334867574366941223036196887135306936739181126538899442369362600025328971831367897384793590085545380811919515097995440756483801195742785613685510369648926696481913989533255214582384970192066217558443899013436305717409646304141174219310542699826467820145667184987266269417029136988628736101661603726543926682154656294803388563528440522950022015547346365624231448315285107069887450902307155397022091131397156183249324503758793213687119925285559633581735448925755186492442810225207474456519047600173497598666639168376727516916744166543107079020836985111588227868493543735647638084987945039184223313233637008902947801199327218969291865889704447325418327068417002232900112776799594319623955621785310579822327463748243011135084254482221517622860971649734296193923125237616870241958621471796983255446949227253217817009603422278986874454660109959955744183169156976547647139576705641063750918703871744381100070770748672626796014354416884495273560355689794129430492672424232333295323947828891546703334018147205518957801176369629167279095232957942828450494560192510593848541795828571483366309490145313066336750306068011973877061398608716042870618486459057160586203921488678644358791717165653301348260917335680452097786438317239518664893323114786076570520969039644418762514114223441806815001576222181304963442507416103356947554745000948881922786668487837849411344700765752613576709645479936660700555413830070014923933111733229693912527826994845659545384328922602020391806860876636439484870094526068415192262559769548012498566057091072991233371450946165289911846984200607026248194590176946146665610478223353443678321688973486127705256223891095205137792554446012308383981519332654614277024041104164403154335982975572726302055246107307326809286369473486940286819424870116750738115017433889371897350644296129444639213671823346962841189761926303216291503453488159430673024753651557991560833417875869946886609567069230591138710553829833237180024169206590016940771824374711448765396972030443310260641934180506936291487635361853087908660368087957445790541943570199495561313713749915067142562559742885281052716735986418317345432641505669555438198461305834111731891163426006035712174448253014204654088285978509610025507538257375445282852988102633905497530289594049160619183888924277579759210755251599955930033175301205274615610457347251912593318005497953036991707842706758339714799070229120409068821566620319359497719018371711970294128980040093493540404909388396001432296642280976805994834713754382201359897112549262905824575976780035129805674222593844939165317176131968592909518804272469952258754730408633385954763718450852193401305492520086687259672285048718092504593095902060564938513472634839746249249381913683473941450383811461866798137833293104771229228871137263456324809384905571850007345786212188042583062887074883700116572361142503187488685834161148603534504886443689242019409844227593717642556211842822694605741511567706773752900774413896170287802741878099137579427636170480675689471530932592848413153746841827167209960903757785505025720379869488907660481115381461499709455876874260528544711105389957918721897637653985218351473819361816281407474567976134923684496443705915760533400864722582643083759285167865551550106132163710714238062825092043226007557150487852026395038267101281949927461098243933204987653203607558094806631120746463173964025987167137503574494426650981297064303087489104152441515643850082383161969163966916879124186522264245673659910755856591298894797917592720771119867703027382236335239987351070563395204994513626823516109640826781829429468211624384385800720152267792916334505984152405174937950922192830388101590425187763197619515665146306891803149463704049112200360591926835975154697688415980327987411583382952236970527902496376636740228162803812859491489245411153258849940047393307802761085584643776426576265442765189985239734961395186799507440495951646367080673333068676224089542605344255003920092013003057284037691276350992384469391595214229101294756966101687266408099680660398926805413492971290709184790972042108627551276424687597428267730261217628213030714014540355375931168548537130359710892939868124737505256863314008495724317107508846998687554697527467384442543319153215727957342170089022799485403870028153944735481969341633536435861088409234049598144302376541056298311076940574914216604865298255048000946168910258305283006545142491738368982932776782094929386168851609263009913657653091354807862409558931915204200473506047764634807930003730399492357043605144583387095331215673159107332675657369874733663981092443110530236377975296437860602253582410641523014408963536475741848531062033878050761869673566771380831622663168419887322495972628998635809147133876318188835237437602342981782254477818943559544258915785692934169669202597806931396321045171036454990920051342628521110595178435122300323223809662229002105652258311219669671224831930919503618706945030392383516044613462942116426758941225949788431909965897074450849511858001758593843939828330723629881931359563347175339729612181062339513690372246847180524290880863739862532377193016730518835676653655075919449282925866651181001559546353521461675463544836821960330965211250688745958160043568294960889015216375883549645985567476114698607651448115113666225280138728141338280409374260178605594285784822907495200950821729962123576391732693397216524678614736239678226079848888730839365043555640903517348436584525962719728332641872906709454727897018329649830215645390533239121042306787170317126676179832741145529778902899284549248656232802929611980909237350949630374299802437692443484459373031105115626594793503734241972661451731658499153323217741832432968526096941866732033980890543058515338935238124847510953845491971925796558442270652609310201194163369778817017367516595137130952328684413960923461226360835551050499410339239020669612254905831162831042836213137101512603478191214873231665531214395855953679669425587005491201744698395139268818817090114750173413783580780395759842833763549840175666989833316231995283093850230715992904203250216485319165070824746411813393830531874609497412549165319075231757967935909130635948511508917222984594104324243370564357510215149271157962633826724625569336895697590165945499049437599560663452757965134729608285505868854116235228808786862646333735350642450123798859643589659996694353467595781258059491634259357836466508527647501928813125890150456039822349789658311628442498303820323769931216312548192550965707356695088337688498087480977385208536916590021750262518568410142703089920667082160062132328179943714739494486065708349957059973230691080680353740636258594028717339528212726155523711113314808706184365336036307001485215293631511054902606600447339124915340265654609673191343788680418202700848645408396842591715182440172393344172699127470969324322311982364166672401961384921522666067866481570529214219872395517090818260253072542514200776017795987082114533656911647830790498035805346446405797895646295803318141411520828443879306115015316527165619580831615237709668600071973872743820356672332293820966002621422325781612587188486247356583641758938370224992876573062190324752628160425708064247769676191744295651305532858069408106750198159569868865450887668548252999332944374278516718531142528772528320668908312550155000648714875810636792750796040650772702966228484527221162552347975666953383091665115803888080385756403938393156336527068113551690918036917880117562316771451291133209386668051013226350770651958811895198630727485245487674879660346582537590394362422314032414407842567361655280336331814744032044081760714548805688114952657761455377312746493504304216803962272791896412274782796146705643697862609032556341884704211999746589627518877003072506473163500252308966223891400595076450527820132574202377381906617461115258163431726692724360067848006726198368894702131893665247769407088316497022153083487496361206062886205277590284551279743729632922878419661880723995389500730979739540076359929417948417802619930863173885790890623668754427168287664205383243006457378946199411519349388359243053927729127696401582143793443927581039765625211093185312843974233206772223553619947294252870801433866077581005385524410267119073517328242583812338148467469580335553716928472087993365687162567353067805129878193463150545141304995025762793641167187462748903024419650627018426524250356919560039268178604970490019379579491945160153322655324705961609162358972301487136206721489982284940865571467422197521875741164173559973518024468959582348450013280485395272602953574455615482362820184825981872822011043324330600237370569198961498906289519994517188728942765551057045874240202017986133397959529092301237616567812213524424966769188839609258332673621325220885352534442105995055527766625280708122985256007262063357752578860515170890744321256515869052868197638177544203391217388325049528690528673673201302590338837829283327953762917063746394266869202545953765167105920954201091326046053063097916374814597396520363384683858643511385925193566066811786750622206770947802187349372119259449892038831523725292256808824830405257350909224986635171646589960717021259654008280148537093993104982258223824354592572714276595636759677800254277693050507794018025452296705720192626802244859005599959954428321252032999050565868200268642780740529650610175963264449553929020064555886009398261555780907433627281827929397396034495288845338819971582901428527063896573158615111333150299613591215200466626164929272196859988064510612853545497556613697184323292565187281211827011462617744492603643060269508773606113690122927252457526021602291782865918913249250023144053068966767402563756880291402369772739966840613822896059854279693574775698290155757633610777301413660899634618338286479373802193662019615111734597195048546390549140022342387555767647417160297201294515168762250956352174173085188318895827820922602357748152532827072997339055198556427898090257429092806695982257598214237962913217407190708649008624838895572832949957516345584397157053344110212999956437032564329807157614779637723138028140788000261989433324036275092024274388470161285287191590711137580233211517140209006206278981457639571016569717192115710995047659713283448954281737367605119440817721488479171419089834953239603202626748594039259857951229874055236095717926253123119605009187332667373338760407284080298323732912967939310862460124255251745387083692409247648904257424911118365320557899759311730329571003617314797286636231019970813267791738705014753285734364769444577663236399381617379096516768417426091709409575683631475791204200613209072617606528941257568268430053313416684215828405190207490247520660763194671912578406085984171736600315334294780925407361200260922242709574668293840338412511786520817908094938686475266531628745871615008944352667354414201627472315137211265748343474823016532050765676073194488722779266064813285081684954563947454476737686513402160200591613737287171397978227745285365754730204341175779606780868191541900177698323253915439996785017937797437618101478317631278396403116789459715919825996778467467320593297889674506691297204381388250487431410242213589481199440469920658024506557773475085673110249489495839603277181612412907709226413595769998030709405871400414859782088600277798593120502255675847662877889816545252921734668735820207242249396455490271924928657495104658963830834779454350662661644356166005388042776198574432741545995332538002286581410129903768522734673132137920108524130599409300063011486541173232455231510497004875814051852626105123505770106924324021140735527129436566770952654927057973557674204243959388641503257053040990915937008280213740360482194011412990586574576831159319964270062613271203800179915319167900656046816000729243880796932514060958924448590767767528267969780230759510068747505754592073986115434728940246973052500905199632933393418041624308997489532521831133559899186052686965406820676332565834329346077321057797458019963723693254939618790009857249635241632626729197255536494930589374523407961796954219998269682819641971640752874786606538825630490059851874307629342441639017990918242182493438635988562424977944982564351443475211451665934507886171316803583098700195606822494928038702577716884106613279886871496940370972227614026807198905553187842902785399993840026860362468983199384134329928762193405121942529059268714653908068716150718600134722043277603073147507242988716871903047120953871485752199983303083167310409541916235393585843651253491175912997564501886771699449620288630952147497773635783387396422990836622896837794263006451774033946999121770462780066726534791924793687806855518812424136509650879040992812364352321987223589197520481165521283642866835034507325268166754117722751787383443180849100005536370952781662478085637142107283285068690256685695570908671394390720045196081127693113262356227900164532183968798526060760142871957438289046435070190681302674880890774582046620282424695138546875520187378215453953291551872705398555984953714749203140295120542159201220907165263290732687355114038787938803096609406419029787640331762113860702486971440557056325852496932922777992512538595870862716776288824309993248110508609259902839094677143005033908488815763203711972611844443381922794076282941658489237738994230107318115786833415940747968368937809708173485994998770203782184701592466981076646117942447535952027419970249601952410248364235850512209817816504236648823103132449149091364766280515701538519749696688506411618879605882962854418710005389159206751436441204100350495513019359840805016528467770951420181951650924163693626095958926439942084836490726192081319179374870848674515878336329246055873464652852910088734809635625708224456757337630813018786606318379938920213643805724914209132166827194197739726193056090312433013581622210067388699246197586108659534669430290137234160723196443202059967961572582073439994570962795544949477750274418581793480847134241408892662241111795590551531006663741249623424202534466985106684928356468812811503239461421864633405655565188265070391686740868339810008889957104253842799426641685571626036474044372008219566295815859049806656385350475514561745649622931943045450668461792063984385458330099152129990822112198232840697784787126878465473779254636641718694781270430412898531369920525494650620569273152321766460809726859686842861959082539271107217841121697775922828297699404503004484539074752023485478003552178881603563740289127461708485222583222089769000620917354603539974530890427415075896052149080505926247104260162248116541466412123135076682191294372546261168362340331167192166761862734088335845299084360600982359116980075566334687154183430533238355809128456539172071204183828507966779393654739484621788745788238042874112625175458771873540908358012869597163626186154743962870247253581065968178203289477276447642894839147741667475443548864854477122995340836236470790581085807829028899664310392098332720481198170963317161743490193995828167885242663329505032328397854492216759737535482052155198028200748063049226836106360076390559823609169864182792890100730708204838496825082599539982968954503763408121861243263692324274300370557480687976875286463155103558289674940341688383574672401853882337236959633323553861283970536579570439430035268109349816346829004382768405793406366378064438342125383589430368655267307803061278518759259968073554173168289557463084619788738714147791209366034031325069536102631268832593189652680447261647104983346565562767758033888942449828472825535950518068918715695724077456870871800568495312827480814720324325207568046996921579014825600513137026802617449299008409906939639789330796912972049124090431051050203961683411159825866154052275485719411999944207810493800600358931312870323741082594218896665647122441070712154086045738022378071799160963477624964190393738213498816562811694008365211697467919847006960839437611494135657757356766224890946640656013890406638409635173515859602975797729783960530487791927645712957189527333378447708847770920507957805255525377589241011219691628721456789388967623252931081164221407507015426139290843525240467189112550844360144108310208184493925186756531793001546176363465469613108625722153570389068031696792986977556925040610333916734687129320638792474099867418335078777967085833252435283123717429200543230944467948802899023289710587584320006234693571548651948312661085708960403488829857363484778270472960794655339875676886114460543649983036739373926145647707666090030181059098614944577122720704625865986272112478690209956483789457332348487409791768168669221456502378577405288832589186214641171942477903804314725114253326695661227217963600074658895684950877245563035946055943898122322150792117744888346503673126542497468875364214277731292601160359892521369611320201643457923755679230764782048622358738765259490221696750956460141838433456265115962345892540937770341693493474066868563463476139384662540932019973097114984126501218193069080202990944570396072876009711795952620496695831651198929477291540203380993003494479038149466383786760144536060410562015587682949055563818039741691382462546921622272450387977698003244574515182167359320270820728933034883764945621241316229278180308867356405081431452484985915240926146506534643534912827428806569164614606938296111046242628491328361342445681885311352991086504225196852646349324363112491229268295724239552995705677651170448837492275454683366839145423580513765615777148590453108923660849868639304157012441792477594925434859497523450474841004435814661142808783450397541362344419457263482214119622280989017392174631225125940236786841838456342335038037445166962776652586436371087898411331828682274165032650091514724511426206122189876954207915873526808721869189504086953112423335095282784468978262741408876732199991058486963495871851497875871075816305395417393052341626466363977499709810657349868090173775361652181749258481689321325225933254740773224326222183354018426477418470999853181417354308981802355245680780873593044649330224707817146800204193329274603621285019992143165554858458270046375173233239205286851133788049846207499257631388876986696008470671148047909271502333706709728642416537595991551319548177352530274709534690495057109059110095295769461387120719428159751087781135170023834484169929753832414839054741381268590592567482626406868492133102913783153995515948489269419107970351722201288687424488784437803224528152771459895658491750689619046109227432596494540653029973765268276631577101597679218371381831107887795440416118979609650754622480399559053498891176402688619299969762129189252305391757223429384327168230120705328252234633308818696979326086804348050737676351716838357278391793280885146289283121546253597282242248035444492970302372384707782462769061077271154472910181867319696301526160734019484680457099019287105637922941285254912226421626437057342166945048846893063718912625713678132688824048123326432864330765535227497616269909880564103987252809236872187958495386249721951429302547335731131979230428790012060554906705063893019839353313075163904377828172938095571166943969606952359156088595083026717976598358625836708778715118210236050460110032825861869033981989760005477802708553147700755168236284712284844685113152356988521738440871662597829153872625765224668393121128205682335901485191775898917004292731086867967460326049741749235534021325407511395452494353008666835973650232238145058152090029414960244252769476901443646943509467269524399922791991843618591284289920734472610093746626363170121740923881397736202062348467035086414345664892230753608647220120129219783775153441372181897566487468838199733499943133350424284052352806588950000838919554571688383044886789155121652343117948885051058241871554248373736174387648911362103336137052152179512029987536142168425510662033775917980936583674515172228937122155347892432035869361625315475814445696718552575047559287074783938093973790857896550014506154631521979220214982000728209138937130513542298406608533715388106055104931619019245233320106307914653248095305750269140566351392925022240137393066077070429559122509029403982727292685564835368400552548319606088491977721021483090215666383725307989347867329028003832525554446311620137154078277083877893969550515513894653844117778484355910653631950796887697782111338042888665138936915567647250929776197833683311381263514663555235804744796897512398662350173588991153089577764919849108196684794490846456699599389955216176285615368199647698899130470414667950316193088616285882600394798713714370222764749518974338469631112762123453209365055888859353404523088879312550680480962876762838245895671189462343199337818270395786155501675882901262731852252684558445091347653013331319841827975757265523952180903871022773121636218728166326555348654339595125682921337289591779956840286944822365176146757544632174679194071327096076059094018249534392553293329211417267918844952279401802095289826213600661499709837634988867666088713726743975946994465788464552277879272248862981931169030261210653700939087747208351611503732238818111832097788159601453180080736314857888605372868432866891115027968313042668010925852163067324124512946764363462009912702446580282650014227095905430992196221511961431645014248680624508315445352113576395402451164603185677751563067325796913133182135461267841813019160773242950263636377660251324849104608981830308652068344073673841254778189863682308564057540125136733393212416414462408918111024170232657461773329600585600517832801599028985087715002454042243157848508976721667397277788222040006205195416380168531352304959849783266608903053878404749102397905702885711866684570079828153721555572243411685452469527918661448673384259224964477824747719801810365216099226999131306670638371392978411227910002771609203041625035478155514303034075963362681298133954537053378459101534914214902379865499939037621007852506097234111005546743661362974915917058055652454741769634589018505917024265427166738648579218884135420595441324825364334390616526014065619560745540325411050511812886022900690281492338188993650227155698821287663493300059566153799090295158363448262195458941643309995328983404741560588018815271847968060828592526643561177450325348863389066909178272329165005102078063787124977107565369466545034536032046726213750606840494416869919745584004129469200059965837424041493762409948663832483870280234272825416938007704203611732822210210729984664136483313231558468985311541256352746539640140050962482892774254807465478853816220806093533963920631165684029880552988470183025297254168520501229441653054880839208257449155546094704670601068735297946447792206048248043301779374964378202809113794208485185482301216650389304471426120191388222995751278865349707957702948135519865494428467967394692112794777872337414880680812739455636064143678616496622170803074532300354661643127984669851897735046694239887709449779792253404857864259321596216274377917842889441424824769850961277589167940835765154949303437632079231965779317925848151792759142480353214891865538521223485665914042319189480783749357737968469203669560081745472645734520854120815404616350638988698881031255222154756648452828539729092278510427619868730341019014015922196552934127080540571446069384630480241543032377080734267224197081840479274606765274594609351130610406404045328796174223026700422335983117173617060268723946299827635927607216819801650260754972141083293956859383403339527327874780423196072735557811788981903986954364313332571115301033994718596511757353548973754479733827818531016120526340754281954932653724839690183862456645334210178321747653427790213183275631849316645756681114619929167935969613056249726677622045638155101133211959654009047745745341433312604476127969969461002562718864903274751282194342007128359805255258972997533023055791780893448978779772259037232859745079932122542147653864167375904793848282075540661343818760564781899718800405741233510033678400578498718734513566466204179802264621412293857314250880641776254392780705319217763920338174681361106420943118529570945499983120031441847355445568241448880719876588223812373957488291304350214374474709992219112722282427519836717749057896613232534556190503999363607036154130302470713478308481401029090351392297930942934162496222109965653387488415371534904907177847613374895854714071648891558124262084296378639433554824738997197985251963719546928863833237175848502094815256568663301672310888281636752580500520807697848611997722512413082816603666804407970323982678079383298286286457133164392552310717164642028284212652896413687847417904140004165415409295638285169775125563824956891192449304551576760513441893189243232980709841676723043180660167644128470057195684601065090771336246650890287735473753601783452152285419267090450330655104887126565172402899320596267560145085234932953078205617986775884829360340367333285533804684669565745616218694645080029059183258807291500039851053949822963047944413305952964036749033914976980022877739479395359231036375727787338993219576178404059246460174138323398612844399526807849078313602337794514516744069753156176483518734606828596169420872439467740188865144873187971174507174615178991599744039664994052692816402078634775740692591200122247279778719139761089313841363854933440531062655650417210271928236255484237176149105215474234807971893449309613578881475703492096408459978132291565353311197336383779460270456122404956492946306503649655010506684775864345947463414412713888157987237756405642070669383928460420206297955712703181141290047572852485585425616159469039422569354897635007726424621302011703826194585297162771870958110036357047746751540495889641326833193320116127897243823794510176456472129673640761256122108791265614658211585481747096446282799536521323346089063699894517731952259026784861705919639963800625982113909212634401398024025915653974372586772922123742978939597329245590718251286100431032584519316163593473697529048410732485318051777647034607762741502894608906274338715701027449548649818122705209879119234378031239549264340299447525250839601770285975722196986082400186840432840126373929642425026270183352863401938622523082148541861315050371425806984881834367425519323107302633775304912340392529652201109309623267554906462033687965653187440403379450799118134738318167229116901830635596883038701004730125388983639966557974695644325281277487566208993142605918080885609681443455379078186994666352934832459254600316123434229650356222340074911793593088342199275041341068655695100119449894999825054383196936907424404105904404936332868499751354205745739192712394603143947657046433451860960394722620093544491220865318100882608233329735569589277835458120682923531611201133593205232428942098859138483555576396633945767772276728702863816664634020208120686022648071504239452286251533671722812223805823105662338220219930135593242348680519470137513475805582107508635683187296719333196559203147585526584009786979134869771179325561150953500597670881382095173525104219381712047549753171560478090587436671086266248485880218181088481858911165589093353812666310185484855578903630301863872931720637204338722673197938941153184770619862005248443878082479792222197023095891713665860481930678847110212460101197130903699977839890110122764477607708255040612857003379090914759502045730147934658329745837860288039573529632697266232796791802095743230116554470274339493656747860107966232619776284196435486286690384305546089122106289545921527684343211289301497597078227265551632850288399686113622704076667396714351020391539440124352941988432920095855201871294122622992927212528154384858053917169924333599620976380400103920519121259889636943300145232763153234069611599010953872024654429788748874659820504012870247645320198688131842816551231197152994290681449229376157902166733498459450743613497059357487269987258153508940949870952813927213033765202127392276529592874883058498850323069998336928253433958360596839121797447364304078328710227489383882233929488462725974281736740663991009177113220743264991969661050480086871810592762627987389537625493610790324314503057183716538011887161359715519043652838849914649436093710509203386997531799854862561401344628669760171097198148420508519191825054384848563783757475753956249469797732920218951193707867378931958815142634031429566788725056702508886961373296338235598928242784158428568884864127257785435479848086813395798470446649878942254929918788030377898212870788986964032135477454957081205474282658131763624415997221870105346882868241257709914767936508117784722335371767790297294369356829049858763315794272032946500243196767024095103333500265686842588503143744353315570599842537429080394961261621563288068447702669963725679310757589132630755910295383918659941651922934823399514731386091510011752380127420464325466738221698524435464289926062491862389914171908971311143640588837737024538272023319665798995023487272729249039981169437905786939121533757597146953451112764143492236107850846321362362223783018079901856721751224696837662981567179552838625116943860344168878514715754308237147641868197928075625965000276876051347859791288337442564096550805677843004289394413326369364291081708806094125556545211252404956235639514702523893901754890515883824621193227672919178790883149279022788226856227327099176300354806660166815978229480494342344851746974389671063344928975796864289095514774209027277148778109388291179919209421374969521696068351014939959558054376769674815328573528573977369110571466361322878138646517562966317313023081369554142309024616569316205712437938342929043260319832154736273681786695344652688542316973299115853882756495891664062975393125564177454575491703854188615130975739482822693866860762462112401227842795805847999556925514465209993805999730468610385329525091530341865726439946052501810214571844917477973719149122727571980872709378887156664399831069863296899694225788888288437635615394782418412765336677689069903233061259443131264736398799735481476187517625220080630582135538396294581959612653027262932336094016165034740212317868638105063764416171693379956353197600223877491707692385912530854270281016894275969920122120120756315185505131097351988845968640264010773143507353332291520539872727158638383243382814569259991416597153790833567474796275057274130512950236292202996243184158151055250942116119435048751573677623014582636384611971105911908344262765042182480368587786992099457946197982394881498859924395325698778045933408631036914193476536828269892087245121419410225029992942571536597026817598713730042189471674955797197209175119834851941981306190349710507165501120763552670473007354418408094503652676215284170391057130100680571531139917773422489003197129084556668721723486102558144037192128531439584323967117432366380858078321011894915227301112468307336279459212418001024422506970014351378931761413184272054008021903796147672575456051111905758942486061185295418505678778485053864844992209439445628638561905651986458789461432377401253825607037913402014229201210196452251165353780194847776785915535376749095862296655082554993748260337933256068280582260103717778530165269044776392534904702471303395895871770365284333088938051863975408806286641639861265317747840089764508060666330582480678024799214885814155202062390885308849328802869766963815307086887485961838760157743561059633363581125094300502243719394049212328845897437610915172241931916310823268833218003443439201814256493648057910845587109011379554326050768643325421936581694682274991719480805794406048886368860976988705900662920245222955385753802417539408808736244105673127079458371345896824499761690914618927894187323595172877025363352635400515583820238855661879396984174880704158225339917828057003361018353013601152944453040099699173809445464943599785965360421562872139039910104618746290274780601911964605343522665481074776867771991501756169751566895753235570095132311522276203618616766614242811429331700285096633740884827037233533944020380251184002705295838151065780354992822432092861323759112718887510744790413967255323264989180185591180624423586888520538992595505895386586785849485372921551334143671021731070130582844945185446947189848964981922024924004715969009582148454589445003992186928692816835267571702023640350465112442216845044638809318455243982002134474650077008543218710429251790279524692153571152647151574999187683717024374961249188415251396325736562924187105215834370984605937766607186172612683543701946718208428938257040208704155399164750617523099050503596116285943328577981570538726155624832839942911139157949151432291909812862461761866829686736965800616525693703207314079741290186601681363228230316818541763004770489566311386286698306263012057656722922272532949176587824720976287713063203819860600254377203303848748164361421797144194635453886720206532606478515545408391328742184169335340591394000833920321358546270185364137422052127481217436958631327388590969828508682611815220662983041074191070934226468703687729269225809975847648606925327428429128383766884428596437903031367628037243855509794494899075139801492112079160147455056114206935834553051138526792178831874871562277015606355325500086572040278777734269073066856566417322551519516326039840974001122756601879690791677920958797218251054777360042814531508156512355416546214546096409656330452421035284375012539755303406817015153142240586527013173003176018206012953838648099111857930365476242697540605248349388158194807904244537746921353177891198205330071637782289931971318492443945057759415664710959788790093940616469648573897767238940005710353389084672927696785830361586478043629240506971952628853397281008933281436015201070215516502966817623508699775253086977315854130299576727079025990716522576243080251881049525791014225141987364000980518582423930301759559758054241703146373878323957333937349975784687254505670228679973114582295481669062302202910535742704833340306121810270831153058918576286357870510370288011551035735929317249649565626487060253655024855323612026550858262052255516721529301264329903338643224132194051793773289905770891241462528591373753007765783747840757099901587802635095251016771120405549706559920593588674347428992533334065511760894467579622526458624049584201990807848997388189961606824177176684987711274526729395079875108348065868054642064888639841123889327732998381404343221696724391400617136079122987635534406420263740917945516216340557948809088192949890474971091889941731639869146035528732769995385105481789049955538300762842195071911068673481993178136733379127823551808350232874878156220886590021224597330990779893106490967417220357070285225798740223618862417784031743228893824921237104270448913645254610401524010637857193637963345919493010964025667206866335343861972868298662233990215473028238624289193448956637054524825104308630852571088104917272667226131469855828918807686294295007930484119792678631917551672367046612501461176850616447184382464222116706485305444116527572289556525703264708169976338251444190294535264652275564345097933698091277812197318317536392527567857411796206833355570831945305031014021580516496341680997315527836341296378268647782328050919837134910039699605979420979804793575691363565557440743537947901015631897272789678240684771404116295423596490848065716597432176321495431424848980904487116762518175417886727525619231048896312587175154016887302049603540759714160741939076258905752277910053606544722378450137876385928871571675455509217071130561686175546704058832478494682080966952322188552641598842493863949091849552465022452118284097625275144986888210547801633385855093461979593942186483483669918695009658620846777738118569837538464388131661418226498406576818673426253355286500942887786499892636419611929554958112136529264808256997204900855808162362847941925592111284091865137913023340098095595213786580755475127918147213033355921063076007970077470809302918504334532907801809655214574298428829125909089539403210252423640522850311602056780493282274964936598501972013510203803644405273825257789361249531769839129790020811823553595800518964176759412821559499158669219573324799129596874636791903110309413573548801242767138656805759644522094251456211223007653872707740852848333369291263218712087613580453959512824617949603588575054246580514109561046710212908512740495080065752868745788507551584279699104157006825021139766151348162789186676722660208562570759641031953839950023519486394170502945366946251565493569583820419060125863093676077265168008275274758281703682068669281457371286959695581566890328598725625710947764216167386521792124066669350097785526869981949509673822469594900968671503133658933569911606764185768979607954473419142145695510427837368401227308535198784865553703979096167326579985363870457454894448973682306834107187878983946811290898111537965309909169565657927570146615628632815157939928555745682063191076417925700904439853690813469341719799237511655600425372097847104366567811164900309298791288176342942536336999270830689497315829924029317547288973276776564819784734639145442649138864837897699615568013456648312425878423638623748738762856283495266295923700199542804495510384149763618842873630298068137917010186622308515371134282310873877690642177423769738817825265640600660100688415160602247929414613606967603879912230930721317539577388114525698590821200898915506476804671558469326311412837020524191694559034903750253209294253241368301840044177771864846748751492821759130433021653662859352887455896061458951009426561707593530622004078845194950712059974194262177538055595310630338664826411755502989907045200308492735460375812811042303796389729950939082198133047073799664946453222019658339393874842758346655626905740072137526984861727692805297497168110528469870517478800700853101183415015645542649137313935092133428166448406233029777706159644405936011165126966124337192280089890786569605076461804784077099699096672070274559776336589621046285270446764044846527516680812266415766116803022788837339849945525789131786618886152432779589937693172512317473140412330317790512291881197503196710886397664375657414417795275050539205860113484941147423138377898452014041423641745305663528647614609853840820218258865276718113642076088002886749798996825916905223651537579869383169909248608329932198871397008783537155289439471884950068267666528271446178048023267976883244890779323735125206224294585064452901936195755148369123334734728626995574116941915206394257490554773408568834992136004842708648862354682263198395250843682841566847604401871053182176232774439398109140108835649993420746887151664400371135256333301133313530412798443038854431970085749283397222177212501329549215676020705930593308873308940679077917421657644151193540868356142640428408830182134717971473947653735273078281699368783978436665306652941554133499707709666598034404148193896655740800008206354266630704512995587425566407903524101478094880178312846969130074127916452747566114154163763704252753508850017442891848410904258849889064665233033381278913766166787743755689466159550003801887701859971325047917324833510149947869238904005931502949566533338974827876623539240374983408657651412920762843600496940340159800811013433098646286374235704627723236754889505866857944331414119634311284784319220370134098841452640880121478594554650499275904983855602008803691094194634546908272463970991167100927403234301346570751251973893270855267476450348306941133113234028855458424305037165409291113127964668998874967935467265671690469223139586875383287481187523776131156962813292924406369699240707508708125326796604314420098642179646682307324651249901584263260019157484613035078233992024953440558482601498896714195288060983150568871268013831546631953709190277759693025098585391016658689362967180057784284881298695079176964582695752439859778850274817068221692644921009694634273910309682735993450122319914432793016314297372632609154621451787237675336017399668875990519145474410692059645422936581764966602411797756018651008890797448874494846753836162902319495220034661280124865729709411828702859736887931595829833199337109960465480646323777178186675950980037804966092265995760829681556677136644597535739738758576769968536864368378575391298816758840985583637942191112780920404172672081852396654419615035163967635993181888996393899952188987476219897691213352876187619482689797621448878839919175689769394800923646492918228013243996831025239893873772882455497329975708330141220209130028411053003403363617437305701031987818146631668119313642703783893278815744095670133110182529357320315490171712090225054394144218199382371068363290288304770029163570153664049731948009906379077412505813583881190508389198098433824277920489335613168149746904199108051150611362017073025126222214627040607784876777275860365716540282203370821144835003897997487625809743189675513817541108210951756336349578215429503648848026240762572202771995872859894129054287748628961102327927447113296361243949739660035299459294395187743433547639144457459363069867321398428917494716554087822140829475065882748944822794390741269565842457414844234436427137760686834802688336684761506022632641246580234430558656685467368236592842590657236321765495202243595474258221819261597235115953905218486964882618253127140377235922197258886200492092757306315765045852991965495222465821025332354892382350436936730035000121149021777002666167180293669092292750227541424358066451269132700937858150988345484166445376861093493507466352218674159611307687739823759972806961490378860658626983893492498042110561284692513784000533078440186445807384992196687170498098179740072379260495452750720795887832160504388573176976763652459089199785270170774353775043478066908560101012427872792603929442884363220832944501761043462075933437498192552985849637093159643288596372333591140151095321956257872604170210406488602628097097397284914638289377303229101326810508270392668988982504294669960774566827500699645582989875155028581936301540238638632578966924789337265311402204657911857035757122791273584103883321208395236706481958308597288815153360612070743772261427523531018585154724996578501202359151559047980721801451724168194929095725131053563877349746555477574248385015604093610427875626743230520347754397104695868477920049274839516231656192836829885387615348839059095207027755454190476910126887672793951038542573251350111041845080647700019249216904775850405455029393439727096966459896458559957993550574297495118873929359368891218820302855775788817940799771557128552064136361428717599950872086724137667348116250875636566021175429838729283084611262612619635397005124146465275548235050550636172655578214187308359307520929149607385282730457834464244417915321524832701407547927114575019244523446189483749000180239870348031070584452557529329509409241775420144465316934229932561636498756521092312594680600685776533203247890324223027392797597556409341369213591064076511503951937488670395963653181071180807159230240485582976924910174868079045040069093414692763467177224198325478540224806431025022445207215910410637100714280335551861162587567177378596972660716227466064636544442170300663985345900807905899243045513256344922839226268564603986803217908181722158750678391549915056204920031821853082072064016091902111497489709792609793692719482756955818650453433661050341008904988242319232211999323774997243015927142708655553172600094938113620190565544747702996746083903493109559476457720564712622348282758504149148474777899625225590530413130913402488136861291844874641327646079211514808654189618061817487480226135217660999207053973042704734106545032205482030027373501943622299112106929072963893503365782014316067609869958613853447767705538375741481391292556549201498380988250603463054001511934178234111452295394712633290861392392563370393019983676655923339280663629388075942056281633021922785411636782153953683528721968393477822104322339189387452992712391175793469380958866820009538509839922150593794262456479521338257196178644957919532664979534132234895867246335867135482104678426347755973584697083159024363277975914719251615068051336199419443362271215610018122777249880818064544159983075764610700203475956137924403940386503736687385957204936339946155048185709638256588244721752872045991003473036369621950043495815220735295128155364255727194238191182297481012193592748337575815884785759897947566757262219435313438622119548201124409524257137211337739999908378706899441780724689625525009184882945715412772496849646604689339685017624435764464647787096256162910414244605949534582881933572480597838858898099393882909531668469244437902515973266922893594808142247076383237677086377504399475066779989094517664984644940601824952724007239949854399235808246961169265324312365658950215177013796076194986228048110797148108186888079419139532340404408123363040018213115687797799039997117671399499787676890437204168621391089318997378839952724453719068195722108669788621298214678194333465838334479176154157175675446161838158186447855762499060471356422586575174722279007376794432670672302670053399783162172220366934043703990846761149989405781113409259550349044041805970931447287408078667539760124679707412633846214193149955872782038307552193504681051245094621179807715365926719296656162725455355519360114412157170940491149539415284984538279871397450883989470864558376049004851568873465737429240046884843608533606498283015179053084722091613981958765813123475905538346283981502669585487413937806947050750338576615629057527103685094859212366372315349424801659170110029166567683756514557757021059162472316783155244370710952351157321646225048339042188282589115833343857827038744612584003765137893283142790765295600227787273683603115531014072983377605384603810470199655528903417059497645145994079659739824479561488651902366697211893729073899875655320170392352253825927344812091155479870961833468289655735910230546248854167738910106494027511131677718570335959822759510844791245196200093608834073704480837149171836618104596387712673942647006019079261845718363126778242047562329885396608960196201483961598809807846853491793405621342527046483163354961763959978998714145965506938102976933382898733792027085772735799147893988928801570460731119091211642209182725643389631732702346070388115344310378473570370411903137823266113119575482724629390864786139654579692194100797541176845708264324529293185947243899673789844433672121844016407785525994860669948192069539554344810945045204863236154338538399691308131904111629197689421331856566873340007225098267253935367283170088823286679443387498181237872969411430749242101208411199094190354281294375077343014133772690893838492652013746408678263884627116040186472817326937245711291992172550576957691980771858306301255205432220082200439793804133188944432210026529919608691111939085488777441103444761039882053537608555313245625831787451090194075569790554970552311311295921680508034563056084644953555782858508197207535829141689287747531397754094738775539983465066315753577966778170145957318982791377053402537561131742700962702434110891258629356753868024737087346033356585931310806057595472082728742428947675554639240262526676115835461311585159359374431758810690500487596846715798236260545616832663054867389209856129353979481346285413989768791435224713532555951026250564454734727931652312532043974771977935229459319049959895837668001627701589838122299805902618416416701410251368956915473562402879795712740703410598747614884565849637520307871935862531133901071615497132843424037854788263665708691408182404785167653793900062687266508208483572989456085198669368027509747657818066988199996516733887842294876684667367091428411777695400627273179924594912325529060516216037698707830905243668468485535608172452683596530564245128265863681172841958909338565305200737063862637853251062988562901471662369873511392381314340326384538067891580641132800057485672655024357442714438857466323091997394788335938322418124874738921393908340872401338128470920868190208499073731379253022179344063823144924299749899551385585663762415970467517327132540137459736554196512146951304079380352740163921265041612144929777008041076002680454108362416503306399309789056552141519916119754942505340012919153483848781300686569116573874735331598733608774986654553488568310084688653759816626359334912678131813879103270621896249921934491455583284019671650020416664755761465911371230410980738394928079628680586091627681763646543809197678413372870313420134409250913935783240740430583551885993653775760817512367294868203809691849060416785726003077463050802721610885061208652922016430405879568808415099897532529447836587926648966366413276639044442802806280343861462081737219198372325914032735244776240532181803614808997618635646059823713900147242763889679219645279056711780644992191541076998980206640151801200473540217061388775057687552267948616869502890830162732398904579182793312632405211196534555193894065875296634757159135421653693709288744366460989071956962442911667275032633990250751829307497627803442750957870185006219149870310115505813491686963190205231427234379036310762968691051219011472817645212549442254371897774722787948518643089521404676450317694026628197520683473027367317832557933648542829055968395412099414248521453559074402893108868564075893220980926762014415962585896020785098553683476882553023639402856352652051831947211792413021251181213935457055950161903314041767361161544397411649062456812280669100138119291740849591256726697054527872862053978854816778480951612010413871550999884134527943707862694568292328840182022703798574335705507857575202986360608465692251440925687252877969014616962792799753428088368027242994722929759473577873627232362434157076485673232852070799718943161155579507773079649800821880213343636417415240947065138439675378070494019776730638220686765147032490214667547314161891181852870382936115726020558492841429707543732385022629959123863281446807085372285354097837273460696120330921162852986066434508606029614345127576760045977186507621088784061683030251387152737228727827343172166789960817754188645711346172956440185656673482026731775932147863232423420969455559073936191988530200390073350828734680023697582408984718238625957499066660051667921571732164990579293872768811646015441645683547648339256564179625273945197183844933464178214653796223595606785463121408245720721721707683064792315228950386347327984300118739331418773495959899575854962569894793993680685033341893377955607716242619270007320021356268583725495146926790050516358367300470744386786422735912484841740776425916562417615362075461648880943786323860335668322661509084418075410531834886165858119702801921660017973263908127800290248346728588582157570588726312269455834424559674854151582090747907867896449071932408468422677473149062353872914507753289228513889289260553275008776646910262073652174503895987220937907308075207746774780642557592666303976655084478808895271921196335258948249728658471097277121000938211702688150897783642858041094541550558992172447061591001465247932029260683759068203742887154192629988010171752046846043513015802951501433966295372830386568099794572244036109649100195698395322172964685949191750697735440271250394614096479004324416707805432219047616549284555027548929012602431415078712915853743096650117499679125180815940878544659216499895923998410466741539800744689904417426599416289641447713165047237781631536883552544598619407949386788493061035209980031804900696082780255938040512901761431841449186262758566531690907962964266928786329979145506716884413817850297444046496533590176601623162485111983428534311772982319601496601664307784010756820985552421909230973001952253705566752227469416057252756090651709512816343811765830284321492451918428351187358894893100685937343906783765419676767801613450684444954978495339114965857064789648753416623739940919170761890778524910171328362554234133407575610042266197527306579298297487850500510155318280302414790299654198140799035500138204359907377569299067698079444648939877500044627350737628457346136306942991109682566773222731926757892481797377810038517642159257475991698100905888049511399787086335752609360125275849811309177201091157597249624126840732422913023702861833241285125010733293063485861057383707204814844137992907305188428992727220685599500965676715099978706668642716045926991520454400291937122031340617928855868064993744991352902203603829999083566769505441532976159223825175028058162786700769710193445494577602125014693380712199962547291500377678180068044721234445987742584319649844027623833427172433197862521071199257450800724430825366266443910886897023368447773991715521354517001330951635396839093394177790645892305704463929793978383511500492096232451787103274315268384062340107093240415954803779772260436682609094120373058572824820477695588979969456027690199630367877131569982817841400388805388470222446793638262981178544530156472598417873231172183776865357300546429045689845691706928343804193716768513171858434791267811038477637310483733271493138841733524077394628230831524064999215163123738623300955908061756960544716118960611332257556536632774693842693798779376369643482775998471664239258719522253537443575675374037293954642370160281065962281195860458976031151004819133462115434327834546267725582044258612771172631968352567028918654710827540930237072388668555201698920198088334172437689966008567937140172835435644564803358747660110561842152970326426595980640123880231482002820353473868003076966359116268563842430457240880631668635023045141928356177357526398891407436562480390106673773989359362786405764991846350525516352758450800527448562006195921136219248993811348563186413292676304432999717931122197585092583411354225653178077058380882871245260876297725884598077094715671032704312073740327282796871554994419540632414300324079283465615790246325389686798183986376445092579228482167005423142970559171636283668468477987540596079086413072834648779797596773307090425039490126538667994738052774123797377075551591849463027306705776335092745567908798934172916010475032443271163805575334108324662557383426682986066972022919560267463701139034579764899665522037082485705128122557802908597074506723679872923064967746073901610852500912888784689288770667679994841990708265769390560647986409168654814401504645361862629775792217798926903824209233583594446173938430316599878229963819923062687652955914983934884744587222640807796847614714404858810121186636015850327815998399317564869795171362265688368339409421984928096000550333196912124105417961502439308589316228254336420293107428303143718072860593039318255083317731014501793243917023258390466473742181275980790181771905623265658378785727553594137765656198060836535482657813691395421566493895651454151232404588703164668742888135859443338331122632329536524692621099024504703121863117836140710736891675933837343395465725106050362558049486755011603499775198560661839661907730870384008874625142354805740532715931844257836087096967094697711939477653744493567119991316591291786241217621910620027542627260831316117466583340831552001936827568581402270177440949515627654480022486608630785751405677932738514064753504318233257239486908754469626820463873463463914079624637863488177198248288726634089327665959078189998548306507188071145977628700936060474967993053002062546467539828703606450070950075930756148583403514200157324503292114348589328173144643995866205460214645426411256223933281858663345751076526962376566806598283982718794449357922676973003923684798157515153336467272060486351009135823942755244378029734121089640203377243101407410624193482416692461609961695181533777932737070960286813811210488005865209130549141476312564492594670082184538481873633621143382141318857126203430219735495101489461536820025401575893522558465422619147247687929509138579124277555938005441871706802043328669258805742580963052562331419641431457934269280603114353969732303283256150695372537099355577370436305580435334501131519115738532586209011170319781937579848806685092579933923667557210969685136241901894080430006746587843530820955812991746178635371887407317251446900706982294613664092877935085609531198667615425151499376567643493308294946367709740455810759270881141243763633697284005724312595609167830392217416202607295757704126377915335952167517492306498871539505608237623629836279167228674565981154094405522862817963620154339839537584619967769793744347284118392603436012720016716982059604111326293766115675312448966663435680618881470119815636657070874301304555641691292883115755589959431032835424488685262297767379342262955144357059364677273839166499441264662348658623792527172305000884589622611666928458180285630200011482211132956417992466435506684776719311855693010569577178812315647466491545372271094068163276221284214156202558086354403585466713411735487174866323583246270059050004770247826417589965848175279037392170249836642442114358604119042177569083341469861405228727198167462153401902569073041805424252692618922624557108051623681884737445230850466150080788082058617064389793682209109532403816129837055672032644270157085098833307098736980338319070698358801239164010063707961307162774671469741439389154681210117718069520401823579149000845170290719704303174050197987645485652193504848193773385207601417521886011284382472875131325037617073447347706362294037534096091219623466953206980709477660507053893523488936711715627693347207960252590135241865687920257314411678725473403718928571623990371034233678794184317331802430858942850137505956334606299047115063841608860711383598173521485568139718283219064365555070503523229387242377202513254459835234824025193481545420703581524544306354308533244095651911134464338847847242209418398750201525273308611344996842469632900862694189232201009448159534929434673331631125764198668006448632323391014737231003636305635419104677418906556044391299108517916265135486272995640409820742660981227545940222709764865117284464147515587476363342103914787667344233272705403145073415916473946085747430629321710265700099999676230048944747885539287724759875138084431870520374169363137688092056514978600168228393429083022426711939860496368775312504256698256832915352661996097376893746763575706893973082202340476189062181009921385904107755255679414721322334172482351023425845881595048766896364950497933661177455073665785836988941136706159545814426861512915934242373978575877959689948291345162905724858438445761727542725262095696851872459362207422617240448611353938538893886712921940008378209088455374809299461567696711992826968049620351344153152620976975039419445183731454483092478988554851965434127269558142140126339077191486650354063398586462516812061541951109015241612528273969129177373658339348161432532080252928848356139722742390525529416957067807003833457160964598029346744709263903289175663648617797504864398731624143561237758059172013796104454007951114409886821110168055572710638754051373028889548328650817561953726433233091271306955043146575342182344463919350463958591905006820805791594625832172659230361651799816555641568512705616811192909096479509268273789703050005745023922940914192926289823795411201467191895752380421577423198093307667145626368034086934531975302103561766222354483057273777214973756646531686020489267517258185329792461823962703348373974426851584800272511584742130170241815844266761686828831246944663261705067668200244497401000053304982276503229500732812928671385790794226238323136424999062094662295661299238221195580776211951844461742836405761173636065980250278691219942697730227049531252575989218003118767496255377390324040320536766875705635745098222242581567948220213864190044630864486887336477912793478868561291919104157256660089588038759365923754996641907991699021703056878572927353975631211681734901985325245679150193723212484755638975613516550147558769428031155598516487731513323439156216316951552899001789652856692441125667094830097463427460520516555529877966899213831579974823729659431445036068232787660045076897668908213178989613347232782417446596007231380849783982145116917365938394621708573587714738082429287958714069238430834582985745697511991796357295678104952705032662006170549430122257337018823895549911943067387853911939771027326126514062628272591903566646470725210689497479112902237370659030149195159418590886443466419962694207348488353451671518128712293856531186523380237721097387901664461793244732138431354799537634873440556102027142974374644739460845264943341408585266932515327850515619999171384109322363667595851803658198929455366392485847284610699054463610929848496239766772486337810488187532895293174161266559627653608660036165170338692441776454105919722464640981150951646659925714873000862200892528772233983489919456889245650376300943153324324057465798127413328460855812538647533743334662396872539025094123812761921162438980085970170969392496228386733438737638702009849877911118490478849693072392363738895539213183453527795071877022477773514584580987112744155126025929571060698799386556658961218976620845461915587901264993557251934570937416455204397548136247713674801957437027229979724172732977215339685722748336648442243470415719543887947550208787871477611427759825945442299045945994004694614810480557460918913757653526594116947055644406826276919254116729375539653528471449266235340961183090819377735611628148778436136980388128291823960478599395805093484300678822350289099940725054106204760114791976694107182022328421561012642354897657450332293946381461747507301817752891627101096382886383857199000569159620419836836724142286822114154395691331253054709553841659059455437422210011168814521880094803242959934110902431703423230313103026596101357237275003311460065968080410854966340014411185444029678244505987903742137954344180495548061833069123601027418847550386648062851586970245596905632353818836746007137641495341448039023920271427346215250207229986951244115581384179970280647429047364169884717320765865372133681253541507619385264075554067481942042804214553765014211155136996017209430388208736988584254893101809517124143122292464347004880760446104027981629713040845915993216036504436353846030088880732480871664664063243644854704655705501519100976881406788179117597733150557458508873292710710895811419479353480775245319211828784569099330079357511140388892208390315053393031188246144105372727086844323423046507910985759707947937212348105607697120130263320732594473377318536896624543139939617815214976839047095210389616543654984676192265806860086269891162199192286884706439751830619476268591378428146884264509193152590570270405629221896254997186390531407631941438887961911394321097239404376506978630023763090720860301163276368291541617959520443519553302991410983038281008260820989358126964072738389349634711684030414743055299012545884327022727842920730279279444573956542735410201146097241740651464261855331541184162140648411055509748530213361672940533249769694447336895792386958525745532853216042639662798331111409875282533137653120192189537414205655407713187718078692888032486385819666762141686927138251554419175514064645208131992679334700356676065996009699608582705958070995445153590739811197339859778458622815921920533182182150880311911095630578489457523922706884665333249277598099572417648441157907629075195044010487302951922920277674509552253853637471857385438691415594977946007334053145170563977266981664295763502696875874885790718368328331968191499649768104688100593974283253788707139443966773651474576493237255084569626908892095211288476447574615744085876182935856333770785086402119318347789275611192025733582908739139372946269616046854122272271006906888826375506431504804175998602657993059419286656534329616551088659410448927349957793068077292723091057076481219738093537882429564784925380609898997703041103177853809179152881214817289176810722309705818093549461529252224759004959250124609195401084027437324859670840104507581998169456929570014907549284676506458888847752546214278812351016548857778660062164848840183233514666303511295632428860645275108800313824949549535726100468090278947467025978731640702779368305439268286403320728992222532934413114149753651432329298875735707022286970623981114388258641643968824924227185465238500496290332919144110668419804656933365636600179975928738162411484431635299086551036515676690971497290781302017931932540000181166176047994492607816512776261806862904482014413179247368565229349221466620172058864258083634689930745318014085155496617553961491860703149004968881935301551660836930565768486603730883046645719212413859222926459466235401145796023728597603851142737915587788738786469615338484460873314168524236495877265210944341493579909885471004492694858531884641598959338226976312850827645582766485393042676150371632800512797315774405691836255629538654491889948697476642985257515931632601375480725327342012838484938844785261972940765454287487159030181883905719247785837512196211404557900710410020712733393056555477666196765936942743268617924624591600874079669381182512787491205402325586026375990261362435681955868216402183229187942131536846093162351809957087819789903215981891141488724447676481566849242724569227328616476772965564824085249024409038237602205158296837839553709178559070310501701274809460601549161094878765076605551379674032619260117045128238938862762590113270262218136653129514309693086619455645371947244139176209071607755413220325641233646503909263997107593914968261534342452939674022063905626532110754279539822804302454121789397930164444445248328478333524930427728942454206753114385559791571912219442654403848586911761123419723959602935940107818804751323863439666062172902991843015630346034027269893006575340080931580722655449338182915492282334636634373500080024584426029613589874621621153949919661211478760664378560313965858057244111275931876007560264368613510050642992217775476964008324700974021701464636848014995572338157760204826323288450873368249897587830404881770538743941426762229295108085352137461263685562722567265857802162444137591089815207945708271874347452170499705542809455074863186386306225337659676267199088564731747443346283247467316354339307220786308346891276414564098879690102496906677983854250053517584848336908509406101948031119160116460109211253551862488464371272869915912414262819392540271780863667271363946455076969799124003906742215828708888850390651997989594851357246950118370092868612242790995726535616011835140016205822672943194893066091439115202232461185457908040016484107864289059940340740506409909124076988277207617458962565374047151572872091146854948108216065943484516674837591090904064731876872592501487041077235542171278591968857523502107867249128145616265207254225292809458923128283351560896747034031756099938668880778424128885103852168074161975072445972960085053606760271130236865826891459809768671558855874444158703597815181300674853984675431566919004343019703415648466355895528449586973577553588938828230407504410278086303602295162874761186827604043437462275334244979847180439316880944590345559602900145854919631287239407454030698066973443157730742275359414067471753216577714942761223756057193171655040652412136169017684807702264316010378980459913378177338853669962423697068511108769779548914492576454215959805180746990851217812097471853239266108978529134854432263124623647579201161507310216872768626804019970906290059723949595225067192260546786677023529893379424483599817127950470783220899002893676431113401070278463471627068342747424978124351905251486408665290042480719490317557170749051095772446446481020909814947510571104144218582440853253535915856975267320633261105543691028331694755122675037542977592351711230520585199876634108474448130263278688642918225119291437401665229178267738426247559209640530620837446239946770797210583088735993927336120737156536357984755427691312911547114793933028709736820192092092380054526360077638391546802094622312278456068236974133694377076023423222546540498630802397421637316993971613749504293578945237533399712773367472678116256318765378273835205348614296003864136348712751660962870438197249921199217124357782940538724484690574532236983178589550771792668686733909075318823437977682746935797754084880231868159160797386474712848826193955743465133804598033710822601739663167189354568951638876103262884537134419737897268728583275030487195693218308353625087753089461824359482365676369270055273638475249843177022222979662628162001006431768372253527696746756835004981529676305697043123783590008553316881237839488269908230546315540911174605439517927098052258449595932526700647828412180577185026221714865018714343201425979474038851959854898899343391673974135099392612857086627038117125983840125410791524740610863514812093000655380593442592304549011270943071294792669621993699629344817492351711219791509851082211325587183513218657765692603081059910505211920705151581294485374009444960160088609533686295259699332485808238596772660917145686423919274618952425146742095605782299792592387007613558593048578223169490928598290195355879171190647036484417314774596413529060807047159963817523237624746408894850688611079447744989135174014482854729118659721167155473087398302199163229976501746068874498529184583104598177138924712697501038507278546935107640208549118107288284467369645735649753473225453848640814807462207483869120068941806057364585504265234296921489740974464106937370072020207632505439487522433074766243433156403645166513072132204281304015122118384841150676631048100917754359571484170779300465713983580654145770875712970969630271295970083930569262028736145822436122730075845686050187211156238569400951206359186077854903149217844016447122899237087996898926671934506489722616852953912294294432733965273263627882199070311742798390415691492515850486925393023633108714595423557823428177731568199990708042387953828240962459553194656803808854065442061630991915119953459442556005049279072677426283602510880866077596383013978254977713728258436244554066999736012174417683237726764503081431559431313033810340796570532459796493208956614273115781657985446358038903659067133054186865179007588155876382098506283790896573192608086148894011828066626048864567649588396238863810028114048456180516122717172510584218373093204519796685434778482408984328490650034514239130663441208902980501528750955331274670085004911693717744882321071660239851349600466585486927259186997857185027212652088617655288260027926968982855216550828082553919237647888397782821749427430535568905189589598880873770973904062827188865463880151390071903411176913861038806625962170069948550365784143494980061918326536821651993585551058026576845954526836864447584181056176176253865259134394223465223219363893041058905914684155108718332173487432538910840888693134448293704942252888172743981256595486791717268608962601507818820222921381809279239579010303918688091602953119893623179927972587794113787105483067954082656573322040357998489255091972105558079674002558905861188940683500547951010613499223469249190326050845368668015229554472024098229648942060408958789885719417022582481784816297510863748710843085688519963172436074163852262018967510691370062924038821209055186822127515850996661160749965189914435564479850702361829312492534448644809383046818520114756381359880564972120340024405429474380434571536821833979130333060825593867938027940898425252908374809173119486901483327015760143373456022571412281029907113626873220521262661166405289986722231662656470796084646323935358555944231008015437534924529657753730305260527877288347294726067970479773471535240623701120754222507234102292690079180822758959854007737343254771676581494589011704683471578745099932138918253494440011845520393804117908748550465226817587585721471109560423798501522120975611390081807573929768782736622331954641952173178169760191965023883725985779792497778266222580285533344087370367445079103709712277223614586986319372952423165764867489219509750681083212954077353963832957460741340399923594808656423853023531495019226823334963710886211327247987665227920684321955189093075088849625367970735445624828649203571024388386431867194666844761876857249223471918292213439526908003649285295312649846865777288998195999688328714215678942394200834773625955362656340552100904199042998057659757392691477617661483122077833325189107904485194214211904518260001914341757804780201481949422122735105543039326186837422850000467174992977777959436888510472148684249451045830449745865409751422188466517809082740886465339465203269444576983338789677403909835188886690086210273206856096924505992284696820876583019002203269062401489548580541029680655853309722002029221066367959878810564582242884663254823535935774874337854842483518866854430125806987838137064564885736235710292033234227628397558018287139011920030675974258577419322472779474913538702704982347997867271847491375713590925726792953232314417047293127999859051156887685709379424112488336145079312607323293480052005597696894929017808677600656018525579566538852960629531779205723414665027897744958123474697251278416731719512468036151615555389748678549708772627732035165536010742054334578909750705688002006640828409893622679866888685005577969616958444410550553765374449821991164326985740286382447288044593384384566851494814607222035927508174223947059570780992614994631343477382837064338876133231817879472301291636122673663661908550061315205381951421710443047107039496464727213618596407692713512129165981207731428238716259614463823766513007743607475420886176758079353717056295870156711401100783987165650364774205251795148783980594281646039116734336645007599020992029560882111650630504216497222340406986182403060048308547387855214102224406283659730766550967740202135714997435547677855110624956794948607722824892014810568447562701200261236226116293629261996847956332057025039019812254472092679405939234588443358732144575557828176935704001937105445055694472526848824097123203758872703320070662722489729115603353023270836630546609033915171033724633846587795580171478159510315785578477186750246136262487931448726166562032412422950078043245531340885707943659260411991151771884663550073147343486172622687584406585729618905040475906789048771181628010211804586236486179255928941741650146962190483362790817105084898913740115385528723135466029749802907709660077499175982524336544275503991645722023011119562826903938529168831813526815322051244493852446460174822582441318214132782952699354395040709968624498235160638902787940277063988567033272937902109084497988658700053306506087997883118456830937641008359168136458015121662173326735370387235706256609530234333661934183938060936160416413471258967281633074113365730881531324373552650295759321441033227141751380378086539101100167811986014169934585792087794773844351309257026538540295747013613509465007444726089639767763933042864164630318742693914315121178945312388686571284753600485049067900290790758600676889746665065606169315355450191693481184564020030905048522144993237775548357421399088844342776787354792771699242616616706434714907539278924110079895583729167002068112978449104686027306881280830562328290809607291897979886175006697230058047475619125491573840285229190642100501673234302739882744054182128069445093842995305136875333741806843786777698235481051026791326945680744051896095674972174150685558163610174538686813266665437114234203760409159167513892694518935427260641684804230300388731552709732136485978101461225994293599569379485793175526509924128859908713659258455016368720909152021247170270830431245341211159178979871807439557714821097920204904931900796773151367736471141790566255063272152108744797662009955282200521107720620572581641760556452518244331284467586263920810091229915269668443063550691390326446718302365908468247573348153836881320127340597514830633400607961004274566200212303168328350281350830123238876964663097828149116801111702077192002016929919940589818900355853421604888307378562620459150308570340621352675060293385642631610066191240109059730004291826169538090962495912881661795678900509807198771071095856481610662522388949542555980037974401410942452194153611614751326549657930873268615346112186857662652408917529674811036239335368863397582464789806618324824206012497020784521764410615090512155193519805409827106491898878048154605109975477592361675264897135898750173802691344621739348358160818096816307751500277866071380083909712095833533992519599129577162013994458569827687391368900717720054488338052186339352655882560101470655630012561507242119739510062852323406711957243554927496760091927901411733772544162946202041878838052912189889500186277455609191905034669971220418551044873078160038095560998865455472952605780973859722640947543948234719682631789801564095035280565414680480558509461078475325041473599330060000898328341902967206600360910207176829631474537774715372814074056009720196226949588919116600039888851707520424439940501854986947908075997362663606658469056133303671474951265026979851061060997728707625725440468640748841196539965849002223336447912046758539662092245141541339671077423201643720235204155177041097982887242957899616628631369829148386110702072063528427116408206386145085098884889793382794445247866174248734531949001379001892771295839722913202438136956585006611452763804179964223804921389617046633815293681526705886427511752843719926550008152208517401566400113720219010658794225267807477020623097817279274913725476391860776522696242680264661246817833862551608054134877103700562982983776549339144719440053029042202717763253179832498640038091413976192840198108539978179735059779275082552071251734142490894065844785932190405334764504315554699967589323455618338830125070962496803082601457811443685937034367957747205125417313534545399844928746891552276961495944982229287963123224349349706067710247192431761322264915623637080377554263759349747463111936774898662346346828986893258956718943402629558287870800728561316461178228483231978424967516941471263818534117757955231451818840392448823602546920253647472618706209967788625396529336659789456872704902190902028599760180923769038175575955654407147370038321761729194084764121463143770277616655557688993221258867780815614211195719780052282924216094494905164402494534561342237952036167101400973600114929956531996879975609333615394376835928921893241885957081119097614135140218988643397633911145456724880144107517314300585000791493398747148897871213786269237334787639969758237100070997819283223737299461846223485765226632379778427645226478291242831623257503014150673690641219917288820068406640732699252871364660459737177926845957115042274617262832556168267390620592936963919558095590093711204147222394111112434421565877792437686945584588834324234244915722339304239733169111898029412341923194531610793109126803752011400968040575081113415484284893568141541905624590429623371556268831562760519114244456564277912874624608895899054386163002119674857649153133920517069039909942013977098200018755266352417290346652221250559376861220052745270898325167213378635658953136331574002989307111888857320475815528140243720462041452480322874645339262175865561215819803415052745649487743747756513716411810521692241762825709046877052187665253456139877182820766867843893566792188773564185893256994641113604725263023672812481381273193236537295893191625603751629064264489377707440534870629951198591947113242500168725180341762232055343701138438815792875328766137672933245842346067092774786089071330294463396754953818644366897916859679334938228822953158996949261131193999437564451504727594433853579955992388114691195108716626069781690957445015842704155647948806344394276011026886327892719437691833241302308031270218162088835742752443144363276527409978367581190961372102365662892845081709093195300259732327344079939862181764359598176660314761338958651368817769850015187187344865774949970712254073445416557846278222284582038072536544160112668121590581436115687744074580824384611127037075768850681993883110318803876906481959312061715083025698786112456606270680945903958714146716826650248768372309449725216062573580653121932755452134617554719565596817727625197487780836557738644346518657610172740780794158691623601816797456623515190288323354019788396112461803204728692343862658946097824541040352005024622941871715686223780281253896240606136830464189574938859120371131315318725095939298846648533683199527906351754335788218064983811528084685832603295663227057354621323747721393856759917533959380366055096695200869637083512777720563559271075815837128513987703360014912350086196595540628653378524887585504604888791227231713143711906091279912938060957825234563958628915240816805628790945281492206847634275662425334411238146135551365953465702121536286721560352806812475004743364426595598809248762154133198637367591610649873114218101115461762418092337287775072508046980082519374715245354514617625744541744949187347657875662426511012499857535252573189459665225569493633136113238671793039296671732456631413378806647431705095140620809802798859336813062704788351951828467331870903180976614255035006791092038277712859853086392630645828976889593417961359103903052940783385942924268123049851592921065569010303174852859334048710718436407139220369989337356473617237854877679569824943536779667807744578481265672758079649305272984890794889317827440994988641853812753286308740182116474197357906214982501413177171127248331673955147457661736607482450729449411005838668825652626784625922159873419468737576178271569788331445245122961165813913706942947713046529378294241342510305901962338979945320001216439378942239573766764599614734515751906420657914480037758122723003039694271134792526781807666855124275883325577329581635861310533110333191254045328126033502273764064672699525087240914515449290893522393911851390638259282025126717727207503943094494943124617231049744644793078459708428877470544615384866807243581484378055096855636060595750341837564722221779420679563698312748320428774611732873493512991144801050613095690812874305880556360367654628182019335740463163337302024235461917474494329759481597985928846760528807823006882849548389996737758618030899310903752653109682031030988399808817743781927029133415277111938700807512361538346239700467614550180482491023861187237497088097744198704416368415660094249061953414942121415381542428015528944889700891331335347108064083258002779528722707214340114811109617348718237948764431159247053410339063492238473748627573750379872526611327143001310976794132072814756525777632324762217539554313772537899521260773897251381047939034822329124712785205481112227584671125733174343765128669022045881847657122681191368027746196892758979868050626446014525972288328310213877977899176882498902832779471595559910835990112678762081534838588156539647785745120907384050330972939159083477755558479268461496554059848109491493161092378496706056881318725225420121007717537516389207667927148384310177647104115975795593568185113028200605496979943088274571480084142084227721928227388196888197996258441188660021915132861397141307389634998598309381828737601510052275329554671125322671420626788583099623651914629966397507627855077002982738418771292154206644188696172258122453703560950579795590662830134376061952409461420944682408386566481813065194800159579793199534656950436465667716665519312029905114097399012206468189411029926085730093543341314617695667590178457141363233672962669806088263992960653298536860533692174748430237756889902652124420005789749910423153313119314125656760791145374992257543024105555592235952265650202520670788872478611335423298987361285196682911837842725696478177642216511123180734363012435694503036277467433242721034530808562497951364947577238788342550579823416379304639094806298056522745719606440898698207349311508672122324707067658024789711414939248851439298642988667225952420298940510110831591487637247185465371599446499848421494842002921862393744672507573900969685922956512545494188620506505614292878096196269351439734886694632877198376332720767562513925228558748550697177547220316190153607331594004975687472742169039836540494299082038586421010133880426018801726502703437956356305666927192581146439691629995886521746381457161980419892189103161251271368244574114669288324251905628626175184132634765715704060281579383156218026022038208099259491901958926254185819909250731053896419899451999367427896417259401613044225514899249217599024759952222316366611029612660143533424086787561082208232723874449182096061868327571784113059352066252545568703904204042914095370343860816981473979473092185034285936896971046970231766191445411231715615696927636153607611184458710295918655417104465643855183806991891404067201252145149869432175913800149983592325921006063167565920484023126696695779966412705628672836060682208942968778817740627330633023743164259589100768683223367411126248038059523971207982611465893118418841482782746190694856756452022574235141200318970483716850849234973083593921072805375501334137561305434103388038957116323555774873757677585222597005185735483884512302324849247865886579912732526407525893124232642242075619331280969888728199203358115649911238737001619767966873302669837581361536537446748410657729864782035217653043150205531668926119617618143910201548771885886489594822579771718253710301003676807900526946745323487634332766039774128949867826249218173354847821535940172959846852434467474501343827169958495148988053053512524517126834459046276503679704828123440812881783980560375821141418078273214361536309285880507098738199264938057621546562051764074907377577487238762616621410398110505183537492129643073037211367315297360454888081347752275761523059984489592656175001700872449096609470711586860863840746537716308084502145838815351423662310367913912968853398790183731140969517779187756775032221737391148404791972910596428928484334079010156973235474010303690072714574314513534798338323731195348423256964023940899330419191730076054808917300363019773566024307758633678164958396850836795044819747977354658505584201409129647708962007863672312320313902023777850728168722994943307000013143131339698867919811537839206177476234058061521926434417436752583460974794561988210769020382177446942481686395909982402302017384540389704476205956205205459666127169277787166251912202598955118959777254820726967070904511397709457091598275620970286333623157387944325468084865409137232910411856549884569473656611909986494832254407394607241436215519462132004553071835937651182663466400770534809631435716156554555996059092655361459114584016701311612822827120171820778291624493525486069934950450883558470685950727438927322302990519552649133571680098078729148126545748571672849422225537987317101776433948821191160393102245424854172651098686695275795112379494980776353369492365132836405372970442977372498197957748583919801603440563515790451327925120208286224909835356155858003319328961794698348935316667569031211582213406544446619179443764604360037008451294979383673327965563008026471206377303199932826606694096563998244044949223290333732482494455950766203112461251539189426205523209245680780661095300117231531045340193296994709107962873196127574064651711112126037945679865940253350653849863203761885696540193684443083130746457686301639613938172842581932831030185866391411272247063215651124243050632472692675844966961602298024811346599976191794743271749896634990136844912214324015118091998595121924188606633068236095549644130041181010905284994892445998467288600173504689245338183213433401719945880244343970464059549704641272914091018654039198526052317114519802733561144561068390916482057481255870245509465921359052331901789593319973542275893091844314265934247291543272821028350956380795968468128601824348265968552030638960011817208092884492315629707874762773140829539905179320910501350468366442146360354102040246777464106512797075589718710541071065088373241186118172767346079568925273267008968413558071009217502917611495005018077947487188288100878009774588874763968881645902530879308961718697893612527736218478879308977826418094824540144706307539099781116633566679153638665608371020237693556498159143894764078035853629733116081786838872454314820093327886430245971540330801521664037626807484744265178284210022893233481513768888021633897715778346025728176434079956392409984441872012660313490515799854256698175563431626198374195279636144878892339396294979643987523486683064372176331690848787821746405342216260225934671721430332702075098283690856328765849809439030006030788530780252618843341124540570085988224037978664156790884762628187271222411500108979531369934515024520467146974440717768253997746681492662994662413463458397929278806435584327428057063296898013889915242301255971623739284225328268602167526014377498572479440026141125735837206613034064940704582814487969749340963442729572737320390721301821175580767938278532153575462982235893411414236445348943136134780202743590406120397732347131264599329211381661822242923908138531747155022741663393553226809863246361322066675436714919619026116024945659437658682480227932130522812386726859556176792045454602831171392844212440787194604097166521971034173046797159147151367611018217988465753613901594559952916824533660122565617403520555021713760478239651599628843769265269163258005561533801506850600009904299017347168305897910250115273768726313595961716783757986890183968660929017818593494816407687159325765154446200148241690847775402347564231046031851440499556454923973261072074457798355445087302333252156472332933621952051026337160333435016708312441485153794733789761284347748347384109982590775293077248720108219508167922210250928306651531212880148863470760795992535652177173053679599766866921858745737164841776979507584745710365223137047492408899831193929047689969271368146358752321087537266280870365493954433979162275883104408415826399866281549884787661453445992611385060501029804255013930343676365477619156066722721092920660508799504014790247934378216394247138698358317914498597962825382202959726787381409828343142691070910120750061067312801444788259497116279081390347619396526209204622320818959482933104599794028114683297583879345032854636945532003314915514309276621406431974586899737240320378851087860916050414964705663164486355867254846500815639851998234991783412707267867759820523364980823926413218792069728629746177695748244829730410407570319615119031691523183413849150920814868922329339907254574687289468623226671756867891610962697172567937809188472187779485041085033794627180109158708801462041094942023479098197918389148643244534241328217072170733929854914794931739544327517226829019480082984318035012434183129300973499485215255865052903295226346962990523756629952125624801148720164858500331550388556163988212025596178359089723821493005007786802490645617941695267314598810142670192806333550752240191890087940640960110479790659603898651302940108381124892374488078219783160322887716745424885972180088610410948789814475571460666845410659643313427470558291470545967668215369540898306020908301700312174326125469827734897366178125137369810602627426989957555838392244980311130099584002831527099943497075381220397856059157005177574936336658044323983326959945659524351419167996779440635347213976590564832690531329187101529652742031462566413064579034109392924892276609181147366405348411137494994190128959347138306116852845988162218634520027564740742090478412385591507487137317705359973110103151325464790479073129892958865104789192603846308578539505496518521064129177113992269051267522836032657355261108189806639288638038337311849161507539461435598336826645725709558575507117424656610270119634056758023297532742874049563984758689245116813054284362292125752680705475243769075928769570343264279204645156566980544749950312145777828136034753909094591775689768124930412052743122475261826812661681485767994867568128253630400032762040001469785905221642272435930638458930228591818544450378356844178811992234319194798861955080202572896526605293716070891887249226463917701298959922963480130735702786220138854486734155372417652813196027864407670227383857100871539727625267912644582632351018595180470703577462328520864854224574690444906739665659559269774121734959445492429835277467037072696642838326278083972985963273050232669879982947338967899749045214365698048249601987689734708457826309907606320072362193877762397977767433752532267790125713304917642512463461005195159123662606025719162160278420935215328432798843996982593750818540620083097548969997922526928075711432410705311489676935350991674335298891848193110322259139064855010257907431402888708239664776210268150017204276747823742570249838935927482466034517223971971412688780818427526472031649536113142856326697363976707643213290631061863503682601336238192713235015974122993640959698809239485419231876999434347102910626958608017985653516022159065035092872540728309743473822091756234665146311665048443442980184538642738711031501667096423703314410192407190429971374124753609759884527558486676274747224530144289211061387349632717020772197141444988562323027213964161542138188048950069164273219349734978725385859788678328478438889544445469429086360171392853075956811426118094951846941698656834673656955112855109622177942050037692715286610756284192769844897411605078086300305979378063046979281636616437658890891949974785912631313296716722613212752666309908108177123663583366254551031840917652824017880529058597486926939789189639594654554914314784038336073653923371708147084107645960503920176649847169847768777644653411894925721017398271147967821709285693395390578145877879003905029634409496929766152763021917994417388098505515992203639001346127845303686035744979335152818236139461146115977458959359258810686484153687015488962213418559288301469673180342318165284779823305318445712585336805408168804141165743950550751369959284358842415548897063040542583726662336229911529712188594976721463679851156501107252491230250005040824688337712605212284051439869853349408306646677717572207457743779712126264759382119601529243291048064247451784727491237938550538372056054358664522558109108272892335352676596551247328928781179744584832374528155015473825517970703112985207655300139233807027005155092262178781126982244806274518118926335126133615229601923741957773930268569454555499211673568218973616788155629906085733842843801367356430964384949447380900407900056196333209273183159141125696981563004415504309973507503952080536600816237843603268580385372291983430489784027587365714497665208276927602598437296603009991340168105453951895501393994509390427394321389811281302836353062421051573176293395730279623245072106705293243594135067595172383154654616871981764821166802973867407647155542378630568752592053399688732246431430043871741303958293550274903033503539163327220993089585710869467675515786942980518701050203513263103482622533167129870263803277836141287396820108753767400709308322153839875712063918148923810096554148973662755447123750545395527570751806376549800615174560902470456910880267127612041375031076610861048020542748254333073471965137961991985120406373383949788461842788032147109435242727173885371646216811009995612988520222725964738125465614681738057514856381782646729913198270883032999694804278474004072841237632471269554485541222117647353165095334237316276564841002710288689525724020760357510300878843775411880675083782197392391266953156993216549697834714983095198819297164780990818062959371096776742233371044605595438289217204048636248770868997276995786529972508590287528948758298124442073734140753813451499540869433940273212230016592711143682833759608450368634150594015269936864351583922144104445365142055555049638854207180386819880801567448169103361415401086261069836941748480636033404142908639394415228318760787483282583173170376461030097631583986384268648944907428488797601157025336261315189832979472255666303343786633522658961954177169817333872862462593332964775510412249212021632269054848502493906753972072326132056837850235577709052902378965869835601379635753269217119310939792588399018488150473466921594355237540699634607936240763507222533191906594474113281560438659990615465208304238914959919105383735762186966287537081669604736402607423739099758192277105892274727207128447355101467414062724473198608463074987182825550740358959889907753376521190079944687620826983753764987707349345564113614064197657563828185060147813355626964435769434836398486586396346502190254612004492502427522933060212448782529830882249438028103961925297549277502185171106086385259995901356988326143669084232572116865213387626020761903448299233151505912763656698742615555010266757233415439390911980488914588163144412297595815421525795002080812845563920831312281969262011880087745936686126528260739339505620433572031977652525084545592966058029076672910073857493921902261096522673939360587266624184643459887870292631554802948365761322711027079528942423113463908129028722932064029977104437712997934505849829328026927759071471580340137064092686413635842846018757617437642294726551358913754165524931818964221230720472979743295547452728578087110748293997173989689629338928617493620357416402029759916866694163703745994830888473988379870664818439480358007060756230539569621898913397260503113940988742110602038358288262648673349673058511646405669908556844962227191831471170127454525338762745772622248200271014154354962967154582711212695687348844241693377039107041609150268797965516817851722626309166755928906145410839497287375535740848356157050324327156763277907265296487622306919155151811964847939949515300673508276036775899769896892235771273112566436820581808323461198449258978079735847878727027473448513632401034230511340793500247138279709691722149277537220240829372594450973205637476714794430548148084530396902915498903764481615965863544152417990637731520662766938452996925173571490692968319964904431424252288230505007919427141724321985463910497782972584705452247397448575951136205507017102945536904403885903879490776004920715620228800821994766142664176208767469914620987528827887111447709375126676026636879793566803844991456915611784745346219404497461233635936155693199527211828215861268499486347205550072890742515010347574130176689730387931769098996123243797097441497610118518168387342132373319173974689128796514522520675913474636578181275697325841553041684995727849367630188985638365493453182513728539300648363076573804440568971619665602774782958848934628114531750146989835457913949642885265731949760920646559007152973282209550525880703271455407131619826381420532786301112600931397605765998537117972882590334837533284216313927163315565624930457670284882270296300358748278684889975629179025842356007521197190562118811175486847576866484065681335813884785815937667398264073003391870084698492849425912580772808902979506943166898864837245709368923891176999598134793244641636233238829002426396447864759891853133357773533411004935496455649842881986244551147345208192920486690809690963829741606146797443675464877421518942406627726156133626436444181288497126297498863226554538555081800544400598562236777248504851248851640879572768298405833046439017905336927546866900307962665598431859204872884334137771140564465576902791496796065986453822513560500468872820808622089210314268508995757556314790686745398255694296462104433944014559347722804800433241204151357985047351497416982999032880085048578411473353180235797623185999777495736012054741260582593900071632774931915903207978659627163856013446154358930418820325465676069389931365798844047441625994654216354307454921924260463153326207555087913144291156767182150801627361666088338799905043100316157036040139210753546227396331934448558235416861099097640423327221862313015098550620880801416440971348926097577606305068665646122806089189527642603523887307065729232797150119376871870112750510938152792474445780597978190884234611425691740485518879852174880301114443298204194690630333273596178880595881499818112067317381084625338203942612292456343924423231581641430171746055514126651850234869506370217185617829860228978090985592338874580049474520644745801877465559525711798506476373530852579565707797209244868710705592053383292190114842735802154759981600062460989792592349871411481678973966614543099889032803003974178885846442428140663321292374699018946285823810139099083054246502343992341821111510427476810115919745846068146698848205121389038516260795684090797757703821200050174482904766653487909756204944799565932843325809071327091775791445506803890846704751894319931839552012993337337160242664964521133027468593780994299532555786337622582585292872605464426548731758700632316074637010111093328702381440807882082977049250049903618597094408605844365632392634333731161639617047405536649443023432925637172278571151920943363903852883988025633464662159707777310156670976639391685786906666009500571635840031996871902949864950063988378362416353123138603820938481640726297440308916285810533740407081499794922009517685690372005380045658925014605563907430992676723182669743575056833874252612779617336408868178320583127050538927908488912304603182218524848960534308928745714361426713595608501027799940535041876743481236382616990338435560402614785319948471179632929057085617310443273177152611394940328116320030314772107622301592794351386535484131026810697466949693903187723111175971219819926521084733002949743948577732013774792874637700160229207683868833241369616317928483800105987494959343060785199796645896329979806011465812787840901393671488551297862364969219176061652617283482285978260337697711986580895915045802092098471419743079645959646143918507592480033502962582986958676262086364980932969885931506925674281753847651357995494735280646092506995780165668068160655778123612834835210595130238460119776969255343862953354327861934569568153182529298066322597870715127228511157728470046215247273264034305993320714210095626758937469950159212679536299399090054691808838247147464242756746669934572770953907110937541152671428526126004037582794167414805357133257720241721755072418632940681706901026117133867455815487961392868677484407720122163994790199924043433346605624975202702952882145705780326077311487233916651784052745462608153695540937729767758942338971335649234248395636101321851774215073586972548511034291576664292232184636134570476945754898165200064855303733477215998240876401439835532492492947784425332410114189437671423819411285207587320790337676611634915142801507020024314006879757328845442344919413306136807427485381661554216647995371123914362002082499960976620427993738520351611796901973576790492321156422093029039330868844316684349218873770710904644271327832767314555325007806851085079739251518654467047302066399010940467185100703967104399707667680535979595505836421986019817171343828431116440137955828858760779889757964153718731615618010437527867087901503194422890163227214778624049475340245296907109258837626369919096063369012729083397747710695386369787487433712372537931774542993667274079297957616268445893774348008690098664140488967062586029462829128709240282361838015635824242535528028446770646197620690866746201606218102574765023297250344084964616231055480890616612769196431253914293674451642175827069318102149639918003000674115876182044252970629092625412664887974964405957961796365129496974617815383376468566351028416553237730860932060753224965169349613745392547514268043189465742912123820360415544784623570032316663524874279119870756377547649786683329223521938958111344685714383788174659396760983180801640427855357056864661761037489605258589118851849649139607020319972102627406103709623349687825649313062252624432609724004808947188133254357908801075735027114360513326397374092202462038967832364259000963446141235237373408227502895082493624301275059409457957583936802249629490210553764710209117289716992548684858489431732747733058929430061419999280453539274743549089531588810614322379891457980210329938700371654487194578787506913838202407648238422974296162398428321404103128420904504751547636562393245513716711325647266940829613583883580982778948730085695154189716882013707961569429398416916197967615269349489489181103230829887651994976856416555697014285682488890256992392850933614561500816475954638329362811763834131704754269011772011837768989031556125562284993094421280252501624995380514204563858679268089452929657125225693184953073962673941989716135216910386641027770863393930140493594337295013265344996062782889204766227254445011243441815723706563453506398456150334520477631580436622799515728494699898849717568591333074388358141866750707460907277755018171901575267264960324531182850245970567080852624938231595441134350581026780004082582088373211034390115128667769805242506119485623777739694296924583885537116054544170371066400908006949873923051546903937126652616035800929076175108111039045079067940773379139359459434568964056944560589645707306864638867829711846298203206062561005013784620475370888552099400464260059920767650101436228074425915868618632198728466703975953646204057699330621931061265422290138059632471765813777838024525272084131556875338655027896598667385962731519466056755462195890611471466088206492310998487412771612994245771425138577172655887535874586346913301552754256702341678838917247869828468739669460097767397593320508981899535713446909477512976989311013861861074218847614164625618865653819716179960684584677363843765328847791060241310153354278464854054791931553442511161616833973069039906243347548214212597250123737049649060912222113289608967493760219826582974816626652689354248105591260555892050714271232561971694854837815816372647451260903810276512165600033059860792788364425819564618841940869187883366798369709871283774957655277344122558796411238030410769620323888925947544661978370705730484024874594321255255726053387659622268661803364630350835056749293768540159818233236996905685534222832979382801878637279056481093059118002748493645479336583956095232684111234774645622621728748077721597750343678957409624956674326641667501205046266347507714090161279704787197129630328818425490277703829441181692452311290639149323867210744699598806779371261517598929456001313979256216961521893621302531214911530550321844742588075780637149856735792254092441827538737962123086636382378673671835839681888409889828219321455086836586905125590192222944354315835208685584334431075474769743534658650455626524727846943103155036540250743509767182904863807153826631866092548664800528276002791430098867102759476722691412553184123977443153737313287567183096578123827298941893372392184409377816788236413109465308674736412792399243390690039568929935029740455859322268669441006924492519313416694137731724177550381231210865562329612897191926845163909418416896649826547492875049612002031583860548893148440367609042011155802835872986909765829860287910423377848226131233658362352009545387648034821811486202603895109986942247724949495337747651723013286964979142347424975853357052390243525720683357181448132840482075132174026624207491260710373624375218117036177194620064820081818795091135520098692091429503542412853028733437033277523046928294155113366558390277625291808790920732408446186208812618855130326366652776759947767710522138635097207749354664608001552969108297449389581924488250022844743658751112233567345666585065328760488454500994279677740904008662698823928667196461523376901408812683649578019216994404784274751428090421554475069270586635078112796094108231308119805806058923199957004061364571212377016234039161444168232606161640145709426986262237916140150975054969531529588561026603560839880209420288850843670860825668472635899781549701337530005708002044377139921136967493049051090873369255602525836603732695315607901814074406530608861145119711287065677709233161626123257174138401483171499174870194089297924081823061821337446429911540719446027666522031881587663651429157759577731652428402017062016010404946433290465186405582602929423950760919771095614115128069975622342157658524432878908386034530421244520376896569978472152889975393228485083018776186496386779413263002357360890436250943951283743758128208975991276347453250704411769773912771303098775257064601291658487077846145170725099935459376887863040617620543127870468677596558466136514962560555571623860950875474279750087246098847883323360083534700254781183298455846367551653923108575595154824155375047137581677332196847804262256900267560875552752244780906507206887435935595721539607772640169331049790109845416378623709962707702303986986224983343409695637048939843259630185240639371779657078096327126109885661027127103896997219445171962044267110310736599537480013424048101659929320608831297918466988577197610120097007454514757645121534355873381342825702775077891557447348990286471807577055619680081339402549893467099386279852095743113415788196218951465458017847009875490104685149601199110258670837246615449373512454024003329798560378012620416586128131021272624218158299103481367906939322953459022098880535233770942633315114875810038714268890103471289485437367768335763258836030293316019994278176114136529629589834875649616852665635085629583558736108920465489842809500579136130950770922821044498494396333869808462484152002783314981763679022407847320726390026191940713368288957934379071693841208860495235522906684396242637448468779661981529452225552159941993891185662708980443662495001493734537887806437178464409713596008508273393243559942723511678580317165946342945323523843084026137951382051663134171978134565720343463165774861015749766378128018937677245204887237489667217612285386350352647389113597050669662364332877571900972627597068715482944753342015255700475934084373814433377868836519177557393234581567762752662816086972914564607391544391427710079449584020991604424588806524377918568599826543899030947824512867644808621410836204301190614976974098608041723871862774599743590827128741649295672493435994084585734052462020685946253870134456421343836367272641362646702481662569653248719379577528201034020867928610767581968712849309844076383619924248175258864570299360944226630656937672654000301769948825074193181197351018436229153849435766100382372275562024872507094606507993081296494450015277362159277904615189767673544986325700636165564186522705869913613461062579069967537083578064602054867599158126878744263921987659558492051111737070457141314166598984092029681305684477764405095656261720159777875026947337674384333677585392162114879493478607061326625762194251816967429559915799544914151506103570948779317800885439099142670839333501789716780850310807160031780499285380620517359370295371754768981187981267220127642495271714797371339441725246256846205018092557002804351363207221906640920598186691682822534092817101301779406283514131226606552969064244635662150871458931224846026910371127401232342594663900006971375793434231041022272455027333660489426815961216557949567299016074955148645544919097606330975407512775976201984982350696331458271413674769468780477891578158321785746517141666782167097554432776833226433707830181022579956541699222204497495607083641405420143469963732401688678921353851445711133883053295392931225504108525381113928812756633398651817693503541271091952920626056086708668406705009729409573585596306066364942715159463492661894635405929343646002239668533486986262829428605272891479030596261318749130252803035600487315841441706974990571476772682001252898308565758596567536449418808919890440772813533496315678508762955268091816977393807399183458478866453537764349492765485765725767948135371655587721941128120956509617530710595799806290657998598257354286157288458337601293022957910477147965134124883677487088509568815222378275896059246277775865856003315037999960404257875032868345152168606263806510190603638032758656530276674344252693819306331098947739424945716250854284750215122618110660941948565109891307027610033662975942198107358961767892466759109049430826944253278386672650533589120559791933533033324763643355662673228912473472614194728863586126331335073787651358828850423360083771433761125888095606890903705356304339325494482469631441493747227751487409026594888182422241807860230814158113085323301812322271899081427385394914375638849996501370670746885802436717649466242799392208746715287336623503436493133407661826733281216197329091616554724977033086950517792829797369654994772589740387371855293923412472690361854170875130909968159851878048070249664949816507606869315547546767576461160887074868960464963191421686812805185734530591831755265964669945232426832600496247629581834671682449530552739696404439197171152260186476911835389207757058809750599550237891133208231271157705846130340185988879071016282857587605735021649512379512778735774342741741066780310370512783717643847560740835026398228609627872407540566281642963583695078471026743271056544761422893795390667709175760983855827445384800853716759434782608161446982406276745690560219059919048095442083833057970997747438223752829699225296287409967582631626165273149331616278995882110856882214827455403807395453357786708390091339171543812926155517078532875620193527285420542868900539254621147249312471236444134092700616835863862527988386461975659894942877458810372512727608289713605189227631460951320896696878733647333250639859240459645765586395187529542500469341022984815238839420893401265302732284619784983084439715138807359007061389842134414848266219297959149763982145968462130992621750540576394787175694166423923378002816519072200081979087788601849339156054720264097696297937664992686510678081065389653531193701151880074717436941203626730912776215990796386430823190409174026199933903301424853956041565368729385437787329634946197345194928703208039138435737685814633532436960724239391200111130586388308562591275596539770891602674033197781434863166925613618586925780595312476772594347653234738560436978980159058543316343247218616536888359093500126099876196815615193266425006118096784068731401461878839457517415764448681271179426383517327563155764507053833690727886864073080397629128781819384146793817310492728364365440544079831564246300075229455677663091557783031476586269017567665463106302330261231279519406235531595555581382178458707244297449345304382215426988935918687388092201027344964217461165012865252528741441587122406122971483732685645429959724893399325499305542599155682064433260792382286796327743857047995535343500506988262437717054299300889713204432336269066972616182394578324932516637695703804716541217213928108293953823368367785178267183756582802361976174680535089948867300973968514552551214253699298258052862866639238718468262250027388214270525793767802388760528595754374769577829714941492356761037383485052105594960026849179025988742395056064724015938056952119087938778213649809918329250121592652773571244589159725840644089005088906471699627779595476412252928500717833262177194782845697336812586971843942419693655020841089922603723473376179272094524726838112360530455250533137622807438124625827099453623362100779661984281082584931495368299022638468142376474420030105149078433336080796121581422783231296166545264047364707290007360728618658832479113540997299183897157827061032116855257140075969354379216092851975286483150888572083426273371801581315953913170508032706524234171507963321780764436886731486873125924835899285262975201354381906281823790979826992172123479415905957895212989581933316287386676910247447837143014695846979573924631289367190402242360196805063398277947914486711901545319450368232239727361944723145357355865901196715970167504131023133971558966561987390382995371278292641785470971062657687669928913280972690764395073491786211305140303715488235396565491683316010946048574477936640372566365587019887988907142841512617539130898170234299774532748790770329502595278854701169781865714036293630035706324129577647398161048692293962911960814073710981359254538239873333206836798007279615023494656833369816864670985633299259273827167510372577177503997550454111496279063870906058357415741145865423986153615785332724352726691060871614705130973396852709709319200822298093487433068215441532969594790710000453722140644808518769192749121346768553831283184009229845203835238606025580442377381681271807486894238431261342524990901361532808951669408621008711223110993771647941225712169319348053986789124112539730398638954980049814847667031362401582551340404249503679809325786618842632121938502990126594610114956573500956100178451267279305304208333095096475200486812717820879746352999613437334726402137724774505299109835335739507942039181027745574478389298734272376799791573744192420888999090598314285666488867086618471870716398390309234815812054315752206698048964037966166176575823581881833526670833068127027757170333407050723318873545843093445199820308373275216668909278062403530995936277689378900292083455095911158894306556747877638814224178411620900942067936380778789903867961861652778915402356026181763332837074829157177724948635030891827364914106052743139290669193829959523528118594989355301814719758908875354109173334667691565243859694471914782906796080095049234875334978245312096750829126696128443010190518585976999838672639551552290967880700705549957047916412906929428708759161584499249516325920019274832263377418435531051245404393218922416694925685808030187042636919093952708828217546852430875562296555028316625085776183894245191042989096939884113463061500879654518009286533515486185776234110015449633564571170795930408964637641520213868335699182583115432321624349463735943424118210900247468183203953353672030498985868292175239952050001045065070909315919577010110867313439957178740408432320035702890122661978908133101057885588915144151911835862077003315632403503924901716576951663285380193448277905106147202040657532466117743274010595839060345930824034951552247211842527347001065302846441599115376229650289798266496471802535904334820124767258599249586069397094614304983710968229174344348983808426035891376137656771190423561464546429261114567187259605043817301463246888438391198297865326134266215735454186077183666598634855017590494511245915667081690100679340562441952126427936966603376796284665636804648873207797703154979701524229262446194843646351248658732639185566467000492193138740370252957948505880161095526135749181206746880438929408643771247233739486415954133910671420896196446969578505806352293015439527295299613077039492390527197563831184310963429750928850470246206174179874196251347747726837553055406244347608887054634359011501779490892451525260443090706616798493007409848350523028467822995112626901916641474916613406148720774993632068406493099781806322153741578086592444758638133838643563863892396141798533990643025057227625013506128678461221309096548623778381824234645676982376436800039671347079394190496074739507272342904648674372735248273605595097159597661503863923443977954517049283857708296473116619796997032916189708892753808229069012279921274508192773501020478651450231335556507643111163430375114257046586406190945533831518830003149354650979079312029006322009521206146500460414697053204162753827024568943932090431285696157802325942773265940784766318951328783089425407822281957217889328421875805990802805753559503122215924107401526594768613379599269274024354665915589804144421103369933560566360818204752386415545348340661648495210593761141076668960472247798232244358702621135113082892969397946270574927841057655898682378055739153400755285749589108733455387542125143660847341522814478354746280048394977683556459621204889568016024067924840514639019750806356023835868855057442223018290459524280553178919578277127960481264932005256234389343705168416808156882593344283876859932173323150559588695721647049533511544672684858042172309088361693546210805172574341055500167690237031218269256669532142625709309167510790385119886382646787806883686434114438518601911397356663645110971200693283104110580491359256097845710020687930622650622229770146240009324328908826098208171176382134998521113120115569192879877005223531436703635579953918260408446053783747507483082313337350089273937964699717824240120943788185252909469853005157178910640063749195892585456318482861707423481334762983166742588134425929371024408653658029489091548601109546158042217066274212642614586297806028715254769490294205878602071089491012447920535537059633680323783913564774471881665418719021117820283174059213603134260845340471577276778868522231153138456002537811179300086981814369815231768183082576329561094759353709534125092268111814838562386143445181356555317434279706757683103850702923486760927650706824158791149978352654353811943205975401408406649175608327157588731469296341832048941867928186641564446538986164104360924687127620667862204246448524352680293304470303230868046946065929401280566800237589272361942913387697278518540043522912400949861435662420313840538134935360843708562705620862983693725641178317539601333025703177169865016159753070791915589019666131024166784316489541199716551326261234891178715398035214325451150381283617913732259229782421431772188917529586975641263315919047441736177377926733644824769129995097717022627551097599602675565937120148787349167665483345585720492901188697650130354858272220609261433516871543910752955427130509039101225481900657537573941944680295024960567019136304218919230187324890312427945951303742606041729847439598823659981482468176302283558511325520518754485827529895039017583722760058111102655020893149606540369957967717728983018646239195041866173441684096409666443007103259210799483007540727443907700622960519499425356807679379475191881384820492039893672216162008322554100299893752438932878428679255362691497658621660622919871063781337342260671664386286204159505435448581375792721973243408904880208806040470172554101041023539666915415337994752972185854699738667249346732790307884143251296998568006054934072294256191102873001225050278151609502999749499644301450162406011813056707826699662817117624227616446055295268370956784196126862132726251657977291333198649766119726283917805753644565535150024743507793230389906845046041353876754177843590938340526015135437914155214016270923107118739419252280050933317043597991578577406332071025302989890194150335849428094846323543207713269804299356003186675592041710540362053090323822234717520760321333473676941179262927983442234430829031018149976404071754170782861903636041493189302279745706274153483416951118722159327576583325189412544942837894873596547535290491345835668572087648799253697050243951051279252695657390617979652294713021352997207031630587212620459423194569682736857460172363253968139316587680135530827487529051594794473735084361414462579829062751474438192988454382322467087792088669888760187610324892605698528474568797236085210165917710118249036103446623035687998080315785525379714825311943251489242550485569928733608611686378287859646779250878478982690199377841345076696382478725165250811624168702479474073923039983274834023578539662137274589197240209119760501644070196084772030341687062980794513913158545613184140242525889543221397956729420752946400082868297373178662456597408767169120737723481744962143251444935661945890209376417641146741734810738947409292407267951327044913345737749194224960657152354670844025760899021043318115229810103978157961001098676570745501364755920719296518921422107486603737512528101785095337699854467589386389389537615643822297136661818616901881194434738231152315435534850096931301442261100768165894584163151910337809801199357584110968752426184603560812881077224402607262236375704878123763730391426288322142909188773298332614373767770886601378690639491599270665499698770992398048594217657479397004946245494974044309842540953790042273832696570007097834992238041206407074893865149542906331445523434291177000010992545447236761171275976541239834467054884227486066301926532638259959885651170122021428187878400353536212495034742375364983091155156828904100967113231130072608000453546138496358976300953329748654826178511866697605949617944849929253671171941359305675398124626868903999084429624004395881002345624540686689389742525648741549531353797500086205564186046934135072469427041170396781635843151047136362737821910530350558805839765828240329237724688062165594334664405957295070721069627657578892895974605396701600051245636557260077544252284461857216253937700688891430997046472717486874837802742867247560804034078992682267315567707667543236243245025126700502347133424522375594213969575093048348395993915012564345510288780655556248350306143986627322398660742502560110923085388666614764903290894622598123608048604025388786588745102308278819776557308373278868089216072199862694567972461927986728556468684985556687601590002839989706188241856162445707959110644343406559917253678888642875956259905509652351239009300058517791345510604418642415263275378198175260654971736330623919898020434871170282589560547019815637555963344755423883196372203692605670706644474443136769265659894151063940173907554170475039947184943943321759372787567949460850400980194816629897356244677344161895162155480587615647252082021100943500455318878524044850193609398412204174713099054448227015136702454942187044984229199728101759354279112996759082012747187801236819574509159581285728004457158498627255774822083713221966307981439897868431701373301073528982356815013159315862225739516507418544213038334393546312541403088872115071401295583976216842745557967010883922527909993887573587495927227323561909624270696643085791954011390159969985977705769223978131885484730100422427678962894333909609238132221037858723813383648188576989776754248383839632822502809640021962933589624254281642654486160916414483226611071239606957259436314691984399217617173831593604224445894032689662533815064593591243671627856720437451126464432298259220155668842853539944511902946278830450537760031263199668231690435368759885557687083182963085049376087480238942071143827732458862895841345979977156480991905144997461268030410059371032226626930650202944604700231436410516740160311432424186145703281551813856682507269756758178831336457052935690458199983456052762615450867902430252867270494639152598166572819640827850625677293475039641761928522195822179483283011276958797906974026260988925045703361986402418925243610177492566747145439373831107886108403773961005320128672895176669391810339556725270535607739892847248903510490792377635897262647861377482053638570386980709405554933884948334058384820049441099216173858450331631203478757853635058780100834929583063947210219551307847576141356786139696678356330099000342109473669381142963806074959885543700142753544320025569582445116304225739336424731508077218419036645653677173332269260026296090196375784454270255305622337015441365949637829797241126201600146184698622267275646295042772150292222370933916970619894108486318731381583533282499923761837978264902216851274867290566966992797550302691373734735098819669040099592872759969060298548611389200312708461183391377874676486232479492443651862507470811030737964023589948403785122312123477220313148469340029558460543657211580946647965972710020645445368358796535489124166657426188521644256833232607513953634574785476552840377182407161146766672487967456511438225010986834831667021812282819065095525038712458583586606043605112040901103268300990277300324653593122296288636142503221746037404715287803019122445930697954586769855525499537135132029738117117616523867205350306953699740733059898580812502837695615362035511289083956009479498650969330440385357296249269550288800540915845626668677838806269215773786735104097330105280158322626273365472568482594617729921782486214655174603403228877929334642379558599435190962953022756959879742255551165556332092537904078081490281201682760162869842506090020323496785669328236981000403220864326346706674050662227980987708162059725949655444905061751989731473737614442066903091305801062133210909545377314899996697381852760846514046741327896566552341345415062253989489667335494400367341513796193339738100758733874568214603617102161840120468798415587126243895844901071220899141637007145195078952970713485967813466302913078538669702772515397260033073493980978960614166737209746060261253656667108427947184410684321635048386715469103922014831457835214161697252578448630701874338207439477654373505469149639429537829700361010575465959391930791855574272854344207279484750547670061666415156456275120904794482862069574230454066635004545706769516303769130758304227160808147804190274329027689680644743233521798199454509981173662829616655199853230163391424281524490631436366971536363519036497010808226484103930834176341075032533239802953451137411678177479784882234041157455756382684183947533894251272669546127522729651487774720460007462642910255888404115904333320480450813248303282582562415059545784838296666770437281662996047979085917872786924399396825601554067166570034901899662430326674848659658529248276141395931136620371633837108845027935956674888851186765144214624558849680152703500719805301876942423407129344254503036612183423305585903153606227615099583880299794361720921270502126900209959035968713677977477146322711468332706396982987989004254191964446420796165473337232445128927789909966002967302662046741719043981836104035507287235394191606117358370354134610429982841324973732418506297226648778952564784509137596059829648413460999023059695935687779821391134109116523634398639782981798488845914574390921745338309548821620356941641437822406737317447146575149461262699120449821482173594689995340007607822992080553826762840171465460160134812795192011704285284592600011527881204818610571564705260398872392107348270439653665859368197731495010741770878570991036901961258515037409994346918099209703481773975453674341450444758017693361068341033859758717896412438293936186707914677338399001067947932867866764346379525100123611953705650592200226426152928070159970874049132216827079597555228746699043756579094480960177893528569762805762146394977837880845807837533281142773285378604197803331952954970868774665788478366852711061104245184171611868465172541111718494918118135367547535584174722776758008648893551894128817527991109013167347726546157305165087198336206098377628372980075707780235652134369028223048903413495810906623182139731591810341580621963212468088184884111883666469309186183927837495045636973984403096125107862119087607858671695740512827878459179552707677979136411355956444021429400431715047995714445696857129064499227982615756551253563470491781221653636642878359953820863947025517243689967865538255722116929772388816616966522028711743103941202922340137284518425054536931949516645216751960847985551663144124428803506852961328789818547697187089175441181045195426936989013696558465163446932995195660157396769964081286761362746511165555922693598749372036903970194297867575110069204393330052581801156059124835365864311199579023236217160359264068205720438994882587304062607506119637083820202962077662213605096604464706342407994220058349986256320719424069327052517496683581009473435938706189547991256495346120527998307638142560289259457276339706164360330846238358785344398923771525305919430284238735744630526923027677867330440689561708425103833866401686944595061384452080423073405810587689507255283341775527547730283572900775930902570485494247737403096401190049890491971867107453136078832770948762736156172691690372851851029605996696707918314523849515719475506323115035639229828701416899102985872465190414741794705812787163425154820705529899889534691521338056292891985726748573758155798021258467579266741380251184596865406331719670162634835962518579628334328256262885418927358273429724153758835099165959531041836410751070092423715122443826671049114471240242690651778986531558747289847573697441938553352547462876897679467853898361137671311453108441161311022480276545107434805140085888005766957539272457117512427215475739999650151748815227552705292541460617391285207509537014016092399291924349327696551467082083858358865679856732894408077957582565406092284326224433547342301033440185964098083315925408216849860538579083385999934990015744658241189122903928636601688043370509522835693740639176140260818840888206406739859685634450721862983650967319344463513891638976570513188859121173173655045860908985477669161732309471635406548533230973145139801498314321176774840023296548889301556913584006260514908619644030700326384062412887323342221307551275004160089822899266177628238277821072222798137767982030517572043030019411746074597710838976636260374644492511705374062919898016013224177148605288392676399483462169976445625860923936717113423370791016239518273481864613416254475790454605978809558651393103389210872958552369128051081300693002310496291872337476511219335176593590562484716939562375227769858633916685566565118500016815300981659045444833874590081714839222161757373394399274963035227648389504778742454400514754333895087052436763447198436868429991675153426859259226504804700231771618833099796808263922537695983783990383377994720555057069828234701665505282174021596353237075403269846722953903561969691524863662410674130831674806253225171285811372229817883592047251091163925221530135291804547950144490434442078563840399026861711603226062447865691813983430775662168532646882028746376701225034935464464871220842184752508423307385530914569039853414854612054345112020089495285070065106987085844359967903396942100539049022682938419870255158713345961706396457177457876242001493346921176583574777165739003992237621976290766936630109358673699556239810086060020629452683417443322370373337014827052081947798047287258612444597605575964998935930578620017996273020221419047939170842089843500354239358094219983720078478470323920273003113294406819963075702316613940398557300850061462693905587517845863257172501083426608012978334741474095901206556625094628059612822137749131347322273695641022694064941224301129889754799065719008974000245438890045596595445588651978161403259436603261608258245482422951860357732830332628692362490365953093394140455794206040963043050821938505155969013773034605321916849679649076140236793039368355954937772911495506176775420910299753303429052907236652508165504114342156496714675499373015258941692862981049804831429855507775991696873145711739033099687170475581063075004526669756290296974332835879617962338129093683050573759246550843576480216238401541175232586603327843910165064246448119946918176550559828840668881599667485487828361961082081046746702180707781457098630644741845693742051247166794920345221229811743903401686936664337716733946686483029366393158957133980434132173232210793433717751795306681488115620698469613680869416086012374650434437093258469405955751406136227974695203899317873340780076316086683169101732264143893343412430255790639514246171122541623503839248078712977997042497794661897024417971758762921456283305268914690953896272382203009035784853521906055467265168053753040751396544097430111995537932189256464398460620892935335068645231859921829751740051323440235121155135196745909808873492303223846623020212065925836426591009557062083553439913837937251679940491012003785956965330396990026198473740764826350229035419906620533172219176881672698683975760086444992764940966517056329900548192432462785726384714734748722187360434055720341677200626937423937256783991993988346811350611266979112996812002341236321396960827998424851179103149342280818972087520631720895344632919678710515983412727609403676197827167719471122460007762004830020004185578066151996999580483301849838014690655638145973016993710918581227576387611289487058843530509197458361612028120815995965665080545984830765531982121487994377165812316504832736244482309406949348645443308506492490352587171708370765595955904405781719850041878679997173790181729261931625141497856028970688267764617816891093312237781812428813706921562181579298692271798169520386013942129379272089858725557036766133326474779926163022568573770322948496036846064556759287476895338963542683608443559492371464275804237501525422621605133766093465910172230692563329656877125915378900824078941306319676432262451163936481952187831289481731674795930225453826656570133204185935374781584140694680853884194810870790452087030050245152908417328515540343743808860875309163906741351534160679957971491881595314267333678599102595854777681364457146900093640869426704780457783855460692576547705601272031589399945838351737012576960173743709760635753217211824438756096936268530679095175172564169568054167321762125839917896397790329995961067683407471338983574818204644985742982157850793507788974182036333469788430379838029218005014954286535854063801653394185029705779777140348786610575155920098337025735406281121550157075954207341953031048892704104616622986292216632822278938785175719596357960025005587036541137897812700144946106886427623374884736939138227703793743771685885932094532123925068654920257008012545107892337195858520662106006993031610662824157983183608488784142801573829832064568290321895542252594273983634116366196873004910336959640694263761975059833676747619258899675236574402891146599789691852171793178026237764391037042444558022581118483547308516582088253877908973652668125996600345178671156180701211450476728137673870563592832232314667758367068479152021967563980715909396521304009518362286982415284766509454693322341851395361173243809203950537173985849869025099637159843263335611326974148238778664926680941525156596267799411627078900286651011235256892417427867499143679358243082468728361796073399809293108203758016641975999893732259157317535796203250436945398481124079957261501788172779001789845455783425007917836668399966435196160445967376018100165637847123220501279720589947624074174698592213581096705390625298477588977394593921730561916090224381006469319677862464259188999747064248940169622679590111993753374623927674227892093094345744779694486952029385786762581449590662152413169262295382685201997613535872699212048967863617039697524189584031680955853260577912875164234849681624218471238256703548143183327035414715657178089716183111005449608835138660663601503081726770083162064486684487806055043234013450916663026725287001629599062808091702076442282504113192379332825955702604207021894936796928649057140165888342049397968398971046132717435415972126101676719340266392229626293674562185422287168606856375914172331343839635997801175499503531801520660105820517512317280872385110870929834014770333974167172357796777408493662061057082813843398060294441797998586267397833015293411807225316046467372325184308474725949597615311005940527667871535863597880263078087356636904799617095607281474257560432762265052766035841207540525057944505159497638301675565526061466266414054115691178121017044477494931221886965238654041374662280789939557398404950122973563910185632323957477940396562559721377799916094714353830185790753896345518604014405139420864874649611523596280434094770972003016932123525138393528277804902207320217318852102355973325677622116619738719448167895235728066691028999589114046218703614074299423000876823454628060522395263373903793937651431983140373147008160334540675778086153239985621160563360053485850959301393150394027299880112525972197174363999586468212391231828856703263296941417748756542787963442046101349886908540998589981147364953923077698641139425260561274640009430192348216204242506582512264040760729843883589203110171836204682239391698586052096104566699620515252420469830874009213381564005814455835694407325337166060930146220875487114879414248282659239833291110264822908925549550188137730240896474538217461848406031194488535851621626542028210718910470790087336924311860448262058007354625235086673326791558370339126986826293541309022615653844721871049366043088372229310409394581161130579916745663597038914998174174339751359926041515698791719520631767989959790220752317463049862227758429045171159920875779367847603260889487434179403196506206399404978307787062250070478673239634647983266418512909071364402776932389473339989567996775979174957547617263868777687648144798528621370744823073750081427501678863363254951837018998579798471137054063894255399270185726981586664848097011216342977122168797732319763017249944565425762130472420286457981762076723864843326813553058700973376352125685164017360761331192411460022688256062738060456801040733317651841126721921472627000329478214787417041438769512429170916803998545921303801574044214553357741197804549008312477342347145614762772935421453515368021569282749017193495544762418435820073369318901419970532712968366510301037740352331441115197026515294680969762677160058913291271922445188657574015066303091754880821751362275777713392076869922070030871181609912943741599143634568145224430813470118411781210017895182746039999561316451127502189626757243218644531227433305557282630576131073026362091817825183170708843122931861122938152668809920451918614147250039899462268271412846766474015380821418134873580401061048006948425229190977339592183667034159982179630027139355475927379531374375727742503345844337509151610106686924761544955043292028763245275017419091339670169178057490918688301703737245871269923164019760470445396754368139245913908904161475317535431285576063645260945431679887329892877679664907309941436413206358962526406839812423201387917330494929958596097910669335295809356026009051862217920324077420088118533007023543960737811752650430964773464401350619089367490123990987345405799063622818802761230986335988364983873854988909708775681144797054528411290601070589969431258329169979444802791099728201445628477212788023538467284464992453389442090327181070186928802639797215308881743771957678817101576736002934023974111089973352435908059739428542126749748429608612418217967008666830812045144768011259124501248672737127463340132576497508194476396706470112877648410987429142651026017952122742963396640863149055640721012473775055772101818479748342311116638062021418334897094514365423589394441212532606137733652731518485358587357803710043491683335575283006141838186258005499773689364974338418423505654183634097729640713908109381267340049272484589632496453709724523154241970944149766021997765505682471121948699220328018929724017683811458189437626922753639482547593295804069553971865824801083595276766254745697516201111391848580442699578024017942989335367398425664283300821652881096993499535698727025036666446371723383248745369742272318768711493468718507756867022218595711390715957994879697969736799985071285287242188602273445738208274826672254713993073435389629904474314455271879898410640869734913430389873301080840663028310020243707864962895811134001411131578391616642062884228154473122057416460565487750732961587700020880884465327178994822870112775375912703160372236360678106493405443415523624706142214169821211982873588804440751325353168454077437714444275045306722064442721569430060038831227713985473891433686184386788067414254428276751264391391777488430037156945558841406212059806419318729562109525671210562055636227085402844360532413231221444148354724551742471273762889129019356915753629328949943154824760717065689347248866585538802730992912831728297584234646053233395677002040659354253639043724216284353186212268373280102758200456591138838158768083144539223411618699109796525716239959927923090955453059959563761161671388477737295887377568064299139801824359996156405077625198773041862543249043271177171588064722464705405906331301040027604485703070026791931537488024141408018918475032331361447446723886823598222841141810262492881793187677261840297148842822661617723586751420417290680769136098346780769629672331100398984394412110195630551445176629118794660765979311570014984483779072251806384291032030337045568510638067659562886657998530656271409445839704797523260649465763933155753231937572672809089168686499458495545252404277769748119083089213460174955277789550368713876045551072651812520734905412890018621582915284099837910806732806665792273636497203140772757784893355463596149262815948673759243100475938122238377437671982965129474181902102397604486925004497724730939304900637869559721063342940849586829040396860307042712615162504730494073809815389439411718567709918301023719311372712593005311562273036709465837221093937928640198275521975517572416022862463914327889673453050344625383769047242045182090014583466173579786752433476093675818249696506794369281429269240877323237955064913087472785611311312177835369320160028873772420803056323381538410283674602302841532874120115119283553881287584883839605092833044271250917707453009405346520000485123280540206860500902334954124073617807436806419371797562841518556717462779910856978620789278047490280930333371368330836602796741792283008895186919148595762996080573375767078180167098817112425556942177635484411556041940425786427231584760344617285839923004992787351809380940716971358234882689039581383422611963172487129164528278518601067224846672401096861421524735574342194759297387107372003231844772369182579489036958163696836038026806578619242840500393873720707103477581275284117198991226769470913472814781375357872763291443618747472586714140560774369064058455345179350560961822074629758956600216893922289112582501940472656023240327536419245253024599709963703055463169880833820832994356414726719306288695944780261295112616241897338523327802105206975131957161471004366798655066223674543211779850709800456437600836022587433335522006672048241222818645197248059106405188916719102741865158380354466136661475710221633802834931275976075868167528467132029693085786295033781745828291815895141446747572362433592015137464261261260514962823518181993080703157300615399333549073981223601213800131712497646858695762988664791977881022552183185995854833212174250615996649277526082056811763416273590981809877473855321274608437519067991065265966012396915686825485126608821855282672789976436270772355746493025039113638930484900475289694392125356466254385131848399837421627865354651585430455664027109771261855977015938245471125223899760392568489221979770514185276679559911368756574510810828408294648970554820028673325121843998067171589557730402563244188587487793413352455878819460891148071762923308520942058428714226081871950006228725060136889383848096925012911779701027719702937294304273876391700961533305815563208185326500896157672627298667389693228564195776455016369896388456307512130595822882253741891597116782133774326209148090879901701536814006872692418326887560221832256657616436832195114038139520105526386827759551861992743240946093507251173918487436635154189240690640115548654692925840856343551957204434733119501379916108087962479967656210028735084283769115215785722300450646235896799074494589052487064220090842924345088220139819210383157843840897345233174941111884387972414952516125964286623227522654814719897872632344507287400074949487360656844634071040357796317745874138980224372754833447666952635210749874479998406538751125049619418869300640196324764806894511677365271512279605843713096365886422951918849878949937080812469952937445309086024210197395946516789112295873932959120749159166106706439619820332254214635461407387362722421102612463149679539665902213775124006881922729249185935132426810449780500085724718961668816686044653539887920402496263053872152962301366044216954233371864045349120076314956298384756049863915633612499069324755733387018760327641732939287958913805923285217782366806351612820131109230712314341709087600869396761670975392502102238488289462601187647476127877511619664995435766644170651051693900597644953583465845612806891201366871081565131933889663922883122551249559007708000529325123765053751922920786504128082774793115890875766372027816678007354145921925351475817405821424669488889093639015600334987603762644507083701992810358327119892994527226877327149384484209789159226641249777903026139820049167301419777951498175640263671478536000046195288022640054640587717670793657791160949051357643745562862721370159481697433629784146791790627567477872548483492418854960354932974113581388181205911253172970760691237374773279065937145630893861775420015378477514247794957841664214657144886618654878257158149855904537315388026262948324275238051793125593665804337013177008439921734729134690084130216768010070910838062892816207233142452783532157587162429002083822537260432843507188106889999289018526390050648397493741465663293689641305909140458604072365651199993611527991354225664384952377344880752138905680537910711852857891909509176482216695481423648954848735165204954686963168601207982479642803273309809447384304390835571366121027187370402811549444135745046866355641073426892129579101212921384570925406737205169069157181664766210243818945419817586464775434799693563708012294228271221109472028838908052352922084300329726898560506665789115170708775977122972994458648364298951753608883554547078278007215972502912384834434236209147210720670020733168875554810730918722239979674004535408387180697924169718915996223049654171402879029801761102103137843560992741124379478109770100477914635491481319571068721152356781990274219810571668233936078309304895605887777151022776100175048699983973309470134922416816622363796219610478478944143438458347904636363647377836070708040095279739526875392934291667650887328804136934745420973695621517297932461437969193095832167617749513831489434136687271209914683191297575968418203240919905729136157900909943864582337465273871856746121845249007848871234027106751341485004779380888844051959871907411404035451324159269432781852420559279251888760903391608811577537862719074632666610713603759348675672443084930619816303771037637919869750547729426190093101981136343524673609082412224359851219545638003046399608804008620927405789351571908148210284576150696158384894805434437587576688962012957158681974474800038695944217272963521542542450560896128040468859723613947423875468065573477839255807723369554055077261569802750647907116108231912513521566699892695747768943790393368515530940251652891736312215027546849015500031696375461475895586598446915855104392434344144135391428866699758110446546519506728675092450502019400016231496046383327965553970070426343518065471439343126967018218910121050453706763652064739752945096044931649915970043631886363263199675332206859438472808644629015924391015993612591197138490022865745587352188038235819786291725195548771948321550140009500024884313490615720397026277898527169600826646982533016015057494469770723353772558459378311174373201929690865547808031167178283049859794719537891136497616579822435961693512359612775772213331409967912025275131289710863851806312978877937427275963829440787134299439859085182950211274031929043203480610202950048727932117179596950349385230529849852121855319672092115232178781566873709954680483064170390298978204760998811319201544525416156440416385992022395644164014645360848429719820963263147146140908824181497502577347627527405442086519301145552031389786445116154902402128774059055073560586796184439580060711202172536573127689248760201274574746130800184112629591024843884969300417542359347094940620446947880498506314217633610085665911946222072809631073520373284159583231439268261411955774652636953033534076632911631322009685344686282204014811131369627721111407063542978549026350046757861862770018185452398494933053697255915735623206373722847060412300805361767740262269250547134748191587720078819142761040323358326569879485537627332176454620081172889042926710444220203689073258153235619824955490396974940718657712669680262350985789160718057351545725206082760317180225444755114447499708312600476971628570389742368977725101496010241092043912793651538189529318995277293325235492913734318193735746528869235509266954878666996656673731542095340417109208959761209491245916513672075089191832520535316155573468516701346058995771119353085486401151896374847864729774082657409103742468050453318702100019539735655615249831836174981976902030927919611080840719727368735422124625799931288537447653600377133783258583804506516150459162465934189468469054737659814010460969634854117958120821543241607928928859679157801191158600527135369590667140550699114081622200053789762209085917069145777195882546444380090873040868292435848434939114931931385333500100280619060963009100014984299814799864219798125478798275258681336596451618207086141780044870559118031528151874671099224212423310638204538628324681224109930568775819375720562361493571540459315425851508100612660779929082677878437179649877525865872447731997966488613304982867055777985336479250128904593299614844752224577640526985104651349426489581270590605789750159441226814462615802826207154740073777116799620972670571931030968754046031614940110178229653073758841059272551600599372739816785599621279331278633724377722336429087214169833971743454782336016906280125208915386599336300914260767526500246257069148342591717956152574219767075513007153484633250728016103509585147902284554086620545585366330160284408381379171501988031598109847428536102273242317919860227556215870662484913232190172226228933868350809147108069994910669455001341710149894401234614772769169567898679274838937563849974041989912353652509950561540337749096563747511731417608011264082279589830828768426544022665680661946513349524167946215736683396408107855026552094080747440251637600748449150067323139983952109051360220755546302141247585889180880231548708379086694638855453194928807648259990053092686129080536522821157374362825700252431194139965221797927336256777350211096657496675111387005188918825292449917743359223052295751826619651389072916107251336002945710077066414885175409516556364012251918537647428900722692590481770382906526117175254403539319013843565786811301856667810238478816394600151343658633909083267430973696201564869011602108571927348347468376218495408547909719103401453584402827704218930947847715677033569919380779359941018487480325952589095147444833215847421952935447787735978733744668188269566239933942211771978711137088558467677701617396624939575337106401517697865556473093208383764517844422016802016864813808843082089732717115731094748617713871141272514073509645945437687073549589196216022896082037612321056712548341888763100327285810486603192422039066013513292901486070338004664749265928802543152906327789284829430769013302572714762492280639579682137948824884864095861014327450878499153699245894241973892167261498011000912319764277668129955643305579367990595436543173066713270670237469682491536858210666433936820110520654600921379562811470882592110736173405319020887199601614276768693982463245324141676005111622382683540763622982568375433228739320672463597905506941335722394923910352629260938151041520086266028328309875639704209210723924975702513644251166284245690382112155361678716134904043246346351637766048282907880023343363940895600809735645874714480671445990243947416192626313672691104824263909547634652842054461858312048284121266955951992181553677314931358971448112843788846349788348436572971914478634407574305850901587557456917471401393493729547809586089657033174521523558422010683770542130381599485077189944650253024806982710630842644440080867866261887165209315929331703177202678343222674130501265678553560104644785734906728159959412815685231159271726555841691507402030296623385256282494492339367719217454383968185709746023599217854720689256102977463844554628634984890671902161930957228459200165036877666419163316454782870809211685806136696909506969317705333737726597491290213139416014924783022006782869116576906761682206840854505323720977791328702315341443709997801599358362230841865067902874539775418012204105734908556177265994786236429560470710757848090739560060422721272363119595117866556115589398004260096877189278404964621898419715138249395654063606354718856491622696278633672280774600913547749467811412354049054152388882955269481532688156519184604060029540903925283606940157079791785763235891149558243217487091220204530688578435250519002698902595138222675745374096750271042723033357802127090332457057014202914188057514302246728153465905319244472316275670801573673500416374205215297539768477369648141435804316769902367022660687180717934668350416967604679232870992339190867521266248651584963324520500239842355474865278470086995199529796564133433098431901443186516246243333888016011599389053359929998736152390993182132158153071934518929418537714408787790677576962144815869373119581206212575670628701398927824099940557100402590998045674548247631436896534393187863236833592174037913394555530034133061292359715507562218633027280517714395554232811989149926295721153902253459275738043097674475916582807309573308252472586073346845827231966111150468880348663708104146749390266532818166871121157054111467476759445948976454268208018002920766186976556364583332875077866607089932186505000270777723963527075186503288516363211544719747543999826421142924261248168795534613550285686946618523933367820778908033285420359011214609579442011205893746342671694695040405899858343556185419662450372298118614655360608295297043832919081173354719644617779554166540138744340270638149934358682984908888622733628761644287722021147677914393088055211289140038132121031945329136341947847215254918531343016317608716193968331749749409595163055649304195549865945934483644190846961456426294218263782436315294048734849919604889577026280789026143730173496777023297627964540859996335871319604236618538010136716066169127015288924270270050258363465894974560809634678966685999511640809798354078038813031194629381870272866320264141761848058775539349885173553117664055563729678969367585865185085931187974974381333938088368880579934146298770047056220348820569859370737366392464204664896437281088271672334146129555129607644543322035101244137408179199784110605472037727630803471891715064938610697943184002625721593457425649741118209076906423319125261580933919030901075555139750163993173320360180474614872561741339472383148942799481742914608512808441929454467400151744793987578834483145872198846517694028398819163503873473252556957496976807934280997907748493055951732912922142093298323185731094547671373501834049350352307014341597036673397690739931726292801097539558249140951532650064853407935968000640632513459847047350095541931466536640501980044481754046486846695598066893304359457804114747403690145820806764307206363880489471959128288055000340444473468332555012969273221418653029313494448228213178786390637261272739593013485784423267198247797979283903188925629823820050070059472113810562256837515368328126781410928284160144233999187914535466022447992191403268592623905621645030305803524795180928316056295870986201735967485921961645599684843499669236841378491939403486063287636832851778180613782322227098084064784224014396254946773017907815673409579191311942287960176714060884362398191589333997758625616737904136985759429745399415115468906581318550709998316326480530430121042643341299835231439650827196331002209037352403810446463781323667415567371176374581002352339385361739762552205470054283795820166323087541382625546068318277282839086676571248468041769988033645969341421908438044192310906680327806203501042377590135644790252070014837003862929172225742714386872875890824059964217297091412160526366768444952383932933980489781655570394187743555244207488568053895788869873772114689592628681087120890574066519749362182027391602476227711465533577592301179706887474430193970059134944320112719139942179021310570545768457042456260136656528542854864829478092361129028537588710766909247399815240382602484376508424640729280942288927822808725840810293661121642874085141995239593640590575115074722868516082151665553834278439662751545686198349661430435085917554075788771632658888875095980909605543187107713485243176263966619398253927660953116972287783391738407371948566098237029769820662933694407152144467137819667396669426747169548061462206764120999705345559430619205579404710278913679663033780946946237682933336348947457082813687567595671122926936496334154895234708930225650948663096767942319165207062765623627392232508708866498005070228771916726966160770712354141766104263408655103744715850232425538102017106072176771046559165403165056476171192864045271862315086461970305316813680768165416662988291685365914930556723823045482330961808074561872554999034598432542451635222211574280858677394302789574187133955709284234882663539868464098470520829533015047793838556763702573672331815283676517546930524627936994915809287794230733603232871438696892882005932945213536996445146484033621029888172521936309449328256894270124835407208426721634326295962222235518936049773776666453620752659931120494161389697420805967108084103933516104877027672577419603382199771528321991931014377982871105576992291252007207458236424052698543839506332797455247054746097317735118286586129269283434756744077737763496786497701611628885255611007452133260932674624025661117768464681636244008337810651604594626209038177070956749836973039669657797190148663788579161819568959922175931194989162411306238238570287348984541999209789963963054634410002308739047366942129314640756496554302586754997712912161239042661427595335948918081384464696545494862071800345393833810460546102909282529439344572085980475570284766650807575796877478422501512859124637250941244304007236617438014973556446039590368382607301070954288661003418381485774276675157086970999271122830343928946180365980879457363434636907561177507886778985461846762296132301532407041818510716410458182758866013617887030076238129915903971379515435264135292723479572797526658853756666245633584566601438130148693720110280294689923059674219133310923915731306016405480544565108499640988868376765674704247953433150725746069116444952222461634341352339244538699286981886954996701001488860113341468573992139481016393229314456408972741907697751329633269212042751451226664262789760038851365535355347952996346798314528458280386160920186260248145499126084422265230554694327770949546962988411156561494802372133431730368629361034296770844071295212555147306718443905569198228406041524255516976015326903637541321639916559274720447921523038746609488508987467869824937829603267346092070600176062828396785046501705952554023172508493516317296030343194531464062286530830596425695776853138186212403505505611629086748158929583252080726242106487392054083440446455874424268704238697768089032962136207399242964921946462905533511562799860542379378115843146203921948047254699293346230733598703569674785072225472021283845871667924129680848621951912636803816856906355258790023343054660215015592255514548101816245679776949203979718259863833428846522539968608750397473470395871680602808476388693183358560642541002069757435838858149758926051436258154938318927105966184839309482973606502895721389531251893450776501600655233903082833533290770333788703695543604403105012647582363388399539464159959652962018201952651730153274323052403173356765356483357115767442318083559360276155911350296657481440684374485749263992848043809422561193926196599188357580659219367926247166310625799839551452580330074625310021829647789400083837179973384982561077736354942784914899368454356925288134516352512866137000405782198536824615145088811698682296754669364590823479624945631424641999558591762694381860103554679151770948408414030006298379613320802372971671870317681483925876679816722658159392696175756405717237494502507871451106638268816568838296513072855985584667677911054758441318206045095701101717405818550764789540911276874427671116063359587394841390599497379273300247900376157484167153195672234114289507923206472336229362739524690769914177029784760692141266180837641444772986881545709011613385460285778922575020636022440591631357001960041698467521156089980615591595982807124379140475552032427473877534533567794230563428081299316000538109907200753570950650170363322031518613441286803368295181658161947577878133238884849841264686645279915124884937976263497818665303585028659677546986191235172373459265331559595223406075718784968288720250379180385829026705017574328032274060600632092197230507502697980744895603836380639597431297465288238147204387940128049403586511560683978547009818824073235708760650279571687377071047854563378063265002790761859567663408915969227385211025578780207859430222871422767595699949253623379333525164968131722685052942500185083916935236482776780290666857466289260274480115880053229505713580305635779814403264552664521392783110290538766301808140858080002676777056135911711398858385516803152987994573262640491960706932379817375035293620253924755215306240338320922895630622567954301972010043753276484442946625841367088075081293228535631974854730235871142650451592763141371081311749787082376350676076504351300272104777698731773768627267345879208823334051917821977496185389916552149833002306825760187627133575587786757134945766794920243802084178388255630088141301058686717009866222119885040547865429660715054226221221601341879094978784572413663203672600648377274991591414983437011815870590467916906041150621669343075921156324189738623111296005052951574631453451488265843663645226709167064795357724894836718771239660996146394930736676541540589557053379160747927713002289729319171910599479794379225696426452115780902222367012566840743489963787955057778051152686521208614463860826118738493834059324877042571672492265554852405224739355646825937140083450882770617567264412686564890404874839480408344368270454536344400077623752629096760258222285106198666617003149451854654607063138013553613070584573750097746978414510551946516378299672612687979103091670443923170117839802962926344334590649186217814437708411654616992102065275313583274783138010523649068694047554421933472379411764273999159077796956285136816133394111008563928930050234693870109444475776410737878801300453081902828992191853118684266960475697839464533931260033009077930412970957740003348033101415936097561591341259324684935776487788898639841719249613926850556575303215766767990267768004711108567378898403831433956090664147356157326169508517649398766466017199624465308836661380359297403469876711972425909274700731494717169611143527014919481080035297254815946662332154663517745119017854436958569864586296390613363865676626213639613931904448718165574173611451640506812847191571469285282824620061822793476908514069721136713076753848522887019783049149082723861483064308069727047721145688951094106015083728110434602981746393249811008678857847143984492010619516623495769201292628060569020560504822399216218419070044509820513430343606424761949717613573314125478637401307670851827974237199023136585119880485665426086338954442155473789300576504625111262123425046545656245218443813523200437721750303529137821707711293997500506871284734227413865249337143286472211632558436774988096483004334249519133101558642054535220724108472857048068441679128854391727495688900904471135666707772135626212035098100230264642093803583374726231848389111500406734669363445209741863054177876406168299260273965455785093064168020173728293744293501795285028398657738875412327526099895292309093739957144264770148937660267772139935895442752573157290142877722609230031653326808298134263240698388750309608734612141218728203636996351686076548588448972946440995880570853064048576151286846234773560924666127550145433019469187997890872017944345658551165872010075945555996320868500317842904212129871055528594467963900495331607710384752173681950931208345865853984987771088462117176012412293946855229914846369345014824888326298971903683002185170073581305211394704876774520308752765585508412740592499417043050908149960752973464654309021233767593935509300807814376178127471551443226504102612541699266191311378578030559244092114980265781506969295356856531231692093783656540870902067732057913258052983861526210027432383374571107878715118160160099005235818365975677403865547344428435306326113344204612817781740660917063199666078322856454923671939160271076289720852571133970508110904350001278358762378484876054246547983284388769481938540326544749415279074611047845599579353225902327502274861572338435225453969412925589241499106437319665453435990039377072695425090604894692864606951947900608448090566000000031792136045261410212320956491103602902927742422967838332370947033651043793428219857439457530533807355513805098411384067342280502904664464033938193834080908996094900291384826117346817804306766752586187032883406588599558859951139304865225032636661557697573746172503119327860266105055154403883648712793554009604085405666966657597800135815811408151129374773828210445593857599653967129546407965773057579612431087881540697585837043692941457324547349296163632948406273459327133498714009644800066414764261682620950901744279642165101715565566493779511118321729698631720920447693195004397902170194572808555979408502599425654868338155287557485514331790535474337460454112457089805318399743920064254950677186598138663402421580030754701717636856417748343161617198602379252159185610249714429469705492983556920662705642619108351122898102785723450611925874022831782285006312628726252347103475068072982713845527836199304375136311990730857012897115243223299435382068438168947919328989269508068490684055979292491752377279986979734862031866220358225682792543413381843629667809857937334335610889444454430572317586306399808465513921534367486371186733959018650905416541218949820262257858899531973445090083709306887702824377717146971486215973009766441317272467082440762370677237666975035418713003295234092834139316450393396988907393011138043638372130095565044004635961454088852011774402933720215258362787983547311938484745550178353005338091088877782525931369697593763674544890263794323671813871511846932310399362968400461823335579708525383628118600815433640022760289998120137253685570684604403332310850979121498953450070153533052879803968302013773240448986219952305266871191402878324573996646619330125477407069735370206367149205839444094006883040125773650854359485469483252082688946892775483579121954224562483980497030418925666262535118622828931573640775320700831765339273547730961796504220295777974589246796112819102527337664061157451695794603336932101922767023931049891662510519534766219844352952678889320575765296235155903014950810106863265063765978798194458544840823246629188928310775511543167013642309987277489950877007826808789343744970768620549171999363373633960205220994459595996429417851029507433407706151676907862305790209313011370876830417523979024367455357841492499869639349076315956173797484099618523652113399080823941072433648830254180034511353200215631705976237083219817777006957607134840350703879844195291161988460791630533359424918312480993644779298252502680425804847821314807736865846522929164445365791923559717558803839073430611332634110196421374989725338731248405220949969356847144614374625688099264239463767536731380229205851047695045166566203826757165061632841812184016110109452498648346142311018173940166094708718825717358673881911193648425827189724148017774311750853509609163784269582506103158752301880878435356477132984390664699931412089987308947017421521659836360390793890739911765516300899696973710866527793147732498275146942966972818891671163815015968613391633061934796712972325723131600880346143169038652944205379806838117250493366781615442389413844282952956514983812235945341818773241815516475852986630946753359334119096999235745336887365724310675045963899996092245467241372006738648755061991798512020579345411287608895233878436220024919746778889329026151434011786849111297059451394504190414888848436266073435678003799732549034106706209681412054003611942025335325312288843583198343838943703907387608008601982490436833879979037994261071238638167740304309502447067079584798292656163766044486109149900910219550751205992743020113432439392100585111980332930826592365888001415818400113799065383816795328869705173582940025642011685326548920390247281245270732966743135415952974168058199050121121068400437850800135202394007710837302665755103634438512912331961618919892776254046968768394093037774775408546124536186025048635735551101200815505441600770348619228938714208174593938669185460023810962758080512138543305013640091883748564634777178341519758667914404579421899941825235040135734312378865836467765208782248805440187788734534193821457435532355831417078234820514845384739985852688737495793890506372584729221185850075546215191980212408696339891616916257869580542664939191783647810150606441438343664338959031034554410865792140961285415157070389673735628524450807273765783568245361716944183168267763545840630685632589696646215975650707767331763467392000113057275392803300195868496741978870789337310148693890312408382222391494164711262914991942289116656083473835443454358906929269059071144675898203653391193223181727672480966920493586069688669206620946860732118240130145226697577952570443958160743452527197866836016690681790956761855984324225282770178237174677491898045624409530186874312528653034004123755459907952037257842106873201010364370137893244677364736064306198707712061902461455840119645149770328517087257207296388764789783986060587165354433375151420239309418407364358626089198792039079637675660505349961719762861532983140398380346332916441413764331083359761516461624114411329010133939808805771866335303650619287161476717722468626234412509234437019779836641899071343059892490897747025054343780865939253388241299635223306948197739818464343335316431519937223631354473550970512315939925794663235072814227536123183299973646026185487912500344347075183369632491967959089131860471591110662583955303221048366062243272185755555911528411965092330443811126325790443280952919721178322529842431468547521616870443390976862162515049873733524532694151440796187674543328537780021303121447622324857684400410808334154837898806377285973147179334545824642526323631063056155581612351623122030315336295209871180678267516890161499696874254781427680278146458139155840297536840933232895637822812347130506672211431631114053912548435158449809438396145794418741454449778202214491481929622365610558980291609661089633425165153083415571332777854864069079906276191875109580010011730677702945229272829363651087703798650348736377359963244679565989178041699650375424683727836113346686284306853211950650880281121365905715871338698607651379865365766454896721449721679051450380655511198289286866597548930297923773460912610547969604380892870460933002988418160090562099741824613228982245426619319738199202920506155361242782501453897218008987817986231485049464376379943617832575589327677531268562480616866558515970966681997932113989246676320042893476191400633003950042654705837200412288619163077146163894517198947402080004918616348738463026732233442938726716999131786303170214063078540855421597043504866899038170108291946135577308659188200270457680984166624951049247070953752630078474839114314742006517600373097815839607805774992521508758020379031695930031502731902056421094411685455065933276842419018334372706946250949887493839428656099037413124967196307699818873072162949990557754635781752999226264026736733884357667677271010461412173391030591721965132467607344935943509232319468117313274395321862760834598327405966352735285804955694446293574733773279727487658589930974684774736987923829188420644327575447525215546175437102940236294033505931769290460448998365751303504225801598001744650227914595707842603007046407196086798444602504323853638160956098942768477840398643411631551723262699119776070494068534548509806039527157630114764569916395083434557108797292759445928902752664593141432358854145967693607799229510532194978064183246465817527020753082746675970596519087111936273216923068749996059919672293297702665234132701947068586503415097359279274963084070132019422115101872208540826409827106788836287363267466160780041986277062769069880975239806819992466548174681822561145210645041517700205107759295831473330569941572687605498063963632825018809083913595523803136836542837504980542403481702543775511037086380861522936320278255804007865299061898001673756231396190730639375628566821780217198491360410103028704512195908626283051706464490020379468256366115712129353222066589031482923642595486882056773650362006798404367760627961531798038592551103255260991659164508207485434872596994932370422531981119828790294989054846657428637587538112688024661108991426935905521038405308057801620162605990273154116628376135334148250546880741589742573858552423407115709311704232669946399230471064792462607471938719419648738569513722039553725559353054183508583985435318719009109636304295821227991266284525566980617780409856819934874767659318389823274615021727769776389884966794602199352892679047628989655007361133478566903189015418897742748356725103801492619037439421150779103660331456693919917916850885885827986441942855774375421382317606390374488170997999407414611306554056662888212256181352837339057193362784211792683206031865245458404823480410290110539559219376032878726724017103744525687181342119683642435037650436488776513980624738368989927118031111641374669751389193541823111678940138191858524948177875216939341805651224956812986782139579379693806610355351063566307038273252966399440476591155565637658535560116560725012956981534906121028503102015084457680287286124830287603894565659769054430397142644693914339165533061796175154800245735200519750036923058234212725023306454349783637050381745741853787648448378348896880342604744412034975368308750049712522132291119482498070958603860965386312406092989513041775194052962270365462340327848242204871157758602159502181530983628735708533849750323829486458960818957871712946808753402023734933809148493463046861063050019805619281250903705786457330833537632659736500843793647234497140606563718998089868290523027508371163144480773329529119155940652296990560875032473042509101657739810166203784283366864815120400997262347731368169131411136601286051263702912578250487740071675009801905647951915884185321220787677585046687005707209479141172440682466146807554505223938006299559000181064085354779309349765399521700127310073638258914491645085467935011791735455360426561542102540471980248112660894425057838841426876890339627035696587091404068253666622142236134343049474201727619520227473770803770853759907070938142605448027962189786734147563230091593393756641128995286117717749881554189777009714668791464778903456989392714307143862933658201223940355323407666620080337999398269492974066884604484741785065555239671976561538163069888523195399113991564102941349993802104992417894730355963090019105624967263634927526430582890757176169053966720076771761199785109990559431348878475614708647338920945573505553783135172726664641279679680994580157914881955934448792872543014362358402486054018980342304859077144534851222861264009918382050164479022545266302960772673984477157561409399812518812435573172804621097236032704219914980071201558210378911461122604337373554335622189933975008299630301188749071828173322551074775668291444589473350326414797035628365303945389326306101834242655681564080114447535645736888079416856779915277606233641077552905826471583517122610120674033850470102703151735662355801367830012246069917749562555183123221847950360092559981317000740996931240989996754561633397328078220790011618571229521224557255802858565988090831708494766910054626458374217950254195617862792110600854284468516245958444487016594717259209842932715859267646594467501187234763020161331672381002660619506909518159722735101214955176070400639584874147917415304023724622103655031916471426008035754884103590329549532858391314481341259431136863557352926879814412736887115693616082498334413092942770871231866782919575287030818457279838053207809853411162239798021565315121109427043220958386163883045661322041587669008916223127169633475834941393153890177075140138683671635532083609836893633384307161401800433231392013156137030168407370643455898944316657242147371062191036132071218710187548393710312210663935804550077175100025034739735327511483342143168049122665240224246579006947925380424202088595052882598400903934611118210418261214622482974143733521909468208344307458426312729102903927837872601827075830841216284068659361853802708192873278585835879092982684236662093047162947028212023295530878504285983158046147265249917402169762554270573730956617856554418431816318714853506800389655066448598905448556622085634307421273777144064037630029606140855983405591153157383910961860987829255843527749903001416075925866182728031396141526327641506960840409617702606476419630487688218277079171353258266913092115626470983160469433609510966726676706382553306852091059883768468028919540282994805882203792728661400660576871468360613067469635069429937294775406899634287239915070265162272892308157886510832193051847479936951270402395877235105084366353839529024378387372330065778882763321445625558307407824703338987484850415488004077784959269291555036724258934036034256435012136538849454140731772215810373394870090894413258482369120664781108720520086852548242761767469194828752455629884334088423708971357961237995986980375342504161460462631331421672150234865702815234679016577873204062823577243973986735146153564578152223126576266098196957392594880919323314904148036426149452153434646063908114209104079318946221443238524232866885547844700456962054957416720575752502857003143030482307863100481770972139452669685391117881584996054135469172397720823369536193158142916221403107540352609496697679279659121244197787153237082326559307228413613015251984478905682547684366395153786749716294479067059797709034559231298004852622460095910875598655591573328703672851156949787719251458250756387445836663248818958239226195051178273002923650749169512974112708418200289908923729359221634033600321984967961452475885778380820891288509133332402326563025573287695765578276927212054339304675673722968454837794997573500694994552189891781021009244823030198529633606703993963386391201479623854326589314252934324044637385493398373203244265735585816702455326756255808097948265704450860306673995680810773336114606621146329651362031175783706396313421750007686621195569186448294459180809112530102308576123683019580462530094623264384370483068895085579108967180346992807020335355498434710621021565992718803121541153553878885134858147049843400784228338263329542691848554059188874400389678615314972377443248827123126988039164958630311894048289398663236263513413897382115833581776210526314588627972616033506530735283832930718162615759791010683882681708194007745607412008611879340161112079491315792201961354230604851192910296004108608493666446859096466968069620452954281812302692578180006888376982237927869215650312617068606540200926007480946849576187891111112162962023121020501155299196601545255968124215159447098598092316796140412414483789131215903545870859744346621047032776224226828650677991612918925204510537599560615174317131466532882797838906812046236917063912416130702762012257189957680577651910342336698643254766457191957077604931472874952594471006500193275633698924048874015473171917770262073873010162935628282766753678765039609473927043717192350584768489556014519117866906529109593805316920457414134064411249542014482312773014628293523051583436966006735663502085326038930543914890165351736745967198657423818060969721732320509780643683161534334485433543709113763543988450405490032822710475471638034906844462240426130204750482488150941639391440488782126046823306985971564301533444662311986558730376528398837634289788143462821259523768052525738137651291421767911470715637736765732124923979705233770091750462864939045373532684522534053930171869869150684567133854090583004970543380995404402324647670935677091113539202376771445331800759844071816729366669230882942169269463302275238032713788207202815097864881978740201839921250129749885438845405675826595925018123688117081112397076791082850332236503359619970446872977557331755101677511592917216145518895663612695316081224524347355497031703455357765302307243217274062626076562196621177182051172099527276492191006603063150955311522795070397997910234101495103185178893930546543831119339815801707829299973810595079238472001445822191102938172977816910799597646924331021351978967466096749146464860776050150054997661505657540396467255456561827386449496887229483738791005645156390602742818661307965606308390639712550709177415577774111841123171967627496538240542256850019675621935918403987379414438721687883246018325052179145511004892777396296339202966066694088171841694545020273149969089852712912338429568682600184316058516245055359215056167863000516039642723558807695548248973457247669151919198013797252861595017010283023449240533699403284270000525166157742226969779405007794214928196129435550082104416959741751012826601348700349863980695879496963142633169815786089709924136646626530278237075580610708926109625510756638333036233075768226992049092919039132940375949328859559669560412721215662075215520928757837051206870883707939983671612355940118458816824704696681723015717237424360272210476073083693988020465764492769367244465653009235777941825624373648875770162535192360127312860428275317745084390706281210306935527926076443055447065122575100297040887047119049149322043392772212030300944783812811728067442485598240641374762294325682031505764673332307471454711335330078635297047076602661161536733796848787359289148741066052214228253294104624550607444181666466639016180945750529900713222999132255640518977402687533083172659089436117456246544102985860322838520995991055826015968615931506464829743268385389856066442196180302993711612096726078590577473490567410154381222866081283176464056975441030603821709419198309420772009425230839463746062424179927109616098253223082320925192195063416952102176584564660723782252857470593022264366976150169352890346310442081389992964393912750025628198699730399257350148075512659340364562346970159425273605072033374499383572773189490977364562014154447215116447365883876339028199535599624600134302217634424781526257141057314760415014125675691897506830783127778309086855736581977406095818980697447956536517210714065965491239797508115470668503627598112442113953116317017094243975009984685487191990009691958520568345374667554564387638282157509842009362301610251408890459846633685335763858371056102289643502595341167890162390918982081814232226652400991211235044260337347483071890766021313769542005026738652304126352975610780651752511890516150849591589785788595935545589735874946962715750287136169429835552209095358488811802902184492903583654977644785175086729344297659007396352568827304996925470459332605459232772780571559175791532350533457475555618788038774124490092766992402073948393442498781469344905908033365731269468442672781264267931636404668050017157939960978758912878903551679057497132565997750295573458126719763980863521349362424094176529455546835978611857649589399133978812240127663760872267358454496272111922885002577715304057296188264259808544467683780604695764422976592769853541397166287323096376650727722785397070165689831584056222218036317610777204933764319635188469387316026747803334260117453322324798235994638392407087311473569728198968788310148233171635405437391141625607331840817088615234949968858653342727241618821990072776407169276091134645640399094821400565335562882315763650593543043621859208093798473321457554103243093817538921645442908984955102888657206379915747565288654746126908889296140160721598722508963551696642898431647298483487274696096680805479331053930540676858891680418890342028413662707106586171725654791947100022625075933813186152995905820371950423548696447533792159213822253164678968554267728837891470035270394658785812806836827270308593442772956575495012878131297652262743587391653926353456409277329259610504610269354814591734695349105630864489691162182867643664878998701046810778708232360178102867065565833647603851918679766164944753018100163938783286770889575567918573581925344973225630921748130077746438556517718692482930759028529269775044460319024184730033069321796342422900246675992495296695278591970696978315944313123550275225194717739930966428302574978604368308975715436145397788261363487992762737542281021098068213661739341863468557216414130003100078437360802494492571840561169556543969457776598316792284736941469275688386814317057167984127246532496725186262619232114161342393308012296927127154164435806111309105574901153419007765230794216903344160315354632763648728860397364643750906526741806169548645525404208167671085265918473634945461222963607515860207040238030506321953989498269812193251290969298951388931848210663370799481908251120746960819875649024424492875413803982243656320325263261437253416731241687709969377461317034132634648501042434806321750065019702342625233147228765820047677417401722125040505023621632024082566339228702526984506851785321526675327146387001616665973438462829591485365419754435515769268006879503174072056510633576222907786347800874785160230745217809431317011379529099155881899115369970673265683958908145534490471982386627970629297783919968676792829146889295421256526699724010127326053968901304489561388107381624279132887107305887939951148131176225611325830823444337420538562050109734040572237031691231421854894210472191973259216718602191403739897713354040253821569486547473546773130836709786041135510685504529812113494355360733267373482859595567933738946151966488589838272593116841806225425783370954933732440754691041049540178368550526050532617965764321236773126341970793608463655071301748449636558048821320492380359120400601402947917348836280693280179775918889031676650702570371245573015391224658376441663959872924650306418416851052886981959021882928545580792382409942140344396382599111221210409532749206252151780227735461321808492218768690831781464703558917361692764390465409042572876744433692885538579424178057858776376915298043053897320483124641759182906785541430405524905202377628132080695390417205330216241210702733857381178882970825660811197506526218470296184397832772003921053209339838869346183195000096490939760869599647307333282859713490076074399257035658114707502220724107547315963175367086886326802349473122563735493948606679874244209653305613176874072994555853624429076475492763548246883307925481061027544374033902083087757257912258745403047558727189483240719704188674626254828135352590229820543105529523907726816815346764010274629937037108005274286328601884124488332060596580560166971314787024178034936816450941487527356905523705521598190319949462903045700252909848873269167954834451675328794117847798479272537228551534138159472018162506630263827826738496798205249241539195289389368849134765899008369448037829517486374771766232374166671720683577188113843140374656550641566506792161360742216420303380233162723320705407589673191731029867458579328171408261863156205145653780240935489237176055818677978358048538352039768789137027475453229202527487283954833683531387046932351164460492270670557540875585085849285576860820932590292948475142551461709364349116421099901527593288739773260875460899551120815900585498093275683164525591833276538295741923613347914814974954195216462432755417752737221677104569634040309480947041138525550281977672143834300813829910004322320865912260563971680117213841005012566002438509875655177481066800708432201743696214720538863034667693447747842990347037061068551952973572742346143873572674396580498139108618303091718300891382457441456183657314970052563950017918636234874824590633060359624749634583930959642191424573234629668430881693158486221689130636367203554068130517741509560595689474168929318085348765490962370634871187705264398590514816673283519778448245279406700266499955381840179414404986627023012943823198696646593110837560621747411533076261631540320799892095933310269511570411696067563946074911895171053355450861470994368018931243573373079858945040095871287355819028127286424007664349952872355802757922524856362952961398968983349124244941061914669424562343384495991592330174489417535228700040606889671454104686343733361762499970121804021382493466611305535405315461788188421854019100690600128252742305862158107027451633648978858816814355631807211112047058315746454472351663880304248391610527468853036690009974783657139840238016663866993797642432518866630486765756954250680954985826307237379153036205713020505983952567815368263107194768623853773912150324368921038741517765514660132285885510620755434218787130831999288903527124056677812409950821624273581653695272470170448610277389476978815412346167137385978102622458021979761697549282116275579324421279858726046076418232737101547972172377046371868375008601225946205072269139076784925202569707797046841726800802572924569012306614006936617217914742066837035839986131697233706610908171823592342375506028631795187112205284812012848097168379222356738936929578768720393647960775364059569091981400955245002591520496006927493923843991079858330708952560631657518133454076496701481557630188155410935129841850338102381603913461067388379636796642774998223332197160206853636788646157049972808390291191108144651900013392712400531508836144852895240471349199267192655402820467487415009878347615326108722750546629883755331822067036989368353799612061659780284495291982809528239736078220716943985612267337616997412771813361850504339430530335460611606778762842112844973245511882674042346485875539928704055875400790537310632792313248581446418976268235226220924264743559381925841300062328140930105416621333682755587648243040001731724089408891972817002459555856251406880893636488009840062013327783400678802443934510148563440388134333838799016656681225239692800002745893292121605604034536262576098750207286466030026758634391647839336966191411947938048330804824424486450504048045230575278524264145247225699666668716488685371667870396908867658979443100438295314635783344839815288843727950020107056872189996250823057957732539014183101883607653018378507165848001096371820073943139529951507334431492939041027964910758823344391639665014133344928203666785579985914633862084849540221583635596738273537190067545947697192496639556261126340210703807586141856470192428941409442786561657319888012841414520630116180201402186494682719385166730183947189986352800127841745160103091083665776883781745289856913061034287171657555809347473214226855779232379456481006639168703655719958487295089581284249605154413709988176433041117481489950254192605113613594031436446073015876766996922862268444630022319794389069449812704668967937140991744703250090505787351192647450337355790022001192671762240352658121823211146488882185999985448451626680160643092931648786509439390157408879092201074189660533496255916097999988203819845083223468856885182420319385531812425091028950978286787659457123944864543037719375534988302597521973855876573520619472508574968351868602536861533367949210381954815116544610114736687728233624556547051193252252990721092110435206012104322782842076316340219194957467980224387547905661837064413831772402231039314023194600562913366604922348408693728074394348696113591415638026468386562296055808086695037159901399312604439512717877490919998200795158388916162590825188886604044209543452594702829371807878636032836784907042847175242914490475474457645256390466099774066456555391340384756954211056071884494275729151057061775791794626009350783793712994844888250091747315815323664764932123436534730396762462744883690025560480288393500108212293945663996577556677095582852334128792517964233968071732592236178533857662608352952493528935530866589974546010262292718894163660547475062956628929504311993863520003909439728681233825911046918385154264529289303111067114108518278612957050962949447456395503117957334970573346735180940165450670332449727676287553440417437915054543198532324370985379294203789913809954023140466161410690397071518656674103473733659641791365164499145314265099572558497606521955888774531646867570068391789983747516573162863874576619474429655571661709163219110252393969180442728515915982554806138117489384716591655436473481860923226132035329651410040260836402050024038024603849778134134828233111668276181578230117810777853841047873156839723950067920784569652102774934308175537540520228883534507551592580888939452353191544600162406507140244533399327503902076343344446137002422301633336948145705275889020604006234251749450252446333177631481209272540075253782388998309707474595361176100540233604589916111106518084039185554682794171733323235407126931013066525475279764012740482861434666606669735485960265719415899048369073871638865444270753057774417316576437582609277572511505222818151371400796957244194888713972283345484668751664262590515761779045906494972840165678632013780316551716959850121153862357247446911450819824098147787226740314161230854784723575435454284965661355843651977668721688599633429086282546981088375648928722277382175942358933298702401095646187154716351781741190371715369612498727664541730205243217543636684459791439161121741349194572224116959924430490642359690508382190518452047870028560364647053013163979632507499884947360792168646561092363606039122367748367652453296847298474536563020131377772268055845882591759709544256843957099217486535369195039612634700814947228049644306506559844938646912577214283913419927556219353896315446592549326971806100727009241347357035700646876329081107073372124824319999786858055940915621878191785238061400647397378904006943798197925187436096865760436065586357997289017032955462053425543680074737808061107538871823313275257766678348756898665959853183813696095294070192095968979365645240719210677511349303548383129844843571472494209850855485643940127297803849756851853579411896413453058839200426035431348505243380745669492633632846304229015524154680767077027708856243189010770786552304115124600220703129912696489369951923954816035572911805170226525830810911428629838761579402856763616138560274356579871931334408165468192081973737001542578783338652522390180333919629799101033166457209528403521461121504941853548824508643152226337853436248374203677622938356906537452106375326182527630586512629511032253389137792718405916155100977636954353180053919975349575742167053834709124661883941090601201069784160559278122996186305788935192426038374382286822243260244423133707674239501940173685110363498604813323052929103205790045310243696791791300142130752830467169869257362169443635081200905212123990437640967638734219406808118895712828801243415801725253945405936012311859558559912983739513318570070233951538304133989900880397397029097812423722559843358547766475680004883931681641096668862404856226255053030576787059616064837408520758600178209099180537397340490724335242928604056886169769352144098343903957979027075924681274960349385593082578105146941759645517938563419185008023570667104231372553200871323220720274620260941083132933354074693001565407325082841702849949621815047534515998452461766750544320325705808921548031377015329246532794525448730676597596986939472753483876146673379969069903360868485588241578574980141529867402152727779110226836530031633483493868808945109544808482123204248590289076967298397049414745766391163183166076984107374024601930559506152963924683579217615715094831705018209730085100363475905738817591949205397170364711966466384510528274893926714060562423392038131709026855860014645541227057501002155616819664649352816874982297265991056756075759484724120789052232720239833387194407041596997050728550889016242978043790783600779524125861464364794735238206275437792658391831219895687066891124488729831677058999952544797123745731838455528452579811356212874813873660761271786739703966147913179559707903912455979545685856500830865020475935798004256026931385015601251568047730649419076780149186900280510232638876112463478182418030418835676686043995375916031422695518493217716082549658225988127849949272169776685101688890114714476084724739927844092523889535956952229867075123356714785488086679855728599050655422495250533893118041923396660020491865174672765366232568088179766183607219655149189236969777449586790332480623832759529544487611830929319683357024512936166881617365449671794814330573241140961494808294354578398654442503090569997844114801255189395993467646810435272533353490314665133573427147296669151687380855552176869473067057786875593409214379356141710465608286201488106442451616541442600419590268058294562396602436179725819665105914352854548420601696602172702042957405546794232007703320942725082494810574277426085978327052726937872309333843933263316004643774516493860280867876855528709600972658400633704290486261965488105257200969771408635063678784588072666371135097303318686453965390741860449045104907617012808075037818278492742267982892577325022044816515995971820528886724072504206191991348795805571880814406206885328934748410869741293771407654001247954204169753408343267169884878889441119906238277176189194015575179327861294073927900154107717433255010408584619714329994511872617306367158252345185409544011164859333166679615448332052928422538382146331231947813063410630882893680085480030626651498732617873806833664922023839563075979676982521234344537193002245556322880712068615510240753213932679616597347646332246883666407659086443317691452707280388977333876968311390038068592615446287098829307353867306480141922575557630751596224228777192103269356895553245188774844384459580436294167939048542979514757133862565638503601936467660169800965217471103107607285297125797716931478490230234280846769319741461530887225961069094678565679647962245719638557438025729933765896217736320698905627126060566356403896960926830723719362992219901304029408501729041291468011656971443435399223707344828236398719144894690630587051354955414949983907050043569161910123762887010652628498989893570625015120544433162019130784639168675575551607818433096587427021086174070912690556052077056593143788946029169597251935034920515316149794090935905738595479743965111472352982069358562053980841685967352902232777857102664957375920153603138526344384937580516306779405874712517657899776239560819657145292941203796770102652059565723315600065309757011631890474425469756700763969388590418395263631890361704768537941257216644138068264604414222687315106477795634867448243381175752684585812339734151001374163094231593242888802425568274833712593283361316774431643317993009141119002708297747757091645846102820918117294575814657039371053478683875625091100631279779782494273472209914970419031575664663215537955101623352719705410105968307757483005442639237377652885210041668966980189574265551558306270692374992755385328156442785102422873172803956372940844920228506179415458505252230072228604867740977577983182415822005692813603102105905252780248882523338245691796724959758657762150056520921418713763272746522398323221255041042174338682697232086574690696805418108071648833952990950801930702979634314102962787042446735011813511857517495804725590461443813929565449302793039071071774285691229275674436002583733073670056221611716705165077374573216968396452809390538762865218984489901771445467815783030835763733860091392231243000116335706760679582491995000833611715421306800421663239636462273862267280868019097213205435779767461482192398696493651048776599134828498898204394407015391842827138805349938922084429541078184221982172957415657519583655337032763267172956596993346704721812959246564706616783245132340175092593330423533719445196393771751248126586178418397743020958061098674390128214747614650365578662889560923910150700805945466920354804191936750591718847642301043670771213847361989573902981171090117932928201265118883627880041706612969709154513256352996054584110317875688998673919959782728179870638193319112028741138219402572438927656179954213776941037424150689957753716366868871491884499218935993082834361748651574101876044223313723603113573324683375961061968836167205920372195423971537530415522871423797056604367297940410174965214801829737380576703226540202612283381635010451752560774506753936371524771265786279535584370210716564124132915026256026862447067951458161517030788017441641699296340703703281912911385268043816229807643261329043584813652033983554521408787389051106414579710840169362153424061609283426377162510348521788459734134488523065662942642929592291313071679284245807845286473725668589434520544000454169774371783535479421634048948352781468192818800101208269379356346927695425300967661431486848170173063387992468652013162340248408619326413338890253301823243704002398321747657207579944614590661011147647700622523468340689898332519417511475202059749495472328717892676082545582283118279857621441786576958771789761532367112313331766320040307867190762952822416218161328877360190262288154572626809446968618728245813843486848707268306608824446186539151449577479957459273192057777468833596926747714224597029401829913592272310044844457818259839733284991192645392611854577077832230723940516858579769105525563576960643427576986554043563233557209006856780201748834078144893393314070530869988652678857249242556123932036947385041478901213705167217497714547610271360294592092558751544969741053751276172157103094024458243812231771010302593221936234074694070430768050610873752126830566128610958201164686038325279495705368258585912306865082486838229387833533745920657913191724590224783891915431170332239607234663533928037582157072961597848802496903867649729796251065481826606663381748305603266675648659195751072841574364431705288939044896386244303823405816827278263657309804134325998629165954753738564891944836659726725112822698708872037744996989827625492211471418229296924702579570893201465744154253926470404783824390469785122440786646519298135730895738206071754611414355067762763642069689827347635671547589830687863193328791739829045276027271626824297408347763664525283527892702127171009403552344691545994376176518079364408370323176372422832122498702366788848297229328837699625712716833002055693049177751049117783629606721522224683648082973791542474658650344765361492784286401992615013948459075123773327515745958743649777362048039997699144866458728486696789297097380793088746562757679980152728773325404399845376382372750538318179479286950207499152276210109988395681869968109612657372425071148429664460594157476784087046484286960986534211218979444961306312075961073466288279785877881491501995787343147912430534070598901991306557074961372657838344289641934777302388544548139256738853630278110058745790468073478474666273858114103043066209198513952455796283462649063308807805021100097778314068110940956149625972924234717350294677969674499632152101251369051528535906190227464556663778792235306140314881720002786793374467386919534373889433256664093272065437318226736686677594382206413017153329155279035502145532591884263494912090167996813169561174824101508197997131221602949029997077952352749319278093364026743488648541282144713217055562622233445176384120991985299845231143437014215002191551265902396905182042485011390790842990217338397567043289193130519939225584823607894096370239882532347583718354118963322620020362491902683661337232410609627541882229465580925242457953465566405889112917287282049487969205603790807766764389561333502155104128939615907122353735411074417658894870084586193099638488901312896593396807884131689366923251979515575560335411780611335861813954775912953109353901003935395943026658196048761692688216547471213142539708272999363341063956854171359459613667532560644797940492480177316521994206785445951852016590598699761205439989339347279904960829934671212488655205813105831286493222421833089147990190915965132666610192036297936152406874382856157330091881552804523204222277361112857488353502355100415846123748056116885758412423758011003602726297077557909573875986775915910049740841448410580972424889834567036879895258281451648405222460486699484090516601897583621987599509734170882888901069389010069448827200961524224518158365129918195205994842404803346852948799094745436416082086576965015260325407385119356106553795840470959082911581124924449210224954554991725278459164244773959728470762433706922146259627100269201268104008556925867621418133494158265098362593757416643719884198504900811273628171546142288345205685732407472283730602504945487821315540627874402457741010253125532804109971748505570170640627774237420422545776279409279426522549678915066249635822821515704343175005380187134811802829800912652542550334329487101665760380988115357955150734696609081575211461264267098226746170690986578870286301735012422394956029523045815165892183476327675282382066907118831139864450393302335153252377043450014960251616941429676805878679712049399148567592932695010990861779286021812622722007862663395330204386085197104921676162862636767558013836003440480875640652858531832437696619234888867875844775333450809401558956185124251585385713440110901684347913644044339747989190670692922488940891809245407229285390096461754677333953249879768696361116322970519362750432274725943558043107244512949590102535938954867750582235422092421862011183011027602456028712777817208161434754648511350602404623536657668170310622083150346543971932542976495388205249441598349355314293551435109804446966667251175433412786831598218502349605198860950747136000107134378280601085364723282807017819590385260541653965596276499101477126198200110413375418421147723363026547528370187716444368118437015971965618146049295761008831623419965640001470188897651960050745067006120679309609093947368501428787487276077090343938003807009417066148659810816980632643930047007017759166473423321138891017499785429602984606934140901949527546408020603953752807416427755821652697403442212327165388993184098682137389787863624984376594338015149785219029624697130084778877007642107878326980332332564955985396638322924971921747681402843702352323030541362824300571979541286367953952204945069015899936929210628301497756121613478992987586171031046790957950129953658996144215045030484156383843464441083085890046144265964154839784385507089741672837627247779829867158456857069872127785036496669414222177922803332103780542378090356572145794918709510079078866165390710256163683446565131150651922184093161947669311894214964895522914856784541891658066484534503920586099396791573275155190748482541069489466805786052826803373163559780093525656857059182741322418061765607127752455493765899073933528764060435020359172046231298580810291269728640154054395548243124788896637495064537690295851112148756533973604882652792003394349731738269828343542162256733469705074917978414690284771270982575820000099368447257075422331872696826956308365509666996397624097875510364475167537740608985567422130250508534623320430608154124896010975718609674448249064080784357147852586471614525631601339474045262677902241734344253335164276278218232781926202127754403534051133356005249437151269627213984621849698143651748473338104779243453927549734783750114848125746272562972765945262883538343949180183357975675594529076274066740157374321736864962454371654302543005549332540558460141883151168831333966780711860403247361994847947495823972066465900671218758729412532343258083137792503304102985808990401795791295425790216253907228367538601211538841793100491692235496363559833073839040328518165101360544283320353605182827946936721475779651051268403734414098620938425446060918824579940823472453783721099415472072218736244126784998959547338080790394393424420920535518867242213281777523257225029120218958142863454163896289622217847610343767499217160412779180433790591443686214483521393403996380800115472201685648733154477304961878699342107224163109210213613843170203636237980638593011058291188318015762380689230546532542890136852310724244605668512937924697140201768938462619211311404916902135922690801046164962959694517005906826770806479637815044558409349591158739578269678491105554311607176050348815531709336837197164846374984940232313291560564558684546043954509168595083037059450030801140650570035943138380825237758955716006272791448259129279613578919053695758702043386498972154334772879914845231269372041478108020713279119626504451942078418789653733141214423733713598486007925837371403298651792715801444803477065247217305252763101376640359749504245268715848221815550423765206687902676603592625626962307768491239083069799968274304136532556375400355461961396861294484243529464964898729252096052314377561034021323437312240007304483296094672737894880767261543093707510474614914550368220835504706076140535183225301967171368955286048860591479627648301684292796520790246254541744936507833179399701814154248312097047837225780726335918790477439661308877116118596423197424230983621975598379180580609757962655587130838288358118382817503836591116257736159665301436744606536494038213233633767141677143186201391979231574464228118951809263059823147139978558250324664304316261088479719020938955676841299718872166125804735607186202535347144650277194804017534881844315891603681424111991556494583152213659612277454830613164198181619307129599404136606156872524011017118280826894106001508813121720086549267385167244216616346386799391519828069448809893786120477305241320835365717170078004148847899049396584955004549737342652800976219281979266537776405561223223127566153637980150783765725465928713682109557886736159908967557753579694142635258381975259180471799731715099253671868758586998838656068759387220322567281960124282852485728625154386134402615390064655813512110415817950866100697271178482323354577438486508768866481479649306050869196710358159934986221183763964001984397787468328093620337346821973086832035232158370181470814634253007512377553044590123945003390524800781474748170206548077362830037533602041973269258469624479606645159927158679776821040892239103950596855819348371465911944546272625288301796913917293313043676306591089375267286864639015140761967315495837627215271326219533627637329913840987876229899987052780166460237253317276518960723386349245689515080107475095244633054429501352614000648094594006575480980099865265926544559637963433472469125126268057847062335819972394024966587100701093494765815885839927273451476909305446139929597903827226742393475202460969159956817085158491297305071048329729004164265843849276923632487354213379679297855235604384885499053127589800282238194204319531647360841988778053974674581600454004728816754220550893326257949871603153996710670097240960213016615107672858752765349863368932687008005029675176657085469471574313949337838024013827584471748295845261381660823969156216136750667519654482986816323351345847482233808768678388239742000576837487150031213608052772757288464517520600585393192805931826372907587660231204443389385295056152649356862864175241538126865732236463497697447886389760046169682249389290010306486448593195710219484422032254281757608912704935409152920655157833940219852280116900497174324894819106075881476123526990231420215256298483701316482466537257818748138046182728439050274462736438496155732967918434061319105635635255466384457266597999363478970327407151496242625963643817511095052732742582360511966170729376530384695479304071371231843383467127266268324926181976331300070776646407429026639635409546823762628630248570529641621202311869824837503458244204253973085188402481085418749180313340442663195459709175695796159479092555257625499439619113285034708552644026609022385578386032617172672859547500622658774657563575056615386939154424834651326763662309158371533897587647770784032254377187256684085807677144022716811508520369685903951247182841648212315461690585338248052635682388019403826274345218237116975380484151439295209504456482928150981548806894860428416116064102468623291834518023708191895443664684657108184484927181631319341981549398063950410928534273185584582915469297213280328441086596981310355073704952094250033810367489029627779789728571716100591792866478326130086640941500278103530982002893045665180983924492927106973066918425385474839497828362659185009932070942245157617118007965689809304506157312995471254680145509734282892495949222117480683219105429510486126383719309748739131113834566534008983742499732027972265361456054102834203144610653391060239422496324840916673919353498934849964772084859629466381055839978142558502466029998379397895435930076858676193364871100147320210900941148177455995661356692785308435847723235150669089067196304960643828958482238051214736460014664681459475293390218124524021193127160023189658625959235752445454057198843742006109075559783593474376494336340689417827310894360500433943354789215253402301200214275864108522481735192576379884288836742007607421336828182707401104925057302360978411358624113873802170894596363880158517419405062142218407870940687249391621388139624811836466633030664102076559615963746150533197149342176644650680022779423248123947411125085393864593478807910957771716600958410580544426343720229606705611193572674624255971616310110402912358685174866733520901865439494101692976155662896283182744419847743119537375959755465020516682714426667456764259910835287724853286585302837925132762517871385497591872788938193942721669994279802277896860527975866643659970068183764013413008626654188931896064556989151438434030818164292882540750354054181228176804534650918967226316195459638343358256148288782135517765311874284936447750306035442087410680785438460713394932970246116459099919697725523279221624559188864663513803441802551650596193235014382767700951716549393204747716921303219470557755513585080748986650855302923574607831818748917219679553629660921013578424881042435528710443651626666005593806626986350006795990875668923960618306750873323415524435298681443259339950116187061714992824100184760217883185167966938366254053800449370842938049380969869428723809303784191940160062407879316380130988952727028442920950133966761987097051294020582355087317761301767024838454777206615994938411173478245779977787232017047111953591708467967807179669081343579822121576548096567589680587379999658937878853284265461102716891880961413883099873001159787125009511504775800396167336653261524531299152139347845890070330010298491325961668616337007492885366719795498193141565249529919839782738012491414322902892187074651206461287802339067435836271880433102205620437508250192269622856561281314488447885791482261538702358471577736559657710469728259213380835634667993305669886661176832540890810283410290027030966274918387850399901948425287981288381613391392984562256018944647341915147288610025224093483231775547419340596260244725171956967210985254811497622179199457772113019087609375122632813109147541978034156260396969722637561451348948310582564061107475096832944955578389676148190071227432283159735079959607223301030017989818184006858854585640198057345973451348231866350041941335370583132209272158885556363588378539678804793094461825769406456989905122115185694852007261780833767459737337283932548443737246712913308970099452497225301977600546126349779417762350265250497666943825553757092258008030700517271932329230646377469930654410648002839243000990540164711782801872698008617656737407795460567486080960256032026881395627644154698009192702801049052620212952555642629488561770484565201049913648796218417043531299852287969751407187109345491114926573581626920118576751056228008557227694999824909382150508153532486518562484061934255747654574789249063558861431668318250950047293740201487592889128525123378162584330151429278119923540474215421955045364593381769471472654744255222401742628382302573728179416935099247215705062978038639929103979761651478640164138244121828784385383184822525252846658872812349487234905286706606940326273257435964745995619655475748913984566713849742234185048760773721778431935703279544950859206730081220555745074859737542365198970898716564628364086203287472130240552892836063918720670211790071026633565057835425605969926352519286725179252292347846133979753055154463100880772989353908665580612991628473749655010816367835942424591322500915679351179815238541914222261165589440355130870826256437614955875684146076954931619209563937797921981224184750298901849877303257625361769065466695080587630543784075622053871730837083552650631627172945112912588586915430080881213901728410910913500055058755193743938788634993655895503838884080930501138126156650709300555328987183404355121442642674023133548271756461696823904698764041223719241986628603594556219834133645103871386690379316688190853522215352106741134258171828442933834839587349514591870547952896100658154296643275156193366687873765232376630373515406459786053180088872278357169511118302878577803124706745879167890002107108580379744434969969462523423912915600240512487616336366524335901768527278608902794691751615918334915529424614865743862883493727496224465303013651304330787002147650912192686473847064181180835373260168792159953698110337214911168233875869717271138778202731269484812486858493883737987155612271255265187615668402606651005867694367027391078956516060877207883965727391937811357644344916287339625258738459173991395282993236070043179170578694599022104998317763124175978473979622859316064363411260741257731843362431969677283249169580847609327126057785320992307632278004999507773772379310331993010821885981819952364969781777325221550883783120125143736047413039074594557629933289757102173295765502352275587364799729711889331335492470261784894222821949565512241615706227731087121593451508662721143625910082837276014378446766779575241531515222068811678787634866936772025987521918245879383523432788644989363678127236723328007729765697079875541476634613936356442689878129164047187233330508064130417502109121110565276407749211390467242540203567064389663413689429622954860216466118853244258823192498042818947799381721033260409609706055177291651919392851097237105131775580844936081120963420755050900483074507200388423467818550538260214772112870100881284857488548123957443987657183173304687478387092190662207221509211596519700577761653465130949466888155683263962918605316763262288586931985507546169320321514882705095267504337110557847843995578859729194676012166304384349697250154243337870313222193456174358378711675816959542386524908800489420664957839194209857454165776531770901400720603659388935984137887020397991422112848238195061463589053222752145750828958957470130875942902434376944181989111810647880131348038969453496872638633751723144416412817927988934006247633921526145375042342019509549640289412969599372470436629921705647635611559093572685619388685394597540202646384237719344856640630340189314117770702355034736389415209297356037121945433165648180795641112753916367451185923423971983960352406175609554476161459892428137884546834726393653796681769073402649732776323215402642753943162340125369476317062225776668824528535817893580292665966204159451882515786413187275447250690413349484147799752549272795018578540014048254136967880158463166684368111127788668723176958523754458167764123521525299169079679602311878983194978815529011386531724942561065036098506595571362769943825302555373374800802788089616086795892476742180897204645964941972246919195944609068261474318917937452366565202877271101775612411244030553104881447413327280114145937833767654833978646409113179276904040383368902800670941117219400380386771508642228868045478792428317580397502605633019735185996180752723917197363689995380634101735485255181406179753955175728204054099389562138952335359577706057708587751402261291536909924470313787460254897154554381109701276266198459246150949892011546075425744154124947883061728594283352411579453459051013616885474701271387773119743623638814932576134304755191491611829280469612035580493553536551583280040078234714193354180773372162467917738820653125667386880321267427164122685074761376842685188342672550539074594437865947104708069725847097822522398298194151729501807270785062327399530267953941635182432379485234125565898780215308613752298421242336957369585549378211215125532922176970095053788919203624438556713379272882073079130362982510529226690742826371508646569089530859367449833089402717304544638587910098349207545405042380799222307608145426186303999925647140198607305351165819080784177585822909244145330642290473746509459799705875234445931824506892079460747293329825157858037761842523496061377837149326741137269292902054330480492270486459942428823574955062351207299983764429840159688794058199492998775345123256126116314014790782130258558625930821910428407619601551850995340209503874016898931879784742036593732405022699989077139457065212008246220878025484023746188618660982382551206155182775788911977888143865186328483840438601090029262386267126716744460232264556443708136837492640838897649330761354479472019700532665681482835749653317756370935901226473802284324212077760670075909028584009220989591114756821705626973972685524549477744328962199417284618050106407484820928677238661293811414287256912988932055225091345161464913690824456466057970134005016500385159757377476388185670464772155201637653209219537382212475157939132342761810372503753348489000966741223577170896449467882466910334126471531925967731055264739724486560854641633185378330752469240831900782262212744445958727607930062187633041927910779327339444237609100216450393040674773189118617126192618529222722521340303188946041523139705116105032780155657029994241946817784435550616594548009687649823155792012546286529649501169804356455321332859011796147817080493001633700848959115921206739368047665285735868591870755792696727805991779832575752620051234401049906488036121454183341751889235564626002605629202451603979595818897615744602614505566953030559296235416258100947938019109036991612150487685324626886711298319213606347406213706325169419196011598413533041193349582256165817585109722799269759355962058872902175825455607961691145107979994240353569489756315224122688971336815727654209958466145555277316365586292008945288028641655198407698347616971778111769379438933472519288572004699713614668242612800916630048106302795858136551677997593491439997770247559509083279979269909721581096516902594254796006712592411089149723549532998697792698110215884122540684900219922564772500803465263744839236027446691621999394213108191039028201415201999694173780913859571292833087985653934120401688735729834114877728795276974889130887770550267940550157788479716666545328574520920376040761866774402379451685783763971411035856631285878569811256359906373026191395945634934205843693843968426461958309702565111761709874852816111675941813625116071739991445712614923338436255645924414555242299293597553474791068851578784344445160402865381058347785710538934200405533150414559257008787460220123506864706339108677694045552048446886390997706787357021156597914323884465624569571095916007902491893504451199421933505322846758247197305925506337380949030189781486327903069887634753847583005706755320724978508934823377572492478482739985462691458467368892927303374508930248577119886004890941148243004705439520076038914080510996054227137680960780302457070576932996171013871926130279527346333470627025813119671479853887913891685975211976869114908546389520926032879505021845715195506739104645833454801050293274882156260677634748227053990284275652128100808997079444338281244553430681621055306121721960836819821195617838359047708897066653866319072449373426403555706853550283220212705697643414809663284362113528479758470977583528403334828155124628176563265550911750439154896522526987881088207033889788079867798107821788819712095114085050931393093198225576418468278525840108263192411144225083136605153659893597877178759756779793775552757637878700012203270851182088995358204605977304380693911144285765522260063915185168384985616701911523759116209255946617733746128767861984931914923325166850720579149592892412925631272195384075555717794100045064551624684009316377581874107670278699771829771201035327165175699345325537780144621419422510947221866461850410032528972364106322290385628660193837896630018179080170070342841250678781243072247730354065603439639754486282290485480362368103192957890216112286022370085678937891091444839036786261374037100665589383145346090998288531306027625063270156160810742547145955088058704290296505049631225337194384648079078343263633089536435916330715886517080498212187187781904074855031152309792147149259000244747415307232856248665078866711936512629062718837914057994925718860714456309617231524288160211801057665436669090064161249720081182690799833960908653298746148901156380849523675960283057961388408562366383480643469629809083718548958797569986462367332178215510464170569117345282130781521593066931835979219716527336084733733526683222711641637433612503457794219399294600148100466738794844462976020788250404977144428746046469177051902908073837234684765362827356113296786522726033718193784194747994649166355134108021492373861990024622980970012558308682622371264596607164135327885789367669902962941748279333063110168316587930458159520547807206067821274108824778347542568650960432650105152777801859347594393967984186451495705041398235620103535036704677231159103618726294154906949835505294038063014549918212689118751712920139435376109811562794612409291046230515444965875337114002644729803034213100656978808821063806679105722627836665372089183410420395209711909783041192228385834660748341048976555315165224157638684071770845439599697340938831076837672533463978043333129568878479044818133543785263321149383242712856292773097239174033029266964069079264138025578429135356160888552757676204332666433329369523764143217588222274089320500338754249680910764192881687449574604109015507686020226095702563780622533821584176537518746995210546537809241902055675645295154283917573522056100681488825347659932300702409779263797939378436917871705511401304118435516799591975666014027563624761944023352700543485711418975573426823126719020968335727854409482704842012704460310282155298154237581224416255110074026382768006629667598210450385301388810820980909135537458408476140439713386831165413198368047554422130000885899485669198317180577897329041651957620924500239603250716469912713183029407937017079121848939457797466923752463985038917466327809599144778230308550729479470290379305200890979850259739557208551447226237678621220131805285191948548154396712590372242475174748540751323824299302134023616869007125095295634169918884666562539629068870592268737157709646360280468718283156920061353821751718167926023222068003458667297695700237657239044470052524840555171883756896582106357934756075805924666775989213888780033906883946590855084207396964448413364813423461339229743401976564139210844233150644987429825887476682190514910958915139047602052822079891599304752779704414215997420655372903142826892859147697676620951478398634880448388223518324770918268653975719916600308228125458707698594014621137874492960848599714267830779332176225344648077483672665885862246378767090339678091700638087639072474225162968829657151572619157759241473904281920180142174972870467029176366679575804265249285789174207994521240280667898520740904850194477748996049200865523941073780221377169776896898920012993067517737262044259966584962375287692204952580988223324934542271416319261360071453506104427441384411829664573836910356321750708601696697906209812177867299676558956203566838674448170237209468814626881710153372256826596116244656375478445427132778648101734937322593921295799784265425428940940032719032214256025371390261783630023945828754252561442281520095329029560002762024439262486129996811119313079703602127585807699659576147689822893096579787475626942294974675715736932780881303259539642629198256088659665177029007392474902882027391932964046756710089197950012867447982954657279444184015757270794258720506522114486658538389595174734301872291676809960795459001318918888053931130184719170389481713760485389520697018265486387187500829817157350234162183829618405709025289999989490984444078842875094525089301069140063239460973646290788731678928119832929106983622859100456096927819083447410095134263216753505859017562382681975789871738028045892821365065984883390046305715625211453099914221900401784852320857596502818549675136360637566070287472793568682122190423685761851432772020591781130486649555934089931857732662698131848466003895105735192485447823164841884389170836495203558293799744872526103019228695658804421766555206353412488249177123900295952838238563214204159147447657094136292783990161957711406066640465676433181445303391607400473697934988904866908941091928844335522682560315319765469949011804648482292387673206828337741943626579271197190854545750981869838658664456625438779725878546186053859196806735882911447842968511655511907365302849366486215138079433728708037527910410586638858115171758219737733111387281966678043833454021621928108311592954180581292234526449526646075552439708342794853775845099204002909607064961700555979449080796331812292161668208280810964056640573241776080407361195646622365520317672971590277882457726707366943177886807887064243624689116336601540765167345642079499385643693494294306046034417590351606802481756865906696912980674119077931678129859363123806788643325717876329167716801041189166581082107132395910585769636132906317292949978063705884371792077715271082462331352679349629975446161524680411650579798120335172425569687984833384098740992899250365266561294361234319543499816211264078105120108564503583766890424668622327731993934794624180435653446636152485207265885221285723579796974267772796712180426014867795530015646902302546825358480245031484239054240027429009023732007439620834598639544646862651814044288287477707129156576245322103247776522003597121678641741433667182235518215142042755405152811092594701156917516263183581267119691115169269294444710499159481637189475044139707890557806653606049239826048640680059251134471927555226523040539026057826631539843705459321062738547674955211004737676056475591234552630001275402855519211177802176092168202628781914264108861481152280502500733192051635231640957029190127489632554878230501328752999640635899771768840802175264434313054017310284197840563466861854420010077590135702719443218387363794557292370316442066044797604393612983816733829013042422904825149361799484070379921177440216398305290121153193492142905521417051442557534394209855846662088446836809012762395737880763176252835419697214760538387545218615204344466918479267002424297473657023090153214075032410170263172642494172683346377020785589708757298415376056510679370330220636919904741665296844065167327454401131714572537925661827559231002116578265699225158677966276223295969977304430818686057700759295053940733814817916578565030758721569042273409149075011537607715634763934183391806225216203192788807874613867929603114832864164839430188922389840090566094283223399109808663155939826714833273331777767503570931093045666258810380088284724706123745460506783658069070376426983713676784395547402941524922440107640283476125425377014659035274459268859070491430488780939041172755681820477535674282154174572884778704814981770168471300280627974848971484984031323844877478519896424733726994578785085948789621191176070987520968108293565154584703507980800488768155328147685598241556226229668916252985231010271200570974902856967567700774337926801733215291070466578566182253352955690686437399576229564850589268001998760771103051419204277669010004972901944756056038917811872907533240461098536054270770826904823487276718544009742599355266757812387015953743931592522249857848840351044726203091902464240390649328439918937898868817606878159919727731671471059331834408924528575804785982451206521063907258562239081707684033708489618294415821845899291834716242413305149342864426405643750367490427485147034349889273505743282694563170894658182182399652340104647439397247616303188507346569329819399039174163356730321188105054447048525534978891240807226307100042326513587653103649932164480706159178611598694536970684342843870981508889875644159275606342560153581643992911165729292270045071840829908353878401742540837608816387472721151004153567643732684624448150240950876876582581431840095156195345892189276405727906986609160870043451501206308164605978650954885687769938341237594517843285223201895736436818102756886959126615643469289668592865833374911910872269606033662464852926342839365331145907101436864382836076854619170213710862210212809347840529864251425695260943379755214292750298606351880736268032058536474392550403814632786724546139183941017264838837049784678638063706864787548427369169841159757805161491620449234272155622366165517343235085894239501326101751829617590406162992285237393352171424986085700067182196345289801959550528691993933537365916298420661037541572286047351855491321247278134400903174680126983620620242406651271499594581125022007039622966926596035259275541181295704456990259856834037946910514973975675714737185021276884498974181082261265399255598972148111736738790370292096083492367190470475788733212285113793617386975767334853324748108975750354345031506150054669120851397063569859736002129409129213029840833188936499097640510150482210267244252181466055916496285405693019932577277003194464968139099986243014060348058688836925615478538642879212828266866774993996818242097085730060369893609984499700058782897829740449845594489866281405980091189641141233164121740425210843541483527991546442851564946256135704259215435550798176831399749708429149094515363358853698803570062871061383960119204559325987856955323736874253315674708714549154324955182507151715060558760101316649979977102766954556430881156684205558418579450532924660231061161740103311529470574436914410646000481615561315032061052564086921915308815261599346768244577932655573911473753834163146147775768187422491214542921991707063991452585971205735859071294259648625075823455167968110435228228254725544244404062812565255907223410977245325037287210546504333877648559126304510211028631199606864531564298766423692437269791581804974223744518637212138281388389316277083780552258977841888294805635352571650364542079744643339864605223653444571513113243914634061471144430787558144045433074697313891974720135778405286798326886809105500654839673012243568476885520587587267686381689780582275961365853637605855045948024580839071020992792423296435646346874384582670554457401187743950810372193444105078435290895793735695776548510602008882616360577494674829625928130339218931752156856465867137014539503031091364861008819990660426232436872892488148797926424656951548906077670760594814944406844727628015795828240399628563228535252988829591913825093639773217496553977031965121204185710144658400453530297028828584340608268229531220340140755315245324698526364211491584575106682674304353943168129978337054449923357746958355227326374177909757862706142475557664941158630311840824596858561308838407556959438685485071413106504781376539458670692619778163854271369761147909661577729763450807465726797546303994940620895344612589770601498357266299165744102430539374561912122067930956575691753090191996146257955960864648512186027380253137777431496393519056584061332997803943955621802358942880685250289053904709375797274145196767816354150199650252459404709710500928209030777089891546881690496613220125948682315878263077373609114084075952895878617101000240805500687174633216753384304172218106917952664348504261790484682377363336449092708031526061602224750554722285826343271944962998911890911327409263293398687371002935335882920928039217378757738966996594848377400312000642740645830522187381423751248266803673628194803868503616151186633234498569808344543828216798772441128148438539554022760380178914823985496707152432820567730822267760201350974544584638202935435567497855441570591957442528052146502385739641778523935039558369573101119990719320499338410259585510098311939255919705877151511551610411292577053945972081391151438902152484520830502118128710458726078686598790631535070387427958035398706780534639139673468193847581491418766356406303550294107513073279017394003035593999293434408460762503835890442860035588716317390183638709716855423091178640680994968133859947754472859418047695517324066108350897387756940907851746328171228886895278942260670238628101470414052315615217215258581120115354002491314514347225872474714795198362175625891667113739927921288467994285375427022811023459098585740137518541701063898167112269893371520824249967392280970490730814062419169869152810582661634098395086921069376325300641743949289992055837729453436556631903722897879119966960993581766870714984666669483788177412661195249552892273663233857549485583318489784142386055479453678604620478304463217254661400057189244012993452961106322612373419220485861343954686635422022772256170418189167383438257287288357897620791865769482229699005697966745205834388915937839776742041275411963902819060042283129746297792419833590979507036747108623791088291632214902423535509295507565176845858286788074827860531983718511483532711379853504463700331837407741506425423855002646772990673262879772803037103245711008190483407882327560192869124080450953346820004552086626844307475631860637733095186109653674471089578091868764749805041066681003743243444367450025553197143128418640136926393719541460321565452587851011440548863161255837097507139441517219276161517781075243616682494732389660060861206687306114097510221794734735862122838134786097728344723051639535646438836326223824149539604532383195447149313265544758971395863682802182494443738428008360596311562806980706931693117684996647202785967916254918458629639996118586866941925769596046048277056657259440217436669875108706746531569696726631871336250164208304473978435208074827686477262444366419343652187310902007969175580765042722827010890413491568424943412051867394628952234224031744073181520343006215784933354801023885732527920763114468899936108757355515894320347190618660075021596361147550162847943390024790674060136062395121929272706691234587270771011770507391151437823195330587458163162277774557897671736712623218381885651734694389238087309995643035829526097739833649657675300864551697765972548744824593048989627217900650990372553656860944574156412094764566377135538876462009313165309949076738153014179431147911091274218273984506153696214955252058603390370229880753366666475078106276133060064112446055147823344635232128549481088970062412842717225133392008883041187308814964044934255226013047680122781809735462416874734769525136868805173459584084057544582077793606493019671113949192802988175305161676853893017077884565052771471441705465738898523928258383399944745162678448513058127103937443781460979398335296337245296589880471930400748048350561882670459076335587680457701402023534876143125360439882998061283072846522227905808678306917467383361346554825026566396820508363548550775565942615847969551968197152807371450499726807087108197684006447622670886296189165485736668540180051482837960140473700252134682581717322421108273423049592664879799684981470727207079788101773400823753477119059172303004457084536732261569678858677930944675861901771941024403298545938101603657251303990118974361507128439983999147874375629336321463451027719037381193467828601540737751095299786093959590607239291950747957616436316411157534359357626785185855455414177288197249376038298592267192892194873352761913043655752996714499158526124264269166462692108541675057270590376581342351999652199999402148759692073237001940854947191294865576129269067876312056909981048871124766316499344705026824795000187283704007174918256060111524820680263533551839393564818759799496572793577107028411879484559043392544512028458785100272455049849186582691321579823462878041873283516414451428663002207708554356534884999618669504161864090084518697633818693233807129352440492235994632147832500275717807121148772710397495067164554139278565055177005106773297672150380902656744465044388353044970049780973064083123825576376307941451234747725207037579955714887422894707464447237734769483739847127912508750567428240442682857814752073522966907896831310345574246573744986591584662753167311230131623606415202230282770669063325761214485331091622628610129724568285923054271817737241242456166495464488728864618055409951867563447708526601789612987399637572510308834224557851659170103870704409866187781360411680852829941692715729463163938014255590922804494216747724053377472442397543865439563282666970991691294156415422947298998702349393538684568729282711197309145338461707585208779444613291387487590860991542198810055918267836085983780374315803458802389572973886619845382228001691820637623137849041954877940992361459225354789292918346684025141030216804041456539538005381919133375484169946956716301334463760037606758051687446791818925844807870475369670590094478203214187071121945692276702134644516258662087185822770951754403065541131417268446754326760474394862357297841142677718571142971572332826002618318394038849123293137752100195041919126972667957557779482794537577096901089609878240353839928115192760832226396723679177047950803624544945801414385438366654802217817487890977598236496576689113416008422147329346262164320444700493183647035564842532600350260123778467024892613535789568154365090446117029517036039981080957472390879996471397286309835655539860661576001756404191828324091306238367891711712146042290478328802684299841719533630474854504102804906412827833877835410423484703717186739516828896965934551218392894828772161874152936711221550993220269687107556111562327738925121306300212123192984536141534289507967705037601696926023009570546345932712920721284736663670184745221304952926471498749850723117358949598244879524687027840892946653250172841625329432705642712320425120704671965156973312043067281823214295731371375722025754924940016881447773309320320196001665014935125676364764870341855748019381651166635621869584916014275028273053148717937307543919502906126616011100767715360174810707788973396601410843846154541525078563314907840453463639217208370704636692258712183361561924106469608886744729857542046120549199440089959050244062605195971859551809223582363427190901973565675211914925394649444695719563869533016843130658407381962726008479120022063675419773351387152099643293336356518513952979969365578565553481672615216565236912069853703670002725254808078516321436788551125039492916101257761542196029467224633858892846142459330237248229137212315858588979963038512173449157932838439258474727794337570667875812398275501265841189509589650183631708207792655724550113136985900549742948994028106315956749364447195949883556779721763532707109139816875254659477232925406807797089144494388701795849534846688572469997227617689429122904124292664354863514165206896868560801414426588881267061872588230180115814374420372182961058832853314267276949717741040571477309661454828575426405453091298014058138306506535884424275189152709326952098420057830227029869056781525238743087440035772475263653164292332925926298041364844467303173694716148531156409405127144288347773754956811866744089580214970865692507124157790983639558703571847746438068923441634027757796126463034135426965550090072950519002903007079121620353864920130189703126035632864805993838610918848308636858655920498543952746776636871811636154005102879841529099242799460698025543697031233078748170171918319524619749972036975434710253564289935202933850527867362147289964581108067197702704824839343579020145569484438844515031567592749417772940221590969665192541646435917201940098242394622279542494268079994768761975255235229654410679224609673300369385886940886947878009475980125755329839770830517858508587053911328486192947019251581937515063112401065480709944387139630974114788969192494168028321352339113542336769013776177275882763848093780032516676111432711202288569603923953253417344454677648533948104725126146152906874214883634129711453497502784893221664428793689971109098811376627675887729586040819125291675393001376488191948867565352565875893096152748380531170329060238168207360362095257191833128813772826378831510556733577813148521831665197458514348720550842499120293385784955915722798038572794623078902020011991767396708653120590027204096662344112095392547523118327165301001896347660904511384360066702533494829140287765238846589680213627804061537891526788682593123482817950002129202904376639865340942787326698116368496183869473526118931220257684110721169353934557860634775693123111306565361578558088125124077679387963064237819898015377558055786493028936514765629290525824251267669843561659022823436126052233214802387173848053527364026300805048416210994571754716171296687074368109798263432382410184664189607881362469627416148943248280084320667385022629901209906088148524403159646887981907718950887244165020690423348836751435126838184082362543513638085185730511834875379058771667795754620342919470389568047428317885380431402604560728045344916062229611810913536728916758726022981304371104677318444194236802686966285821275917280283286291988306794089924776636552002464741886086012360825121258566798037884268073718888417699631076932232539029085209533458065326185533657588082854364991913795499688689265223274244587638144607849337404743435299774570828301589646481332399254854893835334216151224677144775781687237654565695988449020028880208723008589005245157145757576850866219417532645086468807950121061161606640443433558263875670179733797016487309990591762936623611018946596633157509470842077268449186711620992909114641015081295018669897477734069929645444404673223091897503163480147455213064598248029228554323389917080136182276665445757545704332109155753197753859748829337319923089082850388672308811690861258411764895999224267442431047155908870256328093093967076135245918058787982472163722969977779475263578468347385951161224498857002245208535414722189832970785379989427228406427411995257060876843325489334315015711881707188970963804598596435858924851603287710001620469194600923376609049437223454563784430395867158342972445571376325047271892740133056526776087937180115942124382800346465819747500315504503279992812022000980809368008117375528863800626373014425557906579179482621587802293203853530556607225306375267623365810530542685989801718908904944537861466819401566131869140837360871147358835401317832650059378480511436616761685571241959226571378597778585446551187512825617672120585937217938628122484669276725443381458108094049233179575997199426540677615139825445474585005511973389926540680574905862261423472125054309056956335391781881194873023111802812264342623133359301126969791261328578251641216386574505477249110790596737984194112801987989826223792527069527355145622712954866260161408702687135677486900350252462950442407403100362649720153189413445331382306947264658161304621480807963630430671117465249079640600962911024223059372016792219615588943671509767000455684073288591478634158000741959977685403002768851287209904825254458680031805150169856191359923665079890108128085781384599297365648523676534776366103616858819587094732925732215675869847881594566044271119196157349247899932074775629272709281686845447702369062497627874699176564230361478143914507406708504162667200331429410954026577869621684266285658460010585237377056910944153985114124526739860331162165643749379205636883649530562490588536386499705016500723781968410345436052457227787994394158036902890446651384650885910453924716544748727927470220280469775004260987273026622486621696520522560279050636364858041695325277062390265114627099981835049237703708631746634429911965752804392174266740697989168981059002841270526177574956235565266727414118160927046418753797124070876859402480364069720461536754140535941677896169446898959105750565378269694880642426236913007446217722697677823215607109145656043528505991224663794364835264150611715357032661883377511380348401450273187198379426964722924524497177450924356663701083858451141386218062988714774542349053822810582010818645497881532946158574197078612434484218050809459294456703732044949584854065136715432485850784453880000274474485670518415247899163042686752192973799445341507963865791471155701166212733729728566117245651176622705720005047483786136644797729095529968576075029530614217304914381910409941790540926084335115156300003275656799793692824967724347274370964644184055860505494089211576280613165551811936774921480368450304585800069842400175078697516986545321197029863666153490530119878066194185326995962036177530087205709479554762499187746048263837656044014486343958645567030052279659550195698218486021390818598709912853151444295288342289297755291336065222463108540097312911731778093686191180201549790053084754651903180216791291906529263893167846194764814369137505246250092117592259710864751231982517755937633032778700579427082075990988807259928692590128455242737094365897226882915339281905756204415436186390831598222220623904375029635137473594371910961702218500622636672032006670584207125615097985002257249030587648412966089909433603990508471461511891214608357106823018479306555472954690852293361876272260270017274563518280428257579347151518317893286642033673614036058859291729822615677517619826340799177811109294971536202419795547846124872443477960589347427701534931506391438534004154007125953970968413669054726845613496296910888337095723575445932186228254010306457440231394750824796163204933374523518669044879235922016024181233979668251514249850182773748533013978639629577337400650630400845522108305026271128813721763508994409403975569593901056398483358502910623714043287850709540534322900739707684877140440466106501070571002925364955528377494404330902765104679705858995450301570749869160429205823625043279104790335575143179116631042121977671253295489635538292461227722182589924208667386634782020519375304405790479897533591885455946589046049245701709256729449473523214950605312748503502822839520296510125184700063822226101212611828945488155180080521350525848526425341352161698389474005784166599102610525255836154715340260434627228520100683958841674943783451771197840388374652746090308629237779884399626611892823126975786947135170571039694410828211413945696316389805037718736970237415312620435770506511219265911339884504526289867407032297531398898585712937132292222978825865790313455316680962121428744961134918930362671434304056562213304244264835640063434987100136253362967323000438081338110979830399068816587994946893358358485628466750470014968191740205431605399917126556398352735384132397997859005334164041377857478296867010518332488687499943289257583621587256598918821857789209486526815534806942896838918293823161716707536919280204095011051740629934724030711835428621003549299561181205186291461746408641376564618306623234743050416621990003754753543349275860248451450067579136751186433364471094472740910154332498738754363719407081884343633015869432328591479736588132998600088957536143362873350039521225361668115965264959806185646582656576778549230897065390789826744370380916216488517162481717182580018421601114457865100480451805398657708166427791482888943154844473901689123935046835351647632149763813648578945059024172571921997522913035827397056620144031173370260434409173627387583623789593230113374728594704848572502146444062835007991414203740176761744361897694342001041257615266857061221973144832153895367192675181396809084715342916382333453444169812721561533349413370578988817487206173361490941348564331855282540209722504722449189386435161984648374277206245204136418555284377609594168616797869672456306588814854724793263926188884611298656279565301482054015732065894723106561232029104264045602815326524896696842583568974157949233305478785507216359017259443555411555633858206009848164480209424940404022624186869492873004030108039443487065226252902769218468907196091997371982143767596441743477984595405077872084623720683672205342447314183067706535349962583470192314286225521048625034513635265358260053426697843926838235166848852336029564276425639051939971419892844716992266594451389495646685996134428805251466690056406127599465036945384126083214370779156432047571778168149510761034394349700641118653474406677728860063375956266497137963152188125793336885447693386706483246589855611784454613922582692638683808137054463018167669123250206887130767774691344613584190980110470891251403513914367761220089207223916408747646243980160106868867269625524745271460800626852592402916666165194958925811726998479645039200337487143023242590115376208002933380019162618519599249486501354480552033928094947432404499342964030353737999473456839188769888047157219692347422635726101251808863113311070865736396370214891794204964726629695067296516416710008592732078253235068390365342518958851625022451249615533847062333154999601461485933407123864230772093420604629607636745534654918038493815035075887806743133041919715573310732513298014404339737100020595509440632559337521225424814353434460148576908025873588521968190320539378472943119460590997630163769979829325875155767965761407241386134555930211181287530641977914478785312064076951470322969210232431982060460369581927516770550517403549007554969021577841112901060661315407473222536974510415894733325168762753385242172417896748654808566838715784539250515641912528266922905420353456846584889637073767922059813923503368348790226841401894897440936712556029151976978948689260126750528954098456838523966451929063669520120008229181073856087429679761901981640113950853338290293403942453672005416877892882900091088681465055840662357845816221638420226273628775496728883749845847730087305476060907590002204451311472795782214559130493719365907377261230814058083299046067294059886994833395608937533832480599384775437208254013192909839363890412837835741662465224944866456303349667837817075916456773009395807775069628744727113878408291679427511343268444780528361080481561007900629533320017505106171945346974492751191013454229945008235214757407205104454151785429299169008998316381452201965752658067233015851295806242839258857958312758593198733358766999934174866732886410055860795555881088685723009138223340969386146832265010505094364167429894652298064620368048529924716217861544311742159906967380434463485607861079958761638145910204359347305441123627511736420394410297867867582005709308962657417181901953578829572100828482818388566421711224944029172211767380927814874243096412130011368521710231867354680450470665824956376650810675633442004768612817516143209870794033317353560651079393710681126959253919559690026376775299375899658323188109268209185331446724711410674072944730481218135650682650852473578852849191598063990630910846341068184495229595720083599439190971012789025938694840934172803085916454414960469754761967494497988235761364000191365839514480447455575373608653235047019055296236930040185799470690675755708670273624151644288903346498508960589461608635691602368225994413510349632475684643002455626478977525741042438617860527360056993338445652964275183933991717567306956392171319273545930094761462876070219816150688293118441927298229669306023455662744531762344404573695275026866272197209228707788026886202790604262301845364134524080014549063572302819330063030328212122204872027176554837012674229697098136429065423417679063533734717497234416064421318368799438057811131504844054959465508664142848247712801862343783577004916802070168021631597043701282843033701365515052422782307680432041799756367016462993288699470910181073556114938123980708866811213554964361241717233244344336247969011107434331538437116135869254089196916186604752041302014105083781979666908317701803576485083364254553216459319654701952555846474775206700778935032887260123299556321082483574491964009503505745450654748176928868532809058145873148852291859766303192323140526915811643701026317578386581071985865255350452921100413555341997263439199565189741165937676473042904738948647815631252218424040447421067831573497808567804460306751621452123114142429513246902622577730752594018489973050159648281282574623925441805526200082020016693290335878938958248137508829649929064717608038299716265379137631103055818761783561567717554536298150341356695367773600470131416405845278052829677005784732039381705966580398795941557083079358968957370469919905200164435218026940542898288468054817572038228614086460191749317056237928869050729885696964992282191938071469458832196050408567812295898335609454131815655108048599216045786696229282312224434971211523112341762015436246641600252301570517718268700355663486118674850794366449522884752501325500390800178305301185211781121668641046766159519482930480438411279362973118727953287488957186326514255399521172190943882195901095027922374346341051424976188606448981559140360023723713653756078066115276634142147766893516997238609286920951932289817380187599162249810877708100875004715100471898234234831609414459843653022823240032041331347723346268840871175227240117942963715456924330295361682155450299099692745374676580399840418085166144298919357712306572731378179551369278049914881400149599780165917133490309638844485637776618639388071732165718686308793406192928118943300195928832010162605352850647553049336812457313558445894512415456178627047947795787392386389852047729652786748764392014871504101805043550201242967723095438033382232947811744692840974953888055032986456863531565303230316811570645736886389410145769470632263242091393198843820197868852707064138254369213887763114976131294605784425519649377596427610171529479616310110871195759646774648895902318809992231885624799093611707409001742369292585758242965482137994251939671652291362545494143632318921950797376551804804854799987361450562434771814117706284643896664960767882420299632513484113553059221672186523571874532495323808305639813509664484662193925407388949474948882609823826113133623664186359261734148983257300001733306541748722186519156893830569759673184213716429240561611948093134854222163213194671463693441422127116379312468155466700466733701266206601959853443101212487428943089462675417600413972497580645655181971072833069533374034719565082359225634898789469256866338896234331499498771418794001187191970394676056888177521957678260826870193155257406294232624253052217534610437048451107992785579102843414216464558707283452771595586356669458778546933301044465458132992562229952743416207145940182847325789483383076560931665963880662497355578101636416341053391367367628163792904495217044610235996641049667033105620990557030300115258424456859688962172546118226310006987755260347917270501340337469097913369001167054132383152155791501303315999231013561775587006071640645423215172832430579547434225797762194980585806802896826726722363423487637901893522545799619667077300992763430176745826960118873092505027727107810250483538241105898524733946622771691326794722785713592649783291901851910179182307091390659515381460753364703877741822560418945046703298320767595616377866620276484478777507704020142626452351081661187401047996077394133791272873693899906163062061480791054891064749440931564469172809929244290152934667013263705688189154371132257667816702975421602732929982798399917811243156674453858886909267575757324315007101539138651561510559029859197442375344784417289328993768367736325869618137715040325918999993558368657079072272091856643078427375215407326596593116856845014323911935363887402405771954157230728258287253716214425187495339555273987426114498307600169037179759509760657424550804165847913380612382946013824867457689783390984359783743430944735993437223587687809263444865135632923196313915931673321021143260003671999484977871453635041693807767924094035565920115188055114024760070856257060452814652644210894772345361650964595592454736633310368421915040209437885223293443193132356769932312121497881182464199609786362968195028084149728389858724401954979327317598124299558886378246651915408490759725117613918252887570898934548829864141325763873267740935507087605184943246226017475348699736360490163806066309574865327791099533630187085911657565924431808435220873209583813599190064084289297908338003302112495080874014280832133075657778335208251459886623349229849315196492210912673960858578971935706928337777881082758439956331536746811090611702772578527984403727586387550212073067656463933433471297741976504020594629662513383939816058395530038707199657071129418182057881161408537429239973377660073506905864120757299831638112537967936911843583199228942447700678354494717725583528516288922900596333410179365852966865040898064849622824021779375410628044794423488782828921460125946655860838046950423347235029295925041639181646022647638744190233949152737169421268771763651730893738344028421773140248372712624508141052392598428713266869237504173350592615808082872153309263483977611197451159180855686184066378270205375267678823752387246290857248827206303009446352684121040737514538537449779609735583409366802243237669382625741792888526071733292840702173032267184919435924165758450725204467536756141546615080319266268790114138250475885271798371464242605080785270717007414018251621797259984026491310552271413882979963373200882351840074044181358706607383004808385363995536401853226851360120714123984157491407976439684901445709045223597674456563267113210364545826334549570500417933007143289954912493348251702513906692888073555978933214065126827598480015344266424662760530326218041086401204959500971016416928735017110392794176427706286352479544375600865050182841776608187686604374738308110844516142968133675098630968177683280215098995094607285741809285434720827398068349154472425411624436448790829080383217459444585563468602437073444367737996520606423109504776309011194045516102343232847424227571557077012606012750181841680949469584989784337058961364743744154497597334462669031860332290148503916387221574924965223873483079735749702966196122906300710352399901926884529820577455881868104122434757682501194579149633505183832821308511900789625908151081671976049233419519884068001177755088452143813539047860066785085833469167088488880618311415772180707955615405385337307104158452518607397644739484813449341100702263751242779890263379454781336529239250107495084328139659963801646223142875633592040333715014617860341986471438310437673568196349610433802970272596825220695547938778799117296179974627700619130197164680068079887646701140095020890811022170794306109312556713409788309344894599614846942725524796216377830267459181380160653584285279666869484753272576419225250909755679914606454730161014590963989777728448595742233655472848239332824788703492876051958492165883226884362558817561112549277336980123714149471567737713140558654320717574965018093853282964384109917134048925128831449742501829986273356135696058871044379155395205185206095455093330354750287695304653286670140586637744934547307690629780502129571259903084056776683599889126685141584365528337828083249097057255828412540260503553625292305706784789356518805685615669824387283498928340463735344062892790199025513959039365544883679890341413716819445665874944514772455751921424641741135586830137321382320737605541459966431698284526074887070278831613149884801842662214810261274447317845985036505423845978811288342857622633876774237553787378743889891924914614463691695972133829894455314090310637692661865828790713172334363213879707873453494597609025131546592764168380491566925380789347904260239280607775264184069934933256669469486680628621770352990916634291719939491323182505807923400293054166633395101343206766925537874259776362502186679751999200698566574341570270280582875439870052128062102302411050352130741521749109773953061067473223001626944511637342036286793844224122540509484099822096816189961933645219356583162367227097434080618665839907022104911909623023908742851658643659593763599001105104601012436028288682155337564815668391844992326065604282403104174593507064466110037621523998953374835935247631804543827123032139506066101694912604790970368104070600748304048187161273892156071915868090742691707041140984091777406022425223690548046258816745740428823568578352568998739706417167539658369688860394210365920366516460851258752873994016855071173205286931538127435983539857679484391855116054481344604704331379167797395765092147598338691762171814571993111453474389680280477978786123008744232449755452200303427592213377290900771902962020558149003117946049697172966713525124336821884307671130380435501962570893541292273795312985102269151957399793971793836591673336147311734513946376306848260641490141777826073203457013270749833862612061292659294946665319449255602440875210361368871207332492029958206092627758267082558993912018152500715970512613821322649795049277189484428195420973573791708302931604617165782127062101298452564262253351743645080713141587109585150974325914874347065779408957281517851732438668168122243181885829015393615277659137309089567053692295363860446409774166511615290310781262573089452936639806519713461590659885910800156314004817876109396776052770786052877934288325402040375080536898165635976752566240852053504596657315347924709196368323181765071537760240522963669392565201223563670247537094604961260430911760172296918654109189211947297478407415327351807246968435034386060449713639112824791949026519843721912627832124784905211147176028782605372080968899283209620340819690951881694612539915406070621045638068628061533456694190803075743654107104497999013882049465498193585042929924829081852076044893249997522476026289214282173575229779964863359919376300355091858331461634287923075692893592601446582224810421707807821501476137235661331532237367958120494075676621296365885470531277527783615525925691445726873947760743439815499168725883888921300376473096845295610552956378827196947365732033143506662332785471987268276421179889911674922864922301138515343732793384199705442004358433281289727877721404815574034976073320352002525946343096003430732786823546532539915310281980781779521878315462383081241533413644848693157985827818261930848512963219561938175975926320288140506537544646674091291395239844886005013758761040243624503920658425172086938062594005153330993296138669258874188341696060006602733810006394847421129684579471248751102091374176732735624040773549378496642557499193074802973346202189666476226007527568943538448658417168804915012248295258751335653051569563461538804572254751659447183048459736780581406159329330483014289039198154070515181297100959205714988005299422409369894588739955301300177789230240829780745714292248998153867479140620222099714927206090200976181149100366268268510818981557394185171486637633572577017436199956934098382746271428106127929079571931653234727295541391328171418456235487462833493410588104481833699399957349813115814375603048412004573357320436550308541044022635966584677679866803724275210717430292868510577106272151063529324570282102626526773434040507103510980689776180387167378900526281194465013097054506462912448639760628360592616803575164470535718393610831586460780752417089059244333485092324971146848354719257711317221056384042165961982329779145994166900085927083150816677821393104207662024584142534992066572077033905480743919144612250757476488966010730315919428814837592260865897294316439238868373894816945370763588841714893093610230876432623044281405884238121657371631572012848851944551401752562815884112727866353911753888708539119028730451300852077668972802077686427201932556083628141956445098595222019786470567991819099493433447034573612615230511222066127690317225880267756488772810868345028820462309443650279266305519418195986959032377883007431810080128822033156367794524358190290947118178709694548936777943530184277043414267752327730253724733104379685661379708995525760809184376141610125505102243135552331545544598764526256180506973458178274213204116052105896223707340732910239708399786323579960549802794242231107920262410308373297016914096085707994717523803910381295973791709615458549167809465104593194352453846045799899196248594340275059300451904116956691276320050897153599227410144556132458306331588064886652292057871079945302641546175468024204819945472817601851776619923749191618369601298260727938699532103400246126845408819304799969476865362732895948927441888626773617908498803805518628468278878039173257757169169793644778372604965543242535349155270616766595099158775277364520784780455658763785644798317781675882375326390753349706731226797949120548271454846707740311978584653208113395726687071051577184915018747657811930671146539468611743143494826288872219057108706659569537738734005789841162263303585424525127691979463511019168055992247810970019482778178562864376612123647366169390463842694296665754284306899270253002405455774331975710199474126624372034318787013413023777792702510031583229091358189986916011978979037706441858982762104731210207864316198739388711336779048501476125011699759615469222191579299966584080711707197416427419796016003869974192790359220072270187606694315251969014690728819617551871935932569125908609125006528788875315319336349408213220042737011646433689415714974214765965853630404563042220634507786588432453944721284283919610286993874970321579638684127008113379956565017864808436216626767748578135631758134882158924087411110693945345272096536149496682747498099911378238046272839327304642729874732742201912488044066178491227407256937272137010146047229789614043050785607200299952780174336474172205863471356869746258273493140122779177783605853346476310042454184358625106403668243203614045759461551842768558017355370514002859335508961536342076631275498627665313097955811086418305873003358361408470347983134288728467572092897035345289368658762476088237135690135066037531624632365212899263324985956538785496233113811998187438906620497291084420043993592673968391539020619049179354423030569452793294101381801319453063994171084958261229449511147904813950294324533241552122033671394455336055181296320733782685573931215026333683723323498793127543313575022464133961722200990491347860679450971372993758633581903633933117230259040817850940433246720418675851256494716676804965533187699432742173942904916515393590607101811971263901328660470174161259070187635422092579269346496495456973923438789631547713208700138971472435761731613567293234108502475097780495747605185016249679467850314457665335294238268352231413298118757341541978226600369366836640570448977335685205809425811409499158166971211205173299801634615452596544067997739308709567588600327624002675568532795148461788256117682043081498995965215431936742746708409623969794277090818038881654808199350009161179104493693810807224968761830469175515089665143383595463244449984038842599675933793522157198461951552806062390241800308886383870634971924830636755211666305760805477848425722764569497621716595487321434194377843912144303557190420255086042183519971340146444081873300709960759994910159925417019906634119239251102391683253638688108947467142784688731374940197201641295298400690911556108934677202059633371331866133535200069355086409883396331448530650981611522197349309134868205674446481380571821864799996419349043877004134074074624574606249778527009470242807455862101439983686493137622296764531306762305119325975749931227857584373590047241651373578585688285311732408541673378667488785603070749479048694508618243100867984472935310387542350115780620447148101093847788171703509398207868700484126253626399465235919285247704293585152943319129813982994819383086488600778785644425793110765817847122511976941399491713915168362046035110122047285347432154275542352750076972495006091942844643694263926819567792645158201864257162681725238965972407291886595661192966707249902040461273984550853150283847228794920474173178794935552985068266355975410590490584650266786458607928450875488820376928832717303311776051695333350521686248542950151037093280296750820862911018465763299808333627499608528884934426877212251596130571846855726065419139651547708188985455208277835281924272701532877290745793030387660213079184163208229829895070789444917917654969367998817933512269929180303566439502209755009213805305613392373552128594868346126137846719978787456899984028869037234693991297801047634608941807131921195657021885181972625867164840512370435604087646268289232206971023902975865938948720892594030869589522127313124620882344799686297005975661792693848053306147571205428522508403972496732237398654446637551644152727614651271718832864923701637908645892463665765432425565529520608934076225742798045248475738224239283082519110881501678863900403268219754138291609645852293281243375559470099643169088703589770012161726958292095276420927128044714029138314455807631937207308977608242854417955525172141192179879460370933406227839115305620584022908872627296750728114837321590013223365403750735865399252204172950031329691529814477575892323459099062763638961948400108523661174125310984400229428105024866281509891184590958682262822869078557145768357918449039179049887758969976754764558019236174883825633745829897119054773572588175056963973892929479217975856425521201548465812659200395035490711394408939512851638334544607349743980698959004459882328157666820598196578731283331978312279767832629196787293557921330944658465485966292365261720686431608483301846479075029558040827039439620428905697784138785343531392195835464419222151913739356908825076149901387034498298264597581958884827453223915132232359986013444123316430242468923803392481878638826337303829616458397988535087749761978605310413763782954171568922637877108053820867993006701876147084194146863288102990077060390713458748447185479334683308682713842597943503256499664616445408122897718442468501845516170771074649558194630506237826724456585736581537529203223273792777084359247602755872255670359469750917544148250698849412389096157535778263518944482689750535473068407176193602664061834072720921565111829832705295987615213870386786745381812326431112219063434804964498864000592957515991328797324653572852584216823759951116298833375540208340523066202918493831601394932518107009205473800394300751435231448214482483288964261865547375147249812576819388939737914039552400978465349184102271175805903552008235967741720949748618393583939445662179722753723780582388517745561598199716373295808709530418197331245404433064935654882451688533363930320272426384546683045698954451873717171804145307854278339939992115975946120443384179679757233583765473492989422557068422934591177831079189762896151842361059090111593092482954997653677821049844693871808676251932494387395856841756670700974290526215107628371215286883388941976232657761214221175230529103420477878492046832225176529549578576205356175952803753459923926755888542947418865659237812065429144901240297184935555907179373966224057758481477949627679760244165679672806167049297135205869752852653270330290817608656469886150267870092681883896592207549938467382732579488810105665934443904334376552510282751575431602631367784577375684679897933113030776591617483099010704590021167349622208530338138865033419980380150457843904419637580404464622562663353144874406811201539661665073635970480261612317473974071301579122662019519960561121268287043348798785036886506468774053487675669209636154454624756367697236819326237156391671587688324114287404669564805903238275832222194043743897296136569614324540781724616963472892853945493308131816041431909244404822062099722153066550280029268396847615568406267220037014976133410689823552570556828960276871831528685893625249380223692820135961166836636806836621240244861511599197331204243677624656142965026428629878226015201259468694562857271118533342821122977943510484645491796453684889828288439751621542656007197952897397494091573778002193089579848337581574483171700206250993765310229304665289399100061643824839259171035055743073902012842965122856085873062507532274543478712630269659964524866297745487306535556491432103161483827385811128518157560385119852542198690247713459160016666468879002844114893622252102642743847517748724619963292677180910911043570382266925381880785508145543983205345452714238234582419717269937108578711961669279171326528594520076163409861900711638458136363811383365176449231873622531540813968753895739986319649683027555715322330303106178671936473942404036623060140103045702214300782268767456093166390239817598216191209623005366252972137039212974716925510461094372630554329462679170224934051095548999362448883601412092908524474812166773305325844856906364562131893668717557379964905058805061973108851879425114288450905254556792526488966691654657782784765811809923955435143250058887310291804608491953984192545284053791177213624210524698087486089424083633090783180382726345761509230056438808901504416907300076264683610398542442164437244759990683121411373460101894240606091428011923658960925718008959712528847760462283187062905369051238191868951705592657457448358029440819628231146860636905434644943321377078513743390157273176515045501654030376421460406652750269084793406905780447863970200749285177376468432495252289162265357645194703649767028532314364578610599671825729647102935044249128533269397918291460076445635657951469086479369328234738892860056767872592400210731791176409710652508342276400849006636384573942450009288908018610237020425093550289545009620864696454558557967913347766625904224029130199464782523568058995189996017657501493730237792259688002689461664022920968395645125945705862339872227790417820730451699399636673958677728421434998562628118980858481183228072515530052288252587080030835813900158398905176035463936451224788503876068970361784590380823168491594397688066701765682999391179569151855758829580704206254820782624100734626700424072083461100122116705743664196662882402819819750582554108186092249958759318511707827360902481942913571125669253720246391815400798902963219189567345277666423173353218357475374495386305571764782715950586350545501467110474714268292147753550044699324736355279332486221758904221548486879823839481501361994720850461868961772175162004854553116883051717373845339678939279785127845904770164630032146646329375672607975798233653644522905247439111944347057036576290736754006328855732217465961552280583346881047820780687354012293595499480256453375595884409041455102898272690167178987942097343034226493586338004103350710138832168471873439890032226049862189298141386749189808914664864025166203687022306301534335597203873996751453640754903887974910331611506805042440775431160774810784539269145285106641733418011347100723896038807122929581971740191199252955975310434659940281522052512913933173000242057544103419170894350796024072432673231666103397952284346853488648631604593520031409738251251985735693032110842090361953993289155469538051184936784725806393055936144095244941814199651247168235832878716403613876756468825599974324828920326793906763889857058684917356416687998776120523507929743949708964199593907790362523727190840490185951099303919316927671078349919097434831343670539062447408967995166080220148816307063420841307808148631141854570734399536745265360115572874789151868388503429491760913749055479103445572505303950662898211149793842996679907096826002208289430572592182058704603719904932236983160987134170017213970731233590893914393154474680279523507601508362350298470868995060431747805626156313860580424750699783476602581827410545871802641342048201319501883171303098885867415825493101455413357569319725871313317649602299594093199064880115449268195877797526981752946671288622764267039522144917230315848492538050368136597134383827085299121428278434431384591430561620160596414143006258938939264060507635983273378997910839421275826633098506795043570491361164386731776366889169428872842356181199631621710580731491863964497110288079379846284538410242311430992827293175127743760031608819129510830944536219382837064631243610139801604968923035933404312512213595027843741291961376628233430759020536910090669704451362385989702051410719273118525668271653323830625864857494682472059269853440133786283454130587019375640773041972192937306599516247942766523989664765724031742156391877183784520108601617662463369929973747625661548365858680718066688621100295955670815852521304637706857495492362295602075657134334797313534220814841239466111234421686320116782639708787123663264845420867467370872101683246669597458966095678100582277999377061128091472742495185729135169554935551118700980359277551756702160661695741905874027087736951506509593333107333159098104372412927519486359892351796795428834749267898787838040982913383224027809227070667086156811421848347336949572378169276636759417165581579311196799795072971809075527413231794678368031636970158059789967777081721479269816313336800918173897137406083763045123796226573383466530788469043493205140864398154077976622261266688923474856281820351770443514519630878024024120245903600687849176666434406417289110903571576809155296225344393571506225298758531820439310867518859840453758176736521302586230750926721702018424462746363028047011538905249713903359231473373319886765626782436944940322005270678393791582943745807210102290886434162736889140439084682797272440094764073677999972421996346173158880129819303154658143012633875249962807390070265576541803053036589241580174714963724430974845350405192036068662511062073302107499715901484645254916646431010215574430265945590107544608685563616395262013813281042601168090228506974733803026626713656974665648900992378879504748231775506805963337339114196754378679848090108993746311773761368005597968516956609461627701775473963634068076631163763189000664877615652808323803180295672073979947470817615626082932299120666920136014537861531296477909027363247606968808852652664361598307405817361190729641797036786049126418322036057013133270246314867705684976884353089041921428346160163591965175111675545108716350397980368296867743060760472192567464279755677630544835165537187634063156534368490251757041079151231065837242783563797133394142512939604789448079716882022757576394347278586812871499937304285966651974977634608714150813034066816238650514175174493917659343884995243351148058271905575832300709067901092887384772645722901190533399157333780231440823444171049841855758198891703090313656006320386510168664669955522832232345864504956562179718140828555962572571421135887886546150455000246994587277453215868613529264766165517162684482060828497903025037077637672163381794483566094116509975755245006078790622969586711080016845115270353147472493110167901229312308488577923974387145380848162353893058475092079671022266281962530748081720082465891205702498005547900419664693214114624486846401382718772441540624780593162168539851383569660137669488864077613315086037659283327797233035123407931837919015175926116998694331220122145796359150812505879563894013375856627771521417796697725359526216032082426138154611978661078481648270181079096542783212224489505074037703821438437043211052885093925192522966799202903804113624746413101720526063502739109208206945413991508217508452438640001787059843682343881809920363756088473757331365044748603042578670224994286115427491410259942992727956971510912301334880245859721499165850777709127393259357150392298394179625886053082212740290891042313612468675011274950218048946506207015326278895191613376469271598107702490584988830780734956285343673273788755243454906233925577597109302627476585215508010692301526767438296708829095837632320086417462916839684301282323159179163244473327164705027537819427938857144397868197123318701309635874770306444867757519562914639529965988779818268500774081212588678457951000514634408110023900056092760474112159150009670989362276340808526271941620513133494649018164770256532662851372083026023197192099134456464256209482751430594818607745528935154189273595689287199589279393586384018952353352652306694913934620724863051388240671682598108388539350546718033721314641996698537517970078056738527869341143012840599217702223972808577236725528644268400423460878486461004959527192030467900559245990967073859020525329493432162699194206625130883775820659580415238772440550379920947463031886603083906416288839167078397926572232771640338512763627718895998006630906669911344203868017755986773166567352423286801417832432273854320275452588933538469454978435476971953140456519002856457428230911080062880123902237466904283563964833934182201344522101991908840829628557782881607180698753010144982987147641440851346516839532083341265606091222725892790112492133935906352237340973046049417734392039719114789977453131950405623518577924967898699384953460598072058673991281101942347725761363011187963576812654953250696050294348030867102971316928976892109705303899075842719412383933218885093415650405458808870955913668568344860748400181759560051593654330964194269686476693986275232340776830911276501631345847855442471693273708617678619772374651662541003446224146650695695610935696747819545715468515965151613920086511324732503977649996146415986026547575959884276964021483874153082147639358194592062486618573468016575204073092861798835000304654958867506888625935478687088298890785372060791971917161257614576874772549938312952213642778463707961540092556335491945681633725956631393401399549389451267845805943948608464249144015129892050361359437529895396606726685853520522392660142436084416704706274515669416456149515158753890048239294238364638191848040657977043623500825575496386829940025099854022465049604553309828027404039774248368801695629667630689105320655278058493621158890160851173265440070054799690565777789562412801811405731001263375140786145599341884929361584675410655523961307527215509535709177191757620320794399737874514098352715761641208090206159931452003499487547609942791911732475449982560109861699366535491487518683711565182970411721991861024301423713968451354095429832428340239537075401200525362989445909856166410754440446906533215283518755877114030770377038045343536767301754258499046999146454075978390774331227163102710887494023999988756881733483701047884628956613136318696868850684621713825896945861562902824547746342750660987467523000412774311008925173947002272454432811091371134867402375529415313341526568994001145787301513740853684429967227494631082191247451451016498472034901446682388884872009645134922753558979311223540676097846867009212123780190940153024207776170298710902137236086556137030324989549847857438701982512699992584709102825400468417403142957404350076206217351927579564458119792811974071870453429590599074876882360452393729716218584937520824900020718726205307991980141725871948494915376579722176837323631682042767838879607174104119575547273834866006307311645701626635798459992563889672056110578739057997661131941467429002713426209001817806789203554519892447384102781280169890284131193142137711405767975591896588348593704594038161253654002975232529135597985313945170304282244622946739305528432623991059590804586126652771596720652180797661102496433638523892442648923283350463925699221697475123170365498836727529753209504379434146370867579148768228379207570173428424830053599953028334290278296883504591731349274939293838416196052841174479986617869110182746381854982437430328562706964762936447900883910189977422820798800179238974319301693482189534199412691176386508243916135699989278715550992095438713880628340435950492676132072711079644166513925493889094595066206756078291631638737681946658069262035181965416453868943906630223305031292236177124338410384423488387192213986564514118986283944152556577373901753786275477499337189016180939029969928168709624734128939185162879997781424879488343758349388657660850874295963960202448791525119549346355741175835393840681421547508642320768132584924934054947050493421364502841356624847589567997068323359975738355497112076080018721249086974744134496844159141013581074329355601834058107786241007896914871970570818559099915849742487548426419484559417824387661656415284699819902569992259234299746534404061727738115159615694407918766688218722968753269849043550341557456914032481130617280933448548979254453487010688587413861544180604706894327044586844136346467949272366987005350025197882250767248883209838086254311629873006087306206467093598022452085526160507010363580094358759195151838450802457714114864364535555924612343936000171576386552737743470908449544773103545531986422672054904641949742839139902528435132904777852795302255670171036939191817050853593649660127349715738553946960687137934526855630702549322069659769478904229900205286350658289427309608574063672850395005534123830469525175933251552686477045815698194889535320951502887285168545549951513922264047278084589522381093766967215002507373967330226643133580533385774197355732480699003656997554269353214503599343869908543022455885291543120045817440894876785144848020847523116201999299111780871281732307421251257015858834583613634261518102401141298913876865692750623161172167039714280729815145052886359520960419702037155860742447391217690358465248318488287410408795199912636926623117870874210316794651002026376825153248975118951742797779461535603772148424545711584385532700574563776114397509415818442406614414518867563558192248455836284644486442171956044446209396795471341253308373406199678864011907458088119652528345625369795827212062295603068436623361673210887010265762938296283264481168003329742990827948955057754894126111184484023878479522887187859069709882267247651654586054439924838053585618240794948270996084292436423962155063911384101971512056226601746058324066175415348634712353495747820815580539780359585011577315032167129414003491207048413079236860676927695324516078980760422070812615813881604494876625145566588626441454948480756623320186479704442436557581580768231442527801070871826281890276923056960943608931150164113983172695000466259286956193368856321027592111419489615975521195853251126438184818827092585424277347749661961461386712903705122731755220381059717785608103758687904246179884969224052777113327142213526006545640618101787706432694395213965849712863166023875743941646599553881810724375718953285148159926118818774900157914774249404791225012419458547838531915839197419244104364620347523126675481968336330550531886910980870326223462517515613451602440729458067897739410648399270455933437682658656295591299103553004673381445638824504795442382426056249054760293867860733670829322200759203569968948272919222404825986359643882518094901260944601513348855884281228424016707102688280556936067805523365149451100345768471138865847601865921966053193505319979068042288510897094627790244174846985267364875009740127961220801959922489389579742717236126984528838927773979171575702637303340789527508142360130007616047112487495581248699924218814973303277431281327661415858787908637064999328769653398233970381002017390832424588106579291997360384330215726732014577670072216325604461041306686823913583851759633311277417444496088845435429703700113716806440584896306528782386463205123982575817343129511630061346842051640107494816451870625004503311706787678595525886092247279679428914633737106227898046464290158636365226112094612588342651124672021232907329313988438682329694395574809087464477590848718436678910387533445716130292781207723855507931254217720050620614961669279100836879930576171285801696424234502116680475964568231489904860698413393897570935401976265211442504227025441197177009305361857703014066095726488370358843184850065837593888524668776100545371874439148283385108401274601053281654725724198141145543827305893545101495582535101249331423086309135809188561492274084869554821328542405470562784995309622810922249517069992361049541426690918524562471555093761376566940016283270280011394019213025586341024194222982013704680933694345139739351665415965683380804547750447249362351002459875317077113949678978187511367211928814838163777806093213763092983862640992386707785824014714198736017809263656457529939975443398978519655999411328325712737102115094209759490770345986443635510612002938120404400000607651131353509195743407241167783054759787200083494071104047301189150697842259157996737728734868602085956704151719745597223464072187597598164486404038012416736622184561857349688695024031712423256955606903285050004375156888021187553782677335624810984367194064967978553242585916409227573917955085744115118133009288857045965236965185346292235630241228134458406745930314953669913234343616479312851180172880403048558742396701642765568015600029005630805960812807620276922732140340183275862627811147494013371892312130741511159508503141189606922785819326593413687779726386597480593298982385062831707370502970865388016062773241228212019094497360081278190240237179644088492822993316724179310243597824735979816245670416943336941665722428749709734690340180745909477000611170713335521955875706153533672648559428932902938502189435912313053213823337328198263254818427048781266398662087598728542399154722916109709946788107286247334457287995174286066723861342520052716241411120463574390318898462254111702748349310575199739416858937082955911808188755324133513141324661244068606023503056070127809047647321872763677383170300733568441212252808898743280783878119783690868808590312799921081581897517356694945377040960836878001912084392908823164135558065331230224748239949397376446463878724671260574804561843756571159018359602387916083750535426905212868267238013423429602790871722124297032852268999513415105788331521240892449806443714234279380044972789376761797012179750256296771725173756805320888436607095777124623877728358334699092570026083564598725693835663427347428951377938107002446372686877136141350868591260670679139702804709615607671885379358108961971019590580196884208186832062084014581125543687980831651724744836781228707925285409850888158280448000600313375775158206137349024203038988014702552332721878755032368769887039295906972931705520897793175091557952537122620898439402309284596996639677224609175080714307749277362497379496880863561122965523590372948128083422455492399640882464485329926359762406532533124727038739272294511616115494596597095823369662848016740846029011647095425917525149994248951076446916460637636283052590806051970897533464772644354251377525040247935058739343589857082036714573400225045506103090283612096245058844074500977557425982770013541994726271092365145456050974352144984804925798039971527669559844197052493016670452808367752200882961206231239746657344603279047037189302647957680961905938118821121326230624817373432442487870006846742111265068157202717720871690516565614133007573571429006047011706331330995014203812332442025280291409652046367394262311420172120778318249629403527978650883059880721350012892262960525838965969503746288485433114519450234058935211733461931738556325917050698397785736394047361431730441978302400315960922246189620595088399666021508174216206268244969146148054427716400349906342490228836182866057525526087817926661908607243095924815206040379261870731074113720655639432389040270239869799641655012818535750934257086200384796925609697280392787067834687813332800619089612355300130159749714668185467812200800430992991070355730197974072989279748553211138020693087823999869377608573110425973411118781372877130938931098786736663896571285088511530912234574736706721652771690621339863767886508927881273632019696148994107609350694315573271772109407751491180493759488179299058654639701094521196655980554597671241947691727165439363931969273730883034753229313186832637733634051936638962882018682818783991653276068485047618051327774141563231855801073259599605218098650141409441255440556999640860830438981971446398864766289485607178477962847535362810074727362257698166351614038473612571721397130595784610681310770401635454140437374028867549995455818012906101880684775348479545767738102598919126394146322886927364357084322112603473640153411412749952401199856984187111663797101633905413778616371649286704414979403329601230875509860003514951130648952757887175049001071559688495054541392622233256432206149404866505960092763704515229507004538577801051689755840291483794249954458844577785645043181017443360375355454829785934291688054244201882642643492470101165848209226420152993824837627907160417048407250623593929956466899661339593635762974806439620647750023380271983461906490820777050437459212848265946835414148315831101851125869933711452131270779762582885717721906956508494336270517993954777497370454104767117811603382435578855375444297636266271920245278667541428641819795932445565326974017762484619116080212117425407822814469153029651125260178042074119607747191844481771146859159835773033019310671339644169327380415090106947113825462772065512764804122068076304966345145973971010523782485565033660399833442502708538932852746216271402368101949192334746929963686500774875778598252848399410666039981598104562787846619606686233401766231751785544743825145229357949592913267946132249022586228615210775578499162455102273442915910642767170028339512774215609642011114715542515014328565289804223175715207573731231315252788779749419059220194280424497025303703691241641765490317765815767964515030676365876100524413066912671620705777432072756132028490883781778365696632427139025702506541799206964011783307810880662868313019680761029318722369454041645463391385759514563857826974968638890941401832515088973001817607761790079232180481880075816922556744043133524351929510296626165285954159588742172278252149206734727058517240038974280244023514423496456777854304731027153090194753809252308431481010195332130689014572190810900354665717626800389370255644951762030417487424419445664306226711152686524895418258715784515472698559239425357315757243876282025424544304416343146220495534026651387473265263952892172022650152939043898916229002237725412271025004975734947241898765876872851228301142010816717246633172687531727483689958928694082759295693486354682370591716553238732916341799608932752626787459676021971916590951635144342083848921286657416156052324357107028140735360434277726215432979164633549174125943648496054496193915027139374910028270831477737804864981576064977203329508957240616885804066531168571647490160867610163571018311397015742537590949669821195003626004820282877502415495167292101498562917541420073852762640648821884863432613129907992889303436390615199126002657892811107489276133927050088165889294356428270200192703857102304334993010737164306364600098895938500971270613634691792705794937337920221264757652510105782152614383823183631023434092863221242190210250313899507365505152325828403387974068013356820790483194096378815794582484720648660340229649869297217276792569809213570435255817291332298621757781243958886883374346796888988980918333684792677357938181488853394370594789594463033792177186510757471150206109729698539878809286886284474914641089372044814818323153618365764563332963005259019785111981718758150952042972506808200196240665123504796909949465136193939705531581842675432864006081254522481098580768876327163759126543012997593132388697434226860817020383775220973471853046925167742877030941684515963843531520401014395859785411411997374094521768117252987384187336463471741832787188240471968949707885946974786352941562432706406010536687041569679913260848964039141711112989547006951537386366492768013005188639904547945447932968161285899644934616533468814159803909215810126516836241314955545808916694130895514406009742864195160398381358358881336775184080447894115125498848629806045368369742482056261812162878821518961386277525525687290686466530159055311526029153286551900434564809480765235169764943076841866643698958963898500683096629484323009571180600820215519653695601670026225038937710111010475261168133136599295302335754271326027791757707014526313032718818418895216408396749423868851543803980001492455887313421063332962699143965992706245557093820952319626582771451396548088534410333558091289668772762133150821763271761427345835563883123443024245440250556739802150018851528884197125828995573980161697197087844944058549887918483300093011623405446504627293853641415466590720755273318621562683730338619187265544773565255751259336013583747520108595110794573352750478753803235427815937548806842224855168848286645348633928072670658636743897828387859416510468964545349596800205544779509138572720585305872815138853774598365077751468043526527380928873877617108120647773829097552677056311458346968857356690129346036062681442207061159459276233836502500437464374687727810659683552911002248637945626907704553269876512463959430573020975636727897344633555935595335021683304864649678112851903498589740033422648952299706776672231268516933717629872627739146287289985945476171931903891297602131929640813618750944031226790932423916763251239122837993920347769225698209604997232649449634343023603840481189792588186421106557862581654573620028814788441301426813290855452141840673512074361726408124682999268580748172874910629388422439483724472316794461113110083208613758678463183809253301517615578981152802777648202405024362190044502917497027445831879245618387874774176065847513582595838451270332979883319893908260091947318334484993489063277331193454150016378660137146726191632559429810643084997002403222121506424826817567242440354899776513845851208047792248596007173738782513069608296059366768237108695679550078545218498815834297136000195016346649189024489414806070366508380755579863261987145710110016660350259727103305788827119948858542269183058906476256506949579804976628070907820948207706315317219206584438814771573444340446299409268981349332525595942521384328868336982549174062253857615714618190627203587856023005388119641144234507254354446158867350617405906000711562008663461518120286609671853473786602794635025549115740526421790611965891021912166860787216383237271119391053640459364257758403257683806563426195487511723620624458870858794958908306702579142115236002661916771145828312432314205863441214657192358529500499567514933784165047048989055031579475385791878242273351433566551904342462556687412599928700023320393590770474995870917621406253774430617484292688496702826876682528029444152879202205622487660162170145405321385818536956139974796165959934333057693359896570014293051837499487563515078396512731132642069023799656347857713650273270640501450984220483998319931846410977754227837752899002202731299901545441219156541393329927186114217239364776598223310066409064625744061908597268150186607231058750611939789838739057109043026804593043251657833214163652558488940496985172209691722581391670944960327189591371396750429630551375850732903516336474186732890992949394932449382695670823378937892723003167758584066690954913670605754973664364579885209465029813908129585258563004897297234650846674099263282830381810142799264075722787281008924093962476576962979954570554970800844420625347590171421696340030221572999442911033744523754171811252156803580814703423167635840997321500171687715719420368047257129627367807558834682574477142887743928041267201977609399002432562396324524945975641168345060534726064524057677245441090509693967818693102734094985004864786137851126317562924684769281212545685005067397304608201135024051207116828387260911040958642374900382608355500193548112272548007645236268498615743137670172775695842372168923528565607143019352290538252917950474983044336929239422273075798069864909938956951798162466836830752699721352917836094950986923507747285959842843168424507167873598590782309665444385314618464882093904765342081383253633788551370245134903005445834641047118585202441186263586719923364437824755522491283642785806611833545659674727126247420893347115533399893716975509147091528855817133369993291981152807836884224721196717288520214610355879369835414951060157410234773348908244667034424324711217251122117882649223454363702567523284193851612700213188076822210275229966680364708600718026752546917914533028659640505631430151683790052943295778354506204428848844607082799655267285286117893707724673244973677321324259593744498807286098814778758184575624160891807567394550221695281882378034662883237094568678136572988086922770046634364409075129569551312012391034409599596663028599420324325280285587248896170128077256655925941237160977298441494366169490313907852420179812715768630443543574535671041292332610169565003302295057909217702582092883496769446644222026484523324762868247410650958585043599066264620094476654562233709767376320047698602417173248373452149533103282453204433743739850057415835712997650046200199893148961477939015950957688664868923138330291408627197338314420609522772620098996643646233071276305718253893728954919798636458638042974998997936011073682856579545468231544374124776870289429408857806795214546188333679500521795936018505500778379484433034010965788968108401760646030469398389274320654843130691410548731511678819932482248760278829522303384254395332740189597566576294173407353666029582081403369084215053552447654821503800140577134464246156464855492015522979663720868598378384014534643217109919343049542097319879443507549369332823238921402439407797750099066314683429515635708471041862682014125101823656744989955097003195423951517223418785332949825722663124584333312045899862839626205283145609882422621652476989547930881490164110630125845858934226786544280509998909752860469561595616845746212982714476844926573673503652179452026517888982686391769795189165916498206960758367101126892857304341704073708737506191254440693904720063096883863881992903437203568460517104861498760344640869328777108422205862198259116280832049976567920445678389481685466535181179811942722028126448240813779940763934949291648774614541350240529232166792229763303371164443561098867305417807743079070664930928621447295479223978825006211764981235039714190227187719731633571889558596052625665110053862346097809310399105643252025264670457980230596436126247648087911450731187450073650592454253679730827660717021235408686262349322570153107286804372669749183799074037300661914189681713873118832153127804730449228552537902948575786448790426304737992170722875826558478754223901540424376947084644761558926200037443142798853173834231894695968667210626555106067286095377097628878291423209802717054588286872633264408271100974258271457305032555240766108593959429805921092623151192382199708528528252022397296942316654059794298854251820699552540773697220849292192228911669987892938717133163104977284135564781917200215812949496609156159085737993994499502494247925759961271582661293475633780933178120044477619820109662811753399017583061920946171297761608092103887784121964932387928648791883414930961178690224113480845184743430381446972958642213656907179729281422777705634598594683591033318803444734287214269775196472924001645814850301128175642632893426256101950643850111661910725351298473545317290485448063371917489463939871840972627902743948161128419405593700498698277490746358573667862354085106583315490141177154747535641793300029917871291257658232385930110592374916946610991949240952154692838827945750800552969434569282062998280712805466399840141451710689381959719515964329597003253863717578649229656401989490344294941981324752557795524655744166152694721480612282267105257892879982281219201537607687966071771887307962611197602957309762989926394724556860774452055202177498618654077325040439240837777031410660577208992214526292186428694990332360727120508659153159325181708300392195741781905027634669615100547177041191134424328519785914386934834749922699593838508101411373375945840913639060935266766317210701915542150162315568761151656464571539528703567489063836333762920959926602527917104950212940698463804635636839404063231609410950017439377625721187187172087189007877979281354220189308716610428300185434752254200079543973911563777793899089740825872271619763336398618844803244005365392448285344847413814149115165211645107845624435684448725327203347063020863447642724946159577349790818422115495248008678739314093242869997412773180035670194302865816662963015929314928593366731400355441813575462601182042384609736225291146402659666628817552356148797818255026043749366721256025899294103148754976064154700573333201681459204413456120452932325740830989310079254119826135594476069345337236763452083272884580789543976018160338619853233037510754451367437783969311503229669965645308781178728746354490737845489926010403853638405424271461484104336020701811526343363910293992559083289061678864223836645438811381258596412120136233203511292535481143207450974347442387955388513629761872488399239517204279412812278766201704585852607166049068829664780222118710776343893026981943124965262724213230182031220797582370386405975185207967839213762562323164612132642086606008271421807646450629024915743459850251278106524131581148071900229905375076763480314576061854193269186301683270606254832659586097651188120936810100507315433260613809715281546673560267713415444918141178307218938954450721497990837026209104212246638695252157642552610414400949237237132716465830321116917507709917033524279194053330074935872217648940265519580966798569087520356166574591214330885305577734576334309208979882851324488873114470105329738986664083619731285308672310156027937090146281239079658432013038069626601112928182824824765067468221632556283651189150711252257706369799141260634368538152348109277754852780377265275830831895955056386325806096508321378869392883364578498333871170724589419981134714591777593760076591537259759988476605782306102688557730323991496849577080075343502283173263057575610841682800328706030430196213184822787544891463044026374562171998966893489557405974325732097276583206177699302611301432207346716082970125648169327713493396385133029448102363938247667692985134285316179450245462077951377534738600911513710862713459236173141870497550683416764120548424681087668919129565300906423823116549230762406242359062014620722482610352085442519079552288252534281327386382434095820230344224295526565701047714599779465646777726541437766930211281809245946350558262261613334585379906516278531485219307256220516892056454412885996564569256089032099739294576079232720847773657013830855407046544543802741426708502688984912438611796602365002822014816481697006460349742614243227172134757890218537068860737189212286285464104624643361613165081377472917114146692935561928739895241603700150352024907420539999082197448938735706258441745816186858633514330884575835814875304055321205966796102192853392397941277429397546749484440446935050763810777261448085568236676266613786297684714508147505808302531080937377098379253824596324120771754474758504769393816103992932002753873701921650476580494765839926882954115334051676775631747967263262185030384223075560028573240677486627694272375846918798557359560645023267416873496655328685104898533490856592000834158588946150997004786828752910207700218860974327776019477506740559248643139414268062348156316101984510211480717525833220164948066442300999404252963083258598186780644523165428588759119049115779539162458803788354941669398082207735527277906792294438127324430870245523298462942719476652475893684072646761021370982694595728263953788596731643364446319210063621051264048268902075929255396585086840004999970534788997650360125151904841472842921014104126410343756755791350924009943791794257797262307656183831256055613276297310820316413335257463593672229114770862374529220625327550220434618373385113346744778459708222861926099593431865666977411046111409844254199138220478647248357376764559455085660476201589985451136848807656438889736680871759649213793989007968033296009923573115311105999799498982203825771468286950474122262363939879209989716672524096705902799130933410775741902911103958978130578350352355662182445414472668503140537414286577355192526071934406618716776723685501591806159284650847567966512222324650261155070770727016914107340394742236677115316600632120674111267890277518584499034305761886794625917730487653036065536134077685489246717439231518149990392919321704668339003261244391077669218782003927500519104038440484109166588186812190685385151116029671982302463413099373116464752596199749430437187134811075224846276234191885563964995760594098443032806807734005874612519086827595072995471085267967464857631099350459367847523782400720075839812140973028231312727950068741511380015108392488813308902445705749032035901965438702604794121641778573573029258199475590022802478872469308484255286155421145922914406943597503324178251902282266548144909001828432473280228795861870213500711167867556416191488852857547675194738652404737135347739587690490628491997886265262684201355708634620644504951066266439226882829532773547851461823018079183381337900785650960732822461143364204727800154170881899347792457921926425027744753943615598279309876918076008276565884768983113079866563781069494510877830025296809547176578966583964518318314012130144752333393942897032700218148630855563838620046134701901631483918211916887130321487351459831928537312232042413085778501103635560306404226478896646499190351631221431268668957882614236574310187635533896232797751339739651992864464554324391817899210422563539248504400964900980992158125969585776181048875667459673299411702072693620591914352792929625248321280952427975961018032821906115534003468513312308790613006464669269348892357436302033362397670343090544675793230452967643330655988175327008006805683066194055447243920955765509463331775607966433773592142383601114764983970923978705388261307513048948197257877436209378126622129164128676230467593007584149824271619776421302755857878674078098058438187025426351626562100738311496217487721370170663077756907587686248844406529680973982387865589281425223665727296075805958674359529562999350731457498397000433461285080944548299562449154126925209549448336511479921966260340380460952863134084522534730526694030779134083134777387274470654582426117782986046928562018261379820366744023482135833057136034622869879324520203517483341210484844483569772892905249648281061346083335967747691417702149625267396136681844567045912987620352168083368189232466715583287162016590248519047323110503678241589273680158704547687706655919899285627267940575308445181493413828810419365440174041361957289809278661023487656985522839483612839640148213716539554702649714546714766140919382885956600907009213822855080969323218297100446309959644757048400769364057032203787494544912849192356433677245721875665942131428385539303077030497953058441713456673941681992674923549558980120126567189307361832016232822198189268983669292391534468673216457859086471949355538079576806660270518064985505418435173743679523410314634888682922397977056907795760936575545210110920492082233973341529315747579208850214951478726379163472780624442420556530902042831848784688512263212160045636849375560646157480921617411571221814284081263241661859127617809739866878506272397688171939989773479237923205522720128014312694801395097834538541589853429615915786776483621358462711149274865437193018011060539944815499049228272087845394882951126780574982656948609522498840158014306585640219942095443292872248715716755363514211323329018177909385162555813223650790744404866987009423172606086748174615937035456502900622190285361225798273508903812742213789815841423398579177384321466175357872676414773836252338369759803228826859560747418389614228166185319427893590665168561941975142404908729770951924665697960087356232018839366938572094590661451051871587796884516044267725360099091174339598244921573458363897498755031972524125001071423126204059732939308864225096276730823066433852636394541910229579422157471522191151035832978139598276842642160775723097119486895910322497598642316293981166573235393257192837313020800947328687675171238529362748375604865167568271251292317052190427240232353392296129076891824435206902830706190517991498522843268126890831432770060354630690321181532249939250770947803804984898507098398730457580330395541768912619251888357909669994594384111859870516022201993040528720189451156233308026612151236314423173171997056751043227710533749715526868123344141996231075277500566720251023849278806744751006821461944526418914190571559926506531915214852623666654615233739059318426849436571007293026158311709712988283656754624267624037350594923276652227937947657713117777548107242911876074262861867504825467395578169434532477727963300336736349339640447582475322996899936004521940781808909231994111417625552389176843610479138031922524604152634998725466914854101066299038880684611336739724706055651928780482111713097433053065971738418343662508068797638372251735641924365037370467326829446999137101476601551738110761142478174566567116338667981341437200161336157349733391699396652361395860927339150293458759088125816597576922808189368435675906681289498991667941013018842506043757258592870868581008124852167874613860731806503726619408983175268350877860999140939954010100756977370366524767130325490249145149931381035639991097146114333790567209404102737637593043633940413451953500073723912512629627084174554114225457962893612200836523010605129751239491607832474359408803415775307485654309612966843759199219038244108949396981347327850375817096295616705152286204564479675107953765940141101369966569213415719168915429448602615608121973640708380855538247633615882246181602879870449395914065277945589178036590350817669799546309491092947570676882754783319048669048251146070736610523115400793122064431649604937219238420749788201314908028840862858926322665286616640186086818083885050308688966357230286734091381097822055497471403827521989443384235822946962756560385673719026384444583664737142178805082545929686473984653615140746727283269466451223299384659530445098853157679597262104933069168412657464299884806999303662644341382377827967857878731168077715414007870842204943012834822934514771492474895345646860782547707025491599552558085722568611775162123333942824502861483773800292504820430199236498720918079233650472260024581181680059394126349636924149476062788269282210128898764743123267752072699085616569672399423481733490723890534582002205253261390391777377898551962775783677999812645752121540599247980534403778451133363074146010402902816671648920700957112124236436272949384542958818081599710368774525984753034849625679014598474236671695164986822055966741443488257013718369006952776139068005605125196035294082925589872964107740409761220646225403265054463053565910917409394673107306830665108891778198947813453048810466948908976801619574442152108864885829920946651146409780089926016143868567801682065643102227037140291836155853841578264942239331774253172866436165303844991079219170959992994353810912637314309864932098160669642920795431959610491556583310686299821322550582018342143672932044329435581604266266279207367111643413371593736870562768739534633297991620016983205672826867302302323388162565265078494001808209729992349435288506958945947833185150151622991071226119914081171065415101061322885256823603033474477298735611244173719884002377798684315601533264366015626791979633184366114387429542422863897761114520413766253509000183011191133971435145993368446508135361999492940485923847486253321033591829374390581020923030900792793120402007231686182312441848775031183080902011387958234907236454120137479688634537698951278892409433156071868453675845399757390951633845955085326408745712411819173647408638484008413756605677370686115143180004083544219130867708104203730096750220912909134645553059812544311793904770014589218653979839102859496101056870130826409668293162767403239027116053462081198945667781543403493034002735166076685381395123179802814978890732327706840095029769444428281031591020806826338784073586701099338187007836886680027683704270485943364357831637467782566611089644729208114139795153477178196714924445621726456786894746496721717498155186984966631489567808451292765754690874368594175249408659001550367378465239214446848849957167707391289130503023537248352065897070025046386419027383794119874474941493383667209992390488948760809640150427716905813656473758157722201119619814016453961485715590072303852346564355231074347429231432379282628255710784350179750034395276478423201032397777988363360764485452629343862463053096813227339059757475490298982723302045177373146237608551639318123905688587078942153523864925812241053696366380405122050218473998124118396158714309512153601201048285769245858838167121592613646662073637618159846577256884448449771901735523121781177635579576327894810522504046229568106510182753792078002200618417802277964760085132277061579731439297078873899863629972073503656451996298456950687793099863726652400680442769332968188175084700363180835940649838646569022109580306677760305803580392833530972833648674198698421853985931850063196591025097150610758575445649593570356316721472561055105317162140336836679717158627663152849235330082153572426269197232656875694932238119024151275624625194053779385465816383002150306661847502139156809153911080889566212194329881924379527021348752009489612210788726377033676492024477379470383460744179666248447078924219145403222159498460871389078807490957378590592956936835421225066915948331661061997809272916078494829158209484780524607317309957515508258293040175501081845952692934554943078341827249232745626324788848889288290628870361687653935356131733845584020009521553799362630794483388685004478340328519811374238519201466487951269280472318168738536949918745645963594115758777515802761273499786922204053707141369844742722610264391436602181791047549237059282534454424323596000255536686585052692898323161378988419251541823311432576262492498032389181564413324308572813483286367013483563457398580314541757410088752485580033809847011819929777655792832575885744096166112305331510950680966003120012309397809929077357871814231445407224013131803921826201751270848024710264837460557558948615502759046754805094170161912990084797876995043438813157962700246634722955458074607762877099705996720550670847077993201927893070270784578471146324142466771643270389933816620094660575729845508366181186271892660106037251904567434519422888795640859803004444126312390927016976670298424683471880381281417975569792084926733734682477553080020170635670922529051065568693727156987695829002613216155494384208223500860620648034140538143635070500864885145761575726383837575179716893391810027410089160703590721818401687455008948535775232852537805238226677405312310633487769755575882105944159331519147601643976027416568292891380990680270356357849143352545451873280351456240502867271806832945090015103909738854215603107870593783099871652132241286795175938690657402745846181183564388664615282320107080521486956822984109744959882217010654550592706729682043226943699705760033575045088465584296951173765874059743441631972793702436520574609062446754127378569732503947129814434458431325471286670868927812956490434701173268440780556693624127765234109456035431271195635877171209428608375196926408682632399042747278169506665495521169981238919873168961220857359902933438097593912429647803126101231581724217996876185292122436085046904055916842601341750971793515054756569913975718904889461191856871792112738039067193980915207563599347132440154327390013809005576841764935332462638615333055516566416344403617382327179878233844916106826261140294779591428738641827427835653434756993994197541157930690746468650650769580276483359458762145460307550090702235079978534330798569573722072335602491170971555016533859339197220940253847609161414059807798990051297925015983550959890407702039729053649921370519677614058695719485422743037913043974527355580472475673527878833308661566085344827233435843521893104081716660099370896332581950462465016558966846410774388023879250056944739642695219672174495262653976689885515547256016247867962720496243052474283856706589954106432670666271053341044698665063881197064791293445491655273694257764586912985752433068655283525801176242462794164115510021678051981542013394863334229453843643368771770755220431082816527782461708829460234657020521355799431667755917609719231935500306485892611836328921307940773640809724311260913964867250736599834296586680505335476007009408882027130575996098202057826956045007216738066447852682259128593539905361692108082709698985984261231481110279842996523900198179556316680254198424402618692910644895786602021963144374723736243602324014598708749830849711495461342168632179240088558664983151953828514125108919546207178048898595954783672731701608649903227934195836584237908407740490813282353388866287489955097778766653164114232943385865049269097727331305613975387112558811834822566015077401329926201469076280974584455822641305159261311359163386471853680579884537275936080946913496319035843083157345769648260718039065058370207645495573866881248440006377584133769924558589820660256659547274607806553832079678282192179902892637081210350120820425741810315619260562621154226125058794441394307296150368289844922701418746653119033064910160093369072639959567240234122268590120595787735010434679968492010283320901366054831672473811056404780211400643017169457375605308000015910440754159125301777752067416225093963499891431398267830375848038595057814162589745647513293417690062572435216149024379970470115108788663227882503672169191677717662072382703637920463148029345674526812568208176104683097840655967258442110994196912913857831519563720303561331741888163593366933391013481616293129705568783162158035013210183136896657702135734956153824766466424913249097829634718321648672193047736710556806333200842194360016038722867306941524734224987333525912218556947426475087051038819392169852953625291682919711347923525222075663465671044438409458694601842112507834692346519562317041944689665801919442703416579311806228377796586910897472786509099290620030672076562969574491684147215269695749682216098766093241097446139766891977835413349464437184110886836883066763186954368109385569477068273897687657155745836087249442428187102886864069810199447146208430379364745715187066994964267414945609006608176612022319133665036318024115039075305830479142215744240356612263087032267654540096586898315111958286019650184795443003999554908073151357119700809781942666443239525733573092992984577011765287679837836952533223371339320246222963715412689725813694079025543486658603716652367860228779207883587562981270066304321864578347227859764400746992300854668023197357029727194391186659783794368921417258059833836096965923846667705641675645279586827350392061384074356975771958948023341441328071760277775753495442177923247048550744882335056906836424074147375671160148986208458129198111562381854862184187468495904143555464943015587688346799067188064109596210988916656387347139584790149987159651901483534679982210834241827119963435889243028036357651995544000099774799034504266439324089985944032536034436815487421759261725715747787632661290131404882518448935659875155152494328876633180801464027056510764165424630256219931098425016361365541944976035302608297227530085170920454300939173455885343675738812773599834470959449021854505660474319901266417051142512975765933427714633715714521940609650958771102727491721725199588963964640210371165187060494402552348372542564853375566301745751527089614083708240010472085598306714767830449128245411546919214862171412552816265306351406664792721172962966261675130666758765194819310487673371462054720970030460897534700543237732588189650803278936641746261337735249736441086628323633951878735397057210014139398488688490347659319908423850771510069512902763968237542687365085325619234528676627663303293893304211498344642936423469378184857604088239890452999203667660604539422487085513561510657719061505701866608709372590911026947956138925237407323148698816625549196357922937592026057824007659076506964059404091782111524887572552204123316189942094425319869754417571380946910926432734541577932446994313247998144199894583502131139619705897613239576371583720178253650662050717392165106374737223054725807368783915384386646357324328758541284657399960823450662128703148064494747003076304012373904404267446372846189580259694528405171169191333026990776391113446367980083745811551995729875763105543497839647539411426350790403832988099002202125668494807723171565804979254755895494531385062153338859589713665721424163305039307214509269622766271762861203292364924081945613969736182493279806542342049946105795937393409520001980335969250262242773393312452667469125120915334647767609090885250014053378212225814317619484770395753681731081815283359090358553742411858301755554955346382084361122372252702865740547459169177383232628859019915661288408196704377040151811742496139026463733862780527159852023670655809677273039382673279359758132461870459884727266322167052573452013249098564292476128310328231457328205428562554265188170808659230789943274910166776328152374908951080303926218747850020194594594958688643701841081348772238212866778967042959586171337156999417088698970780672037005919759502733695326879069222215144147210153709288662862064396869206902665132116884471788381638772792168312766657227535507642124497811365435864013313176632625318371179431037824701424042297402155577649884306860385256284142067010468004093211632966896194288238647864480899120523988323450876446548062932570014308911902708173812846691941380687927737495232868740568052466774922765604020319954330399803582976988171441994402263506432980456783079027381823380128881449580431622169639170803642181641640387963137964630021167513413940039786411537593372114165434644468798160296675795742125367356382403295710047862106583888217170965696603187064621150377786240130621437652127336534097938601008002214293726169560335500687702860491571204228397330104797380459008235433887159488731419712474263791268231661651388988400759568475785489108195262601944790496242363764923475988715261565217237174151708271093660875112901116189441289998190643819476559646733088884522076502991176715172145074309870821329776506935086433587128473966057768447366818871496201978260720591769632853590685245895075765360747767027812042893358607981104999699028651553035096452960543124598259552788489227103326005161388101636956171886199189389733925307509042739373941988715994066014343878756969559865873232378981612401728936555463069813349303175477274602336797666438283663747721639949106356736686439314801944116414403513172521262549670225822734720315923901821517167143016409275472384941517050799317654943313285702665555439554937295507294559500454614159166437890619566603466215450119958572556037572659371927669133680111030261377654171384320646650924285521623622392973570646719117746984809024747216861212516869902874770257881866609997519707078419256619681247448480138425385023541307256923932695509134376438029386552176634296341721954902289040619982580029783947505025635232501388151707086117195806635301951025996441099029243015756070573890254620313991851524536112951999289180601112735481193799056922615087028900240033878676290301624897505559500980792201121983269527950748969030202533575823105064955690356031300178608134906192900559235997437751940211759225807649042525025208250480642475278844274176593424509623827632042743062065283914017433695763826439036938280432314763012516363986573273541020897724520154448941094331785277960768937549847350842239052175193712153087599212032791133642514033565776533647164817491772974520309386269405244428590087749966371028137106842070976897170232122999912413346116648577678311705158449542641734723851483564746612200661327811895658322678363869621454208705240039234081130855763247027266823702880364054908612403147006216593545506842722694910159398716536692426878756554878851687560236522577416198153886049749516253984999214606321838530782849051012718876358230598238777810720522184953227311381042703712211031765809588044951026398195658258036603463624798785789494469341702495098867621162613669306792633325288938482105366355394902750814363817100262353008232306176052561867748253818973762969490882503551638635575885301020961459670177855303373171268233432194786771037878654178172392301444304735228524080184628233137230767351997141931708702031704248520305022369824060440349333879537682300274063719950175716021932453086106618242718531870758598681674297006424386920444448682030092742862213416388679950618746456663306182746940410603154628414555476334435297594242123359991967599818123245279343057903374899399891797691973292645819773852183747121755736636747312183611389381736544810942932364570951675551640438924845019282481146382346193766964474628941598492450205618552781187143566967217034413349873275314306895182910057082812832528648086388506878306609131900817171806541467039636930787712431725355712817797272971533861605576551056733870024859142095233760115726819467778513949475254103628045858853462379847124996088263535169850963400145190903589689506081210287244031075157217217865049414358628301635325844035932995129231013567715048439429399325339114481916237731899552313435814551088163191321369184821145010642202534277743336485000394276139130578378068919938603767246658203630772954103762080403654884208402710604999214236858096249467313794765202793221579237348099664506719897112857608929456821016177506595967071448022422285472646680403526400939874837151254908292157042748943654533684354707903324773038971367257907457203495357080148976756795732741131878309208245353094871720566753970796308392896886881440219987488993451915943785220480176383790952711555189888824358092743297461181400855088345756588868957219770541517711453227337110754244605688510128874333117613955518103614833421769478938301475617533613036035608316182841118679004936859849267948955964079512816915788725003679754363502616527924690255874305233908022189075846959321739940838343522393008757884230442207202180916801053902556908130553426096511025564680626999759865043829656959938963764792830334876606571665946120476384726309703836082807068405754983722026437075375753898599052231695236992354057121195864367106719688979679586058078881413004743763498860042468877006489403673619890954612165556762544201486303227931948009730783797596171830856015009460110025157455200661484631416777886236327206720388700623971173634790601820636832284122328648665514626370413275613769857641853397415255292847089495744395754122105741691174301475392763821436489996959510757451208430470634861098264792998187973424286798745372344343673245246182161249324117777659353004243061853274395321944217579372633890771625989667275116709438748763792740255026064812962298475007207399122832635487249175979976465089210984826701937041628060949088783361942081826248012603698968785289479047668474454188260535186869349724739576934873503470192905063283794579598147908702903023942747664201389610273154848986081646596696169607744992039756911050705247028977784725436220919101254380598916875715977002765405935677910709295627202122405485680473360844430198627861404654448640446069688371342089129356014355760305678762393540090223438319220794719751545601550833523346635235564804508682061061822086995995878470109584944619101913065474759108774870429985254671569969565616947494178957114457707999950714123443494134563004954059779010784587579408445261624042477589820295881347779664899675420699530983870555580117431965898911781637970183990231423756583870617320430713302852269866352297227648977444216449286002952446311540232840873821771820862649331055372334346670310428179740589252013063081062313449514845044920129634391630774321724054653183238896293602909904845020660248538114158010294821005531629883555935558224880979611356321111014478953336296277244759800865383042436912135634411805631049189767331595898970022832845985021719253719146249652426976910968418157325854623098350824930810980898440514866521844083236690239633793506688220902717932632581821283953442404871199491631122209098637765850697366410404464035871704102122854421666047859083352903659624157827912560748521913413112999618814104437451638077023288263984163949215929782988717952515003747235941972972274229990069763681957039298290076054623931113989901565789993162224001328052314737346609451457419446846061994810693656420524053814617957872614237094074064004275194201429556817263937201337146713760387314254038719372130291616635365775448911307246674889267678905317152379492407109008662471572055572269879275117325963469410767601131609747083482613974404838325630044946656859625548309348292181535608290628629758877825069910992006567539911006684927101559794737405988817439645895907600446001230023583538145430361681808036689610240804993158678499868566233261494713741025495028111072952896518068224329393559479741856820661382004302251862663249696873084254795204213965007559994431616017677541759710099531447935010546653867728503735940413705961836769446168341818905022019830369748685613380376171350502946857742747137521446382120762502928695698042456285017342369906399474048897729103928528170023466226416869356275532235751101673287316642268335878741129877656125344377466505902617334264454431383952743795947293729893766773273532069905864346536089256479724980898304240108990508733977180475553835437075126565027250739976305645441816580769490119135477266187818313409372958243173038699167207987308900813154821446228639498796591365205593465592606651980726330002159135691360659305350034956351612325904401561825034030781328277099907467095588616541130221950131575399541211869971483844787345879483358622732681455505806444591424906634836881926934780063102269744641608644094214030310955996981407223924628993529036753082794194854514589009142053497874630817710707904623298977237344271913292635047490442123261475715859254287585032881525758069700131199363041364546214068160879567240646402376042729012452695962961517783524490164202628259815245924679957570109782171968361394396813677156522333351822790802641333877855096652545231580931312970071849499596200728155681789686159748467260936618179404050957917918781457768908154169260806935368235707468071827191083289973259915727533650699954622380711081363650467775647495903806025586608512461668637573135434991636376794043545644378610052040322217733819338540584667147306290036998241114332137043206810997257397520722251305235087983172627247491628155539131417118225879928564152071655773314258997355333990582771516463502316977838703791529450654802601713795956502431278433844457714518130984253081657446431877584639107399848419618934881573136408681011391521466084427405085673991068697546391922158163027362991581232791292900046344433371279637340308983583665066243544780687129676881092303595809169092225132059266902086266698147015022152105204987431299140141381992421390103753260687762886079948067507825158857697836054591959191584874710236986480185722708912559646090313128981376992686444195658469207817509140256211709049785772278948542661079164708279720605052685359294604137928532162645774643010085748337751481449048880102357262949347728783568063094011453714431126851280623835185773887498370449903065266239543239587534094498455112990953789539465038779343045758828070908470755402584593501865414192026185700646840478818039041530687335362370617994259048527123612026780158020672371770868364573602792474179474081213984322316542255634287903753072683728644368366918734845046141096910062572113355773783372927988609737251442885143299546743040381184974454717931800782288902757424047059323944490672486503356199167940014608602087051057537209199140851482563218320796813240251363020010036291034740360276916806881704699763810685532849839924118454992120906175360226720237762236261489024783373652142818765467013666406355666776352294876828915258881542276664626203910350253809018589904975154334270391295309163145081368721524186455093662363446886125517646932826307672466414278378996800244759413520358981723355726250436369112067325706403921983918955693809553057411656017496155899296799947689658573758101443224711493652928463412336899735304753804837052075345005630460122933345909311512098058358275310230659753272857056075609860741802362876156074525066395868407950919057404656976801441294702245841505817622441946058233561561393354960009795835231797960574828880696321342317897280239286355982259631093087148234614580160159519056345407588933052299411736136337170721693988377906867377470499929736183043503160618382019539767512922289505763913938033994219249804246532872263450321035871300153469037567585318906020249606476050576387827240837067476036902712592275926923496038631878374252265302235083917833992460357292790173438403163780582543288295522829661918079305319414287506166246807078144111947477632041963369629320164656096289986281629527037996358884341094297950532714174108242633440145706133413737404979209504255608316229324226945240103558655514941236785823126505030546457679197756787814356020207841660712727013721895393382924188371445524777073409936573697785248714734090247283172426104845734442672155629867576892430394319847043682656107369108898069477045741770273437870615533058699474490577518065982123313512800318341064373146039343450470861793628801102527357661375043569725949383245234352096649146651469791720956282768044132032235194673646377861087198610657724722226679614578262542867488393433060409113796792909886949010327809993742008387031645183633551500922633315041436923049912768018345830437902227611094727392571257258455835589261489349313587154585112637164144748720001923862919425126079346289227341798878270633816067582517066197233753090714087276104205592213374889464100076062922061701764615294827768085566455989542992399537771378644622727214349022800352407739481648866831922555411091685347203338545711487915309028072651321569409958348995529348902448977566647455056813786683714853318964337858230216930893091832283793992972135335532137628099274491106968012740161562672076214069122236733478036798326202541692395074795835017751327259785344977629964676369100595604838975002393057518589531181306858298065975026132319069038142147942523049580504170863158652307692025247791423569708812126158770934128749255830864725261833541485266561305760254909758627958182774153143888654067717964276551272157665894674842737196636199378420687548050368976089104925746281999071982145920800646617909767549854815538600898351891952930935214870465321122132469963287245901583347727471077114837420763090981392469858043603351777564836144369071842429463634254415852369365508269081477922569667663078956327053337923314380980901380792792001760898339433015596983648654969937651628604778243728960607213521301648277606789030441507474230610703902476040780008919354417726482595685015919368268227310663744086043211297297780842487212574216177523819548867257410878793129199037441079494184261719743728100383561828255765345914520265597781161605184453285897951237844582925335642949497348159876058198650219135184482579340256357505120137767341664927415321686420709335358186843017131833012306620771708029994082627375452609804253326219024547477333574218138839996648205166993016274820334088369559250347148993586068349368229227531168842594921077666671827768862297488897813726988186960245605532911516123349158110908339576326858202915138764409482111999874809343596208277432853540447243196774565446826181900447512151376374891907464813063320684738053329196900396161262027044029487639635847860149113746286729121627704908484219283948986030037286410124027469582412288665303430634370893271449146187531284590620185573834850735380239749167444354720647353539131124773977277857854885608080049253726365144476002239339211273640161422483189666038100834838212970427483688085541861718877901036784909338406131887174370566127045770051983689506329536169030752951909587536252700135210228623578744818221135922146038845525556664917096619225142241412408495600917925891879033219870260885759664790734092336945874140383165057305998730448351984213660811946490816155888454986414129812488696430029722679948696469502716963951797418928023040056508421238502132730883581580747573139442791504651344350982710799329162132545060602237903580593163441785893819150506067529592608878376366428610732569923190287203299547020171519103664208085376793393020224480445265118944315213092054610237760602524707334581540632584590809296748302389403011031754396862005018016601743241746506257893795533668505187024745523358102029964867352809977913312355232825513902903833017819052296951330696682478140312088622970748765123076573632478882906314262923737565205415429197637733836002113361972149623258299325643537243308619511755932016000236285456247410335237461074771488805518494765537483852236059972544543319360722405008654522466579383689509370842411167738793385469455414542480316757345595529032505818657366213005628691348474209895532819464975061934003020705564694884149747638027099905331967918489738555432012853958762869154590164540827511806911991615604066002674340812212712928715517557914996367780840346378549189333431782867062270077908210479066166586056333349419934083915725941269508436747116577093028254436639533464856388004984967343418824878552224250726589995267940238555076870626527505645612084517271442908875149390189232611616308774303740867682469975295035782691671712378747244754579767736072403078157965809409912426864185271428648388664912244523280341301825577610497005375248064837922258216438152805073158829668889677076978355831216814091681449090210703679434984400536175260037818536964039980683555218434976078089795811628259110152075065979103278288426476220783242005246066429380768739177843080595096752062809212737633592316981469906863068665471580118728646715274889839012289447195038382187865406197509549471652459895346959519561616646213090331035648309244294259877034833822431968294695861140407451965592340954635839069610099525059468416764724592991952735058019855370642252630184585497923899913131704004474625394715652543791102400142737568975891003907253040796993039668065804253201299212701757599446518351395915023403129013212642162904284355333832809832623018532011170594379129977710448255669842507683471266635143457868141386927748007849024533560541646804670851442629181451537657893781628827703755504775005757128252302425389637432340269895072895748950866830637832034368920062565605906376419479754331449461489200990775338405089858331982570458452231124571413527858265828186173257737040866457233842781796374872730930964530567989882834832455982800998053392212871145031234616541027094544539639379747643215637717138115651600673272698291513307491394970076980527928408260231260003016961093411351009680183251647003243177063003954056732188187466960700243039605253355328098372550677066262051958428307200896884106145290437302064704149046161390554641450312777220378252703129819267066009997336082698840820564709134019774098072672269615512409616226980650095149963718611846638811634165881130306880271865865555858137225500591477330101403125985384272237141489322201652691499213806655753459745019756232102790194626739812150962132750886128758371241896720973843416556471225424227404799198548969089892924419424604710660589964384559805590466186945120916952861729121384743362106693711518356832307606441058917393773211091691029558506945314600024683979958596471270059611994130751090980025458451411610945668239025903556628169217665250698399027322246800668329782477373257600843190817388291908229820116715548374129565513933685937711574696674323339205405856243142180181048721215543617639277158866324128507277477176097466210743748593796286280874915242142676313105675724727437801301102592306314402323437961957473446899942277036211125305269414618236966665366857777559670840841408419231735561485951302431263485755614514728186463644711252442093417247454943772699020197972685422421956954468032074954466040240666523419199399002562744831358226377482564633954756596228002374945376828591855121498590635156039881532174053404689507992646300281931327746610947224858200531706550759018340641539008664035790725192413537496818088678501593342491072733663667325920694054462799984521179092609686937272148365583190347396860778922778222245931261847658845791089459037734037354472985458082517691516990944972688574625932210865148409191882632823269187698505276069705436024522977937118097378493543673229612618112752046397182076960377818127090233868270006618919168646867607832590183819766709645968473216618858889052785528917606602617823823881962471300003504367155249776323331033696043190888524209311175435336330811113707708151033250851482404144831305583978078889716612605860303889562563315682732278287117275280127395121343141795311960796570005211902343631388950442488483587357460988125902935732894434694026450762232854185845300622451054419611772426875320865284154239385488161105003510071850795202912549861791467499111754507531383592042749467616503033224321179417014610041044398934032659555743627410165065663912851291385729436719427935118448457234180401825217070491972900770485858655186525463332004590597023247076991417400947964538928252470631956370978925269475360113870320020780064281874550854370062688550705935468592758116463621348236645634564004701381876810311835388170921534096104066369223534488477314830685094100946418061224420943136710110259051543770211184490330310977575353443606852181867455747121935166240040793156461345226838026373766307159134996492150581758213298012241715606355742881713220770216748494822719032562966932276892307876521523659444722519948586398722890101078321819563807099909478162385812669996564290515162616222305704873778478567058127673390678293036069826806781161129082412006766299288359001063083919103729081311509891395692837119600788619022604796364480225951724028903578155654758693919814463999451920767101831104709095058879072940413156838181059201545353039630525266203929023692050168112422210985475588263927435067830600797707422968085081024066488409547022665190003302425846906834486733156054591638334269307061496639387794522971419862407619613006356628584264588032758031627420953751930671018663819266097433064462113789112398927901183664102097355449253431537610394071164841547486109837807828658795363578001823721822158793519624172147965930663149467710443149878642680123232535244425671700591446259302465872990031123717453783760857728012047933177030376918327478241045669803694386803350980614831077247508912690868242883927330625023325785738461093453890890754691684070547571408607525058506416205340232722154542781336397631516399531916695672719410306346742913938246051432740389306273063710935978115835669142212602691235566900322591201017505239398113066612829311403967742448716682755192766149752711974957380297893373006389083787069103085100366434318203749793702110880618275011852152742189276492041743051344435219760844012324565026485603158498727100817050634652990603552366946439894999338709948044483955785122895274532114129674773016202030916359057767240617584605361697827271384623005816516771914187536050745061860653821222290073559309309174431720302999191540179111922408881567797067009737099861990817535166878892105081271543136281511436824622127113691559555686487442834031349386868147011557026917459315318746551377455791956048434236879035666735050656783141977913057388695787389022948077833340345580738530337310761038670757419545765990245201612625007393834820258541048662120324510470619136912930923317192581302470049152805552505320409665579352623658296739480915209267644739665459337622762116075926150246324862587314916188800339834913301025621859932773903911230941923065906587753066001956112209765093707003128348228319146495982319396308656119930452842759856980592194951613846411132232086552044605499974680060804514922378210219047492663924059432644216533575361784859139124166355452078104867284885659800066109625162519493849012048369812527947251561025198242233683325460262391807708024833296216086249789540086582681672864358643006579797450577957128519668148992728311657147602272129118129784212733902839428142956332821044464958836712226004696075680497164901830668978686314180774402750160915855177631645921730464554208473620548888831080679757939532354958498478684029887424545629822243023488923136990593720805714806119672090626130136093832574303813336316178146934529799407263017991919886390479396024111229127819750863318168218270588194973236415655341187485335689560356643886208006086046175160735762527085509804607612457110742271453518841647878714405955186587678268643365490429359403230280384919652155412432923528811143794797631717278773452393318792984766483694312697456132668829496583218741070103903110299592896982500611518938787492276193125769422843139640213212173307390875944428396723104005022795210765835289521892380978673114846849993540977674770259036164805620176325613650942210759573424261418874416657652719362483661076727595799995322405428270054378452934114988710203781350122148732645732826690552657733468575559877550980393837545387044035373669869603774264098200664122716698791438840299806950977208969971716752182741379942079595594654022233347448508066866296414124050550431934878534334680165272925567081330723281801693049371046301321320549079237900373031808369319034027891420789131484667306509606924611535751028429544986986099998088251288151653734666845509261034929590333187645977680486614191022367829845439678835370701192217635554911860318040463249984056461138152094974310763154067956109332052993861687346290782558986288696565419807132197902156971171305148641105286609672309949723663766633314161459666806064844107524428595727046022368471934874715070720990015531843880680010903136807872016208630853989841269458026595638709738505916100034616297102146324233508753907241570561853083006427317449450954418137756781423630437220228728328161073248846232119653169096312461466910427791423658872179360690194963989446679580386145956756855882305546945743172735909322265622706839454577043284420516578151100924040852094698903920364316737827062556996187321118998112554488091863261041572948992362090010830821651598063457375655238080576885918402338012612226715995640095849279239403191426900630048673567548678634726687435373476437368686055042725438415224781068248784501104601641909943525572940861529089140624209096916972043729541437810735148818788710377213550544291906129084593454692069408351408685092488041006660952871913735985276787031061353797910409636935597521185531066693189061886127696239716981876974602199450563202569004275792902814751528877107066326824632100844494627899582397330119330657684176289938764806733277395362476472831489031654665946528597496849475805222623225293568948040558386458514283134314293247317478530708322359316681904193682719578937559401374797717329423004454787211251428237491777535515336083344267835081887191459350351090735579313172593948376564197491328278510317764682422864212530647862704710342083533176071761270326751126626409530049615972240332406798252907459520906399085562441803740343887770925056048316653098277382518842373093340937252587585493138593370209871519316896238843990471245416980997281665193632969404278621619489722372833931012390368113374712667033333858344840436483944198701093174435582872264940332425478982500598254271164512079101803676302945686903337550678061523600144562157618289396960223152753299168586403410215341980050619413260257014334762100394075409697134364201571018698534244825373605348692719416992415838586142245522497302976881583523999094402399915467759473234018273453419375008366130992894693056978709110266913530203669589133519525448136226336435382751517875503959572975362594934661105003565954274801434561035597261140391092886671815430555867987012588654522021127583309629396517731850792469306086355714839198148007676162755580961531336785153282201929754703087532925673117069229072883377149656747319449227980220367009675530847446985954028262334426917922506344782250143609089470731445183544901453274291627591478800058346937101481671356770846447080696991564089180702420523157122042582416806369278066697606312179568401413186778503256568932854129368658727211683324418893556581970043441485145084150308253554618760204819006365464081156325002967639769965097881519535263466610709431739179757642798875984939130321488011582247467677965775877991645138633903672141904700322638732897289449857335903472517541525133885386887760585919076695558033071770193506078586888085432501908308161700859949293406416934369968962502659311995130932250877446526209468831036848924082865449018494239612171667482766715003890734649197559608710921035574709788933225753336704990600076261945058034881848301876264476364608942091135672336470995700432587026174348152351429586767388715072068194176379074569049618757631597841428836749641866738195618977541328501768959690230581388491001646629579997139816357104221587503525765539247168793204359998097815086461492442605851201626276964851700549492028384273084408915664231143426486004990301202741379744814416601710135447674541428329484635893177249509274710331967975077912648930488955093722357615950436127167104688600174040721806429639610149424670984343339062366233729498700903999794330084175923482022849116370814447840705327922126990606033934722237910275858486599671834417397594557498022435150350856764286618819313600387743952393654347924081180813184663061763836183435289978413960145829394516605860530508160980282579891064961110676180000857011106007542604761630333762827169369394190166115731419846233344051725051846898690562753221182148012383548033436121277596998493969704817869348343061699943734793511361398815912387090821504052041847740925796748822014544870828552520096581347273760474755228959680637782596714904691757618322889739556544843021443942229186470203494592719508284655768494471405122386579508953214639072408530759192532558443417505440483050604433606823856412080299609045896887429422241005427816676531156135647617367743314913889400850562737356528646440341624886029316981567884314282403209439350906643941061514936044655950826607908426450841195289640523590944219300301947093688826843681596035436266741138646856190919923826479062324156973699581761128870853342077141593427108772803996877369931671120535296814049918930385997431978619929276199567819982817137819888421660046351073104961540904476855367476082159789376176880939683376823010471150114220811895792849218544276589942568643267998650488022498186926852548766139252669035359151046276830215601199999273720094487403294063775377830612888583999552781500555650269395145795947102523142431987921162049932696081709510488120086798093361796568146226466416800199650324589162820877567509320115302348759052291210326032648748484385514142557656737195837374736822355033337544744562273821493247949164094126906359264507047586676731539560042157579039408754927744018076158667170055081934875801650156426436344146644046628187933089533850965804516912776487599128517756732564005741853650461512851421664808982928058547075004363687693249683745025617983344208607329846189653743098643471525069616947083723091949849670129399250246604410216488411793538967762055873543944966528758758503239804825624216448471992178858333545936928530869579997188125101774301782616283165083611920704223390722193009839937211571265886211713503855724910098893369188622409524914626841695872028795057864881578246099773728818320966239183912259690117682065562837589334849396689813756846410715492320912127319378892316239763355013487787751933965173516492331096054166570602743708372739342949965574237304343303423752009543253212487412473147515631628168832487285634413971277639748440350168178400460946540487567750551007432068105990881565933925182554324890854395585963017439858088901113540991337382000236212295613011659272391812013071385334570158160895709847485248674231382705278422201975224382865212257752727901405877631787691622962810703954445796783519947972877022295927669605729569328990710595196553057014952255802287021160989008906408572870643892946473951913741659209501936489103519843308633943978028363698032309182613647973217420958314117594904927759962150848036669957559848611991839255831741037280799061133506255028945624809536570723848462930637804580372600910700276624173082837677416657970102058775277121844764225689204606891743471780633213489097813712475981998751253267251918404658134278986741784583781685214290804197033519733760389006879191373574566018117628420687163302974966992253162811091283357014985751870214443715491540643764063538558317335813167922220541376928766448118304655691446181844461682196084799962277788299883605212070420233433667634850840755882487535859965734900184956403979253311020519705738645643400468899397306671850653519170974237600179680527582302146485153208728738052631159830538076288749715917079952116010951781166022456481513842157102936437221709471638028714548277889556013141320908904594537821134503747344876295389017649918501095332394649450911515976414690177136320134127012435302934639619775076221311475377348945693221767082836943612835633889377100647833631005635254309314690065618743467344544656477274649008580782985542815446786467922032491652865051542860963056360174255075367966887565433643578484101638229067777882783033223132847878121520827727521614648032822870445876969114820049365584472740175006087182950075652463582144098176854146727320543973213731428143332477114684914510377186526914974678710434583909054886184895037682003799242130010435035814611422805867305433888418996268365832652473442841527786283398954861939380743550998228650583542419657105722437465355469706299305892372414099318895020368903477068726803306203855223377974095342282236998023035073974210548638263091557027090520833330110046440434592913777352450868976800518836636788211171336108508421787330675538945508121842490480750386670784932596488607326591168092605147605533562832683108049193993442789946183726233528555097351345531290924780035211653090977954541013695382430525805457914254369298437201850187383113396887394008967441160775513876024142499067714165342759381590433411194152084098530092256370494249105173082553153416690575525707218022338252802688458030460095178581596732318694290804740349366497487865980690509396992311061101688997517482890424832915669459411949494500642676337364351850961969642652105133536227499990774579250089532926717991672256501196670421411077933367731027451662715292321416654439606582414396239936603929704403200154643123229534937282942325139132021846179251250004444285412421254059810394581443160933966776866168692871708027839812266616802970269164657972225350217060170798334745123010297875037763847852952828344667334322255211246611221469814935997798933481873749006290953293702615490064376574767848241766552407812989096010294341095120537252709540227450149022623102485127559876847508298483594493925157148046507991397136977817087069350211139800708354997061800564368993697101949002482554669495101391567763266467317549225115568959254783165149708987103286662406979911187768223287852415693295380237999482332434953744390699058919961621795543582130013187390317294028614011473589995491797448570005303717050138152251346117555412842851357542456320681575108151501250268314147257065069910748991466274947647010992292263250437910132559301158799436015600906817496704517145768792056955695784904464152751957897384554731958812049255178054352082992728077762938543128983695749025539963735702671802956153159444327840641372847616034691791558353150618421183783625607952939949607955750344890284983674612214597570501837310363054755475991444404030889508490988793338544930626943964461632483597302369065404570333951125326223190668009686656925114310192798905439433212202024425758455669092824055012199806014494332616225953825257772899889489041168046985652112043449035708432875203745067066091063419296946505766162618013237828566708399095015706129999460006516347156925326108615150738196750634948827851737950917136138637254576652787689242643009112994566046809414533613092538373055221602889464428735939799922225611517358574417929844730189403943405090719537416229458897866787505945313645941682535312304438131903141315535902010248191517283308103381734304871914914813766797701219578455303557383085278701624478033981198447571181141103882159344680030026996736211726858462608961913928892681082571582577949949191150200922371229564342175439465031002297187501185227811809790138092897462494337554021518672743821864932567856202049490172904301449827983398462334120161640976773105740950080855393828107924930055967564730762171716340088055808037392510453527874810239992886046939682548498837519668388585662007005850645670254547291948578879171799304406806666954069596960553979510320339780300268591812643143726038899374260065819884334433018244536079058760069668718681823007024990870008993191213539387761360663607076667844829708981060021514421045970884451833635142982729313481819141255124946001239829380014750219698460330466441474599544904275671022420528169003063551564440426889178469628939361293452365065103072592076251695538239780684966204130340543763624154446435899710734703757123186484379647925479964257105004127380149988348497548151627989935214937958578022447519145750505226249557561698319560515993485031205626734172963206898281435357976628366835283371147220422360963006152185247353263683235785109896139326311667791255104195496674303425521847345376996130828645814903306707121433924028715656790742358511298482514760177970726387258761094255345860211148440493542480958374116377595415703686360602813904479507663099521751373363683847806679453964077949366127635954686139972852768758108132709744724519020582870361541105104817287986119896765592509850585055641966090305483838116751416817158044174921450877690975380146110909183220411223510133907448293500910486585303800661610680718636716125966648266403927688146392969385149520100480306124142177917212897207757111377638728642355534703783932073596905581320070605546171270323916293995946907830767253615485667053270285312124758421680758065823336941856305422129172777906689302572788350619663915489487635169641223876694558491348264261199990392392317057821690943670468366509182138854236364055828415396145599884049665172383207476534842069429374032825501953308944513848724141804780856984906841329459393353692825388025155767971397173836392466196332270332169550143420654315667254252866817527794481570893094668225586124539427887708051283783190807403727657294068705681139233511159434186140561988909370135803560162255433986958880515383860089832508156151846921569233173777976479085707965166710475549792812845767181544534766814855965566669942334897265675588505605937286661050905838848992302108948320695567204179121914292114280479485173946474598004399919439232276447202615422387400391684932770368604652629939694157043489024487442745562753139166259310752191613842337983809171746509561678370226899255047814494043415482042261637153491567106899916376043672940089498349195872588635548365046876482547236030572070162700283924262736638278349067815735179074392027106441882185138768138489508839389754938236017820615899755342698739932438262539134808699672925835607254939908270651054390814140003798488834073101027292579586469477683287275308728478201443489661387049314400284475353018619975589868910843777956267833106530375529620977450607034337664517675496885593419402200949477943697259250566706486351950735145557771303007519926082273979266015809228718579194044648270563361988787777963168205534120751909504701918371162461068756907999665592877967598329304628179806990936951709950782647779898080429264309109097204169187842224049251570357008037528518581917821420276341809483841550352791550760573340414598458899219879822168095915428795022855658057177143434685253266965732527429835889505719393507210347150772003635377776370070237965248800447175786132302659246398933306691490181321225526214102918457183698042393238464574828967913556356374281279258429445047877663596268222175350217826404724497781041064185565841644885045676859860871197234518306995590611398212457899188985526982409805650899233949922547653040510907536914043366422573261950125528454118996674726326802428963568856229010545431008124290971853377094569562923887961337629125599188344161311494256489080035618573210588859514521449873600030023548176592304105064157990823238389422884062806979245137140172280977672833470052359910652539295515838661182718437938922713260414029456565722959450200840755620838564202941223958016206146725712123949044466207404918368641487128802390015629594514312830271399108450524861857202541059841646614130953738041789321962100487007344603077686975534729834930734409004752022700241565234700044741713031084713141985387911225413277162323269594042309116437626951221496212108209959927584982210325787259581823039254748356767451311965588810495100834709732553097769721835547831162221028148346164879474732734831328575029769520949518667614100262900612169160146385999470215256141974952652316512893297855152106925713759999430401334594917706765607842045801378317419936970407906608444597647438459687941883684659200698702717512778224160070319641057239601749557650608048898230136408961621961391025648414904752115785603816709791275089982168989354448179214160337356464942433087173739667623193187885439044682947217001259789913582434730237586291642599330250199815482365482974226112377043001875911327825065490818473109554653934161117393143068302852005204713283508473342561639499297577732945715864616879431759312415253114644789261384670531587550215399432385333763557275746516359193251902537943225814213789358241440083993174555994811105301011675666289288799336264780733503397149524434723388595216119214985867302540832513903776929372704035506112376487770016234950631159941957049835703508484501864437224626797325656733209086297640340485531938514612169124552305657597671455119612844847436381662963069681691378986951488068707560768668951108319453718237393099076754703539188029371991588792883895430225074372134972654498480548149327601613289056979804385433762774236970664615596556313590568922570431444539410702937805213389578136889571865030805372806687056869707174750460280682627771783023173046822443122263402238877577226998882551822738508676567168874268542487274713514680962967584937110615396158787864372687577306765777800468830045896758695978993245177631542250356019659771728138897601550385499267813378389641810835677307183689548820139324001576820962933015845460550291821255978027596208243187659769870757018075580471882913443001415876973062860742031361624263367115162732908766942431804375566784313173505823776563440579586765650393972799352833535899239592586178411024873614464211465658926675658030115073646786792250953495539355408509069168128679431494177050849490121709899750391595076779706451947430298452545320764027436456591455137630959800126751359498255617124969114879964265264181885036286926743086150112476664441824264463965103269918378234187669422249871061314118868105900372090924872747584761997977294598166640903980530209443100204893387819620173916108040936102146248940764338378574944574462201003902300839013268386926380485406924434749499917490069841536317673305838776763540411834506061236451247878085939434890943732847085724443646120935150656334251243995531268921101231077547605096402683186142875396449443949778702231838193539995851182782745257414827878256058789023832693287024374210409264635203497740550482602644233153687198588410477542000771607691210419177396050158893765765427340700622301379129918436542475293976114887631973659772171375304642853469981165586810285656723563514001323395907775486672624730015881705915181879754459525080329019042954764413107939338562940070599320832905719580494957762816931000592209465529211293803544137005877676230801505882516531778323353897267662538215608579249069406654383919818197370009422090781365556215724457580541985090823318557344583311769298286830473823786002031626669025422179620711172761930070908923928989909002178252053156758412650952671812382952085516732427145494572553931371165415603569076286825050373667989498822445167174708285015113297711808869738086470148552887248968876046384575767939551966863222027212450627627401415355283749188595908345340282466732833511560225048546268615939794401774831336516174418546365123825290119334869246278974369903605878732367243583536034443439318321401432219287206601506465688913472654125368881132845703065064158470068367358465425321852905255793007407658589483406359462724584767478500313801958817202809581460084650696769027867640653074552246418590704651577255733799634007402366307848980937459967356247561236489363864575965974560571576965083584316640408302841832911009663535262777421758874065134922096458287720616754005441679022471611807178589709027646163825136228083611717772731724271311754037441719993591742551597609852344536766518615436705925526876828185891976372757884709267482639508856874076195296572461097664967911566238611029055764635179603632727360252434152890635701427665828855431056478627690607419596828779867425090120501087392788681429937567341476129971972899638414472940170216630240604839115725152238490049018814257535584834306437987791120111490275412583007524509691288270523965639972620034615109047158830979056659185608159731002641830736984468448311546726381426035182294596257801634972626444762154586135850998886575606958754007610003789031003761668464749359932698328689051344674335723939780578091782448570645820824593719837458938561490784444268694683639840944805249392095628667763588769443676138836724639170681058390459959030556151370512083714315304853616203405793363441926168002692542887508683999688475147428749766154956813344701490291485965823783436894916803429190725309223808806011443037266729178101813256850596005017370362641689209692071109018252209570527091619069679132985895955606353494872436552954200018330938833243198980121608778376496886515265425856364532800236762025419694248768765263691136502868274220258250770146818899243333567322432674209153486138346636286019716771559172885437469999263550499350153422741196786152163945312250162655338047699643791140055609485904275164959441423024867901621666817132872097913968719172470180203940675800489938836249760513660637999265218790198331803190687873237104210657342503853576973827163070876059687103750727865028514074016591443844661176137756876054259279371740096198479452083369735607849590324852147037676798489640167039710871277575884793992107918474966270969768145520586963585723618104763849113980264058062984252270663851839990494944725132844427468585167800159178794019683208834080980659100556416078365722902577660030727834769767334774592431365783805109834896439755224921714009419934692081761815426715253057849614583773581381513260403597308296201734088111138002706136027425815023629464709257195255648808584671734404092406819728851679821636780941052110599368948289299680410747593114758955238998554702940284024049436367806752281763759914746153681307058044189708790993971747616821790950499083745306819892029022258032818044570772431943676026715863676891811242152902430214828803042090219415958209740089479461983749183136302497679762512222053768404362567475990244492946192815671692284732087625586527956068330495263877090368588504666130979086387961949077396354276320228583358661979581055136902255212639750175117554034198715315174277497470167192737617221698351409611316259811541662411520401001535389378899171592758346728999282369610954039696466174177154769505711738575235228261473110348106050325249236271905626979009647623391218372510936656802367408780577927167937270827539327730012084481786036431647223514674148139757504244537658627034630754488905240105200769560119358744416053089848063235903423394952104328929155347288093792227562011730444307333855791929181913441862335850528135623335130850790300011546537703321284013067412846899386377013056850976424980479209338136814181245236562655329883733713552460379880845633017143103947288127708969454010027552241312498887527480954620369908676191989395908503412334085603975786815444154449696747693404588037557752415608331802259596138544607503752708986561686014237071885445231256267138670565146199293649264184316829443827940234937606561615736814481575912977048102372608844811539666220120892233754053454376770759138166145797502956217768292695633043106266075718221558253103060305097327904587274777753447383761575294841503531699132118579505902799596455266325884937011763574104552903195180534399329778428713830939863955078082226990532848279657659885019331809598020555150835950530987400610517811085404972073430551504141748287832840460376927641308646894075144411227853809858793182922042065042729793446628253339643296344611060510684894881863952501054940088427625380239829711540419753194385738126087457805744895146874622850733034449328474538283015826849886513140768412639182960440400310349606052435615777754263626490281920623947791953244948682999474902222311146314518752167908027478051964483063016599305308469630420750699494341662148601567944843795764841514940174418709170111403014612924594839693418800722706911521268693737185141023838943745058817822913988531810086723203231109639233941507995032794009461458892334137016077697808184447832414452143491486903934987409082740035342780815430402010054732701765722360169314287891968434213434705502854806342359699145046479736129461800636908847686199482333435347574736368597569846676127706784817814792995186337894290479173512349307883657055766614093849919418676875064962051306050881811198313808520511337510259867518499630436091205124024822609197820653922683562129645907101379483001591610880501287945937778323248527593326250293256616245526834216597924592281988450333869839235732357145514284054225350112276869717238365002737961569802629404280876922487178346500302888554159633412241356815562490987096611575666785132939460048696476158142289859391803292075490951163229701941174903824122188603818134379728821204435486801495375300960743803941022914722687089505590622314701410893028457215661411298165656381790253844933078647735962198305793312263286339967639241073845653749027146071040523751201909240849330203192392476328220742135727148270081733217954914586382413732062667524505635260695765340116342883781795616950140331915598594125077536557057859546716934226651226923971408193786865491132267895562090209078576394863184274747154431556156049108039998830358596633927570094472449995120368270356731630841963102830318222556401476059633699295555217979078847483207185542129285371963503088485202258684376700638803880282102094223113556844441743019359170989781182511479032489459006350829900884359840027015650792846529039561134576844563362778034702946026362412998175139084884698761505974533860417868325176983521045700303747760503033323399830060866171873173963882283220191937193120385932196159182234278936337737944704126098393268853487293628847191835003512900220847408254654001727630312077917853124935600552087020349337964721429846282079088511286777995396516393900065827409441896299819565901534036526868636117986045491139029384464910031814889860121136763446703321552058274279371114144688227315462269430899301970275246583231836158162611494610051218396295036988158584898844723040620235175281765861956596597414688638841555649176552561850300209129827996626364029421059341369284618720828043411192066609561488240899204246576881755385362556313748780846762098152302119242867791279801572981315411494107675070766940493344588979172239396057433313196313775475949194550447102042983792397312705408288242470617964795009388171530758912124573581927167401777989788655637616887245315695278804590185093775008211747456035120262467609280658639163717009412349310394427270873155936897837401437421855977385865097524601606539859409180187191067891721425346897368939890227913575122604397575014813429103210577482095386021898526622566320664358347239425655168235605103042713351670848373416902172082206271694404906403972129398567619386222632504860594319692903434454889556639152269903938187834597055569764725269511970772332972805031127747411570151826424010593475009801569426921586044051743474365368438999790203122528857653482523888988253760829538135301432678596870847040503972401330891098276185257671180808168607760446684735734643525128586546419985841210569300133204721591857005794956339932832850580528805202394940439550231699671923747848731707764746154994754511698431574567801454332252685402797631156007169705092743743313150285630226101069200418105188727274116850334063363839733277126088106468647384956562963246539666781190126465912429857427431288268899563676549061717503267247530688798663936245063314193061973000910186645375751524042276439495684456045915957878121530507941646368280883564567155049934712290195852002564182835413648218711115867302843481791005069809241318344021146624793347122731985118610827741924696285643956413016657334061862897782240128299316127304006158029818956187396658125182714008351612212009725136548445919556657711119043569108376480003142724072574668586222354508315509331562865299050886339896685502064058102202144912871421623287894943187472715633273139933462947966217047991587873010278155503403698167915998836604381087284639478481893465843172037697081974359680615571187957686636538068828627021011258567243978188292678306981745620883391908021986112395056152300879322393870708467774241795590352818702536303950618119645735924537405391937419556066794670784833359865102135787038294055940178897207533297053658571475238000638255250716594237518418001482489074308708205622860460693591413690846421929093431042336408272204588310748491584763881361826166779644465335860325426554374957065823789279614512898725865894001033387320226794024345459313039792288457511657581498077129733067393522607979693297813284337945497281632019049717685949257370240129992315625963772390349796431350005892077766043210510104261264091547635649039938160032170268161972807249134193008071622464854500927037409477542396351500588796357571755203255536269147421938019319959827519386325843400170850148550252254262453473352414359776146554193696843818196153274632940757144749916029635004147708168295408648987193229458317853550186079634919872955064902537171080435992869006840250575481633739790480734737515604868479055639491749987363268867988566862010775627054384014079353220094026641494426572926197586566265379100350495071789170161329318038948839318312453775540949676311980005975522478379310595653552015538637605655829423846922419341426819099101220098764607443944725398304571795687893642576443882324491698795808668843804604686811364351300015345549716448120247221369564564814528390634914188472989244912642041679765492214251611630890559130761891828961624965666615656931275954190937693612041989268549368713476398463191009535230840833393932380381257126754422131389593066557396841378143904568198109820342447324423289014789797988112201399397603040321513367162394969209364107016537952389455698368133868920832451147888291205812438927420740202460945078781754117837402117894932133137504750885080457563930539212988072652948602715050264451676136970000503433896316266927118152296663909008798737023277027751735276413454050804351252474213234106354970772676984190812988884728833492610760290330397345314375349827278193840336317848986092158491267351212203884418244300633449025059384249763866705371827368136669481953438661723384218189619970213559885536715143779747360804696750319681099324916250830328957331964411384900125306824805825360059769510480894355680167514249461563737998262705735444482196751836478035975425802612296971419039009784932651453023799374742539160345036972774691275064192738931050791511644135535410810820232706139048822515755546134001840945446501250376620757416472160096343242927749691309737719389972084208722928628834175438528540560349398656786613247308606386901189072891644825591441965083801929542569438931054293184894098430565509199601252404536521894288885467507424353035935767669136398941996397442806071526324713575751732221267483086020544733288168133503221070508280259259462680715988176865081790200713316183311737051833298223989883630145271041508753023256062249738258221113237883369926141167163519642080617587238262946675583390563354942110469596751913431843257791324670610181266218719973031954161623438184892282345834195546921831517738609805836503376285226973907134987292289874721628642449894871825615276259675719191618021128774625546715427525795180602846444352757424578064776882316457387308416196240787195030327115245142762383202752973934469559116311414376326041650446303917073245643360129444138362909377112586174356849221846777455894298568466015592525090264470383537923076366974738594722640137646972744866725954859202269428549569295163826495710886715668740036089710107344046690734148926779028985386284318702725767406001589100610334526044180795864915815065679464142279510096816844144666116581974001726368868325226297494309586980025548535482361813162034135899371219905549849252524579204923041050153408773175043190500916648083711589856920697947757620644999046834993534064959109883408219201916702053615399209965320844839560890923877106253475454699803391643343661713398690656554449822396936138084488468698143303472389250857492844606909376561975579412919055942994498058966705895286856721293803749479262815696641356814077383112981369545066122306785077957883812096186226413777350531088441869330069192108659482883511178208775284344306707614613394558008156570014994486732929002819101349760365928798429111041555028714036464009615693524631908895933623813624481978477904114914400700423415291916439727707132094010583595301926247125265115998118339402314922603488222621254196017352022180355200166178812737459138851412861784923997159532649493919248566770308457231046734320405085553981607621997148163667691198111012015924910008146022459919610955015749199748896036799211662917308155717013756009587413353801679310027733972258798868530059011176437963288841292526293073521306420262856421858663456783479210810172332086788066798596451915734728866404451121686667451780548068498090610271808549685087136305297377321775614089610488933504924051661008069931723578807717571755875025535701089792396421403812414876923331035925458784429072169634143667200690214407523301389459767761885257286764920299216820459186418377247510735868723537367855122452549915359055901241762269069622629778416573275189077797376634220365177658498686960079366872282716944686308731670348300781956299237719260039351773908936911372535763670689262215760475664418177195975769785147288947648200477693980620133976232228467436242240245158051107118445701702100876708904380816801157110282243140930099210265406977657330672142856418159104707318314269931176936246573576600951144195785620027302697423249593617469720027595245694020219737067591317025063370820160749599230689875273802594521876708297796608483214712479191513882935301361534981557191867236554570358715342256994667791893168281442759811632582241521137682263107053039048632911843355152483620862780958849144738232141404376523775880317799474173068409388363897645272582380618032353904798974800163898847059499916744122331441671790110910848098142977252965547281646516939010154830760909883847389294724245483650297892105085290547677930384547116188116172466786887290083129511511086876722285650391333178610172324174886208284978927701262134560210148333874279756841824379634766099576071358410232253692336950155978395817626957181417858794238484170313671725099004891750831313619584362395413849822734920714897178920345769353384235451857991153783599288403285165267942236274466525332303852189383384730205738685564107893512287570303918359010127757973109748191873461102053411121595869807623965694481594267208982785267149889717900439171493640902203736741210509767211993365202962216957487532453347186872563059182966860304270477246934611129997660048525449100692694313134153181678502440603768162917726068364854032198075379949110845567320193992773570163728079375027217579604264489190511759751192101260105643901727687282984517954282960065547410908931585888174892619218149796084541894257327203243827171088580267346933599153441768105872638913283021938240931230535899212897346468175955097938811907431842111876223789781913525304726677552491637517956583784257157808266240180019175473132087731430224620597098701889575427632763242660914015917803124392400464709144281094980063377416139127564057997465391494979447095773178283888791300386111863121988688257466790993606259815819076973358805240590389548579984033699650328484625542580137600154039944956304676634854728237732553067709176451952373259186515725293038297990623967044449740654501186474885855736796639289909454970731870922879592461215523743547810040012268418640430081242965828285784539984592610625473876479326775778640714578425268463992697560610162446238905129069061439707025928951738320526766330142942773339518789698860298652055082976484859920401790349880931759449237384636912304880218286800650251560590932760847101891297938242794029354518467856700663212704377011611990814466493620788732232105296204689788000423467858511777416558141614453627377425919259536294334569485997086976332751262301514355156658163435613827797801142041911633962786326416727720842041327711761216792060787419199038451505192309417525803101815056606066259212558521067695943821839833883035394584002046270217121880729830139634556686626281503201667541102136309697759951705051800782264093515455070065912510198497193441171065410351732839867831121951755768308555395907562613759136033560369181580216264516641455554946148711066549756332468267247993561211206422495170262594266998563985308350258941254084016331036141599175143966937995791703443309359248749972150073097882892056837672358253282340134518255676941026087013158279659184486709666067301803906246640950356945254322270610077326780256877279197603241620422200752129325256735508197953001500008273599266775695048933290224494237792795183957540404700357696016507562517918214254551152354581214887356455728704057480112867775992002755211032205504920693023150390882239625881055183759053062722018615664085318874730843062750314323023429909737980221041252255471368697513107517936569685819270007669992954808181557689315164148641459049787316216029592088802198336391048475775402764896296275924358281054850201042906330512060671682225016241107440263675732024214355569478552819803887398755948160709349231254433198051110976772113998071807332821999459803201972881065620591353426416318529222108762105190068055412140815367959004751096739492846186653594128407109346962106104725373374585085799568312484986338622286362283311311909551713767327670107813351592055597396328443236646045970951549550867959717883852805890483590051291330251746350504969612503682512705907867917551504585714941155225345949304729415763658091291177604423189471018818087604386351209222648027454098987348379816380842295071441223854095355898255130464505043393135913233791672043007108872174356844936507912762350426076008712404273417979342011336903380575414944223446514471413353799510311032425292156758406489038338803409507860096129496166662694095596278106408519986872718846418800085296514694323928347238541675415372820481180493041862376080877072118883252747615290348323385515598679259547241700217107835599187509235601138455268722489860630556034863119595524205097322648685921433569939433283312029210528413625700399466975495912434500123628450995971042998084257483606242252031466029666196270236776680501043604365256487695154954711068334051208330616666950022185190089523282920323172710576293903512881230695475841910380657216055037240783460421785502831299474802800288668350092984726477581039838060457912709975247230855934650753044781988898434529997936114721890731829054261103827318233307441740428240532919316840122274944806028629676849989165352214520256686953977181144475753077062055565180087852534941830744172600390758844779357207742965267119296996101970640880678632911984756819973944158152406644650121793325487143007594216984606634078984966753032126356368185334359734485592799339931197339983326382213385669089154944448974004599445087384982105091873507478795555471678264697366622729463176563105291859243689083701196137069650228873407910908043894556463037212532320506355523807386352681434482450017629204599179353590516180974336557665488541218254627939515355740056312451967899976787729413322432110891888339437621585722121531511021727255504367250133641230069990647699633289213972460833640420063009645721092366506445875563347168585525663108133996223725575562229796473985958589273316896665371440919567331539339994540529588402055881426518306237821907897640008927533159556758638426738784434243259976328043278890257262438165900273710934623376664453029942066695533655257069215802956755165728696552459703567081564610798317825723767081147934667359671914731952183398306433088070860706034792539736463380232745002363800555800214650723196451326359811231325942544771794100855175657211501448683504661310525085194944902369816014336650172291876989754186289591201499352433088464479000707469543606564507878891512016287587186907918327176004842932992430888576572262718138028223953077528366253373538633075088320948719589472122270680987848212695081291346578166211265530830326025467359268718666538864277680544876624310130805566158931985072691855724293956509644123548423528704566301236584567507302267466572091674965281869550067057403647278211705473362002178190381257939459073594392075981519245005887922646281712083522981227942804051252048565048130177753942631437467426023728444608269298056188451879731023490001775207936573987747838470238594512279663831178515203087876224650148489577891351493526166546006709043054538221732723204198319573296368403580781942157814206098496174208573766774043035193857399596602953169761013005137509556896728404062648670938505577554449799347044882361363157620657874858141051588036519286329493641166478340813781643174929128665405170130539325213742765546532880240850497517199265277591212583490431826463714835374606000129381012300091589147330388177494529714940192814705788731922613531794056610757333707867104815224723800987923490032598855442733710974839036667876441555037324812905201029909562994365405057502695245812857952778350260368081723200285305843128901013061754290710688649384609035038692093533439736498652662325384160606747823516809443904669778247755365310023948123279479525591535514743306164698982669725439671916752469407584786299728331520163261875411994535586307536952654087163918353379093050428471029619888733536625874537754651402066057752089273031657482764969339322040353227517560052814945172938169936593094918152292410759536252209102144104631780253463703850990408868177744204508473614119768565756055716697534590603253409261229839145087067796030040493030876886942764326660258725546157530197025198035718293570653584597832546708888289184048002903727530874240602276024195635721449033689724986203227610185633769455028325176960563398619547378994761995024172776108915420087643437609078461491762676330152765225537034816266549405992973036747572197653542095691761119561728432557323904685917072402520678204275217257145897134719827808477770014853994092227716572656607823076432960965201845176933783046975805306286649466178573059176815100927108357350966687137756695935357604207763642623730986393303959197833693423422725080229377786055093621113776194978517573270292631192315198257938779766815053939050485354257603408974720028414027853815951781219456020331017741211787658946318641673205386131184501965210617697664192538551979553848149263518566117070070171003036571856058562807652378522767946612652894394582147668652408168224146805905745690158281888839103834608185801524765551349239219783822924609772139850384730001769703312069140687761796158338166482255201738142315721887592548974169453179500558774068001723731674321695742503388163650762948481260189171517833245109156755946546888003131318772810786121691205338847211616900011542509658173828016501326456731764570389680670367110264928916717628702503681591705161888590143892756391119667923915254212722198807286065697727780839780366985483256511702826751706182240465122151232484720073038144062324009173640363151777587128964263657861983963301084446651934875069755414728465113947903903856807968938197118455869139104349273833546857969006649722525712961338035487224622653914582497279431783482605608877483224143971478030368541613312710738725411903243092989986367801992249455048316358906016795793680374983887418920378886640577801496677401458563955350334152345481218411202942390314202970215752549119533208763120629847971241807705333054812769621105650311868242713687064080635826323786786749846933459506967515383356357564462345096704353081749555873386121124767467026843751854386892630298255052093722070756577680687051894705772202259324633534425476383469925076698326492821008400515134097819348278039486677627186992720701438649698709503361319340700556747588161796144477255423669349261130013009170352203703528037735083987750617918234275281507621304647993202921187383244147422066381168066274502272813758387708084683584260600390882638088936288171753726893960239056164089612996309339571643792013090346261589731285498873141668923428179457529573085942958061771128007965472531479632403274824734888196985808834322446622315803589671765065689032880533197154451488801780004957211014056669995154032990145968462839439564886571725486510912936565404205190229888084880760027291740792401169589735448765750554641662451777379714410271328102387821222517203424217574467441648195861065142037888399807401086261168578865328115966945526004656077617719250960667377073378055036213316031387499985602165762512893706552656864634492537897400579268194033768582812000584712375961983328274367272058564615317360774252386828806366859897356094934799734912079661692258171047724759640239709303015885824531723997501948986921543506776445061202331691721825733902755964446712546446037192647721182815146625276198441910819442184313475972479439047695580309449194883474279597271034187493870282294933165195673936957951155140153563802570793352498500855930479876080394179940427510834553601238937872060098929001576186931323080803387516728648918491889111749438318041333612821701723386707899501061663998077375685728490086250111855374573582957268917079336689446697428154128391002402457144703425323986742815367035170880981375651825189594997495825347510923174379962251163706925408320981104263201833442310690312676211520370513907443038601408080979372662514046060874584193886217841097677868232288336129809048383581159083900557499441307402478577011163282876289294535231101759610147789441943072166427587123933880924143750518144804146194217217906619144490202449416591808901443377582439612620724218593177550112476199947855530997140293591127565000693672321979608352768099619802372224697312130842627827584434649977586767681669848399867330423699552132203934964152389676173637085755111405472438789304709639184987806865689196375250134011788816349746976888231736926217749103266705319306271395003890283846063979704039076096865670601313580138418378950227903022901148181000484597877498105520699196907281451565573060725541355700178884852296800765355252406402983024709535687417243150475999895076618816224377110898070167250993638216480956761012528386421702950554512340443702744760421539346627071440288881550662809241169765417221706835081285701388758868846278560371469325170064035482460045921331786586392645856404992618905476093301647854444374434699330820761475607052815296339615067721954350467969687900489023491632128091198303492220713769819522132698666532087933719664907625643004151411673930920709080550412226400034174056793542238420562063907947906152505498410480565537155757018221508438508189956715489854610511296063465880387412353811569980599839974248374355225389864923487532025264069741861264868316308748005772377799396250836111580920318295360319575196359369000439024065565501614666930955200248733019832605839424319637262304404281045247929315666684347115382333484985704868317167043060453509692495566334111868392140105393672282943562548579170348214880617325864242742763771575365076577844619644105349392022362188916667869750571320163638244391996675498833600877451519671221618773831919696285070164810238906247339450481574004299834952370510266911386175912195112602010775854855424654061856913748136787925488962800970605605779784576179460800003670947096372210630723655228582069340744895254121675630488640159749536884180003318505066782570642233993692676413786097311110688969466318549030529199203804872118603380538817135322084464563996300992928204377381060557461845535584518216235616143206587137561789458062943747171183914447369431215268979454629553708540048363850436692748130831106762269562424635196924967056725559191110420786434641431042668355408970932062625980015757539355322310660460498456597550544187469850133979767161330556984974250258032083346636913690757718516268826427464318192685800097710614438500652042907969397641817887104083012907313023418139514101910791590348987350638206252108203222655317225069705807987995593521012653802985745762476235700106468881224078332341790700371342522012777956545965318012353446233359351729342152627800916862320781858739807691431476200536263344897735298730066024021050930543737516363333358068926145459152387021990655387548094920430761660597088515881553203444247010355774986326469185393468272313096514511646262790951271632658645684661843890618419458910422487253865724324162544374019435516055178495233954966688604297966236301088945019824485943615418774534670723664628215294284804977059072760302408341915422687209173468251019729992330857073943849592542897011038712173442523061450722309881400027100789438598619849927330787002036478367857182551313223687517088957549849444941138677914455689822481705059322578493992332088361301726013266243213543629694607058472257766574889471316570621347419180434540844961592755068399102961516793968179726922996412576744730076302293239970116723069039648601599570828844430336146540340943125814885807871201014789516521941362577060585449051130099803035887992566983623982323732516828596363475900630590594918057337750964650440001297572251444756036172711115902448913348954801469050241189167222531134883452801159158723712309962419255876842596408422780870896912686148187010958226645497150183742651501497405179051243342197707988526140333040280568448366437536947608724179779825680158179783317207749264408096845469234986682790046195260541102774890458767563276175667735474811201640073105589837483160735988992268010044782370151177812969126604332042660557799249255285958976472487013553957874707840682928880146115277770066016713067995383272142528343488639307171413001047338950639280392546252251483276065483051462164540314458280570945497622623819977623858723163597186744677864336928834959943763072051008022307748173046644142454191133424825543772708175964301867896429658871800952273764830455347230581246580889510296700015481807511676646212426974052801291569121745490204873036029362469515250401241047611225111869444326235360053274931903340753665097131813513912611777552707756706624500454033451682987982104734464870116468192447137732800097537253002457743610160854805926990094422869552925177975439287359641976471631958621932941992542456962628787758664156662546881022683467752186465054326888918528014056677165353590122731952354308157991077924354287502785647239548598593298308452313914866341718930285288642720512493624053067870516127283564466078507625940686228062104245758121788204985825674603368242825325371987865420763734263849319040152881784799827379488555523986486999674126762750935440980180734913381171806753901396358729168128588268871174121870790453445994523724217755665377009535162731270453299844768082006469295762575634059361539667789516311166249809135223655315038203144003222629711083031248764934113345740218539948435506933914402959304953328376853524556576220365804845250899842258925346261354189691204597816846058268869780183337791574897967915720628475978249717180429600901132202923066778852507896710963525786942056037103013199559167639097952403986491525907081458791834306913680853434186261965394619154191638498381852723638710324806004297179143721731317430225585769224264517670573243515292917394880861007372321058527129722822365642870921905483653924213519198415025646594360602243780927494688427180238915116921897421300519148047559403607389126103827000916248944325847445923186209523377584553257029920755965646519310064389450559211464690918153882796116539840804615006981078933618192653122566004240928336728443465939998854966094459698288767882126388335922583601334358965793359167305694719692398601662789680592453959764852774462507817351949867615373448323819979021763328942071592702330182057430975080559314686192644337937150741730164241769585497919528979746230941865127106800094202540409843966135106304448697520453770580885655756714031628648017158224888961543133174093315482971983714144559977618858341797839020997078811524026815951366588220063310809801032725479021414374764328148009437968630238126758595515209452094153068483571311969032685068037954204865324819114334614875007134995800862231490917746325845861569080873483448470716837949904197764745777791977331915146163095774100126794896003822491890699040297391960307103822111182218456654918133682468735502366744994121640552057203715031026242382553838827945174873364759995703688364132240445263317817682730556045630829740636035716020751448417363231984120817482100880493291240221349070443996145004372850141619376662618260598784130522620318799992583682368795986923773735826099891246739199395665536923651861096072753930434089827502828054180465000262741897563261236278602341867694275489233378388708502646035620511361302226905971904024808378022491387816526984745809274807555467969629606017319374720447710151292942330676681156059172687893616855831476662430887719932784226924192040630086339186277601077296855663519842460238089832279394748153338191775150157355199089899974506821980059902072426415818259417643802364823505285199084708784695785539496031837241206711685574634477443177948025282524460911453595094316040761889245567327926970001105245007260359638522500262657705814671265281925843004611557924502607759821768938335971586592310892541099586982945487221995030757626856481648316969269379799465124511710212198925770689379757276912496430592517139723141599286790875401111807934797578097093243367095430211984458714631025880552668079950202017726645007151229628560847550586355339418197079821616434675411276713977755062174604377350123529899380075234423795647335337144405775051063277889872532713302771757920337613610586882107263202500818115152971815387197443920820275105985241498267296846400683785305610884100707343396192362100991737481759548800736809870153767835114454739853867512225113505439869477668787024795658627966913291885530854674390711232917937538651933065337368014853821286670720067609351815973138339227504934507345887055771248923958525184963696940244195654331447870279115232966234675511809495420362910456229345990452298722860458901522237834174575061724673414929831117870747628809233170970337156166682997844163607911855529380057765298269476925122454688976360909908064880900360986646753941579860948738436646610696365016504310675057256569043624689445152229556811074229442494689741209231814057085867273733588157504620824073385195601744723525029129533407833172928230068937141511568064437907179111043605662523090795505965579549663841063957236107518965201330762724393835836489770373769373709498515306171882469898544921222479708874343582121396134522384944200842155742677806857294606800837490382643278700006285773035211939131632820141379010794527105773553918020177103431105977463544776290795170850632223628866021967231725567006289300847613515441977843182646506833392904279833908149079843780218410000432819956355725259017227815867118720296540428519636625650835946247881195961533124074613485282909457830774415909927785240088998472493311476996202794103350548034853015674662859867630093286461597636737745158850475925372966694205460995566095870149954198513121242959974833813620559410923189435512222949971806064578781725665320020493816382762734088163425579747734730649890931319278249358345598647585474809824248480269234106370026627591332983762814741886495593082502345787081970070326891282570065322825864379187393825976035693204517651142527108574507010842434159655240024642848300548376308253517244873025499400405265100766219620876135459231643140050939498258814245935007712351119816451136830366631228975042219877454862856890276487015985006349146181630654033079025546855300387256573071284451542272551827005707891936650050180895797442261768950291262082893629001944596184907350438179498769545588592286480942791597295573117952083833833797053941435538711686456003736923808172435888573691188260774797568291306022805524839183770379359115520410693848916443693332393174960252029991734164495134325278879673742894370222243790916407926242793379429863113779065671285614273190147183720169730311230709224063501996934620531575703233211385918257938082500973084525098708046221982266893895488784724324783859415764865853824842344859956387582384073346795980272013859041549258475823308117833333255929249317648729053737173518426263898493448059223751411882465364145197675994551938026787932057346626147874956183056892697371570668158364699759504548887602668546570168373183041414309300105925646964177692225906225211183622062838091498367580140491885694001670319814966343971312748102372819010098223559155103197991454257989264931928767655252171290459300758052055716541875022019778392756581514103126234245413198060004606035278491693331559263423135619668934482638703777291026102134509959753274448612246595961577719840026589271866249899845548350193921647758026140542087229168525531866628777856493397938000753463622954996601780753759916066196556183902460464322872544703096964711507660235163717482369943600988627198821201043150841143039014833595575128991282803855295114975984839974813181735739135211983878828092315832869653733385142293946107516069479759769971647866213930885477546427804423350628138964449662453443211241185123387794292077772401720139436576570332812039509707857256974803920992896426521599496695051940283815325967016606382213277220988137538708812650476856785778304875118041444293197446675335396279192921684509503597688887658550923569144100736496481155278614728711231634532049129027333116734817316942632098401684190006367695142103893640205749837865534965686021207480824697741746911038588483455846328368271370471979918042457308930257428595708046496286410839626796334275457116403338915272233808719788472807484199731672648540573422779239279383279619367312375000625748995014079057010884806617528383885840525771332236005698058674886421523688089317684493366008506217835505221429261040287483630225414220743120246910497712925500923510135484043674006782174136168129567261077267368742500663500903983440755891090785558254665496270569420308485316550128639971917661775674408145664113348162825732430319197827708886782185702209052986137476699621379260613036086804892213975409045688261702053786735587735601364250212435605548556773397995831295240279928873664450403360765391571491569956451437045491698033702406922742304378396956543799680474895495637865481307781362610496736343033223011234312470393535768907088443352656538352176152636307205507469970232024375037410443870782790905409614087783041932942485236519930607092436736142090844418412373174157399007518047133230454582272493102735321336968613060995581107810600109951672347200378721311757240698112206527209443426598724120630893412948377080183512312246608751392211912102825735538923949178681426137982448882767690412165485012330322185028117960587423594076138733239758972984708817770891077203115523843225417301607680735640034171505248179090601747177471323610833462939594294955501720684016251584752304307691159750507221788752456523309062222435189666928456791497665296017418621623830871007615337140423804599553612354549739291621603853320914831738873919565273157995075788027556839758702660967172724780085119628595568435393003704294675040131061539876578727019864721109528850187415637188473346313274380250516799439783630416331754286097310897629880256971349244545442393224123993298501138762855357286772090296688285328030442158970573674329511149872891222163920404011597437267079268846185560003535559461802551223150390723374326667767942337241343829803212096872004923491042075369491097983726473509331770480971688693667650866939452566803189411197854917302895803585589558054336548317310334691319248269783124794855854717291128138449651204450978336453760373319578579871286999033335370223248015968735834426675862646214891299893428661281764036117920517266436373054326958728609865322406961811000189564304980724253104916536496769405106325824614671614416013314791486893211852485813758503017702766915809119313678256337614047674127918106950376660920811537389217945292327719195421808236158337273104486288104012249847253355435694949188906313507560916170346434633792702853514031400109554981083961060525903949469981297121763307324232809233941868664086165710114459351849039909827913968787460473579693649617815626296886984176719264742673795149550415881136201431627741294052135090842023042521896511312388718231544461019731700247510246377464067163567854492711996976807609303112953340816328499311584177179044665219684079057306490924428885449175474997245050262550806355044463599733076205403694019138335867327364972200054454210532379487361722018240565993144052194601385540627148263921234945962648776900734541339707579427429263409429577731012618865907055109300626423782059108854680012863289084837680717498017916022834648160954890340893216589695404768428838678958639048755628636050006791662857024965448946296493864021645666919431550570009898798931187762359621112250116013672949288969671551321830484453514027901321124845026423566453053167140569544110736448058282545313450268272241561603713663446448217131432043029142335474288242806755504499099135250865137739196530528217760481560630958081962970677821279026545487846787596425729321050366662957824529271166843821738615944943382326162160625657410868400846621172397258831173841993174616757745107170028403892565161702679914434604618367880403179239992925826658315143583807475392374766576952794399903791992754752770039525966494688756350976458184572211553864353021297985498231206023206482171935863570852833284340147834048791399260075945698931212215200411871285328848783103353960078223104168260588171541948881446431887337901345957330081695228609013561413755943245513030484992218063848645220354864246113124669213044347063986052162869137953509556985952758946845337728602589943697572805341115188306396552400558903168923847824355888964000871738055449691254217731284163401928245700817962992199559268538661502096321119501832735174447425045641894651267293235439950042918043061418429002922928413204198632803966893020301983822820855469937416722786361539195246210160817329604701252900776208669800075531161105997279859170282133531371751387490885279032863455550331717647402262300938164606407131359171454555749820671278947011093658269418181024976049391815849619999499239172403313195166612653217881702437573956908408857878356351662303819921441915038974825654759028273978128617822665510150541599362264350914431330870450118349409319648564682491737647838515586968687998252818089776954915796684286637063788700423659100169599483292550188022572973445607500139944489448126877110374774542475782929583949427162151826418576379543441931528604901765968903053786043625177445800604198189724708858347982574879667212181389175956939172547533852027527902108362774198233069328910940668868056433472592635277123439188440877236148160759381713172455268031423573950387019997784095000945639749524614902676681566825079051226225493494798706599489477761629815899831805076930431831032942973744684423738577729655582478874210532481941819981441720465692569244764313704878763520158385509631114469724263698871174317143515150342842877249592762629363583443667454758616535860595421449536490124273795567014362038881975865483497574296720576741348013086276754590808258218378284831601096752337545275960308751137618816619620363655355697056452952382765442800876699458402364506276442203950133395666414199216119213613631510607266260256538022631491325258476317095049303444913815382174739560808509167257172563109066426098085293712149047882167447770392933648709185067439001543279423031176131355656071289545834436971267217140417257226931458036125471456421657610023290447461659619171516922621256714023936800410124473100431604617087211896919289505668425169268654220738514756122679568320766406374779098800001543805114289267362324415537050962613695790772731440206631083554284300122642779905544210776318315175103064570376486202110666749740900501805453286407759137913349880127777745362001966548447141516371545811901148815702570910838811472139173460345979632468963924891260161061068988632065448973201640800299518876524593780198429202000762599248858703834523674567660523770378602727839940731559978778671712510979969576328580587752866857388148861853903655750874158949755951135782642042676780309101603336033640987428711184383304481463902942125563962794687953667240520537200462199517738391173042930627491774728470442222091026806346384023781969418288981943813301007685545009208511865887961322413868701638025755598781861387747293533496267189713039644026952686893307680872358622081228642003393952404829234361367598103331042000066410091551791139352322470390812226265456443182939094710447736035130895377885948196437022806808533831947080078852810472077838358244330236951200867909663886992653286406422660969102728940382656069829716129261927374482958644694519187152977884964955383809444771360516800642249914189085622924723658435535542805701160911570225808143567376504222749449055652803292874755882517025556494264913345330835708805238138876330901893722201767747984620685053437712937224118838753147618482385465828521121237234118704289982473867464848827552473109890298654322125969689476497105903571365407505411975976181583875272212627872489589259643827078071598870273990373063361579054650104501173481125630346968550867888101597075419282972816559477955132269411882982724564001376542734146699212833057105532542952063454782724956302773930257263718318059193195249077685581329799285163159647415819681960896050999720841079934881036092600730990723458837136504498519481064557480438660589503370965411973037187841952993548171119246931622238529796038342883870747028430465576201281617550500269075886719257410603394595226949009389476020315966398666313292693020034496338214371107201699696076293310104989899119482334204552582855271657012795852364958697509519680719699837615481255259853824564545156570965236544855924635323707253643811823430807308113419717874607740201731535356590439618790951854642545778609810182784339939677892823956387765863011690592798378537936651629418682456536668850508875800516001970857097367653883071079051315037307834419389976775547010189389349196597069569946803929936105760483961091886094603145226839956942595845495469885396143531479391234346222628816615176022853891944063483477075691264695209900678419617694298592105858422879122136755151299608476196011082682695703993909457779006419952119530768672958390590196815659524175237836865654073162232450823727749624512209367368552001734773182358223201060330400298318232572763341216076813734166230100386369573379161756222748901718115275729122403452824188013721517754856845392682175961706814754062467668030774193733123643096453573062296676715968569926130369445861454092736760803634700838033346903617719434995286650707280327818872056300812855696426822329622165708182569564970597882728891800477194984975773298515147029981126235867729734034985620974215893048975161965597264449939174120511937958344847556717576728667193974946949584132314057464639557483321537357815462316076669272431274666313968553073603577147222185717577444734793431266770411720260511082161964622217567952215970269500944693305872828329228119964700691813560439082420438622414111093219610074906764321249191733296431929076502124271780124412750183031044817448513791193907678494320715048536447259734681993998577112238616343269407479211160154726021838298966134823214082673974197539214086635881277246916447260066023401117928892963556045404602067207934269449082985863377889573137986301949713374647772009940069934116175762131644530460465403163559887862669235830645757831655404455534382126793029360930836120707416821511475457038346179232824564653183959647761902128758010192914112676257802340077534558727237173148005887013202522223693330648019214123026004351523603218038956571449079612554084972689719178172974751765050743028548627765026055730222092791476966357653119664510944396864782124631346017693377636303670314692982032313680571696413610941132601085623161114182552140761312282997482427432111253751785950795396851538083297778282913323215138296338864974339208364038386273314232433046051988860202878623608815742830104488839253557218642753262780379731384623567688550463654968569987154223410672333179405251278315843939786916938848657868069740301395474902987534566671038295501535553141131379089137772888021653840702454640445601901332441877466349446154461595931347546683865233628716919490696657145161041390011126429963285567701297431172697201355672070351376481189124003610159055611860420293783920126914442883325909419973988559436320346246941760096715644319321743186287015914337285399966159776099317233401288800416472451101850356805053883313229913360555451898237316353479649870479396944501457471297921523777914832202784262033051999738586225178744052234175776999532774997591481012679355033540305366068570397042488793570261602537570007019434807561534645573068845365104304721765813002902361055124066705807751565344981947702040210638936725142476521909172780832874787757052628632198071008528210855137803927678125447049151724905352001925214035006140728644505388513942717186123314183875478710847058542537494694494866972317505705435042522832402964032002411795778659573788417535833523317207737415922517977501824593237488454376625277566276140734861976385185685787104362918057756088555468478191677807628244887447259956852463253558083753904458553181514010317947550921854313716399909893336150199696764601950954506463949735495399163388441285156784522171593568059167181134968710471495278286941448775639934289569970021778573227473226789044310055174504135469870832997043675279559205569002343493435986064083338401367754360101660097217832446419474618532225686029002796978138213666493993159414460285079884245717474603111945788703747997612755458880429895659007822518916228541120188630961676478929634843370185453402947112612877119375359944835554633216816810384477008057329803870314552715889335824148400612715269684989461014275596487689249286742859180910148750337225954699411161944337571937193016359885785031903550374713318228142787443832528254485885660472063305069035361829631337019898002368408994085843612343109511370536847377143754958248226877948532603689581602598636060850299183689726893672818299387185878738413290606349006545183085664058560910598528504588976138460599832712041090737044096229097714181360239025391606928611024905374749135267329107913909002678219292150341996062737315555441513624184991827836938742527330476710908023214604337989177323290755937814477861154089109703710411106099125867827028529754206779415452594440657331732659574991720897413158685557053091609468256104059998688395767221973217587923361125502408031981311755270089307431126551577116595340568799020674420292710181472412145365973161966764928910368588140689777099398225689536838947458904731393884644690616599149057033430991866405582186688213933453730447904894449672419470662909128608568909961983148123614122194344400775698292210118166471226599074514711548952114192844785629641989491579979889716661133929554117910748862854637748251854129174635959887111253043960757616640941021140657010475892478736475947254128343378512395183768724351615207561027599329512746231658826652911480754771893272009353411375855414933265669268019790612576487038387729886054778366818305560489918693880761595898545232578630606577026877541701151952372095050232740851850250035966610101693050667876084411501585009741612509518891643591661710813826825450117115766102435410023425837547168944507402288437129401385841830780800405094646537754680184645869039270786775464390260579716247464927084166669535121592633651272401256853006088356781118438936069425497649213047469880206596961304325726986071560319916880345512600133982202188074134917298924277854015362857502523676436067404095983936852882961712167761106255570603053918467220667096076207942477943774135364315815085063976889543314118787894177084850887091225191521360229081612002394806237213549962486716445382443256934775465432257582029284663766666696287421385089785857367944938261522829881047700958008204322004317268604267289501867009191718373606667841484139062343302763581931576301636177067483855337420888728748927935533461504157719037175923913710316005863696613030888572642522704219475128894938824112647637309744545468849822835086955511128956010535932836008512546762031304331438771746782156740023150306340192146245307935404105891091030332366203593596352003991789392800900562830951907343291589682464481329985315714406233917868333209869805626730210525540030724699807544626055293693390623352800323457683894690854243327242620032371931796882746630350118641183783535652674273024026223520408110594166660022384635292940610448724099869046247781293415499394356456829542071705367065460053779536006862377855360991289632036520680356408768243960559899070060986071781086207527835432968704743972396457188453627125685853018548840984757927489513445958866104157689440507379229974611766862245138683393021556425224232976888720927027823218262104126040391567839734297278889002279057007314474890010967512103338484850264885524321981042306842499407852472042053648342861900120046982986615391582561193623692112395308332431619368024564791422735035540956382651519495854378761856059899029343092262374074022646464423042895089524742944786244607069190094127797452632926094825220000779443816530567303833805892515302427169129007667153197594745249974431802787212890913681625903174517221251455415403946129258412349545356681160147112434013681486242232762862750445642552946211900261152288727658283877205508194216165872623258007496332762861109197157994904914379074521388314154606804605420968974196218853715090271849242832883487502645762146165724070541403195097417114402267430203445804008117345844792696987388095538019685423948918343343385052740681563641265747947488579123263277421219140447016272524192711968129375872872257293611079026375191371762073698119812431816555874847024015433669454060331749714098801807187503685986808109207966481828570730563372814746899991797218526003229675380679042335741592707598698599651895812831084019626735937926568394448706616329808185714598152867106092393257226922686593494831417878501968876998175961379001655754863293849524202870667340543210251443816571027639144752713161476232517441404457190484278845491709650490883576823883538647129258562849755431542753062874244327296494380181221821767373863517463235053226566831752034743470853913103380197731732599105667548671854639294196125422496881633925915160560160509155850000058115187204000339581093511816021018887062007667068192282197351501566857377378546125839457817585540570476535687482582656999138059542426416557510453766046880289727219867846548940189817477801673407240670992233795683928334879148656019644910174083648298596505004246300094175198451084651953943834516239336306119746955878834443225926440389698563347054882682940036257195328186600909943574655648716775135265193357002584902548296188554978885753706557762878746948518359673466379604806563452097661999395322037295331280955252947703805580276128986731891095939074564630238371648819153947389127541385604239561585813387185379261535270818177152447508591590967472735247838383623269105188145962593516766853139883541021553491319446679845124921544952829826545916239773408723423418796017708253809308296293463340242852614706804887181905118790233152725055823703836194534863301777409176347859241229864417781684685635835235641845053258993250044695131851838285203062948831051913934729124574046698880137323395246552749982078353318403514020668919942213603438117651803764344482882536543639324713588082089686880239729902970624382990464903491194170990762751198090593368044422774294765766593339161480833295264637139071829663867664482389503605030571807619462266891716042576034817536035062693703685146867295783839330497743448121228197656981485133162104731777576963885406653489022850354788012570684673012404058154069298314296205962728432028798733828547568931167986113329049226507399437461535620173505868805321418900979678276111127276895747943525772227231595967674877944585209337978868567379327092180717067500171640519195220068414089380027433480962609037265432104808250284744667847952918847150120263202047947839996697965054754921179891168572187764105566367761347012988751125263487124307519129690743924770904417696867949305274641649769824073840495812409768970318675236889675352117828935784226884287619017763279944240048564465751358455810318134938445801384544075946817976928607759722195234282311895051177893630381815664065219978981539421100481200655167648304434114611610503014796354686553843268413671632517005771285426241069800637259860949404871840545441247732433418522756200393184199283215913317623920562577834804820628982528207980115025894676769770375615587372016968850628250575141402645824011161598799832538851793087542649742597835341438178488156693542156862211121121622401656801539541263575490315805809452105821891306652176200140571210912890349713710253525016590541001374806292619506958580361536272711803831893454425501370428542031128710090906906842840788018974733050703624538227177064835647393742276531646777397049959045434155629817226195752529236730362820354714839359308702665549139358308730270084846973432387658484541812703888902290424425656375951680603807900905741445052162065821650724499790364450810841988504453824880981607196332160567693812414467086717025404130611250411364336606598625732562822926433796735604209666006675771885896850507833154701567801348054439527781217016141256814222167507216280793032035875819514189155773856525933458004852744858048909604853121323947354934883687403048174152231198084600835592679497422630377001944762724832308084835542841643097244445225538149601150046597035991046767453264121455053175558071418260445251103617453803801392019908084789100060910349651787796066421732587889245173711493102547668754323428379451473529111395551648431356952576362789465669023696562517494327487956482824049758061892597426706000986674936708030916049078392474802563372837031365538395056968209016347346520605599488831666653575746735448002519800086197673150561399786057804197659354966088048190842044673876929229727337034657543942942505888739598235097263615348079745916188855383573363479514879342539204391914190032140822531717236112105786575171121144016799744692423313363921275119456255648189408184382621452354494010833445646959935556188029577376169589752412091413980377742554921486382449870097530849615374203801157397511005002511672557320063056075241531416432539247032359432334871162773190461439966869330727593262624596250246205002374016702520193750910503502468259154871970497370295891401157039233633232011047480552550180755897497633086895088511239060351176533161901083814313398162484093867328259365469450029269365417823805148582604923805733413537463362233758704721214968579100712180788340969053932378180439269851386227355485023870082655913564509651861022044470021318758907178344908754963244180868218955064758255755892311522491360939868132963579503896357250463630093128069122340186356213147036973400697788690298598708882421552873618496234289673064672816623149951109119092609517237996184219182418116877551730463059611794767356006772168602060311619300699527401147050758316418324654325432115471953029879748213593436589484583520047622088830179508579184026613222349045001216591256242909026847587113038754184641704551406129740997601128672103046992351593048138206805546621517681183218267438936840751873855156455979154254536970696756019441591074901813642910433192456897335938637144715814482836595524623205929254860593775577442604609315453270940026960304248024269148874733035357369142251392600170735642649196943420167291165126578745350265147989932605175567066517709240296232840563340377617067557904401400100365681111845272161198463354182362286513876409668206365222827958009833754158197429718043734253295456182395689655764524531972563488095379451905459617191884647217970772487733369261243661750652542690765508870260890967315381666334614886032100918190513039122239044153094129128886798885194612624543405229857502969548342369506291421644569904616747507332744064766593814739259551314300394512547195397542586097398310110867893903289110855624375250883303652184867831321273660524391964931646854800237061840090816560239011581650965699122806942553867054401116892444224692061036407552205549997449956888687967334071913284497332419977379378601266569291342020230791481930642580267300248574618821628839502996092709421076932253632641551272256067246872912939511736842710595189200701776686293617176021885850659026325953219576811629425868533963950127067316168066339571220974586395553967390135855155787352667275072076102913328817469854362393359621450289630801591239398256970631718236024328572444783916986581651575972156427059792780620704647567473702741209744332465775392221626619382725894174769217943207075423796808750826975819555128470791381179669237754689194372308099540388414429794991944810505388533294485249975786174546148304756962971679461996979776832067554402681485533018778862605607900252419131551872026134378065391992601364679371126937812764578538188884437134380955052113556311865301207179073514216710904838320232745453298285369320483635824137451868533497756757218226404832218584855202361039115851209590627269022486308906228112688062852786623215009060271192570831455816453547071213680098909355151914337295609503903236997440949094418453786662063981075015167102815842248692982067161687084645854417450442560772918642784852617459560004499730850159096709854024770351144158125831184833161370625937665038775264224513580565279918772741782528322017918915210517036841269022464334480827393692038576780144268509313309647818496159575163032454758624072757907009138451019762694290421095396350514948499019612682750627459558301920340051269515138006267582436597188484459486445051255551135159663771960791449473216632058906868310134558240936028016131310090817737839483328527352032515986082165576214482715466732730734370880240299347492433852188246688411338946729587312692973194293774247952701543233266799645643612168255727088577507800862731344020281710978087599731837666137703512563813353344482475459558836421720092128378033107393124760290093514454331365596765833972078785314810316918174436663092818057784185741005742031232743853793899936331810956010293361456780064955068168693209744724799285915980089183660003362896799314165458438689223239049729632276056686049845886719686003755843687256053708017359785985977001076456037818770499345898962218397164898400348465421833513810911706148693441193863742056075100740535975114663412643387417079871791956275362567689444981268494134821980359343682660495943235448249398094530688758416158185188182647480317382940824207337038004574128367971200084419004701580422330083913716370497199855063653973115019013930718038278937598178707322151854735261114001044241455756701300051470514794491083639523918160190590902501790148652338935836800101259601959388427953282480883544452754402038826746335391981735756280947202420244040660319204755936491080963346556887143188862799239937160711258144386052117377663933489033640381846676824565356106878983506142770270025220509714830160574849258994443394749174800027833455025521541733350425412689138723668148392324565703563506464626125373926108622017139601688939088858584297970585586926222874982154120135424729025199641837462379830955503517052849186488477758612660245814457059390774262982892941338708358654843254802538008798360319509147688552583325720384516944361477979580100328727505171328889564774883633656206671781046032472702383377565707301622987503623757338645107025864012632854163615805587202972040276848306439274165003484415171328561634305390078733051011125208092598869114582586383455346993448176489086690103341664696691916391303710413924310061328397691006621946281346014932986214521263616875264577701505435787521248662943916321426317268036085768107506374226418729086571334545652063727388540043211379746391461675323124277206511190844830140448222822701404857286845546460052874932698432350842103859132536170482564719767663655114532082762545170785414376515439129653251144209239484036242288231476867332319247612732531648888810014351618091675580823806665146119387999012080454826441991926334872691333552501361584479446705502052213740627776391091189595246710480465669373001265229100850402734883855290178835214727929889618426794594871147718681072447842710694621064869880183925245738128670560738529956778448332274881260108737131659227387514670362683068077156724871398232888911087874786460830319732214793546032068142423625739146381123920581447787418100971910836742003237471233793675886813907579055803287450876008487974885461293477036762226535636555013277486817396910494947151338394355060959150113721982528424758100895206369977914100865059977206906394296579066289053876573958135692236259619848940869869783395420253005304912726096125010116986145792722086959587348379972666098337003193273099384473059022941600895595359155633329002707793053481904667435057209792565853203949083508025811006802474938484963864306310843773708492252050922141916232322853319639894734105552940801402964115576057805116996292184319821884414809489393780444071173065015221903517058790179559070560822497286058466311488387468706192574329433020012647863622961063804632071766658801323094004251329080247040798329081702646531227386809500871433922752815319386716409165456567050978977824970355438519172151147502692524761510119197745240417458642818314652028735607766847595625631746660614492718958607313476548246890256534910754017828659502403517861288918930953657440733197294733510151248110845258515186677841397305046754240421760677018397785661812815886493039867249098915971583353571033153310868357962214257090130851111053640678419969298661076198302113420702610664373802793109878516721054791805121441408659966137532846484104570948722630197479050013820400594130014063855770485469321683276490669196426228493735997997277079804717656176010292312094804280607294141349794385883160267955185677273046081243468375828369522598820912317458203628280176422438963222184391285209388714511579441344184733430260458693445788938656016589332943779822523585027802697424354422424689757789678270180313103999162471358891517491597706949755824814306336777060341014641689696022117773370287069535107872745680448548601478629259323291043118490648051206180653212950723830358468812044203823933266485477715717173919472639247124714967471964560602126104443439495596368071038656955463195070211432760331355384074910658753711313933870971450303496418746632720893504190168716969777015697951296787671574336895963232575463882221425117468449567881780970733642134778385617119636594632013305061806930711714323431260182555554879839740715102012701800971206202565079167781776155815723196944146879500145033646583101813618521452014460847910390892102062334144109948399566621124713116546842425211657682537489054904477097406954277032510273222503115070314708371326625325615166894777994953008739208208647226078652437853660181937701035663570614461485143894549957333771041777795648092784251608907362085263979995604344234523770178033995368338014944423269605879477106671259406306720038962215637573441300586498165458941769185635420860364165822035349300089059290845085178732799756058054716090686434691051598143476040942168720840450757277736684274807019861130384245782668917566406720385710268845128412652001841295652977555481446450088686111641363879169287755970199825705721363928725020161828377951144090689735153031580603748222481360033688963258019206118060318620221452701783361980291396788401436989134471346218938301774975043991633859884589369070857936676368811385531624103443693860359600930177497646500010856825620684622197892009522956160996450030292215444707239985835847899772770257804652446561112663678239064467961154936203677108662341330805468720725251504069465837372791576929544984246706866255367006986998470616364328637073550286306291838810499717051099189716934853171973376035434155740157985886461298392936527250587583147981132849638365919479839071987617506692821125239956255638696331955671391146920623034660264802714364787169431438811208413313215806652143893769854298496096383048508007399081575998491945846746949871004523513714879095510643782584464053471894057048645043502296986430356490941823955629737998484530479882325201673811931513508623311642985297772543768011759258192424937034387105329188435538875872848122299017646749546415243215442341833529557816564795198427429931333250463834617388124612341902116185597055080064492172704759006597788439318516003717376687957379556263434147880751388821348149566872809865377800971738872033736299816446507867344814312664022062356509684164904835032367518816721451816337620824406181072231636171977896526479172324850552106668491134229834464659126448445376807560960751162045646293678023716824847907401231969275025107201701576303167041705248891273974493311565859397382395742534949339701677675108537217181200021982176494525307499774600156894029318075123095284514259953394317006156738623340458241830611727236750386324941246624845581651904491489257046460411135161737258479937947176662549245584035467359521010388592397151869038324702528073970037178738553798003601733168749269320279910636863076112158554416842576257493825884892146464616476689986544220572298770752966452714555766138192351043406305109960210763646574612234277970663617632617728687170111467784600707953917786423915300534289596746661681905508087279293786074110648306855745152315186199299223838487491590495910919608997117931320707666627339199155101733303227799414615133831058063696862957983730677994388544651150026913976074468661630184306250610062301215379931077351699474084729629078894259685833613621631648435085578422142757814068822190596551617375794814689378038133879886620354077646921269055970783865868361421441321535312366294419446938632057175009248798598257641534099952359319410569959297569571843939977235821311691116332152035461652449114225092107481921357547071510844657323334424138619247655718067864940594409242506843959297449184492624616292910637534787590562005984451971830667348523020442928910914755723990122009773216537294202146744248192106154188769395418470237241980545261795072897092656040140428618422609348796605963216461075306460730518702787642006355914736161080953161307229455440781723206105423453591004051526347137908948039172334275129117236301638455608601986758719255650898120420531610300658364058168414667327756242006502898801708860205916974222365871475631337258337372185462122622769185883307366522670141525455615693915323559599371147914776803864036484478555085962567790042120376922764202316265256518297564104364165515461724956864630561245921856683533915462925917363001182227264742817664859577787393445180861133148929028860588374227324464071578636807425994684847050888389759062418469387322021807251308136056452427288079057365237014614193539092454427073771165098594149157804424315333856456729567463045825748673557872952023520997377635887774935315071098587177443166883199322044984678953289819669291294984891061404229305266938892752294382085612690585847098577933893167197297918648927588025834496761159325251324777445454589578549742877283220096559295811606802799460581320241450810710659412155814051717124115189333327725904051595421576746423416895683415857949200907269962987270629213946660876415335051941041085694317481146651245073183144383403731764689970029514577631720522746743013996100851261021333984161951780740613446413781534162991109225157971832793219265303095822812538868164396478736212053521766269187085646820342683355439884059839415657602061105516759981233212035671422637782281245059870123493062122186045859943223737148075114685612993810657300175578320052727797138057201078564355781953575944709778684152706965622143336507836071208176880680456007485514994663232985233925593218887778522648822619515743733354003556352318465709101479369062283229624945012159257753050583437339157796043744843837889498250561987352651013661607368659014893808936225512030976274807902650023913489702418199154263356835183730656678820019055191880340695780441059897954795586244926243296492703432926556815887423683209105379244499338901013669807081326267354527830270260347227126511900599448726681344460858358116823437808442359752260115840241666078145956243453665972130920547525053499316227456436579792956495051875129987730452735384030584337298013168234364993115885957416419725850376401316062180327248899692547279615394063964253418748184697170110543014258054801574832067766425926009191390056429461954771816405126953559443528936012224053102081407226788789190803045030712367424873012771989250163103156026109860999365549533034926017424413623000783184453310753859128541275639594353866234921318183438243000895261815766455108330732055849347363461591204108386712012612594979808583952090832671336759869925019944894498661125653914843695397235223584405417291114198635378522437873024726437412524521338346781054667065678454071342232462616843528249490938016497410703012983376437830718729604397947826595490621275719594542720324142467571784715213335263573533850172277343245569645564329946960914460120730933310688175583007784904060629637573918304560951522137215137049777422737954497141151982834497539670114998676697915060649710449331580577824043567586483163171477730513101995519603611672600359406850349627821092441686257592506161049649549721309865317850968081361097802044592908103807018870394635022944515010056548037045383487555027947694475638723726203902029361594899458143602242478126334455408008448137902575652517826667319310517125511079394955155053734603467464709428117869866235455946085152098935002240341545857288296953534289852975313416370134210892175485167568430464821769402240469775301393466239663335223399874398804313441555253948679471645403281393501410282155603344430713356151477958753869860226845033210459874308267215032877399152580207578631076580575680626733676836804411647969380089471068055524914438984062005378433457801642927436152143326723738629454459573712589703756313691614946092746496166139992808785659318723349139448920137046911837113225501651970339841175225648236145028378806771484114169147783924022215596495154164722558288570720588616664956270553844668356204730999696065251159745079587654752327433608693245458100115701867956561698609280628612067541197019102454075581023880903202633792734174616332293757686919547059014181363800912912997535115571641794385719048571019808482719254668602331038858113457837954329540714015662532979713627171386390035490200663792637220135795072386975530289565005209020970296026054803432782813307957344574797497346763280138411432774885188301792300528729938560732234663849459298382306131841066020431522895181906591512030959254231229351817473658842786161628637209263354125985713453765445646958610566080312594793742420524110126083936876232928163221441946169897946468319205315955213219737782157292021891837391123452049969828960353728731443446689806811335991648290541935362869065566861239288780500884531705368750305184943574051494059197573286135119611169027342705610864394407167097585929134326089242283349800594318510595871824804968416491243998415189036920143290908828920380017171752966819173030500214288114856829140417971190593341537459851979464360554810567456896179033954164473578158815657261752870623934945431864361398748712813789166040134660708094549414954546346078560974190847677535348820856240153357103151221691106145574426811658340387084167096444097040286668220561406339454192665237360553293207907108790927316300799158323835813993558318199302831750960204992522460102447644152391593596912825679503066346746708469426017845197123606014446879119424612303418694958245710729741988667034446242524812795164803212873243774026109817244830347950147178769205791253681549059642529231735494492852734170278610595739405025852634524136027247859888559989859279759710949761383944049236534482831761899339137186524014151825250868778411305527508415026542265670195701506958095753227813691304534547086350059963075482978623448347650533074075411053833551129139674844511852663264081573736845104788639228533627772204075954528659846937181917577067517764770173351930481999539366313162101850262869666795638396837301908369353739052389924767510100473177890496117457966793782488242654645007535954121367060449671167457943921156476052065013615797303753979168622805258344816266406472045986621594601835084906546513378286622280059083547659766504397390448388973480070367641827342826811974809369816450794806840851687070312774591989373947039434714592688617075149982357823283438490961285954500284316931144992434683330564176642778071437012466524022821610751310334804342824228251811569474479037409506874715539156971034612075380478620902826675842822429962570871030197340061424879438087904845570188349629066034222196277236902845253127939602684660911433601019846809792171722348239661149568098076838337503187210385222687020290435071227894783696513012140844456800343338726810325431969626465809988522303957984632983657396331596116881148229313747176222469876645978595144268573807387092906908834813132473850950004303051684553835627419520168615139073766270003297051883282348566659315245269306645474662988782120210808870093137060315237212175093818186079418544942275839593789265033301293984404584108745231762085656316597731689362270409332126668288408321097356272853089750159038734475947095638983957767287439722025980363256696556541334681227769803255326366754609135837067970765725403226664152367718896370476690059901424357912745702643340030549828190524489648533269260265635005550472618404773963207027163227247252113659684182189343616606944473369570283941245169905851661471855351518572634693276344973629207089979772542459799741534631040489816043437736612725701710121592975374571978021077972613198059003632925804151687019002801687648677840296124738698579781664286959952598072796847940133384658098113205388575300340113776005332562721746622245592945372220594693148410667833270911694056683401546102725965869122848587315872185958691762829412046698160185754049453468464245152504082636474868388038213198475002140117240759341513501291367104853501798346125020716999941510369265788060583028644021354098208034618334783676268020938662649249326264684424045025554337630497125325829240792835472406267866281726207169623371816909153104158869538232204318115545736460080206122310504819278364147315601635138103481931117106078628826942785990270170219809619036856822195085022379231911001540490015518856957270500399425329814905174565004197151280060121351182159435567561588491896480733821957593396803069920894250263596367097039161640374468550034894327116049384248180208824376958920263316605972173216795186260381366967073121701096934759358929951486547336163518139301966815318365874957429774563455944650689008748664866695644770565394661980675279943540947110753452563903452061383137029328988229089025378316813471805363750986749329795571932285313308566951737238879632348733554343074580557086810419862125366779917287128215555122101517766225045463358573875501729423436211198550993227768026770174290151630371782090687504199723296091442433143902018827790907595929926252700523934436713346942295093224135937145836936864640743851348829457240201587732553631771865059871639874269614413282535487741873005404463009493311999098877760963348120676849374445536512435678260155983753180225257966874109547938450065073704435819410513727934997807647400518160457207218818807519810795255527857768221710018545424006178893876283076340697980099469995296970841048095651216611454733012296965491518154805124325581946252775702346361197904767280666595314290686913391389211824046509530495486258439663661020125562328813892381957502607084836449209084460934091786742653347835272252710176439752854313210052632123985939911093255226097981464282694927438108157873350461162141315241556649687681717606018243435965503917063454238766733168415699735236166425422486624914010825102270971097075878576786346675507639606405203733287133196096743536220401170789782953918058916005991267335916939355388287391669161362740309873546294294581891464620016217805858150897753554618894868920151274104860413583195588419182001053945868538119711858582493283747680021459877191380391807783161300163509255214356266953634946489286714462194810209852529482327099608727468798603950914172881930424025044055148787790320351920068410412440498307377332413609040663113098184369862993758605362168557668384979809318488334650460624432704184915207637676529003512335065812512272805562726225852403906402705952012963331013002848033871907822115638511483837251855992344449935411750734105427239453818067254918700810705256431059530022678986757407252913196968697128754937653363350344549002377619429897477645119321098626639140539101499787360784331938578478549460852600081988428437256026898642422962924851123576014993344232323667632292308428784905065636232081017966234501124147982993172996500041140456996089741999836971303534058014344906415337474229555102828750781707967459277614718431236067737207996718616406818586166251289630361994891118626515396173142824113985410236810956138664408456165951526460431105477032594559267993071946606229816673931583082874798482142845874155890121167321536446021437613713853451341364052809176911424649246864696691002801865747825745851018929530966606463554129879768209717726851862268084798241747228864814305532949330077711776038953646584720370673838155309128327785201246243589485203121503617340181729423173932021023750688705064370902185769984685612031022332450695522053037578627635171959367356102551537639302999184525001341106706620302285799452253864090066779879182542935297780188570283138971184254109013365590836350428549197753556277408120096666152321541631818819324065042183158119330991981178766003228046384965703339014223019193102017493649441681242902092205674709496324323987444612003129583147373425352101077706306302868034616045510066461149097223351224428387270068521215753508946165981005367833547535857360460938450726888938797700006991009344200411820875766841344691175940496882611674988282004599692857174668867808675473015560308413555496920756295479700640977910626077754970273188057896610485401725964391901850282336510316347745511090595030918715658821782232354096022099925488514728990735494243632525326928015017211632688990265946535990636990839373456476165255955123790471832873808905942862353550893326931204493055699581735575557699279577760124115059986709559231955623540555017481201535856223059536472016504562770863006060266325630650463161750674352981465622226855907969795369992153617322427631240541552425230116474942535692995056833644579577468101812752537827489122879676566368708153093877084948707918338258486113881668310628818694393593114512745221022764174650584855120361087861924229204932129015315456029312613931099696785312282655092596338473541123342917039087580837188542859808509946956644498903226962751615901714686433183142861105424951936560115314807529865594002446818350478616323633931084818035083223351783081179138543018954515724408325200960474724297892752654577721042208218666923675095530869063928616975683270298582659882864042852126106943332299874749681763951043377039188986361012706684588889336946249450219061264192930321022044278782881942188108074655973750337558789539840183578877755220979948326446459946875526253797880496874775348081271462349931379334577081931407348477760983540393519108770072967764476599395872024990168976538926005559251556089944255723924688498449800122272530278460048908869107200249388276783670855985208998572317714185010709573273402775607982021002841640792639295346959753028434266024711843866737218176741514444942307746428999139069930609731516114504463932252746748609218225169657521151941737452273671494659021428813316730584547107808005247574519157038457917080757635857654195151908495018551359161899691453916786180401603012229822132346075015104934087404263589906989436296577518714519677043095530204528974775079094709454338724909376778613459905123974244201250672204821725011907568634165453764896358837158559280366517679271459346599619893355816601592393041407495646523959710500977042322105813468096924245347514053309365017347349651180228952265241086798802416811185706389872484230773834994031465137004078499632863739779547897521901317541875859966789911000341986228039416358843347618606814910890688236059277753050840268080834839880709838168850420225405238668295512962667541966401089622491581505002438448667662117700727604980736867274462029631081576489097674724034123043752897227294598818345582963955513131210460515877018815634426572706011847499603700846877506164473512894327220181368614956192472535286685508686539218013913074248177023736414127504897873411931651412727616387687228495475220583989539290729429409595036111097656378152499263094011237146888403123199778770218191139002245824566630735979251155909687596245802988783533908673361895539861990548753031281971147392186471049231333561766472241677148280974132273516636893266811620778848255218503970143276722673234752803606673531832930884392203243107038672702441414571049289388256643993675169599062314733753322785883421019951047515566207417654034309667971175695507220074584165958352105181528753740320772475237818148750658298056352280978830624217253437967383668775978411164507799950551916804872111216259678039114869438920978581520135846702062493972508744845656578575192458566125596915143538525274107563186526598381021920790497544386613161169079071622153022150938378393424998779785620868306922006610756503510360922791515311518907754398930321737584166620653926307361622021385760290598785792046045488786293854244497703086363127104549098337816701837223645814854456564695447947937530236147370189061297104807192121346829769649712796108905823783679377918462213084493063666398503715235476822559119650196086675246910639346206036025148851394778550684824823784736169488608893055881247378552454791819859788098513574314345224356292564746143957735701217449742563141518395961352533656737334429419896365674547390061943647890340068700926555460929797061652782125987144100375641718191983697372324335504800662650333446821953553531296648054005758626736322502521503760052664918024814581021092506385014168818305506631562901126627016737549678010979371767023227473426055278921511385443709211690007347244888427543560010726019649381950420982513115539458337497257026968634498389730818719781308504436052914404448478248915797798393188888166121101166551609312214320595627275380952779653445437861282617801278182536165452437443365942098815716315087064203188876369922888047132585300288335135232183860398995201431036011453797622512211861702563157611929871942410829596843654763386474877612067748884942563814674075294543307912756455376245198220877845062741860588408072358426596464810390274111669971538429170720127041358620626043240037051607379593471042321735620898243697778359849752462199354400298630425535352242114216636466691925183586988307193906335818676033822298041946870379212513959266317759449467342112860821000235828957345357438622073192756271223681961404573612520435356387155311123966739180818217722688175961516592805168843193738954844132528786093536585939103328286992582186169463684238951403367467978862256603506521595380457264664362119751388255019029787904484960475615789412546529434907276519455595447670960442616278236470384682319337702687650646986691686513088619501402917161500435473342958059426555520593545525242615792886360081455297769681663766894741781425989957829302941599661466734662225635605274976198551748556246415472871015407599352961634735602105615210406507893468344139901658376202290700823936804116861898578043439931419976150953031310226377351388150649479805005272064875820385684834100269716457064557914611419455378187177402265012745587212680632093890425545022156124185571243645360921702178972785125917037079776960185272685975898847641919231189100274223500692149798853962686230398697942981821648008819982129345738791222197937169525239174649242577678266450342125176747637850037152565850212385758463015076797222759106413798760562930707076320546696958463952522042209732973386338484806892079719583381875603605352593431669898124419372498570489706955072890380661380378771409326557913810324633216262704106506445372230729607971337564078597505874939149336025353162067002033056052983383950623111449514088733939258496645851602618343598180658650539461292658287362108283257396740276970483540264894137089689459885365948475956199673875143611431446656722794135721251790099842618227021134042174934469326541242786745139036472377188463046117479277144556340814045375503757199593500531781671015277876515238745466544593581680735295758376845628363715864270464872892908759667824399517844073178852660648942023702547842916539859350656882791580823514547019222103203762165196034290419145689927465978458736672677391297199436429329496305488216228313104492994702638618091471347038724174905617657991550571815888761274807850460337359984516397288829580540612703910914183855065973043450430359628910116227486564620186057948255111411394426659220115552294667156266978377190321177202414944494683268897809769163361555418525177850612010147354580214599938601453611300030975973137438361186657280621217429703844221197673605254445979458262558520787960768794376333524389364334282287335005407488802263703189924541210740174373689030738910590788713473090137010715298338221068972877693336799065195582036988616834431166381133580834039023551274398718079858615654859749659270291861807771086855949435178497230975676747101124902516631401836141393043759302948947968147402850297456461939471162966485905874778932746500173205431572685800199986133829086036260268803231430355426277631863959554108850884756096062471156124886317202916400701409805823663040492194232849987512960885111992012995283960807664086119372302728575894282494703671682608515874721789974610588473626014238683457921682442265386941856011893103193143935564349913944797088221051627566794449449538800163482746525113931433606568517039431406615852165222672614852441341424034316528303277970383027523598331257327159456547335763800300439639265150595254597792098229276296045080487097710417350341580633668255353147397793507637837116270505007295049962043057024288857643818794319720028819838300973403917662237633210764867175173533742076736679300943735806002966286831147563121264035871145901204419117052765237490929670209804379994520097218314441466543618502905251131040980650304562233737731230567111695854820077285168640373420897389180795699390096334896297492041339695184761528456854874563637801472682612888859375745479478455852225054671859205577318405365719092212311381123403330212982312303514680159346536788964423963546761289845134581635881032683692066143852847961761705808506099893601266006402593345748183200471807816350690943946364950171314318766923728255282196998718125482345046455028911723134396856837195052360689861266029776124911650282411339862410693212060777813637781332332490335009446795828354835019842914787556791913261057746943712169142106922278699406929773611458861262889332799110866768401928176768662076451450530777605495751357525950114576076139166032112365382197940478530243444152656938630832834673601355329059563725133927019850550309062579138984628729111726739765894294554329895457086661458045625481394189272722369742511090344885978569795151296528540274784789466766875477068629852936620368328161573974151546597481270443862049236546740753642687154217986768107360922665409949972553479241059366416059323187789940000402380229612134732778449133774239315899379354093905910214956371873183953809525188498590395921845931438535663201587088770099320843257061599662227180281939551253720317752609824197954372570913809056328577749330910908213066695937900687975203578965199602660036083471320086616408502122818728531529951913661220694505661890283518269649121303161752555258649090030845491451705156765138873575776385513341501857031027694446844031633569020292252235087264893803160441675310296372450305782886101885570156476465372643501583865119451789809035104773563342619996564797164670598977650321963237416298082053836061670831909954502591165175734053762675173932811252747881861481497276371012098076335823129574004178182044204470723904040170138473930470921950087637596689803772603242135345808610804732316143553329901717643280947060225647694939787203499174943205134448001738629639845598673310298075516138794072627763020254557638938911765047683960386977355407195132779522935691149886999403922308508348924078866522449572695027739541836459165670885996360529029271363407214575483159959537243709460313863607937582481500570618701273137931837153576014887999271053194039077878645462293196638219721038349510868063679132228305829118913994414574200110130467209530138334129351053438642649022296503522768577824170378720808165889417413317762246609143620326163096786679987662903793491681370840733488196728895063298777209646721866550262397685287873782601452264360278626711091297725590796842502870743244335262495467828662053520795721111202474041204559306264414077660558261907469183326614752663881219764244421525923666242009641145823453940873630788332281287692405258798433237343693812160266393972699579578162423834163116712553113095718153254916894230760424832376183173080764397644926480557889133771623082364645203666842912642179978362984538357080265326644401736981321324872811610067737628228615000696887446144186155006024855109975858226777017001345464203282617386318583506145586731024008652397835897706191157061531539631629074569396638340087279428799332603192792552527172260636810519850636502280605601010030732832977657911831421351250000190627450159020267473296323069443260005808877312939474781985159840571544636273426831540202548293427210445912630367170707745690435773550934361883583033147158219382370044467720135403232994763666210402871893459373060703025866483782679020929980965791405129230990324374392305307886736922933494424243315388546619440169109233006965923453131505403635830715303291573995926732198234489099331916343881747964967038418613935264248164254412187838305044322808239349388653177880301005474203946817704623918675684352287766922832086975031767503573423199658392035997142969324815509667978496775648365596787258467037585046213035036255905951751617738144979942871428673551438157811517073456166330240209170470751342630739324439645885459438135388991101485154490161916982445301345402490972812672086394340203379859858705280486975977604061403017147581308560508265851463162374195792471508616619334291753975977171412062068967473516381963720309056263922168608397251224241971498983141074248471147468464389995584023371130165888933764184121234767733092255376343301695655596080382570817007182674267423578085871324088154038217472656589071706183597866088361050980722842453876606539046763013678788536525565398170844465736435051291746429725753802391749031873345745980704624869155393639648680291239984830935144390920840576604663829514163156622920581088503159361029864861575008601109476669903808595182429027239054712833824167455264076861299264212755216529467678670524145542218672766013964557447608088588336757816546269588951663917880390394901641558859115656824084144769966477835015171329835652863167932240220843735499417924353980347645502103086257756681562623033882712457639405906575397947195340495907051441364764755602672677486532503431561394119153367262506404324454887484833779705286891491866895896819707744315950510270194849446830975975555921117358905118161206579208182450092042528863773291259669143733756635894044940859258919901047974900539514373269978647819464259997713175791906347490400714697294395221460952555238810114020569910305463263634785614287513167056752704154075059957757047429519215670062105622890107905567252890550861407983085367556918500535192827782842149452014903038621033351938204458501398102049976071445271421788040511422418577013032732827705597849441749609329283815083215263981368951214912873983336745518245621499830099555532020394775289626148936949256091326451999623900112059184385099825068295936768120465666214640061523837757951285936070199358853726965694286373366333263509630427263567271257344839633259205113315944606835205214027649410742733163778175873048015920792231539032584687663829995299513253033004266843257122280334343270888378675272076206705654513597558941765636169063103837937757975833563304434767511981249356341953464585705361418862657594208583375882294679987371894290529655643055712726304857123747984468605700002771654137944371150568915833683584253112738050856824394945751507737870685456919597383033538230671296565333579851676234226045128008567584105533934616974860332170650492067169598836553455630264473948007663994391810692809759402438434422117852493086053129080905340378484824804027623504324424215975406371200599743085691444737094920801506922495706949488034101633405287891727859885109491791185366247122859393746151987020278813216578129623097602646354364711639102838314975736400930173094268240450255248474450537082471302625107132247244005919393517006186290470372328421814823620591049931902129008844624850776739110903523036455012203177928388898159277452063779840019936271042754245741361711817264804882417739184755689981975800461316774577943639273994584557023009699667670054933049968185988416015469698799564297545792991098491207856600259295764954881327490121147680696824923411566212389248253620479068937704451951213153314084805449047978458320919758883541873085340640110309512452048814504675998810927699641271381539547078503738938966079295953011863269838578755719069578018178600279394839255316831170950096072284581096024524611856936346264653057995844364117988489967662949103138503904458395540251461166004781152397137513565074089244463955334096978834922967345237830600478274856070325755546952379563845814343267732890069040330097830443428038933034787836024118797045463027265007615578146615240172571316375948747561160784131075284215428399636761267417004335655748632087591237867777701375260505555040055456625037223646353111110112103072094701700567680913262926456070988326166836525858612928162301280894597827348295058930748898342799242670138540773216428722732823022157086685238179574004135796036676629857797354970342299931474546795015146778927607107490560827449131311828465316806567314118954802009634757200434139560486850777551635524235597603749868678624408991055711995152585031857873852688789350535914188686990284074341991306172806023239123098037692384016741927604219080909139497100973264038621564621991236702417343178978018261267970721415200109083978699791365502090720978479994572584986420367524450061566885435044379080848836308979647328311622125831927180151310652999861131938557367659911203060163885365145804905271652894484526439050708381156493406797330994209005719725671915655617315990016318552552150782804734220350213392142269718590339330978923254264926847069472495150041403521590027249141193286648153750093698907942247924792272627481341720553474529555505502109559260587135623508484009195262228849798853652400010819510553621392740768401268633720845015512539749666622084161012680082896400686368953307513665275875969532434186905568558652346607053852662933098386028181032339390440818509963888459474415574784310457620051508109190515215955020569172829765845849655049227927353227270459146314480408896951855456291090712842878813748371763794446305019413077751136495648865374335789376140851781949307160353444368959037649574953424942001359224525422979843266472544385193465113735549982836413029830771407335367774789957672473646101829987079904702315768909422857001199956905069331953362546879829729777750000161371747003638341908459429296959446035840191751531383755453103759162857841155808189371449390030415667353886797779079725822364808055797386480812436482416818440533500727300049969875547336032095126823262915693170444247318029875997895228104398811731682277201208846613630322883651526520412088069800232684813867208317064142848217166428093315695882224073337494649897865148019770203700994708407520528719547004165423810325725591758875606143071131563309194254293554401685624703601996633466338616610606834727004730013275196856585231075232905250445491804212184819487862741097287437796084152140995112240297864765560548275177185781796423379046038107282491740587318982072960300189201329404415074658062855806523113834141258027902780062269321084259402851701655357193944789707716169612447721281963410597222481706778279654958298043820275852004748554594237587786388395003000839288311536754994305678237921541164699580677256443650500815209664034011330457290778615909294409790345079154242877061417944742916309771676109086954798023794095156167073577194196667943332095187344876330104375215190749359123044867917288824315453404145089652758083406920626918677394272622081882369507646691295552935948495258718704555494171614526594662666962624273821553270583473824975723885053056521460308021144204822254499362010582636350857938388528550044084247096599947509884730996446484062186831160641233018587176161908632682230753718730586492054416612597670792286749423551477484356074507768595107633773947392482529670008378056751138799875994492320806424073555196384263264083785438023300120721408177669031723384737355417934775763758629657146597901266947821251424481130609354340999987823504145776770868667799576798626966871603383966146355251383839027485147439932595032336041489365915026769472014689078145893444126406451629587616950640439593371381371715514888685344921533077978395716738137183564353854152166217463889634892769201722928361172155494872455972972518116711811026136580989919241499401776404156840314249027000050364651030925034394211792547218083602931470093803641491735722180335263896254366394500314251340601442265313977236773064952938851067433096025119730671824797488614855162909609526663750253164451706293146876376685616030530787327722398956921028251097871586785853108066772811968975761489662139327180049188473714934360579271437156669574737759409893979818585295428121042876963354020360495432714629620113538874003043330941095648219573293052803423266933959337650473654500035345821061750921103985635393920506246376297555061472402374823622119135390487591984267629747631253619595880964574305342633421037826628724422339169301315244014333218874719957021330082644566897445473586966989985090249999506727727724020073943093716543652710527635161509806906513218745675780706074601978866552882728164045918660276804588460068288594935775467412924004248613973261917525461828468109428901956624763248832452465724421382441279257806435112535222899589170938296263415780246368074531194028612122542753858158842650027587904924721407124964202983075481837468990829827763269956499240022126987321371144939214495322499833660590622451885033543500572478716033080700437725941741142840446534538157948097521567378591430435121407533924439268287361132613561688571944573364508796335970773907063971125142124170786066785988917831610625729902502210211243148154588049637708501653846250226793943301566023084608126156790721198701342347483916925690090450267942235484410088234480073091186857125401581171819028932379856707213717327191013334722713575148997542951834961312006100740923275292762415068855597239078094098805395705078206231211922170019516781285482410681750005059414234955444241374819037428911434508911184240267878444986888412584165301923697221045980168207941835945896342010945993245839802892910580856507100173485306727177405751268230014340882923957862913488521643091320426277243576810293492332940970555487179324226086788587956798774534415421757397018531207825000302545430444712299094443903247382724036190259554112554890342913304080333624749645655804665666278052682247652334231347948346220960069955928887825065935213966411537354780843856975951232447749572054017682699638391332316532971617468466915386534221567781650860631033077965253101592482949255492142804845106987416750428714874628634646927853362048908505021020981226687167509959353449092959663611251457750890395078080766794975509388391606043127657143180982474453690690747030112498209548501962952393742183591890165528675140167773626220341220640847552796638404129756862984411956866783784895279083846406025638523430899955616522774323094302734743573387144060903481322025011596657728455643367763064494595957914875996537435829257699419111394302071811950264486084223730887064619467946479262694886526415815211796542486060822443933625797945385474702009646312784243144783867316262468763326779583860017191458905244105041992677507597714125542883459342391780801185268852477537507192988899750224461637499511469012770773818192316107107522332061219553571823870960659306602560925821471808227341355926405285866543004886609558951935534779457647850879177950825252637075848159003151789880922249962697373636816937267791026589008830789222339267818568029219848686988453841601171685635697503307196414121242697197495788666294323136267735753434335387250351891565194845940032975241832071136961389170608271732218833572352155553143825509056041159772400502544739897391379970189762857854957982573612111263618632418262857578558265839124108155153610905217942361259835546692508721201150142095216265485481062410964730375137345448946788776882311638138774412238459486580583581838844170339678392813236758915022903220845347665570134299241893150869338181340941877573605856681864443052480622275175467690660812312812130786214842052047132862402038729914136484289288668051560026741050550267236272307430772949926988412762271573517584521236653183480501855717938591789975958005409588756709370775677431231734044437375639469986754134988857201748473685138632374183062507023817838476431997642783788976293939254823336248018930371199720318663761352102389657905891460942948012454474248686924672654991490040884039322170448032847306446016759153325836559864885989931151871435847556985364603463283401291036479409041303645043576177409959006766670750063805678497961473249484119781907159100497806575148834210171068278340480435684689250746273865089369648222492721370003904038256514024546818041985634513715658046137308525554521131070804564306558877601207541691365321110455855770164813093179554667261799849341773067176865056113702390016969438752102947655269714722648441441726211489121805071230060963800861425270442561437240437786011889243925297337918184338648818405246593280244696308831285905570690458138931159802921422952808065849618837736500344725316087712564810748507888284043377751083146630492127305315624729701714455398572123129604514091603540851432320436657782318201280366569696150323591193368708622692034857585240206115213728782313738526413743965219948369184779713079954249323383157279316158891592968822289710867097965713025187993451128108762275866989938579631407632087793381786306256736173281862024774574172662434140643972393108682661660653205886773502689098092512576762462533915018940617544843152208815424944166569205556445596514165834463677628194159378242123502624037243964672423724353137637164634601503515464828938491079834284559680071735465759306854456836541926935529856483202292898495430992765715504584899007531796993834888457672006504100353499663992711352586283937667025128940371749940210073294346118016545442465219297322717818280561226509037161919184628041353144840236215035023526595797309984934216860256889452402550398903370822497982095992311652778522591842878044257165255375772416035304291551070262054828336398033988609055158500698960353672927917437319611367773721671763695318813535098420925808206841245559218837221496725642137204263194918108800467490366650130477980230342377358225800422040844904164507367423101317475502135852987805697828392758123345893891722229559114065882463297778339656437889576307378494823165650600389888703934330288801877923104102293900853119700212154998384023597639260985603689782708304662901870083299034605859451264541652431686943916251207562525847337890558451493871078164858509539436366557031165415721462934895778157655662561836789323388813446939435019919154099321271258921847456073173334562868440614589141190096535410057474355285239018161234647435308580126831248849166905329094022563542449066790359505379062102867840368966899946781239511972027652947483319499945783613265578622826386775099115874110796493340692088088894423968301387746735240451042806560976122538301324104660315119734102952882000080152247106064661947491589037738695702135906137267918490042749589651896251495682509205424354285483832319838672080895290830725654847530844637897636805245899518899357306683882768256341373301636625907693990875838206619036496714143327945923583892548851833137279617283704667905020665634066577098797786053330458243521310475132145044005896383949484159532971315612045892243270044488186741878712031291712458161486038899606579873334290837263254920820888178278556239082145649175246820760143619002740544354111950971123868284718525477471882747724583848504875114561147253800865898886591624525401147436269508653952181665354522819550506148195296714523564370714096158487550950566810451325566688403094171215705291626087385189246461795433580679253902740738514475450833336462048327193155152394863558470284139778870125602100373575308457016464081330509954701799632540798891380736839044224110009504148334762154997712305578447340435795243094174871694020289571650971763514226832113290769866572556901983018872430167151024281257401724791298675164544644413366841377264204905231502030450233141638087241676150342566866372649464104783247697597803267433891814416214460377305684781931541872072286224548309182025504462236523541917419784775209978273208046752975407970386906136592118801337319545260783589665539344155119905804985608612663622101833245286165452653871932554411372040046874750837687830330639745830549612151576920364087138293240909846906178884991540052779600405598002956522111504312945424039949148265760278180673129317959211247503090171204794711982360174402741675562140019511651852006654619943384176913382164191328709544635871359868549088213854330758346946840387085937563451026873216251240058705583758337247571838885882851251972039795157320184605227399412843973585264244885375642918864078461332402134137480221310779529012135143798343612963864637281470230745048442975410850618697044202891494184647551928462795830542428064756366674610367378830674964913324168948009606531212443405844379185799296954805397155558546163065689181552732852012044868406403605106117899837604701387884428662978261180101365322933576080289796697950913084485890888260400812246153331460243991104323999809154651613633204854395072639260265967571767346465226816853038845630163277079367405189438167635277709760212150761229472977421622535158783080084512096934788817405654670519165690219986531896327151054889480116126136119665546746380381880968537538162173599699529453169119247363238057526725535613716855593276673885993981583459932380987246092806377063073963020911034910284635461000918999045157946475064387715333548180097448651709992348398508222997381975588142874188346227397741971662151398580230690850673576568912271781337308575686766477067127621400673574765352770299611488908155984659074959987510263850847690717404276673761464633631593692186632540791521830832163679998007245880261932155271461728405664598515095247128865849281529744586101054266682388438862325344029362324090199027147962328208148083772890343053050995681029237421337106361911692276819441188960706105550469190068177139435511037737196055405352342660978678683970197284143210329189013934192992905307113278297795220864765708139391760594379224649396619674058221801939644282839614903746508152914096739712047282689781159498307872477215792202161405494046407179073144648496467296953753357297864296864717509852317223153318559991100747503884750454765768175175910477086481698769721381547103422623058847417715460237290875703960740036392809320601554884176190492683769790269470264173513964411120195992873216481749032668423631172269173003553314361489561210639909250758799095282823823765628077598754915685947514011536399097042773569760314255226178273521097407386642742980945703798889684077988590165484341817343936692398187197962064446405905982748115931919303983193596949016121927040681280979161415254652673991556343251878242518007920576681198848010957160452256653577875273622351930182630604502252170896587854529880451984827879352818004352033639043618602622466282687700860660055503303732147026101088111545142356794878155616020568599225962235791414813600989062549586737284646533820595900441526523569861338560919617648614765349017739037773741794788665313034785041044971385729613460216681097719269241638662733256473113918741547329060584319420748234040619650471275821557724033330215104840816095303757095145489350406090712371097605353481387616491934262239040101635134199769969847822965686443495965911267989239355883534280789790198587682809263728034754734269373709039032849935968889773725254694243520894211969127113423790218926008113150563658776035998079669548329223869660285627514257282777353806502730366194092982895726762169199288806932377214982589829414510191335294726085570205911533735115444446891868955981696462269896277781204919103612837197121108684109878936035073961696575698017421061170776767808531731397889938392898417994122219827936709256893003373553708805023406559957576111722688171042341544727066720569765168518855233945993331587733783053583451250582409128766148510050810265841203532363793713468297456219007678335705902773743077582656411185262897934814915183571904412798726643291049054895618189105666637104455964582067249026582964978461960584540332630071601928806152162209162038269095508307848195410525338335978312733349066024910490152433410383693846257137535832605996125150176709045854821584021837845719046671449945289145674421362278676134065443041101801928669239866080141687728653658787066774383065838899894095191912133677781558575697190967170024863518789737633867829336697137140004333883352213733666091535145099471994339089030861496332052328855360375580501435794902132252928649486199797266856838103241116869122052642691412881605154045454998230062645020065956401293986439442037629675489998441371409423184864740774711020310189450940322019805698855096889335276951592222975227944858442426366802353994521165230233759233989363906771626297962912192823151403280794743577804792579263185406352431692473225361306142746442033410485969150790669616562985353999608476527774002856510928914201913212338655675217127965461340430360878669213470704720411694332955231177329874316320949460678487048575659366231010576685079606477894451708400613809886280145282248360528273946877413640401447385350445306682426652643296110631879029682416237332035647992701405816803023573754325428919292578087902457912813143621786852913717749210907881742729002583198301409813322931292938535694336654631506533402684811981476591088416201200219119620260400778694335351654302722139867275128970575776592934956286243166106697143689964764394651925250121870116135803670298994457552524904006689231505889459230026036138530689131672489742637377950602694503136212847214956975669340942839244393941900012827955649585609270782382296392306306586615221008479137582635512758098395024328387597247306539398884022022309463333217513514313614071979630689665096576703740936010992061511910925032314106368670990905623708579784436920238103150864159521712226854499215765407309028908529216483655211251940451579577681849259371884643209376410225755395723256261024577007403910646604671402248552555263191145729469162218288120644035947094012113729178540888023422715528768023174644538973998104207200076009776178751236822093345856625171081462882000095164964773945449235514047954046563688353641691647872669609569458136137525982509787385530544014999625923090301461687308937213045766428445179942665338335613263465020910412119609530023448262751188714627796054728559464656347452619574604909962329118953546259895072665947293502363556675902751985489914066925064104733622684470617928606086535033123075221379234360056741012858995392104471724599699087103218692279183818658461414567298045586461329949787710026798199243817193653662890059933805360334329486204632108664164046352630854333163120558131456338513972312261865336411806188978814188566565058330756875180602968001743444111279100125755602511319833871812452113986296328279317575479460490016948575793872046431257728019420121911949333257179950646529171440886986847758324343845752783420321926564301326471185337557926379455835442756304422216305715366083213670064138277906943308967105094466125690359973094778664485061630092610274505306101946964520980149198460180659204387235787852297967936287754723148170572633021161662481145372569126795863930969548478566515643164853716322819604279492213472368548783545794678747556009247146602859850500917053473571771263751614769241150120630562026517751304004390915399696871950055273350943973801307353859561676886247735560619535742638441518210695442067787613168439590833799054795938852494304443402387372758451857348108075061674733076148103220950430091248375237838689301546198773028005224526595623658480709090194002562524147308596835941577667085044243994960369967930172542845295658368695671506151586426596888120735482099936892657325028707471968053747717760634451331082589987805239665122209891532825372921384936908147514062773803685086729192704268897529624107723852927096243155485801504621667856847886409089378318909619811409443269180098207991490911350819714738512168498249539503172602752329141158550816189894851989801214935653790985455585047569752222537287589157056607948800059582445723253677075983167442540920307600670126280223222747224422603505072829858516781997544734278924340320958561510361844157528470217445625037001255048775077501425789361207662349480904309438637298528218172460066015329326095619101699627215443980183096820941730489551417379506517745038933778349199965514212658695969133144966123925078639797269633483226243514646411192025865206409607974305129638860452587484460343001166161469697888190507590517115090682110734612270938020425247323525115134621219026534210281390923273575114500896771598651280201039323134902296962016745873779258077917748983918523826720229986936693099246141140425516902520985230645563330933321153235750999345606884702560632539754411889024445463262917465937930811459663831876601729240616712917933508533644742220744491841919569569062413934115712861564042979182113991724941838113494148292374489640661341805090619407727436394226528438181964008089347303568944087646037848424656311223598842357897219981990613550996575447060132970033453621654034210819240707372021319941573344127329011070673423384703919601801442334803729909777765584109150257511281225315963798112809547952423111012097104677268178149237863079699488914120355509011545503184529015876894467592939554348119153203839165303956987577595193170876104860715719840338788341146776416891780033466448234324319031020986536628463343534950732737087744963734553719163224185146583799346883497708328205002249787383905069906877119098134077710896374883861301629626418479519701837110237620593244764291517211852021928406675835692045921225424118809039367524221334699451898642419034841978012123578403738879948401371370694012321124476595652649535471569992599559134361784089104364549809117313228711062404307130389198533867007076185160219953168885289362165816756202131428117473159160218860473176726000030840458792585924315902295650245647395936464530074030083313316483707007327450942799250537113031297254125542868983507418648544056846629538904131740348946897348523778203666484215351377562028817483065823481674635023911852910461781074387333653857823405708300877890489974928561163118884036919505808813197354401768699579446765016718612907298263830390124493402431257994292886888960013963746012261967824006192651741417329400086311349349105006342983606895619218990318144442962488294883059196070382392999363792271272526947349338356142669500091873906486576780549206531990912946512840206421317586803994767279934079774013578144043575040928777113576998221398075663436305613627003964765932657570231374550022362351932684824332041438294137813041931358880182181664503856405686588171291703787695095468916478709244936720315828120117004254200294801115996077088607111762176350609244171678178013580474883160747677134021474206725734738753142875423420013761476216138304496108676513728869155010674688617367755364597235117864962578276749871057295649977703919434147538431678489038024631158967371901148751526528045346089778476160341983263415146689118246400829502699721030134150792898870481424210885109667366384899052759304309616609444714410094638345146559058522717251792977812706959988221689607921499260112208977593389161011560828124245174976679529773046863489505866067550229470266590242217575894274124490517600761579241299562405802583713419976952474086100818082626029765301658579374456836835538040564242351197390469974963370919857421022532454794449467585584936340571459853804993800072378129002196785443552437249265277579041446459733661337564446958354249711129588902629228608282288862284263828690494861858135688625073140900170744961427779143824678948777926435862181149967992849601190916122985260878533967617454997196093887141631560063040536213463116458501971554591980006495186309699131052508594229789194204354819076191169081574094508296607654864729079711172835254583510047559908874913063062332729222776689789483716355588347282004777403147540710655172837178706763701127420704397187655078889415712344984081158254796807600053958706690884727395624979846144240654669494343864849829616225602903823777118927688364075267859773177366321914628173446212298664625922078594943283180676499652793678211873153999142375914058545235069361955997050281947745941566043529267501424301653160821062526366727696085491897328554464044979298295115626407493687951996210608812265658357490403446576101833450302693339156268239707536767450083262025829915245107571805178014883328158540438407854783668649176161239719767907701947235008567297282512934753617881253654670628194944970526751373099962182350816323556260715125998723904279023715303685171443951793283866873324523696884101799389277916047081761878739240238145077293740634570691325447823772369121424702940074826454163873043209400813477990396708244081895290339434248864726124282135209294849803756137642465487992220690515845786554603558289529535917954089105401551881838818326099231428753347769112481454788822813409467611680588879783594461174207032062408199529123302907561003975593559125606884470711835918437379552679904150825577785446482120672767439778704741621498955821121293078512042935807318159559745531033110200599797455070240852113849976126097102061760799397073634473673566573119938838619363872932378480428190619262789805555147316850169538910242292830350608445708172291970165130505849669891500621504155949766961007104643562629958610667520734969393291621587368469061036132963511910378981710737486063429217569494068931720427160130820254489493972950563422083366549101492688925816679796723787457487667226935625365702834655916102808521248995430976672187151360253099369537990819967911596432062040132272868541659180330265993274968231090089784764370430248302607775607402842252574355654036211904678703284609206265472653138039830099691982682370696716530702462987787043894464638457691025428748681168287031168369575534109482714603141520828590469214469396166373047957688987636900412134579338552288966536895352259140253028224904236036250759029154415705701367589792693109232500089844489400700636171941183048458503900831740693141732250436789888245465241822708317975218153392382121630709865836893639062587412411456348162516887018214134881083863416771736201362056075688123836172757263682726107719847042218854076013184905119937012363517861260371840058099101738761885080556614244549740636685162092362625200114905535033436636628437554037667683737124520677395320645288204563525729105557268803675950935279286528566433600445776582376327761948091918595497266693496683416970986204348854419837453694387789948557039862456417443628033336918557425772560025869399979122248449869499198112267618053745026551456533115966958660546754157512532419278130974854916885421911982043246456705043678992929355212646526038139412117173318773054478711295796221158524792250173278387029514765255007861579803503101746509396709980178802560527975875835706032954816023811225508198864174738152766341435869520194396662642491278075981617307413041872004952821393020438637853228995368918545680908996360058545471044384014935414067706643802469118877953069238521171969392039182458993209483590075322719158188715136493859985474355126511185338615359677991602688030949814164601216870520610914988286497679741402516450692318325468416714377683353344675699793179081403148642897188629592398528232755292899230272254727487372554046881274007840050947992752635282940043990478185195531770391557547181640103087326979090689655614408730264768224148022659318910501875540354973377066118573399047411762174179497577408002555543203386875919644323941945144326831669652665275558042118770533570071397573910154581827511214822342866251515297749184358427679255540457436220664343713174310767681754216460717739085579612929647166171500986972698121603626427916058531481884584664410778387493410511878894385866339894438365239202465514204912748978001310193846535530792422705800437478830077213528499728220158069027455875663529664377127465178822701633017725531934429607188937525404481551053216593988040687137697859373850118307942635555384258856799676979324206107161561191586803845030186761407993398130742861374405548241257185148451910311021703558959907573768917345113414800044401322034358018647273302019281569202229438466311313866050510835655029175831217324464890938291920692784021520543310426420674831887144308583932539980607420292275109985819726950577776606201297769997410679629314840397577719228382922935887478940942933893343764302188392104141083398828874180918472269577651214689115624403885733462707476068937190489032136892094835994030461364350391597568654372481898637550343631691740908523459092360136663908244157979015928078576142580767099388603467774671303385426446462866161739572582229544018120343149263256145417195443741464724495512090359274874644609337077069497880994572834420432194816838314141737669374367197448290037663890767406747560865300988691385900682039855529240500667371746621384774906163538938500650956448143885698441633262204726464766368533285428075108718341319202181238674114161791545828783765074018859291425913582954263126679307254245526534523315310630299116141248843034120358465599891862924089771763571428324835038567452387977607713667309322869457850453008616992247962229465411514152281436555205472028509633561185317319565857796271190615343827029728877994273567913805534862680053067564030634908386218761399964241227664348986110510763014683311961703226557479385768148907219391311024010753545973282316353319053340081187724212407314745663978711750658324884146575401476675617604371925621945387127801441499381950839298047911451069018040895269659808945181324770866038506980534321602420274673456598996686566255300610430558845580306323416309899962751016254402679651843686685372312112827226464463561560087155069430510688852186979082878907194812347624574512203652204931871655370914903445117037904312534951994381030203764075772082692761893334316765304657792604685526056331802957361123745063760171661568653724757158511805505807341294294103975253760678357190081115131198598862836950199562673189706362992868183042061844655771516537622897003475649817583458079988426277724538940206825799643958939407472631373505998301211474272825923614259476715678621335648229500925350502302230119026827877789178341101702240299523148172137995000101646341992940726179167444174866797331809660986516799370433100422115578876157917024545164944356902838979165578877641891395882385314998989295403020768609908211606397336982938568389135718977979609128410593953877684572656083286608908457824656600634218513679841259232436191114743553176346659747878728891038077171274052317733963390357358920661557474731343726452860108799820517796303456603284588139339307220870494740643109438000187753109611931473882687564765643657478994348342785408418207187953153378242060592423332320231157324900285906904648722101607598549967897384541917812147623897140370161431618215799494268605768502562380455849027995098928838338154015820855557225106673044431999044164618639605707242571531451013905498700564182802808594499917007781601450126050912779745120883788397019996091848681863122015971068805351163487870613101511294198431082266076260944670442389439632270966709151194387624277898372374698080394219934383480339881996802435260772892648675554847788799993112574462658944897106962065903607642272452695549514967604130545091941680206282434270147618596275268981175056475477061676254112532507118948326308300592375571466576749879929258928422466903354847455456966442984093786556770348502043200449971624226334277811695952521460400947570571415686329405501826450345564367577002787151840152672752032142765108574317606135097318303916322998575069973650163225984051150955345338959568192396595402257810421990446170436015797444433174274200875364119927533646473652444785815542140744162580440249667690312570404678672989004846284237838594940523833761512842596098273720697744849699199183750212031833857825331865367732466648901152466416918067193303944754779413509151078065736763088628310338612203674139128066369687425051182737753210373730390059678716402541828733173837132835545466948466557508820817011897890137164608902080800734696068545077559806697409868410564430339202796624237807294047189292263065954061312972756573219643909469432399617400366803541691477697123539688497363010226798763201098378861332667281239083690628434270066267153778517079442906085538686654947088442518904626941851660756555483299321436905801855580983825616968231342633774747521869892076141659597395815349645835661006335839389867222866421141351829458460410291488861632169806166502211937834035812108173433124480378181184711782344853786397463956749988881892000927251774560462871255018996016263128087614224246804038036887840781167363428007597485237522668131053604276764806088562266660944108132269045317208062227724345413241963956582762048369398111870039349693606973309731549384510832553561934229763716506071487244990266066238571341456508835216336167698759110842367879323163855478282421023719388044469214948139322028716570178336662665467770654791990160890995298806833629743551201898750826197764174041784976202162626234272211196293582068751320414444915998870517441206415598126410537776915108692503599924541481509493981359147550381952254574585861920211697898568030819725335975777582985518189915079786356339051691580963225971966118185104788396306252332400505521487811876275771054677093800752051015587286507541353869891745159643885160941567016765678304268203802644340063639615923954837487947944474737060421869491135219076806865954898579114192552365985414300832941851971060725298682438795707947496358611034248169939392338904996679309350595207968913268143792651464460175589018651066217101746781936953211197153242299853707040495196829276153155861838380924192363386413102724639228677325537918235193188892175940156001758895001550243117893463478528723381204816253989693668800264636647741291820151834318004899196283513089312233553326165512859726059719970212609546598839740000234782296367331987957249026981949550015809076947888244162881790002614675265835635638912074868115150098291264395850194560503412347450421460812796651930063245767534409202839902110020551350433026582398145153517839611000578776232374518242844833659150484757308310429585516754827406715958523466832981023945227960530686857046325821252995371830767215453372751386301294723576562969563106596465741386423681436681938184028732009891963287477410919135943702507308518857305738252391711188843453599763059769708512463068291285312651188643573054736329781720220933283241280290868751846052275755497498803417895418392534268976604557632025099077201373552125408943446073054171726243212766574294861733825303533354979008548421356797542191772669816882293805457995747630706587433186205845125059046167981425317733040547701011474645615933215020316910154248468309784842074553257782438025625885017794112601026604901667879811300840601985831184965949174033253274363361313952430377538266491729630599306156181283724234198462309162825694487263183034596886515421689548445221526365787479046775511640514564562813136226605369889842328295905690931685672924380004644317557088477106373019294215452095617796966342704025235772694831227447969740873931505331615665985401953333214605071990232813623169581172205119832802376722655434245968585086875375497671415886954048381933617403945188599074028250193733423563352752675153840778921714074645233690009998339599701251090650987137142343185577576272598574722340963256688131454742152417948015408534110722227567275440768270438281060490133472973252156482540470509680842065682361459668194564662591700962868182206284977880872153437028742805926489764421079813523397240457525921565509523014388761163024420152761089719448079106160094993448418574867114737161387525847914961992964784703266131280261142242676785528793079544278954929100467397364576430597861276163883386127126658111916777507195203489926842048623028759983008468996573233775172242913962883276525241556734187923160698893071078781729287360342163782953847286740149081300779266494470418677551145654357898110154106068663531971707443628654303324302321990126562876786588316507734518457024048394258775206321142641414806589642497494538487909062411204666787922455821253885595331929815042816513748958133587216936289616312190553523634726258827270830852477949330077888323876927914128788537383458694975162350318694659652183189824518286549813150883225288911822124798791663875357705257505963492024636503827456203275163743340190146052606042853366032087184581740409774870238063861519289454040316381531324436880268888577452129530730067398834557418266996197532089461230013425360794051344295041949245372386758816694014062136876428897733457976919686253045122548486148454844245962693525425192710860502496603123043579424929782533440909509805027013184876372373073328508540137920651837125095083847330056996343976722657813254687168407497041504540457492488482722894513410006670449130533430970932786572376213590570817182705106217122934908175991792828132152358046280439403391267532660898327237281449141265058658881824949856168547131880510924309409342276352756004396567956665461765819550731109046664861528155814409621866811171789804360775641212691213940967857127322814690399698332709294966328717350636396232272824584807358674800150276350922614601577903939738360343171507590308690461592276249183462662401625673596415468109768093289185912065059566308308505499126257024126304917640648986798097397181357289633850148743257654123253831240860134444529489642992605137350439857951145883990091079020285312441904446961979801673185131173697523631031563360279462639411828514877091475319257132372290399536736372240203987032991273659902033759828217302735507073390807519597021183565943835700827068225516854714089474501495916431111110685705212220678580463283795562805775937403214969902885640363725320025886356197385782808706681745889766078103103491374944391590971337029983935425895388219017200678862178420657445370338787928276889743613691481662315627747944546118554293993709499088271963508954582982741795084323422093156468056390858075970302198329747684054378855547580238912342562466085553236097725888584766911016520046518393013355675802614527663328205511336617339521376885556788720309699641832550547796123408171966924027812864161372279587230414214889573777542385295113048968382062790795181220836349048604994757408083798190846048065484713071091409269740662477980618272895533419033866289792580152557698212199065059810351340627491363459493974143142258408920738271008259523792355438586045629674402774485339712630299443494501896434744921807246779128637765907155998027163550954322857402024433116198272683783105008069971719851864069674592256978597986981057870808828986476399967779384135439339642150876243487150460200173261774925370212481005126473789982527745795292037807189184410893808566346127027436315620409599230737454206010875516026813100868116907148659942059321682916335022922945527289180930406791362817115001294000087133812447651711472419945284680685658447948125403663525582418912983822742645771493060338738450630315438423071513977609268408372197349052405197474352017308108604120688288033511769935795830196406988265085270399270502735784908723424026053013717509095753587150297387227742619291004028060420814097687439982683931370175184513924829147847230867440994788664402708547764118015559285080646659547016163183311328396220484623485554419770040150561650192203398815861248931660068803755661506652440270280152439554428951099537915395140325328110216345897371694446209269749074165843333257728597388017822854548250360713857812794248103889210936268215484886691117635177602587200956452819802161805066426756330425770982913795034381919830713217109112153863013430405978747872496364246370111659455250962501649107502870915640678026795302761963040851377137482777670339048202021563442170127047984022537994291108696822191885678392333303749069313471084587865816736996845399517045046895573848443610127719114731224761113167988114397239048608738972629019828386400204903318916768178747052884883922384352541378768027286560612402768669233940228960693103508263040017891222953539061470928845347344258823373869070598993112265957346260722185505273435825402533303257055924176018234712984896684940609416333209710778261315714036934312840286476950162438385859108892130625083845505182919472217918407373710125884932810630979152040281179863274967763544368646268475536044651027121935907533389493146997767659720974061818461106725597361323688861682428876466746455465110343675130482764329382560132708363359347732273056349652685629273233125694529961723561934551219665025163858200880701225279993168513774244228470013802427255268900291556847311655484331305589412131514039055548748919454021538979167562273510466460893663825184177918293330215117698369551928335892540472028888913770613079156581991223967024221903532358804204339318844784332088889012329288063682812473436281567394078007570950831877119474251239879828734584196781334494875822484946336546832387906339200133968785334212082222417647299638635641257986659045486147564348780786943284642269928353862453749977688188521845231089615698835602696401687512432756001633995412282316422722359585471589889862787372816521434809748609257773080480024405291504287509823110088092883859364819153378479617881296826230478309348463442991035947175089033104315241995828086060423387844764067173546163258742385716699113933807286478117849157624414084100274331182263691834094227050141531886842714198558084043069145578475881986574470640445846202060018729897245286029869744728494679398381680349300398965360562825374860159904202192818982573746045444353908436657029451093978381275819688752971651661460169783729209980192782393291642987860658547369719873799739839932247210000878991207763988047575059584624228149343776390420470081608767400338694332562186310113275819548827028817809298232704399962866589391361346903202971345794460999712022369516769503828821325242733037079865818112547032388114034220820909416236926449812643107882529715848773502225264555147089605110927705649663106619149503840169113824389817237806324812400755007372601739877236905455132257679263494360276709529678029010284162390434368973374027703361023724041194433184282522987967603920313386427589133181549744268475875120977377492574781445746004373015300236032965153852526587191913898947902759593670352761247211360606461579675113671507032999245432739465066336107825521936440200220730614396937813771622066603795198685365516425118674047805669185018065951514496987164525161147320541856851431869644420796733649536861977255723977702875668537714233076916182540241714966089696853110312915594676133213872487083587819246054001050170932898933487915349211727368484361183251206060350665992146658325347907512995154071470635326089325102136217011525928555880940007569496036869181192383013224282314743703807993595589055730833935370391314352731613144358111208112457910861557389275460614244320987820966481599967415240082426373475082966266529515339512663606890053381271970468291686100554995255538177326651396910684823587080206834593177974267809155160079610455408074729120844431111631247805669932984239863064340607062213645719628436715989391674941315305006935038540059229014954896644421969993547810440789893474101122675671536305062206511877274924525416440333368562423981182951204278986844657247843468764176728594590331198403144540582795580614276439671708106876811919122579105630854519273165461114628100354228506591334575611418035733658449703902663286464698580601156098476704162551400224599541341301923944109995974409574889145712580542859365489056072113014241570277923295737859745946688270792537806092406310489503161371585931047168639757563057902917590568187039751849430690376179003054510428987740805755819580697201807337138867771105441032663448256861659104406292371904385372782778977301270219357256983318429173577395279808928430763867787217227264232761702420260102811235310132115679323274411885083508024317228195886452905340344043719269972456204752629774967144247574155740329530569083820651631632925933575791729765214083866764584426863236540561387140435693001279088961502355231754836205157683882181264367781195157254075222898711822562310877589310365972699997763227197902126710829692234728430390574886884201441373142561017841686819537855687016378675798373786204136035155690537021451745680086980730046715572273152139382265746652006720897854877887827725858947316889170744853558636563131185371083166022822074714130368141306391606118093374293156873127584543302673646654578029090516247348832364477708571294454283512619549552757957748059652543224915034145748173410309210633191662640416164576258382362006985889463021565245158741254375012196936691577887553953084158270165799480537441359486475848688681218594595718941924176009063234508067449568800255060924421953042549270522930846587469101019657753004394344465415239843579943689230976605388738358998993939428930631892575761531440095792972571516259049189451463954881913079973059269788560852083637075971676154215117313116190529931143543270230982875484928506678880226636843265517947603331050502254818091028780784163027734619644716552468567467053386477780606806032799265192673490090539363020725088004920841546291441913127442491118270165707371638000083118906151986740622505483036958797068757470495463769735223954879314661730702818958845655907247367957105155438580478386005070577932601316103019929552489286779794374082885146318367102723554739441938817445715468381211216814332760599314975210978327729938597193505949925786599398137847942125324685210661131925903376591709515254242511406052394809678367475645852082075015902867170600665321761718124775065185787421220654723464284900627521436791284918399465734952016050649972883591359221492594402092548595095899900190671253075641618960707368373503873670816561779165130980023515122485068649507894847214005093927503269341093800597158893323123400374051664140043816939665784134674236866521728412539447829025758539474335261208923866964274703858529372904129772506791126020768045669121333784298555696877546602064055519436390647309270195754061036325055656585313122822993401135282575971522954312148876551881907166379941109304723371117473483116976718457712289017690363223233252260571969181637400670620579668157668244396560486315288853072302383922275782719584087242744003159791368000856267430059366239857713954419679896441841922419885345178997257569120619705473505860385112051889005875634378844508914756262920143745685495137939865935172588371105630938592016907374189697093225973689609952749296783195192276528738763673198834793802988367207725650647114560857918599959577493268848619823031403507718087978276720024058931119735970409702223675133531730917228639290269417943568257606995411409939359505632172377010700310553873580663232484047259152552295563271832082962854673583582233279758474896240169846815387066825727945859521025536959770525055003323251119206745935366101724470616751656005689276365210202210918935631204415798623627769478684848391407879429636111572017164592703096337418302142365171097982177504661258507656806219445245451193811758244043918824009487725862614198023091020278756608922376850348679825345608586559458864698933071418016918918023042494739221253594049354002930400559371694775187774927817312928353379141974947777667726297014053883457048924022879460606904064680439060858949321000919819339138072912364621180748240471547706024490113233755640624343901806311849228373423525776145989443607067531296471013379033039886980051783959307388848486541112273852544337190078117353546217380727918116580475565059755681664332160277582461093628741248823047873013555431918092904688830168518226899619566927716609538526006327929435135450700749364599437531185802036854479832161786845006578217337879399541264552653681692330892848401036883739673916672635304944879498495467230425468210020212478164624136817630352777954155874718911930963121023895642890440760324151573067731734392246944490787697318475819345474818569870129096562601266976113707499834354278618937920400701754568895511083960635068316511831379540704854013702546786321327749604061733208666452293541477649526434132080019656598341574892314146560371398137300943299151954651065260662317493288474927717507155426253452804567381153075537087864791089896693749181384399513729863627583420085054406729848848993637607097229117313991715510691145050895016895824948625997730632338365090828021533892314184032225471495235986988813044564165408620264276098635772991469782908225183401736947691079395785559254880220181532263775188778834863414071405368768286986010132751165351893975719818438146945536237598734523311153312533583738343855300456684272805839891290637968732831100050866136532776978188515871549612735406137787006252035369347028009113610727237436097164037033851435009745674351960536237575577632657689603787052735119444853012177011284078970573517376321544935868610399108814657260700440737587501314119682802778193459742969622524107317202240073921596757382231216395267331954293213467760966804972849242840220557536079639510858457312551997186697652174063189753382971740348318125814022510486328684990738881958537410286392186191457040472643920862232110163813070138010467289846887607139390661617220790834521718707761013447083886460413814756455524777986025542614789483379389021114693580952858085847638244253544249290908638354936587600350112735289335703741437815085120378950723702478065922849221015356666381628697171848810089350037601109436504806648862676646316782237207313412868503625705751662685774690376427964949724900834429178635295907869008154233281773588820689849117085217361949128207777146649316782331937787516645117404775208482038765686914851943015044062708939214978765221722128435126487606208717407426278738486577157141074276421643645598305228663896383634755661656359889701551749931372282595965845215961080679465559777854169988952289329368506092036698355467204052414959058596132534158899554957795104271970798972023143952202601754302639684418447170986322294479501649335381403804650842859823303148721018449186341342287614566300927568934458611709553070285144059661667156967553678858717276849290164908209305726514575526780605011909866178161374169971152924599322220305504949843475936540717155062372439559590692696662796579610010998558012234975097790166752027399848154150457949621120952623644603910571354611819814545644814970908042387764482580773480651878997891328855509471394827315122977691295638020866142180979665480974432778208686616642389269697444786326477419580213627796445184531434546729598403999228345280291593049929224119339916400812159859483995037544550668729244133117707800354685401805151423979749547142576774028490600147708813583648216906622275796546492748689384722712982824906550714668179086577494321481858877242088530062554771646230950569786989767503262486366372237227057771447653756394621569047148343506280302195738597222724693156877531488459766432928838041270010811496768114540373356915057589728204321708811583072453194963617456671878100539446821824021424462557416913945292775400103030690104158375918780366385305692822168955638600322446832044689728026561262553924134734349111354034878021444606426097175925341120707272670959614907562194614137487301553486451152537187652471617685868644725732928058629860945948259237297388396200735942971968084990396168863869497191795707943567070761153235759639109451470028305473577634444558454037829281282516763371754872555497525166909192784018218570369095013295770289953040515582118833572686565908887021545116276035387663030788285534581434885256381966066949242757245257203650270197474721327877611473296752747305219257492036718689403928519282093472908339607239349056216225590479261726542794243690925777515218851037355596889377994684978235668403412529531549421085453201513033175126206359248992663588208238394870150228858119892955116557683890151503511376247042533399872945837688317759869474569136475135601908622289202391731549017411640859448997012503921366958621349354740662825527897241639721569019121467540070619404291038570601497009197433792394783681276691821606078136630629394906155028090722457927571883150275550549817411717275491184243558808191162913235410851432601520390729036742611440260863975940312389718768835442371427939972595171933274510187666336340177161237234159667848435396757456880046209024451041677556782781552809252055846680419290536339103384613840132079463935572744363229740862843001104758086163955225286283400582148616645973149312041163709610972390964771557358389605844701983682692300361534066111213386237084273534167634509424068595263126661849958981756645049352341376114684906531230865036692592051095789347336524378076669789733787185069851928997777979500180741920984298125295626790763346767879852136239742176617465637385716021858138067298050767008426592972167991303199547469645131659706640105403986005309635478036903837000477452794947232926084903973719512720446479280777884580886353173731569096581709052529312792455481819554278336574214551342115674885303140012949957996766555067766949032715767765369656908733690782505202034839081730662463202194547644456000761052236660569343063047994290135275443314449078865858327313136335417884556329431187677685194212646404141519444597616362600859120657613674646784037430377282094937286051545238766128522100539220983242073850814719265854266562424624575808012436745529216898803691634604375285531226396832969358074614174100523904000357660974876946600913018684498645404954268390390446302848906243784011051156429027769963612620586280731371345433561217201015076119310335969611676462569947229437959895333559740528012901563143770132812437769825626028909417566292490770412066640571724184190004008551397396393774924748599566162761825017675250626971640690531206399201240740607652331181411392555912643494658612101737698445078714033960350455594488136560018343036823792100227057214890878430747350757054171625321045686925660193505857303717534398313186687694143102059482858518383272034237980642323564151004391980435300398535184188005287630006677825720982633183377091874311614608351681136274912310504010376215750724215925173624688057627780570053493434684071644076608775899794891368107277999578110749142099069633101130919741475210146646174823511866297226116281326333474647228734659907631780270800446353941918490988716010081619239519984839839902512844877836166212012290584417772221164130597321826635266639936670307395222824352012854605664101018982294224192226508166220250305571524582163462723417874127920796541459207460786254578193054723542039838248449053364012667392092723048175069069945663782020310517484426574171741455376567171247375770009659852584762365212589587346437081094459938203896967643233404051776450936503024995891725643530644908529186343785382250735211315792684463426024534626187989222046223434012596540360605244652851922781949669775829975232528307317738136757853531355474806951447646468394100504833478222681593716196322974896627096683004943855857967182883497439430921700912075104877783877698144911129446977085823650961177388066791192263824485977671959249035750773317829313930818713579909000954298678479736136027425538371734248957367555759591376413047488673416613978864391461279892772940950356648956494640251253567324608468775490172443137733417328331256154353437758940213902497538340607546220179875270717931592952654015757860145016467241623972177694471618518810533901774390085919649675473416485276107485061373771631266549095111724221631096453598015825277873917000945833328273052474574398095969937604739000731251117756608565020946819186075054362203268841375378567633234502822836641475339851492450098086765754554371826033881220694035158777203617891368858896822540984911823853650688536716985799658030778547387256481235376258883003763712741363701812794624737764471027342041388559829869951262112139184406781364797371817621875112800322248253844795566250831615463434569036109004968727095538707770785159765892105174065244334814885536407590166736012275669937091422489952973084091494579841712907148266262371454344075313477837541941954395581166852165436879966284819161979916105922007598331588278416311240500231606812900311622410191691193031119282204816701411479767274921019505873058709980014556081737703879547063498509471924842795100453065082632648891416339796010355126123203162740272522867327487812920877378283648755720911482535899827830770116037961136800631028042541033922406198151929172759922857723343960234502400666542543427597834939405617686683048543204333900039227645606679760091486553038803935883077314782983893120084706158694550546245220402193532917479627819599699446975570561605196672886050451457407263640084764347879287005423216347440294232176793023444636593887244681518774247631697825720542759010322326683907554814645719859406808183896292688105650877438439175807798035356672173248804310366579890774424303322816633911613543124458665884026646089178436439964296702596788278819541851858170820498659285575068473357613257976980345410838722014803127297624246087223543411575144560890971057074478468039870255492517797126745832152912263185286444237590811754562598373277323750725645863329900367559732803163687172457941345102455395359332838327156851735230961752678546376421497818110472703530225206244363947261874614750251709567124080341212622009678663690229717762247544222711988357035306572403456544055073712978849857173071324954359515305809661424453304112103375571239621090534643416974849527429546700494405500898253385111760212361647160196882218451959777723051449319952589440261842237339503769731372920121551027067119627159698890976071121979165641913167647323393871121566555700257036979226575387990365358002270278184668618118993539976095535935577916284266074138435077353279737423153781852170017832783138929886325123098485209295862841073578835018154641005585833405545009544561356815018027924576396957930043560723883283277689382299574619419137708383270560714538642276374322026658288390675064246502030449910936695571111149317179838929145126949337862740047235501803945849891826784060220552257865685428142574496077611655733411117461213078355221407565817103402443464182823893148077594146172997852106540257123970062999788430943495613587379104536364512086855893126627272480801448097417408571074742518627355762035011444932524323342626226909574555068841220017590620716879372998816114994929853654880274720643667353828235822196022073162398252883894872125741070959967818782384309053365696878032112190264270991795771380142283686379056530291321177994874469893526677233980396032353937212890029541032287189039847743513089458270431161559536834541373455240372659852794231689015183181642613038928076609252133239358577931827672527447632845638786067051402110539313277791719791053079533586833498470464823046888242775286384611012104969639742824012603611711555899064149611309454968286318314852017655445440528683395280897482650020229444092235183680107681281201842407792942851653669860688061092507503584424476363674826983515864227123514997402308809124976596843252408537532617515795126391755533575201621034666368620619158663222114999108645225500405274443475685298287001680210397735417860352606151351274849989971092752277531282295907370715674901198898200052124015877309286175109202509953359880584521943168033661126458751439341311416954955819076974951071404170582644147125962991969249289354888979420450160500563099810860836425902936012792203353738233359837945846785442841702416595506804329819115524076447387503900875310688355020253652926619795524240634854330769490441591919347008386923207249071831838702280040873780495182129924405492998887139091731361029979093504140158244461846408469414125605540697050527072229001002698330642590591473820336129841320484962769696291743017208345085682309781761276362176812406852002570935446278542064080920080578951852495894963357138247585690595147979374774699642109413139990587256521811230522154557015754844531124546805690285255433071549283715490061144548652488498713293452768985016013752751196100385786488498864978568187950764793778845333377659087251316180475742186420951394904569478822315115134640583547797002104112141470156432397904244238824308685067730931839311760573156387249750932247879259835851569319001784469144437861140314805909589898135990506824192960941906940941664317138148424204722555918064636904425074302377593991300487769083316829153475719014448353155808211181110163909809246378860399575116705271365884061124986088057382161571847031163241243930260056694874583762248132615574517122664835772242539345578748810856430081908418062252360686415903234743809659015149412553139437815678002407297122285037545721440383964337365568216756032163449321969401406360192363479575443771624599428599047832658891167945355356191267713368776231852526970913150974794183469626355961525637827831624354337696296187661574954386999293744212268061784667346580228106313908336244773112901596516110732948811266029776906000325102058979989538812106488298206410538783666818063791503155087467243166293543222458680925758919346475341946698927805558026466146099290302504037015389355106803174185854654905917803919859401726463435963047549508090940471123097318437406910024052999054112599003735903980464011330781550297969481817718118438275454540995446378814457896003859856073152925896682747230077883684152285598102425471479379147300062383391520590607834525300878556641990311009443107272819714811340564927273208770484440589372714174262297480067781434699321593998655593376669896006511999608326376291968890313867165774339157344736010835481088941366512450357024431469676184986367783530273291013979958602343098315553898638373693733110962193992612267545407806634437254307241002810227247288526104234907720952440419212718455617363424093317564724668649892375035082300549980635549375955390806943216047130226490267159501258638678505681323203181713585902269311138960164651898772959889677474235972593330429883294002103629685266070307512856946334964233508453271322219141108177599773091295782078063700884161223644603951739177751677371240257254496558508263687913553278619361961578694662638173400092962621127481959741944156728314416139495528275772786728640163077999112491599686378647248765534635597525526187860580504079709216875603527136977516028037916974778022016134550420101778925255042070348586502693207023196180265153568582548505110694829570447018511833449665846143259559215401248032607953459136766794801500721795891762870023846060252855506347327821348865384707713554632665145093127965767318347844188223776455502480383769117297581987833673259791745424531779526703683764691793339949490133620373081285994155355751185444574586915582013275340763033615213667570253676497095988470776935617344562221455892192788566871320073727265459529035631744086679017876714213936784792724306553476215127224085121255741333080645348624244907180500127337298386956141176229463217461465597255681476738983836528646832851898917583629573859534353431048788190089793380247603743293021584356339873337022000610754189597501362604351455283695594719987247303637586466302841351831356760826467235878126040902260485856516860008572116870803202625346808454878444505950566704193737325373824319219490617935890976246361022280907703773854055447885593800831080268841395297974554842677950267640254253969102785637866410627726643283901372420872712801429303914701065564659092764045618889131322570978115480136995583308653439970557665684509988483554174021759480086742311563538797425482937003972099874665562011615736662492510333642280514825481432977023186415773860793250841355712976463981511990340730184805839341956377482411444571168294447004324398556506480872473819078613613914341425979249349701681826360104419692675888248071950670185544741856060014615321569680719006301848561052927564347414767173594121000403641311842567038514366599070122482268080068482430192829855884451867460967216015898121123394778929037527430211106202676942844623161709102899843036748203864869527559715346793514706765965171015641676555139469804348335298817840988898823209798418619731262514347463391543875678181161767993557006011811161918311664402470514786592487026887231266944581926046010917887171337573278010731111540509089940361111711445827166705313805183293597356932870886526286269391954193338472259293295881720467638686644984146440275112905677485299741518673568849508712146934066440963998384538184553164869217852413961922927995125032722736625909233220890809249109514387902974215940865939982638573726123078071872322456862909269887603371154801450600439128373404354947849635675240745985684870457602592010704607871083822112264905185645578415076754796024117698205439884498108109996807878100431842609338311200260475523242755119647926345977253149156516258832012631175305213357335570447336948083864378689311587786712367258282205683073267583249618480905560705180553084115861182357972179111804076457715168430110420119471674145933745296278590799201369930623358543948994166180954705816022577083101000774352072694661541861141551563766873869471185112206243396767622021459327148126609097032310437656275073955202865199926175205215319765631397000616027826444424271158363894493187398516408165593672804476697431393481247750926127029398002087902351449878196080225745195098506647311019284572779679095436405902495782917658834079863348229330192362694722725434142229278728498588604238351333610400528675490535837235228597880772386399698565746117093772416638853471146851930913486109359407086308126777476140321801032451758722789655588070383323685754365938709957891336324989037097038989558397359196605803411948562123176541097097503243825921619947257584239665395507837169907327138541659539451662795219111027202818109204509104119676907737736256430863171200547944737074494804847467109564029402531665290427879366646370111846007876205786142649023439355708037902378212471085311782645432760466628336944147006814773315701717930222223963912639260155072502295231468500005096201448500779854309496615362022208877568716006588047166019149041241589414322130270834471948908515843062486596877299592597158788836324025602191583316667978848708740887627032709618691597706109441948116133731859564585866854289076580614787184005711619269456724520023051193417712922642899427394551747858199314714195868229023751649683369381158271140557473057398818263352584421364062981564288583329205036461452397691673118591090062813056567433997249566548764576871920996531332660427213601189142921004527240540317210552347512603914238959166604159750650495273516397377453867384867963531315127519502957616321591470210040224602423597073311865281061519520782346760552278630115563279105705632906291339535504066584790378822039524389786906532822388898451319094871584730691640938984484622165810324405704281060247039189308687451813896126569789844444780091941099341990829147841766291938758339947401963370311992044259284549936334440810395872389164031312144856683271382144775391755819263505697067778056996946772964746980655792967502242245390805429900745836292142892908764690786291658769858362197640910150098254692043904866608147248243164524379047722066534377889451097074889742924142736034019710307449192007456381589308411409697909317239988242248544661740473256839574825905700302660052673078382886178931605870390767470965004627630604325076011063996099087827156623032401269385298051787603612891231397322724361266980245670832584180974291348270555053822448494988472743671247785530796114305744819818567924548708852365021908557344488038366606560438153570433098820231123942599026442371583033383560842399365592336764330922868383807842329100214366270092030522557209005627915109655826171201162412042453911278365159383407157659230880223667418113572449997724052836679692794219892500973541743122306297567514875041512471592261988088624803539866386872704506647062845055740900978644703256206811679671281104261354703214114872159430352131250483730373214171943112209633447136566958500729661210984008358249849083168708974765966939440818934314139211459871285485148998423091369523527028065035970673181239915332981448271729157854898456891558831593086666227866362954140640063790365649526066493169853802787593436046922796467357772817531174172004362082354477196786311691764434190653859509194570909565010763559987966835448374189448430625492642012304643582769839568430362363042640568704460815632704443567302123428332224311683962793893249496646267594149786927854191283252364932567662230064788954827732265333036890404976600474571162011859032111764482155094463082548650200847805252821752752276824789573174615465511428863224085532887178345432102995385706992748043651068053731540492010332104522530001836355278758134223029841576235399994111403119638644156423432870440959621071481320492547266544724407937471960437806009393582681930724023066701333492604251041144734563117508394612432119725324356573949264572965855520651478981164053569131489214513817207971376074383039659568970475407578974961209245891484328983481197396077607106283571267537064311310543760312866242829175422167200727872352147765345632894838564403005515497490735290011972919195059465662182208546668385482708256350013081821807660263335637975250778531165337895572813601426375008042835037341410648968554206662422310383323386599272819927039102138095191870849204088172585083634379872841675063207686309089690047045300582706190579893048960753283553533783335844570678296112931475331999326553615516474446559625305415356340392033690461992062988501696728044863972364169501947084709736693520254474887618185851604854759022746011026145888814511957720629254834289791666690771016446409870509472938098266591676398234485108008024876304239671018405426049288491500014122670017800193287824091780496156334370280730154210764447595644803864933162807438518035461269162411866699179792698046838872238015390118086522609296766371903207591307531037619221153453739047630108881511604105845460232290468787250990973903707244096163313917710762154580238049359234117225917527762466199723329066626460091167535782906207839489845661297064320103036603284026486327382517661604740908012809857335109945239913570306664757173052923888616936968267190422635940631707707961073331255385733891966013629566436543292662831763931211922649720377763152610687836925061593402680809203434115960433574339506878694509450936576746335619720274196658080772675015576609372680053352687432473159267932733339618815141785292416275210351385019109920908675055075910444569016118855118497451987839651650863671691264591250011308890666587538321140525502739655823071912724191907953859410414468013172420349366526008554583900732827557319715024025522460139303537149965339768531597509846842598113823965536152044895943763365211215656045414592984014910230798953204515761661766687830864664182103030949699809098787460372132816498918636088697456293366681479310771748132290948954449115973490390717568069294698375851004444787351362324815463591616200044179625523984757751910959826069137294183791636568485197137238130719570507062958725993100955147427477131918989819020182898285220649016129556490594298868232076841083731642538287594300289219252228909721994599534816098591158891315688406913144236179310813028773853571694075699987472906296562445518519296662599160418750109386925184697018388125706296149727466755824821379391485486996574059670178252902539613941414769584186726601541899393326618542261456958468671410442118026266768393766180852759459502558540555667743941398716648219374968697613217239657854668207213863043766256714672349150399556941080253056734141271976054885412644829507870997132329042532518672493555282778060473611359768485394418277911947693417761501114763552034235988173562263607625329314488010413208285600138756706040334203293546787996600588207877735191604173973001817213709800924992602058938481152516249883951787247687701064268865694549614756355199003000336152299840919630530907941305918946157648521024094315931784954279968881184536982062617077938460143104067842989737903343258245095278231262498735378234182710342184076776332699238570409504097623347594682775825063929028614512515982746487082935704275400078343528826548211722664531504029668885168830818493891635982627407545938398209669012108528617086199258604688505711442743655041189451197918114016055214970451329882397628238962350691576890274339591530096349692924823540392560765550316669429679075196753582973765169560139835481878645584393767080037483040340404248332892172739198433243886574461066556576483254419441623955152931301943186952868893485647012017613810615118313121881960192812058314616961399851163248747745643906062832969478390831074263592180683020596256627521774963511596954231417815204340215764715310172875092815426436106862442571716113868755131447832322392441428788767745071298161002766217256872735588217136925537829663150792181368251588082060797186454289979901293194577399618745281934493349034276566441292150103038664048979387996726714275224084707263276673561218016804455366734923093645561979069907460307537687816782760345736842957336545640986497653749270256900069246933617438788089015902775180861708292613833647901026439955737725928150250390200683276139874850360787116470531317802340000415145402712552797262613467263006584969528810701251905472350046767938924442052915748917540672979149394596602902857176309843229043060876141449482802208556463566185701612336840466919833801874461749603822309496165511863447754810668864034529213540674669386002033429875391319941860020882751309398366153363102130533749561684666878314661680758986489144877897693423993385346371658121974271671355022182197693204061337782242441139805606018860952184836806745742809966768267945804956248936431657955404761460878012777517198038969147972766368754636515894638348913881798096067718868080992840126739382515853054491039133287399804611810383982098339015701648916637958341499359944955954122432359896157018857057773784547481974817335610621292755731321094882999712625050225195831784460742570979762705936289885916438592615734432436579190546356000427320098196880688936953819444328892418191122154954087979162365397556525568179167701372346790107963963788176691558088791111701916712914319425606171641429616093196035502211174629793648007683809953402293570624933401956614399835866080758740766164037592735670914699128283004121749372942266387015190422216824400682489146589772767437444436205778608588958643093306910404214497500748112684986521589133924900956463456102740612966660388937444988003603303211329848071574093424386026329162487031029412952328534956524902880013226115151949436131215815055650820406509117348331405051042132189087055135268707179921607829429841269513199359237488859905326624685175654563949325858106178757731194303562510384233843986249170456635852033349890297365074388378416551521659394426159941222433352313564603588388039414189897938822546388541219836718754090723397274890332509529576150947165234533349098308739176958242353485440626921482095368012117543507629700040120473244805163642093302769401524593512826079961303717806347533008946418267059182114799385302180661520047393643132247449264893563179885723249205409579465288530642281453350804732167138398999758175040827420011384332564023551387760791096648674872090135825262398385556148473656446179107169277834577905083074374513051558255878795626027758564692800764631317974181895491193328846450180595727812954511153851869733315829256321430870457044065579838835591881636937145206914716864246599283024523868018434393961927417367251198355707352981527338459610348709722324987239531501701961964489120509054920454770246991915719782003289669918520373811954088195738301705804630404004830643878868618943462067573307804464548300193019270408474789810578438574143114244480548365349872687367776279233695659837494455003205633916287081965437044446098052917881759889953338928727061044153301928576865487325149752547040577133121622207816725789040438172505081314941644630699317870551989711638166909729841189489128534913023224579521873995931502652088371440243872945034397007211065625898168151212367348347514334939569539859814564506757684612308637827754712494497605155730832092654018115426027487781142851786449062720950537732023385044266406556601039802949011344744091379328601698968126503251039671866901496126048040618282963549134626672787797004146317815044027200839474907219778085239972213281342763735593569715310045165576823453020254561480732189417381822810163923363064746413163318788774322194818705821398909102822305646143268920198577183048613688036091560253794065976492350971753590365133970419473657380534395899573108538614994449652815421621467085464829230413841145182171101619719800709740105814769579888260054376160263014389476314926323578854854714097922105696068634612095303364829201520039457332259869780389360257290682165102464392960817488706625782649128143821125791834346882577992296829402243230712521518609413402295854813899441802921522477042087314295851681558026259601802840410877750205125213808106169781282022633887064929880777275266873676069632044989191977431933213289838921092688892351801286709923570566431373767476417842379043917658327410638042361884579976690595878045019745952547411556058770364509935495890748708556101806861937771522376231547005357844989147800083268429883985914977340079525862510491560341657468116579954689785166731211262095725686114544962018443446135483622078449080861383220132078067975113918465876076553874095352931414077543268044288074875206572639261516667382143112413404877502871951618680829528180037485613909974900731303605452854429855180001764898531737540386926827847292400669776713053876579176130228015919503747170749852145499865343530479578063695359434158352138252367621346495361276597845285249639204557303072530725396368574222487072260532576645303381332403919860060730951221161930526102062563452422409787109834659344290636704863400430068649458426423873423054251496677456359366139095294490441448413386777116972344214456565830691614860009604910542802616855134382034975754946121198553437742776048315752503009048385851434116051245650318423920765394826101679126695885821656140761747199719613528310196991608422494014239187348943264035612450151869037263907151815723708236481472503671867412266966950854376480629156154061841214085643425939498342630674733133625655178684438113443121777824419762283114897624779732015317260156009141585524434685532478460135156034270370897569135332670591761207981566015132804301313014257233724199798855726560431610482140294943778651355239132998347709814708083694416137155819797679697438310745831941926059369366297272890581100179466315875310451274515037122621854766633025305268049623173706956507064817014501959758888265604938853834113505891511373810530590980554742446645690358030462821918594551508955718771034402108881140940179959242272778546594053733174863055072330866963429475603525397666663181428569678172216563816119050912183794510832082036860005455505894379928885567920882390922280117100190533319718530001182171979620558879948448510767703233764578596709088246538761770879047637867243979415957377480486796588088161499287324799295224496157720007782163056075889798473953647964473198069733472826321354333576934149498458505471142371835389802286419994985494649360157438345126361970232460669713924386801500594762127423377741640379311238243940220874242586142994894365962019544775596612913478973506265872435193925273933954472756721020208435713472564632454922896485069291897048236389922571039198022819298322031133192549814708200737872811356325554475160517335631103019324685417710204265262489026079870530176349507102109456136057653306849810609660895515117045945430693467308159159323549456326181398180277231749075830632392410093141246562162369303457532367516924955853834316854124528147195034353296978807527357121501955474256615420339451306779458760763439915611271493506768391130017038517379075036721070569321173205372174617839312521382503054850304065688830427638621536363558832318665322136111783397677570436348229305014643587745438240988346685024140112687058099953672441011104817920256050875049749481531938150982898795608010493352126607806386217469480121460524713394895211413799320439501347743982404459996825126359975560278240237485620874666605869943309071151489664717696224744331121253823978596013790159786170556196384907673182093718140119154411966610934170550130289643557002891033840944606812546021893188070372550309618533736564203664309739589907057598927253187298823128565573680836878700754466624658860779140165997599316938393485504687552379278135419358761509898108198483278695217564514907018784992102457207103294936462699513087034593186494869769220587271696109587509941112416579052563707650115201162892516062926255701611181451864189450188747415231710604938140746853177528850720337385238933109568858464660734763047062523110470327336496283703799154025464729023519521426633004507801249760494218056855961478355690788264638480262254606069242920683281143978435705338426208083514768820959979585102648477134451356726019450123237657628288426903305234066948053932412732873638975396450612437323600528353607199412169409155443756602558975972482023438280255622427496729950897967770300580965480572416906973582014649822765044857360769649196647116717846421058436482825025196453826910410822997278684478233023406859258029831787634662283675812000448861702705163486321317493417285177347373292640843476615232883532631052534220963645209266963010068840962938864292149394675839556109648875614059251934383284309833979768613428774977276327517235334145444733726244972911018916420996148461082811936739138548340043173556318536796246096221338838263438319448327337323623608843216235852502768096697202478305856009294472101865339993126744727574845007651101379614848876071564086511164683087673170918457787169510596388683121934972185836444099951450631063682491451623199863350786900441281377379138383309147245175942396318362327149380279326522624713007340096058350099302633190850527731149907733825925382476520507710827586275017609536882421638026739174953160448029745867387615275907470732606577561811225210173911672453646426894728357499210471816227382219931333784054172464290815350829492152096786869354793179668659435868508537965983934681466205536816187197731544072896337970240689352196139008523657473633416801103861160970439606231934660215946493954044005312631239270629297849627086196900185321000199757273675860982269011454282815118305886680273454761435084417137732466576838167068408826843396139275855585931700349236609448799599957717294130858092297323759743950253296212004663837306015706718667604056790707257058512087548824622309860501076301333957824296699140570374081246854415224066866686461962633129879412142204437637442343976104196629141392014839491386534913055233682312218919238906757019539759493187055337313642106863358137112746931278198675519300707795646309841921621017359536217799894119845450093706767518678569012797127202806548282331140666028494349943376913176754664030094034779477088995239922787766248910542807252271290728092975215353203517146964800202543026603589827251800447451584241901328593781934046773012194025248375404357111188280993642915850276870034613141722860809460511688836209884934308849658297047797059000098259348171568469121702234875630188816410558321477329594946047767871434335894043537221589711554296670067567355162770362592112342865914345502821571539995334867452901310096132651935714187174155656198409393369817307351467179085676698345646394948421489879888666765148208452523468570456643715657243712613528512431442253705966121798407055929158874081253492240514375389310752197986167409168610310982748322748320537635672970292499924463343347483375741573606191504502592617647320282414414061271468535950496772283150649792096507673480668723352736761909602093805523900934926914494958523081566351575486059712426406549078995604397369731879927859366389302468536175564363581777188711304969982001892980587469142808964487137091822052690512005516957053227619701314298521660233743895138733214000744155955878635177116764293619059532678852160211897154307697432268921029185185080597984016188736727681024471621473212915675550712427165975266817528675362984577468112688402322751463556973091141084725504140506264514130922077395630397802512255222140125848258279713278668596422814615553303560717859961459873120498807149322718421944397459812907395080290268762149632942319755085473237686910194784348700977505286631847557517069640246659206601580247946863745125218500022095026040496058667966559375302038151283560019172640182619751697037387016103262765386341991900439393504840565312330289743661303690006840545516264444572213424180822193097589227982839575346997193960361852034053722599519826416892769212936008637362688542463450570646363226886407337898514010292268197713832306916165712027843437362494905122814976407499455507870305537115798347150676897719477358826354840966968435614996696111627108989562517185604599555363239884782243245477572449797646852393208365253214110366746821614010852601786928461622336190221789441350533420244809916992423986979122882825731183464874350467839324973647163548103239781791455033384420336065139775545736996769265593738083176417274928897478513299047732268271844490186774540502730790068563502591780364799034974839127900899157342034373753925955033835535834324636940138180453160545206359381907727962619539510898762174814688870401523436689396312387815469294005804545302390512737336499357887722378778137941670851097535468684213469082391747651192153863048067204284819430102084030627741596399268259882425941566548358675507551089993690428734123025596248439783024887460610039264437061702423487226839163781575942582037223777067066203513165159747491042663983150823979708483884989949889154771773833804853993591788945682817258329277568043554321884818326597407272380604034698018768088472967011850239119632671209300713042480932375670506819745442321193112814194008906604414075510528987939722229634165661542247153056099482292397109565176297453714895927771129359558217488624271884285977376292419680237181082058584245173625357573841799283615422637018745994521660700643979161154997489413228158079382673963037969055438641266291122940881984062136015816717131961611029188482635057994194576969278506724046810455129577762688025995342992677925452224748556063580772470695844726668114326318315845311213361283348458411940946499089448161712918885550931144635461873456367707286974164274628209566151670266234371635155774129347886108857970998696870654395570996599221805668218048610408150631279412893624934281696810402420283147057974519682413733312087858569099981351500054839410599162649814196204282768802116484286150135821719082210513318265487556545501158760027858213764919378312941193869739958139389816273404518700955468792114998406333540916728495646639100461665374271521782805638916014998394800123774942648059831183537785343273946536982719306718981070704060591619784920007264332534291816911685141795352155392207306205258550713973136417595298111255294025487436097740314432959343429378648030140849289877409061008652077612069989921326309079083640963648606000697139504173526618272402100834416118045571314534524758867144423376077009490652239100978960362172609724162267923663272677217937345252241381792298503987949452276735931081323581366912148108669017869071005546262434984009162872539283360729661362669738331048397053470369180464751414432772161938453263836425147288985694417683628430458836444227491476691432677741347654928078599597299445698575786668170283291807454345660975194947222950082629784716370631964673239937819502023155487163552164906393753184707637381094718442945581986098501448457957648309447701918943003244811903423965712666635145627816618234387906212591849747127258052763702178937169633839184204966042083631360821140636670246952559968635875042151034242968689652683623143934640822871254678111965345523354271256045595966187966244552384691937714367588061022211509847703489875409294734904506629245741470756164421892798337461311838253825193460597461056042654385669838331256952170412214885711233218107524056674503666327616309691262282116078821506801362394859197493049604611873488750720847643205999880671043705108772586575104011875648817749004727337006550468049772095278545791597671239276556645158855266371772575980576303269666436979254638944887137158960537345410832812226725613688877548113562114820299147060000915199502502471609911237869602723354998630966013817002221691770657811788897407869585841874443483955651989757624641294386250461282861706447255081492235601776031492053034948087363149669341909488193641357021298625413247499879836493827157226124888531621060376102178473045220056194917155153589266522076947062507263573788744333032406137238679295357433607279788200436492588707408106402726957048844457363641879380515157358261159326636713248680232566845641878593130402168743988886356806771444817689678765601247571348517724861942006105818516203376202316953434891458206064818285062042501123578838864783267576148481638139827483278702888951933204556873059727338744256246480267658683981097939043537132790150568014748174266754566595382464294392422062623961788499435229961327615143093730785558386338551072964849273507156002378962631779608152974436912250665137674536731975348762221453278105189184193885284254538762697267638005677224963039534321928884826736698112832793663251929504054401715254755410843707217500276951740013414408949337728420392310976392827050527720199095607993861920007040554701690344619102041937341225828381068076834163173555505403083488001905207866002742791569367737955965608232073975997785780805344118483420512024362376041919620174420665310945312368952617264083879164368726883191338717565999848371614922145845986433810117653861634507979394590340100377687674270622432888511581857611656616975846463566259906435691974871906436054467172824831640333326801937424871973566411128398433842827568116944782392638012755817554554786248404574872308567662489662117760353764152686658450771244115677632327010549788092876422487236568730238624798593118220998032112925585011692511885083867802451246933230674453647840975100364111763638659630727456749753028078600472591557425319742274935370539486243979110076690334052511236409776840897016567556295295265389612001661090163835702903196410272660629926082836010818882077975959024578154559851555143078857289737191599348104599771782599582869930060193688348759381542521953441977761647307865222819246558057090456688934559798275455112533817675568960896775608743958468322797262150846813333448004549209241043730592798273714927391576267942264834761745588728467439032815622443400103814708526962847867683552373577873838950507384867188402856899645676686839864366208575507639306442011421765161364396338473062042559190322648353928486536170450009275548521089929648445063999728204679453724227369971115729380940396116308010472155740521886828580160596198773376366962387050743044586984545555312309991394444180407400798714222669018192621261824719917690903460720376348602023933260026150671984119713084759738124425834438677708993126671693779290075901344896165070634256429210172064009809153419124014395271358716644852874946259190179728080573764807224628812917298323901549189392590524041816042675360405334927893234395656524733855076558405936486892433046149933376423286202759726412009164473824274286632824908208019173593278723082863920380114763056789113134505488198804774424787725714959035807409722250836307900180267910082439355212718110389047501463826376529219646172049381439030290829036199267153788481293409448113157540204808476382560253698319041151020693694132696606308157631558944637141321589938310303351142880063319371477550377634870500263629576968799186654687863158680606218543937833918322354723131929753071844348313739779098869221161250210245983671223125723737704869385195521308203777459850374708477220655281118047037301130403201425865110965031456176593543112902756416515519888684792944995258168703157356009978965047958083581998209331675466569901331444208398139728528717852284712423393930071561770828251272324281146723954562914204176585595306464099693959117969664950248296228361515341186921426387467432744059473969292701888816369819900362137209515943476077973532363300963785269692128688590677209754697292435268822524032986926085710124877957427616561735359338654116948560554124702559014140343440720401445248962126038329713915945674989735361350437442173011957103822132614878234717909271083692201063711662186072687917082718169668474085813073047266532700051056786039396513262641144652898507734819233772480232737140334995278938941201119104961229232359320296633454507030074673094434732608066679985930080571199087835500683228164253361571662348557692057360396989477101575542490245515936092628377975308430481980396661354136795352840011290567863809954300220162403956559451444316185331130081333822414359576443616033688716358258137748476490510519708086119485328717877256872122999273379220122756237743152124178819004221955583116311849280968658143518552876383393020648621081130626596757623133293338495612537077539971849571511228468272697559422698756506152590114306180740649887578724820078167821912695374466965934304662848091019701798018610671527599296616112688894672331642295927842999279325426797739659369782216204172840000688011744781015250337500002312126599810160089028751765959695428906021217272757642597373627138478276136455380411653171103372831860978942558854736884786078532960130418486015799902576267416214422903624733717136688762286096010521477157393844523213521942977248204575833248362735495583669777836333886419819084934351279580912333730065028995966676260915423712413885275408175351888416260733564889148339450577080054994266049159717106696552596241716116751147583082144404850396138219976179677896169020664374742217895246552813607577970692282491545009389361720516784288494863518160853144104890724311636691754773169061754703928607614144934647543839736281026156729844729041758700155454782599050383213118886708058691547449546069313840087087535893429476211866145056846476693517043709274265456822241748418147322983307298230111276397862022388047299951627386465565732696693841271307625544471655889113685269097923256026722829890840342523638589029123855259493591455550379188633929110187641413299389329026088047619169133283583693541002286971048855008128359397898369559979767545147691872127684919235032709668792837264779096275909213201806259919859671275478633000885981572242717977188648437289182641848669528872890725641621342843320802816043067146549452466297201795052700022149828719158526141369870201878090958028220407405038242619316034414347087829889143403425008928770516522723875743966116259769437828552930589462917269641864427487614568091395664250099467629845088315611692053034979658051804200768812360054781661910566454342345351833497357501520655852593264389381834560546578646435481056161325368731434205278459283715221829342149660889862186511266493311914785340379415201197441308886661075796714532934236458793277641420863536517841461532175071405072761017203867443453467577937067823130036124396251060781544896455929195991766994657209380291067081933088195168913642520185741375609962446298461189628646818456673072195910124946220648645983871964523280050825014025340501855643360641347267713620144566969025705630211527619642653793677634352720278083656515448299168750255399004150277224617264457530933953714851458073427103694357823461436849674394392774327005482615542261255823209042139618902132807947319953782769309475780733579528969878037895944861403872920102992186437000380988706115618034664242242124774511960013829524233413888955180476006467765944535147523332937825694038971727913694280998531229016621949351874532921307111324491798983031708728028446707960564816779868653625880322615568635920815655221211976315235552362455933503174102101750322295472700530467764008564686578432239214117637925082080129870367351897425296808239881507620353091978350477823249321938577971430641482443265565895204345402426038194733528338510838547837564954849678912499418555578041224453348613284250195457220554410527407540664681690063231594704849535671839901451162500789902245514189617184156057719061669153004074983075252290272726029091424828760161882537107748895563798017078502473896393507794297130471267501250988837244568225607155338528810873638120728258243775295443326482798367220741609235494497905250242419174198220107720429104633793406100374764381937960275717051117627174267761008058839644256398994093497168173963029992979927058741716880294438606638493217706472423510215869113690611959186988868293527203671862411518955001572052367825025261116426597354637612575409748917894045918912298312166995967338394252976062969397099426794890663494244481460258654386235341576217733425848818847881123858563305443725401874947473765919870168214816950258760241378701577705676886092294804147637429475984818063325875998678169188299241482372005087104644711059459278320352740952548993045774695665217024989090297874924071558417729696426912649876126502153812006891047569210942082954737654008768261389481589515762685241517470121028633183707393489345516079847915340747673662200048197021790598121889844423967269498693943968716827301996980624869358747989895645590601513007620216919733604092206000933491387227615139179776183540351947697806162356137879745643790404005072690293243164471487046034825324191730216059319210906779345543593617098469829106301019898121253028028052383585122962920282473327421202374073801128788545661735234515744079714004897940623389908413090535162258312364352447355268053339267768634997722294378517222663993697435864869462498353131726726281317550158704965821232940349788997081373634691564202682410707429583681396029405211489972928081656727289868531101528754545070671705014051898681095249522410692624014240283478051941007243624168097037627130636528242197381729465786279542932972470357951145102825321975129873555901087190881444619112789230976424818295246597652561707327410081234831890772545042565880464519305079820568899025624114575938465280367099915795355743718277871563945541623491835544597033707614336973702906181905619997491673737211437327846169296893199495645329350066043820059366162710560237545159684917054286130368089759648484788654327857062888709292781678165772576634514491727714332921297236366312542478022693511540685988819746875709924852804144262961609531533464782550390844874508269950636886591075599650532665731733809993650202679614137965182130245906045244664944679459136327378973241668344206473958782484703534231027202010561702332142199076614638405280560484458413153447882606179416762753234329499090631905563944595072121407270271944695104308437301717861188905072465519772217014161661071434684821291817048888970339193018372191908333261069375165462478977512073134226243848903903920924149083198368368009333670518283277922966073006953782356588939841398312507516998393595507120128937570992827377000459893554953042391222079113327814054768681047767883495000910636968772319712181656056196207201122352214711791191836576018923177300370367629899238496694334749425072901393256643342274291971313253730935547736473514073281984798972300708713927957752981624708838747325362683861613586759459823521463209761063612269854888705854541752888716086283889502601723953288592433605729259113259379797161429594499486743434172316906829185716994559020834977620795101655382133471869216339290676043759683196461760692212965639559526489979580006533365035161301257902101586422109380242268706550463695480164686087972290623337336481870239845822439023548209263861460403572186363399959939745601486688910981108674748198392022016426880996506074128794536699074878156411088407558488610616290457666275145636995881630659584451892085979391274280927735222500677644903534437956601179885386059464201383767916940403136965189953969799412359641195395242580534762535270250377222142991017913537427834079475643317552517515144582639521490272130408313029963728509182006349944800687891722189280253249641485023218115879454724031167521417080137627985167951304350775679605484758179138528229404425703028955030094463425951775198411253649688839219529165015100149108714142633712988749062253873763561942064903390186209799405174013144715504437201139436757457548057236612931312093828140353980191394088892733209123712832162835502456085244379578378558246477520185902788723081423455421900616693073928975000729232651890425539155031464773511528002815345232995161221543129516882709588472713456554757233837446245442542068924332041739199268846100740879983738605165705095313391506973441603371847459847791513228444970820157197805190148496379153694975877169622582822748379185768907415894966619894094094611635851739258626493781003533077923105935786219995877105051125772244719945079871356141223811133161634084524934558145811014771562035579508487368282763854338747790564926407506368735199390121361650302189593613519981313313162147721839405602398934505287364209093313625936022282057168711359244175919676749360000717764453883412267881999172375575178452203770121782325120980279641215602384123007884950625414708522096527214721273775898209816196077483319737405415104429049869799117279835302950612539122247506582618076224791999703048678042576576610157410618374671047575340478971813796700770827272787007739360678350967983531301130391035866283612926944050582918508007631869257032375009136523060283468989141384191223863644686830635839542860004164425117465403471931719997566890028064025305726844911565271022004361661042815695037455463717907174899926133528871947108580887160661387194274437887453835802514772131851770177882674229805102140622076386107244041195067504208263312773463609760379997161897969856130460564217715444078294486945209560022129509637802838049183207926239432443805958633210060925905255167998284036537536458264536406597840725446998899145502870859284800648103664298274350916452676246709498024144820464487875599738119266862999850841686354439979881090460979020043388786240037780877721390076721486755949902393452815814654206139376864389110953254064808516927070589149305266943597443850276068414379297512467615280047765225542800041268425209663988707126089557374435377682085775732149465384798700477713452470438087567532137813121701651195381053233314243584978366843030304365961776308434910858036482892343856778828486385109884984544812265225365023137212466869893414271600840977439314378864250317714097805819777256703153957000125766058634937407592162302521103465932577204039120895862191240006383168544824781532800063048022155759391162197401427087979807877977916701602710439897871082856940966095098476480437350150618726967951210667988743627308032109252567085132358388107970596418758734909266586446991861823150467860942223932671075647021360157411045828259360904832692372383785672924471285065552898835488057076123132290619889689991389760488610518017038867191252408278692013974953715613525861029785456720867321896109405129769922199382187938445573292222357334759983755683684261460677467548166704459643043652844153877707439134483270343697571569984399311697721560570927316805930361506102793486977062933669341430066912242431650491715268746281632614357249071322306123070027382761259888997180990769259302460119360027623559338919994410455563621431407995414617380569704137363181046787849755879060858626175145393568097949850824871909771465062463257347603005906898977783550541875354640375773093728071722588453853950044744436957330918339781821155468200604085895899584273576625965379154865054237562831288891690383603226587859531813126962735196264543372733802468228795522549747703578608061321144164361858439033471548398512677794888638535159749047378999056575025990260762513886672771832637269845142879687021486718662620684007161438524633534768381305901599412719604189954155388630462071757248903378075422978123580543350006102016169526801306755663849547041176678594140625432941544814752705590749077688164115056342551479078202822510158667946891993616697142664286024143953971714187508992842478788476803157839730356509029400061082810298457791738782269143062578691363281076621841924708274767579444295119235889870670364154865510486906582073063620474754205015871036614996318790609807464219647430232681507254771450556609718176023041057928494402597051682300851849059774240781874513410790929346459144079676957816640279943150292672797332472645456476448713368167508362843325194614450325026508237146467355644268024835169490119352419802246212916977820769782219026317711161672558321355098233315436987077080204174216740125245844184558335857319870854242560177978505798870346904514152224440579431342979143296398606312736283442533670670468359075324375826940181952396817955728007784143339104552473415982605959232973893965485284065527482676711332548142098785842786858815840405715824082853198560850398019247013738312376454065312099719953194632055361354499373061353408179597649457346284269172149971254611002227820804386716316082844098563064792862309747507680919687729214380021023207252026238306389644408786950280758337003101847484472144402240840756107498242325698625537669902424945001321347847594048402251449043698277420424007919277692291698276393482370678094270974478657441239662895909808813143784959937453574608964261749802196230747542087355484615689175073249019197107221518604159269443820069968354197414422189450781283014454392082028725555677906454121054729074278077559614633005592800038958610069221781976774790773624825940803606869329683267947567188285879529065212957782156500642822103818357870943937792184151543810700440959275713307086313285188835528819491157416524329319463133136423440391360164510169416468038864892142491903082377099622988916082469039614733085751632302464906463373899902374216856506907355393902691324829103984779781602587847320627069069684587932460266101735627983599488638891576174170482714196604068912190949368778158035033426785380671935482334446655237231179144595322985518122768935398146548174570032642549484072709284809685473813997648955713777340070481099216554985208960556662962171919802162223995842625006826795465885408136619304071346290045465651032624654976436781336986282997941175541828296495587899503166062548213907192080296638057662907281953067177996099720807594812713532263225110628080360919858286120964553692427315841795008387758492657468617907976737715531098993956344144222090991096810088268197311970681131834334484673979729375496562171815698885518666449051097619606447396700550395090019981080100963631016586227593156729912199905863933648924761407605099228992471263199083332900540735735803180874742977157955641003652420420414268900820146340835870608856034610718907113761949249201190735166170587873103244386455473685813759697284905858397825559194178014209212297041035118754302424401971552353312589797197817736485722616361246227774225550377830766757334920412956928781316399900744165541856258433409764197145198454229722081153953588438347515771737544844664326858695842018665358142894521248697333136263662244582653816909899767177668565615323595259243784625941405809213224828003371420665519910487301608335207516986635719123113842299191898930221471621291238403008920140217183809243652896290896930701270737988446288950166577700824649613927225781738586812856002584697748465210325308903796153469550914889551610015876304730623049773829255296131980118349981006620021755983872934866935746100999124372585923492117848421287583841982404667395356840854754921410547947170337683042215324397635237531835975959590745057714829453482777942393875952884940167301128675915874967691067173131514004634630162755549406974782540104481940052567483884439392807139802629360300072333516758099868221976655759508807896885028843399825343353866462132423216096883469090832367009655806643920530455291903972797881356117492652070896252851159898670141247694277321126307164669387824244002514257507114594999869882232697138043366319449958949339675932284537318034422896367608783549699450783414063071264842759662508276588621994312887460434761522866864580375383100716928017752051049990440209806834479902143018218939156035907332164245856858925112700487187087016655600704958579927865515844733627700106198568805574237701240145619984242571323189910481632460355682381455935138257015810089756186006230545096910387971695119859038237629460053969555741257389308550184936423070849567008675557039393761300620672389340969033559679503695724342805604314272543140183331089514849618169492424378062097801837123932678766642185243586218372915731327852037067953623762681533582448477832247256487589301301285984575362149748329302128525271876745547878316483732726533033674052736576986223343782297608475058577547368124908081192098648706568108868870534200019599076330483554012062039569205180002350118920435528434790032969295903100954891226742896107907089340030813987255795097060492162583287900595375948186319582467163155970287432392779412626736983299463759686849252335740139700461905391777525009035238991047120302865660932309856295526674951361495565207692975859486669520513162364647948524933754150192005728932480872601027082240926020159819428176997357698018664234695589696705502864195254126915786971233729396285222141489183370909582771558704913544921438748835755752811101532619656513869470073983114020127633409812531617657371062972321183551091264885697207979361561609929598651783428452700884856999215318307267122906535428169710463976149529230810948889666667806219761456672631290827419718955480777073728094183846019660600919783732906255763082699300414206684374734345064811851602836310875736406281996732239965915072320781793747490145495740191613776915287281179765325506363194533150597619035721092863981498111498084853607994610167460557986838566017038257001007193565867882031429976060189041496911365614017964809129961551334913830724925301204255483387262634412924760177624428023515801142882640775128991496616424105989279458354854687625901048236777633069542997658115763602550516444570135490037743012344456046726001784792747598688727342391011229151132958670040114746279120430209843334625443774433260202580537704777749386437375271474485459825188985343084636490280404950954435945881609914161484910287181805986047637322131928229787570346791623889663036040435819511675646841146875277622419032471514150819793839515400094783699276505254144332868946219306765812935515670900577437468970042326359554970767499108148742604330775159192694168258852719908784661915576581473149134710961398317326676215872857840518848642436162143108086098518080233357347164052208712470960613666142287299019502541468209214687829771669090283588283097476432794928432638583908729861569327144779758495002543567431448922336826573227488382983795784372670811408614067374483711096725033319230695131699206471576791476023908247519234975172235768084190979078235206337508017671787876507806265937308165938660820927560477142647221986657850105121161594581281881008622072655815736880508695605175492736054776900392582922253493936272358227030595033119054201021045271004679580150608852026173719213436842112086558874484824448028664728284738331080102048134793520348274776748880121616636668691823381617169283983274845555994809070307235821768982656682644620258078253414771543236188925925454265556369512078650701332550170447795789405044793445928158999030761323850386105934322226543986473840686156329601335723427121547196710489572065814161083362017869415033735528775631264702730210764246648842630919963844807489113005611409467391662360849997296839595508276943403437244254153190546908302409918443323871955560682896159302283139565977658620750390649952088538384430652284677333182846064259227351657372128164674991283065560498114978856488597860812914899135064671470705944828714565775627339539803566295739422047232571142509168484304224048451747993629984494137440454543561024078757824327630895729094888038575841333792102935551170766394973885785725842997313553637224555970727747903270848455158124547725721505092393426118796961024317503576603367562484353266892170251854280160929356075432109209528418180751938005122314390373366290918091176198377188092282006148049660552120973243368413126506302414881347523200639314728049654091844761242632763542985634159143854079237143009759456494883660084004280935504894676850124992064669236793389251961552974711398980713486755627708932524086566589776006506602029219652748353083809254096473350993764103975832087277112629079374838169481923983145599606720515008326112822781778461535883487449360955104557268717902742939068198662963123573199989983356863448536766463116089948682171335597380096907023230725603496401111110736136225372502880650027756853660639309282551853772078149547015686295338317540579691446062367688508729692263131468372740991892903316278801652331547660355278634324779406485614946562876162505596093514932267813242221383597571046489028491272899604963165799434402147984442100095672474364021728057801920846873561936211229078177980667603919749521155557479291683914220057426456130474711584340903141300499320861377344528433155455408111070274666389503445639667600221992804764135559073122837338439188459645520649460487560258775063568255034742838940547855568160910738724843115365658979588026757093386913459899348374349971244348440891520630879354660177895573372672784594997241802000838585261935392058180759442285319241754458594925680342929580077490326163329952914456384891436929018441817886569025067453005689965667304754261930775978032931997209539679230207312261914497281073764532903725586825333742998144489634883295488701373542157834682224619979056439540256483745606098819863311321526699021843630366500854819119653199315703695107824480774755980490398868738129659197955245786595104824782810884179930098686146523179474017232165144910790956778090838727762070633185002794742345299041882466158302158433687185125849811010750796875408433709366653899974684867447677308569686800637024460304978643337683469643382279070106328858183916255269444394759307905742916489189243399047070859115503607225996717042189268138966275781400318469675685836355813481652722210432684387925728278132499289843244915422109255609713665905215667255210098510188034678657754305937854399538159454615493641876919630925445860949558284188040253486834150930252345712315723989614521637485972366071540645659051391157408016738578236641243346841333593720185160040900113411153297742840637426015300580347495582288472110568785368877014075150941772148638582991470750261195338247883947708203461792926488105417188092421653410382252985678961720017703452242893541813177001888194123975027999920131013102183227456975542211001909640784502242640327624547195913488004688764390377808721390780067991658158786339979016084932122268288990878800378090400102788753918228133673716432733718595931150325478898181535281041684253473899294543547947382191123754736442042455200662500407880713540383452616500363577010928018899992299571776825407104256239603435418202127209000827175680139889785948223334907593488222843996228431952251547820073673577474030092725643989771078277002050676965297297519600791169325577189297416090256264827155035263522583170934581251504766211379269300751003518271031155981178526864601314534887704083815291653751733253586076327667110468770770961580780774193052969189257542702973703022515982552753837253027022997066590792948963264247213692770534652067771326603939459861819429971773251155983465689702281191350918550044376559910810749306964980867444246517564302146563200212716194135747550216484794602749434839743512258275292502780174357975250467781809783973851260189365109647544243122054690626027151085363484968129804306481921139098588881945206261679895810708516973184379985804699673920511193823229625501506565802885167022675100630669494144048149267680565465829463271310922462494559835950197109838327243316355101324748365403396108806608419356285519538606653045973989882301143230141121127630307006526349847019962239428139393744649664913728422852679816947932089450941854827416459056489762971795269085461366967276833822231634251825858258464724509745635106555315098188986117998165721888681948166893549686226760147432876739152002293659026849347123861525958080023482450910856520059830310351876001406224984501743051793889906633522260533738590651515699714768799915130538404487548725320672813675364444495569262072523076064270895831689165241802710713987474286234254974743051171576371262595544705787894181608666477085705824844270922975838618650089974913428440360426239795700130138171499418679518625076378827833664686993591421452427629446496261537580221778595551960993232259213953956301957353021924272139353173675885036434712192855018237605659518784476686648044310330199563582862331548732376982602472795534854498504619601225903991040864879936251565198105261297106003362185306240438916528675785360009668379851264130710259387439502477467318497522078434998821307023967582330516177672753854937714197505350146533822056258534323072723977963673159934894371208664747906052389349864074917352002862622051693735371135580692453472955946174322391681927444034519612871022449549670424279284695082220529549374378590557579273732746472246859883373242010554513202099006223700915624733448952820181861458058925391049306295866625241947827003059537154397114610174945680809461063507388068157302442777165043440816159477495092657237574596468873701627691832715378366303381068158398214234960804289534391720320267919404170349734242666444571165101383048334307016044700671221825837227407411504471236556893700169376491938428552424972531117151170741796653488889931982263816190963576009909637321510216833939705036303558556239488296459277677247278080085095702197780954105391996292931828548965702660114183521379847201792237793741979116525998102213609272077516865280616213498692628727571745451794831019218734490337990009442201633025760052033996249536370076965140224393084709895910043807707967006499383389808452751813204780831883708845605824103148412459767106931943217429320252124935609679447965327200337954507982758380935589654805961851488711455375964251295313659995529398580612618245785409717404883684730675739428932403113357568629860334261989251917493058535239665204972745709211582865346866802715274344414925412429207369746769416864129412352653056646808287622248144250082541465677896100676452230473268161208999568860326066409785349476843967361906423387309474360828445361463224989950584784366833821562492553488731386744497697955053539523561919221489999138178057369583335141070942453032286214335521657848712899296162350538952182141615541956285100089613992994549499048330781238239944377006671606979947035584752071009567742527648779980490892995538012966944776952186378544600610009695839834947352099689851893463969910741409347025769945529922781796922827189197659976201103222791611149778662242315771291647139989167875836581473301936182099371680866156914512955683456808899723523235942770466962696395693330035927157595230969165174216773772497095119575976574522561303417565888383862750124748737412607194324569666255671123938149510500330722668525022701994471477963837936612707510081803934526976480521220448094676350456263545363723555052588376216648090023525026268774814988860867635565713885262355102288026638853267379005216300073665425472068081551853710119952580383086139582680423307165415802333837220801748054896158289999519232203296390444847791256317630142634098581713688891090940731498001820219948205161642585429781578885683853089624175636737390807162531210133689779040540628441186698521262711014478741819213904190918048586120724307553421040043582636003704951213304487218217395950228621238188643632022263500285843815304781993302141238378095612880846973805635987494804406312995676186848501761256896867170406410684909894156552066906873371149996406986045635682905034785830692716617267756201797983472014266002233404306793096961541255238405816261489228229485455661555096192042714465834477828587479131603116367808227532259468705042396799064786163088042347346586714963233637010923068565031966302354070167551162597433090095609018195363832852880401976366913362686341027620236844874290868247079029814103822241934087670134010977445947972364775668587467765181620431354259097017286268675893749460224747271698827581821658268442161809170110677003470051929863103657302025452576023342882236681214386906517561115523529192129266142310992832158642063242017215652192916834097911379386240212959776502821508725885036030506366637564208320162812166340144759855520594962884351183140304390970746639369887336177974019021834870129531624185714584830863407859885553839467091811444500075710211268530857522115824854320829706073374411125752766084895497018524437206450747155512410378174945028184550753867220275434730292706720884223994366145403635633633491488443448877506097467196162635022411173933611772278434572572294296312111769650166035971754887468498864700906148174348121209846286230617792732293414438255251860347887936141466617546889169171638045800399478262789034957632376627601290465818389277638105695651669230087388675028690587107836246005663337513758703350728720151792147079564116366323491523840574153059943296145533959387131898741020445103791473809751366646833982186531251698102748869066982346916188695334672740736884556000734000660990070568391565929616832301310538312681178338768608282894097799136622552373997408039730209926859449058538487450624623384784375260887576359949924150184942716313550561217716138294808131623451890544567638543023300989318282205214220258945517829511976303787785297021526648964459579181272402173508738156217298782809235498898090896431707678970613776517857922560107959093287778986095129137973892469246657963843517940026747117925689660577343013190085041365445394830341118455625250840035446809517164584806760829589631743129921566486617077076540603649915868241116708102025101668969383352578041677636331356561469966879852839555294761617896318028424776276305330622937877870551641940960623608712729554684650060618678943783320208934182727997261019204809861405688778645849088441551777748838484648451071554023271356395407070196305500668249391036914352740742469306649449371276309010785770150429699896287030219040415669292858654801445952066489923186146651397035599711550286491507476502338883449008057581629868900781926829479893865915037394668340637044382424165049302285163319687444356369069682203701130832505992643712477306698308950456714898805428911164723707590517854417874305552321680602428149384858923999416902014670149096574474049843831066521813649710537245231469068880157713243521082757459632734240419188526858054251865475987435078400462209429536251017077104541425706009652863977693867953086701690696255541175748591003996120784967844102095940306056799536386285583647309063141807639594636205722302367430321139248232582357092066665035391040382804463171765747186279796592143027053611974892184187628833692426761808552279954580653568555861797015461306773599904315758078365831820878868193453840409516207669526722953556911744342910236357756548744225770869561268417440735888090676308425991877115304601972259996513708299830845631846999937720073056030530668900465815844595922944777599489618556525370971166719956188962762977996429486016956427608877748062667472155814533582670098023671085296883208922883612961012114216765586218635593240921276971018245645415866822100230824232346396431314471226909820697306543383733363701237423109643324767420936279770165044787213283147585080036188676707594821631629332692484132828656945521556399749780107047427856011984514798857205364069604502529907996005996319831388960512239058191465100419811020593197578231639423076284189281644739053601532581132887016335653504146437662438596542004871491144095477173862560207190869371173832861704990919514211683358715410541412600853441780956344495350106309749487448546209094113705232322495397369968219701803186518669172362036325292014842420579630478288449751957330846511015310112544359258807107824595367343400287710181004204965456651163105868162873639825192039808866538619587253812931032085190908968602913901775094014538609571735450580442701916944410971118610200763243857150972603354627593101033599282502470954779304054086783421933719009953378746901961951687160513044089039755149215910685407961373533103174190741505599785298975966020093774446770162111658239192129906891867660920628458865182174819068526400767838326140123251561433469198107858917003216331586004876915997446981670490274694976093867689343849285524777313967611051168571493392440578425488056598959696859574535566437597119345340337891217099647657664656515874828252676761826540082408269601259297083322247508763019728873084611464031047535332831147950021381701103237413757133613716537482649444757775529765927574133655926571874288481521478567372018445515967890326331687681824455343749134487595694666017330144058895447069722770081140708824821212198789473320582464518386079835752231582973810173187044314695760062863395854509636054985534783241663064340352191493177302125325996258558190696764621813551354343751046429593591304290777145881396993669039623636338049554771812749374960477242305353774485349727722961061477442494126573659621183968764800761873540578631643037409305062692872261687214690067708461965270938712985691312373626590639332124257797608152363862177229797540231159011135637330153702702364184480444883910489740764186243850683478656628001421108917259744417051519193202017821206604070265698790554694096262885550526529064996392574169503018453921762355033781128607662716801011356002083307769562029901234130625528557151589787756261859583393304213264127985397245805232370722689854734855819990442288589752633671480794897549745991995738799749323475612117924626191994032601117852613808447011946642616842320655076418298372407286849707406216665668920631668950103343677958487186433719770748660832097468413421437701784354736898260171767173884384270471342727785090270523370297395857594585255516821704862847668862993038723854218221384496926309896508242528054157479209682572945112230739900733116760741580378554724107443209685789482230130501187669301389457685966188478227897378028837520208293370391440013784394197145805876766525084802668017834024614353909707715434372563257971088768853052275790997600667024350925998401558410661130086776690664515775599324583300198960053448967257275676334132931184394677242153314077343930475638397967287078158114745259371524053017960757762713413076957230091033321985245282697496166043691796382781170578593560937004446903825722354666002190152798311757405774482162210209852198071997512665653192122834654003827715052373949109854552212047908424917217430346793125404319181513545669649081365927144120472310881173370970533740075529513253007056188249754073882185337962094509232477712177839928591692522960407083441285804096313527851288626700574280594918523656515943808938454928881260491427421539934644050174335981767645244949544907055561162048638194331837034952273208106753461536176176063797791238584846841882920137613932619567782737814183305123757194005683524783416344868345501236266136127014984108849491255752536587892703149248481562987671155761923023358115837930570128648399603178136351817791149471171065216084601914143560387510262178067152326745868658287809670378875281494667654315474828525138390996258874399790307088852532026096594946744780812973795034530351719020018615014342313316995538639812854661620803950964166759599537201392098036990129822923732047362963532934367949408150499421622100791699188792557698147536059286315024635517492741204698221582084016500608163353626059379349637898377229646147447210611481841852409168460500200334122992099048556347724687905880567993902347054348277328255752213439889909568850332510709237779768561322991784121048287785215867312471647740818602006975070463480737555217267107523179101538154234925541480162468980069663704713693060430188811298087494912585839641774976314462358532870413772898933500561891607585582501965880130579969151372653675073651558696392204332008498309248082096892600179673310345382629117343801420666927349801082674531610587257753245236683930988067787129435292840884436475706150148991417109008811242995532058785214163974633027356072371510629551025168741280958064516777931182143340863288847046368724893400478912689436264046231693200872881168829362565613240225492593240884264183202245936117674773990398492485050353006139842066587835596971162282318631366095327414577265398241762876258503253747568745399970504457149171777302876679544092601492878760585578233093890239964710102862485614168012093436194507698244256943935553570536277619161897072892163771114468505757260413354648999718949035794058341647715254282675638419482288844900893775423828581605088276884599510645827328189131967659253499224446398198936086521616117993325399198993021053213636406448662758814649872318915075021360174399348278324226020810053212021358753073719392213204850704724454391391873234851293288350644557412806604146728529100360901119327791251103702890960839526411399137899637804021922555772702786707119541721074084717223154753350386719982804370406643246862738520770483992406114508101924817291973105848705999217109201181805359131497264864597069409164413898736097844847694369186579064832298278818225302786962405941838522845525083738225994258625012317123498922352073961223709047336974043473251979809827842735829770390914993116858694965030067484426171094903439629457975719904233600283783373793307885833156852147327741648877747257271629051213722981157882054275098675877157089212279111980433827570239131666712385229055034942288025080532104992760955686876475679241210163108714476774939291311170616340304163101243581147055051773931690853753891806768738626176282437420496267012064953637727045639314142695444514469172022858490795014185691459172802185443712822579937162037883175191239236320411341605234035714239703095019470551212367126839227861708980479588741445447882721740979780076947509995301071789784689367960252935529238171236494717533607469563089265164093735020658873369569351626809152177646193898969818840532991289273597907836708968717804865788267261610358176989841474012169997687140724508085686774216451477560725804863395143616122760183931585474573981256803420629096717094746004505974641520164018053667386136121887017804178518980223440308644435629430063145686810661568731466999951897307778712827902474024241052189084581423875867007629596865879004650454207536082233836125758278544519779150343661450895394474979273231940578149569705299165368533890075137329344464450651987654583559500112693853263650641074094143757688810506154918660820819194044066046433751112009284488143837965637355510902760261799811689145267683136533562433736433724524757292377959738631515182088321982676113862372079997954953354769684989339012701462228661030373009610063011474013207989279944527388677325429826955261112317210806244215338117443842510390032971160042293137530690045074487394055871065204775709906443833897011591527218816960254164543970912477282658397442609287381282284463405912656473868035059042787302309326355210175371029680408732065363976366874336936104340611794751741772801447664114026459731833255691762634175810974525586502397285361575581144871976752482472436711322755552821478246499740703683545831968867296259648466090809433197973184857844678185068283276826109480496777643243986388425925801609682410839964497104271363739203281232394069589475404252101949412466558530782804736163891550878508468065208601137942874718022039357499138416100460877533631664948194440951333508349980933817030420521448199179411564452213398867137252701812556086414837377945781453876065857576365519319125186951871831879579008899211443308050127400743428318886990061726792016894193753784712563698897677104077562456839583898712752804967135012789601805864846620040394151984473924581526286388255087166026922353148614701765734688827947886018776205403874203806430704089057321112561862390726337166462324112320780920171634898303256907447818930730441642352776819496653999044455142082614021320401491908835939644748840393815459882858536736398137464804262553744460474521622119751354012334606013506666567948656534710540437444954544772033449429314753766150466509876340067103069270682486722862018146003844096692166372033164494281806465410782087805114585963926094100145210097136289246662445983177702967778092977204716499136768656228421698925360283851308364979887672580794405670640856261782773583490570504557814132880188996695344188734226721130426019932238590531261074058566623994344589868538586999790066338106829627736040376508495264446542194877769519388851001420728664212147329121637643730837227540296805559608009657360672357409932871280247789656459082478140511861866459910840700431576511058165011407322329840806136838259764881369345807278503919815148886425816669521346923678248412428299872586586405761243754703934755970642564972818358094331591918114206371212942447124254149373657846031494542242274601496189260917020661506119497085668692112019001697263955264903739216857763020303233681926457934984220943801174752719571984312021483219638334445386721608226697197723070054390860201897348820745105968855977720992408247581783516873120387560915933174316546022955818417580854511795757953804776119051554931635417792163479341948973949256157757829267402106003762482220612656812726324822845828536735069564862459723842678669661746233238822668597216824976132218073150151469544787314571545478743706152679621562123986371051193422979603716265736797099198278275914874550346630911660524284393200774848194606542395942407317097847564530342443674348537237439574588255195950210577891541095320655478224399159010595678675567410945344883412942225190558670435702081657768040658424665819621568514211828661472652190622660273648720440530144354846876631863829135220194721207092771087289607961367628287522464171667427964777571636653548120151237513733830332036004185646115382001239638779675988337649566530024936206116724187957420756680193115780924339754840916418452309237631236342192779064232191513308796611367280983436661297589025527323283805967018219326470296454332331668573290274204742006001272974212951991301333389130371474172683605192708012867144282447647878601359579700586120171281799480766413240574804699193916395537182840580148407352348795843976875037033264190787130047830606949611600209793466411874017510097367406135117112990556872588132120075244291333918435823054226561526829287581968326924405384934243061940400050014206476707892833341791188211490980141495820887114293312836598960697407688648568509606956198745064781304408123105340571870330015694540432405680083851825270154920061478455534151563972891453630840844941172118807477801945670595350140036164154222525818261876560342558236942332406979567948714348900291036995748596653364019707156716070074813034765653667438819902633117559088256174167422812406583125371750424723497552818963294877519587271591317943431487209691544274356363861924474596269250267881396704454828978639313314941947384070577635854207360986592482499804703605576332685477454955118170290714136210534201161649073515180078864992944670540380945012336041471877074024409242968336121673986441448180441218767622424725382550636627709447443479836164746039806832969334051800064915462400855481750466641101789727678707591790366181732845781901924569922402280209351155089785784571329969588750735000366063044860954620969457205035138297971383698324235997052314086467174669322974846954893806064427884361198022442333280000219488868261170715261184278447169488560353827051048430782401686539715605623304667672404879804001739347053426771541423574746033431273356649921892066018633901428158648127747683140882861181326173870842124457702701004988513806826214581335784781768304847700857009640348868810651576571742712410866401307035103029153352100018193626518571856042117404556120620077206857205333515994705294726834580099483543552002703201804730596812856233666848389740161636897108425353179771277871967071127087591827148544936388054039832752738566691382548453435350330798358987417957872237548496353478931529862776515044788207381451709613972300787903869745182318253301071372940530992367373149858985702879534771073926311736455287638168753038598301723511640832443219236332203208145448672225205415213031240537200457939112000162748217064456316091365845519945305170309507483301990565625747644095519709761969270304209853668818425211453020671726391137921174797425033513986703888050658129803082506748351503475304252170902474127807887844859482215274437878964669544961028172152816047128086415207338543414920032445934172043503311765884545253865978665342375985330323093047452211864199168594440293360583198681099188124840956521275946436160225104821549969997767186558015553384750780710147711153292269693998166525208716045827470920666759640552838816880663898164229739490415062328766242920869229422893348039534895608629254300623433473563331986671024065991000700038880287663408062214782932058899365116565988705059273153411776451787287009687094947249006184814533888882041524412528620912465422150024018708555117036560117323900036090470688094824984860934389278803938334774415303061304121098171980985177542006962083224517097871111512237711873427148573036074147162122111839736684764147955576893893191160162360735286527108816050559167422066735412785031676528997645790636956136157982784525951058446515820151870178897228374251882257770259431590876648584963090757115948095833955082874652453913563397811308646149503093592265028037442147745714979127886507861569021119991090603170457341774605966956690808907301209118562175848806417818995117173633911146506540513040350247625617038083986454065762521422452537268589885643166851601804150703179027957671908167066583189807491677956106877593844745434869937990073867361926471089569872326296619429925469925321151045767010201204955670449412139252200344223390409310753479739542138721613956233684793839187690629610993134801690136719407207722792829464251025330162153174806609816773719781077854612251516807849995670270864191502736228859406223921533746279612598287573734097135924315067045966017460508657453646866554932718014252556364669709267544373378033891070970081460377192257770338426353530876595473328471881949308562917820000217162218206038776725567943804836115612342224453273098963224473580540204483074641761753233574293765950994686559077284877288599747134125351599702953909673638319098804658811782566034274030523134873099044999002901810723255705850599055549729103475322980486903794807144660248749898513529047420972470137563364162104406220961860557853391123301521246216382754894534805927279990853757410226612859960934044406956198037287451522372887106377592804671393805213489140548005836355425391191982563500282778065541489154426590238259604461803575568882917747172086757950353830166233889240751927704423391550516259434679923507461886658464007142005369505062481437929763174085853972321584228229065889007428609887410838129870848260446139407443250597194951112274729474749142953484314297239110369336727804720314245035059865608562019142358902362161355987552610428244667696467623197361363236655246074981682309229552249149075443330682419232202919550443919090975548024893866338137486113657376122805325252614566675801103549362757477685440142516122331765281835147146898837716610489378505005966050630147853108099383208757974219590494213267973037325273307588747315868202385246435921308209635745349548263376290047260769421193715441065925452826339746773948078468289312516569374666145643134757852870166952425709764528960063553347477362632032425102656090022758505566843651751832349838580101100884141567713326623822815034464236121882265441365972238744417000696260142985153169279946250706819833043160269779963212357939706584087495269331507548082115139945148711902607962809789700091081693969744574842305186325034703906742060377289405836864559471027195806164607868726006510457361294340325338317583309934688230672348521384349064854321907252199341718392270392581705326341626805082057987319434575542891821942744890299310204282867294736328522344171887360811795536917314939167693603808691184995476198837544178050171804888243383051133824933949943672956233036804140703871286984379571257864900086517232308242843919005084445053530086983143507438904438289250870478005231044695966429256391666256614856293321247395716067756343877391325014329793564793427298088969750670821476671116323666454783768466211277553560350721293598623579456464708119570064473611037351103018394795922406839477464565513937813378514217419820904477238696440173285732902568719445068589220086726767536246459884232963457297455566584629784460714076535868441968886890442616843674634052026616213374926991712033925405113447963903033526183080351705486863089685619034205325775346780352120966456783301148243239558523571294925897929824543759814709846071128580652089033858787993865949430506615226521757202344439135561408013302685077509061330466019397470268548027328170497338391679163921661013451041623402647577198962312745982753655913461698082710268515431633162086675550601730612489745902899348904976305418625067299651738637615388572310473768322725498238942608732025466619381856751006481771655980649352174506341500571471640152902265519848024261584811277903698523950159585432425891576969063425511319560771027290365241714382514694741189334987617233795533553315072495869995348132995907541697361881339852204702710774759189852461942320485758275873010981285125565490358859175273065204588668891796497940217063448417826321189206683676003576405287682934853692616502243455527608293036308818953365713137356629949312089542685268432597775561149291407822884499745179182240228991321538873760173852848497915039127432515783504596085154647890758704965341317757396958956231412250089329315221442228112706910196559396154184032103696387452491715383998814880524346426315341310762375158031582688036757844755037198367241399938065424216508629961585582991406026974717963554814294364552209277161376965112609863287460322983286595298032937763723292958756901943328808505703023160435357155013778398274690959233206111133450415939290738241595722968817584986150944579705056427517042968280129348051255330501667976200826348753769086570839435798734262586595672194359504479571435174634625997641870972788809962194480277380941905704395340632263197133567817398109314974267227466328910791969626398858066375951640518239021634355238039635391377884686110114147251077600778398626134014402260069648232248740607653190304085608755430208912470748536853244611653031796503471148754246238586230599007918428411491586989321103685798765077097270618470117220387522005924671103129241344325835151824547334125644895391587028775789146629243210411868802122065527658777139748449381197305884442092413952160287753427477330200081777941788349921986075770702603598115127755762613525775546669308412511328275597983287368436194922417659959990288750925898788817727961797301040265275259149551275651221953352985331777981631283803140680113787525069559678450673266107741177674168208253108386728329918505686699398557453804897314865661187361529386900244894070811418556021157655959179042665645922436513017123987420624599122294257351453430659309930626518952408479259248031995320065112996850126808577600095255903484100614151969020455048103144946654148912416076913499112219141488584329438233220551348293915017725916792996820462700033881199560661095932553831166976057491873359227363165643070382904788208889690322386849461797135076901499847715365132852574130012455475197853828032655030924621526356710835756419676303957844173879776736808420434327040534494413794967500361505816563903413582503876619367398371585658153346374599534384565312318901647250443232956718560694270870366193295916127493420702806947765560731664464448037375438921886628524876564362161120644771936732493874804408572778057787740330059264713003650604135701587238268132102965110275668838216727330277496807375717830047643884005745595196218488148709778438820033986859187835606131737756766280256311904183866880296039111550312461475687819434453039320826123754915152349559874100995190480224180915821615424581937759146780083084171216878193114360858489507847045927875952236081810550214507738609062631485298242790093456642025631501036760955722896764895747508335500066496668082806487401880613683346383859775325789316494975666950248573595714218526787184772328550184199801231958799392764342857526367199807855314845292020630348469396941421270936954754703976490646366561647838321946876689761100374820042264338051496424037297385076081367342464764071054781125120261649410628104042866576296217618370877985060687475058645779531539604199155854674376348656832355339109971380234923873565959903810388326795965577382536905658822103781811039907492977765924725825853064119868372788727192944810389493272404410317703976346232026657732316976348921229297584946977512134217183037826160324218131249380627871102643859041616562122546261294361843064928024182780247042165087567515207806669907672659832671415970253255551998627282478290079766695785948296813549683453907021066712839998097660158285198237926341472189052647633886253900335621810245000849040442029910891588639944999250261237429005154581026776836034845979319999989939191054371217903429665914427647039363343734657189063711704479197333830190116295725265140194090408330169314896036322270968682274559991311247817836340025175588017592701331186342470039178915279733071704168102544813978554264791934037171341922771799850031712833671057661543701317233607164921032723442938943705986915773914319911483014200090490640555614454459989912208887839366038530933513070526106292789905978931357883812894402839026890769017625398923044348039478320066899085282494264430397058863117201133955227942477339031254015430450634776072203069262108962941326107269779712869450046952196448079290818014088042852060027104026016849043237394036773667711371039132619758789212421845011395914592404292860957445282068841407312966655515293599128201225240428334676847638806577150051527793274194216893993055069470749008172471760724910181754717950894021066758613782088244084768995068607275158328577083623258308138875621118650081068449267132426285536597426742086883567369020483784324496013374337529110583401634508232009710341397473666272419525584566268907152475091921841648688202775537230886405530438599338794624351217541689566193859905417503173185447963743037567767942848440852282634044565884315524392210296890446277118753151711996073191552794040528482819642750966222338080794612003596542103036179580062346039926032464061482549938576872475065792792368021633191433960967762007089008646767688526020251404851575400614111085330789800565489858753523623182201192265336040749971575498902586607920588217469144853587972285039700405781815219174486354026404341999467976673906939773204237040508405187996564565063724144721564612987112206930341591717976597988590562678304779356862507255838070584565297998403435056780033560737747413404163695137951199815448754403979113977895301097590419915661512425736025898978320711020589973508260395895072283045023313504596550933225249050979831821480416438238864950411147299142323877005747191723736784948640883118807254659867631812915740027241950571617278802890646244656090607420257045422273250725370153058352020336523441130413243362249981540474884385564959801903264379544983318125847344922516731875748717013007488182788048082180280409063249580139794848069143314260833005696854687370649729267919958562830276760989722812635144093320609183029886066249225256404134869648026426747751838604802334284252377309503593648377607999944889905210644334743088772850292913369308264708367330292394014889038118126375675843898850721470212392600410238841068535576440875206947084339878861889071184578166782665403471655985143371473520816757744576619613979474206868703707674048055526111299934521067050325317730490781662500001812270776001359954102631501596483632953968273989520449170971890268755214633339547163331239899435193598034464193122754369024050206252099809210556502815737871862531995058490412500818137556551054569718709907022470187561315389565498511638603226511560508251431058820258044588220183249195511291311188936919720401793578450609073349556564766499130050804182774295690051328803619488710605658376368161494330358011059735965940727779604303186858121077120112626461030544634605568571545650272635742030943327628259145859946398833126015121583776456256813638964698604407983516096570224456063589902537978507585089775834571757972123672069330392038246181507565526158004583214286178889746904549000324231091585774453495357305779757196381778633428871069814940473011065188012633983985347831343154927132778891786054775568987136319980343482439164878902809446638114626672364840441481349672051471016100067833606870184581649427267711088631087272467159306217269784929933536320120280826240883210868989170884977175161785725713475660275717652270537844583892783241806484095392804213609836841482032290699104642147601411021286392144373867491117518749173026896836058804208319417886904918467165299000266464329746648124864424681155241853172263703389908539019197222145237398348181915795441834448684221367266282543074885390588794698771038012054287838435933311854804696268703942916081360862378039968615396086654830211244531241780358886283883794674917197639091625293799634265643176994292897963194372004823823897319472349308922830573780822370148045643199996207407831440802882559305003303998818417858046334625765691631333707990781392603773148122867261221031427919405160812861041126878948789579245443509150497223734442197027963730012784511932663253408685781035533337578487169951973246190436727010955105897404690745276769191755876946861164723417160230059993114827247479648454858487679647877223505620222034273118117555636790010011134119816873935753760879774886008916750527069094471615281470978262620659826039100288712818626115172322148908279356075349940606723165172657366222565542216625292266518597969194997557444118050563333958163603528830738957963709671758287831171197258493072700009950595155319562839765548827180057439470623593246284327427851102850138124121721839497641975436315362987402433440352017462507738661392550260411478343556549710088151170006180818914111077193136937496528014263764507590589607528188358023101630223108987210549495497633041032182752780146275718129866922190043859148937419620454820199876701195351579591624236882465394929051130276797355576597520596814689340767516706902923125772882189202451044706421798923260601986165098047944383729363528223946072952481585818668232775084475682812254899990264366997846307100237011853114907478295541998140084831864619720046770943178349188376223091616324955690782065294003546070374841934741111657240138305770396670717818558090661187850779590369310293571173484330338408479390601521867900230855823913942737646099214848016817895901363839326027436556980421249600172662634039542895523078191899671294210099238010132947211645749828241647924491935135104516026250823132577862461292067559871895863057157975103377486824076006555850352389512157517968011124416728419293148169820997315213582097166432888326021752905534424776936534974380927340264214020026835587034227047542301090867067373357386782748287061954683501951818330031203170372389329195751190052220069876997299494974808364624659872151298666261268108080164946173500911311655051757080315622929612354226904488903755247632311168145459019023479004112808188144022988988745113758062571284281888722221742979975726496358484175314347415912645895858739511839936088283028117178643901415293289584163475414123332032830755907959570784873854180697153944750309124921580014020364667970872688137306127620635271757040972682162597688918163611038998068406194623217541577741274112707611498669848481973908577296427493473873843268640549040193302888175807287367256986387546066263683195973219709220291175815248709243558783260693875361274059156211405397861550961556126015695436684602176560704100985637926554250293705304636749833702156551404706434649845832205568380597207629482360896242717418741516411024052297534671203087264522116025652449773408931863848729145637510192533361120870351958862439810493093768049732204511152780737206635289083754792648929630342952004934288190702980027975651755394105110987188690794842596238791198721588238546202873393452304872562487919832518587095634038455693453811195703691802219153968004196626828155670001395168557083743087677357356157312991154715965766234799722980476843809790063616584503668930976510203233431241746088910516978761024071542841507603110663191754124082861491112785117394853137992876468386780632959372941781747097921026868629037533232410113434516601857918732989243056861088641123562077396305627112970461737946311734589988260248356416373487568013631880978932916558850734291673144648869010444734865421102804969057485125219331722378070517800607721421161960258755964303341707293350306165225134644679033848580799822548262291686294868293472274239688662656468000114632641959887706908137859322710959010184285829604815706980535869167867209580883426208720558912576075707909495917507365158173289596090505224080815883030005305340424684278943351067093417225760304325926881875018899983109218283446735038645823938201277599696794196399176417921484687998038280253485508462368609705304989399263451688744678242231023974141005707350847008566482589742529410477163624630193645090384314620942525727597719787932656425010984587722853470783279953752399896251912717745773446649158060147109280701154120283882476433957568395064718701710229772907506778184195295760992459923931153626942008741193138221320100257040594891333591919276477950188202995016633369874205871245770788702359960536730208327599359755441135965247433701729007351401141531963582951234603991071420202265250891495153277362227188036918999810485199510673488156628793495033066045936102123968342441992236123112374721446729587042942195826970078080163050129932131543150030175610260825987393194801055211668859647432252141103126138534254304453159223956978709000793700513781233972995958641377973137850513750304179041845138799513608605331180162225179844690734721720294494786059250762003534811870195114960496129852571961828525193018917107849070255661808241957302000595100091779875393408487990189746848321010619009455429115156797078509683740136011115397528607307726726714681927647894192568878434531012335122782643942708808248319765269165632600768118258844908267394923780057555431858620103992500791367431352774604460011673477167451932295955486656679061283125636069175620232108424014502343079461793311796444890021688651941514058614226928340512929225542992924636256044791675687376036218752660619946025020632989500732495350911136632633264487414371797201154918989921118525543660177580222258826909792288152750043430413175440715285235648127101355133061111222589515054714353540935589041750865181902638921600367493085312441032048515418895409370977953238987329171347658120775923772206507981909209958799777827081243472018728588555264261392890808657236805390728445574040626459707855971474174058894192506783917075680277785885378989658420174511016705000547899397734392014845935082332704333457554720804791073029736967032155907992831235748439164730816145681271508874218369926131350162600557581380369679776723444805608611635514259151741657645002954080291686833638015733619351489960880960738283809373928446505151641141176165115905180690364601030056197671715813848603089373459182842339214121996369013875604519430954839373026242220245816514766409801368137800149018597365637407739476763735432339931370084987009714564612029454726912235335618796398317428553501621694758458693899707745410648584234047497959725420985613569194582114088590845458208267680381880512995064701717877205043190647828401339078016971017670108873500582630634216895536806937018236425185356471685044088059858645113279877688204425776025731973290146529584798021086466083616515290729424875218208068351715285880885781314690625918612792511499377420935764029801469012433794327369028381225111744246600242955589366801163769022217388700350060043542031601416773955675944290646340086095540199217026849502917828448154059699295519463275133585515632007977138163641985010994211733754221741927461864800852836160226801915292484469062174163402708889017929423703678062196266141619239292424437287622933380755690559500107913238326213578187594724958335499055994251087696806226417682886250677910526144049194142372141266771908264192044421860104115496055002201365995564711771407622971183688234776818799169219159070682398537548040885133091516308749650068005009116182093298344334139152776308329199791408641379003622324890570620739306780518055795559027291027567432148263323270090529662570201533589820561797199826959396504489376412486419769161786445452251125246391726934329158341028735130232136392850547954679566742916216009195103760630073586591600315419833955475641424924862385716149659701430090904399344562999000950797205456861595812611306974808812506773268225970061775392733730746887284524903941409808716359699358160868550000983667329083426470970164487511411310142502042475530451331278632001054044158662682301237749449930490530647438869831403873111410861653481865032149496531754909852200857385754633919506909117327585572155651981263182832551655405843268117137377524281572654743242116898339616002359059404925408709901734190801590563476657962489277189347413961829479872959845880099763770749236456346990244856216962055449946016780059128828736822557324234261576171627955641872822853783226264768486003056406448251654790808947190584124225153693612778345738900443119440514460973421279909065513938442497259425025009386513846794799681708295820161854666389754675778910778247526090252703108046993772528580685658365363421036701107493403562754031993685059833628214905267828950766970179697761900044420045320505615700384591747030008718349906506973977414730303501945189413170126254803039350990657691076913387926137550275115593107297313355975669129613906548778057321695407365796269857800686486614953149282153786327949486709352927311526943735148819005128793901899629548028713797973411147772676231459780969810831749170322587572501729241620842175903795752781677803565753958154686090971662789110156000384510031270285411000739365723013739823473343133814154350465906398803126663685103873636079883056337259174752625940692699160850587652530427175028356562907873133395418378516935495477207286493777418797257943028173673796881374055214447248883216442428640732022045795068036041973505362967617010883822713276076328634692281265951932416576460916615773330632624596662387950630207119947316667691324459448176340060445774467725017995364650738599570016062733088881996540536469394146898484962299060872445360144721673198052341014062866708386822128275750685873554195667826333265356289335342788356651372910518460479946682139841771918629390133819899822192699975444353868040821197712608238282220879943059209308472191981975299245383675544501870696018282324476139089904769633818045292554194687748525791853457947770626633773680743054683980114332626735248140562439271558793882232222593326182647452631652244675179444975491575545556941414768048398815797467215791667419123082804453649814127223393776228790667316906443823122280398862506045751679064569459003618620407025642108749351160126585353407634122768996143350034133916996138654181153692563570541548842826361984778122673019868506889121728498254242951281504622273658292949938253100622586494415545858287450626880925283785445983517520960493202866932061993597024192746785519124885829926132183421249172485173830771112516561044237265786028125890692531348711751675799257566783580603425563306820972569811329198367618071774676245914522266280419462121364572471070050770138534694780665177692800570626304407009850719687649078967177099888404500408629040634789277857122921630060332346679940583160533437084823600044795442308312088319739032292962786268327192094551036553557394266741008803719303998222111648715251446590979363793043275221865276301024742616197073403857931218726389367642446847341969358536636641744175909391541057071657306749234669115665103939052269843383625559270874268733704604806494459427257818082857011595220112820227031179405956047962917879584153034642191898232412721167796347889697859983419802359321212952945606516438735827589871125858333514886856177084071319517136665817469004269095482717541077928560523291711270705216819489771029361344109355320440556712736764990474853260873734822320012453423671727383421005732706771632065027670095936789580584544899384124593266259387754692660077552615994427177688794969273933878443955604121896743712006150072326585530057060450372848406239965648354793903963593956668711025033769451118423013238499412013205947384782142222664282349846626942948273082089772554808074555331380947760603842536838175243267460283233191680093408276767623025454172278762893518320856390608172027816966106841929995150003186451993933155313442797748526767935686798305022135541550150693501075243171879740353059000499209063465050271854066366024473443857594841156679144132477662574127926946882003908809854255030954617659000637310453292102798926527951366643850535878825304794285549383689520841357039121284562746422668548108394307801635169993088039349960919282446273524329854676453241587575748717938699746510467694484495363678915847080948585010812829018786641552942675772218384617499409169255360029485056480587630903116996153674689244564792868233621073407692505456784851128703630822757871546045102899117404289246983975686146448949068595217830299324502817774685618201191298761010446521880488264098901749504674983874392100992953361421489516483150545157818627398827216996452169441291460548296216732850298081543459872001181303195797193599933343537855953891633107185315757178455076363209257787351094494052986211874895913914838827967158535467340681101730227844769420596554454282289955454831120641700326519556759483680681546221874817295526061930441296824098265499324959278653753043400773078621051629841439203778392233141754882469069765579024823212662666131645951002017418660166549579035872538005153654568864243560978927693096899350026053112631780501248700123546618545743814540576990567857711706377857252947902423892945100533672310010483614724071434663836264686500363408359943938649557545526254622153776502360870314166580285816550540536183372270821291850937560704095965183480330091790994441642823746604259757324849639455197551676236020412962823336146759203786233282702438983438632408844116143410640741238651109027046219335319944655793122262610484242642088007465844419818086097646345883916950820402820806664839805082427882024394219928687402619777582670820531632716228449733923929211710246389945214492127856714603467957152341648303211304567560152388636063817175543061203393377021262962393122732942814932326583077885509488260691331022565386174574247828824329290426453672354219530937059703324348677237185678746914349451670575077020004027001788456813959776119244685696056727074425521289916574079779444313514943700929534921672741366875586358968108546731634438820614609324318415502194600085655918983096113812163242642195217867755659340591823411982283277024475633772259167514445605478040032088353903676589404949200924432802995102016679451009854895859840987427017985205817384095055463948460133557504737674671642517675345196546500834653300542948221840641792590868108571090207982650730077098466148026839857361757698822369433020493000772474403551146306916369884196503378587190006711124072598424980872557318988496501701341467626143473826106465573149045781534486778045290586783040836568673211874570923645573991847783726309570880994009074398679530942792963624463250678799805664880719056961569807904801241172203655724475395294712363909667800668514243239490535789575490789361864733736504294895682993685968384702944954020922665901958728116049618536180548661003774845275289739358509649140071952423014986351735655990719955054794447752595111998032489418888063877654567328479894636678928699864092583393857453466956178079719970584381371231181532788477672846539852677904613514357398683272580960873206576566694148044416194097303361219608851374174637410980604911714932666235234819452100093341238641061941289849783330129015545261098940140325237815108793035336192975206057643429663172384253609596950231690748743022919752954975443659312908688471782495553251465163536292026692605646701019181762680749851388947496020595536121082450257642377950179805784454381689343644733988293743822577865241934185677413626096752709203288769117908588312608366137996737176596752608777644640728676040667797746119251406526802162840531157236350749980241835812198562576177486946179616551707372706306312391715317248282202379811343072576061047969331312342421816346591527357180137121247898491779478894495921152834245937697450437980892395922214006343339411224098438441371339363449724791394435523617356819416491317773892615998745406010174529788498102049428370857352117694395378251165589552355121521932463395177755307835721452383344760442528488030679438082551771012510213537534376578607980068015559006209987049536468214193051127479973877292238182891138618599699810248918873865437495457165483962865532324690763707960924967733130255479899867914313714371357544999490766265348906475547156250729684853345267105485814872193008596068539043884111857494757578324322973177591832392485926524793268137316609639283941889459551839296965209452604410045777071519180652600650280890776844303913501454211796881858792772666632456088980881535310278905060844271056002606704484973417989215225998489482539415422430239345799325322622419375767950822741265132980035801330315250459972009229007909200063762714746831189037377467121929225061916984967633051110769041896063685254463203825985692475782455841526378692137116251957485414644212022822831417477269488265985438165801389930581094020166162538369609321325701982340091807150786801586082925970517032331678915311896309177467119466967985297118334147364791480651169485195249300214518734216401503996163633882340418984544318785855167708735758828715620960032699491134955824650120758513308149989934164350580953415077950978059940574298965794172294481897462927300680242123930301776335517920784608570998422467066331760502320464112985814044389752198534302014077198585056354963752304646270256776119947783724090075515498950751866843201764183966836507809074518358370453251009626066212248693132875067951888039547714431593218266813025415542420107895267612317248852342931236504458098705447951314932055889369379815223748747170730099548911373367928932455940761304996110134684512170255411874308372445372174332921552003691980128236543663370815418387587098432893209736058895851253181385063962029433191711791605304875274492618795245449314714979395315315669490585746050203674427796036374972089807190619190287032743718555292211562580809141300713577350054778308017858104714886360580190356196343831682999668865274199984778235948996387596789021189735538684681975642920270282830734617071042250134436674417955858755105366265057927543474701848702375133569735755565215823475202900148999875819131845556668383800671001793713928777809579062127498318233622046577353313192350511907710072535254619176008316269263367358165423567362442993093651680492987185710963251318449714618695957974897749033290176432533631667341507677587036272320900275932133841279319576108201845489185120557154652391498944300734383392135195977976688050418691418412075734535778238602438646236981258877599275326219279063845229167130380636779299803360515714139269516531445407097984688508129507546464601693992418685657877724389502754845966583423490319949271734706336980463790628475362605147642311879129765234293618032105145752735993508015000701396312119802627545464655258430227697800676338054176466203916651476286312624439605126254864018835003590550072782722779762505905730306759511279510949905761792398966818090899742253382398237017890405483456859006536655505726043674435982318103925370073045794008794546188957594937180147122496759655871102185975217457000846717762348173044104099915737489285412996579013875334401489379882905734414402089220901534199658641454499228610702537435660526540169187539414883630134836010232220688481869990237958691927526319659776117222081602635680096886629871198600779141434587505332386453913664541172338579479557251161901657883174616053533000914536102958063179975075048611382611032458821980510239428684169933561114113940054707980833427132977967209743495014956160295882888188583053294090948025060512627431252000906750806135382391270119057264737237967808874867108820617028591616072654125453582103194250927062914701539615948618384475760869148220818940309133701723601521861322804964101266511868347236676500270083125519161585052680400843128153120500425823738604222096713445281025913782617769137429298399403495461127417144663298991121144098394931875669707992408826791616221573763399367273374965799921345966490467413358720480681288677210791681374231061051576298629951181675980947822788637573547497573577547870447959562802231648295417979960590967512385667929831768815932805916620936723535116164113099037168317755563416322291900008561756313590663824314271894214920062766851964021121287883878947012220496063091133072787786329919124891162673344998084161179560522752744061331547040815768980463124289282242813230091482325774827671276531267184229252826452159384597898906413349397625956098052598944774176210128855098044337199645533375133201107551878260958101146599351272843104790756675218467683734415322917972006605418181603623984158549327522589266332637529402062423506451908628598828643770746826258272252408286928083032608154242752450404993742637477363944046886924943584367778513035743730902259416183454116571119093068960915465478387961333351498190182123406372464974141874430462999331716266819134554141032990762007456566002887142873868228155178303860344781996317565134366244396286163230010831309620326782777724942742135556683238970327417859655281450139882959138442324769850753762653486127004471793382297563534626656702790674467648215694195946182584178751691151841052180642312322346622678057847400576203679154857497465933939496123727677896489108799131629826739701106965255571087320449007478787750576221085033492848941269832565905866981783608563737709680498481349867665309831546198172158240370669428192388826989429242589610382142000176270113063786226701974999500092884655199254366954360563690764784522481341516934097678534588329796481090914100738678568399174745433789403816410204728840506912835840079565845809372596196605668217936065294988663216460589423479290477738707548581978825314762110304304450120770940028445586491511499119913396478468154938900606620631763550308460155064126230615615699716339311656376638932415886913557803975540871898609192859558131374262003664173195763773683519590305787449846124414043004772873274126936107375203172874375944274783568015603176439890461500760194085915196341510744230869710454390343975909774297416275707724896103708724133511841874922346828814466854367727658553436857794530566834113951237108871652111132828158563686521518844062626657985325642194842348599922397988052066706376078629850132459947040821787230904148477059248914142385386339862315781786487611747251646921536001278046157098065305625731546434390861916819434692707469326891998556779841541614257271237234253284312915330875235223619224016005523222176984389999160567337240386903565244490163848798905280465499244898577620825243477300832738515723605823170105192763622406625500487597818187887746737339583551364373712269480628270499963810979582138391294063850567783209776980192969442921719295182363491560570803834635756815511338897636948406162029678993645907540836186609746087539140494484928548454749307576081046358622300724632216143327904313105616406697537499672165873870080943528155780318221697101871041226954770214823436000655258952955728311222593870486167761209877554082812413979803505152809467856014256054619284301317107564523551136312407474815095110641076248190726502890777058474707073924438396051649887021031473150857395521341479314089302418174276732055920592296627253617266698509411094121599995222395793725304757891221816971734683519811126472401803378606694616622246011112424099500684040273735073672688491786434124063895877396134311113046985413226531425322167286109070947112556069486676809177061429437037572735762066031048925762153121303954104520559836765113676879729162503574887678385590324302202648573917484833522868683208431608440582266005559385439535837021894462696581677270180603199736093671197737509160384169260142623501063124971167052862006624293966355523217870496758277362896402503533621759882616550706744102414299939378529521255363770529450781131602013971623854766281136103796742783459335831534780028965011464278438377157262683311679624612193192521533039332277522073002445641796863517756731781899590970198745549762784973637211159578439806439038284574310016840056237132656140968197181108738562847447775048741534526440710869038674661851661919370104465237064840071224694853227584155380378650404033083158325476510511065163369025408230130208032321928797839028431693304391109039081068116656517050277267738652065856084125247641513164984895348244446817676366712651755093510581619639424681718747774852305702421714078603459611737181662841055526599073428514021049634628082752751367455919685975063189582402447113363245158491740495521376059085889810590647157197100628624218176292318565412302908291339034057501424221842578694744310724317689500380891317694600439776557089292435405360257794124835171637188859616565612575900672861207398713294101310118937766646880405778724393397461206203875664257225692078027231930473360091132396403671590089492006746193821741627268766634055338952473718505414830409008838293211832540894138753677329705103642582573061238549794054171292921009000464853793393835590841334871219829180783504612889461203082160247667517820368897557105202695760826989568571574211304257787069032868691919754972129460855778383171974600792254080149721553066033562893272237845808257538758519624817800505546131229374304140437402636573330131025408122443258506882823204727013618798717330073501525249097909032888639178191521410917440383897144707288224139666345406277936443258911383232441967497000790155122687601682671648606527883344302187528472249237215312773891896605635082295875848830813325493109095205960978242052774851439326377141904571704124241390306967997984030448511165235984348802027957627935629177716254655678013687050340360540081582111413396540095074103121952674334427102415519444028289513959182825543606872515155532379459745143165089798464665339666048888893006972339550281936525296315769865708673591178382739500645952772745271682103722846263400591423352193081584178434806589581810244822744948570327508775053846896899838065169307379928312436120769988068896768588893883235750784374943455928252262115090512225400498284364331664014778809272423574931592128581283965779428742730680352724040462197755876794623666859720727266334462368276883496269972876684875934221870975314274302724639374246015809045804115545750356462362951378408899030731375273178081151321409391569158886517347771500178152650426343443106065448047815215913212119760864674270323313354597170413528819009902652831244292585893615591359562564034730434088313679597054422368797249339362013405362307273744268979621462595344491426882981621415901115280351817277854996781252579622997842822343855974818164328537412838534156117150775269670730399375748268056566277652393802449307707971403873452267810164045907364986047361676652240015315384417536655329455929576042086223395133539627837960850143948035032282409547254519414305213643069029052339047943742023145253017698282074106575014571126141670458257861929844938128723479998278263017053288321005481412547062283232128189411240094942483945163471790536862471290402205757024006577435956123226671020188552397901897434544662633490556156357088158679615765937649947203799515825430382503542663203524040746357183609312198182514100049251237641603577930300584363596278499186160726228198353786702222253601557073688323720498375666403141615858921947910785603133811968698484917850467761374407381251974600246604040423630516291071418509411482505915256537907209791067786254589635735069556920542576027288865510131949128289715645688605584104550939221677162568738683828499846436849774245168200164041339918763711665765797354118774221799263146790592343645393837744854897684749616961126576312770859164268058390503947613424993145962992415009761457909931301654812720085347305034039776240679040913307352314416777972104511366684664758723167996972769267709014053630676184942287865188743655148383843929736132843143809780636740566243823585794323435062983311272978291571364706042794453031452284594537716218221377017283870303228287216721095231453695505473407452601838600413758990396199549764267168660754493514631779815019572916354768851369745758643084884305261698228012994961549913159797134932832095681651574101640532822037221604803141156949329123693394695580564406548840017874180279313813044356133935658944199721212917870683029545916200844006944845710419208061305673060790109448792898893048089713403176831205258022714899049119015156009046203859463994889903971431172171532111367733638269818992031568818476787161337361947292526071269851546262671364791130489766485287640418365392732084287802592297340342744463749700959434193656937291299939875897168422046039459784966118482888297288903179503593112637518249088435534946895074662947255393691989634769089893323519627369435796467288511468015004929989212111830966240132809003218291434914332025280026831417310417556918292559950043108612210725370723250734956793232664351648100358386380590237112147653959093119095178247715124133953604336557467486051852769553552076724883787360951646818620841037957073214964333546874334289602167977443593040998208108024200935150030835611916272302186987649242579833192669466395137289716319089961876379982080147664378941539892364837627513768782059124064092978156715558553259761315088559267862351436726112293814396487759726580557427058004435997000092708687260029039679006129565378200877296798762265656464678080165743423975880093263102490605863802011299029556463957029928858534097932936769568700077446137435049332449220307579990280048006992091153432361482340176305697947698182544657251541498877391296798904199524050209151289993732157541540073161653141946983908792539851848275491484862672020091995299707017579145958007503705605983846626283642436677600603063311499016743669893884848331334376642395006718784143915113234566051976698085797350449115953345235301636579032956965766964573770030537233090952163644988310779451285971244358318063793956920511735844780734611711847131767180181962313569861374279573423460655181345828577651478147035498545654236171862784195215232517702982720170880672274494044982041926179453367627167713898012266530459863426523898205141045066101570042052428270477062525599150269976068333694125036851874658338085556787203664005988120501675166942534675608989168693545432071445949223245465478871305839194753119657741676923421163412867750204310750082763725276758838169071932035684280093706956682224709069377986084750115118657211863182611907937596366310017292184263118983516123792298396292818566278145955190001869353306078114552238011811189304904479345681996399889458677517999982941722048429995629248879369060947934304692205008337130683853032388423712751520422157193719356349735203082969403021345170839831670118411014343410829747209711734098928029671129763919110584244887263992812081111241261267124537152582973100958709106098987557400424202793987607123191777447066310517435057642721378237581510061282324821108358946346835116993213483631665720496513911302150036473551310298934697841017116717303320577969055263774586001169632629542350947602360336548927578608138878939264248826371385151512239915678036594790340604475526211589291537383951084977381792088335021650554389212821361798646196918394174109806914559256064535894933048848815598094846327052158675523650093741430761173702851985851332562281504569740012315996071329500838229075540766939534412119932238736921961775301765032653961332368770110889475882112885727555288981802578765828666526629922577557486111982713136872330961949618937297679358636420421380319430625678993925762179916373370973100479080250964326969287823781472411582052553264841784345886288037123142758737186702247118061292777123251010490463701025249630640190814485493456168564416054075718248542047470087791723108096712802161099182196688079852822647739036159275002416097477229827826359669565176586218655496114697829438546461040975472971542721582873212850484231145171002013972333993269411367820781993795107731529104008100550847274890826534332156617337429206333018400125797231812007651177211090276834795649059619804606174663514812443569062842509835422721352062626274555255154814217035484637066018681693741310784798409146515941576889524693561630521180940114648754590377516743856417586500345893666796385471568116828988975416024016438405914101377012788622872622905871469294560358244776077268930857931104040161410908105878419157629299171299125958241035283750701812209094998322788758009470294053915906845441783075295054319748897467916931342832961366064719279509113575454929837765081286194847030686407289512152180449448430704321856838539838563687207068771634254736703507275395217846467756804703581232111111827399145467122309121081007136225651796592359599993667305648758277167699959401262014935209889167301883205346540372165798698735717600958694478083789444273122709409588335144063871727916743558508877841296771408466891386748458279501306135911269030084950982447834757657769714143732577451361686316165912054263312281974494773630984588600833596008039976151073806769361047352178300580361380759931439774520710019129730916182641209278728918667904644432283354640631266742038832754806307398451447633820382354339626243057688119115642598207700648942257958094248073061951771527238935589163982809248921698681592927671054051378422910171022958975165863902174224252851378331619123768999398212505260109540119434675869548870632521252606597591540336428114300190335345600490799741110481731570630465228541746476258542122554639762228263471116226457911894135343427079060485482615968779171789856751577978743027007721620015921767640927510436989238424526488130194019044512900847858972730691252252648224078664043557907772403426169112439063079778037308140125244355516859157994699301601630823487193399527248511395731963171668983495791184312461229504711392436269980816938785869177007238684477406278319615402427396546117968977837123981597946126510494969061384054391450187724955280071232003070099083905601810008907190067709432818499495491855098183185025929967075770896774219070861616753945818136455974587350750768021561995110631338251565816080831711978850285652759021236130779026985257501923501845242821202856117535107335039414081117880587111949366113747866456325761863850626349477439654944465939896422190705990243431842918475972007992267851646703538820807691643009375883537702201337330254736698304980060070708938276044277983325041126369933349538875248307699773091123943484557670165009065675650725058746670914160992319250091254598457802827178666620066122422373105707982871864968058403923084926827415312863894962507816897357471285085133227725847915806833911826629528086106865509943686502545738705798809003650714038319896078508671974475976312625479420224630156046532234022427164631047496966648558942761529970085035270493486213579488138716657963347499205148250360433434834403680094728019379002559331571883376707271751797511024017153201192213676460233863024234771426707650635075253820255894713263516732695923631866631852360671672030446629620197846824516682976402065885112346596759603416017207870739313909011772944649665366287349401537457749229429964088124872453397066247773567473664761035088841433540479733676304889480542615059991430990410703333872410578973371495887351329882617444302943248514527772510253798900128827898205752283013936193221807620004430355455809494926095509977362534517490238530062412550845502016346970586078103500622692670729274130652100522796695484291252719994028663319870605280766674510457539635631533803624137267557958535503769244435110343506338442104379161179564809059894496574518909564958153459288173300598555480940587255390401489327092718105961862356167878480744363281016497714273320883982649397534975940488070726482781819677796241722745874632355846050514765687914469433185645656599438770087786029200547790001850891517483062982574550012557308398459586977805558086165017346083576195788905503567697155648235512512919078399577225376365263890161206283490556151538910746411107026173264018738770583041490728425133203920735775713836485564680577133193057898544403516785758626102463053286784265017624379587374799046348847821772922914264777128713308193840165781813924410974906254074735563199854863181750746298673841740797614178498610154479418502161746420156070767853786609232101317384386176858164108771570011951554979108374446504965124569574459652071977265209030287905388689011743187479302583759445007283756442539816263743461166691311691027328187641183513451868693623942811803764393403368252588064809599204492830299354201938128622678865799491133014154915358767174528978859152204975055433601130234198629062387587747384280701435069907809237548656087910855639417418398656298355603768530110599216978218204820079855944153063827693096660655804995604118289467098880595051791267326062024421511719139331950463336323233893467664423748693875928171453069577997653587715144862171089136073407233951339374034645601863585229091671945530662861718003081033098158150050480795947412099478562476534849763120098148641772890644907997544511904956758248592505141856449836005690819826962292440198960237929673491430529955725582412753780875794944953094903319748269661243012629081638267557080196037708675925554968392099033018312698328398706881251315524476106971173144368309970111964305273186816259827378236077766005653037236539942694025726063745068139442845873962947853081012547621991947716995571383211256945291955666563751963110403829321957089232471660747648612144412735310867947724562875214825198242405810513672590577429395593274380837121104819966770180705629073042174363242217504107326327559205321865025833398194034799093261368052375480715809357307055574251504685161018401374251341653751791335184682357574861467484920082220638757010499070427911130491742979743821100517061677182293734256434716577449719107496024291701874658189400664317217090660159544720965932194259257284295840351234395081496457560274625828303957828175841914518102062475932466364134220964047462642542320989043239215762985177092465665342122847293119194356346834870287036321748414790701927524162073988006838505043337166920608555653951649526217900578165478854318727816872124565334940695902490176848887747375942947819837587643195633835305916475163183063462868416282312411695347545393575431264460870767767519612911101045895684316694274014698767916525151512779221459148667930720512447307870642236477328678679619347031186081134078413208283106210310616571916765578561621163960334112701746335518536020334364030731442342150344687566291001663856499908513391467638672320466912561265064962232247078423119869824151551246608642201786627614883622124703578926962776119586993190732023432079152369676709886561698692744528541072050978473363192697836558355154020131405904999910550769286919928817244534153890058571825937526746771231636040936481382697503193765354925001328393563806704119218146676620195023215963260521030366863509464864036627795289717212477782474870080644035829324591944328030776306097620856195984903723324863839545675973348819653072113928887487456756938861042260475598049947228756735737136357968096567750212777537421478656151823947169100426392623354342596687147579138769713889110289661790304346512427207177387665463070843484871852051305003191208776448275963763395694607915927055455054536658677595224880383822052673977755258605740750320514005522524254912815232916729363682127563796445876836335986813194454896425636960295727108435337401683975092235780951292181322157707828068633688976791451584925579561954261738146119063414587809748329687553638061843968604573641497831376246179934774851615035206495744375476472332295608557392702942117547553025437739680581195217012524751466580391799505593213809266004975628106573710700799663943267645548330382246389638476076234441055934898150791110571622159295493986730613540427577409580424326978284336718919362042755199056840444665018435994750169542118232206595502137114467030413836799450860636905842810744057512727086501650136199797464795254594328120400169709943641532583600315491607140785459999455087055468184100621371531192850903829011642251797236423499339413474667459307983964095140628354992910287551137139690129912692063806622323272689334670437079674400285704481794315135506351179711354830806224836906034287185622943568441235418519031265490550507904801323728263129027807877256882367445940469409436514041201738578680685232608043178317373689309448239852260889145169154135725515000943438452960530242116147844663567474066838950544013456327710980408023745512306857742984996576200417738644683839197203188928945248639318174393852588594596247915672974313580653199461936177673087987655005458806238996836115944551928441165918492931135227728516621230634665667801745183636313789563828761287825844590138825872135291623240111737854157460315056118377326631100170313351047683210313634882030045529315353659391041183274404442337277558391405684989585797160095561453480748748099187252517587659992202673632444196239977964490973484645066950743589894963133758430190617044584547166045177782863521600115208097284301009006974798745225645884473743753459273500006537062089054830112579530388407545272353051350312209116880186068387060628127543967566922700678877423206773065919035410583325014489291299419650600796958130236524344133503278853359058653604640099592720548757960823710680034017663890924233303707174870175207530321106826189835435418995918333461121600065207643613141476641686317559822659927619877598659955662544320477479478396960057711064820808873846933366510117373035947914849034982117613247676097221520594462420632558921330835900757140834018493007689643273150290019177546917287562917752951416023455737524084493160494978828628132239891688531894580502421896249572660215117549112006549173072505577764650601314786643470100321541934030766930515404163695189200506984461905277086585094250919843986342115042166075946579429423811468975183293639504218687986848612733484776932075098411619565152275072820202228715921851549869617134860633885366870260912897496777704101441236265703448788619926642131503487346647722085279132800396140018459397490116381534502597405272418667131195543419593805825482470664312941989993769206774409362446832181421559268479181203588402151535069349968727634910868148520110036055071021431558648666710250135775779181247533016864334272437510144513449403968357261053349290736644924571766139368459493486859225643400717513995594711136298013835456894931116974406726666532946132444595519296178582932915768709225831089592103928885608774603569966829005796542178853825479211189328907605138334342240568828819015514613119461681225878537842529124311698729954901244024052579349034133064434061974487385113380787559081940322835462934324430449732899888842381538645255945422852646863628587283304297974786006263028589886123422413565493062764447561132977633086658297119697513590455320377945650036626058919001971637073919848005135439155984531584836708921375138942343110135493265916134515946092785043592336249869878730775604010596827478408384906519870988274267500953675021658933842812720317396026127109816773291654854280745830635738821199765170621929499397697592864382456009886897441800531293365971441055205773157983678224058259126018640861523049678633945195894983127944884078856510028752462722159017702062551002635263736380544933112930811466275041446069120946777065588043589388349357373963351144181019278725245958719772926309286122540791496375489538081066606830901435227678310044764870430230374808027536785828551996456522402481228314230073080593627245584211320610600136886733980663672222855976752808224530065163098765679193619521463544789414274838141707930390594628061424331892752242593342193906347902659405433481807977030680792102995750186211163466719524995541200937210113371911162931077113009188530092449027622627132035951576341888653365709757068669480675595703898764983583594627833346496001924153237367514924488052925080080129995363406207880123439723516295639310235177426433745281842849364873632816538839466155692913115269489118063916738221778003482570729729673642600795952992015734449253792703170436604371965290140275650374691619780199051932223246964279557465969005063100646789041026416239122514181133119664161502749751937198911255406156818314819689125608159025471702314832536099824577024515867378070895222048562956902194447774717517271145775346610163589398563627638575434445046371301170316663817016080235352623001015137191606383321708371212057768558637810856019006716913179372215325639371876788300687027877242258932132499393418516250355777548466419811583746211106027512800495489277326007348964574449147424670498213364837043118764102292190531496258302726716141948699961043003483741254432696448119173256240442147480266831512743570415541681019278844534208320473271544376918002101209156591187396121479712468954064763732344875045804253323874972767716770631461210645507233614425096340995312232092438699612692917030081555082391175913221015961799101517309353883950779694651908416980925127841950832951082623548529891641791345595078054979466085611062013607051324920916152434490906072139454047878036041160108385858927714472484452970349752662651422995670880746646219781337462486577658587352457716499372468116087691039845853958146458846212342226703582740389988202430926899323743847384461652816203035944106468736037179337490106515450860296709612116842079276347547268127048717078419019632337469182655625474885258697645474769883863323934637149622756464094537541353648639424969121657470913691561808391890076485431175570977839583912476638696375469715066949876176959213951445935305578955719197420419781537329600312679782845852142363846381468262007157655501028937964933999222916804010384182451514312878279380061359827618058590230622262008967884227759898802882044643018218284158096998969589703450164536619693564177376059983816169294230237128504680137880431086497692645904635518658351056511202977596922647042853557551037300832120973263289460031272475216640369468414491262398175433603114584110456623387681998723328381622029996116386858517811253995473754208940275609193436271813347456987734698166258078251575754413563604694274191232004999803845176531685296563624107514721313274513084718368314299362053535391416231733604940854366394978455742631070371065424246852178828371815158182529136471274567529431310250451293460794310997524035328141538663351549520542017973745941119746020536862948966132810858954336136284274291705072296521236708499186691103993659551643969809882307783356452913855006855596063738110911889814725584356254561050154316028040982895324678965907650370406699624045738842912143529046948903428907528982941514605747364401383435889336104985988577006481236777323421294440015278993953727830956283608619471390599504120549132363857832209806847600391158918940779257162015845444749458913178836960994893620246214862368669692017237916400143281236657958198710987050207205571674453417432987773614102404562634949252452196648890529475407017142927205471791399335147549561803276326315642207907477411721323820705806874301343366066569214451765229721522176955937732362138493020511733158433207940098256266171956226743666718846125160720010317748436262228196206263503447598395547102400813053336244516561693019658368237200441930406098948978868462240601817711430432187092385865899203093627548513569157358088435603220827931083684901767561333330350116759958551627310705851740038678625858171255261003556249373141198620942650426180870096284807253268987080072546983864034643066953131109102469573382133001960276232879128442635729090650269145127976807365955263802510916806949383944804461480705191842247447554916841433364294301095545579508468060946890616451399201793620964129353134458453791390710172596721803521526926977824102109520108602252795291279720980630199308886060476162522336702708393562345302814663797830798102799856320246249207300995729032329074957145207383370824475744211011629831740050114400335706755818002487642342639185739623027848801652966384005590319344861220355039788022367785592310642037274252240494637666754414128236890161951303577195723867343465782682771115178581912556079315809812926002188025513138861161947882166109280204643133684041813178439562676713627798207165126868845436851531307833453376520262359211820407768677739264795938198255283904822230055351990159850722801174333173276134552757695756474172702060756804834192120266493851937702958519295988542700202208567734595843611915930501564597180941340477766251885593807552936574313945121373394996436412899436792436755597096434911509492220083235742062928296229044719720385449888487950567519730663775347704537979961407637102129603847090873443623805322657009464757834158989378618478011464288375721687241080705076041071709469587519929027330427673625527368375857099196285177047853728219443806102139276493112008654500144800265576583374412958148591416465704183638878924203214435208028021329448891176145225188975706628834215574526839188517774522885395225919368767511685104724398609235353021675179126282649451180804712034185896477251119304370472532884928693142262882334869756983200864144054175762306396140324456091824123866021494132872536128081798781762214404534704021405676043288414843569751347125457815153276838798840605359895556748433541364715838608455265098086193153664315474065841523059979076129907661571974295266467091942995157983635452363607248771981790960681164696422052282967118185926312190963586998386220140660935714072685800221882899837096092319620944881289659165829200852823826060178927817906274882184593284743280129709460346156638349815227671375606559562169818865603069091681932701401520573755308548747859588575115321415655254595485900059989308634162280490416029488775229794442415721825666444654869214474236989919263260793053685239677214651425460009143162929455299883709258593154346049126109226759682290493915923417972787806975059565143618552139808998596346053021227483355202390271697689030428653918009438113956428141474650250330723136796485623235158156835969823031742441321148292135218557767819866337152860330636591580856643264526380432574948411994642177601957583600334501890996831045595217551587405687255272096805362009251940682575297757129789022629955294772856477209783954049534716275504948254599037262983184165793694426659557329697924154720274085787203250442266586921277115647251081772885265642932363839556102675344360014562038730950538774522840650924265824222269123914764493099638333501219449125513305822533050457298955148983471212139359237861467460734092044669482007087156803146091584789109462027856031861376886772975513807261787021606005686484727361027921522606155132666504762178850456438886294213858660420312403645161157283130882772682373759774699915836734347639382740602588177148413347145661363977962035660049835471727962608675219931955735757195517897887924688600313570734268494994864733000268012704774677542480792218703230129027579913206329454529093112812893040099751360746307919675593719813497494648550153156855182952152768586219352033532306350326893039298682571590664027243674109912234815434242139373497701060226430250801485770062709077928572550151782813695524356465867125410591517996706925352752836288693564610486346399871852259468243343987982482556928106279502850435007051695162191244512275605994964556767832348694926005512655992853290341220632721791409112259675771681494392659759616825130884250351885740839797142509429832404306611730858827789712184360400323839608114241698259235215149082342611712839340602162725628777828717869838609250411529899873677329679985878860680195414752869483001252544915675892941246481866862615809498367462467398362872193453199619561839278508571727709532748499570919255348717595904773824883457418612776330863227123646943758362845692279624407840659130062145466297473029536523421153242763435520933878638096673054571338398975002263285412742028222920100582855702841242171425055956817865036766073002697423578895981107704326822002295412777603358710711958109543523690816160995657770465064745539695831305982951261058469602594405342597027447286766995743866496379829588867721361203402428255850763681686705810148170798913641789780177281183393837784753125375736465995497269091510356452483266239564696282724247346919440567686261979604279577302299144537851604694734579602729978639159250649268391095095159796525765861587494095054973519150622632267086278691664637762605199669290961328127032546765227672337506941853950022107496790253589364326317902020433332485035020082464174216343316837031126612687835841247089600738500949328262397576547619084001306774207212810649465618901817209512894266432830096727568859064382914574796123763887354370032744410508642399972436570204255291032046016710703436402724783220155942708632518472739069386229031712685724054462852347027412263528117340643753751899839090248227336749172558307604881872545678900291716109866582123404499328719778472857186393519928137408197572065418491712315448571321461682857037490759748851558973075104107681955401987896975757665492964191723095708041263663160149315612332224831754427903653477511369633022104712979427893569971374149495569329564441363649487428139095629186478485135591903555924987177717858923358722126775419619312227578793850187805293831723329527231077056366878435069868434487067824453514286306916712691395319544976877988908704408698379462460189568699193482320043519290286751586940977576941179169034477479519275035603729037098018149774373994344163176033099459025254108435950200587639794752813420657006065536361203097539614905071367703862431842618441199428720292509191235235947529435530621148671211553400982503760016412294222410620863034186095166501102195346668326923477462906839841007143539988620545050087975003125213597774798472842594233069799482254608406294110080166193627083874829820097263257454680828706543908388210505372218054997158032740903257829024326214036733232154727522689463027755495622841250860514957771058229131676546135344632699736458405803704887402361721438349694166082012844414066781100756089352314100216683437981800354450532262768005290714603430631409656497572039266329702612467422889675385974917536081189886371320616825603694428078742927475119837755191413440064283740947332229748513712489890631666170082116597560233250717486039508456478908998733220590737935425262761874016311579216990991235480011000811713173226421609203938565271136778425089801838920085625747527399802404819484136084912446502161143612712187541093818237809471755254717507413359728975498641787133709185072921249785782883588486570688431705169627539416516244562313857141222863755415805656316470446314391484122746958797928726982975701249461781683005680047483436010782760417974557582425614450440576165239194733970185836135433555821555511018214747540062975424945544022675584796503486399485020804462025754086784861912473188697143707635009178497254940832471012948025419174108597678905913352088323765403491823908323125663585273514819539130526873322720670432237888020487150267476640172560214683850227227746338607329582909339471335132126413038742080417725523048151487697763541443054458258743567147162751766647635966941413798766809851989017149362863646301809343221950545184014145250017906841484149501741053000148635867029647374575956583689711397061503970770987344578156070044464388427187542577859909004579260106074973887773942666074583490088005813169662394012967164401897808094615548862160820330353222542868527122072227913133067709941020761192111006679858055922127043486320467924778344266355016121428604375907781364576969001220743809506096286158798699999188517099802250996698585162133152481837384939219319013368056633848295446674027375493654892194581104485893260590880733040383985591897165703461200179871198677825362594899471533106075663806790287095095561449977537663997392143540122654417090771197458778345493702075744721923984748212981441190345249353779494628582966018014464660489941474380852304596817912280660993127948582758099185070923600084398026758058614015020523763082146706019816004464497225670121996504830978102205813571888578306640626808942689149857462829245288657546553895515368277327527204778765192651095579161863252404059940815604270773554642745905374177322939273970680929793816863455223464939712759886224860889779775583823957358371063180945280560786303483514695568463467447808097279100653989175440572286122837610156240559788343600541293666275742789463884220267882157708587328552312283932992032775854872326808444135447286188992753780701313154489854576900925413096699013327771981513600889880694371412688716510307817724733855014289630314883273902156206861313798876778618284747925270214666456017653801895898957968801323938566716078681186385518099975704549577540612209233453898782574356914618542482147042977223979228891001242563762258774764341404274734579667930377207554729681068005036138358218200635257312982515749632593884753824300551073834054421613254017290401963243061771047053682492591275829708606150338905532842449837909683157133437985883799073889895076633591768872627962487808565227670255225919957340458361625398012487249436145000443664889348208670883055253981329093238354821638925927876636444607896552932542270935134743885094681404905237033133468344212492631227340834887444791449279344728911501138159704300449506728266364235309190772069230108933722773513848728303737239833529327447651402673857518557948945524087076601731650330048186091961956968948893417902912972389120018975051415383721246425966374111947473841631406618465089656505329883035855723019470093375629626139780340271327548752857451731425687337867055152220190684669073930712865064809736473587749404740830043764040846770608503393174436534383704069042851654029723558864606524273569472059873081937679003204025576527651413294021948992019464123004491316074296097193967657585604675835877109633838833869328767455546045424588897204479851002236980087303417129891084835390479368028152226712768735587835008948273134241224088556430901804535806442822593939554195768318979974530123542451583793412299814215525377368826296590715085660636591807008599241484643134334852070698988023222296143457418715874301947369623771438427801797442062211856951859093875634139777394626274140400669856608108710454810540159746629905492732873243241497769903237117099873042393143404943594534576052915715559705446179451838041878645828543772587713595943115119855354505418589987921431398304844450276259696460349377805725056574501652653189150422505627325092047917466978768533827432635051969090233551350855467325929240716840821097977674939507036166575363157208389400427371256549375200237255027278195811608453295785385464941276830639391091397316674186214889790413674122901843758380032064114168194273583844495478858852961190494199656128393069711271394744078284305622411970240803584150522517074334877377074876643032335068455480447860674667215395277072252040375257838153254548885020023899930780089641529466001671996906348024339430853686109014331230969147487076468501078070840041752405414896403493958515446470851416741999004376376937000181811935878271379796545237436604064098440284881827000609711856656316665913750273670948249541871979953695972350848007916621985000282705368083720919026793641040798621646902052935219922840272548911775331562695123819117665142979407811183259888697084748046826596190384151312855869922169505255309030161752109005331865673854829638608962884168896758769635899624920473334155165151967120867306702164632621026315090113547004275360116274141632496732348204861672590386266377794036246544940570411110062292132187515884328671010151678886024002627974772675292070125387533085295263654441117690123005704951707212128058972405963298729429116438194866284270342464973942136281508993203354040349526008184884022849310508751112084480206734281827171941997353307293660249034717581033716747995967914258221744029266184289653947927940909180990442730134102798430816547952734750180888944191262377509218806606077434369637389607619361051547512153934385086586475670414974727992361389784371260349039961575122152957986973063243529069319641740638404614233746996729637335238940308372180693819973796993663294731452360146238559452966244981860803980802843249240206867039908103272433652188458534939917099336314552343967787442094368180692342033173741808961986428850517595094994445973309487319513797647349277855074292889846848892448427344326703078723020816973137929592688463131820500111716024303180899817832066163259800877565383740624051128794331822504326711950675964500442042316735827114624467087221598066256943063866732875912123626859285810912103450773647616000588033337737199834527618099524543313804353840515068797208979955397920338854853513916468363574813921519706169034065596226894556145910108557153940297968678475695176043160522653227699143324734545761252084072709881420744018566790033732108266981088653528861491154207252236848699128126125197621301095438865591955344766744939482618545264446924829686893659753646802147769293404571883699503449334842610947602397500892280007179884935308805965821098987376282843344577372351944494595574121906844300991593507171701457942361150874193987362963610903933821325772380640963757679927611643911242514371981486824533590385930949650884230307038739054491127351391288676034833581102382746358694405838213494136981481847679360020166114172769177634588296587395855511872060471900518730487947002723935497766656412444665227540432918048972008275226869676292177779644434213755959750952053786805759933375518529016373605610427549309258682507330091355124302569696494546712589393552707159032704913033433918011981464543981804517079886860475766137639263613522409794629217505944892137801954530539190219088006277347912419799912898842990489488142600827216271979633062457857987891503314512920199657142959044429601698253988882479370888350901720602336132624379683700223925740180888303509346335810470988759842622715505376760107962293483404510334857594028898833776858872047827344660827322762053976602438447204431617130068352201565601095659775458634884460296552346937887200533455794316649230748264868910700025878002819147487187009194322888182041980614486521419175030054125147622194937309770283239755889163618030874158200174600264734910542249579883637977593445438465523370151258516726404616377256462614502067547155471924845420122444915323124959279607646243259485139736365830720039328768324651259614120201035796018727933129984568219043902416216133605067353970961227164196988830961950994026872042134587850307187853308884028777786630994253254442094063963908198077741590856435560124014490955076227878921652024604664639418731440924657374917903834836169162845588577363707764394929295860695817031942813870747541915897308572961433823957853285791408771118219863879348907359236786070633199584026321947277516875757936437332855295853236704621145742499979715276896644044284042131676921075550033798483154938321308327821536412639595224407591567645343732946394911583369701833921495255558491582162604272408623860265335924378106626417074813472762705308585708695317781785469853063078976084807138674794778822852290604023868940961025215608438866252363220012199446489267145051131254779418813093440610039844789034236579283719798011151204145586083704694333937904809690775474652199894099069720350840729241124013774094686195796131274530543975478196856664245328247200029701590420520742176111115605881681871516276181506609941994882239398649029079778181461486787015662513431794539094166715058552875242580238834618127161189533255478583041776557143100359354372583477914798713237974794686851166116310770282799281258746429955932326692420690076334478459792176974747152879018065446450314870765721788970140157670935456919504009001237971110550345064749140532480130738402001171764199927426717390209387787405403626753778695419687680459993303103056184488325331350043110755077208858557687128166724699062050773760901242232086239477452610732171216464103788885853103552557524580927575252322983986069462747657290855888518482014633601246958349581307718278548923440896996955402323760945749122506281314776752486487511253845808644356822740354244848133957417481421903850763474323145085432528626986499335698961219787636330351945369115657408853357460124600317500809550035618872799101632947243442739830613096886023278040976378367021679342614382201811920526788388981370786156581966481803143754502758611274081118206719974177360491989442225255179676286738178938325930054845487065985599315270624464921351995633993168001323241422869405181707532862033431765037678619653435273901914582322469916708384756123597767216447236383133197187258429177297822381685091963973534693332189520740797163673360941160058444359938846184433931970261237244442170936190557917984119866761549584773414296608090747874553302084872702753667110478106309641097764524479013289038887978268360177582442255359342410949956051572664955902562510050937358612232131254201876096123846534054964564773486817600889454846716259449419057902605410682022097475321340108938808817401122390356854664426143258080426762372799672508185830931963280999478709442376645365457539139371424857638221466877686286150419130609580334445229769509300373470981484269096292016701549923026793187700214349317541869362960095353217028631981953752894008861046093385538148600681632275283540163056075830237035460760231607187552249085810313837233580573437337637795910531068430335440022448466006978524668775838798013261345600372943907434886674220430681609082393159425637274999508520988262004808061785606747227378189412832466353821916526482235213924440758877209393650154906158041583299986319883079559069287835601383744850566227053106965514927762817502354509776406841382670171604787592805188920319872206428707034165031787484863546047837990448545305132132725987703165533257608895858900248452567757577061393426804616891064425285236159422014966276818664634559943440950639158829047609658617598757748968499107875823264239202638930834668932265863754906819780344491287755946269834819250073922013648534493356374496055091713639578270785669613444816083481380181416830099441038429719338388862892430990038663245932963515594421379032445816511688984187936840114033284463962264743989172902215995353726310427192118331241163529454363233883511432870924083713172531310619157732860063551320505802083619934079798262571840397894640793735950526014749186934625700279712643118670881056303534203494393504352702937572858864263387553710026128077164956963962290293424938875248007869515280314148864257046513564989376106692906211125360431275898262161354958597105423107964368961947979798814288459015631258962842370688684157648138496734698519823239940583729596076703322948714741616503842576412114379007691950523517569247319324536263909269001467585810700595831636588921511550328736721774633792681817047759145594747877068228142439223895536342760351054941355224892456228209233862988006859556525791523423793682488729429799517380615234427772941998898346972642154261508155031199923304604843993533279060377208238881997182660935658154014164406725787629680670651966379813215234111832707391590907597106594896052645515364979802135002378612260210073306134654756072952532150718625187710645468690704550293890380220819269846901320064651420723162211120112364676824528569505024811242521393615898685336725977672618387717837800068808464938990920983840155298850316941788733686048194444078842573812162444716300505386521249723374555406417523320946582555956621759832351356701459171254208527521870710054774125471699110333990047933200333236160694989808918882483243411751122716254860932484111098060817284512051458847035557381248795140753805619202232045539915054884719883584965231022187107860412129367882908323348381567643869179785112099209720899442595036823375628801606840992595345387215292270190135774314561370942715584164495699793968195563881864214075196162387036869495787697183125166225234649198079696503998980370036783451589850415635948441619042171983851688866954807921930048851108778837636915412432472777664138493865662724363970536332597504922235382209690244645765879564899695454135325128305289995999933123063029814387216838630301699960493979787770592533658985266445378377644978855356641014145102489490014739618052049904969258556090130143816994278776478629608471134219384493844972089128357907906344561825916960707672686295083159428654184443189241495440123949967542978014657222524254539632731345594440001033250297675364816298454543034555606239386114928145404734272172403651148191523728016957080641449961587756190457487327736310767805609034681401016197588326257550388089826757315881687729621248729442501115325319485112863734155231563468355823051813423692571993869698757428439425899787229456482872969356422031755785596986615265795616023757279984421917348441485553889951942215938636559985759450363263047847658990854131656008293330966783767918001295967823937111254030772184467778911780129415541312296212755465096547130451240938769909848038119048645648083259724071383510811369888535277559490111593237784171816355166823490331087095060710102139284178851926339069473039352531755626364563172842682228796384769809079135929168900589493868746351737843372890805952853638989825763573212581901979409229353163222386028289749404960968679099086416811625202542396155471408735899656056788883993752687780418549927796735097931249663304016647319562479612530115741524536079196909778089035662143208811944735992532757287242450020613352602371268938957749702038612996521548715602955908701706246118615976954449228244428150098734757085292026761321348651314154513250896366336381113243336642967027863741644036801828565276572931890830658449806126325525111033787971131017418107035351824854908737409954795019549771015629193449003836315859572615214767374098801276951588850470375156679921970778717868524769688944558444685058575675164576038253834680191848496989960245400179116225758877561992607379042414810033229732412287656931226093692187792486563159617296811885010501710115305784400900597538392844895021528006073574491548096732112339998377824620591972296585810793271680963702161854558584435767013810109499121979862356968996025241858219967546306376594964085128473770537552940001576422754906716616505075405353331466657362917577903436145543254144894927415685127752469326321996484917222253662407476096598004044281488526344322311358511191767603041946864619561495637046981368031778879878339191044505298727284994559503591773670900319130871487739770827117893501092125518742639924343662214449626892852561734363789172424322539290785207918912236181577148526985475660790478922761566864720835358466834221307441654531991862536509068716828595061389869371530569340637030237258328681646716231693014355397209759872539207359246747858579871132063767392811475594809049099260121752558302236464908295796296543655408659177257425026953027473686955275126662553945051023350740487795605406356461890394388612560865832841045096377280089926158212551030460331368922870480559344944803779463261228620375883703540793409142097033850181537244251242965066850239065446013665615987098956224418609599431888447195355766295278096898071380355675891572620529345929939181391675537327670144606090314008936318927523263822425361602327059221150484969788326123562374036342287637302057042805939242186951702370962541945664954593140949680397315286167084062208354344106380206151228238594984649361179419046394127949056776032558495948662193016468859876395806870174282513581449820007808424195022406406128606328413518990959268597746127598912550060491321209627664465553237231384962905039334647670984234020692637111326754142613371716045082555598266061422708093920570099824273396961895535771140125048934715206097567868501156483364796622870564021387327005875497538031551505275954745357882747689910385921378996636393285326841569773468887731559157067076210191008293356416264457947710092495806879558478767182068651072709582991532960689025231560345352808632389155596067116326000878808442944561557544434024468259165922850235545781015083651445931845485944586509196616665263524350881336015839632262751291432182510114772852903614873366008224122863025752005521313099093287496471663756649829592506203670849039914587902716743592276951600556810088591102748592428107848875623926399026191258133522477881201773302105167222082053356168126410983032930250541376279685413003701891198236204350215737626096421877728797599883835788042997895485645520429146644132832585602460982370894052969300052135033888477219461151523865959580011285778572526103424870088406646472015697015387536669817160363327604539396476238195648384728319559998496733576912225456729618494962381499407089524057421883359444502214962800314727797713862216627675344926209011860052114884214661453894429770526480955507953327398085125452678898077582696101696368552322328541187007472899286420503561411998827835467385319267127267987616199236065975098499191561781529742868908692931587983057557554797951068327510812763580366705890771143360102510802939033363330847915437194866959227923068915507788814742091834734671626828695557607055925147613402308919793345772005278989160095741812419400559690374749410358344611835787389190004643825775422547371582832914759752099802904367381701385228291181586327226527538898491500955298216541843574909252848377996373409975300053610667297349384036087713805555715815300110471657788983288468630960013601001530736242729072246462838873118993634016103546703593795528906696277867925435543940468614825846691446990856896973876897069625914021586208833283658975608219914879223900986562550281997243593601430988689393052450719835105127675654039024863771748570999358116218972614864462311532520230533729186126427344180142786995407928593841190330003765681661869755474888316834101720809553821175519991873195845627553420836911578626763633098579615813726969461725999777464587024324372780843972028584752843232315962607285649510722591932582209470511684443954016636969091563252530237795992412540706675668360826528225691245262868114772747115166953693113509086459712687824730596441747852413215999399147650487921680169167408966883644776622866035771619724846463331468067606668606059522891133547808835486519877025923938115751963981320976022791878802934251727185992780301187250827710508821900279733449849198748582769664501921097517762846684513333993263219607465952990559460394536875534380541508471946421585010838381802015290831255445320620255023625463840787414373685418495520438978617937332008838253573320304057769046396895262904544859714890040148069184270860150983573073257213985401123338172346633689670895287238240021121827718391583161193688721968869519884661731396589518696210504409293223582686859122638508147277453389154450215957670964426255771450377625234212786551406215792507910450076768490427603858708538407812957272574482109816557517001801564818082303074934996089473657625644089677417801723781094315316262593896345677734837667776620025116762793157463631802383923460281642893590458868238359282924730427526622793032146839497034917588914960596938155440392337802868892503541441537602259208391711275450837973700990109124441734035999675434531457030603852007212008508150862633293498016145674540426219716781933287845085533092363179374264483258169912383516570736156151745806678353139385713371060392460415934976456782253474448001905535610731166100567280536489494500705249716058985041492410163177236123695196079349449201205428388134348331225693368696361001911086069579107450217429753226453333592793868411475384181592671207762155817345430569022809493908549212940528039095063806479691857584927207556774220196418864841069390121495137980368551903527548446194458092829277885002613183508265643898491204299161693242557048918391993557949843769502124791259911186942683403814578697640417473093723843495637612852429340651094161855993157636220128949036076297503064785574735191042222501989481225816329020469822184385734087682382234865801300526680668828591066368832131839940361385934183618383525125454305827028399016092798282645425276640796614871725676550771585972975630664775410639355731540397218197834357973795409599962483123529077519422709826350295293731145976241712113680503220295934440329284381850313557757816394578458785711996878001430173477917957979453696044078641164853642693313118123053607652622466178700415436406947413904384662719420008609028851819453499158719593494582042019039187853371098426395405913027473673169171630057908725716435246566974819206974418333221287556485362220967430923588759498116779289999882917635414613156033570962933766297824180998886858481246033237558720261408676543005554058167272179180933035602068381471449842850786570802791666110590615096032513218111886774290810250490826364180687695092863965311731574834402410454379100218117293117493678073147764151491467768150182179434854944162674026659433882025758308305405726071468451996159036884350314635808106117501990131654618359562312311884702945162778885518591936962852178039677960193083114054341009313908878959051458631659871328027409053495167359719968366902031214870936662745475868460832597289732419898526973123690831036068088151598182392707708583865490618019468957758994575415781479610557515422609450705271832547768944866437295959877093828686271329843607362456411032940659781982797219521051272476329089139190526196459352758865848409143666268232178173332178148942992244253087618244742546584302482028778140079987949580913811081320848725084437509337853930081821108775679742456449687381103740873733989782543416676061190758551926743007133679959225662466739786136326802674238106604264022615545397998193065991142584880988425548416353903446739711630447714266221537063479282743864563177385874916206829046935301092550186051557684557803293926488205587631482730576198871188844241208250712835311729709152464792059685004476871067856935075201230105581790000667199524514587812956342096136301841142262902892544711849289909013234058823173457580424198028383664274391478629251280407659638918758174242399690034328033896581902890086787633750538934181561773449154399180327653567082403712920928056437293340621637946469540619988092693467833989081356637067349231297274781077881214144053969840010365451379626629455813726701834806489586566633588206149730270375330718167377010647549140147355116338271961382659264708378503574023365835559074471897183045553589796786377872121097079699944216188764250565259961289320896559797769837625927974598649972607812815771574980405718042575178204591469970532152855165497190130831151006711576283988717749313858563189296790845313665091419359635706488837187088158654170967553406546457712879543250879322580627810043157385707913227165603088415646978950821509077998923482622085319172126825293758098215522424875300910183720222606447831065634705537562996182955915460466705061874669073099340256539539378934954295205570707324600240231052632132234503271406037065543743566590684037825920767911961751031992502388052342230678618378398071649307321533916398741899273294998207951010867511425478113949589635948300056879386270939149021400547092539479152630475666406994441417087722172362434006017621334025106998675952507874151584026058862357570752915297899628929108212200885194920639359023362265779104748860337857176920278821705276949569666713647369212325516327694555448572723107733519043737524330832328917111983137918736700320102780393877363307306598094611243405926737750148379787224550279857797103288550832140196624187296059459007002811256191269360490597656300548924104574297922636923116796043881954672270062680920452803251180963359456435670017757418966560452511354276812783368064000150743396378338207620468964513492293543323376639479378048786106297345271997401390468453003770643215142255955252865122955464434723441912265809347397795694157769100698298243879346676516051937727292616539889485055803297591513818051585720954461983873354107303402013283520233543126103448767971972560204219268774659038921369921085781263618376075867301199475368834874353913307007032729991670752035564268570347331968139941970841696668236386480989479447431287436347985903350412667564510346434874787251547223536432923611475281473219867272071501869204510357786245012706255636809607282740483363915483231706685296820418669459650664932103418560147808968904002777509851959886022219564098811789752814388211240463497297633355247173897344461127060139846324333570061121836404822130063010586231721288968049097220838327635354314449942410879586829788549543392207472577611917352648651748315815910593283263028026418974428975531092579631055984763982239951346334179334360391439214135213603298527325852092619949452869457789760442971876633186481846428684143786146333509505121645860785189073916969133749188420071378556713067264315989092957194510584661649985447240959359358343978386951489922110045294688919292147426128778634238691065306412313206863646702174704665730738767853297438603200181970227200791959772290605104916873121449523214703702532631093656519386110744766581113174663520307046956586315802474790552448267364683717381358952658007369982123588333065266132417143644652987971047203976272530130834689508298197241269345755427246986042571918737189657666610869044733509266297111334251566447574540313321040258474295587907674400106354360253066434042439369882514104925019719241745285903744255564832715281654097455241902135804597070448355678996372666560966154817245869444220616399824128070842777469444616825656332491784235334312813063831983148197560153204510478577495232175824752849132535970974056311510230231739845069022978984833807989874524918583594480797898777339792424477605206566389324238517381482972629312088539569664090902867222602392687235591421735961633734243872023386140484050263144109578998058393898018193023193413560305432267337694699266078986779366297053727553054522476339665694652187764746600489923658716944987474085110868299769356592335382962552049288028466693730170830215921281739502614109597701396771937296633146736120038264969631705275770385548903324204637338842735620972478824180646302155751463175235333888655075279178787691960381481193692940788780776797528413385505025797409141054741692829141793953575136934630336962826171246492636365644506630807237634507592146910150819832219559221510974671996741254657962407108657230563503592632010535431119291364852356427423898005818917903020516479581948228837608574389811804871137619291896499649083218981924405022050501861478792574456251025842033851051956375139357158676699448309284805517232385329846739548136676061876287759329548759244140568392728446685437632440633397855595959632667129157249676822461613918467962776971834437530244298015659610795175528540276853258330573380246431622139730420389817269684172902318847404133971299962994898657575514793484667814854850482286300008150397770540122239796514539534029563387647309036494399817276065256943883358624511892129862906167807887011709682417439018505559064818529251867896140168303509949587526474715456752798756542066869200114673181142614721433444538513500435635563540288066834240856550077593598005864976977997658216843006033663091108210402471855690301629543958083588681404776147759503232301476532820698505849259817584129185269569270233899499517234894227275009358393719065975786347332461989753084469664147927504895613917300416699318114713032796961222971902850809962784470231684290772811007027312694315116787587981071874315844282261813610072051490923809359264667727157972507126894309329722768303075271996707128285502577069423809033403209419237802729404724335094452458895309867165503909280200810170935489529745580753294664380025227012788459657950553906092106217144884190195856491930325541721246863659198256770693467731065325147405507462372145387990469990420729257159815604716437646077811858569028597793128228143718356005515417943886752002743576221354602628058655125374229921854941798985495648512292576150399507329099669426217527164623712037878883587014829810927703696398390032696871310237294813668042331625499026412313009265189998920509257879150725932015863217880589585978712614096900483847845652471438186863354669427155314848740321662944071584692141310719647359063788718985573589455882414388364612043951665514250277878189460708576256512951277636154855840083819914369568525355806943868130934299997229312372391691060975256303109526119476330957366823113951928847244066208934440817379419323042821883644782944433970775060600009061339400167562171259483216216757574192284534179478804123534521138841624227712570269569161339585965121294028448619025662620464278644537252423011447351108351838936883759764042285508155162621743758681270214947321446968376094104927569902963276039970058173763742444245831411188584038170213325984055048569233438281868661370166780395914785611736132902144761801118340692798789641661142446187999745893474017573667370675470648491478514892872460456335924164933344125560689190885249143718660675631323725917971593110430831568096079372274581440197207487949513300172228020055759994089015595479602846238640440860135003901999258780690391620054423285058102115517764066725097919282690507027537889392391041875269693486961114764912377721807496313382463828274213356028036615267052391715552007669837516409597735086979582543176354088141007410036296479108164916450621675236536374677248066669778860702188082581304543415129950880388047505163644320305573560186251593913254756110442963475031027777740100318170268265268345556343307882105489264942255472469955197854091521130279450675532607325381075696407538512390947279265417232984180453425493921981297238611234733068337737664671169358979462333611188085727219150041163418777400697319987796812813880359513249052123960333487355445835198017914556024126574651758488785976723471976321773266167619638447505262062902233208096357886023748725613614017299617369878794874622800590216809677717776336527692711333662730476940063266633461742435147129144360697172554116856024402835610822478939626947258270883012603550804919998349262048605574696006674109069300107847938367107753415087687622663996938835081885915367342917535462216028454134605509530138550644746239049037708984412923735991183337959556643865120059822369612256729449649211982623651248713253211977054332405835395926616084937176086072074868752363921580257456049863397208482694730837771781007700596611322798153211898580396015346520927578376170954410126315517463082742211079318475541341451316848144432541111405666264047854700384722483583658479152342781687360766318333617107564479377667031556144601450598914187876232979384374603733559742544356554742831885418385623506872431036319308451279415048425549545930704563980903452734305704730730827053154288469421913291671141563838897569231427760207596320805233736799329174363931735457951663265463559272434851963247471076509460422507038753237141223138732076639308959865388501715928294820757916743310849664267770480417767086229709668214783814626295683945654799911179794237541071793490247569704355269493465195243974040611890039084751664519698984547843642110779155466691789469289120905428534233363780084534143373392699063527192267733726252193626646016050541231667348296676643838450824743735279119952328874887425420771659856059322885727155110653172406966575863108995638218115540548856185197201450406320380160682846405416903467706128555926781680697703597191711286397265630232095316026745186908021372574139093006730216427280338151740711591029281688413595505374305822442727826869115008223118444952761402326061001492661793236999357090391532997654070288594902634767827761610133960492454025282950090261189558248141618241295366891078784781594182545273204129497700789530858744522698392672458110343801383842055664343626253326069331704474120677619280887222932026056339080094103216707987417729477395443460059052208620746726380135784179908400615145992787706438364416398063148276628743988109242970850244711237006453792102389073566350131952373172607530911228353619876612021370370841220143526096762060359211584445170818996776261330032243861937963768678702199486848238101515427969492046576824264403693640806381433012223939795350132697493676264530114573692204692267943538386649377658073118243675448719613274554396053564304392277408950312518395949397792433084214780412369561216131520295143591857254385594263852612871303418220981983826158751677151800647296294184837094163448404933576662021769379715402941063863049341545918575285485992868979088380426415965170226579191046911388129341992530048413319497644488025582998963035135712478440731580526099306931422238276914634967778839656214406478703006874812724245277249111809877902399732517088503933815563398079860954171559654838043754732478778135547038460422319935560437464615659305511175643085752194734974696395452252233109324942273749987408160690768964073699679473563980260233729985561281793549991054638325551457598892831143527429803685132043246523048153561535033070928267534032264330226386564247878540395640794758507737720175356954801824249280881380748051386284619418667600844493603769420665278191083461214038168157574308345086598584698687317724278183851349818436026354402336134135644748638221130686547594222836170899933273232023263057868702817869954599636740660721265301988475713089023695638924204432371397599267180366114802448745804786976470125828196348405126405824806879092770885166420046771052964868605726285455813237312459663884915177535476043412214519081129671288025898223169420826551457531966828514810277137572520618327218121163111607950171943331028466432797863520701412874629987293584418612436518255754946240194745175042519041751270006794150050838764205768879158448765125681846734052830269702381702963706809242310230096627281605297312769527182916725616191513982163895364405521602284743948461804953991310294725532380953808541996438262179895120435136229042815394119354546270728815359266096245675463450291969588170171869168197446303689681503055380352408136173697106167447125029083618940690046054950710642581506464797099735452126732707123434213193285934813368795040367554766506010027614639594654985325271723490742638923128380010780794330628388314553770968382525147252735963947678784176194647974191995190284826421019811100935119963485891261567771250909593885863353546592802471350369047946622830930867619793433845268422070161455228594863809180293609696891299187759765323188158775763026403120213294911606022529211799153261901317533348279981278970600969748923890336580635786844223335136749292276677770382266782772062488580724059175653017356410297464200612931767797541296025587016582285070219410652209066988489860348620330676971241150842872803013871495181210273329016167413899009129409103061722352030074158227099240684118330799319923444727028751977544260245144137368095483309371865238431020683015289796457670601830285501742672566330145175267868653589228016520101733398780925214322827375340041830602040219016091043058294692435520881223918511831592250115726618254269026098686136763586592378040495179764899364065584810576355282884112990488762321727679837765390767863038636096282404534144102651900750584170447660646373738240905072149564899850404899844869078677277965102129449563823931706987046602260659748190763223052958688759231575863733730785759187731300102313478794632368905249008502392513153775710984444618759774051973982692790192257446507354217856226035147491578754450075118830199134364144738300866250790221394174262344683406410152781006537223543941445320405655448455800697205235898777038543712842212214766306490794279582844986675396693301663233767849178262637102979122768925636684290998649973503402509690881846092453270794321084313242331987623550756375127986687695084206017327844907387804007360998431332201516615886076132417100915055443527387701115880198439518150264098332732585954415385033360529601816603616405092235451558671973482158025869395892806534365255779961486806864951072914100846460992624283015681012504819765427064718149401505205316020895149352040107761540157614564115684669717727936252526614802810947796367808675450165174729301671204915571906143635225730066481969539277008119033807195425922950133962748234156935393291305661657652543260459404991066542657557418364114456623010014607250193623278969805222189747154055011908621240308645243999183692706867959015992290579426491828566015482688410663001147938218759367153901415455081556467620604899669255017559703632415858539267466567315616177006813253026412370885208665357000325614545742542138862452762230516823492923933981856892081314146899815527408334333162708727341431202548179702362099261080851410460488193732418975301196597346117132134732340029520604282402162912023890131296624569397151763832232805769737772435200543265889882726658380353378643952213825159851061262136053915829998588406506774968359074078303137190122593897555483885734293834650155489068806147387305703840823135142725323325920766638020492625669173298009284938056948062171936369137231634282907900486995698821886596181370668644137809940885831765184527333355749436305848809151630692713763690897064738317070522594628001836229433079506373866481339725379055299732039536718632984102535867363611265087016108471024041434404964844017982879809174485055981406758127140020781214978701704443007096829356606238473893562367068530761959261475667854809307791668292772601332195721986639819125636160500403159587954922588985452796401232969894936559147730164694568582645206073897126909755257565112610979098445977091879237689232313963914095098418129783691868832338351044442710585039051949825512681207891417961961347005487757112805338414383765199853023137500844415845937571661880463319792714097407203522601368383410872434353886121007219876076529313630991474405254819442581637514821265981292137883475416608622077070477001821800118240336382548615223299353235283691884179057265968960559067629283161792957088672764831383011779404206063060189433879816597374492840765780582631454347731892845288404348776770512326880626976281798702356049907819298046735387637867166956425675688674005653202246500479961161056940815967855743681585468929807544338950158552024500218005586806802062970062033170290448534517203809079647949096264239263583663004903022728587544972373060605509832440008115028682717011897855340087942854539772248153285515447080895697719669417716435713913889864626351307566396867734129904795190425203456244345473349726565909647514369101556200435581854990617095521223161103882306270856425597043106974809826113486958816204516756092009012224604412224406495866642530975081332993236056832964604452038895936547570973956266406877309261065027396329992136731268298291389484771372037197384663829356929806407818178282148134551694485640424428533251494613578280573857435929660196094620283707104814719762956544931612190584712850606290809226662672681698186230670160547538383000176451983960287931378664135142768995007530730203072437523133561662719640811945492278665130530085755535560345222425570530139120330044118090474606725629332146299692756045898144699341514435900231567108973656979726367117931356097107565236049666984410036101485406755081000946545216151101258725895710022366782628089220858386862849827275125072632234599525051330635306146872395018782750935592405308338208049195219290734979417000514087100104598766581316199636544402386855030328826268230129091359128759033151645654703565138043168285904815561604277465962999400050552379762315056851340117500145590573043047414688790377586208184823791477320726335474084973993214709474467720814494060175414768502348765186550252176860864333862541810241119625614330108352289476269629386924356206950476272092864018470751670943418187884651384712288013194021284556635143127283327115025832809839825270907802506610961422022802775391927917506573354512995142541424980378173992224432539178097729636183202618212547898663666596658470484193944428083038041093987033227933122067007523574517789790490746346909199281297687535728971095703925802268058074606242658093901832998896545566603336892348049598690019784217925225040872196629953986172497417095214328386196368947027278696541283924616913184087424341545039526318697391133689628657417074476923770451216816286994235234433834541611924144838110716563561701675228417052382391675915865623796056901549017148232121940646719680961460925051993362750203641756546617818330492725437751317839413782845757403566818098256570282742118268743554525978114000194028062450690451859950248338848607584938473248300084162742100618183758511502060527039172099873073845148715620435061089971236623887286615033724891198470445369521755601874457051347412504273967356387356424151504098742560447870617164221153296882329056353084234799112141513440217436060261478024015814552108347783216477280523993454739786017744096326410794127666917014597056178779647143250151545069724166045902833047782309459240064790417647292992894411549454880273904783866985894571924121853434257328273034302588266138956839400672642367400414425257369812238764461072406589270153124431559172669245521439559548704401273288475755571004401606474416217262793059222711583844283007539887191989060904626110174099076041912842621720550996879188747435988918731995885143924921081108288173869070653997408412316748573869530869721658223502849562027692111999346402286375788374990370613803333442624037026933619115780397534817382549708855057889766551803244405038076583751341436845663688393594963990071124582267410087431561868648051821409970369891693569974685116216270762800792219613632859982473749270156044212653319140055507515849330976907717880879408565692455875340103904797835821508053653567617097667484755210452578265351857747752908372796174014959180822048610245884062792796113265458505145935598887421929256119281096157997966000885134006772455564816911020754304641095002511872652287236599120656989217949503102152263909716279387969619351854926748191320650158796787255203749908499990852211500193196994545204957399656484963775217341588320426569384574158409341501591180506463093232664953233790259686099944529484261420115069548715718708252241228886362583759151665666404287937990212992166704364336386712558074536575393196111284554967475244126572800754496918978464267752247485588550513741287529003330433652695076134464290946531876999683090047464693816819219099846286859997476758606240077334432738650168845968367511578423273350676229898706543113394069529841647270008200545829808382985558932574829863863032371331695402777441426121239301363079925391330439865289911466074211713066026274840660367704840250809252708780502964884470005371466215486698787248387580691828008653250725794430058203265381754186851380835089541274392056091749751540191408526953946899504831190813415618389984477702673179804517630558917920255155051596128642233688316011514938578628319689110168286279930269891021145983259976905686592655050008580829257497160540104870611130905166699986822297246509225867419996455555170023032369831901084352400996361619400946202060357467023941234873681626614023610216528492905959378869481980630401740910103853420835439374451079155238432652655480287322524519978923422098365154682519272611476038853582987855333933254915686122637982820023564023157491173157181827415384173997837920766045894274410159853175488423081483218626287805789338902906195996370974809095605857285670159090721219594503079240538842699386230093383518442830136977935569867493613282791984725991295499117439075966409966415830173871748441968714123797474988278931421898300540982650816789017222370027494480480585208190388487279943497384759316196250482759920482924263470317184596256975058062150349504402100343930255114520625490257651064160578393330473330248333363699989361098626478129719665750464223236175022021432987170891368228445067467289787081398243446841203586903972277775131717935824313694560838986780438964602138137184121035297276180564069308508739643014157178315909100236933401256623692156853763703808167693769428140697761294304736833526856124902438517782192754266558691027862366491548572329097216714969926567106377891678987745136160083414750619952589497413348694281357191209574147102066028077481543711730139334137419849032234105879326935952756883540265937179161794889614382534341951809927310108161188393140825616546473514643975412261265653493493938762541035888249634585852392739240437589727590269537499186782330401668013917153533555065270785252647805676740304529946896304113050161175462899087273276369665128188855307035519668746255388620813484953457133985219651385019670851554593371371190201211925040511929102382648010039399383648099972566802376830504013975110496447931697618367038986975982100591326956503358496190024575406951373446512952967392408007399806402149839728300450281006679685550886823149590213978092191647686096071304630210026016247655749486244871805938550175205005263454411367101390396149248831503526240603011014893630416228006640202017513225285849247986529676239960176220247237882013224056446157319187414291770182035796075564731071628338484799499673485336198307519234408235361696934075319366475820773334582411236514145993886365707863862072282795663371319437723945985101157102568930954681259691280605709460373086749424060465563302438015714143898453828241466971559371285625023214600303908562089002344956495299686616053128147516475290850816681037675679037168144665524978691296028793605589638748811776565389770203155366861076269771800584010415113461599247495650361689855745185293001874591634836134023154568400153959981818213707969308421301163999066277269571975950106156131192077289944368668671775411531448958167736416227519496044087217324035144488135740305120743097695988360255105230569897772421743654048723363695745118484367381971863806813691453043007876347372028153302448425300249101349335480228431661546423372134664391383120610313401663404247559978664211597731624776985394867596708364273759521115823196654417595676947473542256965297761442808273076216384740850994451916165185952433583440183593259852690236043920082600234893369924565844514391679844352838177317712789607396684908336525965707207180654864650786426094253298359189939729269354488618577723915357693024026146752432317576596782132069917684803230177172940172058231327226299172228132043085504181937445704609196165123778289331779099769119643173455383776349591810910604658827911195056203312069626946499842887048254104661727351721994944054605792871674744782579210182539357555113742100958619103131666068742047965139395382223891059117236996092208754924587076785299844827628443776898210552556774945440902318081732148860948255201998339490782962730925786896032193112259643523377542498180641373455091895905649719878963133983931040229393079863046990589233644219702219362941749554820794537304850215149801790548722828259021387344788699791488803610722333442295966645412081783626643273812666011945391756696046409460377407749224863101858390410681171615147638811625024118945203902168269290352207066995698564072901215930602085110538036512239619977998404954157171869170288331003000946485573687473280047635395324410150821393651760314667449300452181433643968597762169611905396620121597294053566794095174035691657895728558401292896989853762291633927301440911218908131093762934990154609939093932296920378346454086604058380621028638237148227161516472814293432531074271879696104882265862613524758762795047570561990824398997006477636865312510596848458732538307105029161377794409643440217551285900815175843521535455834206858937071032345921530015277945109068893410675434190703623946489521581978345762956626259892381897977396910567041329998531835043816623907512296370998151720097934131035393758666887491629737957286985393208788294408215638991222352469304279624603194866818251642298192872861621877998607778930530131676377154521265701626722243466568205063415867760409569739005549056426808668357758264441202543775353229967739275729026676724210210713333543402488529374660577634301749828366233570386468619560066361411096526112172537013654809504031223409109089373984262086222601775424848454239334706097992208062502864246746229753283460659394454020683455100297018660230569770087616371680004969052083341728693646308337937932113671091457017663644382297551354351448394636305686306922096329200011736553802410942820792484121747728642428837113975267141012512945912731776426878650623870050505408640612484864716862913603042488991799553581855142964073022080554095358312691379945490144285273399547935337152403244901315959368612459372942203750156811384685927224060052817097006081742626380645352105261681535115986803631678540002264026642219994423705442611946867284091783572837965497652984386589088538222692877665526345712443925522972421183882293698046430025497467435404025694453762691522868931939628655347145404228373044677533707241933606883019595406487983077893694572270956550302043359411861833045242885192355047905328964436781758605725287884410416499056022098710366318380605500849880176840023528026345556401366408678370089749395193384087596381446198972413117516937789877441101748733379892114778259915930520551631211418036777657690376619064086440773248097585223665584902601743892656816554066158458513270991028856183938275338332858347922573754318230494782535195619596789875942942731607015943622927847660484896974564149250584741272130349266147767899931260111412610300719800760522012981343148376714186203687326850331852178167184045510585587581669925712798606957208727023519405905043756363924581236300430828809945347889276308552760455668560522110959950278840219862351545553458550126819995996821314096212263968182306807834610203519552110533224294730474352736361898528830143660955294280407506032576207986544840229421636753465478411810247591173776563259492402513806838087916494177896645219212379111618764067286917437817297631885192401702866371660019968507235496425592530858214638543379072870612135300507756337652706813471702775205915394329480674070479388214639814765522749079057523416676696485316566411064982425209273929270125234345762523265131082733247328768119617821949296916338121366468782840112352047071691318923495687361485230769652961770152519572675568015468924662881557923909464617567038051897051828118174222455130151061410099406308087841190608148277619113820643503739313058707849278977609899257956453692938300788727284199238288213351857499587558406875475735049576545556197561167052156827530258559404578089434223807489984683983081953004932178435841062012879031578723561384292730696113856166591933637024853549006832868358074826855949490133753798695816975153422405801711419774415099582382307353369621842382972072303594506311941922490435317564884293770966479237843437539017152838974187349245074104883513497039950599290621573107213893285219191291149245797887459724638845065361023861622971234677721248386239565432568195148925744076930570723229127289342252743509136246064718543882184624800657087545450062801425720123537106505230306661086630514237983449806658416393552556830436786402032376590404899279163867820731050787138259572157458641686428623568009285765050937494774357379137164930137152674838156191205471092367724831023330150553383709847247010579151632154489597734095255767717757213640475292727989319636653953790341713466915419068052111854949872184759774152568086251901744689633456886077314300113547690198886883978204165281634202893181685477102194798889529866802223892789772112233160824754676287314994472199097474527832838392196014063671477380213997935033017085609895062303849193685781671832336700434535632021921458495654624161789039397576911310716500512600087624140112329683623332229603521862984402217162236753548949290686017589089464971293852329326817057441531040683643464857453082451622135505555198773488409513190132701114162950595070880091215623947198559036928180116795496885073643451272387534055943389059187497245530690139281417132475893445250792821139599765797812564104676427066406618152673389252630854768410354759442678213043579393723752529397859963284954713278406830102609662748398138934424455503986157280651580209847978147814236109245465409765244456739001691247018467324762982392971045941441664975355446254003425959887213423114631646089560291876793276002902414113915496905366663924471746426317695409597335269515297266826091657477762873636912886631882369993335613527606394888822783240281094010422917935133400390294398068074131239222907821758703654101502558590614242245956893749091173355254877118640110137010578808832337551673454525319885682575789753135564376037539217419047817151176423725786031187052880086321613662374358062602659103282055164011856892974799125123544761090429467318802919363025667148185673503745774805008097776835077347312900591254435456641643035394013009161565933534830377860713671363413460559204288907636919548166143319369077507270591910204291181218069774275575072946356995306459033994029453805599026516402218966727151452496021689072414925377892492352568769556399314640979057856972855052160528153984616026482596385899818662549662543494315482133032759437493916756563716640179412110196729955022571340926507606069183144729661026035695839407888888419890522721358268962989568428897426846184200412003616016104406492369181164541910837509057121561002279768860673902942226601369674129268041380626316531096893719207610614912741094916914260040341061500441289605263375249272126783292405712239806217009322689964234111759275092944836052333761300665763102705180535087354821123090588520682390725400283908068712555674899812043421873801948920139857559438358001975348704715300163576127016121118393461032692321323763591227647582515022797936193672644259625404690493883199401827578100051684664480426347305603253175389460277072893567376011937718649867097766856705523076668069206273454192495664884511984460290374757844299964921827171106043723252952335087876783097928604278693584095571799354450925990725258470191742251883200544939970283105774281447990849781671589099706366614226320587464258703290745178386226815506744645223748907280377838294604541748599764159232149069087931360686223399368536620137930506334281135163961760096356875128608155995079567935229425863875076186545616167413705853293254171573489978400876431017200991385320100233748534150117698451046563927431206439940774595284519888366725232843269571730059908513758344456066483563500958750852095244479185658591372614364867444830637518707452271255934873424728722116730162260841631874593442812236032514845088477101881122244354651257061311205258036949571890249408845803287948338878702983992322660681589377212957631172690635711229621379932888060024591275868843974807933060387456480110498751623526221466719224452823310528269237683935037964423662189962711746699621691642123997675953352192940787762967070530831465307941108865581580443918954269146976463471006924784524261086287391556121216389665291122605830414358641466057063283783935517447210102022413761765906372102323562679468643571020146119485283402739869896632337984344276392808932545350301493014082489485119922441596236005119617107036709738375286441922452153436802248137378721567885853012893788557836084614013378408463024898919992727745036285283613946023828759367565663375416785813560410722205558644165674358547860722483608068256750047211551516588288571651734408293647593569986025485002836324841723885709211726126353427635405977533686978473474562306070318505793817284748362657704774714340701438979190859528343204426045270565063595065042926814723236984546595166788792047788204741514408495149197968542220421937790813263776753035314452663139916902823620843962368399780447262412097976255689425606572177960920735625173387691042096129530764578517050704065230244304266752880212090884147440151015620765015973569528968786377894729311356822538712189333658737976755113322126341373212406556472708802561399971394385590706855189948902981418986363730467882423579660711606193610734222761211990674226117314167577778866915591170433059779653626558585029480652400276109290041905862491536089722630478720699079324967590503469000911681435024710121498987553045579596813534516617646881570404591200200654573207752387166168011723269285742002129442223438051566168592101028805900776654556823757851760036899357114209384261084817470766406879903824988363750754092418525971079102986622729789632053916398654522015671116385653996574403252209888651693266993237322011524494221637325144203662130950254342911420312576352092519719341003228711233592013227136840468037568114465435002244980319867163417784724393182221118329651677015135346997859181952587874187763526938937370658503190739915449320480967278570484982134636274537650084731975627909972947206598103238881266553071607195742712231390185203256232772910594181018435359407540624725918936296938214225312701989320803967019109471635527781541353142253328044592385060738939343693437090430186982133921253481909108091663268886101512473591793559740269106446031187032925174090475162353485721598541776119301411628152040428737749436233829920921166401249549446925792698352854767767263998680534997036762115406935297048328056968718820503035766514710388795349626814179003124759250378882502489000537694773289919128417822203794004216987992667588157382704077527740376749825917452186229664149013674130389435586185549681647387314957792580227202871486023686402963159637190366160548734360679965898293964116027179288806993627740635958728039319618485654697976550639180741254487387387699089609634347414703824532821449282354843554065991596845454730588971848723001040228737741421849712247186774514874423886143437421052267675992036484677647651521861718583578303503066563680139301143397095305121056653257110010296516768622529635151411490881450388158755150894276675941348532616921895957154137884826136897686988775437099765815615205152717421374142629463879058358472962862910899659397137434185447665456843966812218675357052501392473295620892741367594428351494638214517444964792618463341464395057796282357881349114362053209453353484726738672001588668978214358382844206767814551139717879338321370159200764642445326157189960943632610543471781261535451073325564066245421076523834896148886576310589391790626757760900265468296293299157003688903109424729007409457244093632793869872024132356181433987158029728728962971923478898685345037140690514881300073738943271835672994441236718252760368357598504509510591099636234829762455182793261411400397246400895840249430922398662633640926528954866071943052784241601532072166199925057270048714181449882458027918214057129378234186416810235762779555423529734604744164326507977602242888997567726315215056703615444690327086263117060010069371038948140423898845915467501993775384718744132261107423516993426902781470821359127463596061684619009803348809098761511444698576271558984405754794359322861990891838995043302494624987277592639118501774000382399986232101344801558995159315949187960470076018014808973939060398700839149244452235509053696555659689242602050477013277470430308588007591334339653364395923877573584511439649698334987398452497946878826821935507742708337799495411159288450275247969257609368074290906294150692714540003127850994737046142381819441630293351442616349258531754602500379928092312777496152747682024627403531541106953327370367270124237140713828667764603000218089535657744346940672678255045390727966538284266481567622617452384958443755613236521787112444191820377965710113049250688144510770638000828613109489261301441320121264727663227068944208189578371169633648586069958577366692908903186149469845503023373198350691967469380448602305477857133285956847794693885517717057715884352620665973773452839625010466956605544498962575726903738813103614710307961201654504926026587455367395631110771908144092045758150412373803862562608149722589561090746719164201223765249130619082568791564841849173703081641015538930652100425593509194624527705517633773853362302922803611060298302396846089606190448899817307247246607174436672770848676463331636293494112546075976086311406342219760698103011621231654483544744161475564403644747948642834702773963513343965397263871731435608352149432488498600008944214174617047733751653469849327968189419064985102282044844994934236938739471297084311876625010131943824382143842515813732151931387782312325412489307310351333756224880353713890401329092611624127321812193209645129731125708683232332132237057860545743554532863825438151099801933909616036314572403012140688707414757024228599223360419826187268006607232170435671105924478230667934906569874836861512049822372627956181618439606354291887325215524976317376720236449394460846019115352348040564658681984619269258102498984293078153322285117593694297908373457157509106061674853041939383916005157654542176734630951278342054930338573006993149113404748729335421967659539131747032104874745296181152722725482775951440839693625370707541577158956989884154945197447154967492753821244514754873367020287190328781220253149125734542035839270643363373361445411495303316405965512573115847512364784700710262129432198175575024410108640329372254020768180108714190771550686084726372325065166976522946263025872121167190281243498540354702556528133250586669236024974627391365913487494393419820674195685546087865139595359559554373560675777553835137675653961116080070622667958532317285641753726167691204749209302449495546440663307585852342459372595316679171955240726033916423765185037057068174063380762342074739307882288080827582045609844604856335366005048092206395530876570662802396058813290557172708938491411733287761392899414806720206177042922315492749711594193283017076319160464055016367732779204613054599351826721154730088797674596641293793479935962971856096650207799588404376691132127723731436656251698855165786166081436645574422715029168406120480589405902352938855018380636651755908101798186212248538970682531301670419093353927623017529992810002817928729028871274475840905946060506619066125552831538087877382952985012478959138730005760600654191727575723998954061625566478567699542503663127071285494611942064795338167280832733889042294469761414492119346269168901636649578703918541092951230662173388203373338530737358827334921501025410212033542439248388657511372074552361054754772818645557389197950364022272540168194687218697800237699806135768321267876037701115460157638299689136773899105479639906005862111486266303995737421465692143096736340612780094273742982031534849238770488277725905382612900274670149271846527578947092137318374522646166685374435750623651471575194436026184638466327329988463411407583608659415577116640831668902521191448127296437035927468847359383304360953072350476864641212695727386523931572175971935456673622002130433858887915306099838396820743589640364614422901920400950744109628416733454455391889735221757847374801667989417156918872396296111348370604930064908694859852571409201611852313358153567116325022872709772351660103015972058158505434335154237222363632195070582572638779233367430679361237648093997451818441904396436444032649378284422510059150621628914890523317872958052841262960155491211139640278103110557834982690792176728979645395166056122038267513898035219119206679501921700214533877096659778467225605088272836034716102764582089177075986200561403231666576794689729592288700444343440638384548438718270072372431298674139425439945933316094277284061814695638834108266692944128477570100873817349420914917128136940526962942084832439757982916633470794950986821822633650853318144370396314743953601216185322388946988466956819665408453182933699182748818201931764017063347411570775502024325741896615610623390186494341728471672755763893896691322631748994448950940371208028284578002174562665309214870807055278619492525813456735057411528519359315236507801393456262303616884615850641414401805005519121784121792083270020709969277139790659487243266124458992134597858648483592460225055312857418454493869513712710367907319596060904591683100134811075635974153051920678460151325878983227112949532663305892572474402454282809439783194222599928152965626848084004237264026359207120067399198290643879590374188947615892148779952239029916014357943901946370469275339512126095868715224730433663325585759178004272750303473220021614363520140559853765090683029871147893181290478636683613178672032090022907548504669704852928704549622757687923438858282414970122821035502725932526767891025647751489227892419444645506364830795326580307206690197950894475031533083398444839123023739603145400343542219160592421783012272544266153764862025050140939991528686385736367588085888317105900518251645668506627408974060737017442015607108573358790402546691983589320073574160486567106971260161852316157637334405929840086878253137287994909059320998221475812390497113270310422092128723035010162003914739877199702278109145985236843007165326012210844715122381813305351600162320772558003573416566471575714447757743207154276447103084982337085089360443661120987776926324468658079692747900145596413845276898787920787592516739585940615839643064588320130199724965014481818868382864415322814119263687117861224024714857815573003128058891050771091435877132734773213312728471489601144282170857196074827955164269168852260952083432698882874884978408516564878969163331078898992890401211883272397205664815700234389532224700188903094095066458384648091319252312271224014970524916840529884134126133440899175496088221566932047027158420371610344024920571060803570577526056696052595721212706451664811213187659663211603141815972244759829537400189322971554832097640343220321881112894481809045669903664626719593505301654232090215450998173898922125836958687634736501787330111741193164922302562800632123018716255291503009576658254902401349592220991731237580507284756616516626449669906792768691815221685118085673507559150690769600011285414488790170008612045824266681599163858035676536779590554906174681659410148311589105858157511938044053357165211606695476600642537640476815565427889534557852086963149213492647245847587444574312382506969071780507137718702520926244148432254718526487177414238718381846456872945010130641680638841163003820002453134350945161055296806231929921799983535476560980143399466614715762769789235771474001199926423686211869125772101280544506374393957873838406881046246102271591564262163199111217823735468640772749299396033135695562945293309604301659669719556896398478495207502243811320619487151069640579679165437937978624351683600128340455708445072614097674272393097191835589576993653593834425296802985025537956193105483775321544590868063065048587143611255722990017677893643237139853255726878575341772408886093171792880523837383829308560827422129934513591091053398472127755341948337395592029465180039164670020424346257073917696687015729258887595525222286349209935372950938183630362784051076252281647421912083044685134002266405331998370393107992085569199281100774031498541325599722126432887318076977294132815707135554723134898219384671646977386479681413076558899687570077826306935109999520334614066034208668179313435857809405456014212180328445313779998007829579572518808172823637792654103722994827623585261026113227516212870149110655213593183061577167680308779136178796945141503860507958918220745080384072486946372243187730689122639581335938793921917136810622413830065179924352172100972722528505433463172977990711470441658948531517749717250529879000281927024963048799220038456136496091583156111364346693060958525195224116592805979241271814414581005755535802999546084256730072665999717185385542847433882785208705595796145343278477242462076091507519782742659928682450879103820120840504928927074034980627014964012400407281756491025280536500080498992135289658518589392782548600681902532135128982918143168602871138404471411798082195379120354904583680645980378332947532049777581255493544835364368715594881096996176932270219824502601043052172818802031830610968795147028830462502540922351712433921354020324859613563868177545024032448598771755244384237899548395939101165259397415508546781537006700773718527190058822132868358472280595217566496617901681669331715889168499468817853872890580694001080505652522771389872896889841352329307251943556457241906853776759974502501009829808535331345960873064378417361947026021754713361482575075164304270802221669304544334487938398436464457680272843725144080462840882991477970497273612934062163344876851590049568573008349939018753836708025103923498213374527705691664398849441730485164806106459297793301066818263346135326749051956890500483375028397357819417006752652145804660148737296608649860777128801311521802005909583045565855389194352540073206822974309649056743684712171734927506767771957275956235917072010848585157127883764321243567657330089775392968580534675632132709925247090160315352881772509913945354895552599078377870558186791931443524063024139856012936244479308899335666343653834232808269782107066453756042464445582587458763805833913142942748328446848509060118962988920004194327777238814389741527225986207001985159679566187415785971095748143097268012816622622832140656388507972659409878352233352791659907925829682432370335224311429620806526193445280608466562274592105057465857866034962889160755157889665373101010733433544411866655169921829029811846921141280386069559663113720393769204324414825377876126575863075989121310788684417799451989188657084840598374611890489256573655264317649288510520660924007300909512475507049320103655783520894715020523210252318891089203008857406471688197995803246613499166347347213907147096747114557895180098143286606147936959975885722279844365899430165565953382649895156971642200348103281219191207095194792439437889020412323831189060856522744108341987243342878276453023390458566287838718271917931444454825499530082170347260528379900452429696827679453231012217654273910885486609003089901620369943996488721017354662146248919687121956269564261264198999924074513140163650674028482024333009758849754494935176678595901867539273395988628405107446601852376053917246379327692081843469272640315329957256929681266277875731564733296911379996638880593943813735798314391952718603483706025204090336081290315021418671875649819090156536862780263011050551919931733699965543303558999639244299105128203257069048554716767886856077845250342836268442126151238051489657574175929337760906694782338636941376087879685308808576582807803328157463827329380817393436868183435756095074601550038748871177015809254002496475026576624650477719607280242907010550869837537800348093062283743297854473663542138983235679437264077425689848835524194670048623694931362777512359331593533018653287674765149727844764354654322237852756504393038561110640652342878548539948747882248036337694179775201691864419219567646453507478196442750731218965401550564501653345399335749144218256775194927410983964874329465773615232353854643496527929685912376240506279946734183523154643289387896421150683858344016563747550098129215782155826420867759923940681357885432347766591154783587193762084960552267228417390741321842525274500968407743673929591270973553073204386763093637703228158223272803358217171371221227889254828603756145672075867080387957340589339354696549051685204863129928854052901743741064198672842577850539535371181713962989167189405678677995433945975867838465888744147688860499024581231303033304610574313122674830082288922974761354203877141807252291405757006029058566833632263093764921362184204729492910605517271787941684210762912765776702670908283939006726602403839923156528691896902852016374297060210536193448470748472379843596189259488411486192140755940416335027202045361714186319415432313602870564287272637919231005521158472244706964369478252119529955628751194728859787873190836755413163218388881931161904017725912336917579874876412327580977053863403973300925325791871235762158293336162882773777875097677001151248185191873901740362319921397731818821235263281890648712379896038511332873139567982831966358031172235489579326292852234556259877476856356366009100315155112066233212856629707384668898323857925798705929533408231039103251084467099004369056103634726957297694517524691957786750980835606171861752344212725719477809096278249084607612358575031307610049869782243600208240610243233273499605875626428017226596792777465234159277683675636510659799805872091796969837533971971623035932115040821014321674377525370931201175422251303615687286223094992201894949713315035840190937658480590513708159209327319425552925707382540196565267277616032464186107033876859529676926557759521424086424840079224878387438923410469445831670031785374998836331846004270684679637004767488097035946117716226433120780287891153866674933380663499573330189272419198731180884863262726643803125822341055984454101611898076816736018691173519919562009416257157500635145752898487929380006124923177422948601622404518796527460201962851085668990503939855782574589105598094762499954012226101239585022075194179942067530598407472076028972274264340349000681798702593021782385953798850083942125036367546017014452048869722791616130112050124545749234435925180481614778050186092906518546719122518448080433749871132626520370483192429937463686189230862507796390184144738574563721857674109951006946132633444550983455972501713253762745326210521541550292277298962486916801530583581140106441923698327864994739176940206495669595914140852789190473182380728429274553598166347819302914218633049015546371331514054212651417454887281093186470822627394225121721532014270074125512245599270636423014736781268500873346096303119490435413649366884376825468269691307747258539493460153198087840391350454009373253053471453548465595477711675390463873039383050186745607263388251827018430484312041985044046837136760193943761924185436972226442484731311847820170963870034234269353585056487851777342289669767251376790015218827509794825340408394001485718752966143305194120129322986193939295870719614559261256078295020558716695394578627213289128706584598053370785486645904514420808904646643893919999881700573900403559170985657508666733389581517643244015295396200665082463728899009396994423143399232021222057369008268137991922712437010632993935399278198190512294314103875640971135895192948925483453068508066060625520020325646553129397376848883552249359582799368074962174855405018896177311440853273935348460630781857198053961642119858091556001449658902179180164494472368663929328387907438115832535230243076058241789906930442634701810046207141270975679665114193700405796961012513151812400409030018416486490590350366641562139032643025158262544816456420895489422655297986515280704463595651188211751254231833575161044523987388545944618715940483964668688390721120919544688892344682887728399549292043187010711401140656005979294372402991746175095916715406104490160074424795048181326787537787885689729102099523848639087560998347464471535327254182870655052713685327712435682263599004494722568212342244251879370513372205171063565305883308405254578898390109035072349830774363842783939325919339623354639986159460014126582070333773791353482126413917191653546555549952250223220213335490461830932126457276210329961202110780280662582725365259468387811656837476159158359093446151112415421153052960412782734352053484450774347650961780008942456308442962539911983527102542085278254292336727504073960313043782106905599983631335169346510909356453710594119789662972596826101028740691869932619720346798634079065984706862696260443450612718008447405412568397202502229836440448427932362065633411437658853388993116359586486600012041433107794837090685032919716323301327071173152931329978417659223260586334573024909505230676249802678112371937506660577391995407825105151516153701902002884116570374911512804292537264301748512046424783667858011076942453223409477306264400628543650781176226114247332379590628019969718522767302517011206090980837998268727093132528935279037797384488180565644171858710213877190986530900211905280159050928966725094758724721111197449732510436288998679265716902483760092459443855557422722720855779957263347958284967048836335301711817826268761087974632170671453080702688394060031123675997309925317632502270440858672920831074841722081902812957191096071042134917557288951440811926865495839902157882352224109708661931004714420402620274555047629048959706341020343771306391825760669951786994744963235219324560730265047650945574897528980674422474504637801098087331291851366884375769951041214138352939103807317733939710618857588309217621914961980002503039948435160754723880701455186965942285677094295575597323704294496492625750727038855890529491845517784213626252593392364635630392882318122287758633932971457356546208881875500584155752327734156593090441454751661813352131895763471854510079503853523453157141607912548552822398445287032539583425205513020902471384875959117018991965123198656183683668786591691470086531233961083894109522379896908255785800456628908537649055727080362479373550193924314699395811011972237216370011195267268822568600172121266615192540031338479825557578719577267758563850584911130030459045405717908457460542756275722571460364938574508930344172194996105961348284387727125173881523346618018995293495389514983761942220815370395650975344239092953271330177106794627826290261244490917910324719936297807247396000751874528994843027479957337245699034897481504362774844349911462951752283938155768287476028853995209671062889481852663592495915565546592574540868443837568514515548775072768479122444673120191841835087030072630402979139606969659859083975523211920337068745080160127560606671360622713240148090999804968719559338870389474122241747354892277142487970875235706357724513933514331076759401579983910732235788586897982816565132630900438918211229502168038193171825073610188216103511131030905338088810390875153155124462412803359111344203395579008043131881113175189238342353206172144342231189592606837419687459976339266090178633957845850911980429447553914470859888438331570545306377069946736406408135107382179734521011441438113320745746256835191977582367930291730665554982211106362379329609855493075623136641668292110298574691995658264885221179542423069062875638357935355878182074996806314081652754364779360709687637313355901470968182463145483408468380722357953246092607041833011059617787725141877921928911989024592287781037339715538027505932553718741367798557792714026543185913750820966502398638114915052133178910842508467029110848921919346323843913372098352003099372828280343086475078986245043888571287958375150091390434917369344278282199391437108793483136269481315289939442149282508363445053374972887881815938349546058424552295774178925380984599656065999014683448189779291535949211270889664787390410717668951601826820266826609523470140023613514137742105307033669316482220161798376064561756705431660666970592776002414624304275214772031857492686306750068073004422177126991972565943233122088168456209023112194795157415975796868883973515121360599636079242261452227577933601913188737130636191072026579116330168488709059881489612078110799785132706576748107937500026091969845159832844263263974830613156167928706805218974980797707228518198632596733186940973537338464764844290717289258068823009609473822927878972788857999289562861972905694115160743439661999453903444850484085754823426073633760293168350496749367207759787680837842230045413518167520924327188714438810687880673322119908317081510842066360461056849309675195712304057975566903160316112634185380917153405022061252827431009557385888991644676604550358013985350795208723547996454524629188153289601805361065891491046013244718180361840280673909417652193835311047102112626875719600846454736734937649978834862652459983484803525663514640027019803902804653240203442169936662210519209178522087846518328120548617040930232934906641791811205614611960734605921878213289914008118791259602956968401469434337234610142447052550721791594822568483509963790209355801636448278835255632320899913642778851016274004970270693875078116436887386276833308314204986382678067287058326870302181809047888656727283767675920498162980264103208428097838827250475278001469499570731850061980068419026900293576750590046279411903904385397038221275900012328280852055912429304007897043219697340842670121684184684011654230461676474492770390364872759632829222224296890260583377162293638652315487922108721642940557209447270009035253996934740441119609130703174260408008745067154686714348416330654281178677824494461568315529372162455027077734092192946488945169752558723728368957919847400651645137125381281761554776995351019791480889806513430431193178847853153155962743794615737867520249918871736027675388542310869775592563945550399919197671462204435679514801846073939371213413325263344583760269011584773795958396874955352987192766558413291134716513329707795217046662290535914300515321701628736002074237335553668815836900167244649626003629441702273036352238155543694790334533501183850509507297229237699031427498153165812725576023379812763570920123028393047663784199003008613688461578586632848590843233906609752160771498313532829853866911024209010701773093907340178672390100806642259382776141316094540899074360757989827311706602370457261997057548931868889475026835355497158824545755165380523004380561134013361360657745075133483866320224790253753788958135376852458503105846025348812481905809182857864918028010697851832425981608092371196954821475462530553507500848068243809315083026528522578451531173445807779901613701601932608640818631223162976860957998571263724320290115828896599345927303244056017352420418226468696620955241527667416236175424402584578186042526630060501754434467436402924689247856347963532206873274826388669891721206216599620062833197799566818389549115821096749848470031868460525913001615600859075284622051581192421055158390497431198382798405360679524575560411717086662461092128297212488203175490891184620031557454984526163909866415909205504966163233369493269518296980080612841118486334877455429448530892550655914908859786421572674070935266260055723278136532941208529374429480484430196285223582458199758862071195967873398734272247949097440804397817877552133527411771457997798461003431586879397143629344033071605035799112767295961638903441867885113063247251871231551875256702133037997114296788721996996399213060209865900745777284138534005983213469549258219175995218465805044965717869715406879131677645603771274496982900049550819244860142308674348271127860337856139838924528256396125437089915225435408537680038461061753280843978308316064673406612479340626582511158945683805221925642928436954865998923337534499808820146657380597811233879413482953923788835711763274186027719492388037879212262387728688542995536572677999379266568180691125571193989357858783181412743941495831292535140896219503287040535104040490344087840365881186358677731730159601600798274689212785524520192737951041602070081654234967850322997501916016230712801244510560053174686267686555321004583059474784604979218486050261017195058522480443508043393522076491073999083474819356408234992339025301762859546111087577001364050014114920965629549149827961069417450945296230245618391908711618307310425688961306711147839699782602024090291825163537860408353301025039220679366769713460249255831721917615500835142377288192244905025667478155911086246341101735652367985351201485969800765534941028852895424013827536468714271319703173976844781009446064955968248850219458722077567418878037653598249107009180162046465512398562034462668540692400106782523053616269691481280951888681937597515513377787939778457676120980266582926002934233768596611081605687493854717799655120339140068545532412849800643077532173873417959055945333232956318352029001206786649163584622236229386097963016930283390554198185769535716302500868329856244286043168842520581923917184976341716508079100827110223733872161351600448228910032772588482060202081550947004490740388297631279627215467599977322532451993515139178391977496112985075852799779913765936651832166235560018610603712484795275705553822725845907057263999176466178290078069666651229615575085430939840551516006502842382929157622763002755905055438833425215702289169286747439866589839446569625551753986624464112141665095018842370273939507636062292657523267635970615253067864299754607504580657808151743682515949060135369464571166120086556366583959158643390638984903132623732287250073886532831228801304681906558544512601944266475884184473706157722494520314353544950195126898513844312328832179125116624144262441865161267752305764981954208421857630847938051760286694195656348070675096774599011944400662234022818641672713928963120175072959473895324228402616507209795780057542317842032865272796145668627547472542462184991899342648796374525273772558989871446160247323033183680215644452144770000388045541148401039195066774676893108456441181777695718882212219982437667796115602756306637273436154835202087116869642610303769223796731095179075464983537213394793510042131909128785660280243466716075465509491389148858664384531609157917025242036335645408063061849977991880302675997488326290625901210479747127735553259587299522990654827249039698124907599623701419259205581634179212571545672191004544976852813122254758797392609674391821278873516797023930241831377179063191016914932261743952611899760486381748172203545451858728453757094329155037321204395235933691369831350095109088560470773659763666892563815002567180987912945775952807742400817824315918417208421281899721978263962435809687339669021511632094187295144896519917474848880169353475202010055167117110806737257829754764761224620935185026370164024161775605986331712950902388909303855695063542024690407660324658743429730696685003970705683707927004194518755230188342188421230809452522260067100075763133918536293220066565801503040420769969240160182477056412993072951881098101440589173949322736489751217093364884950502342694915242570841522345275042823312151445552719718592985371531278579329771632721008679639937816806435738184612779622836218199859516386589787712625934821363808963551972107389539806167983226377227800506634771675164524275983553193593529543283426106100644372370247440637751118113825325608182282467092846958709643452468620447902136727149502168333211726169270272882917491916005180705905963039604753100069916948794215379523244778512954108186975951012234625462282658230636858701975255200242892357558032930295047239204348312171133165131903154076003669418456900508662761034926293112207581634895892985564152570387805489390997347940115953779820042652932027391126747879754690554421773236408921459138034126188246219294804026772674867461759687598396252866547906432969778280069326324522499046690007304647688166902429408920690136280958086976933470350587109067319308078155772171725280499679092317024089911583025433265851576145610313057004654898377165490284170854722826476855554002149786298679101303864574295629456435345013476545230718700769794875087494292940905537757586756442782447415677341322228871332495117016563258029583648706699185514796713516106036497442222445645085524271278020507782748812061454656074965600709927275757741503959805137374713552394767231784356121714546103875255159316359557818450789010865615010144284178682657675745688959631217293942515931607460107441394792534193813228729428908571765560923602294244631986834451593575365644592347707094087847677678264684227214360594786965874006090280855803280944672222542258769556599041075147595544834821061935444294396593301871109917575382452812545121835428778420630136808483004368305088319545799343531083287430330524425239071715786682748149438239289997538783564932429601843045286260203799724076470746195614275703937682456010641902497467130223768175436753943125033814911320179865230396564529579175590637937819291400369269908452672211768061355648919007640263238231584403714987632901953630611640345552974978529791324979024020094039828768693947075430078536122827415957785051672621332955433685703328105413057883149523954513108419751966102675447937217431401234241590343509822624620663239202329499879604326213611592843801351706811007286711344059740931338172914610430774287444388338432986811017960505786620464067903192232769686214327765313619504180724731830330859617933963736911937981518724646376717827867103759527907660874964633329596094011407188493804210913056045198081475027330666467275506744515359821451739055538544482608025416149308908976514592582157995245613010672865284020473072560244737012797204490714916113280763292708849413489034006980576932572014554032172951862086809498900609939422553101438544008835573070857217323798136812253152629890774842806106167275874180557009472533870073133097830475016620846366392808986011664590067717461870056832992844251014667782719688050648198006248539502617665060402558030683042728354297271181696269185868924853344202171415763129643892683733637934970021720813339070320580467514170748256638735586100969076341716549311114406358368156434428954226462950543717036197507718950745044708617293669420501456487650780502811490913630331666426715384512206974759666133615032281540468129049845154938686452432521994401535878076077468857825608376049439958644280510279604513307678509165819738800983886900002400092356915666742104039969525967344683495614649047883129024543245847547967183675881855994417667620189062857462843429276344974217351200013282472606751960002170209400419989451191555274908640136803621483840914451661709214841833854457561453977020386590896072533582603254460540324978909009535409043300469032468564815770528008205323808420666921578993459834443422052989689362825282687805913913302857759949266216764995946570529684878353921037470420991016730012089121801175668176103628550618761968672306594618842209739959245896043651048510597767626649856786353089631103654050174798672351264416149245179352105738923677145941513484936956838969873052898156812770644973776875922922264766751717640408945847124765918439896445790779536816418460679445949375416345725097263859816149399843307938760635918740779309557795454753021608784565445953055387005929573693525593738504048364279994413953209714622988684419151478872495781276669160421322444707205934987750534780777903219922939049441382236001583791926637810098076910694552540676648679244264830151939051606692802843998781419711958920727736674489589021845049079095549157998458322207713061318548126309817663188124158926833428062264609400947325825165715116464138390576290596658321263038492513297131173334647545352340698426957093453674796473798980757119081921294070759188767098991149745369627652402759655793662216695099422819316150520766221834724938743654371699974532519343066104384589097491243220625879035513962364942507437775306977174144640280744417066751999114841283650253773825469261601580698434927347803091081969697250290704835665335198697742560446166860272399797932325624864226315948957727077259020139410791694251333460684843123120811549644761215957448438369222853889584387871325509935382114044997472335526668676444501268074241857714131836032756320171802233219269790239461596762068189211419110220551361199536103750435823114001393332460753063908240703127248499201091042374380568937033786231365211343547589257018094778296509046991831329817782566185020544230210023381160914875412455522387637415322891304107547576636824028309239460678607270207402893215136058880181001771214144574577751552937228560738656119679864969071496081846116150973274864407502892882384600553225285188609262670572085975803723487727984715451763183547246107280614460533237722018423892691057731052435914184116005186864859956096779383904601180339010596455358639108555787408635505923682771754533432171808899644834053694870296363135911655140112174848932862163966556080321076256240757604639101886335525103724949913595033111903883760932340314905029195785347101766968119522966354456212403076799476902841066707440095395235865294005611471810917001793460325496858656113323994585496964680055444148785516386417104444913693348960294543169760734241282708146724174939770969382949737525989184717591718770808266371842851756922464564293328466981500530313547136747481492318238502620087476209087084330706759521168748798980989338350897668917861890828627690430628554512229854804137365974531398707312607665736412139381918539098458202055840959150786632679194597672792502354775672177748293572696525773821728526088157911964319747542024920031969453594535655715955523639024265592029121137358100444587806446145846711942156123404407710128745848362728963609292281621152260682177583914597738751683227094562819278287397276593835524002117462724587114464303801197702445412620043043529833240964612747026642019424168639861072262073274618398930759401833407876119151722340895440024805673309817116880648431936700283674499603173714261412455157680555573957897758034334575997887410023433019005091328148281117723034967262669369468696735812732574287892893173765052390044391778255064104386761279506933900404873058079911020928313972455392853613272544012283180013768159672266772052072001168495298521834615347369828675029768479864993519838676853688313960474852395768766344840069852394476029684458437521367569152593749886583079443589909379613957565761313294617814351867342523274815031286770052654612436887272591098107429947648466386124688539622272812708900027857312626684809243204528313927643908662988678452782126898356219358943065692035773389787415355344372806224594916555786617201884782791710592566434162266766377546277364206111347539265036394998582826659060051673308068345298945963266516516760995877207776249945846321207160404053416905430216181367023598930839670149801452652493887355118838409546196370067182950512732720507189593969588117698139565464781540594191562387742402695951291147781091985536442714996451199769704156868278831390350101807601816039926524332036086989590889028832086965338502320112835373007479490109941061166759407022662824627683492332744127130589491331214083946580567776506035594279165854796082769171823583357932253362001642444528277587356731814212143423574354629501033722255787116074490354052836734709835596977144747482088314931214710813768334233276884522915982964152904576031287816741078725319150283101772817199649224651338702612140285760549980122130318558273003160668299541307238782542499576211557040371772734426990276960561716818281537940319349499251425223479134028035232495683602916590888348226573097886422228815386704317615778582969428122404624167019250254188951525911250161683196201807228311417173817306848991154459163819436800916966504079007044389766247352620412247382129401937359071912396075145189562976083661907557234255889975766415888428864486815725089812074474105358254878645327117264873716755850953836318386587179327211844511604474086014941309555826064846417753103985067219446003130533430259029844871368373031597225617588928744172798001141244038576103980658306728702403521620583876681280141368412483102044897359889193222669818264964917641094589266747236930850979088943685093797227023432246697935283605496787245910857661691651599744063497447388503162321495901687713275351481550876890797001485615483118311599244462209039197391352775589589820150850908787797784688197181988363506754144222567663174192930995948838835372783841706159690344266417929138049648440996712394562839373011979592799345339392960832588035954025015037218909905701098271602979841781604309342986393310982147649679471571505107510485365312117563227111241318785150853635810079500543836433603173458257129195249462631435425171373534062485735555388798833455372331158653889568833073625081928263818833796847082521413588903617187988754728213080319661688740044393746367280428086756902308254106023697296822494808722655320230065299258048497910781145275380923928876277168182481368099476403797982727650577557836812508869058383682264813214457550969652226214277517180949804019950351011711240683020457035533352922021239073225595081561323173036744057300288088336585896344417013841154158602356178068661400644598110617438175493923958798252834447385566734760207710647132457846997384165161607560856072910937272915969704853704290353990117744752741400755646228877538121092164631917261639366169368051480197453160782987000904667537762591015450313746204391994540499900797285138243833669007799101159055631491729870619826752106226333794615192765125495499815874491865610011360411554120401718522507081653011658140993641089700448669905802126456018577616313147959757464929983196666568363109215852407816602363993411655794721755968151212555363726436406469972689788336357316595400966353657601465303120771705797601613436261689346418355843454069637201658821986383905228164888591850929549673836923231097112846780546622179493330209866788337965005153019903936924008933676056337588798680313626407692079126271922978727473714138303836908743168072327340887540467993967848277910159676189133716066962956383595231904858540397149549319211303774490360570724020935281727789315870406460725768829068308213141769070157751874571204858232235679741495879516417165537763814098371656346230801059105996315303013397658839457346274738371125617041418642877604939420661143017094697585471014077261230684403363734387095243387589568383877137485628179162773222315823626002696602145923976066507665486261570728026850815215414664703044400926572059311884336231616656246408156621026031850970670157913220392903338517568527969990898290702958510675631710852181203366051032509604535646917771962583439391774063307677418047061189665882742248387134525593353357583294677213560101386306777368043918670166372603056570229531556002446741627559587815346309818384709510091202350074320817473745789721997979282006280838043082287751363705936930822103178558787990969483396063902986588589894854534205137025691099257131642008899837326909915112053312212318957498093560585141593850053109594208139960146184945664399976644469534124890023472332383906668985027755931482845891632584038573761086387453831808180623058554065857114674266903658401415974567278499765760702992960129978873663023818245627636829093511988174773705555620390801760827128132240260912767881570768072767992812879100071778041046634777052198756581969952809047294418804144734329130514365628532274003875831556674104113546351325057370744195489730524997030447596545930553145584996541216822397787288977274158652827984271028930430110728242801077140698222350538544809830543320351146667229557980479670589498650201466550181103425160050788497907430435132261994161175720722637708066732236777532154472426389395321842714456086265205094807091158470093783291332807555925132210590447808809130551902894040210567590671520500854146616545644167329388792078150422160268850797478940028910002230981789707250566374261332609769307478317612954182416517703092582096788208308207052174400121519584371179718028408841481337342246453508838257990355696465381670884950697509325916758644185790525467786439976161988320927398702624599707593094424167837661722291799124498377034939598625858409241373251482900790117754525318515129771402881829760795109053928955960524933093948109157211280358647494574763942066130747689115179680096673533954498771213616774146014489742946730072060586858284138310069057419584541963911089168039273444326596666091234706787559636535784434886496611810321619657270298501611896102160430929017473329227150118568485893379100809501734050493926294231888903923282171776685865859048976587883384142355160748094933881240317385366829184490057681269703832278532654558250603396519891566456713154585416749119298857055781712468758177036886114233233761725211568782525085591904477764876988284183579391634642575621560791327527281952877080493434771377286792556456693102625346836173721858165743585191464473123940721345679687247829166780395619032921846294489964284818613421972885702119748932231637938261835744559771728193491124357529220114432269178886715399945359071395123178054992447629116731175972888405227835687261990367562838467613702206201618577903551573435364161073912653999766454123984390289995467537567090080982019854870069581169433814861306967968700681419612096435023991417948850762853539743469832702213152454414119868190120761724797712323878211251962211585171759152522777745088229090795022505888667067855429594709019542385406223937152212596066328540744155843355433715381398420708179836897101341006051329311770351352830955381081898594974889812517117517276247947627467485326014848047396275467226563343173339954577586650509650383554747878693184124187277659422631903625391898530225302583841520417647543756711692334230073598270104698678797833015617664686968743390275124087933134298829270000038991611839541576467427412307957395314329041229786258053636113963867769318217289565505170858655779127281630658001745205035207715859704456932487035975820405505772988395057430915228549080305955856297601595743471971789239475665338172071292098497100184554313006442895122221861291445403951417778836293450623772962766840772150221985181670825286452425680248905630560613290265327331826127045011748098123407675176534621293933690572334978328283823235046538877446010566670270172871609771440307918616184150603706968298810690579733543206097184066684272069863511699887140090176053740379705631907620658016848337205706445763207046141319153789676847135430372438612055496628439083957308852119389993143562385487687142702093500568295545510032645048785485791048997524149003971108987029506648916680455979147362356793138417348475143011231028564425519662203162536706418139789246753598626166759608929639205222704299100789403273401165167677777920522943453334904741616340484638815650821121025372155641331977057861407023003606892040224234742837586019020794884365497554800556210394048895766213192321982211973525187466007970230639113816156198793612098710896538716178871880388443599371939758922239526116099097339968414641093304284604220408284392013736441831566471436344289108838891642812131649513057189074953295499546555454874974443745031850344750652443231737202247922931937447104042355672798838770271491459488894532458869541939750289999997582679617038159930876836756345476009990724714049816188868325012388748527742269682281687399288405314612022221408667630404692584557757847634120236830777694561042580752494146619232032830259096669442746378294327306001803083141362400191540687621434319115811968470581083229407484353046305812274479222548595621389428841423232533848112646158723637926325779041701216827315204526219030072377675093172786482904487902168647890322346816777149747880544102340147572105910254780502381158555960105134988008154981492509840436698000856539319241764359972399466916635610915288639383921653862025298567225033266730879305195991543191029951606543262893855541908488285589573630192145339468601271975189528147483584532160668986635110777186707468174207572072988376602120346271110702376071266483982136198888789070234830034263338582468049323512762680856815355531381643697030401334392406406812655967718604105508025784697388868293586345906667309916631013387864873627781455021540154104788007022151508959814524726735939992808215529060993383690569697810257518919011638722493454732627439548158428891588220361611338157876676319410757210403890456265580845892762916871143925486869459982569154747009681208622886550497501555416612333308853432215859044335378108910396736772848383046855106001805045942943321677461739258118164159157069774952203901788916463797903594127787771692254808396827999151557386090859127400201193180085585849943118708519286341174484659341737734151523826919097083670767324410895091104882071570425562308489756040622675745540621220669253051910167754703614442215358189041852863096491818759520246455059000839748835532392618716323901839057719026149940846143847342019888185127950279587646621779973092315555036744427101090127238329293940827428170671487027407899524288096790202986662467645971890134308728567502220191512451501954825745506862661253092509485192979925858087902148729914263776774566644264618265234163304639484354178413362583631779207646610183598093597754359267850667355538074342350207564414469479373543250159276653177528748221701051188812205840019412067069329374625441577494868496098618372853349319526551805457791483755200443120801642127635225033356074696228971349526336277945599182924243942090062845719827087351389442180577087812059138438888363908157347067618345224433309190127328381483061717751038361334831224383431292643177375549174056395857777401229208197037032223425957029549554367448925403262672309022049917768910944227492529160889445717373323168421828156225004541983622729639661700908605894352172573940228515899340511909309826835537296823024355849626891616412142288216054399027201640607547694965152849854363773702489602940305192746096415774552769192118531951029197645402730714630679045559843594041754285293260030969535270556914694978872954459052610045660902307558761047418746869268428486680188521841548187795639023697561858405748517068554576234446749546485145365718224619075993176852303304582601435623253732053945518605515509024212850690501338308929777355389576842308174334843489161521188944783670280021126252592878364101803053146034801480010405586207252566967293184772615701592228177356193848394485959500326231306257570667706793622144846259722238076802915442959400026697965331624381560255127641463517761614176769851640610561663338924390297021882907872257941100975446571211212293572583243354442307174121430543466999944833295836145760028572053366894994774834955283857146533234196112911304727566245805185527816160907039316330047780318334291029874869391958579083777872456606912856608370319401331156413022103409890371686050371209409323358151046062536856101833857475143520252723255175975900121008562117128041277531352976603011334540498986191300040357574770623838212625576315192414310182507015238625404791436079640267915428298059031146199425579980501700353565972064376302085664809289713071824266391502007049696567028851339604528467109028094155425480710956217841635152717498424399284670916937102415023346045387807749847441632340325966757875427465842604993296536553525335555599234671898624274947007304876128292466283502077765444236643577089553550861060629348256229927459027646844793193359143231132638296005961986890347070898141347228389834065778236904649143795627099329651981467675780948101548329339132205453812534094534296836314113332973362035996121182000611408159903320684641942653185295625365614998441899425794148635131044685172889615152587428626565130210366292399998199095334216922364172962525334791980113565859137278403104846980286222214936051588763097092101632436912585415115763507855410443279027244714556356979735584992757938515687712742372895254006127221217371951595637802277032170670632752153802828146890019726548023105238025956683793585454434015324237643741144501406947025602002959853420941577928040373972688880090779407359090867164866021492194913920359868729263471626444141090311368143452081817736743652425338617406887413388028520954658946542607680133661070358421553493633140271772848014789759855400019495335104892355210130581851984176781764734460353311586697273329973184237909816575770095117157908198689295487050990006337905855732393458325348482950937642875146124569001956255969367000277790870188228982163713143638468592176374494782470556503517341850153529742505405757413405913495177740050431840232057132732721078419758006414494913889416230913653298931642731545059623114952390514870610423782651745374934908982756844963821843319287368823638976280361147251471783964308967017436819288482975770247747131158648679844402424130640991717646620840436873991222406717014442625668221769049985483325491751913358749717801540992574086577466978540399010000730490387634829159502419637048538838772001256286871101356902109528737625625593567967644588066764869467077841619314712857575140906097880430043799823531900388907778342830065621307857748996977153790067243940302695804834520452273685829511108743112478957077530502858630427329277356916788637449540604354688083499484814845775965312522060127956261493459839190277204129714823721630192999262324286935395947334236064876634229381962154247876677339280721041904100698440442836257422743746927859053027758927048924390928305814949320866427076490588819421022168702941224228405068337346714337846595687604276934762868360655232442681799398786283360752412169642359899284095298355647287358458468478206676449356144878282948551628612134960849042350228343791299322215189871715418947033171668682901345484241063824391819161587400805290493203550619184875767688417893196439382225418791623475903581328881410506795524912769198834067032054197480922471591194517258061943746495764008565526668056996229496608099512837422705176302854100335850175310183677536963950106198573158816223738146595263783426652313288748236407763172030829538658650003484568009590660605566931432147976418557467304255945728296652548353846486547811685111851034038722519657812368553173004447785286522647073791237271948143758287963299060955602670767817335593885494304145764899682572423891635083873713639920543726981482712914293009733947762517072486564715161227413592409118633974758175152004313732819779777172490231865032980639434751696598868673519941170455048502254071290773719410534766439966265017471014903356161549461974235997663937242922760940718114325415258629375281541135975000378448090982395093423597602518387707218126980031792549860696633830472796030800551955413352089373334971409101404696853700471467835417412766496493333677334936983114130960304478049280832445659979509890178096052294726226340801014330698930532957183246445968612388729725018879484453869107870172748848873121152118639167248562367544597832061377276429635710991911062221070491565268560717757049177326144241964290587000068313244078675938665441470831928833971010151157674811181339648908124502778436811006408918839976045285096931514920878065877237714142997060971729821967250032975722291265404185314073243612601748115710318208841339457586737208029469461509412069308401783289633268091595383310058254491272656632092473480957953609894022691603998387881686968358572690627719401553185586469717353169794699339257708703816528092199752404428515580632523174452331814443355385798732172673738754175156301752199219864231186976264937075552672815657009184336188796704841929481038943923480743364984428285365090833050712878456645158904228989240318907855659857275260508029911861096206591243752756214501290716673742520518674342656406057459721873213505703656126685126652666598469735399780825030114346934764143847906710779899956818866350137429061043652430651394219527349199557586177725097098841664890642130418693229047128364750681174912274520190722120095106970437880582009827882008337073960733617711732628113951319706240300145162681396613166320527754679596647364255766011208366220347866786015672686636980045587719822682399826431965626052588185854592565654101003343302355579820860778453374165696090101747182866537018769737010488389686736630850673329323536267688212250756827349834266332659717592755020709579356016152396482157300856756956649013464144661820410436497553772133900353039842879414180800403396007013318123566400162593571776067084580545046170187204714327333206183037728577495346622275454284802445073753275446642328610299931757030340172348604761695813612283083286896730660117053303618889460539578469791561831895172265420861784778430040783441606816720680730620127158892794728236519239313790983974516500882785847887818188937635091652622126247731785986298737755305374433866688217069205695424600767689725134419237918256246110091445121456237810767033815208330689915822812149555173442668142948560262682762165973153376108511409730100034865310291231818049591971418626584506442179355068463545483311151812889164701442056141389796392613521332036230560932272482660760933413220589755111531798098613624846498396659750708773749105117159424945039168856787635540721301596824758321038692578559049299564876946473461079992243081034083491883071165800762235100706685373335578452808722246716694941156395275009848517593209576480672349623317293612585119838136047230061694612817001369724729778886398510169316360994742112222509043150298520586556175528384949773852010849084731596091095203670920573284377173268256569897196153659955967916696857530475254171228289098962545536436795660176047696278486052246070470509929546704894237144365591946928437057493185744875609829215497346438051062381880362452068671715560937344153569604591121582070183283131141285185659234069807010421738381611646469015481580719307895810773245689051707404123211807934984318223344604228227537122940656728760011335466972694195938390569760813324387031954316647327226459043620456567083134679113226345482644789850027042456819741385822670084720346348906263437162243613228446185995696767752451780122288004339285724446466718522746834848530320752997106747831851055996488382127797762046032805219141095008878008340874943325084967121836551059966252149428413544775309016822386797411670902009556387449140689241940190269097153591579218264960692372238875129925919365267245607887879416782901798314162781622617926865579013049552901188064644728558862751360184327579491399262417747412092614499976639174976572962216462643419298314038760813320641080887556742740996597869734465275362404066559951953882654003699419939157679829610549861658174672080901147738326373860530644133292406598567818525059211587405622090875155154108186452755820554702775704218209111811190229637369215092488997884285715651579781611990082408297596016238795025703832004163966054003657861972697494739901128599962462080348309773268874100228629336176825337163126949947104880440196161086614821073556729566650755926942361556026600482918135714211693511303607718950690496679718004667023371425463490226813742068584945502100288935190925176580995848301565681744948924236312371676656486260093891005254508016036929621400225738099336175426844970264466131698251253005287655905836911293397089594584139020573109201542334432984193723663349017313333259805823294956897211977469969024189928928686048246359606248096882310229341037268793043635400577445376824341478801688867849032742268500047670847290789398469251980682464955281718716791538420124809631842270097450806415371162613547956535043658308777893077489923323175263983027200686602797726616454759595163194004490606924839002266569851191804051549317371973733236520333296001655072279941804098659257104272731628062874773142691871044094216270652697479524336843748292895767668278918055082947503017819291411179260396408217156398109320552534808710515948332566418305211988764875512448271398540128688261328401044506103491910506874578879962947233909107303926429176330206138095525333278895897761153400163460533670833615544455236448674609135115206082968042973686724349274323892372366687041912676992944284907402524643072153485163439253166337105468936382589600489599846799509382969486756548982958736072726459235195773942406817258112673629176861027539829666673198937204139700656638920110302973499589603844882342277012885720909886383292785369875127558400833938644993193909574473850589500681775749711798350767641027791920747904609760361327106607331337832091542310928760144491527167804929597019577190672545802759353814025487027594157143804496457925059437590883050969252165054213000567142944090012542270866206767425222757050077142169032549058004723726544857344662768724435062985963167640507294478497206796538292183479226979300115821661884310703604398019439268761217102802218376667176926416839484933605163826885477830144375296827086136196617990682966014311321469995083323597851708370568209954541886354381504213221491090717318514667209431098026596954783393651666534954713070290185129662107138297744136329735114295180174331530480110270745302478341233650787513593450296489228240882898569783782661099099862341398683645843061829757318410804787839163113591097947093599838415530395121278077051400551444760009701028466861537389168269369378492472096374591673474885644869194826896953887207292804137599989724580517550948798821054733555662087412509334074950138196779077126031530561441995312577920368443743933252597503911761012036301092833250446841257486859463332885051695801703770009043711817646050580182995411868518730045655956430145337295205100332276239124795767087938456918888927063221205360116943191956383083733696872173607033450889009983081375778253601309741337089255016864837420848448217148482501827327528836519266750773977337456193191078848572851478535966498871718826576260953000626624239063277819319887829460137670094971492746819111530589026226668084965454417668786701758928852120820248658355159455472996205204683442935623526680162342503198837310102879887893296198439007553084679399880168843051242458885405668548596298038725234023024324212810524925553509654626142988297987758968861435825218169134106536382404798580367241956603402089068475249984039101875333459676441797620618177240649816465697581515080710897995517045708300882324104700046888624714600356122945467002749867446717160803127254838624926725809682553424151484418301104501228740883578246247573376410483464882664482327579554524955958910236237267093606296803958984888917517642614796968875953347181931021961272434879435533570162431075806529488558165891904159788097270285261903573872886732323070543176884349554097724096955167114403076346755731756774951524610265651051725474753867616684813260430656293666811151972415886028949826721394648998639200322844850960351187690608371863611625926730202685942412727470196917638819735492358295727285581265589857230034790684218169418036328194037458063994531842882182528914680547787011024539376003855773608615219703973322144600504294606558640290555619565740912532191809761150612136281124726610707483108503967099858364290229481625974880232053042814288944835025716757208513636986324957922749990374645506602091655272784072863512423136210499520312212530680658037675760881757759827793101003522922424104419849316654330579249692942754787871579261137835502755561116923620215590134282166375077096621500646032204174585047922130999223600874627675942085643119991207504625148366366645236175833608828857629318615099335375491099066406635244710543019169073380159219792780360663301641532070990246062895090117978066420659669219424262068883670205273163932620406266865093689837106619005407174154560443021427170451852513261154830335986914624152863924115521335066167070939728612055715683721249040996333771063474498307399269617603297880968627245849885237885401532187626315557450316121993659468839617926422884361310119352832907781832386589495939774042440130766510553231032238439065444178239272447943949829316689343719215281765656992226022684086595648836761063923940627108597815502129073964997701818569806320315506852447853959904683478424120010127757242163981250262556662516600515545687324742351408293980917282019783008630745426052739982460157601121400693787215418881659509166316205373719320637259529235760659699587887113644869779350204218067346943535378574997977783937699893552787808801605341318580267934078509390102718210339658451986092265661344731902854356265826223662179869686777234816167851668447847231600084519401406522426135476652999813922098358158145134361386532141661308286989030815119751875839418357036663347670527260499340956247181643661939791713270901762166593574847249916542656581790900501237018515549463149554460642181287813584885792807952415529336201162461482681222688340768084371814325424250143790546177808552647546800868082440486900289239356156531966855655565252138043496234525147605216166304565745039431391966444956662467703437674062231980765599741520806012043064663663229958595275220645174590705302229656060975641072097275225022512042130079992076785354032279631527062968944343273224954178174148142953955818937131105342721920653868461481769035077192227736557027922495462792477784712140718671979574201290395352816874410090362755992757001371375173220718617479637485727810724194126481141573053234296214552604576864439069665577288603092769821889315954811431417956853137029347650989690324684952752207504409710962833502521069710219886159537328611133477131200749463531882568345883787189960763540639030458259381923853648779732994721407272156911573093783886014772403421439633245695677612559371187847955481110595151771328708259659634372437965243599426876025570997333055111754061421035213622817099875393607050076848991773637913312510050941987840488035048833691966677081252361123254100073973679584445073104547147259775512122796617150448774928399231253802979065784738472121997357221888981335254115303528968391401875303320924441613291521856995945279377427536350334821331451737242818499809959059774087819731391093371016992863954816979423814317676076911045886250403155192748114312880494389261125778744829094257804758583663523995170398116592443916794960002657969361272751038737610469724265521600999313611531091272265719234244028317563908453620055136608664447448419677543827974318337881464864191387341530376641750085119823173803559996684837814045313837278032896130889973459461659811854478997398841573657844004329711941424249652164417578712290793276913438582348210155218079676897244645382382271874676163603466566855673314257328516811966515221506257646614821110537654173436332077939985409796284616776411205644399037342139446857158140423288265976311156273640206772353859005280340870652766487868464182829424382331772255210245890425703958479027597413483993606178721419345148030259573434396698698863694042269939509623044049880581075915148379387766366105448353016224635855579233754758891199538328332057045364243876923577670082775100947041934095074678909810840370372422849127225631811777797458013214445862353265481709299076030981761932701460166824244018389800918544051062986550217581279949184623282454116795634286360653458831914571966808102711986880588249049419733074216720516865541698749567291525965972135948447388176024919393853579538017205143444814390144070850163306280920462450217969536429982547737317068960053295485900986152357071291165531184921690775565802248285570869742246352838465565913370774629008556478780913376436725261399914899591273988203189224751730142532058185127365992753380424678751787792810158555877057154965250888947952568902437091894271936481245187575575989103788633071692963870342384312883524667831982527457670499541907390177860938015447908672982008170521719001902332873779242681939521680663148525551963734940211848628949304535630720399916525155835865279780251099362999041266265529569281848877827900075267315443218379420148516492533705529922857355363547429138599198616725997564550687815041210441609193934216912955865782842635845110450009044864831471308880042186719236941173931531274387915040926965276707306516021985345680223547892329961867155165037225255546934066145071476322350360963479272771918607155068733950085870141218028394685863939662310006162310293387337702781660361330358926336261978441246260806573072485246661537438757127326092895710851763107901730937805172511686353770950859690027342381446422266354671061818701405353104007478617265330922072304959700849901010406269336484797585036749770811566304118956602733087363843724682015080886874936026175104470480473144710013367398602981614934891967895501666824981775241123596888310320070760409176981601455323357972812732632370895259213196039834508717455587135433377857054755618746877543846767109082673372826791863060137542180350447086034199750135631144347606037653230916035704678346444192189587588572543332166014328539822333116565801230074148363746614603966121499396272761898061578620433070821043542723260440897546495841108062540886474458049617072530513924135291002979923903915114282495590387057856629729260381444473314709341520118283919138842096199723499222883902843054261552385430103637778653628957748635318402467512743180484906654405078106572572416848371318982609346758055129477609127816552362113357261759048343835277666379810318737540932588986723770500866981710182380494672238881535907103684010280729015596613113251456084341981238176539706339370966620799773148427107326143167651427730437765353222822672060762780086681995472137112868437329084004865406815621422162169075060712584966604938694812097104946378808308349342200752674325193808474158463842588920089897271382954409645288675489882119285792000582184371854504249808682051995875324829014781101986293708842286282852172463285979359125245582934677272171795529547774950913434021354877777829192448720931744303122970065301518222103863489563213083790284207075087715571683689230865548457123252066222988262843694105810710165867639050986973716821622765656122920920753994010653098919516442604383909059096201094900657274042725853408718079411575762408338341591320152010934894741183521890769993734041701113222440117516522885532782297844999959518181407357927223925633590082106271679322329656893881959455962489620438058147708688168638928786735183557258526391708580707914690273848110639929142018008960548156467479245718368536212866082339915936489126793447225890564288163402504779855315947992893148152132002597128788897413835047843701221129601830164611899765540314026472647004359618292348061835982821888152941156445671903326941223736229214330240798746063694198342108033902683979793311783980538194958460082650337954508970051156291456329721697032800324714654947244165883334006461876829936811319796545912844624840880667050047978544695260385857482370859728647369360093504924702786709353778049702143888335175470986592489519297888732857286349482303083313316698811096236888562281781868600048889413298612292373019842194768217461380742627493941144676714788267509394942168935514511745127786854297493393850376140388648857756617216704012801114374555468785614988502584144479111527467486404127270639181423352158723051575056049074006094977898105040435619757063996713264374403737478330170343409730955001042223506347799004031896517632820404912305191900855769641409973337624282657085404144471823000457261572057313894677917871355876355034095764167090564382449292548993399509230064696653626322862326437456490089320367159238975393738355028353614980444806890717454709144259819435381258562686842744895200750501042475889598376799377788837163191965979898580431322031270932936059548962502491361000245319311995874765276282684346909813325093466561338367529697206712359820791240254719611531201770693189544268697962373995694619232586225170828231503751017725690080630188450714482780789609270663757429748238291353989528484933432552882258041106009488288927702845481088311274381759681079058330367935648490589514362702882807683977919232820255317461997714193545551173502067351474788244602550852954084406720122078524068061277982097721767293278327948296538636015174007036780516466214530903135694237725702812518748391922792035325923864814865058316035295131629345942702739562156771132208543027842460133978340881174370430567477058313110691189820738374495356526492108597383165006438426564857798009965804582190844914969170368473319639586356431358380142024291502440171058631567491000667523058169681583773327343575975873011936323145115213393174902395514326253135684292168428999793507109802680393995069280900685252735351123274614675031725279472326022749765265794857761371108421634747180211388634687803055757463642182492553415435264254922754217308865709629492736135351697236066334232883254241100298371640757297249393762181355308139526073197659021235256902749023822528507137102585454056401776654968940447787523189891324846014468981738961247509480105772662071009851087530252589469536519688425730241940899995944861799378529199159735748727873407662299135461837762144546870359061694993941297371250187074172008546615524213161770723500346890836741685226787245115879033410727063712924276961598860280837700182780762836309823862417009306754869173317510154674683442869223054778425426975629212190801708913919996577166477666776960984434397239483797722175246313543245849635931929277136646958642905458846576820388766449112725374679918601758392980802817996041853410371973919206638086435580717604749869286786781597080982446406935053392443086639506657162500415490040139575605160555373702361585341990563604872465574092777352655301926629847822636664288529389530014463715001780491639490206824209974452358728911453966156005733907629705153469725210292772014307526066917426066363490820591417345812512621415586497311787035310714159934773526681852880911920633446990480190768593235731138865539541147088919093949794445078956823756015789135011978356797469661532603882604881043653857755361557932554862314742876973506317125793177834449990614874451137640228045730445873749143107406515374805556525156540447624541972147281066898820745167557000381465879884829928573470655246990708868215027466078957059510108796083800504803096814283472870124199570228669754894982477222960263284221768941683764756338390388667393486698552153982544994681938738458045094244534342985945951282821646678019016605403852676375724841708310813688466242932725061903013813695091948231968724411158573807671213598673867117818916984741233339136072375261144582138510660540048551582107679889594985802744287430600057600351303082087239802713319145496453954758431848480299478604628310418504199057261266980836566401632938496385681555134709084196893325431177571611665734893332339902029663881592682087252130374113353483565010839039736310779275596183512463935698745947231159087390236153964452544406836055728217715553441451208446693675359413288862416588758394755904480169469296369901725696775620791915338344114665822137605946395401265889833541678896888734020786227804654350042894033261459624219869490127863310175640788359061283434587931958063675944108776589248408041624509864976552265317244493201532638755019042819653081174906260082621629434668136072785260058591009728519958290157783228169196934775114960183219887019651901754017192842637881891409453600377388991006931495650966251881202288710342667395335738295361488169805210046851271083003004767077327660795556133175117035061812556357195243761189709903558344918093890828767322029219136415288806096589790139050120508684896139574493790554559392304427731042511776019194755440932052563140065980692961177741707182999620702674839172612449457189891595695672341136318924579945469207649281502318824558940011508389422293208943093542211286327563144825643677356877036880622405081586212083980827938754618275199285199249895986939804645167849851430438715742830831107573179655010954542558863411113414227793719247842420755774199510943857482273325181027214946974088121723350149996464336269165354754365844106758910811594238996755347923178876562569810509909720019930844213034470327994691356057379621330687729649034343180880069283144306992748113972062828823416459037719859891889229073844810954189610257180063801948814714405665921086241155680677449478414872462970525752068151073290202695385639432175413182535502973571884467342990376079537841221827216785667734482652194640328665123784737946231697483285021101473351824439031889737526844066740931991166605150550627925033187728384650552832156224725967638450278154206675342118184906300200080439114878328499799861279612821998659052371180991888163320230858929887723498340183706079472938761863800823523696374823710331701652116891714803079516993185674906317028227714153242529790777758689925083851666673049172902973148314408282860467318442092760336145416791304964603618655713362805418009421862016155379343255785437828222438272878466139318733918173022189237134907094767168494374258063328147503611630060105417653202292862143096786765928726038973485003460780870528978114329346887296059507704045731617755295699874084228933970853276052453031058128088094804531267080678770494241060310594041348535469846113655844298444606242992183438373627816497049439121986445551495077002610132503983980698494998076030158767909717290606260026925049774867992177288659989549961333180239374889016557512806860436251152812308301551302964907122036983596844009790474410718853267381606235901841006901500913083385347630214734383146257326390973720011069106265333708189148052512967900384865791095016455452578024857788293682153473489863875160718960927162494858405693605088611980170592413541239460743381671073482966034954407788232458538912488036932913517944768158216152495871531249079187385221301279542078234417405629791488347303615677608537899702513624876455359548412805942056337539508630641405543210884957425405390366528241889970803899701272156944132162673770667049166946100891537687840442379264876464486975545836752795734989345325827329196953587947924780211095665102768544558432769767318364986856215072891334439445441907876981933148427059498013248989653449455599243410674226325121072970569463142821908620676081672274633441566847730933876730643118835797175760495695837732839128195461562289457825393162234268513791228097954226615593949512920485314426033086820380947477672125307022463299836931752423141193228390451592521805559648832968740529922626664353715921176691090078828012494359767540612183590619383916850833393808488899802563241443306673979336557877217166256276957348255091141257574360047801887973127368491832331590181367882178056220459187841377653101393034482255138173812032179571028716847295991834970261529912782742797355010916768995100151253804729493902031201041971049915108634274180358269705561550621325905037574645557880736826904741539958959515516783115912211086522811806083348921968826691371215371079116049853469495158492742215055649247440810896098101136278956215290010121920474496220624831211875412886844747902140162166968460828545344071359768516251578543048375200426441132497888771634167607614260363846852662144722791194503911954169930375103330007569584919670340103000120839332471996061332223659749365795381975771241839400482893375642096778324205499711719874346537870041238371364459566861855733048669379861379808757362084910902127082039881766460067466653635499605570911871179572456832140371551099453585768705987110282121144951122583979286020450886959556505566619957685295930424349422136301239889864343845680102679419582418593456051849640765267167657233350568123959039711895494998822783504976673127725018673673540605880550433282433752867318445146408155190533793023747601347619513823572672568900441896533339073314387729665588595538259463375659294166086464246845979954073122590521022450770482220502547228831856748736894143960762244848612706572295950924867339831981015181031372365049017981054770839084131789082044955648810319964062289423436638815044207827426758150521546995416525011880087319927394529794658211183659490075434447662186470125939778898332809981780975923422283962964344933506471394612632874817681429225003223519838700352983079838426925761650093883949802375075560469695476526692965628311977897694269420897352753420535148957542087647622221504099406656381900967707910731140133440395036842314896901328976958727594765763317437368255751024856910741749560124804873763972161435871746440591704887815649119846529745413840242965032220367717179687384436112014284242547807433168346140658614971605965838042928382875519069847736040737231687530061193683906820387026750190093199932501794615869007718065575683379767230248860601636101865278320459370681404397166077320586431323557657940367071302259671224448024827191625194696715584750191235769440904210171274084811933288348953971787145602077008096276764487833918474304266423984172271204440804142579772708073441475029067517973776680714989283436177448341819140835105531611434571623334641116774098201100878967777459841924047327880795609473745233642440013194342672161451838886296513021983184086564441768085569196840193319238116934905106310980178633255651461597485750050804131834464141125081738044548955049151945568161436012285561212664071828960393503906992816330501682292012538157353566849652518566854716456165873982764201201881364112800192323293903895648750771821071122486382921042986129193360951730526136591585284488294845240053674106934103579176716003452110525493004550742716735733333874928230346396168923610488990927157831364739675220159242049859800177847095451909487700979905215217572607243159175850095551965266738028000044415551770691580947713321352686918156860638831144281722442101087777011768126412506701215042552584872866390346740045160787536067220060846774496916638025521546199662117279287440559919642707921174349301253624126438763999014806415039530584875098723906706005897596341479456615732078974221971425039922217895702878328867487925816803411390331684246226541473347018188641892816512290192624245508807193390088891952180025462076911583767210467720837496544410812427310128095547281759130370696934774911395834111456747046811407597433378297385634211202558217232128529635095761570479312504877174318222449538927626972244864940955680233346388984623495880672209184710549251948491429693666894050178412008820855999388985591151334973289359633301882907829212552317649966271066827699533091036333905367240604964456751161226496262927932948838390330327452911398034763716989598203317431268274096971918062460965831743753757523261930265900328933884689876850197484208833083779492385936429233632588267360993318311593171542726397771891091738695685248823061474607851804722855860144138607587731931052473667278296292727232304141393314038114443617592531986829316171750756890901261967380651571796679568951444096785486774422225952499670907300881956260796002801636917839309045242207812127336866563048466091447581844065144457277372218806603511163630345652548807745705140562130238472442415742474091046148549997011758661325668768534272689614350687054185973780557263036512099312066291521867738329623772530124140820406485354133312393589290437642141171776482288682975164172891362612257693003626558164905235159886656709956879169690580376322484541012755722787311365461783324513467864783476594288163130938492744110147542469839039781175409636221562502315163692111484095732324440554626925824635100020850245917008380257520175519513199939627657072033880152523483486644439054968514061116568017943219789008873559754022809147818678002442725976158550804082634045734329476437319949455227339576675505033007722401945971276350306767474638938628450281690036065140514255232065943258172443697700832200126992971978729799394932217466762545772409502524532652427612576373670040093692409672028480285902517435384016001025862611008112126980909351916377456494224193134157108840214912373015337864328607156014389448790313482740814804726480712358894462911708492259902291807395381869412033877869157571272523124025904961951822285090137549266663267596692039480500827358031491330375965377882129875159869181603434406051687641120778914601318700183077320080809918582907062030893656274742584872873363450657443885695554056272822356624480566406771812765689090939840688778801540724079923974780218502681635274341999053998984150758901010857120868542470388066491352244502526248043031463709274493650268663894768403716115496553179281329283437505606342151499675923336981148396005459446746670611572328712840684348361945128936460838751895774347794688797500220070369698410516087799977140147498583444072357789466195022232700595599196852694362681113384506642512860166688257834686226445012319491862319147042710716647641912745814093811961770789392014411997583421897845708433850734528599674950788170997167625474990028734138307001353767301290525528404968622947850824288234249797785469617100380696018674857318756306144368381849748733225779303176875239079930502581262209020777562279245836269135729493985202147465851448969957542997929412872602638775965684588747390661745699702182133480969708603331825787433755094890090559107040888130230934128559175651083816285890455193785522993226630609236322155260718064337440925634692226044228332586357451816528627845421203585520553805211099998344337356790544860356753470126035944416591796458345497127917999106816337166996823545753997773745220534674831690721057069211161492410516831013775418417737648004439767160024941025769431449400541438319103526933556454474273773098769903867317582248323476657757877308282622919736736552201200022646718660336887662927674018288900322504910336105511198082681399700462653089044507182004696383396961496980576581972548771001102488142584761064103910179118981549298933785884953259835086607787335369370024748442817758361721210442825486015985903473719298377250741179299609134142388012774211050022425449882277818286808708571184514199739504054576591518310272909681248905842765405239686732453115424711227684541114078034022473623165068321379845137891972108262852395973565416304893495129389300297188315548336407790367245612692091497990588340421244443585720270090342882759800155518197817338110893323026459086230484146942118345597970006286526617411045679724404011098952733487814849559191744746092856364655116942927303995627054400811339280948925459249209256972156234359434697300807653180045589244175201864884229254367089551156274963399968941728278908336247429537322492995044997740556682294223873107270034740594377043163991240711164469441066052517931374197643525489690883243657284053320311310903836132484910899338995739497686794635122707240182490289918445942984887304435161250804472939890190006507993695260212063008935640129035025440090904070460820078732411506654859284236910627552088463327389781790295897757704688838679964826042291521905835619859967072507024218049717333472843730903245848921753686744401454420390302805743489972168221206818687346480388830552946724470774017197879000011170871625632125150499817576665995738200161309037595174798629976308543938594272678475932769169576545920248761935835938685100328834720329179277117368087457133862076530408032906414586713854649676847008774281281421860258714787206308131658589345424211420191555568032198003747274409659401076457707961311793383374964952085748872996782749250921177736558680053855858897282641502955602354703081896513699668445477261545661428978762427539323370684720277420609779554131300461542053324618711371837785079571674098720750613800901640233108285046341473885760596697859599162383609108648773699016781464379003539754974377924291952580363796400332048323825187214001283004019315758489315169260534999632996078565255060085249057898798630701014537288823630963799121998384981214142280860103522375079307866986398365148189699721571310632390824515335582615759240295187826928764468123365467588289314080960796133676203719537019680217504280411056997972002914305910160504571100177528214396387345797906112541578258644684039035625039559074469330308372310900261948178089573482778303375382696731632334123375215988472292460363110251844064200353555810602847808442410209151116144514507494762531647676379625739631801892564114222126677341935116515996932645886811568823279810899668797456578528466789399937334690036703321810834457440593121976902589229743174256557243394926406280743874752342143582637169328699215023163920806598194979929269581383942413417974334100373670572375696560340003229134093625190396242824808336510920069192420420504207498816633700552099080025583648820713385794463405178990982938599720842059198683694888165486997223244328363456032407188970993363850684504000958331867461287902197304944092878895884590362756972655062207248037116705690249038679530117735978443994017519543395739971789371814012731835770807338341585818133000164102014427342556385176897069296316103931622835601649105048346820609910068862880745433499070186205443158047491240944123581871200184622319549585717878061195925523656122881949975477289180649935504529933877801368562045648236566977985629677755024741273599779882801151486436612454198070316540386038793945443358048517346221290120290737909015776522880469828825115722654932185088804209428912449863177449543775548984951050508425419520819536676864289333741752777017623841536039728981431558920272458847644263439181516584670910653931459724108965601861228392425291848466582092736564681631079016711061903409222089822696556878742372136374582419074900803091366937572732364612075036085736163565316649213236849606818481386828080743483595390616093372498975942244387000292493699408732193617132700480473661933789863459588377420929568842680349321376107679863731659782180124506234859493033548819299293603144217034431059182164662984826681959486225231432263409328558083007829954904486524710022881126404330573093896808037653091329245391044617913993615814126030199479609120855301415429397749907608331371642095085542644686570650152922587924906429891914379176831332959025010470805146123139256226144058219909350844570309658673671401788761224538813348446388690500329842645655989160798637496836265180749301541369102664765622574669047112495483918519055639274433951865464584720877510710290375777926255618577475383855710407774392635783854349640676636190648340239656429870771807522860507228706333099797345733802926799517343700272967525377460071637520383904298395007127354019013424062158478144028345494042877330166708944412756044972576096870388794391395637012730158303735837921830676181980905907979526831959889987650632033508027130158630389849695165842509052260503232989431487980628785137797903688504098686447911090628432236038166145192881979594785951317308192576907919458932147359655373610407296813099420104519054527116405470340503680811504404162288395878673524277861491238108565948289842221959300117935737840743579882564347207474612714959382360510772197262717313199669101540115073241722620599989049423927453522510570498561888610733469822659975043394797775242925008784238829855589091095233706907361131604851799918541294908598728136019497829599507927219309094215553827522912063446365354396260325689705708377251328876621181186046340901296009199841464724056469140168931528375420780258992222010403893961430812800579402523508467950891148983670707414566541358609574909690678434137153576039233858650551311164043831365728360445422759924131250647991583891127134727065822112634474855717441666840700005959439376455652975254194210994530577232493148181703977557623441081948569622712217818159518405379622021830034460036267488330919038231182703184978365756167449196033004391603173393991601893501994555412385420714599164398101843683676905173515652868488298657905702744462870255304949762960105912141410564501239824861581444184110922976194856762999358664011475638377425288749419811702016894620040090242320858366740015996415280457588390573396208105597559429934919911266972697796705056823050746445818638989176369060888018610300368637142181350608612897322698823643275812836212928901447748803798446240753952095477499953533794531948571986734004746563786054808578043648399103634453988600259625649671840826429164345231293021720703497945669147332138388668919302939145008954095296037469985872298449183552885696357772820093206182262215708819805201333774672522676614952500301175006104163359649673449309355061398757815156863211695146995089005917149040926428620365103426782382581251863602660005883675435731631321087006151821458680812854543422196427899281912461804085644805633489028219240090944858599119240294389044176572121929864177617521692009959802227134213972704808379300912458162421507906730061812781372853907757402357583851948740070143711400244948045353904317765029555897908856967211904254649855100638853781593956825438275524620987188031322910238828692215595698617935005222082345122430881229641260520874007872608393477757733135239411327323767473340956161449145394568024624928208049474385308025360223141223507294883204532835830934978547523466769048464469942969641306208212785803205298499879216488081076960133334641058536838317365165707121861233253482311684322199508483492950244572493609566037253449401666784046778349532351365337571215572698886189633190074835885030006056600418036603212527063335913028376865133883899068328966728330515921639327304827121965810243481612730227024690555966896408863061431564648273245295663792355050657224088333981611339510271511123349690234673095370052409212345390168246123967374893776422252925555184127376473815316777736415994043293011951825475645810485231980202935943213450790231674757472237067123875591764800119528399830430067291876095871446168024387983604891510472613738521377660989968614558595442709462234210653682874833325103017520033851695778229220010975039582015418784259662207863367234776657016557731921796760183224870193437777952114463384938020890532889594963246201515729892645633378677037912568819403292724608396304347135116623848325287562621950864033852168962540952814710905206816985746833118353272269606047637268013730874572610037166198576970126999425172103931803753817518507791186132647877995953799876619171454976792049250231620124853120455694473180928960552469522082078936959830311785643088330266202550473856025522131208353352047376303669796885042999655181761706012925894871191541676333511893764979017597509797878343905391402961773524056021106320046131641174823767845208818793736406236693130300581446866016375056193746116474294288646103670266836259146547983643924016576205866141901938976117669352556516573410023614741585979933261319761490600777231243054349429064185436634939636097005117418217923223061900585470203925703701161511978899389354556994553799306749425192870173466730636537192566905731619641881979788245492473909777522766244749397139265551217139158806628701976426658634964806275274576782022486509176376085940128704918770149062323896683800901789429903362725248528356895365651789048824418921882115990046752777751506019432132674213064934782699660043493795416970156647118301755500637079093007590043061890867204651392613115374485702502385358168861229916712018621290900185452842673550624946080353578824424624763803501703295226665940218013212239080689371849664882499518931913079978934351530219861663023710110033345241120641080503674775445721496932427079528817977188693717340850959722009423224874093620999764059145669623976354428537578656046207249439584736719976723788666154941310723714140498230331944377170335121922418212689170867355805510263289608836228752226414346296094583742406878736753255769686992868719989998298930240395741989325144879762646063008976538390475676081718500260315654478376617728485266071829131828962411191338342866190318805229985590230795156529838027900327201681490110028304889850772673387988230242812178625967594236774492982813737524717044757499374360030155151587523343676111453067098903549760470610969223412580609432054594070338545363562034903029050597602491609917838216666201444522942973416838150605359797272259188014061999774896644860579632903075663092412095420125491010364662748587010031353961657077119411374414636506951947700288381570732744472250023903571098899352484721104578955678527761597548203719618626423763941980740977999664457093658664509644727532608357908299252778591592689222329717048729033880776261636997403016523885414048372791676899838105603719685779747870722098657593287020810786973977234822477933063013619573770020848503436098138543384002245794874087598595452977604638767490266530266341986119988013088309390770429776232628721206984942000874486241684351460515434464385872389640269871456417349316885286191824207851600521198816455301476415465046908964608965988305937031298509496534587980669221728230168545479175912011851612011978415206698330263258074552528587358629096885940175277806091801490639737520596068701764602464510201743511758313590090564921098408384497296637518255846103096647187124416195930934656539726980616503706276781904339809832331026046127829992934035682782216439380670724959432272332633826497101533544089607709802871367785693682593326482234472411646027913872623595733240690569464456006222891117696980839061209919033515784118648865764145777822578938982230388171547446033518717525949283205278218764653002878092654685287549379220607529017199194220492216727947498272785029060029202218928428897670772906827482615847739804710268867975752267769159337755319926200603808832093495213111673604042523197118314162614167441447287256098617736840267813347734299599863795109706368564018602477000849718701825276202904348127279400167734285063731671034082941945249790975558547420660377347035335349512679289059492027205453040230098524627577418469844526817719805117664768629416338564142496329366997765678256595828477011055794881516084816777228244118221567868948374234643558151937117224321957360967178111361156157937502873966190869790972102800212877130179330206162695342616947267577707072807102298178277200163247133221534224005571284474582188259212772687148682661251465272211573231039954336044487949486626131939389564633524907999485073229387521606840722654033935783600128810213853432549664838111089443191620091576487474614487397439711312814542461852824776547111434327613593381797432769204054443939286069161630909123358186650866752836104869500543989564060529903050789363297221568026313551335497082366028796393651440142438042661240812159587781090291030843208173493006271281895013157018540449534843538878591580304874798576868928404047633065010164528014999692640378744755368141223652373041712382788062166406084503758320871571367946499559062591931739175754651067999689870588119158404538513146220916761256025568510708153769857262706638677783349951084317287055690126255377370245311919409950780884540617277448630858457065416157813009233948836814970805242369267477674575472827830430518080689166354797759305745808762670955814638021159492989692899492781506509397197340746882584878333562229251626908641916379072557566230902875275547805300984520456621177252100162862166457696306501037963791875931431490560808409003490766010631547010867742781008726910722927794668300227981355346163553922305254765606252716241413502050737617352749354559477233116781217795973048212380806247022364002585794739670943287379359391114980998708258701077991458499293723630700121768933262614414891593990077438776001967257759131789069132217610212566643276235892636317410720749280694122124851900727630435155617151508020937552538475065975973123618847574150761148078668714764239968386735747742950331395729858038887296604862309312216591489290852597020544623212673920289570900507242948170073931323754352328613354197229423007259771503312973902999696448348605116903942900478836076875646594966525328865467538855255632906682674766295802989343039092010130057825413271557279677774290086875541951029039639430779305680684525345220596639290652945041466129545883810802303738725762704568470735701968766715309320910545566182087050384946483544322488736546653979236135776267593539194493233933969428632088911829054596751281945863956504869678251786066813742070493386863704822411179630904597211639662161368296468440551174665775614837176636699519196069370575036086423162534249893343486040283571620330074753681731117019540601730548524723383712558329506452056038569118819784461356433204080175000550718691023167069868968838054105793999614520590422382128402866114823798366852442361913068603204380597252375641721533319459080202528052136085540690404044239871555440829773292794986908478565851684584768887065799400506084003750069370982395434413916855368035553366174246511798774626521556557292717798169220242922316596548275122903097846030174066722144209513024376525372268144870108939399381778147537527505799228401990435287264557851496319141045409928221480483341905649025840086819441977988927237199983889884148535170936807484979978339353714545674767973185568122431714858412872438130434588686710104958723020124727793562396229356935918325126491524734277578531176765551274083864302912865414413491846386524932436408166975138668567560673957883618240785817885724983067408410794246322804024575241340361095256967832371185739756288783297825338537082167421253158685356268659867902820689856918460332593280573192339593011672108899239561914565133585481812147483027762352812557372845272701834357341287380973968874022987287412794538015507024323854166808612589902256465852624824101196077327747538123775433253184712712636496726159456697099129533509527832989006027646921149527655209890099454702988981921893793076373145393984415656414754153449672343287082673732852350101773130679513244193821042963399231366824815930634938902858118105718560105223933414330780664488363285448847566616532017025837844075595145480113664381189688266105130984195045257593982236264469142434844020714353691120693509916094855353055836746366572394437151549668599786493687521126158067285904307150537031548003494004340638579619241155858919057219803905194385627750134051607906539036639585478878015313112937759479803513926581984807598441779518722583932051621305505233570961282594137054686921624994470023955114769323474357210353524433389139528808424902212566941088470863000473235160246651568446075189574343095652170173170824268915575166124372252077629718094805093685934463327745130066849155873923830208414197173881197891025951420615504445558797639038097179146502290998226625528660485108290511034289256796874241880668684298616472710258562622822040039809917119131342978069412347966102894509765463221318807164148549873571092659079916500527178219870145235411384049738821762173222019186272578064875944294392853790941960415099240722489078913314876082124206120979339789179649982028589943712912019492672921831782128277357850048896819788065423958041053388789187104161675377576756536011052187975127428699211237190017075416594451800582296492030665243789285454997523781981575466287563131201721112194729007073495192375942369039435418953374861691597071192855867774367578696335771564676966978047335997482031054387938255989979616249651151804183621552542408398936165585707322684042861404683814677370134441201246107373721834487012904376932241455831851287167867448616058651838929117443428500823443588998171518846409572979298682376301859573316228932211689939973735493274309900540815637430545909083174256607555881199110871398695374372257822418170350362184220894243631677111682523746707001285854929342733001589528548829497091043293621970820425350992424693015867148672007225188557924860580288103751461174669368043139775923104291927030321502829383602085949239147889337118782025457384647484868434737122116360025477860699778247823698263569505801201520395578301661610945378884376575269555281851626709602510402650259785146332448780939927864552232948672397218286126257143088172800562630009225511689873172541466838103308934704235253826347572982866883093492269615875825594087898651653234134859719626733292757593895514993985977700698592696250175223930538858926525571260325074138675192441205659642549429721471581133285385812356075364823097698132586646940913926623125348315169457892340927137427956523978489124157150933728374099356562332290669726682906565419171076598750240422329855821215388188020051481509137854182571332315774269262591716430793159186915069683573187860442048207064285785674249233417050116691521109752505006539351213242294829856200452806338596883324787975671622539277528988197309726571987340388576653066774071162895818699653318722403455715649069821132439861384582212796435959832544307579641770520929857984168453016725532754413943816864253049753651355556286300213405323655026369280330167022107498877421398283772896629479092174150001773562169251126132098384929503779587690353832210557292282489767322000354058683682755590963918126110375462685575401452447207604827030240302317359313387954255605436893606453479736527446658627494160444253272199114204686408808788712911284676583583817432593969097120485722269620995430287513044666649425683957113089033193660235430955903444197643625219210300563889561369161866688373156065748556265389935339083530654716697984395743154596328933427752235173676024478358670690680179118283490326678738812921667956067683720194383350596438925560078726522037419299083320841942579414266607074369943418257255807546284576301381967407520386257379352182429598181785491314172936850691179858460380811708801806324109776894702778927983918263648162637237846695105393270144276108665608002900159756004696994086980851651271930226092361733169737037691117114584117524444301813470661492074694834701786095829125571687466939447100418992043020889559412781547930000472359334010546030406848959460616966998651508579936124990471681095829298683821613164844916462216142906630810252115216026577923578429288912916468160657277618474320230661237287800948111133525069476391314258437627577706255652460748567837644981806032899600005675614009830339240307547782880473914951722749722960106513199065821147515507824383788775280777906823677451518537931044769916449651315668336848535760363134796304174848403323169801457286105150594528724418232233566723423396355402120171879627089549306399450958169661376783060252680142076381604447761815951946947204113633469318918228478987448948275285420346064710642613388389891483250374278356443100122600172741586091597914221486319385979021327484691271055222642582437243691217994504157727753771133501543067948659693104520800126315239150254125704899001269687773112528315276987554636492424639098724746999230658842035029900628509895904356082916252957648250465542880473589993825943715615900739748105851076085533306854406009297397329277859320548892092711524994780035611800332230957273273632224218115213735890312908248807638626515840531168519627051404850313303863555245192863279172651822226517507519720358664158957859927222366247281406803940605283283887852376647046650854488896329519470601620934616015153006478022412649871957760830175701532450979837553347842474217275112760791614123223629719078915641261905700897153448913213019227055014590964266140231953223306251656893095540310474920658322329127045210325910113815265159082303670977372444703152419230467189944784946852326042977484003069227678275119249059018530422854417084127685417046366978158900304013580966970750015102353754628248675584877933203554222566260301980236092913321244515912386986019445374119286532364795915227888640341685807324993568667346802986333735614063051128328289018562743014354464483165297354792049524806887129632294685190616839810617529176264324874043697408964592193456958877286329522754957928893881119783047449684124620433175625152537348826228103597266300853967793183580671784512084490889062150901855081466402839813339768205222287998605324596190247961186050043878520942417543251122548780169141057932953409636439023025482944037338017755881251445043906136969987046080838771394910181993592183152325200763549611230143992681844907376821285852589775418751246316132881364707846474463418628309844456432398986340835143687004233668221088918355980943672172401591366768052562320796375118451208820454429618031982981951000253553230431730923979625755719469371953886091863827841024984669744711700838166302927972526363359196415284344795837673892415718083000507994406838664014937299391807529432121769422207150697043866932046043465308469845278786995716095529216447699264943328149084322066889559378355312843813363374145389341070720694619135130999204479849617321001644904431132934318236122823237683996374256377005251542113176377525370365906084314327234425464917374893659385087172639581260955476751466436918067857023838481208547641031051370454790631580227229732214780642308165612917502380016794012305985507870080538250121888431616518603329868869536251869339163163702198544369283784040420303569408405472744836119028239528916846971482777384044181610481299474693650127086613194533055042106936748555786128548584097132642893750689451317699152611986738440854371716265113123235832942109269913295782657385015155616261386849994320832270531412067829418944600313154787006162458184726914041176292332252361024734391083834476624003645122794145592120955834895960754526420530868306640182338304397587776188432549296107364623444649196079345393325878575866376027334660919368946671656322529773270393517216592055443975007094187877965227729510183511562663542602827341181397385193974244614752374405916855913284120451574456944894167646102297136917572425227797893297575542777787991315260157763156194159203136187433932477262138093944070038597922565705350836376714631103326245449279413796574010845477931476691004221091388551445516488481518351391710995349447818160454976898956108388217892815512780983931004935250517686456892933110900039776077900683112650730722919790325706854561499720056683544393063763578146170521599652854673148032653088737436877443337146328893170319337101578904597572276990333054135949906435906173446786344625884640066011712401138454239998344205306941676881983792310364864464476562152582400106773144611967128275334249026892601474499663093068464925497284163470252332676350248468163360900800257025100304671004456576307876573520338647493488705117407631903725040007324200740472133092757137366521371232075408766372940351885625771043886291118041400501976507320095376422433878204197692001255166101483956864115233251288856249076907872467613997733204575638205674254808549264090683396141031805364260603682561138884897765555731014124781147594371500953994362689045600290751012898253480054010574303378305303229622843982396198415873227776519595504072015848112940630722630806614052843153715226136778969033915520385808810770822934994639394249390544565703200474001145713124044022510142083944203511997964558456199299573811652627736763655653214623547868974940126539613851808166612025070791909170500788706435565742495026988443149392190615781621638140877915934117388651515951004435187474000584147362675435540022561544668495763560412909634868950349428770334457936968919564649331880813732195061894629518597017973134917544483268451555329508653473237270371063165842492721711065120533729976070586950000213843171259133185236988440056508523008304192174921421819701432554792012746502640361178111677419353986264901474550211428206182111121616114802859218417192081712122056232200170317794774188752636434244229899010532138024753145027987276702129657227550824504602826486501036035158717745027482625373077303330353270885848819371775331277137389460957017785378037464261690306862469808579840424719693708908434339235412076228273796756775952717049184654933639319816651397834732604351054073893879719143168536910790952895874797965325005926581059561065601233706881287486504122405661102918835245760121404586035466389068130093505561427163591044787021584236892223923335374807873568349998176954630230193469499952171214818466999452772375533473860123646907249652700352452330579363364648455435935882099571315590158759089263143246755912411904909242122009828285320717255990745111847465955549260217296762593862625417177776847749470362399868599296983730199405495073034530599789708718511312204675018840819641622363827629219361740132370908597084337925857082054082186780546246199248063935919742411613092949141555920989418129017790850591657618010589341320139742848221272513759234577364235975847549231405992609995893945731652407816799742564359009237509398176499914978695223878619143921558939337999615204275474264452088327347530899531123195544907376398652545046999814630656323566295046380786532265420529698661215696734774473860211885627522473920014897265247950983597235796727615726172635908983183768572402484827081197530543443101325082496083040395501082730233481901381698262523478551552779818484350740224141688679155983959474446845015084618768682648014388910082436314947042821397298382127580473239909298971402291723715052196485542776344693406139889482644590641801240482737833155043215267084143053284981696085169429498720111453329394020587827065385953042863890619589766355452563980558739458711766237829244996465665613275856272298131838198523622518921834462808097939867142771212463302361340422168263876294479688161772534988617454811166636551792065824627056275203487918532951805273956406097347921855701635207354378141696478274471396150603795598887125596895851989766416973874157199411819829242681473841630522290030397107855088162029403317640928118374609674594380217567800441819429852819396128359369571739428853327280599956570603996768897962444512026720093706764668548266255385852145671003297651451958587073934337468974620991102758617620047346134267381612583494881343872473794996696523662460324314724209712089259908106356797205976161512326631715591084594653707619879719406269182335164574142500942263613365106379478775227903041607765087945434283104069437624599966060045087089519256910280765256540798396507727659439540250456389878357860774914029589942541583892203471529668881562341002593391597396851103114195255752469624443707006997280181665380377022733992039725044562848089784113969937968811378063212640050016750161420394429843628037941601614623745603353181778380336082801710150436362359817054360675342578949237716946543896971825438902726972433236955369313521553811414482095954037802183036419059561428430839674603536172190893447882448142856947478754346363153670328092978860283269751695735573255178229345236611651452845754252722284194040915368201117728560435856982825314037912569446793305175525629210265661554147744617490285619318922833159932130574768071819607990996793057859720299447693201652439812559012339826446889318809465667433197678244792050492789388412611544711926138714266874370676108903821254046560596349850660204041523898511082752467159995712282512177247826240193108334420425029264244801833037208677839090008330485965055234281401716466564485449223027473054123218330247694383562837547896644928024970794462370462130524521634154071291933700808814693782582224943619006737543258160019325187482072588331680709807138831435580137665259806288896084084581320884658682757532319235534538103264316408452873595514522767551047641489882870645265950880249595687125010673100994449414442963223008988587332104980022744520484377075589978786575244984016482427166944388653496870061857315701488694062918159046550446628310808262031907577162866491569023668636970679307447563980174356222203293536702502253268025806003124551740523049574335690581595358988761744669799371060448680703509422107306469439555760117999388924608831183413106860816263317567644121653576363899290732968628808662207727220116061166555313264096764851516750608241019282972749970201410172721104854871657225503574160947255156754835496746219333925609076890529154931515115438525415079552418274765936285368591690590828208241781292069407153011273444723626158516709531694291884947352254343524829810987888764870894747362756101184218581695023381159864795053733416045924015693769126791525252076990160382063963783784868751281946554183110766721188182010170188382319390317041943129754423613085608474748451307781070260870447922720417358347592123822947162725312306946971462013018431244018445893720804215182428319449470353464998249378188478739033659969613692545440335658885060542703405411323120280667746950447844747186086801752239469514481283548232745719549436366368038960980287538283064545226043902995991637826926018576566809081176544909019386792056121373657833612377057357797259451978090280726989070561904367189732587530923134429621912424436540296954518608125485389522004190726294039005225577045552248428232914045693026717840908825847873121825107244085440948138610933199168072200451479815526923510282594681595803312406376988614793829553240551830804340570676983065134907841489318559600746238366292814884115977892051035244370239729623483092630286956379266158639804880974635130132147419597706058589864451021585441346770382166295313622243543647177250282525662281175760359896541349319495866559965335594777325278271694693524572032964774703126920095940318573598159518747958348435656268534580159321016833758917722369984223011156427163136020355384132467388604257734768836194027033785995833385263515664926449723960949927410662493465255366192055844406044528286629911399163064449365726298831529930830633520901821039427514798755664031361760461785462722204072716932483338880831226387171027175572949649331342433543459877849368861126364031721164999933833876727035628225667411309071119097837160993803058924522300665742648731720376729305165648627233068140693562526656009995328743001313234932509975172746917632505174128213462482567096672904269773762373467600815238807629161358624737264793874076236666360646334915949332252724664462079050689230221844526305838204382243415762062538988613965305561118989334200651364720701981483923540294616392803366802517581998160260911578567453789082130703596739732331188185669068146189459351686383764732227236394593146658128514187523899429594328884290706133991184695550964701765831970863889784729934403654142327254891200266937248220563014410490489238548500701205929420455192660664529651226795322004528352639938195054111506980380403292800015596262099620610377331371350793457098670141528917428592787690375899511411862768846914181238578906171430048997961362326979337559916049771036280136731391850848080057098438851707962936335645367050277587644094807910055708761900173557086183140632104713685993683626486411951733170566326277982110702019879193780671615959734063346822322118790040498499923734557724851745665697097661820806393349216559496940306488315317927387773511572373302114561954094252966500680192308070627691342599057056416056056800268956166551303763989184384974468363662399489899756687482760835062719145159430954705348796801418669598899967179077884046456063208572715998354422198231897935566938667289339276753781939343135425912328748949731694462784510686003852628451226337868002181588671894067738128954926658662461251344486998728520954105842103330812441478260411095327471284830525642283917446524745068616174201463188167730260480080124355410128518232652804814756418814018807029040341293818746556346139408240319851882668186659686388548218967319422785024842452138297515136360462471286632955179565552397523867853994926606096188794048813498403463666432018835502721617902903656077176089495443895920404420594823735620997736979913374283027913516453707336609914982359439384786184722925146195504617443966388659158701391414363530202989030079161743314347783394074421125262151566479475109889487926281785976277179229394077267510464574163751685828168352389355470553021971703216696722256824029204010040115012249974262341245103418999031275306714850821114936470742818263610567922068411355999852239225241490062675790809942592426190180300984616179388351101818246874783245880439730504708647086033868796176938364359819741024490916103651441829997186798180309289465410097559780947889579198769382509407637136490076646241238381438354581205172607354480182040196875756047397620763307364380860751716640323715417750752200825477882909115767951467755925090622923081728545108010048325223731339079789137264718945207939320870944398263339010050982371925313205790243395270777335501562887284592043932143714780259415795790282208940592299680518011712951971565833760272201081666138194348468657312764820176900873803763719501483587115300541371824448314154627370830526739189439333031261562422093908790756285209259466135525436014191582787388095362701143858391113240380653235640226516630609095694177842612684125316159811181243111962366799515511886462582653224710313059413173536281118433785106654388334082384950426050147734097680545858837677474627781817964893240601465054316382314409997955028470176973090315829890802746881150996631473969661294704156846439468271137178454719054047310314905420309343641041108579246445491308222485952025728928606610817643549131714902549843654703816199720049844126343407033570274520444336172026468029316380806312699210312547871717327728137236981790243625682688606557528413227251803832332152106694366070708782955209888249138572890889475962781944132915793501941163382822327624609477089847312189864918638016687629249909425899917807501037365276742297508934251735541894805720676276528102563917252356958026116349497492933802536315286189795549442103825293529505353594254364289750815976910918501964000133341696233067999112665759714457569683101498992927655767815072853398723445973997885424511332504373569278162254112712570503977407745762792157125799483690845520451214929514529008502928892960652111605621006790267200531214472233420684320247275407931410624111170175147216453082081199242422084134213457326423256733731553060906037846198006201387044501607972447098347177288670323413550793155379296041881043720516140373510438795608117874574788035248484131727567567088667341937902935923332146139733794570837201952416634233772201521864202713501615898760803318384192204284950046479668889197766685292868098754806489774700797232047587724962064231512218831421031957142021927252323223527997704106840481988457382104172314911364797971698403711978345748770497968681071269598984040048260806278484438820155582102207107117722876958589726559932150791631822536909430522529449250480816465622186907110245204871795319585361137284897062828812826875568449951784433498388229954935772167107124625836209651990986963446782715304527420721268354178064092561596757956744974979994737570577153102057029721935934918457322867542010601192676384358185123029513960931786257973275610149857502981000064134034741917993428933586765190193670052696794162572602352795836217890664522987705572847262455732937179485016390190611240082735438873615181430449080152681973117990315052223253530978956229804464384773599555067072253992646959730511653002217750344165360774244585003074972845563421239258464056544891745796606554144059322958127499230183815870922020829804015886896322496993568206550545476627625724022941462922170180079483784281070190233497494117998836765905016360042013035022525376632333363670386624339318880330600245113339438946612837416980576678543249833449593068494791919497708818201006785381477385024808937475734062979837657221106174943594979761066333021995306885878483916351924445470550268820525716358083657305741111241052364818365100105524470243135236760928391781422988678691246481760725109491478378186297791737172024444942224223184178249803131751840754500144009171283551144697350256303594974259195640537466356492492999770784539286881218246282739459008417038097006396573515317951014172223448110615437584438006834778870093687756525622048897500080234859874226291879584171378392072756664042046226438996798521656177510388073087577690330817236698913894164840682919347187265379309722703753141174180514132045075568860831792066797946456291937066688322172882687791018668372938234246818023768003404304970391807274513231258691395136453386429368968018543105825543825967923075373417979415509395701873491619625912483971234097117683307249456025408231162212577628715213577658796447702695103051092124232745049268249095639780626848674032579999655526202708764568992508422320263123300823882072150424585571085225533779342122372542337769117451036477273099471061358233869128461393080224871186685282504477110434818371748760233773657969397235452016290821024820019310498712457935980237592033512051855859646649415499230380122195938449646093270824930726668315605098247736155604003354163296645716487815202549659857074153192916341062473054286703702273381377513779503185548862851304100373298888281109056965094470846588444506988515841728446392752201092711894075964566556497588158777003940721988057870090612441445246964139499788188686344551452715714150470384520977343757925563812351228231543839642635522286161091045215986894945024820660831455875851994132004505476676089015904802796719861749717821852279621129491363865322327018500051152125109764866041815208656291250215600770852434495597026203926307695930882927236466672241911671918789046271750776632922663012064792262687040385041144753567043025200955304058044539930887287491969247941858873903917420631651090764754088950449374209324314867429257475275371822350689838012140306236593067952521667928846133374667192205605374518654559274211913438634586093334268468703424534389092654710265109613460340008244161106064365205394612640548399023137633183763309655642512130289664026995977353831663086919401275816587417038664326279295649898770061797218334974993753265352223002448883094337739067386525948484351275666765806534725649284748853171976669689392440739810732564796033833022443100743638828337387558046923342888962505698904070420374676538165145132483102303395652605797981175918151821984442585174477585991872872497566027948005299708522800259464248707095308298413259629807714566488378164252557200287707392100088404797044755167060922132687879016089688374554736279863177100110419322517083845356582697716562173864875006264683959387137414283716843838754860263338770952470011244698189604561750536781989698775298499388819062581979304130249480510230370596759786159291199216756156581516290445718686550197036920737307264999317846162078518659026147082119405852735822696087090026609137557547168293046942527961117281744120440716781175454071660428708103670817520463635884222821108526443844516465690417454965756394223442667025598393271270159244451109514340278246599394580559258006268929510377563337153905635573721304217006517004951275146087174307710704062125058504783744227817456603144156529940565532503910119762622603644916629267453739127152655326624069011322269310692514577271461903030948447327338483567289677585493869712350718708473630936210695744075938040110195126033558163312133221544224589361772951383698722062771461414811924822463587434012435948041329707630072297062329592499192418973720435841496250108284688745855046667473415312929987003980537354178948223971676493198860660882084066366024610808019295912346099347251113253980696508242598643801745842450386168260996637938550514704464285077128167700283729328292123688303664737760149709110270047154971817071077493077987000925745287159154496073463619464515361467682009036562346972559150993925826776452371910476218471675574523460255290087835047790431612420434322658403731296442769907902967698651643650705642144238110451224197387792008704862940717875666899603310479848651619716950991086992254596122274858021101199494258713042105068605611823924846487875511589416243198015980556685797513963810787640314350208756420548182634417934266112186693142286478882158195080311555678821090494251369375082233174802187309643622610940760994374551603127592955495016360878554074979041219235689695479194590446628049469110116745113099549537495098306897541684525102472678323521428571513655503287744032030346192670025833819028973156371285556191516034599411815490408106308975713711513329983453660856817218792626328980239818832120335805211113928432360147181153432566530935914926216214627589348446521856539496156469694702172087285844622919995738110553707540424417636007229506430492745808701446255671795662230967120730565875287710270491259097601737522445144664781891367280088390262667700710137323879012454063754914701602563339647587625571514074230434058456416459426904619714019598467869266973520552288299934362641720040063411592999050268569473282820955597707058279772991771304160958232985441197095212653772533363422735864803432407529534666787569777888879319079836634578004949038025406766702139767468502917685510479884618663393201766527312742323212099087241866750744947109341638615022543428957779272008666114450536934580295490593027902854261548384547756016028788141556318202961040853931488326959347147590091221330017298945641379158929838789498532827818731914657566180931169049713005920145196168142997458027221323145464465951459402057266477967975445524885970479391327508195663264632432413572930308914128004618890848990346279825009597002782885705781355448802237210618482949014861347802029945979087794939012984406794265759567096696088181610708022143809537735401916133586201973583949554736574199476153540411880401176234202968883177420888857327451762356078991755608810188434585091521724275634286852967344521336395218681055837944304435426311432778648400666733771107918123312508304495162567581896281814828683536076370706567889497357828629342529913375354109218680390591432442706646160054832339568681344826354881424962606393925309523660630587825054942359096185045397714786770170493279130669083601156393252406551478165967843035054848265144297945864261537710252669531521251398477756191660152083046053245222378105946379684417122012141170307665227775395655348987579753230846293670312467954137290187015558651621259165562060383722659148542531968601604621386345069947697252735854755599879352785399610027615052537202191270129244832709420403667347916527356051917320497805013587815467980811510570016272678645719768994434008633367573051600314131391000495703345088691108153011693648457424561900284339836244027912659837372227306305566694010409025400395959349290322503005378423925283160423732206483121299644353487338964580955905297662377867540047177289655713244897211893732871809413989280249262432788193851588828678891061106803321941843927724638644046308778834644677127937234238678980563437378853944911219447936133268052920021648995344136578254367526781609666428567572137021278448800694530198518545458252009335300588137183050529349083677427002465264688160401221359711901536515123433654346134338792457822676072561842833158872760887521800637173069848718362833613046331277172356895033671101550875140484913290513280578538301106371757871341956552278687072379700092353065897134669801091192481405541791150139228612017017086690830516314901950603692187905106687152697100330703330427779623038204401920961488178826520407038844838572411725772611662430363286753345959632205649841641789984437793207645471086682050919116483823614331156267722435184842115811133145005971131628562139051070477230833465810683894853968599760045372486678492317588380980107891419954551060848719756507025436527108258556955554641112723288436063458388598273492266420337841017439364073918678659978752471529091669316116798803871104739477205824381398371053895052575873944408798239887984548126007668943670069626621949464893775869261142572353276841727510280189619868874293086453992215957211965021564179871893530246678792274684246308282524711067169492205532907815916751242603463375105406236575023043802772935394060497583831132989287083844114603671751673882067928229227821765738101087564315450477218112910888564142637950175720920575878176968317875941433530611101898396863793035937931594335823840987671436214138511111459650068065768852012539121355137475206443751341482693991707033229560769071324445749274546774840648362586248815624944434695337029239042266278598198897068754573856691859578219005085503368570354841937137674244918703110940176973901321368156023105249859409734046596578539244330887572090310994234568380339375545151719269460285429836196014422161989678438686481786918227294439980444685034670033335939179766784413184540601524247036187288030655933497683767188614169672092504795172764576473782038363204101323106630216398367802499666928384436845382064364101835812594755234439856145419046704882756099593307337652445340839245378764438657787260765156673950074848915729551460938324655849401286346346137410389169161103022234070808444455376057809272493249105832130323722252715067767072974725746778117213703897336355186762285962911324256862126465657328579072827637134339837670872766990927933690541768455287546311395221685535766671962264614955006448542259257155947947201136949281023671659000289473475563448315291974061419489593993860591791558648652841942661831536477336695710015594173347870483197326451759822489059106012191579457115146152334901877148226298274553143454325991984055366882258308003769085455959505314427667523978204056646929509256197587304180635531883704043459295345983881283211169624992527248097415825709312483026471130581925854393912927940068572325042775244471606813655213866462078378650012719776688620451521111070576227958259968038480673634020198479925080589880537876321155580323878397231343188758843249178011299900989847883988380384047725546685371163543038277212381884206624255921443531767168614281871775284495306296826453253697323840714053350154007313901577034344906720280557098614654740583432375273780847689973331697323846092147215516822071836922567162317559255624415375463876056269866356071412121109732916982053389237750303749176425654844960022950039400045921798021856849864301495468730092963288365911288775347818047624198885341374160906274487880973833268950352107550473931492073708931673692702879374227540022781122970565014794984923311887905608384858358891206905187264912775724513211064156264431182129680104184184826558443038458783849796441319143351634186164666641238634268553948966009353119245121491150547725378425244435637909651928432109892770700165460586545754463460353765479564316775877893169453827165873700490118670560977121021734889358049826824002280380822870617356499315536841764321470603422457374648594513033588138185181356718333664793317335484855936394797200598521714747383282286396092567649049568165925280035930313550690428827708791262052213997594143488405506074762621064718251092160646654505452243929948296312500466413409608353720576104796425763151718323191112538989761634530098545619697251121638577201189651285369306533559096849659162427799279356559009914628164601819194242334376388330028243761826049673227349072642473216106250173078969432367569418410165749382793864544731206849706003143996576827575148152116541132556290252848544192063630564836822324539791461448276553148833055375604375884273900211359061353087702008233961661582798435139615910916912186617105495667163731793838797428764359268440515135870139095696360174641560505638001179652156534687217720094303263017498695115619175014278819678397461738063478212388686520034887583679077952899523577502841018944862491469834203945625653757027413812943470873907471079072491916263956877769197776406637319465494303202016835048187599548811556081076104311795130473098256908078816019680180857099035410934641710668152242654282148769914016186935960043371805865607170275067633097471445459727231602169903788774871457842438370765302653564897418431205892830223860067753037780068700719805633975871782992147443405584362847137088471943151443907514524109878461041580434987421571523068854273694044477593925602857221165352259749343095864366822944298981412758468501965422076920377222220141310278343547878056966665734554015558013038544185094531264565305223118300799762387718923595281513187240846517186258957366301842995368815437894924758082632440628868155884597522990950511473809753753262861834016569229363717955288427656140584906067418996555820914845811087718213833271996477857015950965080407906188626579409344205701741329594930836906048203099620880552704160556810147973794349997016864177061185049965330930001465236238348158258137868933954001046419878463754629304271239276394969101617414017364010749663848307693954202717576593019232191803522416048184038515398297686693759214668833427380224975736997072506996784189810726883004285419398333779604225920945890910780613039070493998133400285725754203490764641695254994053297253227695202597834418077926767714224107061645483419298686196156838996064444967759804076732099854753398433900094569441638494457944708547912497638670854127829871742442370524144305252312282541962583292911425967676420064097809087898570428073290122219063036307067165391841963535030812581875340796545229619299536529336420171903305631788299018929652211386997009255571892560613726679623926355911814169335478111178281595536560012976352428359883709759059766785122738027430852406646788078716611866265890894219474365433395982119581175435450767959057651042682865770005672129237137334252474107820392602325130419427927043237055165082173543753729066808976176748146523644915077345528501197659813189766554592809638926135357614027836094768787038838833199074192125001023374843738734768552577345875093449691397869412183418908266541977154033850228218081736400699080730698261988191980403650390393114162773743638585642509839495645108473725798150899111979218000781072146040893588395388752224961294497293424678479045747019428420731720511344868511416511558849471232203833947016910170582912510803699758115686620254106711481128722067977115517181950561742274584590451721667298144360393171628605409442594888731722514615633988926893816993809123291346750981844164620174106461244171372615700569632884619285519907211822165382297139480445762034371430234125584178825825314089841498978923669504125258403138678441627465990391012587137470074637814846590332515716766365417556400881865862698653066286285842338540694560616899900200174905349975956056659107725865644872278742778881358448471645805641947863840873572886930115226414738909131997074182072658634115308482839504648600152703932712781734934804158863598533139821138985277829332226492623382570994042488119168393900785548150590424107795384764546928448620984934388670472460347357909254710572556639587628748280552091076346072441585597988728861288961228203293567956002055275357768348734860815146068523769726005225098245470716869764464916325753623580021378517702761851964339295874764919117402488988799831115761116515479907500891687698020557571060287705651083201907700281325570610866526173895436112376354950952361086080018325476054340792581243767374209171620429485155272571172664611052041920220602646319602379650488533923203795863757071319164698599893696748335260590130022874725378080539548524923558927576046896028327437175343037901170315361352181256374708297709022469140525357013794487819953056522210086435914248708278905427709200888358903316428336439674328057252705229464122531957298555890770050075325880552900774286760399625946978857083393752211869976916190701429063764706196920556464250162042919699569615009556110819100320093342215033554493516460080165733914230182831643807651021278000776437345941811387980256913389830230115713154855964623551339037278731813397643805846220982209562698943817267041180866691055298236146668763887616650721924518073096917435841479589369560891510247282434316257407704567340098160068293454121066233717401672519967100127938422043025442183175981948655824098289381495619656540281318139362330740524516765253657648313971651459711977356777601849411395471294685052020425604067110786262383039287219523547932159716188719604107463761199964577911007876078941979888387142518353716957154876331766665514995901498348890518585152242700606704400578620869883713067089235525105750145468141205111525536436953258448546191610746586233752782658965044191993273673485704518717407433482739658449956929467508104127981646225138146226368089288401236296917044686975634661698918829012430771997451753812900907658006006434073472741468130614861035747550732600842555136906671237627231395772436705682278160912957666100475611921488530548242356198953214344845906448102550742167019624892322428159093753001473899777134810996163384449308899906738311235044274875538252663611546753388374799901220075678748808907403159431914169052778058302902959035473482741076097321836721781113969742479588263988266696000264172016305533478384340405199921184729898314383429765892324359016819157171946609516866053303354478173582170583763476535929940171911993721007954428120471448869973680174568999938355829713141703235103867401461191669129930718912351069670639327523562463304780688236200028678278794200393492733952576275064176451220683367231497540824243587865723364876718308999351320109472010344878669801407730393998634789584398447737616607632459428543994149006793973082683536367986662947946473447978128953205477948628177927450806054025937939762793975805523261383915936416222224054479162162692921080474265125950337493203816041345298190544779955060839319353698286121380758145100420344987526150711394247632206125776618434850197215060813571986582652144258914432027001775737709748521927257484352202455100472922637247140413364765655611672906917646301334545601827591771690676021140218382696002866355683805372855383864542396284622923702949252664660792154179966142965712398461941749945080147686802283369704238983199165208927930080773649746253852341332139541234816271368449413956279234579831072285085606381873217917990446475151000688998819486543614443408632999765073058985127729215635799845100501807842593970897509226782632191788073020576064228099054821727522680376799618886314988083590850911556369498597030156768555672361533116789640331771903169804838842827533818349515836035058676698086985075577190882497434471523636656034805845600730123812556417160497094653761615478668488803744102434862484084469400320201765560820762890491308574185621534252410765332118611036929802553232886945307345801823294500716082723980282827179760344430856532697881781998847007171708661997123153189095026555990505786843345715819009084472672708825163348168897789631804808862010619584635969257097182632608285780569988082480335383279966789968857403767340847895500354615271447786989174434693736611329278416930755747695209997439531301924653308157963920853340854618946474621903383862674784145346463849794034180082845255221627970857916626215093598791120338974822583779282549784483620227675810708125043378445690287352541671308531596294022864544453130012284387403817760699116116157668921469131919226816355891473822808732891925549037562665164792177133885078441929924789801307592898395968324432499660956636898338036197951348100394025145461883131608506022351724971318135823205012735139820194732866656541056972228413374699922989358028202065750719720448262270380421044025997221626765892274198415364278432734749386197634635552001389871971092248018776870062050808217905197663942334385154438754835350356606971292384734180328236083442040719247241885272681114173140988873919620099933733207462043262279538564839620837988768998704953598856881590310104570261758090180719701015105080850105367478604399306771448889291442355784978902206467964765234948088460338301919243541327415108113672862184778855809358201077423693248720152468486040167176393064283819291783335475231295165685829679703340381465994061842260622161483374200297272618564354707077946213435166559445858130791237676992368968479047113453537971486254242416417434260240926738028612351244088132564114159418021209103733145699623710314495416547385202820276163776515857208118865974200494331470776721415142358705793574247657123617246439740332691543688400576270508073671858395217569798780672030726998025166333067059050492120909256483054888812352814371035443041178450742541557994430994932939892284778767189454898831728912997791380274080289394629774062022924415052700062759217191443128232218210033445053360843328271169932739591521074030562255268316382178747492078005156070856288530316918172437831830167212606211282408429788967249190300947571174663897387091618238694449743931339906056885099665863613904396402349314439624897871947102657357743957800446710670654179268242956739293638747860232723816871033764654424260026994717017206118543149307658236968470242269393025817039789976838676960542318671663769207145981112270598345561623044363156990896114950403871656260974413961736482564359430088695385015329313411785548379621697962433398125948798970611751171174921798705299152449892346594972446498548090663312424281346066712444666108242162707171829572542789221737028119968584300539988346083592411634295810396737606346484259016027272655345676570011148856614632570154839065877934179992683615491338388031683188118358825813177763267272468072071056649088697488559085152862151673599374690210400997084706117780039346603034974761874724651402597102010882669847541092413832082598636686176243100299096236429806293144859917038728112309007773411001584918002396338320224161884045756312916569032279513152036859278223698675973858146094738794991743344652282176893862963415835149475567660132191036656459771747772589788425338215458828736569664564855667163694025138315464927404379117170728032085401600951720744596399820516337060810000316633650917290436601203246082441752765974496047833169853103593207376968038976350360558808720627819987481730719219255176946500764127980067162161981377629475560275991548062228610272874544022224698204780136797239058902807398990302283496916898576358586737449248528049879782963138252805526922953880414086088073575456375850850861896977332921784523629350627850401004690260767026771331238677869898290635996109405246926050867290782715006883275134916797473220203822459893957958842690171288621000129035469245674992097714313515303411704339224636895577790263086487371182163934928852728655205640377831423042705854602528230138870309740934913986085185529663090871961508120947272288818838723978505636694577634388348614872708679296158772677286651161322192927894139674009166608107427018215488743339233084901990899349255769868738631391326085771677316087118139147146632681350135802801647222197810103732131449329696048107026253222467696753780289486636868086809187382469251206929370749936944520686149416608136931341453623694380132270878148827549553312954107190003813263470236172372839596653275566882565950844410931090318173383215798321258640206173401743561338192543993926551413467907928744844886845108963635196626472951599788999986692434429531044457265379559411271021215155706061616583243667993694208055196298017392323499020639975713798806923179173190476896629457522915388584289058932293822282295757390657462293139313996375439630641700357785575990168666881143497005771262417992418159656798081233563512170768313295293836167298402916187644894894276027905757776654401090229522459707745435815145320141308261469006417452696233380324354782336089048191175500806570108167576475012161691535164090951402356207394173262136177077854646341674209525458958213406398919047529792684709507030049125794816836799938066773164393481636517837180792760286435449176898788825847520892664992681551420899622583263381159438374430108764312313453524148553960966197632454801222477267133033897641588156820378264302775781539673523469149948519521182571815678761150498020666068410828778190572184406381882997291603699661207550016024326460957309164966693470075076235332426379922581252007198355701007385204249867754883359989260551288442460666937624416540015615585224804251643304437516158959215508795003051792498870319029686060291700343120280354437123026129614540204115461797896061760000022138559019818305284270640903017019639672941443980568164172599519793174850307554540060535684707115644912763643401510713715831883040657203462883960279700133510101797332821914096982274864769227502443005020888810925599947544575406131861347807233658770188831569135147087201253206728910742432337898067774310100825637379373634894756476466183762098656244863554341743324901424836324562519832723881688350854819137005026338820173293775917634975806184991532379979556418170345598841290737020287290608936662735484633425370384738319342263389958847111396801422397618757139818855525156576811774365950747062188995504476968710759378667944741741860093900967957892967265366198406988599711357886641090842050920085829628170176261361663316176634210309534132003117275895451146994532209281206729361574760671513906886670186495818169320701880128389476206903421740766864771682507041138527750703560358593169135799884294703037568114709512629696465585754858800459781608010390302314147173434208858074030440510554855705263591922722072546569534609254203831014730369583096629409415143114991671467424981916492806395131516555896763723256058375127639682465291130640612430891990166487333158984073566552638513498262751521288733162409193883140093083436916318425899029693261302122853613761410051268684486411861986032056608183432631048318843966759944839515726539420594751123227675804408341781161330605899049449331296786284442715220115353830066464301131406320803938693518065434205365020769682196375106781736547139396868027196677524954989846894615613387820110924605551984977863336456576550343476027714192368300216761625045510983287847071223874052687496457308098962056909205680882445872610123509222546957186707624463635722996005446616034119291831866371689477514581447213771198986301334017117318975972202560189609536869720619131149068493009457048250335283827942621359131645973879620512977384007671131718052963250309317060615890257358627125975914876710771337934950584707621557035745396729959513566649455848812752524701604754924094407502556841146151690341616913306151371722902660177942448998237929881631068809112086608860996484169268447029052118792271484055356018814604562485100735365931558206978912968897431213381327886694472236975626993437779630780891795596619123416761077135928995934742705672070737992140030526225902110213898945263501413882686641720227270832779807154659656761385616234724115581151567783413858423246516242993830607233276609450540802210281654916152194867966739624379773564940964774466505485716124231919079065794424101350115335380461664322139922279501441512820912860333274548314648443388569587126798737876302087916301306861300499743978513512580655623840503683590457603780809351663033861852639954763212567690500984198503491428752236452338093990767774964478178039502015834963103508890434936961088223254696297039046442258932545824093354624987244427820607087816118743968774227460820735964207036350944173312088505227950058896256491595463721327616346867729695714970645609750416176557877033764854553445676284979146087972408910296506280965283244791847256770712768971632561609933565781314009551719533834070124829330139701631231038671420134802082751878859868570482438285828921213464907427691845911440883461348906642321721825517365771767362579587597266434231619526896066581286387277388489210445749071848949940335470214494996843730750456795651393687410737366031334504622579850359575340573861001535256097172089690782353523297594218074597741373766021602938754503001316361555615852271486177117749284311477764978759358945194284296474755875763253047266846078727271709192902194162891900463480262434594926060243785462090301485365589892500051102745605415337586946029804063141618468204447044154647147669002200600042164954837036174052749366167135312135149640455554356208288018040366819548818658476735994571800968643715998427911080096720553970900400052417103660051566116004505520874690484503584477494866668901871039340354693499087957921021957904347229398921655124756317223013399716249556726337464617408867869555861316113448101698340452759687129259451467809399072197966770894019200816557507595102491308202315345045656811241780937387105435843116100768086497138463409305920651065488011531897408756448572086903536053682140517513175158924677015619308205886395867866917064978343194794154297015389427008608840674587394535176316304576938737155336969441451387667913925021169720762874463619923688487599000421829034485483393135756340910365606825477697978677960826317269144154634668250369965740279679115104539792196040360800255614211283789996802571096191229166708511472570081198011933348960133459875620865987988725777994700182422527577802907688963212575399945847249464420924181275226634691648022955953884983605682187844465347783482332972319636419824843095794771242479747723984085610646069045379578042479940634021861025198270452439523179072292247811040737234318042687647594885284632038572735168538276193552721364610308015579616052068818449139190925091346237620627398253013728055474537822918184665825709979706950233278601988277174099026912104579141529838753627491107389205730331126097139919791134176068435497868058700745264574630362069992513551878947440692186853939198077702610453217251642393094366762256795143584799176669169170096110812430727728840775599919059696894012483192204667532974723034518398734210095849233316462877501931817389792312096532017067449672921721665425932273411768420249051243307017662060298990306490823394884800853942889301026137851599474481038923673886294667760661178704883234287958117356990886914748195974604706349289346934164371096271190281287237022818710061175028128932719025963836546233064120175323719523726004824032370524315797292347798046266731796069176011583329906657785776509021957084019275703320700255950041911330567318634256583028690938233404954254309464059063240049894154285046279657819040342642700573866007958663009611087204215250372403870456215711388294943906940690936150270976268321317668990793060439163260020577265984463496307592742535855666867251610240262163114942777303173491901557771034946316227984734484640668155909031373581505265523761737759172103397833027161773487701243002044597501931601133304133745598790134554747064687200945978952907460657936845598101749147070144811591603621314053964298010801111572107094653558832742648217471105272293630682729926231666664155296477136620800919284017060839930090541053369839722195048798971852683472904866954250253892040928341966218392621347887259884316708484484289118845672460043048380526249137816595293757923905341617896214223486945016741357981706435281636790023635414675650579012440680914053721371342088614725347337081135461524903422318515017042528294242716562002953579148730977788611876438470328888206473958900483540784580735805545840532644003268524853978387652632690233499490464021728267683069608892034181524437779748770567399132638925549468091518389559036006111455272773636616625706365236869877436382986003546536888245906066189293457944178640933801436927630253365396737039206723330381971703024186433240577553361531885695246209406290472958925889580848354918676048526668966961306255132889104017452659412790292954817474184524292681124157628475598373605795184622711332579817376896850867716607908592306678927678213519811348464906066082012023773286265071053170797222021525516872533052790919513821050440078721146115428396844116249222055342935687022942914395878182157736229807133935799440256020083790754675416911149641113408334186780854950313898199865657407062329508863454590339925749942790728123206096952557743189469376950654893130319099848882018288285914774284337269740669991728628947998950314817063405787799537844491094954831336677106329071221449760668067777585861231716354586316913618510236342192646835699665957538517550338326738431227371585855246501380220611949661772783404384826220153101267897113707576678371281077980992120764636491088487135711396254202360190936918641241295377386455132470656720179734931510015613367157852492218542065798319144445140902489694752373705216452392085918221794420575526750459802921628108299453574246221073509699782260217173632796116565495855506990460875498165589061116608385677543214320677190116203180587723508736516330466123515203738618517480624935571973792291812551452278790767618285092783612997720841930509646422948450564451097379501285148963788397583441301138462354743446467385837021349132691791745971399077039148107990943912114903456522545508776741513542032386589981747419643296204899010153757487406096730879298992066079805128318970900395556357667403247433840679040022152086419790714406125638537152230672486569840279092172478068181086774620665995176449483087513189710635497001313161040666779694914125802554832125974847309284450313636905332802455810973820156380896655276613064931589617124297754166152305177812927285328091874195830831126742133398744864295652735775732888337443759596050787807027159490200544530723262956369195880683564471980789601638587700323182085518303875973185546626764842326371108506345918432845013745606165214238879041400762457549389650478623608423443514286436140614266526093818797231726735928228677509958965762533860570938567227009156500343153118146036925441497278013138585607859431922024114967902555145758136741986937732396209342352185178404422267755084333105184726172368911802977053918755517769326142155776455104248721584987121793847497553834165424152031457429684979747162982131081389766460191323186915390611211026257024152605081226711143319123888269275669377695492017285836556584676870556199916395565428146632940419407703976357273480465898666428121859110215034708425036622436463574987888664376132485776802177342996956550238439230706313158735260139671984933786685195434355981621805292859648489512308955028355748890828505967300452125666831099262628601160643229551820358092611776640398291933805713731308258640191576533962318700438678515316941175326317419686266377551834723608008908343176682078715565725187309587849925436132420459451577960451842156978814734460743190251425470084695431957305941666071751914474291764468930319396386924659009785207827308087898064902596062452971119529110861147912782916779822196916925811255220210427336681085958059610969727641778220442862346114042076156986029082140053197648268338579220700621332567750582183860117009096447656744032123948671103578110937862425716297148849078778986502322516459249279550390515955398197989791454717859723336067395247883204595425034231978808695413750770156946783256199574994308114547316339339109141227371168637489026797312070353298850827792004331542062713616495151125380146510941984565836474814933236562144184130699019966798590467883841032249839722741941809712799963741987669387535748082183597158638600960897600266168178735735047151076936986089943025789509147882622861304806739785808207645761633922560903663114389342373394371995208764625379946663759124529611862079808482111482874046236430777286234858076155907423039936457625881597488413128990736096571152714417983782990851636622576364608199764328808838990056942386174545561184223063081293238759976075378699525217546762368399053973489448845639390457775540945722055313613993191240147709052947959504088039607261524783385332171024536569834669333633688059441789371783023884120734277940485177425980633079811780383454564340047345014099162807849121340402810040961907683405062766100303872922021268329424709634312470773937655870147548542991657796749227808184350605977154036240983529713757284962937159210116749536044275158139597264229048406051856219263251319094599822674018812881373789834812000539694345032783606043415336062354514638333293449559864889446560711333256127323940840067512739817494210451136990944272134560272588124349818456904586092480961002690950452899407692373505191755923240332665966271617564893240669894485252050845478258196187159606085919468438664932252020708694769235047726871559769331704240095864906581860005198238930876170918191728586300798490189416915461880252861416695603190739560426699535065289571314947699870167088183928778046342032094658124376074627531373928043149084420270306522267274258245284675795276833999308474504426822853403114797272293123337698626663427104976227023782360995847203555625226408856571569407590186872062322295917365046653052942546911820515637919142382915284606396934462322991452670890748016134480489009795157155862024524459993333243742078317567921984213342732555814234525259427903111860151281442671046000053217031456072474172826630104843698265978936981309849309224821878172452346490934857562167053452407743805556708851231080526716236904456209228530815384418858616951847696215108275121542997028757510958520579055226409594299204380817755622943958719474919778526644137535329273559458721943182278366233269580059558511499464488810112878814633769011545877185217842964490579349256053700273147543246972811638384202095001490949815960388335293041752348276998715331372083353945013737852465770692933340320556356408991643481030628027864024245947230045292167788705638146218060392734334896549873263817398926575366150627820861066578449988152343269020940858042820963048147010510912316359794874072105708602503697928144746443675410354350137972802940200904452650404152085303180539690326830193821255361309640808208707061129330654081812176084086246917491571391476524301714180949525512726225265116005077097533858177655810747668613242009873924412780161175794597182610480522003688319360671187905794352726532728916973741470511904790822184436198204697026014749103355093228510999807801436115086808553902355625016065588174790593676839312783350991036345643871475722201943700992286451464349144414449195708233881239440485062711236275207460328175502776270250135491288077502787270602143090193098236848462540065746304559638894159006953162588026057328275051575014009896807319485015074589135322271899696113598962165046946368255725044597038282073843098798685243852548030092875170353140675119110994750568981494562335151096494656967780727590456052641816187028128650648381734412921264573783094343809888060833685016226605473396453881521945461685737282586490372354306680003007826897550392094460060484257914025431285046825762930297048591822284286923839100904889801819869539608092003700690303724775606129214189977783196258271250753683509443260111078567751236318027431208750038344889074408866360668897844041521870424110151571669552264783842651828514474644571748926301788606966264623212500936487629354078261033109677206154076087926293692522416754396403312404083822511244601947755518373410655766578195122101222246561379782915733671474203829019015449843455800451876064826886704551886611773671841261949871703565266399104456052898665227322780025551762232671949197366681850265432378082565878073202080824312813231500114001768746757681505396557386527734786908213707477435784299506084178081630292549793377242600944866649038492496019093017752836782622895412173628132628292459103928429272664017091287442031307241308622985602745320161449125506296500351496733991512373615043242504114897107985267170661311752184519190020016707599641501598765482401897218610231372181265715865849777914007728309691188008472210238563392761028977066350619236941494277650422949607385402681242173204939835179855625739148337315965629836739435072819439999456509209639439500120945821393286387889773334288888527545820670625783140702634001294325362950593412035065599530887926263863725542063284834432089719840090208947617158758850669053487974187039792464125838745551511151720174336141425127419170695991178004559614650246432568367086832095873610046267122396278300168150764430687841833002797839584011814457219852686208575376289156369933167822974454296200729172678246321732674710773997640066566623586477332600992263363842028599204612182672908369829812768136107099983492969641583214550788392928807505494765001670780292507731795331415828453967619938892599771347285536975251419020528578957494737081911274345320094845582817773717184834596994076468304274425794855976225307983996756613009167245055492918547102781232280004392132846840427311806434805029967248018486146291534794385599693442890018488420361505116678644239221406735882933698625664008810154372408483259301233685884971996542514306882612708079427538701740617996888201079208090439982126220775930682140482188571408553084991157399729404789663924033847975014418214470538730184751037482251526023066078342449116765438182844034402364994900477471016176847590181931700604954908510372828793632706369533309376853956973037533646804839319427371344394289453622525880209376834184416563661797571075929284239292680308109788661064399279742392720389784921494948563543452795587364940549674211491531960129292077864521817854663691863720677272990333003655104733059537263720884580576559749785508477464172586394956204204855543880397648124033236060923533917002910736781720336571329240004562955937770108842562775506807742875582259956953741222976839549804155860758508480576103518200932304922418761517402832046571639562758748853696560645992424907194378496772083730664492922210556237565660794196725423751413671578550759152015698313518920352079771592126050564438447250596386515502578247258940433254030222352889699492586895187784321593795260378382335607422066078119094006285143597855968349437495871125770275765904416156145044684704932781820210240712637860633273817659200270417772622889190165967611437429415581845057982922137743840517423762456882503013927631872865831565177989488890305318017606569396908555323525147649047953455618835484575287189426323187117456671720049616084878685191546176507229859941116278224803164786502587248960025727268372975913979335631153785663234135472658522959667425750264374980767733588448754645574718468343645226125380783673722449517331655721538406389755016545374117842951862974497979145917368713333599359774167126800662044928220764371957442934841809931477707778113474808489680305673941992592880712070530707902345282939859421149194935362577643636943670025590293753049461822929125434952297961270736911165053108327452534797757760771140232414285459499698801616422574920128106609379291154426441675221149436336612888347734509015575017954809078379563503475033025282450026362312222113583077254698624872181370617136815392242173599144615453297173307840114908175116921232779341899127145148252788687780783581249921542223933024163627356070405771314326172736412041310726175187925858124235116752222631854419868141721529723632289817170029603889351498568130635187127773105593361974516564847782194485261098729638519834465183860983454859090713316242735877704709666299410584255095107973468249666722725184284984115247205537671685107875325225196878977873497765009190652780403722409846887425249212894174755368121362009436064339842399957097499792018110329335864416016343204197609826371819636085620863615463819163791527766171027518489634089321849864650083871657496664368939968999861767460498685967838541666982373815179590845397808525045666020418163650673769201824402078199668610293051736245233558198712593254821052238728556485481882607654619597741796054449667032360604682689841044447381015429458054094853926756819655735329187913667829690900291654202969491774880967072171352288355776490849147950313932954767460836367408580506358664231607043769902374200086596415886674956732621435731866606758905456869799493142235999634077824595090386423553295078732796490109359275889173683107271898878903307393120806400800733064844653455603074824334153548488966932225192701737657715937906654592861199406527801018344141582795677824290251815430447995551820279703320775195996160697767358529843361236262274925891513900731708706466708681012406323577091445421073261697439529651468236837558105437157162510834049257423919658664684853281010310751908206928324938969325637825155042294723945926015026372026742698030779897641237541462987397863135469867983003921547905745679359972843456414156641670482412442247587364586934427439814240996087809694960041076339814800828754913572565667087649002075443159105354197681287404969351195298738472565749815293509917108682403154104546641134245016481451945303790297604334914374861132040576049335025207958295258805304855117270565309131625246948899219332264752821485599416668812404510210584050739814951693035006976547379070922362515472232669361405007862086807387515458726672036229623954410680737294811128682487255073960387743316293978122466708589543403967449416093939910237394390259704172355210008249895138874400451402480899301757604236369184225067411753868984673058647283788560356167854627485448937904657010529101425034666279402514758913930247337162690703858636260146596619345323998447992893569356044186448091868385665004096799234520675391220836088573238675406189111135818248047685433891298430988037313020037749410785050649566272512070687027705259473930295675124263973312414493131873666061978943064322344921949092121687308493851713493452532912496188081306167935664494062515053097948892016058334856213793244420983234094644631541791754947265291109807450659738200018637412836304822684808437348134935260936166529960713581373790175398985499768320807808396060650536938503667304929760037284682724809852181347633546189304078219537470192823755688720804300326971076916737711748349858671632576824367594300846544606687190288605981713118211968187129607660179348155523311256191231312177490606252913363296021012255908270000988094718352536014109986530920413306387514993990563208694272349087465405920475381993958316632382689363367933598843369384047309741843202027903267072627520357578557213388089000357405390656608632078321386340938191650057961290333870440099184787662314634932935511881371513628892693440952343530279469790953375031920412272267570685121980069193673838002083404920784635554345566763156245802556244147825481739058321880623080601572027821731221756627356671721587776380412452642262591291984972167063458225127391539151069027183385551257201153975713757874135961576412389655926598213994051731793010052371925333839357596801728042516695046537260823016728562250201615229599087412910072455399358270251964629121895318628351646339732446219239305818818585659755793785968025452760053203483067751842267022970903361161628226811292602764839618506644666321706129386294003258138217007863954566874766850473001042539610014887630998999388065826201292243962484208859949991936542905226374319971216406870794156133821447892504450220427781971359481617733066268102636556203532950446881514102866138021254109804920701127482598522755027074933529561925541986835832235122823393061224326751497633154614059744059252042632371620035725824396878851747625707349359203755010290969614132355305483147465999631442766935272845918500391782429113147836193205802448728010706763788600427194433389377392203265312408232470326564585606394117275327673212700011221946675361317780993269224873486245470805690212375700908556509227137673961519791270131609540606486922718691280307280391811872127617255086772365808636191840978624017561746610037721092811235368258927521473741660407942154326741082262538743303582382689090933131919706603342967447260609496494947102123567804095774320841081064555307118800678080946828857844865205787445180422634047207379385500339142675781518908133995375720886576953233056362184629694115895049520857386011492496646742319721665490228812864456537734766195632980491370821556587689139216554306044791021249605720578697848211645021836035902789411767060874259877925183834945939262738154519707606294295103359970631513490323123504374720470835866294646104648029815974305064597042101454201380645618577582667563854204592163141208472394307950975676386326926184426249663240409899734633676260761590022214324355666988223705720972260614611061298911726140476219771639834455758893902360166343965009617011127154442887841151041874405394095835182091423955214750786229846533315147575557175901728746664763532460667725842231134458728910287718240909448472705837996932532057341774214305248702281735652407931902840515347418968973811552850253777922690996760778085288588303258241807328183411552038031424267508997659541447432178265539177754621035123480310350091722380586687515431036548190704757974639383753499240231923597232346472098435503895098937392165764652553017307038552909172503502363138903942664293449202295583537507292151532322335701502835506191627170171415174509862585592437946360496554447591985884196060858438744569469279651398036044932956270856994317115836772485266944391644675439781272917255300580240168759892808326403223414507306211505056142680712013126728553204459698737250397082069577338913510710764665332782315071155122009723420529381830264210968172671008196377512101364703320711078946434771180040677586690405135219089860997115160415681425114368119508405338588315030346185968942786405964675737119998188684598049031371250654969022886814592759338611847387948033587789143313847640298000597647078160905600463137834345599969627886083171225104186585942916594546591321613579584050221424948085033482652895011185566838126933988923402101570406263127575521215744940780785770599630083088150192642140385470045211163243568434631562591000286451627569982786518981833972770414251263247727850341409056280840752734660586029031469071885348011079677959268691878761392921491968025884788621121614703179101453436840494854043346393128751426937371620105084566954382082618077870206314355380371618655085719395953850403744144703452750737486725202527701658616377696849869946752955631459127949030386042780581682784907805035527686359212643113614080480185332419038142755743204519516703100429058611921154424137092188636297454117509288616642817787323609745032925308258989670627256376833804713399837265453557840490987293902630449755702241579682308256604610163018888691889577162035755365885081638118722707596195907185543944466072744368695403458706324299404988702713311545788844158725996003534369241662311400653345927262838479774111168420698847393571231603033863447953544338010446597230316591303043154338174491154844331948496202010193012096911517849929427282600350538806322892166394324819794470724395182286702199820205239409755726872810924525790883526585460595362493230328393221820800695954744373499577193345071714603822896826188763223286480064208578802649107645871609268601784608714263118657372906317596842909002970729088195065450233011093855285833339225845678670986263057817115759542112169268804727596517579515456960911534559012291341238769500602966484069137354800457791545195759517616216542755545493000601998647120032147772297899296969914965309241396087867255241156792778875645564116079312490603647738637135153204189539756539808838450137690162772947092320728106587730434393760870665080053515536077678043314693381026390857634049084870880917943425087156941929533682806477692013494127731229945905523003842226104296048467100276099734684058671423878771332369183774855451569953726265921788210861797063465947293224434108598347054407128084666683877180133434684261086752535007472851192400686683306694247306056785950534971435546237196692731031237906239630263266589727225064481196960731367947005904671345344998144124051551931335678300162091491189555340987918896642110729866695744555630477145362997158365627041213433041336916895420839950717451122480540834839689498371143952529188913150737495667505638358981636762751877389843217602671947355336466286896174466251917707175725527934265774612491774368313531252375313462268132648121043979183021204456148278897054162332022107814397345073598130900015448831181147120814303395742782130262977169736133141261080304828527004210713373342520027296708467892598172687466421533380600445325180717826612323363186786814410215173933120006921211650351309732966099867854184882978712131291461193599273355959509705646828284890833404972471643639566008398633774101355827019007315033099980569930133129444425041883751722012981368546795032985615378996140552264187032985393116383194823484647587449896869042199076753643965303282888711298615389928153626461649892303312666320113815614727048914724891726087961132923574549720118708938636995735577287153624520279581445063908926024717754457769739944195021444190100121198742359134304755814101441974069203346310056322385037077218452211254351912986591023930250941581214017288253210172642780498428895384545934796776542500449484717826785505792716417317029981001074692661369969909632712524520036455728601837957648053021211175096528581166106007572982813726608314503527766918477938538483390614804509619077698874664498824387852307560918080403143802755581436476672411966099426995527887373629940959677390524222499788812117573279834127845504261114493178834057606878350121366382805374012911625673504430761432587978520121231700204306846933406612097319515730476712860335178628303046173440332746352440900846128406032971639406751080196652685438108764723657867900653870423047195415123440298587598258077396748764691836899534139949396258132501548235239217830533631704693988484452866139359137076921383492241983745448206943298148433108902980161121180299158476144800656362664746918480999217197863472593815234079727991699617522850580279148151310360729043265394118831913719807651025425214434521050752297610999224887681772283784490705560710389529569870395194221152555060002486493716088176998432973291781465681375061362684122025819928437986527794119965874931683737931988710024130118971031236382834045846889121997466083771552128172089834605174003740498959888603591701034876858151857865501908557310826889794388128370774401208521791401330385307478214243291688115577405248872889595607828295836267802374941434960666969935261051071399535289429884781169047622424088805493080934001271724650563297767452758216222620123321533361074834006561904458757492077969830817018428394874251556678909260779769886036304593551583820508944225396745143570612011378373447514633993756649758501739503082420328252523865185309863465533503356113788467509274652817196256393872559714426335759028829765990685162656368788279592977591640328755761671270427256767054683421321814217286613533169055156620320042953321167419287052517444165802117332938071780567540520107433754205934633393131722074232951807250223208895790917155049859142489151451628232069746138484397035908935661324174850533662685365176396397071980772771028417894273448932797075476871061474876997964459457330673272698011822871893836703075993919731634144690357005785099763825718307197954696092482632352233126382710198234222883701599840882351110211322041660944999934647135881005533142480809523175958178349835899270878151589287894607172101893840180967621529439262861526075605733242501010393343953463577866037837774919765483875972145563467438086223038064519611014917917573401631581154163458900627540733479889751372816273320228865131682086363918207366624581196610867109142941762414824413882354962700538261317175415590315522008016621753961653433409427924911916501572975758263893814827424268825882122634932404762882981306711666450468743588347673284488508120904117106127201300107910617607515830502934487849249397926906248094998454930239046320457890219988851508084021793417287666324657056217140824890760134834016721910385145414319197758695760510496457721145496770295948240384800853821314776941280284826665650044379698882439657107376248519175743050601444663602588761391230994224519048762634135487986216736806089334646048648211507006109888426473035175861144083603279821823918808917168144899513297469389964028161333235683883728716357072026671427401946665552499278799933673432697693316997069648955216927736865651979191369377689667950626388184784643478738507328188928889663672889965796043272775912410655463458933285435101752911847127383546147126648497317972946938721822929064966761737956047886615349581284979649086779677527067093650827453883750948557089076623576224939650407511574525274433016229446139053127134074392077391541561651408869783160268844131121165345415527053680164314744630693110246448678861612156425939835421433459750762482082812555026622606198479096515513106371190048995971701805606516235958651010383818171813425592023558007075821938265327281124932318863355280977876629846113320583155122762666018836719578203893961439052777610791946473974415982483000251100394507492540420663434977752927289142968573904389279363824281090704285171404924544362406703197041658213752640350191172933530747074165071724666595535216978945803811612782531091207543622313910038524340214573683535961641409856087671162659193367844263670608627649031229716799097325704785964555982092938637849431011973843163472346869660177430434153508333254296521332400754810342445824217595298575482398402179576020760963500415994706272990871454982219255405018201694523541374170923974086272000073887951401517634467035094929778145300057972680729345976276191251732321109700370299556528099391744977740860761825501678691090147142359204093660137283019896872359966983689241939960601305034239686232088279944234714627773429119506928826401440329755997477822164574620344573206189075290124645422761591711193637661037292884479705176109759475269572751784614797410436792109203938627313843600825277168431404272843467493062344637985906723440902384037517808925063540209385914069054011074141926894436046323873952917795718553248450274831634587013932733787336022447795093595839712845720244740348811603008192902352884464968205665948271538847981188781080565724334096181173290608603495929267737996390792836379582733444772882829732057815509973253119120612160081538267948779856569174656112527414814295105532392761629262615564707827320946225354125358023109173774506721995626650521976406208001173348405127724537343915152733792083898557401345555493517871557311735547312247141977594417630352842024829027473704746219839394669348503250599329169748585124176796956775572813887955685865160447912119297719702127717971906288962973962927775105900397055319068231287461796010934819714542908956969815632504415988622003227122961117325975853985206295478574565087820718510803535899705876242926293459596129027207900592089940190811903312319897123035593064429202868720479106596600938880638189669409393224704159091824476790478419109436041668270269590161454202027966781044926337091012756003175813231435824740547749838437578084086165387073114237865693640588944587296546510840105236112647018904651702376388972563621222478064623338027914927636478864242758106046890953501040349812732565515491505981695900798387826458990457492860641595746065197693008047884909109298899120662497252673018065140630931224348598344575823835367783705538310976798941427825821697948806391958835664683513987415445251688954993908822467447922916614251327377467703460758608154612520880631776347346797383597883830321172581882199868140848761318032245543827029320306095647383198772099626792982243651742318251018718469890002718921173857481658341025246770175094789665205758296635728854820666544758049448410803412732094812024522812411895398127926707551255514413392422933720928536657798499636619577674312450797570080947897867903442593386847913862415257550134392883340348983841721202285450825778798149727019513054380370955231448413986951278651097917321174777597551916542090511796761674017998381430810744155243211478135523512763775550891535949182703303006042767602710510892260273555534988090982900626799197743793022298120474379595242952968297688236420296142763794532448756086151968624688384198517052431025279885597942921928217697575746493765573333494059884632940154374295000777103747551026340244477813961444582047652182089210390928521434258800705088872587821408418930831430641706965808324858327118586051181205531161501283409125934356240509579672701895558955123411522870106368163172133076817804502796038703625593032897759519407194393188073020320215408924812101792452962025672583369565334539604634198338817945467182036123699541586857416420134231632298865773542678125646201569662594913760576266278527781787285263246345129175397355194308409348707080318124899713359482542494706982228314106706236948795376340323861843034149184468275783920206927791391107806832647354542831463450436198933755542550938064758569042251036751821824751481390123274252987358148715352649619922596096229828202418142500722739964869033644642794369409907295286871000954448655302077818658663001734734395690907710138900311931485029532877203129738543789269109222516645148990474824256065557454675634811551826598451594887739705783309242057457266510846635813405698443359225881788029228143183838879299993725892550944825149052957858378838225471956315910964906854395393396176263165989520834636980890848707062894569709096149990307371290417254835883415349182824373647740312006078530703257915846565285019166973126648762985826476374338511054564225429630293289828075219176052112439870414809482079524068470108939107756933965593375831431523480911217643683147703656987619719889336856426550096372598239632751869725569062382193356977052258788197729347903054394671795337026544196355822139394741796612327798215423989664596444362092891982023386754301554315856492669716689229629171990132153134271777661224093032284784154357095388570077356811699425747875927495921277064328056281205543499892045816997697242643809662543917340909592373860619363049362526750295902590398274051105812685267573040001257737398125330202208286948221735152204110381043921710667998486237395262293744776234828710397845456851837136428040803450677621841521622123291003119237370455141532663567519651888083224024976646435576742679377702598557093246823003646274300363103965051714598732433809419222004312622048145818290613863347932635706582137713349084405779607439165564271984467409194582950109705103996502591505622196310230002953577904668288985488962093428090480018482217923660560822953088044143851548233182391074453809996366837197117495794880052446027616845517608693684237631408042227744276908218921969535557099815599247191610391166793499389096228670284440530027333930584293885663863882418855069216514747266290216290255404630438714588701561576790891276242337096740308644561444764540491287583626876249751074930867470445519311515401974085919672689282697310610154189365724521552586555928687916105942532304720952514014980830950525335286020504630771517562598775124978074713820133452893817732111722782641463697258101420121873559609178487387825688010185778435488920948309586828372816762588199478660045677326011145223766162685978604182659701037184470129470704603648235923171629296390160959867195263071994558832278873698083850203180910234401378281560742560692339119586077607111792534855735609096397618733736709974856245318990884006712787130152660828161641495746730914932325975037061348069753527105999026882670138276806271340566697873890656048162547214228880564852810916479857295191493018382980433445277596184053352323962670987086962434359490465793373199819419723485353616089190110335576956386123510632679064552983361988453852319454895887464971936231922061806115183900796134765299743915971247626816415953228537773282482036745004531987884472492116319379155477336784716517785007285367202878844279988206301642645049746570830970178244329875991853591659742647510385728770415735949875251355256120055847594599995873717605823211042089339071591486616231653300177115110413067640108091441115848094620462569412137406646538942366989307401914156893845676376540571410568965215142842437684750103315709613611607488978555564641758710448483945451999586662206107548934664433852687875765298230140733118348198632480867041581456733646253831595693021508351574711347324918253853131478544737385185071434798014758015569179284372080180696363798705375833262774330843592859626133815397584636620702113736027406431107425119123964974944656720317669095544962184193493252887529277222343590214280131094077301292064538897300148412156157018094311725565875706322070150229948755438856151557543797452257850535876553392625806767816380060400672333611329351084570894344135416547914034597240463700593466750130124269891803409951392441289083713588889965816470333625479126760646930047560126161004695514716093378986976209758150927899574693298411715687094261267827266900821528600924963067063986125989085641218153554997855708234361643679574896130792649616464995329805710953657367054248152869004725028631878250579063067827499637280433868111912220919406348085481506900763279235787700113529469509888907161056802945801468602623081158501343423513066777283128222957182121796019792065594206142506999432165531477326321966184202160184600786285267343124599315414397406088890900363047140965818151309731714819258342967140090490188305119179477807315722752301186203000191998971700020549267355797067772704329943124694807762400339381265060872787483923032863345609122469596549606162416135555384615004847307641359781546832136585711311674346671626651728518744638591876682515614450242725959470266465300641055241983083858103646143401804361466241510756512920701003666909861083004932434917233359053778293968829334026648511882112771960810453218650514434970756882563563983167191522207566211079681217774326303218195950344976076368264876845629545758837297520451746405734795533151853775849262869511283181403404889209133786808370017144719549073453106292688918229832598661676778966049981261634264751392942543741766562054507349803524312453104434241992039644973216904280692445373687942323670550114030558861491432470099633896426637998272383819216779407824216255893568617120856133725036312631349231162001170762979943057992121230991439161217581395208747974623328870448636472562460624704552202217297963053947358319817723129815633809575048741721136710536460429475880992024101631406597516911841423525059659207223763288158948005477271008179174928430880664834232926405452181240734561866787699730780494478028320673459438781687513493593941150426408219727229610876323070866402675685423603577146022535634318083711554014822630279881538287898748446823441859290413966585574694064195719167652738175183490415286637183854585643346767619038824383774581478284665084549336860163550761021586112320109637282323729670257248942973695652040709315002661302138153028646028688482138730472834978107163033424776966248115833060625385298510343126157063020739440908296427829471120323337035619211907039124060512962605695462603105245515383434104902127008335789724489758747158226647404151433208504335756183669408363444466246127626710572392400156965821613701802518668390276788638960906260520064855189230397720408774801320057614779379876856468520847612760749461134196406932851471345749942814006781379004452485945497094567998715873902558381518724255243318692963703235595604545362035695472637572513901171633485172993246042662584359940605745553779780363393519791283501118293194809354400279266693616567050209065539786381889319447207717319106463764854731206593374303294859145240586541390786126878251544638899604027000668681012340286411649784902691681379913436024918972438264502133516929924355065291138586388805881382753037263359071962180391131365520468893764925319584493826332949107486514125637297447150159090379814039643640467898402530373887764509847438342817508206029559255479250669819260320255788610668402224064884050520847731800704429448334664527787796576880306333275625547496190139707357859363451019878195858577911158022852945329747162900552487022149654772024288972400227872757068263022263526100662517923454853227758483583296661063895863693602930822103363965132310402355484692408855881185648139595173586561486462317586491745355620154684986798678454477863995932261249605290927955529789004307855808021938016549687872692241276945356690027205380043483846955338118647303276024770640308144607345800868340132960549230601435184507596373426215070731230646666943776770470957349584318139510536768383749650616500397908082366416977013792855674373569023591651663977819306196681323061764107087237717806450785157719798301875029338113141157045532253666092077058217336542114836072787062210509201437403304978274392138292919667183623743352635268728052332481577441474508953880045100221084178275355474189334679701080114119991784124962551504738461483818281338546919486596192945947977399718237356965328447825758319748389878713101348237940027000914130558843708111220419215261268322148717014221489486377369282224335804133729291378246155481749697020616623701808520903174699022257416817946099354893644708433581287083062436382734209679681094908741370019999755144187892422581191677188679828602618818486233534496899032953822658721940810022239933176651834659459203290131571307057382415115789953350496755383020797931206591847663101621104203054900178648122096390030837955784596629774077877152079954959652468084995464880001547138731204556126934022067216422508091294560564568276298805737577515118608887679617210983420380017149572027911946141162328628127011744986546963451234937195054781643052630672821716123656163809401770689862505043818817750672263368924572936060891218670070934619645738651635996722389953426236679094827589663323831713085691181595796098188217591109854928200843806807836671783589688554229122656760098614988206236234024184710824272378552338841944014771315287989592893326959511565260202943201631832575838795788373937905646334423749472950608840636380624026349068024560209192978704304653290348003713766604514178915172078661627383329264768791464716277991318418172085294458853049057110562464494800781003750629965864261182136519960187202215875086912807718155335381203364243904700015011624123972383266309674746623212722539048329029076182810852733453584705685347178447023540072106120213933073874710401880204099439052521928570769751962850624342817864259340448466504935332165067986251448356658738742027737733292806924061317445628700278217316078327258016826781771195190116198894206122666924226323019484637053393388232552721336315827553361338364291540219110460943633813131243109402404697448134604318428197721123642007395915125788736073640808166022913009173118565745742283583859822329588787940329476729921515940373891998515726390528271720187796082652332099010423544754471847051025497750558242179403313831120888009449634017242072964683984810872091627853884395553953902573890639488932359067952083067655024046817755047976357475582211054335564466611779762584199955044506969214580312577842291659088281006010425593228945319146315390849209324505270949707955334939991280504787678603129690258437358400810855914210253856910985642762924110035191489965150816862056785875526212890574895633071800467348947600171040600396210575928945906199067467500193765792666753179081309533183969520654982402969221233858226064107167380440116638428340582259939443568304131645642337019421650335484798780618988993442350019642468082861006854905714020646711763075499486852046870408915732531583324294470603361187870152503760385697599093653686112605635745231815726688316022859468455522702380064000737060190306240316028736873375244177010076377764474206180346424174114784794041876845266628635904063839924994446043268865297451346177031287716176033404998057649826082474643460886177438303792778185843293585250385239992339021724376469134687877768263528126441120641102892820553576012236551577122423947848710468084864718379659561672844614488652594870862527408596248167847373014725324588245366425522415299284948707168874956256888465300762184264966622100890178352086262883779640718742309103529563623757458006080522853523635110300894103363500181166238673623463925929795704737285646620189729015183440654562919971887386883622605190918106902509238175550246114863144036684081835089046153179232539789512714342320655176848988864394543125854504683872940996159098401126388152765686856759932656998444400154335544031234544585049834984328940878699983984357836355337332819297137323812580509883554042687672922331150466446972535464830744300512195562406633073365356682582642130209272745021494065725340473839796005822019049814722869431784421423199937532863348100417028219497348035028534995204238188398888801421496476874475453213421311140965432093963813016171599062072762067199004343503366238302375192142019414982768253597889030518103607082034214571380295690520337457339664020821508538211323860543807791558147683430107516739642436459286937457027718332259149917389359861376699384223988141354000096302568044508302315009309490450449334289220222546265819274647408754818699193252792060109379013685966980740641694346198234174230058815560125640131125845043152821018237494110389319105487455034313734732796881895268459914536001021919646271958862561463412362223656493280831504957499859763365803269198125855732126898625339649063402760710425140989859591293217102168490915213469211267832203229496739563051277268597405193474018560427515675871100565047725496444309978793282932226391438999601280302171281304467487070549976853831177533184417787187642567572365699054999634091518153056981387283452311748361865100363238316656765654176053368715044496085152646114507408161114772659579390574284283903245763896174208011853233603951166112014756524056454637447402779007851827447945657020784414309385779160210448785013144537194374387473485856590290252519846674112489281498944856343606298203617535162607551536049105988398360626507184755241955139913916229653444519205907135422427691145252927887436451747268882873710913727017499743159080693409274269310285375998895620943319398735679280516345531801639026013463961600680947118679347404692951690708243191637689670009193118592204545890738147973236352236114512181594043866494367125452793076181955240258643995235704822821608196542261966197001871701573164033947963039954186388561813239695093477974803920352388671172283963814792378584656449000546593814867700376021622619143284038439170362170989693366704332873839015991521672991208242030260456346998713348473103482848850011607850452672489944643012902238391403296728240434758212151756646041322866664324322585077352997845079129401361060742704528712935237810159733833118881567019866350060187230687504171059013395131570175813040040975989046185684589926122359652191549318754060146182994618630425425363378226444293598853604574942523028040631192485929492236253963771812642043512372880410329110536059117991613218460172745494556540474762618205061286708243431447221119263262132159201444859252541369115225364568859205455828450488760899429977564016240345090149684374561944999719524523937227800449344571133486548206372380185316650303025316682828977161080918438311153378494226267054045294759607656763572278952815925944380653126573354730691274265875737119502556554998709087102877174281153335918909622819512763013958266085689148674340546139797339650624882112562283038696594229960536069430575895711275095882339526646357651917344082517192828965253756422581928922862366627456422686040086844822685602770028140539324523988938207022585953153892240938230970955939909437732542584367967832946671978946516625204153007570604799166089263565329622243092566564050699913657131534489571018140499737998344270276132854481234927605224566975702351193990301038369952688847761187206856217192665032840594597213403740980617737937330497814613041331120330025050297952819723096711882329607439081940426445838338707656685127333057426109629086096162309168588171527523594635880296226755273348526237190094595317958872386042247817679764378472395576517440939252106688277332848272159361956464925883737751108661897177791426090018141470476747071590290314835330428294344404072766405507018913064713445281990692611860302278759164111277366795645993492774033337589901364793861641993454641920219885730494705410696000349592868737259052807683284286539028739491423032710415260952126813393055212508468973584553095471090084828683564542367133245661189551131676759681531890957046062715043480731523217086187834958748817414949839295825466090187227074966916129711205583432446016496599057970256824971603046579712729024305802398811767946718683176212760195620782998765278524858732293943953647591820799183893406828510015054614857237391880088853373355814539161761896811239883695837274338759400829654289174047789744742692325278146489908776536749689582019055352451099194034774215626044840485308735499118216490707424144235632227966662954660870902070410389355482387137092274936483513381079395096506310590552263474607122648274653786876131057761645952150484427403218315374071136569180855871331372615052603315754278366309600626235285606305785276744233844664000904403028075858154167253094632547122572702777057080878931397344321408182279057548593248982830311452124524797716935900377539531610655060106044908368808069474824756807408722488614910146972226621314526937448839259369568428537185509913976034746510445077617255884208954668225278439204650395155568534198130610047928165970759995308971847086614745267287988029370526361679289555475366274049509940029365813814615660643889430222955518031625060301579375310458877642807600056825870685113581715255816800525598996842666428025341914086782584098814555412007366445843893319120038606001139034610063081778451223580324911887515441048318122489020419297860719616875704546202256226476883952379196938220921638245665043862999709393554355589295739340513088291465946959997632370740743365314703140862391581833056941063387846940935255895289883390209177263505890905072886709101874118637319759346552287992832728837852898351977551032052551643616354796557468421591964611133940966574953281165091543230850221511761421360479778922636267875673862233339391391302602351193625639424124210925572764013133968877355699741731835647337637667446719435675560056114552111493700049321994923031399841824902751697594859642787565237308768744049285727726852507959975534686227650389266621863888994127205667610735902127983711360470486474358510569767383447617597803620780766988247756631888073298231410183035879041944394506504639167651051543802943688452323587234938339339364676668119745834782027914952343928739755908630230208773817739797781418305219143294186830115154688941263310137690062320985208250049714340776062462937568843581404772126815912448559359521969158956351815860504043829634331071624129242897044108446179180048417530444162393348011333092142957433982139063976495275102943343615705646111780241293695267494614483538824161816969346883356540327816929658194661193704666537734446655310624711025072688143263900578403860491195582629476389248944353969281994346876104147024998108699446626361222300759591783326858625932626561750954613215524618965053171122758476586322721908802623209241401243803002134085506480871470662147334814647628198390483924447980273736565640466059260710997474807309965010204978060548758773786574145275600484058895910305110574160269764234272215433826230622468266601353970981181097398641414905858525149607199849861871835002433127852664433201416223080586859839682675072956588358540059984367101976516702347917039435333494107021640368609239883964894433115474776619296651914513167544724089587446831325907187712190362784979951632389986297600365644378522026827509990844147053510527608618846224593519147332437870333786231586597992910981971593103900459859838910826615086632232164498032599412423010837414737154656520116920222746546224181980698922064141483765587043360525860187137206460959506001737489776494139736568957411029770606917960528129862673891597565321822754774299444753006333185083633393342149588611654468791137336365818390602187244548020609314957762573342965930783924248760686810698909296707423294749701086173382397009346845438694687432789830024677664089772809379650653207360788403366848747636401045432015150973594670530849142177415945601518349971417710416618961889621150946523715506234889292572003841889619239703684939903825580432638855434652966319490706374872116693816952434347865671436138171076808839968905231629005634861322873273014260121410885502859989053541005953293246885179639148714772372732158223859272071629659339087023947681536515605010692292594233096209157340902250003978801343334261595366520093459734238517616306785455676805155907519598020065146626043349642757950073377841601491022392826688345537314370779682301564379006778059701861646548790936078684424349345913165603401454103234121182718263990803251832567234821234558081257982380606284647283425501835347988329410673218774039294562412517708802013896365198292813433375085024007832591915936777038362975849528045584067828673625699392754868154876545187914018167449676962892011412539626230728741702405604451444027860590607951704978826458866574535909117953175811600934582272981261689945574654368902528480964763446566567189440650477026412278030041426716502952262422077757392476974828893247737759548247794183879548331747003914734949480067463677843735402833398420476048944470416167765711869703710462463594582687704721876244405013845029005194959192106927531287412884656274624865238992760705792842894307444225744210243672174687487975928807444916642427162939529656236331159037079752478991484150399776524279577646865418042967702164640416728601173582718113930220239163051891347933737841929658764818247063260969813818947402949933833972897731630278069135932730417162209642259527443191065483163239155130940992579611635239701787398509973676965985461150624195310089946326852151078838436604932007561931786697390870741446048630167137181198289032671058020149208247729034193563357587305487960828410606630991932074186288702130500588051339212909314528769398653435329640439177443157618253091758557707816428275016108243011942318455761170364965030026259041035062172355374166283988725870680631399283862771259494388277889915006542729486920676883514814575534616754509116688211449831550732341786370356500904641817836775977239311608263137727236853273707799082690060655150976104003973889537711826401678602350223798122197219938984156536861283349433223907288447364966287155839910160234049041343418356862004257243253283219921070663457540922703960433818479056808307011175714508628736685634851648314836585213796036576716034499478984109215924288389132363966481026447930776394748204843792723987459494808153436075268449196138383752104787676111531679238755931968065724657143360069810610970932363619653063761136020475322087994892220900781659966374243776101558416760188564304365850813677801742358389281506268214065525096167798727060442089532012417374392738479352280607251771256967960626450446324151063275836874149693220012010407453598102727893533672582451509248664077422358582578702957676717804307637503124767404797313047870539296009877269374097157139563073368730803303161941969130969373144393067901930138503623843837942217809051686470718580440348868625564043234266596693106562764615970968845938980373586097456827307905322945046785509742503692953721419316027602323297046762900011601032334058638775152748972914057320282409226650178724114207825116610420419119795669287482147504572706191360455763459176372366451722776733445497028709243652191179011856529257197366591388857581828922360384236995230600869702484327547282583527561527524785765956287174039896622103070111302809252133696778940981136051690721280590137599264999955977021281628227192110294183876196104442660005884541874175713603127254603454536135563352352674959009231481118225670491483944721916147495949104186971060197663274884808848329972491615375765971354179222773899631219359720635819696599478709154559170699961041883870575131722734644894337723843682505391149676743642692090998313096424333179742192881949086250005076097242539369911399125696183857483704206452864744368089619540511642650537968626280315812603045496952878470183977456622460471297827242420670872252172412059663205531506310066227832745454803939681756500336771600294002073166171632962832735671382770605027282052313328288812417477132625024372236268310126715762644470766627039453542692058034283299130791812372975313269031064992693995214997371229472073104186257583242227787704162687009959883605836833564795221623383673142389895606790930714380885170312734855581136114263701040842772021959019431700676210332871641289749897982873103395909258921241056440102499563608833669264927255080930591453524439204323176840309632807172662018317062632389989940976107485212457878306955083088531928987666794767110677971007400929332483850943797572179385210469931913913572288183936307633749065154326301739096931381723792166319814619347498370837309138167583862033675783846797878075132582821818715412695357581788640077457703074347376767415056836610203761269207401226319005884275563431132163584771531819856455523801769737835568980021659422473793548558554623700596837386864954507385555139962991020051162468131775966788818391109599841818825632770340619084102281531345113101711457337804686872259492042387561949714597570599242255623517862861416434125757994907628623404912078573229521712319016414835951868737109840253307985498898045068738772221942865702422511471093968042867727170214591865005958593310126737017217739564754583436617768536252170660049550375652081145124668161183434485826810786478452204301665541221460833662867243020649530796805218862971355822315938373710038380275614065746750149017911507467746396360501638676964678887464960869296299962572033736455557345902353899435886058671793684557408668429444653972453581889776269027964698664283432828554661978380715791543543723370911166067043006596045187420011449322441895451184943953755591874552015296311175344658448334643285364557047915441352817389442357836235460367352499880170337505222972005762266477436237977868757069387760028301206020088443311512886883622999840946176374612444181839289139332931352556161316191259794108493366905041277152159285371134646236471882911371384221534978852052635410039598562746590260071149150891458005855358685584636278038162917989383569048106038789113886331031171911495551556882585286561700445761878676249314280432722570871262622061819357360400153505799361853996362402258506743770220762494111396348772079221633966286812019050616841581754059529940354023557372362183022912670990104358784063162523282815028625339601713002065626342347580411719235523838957044884848786591289600070766554518234526181218572892023374301751000516422877896523328158942478490581146318147119028730798666868054610074869524330587759453675004071522451544083364277566934896802347705827671216107665122666967634010897673001580565622304378249402430109735585512548791949887902056466456765328561093704556529191764490471671633279521141613236127258259033483625619346636298932872600043943749542584990260490868387262367184029103981114476710235648203917716395217077982007477514110098744607152578958130805932179032586721718321732577998399466935950379081778224557525494879986354570917998596495124912008792148879937466511285008603526417034135980423062548680296601533016816818139825606115628959059958078117347016974018618283064118872803151761130164215211806236519758767053070985185854573434772899953879825654649198071508588203544518231267175156939783010781913339647065822808643232497531728229161203430550473297443214244286986188880208333714643487666166789934486625863183289230067265082205092208845921070577978837132428311606754879164672718744039582071810783374249999468361315183981694137270006598489121134624991835439697548688803038823741216216233576047687577234765032797787182929391512373761023164929360943916741514442931020906879309291241793864281842648931849303137870791178639066751268534359952418199432611396637948416646863819072193087934127993171841296984032542212583673148091124839205565602956570190403040006448266009844232793720367226626726514897867555879203853794175431844581123125349926191862751728022730994812510028706523401569189956166224214946607609723397870501446016950651514601232304188336953025844566077854800764910986122152717134373554738028834260644210275961515413708467123522173227638702207592036712007525574160964855602295203334988126973383904888929014751465326775194382066131002068294123533828098133733229828298482131657955680417302745514307604968381666692703520591699912161039142486818604687452364716147017387148031110093020456198116884494806238894861864885206866853676056906304219326165535395109013175421807203951187891123846642688222783934331305740657679077920724523727206410694177248045147684084848148477717515400710505690363404682089871885770220868220702191996426198546309498598922896362023371923884276777788436995519999717522923683366410858380612970649770743340457751402585778655872411231821301948232685232706876337056904867967165719505001232900766142725127982489861470333110150925002390084294679953634695387847458502632954780562208464479758153690846648653978006281716575554837264927324173395608635804516839701541949531208046885157965857199926439268057872422768498758405341283118491181222689822353840997536848506009871073177166943865785648027951567724516611794552749014705221632648275244187109103973256564369933679823701635309818215691962579436617380519946029194561830237047982625547522340952672166680448311598115030530439658157801685360316964287574298745854131299948615730008081309415473090899212963305978974469428842672269572064705019449739519246397847090804269900008820230042198508041963687206470134520169145697473772487784330882940454604385222149671884925052084346271881467188582279575222947840091566021716098592705183893072091473485521139601406443389958891165126184350665910030155683097937740358247010513870249673486235730809636380865424510547621571016605955076773528963211343659125738865095976680578774617975214798377720967313498187104583187044037807044485878249884003493240898093890627057988402772075476398620451482506964156763383565288635910961780914501313803947701877984480840395194200866171444172894855872090569461285982850803136667196564516259961867816738191600850076862974858262923141557009178104961664151010689620698568085000871962669279317123146972244081115182057502584164750279481372345939849091616551911563923006899383630908560278741709906981069885539902241743159466383634067417289665593828138099995763632994174637734885713480741150415298614992559902426948671008201891384792644338902960140991057194457404291257288648527920343623472471315933041843642053927628802413679318671605563253301577663968606151085784529554399728619124380679518352732110217652088620199746363459445442295724615943945537274858037060334217355987141762320458201020630082617070954213718882014541906117824396790487850456077837024233832217114774976544805279452212855877122371738312415018655360467021275081420080605323792829800993465769934054134251934590453818580787179101050231885656425832026872492084233502058617471116325604257899756420691765058888426731286037833895912732747226788086207922634312592174455312859893520088561233560805084822391236919473463938771965573229963326612589586196394547051715535401020284613125075030627855808401396715722770665068219773862745819543209082340882342429963087363916865495061043616389049759808973974998334396310910068967695087295455296668453045863729777152995115234789286283794329806342335308739585425649865071033087846289830576434080815534754868144192758669270699449172187172791646471641612753300204066175565747792609524242274699735192770953191142519276051068510863152562711409340296575733040168155761545277356010990330052120767905383899134384106958235213965844978324498235380302673846195745555282900187792241517133130714211743260925730993186116233728131932140179467494057247407988524585393255763818326886879652252395390814149002367096272762942326257395585300693547790941272635306398857143028105300449706764204192917333809301173423420152363217972417415826320358823757677919672144409945754094470589313198716383039947865941057014097099337527979740276810461709374200234411606885028180894682126192090456008607054681965685715960549076726429422059937309168138625722506206147475221302190626396252233911165122470630274405003828832001149897326703778925380078165396262801955070751490018095133644248382091573305100902990162656542224475731498867575714039137882825490564053628650936660149261917791487848264608649353519789409089974334306987265807375049584461866796500004365302268407930033999642502154660423493303881890946819539398777544996144282507794646771810324619389991475195474513373668704348719509898775618933297892084099223539033521405625109548140497460577860595055563850755600757372652106497662539590028128853324723281758529835808195928850231565925810729979183003991674833067328133482626497576638118027184639480375244864023199499448399090182441164983049996560202968624156380915537711147405267115596867193636152504157045793864176641932954454903445099316061463517103018224838546145043838913224517478015767865451522843442127318818468976524588258242944443323618222177833233098997293660401825268566321591648679923203851751315401395484814736071810702429909903876637448780680789323182899585557327540032842636295198515522490555077763441183714493094323187183052108169960875168806743527321539416805176347057277193298080946062838626957610445979182836267582903531918453451021272897625833970346253140666032328492544665592917458270055743235958926895679388222718789576349267990349713662081217314224591960166078485356985111967080569937590865565956157905742776420527438288716360449990547364005371269950482749028268571217544645627031848524480621271737287010102044915536562159108646338703997942611730302445137484109743873738121607186302572342741961972130909547598715872286024677589080151816999379341324430327222014631220928656980877937161499598488088765950988243267626615136469331499843624407164663095341315258053163638232255315453775030252034001527677163331035857142264154623766955457073045605844722230313934849274923261822350771542559713528650526222561640331468803717555951111714812180687181063802156970963934249854796491521806665947246563410783703920409545852988452441270106129669209443721042914192002998494660319365020940912505219940014250359514921755423317621063816739748139387617191575979247119289442055340628772856075140393588961269340200199736214702113146613090277850363424472391475882437278351330516205268275261055256381743493200653050254287165766836374006893379438749212019782737495301044282214481183938083358228961453073513340192934366253307161744344158321853967510745091417670712821722299842437856510346690422032876527629766023953525656424440918666178326434521590521707496968229162307295409422823721171324869259054657550406216966325757823225820663623587912143564089427732991122536499477637992229500501634961801439512152025361554677833056348789293582747069101226726958568787898532434236409442039074198259776288162550291338114734863344015782767330117201213245618395446169704933465350272077141349771245798838634077649975368606084443992192508518828931169922329286194755728752216787511777968149452965817540872067412857813473452598286319701061604376117273660794472777863222319024623798278308070188395811616775302936185391204274729112381435863791124128253510943592505474794813757657994251219092268667351153549778094390315353301335193318998450820411520774638367802867739197504207149044742731792482081930725589072497697243002852568938369983481806065056363523073627465896939629830850095040811916630651147527824847345200173104629350698484429928271872310762799942622079819738254446791247135373241473430644749357760358462353685639018555921808042715577565832615535555919599800984815290175206653090303221510240927833080969162060890379017813383722165404718783492205784581573223027006398509769171633009059838367967221420946617676707242435694232923420474500223854325136107065388900834327837942519378023264586155208653138460381789717548408434563737696181313084507078505586172570369066925364473150605287116596553347653784881243505249031127187360573070176606916876069227522249383707208460232267910287884943405495853974564209728091627514003280610396016454366398120127674308495658550118655616496278423334141276389998006342124748144511108735357628021058746508903061871172931873853620078229548699737942408916776180947739967053664768640930484824806532660919560789892192564297911249718179408884001281978652541645135562295101409566753128970636114525032921989745295821342978043638958369759776031537066487788840039919451304233871322828692370244473752796594181702236162965945628774938686967043750757322365913906612313897285576670799959015890389817471541906349923109089549532383258631847416584952011464797858687165680819967875466064530872879600741733248750025491305783468532800492309128182959351666918785525439388646154557790627843647139572501607867450914621625095045310543298965399526435056082082207906070197561710592565848184249218496760136974097780230476109438248421178976629166024167503787330475338177361436786826068928349362893359926419442294769684577452794872602571596747057836338801231769738690839075976919579304428095099141370093042142868859787223281260653152998837980408055423963148646223483043460841244067676033608193480052997770052950607168917306012223107932536854047878816111516944069970894428339898597767329879730586837453910937393078872569186704278399163274977594093235750135136173147671033421144600982181219365611945778077746317030605772591187791900970943942000315092615671026337407659751537183661038793486623377148367931494500343466530031214971360314022082442095064198872519672319028580163377038106677885064112542955156142943130945080949579907574592233252622242942547177450749945913878444045451623306509156040822760499602114137406380525124561982653488262640296165311922048619064508814073175474017960944939383679461041657442905111174952804028077337260928463332820498683729035483438033116348358552580469965438983291121841850574889457883039477169590492574961356697317635527246271984193268994998045504205046006188357385159695146817023680614883850010846928305284791635529009773572325068077437415658876982258829845017129841208724229300838644005289220137858110241249727673340122123916091408373651487060962618050896087288255306001281092122300068481584569231893661085585737597668793380759643998887734449095238877364432895932718359848119510724831551902744870583332509625181991700322377786844994940595640527069240060357641760384417557575671046166719619107236831002653285046240490860485345023466403944757076958564883636221786727159152546048826136486906070035206988748010377606869307939842863405007495548742830070830515292962907468642182203363586446048095299709906089594313197101906888623394065890382280581924134328693817876728937947234994574049391278606331713777437701038595835623940417503091105840478879911042729388463335526628224273340716894065011177102094500605173605591580543574206420908402454329108241034777046726058119787156779183757284133427348455452354719946207132781731919658745534128144745530135918847804667260350001006580440272482070052173220374924426051588148983895946247118995585506080564961987240351713391082341823787209509412666746939421203883884286068527199567898956177827765960252208281407383172977708149793380680206722638842872572622003043547349926272822320014288006015046925888584751113929299026947031645395877105691695533755152229872910319609202143136647159224002740044501311144900217161666845201471837381456957495732684903981442245019794234894789212735692624006013543682827409373334647400809787920540100205749120883961837461035827392657875349811323547549415335284890860330470022474383907712054932683830836817074530142559957679553530535858380919279153426961469521083562854434013325454518244025473989616688541609523830981922671623862536001035978440485639601681851218786797784325135145252027356357164645488671013401862241864918322774002103445282401178252015165591149329027561529379499893185909618985675989367603993777686311708476021642623213639044323579978788670263468462880862160078701427304226950180500122462403682428391762308802923228239531251332877072736557101853321157705414720655421431223347703672318383146763401850948821823476591806927803556559259936287584636189015102114084075916727257297972401235579552352274387864867379103806412988064192268055004081936833724802365821939133365925781170054810532909578750202119932182327015955094310553318936086962664461986032142870725677113719538305745920842896941586963894845102829967559738335865479940666939100178135339356742569702392205229984920975235392599824863180723510546670576496816457380193531009404579175197388131809624626405397766742207875893138349733588173490549033982124997349970404596184075088790617733951547242497368304062786517213957467574408144721634401692161253070943869207911870402447960293452365866639396135374431181752900698258749733714081325020696090735475138752541432206547156361707212594320024297831975335232523596157252991561151420859160610444850472439538966758855831856587042235812925076013889143173097909733754289548602940996137649492433056601522260936530321106175885707041351040745958198206466278147714170832801696100212473400172777483786690025507557629561467491265733462279158704763577972534742145990630601015818219911125443026498770168765931206384537421048094784090050960933623496994882753768109855303594134322607821201333939265898815097407698555522054012398428849071541902243287282086109294278574811975281975093523805732927455907626367391665238683757165017382512644321368758883471869444788560702097440992002873229609009924699146012181675142304416096537633826846623385894089231937836448674975647755110853485521708051170983970930069021325917883912093516190911867282746007305889720483723646364775648656046075621250386269867840806275016209664020917780468876600506811069439750562748162598742758819891818283970500092578131598432124906545163582337353823550852242608920620424618349477804837584530341880857922768933795879146843674958215953217278717981517087962934606959055813068583353865116318927503455709526735790777212931926751423517909168838787538197955234966364041521907370279768596439836611258342205550694707014206617687008447668088060982212186727026784352697000548308036227277296716785796608420414127233849921131265879501957942037736708283393698200385761797573871482066905495370750555067069354500465582273916430805108852166070837383366275332063034684928197657761729191051532804725562371383745719674612577474628325321917406752189025398834650831642918186929929877812109950709642546283228444666130439901377101875776746041940376866906709881780303920040255980266124949255065594953771469173581268211589950467559974448086875505836091065814489037864713045323759118304363777774855244021136005319456532496657178640306034601005335537330866706440910946800805312427075121112340506816824494264299189433715472395974648469224150562873057619723849583126357220488031474283135007595821769358181847368483182705847265490578073127788421263140700902027197522074490469987950199589050799534762081201841835758771235638415224711334657914877383141628107275592748280368520114666757931798423175415114326022874186517219386338276785206427168552892862710833345404887761256592286814620064633335443380607466429042153116802586047600118480671531620808374212667862381632978973252788045761371747285391812592202673365364741368765003814365709024391308506911336256536315052416243337852054711701590150996866042242241318323173916466756118840332115743438407726424570443362209866780617380679523850204688906791069360731214162028200372188591260923468831882250454511402923789484615984389650623653945081799253031765221577838537381990175769618884831284108652512648188667190485648737460052026012794185919793185837085389804357575937296245324375602624178724777570052041711030694943730033062236652825933187113919178344856222121437525393745580009005096099587515624240382449212428332489662382197187466994159840494192362217604958490245899515801421895818705600772147958730244969002576505147114527102684481824260687119242475986121141871789803711620091734972663183344181991286169103547776684886457336660152943270150804838221228138120664564674342347902093758062546852316512243807213495272578535702053094408984501652010956870799114555820308948020180791717104266589488380087899895910350156625489597554792406947970073157834956855278162267387361332398554075250820184978938175410496260631721271956688070670519892954613885614784250145053501272875425492559147615366303582603173516246899071558010465678946193659740070912289401778238299997307950479465636481980393997652452077122700882762216553062095942470843663119627927229873623446569874158682528330731913465628941528963415940013237432737002790709346753637903758375961412660886028917214269763382739628895991828344837698918090631624672820803913027160875133511050002504494082917878725434313523481457391341230558012757076407052548437018124575211441155552207890087169060026141179701684545135397957259778050011546198916703122700792269238033799142975820872260398311352127010445813245553580683684517443558297772625445271908692059198246124058250968253679595896546028847848734744288248160991224007328373541216962176641044172227800518441300763866669493708280587221456109545624691926245401808792776445916210759493469470717814116826647984558719077077412244784333271151146803293359690867878504913012376064534750757160875308613686392976629867969987959182371079478528725717088211504216406182750554251568725182273734708017488357380429235350256461187171619308627274950933240303896743068088891466088277399221295381744866167151953478800526903640644285794053200808381550811436907224922776105511509212104734400537911820543927368426573060146535487329489868107456094636806820118819968131545111401471481457672594128836159912513896662844768474012017816537435411328200834843001489229051714615488942814375881675845463155389765747211010050200913365445231354094724369933121439266846389671199121634394043665827151772990402708403456044717004697713252529322446710087262120096691255193788813879807445308910092540713941380977901374818931384256236795472701729213460804236376413931556774391480289433149854192193384762151824776233538057313505054209762083414944320607448766217729329149269873671908154908289802791435800508011782456767544025742228493775733984703006944285643936819122377631112299826021598734329421190362299132195658499051866209356527041563710382897446577278191232397951938540134580045858997557300049094036214688611420181782082923208268073814856931356559242851087194592563309841229017193651528415408144026910672604479107959491931724637048536674040816164669495807864193617674597386693326437952395075920397998421702293179163724895581551426666104497640383218357860659415637454479631551431961349124444833393246845879702283539064086002710829679692152770654258089131671232612108638799599833608780609280312876235701450926673904649187912611850688409061450217048361359194889390293930174525531056301808454702496321561428223654772937570917531364302800542192404323000928188355470703474009955853026184643960028490453538352301437478401106578457624029276566276277485984977680696228691252690052637210759583147336345083118070008243692556763823302901757514064012778276592395791785764761609585764115329927750100106734590121286123164293747739095954729175876435656597791270128503337495115669548330742610936056307815235086623993194238563754676639086228638170181591813794121738112282068405210350279152529297765972110562221068963412053093741494116276784308513592602870299672579385307254732312627537011459819723122981881112149291238116612100840862931395603038868921169543649875856336945417009458423184037157825528670902964169032233362421962475457413385375768393739135200006918212785275320611136854183206978770899659571497133105368823077775737378810923815760079992549676775135563092378297648169043964931861730759734096720010967040635041589045593669762033539472604551571183165231746554376105742216302948380325826984806087394555016239386103817854521422780694144309895098837295433803664742068590499214383078017509731239946173739085036903456020407479254954801890069343597540177612151238324417815445649559154558247245984117435696754010497458971566883224032442600935172625283635935030464095583421965262421258426711989931860932229966653802492174578709158230165576950956708797973032046373585723071838797965829660946621985827182075844301591221505753749780134627547166625813801505026634265113094593868898686818376486618158283249945249215755776447019614965199702086234233704570296738714442158327943177431871211745641078334130692521986544813198699662769061498583199914111170205155057216393542379414766577217496739112844880276900706584258265247589143483025638848582924058992121014515585758770155492562633828010428106867820999398791440571213253426412157954399045060905225081856657012824507555077891007269789858912297358030219415846998514576062803119259922640912469802558187338275421054879246396314539171355670706274160064595684128463409298710917536178398515986986064282623628826508163026158456841165715919095355362894178342218172897098590754459401564965057607887642666962328355197237415835297256141052955789450585161679129021712864007621055937379894107383856428760895219240984031313840119461327461894527974030548445089328642585234747920470587294118372174070034163703419374238147527913485303090507502290930298987259823345663255644083346802058082025739447344597356117119481226004134912916615101925822038808196795907826690737499989215265688476053253278807438606746707572277467345810993115024428727810814124800151722928062985531558160226528384067655368569621635674621658384104722292982230183243725931213229506763205145580624322899436829630998844683867789982147508421960543611830693788670663588586637542738296207376665136254137497728885279765194357477266243063506431324258022635777392341436369459350809198396734429047188764527272025441054007632148348518070059341566864349943439385734778892325651262186899764505373055080377780843927414754785749388742695210189153569005188687209996741503644661734854510708879949929345638594870750472729783188655336528217878022737949962390703080754006674923289085219938472897682797607763372319451824995732240046228021828253016453823976599550261584613835115622941586473823647746649608020745487994736263456486784560432329162701270403110612130364084938826635451996917233086155207820081915820935010279088624661475122774856006082105457871399485782748212290687071675561777856619624145403115093608015606605196892166750188926999305245634457379640200860011478483195855744688805461861237404090385903005398680403744485504571450747458299137503970792097155577618875342298916513771775762718810058429780774932296784589147794763921003620423403045629482600951604238719260018558015206058054334404357836297663642028815008370547027465779572511173631172155601005956018236302018608607602581157140726690350334160181516892278083580410585780603633836321932549343931763831388372459870932390814963119212198069809810560953466333768602862076756324407708682819826235775618130169784680773449652282677700543417355619215269708578727937926963902147725699886807830712996984464166060253118831837389456692248728537646905119998622551402479218404460574588280959179084483601287951149368316326999067181803115957223598528451906053208569126973790353354194523860555304131359616988401000545193964715581290859024912602030539387225297349812052493273476669921388838214232986792736726698376627618876515931293515972745955219774690064488814986197661164784693497184365210675908282862593695271920248588124989566082241235687907167470185399441948320403192482767762419330173690643144455279053612887188766227990741324822421649550346413749148046504711267498625459554553212261745894609063350680602391567156368585965868121693585134677293085578125186574081997164717456686810484706688174925133342276774437757667016831934679886666892154097131872405954036875393502935308087330944680451250486265320758400082412482637354778607972089891853719389155326699307121583871516039771327874260778623788431814445053628857595985588147819432426389525510325124478850721684321279442296516042331189506317917253667198707796016935617301902127566230905783041495526929230732114002847708722319112361454893527916174375985974779102408067853370997230713055801453162164894568263124167540345245574124236170620751855657260826828389400098533287024433522102982884496661557589229594042221602197721565637722517197961346526550326557166732635965480039263302328328168149324697723682101496658679420627767468261153190026006492830321132761042277639428631164458026495757169955979038075740473786823411984111918987963528383355380889701950806260748823448661202454238590256316384488990230626126371448755516431707394210547779731030711424186085913080525869447447281148996617271605850838939859294001178069411309953462923505742018762831041440674210307875405302949829980645314175018081661151505708640792685930398608783708350066324883928518100709872889696148225459911813905969682820632350839409032420814822106513267360872595641751253566319487077739429499412833677674089152699003315891557125587471165790303388145267828825737174553479697996896968036621325121971408534992515249894281851753919913721482422885377240828831389224353218541429695610190731192154052660075805241995417423294380602149643418254344308976277901938862287925318932604852150765386903353531766868121592893965772315377764927464885239337881332048031604851239527163164205922997527835871625370451615696230418719887712910039018485296710574341356476460692606590356138430855023719191503012646835343011455342272773309314718090268673469933422984614502136851646344765160645555274738357386721233189397797661022529678016640903677146835934202643100586891626910602534279570783810572251213642030769344565157171842498040294065958537269272046363517159324767048012766030206546690450138632005711670715469249209153850055804448561230775613421201221416466524907277743168031546354091706455209618759243317545813078253982691113018907503359416605865503005446235646152779066640293244206598019432661274827569104541202924014660055283504292684361502375646734140824450865126846102748039982395325764576730600748684279749778568708882152418368268879939002503192263192001519935694947126546064483220124887128378973672185246948138046553902591502041428587915268687949006088591437813071223429705681434521205597858045966065729359780423710127001690172096091682892686765183950968088934608506085223357498443456753132605779290683517249237776932574164829100692351801517343481795239204765356799617066474323236639777140269696852711940334351216405806992807043258260137082413393403834563595406163060065883222527206075464903690057403389204868043721323378719894975195712192779953153827231182367807494846054982226890060887679510739199398639760868507158244456796144872895591384864666838717109273140783262220123401019806664392754659853740497127111682580437721953678807901738400576283841076372872523682869180780872409492614856732415716783283950842384641682823439448050039727464753425457209263075430977026583506933892204086717716943374644579918036586710173600853851956303165609309181416055588982770022293668364076739616640484407754811021494324208352223283108197729868929461171475068580315776415800875448306414142975177695203239447360861112806909837965968658075652169178741768882325394747468626530991456540823504780838272552289938319038037669590184629471188570350459197623631782650151114646872319407248888010522805673155727483962952859469187190661712436341109208820547648391345657038961319552103940254515577627497857914509108099407422865631795304487176979611974196806520379123470731947116805391694856642286464291973351978399034206153853518727722572139150181442700436513685129195119189730460722287038601320995323483465062944939976079997174384592852282475803360695754095671521971026843368341370604295745896292041791955829438260360142469764094488623416650134196765874428016866962741508605015969282809354226187049756704771397044595665352074900592987437220111125241988960937908727239397489456572851950335667638987609424040997127197569219550080183575720101649018607049008037132861499121310565640234161858452666047504669711681055547327516197308839147214830763537728628772590123828436319384729372184110711292054581176776386211690789159847867223699278320137544954617774369190004734461834563675917673486312232079397542629479837604266436324386852980173191209717513024991500801950632943934757167297241907881559749198166269052028751460305155067710619537714896508854743295932267645563699951060467278139752267968247638794487554853706357418859480069759013944762238187651332198033423712826780491103010354919752814073837646545162900934062344090329138473937937097276188167264016928695591474637946898384347008761823626331763684067530945531486914568389318749654285907600880189114046859224897672511758039792756760227077280404270490000014946566818005406077426079519557019662809823405677774963864100114098661675455910721205264832327313932235616354823018519615129539899385351212790347890822985308987390471833113145456462060107172786369026590006500098610566928272189949816205427712422896042392658625490364954428171762268409909204632610428773175929590242665456962529106635687003525931461345163181739812623732817938071131861462282755453423343192058916317467378337591175157355565474839209098931233090125787528902876943790407940387887322894351359495712270159320813660421658123870327533403980540350963361101266701272714320433526543314068002106025230664473698313810351127191210383353833277390499026780048156744983305894982986584964141850448662961514117125709237293013197242093816415866362007592816075454712306985591718142060043247187725666761940194127853296546689394892476139120298215271267886497160453654272555011672890613280992413966564426058014411387446675681292005119350520923468803981607293662312366075306590869012427075081932587675778966371318936462149981270577083461354713892739951735878157393621044042677340638214203553926349380079120572087606516047805656701474701509118041328499360318802830338627456439375786750315578386953504663061562198922751539625655450890449501533169025305762563727352306569538001928903594484085957295748877010279810873796009855226237303140091158844610841143673126915323891626342183359108408347233328171065302126758782225687445149519126611626717689488665156344324660204625640977058915819334861216943892781385393219350100273554853158645473606071440774473560910114224050995768119813949131222095943111544420647637887323161990118615312015838479110224112177222706901725039833663809693315077949929453824491959178351624100543699976855997788859231747708281136619526994484075485336208949439336982295417863332656103613633073434049789720933778091777945646247199109800153186347080914858017462306871347681237997163581469206457013473731780618199851368108486401984539963669937945145322088872604469030954788514936581894205445322490860660910038474663930478887783132496393015519484248551096697235089645518795800177957684774213085500824549669636685788521132130774091153672153982673178613382731624909410585063972499436138849984244220696206247222435077463630465583583389829253047421327044570329559275504562287888152702130946491255524551298740829493926027883675859952839779408325205935508633885358164732138939373640391121157257074906908807356654373876644341936966623032699804518468984908307252980251882020020306136814282840816128152437551868997249893357235519048388015556086649647378184688338411360848040027561370943023348411251665657442913884587277958487538343867585687477408507201153682189814277536882979199531882362661303739757433472553275755459272811220718668494521835351917667883804404196782462084438293851778365051857373256776469585730884472274709246220371979995209452399892105047096239053705139232262026406083710219575901366796610392158513852339251653798718653769978039559959473419221779368276228969161304902892655646268629691100527850617216518727677050238355462099677662518548935333828395447210980578330149664915985103330593997649434542552264766996416794744856380399819217231245133608432770720398848393577351819535582470756998411079772936436099163013967447818894625214235920917754926718694915533252850206962551205899940996464087902584794551241075772390982406820703910778067173998593174010564986090308343259501910904130963287563265349137795029051261267403249148764778096245413062062376701008364197436444826315170856138215930686054774486555759649199948214088690846858716096335269425427565390609509480331108963006562930949073446239186099084839390368982825506546072325921551809022610877937951535118096467661917209168434638085627395537326485637437953237293567830371090480971900304024280993694498741640961117770080982812388334453482252962325430582579759506859409283405521745148172239106973359193096721514134168158963208537764032423009343902203616430115155674770831343546052807627272596829212280095415825872696928549919867440204001697061228077734680612253734748387422927551841749617731110202215622204703065633298259246890265568417467838619446242539840430761162229515495846505970478496997075721093853334617725701954334156595552298240917664751388181278509175819771247946930235646896022168673919696783437792817824156060970468499892861027861763950038716193968931792430700329777420984061747183316178457537250528715871172395353385692157297162810456813738808232386806074674429980508871889415212212961991652149807400533471756388676188989075659581178116229622476267676916402956385134572316476448347042520305999629436176181939423347214396037039617794366006073369250932783345658478560714968638401599168913677602853304909367742294985214463912963224715244658130664293097835466185782934607164365917230009168915168208918821136455562305810584962763386558885243578306850744283416712891370436386693813893162892154104827045084808876258012206669946908791657745525572044187193927187946422425101265958063318444113093726726251130964872894723962189788719758083027628485365841959718066601878730910375221170130262176109007001349092306701675931971719685402861467265586557188210008506034721389281085269306122358775585135358449026392110244075671942535248137709972761643401069910981568137696185134411690226387818348531120746109497341416897050126886829457728132745930028948343102615703707816362491899967123196024933866383693712512873237784495320968715176328697794918279995015930134020587656275564434882528561405388459181995635427752400979829504874855053463087423302108297016019081221916360797955299301954199982529996750994197979181352818361614510465961125916233173262755865498855430799909781191395676125619271366717696669776777872104568191694479445058147728603241310273982888530161443554734601326909094266737936148557820031813448256526944168839083388702795545349609030269583634458636924117842268440619545327847481138758851680634443877144577469569228231029831045841279344961416114279041897419303085891492089633760828807056237449377767235253120340099205828824962330881634602468673454286193441306068588156615977081774494833954944904136095564115243530627157250741892659054632396651112707731792613876223026998440594812906767663861071432024322246468881062686908443226368490353955946890647704950958633678346206525842346996591251318277975540113490308891662607565326297039818577627821428757079993137989173696802429454285385769166865418458842040330573590917208816503318549881711055967046748446915492499462521415438634734766762945868340551539236988433790149359971249083888916345625144319678063748898501836944560165389785003697678090287889521305820669979217042134271957382525250998370323965537880695692143162752721613179263737650517274693113065081445795655534673407482644536981161781288870830581141389215568805821309528653189304788853548696466813030265289724872166704713768223291359184664577806506615115950672479258311703942217692073363616176374709904201956759689884249680557548968539317671835902625462500453423384047076053254946215787304715659262799614324709325650603137507427001697138261108526177880934938026352538398243441745493543165933438873562248990033890549262963739601810281927750421231713507804002483732377708775235480083530993263035380798125955572458916653378084855847821613856770162418574681974130428969122240482674438031254479510934942758249930387743332440445616499443568464334886940591780877507160185796365283642121792326293052252192387218686338987466129345887303934571453181572994795251908766185447242101178017089208313957470504253178279993543426377123099565362999046560842580281460708353838200046188061727196571403421125799408300177620450719756254732927534160208858994566399821230661937897760505446808325619451893520072781899657354589829992598808796615785695684182838331259468702153501521943582249219307214424829641260927279820397332761840194530313399420408972431702560501118899920320121672844856717397567673754562940079800750313967935015025141388792440754909110181649401955905310663834481688139819227224128801735454793553449905446012059281501106884167959809846946983628850378813771439127929813130134839272728972532184197805215194370019078086322375847317649780231013450944748668723720045815947717174646716755044652669108454659900042989825993030710728497338391945473651105062804446724406692887596920027602440471769105500199199922622970052082590399531922583486610834889240671619573841529215131134468491784008417718228658826632906027455569853585598780706055145985784212439200791498245795269180007181133375069045641136127913965265491671773487559190500449775333208129881775578456922177148708629465568726940776911673057895456532807102024562945495021043136125820334668761263413032482874462580920975131482239347850487525373657154129851743494013686785428537586825919537324388238398367457261609599742907156366797251942642499653135712199336687804396081933465393985452566041997791434805750827420920852650674519522420672291936027857645603363457194129596523485325228441504713044351866587273692590746585349532168167974150411163209550973476730730869604995259245884819157128414386304359918747472066162021806063400755492118077412436981863293928925035414437871479762088989666453571195939467316656498637391224411987512485401050995708845861023804485506489449766830586422814557625700107585974473270737692062219668340015235980689011342686158322023748362608892132247972785975295823964534562127132863190996034077908533889623864368886117764942875917646073420596426792178762777703562038275102947140734722842452587507802062337337385425349352394469865318449243173784234095246754618699728240833842922986135682926850505690762323187897737776630662899348685673661403911294016950554447160452395453480644547159827579469485414833744672210457838305636225226367000190102952188915147817599186623541824045164300610649242744415754240718602968009779420954532100813521776408663116235186425663832063390850254046380765641269524977360201151662103724035625930466497303651249380115732741233420385809059213969667381683578861382633538393762202672427144249224382102999367372595613234057894387210037660045501998887133798189052111159084184134263444556999051501057274982738796784494794855523580930266061151821457299322884691373542570659385739931469269948574752472995911137334384596321070879315496432455246107968068148316261072871626207893972717881952180921026419309983221327853986761820510139828070785922349919817295216359176261171663976707285862058158773309538665978495947782742144600660843260307340154672672812571076365797210111810265286829829379923668718503392776636266302702153435706161894805581662511331502819278287025295234245928215874108988932561011626518755147792755032478002426195364619522511884607502909457153553380869621364183417153856154504619840152442387455680673632841398800154684430970569359284357058469580522668009922063129505868233373333034125731263335597880927466041411924502208639019590601360379394494538749600738427334339895870176151885725621123893842670383636510551080102323086658510921354167121638538791177208958442656553060381618996730816405356321476934481628475319081143726313961319316399022452295542052732622112991158746468497147624630940331768629330140448221048011830872652899908371503111804143767778431181818629947498132773504695299319014276302711712129881427957454937585570677493965901567318293437497261764186327538657295581103097551817294346150748357462425066353406611496537116952841824614411138583883529235899237555313175160678193639381307251856431667177643641088418020982925201888602552948006335266597965743720579179126558155646499505855754630611467506585989089503135400712472208705579258236439124149142812657553029785398158291457198741030830994381312689283309176674143220159361362650143724427295473995573518175275862214548892607918100495652343485522230467408143599916468327470898349601674446421436470289897879054973758562162055098085822250448494837464761544466591946657995872281009392311651596999831079926235778005566932585442423059651620803792690021804199152149827076953801126670181388828489498582767445862758022321035341415650084006820696637518742886002742389040288108683573966076804443394136353841681374463578409134690736766195350930263115869848328048092056103738838504211320549153723880773921855187921899762661040942688820690775900734913269615883426142169740689473464319072251940154144943092421469964042471318182602800571185101765270313983983839366885150070612147960175026577454544095693539613325164013631493913430269783276684228962211825990596710390375290459425999536580551309529916331651146552028935362304503675167919885526105009709399363577344031260974391628688180656867523801147589931908993585088041202154862604096656939975036295481373886123100814990436647549669402959624490335423082986361043687916141435263295561619235258582382161545243731632394728098539836406310839587182382508517514207459539690089690609260850185489261681270328527854367238877850215864181140178030420590052507320421127427252450978537581515517755088685608302620165586143992940620858036870399809982656459706825351538810234476098531484268912089954434239554078609157600407251172015075155721850366604814836547279166653496279370782733432394455958650551314507726319610776666057357454410559292972383049709275243077155187348917844482927066595106380946514974731834281036334649709216174218709972729783926357187512568969250987152326008553233261032334594987239211351533438419998576091082217380492356820186047139341464119243026849345268594418099508941140624338306636462093053728370064202050962785194026998163676186847278467752526322201507182101951650264069571622870216275512444633433222293890776008538411892730662097128088499418604638938520854412086960516663762444616462673201782421655821581285686822838544877866813570711824321385011645089233824698199059751419217297556094625342199967169178484333737357132287358994616161947249901445854459959188758405933651621989894962918862591022109880968643363612850816442434209339566484078369981234986868182783943925360981391857108309464369957652322632923770655698386373403515202058762384602958796254734626150623965132130801883152292368673702479480675246979515060849836605585371111869773516610526210865359154494290926875052633026968742330339457711436770608656226268536794129806395864408961067697707372127005565820726725271216969473858209218668046953823991259464012532186965675890393954996532934265507280642490988104957990571882961935751056181871001121808810312761134868558291830246024507866725890735832149016722023617936049070307557538295021767233392515669420697765630050252104774941630124480977593873881103812546532335415925169066503972365188688904607770050574287219164538542230774086516243630629448022835977754765378686195904802631269787834503129070528128138997653715579693614315482425653746458159956364926987168706493366894556394669280884544351346383122390251854633264024018897439136245013532949606335865195028674674964706280912033627766844070403103526905391420027060342865045275744774140097483346187051939120156045262209150586769530533304872586363225563665261246478336492876396252676281232633218605334867057060679292590606891204726967145509273154747945404556427541976568251638777642739211441411927655364887579239677449715544317942385215802645753199688497486234619245336436393082312241509463972801736455350220287741132896539135507903333011669497799673568743476892345818181639287793753484649841417421862331116959123188701534768911467350146264780742431712631231611430977730212693584643977211328768748456785945080749800302376317551291026745800493344787500261755542757673515034482566850637183543265238348003682084291402603043345608915492561934743308861031225099119949604114840915516200848218686311196265110630269894200537314210722209994079787659495539448027507126791274018190052756182086926821675215407811540208287582966313827509535644352498839838401521617275035868849335742112888373748316252195762891113262652954981787777991274192957231550095451608584440508373152173010787819216209095210489028184846666003564146102235052758566666061932120942072811892334385158419731785475033494887477368355621752967344564828321437840752873696761651746545624682574442985042787498426489713189464201919061975028424395998340273225083456462615720141106210639362615713140848501689282069209361637655891810040572188448254219431793285919134223861705034641271893169475434932135439220956578816705094306793324908203963485248189865975010664282536209793885908482047847757922712784861596310120048478859678625666213132459854553534897022609869070440320847043842214086557142603584782168703185100723636899251820986259024837908040940495686173394235143386250695411173267662413916910918230949136445088591825995299894527490186476393825054983458394856938205368161998173929278213053034637028412023956652589241144979405224766024036278947151910443687171408323921450383265513054527861241853955703232453498853165217729096227059060312816466482990589674515833381753276986353928026622645140210792786298587367967789757436926048879723768359805238651969177396197546292363885448833456728012659746485256093369179825894066998617113248521525735453453585940111391087838087991901293742906440008658845641720674253484683074514964499541443629114652624109165322173255153223167545008699745559887925277924908331842232309864473040977014712002175064348396116228494892379078401634222487796888556555174563297461184706523258767529123333517443117427037955099837001473044897428187360630087637922359604509928612501362563084787885387175017464457610484886296229058322736910045182735309073631644298532970715184799095673200575595287679347943565880133229050805138560495716278175398863072453350579707907124292133938860630096338146533709134012878777868980148717720662827926136461932576104019659492571281504797683713768771579883457020452959807466069261404540968370068617344569351964898769710860124792100039309606198456480110692346484995681076226672667020513692199133255898650962875131604444711599831243664407669704926088240906669702062805082628239102100340798945632469936493132067456339119474982926652731119378794620123104621302990414250757351171972276914349764117603801790664665215532439159053290552891356724035383606281007374344219834910359279626948142279153660130363134789713879475133703533846986825645335766686662280566986078117696043425801705204326537787646329474782927014529524446529063623153971367999303232463552715408384216392460087549926808656859582794691130396541409919410037671846279575650535415389683063448810288831275950029545379684007648781835979245954873042381819986537338685625309722207423641001848538121989086835964602870139522140551156025986831884107936928348086186442191781058939842038037004902072062747357509019976103200052208120652459441556306306382266228551356854314447847452905752605213971810872305954183913657351526639315475981396605355359279434561790502726509331372746102717401578199336891197229711536927844267153010778908230903808171177361216073061111663816428889708368123720595991845790854951649891404206462549645977608839212557706605614229921375075494876087069377613489769980301172841720055156738523026780064740162096712309713390243645861915748144669155671228927064575316817415588008023671136812144002886312104569504038737113434013149867179129483842577584806728965152622149081919412464267420948437610611043449576290386282476677976934323499391356898548041582751131281579293488059891981742404543365114442717576021499092466406080769856430176249674335568853690377023023181020490323847726053466883209504891117338896053661943092861411020438962866978068549976647766515529214190127539855939910361230316241433960987987398177818328367117978822698621356418576122548344842494129802115124389102222473319363755553767724602043461821593552221109408191163881323246114842606651576870231585765704333526330328579738593603906960624349495406633031078378920510638166898038933481360635948441195964385577677085366321623321990610313328889288609933358480458964118459602165935410446346085232454786787111108118864743765190589430846419526940683493070098159623349499971035477943374360681499801256858068398891943738345902023850897161685403539340839341142420777164628125379745081012356697411232873401225487046205823961147397646524228038798068601315788093846456576480897239122154380802122182278904993738883086291090449302137003668652111883112938272177515397890843632583188236894896785675655532959888665641916621008321662477287353022406019644381935966452345760013595001971244547002709476108249950902876086049107555070909462055411863198715037920977672669461753974991606680149472227108017538634907995434714903379917323314882074854858925383601906709597646710335812981907568492629111831501183884924080864842639379320858993029916951177048296330622762233209819332498602818045101011132883775258916456177734842567639944644000179083197972759582359238831642238367876351181790594088024359370263031311544506847780573424378682635431621619257501459663819289644482702080199732644375087792887147009663103383736861620898919977751434827901600647582211402133344503500520495562014529349430017418487602505836279022478607798156481706342261395189544248535399853461041893504418257286571868525334337184587105198917846171991829584170521008477180147173388202047548195327929557190882707566726326579339293540684360636534936053283081006659249743871114023263654050265438187797500066285684587220619772203070334360886266056630079514653997744602311617918671671763291322845800572040976749218234606338479397823925178101107223067878464659820860623050327553029833811300211833036741516527023953390922389571702299986984516177899875473942349698542626045034465113419673478961476676104317103116645606078392149936447101125776910757738467206188684458196183404047541604276365631798581036341769217340353265725795266586120619912219425094968715874369363377294852960075244791604122781275950571781177101348660619032806264110522903862713299080024768338875020085030629090506551448347456496986108417050855051510045087194904549428791254543529077901896430323392178345243789525121167199688345681149502278724363673127187419042666329923394076056779069019601694657309241139362858298306528815640784853658859349575742739828111696285812440694483790717854379710952312031807471699710692124599979784485314082533462360911144768614832035458425406923323257809758106560861952901055701175539786865888308511272934462791343990395432897430037826440716510895486200907444368810870972743210786024411774414604053397976795368380493740423359695509921866908954824288193290838143017832505175972888515864780270012517149742042260371575026085790540043738972560804933284722410332543503045837617138530287645736590958927093420152386870379567573302416644616359636774779932223306477585332750689210538648872936996828887766347821760304887487347524539896532973056226835506695157421261092619927077053466877497482728154465768209421285463376263972040414153987723467546350851186981087209352436280477219465893953790859221291728264644686404344911071771975998678541311584835970138657755556817714735490319294499965798238864426400627124045997560738542547993279138644172091334467800362953559633713453940279515080880333313366993080043028576572433826660983296721633834150667083042669315491796135282094668810049304907393102990480095251173919202487737993989608016288265221869497306273572210253146017757604989860237772802732910875935773629111089434698293166786044411227708846657001486686334935127632017432006406352358067666402745136704485612719349530230989200060975057430135908658218553717489848899913372197150620727126762212653701739224916426241852734960773007153031617947778426227152618237019637628641738381481450407698430024759422661380018485530698592391088997288613068092125252063519784072426676479007138831800486325377805888005497895787033770699785498100677960615600241726647134478710154872607054550883137234047686695717675371295710234932655089953622140844508899120739498526234775136298200782938781297936782241840960326604774435841241181109137042379893589166433958201599153840915333177778393510021985310776783689424405548255975034562192583824809932004413707092277569060173624764477019999951581106219078477521080149076889160084910926613654458565999147356390217586931199663849249336163131092947846988131687907704262022169215174382256590163949615129086648431106468610914047585271722510590908305272791395548837843072778662111672598359377207493735455338297979667879595691156069829015753102201162154194006187624554256327849662923823192012781912017571898397802603590201171581941916711718299609868279887419982146931414761750316361260082362010409163597958044358375217177965866798892177044287929719363443242533721752898697922208980921342558078898654998654669962198975133642174844526825038912175883327376750525586922011249758592592711836745420532502059403084437160312983646954264659185317484129076325525045081120619543383718524633620785171431439247018305462994337496263367256794753836121117257548091431927089700534156314394358838834253369497510627299597242341315263689377885609605903097406589530035228184354118740992266305563221158215280408889091073597140974270731905709438074204150238728976729129045876840951403463355555108048161498107598918828600507335550662086119208015297878270169086742084157975020297037923390981088781220447339915546378796422253528368242214226453344814127491726548002813443309412319724304122317317365167716123884641607463118365129770365188874502453157292781851381564929257233553533416426148561470580855760355249771780942389975129021745819526530573783911794506734046784307625452273651720593378796937234012703081242805725237636473636388842096762224748049853777841294665639509002543121958373288410754223190817695262794157877189208005587862569784348645275893606229882297223720136036038482266051128747911939334188458230162281573787403028207432094500154246113798478187343759914741423515766993171281481389180681184631348982300651605958644653980026276063398135904893260705917520453105696700302403527538499021115060104298008565247248172355921483863358815394599384379893909311398009772929534970407127058518259920835924680352362265268960105325468981407180449712701746989109244525727493758522850852535784419919304647407649797574485877021437329260021214121990872884129093365614368461053075189199977172528570279073658217116731182422398132993679217455959492025387892454971688104127803408894784750280890265246715712065295873980470269118197772799693631026202010015913086328038863069349662471841314946260779400073614983799756327536801532680981909580544446413573758604124694151038975296410773182195863010054885539353440090470243184518319082459188096178948960769163415587977850462383472119443524741674248086705407941845077668103999379426934995559754095833168666942002717727539966178003938031706121197270099465925580305692513613666720781678576538276646254851385218944943413013333810251405075739357102514271999346220212478667091050907264717652401860128030384279867140357797350932153879933781506739432495128126976921855217147442725133796242126407610444756425421854552086691811739766147064041937146995623614417713200858986365614593531210197216627489703404195977920313731499179577596807982991993440690161329871791979500025655887363668068864666273488361076812138005938549999322947365005783703537938665904853711723159827542960688054155025570090256957989211365233867819147377765369204245488123633671213596527053123627953145319416927038400818248524933176848215080187136044800539615752575315314168545172184939067128382264825918509570652396312854282241004236136229331578484762771069475932558763093957683705394584754084357834099469082395011807173456591605858845639980130473771037218861779189926667885431997007245601802594233601437526927477752947576340303403365880901934117127158927075378260896921527745798841403504626709036569817424050606841668385701677717326566293335911833663747115864939857353465268967596406130682167375204360356838282970123983117914343596381365602635346896205018901225399719668563385589616140740126042751492110805091937498499611128326342668608637004693211088218644643005521778024049035884683909858238820808457464046357029347414896015806275330958254224080250364528610655492466294301245114123519667558529457448266760369208663154111733082097241307882769139630548170599980611541664865142160138800339895252023200919709082116673297245934598016335444977532167215880883600633141192381767342205660011527336728803259288234969736571744847403112316471324613322029153025962424759079475004702275216415470354117084635758708338171346681064167433918751353280415603602954183425880368056990340086486762224161992781709029098442475407957955315688680630633313321344865871983796579078389803713546200324453978396002605387222206197640945160291425145604831089424655649402112361807088441689046737067737821337926252311175227725048318870090906610885777761669086250290527882659945309183900803347766484051203322146063052740034200298368560635594696104098678231551883874668714896501498397478381076267059857951511992934437906682645175427582800293523125467308182728627696961346919057521039331759292882192751615546673631944939105517233788865744884958306320410350451669992757642029158832849856882305376128938489352903333516645381841002768908728147971651582113458847738605360452550975928901324741137225121111743797625819253998483628074967654158241870764957762696879947775519272223393590221562629998642850565142880753941730654806938121918359692683439846574885582116813486746188712566180448305373936434956046779659668589386626339659149372888893339518068706413888967369050278471755355571166439231351585359564662999141742228887670101846945940798985446101609513351000064255244389565528603984415638688890397716347716332888690201472290045618100695609592370794692051825347268206684977195401775149928431153526876278280804716486435780003884478659198346127733922804120778980237321142730861837888276101896281062650669876819543739433922061642436379712155458818390832750643268010394137494677414554815079215853692523057920753400157258290196403970971036482411248980164614131539210082862810173670545732034614988103856463278002239470096054112122041172137612576113099416992809541334081741398779202847839290687167238221937732974739570280259769373381733398285377424625682530694595087147051961074392804325261669639166648263921720663919771087304683891803436139623040717979996688076273994520914094507538018741547277956295690192297773588557932908295504825979554620532612823076003374306780400454273784273849478584151614997489221613427231435430614525944246620259942211365236360311439785381541641827144864265983153076858162016236889656699353331041049588686834777342018476037468900550725348384813850917967251453818336215961015638206928004381843168382147570353670578540841645104770581841585176585329472215624779270953390020842447660841861576629608033042590422003867587929083383784402117560356355202994373269988834721363690585612471554905196007595448829491620845180264781081860966790090811580130093907573623283999802795453498041229542366588138334274374675532272196063116084649201966937953085802619928187108801493026240844302626731704991758196103130028749938194902170968225913675779995167493217139455354064333916886295623156937848802524280626192894922904713677764894214698350900949384235915949985912902502271558643442605169828511585058284332746170953704386467988860762190142507018650239243403789357397480284942475632758417258170814857931744320503789025347457451321070790247219992232959496542302289391034774644971915315330252817259673350659646640952285206401179788848652993150553895697219086297103048251324030345724984682954833801543886227608931626653312581463965453661420412346712111565225554430915474856766517612721232566884451189879942023256589937867333263808254094283641314155138307399238906673080458377089232869928853529150972451716465690767651764265701524550499536073811915719908368076254564203109727190037302659655178126453286156998818938597449054067683711371035659593893894847605027335946283302591812666045712090813408804457038068957078803885575089771721042436477083491316112351791561770923227685754467828265946092347908738602331024644227860818915982333958518806647734879138753126006317772592595924855165538104065994115280328217148130844810521452080865699175848748478568422710680403001945049300973838863780356031437207473651387568626400119007135703041220816882839473314587078754724678774117638299048952232685986794680315990537555017101614809025003560552203837609085349355060988816315002251648477566713339261724935259427205911131536271208344121213484271558751183232178393116139558146598560843999434092311907305205715195288657113784487989409180988140771020169708138123668283940828616430243352508290199519402309557669203581246095843466775440935972989904563391508129200763752742659059460647595714192025814201820117405771983971062360155655144640643704285144318060600557948411676842411802596142126170878737134560113474369193447347211805279173525318488902225240581743831585263786491275580524648640769320513120942355883873251306527718726881787757129482257586145143658316147100492787571958836408547859082517311255156785897640092778137700535626716247338755229107861430157955348200935141471734507360946324774076890019467075151083260725089510511044728851810207034896602016422088471978570942521535028331140877314552902368635088320943709803778835907784243018244390163866824046927226535237496495165085903437008306377841200269810088697907120965454404083441243180623828491600929599116524331353772421450755686864817647443229145787584960591859181126463977370274729499229541936725076732985441763077628612832401079031306681705815426872799601557089599826670322863500389758837310857033617974527251414197382320143464155625771597415306587699578633650726727464349061823678152038029284929979259923212439405197005661276337024760465289889881759508479682427313203853607465835552955505867014886831864227865553437511695920208772517973696115489465509803192720539701076808576128679109167824755077151304077432192412731031198477855120540508924913769498881326640286767059922664191410493878818550341374404695111777889972677713315890227108999757305082473300725280759216243498302311508501911738757008362617850903986987949363527541902468355596449104333921674928712488563180128746893434629794981172995658116339891926537097241823671903952336248068816076093318493145022134890458287922673636746457212045819318729720862047104520747371049280311921327106247976395241540115448725273717664130545964660062645444523775805186581298818377064809413463115915712560139299599392583149532104017511423724851328362166701452324738935083234650831049936534337047671494905003020008915822853018452486604957657364572868805059970475404465462000122876585043494236617702361918840073611605384607213930525722948297692825425126384061441365148658485961684237248004995267573829134791527691576940550422865636180989404448191975186226593793702372611501346202774179632103709780786859252509487393280512831681043998746897744824062913942926284165484290330665830974735758043096610097528298585901935855604582846239030503644590368606107436036169164925928854152961162477085474285190158713203190940731930090269377805257015040187711762349009076270965284903884596471251459252073078478059374801436338376420746131971088769887893599060409633930004465382058912777694756141694660395319848463002602475990854269266894050348609950467633895002578177792388032441858743731498757298761123631491191241133751819993275483003315568241099346669990203696955525770810386078905090962369801685965128169527623442637575607577189477670523573032816657725385658861079653545315485777497366201314406106960649191004034593465337196627662908670176231377022899141126758463999810601687120495512679917399527893264547655276038076247419199638641392631880193749838852826255944130979860717577907916630687260000207497973804058823542377366691273633148471934799491040879014057972823225848330937927980687106260922205752065452297257762011596406098945577832919782791130701395651391230459000428171776195989934670479691033251031861808148300460197017475179803728866343244295156319550202329939476944404879231876707022172921965191062403459711613929438521193048898453090808960028774273233911599590684153856357000857674707377763836636279157724998221898768708003654835685870542661792357811556954116086853852111647735897935677739191331936240650992354063113315026556448188966385477890877342897459983000070744324107734612778974958977452478401232214626317524314710138092664659312215193497094035551358553006283493123872415916520062179064171989854070254423640057467397234880350941108933845152670822153293207668450708636035512651880166828606784736293938930934777840141727853332569624945849690763390123601849868372851312358324103086521906956079988791909667165118205946817238967584603101325165963709534772703131129507041521084049299658859568376354350118401552670268492859859261629426361811365836185375243298170201360181138217151433977927135713867173296383852760661726189344782902363579610929100812400075259762465456966541998033256721671981909476700902509002544961353846517559150245856252300207004094196992063400206692005666147516902716072441134584453295649302441458715915317811432085767623313954892269698625339417450776157196408765875218861719981635155527252754996915631207805558431257604537022985219249342554943075031820012867689929705447988886423222263366203043599675294521562244507815120058367012316322769574085452049862682588274041436894717053602905199844796892435164564056937277272367026156895574281987283961144814226390547795389473711243722751912094285752531635997407845107945230236725624999472152085387910204432135515902359127311295123320996370899718592559071568695763801630062593513144020383620011345725640326739277603913540409048695194726407667460506513406843755579868316889853913460115548093393122052934278672460278705419583436789433681438687827681713272292159532903712721426878837151969313204236508385669169151521444519085345416016878858480405946408394070553997197313183700948881525611217300123168143657874237718295999832004900469395351052460206840610769955813084756757846729368205327901992279710749938936188154558423585028744689573774054667423809362391590973582929721207413002192205060168962875503679533883049197768588243539076725831525905037440913775091770112998939537889061040805735992589776824721779491742724939595579630346156007246328504381920483294196489604928075508732881881035977086964994985682857983697262604484177652229206118209331054932254367216267427204553179509777612371812960748473934415380286612026864787183400773047181583975660686417549124196566482063241817464357355755392018117254892865617526541201626757253538165358977745470728591719643045286153092571642223555551231891896862787892432631143450907547054549093731131417121209274850382937618258365109709184636733730682350766576857896062729456239906076629837800357055655013393397214944595038039823272000073320292309035989519572991995705221207150851000463131116601694269380653100341737584659739754635022416640464508190379763183302599701825782981482216390589856069017295526153633737414828051057691113174072324357690261789283414092607198688577215027154140408898362480306137958309108948686992068904546689895759645042266880966591054543977319355314952121391472803719690508557284045463230868986515572588791140543181366593780010731570973308343852907270253063945212224853194691334892741812373887467979079076285962275356967910818348870155960086097870534345885653016265823913477714605946205086559560817901552733726724546601910042016887439563450478614148687485776460279746156099168535932599064837043450922169150397625481113180729616520227020596916357937471797672078330830817915906720468635158476536811563876729007204540104173496410555643897782278769201585879818900844657451281817255450092126293473813692809692168305587349997618716341623303405802500172729524613312206859318228551413646889282223737177824129989419889646477067300590253269936894804917761457186435051864152142596278276588693435266671938494890543112978320683197439523561517774510255508654692442922935100661963671777040101164533475991460225507164648960753837731883545578785281820796874747278936807334570175598817764867077411232389644354990292659865350419112769897114833640625214212929997703471696086344903209976447554012434571530185208694508686552045743520588291226286209195856302674620821458431640197819627759835686411249786667600784564706296111476118102880466496784530201089459455708736540159155752127141999042379565341055614162116325694786241466065285133139342110163879200625671819675159974100407251754127710792616888230281353678354539309369741599594117060162810946407802903762422451349251296447142721063484963594988449353438970405332756404244210523914583225107731009461828374438457202498643371427174249432617645033985049948343849500563621171492367073100267511025018420273281243411587845524701880680871220321244488514800345599713355117209630009521851285696776594681593743742751974958809441636816581774667009770505156543503157159829015144362117307192261585975145909908883106263802398305809749349126701647637122396997407862881364429481215837224242295001212470915860778869855601872222585207487177592134570204712429268174591791236065147008225617925149790185068818488273973896439155219265182600208853753859125858273211224787026391138757383607453454565112155005885524021797108032658971670004683931332564921975202676990719368391437167656540479112786194821977568233179491560140805290266475448078895464376506131447058790862205704953822554691441894440980092391858634654320299363302664352106922608252209915578425073719572476642215132122793729835358484389524544721323789894392017426138569870877202265468732132983469049381842839009593523535544317137915943411119226142624354882788065439232039210611889836735071348711680734529381801908868942945890193926036274072271090652747997746450339103591601360052743716051053303155174270367309877673833765141160490375603887363281563946542435006788543810037844138091464481092664156409632383316424806917571912315481534245744157893051581661488492743543522724825434505338255064584158099661125954845041481930707786520389551134435422474220878566875709961157736831649423143323233229669765179638915492866318363468581668559867579861688443592440180071493195907811486120553718813110219994327996827339703659642242218407625921058360475556778579563017227151605114191690304675560726849627428738307324367527730589365258170864992305731770062967121699185615812761839470726929585885655474943073165874960322984889392280766454348810945392474661266820416256331111194847160734832524752924034198578032858251738725395200143426103515611152295853273538738743025294823805090828330044561929669243148147791786737222198514030237050943055185134409878880958983432330820827366957218320162424229925287392726798832830987585254884523531291472918912444589641158873132717725970944775903122563232646935978652187785129121143579298320170232035575518117244814449556393464431651351897872019719836851466091555235938570072261331527707026018790221124204995530000892839698448959887856705710806503399280254193491766748747258227353918911759181004764046512459083060104387159714830316717417548962397436131792656558097068909830198002811813254297962041951788771589705996238084700934140513292932811642513271390857919750668065494756396634160742690091249501973111369605170779085603005989706554993782515749528847447020628428506925645268151704973652601304263294217318551405604597039171749504226033278947716377763307760178172942143638790135055383502373935399526950419317113443255110885880455851325731793250489138715984039690998595695777190134136332523208134694953352952152699191266963364644886859029299656743909908897118578146201175177428687098191221018569640847205419323148594996796201221574299392491265565188201389289327098187889424309946308112530463283492062865695859358858282312719148931180361373876719519501337271694356623298266522324346703340878711081662680878948824879421047978449684842697612851684188070983132200874995235195615811610899064685564879890892743682350147483173993605782616470761756660858327454330791058101437752575054327189214300227444595973498921072509985321847945361951220366556158681770433940104919870898396764456819628453986492635332936272875725232347052302251124438415642224414744956696786144659591850798431944338103250946969456703270540957199938695332674893732650914207350249415372606062041729954619895494875951188136086905770013205808521700081154222106727683456658239622263210204067393327923759449834570586075452055196890767887973997922788793898651822570842746158721759345211595487372125814959974282554939348857284140937012032998197584242473469810429323002839006621295607666881236844859261805051183017269461182717992919571173390475727870782944985793167490598743836530878922177141392864120101422510442155091940710367609340623643847347936306996557511867854702245234338787977511469899433275250946114345826070501818212120328778103811348314574356273375657446503999977439976170850679848630066708383765474134832138957631374075752690730991715665048175792821852077729483952229736476541518246361417049086017901051830857719652684463588249163447619617114456258586821595264369393006327235400610879877962766361108217931725945122226424800605627191460270605143567573504286936341619552699952007460892859913167991513173235827610757335171299632364549957728787379087991924357731834686237911838116827299437166137579795177080321002647606802388442160509820563297725450378493075946495567436885470952927050174376049126337863392354796454963277769014823629123699462196818966773725647548470800162031604062221441954950407482571521198352392382519728353924053171189852551980200567144655485467792044795823713843221442591381824560081560183854081343094176766242797584414513040969632090134866265931877562659331252287198938937961132311131230082772436793852585798010989061643749490336760645142837531140815783470385741729268151100728450645880485341196880976134641243453056239045901200855760948821855057224455050134311164942504447696696582677527149504540890188805907071531335014009239818729612689474864839343487496918729915181086968195837012011245561429884885603059568381399195483358236900805985596289930206999540724405444583720268576561617368693736136590183607999937168266346043131489049322136449222408864825087029228282558361428575075802357118907237380503951219813763390420185612167212798552882127925783288451769188944897163540480749734459332648168036852443703463850051856546305233917751639419049591239024078840261029163941218390955950768011234320270256015986025231399568510794389190223609980384717257651336189367593460996453861645618207352935028351721783888671832817186439046564821763851883442904602816129321534103462557836020978705766797775097887753546234740663480798365478372161061402021330278340666224761442198327342750963893612044446321266855525871402324076082161843014706654120287425683104190330289074198520178292636852934830339847434573535259605421249815937083172414041337788500501631162565597617982382101993996802169545921313356934029411678398660734371222297235990718065442700028496758721346881300526595854341765655167822861661187881112667600538824223104106703910328628270377285503715575292283456840452972107839562947018299067315297690526075801897758620504509558160975184299816339112209370287749573655159508767810524779789424177499832766593398270180493527938701766323276282017640337408203523585654291176832663887257612001478822095715342484145685362037006190503052508228702097852767140471933730200474985691491296779888131328709658915436316091007641839624553911134471236986393015051849418525028342661869942116759327466565985217621684626140482503231378557427467705536429114056860038312257802039716056991947985524915553132116661467706882202971040399468469053659876209438251398553448899757164751338486414301902876336140230633169344223798653239354694957777331867350717710302337371626337736762293929552074079558093336706764854185794459393629503645943000457517677031805944108558647360695741145954631988655339999768917403459852725194362260351478970834679512381322273949744450078257985851259129788457429407684998467158809082000061234745909315150273927445889961858450736412651007793937391797681449445792050599014291931578352946153360806174412168134155726225292894746174641672173780067650867682889927680529118039970200316341570512209646536279286843637152326101802164952733341950802404752033151859462842666648088200992844595155157251019270694754277324745212979947469439476439790600063418619003043661973640210596797737721535167228996143455847559449534049727105566311563004671196032033554207863819149029262256155849698872311179181744259382029375648570806752569640688255056516529083465981234079293715709612629397565456797302113510156205872299627652941184881546562245822384023478007749250704760278428364316387010383201616713517354041918290436491523795614948585945295897469491976919680664970568010537554227838336144720692211840209784150242450125791115270818325363002887718815618591803973525768828222705663753626318702617125523836886721277992365831954412949868928878701129543082518470025112634956608362096389632446855624599963594560758353543801539260520736639370676149321794829901829643170529333267659720713352077695499248845996207058332524816603910747071138117118019012452483398649644751865369988219238349108828511310392606710674152865436514708615122022403669776609453819315404869338500999122399217645738270271593979671519697256480156341914289657368767257838500822533308151961092519667038967276154893393130578910776510429596651612944126526171065970321117872963850266273290266774674837528472325695128218650817780283946570744020443541129132234434463109878128327362608786123132006663859409646974979017075944627717233927252980770479158887265511114725486403245838572513160918467406753167255681419614313618232917373407757384682446180144281762955546128344586801605930164592672841977515645982623809375815479135853138650354144535736594292005997166314338508042611776952415649442250305544738787972888075219070024967265013083324306502539004609580264132898514613711832940274931462224727553425400948940188200559291204937973288328193343822377930247428500134120119248326835945096931482718427265469032989955309684064186985595141165057633597858597260598751688102322580117138931542511155398926124351912490393779736163682319216726708260554725354206579378707964061152718173648822260136512328102981543130046069735050585401486566957165808021212708619938838647394198642789036366531290910608821316318122058255941945859397707918145197849205376097826377898061054235578380013519812337841826079360973252339567154759873059896946978036977973552226085507210805861833755182614300639551115003294537184794278170326635086604029693796389582190401505740983593195160313968991142272461141258452132343797111524597734292496249988797999366407072541380628316661025757859829289218552039233283463109790965385043643318793710069026679284783646305267504895360228505690340283270271325456414258184186227848483459962597668830071742268477535902063338660025539870694952390669457188814752445393846812080551683018684846079818734991884784613213001783220785335842738155676866618115078138808103638691985809172482864046835246777024790936405653914133296664017647363564819839719106598009572680576944339026773310521642519733879038559010683127993128233708016770006612510856299678387028018818905913529323926583427217309470464568413583844611246301568944412994822138314090043195710316725070573467730001562691107006866617148879500226516143677423971151038189932251920057260638040296409424507901174196354617529556025752426154758469819649760004725116005340228923500563445277061747781440819130509418488152613298540558289008264511832728132514703100432882142218636011270502797493141587012222836657638423967910490329345854716295788794372591286665106605050445138225143187037232842161958556855852880186322415517201899448809130612774086803730113153361621667904708192083429052555123820328242345822354718993845986436199989620360846519308273267233017293769860635252256732335480000597750716670061498689519100700547590142262485641816071601876498955248506922311744055179759394455386803023137700740393979233014321009234331029740601957133748060451628717663746650951565097779225870069410407458773557301475148095644636983924366345768260144450787575480326455696936391147088810819194880870636914811272645632794016180208692644969985193053780964627954134702006964430724385429639242032605400847904728851582980876866112283439956775630949542875084906458996517790918606141450865682796723673990539876819438634327041371516724764764535020382522969133944283170120958923529820992069228990198659547566934959143301125792993142893889635131780813159024511399545274353716631082303458710216244072733460595371353056600982167975832415067117948876525102127564760822886746038453458265278648278650264654991877712125809680352404142474885535525528245232268173310977137963142654068605866719564583010752364600732518251426874017341103222690372067239546106074286331951613046108413969488083734155652077309108418946619591030184185418225749329131924580540196147903168871411436101080681533299199635823514676051815572594698650879277843870226494795816039942215458537615198873911439067793327624835382704874638583008077474150435375204016758549696530313746758681214469887342050283423252146727730674500523429116688522891614839493345622743923489190297632522807869051415463927079188096981749398654565566456410881154734797705014067072319103015849747214323359354552582277339147776118621731554468944742997537598673101414725538581596320805063882166905877848776123576825084915252664741582898716167383754123362020016182500532459205715290280896437236511246764807424036162710330649881146075702472228748585428090236202010165760938865457757498894867162671792461340073291201259437672436417455766254120288886706649938013297412893056829011812227022661753824161038713690183230046691959817790024737735648455618146783335711142535525563897511065002704611383623915271836568059211755841451586435751951213728915838552034099698810191238400721473127554489627111840215234604812261885867784439804284577398712454178039393324053458166667074410431420556142481658725946897030843215797687431821159389268239171449908928767421228131383277037027872948956075526709197311940855466137656063824692147222261918549755976597762060279520859649205131894626910256298761294814588602274788841247493489924341604492001825550309528289475397800510263313735538861903294238672480483316791354736293719966037629816985773498288821755413866054014396178135928876774221383447939720795333222871262771964212206354342816737475570264857632744207629057932503803089076625207899545158438440603989112036728012558542620434931442807501936932150145089569791213459368575105698907672553479390365660398843659305225841949579869471050989114568605542373280307226083283010370230696287193933681821074856855640185996689939578309164293863574820020466857914081740015955335873735188275878824647065276641280823147882931697200238406793917724537671778658197345529893217780110417462583277110320829187310687105115495965228536946398926883334020421117703567206005521773800161591008564332850856117967586955877974483751734814776479761412420751426647370827723000737597407452172236134477542667939733619297406813621242307087753910293480557177867550075568768529561465500115823206825053843656924924265292694543065654750597292178816367927694127417182644383576155956075058415601282894645406187422293448634200742872818679350882067234459164519429492834673326856922853258573331013186996443999050493423434704319128421258263333081716302757067624489940870306889800953412570836115553475991035218450666317359831394143619363098525008726906541768492878776547395455050320883667922959878158586027226046039516058232479310648767845504844732000431368993067005833233239764873898024894511729922358016435412654309244595112929928991899848395679984592385546133658566315804364954853673497400708975288760330748854944640502307214911357186480398813275948687946177169383448640393388587553700818777607634245993903364990102347049602678246353225502550928801164726989274279357170174082153765050020792107085285719866358435141392312002275131155744735518885013759108161605767044480823540114581118431022846078075151146066184191431806762868141092165850697246053378932689263154785232353462046895997097979344543044573534231058824905548650060023544156302956701219355182325402197042060963886129032018685250922253946880271323073488276989192460892135425110122826784567545203132197394283098397472322293856894036724986762846407169822165466916266965349939447951518317030328843377222085019269991196592438635556015477997218043594033186119887948741684715251745919843410916347680028192591935386196121106198777522254957933209345151897067229500267887727660596567733783628726725564395948362426504660510240591560522592171329948686188068819731397778842209316470998381829738237541018738752759611827139364171213437352885789684259814021628421245461131921048823805082888113285372766427555902196897580533360146067501382866185121941863080413898621924412905016720998965856293238641018526957974662542336942189216840036389918272164029720608558400051998166321586822776601712658472618127339013562320242708240920294488958516756830396864723344616346383181601627567908009085223149235065917650781846558340733987833245275002593861250376897461058144447283916618677212013031163126510299749697922680917496166336314248676033682183840906787440832301816059806231628131546399732108541020715125116956165422893843308631060875906440591285577940253822284370022731157842882747974236719414003062509610399731219643748304972094171699441638214125832719824405099089892333401296495643831357977074059535104982071657086355427223175633612711013186839767502258193507757696906758414908906412804873709441190300808983582337672542571592634469602318672394047765363185111672393335305638152610860558770002739172592672291370131397551270826538036263209165842496280657215839524836663286771649910022740744336418027345435811466623032757390775764267554696116595799024001255965610418537091575642461525422621086555114744962229981616018026656845454914554789651048616861333916016285268732773478080476280921259613714020607928885724096462547181065887151109523552514844051037568271097781257335626834735575726648756480926811526137732685167619125382875419544512428191464540501211442287482668362371255860599911468147803736311127037160785324423088177048264744974439621358024053233961774206830209634065036077795145956312047250215566203334253198214456495101101495560119303923058355610162650501623561904419051548031157876474372290144986990259309823873419726067023718092760822830531611106521849953799492141669682726586648515199075177113076599018803736820758722062130301256745037492854546989582557934823779292429325787868473870120329748823436933816937506310488027703054876365686175388127361001304986058023113807819809111853408206933820741378678637336834461843613523582486298090950061452183608485052363949751360428508074939243663838385939637495507115029013605433851827678262887726946589919284610018179914053452288477032943148903163639637293135798414678016496354436997770883578700031198955289482477179400001074891266697415590133038338555023054264488431058288261337956615902691734121021739839927325478349977361749959067807616925901833663688702067053118703288577343165479926714393898243353153585973387975796151312140032295373917570560738396562649807608681075159040292641777925512073714297445043796038608071385774095788258018957224247478017478206925507845500919851098906171384804066654240454874700725374791398217110407904395865876639727629589869479131807752955533856020419104212537785886852246696396672056699383917686068857859619342716537583300861360526609247169528954375511837479329069881796232931026370412941427926500132881215911242021365361108906704330279460004784841340469733376414810776589367135804388361069698725420208934214269923087732446793498088709646178660237519535669270393232994235069837211352858037811294639884575279095690137953733467472155195526543130929285307516961312536498837529005919645190746650336892037742320420773303879106275271108176407452190185764607428401628919818648006224318079796720602010243799822051606170449650967225626347220677343548462390358268919077369566890957182033180483789333685324005948324045524481891243062711012219746446570971645891899231463418789690208672268476353084303226492248253261866785461190052971349066000539450587409234396246869590719038483023381921142164531223445572737580915993665295179203111272304043638584257375491862993836631890466773947861976763612135250996020656143987734750989938968200116840133277926172202516388675516106042889203554736889185089382146639419990794228271090709543571514573103464902408503709896480549523805162091051282268784709010786106504600801959538539841450930154271302936466313703761937524299412749443201661080577527884402246524118657329020412833023982936876389678215251478627461376285031860782960841155143879093967952783696065719676400547172529779238228421868852387955186081846219154597707647899859543406881022461387604924953782089183328759464593234104895157111643126684486616078611151190660622854676817549522327307102522008600319775224461398034090797973514149977315756127745085812096424332935331898036098241529493034119334916621745560837020389531805787538652701146340539569465243974607224783900404722808009133259720354392184142796116427903610303465230908976414623847452674991756709337319337075468518400558914221215064622523558042992686675560065458056048282395389538798470282131839842052185243419799732934962902032943849625308692019512600839290153419812167076211983126172577257561053021436413422661224614651957227384420805976287741185246301264569488357745499272671117368639988544196438995117048370339299771107263535153514430903295329236107431897966708225719998998286379391978366266364032438009864465950571297951834926391734714264960110055216289601414788567291071233413634035933524656058330520024403047917738735969353736634599166140041019955969938355785817994181241922413486883785580825002104399805059705951537718106296952733445558374860168568733752472985206196117978620004793832584069685616122860309773042873578265704357932432527833718844794878016038126394467971191691780887873497974470651199327539485335479479977541689543914307839076554384176229825736015299498046446808975807787126078628726226770807458322610803825558680680093569147813503684428720741599740334633097736829590624749494509427042096154232147640472592660463864141735510335574884866729493128417446867621320613822444033004576815158536911626806065500086346535036307210707633485551207378897349515325926204636615821800948076363498106744743787734488187138225590652796952781641783033345179821275468231168376860056040237357961007891471409952649327355506918713513845726482548857051658219786897918960256278440738630381369486642653117266499394186831429735320293100535013240168601030958304809955406923382462050709821332536456363646667771279479304963145160621448176756075685058907816106545196341745591722842696608597903121392748719143050051569597210666697046388897764850278594637008788432334110376327050098505530403536228654708193710295707655883834970616066434017013966158082720967389592530117025820868578897755168004038317214859493518896915751407236172087018743211060229921114892353288053454029848336034923424582078044664299582157450510103667318008031289208295786168019510072612174086502757008014995867027002582805748975228616384952314227397065196152076387564251136260399971079201592773951272542793562014264638307127689314910886410323007188762973574987833433868303789992278594484050032421782658546882422487738427385441497637644951751538424353148232539125815571492163993433519341725685016115244622784714323675534795846422443068266050481896110008200125612086895689285135992602610258115933968610974128131300394317911972663749612074715928122976110125724218205922641943862519243462667449654409253404397062813441011412446966985920273597872879773959559354129089402393102762843564755925529805838543169178166878744521032138763457369933334204490721225005863410346061821689068548448362110141923778865466417303312815264607942010892606598973244134063131140586105880497019012303657932723196079742735432360270996886284164830790417218707727933376060422968197491844378974092262696757271755258595130746011918362640279361207528308488065195212977836697771834208938443930731555308086455141264604515814075670890318845837009911371916548468050376278751144910301585594775509784350496020832115793107070296802984357835515165086024421749420557734817800572316010906834424275057251803815905653215546105865735473034889607604696758738087057560842383316277125333435368816948370405755640698967907017812903254425757568813029106779298225019939887646303209767787688859991769639607710796570903906540194031007540140419311219651148698262822793001445599217160175340079606215989216794280586062678461967918132866970342582039726509545541235723613761908317206740524113718440338748674532079647474680950596231457374988167549234993293506183172445161273333870695605468054881261625951716883291920940578685326812765861142347308843727629795312945809489960145573079535774538611383824397158469561949808092442922339843817104355754636516588463176094136093377837677616549410312282301054802470983371537148464728359223307477138437712711179315965049820768864190723890778099936571462632022474587551034813939350778063168809733416439694416354767724066371324615492986914331385881217660630836594288179210879170555371313648189056335380092665689285448406161495237014962191809021076017069193728219304436574135193522490257867971318768878126228826366550612514342985122211129076452873949667692191093760805653746638909069288702378643753350404501376110583901432340448396260372541767353205733236414121481076122576050362211186426748126305011819045013625348721471521056745366004272855290998090209950671125618822193684159346825474630038127220632488569097627591177720840488244335659218214112595815655186609061248783800864459652072284195716233054175528756647552647611228031145611567768611837110860355210746894938092180192848570522681817636379309514837612587452847557986488880912046236251892779788201287613849942400138546087728424912075071316405508801702287114109613263779626257341649674053334711456411892423546590953206671470798741124990631423034129466088708380254559439431570831974012540854302221734960203844845376846682437433505387206833482400133484708669171007978164675146962297311787435888196245534694211200669439784887509211702922947194334504830541085080791713254955527456545560557086019105971228225276666085690584060862186816238291402406771445962419760589001022319027112552412406792084565183756308620614981518619386206394723989867333078462432816937233127821764835722771328647819881619320256506532799021266623429913457351447761505224270245395092828588658778001230796929346425988675265182221625711834157492501590572938662801888615711127131822354035797482778936665366632124081074616948541408271606124456274145524282016927576030837446850933536126720849906262852396477195576748118358357565733717086614750115879300421244507290090475174634043611456335478997690059482228178059688534462868917729765883425559732534345838346778165323685056735270647989776536195396484920144306176874218094246989734915288021283390289880902824449380620027623953819589301220938512155111410206323140593404018368885265665787205433711990884898608232145562450578720843840209406165247446221855654750344430784608049231372941429989983500485102281385141535995343038537315307305726754032881230701170754024046459982480770746853464959101508273242159834990979448666792276619848665583066667385107313880944703723755589369823594427894214531730767382564203030294985200238858279758627916886915230945925116226649629209398026865168460891866903341634587174487628872085081369136348926471924639330676689042872695415936419516667156736138972040129265007081112442857235122833685968933933897811704026749593221651744550651878050769064182242072907819274925210392224370284435676873607180664926474143313353959763027385715036255927620586049514080573646168897244135680914189027833647076434320642552876280924618222052568872429980785382617005274644676247306591869984573164408974549693583963996736846980798536699494036363238282468140689289891749382747064013395027275944736912846149752339001803859256971263694765969550235682641105478632568785618329896301100861549138800896843820981634391708389234587777541669303080027475287628019365736683919995131156573370229630281579087682405876765596154427388203343717236712116431751785441322351071379823143166974610737729409641162953263987133841775147786030813088962408176290636912183422039231621848490400856134583892448547189784689752718167900229915186880241641652236168360990212658590882250757100217402430213972848249442626366306499573762433610477236001061961156930733907632090307583374390007075749260885911052224428038157572949951977107668902748579133357152528572575850941536838217477671502205210251864082954651369207314462153626865806272474300530309305223642565878596627667079581644760817571680050701422193965809404484125355149865583337511897492527416660946150923149279849363143077350630725550392032820864921903069864663596686845152285240080401548773793451501186048784585335736420128640522933758584464227098669856090539180633678421865281488064417016257264749381339499301053114031288370440556378509421992452623451558731306969780523354445773835715916069431237273428244128224040867465092856257892373565136287393391296244783654375197775585941546908595159405464854806279233984864283394848906604245028777052511624802063462935388098285369765561272179091805781466657016659614724809087108251710276178282982290185629131466180785842713356307779629413845557581696111119907720158432426601263805306218100656086779865995662475930674656758375136947373215776786662893780776813398746023378626846075216198839333050919587972772012405652121071895668876862991895085680045336339492379005913569813621327791419545855067795920267504562334736786507524784184855611882914521652150416398938653205119317956603830450120970701828404398832014006965959065867076993109404267563943699533883747894206746155488752817425929769668523803785155977390248939013893131790082884740688870397318710411185429882219865382579815093050078997326402864936465796755148655122740850008777663493635406542129492682165835808859414595863728860155797522406237083038843407546954041696793907017223016327804867809424220020194149918875418575714505281605398235095737628853628568689425830651636306398090522857281562064857968645321199314708715929386761092743684287401562577110243280418761131113260639982250736810189475340808183548347729080979556608789100996135166372252427249195935953112798376961059388488664115444579177527228177111486495712483892958120408925693446691300202750944390997138220548695010706926994058998079396640104339704562946251594664140773625358334529144261801145367031185007611726310268087163921704326365501918034923391163909308052189463435822909985714127898399384554450507208844033252235361265822383237687905945863551583436593011275129482168046073858839782707064388039218408107018009969916570439334648683402702152181041079383776468348806053440370912120557707208723416787466981455058095053271353619959300524599313948833465355010856384657558178962571888165953767181890310456993758713256592332463962555517160179001203227805255501251150871112324885100956867501958720551424754526920339119159338176696164102869482832855687682693251396356340038424727495152783477379769986765643079532055802446657571835419723894669950077224567097353356843562192634937421438571171573641449183774848269216594727701875256033182506414524273888652186900869906964630411788977948623572704611632297643823134530451121955799554277931141455640717096969141037450152694757918053506467114044225145439846025634847242463403884012841787137941099019239761793882601428403481606287800383665460826280254311115381842008264822642354114860488792741116456158113055843200948039782319603813382920450844323740655472494248766460492331491802478772300570217277027089932332670875420041528998426438439107095838071706451161162353447831250816443150236858600160452412919908782707968133013261975708854045865792868935106745232462387825879160901005983197708477726503110505562471620909286253711142487460492064111718813926551537057563029568197067524603781879065534554590400931690292119874530724858022131937664364721753703610072304360668442510342740668835803811484586938300456677765706156440911053099171156761939835455737480934319655726093140435511989861151654797958720395941269371281702690542659265436315104120398487337789502517202299714005253897715128885351915024331747142017570053861287998202480587788293603394264373456669610666984372427310012595387391164425898508345479299959175798373835044717048683876960276138931077199709370264774346399607396348265455384049412657937303119180406985220956795758832995601669616829299773056010303449798935535311182366279603099707622216273387798117947251090758849104430251789252290543905351189379113050197007190607772486417918422712839348494319951821702236264235189473813941697670794708050264567026790929512986388950724022625655082592832318612719346082233995976505686642154159612845719865638485287187585528793136520641771409357392159856991431487884248639947064041721007136800317662311780941750111321796328569712494767640187775379455398743381867968982018333807570266716108322242396762960296856747108794654850039447972127237971483569888304459840459625084947314502961003161469052234776189606705553864672856313238032836190137611616598145998390158238666918082475730436237309380289780477960429842507771590982375068463409253506552747468137141638080735887550612938442051227663114159970671656689051335063152202348076575365744741113121505039328610473602486187724659937191765316622698089520150016305853451221934185817491515807286664444776758346057418341578240646347196847599089179893467493427041012070496003249477793244116502963500801434548398159366187394845326485324697869004701144855413635502359226978113532664693491999230871261205423066900771685743968986362309140274461194813980151334988804786137961895504012296250390106900924058065859295663341629119823390573939589144073921564982786613651249155191418068926791971029795714499307018576924264187513477684496572567028915892272200860853029443758973569887697337063025908975588759184869070119289264043978596923939334614166664604203965203510175792847672113041816788132196233659992303869059821774049498441777501590012421145459375705645719228801000966789698409669941053760710962588773907112285825999524163037112129618288697009021233677898126313151476362996741295203337337079013915372114704216409660346536076487604047010384848200856091175581508028689556259286351157647536758171462547066388982115052359072109199423682527896586612585699815322925866097607554717496582941995683123853305329561549166294517748818180404086047140537377536520542044050084426091269871898375516846630516971981622806970616603035867644799418180633604450697056389638763141170701883538972267382320023954209535495161409869604376010505933251788224238931825478455111074913326300408344610605606332510024837446490598768458393698426921837789507184184725163216156011993535998090721804785861712530922140925219804652836453172550087835224088076591930069523346693847915246423429189297774161446708057746500000274657812541569561348703874662723960409393718762908273545956910260656957046641477017605691061501683954917344101693344330665400104240008285473429606812544321860563779326016238556616618538997624610625918939937691341387312021531583045791131277649051994889485955454495688918486351956211108447328162484715975089792433026041153598281685693488044725076321162209416331426341060402383759297443304819763647193593113046202362550892983762467770768074074891165793374295838469811804955087776900519552326977628121528829269652501292687369343485994510839233151250186236610172642086500898549006457763882985175926659205540697334779686741542546469135189168925102534369824922310972558175066881394566886148547181655129750096475084473980866809323081106707952470675733486187782429556816807040846908628639166794393437986724739386997041230271199030519614709524451502036270593536254397840861331311692467602179324393760137883554152915915398643993655910550033464472109112768274853351489022257449427662561830071226042337423773856148749973767832082776947791036830908523055369466318794265795465156230255754595423999649470600560400684990053065128928754209007443595227226155748439227081783713142552255823354752784270660681400407457522081587529059840940467702286153250431918931964112080614979975897553106662513782243171494712169430381192667391060971330690199659381104727537023972838616092121556688120533454302340055131272788121166271251674057717964115699695162907084680536258001702392447943944678434078308413887109234343576353372317718438628349379110630410495017633817337669346914570358226416630173569024036509291998198060941525636224926089687694020483114866145189501577794699017936082069569747367078897768597917327460100593662244973640767826054901491961993461879887933779769979925925038755286069103773764390768940906395422785701259378448973596880970069379035129168638348899319593167962904846543397968239621743798115050365654635590457921925960828503854592076945378472193041931114324596889208497949475185947885249924185006595819935397246643322356439006600351321996438106755017465620900801259556083246646455616247578329918667265456531333365367090921193332925096612633842647040055686726232843966410733327172853043839529718661038674508037295049092732492194903442539327429935615387582585312519365700607056719125070711891043846192880291571901409876034324369726663127310144699394839505917608969144180381923989856881889850112773166900872706158204599955330499563676695592301798379735159599641076012009290659081269380887862262390063145181026635787192712057033755396433776723293963204893697787556596032762011576915824433126879983030027930495077861877072375275130204765382779177076617009373444615933557203283286076545982955421799457678097955376810836430713547032948860393367937885616144155003737059849179384012086869624677623400074729195756087104190429673162241154993488086797776079410124626649814553602848502177684886061748388492947652689964928082752208181660722995970868721661121472256008301391974857801260361515432230247260543490837026227680378010918144022876125599466804955986997140617334040836345364100911735443659844527545537695857629366492348537980380923089887628247701326512558299546255758990094080872499615340984712418093128880540679159318804864602828009580311189746121469562671636722602038373762384888516518268310053951456633754920644467273821305197331147994695008809421552707252677691907816316200319159771293945774926438148079341890162996841106046524159512593735983898278223163616192854162805274633610176146593679224270600266495113000422362381874080482554301336380635972460382823943712753789680593583621922862975847945904389226474750215209183785667845220512819781568924770173985139632879077856180889174107949323770740536048160322533049813203083264354418960441184449290655093949898798173203347424322886586224918750455128677887450593236440508364440567764715935235546993370607801805790347763868933814705493170698150501869434903448937030966139637294097991217508649095317391408232165979021302151188356917500816158844523858350934817545960200252982133033324090563985303447020777329170696092703712274124116972544313874275122459789827378038544156694368965683865185566905456304221434371954371557371814551723858990829838766056888033330446047244546967467473623407843830122395779185518265323080945682646882773819481545264572909278377545624214791815109834780076911683143355735358771515792392603275496491355041930836134173591628052866798072597610798971959492935895799584869056231867855749945778297683781467513903724885294089276175414403248998811238828226173004921265712193181580218143498754980878661681944473866537399097166920514013139122511051998813235831124246127324862435084236493160091216102126418788107220023065416775092866689924743136144023782917080257371695227525875942853232750360248249070335421821759958646703814907961755692746382663261804643471074481134796376175075952275885166061971375606122850617984453523056965065626493118151627587175668561664498290393046442161224776362732084976814579293252191648947944893710464348653356079463655953844075523686835972770944797403563915600436398257869485723366475659801227734034518296896044068401909960306666875018538051332272904574806986208184954740378878102607407384197434957248236780005842966321316445579564396514628906551846197388619045740861056182244814204967869394191081669168872807196888800919492163331375756188838121900838431288213834810213676920772021254472673807497897210350929082433871912258440673768660592649613442319461156503604857520898969970326573430285256804009048398720813640266842156042772238032361693438952866947315313008690377331055000808228593646414614105793943375207829958566156939373283436196471257470884209261790181042780422817929486516913089925943547851777695809979013287189657468725312294829047366455501356767561396159931553707394896756030367408907686725685799371124017311939158240927405950690408158563708285224441195398261215225137147127392677066507148452151131575148187502012204479414572366321594213739350942316937220363723474722191799701942047885038848641648683438575985209280276803712438616013006515772434766126104878114757468361903227695296675248632897311173862790724932437066852022755099504597746822907905473978276429733137122414905386648526055338126491439167193147420845209421865377201164514782760237905301227951366381425013759111801730557668614867606895657295865125148765232230793391732006962995929144120371685782319696659762670346747599389047326477432175841634550506985529534326512431912183522481132807103436884995907041884698386815589687714956097029814409205158506647133126962660486987406487681902727660844742667918198951404049595650480112643178984746590173002756548228702031038754884427994793807669393193578229656715813363926605776666985457186856309410561757189930711192732392533264376591850649236530149597844940038824088988379033100224394167656085913195453810857667171009412045384117954714415999884956826290817962581436620057791080561793297106330627985362610927512546744867949807396234322012038322338289206690481932054162940559975562912141740736046418638958162845821096794545121944857957724070923252539008068466753325489588170979316693548935048033402050182805781883357192812674095126886428938331603715572174385165686974268312362738757832846084670724312223036908939017722964557541643767568507649968180998843143864873338473272106418335081828706547572779756054671670316934449760392748057120009690612252629008688782714818993335324495191170623583199290688382702614382222081543816236684209333559318891009919278641048271843488736867994831220561233682978210163183392130179622373653189270228964932958449457458030485574235656860902157334514119376875450630950986078864541796011577412121005381386070685192217684218825568129242506422590378068823793031806439718827527220709204036065375973734472174976788841471894337610258863869009878573081803393833158813594324141998120983582315720571725328004455061761660499626620138600423727926300923386966949744997567530489622547510808350331541083644862986888923311405998668433732673187268087512731991826880664921797769909923104575304792213148734849591504170860654051715752779737312454655556620806159406176045749580899580999088398497896968476436645883915655231851042208026132152392959760570239615458961481635822388878326893051399182190433916863841673855921208933122496287452245179663127536391630898283231270008022137440754512646580902843246395147696145951483527811018384265229463058137118502568905422428160522543471280966373923065539660506009008784049352841925728163542204882275826128986954376264095549424980328055868658136746323039876289552641051551447694422293754931730813317110423379075384652706154596449999247236265143967840786332362082061911724896805193685399821061313904408490680340861823436741911428059167045016074452963573798703878812421209256155465478561895768930725762339357737990048615989603719677883591384351166338610100173521853889081300534066067596536629552576721417263215436494283334680811511875065941374017796664269546060248944742253564840250870275148141720141105539531079101470055433708331332804086291351671370914317267306669563372755105711918621672805395719335041796921403299132525943613090954514377198376924181734122696108072950821623357692536384807352199858779454294588853866380227454656905662519756937130308943020651662741222325850894671017815411823078603716367959613887496267043941009444343506552566135786375070179047126215305065823464923794534893516761817707570283606520746732097709417680893108609776210629759813760162735876744269065186852193544689318364683068430535852587542506682046647620999444809571927835771173941326350389189747494653632305687277733590408028089997431729187394431560442055501113349266854445369885411517752226094152929862543388504753961692739834701076305011978699338932941865466136988456907060374940071986915722946992963252627162219122650142591831639531952317968062484777082346445628041461972452790779674928684765430529744074617627240479944385893946146055077602568566510332449490884780853587283920493741223508041906680872098110722687504795038265942070016724858048661061466168312693658256835352370730426660927415492048607694427512310269893938020304153021323136117561423140139148999116942914057157559336881496397190400176422103042268248022961307544826042913798049792985576504638135602072346101145387665937169034375379235099353955793630811528511036851129142287587125469343107278681276387312424117285574631114419919479393390822915674640731052521462573921508967817428696959133906318674715551714823638053319976320873128108219259895921355339977318575131214928161192556547573343419950655505501149012909250109991347083516732545884960004955758354706252780127195670187749836831802910456804671156466930887356811661442258337772348004940616544643659603951952152458002160037914463366526987275535461626397152041354816558117871351639389105528838834742512627100625072522597825711158746552722610294835406533780652063545803472714371934086904154631372245787954605092786731411160414991897391867168044167698993039008296806651059691770807714697901160129248909564419875237153051915594844347794469328235490510843057663000882019272301143953086525607538016667326398130731372153731124631768718564716127945708512222323195947028471609602400283211784350223374929510812142237561261865688731226826837131780350827674277007496752867457629670216881905544933577204571001925576790644802658288213004778394801015976807014637732710187834857162038762631983917220849787990800243822522951995528996898567333548296486730547482663759918657988570763657064241780820043467005501487740184182120636547751667092892639752314424149283774573250218913605007421549274205336428014172289566028013592742464819970629770951978527078204806456670303205795022258388058490129765816050737588516193091389208042021801874963741963856585792590638282726433148901851732769952445723833299324303712099165956868712025916051515723361389094323658005125155874297467542089947974370713288304313537598108137647747829954393527503194931189487595725405888748718299840471902247114791988697731100482166901277331019848571942503109712034027299960884582194393707292594559108489581374885683829725291399102830331488443362999499107737421383935507196920574380651766598426852804296656467342805624148926946108746545220332131501011421314496313784082614897432472739583376468889455380744937043517433505258860166009331744788876781038442938553318307639042619517628924668596601363798097728366902282556152861353931537300643092755995754832561140089655920102908096057083558294399238882630306584071034312844898109420184057274520687684668096610449971487472379438861612572135727000536595337241277201995927844017713294596235552940301775688531584410118747867495425134993188622265833604000070794740770845991747670322766809820103910155216987537990511418783608314640191880420730478795080018121018490723573128748271867287528734878112886546269019608964498465925294105333192671850973054488246289051013413914106556324008854483610363961238443560407830455018370306571624165795215968610190614150955220300939510757240550848236026566994795731834565011213621703797221130313412380663677672327524761788424252389011922186524952365932122828092388976592820670604912062394992230938585386427906597220531814631334349306990181929591558402152905388011337524716910048695202818679616699945230444548155523506738936714021693884706419198109535855173288554519928331755434129595748833539382697237388310287699316167777798298205613228113005361112260274602369012145008564792914026603511255358396448794573064651710892084750340521870785870098356992102293978976643175292143656999068293392180114486810951666977607589884239016936042279224522502231468796625960718212755138252434053054979638195282332076396088774898513265817392999704471698597737857974217494463848336809501892862911467088928682294496231754486734004670365943259042455415161288935102777631240497877198889686450654936294857633344608288110067052868353774515667086280499850113250467785483060066616045689595301440783970024405794687057287748259582687925928548636892541100211409345016429242859248274151928132471346999971850732467739400425324064393395919821677657627087097279051493940342390474410658327988427372513685623761534797729974223992260509986325368752730081080238096931747246419416703271874725419875318115337197901175588661398996285898539397609893831611071579985719051417950736930025747679230657536941836177917742005990981869649522327427289322797583881876955932910287351451232427102887573257220482577806790897312115141636835189907415596141308568508083378272041820419824379335047324612114285241841368598491541384116397845864737591272023640175133022738809296242664348310902071706444274165816859668129518873879633686559001751455352899474919798431336720198737754947769566333220418263736089662354837330202610326776210864028725594374352781498924261304357085988298794987686431524310448568622290857019522044831763905317384044219136426476813831473952399526474718673988488033856765682273954652810194144971911190155119841781678284176331472583381633410165058572774806338701372231051228905533489015374541310644798480082340174022739867500550453438660059182502545443787778507847216994004819339206884695916893377558353150572338778469454857863071290985760646337281893625437114075247308953391572615905633322616690635864658601712670007795062802169641562466824116838521708659061346720380965936611238055424052937490928841278997855093094363200764525082033177812593896900077832713936453576488681353908860564198932641504733503210798331267723355038506275686448212466911719233542837801999182763908574232924125902990726309894538558476491796571745822823206897582202598409854595131591112437523264810764792187449920309089043921343505033668083836015816249153474049286932642816546574053391353134498881072090339559707743187326970777959983523181178227359859994421183888005048471539411493612725645126550298170173797276938594207183902970510474357464178083277201445334493921482167886468669910418991034613901952565231883632579240348456754575439226461302840209518477802373990137713794806544409686571864963643504534504805791132339911801460849142328691372752646182926579055444212773796243556728812421808426324321479371607074994200161763870491364710330695469165159914479836969291620205262140060000114052627197442786179621784638840704576287387254385780168224929973425201961099269298751079127178436758350286168342566630277773535440327671550806497535403088193451395330196628944830570223597486925531568778757108298534908759889238148350553409922637479643623731108152889013574053823941454050614800105598229520305154349881135023036928716501101412994138299817293855610258759363011188454284904458070764924265828715013831022612672497612233354163189831987537033017853799760194125258599711204711818123485038743865598878425242999613080158375690378806094462048869516770089023690145910375619317765015024851368626552697195551102272596738205375974255963740260113204034900925415479710027400219938566284456478784281423983741474352268291138953522521406198274580689576117564391987618345537134192299127032322034959344691261441022025954383308459266371077037978246469818500669130561864957453679312029378936963240618648736736432729365018593684332486031110975517021043072206835303922177017987812877348108038686825762534712940990641240438752079018661019664975152292793668501338370404940943946813542064171922233025413019286107930300955187763976951094931104134858084523996454744742701859602036139030337080462491001735958767157661580154749308075932234789260352885138440732270244575958864330373637421832223173409751134306715394837623178694194044044042913426263129907966781873574750365519241083325452022153241727385256787836219476204719388192436376007772787973039267233261112661145440454604790441795342546619002882713441027696482513713055615369197673413673778077773481619978021100412610990636900025079307892001687797864898903939346003893186777052271169729038063454190025605137712929066793031696171381515691169023607752652082289802145629745817796522307795549276946763081437636556897929429376580895072760202564335329977962998091189973901575858486212772260246013485317189177981297683941211114329437850864541172513528336263653083300993694654145888008705443259684337466803098429475425737690323628804759410230376914796974469839317061249363440847746621300319683480756004171821208045804014643860891802216737173111447735855605867960304698866571390695401735754935704397628727753851861458723931093286241567271234702594541186983843827825073806889039077478739996031202447009640535935461885886991370445504055700173283140200808029060390875409894934313466432234397337282502464478585013526891562402287163513037314808366204065148254884625561888424240351895777253228108826069100312229471769048175144391104284218792136965346595259671072387447077299616102290330866155015657562205729018068679661350194230125396897545925437540473442476871785050991048739382517561850542422877685599508400013996517747680025167915042581879734327906733203895277193290104977023503991362993422701129637512965771864961258996269682466306022392634749794230700792408456929160906201511349362817580375136805628533384427869652564751481651225965421828585771223607547498763521633492392852483732307593112583915810947652959448791608905651184347020161437118499576702401962132616636124519713152189019203865704291244194720431838637228951834766364349688964341556334895846367623743455444950054176422131710312174117567169029518513813750540942216068012807653105601173856403080084098149013538557265933662463296404214624992158207216486858780423650307942422286208723229398874436089161360757184902980103720637570764805195530309156864236249713780198189234171486528573745037240520347709435984408589124280047473471478431218269811014998300290892369019422207889702200355408579935740044032962631798572760290972372009646774442039573611004635947706181710287842181946705397460437707033568643427478759235265102176058571908872870631632341241345209228633187918879157269317826977361780442822450364849665029430072284665816909072053403077630102573726025790579175770205730964936172730786838762540911977286850298122865378156014835733971234840736972379912226915482794332491189634604664566069570436456942521230176004773167457584974083146642949515882441178002339086784929583146045024814834491827909033573230277202589728496037364355801789467918283253094451834060462961560920141672399671397213255768598334821909959906674474510743836954427920269313100732083574041909225442464624942970723655502120979801134838314632778157450025755330728721664311569615410227036731055768176927629272189305914939021133791771978739518496421619355293804815078582413067369660733810097450885441307821224894849333737590054733411940318885785403766118905331102753055109728239445137918516584531271683597363777646845351967009728380343245870465369756630687843833799525724282806768359577925794799459270108903560820999633359178079834385160915257471741871453905732594544953634623817288769806602543173861155870839128711509092552374618839782584031667689636343217351701091430074389534706514918602380438862984676284222320087809750014738646999998976432406772480430072869801454925159220760095069412567589448479446942423708282729386029961047684819587111269297748963497911415579510066745257265695597273485029105272844407426233936883333703763012003492431889507862137101903273626040231938164927795944937988107954782959389370478529600339382157040071527478067097603528072232749038589807268594956846959592553291967562738609666215956839597658284567313508600299897416218016261579351202889563959276581765858299215590529291747226185730237487213933693910647238223031706631357268675073621093870203082719083593364061926350493511554598637298098264902276450261612979711263386219731924682362403922832913490346531702113044663895999913608237508296127033009953617766852903309814115825416601809676030521036505411426971798966011489984187376690870172299835991621461435299312759863079690830342768684422412561938607410930936775833276858417661319006269086596185270846924102317759991212040521215372137691235377533460898612103120376354742803183277737171769134189677913888419162937216109400658110641439557264883635056644549485251713532189371730950210465559437325379666357537691103372354817158786544220543192568474352012789518329445307244050518683163743459267915502043926290157550744877264465210753860571502803657273770817445259587970494251895187524508398716460422316242212943990046094411171362171035399090230085258925758205376437651091796681248357383183214150875319174581087838228657921774528000881376838151893574998763665511797117617256120999075485142022900107065919139828652559981549185038445639588396656096616272445153062566415251529227329491857481435181848517424050363616440956170123489050961825263296957241206307990245187360693953745638909552550435038259065029812172694219778718095511932594349686811712141881645927086133113670257495089683134398409517242943792248204677059349868224553850737979534373878638093918639865847447705308039237401043803833379448593093995519791842264821351350363609619595261695763951892909291369752429761786932222614002769822528852045680774047705140890752154390091621760545934132917576894820810162105941287606556589789133571019134424178227076930346692378461511764065586514184640162152045041272597521456558096684737095950892668168926395081581381658820244659134165835184544988951702797056226098239370250147602215708043300944414508374963029145508161945563767209194461310611136974829000737888251478789502611725282247902234651325486954420211553777755325045761798515826747749221047859159906559069441689866730288573270744963021410653319040852887795816082941653399740435646676160942988811873934142839578727556488084263167890028887938280379328902091221567536733804709912934231620821164171700656503604584225770597921166426315081053759642453760730612864245569536662270932239947731863086832539045089185516309765800235191789640859567227228632370252016830309607474119835982831654617192323487452933622606530913028040052461679944776131638736769468237880684588061705001755827331357219355570183451821925765057773905137111386883543019443909994552375556466710570749513179739142777560813348047462935141409650414396290979585752752103297847931009207115384044269831276025590016036266639656337356870124952883272371404821976672335047678680024357684225184028380552054855723460840733524307400584859817273845972955324008319374808855730920558636689656484761241945909117197146488791277804390956257890482001039158861500783380687851204075617246132596722503694673172006486588768233685476120579460114861669657369526640866841806124070040779581210485252160451737344426351150743879888638300321581158753146439724871670353676205421860329669088833075222698734847215903505811806977004074180356315798565204191049476386414692061456930793855574110231040746663770805747092203383097689683458852104314419970402866879022160743173550208819267179326425152949138118711091152927792553622480869291885506283763064666412527928324273806676661427446362877673131263282944914468404325153900277493634623534253788385393259397672072601671651905578644476375031687721996581863839004725967988384636034444877068148531429076590624931709783052477876816131688515938058825410085997951568652435241199479038501203563686926495103085356603229008014516970985103746061649776449390738108122345626087189965087894102996595299013199286470644579705637737826118909430352955473587168226155451619894842688131111633264557031324193814164364343195344125678296992572194869665791507031231026178058725565334938931292438572247468354894165841326091034807959351172978121957136789315719763945595757100965574241500087129242792934148223862454879296155644756888363587007355870104471258764539564847584086235378088950116604194464859414090631267979297383732037855411925719973946668721134752856762909273358077653341562211838958623449402025313781348895346960149654662729366864654539105959991516297256213838166994981424918499614035100601399340394287058875038987709577931407238573683413505297935685402682367947426180554699094656292980174166203006196221982979015053195848867523896954322513148505464038685697274525741563967293409753502064100217181792680101687197721571383982007266785421769525581636323139444420652076545640806416184219035953680687240681501006758546353628820950734577685592011044074280362323582432147480329044524179935969884426872654317625680278786620684380428361804730398702557526864681566193628553649658514952446050939329612014114014429336873148672774671994385624835524748530026288547532986080810455854542425173368244490356100163643924185151180581131057050125918200010539466398179058346779717304196776570952342709004178205043839895833143005532438770192009261825672632323289678320388136114311663281452592360234932003484085450195087925113556038863943952228490340220978363793667976740983565079870757909019498079626925105212352572773962653179918961458268028424820846508117273772414654179458240537739969519832315681307791057686696739933834706378371589736234702328035327176833275182070198532677885720343283439051756125564526996912026251665656391526895395659769745037182894465730004938710054318773221593875649814567046434039662639221837213910956616056280165918834249834918376244647981397986622302468551297189830131928554804327724541544090083760109249114318977934834048186877236913597789336697546189252543667381597178511751688514248233312063107579060783110853477138032752567431080844331251931528103593819926918524732897829713224241672075605915756206871130449489934183470464250399069264278003171419650084361204193170146881310493818243649449451190376062389906218150007222289711051052954062934827127236639475242840245238907717876584092208783314340341693632690283478185260553620949184841293856859156567914902136962627447617742363504820301268296577459046548094683064539009865329256565780407616431187696414738119922271038491006633067661104913519705554914574171996141589076225964912889896158395677661229947642657434665250308393498417824812172431212522200503021292072256377403434056687026784415998386471268920874348497313179632440650250300344027768982041627758817019860099969432693444594456284106478659626840461021849066417235574628939504619589936325555042058198051837406259548958016644248112154814743935193343654855697708809045353919775743355217826932063937863830094088912346235562399534072218377725311166385129361007194201682112027026688074682371141293020633414878683598868264910175417869606321668419683005434706291602575111540411882436102004093206835983561682840278644224284133617892475086373672128454005363728899521113513739415428009514382983695101047296908232849062321787596606050767525630919648354070939874166867840540503269365537170643958817815491202227682529277448783082300518057441682392509433355092381815040122570262207644142970453715328663070243739088597277239546780355621595542346121069082057556952505660273638674899127424390014721096687262263572526443999093320981134228651388959545967856848024857336355510429733741567078775549113881709001089819588112726629675959729096381571026214865035057501754572642154053260275559671266098556597241428235080789544441660490313109001561296313114614603834385951690793738817882855951808323439662239470690671841084305057063488005365719439891763316490179705639155525208284218388115891225487407972418494195990933147238777376557277640759286378708653690037729677317387151896744129458094758145372183465846520408762016163726844944669346055960240003450258194177543923991166886909695333193486632273886382621394048354186880074987173537360234986155064963662773393207368704242114199254004536261902515999578473263579600292403301700733377464995466324178857188051102317385089537517639013247925676428680177481419820276124933545683964590483237375435791202148121997746859528074046977732929096662513789140855815122969620156121947744896328738689557362609165251421134141295222818604659633201713570301984737964474217478280588155381390870470350740198368417298619195566730284950439346076951513441908578815668833886529458189254361432053324524989171123990426962133393066328789728014899014489442289809444052606933841214534592020890649024323575054479860382217702018925443334754389960906883906828665310839903201908396437314112502633309753681465414561731601005121924491636371960178251371998825162555385964682289707225467130934179856515540608309833075996186510363220703454046980316448471485475543422708096049085267061661148043805713314833548453602553953289381152977325482266173676208546250896000815713271071935426514817340616017825246022346673482046118514141153829675649692187448612808939521946933721125147421144133035682953625251834037745186670231238561894085105039467609077564492349030877593308428648730970964861855885478800600962375295125706052298811948485215494958063866484725304008757271348382266634808289453452054631330926262967215352383920421633386049678390389864408465795923715492600491630105925022279853849688811407466091089639213321801320681385689198371958773572028958507483294530987572276982224113876938335094538091828003709786757678346486674293435335193900955653906605670397166502876303523253904495681130376608312325494319845688463641300681994626571951318362237337972998280126501765925816541092016832079739566048884309169514898697016466651495677317601144835981459915405891294927477143507854015394898943168807731429371337196741935329951714955402487387619140472323598061643786885481544650161378688705140345217917967412552067049480743312896468702438434829261489766597117868740797003070242000123270442224607169566425610600372532695380817984727460456458255625179090209306222305838682695567151375823446612350949368433295169252475484006155447963619451064570269446269165255652387266527802560683889912159847314678019386982788029124914573722712470486838305416518434227926333079649822477846432132844542214807448484738096643503046687272278950206661538983096752983392794014025721548565529833928324768384254887599655992691936125927715296438443189690924376988493492232956858237237009074309481766793867287912149372645036842767094626488969368808416016246240830821993504948780548857783395641518687050450256489489075059376410813602433954185668678926923565314748267223263231428299217082804632310233720029358086483726896931392300882883708419127650548325355733970373697723778591628855987617048941026075792159945129830991392269284201620005396894048108409488304921755398040481820311126535236919963219377243559041845498153721264699549584135894595437239066175342722264259654773714386612512203528949571183273994103035360871621563247249157278943693165542708452745160703166860295489199224116120390624176510074458925350143037926708345482796161025762246988169868195422853264453514976783097051783157151357308056190431431328289147461820591188954526471289408929285860329038558778819488342910580238337703389438979310742870426948224745703350268765171928238849340198333642249102034509095713648665627526566916330436813373670741815350449075361265793109837402176556634932023807667342740733591034917940364472184759691207467697282095391604340391658746940778188484555308564106174878817866759368990478246512896647887143017920490029146838026943670627773717303913845702772177334163227349013279130602006530639731510928452037313571903707319411741275607467133616229073954530944365323089206263810356027051292811049280524085033668136926883540889989419249550143690008821117200747563597875299222536204871121713516556325883799998761435557801757120359267375378723775096710674742326075924328715598391875145027679152096288931166531452427958184146400561900979803884109294412789109006661247182022992478649200240424973536246317640740417910488724282250109359029084208787756681996747575368085931521768387970199236902410462896542878719626964220556476506707161783378019895717138646674751931930210472034343077460785732498896595679620210569224749388441256297629685266337639168294418060830310422590958162490774407463596177135220281853590749593759918512263875861300297876304383576562609723380710878296862989278645669932632019495025871875685389240700946865923031091486617565094585153892673857393707517233483768364052603494521553117657291730120684527765360802838559095244667419595078888739283163681545548724781407354335547578734225892191503041644384351348335163938720054176614084823660517520082269592874287201130111478574482457749359385529138025960253372460826436813210657229506608498770123246631472753761421428367172491904671476064660890509812845532784511060984632783400108722013146847087851883623162574327084380270530331254448652323133033751098886369436744581687247374119247963309660697386924853965424444090973694266249108477304364807297387033567049969209954002550901291906650996181799778095625666895644034519506179161266530938800521620253207566917395392190026319056259956547937414155153158629163342901611885621971411898130976989230512008263599150094334767226437580227713298073735126038772206633065044381552288284847128883774213870616214103418908047825094307665103355284399835869049353956017540138036839241347271430689188971433372705023621014340640950827479648626280884885919241879170592246204134553307747618618560460505836323194935273394734754942413787816659204891846210780957632440581020857812810188407808699389023748603017111647461248007423358078183309684812501601706368692411598792228385662500230783235565311896500344305308270022400976933145570633241723208248257337568304530995796257642789214292648612162381004906162729571161612953057259005681158673330078570147511344670527750794475574780546284466385406866959031081493155291479638022461124752636402730412677266526999416812502438943679399698243969081315068047762663434503473339289503229472205443667237105435422853430431585783024108967994141935171855927263402786141741066250611956212204060911833275459516701547578337310870171200970018756452201403325577573434693493651976071672344592658079943342582843699300961672845682781378658030134965612244049845491473355856743147958974568928056773860853602075263997479265336635856689136197758222931869148303616925799653904716046086362894203880486972371011544526762898159577021439887548223016579532720803029809464116282190620689583744111683363047364371583213055989988508432974749088538171247707975585395385359222659137592951456088832734102163327227848833038991825172701409673873902412427476282721763922644712241605333579153085999229392187223047041216201640187121504939067717935652408528317667978011823614087631170136321307243474452127718852183894585884422615222400387811555845432505160308373871000035032998482302623743528878846744039268143115455926972678943551856327692778958862757153926727428325348763676848558151190893632408873100167565385081026371301454803995171902513888199070010092035977701106460311858384238761934363139054628978376240141920530855324365136465644975391661674121621308725404005740158588405622704877057509726764291665116564211723420813522333881884058230744902800230746853178447584037254355487955926542693968668328460019014400344985686769727303623856145199685373435923208180985442550969325061240919654853806683016792403645401354911744982925501247004678101373933892215387727565713020961297443541247893193427412664712014204607239148178990755798129284007803699170865458494582665939482519489837797354220967545432744879770095424712933451195246194209029938942091840982952898942503361440452640406428016188069260966714463543579343719729973886299422506092269971595034773747422600486940267181197245189679609484666291615486397772933344906261788537689199304046685517091012417000513473120841213379166388178145743628253683635882046131148896809547119642986397545066424936779885228962489802769964171247952454408687963238339794306494983161923319746359185887950837383732181124245479770395181978698622413545594726023422473317169183254705649362718359660043065781411530415542723883695142868498963812621461565189179061123243895353126806719111828166668113672162981840058756715054126841732504265772952189475759430110258685928851795098849189924997790900804298274611244055159213555684589445969652584704078928745282037547641680620336073733488991742507576065383439762793074202028073228648954566725073483324806237384113297919997182240486349457285692176998362383687356755162153293056274355878196022306601290233347838611135176873365659138765960855062478965581012497062798749330350396230666784885560301698219714928115810044437403887174058632204049115104570627189148151907548177861775127792122850316454248089591564109761850861397368893975487526930826635584533785810060021410341716918278648328853619375785718084940674430322155491219991942547722697342955830477454837595439454491204692683802659656716787804013940178217408750320973594458300779589773511702050758978605784831192280423733533159807238177610319727898117724645335501426297241758040471118333852720297239108508136830113612770560344476363864339299803200548688746129655248061751526263908887831611946645909135591960733154890407651306579860663650987572314876763676743623987890061213810380637727885874237680713984148840216832759518460591008801608773589384475094770204272306564532660496667605557548451147925549466711346377154676302029140279467121830349916748201797907568917492522104966950295894037558320003569093979336910599305451615780622836166347746369492364568512632151867666301516495460308656375035089042047779600162342209056389912724596325487056713917315304080473092143730997124541959367862020209133749004922243467718807428366108545995122777417000950303165533022386950140679746599553440791680535471367723499864301826205019464330774095890012730304213329412297819869281915988667733552808419187130137519343463978653412515533649386063152091268778506261106272485206336997889002675154639041852509381055739589055996091145833311850702963708966081850227233051691605810760169991226812299178322693475307919084646587320986558168626556674305944424742633407886293358205896818486622765117164737815770263549785547916288631638484894695829617860920941469819609625363026963143211000223470551571662062100564493903171113600512914198347034467060322061342048176044896410513880767706557550780849519619178498078825714484064886717781372762760985039784491035382700110382626631791704707022079342450723970253369554599282796208403071485313358656069656121328513702347733728667465541441373039251472539004549007253802917723343007683027958264253437958466505157113903557011472707424349283342769139329701141763578636422709223332049692628856149707717395199469317676962165223171831434588796446236935811745592859925044388266193254678424882611341306013164521779823320417581594914465498356977966653839748446204658698391736883082877172001033761339397488209435557648209422989661502236074673765713485963057734004708895192828255563754855157077170847733821267382690446815319519329989487592100790989897634512358736115047488088845974945673811833237043282764460969281068093943602979026346683337835176480674572281735733892543973971791436450544467366094644707576550304679904275262917678431711390576778572541116783009579068064081130493357119467886299577791062953750958362326505321460051416213199829648374991869886548167424955784502066738013671513278982929051759093538436500121544335883875042051010515082439133895853334235339047090242788700399553712524287980610251742895966810155867938692414237069342512798886195789158416833781306488524344574332493741604348511130753534141435050103602505010200957742188832468046201896266429015047249942671268070333087804803295435909954775158771416538856141626851754936356045388687314202333899358177091344027561457484853056628906104031586767060362134559733983290755336282760420836771243062903603156557782719530639464883868935344397875762997520529227886958305002268134683161232194907665408855589663691477320714158195624681695272326175746976069002250046822539850392067407675494804674586564817532840011113112363063333620969389751912564691888549490644690051930855367418560950771290097794921058795345586894874582899831486179131899264814480797381731891515039440793219782574150984164102300040096938841896718035102265673592207515052709474911020570473554456518327958828411363413380224083727583106026227261575702959577875042259849684596380051992281721384997391902442763039133858606099818428045583164430785649801468075126999931233688863274656100280539325838435452517293089693300626390062393550669827483693139463718666626265720959689507367791498148233823083300142581761361563621062181897230454596109953410468966063358830733130098695889555785236999743069875244129868587905419857000669155404164008818853501788194712645100630351501134093177826202675633530222653565712881180779011128470550965105912413184604088504434006735462387763923527233731210120217124977056401485262279438152428202901383672324301035054821379934696149641248279376892427355896060912425328809894440006141471220393002681140474131574886087635612660473576594202606841053947548555305022094791023056300772371332562567084204586385231119823895305193904028690210072307221626120573195255637506987477335889116898854565304028324554699319897070262755585006602959718422668208470632977569537411834536767376476250227704520556636798864165097779452160722754408575976068575934640826854253788541884588042161985810603411326506983484061700000848275491578778445186865972588818446017921576502820274029393816477058591620401154651294345469763685256476104314880631500305321093454440215950252459649392961752116165976895484917438413482810490243183449031620626635065457016126693016857647965230067937329407071647724489540316893843014824244803772159923819811434803536799585268175901030439439783421428395255080853785257932173795530840135610409802370942446233921019173316669620813238639804328056103798584363007530358130303040346959787319515101074860974487720703122625811140479088752821663568567575747915220896059734414921547707840482962098891185479449904508530351907633689395900520035196094372250704828709953778674800998828302922732859966708176329588071322235359652652643381827484206990040000410338756206082911877026055513568694386620008518778508555185619385285880237023445770214440745594684826427317800472144530577036583525523372089421571779040682261257644302908951599236512504068741911324593697240948350804362848683124884275713069526649239643597637445130468069026210527919142219216694252847692304029532740910608004374414746688264837405369231901287826782590759845319488681584725584093235932334982689818183693189986213034343620635637939317462645299656204338484862777401033751380295433340199753808807549556419414608879133170073843438503627891938118448750240885250578157022444554670541034250774623611386679590127471083657665818326599658116454910803345911007472025849472347799213344219362980981783861073627669991437156533552963797256529541576106523716733250137638925928394303536646515690484058894701598981646640949465466043482510941894952617529670876370360929014985072021307457126016685325747042111901756847480783231599632131198986463233020819355689729079098504245698015209114562267684862086019889635020262005967558644665073168089656786573740850041243617462097016239259782613847175509578387290617251232710626341462231716882191328195246009671735958035908502015392998814317435545254890749106752545117150663624868093732133247587688019109821063566638552912002229210722501141192417698192541640272981636465855232976433004006561319170059271119856507702317061335988835685538058335879214781561411974633241705994303736286176562954811159159829693712689245055018675247289236057238697740938473463124865210960525412952048109593003810184305966185013212068248285659492109231254601628463340425795082803147397300440704338363243828738615412575843555351039731840609688734813629921563237057826790066950451334473911710772918845421509845469997263159993958128177103890819027011478736812306059772234283167524306388403001067828581193677406759141024969319537797233807436242894425372131256118457124642990571491063964006921085623510670139837511802202179993537453907037060020837525060925178030517155531734776760606610598629299947899333213493500347381504612365845986416106586173990507464419139074343074270399250320976462794742919852386071259183666843962092962405306454684160060588440159058071657195226092997223366566817983106663245404699054609676869110700172310449741540160399023223432294447863682230250684035471454178642299916535234979651541635793556941549311844508712744065490125488199678951886743881915175582661285750490815193725162831321312115492829580511411231189942277873540084324415755935458167321185281573890800551757687710906693617404998026686822927910600940531277092382008096186803272687391346410987867882255019250447504974569808357896638292827669210385249873295162297115795387646384649891998623644562917378894834515894930807430394506704251858674376461722551473091134905178893717288734845335355988295940856416358576522177687816777948267850048892778010885681500936242062529592626638709806866750915877748732385753937108285489385159244949191684016017749218163768565927874951838897781148492926082944985423659632430402000809663613076378550883396981183848913802919000684975540268122614388501977517142361123946082926046724909301816575557472657884530627803009949679064935511114716800378524573361837127467447206930187029681346443885645867433282551297820958390223521619308259206358706274056301361470554660796517306835168527335275178621266645452956356203194660432171948102198674216624522474015968695568771696641554046709605129661900445241119892735956628627929453524389812682307769602687080269388243141583646555237557205477149942971732981360591347993781296841677336947278686989427997983728586837358622154058233332042522889555187168218741474270620313999629281366666645404393897251779471410216729084011288436541209543604443181204959468360732622657783417148015989130315760277604033289730166841744669422781673284457166447770026249697792913472210845692171314079195241610219629796454057778160880505436881566072902397556937566335139285153735191962857993775036510168372664083981627769148696884821708934571146303377096531757639423732824104023327329210262488327562430233461599872396406408375057964270657175552265988677263096922840299829679726211454918783154994119583624006767432059098087032726922544679577123354165769385615906512191967510883046193236060314559010738493891669908721000235527047968352551306940893266413355595772658784652337000909337579688675026354013434959946671826157482221381635310771985796619635219376349362948998362278755988950461497316077289891085336535008782887597953697131612822200617547628279298534993802207226064943187012567906594556928105965706701010131356532449032571261160344095010642107734181883280635310771579119453826391647934195610706012018656449245829199527404484476244404315750498164003393359214974155677415910561601968988564593760359504399527952742457710517079300898644652381994091137891326981528205298441445817038744049212911244171323975852496953913455317857949698079861012060473488488228413029518074835725446906658238604833654376458523495177223704825901567485440076205492530427896284602860723411142759751100635398991026515637421418255821913906810220917505842832444335717998463505972975795050145993458507046429280740444469578429509388034127153507268772064821398786324717293562148868242456478404440273716911581136825507099866146867398458272733281067842151948678662686971131921585683469673925835880389901667151817898864850962780332989152503315441753721635027139075645241977977062887136680558222029406342146244161817048817274332206993859227690389197527671630580555650851043207614364678459273078745198274519577295052110557813269198574920641886026279525880233120664668960727999168362289955402016926333596096642628456907286834340047333374685137709063675496178470250324662617357225226761557755346184802713982302998302501933242275315719926294406639460061439310612703504495162934486049358271247801057821473901216578809920883512083281658430063047654710511130020438347402019165821369958985721930664758185267995899265381687908182248977830411825255418837151603851840624815445160655409658620376828548803752601129690743000981845028048304257984429793009516213805476113767231331551358990253930174328447862360076701583618028460730071481314825578448949805584253194362664371991487301046670390895765267158576359470127029686017482396231440121329092491323796920073852635155962230509496346298446957025054295900045839192051886510022487888539158499254203344810099429354933495804644973530854644499508387700087030932060298985874394211557789797579712638730844339620643005172786109650639022324765465976580914707182337235142928721688721768761222825360929848049538132963141078577014171492387358438398561531965062745532403567707677296765607044200428170605091000005174647152320708521894909504918938061024968836907966773888231835085169383031466254166872957257750112321571656947314113717147031975261074842808137851563963856110331691044368723209675087422958203697913999058724147880880432006250171698768435157489949560156684779296856071271193088144590144517591294048415111363456970334259657372932486093375849490527602676267661557188833085777478221238335169284083847472657091905444974950512230793984164826134125588883401955852454871794475421460736570748751620387401065835816434845457312775020232661194309217321012445875449243918386913530950184293456656936108107483120248621920156776479398029116169238400845714020559669507564580859476798621227112304942875440736990304739348346542519574029805327427901665225003981346963669675812213374043126162003088487278165078768170259625417008057662236608858411927370489538591663224864391367556166298114430023881368131969730520317428338384115004129960486581161493547842188991144743702483201289103998353719880641387124303798037723855532689216393878467704898647465132652399438389860385836906072057409477785142843372306454186859372321980187043477979190125907563410077027473009465889264298662347261308386476016216262327675943423148376604964311433141778588630494572861455399647439126524428893456593589692720519562165016932005467216279262619121400279730718366059191890721428422957436712954420784435448895585331048626327643623913686746772411164902999366097897663711523666378194986076115647049888417324090375267636040989114822703709913216838824533257339040727578356537363709293212911063330555925017147286672203629034456848005113658827966134409269530334626871286485679386298092736992205840116188278831804243501501346582957955545953020882651198637392232036080000453429505428510843496306674753183619718431518326312281925783167664966252614787870719539681223116967024316824073429613875716962822972825934450447915285458490936833852865815842430415205965884528111311219797526941837188630356635777634021523294964601043671403194275225254845523168531194798102779242692338482840140332261960452531613504238484398416463154587057792909950639927427870167440500544414743662862913757514758543588439962553093779736019115804009868025811585538990900301348114382322378316278475416089951494362266640587251480421080084446812923397241890146004463581758615283972056769175017892738797786241379226948738440582469114848289767403300913361316941166725689307157102277286649671038075997807048189242665434598961307829038747122485592793234496746461337711866352863722961656638458042148995762798969088581416128344715636090883509898722519528587318008442125656996541410382664355905449655691566923326391691990603827354560408157314640322681492351195038954350058165546105732936957997048238918042988891179130759679387356841484753244658734233265093159702370134949058447460724820465890904595776852990533268470656976679054837790651493072133849121531976066598860269675263023215203066155680980494587552661920773030391892406162783827339987529422793424374192396625293055851253309659156085420400596921532924075219410266714873901686564818095829281010163230464643881984783191863972738352111732119463819396931470689606715191935235425687631111737506701234909810142414648778778053199471362132010348774413123883572995277219468336454906450584626172721627563198306927078935820710023711904672491702526393289253799924657621788572871795878391110923179293974362277462574908962945178411328596882772641091661752771170589962547378134346231740004859777770841227590011497974897430768904565676204991299282959187003286530626426938301468724791010686364843687171576273452048634368344676266802070233144277212181754735828595035324570893061117395728083547320132801407792230916117205543737806407453930804166408479876057338112126300896904512221387188802898118115851413630010243494027947625140826551906098562837526557922189373121597783099674761668648365190534023530098761635167463430538467487588454802706403952500096563569081253333083836460223233571395798424259600948180247621813008426721763232374108890698399089946109778256018377810837593384936107601618101557541647939361980154758683527099422713736821695233545825687091467035772235980814083507560119551858745417262202735390761938963898831211571373911696502986231279830863400482515618786714239690604693782777525101130743779320435736655972684624766359080919476422982063696354487104571837890887907010208952817032956275795117312269122725227665179240674077027951294723203033631349456465006849661215975418912473501020457468448049343934779950815089771754100583577811565915936874899079064213858721025768961039202786017253299922631406894003364574906984667057957626767150073693804568280274467707908691692166604661587569778868961733604753015687458510584795138342029498504616533625683813059607308239199947163989725949698670812632798903715508361478947206309539254952827890101656651210139104488891028126528304098829753496803539122776789571892277938627362656349954884236993447106473567388485816516713812753808187721321813558953219421924792296157975888819445531557095953743655292680160957867143880051893609837492448592633836195121215856649231646024234465115614882317376587566524836453121514530589387537067063749594404447421776473390666587092026634112596997305935074346767989758936594046136528729705985230693953290218401654010868584369286234415600218365356919286403532143212629187909033458216761464082435642004664959428667763652278621643658717633395293140272210911381455917126532479483546546861148002372135016645954950092073004943622439505264342880157312368448815103030516663806671129701060384346718472684824670329451634406232624287439907319126914146406159993360544238389517095084454812744849057161450075641760014033492227931950849667017148165641257466472026583661164225891637667241661480359405738282782014513068981308745513694363601205225949439909041417975789204594284801759456804051252834073805778314879096243459108406138110532769360274055163825149360922983212733650177624274105614496190204821828794947021950218026212340906070744343622385585098820136225355746579516251338881606798730054498949749932686396679670284433882092174035323172102174844907215581779826796349308800370556364537286844623687575750203418383444139140682277364381644343090293097379212134107063725594864622783827903158967111726255796003773119261905541916986926197845274553416485079854349459788030702276281169207920485916800541240621009193309098850535320987983685846648749770283856774152319158707570485571560842016726574013817867337043850918824141543061114230030521184506359220489649502154086784389325105564695561540517126746865837245774288299411247501825803644060048946660305647086449719331703223404599908337974030004316176471247355038327060777198760706985098237887040564623880959180647012525865899261844331749247591771835029663430733237320302168226242242578960159208433917176972383490236818645414255591165067999860279448244675734161607914093326046717680004566138987754774399378877289487073243384887124486813962757028952613272166620136336749011964499414062738442432713278727487037236726286384952417014077276509151460432063410668493584189556111741517207559445895898303494335545571828928367710051040646135510503903800317688876017281928822909286700381061855924720958120175774128590762361280326238278619731509182072181356421481332619290938183609989478855635433139238318941995701817420459842046479020746583144211265414428330392330083796469132086995930961108942881856170527189408857288108414528058129933026297188279400213085571577952993620224875004537669969112655987292678085267355548560284353349248013661116551528385703722780242603980937541724963464216916025940714198767682577224203308147295448622741404773878779646697171013161243908625922182773846658798898840502324009032805057719116977681278665452464104462628863710554119895171397017980667346858323702726358652697587510733090525707671702525823441429788988865171915270996406395932784988665315105722886757696360132933772931505838169807625855966285430626161807048530228252066034611876037642216882364070496991450792301427306281657198106779324434319142453856121308432925245803231168076852233198265101740060920909999415672592538119238894857439423978818599370190357567213932213508301704250772635258729906960551214050500849163830649180055801923565810508972284155248218590688641924667456485736000899955555292326400781551930823509452466793681035569656119672319393490230218528280705397267625503148056534178464936738194071324885620143578641433395040510139201286555315296951303367525936595440494571603927018041221458808555712594539843171648713938482704007750910072455506171854855984087076962771852146366452071813654772702363487244761441934364388474116227657090552409590480810333589717751505750248078336997363038850493222016517891013733752985704274493079808734464443290865484787169302085064028375751560645074790952821628293885539347141716240198916223428566756646621374273420022946232241813623145481419303209616838462989287881250094094772616945098562770777073339397521138964408444750125572870437202769093375418811882698800948715538666001557487355568613398411684615074231337600285261152799518153552728423929006632700147539642733628934312391735435220665290094588909582412860194725117467825371961831492251659745859631316156764386215935120915399794341170861154149300530860905154638428907188485100351723931007943490661961827928137018242273516952633129220273027259872956799213482678901820197314281934794292269336618510795480770048645030831090927993557070632681495562266273644738771681168557995020228911480537610796579244862050007875210159121527228994003343711889880982274137160314346082545479656131533995345992024125541011769517409841677524004810863493200700771050300393440746059046561905025777120564306663389908188663614904563153653089999221201786802119245612839129653212398420273051159396832672085552547894715682501787593044976637808109010243605974989794269870237710428365910217242731315228412391385704683244201727800506572364153304158776913509993507620393401684988150093739958278443137179371754712423694688870823596410048491174515370595411512193216817696057940659622334604723721377980151042605128466612632948949524899512554423146380922017700672877798968239033104434611255631052588135161469661080239797518833398278300110647234432601145039705624279984278305024346357090113129164646668822803377965946683080305746562187296625005119505430501296796092992055371596958087914496721246839589713489333230913477367757485897688031165988337749491120887608148088494870233033682393362235291934605340611097162238146611486975500975886789927408582790755212559885307752307801263461743910511942082679435621723128144691956385413515703048410223246361578318222903839727048246233571593209657059870882905596375066357045432447793847279092422347641184520769659271020597451524972259406723209580168312791264176652731419698159569905689791498595445804715258031189406768117517315201806485378284418092581976839326498394705391310363528899557181414453217315763633749350831323896601190074284436073304857750283917067907285915542348514203847659399370071971997871418213810928878164296789174210593237128681342273017003531400137353153061771706716664526282242035903888307967185362440306012274222700786319502250758924340403608616021782569415576629700948844510707241075704065975976583720807444193741227991945247145262653068442327256212168699473167721220369632183533545062003709661929245202133515862056281928296871946325550902300106020163033486583297545890023710077963368818446672552782774592641296445831678594596828861543438829653288556545677608874460966389134455369356490469295072635210590302527456839643108200742342888081454258870504553816583423399062602134054191813840831104996046835400480006826759991532614541684318582317930848568148020901293085800507353081592499021576847600629110850526264226040873097999428226512016557467248417916470650967319456435562421097387024489547019951852177624574193549465498079661078646855922519868326486196701036657681664130397449581348845178411063495261768941707776767562808563685443229477309898684712008239342187253069326016611785476203860170736382076131418248782929977975473930113693195557813881490173513795052576319319678657934063866393878720196669486979027243723244660614455432806193664887295549675721694421827873463251405648112167590036423161491429955743887217043501054290926559687886196839898946777183844327458254233877429884026894235509135958637296106567821914388701939134417130645672830957471156129057432505526393623957742641222888795405314511689117329080894931478861906498646548950998765373779232136114559922747561903586889187915575221781110458136057308796356937662378379268049847075026447541917744813704960731607197491688196123013431387999286253899508269662553418990366845913582027034412180797983728827585263928353774474890643579504995489422202303069579150438710367566348677618766990406479402089358155846697157734932649751160051196965480887528477304656176726627969595741595372421287753818579890416731681573772290070771498913608240860345128459333916964943326564984419394228026050747797984080028813588008285008358855642060530977036983809018909208780797448243505939648086268677536060788733002636941262482233557455065520821873059006152523486354587796749638386200828755509751565729094461313793339271929450377682517671127966245619466920975409799268153442397675516861947543554568914334316192212686697367532186158117497009491921378273139925222575051793764993797971043154470667869149218783495840587352189513741904582894064670348754380759030293749348870090981815448121138051791057857169444178017516054920948197274108361646851359667101592813272220270302738420765129871922727339085020573087882171201000477977476202441507759505351035833764021714799778111140563174559661463914612979528754042247779316163399995365640110857515906726100079044413176006669334983498278465064482565532070890330835521265729643089538501898265199572022896812352885000623800402529904819168623011095979016983714949378102595000899198750976455405096021323400302580659036339207957387639642871202932340913166110998705995147253162994604524477923982886435563652923558463785453181367582024171009495959466985256670935148473825536744017198541435150320341914411699202182488216077463674104368765968527329488528437399571642297222656035800077240316199762770298403723995104138987198174092449177700348121945697667226877202401236225861245383505192241877015632751238009167948663205468965338373672530343949878834052289385411911495428286645044759219027130835668760557222407047879853494749779566537017199991694644496916375094329858696022269311199276229927463511221186312514659340159384290181226241313365470146814896802325208409359835864463219176868591321031011657569590806138225985665610382295414759167433076412384826329737712882153182394675749082063163574615463964091428899360426998387250927092183704029579673181960015447444625789105342219756638136896876274612414427301202707798605817495816257602758545668462896586857925309869883323844864234296834513887200291271853413235923025239225275853017071160250005000842991369884084404820564902785237427050201137142124618719429129622985500306651419239537728147540886989694849097787047648145067132408106935153009315609727497063746364055066077667162903496827941230743410268280691602099103727311326790467440345571732962472412482846262129402875924413821886731654644924756785589761294683925638753906326784811813962878775197000508342260888980748096011938915812362769930298582937890722481918958929191274116280498131889523374500040028631366049667335575745012560786724448458286136943991307227501412438548891125324539917335916294925909148249218818764481253316099286356089135741231712181494935502765127111313228750007284461777589325030541304961156281811294449077766098078773814407551593555434736721567747750854591987485860288919672793992204639969674793410866083700000797436942223273110742073683160706649648871058060791831683617537905723405720668353051302664048922884434949675650617701812776939167824773235380344743494814038917013942522651185058240871845847836720322038442112118095302458430876121432686330264435916152139723708279763691785598814139511091229846830042375693490577174232651899552850690352932754228669581876878592338405673501728126310831752968678825411599970077704634736612535530139643427969242432921550285907559171046765040213890498280978617650725318916986616876720236119453469757272899600778607758485241157152098867543910197050902223614107169544438745449723549950844890950255764171099285904367701934311591684038300252821106090125098390093472344360446119875783623662197437387065299051896770325125407250060168173628552290670906319317213170413525040138267633705918680082461673936981815130360164360503356332576065846568271795138365539432356585789702614999694480198471622475461725545968733908700094592181961780232204864122003563562727764532656179225647494937004012996866712711417340846775594967478584836208998317824909034141632490339924857416241771695769162875925642173927049405660583684879013932415172811717283235850993643909684678318906378304066493354595827912021016179745426926912539356336835276807011161823309668296425556351690137510588745090419530502628983197924185682264068167706554995276069419885552622080185006872778590887419931821791957991278098805026582935945397466212510278737948615545477223173233686817457743556384292231246764663275295757276647071284018698845336094401032033310169330021515693309012750773000280350215074385074421403621532360956377462793890981417825245710253196960562779735436400160380653538114620803417759378363645481005969074119737423481025518310247665891988556530517027844437446140896778828322089384336135747004992738515632730749593154887232244824657877833730146511158539286439727558257007102809968165942302746818260308271702450559711768473122924896799793707091298214670684068613343000201946880204284202920573841858886855949689542194937654243548001962875424308303812968847283169495893594563735560167700409968641931800968550462216146768389367431132147390215114676786994819550410637097136855044162266351077433159910600122485458959073234663017221344048353109798233964383238751745279922079225409351300710580944099027957131884719333401824853409225085896770441963075931754138592121501592848702081553838739258080378558007610795885346207313138424260963000880955916236090862121811290044441827271438792777596190691837767934155810414136411056430140517750447725825264175240453196385175179845279789965900355313264143417840907198384641354722759514024803680974617455048076783649358491601437117052960266252419961748215994718185837386109013347624180537685150307171800376566235319602845585228973802026503128665580396016094405020866931972019592867724330159093819993311435858017430727321236610924803541139682312998316279496741676424859979501094747517319559418735891781121293383732697634570981906033917357499519287791108857068166387014964495978951875059428728613689137590029262384707446354195843744338572243360699504915430010202873166189772172703826735369394657806436938397318081785027330212967703273005482017284905409640560666551230849672156172083753139582803542388713509006559627814306008368586662550685837566779427519977335659617303810288433463619017469953979028742293346584992552702132111945188715964782378591094727019785194348952905348073710961448759033937021543842409640201453290628579993987912592436291646790778473599054402541289448602912424341727082073627281808732964076869983945191830386309271494595528677953172146218265821689542276209925465696870415996877299164741622258104707142352465548719008653328274581146491841870948260544454627173214289286358165990198020155787599653260097617759217567800307463267282013132992196202151213989591261347275640452413689117037196772195640319208996366387734972020078479010561115345035470756448535941292581677259871943499106902393499728560803411949588142084184436197427809098854580240618365644542102317653091464691318803005636386208042699239878540869137810703144831975713974440825389150097379521838433125680276572566991881674491495992334129935738476174254098666500907789387465503252082116209211078245997870572266805829414644291373589947301057793557538717005508494091861280155336626155990860262094859658931813604373911575235086216694811407933821464180602015465932460416664596432583947819915538232739274101475537750110723806210059718715945160261949322532368611629308870974528812841162202310365734774991520162602510252878661699185978728165322609357798027780481775338375306876331431654794815351265207049416366005796291065592190305282168294400843271729419030649637083295930868989013841883208817974307729670086858328144500300101829235488613764828771488208960252532119946326706706362223003145601999802698159253991883190504390139005988163041605500191049364467408311599528478452558766557786161764874722357401129106066320597520196044115934051965404077228049942096676115192765581661821950031284592638598034708287502621952982162655421949835888751419615442661448696777094734040396301163668640547681605726039884933893762316455799774419364980655151706873901054017908064741564047916435345128742548019012818164352351326749686674977776433979536707213124480141072320968132913508733005305778073387518053195180443796664274210925713243047267342485142016425192684513553505863654821305868270511966695652841104278416159325744955510923066660198191621743930769659483391410473007068821087307916285880886899179077099814668648181370558953419321437269185919872146757379505836959969214441181842040243004280285883308154194486016901115496911502178204790032941439289015551324672778775358361245727142352473465099657489082362990080718603234010161362679547155761172655656755761896976704497469208327993196464235110998104295191428416399548228173937982143015137551882895949474746599686961656383912772277211998759551160558928679513270168789482037766243000996856098365180345141542162742209539793404687931061122732169667897850478798043655561126987899117524058809384764031400272781239736039003149157690580416648656662040463678720146926260960198326543667123731713285301189041447643236489998541131322051729204197802807038577127755888548651955230062045580895496120854697300732940107625172336938281626645707655854136158881080410697038828769884663264951184908640429047682168752736397767884068193817985896430386598233892522745949238135609482413856068881019425696770654319688786990738946070828705136187436371056239618095325629983391857580703459940038972335290711540582684543667382904454661963345895453652114297729778559953716817580623395584820620999342682880392052967711026945653860860029248344411767310990018873059524171575964996333618842634021587459925450811198893035037895074765032064206740652182498674810905189973644351674662368487697614232046306732247891747641965415328015301212886974144764247794535109418928054292074339557395287050539013779067740846410092406740024602859011940343084982692232560152561084757165051401765202555296030299214231192997410432540528629190122156532708617658461791874611505757241152238117046839881958330821380554176232456437947583872660874783291088214703725464500484028763148880563148989471455638475565802218497548330191052059160483720982772770333405629368848695053832739444254890160081187286189303457679175474725988602413289076109406553281266591598703017774802051842090843772092802687061001209357123215949248590273228154928391873352368691132193656228777990471018852611872949606955716472410916928710945690496875096410701909466532525087093531921664257268780897232532174941977592106856078983551731619516013128258895314507650455726427900600357554780265007317517147573270764373884174435090597897825572725214238160060313859048114494368357045786320662753747889487887322194729138440860197687334129960371875566951670771927541341864326559422105631143025960908546750509431272170007237435644799186333241592123063915262300072129309314100237032932250301492999983436759622910440013846833376508484651136233853052850155640819529576042926856630758198161066638085810373661466292063459090359227975490846966598930900744821012506457716855592491235335201256761937757536972917328282629224007442640687019866639773549908289375897435520239591414955422647623660968901377862978792400143831039126093364089597076933242207726113013370892184309174257992563402855909195197138522043117131229464633671422888194850048483021387976580223781367911867213954522357449309152179499080436660675557420706796497696926625039309942245070719096395051115574808391475086133310947697045732528670754840366722552387150472677409567367204303714023517724951991122666630639453198796428190789840351441106139877982820385406035093932153071556950004732065479515207573739640240542695006711604315410919494839308997933789523195676401793672358515294147040094539371856528151793435599901024044461230239651155735595829135004971341500447067009348499360506188455782089640453779008812504290547295382878441273613968243662538284848335123580581400537152598129318923228545305104756060098291083302587625388156657932097991993082469733554314917697704954127758317942588119361997397652769633942489483455504764441420951879578810022413172724690611679022744058293001964137885392320562894391028859038893268491350265186304363293824715045914054836765584899662776847348973884335921852280782964282632649044776775884838933893150041773254199630684179042906452517665439463328650390007413822813247707235821495157482217052273435849143676081031265625527707545853948920393050603515152731622577242308507116532274213959914961122022105150976417192046254736926692968394129873804042694689358694522831203544209276230383926451620313403565569008289595508546090081298624915760852212971815739400165222247404207758874039698568174212627612568042063981299718896219333873766170539230022350433941419389186035856637460132658624944228311272732933427836262149423468211132675492061306584369943617382182052202419233977208335360887530537955705038061494934269874523492679073263689084975300087269817336667710961423387281787317288159019223316268062384494958661413008066321722396428062986321601109449803366713001331183618228811885120073500667088535089498058039610607226052779458317897411350884821133302621149936799788102621917903251415705946834673441220914691289441034379281666763789304500649140021366171447238759312351845912926439243782751193699658799067877960872683851533752374693714799150032760822716213185297105657734618654042328941839669973895871861252054994336404532887509119546850319489886261138367013580538283810441516291219816718360413031092008226597880009197909783378557724237565831281994078243494272492071131308151797852671793333165980796712128939467831653253324561267731993097202160940991699001820713317683224930395298143057548443059817643381684580779067144885047782987940450351430458266995753298689229024412435130095031344122315870094324429540422072042260416296828158576171592873849200470505914870115581262473889842494793720403798780179543770547035326572330420476488337313990347398498069239143753893468500818098075053990867705668779353953818779627637678173287500821589299213714421076443244805263692658936276123224768216191184823309518504577070225283130517811004192038320562536181398643338324405599297141767848245125749541464536605268739689268244161315310819043907485380299472311703049238615138958358672978893850105632229497982014149473282677122365674557443795030137922344863342022607945966317808009995011562678538026415355063273121273957972481504394182154938405377351595527940749114624845573954625561146207424322932606542843396907106155477905236190073746523351861614565520075773029884945509049431455034903439599835337864848516294027470116740989549484226178369387581189898102271617139056630070833021694517353172629579306215723344362217813871397158580695618088475070826835366393054626090378297358976602396656194773268509358521279195800566252571749826405327450415609025412764434553918550932894102150386585793473411630200528732470525124371316347188448987409107578450903314390562014708190914961080078032168726851834243843734861755121191574475679145825498826524357619514744996579939526309415353394335033851686446108804599545339638519249799831979941983730317317856214502688437422751695400390321894590912698800993148481122039800445443195582343485760471019001752841934365164602549683149897555450270834738256649368275959402563475349507406616744215327599106225122966067795160618666990168516857372919387272188662214748625305302734513042887418959862522866234886746195622987537637266414173420774394431858921621533111664316504765819937980258559770589958280114238363610246335439938184171394152509812459660503285342859102151503073580319225105578268882784604604474660218351716843118775354904114520313233604115707738452313216548809502748797718318405877873539469479058202614244845765870033146260297234432779384144619807227868692883440437934359650800358456809488842503542608525299958140923252166245134466570575024890065781590584174565809158861794770657030911843700694579502798140021511828199804603417300491272597746847410826427489660688684497122301009242400270350531027032009537430992347421235332573380407496678887097239157502724576263646005005142041719762833195721668848173757414704487063061067232893939429277656312893378009973315986256081295852179973712640870928063700866123427924476190986796432695058048339034957328717929138975066274112353993849640125531730187590721498623712216050109897859844944245445462836695580091435408251293535653504260294813446222069174810653842885573149202009988278503740927546740044771020813034245531630373909303255741014856933095759660521862364666079012463966242324989419299467621122607961670032593691565327604651931491010782796725300288856648684455556876232602805395129366557338216708385049035218753530730634153432929305813740525479316911492814779122262573636524899535054849946624570450043684344131930615969179528161643073335009381140115884959298323462287428574233467838799312068599455779667975135113644897328417644922492875503592220856876247223371306121685169870397965109501501514920198439546737288327181495304521976809636853222866925472596865614409086186250998171007465817173728257531122009729806489518905007937312870585506443978893900559008028491095889690066190686444653379551629748038818883743355451207721382133782196732094969015270863403424552352875242029789713174797318412798886889560772866444519808321467138695823965678357912105431055974086786694040855609510474506288716511770896545105935075704782362118151561931641366306711950355426591303188344697730532782233288950147329638196532248795161461887241916897236173096509158611895399848174629609543088726869233351145591969481922917534462920292504992500437328019423805661206599850057040516690953034595938553987143628535987453971488787861981573601928974509903724226091965609764836227881443534296073099312485906445069831315156324432042308586936834943407188267504855922143560033807055470958614654224131098231320165442655468732374122732934039775783407143340344828533356400893247420167446033306917743994506641020962000968232744471534171506831052403929375774654204387288423406928429606931740246402723666758995691362693896438324291631887371133018254442420452604614657488798171827868616780332629617433385894990428981389586966874289875366719672709606054583603781508475213614880719329937797540180382408978336676846146568418577833911302951557686081867766812594687455580835842440963581585476226491743214477047977879298529547616770207869447886948514179740799222217776137796247182676058709510093272068053553385335698713174222398934458321177959936943817774756589991200565852121542081179413409093759906546667708468136005491629913383750689579231415448739294743228238685951642585533702535347287422625697426700422773433740880037986132706720716446815107339060508178721664834075794259128238472323558777356139934734990427962162816458717610435271452756260191011307078546502350878483574023075141972593128400253360222465020485907920069134932363764188210077296846393277244865526270103153590970837911337486470552202726104206964896398110600484302558273157864774147582191102494849991960322089431561522813092260454104683463034947219346066633119556221061667280462415725803270084851303402278349000929625439967296645207074799594441560292010818515210896387664863391980922162953994825567846721277167706917429063486961606072919798554706469285846653220978847062139606753329497826254781078101127703810718068761639700160316195123805003623859096698979221276946866067350765796434929265221189961427948170284054043822963014158786528660188029608051421731946447173326898269706600798768110173725019506596903325617893535436935118804941122135927410164171726291317248017813455969727909298423211653549708448108397502331445047826363348663357103476133148384659703112226966908091796170416761270296861522168395512287678966979556543580642278497858378893908285286237105213554002860030302506513832362779190012584226637298390449613194573173132781674047325194132197458994972563106693939655213342858179437711919428593954903470579060128493118238574084745453569622828019269797776052817882297764276633398015640084132159021551602931561761356210468152502613236928834364098788375924211788774490395859756693097915071157550745122061464771012363619509782409258027304157912551551918107363736834928602456046169332839172265637808219082133812308144343877698726900447624646669992394229884819552576610074193193998680373356857993305056659306446995741336698375378330961348121619429400956511906308402718993232768019100088578775835687819375200135968604535669038423926251888043915006983787979166310008937961561312332964716126957332776840330315421120288285659696027723288819250679284939654157262892026371199190910717852996852135691917947138276721151316020355366645558761587885769674077344124084676567728242800356717227882908533855084379640330017039937046087007415523699897883293082936993331056005091251869963459287042443691772358057201454927985426914701406861049583417979049219390841480306090993013473641612787405240510891892626076864225645183068178113032240615794634039273630141570352586799595176155832916824029586554236740366754035270803257801137739686370262367071456503481786804188163449821941329348837905531133263974056250427929384381661316256039345905037579557074036168424246190860391600894564915983034004282417100748278586729104414042702295723752855500801349801519696586740679499625897930302518100718590429261123164476293897828899756927131889822669740768424969208155838331254652921995388767056420343012833525284284117735692761851420369261146202874442112327112409070406913031098399905626027467356520208884322506039404016699076070784834547818243904002973452945246741246768744575496118331942714707328921236560607075527299250864749423652901129519460612033084236219433250772234141028221378443819550440676228687431174324780004253221328237114236839912827363793699942074750786930499275450387104650593377213783388463589566865108837070665128797327919208948157294545441264408224274595759542540501206200220659429095321995370048801200774965287598253266205284963134633571831656741487295063761077556821732270336188234879408533968950257473647515869979101604577766428579494430471542524481963385452965546243289184142856658472460374278705086947709250135241824502518998280915672034521649598857307418009049469165575198240436903993010994459051854188233601710952699318634190440713954482105091942250926359755002832529061169066079665210728419108414675979974225607245625212140252474775962995530561558134929552822102176980094167774625391077649082920179134402593063099225600787915257203049915299747724876655794512127660009562582373597122846588577582128436408066499729933432995147604422545036182577938508007885003225905910140830008900622331108476392720640182540292552412691698605890511914280759566889923422081826445104591016313803525985990924350728470780301804902777444066736945874238625731909628076254356750286505628924456603860289091896841638129527431664306707474750606130407879172749377386807547376580032345897325916101512880205599946310838380276651632592673321261203458306213910843018035580022554981796340795448870666988192206742036477993065855170631909402961466149393125296967612686393043835964445195239205462019067969364614089208205991666290116403311802057444912057375457548063389163479037688545595264718161542336835488109176939158260994725142163570942305878782557758737976281785291742784516382465075397920435879096447445477395805414298330074218236048522256535189216839272582109557319856308633147874850268832488374446072342813024064575464087700418184602840786627252036877971003472184021513966108658096705730958061768265193414797971082357971570024841560921361172030571592357645624985569277729553961587286820718593808846236723565061490258169935368730071052937864146454419514714036797677532304114647369773982310575730860817084684846681881358467537768839960739366391661423030895932528782620174196488025420755054310440357548650253529001974507865202048269087836223360167055533061253983426424940352586846139199149363289388617811997641326052715286531253748640423346390510217977311252690233247630605928276644502864393329825280260104834245208428475670453475625432730805166822519605045662557484565461928316933907469857786712731257190664343674931135165098878603062112377866376232267231801678507071742219548993884983271981852100350320678668788649862014549645968613103286184623299048397227672708228315592465903217397571286006428285657184136125315888967749773669575694986302766585890252456362879251344643821577756738582262659853678338736734913008771132664915960636155973441624594546710114898503232632716072545324633663874703500544139661763344878862726685470236934755239651761516290911609402350344620635844689895394949365602256016827936156751166426763801674866178301661192600471288009071708105016854873749460164002883744248445640122760346953477312688762073968240607840559857517788791916800907183212446132259462173915562506950747727658625131513189355143639744630746355809211599377789694774154798767297420178029295707513303592247526778409243600850416153971709032213547106454817637657682966405026447667540168105445756150548790532489258095031040287128916669674793591132213689206142196299323657910611149644275676773433418110570482759577903678709271753110194483812231076836049713298772182588017338128810054870328449742951914831429543987578235071452556732464978928512470536339817622753151154165119120734035370583843875481945760381784143882678888571372341671028055505366628262530637642632345306892336958610546519700792258646966740740152431186723640414064749228133086125214899889696302976679401397443366575036181658011747714581702662071490788236153486644801151815248675973959261538983562217659691304796656793077120951732712934557046866248502028581881444665775663026864847131815702110039773135501106863802125628823098161769706605205752998091375993003723905692458322749193524002769878243662503926634080100232494587229967268293467558681486759145348930161716181388788992355527105256574383308805987632376384142074051994883715498514820216483251362513600737992001380247741066107522437886666874544558726514599686560004066541972437513658632860021382880008577442046691478982845364851210019254785827884819721674073838987703952951243699587838683805579831135717901032839784497886743021992406301199411567320107902472428419543645744776614163558178675629954808045270977544307768094105280628137922385201074935515143988775075130200763364990529800981159847855322341596079287736413524181220720964875728452261930545659348943518045110220773728288726112895757416634021695499361857441146504127228689459503873623621480643415519003569352081510312304398444886988111272150421779814165422038891651319840867383409056517746728565171530671431086116962260088701453208775245569629233710687233786649207065148071491065248182181401275018706227051791986612843266420367170077126937649561513398314565134192725827795669322082251425194253512353862487776577942245274514836737182459361817401830848777983952875041623001440589533071295005831104484456302957121893543950631369231472639045676425864873651359252058420896550932599705891994985938890844947959662105950439016637358584191155654005881453599020302056318822248429778022517167994320960839695323817546200082031139831481680476569902139075686378831229254166444784477407313350033353588432421742997389893023198218776309855821607566055876123798101158859651829725351938163765329629950568992843381048201873790739062710364248289181428678605969072593990990110001505122286686644188035801332822829476408910475811070175172764190779561754226978121810633116254370570636949468533132693287198954911947943016897510830100713018669129254541606190081863528029999720603987824714157956499087107422811341924454755299227871882388840280652875398540645978520477684345144621028604650051540865154101718562951252833825411651213814370791626691344366846219254627327272526727235172375955714780815277045086479446548582060780476541494758242391683401115295486691321323490937337487780071396591140897939409823379657091400953965040897164677280925145406670896305918299944252527781606089208285287844461957005869268789729694624102745047194790961424882662311260692966251999344257110285535043308791517663399520381843337355322072240827300841871657737711159694592297616113906407638883253900225010391534685635028680502647808824885746223924546608810558307374506475351565101541652356856903631738079989828286062161943142483493788508202634513305789605612234351145928012302665028260950348883937054222239639482086730405317432157843808198759633467003349349414593264719958627324558511662751625005043214740170362206193361029318016328441940194975327588564910672246035536299263500692975752740650378165531921942879660451393438795158680204476903310209474663182537501898176860254279192429645123464235894175957021151569608806815513305767646774744857539076334512540058114835664503050975943638271166567801656413147619683567363153044664219059682989864552129163597699135136157957260601106092549485631469046030515395713915228616511089219855340377332501941435930438472267638704336600015820055222482330849760077893407525417449274842910559480558248007832179773605968747688299482156679288677963328588440477665221365100936877273765007424293139155481209482820650742161295341388465962926423658232090579395929161468371636512741269628820764375189058881625368788383162932685317002712060983513490217065156615512799832350605238140180339881914463940300981926318126204079512811230673414519565824402753143904942170193107735210268718830115420108119933950493702422021682109174966442280737973240845595307810964169698962641186096110326965307881168541334373767418510290332700626561704212124556935585638549931125637733585647142244849504229118668703620023656029774762775494908039567337429986434765291894290141126906757932367241621747448100167998039006099159695745946534125646540614519939941502111116264313163294306597434966151706660697943572739876943767920366064212715372550785288726274059824366201433640770454171817481442560608832475627036474815679856592568414376010630897562380508960338816529454888802618564683236824675721837499501814089380144328658831631867413725992655900414654653625573539106677050635562789742618641700817867256280732980274583511716686144326705230227627317485827110181196925199824974348073759395874816218679239366532785311296399777504032444648816739069582110792802891488541909029195753684820742807423154394179093280906015165531559532766478466005411128626489661344182513111181780949315074466262035891494289638036440550745338044468607084590771876655013993071477108667124192827688016945210402263952870053592449989353620432746733809104072821516871629804145610541079247169590439308215276172029153960170751155408779941683598273780618946912371361534012290428964055534416888324979959706555612144156746296796309274483085128183142762580284678097610481382899360034633190447616408881715435253544248612503146000674202191715148964239724428585674465266099097661812811098824188916025191562577386811020842647295617980548867650715272086792966826411713775968749907727061528592517017086276509891402924874362550730397686486222002224691025835724242443620928419893977441367600929364715572824779352297652198052251253661510641274303997185025057041283462960465919943235324960553188047059034406073855708430278563470447562405356381654866794753969387881542532082739876077911260812097783592808450392888438003087462169315119425968008157327683955066755848279213959688626795039006573488136419102485610584083658631613390523737462039180074114989739299810278850337489413345246134580580318866830728813263837407524542759427873042784757261273298277490894948303161322514619165352513714055571471013530687280667173760545925094224217889931017345726731812425210603298289953719242105896417693924048727704218407182337342887934676941450974907579782081926488860323304329022877737121824528119199477177544716523562551407209326631227260825034120341490757319762902632460548129707528652697188533004050076955333866816124743325201876989807938230222985282237488738213307665557354278630507710541604414340820493644936541855613329776321587686871637545129047349543727701237428809811528745919324810300443766324904824094445395871110784623266859095129605352920383898112248531379796716812197423178865505878998650394287211638033177338519279057488186836173072808981002229791660761223241664145606900679692814825465514510487226142941632481212181915662874299685184132864003615777259991425058158625496440900218213948528118045071986908614287858339715626849655432839646630182690105916647271442816291618607454353347416705324594434730407921465585110728541471661497913803047072934366922501783495739647275050586519625903009705185865873361145128200216547714577424104983032227406173128781633497509386773620335331400961423101493290761092847012510399417607521856595419191269602894701806641270328585801191373349830549945238118440829629289344522866073723004552805177309349192403321901833299524517018248814877263836401804234283381218930262005158635473453722039655920717162839686478580935045930605574018036912989873817473829020353327663071797871172929391525739740084936006972061263760964807725542930601422639410466208115349585752169505388675067863937727943511238334362856354976456383750026647729073112019886008942090663193273953784407990819721432690763048440262543250299048836902848607717601956488086934890016562103566211982197081892908237940731121542661793627081320273212775072142717748489338607886865452669302508153711077230874656767516811723228924051118291916625205460280888209665290364827897659206526306675806743181724738425096157271806218009901170899230765402255298138815699033465825501501813421749147075064217503116099944976382020801788865999351356055817226665198721821071654780839511177066470973143090607883868662845617440409417821313377665927114984701835692542713849290001333203772812916190136485565878578600047448492229831111373344540808496560108347248888487475911428230078642501297200815690410416855453930004474972313098720364827521878953155720594961834115844334096400873817193140973588465147897524059112246921019170980488341858864765468974393597170771077013282381783443959503111547672444847972203739781461942071075340069355114321137582078949409521611601369641653921282828520905567516125524422083281858414742245107059623427943495350491640775145732807098441220798976260705795105356063250137698745232348370661188017075554283374866937833964288707009465533102749254142670629218457158327626075658821340584799706363435657989459519690776718393346821053101018236014222427266481927271176946041539615710033731041317040816571141131219628770034658687724580023657145964535829896784169026743088088330981578629242036139893622032888431234729591106825357274451910097775101737758882761615481346884719227445633801413064756956872302516589953212076814689810418183740043197245509369456421336615158616080411268212166252121098708253076772998448372198648700912048959529078807704874354945317475801639864386645348539189276205149095103635440580746273711264516325181673128195581655968314441739884556794478389805280691364704673300165142457406606336539084254702466230578533127177262886167288484327841433491607449210289905654616460847027500548994028936147473758736996030271750824804333189321495862349523123536612272741736151000934558882629865808957931720950851989575648836759019371111496662727106908481958315274113331809587038595261983453789551850574350778350483671607027071963649455051058696361346706348131689823887352614171337074061961691996287641519129144221455868101600351850168230372810815051561880417396155400955289651129906777316440588689632671965263397209999505037631264126635949494682627944879785978512515196658600093192979083860775466800385347392637468081349552599038927662062424642854716850290979502029104559412379215495201933742137283637697303228228770799556204010583893252750310887802610434316674042439807531563612463384441617627792164085094646409622423654823907061311576549246259930410507116309449727355513188540532491786943580655109972987926678280471033434303163406198913125191062472915364675032765791572031399768277076215098658134410385022240166525661148168218069055716050562851703145102981614246058753436066393760024833109437294012345687347019550108531825120431382317391829647579315634861890060234847936765119762617315477085558713093617752853456707995803089382225326438918647181952413351773940952931025284022439264388765220413810048311707368210782573945114140157932467549742298877147576233440610215307853831923529600929036156551613033550787162030791225697191944830033701482034973270859078031159496475388887969316842379239151139975162699352813121084792722152471835934133314328814791945235198260247541654684324991262670311585578241611936764345659604292044463541449726219197284538924351225854678941438303573014281187039867238126355777580061641287763304322225975431805915545737999386701656409613584974093467565698976974959476002216611556564142957036902425150296297352519526151949307068188416576160289366765744172324631463807334174144112458761174564098450782079575480195295109552004462542452946398717415012115146833503833022885706036637713450694805757618026753527462856468937209791355959199342070098532856049567555678711370293891646813675659972851501697371910190580519003563590051615788831743326783206939934098742884473754405474620041992539555465180304634238668450043534429211807727007370252518044580981599743114054115550825579305759195677931832933729306192011106794984582043260724439155087320082394823720406162559265411812400583483082925642367504176744031736019682847397787464628427208812712103335803625129364324861706576762254281622745860308819936974524144688883187948521800016087139463951735812056422749238863119601161124581370148175839135954038835211500221240439265995451719613790445324778628692233472584736769780700889509058723413767007103881599828015826735879689050758914816517078024356774246510058105889076043227049545079936958761339399867091873366909367526324445933768081167347946990234135050354525083226255827641316572896372910454775881282228575503785738312867955088611557478356077902219019078088560393279370884589315557551455516897034436698407793291324757415299320889481578831238858943473628965276167675606157824253248856248909311713038552692360210136139500128659454181866604815665597047041376763390867932252641123325808730739154972796142496728489145004890076809392755429771710329234114538015913954156174487175728905928893031326245038522761363540190847478537329988369203682532774675724797664725947757229215747948490750730555254997484554409772154748169651770657933270670931218753528514776999145447405826575168426073409926260015816019014538469640257430873636484779917109500578172110419834092625466518068854173424054903459405275573744677371893215902270875180904623350147068059965928014946768511134484148719284716510771356942312529805790629330832561921355612345821074420958479084832876526552749558173631133458414643050141696826175732822207327506837478615276365865233014697192092585336508675819669829777572357404229342325368971575579830149019932106694029912441343286346603493748248971749478527063643798543932140270541104983771390915893048279399101565684339529783385200598272784999688126223565449012848907515664923619338700009349093763779313903377721140727236745837868844521101647752923508757129942179664985421577385689520829686452320324507066642714945315416593878981953194258617827361197541921564398243805903930278755586250221778334756738023873336491345995585418406261361678903612142055260377830392853576357236963924751283696217977417598627988189217523670424213655759419167605242333030900503958822864651006983787233614409229471829885156029729916029278600777087815880269504777278817086098866924794948490770700713811547984326676132779453292200072740965476143553326101119114874121113402026631503197689064514521874774325257650071728988785083431867789726834707902458704687553006648518372019377708993053569037522116739079982909163929387306161695986859828250659211089570157719787031868298428803795529271444962385650133253810575528667392893739825207213686474940439463707858609601673833667543151539596586355441207318686642244149521381001205523334705710062110537511515984747911246733533200664194548316070549823505215887457492008449733192354804057363936179285713815983952957997013147019115057305279914426403248107873673030569144808187928548790571208930110596761986226436009340229394480152585677412429471093558615453947816457058843435102670523051859260315655447845011300021679646739486172045391228810424674091020038018640442228042661254363680309558460853911305935067811110494456483935557419395393742259541464451578694952700055772434498632802388142473399482138550418812744120214042644998832635139464260213616429024442247035342753019773573556948029370608874081990210924737037571239405249409514203213251804412371678844855201045081979195719200434864897297970316559810293515476165574602842127322621377377514837143265445920314079331483586296055850597628096114037500706520970737755701563977753053678340533863497501925685843909635570467850562483247611086904629445647856935610088070811004623257733052748691925652236669335677752826885726298017439033221610149070447134617023379075579399879955972330995423694478346212192522592747900758244694692906707324026968169259044864839235449175480839966662585235136709022498797708693085124961543113857065413546984764511355074637406313989671172664347082520967837130442030102051014802457876327144361099946929197670609046599943690498444232137086876446148229891426732530508020457555297139974062500747577443562774152972185367145080275241143473945665686015213467574729376307710178713678742990251333342977436762555860420154228664354132339938212114990222551857404261252696620937448884364297564823828420027807805372299454635490337427572199607489138749121755290972164648813460294756082706120882079088450770823820938452543573444417814911213681266008981550006667293353804689223309026953859029073693704299836268933739012848920919120250032421022661431125402226741141903204845490326040949489439747496023436732985960464134820583240489460121040691376122691240601877419879891078123857384497027591537993672530163460980918571181746136073150280772749820366141912889674152613472885493030586980478363548070448788232581503922067778031976872423070884037588049547039378774137313309364254999437721712898030746073593660130971877185483800877190401756934242684339063058716838270587045286492966671867925473434276522743624188154773418504665735702217589818049201503810344832819180439142196216305409418511366348390400582299858309426521038069405343923647841641596127724076213296050533281635900472914264172652496823337323271454984833215230324249170810246926641471408937119172619450777624998188630852498048918454342950472007242505686621833389743155785871941143829188092387479647805624358052302245265868569123963619691864853608248603054537085412464584244176815966191472065899880285173087705669324588891103730056537913611736717539004686304446022932420318867084382771259976596087678401074069058536258033243126537524343753572117770028443068915427899433530875744544727813466178946919786532590161049374530029839526289479577868907826635578861985242760185616231042436657974388978640794666284132504614194268437010956178087001083586906251895407879791033316108733847535793124733009302792000739785250234620986207109274116257194831552659172365486214912457175210712195767586897341376210806906085824591512786859684957659833840610821622503739042968138965286907132161769120241406874672237237143344536759297661767319291928616878249310030833804871266930590309990935544468206313800756983171766752589330551806356946065915864770880361938687335942454493851052399768185969293615797699257883755252311128579748441055230021406573503883617992335220026439997257649699790814777228984557730596501543743567680672893885144170053540659321648351430880786593197187540212678540392929122766751373088733016941922412299485874502672556986667819621132894314082561335543025246412315103120038266091621091369453562729413113737958034837590360960543634132114114169160538901090635175156624524551854892291286608541979267395904557181225792189880416804487172758644778468519576718278506162713031729899568388806958062777913275132280671675692385088741410320476638898275591390137947294803656960772825055207806651634364123116048157597653925253666104238895064646604258811180239030483573393085002593894654406581084210200124037828596862332293314617906521276714570037615126395692959896946448808915285299719951664442991473700338528352156444669651437312390720504021322861521681695843262318633844772783981619782369796542491213668343844104750982292337279656805075992860918712456568739988594815734562110985741953417703443998569738187290509288972709704085017573106781726740812568897981747528146087764631449898156091608738167493436926647031224129968712447131504395265348058329861898606673718865753538677191954384775584275876853189326579289886609237516735690341149920678143092750132591812963321384434156872723749873299549109104696687003826812702069243082769547270101122174940130980986612220095507648557686180956903405040459274937913820537453242608045893276757819716025881500922281637724474385292614265690723677831008439562783863104246455586684716897854451611460510964635018958410895641008095554471305605004674620743034998056741129615107968530175520505869569091773130754036322020836921015830640430696141161279200657488453197195174883410413677099974919605707225481499108579338842220189662725642839963075192172285080244111258324574162267314096331170161216172058761927802556158565252769875291619196217612128032292260617123904428763346642129945847413643050524200806068188116293297408594068802104147400076335829426985696868478881150913874819690672795853839621455718614724745468950156790723255135666636503561005393293082665990842877105023127568650397628013651298636282803257027856169846193431649754218085636333336956308226371466076058772643361117664359601020241720139133209470802686501460808631250298518116811577981617867087537941238343664074562371610814374660341531494969570324135121030453885954409692398680017392844510447366886290073778075081751798209621469304234877858303142519115107581675395722699103086060125136053652881150518750184938426357768823984191307754889748148896864542205945513193671541221565427503832723612241512138215143904126409403080260127680779308558218989010631257297146767468008546382324747752764138214779033228130386011859798144189934149454195777074487613509011580069868542008435736569808082477122132661440384642402354484569828427541536371797662715961906170370275531309850765275628613221612439589310204934752358364874256842347891794722404135004444464610995557102542904453946013120928348096324432592786957765006374103016095958307726651275811163773616396167607251521117612810599800351140391715548441503164754134562234973908110215892065971754911383683372058171657656344873847032430639968702745521116547592112268486152391205763461204960081247326154033537755416250402315915003864826406385639417481153965096928207250446550890443432052986640493546635593542824347628837211145731499509422932446604984902202465127306063125510544524720807172338587273225550740334973143639228989690079318076824824949727007723457045557098394847732332894069306599645557359818740741440208872018570474937018756204669344241759577745293909089205157800348255752183175449215909323149244087819312600782552618606003493070834416751578288674205436680547531572621077811448465774842988333002889367964704499828697467810032796306289411297330859467448668801214488619552243397644407450263252976926528106855543254571344851027895744835088970322427669708421354966282507717158741584999516411279250630302634887569301922651937161049724538327274799672994726596216274784295874959163465854339825883746827883845452410161765924533319637018556330836194164124552204732227434889360626316014603060886026160836282897726530609318044893685640788390475451660052860083653075240317737886844693961260180985152145565882327887740884259461201374158242322528330044720947734039536285914992325747956967741497707208851489082205230044472334695798833269679101492331589514092671855533553570863202597792601923979129818055230319512885649909971723538366880472576343826348634925216378928453929085839740230001730883566421551593647402729741744813555670855978227943588040260984025963287236502684946454803020278972812281860089252609701611652438826211705481764241152498887456196434517097864580113940743017065780528301457871168390688692182135689925689057232003445409242564296476827371364856759011462492414527529518041475426990322353759015673382164790760651758486197784330448633151956218879574348607089717980932438685770245508971853843445190097393341637297727509270744259473582142602082675602872237930235261676300743017141943374621848434662943317133236512227004213879380658364612974578142723592028914313546900623637220803093676540700924513478827340646545816842984944888667578551711505552563369780359712088723729575722627606756502375552671491102636802108677511820544366716550822953556550323625357714273889453953362994838350924184522339908772925693263562838256753409208968774934987374490129642016393177515514037097230005729489452245242376380092665307786287017556654055291521558570516590378011781649943791810766886781456778237084839016202111686409188507256420785226422593471172943290279428925083579095344496912992962785078965297187503379496259068329474106529543156716827316231476378667443801514217980254815799278330888158331966487945554619679259325712273959054277639267936314986541739577071828478336718752571991867845480491808407506192207115496504325423643671903682498969459110779160564836813535289622308972928266606186992566637823343401985774477270408794316908055757877809051911830813683746203503395966291227987558201680093405327531668533577014740556869897132530296631657777575457730683163106169441303528900617509001603199622477598631755663122542314508056958187639025084811866921485890582635129308962586918129274206062034718080238396444056944263143988452937437933332096841371411433055024310196254444249521416652983855645060977699853168392327773885409374716643780669410864080704719303683367635659776955772466854771820222190749833994862183960533752973859273592870039545626264994181771829783214272639580090216018090365595725136877435753052980403464678198413958214433959615148579898459101697221553094443672906292504995025637866581215386484139680023188265670022767185656262843015726091979943961503314841856464091628851137496252657242237457788437325971998609026219432706877928932751800449322400412302069973364302087970038890993340959548442582640124563834159402260669145340255690459751345673468985391163751740529695111901828481137218612877984367922932871687752558728967269734022770295259154161169648479429420206925875320857533050717707971320935109306587999430237928581343299185104275488021216519990512691549027431246424224607972039110388589939610526796552802014643385675445194276673552894620404965301391472208225952214835361579867008800633064171246419659346773546917476672842179960496132589232789926628480015893848704343943957940101012080762048345223357735653771767642568910978313932477880999085029812584643098534238371558379015049172714908834044049672497886671598378684995820681528327565916246250698872665773546066957159186285662365067729471734351444871437981677296975884671344144148144877272860092662085749086874156221080264518811905470289178424464489000696355749948588211361344451539206118884746729790259207856869295126235796052106745295132583084639540916133940646316098702462904269566578371922250591919493002721267592628979869111604711440698191061744648570581058351929694993670061580514172755557026486636491601806763343194986771945277431520625275712553545463248257740058361048622705895673669134075767090749716365191531712626730437762597198189184415489671883495222359872845722843222262002001591957270065854573271206389479561373969386722110496008276926034921219496760144295710431652776890994471440290230131689211902882773464980220977318428010207650928945314642785209079349012197134930052465236720430255270748747508625130240147260994319993045007734394836395661475311665962880198923437177115060831384150631172022395257969556643037391147714024823520520789578964881328179958895653209693369512933795270844818008368191165628711629376063191333400636360904039364926708801347788189785155091094569036091722388152610803766297020674775082731270423798329804179440893521241845612718930478924997032068145200005243333037730477083412388241534212248655584172771459733996193298442282421848437567290680347537664996583953845151588691814193723977280389610034891922255652776867339398687308379336295689005802695660750982589052989305246280174929873132033860743635981779855286164975792602182045379012054430879147046817479916443329419259496332851788412299710338711855857295826762425028284974658081414150372434667170118786869977963150162057140869502231572236361040845345085351229705464561461992725501771817395746578545257403570278006598548155604575865081276701358663842813693971948140685115888833691723737118959877249449084492380137932452448320053403681458556516729482688907009713722439378304989077179206456631489538158850979818884141978377106812237612161991107144794459649308073947943535749683900831449830624651465765211172182920679894166769296974535028978834331992283988071905608071178650950180092556350246850632569084469122395535572799505424613171962478466785149320640275636863331574337817520428947230500097280490170859590604375296043212984401449869392618013529862453204737179472410382228975420678872993872594581969203730756211638191566587063840761672161736600832515686999374371466197850675902788656841949490720923666562553262462343313615786313118191128728923989189828213227789474875188351193177298543497742201799736890072123316124188985205154337981997708182314102194877734202231634636907029171442873651878439225135284031310657550736046125192919098659129966957952802700469330163514076278240930215542552617736212277190778633489636169357966675183734699952326008862016509395008181077529985758857549035232079077992004018819118923401467331220563343443929028165299037853117545343398251647790860970029345152520988863232410132417032220185699524892175097589894414775244421864563481904852624881280652737318495332031970330657601053598742941834732790402227651163891616385662814809921435136689638262276544905984362016135419165690098662930991207428743211544017229009394156320442857885381983518917757756882801128908707201924920050446534682383902297083745678033520295025976867909661566815815190779001126105188283143498213272763815612350708951770276209127973568664499962080715097683015302190950451333283058810301748534204259754575872451174359679131724473186290258160401018328572007329109706198116254292556681927740351422108268823090051364342119719170973269497494545588083519659387571831429259933960673257859604361353479628119724139416505263287199586402818526381959832887863629111357222066674385734035878788146715684159483424665166160253866925053113683377167427401714662632144383378333497899520065216653317899128534326814472058428812010673256121130308166745711060577118048419951904549102320568751623799150371269030336555348634867680029641219030599665637616654899860766667967958087274518918607608181749335572852141363979807143086916828114588037281364342028051977244927730803434537013122357277804597827094985760489474877741818316206699621836800394360237952982156192408163097703157852420203175650498416440985179042122445976491505822498065719228595546068920412389299831671664459674983622242876362795090683339296823429643607397332887968531564913433845849935043925993124520800061914328573766856773588934049815672504891410776161340422473098985361337012388672336752928601138709886285692433944274082246659492447210395862921494122560359842777855029742041653888111991424281528062980405792370377711791724880505153341795608489234753404668970463538556636356337215158673051585851836352551189044369725372232218150546412566690722811419079152698177108130738497929885650704299884629043069369653614453093030294083976348223228360520658454915068797901828645215525914962444840879088752280412285403268905573328039191485405678624856578750534593645616285333794239703607129796945706555804733142864687751745387532049256678992602497613248727171033596065870475601120369249516496525269298755521784793852684716497114773105103915344980945764530258485744730411546424429849670545356596375953942712809416302357115836844004594663763200780139089680665216894842016469408306311504366482223734458628057629692892334227952721140053938626535168524749672091339189820381533097041424659767166504358748303297786434210793762942473426092185969079501153654055007791322392221585259966272077016338871338876207079032826082388634618135225060548527072434775626462535780701513814420167095969383216302860459567898534939801737315024106008737464634359880624340312631824049634777159093273091195210390487383624714835530791417137792162697812935978679820291956513200534498588411253859280302000295976972836540847977421494653480989712507020827608546929181060139691936160264598565131720096269734318157628731453813416536335927390121672127838151852839602625875274323304363010902668057620960140252334765583412551620562028070776776414132763144795891209673259315093890472860066894504340451646621655391576113199749462170610015490533025150358911684452852050093648821636165209428456885051483191606742845578772241660206877034809295230655452525472466358194106033874542237564306300113557107895571910498609738433026039892596770959617701697401493744911174174195291378762494448301601943968298114313743613333133111792189873941016474655665443545749809738281414473927131945254140040714308883037394804252312278086017213793529282270049336420331792815933329576014336127679424716618902194169152386963557864679725839925661004545453579170527062906893792235247689596962405246734729313971656810173171803884996108465915399196526108625767826898473828133208783352003729699138297136290729014260533251630032234538043619731441752743831159335160582046016523464127407724461487781419840189173697176911559685400898470632138027544149405065792628208660611457319807274332612494644595430067472902980933544833646897079512121863578404403546526645407977180521326563280926266392518814298082449390446870125427376071205557380634379715233250947973142057556397168462644387454679294541145865865569157342311510913397071216917768233445469970578258064669077592070344954519088681023891462544041066054520718417072841409257494013410978951448127616589178274648166243740413521674442968045512996876237268683210999688546867492825602871921409083721119914136425410988544833336058528076730249455673629202215351439505664752054184352460824684784371161849246983581119901725871237726080130746883514623027466713106529765095029191898731317357935964700228734961026538498891470011771954117962752534388400912282433825520200721927702346081333154972978657333294289522959512724352839787972429166248968807771821079196736810468832784041878065274139292582294181569439348037978489468025680084719309782205533129548659180656052883732013534870603051140156367856381585502616509640940232398333900020729380901975666209490031351738140375255477343954198225274420159734035344324722098709098651830349300238843961580736550081563431592373688903905550479646189054667029412673743190588349469999771845310594740207113118928970463313870843935624130770875550978754363141084978632920758970096668436965644537926977542284306441573113299050274307419971098867049569103991257048247782776614736234303773562810091797800882288145292094232612945551160092418098246745172543700459336942756158458407400136579206376213723961706707981566161836133601634979510152292938148176009410523763301838988394902470028406986724034973995555625942959672022006919100302669445354812662235557388289116600245183528297453783004978823623703174809971757992647658817786934583942886758300423200556940072873824784202190608860520812776250577134928051972723762088232609450250009981352112287009047596354669902617442953814758386351619065793962671930654365598069927362691802078445359780991414255794164787271825414497720269237295452993121420485755209200461710523618882730209349094660267819047324502930680331835241958129661680131808157604619725404100451239242622755456376921571420877943646630967277413122776756529930936053238122389450498939371149364169426711388254007539989416785547816552541224462814071882988092320159535140817479259331858269739453463892900045757508928352379330790296840548219135052164566220023169104408669178180155851526674611711338917086293793625945488004633780894567951474463063207308248120652626116158051028890756595247027409692544892704289934015388445341217541809530395789522669460274922938062050842737315171508466449453240549708013108660401441888966375898601889097114548233476225629758567773772147478668102176261817579301872829437361502396757299532892531496508818300037365841372271403935424476195819036395551343890426486707680067637723807161872215358694379565188305235019418238690204180536624728524537929669119418756011112200805918201079479542837025716311911884260957929376667535375416887703085808723212710259354235949259423513269595655836182726734793711869604787980469354672173168663331338743498556501232874158362756897702616666734562579894305878753493691463104564703969437929771202971836251457140157651173884016140545632591235218373534883463333641958189532113955187622096326608251995348080942303392298234478266650981715098363933383271378257469671722514490983349290782935903548152180161391794132345155725124086918162348027671465424000799372195387669162890176810107506397742557030404763055624184585051915047958344919381345492338256574818802276667933434646761744720345088301858195288912753525298655393110952900108309657933938079840087838801577543222100425523694344060706136924535556638516107414761139100198318552105755407695723498282038778653736359352009136953415121816090562712955322546972663942643614830898913503835496862351030926165774605314768567948599683645133617406529234458409055366716824436050356555400430710864162423561942876779147903812250885990737730201061250194602948006168944447813246229334443553120077421411570647431179208354820786249016595741367958705846897645895158362228431662554353630236339001823386461312492215011099582212091739655068247130437955040761175737468152436557058871779310557813865425056779025782266875178094864169295692672822255191971224521240343924646771715693000933828471312296458411969437763461756874782826018086430234299522922839765961968077248655864746638604905486034686045610003780824359120168892932753525653463351459312323731273420980609961076692199522297751191865307773264493598134949407709097598833054761520610999228427304279946100685043900178871938407059121534147868252171207528613601752634240560183302333682247756144615148909860675656269428567564113976193337628403344384745213027662660438207551709940596245031001356839746410639467548737931366940131148951966691680633077138467956133876908082404640626095058229481775289787092867679577833146960362418498219530999638577382959585583735241160790928218890780847035985930185599751918584562419857520659338109561332030838599970826650127451280844592669089265709893276861638457332777039586404712159410637626124787821286489070530129102374954849099593672981910676878375568312972193235338963293855558613760556383427016869611663422335519138591283539866271437429744361824248007006044682982676346078343767759140041589855957616556130058871613516609042839819217820321675441309957642238980571520509807571314497141661061674445824109052358789755413692385324774538286806479907103309589860221830046580319387210144043590834038223817388606597979808092519133607610859308896332019731674939343383330457422195968107662979588090685380208238726514073191518393143126558415807260325178378999758579516695722554638489167884890499942069378309513616001132106038987939159959525485778928775943461887377027431590347344270519323414214732143483717092027601839820721622998861448587686687102870238986906985467114587207152170713124173532031904001932031041351462484197990382979543634290700035866857464860047137970076235216572765843431454189462642684376765845517252764964981413316695970408651072134708730839326581507673945698046764057546835369643134290264635479693503482934706332220356578229319767908814449725974792004377214307263085309533488357750325091355566882260262077161952136221736833339318947382611560232770033057010469037041189400495433992060093998550559596788915510742107889270981741406499886153242788535750693435990059798185353150825690851329449007265037547297250861638963846046155833026175890093361598927961715555540573369722229201794362272451002494189499122749861567736690355854719191897964424294971651262960547534272991231980893466582254948840006790678689296799520952692965441686458551624114093628150389230592312042892519034905352138302365910006477253877956142715771731352017793212435596469649442023510043035131997299189340962450931785637586929951581131294302136618669710854858450733282437661723074759939251320945864224180308126680025859417389346743991721694184402828751403283267719301772036945308635928953508817991762616876650935176604327221154524533960669045089949643877833669573648012872895969812010819764070111483295847671056289886438123213051787158236294580858251544475087038388104649382054027117008438577729674832385029337623038551334870571441129087137851690754454934875481329243133970638014956284019768354291371580953755960402111657098026424277621070795920564402274661106059703989659771612122268507834165354668643041464219593348669579577804605796002896736628215392586214504693407311520204386165365919250299760402110559477223273018597008103478863384502121766158418117791001625934296244534269382631256146356142770632138959635175943186145440991687078134194797278133620108936051458538316746062619193529321756490383532216340108087105213371841217487929813490279446928845394818492498405932825124026059407815323688541348331570329493028374147522831482616715908836900583736664800012285123363103368642409441817242425875945271192360082211878660397603167001688671787812306476041915159202761950854073752962918713318345663055834848510535171562556797878969793136523156751281260248072192410591774668635173288691094268733720179408836197606374887812409341727933589161188744243883177434859338328030867396926577663529541743034235798106065012347566720155548778022574605676708154401460746047575727965145849475893018632807977701647943292219953918848230145401737219462480141985782005251167364016072700330651588374216240482716254247848758970393488375800929378896276641803142349552143087675114471345782449683302582796765302520698120047238905439813808996809792993607941467014407604305814781082214159163629184010636203043801642016619409353191427584587906270074058305833743590085764550087957064525005485570656696962074824939572421288288262865323013367868479442502898428669795186972305029462609582241356575143602033531429346591993031089285639340432136585117614234912394026181116629463045786036734194877376350486641821284398512416077231644330562143825540483721421412691610520619228529339443138728912701262428472053035521597793428526357783388932831200309413527256524550574578424436401988724961489345285498752226931109298047743618549636108337335030587143835346072699314125988762194278664766006473834781561738394758390811865326049687423399159528604305325754287490835884434263567805752608406443431367404284297310358370477890787372994318198647586411248786703875034966398022649352968859584045892948633480226843107805216948679405212781871010332741036583800064746585811753283920273761471966295342147099164224334647106378142510314358893833362856252996176556453573795613381782261877639320855960846771369994169384250761059464482633003199234414707415512307323277071760450720042666680780649138458529009697576347818682249281912807656691654103415644407853619687265160842575843939168184217773541774289860373480448791760571867313332714104788059056986046250571186154177739643585797098711437126778386617702490407285625939657638033947935283940637190373963967409301635254546233089359685090946155637999267597701316773516322796282855835878697140075822505176658065973933824125357065102882776536935803222475976503181047504899135106114160183357815085655739441205285001180213679082155442991933134270936817932818308218354080695699900223011992007125831198274061568068310197049417283047821479525135315575460016238092361286654003016350049266479697613286768932204579548390062313660346010864567439173695196751263668518627871137999594664565708611505259092312842152545564194082002717315280400479694115570914653501228435156186506266587338861185778079176692728302668991982804692506285785485572968698834276981523028415867139124150907830094804772611281044423050125318486945036839007751977957999830186133675813001792673560595783698407171083039379044017165158507111372966715485410075467322081559187376068027562594800145288755951632903413350827002217316062114971864296538613677880398955459270411578457356696103881301620299435979909126270832738110086194144267409952999686953068753340160461179149992806370270141268595818023566979697885869797687559524134366500081195909046955055057426204088601539410118609530896559907134901956821353292161799097508034145895457659842327273841647811409052483032435036776645350778978961399138499258003079781335353108118038306236993965326726186194322918240095834728859156455845035840329184295477752932081987045125116394639008044775432775318405511696714060107568909370382004310563206786859875187155826606261785644092629862933333983762216756567672131988587208975330540433352298409253369326391369665941037244878433538778757021491595921406505137616883425569661371776903644766919755704515319751254897033388246011103346700343046188888695704238691536580405340456393064515525291301159960800440421459519379627919380674426074696200424386815607326145984783053970779922852003925296398471275834929959270887743173607081913975287162075377224948347782338157544551196479004936549187807491802957195167648503405652097715470281849608803750524780586028848604645856006243672477069774431883940532624522890993048458174281001689863527535532089398880667326789745202265066154232418985743438161858065463946197465863335057541313331463755707171332741214252907272549132865768070117226164739578278055920485692428860565848760937256403219064966715117136556385183382639044180127468445532384605369273859600860205817501214634886694053181608973786380869664747630615691735775882242096669098120683414641208073446365332592308869991281248448546137466361699570457541785642833834557263834917284736728346007860740049035363148137241081131409030002429989925029877402889297582451772317400854995198555613193786153936667395992548868467917281486940461904312665632861363013288029754145960701879202872284079376215921097399295461022676916119002770126834636632603318027593576645739792645144108910662566341122715061254692306334685504061202589346209622746963451150847663656597617310143751091276854762017100043699316076209278367748682550128438942232863532830833620119188220913918645625584500585194024526096913327056984705136892527746727884119350423987694028798245768013212752063403809457540395202342476760754367157896156178173327778586822505774960855756148692303447237768674361204874032994846738558035413303097523332371853521760512723138770063204943766816913220097627606000364382578640932236990571363277512365613570877132114933637646285681842044409722039538543261103270854768298002226554333396548491356578240498748574108631004956806592904216707345497046698958958534133853556133655732347900972612716790320973304412328789841064315229101792158139656890233107075855529231418178325179737314548624564321151632821948048169996498193306348743764747515307464465962887976271244803225457887497680035938994812261896315288275400655468425988375862799735618087152128341268374637846391982634608086167977565439555302007832435463076049145265584417368633876094550226115342586761978627628721557527765440918626665122417106018155199944242668054296462340787744421616316949002119884435045036148174608941973510563204831965098749032486498936553903932451573344808298483755434370919391109371510139113419714031807543215506843966661496520646968797288422471541263919552124240273960986778291595420295210323297542973824258292008799583921925555654115965778927455462194108464049226783674570850021290362695221819130245661079676811472214892519833275490316010848852921297242957047469286677856621394027502185434850379143748282961411238104432223144139934550625766331195070747278787489786325868518879055264697227938620342999046505177149317794120847017577253344588917530187560135175471996031043677220816918900194341208869512304511767485568018380432396007468314603127770600089859661142956102267601942705757656770686619232481649595720283148520870843968227557902239834582912336832883043369068202024463728550452901525625286165780935572821617974982885657017052465796075298728278468099789615338973077221994339889893616416920012229651296806922899020064543119630913931117325015027220093789737602958261376918808389542522109394333289822707518748841467149709221702518601178632370809280269419874488075368334682106487076386598451897671592653691299182607221446172053598399826365095505785411176849061207505783696270836955355817055968941231840016063006898731450919042802712054277061518396835089940536012892660344528804542485691980416132877412297288808489411714872861477268360896525603620202470326371187924916563184786899651345521329033808836431391785619821258744171952223423630229165685111885180446634316016668806294946032229089273186825216342048639713763661947283496709615855414339469544453480220096980091173496037235721905303946471198388327018915202804395011324718676601152234851390402760887730794097503161260756417652314653256734804089047914596267792367048942244387816556455096732642346106142511047467658602885526533071337491883070251217929962199463525909916778024139115680184665961369870002890367637099264604587527928985695828964056648116858013340568378465138208576047776932825836615961259641607326839235900904894267904626344461332561381648530591752101722493405716047924672231263077336931829877719574721469480746975589904184364744636257053152392491468918860837624524338011330395853800223073560697325521773581963835415275155599556017727506708989012419909938527981975710518877981610771352218807039907559439496068050216646080718173024626126800479695393216152005494697004544294794557319591596149291298962152219736631002185837809932020813989471462220766820583370460052924813288921795878004807473635239491317861724718398119921887292520996919415793534724771473877551630351997971920683875544327411407759873959880522355151568272773673329192280574426126520081545763639607923688600237513374320335686415909062388049374953593811774701195925933515916487572335202698272292525199980251597512156468823114194567874023952241748788097612821304187392856866450543862866467034465058582271674051758695625553782526132978298332052134835049397782462570303260304961088615859416180547671916408846251965922538884988174970385226953256780715484386733984290180809386118436521528050852223206143506790191195752208558984329787290886703298183428744056040134471632743316003312701150899194365791833987564006243555820643693563358894219915631693294812674658271763562900704476338912572171825261039283341737057890208831958423038143568442975153092774765934788881807007872293596153889257594873828026738161976247644132292880736721304773138668661637435303045064637985989934945565617224118234463977392272532207920424887495133507152921916440230157068611479665511135435098898344904176081881310109488900111463269748355570086740041041799774014476293476151921005427822824392321606780522535680841018094088617558619146156742342027428266726209528694980357187595835227812174290098809830514094448648289856147672447634048796036038759112366521322210489287715835809339119131065191005408858908365421760992695727935209813224820924992502291406465045683925679799986751401973469385786271499238197744453423128324645826913008984954941237298887373012822896831710990942236061997915345840798722951622943219963284378948006896017633923421758730031774122611086696939729717002103284084006497688323084416089389198820267618395143360920120850016882324641926676703083184532098553519313425595869178278526900452954170981374557565012303144283741729064186062556165443414896775440616824087796144616424018599331510365338581059348755813606527456189829007793228576030176464058699433434403672591213766016306390838988146176132273769620752773543801278619289853100043532738581482991211193597037177510510898846940902817919525829910315985458126715657194843169769689236997566944802228656928852565495506653535761590679393473702139029898571017568218336052056284102565266867701890022966482091986243328228599409055890770444172702227665102340253687000581035064006534811949715602458738355145611884455651898825241556613040589483898721240187120126644179953650638158791051859568106646918945238590487845717053523237588466903988025199552484342581451039721101659577031822850471086235216837580117209262536146542396421675722208645211989260878803667893083023852865059369650408565717342919475800471615184978574656524427550406657755220516465065082346410393675054516769103677242715520482787454124207146775666794072655281531151725267815771546372263603515201607129070342850196633614900428078291555837254097755658868971201091799878146519912129031404473549525981887526188079440631724452174082303523881412655490896866861253366155735407352734342260903313450446869887266668772959192918653839337780175918266994959116965423645670763962561479717249351557389833175457345803619450485928589607186326011597009606534170596122507263381829367984455945000193470091941309129263153233295099839443265287611539990748190179078025934052934194569962720104492456376996279232388365865024500276808321677334869884715560994175819414869369276100378556505967500497759632413034455324650775742216561383104968687360620407902243592577145562659563941287190522323921374342365521089765211225872283974860943308957272401643322559323644015857226656237981797781365780879038704968170755714744161965248042855262385305187078997117014276545080060799519463885674688724365802331581554289026254558130608946246968800549449154600712119811259037815807951728581262384725875335355868972647856916066493031158393184861259722999777553842758717717956959010230695138343884389444171649915244465909560243996632216983536655885655281252938965240586303046795301132696860394580117691364274273115530897555891366303774565977281987678144078879554496147396388094339995685189860609938908316583992602001338720664364240177059909127509861945255889208954363852217875721576093636169426138449624377382401204145569035510845002455374833801374774938176150469386446388631122790524186911705336064138299210165584719830365804545787327622153625781959779525001482946446360677636456139173390359730624274702858723368223107433131727577855373578452945615394407657108606883461450784910562964760091272320839302405570221481739511376940832747712587573393872596776959132235203888768416293026380309340331327214991379694659227224026505504962278130120521865097520116277181685511222424881009842941480500260529909379868362017697685530614024471376452289210689755483315082921478025722220561714508935606075270798584125869422470277424925030646223841845102838209577032948608122238751031351760354432965873925702771489653595334246934354311146913216581480282385358624355440884410622093726225232566678821480955205546599857365860822367478792588487344965473189815700449966734238392552570150329559302305983281740673992821698897218479333527977442878739165103766397372689778895734088718074432098903049114701227998797823062133292311848795615800038023458003334313244922262123393337634793234302153447467586521744850786351918213549587387766740607483476517942943011444680676565086159448232791363625788284251773158910587524376248223901174303941898124488124285011582631756082813632651164347500496648477732484524378984698771725627529067472567406065395492140623598350486506819285622210410081067388109063786943964169450188871049325681590142222894456092401785795399227871119995560002547227893744237626887971547745242463416436197864054495913795513071007718078071384719955046091438524439346640735181042671294472916577386387949414363209253770304594353371547950083914614350459460627075736764452104695130722012422160066464972432786917476105630268365369492488168821294867974711745449759026629835779078023904414236402642425319402648151931248934881749907034787064323624172757727460236722647824995321733062985419265370664385187165233111649478134078586450239427958050108825158775723042945117223071971614595436483503278413731881912720522210086398874289639876725658791172358902732518718107216021686034807408449095486539063693275032888333480140696879566934890348940686853679416292493193442127248654002409249081098382577845992904141641874316069747735812086330616148920920731857756401465354900742254971735329303781548144024562117284026797711339760487393047022508423684507604059302429746086775418051563844004908330072549461633844791650693972872897128479865201217064976907885041614548492590245905905833840247431886508267822928402462683711933086625232055271066453719501758203477217977369033747842386788410997157552085699684611477876299647891025022454188258673877614064103814713476309740731532074197690125704976870994527701137428128626492366798679125867061134677329744327093990058640531276051907002708992502957196331450571751423523979362804959729072031655720047966009482012005757972924516344763203558754184853004840305567639227234181893461912388125140320235172769528375710897364056084255551278583863798352558333019712465690390426253951811168118861615369215188117329195671737807260383441092969866967859178438657220324772316586214575311294784564453808634119462876944201203907092697401427379539165783681046419282275641812204786704585908839768014162406886741374339148575745238179034654630850649652345639610763045215598107915893045496185629269710393639267214084130650967655558638112861086588170061950219494358445708776118216865270389686233387644237064829274254174766936014288368423214749746415599179228523623334159538192749575728244316219441669489012476707656292529659994129079054216750075216801012884444202817666023310555916942789277588530721241713587269971326838597984323027690430199952544770672159993836858961190773937041834899845933520553925042454955211771073954572766839805064811203865267521787343387097376477974127271870937341389178161874339576824276134082368982148890245021846010337511546671354366228967952386449865506496704948633599503868874896926592449247250735214495921852415023177447402815188903334901630526731223225800134337721663118895172592651919349366198759333399518335288083977861747515211034363442321126758408659191808041590292280071849560799598119157639309259712335680273504191039101033773636064633855846773033697222776789385453749893992703981105081518780886052157281032531918495974166398464734292270617340800166085791431862484866126909863299657638813737458215582019183719247806824086613226657747097130376178942555469794978974157240508960017461376112398085832687065926576156183988316167530701839012286535953304713590560032013382839806442667469916890509814153917425308869454324070379649289502050120760939393889959628966391972817050910472889809890738383245832250745342134596872235522130069789589052110851775120511196891962211458964177507622683661502233545810238845964332379603540715346501238165310699396259571313033661448136880077985570459254172676476419838092692712246941503704891597628247825497759896917224231474436520941084678650720652079005297564570094659631965332805316507870408576300185189412148087123863399880467263962066505285763992758207344713118742313105966629485080163908866064326269165084750847624718365416510231178483014473899713922317245437265879532870469917849792635422684348289208348346082562819157487637538085499089704346700000618977056589700056140911213824434053751885832517455657097132594107334555612735875638022648249940095755688688000263073871272184850181980386240389831234258973368109806721646145521150788447218798040510530848972978846618781296124695594781776722336793618592227871971866939013795075468738812526351955719264831293166387273224281579543908653163728687090122453947607584687326175626404929423390315456441710373240476105199287673819307599709459415712478697763024119714305805175407126283503434261108493759498406604390119295342896687167456339148220713094794707261653033562622290845812132655343545928354527556814729950405685482025566393056624009433548781135290457784979984126267371530389453524315210655560221418415604592433499541245519899691660363159280123971225189001620258523847756359636789823797207027965072308931930463551290806896910953846766393560343975495502739589538281541635584512277412871549636840112354674532974207589402936601645584268254505878424922145226810597815563260046149774037263892730000886952688405939030010335772237309561676350604095007812610871485054352928837274435055401549850333927288862111388390633353350653043650999454186922273918789235460319957781099403098749103618954367335746371628288070631768375938711401223173152190012410238144781172949686131768199090987593130729798841763364493714709851000854306232224329000749791739450655214194610580932977065531814199046856601327761242385550299155441284548886800387980711259874592289065333471277049180803104500762763188740634990690818831978140530993564537290681273836024714451991197712358915616832775573768321564247658173991883261568606905514941452508683023940550602254906364094851480613486375494773856946225078148158857985447016847463022936919944923688204007089251826684889308324390353205275573770250913955134290093437541892758779924737465991437946748586402721382051040176829351533367145843212823336891120162916717801546447575067794378072088553082470605027154468276876058608463963952796833229252424047735359086798444847958472975957393068176824081420587407716665541694442798470833652419211973327402388156375639695083859565589334288912088904414482871143273693221352922281261322757756611531585093969514834628498000471823330041339417296020868069749337919984698980440673376272637641653939711490987142643018454281554959892574449575133827756799461166692265256933806040108684348644184219456807797554601864240401464876928962974809400653937548087111211645710042175420435465275053421247050863974577812077128630404298113421341653106812287478902658012209633431835689892383494191231029793603736768272185416879825112683163735710545183667506414400365989812226991147786363879050560193875702731091962420797509064464795169716303585831677826360593763874170387546662137246672816522128945324620382004047795109966842261641309165841116937953299988902354571683494737339060551895144828090249146522859454990242991744582102649640414982416449484363111708553081520890515152133622034255074651279577813519571289271998643445691146011987985565154401297353908878556832458521207620345425786087907488361091702003235946369440351833430787304923006541432626344772489078283732111510780507924170234184133090623434474654822989236196965787077380008322137772117256490798272047726199701708892784566704647310401941816249871998835317729427819649773427144440614867498503522125355427705586649178061944169264934012732597318482244574403983702744193769543725808269366788822350656492312697283540593675565016900246574702721227859134920566169876287688614075692086171255859788619088284138684418544219277552164651423563066578760550427749928753804680160060539610399013713276221993914833179704612059553542016770700741241638837531515351521098720164831035152974434971723941772899770087621745775710532380369450021423591100119289009321835262734704008023262293540383662845230073299092999885177467549426109657673126241375957842173692453014742067177891955506236623184965025288354327306219195095546299500451347625501705681230758010415033983736460212738615134717128741824139328840659345037878597085205931792687249111731051179598343088790223298266515704417305496803193683019823100823926931269041308226016143832108195178285885213867066896224207301969480897962660240204534339490393431767876706566691102484669438123621901481530871987522097963622454182559674025069809911271882346873925385191009184333058441392692423256448829777044037431650717559926834932566122484041698350649954794376968705896131881447074814691750672557955722226561857750840919100273196699270934844560895180188037668225531997781768192516231085355352394285872174910386889005247279043466840801554183751403119814742155061992901008231000701628439571160094696262721699675174285860882411261487905983776655199424267370700102256911786092964027229868264022477344353539591750310688021802457703113694579718521198491385504406872962697665075988625849259789024991155491869574739230932813593374958466159886657956649087161959722286465607013976925318643943585267839501856335980073790574838213327982304937611876498745004621776362793514821313213222169717079445490129003515968406656104929892106780338884372589060902673028463297162496315456483936563862958476228459122686199151697149514332463419575301869333329984644735520670036579865472932269749845805351716495807048369360683022609891977365830136413246320273949683360299445430007688264761958673930249878255546477371193088774450046570624716326059555148697350103085821633615055611196135276330089811823699831538418515235569231338176064965796182363540435562232319649813814959748700119050860647031877626372287710914165571861735170830828409244285634305231364783009738100482020521696446013077004492941571622833006558881710104928183929861633880618925948539364968910721507881030016447328970888370871685554199787714682391417387818786130275056718634586224034739263818732748361774348566542464954211421994360108108093255943853144990622381972336837125083238040856076089298712041564585931727498540678101750399671778779743200555350629368814384816879398822873926569471660420742596178375540074572326222479043126951127427326165869452978583387217905838367264123985652112813135212856092669154686418077283914612552403672916910779390205761278351246231828449611112026312922744118087335481561962377487970210889565316691914848233733799969760670241933831372122161166469439184363192060125009318027708301232081242612589792336247716451200053746132811369320648714052931587964021338453785033874837723999145907309369904949022432296584621717086807048266569381119796391851437243782882326910961146168936693616811922888218838960244539388485578752807468559010341181543060719469941970758184113987709277650200854351253720318365104156868941161540430065785325508342843884504232860060063907529634123059717849085154462583124592760420195525291699510917151547904020731017078926072097727466842935566224795484778847159109117895998093533911344023158562750124157154267375418690639893311830679364599704362261430885934460559668798685519133091709281388353374415856703144598333874179576108897101293720167752296060171549527975797820527517342439139752995078113720002208606090186343908840641365872118469805131330125881730500659558074325097081692256489715847068945424591983913958827510756929190624753348667093192270170408046486098765854699609034187470638816947899408098714310423469490566630837141975897739087681682948574397892978456545944362770259305707012015834560116111519359988662182344576635368309334852448657690505965659065108750975784919585962736751125744639214897431722921405275253545319227295429394371121073460820908623613534747976456014144602463108330827079114169478409581200830975222895659597797392168918101606523505374410887034029875799685136852546431125982400887204113479269167213696331092940187244535096485786093167190000895449909217761617743099906543792201366111016573488566657292057331618772831660924733374460526400513493365956971369092942031161272194937737311380620187879328429264051353800973108676385812229911630265088049638801704535645436807679164536491639064228510451463269340493133338955006492215125816114913347171173756135485988407197013029370462863458077885794531725826668669581344173361817109221179725354043707687029569122305016647203153416346148291843545472807014621195395743316719683115692019502595150781710529288754638586542961004317327404410008384517051088888398448371262185613909748115088364520851317511491967388219051467073158103344389013956099015833304597055086274650666338095261126496846606638150560617159889426709022470886419048605822267618538999658357630761775151118582222264903398931125684417099775292803909419419975165188857368767862230570342191838578271647963064591608834065728656488141422636943657182014770812270850846996645715389208921489043773414963208955288753041479922056984316403984492261752429711277437842374929962492088441795364719256674536949742303101111470705506841394506441784219337773936889969490059520340698228027597663340101858652845744531446581994334669563192502761334913768022964688081729562344865216337702992166652901857126187098293809043824552634623529824369199449280024995406085338678078221790348745241090477036070918542912716596703259080590578871799544332823163504028458673072390975287192800893855287964345429822996222790321586344493627353717255559791621801436298113241261041458479581314925816946874863039477989225161872594882150037424868190465431183739870659546264724693942836062593604958649151859238112996700829222206473892691655066624971804785190996099917229148626362488925195492106019749397736793505068854091447326397819032639907953144013436500677688973612668073306471976941162660536921526411802152186695161567517238273039448424083926957327741022510376204279437378213080436319993354392244845962429660178612992648674718822832910550597190902914140194407117422900655535652881977616220275148087207895178119529144229922402001879184223972767473340635611489628714582162262027721778225614285454706979835484059872592493527358004532420485840414461932090795641142869153617984688323933092564456608176636054603298955082611905257180202216416373808751690483456917595558188448508248403254226866845144575746120226693979709547767128086599120617911306983307501674553301623027188888978880414018134679903870726058499915493562926553893308683518285606554799675715495084642483178470415760419144892252848901365403833723747779979872737012183163496489678291241289098538100200422037101800067737774504159013335624370015659952861632169629720897626319379361376959281239786149403391804880201005755921564578543126384039922060728915992321955448438919482968944688129562801211555831344764608791147627122178603192935569135031400855819758263590953189010696992017157330691631641209856286330234634457733849044659648003896742510432017148322601126095144202744830662543213109330582965534515499796703552592384494791260528043678975604168597093925982682060812544774825843903417217643056373141316915677131408732553110319971864730928600231842678874045203212777311057100905715829243174415114362694443771403513065675065443203179527500725955540350378702966796050794971430643240610388714773522944972106263547897224947944924556806061906649958401388621391182518972205103160600694330148393454827556877847688579563906504928045045650037384929571331106801958047540163881370181410560125928265196983829839821690909110115770944428241275885643699382508636454445957001203340626758754647842581118059294859813372795872589387669716411400189365472528562417015033857816828564795286481296916783223350424586359929966575439439231364162347110938777487973160268828331955681777919805785915524407944833945001602016860645616599545161443109324975649564884626584050963741775543887169744934720894577507724536191087692466115575519713647346049010158230211202562278975969045759730582732197906419079543378288108068072800292056958927266697796856641299736634034578783618858659956926988772186441030589836697561976702501576224974839075302267837354041762326775693735410414183623765253973055612654482768786839276547910858770037023039278303707475354629128860154219861007155979612597735434005926746636533363474568100817090497455444031028246342332990362727796691621799454806333994013126510947652305753040737493916193794284751372629231440094275369291401987568509986015590166449709962797602196187320499502070161351447937434857641235205605730028986819927288554683873611687931118962965005447460374501497990727755863496719178857787948982532638859873034806238964471632443571066435668619516529738240924749287752308636762312262253696414283147003888522708873656929828360573982393653144751093144522577385798625252147044147117612247637840734653356778860176553066133048460770265740074898337819112003848892178946023664152948017857965029031424234832800647333739155791919304723201739846028689359535041134366383940888660789650785216354707284078539393671713320350129176692584237147178206025725053626165555687159821119144086236632689588120868713941277679487985227431243768348685127880292300263836473219209886181875632002190085117746019574293610406367792947438634145427038553664937011139175739681838191702956964569430512088572459425282719936777413338502127280705707709795595564503126740369741009957771837370303454050008764390089522182116747498826433819115832223683421799522690787354734465272754583163020974661376341375181392105315145172701901040756744818022970892913106438018473901881386240818895390753494451863746711346393404297564344062940467269544131778675000135638109997878873820159524705222918428605311440327336903790598409316458012239264316813596817942698490269547570013897468420825291215357816475202934064480261082120930534043678354378055509934946603005373436022186941345826126082625650487692237226944431143700090496329632790380693956189696144429405104518354644816013954067749743456265190952699023897184743737134736226053263066208504476452010948213456235665743053463429972196385567270794689471512256384822241277379859002629378194980692096542075678866622349540426256027708288730770582952201306234416533645512738771456913837509496085316838390381120284131100106986924831792777519139993459486622976973049888806349545387524495007189155399396208210725037800314059004773416861598478447820183108126081787635941343026655362061898914331974492325765669921940894568824303451467459372848754031749041822738586452408698031006289021572384873535008161194588650291266894798419068510827797086150637505889530139430726825395624451187731447147733081005006480515853383514163303944815344156492066769759028593419108934118082629712325438781870212284829635551253504581232147340054937835684162930819781739457410458005765059593663623600350655547116702588831211436047096877433433329978978840646718967120241315488569841563854101549234724070603607738603101827016379963109884976934668905376403632258791093032289800715040990703826552724129830496105071084127767395643047848260206178733665021526633116016845647546945601921518688702035970839126562293706480739766285229158277567720507307105130669727327113946584122139313247176916654606706269858808201722121754840750414019557016733054155849571937382848510567689446310269412207338197555931228405844947784443205428901450829586426516005150172782196243945688585410399204638522854350325230809667926580910354262695436908652050936315663775765106862943601178993970182635562661927991474550668696047684290239670951697549314407271613079522308422027985364636592773895494506624244590156681278410304317393609684963910797910027568992822151376490681892191329286478584646984002585719807875164647345671573981305352804472698371980704077847155996821467147037902071300926944546692587340922525721268145692992139943973763017114457070499670011308009402806458920753700844704837257773614515207674996903317464515324953543802195458929140687985615852777663977361273457327335289737629338346570056165454465378800532366207284251429569606099602721629324945770576483127002359809468235630621934155260594535902923115847666526819160737295566927086706763589942867049394576826947391941221285619878194794275737765882144744530478024053234264465232103721220655001697418577628762520926375553147547735623286051644744339912382180988468426393811616625226391623030872887848020575330345046233552261392283383070149010681197551288410261730340942679807910020417571963578861584069686208515318325672962886386848686058649497415270809800281246018835740530956740826323919016876898637827704530492641406880221261371875982892628580666418754736242782002975782731493739036485483237883308105467500646021728776516136850760218993577294956142554028978483824118727524398317662606211319361287478705095195548737744951428891281049183185543108456640027770005123158034254654461799984845064642359299931820052765882124447101875349183330121404175131484131778018046153288500972904202922040265802160651043322668500140623327797708882381823626149371218775672507213581110837118982214048922204469395065287028847082368242291905370422260569370519810540411806251274724290060825997074827667022648022478250173402163394974336518070138706177226873779935180027960750473786139114601120688764632148122838402670396008122437581440521792005243524865758476670150081904886540894797549582129318878520207277046049463794036054616954463112111306099677868658211677732213871328751164278634632208579307127824614357058727966592784698318761606496669951397687890769170808070856338512682342130126213140521350757009070746987569192234120668660608267020906050718177325987816087027020271276022387986389997905302662870992538582061075684679012157614634664004125184735926235072013790431625206496935907206340406427355461960076601226683444275844200578489469709756996985574007760937212857215915825340339936021640530466378796448076973406538201231049935953023790967564849392919977639036399171295429604407366899543144480451812239451286716643572604614097815457802114155605580575901471940844053391031805065373828817484085854447896131411132865237396573118010348710610279592216386195807506252601740847209367118915989584319093849033072115603969063089067047750428163427976802234885652330775957735548233989478153721901589614673268620418832427843388697736202960478327290769760776276640407059086589286998869916925369102813633146005499898233200965479642890903394101142940842592628153900222633451229091532746325068443203017705962159865368398798023705723069349777707261642918370108057052859277654716962616708027053574609558445203633800757117608336682258948447243627809106453011756805922736467455427766789233695220485210149581572228642122563048375230202889162578849564718144408681844998890328676212499528314794180246722847505969390900369815650090334865846354182146295156183715935789178419824444519085054117529704208491829610066760779719682371191216044508280397454747765796970533380054828520708300450074864408858677934620437076161066688968498994790231262833080077049715408858977882827978023855950664192187469300667037439226762082646546103866062729972131555514602412476683458056789097687707620940404780342313100644650900837823838721288980433173730225662034392547009578837065213789396195243356723109485993337447504115029597010385314215185294140469914896804025260923881703226191004742848277317090051022726078607382548988269649688081472933517344808729620802816107916856065608484103095507862145084787116134776984320649261981769408067004365813991080169732969913445450712298092541783625604483878105580387066186802179128351026457536005967663948820644742860681698586436033416723208085883824526661255037156980613754256833461051400465298093246941213398343651410516062410413460139538346480547591495739136010075856847161120725167380280776017423081686076912346961340742469777395132788293184187828258689666410128971915885738142161758632222237451312063206953021881386783279050984471098129983377569650759558136570787354063933539438174526875191793378631887003237666042504157380251958220617059328095098660552453984473945461385555766824744986085549527422158159873416095090666013712638488683591705730215148662509612181830130544831181140491020637066388386963659949109834164195366789694014874768571492715527938162700403531893041789114474552762200045113502619430004511275038071214932464175503535325370657103871934164923524018066446566710597219014156494477746386713278584188615426344507088522541924246610221489389782549914658904071027358460601460961081152078312181324852762127270532260647264711269237667961186184476948332587868133628525279218080269965381212061307545620165871698859366840756601038465142074503428973917215740267177475873832842455491471303051045861252943065586975085618344571085060531643186952873782232775034657699588240197559155195688414679286707131539516611151720748847703242936572033249042536220865204547267842852878665382906078217967102596769348282678874406508469420965163861737446976922145845048169656214728986111043246091866375341830961368749770291020025969476438337195910598899624360612523133960268205248799403758311280130143573058905975673650871932842910882803032063052891960358111754412518635921876512376941199507762721864185775730562628751351680082609177286666819849478972274022669930026706415487913233687187576752195213612575336326992658799247624053334953158398313268064409740241151290746733648119546938249831533737689430775466237725454772572815574198782091778470320556372193703496818729661854331900956710879484291268331436113525630801925836409231002485075355578988932932646019674447168040257438999691445107380297366297981692193547941296063221633281831763630381513621694197533415140765673334442889069187256359071066884884124982291514047869495725886995569893272591121741354266831275303710402853210207074564486192564454485382319732695865566769537232798479321212596873871220918899685347284104516152457157158439616968360499339114620850571140568558005026913118451794929247446422099408374521308858961565769812094272025060600247344740004322099188284989554551375562180821008494952753516916656576083168114635815130422716357965457031035130727950653348293083522751227484496339210372918251975513812756405887056042513499100060965121264920605988020350577990695210312002308372314341916565838527360573848668595204238697919338416516540858129682955362552947707356932015325885560448731652301170713377201869156960150786476660218682550461973798774938290696193087858636921349720946196788385131777691419105514355282824493448808537055870760984769458512126045651955135233579498062484236350635939792081646398955553859641391574032422843387145960359645883885885962300687775617393145884774196955334444284145964620438986402319509416164439432531686498405103328674690664385793438876279891880733099609364597540570309224093129480131178468945568980042854779230801194525593301242071686210975138432185571454464959554326982374856850945579870192728623779827723032737331228127235378210256837718164998509982886612586848289819425571086455929448111536064176177544559337988582802940324137091598022796175861430047058922340210068965598207998351447042680701308848491989912634943645592688605958622430535370813432877133728279647089186477478124550004123731906292218811758492864925566777896487101231459223987481322729298285022121517556938096293709673056505674372957968013863525181497878182229983593922800084661208647330264459536702373662201669131038540589932732212010517979443969483639121412868451971944437917707400949075125478482415251740604651229241977920031057287670145059208844449771839097898412112400460030723150009733903265423019943958922276435691973813746682993339501467434477265879678920201031921842744083195233910401384002746631576157654900195141775334351335917880418612391818618702070805088081052582999988564817271115115895536032737318995079775093339394007490895763469011959413109208167777559372983312050952732052132634313379454348027898992512229405874680803997438517974786842142343249218522034054355786567654110980553855603948179263700782652355168361573032267376559655721185728081245373975276104993838824041252883440271240268876463625717779283914690739617554905611293702139753277114238604773053481834808871277126740702696146975036709579359534527565811506625544907560429276316850260365528167853022539445331321116847648875910795617650411044738562218305242070866954765774756717071589677018220434917967858810474712163364034871255931049830244472292587974585511472631811703779342546270397690626188480196754558295297684476755034612530044951734552920042895902879660395265118962262068638211643055574031396386140698073591868511269362031233609045642260035630009642321533618689254080609698658717621265489415727583823007648894672521821658631236731491470137428497159271845212390636275643391590694066099228588007887102508976364546963459880543574976290506812907649494377389153515430584638406539947115685086390138265320417226784767420615022271733056717548493307273909628301544598353602577075230721883498590909294797687374540319942152318713185723638963844202942638838446296655805423859572286443581886833430032502487415354973779127695249053859059256802017026275599084556830123128633313121966967408946916684695562442499489811606573671381110352178435497180671980106069386255665642295541995692355136978415123400002238959123499971568655280131196259879625867760916795193434782480956945782644131711151626663717414169993058685146755247189826259382362007711202371417650087173230984770117680753365327630049690014356213367385867120529350603019158261005579608024531095245155636255584421676540467956551975947461368509272235166879146625639308306195693450160680919079984815445553800334571043430464920764285776302518065711886770026865417171094089329859584298897229846547585146727704778626827092489813101405179581916017191766600020229494225104179957214689539458828639794108682599956143756737502023581698126987725086495357907541733669460163536964852564392372338662534940483329572743722493255238991466060810581310265939340713069094654081043043288809367869084554447597372693087795520482355728941840198149380531919424064861466909484775575335937427270268746311846986005585997091317173255557202189292782794466511189587202574356466678927906431257431771170265052765386536575090011296767285581004775774840941836049466649380843790659548899301086022232266543931612098558232496276279720897516721943149888601580897121687163869268998465771412614887236823281440260177141979141120014716310822460924162260082709498853097049673221381222636380592970886065201029625552737924428904167581319140112654963237663436687650004685200929981585544893352643103239543601630391464267769820533060549722736507567079802264884911323068342056201207899791763911645217078177856083121541585626204194914559125364653978260247042795218700238720807320896114436907738723176530459457546721978416261273644967121832720152503850548711263269209440854138565631279784514632291561071354322450676634962811864614357795243980444620852081199662329842200714909410469100011811569627137741030968843822536272682767985050331332900914068754829612705201792790264167431803261959383974395905100367596632014394027887317488991491074672433076285692507272857775994113477727774113319660412052967457093830574509337976094362317047606267067475313994189468725173284950191165534813136395277433580362277865769526676799197676550424947288991297166626098195387900638245044370919378681698060887526250146606791530309621143304130039127561300069908967765012874569624471195412087613722217430011501875524496449144051981853817146608631722551884076327272738973742067979073723152511061239570498294654557424267795634089971468523295559672123721810970037024532312351390785091994642904480084717863345217087082970318208508287568291912560188176715216258136841390885818788255032046448083714862697885502923578624217861655342892956602270925317842338516420443274079667965303121148159352258243114835828848225993765487873463396866932257738945067539221746431597610418990404697921296061944364295242795498822223876887449016561059337360297099993803702414624447452066370288007186500084118935942790099791220953613169253559955609346385450089790251851335263305252937574539127442158513016191451353968996071179893481203569169315435903448899576656734572873667807526579435482381174512633910240429016655908610534998101173230990363544593125785940905464954515791676673425498936805650555698378813989841340676019533361254586852277197370105199515073948826483237423401555889752804417481969457255434038605387750841442786405763470052216772113319940527270324060234201521974015996368280416209113369463918938126694711665151021839348400029022584793303920020887650682210097365948633702372040212989907197087074470968693822722134002218720820388335147359999802307824345718026308473178479938416227134926412680887015500037449858455826180027308429369750766795408655473750809569637145811861501806842772106855246925698772766375243695536587212794808780387411933960486772598878081578972979974844928859926136163654643663466663371539205864103022692229675456922992001510809928527204368837439072017088483602214607691774820687919188932866408288359440944049257562795208808282382871783439204995392935988776882725991174979152934968247339066635356197201841671375530978627467338293514628950171488957213605398867161071883911816802363895299679174427200676612701605108483905525772145844390212057259179688559455664322590914682648351094711926166723954122475860290183369994750395175137580552059252167176858802143356764430356837224003702196855055783210849850214623068144861326696321136296516228688167516287108373133870590478744296685377757359618655364640433168177194516317727580642310791627060285156865660791726165789155985167464965048527589827876179029905080630570784841688375992194991947627396135929026586846654349376387965311635179861917762796178034284199738342969883202177399848047051148714119948468346319795478564712567030577423899009887684673354239221658686279014840544512568669102999786512099117301601379398683838801587272020532913529953578355840425500508257500045593447164693756320105429971583478706109274222600844449118387176043864130117199279001774256476917953068881073776381326161137964128468646034812421319203839010870294160276299172645531021592229466063753174187246351799658341892341820409538241431464205675175093118598657066733263155311208112954900967967104964213013066675725597999342336561005045027539242618453376023217703596788781407345591445312604972417604438326678339847781611099169361680071711484883106427689958219723425888422842974265433731032336068701706714267031345452774537047565385963171259783001990837624292861758964814614817505855127133077897240881424385013823210545634932269902394265111344274496045340859655238014914736950287209203240448241902444437044806584523083613622912284039776252316792381001175021067967549138283011146095132898373245053533152885531920196674241646684939277075638422947477506921181338657377139800636783241957590066098590475426586591020377103841460785240858969924757071960493230957256375684311164581857622694680838788295913869217446411374481340086300746555438771172444328925052180752174427334686477259696254836708677292910911839348847994625199486871518307896069588510524619867704261100070907848725648317998870938386902531427103300464888484623195396831069247640871315913223479992703550776721428599762999608987522136634002534460140844917188940287629795406400456694152712962272846152297792790397352500404626419421298951170370114948153234782224596827219506364998468262517040244564751476895517622228454363822691001494029434686175816787406584973768892926707621959629594177409200469696463898689112144425320109927399019603702858165701669541351180568979138937731465404905454647391897697958870919978086530135831994706824655448105974701858876897191169630375480969837551112617858527289629790677947218311840322161588489948976162660796043742339486742700286998392124554366186359629742765677809127592301563873789960677935192980897972154079601393707934943756432469001686543461012457638824327619735966211891834765320505090961589829871671515622793770962934277415400278982242114928474392596781021279854084594839369919296028181809875641175168449663026351063589637850839033476616594595953269703603074097522316664084517894425206611146254664499237646712955776010229586790939075930244612356754456834442339568806159117968897524493672021365109010031244058979158319645654683975545710694396366768015339593334068749415468225419790926875443910425985118711216127990512394796252179951997613132577206339360333355974437315565477933853856211795576044947221267143865884184494097896963123675247669309569316697142728677390810181249284821611566634891656150985279828829010621561994913139445981093939654861160066221002275999526194687889508405770230203843417166948814970098835229070796518612109666658725296022955015814165195393933456174992430040485170718205897587193683767861062705315324724662147716499868642069851131905755574503715860358049964638722683644418181603267295666885978988520748003081873023559338272437272074203291010831344811448685586202473328421155365995595531710299708370850243532439290065602530007006954061319672208132700804604541560364247291934244951255330806412037356288741368674444024536350138152798149048508458173927006866427861619670211169522985950540679816283262476992382591076398583594583867645044383501027245706994251374731527704813193537530248982228416635795160771491220417031888316162617753022550176246303245171893420106968286651341849203537221579918335691921786598688362062369236168519075292153341459012716744940376348483846010451049619634092754750111073827975146096022951468379394464701889587227183693290373646901585307387420483354348910199220237685930504175037635876156970393129161493536600367803091036635511208601237010874732355026112909251487048251988950012346912421110966718499181053309082504361752798067389742882116387081181055425047014540737288059713488952094063156374211042161428398538830004028918476929233499296628063099842691411324730931888854838254744034838104062101954764213178436350614615549834701945729704263718677644272091106607251862039020230033666251240883532986455858673291937535847310788137253384670242810181844925828200534319786026673525991418211234092896939398365686133916147928789572264264761037182176236883560485219815249029723358010512677817772591188948730941486004368997430279136424967594109079237867291845177608685419581985095259013380355266082731239763539489985359386247941386710356359310946368621708058684338596987729228378496329123340911914147057190859413263832387797010994503514234736176632616001860665878932139079058079293225147271785357356569393000162705851406557856329618048788560522589396339727411047183784761005863907736468259847466378515673592769201403801747498819011277949921572738019445453078574770071596762398349545168859583307334181452624054832313488496889821250518070804733345851361261696620400068586105356464263286735234572214699462121491074873204996198352471364995313241285587787501387774292387958944606065902724265772395742283079191848402391216751601541555367855374885800084796809408547972149235243538548663485258168187843789036137384375682267260780061458428563572475511938787796711547956080669029659980846559195803341518043896070178296803163464858511291660522309448762582259354893802185449211642176054876911480733362362282902950204554697902286090792312516017183109333832729404202079623407824136366438072168799379943836442248527628028894253690898418965759883797788587690252054287853429839236357850052186705058423773381663660077209702983723687893928628704954947107877255315494344013363397771215470340212310588674294887294906267778603567197074560155497092575080104285148979736890160813036430555680846968539275336663581949665288876122570554036151346436273111236063968512669499694589758144257842917621593006338089022625084163935513493735061448601123737714744453259467241405798919476126659076433458380444327151360455706524282369451670958522474734252540090482073233665324267199196049838330288290659387345638047411723358674751740007592264830831696109593733397586416682680987981558155347028357576160725758109815545612580530804290314113302898556563612397267381085352419641561402875366071500218003083995960800506788597502014823385836515929318992487489328677981801307449973429842244113730867438174044207399176620956847541886841078550577344560420934208292391667767576684157206905859413414818797086426198654159173932031056500514789854848927533075591625077979460213023449755033644659034218057793694515956635636930076315213957144036169144037778730620349815640715281310610623616197869359617178603468123271612427772559726822780346428728827227422328795808201694793015725817810056994712177719440680476646591200908845822656608301199424400346605471375169986874824956463435571595970988975984538707215198674070126358472501318208960914162809351180007014168346702278534405721074702613077319705720736320342783738101615661559948114380898632090227763970817484089320958842019071379019031461537084155287296365474181656254503935133865791389640862099024469816246369326248816516237139214978610461447122867041745103523799074431943067959454020603430292068002906773845328717174845129384637324330701894682535696657658500314827513404082301851471836943090432032528088034384074919204194542548044416722650410591868281657269868042106574326660300052853579706420751362669177453888857123774863863684579331063519615003562016674169256373838327885767723654927780144822582326121675877533861263411138024832970807460272751492336853405205299669209913656922181100303258592598813484080032320231053953386443211054833701959138595999648787402766576118127091158519718182294575980786972209166108859537215768217309740516604839186884997688415861957105611021181243450636037886550785830261401706900147899682558087965149626236111789761728730721213582368290084979796740638499904254214100231709436596138333384756947743339277857114080585690143717095854012076433413182522609835719673753877496398881274126260679912435546575204221242170961876852519005798611509528010464100510839330965177212449383564018042164871344498849044306854981172655264851367903392711152170556851117577552827067812601653426640447198661044988995946568927870315680153784497466416262588350051684764134701499725323456536705876623049407849243193994436306103433335950608538827620337431639579226695840399170266713243675830623686837460616760383592877709902410067515796841740448937971962848048683624441783943086959319686672699182869821464291493711444055452569377231235275604102006288963212109559435463456882841910992181755534610169879542363367233453818176173859411296933467338423141063095437049858216624963881423523969188664198279211351032134106154857742072230144572654590287462891345410575765590252909500153141858709543674247070697042699009492219635114545707564548002093361149140048870518318223866125084243265811283114268352698876149660811881633642503423525491048735902459751009062628346088072968795330210373794190492069639320944723484134998101975640591053314120689230138185060023862961699527369172037947731088210525736551006169226906458686405895568455357710087840637561318907428245876427206166282802146998470727570994823030694858115849837371015229795949170583393217739065288585729107489879996128305278751786317558589424780577265603253229545489937569887257594842567646700193832392155037641166532902560881082681279372090786131101069953654476280860131232522000788506946648254461356064041613216357891155996903011320055324187667713044415412577013319311851077333551110156102914124316879644481199401657309625216508772443069913031363941933617532933589385064935606778419429050437674292205432878725452745017831995668135753274982349248940915225548762636261766723095964140051701727603073911708889375239224543446130204058160858187397912155902971478602241307733383102458579114264169567820997221266453464008216898758880723036276982160672106182302231354047558052655806942805808098374113332061740659194414893414436853391567563361713796012047126832355697688555271098262623781392543918603319064685156760960410301275152690494705459914759542799521839658941806161022485162585701036263766302862422341490328999445683118837076335495395337118952826570997174363509074212148832146353368326080815292102587374038815757615813424636063337431921285445178499408899775194875233476749289716012480529188422958693809173349293447990402860686108124340389852499636462911301909019226111962103709094400608688698093863483212980713173740091705427181723996738949531467574493113706838797937086175353742399123816720128124170895426974747479222071082186736469571430978866028532542550180612545849366615184173910179828848180726642301700888721914783602560617558490075816961723709248979930408587852240583063462452797373375055329088809026122119326120842624219551450781370120385096212781491448655964568076362174627380387818563917990058787748088323141775996019161590818832258519591028100237800306311942399206742698098799697770618015059252591656128814456965309728509650551283840161983084927935599663237569348171742450086353114086368282627339674955411944599766987375143257624589517009513960794565581674764079966018488010560757555575485661348119114288200459721121483022815035587192639799343301964359639132846717254694435576538053830989033627242609799559416192205188605064892475684315414441241149350265657790371533551513269584703767593842233955126106183303074856589648914746217384703012889535046296471460551598507916753345743618174935629878956423780573553478254995034257390531407294624544083278767208936916985357946134719759291848194622632923252041687035379841953005715608452000881217542648689103777131944944100382218442633287798767487433854985781361489478733904950959158746676876833873465227431816041673013121182567158258138688404001704397365577104356380689413303024220435527616678254393970010061721502503899632629730677856371255499196791160995315470863209932599171360577596527177515721500399787655523616603360511669273350650670832544996290325928821209960009138759749458521934954491172033634214531189331723809793108946852708755403149980585616342679969055882042902700407139538320895285545043535986692769749588281669516559712209295200329093583699684516347311181256032704732881526065375766889103321451648275453349734060891964485114666736451846677906956607372244464029419755737870722891529271928755541317234269101382910647045619926501410148105840706451595938180644590775234248493508635615749421141434605436382015565802174735897861571777382359678592751509452712691202737961807370277271725605838204792183024294981463290136113683086350896888482115440830792219307683346396842098512448412283959602036177223139928579781368967850889948638769949502710065290969307934208239617759582583414193797249256690106038217004862645222902437646810787065119251202321664312349325327329976667684347228676138298364388465603656452823023464147228941389525527806812170846426522320054556961889321987517127758604655395627323915823514363762993105249718059576656142797327792261130222574545406892116977879312530969343819177434573681482186155502775244894685532770985390859708179103191428729699908194044675887210898014287870323451405678284138878863772030440889119704894512926322616434092387939977915939653728424909142877747463274789627261869406015294593419441610712020487910439067306986549109321614203630226312505523171221818404787622159008729272673988632777179986460226253536614602095692719223828059990989701580019162449375302355937597252992368514316563891132880829651318791854405775970612193307178301893415506195450861912441358280887889773825784473189391883317259339035258432864864661697667302788420445532098079873371993118616604717930299509936446751819349042122177733045298896113477159080521904209512746555294076672502020939067153089592825031953191281137622949349330095053146252250039508649023130101176387033460773500938009902757173553872033404971418377015856836001863524951526574333100614958161922594285381952564640561201195420607264187847106800401131746338927799689514267164227151150126269785901092605451456917193665106545773141066815598528526612504871253433699495515972326158282317850721811531165884757136837231776702427801057723839150096095551898960469472865335396254407814379297308982737270369765897318612600450470246765466419495169032938999230160054028291972371720037427749658286888985243479850965130776732479203893965025568308685851786120494512949070722866381740617383147904779200279192969767478020509873421424619821885096182382743738933510932041278152159895784832651377892094760442970495286209236210472993372729099277904796134615140170746063311054534117971603670960744507900490296320421210990411642210351597371226538587165433008008016915310277081362517671894188921666913402181931936043274223411062741174791198118200679081241922362948100005594902907463373908524000366948599533425307934966751943723342576697053180385952447145013396046336274677818957384501956442265595284882927887163989723065793569606923481950763067464721815987952016822285314828506344941938404538780702552105672768837856037876236514637141710784596359077552781223569692631613112157091525938321743706647014965082613511191785034355395519657341613530460390631498426259095606992546806319696601725610864514889758590968321537558692735093383010247292760610301696849103079567968811632341502184239220615301829427821792181844029426735947617872409209490676709742807438998860792192591890093117340055566186285886030024658500770076950385670486915489558621498882037280178749539146651344377505382220427405660305470382695206594574263164139257241978894850609286572934696633244614146874964948609357687185836851672227232052755943607444134212319389005367034635607100571775388098210219477788578689117541970986089166041592976782390069913131391312500178845351903129740811667535370355139677641242113571315169973064188767440107346499232749717617349555825634427961600813936828776354857957465890608442349377548975737591791678103708174702076873682189785414104846304130097074967507077971270588192914909654027745025706849212218071930553506179620723681875747298527480891327370772414517793005279148764766664752111753701370930706892234124214004601257034790001467396308696810810174325074313954779387186476105917401903458743499088919441836674977664930769027433884725742994286388160980959079348332215685947823221511412120567723260256567740284390623100126065598007337680388482017564288033166637375519244458251876285479603476550325549414479939632435412939512771003338205563682731443478519554806609420158409590908930245737649625645175321250851385749578604953600070416850157895795757495713927441892234307638930878006430560542426816913912485348262736191789506802646960249710824590549548713912865210848843952701325981625560161244632093588001949408437150813501595896456847663251174861779819450490150956542089808201276976710670104014849127902042715725882252987220604452373681775927842901065307113308775331834163039192169782964126195985647973388224914600753110134744333557789852601366920453841000006784728309045765123564529488580177624532981631936822067135009243788468755974080325003368687487584193290935801773491143478650663839640277443960567194283309174720271120946845859821174077913171215671015713061660581149503842707385451823885080582672903576939210068568971814626528899155355687512007862040691286297209403762546146948822657913006452565280207111465053496548099599450786090314534382853270337289399892745488054902442337034429320339874919713098945305212260372663323645265947176322608056303957669432346301477164074048672511475417724457543210154799129084501454757539738117755520069800349284224966344653091180243743805783992463040033330881771047432165437613818904878549923114227264140905967346574819845366795369957515007634762966136322364428845071567709426211816229878657472266632026259690832496495439453240490605006165140333418104885316723243676228976356345630211159392230183953471535673955802587904916433870634968302032308982207302791604206445815152705139822696223595785565410076860230622732633195083044457614505998127867142233662192434667428681577691179011524838784467462096297207217534000102959827218419145075454383846926524521870342486744138215119470551677296156445256555543988561459673001525036464176091357299830364171190661097939780607796531544577365352254813895225495038081773959259625039902782257043628195931226209308323935478526546118749149411822806725966511044747779714945002682447638456025623089411337985943297649681257344998873131382927859851606762862058134653895313818055992533448438460485271909868111987192584852159490070627819838367747778581276394092092617599880526987370213646332819143466744866863884172014396738090573168997409581159482379501179929905562714012787227214819340125189317372424675730922631417010365180314023885540144343471522827156073970128144871744548603878869991319652391916896129858678852271550360949473306240181492508659804396768410370758342620394135774412138106637039296510195273740072257977187555210079830219574041079861024240786308135567580464051862848955014307057666950277276385844100521747804134052562729346153905220464238489985993739943911120697240283029061329682464972812902624382441217087616745581644462045277196282622792739323202990040853660742850587072119528924650750279929520276095833678457461980151760676901792904318252443331529150503006009838068666888936311445677192201727142917181880262989168938631721376835105929202536714670678270382103829927428230372139879058421540828363566277477407912481935205992412829866044917152081050469304923433372003169909146675999651172348846783823532527857958520292568296769690933939789344281449158414689449402946072240193762410872049002452684477833619998205768319733486161035214041795882651820938611949210457048700059589459763206975373829136345138721037067204435110655843927130132657330096905828568082101609821299502471081560743015929695865960970968330553044370978300830698151543764384565104818727856386553385554121067384576246102049582837787183207583944619350297312276852134579765435565726098896207683969656962257939304894959993082512498050621293279377551540072033058107225506350557354745772405850410845698192965122058450280217929246451138511668219631900630082800966637112387555966438390171862829568516294607282269620252098311046254121331475907922713313855148897578657349437834626426753992437261401605631265155256205111139537155026951467451065036265443857313204686452802066168882125851742462006511388447726578665027350013252793519820761069486095909368240725890170078885433087554710086899207312197051259027488867247094438482580636258611321641064316116997246389060841223504336149865049066395114625164961314867910137239330665152684843725689469482446109743574559777925619888283683289060640344488324861790675971199549243750446669823034127309273222104710430462988900085143810124967869343693033770160697106612352120722530048955050295121129065995625499980661179589526604239017619434168120415073825227488156517905787016756457331380318170721998810484010971856293814427170852085433015305171025857633598884688909648323532744190950484386525302165760832657698467763005745095960676233095275545627309928758257187792647719140471035209062735797489730153492233139848818625748338518479159339647172043842248523918854495747009388156213285076679464644510907707579538518876246353807120841953618238575220604970144214305134995044961770180159844585672244994714615129531547784618396131901519579949998995460819471272652862663146842592708473293092051010032576264665113279857788525873844701378146958303282209944542813535202708716495341789478896060320936765093708295383514869934654340654593591086339999739549898929231538047633883014740295115883569992602917770964309253764712575836412444374530851428905842516710132978717171799260125834007707332358171981692172099849244615774052517894016994947061846065678447114247720059424605654193317416371057073231054932855049225898500199353748080799984678356953528844524574384323218026481990225035344514327841958719858638388237691284242456194284324360331011790780814273093218738914707210920574298745287418332769506889384237710819575966875688363490167746815060031982779257586953524621839061112755740494346063945768780968592881327990314064068196919887692699522253296917163720692191217530936852843918032788365681904911476931426445934826057438951707325374782454817102795061937666886143248765174608051592786738731811210276390629270684163275054432590999592870670953669786287528803284629754722306936477790325325151080474553190169411972775355365898645302911557256211628326285597958598794507254438618984603750055384890299323908719146621908875997717903983220972359067816570378694703506735680107254047769291946576893091445679680710529208113890811124900904306287735116687566929080822551233086857556797968864548812316964944918593569583756856537112522091425862850266378650862618164980976682133657888513712921568007541635822159885903232046240503668756483530064884155145789133852306970367233819887013317663971098939869942250838013791769047057075615168668597898964001865608426451201890955881064729459973604948031071726309066029520960828649820215186639677055388416158133065894475182416113581142776814960538489980851051736597354838161213050275207242580751898523904325800764583417781021464019308887053885914459665211151648281920081427820112704765832727072454314896693490019376892558578109372363004318719467458174367879741250813463645699533874862098332697956267675410120075940309810190451161370001873004024291971164162239120678727558343273594481465678135598577399296028995447026104827352647012493419599251071042062478072515360539494757744165882618064963361726586660986962088961130829376938182482410355051237044642364101655915189510325216064929281366853382547525723025030514816299232215743469823350626631684606996540907682646209323812962602499678511810939190257545320615224225434797494458168798796741865078553275346495481943141218485744866820395863961512548732981875445378862493064624280960389356153459397011866495039863734629608186099516670410982288891820920276150512207904908599680909102319582566187104146497243458975976075640972793985971434164035846904991332220948529943176630847745470730064872358073678957434147077740451014034490041747850145606484777108227820224499199085174798531159828425546730533818238494039698353151782684625160838363617550138781000265050360708726857933908225000412464002221115724197164851815894419672109190968690735853076640399982833313058184537745799041458287775600675567040799205392502323147702639762585755799039598053646212204053216364847645337610503200294801928716955486480694498827730012717942213116006075641345764957757166001430445285213045270303082488752686728877185675873686884443134869197132796778480791047712980293311972593499812991645979819354401273804790113780567607153338638449885117445447766021793765736342391362089096869819840672342127979344606748745964690938002757447721188658101005881790394317403942989421139749349327885050782523331250090079080040649575648537556497674484617210259643382066440445458983118787079506672172016727858033419513921660674964518217784323017011701829477419905488343528418041820448458945366672915843014754324873272143762254336751132740184435987793269941763402956294298519623830996589357872816156741417267706820817334167856669044379535431367011106014078580188856979155279840369807666733899525336509127291771081292520556820010446236404721894216299592890161148153287780242968756459331843581327339911055484495559283349425195249942149887703508033963361023379120070105183834918318286374494235067988481316334692591136256253635504918173893794328785094735488610290627806965480773557164026852486268017322470580354696098218482488096116264388194943125719990370578257339334629000131032689971802370232585480130425964774954686135133273730915958857259927016436758650864622655740813981381195277765454834476226636986226464661390641295842541166440478390726524178148756934327266400520986344634648218847162783368540489582235525733380154285442387555172282543640588963063652541301612679902487851085161961120139846713769924185744696123126129291434248997912686304760591090876941986948198453109493824153359089290759560624404081718035298409003531293304309540946384514285192581761294774394779729998270484411947357758300361570869215380756697436656057440569663323282519590186908787969725045838685103262486080758643434402533935182887058169509611659169352166018185549300833068477645493277177292346922116261458463634186210226932113879011873080520725150365579350184551790866990976507267848983886855070143882087491857432477404692613085383164232448041911978348229942050246325136235308897413069451795110341820784535153933481004562417377433029989454627425009269693526610145158240651015475299474105079312022941736735530728460128218354524340893411844975689064897480296158095190851243143846849057744181256484431101387625072232925767157112753747789419400676494869938267146114129374198775386192862554104271010406087461686261041402983764419467750625343853685302296976670191353432513486479922061035695633918385372221550304746150854200220251344333174213057697837542796270293981905442222030966843302647256363849551255191179175679366961162273584113282642875795102677447355879881736158942359082317805046197503608616627109042736084342232981906426323478630731341327734678247090627908237357839164818251145956209177830189708441492035467778991003420872058866817391832727425067467990472315420703464169416372897809166269844826723604888345245090702923072335753006295795236904592330674120459692225302644170185906217136107310310849372071414516082016064542519010075698306639643991206444227546683128913063284723621079388464018382642632857411596757844826368965561476691187256664464076211677051877430672997352054601987058389386015907513275283543691831394238583845564108091681533463283302757655696809909634845339768567887789499111115149685287483995811865459807765349694472767722783845989206166528621930815830966198780907505682048101556628450490853558792406837274640881645308247809118070638325617728489398518016333061632827900200581189285166286616453466126432694877947395751847580773668266648336745652393985812786862886793007534025929433094267078235661726582510266340604294537434503009215390734952401193586604502983167548220176514865606556507943636308046292027622127712259391503986203879947187101990100424645661926320624030517390425515075784868916067079009528059296284653450543277950004822737460929583064936223730403933413335309630941772264406374335631810295501809301557015962646839792679107860253966071783653271623047876982928333006926752091931957283581717914393115464988577111765121588279938259861213547764248717136820311886292343366424981188220996836143816489334074034833629414957034368406790870504467011461058029308572789386284727012687656165439250698105276737974375051555347110967673883544579465814324300992426401073193291695457386482223818076067482387849982365220573415877362040453934077750850138715322593445922376900939798974979075267804189359244746196458929841777939593671002030583203014770463382881651567749893623880047709333659517821116611257414419305047234356734743108426194387522602453646682532386296912506391963127265958530686488176245366667969584910247257065037847077030037833444828513485677122152134653018532887438443338751322221670466139568400121442347503389626839575117455143427559345882503626002391437606977843932824728200420282694018509998835757537897416097401896898058965313490514597866158772975360528808944660868857607030844665154096400466378926383762069485828570567369098807338343509472847511670238699466562531668290203996872220636067727200928805818953914352200419597772819987229612145391199730253620769075828692197471397938228502944876098076626415481779970987512643823168912762043154269703832588699333272852612101201613956418779701672795567925873717582148845013808287627822590944452529385519287212525631951376519179135154160094002318605762924368765728646058211314734988471140298689306217054667456623993041535789961455819655523485900003192620699935092576055678139413576058709268845705760450355574419730561038535800513006426507893630051493070058990612119604237301547798906013008533985898918108291538256336661307965511316113930625252491384725827296881312850038834906708299544754331320883868075877749118441874861267377050687946925521438301359300106628269389524140824221843865457419166154205520992514085823809256047676306017329397513315061022989245219527882036485366460713557744921341984965259613660007327129130566471969127896841837694828003098551829611463204066780349619583647198042416054737645031920366064714242147999511642980486758408467813882599254524679190836768378005693970267925312880798361560632843035484741907131642719162387186224419216897343170666105099458966997284736293564658595697212678555809520799038281207589690935002262546234156205253904921325124122364441494156301813812913830814403448920549785734196645954902603088385129970001416358746346128815125610630831613112661888304235240332946826949982790954493056748346730837545765938120954826441194825522502523592918504961965055878590592519111577685200731126540051620492045466285703422553236973428643219468672622146480560427580054669691490457983225326221464883571352357932204486842384061330964288701545372768236150544193859996630704067458034393034140290873674200167480870638719305352434782279686772596088926480209309159588588294261971618457214210492085667028806823714157031743242464819173894200292760617085284872976186750955447187304745204312631502160481288660621898270995146163266888211933434632923717867151514637710079772495603177593342194001629746939659513082708131387840262815729044146394251747229962137775096283711682198723601228917570802776561230616594777528721800826952392785026091253303889585141598387409434125419169494756685754536458909068244617307140287140365172506545860869296801919156493153391978465397415440893272977632079490070708327979784638598496667734917613860644672359301403670294697229424927216739347829151498450080183069786556095504805533507947804722344212463562847787965612214340391847528919590243797791995200774676142496064976177600632539466752908518176881567210118141441119360005430442448334015329810127578089748519286296862752705920118853153377081571394554826516768343487116835517236753417640859657230052547643934943976857924564457716911037879348521617393314992624348144542121682818018908585754054015405873359640778637261911216016597558486415008943096126858848822838325836404802977962002472984743431346736966635402777372793446981744780213550580777258886456589942304850785489238209470001158707917428681063971042345147411804069215201145783415551759500241091010947578182787523370726592625386674306799425434691863778068285384897615907145460230601165653710204638462115302618531715358526201661874658537812954747368737552408893459510157746695457361905506483767443943414328470514283391488396499416791242619339901635252352976479211663483497568388550728033211301144200640349216660217527876749089983494381704420381667573067590751787437654449177355501632352059576062578222888994050202736236610869015681017157046026014165230834157652011356584017007206875744761979412427415122289947163218909778106076646844123992652847465612105309299928889169712931103505584628428431285755279089022288538437486289418152020933284093876281860072217220392347477109542529412650832613805572570440980187329504598577018274939265822663801236941252970969223331731307910638429950439148911425374439339796015802314539804776322160154694389178957652025424471398988405128118664093823046678156014777199492286373751730036709552581402239796671339989168167733766536601769671845289598537668916196725541263285360333115620794402863802318774680330957551640606604984966855233667691449281171902116800375216293263491641145079761345671651193075897295039263983235470094720133970766108111010528551226597131739596089116460155014374611460333826349936543292551369444785366949351870259148972423669820850189832998717935118250218678910234778626068608698081575227312427996444782342782624804244032075739037054459377567960276834024999969809213536209910636068555360703706281906982573556335401270719517178902602391797376092048319861785420465059328883775295466219494222655261296679495974873360414457940820581272679053274563103968188034426711866517678539857790232215313378319096391412474159488213789024109115692821992375655718943662830766397259159261250281594956097623353432039527853358510139230390842662883783598823799990236933520428640384013928013929326050062623468763459857931162091490883452198683129765220701918738710491510056828992488220047398617331832151356005351348769120697031420605331555327960256058641752381423948508811696207395463786761836181780489538222107406280896869799782357459784282607028886924077004426191539887439870279322441873519692011666189564369254154518022797634123116376435251086163170065442739744908449353457963815590898988912132462466412634285194175372451477372029435518040340430963036653850919675211627853565090631793743967449352814618542223642653471384707484002960342389356312457405777044570585600907371543252586320245970691193147865312863737007844288930652879504257131025183158185943461025632959806869981657673752536120497446169817615360718922128443598922740122271286052922758939727614031798669494753777850112145842717584865106459954050625786233343978574934769053418499034874623103973911785376779010576050650320704099527124274273406207131179702581755180368761518162859097028694150804373508276331654994860322665594102962549395549793943046569816602985630146708523166404584907505616603109073010234984304106316377449076940599511828440748683306289649371188977892829605714805854598403929449553707878511316575468467721717626156881319934112219064072540457398913805740331104623293793762808761480387293835699920968613881513918675735729884375718572681334857094512682603032443077995965550023100109415417143771021052428480100183739044981946952525981826888043337301856586996928133453185821167538226475332942447419938492378783403243700567021001298355052267974145536863433816248899534310604144502437232364192569165855196965157329462575184806916706325754633975295992074671036512762371892032497533325917569747505475679147814557129826093806646809705777737803973565033944900900107124185360959599266642015601201265296738126070272313279402770383760860994397386819636639411207054843560524150020190542057884785054579242632054227812649387496783529020724813083619299167517473554631205459377541450212688159793085072314092155158845401913477762002905204298845886746563995058649585740571156713018228227525042402669236569250489554588527780350960531799108097319338692870979978056362097676975203737688757418938603569705027234232164795636677144438032070385253368976400694206782381312661106378993092006502675024548526649347452197274178425237340670435096056628956130066193712174647193514613831821679810209735595227083540313092267094133598772175434245090919303290255934932838118877931451926651063239016644660166613081511854173472948871003592420166769451334286649726540304066687106894367273758665056107142168572284901685400315371453214096673642805542772107729780841906133115916648063231792194589108926544186488114732120314741179603573075867433982910941339538405555687265479792998383537582502145975514947413847253463890277951062303257108750984819660073025968941036761665565128256159064729782429185150322504593309636135941956045634886531988845454973390979682321480102333909600936559680373073659729726565618118391423113050214778737485026056543035723756012412559352293246399150100550760417063380604814782554879013721899321842254985258917220831760129430985287898609124301572306782962997903525830810422653866728523870808617833338717336874376518678779457804288416293696581244495097753467059409865047731293680196344099880334977426168151505236693221953506934756258259383069927762754215928982816678065930767453553581551498548862161810165204347640360627450794717068893053641567492121727207897753880605952875717387389777303111684119106154112433701205477868386055653774110112244671788483451912018478874587800566378949367175032387672218353242161316988934352642256440403715209418988646173128663250898435242587271727257058027143897461445774672343124620250666318174773621790103987702116380855082808602022674711976793941776344351606503701018409630725206702485309907895137230242576084907149905126067015881784216573630343601726103005024272116307236976996422509680266375049898243775210509244257440906808663142178902232758279788325580211143163256146441332247358676309756608517922265820904166518400102803837191722161987861313999166437767047350727386119514409507401872283748024546692293628041497805667347631901026015030240351457683543694777550276907273969513877157763583082565424620558928883342295447474695090912758098106263714651405698495027185383623899386840876796657675867574651467810235671119648085210397972843853224819649270111077844859322679523450940207687366828191235760927079054550779765383730884858787337351552121556014933815385292469362017523413527380292867536028261535478144962908458672619434541089799537639448678174731061015284129271658413178811209612726766249482958918112649030440084257226662427767674165037447660572754572601414243119876231522790858859450638822405308619724669574467578256808625156817552708967416370867505821605899765028265497317282807246828101025298670911910485506983860209719254015983865716765322546476486906556823624738984431687958446345329970709342899612395531193487613510204267302196232215900453837719330906408333762937316603323866833460168579829513836069743653466791745426218987897342878883639257296600273770975262850256637787886198207758726002903356495535890001280187795887601766575877418033573997659573491962655657953736713374303130463968265233634004128404204168684832194209205223839500625551753994813238848111900215246912258523041620078726840714866580817401048775457812718296583596524121386183482652401179239914783397376002887217431783037249199950799508292407051013706997628886172045223247714141054975712123007238612759603205668356864427355960430963807328267307527547857819114593635569038760096145654887844252867961005365314911301153804659887259470747430749856738910555121571875525789295691691943796335595436366487798639122439332734768151105504546567195498612596426761545581559239961281154734558579186830172963573453726156860366361220532048397613549948778644666056073644533824898225650392983040485191745691690900890564592392710847900855872181976715137809149580490581057202753697990218236731363915376490275841652807113149396013724760297071275448982643167139027680213875552553729568981941014216091886218095596404252557665609918821297039868680697485429271472437559089928409086286990520124886704397516133921989674032648178788757940067119482399558163136493804502935604724181752364885140886991364630971018334643298572892148758504454274068470354539481676067192449336579071677878211204647087745653526211633636562116451086856194530748894882652263898169918969879277023553797879900096887614294669712750839065758624231635108819980646835687154615333716479016461940446283926885024004216029416051189195207865576159093238830182105294497064097762624810963031733780969596205347531129547645134786383677813751322017744254599901584646901544059860962225408553535597472224738605109204579472461401196909477377807118924283629419789121930641401982780119658583965757745536679666093921092142310580512337996759779736218993901502717850429918585835492184336186116778608675518824656959036454736467233844762274674687999843060473796529712373622246787170370996433309154037817725352098520550047233982029088439545758745652925783564344912766685341421424050694035735783743354982461120917897624084596698656466534663153333641533411182981066824090342854057660638200167706749260103688334688807638253666223359976763155587936245334991230625178118580650780035109905648723985419769294509764603993576512768097182492795359467107032037681007631416582728747737819427730370026647929520519150464160738223333256370744479594518069661586729931929636723438120724261223038767391161410719495655977621714115143413355215254216581324405371990941552446373260521023772841319349505684121865877220966508278732907719724610755896579667678259628647820815088141484970198347170970341309495095873291777993426911019526669933933634985792531078466586456191731617206050749809552250832031338253272639349444094245304635057406906955306244331950904408559045914869852997719535586206373234609896273265502952409024659567697792278390224357768527471051658656384825187596996195850020697988526165521456561283959527757487491962938781544521909669624956679357460608605179217841230839260556610759207131698185234854915613805236502266083047092221746809583991793871937450357751789923386548779981422419957856675397841806972340019843439716066423553338588814183906969227753703314234182389993215676666903417005504319694310047983062715906242977248619243376976514850715480947852103802200297077228383947463838063552004878489442130152860365077895254880972204075499097405054699001471044555139581386757434199137842904946088523087321964961239528659424891285182451463737552907505746266283931122976722007687494455626066454630316680338848799683734035931038878530377313027555394656546283638234205636802742093662338289277537664770940812441039395861700363927855063769543195046109481687773269898895610681773978224311199956322413717233729027709717765386583684408996794456348329806592331798746803004143895785311954538106841618185555475264619526144483106510399889458436730640677146137011883368838167938481593846568381328915878131958725225006011203683839064434411012690835235638516702166128785119148458060147587559005264147772347424935960116142501499487139639815534186260287023032507930271766629469567750707318434114531540487658278000001063166754811014698548117004309896923945792635855671889931111906768052230065712891585943154188687268028729400141544517830096430365492260758722827150813772826822691949673490090003034097515083038977305347519305970264114885918871864434081493406470318225119044525348509976695120798306973591135934394868570312199756067211991700008726695808667879723922587675605341390378732682664387397488332212602005432504295915980818108635712440091112680675512515403943141436562744326603861855649072095342585472028313369725822737115271335761451870736862404423589464403208397230798537829235876412610561132705957508234682829357738393571439264311898592048888745069343591298346442623214253696224704964432802271042313935007693890536950920986381844948981860381704545667104775724076029343090087208044692192635388126600561537439330379997224451284375359398606311821384450016670062362209923359996089263717164627512882986020896422221548759125555529874663673341794687628187363393275073556783563101442465442605200898360612822108972300729953222324506633765074618375935122511486668494963372369000246140126895596569179466555755389930177904360248600921245299857260541182328081792767406835330382687225006037899296106522818139278816701498402843298949155086483038213556878091040069544913961763683688097379385393916343631789388324383170599848407434203242530892015413615584332313208631544083865484038795746676995914370272829687844361174820556796637910641667829597270494637219097456353500348807244590752968027894358767035553638632560398176315944334235113947823999574129608481433956683126948367878130793001084507039718493909672932567790938933232462198773530029588811277366318806988467354346896836121256724786369315624188774624559707177127712352194055689856946314803267727203313303898491599909643577868128632754795215910498603364833191799880250389628985250211154586603650654151736803461558822586252279869676077211830816612443824160384198599596211128740702272903482246107265211371639941286838828196098646717184544321389606159517880370828460938247958709749011522713425005672968034946645564096198627567438691582465946883600989665759797866402424222127773318899309195321155457093095843500453888292943236696605098665833748923541834820900635529419391599423384601313380226638444352044177472674945818155543763155482393224612675040775006838248724117724804862559093631828552654320785363668742492061947128334155846687172345706861377539493719320222443033898411194956766975156426068714423999331800323697299614255233899264259692709545916800199646786524320657348400799701117103911715022269717974709769083775029603503415307042192488854026138849844059679704508942513712785257870290372799990767539902725107033107819668632709531119858633437792843154468057343392327290654559049001509547437187186576001621673628046842722824767881340146262771027071704608130930446867852112401051654511266629905926494329790970319788052903284439870640010175415530365597680456528466996669177990569056870862695961796962268982325217214413912468641721828929630393927833307636971924841575110209189200888035347466129605632119543724817187971444938617909979621503707664379714757643558283709642328544317972250290730872145004883288247947666473179400920143043826473184220191591502772090469603330659856757224948094791498980535295382299434691267075166385897262267466644115744743274335578420377599023029521092677375582374677856469957138013347435077700298379830861333529909969335813547355250090469738034556451207537903162959905588683206274224966719394174708383792280756857197162827701856432440857844790834648300072159839026617098326349727206463176590619580474214989017322146616969307572833309141863628553829961144715819293263551807226085265609413856269089186228535538647021225330420598216841538522030808493680167399263122614582939772813075663575953056344354294678036640706587499379955445188416328373748287352674219836466277028561702314221155465730490175608252971485391111726385396620144125574836813978118476999326061996430958086346654105121288543320921115148882175198794658505980955660156864287546987267349505952926578588387411056741783160985030061433852542070670290312867443965028244250170805627090038203355120629572698089369358957844467882153749600087752369924669683933699169917189531812759221670457754653555171822625710239328738076784577620524596370218844619574230572852727112783812868525803301841628256274384038606769891036432413923126479409535497337926407412770992013060407128521277931102727189881002708863399120829923412865806772459824993221564078922350353889791198683383520844849883460062019574340492425883332219117960103433858992538281743052422809711811358275860483830893601441171590607052875678117306624162605304628574934100343768778711482716211404129618726828997832630110254697414240341604168404588722441289959875152523094524255995813219539830354331922050331976958663316465614788277464638365122853581835601189284587147504001919784159063607122300046680428993726487832012209364813189036079365187160370778127341308449395873532297958912016407419166465882802855377852808259983295570773813859648046785209279502870354838301740860528432277011929410583498916432694864639377402824863111832783678372621940143135140534682078210066435814704247340697484663123411069580821824104348719057623261941341722496465423320963867830435911172982350821066024649183583975230950069315983332694103546641631678726510317018963159192758463716605606401118677788209536802534144602438116378611347749565699715846599334041474526169013665824581743738083633673793041243100547436122153275911999638576010730889373644271802895070086894207061691424066598147766312424235468681453766462977417680548958469926468037293140324476174705156984157166341331951785900140814643940974447324069310683800707313328139163873714860009561842374948445956883984653771213858140508270791007842570017881057928361351772696639491933861598892462065546021362855820876460438658783492370848795880333806691662239372376767639900513061100649422917887425299057920864825303097237735330640203587353650808410941367934008767185883879047736127080282908502930760136593440945656530811849648156718873488702746841561573201179428222322149412606669140312311255044124170737625372976692605770901705485135461893050421482967315957760260964125521894034855667757085672737677258418306706038793704767697007149866097004297606320036252737325635247924223700637117093142997693935062396856595626525036712345784276335000208161550254342301852486850772547295761814795851735888182232888492639053475022115156297080039525127033649900047123198603154858693070376319862645120971744202344712285262873536828068970606735914861677678044107792397822488403305197836040559231579036916062269380035026853452482958297236071026568785353661273467741414168419524297925097328901765217342486023613479479874335018443716120746965221955416898848227160781975436539318385654210071805395864853497297555374189439585292472153076265998431884453038206062699200959093344524704933496188101064543017051324110975166064001909483692672197220484754205561131893029766892661630992755913971947058795048189259292846096883684704300612690581225796956013460625114932345109145052742056687980856371492526613098744672152312048952610370253037059153612146723546031582427975397444507638484697093871854853232310885981427713039562454347488189937046701025066577138692001143002647025856032876489341188390065450171167308270360027420028121858772509335520345517461233265138269600927674237548304372896566832187398658248138223592525607631025682050575749442163133470611254016901418322299531582664294770841134201151492262000330370685153319850024821331129524155007693453312557998831857843037711392293012868231633103354305998830521278673683049157086360586071293359475707800295594143060142806358404060264918268233598672948815921314576497614629008963923934455538154035433860188053712571703884573650658397895665881038410947876755529820475830115167710769469871294321204129205246833566204638613516361751114034704399915237553661667454096598198328357309687169663650587995069023901373154824410690145661216095919044510326650206811788666672382045450258377262903046632204331772787730776383759351500981206431512037067230244331822416567682099488075240528202902418013158780238191091202060482285611376464719998349295087413099214157830529277109942738075395890384080778229781806521533392262973647132578685688252723723192804663954390259428791199648848233034709675699106001933053833845484669049023255682211819404283656724057763540292624511433634166160452041810082665816478503725935935744778536162420162252715605057898747846740192851058267253512271004714615792715479600400080309516460608282614656270406781017218833171996325843195847057260847666787464195260822536971244968343507264508623899081516058564213379192673269317072039347522765687432403409957428299946441486166299238159891652974487542974262345745904701162665933547082879720169266076354901209576521162669377130524940556498214615681065144697452019142718371434827918716061846647566812999332313531694513060286086675856071810200935026015362140257900676651857188738597407479412304401522416476749624920988499670782645577121531368791786106256954107070242449030203572308283139773756856571181618383104346031722372524314048118012859716142525350453372849345464253933449598357146902010632198055505232498591799037910315854012055683844898041158447875276336061030985113119670931424301910135008940260608537515147482462207683464007645846706423125520621613041583408616070357071046401827205104823141631229976702132765584268121566625840906154399566510919361783242599215378515573287641771243481871878985191672240480486426386798241040336923332937670023059950132603271395414724306541232293265303336790964294015487561447061526352420069390513444061005395428651155918224315335473930844828785718159384742558885721445705327095421441614082469730195290390883166185100225436765126604920577248072255294399829949476176528150841190911327873114531812435665877906473311725444478467699243229525152937771571437716741608657802442134426390598161294726717013757254196415301465810915391294985330242541161254963805024737905845101470346501129199777611974870405393668264902095261978497972579073946683161901342841747594604532292307401340814340854043748557662094352791781774733350905495578388594357384833726944288080832824171310544653537893652780713776963611777175286729378933326300125752382819328028248607245349198386156353788613433122025367449830105608995391933377701311787080381292252659816151199423678372717932934326068205612071698362673421666400513251201723452047397864510455496606255398336404204235275617592489390046082838243712669967759451128662115139436249596832481202528563629111375817593488500517725312042759128373291456621869999706846209259347473881664068157105580389871495967276961918718272558632244912078414449021726579099238666110131880747357816049098367231367232425481558880280655891556441426535829981437945680715630626839950587818861461513501696860745276053490073181212790034975700063016880227175040482610708728698073869821765543073184742461192306252997447936186225925260494372652132167505898630929762627497628876046748551400790354620732588685169175309013516257129335462613998924043762668098820949691987041743063646151288228569315355631006023581449259967414920469854455674170909623959180491578576447781083064986710264751125035172032764162858840939673139869006829904235331166614094981469258431062266063456397065538707831399138551931416404694239295515448393812426279768985873142130450348302803611042535322473537529832096050433193012205017480816974357601071922000538359165751779280878672566784956235181524704901271556339791534662807842991737371269158115084512303704386418990774794284201527414361090815882701934640970292796587381548662961415639297940533887457196674439843774506504007765279200657259370271665408549295417051572383664337877419324116499295371394219249868149937975704397988052718092854585486647724935784421059341360133464171054148807384900660654616083843349085237366106434386120835218095845967114567724256688525954554698513561402455176877562121711638984949134017438695847746315462331408822573129159219161280749652622020722701082987118979044150098256806626522934733650202760102775465389849333230293977389490180186990982270160149982365417202046718500781472710270408708587789090183309851309615888835329409273652619185356059314241085441845167172025671445751575409486731363369778009232412376096893176075309892966912927254201531120271853398523946250641850692839694372185729015786866923834130880750879514766414957452374992778377215968411565073003758499459647046967687913240203568991636106603875490941764166681978204086627514029549241348120225619470551330625466876434182616838811721560216651089409760197477692231320656036104585059917353559393287608162242002069970188553815547755189575254154932214178018373401919398883378762576496024022743221280891738020857881322855166810151854817683263190941837724207382034935764886522344667185297496769071219157914000251055330231633774183698138891092426534619766279714686777430314765631652199140858399028805441902972138846493889241911229748073364225247233239521977291175685781383298392221420725716948486962552921905816700424278845042342182405046150880665710257215781544315617386133407945067033364437378432914364796633512567863419207432192815483396012477478475138727591087080127034522361539766048147190190253616343040477219811351592377220885475521213731677852645457030184431235226430634342655303222141102370952384810423983234293104015517619356051823636032643262458769999859796995439993395847317458007972469379531523879872149668656269190578825153356806149359189525258479951565241713989262803621522941285662757993814878447886926492236951775014138223072311103380795401172159626962707839457368021494507494398160860632793659443829839965387691395313741904881081602434624332602097510580559486699365848521614575620137247939343725717759163171036200141505966123517935079403203372471250178540773993840528938112541878980018027987647289833130363039192754833039550240939211195915456406194557440119135474357627022535007203595570379615425753494736273213207212014474825826529165976907878172123699785181597147541633603359473112816352832439224422166006162981882565936782357946729145049471952876438402705253027916572144329275668081269474514451452462176566574929878683888721749501801470282746412578510865750462698433949412022423149595907465388742126101524413154343773735215900665356487393492937822645398660473384324148217068312141880407875860493123998175048134693841613984789364910030834679651151382066154957277568712397422581849545505504586768291133208456809090479448203284356340828601168573011890862361509481770199726773299171801748749076781779602394106737813136574939440126687190518091573416001756092103956986518430773260929212422902722202336589495512817578426723729895501654556577528276919367004456490704763789413825711787052362822832892992385205013840052877280723120717603577799490044726660055787171163092304353665767927376291274962309793059538140966592045948006416318734183526865734923706755074678639083762745013264889469213906352824149133995418559004329481013252452087005040243407068038836474033723656113752436337062505847944892731134932055592918539843745223815662751242680570249585390565895118555904789607458436838128919492091495595609619631791625907125473315041748524375274065377491660083495449881803205611469496992264971801512621761399419953215609590209958981477897689530341216256142420791240970984149699709563406484890726593677237377155585011733149742651678648406669388110685966354401259238206844199601897566647922104219541043612144486428824619985821087184202988894533091389560577246813515205790620169802726752788928659751861893895699560554024603021922291486838161397515722679402741033795380966023373656605458041495856646461185644663802543740203013739386057363464988493281990090926449609521760744665602105722965561092493863212245057954651129028013390095082791001265611720603734791669508837523989599131347696025234191916716598355744453150689282230550226879315198727412594304429235870829182630021293753670359772465671859595335570077919477643479376544686718528040090983767309851337784825425039448300526428829029928556292706732515633825791674983104288621423385244651810389974897733778906561257955999942783355083441452206764250911987699914372305842795852450767415610828146260394313739747647833179117475355825310451820824010803234809906015528856101962241716417598526725074853406925189046720194429513803068219355743661466972813499842856581100449434918297478574291665378108955041238545559260099019349571244106482315913693711261570249098028654889702729484625643824955681558936371181185623663656235764350461841664489471607796686507547057297123068776597237856064091172107344083190142592949886050520241875669395861755984924917380346950080315895006174391977601515411584363975799437397262512442800153908645141049752015624894451890358955644574400888500234355534178971069582209320252767233071073475759079816647229377398736431649455966882999259797162371648371822956906436813452655184212068357241378705570903971012797885353702510998192130970746568077025969241430740548143992240827706039266158065868222162596718120399872640945779061188658066005679592850713648071808932014352354556544932167528219184739777067901989244910762904960736463456862186704824577667537717251918451220186498873653253639490053333152209182011303378170431565505316582514473628822420055449431734367065077685789645730742481495131879545286641970958539353231493928842656904567893875143908350295905240893779538509843660283898318403674981305198518688724895352850036676033857498403490740943612822436668342921410982983737301763178531412232084672362933084041082357776909384504804467072832986596570235145585356184140435391340639017109093576031932740895786386120569734353595377177107543351028007076091795906720810894801958371156478957488682117614293648111625870983810451777336854535029919447505106824866049757083187155175670855491220271750825430959763461395916748722423269389710700512917389023767919369571620096577226219238776309943640146033007767436000087216588728090084039252730249144688453330014506649751972459745444777028902638441942981582735229693242885959434916225720098560142963276920816466315968310687606426448145286700477304207429434734522999465293312108301825859339210934189434690152620615350547167407888253842043680833694577613062408800370338518985965562337770486346305426489171625815526274867349038680687640835737188733612788098414178699671332645669769132409689853109489491218474571373336494735570055506885177665563461869077376340966113596510965930220968149263860226103473003319808878264293988659761829893789048846137297969101342476892292313789341367755095374439804450617035590237771605911991793592005164716898536482017806770552872492588247233303354875863882943010667797587321411252852774850990933774551330623609194653163428768458936374318654864052103407213034156735108683874426209926258747196878751360695103282236375615102516775549259199345571508110762317514714536864021814345951321670878895205332222563596756324644027741584702024201607161641925597723275766760788116121544978404008807914774410557614175782649842984690536318797141936329406313435909297016465226750566017011960295391040476146982710041577896605070014816125326214194073130218878027352947583898555813851774931818938271894972353758812652547264460092982249665878533935880829013024239785869999182454560977306899087224310079921805819107404921808849573301164899854117833924224088240184570924754714150217017314295230085354745894198145853165471703227927925487508136872899876257278723016816582849940445737263571722191724155649996616987946379120883648109656225401421672356977072526302458380942953893905355463597627690826263955653029659467496365072888967180476572018218717017809256821995412195293558864252607165749279610772581778858312711676790404428625140907662183618997200733633578762832235627047653739017849962466482870910439144752760249880770815933251342850502024219569697590713664972505697780659616088786339507320739359149530557340224067676222028094364686674777977555639768383135945068808991137451537548337765563265665679846445070037205179625519723405719914255455579376095194979940237573128783183690263453415390361503977744528923854105995637996527737405336139241548794587930497738812426873204694156627730369524660273585913970962565164012691853135156476831958897772177560362066702848613287930015863313059024166780540636573796637965947037348466675545108144108626269281403365136348661235908688223849769750711356156480106565949252873798249578151417188511829943630986541861292544573771583810942804262071205884603443493453000988297059524460144296810767034535751307987089963860830996043011871179877623287381948039420493499132639735382647011609418756840497597947674696515023608256718518657906510297719543858091847123462475211041765592929147784166700497681588498415988829334466870555485266887252908339590723074105595642476863599556407795838065286061165145176663794725844327180856146804849353994207230860420579641978095567208127913800942222109795990624372005106241047787512979213429009745704900178619264583111820899909204795132855299810738983445657776677406382546674159843118574880889783381443733568702768979635287993950265786278233408610191717750460679079097219685360791698963169461954905090850512081040522125280598582956095225782758853743483028986875075587364201351413278987089685864247749458296147996669310107122873099014692193265973569387868180391380263048362160825767655239985773685089155253378130971428447497788876572444518502573221800879541139240948221656792977916126929259097686510680058149386385956508965700766697245419116662122308396051775556505153458338350407617244077655918320015019888591692686712725838931540460931049750416859425108437620512335182158529936649622991864703050332190751835952672607501068266165774327140489026561036972659675657438641432072165583384103685193931785202220303506181989665469521461180681600372594611670572204046911872111633833188792105718068163736210926365182607444663552971815203588987915896225844723168488944110132632013130685707152165559649471283431358497524586376467978544855943219297849417398452424687160865752325576492010095782436938986781537128906567454931094436515338723551954061976517388747925981582201312378093496830200774125359647173685135263951447585772211842230045529720938480685684318448939154968238054276809707743124137229402669031163560180115865021412428956587975920156071789609225554511713399348810864842677749873364936729488172465162947020056115047443696072369216534527591791308320435701846482520253701790390738899518677758708064569021189450406522643509365490169332770412555262280446648036662592754904265952622072272139639428793815100872517771813112930090677451344372787096498517416361989982883552244131950132292303761915238576981025855960412741980346095244911547177840298393857414290400649192562158520025041870275467049781601375498530234508780457911138953425412482785039032366041072663343597022513502315569353153951352389103107854875838056612007760948884886130753950637334319141292764439544266517173864178826425069314370708489907999343504172850469393406477199439328024489160281749178611914048368334807982451514311037165408069300775131430770495523539351670762641237212487068082170123280558454384864480453028340663614217506988005457921242304561809110501004746496438932055366265295045583448497862403138284849718749568708048229726613121084317938881615529688897656504695669062318083889425640402409324970124659040736656088165657596848788999909445294494581730873911022378193414238526970161299381105322388376335236851189583883772523070453873670006573355183672422427321846851286897752911226965544753346193311251330969781940071716795403220588025364593459058240537344061001360021781596292177962305491868208256862580561577081665556807709541293591822085202392158449387748693155003391248086540322937828893262580239266225004308105461657548840574954355272712920225569603663031589849475230974750362769903363628744200686364952828250079891930882617606508702395665408898372835241314336885042808280709765294167860445239158319495477498746221966538681812108803020798139587663743234434095181839255076092558229215514412277154134730511772908210346843646039592266993203013330331670820633748641018840685128777714436258514527431440873579663633635628201719727646921394701540821085766862188407650243703832805253243257000357012888445464018320781576041484915741085868897555007076148641649737893838797930417020177759991088087031942950048910545497196780072447538800097510339587195915717032786651148631776463107228274450392411737078983930606498437036778945786741192543731418021737516968094638965371400465324787799438092875168847061965880314620383801619931439056686615484079036575794029158807766855589246354937441356279392445897486473222433872650495794206397940795255202387206243546155754210221240284033049472643465052399326242213062608589859370476918929885093041902202205485799370646802181267964987669707901537527081249079019012875658916280094421327367137583217828961001285644603808422247537403038303190977621934577988368183951758732163710804199379332409438343080629633884372236050394001199025709027761918183874377896661771050478470842716588110171144828460788885407349445783453298338970297803114853073096629073455846584398055769370540246484006944287217683405473875388332489859621881083990866368352148595381802138956959299069513046441078842711294773256581065949524478560529317172259549351175428897608557884362867781605881448317239474034703160170756949804167774383264188342666647195486141557038366165423051329337551158936040023249579988373880426501782528521483721783695853518261184309777534451609883643313348910409725920963476976761026898465114632068707284043760018681492974240455662075090248577487063309124526531739119841012662688098205942820890114022578550194420939238167834578722154963380813191880750931949755302519653467528233394139564317394578251689605305140500936470445267883222804456912238480471522701834832090393458066407927553714821347088716612659523451016776433404031299966956433078903278764728606560884929720792484617564987871945829973618067704115732673609557263492570424365600064765536378080884499958852065787305895363425468941500684491731175822427745078070190433163648236680325638245228222558067900341828722170906804943258371327866865861646856993462105367357533400804172868731913681493860765975906908837557158940637248519489236414805071251737641652328558370548017137459336945150598671179256738048007730743669917296919417922404430939959264694177747951312592743455648986201647920241942360757572150269481248230762011447097474544138923052190011238981799294560004666675014456331440427518921239227816188468664209111207619215033161321662249994167162914505694257229914633731908891513309790994824218186382135241453770315699013693988308493236799449874719142583005592113432689675990193776989158175422518776558174865225946053866614035602293845312572409851333221083578559803743685657390079561694287571591093511263642211821170061378695618595329749728047314553525048585092656831644659890930619666106773023344445097175867078661208499134807035226288496692512073564764995190516688389864827302034120100439949644814187227576828205041302487140782273308398259281870171065045460354643958753737567206487110696438240690715969825098409585909532980009637460082453479927914000066733577669794927733613081731253957964473792030471529508558738979167739593516198056020953871795904275412710273160493831544893682297542062912731618288693033553038873868243234018527918554687007974303908836727577642823535507397051156691625561722579594831511202989435506634190511743131510940770732835709260521447578876311233900552418737239592935772415837026629911950603868466701410405470701960020488654983410978286852685295212721921790348094232263204482630163677842837065509038325319639736837514152004266680724779162579089836545429874524427014226378121377927100755415371589358544123035391066590565834142349397961962767286478675640382920976627364538873100652362082628227986094363847135278463953266430596843818476148577583207532714316320461296498288553804296079472679955146332890194083979083916760854617221993781654392037775851386596291607521030793225115317591904461729012050015303579535663192951871069224829800836337470763966766010058223477052642567078982764436235331283768079011290600182969415105165869944727933923753577045966513532501766496166522649283027199717579046028063882207633181642314214042653617455343507802067631367135691724724940502158263806283799297556921962551329682312121378222084385248838107273359968262838957093745854383080812395751792468235742914482973100203946335261556863874065065332885530102995036414487530064284536865979138348045517972260282790922142535044265029965606390818742676469151042897866233662414043509964380160252575947970987368699204293879731842586125302562768299793521235395806118427570716976995392975229803369373134451760149244391817273165603021634817143299593599952560259685036196207529049538560125791673379517165119824313013844895379652253993559487045974460163125330615118268151256483031884598186337612431369063514774819106133841054331042753911386100715762126506866535777694923139662694004172621813432132758797017232836328654926247604013465210632484412072009207484041272558253139938725761553917459351922032300839890445292756462591989577581013382141017798851778446983505958246744795160820467776184529229383925607752226028671507946449030127752089985612218016491427462297043725901261583392743523016075303328459298984557954647801189161325611889591125276698600758450160359679716426712405050079092254643934327875080002068093918383099420999089650434356913435679453158839249357701022700136311162243027720114781695737418924677302694345120127278497010617290775374989542509917788073430233702038915839892873937698729242566823195467146089818964647215304325752548230478760148916069067402138811131624465156163522896442176488049292638345705732761611611307343912530425675205185203636424226594868850949963077764387519529508977371008536129943718505548440710924832242858433619332906024851252731677533495000294548308396768963183202602343598223916766806545104900655412430180791925394109645509887804922194645651161669922419538479207701388654456794113631811021294418008690326409895534952852773853994127267611831809068184500565618113202954272625912208870470259758324861780094686572104189811662962021000995110580428811940071011140112377562114346035842103500922874608100451407034020310115059316058610123148553803782873120705890340531848766054866023811799460307845958573029481175632039046747416391612023716658768888450187215518833583147891346167682635908599457939471646680165832407244174847989335668418293824850805208129921466057619504014125232076012548852577929913931218465874860319838628247498246845841675357430689975730963237215124405008916150796772350924581889306665316593920951020023110607152880291567763080566235638152800895223446042543841273938466220766021876367065841255670710366689809955795800171576360002688837339019463195493081506201678462193220947969542313003663856859658414211613379635615627069104907401286247267950369891434211603340920023218823337956219904365255267455889043622877954411332921067780509952944394987619355084207130890874264503254423177401270788658892290285480661633498372147390703250620976114248721642525190905299913609987804254531715335235369419848686187739980277191128056139340406497217282053704354074606954449361928626643715625438249669307147021558617679741982234676494729310636242289568441595283059229327781038382059068925415240316560438811268159972421201695207195869149721158039269029048579462195337755378996018232674943271642549863025332103184544966081300083846571145881645406274133697928260382411532451034096615026876341102104687263660939649271522416040903428282399146553775150903506841670249244503826226495784511635521659613570300575649704033364281056816980992720885057054877117933055645886405893846233016628401649511180652843906132213411884728450600324580271015300176706294528604080172172669790694263028136989376230605600140708477253257299857263321674034447469718726608249886132795823417948448401846551017126253918535462062248085087636230918828633222020038081405685430163095802327707388861072501817819922013735685558986761705810802968551109418326495684203241463471078111637486147866250234261590785146269510799772815559940196984607389077069993749772081674396808372180641654739976442638438031886432798635008697544732547972962700644550522874011799632292120433416141904281084380837602498504039740304694299937982629195525448372344691569871256643489142014731561868744155509792009369570987427715185118284005134075831792493317013817881748659925117299999081309031537987294430886670301502319640279364848191351143185370039211541231710122825606896912498914795811798166637343583668638416502301391451172088112690925856810647759244460713128095672683541479499187521923607891759249324143827835656408930210541340278383487392026458860360677902259683529957457299276300704023418134691886850990333331908178822695337525761414229566186335840220546248309297600805460948985743058171106356795086390540003536004419661495362332775879381384944230269557696950192352940630503851402734718399209003392791197908162001992173102541909934901052037883341501907742575185355306973137897303289089617403390406800895027770935507625128654408808621712618171112542350419230264042678688817371090152453520035844113208269650132178896019768257949598191016501581723928766300229531971102557543563986160428210476062034301752924182939701509737007896133848497324513099136974339835967811750441785834480603058554168897484413224946309687054257130441549061792154474022605536183994932491496972238173618456079386115716048941401409519453700273966272704576196901936601806006867016738025999278166385227961061868129621411052434454521370247446509132711554668277006577134358426671637963806425066278259037291180301170940971397176775788835560830023915644370281282159993565704767536060578844196975371831905513056573432856134274023133307838368818156839253078104220704854211149831895458890035156446935205841655001541405449807816195767543930432597158074445062541790399276471592690559653735486969852402407441155295230041403616868722106937685739007625947631703516244189634777184518891969711379988256555723993675939540514924911256229897668917878150864505064653796514331783829115316048509324522451536996029731143620582060269028358310012620076661516623739943703167944654892367729765156688520907335294590746587660158292296773273865104417375841251583018433199268653073887986295665288199093191581145670090924797086666089010346037879269433763604767282993630429999528953716757171115232750962652764829759995169433517802955403416047707016519243110960270524647812138040533256465073485515669149130898399546722683521804526724319515732021537663039877208569901061967306095239606869177781679448299674756076470575315416229381504687396799305115632070333384356423074405072163543781709081937825978681489659342630518224023149176327425376190333720578091278137712269987016527399161060406404679908368681258744791114418131536778639381950542067132201917200927712781565059605479038354611573992403503974677310928870829456563552831765581118168272390845366748304391521002506434151576565007874344416003894601787936784857713446579139448254690142237336064165038844133918342920986618818026633270640561803857972112069842285540750165345787156625751295536921615293113163762149330505140521733527633962855080857262598537491916744786752741154608641505450201359401912786639985620366652460986078056908368776175776458076417463031725725657872809506236828840870324629704101357659339462079699106648471167401085693683707166081710569209321390830460374745110112648534964758020291672275330536920393080923750977335229940405666613965641683102275245315803893481150682308170482661347201058850600746415163377700113364105452752930219936544009205633817617133315746777919440622419054405825230266409936495766066965586154341099138545138983992253288233246312221365288712321220001340959035063164225730940739540385361269995191933118663998015070338125333141678841688431560403182300851427911407732510887185580408461643991879374897000944374798180843764437865796253993851931606724433765316478500778725087875326540962587222253418534138142119949076467828495606886752708078457991444892268916972109780166401276624926462822857806462396559079481084650358654934319698637887347586509857846774526161748514539827452870729936588587461928486907859245946945008706887285972030621304786357695073659364155243274042857032291817717837251684807097177463448326736161400029796577882886803982452992488645536121135941107510470727807484250488125332036942180766041822841296061838143991094188313315368949915938795496223613081376895581780364704056756691779937729044122613758268998140991711610953247504448821264256409260463759741833670758809398428938508065898169174555729069625843818313347068767793171202561372163749004745864057326384567057080267211162944975056464151201089180201507193248924293195114666479750527106519687650036950839529325897884045403422263445546211114384657921956603841126962821309245982185449112032859039487308678562643069732545661205900093975014786834521530191624338692907695742394107216700621372175457229763620775400379123061712374752215771747960638524047013951193578048982066961254322675276382427636173490256248041836049370546377805530236941630975912874250698751403942220758217076983270683130386886098291591844243754265694416212443181414176853476506496975770266642662159676009453629709111662672717784562946209939607915458073953478037510705871422115460165038523280931115067423618653758103939776516699853061475128050488703888640309025259761281589579605038403265203382647254869256633028706173876209065146909303165061461115163189823639909262570730170451048774312950131085034346800621391379464964401726770833464456567603068418564511272126834915160754465005520177904403840718394930808924541387971306476387815587442037741159645063827619788513548213852208661807374644010474151531341045372560368846876074160108881921901084462554884029091526571305218257661299758640345869073057912119037482590694316648729504691086690470398200781750134192466640318014246739547675159951809017357059196689966788697855841495351811095723330461410519473291752927048050923480676699292304237130737163562950740219515400935930520793795170425672183946025041508397713761605009257469799532695536768507124390465669430059020622661784910789519080255151497474804302056418370282310521814585049151781788809877647875106203937893765655740759774375225264466535657694663575746726648168663517883481373895119510170134516725666050759720546736815315983380876980929256953370811724096893435558773984867913405167058336611536867122287390684383745012974496193029807833036062313502394932063080934922853413684601375629013529592421721605958827056036388051834981403655935977654121688536409829037149554460016168964712525573462040550774309096357964251750291378046854541381672432176216154280840026952212478437024495722110059065114465638366456173529658673395933005622772036727001903089272022327043533438409583144864827791901679928193693036009643539369994556283449887675775552981324824269028658336064929299410368628310754373068867270950436008000461306348824402282699827837167938083306904212520097466317642440471601712515591869630533542416802456107389643456762195436230022672276959156010237023879348226815879209323016280060148510724590047677041491219658743951748171288891435374211598288016674189642705570506333311039856068632137790650379328947674567292808535028404080329334817167915448218174841393025005187666640978486663246499586804709862453905097536395005751456115994660662535629773134332553487727652669552309904567432033614263079752893617792506667571785860590091833320898932879506183437055364642268711158521649411279175067755930509821981438312387939440278562384048288789013367529699452386327816730642378113700058226970473268771739540588152285007521043473648608246410375926221273178422370994300479041210104460102984809645418229523154454722534254630933621390886220046189686150590970439900584276826569156993111334571657512979278899779308738287745349768132704101329622840249860258710129343890305678262936647134756181958484623610647336278848235206945755469820846781665983751151579782019186175607047703173411961807387766156281020004430662277100596227413250212512374992253478947484847418371955018576876701144875780685420447742711631496565649245806354400830375362038293851886052392042594483399385016484432388544446588678327285467662013586176302690751307692521032791000181410341324704463686802492272773141416565108279754188283794632476798777202505164415237974439098012506886180337264824872047552139161719196783704143050800309516241574016918871657218058931327940269268475868075231005297090463874963276898479393118578789816394873154429992762700890413885975197366614596258064971286403857822211638609665109948172112986741370001112557928462947080548751750715048451163781272609350897897171921963796516176082404137881885931738345725225437985295806088961756014739044405915496244439510054760767164393587167435120010679645759771479848901247525307431648867571503260032170658500737752097381040834557634621090196916612252779965716409651078675530547632450286992316565576231171721386454404725607018370733980280450552804154348542079276940978861481840255451918921728403089145907858440329719046517488843259468501441644352529137619813259782330349867227422486405140308817930429373024167064739281026842143893401780377688165108345802249351730015129919460373928282826827517090071261308072701755355782193084777048494888319257539475312922895552250961092098827832150938953840040689768672798404453648840858806539404342035698842360261286134305963386969990271993583879899482902474428498143913028090659321729601897913621396977859819039847671770516209454686978609665443138008828540379885870383585240226247149130220594594197228087376752456870264134454255567180607814995730323133819315033171909950907102788047287343306843386173438877505429952960277743628293008188512806671557721991406253119086235657953037292637262876285021889293261166498008138339226517184268091673259197716004894889287735928056126139868627427759984886700659225053390528641596444089361995127730556513421549250720397693712808193668472968528484194758484251795176249882029335117794700302864046007130759908349189328592588376589776014732175831922940126995754439361905031871295338083678477144055278126731555730450242775400551971560899054518224611985109087043530247080391888613318505288223803739496680166031692081559473157445530490763118408117766998422735642960235141095846441843364419704399317091776968068284821372008211630474992578510923273158537306022698247891063121921332310823614112883783302540569604173968915112771143802113045104712956842722787905268258115246220701890420203573505292308794810933328726139875530017396940652153139949198146635997649735986657824519597721574830698183310863127540366105750043495167563492175568528881204186563489978428651062539928198268532783006762425671010370082521736986735612215651388084068240808355927131574155779451618746137294064638722378018489645804017546761921548922170342577883517904700631477358570046138175460667894651062024482079343390469791310715269315358827879611226398205894541767943357119582274322447257016622052426451795371878523002152029039315303061316161763191545732540718626242655504501065985009798687538663784571702036649434467104452694857943387208434709794384411216208980622568824585222193508829244340056612160341839344821073556380486358066287316757299559799854982724688787918506307362034468747396392375881889850313121654443360961618054459398813879473415018618168095339241495832585980747906350409149925535323391238649759809326994514543365621025319968116469440035597360550578648041293191016417375633980163157827974789433453267284654256963003483227305233806001658515924416936720486303519814344486306794431429550056294234185410221071371551397858392630646006189466271546045694117861567307888594358224574871806065142791617743102804837535050013785478166125614377261113455318339199431707980968859416290915079943026891454255514624782407328506034013690753232386185231770992101083354053688059731451317578462129996694152658750253782170503813162493946162646352201325156665068811447464029157505485149055977969446176217108454204958471636612096969459213062397654378358104869424172992328913600568090616581444355381148510904943294840323861972176718171539436717561507766491256713959262026894815553787899764603719700877741302089604009417038204211485814912665707161367315877742376046784690896550719138240941055315414342722667188728383502361617304425356894737013390509170432621324693156782760046936982397334788937318726727811115921630470530842629465178576081363041986180826234484108472393886009187535470987570373172459289495775338025395647535835864050317657795581366126105936005084614823079373582727201014779440114784585286637989995007404028387329762855659589195540777046961263525604139165321104708355501841467782669921547288422690549429764503219179787299389325626333446631644465412233052513877013717746332394922498495187115924704753280935408811699103156559377709705621402537698730043304748024393233301292203993780009405645455439008782805429081362967980345793885186806932564722170894543011552038679892329072620915497749847477215442286752900062327269871709465662579032790939274888213219967222937942372950823855097668847960700842242865261167329061686430780094652656995963671802844227330151141675696722920434176097226030951245218519814113590623117815235080209051304498286734066563893187455916243606232734198090649827551469939357034020299226844461158868131153078938765729986447312601951874522081725934297253830690728793818550746954714343673311323885513010558672626530792717778269559481009251602505429395593076328380095507425343923752623063502266598156054731719499276181264544150756216400562042715401099236477769958770323692874247294719251841783071951755557611144042323853480023022542203463039497573813501179259070220367154891917061085992375117446819452902965081896266193713284101636147312551645536272268723705920892606944781560314132712282907014882083425509195090643185601787582632717190843683690488973286373428682927466647013228890521369374101364938444452501888170347708469443155288530166409851737666238075346566747303616851558031748393493823108880980436195616291818018054865189483701007363112262818678839827457316953026582365381622564567305353296312579187308198770105518197274845763319106619265871096500336857852446307845680240359129331686694452531518802680561150915467763347092590798584851032817852346900117010027068334685746224576861686529469672967825069766530612262919176034847190495973524287655389371309944592698718252887400571126544418479374788611236729994970051012116470817516329067818406200827561603119754603696531710893131875352088025726070982735909059695234163390181777414082883396186713358843976278609104533612905137689534268174530068400459706578539516623755736023643229880568323190144682392634281824271640103695624590692615732102564331488602611560595479103119719392097965356251300361610644403456094561097658585662478725405803599667314239990986598854342396636512276838843639767063033500663850214212897873467714266500293183010305264910491110811096024432360108824952525954761349464126566711415416689663984769509020061461126427689189686265118127564540676585658058316091499558221613858510126657618929183107395005800026009989314901156667687159427642171186589145997862333980945539594111167532467575621084363025542939601373450469604260453345415038108945651379917199417997060899079550571031960454936723473929457320364950289010125076547866687063253376240048214554817217237389417590225430303714994833018020601037443812034984489164470012027761418357190342643750448924372247645245075798461951179104424775061183086457774305608532449301693130547655862374933039182824725718312382905770227782749592431076633636139334753921538195074544725482630855187688025159754394028939470801223031214855461988367348310324966766116726761351723288870868940710147866964519067202915213963922777089652575907479950973239449922790170430806170918734955649671943833231315421989925743078880220725944295330823651579857539325081566825719452972115664129873437662441097121208539292576729134265236433569356654915623971561949845477991890811111487851502960251584157264552976013418977213720413863470313370859822506720231125109563520261796718497108657503745977107659425642936832463460145312248369759872550537232890063959959852666891895541186255757144012488764548961266812938485719903326829211923589892279532635973393387483829814886424520876204250280240110111396598580206310216145978248055234415144681929428970232673966644115988484143014368368843043137487757667421014608410061357739977822966942409766216237361088731017103040637494639653207224726993039467541010823749737487946289177285859331250631361171228246189980963924462966347612505959411224045621923633572547029999633416063894251267933015721913477334715279913243500684333400658085730771835508853245875351252951932482092166248597528057541830269627181142906676545960283152212207828880707127529212365260784089930148866360521667724472399387977428410739558068257304191527430546792390737514924449256267877995705392198098293499936863620371626922817220978778403792527211577313147463914883957179385209909774592511543219390906561104019413742010117769781503127845166072325336458893668116669535850748068171492444638962651555289042949940658524687869343418945939155562037385320091303888922815671913826376618703781199581171104293435024964033436475139448147851407843452526889626108118418831266580407564119588105455399291003561883702031972417112958455694377383480173350873035386769114253979879129893240806799841476632253956346403038021858134912600808408903817383017414277278429362827871929146081036282694342631017660172676319617884950699250737073186918347700683992196885546680962942668010560247077165831198601278084905190266212801143292019252623295462809538076311586850575061866788709847327336200166769524161085118610732208805441294763261170013706690377323549456447398123336037069403164721143389454333425877372164805955744533794560936616979110002773155460254816566220410534161197778079375042466462517732494721270307838343405703325707339132992147641800510689870784856668804018743198001344478208839965125479722811809796350206855424158435533353817029044878550553981722701615931024412395676877181553238548932641428939200115954628287865116958454295664436589901092107464322536855185703261943119040277195457808898426292672217984960535874235819542763763628903254418515916888914100490307621059802239983804589833658824410276362892360270791388329738322049776763269302195840415552103696723358345227125549875646003815658256350196035653051443040192569402172673282373915763943369597731452817692033594359436813026999127003819125839974325540593822788846128456239637503645307403969943195179003525855068751893305574530631084572987533771636292326004883048399692892197923151710072084155400541980477033026672607353655928456929260796468368874265808838458227178998272000899784674455535244248743863858606951214331782683905752313058810105021241235172999992376360932449422653235367428317796179148939766335770028695998906978750707258693828838137354591300375434403042515833257210843521845473032576388641958392371471615924362461719811446212902072021336447223478386087600147164105394578411732376630242773328495125339255124761493250291959289039676515557789705037988854900668267640613760205594562338141291825785957935951762053612721258373686974521814242065237764890907328519351567518648858971658989032932769372148230646093120572239325983063094208517162015228318668545015903249814530296369086367255772759834958722730118600517505918457906766311723904908937240810709577103137772607174529950713638366954392345079671840483125018742824189384842738858065775556694457107344489754872412651301249907023207019522281371557911729060113857108114561481316032463698649062126335077097671785019157845952571189105183527658518399086363784651164906567861424397769662239764259761999077915142591737283117992329664715957555154653569647579090420080680170985672430149734039366268973794914874420527658668032894536167964430090360527529927052035285442698891148865618024293017856458399414112637505256884530961783173832295039058479642583938474448001975840048448813645907617978034433923645233505613274983072275918357699078064928947594227019927476069872616065491910553157106456613127710781528905800628694863963414761641725575378354954471844033749547766840329176045842666535297260154771591612261930132693868765083055782085512698963058110285644751969664360152020122664141673598836935844081979108735311724669628801611180214290894760671802881226875082938632266479712102098572696529935159163856087470333156384351095523030570682144093007156737631456643091538767326303692685326433967334616373525439046183115040962461106755332834325091114929703794071422588373317645142404046885476452423514740477458613135003451126992221970792254359150276718527504536022969344568918414224748238137189726941426233627812564049992202677329382160789951080545347100960131383666167158008515001470354933923272254302761342456654526906971960359135441474059601961947658668521627035868239947755488770643419408081101083310072084552721499076371676347214164868600725292543182068767541915524274564180624983515703872253557393339694671096110670734404735500545806478675118635757666264666670130380719126520729977471102944952734997243283979988649911588675712122642524826357057028380094896821772706235383588993233922564377355557900526789602025250033576190169150049752078858353095829044450561576608930947940108544645552701356225905221504510620523141586576986423291582426021383950494463212634630881792146800583603951771969913720471773762463810985736535379816649252690097643805715192817568192247116541902399674147335928879135563469266000699082075185022872945505029658891809502130498393535113787428272274300971997385692544629085381488146292178844154774419100955390745432692600795155878178849433950217665904044444865083560401882041904321903138402496264259990126746935382757104092046543703430656042313667026419200632783136203632725390279363911318875015690749702287051609735691309361153291141555967865588252301242524792996972729043922998798514764768072987625372197829777031331511278599966479669028942204380140931822839492305289796203332842359831473927722079112880089237622899331618025384869051524335644831578797174137493038139309598964409952852947497673334572764975296787583312172387257812329345930174832035547357806203415577679357381158770474747684377157727825199364535710229461667390791256632048438274084402194080162412843072849043471715067651252007396197036341362587405528238570441514917109534892686089820470094464595195455846935692618071104635436264072794295389757080479405277048355058312097066437122794360137166710490744556020239869698041530962772616012698669705184484396126816745626059346909455203371281155649746593223455980807298054016011914506305489276901633455966157219889377454294416745717257315448072891271473815792420458827223399291658116374500609748483061763005621106551990972029436229072592466239137142009686149273203545902486420248730604735176016576280894305896120322445219989562876703519572573167957930997079686940483017358177885749597115132171591280103838034089838661343374077757833226579437499822392351441082530421938102834435396743904364960938958952599874408094580244987044579308918747893376512365259265363849043313495275278469071419274878563778362270487693620370970249694998618917859486175516442282316042435945376785611834873957491048658474437008379869284693098281353630277362630004222717084947385106836770098428190101128523676951029392127242216291378840252819125602771826198182544975351218055196704869605114517318070138513661089517484475514177188628176491253693089017359477769228254265309178139511465928550911278517140921984010631799190097497768634949706130357430229608237651250285167009276545211290111978959970772209746879833187530978046869045595205737853363343085606599622078211872182257493560216227873164927293065614658901686731524668593009360087544501113882745139788564968747469762585495940405921497491596173221026564620008306638438046382467631011638525928180616879808147570306631697844539178286102892623637172922488955025894727996358900897551208125833754151887630349144923501500988124230668892322146453844521000945269952268871376072413644748448832293158373371718597474455770328330780153128140692701834357195006565424862654017786358471642603829643620401371768229588181592504827854222765377476593796206611190199301039366791408967983056929102029408641362257846676885597841031813891360396177724931833690341961703022587728450839243093584995205573150895173717100515934338923936358145360909214318089420212705413451622214687794166334751710304330732288373968548648631944357197502456547476744568909835563242975531590256720783291924358072329327288615303854251467053768396738589791466762422391095790063240718227721934098929632324793436772206261294176600884789194164791856251170809359828091705230312118233734508333957334749781673029405752118058234198719691497362247908644336219182743174128056183051276392288509808833946473697588618747876671628737215556441918604571721315465847132135043610202537849201181050503194429806840755477233743766404886412981276411208352634683452196298068227694368472647589474548134095994844050803923260593529961557764907028615278913925129388044853523292313831307661767343463443658842883226438990735869966177364453371985097851832907091292963230891626358206262387598908326670333960948237875016351905860456208052080276668623771790637074645804723946135129251975691596355683894407979031926366262418993552716083642637006808365435748931086397184588691189434085516391473161309076063439430006698931725107021341458306817284745055280519165182396763372033489860256019344107043507802811782702402390531224342961672433852920433708070676594214851489870140961743709652554034866612194604161081948362113553511421288514128634294989254270542876373227614254630055129521572263274219335192247139437463696952170984009599137252920338171680209379843611198851350363656195112609093235082436431371404895047219358764278045559791897352602048344669587660841000476880543771456938370317780190644913846851091407515989348994195797521025772123889216122437050148662452981148172215865300613399928949201785538149772195345580866935304034621119034076831465280699792783020327666466211631190147795102541637266957286302938468183232281001725043481824498043764951577795881354533435076970787626452112854583647545394514016367439321478349366185860411225716573397571282889864751966820532746568580235031494817681268384347568444332267413690674578932784860704709575558981048265190644507886060731504416764833217121993994558454314487157748956060303694072443750639187195734480418634441925810634938462682932067397530806114204773527071487933792300606139318730688391873441037600288940859138258097386190991050448588527260083613204835818818352278229183428775224221527680705429751060978905986926747637486656589265325949182459378369407135269091774071800161877299412168001211597096194473209974229889441141767944942578480485679822299667592190264225444124865802417793106574498144483157179288728808980628359821728690276290780165563093255802221624289591471922236766222032875155834783383055783742875138680136602228427395849755130627490229043281756111719525155425914310494443916942112004813948006873414976256053971807344736413478944903858716484131558804997732479134512408257666855243457364497013410987417913837604634170522459326202326667733706525921699406791159857137000722347462542452401897263960301609503127885521355554361519274991092165348317213562650738562389492267917567981624262412786157197080873399894672214341019284184362360478264202530902194951010426129919928561104511205723416525268204134555253056157940609936140950461721884670972867917806618830721680962301525650928294905140435304128495091847434476960192939970262582766147658009659317171786911596856940538599904186301134337841262748755433352772791031614953952745582504373471358352513894407301285427359303899873738207279727610863444744631134671522636797466157276809141352781201122736832942991873745613654649506925727567414941842419383234718083095906733653684096250891348491044578731689707897064956365950278131462471997805695956505684908776303970984490703641678348821286839940412456091945118190902573356425834449165686027637958493091064196129819861894058960051329871761080121914697058403668792495460385324936463964017253749976143234926912696100037715719215052919543572281894442014660456778789867898775730656896285907449957847700412371604076149025116669861641916726721677212963656133448357974555758395699570500650531194787406480718481642757718092615413639340202794736586615288433100220454135187272307260545133198008223150283492203995681169154150559554780232606827841840507601490695396367077137176634043217201773337267005081381454790398547472399802590542102432267864014115061008054468479511466504742636558642010515210676268360855306679649926386797417169668605507006384834565037796576454496389747480373905028223777364837525731113602038465677391592351445562554375481960977260384403777276715662564206787325605431273643375914054487113701158847174494705738178679042102993367514550324020816826642344449975885229848361455138512575351739929526716987263110003658418145136367297969705900206754252443705379556050559451019145522317414733445699778854643474347433035196868664124936850716188279997870347349139131706094802638521421826674344245415552921316790675177724388720911290735517382651900187200615612787671991633027448961399907878905669528095179716310947213461331295884539816974426778884927015505719125374555714268202777862918077530867114375419954192276071944921097600413164104746580767564363264537320968055335569668797509518987700113225748832413493222589617929573399156427888275407648542392203612807077750749139227348823624080860047499371366127736018116105319892144163145460993245270728253137687361094502883966341337519920269556740514977399593130079244402701369753615962852436577400341815549420885642398152610624935604306575430231583071272926885316364996533451092060980805061108244555494010827480199676974467168476070234145079977435207746033781996958268163031208560054571644787735754880856625076685335700883571938859324753833686835212167916101833371241931316880854830464321005739180360098634012138824549097532828276836416823297683923530379764074639756980707979593148006235345817618332795630194713504217231829821785656044141672597524207398893512032492185908415642204807327916797715592663699815788610569334649714537255746503273113594500967776382684760080354705993812461089837752068972861958755320839052335707670827448022396574831146925431279948343525424735861203277763886324170345539241233004346706740256021990461907636508974436033705216146686440572669030605182134572988010427197626892139261238391579160041561579420862138393247890831770053345204825430484868990739320787374424828488447116715903443401683915102571492991158306532713496199444375588479416993733295046721331710254426478342419143082030061705627554042418312500329195380598239450997386508869087726628958753860768265077103749788412259414043794004549926724689880331176068300150366585572583242611758358517445875035970948749532734315835438668550848903095082404444658940930588069524382968535235505718203423552372951021793707181865617851765223620455213567730923059294584427283849481576734027409210220321339553404194819047975785757803725525611203672361726776946849004392917837760619904274290630503256896267643875751900819455872836615339375699407079871599927516344653694984502685916607410752636376543620420887920792957024451473166356484020368306312946723689503918238210042443375961152680577455784002231692149801156142945444062570722571063207478585171378591153575899957203319391045060054758956840593913461819897229149365649776018280748883149526312883317631364933110121333707188503510505870167254572554247797257347337941783315897707537209597098872154380950464453489219179748750409439212440395354327560835308045982908637553023949020592731872535160696763167623112071749202349855585396040085430061024668998971289862464357365187259157958726510690685188717987554308339263634576100151888439416933764158238344008832939886646357390612851437794955118570450111965548819816709770775616809620881482031840471530243214568644790691377263917175810391320875445632267924948153833296216284571520912911000671251951519506780545319151659853646933238765555810935527628540570192803098731625688542269378019326310418216537328902547240612514660535650063882286257441487884249558279318657634570803872433926839835699638691952629790350037314768645600031787608535707443489575591828673182510916712364435165891524151172711673171641455446381389919532151480118657535850265931277849482833800148881781454227722631829799253736175692440591303546067836918383243180792053049949639021423477891467305846557650374807713803794144434093671499879748875931641267905036841031273761458963584974554846472251138581732291460078119626775855213729445804219664234575438009278900366972350819202322274334829197347017493446403960290628324330024416927272774128656576234898160115128602954978505085149831661166461433845224992063323696283177781916183938223649750726804631469134241162181687966265936395578911240881951841897296735123323954195391748835304720230178681479650816868454354451494064118321328895478199774677572946794715903976922737506551644764606972721976619895048816957477574180898981807896648980300420870510427037450372552843693482188634468555629402219060270724249572384643602749835923550457015910916659556160389798946716065026629466512685595895740108642305675561917619172838446011345555259945661985905569184786437402045925065849461476503804666389468535185418524461631282657456583303795080768325370982185355757101063188038208681936025622328081502286738402777291211207360714487323379345709770905916637521221923847999076213152594028385782311810124834821069663575731715325438767678609348942295365922821623776758455229304605029352265739905553647167925443105925272704641364872450196643437262554458006508711561582287089555846262627326007869403274116540278745514358145653040054301612184354113591969251827655336963771503211919225523474277708386100243293970766440415953428226900884522698628376245034308025857917949539291335005691421975056417997057486490188841013630309641032544158932970755961559951517866086092546480384462656543178444815484901440649833786828218289017930490793945516293475622886322838370311420142595578368308311052304672406031434550349281408276573591867953651945102818312160791714085847719029154424422545009194990595053436368968984085049872173484703538205179816962945314282147615922245165746196966309076459326230710020217066670746132061474883052859045116068968990239870638502304139923392779049339384658138211955306667502321198815686280818259841255880524343198584383091160999740668548557164340172574033613230095468712185679153193425165670122235263950429629154741239976687887152303632464011999436608892071370461649156488054597668162045131568521657866034563075339973803408531592064307531006784690268322810041914389917153398963728385715591252953287940496699050176311630967991261879420662243399343448017710083298513292404499226925698065548312663324966255011463845994134303922436195761518894736930916455479015355816326491739306420963086638571168037338976641574828269092081985140599377258046864573638894252920013573242772263639905787974901346192118865068084020486773452859491297522610220323996691713667250276341862413374781906972494438531859796340435596118908999772492069888939871631436013720306298866013830997955233933770027838968161805460887619877366130206802559769779734036106750650860550431084302588376168757025570612125555582460791805079938208936501262689858733801741626388358328829212017445915136331219312135024165409977539623025449582126067498340277280211114728777182764866415956842287647149169544498177339727312577570143683605454760521216860530201218333307243324325046982293949912117912319265297158361636967101438678868761627578252331235219801805274764637748757750097097472521774801208034065842417883265794187733314613509339431681713390818211774784244247827315684008056515038709851238207501154381951487304132764146554799079515942874097534018512390798330950866640183307635328866049167606734492486571558533961267350528105952417419549339223945975529990427785932596946657258583155210850757045304392151603183577973108826613536934658671533236305393884114622865832450644704281910900904864193370642459671674116806706604208943966181923367983046359939486792375371837127781658019541857675926331828587817053291776523393335759989098156459684000658547632673318879912671351830664910856200711403012266547943802779093160809340916324540151839197461340594453145170005805329974016028430538526119109585439577834001416288757685811239316894210427905444868596662400543001302351395957542168738881647530694799223118216444344904546716507160687875525223232242125459056713446823724155052411897715183848401000231887454543553762685020942080803284799650285969023283182223306274514180632594418389491631212233053669855762833949081793809558212331619526218903695207793215248201998569437635377790732358266025897323821179255842721817789190449400014811207186842314326111187800660714473645465573408237785761652789591691799451128046515333401339416505102726437963642883143311618582098344398175568479597619940857264198648657411439729098687171212988324631078476258987257738655494093230890992476413221676329433523611386302426764882974948772953538038069488955734423754799632797964457290490325800345534298796303266540951390528969410627339354165788906831781605929861935859043802436634609045630271181192386592932914600408543354043459264580410875817525594213745745516386294713495823125902871812186089742654766796243054156882837081342069459026829741689254340946296488150124736405948425110793601531114886033094709625712508129212114969780495233440877458130454183493040061461349469088917544417592286530855545166018854015641947570313821970529693113158280342197974834718276500016506579544486262978383072767794976788623951998396797499218047423124375745169505792671227948645214886521525100053407218807331500872467437514227232986535630423955157786968540139585928913669604648280761099842465934537713071835271692477592487778563222806311605569488551842109988336070971373082034668461201192079362351611987708954106554907297851511800590519886293783374143594505860579559354568289574682635189309541317873638236181039226004156302853147953195222726112340088421036354619685495213533972376689063571057105152128777121576826207744538221507752721436155466101312585204914165877626329333318909457677627629349217704106183940280302983173409799331669441724823533891025401942044389709712527138156998500280633189172020980564926781276451790928577530245339712845502062944652685086043716158150425700960995862469215933634467754152062840739863610984877457513662623522210475993042450352348077312411647310526341030824114539124202882994051426785738005423617841904744191743724602004474333019172332497117906900819702285724606713558627427422630182740773537948203298161833133904554440298134683647613324541923947298053220717279224025402358928411478268271226540635922588615836004351312392160274540249425472393498285343199823516747461794418084993217745005699439820577938921421518392721975596833585150037320714006525585921667316792206097821200618074152424972449143269236631678042080699392967779932216055450846388228882649749325074612864597558561401222159735668169990680222807910807355667059091460445927451039574897554072449152460143154741028255458777911918771023177303678917860212147846011339664883875427249874035462323685227096585755766513242589137385752079170995124325481223453418787589786688027917029855999707411974857436735227994281375450343608363919104021333130135607120484916349132056183657076616787755819594847472679207556302789936804867352578667773310131708762514247047808207449406438968974859610345885570937344851228526331461265782258823042123662714809882748329859486256901071419761147905040700808832414373025362477304009126961897985256435972519545195199749999233017296625958020389455130677922610961388945889052505804670566608558871656013158110483156631303578883663885526979941764788202433825684274830863519837067894208489225582178081437297467846022451623713876344098168466982879587752206540932539897162543332656193100739345640495416221604260829249585535479202753213800992964894511685550149584533454007643362620983270654444834913285853905495193489351032136365116938780876755677109469000731948006209013038037508958230680825858330594163813761552748098395167904571638718075484575549782623339551693549909615912168963899626746845567984232443752611581633761050108604228984632621443321214815873211104965852332394226016957354372255789544365819701852509235910039846376822562055955596962199927706568364863264467492210009092341438169356692134028017870682918233806834486185449568822599724427698895639018057937886681665553788245768068977298676325080649391214926810611653414094140106515212891068156831334448261814239844667167292166420340752429431598118778996702559572684502051402089093890631022745878191731192694185320439288142216830107977288886900208398398037596036858935874262158612657482217717274968276913883264026841473134366289808570444719129727089393070632226445745231949394593750269759747939835984530747777351616026015646021799511195157087216481739336421341328760623310453366008781671233693002513747509813672668518883642612302972952602200590772024773591565309390212654166434651295271586688686143574709616997207559277046354614338813883797166823271763334472578412305488342387648711281843886568684361971760746503902353830879854405480134623219743645691605771394243774600917684857081821836328649048677483692603899451072613809491736192106115225728518167568536956534554452928422274047521949611811980051856733686785529818456327056296889952321058403086424444315227495033425539396082960219125448316271930469134343990349314822949206005230533657398838679713120871275647046475106608575809849073021112801044678705961653261624863263960965705073163935446232530849639034342546158404678495863169513898110228307756921887392347988542813750324741205634092895506385535740709687600398085050912173710228477594378448685588601176863575324102135277883176596627550143720270077062005871216306815490253242692738467958955099212936041019235706047411494754902616197217094514717211795466536972262099979499718291538344970256960140210139325099847106689223547221331805654633570596190823151358301793523680564834276532524356306975723452358035309551005066997473914839527891722079553037432478197010066575154677650571293071841378728048682346625903153572726939417580190893968320626101634267291047944256583309105721771473561998079154886165690875512546629736217762077740484530098810914152283118594413663138886796887990844889770328415333425231880401331388505095745338465468387976037783912227656224978032415459220036531901048534625683700896214222104629053953652071393050353759667869522681786828606695497608673468877647510270510050050973442250066606325903710809512190760883501230219399203043460992915082886390332242608969815404109285488456355497895893474034218383944873794374861985454429657719316039238154022208243035850708071418236339353735889050660688777688095723949923111412609666673598638247667678965846039067065439405284886825023674813741751047016771870579038424089776545895847780368328887902798170691230445034338518620777578643416648245702788607939027293904778158832384008171745023841546544199930268347304627194556636618314803459262273968395237150697555778906738715975996319256139319607704903713317281026095599560535503571088012553328869535369219714136066423835991101430153130123023974925479537998235444708564977237877294897343760740310717409737556963625981641635224643125968934130784865557452478915615983575553790532088716296180416195803750746149967783925121552091646529902721163280349660595922293719649648797308260044261480636851175658099241086626308040862340975877078571448733593370144976323272230277480232183816530595165024157406607359961963925202165570614586027397312875725019391110637336291197541759178929259956710149462603806847535630848046886167585671050848148355608250709628814781856721700093727203786999970969074961027708115224959510442908532048343783249176773264726614934033077970590049221113596264493972531266541997070996466823213688941290558280760839019311080411820887361697004334367134955536648884654743465006671712073406227431892890688603157581288142785820269145179149212430998054732347304366604581587417224907206287633154975264596195295473553634028150698845599106152249370759780941014581081660414012134246807661571289001925726724215941455809127161995694859533229589751246530642880083748614109382956161444355995810883514241529077293114530096659034122020699139813564020614488682476284378056408025139669964556039983575603866768913972902019395788530036530221380333248915084821130199433944431230883625643255222725124808985919714746542807270141009536790935338442926477921752322923819049690279762303195828199456267404817744667243964277453477501120565198265689990793880798248276399727711236776431031380342045623784535017841948065073384418345681085185660179063916663055788993035840954342472884260753992481657458656995337953213977552323080757435606249298059025778343977470000088192798442962642403934798952158158192858534537698573777630248841125720002432600757135119877859251351525162756752305535530395131222091540294796754864631271771228364465338029144192829789989313201067995158588860035554884366534524956347740547358513671828310279884850311895060697197168065155957086340960057003650422943507633943516823442493208094308648736515765072130202685081656147817094705866119014283295318756860481740025934617434380883250364123051530311713951752646688658017306408029994622831386649457556643851848815719712995285279940000546590782888891471526014000342079750667075865227014482322734899955020661567687315134169994344618767886433838921359266799486392889741773310308358059346192137578527310139522214501825308464040339242737598058584641339012351877581304103673039994359404657766098170147705627340747363662709806502444314868562513725677663071565813740042174333219181448904840898636887123161268755323643421782836858323115869110344533128887723079602085577151800420638890590853812657227451496400201989047997239638144100975245169063200267366735153170347516758338208158030855843953169115086957750034224486468259894783743864316392712114896635040213787418303203122644418849392036205141746454915526191672079103100687312873696967198894594521654309871287363062332068053983366094485772170665609549464130792006775068898491563777772676943235440957154637211904446712894132064705369305994655578026851821254507585663870059555865767454223515713673948961616642631133214975410505016673862291165337416550646811343751305800844608443412148181392136536315522885151112745984421212102556834311477065229109192077218819246237797550014089605113640158517836394675071338015903555706887533423838166940274820446181938823050346317503332069135004152951598848649913107592429633620580320225501766669745688893898388485561911539116357491228982577247973183344361207472097771983606210526820394380062941362015379217535578592406143312530457870795116529042452483323827724066090680015183487483270595378391339711443040120360922995367886924873780510409848826774328900116813705963395733797099487133266094638763584789553155151578552341922912212278562344925590233879408100241048183036576298867048245519783348670015633762088849341667284495353639220573219088770778916955765956266434626735786155793512824152205633812718072330267217677387841564301550315981056115438611594570538739977985028240578991338180152888599263059333272779422795063044390237437255374292570276627588514397392680111071381310961048100192330859190347773466942557542073474798842924943386126932367584970956496703179261618111627382309893624238166886572667624947220298502928226010173182657301983447004685672506749117097423338259011391138448493870013853541949395606884615134343379227752897210533903910018893746953198632552451746443638056769850009815288794891427333168139984697665785278855245380120155690152032786374033659712937341402173470356214368717672803365944817210458004817783121108317279739203458998867409475289711813614204610529733941335218743744301748471829696160753440331981345284434180347915614236015970361265128666812161396424200259701188819302422752656168471945799013686226410662366945871087625937227244194675809092889807364571765175461652128947634519380095461899542246858450764013937912726364399178269990891391083164879075896508151443019754563247991439732053761941126530614159091483196970911908859809373219122527052757938336054763483837657718694784690539634677833272775994153252264411225833398231961996920557107037052461271623492477847370644894867562939040603528286534063720827106962564343687478132030256458520869695764354678380058021716996830646312090402844209314533432311418411837699377521936057356568473538123616659670111759988035331039969343885694563830689053178883170313596866766844429845414736375437555966583597257930581458496694472307523725130801964889065980769156165985835492766762586662024460217206419360466916302040469175997337413962164471246333642081056344402367356526799004123667070658651434901252492199363384785434349252567526557653121835213379433499390993713069596899989108090944698883698991044764474565575171514469258331447560233078340827605909924297232455924782065921841882861349877151135000385181042924845352856019087235432599581930127998903380928737915593062247294647601420160072238898130824938983292679011150993279984922252233500396970598533547182876240745563762332179047150592834737931157459046383450752220798794050968968190148965292379937689307224348600583033134445279755215510600855266369524207704884229907633879753358449466428527460981569305323211587989663030670916888989831130077341292047678428962021881420175177773198333519373106170160377357435407760416873999985306679768899290832124196470013438418710582969443550839817845168393350055359419415142652958692815766679454295253573855355559070391928980887539566805148482842153626217366079336045335921342086416838153299974454909061266831631842401868935721777322857303713968279747653263939750673599750913767812507742535802390115871456909088998425740822501939491238797658083687803323188912718069741287963888528690924082542859113872894011681589620831466140513264304422121349172231286336463604868500969041339940703415910983425739203857650297642188300736965142366915025591831556672858163964184377061065409682660995106515959192001887897215507330257114284222868991302092064360245577703164863486127192408419543262005312017495299195039999338214305500219262542358097613246789114597918363590892628858943518512881500645322560364580029765753964185524498961923587953056891822384915195247243750511344379304570735095228485924420308243835289961779505077440515409191636623668806035117971195477984119204725129350647768950512588645022389571046459017082389683640830351024869803601412118235761145800419193855570350392769460760708380006278008613439651568681011713705551008628462120134945876026397046733128526947032680700217305308861028171709313344052905595861956075438722688847471427267250743662865823345354753851541349087215834312845661742857640464977957196063915377858925814637430989807068500095436451110944086529794483217674339627578247488034818779336916437624185142104939267976381278771574131236460520143449910403377504794996305504829048242118725256266182393424363121756421040896209913358393178606428209189848106160401570207676313314707516320276831513868307662309871458881814137589223906478256579088805504002466157016645766871397929463735789718321043377927713468199133241315079324471327408510098778080411238676596495313353237274365088478902835767548142748564478923405552653634701465183114800578322050703966618887945791328884328301464702443677643185263863799521822775913666396903049739701891108142704912210532508310668465340509906095268685227805151203275086545652738832867231919591527144287377620500714638999683940116957222682995875163696379634542704103466884294571821237963430389355167085382863740592983104972616936960135208655378621217675660215050022733068892130002878259047729488402214583240717931159467299934687416554059358711849705486920832535143718499059895374464230851581660706889826397675200599758471167716533132785841608935886789131620438268921883525808868517159317262944394966311355888775609462610850933734236167652048123475673414844747420405443448590113032099167255427273196912420534541298836273516082804651504764757377743900570734845927670160880407645824903034873822896791541706508611334729846736832696163214767787442012399019821480153036879696328472648515589121433693223901667595440572863468565460893440940857122667269717976398609566031415672734721340747777312915828352790084367841235143473227148244731199254707480241913984935007726363548902392311471372236228273088497030516503618446708899253944097842593077549453930350178425603234073933233029044163360656697260344090029806468337024498949772037941121382657978987954364844486049386943316751856724920516261243749861135086437600288650964443491521449192062986122450086576087656030694633589947837069638800242820493753796400870167945340121022461251123621612275047804199408566016841033680202573923752269377685335393904682699089705996579550397708248181721651910298023663190380497288829098947562188828440753108211566588283551925337742281161724838701559320400843371425940300593562345967750323736909034559256548967017722671442837204921964957631049826167525146799377273309700769980860855092872615159600427960558671257506946253731053014277401845774174649139371131559266880425143258359509590246629779341857761208330347718133477592269197831263999502659539664381199973016523730676423183878816721186429887649159212651591467783928183741694853754311759415613139299337481233563564877020601011531336732010164273075723052726741229236697005456009616228372744320893188899804388362685438493894151798901002922843481924587271527248612117983265136194647463299536832546075431858430468593794112358429518507979356036493182965843719969989201703335599149770535156050075921984441696946132122817175506435362513665694558375766117525108040355540111585574684021946094921090071339620737740018180344959190898690018322646378131456550443276908714332105705899509365751689648809375424775676973686018443353923012111734191838529267127422387487008130694314089718323501243570849151595103035861581974189245750139344416727014284778851049202941357162903608621097193384104343817534161602398418682543197044514187385327686147909997585911793494951516462381111856857542028536409952406850343232786741292887786860397049798307122264814290729980651186407226198757507016534952374281008998906604137128539543286408226918147555533025337358797868668960824105918251940574844295751670519220819766545004872631765419629341377259362942959467513044122560150669819628059556092456931473177167325714041707966354266251197133185870644667057036113206691202571106492670423189211670314794824648111549047823286748402912807333656161350100881821297188371149148573870769818945051442893444175340700693811696195422971279695986360826086559699109117432452160085060345956547953423036943947007710023874664779606016315068368619170528961446475894248165299033061852553119896582252917211881293881704921039591020580894184822343464156179247788228500569116407997438420410838984413403342166339912738345978879735086300028786028881508212358066050115785545400581726193222646514721026120432581462612721041463554655888900844764034692369304960265126984060126080170707473322601512098462681916725063768373257938893490709168414501110874476294917971192425732053719113955275069187946825249722711077136392218358686178376078685921398644824606641940059981236097244850136770889380267869059562445680937207826642419294610238975319160935112631480772889811889080015041936088638381667924638134674938385936975413947934441153167462406921386564003259733240226322738469302808965187725442136016892007901098947250323006368718569503746005725621696957731995781716441802597465778594881063909873570461069486267611954347868961916204809440108136158752263190006082127180752441667941252384069147436074231220294159490462285490339160473752481828257747603530064708097128796438292465263908528254634814152689120535423661577325275733501196188932604570742527394047640053116460131070777055886910376612906226017132506434140126293837381100959815478255010398009066742806551707847041465080658367271474627239910882311486079034527893816742270081212450048648949117104912896939183446834859044582601145951572584009005365408518392441138501300471812556412865060236503190982883975594523806260828112265067982929724503517723128176299899473873719982629310907214868092610624952083261484095834667754088115148766664254186345002190084730114757646202681626966965548507411632177878029770245629331416365403273088531974390092802710632167007736962061346864749700859290472562496116827398652818864846180197615766237375489817038089646452363756201596755699501970859529864558887087158013887061651339351283840599463508867380437419430490725901698072784672707264610877533584749503016469317646627501965236545633909851733694812928395842092601276575679387801785604670716486113289580228086009361549067993121842124982721172054370740528142259226538207822908323653272710559378292422332351889078519965856929289986749864713134346187004301943186593886972862104812691786528519850944347039749842369915702602754207301605143640833910525752797706551254705646341527510886815609276276581000790743808973387242102127308305316783348779453120540531101652256462361779788635627085922589909357615316517469923985315126267157894764343050906598963459847815361740819232169133646682886195290935663276716655578170171558295589542503892449848937575422865577414650803892676893628337462630811683957155348328187662460223002139679004649661734101843262942739953477627165747306290913051368220410955073688641910274157703603154712980715691892380127442408823631385835028071442988200404954819024195753761752122833903617382758797895545836576771846678767530332404389872077693085285162235623550589640957872727678032780930938866397915615959448175277777078427042878536894685403263217945318660178558776930951879946062724377740180319886138633391081755158029599875428196315365263036807652785205675268104528190243982248796188205171786249859069424285772446526122466049808920394593777357357920165390935935815755390447577918207592734786720992793997815265303301547724262584764711344825312581213287906895340887026940322279362754937394664064912167213340750114324275541508297771374129963366893884342489314916555787349703783058221997731080150327989351694818256530694835745054732134313187833047609012669087977259649073725760836454631549703702801614336744878773975466607839437222993625914991406981702714194402172990184268101358541041949283657170079199944507229049951916875135452530108681296204991404123650790258283632639677292877660919104553522089960632408228877871983558805944406689652751643799496175268708249344765549113988178515881905413769274852167934327396200699808590929334540998597370720023548138490549941891969393694768082858559038864562312800162097315249279952204040596647080277460154264735051182667024915560876028549788085138647980915006040039853784828037279551906505779349636809680704610500344299576148781525218646395236002714037381243170208946402019267965494145689689892090369754569779568749434471636168467949205862848743286062721407136222373711383380596421681243037572437215074419085964408211265883085293687026562137207442219416029863959348442807774926565386298668660039304214844978301307368194849387024058810139271406052623226441992449223429948601336486999861096057977007296734418540835586883852977907250607769993579246933358962333003893721018544665088151361549085029772134052769161119202467102598998906807500757753917618907331504660940187023846153423366714386345229758229928998875423109622553042218621161426857166306299298215289270589161484628027165972780787422180646524829149033227260206482844749009325564285950596452821941894326979944490029002476009072756349937667144389899030863407774412842025074191480610213728426579829438542717057405405068570939759390101247525391582601198775934901943923648720830434022282874592481352531356588510290767914906237304323457754995075393596873927328527780995917630772741379143663548494155564856278726558864564496781063931444796776212946354686854070762987225715273820732335771764674595707144433834570778271443440182020865966543760029821782585388265008533933272215037890740258026192194172922352186143690136721835377972479244808165835983232797994301783827611973020521050944635819514077457876537212534231044966135081180184049150162054376987039959354508822095786547697654220031485279690844380454071006796928263697896634031514236838237562288922090129720716593269053597462163422714356017946228478414898034948779648789962039490663201881871294479813546280304887806287988293641316516235874886518818159128613851919141062102555790974098748018591450113744542536383188609155328877238736645048485776968818991281335908602328460362700359419142843342025028555290002198649099747014054666531138285683140907909140712727949219546833365475057144755542086101211944957491357442612876026391795973284309524966207641550868494604420391231931144166353941809419582985037285427086814677694551687669229591799108987225395906093498988006886918002634029865739255517943610919035701594724041062926480972356755997431324245819500907220557311543465681428771640473060361901594406781078313333318927241644944097062166848468757643593017972094469032676523634294681462252851789955005010465708875650690346367344387808036671597954266740767138821411271066978329563887978620173664688441970505175185517047575916962438490128756386616121247925366586409620584975690661505287823271724576356511908582875055710122858675558406037551098450640768158059669446983491145827583284258075090570622712291906440481398769891823322499729651716644366426304902977549318555065552940500555384040895164015520943982075285593113649997631311709883817334426820436509062390018636104382475705307060938336244365467633184740292763870228809594944350465134758431513327960848116736728077399892351965699019246194839776927461812385260246377167500189929590844420797367785753997021569726635404922534124259620580100119129850312190893603009643102800892532878324722373381830854844513808858517320287811347563493031523959821383667937890487286664358928283448150843972731507873406170770090419287117729929213740111731824086851749928927254505961025781789240196764028280898639280898546858685189784435241992935635651258093949993396650096482455743836183828993989866810331952770814349610139170770761297611438733406333157954560684828624672394874134556528742534676164121229906392233463792959967481118294819118959099417418964243793759479399693356955738299276955042254833297585132416436108855280907003859988992195500475230824157434952727876513756295414539159635732488149035358487110367099014651481359240314186469485716915455635891611613323489662550014604412734814445581075796759743131782998707570395108402245742669048292009435249697084473242237147943693835046592814681682889206940177720954906966338608899313365597836385962316351468553542644829338245781529019993354991960686320043348353393461255964751681657869305864129158238364272210504251941889684975536360089706401678056180564544112854075471364931177444354862485405619526324632128726926741524844765794995246673011891252096978641260028869070377470721905101305829506156140197714666113410676932847501848977936076834127495054816217857223153717072439934601075966141146076320788833334568777031042766954689568337721949740820710739436844465796806064452226374426352745593438369629235210381927771057964750979254708044599060429528195347756145780298454822844105303260537827446721425205329484556089715714864654208754020451727118072048259343634136293009470217432935513200729453447549641253988062122958630335226315150186708784270099186989089436358813691075436672626688449201616105696197352660995730049268759919783781766880460384503658459887471508216957713294106858650436407799781140103798547677976680376414568755015747479217499322365068508319214723960841232931119488636362726665042601349603400995004381558275482914485667787207069738355426702280861589277434376850873741138654197875469075801141791422967691238390712385677873254536278965611653246823625039128687445725973914716649639917415230810165068322298934553836696928173877450026051420743843167935081502068894108943928278559395826011314129654222922658121723596670246077250331705891368977260294688740764429698034182551847337776355466450791368903156944584583436017064703890811054811782616837137303067578512855872600353850545835000896921950497547075098843513989429135982650844383539155345104476511237314709994436912854544346064078136612320845760851362076958180871489815627931326818867632554264370715289695212110569759268793389294495092453953511407152470342389558136796343654252223749078034767598365993589386580819505116367147074254817947576360203632405486632261206056689500194911953683782642981754366735322239653726016791699362066781119551998392090411104340426208723980185246325538391346481687140280103383109431345144787278035578272225644280733170895147353427529496176975590318412900327118874924772821374407575692636828003389500576628255706186877982622832722302593139433865417114459673792894678416215907234733045115103187069234172754480051912500213608074396963749763543984646691678364163611200465349684351274419179970019799104112165805638407520416839986361332609660731743928212085823739444704178705673888393773361284197921917346692794301203755283559903419822657667709268126982754124223067176564951629840332278558815462802320237801541045176341654189610189774271130186677443903406711674845148062699400125499085881889144166970487028280007013319282250142861550604474692770595150448311307648213380264364951975492283105562419643992341048096071207365419776501565297244151712981279519024458833591805858124225169432495865200337092288151288778318899119604633818925908236945802032577138984600475550001276626468208603555198489902284844988964497737476485535058312519197046394032477238970177523466275802624223294432607212094856254107077672104358943975170382659191576972116153008590745205252321592586941981095962144782407065027978829092472345395962948518610373023937421816016865461729186961741687940448967190478380663839821592063045835955268573830962844696151162795354796988596915857174568075097094519120256959197023485232709274571817338513803802148942661284192703211345819416790074575697436512160648046586146169643646244388051120837733071250684755018011608133061850565653608196256593244179113019971186955731126299087840684159273965486401266767652861904301514040168361894967983150381362343229402232451748215545223212693289582694978334639946409522130689760048079984999069899527448167438024236154140804553542429851838696270387914059137181078989158445252487291663931254067409976221589026629800115375614943117515939584010822378087466306555879060616750560861737685362779451270957983444819448076985179420339435140067253976018279945967165095328345345315356308723490423587875524248183499837277086713449040208354283333245795794098434573046528439439733531891273865576430032350964611402057572609003687628493893729516910594839661250937083175833592986019138824551828301624578904016714084964778889354839626031010273656254996243443900573042809089409391715308751655381616516650015031464746840566706315663285974107295203455559569190494063665319561789133009635818031213304605170485467629803221971910530361047203393296576082579763715076737116039460202181329177492735168374028800441015636001887248828134372654395289419485274982714878380963395801990209581924017100271622814241537305961667411896530207432115898502829419732964624126127107086244948735702678157374735790169039259507143145212841709404141503012148145219128482054458625763987218096502308209742638016728542970510051998559524894286829827566719118870682359230416043288079240955367214791352880164265271527757587995632285955590237955382614525327580264075119508302541269619750175545644609584680378838186197419841323118074031678967334389760004976711913697801226562036558072124971201835175737394503303437794500284951032810135751513091651279288132530764425503580734847573918374309446215345646095061542529447710073804117516342204781099502689954248984896770574607011663685829623089881274280970843069877085579526294690957160289517419520942794454415746901438881336338238567315297088123948538850117280254586506349316278158092253047230470238024521667847455511311288871905003539898898577259612817171964390507572603214606459637678206939639485363637174358355464897884933216313336019866679411138948734934821294327526571889561723027338699720453912172261013360011066667157377517901557879836012934279826752911186439838377034935281017132428601916215152393508542618389391398203733399418952914746669638598958388538308396492718583320495241865449971144540943780563116407229119217345998227865495684694725106657703414976634037780852650335100088975543666093824292790531232887922824217566570983635006825742573119118652729203878775135257366727257700128223318194236130221116844945095030479134275320182862555708240116649373602035050237609922001296126464139345380327288913346450934955881078229409270666970042371259073033566725016766259295718868768150104600343213680998807498595402322782735181841879024646800255579446064392326424463197141477074477398943066908562244069941946224732492610627373998594711548172455679802326846532047092829806514245391590079883261287969526087771162998100439599792512316091874380323451148751680523967726299209184566434639056409189721136829304834165739149212119569790873759989115911438269438025267204582343149365205817299483714052795573482228935151614796179335595239862706469324542565501178295966750345779540245090858926142228358514864048372959075043656499549369879872301736385396776302692330204110407785073029110341954006522135655038070407943408612021937676679411207948647087273065768171067037823062875989391031002859603996952761901716461499084056365046034107433539017083950050005375182087739522306923827140204960076365412948390342790452514396571693809606215130532656353356607422885456450069077153696942721636472090518134441598035808989043977178319301679009417228987986630859635527212103278302206999014698841198396551084832348763426789424163264934711747462631913557332762645163465759061996884418652309088435592967791408406638156609022507283648904725420146394922795355247010354548894998474939902042302506550159621655610286855688572309611200051584059580504461757678499038642510700610315547204924507902601925198524305061688622246135864567108034945793982168522409462045874603654755761498890428367424533464912699789593936264815320228497801618980408297946981888577596996223259714981919657818371969760846050133767970643717843087524100973187266961312300006790487489480060421311072123489321087468290187294075750318431802254905853320622361111134628863968845543076169421988872058253578203915135333531465788986258678963208767866137160067144726626049846445705230282509920252642997942082031271311829851184373744663706466588956494795433958571370597432953788067590363227039724901300443403876376534862445623278991212720506559421806865734834700184844831649185031749619656942911397461764933334880614332192978564481214561022170240853823810040341839260411469384711382072403817740440100164860142898603899104244781718632346602398637133689523263421226398965302344542592031676945894240013453437799420729679006129239878925805727459081702194811193522486075861161163701093293383487601124913202439237581905134359268638585883949272462251065066419572398078426417371961423724119790576108190415245201260839277422929886009910211021093618906242180072525513504646803074871174869501344736994509203767378593896395040844263784723373376915281328920953670391117584191937878065721355099662315911644930649168046177551355194885925956756141634081061534283578622365110662536692891915086831993011989336588716385835999880223480806408759085022581238166276654249767343523169201507717077937879250820063010248186304610964751733580700609298774434944891866228938513831946385125924214404590826737962930899809035967782635357489682336736732263361772210359135376409117479840536437540685428069295692898335373490472180310710383743671319535028099448402364185621263056974538794209380569041638167395003957411318454917520759003088583950380341967103037314666470948811506989418615431829657332356688185079776555538256067942941318470664790070081290295489292530403767007311822275883490136673544188879881086948483271292463939463414885616711903454937357237494425527232179419078850591685913203547423409066203583718002235661370588489819047337208267401395372737428473129621021232216309116561390386218836691996510322308315374960357471237933737655698290508332943521865108574109150529706940893866776995283852869872566561670980592450569822609254097378564812393239090518508400280495901708601807691942087475630033192424509796907433646125185064743584864175912780702887231247679002655291814580542443674148985056507432684229869640469159976795389133696776966015187497874214151183888994714657794147095983253840837469732010633348942867719032641833747448554569254688232620174765147197716776545785164372569071361565647785423055740939658133482071071004287358283482027785958273128520373992027534603587993617068590986111416622121474907638808745411890049005883421884031795439656528911363305737374465278090796801760400270053697525946299770782140459119242145580448377735797370584362015545665487253138169897765836963090358051460119570239656367256265912336139195500509026609891466578964854415785489700438627506160305628158691768281313246703275040037295168527000441770683019409298515193732239067367636294628061571646058231005622361137759399918502299509217299485144850545897592013341409049799744295833793077609238923353355853116732369004167383213416969585833386853423399565590852702620735171934485856168822674612575824708674198405436872706170797808461388380837435789226444672971406007633175847152081252988356915012154821740747917234006511115583565846062450955239180903558748368115023734971755933321347850267375002020586920042222525176156348320587904047537037833110033996932059373936604452400202262515205793413700737996707325717361147096365676408511860016674609553558711002854849997402823785834757914153247561491880012849128695387192698911400286149109148250258963199724505431449744036006000375220315049062868679767271101722611358222603763294061144153016256863360733219291290931060113245095441822502161243295693733066260011714090286059992974235254432812213269670604961947389884858593571558605981209518430383222245856257834547390707397760781659446901099691531993186115557853466964459007216593978454716351468474819288014466858872746603935024420407698913576108691915457178927676925333925880942386941810901112876398828629147600490558933219057550518178387354440997977488868429537489316427384139773972408256981837757846610988212021869483484050040882888773639636160184231899712216681034206371640835193557282714748837577535901174109016065709441970367548057883749717499695633950831102328549931624841242979796587011591241503987353277411819038877334972681050203973041185301808719644180662718562974523350523633310668249418624853639994244452296793104757648677473378189883910281808615949602955675693816125914169928382714040272520976666259635643048381168278189309223276372066448022799618480025956195705482097936036448337443087598483174458754813702207891447562691754504742707688914620859648469824316730503090662974473401279392844434899122087939120560197617937796227794368421240783822065577239578722669061735531690479399295403532402379575543618792624688548478878983082140274553430107097506757492259596786927701232898273834455429494835216019253713407351894422763961198980265700209844901014621935932287413712463615407096248512752720192649950828546485918301926542695853641899556822451998013280000411537999009692057125752961884848652403903043471582075158483202642265153360213003406949719117647708911063628974304108899784523630019006278603334736347725749695985068450900712180547347790244926326771635427284254966221431961214792923688031726387917321234745688623505740633852619120221071252436922069273756309981532137016503337450634528929331183899150903024197231147174182269655806471867934055754725452913556537532667931366750056255952217491477677275318862538298115219548265376709672855406265470500679940347670421083226399504850981028612622199103231093701181617048766931602591593094466981033395960922728487022296316634140124825630911676697341539208328587774276887697914594289056423653850002056448867101115231704878347946217201954605308146841228943540004240338896758620711497288913999198710539725414033515716022950881278735109945528341215112358292745159228898135575222175890451224347066717584188747586324075041801638425629422354584267562052016581541534577652518190302627585616263819417649068433884837297479764068647485374773032989441442863903748772558757645780916985342261032311523590567802366863569627953803670720042135181297070163712185211576131547146728040003832436777693487941202644210682498865257793951786362951166983245581027713826137751616692174925137755532457171122272197872738476906740779782178130639048580600899416813203788091779896284370409519240314771958041049441322282172935060505946101418272080203234785606638770036531212645398307314963169918595258826796166727840500409937278907047368910802569056172994476066627458409273653654994236834373528310669521080315819068631426703980150052796560388907223219718257744136960159572875117158452007701009390166229749574342368376597426324053215250246074239725068841464670389549756447856692559124748875628649333672705946264012723681190466983218262384590388222639129303700964959859807870993263037485364545507192736298592242737811523953183455544302070578733910724705059220283632435751881502077430841660693507953386979711980547853616753158290217651971173146066757582729135376370235163877773801606674582033574233285665811015744504373992374703443930576527256631497438137490344266697585251322354283383118509872225543352103257109383131220078521458604338475954499292869814360996666882942245146725406893886724689333295085890664084396347194823625265235513968382452932755799659302353890253173394986451170018436103441028384550016274348757459230745884371167861617019293237402472203059127041652901108852378028356762044795160435502498830617201515812223735573595158080758677956211001075757973848174295839442767517568919455525979238232962365054527012370883708054375717597778650684777630805710485169773817493614206215612557540377361637547912845536351277654485281500849895233406210785515935427718409399694319597038092758098122540070641603187610847615770272391279935787766790944637556006309147874679948535112452683675040621297559795679285360189840260214992756980892303667171304045778398751759257815826047645940226015899271225216704268043846186940198987372618768575385361625616396375715511803182023630380843337116581110578105034335015425582102951091501467770883810531205565620005754550030639719389051381514605626705039933284277576435348311850677728830113733428503107697877135739146978858107887950036888619198928820228960780081046086667516741811766940539381360748382357252800069825796979800261734981781914407625185999877822457462775558496535240194151412353098285793091265369210882944884748567833584520245648231453828758705643221764677919504556267995706790915378080823199267010535526749013163180909153195414975134869893688835796439465092541892325537871934376491417486322718083482302664442922253056228231119662690790885110537583357897148796188351626197718163578782113677806606218869914398716858798040940876802099305641285822571445825735861827524860686328250557874804978246260932151259988921283901618167487126216521941540138372364602998841150202702239787059943935452214577858085305780455938805021218223907915406289846894637914484391608926610829327176428588908027061636791927282009054573139637611133727862313817177352430421407878051273305022873556071586413550536317743235275939331290931520224984841293970165621351975897258578163515427077202159814047837306990748074174713492067573703068357581119240291211658235942824960758878206759930462085973596562659023410745353155164396479788257217355973872977715718568243988170383579824201690794598766610204718070086194866891613011450626312180795386027304630146477205914116335884516668950564201174830732004535798529978042862942175628543928178577220507171885920233006808791139256957070978780784076918213742106802189070272601551816761812602489125598415797230467358125653569815005109037385913315808871324725352237766804854016242830211432803537822227037989886074413293696404863755074879044264881826595125100071731651749785989554043877285515272542762489619622279394634174810797360114475191732047026391475433207010652159168819532450017380612686492516155040199333484362492214133692178687117227640439551361457939352900052093345748508232843353253251425612637458465253548712310837404086143879009796145558358036713617835791752818106419135249953329597983837932402338294567098275563390190515368348298566040101174462408536569300869677769295888134443767078041791115094248827667416688233354499609731012832371878890770874777640582601267131080929095725290607783652184804495571965194791650158956530297378077748243011179352709114747177851732517500403463974123456838878557457177259408884321807654776806380822356824481876351194438921984351703122440242168207450856996435330828172156620427185527286954013604539927415988231412981862064508548729192007745309745759545462255007656365565621954646132770485154619558989615887382968566323044860510284104653134227530619521040342503551370783192601644376911728255262033784695059662647047164923069328961157096085701431989910452260016561090957768908792796213275844540828389580803247164599712167982790750132404825748909960742572758505582313637220408882269778612379779439775589202969354483943859806119657212059027060624209594844154946616601222613382565936205399476627499561686862925714430118921767407142274450406605479225626593897049113305903418905465350066570220972908006000931934562371702063132456537411819325164070098174477242253389507972020234666288691420452669976756133216606195097910835949754426139004721747131005238450346342341755777412903973380867022132308829378502812101655450953166708108573369363937910770363951486610649882486619192180711825621547811968421101931126943135433311063974213761864584968124041106944068884761207299688958731793638315225076768309876530620857297727253831021713566903501743081765147589735267283065182279326924512061278810040610249382389751680279781399667330546067987065716173165298127770164727443864585193770554458032010337272361548349030583739428313805630504153105710150007193335249114822065655318986548551351713893370492102208971395984012078576025132267909605309590418998438775465175136636132867693204113044419761637170821519098593194310666734658541881462006069992850335799241731443302346896398063515871023341542785478243288379988119433318611907705166901588966397890116119118191030838305709500427869328450555487917001344006408504087730870929457409420161864401997604741639703979568108252958157326036439230444989976887749473722319507269453550090492624565760865684798950727300858333232991473885931595615672685583610684776874393783241101254244369258786277941471013363363002416300408330784966615242150714640237201018504176097284043785725434147136431942288690291179839792930575261002573314639799424032159952052191436163103376261751959299839714680625941582126596099780597907783339572515357083629040867274803470491885560104251026206657408933970539045136543210603209661875029751834482517590238792580063776054378826111239316681562382817375186542983380608998070152084644862106720547855126083003279695167894006316368005201639998642119336621178454916736404257539613750263157121583931633132306775626662341564758554468176259496259846413054782611609000685663112740951622434259082718665703233891653060018697366320057395958954934529461824902679934154318686241878499744220581337672466527355894329936088884897830599938263861546919660675699540611604148693439076854275837570555011413317960356039459297657894910827643397822181218302218071599028095302535298955877393576014278299761335177593188512035658655015010022076608449847498329868329338473813508999965477140717177022140118317292595165814513010782643926722329857718493600923960476659696336874225926341563435395782956799179898981708381892589076558110444655406869332405129803631285906817771939638981532254461212125604948982457696937574697537369099563489575169251210894281669160765237654933510020530353349302659465604793824834631924834641035565638789764190054320384855171536326480352716805574664947135691884982172413917572385304210161335869839826699922824590093933234158805891711156237796454429221280770083637865013166316181785971844011775256077477988069640115981446651299941298665785773053275473547012032594815129624007422071484834339769935235641106489255375086277262321293391658961553473199161632702091136364499311034821028698266819409396923828755180127693644893696596728276081712435539253944017919854813927333469784714241201202676111413456762115904922112499723993706732437558026591677331447482419105762298288028222455963538889145849754644842966705882166447916613573485007881791645609816347566015224525271961106224367070255504950123218203075105172071697078136049580471713691145532382705453186575764088944996072989880419674720908559626472150821071466399330087299828019228643788905677605119456456582996319714816301392205465412698341535030314742058001051360836171382432142064932236289148798880058075877459922330448252303721068066573511307941265869605332916330847481272630006993260428725018480920857922055374510671161091565881592835184631544102024531657713093409416888916084412258263165776392664979118240141201926877347912081525751053038827673730965511397113066908497306080410368937176836712591164043325680271589881439848192424197893713392740102421549193991155767205191267356662592925533680677334159231109122665934757639430932381573911095005475442793655697491468465353697367885056355244605623217570068886248831748853354109441633892536352700833559161957929548342298476740949738350027677665137560833682623929179958374698394919244514043832390454175162001644199160781070072572263593639811792895238954424006480184654404446144763769218522276044098516990598337038103592100245383372573098616189816220577364732903592292699292194832466737107298452042717925222625260788359921667408214805652804222215613314837164055963710000200099292456073128340303128603907688562429822394338217667519977727817996407831493527769746515083335971839185381266222085429519998252418229119560803133732724209043906254270211078362156728732088762094503079354404035302814716903593039442008305507349956664452577186960643398015974869354654403471845323541245668200681589825697567418710196212131790507054720659641206690208177087215342866857092434487271006596466452459727017702811508393718461706747606400784483101852592292428633543462141157003094519362218154238724183400814912432907283063302545974747814650941280735873507557711548345450841639241791927653904813483887673697899871040429559386604302882267120829539314425110577564152253875005992647893688216024800843733721272985609580517694424029149591476175118015750315016880808460026527470793144204052468479804038741481700751521594365843555337629154130354585848913089489805463156238040300462092403404310480948261367303943422961720705884661672618583476319598053195529866879464028015860890665452468871285664449160416396142299505748212395565138163895967233598069444865483174832582896758323929177410671162857148391603032184187555934064230525751227592784970754197023876287809926146405264272520857308349561402475221821405808075981278603921250453534553387183312932113005545865842645516997653555329974093838460004192954616592756346862833376087594962715156662193569486940987336231976526593844929892386133184718988845490487266972108208481362806574200836764643870199453605148205109318005538993503438709275765233028432254215555655839743425697601169192092201670858954929922683378433249864048832665506140621184825075828375430054588794172968879900248527619855237701881205648014274073302013665594910928969320045625124667681865526462455792381255008553690446327831473752064881717421809841420951736581972489945337476061204143840699744271320681577085555017008579228335782764395577981242986700905237721186986610393359296384399790860999738299386890006966106891920957297408857645476262112831084632627010937785012202290650793782912296099760510585009518705887089058667071417863819121475618107190058082855827431279068920519256951277738571397999261176712798990673527670618382876294818888909356577410160898598682151529770371767123111499606330580376905389900168373630496845453173000590180165860962282481982386276383634013357015836993652577846300660885152277383502807509981804930817276816106840418055367631963669963619413202017494978745160479390644928613148821975334508406080407557539300422419800722621156353304229615452256854712485539945244335759312164073719196006155231650529410544333104150291001966049821192465572310930194173797261549148508607268465173234972151503772065487466101873742035270791877822104270698928283338539706549414178920126522002632605587733138528886449997494485773094513284470048544809156492952784358783111004623612423416323107795438682733558548181146227648692660995512295853149617061117072126034152602013672641086489338109528528313943825093647323657430679938165902942391078424101803029575472800721942175533798742960280132525348314841619218917598219316510510797190025645783748208917579804499117605095995680485394298433847872363942058896679400020828880248831015581944842529437948356771787003332861958325891419193902069026485418625680594160794962663627406870863332702337307964644157172291361098642877683217928683259580882720856791929334092619320152428156525737409821677087379527317086048973283975610116728993689534368801628273000348389415327361271418128836440403556223060921322365801579910511609824419076663073227574467883314654517542718514454038789934897407144028101556876497559940543834514726118895255060010933933180309583705093273367713851341830623605922360458742609345742900878811594615495961571519392876600461553204673839282831472587562727548817141489267099507740363754969552253658821172194448823050912746293086549722188477988094426485059142714138392362088909138022721939169737417255834552706093525699625610125988994845451163137108303636466093562496136118989993307589911019491875260494022345211953799566921657873431080989330650828589901716194463738168184569509335190217055864065089470457917517375386228217934169393839262317784703972905782588931509711280431304967359628823424978662855131188950241427934165966878183524283392708051785177740559197201915220331511026042649201576156811767339512353815881105225545256128808716526766022838763690417474354968859617348302876772294380462511282890110966613495034465659127941345161013659500421808691607625660975109748098471074757021429702313654313633836267814656104336465070443252070972662314786044863912620600361943010783743597567297006707718455750310332316195905769725360844402428421504990522256040393518973633929643732357776532513126649665220664466960748654803200262779836551735006044192369410481751850297393500406839835418478294522399581933455508115233155078563397957369243452927317084198397805630353049076449248308810223878947259969951645491888327096023682049901455790575351466677675091418743279476852851679093461952007984617859517853372108964805745420864502344925685276713698276153326604781412402548149183918807323292533088717807874939369085870951935207065434427075044295470569420713417539912840362833510972337298153587904216316881048639487623005855582953567837970825796770209243704235634061734853638493749737511472795501797268281492443507023363655024076466643164634861034639509055881036627014083132341627478429691144843359585890437271973198875012280998344824973276887727694909587083519489492193054419507937586896624567979570519400006457577234343946770192189454820796721916368810509692926039746971919940357373442256174783741115785875718812588607435562841731171951464590240736025934725229386697743458591420300063549442881100380350420350888550930188747042766858026096375452500436460833228242380543077000912494921381261878569311176848305817210778380380315350150975966263230826222417552572353354801395895809176152001799017308293229927170901479245577672884577345425127944554712741369868280565496853128247598006256956235705497703991648545923256044941746177973734018283159693877504096822844187930071555347222379124675154287487963093772477156516011145775822866669671553206701887931689854100207463902101874262561920865768219083380350244777459819693181762204866512970973824406997868270880430950602852029694762307293684825050822506347113038720959270897230269947428446599569693727051966528312871378012366083324408532236772522099731572648989193365297385446714818901484417420083658857922205016443691910293083480885998997820517348344402060710248102359938158621054728345906243757460839453858460785248207880287348769760865540941218113758082888749199892077013324148820061466646505987938339215904295132025572719035294724451347103598453680693591641508744593376399178002189398924274545411251985403556242949308292159422928467998425272287045458661604497676223457730189956710233632086965794146636422419131997564937967184636704396229746366393286862080032796646463507702643457935347906900513291972766414386552900180712035714800477913713087953096892445912878111519708327341258618325580001268056826027766042718141011901394441696210434965189829977041879682005132499987612789098940961300204735721064855345361273207404930147390055579613734538909046731780095892103288458169203937172808761465437480342174138295509690468183525225642502796251818867114286164196841602828695062467891512234049405651967397243292761730210724488910947438284651389076842347367936181139824187384389383230808086727138942506680387142782342085812674564586991155436767542019110727539858033966886483101046244647077852149678687943639332466960833063608465293613600352975988237511707227053267387561362935959904420660144943405034739004673958555127792421799263724276265015887848106278915535477499168987546398670468160868542859230834708572854235067790207237654338976639453433048610007852198890172479187936750467664790843180343135374432620206574541089283761848515116304185861582481826570900059110825732611602273575271752729483507631042984013234210474600494178384928834553887544324821967622257065633397343584130944749754851712944099006292372566547369851457283369956401665018026065111626227738230494820672291932346904392857207273700512381514504825983690934511111426377320837347573103028090667691367948190462173128737567777797743223146062569448842422678718275915262265413039395089191665255093099685016097059834367322408909411826418828287006376356820342424696967962626032202568978009501331745159390807958845474008383299857161444504923398937926121377734271353309868175232194805551038071318133532690213791719081191329183568346091755627786302142004521905164998294065922519043489248854250006482933984307565690597832033994417863848066060133624317693303123515013152359446859990830739074400531924319933466343252333542827365931013641532019583479085401108622670720106092116895695418454406994851206659105521967937755355310111942284563920927850156193548811060247412962740836212390883411019537322343244690756383423322073287957795230865075453053028855386012247427315393566344548950421593736459998249431961933906823821155026116654131097108160952060818600976034171333853588987524991906937852524825483312148719496888752792398174345961474141996808092926864223422115102537532769874388276716330152359990865063847337993637656875276466412670819769036035549401723346788947695051762750067145265549247316953281907041118341658844247839244165485324334510002530127574303776614976212841279196227908286959763646633189656502878429732741456465610340156144718085075891120420974126538299091167047689471266999203919713999588679988893208003782441214328675087368462604821161860709321044602076582726487318527388855932630158752913027962403937227348621491155427579860089663546379438880253478345038912865787553586142649970169488084214668913533047606345365037381106792205896328337601447769013933041138788268007548960668934165751550197789031288623187256025070044175103245089623984195954084115604676877389651346969236657094533537529957384827435022744074899569646781300017222572872830471803053907965989354308808023378754989414725553768563797364617480989754799698319822832909274197500732787305315925926714958468538203216105692786616287848162366741062236018606895208724017532332125772259218867375245789020455605431778468160154741536140861442009749668011150096593706290411149479842258004813558449723239970984168675806651578582476114332683950077106632881403002361299849179896566224390327989780222409204011055735821295716193431813594889040780610705570901667779736828973124760806869579603424449759819662004744638252203158629741803903805936936956719982009736235706932140330739684160381055723944078458484955839235403291600111935526404957474127805652718464643522632941046389644911167712966041076763031485711824462534130015256006053272092800345518105025230766354997489660615143905316822899074721096555768241623532093066608571457753540320067683465727600491325460160301021207699546966931850975183356374873740660949536225685979700669376793207321818967892602537975664785941186635830358021308235964150680465782959636997390367836760941123899765643547878958053763138061695536786103717864425474661472886837815476105974308821037474037683656056358851751440316767557625168818610356689928095623235282177898381893197723763604679744246809607382899042887650037472504560193115007960146402857993791327149522665692416017907318190179403546168567144216925498932390924549147130682584586153079351268007397723360268946701586334403301606387942975334060779274549671962735539348918135341803999210928029170901575636261884145665035564095432408003572183845599660167726168737945860797370268830549009167786206760519887228752571187556189184364679525038573546153482899964454219269756051596796744844530739188872936981601290388727556508140205116938702121131684546408845674708306106840544875389299209286839934584402805174746047438486389639303124755174593076243109031159225930410327914285979717363868972121668401775528847687913132734893692145267764205066844982296167155349174320358605828720153380322266001187075611542725179671738917518299164729665676401116123050228415631183482517087442862434691490788524724698668227843207285607391558107619618108917586048983193457261448753102750076781853804020141065763678174507827275386652400066490279064729888851109574208276352598628780125632414495486671687096790869040826877788074263782377804642994423381752653367640115800778680823130642770701524799995219312742755343696878345010882698692845168247191058167928371029789558608813935832053114054334065480979515153438942003783667424916995072862401465733787478063803589221754373786155306241500986498472176397247494735172980188898388913310355033804688590162657543885325735663701011619608976785249619863940784314255733120512521522208435990112493213409064737129243367429899093152315442586250735279446302188142749721864316684017813765178479548604108509644923220650892974334696426251940236244942605695891906501185436237867096008056161568676232197503844393681788209361985617911067686874268225104046987215268643652928972832675922814968741690277495751950915718222582048929901374561104140352194336192045922349804289234286959419051626998609072391755407796697372386993413433672809360650977013770520167511161511234080184083977624793851707840223957513092213383538732871306901297534077814085165590777240919158003829290915397781925124879565209257638108667661829466233318603883678104681822698353316978154619782127126768850108099581405535916778310897767506271998023467804654680196050434353821966347433459615034595617318714547503273089969525569183190364072500667222836254652596120930794652743113143814070501396328523281455656680085251543489126481940151000687218654379010863368630231809072862987643350104843909093111363060802102824989883678696084580996212374769277509820891789950059765852940756949372949445988762815893117845782368743800852458691847889189112453955043795643892736404595492802394584944553598272271154524998631871221891470108397303872675674778619677638877304796985211905219812322437509650379127390217661957754717542750021607689432412253108935579822642747249006243815025416016743415149162779853643384200453071620843368989944604659464368969104171094317109352117964264707758580020446978954182830859693391948848763533917486844077645928286723511164849399921226817154452673401008995775432292897651678434340830872204212958587227678426952118701260344107787582597864924586581761736362874127986246053376256813152343116325108099545682479533466603046203830802884292998905550886284127610473240198519422246939197063497638956554549725411760470458472354674997887432610038220437134572309533224814216659055118191031211960732422680952492266160338410536940381380038976184414513122371827182432149770724881948304796472453224023231533095520536089304762307172030423915980656249287735946786599445381136787816710536183958673305597530924266787213242908580143249630072313444651809274306917772362785666248829552225358633587108700798174767806836461404957562405470298725636388690855704773561443536708583461894250566062881766942703865298682745557438514079040634993128612001763788812082818528394064628213684079299531293205061284815248690076530454450885351985238744651858548794714903001796684615615311994209258775313841838158314424125595554402139338078838949862893129821329271604758290426600518704384219769782282814316580611320806685526491808988380207592713003012854385061339419520978109754931043523966581359083796117881986615219759071880494032415884587595029129042724968389564259538352366011759014294267599603491163255944653178947706762066029173618553963716348611586941559605326237073285028719856716349772058992600017199427962658490182889624170662096106481157862909941712770516283926096650384706168904214331814705253009303443468226300801288640050839090689588611519927214437175315268890642908493853325195072777131196761171081096849858214294602258675007424068893951146455976660059641633280788182717363763837262245935250312032946660175128803694809291088964781117480892545509591788668667590870891180209464744525237554986377502597432811214937978582886603708023147309502102343104890559263950274859861399386819286709611466253638353516393533633801653407196640224899961491235347939564171954081830665684077329485877728106653448809661008934196968153116116747308573447213559996932998635725024600155735863704809116118150035312403665685493156965621308095779624903332823352635895289772177570136050874481328073398173600486295894956372749796872434647789066060858705609297422705528149999218366601341900780739387629730049522980606021453754176993421748050770652403517795805736715612695556948215595696089615640431403664191122950978093148752747707488305969821764238182191791910370088390829658039153880985137886191349204083685526888000067485569702166358978335875219791655585882167235324125658906700926518205977781212246596253434280792046829448542564180807982751128717280943141417821755065732038273149557361395594614103424869267853952940757051311831954283486743429997327880110710336636472628496393167482954840558349694262593201909939820038966003992987273798949934236498562563802680296262691768825524800222686156946305419290286389234037163080968032823267951221361911974391550242683458869584351021793789810966419826532509515668197628236819843642838408647364066562716685142807609046250417691761205261626887756375954835153752321401235444599429788288986504967545460607964125727287241825285197256281257038344344360023630673180135907312778728337258576572859630725124508471778145124571651139669453827438406875238750136768438549125650784632372479588872059402599052404526562936763045594081284728694991270759718734440915434787872202358405258498083233284819823881725172105850547132178707636909282886833069700996591433098430241582162475338514174233048709431711230424189702319782221831366166087974729635091879147153089300247593634214541613497819062017453036760600389740825368575789892760722711866956744311339497141313672090822579801625054296603170684275852618429494659043771239946079164101611355257849781849130771888895396390106119377478678962232994866765676079783490292985705696454670849516013088107848185423347200539566585434522531518665391336478690216173324497888830347295546456762551032581921475281153414846667177016462470430702473784306759594470778159037924828228173021906678136239105386933148607376224673475346302891629571835479741945274579017211204037278679849364367779288306251236373495072043632269693700882210658286096976857781022010886983840741139707910434204747789894826849710283208989221366304361785704753589876712717946915178906162742503773163032253013609764039810221212889678612501871775126671725697884633080704510428903120285421941501333598215821224523567020976978451147922611811758528420663441235990105058036799242201363308187964628391755142545909363673795020825374097480580805225614152813421213996242683947944055971662680562120431615576345768398003378952035244011928606452166586176732166272230093609888082091345746849096172789182932350331636254622871373908548228650481169099514852951191741940221731263946795325316642344947645416307663724262121073525285194945397274671539605469704600383616415535369991103040458244915172427397438361104442311791032398613053029698483286932680212422832303326122949845490955389168397617561589861698573380370363305654292482169018674014500186968963050197286624840023859897694268788331591154899624351634177717391349281120867293806312404238016539177678671075011061216233200621646775852051986525935084389092642541587495501977892030452581740861572990453043567564765711860167242418855479537610561140802359456529141803126089076709016744421317860664307490998491955491640501006710730247882898424031902510496813773909335819746068711726863830659127688663348065340617589651929368709284111905058703022804409552080531770772813233928392333562541935946593234111101842964812608565259506816081469076440735916147463061195351297346290824442024735060966286750086655990555820898825743465769656423055673080964012858027525047218564306756176315576548817957434610772018807982414348012248254109323829013387265522463090333472674171422236713430834892177219368651303531532171656964448082963949432812438599756201906028307313240600404201269494077556897143050891909979671945668694763813710648796412875566968329760241529966648060426327379324778890362239614604572379699589363728060790065167633763470039473776463243729141947856343277699737167477238517325758354035881321950996236297070894507822587922598894236634129400186016429216920452784806763180060270829333453908040610035007021458639016041629730807957932079578959917048166194040076285692500969891870626531754788925930079835047658169152079710452228932737303454990727068658392274236769412465238098252756189617245888785157142607162791404898003158331569612818558429229442554456865938843963744232603241963838050292859519862589585264022747317605676922146802465733506723723669330019474616972372649920352166241995156099191509966551671992169671632803094246571573346893338959344469661735710048782651469083898997445071106120065431367146400597428276635124868155574943346726800630366638671375614751168504540961467945871984590866173294176225186010563743224510957829482837002772701454735059479384284627932811548849415820710196772662185656261605623729249235913335392240459923123653832683930283079841803014392473414167338840288934285709834564727010757135476945916304258141469610133765340899335412112696091791926567991754435721534021050364857242016232998095646864515102993978674567018531660424762768417002644391834686526074684515494184825395478352712386530518348140776565383883738157640067112964973226802481135144765876291713823539312895219326616605162285655339095653343280303070564841200623806999636594422119896946589440333074094349436744029084561890640404800215428778333068890948706512922018478461222445993992383567687823301825996135528357076608763795564504341837136264197946894867763993314726088448974256253849716306076977072612104712420626772597165894560230607123380366062664074048672033338951368494171836142012255851581238942657032915693237022231843849326958012287801402514825972444647320195005697243392443323098765959938351308708677329349645659284654716124348224917487025358450641122972845025239325097708471391041905701598774248352855238930391199726199063191543483849807655746361070720236570883197618145604889662372207999837941963812484130073135896683458193920562987993417619274844120802479538649756128088037741944062335970551708192130401495843064131188573163546876062503314392529472834843871704617393582445215982105925589673506833672302965190823025428857300709498881783678065324533150396393727676385206151005585342765992885776560273234278363530955229467460056131683193992172045218813024348211394214969097412656822813925801736717471396923260299854477737151577262825848817545410561348325832193096446867044367297638944146299445861024901035501707668446078259840561156208751919629048794439844577267384935691667286093367063204426326848897494656714351792616697842683267202723962594462091317017395467392290004539238743700143924420181503757419817324584591994376599888481822682357018266325253630725317763964502932888870604625362502931208691909808713401921567999214772058592818142903658087413264845717478081382048880309902343695043532954791399385617228363438339979640224232105377743398404315260490027523052964358342063006542661620596580359032561625540473919238426480881349880928961522876063912065598315779733293899318778886137501234708986741944666236986633926557197815700475065338907666644203137888599791397912258984368714533386760940837970895445266829836824475259731657882731707650637754373904223910743149206900492708510749684209771969174753031794621507632073673875555054870582865584360791639794892513963859000555564335618864560494385645155032526733150157196097687146163587759350586237072493339649251124518212641441756762364233427826837670521143929811037905681385284835932709628695230145954164947326797982668425032448695988032807511091290598907592268383581117847991750701522989873154683267566146925446576459781091796427815166648526882512890427867322568100813248176284199300557137125033257540399180892409445732457885027173752609316590951662905405005931383077092346525162458190870428154496190504831491747443272143025596791251509316084883341570830835574943372123519243892925734455896368169514671132765395722097721793942265892117867749343987071636349582061854936534892352404204416617200758484942269705656374185561843897318332633861088622110960251787391121554565100287160841087922730882444980188156628376791442469667186952090022279434286825577193710307711695722667128687163096457629543044239274877716960608004313798224644552936784678137504655022713951742116373448451763549363074745763275261980903265769515872341303273247840925047871205245391595456868781528924420868590642563642669551429932239401236830122102420733559955885244483080943394607285242864320746202944011914869839672094558868819544073000083573304635758356554922745208831165353252932612543617877531446420498545185845742911530185681143166668455548742972569650390886485040897964893093835590522784272870221672585970708858248930181021533076310834685546160615480275081228223771556875994343279337511514231699405785302593486768453977473222085330520120727856505256367950075519419868280943346089317319374999781118149800114369727432658495209648746359165129795419033581629436381222959911712101935744071956032740097541479844706919308902188214086581326174841594228635224845454074576737387663122515349157600986242155798968131230264772725756925637419397762712835634131345601497192870317220654860896368356032819771650871202538227910405861665226270068560378751249918106011966781741556681015705444654004533426238337425950703175831620671386782221351815913230513937882157029734646691141372355896758755204352695980911101886672972671890014708042714255766893753003377114617565793209859605161799085124125531002195669342299566204256386184195260996169767745087123399677741834428597192797291479908209899194778772509667217286365663828584685467295927572015207834551018056297728754193904470783708604497047012857467620590096417403616990737430058426313936469741974691089589039926563415411160404768900296423367010389915562338166654269642403106764117921571125475172059100181231990195772432754659825299396403362535044755247935953771269380914512703369341642948299623179930318585306915141662801764864181266411645491811391595481150913672476049265003028408933164175399412385429739927659325373821863343569231636063063189567102572243698331593285078286624507329731199351224851298698159326650621382644268305936350465515643823421848789035976680905749849848117748268715035309017856521018030414116936046140650987863076665539144763036770957172814457722990570233609281705265459596703080238425394069807824740912321620688602937445211850174468767286399478557137624930116133689040470457598503494378247213215184993132416847163133560406271208916254497529088863174134442818601983022684109913993743407400824376085374655075087106392929730937374231467870245151867009096170420907465944461958881392479707539907709251204535764554284241327256809031972223118775871267014613480706268828083885161386755450516126118401525970530781946852742961753379618654249442755901775398150903467905595625382061021918467703219875638648314022546591823879836624555891568019729104195272803118205252370141339546946025196529066297941963854777408959364131358290479194715563848089630030019952270347882098916788026576966895148822539753292688294371336394170914122092975681770871183596544011529921802997460641081601437257171854421287765632305025489305388488559136667832316216418079751287410674121014884412711092927724647770062287709873847408750146666193931073984196024170829038211420454463382239168445236737895580332481651211913162551653400676268071081103926333505157867942916985856340182816890844235612286056613404928588529632948692731626348548000114184111749908976380156702022432883767135450594173223173236981302281734061773620546951825251355102212238088366323563764979192940802158090129275975259217660670690394336314160918231536373510656754454831584227190980805569960219892529706991068134643889432227825445859073090342797003970166815645199298987340849507013558892693172854961059476445427785748536822714779536487812941844317415496310035098602394302075450692014311602931401231457551892427626304589232970336101828663752876880403785108096565485610305793466488179728780821303075916022252018918754305762354784370263618029196100035071410973810086671218344607307199355196986284197566538638789610003834460463974041967286030749140317885849692613145213775023014376123332177880944158641313203139120377254033454946054555411962252301417881695641798767134819309154525029313651591381682562100593389374286818587818386154563478252001710212271486225828186053679261885933736556330416307538976410209519227810791873418914305754692293491795853955400741502198845322551516711666948810443717353556355855322868692202967657758396515266291673584233458858432214306831167377060665867254299731900657772148075655871005072920566256871504430326158199908490710050217411635774609259410049610859902750400291486252548477041411293554152491029999073964885183534579641888446910403902874864568583799933287336373000250159143345523414411511825600379826654805282410448150984289035945364226880313936433195067462549870123726117892718718947314527508199443200106550282571341037027214957305670997148185651182219656080051294637574964691864561233728687274466495676227259470578301365730879775056800280261407261063167881139568589144689247847197585171280989467572325425439798004679985959026036909731014047475553616194841194075464284441539804730990357278800421167462942790114763323389857364468010049067597588815622959623789803728927633256372821207815508877566135272424077303641289182397847826164376591447034236577894509146137295932391712801734794735049031792087693091060405854075363535160265667770404030493744782337860278633589425780448125863080684609166500296562030580282898682801664306262163924395043226455167412240553426360387684575687085769021309812459790744503285088648446536768916416166996995370325125255210519405765136908803916187468786958735762041721591376730963880021841429628569406070045430790327928877215698124613340342458148946943368729005583509059341459743232552466786740657427821224633771044298402758031239656626513198398514524938116292380667276421547065848233807307490065238390705161299601243740729798966814334754358123946915199755791752764136874915993275697605663278719453528491046606429128221524690125373518952681236456430884008707931245152369668406001371362600916422413980548286344534037919658347589575020898249900918933855225512141284248624920701631913496870513021961449215479333995787970049803420301030369033706353322204241499734270686685717547278291413369939415147536339743448499411940966547244647443511270000843709338320017781133143857660287603832200047375402954488660719637356043431131299641415245357412713494058566769398645756729027742807928489246249570899743790352951364885136507292737255468432630864290088633146397833424091361446342762270790582190888696662006690289313232441917084757308701086145309897101730620891723187605101434340691575872696749935185372016128048162998463788918770358797939623310943779570322052121874058893456767074268933870486712393657665926305164379971967974733746169635087748726368140170937272073466921126264743618931105897155386477075031127878677886052188905962226041463199791334017652397800616524127462045474787074432061627161884318164448833811927837401649069528503162615154481095843565597917165472241159687425809071037144591366415436097907863933166971020356809571547165213720338048067770475453706654521373958548220592953322565456023368018144651062422034644166236389943862947807374796969227194786924052083657058613178642226442899065624847978470635125934900054115641825034596081946344131493254137916907212734991396776448898662485121900889242696216556940626427587867362687900662687795280032210623645747598931786687746287321339535796026956094294370669606027952057914039217751822966693876142937651350304803858764973467804061233990062768702054132825052750074468309680132961071873950948043078928374798356783604972431323144795080419639474596942223119641683909426212596775888321441433668989622830008727599932830638502023435116254884338669836091292235363924979573547129654505735576833599083241345542777278227338832872716713729363103134301159672564683601532674971429205073568062946179526393865023975041701514460159066815925451918119499246421111182750484665931144782589502588510930218465256056161463260818985317931078187887429384017339909737990492732105680099293934879586829206196821300246101550483792774731343865465936426913456451798695425790824634055257202477713780592434935983302361659009407791578093583820782873757970279608309615781982314412828995362125328301334015743798780778077018803262671990878051984807374652906394684144472732517027921692131083737929138061562326778144220049561333270441276419429955328278619382043074275174139712750698259160821146925749529806665411219307394080486057028840404251937886412999012628016203705020225545719920431264407327347179754062936707893797730062331206360602662221780998399978356359573330237351728380569402402708896721070713327192666294917030018469924558471433913296547215655654070480725369342717858764102392841083135115248751628510113231202738499074489670059525212872781294156414194731834083135806751892558459649187551515292888600347892958153451305066634113648821115995026634892556966087941206666059591022353001368510840601887839624603142374100021855632613681485487727342626016072888699791762999074718261820087362233319738580365730629186742081598675321897663416357401223025608669544155217064498839051900644235290829632041910233946728222407705762458108144864350934778214689652271887590153625964542526011703781522156574199764521800632185289060905450382895864920044020744730651533299738413801196974329402305655861076271129792738541759313564554667209870799136497552553318492858989164367886862319704964223984140205252562050714044386860502917109059279357133161048325021912419821670137758220264044300298383899647303771852989855012164782892007972556543248648152404703502893959505851260839959756280893732836331189306668751317981194823763320059871660094786507519301119306508718673152892629612074048421947826571104208518539578599699969572810841748326731300617826755081932738327795296443583944472747793965234950079596055847535200327063558804111081732953704983910737590202307594522841351966750348141378839795837950972256322166110668612097895968091489535907052711620661330120864843758453892629066427731007021902968982961394323250953644047227020521888143393705415093503998301078696843860291009738579901506866061669039351943541464015052150246086547766777032268906772866208449244384870784984166143737360352440755833085767778677298444608678907288451741782947764386676664967768824853596599978650276656930870497470498021968608406377939297005289215770006925688280373323590407524884664412791158869383537448633751245316532068603440639932592010769359872769086437110171417197483764210081121129856395414212434688857601957479606996825339626869076372555232562966847690704172039627799680541075650906263280612864499546379855039136292503008509725623035530527950742431786792592512089052186778930151490138748249481770015663240953548145507926180644845551964057859816637471318116777411762825116158298783944699464319009807337348521705264176150517344978364756973567848730930231891302496492199845230235473486233123762717648782267659812524429457117454284816603237300556419907296202996653496138710824709205522057492130551299017862262784971470342618845902996733994857255846029995930227557549318502909178010272758423887680608761359751763741053555098912579390324973947419075548840219121876558696508332012935397676631064600797403073204488656604543111960265151563712127989389709034790281947053610169927238866109637250521877041677381991423487304515634949756167182832959944227197573020348508217995101943425067099047327988503777223845409018299602144190354524465118961485931163641513900218625582115315788641452203624413306402319812719725149808188261498520872611197908400629097601867828853953520844026510813114194921081506715800527659309901806533840583616880264093295246012625664386431153107257992990639834546808682742338539081840207567967228875273164076251292491580837766128305914170619039146572394315037451205140145750261532367652994037390427528306027453961579269535748334715358002399751903345678545758297222472343166364676313554977376412517782163588542956744178717062975253636537237644104532651321138429950288909637476924861156276778491674867338577156006091531279105742101117235017325955472042022903621350962916165673992108724142666444243185229514356236251636223725135716863006385208264328070902944936987620288917960321718166093065987115570509502362416504720682117867456818907677951583058677338368940054101234717670701702592847914867544755816413058654545645409741964252061376652606868907898770660387867170127818307809882988484245838955741244712244976774934501707375412158180358930365268423041446603304996883686138323095383498439266264975036755266494085079501284382670307214170636924958001254456859624990473527049842523082834962875629434567887257621357708209891190321192648038060871731110563731952934064191471053276991608494882124789437600248403504000875426852126263388988649324917583167800217931644885764626636242030746559901696786419354827213088712028463271136006956409915014128196244058855785936947298104120918106242665984428823358510001494116912467679867441695071593188359280185750103564358175315882142636272587843089689408897487501611595268698295875103412492245326227729961754581497713765653260585085775325889915972007031298898184623401812824819104225418052456359534406753346802780442969398968165323875155765586841226230909735099669129773808107703822142856823000745431729875551577708119730497760603130219214572364016024683462389087428151579537362541519758230467079702723473048739863726313495830235545317490694969660570996845031448490275064451695560220177016493968208954519740878114316352010735821298341026558333591694589254706975909149061406511251710978960497158851478468529365477252539567202386499600001185457807120714161136703687990698358059716631037024684001412187716372546713677712707601934956104809669660213290446608747188090072705367779075373258131743870294840669460457039303904093309458001101120803146645268044296542360864374278495662642041121437879410617603052710378343416637450520078641807893192330669432880246977262090056754006130415466075466896826476535056122694075816684880433493692893442269396254325817892376720276913234373540561328111150727978312605590010341770596140666126026520492535150405012495284738004704595079071049068425159480802334982562224465990348712582888561221674967742652084395061775971584896741325043355445610785053895529502801187402168461454217928987113864050718704518420832281094497436354890341262878630813148245129276274152450604046341592768897756562261170041712103798375613192551157055808531814295469820354013698179095980377688262592661948828558567356221832950614072331079609191148949452292743755527116159898746535519669357419437433526157615329269402411707052517703196960979335782372978464051607886220367243165551332784355207378555092793721098971077158898015491875984271509549263301659547367781990258109834111583356383065297902729079903221393488597872550639771888902272390973775652439986420860606042029665399418231807739441482014731077446890146063184541413144528429373581649344908809314076151767622936601987386586925154122006461765229062157342253310423596153655015592689071160176518247776371195394016532326550119340578965091434748227953908379352783407589294942898665544309398944608737492835451766584480883353416323615314464322836133052509472355424946509179766194159362883757346515779347009612848790504386426797615834544811793914435058422448317316195535453436922421612093728559108781072057043557715612586873888864940378121529952543358918172534377781504005243815413819118755767283935685093005944322578002903293700684614208415253904192079280757005928788749001174307821029487918045834527043611333805916593408705715281055082473278622018875038108270882651129108164982027375307000337931316775379048253562632926190945625724432702318865456519020521705740600916178482741805448559406696343173806583644303473989691328718812908840040399249635485062852512814157368738217366584222384165919183622824282070007595309525006812054898193791452410631567390477969075674380104400575169784600668670971216052971687311125523301453622015593771511591612768835109640277377707083256185382685460006111249445965765991663730928791887554995450988989362405496528197400494385141046228842397297551263964829543875460517878441744868757999342806537514110610689859487542674796906869278866656269611594615741015896434210508888540196640935130144901362747457109599862448918782456130542249447617526494489393648859847788750569435004294091640414320445501698207304519602821977352452195844135229523440619887088545265115252377118305885349875885540823633749472909041655173363795802162060754723803316437818272210891023895661328437610761813305991205775270130043269313357473546842632683934347024822246866400165698728582012248597610618620685519334891038833366197565815948211655261414036235378973067247725702137763194595414730912917326933240681637868473536003523403689558295159906296193464074309134581430688508601921427284735914625486449346524109761219291185572714462808704029232850832660052367988172849774513218049057625705967163443479391237013960715195039691135286101189072973852945346108417686301905380887590247774451661962109029861295770341316059251637669633482296952116256662516719376533065562289410105214165945311968488918197778046925005563114736171276065730715388449453084184342017221882696225972576609940374941299571438648443416820939696501501784655604091828942770100472807667835916846234172579811328346237877494867685669863816548909533214639981590528179925780629219161707451111087966386943435168365035816102850949575671133117287209901581370685118434351813941951965770454449869326650736964673577165074036937503922901912284618524410390514786129822932089659305584960748125246277024426801317997720210242878621488681697849305737415523359195212063683373800405273518960604323261264938787522822182179755384087936885220972792249371902346563432779851723162241096287776362344747763903042082654913580876120439118140816840542710763764990547407987613011649918820996977961367683434092394171861162783379832712866956649899957184249584540657005342066115871030756036817268997162955464632915704664078500110803889673709134446892189031781848566212257803691752080354237434408595039297786234021462960043323505700787477392874351752377833567751030749074835725005132215990115851433531203408399101296779069031156255529339752926535739372140167948847967972164880127290543611104438619092674436518355926950188658115509638155790748664679088917728865104804414008228031787130288494535650275254582478414226234987589305182451248276233842039594566007014972248538666930884145922303102816420826876746172850494375843381734280366224244289976169113187847354077708314411831740277733741121277197072761123620559023706397497970693497535942029375164853586797907745349540374216307422656181708016097097203075151360185010696809657867693744444572143774779740770974364901756288093798468341140098837774610620775991573373414416057250833812234756971815205720674668399534847859632635760295488626042323308020647794266959496606561541941099425384140975193752210001795190385604426521268842743455036008817781981438235285370199436683233920187784185563001654772593577189783031185583554618272350267544356310130316872935842252982340134253999374114609654842119077239682723235090323342093249372764441752875708801870837134541234399217662064455452084209530921401121909291205210248479794660640477499279586806526665311171046574624221171104995695745230907116525214643579133017292645661792075285955547795749676336949738972404180876922262093082103097901914231003510975066973389231670176322311390835037218193165611140208425986901519987921274775299510137606950389372220890828250119331423538289128501133992234007490437769045303821223868842753878988359899531127436034124289861214541842823523963230810443106325409059610192526328507531061972947860629490954271813223603062944177883806468347842123744145006360663823247849770763999151524607765979538699993177602801731424217688878377074272165160013759962989432919823713328921627948203986304295393949974095696350449351218311034341930984562863514371290399592086282468092576216935864127318891351785360465523927184993142619541537556954511103483433820248607972073603511505647330958077347869146228443865543316976800244300877731217240690646154161085809876860605608862602038769188822105905522072792498425173457951076486588213584165949943839749612630778546969424583057943904199358251882146708748434021161897135813379786208503695496793903253540461783510296189177979716461896618472800845226816843116769835341651377370592770159511600572492525620797106218585636992803348801060665353899725977480258874465610644379498709898006862484806764689497512854540684000321193838745878316491106806538133354309942254806312250354708351651756338382253127581012001293245819671350727727821811756252557124767420250504243140810887447820045389686202595796065662401811620581035873385677778443061570780867393506819065567385038892837039055388505474640266730147494007261715303139353666835478016423769947842961445552479342289054580353842184787440774444578819309530937173267466916811990299367679114781547676161316056557230604313041078342951958504641535807309828001111337335801516353551374742122693724944080398951111139932578381917733529063108771015350839375503095656144453735472328395431297140608871387276155017866560225866920174198740495039864267904136559617684138143815301497369254228838478996793789868320540177496115306491912491358957651542983415488076611758341865009613842718292229544225340080881807606604415532118327798939536472694192328754703235660214323557802385577065105674931742621897091523141917265567809290233007536998970904306292028747839312316053527388843918699468210636906870704079724754898291692554727272493571074937512126807273108913950295002482480408288762009752736469050697371276795634161512520363417587716167632575203846567884700527975332490112288096994646319626725775972517944983291581204858398048877347497421511997948604210344592366829751006697428944115420843883227614633453016657184598310329535806939118295195945735946920243273979161507098485360555312716338337228023944975590676020415444266974748789151447224302143463614625952347376910558975094172629376983517744555879581118515233503574633032260704345411602423518403865588741813550924185987249316770438945152789409110038698655398451679349544455791086061747819126853535594882079455596027030146878960179066898340090464070257261678009359884478435125047646443747421729685263489349716024249828541993447272900754037630809389180744193361731554378970534339094788110691823157552956630260472345249153459021761579298607247259270353081557024338467294692950228812027301844296627964085677410214624852001691115477436374985620032665317837552340937626751585227735462607130102780171527819244914635114007417653319385903578285843769573407375222638279936133475144420851418287709661240736409595891236883512888130962179345180924355389152203341468389775997308887457385698335933804884042426932201496001783671980922269186353072090145904454749396901252427524968477074526321747310444598219468407390435811324786200839522782511212732994326924791951949511819056414217514991320297273183170007595584707701787401297892336735446921127836821275734131758677278472187053073252324003457179194663440955302382856665105625653622721670452847098426521223551415646555692335006929217570971856011032183445293953918465660918131773630518280340188475876328148377163129721362713238533630350141152408423509978948767431429733114188781688232604474325640356709549472373045895561489431254690064952663508536072085103576488512915312780612030241422347255721959318807322532149763120162763464948589630428159529474464688701870676349829237562946920598283427845171960332121418027701185861731395004515573352910632256705398679785089069044178832906712641436295750974942030561710203541558052192764593507223075237727674924398102971054222783549403680114857799513598083122469962467035969853817565740410959658655609033593197342549524204814054957013045575024554722144851104457930992278122086762603737745658788948199812984637189330348973822504828283163554798186589574847858804673616034329301518920116814745351957452350437458949602181761529859417878915413145144156471318605876583681266291409166099629846139494774380957012153009558704560939735033720816662515017146793368881491599731493099493821479647343565296342694585875360023648427459495622166353437800506469046339053887810384012410422515712145848073407400432981193258011289832323487744520462870760574754091597000481522607084611914123356573737522420469195183800770890128282845340704501199176548274226326721115805305375575074510341305784080972149615395123445525062657757457703717398282314699033096343807432097360969377285588149356777075178419539981659394666913668615495590127011108722496705274777436573149397652131490115864547840701365051491612785820938666358175914423693535375417599660411647338684376515968896553751723289906074132777944713692195670631294353758301111116629756778087798196559298216820368734241045239120870958418186247750132902312565665647199520770638532361135215840284436560603544205442910730075155212390405891167787086880125898334460843668545890930031389988575881183374635080444379180708429618002645163405388807977501237336260463059893125353944066856805278394082101452645327384567179035177061115328683797462755972032844022622574573669582842580077903808710590773992944305239648561944045777268478167944465895502003667229861790197870516131967189508713181284767207315050968824556174055238441558395005094808367891396175384442507405256696898271296950286048920455613117419899580104410580530979579144917793073665292991748062288363661026624304271137246023479012563314594990153346902613619417584970508068583731420608955165195074922264473274694134455809335576500735782855731746366753912553236900387615458703132426175270329319587119451739694482448649928119288790357055169669656215990832871532106791615352509153517430003834950198652573209388225109838463066962969527368014718224783985901333885505310594898399626942277757212563326359985952170753369145782890789599159570282697669692406485329412027547955715397431955543530574186709716789917518242244380526786052957920887942515076499088664823597970411298338941649151682737240459988306392955927119677639860999420156027312894114597914480400520947639341067217434894693650328326838607272892586444980886140820424108875230897478957003859988936340512704625202970957463017683347207597877887475959620469696326030318950229483136716941124059955891838446127889128790891155731533191014242531427581288156412926237696650780060996939296426761708325067016998691059799272268447570833664424692484034949542043919725602768248808737419759401656801642033231242165523449562552196010609240734774761336341605040620909614451030364337928078519596220922058322633705041343132734761681797448665268548511451984584421033430836899799013345892112556452992704663112295397621362548215501242751468199767829479189974797177452166100367810389366836347562943407394071402932051701203497192694244547750869179375411712450952649916935310349344216147860868714009837273697391255455413524779664172368995203451830679854737482696763225826042569219917123575739908128568801539100443518167057485998146525499402136936868772238757034380250543931709673631853906234617287949331717946143102516741096523124858025122205026805997562964133781649876035302115156229646076667856746071966636222896289650271951306309502527110126745829630782894431965910124870462939629111345002434134961969115716569045072733255643377690420529213619978404534212610770866564771857363986677357535205022759427996898012681358550841853604292058982126996542995753801914323058268168025187989623441117605339809340054553928236883850573624381570981646526426259179718797635267748949310387983758402341483544694039144881294123253297316752682238244517551790652524351882104799820958463476149815751272715018484207763407730808931529890675405871600047494237583974853542172309286557590316936676092312435307483335500016493020865142740190469737908224656129879466919461148403078008033430834391437026962758507900652295185524039360114978373939097007752110074627507239185107634118780737439977893075579962248282495897694000968093566444895129514578064080934221555293698065776185929422398592086864072745969989798417639735063231986163595359776347641148835693693203011995897565721035601280517771625893793205881197960373438655292953478295590111111700944499089167048519213424597721336971000231728205382381613544609544647467068639035949336282477223184484911971908558086005188091792258672711054863693435598093377226065197395205808025624092391368721285558246814142398766308160066842698288678173347664392250867845876757843384268056867638931760140083902706221946374451964996771112553163639327122452113406326681292910652720790284967034855771352252786288448327050921605447934607956855919723137070660326791241416268212606996592075873396561904341834835920522305207126780028629076719157638808202587243773980527408906575637819994237337412431731144893705579733356973209086900037709960476078241758519217018075736148643966316828054497208548664000463195030388124771369099931807434091930914593012146328630110719870410678935256471554690425434988570524375011626787638542581371975583552180557898200727626071831593614761175004653040548974787160779613526258359193460545384302014774395672906354891777677703150238048524343988973428483590066458708856704371408331715718532357068980249794961618702842270101504151309885041151142365773511579604287124634967223718693346099968654899378565716355708099727385851840824078331913183310194331420991266634403571784784129144308238872496375912456403588171934962876328479122903106295832787312954818252410686203901909691442893223164426696078197816502318669204299588418143100445610679944703392275985068973986418745946327238285422963319308192231848938790630284076642878612415211558123361653682678815725134939177661037339806972869634336791798793144849444352074318227462913872254532468903248050273603003807083779735940627529009180776029596178337956116042290332434411210725758867988792776862080213423876798102360668170464465628640756953471310494223385708074558390461187547727857748549784326610082755125080097687577491037869004254429497876337912604553709488702898864197851580941149872608585019649013820216321366575807663165933548958231378325929881071544533850343598864955822876220437843602970342402451395889779149192243125025496842018851431096598286450467100947700061538321636009428555337228403389734092504791247856783449684254000790791476064930383021697958906957223619195647858774737817619640269959375395828373222274057700842186389181882569111046585770123726391330893457830252699685712442140460351705373584826467501863746576400402123973752211866596543162654893265966354486750488187851128271056681262368811325260252451194162358616928886927098060428374868007284074485242319441464056409625970681735744292082770741590014312165119299812825826254998932216607105495911796824585510189441908653792757561796877488997022561751297171495680836324683961781328119171031161078274879879494196461817629034120248943717295790084630165089796424342709140392937830733711144672889072247499055814389887562755928172202798676574030594952114262187791925218936491047672966048874286103619002818313307497890215520114431843566433075904389950270590501873024118372895637372256120433105683305002965186340394016589013004269072687369660323938479096986866057480372542291479932657206477191821570471471942704275298320456001730605331250586875067012193123375309025684082526449682607137665968882411125409643700064845792092464215152281356394444536611232141613238557318014234194683979979472612782752130601085157749312581999821359960225674833591153653082428869476896768668409229332078480094908422102589008642815035046905018948346603679120266453471148071813533009187437076391618564137738832275017163708879927435740666809472572290531372443314944367578665427108953748821820804846645545642174449478192148460291952291731610950756557545065905614408467656782321421456977767190190911924357530634681404526860809521124820282138213257101723624426703951558209238922674492115149067969402737759884241282387205253356003796711297330904480484169666699819358459416222485640342853611830410927163047270436184532215657358607739278889285755471084857300111009617489836627215951451650044649308934500439912256719085482797818779663619930261091519967237844118241514671404991858297982817093643408219685872578744963504801612897239241506106788277900504880928498412293056908891681598105687225585584931928541280812812386885231362500892863633800789468653358334249116612792375359833114777527975216470063233218291857480054765097234547897831818225760657810374384876881959488715772585222389061328495573360007601939086896831747243029231954867168379327234623444830975095789998104707514151122991568987238912165177952910579860437022306808279187448768795997249765998203001859804194743596171106287828124948687230854140905386031745248030145328174081391689971415505007998281247542694847394398764864910680586556364332477494365417963778025232066797917624463872842041113422580051719461286712311523738883134713841829972161828449843342854343584187531356663010659734391579809381615130749790513352450601456134533990262240194409937795087313785286407043136358345892013880900864956223024500681145363141697709158336337299108197720176797279790788008412827580143601858196722512654140515357715825058452125593377193423685569941708954456757763833249644114363133119907862122048178702241489395331211200810952848992897107128518437750466382245127224150874982692379790770130183502768396811828308242008412792531417123852855942987801675709913672289021285680520086840297950660549252493651057094724123236258760640902826918614068625808007845338687804408715448925053490632185568493365437107958733389841903656120510784175044779697519131175640546115726707095286752504098859504410261726733818706143878100367831795281530764860091850901387236348628790839424837002471228055453811366652611015189122627177573470268456351953252422224426738994260815873573641825336644997719960287964344615073949625529319076030030544457116833102459153967181031314275202389260519188717931739476363823049826647095993620218187592600122942181539148435829355018245522046038507367357340054007716157819460405172247402254006571971339433987912942511960026010301155582496090977880261637896771213779447045954136387253103132516823189284028161128515348908827753045867646571929711666029280594669515218896049754314593488090987316883121134188781903908274097583100541531592333770492335229448883704897023117194940350649881159479137459848356945632217704579652165820287689224208531560763406973053557775466532303765727126228411347990659656030797078249468345422100286262631805664362215556664623536206377082391002371445294186237747051721741635962675664277150797687199643045965396294670775584601996539465290787856152242561679554454646345710907493761431502637172842615324870930512845124088389185620155149133415499018039687895154197810328858805405141390717638846193389716387117728296341471528930194413151972541826236471756504827114944246624612023573942681503255764743030544983608516385325603401438799756057449089215914452865217251975898187032588877529634904837060125802024526628748889775996256636554723830055450960163280652271502903978641917632591322324473319499904955692387891687016296427169834036669860071305264607301473402060559130752722533788803554135989359244867685917485031514842883583707939839720733000154284874598190754313308078938068238937064385504422781512476762956792497046643906256526603252531209872663938514703683025103943190299259032633079320015385074998429176894930692865308469105092758855623729637493211807755520524890902045427948355832418686818563198409650043720452227923138004018966504047303847451637295413403492510195109546858476748531807978928031993676850594063639410523288386743398729566402598695420673590124667380089533168876181892218841855684426567517967321122980434354932486310161003951729532840922404741817720162645309528955760389859710469202267960619787360512465583170864075716816458016881287968239372778189744126314387523564237998955238475225792443878622170342452188783054193184823101434958914170879761602615639098918742769628127552088103920214611567799074071015333354683560412583600907327167624467981850649911220575791188049354643945743589259490341034922310988337010965551145405395294936241175938910396190808160003286715384109138101882855298641202067650548020473416484478156334368973399196679721293593830265352628986366227241325480168541343998354725335193316469720415545488577322190235493249109837727677795460169653789852511634758097895570639233773220549564223305372642407556458966201822064074448711962129760276416730048144799973714698221733417756197292065994629473744234368715557623668720526813609891477626412132698060613236740756639798498840358846960187736956467713621542286484608791521432515103168474636361474793139454792114994625355718188632996466011777530278528079687857731589639808360295861947808871022683727317533792462510325120545724169041951512900078921441850829508640273108039748204358332155068844871992311122381912221313980349586857980518065868695999200581996468464604137132636599996420489855897877508428393944036950068902146329832870422454709655606331945575474408864347333582254202021686743649109978351062396116310231840302796668817123481982074987117566456564471814554803994289748641504597809262144807553552265195329932494694012399451108521624639565177690220191389728733786311659143284698679168663854261560704093219594085056935859756233957893462195797870124153916060323335548091264261854756813412722325524782481957994350045384398381234602759787583363936881137321647452941697818999714633083508336943634259275014051548866420048542717948683161860776161764718733373318953516581596949346622611185362921916252733407853973336189386105276436410350823427454376100603288727016300336514978211145138215030816052954526396231093511157358198037044827527309594948936052646954086054091958640089573516273125004096176282904265921737298748261205247697825303634784856244536846984957267931955720043980191571977276714761461199633411266402086806564826957070061364070743540937091027541827158021481003451408119871905933850331406691356574012424472353761887759006209631313806492725077139971762200893382084410004434762219815597040389370544605420446193597870024630174265711064414929737560601422187874141756809352651190063648940041627318209216572714591480433676712724278522683921714296197651160790052035202234736989304723087065491258015033315340882246252901263071673389575317594380672710771996993691113549314146559654163608802360448687720269010645707947192395995288162014788418603250542269915052253122839419837139796853101647441794446529910400893995702937074092206949376096192975988243258663964891542765654147107791992624889721610869741280828103269489192233330305861971374873057003302546885716592512572730649032727749471344442352689847496605035776198053191869546155041353934744281612566441392163680055117193686964381798691405356069946449534938600947785694506687100938417295557358205334691851646133424236151991712741794106051656990598889277790425732543696983685574496712061796181976479649737924436482100745541275337652542788505431706558684172593845407325756738790660148401347290620252797506081732886269400312411500498623758357121256929497979277903543443901251669214577291308275749577841273823837921683206463480858968350797876643337805058774164372833118393128170270466614415119867606110040242033711199367119569591382509889999549894414148824805232379454848004240972525568067723447644462038481250514638862865669075716728074607832908431968223919570389962883961238749174053492021804462729039399254435188334616842307328457040744544931433317182249195230291989964741871961294186923530273280483402655231123992253695764306937858516781726958788301803330435052245643949895239852688528537477628472851780254160592692102892642934309316314679321304890788192472855635571180756808498355241135937374435507228449224734405329081180743628627160128954179074674737489160300965833804202641253462324256252954626577050848911917685406536122855853940019840842845723016307290144268383611801657659993908171163145887892945762786578442863526880692458884141114987205939724798257978232141734754029082692673836954242581304924806854530068662146286475563823883147111222874773028798842543910135067725173905873036062330241134401109682219159742754614937312765660995845757921614236855162122678495099105464514765135477078759819035705023540340327702306873556509400888831766566871310952933402913958689278485627667523198509662613216995347624796985083505960443303188070101705022941864392347778196496586637634774441250904846164485065474068733780853693522668489353668802584461403445156342409483646699831721802336156098736580265922498181544408630586162739528803834305411492829593076809537500027145701950544044468153283284726395947668015775455290755857190024844715447685417384540287623605286148221711222794404669002820682660965341600339986055772805208718274458672985164671111802122129218803885649117171767393510959074473142904293067833356983281382003359600190600451726903489188448363018575674781708967031572913132148922254347719325715950756832763838079875815792763471722563854003624360492688250720679130029460430374372852352081817972210925567030368589512503240569949815146971715929013592277735516677972176389770726745844827795506316100383212097274331223836422358897605300285117387530949081688053841528250468513556459117640363219075008950062937512550631482996493969440252928535825012795171593199026674898294276862455900186570081921720203696883182668794124700995476041584667608982645979674058953620300466201677010989786842032876568395630526862089449424314863087894789768831743573834747141240139347716472951751264127555215102807525943471773892090930055987657367793568898419489003201871331341730674914524164893468347403878594281275521891185491828340499903071759853973279704039625146804020122260555020234653140950500531574096609940174013197496222583488100970772668349124607588035159216937991869208179818570664629286973318429223941281920694405575086370570616575354953049749492372711957242929121812580326292183265258538745695805530587340723529561812476870532019560589444692675725376019554253166364675774990763790269529696649032812992658036247283889173797293908586320884249476315314924203503223176696346578114197446417223409620260425939061440172914530160952977050002157262696910852864092920067519038464076257721208988312599652485023359331687972985552074568107529134583121366894134666426450787201689133893589289529332021633147761673251792351359296299172445281826219702838296176994071263709560622671701912615893207820790876744393821135527537716101718376327831984069708954593817797693129897125143376746465726285065085866500300926170793265819212966000862707335963488291500327432395968328555561291036691638031893864703544447833285739026129386210483548072953204101983552121319099597497888546200815245312414378432127343897021808166390258360749684259410408905271850832452413507306489957361145319641579980518219768789881187275634460473758764573609431895895936566103312769885927362638598864003441226910427854320941781267388027459626085642896458963140550446084306924788895290950043721007896738499332462092345796997770057668602050834204698832885472765131421921030091957555916720220660788355333803855407222725386019421244863567247130303028939814288512342149438586002443701263311937384395747985740918466103430209572366498684887798277723725952371338958247309718610387897352055318544765039206229179682308710585339133873325985614757878253832982617620402054318805201977802415772335390543495461362776463415139999811784538833189447013873365885630868209244737595962480346005350723847576535645378114443824577202388838614036617303488710890303456198064612526989158901003184835513120060182514931375818886142497327520466208883403731856571771015395566548186859409081141377460076417896041260342312955956142354773647878512887864851713713629953979359052756507197275041162612336388589540347142492057272262654159695465143930843297690563761201596927110531016558233407860825036992990553690452990461194469151361559844995002356161394634818109750534155370503697667372907753683376703475895020002959198626082595374607679774681021395646213003977608308217977675563212074113587308577151610366827257932158328235551045846184365089381189659158806065645550576656647635822118304920165756135767354234552315320939420380089651888323964062985332156891797176696443213370384791984489178280562498255408085540734387432207237185741524021062012102350020503754804914668860241558735636613178216527906872602647818961291606621824774098398174118278638979582625243958007752701157284467568554690230038090096595558689595330842627660011265120265753178138870951932907909296125385762689144305881514095511349929395927314519612434501972372706348160991099627312667460732151002333593748819878594616067998556518336471182490632550683046709400360844698611273010835868228576309449767690791192427477946300042333186462713343230945854300947740996727952250424428898902599618232127390547006714100530469795437346838588466541561711527157243778475306715308600914448569630987406621017372877274073722778226546374020256717787540103063600456939599296870375374238791689297774315946046183645527108234322398542127929499712484270066296341526718417731730988337142708022154732779998802439896780360394803551585640678370985388163139403413710053993383521492822466589588501404406576843699055849260791239458135295967280290461001156792990744443342766169497296818493562120515877031466179005373078923978408754862471160662484706286215484933063592651727512364626064581557274316710847835697961076953000912672559101452013327762352986373303061205584789430147323750356666629943334507367347121676137041740007036466385021185916460056791309383987870478647449676773806139140832391643863544441379261467832043192480838406373169087402092699492959911157207070195750035418974905679951099253928254431252195676130164465076515689776640176096333270144136941892251964826224044762007167767535712164886396525217608801267500806137263414567368234332065770580728654224766286182377417799715969041119614647178412157752591268533721501210064043348732186246217548841764852426903498458711824628711287733272091616786456124855376127765546752391023323347380858840780728555012277316049172802134195341860996081777719094201675549236637590063710633048510275536430982412455066161981133180549150379632677722332836277503622112457774161493361977003403164218237047984500898672087279649490125767329105911914312319821680508025248456992934080578884249567758577190192104208095032359679939237101207183044864950895611687856500766581588857037874770611816715144070000856813099313017865496508609037489014056945337338048156736242157754364135487461070896152748527872596956118353311375067698595643794292491659008955146748484295532769950847894440715159813296651605440913490078462658053065391515954738082649109402526000024955745957130803264382323050591821657123687593795407589522415360317129165361531075564060052221190891234025708039645117191401357366493433243322547292129099163715390355775665077784389944017905119839370765327872954186326566761190428307719323700888992974731080210094467667066734392863469855807622854610372416888746235230576231099411675735965124317625598924302484727511724946506019245704379916862757687266080617873115649248862277709864950618195300829784128396719308611653113049898501925897577650929494146672166308737292683077541506087466582147794406187719795641422496373146703683950549385301734593444367345152309697997343489600166602381717470008498305805883358274206352908894281487217415155583393859125765201627179380955599611609689457359963421634620212387917183752209404610085548919188129979769420615952308504816740055809361536553702508379777655506453610833540820482091589515440713992372901559143565947706199709097905716221865608024958292676241178514272118930528104967863521186119260017857029604719546623607051118583117943736496632156969422078096504657404118825007798410081521594606342271178494879947523119221593275221370483889797130856431395203815349798130207216674570620470986042903749421748541859309173917347464362610881719130811582256600740894256815589589803637315845009203958276672381092524605126260692080152202630986171643903672176392115777106503049042778831593871411425394923667760615787977244982987528365482874145041448797751527689947002496041111621504796493461020212841650151753225958455414871256490059085639460702815836714269832428010053004482130888053328317895017999022500999851570177978453093499668225702646668380534157748039349589364156418237795668364349256869993359000458320646605294092499127330217687534710869315972594576764567631582042684349231643382981854034348354197894503716526364813498923635805636585412690297747506904675925540393579582086127142757580893921792477724679677319084152055894620597591232308171964935846084656610135488325616228351477021916951638185950383897426311447443154016788141021228038253960260061994164859555028723519398525417172007291786409774185094594133674308077797415451751890946310535226809269404400171796243282327495160541960074262013802927499278088474263285960490895147370600673598180649098892287157261721610993731039565967676246718330858077484516407001120287660613673850743837924507849730161143732734059768081262389933194053322649246484459228037328692668755979782997801753895501307377064996584420630486503071050660423103844829961695881435811469286458759247854277259877691385994205446039726176099074320737206140076979080069236175828430335050779889144583449361692477529453197199500532647748176656475340308451592630521760251485323103386736203163122771615411515998235921869343847167455625330691903263650978458629052459821185351733508834083115724010714537924900391109718856789180395763917768297840281537062316481141909354111560307438812405742473297592007537811705899311782245164062740418126732973065480566534576792045671878257796961654498967460220962234300301892895967797326390052061385564521121885569627643805153175482602710801479481279856541266205408427327249713397514370164901716548910010489584961840565598290558815707480999515567638019609102747911240203005299859284479705902483890269858125502675475735632867860702751526032322209941182669764125893832072742306038207076960965165172932859084563814790230760299236323410778776905664131048845101873330328693649062633765806027779801847971761518659873091496565778511333333006286361979674251777169535460824502820160787487197501688947099735091030556621512995708893227033636043422689387682634477720929766031894658911890581352261212108138553705460534293240200956406460825535591684483918006097709268560718956221661641546598399101036039453164166290473800547223134595929749301614718157778648561475912375997593896544495885493800532287498188901575991485172801887745773224099237088279835395303180604154555993924608946370892237332509616132184195921042445656726343235884744582072794982697560355757924800118839935205706530988196926538691830297830166017665680043250407574117654588965875149373597136668513799428854086359138367982404542706483918763679408283767168891299312501715179402737126981403095657280394623347007343516496395020861983447834865562605645496627531642879278586002219096084513106135457921485337886054552586609535647874808667035878985826867790986183659970105093191492636740595672726645419365552467902634812443948676679912284535109730355311194828366869343026464503329212756326732302951227703856433940609712922513596349672249465580575848733718152556742515539856493863190806802646660627612954175040967638657496275968938036485275591160258149955242435931016182400265431088723722379616684449467378895618034381677738657016297681106018232584821274757453547463446158882177050978247337750135209380995420974106951339074670550523354122908314074881253098392535812532087021460228896308612532902850932513997181092619129499611512724957977948118966049854886558750187617317737961229254320112654963822387781318010709984337344508511813892000312341587489789273533304282142330317062811849737222335876069613458067346483329723413451907821212913377789498814018224586476590677416551632327112523744955369217373843424135867383303032439333221886228053501838472009514635786809174703319411439704340147203422122756660688366450175670267622809794653421235901516923986270510951518407834893067956591429096992615849638744512219806704252664420478755116789374046122946119541949574772188788924674935673562802480637977786759816589464719842977764818602630382707865462132949273553197302712602567202078137546111208159010525417843273468339023981745831203668934727585253956363935313469845147525438915094704409735387038789661431920295014679024288888952400962352734716576814916963789863444635112384526591034127522165290865291740491286313762642034794969625367242106542516094197491073365702698848210228079785241663695947937367385922070801112611363017163380838221307759607394306475790262301648069078242017348301224072092527181299045055004016834676582493299034907083326209793892742422852768475907157123170806125690079572399589690764353550525710514124473783448609100474533114292043235550401317706215678084899090750391448228139134079286209183789520198811455014987249629058071436239078994455833994811326796144912592166452848786949111852291352636249728649260441712524416007626151378991341593353344552785712345086894272745233821580838452995645530793514405793282371264170111206198038880489823314597915632852111895352777831532972979905394812097478726900327735823386788509063589919894134489296936535814668711805843699219135689844690770101368130909491068978813381578365885285029223611014414219460200056461184357794726013338562918974055820055664826963197058140072844591338079007654612603599744356207909724274755807553963483731131152875309695717479958960836370705993429565300429662733730939103323425863431487817704219883598835862933721360749304946371537468207005774322433019501858142625106015615908796783487667613256471349347948750043882568065542526241699573282554575678600613796426356699444687189450795103608667244995464940371101338020446372449147328952530583901300705884448800853807612227383490887603657029764611583961383555667669484237479600893689102799581945420197439880161929940419675295254967100046192203791593111221849061406197677588827415712875246393465724592676787736062252646534298401737694189022864159736912947031444765999376969748645721339105087430913226720510265948315915033240862011313516288705481674865275022168872177305086383644613355030486997973918938079044703111640078886042768029507522438899351030998028360375434137867490944604240630730743177110760973252457342249520201958315358363720056784358064730513452038399503329408406423035154063705804075366662693664446690138345332907682224637363655363966491158487630785624132726481465509524470828001701549629468644232169170619196321556799885197721757586509988686505504675503690809239459259796318081349242178152723663877929559451626876894055927039190029789282448473053631532585725631593678201158285287218442474489976662584047642100563270481087709582860403847738442590781930365193215904667080136063809779048756954405127256957134288995902494577473901259975344071810957535841183284426529075713395841503061082398797421808603787319950026864545904222403933201826208887642202000092148962143767041602829624682751005110409619920755486793407282515343606524182812638825120993527713515581024264576795225123757396260266528907873483061627308171158677251098768731407576380762724513586661320770247422781506582224529637382160850662652489467885996113521836277740682221175774685430478320764674539025718339517664803681944940368774187328964962842034074759361668381788066729042980230044707033523755694784066233597583054495423462364292871883189712792286400495953866493165576967000811817517843894391813793203564478225142346669539538028010483431336393516356501227004298797807440960812284288353629919022857979991463444005698980527660987368498599393517248390839682714580283939906223727477037994751444428095676317115569980855355375197141508158074749892753081500694653379531983235852321272689620649805634377449576087517484086960197192264073300693897782203663278710771403345699080968242996376347187382407006407572910940303985406329658342411116464592798068809037131214892064752933227912206344311195132663511060743830098929093984974426362679651189256184896652065313851008988691497539381258501428110374684496559875012731664279203741098982815404083223705041143094333583265994318791669379951974955086393015336113879110537459108743369967736522338295567785487267239572739799866401979560358993728922698813417098153506830265448540581038376788228928186750340343547493201016710664327773387984454068447211221381945413632838569251507768930006808575353715349417558200118409492287917551293615416780828373065980193051489718894683004292932718244982589436749363034545825848751264491755740095431603950033017675505763927225795232161789684375299541736635099622837548533173027101269379441433221323067382380725390309170003825824624757551187807157986061224457688448092887325811798760293726594292248642322019402724857655150809519997524391650964799003290832490457076111827210520081868566620149369277529518710749480381998657351521068676122750157529823660435268999459873128887514487145607130059148941124471556025224619037377012169113145491271872158962947829336901140816726286090211868781913113050458214408532515278085274453482822392321756028297766073294188400924544007051195632060570374790960110071229136385686578315889927173337252639421886566681944137071766002937800829498158405008405221123253122490229101390996439386321240049768613485837709481899699202356390691528033666511044245870993134893694394321108663668263880038939052352124814627990069685693016711283074454227253469440089057243066758249372286875642477599048242590675085100725162801949372050808839314609086436246810572181805024435803967897450016626925265783857591854718380161217939138539266946124694252243000200046427094216365393676514517363730801259590834729974167308323633237335509215877464889936006557098586766802004244869510761421167415050699078450315771178160564148920328704454886730945019760108936877318535515114819849227306445268664661456352405906610077971751274275038894341470236301609424364794739305611591230735850917234787786567243788320444258818490704327471504467092871418545309755604088166214567085219300019772586691631852633978363281145486668644522770075328832155190283221376376866504628036238496533107857956207971607761809104259484086306775378999317092219789511228471129773427273710032127493465195216725107375069581411642237596996033472532183189325719853547930991738584471716194788005699666292887940205876541157984661203324752647579846734545533885737563762985299113597031794709645279142312753749424933007004025025992225236617641914459706736790560134578379449520646674699501554779510519895389286315479214997166008588260105974313678617656779201116496884422095681407415188197693970382573773477605341133150840311833732463084289579301368022354025145241647491511235521381047990785754464238429941330643436496082511326125523617024658512976110759531196852362600878055237024223982162761810219283271052817696871601334138674364881014875118800754368565592949069062378262985344912243778280961690841456489152546681224209495783335510327640464701531826919500708171955680540754856017519746073281666389746125410172280793225863835100532843164216571207886496997577099251051488207410864094907042995203163151688226715367618207195179232383998730917966291426821623864279227907940227958479264856235859991077447621908709307965966865327437130717761561985644554859838708432642496671184222526057476144592510525259699995887732747820274494948380354258093139900207004215691090888072247884878054574231802970926538538189363117735996958102059222262086892739943830121363171218981705816101379060753863018871134051915765908536862591804070491296519716003357721703590692034450834843957670305822875002431812854055225196033418448122334403422704272429932853713496245738596281478454672823412762770613376676250211539584018756751553547237826358865718353536187729183001297648916028692039584348907133145329691921897458857543601047124507080804440022407300067481159129145888258052131988239898208439884277528976832887972338547053263057461286607602461635434753897631350202075686593504511130329670675859188560144485539008478201279763361673629186587331142841164966912137295526876111100316822525636818603582561962487656587246665533698194953613009600861416472632261911048660200621649100390122150989986795388086719556871596655886300087704034315458045491586669097437540034633879597036139717422371502585957491411394121007779200358372155626463078389582919562323415613973558496853087998703494979792803811835439220710525691120733198957222644866783124969549079538410523404653143429900777127530070485986959484066473703895876725044856884022678067365366864322531725632726215961729184286361612666220296120181958815698717397711498613869304157145068618483673025409524853436312677644635884148049965585211340709788936885326995903294172405560108165208754431467258028236638238262878521627312635989155026862830624666137548874338159796051510700932418434119847575563533503286427533090796966183523962413339738984255640420835303745881271918798221145411535256912193555823600307183868118683095119795268265865229627106022892907587232615282361882219880438328033405328488198771047407137843459255206414701038770235919548090672327852436251073390984424583802718197187214362240858657482664676967685180013973592446208717619019662430362753017665919389666273427761227542728446378791083069481626599024258066735882351675193476611543059579855083902016458521944259021514624798227494467399407220703095787505626000653451205171946519579589896934785556959486822209707242496544435614909484759472217592417955029784629059284995872354690012191826817183352692087429934473746296815927721426095349202546930739920732381176659835908603046900170519704237909089735635732632198558102530644024637932773428430036712814785356636332739384719667210303990134082976798375697601351870097109237389851681034787941349199550652041033754394976283218953737729959933431439002934480411600993958358207460580870168033187282824793907713421889066033439623574963971607175523588363399562952095876219232418145998106939210252918054462411924008996894126361654712121880044032645196787093929540241180368061018146964116871106392692771515919138444359545208016566678896232397279047301431697618312336996077614797889737142046143601538502152753817123304018770289315482538073405393054393378089388572167676221304144896789518903151003699475865379161291659638019390959846535406412437795523311220558222765689670076174631051594472666289611428480151094447130551780504586402021563085502979640195927393392533840700687615951865010742132095006108315302615205575124507657360281254803605549209719731847597521990488374515402954905264259503165878029811379261684382553825629621485346858036056053720305968676371301470768386522245597961627302893038096443427874809210959556150913864258619420435611566514244041387764368264555105897661262584454517143849433304930361250023330186951209026243856724121145243657424155912726210353228882701986008511946975841615839394480622479824666742391533238326778285783775276275639890777705987036579099631394309429651839816260198215466818452326977319667782732766725225965595669708051468130342045931412936277007402470895890318755474515915143295752375170186183264519898648136886607351971641674285921462153152805018265517935940940895276312875840729980778672148593630471214954662885628242801153944429984347155202399012955802627318158919744782283955584380537224631005324285316823458925714431820513264797870530039981904471874798827547628898673512914995830395906416320149339220850653649068075521867359705098407165207557261013957819625920692864396600877564955869596063864722847370709612764437644098937082752579891066123632327269591918284823113251955097698558928459311321503528657923777012168269530324710520871268811278316143317857234833738296494895843019971646793450982114063926553172745422623524989998201160147955728821570668759064426911364460168695043814709387435400984253657716492576857518695545576411095472534589832495424546062651754245349873551763993749550489363161837986166792774646688988901607982850089075732559333195025473976043299206072820894235340878815340500424793448336347560212397777761475499140240340485921303917688418328541140287515479553950634934394846687222044029634470359112583642542864623347479592199530860177821868857043636291183077702869170732080887399868799863959149241373073830874283737544035667371375342657266568544187474311875473730982322080764249625550910981257064572207650178992268235952497935276507371066033934481044267552019515821112072247293413089073796076897965962752460260149689216296307976806354836306667732623765538163939238185689231361782117346009317079910247876397962572407854413022774759037754403125535331477591726137225639898519481232433211489067376638336859104990453050192926159997763126236841969031121755122702392382535057482592988287233760094851680370023358240667624573349682380603345201405558709144728954715476708186414733420914705181750334292041877318522605153546171895808657923614878424126799500339242006362805907856882151331421909198992544621114047313627947374903422263535600715594886236892838109796957894453526552178491554358384426463812260893503831185590703125938124822226023530454678670381451187443153078663522593388992661924041869760461629341950356153458803366768547900081228763853041375964275067762425193992709006432914671375463732851187720180926702508966075386296310159220877876844565480323137625861937137658113812984526264688587521563298505985845109581668114315090414511550178756513092768680317330275181921459932250390101596061568386427739405188877561440727752476786058307334298372196040212854248832658527500772299131703475347203103376978065335286457087472687081954459780780122049334751719449621957101430442399563391559885518618786957855932132381164684955246156740048003014888877851718234405319020742166328386633310283044289538647777893176157601716910590354000319998137772885692936158343971991535400682993007523003491493219020546008737114015198783513518354592140895607840438091648068400132747265646397035872195846125975499207935493654294279539104543193326594164966634273673561886309474638665079217385373899431870062115824958398134233555042359813234697835242464888189945162836637149433505070138676005145409037429977886747044224007823516353873821565647528556461824860633897746336637946448043128511380217930510820645115935701627848068552181378832091442974672970475195790319335593198171782980101446582124666181425501463373404707065361384415404479881971859724700467240675391770669803292452885752165705688614243444441797101247627802624273751090466004780851855601685037702312722030535564272046834148481929131866920009781096683986227437711656472979227341311378619820033367006646821404779737008820910361708784197328240087436931216778130859380823281617515576087467211321300514623003414243474498560952098045236891602787345476268928670610103788084077792588170792275708181088774779896579382594589737046462417273838325652016528328304731023659056346489369889015424244346247947460979821998858244123621961788362793340750294965657568384001140485717030186303484699194041185850014643238524628778653846004905778363119600581495973661963439182203640457890477468211203397610025143254441412477209853996445955383863798417823688134598099007681958175478415958447215556705226009762452515021198695171235511763899139848071118225668580485951764935104775366094535360205143108903284362292637964196252615787467737797392661433705570969468235736924279217432923454955199053370345662187792515244022203047642613795015194869903492996728975660979506863519048945025451592798433957889094574817054731235937170523073532477540699241613081564988603463555166182395019921827013980903686971782936326024623817105633118019043494281134884001321754377916993769471993767656647853344296226964246560531208515592639021138188542080603990422974212920870968756253905141145576387625119807871448170418469047064389130635331894128169740068283541428495167516856432267533197374690934986215964908023211636829304677108874907257314864478871508944969506563369161956470475920402861246434111866481185554341208148097401238265891328415361737089604254223832007815264071319131895033855463749165163648463786090457231915676116010739927855764850513469973297142906032446869440476655831532067385840205988733961943884891630036167922595743369449110203966440831126437210369031189128032192801697904955291480010954397293860291408261474564207092260623408994419980353238632706230446771425629493152026018425483573206651157207441871574679942786016958842619234052578442158720877936377980192960347040049678700695145691535660879003148990459036699964577148418451089760087222171689944926810463166398367278062090266243806538164517563708017710811392825291504503250533106395270388338072237508325530772573615411521134461267533695227807933403401399397495213512569139082652205464139561042842836993181085597016017368769228618409653856023390236985470458134463575222252999413863218985957155487098246918588106661719647681261214797943666767430624584638692139461028860736711890891940028189718033764776288352728834743367616477348464408714968995966296944695398633781504955614266697124029937850113829276917693176891739560038623984324829393972809937423719946932534632912102593846982681117828480827615416136279916448922763981881540603049331548887162856607971308552011646186579030776148856073757492624366854368356458205442951972319769331500958168837677412701940036893153030712917051829540870617488371335482785274166678855490012951342303510529399751693447199684772023748956454273068987267928476660137305406857826539565605037755043455116856429581301764029293420078735872815591259304048648683878599506952624782567782625888104064518326021363032652570472286188870881530587483381332063640553801345502420010582765803556707875739728399623189496516555395281084409734239123868909850573674530295280595866268806344990293617680216440631783188345025895282109824381256809747359858844465878938098814137565350946643689755659886849381618696692318062118838408582212019688380027060872199363522613077723536783722009228480003366188877195572311596152536847166641625914121225443703665723674480088634632838477463503299187450073587415898745142320082221196944035750184354526064548524522054366713457644628200438519535250675846945477836067787502040595321858091473907556117338910408946905918264499325639166570333761298886725671340275116972768767452649143929226123953627959920481211210522301476129850747617879066218969115847214820942704894755671908613366983843247985162694155942437013401288723378552405517642616802567982996237708795168479539792508910165806342778942462710402635645952109500994651600091127550388355919768711551313873105652087389133479526369120221306941402859381649988701397163422591732651594826883443422167594921405257118603024666153961724885853465591286595119100129086059152252140703576402499463184299101511495985400498182443922406125026445065637274889045827475546680960553049563333991702870333269408640946832996997862226318393512478087253774386375154603501635042826487066520983724137725309989962449400335375021381770358386635829535080311401753869319059658737136799511138769927038235122523424458016173183705482364188863465269606968058619726556296005041007984832409628660388434799000985832265712805599303479694050943486888862040058824542679268388692663670178415114135796589487902851584884891619938305896151512884808603399132997985595881720720012802425740847213688545335449379985261169459763838600976459133359646808938130296622448062462820739520259231020092211730977231973588364969884349631948392290443513144192196994230572877942978848201608330434860281567858059931084095519961988740568855162222934109895186962765218598894890998944162656233312391975387202110030319216222534433546376322749229691858763261991076536837232508671246618268387503361638249747706318750132202321763021588259618576117551530518247171561006449567333055891625782937975773228485164735660319489198567356851301466853095196576321231190446332586022354567312596869274918356665352416582468861423452305605614143137927066679005317207550640005691004668249584717047767594585969990508669689158630478930985275197212597741874676342938677651517399353084782795611307688972587731098437047333278785884956665175186499981122830253592610180779146243294271094934525592427570116316535028806105254046092074494153315064696742580384022876710852485666941795887547026351515956274396619695596717665088735758625754919984628057470173231717307122175082746970675637542711164214459452236145857298169000316115972090027743353265183431166042846549172312333723228427937221388234092861300810802440491945318529711702849012921785712093254300768302626955864967335059436178010025728345955395824153238311570425047986838003930815305442505802434246175679753684017621761223561147729515769691045201060656971538903111217268919706543055570532242430557269552076178605955230223409627200740237535690542103298463853296379592209848496179452626776411880466405239422362179687742286738104391070530627306606368181289117007400489657847784799569932228828902846665255845073203850981952974333055060840708904423318738790097502515357560321957890069142944132772745157625052399620734463895473990462952543412590567159292915168751351316438080928280179264789134406095236060812881975583570063488046514468303474135920482361050793106091753945539662785816272556772244583317929002202657855744346565571251084053107326354302535196461004597956867413689760975251368796975540257210407528529237798453586387262958173129342089248198516427974263692411141783199606490183366548531574505644475934089727199702684673098232133338359643581731138136502288854985962051208747066768269720303801577677069675850277270262888358755478059406447900241892180175701191221481610491080316034614806711982804679617280624160377966040282718579280674983208737983566739718259835624954218648875451645583158265176060040726806653137480985384078860624885805262981076560410045218019547367793187315908337557350738841469524848879892085255341560285560914402263055008617466349343095341680442281530466380381332844658450880972903691759217210166161601996151976842666641108945454189903957256431702301767013834425383093114731375245288223553226711602478881345545957052069844140514826333036472876111307050654869310048309477478831485807887487381124168285373439269924300275826956639445699789170305595543913852305402887481873843941105837419696470483597610959432213893835801519077134330147237651813264886586341231095100153305483001778007629843403043691793200081906615368338335094885965228084318087853945693142434391704719163324678935530876893699102428098852440627358684436089992367310755257646338515396134960952214215596079093106042257566246198420581629525194842381253073100082052161352041539341114898650313668724862483912399087419116384668964295212459284993366666710182527434672153910158271710265465745331327275144116645923503551211706701060441951488191706217808122179906313390370545276061766054584466574589176666648037819651094533389094121319631588319924439294931685285643577716478437804092545173053372888249742680144288134928135309761350030045270302652617310501332141070769026751570550592253848094525243196018244329609671850017643247121938703021888508354820248634129123319589332675887674990242062545383916808262502827096878250653273396131117685595754170415897960419572353189101552336653006274843948240889559575002394402812696000449872162909544451136617866028964713586463440119495957656881965886551465044708454317883217271903564624616179179504387951650330093008421464922073574962602760466999063509157217785361586671160973621680964591306758412747372231230630070347281629489936463860673768767441174563601585914638130773570973750515811399265201750633701517950563743853322268524217578437139524961305001114693752649525189095550211635383395724024670982500435789640254627695434601519646110011185072761938795827057999494313513936975699720746845012875414825158210219206915290048009318964169419378937479356470685991232401439313926238196379539002759973828286373540737177897980865998955367697530789699398300528064033411620183008232655122001395169389696181895817182693082308258686656319697004738741146852118631395549878957319908711601372308766354141035762084693216842549327873332674765643374976345729328155856010154565102167939222009266083309715523377484245297500886028335284106835267127218228354347780869047231533721056162753222829660949939628080489788592973495420691133936419190037348964091305839797964453673152297704446648201955922619252404157948696650499900859195398886827648086667680617553802337147399194199719351976633599018386311076192787997322272452818811346126693517684282488706963633819261529922254144205144076273561155267103542886930643628047619429404733103009582319650187692860168881176525206283087930993002558654952648194206184405253408150639850121310797857581914667353672103826339314152502885055115371802141174121999608002389884725863247296509968611143650038732037794462010068449242048540264869240104750154424099720212218585354178098107183189508146178775714592795683124879374650777278752919232378292001069109545271707829677032784228045316978555851876746246209896039138463315833310368591025013353633963623514697903950923285630541607560051808579170516274444964699447587765180924462126255039412707032447999453795881712496232135881294029805318121333658171179509821709419999138703241293547917959835892772254041753874601949112082978318526565217340214280879704790737504708665837787324937771014695973942122074606041650857419594322226760840739464177440696078944995948102430278070549840226601473252691124416025900569306508507952163693148129260340281105378929925030389346694109421574100124219498931058028123567772314909731679849692119861910534126570080343329141387199503594890245214083736252291766433918047142008365227136048515031480312136769887973855262237484500541583475756948044703243348264495376651849814087592209089749829712524382688725371290091019574099290978380854916086789215707784280137751103074563046809491363917825203723747590385000226145346484187859128754813292733653163303493945007993061920478963991734417150944958809708139883222966232696304932230781581343629185343369891559485978779963140106165377923466829611164711335143726226209340253351128800713613529600145178042285089075504459832630115100471594049153287769543584992835405145716055635448792090402063363199324014546885960554050331369214941913998653419441828061709593121112066477054509129487484812892212620919189005655599410925732206082622975081795482612609256375705831360264130689984565687965740280989640923494712079850923356862238427221864437903792355588221054117165607657154909815241313702266118246375733619849097773352199889262901103940116009710216562231972929086722373316811788862523996673355828258939392800800433550065568379299011329833029264384584279683625470307382536811704474527890880137734809630040045580393107714473287122755617525352062316431580528783455408403570778024068168739071407448866232426003625966430684969714447533306525547644281905003306240011059553136638702712282745779624748419097601408322840973258936043889208642935699884116138997661108406779103214645355120642916746721372291665078632601684053547318993131734797848905858656361829713853607142557039485862189951656915350864886751837207998481919328203801944624863593919624554011964600250872222673917918010147998725059117773661674728612618751754966638204662488946424864981223877361153426755118584348800501620570135506243942856751126329479122697833840415656783686651748265997188738374148362574676302567564485506682798841771630639200507787526812599663639846161924217998841384212675384041673801569366705842174948430981855818647341010917071444244929000215975439865492581720945383247546209550626433720912947079415320540854914082493522674143086897453921695269634756748952003827837116572593871580217441600838033535288804480013586686858818792324090433066017879838358684723776222052993246889069691664389777440074854778255160749281991625335208502572654047183457804888718832630703625472942017201673776296877091109411054502203657699668430113534500214831402895072435720409762784221976270208536338416882883406966311470232388837526150414183687309098593880791482134598026809190804685573181099959065522214160901170854333172162465381854530411540986985877674093501660300708208462118160892537052886803067008133430107749219184771928515193344259139567111944827923090417840411544327779216801667459643880471470058188296872001933462623670913611111741155646789822699057408064346140003989856234821183254326819053816048956467810602628620997462681403068685090953092678862519825551526116871761498498395632278956439882739324263895230729290311850954011229578595749951978382303393947315021751533884640588004721965843487550631028455202308970142248418009934668985564637085440437735359261120138994222583419183217893834635267872539659342169802519959981997294435948167675939761066031569768377211764709859997632002184554801171639666932618007846158802188739999779736097144508512174731876391813355267548301217606995386745115876745694192084033949224280392336636078578874272651781722698965519439967275922569042518785191364476024825375767469044741554611859346788245901040931148754111073767188908187886541158296101511753199060711633702785388698286172345122891453929656247510007588299883319862204732558059126184567011785633114094087177964269334397632493739980714724738771754582698081566908659573762300408657311553629845290406188287981385682450313022568908942946998026862893364388557494088941892150795914651670913781107730668670786331313576423018229408738661879252317412784642905871681447935620478501266523137510173205748534651119553284596714373231341315355975835655398168481545317021929102884574766712319658780198949959850303894681007470919315785365313504972428450362400625545445493239563616472698523464818696459615748213189270357606087179772758382851906602333178156452710452909328172643637134099723110749198291452112135960541223858768126379616759135401423399114299166809717848370508701392311452590683852362985906687816857958096638627547817223046654260764270129445641578318232988410252779707275013501080990289480204790030708873660596071474821675428862314888733671504819263348332169427334757302048388763348177654352443638875305002434012091768983356618165207986193823674533256566402069860381264940228981713796500932789587152709999019125390945385006845087471937889356220699810334506371515045088671902762187128623448716743390012521168818098688997023709030863016138491015910249438028053374289421072110521938380160465513381200749508283817411431799458077410960387497711226416894153783620059149805211938474914489859113167362711843446871332459303499159587763637382811063848962776370513067294074256575147532955829800712193296396284062162193672689120754263802329932015490331945746752048594112042910986581819935665052000966029202413067254619416141018497235189060894290300383435888083963320479422738426984415015926497398338816494615717697285276995110637675396192323133049396223740748914964252902774026608840427608932767324766917471390225253677594275894917739338003706701245553237193586604961868528693816368765580480445472653192333552300171197704903523972376695310504250677852926744748501568027232737340944845846737365125272168448376096786270920206224499674032516994938131252877286667856130187167793422265266043093238846087412225155433703196175654431858308141534152368586797937613577463480382734728447484672251749821295747850306348509270952919202032377861823557783219210466789520655790519428817985254841886582857591509420817118252119940883894631517266098368616852754708483536592112970379955367576093002217964929452588113378929404330846064074941269195645258831492754871899763020631674310577073268777396956077062089421313182531204336376096070456627813183068302662042208594403794734311150706766478564910771341318096959231190835420251544679033379442399448687931650045341125736039932938864377913081217384565101815619290665404644855831562746827761443063239298079889272023878202295399496633505421172677832384841279887625895325123130997603334745639326312723132588986898987651686007399785594680854284198779016727393330582734622417551109545897244430401319671411610480505568089106657915210630788980910907377564283634069514344065152106044248635265679714551337959303257983301329508274038269409494988209947386270212350534255432068192178713866097262895492808206647164727826236883870925220511869672916734038266427192330351331354800465604098525534416796916198839023572286944691316008625919844046288789165397159400470121788618762587653291900001716883408274807679360949212828669956524255727140350515248298958760874515401057572587659588768494751768018085356102771656605046852263711782074705388998433098123851851840581569965520733435427255746772831350581120681086168901046197903746840869216288232996838220254965180465654914579705517391113942426726368277578294187734496627725125189665010809589982208700125022221832532511989914383842449884618833251693030959086318354050727008842452776371100790167539902807836660445674257829750092126760378361818657071618948127645800563299133569440009258964311907081046020943827946791767919723607920812242421425378265623756065042374818460882636512946708220353203961705800496627796146964942975140977096613095940005923820110680706898286212297096377792938057644088414948705381919003534596789340464277935185554702630485185815400999327663240928753714591891092109600500644251316417579748390424908730501776778268610246006380761945830357549459837511773986097509938075729590992056465369307432416121904737819893210268931599497843632624321698753195198857372232138840596632205044097339670981331463556360071919336326378428504422846603313339528993141072688531374851687610831005867064573902487165809088312219942024024947973422273196812954823035111072296366135709151366931825904072763078568240087865710180716099110495938078597628267202245907064166269936049862213688464178317583462157504646654097463996847953618541510265666765424928836771090934643244363997013207416161274571555124914922129157086790002683426452335768235389627298918169066163282789141694517685101100820328187533074935312633612971860492825217509673619545260126603736847466907329978998895222654915340719041869552491277296792229719081272512324978113370991116871325246260251441928186744191428335145810744773044732516561829866676309707605652033839616036923583363343864356603953187131705953576150785190261787454698868123295964961504169921754864049157107153504021931817419942656020861184646253744192253916776790098730774242519277174378819632004402481747796700544277950310234317149204034416695631653544301868113924034133964019337131030078525418170832968842672931920719154539403923903394952391761720557546001625210223043524970913367766271219167197401440866005048982115999408641116623306572166355270239586086331969295662308040711373505859651119588929761054622036583277789501122636835948787435952394010098299434618171614497817836474647086280316341371311025585909994202700001943711882812470467828938886478143261990981966623811448108824411012231237869399336867654108467946927982900939578151009847645500709753958918363995976952047984774137559411614246712359759679439250080150852907223206724250025407433062305390510767937459602087294039604703366248648184202865764229589813654859798920358740106435031037504962883383415636120922232332742989415016479064537400524989949928358327283822349997279180248446531897039026298364715155575571337776558852609979159627558202838740413965444724235054587792787446069375351359024057382207410803039729473376585899304494857077406456044331089695705579636366716013325385694700725989608693835182228494883252079246846536562929870299464184149373832157812355176229108029445041506537483154494523954491856880876501426315945530336010080233942717431868307261975329486739004382428193474233751713757185409059413860226948577889964199078340587592287263991610612510647922924941345729236420014897510016753170987055184104133958056308625303145378465895064136816144497651357463682325764836404016863871847827618235484564846825809389860465342411496355741789353028826071725518681498458428697367598471349609902156831800626734417455455794397549405222206885713841584301958811692411570205790028677885982907960160267814751612123236802440485375059372545434867082153346636424166968749167043922487481362570717636642586282148299079740438043652612659881925809944021410110082087878471437243862378143275663731076987701560010854293050686032366358534475781588875212219671908986607094906191909868325516829098441248383898829823453832759792686574560981065401561715600381814044364369600754068671701428951961367502443614391822497871772714595716338923139373026055888324777551561283821926726367849801165444104308542431959378604331303598890491890848805166748112455445243079350974528837596695991776084489300534974113358098120770038138655751819305411806097237358742658153879248104904773316176511620260873671836043994235327102700640303968055110339210398741132786027411913218268557145044637042549283446326896884642646963408051790544751010334714501508970614133795752917362643857371884752853399452631488805382067749350739488756617380339762980163115211171687721388650882779949289763667144665635518309673230014728768009389293272717068621384028293569407686543450390535010092764351490331777086647092827547391779653033541149948205399220206684551568968720541669386895166480100126660211679225800173374088229500036587995070144857038771558605021835247217356819881340983415800045729564132963712933074951099535264695905803876203272308564290171636249944198595082637597707541140879207859573087727807888476237245915621432889467166852032186535548459597034945964649465972341756720121492517231818622590489648317427548806119087014550383638516617155719123837063969876527238919408173629302499157577150581725679495175760319094532817280646181995198203128898972255171985119310992017744725144405795075749257001484579139605327773307942246448245449138180979836155798625494930186605127192918923638155050381245540801347890216748165198810866346735698620300450217583631974020128283044376694095655495299394437601609357700784535407900860670666177245926446497882426701605230169994043064763760174163006142072890352327590353370190960484503889230506939543681146360437442667739913453627909212471446014101720345975326950650187704955027237856642328415319921542014109399295698053406118710998324425013976376152178713361271409425616942963099794096145913102643431674542510274770236096537297108308174523342353212828488528416033435897642853527980080769721723940693689387602380544690556243578462226571787842653800303010388755333439258098191297880896252629829560254232891840870468105506964394218502245859817680755502885131583244837045250955758844941580285039749798191749713908417526730782857521157927469465114822550340662784548484794237250094080283660592181404738771363051630633146737106551205939482954356579734573258047879138981460152222989745955581434285175774141968793107001230886988048307328061293526701964545471487446820008311650598296875384020450268392829481608754434760389552914697059720466351224017216788626574312217399488793522684611667791809144967601003282906034035501600704785010460067539834153290762381176998594970797541788672144491543777979695183059361093861518975514655708080744751624898791561101995514382892671494220197906299093849277753590428878285277706999748063782772860595270521054224488693566423915120467208017612475414019673594255546582500412976815274153355354234790926563535016031638323921422519305316176764020363396739993677651081974246802109339021966321063812997597573026142411621015906133363365742259218796645727776594076595416509651435112526008754755394067563926099165233442737822505146584523185995354623339498285754291838466358087902586514156033366824982619684467197874258837021390501261497169640669223493767708968638856031492829210988590381694670737448337826131919452776894232351173867421438111881673112830887461204420171731047634248491937573963696441170811310653530629391140044171949164828455857838722916611993327597693959903934530382273938016854488709384995464633280902239362239379219408738496235602904438488542883480294125615072408665436459964028329558718105387890084809980133378090141611743125476914206448569015618859483102126179399891155448723559498557465683320190239861671602684773874221475082456260059575717029513793903556992623629597677027951361070420917937326751508865771305981574622791084582442837655158952923217576295458479724291086787467012907331035018424369580851173670170707952014037587415147215987564068826132065326942628940952027477283352570618767877167597256568333535110200492866439162197515018025468356744942486019417170994444837651443640245561583460075170122797315903140794708454968892695969861923145755620321666581194148745896307991680586438963136525843006895141400078908601389523653823385146969569458664051730367336006498432362578251110090438410000577172580701017506885173435495321374285559785542198533260881690446040298933100894497293767311854936842813122905059452170044637858370946120236877167297220866134200950188088934103657281182141015266800394961187963400851666212983381985991892433046789034110579444491854796206502061333103207050505139627802947692265921011271488060659416475476634486720210104192995176033954059604931587365009179411271566498848861313077698623187888125432268400556050661922385149735262023041333361071644213717116301394871718099596084552104281320556782689094270585335381226135502836841287556844708551993068341762284202715500998278949460637279511960554200485387061375288586292902741646838205167120786019018817726122093888848568271340929259851321448285668418857326146272753057463360510052710819479193585872705763732198749462367108202166737517599462550576769693619971192689547522054758636652188549509700318141403508403225409454729534300687245521484410149575739965671639587341689881157141792537757753888731369843026157809803261946745247219076010253155067254391015174350404525942192016973849924927471910672108058297242809906418804792079456541654128505260201583766942384141267715528700920074118395788702215540455495461926588695856536027711793853936518584930451622497097103320825278946277732386455910759701812977531346272963265602709816966310608998897501958365838177575975686914137264496433548042217203698666206097951467396304238777414535278720648702876688068747045932471415170207144775415898045885876458063410521968399691285771156904732248349412632313730052960396320978724872955128206489145891472444249412513589546671739572152668665590583350939174935591072413445144356886684390266124244186752672197354354597847775862099699189436181046818066113973118293096780738441713610005042849085422093797435254677778415628038692333576460283003456650991020884213593834143544450040340753467216433795251620421564874530255450955674079046517225335781478464179673816504297003874967517084002091136132493964054340767116596728079953095290813326043171167711121281969481689038925561209785111164958287800482973458645485106220427027921711335678038442714739454262655879176285635160753950506981820374568749412236882169412138775644098757229925082058665124751429994155203466147580669706321888743026671598940719444076424585174943147627029869542388890914595346424736857973171300371777356273379668810104634985241996629548930247101672266952162227110273254098616719883044882650258476231435772087162384861555496910821424534989063699513404843203852407623491391403000765988166457960034677173763817921711127802419325032383583303663315356056618208394778803831440231632939325687910267526593471050116814379925935952490776900264925584234414796610810231577025971596806678475979897340481986209223197696265839978203402261728247503005584707720812697677155490013876947016219496884095562679160256472041329507051984549306625323805594732442366249483349669036363463608449880016584821928140511955540772174068746053772657253595671993869543461546488738554750601298829609175166557375947587165292600235331174904736635297750867397390393580176154220649469426827160066295249826327937688607281863481634892527312590782901850496873541846976586767192383765385673718200287100803250657775858310746578204114672840136992129938566277445893359602636651026734242329037668027242263217175939060859874300161824035370245805559551754192275455124406642703221656253242042513669838126321657651904620729206432486091986842724591045438920629240994001036357062179985583165677614131364861784986663372047449484175453166679287655731106123052935291941621892562694252533876007832730615937570229445707818533371590434161892804643451819219506872847072522833616829525956320779849929581559996670287817499937992154789007663699724354562305586127586153498492719836665721770868029818224093868373139598718759877010214862654272660919716319075648072993597858134417944595027915690799725275039425539368936402173992982809966669348506516132216666413327947682937515930753837750728085955942557580972767355547199438680326728977285774335540430594412385930858541433276660898779984817527507385535701756732068756371783861799648896145481576016009672587475261841025320451099326509511910615615832039235623908293567782126098108989342183574307030907862564702290856832603974991065705073125655730846575534133303001880082463661920184756413971881581671741023480412251028344923596032180294556191108562349548039258933546189335151644874247373933889924370233995107334218579262473154402996001043889520115439620936064230967113400574339868423075227912287081654739318554063952827889108339462813468463949868831947044034942025628886909236857115785402649191602439485392715702780755441541172938414129180097997149644684533507273756583564181848938301434818950545913784074695338749128459158051046648746872032939155886680683382901825029516371377363048817795448672646588803584406379916653987356034131063409936958918724286211900582510802292957873435731691203094030555393297440403644653223536593192803715633243069607839279065311471149179752984118158142141950477562541321876494147339460654360010778402856603664820401116054951623439250099066395694693836268613448988973548119969764180963168060856930246871956118329105570539935923844540126051285483923325385571488069128200219468110455729408264984473795906604485643864255844496697650940800855870888409637323944325319024550444678762144665926995074180969799581285396359851029941570334525739131990564557162476072269849363775934983651274224782895637506441404586985786651965211649983684730586496815290652974308612036179496132641234781431829948487863091841540238499378763906880758818654543310989869288767826367319763413422170365502417036795890337122292776917478322550733332153593039558613284647098774988373102026018880138399299929690931923362372380159436827071432099068236521735448273432016677232430905472747332024809679146295572427867494977714914280000157237742716053915966404992038676889314788013913739767478037014828557171864294014478416408738608356792599769530379830842183440266023199123046815708740346466282843202205102286523963151849908853422310848248377449130359386732331567513117140719245262512094021813491517525483059112943764498003897704194455607722131230432999793744100377978060925718746709486857278013837737706922005032989592702790264224962702642023685002707491614230628432093585505233184626562835003483767417993683539454994420321686545894963508232812643241550035051546247114936716334669121294243524851027339812973432647392578570004323342160532676883232709665349793948092216917641023980214925806702064827959273735064222226847356813673978588294748883156661658677735049644264444713602397744590473242091188145344519472837785333605848967743900345170973751859943622537895697660406748516574339626413969761069199531057734489336033566459628986646139313236400014013613115434473348590132791403439077872442903465455377894277864904431580291840999596841639969756669440192776526589576969058003565380443184761015749703117366913891187993715202926400319700214633381054095050830526797984964550967229114005622770870775650250160100440783310764807910588153207895969519879145056261279824209177212367470205660890034084962390303333202523073194367410194361837372404592890521168028171145363749578294386390086127584891709322121608306917784548503664225600226581433029117200586246809123558346494114014315042197050706479529242302588365873391732016958488627420966492117123090217262366864859337060214548802672900908231599746275974404212319175714273940936439562418634241060654266593123029704474172927387794835903334853428567452890467836537854353462776466533536548232945870060496276978355833111650398766477688934303661603511870127247793250981979912219769320235510654829426893150178466542677550248839763233620042376182381666749172643813826923193593972909707230434222219500489779280837372332439052638093767069050668295864218074045111748123704068941704383869204864918875570980292292766346467465556762547536737299851446749580712635866270365128758339416233025696906944131198300866906661327474235546607880046768450006010255085811451616629120757527556166204797068331672212663462312579006178114897301072813268946276838542980234703516929142247929761360836727641526169122046202317490270271078651977222927104922747222031587099872593098805145509487131751621532163247180646992856528408182656300428386352386455526905718966807153533414596034861765841395109149348856888650628954698705601568324444638497593442008851588082853233351325019565254449691505024042445448000064421640167392694850680252606349775943380775794658869153940025695895561843171163219481640698250283927437665624158153104522047916852650863808857215895569148706629024708944292630918554742490560994630010841734086234979982014492145542875918846308977613262981008389946080209602824784077498285332710721528609932488381515245259909941871482467796458232180701972779101514468832450134973227675684549239272658433237910243413565993988065516386510506540543371288427596714584860853587136495356723563733788177114830320401841368243000371601161451703611702060006655382125612627973569063904643254741637977423335734725208879397287502108338781568854957214913350332108942721508338182242782231711605227553216720135245330214342521133494903963388641920510628857680659681239219213760848951467904643118025523853049353877113129580481018132528251228597156690926643658969622849484417650215886324087081710350173193626836789371561924319196111694972614781017751153484016906961288141075820464877137617861217671113320717827717067925731768164504682698773397569006321706460472106168585375711968099409190639975487007305002801369308646822122200846158052795847084257072986836925039129197941557101898130780085911030778482722293219826024547351572055108200770469243623181415621732553623298414325189222230900703008632535670042683986747492731505720971157260451635966380850661116830265101689062308703422569579603292466972224730892791411847175606357898130747007845090857430198283747746941220032448400549275045856882590112151395541814437233084670209700383776886262149089968585107290737065251790469519039781706176748057733265526140432749133960415833979656011807883766924472906936341036755816139798533136358032856838374375020429211195113610136066404498700410429273991853398212247044622496068326921794106661391902787981141219285473161042812033060260848856616034289700730301642594223131779211641901081445738044263156785502623795341170900739306551345372861160770136061575906741435084736837233448678354929129141062257281272412899384133379676456585339353743506032345663691795079832312726356397378337631611101104938182704459033107519919056159660165249916940353979831412166206990430078659817926059856689285676373961639307892829879996688583442689675443577820118604523211625459553586354633894267816494935168917980887389617401140594354782086372208879566884236456245617362583370184987638361115271777189569742736299580855417587802985506476815238892635967743197479583278427627738735398889192478946827392368739647719846753716159701368624910637322936537469272730359727022443079668918291264452024674500291845299046093942498441671665036232837865346097627254937674420244612370943198235903011404362263422953998778156983093015794877405887043421884872903957945066633388674501097143823155005163593130561321078303470847757442714364216959110950729917951397594302736813198563412151663997905524414277760016344421805343041245740708693999349847786483468142348744422500834143615205236073380569137533894479350399606300376317323614050546155532204494619294944205985686722497227873817054741394198548187054140185842602360210644071660469592114331639599962982369838814036568620540691883398520016821096178948578993579670449410685792813964624238620643908847309545163304165633491314494252546068958830306360526054704813857002975877737754479582264580825175401644309623297488502629777647157962587298579035979456100259132949913813781536183329262795970386679860765918568319814700426114612817982592587086803402141153064155691700680546881311262935656908864595505697635224436003648613358671561592803984917117930443780962436867429390589460947003816678951676528340184660811421682186610320939472919490792477384910860728880853969620165608734184276174191599001143832322306795690464657385122965907478340305884994545380107114981116231131468231968025172030925866127138690090824128781067720283521839559982172840192744817551965250199134853840419324107087517311950413792731567545243159420274180414517615526878659428382661717094439327953038618976069421196607899089984043145342203228100156984227230809225639408932019124209941765566513455580106336693650067351318159011458899234975016917466106101195942330897676256554244152349892590008955871701438491235035630704493565537795483887645962355410753314434481429911700518487741222233307015410645934618231267435689371334466243903155473639201376865340735077830763234520101109962293284031503162473341966400958964336658406062839129555396276950491204803795499160891500147729846267541152370107820526266293080367286668747936479496492390972485510415177383758749663724048146492681895091652427465165196272941745043819593503641545625487940992336436706392803858551169984370404487351264900343159226317565993229707510867162777787633768404861547311375512197154986516650390682705629164329947691633956444572301756259834377769234414766773119283627804198598797825155028490570979221106078545131871047372754589141533738947415634502767287116636996853811159247870475435732553994884814767738674193897078933643987750158001420710858397981555040217295349808797016556295311092387858199974188779484547160651942509090033846764725533748935824692937101194869426634703128114380509280814081124243922713904401537004820999645960946441344487249630502061888531804911297949594460117517860476084401673710717961529284469553248990205089474471801910517889017198613015835362203658539039797395398504091544835196224206848327109276377587654816832165430321763275998627242938869136390264924220048704308501062783286088145242624947498796733382615299802277229970084959574874413870249301960220897627146818411541533420263118659017243898199170241414940518440029999530364587077120811273075356047681267644392709341117987087194889568691860703909894477683125762417950696078287264499352610334623822471304645665176305878636023814164657773682714370857052221466014820349377461046111637047020590813387146390111454921514045654779896813198711785213931202771621241826708576848477340310954574227697784635294068256224162563740411046060612966535983493911416275453310096764208450341841931273127456506113383267814021559523172642198074570659788048841787804507515357538093073341540027836745399823330175573921726440071855965415801775425417279400841173124869251235558618020659624598449476856490297796560550314387142030636300026183937619915984446483456928896716894241442260086339211973822243699581725096198342640949744645471086259358052783762101072604020220144951512505194636826481256461711383431311942011295870982508064597738709671335736427163709838748368245515268158248102202410951991105948924531871029593003670835761171385506556793453046042642493548364739856116934675475977563376648533665000821004338918191041859576670647461240324640096655483146783324233669584557672485200648964622346777768002978342956905146222788719318660058759095671748900222449588579733300360978247689599806630394050590820111774774996914467800694381077866925962625779584117963640179259296208514879209546228835002248526741726441575898816533168554598502294045053675039627627416158945701054852603068473555035812242367717494648162388568267239479355224873822034804460001291722530715097644794320540271310055608962570074589241874492031877645610101637575760537016782898640690718139937473860326073543258269851433097529066232948278973024696979663533468098436272100497055333713644486496628401736157167148923719682978016937064450404986146245354134035858840336102884443734263017628183201253353674388690686495780985147189304324926234884678027845142067535609165752931433720266622809194549197068820693787739848186989938625032043506490485495805892922623625746747358716845393218140843192455065787063797488651058464983609176885919439050212075677834940288777729312518312386382645857058825914002522159302981608838389636088798079351399611009580783371243812088616573984417359149451644092215583923005874769662795450623605134483003424551865004934967345017873179278564462274562933068016394530801809918767974021458529465023140219728337885230368802503891868276822804710371908035772316336751172233832030275111511162208711169638128139843466258775919542770349493197481138784346435256598730619955335089886924162947903505455275557704128333067191058160464439966307629841716940564977837771765293784210327324808227613633467343988863119957005533950940711211458454782211972233536195832683620595350191766140276201721513891904120461139405128685682621885160558658830894467047973325978147313427362039396671534005820698371873191884629620601709369783658201090066994609009578709896423482771648402814580243326769263308240360378319668570078444801156361478595638759048526343849879621186768620920180871756251926560693122236736377977385938802071687013774641769441798702513764006228534639800008277788690235269498605979276268384248770073125560412771234179792349469139459030758512272520858290861688534082492915050206293666403272520335532777571304019269781998658062885716689573769429862623801934270259650276927077290008306753180107067818684439237122711261852708807341248683313710092285227614020996096571124972867408550397171633952584156412934068418066907412984680250395685463416857151998887273812688566483016897360604579124440796714699097230971835608037249849890327516189215926088544409518461935593056003631348460317048249897761889322970342976802463491778391050027476841214172575917096626200492279640000562204539669942484748886181307349675155684189567767086239110851345779668576880539926187235219312094309673352116625337792865359250058222664742565472373503358620833998823279837805503272926870706973904363898669929390622109413044131541196725364129752414589538367294624964482439625443497109941166439000709702129691665913240145407031555423416574613309788316933570258035740937553562723876924654855502337638128550184802163678449556898673151554484523666349616744429817915885218524491627374184091363753247948346698656123057879129030066185050422465802717218829582533399571986699250020950256222492126945348174919334781648765361660886199318113790506674962038168512317579531614331412021435169824236916166017705897423376570235145274533927299484800187638324128283875142998573893800016255678330767358537657729872968415966099228193147123718844626230896234545325028541746072717151803511111120250134543421139688301622071167756575143631163441102616597808940777677361244953974528394196938789877749322344882389080813278035059925408269518404968832136806412228589693743335539966449013309924013184907381293986205754691204145059188827631315247701559565187385302145272379791120489213992120281290629244817485595500847254907437675540077660295984274350318597489969386833754614181639979878905444998100581254111770276075766181244853039618413352702251751578033753981033852647950918800880035629141194261828861220625529610562022439104198818586788762501593746909723679743716520568953150552476518573437296282629101911655070936348569497451029007469327547197964631151484705456628331907685492609472508064799909611564182874701525733349962872813063546231334994250763857306920504568830187271279307889879122020848902640504698264653017873927689340433556890065349371201274951800279773199194847325706752477197134097348649823807264251452913515938929264891778151629901984833997122583211846624654193440312703314609376629420293041186132090243026019300172242160692646747906665832848837587447849441381664538370444334788021020695271920569644094395376433985389218150617296131229873712700073550626752726487941154725992319742788843943733951241747329247577244020793110393844337490383515415767072921265411800069884870014387285364262686253506709175334098752706766464916566124969471375349409189147427924592404921652379940630707661085176009234541933298616884540656323123449502474260229474818969991222363049305742570645840141936266466103732194327125180428888188441660380238977244363698705438817624431093078226090849789151857960039672152085070589824309912103824919676943129426096183044951914341470155258835471226426023151742412081319725351168198252173663816528094015329059116809171411835404919310555759231229182462137570036381877618736206242714354943962401243343514693416459468907498123425927317132685310671023283899829635296902190493872755889463332522420421544855469167694117808354403047697007949331327418905440922852141562146952792626694839900604169046764965418196137619841571109026790188479154488096008567534918108798266509464619567291251311254150200234816019861869089604887560722834171956777689525537596057411214034531420207385893902272644803819550209540676855059647729882149620215769503753790245614946713701254710123220692373437598894417292172819683845564806298480193374648967714445464820817411234028532806453539946715422633739666366344357907063525477537832801075936287925980487531370284456617604354833285677336376567253183206593080432434843138298747499602181359932240223345226389253569411907212087026912873249687343845676423065935775779900200558402891382099030592211083287427607845577670167925651027693214752230972669699601620922102411559879297023153964936604461199957815487307816820043141979797084547241563779292994593161244494990864732736746375578714950114040827492188529719989776456220012112824000373469661765371283493563837099616417199269721057247744048058340813342126766536115435416909972215267161324671285641060451459102845881804778057306732842147535476135605401257256408363811937746594235040198971730054987439736895900797789984542368484468100159681146579990792106688764857291482566259826341354572778625959707085862063028068431574759125086449821322421156031822299849305057534760030229854184289458009838240061530183179388495005565534730175925364602438342916936113108891252775803722881079474022919555188043280441614627224496721438693093022908275859487778565888522513884684471635548799023019326442797887818132738064310328531697744014372524782170637486080694359114182840896480618486986914832691523526189488079506937020418860419537276567108482274123325358090397994298091777158384063819087205074475158603262301328418503657548142588637822304056753039576681660194832013284291492778712589779762571630398775851058573439834899911676560479711165758135080284411883860871317311861666780345163281620865251455642569430310781158193192120760709714178549306537437930260135905573126459071955702182663649032926287392485250191249431549911265497091025356053035196626050988344971482258636271540587538396541576029541872437068796647613050656119135688412315564204515114757306372992491061825826712259234703039236370481183752179126397481014275910836517890021037820952791111879258049078085196637842456445006569812099872786689559011653004846180244483136660969924547623963893015954765349934006845370751176523979595598165856269216112531894209357791853431580514751827289740720668544053725479589593614615154763738493307028653720066171666834008163282645995674253442513936976764351185129877728810027466202262945782225981992961828006116423161654917785251536847132163403982102129549354920116184577037820495445830366540416340747554484383282304448509042762350336971040675651490203356570361198300578005714409981217906469522102035998589472083960438461239979441910926894376282565021196100191728392165262246172913025224562650451942190474908253457573222548631963009463597221101489444419233014484903182694766139831822766403660481380940632156587115113312801389832029890171674496343393223010503563831642684542639441099499904937673943979686995334657534703063692742405691248718037236421268916322275939988135776323271330404782371950109657612117314621525289870011342086856473012283098152595185034918647502246459364390007770984235091532497650288928011220082359376599451153998470037507570160800516130869384637161314924885639632873512827644089472225969394079690511700717982835808574711300260648963758544446117000879381073203437580272800898340945271303905366933815355858279054657625575452694542596497090596791864699888870439923554595586800696708561232153159016103412822768976052500713078329224534065543964196712310772941070035598955744114445647171416798522946500321465907695967158106354371352782125339646381202632754705708432205451436293558586230757867566676110482220027921374763131610123311245831078078512255897786257128296163960291794258585179566312505163983738063577803698204321787733164269529814398916916391276052951449090854207476302354612014612344674378277083724921829160188944361764338591440658632675259060403734515417502829817952495843109854384762997277352137013106839387690265120339020581099411266561228385477377492863234955588877298469119660258857737800747518003226442148579948422398115761469237771889401100672743157682586747817199189492118691719240080766747151649293468865322059164715786399013767596240912575582589487481959463510780586282660814253724587980285361556177991613421261276055711060243054293419480242376459588401757120136277547967054276476119824397181112130814190522942608455085161125665826646551757521974167592630522214552834713001541082689061095506676389757557804772157920608886260979543513462628583810765786534517911909947586352589382047022972658875194865434936578896258524497154416920990392070518913909575046707147924023556320861076374013678356924692731195799458269745812740154342491217374152869682415874845319404319191696558391853524967988916990978612674968765457187875955213999140200303640632747840674433414447511122509845125699456822883941594936803792237520642842477046710328966228463275024580976182874090326774120273347910488901187792497759241678378607013577368380739659127474556064101764533302322719076411126821804376511666852953532572167397236447800200637751303467931130635911956005359542949576922898294246693119175941765910545934317091318759841533191722079026904329342558520758078115579253886483982899833870208689562937986425044628723619074928859339742887644322267548377597076935112644136971731615618679903692532296700014254507169687342696284730068430639662612007324524543816044259833846726081453588109274436125268708161640413263016943000944554886286064282462716148734962577099009809544377349489357553351706322963396089395049336215716817425630482191705902862748316217682332188209059688360279034867959160370410213714385218840879051071194643430296037410135684056125015824214653839193725613979126197764872658608986555464850212833216449133420047387156278672728005503002112903282588524249596634302654473377088061655909885686959138320779359690744240250616550029351734191381517631740137521169863282588912821234966393608772939888254410577751209160492290572184359980937046129808973026206498362798013940996866063762026600873286164561213142146375769730380759416005675788157598922647155296335753255046742063570680516885430378578807579006355299051009628957282971025583393940465894255093467246835389227178320173210756990598436965790014696652359945730494334722006090411391776040468220047805484658232499945630373521461924873453508199282036354211408647546703511554248949693060894237897185638004423475283628318803365770221509606254340569011104297736996172114787269899353579065268986775668743016687317435912022975312481727966790062272555577268822228963608847723293582696739115137630019351880359122758012720435911136761273467504075247378035944530472397577743360465809086714512744204208709179325752228389749615670975345883311499646964562374186957345002871704140175105966379898567761213708453205567548257497812678748261225949306844359781145133868692058161046769025058913270102781702917016001027845377232502750127110531403096700149999663553110334380814011493321244089270970410291610459679157965939603313074619995452669939481185507756230253456340315776040666594947972951155267557707776971202884513721631649282278178233714632670319834398924226280335778348877885428424005709028736694804729546186570668717520732298491989218023399600294813222985239629641201999345423795446550329512357659459309654424536762784225524337966568212945756982568745385280223737811585847564970274309528558411086732260427975675149185397954239737394119272695542670037673035012621228312742830554368926898736430002300169616106004349117552691847184660060009575713110133268228684072639615765844352188585166874455827124696141944693041628338218991293216250928458661338331740391140164845528969253131585563058735918607161335665133902339913567048290032331989625830735424432126553710873396814262725410681487205509207881595426897037808447477426348060779528462364955551902587456511774705767312045016442630416825298242558462508155504241076279137253236460368830815546225263428835225069805872607918052677913624999778933361178961271100604596981868165268733511558945294482143179648247982184970857018282647723332084977822940702252680193465564624340573775808824798234355214383707564988001489872040661608377545818744215820950611617131256358054015273153463579968743845081202633666236736284928388781359223765256526171624525433923959710911887344803174275405859264726296064740325849736429959645488158630842143426421751461935713428275807673962304584279578082798518046832119877480034120389211300848962985783118042689059417333428368542903195770275243201663697855553876150104920137291307290962443712420586704821466453274855757777660774184035774853511236958618342136881534679319847222483072752188684767085087816803656593738959620837997319534843209996227490165904726384986503573006575282223140385647407515199393913596025769543900069640873971950122248623235852399514712796230182526128878966404075579933553832525783206162630176039014766919853900953541077635057458612602263868474014004875544766479721855009159783007087801650756664425647847407409939408809724136052233789051489593892150978754185835354931369111386553806145354167204379948258491240379724630484422749835933250400581663302766941716604744495901971711545316103471214959586600374327766468711304846539751592398707657619892322385111958632542232701724632201130538620099751757188011152976336930395437787013983380866547546465829432689780951080984266738316107822234487725352529100564872437654453580823691447067964416578007339222705392288107576377340429146975399872216549160987543578177642497871519739132902757235179545974362200254685579772590284280589284029450970932926313031216737148601825560369616533717078320644231270756692861207505586057835184311708463566485403281225597479713112685934825628311639299169699169270034450326886452255386306864715969443542403138333567688658870613796539613848565530859101238803479883001759345192581987768228937549678381959618494465472726025249448500481312094237978166018630693136768432039388810785634812040367580048646568080033375132156620419991836930008413417708282715131702117208377086825282026635818446410657288826913305695308168086897107882455155327528975646767798425529921690605511888664124667753689547043865136181505826219729132771474077710399459127603040630873705640641063184696832975635450196633027044649319465261564482346366826272202969631582528042285402132812515598217715178802892705662865548289975584087013570919006013542547074051675416993256578851438221807558257385395011448482324617007654000663022316787740021248270701923257344508520135145967903536930626324674344387547565318011136088805819724813191083320894224648090207456554871294863271643129184133069596954562172087737084703293240219551284542800132941462542784778159091356394512542619882562995112389517910321188830480695444232382234040992018466141341143289817788916058137637812683267918901881543257469836370063595978276538506361110462784908793525493896718537894918585143804843581977841946859017885998270393375992972275241491011553142824980686183930708851175830853229099102860279661143850538596589223451475319871733573364708383751047763243457919781454975312687355043924500969220706125151512310771670435253647744269066120801314010877871105394892407248592563978462052515056496554362543030345041632191143950260481540446588841539325312250079437864373378512298504725032117160639828336879013185612850748265928127875206193412327911457278229838814804374735619917516865742404275087872639477170909063184950600093043336124856786171038588519453140750846598831202670477130013683929989113192713201488503255245319752498899089672017758687959776776793023607115566518522021361034342943429736889466840065839639236087485239667507865745196975233680817178474135781951861785932929120198472641456878699753199921776193593769263254029338203363986070410621441226543187976763891570072656093492576110139794324215485402890485750792804178610976538741011198285508824011546214488102849345110993383043772922906302170928823284668029735904856458677509807707453755021680908613959313404800444470711617615690272602103452846511928614823162439060794517458997082693463080176022103416259921029032820271403718371094798631066134921639773267075599274748349050969252402051125717804852114905884192747366125753200197495850483851917392635013668458240160740744669853361505906053274909415050129046604902610168829308448669777349552622219508500892631191922208155789145293913744010342581248378289040105419021190723753053217088935897363079738408066136067280225901490395094401599822820941103779207622631506929563059798472735476614450733027852346398081033429475544200145503550250364958478989342556005594177501716335747836899114678906118882504117732131202026331966817354600406656063273087268680092623880536495106564162340383766269057747006003973831719403692742915224862717243059783663487827527697984824383640961829720652360407649686746892364819119529016230125518656822058427967226070556890206349100824071361710131962620560021039227854862836469927248603617459996288696921148769329734021222237523484209828129258295621052392870320230954229936568443620389375971673664840789636972506801511659886826068422111018687394986467660734969819874682434856107104235456012215266778365467159555834126266414552759016552092465359672963457441790386886066038717831418636725186266035429319416600115938572405253925906958455071452131756759192904631840610794418002203338358220647196257012425282755407236069977569571118153985639577878370678194681516698092085841306538874851885107198946807266229653167956819093247595380084598726880361813283732714519993650849907582405866514517028799071323582501037578357791932232569751495280870109086045275829193976378422586242824119720123283531681580433627080020703289382942400796346167396084115503722206055722535426617489470794230686552881055728619547786767748766428545446050610239224351701078537602919320170068865938019030094467394526620075726110099352703986360928958504373145191247986920064066783399136515723842839374465639839761707345795795840260589943487882555845365964068336978798881957176824841656560825065928370879662231830142370066959083699108693511660417543981228644947430122975525373518211691868259192383298815593776992878188264968447007842254119402111078351281087331516736526556773452406289900381414726531639684443217241407925051730802946399018872339171858820353967121463908428539727434496976595619512128186437826877113196662796689513448245771412911825781188174048291886441587473906019194648603988412719401672781791680602251487954573229981384814260804267294720568010610554559310524024178006378945756289488889468020183938496966457460667466570752946485327343458798386334985182477459499729899849632288838266712532172210780222978929679443803427672744627483842517789097220253845945062529656950132064178080807947960580208397658332037667783739980798855070282287001858002871567636915855925134016415468091286375253695215850282249663192062601472857832413261673815011101889883019087336653770912359155318839635414060583950863206623965244944907311150607973860510706495669393067948176242968814971141734565438963521106909319340851190927111302135226138120148456710783380500372578922677108833599164132324649193874629120528765645297799558161698522478556276056062438329503022279178229385286418906213372245243414588945669317885256868477524233389392855585674862540124829720525216501592936248962631856285258427897201977054543717345381156895668250514363343142986696022382944812003809971083252132326305362890222750504423996964644389085060978633409488230708259865854856546279764424796914693161202103882797111459232744535960450197729310735798250290657088922073077011940016671266955526694560825491723241994457743785465552375908756683427130193742304521356364204555569922811434160824496329573816963692011752133440769386797287100764594445343712710538450602377765589584237153542605692194336920600021840313768005967311793914412190537100989985628002463615430275085132363898839009755888518496410868890416550185988226105359142612459410496223971921759583304122097147799796944012930372931618367278951110041492279288677783737576343075203636113326339667774512740618339077522393315676598583372978675752933401728873787914286514119132288003828115897316757084261626703131463251990057106012399294434679386647425279770819813394678017445557347057753601290995382656498804182436521076658218931023862384269780530437197211491701680021006962374531030059159520788499005445229152698459726391167801868086010997798644313048989395854095201549408358690358466106586746130188690147516054649189921086438332935790976666548671514186909558200750270124578620563193364052541992256212406489454800569012760947346265627263895720721521584719332255643360029044504837555850627553043898468604695318504660875913843321419223228581983990060365654731646706151874029040284213332633687313358041274799322985437634352163810538966142043714200781333532906511730034364330271187560972615967924440091771475077887409379399878369911847247767864830693269585919132621743472869245985627315960584728535703235833372541552702154744426780710537521652238261384952788496406321832359143608265990401730834875980385263559121269439660811678344597742689759224298414923892707188349578100792217342959034032443647382786368369462206658317512328788372361204749360118735020121423536143018494111986388786948743949987235391687984815033039800057543851303127924466134454015318236269629943611929630212621600621581019994655514543172579871118417521642137465219102596727886362247683505108950383528094212029622200992637458082563863898164435159261705073226760460012986884697751730152335454924457661502404179121135469018167907319174550568709699618373810827525910273796507112954822317683197276453646178245651578797575720451854948192096363246639051301234146584907430754730944945813338559000638898457412926683807684645345099228989704267680301122086768127377206729592013027351853251532938581967971441796898961516999471058219461112554480587733869194635080997291101423657751134859869448488265313893059382558999573578626382440325502813444669948578736254089974849144076477169897250413005210485038370328672084579077673427817310011347430312749992547681947878136462113395632425506833100484442989501697793921972215140962238210560157500222839207617994611188536155449501882335184215962124470313716060476192224713373594069483575547061017796313051705252267447233943544133581083379596480328390663884879257026068924263422807363321564968286171708396268100506132691306741842626708382815335709896986287108983011556046171672824011107989350455836450647496120861048155780226907512608458923542932172400425072296222569900829115494637950879946890069592202831657626027358494423031447661611584947876539606234362640704660366591779422581368662582857306120557364584415284557169437489962448868484640744294223154532359672069742646483111411123038443907955466445755904029243279836290715130183455773377331525163777640071759613301626206893196976529172360899964566691447344927816216810567932143787811352773853289835882679890489108820248558633033559961876469568694374782080941821709252660348595088169864381499329479152503750166271422952998261667623753709227899285099982878191915198195608061448587057733772862679977285045852776689242428400623295994768763868376884634188596154400488231048422211847267135348228547559023775202696728453361528534762659837917860808901397924105130336504076781010877414202158884355821133002133742074135772053572940652695696261463464308450954546196377263885125181114693629714480162359623152415835697818375052098277030729613001382927710552910057866684965208829172369396562192645291510540667013530557441550854410788443712202957163948191883936668684675933020273609686488977544630725383791833727695044189011090384871126523245589971120276037210993036026034698740019369605386004951853529831002993538764674089309462510491026755690579736316921730784692308451890718261406309155478587420787932283308908438984243203618497270414128218827046823703717762065304845306615680222042870125470148319606358784092421467393961848900262674515700249873708153639272763833315793892368279404826123014011571027436160375413392256075457240979373038954644908297009764594896822950302507460450072443756481155361529966379645800708654608238687725050305871341437867556775450135964898986456060968929580473646123602061860175221047142352825309558765883037748120095421849511370182951174725008357199913339939878959200379073583629478221322210698460148963079372542148271988859540719015923021034140523448428759470550170027570408149751130892994960467421277435481115032479513517222024523726508270500142573943054066592956908193173543508283981378728512475538617565070596602342321907009171739230395254736255281242011363772274973176408530989683037060384716309512681546333950321781914876285511372870991883776814687137492067207666853684504486552090507087040153837053679565468256862728211881874796409200917768348990648176539393326478396009188547654334647546463172480551721582010918674126479447825643607696496832715747739226704593189943556531238282933934978319830648770285920373195355944183205072554907095690491834965188200664310450764228654439318302211193593226481364600973566237669497840777947405739836793613888129609406384396575828072625291593516197177426141536293860427240687377659127068979373097824602845743882858928274611340538158968478406908100704102143276015261845846032860916568967843014659884018580631930676695941538337743605051576955588304637770402032001166786450187897569812360604404744525359854160012996872654854799901409289027718300387590299442940347040985601494976660711018272817748773812276355798770775295550851558627078949964885059165406913381936679917473825059830778998764916566577286244834738812787294291351364826098671675907643474021192708748506934823707186725054652559155453395478700200926430511307486344978288553778811142872423322721993263266526772833241518902488286311478210383167899768179561752278645707179223660297302678867366523442044583891722199688747443222028396302790765355606134228403507511085834493554960999331421266764396871421846911259416990884526411855671896568352733032894306980710207209842202180262096435644863812998954281847224817429213111304767828988985421267230486479105121958790647267690711980431148944293439646217580873682406569335298310461664773300894565199725976042000557422892870148376215380535329423083799345024639638781666006594733329797674478841218419446178865692061279137540246893143738962676831382066416790194384913967518010447944896817369973209498008964052654282081980285183715817330579623564640209953039974113074858793193096042376394364686320245748869514656026446229048335253436132042590449198790387396510416668105018764217432708309327726537198733808618232598082276691527837618549576333410879890819057915615449400156451760846970149557647813292145310010134713632756311052872581406670262737690322830343477816230678730222743412209476269606782311450991529784761188569223698536160214374495829434611096451187564835654198425581606052926023532175373725877069074362750811510178594852574313688770952333164892575127342547703576614238754316900312096238943572415718566136578587514675305784296627530560336221915417126723152207870718901689767406321981793716465565529448750016974640341117722059257061130558398924178792790396893160885364919339095573529511424680657848214800811728595273558424342322179625796238485325257918756933831225187793946545447904648141230146883817199568962864707293560329986363271772049128542629164415439219060265602775510978914419019477179521819888711441048674796653532100029262793002005348822405069568661532529332383254825133322599522207765507769089690383113349846284455027677879402404820689660323076701635003483818679721101954210161948424990885130894423117743318107176971801730823105970204989174345475566419664480822210527651031730305058808235316198458085076846611759062483694238916258300426472861824115615837042960816203370628073595487052762052490194468946045619654413072354352874496268528523192802113356050189225099227127342536552385606094313144549710620420244408042894558966584610708952098055264879975926709099720989959775414284818296197132457005235779486426245711520851358038358770184988563564052858965569654556491590571382295230071993039356000776106502970247293489478944937393789356749571459235340655898777346977317030904565970927343708880312579766757893365377552871766216462682350779929961249003116014365336651810486363065585398006938300207533695609657299549642038214393721659314557987393330944853445670061027780748253675053646644543254171952353869988724800985535156564844884054130627495997100967006348550828791687656336089344661402290558980842710090184397396935232661744637534187921689076573994395720557840913217882426250825725473170933915648979843291856480042896589502152442118602381304567496733115526541024169432762395612296115396865108264643711694282538307311967088206079569569659796030367220212461271089239167937984676346761451375369888913814870301831495546906064753641164505455066757519233427099955199508652423519285734082226449482659231547294696697853289607215055560084868060664427701893613246461638819669160442566225142751982070174986792070480835581704371994257704150779660693019206707434854954041420231657114560773760193995178102786673739875932193363305364327742709798420424057520628748366096807114004353980987633437765812325577713716707228218651708604315283972898683572186760570729712405225985577274710933932760788132678465392163608257769618549269922155461440057660761152732367684709348998578290135486892356430870264312274385241327993023911074356422667921782508294207883007890569738821159512864968225785748303951906760025654178689919676554182742787997159802059424077439865241473282815231503849165376669381819222405887197348211174259813733904341608892488970680098976758069231663521282590566902860489872406677098078757682428185124334491214304239793006495932571817715908472528965100912293626593834233601028271724351100275751178395082567343376670117376806119559430782507472941660269858913306201475428982373277240702697103863379191861891937188436607442911872766544273699605449321927257949788238965471964236342369319252656875065157102868476601940176944536614513983156459702594771273291275233320017611671938296387513583148674184287633974981769760440447908763003897081465496860893119121294852118492172691974118386776104411573023909968631353635000770443458174904929464062498109679251263563557359084009934779238236966519211761250563727462663112477480802124627926133685685533716326178526360243717454457974005296621846540058608247253815429346018523616743088500364224958743217814547357888346232197045252755056518780144335549000572619372623862737622201247390248342863804964200476084592478331131222268018794872367776584446637246417159500725547810650469186797909231269767978351634760829041265492629773884077851256994873364663129691046205068327817687997251557809013726343072210125020061002996084267406413452204197985400074080891053650216539109674427420076230875942404897064938204220661353958043647298322300572566961192762615345732052299344734245501794795864598779480404623715574165387375852944365530404276592016455739197864495881972021787653045892290509412585274095328551006489785451533313711806345126020764011979924893836968334878391293991838504009485330648810579337448673776697029890767567081880801263098810823206537618557218074014986440454415072147687689475301834849962408689230859269340863392691719801211393327204694686166045385847434142518743132467569555077170023258402943908684203435663107070816500187468373920384206819441777071878072572377098477587869284479815562730531469255253628887762109247665705027576884893570593913717764380387711606725302083220568005767411910403398837213359623019611741455999038637268637381025660542946835437813590246078703041184769393680313127986855623338577358384387847106726579421940993239786228087765572586123509943207282862854465896551928620895527403538262612929578698961089246797059366079436562420799590176917999832398965443140275610611925037569849193649733488279739893543679812602060694893855041044538757889681771615436068888868070408310671990218539961255509913269101344837838489488553885444759919600249463915611049202072388858463280369842745081004140948930254001319787928182604142989564407519888191094404569451281542440527456545951517568332366167829246212235297953750689035200350133834092099234585372761939770925968214935119295641293253332137130704944318296246730342403997606617778408522072566970013119035437659338321134117737659728139553948243231945179963187284445889109332498780314380147723954207742743726010430475933052083587350242208095012519554372367890038920997662761942885404239958611231333640336156287135821645212274260642126036206230614587762804936804536003767515102082742265539965219684135548625240160764585267345314245180479236027450176858321745977773463088242768341956948601416104474924901124172069141003985634477218104928517628112247677731767270803839649782849425613847606879716192895541318676062367971021538356396771459114625418809767058310084955334527288947834492165727436183457890358311871811181796370786843886007968491956907123419925019259214777352910885262506184280048055977376397313626627442090094972583554675453087529458780982491721788723938758909202355091591047873302214093391610437106254738304373062626702731378403186943206291494765489914030877518451286731543871577549274404181218475747548890883246695804552134833217933971932657570842079394225474841806800469472086557526529464832795484817492157110874186386342466538185578974066893422642283796678351685484946839469432748289373145449415788112698692970117994353308589341023879002910893465531608607868610092786879999949404813427811728206611201927907615364180262395592500713741730529595336896498117766265852244674371679782192248377335605965298687494918779851359033480350168779363218522534335750794234963931807355329417403641613274184810765236417669815300013452056618622637573875293126848456521037733459280296724740539428458188342799922732394784316699925850931217665400693855550098710972455442583188459664492583857477665042840395689014578543881227748640884253337101533285846575542687359481445905958383509866761620292070179580327378057891607609554335488867571929183921230353805316412138464392584201469537770578792119374817320801195175789900281118087815102782301457329622647771279198093711821629975305246400137185384835960073378777748737940414427644349498315891723093446891884615346794283413636693047030122137062018505967910456966153326776270809051655624849151350815613875150668922469220968268230325758591399831572614424342607518543806097288064137004830586575468319676577198004216244484715373866830807530541496920216801683174511369629143357797559027604009047630406360325688971632174120447080539047181952644400556159739571181248081438800421772453239435737107750859921849283688334665265344349303589789150199921941918342688236485653342015992138193458402923047779866548629073178328330561515397985594361109447087342942105139760692352508343276346564052918688362959418196187435057991610827560305343330865342088685791313844613970125032493950683542778326834424203860877904813361056536481135830688144585127404376382719501028440480405616261205114236372848930729855063213022726067010160871253515172850446329059339755271045890355671678472907830331433478104295464567850836539866437386517402718166025845674586018150397778512830119787759010215310255971368494000725320151068629612364397264394863437437045252199330185216472127219383086183404398805397517297265099944962214428258670105245023172927364075127108578964554413951395447192881573841711574459682035183465501614786931579028440256782280987756016670338864502859108761500088922723881216323394947477250421596483570373787169806721377865195549390147962053997505114569227888691692412792935275957978916203451945164990612201682801840314150196663765595733685761358140048503902285371091724263438279653585543734939248863249054319327160640109632033980393789635382172718319581912145034429498975275024815059520077672459084361306082493761974349612836575075273017632302751322292096324541683233941283056602531603076863889834767805702926641802107279957764955385259457788574676211707809029750441583228743361690976236390842602315840723166416247499229230085029594222396557371085710796230657714260773566212552228933980203686617502900810024485176439802222857825327244724489036601550090685216670554354537989480020108349355733551415701124933955700811121945112847878100412269170696247676487385589454134894853697376842088084221237927631000949055409582630332126596478386976556076388992395930553438658023755154096013716893670709707933628958083473577141438471839130461026056961634659922436641691750980506234458490800140073272302396794935718371340414608863967381726601892371718604877381557621739547402121891123306310626464366930431447204012979681264315874131284148778364839102791334567987733990696866494380155848065391720670856714413002696080940190266399445646393973582535178140081017623146108901467790430529696400864213726873112864745622964193751627579205494265007470236947336563100296070605955559476963339953481459105286296746014632171030496061016394884803385161835739956579086693219589271768028078322096252865214686687951875450900139288726922240341488445968404287382122843920941516175424624241656220829946943101187594421848115531805927918488962186917134475824572635667578727115403420044186888384924156521730265645718360515480687309030140864881201192925494908833641823577391330618040072488468026414426721586087088485445692080150010543969766334797332158914570198257478467562219446878939015808173608992158083633071470427077055487159209214549613510470770345391028352579231781511367225121322939702271046464580131184094845039168202091188123096287015342634654356878912603482769196884084375302540002427060106081016379979748770615895742160741969558302824085071188802303141219088293338853252706021685795205399767453552305528401392807497109824793893959346163365500291345413692723208021837024076313911262652762580298510406996799305026498754870270745950743353743974467641486044470964916746430001157574199711047362393444931725535937554840873826340498448726281539221867319269249015077347651396466652373811830894900771522194469918761440534462958656824686857366632108203694581088406539299634738765710759278113213449303251158612940557857590874153619344322308505828445665194849093032535191672068134174034998649614574054560055536935319605016728328651684772983065621705813068768865663212559016805725448286057588340415645740793981585155751909332724002462694259004127985743357087654579588481252052884905592344582664073396340884352377273963268472947941511932167429450300181487925800778909882533627039778591128005875340299196472851354402084666336836825884856136925198649936172622780645935633820892396667716284085837767547652272982473923637754200755225771565927093222776393371100622679065730539939539771181459298029454302221443106677886927839444983859688297862693503415699615153902933140098018445505386443408056773057204949792278782382075138287310013072901903397874063848170615413145583704568404521530886815787146416453134617420620556445341319265930890954960069775108794539201358552922597787957796052777114203927570608756670703815715426457679241520442213263827768565630495430440440636672064826002073634013334640850195056188949588220681048671294445654983554867748323275566927580532961078715937281960951906517702507768235532292906122969314061103610225165519917194987467340242288243880681052927263866400023320411886344755331711590165779871408393390473649175003046519848371833721595048171337350978635921373515774968603037101811314271416075768336236978643153250002306515628925492731641309865409901466570641781453603249416808022989053986944405874485404431006875250590495770124309258537024321560556913645299531853078024910025260636930449424080514959217701056987234038932344528307747229250046474814205842543168611229971704893064646587769620484989303388568787610819019551671188296714915754932444864960582016718210403510396264253100610829478743661373660487647934375878185892520848723226470328008906545540278841453254600929407011269725627488508810876877054893504316790518964645983863141113884476768528790442695066008634969812654792302534804280833412543212336456791462482475641495442882035134576594593250899053905944887611989254138539214849106655090430965948940014775182623407247674699035605360242287617931693511510479585554025878178846024035442478604302104346130676820339989169656623332869231097688877151246737235923928288990194019381272510621156053165297581993700056190181107772808818921019521096125035815101150428739294265709059717338113847969969138418599798635603537053987467711244706156488591441180794496616972920639369642278861696211058558325483137476420228593531587835932042326018646317378409624198461363074168386729098873338207283738971776041025373305278652538432739021356343462950468935528819973795432680272135560264088806282444028792131039763362477142903333131408608624380932733582135035892370394934498170097383142908279866837020082059353366056222359709756424149001251630222989382996640273105645880156794803858619679881155697893156065179961505334871868658664012026438322967123537687624250175975433846338538156612790033645307926355177771989400139000794633333597698136167911241165160806566680065750605036818161929644520190333601629241698187189468281060423901258288630391015443066220315466603604268920516265818275400075454296704939472524499373944870889738981672178258899297499521334032370749667667625086424143907440587545611318968810481140104661848500719226627812067823791117549376225905781215080289727843710005506607591761328799848254391527102409839586005070847139694922961124351304229355929736198747711964162633429385591975805142976844659637200878042481047710234439362139277238276173389461905119901165739826101060852617530795649462065710328499463360793197653811174622375799462423095212840427079226896713769388659372491025036877062763842355408978425291214021361265527466792542122351513269309732075679344902709932817688539099325217263453670072940562991764199059888006845937899312233757662148770173901584876184951913966086738445729439806888063037441780966630087296146886407639051916159059641655464622167653334521488581083187501095251046749037288847852822425908242599197611128845713417250208118031414965025949972461964828636853530102201383744796366118899510848135265456434155514826434894795995229612344038801678083210460545951329234771542829378892445219826443076549980559839499995628421787987590207038754584409006445180951030746323955184000027623378110171110278593827305138874785011864923823611627607557641020610450241257431342078926963540469088149001024481454671990670901096775561381083369345578968800008509368281542772205201013096119623480470026486071336960324731587651086585913713113821647137974752550346252623407008815930313323078337197759119204405359611830588944392175842524344271156362386718867326998785104414206773877753396030002762215977746183008595074396325418707227696182589159912711075531949334307433931794532018348849306174718447579920075744832475943482186373472403907826682599513395171809458534285941495370399428645559067278379521276023527431610353425344983314479204454407916017439649504150910292971653410897941695645915361724431698634851987631823040915865527528198471662678817764667390774464273122088637136331631728782871047608471734522748818843603071310321457224365262873078656287458692051084908257192760396064033436223913763776201638789361465516481392536882625230927982357668132812264149088641175387502255672796431593360655701674329954983200273598064237142553892560954548135998023138139270068072217561716616185602493235574719818934540048162191205316655131604687711692210053208531209356275146311991718173742481916255658274692830616048092325748820482556033037182590654781121000249200843392349817716037139949746190889357226886266574993337807214348335733070247649738549402769908214048745527881311024413130189643682857290417390971275513332581050129670532552473045930421121153559013548952387106640347995916507927616142568549141375631910683182672877145599146466851422288218120957531742254128203450234023568655660750041110169690981916675386597015993371918622753695525370966200542337877593044565705120878865562280907651724302287265950876927543134191244359256043461314536153171845233787353714056671505729494812626709292117495902795776571117849311599104798330249082849192447781027369568247958153519558328092189251479478818355677532257701513178279075212526274837536400435033924093892240978161580261099855209718530770705342023300320398447940151452047330642236923259551039801787639761487638541855362599723511935817937256021498617761809320504894420515533074989839070916469618271456428569070135046454388978898301943364625829750931792496459986982272251337846789509345513591077731791469907149558995528768278556755707067718360633760726349255775893714627955638618730088236816368530505162007199496357819625523657059745548429828641388617935391517184026732563533063424603500535846443894704422547981651313212724985949583189006302029533798309058102564557664535602484210156678475847049371781986995884221871411009050950800789656937485028163029744107457323593380897767205454353132782874004425315059816782888340260292835609822948400539862915897473523366293170645130513708880478671741075041122231521015575082837411099704613764717224710055805095242475799403225141728961700395972577757739218466773009228788914187167719279877972141558798335741950220723029671572202931948049506642603411603242489410555411773881103022044953046360652150043472033425454099187507942253609575271211072422342769280995306018225481458612766647749485305674148063911906021147225406906109860389354210089270672155647583006600667716043041044370966622658996712798421999742383915697218318683816947073142334693135708274784526878934182720688749810280643057578257118113687159982425955800899036734618881760889404662729162731749889800326646356309719632233222197337300507006827106580847470820926184018841814218262829968513895205572275835717654531406051391467142549493250672107156124375112638647013338344472707327770782566950869241232868351982164671892184874875490533829820463708194152352648665577219000404126520788807014679759431450739270422516750851921444488185890566982987349878213132107636113849019866587615793577928798412482832618785579394933478635656311970375596666198122397127057395687581912955711635149115345157546667475726437009302304649704133903406878942629974270227928186262496327013386503517557271264082670302974090752180939075282959223624356305320452391366966753676861428250579888886339751148966102527046693702626633782850285784313573000858282960239995333144591331312630837836286438453890939054788798112088810151040917066784380067351721766045216920597336915113919167373270223060612216318492174920810400682253502121638315342162710422055043120647645792952526372046568890872063170721160840144321964786621929837760885125842832402034384633616103038535838491422924413346543895622666345393415758685805462532958413524861685749182830645288981660828380353750501862328641795089203778579940500896365380066459527841145771242349739653053333580436974933002052011471865217931493620477303568393885229907664042882380642409526106816346465869949038015608246164908006645990683101589323030751356477630101596494092075723554316043275080290482614188698132155450915549156002019037890257334490820758835020969053372983128547797121044997614879894524307143068414049791325285902104895738267332674018265024230350728203415894194582429720403006274132815585900121715962539654424739476025942433183704068147529501262838467911177059782268364716835260219000986787318136412028350810224297266058179695378556004244931090683798358223091732401675050531345040802804172371810422994465764136247231449137213130666329501998949712424335577636569615426025428951014123946998866022865406847099169335274869721211942547689345854107803908053601936395027812739903754149177570898484391570885014975532104434660749309887048277662307775811486883723777716810436717330382801374598922265771123042222554465608186519817451939810304925229174101590803798337462746020351528277463146736957688144922645401644875935113573944058045588746845379805712485008696596488911521919274576706689896114813265044042850935203480196920658535141788390875681530653466376964395452484658916047597886119771153040554305177386803726494553154191871892093773748377835933997878797191569107036003046542238098071248691988276484161024274393762333196602033206795744779330533927485551453775326914356385550162478379873822960000387477340414535045636294266482468526016464422208954495446169754173633886690478145778133700374520338753824567675284123119669866726967844045945654885267460996891424060396669879380678668682316483211635837017841233918764244630846282945339189339615301746500826981379492394981559516654675622497594475900148672234358988993965409624120709462840620224559624257759985362926703327532141795800031564512372223381747262920433843863969978087889345621047422564135708996616138930656829915299644872851782583877187788737756833232980741433168725464297137768103397662788637791658877314755365812850635223931430641221784002387934430473021119467893830830376717031705043922673583547593190092915202391831158127486527007167929839110099081546854981018259663036177383525550445723440016185533696108998777674803630120486643371868909022220063282376100281303049854499597741428254806213003155006399516883577856471433579420138173631574641432151062519195919667628403918511940605363848550351393417063046908264534602209072932613055910065213570851777774101762364023590720591956713397677778865197311864943113065911279725862489519331793957309937358053914345645079093070083099475016967006574037081255220730877496736016864910741394842425350261868047860498612237859928686260234951324886054918757245116082541962611627460994962355506921178886687959498935199561116531266116846514654746260367245595583648165199325832111793764279166862438630439944668081310181448207467836217173437114957803438960148073484434798302296057863968052684046007721964974518811207616880256274445579866804691643069997745022087710569561602759164231821558520087015114793643549233154595188378947858232525221876830918886893872015138920489506659105509105727620439532926553017901349139832375708180944015326598122615322386498691581332091576804574974557990880785169368456730544485448140322470038337070453732909477123083913029005275797530713479740694868100039454789916911749673031883386388573321027931562799716696397470860150310039232983574148376953075896414961621163065273128087296023623719792482843321486348483959091746048471969552198609155473913466736803602939480795846605288481510588000349311033569917110923626630753762220101536841374268955739511528894024656173263849512849297641312446118974676316578360179107255118688485933418548555863440313576055172778975491105133953467840717670709111536622585221165123934376988268142346524601556363576311627203725020863143533675027965629661700111864236778562332257185569463887168654666626921122346236342588829669528494060006309396090469618104115392024870368659916965827583018377601791114786814840437583834499620859714179273278311423680944713645298772125309373473181054857894920534137730566725677536731579014075842881147982809829876806450551130381122772821489664805568206910368890857289907782750932777078627504177059112971140521696062233411450984282995216034668475257044123699566656652074953199749713918635608510168592747718585531965997037068625560860664316048119443766418324953410232756135135782195244170193622816359639228031634155223971680409885990117496575606935915709859222650188555780732699599317180681795007194635448442171047905641416837924856627433647614240834045141496233892328097258061619184678923847237223150844434891374419511596672569074261721768210504589107720458338332625689931928627752779182517814889444177146961979777541233315132025236563268113104187459813349372047246793815855702061151483347265294037112407867925522414162992208085792360834197780356955915300369272252471263925949276023250044393995573842670328681638312973126842301068708893029381140206067600294763553871830723046258991454746501770576300427164734325141663881519708001820243320068060320471899732044253840083831903806175693339439027072329305052664745707768710147374490553029573833860747464195750914079254768713864917354678116094707313255579755920103443550367789672138146621988712940037848941429617230788899923768994488040535318892961153512788150033746497677988512656891246695308890868523213641026411846334928506610235241739359183194775183189326146497965000171163643423476933591771191133370381549856777536710176510632873748575552021881033499559704133824825081618839432854468247120739523503067666360676422705589854070644511999087347837690174529483573360529816406709902410157713585247292952742710106442035556944346200432400006409844652486175665416466542889794138824237287303247305343718586981926199182981158059257117038987672394406432800071496158799941217866106748701030860360347106930246525655219462504737105144402323587883359395845628608740567858310515972667048329408598628382695476658347987047085236115442005536072717366992737606111123372537198822389618616764428072681524464874747719268501439175365934187187429076794847537413658193927914308368612901582940529804673255602828084890625965268892582169763417131506885636549318732949985352760197715117879724939507843809662796289916620103075871690931163198030765867783284184292850542859215829017752157738788287900920080611327346991263624738345953414318241766853716396349653272358448345123891914806468238976145788161033530884253250100594155477581666814515982130552080742680791840609253131467008424437985048261227816137752874783598361350424669158369078377738273645070998297801017446129968072060034783509129380581441694384414833852894998762796512332562462862146051136797591734963944369454969790439807733136955165361497008272460519246825623078214205434157180097432032289237903659082867536831759977641466852473176102229338449798885575811605335842010533842091171075922704139278426921535004406537053803888812112522698238851288038142442084711410364323190576693028895699920056510722608542325590927162813845074038519989026036491740760100581624116389831804226870137824964877460193866305404246554975990245750889412501033377633912758062933492000974754307061650428598371267017960125161108659572879864745204125592630368680037037059855781497509839847868096819517781179236138835836511016346705943474732328884515476227231616751659971000114973388493145853564009486591310033560106192309606140432287702233440185901151502269491183447765395664911665445233429420512325435131964264020031504370049153961045841881271026292517854054762852177579686162407236142068269088659085984389626327320011816417367315667793006096210786825567583682381997007125013579515664792535746364194111904203462107711422213617290780839318299083157821223802273254830024845456632460167582255675193683038409118177790027116565408046266732766948211253272884639320362260920435349934742465678723342895467081750908641659024281127228526608733560878676649050505965855407395700149474963629161321343501929047119798878223187747057495690378901293240005816085695646668505512537335954065123191184078637514462136758795349045855340105145848941281506214945799273256455969616495196612389529094307763788181718148259031747618102460041757896429161297988101109241981883425853279121450038869082715790057655398272880031075879114376294611975024234224172994955684619839033653985711416836450150579069119988711288840039600717762038651575722071439492727268887451903244181471597365619108133618649168458581743982611854451614027761235856049624608274583789858926157536437183211936826645404339724581192974986975226900021876817609616257725520698023379213168386467114985687129352078638257412886055458611849259337738754460418377211651138090778134592050630075991420907125471568220210017215904865792644774860276617570680362990052685313989672631049008552302578495585706857985711363875305747689003505472498517375574141513225028353042840261629391555281722844909629926355910684210691053892991475672156244848853892688225188729371811346671545304970115797116991204981269144994012932135040420238701344710460553582448357004798266005999971052071423824251630666531566052138104131494211374397964592780772738448494119478275621166285218872499716697636175771009843725145556095830053560904582193271763282789459816658987634171772903730907220484631352261940817294962973952539717830616598346220375675352836536289915419995613916819854833492525382120721698533232220420958327888075727030336267775064648649229401082564555076860518720240663104850788905111273826445181575890402015934606724057065156545544532087629160899646072429405048944744970030695003927193168401666680717917873940607782415028265760297160868147919629622769645390492013588487291874416905778418804211051919457589863842203452712883640066608446956965568107085318321699500656632128030524145513030539653102924863735199284461689487517059700933846696415500861825794118193759231996170652863069314681834655569046559825190875483245757466169983182120170628342589800085473602780371297984971519799909530695928020839183571975913779289463990868572430607023242008554277345425508765510962207026682667527485178065718548124054926040914816109396638872687412926632461027090326557936213405809139049248417549633966390976288503340644979584308630484880320880469213507268802933112287197135793595251486883238327457541879311109240945853829599692938070689514913524510714444607304274473921231308194940319751755749353900932510300366225930296537285952058709678088639941649165279613918026491160267549796891219993454682951109334898787373652257646177957127107748023649456570986609647583791295807638220715835867559527136365366210650478569633736257061154341366748093915551343778495469361389988149103662474351599908707145753163897140340054227938269487036295254109669088491027642926997436938383405658074048270613229421146914072712029046487208268022894128962310294614823332328470549013888599287779425715359379935021304727297394583891780818862938739554824192783186674765994387766048815352712530051724046888373668522172966223746228802379715403303920090155361778522066090794280552277539983122638283511642858516279066566368233955960067867291133341870369279634543488616902744288229254201539116416554563382120524040505867499148702541742029101805292616979133989941382404624181772249440795609693788018693311097827723506229667383144880121437517467070358412246908873534094994495186827832269733516182789676902605421997946518720743773263419352733454548753089765601101676481395296832886149793316852130678393000434833070703067308606480395679725581435045813529505701736543715838290372177252855905426132312515103095525996661598599750406346921061197019212091819814936751980136950829516267571616658097877580505670371996736489947128854718887653796452039800826163149726615802369886857144684531483446793357045575304107804559035003404918854459263473042108586948175033197746787505402230202929036472470586644616885500193232465143480294115644624628643957591422250229938141575022455167804468072434397091238933222211196627107335669212402474941202888416567660521384341683176303335054222190119235686817820458607809287851812405515996237611727181730322879834485582342367395111074450681499468958091784513620051518246549198324964559366884594065282573643576143953794040140797454011951195061831906321302750417250953551809083427055255158797552966643471982908555931538335461473865850425998615326374115055323967995565728680502408524637350132739642651783858642589759833987416732430468205809716869573863524008398323965657480448158932753325164432043931550997856570928041535484985355104075093438400764493407994762758993304886708053909132886086800674658005574446268559649559894601331609351306864387557403640736364543559465654283435666610152403063802315841833147692513315724169597683717258614419914173327796519656316178000554428396309200095156794152205754473922564379759695852105626925733557760187514863684932281582401100582052485868921932668795793931833972164346921123812046680427245624538898519365667125444864557413537908154492420089634264053877191225040218325818044072623105895638408542617216620953601804406215386601259203670783565401028065789826531594749958062948845280244119535823330628737085667506009264355980821700171785556972943214753554781827041941639383716817661339026745286725545357191549011892936582081776985639323112900098406656949909707804769408855068568709673341885803811469010851263562908234571630579574340601443139802030445779205048014666485273767762855890012294875232966169198113991825523059375814217310766367943773951070977739837008301876439221821442664097959530329780179548797306784151197562460371685074138566951677940001262690204242375072513790002350750678926267563265214624856076549606127763237190525660579528762667979942725969604812437212866650420013086782048232699865922532532786957083426662700659960716321336385632489367932012481188209885321223638047337915473341207383944395405191604005423092635714365783602347432929287023786832543552091639233275447025393522505777643143946587323648961579768837254482084964441560241833991557952933987129805899352771699893801103452771793682134433037391656017367408653000924263629233054891961137043518972244460986922211111812303311478113534407112440966488950613245706626298196519234385420153967667200247903944305779875264168871819264167893140554939395856090579836865643490916552097485020610780478991073433749324811588878851556165361297993925235248693381491014021197338438154095664470956838527792791025918806755726693505374549808142086618810606017688324239063350295210575968537163953799589577631837756576183080762479200212262074295041393458304925383563809643202513904404687201175241825675518909831229543599586909139692033812356860412845658618945719589331778480168221135741747097790161308144885933803102778865049503043408251447665216269621223044643340577770286369862870926475453954131622769487377613532322626547128070238258060269903754733768369497130457977398185714936339991947530932811879568472506909976725563310979515969933063666571690403678926414457893385749101163202455360729120949676857978301166537410820811303879700538165185581291005466683214943327871113442286127443239382561693275020252266784194251596565756708434547164875999307523395962485101323726373501840537124323479513887182475199811740441619875095091650812357881123238844142670649125674098001594422782235915466443525651762319822318351943195116649423403989731422068772121726203980542398341055998811812923187897554843771489492406053993611511646785022550899225304004279205569660051744194699128478559025450799323430068915408483561942114649543358677846864374115313844320980070017246652119801631649879408504861587740363119331317258366136814668902941029841083868796439326454135972525763513606200667616910488164241706997030064564134689802413022025614677635186308909181088959956016005809276338878260806894943952384895600813886438003098871515253721798712292592329659150362255605806575018191243955597987344271494045091369216762435973060452356275504624042704792086796169860464647083255189274857284727964870494763187165906034995990678792499946417779575505828091947870334896842188209130713411309828439579084822526199988790902150942434595094644065193716261312456252534548872030048306900337008473626257187007471921719705551795724015024667043506041172977185321321005702916045500661006428679993540490560140549997629043963363009282826374268528229684923730968763639527930477636467404017493705365147137322267687330995972712154086986443241125618926460471455515768657103559917816856372756352488523593549346448861348066344979502272349183668751654011544999348757847862180135034521993778547393378090459690788279338748588007453078869100871840224479730961053707974768089879944811853670640626263027227576646421811734090983151039258537584235777708151720562055440228180221465997990524750280400843096254503538822001968299683720149353369556898801287512244986246931357015138421988744122677261403346640180061687715270733880929050914908755463390910514408744099650392978752257948466292170734031880109437898949075233800678997372092023079035119880141824621912545230977193702458889157422261834215062599060095722641359397317888188813823349122815012111312759224278646866409515600980540069191095815799056589907607629452981823058692658213708027788571395289213265851522138268870419436361676958896643103245987836269539914268666820303716850173053002112372540058213293412083251223519236628525974237143803828926148717445783119328233930708240025441590376014161338499255149729014323157033379405591183729754485713300111600011490428289034414759930586530679110916023974203271409017710244037749456183094205381738554679665651856936589734928241226490669241718713416566903674897007379289558497238588390746707087821627026507003215546193375951520445255180891527695584557367937556267692915251862239003882255405192426464321428335494663203863841377922575287440504787421899250739272641295961558367060927313248720293403733698264201185345539910322457089590209798892923937591398091408151612136718912251616283212419993204639931822252202226651944127582537557339597725799742152015820884308617221996067330088351165262900893774915035911699794486546207289700634283652576787674000721070693743925501133654307448759933917698114323918217671566176277859378228566419857993675347733495492664323009118594740119686454354184249389508058088408327324853746925915290666609104378371251118588932587342226220577387107582458857446647229436393613541677348264954254067774949992123429910615465234021947701132862658259250869208666028822056531833452151613831379934316941431787776420529635668059092011009970903987978251823324825532188531707999724203711073281535542725972226130405275927197254073535765826249947625553146593711816808096220564254512295644525043230586885468645782021077674393552865152393366613406382388657194309831010307199258072310722835348238071840865232542689622725615714249813102063429838478618929629673897743766201758024079754207996702243269708975305973058427789896148051768707701948324815182896994516715941421936787068419200491577239816873523046333092977831066388365870846795542007676051261051429534299827715997992796835200265040432516622811715265290203166042224658548841487908884336767079793617518104131875702873368940875723512933050152727740636305220187157024370861570635166876038938987856876107885454060910554535692290650893278152699153455235944332527671876961644072314076623134338054673143868143140962194760910808046022446935704163839134424977664185650310261435647681985823870406000696483444037153904049486085768264294157550816152226054960183843008197307694479788662893246651759873504069573307673751355279154097249690441507430106728939444531397033987376640441915310632719596494932483652984322331315317159066666467543486775519397883088959167816213042376221290813808808623557374361423708343670014608647814820440198461709175789099274254962779755551650848437485974608945347134032782574673193635385074298393618780169563828076524878963965391460969658845625398420695571613536573420980127560302344906996417185338595911776804880861904838316026763560934700132765139861726847558628747653069521380447179687061567510728169472792420919692901864551405752965172316527336969396364656890554280589136360896953207946129385608673210978581205960350016252354665172382754828842726448697287588930488435105308370640939331316443242708994857922168811733280297681575751483600767893297077639698902816388725512531502252029143127801586271663220296176370221813412082544527357857734221496284050056534505773937875853600546843446952228616307264242085056950364149880093105540920443237720112163981093982125889596297836763082662042280279380414681403488146362611316393810434507201017515748876556653312608519732041877898707372927958440280714984616099849977644126618812069708709835740842255358678415113574269340053443544776878778655326490675941631316857866692816631666453545209117226190794327272289040426198994631551756114065542301103594689887506628331633302963491822850577684986876416944155990266011642518398247553333293976466940350324649130934237142029876875766813333073512611627387113808804870438214225763294064671598486293873426625853859187786549437190469463688742060111530099297229074347043221467478168184522334604503025988795699534913837101057220858920053268474445840557983909731971678463160459224870010491054626636595181443738672915620882062795496966504533554988978803729877156000694609412811189984387825559024835053161553518186028714865804240109613763537949860747304188571160884841759265274401947935319844585636949070687407911841811188781079322098625637173743174722135995956895338223124190095057394164781367938826226415641486342568800354298224605081157311444607590191667668148023522832719614982859867789644025043950221615924219626971409587399422587020410812201089942308540797280201691261846896713482900124644038888704045889664138218900872853499822041868170423151393883669043400622287791671467622766925244650460912697172990610195158529393191100364227192774913260079769225770593816241993201859223648994753547489836943807190605195418683044961576967225451223272302973950349475354873288009337345233363184116506157805260751490231975921857461416757364194374105439981464184886676523850181751545264427216990608874316100888032626769203034287216629756660452562887925334123757479474174809789972401508659961268682432268575320214882793139060558313514779766593173934370660166061330825640472272921552209413626963381403735258366984281538659038779168120544428161012265336615808100717567894578729900927092714560922245409986556303540904771412580166054518759118216081819258934590697077979404189475509481214691876291105618955895790231558194870676027904397793930293456467258471324187181138950726773272720349039606940395324078604521205201964103139406891034587171255770079009516951649923410932570363917699874474133242516628981494339137456934804839958962233674351135255812462800286734592985558245586417522207852142170812920206996717266176984081928248100864503112603165063759748147889859327490208757740980766413221473311898923894762871208547187977545619564946535882487667466532611897998344355989899230638186558254362347914504707225267756018612148288260717201453932019089073983228865381369288025977616896009731799372773745539605323035316174993934269876346356327407924018868522915160773756351451499419051311327718055790222122238768255203239633630114283129955597253313280563984147541229999554249933117700524543912827277918432356444236457265727878950958942369576012923645351188468459354326468021249170548683759955608429321063153323126527591907893643703839757129133413133111032702119604231388370222429598058361336297066363682570724307941782351438727235849734777993441681767937105002831834609327337562665839095619906917697467507645738268350671042480534154792282721666007705792626855505187941800568932078970024460948698105207843944147405312524955457151682076484820722536237392243286192475493396754799278116755868998232726033586549657375416681969183893396309693490260132693817865357712762868396471169027295083256734200833538963169033777316434712063780774418136616987633822565950960583048700787612894656088702240018180435586587159318062096124544007308942786814924632010248029518000195415286109092630073608133769759216437649612573080115894568129561300800628148410650826790699662444218386683629580387339388726656331452283549583676433562867769714823275802967181307995854838310127002277692897102571006931004400434399073860680777748370878670848527616621828058227787713483469990525647242578960540092070784596784423559982356429523483414914728999392667217496620253422986958994436341065892498868263705049723901735136487502173826876887204240293057683166079776252749606153603699578308338888885556928507490769569592439531213640424543289510464400581203847823512676901206762212580871442323723620132752500541574111343270001079750495978672298742305621770742806953594922401988530771997843635647039366951164732474882270961625086590484346432333819705585552657706997064782147765084719477010486910542690315895776798192708489285581144784321337588871375360906672553343225233896978198099938294580678893148003798611021208475312738079672523878104540237568352707828389363606814121738412204079113138063705136289020003079075089273803854717410077512264242786025432132140882904664540967477675854733382334768360238857014809159401973380007083917331619467347360460046538903220591358919356684377540530107052995853064537703630538432041533701646896531558348077354163297407265265890370959148417182369284039898682850788219311441701655456296270288066876950255788242869660263442076295365069287399160525074459023437093618950979883357007843403058033201997837971696388030576736306064786455039209917951168492552482205361957081653245091609670925110729196491925154880458075406700862805583513903763951307581187467438235038799116662003326798097579830383228599349426114084537624967408524592950630922872968539853007233137882145414724760003619914394892374168543070634616360078483678386767727459097525820876070700359904085448893291132759585993973467792767955530352586019548830968083530848237735383994821535127070019014810210761371984953193952041094777478830130987355379556016514175536801413668030493756673207983859774150896944961641675899646630111381304120314514625495802510202451521407608048456331982344439122389073878970025020702703505977934837475285644267987665947291982300410406443019643345616154912426579778417208714079285726036893831702689769746603040565170383730716339913167608148892107396197851443396069516946209825435902435850317228112031673337943029187302722326685699383684235147995500834240108892371566141747820022085415660283314569980787200722528149921600318380429847557799204893506173850500696295620329651342052651629429369210872394134138390930767544341958882559710211195631304449213422963605019632118346446656768446772911922566184068962895125516153694341847972535824746656001595158875616367378598800692806132566628790990042419530881179099386991725598177379181552539891205005752409222278532133033115209198322312426646081293739177742786799537047107778579678367714157663360840953837212169762667869731735971070874760457844352352496179030514646998562699369866241937409641924692163565024161660231872962783537550640727118191064122037278694791295212718848856523111726365259040216404512777646237047883105727412559418635637834228167227541887871315468964704998729339393506091311228129083068250026474746287323089662672267324133508810891221508952256300394660807951955726960292736380922824780502076712206879584594735238570755278183208363056788016275339699433110513748980408502016731063916787432718679972712120403438557486857065012417559651951491978786541215172513332649543440045104708639399682943010749276225711680689973987318713030578050596013627209371430341279463380322145623873802978630514298524711951443567019879308588005171812837463792175073658331750700346027250308495252337355464453240570567106569738019444027022974108778440259421751484707508160544467464546728404135773001785376180993599190260777622223033541062710261762745650962100453537180604128190691920073545595775037587745539334440739452385615074262529257051039471158197395773292521071470273255829584547967376485889128663685592325158680152415843513692624036684554625502085247289500393116528574371954026163347406016242321936896259278072303932375788918767012204005982980398519270691353164134867209650742251869573310572639672318428586971134222564138181501243799476452386500581398856823470232722000663521791048969175673252701589052395281093028256169900670566764326065564734233808255938722817992174219801453336014947450526608391014455682178704949367068161272323639290074536825250643705198022241706554841498160386462502627952166617355602975588645048613917624997025973911146761210272876501735212853293538001958555652380508665243609575325594718024812154806772059373617168411973999173949810382525280499786037378605832533892835600684271284732136048914548219674455739795982707793862350860070153818354101632158803868916811266791973556213971422551533130535594078373726122156803676670382415771667161161230459481845671702010400181726942094365609347958625252521304081999809768908767079300185131686498147264712093956434690560815254271508757376887212155502298045621464359194347135399467987703676461585367097316487125414841837385942681557785820394922623137944155897518072529868182473961897158982770778803357390822846006792737524484396131279639637290923986012869555824792228370494302455518025103767599785585776516412982359375309256027595172391779379795778171748693453842989066469251304015840416906967226178571792020717926504544631561709941535404037523350273731703939072011760687060250061572613766987648482551992761780328896919694601060015032184165091186293523445004291164041344967559099769206550587881592466490096493159649940005918993699548019309309970704903291779313195196241482864091350939517426978492609650747927750456483133021297553620775244002959980890850778417251136157443918183549493460253165358560259429807485779387244312813514807614615145781809434254998899174368632831253530347468122512744855883854032224330960668521506906437383056449776544096158218132155468075401907372574230443669442411390910129738731086937695462691701117612527580868249244542475003887966705175821168200354584479506930330169864836205955559665539099376671054209491117429303374786072496343711499209981729077715362088877386110188416067558631510955894035714105534116660580129549672987075611105113021497730517594485181799033152467353723043720311008438242913889064618057767272758901085352917979305850599221038631379589379427893954948430060751703297444874040121024138492400655114061844131646114789250556852867111369016722595411058301009602962580777161324410983596522667280550064496772571857724214382184631037777295014677908794518466008427474621955707595029074418642978864398886405846673282047852701880114423366035335404120005837799478509760257878028353940957340921952449868027590037649552987937129858777646053380171994072997573589307971381973084445625033956005909103908890521414333537610869836674182996245814730243033649707249369382610548504538549186549436557731783138588143503717091283195617896996457972725744702394492572574127274870903605462541280046888564200097339353022829893538279039382998746198888043431305480720955248112454631573176604066367646028377432819018557209494301737911138311210547848259073204205241670733853995327114575145182857616465437032384890513741213212185197373563197053181836693116961369377967686255556070128609106493716854300326331650758625643096414502423224582549945712630753280000872694537206731809462044272223955687665898441936044939946996695943177832476188993816926787791800491983466270684149617007014950509207630022407751422900139185400676973013222033819693762951275975717967632264689857757325341884227221442807796759892981249872257151612069321950977484633903823487767750025639444962469988206414808869261280086522141591517979115001238642960717154196428042056742415216650565062088925592584553505500592711125724189707159632887659497129927650586501487119284474502292193913997673330881432451267572765299548677817127672256874115615366525979072969095877280096309536154899109820587580209616441018491323873026526553177871574028028100873035532862733486976593658635611197254468998230262424920030493616133778891985937188475588003521037198707166609838279694022789603227933336963267747845948626719087471944291920769077435495374268060428060881726011835397025624213255086457413914591879564724449634467304144418573124275829366956069457866082178257079726240034161957281253634462780361496657380179879213566674127683613585152766934253704888156755127909674768672048496718117644732200304345007688404946338684691413532925491721005934082123918654767945950669745350625082692777208613437418417236314209662239182515100488088436320361194471131351538763149084702032845865716715507581166399910875342250014258539744180873954858564492879775300531181376682742108931581705774908284748322514544925887241781393639119650849909205302238117838886979430242041028702198436569719944542694985636837277132135006360008015634264543667323185183675573436945038185391836570993572883483470719075647920194909093564867489086829898106413418972595581945765057733197995097172483514679760995420324913058048015195075113562894134483873438127864757655295182671066684940199058147434534903515330487491060090108574193665973306851316077664023796518311062862312972067331995926104567032571552754569765712581149573090771900535098363798913509449235634556074943611016005545874619826201640630221737508157067139004657044938373035801492349995385901760014352153742141657239252188011808356133360467414177388706030636117299924279520941331583741302231977170113219670913116851709427860182322253326768873735606829683747307784511185781921755564174850606436901876070286379399464477455256928911070736898646916727595026147201197846106811737180695301757113017825479858534299656962118243302756616599026435816323820629848571559843672640933168286056804183535761443487380262667727954061731421023349128570102787339803851631166226548853666360591409878971248635816567962708105481286760159420324001641179009374623322049801029641737686569456741217050243731596236623045660050686679251472341160772535275567236345708330101996294961653934671328699525308069267724069897755593234058522415122230799834122843720188522018833167556454999142333724062391152378853289900434802013900675157265415883807769874083197047590280223384208447739750828017923616990390835969524106215459474908204668554722027729901650888744882478262036360874651843445275313548132508680254813969982717178694301956979295124135792093684802190828038057970052089218311578580814612803435882353628820606064627253006577862010258428073753815669704118066719441886600774851369681310122656811509728995272689854302560489342620520649902606888994402607246271041216914015176267651932469247399500723900794674127200062532702670453587496312497010203207806492513596894704855328299219456056013462966821290939379132510819291665546957646376549449359729583478346923362864365789157088740434225755918292989360703750495421040192079760490914189494203718129693069894848932254995607102764857255022154352694067389733108073445773476943749556247276524125869064514368093211518285647144782483781906299471809162921976945915247044414111405760133667861362333779335606478461196936448930051224260169075387090341777413171871948695480933515473892906542875577934575206596601787110599218094908747548476723180857939048243716273655182193024466375022958327773105021268950280044265905578229756801061432904480336993928852776968099597034200650388416215426272738322786659097124402463933395105891450562195624272418654164726350604719079230211653803716334513888637998662843882835594230652021681607507791368749228832034982050176524574840985360373029514785480617913247788714989166556885439659193846254109196866993329822025895413645036807254282186601598727863237883911327202976413990614520119223196493352439686074772832525061372524939665385225798598884213555124046967118223599434812369140179466986526495980704589318597132653403293449856707833973756006139024376631838338072300088256194013868734554059854543935810612390229705250236477423633887592758355418976363437173134912412222825608593869417920858949083439069680423596153803638918421360758109628377438637161198303386887889722137365531263583399959625746751991013429299298801578026478488184132322022691578518673135482429435739390652741256433070634295665342490938864108795859343983856770980522091105503506101654518132296120716090113422242914706807038001889148096117614814453652859423949828566232126354938835735150318318110804112428790913240704925763320677234726551664291815038239114946229467185483638075045447334037810905639688735199855098470185586032413601693813674289833066941350548797640748409334323982128494501765248319878382940093337848686050441803591200473426403972147167863792991710500277974027502838892597185740717533551978360202467368438878592956303750984774835482413967612116217287852729830945438325484750553545754075135590905585374451626659898790328859867450566854878388573237846445861294179421410661241024087924242612571714765535569166438902563985149713207077907927437881845134151155017735851329384354836807389141668191104228018155474004126208708906600018074082518839030553218413094163619200359687883829569790110732384969894384666535497178441619785013807111674877123337789529743632251115988061340236540097358104201355945830156077227313020985720306634158583890600117519147635782311938690876611604002857038041861230917414990272021951698950459886159689171782757325287857559393367838257323863684359149328071897777111264135483849859568921289573699441611964944237957954411246206931461788800485443017535378736184398324895005242752780287432431632069572430986463395033226895307393790520223189160584638278824526046631714061620903710455711479288324907684771223640516119558941511803356445998048824033419547351369102407745007709474571071261680660693990494569876687712805557443959416093051521605593612493807873805424275200614840751393361560006704171743736482449976696118618346167289408705447444653686824648663239205207679975137756295939293302760063442988014036956916963507281968986452224303686309687531284688395661021445628394342366540412540781865033510749954367044689923475511182515602295662536007395706322577333161249392588072827343401164846844853802662408802095954319515563650124142361804451058001545979449219743739791355826028034762281767093175942530105276236206719094858972235148785822985066201171237284969533817579194109216239051301150128437867071551517910213451863851949990295165059631111914044149845342258643980540933432634140981491021626553921535262556384491153425862656584602781913634777932626544327578173651951927042599925031970229600219575522893244694912349055338920053417837928581069763483709355773420018387380672713605712214118860035868430489633720390811457269713348328185364251253549131530807720722492626043662428584845248764676619661655707185512860636312113857482402208716371424461095672893273923001211238001757870255228630032385692357672014679389041182303869905953647655982011473339782390140555260662226387993967294056210679068077280935014673786460223065850494693316588151149731427260597335038590863205282044743641002135592873472454711547655005160091372865730260226714810457557625604399674681560891143294178545450548523125204907657744364164150539648078831362859737738684881562000383448219262687666245335176110937935173195717623029222156492726644131495436307168839493972982944309389481749389838201526866511795815399608062709550886496539009863748631871505697586528602110706672590224322891503588043367407849306635087884712757302836144625810582969101239951865284934628506418991788900754114565589552450737034103639935600053230192359979518911218571145718124136357754498086655567100681136271584899031089635392694427025708574767163689885100280296180609246597390127098164493010558113334011712930026067995125982650358645942116916888952290942691897605452625419910803758606234927690968483802262276709164327871164062639417734453130215644196399505624097515705215196607626035513880728359265553396539277264845375600261216570656239331268734161772878307675518589160899871194730082986972271674128018472902637917177640412702840181347154179997138684717381556177268856389101879216492013626691528314953213947175176925256548938182087207872723366166839353263242487469071999267151987537842781327319806632211364975532667829337969647174818078191304756566151713598639029948014112379748936157649159797054233471604539591784239016213586141514603781052950317176396946416858921997876781562175947033785890091780081190974504812421195455248686409206485984956877157930971099688173416630783289577613610508009772972582610964979482566847487064792541214524474954742639761843897628230232657700475491470072387159783245928636037860613277730877969758189690769305418359299688619418084636733376568169691704083499178324865112124267999594686620669838720506964846125500258874145819552569817089368592824381389382127134049653764977021847714010331123656960759491328222685373329766958173578756539431925080453105293452464557225214245569410908334257955357170667123669826192898108147986714343184378887013775344869356241854012681275542587203712162769808562189773077440616030892828467043389179226876323623168620079460733621470440023611508530388742022933675608277985432908415207250872125127651586064718190841997064092983615216751905503440467090854835945181661261841678908841549397357633362282149893350396202797740570001006508792113734941629833328081892289284410287137523119513332746679072145542518086822125995750041437565148425689891633821298701451832574539573974877967046968527296929990027271067624552288332284238309967632408814484695038701212720846717878854505033940862368053833868409795501392646212193520274329052466551075094624566417490733566764220706065050239561609686713013635871456433184946425438140597990978719249189345986031107520900266970347499455298895512567883464532145758200978539211243938306195264595268393272742490243588422566091812068055405756178590871923430690491349915046798486375864472012626406384379301158804065927967862154320808049140992604374230939955713908754199435512031008587449985492330260601625844268387987179293222387634630355270289870710550097030765818884040033130627654111525638669311990553530592222230014551518225611059683655883258966330568898240083334075406176219872135425807838188392759325617799175849099838457244075491016426048639703343852971307000261362085237905447883435916992571433460346322016712930779844419865473788969907724706554824316616240498139437348173030791839658196414431829017650001187618273380973892463867228829186713491625560155029071841830373672797312004842765061576661060376392321608246733312660542672887532386671859356408020890474995173439726286089512100287687816456678829232876459526185725833536990998792494948778444087165290781621621766067927701670364456894273216621741247055212117440562489754707055649486463231498782229645676575187847817012242697789539672942821071672250040962137040209146645013269327777611336573553353987600005238928668188514686001834391431617640563777604139253298444626983390812591177947550632874253976990082524323815636705884507229587059855293744032653078326332000143282263009850840233984732529771571744206458684102469542927694546813264810355568934950676842699379947237339570930304721533316818504540197302937227441489828551522019717038405044883044413855690983866752309989446657986845604574949558227659490505268019239490940515771351328596614740863071172337287248596801592777205393218782747990686342845980253405216672555888163370127277768758718412064348763305951187206190776028903682423508249566221201801913271763585206603243152949992348633780129622296685859890342087958700960451141976315119782565645764019211313875585150047600313450887976719480344752489026223290194727005484291511407969285115751049293670076774715672511820936941572635726349073304515867788436716899074044625906620572812947811032771443414659128928753160005311189381545779633487857420990586915162324722151080898898932350553908950167407809297765160702713288850082160627484999865265752975419992177044170536739117425418452052256464095666138159461234427398588643946526880278839952459309921565052871683083062187767920680736263799012851390382685550070591919022585045714562607138597060705750592468193813446063687798788825162700590989477566137352420329302949644243461068737824048118598018721788219988375648635836051821649542287350162830621068446931347380468083028060705419421752105017307267575755083834732462391130527923279089236355880725475015451422712339827044277780450670297983671302758497760289131888027244167046256317476344714385615690348619286600913697352643756745166367111352698201500070203706437165637651201932337498918647199189365518778198860144530263554073264216635386673450614047017246294099322350986682880026029241089091825453455393882117448500313700517191373567455434339126521864306332709157682553987698670986734897984354565655907887234838444758082731118974862008321512233254655664787912122137483119568728240815589572702242624152590684135836876264494060184748717583645750586052477075388262184298684857030497214214026397490888260724501824655932054814639869098887356344034682751489022741039942932486698244716600048221311398258307800729240772358474843451937374109708814986008031994154459297094225465470982189886970779756041978397394783362658774717117848515392842311605326418938544299883626887063243181245770157449524017580544577514215891204590512050831250422680845291930301616782485899489235269056172665594105694940040875205199110450048672929674588153128253770731941194565989935296465425448815872144939121965723616222029824281042818603353498418686882846918480931274110672802320727786840503922014316554330705169397332739327484192157765597339389578862750421761945002364672878371194595163295892107625144248895555157863805479812133657373827844324787886170559124781267444355829315144005044094874882066452102839313635055442027551460658299483852989189908600902127841195573029235885141885207336708081228134161497999457100851671395886774199968081921092833283031619586017027311580869145190471178721949651232384568783979030574622970611899324157482034321702302991618209273580798437097332738960794899616495149239022586741970984734094616435939976907956416764038224876147259573150089235169771975644847670110809634882809192547710294877666255999535891687748031976506223286954435166565246766568566259246766674668787397422128863840108281750021314487903989093914422859108470777727588693883710312451431092559295734873406170189688269596408859813899456242752639461934209402598025257230002847244646287484780794812403585557933958076821060859395126723925076304023092097934558471630132242762604655520981293145680851420014307286864815534537129965282194551832684896721775067042714071450842888574312195503732886713425525609945145646976681138792243047538383914147423121116995418058482626266690852064131519423019548788516625382852849309906146751318328131846038516896144367552810397206145828941953070608476921870431042935386666530602691227735280925858890812345579288774151389252401508455895686892759572096803629098420453139709195567594218017775473018107687439310874446609847325206908808148178722465348002870900090662095432541399408007888655048665788061192522868186463071885206579851336547061555355815617841789610415454235444366797889869683530171881073546639981291064228824700422019677041814680485692437247929262687066894336449650603681411473466751682508389668974695203139311098556175335374733806163785510974691322389189761252934339782925395575463947726028977799882462152882731533156179955434843983677529631974434255461411604291489486175286288655567682537156091827101212332184736159110416452170297892827669666780020254250909780311596010164335754151973812942730032601808018961825788308130206813574894851064601300316990564836633933100016701662985990922401831214747487065215007718939974855868636149954691105775035451405846388931288468874207487227990704149771225728921184839037579780112513943096371350699116224581201952927374575981667905887000484647496984273166456353093949676801522795781799619515721852080602394690662923726828253506356344083004761872047311606140005666435284620695250461486336994126337707339394650626041560011757021427208876403797631791221564784671375290660049827899349025694791506550975540020661977329901679800037350316713174690201739534606971899489323749531249530551149609656389181216849126568375425167990015055824664316063120010979519895221825373223967946596140563742218740252448364027826306676326426443076077689139379433938851308325195644166621547083078900911915983782865636247755311068541713127370688244830507095752477172613392518525556547246488398351178796445368658380080655421808265111495867272410112710038578607193970842145239003824634808192637497029167710755421629101246311421492717151065959947055933670166523789028335284660812451915993276645711451197470503284892719464950855245225967967396993840123472626546136120448898535277693389425686072988448316486918140885676833052568572928706697729436932530839237357761377400679062670771460394200574283006912135244267565401014804473156423720582218922959135225491670871443112422144271571321632985707314424741705421663342796198497284360522936479538402214370963906736829481337929916014935867763071496879991843186952575843524666154641631664927343417627943576888561762417241016701396139243786135118091393167460904493338628125959435311684608111315263813922835072603625706393693620872476642536221803331374073607096320093337132996801856157803581188664698953576071730002632204173652638301228719948701952569719874764168227758687956797830439532638186918408492765518651309187750474465159474690539553214594757024622552868313156056039034021191232525042699122636823916559987260318465149458989367445115905836899822468531230618663311483406054904213136340482006005519053692918750391696188083404701984135339631402624436213008562468407978930213287281944248531929353711257099938710685286140582585291475914827884215337169737745387392328123196508189178185285116520035143584328760472343542617775281747368053596891443456428270573123564510983107429163960959960497729380584235665499767915624299952676314849562942897152284783174051918701401243703579196037202541096083309102127798194504288402972019961953580620783613664508409194147657320423431563595121693135142674876201174113703494277807826268056212873683605045596451971818730413851113137009118012995118907783005316610897890339429331289757259564023144939545715783644984447983516045358034164039517700079895718144270214161328940441012351223319759736174162856775432720920634567488079291695936579373464263397908178317325622082179294966199961858560314788228247337290835070610998358236860190156141750735260134530857361236011382122611162612116095602108273464750009984121408018951348475289358058305394260774504566276449718939173161774731471568860512353930951934812388616058491992081158342893629063819023054103645354323803461761959512250128311712921929872599743690797003742399286368936534059329511498041786589153149644220013670537605923463487248860264884422027982993048580749250059646313275960165447837214316089000152927744107439131785461782308788649260897959573359423059133464469868219413297090908058248787374336456179323728000424556910281425175938733887314911661753695678720251655514298152879451279363896350153894878013173176480070917833503521220146217821764753559986584308518518923037848539735915988973797582263327329937370162776653510403402875288071765089298014262108180918229809733450377365044912792222678415278961909348183609283874497983166107215692445502493066006116155283829991700337999483303874824040923421806472223289087874283443088100373691099369156656214921256255170350704732321418805249471917224484137827201620111160504756517538618195000730773020283628635192503800007053854284670469094213618601862255357758165311244634818405551745909785420173773814546517209787345138540360059284927332153130538146123148448616062160801534002111079252171506395454640677991310844844355055493525440035644775138852952485498412675078350080580390326352200430996649261749600858606603698012571189351131977115566291409721715093266341102831423218244491889005067858866617505491319471520288747544391278378458704120630259085151898499210067948447007500205257020097594235448223020711479524132834239775605593516216876881993757817155676591361697231796389444573181886065763262060338151064596957000058902346354360569757384373137486624390888836751087112760686217013470097328139791521312138693677762212701731367172109713620006717756456115399634781667372883040106104441820219836276503364365088652574553413087816840207463400991596251863277119272541648284708467104288402480988644686932176304673641780399984174613133816229633324441810807521139801546249750739535232966880302831897431529399472402517583354953280739421823721758771234852666620395612715870537750341954127073402580383290765295187069101773422428992621301556764676014838199293770860355892480433190357495197326836644157783073968803013075053874504931063956018290188238223147218372089574007530882766213512565912111444432634545051203526087739874910505306263100703400817541092262363283397513268256504488716852310804945099295635571068965540897546192536255453135313792103559536261535263871693508699916389559429357351128146823013707244528278497044746296734318569248947434247826168638757889076360510007545320178481587807594422187122476290984481423882048931645776201317665067706822367733686094014637297186183622460591868324060252974609574032675747894730515086182945176600167249137969174960025097787520745961041982263759192841474423270821548988281247100275428418848044720685214171402502597205200199511889888144344718647794742688951815566749045303195018737203409247181442217438761182366066217035280110943713056105352358620509202402191386526236002473221130037083224853986499553359011712941149527065888319217991398172104412969914068476591803789903176166417380586197818276788206602675430825849418718644467533291623975580659483439503197352149975029901497511417016601329794434362750958923112249604099289171223178415816685461652503326329945515399090434541596238061882764935532713521904749745426840119929725942542204595382249585854868409721414791462241712331884312385339533372951357831985484946363548386784037993313295488197540272456578694416858189120186123667145857600716935868728763954424459985494749115034414157364991497466928270427026468541644797749552570811682526620180738951454478167451470288669159516449941206602566404674608794085843760745625605793255582983535718544260987053829175346326634300749837151351595350415998777892358830092613226104386016872327313390111074225989728898810244203347536238188510886853019081862391802847634475775711914232126754759938487632946347254688433548323378567688239429428631091270317046767999752977955872328956526583012101591104967002928223440183321105099653681223816308616361660372877990633552878977525606036133793747694504818604866673834464358475628741187640505361007446340015184001044589291423655185114643952389052073995609135792351963941713637706137392335083037519289152259064991345168167697453306555469702129171138577753739672249784668027329315197335612885331651170684908112289239998302008205690840062165874680585689067994640267256663997642331097789900958026734071346145363860595513676241788764371181392006153080385507890205342912340832423784774555922009008047379786373774005806001862655076014849441577252825457043263603873771677788495485504214839199015175232215537431178824205211200842686796972418953070261449748057049870245868616308072743039394055877476857400181356046302449402549405394080362008612060580314260147399126077951446978888566589437197098560516041481266523317125999576479491611311212138378165453345126661306523119965599364625759226490234638643241999293789254192887433081551161397907516802374044628284608504022432014331250208634931459581158329164638403088438427886537486369706284681329271029856127762063514518990283747683691763098108337804477088987013237004176771830030076197816793684816045942838234871418908092813077361332111938941131302528612952338451956152674502032514373788000925140669388628319784325341496086522701608708620362203334253787108035211995923488856043631618769022136573387493567795908903350497832413045044617506241518365665028294047435497998415298823945405395198413061567050666429786888546051410522051091368165417005501103040277029837760768894022523245023102775147027683114969727982177974379811352023060972635454655259583712003027716383779395019718383081526628873471659605504588749610146908987163936413920949107087800794915515201467565402811156238316315307904942896135686423945263660309794419258697686445111556985380458277726777806415750556493709741484912302907652971281963964130204135794226191070227234840558929796440218418987502596416505431922045770621464988487333249515081292992263383224837012879764884474850262044871593108372723411493096260107811887747122422844895864464028389115264782644809916242262206984422804112803559341297448063816323772826030172475987731553499926774512186077451167123810888488409583609820853620648969338568312347983157639089203025532760699662283499871560843404979628614802267807873855822626400464119954774605716629769335890099932300013119437081410311081311262755727944671356491403581734035777138250731229574886216485287056807711979290920454285767139780235027018372432692979564028225384724674120873252202678994970077998224724512054814810913886150327476243920435658615035457241271362455022968015794294972119441471477647320570763399168729197545175316104031380834265338586807495634559341685699745553664401041631801675134029454075750317482037703323311125222311189225349258531500918432394678082149997444217219574587628532780513846712113706410807380181099291102337820159436237137716507143103365478334849026905804754067275321126550194738189697335563531892467957616558344969892316170920674428804094572528161335957771384046603649668850650222499533488690249344931291970070359458732400574741489761792699185914164245472921475806383735061865189796337644349203458236403448947430212695866696168798628461988103562782100029771080076255630917603020242509659284282918697923455514499406071498054867017070588125408381901588405743951281372676387507060473682328878278407446846455674922732743329618315980665528225952435261096503564301003531727231604141805494605825896419147208288518213414894377440524400613835492667619004038995556786230413212320743160775204202698834227594465484688120564067085478526726103859682202713098080820151208541416877170500718646803112973847814671497692426265176821955301312024148221158986373046657855536385593467646219682521830125162999412548064554776154559714853823115298250501315579857249185621884679828006994076348075779105101803225504252468969379436873661247448330259592674820369908953061802474490417195827194692814571215154743474574476453969924531008655515513937983999756945251290976974642265237529250900288247569682246871424448899751882019607235831708611136156832505494396453937890351786170474755866047158124553882913601016015242948800093273971249680879358636500778137128644783718767711611020135919909168909283632268608824970880132126910558109502966414205609756297058505048418446820755870750005449721331462061747561384515899820137414941033279425063863714122756130051469655131491632666681270183550824745443983894275058626696574426488578560436758858266577145716362916310439555890278446710485880169812097462578041774516945350350727097871243827157653141533870534246283275910061054753958716258835587040549677179685816817560719855901052876636016127108269254349548144462727517817333328295963392478353844508815372748540357600529854353351024413155620707031355292057072558443320940652458328321227407389911612465184929843806217826689311416836179998943715867032840432731320493876314210956299345524983851620630557751051130057139686880962914642662495944229774117824949146552666404117551324744600952624306739381535717976770179521498069135181283964359224930726890808890895870739925095757763972167144837191523594113378828586193127986100259003158364471881777392794732970753170664328217956155441200136632661051502559132686139245089649281552398632092182949785732545459822889152077436159794089925556409270619162154557070092423295800099493158080589781060371346864489574401043061819004910108537248338681402574489748592928447102238668654209765655735113097152142910739814680472077521647403589782078394535552464351244995131430803817998344486543234702839918744621785439099593393269053604005026666833371357679951142873371509545964623242035885744144589954893675830931980916710511524598477686751680392702582905121466878186181163885649780976894366883956017972553501034073224985679570858948226879270005697120924628323164602513218972569287126514976667200143198956206584151549709685804602052869187363109335615193056404827794282179869590996896797182950850345381815663168661740022831393179247341283264339157625601230861911149594129532813461984288123463124020057523016938027037255699226620959658004601667604229970740978463864072830922685279889578428816013119350497507223343026708927123680181689781545757243058510543764137703905798035110701202577343371316176180081366839272940645161679469034876998781439181382262275489075430091946109270934874042445410694015692088742144504472847898825952435553115672141853697723334305750160587661772789699435257294491423504282628981198808152180903611306273685514234380107277767908774104223781024349632889728308378001450019982537384616310856005329354497618290388702819450211339089965656775342197194553790937968470453055199808582656700367619709966235723776819906266414087269059086430243812899666319144372933347722336018142251601521877598874681800229695385171432083196729076956108323045648298694217572738605196401336043162089787192972053875220614819821597690459395365652964880331797928343393292288393581428270819869819436964746858551905562342383565312438914363647667117882233287244456746463015440184627482490589730779699004533848722727728246576910886568378743927516108799853787384165851760574956971616036986262097592351221324786529091246290289614444943477323670999103916106974789187356593979501371761863955653774667509044355988186078578968637270368654320216555444228721776769649903360351278439687067857148522135299999465518314824384803920520178177655957680365669878036129848404131070860737457685219052149723937183797244748445428007776496932706128771736338420966335100389093356773859734241135463040788247469895017940282567359050574243630952453687386303467942575972433118442776072756857761966924029924823561897955229000868592507205291613871187398752575310167481857993087127335537196633724494240343480380899069758279169452664223084329354694354891444536681774604605709727712514392641438965108536407856634260124015233274422767485492402833109276139188933990581006555247649581365489493212327915311140767085801899595265715542172277412543032415564905429427980755982286775018078774139961455654659443666591491506315194852711505221976707317047960287738505607986585500255072198389731881369969815616667825677831607784937895258688235739816291329343600270180530474926449585340644846426589817705504040421892121218553220779493481247972142936843221791998042994528978086673450883853230780967970834440523397047664421805281123182566049951188111015694504453874534104834950146530864085397277745872323343109035156120737639859036725727048669437814729560445722719062994350380187946666094912683606547010167514666607865596212215643304709740750858945057575161031356431119108471528326669493913710939008862699103994229648948059682261329651675892769299194679827267931738646941826096999665474497073472724538139880338144100971267170142776018803380968360942393351694385421692090173691122563861387838698702511989715360948827487408100459740136229959131316712388827746650074453233678621732916342708734303161395437880092842005628345553007133382978424979987602157113305827983691476772314634719586366455899387945697920989618939015692510600156257398402235452955101393476980268226485229457076536695885138098995136087168298758325083502630767003635395662745139151193527202620628569723896526364588913834919972975533297991769199770847021916130656709770609870512994357821731868774569675360246796874785388119231524634723596221145365686534712631512561299096263231084684331810000372698807329806592811184188409875713625524382046507363376159606816352429995522913676729500163509829473726527586374727604106624362695056259975529166887345220569414063070219640233177170089047927590040643036100563593346486748896545351060581204280494287522821407571651827785071938450480717015751526466742349743488246837418794826835273317206482486851187511613575410659416389817657081555398246652692018422392559668202024636863782251014638511340660401769436780154262864569683860252335792957019339842547228772648364021769651853402660173704059263523348361150714183224592776309705683321414097617048073324789410848853510033510661821582880746515454033178027958468239976943536706035901525977922449577020244324653866148515519636072418045548380058594147281692537902263370328008730886834598040377064306539807778819889044579716569107682154332028201818466118199914288121322664409243227888560960121642383485236788255153516440869367433262526474787905035926153492337705152795959454859172644509392274769033727751712533833398729566921758893950422155691610833010061886995135087334610403863463382634054464605961365752334229381075556731759376128306390733940618589870485701006846227299814277262430257901440481927227266324532425270276275322989684444196169293021052892265021476272572922198212858320128048839838515247648964609128322527655655374901647393825914147294131434915292212967570003011098748207122892087154334618149099264542877144799656348844993172207186570939635541397130022563804828723399984201997059058311389978514273595959566974001013050842558941078667300716371421799810044785344921900804957433176766619420552221431366345588855853127053417152356372003960212006246294723903736230793944879908415029573819304631334672388946262611640233202867606874360781172551213458211292807894509594347091905149557599779015469712898237829057026607602039933998112415959684545805293591085436492456267076922668513147007381340768731511431778946944599924734255760020774970696671910837391487062861534276332371675173101092262121949920594041549781485126744803025039721470680739906980628806998688426855749741611683146051924471264232854060698422595996884991394115756637049420342253775590868125609891989442145038403023708761259698386917971664033788689279629325496758545596568531964099668895622239789243263191040548044887036565260254219562378811535956223007056403791378942695744663747000411431083900267629872418253991928049680505399510452357729910320701096284612022857112885380592030954099313990641737132133262483968076469078260994742033958857707964577064716981115380357939077854258629629721341985218334007675657297848482614394157324218286375571961496658367671354717609759789104417669855520288578854517291996310031806502650927458578580345674927734767279198996007368968765976345462754252148394001686845783902009526537982738672166987179393777119695511247678955259496334059430660700518043698271402291381295972611608345965143330849574828082572230400186935074456747722891854774639950475605769879075366898737970206657114363814182582987625094982636409104670329625570399525431586960890494973894073426620917856226673245152055929467246595286260073355144703244301675061136796614833818707216667111804635447684017919883856545747563253946397471656231430392216755639665150559505615635578476515312419363037357514012054547351546425225696344322002470303646241362848570000095242559837882331191296626496113994580383000821224765464634969485946959168951027938361228687401372679926877439629088231729090617561242412856897363148947826264960258487167821001684198273957592562770147463957053560941506399285338813926596948042548507052872863252423096228747016126266662996813467910730639343944643946770953740457600320646426607645881903009651173769994496401614668359581454420051596976180691261689432259949810300221557406909226237022562989258892008213545727837301710556550233998052805357997489284958659347331127923455166760938339310430902159437953106930463148974838661961959159991591391493913926956803370113394502031327755747618320921107955163278919172879257414756653134261043062469612618510636182074376249951891199642255240962922360195145153485868617202725433507226272061627354975238196243761496023186391991646060374503034421464543155742690547183814454934791756433344090404351338125530029842784509596736496245370203406980209611240487704641637367403494976583677335412707229322823310100087666184183986261651709834092576560814231034598463003891409447524660773364782395377938830408462791680766289418640511307721403832575071783553812065478271008267193586232712844408245812151598256322797380945602920030307880916705658880899155994938002891979265001471189312164792602329000404831902680908918828143071378634211135788925785537107160082286565639981863841393856348035019118499536346771681326685072204377365345057598648336952017720390914039149881785566061721545911023628135337020112773404553579342772452616795328024945831128972877533608838048007745079475944936766848734173517759329110966918331521417900693631973693764540848902557482722096058910889769530229835430661971346161773028019103540857695900688226723332443622076207148705474552479502545715690653063178500012521562545314027237503868214400689726153503513134883943459616181704353994140326546161927967198982371783216013534351835168949262031620196831020189740574895584811187193911160075105712402163892364568243895255419643825439462689907888306762203002728100287564529875552561292546579404059510961141251477456154516439309342432239651917221489998394619767988606433089063550375328552526847920272761410098000219566723530357062764965742472702946345139567750600277556638730429156286826737645295810544493137038543534432571332849009071589808894721167314240193929449848470671271416423209172986720673769834881963205821620409323776419306984468345527061828733719239184256900704299947403468991589327392730960327537513358283062547320947123781951576318625325393330174865783014454600953514871511897127438477745420699872078086604468269068438339317007916959765334835645757563110056096617555711860864459129549341014861943495837793234687461470476248466064378869913145651325690730428652037774261642648325066507755873705673536062107342204569842315156176993490269404760763383675540276373151435828599722449040945616524965706863998818942048225045308720204848372846641646795958418339261347200234321023246745847224352717524059303227922307366125190352752498927034394507097190084165098730415087489739959883279980907069689822403509391673053314825903367971117105639931298352508051546410264252993463165818907803975920694889781746995361676388838925344179739410444247703897374447900643345189290257286352109513130106527934644583284603287961881281193560558495083803845835435431356468562735315667513791695614251484916584528937282100154911325023759839634928968160165740490157133780009094532739149023071215007275238689589914255587488413046941465681761362691766559333568475122739879823740293974350711789396376214155299215548539767879595194380967076622664973451543716460777944462266667383996330678770129504654558375787954983711445774851420464011313878059075857698523844554197330057607495761647297034761924745616706616014975523886891070507396848192411408118450969104023524071539516490187550469316719206003400827884509445334427160586823571125225118925355625024431370586003696441172216808193916017271668198375734100498661893552439216405742006295516978938457162491985208967104442607301940990758606334437699958331785707250580593877053062486929110434128713105996636725580476927398886790112007612716464267541363252310822026217276890618004504115698771587099879895928588465752541387360473629385452477657768984230807298204701376252466245787159972259353831137715652281762733816058997399823301395052154704171999725897311736389486270807716507207505749701028188082352139698234673260747111436181704879364026621106736671428585528860700669565043246426602784502677206882271005857132543064300943591791999106574307574956020322379364109702034947176086505414134343662062250046957676898417918428672628123590962910063302616124651469936434271614817044956323301741095607096572045899324442919550654973771424388215087531284316206564568954626705961067102372860908660950254319004188158874122201193985064741384975776879639275990346248852119429263008037982444094855727148491738258011823575483983335561055805177489760049414396300820692838365494962092719381508269343879523727603108873382505425759331165378214002625959896947474140873239047294219043123171906890895511285342316199909301187435993963836717845205518934859479283624829439499334856772110041994530069920167057224363985632759847590004686924918127562369644638447292692359606048504654754575578885333086791912518265931411588174002165717136503120678474391942977415300086096478237553651977477987864320901502676755511212640683983373048227138068712327330147469458054348861847179799028122890800218390741234861979604893645940851767554054650390792075263938772921985418055746322646490481240877483610435743270524771694396236063137178562892473693326295596070726184993098058800278923037989740885040125970470815115918451128305831368193390806929559936240113457315929901760360452386066524664619169630778599552456176366154924128527114563363970672062594353338946571623473411493909841681595666294859762424299230290715269289755500793381537896013399215554373631563924153555673631532135895868495630458555981019069448855282198887508064628804644169614161203698857799381799412469440142134006289778154498890076616784455504060680573927515320777179285287813203707050186526836636090595365332635925323984780383968322859905321636618597548121470995728039532924092946373456570852066908182984157105421103285903667332533512121143765751127236628303022934513342365145982040064023103576346740561223903053412646694373786838090335176241153041886866578055500039345276005320056963538148962270182872288502858848715138123721181070093216145568564620709976762424543444489713315747108131670532476380155210221380635752682519831913468672243461324855283504541824513604016203727196348233786368499420981518204465187793544927254557673273469108944326273947911110962044943034864883086764548898160768647533927916632478101258596169943904460685643797404898335022967532714695962743712126038952837879618415024225090750929294474736213252111185581181960909009013558731554711439437690382175471083384143759410898934112522068566511470124984550946126432450727272647299345881993773094583879574292033821062945738146376565917189984595557367125054796588332128675508361921383164782743247349625640519797875316333724515752954939742010188407677720399984329554876206053525414830341002806747538931474499923540084499443216761368559736297917038108186980761950260124059936213962342030059143958840271741958726364847299809998052229989702661420778568349960612144882777923961543249916952302389610496424117254107905091836069947128722665296556837221300534237893205892664670596865548258315033067851732387795664417655263907166169478293619612193142715038444230576312084921915470289771226469384025975092266696664314547139077294657744663106391395323903893335844694087945509409140384341700213056148071796787456927014311268375515898487174943791743940190897855467658739211117836244932347793347648837560795778243391536645466942699349193704873969543019081530894453097388591637579581873446612419729268440032909099094603164502891682313485847793165251558491341274057697169915454899267278914383071863926668785803441509055376311157531977860507829527552399743122442829392572350414716180314680202344248693585135807585067103014103532865916630679528987527578221353690421346437901975691019048070906072560791644720099038595810929972464692450767294880485749379127736889511404134841830248607152262913623286358520819507813825703081215104442650657072704464711899066705739521192370915320770507373837628228117458862644728761956080669055834933867405941640311422566459642560055582368941697149489451750439619072186109323492111234045055236760487410825341894085475943623557397253263083536701043731674775777075883912977350998388469542479562841764157458379539133077023738299601831626212044013663598821909491884784824801277049691968277352994167436543818500805108884768850798910420411745780794748910841460786320523902971710126177363706823236660547658555443925401362519800993716179751418713289790365316495960196908068922218805744405884408514668367993051776472104720650838325989794853291167508996879770728970881911871497536066267052327757281774881492544042454962433656347034860290683245394913611567253408889910826020244391957699102066576315802781496312605983864001353537225665835677377265443999888946967665279159338273429711314589807934499117587957421496223555583282138831632652847192254801489189830253386116740261714927763924658357058989574317016504299273415898766775330701287900765352841291156048640354447194136182567219345145009469148840783218238134044361466679060150476349383533254877549092687943023611049807521684443974926121883045064366375759925397679409520035978679996733369911669766690820633874608846326199094282166158481674123526980780760199490378428162441094751132766688067842319456874078351666688394339519863555206108085427686429715961013446293327367760840946067935011288274764498173076665480853618913799599409387935008780689431024737708141014753246424724730690450641994958699080410053053071597640779660005474339567359011914948369871827006909570360344309245285348423249451488002587856447006218797487084305188141312658691858873578407252799458792490860064659586963735282271268028398080399036469657382401655022068654547013920479110405126789595768772982970107285626028557887642941585113725198574673737899267600113819574744828450803256172847859883342749795972137760178873976347564905850360718104063975505180270849529292818029063568717476319402363753420803464191697444595748462613965755356421157376002429407807076099769955468514499707439774117301148379551820230358139338530834215393413847683597182855161354631262307989712151087937905575314391052159492474092949830894212814661622376887340163684900912017310204846817966676634743742407264139633872220326197095010371045996454187679855546545553770331752604860001855676917217978558843991373437488701942455405979756192708624375305500940841627036526860363638048887994007038501275448151113213853931551880819738604630803921137223353004986427691958947892504523950156772054567456074663992948180158450059649021146046167996101407011018044742932668044402985278228239139331581210022015491841814469664644987741280991852322749007761575380284904361187367037630616190761214249100771919494862815946507689454860534816200811692268923071619440201487062583529008247533743086212948000544376285053336929964971515992917536830078382069224683093752165118572556832766624529817622694046964650564921188189203083762769543745131524043418552893694504287594132812130857254215255367477032469956474101823414406932767322724199338148684090331444626510096084165960385307275400621021988137728157237137938254724252806486428037996713292725408056248085677183072145998060910045819558181420476851360967224702869535279322601424866545364090641762518363289203650998421793550285098695862997608495162290851050366074929849861146602132019607238619954507024255284196000482095024502287372429467685829721088833996835831295516298828418589534906119147021735527549369826692118451647102067803475813475128208245812286513651420586121165600314828823142536121621841505456003302169847247822733772947788323250726490368526698579722553813882686350206534568883085090874920716271026027406682176455536090774626155815172584595570208902521343137004569792345026104759814787614252954294904290978827655834311783443297752275606679792510340763349388677041956845712479280990359777579957888139578125089913571215891892987463911757528832742433515459043024166594499753998671074841125326484499483993908084296696272996636503940854032511294485063249408680792468219599388052535859881694702038049871608181516890406239754617970748368085763161751887383587267528653446994426388522845648405723163321965982885285149826607259503360599193628292749023915260725324421555488748290744103528286887366076122723304020434739709390419170679214792614027800069967993671604989690675467309084931755677885141720340305651432540884789422433183314565640424288386947012443719147348461123019195975276134077469893215172234988488286867353190938088251387035570861656441474116316476725692769855358230160044301392160477145115608186457561241347136184153781030443349337108337065075150619047500477221074304262929933967883136968571768069253419903639101594679347826959549140253106464537711567852341427468544507408225023130288934762677217609876261223181238504509132110932676964516061056212865275008610533452207134874197700992540300736822001140913340259375549095003374993866518731874212246963706396357428309455084069124992979071702444027040282377288463096915854429762755302087657366098353752599942123728413284127759900329813017612759446760215861376876456656043861737748270947912667839482665421830434209860773130940939055432682727974990271758208162854586576849464065186649918092011225674195617960291514063147515446821887213299937983125455761232552316028078460239552510928216560131552438589348713525439789533609836010601949188891023966072312370230576532597578973668276933071316119755355813222726102344441423231480276111565885186396194236783626439712688233658608643049817782872446515338594604302838368212960030889924780735361629719584130005577608645059604505744278126563392997136158240355244801007713640284284336293475732680560142842257358403562192787629461033999486718475696956814662888927328454175433570338033532292152040043013434365407287462134702652921398810808773414215655623299058046564792473771996784498132137204819910898514591707727712704803481623311342424944551840534041986278824539837995901388342102676954692866285006257500482387189308422900236038410313270001541497312449755029185301464729413524965565640940267581963829521081177124965459988684026563190818983567833995719015670616916227260540248868243828101386037569061764149921097797697136599139431296285100415524259937751474607104293015055899314262305671717170261459163267233775543538309270581429550951752420874775603634102906619657423589230866538633318224105598061261575263898791867851201929871040745738596907695101225618042175571841606580389951875334107655148598485957327882305542553439788759291694616258658645407713736149785012021070297287456905677229662549134861161738522629173860606551195725296635934032464595895187852061736940910900603000206219970501794641859339592799777950118393818277374424197838596907709142194772764252674675878259054751816463008549437370880562331695738336869562489278755203805704599597810141744411896593099315965325312604838369589202244706322492696223561440787627900379233737699180683717539200183380655861831305579436895573712508497344337628369539008692675251490995309062276603128116798884936852957002909171477226322228159979390809831094378361312663871538117425150470010960147503118515347152738329865475921372026483292356332284763223676240217724099163311206153677055521334067350627360900826107569350655335101434260452893194534193195852435505095001421012945729492800403926047811813388771956608972276324338355749862087024595278865172312649527744782536551037128074227490414280328081729169259796234206317223230687442715232438138595017654976114717209910796614761675676737877872667079018543045306125772434290010658834483696943173444812334914089438117990085991128498179266237271548232559214144310267636412007605152486741116539545539176696875202680144282932250312704323453577830354983662223240523782587245584471976843373800842129910184447184820626563315577017708108295622730361225921615166998213108505579671749476420915121375609561822638105589288780552554913227785534338424185420193751903140923380736227391725327700608257514455600542958602324561180882741399558223201828895429897837923222686277778154349599994141863383324220138498992395426072350183823815105084455484590383464279726933252788714857240313622620586184471041412087059162293516185970799386084856256066773176414593254101224695599493422499192700061423526652621549409257973163744040204756718015051056284622124270619354017224925134849905993520228023688841366731542214651050780144937069784616824200264519188982809732765843222584968009725945736946354763141277050222560472927126907033086645906818100030751055127496150102571370964983459945372064422649626868853258401323195318823327509669286717981931672189858043559680296731423382260177829765258509902870849328109410021756812795710730703695331157795549782079366169526789740989984930733068202904766187512321878582495054338840035084314529645897512262092195987757611429335371877171510901331946132203876947831463321300019321607851868830611552367895443846292341565636987548549089494150690098413384820963493236670249344517844033900731228932196463027807770078876096214567319878635096712778032971811950169738686922854975553311988679358817076118284171403813192142974625735096916292059872116912082504713113600922385557786472899486008987820174709227707465662871467088277204274156918611270322127462151948534225476171742445817449249880945987542470312765736324484496402448912589371556534439443094936366610710397322034645599338822143533751829215445565938590837289059916172480248892758205448656285202374301379134967286094021340541210751396412685431958905787267558445508981605261804819560673316251316671125284791607777429974231020534126757703136128981894009575406327302833119772011688817618671944024708825050909647597095524202528003980744427550325680337982467660194688356193780418056403073126379131549127581024769509106479738817189953594529876867158030350384085432514374342662752412190921133411774240114464072264157730142950223396160349475007506973767860486906925665521679438123959929439762015926141301992913469611291621480388384477083034756359414213177824090962577866578763236869472145664926931380255408518759988877287737575325318423433121483070356851947523943732560043036146934601291255831492682707833449375312390684278787561562693684485976475670472035469010554891169516005779207454382415055433826538530139637176751941453319539457280354730742408178293607525053255429164102116704987308507904206228773004770492103951950574378325764081004091695996753672825295855936896464427573747595747674720866462680133957863294769871370959003419789981457809256835100551517367499312292206192410544962352773927928162547488357660794632226865519260066288484290262612806817083056560493017025254150735072797113704229219940570754485271336476119522459129838305164258337315525616207665166901909149305072812303873843340566492469167748343506905012263406201747717553082486444778255601530460809610931302705774481285534464220719667434193917192803110729336291973581261540370612088772191952238681323909529846430950338923353787774402173076652591229657380638125954601012804682532238388566703190247362058508362388417787622178694778735352740223368370133162854145996618683909868132436446034196444210441512196151912966701460288451926375954577481147406730280243326057306364881058794393634449876032175190402828901360991541196771067878874304762417296164687843111706091756326368413800559770685245497142582422240537881495614984167563615834063174739554068143370821371681919811960490294562115035161180556411601225276368872304634309656874931432133056993843533166762035199960497173941659332535976068583163534976577973681307442826719369413998614914586510480248583898423556906016414572543237711341326297006274763379959586836804317574508190643874442606638353439516479144426288736399727021345573805377112460988136901705827669510694380801782833418710192137396792413662290052968708839452922718856448177851354773295322854927140506057659687077427963475039695176778798426723433100455655625814633785962727776681924228077052846658981188140832708407849251588196939879416135598201010147027486666063179250009854123086242937599697326971511012151389775852777797746688950413954645201053132135011161113893935944847726191943325391625049185032736407719226673916839032555563396889865440572562564867382098972599964531810608756816195924230112496871967516548276931505084514889856649094675767793269599865376615791666779075817275112283649953571885859955578758302572596085588879870265186055453271905849576726681252430089299241963507563969764490130941812035569033314772510787995668546771490758910377918467148479841409084656715410368501465145891981861551649728169581051719330885614637241410543323237610301384172604992439425581839748645806020348393308466634595583034474568674381096240792523440608910179273617478910045799945069423448421724787578290100076847294623675153389120348489275574967077760052399420158280725846702512398411848338225714716962301180326586951226743121219029462906937761203748343590717421459436370254859554612748235705735509431554756869372375040063388568599130387414082728676725458583934597499698031813922920391621827616795190374260005776166290679077343346242467221198211851775023005595779117846550124069721575508221413727506479946124541306374548710065513914503821180826685825541996562676734457744830198330355697284576383488926029647477162977757574404777555612831340200680776513345684167323913808492293493407893474307411470949345342403079559139791872965874328465733908203580311566918937011413673558341259105061345100392107415832078892756962928018229981421390679555804667537474577896811879571084848166628302919716622351959637013806432720605104906657393516444110172310352449607833291829519021103759832460202276296596683593340369951372667889521708637510810666511000079121342961197453695214391976916894377002783116872748014781444386401425352339731358933286411550908743219373377520577419984209472368027774666101075892866533824135346880990720203371611437801839578116961359830001650836265400422572094183788843860581166154325389500221929940275615587815067435693445978261673400624167628280896933856852109151328365917759006525060271904707211830915443339639231597398759316079345171576590092777280721650481326183120464533569941806345619567972484794010323062312881897950289793077415047021430262834152019331346873096962968218540892477438504732351030236734267822889301925008998632992066972539698168037411848209083569545726212147970728750576337827517636962301313263198596913299019987426993171782774944561827570689455847725881925905757878760770570643979367441616810054470214764264107856936555452722035930527456797619018625800434249707647616673908856459758350989295036212745580350626048686144066841440441799442817808864874896703832920583502314977308375459395929122951156483314026562539206500226147575620940366043343126627799469095518509324683103581349410189524852244204378847990799905767052399572820126961444594872960589836169608712008888823573544880976746532378746638034901548581040766363873388753676353142499732824955151326518149648070095666419391937841912673421739726892110994596001595206593664147092157312808134094516239271029619018960946989045150842963646363104239444576164510883348148914606785342372721851484814858994202567095265803270217070113135699490006319557687373144502712623306009918831252671002661249295610776677395429210465082600916852707470294749756887549334582934572808168777700584745266211501928368590530981200576416568956265985493496181427061287606714945370470014448304672474676760986101624261170724876981663565997374984964994168503302915276143775992688715118357502993030446855900831922427088127919997008040794730921276093028127946959264929971701666769139335240610326502524020781487815669982911110859143605548697116041874517703602516451445484995788239385905745606626023397140429391291589115469475083762052244518194369591128151827693150713566741358193247469167242032423630472126575860643005951933625541850022022768622371442844314272042539052422216804779577752400063103113516077174784713060623498713899460111317195986070972018261446771878299997705373945800704317339009762311517323771878249608732299525608278938725636462709091660662244454793599878610907407007173652308791067761512963025699118859366683865005164056032107417567388062855909443961278281480874108266071000858982150376530262395822204667593790377305972046746629334286123813038727559089290343675607546589283154863857813429616019364552314236524202946431243670922539772137682014972326888767719472347369936314484185807640346334328446786153544603868267474673156907822581511065135951541560401864383847685887207405387932188110429064833337911408204005008353085422936194767687821699799403462228179843555748335621696107929245828158994990706879828419619454217269942230323482534629955929970816889635928655312620355696894343889934757799563868842514244573708001021719725094931953297645129859385956777283693082324621077457098048907944338969737136736675148172893566988352240860628754508557459864355332638959126419064244906563843532706537293766720176369662480328295763142796921944475639271952871835403459062790866326051723914827086534274067721756742944477474372385796819150579336109562985652187814567120754679478562202668828236063247941648444340687844789374507814435164878337507361448080867498252348483636321646120142350786620524076961304377106378413733581899584520072950531038262329359718320911720071092545193065371092105511297747559246585058960499861866510075670821387644184638473273038854763655064723706423159671960210086749237725071952960904969310630703452269035968543864558134788804162166368102335170552978397671550120068042693807575025914333508669406505938431137150446511613721181440086801696628384969710870678199336829576311907337329021408159575911697847926141377199020682272749758137794865941158944884832129367173690769175877763964625531674470643645140290540037981465084265062629354925416076661046028745815089374109930814449313566319493253078333256749674192343745707326578618778094102418476725016869223860933964606104031640782124855085450979606655007562160442832512789440426492715039368430788498825166284217366427917245647049347277225716787645198706574304766584466926763001843297825792292857361230102246638777050629465735712430266145727435948980106829350211803091477197580904433245596099531654642096980020832840809533062116817950480125313097620731450936691952477716896951294065496175666490680564357421181847880188200894671887325696930825810989322312690580163284941452426405615175894073507232182683392849630135447102209790623717410446272241402214806825818595961457748271574749422735326114320456093771699365647696437728176444254981521625046635679005622055040201993091615071818314282818962971390199897948356366304965783102760569236116641414621039912152673875260397848579204142493969852361634995745191860717754650643827357881696645659626514007926820277293812265710425521387672527208687013432604644315038819082662340743397696818106021994668025597751989210537174022612094284239245612482223083357078827764712823263759686754140116458399282033200734396878295891255641315193002192239387760073377050475345330838154475207352136792523261200275996039332877803631169220987645457246620671403658645132984665351709664170014627399902005651432308410445197911750981801502024635869273831412944262388308868780679765494943948637825265621497091671217279670187677857048521027716946778384617412491621015826923313277078550255643136579843191243532674110950479354339610525998409460430632371394106680160431732025536581344832256439146653262387055566842479708526074537803903749638759836362898483911117821145803504386040292546037886967127461038102747460861287488850778686182030554260788036848671991785441829782365588806517599144565546628377537996099392245151637008849120837367706339303928768092178226334723783627996670612961830742780295502287101213621273778545359574219371483104531244190689011405620980776578319640986956316841334905529261277850088032474895279058083910037644620370065178376509241815405368631760353028021881594388455402880110387515386926878366758546296338117523716763325835542049699182358986018354957169564321056285704683452252626986368949782226148140553076799797620031615331875111127625529482334566151914704303479962675175000923496237168281445224148551792036807441894881441594692074789605408912534550521712555218658929336912093059086968421885561767015106916279393605592959628982900702392827675138389850842640493767916550894766942892453857740960442997593623609103369363624997476713488356090963605417960962449971862130414187375548486798740996111647319424185682627882784804421678990111657856156503116086117485601482361179348716704786016389456041823004863610319153216893890200691673223793136850579367020179467351700518706533740868450729226571113568856105154068251284217915701296079487340082400722532794361571584836951204703376230433908948386965084366357491392878968731863950600102387387706061919855863206882765485037672414949732320910852921840170094697786638478177316649416331991059887485415387868479081249470809545756024155688492126372141712434011635466128970870767892519738760913035698550535247399147025847617635743471437644677251586218550719902712779597400217862623158441546747505115007441160885687174783017698602062087432400121731396488173026273983403559159953851418898083779766951440328163725962638676271378060976425988705846153405631653143730579087679290095551017422570085831068681040620544210057700190108860109702884141013865509690779473239168599533953020185262761697684329066641652321356541623609304623570324132791886272560030683986785683177806872572492112022684241057749176253762172988541612239070037081132116613457474761966584492474908576101741043202112087509634475188589957201256446701714919943218933242743995617321254454368252456744217353477644649706760337604471730898501366151000307303060464267033546143303851416817136907816843649991767613273107230483268779622423071472561229486189815234303453079663675523539345300589482643923559765846772465020632881344062770462038446602496520786420313246278741685765836035421674246711625615989174526131812505964748894482218645864114286446703119655248820556852393220969864437140810008677210191728425948545310899797353384110829641079116742944816986662592396960986989166413136728020632636768247933363287806974237215729685228362184352428577306855200234372177903116982957672430463106008560320257660821730876330326997736447808644476544081133713599504133468514034328911170780117064487354310598529927503550144599176090522198568294169922327161172151907667974199099820376236067008061383216450064090432897299056394476428358513082916667451749334264454688234980287966912745798716944270505291742820484795695507575672885202011496433686907999572545698050430488822448123746718927276223164161959237597276549297606943411543182531097500352535679658549663924043632454833013344436626303463777538726597814272053417131518339571582700671943583004132625714056118635897596890757896586732952070702515765513253133050426635436364353639194860467653324942967441597791995080511949481803752863441391964314909061320873435128266207759512109565794943486330980586018558350648338602729619333975358111296939443526236282202910215467119215044120707596445722641263292947065966790707055509899338624021079982058617645414054144368097222579673185520081808024352788341875761905169634734147627004491670767880270533738043552317621812031021818150331270281767839651212352457507770174708609300529064904205084563352511247101922558707450872872442945521121529176914767290259216362377280656060200007850091493283733446086223470327279170904040275486268567398931852656338108243613542961105289670411779081034615227353623532282616524178581602279710544893626395207342248914931485578038803260397036826994899105640517870817969186816543318507859870595286407728665076587710820196508685291822289039169780278716629948332938810618277072381143155490502922800125805832048181578096159349113768516644732630421681795552857557185721580438539713633100445314049226677699795331994001776521752826008016478656982907280291161308991646318791480555038908832586396074527782108997693884009940550668083447082050579074320705993949613061250308876622196815256873644694004853229541320343471069758913392329739095300290649512602371289475501769293390372411367242676510050809233441211210447901932470519242316587375076363553818292955943939003898075058946138655554008412182408268079418735134479713758670178805177635987096762721300109790374485262688406407503657839536493585563545174421545009600554705429880998373897658884421515009710031136615160781486812310404091451188283455591558031074268551637131513212595744988084682501111915927857091971298447006735312998772459903615717885349267021343831218144520841564760949345281484227593614123308697769707241077307315411040060374693504655489091507300444358358285351259056142450929850008509599795260931493869094531720672906058566947376308452277425468500441781458242427819177089549174168551014751563817739433075347068094353278707436089382009566136147224723003551099482099579039933942510624774054219876932799284840351284696276930925664599282321706883667404294638985030585155865869942636205734478910274010136750022888251844282453293007825542942047418598798046655380858770634370714354847599934576834900915009995098543572085752398659960953680408361704271371151476986423226588625023668946286454199221849828414510625345668044458735433475943822568475460266345437742979619694672103762102869149448127686465336774631084458635911166067174557017221649715097655830789152140463332746691087601245985555600616746848530854928960375795448573434944235164234930738102234625974504135945193577300408446190329192435230699684277293736643669807048468553497131324530498736543859537874596995762016393055862205534918730702447144411423343963288256436516665399910216402854344161179331165744593014521411692601603139134710061090942977204663517668942591795312236690481254544945119488941123887906655022322611280647431532692128348173457635929391604725555676498265106667973111432101996186352076491575371837589281151891013256272552881668647182019560297966404067281143306736040160650848738664587985182593449437361448992509203511548010903112546271284754502044429129629687957285695503472397367430460991905279047782602686170447446561335742527340874285010865647904591595519010853201699359486472133084935756705726896803815807931760475434017163615787661204809742636535839029108870491545395003795210691074653202079757150345124421984996428648159985045966396162447238955000351558017758810135395909344632119321663648267555262847546213466370677981023913932436760758513380416813981396512460299184822682516740718292438042928364985284009380889866166010974652992523607894003620206411120235634881937779215649273545743539993501465780281688121846855913812335519939931084985299162586056138826699232017289404731207752895576626838267046544512663654843302493201560713391082346711735104737768745875986498138437973568880487027961488971236847880121114100909118570177912799446278420923837180169108000517372825233221109563667383410261035726031723052422941011316788733409125468909817951416855001145766363483367329800269187197931340062287991816104317865530093836408195352694416802642798330029411225007980146752731442436189616723156531257306072813173506484357363506773765581141653908993353026597484669564608810202219987835656981933670362209665886440124647775381771570408604504852879671520895691630681657172033125611466646977439210121124136758536220050144312681500074317620531840943567119781144882889813193746002284767238161722341329583413218585780630928294460046828373015775814432243321679367500614143896814255056365709805530432375552094175083026518035553514621430278874439652001302109842819786261175834033125791475206042201985509359752553176867874887365811829517517280326417069045095089461467418097173938483296720231735636304770415845780673585720975862547782358394587939790613706480998240547744189492823314406743927431532128280290124131196735598688650740036925021299343514882765562956513066734715642038285562800792321893511706631176952225764690906162014825665038615391698436409105405181330637592360480221800481678972208305253029397024581910229010850363700320125797410450651118186501104910386109866664565627477152159452269536981962308411565795851240370099100451251379662810695961805385148755335669589672589123280300561668174222235350055961258488858822744680917987376736037318273593226016061314364392689122596801076475936299057801029051344738889311353002246557633665938395452820036715415981031514714243137671370932998658470150143504304653675873364194258049070966039891857356790921850645978911599581073512151643819270161260079046411928370579331783154428093738403442329819832431643208106641205177937062868505398538516439373772405940827954053078927005230076019792663049869001999166618465818376538015406637877645447998200624008439755603052226334061309373509838447198098019970243717787879013345077076829358118420237920685225488251661203351392563530608163845940692035836700198899667864529007012693660499620336311785117495514824133808524285010392859170342424384592021484755117064143288906424250254247581706431928221496804875876347574993868402439758653706464168746905201165250893078839373427046238991013037650792033841862882408933312946152350022093570270646178048189817700758684507391379394636979561707616203570894954639817185647508624732514107975984063990654044111811120294218722529389096525710883369543415584972086071269940036131703059138567930304027364425542999306237809053680784357382177061928251189520972232462033182187790971614523773597143221832279049650629680742633247666776356735466580073236896135298871636163002371529960968499407437485246074789791826071112837522393752537815744840954934988101269118216831213114342122713212220005574027123220983209039383299496358087845379357964242009500682512270420115257132388961950871396956267288408041358611615380949663324559403426246842549313980851680628232094142075348884081297963380397056028847578031106902007400086561145758493456964446588626150859748047839210763245115732632557894426570939338460585047179651277554722862599143869425895258086759750886954475502569578637984703479064529647766042577906603235145606482662903376612435190127518286079409554688109151977895229346122756798806377414760990190943111797702265288876910244667159118677356383896051117196745636479301315557477017664384478613906615212131770660287477823177399070334685251690739494409402871745477370268612301454501426998307425557586503883288134289446598717954558162310407688485719444123120374415842776429832993789647824874983910553105327820355904356012357218419471228765171506356650160054795208640917564529649554196342323910233346577411909583539631174567193763305965139366628183623365278662753756184626980882938387915918632348835452019010987340356268942914982463079408270435973503680120018813946163540008794619468656398358552317936337723588999420884810280767660831295009957509564863031531231526361595704389745068422018992860320795258165171394471739287855276490253451229912619346619197373431645159462142169348107765552010288608123477008973080694030267345616053255072157833393775190277048132801498822031228720567982174708868826446793728747277547027190479713265172927005390195378695446820085207674411842071735049597688430355690846724556231922703355942376606792304724447591659842069652729133776951186650398537858929994486259729559693908037841277385309758570960597366102769491018466823666260029436605118378558940473432225942083116416600793615698518524041413982888846450307293912758950521076482331049720246633718501422389102187039559094566400786695168162910798437003173897028715845494826243035403818392643957998848613069081984443819279918070580815671542158983639644049755794592148880801906780605057372183446979412488607175426571668819287305680474721252518468271637782578108228969135556444116857994845493141442712617319349092680701884074150019279060348201098076395562832442984091694653222591119291522822686656132985818527274376792975205591963176036618479432552320218788996333793569243919250911897077804004565229875427685990111971244398660041887565429095349463412209939928152760509743430191317923960578563493292530166637157129487639854412932802586564082936921777890570947024556853454964443531693409916677343523084951795635210448029791159392794645388594732268230358625496913867272726506994589027837870477235089178046938763738303471262928115844481173510112092055795715816625219703147311563821128712531514012574809294828907595795092317118901286579309898376814674991803048465709918950989220477605710808088419169261848440232621807413777393073663944377127177199103696454072841996326445537115154612743023661266794360745269687276260053056444502720538330589955210804485092994709310744670456126389217965865754112822273883143873346354757345738580748419058150904288917729904658302816270027639893232531834865534942497614041519212209277418908908779327343846747101385968125795367197130365096412133733514900470595938687216604177029654441000920663151940983213411329308595981417163045903199114862551595929736358129411780490967879791667533217581541499473295224880489477501243090658105842618880890637199600209214382159286367047066598004788259747622528596671574484522962015875363570454623907476487465079775858280453429287424266007935778759233717852466651170178422606599401128061770853019247500525860656697724068096357748239480345821948207596403904991437428035705460392340102069854522451293756039821631385474812599079884668522685657120467372468093390598996010468684614830391229792677099860345345094520817003991594650867639166445525920498178824330580376988082377531502064810048975957256340404424862347705916147901008394697911737027462126276012383325060752791949649068315798037791415354651966370106619963565995918020247719949704996178644555845935163004781780765977869412515181487132195692214471620341799598840989095115841773688390149954008334404055102359602696457786880905167950268243756583101673619789735709169143481603596894301805592451127602982019305901105515481722133882341212194624676287078761597969807842279783295229802242230495030432219193545659850164631446364692066745678217870521942438176712863024759443184910543135652511395395795447427897411435044462896821105548379083661868300934804324654236932560771994600577024246117687447231926887545568022071614500185105537568137391978752104660882123553726160435357713101497804637061931613956876785588108543742695579192498734415611573114027565511375688104980362695284066114920701864364836642578216662294132301430698835368524565896559142757397590663146569469412169330927961236316342389057317163250888487169488669008671532767612432124514471839258116544347306514169225445686531562663802699238397351498486859862136749529849397454042643423734769774860454909082503131527183009513813753719076641178658482698639051029304619823667522727980985438201267198876506183227381455563002690195599371060493126880231087590426534019901018515129257941346189217685941898083455815612224162053383528162685667898781267740930428668465248743433854137485069313334541689465763388828497205328376927246243381296000221352274998618796314533317056935467581748689062425952150347859024452119879060190997364327793092583013443934762799677598932894644308910423461521650835866672457068386378204126044104574817596898198764297688762074615854188075026656651563206045664139368778160458944439965238679768108896696781898054739383191038910133344512737823446776115683178214798856109353893443619380998709583724122728495014941606837625140896529085038554797770389387645462776153906269854394470789506305242247158384418850487423711748481430110284800993166128299745041327550899574676884628566394377374023523997709349616133836766099618615510946778396835099713281173373586018323796042816903702154195452611957595450227087634518371568898401300146091734053819898897334437033266435204618006125931944186406146260063042839832589034452620256056114973336067862886184432789339463448924248955921718734238977604051654997728101684448902044412903800121117235926130114256647362984188457294515749884858044286865740567243182034482590152871810772824874216844120539723654468821627882631463460813005726285172459332621104782078998544649434414067479809205389836558897837743020691892996213588949201819335941656308199545585808104946844660003870097961354182238484009690773161091310083145031666401521584881266019407699399438445144224435551374026013850470372960929377544891111094086123310406021964063563781674862170735233091487074197780676725823924532740554584436461089915868242607213645270070987465104862895393502835125288562877861153431042217012824342575549309409104511805173734886560753053195428663503221115230967641188486577166331574899989612065650994423469182439988565752733543574426532191256884770280623771276154592763849963636157477220168228820965980592707007048462595370278888193928943008093500592967609237856397963497971893912666575596991978519138743553309780857436407678171388499791790597084125015418045064532233454690789498094675674285241190441724021183232609682310711555122798797241452263356682329772221060508468829432877327576908964373293915452660334672783043006731807939009598900871273616352682032289475204502980216176188867932581199511051038866537296832338855135097982932852765551805003325569540915381697130002383672090121191259082458907514633583234728702668472759713517165731297871800283957384688093319970986495660504463459510997770953518962946767491722067799607059290879154221118003774332763468061576346961742857320842065572920598543342842713105803064809316622068348648509745188993630947876144323057647745949452930681395283981206652008389641282940038133278219131742280890444229129238287679281486164807807588175425910464782459458318718191620855168072822231412158867116630745127256126918189754962309126189528105676990532213670518354753819008813138340431761927108269519460136338614388663913402027110897264837567208217311012714789760362252384670194949081592312273518722752294169160053421253624106090579103842108115380570596925183282011053775381893590234387313799535141206953016465853435395321318157792710044124770209243122775298335528312428171020479666044488239127312746946446428944370769303645437112395192814567451209364565714180134903005072136547490253575042081618706437815850387688335287299059664049225855118800400374017909251217458257542181109541877405635705720713384791578549476432445308105487848898488608898615145374695277818908347530807140544266079217548261857684422477785863983383940174558854793374692307119387075604848860253760737082506957892534178416838290787272529535174539845462192580629300430019207142090994546193357370463051954752847368659061592914348922814578086895704563080430508690249222283554024554824155698531097419840625718953430796280085393427376695319631882678333710383550870689091190078810935728472237815228117766582703348451050799730898613074540269087553561787313485316780971149572356693023443594942414991493764227857823967142683468618807280890910853231015285466021273173917616443128244397111923882518851944893284635880965484341287002831517212953735435447661544192646398274955861866870246409872074409723494087306502575343738692819508488205831320775334154095233570525362402948609237193368603634336941723407075703564575684408963813093919210334277135345864505316564298126084919081701178722914789186443967849386638958235976001001231364626371266503260420899291892276783765662826921488291747323954319252760411506520440652533122745753077714361978938009839772612072898340541605711624838726965453252256231642354960291356951222115627033843711009284384029747399446381674891673357951588834684535883603999131625392739223778062555822629678900952424684023841692663009312845930309719481379947670820396728299858657874961607475643665867991530194655753228820274970377316044530145545765719410936414356435157094293451784790663500278475180107265407124793229366304370179650123390037697602493997468465370371670316697834565887943275943801928766472411926688499236071184483177606546513937566294182444731734106023574338044382178361734707166071568591771799219578818394016158118131238450443686370761672763182416767988856733192750982712871933520005973100611064474406171240966668924902504722069598803410125105021080990117013583743783155501137307172408870600574690693337140174240366660883627863047520845056063923735605536469999706289263994349561967999538022594197382525949930244126297703060022833577230036874921858525910776906471298283867659976798221494282647583941726092918008014265348365111160578461287957351766112609843842963919682055440272812111362246424955923177325196903342186161864613493348900197500631527029631670189871741258200796610741554790816297805074939506492668614812651296005850081512888323750175928943361549002393470435074378338473120912544136657619709728990800218872270503419226837982621491251310462593760079920686296296994839862353097845301993859354279423969612169638029184554441472982365222877670632231598723621839126618947829176846185311821934636660168201640033347486675604751733325310843688990355163903510138269913503821227720093429328409545081849388139256205761292103603043954768613157617618656688934141553015015221373668560749776470968263418974111333614838054023957317153684370734694296063861274983282769860326852444221579484226005083040674693492839237297828019508242535642165441310442902696573209413851130257189924420929733199157245945577749530327085462615795060433534915064118903616181531095905120483506913614954167258503794165824491991607003282946536785577107386255456350392132426074343296547075512725411837167438225490103787417414363258141780806553462271480311509311120531785832827711274065742175050958908112499917001820560362867848875235325234079111955012770195081460433310599402335653058408209697619397671976474012193766451208808189313815007857434815384702248492132073403929615425283290608017937393770717922568831110044966005491363015984567743166179034460903303668722065006297959070463195467503705937782317079160663836260877348751913644880538920617430704379009303575876620094158107343867236550067078438738360883290654168284601205662892312511581975446667562136804187637837942580491575806037186000533713580391616612388054489226861442950790631080891588685095285181989911058162051533573634001965482922859746771470190836477368439856513830887776731731343113137909754083808225234553730429350189767674997692525097677809797051744953016865743627664824348262399354133234268111021053887487396952299204124389952785057631115829130555716182455484676870123592203325679186103988271965092814747618848025101770115670087375380146694503314139390265669212631946587615956417123210621747254721999432438931284098457055353422930257240776428038867761850601316043914390975871681803006103456268758588086395300783169112581803562448576221125025531483301952841655752694880428848004354650184391744188688334441113516453647170533576276992441046206107572669731006155297575660500646051381122029091862475469745799551005293560055119294842031377963702576907050403906045154903748025290688985744513381028214973399664726307280067967977395732703097775743554767424502296924161210541502352878717916393211948910064237646752620781550086078331948388615945275279055388995523509856458337603096196056567731832107127328801931175870532416791749839770312078193581730333497402096735367719046200119766209079166599273899880784659038003759673001548951413785605911916704132550514214598312018549800572530304814002281879585139521484711273276146522906927260386836844570454427878940214893523427667317715070983712805139792486158564846725422629601690966581427424668877082119459188747456612351812015348560770758957963691162031912543084837114140782837010310675962617744672499776464662525025151825643974591020551098191062250212386486823225738172577575192614543549136074624412834996505499022119877697800729738589528225599775869545631538963732396789285235277446675297024452126144409957792701907600942713530203175787534331999491427450170599503882131867954447765953914863260801586696810267306381458177871734760534166995761659331645386213398226502498886730099006589422625186181168887432368649067841702862075558904802901636589536019807783725771652388764669479175336690835506143967292808279851217178304431650716771932651566276102840625830790110831161949152692949723722944637708330303306519723170801337123101970473514051702581872706090822804377593091587691714215594916345916580216078203332048202258862724955850446886399279707932046590263293376887253202188230881603696370376702633483519856750208721868321760331259863618244954819890832950540420568866891502667511137517654669622180951187885983281950139270070454532042018921853030624487058345571472920396063601556614935082677605070353134486579449305816967997842326871371616807074489017727224325470109028299841361793689779020593215416068666797802793264621285297421551629528143168665860263402578505667790134918737151518596125348910769073014813467662109186819572270856885349693848385970163646018353006119794689914133339777894522068026935252714040900665418152646579335091874657861202426259933627503145666579115120334218331492236288054672418193439494186408684856162544991941033624061983791441867658392652862498287585898685951762421257680373785752689107190053297003281255073613017401733153392604326387194918000183332539650113961831477966874866687783782827942434220174891092391344438595410474814450893237401161600854944305457496428814810496910182273754930582406130834075762855042806379400521609951525413322439516478608196490742634169482689514504798078539632782212794072512915890962234333224883497841284278724123258990435789750584450636930614036646608666883968161484298739790204430733561879369645571356418035941973902821296513082136213354878166743417612841294775390563264768863739292388737180368322435060945488401324393619639890285042042900379836652007017046316832883251211295691287330024428850912900619546649017806908460248733852872489232350567287848728050931642468027106103648841024943112898957791361997249762222224951276537183638540098173118564765043294000440923850654030637316390930380222458089871830704470910390438700396512772460920421317544175147548568667649130249798539392519152974760436755826172382378345637999869483229837589067375617522430959540868005886444312135297555649626329908287706114705941815400824399868188880219358713424591666454504963989925405725169071424479605161083376731833779765765243722772251900891167619368957165885562718706186267102894649086856114762858131919353111032879406632681812100670859985297233273709169931152777044999513025503937605114206603187393781530008761645139138397500004641532739840586721064857004143041307106753346369937877343411771979843240497778229841586369603017551085365822407840098785930981895071595408338186342975377311328972739799117127431400714767470009549385830661767560971804124804001281091599517108984865979686233433623619699671654342332192473467303509419722955042716045191950180997381428457869801556383964027728891699168458577834559089008944245402212310589166238057670894844150242078978906533273414673638674719503027815249575966299173699977901976445261488144101879475362184999679751390562249055637171737621684238507849916339125024909022451924739487561522351668170708797571812390251825594437165429915620153288250752310052494860390034321923144178851113707741230115726571641067103790745574793425724221999440304477230443681704846326804217765026010292712270359631652422557691548756108284990022095992262829927491955338278100087129028555430039064863713615808333861025460579423592905833339019889802995351625801544365194402519922077888793638439759064118127746616165598836105486562572531874266367301719312996623319551510501447772664301648120069134501312103901882151708480719728580847695572304078666345114271572542679530658638130724002626714245824190506862957896677304072784941311297857697198194808347218352901095784516794298829373750411702193027669058727943472843224258263067762917861085949602673980464634926748323870272831460294907419930766106621352377996553978315090705139225976524537783168222962162474499138620587434668097408025654112045070549590952340041499651253689979810540341078561225467299371066279983852945815462187705289391381125716057939102513621454023752926668584710208386557053303966448154288754424517379196346180967446046540386353142822862689903339954355201296368934465326055887484999985610957922464461278237968184213784755763113794223201140254568529631765222193141135811063329384983022511343476034122571599882654705208010292380422390466937593084760112632597047463541105846169698305529850589106189916400322957519607420180972772051669907508258705528592771331106738628330409524104071153199242663284684507071043003089317652427485612729131714327243120121251631337134948317741088086399553991410188723401620788169280473059230310678641315392320090889301817311937786825050464939274282848034177155298837733960556077385571733817615155608184395342694173499245601064387066483034799718210567911872940635538616758594795483150764132044903682895434870939757657214421201161552898506419056357525443383469573623275752292441648723513769788739717641324382043398912253380070780393841492862827226523245606871562408192856287419572460506113607017602609720332880825378386242376227716510379464524705951766111504127069325591788035679939511843645889635098672533490741663543923187673129353689290655070582786139028994809058480195634948888230510178192615665230499011901775222822317389503809519218744478541106897986729500306242981951296622382367229397640188670949550857027605939378384837909707062718323309303457036779586489729514989225244604635523289176145715806702435802752641089405241953099682403760410918145519762913234470303063973323141455158312405284945297001488409503064755318963966873295484095812878827209543451026437553762971398412049418665217302705916283150597851851458929555058221732342583580121621734001947500445351472253765334280654386144685190217133965870865616913117413579952524881629486839846004716487173909485824767955468601428250449646772739541103410131644731348605331042252047771334268996214579037486108747199122388921933946326792691576043815119928970060569468210177557118009870027030292316912919737035234440198460178529424110468952941019703030372348265844056780186860839366795079301330911287284750204339273733014307034004530017584793157150797247534478969781249384482566644763885433207429024023521895090278219755984442847062819383246816831140108587485453016812615812831347558976993186468925049137950781733925569405360436248226950749339729857680641540544276833094245922401157380934582397975880578264321321318823244230036106814170438406233820188500114679050076550925260053987046755370560778086947855298741901831842458315644077431226773319151244110309095319991351205113163128470894429756689514507389927086410024433807569541989165058670635940492301207346795093373399951124923444205197392491149874403792330243047627896665949150829561078819930403954723836663953113892631252008016017946419186247538626659736282058462847098932027531667910406712725657995939148949873328289527043705051158867138721707546921593807916113104958269410647112166753401118901024975161800836662665960652493462580587731030710710956959308186690114387432264673899118337157838840200246729328431747358959751467687722564264301628514991693017103862816375561697131226422353759293642689077355604028123210475742596298444769485031918242589902158227437737772305882774143633456504368712166577006610468113317116332057285276031670741978710474905974553371804565854573365642597820495917603398847500340550225266049128708716589736756284081799343502022110710058867506571362356487715693833407550428629545445172308676998866515632992956761671684225123582442805045351480704962797744755654229077194560516623179711326101420383774127271386578614546361250297612875437249487205032059808184483936210859313077190387414105351072106657903259184862066846601196547277676847443640055500553838563157525567381474664160700375221067694665086036509858257510445578016993245035545007174385418273854414269914834255885794611511880222936914686515538134207342669065731220671194632124424090398496660143666373845910697658976347092933160820986737783241816773518130114613314855709378318790218870312769071208722355589733179314974445356922219703669212959714400362941477656513677711030216605940096370827101303546531790333998716566153348211488341861793311778766502974317473980991575886404098344245059492637912462760068144973872718425455595420641945406216955786929670850080669516261468801621616867632328208611110323014436112189230813886564106632680406764408467439034620328030017166168166502168495482009540366161678315864827578116815109631158106901917031535563894684923562945245092189716427282097553754669961438840193399455587796323246283771325948925332883413966491693174473027609589847890132324761161248609235566706697260602694485205959634277847058680950785646306783647617395957451649515704007626569883359222838673433839253968661192693517409086526041732312164133155446427441330938158935720847439218384104554110062816859486929294644234769508677387840821548080254427397956140848339094646932921010068197152365151295924581086263563838190455962775564101521943710618371170943926109796242334409166801676217191923664235784731342080035025039996968413314106734901961419700315751871778174664913967183910332078595668471463515068196983757980063914602157665486233539880036601100536844312629356801642423962081693000899823570366036425938122106593505468704793909922470852891952475713340681182221738949110823437867702213304728896448529558859728273656732652256811561258112515637678992878367488875601541980355932420964832430256085642274522538197828550772662493130129836299701096862515887218391571045595464811001225290714386494860770423322121210701279645968995789390515069665703622562076777494236386078441357464409930770282071234152427223333534216925978303362757772589821324630074560269564485189691221768350588026156129287497467271201676736078260506860084885889463105916938736587082430781833138760626252118805854087751681186479138621718766721076388342098349685923579042183786871177785771209402049644906583429478119702310401960691563958707024550114792081992969901832523563169472259933715940266304061500119024604340631056659232203825198587422140210108496892173800345050942208933858291855266624708003597953907297215673121056702179293266825850770995192334373881275000375086211295095906169641978570914048244896291714353636545696619858019408317294952886955403416336290935458459375802829385102627286619139333761154042155204134308423647900499348428284617491706119764665274831130613273000097353797716027976486593021124985574893812749416786298315645285049691349743475241957761764812889124519109230023470173013301221993699168866837327939980030430247426734443790098470742861970723930926238682733947077649189842553221256784353982103165777428252415122881459326007224914748419441149581022515260705587541301314675467657232890724738515383837233880229592207215239105495925075740192250755588076390187599928611581178943429296365106173838601686822414787173598582929336254020641958418323213123996112412416174585019318623769433817437897067285271779470625034484700817907004288890256894369507963261853086724442040005689315591710721758827415237879033618208476719086693441428505148689890802336288837971275653144437997596914129714126506819665952604664127161158213362781552461357042675959534448634584834791141323683901831375417050419976927247167594618498521336345515305850552734603357063740539912666589629123375692902345060095395956177037936610388812088854278869342376140013769635244273278483198126065809359207363390746903264835069481556712350975656896105863636592172695600343428802434480588061785360959634141486268773852068965921612743671330804430363691392841125848939520428383103526607710325062539753276768440594241265520152077715774815175430065279091195011430373999106988242783762409144656976027483817653263909465284115765627471275425220029990463170075216900710355441684772216456186779108280660076305281423906805865053739342385059486475505177139897057781648470312156483481929992866309605027105977151665279375633236813275463238895790606383421610889296131145755694935923003058861032723832033913042000554483695784663679680507781415327793094950513305583742583315520239222942313011399265973178568084942989048911014669670758334087490455488369498410944737186368108582426318428765277292834162461343609998047472437200561795917303885755852199854562305166096112213152477887043460435643450313292356508847243250371849239702295043872570598983541040270821716798838133757536529773512921862824161512503172240325601376063609558532229720008407001871749713163047900056669386930989763213915074693884101011233491083678734863430755333467983970168874343404387080606974676721016931795261746133150196760225722411749070726094373471984186950477988272047536489474424875934106475778312177597967584454914003493157491556512358025416072238441677323870829575786838099747553826062347864720623789761958165088577213629408497240844630187257116220210706467817992345922912553348679761731905367730912487614604288172650347890025161462224947296180037909096701779309588296515955652117078094050758208897388617119142278686808886698732044039115639101929793743121500648480292654170927258759893547935624220717832392714947825981116559419374694881760900539916208466874280701503087084853971388343600388514120420494776725586312732611045777010956654314065756689100354925393070920346713062723989072800439100553421760294794161636560666321299820686075131825927422550007728136924021878761193285409566589548502448106278457336179035517879295544155123793372945849456795043067411819768496392402643586541291017787828147132200910518948708306359209369607887095962462665756170241090751552913389532798060870595097571071214787610838475837962519808432824999026802254638289734033652044284755750552455479397983026352593134464555872773134707033227482412981803675423576959075406450522610577086486151503391564423662156736892813094078332437719819773613874675315535793368652369504719051523484200311383079459517455934607107908468281886242336190607619079164401444188281124329618096621945292597989897673119833740082795220823741789483543064744111547849535658045449216477979358604073451614959933544621589223459208429175658250826271513395851916923353328023165794310922999514667604481737666899066250590090369309394346006245293229546583701598295682496943490461408538344482415246949034280312747116369908927879258719997530775405839279461037547874150851256325279917491256728342643788950806979750421009300308982726002245329333469121964061063379949139516686976371391739246496033925351874752537880665011999484491563785344934978700828577634482794822746856005412786406328057952948634240186830270172545028310650640097499314432008422192865897291698399948036219889418995591183809849135865176602101479391156585400894744245601667034928853998020923686701161432958492913632501647535650646834351883033724136782359698167964892664508151687640906663015402968649014115954819282033663060153860723951851345297617740349386808615232351714845100722120604769009010528466628191284530923433394548336886902383249357095029055364601778743618961773339529585217560441896098290751013884030332403903287605757920582997780084746776283406169673121021078285038322412307376919173330426100185973690861687902907556445465889911018275012712351434601882935648568522197040191521449245507593500566684686255466762975584078360280857520839875832142747890018097135037619883543644812799521768766088321511133134405008012790179040402669337688627082718399344139662902266079812532371955293810002048894629457820802178897277203455142069849212361019806512644753740195679124135557848733208911440212368183867173368970613353767803666625180064409008171139503378708149651479695683768796721519251880081714201420175624608042584746647450229881176386884675238420009560814390712894847508860342474284970016412060234129206886711935227336577662746635929662379133683717406149401017058639678190300091836137587493309357344507998951925302265197809332221652388321758476613901989047314009743824772324735976063735608026162158275084414247671141185377336319593223887505909170866271023708233766284721168210078392233697317754444865076126552913194207024901678931151569385709336584346392777294742120704052821851470830468137297913479977107967076232262255855923713558081726559290830709100585594596895850010059748156310201212101124784392578723978102839158177428090875109873333146902852190728804781375198011694042951350881784110135341541637896968272127901761162524416737697828865684808658676897435827064316979458640537708184640029865358428086239613272892845932931369830606060053345734661663273577572427511345746831115780859861046436442275796336937106097053836999111186896772550571084397394001465995814936871883419526459682052676234966512839555050124561071092935915007117537186191648448548332501186283050485865831119515352931314109987981572916743452638087898059364130546278213061129983444904853671033394402390270203813695412472961416066389419704436753912170468630494944606716124319170133429383241075151234597748672171784448824112135804649455619797866862004576118648346414213746082378113685791170761006277663955835802809910798582014637001453352134197413256121971209100396918682594180571637580598643649978984561627125297541607064185849008603326049787203194936267528410586646993240091365301369610046332562295178369670027270514893995193121954168661219219385482916670275638945101376624376270165200870184456354041010150929304305581407611650399822638384026115273320166071411321594400488839138981007150797652019066620691769948099757716800943263865258444870557644563536710729321727517436417508933703237926227636411124751334628836685825412451007872471750904253124957100467177032789674225516360405227462508713615901894025364258402762915266615695197800455150906687205133808580416404097381772843413920456768079885592874639488701092027302059520124587527013729776207333816140928202839434801470546029474023179490882613766032751451367429225768080116340035492527022296854010362935012721293020304243903883670176933420081620077661663887976105208948866691345716754959068590872971362372171428158873997521603249420529402311361747514418701450971705986181438914375421390946904184171824552482293593519599332235517215367586215598764902915519566693730717635523735807481920530058540921114252153187428117814729066441796624846029662358138495345782273804770829441382209749659205225653740343940183432922338820067571720773409853635219773328713366010916721809418863837112777000124207866965565313680398311785013994148999482098207370891844935906684385858706584472075857995278037850847631660243533094657280444478541160002439207977524899462322211471514966742974163895640358020683632840405947799911401807739513043981218289392874685240086779981151678480421533604731076266746299682973457446615382068852860283613419306433539768322367208684322017509390744643200452306255968174926488308653832239579951459378593703852873006493856294847959887685109401768606934967653834779741559609706074827936887005099079274506988689502010165819244046975612962403384937129448506512772202450616595685498319806929694370344301502187832300971804535648781314910483452839730846910051415291345452397662263327038596996239817543634401510278248911776318433061563673334779838387238495381711077024006099029898244888722541064295752607598196630539631887824699704668655714800083896508006143210124974030487182737293847329400472176705992187903446515885333239472607568896379118589856893702914927655752662488385732537199306231043918431788616191285448077642889630179644813057586468408340903937740341675592917867846103898351948029273883541455858230479192064702705165765435536693996349817163838028468058413979104678366816673930768624376598171228438434988741734155701596882191271748747776907119669239110298529544850362418325944416478769687107032630561178551326848388037442130102912786379394319917701079918477066028872780320338735616132713553973632062409055095735421803439223391468965264602372104741743621592086421709199226302715455865972275393279745869063455179368031164672837794228253313555416772960629132426552595012407925966214823953234702120186432502604291458426995679482294881702785799480559866559407168668560104920434804983603623786071703790423644136143550151885719822913629536901666270044283355896749720025519155483611632123255003736851452039957550532121713778613953051120953301086212164354627510451107926248480980350553951666421232194184873066365595679163049856130283978064329634995256200500050170985094490436562783350736876306097810626344356422120283543348409524618757250983100173512595368062609852493732056119267997107216813248479195441522846737869763979218851023309519001730560442037368903615190752801053148533334212204583817981837412386694682388328803264950501802317169054949522833084732944128370381307198884537527602182968410350147799951514630257195123626977560612300140652905305529231730586721634521114328621071168934229826297125726839677480784035137163759996265281885833364835997562196087115221406524363257325890752438569080889543407273699574996440184896768579396923216041350785348145182685899822800662942607765554155945977847763085813999026301011776549823184358512254199597381600222864085291753623540310485134472153979824571784376618298344937167147429643971020919361783892826179248268339055759563784235465502557999138832625685218460566931617248075884484587373667849215158467768569877470934202167083281448781234173251829432147143488507154250855641459476525049242190574612505183937421928309678766402580987904748842316647555791410668198629305624548232839879651228780954601177116764353526780865892320316051492881132259998737305411694145645845461836216319890378163193169301115966863267291679716501907991350802002192257732689281626135467986255375592071384010234587562182141073695441525444524977594299106758194967427056581956205164408510238709906661279077764773007187473062952437751279270422911361480252188955760252705347802720119277651397914015259217960793297320057468472001554747010775335685110793243796643959359200154482874161670937309718498311489775482023486339264512953738214081405688032763127161535498764708530396826232430678319684219965524415952613797456871918253689163725986109446202683501326764510491957636632101429810442395600099088455909053735245384896097132779013248379289176361636361500681365719075301759595998253285556438085441736518678114407800705684664996209370425763544584190949743770173182926766842275827052840255088948215395198313001083877657475281153189199687042323015308318554395361641116016140420914057567501716065733044310387305624408498624570687554815411694581886799114505173825489255945430818622326851186609968707568907266479867039895558831412915908539486521372428228950039294975520251146758916285241193449169831559193160357801486038900365143035281111280905934560790006174877355136095911011838234692895732316902349359348768822407877360459879753346949358987646460165985924969636659532697303619056845696559004860461966227233483958897689855017449827165889207004232604282095532796771433146289660083652873413006111290296511339674493533756189327626184304595783853036302992808756900074317727447030487946029095101113653790592476899380938067999107045349291227668286258184147831111421293846214146640306691926114493940640689977667328460909816721551312865301854660128554362365923428669941917471155570912632501587326315305417356704650167579615773620224911054427741073008123675920109716284559833409344665243643384981100428649396296672200043073946566237288953174233398955480108087121260214808768426213887739798471823080776160914762788241621728145476159863025151134160043362409630961735677675606521589455466960234140190675740711540446794346883461471139491710482793123180677499856608368587957161516348814367482237239520677251379992737564856444938856871326154080902183250573193876710143477714962573887643219838767951555336268538854655415859911673643609243641344522648157826217332415248674779058956421431427024854034315710801551106109545460184514849969039847138025194499685946395340878902921214330225077041415660956387607181051604051894244781665784539059607897378210122438492868259333309371458533872365420192691931787167859545009998711471047890512567997003148975113892458371737776141524373846880393188985713348156361265416641639713032769956710909981011360171452790626230683411141878756082533583873987813483682275246870558943842035263530407330822329336815349851601908780430628630213666965978453283455670318438477029503026858248948123714538115883399455776690362474096753835088939842381378852116693653454771050184905035692846659299019683865861197818382846395492621505537021523418184701122389189195678110725474412270694145211931669906185233470056448870359380401698716846345714423602292440149114164145032305424392969211268848024337203895749483872500954151996052645596292330742377751548440402028976509333428555666106139640748734835113970940280576824136047999977307065650045946518457406897148448512463933911910702545826388998399305331134743824596534614491403696060927383682370562692822769100288999366159661223426649494647851363461651769011118711539578159963277977335118109785404007795187017151416647452970351535159348809021325747037042377957217274149459490720216046072423867686347396750899754938123335958543007539960108742394264748307992554185546538685415207016106670697548103045237315710161849707309791759378448106593948780724167872893366555160330659385396012973041562933515493460415235490869937882158545708913057264285501845369061917276250251506317394404260484289777707748032192675429758343759682584559690421281028805939732992195398126961935219337061627250632931285194240981957943996886534289029908398433639881330873752247778827267406873745404935541694537276993203538826112729770478564908635059414268786222751455634012520266756784501807511102819608412248398736464833132391029432734250695876651223427484966862778060206296531126740909777782245207432970735536543044450484071535932713337814455953788640639545413727166430337775964524718215988681676343908008565642385971345480934261231726538729344156458878173772512080488945985482727976051198088676310631452835132444132058148601610326198467281563413254005713064195118813876952943359614779247568377462217232999071984694046766831100865584856052647530613050776293656488259086490271849404631952606493912127027660850124496837976176164325545261003790224880367896050356588329010354308056672657778229270930258238958057562589577905366825269390544226547308800723790962292561712679613303309938860697047863356717908299923273891384608113752381441546776234627166559214367518904866576115568336939568914194272325627385993056794401140630011801751168433581483628891171736028483165028822373300308535838961402956978856673045598475893920132244670831971806553778082572921251828640782765003699957733316845635043893975062436617544715017761901147979316459298469789516351299615208758326444404511063854129034182720992260646718983271747329442017750520274031790362513523877122004376671798852401322963710952180334609442605310709668613131173583718814140125719717189066146930736930663485881424514225129525764837922846883879523834711605971134285297839812320160047381883281213411586312342929452791957974665913922768415066562216338536578208479197168894643093751307273614493818888289415497325098025157263895145339423457369705967028512110249760326718087920849994635647094836876916500433343552607136692013414441049211000121226482594403983055741633777394329240864498912531079383844493235831052401057103912591833875662142591356320329713504176493392237844612129950977889354569300348528516753622853380699184869784670542167318364358972421509286266294015836658704249803633811398496509627781482687155841747314775615176626111813140118831032581108251363083547568075560893158191130604664938184265219266146983306727348081126073185556901597111077959104636816095770780584766973386798234114834090265285039775047557874640573749752470191238227811612303583333961494865715031292708364857553397164320629363777452264282203663985433115998613512000827048821190765921434524936217743751960762621056571654597862490567649536181663369852889085178476552495295011662334766587176169139594470869352239475080190499822107291063662971654053953977877515893306137243017430674573083115726500069903211749265586980358124111106791294195923858039490463828181163954830021253897472421531245728061127868029611002997276349400376610063801919439030846305651543008712880910600949517462917272667820280937630555648582648520768269290188146593171183354040615313575228193812428825267513406376423150782740183501135141096297084150000703079054761922994267239542077367554931860887848346474727082195882612607098365638893967820147441292606979097932577116061575840750060474212150666061978742565852219187230399190601980440458905405820542464138068353765145296197424564869946125384549059602404394480661325697431318415024231308574692659474486983348846509248187377185233468826367759464222365883625554230202008647598592533648948363775677117862457172482405143456380350226268238017959778607862803276428614183135120398224029644988630007568297098475598140086139723666613937380754319470341443033763924623733676860208171911670532753517805240953837885924507808219499359340941776897754836421971468350285436428108013950480244576227876280067318100413645205091363722344411932663330536310400351562688676552855427978010812775536939028259466957089239109222576882622379776496754561506321185348979240551011149418145540969166357890614833457290948441964841925111737308506912532600604750186892079015510706577329843950220718784188273548699751782385841150450259875567058040830803138807352957320092520172015744082921543858279494826278411435846178402838514972806316260947905414456828725100164121637756777489858398637543143276559681636325872376619603482885324371539616406464032771808088772539880596574110792471607078366903358831319985119020030409221336471910064208349459153893735031004305540468435903609912545573821198699312282678338118787633169613094727343870173830662423930240271861324632939038354995492287394301367645549049856264523719738833665757262497195706820818862704121180582407503881565457979269266903254557407711785895197667220003192769230091398135499115887326076033005132868660895572427321650555060208246526220573291913674421703309134890614106299767277010435151039944628224305369647216770422400907125381761316703194832307279596387499445630875913174461746265880524023136832277809090756982319498655667611404133386276908707135805783658035779468502652367588734949187591336900729860669392172302978093412388125387232095068068478788786902604694970438471550616033505741762183676077700257095612801056639400833919145007879977249293098237115288256138759870629859091029720067154908322078596117794959928857520629998945081320354427551874724235977748287979091373269422512552996538611468116906622124778585570403390255730301750174463403905387216248647727275799453082281067348140685794700012435342702989899015826732184024633576615547787376729539049501809112950589244367029096844787236698323916425032210314711771436911088720780473198629275953302159068482134054609645487944754003522574711418045231612114077476737704897569106990830387603970945300368819406818219230280785354190193956796762024280811782326977799200987725587547822069510907150193345380812949729046587110783619407975094372165603959919028099328997695769183912486613240586100840582684747183654602783889253315634846464090840023533334520869702517225815573740784241932887421216150497229034344556881314617417136492508861045680148761388572702223772035879676086189417600878498960314748974784039894447592513245767615583095480746057587570014437334249276821022048153114932583909171699800208565317058665048246566490475419349665936947150410774549802780876329589123101778696195310113330352959741610720979955766559258476570631307759436454052300234711680397715975879614546281773262072737452455984857309113444149484557564250504058372403182455203668220215745740382824149911128030822937296996638479295138680833011167361523799988645976118417663592338873481684057541672032461049503686589582334639434601724338622845143533679685190433418691781496724944571852862958334236738985936975090027306768796175175359995056163808002963011125615576942888372600369092037803470568584320712526062839968392980075095570759438684360644983988093737890752343305522456742576405652525487963511551436151721730522694598483182705895086721527213214272917378659811177214704799383538654070641951707761981854327514342046931608606761180481581146887232377426621873154314326204410316415566617030029999516453612790115140022204491171383523630789905035649699204717083037600332637139635988094799271305848493526469148805083252118623464850329404840759237870387081678527819999244928782212635588141067107978532138237295648849612087283556290525582395518165145297222126003499047102407204274499336071876574482718995283656822001148295006254803254188690984216935209377044184473746742707155921530172478150186460862236769519789715582327441022187424377027254151917397919349012102180263165675661621298297118715321279135515411267885164760013879983741576877048972286000764552421205108107513279814525707917052051529596999860523874317769906878814461948992368026807419090824284921831339919761544099870307442344016666908443070415335612046408472701247746118781333173320394247772974401464959230764976485078559122038899296557474097343125216093520680386062609202175718654203734100907890463130990158519574528691092881023093815606427980468366395306147697310382570076359999912450995662551902874536175112239710969515278988553542747341100255138262274037521297448600114444851944806077261519018163491455174949002508098176567060903367623907036423415337047527085335073570493460095221375081756674190241267376991716182131343190022268574481529289841487268291081637944298594448120740363216332906685461299828159966815290334262546770521912723140040522223532206575791998648215449864686648944473653209404450102336543313814073668484511539303417073088737032044695592000417762994662802997780430969836022239298027070472762001549407159425068423569382256962114518513780020671006168764583745648606934483762555648927772998311640392640696200550746432269244161925256221042176455129259945066889494368277428043220655061047162741556589232451447277726184237662412532193796917621857026949044107417832251240107597188363412052402475639885749596715770254508359149259996568406118796997743678311114436776235803827900406843775967641098751940713826359529920589088667299133675792408914950717053039117418801703302391516072610414753519878732120631255678715472466068883516099631013414356055052538937953109693842285414684489340950397555046204291667576133185328379236511888553551127447433444822288604009093427644500880510468637862942068475273707593296703132125643571435970652768092277253632119945522291935486138159282554555045089809845310137461736513667309475482847822738477180375966169495279207278280702198421443586946062159427595021896425104329726821531962837911511843296963054344553694003124169345868142752851003052598351411562230386734128842824356827747696519780224018830822425765150392722260738742276795813876645416343238235890790304946797353572764518097381150999200234867981188397294412003448653560906534564869872066416962641792533228350060349096023822733175932418889877707850649205473261672478085193553194428424310528731165265022597101981891691089026613653055004909424875722317531030937084521990922346250461812049622050351564897411047811167903062031770837138288092905922422533693866955731553693429197536456545951986321113589498281846580051509519267806356774055815315818474303835430268072884946221571556976348866886532119034210716382050583007693214389133878863411910408248501032628195255930470927625057137176924238213407953578164885841273445228890479932272321013367106965228950675938167480317771049535738801101359908788920645661175166257749121626893500981402668173590388802366138877167768499302388975109588197835587588390595716082884326116074792909263876405815640226517491159265123391479508948287661151266489247392953809259162554141848374349584140296842456814954515284093506989166108570116375204146495512458304946285194442733308190956988110816411310477551944565756554731153767431818002824812931794515728839026687223789335084706831441377069967699599697224950065153430375982424461369016248606248203690567083596159315244085528900917088587606461876781787126987881995735665345638369223198663262324974078347911574797084320584701447030684776701547417763896408662103072117853183615741371996569248888877098314380158932313388542758721343461071688739051655051472164436626093734203445781968127585995092274198637754807040927049634683225325674831930024418719474039491513566423332418514852551427154271842889547899581844126991000787628116896281740665515107769773491077151359362300378120535411818684601398853850454821083582178648084361855023057310996277485045098631236069395539383671794723232686294120005329874458647513132939330413839404384635627312214705959179446967730831143100729637863243092976945862883471901915205530748949282896166193183241450721832569827212833966099254604653192717113768906964116410298750053741376623371981044980577934470896535343617424732990262512061607847239857008711668891139408799573171350650799321113850789412126461549875040677458412310815234810916453941776761116093351545446038659820067669916957229332463660226974348481819793440148082965852330804775102740817546874790052267292249396355437091947333229829318073629520741123602025901974331735612379829308346171308933460013093248996694153314542238776419025949361539599371207800192934629127092826694659288135809742206883878183211031233711598583399370037292490439023006405910185781499777563600008717372846014898509237238710685407346484041717428307189768939698261415409454098718715013091033396722453403368363539972388910737644298257038601622052683545820890835687193232052768758703316901838355853878030431343558458273018670362437138542338425114110708741033176652071583344255819265953553356316232022260009726432378948528473800574971795858648662931908517240698521586705214798370759740149493537136350711355782629305852759692224944652062513805139376072645144645370210624235152297488955948225016947145951933046671766093019949454175524890577926203150110170941169075393901999039508851915854650854069298299424985100802941672140480940481744064845523559611079336890135638993093631227583866634834629179207737985182489888921829788226923730088414398804969287276579855558021178175967830331330540052994374211441110058187802527056623882102262818849683335781605614807086407132932373414749787642108840041675235175748438144625357611493476497131064463768473154473823640342925294308047940433015669988862318064283826408110498896762824578525039656012056797780784235437811531397467024306648215642164342288780976698255841645102570064505997518628828167355833255871759913097264455680374518861395118082200546651620960060316148287513233035652508483569620709909128756848052154822122965455508824245567635260196739490279555704154527238642827132199537409749943883439876795276380572842161756969252188547301440254617499259084425639311054401104239947241506870012600771482079635191433583385975702484551936925030713793912877380975067859654195432606311477365780173379463949625091501005516280679776898049531068157505508638285992693423388691646681789589850121781586874354833174087964946013461711460145594399046123527116231456100252830707451752578323484563813926105904035097655553074015903183776701039783234660357750957506890865498038287695417264375451791271116908722774563123937199240278918557689427409482786419575895730708149108805696694011006185153957916569831468544106991927395399565151774981754874167264297550733451958786809998378685150099424282305097332238652271350712713778098790926927758235723053938050187011948018554289158866050374276555975795196977703951388139304845304292356506020659098345484764225506209315620183317549297005301310949551534572259326850511830641516357238138109658917497926513112333085674583255849926275058429092228474218177141661212117401086846986659921087352993186892254768394705394796184738856164424909699593916149296721317306109892444425213524407899176344422521806855435343563392093598749871422455388633829849002581158703705851199732803969299571885224411860309090088656359141333891585571938562944590824743320624560142750473643567613615156590089232328870240517137951181204784942418956742094349169548811037973577573392247217391709251590158615671483059819724632204010456732104547417013378913153705424229671705612275097020158683540089460264381237890929024289573951609444491754226158315313994204135213031469019415453489990235088206879055573941532793085732947084778241686225766989482217660598319172299269121294648935502837441471920517580881682396951331414933735308599615441544040352147144647158209719338288360300465296322127143177914262146011297977649110962446566997091687809352250666657672092446418368539140733188816140256013475627327557441329433295275366831069979008370174091323783329879125190359563390365154377436356786548499636326862343796370504468866332622429824145600568738535690007460499826770552225255349713937040914816386948478393122855955898497674276643844477996553126273833962402405502717920013244772640986194751396174239185135792250897313950865490068807039292440615092681516601085336076947755787503988968903265193852931515203359849912386838472846056853863845969798452750216911475056172399300744776693907703870616887942702099145802902041242622137442147140913953932566878401722149525848386976294649356022592792715244308055511191090746232018675471547708440229618923822946486112113731500665854516400582278047447106445802584931690914609972141585228353308739183535488285161014078743534130964386941873678349691089956889598220265739994772848239051441867421973838769907444036197339384883249373539689160097765982294502661078958229933496200126591298313772062246257212793115661332599302033149567391074930088201731989882624484613856395767892052347107947922133907391220210601892715529329585324296594285572708555668871981214068972032093464120844444983979956006825281977199670051358199835451201921867064088206958245046611115769629369333909189552831222810200346507493578063634245449824492420201438416625526679142506723403137839245162358033384734709464197940171368489647703680529568102612147247894890428417072439888480877373784531961156707601118381068273703475894225711686235908540649466699455170662143610957591744351423673963985126900694232158509928926393566088792394257172418246980482439607501453234200451263848018617044941128692673501011365193168148277483888044544771037134291710500069667219090982157035115842268776288202006911013219633655229670443851002642817358751183144480087005897687571728608037814982703542845305951340651190256171121341746472202911118617634885760150859487787527888920583344958135896547975946358789694097128762981020777008073195934235462141365040183380780609027874963681820191857675493249585427688499256223467235004820743803073961640160092805585412326251183016483634339908712097000553476080763706856642883059303948619192482336438025252640064003348270267275241006962317265021059220314624328956351852689019600323932805920724687122072297899073399807882365510021198604932017571290038691405149711083765353728748263010415850850652923958398294234066544535257922666264799262008452405109247012509277129488885730594049043721900947278346905587235526147400540646910568686513015885230177973873050053419286620406419867346578625328364712053882719577527126653997586349025067276359818756328196059941245660186794265294558859425533047348540803765222554794106184820671926866296876620029889458580112581382024413805337290618858296662525139793435390790048793267688584529392510338764510087893225243498041603416975095484867266707166468291965796645637657316982798979920710723836682330164159525076667808457360253192736032393205054848788937836291799920651075506385273841032873806287428638685185549237544113160712675971502421296800289187748154705701301316525356381104595417851589084111967162266971266372177435455642913309245472761978243689496989896596939149186159353037233405544754114958874900607538429866700714959345151744081047611444768362801191328872914878687292669216828684621426330523230358983026071385115259019961956730425896680433983428515054928454700178629160417117195562156898117593926145973580884195259526091468656456104439130510851230975823684936740272235782538437484391186545560193419371374163212742389028580094702920757732455345392504046990180208030797870357688508883983323337808690709436909082925753034096301242363523329980386427473825365281822372621453091445047059723475459624422195438246426878823877612532986483753839872037470751261094142174031391755179413037709522390675876900751430988864457309119941486443718107296990462650237696808663273787396332866551965004645322952296747063095899126209255561572413308986122604271825462927186776561343494408273934516134881576481835656879463601315375416420183961491386972483362559033784457606109294285071902162873609534052235296540247913741209298599062281769037345777015678801230304780228917492677002129414373743675432174619788268672474116846133473227386682500850066707757081133474158772375405860397649461407656803982507260189807423603101835698016197074797125290087065150721299039420061647847582692671492879890198190579899785787130098577462001939633203818863881569526688041339449458035776380533681962892285009686144804206639701213113478436701024642449821055097066799761014848532979006436501913643817224307689558148711283690358882273456676382589443248110756187957497029285039338751001131660940960733382547554875654537811224449105237173974788996563159040758078705490700259780131761701450719785426070028036467759363595700097197456692230575035816334185366451556745862276537621498363616494603262503880616470695643289738553792897727624013240893878148468206331875819828326998477238071229993336848035212474203398587214295237390104470327142108172601395036835042277479546228803190087108334925329054881881479828269164877387034550094415641743117178726912255345650058417583636984119240025487567213256867716549793247041431886724846560316241974717589896634899051530564346158283558062350022749820955449707854218129254297121316150248730334110657574295042012793250259349713921593451756900687938229706235428152268707168419763745174966375326103056401546664414804290954514060402830968255191123636286475698611554529658303404837548634398458770620570498976044462949167084226307757189740477802792229941851975828150769833864296663456474133087090531118851265143739510591220766126655677462238677019107185542369088786289091481095235006632986510423416335039484158538005527807402158060825780091416295991332634798519273149257771914240550194759416772362597692676303192333798347570387444094052221136032622018175256627784233101056714240890907444191063440241360417280786609543778212051502798437965079003676250693250928652428968534578182810404728699054695629393145023919001928877676174696547431484873398893648835120044207696295532035870780794005062430855120130383443003269924338304014587576448830825541256246272941818998494599323459894471239596245276412478953406718924455873131873484179253609667956229985459075285890440076673340862703957645916760907903486038354485988347768943682923076629095543332061462203612237790477285347087923240386702557938645200889136754089590585447375093990934011095932067859765625203856253321146323545003510959633669046350656970146142376141560219325804341714712434155070839791126191675278346568505282682027546016872593997397903002480753504381296284236998371796124729770709550248691135521134747622826071998917827120424898179227625566931896687297708027682616584045051104351378151354535210026529103497764518091107106842292787104293938507211164998382681354256621171530914085959779779076401332350100753805815523846864517671962445117056757057400784565293744573833097842899298475232592836594806736881571702876288735988001828530993565607493819025079573803474739623909598957350386091391524308103008055176431563895305158261862479459959544178224081408406027740383554765883390669678293344367464550214651305898974896347193575469583292825679100167892186248971476190679708626265864938306645023387939409679969155528225197203596572543169030645009630693515066343066889611103499995885227663376784477319097664472368770645511037811950739001834501892236251903944370888786800778757560581832680949305054905055171882408297183393727291944898642168615705918936499976908945986675164426789562416938309021247592546226767420167929586271168055415815989557443815964193439177022958222414155170590270973833132847541330704056725591490533915604472410893490620671469338793475862667861028254713338446497111376508584423028790641917216685479383187178612222960063019216836636679277316894557793634930221056868089650031095231489263738621101806665464550794095680553397023103447893031302125066583696113032128947948680065350657659725239508469062535793076264013144811588573591965295652046228813159000332874693986357342722724094046633159826503773564057005996452175024542245378009794513499282012475738566375250753870682760064827006165784239111636510906222563710079266710834829132082616300349546210578759925087916435696902466944111036826968690571644156804116405683663443006289615024211200570194269357548042502929703243140820093625794258339222697097525375835831457513947820150267421210915476187011006830593301867334553362610630219768819807648253117627074435240824366197717017560078492505888440157317114863542700130866861082420733119588255686961562469138862694597503591751882091017040452450068678847973783980792084305109342047196020879364851746812506693913469950119409274565193574353995114235436004643536157162308290365867154582735884370710292695237093446761511913091035770276415448105538338082770528101964597316940499959497520453135053443126316002718159864484463906757082354906597613916191995598001521854844839240777318571324182934003296560070163577345126573209892822777785402407185058644665013841197412887352621059250113987077302716235983049327676524402374347882601063130714554841678595642570348072423307058579718085593945630805841155457164878558886742898551144355728289832560433595911848901866804332651858365377394018818509094418209343777991747628206510239718592646410551113200733172812979456466360992268039721418903203631183405396159841866963590775024664733295070020938734721119365828931922050867189858384310004077689292431782342882997457382971886307269191729427227969688528320122394558095554951539458453344477878394863314834601793768646248065198709977097235243859651489025919735323365224408587127417734798856918372470356641293636691647259778619678699255542783843430684730467459109933715964587434424289795237334214782741935226186896735393462816331659602329951362543405063159451957863675478973447669077991970748647335381528951214876814030597102254792479487128494402402297265510642123209258072034204687845741580218581287416396112257175755320337917147222737907307676429899830736739159121882058252965126937048573728569437142852487581359132261651551864515796809517947524732566711464163387268295965074854931075063717655214941510215353026503866096076752946054179443141851068168743907078986316688445613514747694415620772570177187521540535906216278017337260285691994019181537237693122548736476464030064183371105181004263386865607438340328541123864839933366781510006624268606801845978026277978760241666691879053959443587401986252512236798136171424548783943068460013455639316204694021616542093795801236269006688413061131588048337157372583868891739221631221657471808938824713216929143939808243382202465887888654226462507685097152916023242577050657835185247950038195541237791236243976771403194241306062995003900216320346044206853710451343408868798300646503686761922996699849162527287466158740246841187697268746713472789651682340260528268090577426794762886342193076133465390791296118087973533040344408528193268934477428411792697895818862104285512393874976523254913105074256202448270424982007615876507905528360275807779494133425782468255069822049475467103211838413591523800665499864058802576493361907703415549514554641891161329738510229845804377209183003764780854062453562490881511050829887715762600822273961225794911503761737586546241183903389326067263823051209987680712177988558927926400623331439933242524756391886000899092218877361011295188150906044452884094050858943521096054510149670997575487734752201946732794819257783027127132636725914968091551776809373940866118583112637785019293034872948361941545632961007433202145929163225369587936900995514257376381305158652716705249147541769101804751322595965828829374884967158237225537687243871696856281456198647422304842868824908358387551822513417881548492563141363683590563221368088027788183930237849821275348732933122289512046986167708555751674035878932948410934305355406689812271225637699938057119730991701660389962688894849203744522959150146978331229168030277148181209498095168975826010588725359004181370363551896877468830374765484446200051619112484657708639720181968461095028576802605596656727222642210296718929257437131111959709704659861676932825513536632199796416162583497443387187142624348196293461905490579399800308497121765205995470611169477091770820663093047254864087749518047196345276080126587512846722553047784665342139806835508020076567983732588775594150958783895679568472574430114694462456481835736345625479193045551698966903281473536958390783844481784488895031933012908263989156103934670471514324490167334145437840633472898465968443591683191945866939297730168465165951359630527729476121200701974050137665663416096940998246393331716383142551936931540668173281692787236658111714202119707278587748339970713757338635793571324268092887522999996816149866309185103396987979914218749727686980214828549225303048321155714098290113960330491109736672342270733829053272711031480957408412210258206708018918560289433731222077744503369972627078913369626524816281205371672185960712523276356696272420787031503415149521969045364446816909680796673966457839779044210118791189270201351355157262460507681622096291675139042504062547909350757794416662286374001003894292226041197677986247205668873834652403148871929271264404521267195192263152657693435583175712956974664088067354460157610414442568684903189978901767780620949499655451405010361414915381626696208118803723459983215916527588560702217915747059290120010509237580028165627281519889170629863926640463547657736374583819084740784585058188944396302433829768539811394049122070073360801935491185127771113102279446050783167550297561581241706465739132476320559186799976778968027683062701822962956685080763171299372376888884113627519982585198349018858137436723902354255109345587597828861358434096009408576204983973509081863666673190442103034928617326047203775390470867256782828929976742505068810300522132758137019144553392244299512083657515958626175915733877927700716909040598836032591953539731937228789606516534291996538093581082473359407146072581669690697171937680125457681799504624909495783556885571848521756137088206812782918707331903792539977841238286755608136907261166668897326384185638817489602574134497489483563199847255814177204373726839194893532151481364506788057550277120540202623357939717883942600463518029537252050960091991935160056191970222213312559155276594625175541206689752185059317336558862989843905692920527752241167721077929412851531867827117259579885249615650436236292042365572575172083812697184080759800277252832623618128890086053264240130875511351852626289685522062242450446563191507098642333484431710223852293578592722420085261596042168837071852315345857187528956037543529735036920450588443453263291289876725716703676549323725868922730803911361800949305036991362518111586118196625392894894080433462032074606711657511824322340208029255935930822142184205211310816934761387549918616820782229346898203569811702134851215933360916688941367506772971113333189454876875870222987988905127032805453725764730128154037218779537285886755533873950493602202203729215211890835006192609173190210240028330383110484298973650722142381184130072670039473275336141276679677116835845484875560771104923940875404792397540343596081372222341350306272182767668258454508494608057034361167295517958955519090914117648740312762115647147820753645234812248499844829031174323487575359966068442226166986868034730578058826574921551895038013950366027053404181656750079684649037050519927213373016841757056865741569466098008867524905911725707516685310807328870265086902775489393901514787609824304272113957097781189496952645820265925086835294110073920063760416520140930436933866645207971277884609343453272788420001481712475048306567521042191526231917129486033721063301440140832733296708759071159593630137759769391411461365805057168679055370140845963455008697424935412463739283848974005198720680289307612086430920643696383113932343139886562378948041267252400409258834139662948944281544218253130400581276926645309708661077297715081976312431098699497973663139485848770341484830069349333614339840550521630802541658861892291267654300023278655158966617628626145788972439811453944631285817904268196687456942980875525885909423770365653999781942510023834643743694831713274588993803144360615342301218045409374163198300618749954991733694388199586386624135852350779653271619076056684773993630825082360830140720627937903673753483343286540172260070638850616691339675367935757627359354167200478569700910861719520060289391380307902219523246814115143720295927410938943809673480154131429454066787747395589000271993791109378164650967806685145748415073939104020512573189408410857267114976115901671245120124093466804808991519784024161401115583001416785959516596742918589476117361592098303093017562106216753146013518843734294016119273771941812377882796186882731003089012719113599498939975925958809874902159917521245439871043648782944235749974030836954026248577345840334235732162849130856497691325914704538913720739776314287172555013738656981054036448131056709574732666104187068162016644873506103420021996348011244202442157496218000071491160522700334630275167750885131876448766947975795379866275232013347895775289212882794275086193216619677391031746791675795883491656196661820015834214120273791056529211978084168214267642972041984478375469162783605648021320347155646847512239364352278608072017727407741372439323467401517349636355426423951052550834914111810790115185610249086479912287049891105271597009642448775775680965272874977996570278850350985312163561978402778956029181327858465777608977781058496950033486168183052641690856914300363109219310669073600310623356329812186526151988585360503617101078474443906602348464355197701292079318982753506142259006937167523447007511800735602892955267013160594895878472834806269219852535500394753465954795382048418316852854029938705140914681091385279279963268150992129776736082814486986470146541144844606709852228551769878539762383279684643382526410342531794868547562599698230313818040981615658249175504374402796276516884926631550041838434183596653601654259676433521718642780871929196631587474389773665709333900558203339837340456324958322060456294882481956903563167575345041549306994291802367290756442649389549431511270027506234783184292868693136197977693161717092755053204021442407666386742725856218285042072963887840948611441635728564384850560086679607036585876009623506289729112849100446232831327281640154841976365039819329096462191794647305154848128143636883262098171633903257720264044283107495955994380900799789653609823214426223582656174638996366083285489091020253263169175399514484032683144139894762842638216547354164641226538682853714699243464985007544132457154724532145066362699790689965352401946220353618606234924029514788658756172988022851467249540436822568346533394720578085713756469523982663643063191132233261297319383344156394651266420705135741483395116037650648327075631687349738397988446267015952517600683301465952159213230464280670868560303478073217215328120362669791172108899924535341367931968186775252930853066289384106241867564649240075962297035882465366740751339086399508373945505269237961034148088920000178821009233457951184348124538823362826663034356134552482203165891258924208307974690028129630611019700332239273846774048793230666732267651546084195424587066657449383565551899741208872466198744094347476248438896491902601631562595433847587186723264012026442775870189745157709353962152984181850307788048495634530817668826373637420589102505446995466087872685853805478821584537541993671636308709674430051365910536916176745644125081486404295857891982439110794898957589026512296904345111147293801359663785413624268883357878956051450929298866587601732905915718535516352205569608551513239752870334220812931445622552967074056761882290966876690251962360802518992157315308247646526056189943743669287488511327665508020554203255272049436554201600460256170660257138693243517985849624762741207446971017508606346496172516914301207950230336221006996978096404973255324371547525783687381665950099386301495940367071536559935916576924653284195417274048039219179154959289629598328976408635178999758625676526010001566478677936459620510835871801740428697957290867918195856544974062304019798054503853489816586547239994046268839068794491971350086279272554032265715868712333413563082584028498217825018784348565780946223683662334598702439163617976283600568301391693210624613769876913058577153491221772662095261261516997120794761180650972630892393770626159188693056479640769962993955063379781294693931400709355367883783756899339022580142541212274935854398100963525241482813002112875125662043594606021190914470121357736621889581626933293636941534836621171588742752506449556680022491824647966066242240550476356972968451924750534553646384340702971184030020154322210638834768022662196394569606072006778772483411437945434783902728222106307235283070104901067907597006228066255553288679453792214407255107123047773542142532565971099679603427256434894924140663759105893431659072539888482118584631851373126084154638253003307305621717350075001565086698659164351417216609646826378349984546672661884127684226521139484767396609263152513838312974753787899740728698932979392838566827253171335379105908508857000850950148778633504973660908486267054885867715718366572707266971585682826301129756734058454320883827869787468804478799504407156603162035064546198517671307882547914945365492262532011795561507877699179311357879226390612896908584237841660321159774925896471207787800198643777273524724177318709314691401419569388815558828741843325466045121408652412907221308454106276159303890196189711675415407869990948346831919517452523236785964504353548784036789004010951236039594475169460428957678158036218609209228811777235304414765659962198283219683418795670059137589971785228645786822098706801298146166911832073035266057637698256219899286811595753703695628775826917271614563099451624003455524370460856840035695742437657203885926496819866215017694005684696961253225311293806234404862510243156073458412534019240339821425098299094762451737434530490120959679268141177113980986709143153972641743970835453737840919277608206726959466814729990036933636978896404824189488983722922149468916250832966583341189204702982773959780431955249057100626195828630846237591752286841712581257635387661225466565427709973737101588690277541569464353530418811927431183143137756916938010865252248925343029289984485387446812722870535695334156776191212851520652034769077606781796357808700823485306144178703250858959967116494724449185114073771102040749962796565987619210986354302255337311186598782820754521543928887056472449370461357082007497875047168873416281075279668256684051695053372216000223732420654741885324321456236739591794510155893934344797304055366378813703332474229624085913176127268083818588253574519511521820937878896503710721276267332154293161841841462404006657673684902935573613941631300108966025241576883017476325693624752964689741461931148036093436732120189732602349589998698370978149455936067997750788029695966627813486201641699516623177605574797907634809725942795703152679949669131230628300972183590993045002967999122534033462041470551372933056484416623981086554842838845010614317162462023772902155865454397949854796488942297935595094379826180511640492205383651307930921405191476721266208293608851363021397461194294680180213320172184950599693592527647244639581239800139233507016277458779640033682385419857560455969952619811265613990375065263040165738473627996807606744120471809826823367996012287365611641164090296150847942832431751290443967554413979860650321707456366119506947214591348846143474680757278667887441019892773471870492225721527662946087420304318704580656477939722990295183673198008318102795513358932326835511953585889557893102412401034414866612249158995649682071495321142295388828402541844457734099724354360003899109182871813825698594070554003340959937194812819619857616010087105491054968089825756710648714927929520629790871766847939604613116306096407480029693208157328990023898722241152460106187395202697830846690738140783158197870282749343569889752044822214660420511001795804020546904181499307734480996201469945691191528191301758966887930272442140649295113988509730011651337394538020317111977312895667698675733516699874846665473017578636927449308340209112958779995904110312748544468275958761844099117229116235038591292990187027051045987174684578175391482504749844637186971990649339578461474761698730889461239924353495661131896089484980855631062010490447158349101175902174936720388080368272630475765803825380345163068924526714550064198733785513959778086875019155104131230674449290973174289897159876309932414902651814236781225410401508486391666849639637822752898605698287956021241501560728171537122615739700085240642175166452123118175450008070044836557483696107797535681166694335818728456575280409467876274913662487490793698184624997306972533713999909352736558695949743511106436035637835699708257521499141773727477310417335747939930946516838417163836232051973983854779158996915750429505146408358641669507296453408798895548772872031199614382903028032217074412668355518532953929956188991838091887534239971342163656226492300878035666520542911567303276162967269312626851805413661010303245583563275068407317203324412375618203566785634983447638361924485643829411961219634837162834155815155650221568450349151085106566889575864518196833330639307175256141998320825492719609633796941025426317432381982910080920904803152479022248354738337088430232803707297985458421640667930473386935038451180271926937930677804201517089392214311880474300946707387792541605014532726863050813880511653294198613356322844709555465554551304693868033624042214491833674280669496016808751084414732931341404972361609768664727492658633541811328039965768685645075861683472547663125462988115734130868997721598363261542490824614472216911984974230643309667392005939233291426204656898528393802012851683609082676133499083294390103246310946682026425877020357863225050763716158853522854590591164070863886125689746880414811094242066418182143316640996246935228372344457521824532579099214165231169419941022632572145386739798655044222062659452191717339751723849148070976526154041587761772549311778255497839230759997957804917016006137381549045730299349992355126868165765550472209813927967597487542856109470641085323298207245749070400894801620058118017481653025296863096076685664922696764787745912967992080030875698243301167319975264420411739785598204247579866609578025672257255646477723286502436351122429807570030927519362520927049299466032476193898819218890935951063788586449046427462039408333200962053971874364664337965561834814806171008073062505525651491417878961862844857861002737446527952698808512364964925647722695375620544120988622838650383740557536166940806562677446899349450147052767905432070425983151400076227861645790009797462901239147251300439507210987604405463831822062881318352181018481206748927541587816052246681861668936917165737981815654573860638713618341961069521860747480618412810637985418994652663864213818342580218979039434616949650907361048129423011954626849928655747781874922082323220133586574031861633563803517634072531699062812829282173946504051717339857413663743302891315874384345528681141433610067961770976783475877374425911095300983122076716650877289352217855824821414169802628185142247074591766929486712574648305200764614510637731233833576544573086777542587752856260865001567431187923195760794630906202404770416535082189989197242501661321033649452672710797556006662709218398604092195595929558912291890853412900932153031655016911358580090299126340120588997526612292184845155899483123776641968882777645699431474475962359869744194685031263981937701690474133357998414684097443823825771258108861413536545025430321945961535790198975838770766826886427800033584690794193526279979284649720271726376576296689455890793140329866841252082978497423851199999107836231629310085187990638582880674397151401859857041131643841085829876298399631304934489169517277872983478624144466821034556882408418724298071435912839362556377638786495413082074218697465503335835854434354671717279306835700330808921275478089769447881779517661752179991726379300521275848838372353832104619463467668337465240178491261726529099583293407227837814528867216186302289696215103368412770031241674716995681011152284402120906602412187074192767054494908470189785726791194431670046143259116624415837317377477448780051673496020569411613930682884706615920591162581391299448049112964744818319883446604540723065780716509896195985411316197422349869925411357350795799597409375117912488678731336752225014799434100011634936655298368565343289972341202029840936895661977770830524798073561939990101922657914971689087267442810424454451301414408457839578736919738075315007340111073550444475522267205176314959507840571671595735814655492495378738026100659037648502948774026323344946609347176912301001350070379156448424361057739880426281869586585968637778674199993222823251172732821242851626858528822674655777348970264612063497865866417011096414969115436504842356052915169747820192053848810287550644953293909563833894863417956184741725881105126765055887010844085278401401243821393585339021226192821924942582283597713632105695434533234589954012531395492869970980535028422384239446039916313159322366254313658367541424207843512764708330813519433348996933475653411459751370477402960023775432294478750063040898862196021579106016634081298505956201264231196363731518326000850174139950653753923695725527907716216500672120146262522796047506300463498899507170594184176913436177736761058544915444618196775970741798721844873443191630640333008734170201209941092384104292758803715225828173162899201250110951563323866072207276885457639419851806132518536479180677241792294617250815500911352425596139713788498545009491549899796634547664806856307489066676527227832917631807385814904835502218130246103517781192292728083177184284472163718414966143085149241496678048008725382420404436020533382676372029365805171842010663903535740725179679509903677205864163898082432168229650236982792259572903134015456885782028282970254453619505570678097390291710745312548325251349579067952462280659839532285872307927032855443129914039648106114914939056270537693046203659015347927292975378444188124753663238244386862138136133260618537393905276067066065392511769481507249449672062863934500204277338392678062891260799552457945811763690227025343075107170102121696688049376373912626728740834316677166191379125383829342742756122136556179063567430967302037884795468463950104555093227896259376668922755507077508272469571273539432978216175155397918399492912482665774716818799852391875547213672207721652511255234811206779933483940835154452946378435691467317451086990779458212091571515899561049479514430580859513635171403209999814447046801518722440520187398652265452146743403686990016396541290786763084682978443128003568685465332782440227601775554355866843372005344084495904399629369403537309395698771438055743544017549881784638295305250026447115270611655341618490563504765689896356786146487646318586920313401926502533835111789154023647030043064959608596033142620982537479885373497018117259539203499846971534903157380715875641564343815676706533412403943305378477977696429143954866053379864517113268797393689472881324344417656105949324699202318180523391436879575977119383832366874732993880379560081274321518771169260134767552192374631874671305701264448842453468515177425796824645660765059157525512122200086649100770954838463016969930986005746692799576953800088661957532685523460278531048224670927197955572528446889864475194611659725379880711696146096335756765904505826571630776225905479341460572061123893653323938003315536370827527187074687360770171761135827023463361222549020138009012662106322639328448733161735588476933241834497595924629259440011374537882374071639385260570885929348166957524937584854872747609095003924116153557937593475484504257104331441219442429554505927925697935233213738775815421009105431629799135665304801338517085838011445281892806663972765544158215987682781821623600795217664954509681410659044768489081876192563454410633965080987061562071949400258503724757597386696294179898284402025928659602835179888939956831651203556755381927261022808613368667640996736669667271771144249644588646796852283117658800882193062743744036667007512487592174956312028625544005586231352631067901957291709131473315429201462442394786503756185477417924450439558977581788794493269326798167035379913870780582222278663896597941596227579042926903750424584372768568742910056052744740118677050661445006610041666118504091848715713365636348495744196758824190996888452991832424931285664768597576419144518892725912372526112765535281177436890231217426214065882749479169092293580764372221114217220814770208898905415099629752377520800773424967337526973376458786695657004475276864236645372817038859961259467128380990955936887879107110368309240461803887979542180860577668813223650559325754307569473778907013423846474341890245760408560971351440649624132384773176318538467747980019636467513129230000456241265846152178031616218339397606104593866221575820231169155558674501839968120190607586965911553574482516884410317378638798726852621892590469533699654791524695118926073563476425042774248526908241013234302650851529226931623661270811472179246681103822830221825770060504142210479808258527170845643694866668361443568307042150331922046208601457474472134541460441437332697188492615162174238657312595199446094599431627109941219185300825092157842366109196554996883592546169050474165510082472823109577284887866414737335155732531621829572412487486684690573987632715290013287238894355548643595661349089886799590720344705352737608417097022941417223672634145821760006380655525520452744327730213932014460929044155565581754907769290660351674344534781283986020815887014970887912950972938760978108240245293377807750319399011474185845117307845242408899766443922851620737466137651630111020677094392841447726758084459313789756315765273193904075122824983622990505238501295883063515050980396198478318386672388821732508973054456170512918775531125192382262250485194259441948143759656879486256546711958443850173655800001704550400126516879305095547254640452374481799713845176134108525057314097634250963539126667661889626808411363799946035411056684290344871274629565416719627947419396559605594078659458552894858860441704591886431724172578683413039986875103667580438472549663856641185292588559819724585197144481787167361303751830213910967385673656229132128767918662206546442869551659654144832242991263599739390382004461348681655984431268480301145811896498942080609281562573076283878601704908393514321281336801770650207504195338767589792477292909521021064617914811437543256412088814258234302313869586736575662901876126507216723984657713424150110262213583262991421920822187052275086959787457143044298610129721458884985278945620335501283132239734745796020454233599871472460590391325298646251143543433117467436972552741558485198960276743666020190533118551311235710673897289302063052443162594631874386714850767893632747274405659911863494319756086110859539564056025515161629327810770807159675049338979251034306400673031332283441516100585919260121760054913480306121667439334629698037590422167162141664203842811345883999312559501912597860856751013088745202681897873072644181500336248732801168898892757179254597388576979518309266423075679502337216211427262103552376222152167717840457540211516905679627196905097770863814678083095622069222298406982122123826644266077786240896548057437971078229843818981544309367348980985925216878171427785835083206785540385351079358345733502976296600261513484769832491300521916348358629368460027650967974877409881843011115929143012615826230276219401962518880730954739122505984467704802690339503216485393391719948623589372081125869491208192444623571978715294347614688752292409469817096544893132321460292957136196807020677532932751895011201852164634844150970892393675453421793327424883879795963732055387331028614386017694296528753306280116194120034467844511213658090051177480751112621498375165159687934012371950599020049247717741518404069420165401227669704460937311625767714415147014977842964567055380688287064092758971575365701838677597247065208773802989895531965642335692800624488038607469907908539113120976199616377379813413647409250222713202258783991917332578154695610164539367976245267865715808359775836351209777326929854284002672557448070512223014356860488377365663346256531079964597919157828384979213845311510341925543110616315038530298534003588507968910621794921237324009140007291016187261463596303221047631101975225032656853362435322742826851702461337916468732168510661854046477441965718663400732529313396521327783256858110755168759819883099261023462595687635608705778930070131811942286885312571543004327428063199356491626997167485292486594631642085526787547130967160782643051165708420250656835468891731206765427959934511997398236570964140722902098818723349288264975952087598236533880654107732314833379137915691812593566096104631992865669223910011647199163430957786144936652584580536716491569901918344554554801831967613853837822137508943900721011334183576692783168695835350320485892816762425887163698588965241406775718571174154084679237567158049700975086240987640823144105222596267485077692960764842964792696698685839598013867330914455215730483213733942026034050282859604749932917873587459521649765943780663123829318816800086490533339298983689713474545594648913255313097195829707463594893374410360233882949210732797032640244812196329663639505731717736513483834012268938215778186601727986985839490624744259986681557742092324348397806402813489871389831988429841158883471077400988816664800190823578724579237410815520009192279805212244146741504831197950532240270667279735147288127852854973314281169830775853050715630313329722670064176319845349424728284256033317132471675264941499353251654288481022199765581280145008357109894693290317142504571859056328176501146049439814826985350769420465414055874320902701204841197786652500964069744249201815530574178283192343887353906610436884943082520939198155253224471330746832978827518241950515946541055537377748336098514178820550978084050697044100975526135212502784974631529798199530983824109982729856718008485436239183015865782605454014440717607888438890364021064233800396153728901156271391763904478737356255421039925700651641926322182025055104452318730788954727699512435545584551484714869278438965768334040650432768885983517101270542884954841476764294963825737078836791142900642379470944465617590705141609352519960834709131776544580759709094036075476130515896817750528136897581113451285365742091712228777277508456190292684799628297729840485944708257873591848640306344382921871177378386879292272514685303234887392339726744629748740340805959633053045112597692927566059634103256666176437880071992604145638004694256358930574282338861439251451518219755648633410447927287873747075617598579787041646067031628925283244747990740865015167162515928678672837780793393260283754321270639236594154406191480785236616132561374354589448828126629177459714538161999614516199346395451703679381719130051216132402230002242510424309905487636487269857799537807882976587083711904443972166505321015980981417016036093003921816866795404454479331073308571278140929486028799232369871587958541991027304057308339462250273993797555486490362547259877953991432321175598190914170339427350834648594790391940600517540521452803263869565485106859399920558838160024697128305449051285840999289491432732541402487134718557816975212042347002608798789677222001283740228417598841698581038320286254255612102626792169926970817110366477820574046292814165558106212461351563244225592688457003228973565647676499375963115429826860878506988648901614524820999479581533588523606237088339529264923091450604449889983500241359777110048010019204952212024136258264507077489283425429766248981246071562019261785029039439159544747384688709605297574658168554890686000862736841750201040927612795104481754483220040977031202589391001294679863487852893570126486511342935137509783719964708385235040143828156130203100779277092560573275506707462646650702469967374632866088051582848385034174104542293152720042803325694325626502982189744856494565908751103046212977069908293650932664019107891106538978191524637658840468196493008670171982168760288620248997573470124951733902794847730431005756600209812332145058716179308679402826392663532236414150435748106496692695365225959237994125976498976011264518469950349902807473885175713360595006174138345675544360648122087022020585440154125177354534836834000134296865100314439285685623654418304224292492144546417219280675245712129108499737772627893700005542762843589679494121723617044569807182545321249284454472848362319139468066636725980581304205585940889443447057068510631711996246002608607397625918958508334875410080181309301924888554345249602477087479608333330106110600017954727493476138661500874664498064763698560071595862164416903623044736844999976729470435894324148398261472335085698987155412585024262554324986066135851732656058159855028381529119494791645631239206879743962867746828078759033280035354539008677426046570079557331217394288440712072540422681232419121283354834242414786008756766721317753934006062396325933315091429386457271729850808071642640542351882636308366782425274330518724513570632164780451755404488704121706502290326972953408600843304543448500787753428565824256437545795399923052597333174881330240551235277232179689791409402721461491914138663696866542419719779443793067660419348593503278722332715679046814031291463211735722436038535106047773080813021556234992340423201312327035758534390754321207908528760925411508484211629224736389108217399927312566586914557852651812261520711820925037550353339026538171806186368192716437300160493202540230363623567351248137739879922904065050901564439280195954887724991982325142229751927863656673172186134612814248948027963137011065934934198244110573898568124971450369500537205531480333480844203795438493410543127078365500971838512313736473756111567091140156302457918660854680000565896648292893522975493736659917372251663385320593089333991071772769132956105483247794021732765185513506914284916737939067382730281610296388844701537857686422781252844624380600321130944749879928614452646317920692835517627230895296483842584378624202472547463844911362957927830790469713386215901316280804831903041492473866221990310863485249626123723525041465318955230603226299169257657308774076502367349108257959957154404122864891526283746659882309605081640714448487292514910218727588475199854434782249182544639642041600258835187448110458514801380824725769366690040035392167831807202659956796751675873901534237493849568180510988466065448459753411434215659372183611345312418000155498405638837457820827940284286062625596700661451356233548539425059986117971391822012889341639798379943203065507216332437924380518139997176700701517991829494134047106178681686620138307536579685856948256539104994122800024397581987211004762064581564326034373085833073457111924457429112362275648118771769127201037460026737885955075444028582131578410658051491274218518507523003960479819497920810402960484881192894967686163094868321499793086270846159998994513087960928075023226630429914289424793690217738196923243734947017108168991381382590516729277471211293628304229998637499059595222434121777192774660756813225247418856036680416218539781626426174256197591210365321090782571126651411777126360466072582434327935821232906801459839208490876239626774006612984504494782402945128976363556727020368384121758109203404007979817528943303646841093599692554183776872073694964400985964512950701410551701356071429147979790889479384653377052807153138376337753811465342576092341915241001928744841288334429517467498550529774132977597227972274194074738845943044757856249993348573143569910164574103177174764348072484937627423718975956349754620368937599927529973345502965258217680525228460625922868106877833892397027462807184478699134054481314314297450620399408921975337875634342784066344803608733432582644944706838412184873444878731258964152415311985054958355889410144467569671790678836005010499822099679054980501964387324450902174258564680662663655731275993812718292686896980294758021825492281310244606488023326287962530849683855213695045053898008156592338621410926018079329360101933751531936947828086741665523802387337971910750054996926797140306934701981497263318786553884300298568423992336629036948937643447987287121691327404802932463061687591076915043240748894017042306225373400575998425741770743880538487975463414494767850133814314687308508748393733043944291071885856224738074801478413870483158917845098355672396177239545493849661974679407271592122546843594105879454123748391909788303593890128676712050606438150287215017470720085248578154797784060653499774416956012599293697926909160934002629688999066954681106355450959239455915188626790865993849561879907157821407058617131971416764286130564401368106120315891964313325996060615831461039265471823530710406025247434388431769068400733216731229598332199347159482534947562113389997121954050987330990695013977921292378075749295467933921940360199702007574766430001989170854726032483648639956076128764135816135078652699227244644085278971429400649495833090243206504553627318714721057002453557037543227902301229833236411094583789788139439471581921008188153744259804612342681345362263634733830635494632143434842874791113889076634388330605116907665373649206519687764289900537365132412785106155510640567020309565426792053563589846728710639530413902751966255285648941946108901110913882626314282861370775222203911423586099976586603605779448476879285196688101593738880691286674843933420468714877117295398517411685925191431037826402466523755219499189764410431858670498360420977709183297887501374354902396932002015881887138802376374510958962483980122749118962303585602895156267092103691995892708925336999292041143023929670356597212324984814291421757062836987202011653473366053433031887609863247742364287854583214615903052562317300608455357523173037975103410370153252111278682556547610418152715241733711707388059880364078510735296129858021226465223306211761218977854807274606503308771081006036824627960166568692388914202507207006051727226917864618996487938061372924713510394079173806612016049239667368033111828935585508898394609976821046166810549453803533692305123591867514319710113365381834279774098775330632032264337326956701125854395001935915154251651999530517607392537313330612948741867580641367853440350040494364557251420568480789474064696549364004947025244191008026929797458737438538960085030977410447581106010015621140030000226987943814261525726395936148281096130659408793451096496900418222820262882706809584500302287036035383763201975456582070609643759102437872683027405749710068143905396495982401614736199439706275962842566605095386346508659912269150622340529369016936579793567961286309479987724259770220758804035482292499819076950282555982996407506084205259126120376778234907323410302120311985105969746898306904146440236159121131689861712007730809559495625901081192105876152504358488799683157999279654605744916517551237301591738719679374119151555381397463352283493627266490367281730889812684396536822438164840457311154889564734814520986865832953960799064903481313190153472985348705847787281794578397207938527494401630973868829986658093053846846673880084444498897223251952528735470676143701174406319679015465444626860364218340444757144158111399527432938857912305248709612615344099996763579568058823157504189267587401084948800197820031881174882546884997177155674872286884567066551219756667933760601307842116918601154225517407961219078712870554479086856630775576152911319942194789839155622045558425154733166789515223003170085175683794664021487466592359805343878504969020667731319090546507570391424466886064438957716488602306637081633848527206515814456587133064114034305746378629834181477071042531341862065205150241480140421003785332971120252595420609535805795828337474588722960989738034528844519090636894648757679617712612909799992178844613365942345241591901674794058546272397318764263299820551066029644207673707381576174156262606237799738619810694578688767845248452955413024695867480218110124685888818627736374690712269047893314350091922009095909593986969177255696689433666230235257937070857273808441140453816071712386005391617325290295725732645592653584316997457137977392757250229484668848428719766863338519273877640368474951993759586167525489266822638511257331657208132946964583823128114348818246354523495524699964032892988416760037223986677086140508682152923478473408100760716088874043666202742477924274530084539705977062506054804428933593694314273706682389605061636173808918555233434807048169341203855783355446928077948925946447033008174548887787428571208637278046295991422437254316758232720590929375268896893452104173411303621974907626083103946204504710403269469585368596054331497241613891792361043719780959489369533751287727258994596119324018212465955128294427425221025443194830951855695173173585398789534349048431826718730893728400111831940594234085485549181272050970958203411529755632647826737291487523110146094574582259036751264171104304157740134428959001620903176533441620597491210615642697025969607221061492741580806940862940757943219710265316421091346834220489442993548692014988355763816653860429843653734689168501276475351441969030318024564526437145230200692246973592191667143685036887710593416099932308766158593233608818575206126041231612497056625022324384821514135049932157252198411782573205386793394542370437951031910689702877149121574967226185262974189098101262942796228910427829225390444979590910958554164746711597260976415875830435460779863474243925216436026909590960406558531555214171957959324338977363941806597857528832911518314282397784721031858051630205516682858129185686460679521001045274712271458057360849214468918666096280354807283895196415344818169669146771446379355301812664542909220569538779255365224055845553600588841633563329378404241162623277665319769686661572248969592473369420531840013301346213263913962430968614296127378584338080338011747413133130091739990092436775374172996885414707704504018022752956445349848905043395970661040556986419644368258206848278096798355832770232729447505315295998608554073143091777313257979159237233895962184942718232477641146365274711645199861174043412763144339446188045605352408290105133916017401413597342216442905401971355297948532545968155301877241025747498088380432206820204698724173808437360138676677904118180098826932219221061846712462525152869381312897540511937927450747189583014283238893015476489789425463550437289679883376981613224316652238437831932574208760730422355349979831613681640261601383952284376088293151246546283228962767371404614401890380741094278576383630758521720514368043558139899557940168870429765860264513455976650563301037541720747303507342554173603307652083987121018557719465528172686921402653009255408979771719447813140692196480396976187505963836519190990547544318705939899797518657360638457825288860880125199190301121468350275008089790382072626231507259016650999784250508760401126078621707035151166087608805480209423216540217747171548883877216355957228451297435008435335349307750406637613136060316408914991109752199505084203550221456470537270878475628412130163055873168536662237623114384137195396222926532560275990936786959410131515680726007152691479935794971845028184230707821507663240780972975224986821973471933386325273364378146004740652308608250985203624249082390008527085829415157024332376921460899268349100777484166259367073726264291236395694471871472311134218254412917090168015849304436536597580137857645563920473020723640118272206535173750057285077346474699433726501212088021160966818457341442203291529288616334813049037917097353654100470620476813420893419543876725972671440949196005377623522424594722127627337202638612004267948246503543412772507720916727271786194570386623434445427550719697795719329331873665387024051069896194941514420365640198630572013482380194613622311712704559051551384679482481129112584671210436423180905919374369161070211076267706308000744614608433520386452423626905887602657940217113219953403246153728492372707330343598984081445451046200677117049294788469941899315106417325346684510865984973447660705102502552758463246172459343666252359397708230606846526979028115111426484168199785901775892454986690276412236607265652373347299401415606467775313810881946680486296231028075786016697889481519641112030543173678169451498436268295367565552557423183774460695947717174841955920210967381079480282858293652043873899549497504227730758668650400846942407874589936492145872973362857365329682942736639653270347897637588807563426734597482462495469491425910303660789460510789932002369451145902122391306535580483155105597040131102277108555945803559717120124970381410431224799757770168362151607827501673361574518276491205068983000130995738394874509400932125330282191716794392749341322518223541430664443287537438395609143548618178908782508545583283381114468587411776747219589471437208492047073325666569637295009714200667773321436131010438523414669182996203316637011753370590081083621549855724078675573378920234777572131873889727893150658191842296399377707585361421612997629641146030965429970906336680931170019935824062209676264945978882343559928413199705317633490234793700897362019805997578742138409230448192431492874394319001337169578756972608238315637432159285470681286855190815511840327133277795085239230931697291779612920363999477360539574527717654565518334814520669675373373775845968810509606733927883410505878135658084116732629163488943142895162071877231457249493787930925378216865769093952982895464140796842854837879700259683432371575730638758134762529270389231450382421552091772715297500145153941871091726336349518043661000987039755765810799150614464956542958044522759731032558087694297109189870678765414097203982445975033836664376399953405155311054252965942492527386615240581110761927119317702807681645670544493102393054344166314745952886911777755751023922802657696714620596717922961823939143059186772486031451189389686883824264092692836513349145828898812583239312344441648675288387005466026494576600662439070970985309123735993420007360752975983536102712094947233878224309860503678633853765031318281973243918060072371034828746741637324366302277028035683267888720868268233561630890214411537468322490356106173596091267798371038168342471352279448228236959561215495984063716808710951266199985863061152700000131531912773715465715096013725118617075440217691349616201600488134978192020877881824999232954648456270465917707936107247804215901151537408578525091107709301213945910490999975940564415981935269962330690426002400619764026718387860548857299340023376432994073983422932591689590083643188789588180191942837798249824146181773155323945350374946884053657791938703337165309260914179844827515432691197204512383918896328079720367574914775106859877914787012295657391193306113606634961295449419559089405486060455712979595085326455553066497498780752078822308390922561784429295806891688929248698628505417250782811283636420451470768158130756066073996811631094650917694892872500842166632520296113435079628185732701850192843869750974261621580669872961362236943345276754532092525540072667477981299992850081651469396237657081075442171503994335584412993449326678301471682109558354738178948358057887585533719874827857783100557654596252280413539948089565996505128972428362462549561822921963258491925970562451034985554095364853653544948625182687357468689542755048344483475362051163721151378289367264539862230479490230032164422546179589550054152702555043607211261506584517725265542350508866022542259000086655495244079256834739142665669841266189072024024331425419841024051565970997908785596691745237041193417575708711059381941748330817402297540663176718933965255357812213588348898346313458966861741744491000080552832388914726593913292225253525175356956833717901353479058717939165029373773664185847189076606168104987432442705190291850910232871514495446612867405024507250030631640460958721092478388275058688843837278112398338441231562396165308247510298247773945847830648270680030026473736714700736620612655028363250471385791532187135084788591207103808930926776716849759883632692993373600879255968913013416353875614181906083824468692607716768415198018446738230858436279184544302685166907647047810425800042099742906649120041527277004806220739608765883883776875282498787088157482235492356637779351485240258130759031805905027667664071930004692505528460441990631357681804692558987142895303565409582813300008621295383214726732518493043557604936267795682348639752431139726774683082978823341786070431245322010617230672594513699722346244042846134066352950658962344351552487311306725734852952156902570086309084330729483761098051399466981141080307087457235828003152488921517906698237542452723569143163260467425515129204397510596327786665666770341853399722337037456981231948173998107201722001863970221403516177840044764189274210429544644654939955530929710785866581231774106064619063296937685662962300773446052454469857744432244281064427865251450047067019882270829917329241024364628610364750793619324839500300839561177923464011104943176212220439172402166338548080710751937509477963832242839684151343180436834325559190056215742806075282324583963630103054704570717476488791859871496493927066368728088445587855509635345521296191109986837186155661680834180724716967879497239294872203353589125065293914281372132156144357882937007399470898118970468072342675184680949139934126633432559455219181959597555253183713296819120727571142932361545123788843746682938924470587725504384996553245176934225479918505312191811945083585999384697496378672865827083500327914962184078656593707165731166159001163405852875582251913207349472759747577494856562240373731101698842468208506724174400590634751288916638343485826150539723753159533994298216684047934285517561625050641424287779179462736463590496779072984976287733996508645479617546225295299827867664293448961803632237470726836405769939153967506217724448920159550977983762572584237906188540345465191519378412097411235745095041834371283520097937152059677653781874466768987825002723841951836276372340970204854768906840687409142804993073416767404523130271441805102525326428182588375628402741179730006399578257820560800287820256408755179224884062310857684885277505516496905816104972709297346506466512004771402906106387159186001863498420168660480608622824544105968173772009880237361293464045035866991543452300218486503682631348208057501647673152022031938067836034555991494729828223289345034537418808405080283531784322553977011298228939360493661549407594004930839446203324622846005447691133034872424155571397555744489529173709374655427819973917382086187962583771994228845223430399195362022433456739822087923303738502553925418710412240121134890520996056036882403266474887747478897890354320461122430119402812691550725779087381508084584635874077878684253350820364246972059846183433814088452780090756653250953225957561476317167476388642958132078561619796834293667707497767323927452854482467650139643451142550740110577914158549383477128365221900119311170541378248725845047557116264006296389581657182938302579188137733217381969793725030195876581298545591380771528110999007756611438208874780347365553721564816065129003998889546725552115252102301724948404753774999579263574431505973521453227326127388045279550797600682554567822262838032820206395486463255335772024988937733572825020628680926449244493010410132638636017484384316164563647964354214019590313081731362123951356988548878661402418427292008872075563574448923071353443262050933099998161104429545079457942477461406772837073300964724042199353812844776103698076215039035763502550433361853476393333165486826916736178994992290801211563224914179092116193027515964596188112306615366683875302520490255891654218838662082906919848216660726718110832630414288977310429204779918836243645979963728797495373800463421764038067276809679371751266178101770049274103574442565309093043628068286566441004421336857951274298936068938689366408216772535292847798427667467956876424660177946945032795670244536083774310159386736878587045351917586379377598972629840950040785754281838312799391233075355652188933758174697234068549514668190881180228974824082295098755997201761312428222877366605312636057671329026145866821584266485959685910121440062128631269331471808441961157613403018072907921581991485516969889702235778808391240783758695357069127691679741551908814021068144942641403564155376986292262534741465389482417371603352232070039715840617410099465442527272091297822036615996137522378084762023638425348534428512928953258663869168362138552291964678230822110112312014495308069558490354052047714728128328570792371095606689058570156251258005496855569890845993473249351866717051870500846450604601080057153135129015329074000259690537222278878955981699493912903679088030569501040511278314800235662218920636126071659790303133735756553406375455289907647992021909093538785724646476200351828006743876797279692961923844558743057889286182548250030458591524371393609864806642172465580824931713073619181817718186660222377049439696220456270177060050369132119639695286319775421513475944384886256660946357592902355541800611101912949836891509138403008796470623747861149811370565998901348515254214896315101017383124735910191217132585585505263455897224043769375743719975083418092993521555536049569991498106414976091842353227861710159333751745643879650701410724061892989532421033681763069423353088477769511619266508439950822766184419656604138138872892555773678749449402673023740077835524816507061094595748005620706740698659557720440648230630426765135707705384499129198859132602061014685693920478740934421425467136159724031558777284659577989829748108259851572124490788953458819878207225482188847561415870024781341565991979723887887887101385618250110167895214987902319950332153254332172730445852438272183763776483824618908835944624809141770807879161298220637007842684406550171154950910605708087153164001990501828201290223436924085520366537843231087157467950393506851897411998283012569864046048560429380489879370185052591246354088003873746263264694469815848558404719569211511457495366194742023570334761457610159493752353445637824917948167506048128302720179088392725975784752681562450333529154028212093873963511852499552312699309944361467116614107136882769679082407317742650111616915660376032559172816626794802309193022202065620183981679206685964727389982610811082748983140210473684808442719558491187513720889316531205224731860662495302426557235768205422241672863349130135140580369640454913325101386535803374248815727972032170187485399900618522729397928960443182777258803881956110186354929043953253662237490659391063195297474319361457976748225997748307497387926559684004018551680609380694034631887206323556894492507902050753513604106797642756396470131800002644146384023592405355983174103535826420363838382510228370150738848672085168219269529669267332688511900352103392308162821213625495838933389544274587375175243912106231959451280612792804898631041942225672748159800144765709083750578342763952877971782830545961957406561324556420228215959318777443500721891187795736190803290536089720142283841714343207850240051718249107651571703569663503384099172255650272302775990065362028719513696048168493979606434318381162069288401088319068051973690582038471894054272993586351509268720400226467137874872089436267196291708770607359954058431696871723342572190396920990613631776538752886140850126999500196024463966555243989312718683656051638005952146503276287774092416654904279346487309111627033841538087779958484817728562986737109364656778181502772561476134870874270458310280715974198612296779072487367141732272006402521539856046438774571916900647173750979827543323332099957168474878601645008686019782704978316257534693043053252386520194558887979676092932346702381351587332234156944686545978636717532322311781203141459341251668216473740707862528807609210915332695957104722960667578339184067670253207239010390420220236033247587796706271337205021611951720651205935909076536117394663264834005698837912590756418995175163480170779215058477136851949493445406995011157568788529725834160803082167687751968986421427920205953699339919913527502204018665044905706979010761470757131723432379685489957148042231888618175024597205596631248998018480133838041090781497398755789607379334186866721782184206055139177664828416587129504659107952448459227562067110343661067532095530152280931003685714924661893165116281715215300071658115678358625152660912878999340940281162751182594104240555550153679420454261185238793169261172197749286457041088113184684786832509562982209737378522780826839917617030273756484609836285255194848370418026447830352812659940295210186178146505332001781946091546197697467286018887063512359039385084615564642287702497079713242077050557166406942249814716168394696884389234404701600220944265451493960646394880624541303453292843233768080255814983276576516423229579940540486015926130693811316138920089423050167931854788059936775729097765121594827862523857154900836938717394197983196765925037620765379704335616172530944032650696750064218052933446909692947270600703214286183024869872822412194679689328736484566537402215532615252582354571385645746377177171661535506985163330362310635298035808948727731599436032153665963445803004887292004297154744543748278166873684957675688204497426044446325222968910215446009913506212251285061259006960987299582559865290854304926977733873890516524258502135461852655020314027805976504507526883312240697602224966698462436646178264406842335806534384001213457857106287367697164663509377841703412972424180882399472746409222629042585416295785758511549984347594539219036662806506553408329802431602436485225133146875457975126259474931264623834430121382492099640745138837826460841115974125305642778271996357169836284281758663869739959095413900765206421228443622282431370329716684986727331592927510300283656739236622714800458039969124532197254299255062006954393875666097266568250031742627571054118995634794302906504362212977096839009814124129518196130746599416634586855305065317606395042956512079141393959458301749994655352604733639607907436746901669984749625655738402092705050376379468436832738380879716848208673753530420847249400826840084814486493981304337447049574145987672613867108346683446088938694568710080285427252560270428084833620655257815041507183054823743613135309131947271118918862518898647543293014340289848909316006490403750680232915669350832995824756433810195989213236833246528288211859054816562001742248686082324599920714283849074862181550832411099855953652047654132217642988011800845157571687524099800658560787621212089419909860274910203667172630198554432741922632953681179406883315587534053827049831731174141941957092157622153152830431480509427469289754464780326890921063264447499953727351024281879849900179336007271490557027482139138758368942477645070582723557162146790075298044953040669530845097600841145677107783698480547540889130119853601571360814453413086411365755564947986057218949704248412660487357998946404461256457712990848851965269607795098868463951678199941951697647604498134739938907905625050276029193194647649781699626215659677248909212016490971297573856304388719607036092530343653272696185042670531536539728348608098702569022333324440813303712376759198705426203722305676911082496023648536322452574225291314393382579750628279585648877342025749775135107611274972497238227074129771794759115851236935655110009347975434345166152008929244273716537866140415319128461404820135660598286826694752387241024527962774092009493848085294643828134476257337349198300305275279902519579839036714618244440360203738576633187890638204396030455777774668956906043541937886636024609603249956796555908520558622787483139503243313801512173430761770622133816504415956641730152666904287767717502243278805076652803354639791358176869657798062511310858946705587390609614800941223131849224627211147689598565646028761070265700644943220711161430443554303707472871468092910164622944285855895669434493976824569462674046917620864218132262887245880645068414283852071050850011830843542586356007911088322044863366990429627660604293721539700368330344762492725894853646925700843048415523698828153723559497612083811713060141382686914825707475047197382337685299018889032987701260982357537265282529598047436898225778461343293047766815221726541381408969309531953847992137185843150626989906332612024364281474770138838668938463371496090202246196764775894633710125067131310633383114016054405427889127898173644784046004590944637609269016559181824754388640234553587592348163846121332088590021845896045853696842877087971304802934387112549142309785215685695817258989040886045887436326095703509891855964390112357131937737290907583114930952607933182918904147261272625248562026945606465290103294546636097023472433029480506581274764014516747725098857253252184542613366366982409173874076770086789660503848550098381043699076518880124357916740607949129300291315959675726714656765769494988163725523490469951496317679544348719331956377844730059554935483020652068534446002051063477726726193155216593815022579287431380021862191224234639557877572471708606280806399848583894833316856085298647524469007369410374368552317179401880391603036450147034472442205183091913889955424051405388866029622939910046870094614496778647595401277218994603906777462349064549601761515056883394022436949199080372702264596068482400983023509063543593929533966885542166461990613205280253345656357165726973322637216548708997077224902154130526878899986909582206064098472086338560949800617551349967047543570170319477409278552907799653098007024483484672063295106667614243191487092974275331511688855292717900485241758143220115654266138314960026432784738162323032506509982832650106070650790879682697609255254874398198670209570178767226870861441664055387515192091504708056869659483624250828099185515406146734925300559459325927335630236731797911035632204177928770051894377100770783737285876058214963705455034846758133400626334868834474828234712438121941963198320682104803607436575177553742485618520632639164740339952661879020815071251705136749954144177612538395299704683186982006293869509012434001097655669763467408927465016755055124918141542424133456369537706113395789547100295444496085384047056904771196856355891944087940757180434705603975987118585462749994711308189520330844721449317765137309438254621729246405405912101268803661401742297269174094362741360987292154577708990725646844744480490804915083949274806759840515337942200055162586917355216839746880425395986244390039508419880361895201143355280313726925618137566580030482863020442167113230848697875366256655155625287488104157700296888204921546493752746773668836948471405316042832505163436903590198838815567864770573068041886179232151682162257526415528337087984242023592476047891723511921619075676381651159978541836405642808251166266445181395802092320025521720969311588007306760461419395735930122819347170295649272890552802216476584531138909578012094095770819232343611472434406101993390523088484468508716431783478069711007789132918403543835337490968470925862804144425204647189730569436972422947790948256654599349777569278535719152523697440034716856451953300291914099936353543306916360545273607227011122996153183512289064063619270781957170699511444511883932219617086413486683839165167446901435426408794160608412897044397639646635885037109779846158667101440736466144834987023216901258733915728176540534299120739938406707305658646662423925940101406961582885924730286906653759978888444176161686820896497384614183197170173236765199217683529383217532163016852772198947179754869250993326753600854465961028536395097380508403969013202273885221441636594263573057330508909955094657771288777645571776331512243168435346803974412912824220465497280093510971354357588849362147806802053369203736350631442001406286522095748661232025573392112738124120212323873138140434177289920314855063766089523501343383972255601595040747638808583140546589236075191175747455006270525283998010381989468810135792785745858386334807336280890289214749153443261405031270436447285456044977496239131409397186236680862877547928541716253600326946869959643152968856584096801873002857224150654677158499543659309167918260423275763679649036040542165965662903506717596746411590176166786293511807010584267897473480995346795480003183522713053600181375781154096535305357226957824916886383683440467255420939521192340141845532921456840592463423439685759645651529195784471165071970187306169517818921758059159300596402017085507229596844717068191949332335408488140768294433986933074603203076904732184106358861477269387457831359183877579456277332398032649798458032026651946368277453387185690492405011443255817718331396299253609446092733842170461782464088315377234321970338575422899644562030470690086293636828826658675301739715825696246366373385010332962107030673916170181315495283561175154802474670448728247988921923578394326682057816354439976924839340457620829040368552489971903776567042026862701079482248251772245862715797129952817260640028929770455925906443191074409096318480021347210612143404287879716424207844209401199534815172212769279156802494882009963044080670582078193094311189897833589923525828013598494892025099301781177740911185641171964935418777528783416801547969555386611811759861794637242419195353272942890707128937560670458594058966356863443296908646001810775810659227479129973170335172439498674712964014656245192928136571678065929705448572837538654803609931866117419350775207697431329613818192093709969593130005848309229676457644595394270351545320554158445194272266772883438732708346829691529162168006409104797416779625489377677165410207560207416891807753628700345292209760461555831908180979095649711332430004051105158727713413349267455684682549968695183830377312373695714364978869991040446307881513203179863095912413222983323604835201286997239866509115257867820941957009856930513361264386561319080567444752685906892884639705847106809644188389817509931739421124649099650364863575552641805820337031517612726944998624932123256807637183537045043173629333295513476634458206447211571216287826645233982964365900708714704296073914007375720252230679418151729755710906572967383819559826380714658567107358096427440716390779962495568660695453933071700705022727373731483058794354205843259986026494542516648776564328543339038353727790837614859642540106940849103039420689960995198962989163252272684506531003037972672339495013573737649759017697521210103977972576124845656136816568969940131105017743693756434400107050162156022369781583428881195718731993096213614769053616779805016159468041701273683976069685698484038490457023946928876638826011341320878891952676552995428367061695729351627375687233722211542319398383981807903630045832959937198526712056175346854434602743536774292187965778162852551712050519123147095130364165966755217137682725240851923443283305220548137365326491473538946127669523022600470655684299711200584067601066957856514483453738786813879338539452274851921545160140086912011886699994212255825871882497708472909253158228246775306254669007620920977056835790839478896688762701241991951302096493717248259548296703900404959497951399015033179396839615968668718607899211775129400458869745653037714523623223660242264832010602212207548929391548550314121333081402679133297035732771697966530528617599759753661251366921926170650163995335861421610893347345624024544848616388665536050366136588033883191797992514326117896425656504833002995523469852766280617813784417353197137330711493671736142655508025374531026219321924746240708370973253216016951684056490752228959981655229563219254005353932745964135822760044456101351253835199506978512278163990928605813531020975381309182640193213562801482683313269843783775360501219306511206655609720607531685040111056650644688439412534707817017729866664510989367679047149815002287339450650513346906168886934329301095896935666504752429406648837388521054652365720163916592556085968742621368807171205762917493601461740332232612835876984216331694826428818790202217975257147107684876459286687135041598708557223870668314135228671172525836558430874719765458782783993314348348302487434813172709632875455787078430606929125190412189257800953036623317262163210014310909276029372567425384915810672560151365893060718751351984979707296049499706117064798716219105872407136554770996774771514880360802373365105213726675468382467404805652653721295484456159323704137314118047364422539141861277058747388881705347427012151577761719953538653329286965918614900220982964883438485423096275162560711192151129634364823359117323642044512790797585042672956817940480337005844500156747213644103819544852191996573425905838603724114413173108887953737260218866291805205299667156615343613756339095243326427199445364807908091348279821813009715466004397814899740774293421137938036509687003522951521401276811254506725941165973396858499479299290303889877958851529026816298607012992100573297441241312220208063625457491170157850960777035142490650858555723398799975143723240297954607757541172551258360161228457199564278262631393019073316203044649994883860538153498289855702156546898408014765310897363435681387223384337835155740941514134862980495583420831099135705757464447277731442371642597859936394066009944164845906278218145102993959728798920451263850860040147601447357115217014401898245062977336954461344408778784950510893373663597256090248057071484744924826608949500286037852572617807951729323774403533765989928565589481152812570202196058384792403117717958467413816092689086277637328268366728244112009973388911940929413137884420348272074816990654169614125295676945534987387781880532064205855676905224675076116433159138850925012255646233930900740279456227751591578120789101727044105394027585732455405854631813958427275599105050360973952715855770682134063159110128149368493588475361682452421368470436264965700712041918012467364229976599636011098543019995551376251303773742788933653259765301657360816838276871453322669978979373097442649254827145852007999526766334608098422674446287888752451619531317640194361356889388512684162666897054551718151494722922975440948224802409768188051042017655624173285659485892860219190758882865813988237889685978627372807778002613985415718409059601337944232029219566378832665364851740004863725546937894779524364952966329859681848480067987318257793386513371349035198664759579116692641402694884601107791014039950134988489677031651782784783790158625134479065411973128285275918855882664454610943164025863336793606870680779344201932220572337380711251015740139814010889560397937867440062603751223586629484723447903671404827712261166758780616569596907637662744032086975743448833505083969002607774747340890956105735092688551093484826580659340187286727268030750094633201322555436348473567325216508955515757896674802150866575129395316511745884290920695275773101683595298148089891397941994022646194326973233138480114182676996567480819024440530572886073535067341396658688018085361558935881656737728724727277966731750265715003423359730055036391367930477858155552191328089698569196937899265843302693337115109217837059460897498315477888605682410659688780071260735158508106931923978788262792580094537737821791206169879465653844919795178522484701824999716178075388842400175866501920336985332577038718757693750267919418985008392654840369067146651096609927163287082316406917822194613986692089557565400326195840571676691054226628998250751141690563853679609588605542655642348726958986511239766267180926385511850611326487423735586576210525194623442406309152011192599813653959329768604788490720478660869821039531349859878363174971137074328552010177048867346456931708701581073263822921113167902837681355239838853469714131091862695877778350982836110291210260364698069730318164617074859858863876700883216241497598259054443694769734797419421387256286453272464131333968017980563991044527932702485284811575181634822312928477399988598144414111081703599205671871985091024262609007873116286602838727950186100389488969528600392372101365469448348951012004476592424836462983228866566370968989688701629708158799736098943842552486537945613190925912122801805710549596881109089905367537725163350810001414208089126352193999854267706315347225380464349411096458641663671535284132217441152718842523354304583382881884980654079500986095842724708297423980145001146003164322910144761060779232946377932132295228586715271843830703420039745278881356686148694849613960139227066369065085607704070992759372215742879787525420575530680129889090951116687030184755031425892916222780417863794561846690998346971308416898720078670340800470186086425222849321001257440653511366807133995445075274960978608391277484540946967274638282639606377909887859377419641987246945588731433104826906031949019757668301582031705032758672235000762914013042118605006618778226583341995104278699483849832783240350140675989767416474194141303069179728099819422850641047236847216878926852687643188341033229351364242287086986458204329637217005535440773440555162999931863789922943210507420029503791546541484273719985676322513115923852520933074029148781607392562466237344056414958174061528486394976605613042404561796645428060603026457873617420072733801702732252700179464331321007849336131597289025020571453454937964325729460175340340452876778844488126551733224139566727667230487127731629784549483427573891730150038689281371375495610989600280182804762025097841031908285106488763288372718060088273788250037727153730412538156178265757381505087455446200072587416212578575597611875288538074779926554119358046668586987703384260113669601435526876121253230893392694136564266501057631674935153878099304924509302082572331545279338581365423592214391809777498143132558351252407423945222028330351668951584402527903800505928081435136217636035565343156382659638392913999091606282001515980928036345888464658581543367575869119361915244721811558469421396500199619602964330243460559858004271908632569915764508586014206581599742809253166595290456632994976985207184161000387736977799500336945672084613784831733874435708973491668218777229571218899959000810700882913544065067446476444022592155559132465755299640069924472988990731428483550288636263386973717359759242623871109529290842830316342204558752752286485576185275873944476369174871887400878891060202081545474808871430377400377944762273827374286085772451400032778268197643243904799626930988172243965443428785907151315526294512185251406284711525087533722451615094793087938844262355545877107469510077700940930508124362979622658246305476142371209937055234968688957631654758962292713684253343995972260193410769080199596210813580468561987222888164909346129022729800755064791391384097243828617930903400276309465223733463777082190094142222974221557830065417113109589416744934288039256144828388137689144442123739854529808381558226345888716011321972297886536049036148544718378475595246872802703890331002942258633696876674239466822264432263071091587971437019847651799682838164617675962305215191759303043135612309275995974580789653643701419009200624054269255952262307539607031968043588707759391191264531809144127513586739370314240350781707160752173932955863832270457629743808693203581143081294187097958415050164449951186098560376258952737231131810483911189272281783507789261282396133714292269491425356145124524157879955867952952169820897200090483470582842136672008316368221425549560303086354406682520997060742616881139616530609538884743682707111451266577252791628979189934390265340024901921413875923272506171477306095106186455044184534883155927613296337876332498500959947493380475403497080109770439300227557781277629283341040907007047787150296682121940655968505508318958813401974126245977552170260313714225661708211586722138652972230407230181651131496980033571589223805888454746252691156341520373852926901234413585530759909032358705453471264303333694570613407752707407884694164286862067498779641232093634703788777435714716368467213255198068454831143544802060868870298231310135776711113737502439337176075950731201803110016722847582831910193405536759965134025511107935134461529230495033133223029429239244832843059166752232541286125474258575074407372828077760409522616996033294583920235320303644221514272599438243731217278143300020395663063378461460891933957803665818506438162786793921354527795082472912753331982063600734429247355729373709953736459522330811119482965142368521204505418186034513093572735695349233003868169563857379652293470452502805587702144385719553807796279779519222558685813762246338600195942094927062731057517378121420303975980918815187920749905115777307998163916351465083800146348307671487928721129946760365864368094129025081851793389623608784979798871071957929519144007213222161591760337893272002118298647953836525763247872989643842287809633494792040498110293858056139593248501054619524200765906416345117902249520680419143649105521228314560914548576919421577100380866243632742917537904919988342454310229651472918897832317494808692111982523433037463437677411649130108308874345078861892837813694471577886810388488078258338526835012491921748777600187747152927087888475942429138723303794466025089480505905262792703142950814194820890033912599569759117767280722594760725421717398264840092283289669479303578798724932510006236668724714145654341586738463823259442601750190935255924950053012170541476288064615584182466284559000143595572317691902549330140469184516168086856228283182181855400143559234830426901929790379617461848355523563422224315926051104902752210592365815952446469584119084811676946353566959914428163381000501306200556224609988326206878526511019648181791719479022544341664102800924033219882466232684270714533749300147965480228690552764129812912484098395055405116663423976697707035128243766138093257854765076943972805086773200143644395495019944918527006125989572768266404977674889764888672410826896222131922602444616651143852755457208496686121364943856759134128755338326893742869746496740826381780195494649680984661146959147193039947103074649671510336308520833867783774446976709044374242955557849314115319364508756036591540867908916735118532211802492115667485534680182418371654743095815538050184415698872104264221021842031658069413720062079264234298173691108752534163010570023374886768050255209430417961081624805402906566724622188194229946025309631304642289104760689513500399009949182759832195078959011576395224113804076680862084975435583964622505114921284146641572362383450283986472378865362530428004954235682762389183997785864772481725549399567946585622126043642598159040306442905619463923428532704788068064301816799809681559760975349365906314627532740844147019302250704881816021095385164453974489355612354799689859548235716668458391209402559695300163661272878032793095898510718091504306080143243359399839466558160824665062858528053801324845675138000306013165767101990648538086831492617170538667647157062733829618362423481710746931459168880059894801650036445808707300722446699473564830619922090312403807210550355394221081362452990651113087047630445718726732502090814625612945183825787564950264993030979449735012505774885012454599974905750696638080110559113231459107045848851584148101814404682046378255394309429551421498834018348328705317121671206252047570301807588896244576668762413270309412455840173202082912556830212575613762368392914669678620597998188007451527710263591953968859692090083281650873189870940989733134434492016275268110506247708802100070186184317791173494347585100953689850392773892533297558202520423260021841698079636094205649138588048973970223173438197461027493042606837850001723896730849731126256398478259078344971562255321001444731128193244505630343793417176431440104749395654896597881531250659306918484006929186062250207997877000642799531326857490463837391392927376021767566645533681699541290190291307688998800323342137759911817170651330207837696113092704519388777375787997677391451154457506175753927769551578288640239101482448121959695282536242451674338114989933022642645450400551765075839672615975405055707511642776848488501462400964418300148077422414791267520292493224102949333023871581927740697311271056046378183099766603594796857482785446980332177550345752707117259006577943344848683605889849681429342973448023984218035623225670990263332793281780805532663841964807350773957701587793182658683151642723919556058064076741152751274585614204795564941304182591491881467009885905408778815911256275225745209367042166549961123607706867388204681941666382500085911737919339443176637045635155575624082151622525447547411332623535091353552305770973665148421220227136686770988114351757938848686982929431451985602523063099954648826895313750602945114285295578298527118330340467581153234127811273502680535054582858375501403233778011095120434109965888804222693676947772667037838873161823949935162056560715644024580993018936691363328734279569266799552477988637877454871999543053157655727228460008524186604142339941294750117333682204998126978350000920500156659701750530811453937626080232655568639441686007618726841217087757171187808603786546590290931440878402292516295642680261319409551770024316094964913710394143468704017743211778187768599551169327484886625524534425387726776316828672198874858173740470031394212569520282128056133135067376283448425088112217454749473524599649236525590538258920330226564875628361653692455418036225571755492758163693610271382913003841289095230139574719608811149453896039253917325764545696445746722305297770277578775839930524444627983644765481488030621100181560045037901677014728360413056729017740139332280114957848844463848683955840649904383286377511145171861958251409170685406622208356995398206304819064207374558235910254109393765561243160896224051324378880512450882290181446581529460063505328278732004027877508507158114705013103840461286287788679844532459022824931382822177578024387366371991190523023250756317268869871248181502017088447779663017937101409960239602948309521931682207416860170934572728512150037596750494105049480132651820848410639669509021297204445429422383009401047040371498843009041884541689912842423622390720633221199462481149638909272670965736982644340099254863959868647760192399939093064760022540538350788438861411135697692050776753831917204845913313635569762663415365880569643938776076437941765903993243358030596698912480383205334992485139878058643163399910489078368055140373317619882220907836635584711881484732420780399014815952606171458848589868039030329378778885756309572011566471430064701301120588091632697141598374480608860876099797880943635493650552065657304726595511415600760489179213318500419402602434099465756297675978390225551109952095658038367700964821183366469853044269653490249806457965107137417105786394971957674326883899831608611990118270361892510751438719066257781506578982443426939602349948944694953854801233500544093848400585170040349949520852523293595143764667583484959639009922527776335847036075948741442248278447133238719894541632976099481810943872054086873449069042120281652895286000580746117928011434090123660278794418536429087161094502534400424831234905583542279007940120694292802137355066100633278087471136384407127893212135517386629941057621780300287492916710551136672132253973754156474350157075709471896477389834062177626927070894807635300820549793556468827710126151171840836126938795313909667559436449206984657739056441598059493646526825232339740620508358851123572057457361708297502408471846861276404567735305011026670063808518730960572754142581382746662125193103288944731501180826242961846553633226604486054929461921421415433780847820829669319438882731538290644434823860296490263705384262786777225467268504993017666747642490841827305786682592480443430408536702255730642027314632221096514986613546423523172874410576742117294947835822222554306767962453605649492506068430232572123442041579734516749055634655869739055057394930056804335630435659292428766591077659955462119268145907741135448918003346040899206678096607403712136205361284547254719807971353714273953846897626765791174643751254335504658784176128270512159943529903066530264965990255267844040419088759793651277851474365489819856076300703561962437675045479346679602692316900789142578553907945539366161989123970230667534334731719178505343151275122342092971703634254018384357017157948281961453312764715484953520613450208111209675056206946357700845837724196198707353908130989510437994762650087958035164437281429927147606399432687498319634081160845701589788491179278916310202808505986967643204261935555702094430581456803855713977513369834699434151194974873843128637026220142780657774767856523112351793632727478192194773823883989953574455872819015498292278521723962783383048914815299426282678528320231492670211955974042127354387468059908365300627597249704748034424949947274325865995959527440868406539396144325530338915389329548381670072024196307295964087932585943684790781102736432669594313643268761572254619649521385970618264066931164065366690950102768854197532666238309187831822296535724790683273985525303037772008528589852473777591838575404988521404149993327580234177039898177514548481208108383311078448945625350139752063282354610636283100202870113350996552893877915225182369675728222781078970107317713150083063021780015028120299749899494819114682148756759270030161279897192243277366195118714905704825617092431939324224867064169566530152646738809061858370483101388597144987227400813701951074586985273828682586924868437008351388099226209175528362885229998920049872623825250973262537579897638447501978679649074224735247603362911414472916591602766430310796157657094190415788725337670028331885463885668452903515759864307632170841824502929810660006816379062707807659065824649670897229341458468173767496310495008348366041535863871161261996308268492614554371053074822463614787117099889300928515038923766907239286719028959621944449738317312063469503263644499266122255323594772611816870811218231354636040813863839840867629190003141881384325731752425992516765033136481315510976701282007411162808055962767780297188541247054210952495753777885908379374665360905856240060479536301226007161093276035247582968891652486961131915745107915601518786813270218523434350374827188195939648553717518939186338878786845449514266209022557105595678163429504177270148346512058369847111229657524206076597978404898226746292479702926036483168344716641495827704875286241779599162268825509261427379796691429283999534691064965202866230749626214031432812514229331564990387220741160068703867877713594407026611625384163587746146916539611069858661296891279839130387137113304850098284796830435454810489457825651983963754816784088254466829793881292005927719456595770576342947500236272912871796143323904678700433269562439238902241098160085683299194035864959091130624338656924987240165590849292711791978488212010263821336465456423667838709171003525263325892455650517175733699201759571564304543054201500835679871383947324447802378454930472088595586824288608680253939401129960138301418901871159990713016470549085374239391851041731340982237466955187132709890886773634368969427421646646669114837104950583651815730112189455616982777522342598280598452784637372864056679370464343918954823984936777829397647843427228165730104825301199609222541575824168070547089512918926371593161521989999165814364792419963255913509603221749074647222700662182976839167315260191424835372493419029784715933636107206865264325010641866133611828728144499813159987016357020703549520022099419600536953161696908517041215130990679822578598590423809442395337417888396992094778256809988896121523423009446582979058298888894466971508558456995247937703210138227904281653527165698764381289499186825156433885833440202046136316143968714830278909811523195119171572381448296019173352307865110548341626537398555503280456622457694624593621313147160772457516705018561390878894377465458506753448806881945350256453349002019282466031703919572784341900784291449843543108958227051838900979911580841523524256298718996561934988419264126436860645926890240738751336221404105024664432875233428795297448003979812393478024337729802475484179409698447779362022763617336315542933855567991309448587603201466202378764159727011037728928044952617187964907434031754229249373844915426947786759843928838495704586031013916732874869487264395644928943854015462720298805145448181530344970775101832109678447879169340498287954816043724274194296926188215300092849515408110968477189300555751339784069061415832351355601947455941260798110380220847920685983476015775483083735227836081383122636505597192754189731095584937320380336715972188073515773687754708710566888946965838444274657292430521139913157414922782717025519787041603890357388639725640677052694229136755578327246334720983187447492494241581296222629940777405366192555663835438171841723872873386218420185327477007148999199468783719961516558625077537621956381859713063785290863673691834967473099748079755788731112722340634887965118097246007746142885792655819459655117157208558784876687094538742698960877785841420705770325380816573831088954407823057631452822121362896144515292031341714304439688207195297108248409635964869894526346911895254746201906237390134184292856690429082732869803653234986121788384636727408540468693575406729441438189947256793090061060016590879767831295468249705825219692070725173186293873114746715387981054971866261521776057832934802189195952714492425208434964950915567382673164559145396299102180334188931555660789358386604310346449474841074028695398936345015698719707852916815510137925769570633555745566931542329107798437321594542636214181778763670689058235753614853272202444559022833590284591006497474790998109788538521156721105365148030806278763800999128354519588869834532634074468911245542547839156048816222432429713617283023390988150103616953395747955424594651063125586921011940690946120277370884100099677966054100808077702240595969790482854483412033573167773692909168341391939445688768143597519122849484223520823201256284305971597343572713256007649751371871217258428725180006496176837208626042701341893099955993491338348723195230278649801456718345769241789783579341042845025353099393717155858504753266843719493754371829531990362750000516599533191915071784722645207733685242160246144420642914320535244909928322940846712900637070273399035397974835594364637529655320174831997574117569431026358268509335576045256822461182704389542775867508723162493821249361094282666130291618153399751517200535059193036595417119382570125307336774129186033231708424994921055084160705125590133751485312628036631763165829488984375470217533006827006080271112630992043110943813881609469351654992298933121003765677724169531583570407668395898851706172490622476279699236834885649834223271356632507407955247496796823281290602210057321243650440294325658384492300274122707062126004382128571982824757703941970388059284473256076517581807225105831334066691886216331714348014093720555257310028591005875800666373010567465233025386057805037178342907998559070350497747645124207873737505548509920260894639012485708049117917033770970313651542833333775449718697488504004260803295968445391135050647459891917433387015045305256647344362947919297589772033101429032161623137702848421330164817651434892733899341230357030678274441752132664678572867126228915636360682566891279579522268032521610471598509323064687931664764591659671790868797257474518234714192175870587359508418475963359111871720742938288222747315604357659534331464693092894939446863256852495857567992707953612333005483053941482817566335091640792688233886504389041126216219924840819433377770532146065609571079777943190414020548791606659528638722536644238593214196016240893537487911958118469682608150011436013501358649451426467603325469571214449620932154904974354399005896264623416636018148072846214685093826914913074435107983789163656139766610918311080433328837976312927874290523129634954713061815141292280398947271923320318531187584799959234450954659418469996720856819122440080754093427509017796787000247994020367619387232162622437318419803025175942417508198229782831436615297462811895006816653925204754776052502450103506095820076260919307773920178957566134794388254549852483832258038812688105807094460451370783985559987179269858773791207193798408216009869125507853069118104029938035323430851618567259777438822440783801487319392594432875186282093634515300114780441685067897434377634943647327432692445400931792596416821358505979158613616947153774715521708367856407196131426114291072842924647198277259962674678731151665192546780124234156956849807612359931232950625981655158658286029351150344726313835531135637107794261878740506071347823543625239738222721916879909939964044593639456411869469287150706360259217432600547961157016329274854963108399443496426681370244745942165029933100517736572114943014382933318732412572496974309943971154361887104478559700629914823729632582950286395071850118058661097065827311612153846719330904372296138366324609463524475293819229915141781021756137981528502236432924318612822335823743620776831862788384241438506453774529130375285557447024975545345672345046975143541509784593204202443141743792320107862840626265328624727965691753696633454651472072775775546843096874216658778043202608509594186734499777853353372189167516140966415999515529538165667670759982763300307754642598034913003869213778393786063945649602257272731421653890388168840899410384325294731396858246105625516473490298816772524998718576949682502030914326511114624385719028192219135732686293557416545178499068605255880565329660487213176641620533399581169735380609049364285954983215351374429353050218953099175781601356389188639326065380261737631712984146485701225545794957104956417723507770243963971173471119116659444585650086322378150111811596518490111719879794447271507672490671567024681121023422078685033026314296529057164082030227506517051492832640331212289562275276067661234425403484886962301851691701528556341585610217821459975885134026703613337834833813014880586110670363025819205489817686901963088286160071609005779477388211409507096351404593692045286533619188378603351818266055094604913802351474826580450800571956680509668947292242685047125246168038216519049550327117089746336565036744302770023078755863863196244017583882663799417261365522972863544206814421024804302991959312737535278715242180204612322950046842785343806251586222814799777223234975676843481822688024483288361146970182931061981617773241289773595598782970340445660436193063327027175222900719106855486033959360910707474510698012605034506420365541027266187677126009560145755469412231277352313397892811426305051095022272749158088356152996369936689471861328061584485519786087510636113906126219088916799581217056404945198506840701759978724058475762350105877038242636087920441099797066583203536560969626963999003737947934662690393969864481130991943998893929631495704149744716317442601135901307646972107996205179875454679500692936357631151191808844120510106528613479557587758859198016026326243342941549716113640044803875666946642872925376526838358179819471572310155764759477906140612185071733840377260981097582741500358454489864516609736811313965507093197316827309888217192330641545005104349191491183806719538039745708756098620492175351882943501328086149257678662209040604317580476350637759490656578606551665854372059857813575195268595134909129314879888311241647974679984911703628334557147290735322785159889274233164380448837894676340812326153228363584486462420474735722032665891228973904962140069290092804452448063810881943889400256296016019887620842679710920946567028343817158439841906787677232617355240510079852543850178313218295405276068504338780295770708455990376223918390481540337735649382519111508071576555750106934178197366857737096718427324139579427905774303547305270743869516986509515500034536735811537351983846711308145130666706506291039038150107601959771763212865682942841897832031644542570370494021219069620338796149301938214751934555217848608051886646520212609948415367605167330466828177081765466765619588434413976101554409990046886647320533767222218501378129962746236816501069963061390908051517066107600482619449081023259864365488335161632879223565527649032684106731497664693270203578322252097067788027134105948322724727425240360904520979185419341659009658632621353519079616637117395600542310825878945288027358803065725304552083427667779370444585534117067349455727202713337600755341609342454208872448291849013027916420370131021080066287700684639124169139603772318501469898017192798153999380323077757444627396135025484324609347726541224265587184886305581384917953196909802911642991298191997897715654727014754068633573584725378624298853988998340427988131730833908110583598251947926077966121247006841422161656942437825848814841755341235653070531370364199052053458270664123400601015712238237137104421640547052324073549807541670645568712822292377171581556569649194651864718189778569338020293699307680547360697797992094408159309262955329207318010085363824772398443401144018323391550543449992759374624057593959061703296279184078435725716871922755346567193117089134915146816723098733361442137139432625840567861501434148040050490517737194001021000075384189978780932146341716858134913688597274164751736255722570791163718583525266656255668803980319059030957265053085674587837392296296173308560282557599119642560888247126653614596050110631786289783600535368468555207351212856429302615387557412734466301165380218494889844704761130805229801244043142358640576339413824528434582493481168032924929936160469486811117809678018652712122650656538059176555677653139357890304598999314642275109210418431629768417386443768045629441125494404445766485804672164184254804333779989145359477439393374543135781798676256396553606734379221513592770886353004155992803076041779713876237315453049760866382403210930484199005421828900545916894403785663318906619093201395649090482738843003222629437764718783350206212974836644669652247186496645390289637657810666812097216482355387246912409308488718617225015620218371010786808159756053674586416640211575907661846129471603572947083699898812599929566726308728341796337261011833423818008030493787968973508446317838786397822337359132082062623067950965497468853779417443373829853173685396540130919022056511555881297160478785418363341326251927564855806592480455026952976816877017879286021396365083702676645007591682376311910962328193698451976118701077093831958870814803473993251023035613069817736954651965416176627258789576629831141966828895063521610453329719621237658081409133695265730121891309621915299348292356815339204150674122642045051955852051462482078580038900112949931063581868437218867368969693340500418278121014993017391238487087384948867655180385223492093386473781597847803958099450971079290935471455098816342818643842058626850527283237347903611881664569256949345787157397434527347747447407179398128763824795012656074199713953741483066410208793485901349771402882695187585564604894944286361636284177053358076622132118858622569833794562304908343959241536139345267379439531769343412341873369091073905267316344631008023676476791320679231260408591442696599912384642868862860007980138039046388491150063035775364557501058008664238228220980856496861610381376984034876871156613590660336184956797706989310481547317278900604655394300274768252254599428792418936151985539561757282048957326793092572895181340759529109284569227619831570477070525655008159008197748978603498347003206789092358833227506922256989461497021181828031720934599547239910590449659223018515530717713456115847334215311358769968609982362637014472612018952468381322766143125308403232049642231614774025809234002072907703205387733694084366546569495070287464570326561298446388508656699949966420905977756419789051351288201244038352644303842617739256460999358819243313806938758458082623167848697082558136095707185604042230448031157575935647352576720627327673436616490181551761768238839968677176845045477794341963133190660245345909369479796728260451903989094942369321172807946243245259515654106163636162675902971114512109669055440812960791220926918745010950918857061589629643831592466361074041305440516130093938577473835151677633181680332049992385579102118740514919785154539831060294973197544951341379007904617061981414204851026163587706214955864284169944404496408668714281018573172391704782413222317847294205579444277894550885419720178088526449709096018814184810988138753090379575723076221341979479216477315982908534747263818591390467010560657137631271711593195937121088001295636881235594939484692126260612202576299108511997022028172974565632079754549825302366630790539301542574608478091006699100283623142778777387729191453269867637548269131369117438317232716893670385012065918736741773102436829381939481937308963185935118653138933910888963619180723715901462129327059206549113812707317487276376059277266749690922353112075860659435921966943073560477642344150715729251416216827470129155457584626138609476722536973456316324389048163373121052132423020296477752865760676060636173142651435512671158539517915201065196719121306708916481163386009854660696598948324647263075042224248085169679030275574656336115601269636328475706711588404394217856883879340569631151693029358278958146922040147896487387487852158278915353718743600670039557060169106125564551681555793323275465313394975520819792865228002773543686501378012323571157437941870616486170144739497749139627069672263767257984239889297158433981295667861715949222689653296061110429105644240069582253827407936815139631734866792969476230027949248975107590249577590284672413868721399993023043810591152644084624629163767268275715916976889296463036346316133295291782463635488034372503918028509643575983020452496768746310371961366763724018734900870044772188914633880146921625582055699331310833048715540971061417500734071477786176271847744498869728928458153604236178552396780774940316701293191448414339060544136433447096510839833951552496595569294686826701874643231516252851974888281785875461279816765189516320091103452001493899627419496117420891420778370029343345348324145446457871770535699065889548247098551714669734704212790293192925176006736963230738353292232373025325416369347807860753620689577718750319200354776095919685567027790748668619820534368650159936035919670785284681418306578895603617217935633991474607761013196032897423306225480775556347116477753520450237434850072328213384591101271593193466526776922650842998225806392897481150375092606101704790855324469669503020744839867178326880648521641041614678616436458417924455721375507487035305947378405285226393465321395953010534566252664550264082966934550823193829705488608418429133684947051127593211590630230599749293024237478437668859207750571386697514440054296116619658847946334827118077358224418674618956858774170857489670638741697076300021620344060768772915912470357627972618489256178847308841388263016657333197789782669372038773366315179655753506943060391865721740467027957198771312360442587543969306654276770621693671562622583771886345963711339694737336823468989089482463662253458994260863448191675771722731866620400543803693062711494203684350648271699403897433630937633343757629784490710860623119953437603251200444251212641445715363041878237334775191902491041849021384206294386769156000672280767525969186572036577411892150702112056854884896099621742729279513845095433825744379022678349176716327717157438422404109252908897705656341520335566417767015042292391815326782939044800970308348506169056300926893294016845334103897706437978624075655429936440952908960881413745473145222989746700067970200990522053234248985778275366139573152991431717389601366466200021257855268396264714548487170839920734051680775290271864528187691965457065831496476300028368277580016027510542344928356013458538490300539035927453099701991624199100921051292443559484417250359416871627514081121265499062117554464481043356008768672951909095093623079363950719561624217490584289489823006073673886581280588199850158049470587886837888570344841912126817533976150391439977214833653516683967961571720251512124804192045495708930450979416679476336586125180186800424030874850103118212545436668615729961921277718720422927678967249630705895168910130975338234240763900598736475126139294614422274019541412650895482116791647240478571148338307293180730946313549861472934273741826455656052839196458450966899135321578114649722919162437325644579571787552728375808529584987242974291188215340548989929721601970642363304388615915876054363192997494161817147838351051315948163598933943047278687908878952267606867499853603181738409815976772474083954161541674659740090402550677356553140706799555750629929560296355169376359980124578330834749342432448392577276615882455498328774775456237196329342224083425529613291239576209835157718789565336296292689227237892878337971840302196734233883576167941555639464875266168631550103055488410310471858439122832267248612700937839022075971672610323666466345320616973505149424030488399480724381322595226286747826877626166899376763242834865576015332184673787976818879997548549401653175746783322190322837815642052018084623937666716721164688654307894711400217158584049478398010768555919870685356235490894420662128153008471021181661269051683919077022788364683316172823416406277665572055885733357230339998268192742623117544640916869890050003361975241580124490429257548858621461322700766883880516077756797627815985963032840071822736790230329940872695740699360412698723181408997451911481824697491208960344810718731976738257692384025120019346658482801389246757329192850948366793754250504855830679852064856593676704872372214399906953138078152113234480784441693005533011621488487071765218326568260777856606608884286189988166351581840418628446932619141412211903790770460533674263295169153847173199838823685214803190454024993256245333062833932018651472953435968156634932530299616040763229740096016363819371308129199604626097626988823739184978129152703821964638868975448278043878052975428112779328695404233337791699506776167612067825367980347256689668460226777091242699481810798735371032836020649757878107561284642710647925046537700880808684695287494093977168119524064889683298839296036939714011631073263440727700179910486215676190371137747761457459380725506001131085973943254184970590334014775521811273904678691762723407815892920734121606299555284506636781341878798688966988567293431201478433922037097672112910330146549258014560763880674195559577656199495091199732336160465669765071617582984797724771732151889507184607269092890357646839783253553629150470297194681396110765604226063682924344242119472327928300913476185788736420594253688387247255002162884121606071082229016728935594337837437383876203994365878509198609840726204756749075144403391789347611384635861355032628028979674167989262933783784407884428015709423797506842808302604233818657166346485060981100457004384586996593451188660106401941434417058155063657536090810095437882315045330795987025905379897445505252251423185676133463876175098593401537744700657696115495613159517479511948904638916640502784362233850055472587951621779246250706892074885142743330971520956028139943105356001649434756666957963633825790709862020119114831324839416350077599041437710384946834124837533622614975461067945639044582457129510737151129835694823681664516526371255725698875961221902647782530238930503260598012189330430129212349042845716841510248091102927415680700125813389395997442271006224445514071306205567515399474700965199989921943821491660562665732610923066304297594872519137459529267212563214118486622557495161894475281241550150104921773234759989470164254186835442139187588969749855812656921540495163373221033884518778324008252783229111693788968055678382117403535609055308271519977178533703804733513704442726928537471571841247523974999636446766715762130510758748731365431332739269962860322833293983723793749697438599901900300176875964663906521252933640276812935661693974100341989832394427495464710088496254418859046269184027732513356159361681434401201563635028278112975475968197037797484090224297904848680597193942120052386394326159509322393995604303826018311895348661258515065879763195832181493628017466260285639221091514952798091635833453654970877460089507218849911574175051127432951721994362442493429182221579515111294609892431349747024723167300943939128716714820918423384598003489197042971830756818869797125164746156502171365552280314784155542128703121991996186189072221715078355449965347949562637754424702942328541950366609352398218447675531024508383092650741013578463805017490387499626403228651019016472023390130280862224749908865042909819090805699192838351197528731352762141820323690379116324502490459612901214168216783690091561594432135393221727615295175639118829770091835536886524006658105256417631046472507245493266766202765608439689812418274907005385389423129457745333325916064744963829589055135051396978250443386456927077375096327420850451648563472295061957204050277339382286312120766109411388499206678029234414724210042052937548037490436602535245302270890122828497969237263495636527298717709319444942331146105930192416603962959623765535747383873902789205219144396743073002252944973471490435033092281038966700777396418071368369401911963338795572256106492447495543708890441725707566443481580625338349243618484396864074546869826567058873396360926062874994244706630437682924383335730064352734958359195255870442230120733521384184465175174817036498249996235101554788570527597378754039372717123594579039507440607380135706941900534874023601392715986885659798181807877174426627075341599695016410531316534285129159990893436565384866947272664688707691057527927630095191581675606120404373733132766723047894342360996858795450806732809560996721662709898688425078602444033438395929117687624983844116538279083128759320343747458677259933493838893405165174867008505850259836031293192400642597358571149540833140867191799982765066551229306882334192938773494495683105855171609909423475727757648857407799353005573676927869462726998020455694824125641044966109875963074896616012821440299109378003038651838140048511060675368066927915089581498684839030548444907888330413727884212174336283413373772168799678761373132987718104065277692000675179956747160696992908162631558726725717707583552610680711126730207302515754566414029816909199348698403448770527666018517691420704690992697014464751769040082050006427249275127601886549645197739954924187910016979900732266584086265358316739901679660296586764508867700143779356624946870515229251560707573939905473643274829381572149648155604390639257612131747160842801196157053125699950453673678199655262303518186422423834522393308895085099430642073706175800235787868939914933222407260601282024853910316003264008028194182839108743173212695983202588521781744978830520092368570198910265360249083451824748021391337517396463538307850285166492925602446701833484104518866835389263246149001799251772721644110863500126265221007703219507888660144529753768281533927535760057170709138899613565426077372092157703111222232465032920590530287906035700089080300571989510800547860904377888759511918467895841141330739448405354077575611806428340546557960455338917376880202766238874830883524991702636049365832977075334927516553583312552648432360886902517676270631384510756065224976354226942006645976039282734096075647208105926916018510051762359059467292130965665498480778990438674283501893759919584946941040475938493468071762056573809037921223324469074465679370420258611069222428332311767430585422012099113614847521138673919368180126354357919701326672949628680461649353779702474535497858153873557041829859086947335917448271686738940561267717191054131515956255499778938551403729030681472092348928710830010093315893544154289747046693782377527174989176966923986705502817332816598105576590965787515712217999238104815147044809065704317700029414384140044227493567045577266065318851718401306410054190102745108443323658975661338485935180770442109668428544297534307646532241599143023987703449040802376157546992713748405429255642154866185419996499374764364516024003602605618683805552920833939591842738700040737315234605891679113315276235024908461174871075791232196917615262738804363287893787632705452674669226320703897586407290589829541726871196237585447774048398933370911845201225398905028639952146574990134790983351215753068769421452441427369777652445053314985050381052300485848742283239972188690800352217167167787580956124516849474364529139235920100585610078635001140186421912395832086404777800402050017588888772969805994374910965612112264015353197042470890632354661386965963417935780224749772373079289855924290378187578412434519616877699766313448170394321154543846631830675919568412530246712771909547477360445700710296564529909742703569637894747373411475594571099065833631069418295155078916734201859324527430162963259295238555239716756717451080636107240846020803241665333326410734348785976215614467862290469194867180309680839906433628405129772054835515752625319282504574817179036740730903767339886672136761519982135662370049801480481872536835643206397848460428076533214723092889808018590869242430670174855648482380022012187565489391296162470259691089136944864090416159662794680458793762058716498642277631083296691138092021492531805892100997517383877127096691999083285611366514851682217379816557524592499251756857169276025892498959741011827900808353599782810570455087260748935311595568780765838230824010604866731069673211123581614738494684808171255791846960643546095437238684882637412626500873778184539941265072536633759141280809437957433912337353503403093183803921606020873787362159434199665722755545552470751719824906424345383100328624778848653506419571754896939162025897005430003998851491918462926190988879878509281889096679964264298553241933332478103368464237783991493909471445117112999415941925825093316614344098688100086420681472953594439269826337204762353898581101677327587479782082687577126847747879586470634554446379239288616097098262707318746337513505772002349356420774559802453147656037275385934272618068286062335116198218441565971820973348584377011702625571608874636356258484073281421078424816484010524309921925411986471680479806944795374904260621244694369859648721895892842514122113634061254000844047211917323957387135629302774681456773620241655783281861995059600884486250391565167252632261411641590514408757642243199084382234194357387968225808301426254599907168376802156347963629998665780210663346324608100748782771806419251095356978218833594094515288328574561101205399650567724829095525260237861127293085123324120431599812723509759067293496883941787071311409436308612270936577938334519853614724272347140286447894727754696990286365101384704132837336002823830562091446180707688062936245407796626501851544608165306511104515674232757822662372563140960559170213570891451919916208360908267495108813369733953701211257599784564479264627618467866633038734407970702915196113004590393411214481678856961720499346074215720590395378671070374499729599263519004929980863922590898896998863450014908261144613000979374766444158356231123214798815843361319670254473893878143651029594115574556519240956506597199513296230802912907423415839469516605622764815111760506326447172615937015663621010239290729205954671901210281726505562406798355142326173412664708208518556298559805484081350818945570204908144197603171752039498289148839881731413288600945536606453858140411100928585482885515237047981785388142085177707900190621992146483603953545580107051614384837378657745135958484700171763435415854565724425688508596123405206257338842210324636530524734746158186648035778415767349265670540870247632630486218477810449419877112460818510901623401413503945458294559838901921526469426270506696338358948825580587092477067587509310931149773424260864884080550094284116611493652935891936735620974560915597877216240976274982408866107656628218432297806001257786548801023301045496138348466681054698669740068052510025887896571535266222273297433680702712009152778600722507079615822875521208395788777641580922034135467258256579294061402722772860541712971171352928837088553847962338614539473129703346979840489006066910999362241564614565774009295724769956761424767170976620791325965018681365920438673853375242702692647372169136821400099656603265809398656912276809129823216571001392167729619219548880809535669040173499443105069495947814716290369124990393259332903994938435079291453611108907120274908149678613182176252738809985222777375204262819029097917783673358825000632875538680043114427171711686346425734842224867786454914925372918626370486868078605135005907154511303968545615545352242649350155632627096885714505757280064794934530561074153007228608734977770468299694046530896373239422545965279535860058381563961696148838429709983845605297351820235205176074969769682543999775676482914813842253878224123521281805142471755482405701935288638293765310618500586366223339989626502038349246778349940338095388937042857501614486519140897364133592354950268949801202915995513993996993217055349993928752919336636713264562725533955017867252548947240150929600687811241311756383751892376906232420122137516736125676895021532813192604013470398758422868304599960645117011585842981647339197706916164747743542428484184142558428776805066481831455041407360062568999357275710519523645836414179882643725818736611012459496470602633350255245924625813375801446974597192575636187435809778179576792089522501993349000247218324643938958324213952302426915505893629953792672758813262314125744606017208657243280366372944293349930029043250040389331848482131468424302210389173924660508030538270757717718219716558483320369783153689150706687493130167261237076814730099524679558701030094978527020039650860654040503403936731587987412239819869645930302422077111303952774419619504373373657972002466239316049112523253043864675065262288751948113422371886080295302776554659216762413195121910737834994244749827928694815180620843744152315121012687529896166982963864030576406609858712039494533608093846754902139854883247372039737267833917792463099817828988009889737365291514285217999983937900679749751862266018003886410097364412126057559735756043208581850000761647561104260962960144290163677121745362036164583773683885298359520396888385007287086699097438235367602222739996586519202488744537818605391052048725733635590899918888833252521911051483593495340053349611474667936655294927093648427837547246774805634521401850772844518120452632927555867669454284084639112379477634634342646787272193974493920645798544013517534925479543516274662360703645710520413491356713307869854587920807470294256300535995231175167468413109095176320997951097211814906485614370572080361966762619132088510111457526048966983893459122448808130550613905094237730288858995188654794323914099680834805984173861585937253337293364124599709910571357659116893204563110152361763425848391285680381571312949397987699555818423203635436821671613844287405227920469889815943559708087124547613699043846484755154474889375352547834569606185726268354814678790085361240188127505323122558057181113846560764941567835430611605498116573134575770617577469440939650015075877898319509565010753651810708035313417821495790800968000069461684881041760100744522482060352998680408344008299842400676408163888756637284576640325254239324008163125341386403472726626837891995958134697223681601767121449884157048410534595416529405467837868146735311778411258952986531950558484724838455514782185033369475472188599734057012918493206060871154273827978557849694236639314632974270744966525040199030307279965772857946241454735175445115118121010691465943538768662125097678767605876549200252477350457518087502733406379864612496883622788729256706200148183083023949147446364446761164598375592390470456700111267236913733540202791773062302282785866638175188955632079508071455462688858516717144473144204635109657130535341910596663461961270741815815446532308016219778885089531760578112948771975727647821360794783164507515362941072851683335781624394605796112812944530427481824967759070571827471637395951724677613857920949266811211146308461740861038813652406203369084054980121927471709430945456702849404511090628320982206109083572352912472889107715065022193227569375946577579985161818926262174824267708319792217298235461210988563634142769920068852236736687061735855691013654046171877859576151588868222735388933104459990421072198611730199665223453985701106431993164428559632132091087729059561463042581362044625567184331204561370061403057461811509247034988977487536228255886765512210723994510868774924170789043212011897212827504083637922064601466638410347795548534649213895380286684967693659496638977102408548341662840733741318233676936188175661050454108285652878247298595466377557271561615198962019132666219654291958458688873661930256249001493771063675703868896583361678280939876188193259285947920454606038683111955639555566870947738825448164065489103328351595947142600078357270870598428372181168495992636056104737064168252030780400333697814301301353720699712169599306964693659736510234177374830886360141088540883266989615835608412378765141707751528353695199544193424851903310089164855281677321380406290650872672700658214865745858123738367658504378584749824922992983177186062460197077193745843919845887319246341081222767253429938557246357593090071814794119251175573291621576282115358544334052886467126267767535667893092795779761129095795871947435976777336220222118942529891854999539890081726222807878124296473027029914928815002572042563512148768296855887536697746378557728963472244845029027973413420550734617209620227238352206250888452929676113895553084252480894517980795373620697954429620834107299762570164580537137184714711606917280630775629552829530825662769845093786143554183331471517227992780002971583022606972778905669042424105729237976229513668621799223445906405492101442394455621901564729501622071197261339471714936047051950230971637605019069468236776033324547828566526228029358937918282148430736484075276915055426759760434267065647454759988291890649925882825239215295222121828900030248076990725433881657432377937180492471019556239491177623090532243240721772693764563528397286410106769890293222086133315805626369751073564407613752629074574564311233134791180015563100968400734248109993988718540383577806247906051456180060342816373759248353708491976611838659043350165273037442909795775214560760291239008738426852204798669220087854546494456701757189756356002662537741325073150331341705237370639160435260685045571277354087215950425327898889674051778549764709294675986531010276166656918086915658260271627341685343861446701189077982495754459495901403119731324023987024506002085472671043810394237192525650384955057025325082733042247846833461947624701348896649941331158030210846577520920048917222305384242224092929730541576286479196539114085819663813415235275278990253425538615573204044991445440577289804079176575190719900310028839835977076352000316857663483416447778114727640252096891249283211038998124892344763124535903007135742503545100022127030048772086696320316215399281987461204346400141276059801228425011044158151905820227738824083399281998058624823500527484807628485368342200867686505075483223614362237550017006994321887058302153979441280200712968214077381690771975643120225137281461943649365870238423408905232253933393764823081470147309512790612239719969325689140713624697405764348475372085289697280007607205322847081125401006602874513561051520655708782882952691192348115220208430830070798780706825243779811374971861149747921791115988554114647014283106054022524296698967974232560064480531204806517698010193594002691904059573341047567472944345575110598812817262364387635433662545200935896456767143357775201592102107510789019625079449200670412497639653199627849502993246583380028079746381685202491775917364869441205973040763233686380346151661499864296591582187130430521561818351106229896242291976704124769885326210462036236827575500320898287902474572492764894382568517458255219598730813388099934757523719265459584162799497032632863598159097719350642166390583417524655551907547380595845674047662632619742226205339637906800916992714321458880499389390833452178819116365340637421460449371792906875755319760513668752217375574177294399303588396776949219361074457675249920398343049524882390591397227111549095852611209441663411428450027621667295643818858364944070665304878446913725403999978690103307113954048915608946559407751411311211904263990567680226093783026462355800448883558801023993635985982425177053223522134795866798998767641674995933498290304314709262640037088149992982857912418968314374095906857543874182580469281178193384788960257459136795120608415139709654175094900367522447927167895476752859933115808781327465657520087607484384783042556769877226483347059746596495257526795624185505642857117006881722052138236352135739583305314179541788904390079630097284136959858578966089754135546748362455197089925794625169681809273309372418406058322764704435973789853954131653066030638596081115313629149566380806687232220083665155168967825614083498184401463962962416252751577933429857579404423309633882195279170966822120606448416176559262406560531256890490992103065470271047315684822055006658319150689496426842104734825635909799099265756236818530246246636362686613209959569555868937880063345502784851428194609403087261104836693438103327442978601460209952344515648218909373620244658417581482187942006759540524042362239516424337193034144713672234690619790408535430425045062961813873181193691508626361530138902846973495789447045730793164441407235359330150513049759211081199734566534304336592598103452763583223584155487277640604979516271106763337115509136126267294182678423381504561965343185826792545751825077141614752029208885784090699797139417916679774434824145219054604677497480580270882761516754121935931312189669925915325206901634280618883554919658736915672533219870459859158953455603682611919024439132949420773981373926982507431238798465449139844981586593492589892067659876566772061375411555791547777490663979461522468426718186402052099809055882761747743310522958104570409741430373568624954306669195031294188088425971429823897043392195848629121989307189144874484333709535327468513778136376683559507324929698898349380995990696421211307747858671758214532102663060821766741142820340258098870443213281842168470241552078105764043265949247666155511624644854607639368794086792111744022943725994641947300753534657203463989803322306747229219301653500799907175785971045316663900695204135488655367424550760671008609679913338713295008118516891227499586390458859355137015460222838084974222907650991503370978025249462075296362551128761976120896972111968646252396377223882266332618752234634876836650599360183363314833160583086406171740807841893253398849994344379271022752351926700128205146062775168150693266396729859703297876566147880349221034537117382211670256631141127594608083355446250319014468021615641953784325734291977829045554600644985941241682780969823745893099631043247246577723058584319605582565052743427357781161448127017951531468674406623508182329022440473197193578903530066118185040594505979952231330113722570757999864208439459244531628151235269402252368020257531615615000690031399068174092509003734939972980320686043608052400130871262326036095704625837780566857623178630639133785898638392963294933089698726418172431002968824982933846676667982739730613567781776424068950088214832906545439394339790256795176897417220611040329962856497981618569474023269556178784419908345734591178910980584769637191112736179532654069578471919677007228322196989458657672349146808626048839933506640500562467928487209838198597433762561219510891307302259006823889453920206218396025435820770561213296606754747870768708247590284353217627374608272919144675159646953363846152322700811431669382095399596846746464933694703489333307161146408069941439809947190248465900273701267941643212826068620326386936915150106749346415518542688499725965198683737365009713779492239953271671503608278946144616610568861156295791310104033959041043141204531842560460503236998330641284573174839943056468592323702417495608596844626886669227950533907264484498299806122832877888234579318176405676387184825901768943161413169155422725940549573813968629549219287137822800424858062058348253542830915392136206768368143601989130025404809297742531866386680306878303165633694237393713974369261003154484964991524706780938929930206129134297302431141047172551613710928432477134319464974240475817930575330529002913970324769738322297959121582265085987685671696607726217659534486682543338930463485890249357679694901904737316719205059647168732626981093398167591288706855689620851268922590734700206241184397252788472934385466875647069728878887082599859037254143756299371407464710049518951163615212197359423778996044952177916224311775947952394439395614026669437836556015712668940799268923487497495823190356728116598445935941431016477901150610664793555295910651359859463513309726907264534205174756162619696133738529653580097049839394406926383734016382208726939373961866377212861818564027400214874127647759260283407034803654781858678039028169446144263896138184577576590877958216291518177993964264531655276269255371405051250405992090473071055371272050189842416319606272986713140146615883860118571202395205418885596001511794056301931056807689695090440252336333202690897268338245879394944457164939002504043196144221964346568781075709395860642389647901816159626964816988382139941118300526819084240963660831726503219222217439284011108433134486403573770853744022467553823791348590099888505649985158903183875905629459019805952012442641283197460467649257912858135444237697635077770816318879865903546411290549293715990905039973944522814092404760613594667379272898819898568097805106506081108367383152083473584919864560074098115951889071274272718885682374733982728981217004918347249547538606867372237361667231115191900196225982867480432706117802074445681152264243977000469724509156595023865355704337747606989353613401106767741836011105094289358665794629758901174900479714201359630189813291395476438498363363482953031632446733925210027020161436930199108497222388238466632678626970798538377954118052037113501068529419991400280154704314389145643413376948587412003861711069922324664957753088011220635275090413470694129480268949292330933530820511390411694505214235123191997470449654837550502135211165261705649620615339843280292954067674826828873737611706939207775126761822748988222637789663330245023062234173519893273573276817068174332014767929776953195140119072392428996345669708827530609367622236986517839641251893741499048495784595741604661233796426816520932421960588574578509656460412399238468931319183373637573057850789892871129237832096523353227535638953261996204513746092965980029498537013257546683610834000747178561119000196668730139566613226616313477533646389275294050722662730545854700822729020909231536561593896097708916926550332155731910807702602899237896492294569900516870709337356387152843510502450030386359130370398881103775493328039269747867398546449328459590831377022373806973381769165795160478175016679711255856043573871051733515476076647668509201750186853557386496569653183656302545426591083780871864590990638574867798617431405372030290536557732812002361554432443277312073146635424935836198207449445063091808221932905700172572446940670634067256303142782152213940895029637263039122893598972199664889966783866852521708603496559323304315583964823226558617267071719076013857002316250778633448287465417143537333276625340744318586981970281266488214479778896195909213711816288846014594855124828832683277588592711199583295354036083560113116485134905541184761971688248944566507119014928025364340502441997180076275247755398225583134354409015452802218259375545683321476361993550396286117836863336522531594645295914739461093207769428265503202848240477381559048924612380362019229000454662513185099013566431346211666178677652586059329240043157152049022960449505307696257004275839779709948423244075567181097183299546278272412239537123847152306103928480084656206402697954638783720951619931607777336545242764085923649632729550036161798335594911423760369398223813470480212864023970478508894417834157062789999191737734691282840437112287523623243391822325148792718308830950415855527973827084434589899137622725547047513699094999670726385137367136011595640606310525153205809218022164254693142355613050591006027315532371323207732377408063208426690653579844104662439637582498553129654436939920392367874891506194855373181463561770803445335106097950446855447062745628767771758135990122625712672320330655708607876150560218066455087688797149762334087054376158743456158033636644228395403778167124123474418247626166896458153313548614099366463476801164364886825150972782883835068997330165332900813039017238109588525911396110905232085876173843479701178820155170024205559060654644300839223711892376721436948042558239555926667659398090403279426597333209740526755715030446949536791555756139602986106956469490295738433595405051821969188507465181152095712330645098830761491201941044760891652178490695436673260055916753121251252791326730429862903434897077859219903519098958371053941313561670975212841007280623726508063859076232335262242552001762274492166877513459587129215869798080244126324013396189143483329216461868169139889042898157615938396048065848404892633979125600734750080536111800585481831108321097644162896338810655308848799963343368462647598495874121459622134470411827271827416103991934787989734272296343475379584465326485939128861288718170186116619387278377853447477605150562045260651086492287179944552751831401633079266371079735071437613316893332337608479740671926091746051124476719499216346894650831057433456616583263357891332938269857496003375836332017046248454015531025760314196793617705212571902737574425564468481980401633748411863093150269139819501088785087846892150490710008836148281875097854458508779305616271956464871498538211758841956047174903489167103314300170231842481117013657580538760207328755135916119739054947176068756229127655428663743791813276417306444258424120432071482588505744339748862752442363110170059230635967100020741679874899415177884693880183989980799413905768013655444296283496274072900998752847645315609155750501843198945318173818921562346121688711244579336953433534050749915653681819374406534315802227262939234946184858193082312084330674042436435406163791677096325150375223754541305455318860605659073756007537478400253507044665806557164254140442150190853441712264378900488908021614663624933429082157213122001352833758760857169432295711492788622870390719557591555699612997900035664214388772911394568628350465541948389627260828590080479195334703286093470005466902264100287245011281362009590559565079330557319206016419831862697110172288535087225149914895815016143636156781896347086874422599495715694050980294270121269486689179006660148998236313224838064630157920675157461591496773972185946827976552661801310384597255064529974148686734290470326584266355876094589502701710200384175519423894920388780695710981737104521601981514338429293788078025344114687229134021065501998736469862547290444122674254735293946768059139917355490821006541204396252616851645303653312625537196980127181276077053732905893608274026698918406339180859758170088295980647096653639280656618752125100075616911214682925397549175516704268840786288322371098031717600763658598496321334745425174594022507542749946785898328135030141881639508929333842672803859622174777800592100912533022118898977292919892507030925569222065145024058309032067152059802326336146389591542646233566262706910538905771377451831761276108702123606222569342442201336117036342180756932627528897243190066930989512221527190310663325735124385239958086460743349345831534588625780293589135552480021148231244563225597489847670005513378098234872797560239546174919841954757867108100339360165385682503793122714433740873576975784447366018715102717227905256499681464090192178679722663037200358902087173759613887861640733532709973969250177270320647729456799076673341752633881063231604732726579862169695766698714636558684882381900649848488539837924973244549480465815266034270397272460493003386491246921657984299012856604974686947850166325883978433034107397167186145890578438754838362027278048446001869943611462504258581709596309472634546900233537692991588650641888126418983170856849851797829523250276886086773597764361970364145748941656395446780267409575493022772511163991352399903346049831859004129067459001556741201993274601666596077003481240908927978162930991382401565282073113600665827810014638687727247284811189742168955767397267101208939886201912969552746430760652444247205619119635490954988267612014145669548155489070962250247946486113468596378981984836870111241122641164990666047136391774452740832843305450926704017829767713637370880521051827484794900594879810138215386743785299686898805017045722589329922068040556468612348225520419085710102524122576651262101280424930786086845101091763047542400858688057367555673244382641275552604505756558458881631564907483058591456262022218236954499521306903383266818525658940135864834543430053988138069406254396483145831798585988917654157443564997217809134117473570668457369408730199131838235501114504168406328378050884129267490878332953778228833544364451825347132306879174676152021240515224313793092585681172552364610902015395497365598348993685919683566928500798850520281740989289882450798025757038629628190437508174752604875020077023575705595087591762149198921236886598032423546110360655293251145188815106186933035182215711893577327054934125234237928238353251702581801018651516790268030507975732409832197218487982710956188845601085024214517777984256646754056235758038935660737113992830877915021360433572957360755718849840232807003621245765336477171035825705549587050951228883948626668969315184438911443157882733138225513698931749214598710199114036509220904867827650075916884427649318265853334821726757582446285182274457621550233320493294130016942835217723509420918735453929866255864820974806237305339086678822983144818631958202792538991069214493782044045852010558302749502866599308050896690740887725243509667722686003594879498043957967939398814284528563598707424934093592565041498315215776060953572657763706451911740352484550476160430910919279332031618071252687774491116424834094957715151177622710210505657298085954248598902930487532741361541081023997301762630483055288582772855775401821367854096975471507136178199017470697996251814273039995735875583155995482387257755219186186323946688470948399973462016823828838454804976534279243235230096240250143630914258607008463525034545363210554898029283036077865943215494114056110830623535893721122347619814886712598142301820236927846197886622954897943292240694815329934570117866397719813280656546669111114793095524666935980583230911117805906252211888160270197271680316690238567100793186160787338143992836130737314408541496524687289042368883457466857282126239599829353601486327496650265707648091627849116620284382992132955907690404324258657173963282423904662600198493379014667314516309914338417598279362994347962933828409887126233229150015715560749537975848778795455945935367403524719615187766821402381839811123651287292365324576348975654287339943122570470627391254429398689587912309169416760393847238719637857688972793689175079718183530391338720675368866133052304103425050978111013579867713816791706605056165903337466524658733987887842900474661083426554112536145401006749625419869978110036244704999802321167235295232600100964396269832185461814395480396053581427242805395224612837059219594525491072673040008181551063294842074547473885797429363830829448215818879153046882865889502668419273026926859148527369324925611206999235967257264846020794439147556246341011359246832811390806386308566345777209041781044601001591538721658734316355440676757863666946107946506840670916557440309670039113550557307369469996291063387156200671003194408288577127293996135877353857772311786801725361271659236052242112135671631743212104699989621010098021562974388792004698380734116350492105456710045584105933388174442670410650133006611104831941641586612902114203781056544315682122994651926800914203735590406622634384563722740996796693825000214952130962589238508641675760838345279008876071924757540271996545651199505794628834859731034870419172029798734958382828661107392384370269260834075760727686238624319448268836441972101530060023337898847504698957842572570847979809472962577438685669460234735670378148055250993282976140500319005122198789933345711868253645007019976800591889546743360144370734696849490778069385262050080482099081801496667722965520958188041775463461812714843887355016854545980724985235086525055941450892058083405197495399221964269481473465359323154658948557097656779403090365276512013120527651019805378427448107685766567299343047819738674353037991463421455597551236591634559774905800667576389049218971069110215358418389273978452735053241493793659541015378237027152642158071025721423884516040612484901254063695430475528987723641166743931170157383869033816713555807589896870476597082734635660280433483887831245193368275569251952468270746205897933667847280518968385398225521478580952524890556854045007146502169083806693177310172064868524332670800583194760509061451403932440698148659969473901118102041086616547814310734560968433311689210129765806609755424899306360530146167384167276928927856165218345174429039932978223182615331828512607435009180739251385123441305676215191331038132457115063399059202540194153504910152878731910401567027416571511489688185303454866036024845483348629403880445550639226990489179130859740803324429938045091449100936418568143139276323718111490872433090185120476342951904111168459150316509593858093566381906114011579047295864539871380704334301215665281188554678580439198026302018126331116767971460512162960374528424329295784720611275436715177685913788078148854635617998683928118220202431785122260592158418858591716696240107229415537968479324532825545726033215803119295852800151007291799958336321993244982973115563103404831748132912587787205221273916319222013030514738130124805970498050948320651187699257978263423722838127959501292196812157407821515634135404590653315134700509925597135276801111948130628068349914167607901555499307610385157679357051319802919001267982298471372923745426013593535099424850346925955394695639698942324907131696769964509520770332632674939388920140947560611798903488754962008417367452854790714242691589676000584322341860300956885803010220238737789868717119405460450442637982416360226784428572937424416924329321012173655793049177645206754578928924893467992317078794724976471255841467951363590514111756785305128385966834589187832190845059034460333238476545691525040881974411185853450531645715828505856643403423122992681399483909656356686359613234595761394303471591476517075400762641321833836106141883165025472598091587406199222599894818432543718777956349640555606563517328595055915672229541077317327836758458889691004435611027466694411068849952381172602859123818119909690864105820081463456864463199019585119099103390381050318672206216662317973223466800775389047786464668856440874280302345334221331825625984128583144266821254695619024389089544553529721629140655288272559425557567300634622340594428983545503630375054324713715294877196610727859182781414978225225842250363972755158703112285271410400001745667520992531316209329230570236932145707716880682024540042276551018315600060588073119084169402113537319465943200151720462789390597556880850054024932793296385372115290693149346437343023686675407644219089610092515039269952333379299569821386931029539552474078320594658334677841345064900197436908846768004842040120547170599567336726635555431456938688259049675884045768653467956200175252492120607700782910674677720005632657173083468047475880879220972657669812075741025322056597895507010206755481863273092465242776888609074703023950033961200387316533068076442616766972278296949102593946425535249888421783967975864619065077830119308828655083793601947678837623194116821121461881438149821624125965531736443547620896898810221302533495425139620488169785367454825750167946822090513117402223084711766009741979207768630386708946470263424116843408240810948467061741340532534236707759667592668498135749509329983114542274373039975358198329428874481543151968239381415969878340135846656517320142962553875172046171722756133997192613038443912035678110506724993469201227554299713993290159425903351895128035785494214449852636800111585606674667577255700826385457803500769023080681752385137358432908320110138566016206836215153490067071147734439521437322266923158773287733147638229133747943810730669154780156382179156623346526731143324345166159935116822886132188404818049876970639945607329694024657054546634845306946416403846926542867381401405873149328995534763005778296312369088171253072554068801612144492061728620158146619623085498753042296705684954294637010448298320773648395010226664697380567521750566774150944234056002548519508454598641670310679013339377515421587532123004873666208618001679600723244277804965157519658806085529729277115443007680443009955677812113149258668107085915593101955003353397930511517884946777693317340498851451282468981480002207674937066175824162794597186050849617503603505323288259115157686779000363362668721278109716293896535753423797004314719889039488514828033906889041810859244075531084187069070119896217819720455363670855944613882354396736488872424031714424090108505070381384727521049085872243144866134376161662672951762212057149276986397721768157210219157710937369121277555804866467933514046553009042519944502934005381853814948714742855570900152131149062280840721455176200289891451159417836714399817982569506379479481743839365261378254077197110121132976636895951576614950021040337810854099461941948512560688584323950112423581887269173889841242240671669397955455755205282474225531485998848739117029504271842146095057321768779177570614543129020758483784511535635099003513655475527569423517081913092774175303359408625840141603565416835011035787369320257313558957971315579800934907432798782045001268355275658419403971586376171913734281456362193869384996273940171531947397588660855941252421856898516616310441497134442231410345065428983528226986275735057380490734933029069831841620668910559859023218808922046540049770278716539674018524829229825871742675795488815063955279271770391209942587024926389352253407334002474839822580353925801632964754291631048008147564607139594214341107100367905858298525736280064048907069746631213045328471852546780750341448546334164246739244737948422324189595203260682753629961577678219677436236232072612441142354403284995236340529337695444866467299491367642985619396541773757633552577508217372844775514038875804440519806406189572032849459568768316425920692888941116704454915819743073479559429585210449130802652305657373790478924712557626342434309212058033836886725699677794587026455938754111532379279526461514491851373773710428635603904889531022616309592542036642985007500096143619010883023399053496786893702724879409891364921729804612274354661600941100905549031832211073205918822607305120022943802961643692047697308128190810683856120188472509339844595419512396745808497241157200817012650558886902360685976426739513728437617052457806807259734964692343644074646897397775174937889347039584388351769711303898805788559650313842766239459738772262326100986457603841077133575657552817505401528437694391202071566350476888561065672349571705184094349323943891644321359076098269243071777572199016453337747822685424574625678964313186017179610946987868849364386872124289666567950384378753051334330879052701556993401902732638319980499107780482647374915848328008827265788660683302425777274168309990547625232055093459501221399888146252952893956491080433211487140298969683130229654222779695982288332455609099178625295180993625092902988165717116794483563221518505753753938854132778394602720623330687608946861343311507159382015845889084019921243394539461538169638672840145605775491641336658983236906063577799045866806407425291011116629596132499027145274310097814911306359292046508546014343740701922370835505791114619879181705195362521309816762228497167853524731147847832362792407917289500018832503901816254693278994846146831818720736476302629386936293727420376752389203345756793378052281666639811430218534506246024255316744148562725339406099433686695318502679155415855587683940668281767492770999794513411280768310477686373497527144675476275156312918397609731508307917293713270954149457142101105726742203071111592223710923185937401391320475063835027219539593716500656458522245240413802227214771941122527304383918203821171759239375382588572563003223947362644365303156826471791814070322783201131130625703834059674344772338841592052347299886139049637171460364244519489923535650398129557074180324568913370938114840567967822088959446645845800598731606582049057100846457792944162094589587436486037491028815593241647043757443456840271404909475574921349158369519748458974974015446569716110688629706820784410868455998197188558477718893165858687721287431016823056558726509015461275127413202639529451656740291747294913589371472911125174282970276011488205047068016393583314397221739058709755187298939528380690879223939765785426672904184995973587459930483193257504238089114469955513022251157488812873405898729059668178469730746604612289195731018736267847694831600068003455482748987743014670958783594257928030390689176511873924416211501002789661313277915863151657430707868789885017029264733481534129881932898455626781230544402087106487579411472119492529282051302491535535687561905554573321302976605357994055770616229522624230257719986262823325578033199590754321891671838701525792347178078608065566917463230339959444230612152335813992156252101315190721247261201840142412912253188698228140807776567138132043937694054668387671698173903032695468680660450544406283264562563685438556876910213953132649561904668770786120046119494230051758575826875128422631948301995885385230263474312194380572936848659208232130690608114350747458535448692637348912284307758560894824827091215048224287737746827405447314175378481904420921486943990104587266500463417104500232759430069343928815969039636301920599548447263083210395490755195621394898085250618737087141276427957548959432052288923368256486432321317702132142279916311756109666973905859112762386544051476508495164629863224510547975411057930663617684594816982515738259970220334217998475629049430168435586592355228625331047740730929281047318592725692048554769672631062242169527387706889023003781650205257534698535328071797044871853844192954752535690742030903276441687716446855732730843405734363448137832505912171586516392541207138030045094918054731392323570132870273180605961409468015460016317495748868298234651095579836358360923793757312271944600361789227647561091749517258443998810858059987847955039231441372748872533211042870032400300325793514575011381033320855435069602619358686900735531237796243572770367843410457987109232317324925587777782628782838908946972255959181847740078380724635460061018337501867562138721946538114998774339721310984288631355471890377556834942966755968577087322554142168102659127825294998034008909836870417237171278199948819131319826543929487777656805650091850234711105761811255890135158998849985078284935320775720456234526582859205319395893370151644969123322063193558423378527999164775199699475677195593021254674211730322026664557675144176783854808900789745158020292014162293242377764131963839050581611085394047519773906792864382197125456428409860299741301749840155333831695247708944390328799610942810832600327618160940164940932454564421804245203462676613224708046497391629625967269563357473418818836148274593636939001947927604224451198690104465108326234842232994934413138271043946908293239727073334315993907590447251487416746667126913380035320894286483097155999430735594852265473581572509955491562121361074319210528206453656319466912297287702955068105664002278078902134082861219330492189996483420935461876984923761953481930101184640010800811045868682103759586158606245749150644489953414068629478813313628427498337820349717172960066672244759168127062372712148018005437948465198186786795210057574658396470341273415371173498477483216125020414658380750987321356924177086004277396212189323185956506829383357396532364743539484236208437755599367066422978371131424111256787593927942361326657120983554051182310464161159451023352176148151117498469907034480746441630954771066747456301876840994249578330617280554189785916431088620001954669531449907155967511064419836085439848246467635612354134427818980676910049808225215850284167936620989619543329529062797427495196133311369082075831841133877957747692968483447627922205607158719577743390509560945382633496894974547038187276160811832701725660483258339178635674067433210305258446170036803111873007812085391488867350966470025062539480194721836958702815293959488376386731386226660156573249833011044969618047533317280184100625938418141324305507118779583501058505021458269557270402226686836558519672696777106621804286656598661832194553472850347570719302041852676918153976531733327768971723626758836150245217022158613244408276963949991200786017873151978798084501517973605331040983643330004845013803430615477196289526829703184365972087024434046036115104151928761830199650963920279399902141056863594390360927221673157463254337932488056382783707655875407333143150861364712884793495898747023762179145134268988195373346619734548535023033673437124791475864364431731780288797674848829278644412767426285064133368212343822337819357721558216190714112781808489887098886890778219961033723533001854002056981156395065865869397647456559829343387674114340012029210407943169292019841009381751808735295069560130368794082442018451292634174998168450338856386246866702641271120934206079995069360143920110474873895075926492561669422601129943327240433349983378623686373905519731374759167414103537080016879376060894558301651881688229956852264877783884655067601328237822405250742135145108236586613796956447047439745412406680131885890932537356856397032965759908148679250313014359019407246622122561454865511618585407364904128650512949631767241727767223762782354949616269720020001567559922823111540593745219186191112685204784047578108326006858136525002438518275507100427448618526223755825176475459993189818160816367718706648998263152225222204060241773244476769846805545058383830929717230189922669501781429228123019093302627476880454922715418920339095618641329576171054237600268357166379774849106009852601371780068438701632653299884441518402350047817706686262385825690255832332901447239802669209600087225673616452829013767975870574079024438449286845782152799372842983643444397132586080850178518164513382884734827839824697239851544105808400446234683128262696268694002432773147745927384473123227121052906454504689970212968432601225751975572231479598160525930018300134664305228104274399597168393309455362203387535795543086411042592113517645177366547802777861030061412459295291129667728203956435290278793391011145355520729336360677772307378341091337716404545831828911181284300760283862484250505919709104977982633515807683460421849803092475015216149064998306013482004065731081698556201519276430112031575356688872994531152578710888304879987654250247603901391891017205182617472922425488805720635810317160040381338476900742702079727244980922309300932083576574153311035892761220745330805796703435211258700193942238629445568226930876647117481120177003925830200015533527903874046513915678033064042862248029508094955674218063151974513273936483434272833445266129240406647448406242664004998157233975196511213167160312813219270665982196304378114584453628929642031200810512041189591755242018532886312310987961835232245283907132847927002047305889955599171522296357418761002955840114957437387434900320279224753053451811895472701115471838665835434277774528255013810537144000219030790752978432848295693683556450690958726986225535610897774402430994259009776241862859082982995650392127602210760488939868804840979430161301372583898263637274526591939372041255893007587281328738981671573757669178693650506186475664372064833753875337096728231009551082538246655792341310010685729833617960263063496257124031886567087802727167778912586928214418880793808704548355193949907722782736676701730476945491633060788868835549035109410471699436306941958610496743813717619909006914290367948010284749613308880165565159092989818235902381868117900165650577042018908878409352035723858718957079113846468728628223938203592090202030239471900398625987199980966594301680087772742104706319059563166411413185879841180395292938945322117231958619536748127492336494437465737385026199226610233278193101963168294618049930211416962632932584680055887506991486647309907599113746645224576318860341189823726631060279870035463350531930299779480175764356658672271014016112977123822290623129506670518459499631200164704971564176050615303532471703917571823034030212740331666339100862015965921102653203658620961247840045083539027281533969788871424048031692189769557345315700979403442969728196711898011263585071515886098774311397163931250323230728535902038287312666430926222353844748513547124058405361545479385923823509866407887313615185762715159359748500494615926117460726667368744098606293146510933039138956903994677010760039263380201943140698331996300761078250968072126686387448524301446471508704157677062638800173133644878016391961489325998638576741362625988241958668444969716055361816836316034135606100118438340906623388438850673959141503519419865100292993189026518421007111593124904462825971524507801440926240736244518636168180978704598360976987105440496887710329167757802011576471016720115811522679754904321541771756203536979762321552783198681277800015161315178974829241923855828266080178655664481099352215948286574199567082222848417280695512394768180558905046710663758326636330547078855471509822895589789170225292994548380331022627140397390304605683112456515041283835852950994334113584788636791217568422206802448003828925509921792417884824130773653575784011986064705288288066153944366453353806698755368987169729429672332772175251924426294064205153407465787915566982774608257775811465004785661988325989433489180964794260360633483278853777451640693690067831201973686646775127321197978024764384773451875175527828701428439919490082327935268250387925977454018440222053993348186528461119627252916123946342915524707798770693841847635359652345477174726352590911736803039222541435450406330807870406434365874568726537385034503859148407133747523998468877286828417970237091095458546190865065967066587763603542532966991336440682266657419068751089767505011335930639965426441860567858227223677804861836966843275270972849904047652589040400153044899763050871021975728724371167924047973788391406167831834690401981956726652932715992140732059229254085261903897199087010359508522453844594211987311136109922196185888398413735352148698661915777788363000489837176887864826786126066877535481195565326881799299880295797130801091824033432500695803091955559144258464182574494437101284252185400009659665228757912698835283724820039456849834059057069189940320980276998053958879009323988579580690748443107345101515928134909196947832563355964698478272183544415844156035394747299179692527503839541710490637734388769309972397463107133077132649153718000552976873264999293846656419573337878116455880314360496405663580689272547853368846358734895901942940268535664806894851552994014212806806487363145494312655726821860538989365725508231146655329744912108358581856555201378758082951761332852522748630213601700680530028499470638802193187778483894356378192293847793109993981113943596968352945782368843926167979040213028598162140628190999620260604476861534810591171417789503913521506754477744227450431687331520643858470091162508647499402809611615847667041341327193549469062053773365178868353782765045314310183271138112841841046972966572226846538279855097999379054149944508663781627903126039375295992133588809663984007271513782389915678987709857260861240091455031220621855734884466303159779476571848038797900675922865436947790871357758475049279148161302275227622543225294081122970179917266512144463101974471772839371397010361872370464852726923666815901208060488786641450630403621976327646186217319845115629411624281668973237885588504310418717163264299433924156967095607654526931803148695554136061748134487882955723218170987523492100299531089732497275792516530257779205675223955609006021511793193293730241394306368985970487605636559689968720661714830197868563727140404720604056340301056395975322625234775538411893002455550081488676908200418074016169685511413985903684588043791711143417801848600166218518436862416546947193864469822708810787046458357512091551222564815343752961600900443022070195654314754278284812076209650206141144703299253898737170558542834779215414512912168905644292930222196723323118915425190256815873944865046707699212684502902282837076614559914232899140236541877301307648048961393153959037036216625212553035646737704500996965402178047220903140843995417162203975792465682481417056451073832659789048309509478812329965803199913541632747167307072920890559115778414117837374520184661075814400904915733792870421550380174088188900102751510374601752885761053437414271282542455169236548356333450004490533591433988336792255058804726585624444107464962087447874632536863241494175407727486751255353260392547042570221907085475239824367187839714422461673989263586417454011905000140324029593503544164995605655834111499762804569159780173463317778035304108773793443106537080991102453990121360104680741600090913608532414492397378795808005592040285490036557430616676531577605518182849923277959006289816026289974053798959950744481948851702392727686986996360917495435865562455846065793359349152242379620425822588100319176217727437956549751879686366848247960402122293836756548186850781575026902608740335553755760894316567227018004543702551445714114838373656551531679835323939150951403853436649085348680550632608420260552460998352085921029924162028816033459976418369238163469306713279661393113977225175018986519296228062263633285625075644512553703513356656453658527087435842246602842168100478090546448619895032144721516863692173621006815029149408695269128194724623707958868507187238381538483048862179120333949254221844880051532286089761644071809034313983405743729928128446381221593969257403204241387624797002567211496123536684169538050145760901443121275321762287311257818467582474309389003852140351417475432968400541682221531828115812250675083055859829399835012603844314385134195835280588294471182660321797527706744262788958407710758086710181320580136225069341571726910617400789816941194789568389433083105472324626427049566625430775408557572465634420151324111550032959965558940596910535466341700646109068982753479368952569499948075985438782628736914977190989219171940849184450489199900539836401974312637366196409349836153075731752625313175415155024875141410691221730185401258317584181450948149141620981100560646003949153398914315411127145528643871732676872918972942243669067751993092116310968353362308760259223431263484193397093789197942710215188313956552562709623456155183192240077855979554458623815097249497553830025793004123865521220303985746156046039071930168023953852719626862238006442280087463664390067576533671081863337123413210731341747836505716247767886868522563617802825368878935316138363729420924678389449576974312885420154515891247801607469011841451892330073474130384953041492026873135963288225370413057696165021467477016337909836905121333807334446396337292915024157400250717601955476043258872493975116958772197221368486894568484113481178883701858965861586730855765026566063687823330449358488455566101776623430953157855475983297557089497630236239626195521540778666857918859656452148381281687876407095506966044302500149633444706480685260196475612036563582833577509254373925303462444281431069745031729009742528536746659741687127627172834490461626261659731384922562605560427306559252185410734659088914831881503430492838077615275313710742153306098699967941143992114699156677801586716883901544679650206579118919356789394367787556055875977800228518454012905170741193924114885818560038236033162841380550620160408600263647678922947861238095739389913641459288657115973408380740857230710779168470287783822163794041819044127666918918428772475296743743322725105936916701787130271886653114412847371540324992328800052013665446958534377500891393914370590716936384066075251985878605418040357669395695821189840384742845042677809237011209442065301536221171668645232092825210668536160400476484019258988132245413583305419832374876989867957994470517401290716379244273656588367939337305338857511822530443462767537452493225603695884185635561379711948594883780019867933995880152321145878472131293868659733438848539290857457135247870067212958832651795932419273335518313809378401561821636565065655398187779212935647669304644219428883613972740272614789385630908247597787985669415615192795418456946176246353086617866250657149193629765564294579439936756528455656324151342821562348960638982924487413342895402959407061422734087262854505718533667802675331640833273021687837540925386486887700114349224873155876937109910065023705556597540219529504609770649800161620146740760632326469755576154010460339906240924029554579074539818331422798132909088708366909482660346778765533478137039356871402885859818708692363199475501780090611762071825145484004248805722260106414378617378368988837455808527437826499583743006467660054781023127318611888645950986018952354884987443525277720898603521020393598052402442385282785214633561102105122045197362395424500395751691325359295821053909750804754359023762308110149663441316776788405470465788099751714069006730861707356835678341759476793130905979453483034504033589612216084128217634384510569835397778678200422320135750513679541409605917088119169465052821167727432400432355669024868257231858871819480166593087469519744684464574522552008267918516794817383686442036178181764904306916276941131441375658373148899880076658906234208721854824954040003095409296402737941042061882809834714349174931122974852169678656182943282615951332902406230194691578319704180732077058129008615500761733991811378708216068471221575275098425847398286313082768239625963593399924627891048125981943862769163716496357513707365644168727205998691019427913445180570812778860807057197736919933605727249560009182787356653313219751113155313770684226202534379392038603935702892792390788503802922010789116391072788398636700628316414689469181779799577364332821023190415209557296373290149569470368279956099197696259830012141154370498213501475334219192541589630766618722302688615203669294438277128731267390746570818187889480934152557976098338184732255026167520560925797899098887354765753836400188380112039150196827463331955634489236143579551227141597090151570679834710658532035995089006031573638826316801721839027531700012120764537209222150687233095704601680716235210814757678799996672080249769858550028079819580431488249544783196097563048474863309474305582326528379149842094488832297036259350718709295862937280084881041835806528905800604510976761641858356234662568432382133070633070413460000918694271559794731516232337267941042759151271836751966029028463562185618014682655549137246306079960684599555535036927394707627407530986432564223194872695115909121751564343812025673611286552769893306386584212267492970978239022327864670411425641508731562702773941535464194153051470829837763540645298685047799242022999300616207633913127430215799398659800228651510840625911939012343544757669219735360482613582581952662230477808559286469493240406612866794963096205204165243528058468834847155471765325135705123892563163346393198997421302054758447525990551692534345582068745183095355523473367942830870634874587528436018532929499601397817633886602416702232244816148828146403839352694571928751259000175190949224789676200119654849133816765095633357328928798679248370851770857928948204782112423048356858715443356279954206521223779924299335377519007256516975364873627466276335192468099382669352844919349897846096592856180293663052213616516786964306012381677339381090251443114880048029284243154433546778993332306157331691784621704873658156940125711989156463993016564137478460520793876988053695349015862963437996166157930186807845364691108268456900414472613250538257404491807011095482312774904550490408468484401830853778264586806335190013958079603195862657909653866359425266000930718183548534428251345715512897297737109308305500298649351725848512593639208417240733840429062453087888379704326193527143739418925204767952947759665369162940531372420898406602032311254838696723996800388088975102430550898172110131319264522234977734362831556543348164660281306870867697083857538016508383487387719486164151191359753898828228983088474849432266682230115336618716295317532300786554662202473313932313586082799910741680846613195450461076982479545044730565278201613045574007044570246694239047177792563650862078717815781663887739351430486728636518840928704521019325291911233074315731923488737801999836220704905919144371755242656700847924366926739366825113820070199094964183727823937141956978310338081029904043593600367862440911793455342456550236275505141686465761668355848064243818420476411548245701638146124210482606212594336078748629292355729233847565515929478833656907870285618932931332034540038253757941323470190486587212597762640492184155944686721868623968115679679808888683878717299845281616189374489581786787432842881853008209957229109029225553391558031424223577697857274240276103346569658037347408901650361948766331919829987560343634924498485572729290030581801409682109402305374845758959157931927573620661592841145457438367626623489749541398895969382782098618383642032072451220039405479468988655786635777445760036217005408241679455843378647285071656972510086153271299123963345365309174223060291615422764440802551976231639905765712645195141393526317076792474949231903033551381100343915928627864474322392847187922755397646080117776657252272427305877211368329856814656143286409099273070493574239298105951928805933942826998067587050158790292780648314586663024859476570609370206029668828567323977641439273158515098641601608537102443148051965263632904003638676640175980135656477487725352007062415972849346730320672439706480990477060489767180001535340788861796752738559682060672047100396148693620280816367631057150786650953293114818767701546511424946834063429342411719749041468222040515757278086952823508881653085013377522933921923896445447732887127339293967445496046791506969911468920243554504092161333523251144722875675868767756999553866255086437519640206479827464942841047651523402810614546077057758596408891799032749807590520944734021914538131571300857752793409599684795330692986752781637303845067857127110390430272137908480693643151533574024765854685407683829756871433478516604092937463425361679440284196433803039558074979675823781488931909765101036424616822215509474613198693579702952532144151304730443933124759692504387779334595770719277098199322901822095992101188346680127031627354764498742371300806287689236079149715733312753147913162622059955342832306564920490616883939295737784944031438633254971502388278687762124900152121595662681018014418277935131610289772839736626873230453546336649251821172655206408618806631061107863875603247636643918900504124225815460949211791932920446522747075421305314786832883244295684698608059541947450200028067553179299009215249230686193159395677307891356182185273549241734367778682347019063001414993019060714671011337799115413946136936127444488898802033756955002022993088824837023435422558791315549898868107355862454398077819894934890795303599892934959242385560042075037835536985528350456130385668393064575585867228117678255942187476867680976784046787495365580333245555223080751845955686767975571107728534946161807916486103337008316884176836724727054902643387525766233742249849371033189372227435974156216056293051920240234068347628054487048131102155819315182783276537931727998822080805868410175123548038459065176849248053866669551331721919059696173036160696477242070506524174720093123064274633586408041762187147140869901286480760176331314715300522726617345167504160524997191239748569851580855114386670169175884932596293512263827295774753577492006518828635563297537959627537321459020830579012860127246103678201584313672267319685254758596532250128184603780543493476371220152334090899908030206830520054949742867595002385315371853325096312373512049985254335991156583361235218183964355505238208335175198003153905262736910585292420379335899290162091573308459583917479799105570485518390092012005362792281753133814727686995646195625678957809342663401752596452405410287395179390244766536978587868796861843737903985927377804079385519771740546997877514676809116074709890693699361648433488674523281934780608761829288273483248509230338104731570237831686756258831228901859434748141074231596625216212250997415655541842384629642610362979097912237862147751020663270695659071254815183160211429057041360565800979258670873382833914255599821351883303498072783278134393448505395565212456558761612044539925488495237455097835855903443400216513731539487511903214981065150198789380939879006060364658217378496040815244744766555525831928467660737552115940868099796270728736332091189802435936799825860257999046097138179203920493714606678380722160995522858549620349750856502730363782392680031892621642503448316928125744492073780813461338771072179992709388807795865351360752778089104819608014803292468003604149814488037482526744672206966277875278280662907749187638811643397780382071343133898838411026106801523701843131490696530704772669456760561638479178385643596611463577825486535567900510899524748833946094742152588351903278772718345617434112580783253081914585405242999736895171379265875142969796676841483547908820213037717853728608822989695111135996746616134527855472397666655948211636834524104179863630834335245574396810671857020223760717395445873520026788300947033365006849763000922721238642404621829331276984244861648747693188586977440751929394768327678344409411187678903826351339033134201066034139494261527782510071120503920586072270174850447604751655672991892236173565109453665624512731871776794440310739182868136251801513358258876698953027031407837729140772067626325932610423821217064483666629623156320470844245102896641380967020532535967767134048765063463364052908629183889878973178900927498100374152192978879965784311072903308690724820074857017101381513519607828883836330040001858463256003469192038478283959829870926980356785538492611691683895737722509022841374911459445200909971431455242653471712664378585463991145962118635774943935870477525476967151722373670201436686397127446296818336746299388074158110980655752844716289828078732773600989474857171616869643870908989266946947113752597538382996362899308268907093472591989924688205723488504134791702597065695112590894245332987735207003902959371516664772482779118427576894273092844736226268356760140860416505092198356238053499205926343716818559922315215093172832579039207165913522453940369176035838931452258759178262092175131676942372861300293447063765364344627061189039647336903256244179058006705763020025608035621614596927097976112504126904668385443298903640904589537124238695665390652926949443861272542744508508494659590743272253350658561894351352767649332193780442760676225487688502122424213554116287660429383247948110500580555556180407499451755590440062922167787992558051012630591757872710861774319123044980741377277395675789485685490629995593728532632137659377789274875115955423260107617925632215395516525553961034003422333298414201946339686198510495624604507834703716632128214225931770532778100890696968082706863806547729832487337047674085353284896092293418035985528162883452486715914994526219036254650526671149927775708849393952272468689135688374106794822233677101226380285847971473431167866961229184666527752342060852432738846068034258084745765090511770166115381942213517598694222345698249020128643982009901974932830971682210539498538757913907481285082659779102670864250549227231904209994206036805284775942079402007913860625071331303517397767678804085928408396493169712167436229534530717503461231508433277648022031191589201697810527258520015602518497692802152706895872900541755143708481029893102683240553875509602573195433646988444210279436626953847063151874111979751389892964262263207546489061853042292898489966824186750101960830488993318951522952349444394870467736934028017247000892647420331252977636080117125531190911580335061096318924121707815671078857279986043687150960851941754398643534842050338393749657915853103342883475733759154653460500975254481415668818727690090578908122501730374843015389279450390334702979186711844594336820186788056020466356966490490904845003432848938780512096663876457786824349518666652649256940437512210161877302641859494790509052883419139655500244491253691111446594452196361283624301569655922922610030257665499181037674007371439124619701353665886760523448689556192206138107317527526221547363550701787682500163252040836899403284456796943327739640167371486297164745216060546381999221704054344793511858327177641607696071611038362578275676724882560969596047701946618132688712648843262952049102821991154454968939136239071811551168763895463510190017520338010729963345813588014296562937166967337875376851438187415725101269100839987677550263722070519946394885698818255279952397304094137830434390248381731128309510748131942354634439178868101282697512559839570074196425266946034338539897430580865976565204748153956144516875978147981123885517748538452830691842533052334389277217565148175220165266308905858193597300843464648018141384021674614941321623005700397793198392946483637821406195803236468468512612757637650620223713909083792434677134960744038861859661303825177231858211759560494832449474917589742991452443205316185702583522985716451002783635562365139373284353531392066919670143511261835142879045578297854858293871426251766034847314251473034353423816089179037145780480899248571224694708414798616378365986949108218787695946741227176651299044552887699003232319695541913182705117281792754529996699893097855503742010212136794327558245133444097918143822529866030801619913982305334539860925834551569897116889062902402245176748810001375325346972157842967992497661999040450349688616391314932940275127386236430477804642902461332109806901820516019313923749753846030213006947408200790367060844333451555109997897027408222343463652565991119230845987809941092307860646534020505498516018239280557919064477077491955439190482825853302117550529361346010936299591994954635121856176915518267101278396470490769452601626167080383731815470030149981374817733134726021613484953278411901589096105172141532125447594628332036613370101720672606157208454976364412414507997462096305485065504028811364987729590920350789338145544653859918835288243279755967594279665139257678975960522639807049096665606756989199252523012283586726149989371160735756974395763325556288038037519823452405290776565670166450282539900558384709756689759177549025547373799768891023564817670016418762572440933007389414410623932121289248711451509162071438691940324763480936693192758343658002560232338854100251484085004447330436283844373301839471907626943001488403433200623081621298272296974152891584471580807390442254277354725888526559287874380513382567670140222062855876734789552222459172845107465084227587020200907302671915292933040491459660001200761258102107792785316032834956720605737971786366314782184362485573778953706034182459884952024926997043508992399737654872260606459575435676207658837452799209779741842960968107674403241942078763458630947146003755035290646531382911178670170020896267036166694494706985825363668504948177649883410193789054042164115187444695075247026085267455858598445602995689090127725347211518018415781909520480698303940097398400167631011582959303674510268090647591635381352413791651888187472701757046551196358206777542347825531337728917338710094096852087201055595030231621891800156175177074986001490690521109892877962444313848222920236119196320648208470890047312728277741030358670269148530400959041505807397173066203370520267643388346054343435420237162476772595380993809427174377676731898810766677266756747626231079766683074991960139519034746745158351724204079316725060153300193438458226071848100185557542079095406800808466042697458278522144188806756763507299982546637708820416643244392858622697214578739354301291238257720753146952995915312761066891777503952254252907551383988518200475857485205127937984997410668246778431016199635143371918925650827594273453312889093393046925397053709860059618958940505536702106596874056675589475424705762056611006901397307468953885956426126136432856653042633427728020189261500553276013273346921652695156503780380194026254840316947404247850943833298209183660502568265142630800688703439954574671596318467655013016353568736596104459843143625034861289646944563879077592503213029359065054368604302007969602318452659929584995713896310801279704707879555019545601497173961773370342146472326954933564916097299300532131419250913544922634030998608211673656490721185273419501829902662528075726167432260299582384706938087159326007209601981750581450131524602194276591990744439029110127573247333441954285264752643511403424888876988425763604379915044572688943436157495208736945285916641636108992259302595679680176099204119168115736430636145497122302237272787725358169277738806956767577621883757417901277593198195753459247987908056353101829519520594204596451690216245450189542094100381373116997366885553438781774987886403512947245495679819498958166309819303168038996501979902876374710381812131554133667333097554457974462427073839840306993997422062853684064870393007029268760238055682957796287518262785371560331591431848074941857618404770618134921401354522268798266248603298256342732684085786396620130238031998140943516023321625278104295704652147678924440897237280808610651076114933178452433339818329131852919000505262008913547884579083600783713427541578356937021476060620645904191085044357007974666424706233197976444217304757932019765643210986619380807545542059865403591202318878158408198923416149793861508284528719523679492789395164147925816353121326481990645619439982103192348247305105798675536160375239839558854773139702407306779354768852695574276508061235601539884809803501682309527480744957113820236446877307935817289979411931592631438507794808162903383354123988441097965774832542270139033838661238651877565520624469604389724181139985759641836547444918849995743443795300184979865671089059849483666686210828153042814510205602746616771553474659564864048018263550611067571964551076433355769759889029317604878640444893043336318485634588093556284724236497488158800829106005637496552592608081604654993508910620285750849897093250748282611840554230218112983992758011079525866785522587135310492375988615279419698169334938670082721605748977245035578239647991344556671571168495663927755143704522341427244971336945016057066741883538835452133875942265563348693106112887187839946062384976424936273338073991188941061652149896429096273529421991497998793577488705362514683613693116435711998986509419459270913203869280367124769983904459514386676828551666877297202246705468349992710522259296461286686852553106602927922802870676111434267758808951859978990729547477262528975676587572089249260531349197674373802697128059382678899338797953211713519326658247416219604213789469975366872031621232789915845152408985613559527382904736168391745132061376897519973864671978413991576583592616582665825042077455200826356027763634496655629672542229142224300451424882252711518394469871933952919548494038972765696319261323825856058984169873453289444470964364042205465149411422775383711681979387359706599642839036763565507239187059359570801424766668955128878598178033887894653600763918330553495000028959344707685306567889454126895062224958160118763506829834548378997224277301922612998198879377557782784164276343957029439153831734075387858887281255229935109008072763551675109825787271575481391132777021903334608163306045810720387939354409478463371157986153385366479768351944761154362489906921511321211735123177651582881300444011980682766374702494636455728713155423508701610764116790527310139977533155887195846118599767676116970696654978120583423747260536641389333166799000340875227044956332096101694024865598528490231721445920457164760286785930028313779804397208798836424387417922793579411462828033040160898454322725928156436539963532056880734888235108940008777024911189500369067851924526627455557696996408886777231076766356002925241976943780695422166279289320308985128342920122152941037816343992326511005466111577880489229221585497501183968085693839147910181475350345719515558844241501753537369359336974320522817163125378350951473131671445717046423829769655668641317725619898825905563405731651877817527592589206829057477586759984731100115614887546509641763456655212771529987527316690292530379567059626832710117394091381548102139723871700661052846473759922392913246451152093088775192314964403265628742077692265425671099412437393464091309374158885791747430329188670265059202284569930920043241606669171167488496446217362464065175548480713934774455785011080816945046778529654853928174442613227541601621816498998958878259685248474438341522887065869517533087158536134860173016596488746692419642548483098050601052330653262972748656605950745328693430276642259835516777554368608263508828875902426543102219293005080370847790205142357412612643488912435186674810172620989411909462859417548633403143970655004017920937560892908765867455638205292034623748495707539076859812715907791212348999042736459944525326118726517806024145541319195502196569251508352116361472153656808871992682074146376070221347203898102047788291807351320441726921573376832571141754536858160125069980240952924180194181038217634990094781564688115606952805376266331233863143721225325045628696124019043234899269117241099219704129515476767246635056079132770405245759604594114175749783045247040168149413459063060258493125030394775541136711017055557243139569298560242983399413736503607735704935033293263498962739569131311988592502292058261476610683156268241512545497483914032857756663141348000592767244763880422289932468780943409842375061634744065463640544254772612229670623762811726060464669324135111455049839649591160356810218996572246493770646909410017918990934452444607576553914936673387082989092911060130871278321782072623444330577551526689232236036462536472622168588239835330355754028644569754213361605100377512819585275293465816312668618379455337728392731455419128198096586589232164627852087503926493149061229297383093602465228720187601241172772313714730716564497441950398381206560269300575495623113904392314180262956673046070866282980205462915504427234500901130229430419463273658064495091139923088154513943412259313072540160335757315774539115010377273786443972129262240076717007656132351837431595247591720002472483734423567143428575408068783089398717303150473556164836039860733334768295931027571794148187984139546967975157351072638086414272869034895710897598052039488971417960960912418642033694214565848202100701408422472459397548220778674343675164820779354614944002196775387900941184697604508909522750792257128119772734843169482806148077479411236436282891902103382805763229595923308983690856958729321149696796483623124584659306983366883069365680176184023220309003483494468159197148152440472299509271037852477738627275801182034330864349516581605779249222220713297731646902785519499870221090328773553774131662376705901094606663871239487407632507375813383347837284950180743777747319838705202013477256216852374348151007024956546716293642709261842112228918330841359275689530991237585248731496214396050704217127917424594288068054849214205580650544248955401881795313584819307952676080601625670082996623642115622460968733994412261769133142623610828517440072345397188771190230908875496602920079932918205998402754309453962476233947555495881045665465935463199621354939204244653324287294924362616926825372326592256395846810471239436330362736071385346437403409433298380845305667784182204721621375208528613550852095850897260026528007094910430685639891448612948685360351607737040474477333048144566188106976647982993120871254259009726335285281334518744060145475477144500032188959425807805554690174745769122442072471035524355058403147753738961088016788125189661193835582998493059721244068410238274304385428228159271048901511228134274236268864322198987536845108393824269714232649329261927260939614886185615278263669482235076366312200258577774512642141980609595151870528934316617281396639654371856913351134556920276282688484584401690582834369742744844730626738823632900073281545921202726402429452876362394696136806938419996871023275001981773108303682135615427910794254805117427935466532997824874019997762624775236500164233851212559416617845320043040867601124335410823369158025369175808812099726685631494394491795430359645535238881524942555340635915984781513815174883190947323520182224415020267645369162933890278304493434858656628865114075436606156382443291535901008521291389161615919206269219022813332491771765502753350142458282952624201081516272159971400684186387995217069414865937947139438041555455289740750459916989709040450272254439336483947919392230700603854735130733035178560165479407815062435702785780225750997877901902114442860272056145276498290125269074392150923507047131772068981906209961859851467857661224236361412387513038359581238486222749396048679137366665366048481009935986846148011994235577124348156288048675376813686034459924195017879748236726555382021212233279484519235939821412913519474374957940513265599422553541430497218377611564386470719972869206605659867989319676231733919787715840548901662539842306375654963238352083502082857955516821612695424619493636413526645132810224816287824454230471382536538042695748873323027797766929962863296720614471013948010664180283162858948964770697565351163427256910901543090087254480254950992578413297993157754479339253654114141372522848709416655898628054318820151858364093442844882639902709074816926548602951664381634227729034657661191750125537327573583503800909160458532487396362970909059846394809593539638779038474063033589383562173963851664839049695934608551112367179006873456172161972145877628949374904080936921050403193724834089466524140647197722683271813856510572665753677690633517308735015901531599173331019306171213090402984651415430212393114671580898207407142455970085052874263398511722686868186634814686281485762136194989022053260500173710877483316924810229288597491331194770113310999995523682302978365812582446686968743567363912872682747613092336746831194438148605444427861849162569272227401757453645945835564610273380945769856474318376252651414476621782548177878713996775431881433895837514111853608804527818770302089129974392545401906071014981214757505798885299313278006044813780477265719514917603903005986068916758641444583568520425525273496771382501842741451834375448163322333179604755531572936146137324628166398131211308651178539912478645273631384045154251725220453919319026473956730862985824924332704994523018153779737776337342143821105820531127246644708255009662336233914136109781594973809174942673087651754178443771816674572630240099728709406384971387208420943128465284671708103723731789114610221641309861806643627222851037362313704677924682921650370784888549399297784134389190019586528017380988339346388336228524579108262242427230369710805451700486098686206961676949014534853014811942500516944288386568593043714630966775250682278746122781797757171380027688786201948834566256395421579002183344772281230387808376751398800717599474219111472210528285661677529147259240806046077203164783302155103017620167838252563978257336183753570290279570870582443872155611212731638824906018642085138630599967965780239191127993660147293041290171768487893098520001765292502047734475070307001871188267741377300794691088344708135015899002902137499000144985545224848745162183821148687519139031897048461067693797025412850145749564359983096938850932480679368418485727796216541688905487724700163534419483628576628000772494449343656910893236593775423938667157640075678077167323899134838775798043453907676861088547259160126686951468961900026811566107465655964774662413070419675052922267323207310626198479200595871575862340462659964257268140705273092506887765842205376272373199117935120012129717095155014990650602733070025043417028140641836550729969653362131909383796202395603519248144669670417183556860633629959670665943922226801127019204442317328765406410436104216019204648387495026998546620351974149117989114860454723390224456505828338907873672135767567923793664413099982330444125774224450067450286244166028085692455157616357319411648759258131083227625279051018133413537731680000744278536794806153078029830898369129575080183634628754708807409991920906604648046177767625771202019888941378640626561044281919330439713288316580802401137838969323942184616543660104518584679960618125832606483788394947485042937090066858724669003285000965324706960750957683087404624214467930682333866445490329428510181554856618432749385157744029390286776539070952719468118267523028895500894830933548439157076020295367391417921224267947358719671820597860177690911837646293797729549276630685858454354461746679793201352272906548247664735113531622148271397908072542130286368032711377565378572071923705104893325720058543610270231549061429952249347771290145008327134688427503932304294318565410833628218493411230259506691539206069201885315412558835225873737153678611085422861711197290035931728299185636920278083593561177865284929042732765445007547169746774947162771511645298483379272687779435635169312485675242447598000795215450424344399502144802360712311599992620492491158258141640447553026706030502409739684032327137662810240752126843454885658439314237624325105058193569175942154511898869799847699564981903156318446907990785625587038770709901537810064557541014763580124124875446440489020489706185768763069718073558106107890669479898022673186967898643450704582127205839265692078033220358187545084352939171537267789089333316905685623317850376548868138509399315833174788776877734499192195693518360784030271637693947538116528006909360722430079580846724490888391195174886348803136104895936683100760428989415576132911044787938065958195425003087358387371654928628488985076626049333531978098213467453168273028058016215780445826730441426488375002180064920941903197669971984086552656932290570737667367930419115679180314842512337765581798762536982632792555703108181291993708146236770706992806018035562522076669861660535223718791230233781932255610584374345260985038136532528728058569956436111885286543391888014801122077165501408336430122178389656805897344188890669403224635413399366473931829678289470225639561484604874665649780505346619861468054248589617832790209194247643047274572395388016308957941876902042235516316948171395546513274613208878154019989739254173325210136376772087662989808110912661781775203884384576246407507832278333819072234315040244614188793123551517297143011361406651827978146081471633219202680982247847006059798521593327920651956392379047682829201799596661055165148078172937496653203514269807738655333758621835632626773934287524967840021908729450665911130280187720034006146008842268099618721815384614465101132659767999391736071095211925665301325035851437823724452701292871958536195219077993323722772250199126710888154964104706828766732475296770454828145335840277441184973141561737970424290905859900793411156834782228977798204555347576759483509743520762821181450091498253036453768239846502693341732300573159862789835131531863714372413308805648601240962629931734660473381491335180315814193051169868230017395739329294891807405564425472736112248722949315168890569924188697134499613574796160357593952273526424723864618885559876883241052488712955594048314901824569099777864689735471168948925788819185767837128089811639005678016033453283899264477837677931768368473598664245768061672812325949033564581940433007666907568712565557675743417227589337979230372278600107461435044182641715148246273059870912892566265801510708243705132800824641528092036510210932496391276216067536356725682322898467298128913042544873200018039800389595332771374190877951996343213555872087740650593286088026305821760280770612998661751843698262487164430251898849777018039017954454591435638744487872583757171988464448884915401229461403046048603103342441095925612759611205268802911727725000458270294414368011175906373943006403165871052722223847668218332686573082443431661713241873725852116495241474459376170458275057387921973293258662224481596516888354889893147001483778100799223248794396404103356706054244564704461807494318571081115672708404303547009399714968491567505526076054077636158577494833093437911048745288162092160958063467628327121937219775388592343741169401577149496375180066831396104044608727819754351988696035735623944956856794736561469398990308734812141297121393899972996839627915840905047600510497557559226316672756090612008319202963480690427749525082387693155768246641720660930758090492101072837707957124659010780845341893228264830414881685113405975943417988314595836184556939866453039422873618442130212179280501119190137047160146403798552768202543926292546784863626302348214938987516024819626563952250454065239411997748494875401377504862631691235272633383020323071177414022634673476464537314542511296575399729310552710666726117580801098709040507847628124561428021307331669227405227012098049407814796723844319051706363706470378746052642922438707166572391559535855086273749713583504155153249398647111341405711685399422760917679347112721621756237647953883742445589689562173264399040080968545430332768036317740648256279130600038691626924709002182086255041752365197865798139891854045195779704985628108926592714330501766892114847824305083555999145761911505634863507246060822971851861583837780016676486641771212507309373917558734117169715622530302854956832915698408718754297693468207039326461203545145150830887220461587112759738449953725336123096713437966855702869974437252086851375450772681838565064676179354779735606286194071957200462857053566080519123384919094023776491007892839421166719520285312384089405585662233061583079686540717167529088169242333754423506178678342342076642833006483585131211592379826113000493631978718010194939232592931307958615973255481813149956833875013500568043357598789250723021143664254671511901778055745458180958000489274330234686787580116006171225539977125017704648874434113544253875513042231912411280524739841755372324362336606225410842152976819695613249540717684892365469901209021087472140092467624040450771585014773521766523378667960505987432941256480066418217393069020630657336621430066466157048138408151832078727478336652364707428781167787003565832600204910853261800430117571884937202946616066443810496368325301046585114808586359462972607708484201665057176920215001046898845585219824919997021362872235920816507015935323359756025524444598154013678572176930815729920572488046953247864670319077005800713898003180474332305966224884929216949600475618002166013768792407686305483321547150061182865311981048585306095801075695271735944723943918850967744467098870136131442102660581300050274143241211772568235223755099764323428299985362224547385801160050373724192684948440234176468433371930784001473589014597810125654227917536977614909634376250195407966400553455683857383269636520150386239656902990398031700127640142266219155285805656404291107617287623381697527442474981244255040252797068322874063039884349900665020307861154595972310010797836281947510362981692611460212524721533737519804017480040465796474737085726312197639651661598117630573499378852531764535512691413721577808302619372409410234984795277291906142098056954566518314956091668298397313663007637830552741200178692029848993131863850939639190501362529086190886668193912365856079045836516150246795256591507741195911448452563096774724939667718717985633929594816122064842390086822534575246580008178207589391063485321158370354469065517573632808550271977439631922268933904301693102939920326613710478527034791182390377669432761509358968132253676963534286837231248221916775418051639966384247210407586993618788690977893632191336393523408479535761033968808498096475910324994119981159572617975072902800263958673650548318963324294637813999937337289439166293455973230970836033374084258013605387971993804690128549698568276688890587162764489083895957766351023301917202029343129547812363759051932430356279424559238943802460693340412510547466188251267986954268201653608781716595027916169260989827503067107288804543857732680229472713002290355281223313968935659795888405872160969240729358373590962562280864985932914622128497165759310110151547702420018457650490557244870582064527104728482931534421215650004634500074353368067452047613495921140610944783613524949919995938182201128090816740853257294459308095684323748737494352159368677954379824609251034697030348941262681116542800096199702085654789002706825407559135263698132621446129631689388059295215932599058507210541165287198038736995118279949111368426150602858290924780684086127564579613131884473441970799196273974334873405774806833863141556838265515439468377983401486386112993756255410021634788005557491832018025874842231113317258456363636619232356395968632712802928897368794267545175982115826825505273300551671175687941965562773392941004749092661657387211827893152958325383238603584579852233998651991218157033961644998990391603488782569112673736467341324482682659042466488568977769140044244812248613521219880022930744711912626119780980572330309997545422627867941029748636710532043571480504009387641483226875191991757489832641294797453162417817592786749785046700960958397681393675526340400164933596078323295301345318739502521679006921035048177126422265833556722002691562266667553142396635510447527132556436802376576942643872046493245683440678970694917034597046936612467879314616719679957806124071155882452926499796965392602672178394473926212127005758952563537403830352997646653809794726310729002513888037990255518855034423474097094943148296249588052433812096366842470949547314724693678859104363367376098660636672411500167690747044935413104515307632047062408412248165762494675093074379213589999553835480300704737023215425470063577216011206500019382938467429637927899841955664800236292949027247453939528815434271302985259938933293517013448177356909218783604955158628737140422266838122856958203961852098672304576947770970473489921106834055375236396639051704707060756698482460651030519071569376205351741994138968154850048490038586783184866314549201438450925223444319830957858151856082513761476051427489438326821584751440151018436414887438200406600839291536661638558496248250708525373269381952818005738466085672179688289741422550633832193413145762495529391006211017783568123079275782871823710449138340540973351879661661688396911119213443385094207521159999496269628040154384015831835935601772943855262267885551210327805551484547992061982428314408287496371354879340863904490795371344823154047686182556523011226274055506044637860076725633437853536707196727382685398203446999451270901307938384640865840340628194898315117266123614534563209816345348162972306488308784762648159155429046164490822657075104892284537598489338033993829896905295144192963508961224737087226157470127105934947769553516403105253839742313571792038301647500676068030004672698197396401726619225237882914442484284642947927792857376299558919986469671501721671676354930170591448464115083953064107552835387028534842431868698142059774659838350829222518239496062998708935770808369025581444181604189912289538961772743351835887664970645417751522243962161524298701560894773158753844607334392625391053349862546146403052131562443961373952981808944148214224386957322394911347648947577422082782170931988364396100889772962758130230804861959719372470075150516809241339771555218270054973971473621257954674431324150029591729670631417516309917565903383398605622258373685540669082016254748933438084399478310104102222358941293973690441463376174855040454633920459017396765089030781695257539409221929702127212643758844835639809179763397026377243799756933709683215804951456465586000952345058820039624173140309590441361621987099254283175407477441411544882759320568420596390273251170368232940718695438802356447796163185812907375706019054666488919513126327206358943952566400055225266084722283324518573849040363880782120956325785171887292712925799273516287876075533794900408741106077332521902800703909237077023143836315473300442657917797206046396915286937941849080825344149610078027585080890454655431303109485230874793374205864847926791899819917602761239103618321858441073835150847683830555433775626012063553802579985806660503480062961039304385347095508229732657731354915375164426440983884269297713835521574796867574557582809269665142189304499327739072538550116952284457881441517435188139164123022227685267694640123243066366268558971492751348431237025104710984063618245047240182188041357823109193433607612911497673573987539950516706173720314438620210539690262781277162202297327810077407561840968614761933029819335968660143138002328139852525586678229580179569522843791029228639113380427897362536563570213849249620399388885852022201273133306394662021130068542054130637936970023747892111374658166388092758232055099206526544126755877234655581200536310524245275924943291982599471145270109931919110187776180377296404623249165736555977089126862506905686508945898831685284693699856422517397938142948237537614911473773886824662994760750504818994258577844948985014028645413561031522393353399815933877009994090039122816077251479677390408357965091660102490762155383994779382366783801806559110179456178890056975075337362952296938827047354423777037240615986413098398923492607790135783021258132433150895592806496389736659841838458978770234605795244195331799983159371115236563058619250125155411649715013040955148047646852378340968368204024446995842523393013109353729326783854617261648420993809221825388797441521959959821975120169721391577617665278804626491829080355916262305632268953093100195738529809645231493743911799494407434773535329602200933281110295699374651911632608455580080820229378351269654005377735386711667812986739224183747485380958596235541940911083570130487751715736147801058408377955786456425518997171008807326741061619338678360863889717862074585888859779605007115145381714484841876469782188824206605551173097448980741948693530116883558521193281484312080685351643403648184701769592991621045190571791610378829864094075913850798116482110243633075070438114118005051889901222838198102567328926242924310175680480265263178879497705349475588982891579522610313989298076623632417866548538660824878233052104393949614477737244832976882228751149425090316262871245415932070139696622869881145478393567173427013976884807522458964872921614008859597449684883676776630696455100229402288249976219623958561755175803288410551507616009786555428280778697910061605234725972577731189989359701701000254935658429007094171786123312354740451374511886959989679389104435136707535583759771326172909491391633541318434415263381871365936751095263954429729727404747396599036311548199084086758812762768230148895311074105005281907513034276831051411341242316490014730078263574758173278567785950790073596374861543256684027144767777643286479852639295434023900142568136344020901517843877495949003097586035983993769138802317037383404130588268371384907726072513931891503762727497126398835132517481422530561147743164063011321861938480641012877320921589109686216032902499487314493788792157337610998950158913352914950700069273298331225698784610828707403297499577677845185765538512374866515294926228309066784253767268575773893187560524680730235593806212661696508247325786822911406844357718724191325985676282069175809520024941067753007057530611103187822662546462895169255617985709978546724478052237604243952165092026643587550205683565467031387052568477372638779366756577374072806203870502998971255690921124577827851989689263998945176839929080402097291830510759015915362822954443168029472818354280026167973246870291910202348309050119266490695827236019911143587456966062043005575355096425190138882367898041910449010886489329479598378382057097469058786113985669557714111196063670811201712518596886638017092096238630253412050893695437383733776814313472871275319458843744144638379042853784376734838641272834088936961205053315622695964166312987601396320660456651884120573832564406132553170950402850324104246009108788465347953456673501997295074529485100826942734527750599332891604100891649581460036838278045297746028649305407572936282523155526742546632258822645459335257709952222669084126663683531510077169782455105782840949415992972992888173500574953425485263017617380508982894447434563529908901111247634360740668871118536384688672146138329111092223676229701279163426081942413784848363950611847271453975587390021320187059906993827771456080339585666136150379174685974943612043783176311269388282429215351280730740431388103824204960226026251429513819122257807193515111751991636569461362259456972068827439999734459899718881300969905241630658399896287969888506546219932992405343072235955060266274380862900654022242544300602388574321255364873818247352976419735878580518011371656179493878805918752604474780015651321050869052353978408494202766475156696719666572084415096906888059508591223359765980099200141215049507476009030813394143276852892443442592028166867436744484221916061771191223195174116404575303704339892095104267419880408985992574411018167272498664108158395090930436580973077260755774133512329499787122589083826908688819422958654837138249090421411632705169585215764642735826184338703423492795092556912463720893469061827636784813515384251988617885224392996431847445927122028559293015666506274444548180133254228011514494504593375597358024438947928613253822151269897516353085492283598631603423234686325142075185877555016126059785099402765524640038084401760857833447518603926775020170425178053037570509583966704820673024339338862233853687684219502165087564043477939175124374140885449739108955785720154245420085020180063314824937092344579886428174171394387972838561022355441971998567779234912544287697073440284225524335262878781145346888549902523877598833576157083085131821757046008255334085978750525755209107236224791903634813682660337904201369057048740219012629009654245175276877728500025251847517136229375035666676489170406029982485184224040442384184663038901848101041320219152876120637466736442008567316747782470217945139565335445683380604156417543448303968397602409066033550351827352382138741984105346953248447726246569944759197153105438720317689952440989423498105496410417806765979703771998262342827819922775043134716951151213502230329293502773367723780873393172174242504801044178543798839423554249802283313200871143916911188484326905427318017962158283294231002247101047405624219891136295447609380347667986292758323682414644987273532448922345510451224129457871828161621797193829411452863822461353163894613943385227795198803829477239193167971719120475413531086690336903047357329070533439771387851886861279698298756087037960198549891344545525743149724709989799480894898256530962043211038278159432081703890828765736962815607370155522994091060059488232633165451151561187710395791723638321955677539634710059667730621387346227074007730670956642817973819100383112652123860964468128638472773769714365106011793003908277235127642851433852296333811264453948880548104574772964365860793139086945036384454842319927564004535190949153963045158227474641320145427021838879729266643885885529433006487196239307275589094057118775056029629744947090392842678303046652950806707095677308611280532089938974248422522391276804498849798550926008364757373829690745435781897422288137186958546362723811918146308387814177119135422908168484283619862704620231914590090935629555839200205709992473859298042782024984074458647839009206854424634482770390603089932329805562712646639024384672015549951775859634691154897593387555640548119243076922781724671814798950609385262558611683253873314831475358902335180348120822524091491382540434839204471032845874633401553827556789376388717321577793134512255862205483937578689586373837495070135237865003238734239249715316668959656959114363353237308838472486942486037631242118288025150032273513717043925472572144440980773155013200299151740614120332508252302034675735049959076127882851544008798512160656414564164077687696555123000614912423240700966727887420820310784105388995112655044894131503191704103831213361740695902738796568663203061138309476133404788364161419900125216126950636709484283194543606079134609462513214346784944707855304142372118962130555324461413571125140763821217977208660200801058082114612728712935116583873485915298182699239055359181868908401328898483891835570795257410373752499968407740983801979347009994061311524576230836023765569270718024194002278566870255001052557816843948474709881704497161794751341277007752280719601958592051951763789167212517207356935656796362537102714860270459984606200411239869058346142950876524943121179753621726617828418958854340760086708287520107443137465856884319954262397966314496012022742574612472456981227172253597524199613775851039280254489177759421595189626053466583011274710684820015411203802158575709996602692404402408608422766058455233009356118383022884481438906429610783552503704837410222430918307171299076692690444811972169711554842392692648102255830218616165274781688797516741550532173672222886511283655805785453318402145823816396238422334255999673702365229546723141095672307738224904991108023660884878431704357236504047303630069545689541975532967031239347624189406716291557861509653054926240759309889022928543324466205260659138006678495925941324834108677329731807357252880959149828203717346918854156157272186660438083932684979488448115491268484870959457470334147467512754176100796499757410040341627638910475412501421161873863422601754657827900869048574306999890677233873995058812829741017928579965909115578096985716137427106224656982519727660923024189980367758025891227170002228647542133309128641142427870080383662818682204664165834706270834792807124224765285957007476744526783750975845329190412036678493273269086328663675003436906360186416097116433572408117457330465759416581838776740267016958479092364584517932812932500120323555348553167396342855533238337702843052316776272959608632306181923982638037333706706332310374197331488894459558380641585062061615349904278897086215924631974411895521409000312144451325706553980416780203443209355469528635139874959949359377125528174163931212804102212063859589255618178647713460104347322539836506137226488055020113543563633389597126611054145461199314782729494454763756707956141617332961201836521101215333239384253558032072754400941356262597576013363753762246282922317040889215536261252506627228659409973825727119879081361158411653575265085173393283485448831575438184154820252533812752610612822414865655888489585838151217678326697227041823141379225390170954813871985316762161269264703808852796125461211288322245454477477402799450311327277004018514168183358935317864122144121590235389092743326024426575295727349751518243119967239609069647234935954597360767425220870883815970195825167193702205455079015042828330421346320079018341328836939372517403238165048799220762165846665344473480833544850475187731644060084724639874690969514626950144962237240516434648902469721725177545889818801922666859708550763866656487545857988572302491845554115340492409299789456580320345668514411681990756067340509833683385082398243842455460725986131654574590908957523543393474704430019716384972503755888906666330413852503169528555839855475762409935934849971288020265100770038286671300559867043950613824996448469368620448954538258986746676623405777304626064746120929756681246476304885862994988742314365510468068524178476501512059943783923504487849409014400437125710269939778916614334191825900839383148586521894292642133563097435433613101589023023893560202145776805780669166514496659192876136464363685864899141007999584860561712878178571196857889196495678468756520535828923532194534267302200387443293585970415784411484273272893939040225620057293798495658219190521102511245612608719829015275641112098603809355941601266497555497390562811494920846832498627995933284764962612916582679206011809494907957946264380653828760605900570555877126541020043398451155361892754309385639995804325765113402185171572021070131628793099661890955262427574809195938991619863770009916209500903650364147288851612361178275576267381720516604979221372616180099966746236771859593493310497132566600374329035753856029865037273031774853837880465824473527688231941940758091516529049199795821638645112867854461086569160677646085584460332029775406893121764609378458794683785914464617333428154554059777791283021692198527869260110105839047609460238012647441662256115757565837525729931851374704649310665630074159922739021506548502642367444397260343456423021303770094646266941374995155485800512352769563341319798109206901501734406183104262584142577150190881603907560817634122790255612669811561611705753753358534205400546686027990538057244687787462456635501300517204219030396782563918951435101485311310549739129124578919770205866418062218321074122386191762994065589590887550907714902704485907198362087500752430057265274607405251377793436970484670086587874309749711255826605424038998790669897739597579299177109217336588227380498026143198441279947916769331956972669529278206085503880072194364239661750951143866006149036736433371715695290632699956434502933428243114936882010901583044914020669857323165979871521766147975063738002751040066187797906843680598503651623493881790361102702280993826110423384697734266736079130221617484504201635605717600555605101279834606917659043005873038562672716236396683564755545236354891401050449747446027710208673603554469145534778426111583304464712030605566717590759084210975866532718826971095935751726253165940706404880650282015285333190394658273604609388733685479005937383357983666920250329260144962697926737884441739717037047165388462474166185879002258852985080963876022458333607391100784459238744240306949797366022717661729733461303967788595456842341311821745039465443130037851547518171556004975197656882035707724958507741364074043176193239445015543308227099442730066427532444770267420882612879922415624254782104711926060179809780874031306801246005168513491906041388857400691142973637397936072301294528913569518940780641325102153671788396485887904340699488720377875403430663316541426326334222540056567612052129171173244330539417925242196476980993199253033711193270159388766070210622750375535747077037357892290702832297555357879557263336262503371629876009518132427515992511641064918184335894246451870592784133184680807002374381705822463924416061762992333366846134487456687345425159876607283055964703091305444284042683632740149676653892551284187665193071983300945279573160168094427712946563016829768553229313228556270168433172686619940085837475453106137557815969986794089007415200979016031983571774979489439194666902839207057404299460578218821162479176046445019299791747866746473833559738293268298177336423929939501294871896359140915355753220434649616569756450983084854007021464792646786265989029722536712080236163005793754941130229091067145323868136376980037970660492729840757401199986694978646844516485966574165959963405587998033851025736381569243640260468753188791596683407003887573944018009246110068762560252051029359886969617442653297089043188193739715214787764171024467663638832034295328748276968116477859179077708758180567674058220181746304762192871362391535736584658423456377309977047020103807595626700631388126772823431384876267570579733224967748323697370305486654317366065634213433603665849300639693946375940679497054062252197785987835505312804870247541255270316387245168671573497132882101956992359093559927825314869997744811504535436506973146541381054679474359317496888569701898609793520476011719212508802484277868155099783400423942250817861035167780559464203584295686696482628713792009451619513886859046515063130958230735839316772939574612245279606416289547263420817481205674625796829564894816792019925051427493534522790742842846430607145951996128345382670041450558135753984670137468005740527355823994408397355788065577601592731875027176619859584376270281892726368789927464880044309574366664432598772974563061428706835124749779365361825000423282915005878013864990422993200579349792299788783746389242646078864725179253546681286327077281834871445986574338655500342098009825869837560945279466967821265782699433533044911150132559638530741420273043270863515972257845720867726935682063346329393090346322438508031304836667180087045389899292879553745898866698186555145354346650262637703461037699203592792367806662331457231512840766646542043045765853072023287192175193321425571296248202387205098296626293556229878661665802085208210053931513852788853076175512678810015389306949667165366270606466487589240054828044122186546492208737821505582831157539655451096516971045278184379597463528273093524677040113058950495169760948845278287561565269874806215973518787106101340647801322689562512858033104770748308274548670061761933603196701269159925560235874118014163666675923371060419061221303962826028716787210621397359444345790534141093163156760605527762367789029326085283994394208594806015903459981283080653396293911127859849406933678931301482207382010333989398494818719184256225732525001721727041718152599424886294448574107640213139546859534872124480244230382703394193405252267164655944842071431843458832664093929945399935014813967434194717314262189099128856421873342210598444338612413326396540161975985878983631063756714884061626588727792723594589359789890817046910307828482120474640949792419183918542612665698051240098842412690637760975382917754235898290053086394729174640393526651215349765705442988081439174131799235778000173743321622217351413171044904818535945314430404463478094014612798315417289701059965345544568617901529072598687783626196373960841652991826885490931302380553409694188147204407200696089502394528438586679533337974584535731376652284534008796366417937958532875170456687359996390106155899975997455066611252361087790140172272925855485089189310339978551298854495799613331327612186703071767215512377559270567265926426633147041330712526631595350499352320230464486993038742624097537038747664772150888465381082450062699279542522366818186588229297956420734840982483045844916486020015959437354907327217256321437183510925660213544343500732129059822634076975496839097495103413025266930656581134942994255652974261717726228710455869839703110934951179504460003912419672667520345264368962815527897881389619831293331430538801808677355135801386086405665275876713710298263911168498451531698160073503029309014795736869419881399957539288081026015865547560047718102852032706436262615052264209949810328975691933604114599287151369096480870471057297057229022189305689678464965177040121006804384939180126039314862151261172412252602406355360427603550322803795750257522145781854924439797023896597690831726105615440458921356618534453478463425753929927374499464831046621373114772296364981136323354596388194065460884876062256339047435024401302928622585107318960443657215369110409604914109199492934496376386743879558078508826274103931074824504980453959501737156462010303430609060514136417948834317238080921377472973237457865594726665065533939344275850141414882814625821808710122748802308024741923167386572324414691955708338577676263320480460182982939659438967691381319219712484722483799322209111253182024867996406171180922837339753428429755133377285173927482449445187243570029335641295155860035595493304554454773074248512415423841708543798149976924105800854980186568289478233028291212663523692068065217305092503114205080665472409801294800739815674296820954696992358328364700539972902564613385991218012318154328708958661036117205774121145632811297779673330241294487230869847330469140893577159683205206086962361458548084677474546425537014451758999614167110522105447111753032949424873365061012181725495743339996686888741371871964375271899910522843690229807917679995578476539211146101015756670888043590932581855122928560570218222442950962887363231156629959074827724246024964190351751276858365641894895316225830104628926713431297594844239668407216917772256131598294764998199667813167153416736978627916199209209480166187448373967474967118719615543896249055597325437177836415112384385393309228375853170444298615609232118423799884633617553780102853429786606719587778153686178969192210097205733677310297269784343160538524239038588572716223177175513334653078498586669695466773987419068979336827330125864727693914825385724716246550656471181508540884086645804357405599928372636908322318358270247305549323420692174943623929852372363993908180747046372591574768629499278157581013487775290869736359849225653382883929487559055859693585443506175579432363732064040595859038029343139856282514439487615804914625203448384639449483291746193181459434757186583980695178590019996427233331457228958537477682897742103654169258019298832025448583236199291292065681231292558671463016691328476659233219829431881298089190125421610097315996644041963254047543657740799743439856121708877077777330658840361632293284704733868390714647059709733558967783085773884387282310250511637808961864419882733954151849618692881783978953642515406774320020013011453056212180268454099982007954722097045747153287094058337861695881505255008190874213840970356857958781231141052912857649878817854761245716538498421864027815593398393349811673745378356682376338785169937457478329074504585609575352855277387990306486403753551700657005530831389263720367814196813089640686535254471462900076553256109819016680416348964537973972859225692855227631178053953575122341292933535545205715227686483832794854482706831167980385983587574618961436060716992691988055526296689085714521029445250348015851843081878717464310162684924086510871317047355096027207764578502344853111208487881028014544325980664626470112932864837391613097819654280780537549797953074831534350457099246400192062875744019725553577046371736279591896942723645663178931609821161152714450936251439099484947846979792932742160664958696681105018265040758618551025500018165044672594351558306557172347974194358929898195523257674748250464680221080831002735300706668106429597094186890455249024880077591789860824991190045302127735276916639546959674681886844368648933520436766968539904760937999073889800611707697633410011797879483177275476319090943556082193341800349644562533141573382789280108843086224322651377623767255165364844255291371611421371408997371926797186607309147947577284713100776188862612450924455639709740494621141846260601993023612669950676655774321504833934426450277728896279170808284049666552487233263810277123419432908244564031583023826599861659077330568227173829159861632400979568979648846885020653550006454599097153984790668071038166508682265835562055305419265154485764640374138415259257761196870181495353007528974751733154922682864910305234485414919409982093950507941352141182736431184306062213232658153370061380999590750158271895489750048350592624846250332645584067809891183340089581853080835457467184506177911016472533182186927257627395850849767209090135533950953872678929632118668786082357303318610964950497762375409198825560370324706838644008426477451865475553352147753624762750521332569159110870286545440415342999372816723472044010192813901871820302017945697861811141169866766521156098991983964240976745892408699761591040239691274406746495643840043957125646310766289301214604041449192547771803477826316522048004753856059911179272703135942068174170143844780402144514907540162467998711252363046312890754653695634911278183102487862246535512717154055033370637039054598354604522658592658017405569772573461693942084182862968413829880176177592114251434255551045551796139701210152159738249116507389205713506183777608380453902161188357530294559466698773650341741373966979568424091140221021783150662466467407535036108275799967714328610508085602308811037522378882981132629233686508664320493868118882320704110381148032268294458866063286695129795929482477882585313173849750255227906474909164223500040342786161524879044596860600125226430844174887246757525196624057544917120031828127654070681207986560917511851933708464659737227442011306722309438688911218013463919827947336940265288805134331821648707519391389044927313921906266527913048987293682293250863695722810155030077875349163414080972620164639577804248238224603284854229599229390933478172681705833364466502332847125981568272863676060039578869068728152108831857930022266384783908428327152179588998625258791034587135755718695469582376849059257001275594823546558994983334266783886122203542597437354619350686713825434113109652673328276778512626156855137212425125549910781666601523139942850413177622528554125548386888904082018597282980485858486773906963033014501832806333355748002424035569663251257795798294506922449084291516702989467481078192062314658342478929202458111449172453009813561539723589146179152339792222290354352519187019358975825619197363141205827024437972922484565303816579903040101297999080535858244589047233127463915187682282305343186416766495400311129638979502855919609086829727688873260523293197829200035336872260715703658353886425711094015521079529038275864792867255880972373639363917199620234333395181938544253569397315635885122373787861869823850031960478514018635362573919857428138692811604616466560103694789018732047852820811647732301407324530368426469028172653926360912636563425636744931600345898266761485969265632466356274064043597123194342979489051527324887484298289014011489517279834942208937902954755774033225714648153961408867204124081644557210553413460208577887561981820807623518077040276965412351871305118788442152710686855720630642982741603694061291455138371906429633197999575527445904134459497094736284729271477671010096836765645896716288840093205633259269656440413327801359179654857041538695566203628964234686245280087123434479293852256742996310083569462466122156036397945540273170065390412064630069781749552509467034928043557828401985989385295979956695070880949870011755246952576680177993780003417046281797126899422710485816787689151289043826586912324303428126433437933554961482581927970808868439608907448849732018604878474311290160643815519125833312358663460648000961770213616887255562961934326105314526789964483902527054680128019297555271120043000198304033399107101712028000480691532876135970565908319914710974880827341117854007920413386016783972724215534956493260488668168736169344071010702159237853681240747199106612882123562525354976595273199129619652875314178931241638876140866358957430311892904368729369294562239668421862593618657541240197685825293491529834852286892849214328752518344330404102944966289169668060961555338568251662081151686204073824424931369543286009151888117069868304297922117477778434202397898798755454257302080889661592571907781299400525362359339863521407092051685422615289415680344079018373454441208921900388239230510040029586756859986774382929896714152021823509782312725491144673623750769462698256174237407873672553572998316041698945658652020900326524041804246184517303270607829382968435801678605379346737965728047616988651506760627366103611060360836408220513390704816614566765622333127849873566264728752207965371568911157155307037731400149971234493612310767458159696049219848792344809256532768663510643915026492884812449524247109551501568155727628250678801058660412102929458012363094128128363923529932659648524649625139043809475136557612140699738191444931354207755332657408184334279303708223849470545768306427438321443550407925500527101105198277618624938141943258604515323031183857776773296933029963914451099617718354948508686443197898240846437595090806431378417875888426272419326486180400270213299723216222932476547364992032296638816025751704330848039158913832391773758968474796862740666111429370844810711616646478056322497796671422347837738694742174953923205424067778316052375440261272972699820907105093496432697723838830569784982559521084718033846990912505831526359945144529392516158569457087778245012474628525080702795622049317958660546088832841073897993381497900908847544712585432754897204155472380164949364320205625230201809601254619997247240751661333086572408756139150952427654046683728513944333273024719746154660734656646265389326523485012101512441773827330969042125946097236550029285462173033138375287663853042667185642809483934825732903218113523544351481401326841470241664468451659234757974099956664176131043851204598443084391681138792043184345978714053678667252691153527167645857399556827191107068962854369757462587528895287823535016648401277560012964295640571263689041784834418048396153083227109873066398404988875750953421415193258349618854922841207202248458370477068849679724834892311842803959117850187425815248433132881011592942633768529089348149074743192280940058217780889691554391275125848998307212602355781956182078690209945204089585369210186156813029461067479810891190490391784544964282402927102809056066330123010472893257913855608668471799621503369805032669527356918615412523768913483775131887181110671451627068009909411194989017835405057495895707556563986893289207741161112239784115241071194939028111209517586051500140532849232881567007430516981758343219885270048964949893875188025407719407220266532819626668560137641424164825533308021150509664967905230066109918952275905550963306389477094608333164255254493050223493638722705762501995527793094068112761361185506410837346473871469248218464433467376958023729394610697291707694662638023377352495857103436322110570680693171106405525564281182276141362165678089141972545463711340027852591431693536124630768971399050709839245517044676323353440028154328420780865561749077968725022161335887057830064804272374867332236802673910676642625724554673823311122304379207254305126049278355775203335769153810631503752584515876084873605060885299787245476945385190630651831550074817911792461807039158330400369830023366632832361720906903250489125550583833717709908405262645918959780227526116893071492029588474886855661402059958932899983802116259714729537645617246802567063189419131909233993780268017358871458047666728629757036818712835001675687739806090505005804039360956204893338768114075575376936689632346711245795910096458146623931399527388178307975720155187209140654793609901804688306875217383747425603125894175335172832407749134466845347738849218792868711946144661739398063352950133794229919326974004367127872905451686102445376251566367299877906835554631537202277663412954413652476359532292483950681706062998068630140276988234449122758825001400916154699507895583516093536874165534597720715640625980610384308025438240427748354902001544133363563679806893718686409551003648842828849046981538821011610212343844272794740076578373260279672825025746969292135612952926100433326492797484843540572083514374845918308970380188132210666942195590832086243358736021325747361976236690173583692247897522274420533163621662260168115059818424481814016506685080822119529226460966669179561204861497018068155788228447433325622648259425796263886234981226409949676940579297397448050433674487599258379886411959626317136408234250517146857574499199422240228848193225471496107288292755155656948766675821214535327496303714576049869580641311128836188888999934360617590412043390804429919044757049857594584070852152621809720239008136034192144518511121756678202758105506036423090082228960070860946744092552369741061009402681566765753097300742205599732110279592241403021667519405391114268839487218472825669622420946850340000218593946398692939985377477653591542179736716789134487878321168210020156159413080368901262024794845972779587694177513317471780603932982133149946442499075935199385977457822292301464481294000911830470896059916056357773176523889276987587599985927507257896376268553143977697679589531588485083778424398249270589560048302133709745764892283049412081614669811429532899064521167053955749113752690399256472523663870185503786938219817222094268743265225719184086494335005155736834729919172090361908084033533585526691650924358119078662329012079364671243736681746732405262572269852098024986820415127091498729415409056959348844991899498946493859596039617197481567955024346897103829562741800893430607039318833239026025854367004812247789839381899176061398879830974530777784703330387002988052102995545126131030834467010369522855278563461784445071329646613464789580151161889137981936143348610116389964905320953915931600771511396597964059985059567831693401589736105896244799456554091506471944393080978351577600117552761539560224663381613236813563439022907846353786413025174314395055760063206984424280415353923990395776655588100967078945469654072191005744301790413277891129450112286178275706410565666683088872589476419942367280543628708791491395818916981322375147800643229261781749471384279072019388809541005175269055168350593248501982215958500943292350240422885502940746473560587314058799872743810577161263628134992087741219363407236543373996240000995798001716154732408545377156818582836189111412204571691927711873058287953590109414829729340977612032841241738072758590183157605285362115245928125598552330056721213008873442907304685105186410559839203814771101321725896581120427065316107861390763837993796739099084476152932598151694263492044129620917539838654739416883401803383687898673073512090643175226226112817279312997235906542643433139468986187584878317901278641690342695339281454900626731123128447868226640600161723031148756604343065739764237557805977890915154559109018868980413654720787677481053809647375913288643580522120953232216075255421977378757575540034610335469280305238308055749809227824011227644724073828319927258193825418983328181580792649313470815628334811800176132044866636625338438993628492005305282644072560532231060252158420943187059094690694086032732759727037923552892345434191398659325068913340696014824819447788993503985446620029381569079189197365644808201946067895073679979819811528390752505034343024217917914528678795294312551649744932474450021362996530908849017576434873955274137703726663546933185657764278641245013252171508596877795377621924841203962887336139917803850240859882054457439159662348544651942464843485194503422149526035774294282399635552243471140102703745511741372896813699094109212895839979087040949227909765657349767154045523650050786653025261939930592772957398307543890736188882861419764628112670787942896765801883809306506783966798029737229314091527723261706520931683112059003834787485959528378653975669728803351375178293166472088508090247743488684385129265476011736702063467120988013321361707741292159456162933075757892816381802232212593936576426417327049814138412379940703038859808787960246152556232040309714681333948639513676654021407362562766932509073066167375394222166723081390005296143476516887819363016641797673811220721780306233263219003911531833879109006489367021643929286111932368170289724015653068639444692290009545722009181258901483661770249197454071494576718066253453526344291259040205472477091778500732925252144590340809428708247405840713359799483919728681414605147710611194375020047001169807213504082648232056285500710362797633007962600066676138212553054618014097993941428089422533983895141445241640977535169818568739105944417693246508250755800780807043102253990124782794552897017920387783966255259604088017111132668160277291712510550312312972958394909399496369569844108601355335080387735149149097117656840119632950111302280312641021566332993078155056246042407740568662822580805683778505318812671481991109887030899175440977416382514395188675454556992696722066368798838214886507447877259365464123624776202074090613807177109505183016550946455965204484250999674681676307768904742281694568861795622100926827613928916385567028199268991136624426077832338544899768831108440633966371400221546018958965408941313664880657948690576066595708664525391471777487859779276198930207859553157061824278452443126868946464692829212538116413340310560150950602902133218152473125694897797803489662868391761930474374793209200270876335765382972680257913791457750527987900346829485702152365823757920215059521771529249059807336753914900648740790085551162938345150198944648881402626052497228895879276483395482928573541371542030786617576677643398637143208189612750748169883565510988260601358477422196545373169971199747794493731917204971831208532502163390527048132950963096940063516594985380911625770119670434263838765629487985706238201406756834434137187231425391910505801381530047240548089625581284591009931782626831154601785860066456496685249393684939812120566034515604516681246307769788665331284307967824808307511477277848860848573219548015440410703889414074234891982294844450654517718731503698276768632067296258653141290704664602164218330957270698055938235841883316351058191327416676650484885591884861511050153881382956876265785019807273727579316885537375813860067526271732135868416126521821175419393102610644745752340176909026426838969288996881212578861440182053796842749075069328764221606158296997407152208354258379306890440290339071673068601682257966038212508030845048467141576128476546644582770701388612271187814231600891082432611206888634015693249756591574273497734737285589532156183439545711335627149211774130843998655691924253556716288805318553333193673387767984125948330204830040985833126306382408016834370116753855135157726543172076691593993665243072624410781182400651724642634348478349810599857387502897737785063546335090880323672164551582579676413093835812625596414212681689813595041960935656317021989513906419124756718306623769727018122504281951089918812945051894490639133729894291375074130129585780442361171849579663409276810550809089090724532332103424481638035127214180351804245064053402762394787512575388150373915479311184888308656118170551625837719600328576643003667466371566845639908857775278770885508948829904674156718584760782568425689217006361804437402867333183343867278227325557609732149849724616189891329095818641196927927963555945649678457300014260794046354289218435688185103231748962681271101833123927350060283356980804165614779720335571343185928376050377441854340314732063525458249597436030913330341239244556419059043164525311989590562431832844524814973192893288234226049057689777623963838394828933391735250112923427450630280956441673359581235611168438784747731312978496456493917732901094850845787288948909711785263679216290699457071447365581202309794393324614347171913151516182714816365943717754520070983630455046839862394374362192108953534610425837645399298985518443925007302738335593625245688379731072953078401475867102609789666992012995562497114581395197594297425289009305090830388935642234467609594719129874086021135175186191164423512555194495318229547012449849202948766855805458063158736571418623699583283044116284705438669263390272202499384858715844524093120332025568183760708896397084427893676442611304118905247218169922253685109609797395504629024490498945097397998597054865929399932240202083936206405846470759384772832201809477772602508927369880694719222324516673841013912832298732554274264201397712155450152477297345326003834691379828234229874380145407432940557255755436434413591029660866319442794964884344251792878432391570994834184887508737718507794003168835410642150953740272960530223892679204437942404900235578281467807928081878423065614943555988726093829193470867990926996838975003050166252227458635265216809533764180844699241389793388297985728783464495541841744439412100963676198654210710281409808704527666434673340748455668185475622817552947699895024346971924103409192101559406378903115254365532703583948579329954632320761918167312445475926129060534433579961935659105220554956015860295370626948813187774729248465922563618770085429013899840337868901674935255863975824669301365852505805129835753787837577946275589362446313536945662855751638531673609375578516673163810252283767851082232463960640583742563909020389220213225938880867764754212043978451108612455572757710687463187017410194352623528022220705549770507878548673866106132064207738197607401695321228967049639925505351280770434679032028652201074204672013604290409412661408458314347424228517539677429825095556711747084900257848403083357930439197655749090659913071791379724529686067200458570705673774043381672531132540573333580454290836696449042447954445715676403196347158892206122815916368161715714745876768901379051799236418267385734470730620782794504381340408470627633787596169503355310259304367635775073307896930722866244673817963434479525866921165715871580324554076863029873340122012635667929287354362903568123800045291843586218387345392383961153820416102968569425948496245875113928299320079743865602649795565407307809582372760229850754066772837367321748228229945388828795424955080541090119549149666311596278701411200630204147816046523143240442322720337254198958373240061632009626220245624058816126565754245495335649794439153509211965235534562712274997443078606646263922012219996735179866613707665624014046830132649846492980403063589987924252985006125872760617238912596478364300540382979451773117066562266975374478758349786608941219099586707411685351308875193209921821939366133706740322897038928172542941460003944551120682267448477007115403601055848370125466901952085445127105062349103735194950958079787473529290391016468778207962335231181547119456555846128743687462946802753332670293118647636897809639842670200529008790231361596821841983291393018523708729048748497625680748576643502903974347216520723168821611314249503625034814855526850246066646256166727191127197341326740781155587607953577216298371947887628281034886766070268249060618981961902150218439501915680668755123378628584873436114660884465505755453734172358656277216728747374322397201752131838039953137482689151527242348029246792365169050815215208563105298110118707926856919069868839919322771526962546943167166702951659613885551962083273907989991835718642839908298112375920357998837867525737927354959636259172676260598747882062646048014505548031705593392251856434943900920754102666526483024168992347616290954530351035373780980540698465970869623184213897928084053465305923137765595686558924187905597692782956279796080060488073394450162342100125803201651073434884111065236922797096102654331332978842929706090214505248759097361695530331379547179109072777566072464038372716958473219886543066323966191726002851043365303867418943598435447402324018077698187549744905680647242949621676842036670651019098541014557164741936014462524784342400351745787988987111415393239096729483964085664734893933581066835509978080665466868998807346862223079242173149265543930332539208295114954708912821705385010579813968898173996367289163426252570892584052569704591955205414674577624591455646849166360063019935501027990500394465139496502052460581372605514275132706373277773045370057790616203933513701907791386248148041118322754915997166949892547449134910220463367308181180311342367823718537080658791859256725706375263648478418489701721514644928872073385860621002357406775479423809888701709061182615801531566506682773320327857552766342413878330895440613762823928494891659316316469090996613479038520787764015922768038239823040193526915616903291627019486347114280561855634297413049074175177147572700437532177066917846901804271929723424372947333019300210505303147773471114451897136357425762757375944505278974574782358337010234762544138387427549287817531080561667852282601653695300569946313349686497394809067776717874380183093484550024879133739974490735065959307446150338773572304111278981184863697037710004230055260917980634969125677038086839373016151235813637150794833589726697780211311020413636290927686510760943183836547099608175605634947885269910364154118407956587875261225128611091674129826615661531197051053130028304023509583202728550624060628565105585043169654673716318750763979728797815051468625027981123304468172471292807005032691231738822886736858071363149070737805980881706225476147056506713538012783366243209645910384884542493389183680955154185969944576872613659813456201445530820938773473394397455692528071775880005405353459596614348358647202273628024488097740124986767041346685157701222728005985019588811454304083152528644254143018501889496460931779767277463343444952240547171151322126887994068369578478482728707337540531765993536678753539167352894962784623297854516043785804864579798889973014390353068503428278340351978516255395723354253134947883457047644404339339068643810673990006984556874767654772643091961108803111597499059002154560791971444148455123254943620805439462314157129134347637877455205320169343411538323191440260118484191483292399414665676853689472136291717900467534374462768491190743334260336308541284448368846090454787328128585801403133933596966445606059823088375482811318273465671436450502690761329530456125288694540961078397295393224225383253489750247927764399281519088780854579412601313894538288746281772458954287510867315232826811517915774831438835666551893173894504328825677084575554912465034118468065164131435716546828627074446929579240147450869097123328251362893831691282952924648639732885852537703221733605777109928513747536239074367423585387892347409220238503467312195970037271642241276959475915265580596497674911483492727658021228883020714154822961621295977158817224362546659539174462810436972018013913935211940311266412395855885799255338836891266614601516802361376139052680076210944803739219950765803644807581778997347248309215193365649889974659570154339424079295964853155908294732389857024077691002485620607785963062692243419633967123620760254878601257421696353450033111214569463618054669056830965746735308144655049355351240677495089473089837634897607160269720460690695195642201758675532512915756691676637422028504803209804889085470889720621036040749972663380576557288556691846070792587664314754747020443186039014773227212873534601880183171395589581840058884525693217859911932576286252793409015915180457464819929896698711420607747899036047426407960283900860114380848080114401467446749588283563917477632677844644946803475155207049541561109762327493975115339535494407272801021675282543548738919199130888821310712953397200279267024733321193213403378739720610237155455799306945151201585832123348930735239111971305466775963709996650144035850297000717926079244039895961148691347137948831806302352510056231641650767446224888361060325591660146668293286165197417603587797339692347880419764237034386040277111173591933101400479016494842629665414504099042569836991527922312889110383751590330352927690624735780243606240846592341482366669148578855405168543123929503933090604893147665825159339291833993587262135505627427017780017270751355660638739164918792766365316981026481475811001562125025117320152509904214409176901078326868672429158934475787718742539610917965213676084315059044994788940178036642998165064326734654133546217824869109299396502267259939295246557792140573083859848676672725428585543145606474540947484865932532148602716594432671927446172836638481509007193840829943094892054060229435331107911016689539660732004757672642063637024264856982696553540893974102144882436334823239167266090550855766294075421756155271133908219201917638345514081931406069994861862212215027678434556051416623598410803114108589807552711875195017138337496688447678755146604746666124234725718052322215599679728342211669559007261450506888466612084756449617316359676258176079311938834500877676088585153134442106089019235661584085049550244716617856472819051074827257584649352333023925653768960753131636104604189114628635336761583588012119570604380966485569286211437888622475940577627415779026738781267627843906488494399047531061772623431475994669194881474790569948054393160052754522957438555623912058081485892938389888245417980551644127741628478804676705877715067381549112117652231228668409872940216062518269036272463559110707364631350153238399640685869293375045301270448485162850932271768221545115247573108766389454150312598525991163350482876226945395495353417146511822055502763878935982337014648640494554409823250408076067766452123581603463977089492394222449496399863805412707870823679309864206406341742473497700694081196733684496046189294566354447097450894412808178182048736251726487072253993875381395648664254942086097654566364530651231566781595599187632337237765461119381642765828219336968465262800529605002875000365574126250162233254435444564208066961113737855019106586791629229951186418695637079507327529590583196087329038517101890561851907440206933036589612229910172394297718668088178793426989597578940390268274024865538806975207708489081645229661814458801099035370483673786451502401172134133318813222932446346746852449597198554722341535376916498316636117074254345630390735232760056958884987649801702644911241548062903746388041680647340649076886073812046921224035020786822223251080068769938559000384985825767129452194635846031774039725925327577045636788944735770450006266723028054541201832458048873749497207322741594050892422301359561847060329449289272325028436203362143797450601730005008084697456726632125341405383736605691188089915296860567361384380284770290088966121836701718592104366715766465604998522073762928280052843946622414179361602775620015942395847123139335704844182862643316042293447821304185599931533892503400818572409404300946109872134119105623470082265255975434624710374445328078342646278143560581271657780236526736680491984390453651294758882141578170969117095643138684320273348386599605069055770886292032487429208007794251918388628968275327343748589923044850833844037326891489279003085947692606583698588935120023107364931334014271270805922095946614972058572245293985172957018944226694297679631716222057876024984400774691857237314850957626947534067217218828354312860254658474150910148911766424142637029306443154440856917596049570214141290432239945057275217279027141014620297883440772851483425444457783156635226374399341839015450882850515074190305600339186640210563716726124960774936368973141932381104343648112967954968432931763854420507494050986150948508333308776141537776330627510867989542490588886411786221913094984165262856709565873333027454724220995393427032032373909785210020326870504126254002417416912679944977930777191153559957576791412196308019070749681203968819108261530411121160151499166735992620150517097694359768345453269235360076813847418503891720661373204844726622752388238750423406999878206049948989325523875086609377323006017259331893690477903241815923617056501924371561925498508908911094177152443060342575829538060381370473683906261908722223870356941733628197100444115806730643432030244476155634613578371141605274946052204969960538731475616052120866867976381845249130682189856054554490860016020278133489894906287289115140616828237232382749579756359825458002091552848577668355946475334083662906710762083754879103589399715405643818104036384454336233633719641949784714919120063583149709411778253609729474657292693790315295041454902517709587770058387516695557725539639604846948442480512616697257419671455434278006763144885394564632111510370743055533376520149463061581575902740724062011061676195240693194114480735330898553825974950837831714169672445983381124885240051529205098036920067350552198463848717054146721612893518052318357097905071336252377905513884580859366059903816179478349023763651488485184672308752463531355358510974226240186117558079939699715170649557975934570660698041802956892040572550179587035531408259952752953888612791536543345223374466197909373902876102771161454548388683229816595642666032708089541665815456570316830422836661149895876723349023113120582773506858497186689612238845837263954071945037674840046340291981093925898483975683427793224812054902491678817889585289114100246144294376275532212469175399240926881303493732524085605518060997142586198461269902680591579588215216995380204493392477929209637281793608572937669179739000673582203378641717615825844407915755443539082413761420399676645355611513980848543435380233127732472941105005676009606351423757381805703262545756171078332278244645753029376048565034900137444470306022404284000206443408807468648166115111438041037885356382537879577011523737899459742730888186649707807186730453465066274129893217293538790841794254700940871731963488500731240655787520097589252680400138677539272828494994288231983662998630155462219833436833718459523212182191226926670927087272035847082362819495703809214015922641816607215697657862413055440695655780284465420320514755455817145374255263707867091916377432458300967017334352808899704779078577618674295828819531314077914727492580251817311942997724034475459461970066459332541909979459317313927210045000623172262426552165139262710389816327208478838965331317731230595694155642637585505615663100579745751188670441421563233047182675728436476169721929560384936906331054327747562111587993930048185549561271753755145671261037460106233989996122939134569231271422826966986662996771993059282913427823813421155173094866146704423716606149723733403745737101411404404588696389548737607684820443113122664655469289528308957784180022846509030481398417727277576214990515908178478690857959658807996252148955157542879546065235543647701814962236865163940917549872322665652503115633924974714777611802518634488875157723556723606583865248173053004097448720597496828421511791250470792080106048917524403734137947727733377316438022856620805697862066283262358564093434526712825130568910783727704605627092164656407214326801771314327244982319382652660662496705654297433423534335089796214751848414442144995528304456173882585455804005120789994698688997977546198078000850422136840244036713242073410962024316306535771466531585007910712946721076571818625170936612767531772136952795064599490430133864347628990822153227287940362590202772876717325459374754473658229171180252230976647617401383291105622697472952192514549893597469389270812860492846792953453012360622292894713834386339864491290943625616923625255577844248689512915876365042936292293363270185531725198466238119180716413298683371372346277610314626674717757522982897445383590600260955604913401967143245828801622288438360275224204159966679457145225143127078105145643353366876605857393376293244946352294195884292203358461539412255700513600966929771072788522954072140315373592395082844308686180518926350809931731528526538831597086798078856573934060965446990167357819593495723180360441028443575712943842630255601834259672045000225987537167188134618954589629731809359041652234880863089054880101237084540653189081937879647045095777003151201347552889278647874951547473893885615812279700355661446477622769473600083211189636201180658994665298197362397190079702078935650366911343125736166465209170680511550398683635598535603522993055876507795409054109523339029305022187856220865215108461510281217559993327314323180772997940200894129146021082381941399975752402483102041029883398788101520755912212033068961003434559113888514880922761314923837503014779337120338121105074042571411905078993879313242306104102644412985151357018097427315191508903729565913669833874661336820628058222950555731862814397159696337494468384739666702895918684826492366666903521699961710900899265887533640325837031608948432559827850000426959013182462382666282496745506055644306858085474599008797573297119268185922126101443234709837694786052614121204923775603712120649239106235070548850988732067650290270775052530433049026324672469291783184668131409193124008131581430517187917575841586931327402267342972786979707759132844227734524694752972400595344451410218536936935304144865598115453939681234120033731159126759313207287799505248555531453534757021783898784996148058347038180424158150303605166852350625056168997787892148713026928207283212018796377356567119871819395580491896539842565909105746131035103644995567762744153687665316682466033911137425445395476756548116249433380025560115696488176157332541509433679779886620994511172799659839631988755266862372924299967595903759894992970708023066231935344325169637490540652517832544046651287584764574560414315485327999841969185471580706345124956413907448920174155859463515444517635395812153889879433174396814273391579295876756845079936128597449437161076685717286084050163304874101843542506877839205576637201797207059127374612840260832831700609570153770798501607429341489974466130701594059914645901411241777423124320658602877295660897872310225117559700328272797878020178482723306098130926469753664329543642902685082458347189273433240994621354520030563251523715376753940527881781483743251957620197152394825205439257765037378070968683073671856394414734496254569394458986042178368277335952549219770227917360626652664426173729948254876590676070113799665107960247262366570147724108251840259740127282003059025941082030025472288912038780263841643948527482732020679527676256247297770776232430110926787213814582350134206944927805719870434615131597198937539544184808023903692152813905313888052831146169525120697140311398133996374297495742128126221233084794454559486196902575677883440644081947004546537584676233126812475012942283709187029168469277912586539569723755837474944742319651357100991243571727200899921958695832858558928388795593920157822747480438184932457804849240233383293082580485805432367907628608322741214339151572867642946036028173999545255647798390872835824868918608638862288896310223175725474963088602772374910212092394215055542914028057649982806809411497832758017321516697500204863236938927821308178724203025389208155013124563503674129869223348000917073597892993470446756666711279763451604412999527551254130192701105091739090606376921153472313261429822873712715421203533492618612644296967096838081376994653226184259693714329838845116530723991791094798940407923355951885342763936658994729194074727107453023189187041161379036738828708595846175470702280717811081503782713679223877385847333867824256808704385214234518658832409387021537100535169674243009452889123437449539983585558416379664159295712786466489332448044055057559032437955488595335555861019484951432815593942494113337759741255217587469944002105613351089841183419931649957857775263965026277007708839016469807652570733135875572398927700586068445823411031581274565470512974337699185398874835136645564605978273575881611067483018041725054086882166423912456266637951847324224111047145323109750777197475283658463128664000201233894796263546257031586464340511048041037854049770361061406916569716714079753303371567532172060277724175697734377972097867950616844003962820476987501073798750194934648243621108287611785503240317602857306148231059414653052735244267076637893778239576391140545978914226915080089945985364952524552117186915461180194379797668511035054311607917249171362241970950596216953011503208693716862709603286314442332378286288156140464151183649406551734699593961541113089662224654813988196580482499047856947547035838564169251006618187267084991376021711881946311491234674407328031308763058915116552359522753950591863773204093364408521928229231548425018051207902138578702273616251494396758594510629127754697949129229545774101240179192402022132280115330409986734235033150516476561667092102181634305769937263783781686100523642474418197606212113907615052592219220184946040365843462433702246878771263829736560286744115904518741441622639881604723390584791186003651187767924765906747839937929058929904622505576708169950110729029313044666163853132759354109029280273230851441924432619562056132824023523170890442459227889219883469257621373261580170327792188745418974969327238573561851375624977964723813340364580474183162575847269649204422771182708040022971916639613301042586477386965781566261290791201012434712888196960128149892074129265961439075946035783593318720473562212328751545247692706344766917671970246312594496994121500230981729855000503154850029350043648860513173014749226811566494928807639705825360970470225264506701734332446112740250356573446222339666726103719958808063088188385591679045412471527684696387100248115853975479415399981384444901638648853985278707239817615019136933061574618765467305697081489627245242730600372614212143839983990078261681176583682476304117219553382744965388230072358100029705447416647333378930006529270738820779711932484632870865622199139368578648908498599687976213091389316560636439832796286428580049169744505715718481543128811889053947661299742400082504339513812903218093937800153177136965178716440325319755456160950785715776082227274730552861683280576729996450559634047791598876033799331210138779912908214518777445046823001195009614085224792914383635496370683426674657798996273169548695809265913027455718084359963320442747040718375843698363025175443572424697086392834133248114433631264338574195241645285434393707829561280174183881661421173483350980659976476339375896480570595712198348121665233850936549436266204970392803757321778547085360158583584184193181878115568722244493462228173976684042885593991361773523222493554321784355869576183919101011492809620851607368684530581607346236860819130160648003117697764197280566675270966441518639824195984105167125665536843209226967523045773420492805895765767551428264209853794199527478090704130828495200495497403117745721722722742472919469984420363786756870744358505199814003635292336932420110697375498837853023260689670651617965586448033192003555856684040833178392807778181031546427595149622573646153615226987799227885195863351204055578956678971688921420657475971747764015771595902026263050906741667393429154848904030465406786001822851157802066655450982985182933755396672131949923727183289738203584165649325749260529043859171301624946084017927310658982619439298228232192586144075152572898634327203811249014531843338598290587593689552365265339633884878711579565005863739377212409305744049752165489652339439867533651706998260990995278232405808097687329011444406399743119332715852175159322666161935525134436564790005299433860528274880041846647608844082953621017334720172377892344798852403221496008330596881722102792642550957570563563030292758067097604724004804623567198327740811481744060245529811759544029968958853921427221924728090523861261110173015936003195098354073117386426135277857828218090058253714653688615358942165382250287607840507456329916217132105621815347113640184360528199358441156628663763902525805832115586037408382206408970897702786087084852203792641729410892086289244473807033903252358243157864614740585163081292270734627085058728962954628591501215106198966806814277325357423853345137284285409427385648020287935163171154546573232051048626802723788251915830117979105209921466083212711814094107209857860407626404259418828682383099606592311252438456797387780096429769487376321045736157388766996199507212700305679777097337384264266190355696267603532413794903519548260988624570098786563482370944980648939123674109704589036033878434546465949124375994610547103764811331124119088395199656174781621319909473164924958350679002850610657468715870830028423892708608956943377514478219765471941115594918176501690581943772947575198020062857976781827871390961004928588217741395575116740684628638162687539792170823262030756436193811821968932636741078354354690442332563185047235410085802920181251120071479168636674751555712483359249197751417897133687884786058455504739270009632975965477199615729755213466585452168592021024563701598858188961177118757780868962126806853954446033127868293599496998684802968633537715786957441733806771389884363328730040870253460770823213093164362377472140307921002989760935230097608991008477034144601981159207866790585311078325231225976031907411102336628888834678491272140651873533308146016433161039733602796750003742480284243222647667624385827317236329274080259402820790535349710946796452931389542027021235856651827324058272540412980183614965004601305856846985737989109693200824144304948919804330386888153993096466828782919482514006964912719886803142525194760581628253231358239093058361658693050414557139799744078830211417531583729959870794781437504914083046374827810006494125373142735283439692193497363140823653183596520640050802540287892568740518288439021166615852529353163761321091649254448624804871029490419523712809736446769093026854399128662052948232102781679926956318892340678873753443929120348132468468389849583619283235155359914776955589317688156922003317539960619164588744433053483901349531728705483588632680920300401445968486404454780530118904284738601831127986466958589933945446103458182442396441126928227851955575718681148761914393462817802177725616643622624036180470753897888377180184692440345506944492416714613308219408420756542414761935225595081734872863070374191185343338583356280843669838671788722783809793277200841714986962788540614169762072523013227464966811798630500579897752802269510557128619623179624744205546144782014863875829783258564738425894707433977380471736152505690128754011627881558326120347582838347187663268146325966042600006431310589442834409931812530392386320939547794925569790098824081080376901380831676592443598257888927765188645578650360709287059609511323879964250189536826804696457128706388600417566313535831220147545392693831443550853493828811039005194334399948234044661324106349460563426187266849567469626181928754558771403567039259074154892565454913988930384377682221999998214201004428173429140478749397677437727984536262649023065513175913137907216059056526790617688488264459172972769117280474530200751824268752927247852358332415354565208266124021647676856125106931725015224750170167695130264920194226201408856217228706084887530728679560387007279004715414495143922578343813331117697062547607941331834085009465320932164749046041538545287283505454052965251458508387008211051753832039732657325339357347371947294425149517657569932577299213065078777708062140600876258537486438426232077667884161649149907708343296050029420395604056613953791410277400270185902381436389841485858592815935443709050009005166014236286935014786851066591005634012531588256995765281717637377896465459058565752693678685617419965039285030860166210891374318061007742341517275145190210450763692471205667612520082667446276406940774176594291177986027946315667688724253202975966936505508802014136909914294715228702399217909250200208354704114368105804066571352604861585301630623967116362254090816650701191671485710245214303161906529102328074466403128759461372098368660572280952207417491743260268348640227542183171543851120815471265034402568731984892604797183534832947248628846314772715178107366274404828607111851689315828315456344994215059396669074681215310134545653253541486323181375004089730386540064789440906921902642663001856849590848631380992592853460083815206752974690256437356179875433875769608737723718266166470066811757053109621614891771392833781283488705964890485135232142386930629405925323177050857908274925611598638830296041378689025459650939618229655256369325863125479492594275318984717260543508904292045450876608789747080050385190651839504634938246891330289018041643840450972753618549365326632455414320047681387082948118616127252687327696840760430426180225733400661062329461289981800679872415151534862598460889888535178681409907907206047218371096440731252307879611433870324210499668504406867823950132170451803199736974351363606382049372577734065363012313577520457492744734916235323415743225685410778081819578131012096141877411967875628944799486355168888933459709968861913019223287398648068508091216281408568697609008983774965223891056608662568223392562613155115496836899771684139833011488698911423940708366049922532015398109697945633402163410910673920388115273497213785344551497189189461170136522700451086495005777770145536700417402638399263842720014414868331472268796109830605856458610917988140919869547233519113424908291986564644872578514033682219017537551133054294791521666070967408680012482014455812934866644177480300491381931071648442536828284608092721293959167547667624507294128099903588100639240436636751894605041586658919266404953418332658226145512962075133444715755858341128056853484373808781406481064882549525685434795101880098157668660055299215024962914310915927908560297637164533303406457825989946776060472868397558474158063591035506562063238310392342008100053691232402170306623635918933208691728205747108027519434818747065795455618831331678740220661271332270284809165014863643190192053537556261340443222775145938395430003343208606411638043434822825307741842542914065014779772069227301492313627067507757177081196052280506146392649088856003408490044497047102938140181614285010498040410072795792643147855963624698279426868777863535263443048850132617599805764851749128211708701319696563457992952920703929588792580651958460729631953217844318026812083306165731708035939987361623904226785523671323199688170639594132446078279937739919257046055382538676725020566275586707280279146812256707082454186723246277900610295396596809303360542542979787771053515831753301215876009358559893854917951490073769159594498668715017392572312618067886494765424277293042296484157164344183022939246230725531416929456430478264263662322391547380342720697794109551929438318968100674976551328638963609492202614443146520746805894422065078914968744657522272944385231734579329967537414342952005664464578253048637707923254793861688296861981719318301344842915596265833643374487103536900945712674562531583431318675928854346242682607508165365349880741732260605778254091309821651251073482955631957738411275331688996003100676430515558783107072156689333318009603451255305537389876855583165524053039181874869669852532404907328087693695603574005329542707782795717840617310950516131567465654081613349618171065084643549182913647391875283347424353038956239045708941077218010527658691538667523453227248214565298482327141151976575526406509680975847787948785604615524884057777267347614824977563767492230457353230855503325450358065917835355005792509247489004467781864159844219826612687415846170903319460167161702397111200344620219840497800843558046780070347198960055987051381052819023684532968101814560223858884919876874723146072339463848391439386396465132334842223975203483342306240630718424771416892683963845579083671246477527399100167552252073370568469863522606010828994490895830083592313279133699854118016526935508523033541952365954073627158207423271448549845066148807242493087486584599416756542261172163183664168831207437933470293539768703921933615918188087673750328465411446514307422457374368428909474570990217626246163929522365638387955872603659809805664094354161461182298718846829917122974891072606935017067520790392910213715823712931853793553449934713550869000680772555276133270239174833737859253817261119007097209849530547820351466203631112428603835610512504486832056582940698733465516850845964823473201698219442983190667393136097077639657199833829813265498621154121449461553299494451415511723965584324425982917674184963046113558050181489032765008736652274091088210872035180070708569140972082832667641423384753560873476472268199150768654640212609802862647084869146571669474839090445933915652061326393911206233717719305376823621825655112603172118513212897643448172431778077874190967743371326236969618089465479362330953703647369894358328438089945155272039024896646292318897698846262603783939225386907075756294062161900854418653979117720607670138741172690036572679201054265981394208975576422627078304590553976030705929624687801679622884947764602503020376672795568266673000046083764519348628667993198005716623787655577540398592927936136329036054734921774153747030297338651196197122088632464099491977284158209395622700602481288100432079204062439749919803389395414560040539927197661301170873346506997059492449549517672415553259279815755128625237518411042943907928878442401899293492339221558539553111421474276094327352068213140149568789656684238958102849297910354207156967755955639106408436501000591946433121439946556261335634322772771123836029366978316317956852043730084546267100867846457443811001270524583051663009921385407135809394660631080715379256146469401691411063909004339501975512499220846220253305592374459486929244891060385411883170380276957502341133564683898215598558252324070189489950000876780598793019171553692775274478054356781636479349523520856838500218906121373426663945669443223439374806823628493935149348815937462570930765633439258560008981222228054601550412814210566094078874612664053023882294961902492058707125312272167954222720862184891777301013999947826193819767532727323800338144430305575138509243621739152858034351240258790021167944819368314961333767308307501954347641617949366376145721785358695250866956311617591728271279300883696278690985684811874866544088159432258664216875772402977780974797663756397989581876307521646570285582784455928271441471873719928321696919306862446897316427590571095518724397596507248849127684657770866841268184039383757620731250590732735968800714495119285701681622486834930480565806532627567993244263298563633420122988499227077547896675869254703411844421067858874519047862714458249416345113645882392186291203993191831378775416151147362542528753879216299671052280722971138849482744314584846459615541937927470919020440497457180254549132585257835977568102999923673053405101471964327400760436526174496496521553581598664677579312459528313028215651005950752199774017449943687610633051910255175159053008721082647743140321773522591779170576900553572477843100850263500327923544718654382475552261022591381028699477630311868836021519191108585636637381276374841163877413558001793052706824770127506615328507427010127324925480968430518802392663619368915461173037606062639759507918634143814586147217447164615919850293641070676463604477697164052457120107058371583374399006614138493432047739012683064563783032181119230694647507868030901190012474565756338443949435450363119294492002715182793374494409420398525922993401312152713940579501788409372740511468678977310685391841707348680266825583154096586855273164157669203201333041485877797956225468353160430852840395727170341739750450286789137630703485121563554515762816032160563105097760471483309190923153798138774908958435718869215071473902445040036789615413863389588743969113289124626491511063179085534839078678998050296980626935133495843390481615178930113571362859219050720218175677212793787982366508778499628855805871500409433830753043031625715532983346340470234192428116704374445385331968748601274631202998993288375102239498951482673532365693307475323421412207678474384165229283587555433683578626579775424406610039400179265052859951500707038057907597023883913227708077985517765198192700491190946079914697265875371249264733840847428331552095532917138532899441802974757692093054767725317111113476875043262760909733833360234403576576145316403514496968103858551080069099975181408764790821724174140484543901714454790544940230102389966465519557249586881383445933720085369811828301068299746714779749310504962139211058006773527913427447044905205196110116304722487036748829780728604391462131852160895979572111778985430168811700194456952370989781309404714902737911254355453548019800900483487897877573433799113254435754068589654474373334902155541349301342371224328531996755573894309305104679931770146554672392578571731765488484173970323012249690747188139402283411728299186510007044147824805125571952623784547869205756492621632768635435762039875173129440382985598771623770427017875685046877917173044001260605677818898594016966860287312733441757017485288286485920672209339404430518882951908917691295769135034044087710601466035203962078965167768996862136967255289900736105672559195395955254231918479518863108348293514850021614164714148849573508772588475948832335738095602591061825907217232001669998321962244743646120160092022934713755818713673733153370514288533510036284742950899225528924576579888942850603535953156834344557790849900275648352279646182360015600941752216494732808616742700330579106441324270290947845864975282347090825140964035371771355862464113158672362304156613117673681753196300886362704589065872224348702097429727378716133382851123761596342163131986835157568961708312100819616514521854008119352814470336398226335649152609073695592539863062979129850621177159893663552426036962949717418061891736207584674812404567755997674473352539480283824524243923659911355449582724045015601930185860934263108892688470192406199981710529680028396501304078365342203351526114824803341036560024760299946643795196206872822039221940715131650002956381153991734474714447226851100191352981987027370867065305806738077735487384468550193213444639796610774578558215807028298391970229304972041253912725554760933495254337778176830680889791015272885628284813429536122118980976182250761940910109185137634153622828091607283779814778474395990685250579070853495352200801527982996342249790564431797328940990581505581181716621544053576895524086255259624212549394806548021829732590427126407094383952166819907704321588430518646994199044099306336334810133317794828603969135352421554139417768386226099411771882046618364045222052087196086055657705700731410755553722750868433766757449500809831548440341573276228831937236242938139400302998093088990984807096701286261063091310287084215414808644297719006655712462309112273197059270641581055034776449451033716946424933103664885449509614294232662725661859222740488480353959142063497350140037436347026855353513000205699276854828984833842079967788748147996860306666046678307645087590732653001416880566904086428434272881467985241979965510588534208305039710830184635462373950462289402128250044533900454496038875873527869262473814851025232276884013161306627790911356396236752248686928607069984949610721256830692433465192570099949154534034781921996397785515357478904153426581728613991254789943846927413285909751335666608436759470669023391357332915970319547678641856330466624714469340501909177850633747246064954212765772618608177582303463007900744973473787785454073277538231116556771277336743095797922237579420431896841917121742889977885895937834992407235527726155233180670709930435363382573850324615118217155513545026717948736463982720185713777684011983514559698949450046433212641703678907034481645050261134458027533609611811288201538755812323665984347132111442252190113934006984792456665002667769080621898058087276009731013391764388565975341881735966698896338010622283872370380458203615150032669665737044606923647623817812722103943201045399343813840650708744700326027777923038318524163588279610117322923752030506785317611439080500402742010606458447085387705600610999540706293033246504437754545054775391096138130796418458756508485115692030497856767257724029367227540101811854390696131569587707275315068832833860488574198096687042241185589007012239085935071966591091858054825507410738963118857523676544142834400276543192811696656114553148197997738921837760057608727754344626922251296386245451872249161803683031018715304106935216002201309261443982002415288629755120570175955075698621530575589380065604774709375531875251460295193679762001298358410504806148696203154380302370175579622271411995067415527842141376370402000520067184157195776377740899832678692758671998024296087997886726877762957155840287771391668950205477850613408380999895810213151695989454653166606945560124197856194923598141921608505288424747751176052113199528139987188966099108086738829943512866435543305468149794507364129737461369901278676000030820631812836172637208211430154007470302671053368143440164604478303432763467745928459857451552908018930436944571760224739836683718184702582127731134375994830024122238243169212987031741665865349861871208578255260957160242726350962648389871898122526379628319685239881918465125398708669226884837436402010750511268065956292210776647014242084314140944101989999551476251974276640289625762091972506497866406247061791320559062443093754162852226964245303264524658369954619416763022287841708154306550625226076416766223703790710020495405375901866747401652500557294146222288231250300561767390612886635635754265133070175960039938067659382992185684659236735011889430358618526310100000803148050029178712851914677963717786805265305617464147258248633962553010831053865888924016653758242108277416577614783268902892114227096903785897948995185632047042503520274971930834479831026355409382851332810151790949025486257891004446053088706881714627447806145074987145621074211173548131240031431703057507553188116877574130985345947191407633853643114207746778217455175325574768690807734619331562025389651961316364855957428620978135985557070823303556771879688340614214388991907927389735561811322124613609765421374368261907431203001823479213214623185877220805368349487488937029918562736165251383610713021958087273908399262374753556078656488333810734627495289571210123030727953358257436589333449433323244595790083232296643571171965062637767967164005635210891485327815808069331152778984556099821145075077842990301322955115785246254342454080522555872897180473733615324446138933451123310023425613955547944164454096138785440890744716656689394893117288014900916180176179821128469008761880745394633567981106301216408470336033965103296688704695882410563542217722199992381405740841461186721652644757507522803949820836865859122759262883128658189462192318324820405781263125890248421670383301728354295635245420752899234285971616286036554350923917228635094141151435872235174665981230064710421270734111310485547956091538018916646549910469051906928226004988669316660269318709466246767858023514222401908761651258337232881241653926501021930559022119175046193429849296907542376464611192015960564256033737438788338451825317502600204621308764528923824346522078818087192419739468820907136932227478382995782078408837875679170486333739192939966484085859907187164138456411666736363950435822679724256744988057731319979077855302310584192374106005942629266903166600648395671999404046706834908667598624393068925399591046581081761142617209834127364821913216900231498727122833358739389670278792479829390280963821491047877039936839518805123693060793241872132144058036810668497376378852198132109620247824563294960992539217050541332901012209838799812777394594701220140384468765205572446577483171230501284266576635161710944304258677205996796611303824645498714730163545995037894383148154103965625459737316596817011195051695766381134592048755980016051768061730044689533420837568519261783880970090344881174497826409708682000503803771393533877248967421999152269165290963284461268444955325535937733132499880656130419553813566093731157675011490909087879340928203759946002422970051285786747067953812028948034885349813150627180413505782302304690800968891068637040460969744995574145325076078554732807034516205721590040236982660626384800902338199169724090446727015150302346435585056881984865112792878440952350605901852026945637123400680298903377545322099728403000901419400143332808898945489868293106445811952661283137778386812888608694196800500745857029059572109849448851286247029205171703380810440830854822798629097076967148722574116753130916941035805848390479840281535986045981911694663006185538885635771922922762389727833357371332244359607464308968517438346964899904688227589781592351672812839604209539399460148423335465122425907881834293776890316171598314917866838776206403573475749036651351194111965941451817020275749744685054121125586092692874705881977186505986987333366048389268906582170988297629118261900261569943413535848777587293406157834480671204392425247558209512652309613714299540810449873815199973251922881752885591349941202552557254856813764127363818670281812534234283258640399901027928654309784963840932443504422207438926202174112332965399543530812085600667401727131419159332077599654383023554662757637852612361780902413187887571522309852604945799743912737636877684510861557154148228988940048924445387577568285997673110922293254098377280215928945845524287933769855984391141677951450531569534432876434941428321826783482836918491596336320198940642126694931618314576640872505429553038110184632464656456064429385261620541601568576850336457580384574332640570262105304213804746201854530801541614032911947869029782353543347602954680445687725875572515180256243995413698539693270926105553633666196602033128214035170161389493227701463569166864795573481772387216568634347144998251944062429411894940311248079273644936885770536579877876772590801860667542468489949688283698636203391221796157208572719069686495138918063623946743449425926874472222176769957915169788026184091191294933510207405307350084304562485605614356360872174566946771323670119630582449160101979377446422822666798653174299930052415740113256045339605394826574211689195153332543357241908636567348154941729620209820265763356394202391934713940673304665785576781394100600660489570269311461350870608293689473514648889361349665841444030865904910220771883560723245207793700374447848410895124310649826071513484037506257195320230203497405698436472825196675771420766727799505905812534661998074398162365238662716439196153349281033633842683340882653599204566209342479381589311858713820099131334041118561434120380146672599721341163869057843286769659769713214156897521975277636677141159969201957096443592018003391728049007734916331315359363302840037576945330270401380846071139398057978831976607832395354704551052309022707009462336885505864368550818282899670589185038890394479863605864156089654086510719963158481577690545149313334513631853093941101016193917552348266935915137826495804457813060616320513113973989723388693462682983269143097299507245823125961857939945292116185619400590913962975589185570224494886777238206746587995183808091799131222819897688320045255221260629355937276263504080226748543938221266105587834963102200882539475194788159001649178986011561006513578435901048434175916669593081228963276940776326007015009812004834328174909867609029768203725223098758263399188601868984530491258241583438814834143938718062686090169798609350132294147648037794797173719265140224129804339965891225862376280721176337440732724745086589295597111830393684671889564865757829129971604948066079717741029960575305365799410193326999817491917242538002545589418457990479478985736987030487847626519941225286333550233914241528517601264722650975153750830683652586350075386543562454209975635738533785666182319356474350035446411841167793588155508497424344574101575447319481481948545599943365517833516302695274778172533462856689335400382944882963126042232221558171309604806237669555226129385182417849060562300140455497514649070019526539916465137227610300180152622708633929960770813210177527553904169166137541876909038391227598191288832127348109636744276422168393594872230547360817020055857008046096727239335949092583166012024306818039734597633729055703552861500689311514859752513880904156010589406646955479257485976760935970263167721333773494395547317671974830502665588011990279376281722130041640700583822140545920149308721348263234785661297203975514790844572220737901887086381977673868504172039587831534261159474084145014535830220478165141867431969444298812289369758521295972831556791556096410454092304666509107205679281612992597839075130404520527194967558937993371182837729194323330362248589231454709304849729972681570924471407496833857999197392532244651629717488441145952031119616518745598337371593151267032439482359581947482123195489472053964486073695538296050672119739903566875954285222044648299323020530269407754467212256474966795766030812456873476911158872066835359111827832116758727489414985512391322245667653226055411079641773249503878488274281626596469171084393867709454865928624324479506800510907739318370446596719720643306628191519283733457200005676408274928859696135322257871013069245692621915094449887498776963844603627061645416911668731741103713928593350202640149563602371926419065795236140209870670884444289728050123145560405029969068026081978210193226514759125222987615088504142508997695675795215239567915501214426834146687690536682639323284284353066712234615731790843649687365325627406238449746169798796858054043785440596320955861365509769835919338410147028615656908555887388556781054727950856332838672651238428098461777160232252401361975250998099836754015573254730573079163718249412858234481149986109246328426580070884154541985247975486294731078909446689467148427799103130410248538225655478365483993778464992743121997569018623258707020097528690114599242298802427236583431283374737867400037239473866176580182703743634091916695367838250554479486284638117678192528460562017723095864454241868036833740402624977471802298670942845530622915124900393798468144060373245835073507796711183272134652174518305835327359930353246281411161778242450606798896847804315900679133177141991026843552800415648021677143766545708788478932505493667265760207314763290048586620924261899094670894593886338446425433005954962364131552894614992944466335815832874301031909371059669483049589187818681524265443242304058128932684506725137024493844970461762524417731916221873182759434673569591465410241001924038744745371708480287686824342628719980080135837077249496203386979019354461448703914344866023948483662615754291413273598088054969319470507757181378883408527156547003785888528773148676940841674338388003460020439778846925190997340535316327455525235762063902971051874497438043372407690881901619945613326471601747115281281387200553155858396521746372792429092034114776679765233130335052348669451749279990020048203151311477770129532732528229960714476240467361406673913456443225820377188820296105086836836976719509157664971983173598277280978521409875066011684115489931129799468643204306363812588799805241645126789518512774765537174804548188195942861031784106644121647043591017061253760158609821538583602577415284081403108052673263134326465429974687413265141114772725677069848639737553685125232675351433701505909802527559339158203578404145915948697387929400731134955563576095725346123258551574954704548684419318283397355932921275324585818502147336702225873367289443435457702474581268508013554875190740361075257180539906780138484436721563719015377487251053536924299163561445604013208641817477096767181376863575669702345951753856118153826035651229449184582054689844998960854832944391187912749345035097886510912340222904891411340438836597743669803942130277336677985649013956432345101441994490234895744919200317395681859424727888656743812151868393918988624772804171222641263675610098569648301520811754078347120500565975967926581597831982475052952519224476469058694108102670611075120641311069546575999181216432104771402697217794095097550359429841146728759720123187928920516656654076448759969114917384102982457998152300121204817576343208983438080259223369285631751593171125573317880092160331524089324775632108966421874426324069066213251562076707801914459985748841088857654661516947994974374828745722787383357251949187949714284944704288271216054227482626889878265891518384947120536288994407666389236756464121622739547439888802742167309584601460085152815825960237388444411836872266778623052766257516791823257507266930846710384608256868547948004180619290120277524477033576135323294794045968418542113141307053208768737921548655768162830156754352048101175045447754618715549906324604093596594831928703423920182705212622717109886810614656878274232844342986497631507451291100348196439350109688267185382040506555769644078133843363070381331683371207097319302878733178544478806965381800864592230140316102915746824816352872967958470704314211403423684650320086560038631774753317096733307285878776986874329601841634478552797393950246081778777713728508093753526650409157224058456410000424928404881191797402543901321059874534913208471373326977535054953168078097595512054959759436405807797491232659056645421167445483238873015133476353611553857120553118909704847299496634921244491076330386328534893774323156329193257605071904323788042329440265167041923209342734018511263839089974555222443713748889812341417022898826457351274587648377887882448741676437729106962737011915594395763926765389536072582118519168986023310509082009776109938459267979934618645955517789356972496235522032915968971405725548639320910270653600543010944045975063252629980829346057054588011567163778561201942578056696524421458766327411322917407216705217962539430927716790614946597543634964682030917031865532443835508573004689939278175877076098061515795786368557559469256796316720476927129901217224557294350604234573444372575204089021050114625838990530874696683167220016314442857964520665041831329892475541372621465768698394268216345815238349074013522563323770483089663784743284005235286946252422175379386021601807695523039661334450595810779392881337518880691128607793236139286966863591110749629549515606252371888955516874765547977790966363615503202256601796480256423777063068879417824291089435159533270398370451827503097779300611347126931341732098341709467569495433083062669311794866280249731095317989320568514168451458502460571176205604308139777550582835536623186614661417381255857529986828547405195946326864602797753131994594985666611997231152898670475921593075229970840144104085675788161926910622468839615296147747575173405079816292761701445911158081488330544744983532612810150577113855986596375547214863955074861801485703422860257586873622790927580749007426221682041914496253369366467385698636482206991952599619994782197179178839609247981285058270807152229354054886624613103310548979271392363427744669423572285247948032211346683855501333967896070465318134278283508920620512003322204910789121605652740883756017275013783507491174667403019769275142815561573106849805338021794552842709314138022249273788187037035127539637650357016984923705038562870125997652569048148563620384080902665358384408408027848293338684532010033719049727914093635082120094313317933238788221719017355776627331508233965467228114377512502791692478301136727960375668027813090555054340602241743981601739800499852958926527240881427492404506935299980043222952672937654924374378007665414320099694225203526675843523113558014262988364356939423596389591837429643446208568299013876278272111501121848455040887190268664958996598363937512140279289086005400354579177836756180547039407269092411260525310963989086336454143265722897997277904545404685946479639456224215978843709859317900567160572326417951040687665918595721335167982022071518417961934036412477906143483458599878454259232230598145040688151280197811292877481693527478312586765472350592185533242083509283466064707442342642234725434821184564244150168677390899110985701279520004866549472608791512021378537902465687614079130056981825607946405662017356464205370504691589465268621810073729681437927499182834388505821070225253770018596516599141777492701760813014897113174203143513433193261507804351571445876469548535448733135376299101717170440743707854844742480871324058974883803473959923454923919227312813206736236152925151180093550252465009754076260626241504228054143607753168710420685994523220968905811810489304572430267211465354082327047860075002433153843167100404093888417142447475559353888078529087502264611834972262566174923910834106306337062977526740285136840494008948326259395764889657962648082780018775387016016257826845744474052155661677063896698566760325381864785130082751367373838113494579705265297749253088042574903711265797280051846115382080671899168869603515987342486712996270795539373280436156977551531693081791204817686783170728019294515975073754451626542926148406646855462598158945091069772319518551072246521934473944729842833014593106022083882405576072520819666856551450029171456662606560176174843623252905293089568004265130652021211536133381159316355986276549738803724387801419762281161553237931825917296590623491325091126048092744976215186275722496623197475548852377429118714608944411008499808421475020680499818014455217550335316399897010863139745697185830958783622705322481027296821246425979873982026336383352196422759589014332074458831663276724029514467125819249770349188366612727588224428606739166502910347331049030574872904788082607605233530073858538580467946812368933042802093909908478726953341210845684462149600711427579689627876628683885136488098736046527473476620740233401362722768773887694930980482807662596804133118576412063504387408996018584859721294119288397309075300477574092243778027409969675719352479477160693368271026518110926102776784648869033045167145212992503058109975024805946525021867009303345517838623369290671722917313734534957915555880717418393617587928918456841663198127927638528504288235443553077561039664397222804867549610550113380446760016000723589559090987559123100318875728969455080168843069106853282017686144253326778929049953057147053923471772741487188161074304622428209149127169306317142661019269317792470151079028766003304433018298357792603484357685393627658398312747065242757206623358741370393537704002473843344589996517916330171664493039502435425390389625855894056324754728777793818868500778399021158320467748854108396009194445939951252188934225908693058803497214512189122750167662674789589119102815026824609123257795825934460526012119671625400215174265458642043461409014091207863694962619969937988048818722166753587916865721313560118980545849898845263199263212546735736149507900208839189454479482130221465452401052450755983508307133474872747399850933723178620622855860695520768835121134864877262059243178927725401167959409726463262278579099018071879577695699600660679682979972153459503800088691654225476783395721605245721773622459112472943715336811040316965599819297128894440556961183604877806342697429881682985385848432336551967579960805806404842752688738089309905471517528311934105939977881644979306202322369171688623744138759031165000628845663977833712924381422338961209444752911151701216962861009949002965579565222148785813755373156671778500050458993575938964719752251159154575380752996911670389498429432273045584384507899542503284073453726184199598164419379497485551805783162659755758994747498804306841974991567050897009442195667124583177526506811533076861850107712838433032135757886815397927216801153758591059350954905429398759502803561565062527510422680402040779262282860345980509514695069627514891153728581507103497507599527634608942672675801008114945733043212848266468120218175663192049575893687137423200265102189392411612312843073123815306080884152858454551398165611461758925199215384203852931448163075823920759432891307739745658158159874837791566604950399797566710237843997656702272620428232206496868805035538417222461390137925901510283247060422587268278052129292035475658385246640974764305148675521223872859379476572886410890226625498831868588384818329914416889550626351202448184781144953724032863753912536804497097451353201383928805103584883845078121956572404084411363669013541760045524203899820787892457322481361978657854889473226418745323972912577375465839540078363680624447626047827318547135628026452149793136218587693495266082529889982368820961106689721216662093972012169572331293372763056617717519415780748923594669742239075097363025872191191046473696318538196334222074111177454982827049578499937105376803870934021819314950407306651524917566140019909425733215301882506542063655439886033210308634506379756877960557491328533611615975232397047150273429383913550900629639454212053571258275437759362257508146432289515367198417670945283285333274094693200865260548018204608880979337756958231157619840288538989038230380374165534653080250303347164185395907214100288121908891498769802566598537375357624808255322668597367568702136149091651571165253286199700763318442925077476072080849062414759011415733152365459311106860694751986866042647111158451185283482838661240802766384251264930903474981333816572286296892820821308160905117110831288471783434736028594753708935795039293502891282356189263092434681424258190928961276013600764535269766661429427345861758239202612912355519420408582123111730300207812741717162611615794693573968257959063423508378273212122740357482746315692866043971297043154515158962575198900647118634521673359966006749439303516048070009668907642038201348975609021812372430782450206551999793577134527340055181019669056002480817288068686659917024164621070509517355750824975285299971722406514345209996504091000749701470510635108954618102224609345496124350224987203028046980367262152191386869525478719376294311205334541362434505395574482341087089400215108880908666263497193945813935003499575554485606491513710809618571839811599541079561561938642229620962297735078538589588313327991166712185474307806047676128650622900063517568754980117364968851887686948884390516577998028851487383573365201505964112537622704263910678634936256193268525222744545458048459238420707819441317226852586175242678334209006263984914443923633527411272880455824490584245986422967910033884098965660039568536309163779876573626683154907707674836983685566435475953505609291857765002717311727329325264742891453181982458567010626499263191272563756073487063961527251461284460490545808016027297920031446705688242892518696107789433215012276435976305135692956257646659691210854274950487674194044109061591331153774491100996236035018239986109319673055273575509305767552117501994992279473070728469533614511162438779942485881225439071314601818032439377837681913226648363975277482295085752269248516478931971674476783666675502246341034182003942844627485049001831003665173097565656514945672050488368014074077262603009585517665547167247416049556972766113469596518624845036628560409383113754978490075784418839689362946182891667421914694260272063133664524162239840408997165838330783095000903731816981763949679048184097121856757518694445865132489527759989536083003713157549735351517359938066951514240144696671800540156196691014484687390229459647979275975933781006822188281075145309395035313483546228124403968479498574933959892756077834224149738041928012224294126198181668963344407015151066364911448140637360565504717178302849925334789837376961518978033045679984739467862686159644474434722642887357924287991639124617141358718805229580954405728458957596385727776429767297085789946615791047508667247090322863516449547847427986381997642654345890770205306884327067221690218124991952865094754727873549064320133695829576803305819861908429775481073314449842919514531056186852122999698135379687306815350891107966821908389511192884079344942402729084517242394094588603985184744589613636062030463673074521031916863868956261293156614184979504327200163905062636937320199875657855553066671553471295217034574223701264999325504977796794715911870677843326557416564360497699332286413322843013356117540054378353591868306194452988951037560852834309615656457450433549333838479449339193301376158955209022992601456668091406211065557391699299011516582521641299627114305666406417622425411138426641109728947048330381847902469409428196742267239347800593437323179903359552004181057644686488062689868780092450393604998995708134373968319077425801152537008609510448048638453163592228471866334443938989040948662861952153983752145720426322059294839698478209597765158491914567346028452159844307730165517825628333102194420334055314408772326735526807972793855654617993214551746996303457372407746761693927255317154632630757364841456253484649422361726230177972126822244723374402490704658470521324304809021161578264315843915509465481059126971340810545151020046869740063575072373636759202700012194279811264388526449531913342930568938482008534107858847598501041673584756995241809956921150729025389000843586018235044404731594613628887858742602117270882359845463402366263327225530715597750852073707449502697115087939407191674598270478171488882674275299547120343913827693587845847754067833972613593464026470008884563417704639892862606602726014123462526941460900952004888939100614220985117987043033465770474619491955490028151739239438807719314685901399923235109095696704241535156606104842921134990132661619639606844882099997491632351262428760882699040053458956272397357862314177363545039585015740664346838473292207745340185251815005507948176514726165143771913655648161770076920914315584472043306993844639102583769659654617147939102358850311667969563302673808689415255410976269226885102190400084997257298521906713339064062490036923181916419950314027846678826465648835273573600123662234852380074139785708810559472245295889617266274214082179315612134119531316179772773059255952822967764851105540642838296578813239661463040499669805502877945238364155386599272339667874170778355091857900423269391933099714631494659230051201741826463450348397612885310888189735520120361573175610868177620654744584683587751945666558816460424735110031255475970256097551110321046503484045444118101757192674002194831920352209002532395729847729660243869699331169033531756832388003224762832918582590285685407370752435850060367697680952216165234353590360707512330969732965711947855270523039015104863135681562730463452935572917778006240720060101091608083424988038656922526667576484599143053005882522986168372446012567950597833872907148078244858777663630428985357971895362560466813428666346885251521047934733692867710998531885391588160762235500059224856390454236539467520096060595202278755246085999961103476384754974192336959644795852514974036415582800554303998710206077390350679275131434134677762705811189507936130340324513249623058913573318024116514479255285780075758881472161643566830745718953389335084110572495634983946005652600029730608994357612075034466484917893753947387506862601110191908443798243091770075542425606966048039429786650196709627373105994446094524909466849838204794422778429676872875644326416341392298380411194196052466715164193394809214929456926526438414776986599045407523143951992314190378345894137593901654804893341383726750690061603397975228454031040512684354600447054034463023809043317989441577608471583489177151342427466568403091349241687356334717054407009048254382291870682053684125098858517502601626149359701962877324570387315240977576739428869461849540433574269732361129227655967642641073885749361130463546788828083559394511034950975873421579314846782819238721398466657590848242754847191555957111726735649942902759988758828195615915934843394913011558761306044066768488627151537226198792008064829449849621534903105961348369635923016085671196095920225216314672600030855584090113711795762667333309762748862018120025759741222056852848461603485826604579029459844683178930326546613842480805581744684911740404238593271725599189994004765521320969582545856817995865013813989512813951422837549763612060878338576226889349675106410928953650462823703505547047343149679967796171583027292997907647396252942685380241228731749897188915568337978545363615471886583404028236440195210297263274557935846245236655244280413667587201045078869126581720971207712787945328270126033737678796769919111837743605060223991770116651654402681325723992532672673450252526358534974531098716236973850067795459986188596859237347384917666718132259471511558835397907030938486553331010899311934581861637415713444735760123536364945563772775670210418817366706634746759516275712780959788599442206916342703393404240602000574961668150389314087894131362134342792348589524516089370861163668734783787121829322004657326943775408019613601717742693676010887149571408129352919842433639013940795886917808841199400039907881360966001772872376774526272505684880243877631397525966770550007333711993312610633160550600519938816863743161629827309332918700402571249153385348118074680687851124511430464087921187603059864985932345782438070032279546337577941851793716689860547675072610047469594040589533474182735443849691349848146035552685679826001697342564753612328758868230648044249207280455800381403125854753847314486577801687545221225464081253181297724908218293217025406107581518441085224224953549174835605063584156537814683019274998641805281472185073835321644898605144575390121350244375182946071896038697056138144111749907596123596875818029456559592824476175910670869496373051542486833598557858849915951427877967434123192438965066435479197900778681468809191042634480842172746003529307497747379540178113868591254428251083653326038325906174875301584686588170901986123085567383909832978350213745225054131737231550294357838817646668408239850306531700297582047765724202651603574981384217909089842174567859955837237311987362398527504900757109470759480716844821218985200600277607419642164128067752517511738856160568267691090828864354968840129648174175850723303971761834039638737591195355747823840375591782964651166958295683476371201922286315832957309867826154099237390645005460262337783990143686210948916492848764987893425208918489996437776061166262317905828887346685928881504139488081882064464038270368698477826812156827501394990439454544313576387780976874839105608026900983982503445339337293973192994004644595784768389444857998367693128060618624794199628885764987851655257594550665173207244817117588393925235632744746093005007221475871568604109818507642278626429879490938201572447779274551096895312937448280008171802360615719810787332860123533319420239531333722817828488889531958389634418020592026365211389353071536614359074060453316561455098354789143906881365526791731994774373359293735165834026570495118425320382924654979934332828832018539562512407831079968021823526938578679541170552220432769493972363325782619023262404593705226383925217839372531643184090337725518025753341259513654799603840709820391298613808237534859975297714782477042975727825581724942367159906019888044883800382751355962796907518918603804236523941903709298435388760457006059695886417699953840667164561192968199826239390556452836333744443712966834918049521343172265903313022703798893172471420028732059622116805449536091687071906464890104540242585586246083998044618137670094083071067043013096256711325983546077017972741417921008546586420808457195022342874064713175522998596332729844739992362230361737358196475219625928152396638856111216441754660932065192462062126951513036459539507710541426551580111498349522613421103576769039175115780313496693660530491901171690710106436158792983495746635140484630592622366272424633467306203964206856396635911522953210978628984117134708206504657133552620725313609711953827825547231081546316797548191377915083469326722550015228728664592405223907641124734615995406869584400092508843302896516822974496661650053946406933499044842550368337449082212250529367106111834212620692045195722764717311014580043568355425075136994291431417190276229279718434365904452156128587102939115181676480488659726513222414957251531994441106237236178278085933034134812248816136246668440622810413710278275228346326964629465950281570303080715822193871337283077644835528664467581560459268563877780096439030013952399999447698409640112126334771817014876466312971824548426944886301661656274150843425187110040272300644239085719886958486400130160582670866916599958858397806648407233522251948870803258275090717823579738027463578611300612812609218464920390595575442459388672273378885118935491055897047098035435713027587141392683920816340958857807108349859057446270577747472196996404286196517537542193826742981427599150096795785084750211578123092521951712144244652703000720028828431640194130298792129463502726295929898710159110440497529908487376714984153475287305944314885759011988108145120868798889006133285444323458213148842008584859784877198882909548713799904521223389908816172472919409279865675243465896789171516552146709138053603991594724231318614425049985438991569614623422202445816581896998998332570517960787787401873591219415141590212573232026319185906323294817746814018786428453759848889014451487717818645522516576614409153984618800808224662413137989461957309420983192276386959249579902195687055411125819420325358514266932673152076293643653700661048375689035982964359697097786824667230911218876544162872352841635396743872528497407204303515437680569387979796101739040445624169577940186028583100664980215878291808534768415404838335622175117283330224932470649522723656567664052724219942085152168745886246538623990706152799342988809659547130379825271680563272740885033689020317048163689048562666430265498658153185807076757689685403027631753809404614214276161742063374736805710928227009308595639604822872553982422213931364273378682193966901898835529906705113563856683919650531918169954722626007986064203220958189361637399283148461069894862235999904659028601559446607767847468894077359735337608400570396440516023608541704100578679615284507680302814852940828139607277130287564521850528403162891747430833453179042116423944648725558445507865341232453066497557927879109442679016336999314692708427821882949497852771432508471535913971809527742992064463793547603724937925899223585054707279941147473533342556489767615823243611725549407636641337392788602397259443597028908926842907949160783572850374112257974144263255387683575379154685908695293019323080673027990554712181576487336449646329199526677506589166976364757618280135581976385355961855225764429981705745240053528933346269800864732784645049947741365581065002899982949156844029284364671775430979574852814167010819050365339644973931738419837628135095241685820597043845947505721886207978303625842766024466582535842863000453264779730677040735044938916850567746062628027827611560846560073948346049716672191124290728338497114955839186296048137170635616433618845051401515540063041751277622268886923906968090683766338807258568592233298753172075977129068932971050260342570538337307179795540063551155603608191956798593490391093092123612060257780826278549577951598183831987733347274846815764465057651652544594326606901513844668637735195996557769419477046103299192024914096366272086830815025609246239995383962154417950606127284983956162412039204103526526790373339690425437051823778085173590078774349813610352983367706599860442516663906026962873042812801538229342801824095764278519608289762499399921425049398680207273556734736031896304609845508263323315024096693915652358502552848124992095272539206959620461341234604316998643725668252685226753963875199078577933290225039931774537925712238304161773695714803860270612865272171620231549808016352222787286775047939140148368751705041005038188235791997926331468716619658190139573559729336016302346564718510210724377581098375615405424783078291740356345227228002132349473847998546257770989572439376452085331785042500087583952682465509377599084803547957560667758183620363910308948570834279154198511112089770576552517649066579202782078457272472450377122351986430047527098931925250548083304441911554375544230898175987317081894473309519394092158070471012384724762476719371048473863962850714341136790787789051244008802981804439988214393363978580566668937100052614680720100150308632425125643318030304367824232662521933934002988534646784779126782135465214397333397727688290790731686935037203761145681908054340773409678435925966820552490267181573697187116590420509947132334786519033857191908633546406302932465518531946835054996313333200169896457939660297968335444352151408894902959588735247830683984666489038313564500184681601189381646662750573240788880278674628375368099486325898680369513471280910395363000435830816025081217099168725448277102006509008220749612318609298649737159053073179334458048772055870590183925365585007702479668487823707455452178428039739962145166894159904079770910917433765081402372055743279457275805537424132938718954648072781842151218778145170456994377306145854680933161403481468880293090204590049399629913967704709790609376480240405493341177475483068539606966445732101477340496228535503504678468680208270787705715643717821313586917772109376421878859458266104438256303804840200577679617677939165835357331028637426900156819132039849847525096120382410067261809227925739649257750137169424589405266867310008995510515061585441621658019596463756905854010003473450556289962087148699827145678693776368707988862953018646193194291520141850004773032435861075306494078196005602500173141941256074820411723301100288790153797323551513664450074924014509249709038444787168824917085571721085929316892523992157507256773107465539253797463269692529691837138354437350188978306377362337409834986564959561032000260644919261615988160403255353715133168246454284844676346059072590843918136744877018032810066203061111667304521694358433608554794711651576649060547787995192884586317741198665840264342953368814909840111280206623092283194275381154890142541613024256316390253191614229677700326881451385976076251389145828008350049809436271601378233408194162361827485631552375036697355473051384119688134277562012068873507752886401140415879009930795367843089368916819755848358539001781492715733488908342851939577201806195604937352703674779299451823411653874282791959924243193836976657254191161754929822905088403213838583618166150547381729136765704738815319415825098078897713491425980330743479642632572606562255278868065141028387751507256725917431490745527249913496105085942129969345213563656815936947071259457470750552299232705952102161810488413693699967962740397175120124983240240383030719601697210192391958924651910065725360694063939969208951599799727816146926157050941657044471955104947345420366053383491555172125908594401984587405870139621692054652208432232040082557196067715458656358250219001496432458317927237338498590999045170373840572489209223106974855048676917627150088410788376394407440620176714948016058483949526173644906622469098810105797500562011479619198062439189074871297266478588696528902694635332757340851387066678351583610294410292236549962750914281788980146376900314230047371892574801280706398712188039798711101306089812268382543137008589098496466492679317481505462278531238900808030824417755853378951632013952745036991442858029222669788777559571362228500600146355849769692952667724371458800157768977202449657463535758041753196607781100190158794392629791155736277302217982086168627003365904371923694531663412772604475823903502164894410740285988772390245921655140882022922798556342349908366645622722402765451666339262959114107730146926867221048834671133326739085705866546055316614566097890405002024710015698353220977673431208037962455056737050365823205494687421457607445996960573580119988429993726133528431722677162694683248409856664925693111437961149803343287784372778827048136529268227786449938949319443110049015114267063401936808199038289822273663537409552891700068609454892488506566430299019253778227609231187530468255608010558992805232160554634046221354141754469034996399589336339584694721787116676082420351796064222035829887894029476839800376577392975680595783476088260653921861013609461064630552157453105773977836748752216578789895718787190403235183140130692232106106176283679939765522348729165083948051771698887132734742704466164778533628537679541110771480035093044656507346293717220360096069823627990606543128106362151508689521787306362292759310757830719871301331356353728347966220295391440250667020465086586653895981269439738265627566649111842777736360382746984049176665372756439049335412327317714838956593386049049043811219212018653621458540366215729207875307896679028998788948830046262935055749366021376762022258933572207951574699951697357168463824459308648328654124720997954500795129483757886365321682446446930567420188926477061989827526423830347904064203757153172774779893773757494749805323902350087014942419883283469480934365675969809545057952588743839662659314202172134364627404857481296609340580583272680343716330066426336884329142657462189611016336233657948552365331133188453155602401923669156854230000324544498423531980558018871407700448229637705846273845182115978690642964785992534317423971239220484819009629051504526880598880322958802855213502946220181751917989423849447182950488051029091992219234175701167750569464809976598499401965660258229719334797948706798737794988931351502025921039481644353404709377141602222172074595268171245223351670113117367609119800619020243803041628812272381453233360728564588110290141543364868926220728797616383559481326670048196787551519321565335204900699901643101500080306408069557400084599989958752385625853919793610910532435667365263907959403022780978754914950143640259339453728525170160692306332758758198192193082001398531991169987522005823340108799072155192198530435183284137640787095050179306419519924224356060213908828908517581184504445218586544110797446588153925936071921506512261899067585328442894012527608332479143869480754852341002057624594354450631063439876860438720187520450651326978353209947119075120709313015685496962757719198010958659097942425295441982936757787238568114600987595945506678710311425679624814768102664839817045647684657025827175034593138996019239206151153009963221222606672469473891112440290726942214518426303767128266433097775625265259804832462421101910150239198372633239684213012930374343914548503935128186404644081693586644607083542771057374431346746033836281781530669394758403440185349003242289028175803491540734200975502056352006011976646274178770078272179218592879214836242265131919426196526963974859557848203816914471646241807635166802107181812385041518193913566035251322783459518314249417941298770021337275296834037906873530075854476569181286083657141990772654873938494649935191270372005331252236345451721102486991829244512280043277444744053145544721963358865961097608508779072943569740391463599004808668399260309540936499011276163756004910126797525859674165758804707300601724545917956851560336642800813386859212443268140668100619518713871572150773861033928112932386482906082380064637033435887507001952203162477915214949911625858311107020922698551596351506448581239117128519946810155427129623857228177009699643344660226298840515523536504798834200681807637450428491712437566994819302799564731939183328308643855444097539814923674440470320130416691393643047481082467731752318554524262120146105602750865157746408648249079130172483173638469474459680725193232032116707590082439725194098839921252931511266298058556416119183706190518160625424731405003033044507432442301753496763611453698058528326658925795706456913231009792152095574061025592234760529994683983813001612526649609530351331618744423402075833321370166345317616052429976840223798240070540487164792135179535999131584115205756760970193780059227085068965795445086977653595941800400986730105798079606832413725660988142124345286009364079877152008206811340097178402478296830496211131413243375731994291722243539447993553246301410146980981857666369642918936581772209094683937849352184724189196305763870685854482953140269965976936460053806121476946859877531804761493476313404016189066966848033950883066777241373797445982281752143850072049411915284348567279786762846373992910664863526707582221719012881279090636105343456261779069213829889909068211252318375963567214136598875668682484993688305986196491906180899483374078036944166969629395022412992807233040694209306668020507859705248657271183854691835921705996752614007838312881908054395007872868778599285246990553161586862760189372527097278466794073240607350507534882820123288710590226403669966647338877768450718224773961655564850636743731384324643203501918710792379927461418572560795084021479693795029059015523139076106521987099478078989580264530910965413905864505069097573585357921573861529836156875430875908916165665498449512314609281407039158582356247421729202048866926527280128333383516428178693333989606943106511280481506052078636204294430328366124058742715750052529570683789357286856777165119499190707389337888022313688062978236286178619720473477319702752346151610572283386740838593006755031121311395894391251844283727930347431325453591074286492814228513128658867026139036156861421267367532793147419536333167447045642895846671005339666041976014742736746708206776263213949908380883866143535314796654274930205839118938334587595183514685911559264834856657172542753771822272370667459107864814085310892656866414317680916831048931355139899514934627666033590863224518296432208626208419351551507411102219436378176743973818257897956160297032126149892129595171827633615797739674912373724442946194106804678489562812533881713077358116028181974709890758357924191939292970797662917732003662811083956570932805831576499965321461522808524187332142428433431038228985197001091323670687885885070580216258265955990782585715275375127696539619957831578014829076447316660087431478604996837351654660077144486538262455499965144485039630618739865475850059923254560033308739362977430854290141030489652194662048215312402644324581534316726101762148282425061099098335051004632593507116631941977691098358735192487400861826354637218535918645213247612351299207702966002939456321469352411349674357824688246787835728372191678725790602813284900322526586184533717188520931794490076616577901612982287661954062593685945062311545621574273377180264515654407349338333287228189577754585765922813627805436242241401132211773058420482652580498259552645831483683622925111242819736663687611616313335364934751574271445300364498156590558704399447310611264010980188772206863475030635240210287128468099091902332738024779844043014858449272005517034574210312902127226721172529683771851580011157474080435174967467843097188784376757513443428992235414087701295825662317109039632753464677082765276722390603029225867755885230429913308585985925792128269997566922398999513905676284128957705784432161854663433215407945060117558556310588055303601595770119588912202047279370113396927407822375984193337424743094329479400723923481244837618653946037728852776465405926565165383208328580756869427147071366882054934481066293959716603357781104400621695591541465802053674562019056002477285812389398383607927453427498311509681886780153167473083611160751323150168767618467499520791051772172016299766189783616953599684765486001315314858565556931411893507980473682421666148366156418542242601038213509047831852662875857869989984926721356963497535030181979070547509315925881652979447542075677414196226305689639605132446175275859709866503883494666656731590999757949292357124754342428639895842428168381797623801892150525543370484873161733525316998458087662591913721733722268392460378951508010345614861718866802300842112920538118933314903823525010243339245942797197078226189805009891471144588625518841217339026993337125816031798475430636999625637379695998254406041310384784131739744159667273248367107035351283857235403264658030679847994420428989457506026974603742844904338205998794628133312282517385900074350430125605694536184399822987569792174213587741471892741880086156007406418053573093191254870773588818420232560005072897293323834417220447984288372272112550889982405344422153099004414864294704343705262029217713306402254249163843070272126851610753372923041497300663160540743359884948665302741469674186148167483323336888818546990312618896689961780882310156560197013533882380122392419828651027522247288298317704742357505140384440510788573539523064080388870304289865138502311573246414484873527589643825146763078155909650036638820247556741218167404708001101832015386859287444474557099782818785667067489012898029721925568744969946109369264244494437620798750282345279493067116562003231108665221538400651761269242494304282346913918460724334636058547100501310642285596891489760954190510741585542732261617677040466143534089359908941624392815103366873504438179894534297936277392376644362207193612441053078561858526806729028259863000616429987925178401038795988147754691929180485545793377719365094320058664192680516370490787089791237845243935956482175845012202420395530366201704085894027933323419698463665473499047098006551892903733100630906996072916638975223204187574696353760699082354826349897511683179262825993533634848553147022876189791794812374605040486039339643374371689136297334674312633318630448133584172157006424199946307943000507773140351960416539326956898042153104802542834133497114239419937960250949335844263196852678363716255570062895121822940347630655172578594310705594398405635084918091503737105136174354157765519621426605835392782003321023992759052481167445334352696464801527781574126566332412797192943757629836394600480137671320527288639111099113063267371765813761301604644033949340333775510187595994384778267964354618110281574088509765560886596574676358412250677578887727859005772482675461876200981153077951915872590868376834598750315090292879649487629956763003574942903373213859027638671038080361015902978250242373958801301920293879158733525534792749089339265090284679327799109505264296640073198744369505960266029464132096178570435540148980039331381826315938211217097315523073458309611921624861787233222466166978478778359627567375596148730948519418765300430473519941881904752923942295151407618262491674260612112172654693905705915819252353473564885664377272683398243546389690592656344320799768547479638627705744918348970645251453913637202118446135773983208521516764035296400536941702364826993899807967044939104819379926525935933602448887592569593583619351766153619378633065614222853189299205899020451947160896893468059005742617722834475144074410463831944688245325912997875451825922352961799234144521456897352602661795153380114720664658810622352132506643942737090056070987000443806922340738829917041733315831573638925721368432643126753932796517993100118137513743583031716024126335548574151057406897237660275555401734120458303821956548270466126364326330342650735800077454193417651467968098269599951339303525413981518148365002990103768997737182581904292745020067945075214595985002028649853069563462817547538743919726338468027558731909690051352551010994363156529798029433979743695241430389397363224902019094981547453282529019258014772861660822613875366229153185617330893296997351585099269943254223124789395841190727154092467023686435299612354726877132016122530128898672059789761867373453389845557085196802246720606320502117651963564245208609837188284374304344007887073014492786795015004056387279894015030729196440108106671390006141484233246847800706037459219874176577528342836898600171252412142328523746045183528832671289364880224858407751264270297627180024524682819424830164171544166510538982478408532172278173396761841832156368100162214890274450231033953429044423540130788623142908759764421633136658645439454967079349963582026600486555652364233489920008114658724195313329930063584714215035480226748405402028012208263316196757955518439109584192157986876108841185358808779599665263987336680857656234477490409456235309542236083609709804446554060120051772172294068159571040142007467368831407226300860859365643158703941144165909934342105137798539102762910874641445895942477346648229347522488616374805088538840132865788831799599932235343491566581897628145428953045530695428616418142829787116349001314911472425116055904675855798427070542306845728164053328410974485368748749627551406919727537165970515851968763534760166669432967897415363340959700797722153691158295693346804077058600598793026269359852777017098910502644246511263380062260430066851309338747064749128130698236177525285580357983643411333450302605833920577410392963048035288604135915056001927700252989179070257765386628883638868214710280114886025687383457729104142650523487845744349564172647748592427437075784568523931103071659759993384356482726275031557899949758371581938251800410966806756558476466407715654758290504200600352124703744181213258097500413725520185851616691197915956644583581441255935756647370234677194097581915363722336937085878433753380360202541014111989505558036388462378951092650069706728930175704557212793721134022676981861155525506189509447364294345182998288743979598532423751659925500300397451228770618479324304017696104834234441049071562557799249185365498943465094076442148147894424639520334815506933659748572617800990526560945691973341440675522165956829771939484818974905089873216080299302212638425186204695968631126821066528931644323790432613636197648834344290482275709772871918459184264884078300174911526089367243484167407363104347775641685174997625510609076206909493635571364527175590552800853491209934910420048263334777546305798707852802399138877086519621775874177866579987059353866776336518911902368528800357387773894615962885918452710057557842968738860537826779405756270571803954505756983614632653687645237515019613220172419977186295811345349462703826721635790384602302114020396148003493668502852466890169525197836632756725032880552548920238834491662179256339390649917749480462774252542537534471503957798940642046947540147796669373653392443033535953617807361419300831800838482802017230053060857083646963120063578943211799026910691418937775831194555794413915259840812850521849325243938264367702730046865609105401639845767261413336645317163988851609848768229600535601484399949733291717192866715659670035085351587096846462915011976837406463293066490841952113212308187673983834653215196984430553497897031605055999363274317717838032421371142188147652085877563659013523974029104541204314876188814298694620664060120223236159282536523476951307724520404752219572409450345630401614135570058028258545972041343683365147099021969296391580449884406290530561690515536659480389733097206671823163685950704831227746235487081181370477913940617137400542422373786137435344123166312802701366001268295544570725640214496370060190525562720662939958069580380561130244422235344849520239701157539612381521046489175494126315476377178979726394440446355278578539768581800184578903714691695599675645482544562440922732586655061067167191248730952551714311387361027786877403636318844284694671087278898465172085504322771807103379095063080115098951954682695786627878566938475846135293098757745562791970636781566380137017106352336793570553716489229660532651068020714660793798534016288311354115249391155840837834074153510689350441530133970538035868555286969979316093846588703361222468239247858074683416037089773975070844746465634047763605073644746890972407048895451276485537328872446086628112011094536053020193367029783347864710880889048988001308243773618187603740448507599809740564476128852347249224747157814911894371439530625248447774309659223725041162064362615749792145385226517785638792731686695228625406341821483294819604574482715792501231873690920190583392851784894048143343475344144931817715276229081512163550455925359936053494563048931217027191762181694865203626095304995690532751126322710976325928506262756233763125207510855926449356118214827652250900292130845177133968699053987479685177130692896260973325018644741010382053861760541276731805792906962623734646520157976891083865404064980023878554752740546490329647799380065237169601833120737142344817753773779875974298747320215210982403405715224452046824609796461271427473631373658116799562532426983128891996624071083310276879764130398132762827500580277747806225980842348593867124204675837100868036050231760872361258935133476033557954057607467650881516755620780420011570754964310047386137881532062366220371330027223401057959708366599254661849400206657739151436220569246542608761974825778916285766269959693788001600333831268336198353150941887667461245392685319172382340568952449333843413499039059087257431455679369472945390056447979577141183920651615533264388134268629203808450818120589584046027544398019268595404438696849197362125787907131013375098346879290279053449074710285275962763861753448653005478101537015207256020005979150083951905613628496346248990462476654078745459113283518049834480597881365067216788145992900237874785275651758192407052606012114948088784142229053869970619593148244299776318802866030785708509668418441440700755131279468606567833120462324784714503409833962158615977624317739304223876420918697914422671477457571207680866191595545245034021265949733375045463870969122762923330068643517740602697819337454768949478743615243816597092066663061666711260106617393943597263133903418477708163939392687799787082010310071425396858429995904647812006919514490528296193235721342574372524018967838701526201457599238577917418907126576487765554123812323277345230385482403498607205917028025237685446270407840074726597461040422551292419812792218642640687270328715383017140926051793716612567367352258812715722985082215514204068806165383830809850338933296884193319442393762610927382610371444023667444015120765683476359196311143585301001447040305305331596497257810358781783094272255860925558479096719398751620035207552902327299948291727727581622979341096278541911541573934681321909156054129805686604387893508929443047393640031499570939978013063692409115140765164150022571348038669653753995070891697969904553485017361125456695423446349020002787058647211769484975664508044417163531199257327781613205515908174035346929517307092892606594906652086606372543981999875370731689620993076019566077549133961405187286372864426799594674837327218625844512583782007034317742084900654233125619660372651534894276364140340190523506410362149872619005139981517502755579395051949271937331305059174194445221617252235806288068353164466517547157418825610529854784567579364737561973379645777132284622491223558297876327729934186483399893300091573828369625153217556011838204894586585608945120822343377518264214981945824759553566809710633072487184827889951578434901731371388982029954557467037193013966093744303833277577979501625380526256791230595154389876698229852863521201655831856526003662363355817189862511815345104667197463398239402897097102551971617604752760550620651877808468128197777844774069229791640515680028255542725979671952218193895564785121339805964643937134207499303927151906298378347878241636021156895325063520006914885553028999234054443463972770655278161344141092604255065100999290289183135652292319696348729015260160246871740038873673157951451039193662264385254636115888165315536293304899349803080135385142521990291832058418904983860179437512082253713973044113642459174924305337310591193863411794005824363469316327868802047272425188210779988684297680329956898917812202796922063878210188516571322545009922209909649973527871762911260296788636304390024119898591591190397294189008166010926172263499437537901204879288548709357402967152139935933795328148133284803614198774418783847390347487990312149507612955580852409337917006439580519106558794729498759420626188476359355504532503419567539617009123119025218796289376424809660265226839544682851203333657888328608187561352236375150110485555855489320648301944626201932676491380445242091751853605410163408771693086545523950997477129043241945243345497543255067010374611789931627448100018104097452742095262726770425538776072131136341582374724994355465257361948196887026250083098586558009781569611314399237078669980702582239127604013959832620557724103727392145269941026348957579912279382194778204813084071554832893576558507434179139288520606372164317068158779986797868511687217282059186498227585691095405468434498328118080912298751910028431738464990399420540990365685846685965954618513856300009645051697759688737439555992456459641925448714372537473749482678049409090111477384448459421143975629553780391692968141784811665765358547438427518129426913696774649875247685504414417218580686784548651223300212322355011270311753671176114704781959428121809755551254421719364235150924653326433151419639205169567528155909520648882794287259785549455290866104736295705185530262069626826719496424565812876733410482043453486828511999301347055788029726724050323465785212867501020672995340220104931743743982706490398420521535614214904896434012324886803127244449028959531130226719296332419890916527521165538834522697826134367473690732471120881557852532734746902835671960402293967329991710209994091910781355882610430292652534827160656912887837179360463300340031135506692137996345341741052164177414910462035789755076759307517584537080605926819784113382611901222203428054264547353711710371984414697439662507117410067680416859252955260871050314795378155180927303771295159668486067087280194147077614058191320853379604897493438345872872026735936369808398043356785251338240174323402525170193790555297875297460095084360702899488297447003377398201484345443189376209823140450234652081060928657394466927978632590576479862530754778354494424277330947815398081876565039429626779922473061318806939915644962249158904249710132452085948298053358396453302941609645668261294483146691034973202627984190831992330301314552612907348525053296063497671834900155753388866790313079455145765608081837784244916351254171266780266534623865345131167229756985031630373124990411387258557910297437810110216634686937124622441150855978603394329004032557777149329976071664377871389509434026690592419844200448367596487593040380929284465294054285962162377690188249660799313990734160327736805620714862396027426863438178066872940822616413347765800386794715860500016974914147665783316960718630009889044243855196048741259298001826439552599635183929661869793699448977814608029166945933244200070781596359000076246289225653529394485170055908872102584961563532848216012591206648002308244645361971349021912487422270756467190635731624722114441904464609305033264371013739391679049813686160526721651303480695630832439535073238646156183868059152824609738102511970449353000726788677163179528026701554238586283624536426953296735383838837843319547996164787940775275452831151547852030508535564733593297627771890422442261359744436182694884954166478139539043328541262168071586954976213212470990226860415975548679369108498919628977715161525166665074929848742814692001131095809512599443570432217847007722322790686756381449447021695249326932677608769088678810272913474842544575338575920139261607944881216505811763118529252559776537151044460313440750605877443213965303479254920407017695894037783588413604546240147487326754594607212945071511389769373453329381613277140164261746103306278248401164028319593035332177053230866118475449455457687130840251266422361629925230722761637193621686836652725085969608523492041196449598816103313695521112954548107558980935499156253103203453863948960482246381071092565952142881725342487926744726924187998487137807219262131834978284519125860178383991621200652590521555239424701520747706054790069248940200656525575167220826766850914558493762216835365856034553917795039447610510030499825458993604618260813470183105916998186864148021471373151186558381258110379382785259138828605554736607526342843162863658086544847973917366782283760422364305184320006851488581674346901523358140567747340778586125469094926174086442248371850943705586057845404330127588699498172998200478296400298355318413413362518598524706018775869675988671300265566295749769670937419924950582630620601834726450247661899202038003036866044558106195566913317465521934170388311907831621993589103692389969418909423541039705798637846773714424373436134376589328836369091017866209265563732470900682151581303068555902797094680403583607012081645518010854307483737331801977094448558480629946780150315660053101465268867277130499100170754186499499016020882859460797690870834346392175447414911466755551255273040784476447122391242761332712111043194029171973448196302000598073307044819035270697095736186280269375393992508371925426870034745816897132112956931451341788327292648444989749548251461060806571624039000735310598189211516940993048927408654653479288242321083396760064178630922754083880775417728549826091956020495393098012605585153624746853854216127681961428595714604017695639818015137824552185007421578395280843704700457381707260602116516620836547437851330209140130134446495357383679865119567639984179861022384400677517180923084960343119959345809207364531867030219948072939577565386976933464283953478237447926635058285938638266722904219723359409885479232541689158783338477772681547123237148544016446527227155164272351277028021053055574935707835083695037121761726766586251195737744608849437753532397318281277110205439009633620383075687314110442383270655101213186173420904601601799244791078085661556180651093820345040945695082162068078451979703030870349142081186485177261943552753742082848835713604492800255621579037211886898104944531737348604529908782076946233350153047563264652778900137716773759326602219544258107443081620178417902415262453583584332983644705271841487638730788053798784716611446872937743854152745327229747767634566009655172506929481141898762178567790054460399619440841867262876153432693864312518613600193834323524841869180654455692030465104318546146121960301703984633180461137136479935079922223740164252325275061036764367790504278367656752090127524794038288813932881368161221941921338896199198087912093898779842391965635566534543530185069171783505414636792867448891443389394600399622269298624038542461750747819067662648138829081796018914599636328588523683028932264900853391935975767572428408164613570913425463653942724695157364932900224551451136473822185797670467650472497601597559816654702426541603955529792266799795232313245097083884726597597641800665878646913171484416266519681170154371849604273792012923488544064563168973673642513073656313359561243649528314277089007997015707244324474465054524593286314367928446107061043259458403501748798974426389364599212066028415370787861766850810298448639375647026526691158372073522071844813511450933221671687852126206613995428311386079702503351752808746702509970079536148870110353525200394226602515183540217517659857629976086207293038548380888830311038583876887635225000010193907636135150934419196463311342824298739350269680904110326362288230752703541007205502095287909483317791213583863391839592179508153612225763974300252053019513423414069161942095465232937216476890588316811758070772972020614343116867219269474675471788052443155487315378239253183485747329645318416760011230879825250016297049223254767691265916564723025019180268753643382963653734234859229534134180507340405314887707148215799972669876936338839033223977492231941380760602980601947499016920852021486167680954359598769523120801007644089306049224578296255596504401596467215210673307889874763537695490121148888920483280200564761209213928426812117540052743037636816259200087388441031932602699316688594351044178976897977819977007582878261449958787782450991784234174156947091619982921940278627878853019619249921940727131227843982998605641099812773747006009545593327690035520500693448808624895172451836990098545289877472300520188713937450879222800030358933473490217416107573465599193689403819633915500913073877895390518927519975505788157714076014384282727367695169535637871047932417067244217934140093972771877313957404565912356685300440079812461212423968011153212093947417601229365874833819698388360991172521666834304295875817751846585730973511577787797674496102816102446247088770531773797290080857603342239170937223441837393858444254390286069411967506324659997743087652186533953429863654493145867659280058711058721637710983913494878454855600750299678273959381675417922096587352817337266817842751214009105922769100878960043927972793706809993800712629453427042588417918887564715137103250924657183525911162645944651492812075534094815458874329980492438529431454570992065546713047803286764659730007127642692432352718341056885118860373231849635051950486445764102599727614023823193578863114085607473004092536023848249547391627971487708790134816601595049857422845313859485162691791747698486510977297298887053490347701285062565026748974890335319612276978153431954874413123085424202196271477873296015102821528046209238815377218192115821612194684101068604534521680768178807308721954150900046753352439551024650647741777970801131029546570491839665356261397751521447346923606691420667402456696568177543454962993336618252497127903491001808636784185207312348627767352480901154555002569518346582096059041344638274330968002395300790788703603542579389222935639458580077956778230482767930119168620864361409156914052269919557241800870160510718785344874990893168476250632853154098423143850232320027856631836059769022494253986605324981165293645737311474765725503739053515414371402571601554734305377812284063965944323143123465433595413019610892448203109956931124856670715399578559134885329110195301845244625271113126870340763613857574433881065509160005441421154988821930574766215290055844372117414006855027978806805769513891589305102702245432500581275379449104345368686766250360723413739891129856635361687672577640088846173494747129829184702220315558518236778502944147921974389934644017353279136047351783499500287814645206099037167113899513357496070971248897026671233548190452097782195109418621976818582626561533534346009047985475695937578117710347563514503200856899884929462732645708073109509595599104374564058577016902587058099861436375289212482008430094739439314567119032771823120358015709899774010802223541921514673140099710896919376233961271337559344167234603718638573365529020014673054190506639381491848972134132723944686888421825769938944459034784783727548406649727250908935120140606733311106859142070742530077866069859125330221490265627120291811303159765198905493461688254835092182365053428905422455691518611492841745856038417852430327450585139165286039625731170464234202070809767759435098510433427588377286397807732806535838907926677621057897822593348127446267458911711284580168820402121027355837021735838959996132208885831245988472348250095857630174414863759063418585694464982943404858402653644847612757132808098216677555171229239170508041070317172240549567631884524084188748557893025691274662664727707138903087270915480695419406291455045539384264406739239542960237286152634649480611629345020919317930983258977451559618303495596550477950048405217048179654620801457296483654753825113530085497522703204203869903679449252726452466763956121982288835843390444225092730458343403739866275420338047430865991110812327439371470735566088789182698006797250849744812870221422441478722215061209699110241896279605043307889337413508159342192038280899937058478948412308474713261113707210490404436052663310993267485682245160522267503310424753384168760593883437990700721535229205305178298658608222867314470156186730214281774592556213754204050737296228282355956764980119231875505461415636518493649261355551515026647002548704440909886718047472676030627699370367149217557259147431124465326408670207893592418148017276234210814716999976566547036259441701662368780872138726023503976802653130470141687501363130779096034845538576640275159918464414544402944910988554398398558107808382455758823577111601446198495599932066920172589738787005621052591714243778745264962236389784900306691954940334876765011691548886697584640743340800853345794038955963185905660603986008434637014636034800215752092652731826709608311874197753081693675522626464562932436059480476048041981256371980290616731027842023339583866861838032580095558646436698077580028182495038233076562745564397485206124767384815296313229235810262544532095202495477670230723075337264716836591506426296175669643591485372598389431811674395640444924556406172146718108109792701792498424561709712837749794529657550302028535530667090430911703647827944729340057559781255222662171419008844305936073324598162403019249336942802074274369785672617268854567799953556578256578717628337144755372640004312196672527499589439199068881216874061479411391648987164266589071716405624517742209075931151689423904113822531048103901203210343428486228535931876456090609433062108923880304080484999345743980320269727001335996807177125673223507501895644739577917685469433078653550398613714813302350445019545360907869357076482733141670841242484059374100599390611707764448549507693441050157535752895331519772231032104526547438958881606453910536298792652367380016778385699394051232185795737883608120010275764889609162070113285533917667198309306242155171395122123809245971775829701628988370847213196175729065101040627259373270275508883086804098101908830959898100068406193640496192575712622801528128152570224089565246747505320306125384965048766994685559323719985455780992582049699760175769342141632812789108806643452509251986560470323286140227859428611657865127308212207706154526843868561400748931165137444876545578841861444313820562872677033399378140232658479564561676989033357690358220390030196503460635727277291618034165587791585977255296841565160877587689989013070536950032227278676789638846050509343794279915801802414615831779106092902979367781004440540516131180273088607027459444585612255698768216188199274411414779687453006839393663971376906260305450229572360797069855513232471175700751565511746770720744705130234391278876601591429746531563841522170816497102238752361578410053379695972630415681966523982063393306536949547235284732242725314194224187611746958304996783502133420651646407462483743279949105742946026847794532191831952958175093682549650984185652005848168101915965153381718866113895198314409720138181307794757061953108260606096564888350056727884310025359268249262439364094400639658304873424028626645236619510535777359462300405088252296663140255486707738493412862939739610171544846372874207260503855380802393154594586252032739432042351580311065287500779065666826596074001940976958876301181622329254580480589801832589947057542637900312577976785469142310014601042704433199793492705253499534351306319292662191829492558896746258931954363593117622662235084842310131601510376723051407738138946126007180509017379919068440021018160532150418504141992361193559727525440738572504293916097384904891142064792124708959028832471876574421480977775314496610102875974662289915712752717381340407533231460784987949630343380889241057470324419922380238911536704277335636796672970496371912008037869378294899767584263235709039937588081575997013333444082305104417875969142586988380426025751022483922698798540432207373196552084582086751268392543647229787924663592668898547939638519867410311984136949549362275442268799478511550027105600201938952412364438287193479213870309788427307028292031738974694075314378335310696153471079983430014729503250258190736952699930074229466836883578801096179668172808088119963940823834524715350410548342628380707507050715626958685204472683626112886576741586944794910855480160888573727616256133973011318661336077690451833029970419212750038903211694829323577265049543192313855804326578226336640825648349219026111901257278071138879252554548009804789581646399014904341260601545317710567386909532978283084083712819443942160803743429873328036014675973357478371952892258469115603078843812327153865276927304492913428522455820816702989751725781589477081821901934922222608144157481649473647840317778517043630207143744779122666869016863395761156667911895367261909358411391240096094138041560150777862050209868957997291240311961878214913999128178658440136085535994554384869309542286718486897178770997398941554651209879903635431009430486217745253311854900860560597441075713929747485340092053298948612262113911035879201392610774122324205768625776739103494329687098029573915228606976483349394801626133146326163057741043627840935854457427320309569704176323102412442562952598688787096111325775813760806679221688019537553610173542819770461446947122763921191159418897878116096962635081682757252861704669881190989447633325009054476884723872611431042757844122859901324004912215931654983533963048257897958350051565258587976389588700835140524001505045135007218311972712012711152069987930513025345797634199926172121087466103896098522908588570954880112624537717527696919719355196400949217081884033222133181353265973754464567872521513370305662258635590863157129218305544614623845004604350650812562451688833173141182324632080836399442434523374002204506533379073141430936402601967352534424259303615051836118818780889283793713654388860159808384536413048311229563594132607195973856615437531596782040406957401934804681013087329268649795531511348239501894356133354872867923992060520973307450612753894261936164835351525752967949889352633428578720708951546351060053820926975037738214634495659309104844074021570390894941457498736158732114912048808056872310317246520365972700416960671827153670719881383973791610100281051257722731577672428745315842107693163734932300405500895568600790411593680439667837526321580091964147996032884932676031348104122676454730705112308910309903287956455420138152020534843205404360253487001815361922128476460931443572613224051012234576997067677111475170862123333983579533217405139910431366933915470315623365664381256125306780291841032160156521986237233519094113553648191854047495555704907889797942059379482555258747443177554927723057819524401783744895291828877050953124509319729217549964433253904098329951479723273810703400237122643211241551169623228617390033584539375402652204616482797091759747019681555339460473442860196445143615683360389471806743344347841345921327206588525798580408021616493011982639146774806557720734028925487855994220470184519138957467952691284318697930754293074172500474098402610505092052202031307642198873591812618961598607549341023462692706112486975255172968021867893042136167644068596634101895574261853333517481240463050447177529366223883988942980822247672699831487278738386155183149916151286174446267407211006512769775109361336732690883889934065717053829371266647565264043892735649987349154546040294569947436484608237657827896726987443167736034410446246905369703143313850413344613299066920149084898148339160107831425940305052845453570811672619536220719210368332508636298410276151790160360659872148980470976222500109192774664201866971831244265447123965390937838387394755747214620644765451656865977632633237690448440449485090032882271092297487003017915432942315041454536626540370225256687198135818667014869970956687860434821411444930216170201696208564493188621521777215751814029598438575347669998751688641435002167950100249244146901264231743668503295381647705496701066827294850448861992877886845447868300732795418976163898912217678794144404203638982846478073151616060722702503173570026586226282278162950618362200499725938698675590343775687976457825409162413601192065914596466873047515383712366873936457600113710362487521364858085525351273849716258784409279800884184794770396534773589455550085758590352087854797027934246541860284003338810082751081438830518358201206296433840280425150802131645969028032362700951192894974769094819738704936887586712515152127688551298563369039829417135410713751058130727087257808380060304576633316832874264796643205205469616103842915677802317347088400314002508154956643460142459025578445840247590831297492152390127652589456347378145152254370854131873893142966608412635345559894128026279763408403428360245994720259289386489479094870770691866635247961044434579112171992131082679518670188538874973010675011288735246987180767411096026864405965523950485275808678935515186474226196834185608350586900172247802778898275876668268188998801126416538521136563281101515487767929296981129218244677426041783745438583052381303132358031912205135596675950134428483832169639389124794150980730238417977346775022627760479177586532294717752957752415359501664459737094424067483461692322892532340143364336346535785890278951808152561114031549325223204824549255844592159134169932822497291586113069225466144572853716120270320730761017984661210587006664984230934987963037161298695909321485723147200434748544681365955719113403494980916828967782178469922508490975501623562323837282357162327640116146146540491879458809098569355086148721127479465645568404550106137749187865879098504743973732081770719598365396075899850080456468672278161577061049462487643118085109277720889879159946958908823833854602554030148618565916742018527306958068642097575520736779388898762946598070265038895985824318129672818429549971079238146459041544721032845416551363141520193704768481699404171053743077643563159072412201508954670983952814775354006180043349798074776680901427717776823620779953455751403711588953884719902173487304840100392023383124481371308951531067866047016506819393149669743479455453293198200789243025095771699797744073861616821242817414496371350042688112475299264881752117027213312921961476674448324344227108275254686647994551472208488428718648533338777454395447037146161834904450538577066437070165471056421831040440480100244771379618569337364241930512696186705998185022477833649341904987570753838358012404755883890923735085525312394510312332491386499484514976567546524103667036290197652608121990458642121055562619220502580433631480988304214919971181172717105808703666865492994917499360597774804251305468069311333338572793491786785228928189368445818022024437383042775870039275546456956619669176136263578673456944858674579389907985331822084483808955535839957289581884326989810523800889229738452901005159632347261214758178146081663468583203572821516329022562248362509067398807301270111711945183693378343656750130820605406746564405410018669569613171933171963353207955737607400556516212496530815352744935777204636666765274263155535485088057006833951233193781440566764082246407662427965898415501679645695302912805778830266901464732615861939998428736936987035789247772567525451602995824518654372887214274858058101332279405690147924594551934117768860513091884332072556364471245089833213835667679454065932274495736063880451350048319340014409253893090811727057756049865897679922444746912034499032080633682254525305232858538686565222156864362839625234927522628733551513980719124610843778647472016489608209981917359977867254511162328917109743632081711976507131354644061589386027285264282428722453171928237425786680080296417940006240334906328891947640242267002234550748253460793962753952294678790630053482348799569171602310677409796366937395826286058093722474306309334145730831592740582935694306973550712049437204962081717402484883249786038656765063864468850105640796459476960665962368886635300717498213623013556731032391278206846578998065011695105806469488239176601833658584971476097587634097637416185560027432288002889339449780475393542254447570602838161386029885102332827679515100924922517820543161271318187522599338899381154995958953103968010922350968521271406128216416564380751094159801468591575062462519826428507742259454160294268774228748131097560419110601873482102735266524590526916725605774276214667952501058755008264736430192918467492807200891614501474103690707140460530360467311913283354033343645071083873928956889485744178245926514477601069733017297437931320871312129319705391088962173989846019677918664190859850119560191552059573062491489794983597120782148633007322248268285267278346912670805215835888594796447750813381288265792313080630856488932149708435227372349212026485450307705055271501299339421391128501961871197916428987893697486110873705462639047752711095579194068236961387643314865044428710893020606043494641505806451054013480044146842255856624612322471152030359207756454499245952735694034902925750747221127805098730398140202086891739294481859813158082663842122755922894394080120153316792971285976512299754387669575057514511807498758004019869568419123273929541665751285510033631979969693646625211634163258440096545117181387757430508630253878864198658616096384308388350492675450162397925839316742488027990858395862107934677843463441078709583385753719653665215185006518918680070826570599995558112203559844904983079419179342952282373492120425073539164114137142333461551287291167422387339003015650304699701139911831917267439498729945456690963197434420604955392447664469108794401271906411405595010936676521875132585891409208371319464379368739485891977463858832934955922595428776273666041691650401562623913087046794403686205761392154251550529269127241598222869540806017875769798897177060451056849399042202817202707183489845098342342458736001198449765093022382513889360185802777580588707094799818152191310766716198163518789229378144147132385911284938215454192547022619492658538864328453207579318824284231368216621371314018640320196705135937164646552569664533240829939707672400746543381081359251195871153736667172522629368845663387976273056492105848713919537960668231948905449446260489098509793674613720261129361911441883720791005702060043900417829725639879268142051832110091031622451336621916246158061458623385367165480133065596944970140283828991730310144303187524420861916698650384995443117330841099627732705277128544130471415687259521900313682459995155603260048772069486658155342018475182628038159303907658555977843844271576217536725690681506550289184181097608468090854752098847869147903717641550978193643077283471498922862161152221189722995416145512524451165345081174457536916446958900605169775074707383257268334201664682929948754614818690507797384071959927304992071439141529787563386192888161381698732155890565188919369236418032999843005980433216804399909002775100300224309686147448959479669541901950472380701139707043774862656647527330631199971111152155954513497388863556610575643727391058002103120770440341433231810706377415690644999813904238955672387095237380383745686346622818226805363382007586818073245268334632568889216151543793018494519384503036924599906514770472372250846159085766528609265359713647485127224783820509044225920794433336070909540279118227314993079641052603418568721468017572270676758795709150542415920846080628313995466629708654294617093545394563807561419140685848111458867009429848510874845299910630452699618455609748548554349852118646312252241616536102389697062874747590488226198931816764770875182630368510836574311631903849233550067144502759028328910491461161622946950879682757809926931664468808723858475139219409128366082097032799839359996707941168211919027615807268398426162654689936059862137038596834809246852364129844293553247086296317164857250908363832225920204009301268414635882118986312589873033407420842078175403248052727089839919420258515620890670347279590040713921185494697842517557126902202348126016052474076120997434659542901636168909887391882022544717711915480206902204792212049462917521983608875664414132131131512880911068742287835085175852716305719010244814635928837183812151703078173068760400799823473330645581708961095169340358215771086763320521874536442451440228720854982955449741514557616000278997679341006687639980209615236078886845109556041236271888413644299638692154482097902173461619977983055887492522010299895153412440265511510619732705281873262304900040446917608043859065239398748694750672940126617244115190755068152909498745183402617707988087646916204103537127876672714674337411499265122871656401514167707324339996052838707614726581996577114779130078925928122760066489847288006875251005858228897571571706327479321818289616337893054668138193852921431568723502629991352572069374808686520361009701959100494833307464038465352715343542932353774617200566567284841164600415503932035108590657255042450855401293347536015900355258375888400545478115181521115561268223102078780061400906641063680341252212953290243339430247821210396711975587516032654883756851532122155354752300072683896005849147106088270367562974088773410497069941584090627267590659484818358998553205409605318871520963387298934335784532084678814284374396998060232592896657171287988335865316894022550790885356586889936836805266971444001762009093224611855288134075570696783515175041666618136726287316527759603890304586248196444741686710476603981587886304856191055737320102156595390652449190640221527128248083909174423632008949155486070200142900423673254371666929213493909597517037858207744906639086621259475649035292977076082696352147460076705109766330325153941771000264178690278872948811263931415702041276248028078948008346159825527217625609438423926718940482963965708644994006824560070707718261174392271072765628718618489710302170857629881074837778956056357912913950724007103352659499054477227374733064491955700873803524306232043384695947691142529558531830701448702544214718519076830775772306894883004715545157663049302170040692695847469119904005367140221540372222419894882009611609435007559997655185927748317646429496862615798042136454439644816969659485945836532432447625261502752647620337319520713651753455144898093333401771182591441683829149683847729683903392375273968338975268811520505205888672237350234910213585670044400211284557168505639166518572398229432288123257404439275174139021092214637107053716146288317397465693712731442580306599914880038971064829707367330579228367482045304013227324030645657956965059828744974154839490990917798468253131756992379823391324974990107765648786691749777120163634696862395546173737204512139470067913411265284497656907067527517871817448377920005308428203742018642406976378940090209045258041851367851728970013594626700160670490237347135559317114944152005310700491906233774912140712366009453172231882636445705653225809125445392503732123829520391702411060063181440435129633870055461162999633780571078575242164088932844473378142883345239674423001382052182648452351601731545499751565071245386078550124950890748320995180327638361243757684174935692505759105974364995689078386885616986431311183469501170461334873056923996101448183911399775058043157860434333137629949849394321856604794540585031431527892817470409152947414802334827357210748070069185177795633001008913495959331155514743071466266862786291581529005934033396526568525713669343505816838952046848891210497732586903852789022561769936725519548033675947605993819026899490141946893613385562640855553187079575760472202631669875756125812594172869088180897626324663211752642385690472233238550958998479606355591355020218683093107502539387820843195315656324217074414199811755599607107783640875507103584454274981562755487846396784629029539918065969447626954976133377393394319274157121186109087740919496604115801822900294978973653785172252249952363415026385915203907226192725016749540714337313282875560035380789076206971848769086919951747360311115678201392823743918571129165011386188797364076691984475733415385096807363801449271797354908096409812836753743466181802194021404036194710568469356744709239515886906489803840083865289750379805455634530590823381563725433062971723841088804297107374426057315109041561368904695827654918387597857561512770845823225522525199624578224790041317284149660380011802492423662347849107257185112208584162682533519684031346859807045512152098263943532669702875602144282979670073522573959045664742858475467041535912474106678221323001609095999645349595352352187044310744240430473886378377851053520039630977369216704958515587358442150504518616052432200450529685058718707964124110081698718399179998561703382466951714474760342902212564259320493852361703967383776067810232438599201519111550979966372146083059189730476990831957825162997640298502023795987553410485983223665868782245228687437034619437270179555896314344033439000655343181257404326712642361316603028676981287019466708838054728820993219920344579869104837115449408304036663483748753893299811170862099851992980513576539275495173571456485332357739472371087533115114735081285497489994410372464025818488105871790351594662511046981056250689799835487992975504028523991473953614944901740608049252397927046113517408577747972442302378223570971690689608724961309250092663144148463235139471207503339564158449739369628422541772726290311096006013578659940955251485819793620077422809528547345374126406872627436940300131081989471430514139378735958421548207271116051111701883030221647743114515666191917723506422733670170550674819458886593515004587146396968670890367942404067958544879197110802370541860358730174378462727835872224443762199293522842809965971246183958157969424285819394556122068429172834552240255345303629159351875081024080311432855020364935341421185888858629419783966603575034914898866516103160491317274008792410470183791126636420553285230223474511829968253156376438575492740023666359674919500871171518768106804797526908184242133783383906898313768561582973593364761100813695648447481431467310018928410856245176739547920842378818313106077886532479218368421251956293726934519827782100331862921946239817181839286541066459693893413224086044590850556216175191944222458056130363751395592980717608812505834136232233324009546527766316972602758490763971108833616064986989455719296630151589982873720482539063383697489807684345035273938565227788743578075108872503456649685614330111585148524726744115115003040314777335313805287480111598950811967856076519889430630659557662046675507907536081422242749537782780297344151948888804892167847094452396271896434924373489195167926283335138362101710879237410364651386361084080376830593396754814051590333088969627547829921172851992115923136382950927539659875933163479249829662344025071709241620156947582759650313551230445104336927221425300761823844667397499483078263817401753420695915895844675256121400396757998956117429065027554626734658053707058491486145657044521794193486158074236615822727014108825450001835044431184122355875437710111820388912071570874630959193568318205874929085819584961001359018882348208604598402641629265874445710017674040525162722275177477109712688238717664602857676110967699350072459898659171374154537909998216814169696756367260328046113736914997313108014706578084334262489478276980172487408209676204277324356069128119552155384091797872567225595235722644742103778435147867340723223898014659872085536804811702782195050004934672422665863949673830459283841379914179529363043371550953249172615067692736871935366579315446785000840264181060731923313084157340615001060931481958117662426585156802544109239040820058495339277618780589890025078479207067731472041333816482834591186701526668352966880421305027901492900705209284518709937837206914443672941953838928691284862613971559925759727649484907147609681014065258376829248704011061034762240794249722737623882398978614410526334240124327535093493528139380279451178956052320345948308540645456985255252973257209074080394853089149403456006977835007725413532443736954914694419635006852543918777798686050574112506833976746506232720498568907157433146006284702583133171235704677472033091629774684330914957363545996791083182008659071836480078480963870919477437133581817845523959447725233179809110409781311079040040671353455381122126284860435725779937810234856113375834461529907771798693807459004275125629663287131872162006753424767876670158438265569441104464552676290461923462316180099178813864316095986993168119739738895620766411819242058957106471842579001326739289491811537553487351370392185223504992911251397075797581996859034275469075285967324637289769859718096000623175051258536787253168284507181907695348291748888714960254792362647868129658731697950985570693466334342851497336731793516670702792016905657172088514552168342856160807336967968367300244363389511661640787156327782953712800401915673649570647362450951887668943095639451902361296385272827312207428937199245796735996353734698457486756931846809358790764116483092208340060218972298598127191460300193153264898347100128350048432366733381354553845954530487583614533170662713649300333403862038626782138431908749712333970890495828183708417692920010430111514554359076165966164789782603824854910865182359981213070937141483760102367907559251156843295136850411313227291700165181453490023317419680691052910953121971077556977511640159263996222372930298799671702013359332823938832114937615883442285042209234805933899006461135510473373120735117881115088610574174958136390840387770762045951051491793019064227537877779170534521256695559817361237594444479366364056084566396091818228897444809968513711004069798498823106552986677912244466036729319002708996960135508131492161911920557176696019624223299641502085240775363907208119642794803832873646113716587959815002823947787524322112785308320525196818627168240776491103252031783250035774207745115021490870815140836164737979045113529431286708999266188047380137997873424119693299479483839661558742490808163844772527972891263025160027264955609459380108124504496868637160212349767809810049130771467027490213992430992905745624555921535043415975611656555861189033488889394548180848755479743987791865195026680551936042990520717405949006246700812113980082616864219684943128306460847059605801448972590313505004796526376046029932369372832089081289001715272849793921743828593800670712846051972838420138175858523224669439166122365347131998906821089179445516430604513728190548496077534737647899417011677590708452623014503031452440818082268318818482261213271672000235804548503589231987124972783439749389081160861952463374190222263841633188718795998910917480765261653355777010816550334721334474269279426770479917768026483721553969999879660029281956408863591911435376594195648893969509521881949936932865466442712266983107270360556847527605278234579332119412638143593734423114286954288412483562100304196784739571529790615463846671404730425270022115919078042676901022185896368604630658050266068732788774081812166300378097744536532705962898619331217021822521621639316714261976093822392424957645523376744788547884022492080020275980838329869871575498105510865046415822606723350521845859782827076741547613240262513631201730902189406359467168494157354904980221928483847050847533895150795835701942896975960511950716219282162969332361725358504005193097534535391466378158279917483860037991660725693414899923496487709206696568634126802258266958444366098666631066999225745839993959992494171465788254585361160853263312376937158685989790895217543498027048125054159863841020364479212284094485496185476577706247161789227906646615265884897942405897800565078734628846838294994381720413449717931423540786084418972714703266997256803368822122454902253774296803046169498699336856374087329041482488030685950732029290340212175778008635134297684613482776196453032185072271657528399162425985151343581258243844785284895441828915506722170191512667241692787202660612549190149186422233325173748411777450910058382944221502601663810870539187504257997203121026693369762745009170579925933608454021058793682977629487632494176442437018382672488740033639164923235219713469859186985157434231729994379218245742115961546310243087986159128967349870872821975803360097856794504159877083477002711438965396070721558641055260702560132911431248367130770026683062655753210088318747234400025272287142231711254457567625774746341959588065766821822323509206189966206866180176827219880746965159079951226276367985912001783056230154759554284222489623177749159442829881465736756135383879882806402093416084358574533009788090416778667722573687704394038721492308001239916368486723660721528868569515007682530656875447491109580473901434213565300959048669428427688061409955606788600823969249411831505015536674933513527174238621001330632605375470456628984101583981709412116361001204526393845637639789465973146751424270023723599466863217342084389421321678597264601825207200761089277048621338423909795075612214885460712302445145807246131848322978764021958432674697781268467241994371135169124413735451238291217185139787870824685790462757047820550374508760981189570478695154504281327540512173635433760185814318130849950291303513234960424725823405444548649802207096760020839115766558193159006578171911213639018601380214352068372845210361303634385369167122492410517870462859373197593934810332730373178619289101209918923178931209548407432691238125241684822462386390721045559731958624335612503005161588089812620347908597568104727583669102863193178641426303768388084372033452350668600981936240084984448307095268081437061887257536938364346177868259197145606034129646764945399374540004383060365372966188759295906512070331953878459285409122189379484499892224395729962802787087730751718294735413808601177567768861397668347398567808017045370414189643056836928937529522907313371970814056921669410185915516155234676713401284480660714734503868551559948985486631013299549815725679654562496544932282327664273707680781710946707068632505641282870192191997302035501771580444065764914758265373324077941803391577720936497458998723468014170456524404933869143336333388235566368870703778260091632799461387947784805167804658710120780181957511064150196836986232480721287220260528742906212675284290213155380825797102943378466349136461745185259939364092831451162657884450744077829084111927367799293852937268518182069841783220701926318345480622923496015945667847203684865682114943538685119076873448481028343647412548685543709352251034526368916313154690897726292836404506987239123047217705109893929969127414007506603128708118648289597642856531906864669555542702375967199877456138997603205256440725690031994699077174828501033203775239400455592484414029926669705805893842063353297795254504046055954613607025471300534263442735946177944345725008004551323063929325283803319347208297724453344978875607362914505117393488442385785525945940459255976040722781560604121406298008058549397316177310722326667375536235598224301344070145579371771637900851754372100513739841436330756809416785568159149623991073942300869369272338822910807406976801564414796900437352388030644594784205762687808618130596982893569470609162930670674459879849569619410274744580027032705510353641968231285053555107664822188378508087176587411149219328804641144737018446621089605835781605527432121399446685893355811437443257287977671850312852175466587245537358014522127861299551265502186596462467851742118353739694245796279337078835512607517207248299302618937763939213812144238171342377169906419527906166803702327047079865677931493611870683347525311935216214942668772744711773951295595092097930003926242704550480791606514692508961669389203582092901185362594050640561386268065998785056238615125807399170282619888646014550896702006289318145351771423536330778105975441492838748296201125504229591253074842690459174044133554042339747795887926557405353698566665955557214743042951600293049592581376969858487737763461115955744420039183182550969680373350951924913828888880053634854727020298153976738354578434320349630431167114112355947243111548887603130969523568467386467058151819906037578918075285013236637744921283502861971978827550097943597798076993335690557528124432409914313184805294499305657036848809934378052197020373141058031501934223479021429584245481270496469650638555871139566619237805496742702604206743339265238266713316835845835425691062577051531127360890256537969821035403891988242287872408261055502103486874048815264339726775068684052917124985386788947786007928156256259068371943961132404721936539519469375372792934876148408183443278927437884205354982438555627635455570240124774324077062818679701953303772350568682990665417052263367106491503006769064525295179452085706122222565703387405458062536727706464954912081789629901153117571036372846918394882139114114577429785137346891399949248499140431228631905593509047343502670334273002777064285410625541941789497216301428106619004083580288292199622019401627207395720707440377222393856691322115928598018333735685412603060405108527338601981583373008006888816601188154356961996012316897022084445628175567597461803600425451468358408506842013172039003677327654254486332153228226277237560492740858851238437098770992069397508656565830799911717722882031854945791270834101542972840784238639224688478806183935612130167855872026614524176004308814995310265091400415182925088742422263935427769400331150089136019273697600708022995676132295534718414133521247523233102316805206200359120899726082698769580954247534828478003784189092215021644221557952550394008525448592640676737323029717211810611380594808404957756352602689354421868941980081881721906078043893679412989062981431697572125670626867635529852271111169321745894893081864514988939538545481950344232570559545427482018379590562396130247828279923690040407725613183019789788142396107795684980326301937045556294483504864561721166439560010777908225076696173667339215760640540134584547750737302093819427293018730127356694242529239525841111368841945880966656588871527283600264792382669177655751222951508451219894958511338569041368522482929613796189411226350348476560218388652191779441382156862162120078384517203384538196975691905571089421042037534642330249663818757147819386154431737720533839750812170969527466702347334686039611939151632983784623295947006230049143157533418519550712771095968773729673825219522520622738003092655388653757669061017540571536222932675199684750591293590220257497614502484688318227509192379172062403825991230858449281787484230260463627053121532359777403567508276947831429064228575119133449417502263870103358258583065823291266056394403160543000225018526147267053945409220899020048185625238622006937133376139239278148074080229423289346917199365643096284539934245512741574445688882038709485045305749922918763337414507486203748787453233615449353024990706477093506805891584182845715364773454829171016161542027467955561167979573657934371574470963252314325810329139835933090699336012849829786035798898520453363994259290068469079279859135776124027594668509166774534340826081616473671094199788369399319993899866637200308225686139009466876350622414625875354678321040486742613543200885751847983244397606186618811461744263220311064432180420373143761203068580857419164680341021330663809502516525970357245668140985480507615780044039619428359462279390060729187227098342866966991821795094446070305835441795260488811921225372205602493006488031822990428395910735068828961666884140911310229736356688686905771065382657914412345039359957960186198298385576499172783782696527912304481425085413837928675413984129140930844001339650509955938333051323632433817217999181078647575663961436737804699083705971495417425118995806003777760696880017439512352328108920837759092320483921475412428623494581031110176657833017719494090883402839477337881547750387732704198863111374879395504446489010567402633669229603568146934265234958817619059295979918491747562506298333527925455026850454814344023576639298373425512084810387532345858488380171456846230735767968973384518464372417410184664794327825685334606503691113152166852334677896880826632614526545159579565692004104379449775460320850943171366669113656108190629475894387250487456853011207377459408760171768430962212152848198857379834894344145864984791742945545495740236912241689790343678616449030482480842686014596738927446219404636579486908019472669836356042709602172992969213931760292130040303593695585723224977899276434208009092969364952119740332883951121789951168095886472074166964912129669810420642303677606238438247864677492675027661472369105086849987931453840046571741592175783755828337351729440655460282783192473896727112901244845006032850757000858624271134559460458537015325774694482718145521503193654453398585597252871191291966915529066820678825576722196144084809581500651670464104956043376558535368564321496317653308618766056175310180546279165655332967933694105223073775804701781634792717951414096650935307957953226686236699714998569535836819671748273224791618752109969360894068824412220310609540807682703202631235121010162352489380618968807926597158815292807732817444230891706321192351344911308895154135472812628677685955290469246854964663520336602513090543754307742873075840124895394607803259035973823540005610120142953550506356760025431220785989218012044395841270657855039440198153860957101437478980492685717699962843396664952806172792144214807035853061777538841525671633918821583782015070013636939849280575992437597924473028909600955054737035697878489720178395942239259098804952050075075905069376155298848983433632624635738508645636995235539128042818607647267230067375513128747838302798796740964396920078101496621315403836310720027724027363804766756988807719727920401260852330254613666859841067020192675636133576894426868225268477496969030303074092018434017583819196576211831515110365781819040995322012425261288020221615641616396128044885742807554541922963346399754850440652679362731797397442728352730458151864096553707343691539685816355453420869143817903184087220599802712186825799540500305404577748294685747789283373876661666539993328255393055194242000288662670763410083586336068168405347267535304686443645804490506879680062190315706516593818862242609076254676560605763653368100267525947221250155188874314434868811834734490840662720610481513069829881827892812652888211419605983108101365730606243154488399378753422392216420054155276153261833157968131898900941533353163684790830430125712867858256322127467035220217586301155443762793656966145814156322112881181028847460623429149950193805891708316845613701361580465048118533994991611619812481476438669515470316698375910147243758839368911542292710978703281436997806236505728843864374127637720015755185876811063210569669403200965422078223088923091566060366195229800774621778334351259572371860604177969494382785880283373058988084109443557960799263265631999559605539409787344950751305087596975326192062647962100483294427159407525107295477106767182665793723028654385503039521672974646002459195988814115184449138440680287413381911098987604295505032981778829114658265170276674337668278902570369568601329070739892989102859126869396948656229792864011168538059436279036931468459900640094458863871783793608274209214845187859183446303351801154928651849952498115756338231059284200938054996089419050768121710866920930178862585691311102386256425348584621156891713890362760496945168173426715524012267601079263026418405671771946813230484009155042660854625632525236131750341829490720701460384299490086633140007056312528595888655400860730864308261636803243841905906445528793972440023951028781598116382381647901938138950084489359623459757572149602949396455005220153762657958695644424056018720474419902190148188086199767642478134123783226672161155480717098990477392183327975018214452255310935992041496939056373714573184739213553561266686487896550643600703895360321591532654389324382744080776747754014680571057961061437405148281216789879416641056078235532043928417041326535584469589053866846170967842836280253001666512237733978695385755204102665170191327939881463491168440993775250318696922440472438752466367298526630551415942008816028345625424725486221899448463017146144797333699364960901462008733510038073017597484849197677535583796249130689943533448274347084205823724243549948207287810296541567076315238133004349121851965022563761292647465870671031016660210334223667080055300783924442561315406994570189100016580107743859804090593741106916349809973648730989871357757152118318820138687772625992417226394828556243573557219236926145233019140815953258260110429222424080104777540029616049349264129913081938039222097160929678730562501506115116855364005826328775960259133096018214523156810365613258925298377226831694916634865698096284109577752400743582546052943457126906579149539917011222621622921129575196842020905256854992564040383333491017264800869006698988683644731638233491378751670963328272838858338393337483146243348188559496292191231506819917278694490156895531272646205444150964368610474397883319318063300877484613715010566978509595792315089189509128183932101220023320761655462431805947913463125920265748618632675283890134595296027539694804814977211774326123031168637914677950719943893413787381075064802933367742073811606272634213751707605904710114027038319600623857572262214331470614850709869155076668671866652910988314200682477139997622952651030129217797711449243745891635538942370056798253160403308559823368201111862696465878649479833891099106216381235156518023812924792488372585306963422852757944605313841002965174112075810063177750407940139341094008921351329393326671077635311594698605266519739417736550995989801575460652285480402079833936672066784217401024651698392611953612158137786896423620136301145341629054188696143148612207086444574476705658732916200975494922468615828029044927166588223500500150932073564644216386748502125075175922312678126702825355007055999824924943745840502998640641815190116569886773009593418311848818383620235477259142860406327761838622400522169531590334893339169464998932587578399195534641431772426839221990076820259797247039707988229039231716106760862969299942693329789897484771434903385264077074872154982604880837245283063351323617998723318092421183917973077356578276214231296070253663619367306356039785395554063852210023151983734447973719310829328948796720694842925849858478456646736605057786298271232067032972970798184517784021385680637538879187521976404217243378036329621327554649929073970240511153125854195028141985074051221104160426292378104786004159862081418943063755887811952400540282905897292992388070015682022802649065554471253947872886945270462847607934925734962136849966000369644326091351366338843344823523752319283307223254060019315247025093544897525023621298760581018486541025983834341409290982435516955087498289442440063186423395773583508648019620080558633526217327452237594340157650756097448877820608895148805458840990472424989944804335249722855917676098114381354847529975364500494621165498986452025563112316091139605428285294114990658233593496205516117256607202395670369283092913180805788853498738927539196088517706522219471120620116613585952441259327259778875906034621413415674458125333145105992755717463318024312627734858842355972085643273808422083213844693706366914296653575458475269406045904977141300107705104419523525407993123018141290377778225984418356328139769321675734384416490353558513517588909145018911031497144996047859263192668173128573671429849116628039219172024807647233484036952907821490031674543885968623905639390120078520343238116846282388145762038634707853238241730901594919412850377499227627478099674806481801647804768265433144772275963179818350805078301422826095074683480968932216689917502270246140561714854887754172748379432838045557966005404256319670912583382546290258543415872539013218709605367258219892767057616833601763584161105036108997151603436103982254853032288307505539677378440193995817057036723902836263254047898044758586019305424851897849728215027668211464719625387158391091000768419775862136066059096468085393328400848327076600831690701300917398849962138182426663221577301865927036615997873647956275089635460819512402459065283275678859378822576693644815871807415850529984467531992400551158285239608508587830220527500304086149477688949275267645886619638870248390199757686293872009275389190665532705684609340894625416360687335362812783761554947998662162221951620994836732286094335664273166626368249799742852093710108525856010938551751827032963423040745455331002216013857062570396038515396247357712919339489617929244600639810947720251084975150177074262026254338906818135105746816862378036964690191717543594960519651392767625572519670145590525034447056885130631597272065685467726102338711237609090131126931874969243430286442788411568888531020898712005064067822254395210021368349708606423895538333563482583597595739048125908687043069646860176215242412744321195489973173889543333814240790779650975236086389654888482210389879350657865481981592754619628665611608296611424305856988347859869452494965779429254143649069016139019601595834968211469843615253850480260458189204827553255496422437301951523289333879538471995163056507500232648988433945215420187803919454397088499280284020422939836662215386222778109195817728718651214087632019284464993441510717422987326235568281874260886951199267424008358227311996468908949785676662954526200256200108983750891076532944863416425096340953498253640860837090870311512388310895596394772624152705136749350822298546982322647849894603746863059200099547833296101959525802461955012766549688748200975085912950470821112948442469904445982458268631226545942738177573465092052699659136340379474111264895604424601205388175460570801901063142987440625263201702453904129467284873542498362576225655545873375788037688409283001547192204618513936235781974891136060690064801920787816275555977540228614186283407740218358825704865967273577289313988430986570775958117164003539762954921983868190131200001084292870407397780101057588780221800936835900879188466543065533724837190892660500777885113621821380898804741971378528915012466715692627756675990294407770198818852692426547623664399617056302939052540238550469020161840369868616963696804208215711572727272882209304072665161531061922979741303953749120135739032367483648903618295301711410017384786817295950811405027157441926236955278638808969282374207989680501972670237905726191471864697285289404313619077883942500870553804766041481533272572243962843127655597352241159033150171585113660667392049070401287336493835247287669722730985957441662585369398997169127275199764867868648756065038958735147693316611346319176310684548148843807052021844853779129880112235745190593806705231164026444125410240677327500331867161487816687967605281221150522793936292777529303216049470526556027638983391757704925268341744129819298546434105702206503311646837180320629893461844662876327295673522960467478859837572749392995574980737394643644867103551117124505540971728989642370726686784346020122890039715688983828322808250434455961651016883139396985592366917747960765103106077223085862807041532517928744138803289717458339254245700728640066034545527207715245908459144872965509440095195761979133827143389990342075683422518384864957541315659942164276320794756622178239333230823513100724792587048234559724695370070920493041799149534384329374450962982191259030015272837389795174168063868293604288384319986659577790969858981465995234326640314328435985013679365737851778912396981194398853735133903119185813329531356543762309970546812570102380261597606327332733195822832462946441693354383158824300275973066293530702878099215528632928159183879219883023073132704447148732558658907292697005542958058687210223713949820471193006646147678313868165395033421685893506636835749704313679349079434185109710473094201152841070706772569162934934016047158570712298923184138153462689080202136556506325852975075975811696831333378658555635353221000076152579861003011406215415769834584651282382881661666919624901848013301195539215688818897738001068906524345651739712085439326798149213928164245217682728398618824155384568871898501889692343655088805128000288708461854237112642776227070014406116392943971723474359318057799877131221565383926324126246992541952920416175297264880524822638438669867476386478049531929415022845841700523165095663969523054609522364854389501237139311730279137234306061338930660565702679076619313034887133370598551605889936838069151877576379408971198850907661525824602401448749677011880908072973896168776428006535407875896254980907879222525927641389339941657796295764294290663038662228631064745566445032222050207078056328156192722349676781019281406726910774962835536714662388647713058465488707335478918635028485464949526799135278212781554668889354591338442380767767298784062962085793218725515114201937715196290517971236795413896733996947433939816793104166194712273190821206713624601472244411860666950477309389653511355410812831294678495470009563564604685052505162292174955961870194983546180659149416054462130559590178906145246641052470603807582650495604514843359356268269193270897961912497292087705790990851102637271252933092917358761864720321786422322386849270939580040875316929348072049164908023008345900393357284844001413287973072470998456879594860076058134677115068492891295460650801505886659378215064808152151228950606363936017579956290485277684256800942034299287669474146425039941207791537226359312592745360963479434001762870014071868487438930190543516206385229862892409781258032239659471468881218458152766226268583839820620227139328678248874998896109676695130603800539958275822236105384846152250805681140785159585888761945048893063765066438875921212335409804647759769544177947846989742180068533525588732579858098571328967820069102467174700088519851723469895944467222167193643552793942533283677175347740603463688417782557505418453419569998798812529970298726669512057510451629648974836796363428734985956488159791357444911560737038504280890192662392573322085388178645371990782237009916562894043406759487523848944851000517865143592700660975431013760967282151448828551486668198621098847694221814527280613981945524341352383180158220114883798115422769366584721011418578810789341370668412474677077551890839750783155013861039416712470288464900281725727706245000154286303152929063677656886227928013642996931171413035356088698444328229964770395760674934856121874648094247417481886838959137365896508993371875486877835464369723729347231917187306064018319373449742569152121181804454183637365310895769400629269064892944170954567687561258378629427732052539421316516276599009379632155347260960769507696191655804125317358039245975402509904800576792590893634739090364328071047648858449715811211023884501170838341548201710002380751416723724183866535766785122197069770626017451903614104192390040535709940815916445870051157137588517521793685322339418762456157981300077392736648985985034246701416282922533407930385053094201436214553366910493593986000224944767204743948335837664998526016629623189744458014251275495180310980469257631154639679336688182700195275039277501649238123427054835096924539487076000711686535219767156149240883459472597409097521540596185562651949090735729661881227598973014809363731399237926779423173399511052971546034447533351423869248503092697581302748317701815597626206540621521924753089451118714377651766409173112449399853718482853392579174918087286268979070633771113903144249171465079890181846032975392354662701612154508119225074767072880506115284446815230182536592013887723339830997124002538885953129847805631705751273180127220319385757940904014606461300239632780071005997586235425752732276243801572511495266396542768099109699762661848142110240930537792935109702970726156181527209248523398023975823551790796379641192367246268273384068536007472427843328866726489497564050459357136231425694981551484116790757849923276456726533532768645261933134575031430697761259142560682177846617080682708297414568094699302730285247898704550891752463791798925098952542343746140144276756226525954606843777024655785585340250416783908936361438048805961689014003364130454433500097323620102993331604578446167736585900940563377525379139689958673315561563256576276346929537987285534891205109989432346014751636481508185263379385416858163182672039569563392647538509947810423370482116045608955504446202334283127865922141645691242468723952015083353653542745161117028418658531785864859435579702740350130230505199993452321991215658664405419127854044067211599308274844708652262446541099866105913211000362814395117114735194662769944165891448444959881986785442102470495291804582697998923885616054771447048784438367206305388944053780868066253777499645735361178145695539566033843505328572593177649019526140322590598506942822211452214841271033478075269805110093081188946187039401895371713463630306905403947836130786283023255552428908968266900523820737645888350020938581588045095026762860197703397278223020021813838255607039532763335636408295453011353695307952255441546271737105226608976376450011849809378813010251963356711431578857619799883579147757523127109417256169631340222431252262230252523592238162015108837235500753798231620369246866480101364862035081431470954423567483399679449795835236183492837595700749650876981328255959383216936792302615112204002739424807268828253073252585007648683474391545303468216592484615800804041433338590127314958735975422573115906679247120320113259226601699276453346217449016167374436760535546653076679671535930691864367725448200485625261864191661226795633842722970798882981977576879621329674652894485956985055658060841814313714731082809263667561144198144430917687951870156232461650936204122606717665421445984324401205863016408233022267635919430364984481757210199180536798800703790421296770006027116106523433924234512429923884722726744584515158491403192797330460444341974779741396287142836423673023631512176139164589402630162584638816993132036413513127267164031188393680163738813811383091233134993053122887120935666705771092950948973569370489058257261438265442754913296016796290571832536056688531527276368063827520436496193976301381349421261326612054022325704639402825001154229633916342057004765737906779056136235216836818201338993862436415310164266821900056085223274648842722982305900179139208801529496727037630738688746689846211983859913686545439710925056094133486131050587606546924911852992652616221875944100737524461883130205139212097629775155583442184430204478311514165344409149486322776949303424698807893483665325663525572297306937204706261017703033884671940136100130720931403349441243564030509510480347471713044595755549603867966920123386106646601117406929815008329663145772637091283164918701730315827805401366408171851086257029993937459145490704222378478838252509876395716568060110835659677752659293168959577639568938818770038099099165157448302167936369549499959827023214478849708322661800481607893993976032771186566851884609559335155262876748617336897738625707702772512174849653165080598075417542533651217325946252414312215725906751544467532360453458283871917817920081199061947609421249097719014046361181107354417837369068956840801754820827762879806591698252347335431738164825320236294933772527369463702372227383675205773976544061965122695631600759819083844730856088701870065483608565906074045647634405755695589546902072488404166292631835448474027555568904175202041425819973231703393322968804894131777315253330499557903766851596141091035584851394045372055514753580179050716614543424377258207931525804360768027482867940103199641193032555636665594707293249223513754944464469419041879798419190437818542372833170422079329125148689394775288334983313316918578895704972148188001715200213734178383041685361681015881224170781981372654858092898690434754497798412428189349449986097987192608501424320429823364275959433074537142778853710480222046098076757176892588890267777111390709872863392886087013526917154060911776082624019146013429124205304434856458368511054891654509062811849490529290601440603905437505769355825293637189062506838573553523028818341348358767298479623969582718391077011834903135945837724388549250230446523697773696906499379950224374694088174778062622304844933889585673650853230960560278521710676886239965199852748487867445449618589179513034855676479783724661974488967454182418149537402047850353448566196285577809231984450136636532331085329236365771053263254036944859374873967123018987130864703048445387947266372379938440867808895864100667297067103358473112274113110941027451466275392662111445862722969014196785772400949838180864490196248296873672338114671717379916619847133120399819729654247403483485122838218123127319199529257740720585374347409559634958942185750618036617984551770148088197108938808597186888439865666666049421423989637316170898692531655280314442407170404537413382032170174863704470021197884094176111535464293585554367826512504579869386946027046390881373062261413658368885274167680149412157621585226942696802968264211741825395490943150708516627054463423245435618587229796985544697216459980079835678168653113283427509608763021780233915270462920003695865662352934012357476925468483892988031350821295434054981912653618534248968866400096960047304293338002463080614462773240024900177619984789379640079119011606359682042484386052163297324021744704906043509105530780155378481763808589912322953807426445260872592091136321985213391629987165181222352552213359970795636488619376857562153257254353703024478498715244551107198079121930798393030615313021524179477828171506557617383866868844516287870021963699398277342678792135827983137114841801598738632056406969182800696658389235694067731677154748089859605092945486409928148414515788054698078985772261834702616986229352430194964086697190862512719811241859112082357241742299539656143051587278555882764767731736870288709928738499223431282955229886589308712495523965519292209705836317595757539007495123567710809860954185395192116558950136485427423234438011500261155884004641971216043703918901473713539287338523709106034517231562574847080799449499686537969411177945654195777453676969555534632216031577974865900207637357333464072137186101187690221199532422072130983250406491305689179596247286640203849458770976087096832864460591922285437989354111494980195293639606989645038496069580403790841711960039058131794251670676292568329632689225308772310984154832899415541157281476033530541587988487980704658169022087529926825498675367693438530048010065526964810326443741607748323121925212622399223916584483038365726227121993422291602135468610581983849309902104304577235796764565482479275622482867337404712242499311373706809947182314683667888388232131577247524126291953218193502014047748037463723050651271973604242715478503201115939693270411991636613600923478101909077439331306168217821711502429406335038319641050325742948955724218327769227581349246096572088977026350699071312854548601669952260214993158076821903347980606870865450437812602989067750768096938009054427253818765696736303829510299131487142396701359111296246901925042392938047875679629109834469095792891042133232853287937850319255434667542619013181489372064767036147983971997432238022668029639891347888589400791418011940467189719298712855354386361965351304893452957039733241233504435554255793013563333713236032376028268548560001293934756649820526930530438735384587323702339937243421543004522529214951370613178856098731475604576322197112116391435839080303260272220114304550417389363677023209927483326833164235915090989853929437688688247509655111689557294391514730684733287708295508665784605034538456594251958342828436416097707952008199210506865228801594606682616770907187971479880342668493834165841528944430508970472818372540297743453040437908975340929491683433527932380998634901368304677817292970047500900932886887401486607451171469509348526275094818444035750688900732657310703811977944280367825377522420223284408218387602817724265174429326541500202569303364243474718448674216272462029748694496903447542058497129710174659572139483352264006119866805373461801312920004627512613247380694649203919466672350866722672523234708382355924598661337102456078091543354340616937864641870718243426728240228733228422180523196765824720377322878843999590660347516273629883925139275709542298352262329779002178092464418381190442946770718179817937242376845905199310794766274810291550107493828539845508783140810309312906720170956879574331271492761600999671502221083582482618858050390425106472429286522919982465952273595664346629773605870505779455453103800018285897628660980902196835203570183739781115117304394965319597428242121900695339890557626284165732187544321407938789840506966789195240783412209816864780645370390583559800494485329003383586365729083815582048927970654775369250159657897205322320387529276910107729642246279376592149571786256419868048977491352238173591608881658039975150558647163253654253110960215795645265871347216176820129075644215560147977584143958166389317720158979977389761600817468313134824028553051137512036351233321162178782719906166798514948299873879847553013602689597214716757387889048632326851402403523977654795210541791246628838519272542958078307806337797181628634705925520240326912182954936090816643200658581921248251918118313233699847176548071236824973437768861852516084919165982916563322102816456253282529432828455720930615419779868498203287397041957966320330500744735194032018675962356175028453056764833038465030141675861395050069407636744373013796994253515529072682330148174136823927216405257653742778987477744446833037898501701710620160175927879770262706066366060757350048911187178150859033244882752577356962152946622508563966419601152899394671814232132146032886104639553725464622584689165566512499035473397453001934054216926561477557629794399379159905234881245415789947840324798954327183819521205689889888830390285768936577027063031677758084658740635565667521127725287003122171570940070433603938997277747063005050249098960499113532522661465404184677400850560960501967029960536707080425957597360907230052240807139327869631384841355315026305090774044661726437900118285636149251215280429639816760751622603809945755920864137700073729808970925187195992737727198621760233747513518678174024872956892304787455202891700662563657028920238051198226321773092723990148305557732416250941266917216710196123731118250668969468671923525937091460675353925655883644323376966961026593835661554298252265040250264210504642424706041708998661554444196277772960605469364664390151732889688175902952651701380595752100537681817550228784032974794217394912496964755014971696900008761164388628322396015794185602000117928432716283231947512030255493335243227239255802603797204095760478279574690087721232893942736525968545736946706274279587404704041445687256503589490978592201911625905108157346603174800852744000993703593740922451732574215381786514261027407558171045527967391252647403615423345840736453513342083304310364343999312852850839547800069942325924934254643629692390052690151280536075831288250666543473939223787223088732175823455667257489950730175066510502567423957863879805157509484365446514136590598144866939288233893493398322856453890553214577085380058600710689005621632676701115562854338454790132330976843791272357393807970193374599729967215904387041907679505628956963973757223184749532746270253604615889683930346144582989263594032523917968392925439743789879066629769926905282606613470686247742527317874354433958489006492066057602176638593682509676510459243507680205466736540225867619371447094624966015633333358324916678860174022917517275105571363388809904699982409193506630791622077850693240099328234964938981721709400050970694609176581096150660922512185595194411569250123617851231229562532783354947886182591905501076776612415511327999435897553539257046773597543257916522354345027061854968471711783475404255081667373855375054546617263025663902552940424817339395525058023687518926840525332933900746953893983702362953767860261588678402077300214726382070068854659873487980769512220997246137830136880319611319215923198015670438253799099525133429818025162752927121220603914318950200821608635020184864948824679882411634821571470606849235274159871669540557109878109951061583452130470436062675576352950361492788913688743677547614442306413782844754336974313103255247389264023581203303661980086162169854039069013378059922922587475703795747470665791157227173385867781340750005272940599947654340020366269597248452487708052090461191149065405737626726129321615166220925740142594032071901819562040229819411809713818894924611109250595771189366833382331594926488460237835292380831905221206340533913849838979550634775959578514553253740711728687695553060263097636752589125292463218326084335897780409705956917460919931235907660994503359914940040666298326362186060724930538330588475825518830146405435714424469043743604799476114422544901085822913919822833608837804258044742607123735313486233955561198438655190121450183517831857231621078668109363660265560835428957079773650559974583110449228500398185577064019743011536039789617161833713329732818591606368331784212497619873650667563364760429311058221021984558618324188671617012406743075172773791074054525418069167851036937969640492028380434276680729783258957163328607242300314476414000306785581647778875282581361833431532585060254257561617318769110421461256554636134246788145631173907969913162130181032780135593599061158649579162824092021596229894469534616450063160815470998795365418000159318182258598717285003572377904342463382880412360195430129627784954193116753683007388513359144211525668714343472935078772672645990041846113344242139189567926898514927473082436404446966800055152088252081968431446436318782439257879299307357762205907825714346794750507310997710394067619693836257495661902878668356232767032716030217875851493802420917342062725133522607181400342741445904129137172757884105031666348637919507210857920797928498920521722608440123864670399675686218326622034031461330649738875325566813442086175841070327845808448842261654385389072617907840625159210618390031312082770954246652758118150187090567481200419974259895661451515783301004869538888779329307116438695689032023525733651925099025212161115353582653430797142388216079881376464928221392138445997240321070522202994038865312880333287290795739138220917896382443037246014834060769645492616303972950090690370219258781754676318176156638534837606010172270411327849800507854292513326205318015350323415417023626329509592871747671605368144312869235360876623502395473264922031963760410745216248607222231475678011999791874437074327975721077115236500293990233426038865275693446081626488390756389197706002315697188746341935499006464844893629174707444445763631794134178984190198181136531267365380623725612539335686290719435850269269172431903008118377187148672303207342235755066635695455052680470035424585225069077596619483540685217862595043847358778956371435704810326732098150769307855442298869280618699098845897993951935742404674614097402747636588649528879316241867629927001372164211083223079485192213613510143482449298378192235159789443092608988613962622572053741322157692126171310409435021233810633786450127844951475281264557443128655687341509851841745996091304339640987536362312949291998444604577338698155739422377070374161396915311554306653395847038779820655182907477944298120465586007924823778440821225982020281908535400376941103022501644825854050449737610282767879367316110651013026740044889219898635925923746155704055318417868908801193343215591787030913377437714898831033490200634782165297415983666824545861686128536581271744436209880470816025381071842640006396139441826145839125021061565294780437127417482915675324117936037923775019795383971184902946978237985378016881527243642363329201215302810654274238593509407824345413777460589790820845649169191839915871489001882492111825409114714585733580594850432521540792535093430111073425006146461387524379631586464480546806364158758304788650313058085461625012124847474024205767022049180029512940726563970284672499348583211164396784763398817991759481530602887906492938938364741577861360360554849161508289698497203371859215493908840588603707636839273593921808712132332366827685268248003999494872771450156770870506793973983496736169143365074903146470770464095545359404320446943524375929261679469027811534662010435193493226594027556932661177290114561448664817889489154413064636146426910102622612404031868456382492641325912204843617236929229308425733682404581896233396095412785025780369925515149470247491838463932195983359980441905187836300451904590623403819892327546190463376418295151808688185556352651657200597870579943789836182848147812344558160478863059050614700002404588798083207892132136488660975155802097840797120721796907474953278253123998910823560933600258714221231721737535527711969366090157024283689333473808936547907775047878708303009742061371135422177368962282718615893051820765857010277696755152972443382151074094910681129213927723801361216083251175885476862350652672748276576550991374758231804610742405023167773309207148196313493550699182602861231995329865086378034621685899655941310522181250238802095675933060295169746033645374145000054825317441871398237303888409157828936117989453657530499669815841058751756025838432322195962646105922275770916300387561400221038637093056144428554334543088450560112682133750192634679634368805290168918179154006985548726123311689384873881084595939762728727780119862086076459958804753508469640422986800803232072763772926064163719570074496810108510680916468073149940523310599645704782077738407103434058151547403064573203355627826515378368244595717847432525611066055390949485977123611970499716364279174012553624136742301033205878456863618730340629449059133761927889167689598878144862709482076852972040070209244323469912546034099417097110710873669288166189832923951977060802573888664814991969221745427189245945240887139437474716011405195520751794239149275055415736963843857926956102216053138446480093137057444985957079099698805525326917660994712647249173027480341782937221944676829118526103995634096667678980476315594972177369458639461847116632305127244987663475233090668848131898726297130550504025580113281090723348355408199423581617580957729328050926923982921699213575768691642870290641308512244167475102833931974177332849685478940095566219967447831367060021744706844227880093326105292004881126924869038717241745124507329469607801537010038928985534873220001455916093624266123596858210361127740920518063896802601453452044539144353171781883106704367147492105718190997415442651303873818070180101154127219106939734634341976090793701604144769585634770376929806391235838762467654353276054321466935003462626641106888652798977991553281766896463140952620655677718561095705532534936580903225467585126790893431545009016256419994480277062704671327539564693984162000791945118494693311783908645747636256060916449420071356988358828452741584960609273355388512742024649459615133430158216696981074345866105492683259402491285450389024888241614040095741481976014440927813984841697282575699638624526459376608585061203029234330879698851779809588544233171849104853259559143726117382848684924026253738547498274997735640497583554062341348465701470551546376244523115410828255090516136567986648530467639836920633493302745323723049695944417452600139551112720817512348390750651099078567490041766922128477727588096795246954957619458782826850300778883435886731124036234092167786977909481323648284225736946934976617274847663247943629330681983613954757380171587470435109676127263964300400595738567383653697263940350421289982294677376573202631007351510445948805073163404531025840223432336602067349876802449883126376039372404209179728993038490531587729993186943294158735904175550735311771000878936325706627125773401083405670996382696401216393360058706707235782794973198973709826913304133524868687661371969960764424371971682398956526221944200721247881325733390586825242563124667190659163315268574839213391489250527750026865285036892841082950958366493190753467515002932573000801399320783971523648245680599734882265171688313757064183939489102540436472008170711819454665625333886068867284834050020737578462335907145373243304086516097263583823327289517345634979418848847826371595265428422111437999531956112047692148840191763583302161676179674969068664997256314915491675792844038111910699409465573238709980365342529630663394697755680814760670545335698678341118842010908647083688458090992686649548064926858862571463979396289794258067096216286220838086312681778923865135654585121632295786888947750482372648642507162558297265646664126937893378461539262987496450822865929315855226612317573037129114382580958102765037393419405507095098368404146109749879959848545645830907368337274296164066396708592712740601497086858303604211905206996098310683498829325764174950012509287429202091247411736234655505066697296598074376861562629737547425574845692406021658539839778445599528963918325940830126575325885178124946764707148221517915495333609675964755357019520093180658772050832966898424606880092248430247829956824371985174945252327877016718692977869216113569397998883477088113956455235326425532301818882451645778082495756135355597900520480609606017671400738945053726081532453318843613278827147265411990071710500013766209331319933351634861962109197016405063439075046899914663483241305710714980365519774391079612448080128937731813997142982404510533717557310722829063736375820524208703063882147245600323842429293935257401221046609000880617042999530700241810324354277608264108837177400703321842160597247294959598213557634897470160442749123394701619081926889958712364402983406226788013085974945912375308212365247427454374458503510885707464206513419546872665160388656757578155339205363595910706069198223290366631975477526386507914006713681202503916313138785294142176608380673763282757791537081258239155463831013038305725419721311488188730627221561856728953500165676519388622024470253781123230486476490238331942139967177339584937333853413030162916393817836151683489289520543129364247863863068145658598832818657603024343377576588086295816477032159882467748287930437790213470810346195137428247686037140534857705247771844792341427499720471012852743920243389448739739913410714747800054627035623132234429994956803204902628198369547324453513197232663722066380131945872751791677182005823095958744383364997061136021663827820166215212198516480709557729780120925224215979518073844679413908289793351929832924430053104239082291835076641283553226758966973596917983189403551496791680822059436243560207988692294951736308647422869016077666903983848919220405403410240882575811673635982440373529018100407990874198970200652810973568999477579813584155537186100060126965757787686035811294813403307108468970446092950265482831980770396721577200905315417170572152947765964304059945054527737000287344320668941879312698440685756467556002988223766925112771815315091221023002345440409468462251332515412846405496367359552960185146668298834415416833831643879105283661536758221386219104762205155768596385652884737024962999651379613352537982788454188781098326235224222109953993630223018217941064454633029031150178309941558174282096228570095310794214073223719870888418164145793121535552916545267864514536799458905366437504953350210999069948607682554179630693507011310967625274974503048289385095653148692487557495234017486318097038752178924163058743863495175544209595236277267144514827282468566387064569802801235413668758608316589218499285022384479119259835781546801028514570303521908027819558429407958294504352563778015004646753437506849872182362967594956276499125793234321399067672211112322344916372731205513555833255139079107798008664965045611341567411150719660012934146574215932228090756085738449247350787046788059243172393809382077929641886864487911255558512380091294344657630425426920031277003281195097079391573076753943672407463414886657428553965746901122945319332274198559087294694646498408995846819458933335311222365331289550226387784325563643848410579470222913076848978243716709497540807642136819107705979785796694757023915876772767617907052896805982865083426812000264467020117763020604056539363924900305514073373855692899103788612065800334797084897808715903969272910838477441327759251877585626980107227653804316343343943294905954725249131760845800360210690593056264535328433836467465693248995272133534548352731774830952609534572961680242260874931014736995256357229819647611743116494953374149148936864246095775928995589235662360668663415764452375321096863195777519819656331725569559485708314363633690427299850524321684505074098354419177130131273504124867166620680518849584996338684985147968177786777164856304843244961793808010338852019143200624876190285607403177360516825431139821141638963418018246653080620905667070238979781538635893074427441131303273023823717327149572328682062576332689747492581129882416722209563930425610412365077964516105199981936171476867094037016453087930424593140730871422169343487410248165010892233045559541333764810140175149292679360825479332022380214585791229250468824034449583475341014184584061800954571270463596380040023546786848408421554027082628988046997159637243370920501762671279946314153202791736506152373852934145038748488654848125325943021341428120768193408338564335803081451156382119962574539843972030490896942263904924194913953566344530297494402585224428659705603078016168662148959785065433012624556220923466977715547934029537067182471803388023036704982732950168245050705349790415955679217329367492265231155956451232300292662816938111133044847921637917876257390616207002180303365852681258855757700128338339290912248929576123088546480435359470187201541196146957528328960076650460511950781811447294297210575509360331771630463392723249386564776301583942647238071718336772407588679775920862555077712619722265595050246676737836568065107171331537198213681610267910610123058729589766662097747953112838764923227005899859379744295166227372378772532627761600446521158335698999606141919904864891514159143024379061599945140772739312226370502600794671770334271567552615192118347345047426186615009636123452886862121175570595487571659627542675392331673067304014134720180583331640930841429451867194166001072122258349520583154725216757813341861681882429167385913993770047354113005984496605136557018908900999578134591554356377447942064727808501316032509301318105359134976354059005932140536520198431708658411159501042382011947998781114320184162603484075503786145210684596058897692752817109161580565671117550080553931614791571510942275979472244929798010118971532173587800019513327440466521505245675392045542146874698494946068594433353409425706431765235621347197736661107252795873005188260966347572641643441461585196925457871783800492432145560192654823817436737834834052456910735712035857357901471307833552051260060866856842008853888394873457636552389001051346808129737854905216131604390255559920904909985971058868904503423546687458695891407899485679429467921265953157075013782636956883410970398732963125374709996128084860186469217976985160477008964476992008411016156641104810382188932874444390575135458792913624492858919620034881138648234609830209769346314333398664272616857893526782727898771670812043149800396524651838767885237133601855733830737336020155231740450405220262377791676415549363024234697385843328388083675064728161977108313389688399017330351982250737592536081447361727933628055877338274004377141278297072462085015976445582533108298057082228716641024253498382989363310113887968289328841811072080797332049170335495432109167804066732710834765196844723897603487892830007501228449060134331350464730832038543169437118960993063943341492826291489354419420857609515390213965031049403896328724703161131688575118452439554403511987982382011524232834323821614028281232546802359521404806885981129301927612319949045490380455153978021179184821730944551339531223937955625980479111797735796937679285314153930001374974756331662030394924510265504077016886828444197937299561722026593265127222328308427028642666408938307937533073259418638340782184026628680443407100395867780513498667284158809913161259089506304689694326689470906459787028915201264767887620068863780558757553713445806541847874735110422707880109533505892147911325090055738614989372925565223142290800499986215004181655209541735995703885895136536834941022047607782159675535679778107369512414124227509734562655557230735763872362983463708982211562304771382330621727753683988828497341047569900200197683749275623118563785603193117816168044761454180403088327751790831804285541513088199277723343488605071318414663545706186344571684396125635115715189227514704406271881712705534558755044164073970122560515163454785116248744929432098661366412561712562802893163226278014280751381450317798393404240845111408258746739661276431927439577005425594689797605926916638719483400382398329054420454272938007073804286112368730497452398245600618327429013721675799237333821639819651353919194443910980426125355650230990993742517859415130176824400040145369611793148389881147021109548521965837262776312769613616182441874287181316152511846967520179193826242964696280516423013010759627493897296428675214670488209680210867418812660095626068841322294984268003041631122018835171315821740097570623097018183759028677592948196543744436707820748788035799011661414923993349231557621008623195570372434836108183690440939372256474049624399618628502866015062526304279692647549278844187554650514213295592675409045245285670254791279308921830227670479466985720521299875957123097294471676136823685820878267201904776324996675314579497912923634186054451795299298285225990570190139169364923707147702474306976360543710026673981708799594502728746843765969374224029168748735590538982687077192772636383528541228458199347567869855184620446480155382741129963845595932162419156294196062869928477386364358944406284431176597586396319890221255194679842383437513386467413357447779857843013876667012363007220572297656863062276403993511212957531028173414940168064360937715940350548595171390513014998721325470907404306904243233902198242950914620956714395449782273444384635575486878196995356183497353644522979384480154935251903616261156580569510637087229287600180136756008629700528619956495194462938260895654272470585276166126806332582828631362876207899318870172807587061552965316860766063133562832926663412937776540124779310491336694797361399145434673857813491044660306837336142328561443876876922977619925309248047860384556670199550194196932090827924176151037830792201688655856960667563052841558243415176596149012585171539573246855910434888309059717509046817664686453832983550837130906629974887715885983623525166545242497091461189538222703938144149725399950553728623225468904987037433886525860432056556331964014271070861019984110156342007606082851188428666276920247527612418276102135508958257137045506886900487584292142572787921459826105704461559380178951366096952592869437728892801481074129272256149227386917938993838322796600072988483102731722693984810494549871659139770209733380861747481549318580730489287242654366953135628148249369823978768976170654638521408561241114057500280169910963347407026488591436986502716475537254834492787841450422983303834525763150202439530850818792395219510654626531412366525896516906149322861312126761200728730978742120138869966339066431142867929037432873805127771256973893143332813856223097963591857844797171060529494040757298297103145195124547150310311628413120728222599790483149818613944612101836461990493187676928583668762926647106621394399788988743340764249878636088821362000463834803559406689868030931724412830771368079169415809902278268124256875641949101417095474648944285224995450924031901756251859390427834332473791224028873158307521491674455665636967510234441021698434290675745362809336895789917805404105455352204974528226202366671173692353908949647070441248848440810291081042615471892483287510558711646331110241973674749579643464713648079655057236955243810933768989563775272631874535852906059041981362046336476161551025930165971964958476121194016595889657192672123283320583939036769781664931760338571890667686029805128113840740186430814519282480676126933516325893657023839748089997284520329724544821547186175840724642813442357647884202290828419449312519259856675711237566432971606448157438610455044665104254951959895924326238829564660376527906501030063230051564859124613889726494428347359924640404006509052008476032636227120234652362293757409068240758883386552279413512223630414602346977645788831172312704132308942044761968425119221115257666914635061829048837053431049593959271957214075872594016954891792738681625916338893816980657835272615769951062387124506868206145662107298040579668190973000909906128075180403066808195384585583219719796281566047808664753119271032141563526925878353260162518602889025361374042932768150962144671084270560113081244079611443215448066274791988801261353113690332582434825803230058459969350044421473527234622176963765555895097880080835014700576493605708014412744835080122241303601502358210135279578205498208052728282379872016341935936270631290452736051529433367520528021964446169861854797686456489500991870779029918465151105108220340564642754244871707248853584253754293837932703017696402997746427499061995188050751796932974157984630288612532363091117108836661767289787498434483348906731531742072859100190602936808836513894946922769949836851800590636934376072301711964616315263100475361283467369383766444927683173847841724616864088133365981919524151453951670581683696916317852595681069382117154460113188202309008038479848544615168102698519844553659351242666258893976121438400108342791142247314297378521179131855917300876983103323549297978384623779277109049155657270828542478370727020091372904351531831999298737100524370662807464778042234210290927647849932954134482767732174942639317031235054725436104840064825467655672708448279469554573213327750873538499542492202627125286854218358250716195044428388458931746259697843813589762448361632645241752715497744580930360617239064088272232106144314332680257030852454443512560243884398510718702580968077028746063849134984303135381167378095443587726230510840092847752776147850931548170091942216217489849272083222212544336702517232093731366621456246049022024309505894413453071063201932918385027908696260509971761324166976715091244346216934976104425295342331911119762335144812922108030908832547810397191156532861908233909482324965961445648936733465934918532419994202975567526589612777106843641687387619011035524528451312436022610763563423430451319476119825151806693573685216017153288752518113026890889541873767021592232998027960940418596167030291323256059884962439535686937570968387163052125025541808551888069828540709266460490721297993109601278910184017573303465741322794198266277830084546571465574870240460032513198785445903095329160755107971139020769091380571611908529209670711261006455604005995317499550490547052434565961464431134525390029574731025714430481940209531507753307608570628155558195695256100885321674799764204805542933969534152349999632099752523310604077278624151402436035246876846622383218340216716660892296176327518493808599754173944727827045070197602638493557847501979470267269198218273953120382918275244086719030700072614290602497534931301432995333411624280474732454230381705382981110049942606986594689351254289847054363133122564161166602655685549110743651379871989926994286389353385375084644742566822039472537213842162674200681880868717006854505456208315740987270353296529755725663484883184139319548149721739956715983915027831647268761398239988400379545621694787521744679270447331072870112945579145578609977469710417731718362650322686097806376972728963942393243035545578664699716573386999187605530244364941372789191766446984833148708262164078537012251479084470839016473331954755920704522547583995309319697709841127589873499902676042488483034479788828830242311564234426920369910388149789755280981285933490507799637126857904894426064616911467746419495197403279848537014455059738709707228197502657772827672157887872134363043993744932238629500024007733923644164454343392715560708897425675679714171789333622200436891273611427548051457130476789872209027352002465163919571362784717672606344988101691416650264974305518667541532356888380000181523162918701520907760486318385932359776552601842226366903860606290573342567138075406248549420380693884732471491534546642410190521239305503141467293611490625757545669819032965837950058319363403194244417434002117735055579499187084967650832111783216936993877239965731362785133430805974145381557609717832994995748234374585336477353247312584303829406909360163878161180341373339899413398704454338352991043672220143992527228124860293989775461308709980571525897399694378140864384452906166406225786509739432408028617236835904470574758420241061694004611178539759475274653194574095261721772459986736218870163754942218115265066399852167991998042080974826604325443752611571371576569385806545391368747341920596033939823070589367622642466274672127086554526922381653860377241286779039312224244499271314014933472422697079250913890253018749606575449092630036951051094669645973670846228989272719871179244765855121166897280203863251730161544959656190749207459254115494703695276698628466562385672172413253671186327992894382284225771860390461537835451756342001327704699564114212650941136461907096869311397046449886812170513145543395972441050795744168576054355752750770519145434891568181492675898395185959646843542632553030495459953986489610891401166975476814586342090432577759019024979736152397286357033539328988785267210813423072048227727362682356945045848713068470078416804360385122831851215818007793351984999221689434747609413797080768556050225543793574887419291035271622287681825255504631493316414381496893965902719400875011048946124007521022570880551945098724882726301552135319748761289680243105625168575550478318186927546975085813687810207100229736615075050468349547372610645336087610388296569306755584249418867549099764173311757185255432247428548880050468776893676796470126850083191829881397356146588075329294172449627936205576182616733368997221533728948724170880381092781482554153507634413467194352678315266454481435673054761038711680839520537425748017227015875008651140393312861851929730554175992830962971858546989660210960796453498589737128177642189019129736086965033517060237390162886328454189396168743611441342700436040557863915039458811666631903691953375152967189431493221438287119731272746456989401241634086394031469229275660977034052180014487224990070806912609662357680440551715845687950771517631824369150773011006879281706859385109894548171444964089491021204043758182644821214067356680298113788005119989396031625708688163201259262013486224429654673606562166365297671447753108942732543447511298859093369556507290102121726651972157993012784211027032663879918091146755853769643598967791954524888159170971958647322200078971595671273588077419685129670365391607106797099371355230350946780814689350812713590561284217307751003981865247101761820705580400700861902717513308510505368573841699076832510736761310606012738666997992488136851780787050486636531355809988762143408074063003468522661291822550156779867168316156525261211984942086271580039569108599340908775354873149703616340408046230606216699231142678387638094114961756886110040361154589704721490086193646395201058885143272312577501232322077418780650218127130910332378574764296982118217934175840235765402792867430525972038612572695579578332150415529479710491311176149939206540267078211561541473539343387500074858764001077325411262012836145711061938328944696706096134961664681581590542493430446079654637443875327886930517528506250108285445263199966641687791733961383862447818752390078184092496394573172928114289048962215547746024359470917811875048165831651560056916231627788179924543299036859661998625315903139771778666737745824150185877392068476633959967219789576821976667826187393532332436332851237573299562248734321437838929295015363970401284602365783131283327877337306197801221375532196244559533884182144032164912509289167221778159957269356249507137836110480340401255209611709046330340982948071501974910660585069184614109117901657264798721732973239048223495425103315016511710608113127778674838018479503562332621585611196309087981172522183283400590031711384007101313819525029147187852412725152781130638954187383587349761788935166648982668042278892785343869767881794599104261993388549796820726927128374621403372170776673285423031606087446275930361138484992408043696790741800636707672446093305952813246214639599380493744133047334099631993224024337009977479120450220355343874306449392053710360658345611643026149595468173787541283437190264361813770169051893977333713468295440981494541372767530074374974636417304963812418530838717040226913141232524856791258614940153908838016837051848053440272119658619761548884020008101660936757790042237081284140379682692331355192123064862966991463634078163484937243856494925402500027640373680539219625006652089571671008741069559079249881861311710128603612341046837505557435675493143247409424263824864752774810890445495426540166189156989386328944129376027193806568183160141836687694106968827537190052151854821738453981232525528491966889943077910464958067899093622814381168427500630097873576752633176254319617186339903916113148085623107168336883596443251713849508582756267068390660005578334822939379805056174211924846396947881151141524077874417116947150264201025107352406026952514853828718774236256614885662688860704289946225604177098405611066174229112261968923671640271382497249407378991289547894825276923811930709605063213714816903880492996326919096986612086099259871511406275472404192270136960399009277768642972045680411096234020635219777486558900329072228090632427854245964099003213202130747833694654175107592616117506424918668440292804411878860264822109823462697580665076949191634354877786124012521978290930831998144385624813520394316118003479157416538082139820007327956128018822168489779066267378089519033670156630815912543855295690590634762258546591577862553036389450195472363488621007314819652936318281450308217027463964242266182880591511405690555427504126723074527864092819870002184421985754765831975668006919207677656061178533198726856134637996838429950656383068609610659944312146015958636453791766826410636365384934087218805025732442659103974433497391117172663476927505968808141447529233139365571116510917597156846581037347373845125246696018531122111925023916073073862909974207470012382308317067079439256813137963275439067074246937169555139895082532974631267130972701937737589186954179408501329476083542737184641872317916174784826229843381903718075973675460552059165578293813229152276425796528566405141176609904999082351892789852990493372387525194481528304613059630270604408555934920588310427537529522091681445582037024434940189305845208150608533127334115542033203351113709383475621949472855332754813357074825470304758349473187960311217137734769900945300786554047182313801246710765261794858320853842312292110499477297119850030257890324688665932747762098011819555048714379382873046346768611604192931817528129831757095573158547943541134693331571178764102350099576949567267653420970258771659609338569749118622533654378813912201140838303574335946820043441226968578617251461824248440747236141140439733572016826806427411210140637619292016896743811480359720642537652851342414830493049341389046380199188249400987666094802462642463239777116354816139597684114627756909684941758548537753303155251174626556164156822317552624894401744931228366585174970572588576289462049807916826127819141831809277675838027061545894826205481053707726972807831262494819128004572187227094675410861928911536322425692600435047003179896244430215340428848673992191321349361564532952848775747007212267167947764475615593367238816828073605856588815405901941645013474398706039929771831710154410745233390283890419444464649498589008438824977063115345335331537037968965141264331737873860194456262701488640149000379672010884525198276464080154537401438551615914132918192308773442224794768820389846470033865381903266030689193995103621071995050706639475482195655204839400035815756084501323867736624543382838239043701631772759198524806006532670099984502485978581195195476143275423937305289328572053765784634002257462944229806977976010740586767638472639860996425393740429467618524945758395319265024385517543862441746153733413737461382907702236367581238837191252355021331478903843594444426429646129301088723809215611878126485959217173319309965864964879098116320299956568190704511038014746783966271394618888623006356411662176794807920715174206727683789456165634718661709390456902762460064830506335827321711423950926179290142937865913585109487858251526879528598196256281783022182184574762910713127102375257914471455442344508916830107609820059755815754586023664269797245682765056452285082425362973868075101889968220642223824947269205472169607678491590116052201309479603883733336955634090975364353858599615380844384397072160574667162273368731405901336930703066070591240788048363283439199281527083333543034218362111741875721398523723157424493186288521154205643414779240838425518133370581479839468112764153722206616454704292047100254329178497271486683928973050047978031084699433858845726036770089051137384628175703980278590198364197543744023311827978752193274578476428857808192165784950332337913995940955903085866604486980376771567538750200753687453193740644757756062885294219281144444382583430983609857375886580193942144541164437723624637166004900942922975190967891788201290313808545664277204537103509347167672629348727478058193101672746945621146824842916936912340755281296314972397093511047137099405093144143176888175543065126831936720807890136546360338141351650020669833303442304622621830842519118111069351110950903777018748410088024200005359523014178520323698546202027091579979577295751088353418003399211621297158692556955813684434369616087044084939920294006051004933210064115263488503775309530713961956306594859758859547881081337007606366951707309276624445295106269957502872465952342757215811310322684802030530348179748796693897827027789113721486921429561772300083724824891214787399202076980395530852739481437413171578326961413194550577400603044990063654588161689235139311224433758313947619254200955245176497953104214975397678031541972452347213644475853427005091542197847839350312907020905246584521907327069122158749712282446216051056725967946644221570415300280234828225644629767592148508935878489176529059117976046543316157485664854979699053318429392634364617138169680814425786565041046554628428926252715084567185898086758925462757034450364849577722899593401979489760385537275378460270787329282546418472947024073473141450735849533019609653371054299242287117846947535456285019169039375861095361152096926476542007645088262426767892544165648029818558859195668017436786073927563213301668940223230015607705181761263617495455676191754637860922318076942427944296110491454210163217340675485244322820472724877857598615619221958253002481819903623048783421476853146562711926232426972342895870508139717809178528441598549817629935732119868736437888673848812350132058467403900884471822639327994561160939893629815674799095584456755184645469293932210046006267317937400731331934737764022566475753307954888866056441715516205894646051959166071792184171380280093150520749726518108465447045148365526536243330913843488575656200180301930671107929187386742797613642305439512530983044184311167461849782414207816530845558936204124298634448441954832759729222176977978674984645343758078350236737760589055613662289929365537912922692726049207054055047082717741807923355523232110840930763391703795294905644253041369602205150490403437167017515622393617701326038488522347958884290333817192525033720015200448483853177749433550385642391547042725123285227867594147385814589452550010182788963810062840268755754203354169234375383203680274667490866326918785711856334704151344266792465659427813199007251112758224375236123818941456015459477081803275792514488895542745836490255149899257574194949148117164236189961028197734150871448190968485804730039302799647721357744164774560811465532967901028805806932014441007650259672168383265289938420643834643998061239160243250431226434111378019284916448328103279590540636710758644631784888648326127628023785541793043063370498446128950454469133794455424560249903042048271378489292634601281761620545501826658050433085175750864328315313479792399356213075188757564627633113337602274062563039681226276200700876423176278683303795431641520095106902397048610416699039406486024164087925528549731366801171592666873268828298533139529228646455288875029432443740931229392920541572391595925520862950860431577477346419208082215941240186292831421285037917171584165437537316651908934791489016565194753440679598055092556487490417982033000109150195483293692096564346895249764439700204630916814588305353589758914590859087366820297760993243078958760399174197882351277600310116397030228114547112054879619218953015591716575063189908183213962592636524931147790875770144338975673672418491419917055932495245031740888873126436499047860091408602581541121240441324176463980582190426245118167998981572066306945933466231579842476985039862336142163789632186104078208083563631576508026299822910201135130875177354077882017442242623203123541104216230853945615001553225579929666388491277498285823080035539219169012490429180925958967769979508826602338966127745824267028827690856030162198175957070177287898753533563310733928449951322597053482734559920302381162333088451210580403867357613614226872380831177334970287094942215441031371528384686325180818889240354903974888764886107364411001596999819318356222070884893878717290094497621797813833111237035868970230358352154593204638478376960770702484260188803495637563558056333741015758511056191421781817095984317336221202231521514941463869696688826362126498340790988747124689439902086246518970755189039056326767263636570066199472346866740379890872112917971990277814529618340336180313819972538257974718007645870997580172312688225802363740678355589945187107903687677368807338856689220648547418082687620772791900924658533387812988640165118845312914494702459253207424997315686393039709536004667915685987500762278843627430249379344410772711222305737896973029598873326666759757509983161888458167757069649536781596776117751304324208413841563708638500543974077254021248391732077800969931475802420257608913231854755113244528703222777513424851221548154135069797499727845774699517832845474464905053431050670567717532724032124203246459024718381686318491960304858189719817046607042551110625700015624693734282875799244879836285563777419876625807954550329476638719103238865309661771773582019720192064933604293663849459121950549598170112664442378642897535630682197807339907632021474789696816621994641022805196426146015688521957135202608105180925925373984864768884926269990284976182050439354633997272344836412032666588788607062564498975732914198036121468977414130794586144449787807666746877432587418562272307781804603211543400896879033743631566744031427101119207906756709369463347527398700069082618777843937128887874220835479448553977881914395299267919991072274385532339235394094338612007830672440486363865874894177059530242964189693610246685410886071103443914086813918218237306648238528103887171107787463119197610540095776194396207225307847148522642977259749620971542346782697694518835859369410489304986522431579544152664280290095392991178916290573670694297912810566093824958163950429333256031502953331990973655438276003157961315289470490973873693557367111757196475060222981682398774531089730718010643217539514454918595578343073852607999971301113027116437813286361395208740941888539467477697527181753095117338293890777015225389042081523107801697029882269116785231147577570404676500643898571305076085666570285258070735025939050953131917546759662628500020358526902297139768199040969840098284794418215985372652477215639702228004861847602555524058465341613059988742400631902549791246125406208260690139869951181599712249296467800840496017627137488740074570689229090472902035083611896950607977511796843142150003226055374407427904272600290580971282741973870112848687256054077687260796607289300811579725689203117478914723172802154204896466901951420438883202825188578399145318991337860356962272196516740728041245715400638263855706053040132175989639858479103984947209125093118823440896750484628442694107268185988970516170756867577408554158791626564532413536907122949750855590188323960569926932092077553092346714564581512076339871503506641617467497051573989520882815399453787299999727223482569007400424715828059015095301914282104957375155194750343736327397686099332794850043835569994489892352374746744418518985466815157523441504122089588664181618266513137117516253310445432786466243286644532460064597582980709736299871477084157774001116675689920234401194261463967085134707019002575530300813921342354572445567089608650724286934198514443159228064618517493163650021926451114198991335693376506379088470376021065824226924952393448850214397945841933189892820548808244039779416540345106200252540550677966877034918656040351337081220334551117820017114848938383450070542964491795871646674427361736480845046872653390316922288343288259632764497105023732004153491008786183251320778467371976004477908901110085055121034592425740770191800766536969743792260220063574800206937465277109150957681348936014381851002144392251547552245358891003977029923184187723982851816509050424502230964021576650353087984175625253436390811585277602026859163770448405491763295091411116120232854571301459369351365398631428542715169111334915217542691243628764434844953461372885966495686188063970448951401874602893330216228691350542406920565067420984499835621336525368932322896619751318423065893697679600961022801644416220508269930363457559347452075280222168075662756697368123648870142715998478576278699973362021079560496890546084678505183921299510375948997827647068270297983400498725622999675619417677769982366711216504033808088511334236635499492738953895120844167247364606479640801328335922351497291220524635650521187724591023969130526093984738128687928632109758350185866665419208139622857200990923251443362883441921909938348036306530890361511573459930106341478810683491450993304154057785073506349127182721714059380060898610986462245792219734315710851144105923926998495064706168883579672137465959268791898064638821219749132272235428373992445200572505217200899252630545532998419214371483610916705559170145420813047373960702224590247567732812975641849427271554340376707227420633913879529993012134821270649675933466965212434789770356825596577953560710466359870323701528126291925100275295487791884522053630685649634546967666376524712579160731554809833338800810833938419205470670145930413653297932037996875657722713541483744118097020355396002294845902254936811269926361930427672629601486425225753447538549489320739120979870761682196522751124015692465696585390255849028313354394409914501561193703749497282114643172451160806583108826833354681958102099664699047631267038219537192934360733123398702480230783226334981549145238868972540962479584691982498405976572586773641298662441067529292129528135876625829265969341961561362395426193477516675477865906734501582888604137743132943668917777067524025431999816499359153728580136997235638835211132901732628111961787710380938757239507660420397951716310171868232619474455808029271298493331852920861742069281764752007789904061216418293688076857449920635653204719124713848514700724399515867987110175861617226447680451857576841760957756884281657162530224758067767932945378855504845173885624514619395265666032279000078124356456372097466923398913734843454677547420060877389521670353718411549225588984783006704469130922085553384486854284172627983423469679846889660634717313364467134802380240397273386230095650156520311457529912742934218559735745629931086590391328844258885897081517231233112018488711026243896005556084232726467972979900586302555238522502118170491206550610703261628758450090879655239721592730473456023469573460859724042756946982711358006255717072048201253784396636189431619628172800690788683345725322124603680503923091209203711782949402935143702863248203216462616179767469003275092045500775717140970775264949016814667396707921713690477367306020024125417291490546514353330978789957531491792105645536261345156683015257426415755646171299548354236994901218584767339751941347208982309088554326773805576657570850749954912045174770016386888255282328508817855657760794275464743743935878913991797505936915048279187188515639016597578140344464431328616164661354764174742448872490886114238549146439997115623145874518517462801625394567234650744343273590193512028096809325186922720914982924515924131440006902173046055307089121065246844546630352542849457861591039812808306345505925157384412288686801297372395553828857541384355508703617063146658902076172374222876036468120590184486550907788658934593928901209067888022612252277286742069209860372149366180087480547655917422502657298995532252399809707093892622855501185054197503053597162993049843382014150105989198896484128203508277919184792565562373901375542713827804605375047909962864269042218500573904441689443457795916281563363042527083953781018130108251113891906961171836063714982221295022125005636338314412327316740439308368292776506298346443491617419637371422103953529076879105829621919446528884146347230096614253347359109023756143870990976701572625503307406966418065805747774159452951698576694523539136219363954341926223921927823725992033594201827331041981796506597457415244090619985568586435190923999734823925999431263326625967286409343317757289809043932191490478057952377887900843407067653046016311739437816480432497489600420998100469688084361540127800967608854607567431494226907122326047909431256056963821473120098900331688712967954047478626067945187031266368458469801887283075753022879143819607047041866421225262902592407144230020860113736548477405961616855834921212265003789282936049151542590994902506232022544060494221581037831529519130865763150603907474320629680786641722466429778653705582687323802553526005282513317715968329603067959867257784805111511460230289702960957691944235053621042889958217070771846414960886985626622679332664767105232567349993080851892224926940413666549112960309239545781033323924732683459973656401419617422663926096534352565004556889734735253598891365667783007086593231590932194024452200921272000732669712782457194259284921783547646908767847544467592052018923614708540316849742919689377194895910309235991578229040942684216620203069423833834762199042669374462817751035723129941486463411360894792302053459828317983134252682217022177474891985431371493692243970225962342932767409881520852865710625320120283366230779175674714778902904596426474045762599681385394455939733856627396677360389481451668039633258897837450034673950055208677126715241553783364368916742243123024380111176361540220576948129699295470513372257081222154670949604078570812399178952179209242968771903464666817652194804156900660928142797950732029432509895803992404776517325528382738920035854788014058143352655979263983534924116660511921942736987097101472676080423154803801484948300164097763370034035140953981194798230767713097758425534781356974685719977636114656841320889242726106891073858902389054781743706239758225918202996809980028037384372604740595893429544660882705562338034315390344516755520263219850732767934921958490325208542387407391856354860788646844419188821864313308266845392505396684537197135876214419150013546322209313523517972153453505534465412153873317064909391104799965644571205356289382534508169532938947958823598281857055040816317941303770596449968342337630539880889147513346123793892163874047528972685045334721971996254756505378731570605981786257157170809761651191210073511495051846842206701129726950474056989608503231125145193426253352214428601374298003829287101098217041867350123030919391030687950746272867593592488396408700947846092981875302171466768498269149536565328028019880228432129212590305408079310952993867263607395787388642962729681944437823690124996670500534173938995958086493344474054160647739407532832021101387139081358340614284735613142173184452103155159920770695319337159282832096316685640642640562736781351785330535257107333936015571278958022551835450997092099161392871305074818141021546293203775402731685828718235115141040693373929795155014098340379880148334863901008196797223478855968469725921772918747294012995027688843968760778070368514568459475882350977387305225002313065347370657274416165021568255452267803221128947864913747457637036424004633593612751694984641780414422272974637185452930899528089046150229440818160006578720514728101176766439659391290214094837074794053827983323190409856147012258256950916049199654305159533649847825879875916537351980235624821593187452624910904014762999849386946200644757377049134925371221258813038234521796701601928552223834636318336775612746917219757113442500577139625090083830829696490003006455948188737053869248750128825986270310986172228186272222795680153841298823002450377611561027794102437160456971940285797976206912606527695226015714778364531629837915921595851149906838227541411156979325684490736287395016416693690553610119625591978788649054588057160391630781298453381322380486651600522466443517754039951621587521075746340712805236778776529604645896346393418226077332904577344877447103959777334193510784961713197216926957082186564424697684277887531296424814787770261950826215156120895386652820842141437980129870802586903864370576700008425416610585810233934202931671277733016044845974421367795573431463234523731403687496802180251258210869335435787725504127491994842847135133967931517113081181087944052142555795107303193368581304126933322606679130673167449567137553075026289207502369342502781178936038765393691810256450576501266345191015782280296760814359513309934009760568790586340600116252411546346949894757053090098284684041918213277538155527350880137051979490974512061052080438575536159267714206494799586295693276468745844109963388505430311818941036139565924435405774073758984441528726772157182467477042378366686387245743914916719370614167091615323595669081202799065386298037918161122582416509454630129231024824821700322678837628729839785035097927972738878261725194399898318495368935915424913820697868469674457886181873182745818157020890214332542755696889914259495851746795481012072698514026310113355408838585584420300268251401465319935462417475429686734588918701161703706368394432566923236065474854283852638709443269686356589226524619381636525852990043410963580909333483642644277116269955420340792116789047883399229504344796032104999843866421231126070153862490732665108637644221019352614672102210891220709561708121811781163632768339019582172379371080761317865299042127768711410885714176554698510458837859014811730795430255759939354474519720973117600262940722052621024873272221451291944306631492578744801542574344069390961394496353461917652685882728922304499290302919493884771179656163689640666928752487077539977659859081326930273053328234956151218704955190239020338344807172264240158651793318888451288559619423260091720550778434424375343103599566657477633689345862211021399021987223737588078858874781547740924758113655114604906344084305445297273990171235224380398628976902935941883407392004354659870603700872102504503967985445860649600484296933580919544309870331814901526216988122351059649854261006431863515445712006677084178295051321748525157472608826659100463462549899403665410436913958939340748088839449238689030775952236954158973286152879038991150118307082056196790151826420897349747836222179825701590423199317179396960061734946964161154429676989713666476718271141836714187530605723477722072000654707765865958729371400200240646306217198084261398087018688719737208436562227775730764253247287534065165731402174790894870398238127481425761148980459468402203285363238176355155382103967431675528807373967103937302793653107244807720031503420972661176356244531819789933716489322788768027515045332091804960608060098743373374094154436732153323072395617901759626545740022055621097171292437964560048640207541604732390914016107280909861551475001415946850308069930424262427680760369556677145777471271332745936229839040419364521715288633849438125744228602629653881148515013461567665019624068325805412531652486814108343098123179514013678352869095729926853329346813128443981089158372827929549182789678706744749815181182711606230719047709224951863022876738422507355157786210528923925124492185012062505870410566055183355744503705009073261622439755876268685323556431600260053185784317148123702174336738248677118684839408719459451422199597041288715017644762052830164950841509878311864931026953597402628066637466481833754834491055454401499931280918859499168593653950109359363966378510744661909200232829874797270666452727917494771298864102926569707024044427536892207095662794252929920454170099539666123983230666246284202794503903633172809776059029851633918634429565359198942241415168082900403680623031039768029294641947038496000005046787534058294095235680649019538978838513762146919200363279724555987791347203313049388749950924500094127812935604359258349926521061794796349889396861290111304938885660907483036728157808654825023937970020314659951440618347429492367546258210248445126703941454211812007464862812806663838426815133792575390007443869921657990467579580049641214918000161008956989631803026897121064472583357471867085813280714480416584004152192164695890160985740233102991041308670416175793707036578111240498157761618309062346920773998087776342285282576801929267408690974304072232250769934589567365808151635067691569922894596819629714254554313236112769444991416850889571113771606281807039787446908282612289607503464147774831039461963504474288788221186864219366228155588856591147255911102659358999156734636333637851506985744598328519538723321041365300919925021262714244440615885553577652366984584912451883488698609129153874950416461411959612894777366947873144322615834681607553664077735926446310237302512578443747121900920014577423579233044985909774747979307752696878007948080261287470189110347852253439717795107816868466367229114516430353835546285784809864067198883598826864883776280894333938717337785325303639090091320338352682259262316180164729915405346859115198484088305983694333506644642336963631192767046415265000733604469689026734734864948917957719922048635439160093769870875333778589285691277534227074708594843682220145577874812733062407426563080483649366589888123272625486564320945007440786468371845079158335246068431089024319568830256312450632018128985104740181851593716864256462395761447347029973543114164720583855404136443849245031119421386389067913997170594928244750716258930088937205829379920279295125453717708637330166425243686732154310365434403012519385741553426662292311553150080006052989456002717815983511346858132546674932587455110909110179062490445895635722238783092490070934089803323219945304119263333937231521514709057768005031040386833495285761425667142772441542926913808774256271749968796147541734023215087330274447763128154168944116194624140749127846391947908760214873593075746012545961147103852699350773832602924704417937126886604637032501069013567756904830231217774961648311310378285134376015712308315851263488848942462018909951155127599239353329604141518573683645957860337443248021444444490939221498396371840795528707853761727122936866366373118266232504853251176609805159475438729234487411167545651409425092851295345481535179996621611466334513280559649040188832229806335529748346703396049353633145500008380859927135103358239487552581693734110917149035611871270729304168046067509779018889039240897553438347784657501915015900610771346991092955551139726990252280080175712445708864266423634023603119429269066761882044334584913192700730410076025770917211403225146020547296727233259852855318391071050218132075919650743169707672478902997895011705517888015046117336665630384321213019948618810525414532794559831120738826848099248550517022012408746646094274783600727693169278389404428607212379869175347522043019480757621269629980231102814898110627597644299161958668981687610936837471637395082255917258390008616031317464908935389913325536642022372755811164107796888619757334746187126636056161112794091140857659626652386845885424568788653059055864387365377014722726727048049246184841695077893282672674163536980540605492118539800078913778892405180815035981481873634256002518175522830253247700113666230108876782453987050988190596931427035113511704225211978489184912900512416693418447450014572135883599258404575863780611318615647033056605396733674078785021884248930372565255991860520179365223865233574885276109044066613333573754004688571209943454959079900874256794335707252382097231532676359581325384912285012297473653347444852878092814071569848728484864015239992147050025526779285372920642044608365650200941703678234066568068669707224253072012920911743773903761366454558054036213551440976520054160666939876411284712583899795489274041737623239548745072561607140658265418826772801047844865112841515884878489969343220926527217761436207004948941244073907260045341226938165769081545674087122791514437517755963284413248009086593941750305563877829442896587186275823221668084041267213044231230024929524916951545784266458926315439405935597448615137122029358883174734947994853281482500726667010804223725969969980697104351085054617599381864879822817735181443967629256971132171767594578353776019930392368519437616363528623883082559329944195393663383683130396222941179925789138162500481187930521237712205286723107601595602140726857590953482510020894889904269391161164194704283202282339767933521762891003216876571542007357689139530417769486055745933648275117816372674577915022694848645723860590779039670201712132103303589093992116170483448383614973918187493708314076813482144697583056602816705343446217197187082290900404599174035593267384121275459626377945871672864798619998733170837543484032044258544621669908494608425638121140886616313448448809375024953427270565459375601214871790994756775752763922996142469425065361082391540002154026666724817680548899347297228403898977663012771237925409607194742190715831450267257874939799022543179252640150205104486429777751922862557802625109042405089303029563558488418784988204460851115824621816069811163469458507467360695623733331767252259883250584432837962560050964547586915514231171572185629468907173357474292947544455684515393634732611619675195418305500289444318090692905337703264090562619349777785402570023991584753114417458512530493864993440484115249058016921727385349479892754352125493041131991390482150193624223900363455086978926701630491636614293183809553904662380277890615385650977417700352776258774443333046305663283969291968378911868537828317971362027947813811497405069340776932198615508633480748045454667006601562248963997414638574165992512081771874976070132375400844452162149630098883020331282673044434504420639266272916108277691651900128303902860808772831281237502406467938965187958489210147810307929756440344279103673153583858171162517956799275794930051558253915102697652527582584353410262319128310594035891669801218691587463447968406175656184061016346325450254304993627023760570365803926656487684615346452097874868826169557776293490051910635049356309671017753521434064444073385718868657572010470200540298683773414931451210465445233498411152564425852298528366395629143890856629289492315175896695897116111429393993016181886085311935599201484597397966330763399107134816270105715659882731367310931056769285163529960269552371247901082240248400495424376043523375321660885051779768735434816285119425826360781849111917670742288771439762982698825893466359426548208788427910129124325511082741185337758628149332321027969340866236854518888580420394562563572207404735285063350996148973779802637971363357753844026150138138567026046018186367148322125195353790915794591265476124242129577553700932659415015938620699472338073965092845652440084058102733719938971516103131516956044328159274284639320450004897625984188742649888032452065043828978679870500715018504989496594735269016726968157687872757319840829349860338434054250633385527646161618416962821532325375946371975476670557812384012733468430055550957523585696673961982204433620357055916324414648150851496185509512139041278679419911350061454041121351151569805361742903064957675643475674693267286757123516190877664953217396739314791250289367794088291169559881366281953124542114622323688910498613804163803285631037007303444806063360368240983821362517627778829769555805312985064887151285172309853535295254394176003819720821436232250895847858442163789649395259913789499801031386354213268856213518521352779145020433177043968557620127148507339068057205435875099959398254413721791481680891974943800089248011293337721650471584456823933903987436507436766212333699407698675836645182618802407685043438149396968160850563965002580838923786978263468921877591963319088123082032333239343608680082125394406175032120966254842397264770065994462558015722588488538543077516685318335468557949676409010453203957165156808116218613839998848644734663643796677517123746662178367297977363028335412833384394016009916280203308354089103222293087893901203924520946708461937014164614661467400305289189153673554406972396615020393913213586393693439470333213664349997062152078634279698607686264693917518720567676125761917989166570136478463961308708996998796661631330467063646374055344852335296277264407924745728653461574615795472353308756795234409712340446361266593473023361037972522005906940206091514788314797059780297454055832903673823966269660769187637773433273845255254063022840408119708395504208249900330778206496461823534092276701055682448068891697438133843968788516274522187551136478280610734810674615362524713064123204954798891310667144267053845270562581017511398573026443335581209189235064553563023741402126100518209544705872541442777952794864075198065653541731165923150358760283639486907375336139677624251678094533731168823050099530444021334970978778725119287576944494986195550735134964865343689524100196954634735587820626023048450735617455074525239614909819210789026835074417021157649468929299194809774464787863638728918592757795406274885845006846959890722202831137043018302130209934832749836269084206797242938287116491959145951826200894188478216901485743849388714520692090804894398928486929104302019485513839506015087718655113577918509550803807121806508267389024116326126182692542747389401407010586155050702674880390856401648913538137392724367692548803853499109082302799593588044062599308599564216863932110374377405900725401610768886117538291121627269911397571885161174280836837231724240525409379126010166063442233650984513858662010162452069054880544432965858078375301231968021591520955080183993948800452752197911071849185682931638532014708654882389612864819935538520640702360398856263857387022804823975047423864093715152913174352347131739761629020561616128488937822156660331867318989773452104089664987067760257509276688865297390519174003945629387444859979920537642663439029537440313573720960390298981385882687804897000113045470773164009684406624697539674584573494942764559693429089147104111653712872074623468742477392967184018356864012459605757012216970252020766393747702194482877717178561656070465009065840038132200362064065183721902402363019559009765498066400711709143226938255637963823796225262250245404482204327093190503009431110551693555065273833349631104485220306452526420234671739681483197994861188624532638883126005948974600793758228851349430390239098960057127242039056745968331946981566634352765287083893806556436177083262181111073786328637797698534609095829440343594243281531786756898477091767073054956668545267594428409797895695972396316400183153176567997061459088099627155559991102192520837913505301787355821586979132493297546092896415810040392580193772048023284036254429232982924627889653743627567776445917803722112521688860145676564822360942798002681426431381677746655852958662672057609891927538587756637944815977334549687750128738477147412089668359019045575555344784713160075618223069559043457309622278332508247356631750736325539599549674772192416656209128025815289343005394439484506747330053920162130244046951444532023673697363886617771348335807425839809704876813694404848643515534337617285395757411744990834567237602090961964143437660448786791858981569886978240669493304003574093605493032828163417761319504748014230679283232230657360218766688494059312512251240581483503410949853880002096831467061255505783954598275082719938960203795791985966812307351132789699136204505626424451274350909410138156370808441083559698353734591989983928089514117106496635218703550651297849507219957233457225063987947371696523161931152808855370680913666311456232833497613858966316967239355150127410408340832642086482282801140018114702098180389563610181592550473724576800651154608656484194911907153612446563199539272756697331993513647719882345764181381989972062023246786947131582628812012066743755125015665561176345909575405502567103352936368306946725214961424162125192341122408136943770020027588138348681239705734031845510443380764075504610460111319473484899747538350507355026451525523872499438982846448570819080859827494978731498207926360395575076800293894009082926502503762540841718323298285490438441865667427686666125050445904897714572059940571966387668038191890363963512034322405848325967742004666339612896928258179003639799844266320933522824022630576512220057221195838183254261275435607947603505653899016985057292212014074272050311603545868884760493953852400669608972194052177142117709314923641123135422469614908763230673668994654679254331568808994479754951187601807803295434015812919108901754268628980132047558551497370691046294998635940413637653137061861774206833482708311153861222365788277501358302042286257947702543366358766262921171308591575915841705775095674605082024455661095160431182537562036482859698824537493247782772702073955124215079767678029238734979449578310623878656960543024651915358928568410027426013370317338778402134997583599977226627347446321331777579631286432110103908215015597387353138579789212046526790654575601049498117192228200578494043973092678797158610111523309987682936497736058325713216133784307890730841738502675654660735078205364801233746647599493318330572276009276031468460077193203525827051527709664796299750005546091759139165308552247552951861006549278076341306066692043318630692696043460566191411060304495939062699390196008291283754442336917357596105584975980243577887513213762713954431628148172796632012948523436312914849838368524191092717195624787672477497808887347660399247863183747957124169640250216465774646489533844049336259889798076165705482639937298756985175876934232271979117822825772815999871338279312847296967718716961285340593738781690780349234044841501576582790951531527524420384692648940957898876620254009627455252048484653250091995764889884469312663528237605774606984009747449092317319542526998301404436042583192641254971159140441624763814933183120443143916696914878169851717450913501996427010969215678207993972605638488081652849923995493042382206621081236996455412865390881442360783438585233723926431939009460682953179448576274281604950254749051481436605617248181153172959527152964127438255561623243954708674012961335896030480410415318576792822402176513873935515290537625141068333181654391061040059797092022010490786829984546628754756890614762267350739918920924943543528209091799078323422530607420258622239405829282820018273560585864611915117278386949960805038659324651678832383168885694553254152411380026006277309045258443362961412226913647100905012787429276798826968406333704604583944400112153674733145986273551234592929298993701451823766966218973470802697110066408203019668711838475939366734988758593534461689126023913057165449538231637112766289537088098991025342866965623889799528188924588096648519669203339356863504661845690198353051628210930917841609013117933105199766504285524718565091513270551194806968167050777833272801880581447691093396756655578994874458837864128655414760882366132849611917499406461253904860990657157445732424536337476852634509857936070779948132265840840126939624955143869915124180254822716680532640283017482513756286448397145724202464113136580082208839635664109267836467037718021127164294852224753856182051456277916284994979689502450638973579619645232543187231884772636974919608370301121021162992021793946274598284165158617909643112595210815237289230717978479339077732397728213651895697117258103429963952612898918819431084556319357224679365133168413536722088344001142375944853861915342767497687457013614862153622216565699111798149404927180675385632193053107879649440518467826262812255282813614135926480227595780542276042030654183928023964079016350865605485109847067794065330487308146131138882637595734884673257018265674608744484392390666855287507019631673698038594364163986801597196826847844791853793776813194436083197569982477862202839639823837905891898439062905531711799285661557735554985509009249674796800611047972940681234712689438398543443268007599725308802456423044927281634020090108193701487977436456937576943101531708889515430594674501342836581144680857076143757145163472958991797480959917791537952949127022789824496396050653906945000157475758089794883943415176601234959548534898104324232612627316149491486733016041816308830047726178810536128050320861661531673870614806941194440549324866423400066458459917571196290209358917676458675919187629372192410993180487557059585823550735849814656373840106333401735433697491457843245542663657362757128573114308910385709555575424368857551257286550656983605120074811830833501527521776774423626132502593953337223705040973484598961844611245299655925038627593814413862365774634665745362474979398014090079812797254153672647369374540933934334749466369216805859691748110548430418963857203995433272665809080955496634791376534444490741797267988701166202391604140239621944452532183252861686521802589711804065184202910884175166242870913975272795549670543892813714484492825317741357825970133486897832585296716471022007049154470540189944040091764329592831649505777963003626600896599009727593530644444984443955540376786395698724927890960191120328172489196661340748386560931796352088350426419105079965671157137662816308689165708975791235795717995267447374259035159766803722897765957910026304995137747872035206282203042747483185167701656717162753946198379358187171855950770084238436468364293957279521564812318442309341941925253986085398190742884936417321818126903236778544648863344723164662694353308092575228537947171711514906420162805015531694690474845910420384846418995686849786021082385395964873092662322112708790889004967295206512801714276900248016447047417752946084279274004677161591593767331914856206916613589822603780022501561131965256559302464070418806592102488337940025094053432463522233322694729175540527419018875638858940147420591647530424498568653185853577154709534194041932015550999001652178197430674077436879215764937614239417633018855741294812017530896494899860084218237786812374996734410295058644597937183779736088794241033690112280251258863838462231982775036921125433268294391011323425855860666183554644148076473965453602064702105996521671379725320658080195127090137560935817041687120260389451789772625245595423986901475188200424694743065997538417936329725499133827294211739813403684482194222284951990353608033366258265779939999901891301289711589729889215107617052020528006631928600230301823973901336419332126891935431274136694881068530145127259977278320713374479097242964312781647777377922678322933733611665682763099856589543177222887908719562860012118505184393983644888344339630554300075132229018977255018347268868547211341292060143573320246150614259290166450466238088505174787840171365371373683832854421462439540733177834712437873749346614466730003882688476231245015145794665386682360477103807259780240075589958699000761486927480265507667031616221508835932780577958628570417820901241058684628506166400779026234755722752767122555644709278693127620962218519560776160968209915136832999916731776474710641935432992800889696742186689696586372115460052471329964099074446786055438519113736535527614925913229093188850287913042473565920629443723922148835913022310786821193582588919565521345227290333273928733452046518728237814665840138369615527203296229389190746049987987958548663277537923267664175779249590305302520401784001383908058988683150266612423698571027298525441664048045427111919042007326723152896130809832876520831702041700996316519320730478328613370882478832052441340607883959064046298090074315295567951935887709376730622755423662682261949218820298563952887120992582762368570442349616470325777351516179960717039319749268078513058491858581957180018546120963012570059727197168865452371813142252574633845153160688964560149011460294924895840262859925554773192361232478988589403723667713819449987984414016205344198929165561753213389350842512106380615084004247087142096890123467804507090703703656841540625155773470264684404795868255091128862662900791677843480691427111625007427525551617731061482794804071352174131667753513528713766786374724069543953967592614662948042509745397692213209329872792121619842545873823252677182716006541914119321210565885045200488062757558278973592651523398154999847221778128901487461874182587815852025742348209321113913385604653520724788527678925061324922010103171517442940967258415685334386317806923713238708943529843185573512945602842300508885925191025189011982317616052974427477931783732774619444582279701323127879856230316556565565829638266003233942999905831501100452308386800364479440597430628083470932837328075238109941816828175128024397008235660562462040964093329412133814057447783737201091115976145711970115770407867901994396832454209882333679813792611900909731699248033553132643724539584894729169615215869077440431749960313172031647962394974619915482739882892181461199516558912015870096455415448620498114580552239388770674028738220800108882517996162884839262054098315894093655849045763927362787755119844614013954497746548025817897995115761178193116155788347935705487406656272916540091912307514474556260496185717489761141534796662166469074428013549594066964449069235221279328946993942675178565577615837868749050748063486850421380186957669664582069410451898753236581147147711716239838127097714763436508640921250989220327469493367007157872716256842511050693657229963099934869946789113964905548534686204627322930564763005701607921960740167015788710430872576089631085806982993171672893030870766716484765673584081830427426803083358216909448717070598510483682230307503319479987920385418662122067193078904920309051010898665343169982064689512015402507489171997598652651620489102955521424831331877572347005051935370078785495216352672374055094826174797644857702973750345864544758201749387661207757919853407079778545116003704494892645136857359269625566473050551456780244307440757049215216301621466450169793835150020241520477993877795952439991170198092628809402551481340084833056537384543189023444355300770546515022834521552721464026492194832185725739151495008426161434892288476684999257628572864493101698583836129390034133276383686546316762138553511774449263464803815735317138136730835173824922103559224865001765413568436989935672236363220238403422374077725613733629069930494539346147115776817011308632080637128396930900062504449426009155361723657282353568914107972772558161845367547591601538444503574042475075614419993503748922081410417797327577045476353403648715607558978432793953169520383902627830985743621496204816402822277010948981327056326885027738107179975194769359761825073354472978386080210686770297835939392190305772893884873237437736534555081851267902729058294025541637885320578517187026791857455344480782580518886913357159984934025574974933043390917631312176307311202961895189910065882860202135605233182456329949205772520596891234379061593134690800576960869232116421432623619584381088147955649317630237566789193824344558567647733630047852398357470954897655315014211439221798165339212247620409450367552161639133085027095415573028509919499104770519268856703653833670447633291942005183044912347909525468122177439365940406157569362285269348506377029458282576769717492443049241961911202866482336469309302591065238299325826184990313467119233486988159385797123528554977473720932729342551760278114596479759661035670514554642588393143902008096097201846012423026432579357675713531091485591379793456369567504859787157967841258743377259915607718420580774206928627851815576096341002865240653715861315878391067330614288128749551549982057051111425414185066912714980688840828260301947115857223722996089205272516445617084959070315591839788804909222140836269315669387445099103379216516180684028046114782034835230354310935078379908570151085090445940837109868277386581228424544994494323605007630760188384311767245950425518800864038422021842666944568184805495405315468317099802437687752394157846954530128787953071358108758229967728294050202682512538954143246986912972193117397797993581841423421764097951819605234394851827789784475430936172163287492253264044269648913131608926557969132621269814864118488369428722243962907154370429045921708622328321924291896579944609672962954443485818358257772052297279294251633277855204836603529644111582083410612597937076766129281494906705709903505654381984427555603001662844373263944631396063619022656485544606350978014216236084168765274855079775230512020421087110753148412033102300852801488740710760094417021490794430651731604074601207133319911095603498940121902327092741611486166556420028985325158137619847992234760972124676650400018256016238210171223904957385695020861356646814129554961139410802897564968051861122833359943762927498941462044410012655658692857904593556806206468016538289849558555069419998450751516870663487755016372442707509539746197512139949495123258828575699595746320278632028869577737276957814775773861859845213732333185375041626007792340134598760678347097242782285946617586196580255857634103575313677072300937853046954531930391549534874580678935471263905928971506061569739553191292056625543311152105477908731181404362230701749813073879522884315354511392340936436570399198534747036116999565128162552258501265839086480215250508596826475694074478505116002797711041988265421486374122887811726295548193829464009658735453191127719515507196009322632836016911284439543060064626663047183209021623106489823942569562546863637283688040115478325879203695628890858053110123198649978582123206337644139242707827915252574916782813093337688518730690005516117417523565100061699877789533946987775387089856751617117852213971329417879217813867786288793478999216172855253563911573614973024712518764277880789133656761247540660177602191393070236956349885878105115550800542300733663005754059141044240586615589542952890174366149660131679283518302564468634512168252004720668367968531322333202281616540753818205480932886498584684086447855822249620772914606773183035151833465536011906333646450621632408381219223256832491560147162227132271563677361742860563844875386799901330604936637075900502781055012238467825975937953426715933069095311978068554356009583750126717392874398034017526264122432097949188768906224495809994402029944695175461139471927701652696490110088729552002411532043406886829922197799320604259286593778816037896152105614532722128705865980606968220246417686389468513851088511575533423816040227279939473842466552041259175027894142054775799369289482521579526811072544851861866953638485817657704537076335185596549887429652515140149009313996251442582831371861535002841014097394788859854476764126220148389416352917358667848931262943860027965021512974192517870342019458922465665089852361965624874269238177999089313279592930157070362449238808190595697401261780250281924597587264342249187967837191879593600928521402661589749281176155360681737114751074886000664477893556865121822262606429033728818896007912623825914419698419322700665413802485154861744971648652827749487213286809695382367208675210502502457442478296633460527166200065377385795678121124980208757569606629821704959945559119501191108243278610641089214122130806401710867875395333163981439967210992932997591089143627701383292947723558153143051576246602924426492660985392860936224704224148625311069587026887840220990770308947798548551878682563642030070557929215847120894144510628792689973418474911547115332541511196630674414247010117069192373452493548504363195738098957769076563262000100823091382543627512224641781912878547194368399433986246552019792989895313798360453608777141735509765676208608024036505545331200443665203999057037385413192487320936129009358372918326395916188258387848203503792027584157824369609116769081869221918837895782797040942657260353186664054576791275224334721695887176741631939581685590630556514696658445085066204918656678168441370170686049247792600166943766488613660589680712454652540043289254794371609785961483814999833871864226174969310889882361947469767795164550361296643423487204732940922433121664546820947834171650505839336399405417998254737719273898552361145509093313627876856580954111897183272567894673716855076115140828563972333039595223475121360289388854522836038852072246654139901024479850333993103173174359703872850865879875955267223025365156587540988765692562178078181289764317594118341933206850358782656205124955197482717057448765310273487194195318497955516098315869468713357065438641990804561162155173180560170108134142330265073894791079139657160103643240980850890930551474440389710464181866256076904423819060226868602013472724247110029290521566401179844950604095281955157262017055186731766561955311648243933972522826961382400215593890740988995644108491280090143675306375447660268264740383246524359700180353159710209476156195679544890729759929417472985722308241883168551782607374935591281134681583216453450371875906502065774634891738293887102356834547838928195591122415641582278098889483278078404034771825236416609124781541139882981811187132267394530263124291296873598446593711536341379547841491015937710302592754017810437726744660761925853088418747702676484701941476913347676674590035046010419527829682190600713898013188538188094767878573508307988390651378599718829103775648655741702794063917458791245363576675106845253688963679174352656895316020041612985803507330412613660069703014833772195348147470038511867935917728530201857688243295353130921206610811224507227615465119915308320457807051467739866751556022706756944682385420981674514336999836688501795900627308424619133984075511824505355403412934909818106882512608818952398621462805538462152918655035555275851907185374449203741733144711570867439242322472733445515695440205662487258344538903394030838758064548195306616721751419297514706828584461328377909629086332583077889677922120786384151660145007314653493622105013645135574015285971950431433605316530600371488382136043836223044012871972296445748395329918197776439454350467572002886897169716844488886795171589214192659085701810614825161094394237904498792061500513641346628650543753554706404745618050638759426120619205039336616342966665984310990029899038270075354837801405681358389800202007061211953683863338287867840632355701469517145924445254747912049039797944312991951855189204680462192565077144990111432814255741935517121835421076654492322193937567678133506368042798862814630535243809893494684352382713144485148470272394444591746328055126388119301035442063477618588610159739987855672994638058206444331033451810459435907496136014029435135292288035036947947293447869476231777825059501893394556597048180263137437511223929012600236532500436051562011238747741534207040464034866177927108002301315324863580992397024349481036130338559739282008750317762188934163948554548075033357260822454733402120959368374732672146368716803559524680773921675441541988310083572712618041953930386406760183006355039100123663896561950656838676190209047182966138105875151368421216601079242570311722409730976040865767810483487486944428559567422265929171424157246840072536924294636390123428190734726944149081573414903829705672896214591414759747477582210807241028542980547812593809733316806078094804289551110081407120272984539731698932754527526142021829637751195219449175032911328101975582621715520464511456403401846714781417312539705353923946555283811858251114030212921641323871828039618910668899252270275876318035947907072412243712603272366555805417176182020500767496604396709550447853681049122516160499258655835353810888450452065012570800747724928537278595261870940907204333950720618290244147776060795058624184758412748375658352375020271302038973248586829057912814146430696802466857784643538950068103740603575023655894968625900408209765701438392567174259101745813213491660563758539390368470547777790219487065711169773786287213947026227199066082669208910301327543263506257378453888034635052577670723797812332741657385062982841407285392447905922307611315846787137876201481559811267556911748076579669830839208605444622318394187732217134778957773598977314519017085965578562240573724799155126018550568790179944176592289910405048759974170874974057363363488644562645686431071289717925018779746358881423006357766245282939885545715116537373302984428866053488380100300540281328677090631927076022861359370522880503936632355347000972739851400336493761313787639839325351591282674662150444749801246337664911181232909006555869862922559549893664980780380309433000316235905618589768329892104795738430617018024716777493917367122608731069754733750973370441676980919354265343344775188315019987578830736933405702622930076560667952664390841757225867911702085502741631453522378621812318078969400842387102330533558965847788698928339631007755007362709206748206691291060843681474028352045123432837090374525806839870963318995742856182973619269716816717136958689287995870021130763581091094832390220258847069755574284943479368368969449962279877624238822171494225646587595663852569654304893022690546334148455490530699645624149007934490645275488915186444974088634114784682035970019565157556822318218474988779359654975796706251258458982943180760457099572575102623921605084299601037728510967510568270849333136711027293282858457617721357631363501022741356978089275076246675742082280938095605295495068610354469084126857037601108253019612049724106305280369702780228321799946800629333367840284173090516248097460886195864452223762172475802687413538122713926304274212827432894321498436480824636865404348053697283874901420546417820425388034154505134023006524365852518624701608044790204211267744378916497041514165088657077318292338156637786257353872726442019255415652264962419303365765037778938169737272939081492709501096506582110903017051337934789295348598248368452697158341796831518267775417148779002790806361361140150159458889797941546092683194069787344359910324662270277132428763802863822455160580764771657259220454468593723295974859302079850461604574333516738525147269113559280796485633327492019301416121024055340271645394761493205605415327419133433870903371010266904048478532801371568391830683206533385367526842869290354888939082584861596803359187384434318797953059130863896528951626986851748714474990884869222828684877618474050936981143990037801608624614390702920266334375769972025160310816719860005379945374759265145524205647041226290023155775373721252576513657987190686286009624117154959756816203472431628453062989541640435450584756308415854555560071924647564782900730879036645768993373784184789393875348894976278311896158980699175582349694663369515876160801687128034628987413446153597227075725780095666380833132110701808654809762934726563731478995769678183290329810459308958236069951585764989439432705384260252089671298008025436617937211198969874567256719506716117554948861740070942774380214590151139695241561662052476124472908471295537382412552928712187431258982450313237315905213970858505517300164775801633087953538135053759635013615657714804794770314373962559807253526070489796053233828338788536235438843322760780273973059942553186733411824614913023079840597436536871769889539682891848165582950537673116624324155292906411429432791142206485325392975835441827211467413169650444455018060065590508865793122944953767455263627457791115203794109529883212259244413463102674089384857120071865573192062968708665908059796935847485100068509084322274503963720460602461542311263151365997118090532266353945485695472621366737121679432697275341275262003315473523596412385161373898785587666039683258702959289887738502814444998046899469951318835920842511932083867748030515328201547325478387487493428121483386646511449747696016424432494940604641718879299748315747581924973026170428356521966466766033196809337086455726568077106374406973307921406760960156409026988727276506837938413123883596783760532259326962241259053916499084851365817412521275592420499698419743342468461163549760170056487185350311959792322665382523409202726637922642641173481545077480263336524936091683101426788962939824643468393553001478855381533034830722184881374607025135466100886750203778269366612603293673751469578980391347845130461122098211846969492667157671265461781173509119733484470398274357099160354166374432098655415389291884945568492899370206489380183016076726805607020288946690944360631620774107294702095202975582003853005149561391478543232945171869333950886792534887614444147942559435384511201352381903814198300478795223860960713859246579950977123202062321655273762438195668408855943063447706021005930548139197004795742863389125227707932343032235017451476229967841444916063608460586376301428438474152574432267442029111687614388603211120130743980293598978458765690567522346611375441749887866597892695426997210168802388248783726017344671841152494067550897654192930631789503160730644377660958441318975041293729458377567153659917986681806958575080039224647307695472962814110630452970333005825279273849267069026338630302776843282796990848666862381308164024466592341170879303726400552468823696966398213652176927720460759666321362253229070729699522266908810538470699491558735871606733662562137394570648465379054711404084033523784825291785601741070965978333915767751343818619707019927877502394631318917918419401812093405598105173608396667872124256993995199471641531916970351153505957354328149571583288974833006064586870369574804928204806222003032164285065866686057971188868450786217883731893067037421264223890455978954347410126844065591535257050591233381000823713496220513569862563246359023974275678611102379030996981234627419598539508637460901174854533512466457471374378361620066425598555023611862085852354773094690318127727982693545970490819898422420898563619190749343073910661984479115336369953584909098616157013299848743044612179024938066256793204511146113908218349000820021253561282382522224135452024272869628242028159347960520234079200429846561907628886598969541835057938562586433480281146070137473937424206989608522153259911518524512008933733231313717855058084100518974616468723479505399468402761618764067652143958365675306193903470679189279360157952236670671407256103448922446215834665577853708541723980454839857329204720508642319479256937446635962953858626725039133325479331972945930944475653551182798758505053261234712020597759678403345244545273684251086163193381406514613834217860586918608284425206916726794854347352764151699851674582139497354205745263962568747888031735099391653729268656453478453387130593987719292065398834341638182926550277687313352701080629577468491127002707502744921756552081481688490494697181362773296786897420222449391582171707541041704240256720600695179084837193009291232653773513641992456771705431751591325664616999700305938256665182719865001916767397265506005975740507754745120063390566501310411216526893017293202451346869407001193523459524772424375995991116976264907828660168465595528577938292633075461057300084968628836942435949196275201669810260636600704160183993257611838370514111031822934083529271110993496958833661849391612202654814042773603308254562063011985959062518141251771014647096157882012483683129669349620392677841309152254874257451941579664165930706981415517355109073024644761100069190241909585162725725301691268984879434585977697457516071157356438646867821125078883052421545839799085921197134752958812672127489328517512275385302658167185883544467324213774476965688823583934366988894242880638619637138509100533067621405544981681017155222278059306914192740626429169942788142753642906757265577031706863934649428551291381398378657755415921616596714497260302620579361591104332451496405601264361830077381193349106300988836878532936826782445191039262278420904679762318596410042217203036584745631760608455288297948691100788282886497101642880877446320271702016318040562021390294003263373048346351993490643285345058558887991428474503170515340174128059626956456744305059203981416803987023111835602034927483681100707924767943325905014798084127744777750182903489267508164790090046643249678899114256729405321006445115402638824858488260504656442163662875733553879975777240357146843651798350927168561544045833872774514812494163978760662140299872956469375012391125293027134404104726768151044931483617545326504089377805809719579001021651411712627424533475003962216617627638860116885934485803318101005860845001251223901987018778146864108135912198644848561894452216691956412118071635568628178773711966661303763470036299096764772289320119703362266911522386028890698902498179022634148606850867509350885514317895921547912595150679352370112584041625913110008629802889780821962811678827317386192222776256123830338247956115317342806766816072253023910122626196382563229272123519490751332174032992447921175701014141421216231613794524017224011192062499842249353145869812575196767439125657921534715877252657185358075559374267722774039236229154128846082470125817791699046336268328793931001187662427204753334651442647812216932592701343271376475148401143386746269294966610964769280687028488388167543753074122268880881501300814391332034045371438373727110880685258395757895942264437885458193904318949592868509050990227971155557180594868982870259054989281570258071378830304272997208885296082609365648236006820567607580923213033091525980699448190172104207586274258153455580443231860044676674200017131316106503555239770742969301083937888105743197377032505722847609643405479641640030683231341271034022661648150678017179761415297286877998202743875891078594332592841358582037389750265927243424152981876629461612453733226713781216773941498042081148987699542714196656040505391744791632538200978839683359333622642583369399003877482914937387112159627968338093031933489019325500031701092803504075015668374774369120078223328953312830350684062423281240449067553826408577130163244129054001485864486967477602549157613710301255004346743431666607611377669958293806575964110327137442224400037826298112255875378662681080478868005030210545335300680865989224280417631690834399410623606601941710389431975022041330035108352669884446966764533026789574200178642350368938299787773562911190589378601715861485549148100539582652668741783289858390572030733697210584950289341842170912166800444100701177858886283729612092088711136856992197420559722684072077471344744570556018591166579791527673167613031225346549825087404828600642691788288713203930280068690477897158534278347309841890398936358086047422855518712566456415000045047760694421448317706537378217672553767027014592663663074475655048407639906368016524429289716695589180367850579665958218702666555401420052155839272175596327246156414425465843815370893953673727267344087351047363523808396192395850112231242507617475645203664102882282977471309432272162314867167308725758523047768684984272418131806689416499805467058648916186029942598914756707161638835669828518506356739145648646737793777276935258789181272114910976684084561118229164561123942240895048093927100106480042346867493985162987361788103513012498024632886103969369396221352449019436445319530683922273091152005157039230660534240329542473242750282896894573979304185587465000805464200712331159151883620566183456991414921033879985751543843849556066362540278617963027360252554033512427220334301972813526607248019367298103393585608718260249116212289944786472967396656915316095615386644154725727109125714411499747134050543898654456347540799890910003209868578260679742882869659079626179319179058330363666030243763017940466763194895027536499709132999177506154367389003466994401810975318930508857142054574530063246232675483390786269881442746180520836136412563350653961124332002983920465983653303471371811523995681111165120927443486509124539776137898647411357945632654900319098383283983554513257632266937960958564942467685015322896484813398896740137430431608946120207151728342420748464398936464591295827573712427707598009519096543514363872194123420471927780082343393566008826234785355253546471839780200884630182526433221377472740829384855472589947029229698621128269077348805402271352680925188008819225130701131315613760894223454808591263240407885930912092489803353441989955442247752733120283892789819863316413795871512164805588876776841665752837034177561569717555868098047151835458303300145898716343986169783521551730909567362714135337545984036598425098465108566169169207883281076537588887360412738665511816353890751967754635984741323319390656739962578733236464510136608381256754284912214358338859654212716940106212409189841809603808234894787535548881171951180053164623392936542500415688261339550902795514251427295900005688945659099905842572718233906609492930400737869925179030788226887217601396596420248974917079689150129426920304562966465967115187857555100397393271168268777335896023587737200438475710114801301071201396296318948625203146476703259369273302831843548212088140239369522320936433390248807100511097933516853767824621721056830072834853202089040597217855013015330316532124604662602369355324667072379449769450849580274352652158506394206935389844614485054781746023093485659997971820474611751858010171712314381390386582612364290138226972141496513755656859527594364772474579768907294705569507298926693256892603100788353164951674403987070532488076572635216034203844217467819403703574835973897367088243594877712378634126538764954515910718053998390672000493254741459748457218024712811125395008196144974505091482072180640339166838004858935863706404259417983610752057632648357225030943659353470086082174599985243211459779104209521660526786803293137582954180992298057828375445171991555145930372687984378967583208534486874711071480592583866159172703417319902644042881801659660893801211480304444798289175401342543669673389806467156331366915170662722970082664648011535635609469016989543672524935826362100546494176482182497831154260456230861093495893985399025477150593745024888193657721574447754575887715335507101647759759634573664808971023356371049421207023297571434465879405189648759263801000389081262412238456542922893882335836943519719320736529152690279437192677237939097488913001257112966106390741171185657222361202601140744965206847538998652027669717122389302827192461769758032636671452702700695896903809994286472093345728403703390377988346897352364246810535900227822547901548657949653474884403198192685226450713326359657034592058477070426352874856563373666533082861002987870480925028421376859291291479456820407210669070202457359779172441964411101980885400512898784321021013658879374215600785592114960242259984357117727617347517556439874071554938456684533089538048159486738479437677664541985665599688956970067283649704702146887147126625602313655071114044717841875708743964141029836320689652307998683151909559005407538487160440796813210519416059510137983633559728805570907395429592138865408755306138569761611459867462120343730075887478432020894926668600047893295126055827149149509877106895858403372022310779243730335582602951704434492813441386218190395857843509925761158434293044160870493158115937611583167698426622361932741612376057616965014984645280041922176058811762040763559185196230108928437140101804867511667366413698808130946755122058433372203887283827724294291007787538629309874580359366950436444945142105712506870394072858684818742749630395368180633840840815898517098692085201437456387900062812975998559330090904030565480716360005214107156052466214378087916456046605816687073830098857119567465346281353372160477026888408299222395689721490810147055681322439128978902357187293857195569370522410935042645368505675384027264416523184192101734793080654637411866319478982158492731406873063705707614686284295017633022549243277372177734484492990586581692798115666720745670427346035165945870079148552681199674259159598735650053190649164186260794645980546017931481361772867571538514644391900539501538898286871492843672485747555813824095438463899624810745071059645220451038053087994307859425240306111206207550750448107809179297568281106942264410615336096128878919211391617248092405734911231963831813613293125450349077425177667907403789933320835614602053409505087374102910871833806763477604889793619539083105666759250587324696253130508268289102923095149438542065897574798440485240998706705191891004622315586558488050331157277945050507505763325642236453357173023857836391418697936663995792817352076157643474611352317350967912497644699903573740859748758886859969399446284935160090945652474484013277120537810888294121427275797608716782673547255814218753844366583360054545392796325204872797512811722249661052789862571860788027392622519800199673327529161941796913347320858926234306183609941812260897893851151348595863759984632353907250028746730302876916166532865924412532756568391890322336921859272161839566149125724154534582656904498021692192477690697118113327212130644501552123006930496507945706857825411275606168419962041205741397957925222298291622728772390447627972834324257835571057908352871865857182564925078452390814104395361886086854412150851962622246795602960024525949562352788502239872840455072451456566530487756746861372180281612384784699518695158507924549073941813944722072186954601573030810477123494500034050294563266161210720943376123077561911169146001899483770035446714483236818540660957059752184746307313292193686247476078159300408830778402770420925890753075810289568606630569613865815351935795436750287317194030242249012464988187087884907035684487593041095171420700938092578900066594935996383635835332743107416580213647035854239005451759017516720661926768340305165502209530883023864676954489993623617564617540455529775554477507377902734325585136843094098661501993687036626094046944061294851743027906448374568552735742038672033431787242541376984029699977159563365252667226133453067348129725332836474578383468595806515498474549667360263476428664632102281973688988162140144134642200939678266837494472600474145180432217573027927492285662594859620474471064098198644306604183524865742508290088972866936496408214276023363797405558988836604000114152623868086513701701653549320567875398473439939440421837134517996780964124001145834159292385225211889335899100833814379276164529292920709578316664039239252823878979981279674494906260570792696302101821189311036919034227228820578013736017964018470061722546549995342908145092901834281448851916438122912444893961147965466395250888507814176471395780722629932364422439500609425734989807169084688924819615621062167825005452483679309111500823846335664068353132327573741360844270911808058542924115621835961541795842441748419411243324721726209517414144190135819649322585117590950782301720982730563819523557402967245057669288251703544441213674292118374085344442255629757090690241142854997451715698119026903301150612431678472328871072390485165110284548505470611742331538447394842084610199101993263179764668883574265050386560560013459799256667915280649309959671438564349301057656900637597229039605331480485548478056866251742758381358029504245402575122322519421353792026552327028707997410234780497388597182698713589354904553492357253222734257100922327470408856301139336016395432383754051274621959100451224751057443635130588264668819429623649520159737000344951270539107255993755078853940560034947065055333576393140754336978503315858405389089705699170982013285551737842657444361931425648413084139312641925807612702656001809473584204256062614272533765408680981835950654356884621602802668065471512144928827927988446118077875106297555850618270420356308269230887424822668846108504372823469140490746225735654426400365767554023496117188089915263087967881026375256284715989331952104486562047130166576197913265007863888092525654595416695664613045857923016809612310595737715989832296254381799425786411695265273258789821852182668965640737472199090823893619651728855507171307527385086052872868764700412153850844087423453116544848472816673825214201284835433813158363460981545129060248010132724791720784975150906649726090386305345096129817866562218333353115464173123605723487002436209142710071342687482592895953074379132856796916072959027162581923490544232381107323871606394993419799840351363945424344119525775185148030325336574820213300426186281451099573671260796412443557325834631029529065286002536801515030590785256374905100014207689114098854441406633256365421864008192420958857209129450920737853607161146093787584056345978694707488389595682320245912960898354212785241621414297954295562479844619842969995801238044521283184043779095775422318126833034130024586893618822871593178348215758174635892260745662821211090486512712562300147922036218795162690641415499018831630876618715516125419853013740364767114792170516712645517305830546606887853611289515879245475640888730547280977985123254786943453919125146029164754861905730738049876170014616260078085682568957859254906080497788602107919275951748921398772997412125676395802353823856456532188351208879225984150099600510589562196953771209771026142946605120296949879859378345437493571738022129902889624030202215252910854229320091009227141010833833570694243926363585751350238864856011865247343948450450003330794070335572210190937026809402913724061587990937140496319528300721905518605902296095769244144873102659066518453503781477379764556700991017629256643178605996012242253508041111896831269339474419023859399225881078683976037273384477806196328586699813290742337474841986509061219714717105819556508876492772996222227959361126376247208835601369534586296462869696759729818976072404221091433700491623752875040389462248944279846015664264631170918565834944462167814577562510978630962325322821620154534813746475141661084246479969449386547474320413865789378995718772846133733483614524459473531229956438251945193461692415559020489637680319520221910067887319805166839869811224035746316546103954578453011663745225600847019980764368103327580844721141319524797740969958299583940467632692746512314867420912834062141098800167135896915057132374338963336376693408552877459622646090691952272216486112763163961826332411256539671249157035515170739521909881967057460182151076152934708327022650515642518977049135368069348308898780909344927998615724529342774388586782791290446726657921484463458798795875660123732354287150086027264437468498750917515364279535166983024625040955203697226842408853565035417246642216028353110395156539488889624579021921630000171145442736591167147713800483693113724955415104480866987921419904916670938497785547913197327343325583506803449152230631736165176308160438271885587065355813337815083195234597920843450385587889388130354481217494706476821167602835423036051726607221934207027197703059099124188679845987695049892340866288129694234148577978234595465699067160621780407916369637679037737116355832968810133541590668887548140133876839287150319066829121118651989430985080405783043082522375173786020208914723686253084609363628799198164585702876078654690884030023546106180465868427572718670141030538595635611902783671735708276035303705247078289824838599582393281402685700781722957560870923068840083634298542370558672261003945301735362231075249251010597710352221707777148573511341654507058542202071627339593953287384048009615523910806710809758680811511211332633799406523196003848366317583575844673969496484610837470960183635353290304263594817903525146024124891387997394810456866643057992055871705956395198771751288467653879844117324259938121459928817976403554448700862425614136907664175316819742228685662492163283884460912780271108308592720559256197533179990312767468086577479284804230456447332940537973760035709340381813272614714393344566645553042939849369440565542247930742461255776822169314567912373234632517775216685780647887591435201053844846269580398670127616556276326303665839240332430143220437678518234113168108680350376063321507082024115104824240905349169058508892048524069720687461282678058310716644676209302369731799140139080374339177024586838539096079159729544627432824103140751869531517891715210860933112312272939559392424880212818650578034388294049169896618384224489336666537979226926540576047734785630582332422878559473395511368659422719096734699300062354816828348904049832216744700155568786653084727705609341657912011587818236890922564324297106804386694019256824027869153211581034184257230710797560451166264255262435344294737184193856933974497891428355463623781246679315408109459074290080552524934450607269518299384771138430474767648510382751190538046722461282321057540644470745012132931643819934242553770135508780974255662023266989914541130853928822717240357776930726258659077223145389473261448301574363456612669538053667757353233393968491518351949017590415663691019400217026541663121655042392647357409440489937420948445130665678649592954836345991967108914881006028937461851392521573160061769634289936360872535959623268907733677454022047887119499201201102917495493368747021921353098024982351467090569304980931434489856944006381467302742109266975939067588581396893320314713621912826291501886406874054051362858339836823264790394633955045516399477009972484519945793786803390684783502318563688285578932409491702591791702976363813047232954887367570434932587033724735934711549328878646199968312047864344067682050701716390641957293905146644383549265449548570268636615456841563015040252968679329232019596313239451161879961649451339013362522373255816776668104765055525101731083154606752779603993923983137502146228166920141401357235491307072232383428095448187327055147433281051551132763938704243862060058582495365060869557122890750418278180923997540373414303181129470858715609558789596269294628859084971460914181934891144673434951356309724868797440880149901707791434234070100277390578392884216789167269185465393316391828126189689402753643738465442208598602589879565498781135519567821024019217625168219876767651298859382228452126533485876099959945239280033873492643856408455527422424368855499888264106227567591139949503348794771974216853036721449148563466400213088213676591048714971692009800094062581985646649290050235686020735580871859432981625250899915650129921037338733423430043138077022942768140970183735285019360777869579018336741461403347612435794078486966898790534438537930326642407308453764377555207264130083757385448333214808319308622412666437519572040977421299426548697096511623143935969230112886855084267554807549237947807890832973528633180272873335483998046828156506741717882149819422933282549779692334412749279117808810896372018811637241868387985641553018118963811367143548935836706375576106498624327632330469806398963572715581779688103400049324916064799538753334098769592962286396505872910347232466805728716279388332020746123424814753941193483289763402899272660976807763757062278063998489772797824611370011658225331452827424098966104663613503498983011413275621159448413840103767081413130475821658624820531567604319957163236613919145213675750699794590222520470908265874448050602764238822062644234907309411604295787200582540362125374183949333918002080333260197439454388173101599274400392582017745283716306966326252162245108187717699076703966968235153553960968836507179640293428224145229994902555631315398138788901906041746453429119136489981112266454503750706853068023973985719141468917110232533658168842951146416637455200420828374860129061747061924909960279069351734706401669057967659337965599381946628345947586462157082733595820751315465106709239600811670335425478697278603892798064826203854073199068007890307164330561891539096380527356105307328653455738611950456527900212262319685906510252647857295644017162406168298853350110060204532945502982210853874052372022038194992565119495281970471514829403927786784952800374636158562625222311985391800410177687544840884275911661366236272547357902026945773820176538892846609034173328802820765507743976714885097196688738475858285202879169393323530645355925953494714353269000349892885032971981175954743205376861649802557562641213454044582962723741301441421319526351285978646475403253835424057437502250438062702383844683551741265251196266450742690387597449841287032612532954846792937439823997234272556391067375901377462142673785736416502700549904594383073972473315079103166231308958867142460428097225431852225868027709406123468035720325616502577466552210243439583301425152554052456054365109893396858867940086653723025857237437340978160963943329341004901881785600300492303459470752540845944712456104108360978148871650297274710305185889157774743029366090423625150358541827982267873398107559766090093629333133163174727229042874634770040877621058479982275859285059761922068649879412401691765019763153218457173537042997589234419200229486347733312627794597453137586344131096159233119257276239885362072385257029536320191620208245029405747209336544602019138295002037641103074077817105102220292526601175540095798583762139900623788794414871856249675004466862621790937649996379117380925036577584384795074003499831764270005657298308338196254459210994599063292791795073225290087901403497835571118716508505084795761123664826081131193197876884046170229847648577214670924101281503311796926076042599059213134282265842252502810473652588962238582445726508792525051130756116602762152411188988175402159376488416370677595188738917572222400053199212065114202985840625352599980906306858279687603290693325381339047738558422570668831641643141261614602585350698735206881908980515779672465770416321316921641398336535113572329290042493403361793721090553294704524598451894983582392608168327368464565193821044530952724464613584801885805765655043023352671004276719491798933321053589633737036373652368549821192561582946925302576415476000994711772607464128608924447814495488830900966692926664282900202962467227772509459109379306230964124761111263601776416127234742489610075663327991512467875384871078391422276478584128823197808520776467387647514688801761851422329363040643786915799937135876327208463836095792094751015889886841184479384620862596738941015080001804956127766250246999004675439414077491339544966682324526516998089382547619944747827979376345609038808209725075157348051375243384820334796869438237241809641485751582288353293315189890188931791184512885637292697079564344462124576080400880909523264226997485888367762738677256894380700587536529839863543463083884872484556394187343617205936490337608137246080378677621320306986033466631697439982667526848363713267866343259851711983286926892399190568422658166695416227451670848639432680923831829624256887747738216040445605564359896190877058667737839311548844239909457700268637974338250454744923753210167898272129060709579115356667779961232564370396079141016619934820888962049047970543127458819072918781322979465998078432895005114095097160493129400952397115647561502427211463987280926825830811716975814101285596922683249320091824713109276610435766955501137731442876710417086738918584743748236639909085828457092183775016970011311647286491707050676206112612010270675540889456690952545896027929710950285716210101137459713548627482355877148132846214536271936202616310083340110055321714200078917298238302082188064789233587987291572103965239589783880951651221681954378930652099977520903914385845521568378357762559622418946866923902537853063583054651213206090982955238762663277354002885728779386648410010792523448873772053276534880991696973407565383226777234893460149952206285670536199861941749440709142794004813662266694274331538490678057769048007406923627201466780114317059675977504408998678536785143610119461193110013651501011132773531861034114381492127753529593556753396810800318816742674830690521041731535432516409504548632011287211524714736593292498439546648433890104144021317234199392735891546640167204679933293226950679869903185566601852944007346765569288447576350259010036250501094676677785680082216152094609810972003628279648883181980284566017752176337258536932897918294255500751225391107987997939296925835283422003655288538781633065246440192747280228725799825551588683035108988426454617983553448889653158626035183908486057141827939428396577561273298375078647308027432501103320702683575494628560482337804607114641701921069170621129302546818453137934105505597086099431074256819110441350401649286848993530966013487501706546710840587067956649358806882041312098245469572026284420148680385155129171015359227639967022730757279939516744595385878952734179313822106012756060317475196128022829672361157529030355930067100032336978022721111444242189129063144681974018389713238842461442470179640499171653303849447047922199818398698776443246775850886973109329467195008638515141713673227395288334101541490024033122852269973189853627578660058929553523379768164333902204824394312311001597078405938945682277762014670589470690498948885201063875602937711666389155157520933419288234605161253005296217143590061454250589207871183612405473119106109358981276817103384949062423505227001153578350467267779681565573739491791897848299154092609732848967263187334823481050771019897523304943406355522172202357666382639203637393884083863767004453206209877421213251107595274999594652838858884402504744855627784047779160601825034682190364612951701731681348048026828150568712525395342125242894336275868582035281883240336878634911720429593345935829086112638562055531522298268515230243892370071854285216469413206875236783327752514303402767856135039004064541567954815251090832992770459943353493982449310254924453083733497182114982907911061429390507314889276966358564379720412432210539920124090126615894222603547424571706110144499733134188123887798328528255996746851772125470932902254299939437338268833956524168718000150916085550881059574929244875222803416424284762145379188130005378235394847788720886139528087963678290943965453065049516340654350891448047401058466202784169911398535378439110655804320958313356165394939216339420889791137251069338893623895252761051225720240492601819439675267656371614705570831581239538099576663872257336011011887980811992356314045886173282491351047438171279112077002330447966889675059761828907409932279710354795789652330466061606910052828161903000893729591238457571010071277807044520912434667342170117310803568740146256661391457552359838148162632135390391920841959597298825733767311049223950860443240897908458254445595331169175400584772126879066449504146526187249598434454162610078061062601135562541590100116882657020258627198486319523277965827648888745274504290583370899270199401578602712035297575087562718898340367890793155442113944639090123446895597514786476306145790669606628203811619704581654893362887174338925760268298323498541405850207596434788752737796744126732587479494773754569633259004447190859944743130014227007483402733545324603945091210484022619528476352442367264409974750823934273746741886748212407403766862893555572718501793258382494608555668802007173429497563198645510680893875653179414528443983884171159374463054431016831741423715333830167470472935609751643299839779148149938784354280015404706114508179586227857216205767861346066432301153344248582620239007148833501632989719086543690348927398016743394044738716503116343146455101896413566984218316514039163526070693119112195789928011132380861428367853233349432514995475518716107424499845352137498456588753962213172591123439223277256377501430637507217636907173719692470987454811982607874843113423763618695435979826572559387381601584857826449098473290043741492875075910248030589693737856134344731676489707294985771293968891114322570449339978475011901325143263701752220387337231357880352742607434089791513680191101269060793567397024453278112088430614630375334911665141806242113880279639120787022435598999160698815724822649315457246426000827943316485722132296088646721599967618864278889225947599062687555276853315789617003066122919158908940232442324717170023728604123963545749072169041193541347203141206520292019281280396982641656604179373861869117279557101459501301963156780930689297425571747691094018648162491005667551921361683314823247611778834920449084510273872504460996707632544551622877518020376922677758510047928217731702408995110631548048763569228096710484085674218457295217722401766905158656949821236208144153553820928192526038144151838849113861976818739196503408096052114812694059708670488893900651915535864301028512712891970481053247776713383814471966319315556168712843653892996346341873938102353771835995022567875327110329090142248741821813904517992590949751429642580389483670735372527070359867685902709655759697610120345852199188637758359725635620581540655906279531850866461854310473662825017481062440996886089706098427902782378564889848110511232451129857561929892730185327846306434955399188406664684334909404666555872189673446069004401232222167913170193050660028341653267193352347215151447761970469365116198997067580398034117795781874947394167082551964448663149516975121233752632662618001174945456964225645234446167250677442535051191022001555437554642817562429162724304258243444104642548117256559911941418335084740829850091039518775808666123730397183463419093562628534956493982227420590536952019031463464757602433739721828664144805681918455239323291007052607861696989903152400004728391051231152543586754085321946871443773381286458507198902216850028496136082055772772246695403115033788942960411340296994776289597484368450375733587874824374646669668563413545598846507312645154752917295183023040602003542643010675374398098221330626525232765217041590504277289091637699748052150915387154957463709203121839189985806264676396482064105727105073047216035661967991380500116304530841088383522195469475886150410703495557919917415238443446280632591506889543016350342583682573416737578735327502184069254932646114748713528320780166953343519957902492857957486344276148959082817286901978019478813554942286964727639117612962372506936122042282251367583163014213206888201551229327670274319698088980319192436155420579493366721343655732267819231255658734760632995117121007095808471887426086061913606070493629929042940574805112135369494212937535921266663742590856913999256144982354327989777317055389457173519882190409451498224227462328584972225821883797461926254645177870300231420410709823601266752314798188935349805790385332895608950895034700888031702504001834321681087645046136626034566638592738120244083832739858042117640923423843200415187015471247694331357346283897657374939746661714662368121805920965590978791916403981012748359789309118393338998017506697666166102816303536451000116825610993934868791743554517454465661652913807817983311099918566108524030581310375681261483675839843337648438008399738278483748158314225600917003201855197184104297965949541658088757158474361041517999138525322579290166450673531499641185866504365640687742935528130279318345023882898370193786654057193964000145437916944072690018812093475014495341030847768507037029614898530940049878174208010273470051469285151810387508490044438937742230988756719630047608897689219202431118272645717996352488139902874967118034594573748480444778913473315685869835666412101167287373061239221153691940786926231965275732789686157369795347024361101083553592343629524475483699733438652137845625473925886207645020945233539987298464795182362154926301378226761491487279578571036351045865333877322374678121551216804111969100595016743942214763861600583516134532821000261615157295429453551628777938516358417600149133276663642896202549137589038687278306858061914653294846285196033924359945660865465383048961800790696522355569408613312333665012964803722929987819189184201252317827647751726524230286204142801192094761153448202281453372789703147136860619420466438810860530690771488935438175048723192401863704651758934658781283948481046419514696461175460483835449725407287049423097407850771832349363878781373059726830769543402245718794158042887649740344278022009038368388519118389101942842617143126945078531935678691182404596959892643926075763171607525739666344589157181182740504867079150024804158964736047863609094944272484283080879097467222706854755720548215643704995994438050489587611995141167590308439769366007788297884638808981857261600766655116937458125658805390020271134611623264525580386081074165669085649945229264052164323528437520190625858463405441773371700607106475711152031182909190640768373806853895817105038715538046900577336015363519350949192750379426290522052124125768014967132451203649040139566224345204922026539290814044979145274468382088737581901261233180161087194820001613845798752417516521836943107612995451402653547308053301343959409908256847349340174868352706324156526286014660980065901158126931588479217957679207218896908396509930794208797625311157360863866737826617043287016341027377939899115283418125360429907083841778849091965708823994981607749899787729031757550135390272362807906244931356265649824730779575764426302549958104767689066198764177375545636571362773999715256033107265976566238735903789264154003491001040221708299323216133671569345792181568242331696932222726993025123916814101067994760743726365938605472536400778449421622268271370744925404152307344821417003255693273426505498655543937469116926545963674952288196031332967026774740280390080645634446149711853374819398661652672430624213204911945192144377599707454106874538923882341760200647790687493257595771387343442770481006078476932986786986200064383295235219056391579731959319218539730653039681116247530987615214014893898004312415513451729678941661539494233974486258674710699688605305439291081958749889259429185332708935866149885853075942223232529530466985499428090083901747504977181824036964453482487324734184087850438131562080651632107094861823470238194111865033984162126657739823652171483328294596670902459416094958755204237197839459887051937567532058397363259271566971960450688343340631160168776542276961879434626850638243541358837273695351812882567825232885875864960398136308952413180210846636569466679660761077692383087841300275236380462187279506305909218365280968443940606795758086867084227956277994206628528621300154960404821924199146486754043756706324769680537963419731807323400466704938671027133788549620638494397183565565841305474817542339602193444805797995760123948041443819157883114728424456796394565262313626402949398520267588140801955992984872216874126576367150072287966399612894549493455522807890136273231168567521013622891694225521711310003971103519087950506957016651855619667229987995816938475897113532195038366730610313398780080319398124059967311355912652085724666377918981126700425426440723313692278386678621795522615423067561586767557090707052597517641332499104937453200879790899790761840593052305338808355543430848558758868096509072823877959099371654803529841624887496761210678615840318367453835499112748092668352701120614386793947618595256044863913958973490957203827877018557278984418867295682820897051423931984995157708912791183055030101678551087770643635738379310601987135062662826502000326428825988717961606201338119665463594134793808016630150503459570463481323195612702614130890242244645505119964275951277943690248972219370793833437061277253146188947748870581766096809780826808227188105846830744275437313241594241783099844449750612378533385527200620523629669851005349495925173664936238309957049246165679206731742402575995590303073380527472282563366271190992248334344662582788737466016887898188856259901327300292092343719957686961824908558842275862259672033223121244757776031697577134678699386779945249231302329046478110786474073651656482645213400469438035783733742305541179598512562223864106636567977359897466959832241220654424995575968251840359261417545569242213621638069389177695256951874852182700033438582415483544436474020479736782998039420110361109367490867221157905201229825394474535850202972434454438764738635185170838810202078698074249938536268503037876612355718343426397242606504653896766153954807076090558315606835438659537419262621471904481341744271404149197670123336554165645190728806302791529805014811103934148618788408095602784030469422027181571660319590463902743308065120173039583115023205063013103932196000564476822282628489891442691545568302293927406681534628145703219455094576039801276868867399226637224436262793465837569538811152006477222130091502381851385975341580293732572451289225806206866071242826936056310259481960994436324495712483023906540959500840458799069725372390299485727266709375415449926447811940412898234222410512779202304766064828120843402013156926358688699129122085686706482900898369096975758328169165170305165903217698811991824406777521719340488763722959678668016929873780848147783785532019859067883362946095272731760656256206161927525359096030844989674639308987249491983227659576601421787232357023437890011883571943863523164299783658416296991900226117687656163545708042163087643055759796336357456336632832134211390403523834302355812824645919560243225568048121192584350955530252113183242611170978479725399133753186083718214622533610642123682362913982655577240542480177140555769322995461346941924143935010560141139454119999217670711981188706334940753699039405931298113651521709335829753029957881380563156527190039120306706281517382001715126311094132692946112825526800215681216346088228666915017894604208413460233439734555213666940064655744580951537134681358636829135134882268674688423385785130002534059257689708431824988716679888693153885406321890844493264920824953479943769165008237412631187938395167944417760765222613205907827709261414743692045500278462653910469361040955118065780333918094175158261083001215264874223363210183493349557638067224557299065378394398486182599360795796095777352617197498309908377026018002720394111122625990348579424417394460986405273381137357323055074930877884239752205353712910279717601824308236014641893514981642607422587773576343001963092388627363892334286487024819254100898700532818333970537370255914215877734237716246446220397971500925580750187237773571641341860853827403711792107601165143755734837058614071323112759148058651064602162729791479883579690988254804241167726423352024469643660469274140486591855782345087631609269505688133222378997260634109773552371497850260896921025070242063453270373019668856210698777324662495070176304940576125928864561812904064144664010379683564612099220313114759325287637282635718646879820552588921400045390725183793665561140208041590721165503388961588265174739991665031014532204710936562191384233754176520089734488493521299488633332627592914942408220514098374671100099317098554605274065962058572405295597453792129722407012267643493468417269185488522059534104150441006242796777085032408476451549913418087701298185738545433723170891371055979271222129930810411769553662964257454981761970211504295838512318687075023991441556696377813493740808104969558227956173553962793523224031971566312038776026215409166757192385914399496529603077017703363879310200800456042651811799257850201236127105310639086166654973894889059724323546163542316350074112100968684466668700286470472492331320769506606886431940335296359992859307656769974094496202053282365565267130210000780002598956286040597697373354480550023188780544125530595576247207804304523859650824120246402560216600645243238501723699135641344171507050099796219464343323969557418257914280076103962563613463550532383731050681596037765694113681057359782855750593050901101926734810713271987420722282926123281898098825749297481876985814011067114437300852261256995453253302875619813256545956273441268607550078437332301122720740859989303527463727489796586124801787440444217251581251568252253875436444848198125746494363680958479593407107263457111855658513042154946335637067492360045386305472621255890387157631855525932237025036610087251943060182886691375920626971948548673527568915342187077067492964985914028153546503601998149458044577230012579970904912455622772804519095394225064369188143173686888445414077842036824875109096576885312209909950165593129008106271052373674011313090964129548854257571881726145999158744515376400781944843702821616763916369149613835443164137330395691565775924556792917905624310525827369002298589575633114397319043527035527048389959896610857504050989135506759640144072272557143764373734239524492270427503228959982870857170116931988805107413302981698155254932432574142073343821346839750463900729509876496051217806110034892113807930983267911343209769355853961083746199825553413805110271370701865317376142650894611791872551852924394419691403769821821058688935687846994514964430844454145121623712418992056999516087494445734554290140917593326405999839449522646781779924042181057190190445493055468044222608546266333168975636720902853167860288954673491060182259960702911847626913472325499873628980951634732411670306141599972802257476780676594952277516798901944766000945897058713617512578120520169676413314845813607737026150753935914199882968757660624056870434333174022111398062350570146514139555762332332810444708463158033926716697588725418635313928352970527560346582671177803175010042479827359088741747728689834270322955754525538920864931779527222266538246348949255275016157165819424126448962702204748772092841586618970153805719051948310843160753399064886453994688278287389357497275627739535066932058352898428784341625125133185578617824333699535372358996463476651651596135215340581944992506065948680065671425435862181001108031137299106796199467707595396132334739586323112934587358819229909222992186135877395926509226340496410642781290899512746286353546260767326721371100181264476632186288106898328021116043733632554237716940325263767884694808137347736325086919227669860768301233688031298362068073709905894287461689437647379001325990694943890131116370536088124488532319577883430705573397090449769425353019043315045385085656662137849656065147256467911095112830298633020765319686680339944013785285915302893033316305234942480881851934486461666730374799075037074352315710944678383186658613261156960990297344910874390122215049193914892927668640659721058461678026230480787614790982653481492696508597151505140219408468947801920456743735709449640317504714572644506189627596724172936728044896555401859649655208791976827945382661171069561378123737630665566825268865087285281349895870141773774909218423634239781308937586989091923311931631226889417893440631477351966687687019435811788313623564879789728726710357618722385808365629708044453594528117405765196905396068125639693044999794646803619153719244459355419016171387204052567845617464508043199738056188065944197372897960092287676913264688919602333927387775181480978912178531531693959327708649425535730600837523060884966498604438962290998333288517184864884653292590376576066118499796413672148350679248541555861183414287147624899332889891481585949807275274342087642555546340135535487269195274415154660088893301739224584741314664046465788625600908564164321577819212410133088858774593160256760505172512014022536345537114794042320051191201207436246587435875434268669624000705993865597612125640253217173109606026793885320445089112395535815186341509155248035769112951809975547639700257357832378053523683540653362618625370000536257132836414204521864004635202978395428810049158489535952141507516136721579491583325488308042306934919478411710198779471279963981520827536992386136831320708784457588198057488657229896063302539691710678749939573717168718877929657172467229258321646857408520144420797905969651639144134578298528466374947707729811244950142300082760103971564806496145953310695413718865372243809698455418575062631376828652857161340288395832868805858680786901584813846803245048228833425858768469873851922835315436152805901178720570941734380700148781309089223589162145232734369391962991984303226458065766133699601345816799053345276700733607115857399681812924802861592572224142406559834822683818225794917814834866427114811908127235680545716625789192857524023513113787022701767631195572122659769720523406265191901270260060419182461009298074646042927740022137140650604378907531244177117238402725691097999408380412493061340292597076882901206526501984274135608239172735511718072699675634533383307124792674478802910648522705486240089892417954110608055980616089076957155627348413547405873792004464212181198638273641923184930877169940417651731623249391195381739433335453640030117350628932630821367998634673400957444961721002728939695117081991490762967782614799474383914789790765922360823425309233812039059829538696459399692176371581201795515253969477276840599592312220143252352071869368630650064940538392609428310906919728248786904214684227659428099329152998272571996374780914278097970039259680394346256593877825106661240119328491455051215203980889804401669356699084747152590215950968572322670652150327197696673461164095200447857918595493021177063945662546493233412070889423984216628164040727341883993298163404167656421760122152565721739902661819256376479377408430084418928291812394612918476252758347559826394722126607090830942807506201094892543773911131654147364936392289246768737795561733767688853252031139365994369780023780815881230703855980709388647955337347279695762173985520223616090744938589521958579271616001328715728262080073810920833315002186263059719266072792603375037389314586380102598448202272634525261923743028693660632431104952447596711030092057735234692620572650394347542210007068278739660591389911515970207951805354612594328463427751660859888566708989235469200530831554192748384638481661650212884548167129232209308161376126140283583414360060893623192756044612861869851850022897829565156293236519223970163498026877322566500556687942089788097792060887625699503253921367454478240541383205637873430315755511565734600516724898922903710990768107737276191619289258203169495776787169759515689603564648615870057226702433849416627949475655482632649187528067200178365843846808816169741288064219786048276367546880996337349072538830083049183559733244964526374667415625577863173778199912576534862791984454352585872956773174230075192253781749871270151886173572116370281604744453192999737373972500451715414323596139631750985916751279836005382136541551324242436727969095852485959152412268132839268762849835856139770457463079454495304749733348715552914796230104057288947873852958346531798090018859824035907513355908157201877825500878613694205229263428772620021124751419533220438510182373861928283336012512071943572246996541575018837267965123668955544040086488291493193552642741416212418410901071815234638611160079746699253668984565732624002297444583548631795990931362917085806232761039091182050741921721348160721447196221259767621392481992226402381499437282110933370775056348432394986257845905230301325734276615693205469961469986941168605572037743311205377572837359154423634655204791048818783825563193772833377107735840229972592281655212309641061380136868336462596858832787884326857095760239352323729831215423087013146362789369908522690002287520909158389488023978341232026806991004482065679533431306404682640571151744930921527982813801430904131391459202721008872424674443254919395852112481387563358224591051582583855941374650542613388484437198722183893260445628160054426749398534345394966981117660153271230717587967454543287309412737428158636819356195294395636373435250605256831161558575860329309037968027980679821985116678405561584716358368837283550039511893137114555101194791733957448161713792315631549459900681465093338152806720913080238972683552229875976651697672239720375729257166896597798548368147732170240672346385477877232472008552354928786873233423611706729325439275239733030568525427566136504928489738541207507204157921866777254397067245500061993536772077397959920089825692001666423249496636660264376043589597865477220140939157362216011933198619724538423034278620531195287636523335060101420511856747725482793291156391343789867232325513324619288555873314666670371551557220513076319557041662984923151804022149236351686195595113210207330294819066457969358219120245087062112928194277703491514597445714555708480847806663337505774281651359388801246836550367668888102896492362687964177977281194984166137818498447132291134159299954206032489716491429501810286179607115839395624215351685889464464164802782709842100291083394067543013657433391062830795333043762576113552783583756363490086678734039441225725585458441056759886390463387476622680365381474351340337178186942413859194012417989994457310738925664321576341579393469523670737410067720243516766851649985191341714566816199471166371207302905221212010480023898873137260415941405859280637380895251446201629560220512824410511174986561356942564363713025101100740075659627562097236437124580569979367818753614400185365396947804712210335060121744118596518005934745844725917712298385683933967809812063390627213665937337320627664104894401773054501862144969243188641207973447615891387117074826533505018200098680819974759387314164781608168491815411516469440004015219471821402119319373972704866588090082265962476915733958992628744336426520213340663165097911713129380073911997698663903395174316138832470953301006560571457386691562587841768191623642734155085619960917946384752304692590556113903698338902818788533635327448851964419754739335042543183207309701837152138358740957403077612264472554426741046699679444609504710141361297286404009131513435533586636080973116730980214419701469333406247705632908545004612737646360980205403117347105083298308268528528143384408462611614713728937329711234364166039502945824269649748085744965533656278013963623269876750744447971858904368404182998456373436550145133570549732275167291967201980930560547136976643529212863455441251218172227325676212252922503254837808366097757486361516140709834473026991031030270702533331346153115099857007296579705333994644100109359247150452200950636263860057255944480247926071554982350501807192999241869325261028032630177376864270828556815758143414320566090134238512050180131730887447984562671880650564404359362570047549163144774614384610180744515661581484324681131435279484271802100944974447902871469686236333866377572781712877647347468653468564270010553469376105383899980366218090279550618610834831593421187149852007120850297139087009153467044182502919710421862888772628224127323750080138243687405168063411778959684477192078538035421387256647205515750666706960253378624297232742394832152648297526049715287525387979792972500713523741011113118679861580267916271947973988148006081045962841348946408815620243946973888444062242402245022865884822107342770330943580513317187248242541777269390485313453001508755587916663288593019401380140430575022612587032792232193184617813165472582582747268664339824418408168430268163047008655628853917099653745288187692954214075451235385026632208537061474901091435244569777935446966471834430402298632789145516362052707063549567129221943855400104301551009576583254837108202217674260535194044919474071396921545045048743722866427340168567084026816520568877709619890755567076975354964331695348425630025424751011627240536824025342087832800960327845090420307142617648770226718685429981157823312641318118405497427682480218968002544520217717376491602457589688377685368098026264329882505541396528454444267205052972313987510412288033918978021060248638247959793703394769926669576953928339116347139775419296662563132359921710406636861445160148244916051040113264120722080681249455288190017224592215598093177322493829708371054349018681527611289322290642556291797665774341803031078441659089991582675956922375968788178019605777727642572646986400135753798802959227776799900532031482504597384941075602060043556969581565560561265669503711087440633750077485888057102237911433962064457330538129140885735021502914275187175172846270195708253357015147563579064825634038928892865884948419336652093570980581274198419804602637765323030497640082024757742895241874132338128045995013280648983511284514830706411807674791303813421984807146033723780005242284891828660530151197232687204671343957267531144306631102583264978087936541210878059852668512026548060966609582657637710712690057025316239681889362796477213816329092934233974918950597367394084586448963833079612298225191309382945874658390191199378533679360772280506575445103537852516396877170141886987439053302618007953146626643760976943622422491161339937736721331453910794038255396203980342766462142688671707510470157901757475079571086289319499514522541068987361757943053996039804264665971327638415603523301914685745032902330806994433178656313336839628164278567813263592843132426897731534034659385105211500086677399960776010082808723863943033366723137975245448285478002696399920351758177444493439195446515194719499374520417471768810529077407459719509304790185814277419032135616232392356492727915533879812429193386390519252645340882284887554554275034270625330689791292556766876364101249092467554844272596771319130034440746577983603619192101532603883208284132596391624063371902140059290624708591355276208320772097884221669169448899614273384014197614663138599706303467609595016914129619917935261390230026880033410712495457149971024320364943495202863485559068710435705518365836421079950798201762468328985713909380649150516965441954126437369014923562648123980130906652568651843871395034606258250333898118980947060608640219946060007979558826228199387267125399810882442499470857255577601905463340797032740482902278339146224181715467757236724804010439814249428886506703379092965550353966931393324315283720601388918197104843947379830769026087570072481588802759577505832444835961946107888843364505839344157945306903368867591589884076674925430981817942155885732407531384920310886307653501698167483533605874693604605573508126387567292193031872045087544307118905691904426024715786315555286412356931931144804372547499165924955176305622864739844026893245626281979337444747059294717982960097085044757537463276532108074797409511341985682341551707077637650622143091916895346946814856329371577400830624901744992128704229809764672765685060275406052627766878971808988851999868262158743645318158706657105284947498308228347528468405864897560824905699555913677415133020068422769472422615150359368878904295904666271629363674588905019327350049675499772326725784085624691981427403860123220333639674410628950986145690991311940357320924249622980381810338094651161321985056970156370108888507855871275116846901614359165950029421966017798790893437894096368121738578673119664447057075853165780802987712431948658648601474455022545847810587604409304714849928974747111005366222458149316513776031218915727436332871942279448873258491889490662546713358560169879235797392213559655331819319541298849317210849920433459061654463261209761226309822458276286734528950761059309164987875784508677079299666173324980188777333280683343205320112415266255939600144159411983190380596391683297354762207016922088800281726345838830364289639464427877142938253707574384561595609831270835037456404535954646681127578968179278435785939660398815544794246131694094591584132823243711515052732047276178094810773888296079232433393583315994668384132407575899282073289051873683404990393540199146483169459178032352959221432588753995721820975884060535845515708132531245000546375838357787442765180761806369753943568416055727211439059419479372914761302759305095121815392440341146199167251254354998864672489628583475485908429979425806844540167360954841871165755250047085319242886354289295493912778796187411573090633758156641261783806312077724080220246717112950014609809595790588259988228310505396068689918852525534296836513634211869278588669955253152491631619423737522790748226313858109144338753174641116167675792709943380368102273520093730202642284294557711352241077700308961943185992040219583812698357560494102103739239429536464807109549086004388970920685972061903510225790014182738169299725534447729092075910102602069662095661984284542765698835681771955611932983079206322596243932005908519583184585867389004942478799221410474074401534630561295429625714907480615185622847062939736510856268036135562789498207585376745989632604143957724924117178783853530198335469253066029358873693602507276033615052836674748746572036007397647033137595572368763902246298436727097068169931700289893252935135496533693354890946455478871822611956753550462872071442515622715475217077557857235562042762651583277485172002835286483439826252839397080563827645722719044922975322471977630736249953175154603107957275207194938393663017439720570446487091282480458925992536422361783033796300433916810480927023350982146064281587917375461305231594763348400081464519355026002687349266559488057868522350498105344246580641826984640314692381201330802285260184297012877991614185041602017904686806981693162284067881672343675273971187387178599900622735275589906542995428727518298929104630855458361158694016642972294521134812892172776827131282521680500236213385522982137355111068318936234011459639061254976703252997200889001648189701188963047022683494792056630009949022687590198048424417527138718703121883848017071671179745964594907351397729981139966591100907648403104040530845651866898894047298731108289856760567527348766783320219697637672668982300678049780930420601646117688595809735895743161379904602700820002052566392276104008147649313227775191750462595927437317609691353628047976934292556297606565434751798066556349990472930849038522207686387939574291247482820112855664010499315782358647305857539637504015257338772086429758043161912026410893684426661298430070513117691025749862323299081481199620839814799972283078413606042577163832086975066081445089884989071770884906760781725561847950755602963197714345126770990249336003986848482383907181317296023732163271239415175152532565691631605202609878947511478181701024947809522516587080442240926648585783825944097904331421619817541756726777882227742877833507421553938417472579644147246475993370755410443523431552530941159924365075819661716587041169121261618896488668550154085903299506981191536425496706383331340237173977451131077157345530871034907493111949140723285183202114777779790950035094489290515179372444103759183253904921126927329158914193801735333956207889422718276111336399464069734338691049310913345819542014911737043916222033203210640410150250943926950692742236111801293266882415584057391992917626635509199730292351750561305506249276145513399583594493652641423119339612426274995157691159121665387391023755174621078583628380056530892790179375223219490539754546639336526557749675755171849944127993721616444503107408614766109648052197748283335019908080414417704190359616783219566400836860096555686002486546210872117916183342623994032724705160422484319909386487533796436131594683024938029007019752952071099485823763117210582481365307240519308550550832439538601804037871308720155344556450451670334025437824730107402668909925295866588649885768306670890229703137852766639647387598683364980582967428145067381051626546537079411631760901817511801364088008732155159299105062383466209183088375249622616649512179229464814228462365749309947799273150877954794340071364337490553186477934302411196408680899342081411505626420642835651114611894888065429128811598758394859504962019177165687505838876844022955858345868092512640943780376604533159134903950197690180265511731369607119441729170751349049604751212446057255535483391349964981883655146193559409163999950412002215357944900523419836217902405563387613515967931653400066280310634638109332463504612868646828190560873282413851119151446223562175820667411611479613159043568914693243892407683332189893129644082706297595749029398679780495327772147101067941459770418755049281531299055961138721637700960897056910557167604444832674509320699910176593131886240340024570249568956372261807866886202290122576152644120103934448674719518426758866740368900366811306522137578602109281196531020397044011976428876868874623873557255695599131134671430198547434478051309213767272192457854944547685850337472788654382821187907308780674589871471666469704103339258832697752882024002609602254408739622339690995491231851159263889381046390801567263391643662939155405955362479502164262156325330184104590849509873049060221067283960723405529922937976548932305351115175398514470888647361873895923804735167737133648744903014768077114849136839481070828011168322254296702891963877993446430567992092178534345586422831771260684890681811737690836935444929579698880996296423661750754777194888301567764042876842963011688060384542915851482821013312269860369251209839071556073582977575182438423055263366350957467329967587589261780205912366399965512377362866255004380557407570133998228615142750639037028778880075216961264399259438218988520075919975499198837007473866787746679549402358588559936576668698357593628974443610748483989321046864347850486692138065902808303510084267628067809157877698308482818901073660174755991731764761585911433976501517266979279637060600464561281209641362769369374808324065495938905611237681009433767790372999695605478566193400245811350019262427278742116747689215147961267221060953910425632369027512604176675112502525807867131096470900693424030981171904448807526721240813443441380322253108661624486482076116243921100055885886517102209777169301685579606481069766604702097751810695115864332348424737172229407741719999277956140467912596068002510534613307502929346566385593746575641285067977522084391985603613021055785112840722551846000438135270533592289365926923260920252223486767201964854306154080829536831159508334148887508964680106986841135769042775753323104266603528771570619658822085680495867759529425794907139679166300180516905839335640280023483590038575773931923308930669019128032572089913291503934271600346904589446436588296807464099102841765966274529985442930853283451246042439894767219829134240090977954022905011054790283480227923046393731008430328664677346855352104069570479743383392062368601881108588241895116896729223279461323973231427059533321341691322491059497995286795607927965902869842219993799210371743697413890165487091626170860718405139957921899370220186576758173398933414969613609820671970207128113447093538462884662693008477730824261306040160023510680729702141668806321073825901618482574252639942412155950388432378716965349062660023915473785462157303779703292109113045268619083682896012759416613249116668633260579417362513510242688841059149861962002220699006951480951524823872530724165926269134304391733918773192176626901115277731170200308387734910868541939426159352747181658457458762803108833470988862428016750472987660473543679613701448551853984397826092584523331402730761626846720401772218938481196514241136741835203905911118008379008642074228522421638795554812790062698867498341607235118843981764100231620139397256682821579468696178739686905160504807405217789676453201477748790558211222595199291991902372365976141288431370911167727010369289884499092944910037974749844849908307574449194602778933956182553927855485728410696347730527815781375494124761500422902146866274218145951000662746022785551360442449062475128692325144651382599563725480549742144824818796387036448731683884227724460585107829104702850791052118225945752798537750130652962656831228078403198383372074723001312586841334808219128727114028314584143999402909380931662985837745027567332140810021880525319783985289731311407058938899007934984364719723100332461198091322183626145639171173219384440767900091784046199057588263868215837322613045184589564934805970692047424067812871519476523531046423260351991845606276510155470348570116126916924451379868947907406324596276209938454759602558145044771885360609035007792983840517405649291004361976875606513709776646030977219183826701554405835883313233126364959902961427146437692592146971688087597629925291600503781151403463135834759810150780440982483186230971057806360712699860642509164521455179681173008574201103502882165490835650692525942547911158958210051687627577462786060854485769336499597036782692759502864323159756334467533484588399194637763585578959875820888262589837288369041861409283712806392985986419870506199102681262902000590599192057209226296541803968713959286108797395605253719893428573615422362350234268410839239893201174791229582911340730370064824853532122169990188730113786128880390686504525372710377371856622053687614361639153759830667071550310484676227020455990109878687670851848010652754122051335174648099925657288216820844925092959485249119721245820179244191081073212822412350489492888981672966919044802028735088684075424255404127839460317694322921241984743996851152842293427918921078702436238158076161951130284074526091391082119387628100254783492208028221863823111004978112268206080483338486520464709588619195852683696271191599175328020353983583884411166031094950123574706250556609810954503256764794394492208357561511976876399992783019248124858183802914370719803882818291382509550765526493406418295859025783906611612169157796167888557124477078999611670337339393690733098994808967725745798981619689092457876821460717808864489261332661741153319350721067203660359215361129831254704609738056494580108991417820678268740369582352247037702483716290743491632452206737140032910199619565941054078440596011148784938118958078363403504086945485673014509394416643141258202955280536982940231968076636679721359631542058415218426065272594227659333684126216912930726020287284712919934109760485646572320794073574211825858562468899251248419326104898976457163202349976004551277541989590250389063700454383154147454895217472403926944933760523660104810531372594012041377543982032264357377626522303976498407617261048191630222495633920205240324255640762960170448335626775576022251763968564592711949567517037360959934571418819975463624762668004571148366037066372651783943859468509472579336280614162514831119928814206085631651394451867044873512633874837080322095805029286039125753627608928308896385359466691500370327074351966484779100607038044226890447980403030400840907881425323936575715351683844378631974925911669930230863456432866040615839753468505727345181182504220347982778600459433421676681054632133475781546158043203939765929580450705289114929476953142809873513869719242089767605904297077223591377986323268413405348655542557126784998330580270585179288895285234314125010870198873583458487832548429778124752393828789634408015579316442327588405789279346793606186060160654248481128339217497980895092048440398783644215851293022678663158854838968732950156222762087957689530473290787191222186960292334664486160939621564619873179162001316254198373851276339347908060940858287031443842819360027056465397483406716696555292170830063713322179826461815547879351918716844392138794317668200470640907799560369563090175515475576819906139125200899971260546111079838934824736569041213558569214991907234997607344916406360567728896268128990552362565560458377650966210075798985971921382506707394132816688780325591851742620990399616109767556816626758988101609808201134227149837953079778828627401595198916533400577690752635817220266780979364065203700622464220827854862247212972416215090477600276695041328272710533395706908382852334362615472318695833461767757029631152684744655856721077239109579728552732002199821570938974108376890995990777972941121481118229808253986207885028455040848719733407954593341524757926678083042837216338438433365701190649821244866200965738834698395367901958142318701454097296250863004332058175671748876633936901672523717928445808026556438400434722779705466402897288731204642065686280810480574216550236236614189170053534422526096936796026801720192622682485206470911334029126908937699043512135769775440578764505574744196720840027786316393554297895654292208422250778535788015975898292026737810201635165487289733455089328465794709529009196722065616619736653090220620445449016308682961428796845704338746957085482579118757424473101860707903837606372166975233594288035257921741052243069197999291262990248127686657791248215605190359370381388301635485660879306517652420504509255075583441654036165755143915797124392049119274789141479327866122741450804931536562577171915468614910238079609645215616646524855544718839690312639982281725472889453021171921186203700166934074266556651322899892848999299707631701890622150747337031734057996089848380883325412327961659529334954864672580619254954510980367252211864095307662611368090562132263147871319600259617980852323759424273978064219873859933203170583004397231976928181258826295929959803284063377622437558611357485586214131243114795271214509685519330842504588520589646392268019565234747793385597463277336774083484380968532358300169721183584208539277941496723044444281618028983413264268571936920402067465714326702146046104918089869084931023311034849606125647784543453557744369180439868427451590112026222587510933686545014432315508260818666043556550749732675192812678205793486399093221789735923290371262279727269557837023696684284624155282047251729169333884282826170185544203046830334297471190523121476692598674392460603511059145410714817426978219584516468216386842887476023932057574543721360190158157458228872621926284032440140259458432626187044343652640080807346129725812793791807357339428465736157971909463849708579300263978372815398615403330226280044002356038124604365753307682910127950981927549104640695354714507665230203102709581379560227084773158744143880314483197633283159688445567668262734339971122201858535383119558827808548123668555896746475850091143747632238304107150343810831197771763310806684293018986942720793629636066889762325169910066527479567821867510182320665898689396691380021139873114598556746191687768970598884859561829131911721159364937734947452766072391343766612143033100643254351030196752643876593487395742340025609142698305612393773081184861654905218802407203408444584475631793844427273294236546680375358627799885816180589810770145313909285184844088150724555861403835365965338565208502650740610582904101493008739401179306533637315586236707601026070442554042004594683026718896415230131066571787121715592885006104338988191896646200213375371229668402057668406189387914756737908526398969214144125732825141616220370318126248210288846373216757720150208745614092060589463750009473416699791879712089519866851997936949812313242749951310073256648087738943690067147918195722666957531534009378169350004276912507288540795843471733421670899299190395155930837072722805770722277388853940950476849562532849767290331731580608868079780159463343843043751230488078493854276447707030933528278556000530952469755160005525968023568575212655575205561820246986656022676167876951235383589723453195239368619033852783796601284776481773137379921691934475521799749506369494429517558427644560143627394137401740236079580277559822221181611803457592920149387541506545592544570242033075853457226161929464573412548214252120245847103091918563754741410759960248557982152775467897509636623846279478448087692453067052712957257180053561216351760630953180691584812107879466384613228412473267199565358847133146952274132474721099913652416805642059736356421321985074522642170395289911539834586089449319556833887056879246662416317294970885180008511469955346214517161093657439514687760917529822931177266652001138918012306203778076787979994251426405232679667943547792179399223160663508152494426159120988631307240869842467043357129334905155645685753164154665170447993463027714770188138201531965888262029813467804266754115427389125397538105151094813067698261671504401485476733773669359673088860133953544645488859725702432641999945943850562709951919857014930741147108045465162406401499808306187605176712837573656930072416174230901827596260559353099438832431570684883059495505570411189447224572407446230762363846158001424519388132180864473078032205033391787070536129537813795147271346710163841725447438522085247117883215100647163481058995768686956201829793348057654919182886131839636792620291335751376511865610224502443155110763014080121430579522782260943322040953842907626325129940312642841496825611668826180669783009783168154568055501086096453267514144656581256246008018679875482984179979211158106358234224475687898230881495878645671116366279292105882673675261739524785589009788018244115648333689875391931637888344769186656230458984694001134406197574393089145671461449876906704615992135936151707574732093482869525910862172291438610083957489710837789620957403047415640015829013132015599432367308288510610061693189673155266427059734213015939040556333782272622787303741895371599510286638700088121650362750428577211182835187652157777658768268216444710717267327434851797601330930013718234826884766122040133621288788144848597901195678865272762209532087382516914166119867343331500171812690979397012555205569950533744167851998145428359274988902554947378364892406886388624312620289088294317645310373157509916927284238010602381697322068024101180579553348882006197512388511705143705499451653898715441848070347632255779093929665821629436486157002801886183096514840839420933784253778997595115215511461567933914727566367432123643836404895545503813121929523148914764909865157677087444688293444788256774411998142020605395428855303152471073512128765361737968525180542068841862048574544771973796668418063778864003500005528068494550218439255327856224455308832474231514811733239654982259055211338463095860632324019283678198263723865162958584560802551553385719754408213176687719611261086214641147886209151647280401038650701462746302412627242179640219861879284887748420272241461608973183419567335395028295550961973331604213408989403564521909873106519811526047555814486334324964514836190209746363076961458167716850259708016119055694227722245570656104434885857377296641617901071605078641075725859945779226391902817797151719113868432927003031653659351242946215496825123708728595988960353062896432325794967184738038762544728208112670904071044931232465145590189460666808597980972855763686212106355663169766691349848778590768982350510466435528406756331935861873282994752660697198670085608812654982749114598399592272052924052890635054805225107683725744938802136320485789291021835323192718605359485833128823350681929287121916434221076796353898109232823629187616877076737428600179758019281696586258551217803228451897304006015543338823427509695097313637096944087862702635253614479287924405276582583071233812620484924990258423363151308947630983699674656375939316691000583148426600583697715250994533032302287847355586802364744967489408981960543952442611970269605279225135074629627149805611641175372058474723452938733362562171259651058796144757015419178470232671311756792920786501711637230127179487621879356860975730222942225332276673633022876175364618039022973576975299832904713126035755892771987601923834886114565345388371712477952353085934107196435668503508108832445453613455713918497811988306494164415884504076219117956059823640933521530700447473429772586397841549990946282474253541570104373358041997001121314954154782003770374534105270165735256897696407328719847629819865959564259252526584051350265538027010469970808011455216543302952560737902625578597527083251120372379685280430485838091003119831104092513188720729262445460971762290328399199314593732511864471107976644813271164072103578846129186933824564481049687133537057999239612408126540866927128962018312375628221055031677832887467279759955501213191558329390657527851453702604461135214803450318008856980862238055404126677103306915190555341435092116781021259028281791583184876356372296837094213869400545691047898332911574083265733579827964268485193901310425811411949911526308619288205928504605286899019663534012984747127163715883942226582666295267222552559953068813253223056873702933293244245842525282341368407398087762121601229387544855719996511991706711583823254962215897641946586894160161175239404397099858387125176578589956941200855351575434751968198158072889172766147139946134519396054094360746640736270892553448294429429700543760159428288668187885351876812425640048909772322466104980736197892198089785965855911020721266968939379779334077438798796933554564298701408864642622988790668268139954587490747313088634755551623887278588973960530336918532491115516359178953711384379391030706761413444676993629988333266471708435703333753776969766569418739931960267517130682503114486277073802666466762086949254597978958016584978692166682160636967901384293952079320497543729695372707529790957983594594545434235620963980027358926340649314373302127019744280729336823854081961371146524166391003429383295649421294995893070906634707181088766170673262463992738877409936685583476290295076239284179785554207077348258486043968137679526462165628137800168487783053000696751501373534973907469125913911270560093493092074151908219147780759290526882966222724570120892822168621270164820581567892205768871688354144091055936730275544425530591381819173381452950633650333295169119954505876758214425867432891376002221747179633128928483548846629208594684563979185618421756832753587000967616527507211320454149168175526083501393090347668736380037892773837254185382911044883296841144889420737809321931948481164686297423290544169754024660497747100656833901455007793086506220076129619333100387912925386284217282450201504763161135818946795301750882307094078079797981232817875977973262285019010744867940110057492043307655987777751967206690373187469372935394889538872692198919790322965856358944815033850553906246533864902445150639465315276877122098886850923410850398889073127177377323376532341736567769067185936428530760100654007236257689141456106861337749996310413951816873915458073042489120717566356221597721557996907694825171455057279511125610788173986881548158840735292449822669285570729576724478249401314300050986855014428752678197606032235063352934352243203159730160132395967499115633931986670741777155029233914074158529454278527135278534962428797779625454205528183944705182289390949222288475925964938790667688882576788408036373285169945613657436840234843031123400298682635638551043598746302186338007104022984083595331816224892170108300826995519469688475755824454723692875702197079746281291252275024137503142772351208627668576761086724544714236730380248583130007988241431417189520936310842226863332922021188547592767775712001591115181057312121569457744995461493934051785995074837501554940560733072841563656676972549518192596458274181691780044683228816830271100312677195987565066057473234664505865750940095063021524079962922500523159397628090707374678818103706450933238850252412547439684960432809088393593948631288398183208474257990743242068271970484538796552000846224674171264796584695390444836493658139870957570275663829976467078053834358191877935704592177912926637294160909574179186796252382213783459513701257462675157477559875038358678573824102337205896666231389988247958851007581753769062243239320828582908435316250783093363071657202106124133801112150625712397425130303286221533001628180199684506711312675661681516621422361729679314831548740394535902115749712454871114110169505496041860486770791215668047218156107525047764801523239441495411721103012787771401227010094566076404948060901753583406206054770040900134810276394205360876995757829850401601680281961156094454475767404847456650718081966693816193091285474850752511352799953939260433912540694548461473138477544305188678665326854434382963156570116257048279495064097463444887276840673762467916582412141338192502793191185623436990560482272753365643407370673722377564873622841541803499002366029250864678773295311746450761333187460199280816834362211440663177219288891692622935067654741045170930684146154379896685361289942490040387488773180988387117636424144194221612367502176476830655588737666668641720119295314533848815600001712741583274330831613467081682756218177629840563226340715502872387298879088721329068989920886856388644788937574314635227334669149988778103666836577973778723910238383043519931436707139141101819570495799284960927122534656187187807239657611276956222469669594289464827398473379770621497840352646734624082134893271587836855160335093308755358354815034151360013519099471542578115246908979092080669556934857046791899037327264186989403469198573367622847328612244891058399798282463886414271738353702622174232605768872630202869853909714962944689495025170633867707478724625043313309513058237113398122025916514671692403500175284077946126123275647609727707238664392785255653323610456685441861493102297220910755271547088578480604504275602942652728322529993436608170640893758940816704787882167335419449609863646217823011409066116981185372889987094351673034704186762103559168358451556251923802429789101675448482834892477246224681977555769060630284669748188955038644223887599543557749023173247293730709375949581314954667516072285251690260673291856741819078428553572953907708415400762699166049219162675758798987156532613749807899901999516147945963455154521708515654775582799715514308795217447058693878354996879231103651295225926656217936993816207025171704661092126041984013246096772695465916862953518968389313048165653576950617601729653338811758717842848147406142346530513519501744454354162304712471450537200157403850948893538300231609687196137582359281071979535666190697622217978968249495950287029458439481645643656754787963381845202289011400731185887346722333584541977922141537739080248595364796074862623090836605458601279096599664375406543156311944116074203092990271774115407491247907050675026971201174035572092659544609442851826157821123052978144705704696987598741203323054078127374087990668264546068661879718897106806191245689191732056680999928004410295556560589428882582684250447423385068462392621212672011059949398480469630098966495090560343173509796537545982805507537697581858353060302513773378129052830977060447565725234650848090946129481471067281302855800304031394321097601127158956979220990305158246917197451417813009440174098199369241789987992144547190815501570989010363083561352162679295157985741923723677289157430497506475624386159518312823895009199085822735043285981930189661616338456319647849801656674064315682269901253155252828234378112065177060262179437782326806622196770041574394904691707989021570588734940764157028604555063683044852607587653879976167883897761592358083952635466530583671009665580660434948682033448554949159316318317537082663109108782197912107302352064905637398689760986362791824214689012165635612052308705857937060831893668951527492617328810991756638420304098209495404044971357823494583393258135294245511368530563470967203649492622301783134605001393913912656562665624847237783322971885625906728055876864753943449682031920640639696792734953036101006391764879761100881988692379863265397272806950811527290679514985286005117433149761906723832676898415350000246321341419005760679806073275531811306861841569758913150032173762205527605458429378508803883924964775153299211034508099361087950093837210552193491790332263314709319785931850677776988131689930831158404385735146830402975123356926073506429617455961467715624755425109466700916401178987667126449231683515835931268913424978113731052989302942258998431710567134552308265140190745541421247368689678644038145345851184227793288757062925471817289082882932677272485206534012899943147858300877004720249181883533205091416733235443568936448306511784941692638646664049318473663893705217920060310791924119545172932925670962214640435208473542170152577503283949561460300827428631747899669778689524573765951565224753758335914979776709768884925062997931332280982691944997960128002285025340222316922694924544842595343398344349093546833021447410519595425262981843401718750304188479287740711029779148680458098647882578882841675199814818319250743299638935147233118969398072836158360756521934892571634478844600924679841090725604674397070043708775425397696956146088661340524985841939060742869929830704914082199304291057167924727701181188176180894110520646429465718578752163116089948685149680265048017961170820182812026341412878955728529315134076017663520323070692077397232908681351078976122111899556728422680283843563223300029746833596366186979125120329090671300284647617760707692792534948798731485047368131334436777833962514613196009863014025054951127671682195724047604310775299533861477738741208805344542290831402834971480438322480554018984314722713408320523794468446515392657064963486365188299284734825424815252118588948072572481791012059148312933476840326557627914271125336737106171846782551796562171261954205862358846559101559038474800618794208132297003226319405187147011449692771424938496007878171168476607602517263207928095240730106708915495152415600210110739437882957559321058772385761251177819901457536444322630259494054555658434068131932668992236568006849300312075588339236057899484444636758446340910309287764488677481623730695085578066250390533695210005379207810013100735656035295388706339519323592921587011010371982482840373319393735028992101300978795539796216245610007313514078975724155937995477368980989247382829243850739632770135897969947855567145153771672501599458036207338485723301750174975920398231486873064045615566454970591742263037832973353954272347946712260598337308045062573905044282350849203054263724471043868617763084669530428591178674451431348516294750515990189868437050895989818865408882348957828397836555537049592590999623299940427892876134057275629027042887237182723802687757464035808805340579074434218777654601665271275543371240096804923831506276024172158585358903509088060220686693911957546549462426540467247224317311212946494908087734788586646022223340741635314339479467524601074630819217206291170243023143583665282451572660284300449260662344983867272712881952153391253631910710477466487587205933144492205718510441487311516826455195220053862810458617525016669867132656097247281484170846875061117471634614700280909742782539764338761297657445826650123473068756786255142547722765224535833775076587620050085778766749129012008972346410122824646151018974105605846558372988530635902859229558513180860827443514648345490055538913824996090787806435114829181887125615668059739681527746453635192871453290607054916039884242804761821578132291489066827752895352787515317096004844514947583820487153508351103483288692425223603559838240897423925144876733227187697080972093628811368691212702066072293387685649886703151644745456967027138096524650600332642784554771402811585437105827439328196903256483537515847735625494453568171728538952321312849205257924499388826616401823830095733031014834253414626689855178971764963639566814393069650438553000558571537096638576079388731394208513021749322136550965282846712938454904976700051505680270451434613207540658137942508904895305575047459907607105897594292412569695316333320783136822409479926655407117550163673157157496546815265986738278829992118898609808830345908246531373570469901523248046712013526519553216382087987365028656427499049196462044508105836263940927555240120218074513171718652492204554918829674386867682658812508992823976927199759411523048382358094075427101847894192088141330039039648052083217945037810685467890201179464594934906149326746288645745103438735344814899740123501522811155798019909887057230628528275720574793675253712494387073677206585109383249864674758111077797012211121519042665635367326707207559693063653643116320614151289012496607703845866982918905050461799913287080529370841559043519284383615821010026086460565883845151306558001398278450420315237375478657803053339489153571534985198754006271087579009225348944724242012918972606822925530636622573412855061214861217788824525478169354385652833458869843188792312889835404631678058967020198329067601347494601291175128198673463964313273877549080273078403437335977767021612211761818251493322804345666671853690768513258179287559159803152295296981319876528189038967788056615727748296828854154407388023521386303069772492800710297357376237261505055576760099030627584476996702291622351730919954436207124269601794084131906577349520500209241560459186488197339298435109747851619405940405350520800883153834562035048755757055917380170806843771302555556005153171622100215740622773558584725767275434410631982748451223105750689492534086419414116149576950724348928283788773786142905290569954225739898160345150342605251990719684533292358943366481595749736572003851142907013779032460192862676925659234784520694257255094274852878029219441336876882693029317442031879627403329945877551150708044794729553110624447948445683698143762041617102781137849929057403097713869858739356850722613456383183260461864991062981913672832905972653194293786462110294570349593558920167777621987529466954537578607894890801397053186702623619099383823549562439624905101692439241192325933366552355206364561940811319873852391298878345143434279796055328759092106874067520938798786712024645327602479379769136147863396447009798426493756105557838188137679655899421939050966290114675153159196959834345535955675454809980509897500817321431674804246626042535081550844913242394568150763395185922733320745034845425743265118384091029276503827479978050085383671432337267659430643591233516694740781911176370911908202787233093261737450216719296830705945926663658526833038971819445370691234081795550978028689108033726174011902170220373435904617592868662460507727175588581905581024464625025310559603846446895818660623970496539600352607749151044799978330349126762308634497353178509597259897327696987891540188855813074446501085074930702297451493930184774734475663757394991504671338149025386862383265555505792583432374913835141037734931553369332897680146717240150871421962123128538706163756306193702190009706338254809347014430495160339286407638885005710257893969156507911312007758310134154184109796517582735527015872215238511616284799708817331397893416975232704291766621204527200177217181646616668104135817239535603022510814449350496410160465675634629009817464874713660113764663099837182095786675012752888227607832728490428937507878005764600840573919360652350518406488263284045607041512157686681333598697027697827092234031406467768287047393975077088047881739347251563614876340921642885569097408626824330957767742674644971632758614782461733553248801324837626276096216471827252839467462544258151917876926558761806131929963995017620655652532434244841036364738035226871899831073318629032421456168414351908192862554663367665415402678770624318385622164633638591052560009744690862445354814158943193659963654920623527463994011086035713872485001692163680099428516912317856251843453807393614006121680014659769619668958119676486594238761660445944624554872439450077675875801876041968227928404919092871865958609920545116876439257588168397139484600729176020032660252584863205764774793185389935388088294193561332598718849616558412420266153373426004137222834879565191143302206362855933619594602417664367512104852978469725655307190563648672784209341482813419969621504608097627414084076261182885541417100628913273146317297922511465504266133854071782364818358417107430215135420512530901759481541975768778669058193026899087174118028294734091397932409233754056992155379643152770215084841336302765020211525494586888676517574455575225979878711000709424906149146601787809057767400161613919305145226411966251343096858527571868405978518948796786088548384065316729050396093943317787808113870575125510002256783882038536378540240568152504280467484125362468154913723170568826012204570242301826398759773509749320685055455312904949141833670793127167706952988992872655346718616250491517955368037845533684032353140549754129610455719437637547968727025031073465265420913156714792358864123137533311630696844576509066018875216662624863534355373846418975532655868132724715302022757935211577920618510793340870838376905991946684787517457955230783399570754457293772395734831707145518811661581552187340608768372163720377915246600581755679537231670879858650629597319001048169639710891603339400991229013938712470704057042360019243541370275311982955634381422989148386958450230840957058163466521762015377837676268358803359327986971002565649322160031912824867006893788790836620003687221902529615324340133101667141817217924527964791745397632625424546067718515939892527382805605330430914058082522769676950364486393216022356132011733102835305787710654634786834731700271701144531955606087933543022008389042899474781959746260887668340460889220318796158410831577817939020435731780092940299220078616985345264459371413508467232823508638753327577308199896205657894239515287370592881628312883809117106291073150636388450173582171924290474149568343262326799326246957693984774880638261031773034946463014754585229115911949632223319266642390853560469491082053079774010048532642123464621703355434338085515918857852573497779391955269958712766547470105990826286619459426473302433661109923484645916063536655761936638600022894900896076437250920051951025487731948661603467125823509767221270731135653520527421436996762979073085441957107246002809470353992561910261912465887055994327950266107089052951507878166951063864084688899496708759920203372465382153038356936482367050241723328051391481928643414678026538795350896236066617180455569472434952104912922795339829205798178437058466596574724201068069139471249783162891149762215352664471770647085754436462821985313533930302383375754226752722950118942156841116762345050769062217979716154937134074232654130727823712108014266347738005472874844717582785032955715466815194081877084860948528307693491257956493531566071393346700842499612824345065612490246023499283372315362621080500223244452639728663735608332084516808222815305173259571573116098042372563271011630494342497508769981075836295736817590829307972513059561289765803013411689976127125001190320402424021458398591405423373630633456524879737048380416993902618302375725045818807795068486316740837559546698835971696835324035057815018016200434290382516672870244169807961018925569198875583693362343978111022031014888070847546727043428905385363730825831694170832723930623668211170053778271372985481005758859221949867387534374227711768988496656098372289014198059124327470763658871311742580330566893699381121772437139014726531614285859316369771753907286625722638228077683129116721381376545289203123823535683320852402078473781179582342453670644072616085178559872385297638843130291654809117132253739074200162093368998869612665462344034831683715831728254411003564498501875011352554670948049559185765466334530994260220472971101297784951752075637600505887906840270498727377946961777379037721521705243449480603767034384003919491931899825649186105095600628778017090277896645716816815551671826648110268377482863055925299954771982128086737236008573846994337554372498602687662066904104010884621504710128760840483974418968002613333036638462473335895820316441636231431711232846008311354286756717538480432711509665004764544654701257036697602389236622015201030513748492224899014020778732383267586313039292120951970885634947346649969218660041815057476865244424036811637503084150378740843020296104393576384970763079305941735095610331539217429050390226578475734934216860648086888878193816563917978686397352576959901197401555598278191284184586859922082824903053276086907721715548755151017597167662358670660799432649311562526145525809787321102190890857242130821222482599641278849995034087698937895624238537198952234363180165189907162513333759955823395098109431559861605049769652390357474749759877615554184915470522704735902938072508152336396665190989822795460203852395456582372825443009298218285528404670990087170735029481777475421883692395606676126666016502388770692963480753420962464545406634987499504407523793425317694672620219580848201639742380830221259278097922281264176570163658580517369819509951661704398254951979981545662399531744341057350862395531793211875992762528638442714756043846420881055972850003359482930371973664792623919594259673309965114948427395493557534631432146627830592265857229781488605571031962122116590405935167319801602716347235541451126160984611972435265838825257137400728903189710628165174238774292543597162004239120730317592632569642999092781098885396105866620260457882463962871489487006440169715418256723441143985749834049320992027122976886753270998290428377225858289452903858023689804410732548273525260863633126065334992050064097205050964204045565414913717902971987415408676636586120860996662365326856913371515824724616854516524250462678989301482461665049200263630963252116299173919402729205631090364686293803040270171072328061465215740983074242730742625957552575669985137325622630855398130824975532064613566396953969765828683529775338136965437048687272362327715937544083128908916890571805294910133868480643134637716971813535894416725885128016252624369834809976307819829186047478461011287074713562283046515603082137877960108764583685623137332555511415829561360037124726369389141709602642724717142228793642526616733398895928213204840105328404131940471307669371104951181909386881473698840021087380870296188885272205985819683140481779796365246328820259712475541521472657805948794258862783929409980963007791281180020475554622868676506575109820303132151195562967401751110611247891332209874497125491200579091344728656087259091775955052234428606622332925307625128617926582752440785493987122505118113572786974829193190600249784531734265277599799691338698080007674475112768909138570232219949791336874751739100076824396481991048426604479789652555524751870158485814241594520257675456853228147392578247378578894090556050264854371940640342351341365721199075154050935306318853511665330099882745642467511712308254780914287470534740354962744085924486237675980402739330053356353848477926886868311153790150569401337574149914946868486153210138016454480639854870383589391025606361774577477814394406359462917466977026811889055366951309773901939024985564946706519368602113228459737548498690043416469884981018646998201214889443043583828531268223863594267328371645297893513548066349238501806063844165829978976469546060178621329031023019763023087637115099246626281953829652494555641826624039860533655998659837402875910977038353868646576070018208350609855270841124030950076567231138026101762024572725590489539728010791725369223401002370555168319079965620271698239448483236330663788534618494251386190793259498284961225529478651386946118786985469845108642437834709888562594189055100544633142225294675720284995521461679430555585066561155327444182189164723622182666683784173288356514025134718953009144133690565189053309911614745268749744124248499475829591412805617376950145361240672829281743982775773731018154134669290951013878494491359939472416906328177977511141051100782463645305479230620397465859057586529156059353665053088452986087434134912206387966327999208648836915412288562059376160632557846853628267276851263415387814448606073307678240541408223161247556260862237964155749834209281682070993861733477913733069050337759700621681801035060605347752496344459181926259273805707770026855886568370884324821812376494129471447319364777507529588248022699429796749296186945218443379782744504969028941274512817837036577521099026912226990749733136719373248631868560556058481447654254275119433839155996021937770417518322415288796634440320480185835871597805312726477151770739140222228262185193138023204532618457282699459879100299845594472593915895980434599243664536377014309525100945800611582733762571800326263924102208565502102852414846707038611101695092174144010462107746192599016864950171663331401368612073308401871638473525683022121421294179576962479521605969035368657360248392653578071277315306761762581042264551421126317150605199518477133901120484550804176236073075436679687984317721114656322166548410618838970059174976951439354002416141879073189124542338475323459937479646851944599109609012109892105053820596284341101374460269971397312676573632356781653698046186783905316198520245780701415851912567434190266573552279767719600208942846032567110276302275149336579646593038458038846308021386040755799566024289284336163672562974381169629826511405389214112983525222370346261279521907336044171073480962779312720861542238988544181519700821417690224249440930195055209627018492096098700987976884752427330493835801884318398476927075017927031078885462301635600561919065998522078517979633848935844085647128179659034154535080057558543726934397516999926919597163528864177118954045013592586703394781274438690556863559334177403994025269105693250489478053275395615574922983476782819849970698977815700078516263658937199575714473885091809817719158397493676848518960871436533055995482022287684697995084155762566884310196622247368043340478047072310960977095508457329212130729072234530945581579830330516473998320700398641208847999121625000872533694998806356169132481745848706030009199493448273004623862396773762413979449153985459633811440419019131689622502513630596584790073749684660538775666275551139366640435957760534424643691707820379549286514659410805767788758881591279579776033704048652481801210892768859012518263422403893155462061271267900614800289914949229286463950127647844868990694569083430100268607957835011422119114613391922506440807686342816775520908760381881449303005900140619372316041963067522965565918319015715787450651424653471539063421619644228545495855082110652834717709622495397630106838396922669115687448091530720473618731723865775984771595199279360596061047829462648794701895970964689570439332338514595475228588288600872534968501486767413199983910198371425362746143869161079596184797245186557558255063019844959103751291862222074717559132142032876766741989661990157869882716452467134374620243396096475870005842863979168581803674544487600678343711537723636653354675635723586301711298393414631805742496915099603159956831033391358549540560032548685454829984571064212917947978959642516082866196598909616512861430766316190232015364507552453195279704748699927815587151407423126544658887601071739844509177695131840555794698475088764439121147942203282732683907286965040401076438968601562505507729375587170015263901357493496346430279334860076416171255500714587888427501030088606504583961636168436701419191839801427508724323703342028704574721152869919415806989909267255569623494149503264711705476434171271889492167524763802501825649686779107535527179800805216989229891273539035671378729790799276131453426828374015302179072133649739128194449225550645570068192319012771154586254619923903655855549280905107643342438956521471483589061704195597595546843589673243519217350048127177457311608665464904973099899665525370719149017241476941510786888461729377439966466992347444440564553779218003429795404975810329781294829793062542284082251226095826831338523559442731105211625211508901827602773227763386331467625353588066664142983237371139099879954465614347928919377667266024812174077787817494685095981966171723680654621829823958176032675055235432806829261848318994748166629472577261992848382635558593152140268121983782939868813187313353935073151544698890918628159942627355463941836893306378442143749229929524570645314595235155544164254021061131603320255754877485936437689437604789231102489021452593341381387461748351754673344014005631613601244840845673488323067909450692871936157441819152352726043315828940287516067288111601716715436325187038750054203460081161950552518301779963347546411524894192195771610468916581289022382131704713588460130996413578866114862115142428707211123870605483458105910186114769937064162045071459676398816279850749049335728622730352118913348870093162998914607848324209300714992814268991710575483135986965572602498755924916949514645931853207122662234618413951737451942610277102597820658407383613527819456261598954613514327652999778427682737514273892564001638894564402024396931399291201417801213109365026463674257140032921466115214842607539267872887231561228911157547407886314777047605287267949455452826663108570183055900592751762447037665983197992972237004990199644908660604603886196441725733068191921572446686153546235045233902578493769160884473524023819301069316754874233846510870252756689252190616986708784885827301672271881733594221806627281708912302786270585493444327671140662611810019915921965370668951390806764881334029033548482166210304190579467984597584486050038427181938983833505753045833223602894120033163043525464336992475574197116609027228411110997482520492219747823196239688159399131647161996888914749592320350753859067456104842371454749432217980245593016160488660339510908525544265647846479982882195830274122032762315999538248488508093009373884251584927031567356885751494317666976549980373685855481052836480298802924428893726340723787131646419565092183523607986671033962121413259841210532498063078655935394639434853658248557036909510706317999919621458758553880326870303250263721766908212016749806608664776031933976697678890564354184757585752613460182336269392829205253301511927719350699802694831005518593674251330565931704931733101142105634842260920900910563592691372874904262054578349631454070929047019008781337575232109445421869267653194667130193053371600066118632740651688228435242078236304135031476656532311036522982435970613813893903098929089229871962944127960609518214430518943966383517627698599512115329004290604572799703543091607883022406491650701313814773889203882561008934431029709856858626901541670558701987633108182892510519043965167671268592713839507402015370295502703381461386865537481117293852307325375877970684075737468124091582115501760682153103268078040320950834871846739306183115604250452243034307232303042313139438993183304214096616850454242506208420399291456731983398247467360994022727806159412083715751212143312693758511091567253330061439234685658051148238955993688664532539637780422175659339208167086404005198554645708156070739817658920639099952448076436115841751032248532305302683150518097657937520851460213466748813684241591851627686543689133634032556552463943206234765479520665837941014882259828180591088616747730521110475108477321004648526656200701733005650209769024367750079965885643967376930541118798938205092874851901947216230928901305012348428940140783897412118825091010279115209666421557137033393218262161857739720172217436686225338380681933576999482248937494161546012154512502536591537868644398248114233173737133633308036817115148253231698587806097290976924297988582810861919707590551075901107555595102694559066834033287273508124356040475609972990418156209830406905631076500526800251654560477451477049127967007106811356184513980352325058052448099000414847025488288069552138168683504175170229857812715736173377934110207841352459070017738711350590550779082961488366994617094626693370959595889451015668747330065592014689780917417405029592236452253446817155034410738703929193721603052126377441879488846271518001387689236823429570906623509255500718025594361586487160029620763498779328498015834554987604957332474833310710249760050758206412831637897300476979363295777854283585165148144363569693346619434923525344347115084991780267440348011339944201172884396047119014031242217482958214420232712448803923675061460390070451450566052219221908505029981740335044412464456610807984404699429921132847124687305042187126258134450914633637011836151858600629168772339527024209582826913128084372318663143168601244346948522539667202647429886390636269451883476262553554350843546466445945421524279302261393618578765375725973195371121021396931546127455250938343935923891461523925208256798528523105160575855877845498176524674074593089802573667902309849341551879732039937212686209400795766198546207424065258378725243896436363787550250684678020847817005367154886433462839770210494779016376174139027801020977526135078153696960883889143500951590240613921001778725797920574671632599932175329365918705685908981368476410360732454348241462991239681298567129643451645277190583076452986908285270788079623814386059731311161334122621786106166173970944364251117225314379344586953310559447765489404515821838516539345953341139404031437318886144448429602488966026455988980030692309860428527418996192676418561385791257088416647515520428801416494666032293348280848935534101125138754375413080519551720977492571187055988329434234023289628296068553102343440372104987951713866278457596495235997663257122733216733244626143025358580338584820066662284430771976304709054782029839935834270500273798801501166697928848523680162462721822269645019190562648199765388905818103693900961546061501917867553992799875755712556043645479089504436616837207698555573738525374369451796388739716051248498199494311802039689172900534774153599051502120141227016045276720393402177769298168871330881501025923139989109086416573522644705534361351243830788622163388795617317565335441233709157083476510570848843352342629681532868042634886533229263424669476770222057848941186574657552742384628105560220359119194021226341335386236646582381081074950713946354047719927460030427033833546738288291901993586167962006314986595315253068443183036217282564616254369059752618006287389165521629167693583910463844818627545612859915122923214160720189036968535543386597963813921754083815171909345735857530376004266472238982349474307834294726908664037855737840256569675018698031819124226746161356960883794349609904355303811217407393573182012661356431841796444874678880236287440528993058831066400133725004817898040190038880509224052162628451757647727285684166165411456509155452802283538877884737005483136207036370535973500956979398581159464014367554509828605281922398493941195849053447773324782081813432923951920205552981073920754960454127922820579412242023616390925213528252094346068149354981283788650501528471727736364326905464102269307354254626180421340252849913453386110073431623436472351203026524398277136601545607250330568905192953400695006887822927057987185154718378502061353608349895029475417265473481372165389885586776152499480996151433646922476162778355894332420915722599193951016763019032108725920563722241575070430536682881541463666937150158360194043567334385856165512983075976260665834327380510179227464735438733058838500158172105812657826058552970208430055245441789111869940518165450976111847934418359433915665123154635867856268115880373333316797207625038738253288251091502742096560409794934530729518968220657536099769931726567738713158737090163247183846363611265650827461654029399121629737533016560582064990725463411691931036412583479961005713644522153616446626685171653519494265095750858479967599465786913975792730478999113938797789653084205232087040133746338493265842453347172752440680187489203294358969598055126581810370437451530346914239814930026172658876495381026546218567804159226943726824403141105551348568017970478474862994275987795499673814774027467147525162789315339615351878355652295061313640115628468543912141673530700469019661513601988270249775511385204308199250520483870649611222386914251621229903570561152755214904616184573739528222864499036333929211488475861110152128233267828379111267625415695350833230638686212203249221866326682462850324706576329646159843401659793241006923698017315848840097776374327592743508829554629618179595467351560253808653088636694238674942841772861366185616581381289715851509994445432554152172808061157092540379923217965371937671089696590376231296109776590255193326773855605067167132561863590380778649465281446908060043448074237009812062131927171966626013052481183112229890671884011245684828061478324128077641931497298128064189908763714247553012639596129669967312673405297830354428856360884289219114407145316676038389503719324874464277565758190754911671730176121319702705817714125339137000276293006438072765154122576318409981557811628578308434240125231981352581659347751452122486375675879988769750464531082844683548292934964406482260831641887519728148840112355616710198794421239494321188051892363182478778655368085329701211262086483309843661867930328157635647207082540302385317535820635060806852956899104307430731334981901888618048249299934908461785724449161940153638978164645799013819983452361362716614343208477780010719182356740055543091201350770129843194044491033206030621112250768532516762578332746932311813863290524246310885156027358892938812416168536037662686582729358488309841209269354280122559521119721011396226305208503672526364731553851871402533072229250689211365945785678940029532448420116036536183857368622139211594574117355878829284583102786851352560533692973062642498510657557336413938421244525731341527092102390337129487143180842500911657076517547579454515426290470090558755443673409785604857495130476320287477762793435040583639229734294597081829503728161576780463833018910785081654679400253191874739166940064049454176913703583743851062795178645923192464649820550751778042835378877779650598546474067639750783462480422049405336057235911224779977819644092993409342637750449055322369730395903116983041078484882823221656719477202391582341720052706826290563818846508514410746997648467041554060406201809204531204630883854798403338606719425842941907399086819519827638253297926804289740246670951904758999160182514234905570107668014581028387946169132630606870188116294899759848003414238027200708073768589522614569673653387075631345159771714166725269313571127992698241737439280052378483504473896067660096343445819358483300690591822293676132988743093518553339232024715726959780158651395233630353135679579243283243841726011838015611371242176057403248723748543427917679890400460608211165395343249578839653847797133852851970090285182878792828682439730124442731745488926921097043063558402734656872060878079201213860896259200948215786818430918485358723594553224373759760312396580089709306566265452901478886540327156475147934792391125128666909527444678151969221576410157491899921155749793026621096754976889168399612686731304132022307127325084039556591890853535244966774963851734726097125927954479893742210728250416670852703945975324398463680667321259596513616081329231300983805254873286092781204603145783213355417973825526125430155290922339753019784901657527975823840351468097779606356699471089727227956051551429817816230289060675962387414786297361327359523734809035784853084641394815051034533678672104808954137997188812244994780055977912833803688588352215776428140476698308769650508648407519740104613019334034459711613798486293228392205808223532003020721260187024980760945928962878040106220444789284158040742582762228083290899111789500884111640366297260718768278374388416198099241892189842147334150736155332511587341122566236012414375899286233834378305991510807566097858714649747389377860912855849368001010666630363008499526724010269314857578518447368330944507519994179149312486957292850488657313713652077932111670482078187316229231294036829264213825095387061340145277521543836968016924935247639203484338867908439935894799690754957609937653071554505736648340493533832116361820112586183324779502931897182534449470033401602716715378746056090904508421319420084152859155160822234273207386037387446684154960198713119386390570097967613739348234048717673759992736840302361011232069458112489444975463656515755460406703808159283226157788162022409392327418468854540799507516401474668995163626122344726533576972134972124770440196258438744065909731779747163463604429133337138139280666873232557257233690672792301311124907096697467675304023120182325182437947201664862406681434060251580029752239563935176751037057706527052898199705507054556505435911072804454948318327525806368937653335996214077230296405267862801659158862126849127111267538101092311943002699107872865852362199931502789858477071403607275198935395203563487445190135543637349264847727167630737744372958875375650360661190065453497855390036262937119124305238274588910300288642005914762720626464359195239032366901919543423647023073513327254765260455017185573953803655587766048618290424879089315706196135601438898221593391188347920800856534758256163359650456751266557787511828401082154946425503942439934033971488779290484273130501340649004445574858983547644834550291974959427683909384347342707746140453723036096403945219814098850845500529790072367042991427181818327409533919435708019963509456301037503982814814391015373224721050913180595252338224841195870097322214166383912038726224681422331694684614223338367290240970606266090862149240714004171042615662752665503908372443434158326294993733512633788402893024140977901230838726649584922020173019958990141413023880615021555148562829344583407683893882189841816480195479077773650406497106695359169870256258543274745784580612441646870077616104100801631542387751002874593330076208808713473917786455523696140265283699489361812600768695621928458779397374227011642753736642375498661091567166456225005523400058015453228031337618824776178191390353920186513592768443550216192136258038989331201497719991692936049442236942167140400073554531683077431293557951964081131814433941275239050202440231542393961533742843903383264966480755674025627864903855633888963005653548520400130983568325525964479200490979291098810069971682848090088455392681866515174547680436906520245691377656888891332745806317954203977606617408711447829128470417973590960745155114520163680454208142271943984490825919797165094589326934114495155824878680016189979545394769452820935756013274773002077770939763205792828424244887272655621651310416588205600664225569080846480724397128256939791885982760186232885144335531717293299377267479538962225738373024475469452110065625163756227198422318783064111466478743318722287795907369193199374435031626631983375257194929137009251339901263477120585358963521164603283113696982082971900527363520150058258780644573857275620625788928197430917050874302376289561721387762489236997686164957136080392403929370119840998765685574125655204243258738188623460119605576646173433393191020472758416366110549278262404949323326648990593579369547161295915864504648845206904938339949583013796673825257827079218668253627449810545156983518760700917354823435654551130711356808782901096497093035634846792627637047404699164966272249922503945292962647228581160127137729485683452919978026918695586955512491693521951423840468121575988431292387671234460788893122657513264871847568196511631014965909403452004029420827767482533158279584779760051560964313805270707932902269870191060932538370640287279175472773846789303262949579338870231745191500425478751783897914516555494543627361641723103240777418767632024613079805055985536996413019288017265654317019019502099467296867185010297247899758520344512400086102639887919725559377602680271726241190874247333150404194855977927658686314304098509216357975581535299020346345442636302125230394107088437095296134276691952870802980147981248604717561798153534440921681177467208135617626835770704488611100593430983920726012079674157329863733849406307652421140466293511577380730417296465980649095059538443196425118564887345893276896792543376732061278847750331571643414751062319110544462687172550319252510013752442618153316696489787717350674860403744385277705357531533982253897997817992369181127568593723202450074907917143493096581131126259499434143760625474065718425002977363864013444525686968172472282289106128239658069350408699056114867520058575589955490895664602900601074988876539275098654218300560841633459338287782376917273785972751541719937715831617982740136929463198905301680848982738067892448016808375220008696732778917342538678047368775042565656563099679384659150886251504646459238143478113521698727094179468024299402743670260952055197263790627010162659765062446911939470120263494745455338009610361353100795296660609372219672047918764996032224366413104676502707528790469687174585492240152328445056013780735345532905059735702619378821323021219370112889159086631748896275438570878315178479133279822851694235925356327436074158582125901328563736640231947891156736137471944026722342969113323686031939403940087260159047291424455225810687116456246417186364741980350110310927569620175941929567378539452241269781075685122679057185466567373664434704164467991105046230488449924475082052411616203638354460622162261746691470864688068791107703380250721420404544062686732056421693592784942786088708146535217923309028909725727043523925906467231315111825203418385059959509585581664119241818288536315634666615967711107579307466182156825456600463950550910219098698984925417660315384963455607621713343121893983338386422666206840943376701541084908687321700451991840418622117628326447030426706924338977443582885396711338722012026615856990985938222912700680260538482216554345956263588321495038972261769008226563651427477965819074361303010205780858324464062553850643477390238858294853748920488480893423445443401552117174558698039393706189598517019188966936008733316859633367248535347772455564824860245822164350631464101205843534426401215625942576075145344310585182715484252664755629402997946187258992533934708047126198599843484261209019310068266016133883956277810701650477713260901611655042276200255225695475476866808010209837390868706144348349111502670822233323291012210767501978108619881636332923095062886228163759829973213529143428146694939665808283228416864521497525872246820732706506047778439363574816676141870280330567985877730737201639119771823823016503173814197126241609127506112324775756739046880537048336428912088629079559387580589075386804627562769985378940635864929430803301244454585739667427812403593435655259635385823541493401723046848432076597277647490774116531053425113763470161886865762294614450992152316657831001904624168740420033375219107393021335492288156312782753806283334998421799345518982894260980418720425790880209878991765057766787940567579125136559256490444341123909877077671701127984684020254621004142916745122321283153771101532359822730445899469951132464263684335056403848160153425659792618307614445236797683458906666968917186575716917229479783407530137081577456597974524325529908831483052981825431419900590032119515256550168937292894416137248276742948147791036661690939669206197268508005311252589178922405188615840003138571211904199318268495266257860025073248898688765986585707316336654313402634210083100437611091956081766972521727061713876067603668288730055929202906838657335462092374390636038832520773053900921978663039270591707150412102843600308697689726522477601125576317829264320198966508226172089821773982484143784906977722777412193533083612173075190838140832393425470950465777992322476068265862452150730234485604335810295687601571301674255053574939336179500466945819523337254404199374295564008794937406491522155954349583190671149619032781027892224944741751544525851177465823977136295130507046813746769494338863691772123982526545784366734811341298682629855899186778150452598149670967069004054333933073802030038346852240881374998806498870777839186557508296279167206361557957632730668859565295057398192203266725261906676525678412497950130142970507625640379586083552151706349470837544404296396946505355874387919503217670141602482967307468039442598501572742710303806456690176218545637802057578911549265345902231113779646316617000700690405445877359673154213944948707884160809386994169409735511660071501846775162842044925105955341382908774771348856636881671333355525311208356315356618141559791245541832189344375141786972150209985470406422550070853413461524305090412392866294818666013761562381725067185516234984386812680487118216270943751843905647611516827368934185243954826068788152435095757610106368690603455309992219980064070171500251205939614465385802578864238993868471686448244500051133504368871408637431258484028332276007823719363910408321383864305005627700125992205139220606485292692357831143286134095272755634786079041484227037248787081053969835231852891747727222015957577311987373900038920975856315358633977861852397518153960761602161502794546146140649869165689068464548553248707284651878018886129552804392737943033044904811773202208925937287919099109777717351212017736821649815675572806502555523195922563855266430304339120882907263007394689575435518096799051656492969334392611483230274238035623636467986530357369078486907736609737567734293435278432305006176969121870581253709382823433397738163202493980825245430838658597612952054385231119836667684930750341508834000361751509491243300249673422032740167327428952952643883836754479233284789882835447999742232587383830102237104332702824512043600866231790076116507912635536742310354775167146261650690114718824625545724373897258888975640744083400210339768660437909009572930192822874970242141585139820013781023604453514613285755359531530938714630324427195393234004426788823008434035039141445449561717207451479309502965714509287234394815743586566418771108595439395016194166254436830321520121742045483231552304007419292137160324953313549930291452006683364413698417892854218724713374195852304048304593137590384486316860576247616405291094691516010427600923266550399450213442103089806188463421765509753895656783537035210745503236956574467215903990615516174842107193294010456971493403753560179747175881684685700640825398348778268722848755565932819182675546596545166745650618977396684407329229501200506312005466343788727189909172747809233317554680151940828496988932271256030145027419367683995331812577226839139948227983628282253975330866955262570845598684139453171188947431174198449699682251531596462786103432375719828041243041393712635978282149240754470879799885544341365467805611379283998660902073370221011817551527707025446370417419855584458973861957056227243509307036336721663956317488752126041816109682805371531336971876371643957091288282692015433596436395351388213048189724031028348409247703739801141011370971759347337972044338125984303045147424119148120311776936378277829876977488964541968837223376733977343314338778648221192058533386511414389566068808099310073253947856174086807074096117002214442660830637902897353317738935155459877379124625768610099927660718470565242972927823900254205352462951863639643638461540761268278863470790601612759346648132400820401124972781063778241571248599316825306550055272016172553143042489163686008838483864293042423619261074030225301539374508810041016560982953561321090930083274514231925307061960500756358493190291372543912509207442326206131982570195982643174251870090982180770132506212754737729188307464783698005233318160067127803341391676286325141860235083564110892426555473906211208330895261066604452407895898512336487746604422499415685540680740442840623651671315881981997271406920705834938438319990759772234224101716468629000792614678618162941356698683340105295555716428411924002125216382906258672678547037724544836735928778632886538819489508466666600890474874046859257619980000063089708059496423337325173079738590322364520235737946431415011516930019150771600181375411288757377319146825210475599281500534802364567763455040366161471819047229525129658238928561373466367692240624067365343723660965179090775752293678605489278553136177921090245882859220578275742094516038081780930301346166486157193187845948241102597626424894322536505442755532891611092792905477639751381789731972482129966913288754803702256871250311842818212033867349629963504944996226530851082073632875422776448314835359233473060384380325499123419070281236645443397889557216459062859546128984787326942609760131221020649592126171494330531098674497808440831688615288762581931372419000860078188308836483529739132841950190748906181996548536146399872025676762614953779036849712811662191600202513754968734635621836604780194314877163991853359120032080123372959097928049791006975193047625682074450975605116646665030565037412093752101585386460910971953815024676687562789378917977223657527230586386886402491266321189585304526788252379004749759766543881046972933659680829682199959418959375455995082367476043648264284289105057251722848053327030804513396416335936137117021507146932246793603221478131794669886993832441269202218362036688286744936363834877545853464124436244041394660030244279846346478037066801175940966311953417036457630333849467484025369782380071338445792469608012179570264580973376593344594558270237829360541949164584458956554451903869277844993753457557228828175796486345694345889727535913844814729334192693063829291252881376200973714987646793628567890462541826727349865586365068304090883178706244628900960145003956227572865633888327062598287972898457227230298329067564431829872215421618937536817016230091150469941240395518645436503353507193695709090767058133736661054401392070805941131211624064661491664159249885115577670960930089662911535139663691435461416813793742972250464677449593171017653087976994844425902023756710332952107364573048042176791125964135068279369663475829978095047565074179658524851793920555463095473084286270123727607531733990952391520342303887429165174019009122068517580256959989893668509076415341684448550716003706961201751232298205018243242829178738413151431506458879123700289185281987039295899465360180157133673328800764466495402107054145785121815967289581535441164585719135239180985308023531641315224174914241299506917424159876841052291575929582141616088751604379122507709750867341816907752105832040266297458877263973195262148199190214257406673927331179674402722274072342560556244743452068029304257334703545550435589091581099340073306564795364618034242526497838019368085879334775980575867977029655999291525263300547141591238161756018023855362580668988446417696483876084697509227410662831156837157308370126767601755712068539843529423388306989690441733664082709981769046478788976904747721600498597868746068380487077911887863477292427788248839905213912949745078678998758502818234088000967972339634557846254645992334226090489334756281328732448286016586167147734332592601585010074894159461969536241225726598713968382984845405966096305207773653062460138303858544739371335916137534209403303530911416173239860979422776003265932527949302520372570666906354367932607083895681072703833776768744252464268663827022713283765435375957484678990422774063141742849093641141091298244073163635252712069144492879508406228205069946898053434773914814217891196900189740295855825807011930440705130703705749812582500955512244774365487462105220282038370219520604760094477670370859108877194511133121603094122508106014205251756098797211450804841974834181823808883988322796577267217921527609934443986996919455704969900514764663455838763994350086554850761223265098085005012418695940466052431031005972471670253927242874562291961470985305621420074028031855264260836857682263922932186881218302441734981099960084181063480774279529237939071290335022891986700468713678243821350159247158738756154316896315136831027870164197147530449167534234472449622315013085023353791919076525209256650832407418519151248804555255743306984282517711764274771633369530692697790750754716835018290770393900469222458564294463525538568064969425571232390364318446185579348371445722402675660004427513998917900602844362807717246867180503774600081888812997416222041691378736020964214579340042936259019234099081221096443714644123071695738701533619034217813830984337331254510484731132677953796754827925729815961826515927259881060160062691359235612808977098838879616766588086619476737587623280218923771061837401252764682479702873905877673894970832385473616160068394179506107066608897597758000708733757678607011493354245626223953202624701086052543104329899544714308572137355202531369273016571167072856651539324352556369680436852707438353213902877885425790276812230162114292313021686105694818027719736758322077479224382355191048626197948246207219147210132444511195875822171851197482217706665977831455363558362537596778256949319774781950474249118275543082777885776943227558971447330804859383003041287009871112723839593375279074488861879721516119416722474615748888816897138925146851468807150145674514427106700470101796708498898624617124225430935121894250537325372386636141693171802085411001503196812390122263665517448982958993292304064717935739436284542650953959154534209701089551364392586679693232683623675506365508422981281813134391915148703441479682151652913599996538773041325873480758132081882378085543668081946936780634380929997592948252275143989115695606330956134935376655509833636958787485712759168709230310494256759682181506558300803063237613374084091873277604239874278387322613142580998400551687656630443794372894944996370161356531792047031664302372943780754960482635265265334170839657505183342074386753123733714905038993123380792200245363095492560961636455338558014234534442609467562983038764895019785913770656963764867409312579307457920310258417346329839584480888812500040891684004949854079799696836118131125568610140618809647546940638895986240019515218970328655094422353940461034395602386176135134852465088972413862246303679058508649689923253761269253790095921225715234049965635607901291332581801236413153728197632016379498066022509004617440800651716724545078254280443305771084496179184756932690109924049788700245150135310507733522455692418090998707081388625562597558499604843826232373836840678488018591682499690296836854801450634677595814716106459595405444427787108866523632229694502400419619808709385734016125610490769801354993981614450638964197267999365223080776526522380406125598831116551048415300969320448330449667355684221897885144023487741986455379934168069806848898440984464326799723450168706864275998941871317253602274591213833860626256859320060979665014935509524426589469527885019371090804818323455302427347067917633966601148280380844529329965287870850441544179675808103955516320876234097220150505854501081634997433336693075732779462926779646201519589257292299292699050815443785306222666860518041138386320431324692418534307872973687922873309527375348935482210610431003313200891406227212590412325058628688431897178034773941497210880576771117632549647482335949523846460735965229225740532471124525619973500285420592335155087723989091092989050413593887060802378534282271729720028631899288234765366456322581179945429249756118464411578357091307764735082110246880374245215083367460061997551190194723113159437131993249709039466983297100768387613233751812311505163799009814431446038950707130213798291242209638652365675348622542892235650843316244953106327554804918592714853427891218768171470246499660454760258769088117232854726160670273393180447274813781054367351971938980025009850157508497737064382891369771916200477611284072905194697315001449537516896146912688395779679908241564376955333458444278476163433088561980354436653495133538316681769565058119053767182524406110824398073990421915379072964050627716589248283891238384415846651233140328241182102544781065782475717425677704594235831011358246160522546385893844773401847152302622348970683311754688226837013126792584338160873081674081035815341443335422050720079021123467016488857774886073002304069506090919706976579535953160756578196395228598338777120442657537811518349421815478946514104504728385295614174176945964076066328461885249379268362375962469143262337723497472840373088224813912619502308413461201076913046660286454375784676294449873688582187411301451590014863844789989897471859444738315751833108838840713355558328158974030525623237796997190045703187420804936045520344946522823946827189800377325238245542245651374166617521331721579558843649772968390386242353258122888621312976921010925791441744879351924481795027988685424898670832458772214829895128561172983434688793130134038336010397532689175173018820641163492614710170868920858977041760122842570554673493790568526336159761070020530561635418883394624363097226615961993963693897652645416526990586761861659254096466136676596138637970803082195822418624981280205869236765968151004382319249467384567734226859834080678318877157675564248165582948017464849895718935040083923375656196349144262766424683614241193145140236490330655134491695090390727444524304976974037383880233435642779077664622633004610709055068367032611804764429112983265482545680714163454171540738800816270496737980815673830354520817609765852625738877880613014936390950658835716525717135058341266218500080156544503317717094851853731936992699321098443633631759620123957893199126205397641909998669806437416438930567731302569999211680255533630402731213992379364139425384141963531811142326604176461421171983394991421432174742775681024359853003818137619739065860412504330182393872533861081692679106266397398840471780908693174894688289897866069054115594757048565919179109121197495835253657859117882430929692026473455705431393029532124867747914233837382512352397352633140057747802726271017564404539441182973515675029654163150776081281799581171629066856888510540686565197561384655773963216057260892742953533995025791832721275470831203859800520324083375618471260052334687055437139644188621026830888403884190545974191167443077329448284971993506034553389287208159220280224574218745884484372085287157239243888601319715995379762168622603670360521274424341411232872438857061992477656296003133923470319808320173637382237685826400735856764020244707369142398514405120218653583759855046498423234614513603554053931537044468351947058722464494011681816281168777302897357145841775544524048146635594714553273900550377635669837136081684096535157628428698674865995730287142958844805717070821390427094692315568820969504485668505763976363281608927181088001676453297990361592070635126830133440167129504707848362914835681123530943140551004491483261357841076003223485925360975425604070122650806825189090304334837411420502180127675173100040012297015491376588877583617599474640828965750927394944950049082200440541706929927612397627866424241334980027160750214078167689229260225624049537096264457881863136709082683212083539979533616304400733324152543425736324914970112613435697406494573797474186091168915394821613201644211661258455104259123470059050124157582626487761321166014388887529512874231226043478056931506208497829359117028832290545021001771419528192219442764876643470203051883460561761819023914350809929340929886832012485179717831021078576098942301754637643143481775206663169668396403640554452080524715211457551786154698244135669627973659886449095502759631161012376039269327494088469648514614688846606687192657145365069146594849776198138499708891019857458352171462346437482019616591429174936943124866069077997461035899323495083093453308168361308865313255662071263227725083524159012818658998857963195072869701423568951561267512558972839785518013513440486748597953047833207505948454186936653938417953709429564766444179746738608242794948248601409349028748547601983563736648739290128255856292924330380431209665952007073067874537468469878941437813919995618661408253789569958687100765671665981176998994651303071563857856369631841677176642747423831879679077514845323248195306760465246442741809390464764596138455688296831286672983182524745175789275459062005737728911961112774030879796589388050645319144629784388043908032526655279971262336988819905961522921149806624945242914560593419797440656687324612366849976739346739199192009562849007740471561754637839504192697647430850828044711654887091580286730413229781492385236778996278589515881376701559324414156240229932565227797112052311694940897855035032624466421804405910544948100555606217673858780876605760926809393141558433300509254579196267222419245233611483758619919663142744985221045514253597294779993175199885610626691244014358147074903816623082061987891417395535743752383929047292805552508726716762084837677986810497084625087881766975167781191761307262726744887461734719317394069571764503640885775389929113008578688840154148829687134869934235929494810537201730475532146139786634113910472485801162055042944456365214267494769953892511251229425853796704044400447207168439730384480334541590231726009024959146289929861567036986003086459401766139642166891809869790468759864914292453639864576523744336321833959516044336871802324820525557959550974406419699338458723241577476389769164216093470300226137717703466080074436605052643112491636509217503202958786819702125335571949711844041170791188806501768763293918316335363282002677629045494922939423877548528570146700636394152225324867222863127636305247378126230450295081795929774120223203176765478979619703054004102044783081329575443879221765998783596094676971134758685097741973952470340525733774638703168937672336657713673814368831006571292574639955849775084125153349210311823995318455511848652370887785981947875349898462167261866137191944778080233344594184130523492445195744046489510626748590237883184935176840490022379109406607718164414061804787707386789611681348903301810393742467734243060301077689068059781641631338404660849956900196682336502030800723826881889871464997789019055970101631626561950760288058595294247166390128304542186305702251084705937978315699220703796577184611440911606795589493915954672767030185976948298992083021325482574754813578687817782821628039320556623084035984344499947859157028627523940879574306627820108987459726210550719774104464294546365435150216974243724829814549580007921021348427001836647890488441798354417711739159260062406625312700463773163600053652532034356532724390200542303099254794709118279390716100145624912860834598801010382692416320643180174468700680637673599138715656998843491562129229193550056874661493552334383874588855698349886569525365687453398694925696833755750013998045622750174164090607737040308755374612234128734702020472157667879500972084775475758692217598859759087858257575694900518964071458243183723074494290700023518386912101164906894836702627530211650164814451739657203362468195511453350067019768627287573086516157321422791146353412389199276218532905917239148591183911983224004198332946664827415800051865554336466390572903679786167358252354856799605658249268835963930961439774990024822178251729041258672049393674278592007350870432728556325262856904740202834984509365275704635740822781710242268521794953196384358698784885527637174367711009014407344775995985524185839609189955501514560482840617594553323196032099977878457062658979774834594061964057838115861762575162153878637548621276452717398485901595347029245967223707332469315929461382134146379577114977557477841109604377983646445081257301402674142984307626045447062030556653165674494186337225927121064506023199113018091319362732018868015075239842228527407760127855888492714426371510062222091590951920240637951384306878144845802648134169424407714508569556270598708262206168389678011045675714169598989044029306063916346146121090112334484973538183386827184348574247315108742916657265057746333519637171488622717691001557300852135660886223215914401553702891386378668902876887549457373143835382990545678800571531110079232222916348484169525966959767590712976311563586850001820843405880535061064064685797094784316193577088802259456020478699640627034667109952367146439433099288187630437354943243956769496135779213350118460318706312846619637133284257295950066581371860507994699514214683027470178210451699167129322347502510993079653514486758746178977486370687819486966781414767908416682585341130730602033436886632795794908506482840822511308250854396522860771657172004564113483906114732765276373870982240770237837756362374558262922529767007180435645776639315021354958746992865259671828603135570588087619012101308177013134158659072191827103111775021413583318108887439135668649752600478815785679458074231487715468366074134412126055544254040934424299506491741940438675581371119586075081578221645052079285712367608397098080619931781747405950421775375611074379385533963423316769871369873440466239111163030200341120290462097269547614485212651759354818320669909017382668696222081921453984504130680556296162480151607851715986352983132445423115626690409886631949958456196205407780119972409440134104433195773049663687564837276846379749081113317351183041142741792723030936254366344503450865661544285826238613870587379028047428726975857333427956227415113374036332957809894365769683725005419921837431214337172121590935386952163564680476312700524624262987772844091870903843137154728067467534318669667026629939364052323014013505420492507460346755747895622603716395511091875921639939373541207996719871427092043623194367462247807831262050463430535584107695929780106409422604769004846235798831528974193965213521643588133025625926151039854580345350011796615478021850185242384610870670622246633930828715236568679360113817369777375467559255162363625964884862288620812425183686577848795225345988378914644940464566485212252594085019962289666919407885989272863618209568783256819766841369313579940989716987606247261856874036599427582831200940774648892885896112315119852805337135573862469469450756113188620043356016898521922453970911615976045632197356541419886716317144258635946623858734485179515009449041085663845552222316063756346393485210650745699708217501810013638908708273414942472233253801985865404392520701557643307833774084439293493691842374523332172683176515862569995035537987628320059803631351510835046066942774694845966383777067807231820616901608161518287523338532718540452585788728613366721232675555296638828552683109493142772690081615483497111549189043436019758379904597155569288287121212323593648276658620657829877129806196692489072701830784585002666757657502432390151011765572657583194444258669177422822446283813599712101190239074287514518469524940091682358051576899284055153855172122551645114000725628467508503938992549535340032130956470353548203614448556908495947126628300148141655330406178952276790877570287499901749099525115686255366606215960112884348070262463247815936231465039419218623040489877760343739897397824913371820370565310138007851392433240303052092444097507678118930963032384415633472343490018040773351158452077236486789114839020165483727905608912153751916076701469844729345800696895204417954755521228711896825455182620894899708343599423963801600288218491187793319084836801311989368313453847519310917772816081735815439704239054318018757907129956357583572608173869625748218114792084124321009289592262544866697053555958598751968896270431859328801446440902634007533783238917850386344144710177466509504548115639586560000870098225582188687333043669741646894446629691032397340355390449668780806597426915791079220002207728976880652634888842379532153695556136616182935819708269266916702517182000421458865613943869627478071905243118255394816082254456896738868819768859233609201568239943327128717880685925923778219926820328700660515390708511556738507169151844290203942446631097153780526575099549121963808347439033215781893810597882313629246729767925067019662025177766476696960107087858768478274433470959644784506996620096159788958453386302863390855431902437355490541531349959679297732007053180225937743022184163272351023332613230576947675195394282808788833395095373203599490887414594649842545902435933844976392146789049199846917028747965860358458750595284145318485495067898652226176604439401622828811559176652510824242500329263184368197523120688626546699537102569956979227538973057939194642026634011547967796274469114895844303766171200020117698249494886573082642756623115278591908147873397698784944027998870087620250196982529713499523369191607853542169733006894273609255554488687574707863760081752380511413071476149940829877577403292428007881340313651993645495004034299796592754545812126603613746185079625435103553828887159086011967616818393336951753649983778726462470133164110967546046391513742233734723902849786694543269171989384614165919755525385807442624643229258944775323165857050999186799801083061131822412008641134102786085393526183343051994209748956182253357380091066514013665526110029804390179026331742322635142554864457598907568906937098866613439536048424694521152005587487506705114727385051394885598015624155293107443300598332952652514650236433878267375407738218804345232247072362655096629102468475621253547373532050750035430777823379986426615337513796156953119463654317726625834035058642660678048875404145903769267790547791458592992978529371600651014710867132519701755016723378273584238559762530283423106243562629880249943450005029411522789110398383110844289482358713653181965237590890238501531608651941878405974363367749882155942525088180464731493884569416280370563077454815138206897751766354441387690919877342222688475069885847337758736619834470041404567031880972891649691003349876999226872943835373507173033186522637351862446748471461299845186629433086683769250699242853330428641723315946618286077030858545842711052645926422839700776599216111841913042096540033692037875374031293579183441469478813230613041979416947310482916789780771197569643258883378692341824243010499311358098576742151057617750115110409154454999206983101105031727743402494002928357251375598835820816677712431388101635678911813479248460354943084431732477646449702151691339988925308284114773681575585081139763358498023253451409764073171690976895862578549675892990676046967980141828212613876999610383906533423227482861771621234533625877968578487827388656776310618259771764799066710309728190390201971498955462209215509246864893293953589856297868371386719354841750964650792177687860213324627277810820914670212580726273992577439615399233363088409195131801282005860471448102009244803168246823603222653616887699092433678085728944814113165737283794063680165209869238164031893225333159892075125445227484428609548994302294364868212361235889292455776363813981439608982579254083413496777843054652847310720552294605527777361253605850220638461576778540614974223845309536181859164570544822587846290249897900636409717368839736474256169826006276449864183687225838470871121690503486837112476685147653042297131714277775421889899573004756784831923197865206982922334121723182446109143280986204987359310666127544441981759959186487976288447474027523109298039588990247362670990540658252000757904847954136499390558622412027779419906455228787965933911842218621283473395958506939997647239114408581964671704716944270877620117755705517975332651317839964733349470412808730317906166331004548501421071667144544832063274641916627377330014179364298359066633322886340261954371053231158811606231188077760092398925331294686841206378493864526741312085422281645820753999135789221779750192874261732650534809529946919015590815546769857225758673613078019292426030107760559720777921072378955863276107046635671998305322840100937265418390255560603630882907290760590702822710203017363548836173088676532971758813004002911227836220212387403797359291563346142205125266207597968546654979757186533403774080085543878994181577318872202705028965531664405725904868476583177106943212330887141745391749551126440838372185095710389314833971893324564634661065384677335022717589186398712307523197346259099119040966720775358322334686083992967756867615504277673655874023633269873601991545163593372223124090804676591775047889167007033669656871907569831229247688386563165920524639915193910313522842556442850706966339596639139074015639948310831426468473971802511453303260760986347595605828516050799488880972146987275986044940992992717767666636086313178016568167542213874243064848702249294344289150379479820270324491275721030653202465769176917713720171765674110984358082002528676247663879231712003048530124120007922879699860938248216788419653024411194677186041819932676698802000080812982549203045055784395216588106482319020681525045034902675521722243024360966653643836939569685248960792882388237241563193040252864684773919219515084549282488493658873532832851565157435736160190462477319805192727814575582022169214467548925819728825618973260686374301768018333516117075149749627395355672753568625203453044630708132397627982691599476573318812353855756165306370020979333051183670287799685680329132977608981926920968925918571550451390403971331619926594298231951875150145573256124811539247414453276456150038321776388707155836758245412095599501647091970402127409828717837949514526027093183708858034208839802690157444764199235220356439089402348708888643514928288583638264619307805734171652672785354545734668096226966665051801998021837903174302952239855974421459854787664148337795190698273207386480846969059698989265432530892833173280933208062538420356875945735057746487769287649043082185911369447840897533106690640688641496200973087414604649240111460585957782250351867923874909884034427083982907973476065149345387501245246386831900500264007528458276855782091349961396921514192534569589402682148315070039696085695685743391979436067647455245615521942599873579931925192331530755566405701992592325548526751937297465995407449666321992239993739043223031572552672520966208931731149064226691813054931879341271911278121706490149638883373564763755358866270182044001621699267766704720812687469368376935197124302531921858875739324120360171863823939479489840947561001591759998713712421909987537037464372254064045700700328751317386535632765386510496941879092883313859513833531719561392193924864893357925988612901597929769455896829603618257964376077042527720930177380110980190735116815254682620255138366833030179647912749353948751183554656719552999466534327149838145090832542230040865752325254212902858225740471897924019560208330617334326471223185124196129806894815094104204366321469869129678962744108477341348246163902048829747589131982169072268694480712756519101452122656801978253727324224306981820124533510225805472876683418595396310062282769793838878108608585803067586002695288638579022795489669155228604897551360057587858150376947789079341703968826527764948084659206663033899480418506812615109073285367920101494376789199729361682289283316324646716897512067628443370031056296664606503011498610780688526932826085141200889219408819884723468893575899816248101937918956363113427112755874885398634205642581319914100525261567383002503109800629970381147525115856103828228901631724077918446596998145969386274934232014175937013108207944233519656464906141692974546791974592028336194670140156363527534000811859900693614476762935213441566550433953220224063775759546112881740455147392512691343632855795713729812365547775830096464624184417878982256520600308643254358584171103687712302607893218608892139708375074814038729144683792156078939896173554702962717728880730653898734060202484785336934627507033605591161330122011992768952484834382181324897721373820733950256064542000823287867041785598824231857653771943750204705784142194219432551267849828530370542002783581955042685506313979739121833493891609233516004417653584102693410393043632184060269460306622077627481495905994787159379861104000045538546520530836773705723830204464862646001652641584831511584422159484629005383909154758918222063104158430449898221776516471965132482358464583319160883786071481220071753949180876603374788687820608899752441707503183959676727873595520369437334605621049386577385839570339725226896861751582535378918456217583985614947661971702646083864527873000206480679559203582221901199025782128727590864640052197983466548467285920200570337993980824239713039770141171096071462143577353250088108839822421836815863617925356538592848898303775676021669099190240346303639276481834101857588104950663166541276706593907805267932020763875804258791169573157242420815487956995072231961447743920448241788667660343230754910855579196435289182748203476612045182773834551195105773804278187917345499788920056768586650508375455162433570561640142416409830289122737875181540019588263343763282438926585641783042733062772548035964586959860216961375166919947485639877904630708631872707307628797794537215040206280801348949438051742226461314074121516902192650174573302544455400434954848861287234870602365195108205020215766300761252626604029433583976447019529435348145829247255810531513277773787322156599937274919652366683796103382388955826963282612164327276391332056281823635559529892593615796680402475991342608653239699121453498329896081200650349639226761487233055518236957604714671975882560315262029619559205018624882795204867289350728979625838334078716816559584167568353866396112430492722921972982759601712204317544152368801391992785748106956289653210602651598666885864581706488247231617327078151063146771687746088036296263472346102302877106365262172376025301318525329416540029331444158375415534110900585071347696411149210755221072702794658019109243402161861748859874687463757740121590654417153025432544853893253416324501609243822810738209861945235923593090047134045718143367752127647406892171854150601991588443641251406497788579965252377129828418798601260192210051602276625868633201223380699465737221194446967804462830253234570609828687834681552760572175654295658605550943680435648055215196767592883703724920196250813702751126381021921647301609075765031204590911800744543773431534502240445053724525988768184172282813182201852374650489064532334185168121081090023404264340646917795083609425410325899409914099320612368899147404389801566727201446632540465532945248654197490428945262418345867341490774903676566494130190269138185042289440597374188690894455797306666254036108396733086571249985252172252325305725406075599612849862516282951709222240891005045089739993257259525362449491808555284207184081626204020509478499091413305630453265668380969746857912488193833360784352986444142390622279745033213931763998662344829398041931649375265026668938163396385342973656377296151805915287095709881513197772955015365735619672697541512911403482322435997798135254263535467818418837363682570515524597194638746290097287788166670372778939951560872768334086582159460363512356819906497046381283542164908525028805728451985985024092090087195670381989208205315576720921586799189180165513030479520188676496161639522203683556019669924579362096614134813505558763889834483622435580524756679703033769670855459070055779642741901930787557431307732862262571905720661170842198399977549666666727296914031330189514388047142326622927253843555762436420185495735829473657595334628565705667990246678812681877479045901585287422133521562429146716387850804300388428296344686318818818818217212389411929877991300363912278547026796380839071338151398374145415107600625949262326510655699790337984794266338403582181834449931692295691222709964236550056432129441538318404751363933388039833269967384437510241812588657125535226786070926724092856807990781027374983609740043180447662774290653524420185755331097827197921306712864660267832052369518842473048426400814507443675574816308023927180971924810303699508469854283885868435764226865351884541338268892035927224864266138486687692584542374656793643414205924132861889599010434267439195739558985090706492061279325568867981214330855213176786520324968235940486736620853208479713895819145889735916671444870210528488012785089184955267401727710629743836975244979231221642976272039167811943254884191892757701632805439653914391957584897340565716339279865912868680520214208677471702832109591679644535007509400723829477771365501317970473767755797637063121145976716921695152984358452696436664833417109296594253563965602632391448734299160224350950200767315383628400012221879934625412245517259294817876002211907622425107173749280357331965409447863831673889735489896825693369630705945248343029950870083678653299092866347564829229804535489562415011803575853364627682585896196857590630037568072966713818930009954902653152490260303390610375457690519025589686204231118665287734082212522536791241917558015204248393659948361944761299635600466080578866042707912728793697436094835751929715264236763282519856758791601263437687747242869493895003427061774141942133209273564310410345762727411865166664144655078744436074578288550554430585027123704147074086022573381549942049980944344653938003430541329326712229662732921502727183250310262280055411288406165122685116488882789107729515121839603770904606914011056624711681476289688968705143789666039082103066159468772893154027884257328252696867724649838632818710977591417987419687227288094264107072673104118131277239909597364614421919950628547609997466020477809020088917307075866650348027750652949710111512321151339424450922138495597885789461380827433790863009196639021223930907544173991600066282372947079204498659296352588094692409029882221306882597779328906865732772416369962704533411243002421462811358591256286335136420188825677258961311047341668284573025839256899820761085633022538887369698111983021318413248259549014796896919129143535132721569771048886321795052604403850124529369324590419122126865010775445313438302100795795440691636297526152671582680065188157584092825403317371072938402204041582440894882801050568273271851828692137573841458005113247597325625675501429168068077567821674537152487432480760040237128026267786599130400812435823010195880753427994690128736976402400555326818038122574047315018526776457534748097561948781349629029794269371764553784348822296508656642852380063848466562587225100549667619025113197349187203439373435195571742869799488055766710359594223453428891514005399044424659510517384144481947330415510762635537567675893161315137737917582229995097938522386640253640521789098383400374564297406169382261679780969883120142005064684486695496672421013882752418590979874280174280245672914822580323966491017505036815920286791171251301090389360492773379444657553618905750528531788518871686904564398029519481103768262676158056432232827836904113596280780252252476086251415477377076786293198729534284807370230669063743597153972936935717718309666224472000918923924842455020917713129404798163850815360555475890469487804461059638639721716474107367968024445788163200429756303295985797901425980271265950319450470963426958169172989082207961648462481680091178915069127127839651647922101124004717234493684931521795750541945279028405382896900002082318142066072230437222796081381315153487065154766009613785320568707030451132286031553530066199090931681037762937774324368327525736765457652202190542996443330975482058792608810635663141718010129251311808785723063829243949591644140766572559056403443576823537351159673641781903502948297535443630099391662571204935733156101253775740242135858398294337686059804492818223873713279464930244341255341279339074105582205734062222373821057125745326422180885442191598561384414662629171923417130542244802882568264839093509303536839370739652836796270764144600437669730468961363980517774607326853949479375272265917295899293500048947683544581831008769449754322520711501294835847737563129784304668950274341207310184861205537280351541105509442334783485537644100162062608175889435878516923587693961117777284271244707524553902992012761350978787275335549560649226532589856551412133381277987409950722841144881124763203917557308908783289772934306339945097728224917043788703692292472647747433230945007981169152822563168203936315694997421442300903366910359453185161820368792456533467821260356758981130322253672557423097045440905023565764437815237731882303273512392124832588974653358036264558807397523981231756318091877300571571007940694483508965240820086240778755538620332228729388526220917586532080622681573540014107988132504361901276457970606018200432216953262222364824830278981609704362163354284892235093450627301806385103268699110494282477841085067181762962846048391757693742737660725313241891781730207886457525502594166058896386547259207692961814532446743200046321083311877997869518960033049697722668849270615987959150972517779571069538112112811756880885504938373771957135136678350647910206273485014498648554982773504811250079387287115057081983470865954373704363686708981717300778537749475429928846260497186071197419567275478689467816538733770172542105576374409918534773746562817875074852736434660199306359334736428497652599493003524658701570232624907225673980045936192838385784144529887932856757732589307580891357412627642578113788220931371705747380937696406393639546643327661958230155125447705435125570965420403389012959349350883949262330433923043336093730170787306624647509977482447111891385539033534245429642220097625726313676033496142629093846129454700906349547525794497933732189950530850623592443716114093049810981686217862859995519762799723741446782933016227321785857220626314243805454073299365127270349997782133580466878184251295986041552142329463300112684287567698824655015969490704146702668989807047731764114331034917006350641918496024505472909616143245321806443281430577661451766439072755233593734791896004998916835668891284393448476196142381384412425269008706045432781540238317056030568966950904063196155956734742692387007846805637343873026261969130381299092751509002601218144952669099527382057584983138924665023646268119598560641315881750932961371802744223934882874935221880743261040991606434038855211791959842622480599871850477656843505697152321605700733616847636313722687197913343407315417381454461533441451550474850402565661446190532705947495189429519459241908499541155986535607684184005542543856978512540962867524937658661008386457822112387569891906251094110824525773606867866582761694173625904471571796329092051321966111094434557792262541984174335479504101021574704647068118602080156648676749443238125113952141692823820815360290875976723773714165565215020405102849039064781899464216790116354362902449686608876153770259633732140383256970441767121971217699207969594941111343158367718577061255335033608144782865220856352433719568781551396005901226301131183012319931641129235936150719795443919555917524471885963210663511298614347936249954695081905511879949107944557002483844985357147869229548424956532621234986206688350304062728644755881603980952660475725784993450350994657568373957003239705451726042130986176985263746182380732435446502577443589182688059957245124671214609586932573619373625868928295985317952175238847867265636973007009994665245928058980184473137908608071293941921622557430025681942285529593757665679943304915886496509197410069703511349988457851013544598806254187051940781480661544564719899154879325536734876265740685410029165700221362723730042905485995740068662228046153782482038985527160032600983542539696735656084419686462351749791285442601971908884042639805155583238934580919349796144185302568536358685993170499857483029820958007184078680460715134332358754236166082601470231528709453316309023818588348936138466912807848604488783359938170164693158354711546129762309258509345795220762332659007463697480496536202699461250313408309558117796129656276308042866217470216565116112484860197064067673010933987262550234122230744071785055281179643582603178542349545281056790952186764341183636138083963821542946512872705910654911902190636027529831399960237635068304116998295074637755964032591274823508876331578757469413273934551915936075639959400153067364389213551046555793426343095317553156836250269792053342609606216612024467915614121125058575649143348356878020963724433691058380829818522241839530952540915646254594601987973405843629015806281367489826564312358646767769915383755476300013419632875375791502403103192324687547837584093866464144245760997732948188309424546243632726344050112843528259038982673899068667823035109260799283865913910229541593205172506164543924902431289808529301005981680072067722376527379685405104995235543042182175278851164722701533234359213531235708209100201399948380256179619940902943157203938985884718407891170638737801101307182544672435872184443052164712737638561241255738182649341350024929491030702593502724004897346438571390930208572506461165540596582963973130551039634276274165397169445935598912185349141187636768884192419883467960379859989463240229543551247813886735635635556278298083806927748396846912084723395558779921851060803398417744303537301533479975617537729394673274992167280747120521530928629479275179271639174235086846020777721027525193130801544327508968100680295708809074594840077405995767688800607271379495532390472916713304513439519808394410831996720403623299915886206461444738544292448588605186663184818293714955538120352160859242375782825571282764235325439409271722757415398586373520039759631773693064318101152033344077692895630192585538009564837459391085347010528177771898201645123952357494120543304461213689311587658383839634718642800722276882701527580397667370172307562042108924282033953470891746482791016306619041265357314893564948456210749761045703745709569445432572113546206024232954794628622127335015073161449293328030644427232671347371485377467820277271652472951475345709551422957838539015389358847084362382305735437427462266966561556684887222109144874261514052363251665746581775181677440593647175665739294344811291666088185634438764398963217131396822883547331031412219865300141020465336495484390899397713883779784874842982463529722169966791697363029367892931558383227640984265903837215738034693245617485944813818203475412180436831317818918175587322927410833911020644763285822295005828340314892070237775088708752469675470524186649806077522207342750779747967556350893932034248985175563685478250350618900608959024607190506780736315839648215931704630350002190702568992866246226141056480451696977344195572226500326072161252365909936863339713113679745984518551428599409763418650261880414505627194834504849684468862842172167285093198606433857655172906911607904042922203955457998054578154222640682157535391227589902430833891802150497478133868991176413066655978322920511133220742271483658999547812179522048506954144860957457894234563275819638717431913939996678584002524234653937382148897669028157057772605027036367487782566520121014867879261663667588247960307783774426889897705140578515359373408049193924352127852001335789043417902985691472144402688405398436821091590249278133278306454456055342896009389665544349539564969288964961740524432616428672685352356350804560148885116030221386103399362906015710653521237893433992428791039285797625121766767599520677528841958163693890917228332957180833081963446700205140866791891345452517299276897564697191710716583932283438881942110776790590981107730606674786731352375940585391771001229907918166655540007028790135047962193862858692151366698841338483133168451683265200538343646256210816941158620448576923482030100291911880233298698242998621172021704327881481425776716735712954173914685355986777429131266796238911514049047877260382431941952175807159785168414434920484023215652031731916540727572172777360998936640623874295517997914663075170707545047129344820417188364611172148101779156690452795713515153074186297833457911642035899265965778236360955775043689683110069678950422451382374512796030984301311678395968874898304840058201197013248463431215766119266117005989299410145194766380197250009287684739172711035522391615725235766776617237658224193920149748171534762972405173198770228408006543905840191415887572084477142982494724212199529062069922263319646056934228357783294680118380960007515113363399386455356980067045213905839264990956274998256010630378687508289391767870040425566385600546292951656185206695814216845341687629264692100637947474754631629270858049015117154635092590564695571719223466459430873786046041629857396259127000346521825615522944140083969086727917973835366252401671895818340449188338682996093415819186718554315177003246503609905739722413430126057619691501197968157816504482565477543389236003945094084332470464370816921944305387250506356607161906756917090422498104736014629958179354831933260711554915285652708085891076098473100365737749008270097268991561955583998854198320860941075072544998983468812330595239197194188939415566150680464526780134527783523138224415106550477894715812221819171411567273015407851330095853025414589979553453850611296759920745109203486152758507456851439131888428807262321069004516372415494016435631566095082050679286894512032905134033208126412127699214238444348275606064445825105738350974982178976375012811276689456597032784494521051178591607054154083465919544278476586913655879911976446181441092298496644707952365138837783104577709699830296713623154358622381192472337411351094977039506069322148838722474155599907680584530497083941655281074141693885720146666876888985940568938083793653090863914665754096404531538616764989762703289357601929332463114370628225799853705659719888586952073307944532891651612310829485494178010273605494643293358110639613670197964381346446456128994104186028097659965714290110735226353591801615616715920596653312070843957670777305576617308606025249047163955284891569035151744872368550825336891954974981207900111301265496166913176476924516131312805386856345933724926438700550445313498300299944629794158104663315446004873230585660238858323503884379577145241021395058063614291059085627950063240306716204340991307936125474033654984460348566145296383048747107427312466073347597688875576423850902402832528829295520832759041168299760604930458760125451243012960071434046303801514997630221081579378195563964453433627639478431206999979849953372105499575196897049336577825067095048358316355806733689019732562197035586869525211754171841560651741876297316072854280556590209048922352942556202802106452623584273603909378405319633336096911663169137043417955291405807869840389354261521309364998186248590198273301054087312445908509520306305719889815552420845369148880817837642201755887162376320938151319638661759431020199880331208986549878411411859977156200705778580696374048357781605381682393028474666470911197893831823046826682483982513508561840381331036532811953116589750964204137349883491122940414882937134750437498267188113139209523434627100979203542428414937484045358082710300736697928859851429843446598636470257607688596840063696460630371588912670166704008760933463030754504828894429046067820588108355873661321731204299881325614224558802299750707686411101515864980815284661070837467078001336201763889063469319534616818474094102666613082877366156872206046748996524501096944490095705069768738383548589156170690344591975034713253670854361337287243926391972805638128949104528158536480567450719445562112546465050694575495354341900741727598235625370377609803084663777618078110553891151185161358295976625065738078361043396392642721904506003983657672499768489693599944886051268619519205378403336089933126143959720732297117977758080966324771797606158300407052190442266458474249269556908537533833986372237373272292991523533426620220628058426365960286957357929703716852642017108957169228461054449858226384969076165366223712923717407375317916029174197295419597815872206418132041137571252046272761252237834282182768744950501689576078896508026561647662745834019731406276262845504989068150562423463012662320476550774838709240874104009461007114138952512908389077814181087760506340973859560593690145879035301936208314748497570309662336517320413249026220070097943788041110622467879700032230530244720674742690525066474419034863442782078162278934207450345414411015094094699176134544496660172036694532334050755424801324934957805366610769075303979894755281513419651217292476502130674172211344515166902887455418309947129384728315967882489596263179361246256454184334999273977698657256658369536298702572812404751378652960066479146389554343950299769434486833638672758522624077257557815685532960732939657235520307857148989643781254070629898563863469953896945009592301228567831994479201164607216128405327689810391360544212054037066465245316874799060676810494056091900668705952359658875275319554692554488901996570565524937940414991871990935212421840574120737265287177272444411078454466686001626499129141025684093022731040909972613213482473566466290691122587135803077079717044221349175425222178236889741257554121339794119909421740133486859662211885983701402353816630464639298674873656706059942175904517138408100551022103326741690069825783305177802711381869589180141053626153998809099880772482226884152286016259291525641597640602070475036560724509289652322094317024978659328588703817556392153109424211612209244602351198450226118348121903069366499240005876194769455841963953005789505149859374759592741013450626226428712102811365473185419282190724509722846380765227047016189800867196769514181439107812418993935754016283339775117108044632124481359154766592293742479205044671274925406309151767974693924541632616098191077847365592842129448393627920260408727736658854028087946964689656723489287878468282507873079638022576238761165361757616835670083167303127547853809845510784226499948263443950392711219132510721644368130255233493388618318976493820795581760373002264788812937229011758137587439768739333053941447253088443244149435014993586519379334086514475530743901009178315406154484248196934991005527327320916257120310690201081530665133949423656453765784369915762891738067995496333046319641392646612897391559902317515984164542397356310447379127627787995143841540368142075499286667985286501795333107158326179660713281741958181481678525791013525031515162194173164560131728276957452418731863167110881091449768849535181052003377724363972201482046169862388097275561778945394235529445737759594641454883033141740566974265260776565300925748370889393822185917423511176024584330179391757640120894442919425728100622088205678022432579315288476612812885237589528940442797842007501033032785581784612385131872268781480107591353546384042173673784401597479014830422383053905273752002102735453482414126965619342666306382904551151146630079410655754658531426725742342503897108589500067631988998776320009028520660525095161459160929558488491568409089943078847574078020794796004944896041645602105909864658528449268114059083936540281038826818646653867680343605434232942340191241240058780385019691234541594171975219235279396230153406401238870397694422700948226043763388391500388840358735314887342647388063426697395178164057716847442700149959112889430737037143719538190160318567501269665798466042755692677394823290464839467958991814766937532103691369291236389453240047367187193680429563740381563052380140184546130267033551970954852420890978372039230776710085516080406074943215665198966503793144424163515249720421099485589220419440743504224381076693806173490727975531171499278816877355815734134777616556618184802017657921249504882179928872028933380447170051546855112696927588032402331032128455920818352482211218351012752873118200444296749641087930881783307158975159992349310794828026194728665534574705651444023538876964637972345880747884673314388200337158121513988342703653436751191558018768715365684623859492876301215418866765147326639692105742465596407233055124532629740147581113250280240171231557772775878946681791692454869504980763446503179521060973185168599626915765353559444345990584129606399497385858161070830171936377245026621721167858013717528436612763902155897855339953140604666394271420471245436019870821481990204203067431207802970672232777670394383395427385384886888162550636926339721429175394565080499630923160853737869511718745228609665842017907339488609841108534074743205026786918740085620051186509772370666483937746054918575556384581737286560049231243494316614777431353530420900561246227248251728141641704988164696095777421082509979818906734462369958236506379685300768834601077779913389785846026980753404549917091905480183271017221100505793651474876188859090524657591126093164517462861305974514446501220618270586665797845650800535046285277725077560255324239299229767567449266255178278395227843765813659306141758261798046078671020143124333570468911691424895035191054501258803324880324615128989111252499484825060292023607671044102664828345851634460304835442158004658035383348196794394117769576903102869446953901274892367536646205156509063937354572598337845479126529450874822491127743834698431574019118007805095496248835992976120198767169230215966936064371908408791537954406871039184333635155603059952048667136510812649002766792924754630608606930326623040901239165815958864710751884046800378244716489357864145907136499471572956059493690351395845935372846953707770232024942536577592065895640695063148306684513176650973980860429814826308301529478260227508625770535725484134556313023357589446310312607751564423211314554627635471868466109792547580021832760773472739459606445164879156879532116339890724010585850067382917227380233826299816077558040812630209501949941666482567902032988728197317194993245396353170193559092795217119365806116997053728717711971678365128549367872728177157100654762952293444005344181911961710134879779182028211513192483170235341055173732007831510808927999615150620711819752560550054672165750842058006563400773637407425645227191753325722193824423144954557326511326688454956886811125282365861683335622449243491067027828133855564391761424003338572037811512733494267618181536033540128355572078476060971184099056520133952538534791545141576652002199663046674566078538836127166046227556592965351329903319590327541010253899534790307524575959832204199491938640629677516507504147685232267540988924922579736953585588687012821962517846705028438199174677480341924613136169226015782531897447420742739090493478700617724134159513299388506924851170252939998185289682576667601235613391285024647540398849803512975576825148251799518566513733652306199453105245649409508199963318928481393453198879672895237279304830758181552791665415823892348589581035903222098992760393974695413211458902542109471870828186949059819224261820570639329667910546191766087941019207632480489753256817725603481192407326593730239550770489113802208028865164735716194563329348151271735222176899049542293325820812752811507003051962427918922179730157204652976123343263930293961170415789644175762185533527198554648881257955431193525826235656867073988975713513677686147807280404317211088924607670885234055865053358978778099854283597537577834179067684169760966214554784315840615769079087897922761251126825737390680593018898363219435822214199359602643240300445312141712815258798763668468093258105035490805068654636116415200831352153858886572316679036220416132194868243185385612773031653205240685151300491940710496932932346898457713369919917960365696081122007736019281934188287803585630358037113007765058183170871450472261317253927469701810856376212149236395461393922075905836497578141302751648384399361580103615554475504821964682838272782683758046898823477198296321688133255201915367096463330111004932503897220138160175825641160227992179948342845437539537921328992378257249114599219748313234677865941177055351773934699206978732504441255809248250271180359577203701179423453033268324481601179452934152788512204448154627584324887220936859707839791435286632875347649039558683497906905230014768847639134087599881017153792285280837104384594732552935443096415324002724626682130999859285529772922476646391414336574447024256081563310830803203434965595280118846037573457045643757151708766097586190897922877972333733366882481075039666744193518408715064839105010677768854964413706559609449713244680977315937255292744632484011966931091174778344951121867846770360169819711683792990114402877629287510811684846262528661598159727763395470421718794055650604545354114309335968227362961807993827180254000853849868440703538704252709997163464860196236845273243554733221130428947459927321619948855166570075697429100688673042479685798647559280789629659456246999527620330674418003921340307710197299132170881167340366317987633252135512128314852591937905700249354516267530589721302258068516439461112007027830837628952403681675230756990743884710167104873284378797641318528181420245863119910663724004923033021311229987951828152902937234135364167756127741849051647951192560376249934487937307109068687249054650791089753420373906530175451467323554817653862389152207685052696881826714360806279773239561528268041280594278734555379185937935312169008034406942396100766234023281849840045702593913935258120349524280141252966801761270064192903955654119668831710656542915681734424562173418124980147240911831764706919510226875353747911254372106807074987116794954549029912757263001223799941414012685153297901212591252057889944537027471775330188288813402220435202730055128420016503042473807900291067766786433613214585408999246927849230300480971463074686410139438708067840670064861691689371633321626133226378034360362574913645985358184592961887731952261865649034239358407792279973610030627050350606242473547304896003427902942080527765236023637190910554346536850551826421153008123233605126719496457972022813937888632173957611850082118931422807913484517167840840113053991587631052918094788975266597243271239158700173467072242016968303297954108696689281831759990797165814368996276730436046398017925632941945424388795599636437340459285987450946474052305399621117131761306773494200291077993218448375087304130017261390178992079754438146999697440281048294380394660424430141650167727028842588207813342424227810243750925974930810000399358993558285134189330850249645110694034249056692520694698332555837987284419032868974047218574907904636166343029266798474668058342136991551023151616262356845793411630480800981297263326330597692658605125414621244622132189073398842337565195178170087922419098280004509009491911118047164688829007006982494112404966686378302482971183313424559479614466318156664871618595993415413013268207797489216496235554829516086662255088601482331638333380754381419870065031835558567861703779127551996455804576177967393094127959431640890266823852179082983622899391740617220615181954247216388656518446187051450255682198145938340333713957481352350913065251378912579768544675358975668031437816963715111358930815836716674905256268958063022030591765454885213486996668364645902428009369569022802113075090001091641436835558250496888752105209853000743055098885319153515781394578168305712672205475921027660977152708534189508461652706334788999633024919072709216828608070762249201033103391572251403840329206664350008748835253359112072765253886793467860202959172348148969907575019664723931526190108618037953891674632835120678402116889670470441621036170278846310680827110130100935088610137175715922288587348181001891916200345453059605116759841315119800212248853424088538732553372609866049097087332672223036803373611920258823867383002521787999824106612871519893213165392530037269134406412147136862225935565842211630665627411212565906864705168018917701271284438668972294544190833680047171187489866462338779142541043751330141239482871833272971554441367290655917323400982314505975532079473887325946547592154319597633246193422356124718119429451765956880314186678983562810224744571555809260955252349477496906887154568945720553692481968596167112373839389627358863957031441109512195471586157347931010562191374781575267208293353208279350919620888006397571192686648320347404217019639828785956065503062341660717009517148841120667685806382936386289143455508906877608368737015255550990968681499196896876398491601873557374394914190168555909703578040939490191868197810198573409212572138222470833556188994597830883634555405938743251827488174732140784952489237059365245730335642793496260655178893719242512612875982786148681040860520171629887062142040252585751197990583532674004697385116859613456623675184150342211361514580030679261812964831769229002591319341105203854237407220686405807535632322097376178852939877558605399241942188565029144159025614699766696007449524398593086204631826103858438761863767224999218079555489945061829642808982252707353511448172660496583929684520098138959641891915057278685888669631829481736699846237575478772296428733418712794172373863647869424218326696270079470253822884715534103878328257125747176271681526937458414230500362186928630620103263642216801744611142372365857347431515807803948724970931293110521884840432789360453760776225438487296378386210501537414631267001728930657177016487589771766504100933354058032681221784303351628285325987125408475110041537511981845699998755108578779169127898804019572600416762193035624785176486569975434476230276761635255217942558947375675968552985673367088835595260563519113495538037741873381029918366585475453351711992768561857354634469224163532907403587961866906515368482951469866877768476152867021531972732840490157739713941954551953335564514932863492189346648172286111947053245166119225724641780440232846956943772725899731519865050109497667383091079839872038068882637640657080667127839281913797639801535852549626100915136435628619175600600976045254995068061649695850581602378258637407972217798352524551998379245858044851920067888125115920302757843810118908229611032367062113787969079875294728978998618980212845757982121658795912602840558727095754911073649442113823153214939522674283842020712070920177169733124547543893102689177919353533357724414126418583013421257582276960301482609372432015628012737069595993366906065113804904460534397205632789156412601092816260522191987689645562731747174848903844398440839468337114236140837366298342585314851185050682597903124709734383026239626864954391278538435211511713776283251894817314658642146910736750119859731867070652553029839962871263985259040317609194994549503029999103198287050148055167339960177870834544075841882375615922151058519697396348233590224739267631122134256379449557563437716046536028563356339852137467217132301970310594720959502889328191234678302139071334560498454751795438282908714026130744088746122881041580357239204967108587267871330313259644638051557459125403845963448444476495984198071998014905876463239490994436200996785318816102640045763913283717995569490783837401157850545811812310518541582350167886191389870159156772942479023471946357566911705134203949995521685675013094662643548331957476387566138783125718506261812085575867583644692565453105907277468264506025688114072799966331629476467780473581809130483314558700500179756275294007915455846613848505971807202166205026298645002096325037676387594081762473011030911592919657139717005726804334925721680187762950145956146150831957328885528132992926815868183531718729591896673496273062654289419526421981084088832773854883714589285331719221479629636578982689500276888254928854139953117984981024472909364633387329472044833731921411937573872352523022423278982266682085098698928487069352268742583727862289634746117875901344002862634161751636211791600109361650819641072738443444577889427418900626890197769283908219046708515651913003992567962922639201282875618239646217692669173873640871628636564117786361835957731260818980484420270628918553868302696836069582867585782393690546686121537173359249567168661714018981487246888787356122442928773551177538052966196732774145287207951527998096026979166334953569841663059418371381813138192591881074210542873122033852372225477014003684111466544337054505421718817894766590438915530313042348376913437594899258863730409243363271187753103031020078903789622002835226434867160612046518791728132321739201299890632229104415005977705884339884880552674909512710927940043586435720221600102216214402326891252718215168702930365743697769483322931438953815537815023453423748660968031431110504809401089368141810413091062649033358381355082423041541865087415131514552403222287720066445450896493528735321670591846582561286245031081238904158541177384846928344593761932704819312208354773687629768644761120188185293327270394415026190802446671293688761716929328617662607293709206268847068027521119638387890280872093665551894483209772619669063546598361960719332720159438195273463481235606781507465553802566177256501890803067017982524232816342535334687084724560154078198900328069199886630952232649180480185636705922304523559014786365492922839460219328266414898568640768289014982333622009408581597418397256798597696816433205682132685982499644464283140964163303204772719906562520332577425879838440776851459643504058437733669851223912948399994392183979767958473704825707597950343097089221613276683483186514116694629056220105995509658513123949892087848071924738451538861627146892503712400051429017809409952553747263867609285565816837045738231565748743721761206792661921336931750092550797471541173583526880818913817809519770387902444828976691740369126287699554660009299398150722339761058431610412535090803790795523842756216419021449595898773571510527028933565136547200495426571919207603981231833541920576370763718050560954392093755628906103880215195501439523609520225221516816036293596860452466585654289699146316194708071782956637603582227973390404909213418817346636339233751181504776901583454656733863992064061695418171089958797517158506962754626244398546005644595695363823040659869049733074733021480556002939360951160231025005501985561261185889050369679991969911246814826512182163766452693388840890371485550209262778519961358705485275715379374084253786460932406388583934656463404324605130936293490814677168573962828671264516016398447430517466435426480339181839027872871006735373006003822561956385399395926692640634901028740471030507657759505954458927385983579409339983155904947305319384886411947127594430672923115640474301306451180207008906388168558053215037387289898046581019476160627652142010292343850601569323560146569249529427518367355796235148335350637422273602171954028760914427478553354604486038227347607500134539233908950525455377647311878593766818664974976307593098485643781566641333973389512780952805685356145217543220367665002152395372288507519645059009212111005850764642633433399699904172244874692507040075514189400008659201017960829663584820925118868173218048905370695308853829936375437982936248057483073859356848257130202886975989234264039971404134667463641738761221951979766333320695948935881071176460839427795394547140661519324310500863715725811677405560005560532803055759131685628892081032318341408154450493198911129919620058154708494794188493820969384831050263425461407204241684994223202104383356764362238107846361572461713020904477231485535857456801975875429730117510468490560368933543030526187554954396334367851491945528034207580173525294111232132710440103530131075662652872547426341795040025154167366068405168405791680586581971935698216583491626698252252745308793102592363483346178479192544496100625812176814340278750811536979378886784433265853650379409923768976833093292761551688632277429577670006085716835944362891271314729162349266688835429008735336123341827709399157102045305562463521729627225377259592380644908680473277699894710853872606360836278493263510033290357334217176609441884128697495525306333478367389192897355270444028449353561471634343384293025780486165813761503782328903521389435260334891065241368800727413521984609568802883574212601513594850904041385215556079598623931977333281146267394869295903906265807658397737167361960718874051379536658827256763227722318221200062112393291389264584055908286929713297776124414082657389437244221941077532486124052389915815501313282785725000388962267881477019945467414834379372359551740583364439552460833570792073896452319636309864158088886430863716958147938047314816810553425621773552308027468804061115166521875888717492761922718279389460752952053284328643828787381135852532505886678605395848785287898640650910371034866809172095275280486815524389752518794078694550537003846188490825517477662302924845267589904817256454963223752530008791667470317853794166441523278744320300543345766362415958266985327755820928084572867688051506071463381802954612132017597641111151999504889762431317120867566540964412270832160664958419143931899168108463820984389370484618516944485920815172532700381001417702977789370591208408990040738625389290523356119963355852395559294184214042467792032066105599265534417436243312940962591492695668665263199850041078185340911750613547692849325765677428469356791708257199188128532160983415105022607475136660584137728729652434543632066538793276934151525307854777737960095256940446339013088375486335168784382305187344408276815734800398489410218957681407000726819166164366717439659022997361181532064838607137612329461692102440968878204881919324807333977184501261226515386430144329908868917519989035096677779020933108454346824262347047462862985119211277276867353474343658116056972019564653762564372293583964800596601505309735545945271575028644573123873341865390464570574577061963505017988350987687997404915780852255884158637255944322042221238120583182551134231700417250566941120212117843203396278296865109974619057236380586005767884269766302534881243877533533595827266873143630877081897474209778256364543844097270057225373954230871870330565900364130107976099580568038168608217116616228438341812253214437216186769692330545449995171413424874416209457844397558492405338524226291017823651703854529952863238830639678205227548819535740965341372268300455075437887432075940455025862170061643360930074359904703171768132378559904577389902053229530661169796573061137881198068912506770164771628045512214961286611434978510795353372063908424125616571980120546762752863836602832015124501777690126195884591708065189530323582483287742081257340829058612998955725794280390548004690047048129119010661249361297898612224765332394263511764184610417114254196844479981499807612348421610451657516639887392771686624526277335593784213019356539604090653998569638760720052338553654325220732717663534592501441823007158517151316570416841997803497511307952687418414329960495643352577066837276381632848313062215707121243602169265471572580279166574035857858393272167648550306125860428214070399455103060476669114570686927282272720001408398034775600947311512349325177709316143464338817044114374100066140159958899686005892113383926075921185051746495138443127969328927438859663539393463632793525057645569782887423471705661543216035276356078449759650413970231566865995718234620988020445619172177767473323945533474222734252535860094957263391988618652692496601711042809831201941612771619981263252083661196288288801089259116524997285323628981114744507056689139158335602870388275334582737822733974057656643509111048640502271991568396770850391975198669955278179642100257892636535809594409992422470148271687292370835487940658162228246661034081636106225009849533010374241996458030970738137495831142099505975023730331770792276215210186406815479109449291635287898152422018094047559617895313169863082269801572884253030027169554877954730285716034229264084011958737216357326688455005892930083250260364781879459355515911980865856207372669917344951216570711662457598980381153854499201288334447962237844010163670751826818541165398190009266207886905292937469718946145577552584367698262577736512640699094813505403700249895891770060743376067864260880456034562427410136840278867970220614658867043306247919654344058346195509056676369964379246610762585450424629057384736281458576668784359467783596495718607981601747731480943938445592602509500992954529214412281920738316489975007304752994355755065638894127523431589709121488346878600516694858979230362492270915000634737281456178843990329733772230528064010391999879574506041859414469385964110430023487512689188553644308887874504667867139546589447916176461839240973356817670571434187540633270570018282157634855049743841118789210958479990812237256994340762079105901942661007470285054962662658173980683118109282986672235494975383792304076169583698453439234897160710503140533524360135714417858764300734561766820234911320963191119928049342119939763411805052635939314251770827206202138517134399749644712186476735066293720769845973861274576358357933720484431945111745872775424320188307775172983008827035179134228564234718185542850413979024389140119079143179485769017862877657466313562464933512490449714886206044325300381032752912447790651965691544478992149828437151717661981662504719560205504686059233073441592777465176161687223305571502199104027573506864803589364930957467884355745677145251646555301495844831673261721267561465474272466210584490242474133033644439650437031146733940683138676201520407459262518573838877352215576963225973710835660183040117389130733154881598060532990601181844014753381364707587757813074373535237314374796181666940169156415494660713334327519710380088124613396737903003048871197380824475573295378484969903834953911826090362342147017002161893344256317461731642664082274964687952327398230246884024662350817859044288605471590369403201697262907468590063342792020020406134235451617717620320391710460178105167731670550997849788657922363875856424786058431056067799497368012150079131245578796100203712219913781849897941468138520924524688742494979824761692322520980566883791630420315717527681219666590648267180231917744014361572686527909441989471518940352867091396992890761825058097193882639548935276281424904249198163250949469802896173625277428328274056100888318186475861030776528450199658303981157375198689310947838230229011601714153175930268353866345580870188132639505137628118499496596899197196431774645863546208509366847267530960920445627519134059591674262699355161155486744882114409673637115690283744409704954230435636359809472347285520564303028354999667755259388599798673334975186921538185297180229395349949422764550359979749199460463350116699552484358080480370412343444247225339608776311153596543413772009873027022709724909627166048752300653640748043835102861079404563749848284882619487236454141241482742705443955141125797458542803905592603236194564485003862233275412030742890100271128753966769159374255651171525721243476630457387181135173262882089542574092782755235905790023970370101765052567661335148555009813908877287018083614583664204341491960438806413793429473669292605109939016239051305852496319298499979929918097859719816283540646027796879426964343399230030498069621067471959048399689181454447577214790697952697261807674932363151803127695759956406547592492869315760632379876611735621265517641307150361827075119837573476483824178305827455342545701332578690390468114340382194403087842215879030402153136198386461948360376073608362441977856628019013860780823359483725398189456344540278818553055571123374557636373368877847541882017022587644252521363479940503114286786398472564935040004755705891444988382174529822817201192769471453992644913189292430829140675134273377078199189023341157609886716188745233954199551001746113222398140111695698815653628059685729791077797512006484862297641808975663508154423345729166302635257906883874221692068438628843721656909698641100799688841966927876292451140555546525942631169622986622840914181116563232690968000905358347696599451563853486289870262977372734803681731418656029718889522862094850161590520680317340521312589273297580426318570661823100650502224334445483281482951505133719863970732851158379447993657246220056916924653723318285352089892772010170918555822396453398181289527719095326247022434920153752134245225232850015899345025264358712833193542323668367465773796182276604771350733360068238722386956517341055885587629323582954452313091863852941535037115896511563099178284054807038818009056891690902483787820676248703722756865494774929179493563545778904363949601993177239408981649048172282983138861800095721130799122462666655186112903655541619157913356403679838900874358894132952686169207396667902675405950227331309508972126540351315109167501610404083658491420015626465159847340931146904428369164007397633494903567157652346516489831061618555350380938228850247343757504295620196944280468542564009759047456594701149732787736170734003954748389831382318911612043881106768040174313204115149388531075789980345315701947066784100094539918247412598974747524067568451453994525656840860752235081144164834927067006144884748264865103967707271686128616396713164689183431955074489602503463951718895070077675936958565912920113895430338807697170091572600093743572686669886436721124677413015918092678699062634719418933315049466082171035038385069397111752074889176743355522271158362694163345011921315888331319571346892176600453234706276546437970812534779714264632929966619313279941231938180250001904087304785115193555751634255607245285145222127919632536487082046566667592034806166685535727137382691212325130055808245736984059976995534456499559802922454271162143048251491625048545331556697775925303454674367907019111065390998348806027387511257736012696398692572467173216100297996690074836061591516980020066145119782616471010007830371941123898200021263786700740032717065132558921677501608726617576056293027563291864183992621171130903953791748289744181367646758537981359128387369007777187048268339209701411752079569327279172473056922509082589584453745263052397873829614390659734089360548728305192827096418283216088746798322647541130060315532969026188065692149467503769375031561478568280092037921206260207593509176105844199225733389039893369620434352412591508130236023016247196979814660170283204315611182355758946630943681479738640940150480214808870589926026978223689908401108606332438270422621384082167712160939880200306720859884756596403877539158581570109373750849184078006322473424717074043863866726881068003132797546242691031720687927193718621796480903308009568405168080995363812986738968954227294154421532609867005553666364593090464495618967066058405592435368267935675021176214177124410574669489303571920978140549515262060706267841518290021009930344194306809894543855545181014905634185339758094692984275316137924872194083816327418325936221614887914927435326453817450031268231750032965938341467824255569678380118047035897202344935185290203983849030545606621198621273348843168051585074434213317914115773927697706075303286907368862018861573595555513019373941925308393204975273341256254422667144253373941578517885798447517499189457119265608262000989348632085998324112991995443986041238045884165363391677003947153980361365483932776236279992114559390968025266611124342403060074684945116275237368897230258294451925645103992192826501993269184701792968951557463104953380998110098782388184043724829156892891132010596736329624543211112098809799258610461000442631068831553259040434165227805393661327590144354848695628321024950013909138497446739072995095662956893658968688208025143045180897136736686407067080169226952895313036832267967258702923423604685103793208269403369537422737349885459064120766081529168664419462666336735003579878428258054774172138758280437936454623237015140088734345936763786754257769053884234701319776250830410824097621538091680921563801524198897913962281595159831791182944522751548543214225994008881153866038605890080336642312933652295389560844734461231539819993322068380961438086522170360244007771536314541087297654993561752565381089400549068936648943802726034245236359296105474395315569385994640035035136193851369441005788384214518397215714315992646690995828591933014304270357569040693514372861631669524928403108471303926214350430637768536028636080539275991869777449731200387175150498692740686181208086497711275270886651701240890456118154713081610877231170396047690929133736134330979827044183911723353789194743817459870070787969371339326083617112095214720812560393488177438662132331800419515906587827383736982968539670265964147037269193153152865367078400745342060314243875441048774537866511187789909078026210722036734065295001905775884554315140660358359915499568716457450085529902437808215225339638061380268121108335609236908434798197403742741615038267973458740182521110710904639174464637132845546105325595772959520059107820856863666418771736223050508413291030688765207427870928903363907575541480964059218667778021346884416600166244087599896230706568843398915810835415051367903752644672930480764481461213642188738112522938832010614657362466175662033463241825493430006983801667595275507275759189466289074187458575682696492091878670506926912970947930813808265814836145894761115403705847471163399030316152746910587092555828526552494029821888018847106122157899867800543835103041508023018254597543052778231802653036039045805229388055400693893211301571418050610049595640219167995172426290048642366254960429650287075730894649683274436502940897227898377432333001824831923228648666138767277673691906382757684381532847828643406393556371788671050569423949623161670000775843609107742974278159237046948028084678668366018246824112254207325730464586064194229771232917916991855911945894267837967282381065433536057157465757362613742893360044876238743729676750724740457648511252365484861371858086346217365995682631233618975260750383331128330047665405476446541626037825257865620912234727493709429986858197186760554377299111796344459765549918029794460977935690127576207452341544234243933569285518478791627178525151345010739324467210052974824419317253617025617691040577067068274628507379322677416574663788702250418982182685596803731698658378104096864234337805964679070183291260429751747492045726272245844362263203105074354645462026989774071501202059348444067256122504941567614390566206901120344767458113249731952459153503751049277497058956076273333587692783053142158828312813735401925982572531688798870751326656878133315468133587273895847047650538559553618043170964241873465570180205280426390331589531401812880144282760527689536661622427351053796412753877554236169722127553007604803816067344435356403115485414314705068389971644397981584099106613263031705363731943797256224392043523895789231553672593201548090286695124628228209267303907606028959216569046532751013574690833395640312186086476626433936588937728073780649553302112330847057303331518910455205577383101638853603036335883668105264727369107814246193916462959905534772433862026166569977054485655432103146108722767134344937560560482209875581060014159870352472919856440015437804583985956762493313943400787641955606026538125777498188422557221836681933369672172030591849058905150130959814650301285753827193446038101902468274014625366738219437418248876455903475594512653820485059866232299849012620307863623656419063053233076531317982538460658693700387207862830652317043311000268918827164117335086944512698559400588035313887528754752860878531980569931626570056282213094103346456215116657808127889199118605889083253674264576467113521280535380120602016627994855784344919070035377180440906483187279143688041910849102476657604826084409710792911762939955353229991096835135628207688598584819188131842084754907607770788595956023581047266718524748198435162659224359614772703297283388223557878030538836632970848970199924424478312845248787821224424227794879828986281750304995603716194408196797832999893613959943646704129452716765452781594325896861829468782603275514632129377918887298155989819451263340583085826350760563970775794053724154557764479876999128288519514672960634904844991308667117402625540412262653342715424349656360720057203174498812065538450939929233829126573990519213981986392313919050158800182014817197527167978424467027126754361469927606717674118477423146653342350417791696243118518649955236519748636889688767999816970248218366833816734771056097606122647390878834164599661221014118554200075030604808528818187966414173122650137837834411469527285355967655401193397647568486561839184585844195571018140542863599784903609817222440980599481135101286012220255269803665530578048911858760589209557158385670728739004869160207993538060324846561570680249534488147884788316557125112783921257115706277327090508128075731439378400405016429836968965574323992149146423535506660786931687511041922630278748282835173123766775405149403434656022552131823323590191569787307158423934848514009087475876034033611534279361249057081957200687765708531006694221238177329305953568354979133780377849746112249737953505778044550667829264254434379741512866197857390100307088710745788505802449514554042025545604933300531659767353586416531859951310540611645054470223881078365007885734707928488737400697583221353120138469005961000311788849559520491481802086431301848125003041960660325115505775536409884725404361837698926534345598764949710263661877176096906273764210516436241989202651873420118856683098266955712928464478391609780450746344260570504259943714010696324434711002397621979127164775134831471402609747705812424831364292856180842689237341006813119081795288164484312605781411319865060641334625015498826987494058241570172937404473633756352256644997580720842202299282901473546842912087367448715667598433103901908214314806419386249560686209922016174482654290997389454622630735742620577885657413423027560577762346624550965039505783452146585966022763560687709229650168113070981640562987256566778982680862039244408770752807713594919407795400081436412070744032878703572228103887844794151870294748262068588577392313976161571753967672068986354546498298916370485953320302187009858898528524249390855496205994532088023460497549939559840063558725043562313612677023667865882153543171022618775888844969825690375956431861342686765807263530289388271608779821441678652343539539011675802715811359177003681804194655960794635531368032453678054919012959992783464453734381928540047552062781822234538303576674367987150110933667184239027691483704360727438329843169664407978866147000321415678175556932338634102419071811214107368775004476901125824929521441502751824090310964064405676113137306093941242500696043171692689001641914194598144924265344268944626370259092142612228146913182516298168444019531095257734821411636704861907517652569795480284698931909150334956035121618416799799874504359252322510963908701278337896470211433424724534251444251215425218572700660860943467421696721823782811525802943628267995659834185590112751310529014565183362636402347653783236613049368445823798088078488978639993158974557016443363148224610746899877449574572237378608160034277159560531171978424739574580087795377964701731457210267636989599982657500221202723162931901659978920577138861779530904068597032559364020099648763029620602543255856218327844301966564085653291475036671121483048907106359602203075059292558254299925581936267006026187443885527272357600340019252636599326753339782481144573417454949335325880006032457212293230948887455577700623684362838752425056678729958117977127148911286832857673869180245169679575874040542375256533914266913424699015584445902348215573166416176072318744617225724940634536111551932326961085843466716237037589535706003420605652936557327255588068027861326571526495539241873237082146132181016872133119364893715525741450615535141328025785064337199357549395841538491485783404056496589488664977343167011096470328386143431996626731881723748578217971921168499106545022561502322303198654210922731438095322085252375135165071964684684058719540943161505168403719649999888418435753182187088889784718561729321434936299430149493321485469310103500435156025645892546439198021810507377882273594446935030449340369641214485873362260198233823084614372199611952942787676488319945776926321084379827112891848428092354914400709275473849509346811338350751669305336664633255313595054066846984404738869213952333595808886769876446623572671364646635381483369213063850935522723133605491703685929713409590356326881515877985620508567934906616945539531120469404335603396745162481482712213157044538239134868096231258655531085716517045946952311663320554971542895521041938805134485023988608774034413668800730799382212700829191236123874465470113261104498659610374501072252092933203086065081887446578651065875256313747840008139031240388420893835659776906978095773876982353098949042829396900295252001906868575120220733487540843775756627876931896497100953844792707834213495348432923621387691129324110464984589271862650817358447860446848112409218781747976569461323066282759229106683318100398290876780538251830503583963106040337936777402589121243257704068357510834509390463831339723543222860421752345031535540443257247198315077193628578593455520607859936921724044404962403013142296100870699812984756527198240591475757210431406833317370916636902133915656278924798174942983194484388022948082357593715141401682444063807853600842275324216495861084322437330152278999260188860836253392780211429957103364489866447877812511448130623400426834263068752461986578976412522143401959191148226141027303116628671672195530102254435292929334046685679596480963347563041407614976176549937125599658412448613051598931712684708230537790627680870847885839362899799985159387458262779868573376025886004723692507417530340371807162748657247988361565691007854677467206179098962076279426883820221441437729379854523703616863446059262547386258236763115367221222386965677357585260486990677759721145353926690375994689603940753610739759699649246514034795141293999771103785310946804348650224282301716062416010811340384896328276711283288690800444800101730337971339345300433799836169125806768398727738300222749429913400890507751809891544885987154572780363236811202130387988704687254017322439113041189287869232731425610798064648359266860842243228871616869790751517404300825649679083548866477411301650802576580514257272643845738570941997276688753372953161109434694209475436203386741934458635853979626513860161931384020674719366328105842719580099986175506914192857376375452018649140747276828227940537106546503966057375486607849326342473344139777815333576474141412504520537132208503897668078059947640465245552318474030609331398377322136100924427860862973496968933536328476861096270862523671882916534330200855356292225547812727736690862195082984173787959048610400189169014960507993204182421622970500893717813762738730632310783623596948347282719991703637768444878627628268065566743438698199233506763631059935880212842674726381878611904437753910589002638585917683972860496235339088190962644050831903066583124561172276544333530067824070371947901735641193152190669930681050569917399896034067390857638243833929836288276566461097967291147035807915405214349596960517606276666903364746521077924699306169879843089137001379923019627722173044240420141546009578884487921768271028326049100144014689010877101651329312137925255928184191498414891652899858901492545223275777702012736492679504048743072401745328746171504815077286333505540364935950964472372000911522517714406124054276305867956138425630748073981083006737620126534420937128873130974879474761126109396201213217522802661794006164263860740232626956415573155728011430124667932585176095608000689643744214081074306153070784902031676502527634645313472190141563588400710078056763216910416711299534395994980979686126399535928943965044710276445438937550600892108452555214734141492731033686881741134187550380522006831606338555146923224051118077074905651443009920141033097283232324873197299694008675214630944081658644917278110176987819369400700089758693941541898209491936595521703257721406707792984479634505313816654044130958127834746193966505949692382159733988153111930591934203526908537696809280427466573228224667200922494378260605705858142770739926425152719017869951127659416435817328122332626108005173496761746015946727789164576893110475209828395319830574601431766372636681648890610023915954528023042274300840378771748732348862066330875879454743529056859349716715814823155744402370572440066813180289743011981652275380526445810937489970971584359989581660933613931818232632395557525848971958995992242831352234038710610093317036866148584982455435121135591314017897204914279223712541551639894658485930226216137463213092443872834641620337754142242904637654553355417538159971298952278279900323471298333819521552838128268015491563333684086558917780034910141586192322627759587388637220425158187129705805787374689771100347804791641570792927896652170330830237835221347088182200216777585745269940514907650668548261695718290465892637837674586944721969600345840670175156772392168640564819546677790559896222978762380390629735165258747922712762473929556064312910241408617918490520242648736976285437052963929949468779320049286724511537636678694092492195490657671570709930096936362065092666312784381204262591717084448098993352156042945486414273274168130134055111488187349293968891141263400219893539062650581505287170281972228865369779951749165225899480978898665807849025701336600497110902393677340809989901021576142574637056267110552734093979007878097846674074390017503915232182486383459303228841180323826648295544138077667530804930256805971944863667533276801537915781167252405171547293025488065810261028734374752155693854908107120886258585588671116022302033838663000152276094616826463625177598377814142640481568112408218267367536852772358292884385706138192574853549763429041926324490049361387088750669572821592564190700357856368701274239646047720460955018526498502366835196605527728331050737408428501716365462385502926745264877852737631092815529021015313903086078398233947012077995280392019939084383839817225343083572696775198260112626193766955665916960368261898201911034851708918949956516888311215970039462626153033214605979506083058406610079550712256706532650737581189982704487497891475961797291855378411377882574576808983860459886072992803308391774986039190551500287148192432069897480866828909558711585619555737510678673048045225793837288439307676386600031254263116312144546652250128647072744815822915298505638404268403754432113833664078439016587811318919379895077758942578808065811421596952951044734103900800150701701070574039365684912340728617856025146718132583130104163783415934528243918159646752567205112125457928238638760576541086631046931171107547669584740303448391686776961402196036113149286820392575558272714732369052576638212288638430175679206435554171555578708263188048874809298891946166144248252393143603378049446518516539706423650124180723052342764237350537244027356472352096685383356759899350547810482761675578098102698914141000617416932032545115080603980638363772850781729030574540600268174738941120395445815358792490947393530801994122865860296176179716585221577333382400380387838915292894224100294842244031187826288345970691286124186528966510050819621808770295628734143906307346201966259849979453163392846740859051365741577117062829668044325601181260353809950737742819332096182578548664566938876341498379408641528702214238362177003524484753567520458108863967480504487073033151565352314100885531622713374041691819300166393320163694493267834991336362517498722806186894706847135134435596174629071589262680466776030637813381728961950557629895567622969938527996123365644571869283227606889574209300848462285940689565219493192199727917456285994395624614933589053722148184333206536686103150294994547198382220866056726768674516245510056041176109595981389113922393408706827701692932275397454528707964942782539949375960366997519394598583047846462701913398383121924680718657665382502950915791706653210292884365929699370710244643442363451113977521911761656635405027547861184075597571555183611639164867615873791250529255977725559841230374971307788532350552069893487197429810672247014608642325788315122559573505077507037012059485733080878020008107434395086054559692012598119190194687068465376576723749010833466340226898059260093018551137909258681337326805635999694113721749540716651634702404953197119675485621154031485270147126340193570397884396231603113485658560531540305813222806882491679089524129249358425049554357493764907965998361372364069330047842437406987806112772275901842007795320128207148982226309562799739411766609756186411791232507032757480897988643867200280356561816628810557182620647711722929821009913222474798475984577248961798936246418077043115832457402471441751710760553089472323308864528923488962135148244914701587195844389926198106706256457707418069691841714549150870511812012417913913735741615910230950257478355500786799117476025866618871818277308847825101935328209547559209220977874959705747276427733933240142964161912459945424224168416137667992874257454827901072425944362278449832672041979687283203789111182553874548282921144100638608567444326774055058169151222525132366060478699769883972316810209380562386130568572657151005623352116787931881054665482446547671309508700660500614237965737215522329148085598263244563456674213870025404643187839850044799377302108205297959295325937330654115328083423115767346246217144583123614494330968972623890604199080062801919292575094867537605306922103115259597053473678723853931478593707653923800056704611615395444057499318985936186657808190947152042116288125602823000750896038282321320156618690222091143052740186234903115610924575083982231521175851338604514696362856717999186325221522533911217801786319519957736430832896198611940030351564880383361324188099743675628385543630488882934371537288567649257772888982025025886953544399716979440953246411419622217467749412107408085893851405199911722430643028684419950708377327316394130264535053690868394471893954619155126881590968302251525490392656256772849319648659761848987113282902978398903368488250063870328958728792961364594868265004485264791992109632604294468071897953611370062596257001272317915700023771441728370949955896550922095429316763761078213288788108563228780726995101333714393682684392330706586412879421110110176302877051775201612225585223360888826867926394817541134659707891387886356161484275017543029387142803228020077646555183961006339160630112682866322141368079596322442171738705000089645743068471211665114451814201281269369866299410712631343587475862013907059019831324147153331221472304932863061762201028603639667183716137498560210825512488903104884235975462685469225817499853023284673653571268206048827650597222928733320992213948794700587346073887228934136765383210171140017175466567344136481635270711062623145652203298752953248651670431289657618988231404085236905192153669430507198714893515170677050151128807138062017945778159997987799315763330049658374780870679260686945219111199540415799028388749193825272803977763967918850749662044768727776651537176412191314308691546009953158378724811409755987240319221309135430559582364217756146814571721625670016102258281302915389044960616788485059798792074904057719549664462747366377285964426921457360712265752670067611747135614161790386584854183951331867536874635172744026844608578286511292284603675974777891390815462376116218627742174565458525856870910088068528642227432390213033924173973569238374701762986930637969655430319222935044736682715879751433912656768133188695560995827114827900482249472533783834574431028411127732151428385442289382723413667753667680510737497356792766885296452896694536216827417231712400866170932070081072908213561527114467546999065248081817455079489722873422034630002377767702796360692746710877826606907900550755028295807272573632026155050317133214545724517282200882175003058784439267524148695725710836078116903987717267663767928373181539203749847127416425813256005895745618513245959871172497917149051647944713760943610854351569541544366718564723377516586529228212842529115779510703837691858326149800107376643275400676846345213061091289295539843366942996732459759588279336227625818369681625379144691824063429785934561821471154590609545205657716355236966540133282833534503974155067808654173049279245408346623199318921629721846510323660742807250349991182269549490170538272839577480159626476106037514472758454672778169084647131887951117090664193260646885142113179751211969993944085256775462282977947443697346836504326052947761972625593229493239135037295130864554114554224383228375156023799445031228605589301035740126061914764715423097752673058994319594669659444350051774922547310443091110280984965795733108985328754877004636376978775739757501362533965182883647625897330798845068233029468562025768579025582423825700191789485307440122667748109732700694441055380307147550367166741917821363015135878929537223723775810239168992737205507289746362445300693320887803716131123515008536099189872269226822257851674578380000354243726994145752682624280127331063882890404946148955708579803118485291333362997939928226872302439590755146335067580043285159044523509401675876223908056163818419789602361462237694353679770226573444002463227770784603596004690598256377960066941883823701097870117034746237941689276021308756244838577950562379941784659033483500717036821043867010506811753686458878498908187460145326206107778796603308492885007805088183824302570150550628184939493942837485891251728017207123293072246853077611262221466214057539525361516723212323480397969274806219507192962007658346442893772964704160556262489602463166111225960670409217373400912131173397499012916806166091605299411820975360314587439577239277816150145930221134253356256936331535520941186185105935921157868157735378929167700479279157932295013617965020543861247350164004979249963110339813849668456751503291196231196991200297810871365994404429175859746189805268776791126301503087917181334938897679240740457737080727092520024816468041391202335916326508837962544683811757834193713850635380493605217332907681016961939660223016301566945427677022303261024970644282751037512699376628906291153925200785407868090330659293668541130488380952643748929801003665567998953288702915759925037843135779025600138919118569970345853946878903489565262058620931300622902780344608742989501599810150240232663609212854448572820848847379702378593161537852633404266779347055253042026591598033431777252214322704093177609532123665723504291763749062723802040729906826594995578024806333489187654680613616004961524309013743987285060667595897706330518739805022514211711838492523604176106062808290715054986697706012200971669001730660523083069159050040916330961648443172859282278044136430652306498258463751806897277545234664251839050707087776342810950348176520615088508440470928680827769639447713163562144778771931906798217295520960174539265872179888162803420296796995063582666912005769201009342675309715649054436662151263318534886849654822149571336435863859748286040392679265280169956630799434407778227606836931681934776135158023827980127131455514458326580026479904926362986145571463858990330114990867021703358585350562913069899483989979210892316945528078647185233388054693295970934835235287224866616484036869404151223359230536275528153043921804186077795650400039063155673310007635812511472149413971911949961938883646356920168742784822000382869912415133792281113868639225302594053500143223739277468991105947482181576282102224610642188874077803197233986114966409807778093920472239532651409149848898081784339867583917762500082749395138045629676466461220796215501177595803649017027646380592124930473758868240598489682711413883012611927727140157285077007575229776816634094479828123750029721741804790347005688724056281198453507549479400897458314283636796204011660973025708100243786610302187702139080412200281508862629577710890235994062971110931824422237042556607668320356626974885778322728794957738175139680143098599276267498077326692298964621267809520295065369974963797772279966336517257509718934873685366662113921764619374730653756187874556638430981779967841782204192161639125075991321141080540347020761641331544396826209181010016673370859422938303785941434685810402981787056521058950640621199383445420612768738743164693482757498651219763500267814233949700175819969350640920203246868680969566030173046282835334101957272497421851135103137033932244663766937247187123898767969180136722554138133116282139743215511268997563622315549985791643717089314042625784168724701682626428981073841081092727644290524249849556009977976625545319273610856763472534963382173637054078171896741660524168929100865067520956192809557296360617524537431788665011873907523060267996920491873326074366315049996178328154591494058844833075344899791966352138422855205754563843405242683351041073252197064723211893696264224035256647902020288625159749355724602862287590294994289770473818089622141085437047886780236771640466037872925652057669240463255727376574932913280937750819859360732309730252866345744631452744246556325527390367412152921456288566083181231644377266267272227987978715017745780465704569925084336669841860321693635145119479149989764465225000923426626732773098959914423080880962487658604408661633938956197638418247488312471546360492811590072929423282856621093750114829634639841299646507920482534594043055326232312649721768791257968483890041425275386477001529024186355436475578436319222935774428711398489322736614934167666549601350965906135101095149199578402962172276019161590311666240941875240054628380969980800081512321391090706129069521474670511700540569724992234157208155801457135980317737457594131711147500567473790170206776323376546650444937994003397143407432217152289323951240188145254053766963637814936831934618338018221024995621807404265308388706342326048887664544544550417934926304384160978701994325453800620619510661533030488832316886492340703358230808986544078335186077197290250687152177513344245608693152437277070592324720286095939797271427851518439593885551619696305483671710888806953805932973351891743137040225537708325962931916803700883719662712437969272099719982078232432616871205396613411435004590057188444190329863433745012630498686394678721564514715164012777042244704343735101897286663825717739627804238298302493406675528903832196492021376976516838247477989316610403759882318820273918471620192202298612505754046153882927995666291341576026922426151942476682969036550712345754629655933468336333375765811198392502101301971874383547049513853564469704853806567408140046731462377842115353766518295239668942146789458633277634482310077596450803147750993364928699424539015561944423204703302937891396981109879211982164209839604615079509538238644599454387819809376380923462470927285535239308210218775356001431974982890080497358603046053797906827607456401903751755671541067837417704367586180103372236919174162462356527582103392116424924625537565220458468926817958900569854093844073912947361347899035092070436259205023478731545702084062146509474836689596973555536535246088731228984424533785107533608870774902110504216924712415348462677490128688611968205486824514706079518821823263251538003812831195543369615321081375603480485973763095906288799530101103835228278905771403151411418740738975329492271965179015396754986722102628404524655901202276563089267769793484494862118916133053442847348972757511155389502275345645101935231478470259433477409610419879594548559427841832295436078278117789475378043200029175647489684079102645614468673900421122483954240510758578631882242444463948475266461506968081839640978893433206370864102211683200033138454026342412394879131271176418473041376271297667386551256083396173314853436575744734853095013327340235810570817985628774441078671672269214126820339713293154311621071954155660458765861833093536808597520463836560147819590310761648897950879121696387778474631566307910580492367159448312536322549393210016942435929030970683073605215539001404849100804731777967215551576791900747630676289954334799053052716885264366650001633886231028638632492680439628742106746528852460551438586983546419968011035415344042011822602564617397646510814954700907446082894280487091021349777684684680459281598542556861585224853396439675096693117198381397002523611725780894742890651343117861715246854978958717953199796940296278914615996000481106059918020470392228076695313592221546050433767030695729924503728634110949356098961296302463433845172284583968608192399099326262170717735892153592006709497104013990506738238353177399089395177399867716939049730714741472357507876072376835039305452767006876864983260098962267120447246876926241330551494943031713105011458428220765073704743708674283340790371658428311587515432548403747848560722953038295795466782406853027376023350314485006051773526702028353813960614778289059028385739610676088739856593365430013218507599764658741633848162142484416842325426198303487352999678725890346177004945396789067817828030426220443563322409263665518781554750199318697784760245127058107532652157334952434722403571289351378289172422386260860000356409122656419916798780643302726016399696107035039964540843183949196380714898636155667276152765135737328039256422230991951893776909090243900995395516686708324630301807945243592689326363132269299641140722545314804731165367605401871228400423687780069333197658346331216553165829299707316065098874569010323049907115588745366268650215090098471863626815868207902220834855526075790506166754562892953323565703322038810882131511310219316231776852784659234804619081629467558818319621758043890671281803660797816870845396739200170803769827970118951987532376365529546801314518515565175114204687087190237405063801348225014990046825637100096545746030760933630069633893728517350118414872572286455572863333048892630526040512690408348634434746376747811674999081120902663185954240084862012535361370661178226270087365433417546872946189057328303521109906253405186102365190144486414721908199043566515656111351326202074376832279106331728263228462275462048799360964510569019456895686411812604093198022860373852357523264403747342981612897893822235066421603698078594687475406004949820757596484507172805200201847436355713844996435598438365004965439480508925012361715321212706278558168489202973119171767279242952176761963050190262546396888659864920447905240182138484580050563562741634530869492611702959380720009853059099332383016358105289896559913448270153725903916199151345642633902614067823329254267420237090585806492230068656369031966495016509171709007187495843084267146260006972798018669187355658209608629389287213843324382415225586321391600087941481252678544351522301823229080496404448248131180915190772113940182699170137047972630819020668167057532736954880774416494477955896329716398888428592802963606887383105936029364897538074495854908831617871012581068231830941539880269015722639093964884052954799873549527299967276162038849527418332539989896065449962912565205494173172418582586597431845127057385910374023215592614404716077635943279939435907071110901702546130157805100268278200211988667075072689322135547269483436418551858319810830979724329627337987033617845012480730239404695574737697698514448231185989686435339804295628336330421860477762598474802091330300928386735207914121851412198003458224176095395139201635355649080253454893277712748625276763859409189138112850651112393597014567554063289594104288880011255994935432242895406513093041934976980077104479982599897824750573422683756409825995361692028033971643212034660467186293866255197079663448548988905484489300279097665057956926857693821321631197370393533188800083207999785936087275500560204626012350218456813453271922058533832577810476805181258050892225467761744938736175664388114456743068467097526737873048405244700181240380012941208979239417835478251940563341252253334476257252756081687037028414139419577905307480248609953349235109720374771204341763187285772501754237715582608460456647162551402762552247291315723010818886064179122071439950180642274888046574997845378060975128845581777635055394674561782276089298348321798081811820647517208033096969691772798317884557960349720491799170460149265575144036524162982123089645838953011432123468159401764218477105145913714138031665345724989037589872222882615343310539025893152181248247346223386086302997930529820872852295624149680196632649426387586659627736009515204072399547021785370228418018161912067054928081720402624092201579244408158772160247549193214230492173121791214604974838522931684419790921804041889466350694165461301871330534937645375577076963706521851463821426382737291425269844584362931205938729877211105596287469264939981369442030486754467420466002281443146025019049117429517353760454723184807904948124688498452087423999072896171553476968163198215606196705790522503346085810319399914825643081942214025606333772015950622552093337048843620743642748591351404879494509757843572626356629033196647856166309971335946066142624055956799164631204322246037349422769506033221727641656107230778225542927738017877847046157627636887672915185524255932365552127506249162498405605760118967056646317546633391371078766433049446120027489591135401104536821495904010896128443612575787498752673275303289385364553934206278773195811229833738225638559921375363449490983453341244949624809505595985295195568347055258944811349568167945268640038022046367525444034871518344496910569697447426201584595839211729882828306626476025973952944814513965855848406795024199556473139254167356279528581123637647667089755637622411553289583945491573344166983627717047971002135900820627634757988650788282226774378445883019476200903332001949273578519308208397203423923642954310105397860597616799860278179631483998678019111253282389046222347610970593797965853772748344136191557710397358454541042558574052536394796513271910154750071447510158780065185127993748787783933355176086547607164397595114718653720104179059682965466508856404587354906434405113528764042548977827442267851531498230857978459920533030040952309467888173735413328780448292826363394330640768040537433341267124221414515131482435510666061557800603149513624952685829337757158474822050146319778956143284208648215601794809420576401859200457325036443893493590567869404998753157585043038350209784960917876283511381817002350066944767399242201041388195370818747249394328856717335700875099460079813637365364098306098447329012838818157473237691458232042588094460033410324421171429734556719119447269176688819089888114885617720784066202358940899636189293045546792968815333510607131356143447510592200615298360216213425186600315020440848145376753404777829152591291925050454727030544242488438576446155596849429766484198585183879613891177821106831173483506437142213922889540998659928756343600139568229048546238195602216885111622686903310640432908150617718244015266577100604134185618543706413710053808252100281890916445166915723765048371616558798857659756003428391815574201697867453738576728645880284063550597896237012385147518232900550543084874850007701768563005130483155277140756738130025800580472355167917889707176509510098358104964782019812208871660387074607447113838522039034624296564779538178103395028517366106510127687054814588074637660825839230987618829797654879174931704998413708345378534379049591533674705777899057382417258915270188681831350671120526043886183988951536720819004333043084491286612478197210578911989235651031546727405725999091759453203279503668907701301828457735930367948971749058214595718219712986026240043166198266047005273284141437048615011026265993695248277417184766212669077957953362888120018055739281829989721774598582771592663906526507461389484826488149436874828962973109540126233986117868649203576308118119499217504146808128367021251249739534403310284178205532780298589087846958385609706293109205742765032768988711022322536056109284050314543712438993982488356031612187845505340534477425167407587696942145729836792507854023500185409021475904263230161783785469848232184673271203874601094415671410164886836629623871797653493388301672830427129918951317569434615798495391996501491434759008841976242597193244894285011647890944915745950876869899309071656729563657069087616002541343904752505864725538531348455306841668444218854948231804278992379211249601199928648181557651347366390843428013566738926766316586204137882411925889379129204908964632922345017643908652906566456853217013560104038354211601391145154690221680780943710809317826762740599833440779669307179706751813284799810856712646354390002053943165439955220281019740225776939780475611068429863296304169542855668771252224773201249360434878258997297965061290149165841122497279243675220759528755489123890012403009652724517209505939106219384004561834446117962869760360096323386861083810255947437022902925198267071100597165211571363535023224999766721472362153643646682182154936515833768302154569665162868329657534032366740731613404880541857167654173697814515826733259283566311501024841463943141051114629155328420472848080072450236407986205959916348443852081681820299346722343872784432117446669544732969812779592878071590291040120560886221590996223966621553678457564794527536030125126180076469735852628863684603588679455729724785500497433299347980273312297234818649184922729760531533949056006138219646731519349611823430035755958499990080248011069920876150236876633514636415922384401304374957035480652171273513358138564588714899904969261937605026732356729511220093454459860407690275106821215985994173245353677966361888007452042468613578655689088001316167217622116718680275549418056759576578257316912906421521824386123424184521294925786185135389411243195655703887763900439676037177099248134106257759589263060455631484159308976282934980445485166470714835810569788511079678397625987786058502629559143768115288537248470903437989261543674137384490891765034479795060621601016568101617871953853826580176235781403828049950261088805582533937208198771776203623182123925611902630662851251242682313095518058142973360633350600399308440779345086598860104619540606967521574130402492077545563853327099322317390639332423882578995096204469479970492354980615415897280635111185618184992083062826912272816294268629684130370253848990807350944921305613034104823139137922686124995265673534769884087270301630158568186483776688743307660960878301418788153913333644566432415294062612106061663360180514131421488500776605839366529497997360871284728438513842825166860048514593558500060824590282148348513254516552816184486845381979755220204380924985682352682256720638726856413925960337680780407889005529049745692091486108076162192674088151072175731610814509979156665141568005698136517814039372205885330424585244551730896858461416480208996461080458743786847698971166328358056710567146449998353984902675550505738474984843873161384034158225290070851835700524636892489295873514217354423140435136715658047155333870385833154174866627910614486057133792125536119554744203809829766603594590018347728538408914233251183818178832494787104223328432966184949215135189845717386479787213315954749076721101562742930785376046468476842266224077241105670440846084220865790621815523555818740157775536456838747088786840950187680668357677122775743044907171414275059070160891203202741612421381559642775679795490139412199796009872653421762556662867594446574600117686730282053565333056265736635378455694517865456187593772064560589647024844945219214704622101861801433937806548636139666213252000391970666725474095162584116063881563523211979123104274359181077943696357770200104074807298723848786962436917862344211993824723430234852899560052103655087190335282962172690014090575527752611353077339441534610758317890193109949067379153085494490681685717216267739043728790371032724512993883239085015536892389628663502321428584928373880447278319967293972277154120249270289815596558279079166500863563594948249182541000213065310091899777947108913138987324267151429233552807444299015231707925889922596951466333180812019738645964216061871275107588552266460649393601843727754515032893226551475166633615323782661348906423139969095918500683048636228312984481835918847648833906804386925234957544996535724603455612958840980819170953567751370358167119801992605725780540355873544468173704784469416110141999942632988957559142405142616160152191480275014516595719543716700221204580680180884344684842624757602043581712995164790340723345968567882595980256285859383625957275965395334425013894012355707171176524077909894829805192258876574421486903980858973456058451050091627310615767783720350286938903704645250044860554250591881967696779126472090000345468554064208099387473311446505325645866973727165808353695739675663875072435630197302105612517773628075608117499572747430395604316345259925676349201331354592918694549292541522821933035877642083991992902658288096697850880246204077141129227469199012312286805308630072132037948902106256207479571877840464005712085373577050769968306229832225277592559497790072814240582305154747518142690903331712470697198767946733606393145375759055488549465840057208145292452908652952541161038214042423363764452629577660300912804315499448198652963605971437957358625673557192089254813511200664565296095370850163342406524462550929213089930571873616578924731516080108314908826466948713033470490477427267787870049129792322968386236172844330376992758822317548534343015860393184563332607315585772212112828271721839018899371993198549145648975533639048029070219863749214675355826293877339794374015291058796601386967862958718065042666462401538974638761087949641230854373140404292920917187723662823133939352789818278373701094657868010026431621960063669781692027808595546798243778372061013219897926500278594451561940043159906998567268610962286233270839484717700048850778715240722547630462487487982384373466443399712105395015984340993451912422816037358960563023200449617260386659277475727800657773854340643679380607649488586097615228323478091476936114136964862487621424408193821829844415820857888331705573490377654815569613183084445134635973104505556492768749733202134624493382784852380033354070595895727323013232433821980465961692231931036843110347345231577544214677612281946069380614412018317129395227419115892995858751040993164954374734569784550366117458731256789963119006188995519501457948108548277014077865878706313922987011041124241475690970605531316623798174088972483787374287114323228221174131716916419898094726794110616634833667891727193970964213967253581374840821112441233957867456241609909741934551118087240531982783827941423280202256855787098245354921496882442576446878430341547829064349334828371741113884955911145053349714143743980784698755527199665799079035605179415902600363481005978115677489854765727879013851852816952335748221662310246278455718129187565760590235681047081529502234788596545046665413802480541758064488269835703443637873586934689115161767878373433169395202903728668937626165594334502307809080403550137061016239490183546679611858004573371283948651424443549404036982107794592355682367656957554965227517615698350228389771413708442224178856310058870196940098587076865291498164148733807502392065645830980569156124230767410474477122288402325187377928890699794774839146332888060166976507256933056264431313846140469452095125163719493618317929313259548235317018037796061454049227336049359314119291112557757707673662294237532568649174887491634104762456161773823513433847143361302363608886580277246504613401152516639378298740101983214694203702201478695994798250358046845517721704795876004348432879690779531733272310991360258120860797680385544256279401764039300703498670778232309250385842313427473909079751137421701375734711352894263934177038971517663381460049868155511064300715300827977606375000300712391380719361979841922892031072418131215105874518026002763357848039613358109777573624804322738578705461488147122394742563532894024559829205690396130399736390610494414003090306214944703396094659015391573836185050678508619735420107171635127049360081665669659814930603178705676462340448593244111933037112551268410742280819097609699911388297829259354867246399686100878685728895391416262012283173722660323876514777269616880759002652858659953087404810955113553180732548530910831366275514882328408386135540064039194515372496376260101166199260723882533673745066773358078073580313390894113378042612035280932328740165184720605048338070529367077464443786268385933409772828417349033492452480934698632113319987661904477933371620993994574738409635221609217321911535977856840626178264194288030151648824277161202556173436234015077041538335523778801418181257999703872371933346348600003929428256882657272297435819796268710556998484468875866961173514811559545209400857514554987341996686304882170981021402678544076309045008450263811466765218765427943954194793833157699766976749611560320467614251431473912635526155974731310406117670468587788717038875952899005719577084712724663941246898886227978115431132268632506025444774430268168681788700673267857605804525912867965313946014814593405444371332735424059919858150270824171586262412985027101465241260526581385545893714461548356873933363033116209489339509949775880035280719933321805399611476443849787381088983319459761332619252321050799135138163931097350038277552249009072227059322147854639649889918720066026415696316457959427007508330508368896937320167738168044262373071095427942741398543331712584658464684395783775168894410328572040255351822634170194853979845074354772472824811190355183011004453077330712277312543887615831493844743403685338827615125740282291997755691775256523900527787673154077224344218674827024927561221777547683715356944703556111867547067232150355942422306887043978398922189822312299463393339049726459941294535349830149062805633336488142517211693956162589149243526346154331662456542398243815435857581343430741650809118899222060291846744125922827078767412635499496974795006441243519959286065400205988626830408637147598484981009660458260695981451260542943526126231835888196850152831454187008965423573409191010820743302423774943708731971743374992169021318291816158464698756773721099969093683582858425000195603216274274230589151273416853756892672392885505832005095719322113181423188529241725678907355000452231699099899139531968726998692600422034430338478318267943856889252693047776941343900004578616360472005125571287358976820872094885194347481572064014509790015365749963602762567164045608395675144776817871030637105160015439376822168652628986945986168145174140807799217191621491985747974060016634605383387666633264265068427461985406289976769275080795573161123969479496742448131038322626579491867515392257704711053576603737872417458941415782564133859770046773378456921601088235152751104746644045880941473512787574773042146977846500729998188947907040457266232607412071964809887820581856499727842456180041466464567492337814483729761532034585031867711884516064199360483896534158136808761337245260484563171318089854493978232716276163206150429121046541825701596827567069994472789958967014753023546074138937698548281155593711273498562204012635444994102147505520782886683906068552704256791613763960406992511848965307961869829361953056783631036168700919391018413022521122182032122347919504335453848232664667113479577222391545255454410229088689595945905037161712935826003307558742868391996182586952438656429140665500043736901490708369434796451682127763321782971779218650600403626570038335121643468227148926552637651439378527238913840946417352066751736745717351909282910400626499430784903342507637889008687833961344608218080716122255815591773378679972125502311643250558728024587903774361883570575920953759751101014199355051039285564778467129721737670070543686087824049973837674942387039978856888978940749435619346154034280002618488311255528381844600954606432699764499283761085610457569970583399540118027344890186638055460993106969271551883721216129482902495004325593370996917044046948037473558751174941925161104298561235325664758328307608326788515576820264520153404466863187520522828167283051292059186712407266020638457159223790063842998811236151620590547385670783240341911363599191868393836786832320535309119421971432037694270813605928785939448038223789074172294353854801594576303267361880105984308960437474087851521491693436331942804732733199021589038976263187173951210998846418830704573431002147276035088686349665210210456013056562821415933155573158222118097414306143140388613886517154194183181656873659037143691852070765620647634093357087938045453503967330452219034168645361765344872663711492167237774081622035882760587226532294244385291448504413464643361970941638532112748511852357261065350254819502975873707399663269552303695829638653775006646804660942346610897658099729385665854898520068147527581996763585006717822616418479941556114707108637051606633028123033482332569650224534134581143097858476264623828274306138349662192857658811762741259419461104560607500338586673115384332717853664043612613432161344627407029615344887901759323654676134456729665295245408996836690296886400840706862817416295684626382175429140064672883303547747272375225023486750984491207208713714352292767747089402144054013068639128135184004431418099987091174261820746944240669041271444816380630948568956846490722195168497805633686958845510934412049639946052488401559301070779544933266343702917174557058159334402796418803552007018376139317470808493967358799034146948980095030272515452848026697487003763485320050984062021302099814536524156473656357976053345331486205981705660967063644072314776642383990932100329864167084668752118744195012360886069509760985328135004685433092911668891900154394659884013411655363607137861971161776637415106969988485104326870795872191652761613045245516002129336445673918493896214629441002430509924701904123395734469633917110958002556385316678130789626154453725190985219348823118104749868736631453442544848266144660884127811561509129063129265513350206503802172392078582903513464329627149114246350998359686682658965952907944472951107510844776707550900781927535910423932296717658702260399690208973305065699693738963246739187800691372029532664739794750968927976082695669360245587559611026711695863649084842278276142240276171948585416166390010459633758766630188637109207714970511574116696556314125488049307719555302438307245315584254383604764999858464312961375135667855349379833982920101739365920134984203259004442547784730120291676689856994270096442077341229600963890917581429062189631701083753587933527700737712862598470385763455925927379780483455122365284205991526846045466352566703321956189565574421815251796953280578896139620448767715882345411909065061382494257502904997346633698111892447071901816207358890027157140255609693524408200368484634922806869120611510471176008545109355150952418217766797408572264319241968014434464996751935458767297030019548820500884047554674205542448560148750916140392115845996663519307261852858548035924907764919000284617448428506443652461526287327995676291910109418022008524684443107106129111912421859313534490914792700707637883134323460362530075204035721645034122149190693195505757845953797963834858169942159946037947926206852930639354081656510037582993040878101860828962579247619246218799137455933153688826467174885449702427110092125454094053259145401555438700621268512848638913383310614746705042996607801118436169689061272228459135177323538286429323469061945708506492438564678760298607622164386736316101047291397657702461379364899602835940976001021061007228156515142414357188459712186653808282942178354645170668768291122377424870475182557252715636732124202743145101245217687585652272833892458920159516391943223070196534388769158539095321349316952328712991155509895246455585235960882465273976971685254452783358639640739999330269156219715012144029251368763378416169649386639212808010676004637097391716855791322780960427321266780515205048050506436032311299163206442828742005051493869211561416091603590670726365594540010334002863992961891514946256359797098998612910479599070260735516016578165352792632784508420602685574697044993906116252108044695759896757370637697243973088138145034071236073291183484347929498122853246778225054129096585816766393722250427789192377938621222525281202987792377244039894192176755312007323551086484611646075735963283776017550777260165745527474496857693648975219820481577292868277042575872169801321238207974330645547031241583005071859844571274151416079691494114100766555301456551026753828057285829572703238505847223383136122509775078961129000748030950091271773506768429235643723031997269226897786464492865484538408415013490681064456877341298296504101638098829320114792404515748408633840013874186517681191359276607623985266826786711968691404903414609931539385774359888898899680765033077388776117130016516128076274365312815702054637698697394575299867068688175497995161990254109105425847480486587480066864385638067093724798803740279979362124257471702855468694307725565622233248944741611744097131536789752856334551338837180381631341503946585789864545275136286803244586637061320391459385345707713623023322870945175747791745610681295877591565149171210339269805239237831062187643947542590812377293959852835824737600099039775275882093906872367208521061759117754779021772212885315961315254131933587935861779193728048482591114938416053634028836297139017205629080066126025141296550387108589788623043757298034556537172097335701657011430989701847818400572231842000030684371676079161791807803787190869192200265881758010130791471816606569741152024289505376980915634110479659036392166796792118160942534414160408454243045508671397346276993795302298045687369633248448142863983611404247462081843764317745627450982505686186510102837761712475422303463056375835583345212240156580462357362428415296588268050872677173104575617288424321481455773478668550224512787908621377739016655484848039569131119758786615824670813649317023560967395107532128137424053667151206302879498372918871548957030388073055048206866235023719323115877957169001836037766925564727990311896136782020604554724167002239274228816384443809135315324742419414547545327028808412545651578812683306525313477873758879498063762038644411433777486246653619365923558054372004979674021954990830416047308160339608017184155140385391499574289463809765666668235742308567080748054163373386940382810655245022867316012926128960986461591456594278977319649793264899893587463162462365903938806617003921660954978423131285955858142375038933708618570162939881590069604770969659394262368212666644214978937832360622087602434398660516278720333997348179969531217159482679255641233766811709069349479451943777965288457977904114128738261301334221664240477628010903532225212174573428640128052646457528092102048726906285474349593226736887921936903482980474960958330409183900294982987403611911285484709114265629252793673574512683801699033017138273463365681825872475590046929740873223660599529325263336479240210503224093807829656189327539547565257643941501146355108124275056342113572677577868923883312434536078920381240175302352385055489587019193826035626527770349675670445352319042937409738202135293932313398643658330363230709110540323861818864172798119185929857102294021859335510885478200795056913355294751749739423842041364847168512930082199611143905020043301501438382369251960404077481486227020024871465179345609320417614624200458935651292071273134433083588915503720410072891299193650799415706297816804067234857775298080701617280703271311265522476068225971935105423631166305626011000503385281672293472774125765000215874210119040933632510011867979665004028680654748804125831914811876085499821855077908729142438618137146716323061776846073699778432228189159611056485339920939432527535954486109156277301436205759712948260499891054660206179451434843004570811105849170690725735814654439398620523669143457575422008717825165777130837468852979812828466187977419615857161007894684706337217143758895242738719526649023922516195722418462973209654753473923702545607861864426604501876832509652060759990847582645091659455849794145929036466323714797190505078875226777145684550220703498456474129026014865706489797559438921020372225528789124358799782099122711469754585964433156757460030415175961539341133271873421265624258570058454431206496971408745280703300119034150968704770422385450331752393127655096666208349391058476734697863803250530055003371988472674672586293718363737213293046606830139471517757628522757649371483667996607828268243734250345790551091259202615788131874776285259076637681839105318702686834887563782809367760897624966138505942717437909663700195065211127322434185975210938433040554951499830136843081415344378415412219171490848688966065927550821375301315708713454260784535652632601952440087103698160841080941460695538664746208682642069980365729513665066899599973737251842805857827404354484427040207730571531014366690269167261655854818863073346371281857623281776278439138118048005162324735151486947221791857293910832017469344388182762198266957321994110373507477288537970006365465973863697064306817173086536613454057725029687332775581299362525048983493073971857413682883530973163374005290441580076332964053882788665134841563680828840299685778435147119947227136938700992362754789816301115723518971276705463549763149538542714020503413839551606351957424115878690509786746544302941545546468795875717696542068586306118612659161609400863598175140012882531798757184288361742539598265783648923386156127642487516241538998431899277170979081211908914350365360783393240722470110715765102207918844833705320120883561091541712244144815133423395569460178356071433588402093124023271667784946105478475639995022156118782190611999333201055986449783574728798496436019391686779785070046758577429758446524128585130761415956537204286126529044606113395327472726288321187548454367096283776471859319595112063855104214177816812656168283343894708760693826459917062194698552207591187229300273876089010140621829312006245654347721452139009411664664868187350697452161913636731558126813616859873797865091229789907256655492819591215692343398860429457317568131053990299959080364699705591082749683963135032941510574905087983882031899540876440205470302707355345040435937511169745728773272716108212817095301473885595648385172014383289864435414787369895693837024725806885467369532134456410173306042952445066811808675290906973492374195413379469967463041838053282008175703757567184860640714921189190289760724744853942271468918330974391303170067326103385807876218827757671052223314462786659711350723981524671499998596996699019121249324547481549764144557499621734651516405613208015475587403745086761009793185895086116035432426266605239557091461290903261272902581305152287303214280872892264676634938907645688074583056589680269791191368581271494667638251162327542844927373728130651581560071988482665743800709738910248817958285238758218704774953778554622463584461211511607036994292274386828168867811242431422461251357243723798523250007543812180906752730768315788108583183787775751239513613243916431223192833505728458383172991996782492366809733264362656106254840404260071570112464613372592331667354858627976361991904628948728319638323513436936818740394259223356377862395179432451394290064574604635435395700779412604192598443510199747598607475831526526503906806384767442524671411654897968281654865873287066374690658013110314597182739818245226937788008746050375522409315457396770684546403562862204934582388385745389958850750251720337647590267494533888247826955737462150195531262283555894750963561647432801200596454460820873389499248284895092882425720719111289290432052536891205629840524087703805904691640176392234270073914279487388409997669839713859139943801076351993305561121106240192034913370198866210804653268764420450748060847425639593546246625990899175147941685080887436076259304563460256067576771930431628239531099828606529307574314960551393555532922958757240961166328877001969631609803440464758273674251152294303727030737660424846605414567101899458202295231542447417913185454704969136070944899111063262162404221640808422094918697806613997000864811835321007583708844673142297598180510346253352096940970896518155341904080554641763694316872636775611170310547662748516553338464744166652230038774479267479553678257768536040987256020267882855655331744924695007855833218190176775459722351512223084556212759140527862045948827243625548418313539703739041407288597736207831446666955760164518309407069597721759143625889279943889641117765058804313153413839929416457870286369525778840149018772625141101407118799422628286033173171419537199288286390486001477701406208786375785622383993056896867834615468765088417069546764572859487163520383143625947417723931043298086444849243114946145557575123926569166241938039042283438035968981594052737739957017288827936200249216771648948492513786679431671568064854555016094943362654354809776927809574096606675323617989391545295906681438431180966837182478893884522336587506297230770378645992918248017285660636594839051674697327066463937021014129830721410396745328225226060114409363199806578537934974384802597733008472260348227481916240090302641409933682058653809722816453394201712807500595018080865937735625807560062114075796051083732550796780305464054321810374539379572887105278583085027664803401543931842865469854336998125478692857273063030123096859491545596803222011550089981457461669966288221441467304582131854429747398137021808001917414924727702399888680628357296075137401867427838086073152950074566550723709551219440672535724479469061212411993214300161718621380716465559383186025139056824411133270461035888096427504065445667234752889002223945430027503481962459864653469048143479578141002285255832104955956890067071185326609727485911025929237661719469650500080720065110357799344701105166765582377160389867743997850428648751580171839641765595830875221403166624777825199426152544491399695107647620598449876864604756161510156582982787632315802307865851164780122633182115412212599117204354734417598403179062583465935898524880810960385207497885046862542466936179904021204523910786853942880852267667246910419641489814868690505194105616394186040896803009425898003014665594484138062765744053368642542942840980229057273221802904525372263505031662179582354222828134945773022075549099825454148880951246367732907818255267449341974603126816971932292307353035962239820349304008309906002425927235905681837902450318346290925523406822860827701941349463615142497872459230171578560401170045828130405671270000348281852890321581939466757958465071178695896750939136162806655307915644782875182931265101750307298475388819457671732131333584618623986315082679470901546755115530411148862327669363786779809094016151226447863533026475774103543000404389850624888657897201766870570890023378328623425138667579912613685143070061086140131480908554810507080527282907093401864990233818121895541318128890979263223463418742624119995878367824346717543974469078400047601638619662298520266486344601160241211906488851027695141166424313507616518770724989842993619943714487122591510750934494498034361980769784416328474722658748324132527067558454464824572572509900588625824658604731180685581113574986167856120223974510343087954710133721804461136346268703069995983547894091577213974813575805417761056268139185905619796672153414945209439172717221656146669121181048499705286191425857995895782363027983431937344856563001403826262085526499151202238743269931468323800347891559339008842743328543900930965444806624882890113108007233055660011489178971282989021314386152397821402452980430545470995406992955074726553102751659731395403171470542079220983832108209440058514365176886670563859559728593798685731055420136844891067482785002004688551007456079402307949692373396810053523601573406187025897309094620804784274357568179748299497772827026049225905913097682689091801090120806637920571145793567769161686994984386559212414507548727780965977258016281548150738856681982212994648573665240660146537207444358274893792865691778751552125869130529194279896328834114748578141052211683839644366503024015827197904310278218775563987680958762108300904265398720453609081227108956264387052304536257964417147801447062717728035469297989316411598980220993253575237082363164021973006062343815470043689596038302353178130724939653519639700753358689019781348244978439244529328654791734782003611352991778925085230392334844010143660141525501632184096370568954515767994050388275077599209382192754165439202933702087610950499613997007247747116546878001804492974514403358181627329434586673091251840945275779156677186635304033832016372792783583215399092818316047076790688881002853986638953798200985912117909965676501215567356526507119427807000845426267091423871593534726419458342715128362530988028445116949619346030168886332552730842153959028523792913838245808094754704783049164344221671034480136238523665465609341807302189558384339173878476589267780997036177701152078740417966505172482197984311061889622701770498882526542171096739488247409532607715587857893645165709518932239757257089338995248573315841715989984337624801347985544192762728941087204203713372712613433541387202732931129697577634367330175164494815413293377983670268007626614198035273059398691149830854319199743869718424861262770752337747286115861630072892187530792953472202027670257656603974588654611348845944884580839847520163193130124325497838285697287609081774265487086590357169913329388186288410477576063376836930884984812581402371133160567019783162374996549304952482723378924069444571301968604354267088324834031528748068636629005310369245361841694984740345116587727814129622228810974105740848822115797812827849358179232897308625939883324062473030481051799352251296433842516386925226744034220923181675078162863456034124909001285201709891480152303434138301134376959587444982044068251287902752512134736116202674215548340694633856678895702354924979013121999429747308105844374781207789053260197769974707361913839508374191106346919132934088465234683031778970360208862464436943510859367796828323134831424773023152735137436137607529680195119579582031479661000245247603055140760152287743836497500798869314789426154875693318063878191972303987355380307702156830350263699147908028217265510959220595328743593760905910649542976893250845081129012462085729558052940798324205321916410797860345607377266154477688608916147804891941925790568239406245628457639169961978533560207619422009185655438232884555323657897877273072301374466952881845912773713183320947687796480900804242203671698278004099334478267296273460620103154383109133850680451470286880891819236380343290579471936304129846983349131661952085689762410252341189733294533941326918051946585197380092570450761148120030427802293537784132601487213416015480739085732799957376632056523460681928761752532717259401686907001730789608983100020398435542481220655585721850514818189650564724246403612259711774659489676624452199938397516397812821131482363701369224789005579242759440725177095817574338085409388865070476059376530240585543513222205637356582374349008398782160039192496064440240444279198255253765709571851904179510376253029485946980814910370789677840822507175514436095023233910854560884606392465971821150175004938901340763262297447718298033462811011951091908990527440193308216765436454611053968666414876653600500305203837831101446999176404855550174884588308294624092009482286104355387248385039155624115184007832542289285222197423858476000373909810450866268940970126983621211184658926827529768122162572133800504400590538333037034337164070874538856839899006587642270357917133511384805996100874886702056550275488398166318409773334097046917481812852190190074793282142573280292850733674190074381053066109452272579843355026543601173845911407884205393062246280413522094864414857592253822520029719158600552064175233397720358155447388032811278459097484160755168798250409435975812691441271417036988839544238336049979724585155947440257571941970601455512818985107452275292097819132648522408162307845242292820749200279596498578490808420686078743526727450558008673759233209962339810842290558518553472467132604097659263930645859828459252003876522813196909842528107723762934188245190783825404850287197672776369813789400812017986022367179227151322062388253155369580526600791891333594840013132468815562046649547780678861286936417125132960425109090704148472552360162228241652551974993637861503052109225275323664241385150713005569172203688292589281526546662902725744235948302519783107619575439755139949146025579743745718810756511338179524498051637100013284271500500894589516924377272528130410842146741050996360439849419382749241701487023298787353600836911109034380825594130963580723160717000305993858068998806155869998138989263702346310150615929567294054509602545708227644772049001183123051228323382345444993744678258817260773139070486463648913140907955815459968868429911860068433053413397397340972031444221178753196875890756538174909840823574234918515225123363742957070644304195511086877927449468123341340966492915501548949574256022653555667421983444912518762804563884252582451265571799900122919075412888491855177331967419512849418517477507512991130255689907233422434293720115116106682193075929060422427394439317170504286348191261925750080341946116305610751278954104614117717669273238525506442319037876217077657863227057449741769680542872549715890039876400654996404977370564740899784622086743162339027808750792151428753650404711973739933543111880829372233387027620052954254883198312879935254517555530661098407015132994110899052521476119437253848796619369662026352687037367011098947373896159418289332511504912778858418485260657901493086928201977958145983510338337897119985277231757104713924484572718225968423253437890820643886526924972766207258730129084811314756666468262371039513643782724327738796883987475382660197831636318063882668366164134544568065161297857559452488866685212456633627889696820133836761846324905304053649554761561665727190062948901668880952742977638217560396819004808708956247811238030552361776995790903524656558137091927531898802458056258686301442344067389820644220206445757169832755912162309400787451537756734443986017879364164003469664570704179470116395557035473374932003214012129569083540684385823467001692331405958641006722552099264083917665670178250188072882993271127352463140308763651232770503483854912332077920054313014856160891983851174491092939236407668037225112321370853057088678101346087005874007148570853575134133721117794568696021765405653085295002779342087236567354531740703565274724411813016120350275022958589660347405851277164183480451812740649702687079125910448341514750731822803359191003060323768999223840439512778149071017114153312727054409396395052009069211821120076861999288865899091894035465510986809529203399851892801430004266557471707743993787991939133969546088983953604448912810341299184639886682315588808965506578369006193536959875130973489194283315984302970614368370754636526537610704235387777354355971292133252123908982613470506776159744560156012629831487704036806662768310342175465480997848170441586023012159978809566206974032591151001202481559495816033651493665438128468255681378397138490565143419400177221903282359365196185258061010796840026540683088264112674917405251449785963135043648587991641469483333827570202652549041452908263629975805508525909103545784357416297272096031806071779174169410169290546187888935738146410939371739231062056504146401688917379790507829108541281760607223625309395449603556180720888477912162207196098269510519327461491455553358969955989380563751364453997792912365164558375143883352234020233136593041046107090358017125181182164812479499905093178966183241949945365751768071583235724610296139038676370292506385335254516886698303762986412307969306995396154468259702633544075143883306422490119756412768871570408198225921696871855188471960967007511134655913981207182387454096166590748011400054721493125129264554380565806712200816249080634143040731247870049558456404811799450471180384936671088401965399175745456311285531443945549564049957261337937919655189736652311152051362964384978988157516856600457850602972339394929602278130578478503708570886241680854528325371186880948248382599590853347092912305198039621345628148761577286629052954894439561467526247026463865860488571005309949645263023086243749758975968888806855307430776291709335833812388837331135261351031833523186254729188562567435807785189403567775163350278756812098257311461452146385940518557519880583565587550368744633475206160669816653201619698510356281003720547602185449399452860169369572107514753025190584482281480209502605753108178372164312351921491854192919677840472153243013258921404019849203836964926028477659893014342957709628814982584312603917057471222854742643053402094120798832579642505263984142744486599206929673409423680235982528116344224284971081521940177382266881056402252567606630305305554670786785927419458519085140596892778801178083645761133373481903160018361072369772965374269650374419220844965962796447678535516412437805760176839115056676029453774883999115988179191809526013495464286129894095638045107146400506040095489541208829309431339568241744002178721047664875847554128477015610216412112343157780663862250086142410581339720815045837150120393021687997445311713277201554240787598994290843956420413576428093674769754933847975478747149945772995032530858202487832731752164023261272880471963681607999313488645620187364345391935385803745555539012031290864524276100239986304748401127478593317601156485076173538446706773043074402459334730498747887596327208967004981327199493287080282152945681058457844172361556768133286536483196738881747459041627027620873305953124565519548661272605490503670393330491993087315727511035839680644318725435234894092640751142673280761287818587798775133980383688952123387882168390100026973891832657580579988376289754566026267434512866649210853278393769450041433115878614587782674305772525996043503906407611415840260909966586659237023221524765569571325534485981811569475703427493011843453780178246697890151271110056618277971371350242150788917887211710080975403073263101241405429667925133920038850973361948249785434913199869672574637894649122375374001082554937594161266331016269185540585612126197838183864971242754098306442745547034069847378032930940148858715453177650152402443601831798246152140054859595452813060162595587776559529915405356761727982364931356155543379494599896263109820132283694844333027549478113467288114921613565191448927219073675414964847291502128781083856440498789813736452348856136807020793909679620493171366044444657629567151158326074456366361268152318728753125943649031365403875288796381811920285854196263489218530520912832244792686576168955427580142155448921375321936206825556439247879731585191346423871866491739031121159064622905640378387709968205590664626283558487006118106890820630846155472503686377711046273079929886907356659228025342421319968427153605565371366024562034249865209119591882230428710699117991253725917295671148993043734028573102161500441669544464396440093865182436435822387407039971479150072797079049828698113995275241012517152561584431102347922038110468645281126886068931728846999859501486301023043576197031920377004973657718702187265067392422158803271707372910998861445537539163066295724231606703316289688408889969917458681797807393568868418656009363508497968374428181452528298286831793530648551472743759449059591775474008864935827914968694410357145432752867569489715707285277918958626395859562609358523241338508399077507592104636731523274857075952416639915735729481569970748724227481556332876940890310305224638449480626236703004556066588401068028596472379280227255510674430780612863894944228577489809806027690006655192010559826075761582962303285149101666868517267453502913393687200768189474926811347171479645227128393186173254699798395406550006545698695224074829605847518216742555626263814186564682589853522598460461700064484849141619812068902442312919936383892421228570881852154198000878432466124235800419055160662056481070044577570593799635494258712143320327838118710350663224230571236119991168231158070940394524167735030870905305906216083432412594888547405763707018810444324842146119405995290478090608220794877192773663851872635711884926467720603177840997948178952681767199964059878753533269998267322993443981845529440544627512662618294076022176635970669014186819726006759100467853892139296912903356593808691805164942469647282741873884588205356297263950389192819295332330930882580341903521007612294990581281843977351959192870667024433723624178101375552470499097854239705201534768590653496987041165075628137861068380432255893178850172999726417061784578473245724196280015228425458965948980327433063059673285197935318304427048517979212853982449220812883265395757116619886712563415501598090486308372201371914262982251087276397219796117484594116153867217258378191123516074882422422666936989368081490309078365136730857461182505803386889044697605465925150144164008705144283972670541273804821212515254835311322743469263736789462384863899125032534757418016186912918711355066639666836347377907757623758220563785040955921578131176882361194915979660178283730518279542414738570245475237857487293028311286228782400047072824074846992795478107221775491577975156620634426468245173672407929317730779078271097896509755480571934716899528831918526034725728610631813723136083776628976238341728108402169016418693658820821965020088714864983137440955893713339053285020104555503104591499061387932233814579611525183456899174173735360240314328097773436023856185712233063871331970464197582905525707887401555513529525554103449690944344722386797383553241230865970849361415444675698304900073539236094094062759396487478891604863570792941651221191704359044236670778090048062079771071829576057948924957128964583160202068432896008125846388866291713954453110992560284553320400360009901675555353950222453678318080233365735173293386186883849447849818512111221933396758922552820306979517350739454766218479103180950541467334584408503773324793939706324504594511743384930751834412772559382544579548082842463948690401383668727724426137173580639856280002469991410645423102727908960488498325359910602717645231510974886048067065573579758125441927876411916866762031552690577870758778350906695967530523735486891926971497759680611060787651848497729086963459982836230912598316190391086619848565081635761816375256515434776578927933576652826236127763351225566845723367224254647742303906129317013369145220044093860085972404554265178675616070625566863254626795019228719455413828355666935516277352484990008792146231624403602717579314110193504044254299226074024618419306315790416135090792033260000105556653284930642885371907883374774105286991509917087646279940332177294106944680635644116003196711456032128214545536318800087955750373204530842565528160052509010307906583191367232699907074194988064176011025904631150544384318066439609198232325642152299604747253945886711865529088225294316484307031671984748786743645636091577140150017391795476010525288808896002370572488109404695065605148024079368536197344626187742161613367891777370398616224312370829898695761375324425304631279679246302921985105616345344913255190519336350075632486146677101607550018956688385948961989650622741252146117197983125983857608787943625174335589518161932100765606350348167955652350438641932963167706963896131857152290903654412859343987575173706239841412267796688276984827649482265368416100909868745041461582896929934710541662566129451990029429892818129705543534530355980721421294673168095346929820515646528598977640480069065376748058301291811921207468468728643042068394408715702244270144370460304165908860767265256121340245308890179890685287889556312697702658331887219902186890158087821369102629211199154149758256912319535299904251487831289852260451777910445992554998350392774816897845736625208370691182052594483008101017450179862075715423170317925033987662737732323161224745311151199408802377303444733049537303094656853588937339388406173006846672465141063999327580678081476275171330217729912902993703672385517532508757409650887318468361625854177740810646216906627074954102508127947603375458708505552448009067077006556927213207713381310386724862593624556397061286449640873041278465241764884766248071842574854914676366968722487787894413915974530995459293351553384068823261561276377328180883730409791510800251218859303880128629220305606491924517506278960119865960239876536507781644109365952387697513965014274078805735181474559534520054835245859612580113248360248461750848585986523163346345061108969567473304553948883972512591953797613104057252971641259716360855645080504326681147155679835481954652108709396101135447329014405210920417687539329525293294505973298813181646670753056773839982502444021653478076135138990518439595501213318391197300854253568149688191414868789435496635807270869567713149607948311210170828985381583803421011515255057500067658324583512899860399690750312870164103922826399173991832138384375480708806357256300207485796552878538850171987639333811335970566601121207741083437429430890566679104048858481816898892380000405069419951938000642211877650295824680778360975486045164581568989248368755570520452219843250578594210893389744760380296346051263670888345344560574644106759950117533448016070371060979283210251001164080711040906602425471426340106589688501911411795042598783651190987090363763197453811515262222903000403838459270093666133933751185729644116595487585155498823270646033447365595751232169118848831274967048556818044119283228436048463669312882880169740902385649114653149280103265288877670784939062309951192824915642722150487341754934378237743848247862709239831026059489825775216827659276310287665871324041215834007250249350403457935176928216013566747830770213877498497690377718398493814373888115208734491283655837019486674932389029985019195080911654584334479680319248094442010306127601329804537273803533088355518760676607384191227944403022509716766588365943094870995964388243881013451456668519423124948705876415566654479813668313699881049811509425790832577082442912572629226388053197904081572082422565932283131705176965190772624853028965446178508749774991326705483202930932925434660782954361108849690269675473868552995537131590070163979917609627037443850934832884329463832887810667762198949457147461925882610286413372808154882372241807696368803544473866202905022825556765669371812443630099826067694213989526294682845318599698601753015431283100328425667047488208329158335121910920270100545824005630943171718477815746091354496133152635616995750201361486519791539601362407796885757666976361301091544215397966059687980412044088993347661839909717170802730766490038435204614720601197051772392673261610726112962857290887123426159715161802867915918203492580326325292383733767255459579305388357640018973135224735831444109731087260734837451520420342436577499707094976993275279520676676360525330776217725335568244230044207875934139191581000441592371698110726977831328280036021710719385530870557590976268542777288672646941657629841092593440513833497471134525976087874432298604723678280173525965016642398554790916147318818704918596852170328066357306958373523907633931714633126195938042725162101867490503137455356193921175884270029065115236051831627537845536654941989676435051973043794136520821020131744136380291052630036725964550640160657610563708068705769652114717082951172078505149113462489592920927655635609707758149791853506633725903480135676545291760094880975388534352559494352617076215153866701305006073946887511468136000949206840901924909593365963919015836654737418874326269348440956660187426077714553071095456436175460038910375030263175130302308475689470262735699373839674143672049023504472624189480930585215921519654859602481137240034076864934998073497814896342129519611019332992816973231598257428884497569089019891252014266119758823494955079374482708485167835592435058629908904408066142312553047201807463083847777099080375718956181505087015242848280591329720398124905394313504077112866628200204407335428032755528828445964571525238694976607293883816622181981514064350909236030640471366981794195848817847533543491157679437824997340151394178780882257684805988067397088369174519489986847371660579723111919470031881107311900065835415335541255688656087360936402619203854235700157349564599008511664747187352789654581674674434488081401119265835983157138349491517840276252424193207622773354803782531840105769217138962663341463799728747126133260249452685691416703572230193551069790510939792081381471345001507108245891101489269297975056660912417004665127024247995204160290995562671721592814406977759354851300127891611974587368616708324444126869899905447714051561852638606452354512449718018214393553431032951474637749786871881687455135697110249374685582731587651977858873261885757885285829120890797964954741470363656530478422297993951692658549345789277525231577641726686188019617014590084695306377409153205470476478977510025301136427840578637913555613128222042754387880927950941102900106990149766349668439076759167871951039843943277544915096859389926993878040781926363449440202123433700090569582123475597902658900317212031826486608808438399646186474996285192042479049932188148809526125154464764915850454728859326990012289717434488028889481255662761262551961405084095830298665567663352975505673800104740407900868454913785502900481396840688630342840760620052669708943204288030135450419242218973844004690518833826955283857954204913803629278613522259795144090568236567989145319271731076746549531897460573049097529023418663446632206678953080384500604480271536001210124427513709256104590603497763252228748964294685597711467891425750405454284702394711127323677519964448462875031401179035758226095313274052880831343412061342876381319894341987775864232497065758472616248771370368905955344842607728857999376978177763768733225028953317750596306090419445822993445686811035359359868119530731885778340770051022066268085001767270340393758763528178117017689615165515957410063797276010516016731716336994837864607170450411501615363892260970445079728410400967725580440291037296369518459462831660212021136035339252624618313171618922883785662177733219267740253365719281167324206146035471806141214593306202579968826485336044080307553428441088786525758411319568636680070042742697806100692203554866043705647628305856322841213809361510983356110447280423273966556853726673731799966537221229657478580440647254926033990366538279089873974979247498622071699977045666863892058950412359126431502151429380032260971375567895091275183191145204338604360955983108313447347549048777634011819046730950494133443984796323929749031995837953459133798064160361639827920154861290558743405773538275608659564850732999167201195529791208302993593083896583729424169210290227745891227599139450956557665378408869107135746992414051332150951223448444957863938295513387864399308372453441104135615452156602617532201465397590005099028665406543393787570619081748986864559962571033170066674302728011112413840009861494203411746086496098218856255482331107901279149066762210773501999029184046174981693198786613115940059689130789511445580583462628205991087778814827342388314222594324985011355162255242508081932522691266644247237613371614039501147095056670877400843600038321972240141000541105697757564572525097609548676127755952152418588619060317403417917442612088809695570993259698360873026860186946295922803291409099504716826867230478292829302709310081291801847538524581413707238913373438838957383018074920066490738616737442483303937747401473974967302068081254590838012638955249392813356464948579221033977820223448320755060754115252612772144780802607969880774038699458598142789577048887903863839441844964919830830402314298627387263967060839917365830250802112931572346958100838630880392376063483540809913600655020972270757651460079088794134446412453825325087895847123313209305998559879605208799846516001924306702197722760571545050248365107932382812359603375486844787731476522899333040222594437059575142601098101725178007764218346076264431742199938416584671862398879064837485881700175254361581011144332076383804518242585210554254951732547637050350148570153690780404040843506064032615580482829869990743793886292497029297612520878345766587930228898629400277883223843463003469948325844196751289560429812402972550382673769526188318203706913828802434658907895500098179477408718614729926148532131285740787200078951805267894909158505864890861160241114929641972264135767214806340864526149192329810588068785169847408827289851049550609415240928391333623442725081224366594604496566733622978240515916548494472975759562713836647489005147789879661548546721081265724790468012945290371934311528864132470033502403273864101843162973104379330779208702504494158398573873351419966705973964309245447232866116440617403633834901877959851445034163500913184661220973226479638356910982666033193834373287407219815663039232513172550762259614992983982004151358016287839984057474033654130409659370970776930905523938417161911517749444845223279165113990314640060418995572580790916659723536932770591489957936810823838685244696522196885706430721647431330271832874703033466530124662227425207440040559809255870001117233042692284493743882224690238953682425612609207857559366596878237434988608788603360899096184726631593040582233425199881438764848779633852332789489389165213323103202682718566274191572665907764353391983289991124245371299510634569669505262515415639466672072380381431052623212411810656300775388317672803378145868929368578017509939209321853605954295827635894809278961560484258064525731928356956060878926226564996495178992867634316090429237091594235166828402196218517401751861800984791807344402202202594890352048827743754770169729254959335283013008020207240124123993521414817235028012735701456696944170095596806859496797172717268073444451372984994283897349588062561572927904495368787555424875631713034240090960727623723059525424305615772132860835161477539330069678069963717286288783856253614451424192066572994456128631155551604073403959271345972104228553785989644736868607249381501067396671576583417596683723913009262258713448789569361562844458554681021379316625839315057521179380563027118325811857008405999077352303347752991024378639632807172486690212778114706285758888866795635313633174806950730036670998428026468834910367128647014028748660614110776018003814240465189492757253991982439584376077049443547476733394232341670416141660986852506816518304718947768806279165836529589053572172462543260061376728071667012284526459545869473751581616895746943459845656426701089535640356631590019388640070414139293853421732547923623851385207777617532624598038677172491855966697693859273158579336218184280127784166285831390977561537743768414497133358164048245518668061637352843892625472871440988263329859558687804648264475615628467716582879672702140251342598284826275476037493758800688740368344447760946275273316427046561318257366123840699710780485828558112476609980511350337512552202579600932101757412109966213570758840355221565666268232437154278939305731608207260757117974171959051267318870712725231206830134699077099392663898351602596538269751129483705377674156686296514250100989099161251864142801164976237439026944757998215751795899292870260945323701254749862670846658684377241962998634576064866209747545046105648522899818505767658697981668329815297494314574490370213787203996856846347245780003534635043395090499405946586657749689235355173465427717345367988757831662247981259626399983692808489383513103503699772720237427739849980686734326011714122991448058599298769708343629404934614575158497986178996499926339954715034727768378620337728600562849347642823961002965137060334361482279899726519159670556792314267284228218657258941413257610944897395075884553854727926018230017515560038434953391114751905263169697691001389955461847302004287795104106218615718253938511925230423984317062949010501874860462782562678724711918822196023654952756851993209472029251705737575102839954046878768907196229674979162977066932235136794456170272711967051638111225720984278048268064167685025855907037110376145107831318389048189129981317698883672483796945899100336352960711058573800351358946807031529112583892751977296679706640530409096306180255554235356783043737874053550545739218102530733009272243651224886089764204367190178540984702356855812605819396700083158766068938403635868467457646466576323288617480381757061703492519982810112463325587518650160418968540731574569375108900407982120817760190374901468523504669521283610169016541417192438155175496869664026721969127195926920198143171311206966533131712494140280075537224737470691916493558588166089481177682685632531952714471245537678905611146365650262144517140204398440480635346113279783349667850472225970640086726600582729380508952911113960101665682432635291863280793823881648791537886931322735496248446171305064708668324575859837735446235954040563285998701902853047368781010604189337181908147519510924884417976885250731210223434377100819074498737087723904875569012439982179741718474901835276107992815575889326921824344866132386132221682753391896549094722789566489565998861554180490854574138066119779601150586228387955043339482144979116041380899620670682024015803505590722217423322799446654296437804569973639421851387014701595461142499145696122293556527980837452096260040982682256344389455307906880844864363026251835480660324895768118699666486477340973742776668970349364212845887754438872643319755601319842767116374222008213849246566368436582850992002440954613737522183695796438337473259387220451974182389223158592280854755793731397685192469871501313669758995318490569596501962944928012193477711743117065073667271490190975494278756031199259670835955293911957509943734281900683147045619924069715476727343052586061068841158415404597338566863037461588352424354718875292260959371629103676568551800307423265004999003787953531245957586661404648318818496346041760267728634794066042091245025870306469800783213257174153095252457928584759586592913580118967113624737165618984016441191398125574525865769472820663091335789808282718034949098999846910814010963900309220255563123730960397035547853129421164836514840766840738749852958145988059842187565918967129671868639095985966541046848503748080030399244265302712571157072810925157167097024306341928929569810388593662825399452272469676550455702889303758445205170033035438121035635729506556249687843461580675998296542545937492099157002700066713676834258514633918918516501043352935599121340755222652619968532836020698061686314110464145211890332207017520107901190283148412382676879709256432005406939951690957183780141596528563823304126192596365145629056399453394228093507763826956932779185857438143230250907174039397077085500754484863328911393982785796534255886878532359237604917973886453793703097539090414739584578418708079869194058776680781661073421799788413025941805010260149215380709509390809094144598292787704106276374086424007134693531196132340817567867606937756579463981524312328548938682230388351478117620395222466928054127898714717850763613315091640145931971761397691421012562331797354330489941354419666271029934617951396815947906120791767118749089555957432697123392132388351046839936926407270685453819364805973706526583966413861507729715360060569344310546716295255863482689986038702187085282308797861853649768907205109108058734696484860052432196352458484807658768865684871161126099735207006501772688328337976478388526058719457644893390734050076946453987314436547966718276087024268944416509858241798457842105863968058742170552623232794901334090058920227667990069405381854754167188564909500761311393416595709023822140841434004901945856877962959105007587944703129912811316827446429854629844344626343838985010654032065973544924708490979890993439979894008770921435854782352168063475907247846959290592159288732286591653068210203578112493079827202561495183227462399657679827725322432954938721975742789875192334147753431069954989545826853917915205312208912077982590722961880246917840696736892107225133429845193468078080035045209194042441735424616297913795750698432702365158800183651241078657810012222915921170092809057106580939940595384293825650854655050567452228794868364319406455202815913181578526852694213068150299043675648502716252494814238372674120988095363757406596716398594603315831259895592954955062013851796198500730043173439009586527352655411658266349400186193715887822630761514408798840920458394030778738736580308536665919777041961320383911291713929234262710723777053016391154212858355398917424356534403071164077127613244890122782595946814562968783409587966867025413594707598105119921585337804918890825052921790277854128708459000099553783822276475047845156617354303935432029682543144379346795218778591616800927000870656427349879457305627861536216620041612814048175904256516478557525179401493479434639937999929087533704772968858983938241356064003921742633264166236608534876016577305060896484833272847169480879089117185087553991038738264022226337731922606382700901849664843122806261834745031825042016028981078838852385598040056052990436989234443565695961843891836810848098905028909107561692201860736128091883622734479570928378964605364727397250731723836200473595562895151610719790875305423435283777242312021004839008805130481166854255659890726207124078704903075751185622478694685357483755219770426676778134488543304152274173935167301084309634306814565124270858550716378629234571547617511795261781779961415970291394593878656004657449126707832738698156756229466173915529196123759952096263024284819537620327054086252343870544692448211730240012478398659414000861163617708196957644040744438876350544839561561722190545409155911410788010720693045278558650206524624216647339745965183716530523097057124385454764612582730556571801246729599025985401292091794130228030491002705727097988135084223791941659004021524046448774779855533192074744590619087563145235545827134046562019912965518245514273659073637909733412334566706875659061776711210548278760230349343041259821118026243964891709810413474989063088540936286202864285871123909017003521274349676340951792281214295444307100865314423796389019076862430510466251332555589576579687063383775219526956113779095238389106753915772428173786524299404380304455061629900179348357091071460513810242433836640689666285773590938782419050303824827037443491955692392695247655705091200195060873705584575087707769647863331475029557072958006764614282217423976685036972880984175580170302844545751445988089693776340469450103971726807561721348084651360057360074360701037440767667576606199332033726388243818609267074015661521140310205036291624392696694680396752687817175734687052452043790663786018154705982163178978224070934752003157842015155521433566906726605379437894371007471738556730708286013553503828740408710298253732118102924923267459238952313073824873132915383849722053109085040878477375776070136095832545548734776409292025980542630953929489123309372443181389410791392548723877382829472622860695441063438596013310141522720119249457376239766184479283909834646657206078896989895209243908991595973456008081656484674050603608931997853981183633531233210824054191443054973378402973647840108425814476395348094667234669585806563217640665966225038969114960300173941124437868386579034643990241489814783157978147155060922655687857207921141163558562514793066087021933071351231739634900764420149760275637577256530677003107809529711488154737188328510067608177001767045374399769691431619948702904739672862203262212675274775752096813935115822982498966286707134208107510549173412221217867534900013179137161879807205089239062725739018276055732494955883753809431344668371087806365681205928664772465624894484707578787939460479545668867895397869115106992874536665241973229456101932100696338994659459892105970988572661547240653496272417853739819524644634298988326567102250933725546495134342496730484716002716513953249706572801048431497969073906254752604876262542373151994301403551700578166431148193947081582297108685517437383554581093279780298739379188296375921086635063302385509762044217614876308502321374453907480209379751690810650403196732760945471755022101016648131977657635971200001481083599252071643590846844499786365938094656440498658795010545252741107353057620255761359996593683275345409423448946871575410702648337874473450360460424958517499656635797529937507705528370813312417198466209805965207191311723658990798957614730559062702871575661197739464703335097620370126508766426774330053415644397021731287157636346873888956476630569068372815617245122883028608175408698179142774774451194759644425577812626421430546923655370043889097350705522681817884112145661371355721290671539392473730840591617457036279051515416494483673867374105753677487082366942786320510082450148481580420665623283952481425064882433761547493894618285572343458022163090460476178141029195179643194958220119945021859774839861216037578209259397493381855930075077600522612995795397363033614635549201180589410292795321591346454372841966801795993115203936142455790773273754241875553614683076754697876467479255866664815122033879434723869516220935459731597166802440732124279906035703611506185637433125348907674929137974245469323394015079090848662829910882414553652063201735095804870867852459355471265098787664354711958421726410911675214189416119658890448749152135621423628577336562811379271402600129381014772851762011821032941816189750841887506770514445863263922623048985490184348098257351473334958236277714244684340392435320789431691990484002674301175054803374794991004878611434713681474459453407062667030415121304618990265843891069060770050266227621292234760380063378835944297037469131560038438292189460238758505517929420094012556393263466682725430030283035962255723619323901997817542746173250247782177670977561977878488559427787135311893521000737166652546020584631454267238557481278405764664121049245420149906374780373188790739685945701994587739119732204436267207291740419038648568793659137475373261163879728375900798121296894819114409084026174430704234081768613432197324058531082016407064580426881863996198170318315082948178405940468122511043760596678343387125021695324450669486280922754810265663667550072260382521726494886647597826437929791849623511347736691755655005407923046179515275613522819077066163418267093319619666821535838326316215087893651550491517810616900676927092173564082665580983537193536500106798370262133976980646323519723951447611963394483453292344367528821814915174563654778052849666439321599079569428299197255857720218962823594529576455576322489546033463222338835070611983507586252669357992619036699963184684241963494544655152963443043341566382647671035548939830656954801756083651078643551772710356365718975489929351448452692400434673817125374226890903754476529694516108491929441525742438152393244258466198126352122971156410451942312174283558969532011209309092391381191627687343637379517532533721258478660385635039077745375213327264605179264044950726260215896952406446935274557209744251399770755509068578980788685130420063251005299035049439462599735855134268638690602977169523715623778225993492100576491497434537073888936099094666810546839948209360278124771469833478580679536858916387801401557771187666246826194174084599153215842512640091057978652372431400912332218877645700859505204688847848324933289348305712886941161450568313986894912693591044560198617853165971307860473297041973645268947027600096655559866812071625078441778608163180581361275251703816835804801499673422329264480815984093950180190503797010839444083251827440248750371859719726697926659456195638786733360066976078105647818345512399544508817579882993951449150006849386290644852034764456282447088249834645640367295855233791008227008997192861445942560582733946456551527073649019095871990469845055742520297858639244127183998040943069888858415226839703007416397441440084068784487716591663769967927677069833547515055435887333787482882264361311311520465856034486783081550728092837627454974712642672093812860298456486883792177705606043667112081456630517698325429605635121137237089582871476940762809325275221301764873249367038354915478275638980934182006113059263352297804482215665443730857697034049331802249548957464139965365203991822896676987841518770610845142654833398604401969267188658993068167935429261659836495130986512961494062845261359694045458834453882880875081014171382500778787230266393607994936411877520749155166883485743152703763902683501354664497616626790994298595215741970764140871628149749857210543811538697268572594972707839394789449301208845992683362419419981443040332611280191643761775346960924075487105783612581069120928917965502327992954805076337941392257707455782366712964362396524111107306269852036652237989619397634229365603325685018747347776703390273428663942845771862880156295910255871062592074593114582053251138712207415915576894717068954487652673779589570085323074866494948079676324688490334071348470251666404123140452234908321889924827319462040918600716465108372189919409141685650856463333571254265341023541160148053961359110978388995658417924008173998469868104775335272950495853088632734533426893434167424798024873205608496504501891872706257524307254056597882234372450611793625176614143399546706066293421855275817966881881988609111394810234592336163327239481038357020707551743683033473956331793519329796749716649056798139649696103152723866008808174683833126303855160102169079470283684186160507630200530849908303537244214106632891083622124831903722918971843166474727538672362683070367992093102601514898078932136891477727505906341524554268568516068783597816482989043439869959004328602063300366081080901445251696081990321698204295377031207138180383992927008817698394089775846423814263524904353921364526015240692403375427033263320660016157320628900563095301672513356067392845665508239500566901067638165102130990824874771996939526243220900367710433586473505637946493889357606327087310155855447669312737265644692227226858700755921477059643980294879791344563551866535325258482379924205425594049421549973995635988471983592359734171365251958089994694626463685256813673256672919209505050313313877819591520704646308207597886330511692233596625127565032157031467793025552771402815796483922238683836082423040491215966724452928008896927530733779890711313206601580191628696971085222976746642122974619803258860708215073178817126091842293645554388646458956739642130515592977836560162974045101289421141649250595688069712504708149489914068322760237159155445422586613749580135673636247108078844569333899880173166938498930536452626300479170692053728433944701441185496588078385978239370061631555147720519097720946860064795731680097491271809538198601219144545816418884516056988217036879559861239383873693251469668477541605969925578967203379721675290738187097580698453484824065434146501793659316916677596956253878533699442648515706978475210447654391036310010310653188607666006160330057489787717732876708109833566015036937510362886211283132273224489012029037411384251720268593473832523826688944193818140333217224962592351597896283075124047894060409247527491805505003135808004530138080578852577688168042951883235667677583827120219297708485427085304134533116575048617194343073314947995313414589133849985676479073664002081736713695641502589512261352754022039322167351761691881338552227464593247545705668304762556861435946687454230673388161269232816959380616689470983628719327470531310107960894352802004950951265216704705506648770393399794806740374183721310265804331636003375967164787638802613488298362857792929977428583091440170970486016730356703278422871207524610300482585232630378447905005759306538441723619821763046164906738176377522487231942394396741148307598564849980861051781851530981847295528548609503709716650632775207191371293085852679941046907693831032806127509577279790487224558212902397432038106931692461127961919369429452671463995882984455358539448373764489858497743144768569955933573509399670714883679793052493623732880618542602919633612652696348516558462419734247145113052698874243888519972802556274748418491835570693599797952875733378187843109058266460724151538792473767148698162169562037687206429369746286525230708790453852764091864271842404539350295625058644801390578844067898122777657318945401524382579159007808888061051791749091815113328325788988944670225836691258127572209194086837656564895643736948536879554302018876771954523521047320147666371621305110789805248092153086050305883450464530945126188589825994547528432584278386314332820211110557095590039856484909093137569321721575942194170977186143812307904473370635709523269566573469789828488824875581972347875266632768613777471724734847064626716367456024310255018994909615379751213407152550096174920800263973840654632660495988464858240061467534663581223239414029278067130849288312343208810906831873989566284580820700036534795379236784004507736500101380963982332323973790320228292012690870354635468793294748103239716732001934463275442046694206913166337439488646900240880236829312178812251573123399892463959340804961051124333612321638401702763606561691761028790942842531333396941331130189496777950663544177257854462773846029458555182678259447001380725280900702466037859952296573232677996464285120172573092569698009327443228511532833612810573701909098712170411608174874818509481363970585766330231399332845969403592123228252098619359432927651319726033418266903025330184545813832738559742691232772419611016330705191751258552264430684750593254522494671930499098972451836883604833205023112570111451103535560887642753662971684045596161177451356271562171273139422442226802849270570644123214408917497875733442776081298764607340452730542176167576962557094979824212190147820293889020002001537874576144461393685183041730663348936532551648164284347419281426876305911016146033252247776922978707073727773209761702464601087748589117207249943522448036374027731552227311634778913847599206905905945282622117927199824152542193405496269408619163426790043150604867868258005248694907482954967795512146281983349019763404744955197141145555198113796898946848656043031380114681552844539631533133799763249531551883467035988190232001794902572162214910308293534521466091999916957119244045683176253040978309497783023977167474242506400345066131673968292627395350729639530050359257736116274460826215033398124903232412115030727644477533633337775175232821110178588983124001437162316121285944540841836314352977702371927049070364766086608752332465050036619749347347900805764041794943795442389204835442595014779357764102822867893143227838312431839120266591745944927814174272041822200338206112078144183421155270621250769809964942549449346817738949389110161843172210704759549777006918286437623250035761638889817720558614133726636168109278973762761546409354013344319762571195406528042685446517147709020667056872760815939692616844772447026092879073895503148228835335323216930216692715916365334876926487687340874665498039163660133659229796014505285357830276104417462252671577996475945145575862978532822531049130233946920667752011160394260525413971462649271889141683430404111677742071126098118061373981565822542975297795228097744183493969384068677934250821171819680459046945056502772972163814576808345088374174633093508836888053901182095417737586986984648964433179818450678065999407342796230807445292303849325361163298576383485208242064528536206357579678775163381594245790740020249068234889026118256911575071085779233946345999838373222081319299267819950218528099318589616072458089753249686402452468374944940937816086314965852735495423855666985155062948451370805493861445767237315857227034348443299510869349975878335813239296645414399500966640479524473223617163276424289999737995668319502302094238644699072308777783908548444466688782478213510619121971003610762829482214796512836097041064800775231169109770790481780006906759018729689173285170025563956099983500610601473107929018083450806287727019663757267341583015963835374570572283815164498007012444983399896460887191028474408900415328656970680565772085992201575612074998776195661740718431538856858747277163337582092876424565612279181644729213360539256214244972351529453326927442140467081825231092437025242796571692154583270007179280196313298927918439918765399803015196189437900991641976384323250756578786062423509737717511959318858493143685871374567801398591520446634294935954211373594978792222315985263269844135911060669045995277709338691087401797042415962729996241806274349458989916565405625454758616151197474200411860021359155764145565635213994168681179253643628265209929485704773470635164965806980222680212296477056660705182581493863631590314976213613387009923904074069779278006539168635954089243251588747557259921153627994547234615318630165564566483801477279904602935024456970639542589716283100959190093359297723132009697976275085290971476633846700486648969082178404860305204784125324340894449449507539536418749988532612695801144099974917313554910544709443936500933396394795388848585655587384549722931543177325430146020071980870536257154064131730824902832569645549904237928094122587606785157021608855734002195901203073715109396922927972012616239543909907460692195143887515295068037497308961908070933737465974791847817791644961489249738423122455333832331067290064420162079162100597215496019517643731709272448786974490268662725736630734233001533902315354603684334884388830999877927180703345746465074684540297570998508474699381818324925936883613343956673380926977257580721700074497267324604278337068616214150672370733399910173595846585112720956546918481701743176701890115674049985474258880967093674418044360239681792839793564880314358470648073638199894984288358261730103138920526519428115215807275723357213352471703771927787472688247978284838582660171525587811195669817380195607692761636647328054807086330968021274945988253371956787728692071192217440609321564230450494721144951530118465468043530286602349910966756774777162341736353852887873417434002013304456457535536436969295126981391536181201005995587582230973779646044426462427076661070766238073101984489958415753880475645151276404369158889736931351514496888801115861182084760243638664393430580493498616868849919987030854078662096307745102814367656607948303980517353051721551039979436971886156255873238995945823125524310140784452234529055912333492864056995755769047895975330946187325656980453926268396290708382549989484576594214352794635668321258531773156585575387976988370049173251194876303545505968615063080715219888523207441195518897874698662707683045990905049152277685653540339075093584110434786657430093343897482726760159681576162401504674190818058528197659266088640726565820306723063828817165131205301489684139485399250741977857819243260956316890086727924279882435825392662022601734002414383092230518092897709739733776150432052794716495831876610586848941818052120496106878139332749251631246177592392993912418085760930588943252367083486400489608733739743913271144675888376490542095875812803315094440550423883923830445332554416988003623513654679606959423220495736781702476048370470022169125265860176436208964986202789630659193138714411645182452123987030441827734579333766835986891678819875946549374806970472790474554353242831515130736589937161593878697825679079911054170281688550429822748329512330968716133580964715534993078592929348168642544140603949727940695524353978555568524396762934756645450528510056109647539213567784773132950562993100829471645724059373843515329471242218141036208604306701927874715132584134802902008063987544498572499450705305598095588965536556237624260823885540346437620785251743893671389357668441161369765430439418918856095832170736134469397419656975021232076992028164896766097103181351679422736847815021171988316330462598746823260022754830697603218136492729539430823086132728253002794015727866451431443858662277083651680604065598710644134342130729009557547034643662938385943105104432131867030481289620164289088756578578279560234650878446015901845238578750864735774264758950856038227905022348069394568927799741676893691272925961061624629401235230799880037057333157780274741551890302132539697352623001131631370574824883108074757435515664907078429134085255756511481901010517331832735448214919584797988621993766573485509590884775359703090297773532404915775587961975492253542313259730643570942063810950550358928385192824092705927279585580575943579737083121319955631935257528644701996678935187489491941723306696220267932222818936626257498912890012793746178353078193536954537217796684618386286695263504709569190310375350425304465416535898862723912289792610765921786313241220369924665900770590186189861286998800020201128445702317935738668744986047196368915975997814638215773163083554725095533180296711467861192435785807590363846069863769275603779544310828991540212844002554614171872371047206466283901536767574649523978467901042607122256789439851100099832596937963145404523574381318018576159709161498420409210626980719877966246129671384910507644681580511839136300598481821021122444458344318496447358822331512935602417025647045480112419357435893786889399098391713918650098988129569584435294031135050396693037388864179140067522604738856870429896655484986715319025206834292003505486680252744578359193265223691947431459926467063145535405161446884045524621316645399612360804279965200399066465593678522693700667294662039894096876096720684613781399303815368832687311222505664915783470522006650912148725374777252992462800541108147878452939124442912190188420422907612558947078700148278852952718930828966361635309385548739739649743783009727107846919288869374852703396898342025143830431453746516698254691962341330603621293015233890198405094507853256783472574726491964301711652559401813846392318431998786770598211415418872573926065765450869760744908669674824828099851573980222788699388546953045844003997556754884089801250646223484695314929782145914968237932654762710035892001460786325913508398943899793350071240643239282255996552970559647033879819161531029450658959734388449265301015358428043738620323203393738935918796242214457157928224895528893269881038003317777215552727569444092255291470797052103882502807172030437443602487554699683523801487315810752457365275170258825151446384819163345012951483063856964978058320348663800171056481828999101377691884196092127350340554207019292006435143338172367447742711005312992859669675919224800397095913103121374436369928039597459501771579427221666470800919433813789694398090903123890256239917566886430824536139585803554466756895894137008065109014512910045425740043511526005428198318108927438468100131977276275577196902931527703101890258328328406882861516933441042374954059407416679459916155238795223336197506895199362673711805277175239953804200671086408859813962895216641545434869974312966609174665000604882504790640369427004765768561065354545323620705851903906028957178063208891161330104381504927029841389399356479277214746857611083725499459187999406233040753912775632916123019011718410950369292413921231622902300599546076866032167689280031600077439171152103551625331054150575365647863400937280108033550130544170627240569154288211434298577688178752512519652009330905927193220693275451188487055067041276007254300201684631295190500748644268394591667525358634580142538165910012891507656255005463227781452591017133708653937555059917592803825550565462207866793930186468878775524863256595359036607960015577178107888559945999719126781523835586173210510835629013434021087684321565806971985049965059312688956737159940042618194610380183792040454610363475106822049052325456708276744992463572698001353720873491596915345795263514177857985525017037202987341989856591170970714834026890038497520536128618618935636088102964315574174100564989499606082645123881131346767454917666388173733046250156291507332328200461345172562320511453720072035713175671041144744055293523326306000574614345143702642810113311174761507137084330572388306727655211371972725439639439473032102576882505229116646823565264013798414304747276802841080972703496611446662664400564211080388866547331767927785842093041261551478180065360056882924274220540746573908937557017102697054984596988721325879894093336934138972247902826506385201012241904512256656682765098228800013032203309569741483616865288086611307228573588227781964393957727585881207361557264685679255679640160647973819632952876746261978771288159696071018606831508620944552429607975865881613762556156761160403113496904366110187108573427555077692393744915198017974035298340285104578826868977552259911338747351654069397364505862696440799449676770906380193624055863341697362035444309719895415601377011681065604004196478856038044823801522246385348782331198883101341547684125243517279690963375083702496127090017895756484666742737116166214834736917263056089290608423494493013697223049317025330555182367476663733903750867489814384850899423077440513193201629586236518980693193201441819712320434006208333728855985406780461528466357909947080996165484022392140030919837199027379465508499763673006838308638260544197807646703720060224375576548368367197177858619223217203208050200909648992104265451548278304710424102068809965911486145990130151578498708040318781273264125901720850638556290800422512157688108492963684951307469779322520173439883579187833728031529518402223149475649432029132238826365133620079294206559755346867991130981562951261894489763709642519618758505969633962357385204471949292030348924674767110099418668027157031901908927496898705138237445327748393848692111481385357222906347111220073502421860398643688203673427492615919335727886980185487076616106098123609123766604577965955972191060772092482190096616855136020369624653305823797612730353289048730018520302949537200330336110112158705087867512489119789438687467740165338078895991032161403811753618815823688289635549098088645014932582109675275251223918395605672636553849596229988960998878580507760155640136370673501546411848003130716994689200195010084287488815666278325721893952370204770067546375178088740529915063785219172555173617689932859753266768078400146514428715248716867889831668809698625739697609145143132936188167462490362183275289420852831718693509011974410673115055132577032230226083319258927577192459537030074746703161056177604408249874970196750584430855515175115151109791682839392741256585162860938070134000245989910838558400820054727669756016579414108229716417184820088843132079933945916318569061877721333806334354322005118154140939657179567433845047309817110871667883654733918986686175089879793974993029210777443730012468100626545042580190802787433715636033076715833113502645139644094681397644464248270926847129701519657557587892709787430599897275672531482398281468636308846340731244132089112025738939686161077325112143040882289736210542604684573185666382109321580716877887139529325688749370926221112538924500197001288452209311680484141274075099408206572380271593445294356692464993576228051002722583786587782878755161281526499559322299119825872582873037097703327019580208113107973133433893473617671519324105459608711391405033112026260805503575439430039120383523360805171564593099910114320328787210819528440884778407424197326079959375587733071798218158206450460395101881092604622981996276642844549827739439202727385052203799896571859961132108399949089838937131670437005272186183327152139879046199046670821497267401540327884784028340848701165718331348712926464760893764943250991587896677472246210964454116844384413499584033101654333506507175957801312096132432748145417050401920390138090898038307181072582677185387009941948939516410692380610636169530128111104677853367953027487387616832627808089602308792187566081412085271856739265174465959829449240115182863401989595705644158549094255226976129185339171441847274083560059468918329824674073331871872597532563345969105068745900571064767738654121862108775216802501077693264265695966870974098066963295244829197932065802806198634530132603741310170350479148348906579681588742730647874057357132837048015511253578327692111843259595569678101691944369154783487102562485727915067996562183163743547610194497726309899310911053653092234083735383734054840408577206525861984153230526416929267634103153089695721268816192243725648906405336852588196163703825147205788254071092696013358208053820734460823833890499531706418162140641876344522051397772482528734035463405056636813078199693320617764283164762096541091323566991474974350690549225144258512045477728181004692127120609590637128972849009365065956061299010378197716902263556376391131258908654268821324585338820568427502657526753560831297862337503937874862889792548839204299910310817594263980407786628595140637929057976514206182641024358179113379992871323925640684915828302014932913789238641741029853768569393405091987732050430879052172420262830401462692312495401484167694923986551341509866220143521574759275439019414435101199673433914565441983282724218499715827559965733979295382902687993250409986890062535753506854941532859627981882519870757151948361692588078247721735530462612082700839645329022825211951212852669303105846765065333776703439198158135053008398869757376677915633140511632354411887135822090726891122572355024831889079174267076866450719956911816864591285705342863737429113581899338908655927269284059930757226003408989384001269913970038973831383192587818080600257021937897936229707956763652262435197887423896121056808562098194370918622663520846178600724216479726557729264043149996924616166015606644636906887700724479722199849475001356657782018263865196410065840443258862219230570615388298395848061472996050042105529733834718815336741576550892371186114317277625479612463172246386434094426552321048634716089905283842697966445924609008113796909743244180337902936364526753746722968874982956443977348799441779767178546118654042320278709212066055282813934338572203714218996996163513298436083115623508508328715372005477521839848991330465789139920791414259584648060926041758717764071916290931835370768590562875649240140046922804525742438307776691272960580204198317954863404514455705528598443617943175078662801093272636468263699951219594846841507081278524126837775450142962889614198124977774118310401457928995681876399842634364823122778673048958522539786816437552567456216168140850721944736838935339653355365605889842037508988302557967727838712821464375096820259191387163815764485987111639745154453865878076936094110188614911801749089933375832693756135442144256840302699437778953534761647067404872414982150710630342187952066730672340594165375294734104898293658608550472088044966303429360481729480655307761560110498613017373857558268884428875352097092301426124603716960376269819905700299159085883941216717766100247808044099212286189663019444734913298790221804683158707672095613611341078148681740159440799434036528624226999471039648271911765823735172797630717781280260155250372886235309287118669320755335978454568725558775445839519207042001771952649606476494975890196662217907126847100935556795092708760860437567721686497800199688801218713789675340160139506020540021616920757414039520897135649245990974586095118257680204382284996825066435909099420395915406574375588546536394916101668967687803090479963120583507813222909562333841008094446915403774231954756276943267409924004579691893102021480048198258173592336544080193349269804136027144626080931544325890820978137639377178184428244585910456453876235118251793478854742027433683832211269526173244700249709089306099503264898764412530801935100604292167196449883950609646262240860243536127613817108856688835952894174648327323767321547374674233273344267685777379626600300535172918679411084350096786797822610031558539824087775729611984221795665255930849027264497730133008693219598386910420320184963516268773593545764571857317263888595050970193556109169283578800834730012939129099054786511557274196864168257783424620014826247715127756998618700334120208009173737358323059190300667657826719769315148400161046646941686015692495514437010668676675468628560389062402397850585606168355093460052457857123077863959478100590932134642430929918111203752078626431020082703742282365809492527647175669089097899226925269941951494563944654219143870231315840048427496966263209725938954972395499384168728862416189418874039584886311342018672914463063927304156611742038372047457386446138034347479208342166284092569055386338319850453396004036217951941239765226268310462751691502542286751357743367628366171413772991940957775272104081151452726820854689098604645732477188164556511261200706395425551487298649486840901330284162589636650672898883665940540021860698578803263345426918931413899083600336718249971527281157442037619920288472468480062731575980117354547554275846906003185188028982060764630540653450076650866295847026702150035721655823229052450757851913217129104337524253734788344574250911444314518425107991558241475983969783103962159911888921356359848044888577658467593948538290335813867761790933091353500753399850438575542824611871045951027282737413438830559289253958389257331175377414385731639654907463869395282492682584864719285619292747806295602545167910859092108074693012321222049530758959613346062264389854625949736550331025707647736245409631207071387983321721519675058479780444703721310964996321499902854974167193072653520033229612149389118723994100823903789277582812976802473956785001232404537031228093699756008338268267449311032971902918895158739491893654490212021833110254628717303776654235586186643507619347284454178704303882722755018013020528329214738532996526901850673171746399741167436877269623066911372826701810828408634102919806188219142813300138229513355221140181192963922280280169246028926790580881851392212118095025219923483430284865517619157190531504315935395392803581788008732289031365738931054157145300642005073448173381240289633406806754645659053454443598228756455538678772377829132057875243164492086733818712636998734684783109021682858717271272108614457534186754393748554404715727291329453909577058166284349537262449353702941686504184207785661407166281665555392073094049297618536741614318355138847655661491800105198149907671573359242028367199424664983649458952134439865705280222959945848403041778529740188495905339368647104695321984528912238982757528725951219428947180239384307589550875716953515931866866832304419672913068855299611467235648650257621640347667055410217957166538648739275626623781582809050930245878814355630253613579594451755455128715920308475347327705991696160637630300671038506449911278038539662429126746441710062726268432640354018614768817072800246645546104444172090683483818617767652006368462618596241120724503414482034990832997589613605531641790046803242164567170573811036733142268773478034822305941652637809686586413691154850235500341595861078444368193489720801675561943075201681366448615034134058732838345170154562369930439209047025955063180178249703459654533149107614173627758501838062786293666068500956897609866249304206964742040701987393346964882862754669244535083445626358953427100442262424608918539566300965515284238339829126923976243016009549846818843172559255674174023750237461565586953944539770286032762044769549441437449662261234334483266526606568663864082137831020797058533578099699238792935009356326265667374683065061627490671155282686391419696885521575245018218105351184246177877605046396826563351630419027122628749238958122175582191846766405030635148662910771460347870635256622593254612400669039997664351105639750976760960086163467838506776737604751063672085508357283962901002689064954193061589993792138384736359189233661513014900159055013105941306725575198460148154178607902613028540950810369998434433536682743577189793261761521538617805097418702231369338441634738478144326184073768003047395888366054181637541762973050080710088858895048800076443809084250181236002006797211883261814866660375163758050132439989406196925368456069967554312646478108097490032695185751211832300815874088244336713914884856118475856600626015232669278780670087944939459886439858473826521828759834985738215211207074135828215812593397080610893275937696929399965992461048451929789610022837661642105316423267648462189133613112607555050784615392557155003138683490893688297030818086282112074857306914831573632011813102068302213025344082744822477714865836365546126771942782881663284893711361620037640008592937682353595212761958669465302891661921563216606713248274245122676886015845692223371780583828025438620456454261434386104673141153023334726202910943364775943848200107657171688850653555581575141712120825854943648888115364867807538750508335423782823915475695789116965359231440502955997178102985187512357976948276894898889825286878885342104846166112512451567198171746065565282960999232410289477842918606487762458482022779683128303947702180913328527170614994675925539166519716106175734464905802385875278043113825646480256889139555947730645188603122726217277452789756340463441239817619135983113243087402724499962445737783670208131631146398211571001959848504353195918377821791792043082273646104268802173637502310800277314475092919949116206224569253397521787436540402230602291615732528316539423272638326442189745905370045031529590309625601365836117586974142197491091511485980746959053077072691952075413932306271657484950240215336495971791094894982320322796855516150937271798727389679058251275974783840519303136558210663387780582272792948197227868150644747164651259832451405966554383811162168001848709588054511144960810074480858519763784299044074430716506108966237730262856233443460882879285497844140415281247750404961952753646938635932301548706218245913660883445402129840539354504121728587519717209557395138557618369431303831310939820688626527147998497414190582964791712106035260340097751317679506983604661118445499626611943722481505472702293755214272570866446631081359299641334933896821711093087800624651824902227766570657256742139512754568553946398621818357988455352364563134672797878693566396341040897476432173113133288690403331750168108515816943413039399830512418985519264901462267661250687613595910092011462247486994131498044268523416778465486208838822506561499398390312989360611821213329663029803092289126354809819126530545946937042635214433823673393828287828555974581014003444049314201482532899614800797956882949647985893776638667573822115154282749528777505025174884265503948437211886999669894257828095212395634845516695413886149190488243117150525491465147873688335280405629132229862074293333035249756959995115355831314104882047918412278923338321988442230315423639950175186810796283495188836281591385300185999797512800027741995438384269927844136845010168307609382438501506252599254894345814998495914481039206532454512034204489927218695953748169087501854932049660357138543205365797625464073391158463296836123617973211999772206175263408184491551637249130566187656438076702210055244550650353484526115486653221623328648042918941627566070803078107499066490746312772329329736967631426589167866617436743302723671642652553577603686203922575090968989742910426708642405340658196332784028923590594590366444767257626141161403738246743797208927029618414377641359094310799293946114869800028542932113886340974271588602839879659359342787338776290000502186655943594056167053138209607132034215617901482499427717335887801403526760822818455380817918059606045321599915752123968943638943008878713094199940338312896287870620915376585739246014695745495543671815674564495910370529784229476182804576644855059821484214509374559199702866388743609555296478280718030874257770364903057125922085222879103806300729184002108213941561735614115313446498351000195530756836093159070982767140413139975276022228889369181096260757178519096813985506332043219257931994359477434175424964831318579122509342083162137606807521002364476232603426790937666847464120881994927355723964245451497084054346667618651824113381216107886118165971502640799664709418744655603696232365940241491107467374535677895907608129728180134711901816071354506387046765070815725974301337114814952925612437135484980747400551165641265035590527665826926182371950231441488827429526808420957522457381379473452529782072696472718010518857593108247580932994293936775888062931524072593201044880090667930120672206421974160420090499639170823868830537640457971773304923148654839263346662614680266599816121558594418122157765211662672183828550542562222846011620040447581571245316706642481447969051855587067568383895988902026812554658626655933586365260386671076030524325010416898991480730103667254877892304467792186030498187581384085288160198183784556532191985941644847583834899004763781345311819846945284760047869000414269847342481583283517176995616711743219064526268251305780962347839431806910413603649394475739869302544369362197249426566192345480957621353784211946278378698736507607692159738634730906201045201659307507918018709870580923581972483976851756105949082081619386879568217358058559035485656494944286721871032256380952753261049533900281071310911622611718073463768439955987047893837352826970215606668639933777731979287337822745709523660093826153400455182081840064246134509946132371902903412003838792329498876693872616211374234364790282027851451087502725843706686897063763150687483681816252409733035254159317512583950298004413820630304236211220729632870929388741787798888327523277375934219936522227405720312857710870770250012854109514111441499211539984880372892538204392608599900613260705263595289300558067193444454624074454614398673246347398383849491080603353348482624516588953117327637093632998090397089085549088337234005247258613416112845614359501851610669135769147455556174335674034477942089488205058653656047524545857174665363716836227071837715415264805936219272375350796550878728028303934215905363777668323747048006782217017984068994022059163466010923374172211563024619025453627088943082708398916851622421956116806149371333690985556899710349126525388412234407964703788331665169966179146998356058315028273708009839234194725994768002999468995202985253556889240125307473178867582759298794322814009080505085300298503481187661336269316917110076598247007662772224791995603096667884186099816614865327397570579962082834292077999473369439966707936076454103215474522175064851991339613289438370946980193805022101407906440848974568838010160630031279989758766632037202292719085174532091482409130864350401913769475315057099350157396841485639982977586716238605367917515095298441051884378131985601015036205299252432014220374303602663586682400068353720321222640396590805992564766582063432428325276437513147008823443798100096567192373676812985076654909726380650797029318697292239939890115295220482386282079066413134304174219801703006359020476914390790063770759626579694068193079000916544236093956860974298071257593622440846636034638613868029611093979169103129167387008567821012280373559938786751851983548427583112157796359049772127918556645443861307217045090605445189597451018684519992836538533972649472468857769366874696265931369234772184675775354687100550401463846666476143575920860929080695842050641214407147223028514581772376875240213573748466061931510438864232626503443785953154902087066072107059421481049481327500734160093484085084493619828046006560794203177495983724859232783746667954607404321409759689741241751410330841294896893386055533981050209947479976774186527385802552322859774988370699611194991023603266932850722099188068627237023932744177184495103245540118217319102167608812380215855770568391458298764217796069594494094973567738843467025353947124764090601886003135123867604904632498961240147781793090370187476479629006219501789077242547608504769732444060884103133767666895796925382947234981100786619931578656468417830534178132468489039337035870552436694325056073981906687477046141490817610789169483737806044642273186419592688070781219069921846516629273549313092746529284790714937362019126670140102832947812929216854969182012921219185102998211885215527489832908336427152670849157150474210245012988672039836668028234702682797098069170307984312945136685828228807842473961444120628813102405514543167246299776511446092008672742136901706604766343111556192308200550565037669481915485189325555469654723092964219206068470753725867603396954508293229597788351799306520122905439477550413337604904811679561710556344235335459663176761477940892726298948881884160854032868815035415768031221033680386472777436927979532899343279321530092506830031915690121457913516878273489452517056579283726813359115830453038123697857869320354158379203680869180471267926091836122978623100674940229201716035609771392935587384800381125649481141869500661366654781513508338607174475393201648923074910389298184822023512810858991852646251117676928264579876775372808393850996474588005903570672964849237495804374678100613214794222804989025404742546338668678753786914312455188085440591907120624434678010343700247634974884181113273910076648293019047137572389205966931040640352936048195210494794890117125446777217026642303004130908994870693494138432521440734861714904757418540768147800764125753292233905395946170076841627668901879494982151137124713590957340008442298719055419134156172157648061342906778317195829800793260435221271818578293633577110195954938474663696401250195287315593038584871434481077947247107736260607438247860304352026076062268769017123403961615962421325828392668930403991639564804041372900857416283822064556771649530905920016759610844283253732901067802151273922428222139126616903067615505237759850726142538006305621802315994864659358574257344587283025982999536810596279838004399907152336566868012488475232629788390217120400546940755502659252290361792488241539227052470946590003085493115255615569386545016062050232887144565634284985714766155429898201297690121386588163946768062313812387085302085252728297416291344200152781452834364253647290802445892678695927237998666275353941568765662078164809798058749891208359784735065279426219736775952471202420463391332072429939546597829152654224625055026729254064157535850058663880045373738573954900541664995312641660352950589482737018163995569802500621411446884177535323943488446331951595860906568259437718560427417925894043112865522248159032943520782568931913784852489423505961329477162791525313467280629715919422037539649486984964677812593775438196796254267254560129908145877261119079825865523234831292846446574752045609197637493613969646417255271004167782825668890006697247097318380852109888555182407017855607982405693770123128178942518980313697152085066924858581279098910699140788676050960744644333392275448716565829888038043656799606153535532066484486406914654559312319140708024125849711001862576420750283167198432260108729674163737574241748221215124475264931547127986485970350915548945107001280568152407570277372291185572267049273081844696836099390104511106182906402139448768715907615950448255023657018162015895551062218129384333438607001332141187581176502429892590475485277276567362866451674127137271658247460753061573835187297817816665124258558757958748075762821498013977258316437274837320084284868428153640485085147252126234216154459003340327496701638269571830712379132469082164792758122026576756115420929887871590241707867358978955037155769366805956022902812949514318862395374269566149163872726318375352080160422529941681270849852640514487760883532812956035436483930760461411293363525815966265508507790004541147895626499364855390871044050060719257675797411867878793963306458205198728754756437865502307144548912272984993616259462501852840109708299936214967235290112142061104209832289242432798409590400619647049545687858802361516590161151914685568909860673122289219538114373651378887772159427184946646211954436410294293297612056562237108565243692459753932817422518250243382435381532318254997617092182598815855587520786061342256017824550438047530298486246028305003877207352690792559221712097379882909295242736773932197264224006668953294491927905285142346698131481145324618391403605567613647426232872341358246515858644834582430577634322429584987115789481963903815383741269229696597316119371469546437374438776981995085438646129624828467469041527512087514120006744714464941697068741815759095653542469091967288296186932495868034476613189590528706330808626977903958503728518961898968145054598588150871214756741108957138796284982081663165279901857176685921766999744457175232566308512275354688273587111465025117758631777135543204760482309615873553547518564269362584449912859581920940950250361891493551933584156297415413444711161320493800201776946512897689120119334858327067268253386685540772791924959986920066658384072345075395794276118748419098338131871327970328637312088631812554760102355844500989388472742742212651983356251326663092749606099606255199971980136881596448225621968993974109010183815614305502746408426979425149089053162156790209342151486192899020149405274169205801535054864795486910353488965059649444644765468737655317952932251088065957451921475837489882017111310656054592325560104044944641794003585453234348726918501557433503130455930295543078844904563972936962348474341758928208725530016178579598900703405253450997132860229756357523297689035436390645753685214383636457688901487872466928876233713245405156272223241953407815566796989958450098892554415940284623771741965723503171554607317046212437764422743952142958544318696625285901667213531001317707150942973616763909112974249282972599423137669857726932629886625783770512381340239444451934271801763040861605432964283436907626172851830783750775080080400644870801403255201022105726991188745103224471340808080867957968692615755795724650992802723206351971924821226720392277903201560901065935538010598287464387422926315123120468639988884385796334957384121671952937575381014452428658394054178945023029937691064116796439772980819274061175799062850699557618802404587978493489923217855541754496533263164653750681169410030180364097535193957844784404308788137786332921892008393806037438588814425619638329304527881294282289229675174429065410886136247632966008115599967734006860100878679994278488437007692393313348666562241718000789768067749506432754492405945531043218644107660282412339895426642808400500064880417017942163560018375841596984093682435899810307184899554781926934900250236604566203128281276845063199317239619211718698889733972840155468547300681933332912769158365195255259528924855142262681373270666973037937304628286065903076343349424853208728543095437786629922091422916023185676736203454023992402237148063180094579496108436020291734997756848358521007437084404797514403129932276002315130488665496230063288967347834016867784227287348544535375955893724491902087106449174923585157642102659916606435207487422210101197674630570947364234574565450874924925125728422392192847291885703205487164458503431854729630054945067550199600816152219838439322798972990576624324135120561591262958521388106679929858314225946174842559568826817053452862491636768098092272618203079792623369200591636857075464342179205770437665665371286964933991012299602185341348462419077417257401166183127348329282744127524625567755901599808620531738723311736439421427121806319663735230268884764800448074190273042850024821163043996749732016630642206093005486657923596735992757719205826395039683798356995297010596336756659979083924466024452512861815078207239560692409687335343556424213562181986297011376163818020255893035889253519263625061271726184566209486420901695776011553307783537573778924832133570246938535478133758757281069051063558264800867903803113581052625779652912944490060393340061732104365348832938991043196784987152968020774093557701530136408636016428770561753984322033343594780596727493387613978279855584782886155211842328218650983063763924686135101085244742871898094072770275553640141007011221752817725238238450933586288816775305664116851426954124152512429872606331922851861660902225664937378161054750183414122571575311319277392098000631820109569668496261875649539487287500033009356140509586771547458512930825442287270689154960043807214202762456905695420898211581583550209967975560565137206796284952705470024246817865567699073512354889790123522943165604278813112044027183019456335882270755205101740899442104235583812397033599926439218784103813931529158832398367085535565933964386119694003475566976187538026454156664295016440213502934801330320476244464071669384681795756389297415377745082289834660940818157227881907113984203053098556022410759485364625425984143031448178333639461896795414288064438173165097885447768221468466441613914373932102982747233932985302279569662936891571923045376052414210281754358290952557924329839702621278979184423981199586437726408873598889181084334981874846126814281668267106416347264343690501514074293042798133502925006919818723202840630321616424779112641390055643034897598989018916620180152657969198886437756044675797212451120744923103201100870523353088068958381406082596529102160300563111916034507484867908850159842899126387984557190976843852904069693732188454237988210594899010511004183032271072112989733277821608557921330173407718114904025791198039713033916025390603874587119122057281082245254039104721461456862296201956905970827488631918352119798328352771687601246182037166809031373651975389478327015242173799291278345728696061832623043833960273181586013211523742893864470567736314460954356857462785192002440521801161914059689250855495159463507016609101034378012449094395946581937974998243338662933298592850902421330088019997853234611425908003605780388647441648431386902020285237161947561979446975574422441772764726700391459133784733814200269984555353099607857303214954910829512943241902720881931458227579706275870955305864091114708288895816037699452728304562164022368958115907812273665047794710059309478178516723318136615409625440603727664399861248459629288525835793146628548596487234426338319877160448136257946649317353336124742397063381414405617961021849229301176777257035951110876044857059176627438862386803708461790418638576933775727612816003996813232013284807737780365186063467066937008997864939615680333394490214570474874276405656040445600590072475888648028489058240141779861206063002230927707312533498994658721570453396647499068941219955901726982329529104760662617943297426747764787693497003861842250282802888378675717040870525442085252340355085900646618553147604694983473103525476471840288118035200062072009822063360889457709499316653593834167197345438252277789100955637485708672587630104489829613714749346505989786048581543661748594716332002845438387483144949358823222509010456251451839834491278028489380774971869478614482836261715910818227192674362919678169989475409693246029742822162272763846998384835786838843459371769491800036640502698290186110000222132689758160183420092765170468043684528821429866476656549916817067234220743747359467649955860011052986971660891210601353783359799673911780675144985783362476788445050930351780760049811007257558765104534855058342010122957164419581357135772919890021868595812397782123358592423317082928696123230917138155538329003003235176458117429715633901690492418540333353235873646260048452480592824640618554666313030451796966814721005959527285877716026457533289746525978403642944897957813398697607495307098835968012578852894722564508391931589144111614031072225333123383899002609622282213665369539926250813948023745374861239722229926175254089279804579911472077651874250179232445807744049399801964791517298600140688076753264640451330662745251786842024377740089008526470834548356584119066710932354778219750929994600892698567502243955657542345731577564874183374537668435248443299043515676496639803678268878846853508286797544631674294845647160642728640953107320139273485397569774180757348150197078129301586630017288825260790138899246829297712271434332406532686830041653695548435128251172943669292439213599210910902331843834523678269643106572187286846431723077976620730381245441798989996572866491718338744040818961612892781059743513106122984046264256216610238780022627254924702110036559818734768190487670830116097129295505099102168906356384147404048012694651090959907530678493984140136462564050103938690790312736819321437896360105225702689012577069798076340092741642287742332144677367388092956099245499967638658950216896414260265457867569920445556366543784800336745670373372609060262136308776034604610584621101558346430592323423179767450263410518544260252676094939781813626987160168129314792297667492088324169786730887307411150829288669469140962983654909246260391578409841792103646900182560982399467294357070383581563206022832116455040498699560304069400740047599602041925053602065431041909773003064604432958101205571173248998795545195225687126692721841719553095756555152834182775949103210570457154428409152162001909907772864908536410212975517355623158797880353163426578792238251147333094835431276072700973382994024547795517092986955652079569714785638080372796354169505518477832057733957905178015456662609795599877802364142018248829232659647151996706624755174562250075754943925446162583966432338679920585148570576443165489744773169171589995995972915465603777155208473870614902955386347821305146711881846358286449855782652697713019593844814379006396975164389808863784861865035266205025777668077444467950527216582888955497079615169523959139006485580568608211380207450360929980755533614743998354828908982412844689931818014654390073704301447770049664238781407635286104448774880489401231333449292272565466208822276874955293628480503954966384517063727054537187312407575361515175193120220327095705136229135675729479816690238634028802603769297715686086868019123954592719998227694330137095910514493891940339924364442757227891029548229793178575053714688070197532139147323077977181838543874824223887664002568252712760194449740378448749018109156092755804362683106814000432328482157859347917900331757878336229338549719121904451908508765124500291946806964109113676282609516763861639595581351054706875215529565547338716848616776844589612943129740153858148944980832323323107423825308001084674610937445587803720067854585015750911393379368575291059732079445739524733192270750821296411728435561311574151268211019126922027172120727684580165578800525708318232206105394698777512810854253758952939829458603502638226825460965455893057064160734334986211960639768118383626781220507543476048227465296409580800405208160093592886565514936243814835127526170675342678278241544788205642328592121298071893883023558685522618312026571824036279951757052796400163427404865560080713513426877381865500368113396549030511379920364141603996396977891550261115106885216570882323567027361619296875462406249423446380024447377758595794119748113519282660464529654786478010259676513276177645631496626906012827303470260576591304567358213456825804247902463637744691638798290150451641743258048362545209114009869383764011777030700101472921742714208173413640047431604593485402143513935963846722266043069758458362060795279816831261688143010258382640094425900528239762713476287067944430718925607118123744565848108928089895334746021285199369090238941319978123651995234278376561367380089119020128904458418977308030512303882535616860476927160334766853296097412499256929043307862152782373486121082861052403828220919600608020515817539226731189208465000955508930583936867590922770322752344752220333455128547074792137143875744099307611838952858019985771171847557565089866099407093913014281068071410753478824904222927075294058999799689042478350249193204733143290406824719930427357856893196952738283905612967446107465537607955946577888800614059696423930378241412052391216963214206362076186306884524250243011746426088147561183914571429463692594049068506560794726975829314946692657283315602496022135373399335599045986252061248682713496675479162131805689470727669770724477273928591142285482185063260607311701034847456691913944254806109931534506050668242083891032661678410739843804323631357430142960634184008947772463179407613341233604428551524575590674984594144553653690157295924969873775385175275141241918670331397534003911060669378165161139152929466088974590049277307809704548334306778424034326824142489522361720953846677920850428153116327007691857904008236189250878798043505848070191274346447162888047804046653062836626811071598252127782435076747206026303501064892282879325418232993800321572296434614971324373996880773729768656074718463142057065479907917505082945020379244449566821729962943895756485855377244747869658078823775982272659903137588806667667701261310325079582832582529409983979339824680343668861213558741223843018208938773111959753542370361361084779987150833632115836140267874757537143983848100742241045086540851869657192901060188462121028782000910083297990790450861283058368263909068783299757343023844216085672087338521187238489855399280023250410604497239833992405244513226422607976916734047930303831189864721498592631890414349521268040447479000312833107245551726193246013790855762765216496947032322292903505418074663117740742460635096497855966582958081980392598462808584326364853869793077961092125646269570288953835631256880375628678361253938950431857789702553827444843233657764520029216260403186028454425796367856589514792817810826192693192390024010217745568096526383698978243258531861715239406291506376261305979095493394913591927045985658123901877987669008928543616107107791530565090842949892471801783889015514080808599169371777930456999136236472613113513322044457148157183885038529767856089919988201501440448948996353939118081704633943071196190633761664150897052183041661568775051149697564812123204073449904569831777813763601700625099366512917453581764860194206225025200373736581013935290051830832002716029142143162601703813223156691171918090079130492056782276533409009184536395123341046339104143078534678324909807981397681018990545957538226606845547350988065647507262695955999630142057445327491685374813689842397416007865294845394714455080648274005837035386718395492525939834785214343645579709981930558497793931066135537750785319844412748794046406859511114855443686640846381919101348894928947946783025672232610190932271889789795855675536562522369994412861689977535196605794460250583960449515772174062893689365474594287990902685379714229888140074008630401047492464172006343197307400881221469322554727238525011984515661213223443787968212724710612579151358774889526731517444206481329321678041305240891998160337757967811332987069959292257999458040727319544310796594598703145290677601543605210680551627889202915450652817741975338592805949540198138923005020253927123681477523322102635080367084660459909635620281858466097970925834436457957759426291974630694980099893208140202319178978089424787033548241090503991616784195007563803980588064935494590386522587495917136443899905241189668996094546775298285504331457831779220252558065762923370187363680970067898965352776591741832406379485405551684434687860488750539085325087748826782415523889792611806777696470029023282527769859296007751613073782222695499724181184297512766922863058784168001964157116495509874786592119223881900411732358716290203236510036453517677336445244384122673315366896239139928646342915006864880646082336538600448315291346328785824152324371820835013175738379525597647604361829570420283968172144716437716174828950070553971585862074773090889548362322593260706592624793041328828752066116205177666146638471109531406619906118140161098273374528576035537334595501318064496773174798352635494045358724544379876345395135430226528470860309046396034140173151582356718095247644060119241080299775531774113783207225491510443743149793341597446203339234592993019015332085445514803215920082274186152912606006798602684317114490168476575493669001658206396178080369117705096995615246207811620742263130852321646627021102627361501118332421604955692846943080848943946125252704715680443218508723400245348954715478890433414273697882139695356784224814934014385335483027544174649331830123075893140877189015463324379128655549906046453978726382763563978134791498459217702155398795285289241808166582662659245620279110058370545877392803558576519267787459763631314466966369076328534765046745848177863829338343693392300590431959962138493504973992612819942594084956619301104139450400809812279537917116277530098878689615203670890673564438057143404574049847862391440264447732565081594410876679070448543364127991867999120465981695042798782973424662397797516849353437652469424769546465633030900956285498815198258667377525801178698701579096603291687344878811524793262482764599124841845984950708823361073767170503957072892371258182539216077567842823895319925527147768751513242118079814900507609970407371907429332533575452989458332175313673373093834695719929468824108573517131437216525732081504079391712717288442602948672811294294667429308648305382955211019230327134662456246018555364596830238306917146885393941216491043937605636010574760515153975206523069708269855850302989947802035905949852776026262600241463588992985331278119189306208456895894147300293361603844535071891064404442156888394972872273226044494680457190985051100101632692141304779911207605042320636156843542939539867660738365307971208826390644556221047549539392930941331037914089418114438156995238090356215507360465344348771895664259196067230109711926786681346902097865838810473357059119259176345448754108222994106905833845432422891809862306515950963654749135712125985557785193197713416267555601687974082683036496607897563791848319976452292527873249232459998568886124055623090579040024683825562392112803389457434602332210031327092423749263849910171380278715079304078575935535093282833804950074119912870037113889132669293170251487247592227393221268219397142324877116945762119578137164595279759431916711339062689686919396158155803170571418984439951364578348588973601139036491502120935543615084310870774995987667866865793427968316706191977716200698453273944126717807396831458685356631828200763755018786119462699654113844628320673222663404784605362621879054778676506565198851185205384256326365442286170434665887625776678153380674323731287406427125540406144793848150282501787070140292604893448184630591715715542911476821345804720341390426018673167005095659926383362997436242448023933663118663416057044750577520220180243171626603805259903068379041781522766911957573356071361918636005034667584394831413716652628449121735208025134821083047640056908888501445216451520627971716731752900099051328142150887737613869676711505314192869933135061041601361463916481112225837704163721024120855287318357181115952037404698724591547431875050453472450064708752531967920391818658915998056717649991553464056586197067356239749720293687303493012262034573442410661086927647047014108770517534113962752306166195023167088243299956639932721079623814606099832314719825296306835185408278609902504990995014809695443582053884819834626623292941101916399086661310302894682411407974010306275530357130017765499135850376553105091338320533169283442472538849167636818840370135156619130933799159190248779649744240751917478223034423398343197506987336027571930960743259561471207321007931662163088061044985817305414966435437464911520742887138453475840893348134042556115473255769639241712171844250398033377357926433035981280860611057858438235970270541349117662224366250690516017290439222282855875825961368448589207640629564464232731429700682728575136831156244144597566207210162257681703802996446130675889944480977365324973969748410466276094668866184310903316461462348851604578867451006676681718883844009367580418443659934196470675495654244235142119506567681844002918105691036915384982015856515521196007206683742071790126023849301181201372322764209045686158632181244729763533326020926951532171693336389008845252425497140928249327362054156566287116993218072362861535818608761847625060632742870317151001550133780567615868436876778637901630980143530216239228677759521685166362084499909355665611972451795064759846109369770452325901197197061122317250112091774031951535896824846068748357068774592327522619019492021411711856571103022839402944736889579230765590135783262786483606789610350635278299972914469905516152842751123431183979727670565827292048368313952501605553963587738125325305071580182305807200894420043624537261535709298327005693044689089288587737404229757391247579208652070701167074686825459536602352075516563007630826269668973066948416329626284456676289064469053779011805543855843724669878044425803394340661852202280219968015734225252415740260586943947100061640356259587691003119466777687708621872233595558338412634116379166829233036961313565960623785764753072153256282125033021063456611482593828691194597543540435992203288518410091469927892090294812288855456921524342740643198960973919999955421863731814594185305804058312816084076145110352197515640428457568129528685234745878679462170930427398302099198257137073341337506273091624649367894971929500822925518065700769357710258355994974886545593233605642142449012389236703190712504510461409353236135098618992151189595376361290503642957057558152329387777197123904195236384626340133772864028152661553137619006963685671582451397810281573980213866579214276913670666978407449996370464659420208768119096172632460395428965007169775477916075485487677184177517334118113030572138932420502808683367191131732243518339879881436547649878355512503886961065896850944884268305494532756441350677491753684879508821834189939405828738297113676090878266255177915637919097421812936531536005802004777936611144402120893418875972485756954701521557026872804288395577547471877234595016003448434888250112351616521901614511059331893054888038480596256647258472343484858863037486383275013029321518718011660908018601763278634339204791401717968007561399768293343537240774221512348088255224626917997668190370938605898969952587497980827810695649375869466833002030077546200410791822707729704905124947639043051589896259663467126599477578444135036602381307016567337551915926575993513779500665931722343149302469729616585416819546852196974002893069576960664032660122520838444323354011952982036944975540624358086447857853517541470217845273361995530511102295840020833352903363103887740361070571262110150995807111569190275922249603205702882698431721447820927379021851717858032492212449126691081272314512684010482676061477349731477845148475742558607109331992030917890749954540668204061094473152822911431378955031767296318600754158109609315817788922107739649530409537930646446266617935538295594773649847446222526957144719156332804102649068777711330231551520093396194854598210118965883599690765813322802010858367123082059486232080353259017435943142397606626203124444927381324271360245111283234262138433522948904913343871481023993381297541574940742916565625693423683842901501759452194065986410740974909592368002407203710685011671658833719165950110301472781457388833919336049365309428845634207744681819303242801247454418999726605216593941369847136350254448729862059829863406484389437249987390298061498430301804541643424036984798238075522088517562987042847543246360711130552222342851813333339842524129400964589561116385390857537066760060674785499073465892591822369521524348430137196952564702224517220507980518477438179811264288596271360068291394689740166977105822265779334407524014899056182002883364009753533253685539592552165743785806665744398917172750308923557253361868959841871173783808204526253471174350108856768473518033884041990477922907718742883148788132816190679521479154681797554928087894719711877216596157334328929778497941913142138910442462547189196317141819183476622064481110425292323312644028689150295952733257932826109563832513162817009746825918656605205181562187569830866607969534726751253153526825371585301064077169702366017866862147103717261945222624922694189703086901556317200081487390015199041733795889142492239655690818037271419684999655848583101365371848043569460307580325910770543152662493449395877323613585226737894011376994340680740811006097445764324554384444018181717175169601282679608693228409176668150532769050950766442190024334493569395498064279738370418517414631462268893419697969121835451932514696010922600820675084296292322015941649038220322765008884568727264305338440923495378405601664768359951724785034699423820198991755349446485967195441486535035602524663536175380036110745074583459577552629236469898052567250228980109764071048164018593784029568503986400888677153868415759036794794918805219665282778776775937033298375898704604274943329152924654878952459954242682357377520872614685013211769583649559951980775680114961354154004351372429837919267289184036599917856235077613610938327308309443090330516704476441451160128082465375556942132301102444523748788837720149235852037799374911657045571982991779049789694205563579983545140220695101243630158324869962505061140599502589889297624715943896809183061634799927506406803758740253022078571530340083431232647877151618848705625784021127385103392992228204608165991514580216010797465117215391852243012741248916392211877450177548471875499544311295362139294795406296572036831005287476714931548715773546084202858671836391211258165001784099770487592698391122615742086100041357977211167676171172117306453307880809364475178251844061325594519776112558002273218573774326287072664924542608749193444402485850159234167027763136952611703611372645169121275062096254047146553299624710315474545505809381476717523816945681910199418511382973820698729087284098543956058190968223994440381462441253679942148409868389101655043234457668355551507593636184154002332137082848645491421167749587885732956357544096186287294198722580965064240058675764967586948123646070675887791123893283517775221728388634797354732395267275843646575548108649305228293766695937157977541578302781641059898099632866543596727729546999738823631032324817432298869431442833394644716686016683240919629978077953528652754666425469481150186449147018092670133793609470359973292405181913314521627081734830078377667045609281051265126460373356225981939897467136151542305520410922170202201680405310225654226208891937403334916942267722003437934523644659973162665331963902811603509450202679536855135425255918634364743565293801716174095687759145116898935030025997883584858385022676033743654559587535536577095997247474739297488834686910396238004392317028013982630432294063754707247311479269040582387679019383953938302909379850011602758483664734673480508459971736214161051692674279105790234803094859500834943369451282327346236688387078065128372056374658129278009814444249531504387033021796845346201035068385266771718955541807990842290605766668406910221837073257018393502594816376774807309585695706803218362270440789543292127129894278326884105943449527309097498257179806395922047156361412037970954325544312277922177736001423279291020251346773626743618568829010864984084633432770206666148711091417013063752956344025320672045072508470806788105297541868788047836771757067955615336218617354022584183688254961416100083534091362200980399008244994598590990464738073712949486334300416364140097247043327255078898375039746821293990882694865355250096296178604879653665797918682939623798910058405138684309812724437711080186994885230115249664350890664573182069786516792036133645256591649666658955052888236200796359912756437922300745096451884385201606597345141028735241366304807017923767147483091725800734079411749928311724114262888530044425832838432142136620202043595010850119284431397239383483737245351187411934339609651214287368371057025484579566261540690339912266122567858794527950620732713788087255078948588151089213266914744379936033776427635332022354343919000027509340493399138976262458621671691158883462528806944052385522886839723515024112350554759588217508186218546092274456075617561694289408672291028015267903819894342856912583521555742701017138874647220311395434667970349978679147673920901112294734834721540136245893087974228051349813583365553964234003698468831423842874485907188120252180959863126781893357999893807444944246063056450862883875253605528550257597852084125411391680504755939911241328434002753346029748324960652252878330215952615244007717210685552205808442700965672555201272070856743542493103142551771545351800920053326614609965247347987718022159480227796103643235923497060530908281295712258010233599282152119821940610180390586292477341553981990888040135237488148966977848370734523916746477054536645261216392177944616698800937518358975635994309498700944187756473921735164525266494118318609049892052157259714646743547353641405772024467798377873460546983578150924176773722743125590830647727177581053733272429002566355450775957769000863762446162427605064712650459138937912086570835039111546421626289858343449347475163561448323442895370406397389377697217064346554545224700312475109079316098974690109090553524495339643217705056443251178894263540888757613181692423118834528624907283447849997597008366821917479750544555288375219033728228911326445150702005519437846313364753146019522392738450402368489293747823574839414673964473359687014594212328050661302589007380298380834935114456015088078266607775990474892196067711349025893440236174012053295221424578954915835953951592918670537228185487207753328543998627639982417101359932934503221052872028753221330298075616727104639191445106867122586037267400599587478732700445484561051052791701551718290282409529211167079744891595252132672923599953500828004348380540036713081976743546633139272323468387010932252831933293269143546928991453775944901376789555123939375921389813431041338056026378750988242481110510657340709376928268030922476916257072279344955132707371113397967413795786553545564046623815805959837658990704684467122499140034670321607893147114108317476694866791925530984697771936010583525389816285976358402080301312606693134137574039342964160734377375550158065234666917659968670986983925670644458492759259632699906356453198133827457273851816222435858911577247377844819787258909365694019796030333962821797439283234728476734486432018885441518500148418587768862436755356662258237409567815749775431877878357904639574023579502732156486155024907144008169769746431166690085579228614851156421832476437367708344787463125160908798083995827828930236294425508518326371742712672152151430452716331141937003689501916897654868240149223184059564066480074241814306831810785186695204738281714436949441092269762980892417518297759322631873338082482371302740311667011199970988453104480479942650438342505783522944291175134963816740742366880827691175240742118838832625032434326237118144473017713835346994370991148344287171525852064596356720226583235628768995095211284826693035893737795697179631283917285940927806346486443811453173233600261237141673991169929480012478967958400230320377947863748546049354364566806323673015247752706459902294477805615325773279376158958333424390458810377280762564467856147800933759284283741287807457458805916378876480935160294964003685231304760217225161026697216539495352060075611050573614470957870911542165932712307566886546756212830398378170501061972864599652576948634153204767317937077383863093576006417669475821267639287520765191506797345282564581804355962215076192478681923653629086262087934577526530652820152225373206353712433641154795048557143926529861724014503523385753389281622983684135525274345297171804470315153288474511642495744294705087475361411692348418084996045255209476886671806049284187253499506197024228544821340434765567055132007793128232749803230868082717340483295468104555822426044497515407957287719109575625438861074812452840999838264684659692551788622352137921932000805876594985020283619188649311343895695459401346926414276796306574888524055950311366761351322560876452427221882828129032839162529201310295834262785337587707356385508055845562293878765248223929501448299356602104158433573869602019368313687901571520118249321775615504358544698723479647921154809567800891722164349452573407230633382742964531710682838855078376093819888103155891815772906990888547541566979265303197542701444349797605549140720147844251381175483995638971527769450286195864692724097011202039234141176702762212706707306948524382787712629982205234212721615418415319700006051495198485336756211558949172805568971755938377304209327138884680273510102117583600204219778618867569123805643235367150029166229708569833499168410784308355707514387786211676373227359840739845897434000845244813794380733882553419173972015134201365785588873661826848173031329429451011865731108436743887510920118422837008145486664733964074902353710571854269190187313372197144339933389565703381977851699927573555892685279206107142267164903618244485927228770219126793512047958064995550649575672336289963313200039137316681391448984821010024125510248772814686983126852125394143945630847804477454459573884366262824905631468342687948121465007298493908874649854755462669079578634662460412275453856572725547077079341220532562845317232773409898505846691048285654442352683241446986570582209870910679653634986204921065873290681537356795648657153164596988144903476046876484704882993056641703462564387962193871415349552392162025363362591088336259822185398394910308495596438784980511468272358284160592996220723788557488960385161211607328464949116557189750448601257248012077394024076236997063753475504513915737616431484521525863518449387175019176020722803880911865172585721888075812927427672746318328309709357626502992984593954632108355488820870687515115499468962608860663179379963645327086014837850833562354340872487957597761631732836466015231993069804286270332600153003914883120363138822336186295007535041323907702503262538518357002699779646429347742925010298987034875566008579816336611428976669895377238864911910660515473814723384792958525288601869690558359046016142406657189583705166751998939942277686148220623109975044794353545890112262105687564633236440118868048945933126925419279692114270722217923050358734069863479971465814414711354346296401439962627635990170494590145761146006410494319289788701944366101372114456098199817410454040031349053079505278551417115765045443134048129118924493479327935716721396893479298984637084937803779101815229325281087669108455526572091417622153863744463771609968912337239295063243610455387679627962564732755330647729032244616312353086905782392290438714051382817961240864731261076135783657756372753419424154627479094569908795373900734871030163950722891644531771644796615238932461342830162197836166272079004624609733503557669554240917559214459367298633454037034327419405935846523309034686045716391085497959452912702678909559313659994230848207438811468266920819849888661999089546648899579126737277854600496839352367103704308607819023710181403114424327561895852826455582376759351298447149848960597414341688464396049990085319223650823590183912114471689846883279196273774650631187072887236323884395037112884363472238097957619432238691821839597735118424657341312593743730218237485736153342167955716300396312615007436244299040737159051294660049289539830816110291022140213338069978511328394404307931038144360272652876913304301061190255901279665918964667540127743628279571104416512016676908198709973220683440757200937158346578014989802570895593117420262369378768081402467485956467916344592327884654056696821249879611164912125151684706079771938561015553835034029259616935005754166992977999196973625302605722483930298235912766725416439336567734329835921076494696928891609745709343100481409524713257462036178657247285409382072625650761114187776736531639095487880317391295838503459447297448698029744463588083144035171479671618521554111338894131131646610668402129593879737899642241090655910539519776625915304912598172591738740340844092762217768987344767204385714135488811542436797925422798407740754131615316217026232735047056482187197219620558954645369516581625104732247690254903395015745016185557548036430670556606540640065646733787784439763503724119503282704559220676940552647219893245157873747007230450238288696425523873371616216581863241373814316670164511485381649580828031135133901320714639318819568552827766079697334921924858442835294394885079209641081875806721204588445810875201167980624833063333638792256898412124423745695792474800590313639773254019279266431845522733331670948620893180197070898625426979947084798484889583269584783942521628662554223494389909541337295255722378759416619273475646792259591319965902791755522931332225666702091723582868118277601848941558753520814608811587802628798276811318650751152700630873324546313320723204987381547205727620596226728746803659764604024133382006106221142428749185759590420506060349667312605482767081883314698474442194959261988380084413702631332555519947297008484000822125151943900811952345515539974774736655019233730738425619366959070007512698728718332729306750945020867519893660328744941844233192653758397131691136241239538604371601097638029627247606953892477582556968040088626213748423450713184230967968574254014471997679333034438800420061576031801892639512023292972061692654359137312193091767490556187542092395665480110144835811295883257758031515360415175301737775848710379171575753102651404814554977816196534136048935090775248477973677463730740595197981929440074973953015012419736916048494205828819335178566885220586741949615682390015990062590063209124671913115510295802653540926680146970421095937769458883939363834355429793149596321344852672855787067642516746666263144632027506394690892347650487118314138442955239300472996545117645561102504555664536013848707507193378933291225821869696372210963578984523278119023266671901322985012627087639512182538971117991576869143135123339790174511938723173606222973314656280174821686642582121718444627259645312344508734738953582342755415177305402072009713579572346837260980288305546287967364552220082516646689743767395561399798963035874524971815931617416762721728730524988513128556278943636816123916742561416628072306373706125447423853168770244103115565262754905594018809705739202267807082048122508855057221038348387119175271744229233173238745413402927172915761892606551993547991262186097201515826584085213595762506888424309545174043208836910531566305862384174742010748305077345924290096446951459805702039434864330192367469724728714195777146606234248382960044923028173012068299344545691360782870874864759570355813215229245631691304147943984700484778182460326308287330300318230226386994828045270797063271988755575977452738977672860588856967906819742087261035050092819821042894065518035226470226356866290564444251843931352074726087825874789629421583801905805185130943148423171957721003075685137234585015654978644345404148603097023504847553864852049421243975354287115052610089283202902526614199457132327638109269898630990866212196219373248479219491129241026952354345822082836002277733957471875844777525456877716830424843575143605219572566064215070226686324210862741199770787054376330223130641564674179442611234061272508978835655532492296768469905889565973612054165393487861899122868731383429472260402559052395048992381525128916820473303157069570004005388247124289878977498079849185595392854684398332828016326487806684218012456271250426264224753261665131073342092530611933836433440695443285131729855448843033900420214332004892501157072120561040991980747126781060204057124309523226477340409724587111523967426011767396663169424829654838010113308125756998096062485553924892637166985465319689273770552260050899340386834537889670049901712840975778428861125323292649784598037706921015526268611889941264567388482744833179207152706961240993346483816155466105474924957120367726695196220029614854519723983525327783256014922179372476981351487266882884100401696596685350659734705162497988942273918614926372992917078854523997002084997958438468127179474968754775944749005003875749616444603544407510408095092530135945583026630987943149709267454105276932668949581141344028493347888387469420803799423242759102992315272798054688368882722866287978087718365621766950277708462148297880590261328064951180233359452048575076949771060410877929231400329069233319529109898360964466015381433916127809543724074224992948230566797999523039505852716824111026073326305245571971681373179357822363886493806798092342495411372516836818638125268537891435752116059043664411989182769612579419322952442412186172906310196437481523332862069641065389351554812588280905302051707406856902695120313767856823433098224429181125435082752376028191265738877915213319285112997453531783700381206605169898958696472032161024589519249324894091111529861641118150006422751915530086172397366401875010495746430940873946206756063078048328716391863111789733156231511143294449787236675684348569896279004796770952697377665861684946342731644336377661751309543177194333411854348487388412219264100032146777651825071947327992808726557334997725520808898179598152450217752111063601576700342619760412204348476424149319740936634788059986463118732215669148126472729007572272084932542924579823994072576536763764860253196465293280652460674330788553637449894857045552026867954263205509674660568445407313053696809818727255219576309050329521189409698948627172295182675679262668800460845995754943346193927493667769414431585012808628814841866788780930902350669400274873814245273261793201178146843646575979399766616643037920731972233075892487011128666554540285194852107260690506365196672287452699616236105673674016658436397076599681623615725589714505269952938205061914166676292237276714332435820678646734442082866348246252651722513030433529367054767953440730284851742729026434135921485849598460152263968118371476062958380550375881254327199021707327697646383809183886759974314192674712329579212213552655918791674092837647900908749686210670591625774508412377267035086861247361444741431448141042019271334918238546071168631361187240274827822506691082641382943092563767162227213544324567159176845182907204538390605160463568860625950390155068011368589609439102120466916001043405385397797239081454645527596174902958132175015125774340913162433745067721167249827651817647408084242274767305089765493399764368969720826097093861213128382703824783052962869629843921630544679521718361478229344320028856888411648404261775822189717330484230942209183989727289835046500607964324523548029149281365482428102795676183309297451745727404230338081823470043535637363756399493015154266034232316672114837339373512668756516731371551297307546467508951969697636602190081090587083871630448508202041862835494850841190104957315449059629211203773570488849600897613860113886141104185686345126680194580014052779584525611547401979015121695239020205719150047819790757215222533380717277939425898105727862578028991660446250218706552653482546496837744309193689155391953155119165751586943458018905167146525047896988942700121549415431581628738822765396835315403844022737857831441326406294783610513810988597356870993219602171448036013453940657601205175863338894600630423659256217959796339421820276677642756031333951679521065539471129081769684182292615471749072714690830697005281761040234731433604311956349776528970301366202219299059640393306643840104574072977643877822451086699294635026619178285771345680681275516486759527315871960847394932236103041856489652659642733135991110583585945581264723893565676562019859154009032058476687786308920951108427202454078477161985185937061470797256463824089655625355830653445914129014760098239724504844767157232286504491881855687804133920510294877400004156458228217903618311554442196583852055452026461171027528576100930208994811283869429856531164080082458886835045128829801938837522009033983580725960495708552188728027623773954924944308148722503767315934657288157675224521539177634476361525570438199187772634941336058424970175103584385901937551020149130228441317040475643014455829636693006142277920601073835197452693291201563800403368422651877107090000640472144490829156038752710817624084050754019043823546462278096862068364785456912895716512955177304121458532720496902391914976724248879140356890114597836234625450035803457890191507481962965713045177088055787529316747485424040840100426923661293321261566604607307397074977725389164615338744233833967538163827125992365730551218199420455101906059533905867206377012036121262625356280283352766316949519441969968699982718126315318181859336339923517637570255350437510275940174400901183949801204945857535370270593498361023393354728466426977950741008044551699004146511620034053772495162319943773012843756462261220327948736437614392740618393726137969363879692682492261515839292186716534445555022612474982096273095986612930214856097474292243465278074522655522924055458491602926474958285310814185817143936109907102640311085265020988871817717731717316962638041435284911301944799464062127482456660612268331153889812890408735563287421844500876820798441540707321513184560113211195626538399853621830418732829902731841625403481216172034889538375853804711169400103213419030231683003421741224249807271571429589621359628135384411727135924535747077841136151148740617895387287145594027339917394725005074987030011914011131471219696243083347459950969239457316891382116231620904989647963734645022357185348192750807531556491430390834659283227465668379505440237859963544657010930591302768857145239428849442192328973217870943187641931494072539581159604125807893125468449760037430832739309617753383513220583420030559889726487530185435223553774076221157934409480688846368071571277507149892932412024334896870537111863292919568899161927354836527720075223276100276450564485034634990172039533284860739623395566323169334198401106343743989076714874188497741902216818071663001635826982664614839163949942620435619556074274189054214468714031665242648347276077898836618319310598080151780076641378061083575670665025869427016779129796325848081550131838274293965169434142168015392867057175348768188564267836150124971416451235527825012494143989479307177165219131659060223836535664869022119641854661546494230127207424459898570805545897736373991383873435487755006870640838226356474115692234385038622106595939014227441802141184355786337118852682171144676000958799618141750490607621916825547401777748554423455912776209280150105081921067131034254620310863853330649844405514076737902753370258982607930802783649585931071274411029704813707561631254981565768796452442235986100977873434680687051427196848648043868283611884360760429780140384190272035656025798922566730719183131965057284940638287601262783573619868280896660329883498286006878138587526028702086135621498332111742412707454930325806912522993805163511853550512348154989922527218064447758349097173384719316385906524404194309425890266646090101384054587463201963198100877886941732653210827351220588298360323721633319633842019723746927280111620288553255125552143254548058069339835860702321787197338851748949185689214480238267374784087617475187150511528556022829569442577486871399261514387708817899123736728521592872192328627337992859153463874983981429899419167057627656280313160027936543102195580295510559256020852811601948521425035342457020174100031697781782433749053316325167870712053846025670559827554548965442382208190141029219968780897648109583091780410830277955716987480388977219963130140051846767838416905267121320711773928197869938883189352985628979596092850731900616340804593891141988043576261814766483746272408719583151826857658304129894128716471830104171663792079414696166077912584780212879560375985888997941682464023720007163886338294771215110965544782422761790085465827592454436286483006593766927178321645574695433718701208400796088885141395278186353154375092846285294839146148381686982605429399455715048302227860168452979859490683064810065008258161254563345479528824196850414571057907855622828638307650498750211695501282021616860504155899058568000247432744114235662047600756142542789902774166770998482505252953150313336642455170366029927904365880249884143662370827437705385643054954108432088165973321105986366442200546820826606137782175898035839437556489489235693465158496549398387590102156690723404133709397738255102168626824300133257770511179362027064447022455593877721512460144531309219787661233111431528417146355792281038409934897434274883049409343530217957784087953405069336076531260615871964939179305121082989431714033500014941649532896245112574438349764926581837103031375312258891544357206385077012038335259661134750543523279564535061818196654631016276922357258954173487476054529625828087672951370847963798323108152434692775429200454988590805732574457418989313059916023685653842196850063845348451236949532117637338834041819702597666075329187279813118980653326357170118994308283514903346564480425486382212701673975566332901064347093212200178904725113287395844609480728094854927656630471201017150835190481857710041356503610364913251497340340279643361718041249084642631619521601591532263162910316937089144538634896324425814742378716161617142744562318016504986115813284026095820146887085684941909387266910942353060645647897259753879576978165934200029413682999839659298424075739024459443817777043396719020986480006340877087473738135111202887388128917062284767693381311340518554684068316534112506948212962707130114812346504570358432266372964223076741014526213214120413824502136613102783305594693253574044458338173118413391602344766891820927967822687902784600330245913202242973822909001912200287518632188971678526910867887021139749201543310925565401535287908820615298809184253277854057762282373665251799206779144269017826533528681388157884435947927574624524249529793767730971528376200162625073462613523461309626701909992806765214960273170297931796453831925545778284468003271471362311186513996451698854931511114844433784202734817399724731387346336479051274926588816511077567682632388394978682199445431865845515779960124425089644501265232814950835494609296759106869444442388317449490369090650853989686757718190781724330450039240716919589254569851838848015016968516977665275042158044561518514085375686904521369645956858419172887049631258760502775508470184981743002091642031072250421236784570827834084732424111050965031075751879790034533667682598263218757395717727172415483611079055642384179303443647817968805467866523952200588540113528156538466770768697322421506145457736295696895612522285611737508071629712764463581646460350394125699401622753918552876175784455126689384647475275316104486918107174293253556902973534367037021729981743633061891993666851679052562526205523524635474616115228130301768471255793894203992765868138250794307914306178786183946303299652029325981173094797779192856735253887805295741799256031739835281754291093137134426872090514399360990106107604519053857426550878639087239836123564104830109090298841291280442419689774641609359262508830926440378363153751810956552716663393700611615597108140012668736704976611346442508775348267917681391264708077796646407388030273380682200254551929612136526571109147852044356809218870843870571333621072584760044078061923487751682353714547439497750467123468035119527067585126836891290053752127695521473052391880278353861554175790153805581231164972210078059130931976741458172972149642525975714733982924192377418407845780609212339968955166582889765768891355599023874763121836638148030704885863804921613111826353555549214874402589083199435905013699256014565345587231415130416023137902680605042426738248115861821934114433782793467073399149474707474297094882494209241382391785690072803568438977532245360318765476767823304370348589590164088068190554410673411487211319756636543289605562951440424859854929228216950249480348433231597012589928651818975705538490482056520397729582761946215475424602495183222920309777750729172216648917320021221778687177438315393168880652800961499605802992634712040152385406714097174666871481981333679117235514419950757227909085711125109539997133387358200166851769139061069673765619125251013646997024237041983019737443966030759280423207346662932087765332635878608616850430523705097029991525434316640300807963969795431447707261860064340493797274067717617170897067916229178906370077119852540345618007358923324639165123889509499040809066224353855331873607011097050313068304779524261157630689436158645172167200347327578147871629950981115850248456082356444371629477222514715960208830092597584651670102637387223824985539188365002482172979245337269664804471919046994282211608278212349560303490763125987247877029378760743990730866006540749010526706395452972548417267713591448538780619936127966756984985928366984378476717217814882737518618269983445583790056342584755933876417529039287441169271013073655039481381772417886730761683642112225712876576398724216573765539864886344470814418604850312259747528953353453041917059460126533199244872084694072834327163860180438092162948255548175742206909230309944824420004297967860286878041994508640628291370666097894003123444827260083834021489275441443755971063189961915204063907302442132307248004225669327808305918786532412472068104304758775680310174227020697726621871200420578652615327430738920088408316744885194890727296613699871219391750823506747963654218649110400434307741259827721231712209217845922431992925809033457136284109718911475198994772542035376774077787166554591671849783724546218985354955742056778399872600914733862091009895476259778367561050873514865476841342613263583205403828587006374394056168360347918796915379970954685978692107226679436555330261910248148507758750088410649726438349724034146996963220355042408700204289491723005413619473309011070951598559726823282837777239858118746437355875291791312366978120078672849516642523814208429375984923935378713037975301049670515613696480590481369172096724725680172326695295819570672144641467236024777613757454594791881388710025232920422684565044665498831769827457012357079283938482319706255030543782647339255796602594311015884545846928294868881409580850777680336656887044237408325584384714708952639667962844889787474005065753566700887368566790530298476549702843990651171044669577083184732512478596864052546402059081164166383012638213426013384181274940722607209979020349098189194477931044020072514168897378159843398577882097202737236624157878895878684523083609257522383857304306148650110159029917281899087237563225417284385018089688240372825895010715695748445311268829330094276241045755063526337493339432577273052724615927913091904518754760601520656338939514522305314261953902675985452260549284048325096743327938290100322999106533599206685583495699331749460084837892984844006058835861087155987088387153558464610110419334904710372967621266302972997582905240806325093004115989636891186584103690725593984827173994033916654815199689751802823432355099898611570458595688685664434103118460503939073867311937193118546768598764539393743551760879492930194933832786506470264603368661648011803814217602339304825366443370499686699402500700966874306515518084258721025595658463855085512894238092284901573081640663396560082984117334777828676570131174573159716281115304740203503783332106024272684507945062862031148495339111661125396156043048260419252324129557900556418772589710547212751066598017886478381206627445603091708615436674433503226034925768295964438143622263835648539012306492795491376200341591152627480293665859769836950883464571253464460505730151701503764473924194313979196797262390014687625675504083387755771836487387569060291542198632837236096573303753941038410951565874076518249141926555767310972458489128526041440076818396306448965006912410413362266878603727889754072399425565085072035165333143347235862720392893023371325846339896977128344163777401395966640838050657730359770737904631416453209365866553991702027684093810026974035083936204662309112905133054388477525415465892008152664500344291581816975349530667271530912738694038281749205243689206095854594705916131912960568063318624190148940923124505872362899157977831661346100838641233595972279842011269311519988291480054343255769343861015304868757128664007057230211168806541784137608322004629683119373864187720943306217063718271455916752696654346204584166766580179017380624755252500298817886529451892105711369501859929462927899211314056473101273006704571529010287625212152371403920238913017210468819439478934037663885765257937063121526531375048707702836453814483891603176181413723031085578749431067755339059970834393478597332035772952735056214003554711091793528148296725099121716800474377576041504346245969181774524460704909875621006076077742699658886598991071231526630002754847368732802053007555287059626553222129830763434945341831839826950983043211737322586440874813220696155144892499475288025033045686115174838729479320463595649789102483771510886462242328160976231141382577671359708666663008652063808083421439076144393019684770988713666379538626422608861776721521909195359839489679759420689013172355772659700992666090108188832918672369795123087051023850406137890620994572754800748629272951791678552781691223165991937900034203037266783325297351690653119625630233145451200611540892876923479219878207960540382268565796546462047742783944745134149191386382975043874607466319819839840934975535174595948141183220928802753771807462018713747491721035241023866853710150405083487792399516227024266456852985179699613812854326050617931855251860740216944277050509048087442996061751918240490794217992138712589712356043068227434452587872377808712785743697149991120052756730780526501273366656635386098446853744713714906698060127023699412339158604066318074680056070047549428028923389518812825486085354337699973786160421398024227217105655569303030822453111636844866306274912862592084214875176617396828500448618320135928034453616581817509947773076212923375760670836975064817053118357633592796200123207990932341124319152207326434176675183967325524269769568012371416409617681474454903348779485502088266041853317576180977756838881871893642741162991248561815779900480265225700076515200639198659728848194653826073066095914592950727902582150358915775664960570147800655865116500222880180394865353025306371521085958439046415647540960135935275758734600793283182857861365350185269156828358242016717645875881020266389742769631046994158616195239849532096177336701102882161423630729223245783415519126130696015324472587484007410802411052250350468440834115649363428391691387758651416469616661990006309990047713453871006694520097432463983373451292897801393457508377148562625228526126373186936068664862636977725955262482516452395248954522926229334230119318654692546784687167475723521543457836254352888782148419023592324097460789273153245936354012034775592982839646375104682091834618266735327394137092793811023327057061463198052868739798735437217002328536942617065752203094859397284595896226543737352045172998396628676338516912458929211786894676338920096608881622271034020914444626911422025898463992901427390485892399807326533714863406805914372503240384777041834055880053709261977552427735506347173164293320388184802954814144681441913245259990590283749782975358857950335026078568702305152905992651813464416710636448383731172759647751457128446134911424009007266909534233973782998599798138473869995516005131726936463140839459716219997074054444680783607602120909486698335152155360232870443154908692623795111448129415890153132859103460216776823097504415730003084542978588866133453649944143639284027247344652650584993833587618745121381088744954910009207830550006487147639386975091314055709825406029769595480333826700718954243391919565842584299329709285704250132302911991489279371643667823001044822638110427004753993208652802128588677175166034280452758396236490738218690092170686121183587797682267620403593106193232444797592251476622687963212595731020712180534447996475748539731626420509081986772618217073140899694294920807972310186574524158753690498594904793252199953754998438349987348021844009335182610980252013963381814734067161571537448684899216016433024150199658459253248437361736238873205489774217291458082763362963999740282202959554718603656978267354594419270200266300211372278531994766810539542667319743363982402881560286321275986103992553893170448704075769733085374386034970551496722673791630896220294148064871267506683692826482114764116860368409598657531922929333771174670728323997876495285112424616387396481423764374180126164813747446857109048869414193691279268115288577509599873473087150878675673216246026854288842170996027244687373795384755984525043047826491398044336596366329409254320179720246644839112300026188292931743082685280680856864261546401672265785995675522498421702408207621790614726092430363251597949902328300461640845777645439615843085726143030249540510041593315604457755073222059683338380611366971879828050851923038479801520401435591227942006859532386828773384628979666545400611307612688024427686085425549248381304210748501354222156985474824050019806491511561797008601036593896311825484856964754235070287277917846486257226898660678530545113030142607256527062088469341200991985151312949337669306962390077124750029886702610412006131529495857162723042940142927445452674200174986238348849853450218654681754155386897062445952243497214449302610980886202281100640076217038518950479565971131907853882494925193061734359699597696850443361995791835590991889506212058224343864602826876155056538449234103855991012173039795476773421774564028974559680698555649554301315730116790127708685932205002867280347873453721978678647244401892607258801846248294224184391138047374850654660439278897730621756825755220975117707459281172703882016689390509608741505436199132321180378969666045119075314670787651103638573577913751218112568927635871004486250784774396966216033386336040117925832199883968623402844989296238914893054971747678043155182591446780283193915101939967405378148352096966642709642037994268995504552048901882050227609097976945076083869787975644477702641454418479911569811850014258877847787843891032477353632880841038824832287422258179069157422009156595926878092481158779044465483329374631952656029624270771492419583458929627260599709853624730104396565499352092726797479648072652157981794855920466521272516759400333561610773507264529375867412732663086874792329992596278371925106858635695285003512572464884313060219585130291808905337266169205763884287150138411958625305033909980622280215099976672024161461390704509917043038959915373454387730638212691597685325006317043323895147526285614582672140584776726713948566647105284100879450736364100112736815247244670298037883923648326316837238375592925533630053562946870070580740880124235710545312979186821573694317788486881276378420066223412489362971509954207491417427672283717552979693664818195598871616245362871110756702516885422905332725784408462918600210923385408978617464481752101280398983924083584106028634211150691919507242361810138233093665183589240537134915661448791768694224384307671398588557210439277011003449839095727795207873986117320379077046875462265735072854568967373573964276704281772416300720828012036432527687502040013187462753719524707909761338259185747464056129055819238845177538404754642568497183797443154617044188260638919541765047609386243580237423352140064884461706485173024748593230711900683796532996750097103495781388456648207135243824701119710968759568023095261998699896798099579947288178824485589091369756481061201801871053877998837462659528340451033654752515729731594131061226115674687748937692121546499461980206059409543410588939658333723318920336478137935611206483582378122719449125436596518372340006726321713475345504971644618563986759387692546833144817160840747626479166914518711919412330335693537686697844039992238876851839017306557779675954873794207711021129236309010133574537247578944580973038502211536213010813468705611771572801584356320303735464238951733952023377080678806836159721856707613368475022105019330349641157553559280912888639534272201575972474926634492406518604805469306795458676848704897626831139689672928763322089620357080418911294350252239766564967688771131236837154509516638843302218898068511476408135708315876990326595447416114446517580428026968698344519479749972512030859654876702709042041909634392132800553561034738244875675211644294526458941230282080525686202792630947719512924720336197098455909460128377972987417272400444963023904307607668308356553218878211519380292390721830674368529630316391346832703914075190393961800621993511920422241200955408566091731851675999728349899081633810110497297391980387868589434802017887608630502856053640639199442112370753019810414966620371604562576425570405115835687049784771984176918186357505070873916679100234566444750050619188208052876797095872234095016714983808688754690447922753066374273079302141685860189407950115092838138869430729773658636110427815083133501200876229465981922902725880495895151416530278378849576613091593595415097477546315248890544709365716643824101983746285846807439581135657024465196775909199301599096756277878611156611729036453148200897699265190975353114422613206414175724833543378822794115598822217481896330153643537135779970610055534758621936919729456651736701567536573401251183743115494313956923729982497333610952749756828524896157133402297973483330489452963740211325023367911906701292394120890665691770995621889231763356057293575134991411401993541148713286203669278646248879926922585557981557239040537911334991905184031154818473425034490474867634045309369335995801627424185084534297214097153781502912854895334847497844842300896693988540986036054128288555414992895089997940955947515719663275322748891516260628946004184332939486999064053183005312685342137259233513798064623447368048292576025986141569625601546780863973816296214652840594324426673707906149333342879586486764073618321769218613430288668713678465603885098831991541000915421123113694463529977564538989951088880941416669460911105419761976095442285473647521879882254300003768175008585297930465957178110060377236017299781702608664374105533364557127691388915303281472063696357962511893449669928940476237619541304076741896373242058166236358794853718408226501698006518764374381272825303767163765476831471711188926248207453194007075897007596746740043577762789798195441338354441372949198599534089284034983622968644604871899905007065123597917753443970039210358762158630265957058926092405116496667222988197780757105253697386314895485341750651180393779346394759998572827435057599252012218674286084052361517657919281463589360341897182135662179424474770632168415415199370038721192275627861503090737357170888575603253672891740257142012970825422613346987663492120147964470270948863544619325355673710188558453997040907295823354079220065371945834076980759031844320082079256325156766659652639647826010227592303533631014954233865994900101752482833927507181426289977772121283136284067340559540726336021248667769617186953816270931255556448045662713085347656032745917393509383701905761735508345516750641260498400594701251827012396511433606921230567778042167324779854554707449624769187364499991643023754475646449012201185921001488783896064780630252834974120418669887984437858476262369742221439525933487508194880546852163755304355020983147779070689004223876203595262442859650717299926686973535261712352766908292105734600876499100793380180449053438997550714640666455295490413728290508640584941052851193533396491974327012709968231413645630576783274527213463632027363040555642301582270728540710307548220790358317092248705986299717262730585507783382419987846768030598275598213599220147644082373264658428420546456687926263582240060216751948860913127841479527214736996265383134845308626031174585990441661959665905103580578078015293085044470679268752416316600272134822671507528100263041206455008651141393625597195792730320690553071763421091176253104971576074338351597994970776059573854017220886480737961701965090676614721396077988188494486536899708118466077491120458102470325221860053210491761757673994372758619627522845250875232207907945404302904523378288773578077130263363334947490866907686091447517011971516949443431892951228133104042272367113151279308923154337370848088173071418726312424270683294081166616179934193943682274249096176602459224851792036594130301096924170077102870320216664872011400083533697043888597300987077994178030821345347687624956600445164325718109017475055899182614779838550657843280192834944497405060279247960467466007541473643043355369196602822745222919300072632114207535424430383642560176966543503789443674211558915278748215365555716061265150850620922180810939844304470285509463111376542481461904857755590456776035139728559792205987694536029183362310131900088347597448654413379057875718904611809360627654453009881359618687258940324534981583816862620409234095672782794100885584294467397070550306526787468269809385351554721838662341469053969236455124067372454288324844578568748024353115043889514952961386625934494421659353963495484704255693343972798823166807125439347371101825280034180593014377007462682197119327729833197492503884533124213712587551412454983721101271410258258315620410441196555320711655818852001798809030599071329450572455450130486531387081580332424259039528783417970621180976774868725753939460359141608464158429042587698222467511143831169345624552614755523134851086569457222957261692246067856379541544432273538708202582587595263430317521417341340924805886352211909447275267948253531819206369076736116579754154251864707056523319050532468711390487551765958309834975416275897321970116910131320747715081308594903917364557641540829168867850105046562146079541506989952598197716749013316601862242336437620814337760788079792884453806202078295512962954271184866603613881226243078789645384941910709867010212872418012351616004783022778820156748208868971369941631045496641647378860158732312059166470292269752136823987182792076222916436074351994964200605971448826879142604422264752116423983069434225075709434861524137124582453473601700043124823216159704568358358865886798540214962028249289118305889841208780164621986079260326476980073955834647249476193668940054463869725681893857382013371070253205323777543712290792732270339950400506263149201655824872167666902229881445290206848323933588596044882528654739464465115199058604082230870190491500401033347670850372876025364953565222782840537363240938161697973528612166176828628709805164181566659265733378590224448545330890105774363396767985309761594471315334646568715076772718193623020321400469166005508890994331693545009533432656118302540672387552205405101986905682801486338347209401364205483569801533507160700364882106657155704839897365597562307105290505183415312930786936202848940724672327307789033320442527780932981194859019172759143825460326261671682766109908001799549313020713661335343237640549278291224133618411758974853918063666281829597171666522446504184361886445140702210629001843021064043805228875759880740135760602119814905002388198505318160918902311959557530864575095519811388333851311619534652055348590791180619185396260069456701558868905831980472962188528615726163627590320765348970907580469963151340757467958392912090553575970644509699547526962885847714173724044139333853201426976385491845516738773628025711125387454791209759920158492764161437075270786038919984956895202462107779625611176321774247770170525824867076737618323048622549934084186096398103644455441914796995301417526071919768957968014976782711696533762687500677127123360512350726143337808117163923943776528352105818777147991620210342860671210213718404305348525417090724295357776292349932461131107801248455520940714068240265459560665941034829957552115352990969922006329555554773500928417418859268834458192527567993716607697427743871018529523657475512188312646767854371523313238984806133700709707291207033351033926250848837189344999605553961869381807581385773993239202288968159823398571080370513265027574910212379879197219072387336241633072351442092561528069944145624028469932176442577347542343952624257807615182941061144956392348989201637548427401433852509339271665838157842733690787549852110385002563480651219075691350055556771431319148205418819216872773001894915516998937926078185439886594171250747382221131245542569926379972370756840607024852484332631468955584534968491907298663523194562992251309757030162085911179854825438633982610395281350503430640929988668497165977952371899712981826755970255725566605488102610563064410655785607505242337494946334936741570902940583000283590605983606712371666762711977059004296238986801054157449752779670324375919680237035495062004125357519285482677926228528145633432562063747100531426641798227455150570573927417577645493268059923017897014407442876940964458945442510209479264798034012100873472905317763596813017384264367341401002812538693149415216477044118871671021383674723677063053119032889974119066853618818071677148969428762985141611181352417146187784538064428607101389976737105264858054879554306968725956216580539262539242209363036440289042532797793226466253745870632248544845363396628767945484529018268264145177802040046357504654443776346864603235384239182157365323581602640344270066177166937584991314336590456432663424920902589744196220152380218770310453874361739916676573170718845758760826679448773540269144347891039082797497793773827253121476428312844179639628801659060334164420378953979204363772393688874161408036566469698845212176154996718260584558994839909053441347498312106550710177733866840963488341832569413991570490484257412202478182222442786972792544130239679982600407100910696068218780497336585955658506830791155553535758512931359324517181780304351488992283119369564999224748036766515447832479595213423798912360860844722859586463608273797089449803642210452000919959524747983357222272357673579659579952770799706963210908837226236845724859450749604969516776635600465007193165236479903508323956581347707631953347681257813898589477976051364394681161255931635446021739804964128952981907516989340252922621426522618913457787423736214989513575729916471046211319436811489447314453110130667551816497109980083248882036936708380559707822121926356311219958300023046670190678948584646908945951092317538800338388687159727760654815678375841646225296096845684550814026826736488249600191534323792174086237143469272343990841230747671307953466712234764900512214072863735379546074550437167906579564565053966368277394555108926510679091979731127353322395376098805666179394087053901053482612881399587993083665956768468728975400817839396629836090879993564738078440707564708138961273671317740801805070471270520996305565771395347938197546804383992588150261047042469854000318851190951986707885471252229537596232635835053815556106987692388562850024315827034817834212953712553182802744690173035237870349846289125892197047831996631708530651488586270971400144672521043864450456141753744546282039120759756969329515094603925607126374900663067068485291219919772341389748066359075570685512084024331538760925437268786011107867409383495313951783593488611126207699461196167918654743271029226562806940370769752795338467168846959678801255682537193702557048613794307668193927081087281346128565987147972621415134803201565078410371130088528083337334508227876951938401825280551875533559155591034103585046357336412261019419280576354050878668785452805022781982613024422775842798723157020696237548482024362940977915424207883337402238540102125552904048992305759597117509197825481829674172393997495219976936357801223822701264003654381409342991336566110521487906451157758175910135131979296221765800484802014256818289167676318395402059177659655242213465460290345867383958347557835520519738600806278455883794672532008718632378069115886841582503279850702590983196085430185975257048294865517908080395042825852508574207515640731248212270942300668083515597583460914948606541701531851856889632375332547504798105608075184340256190672678702026021908796899778191222683500385076406028188730464364350690778401251631527413673197845723221050983033121487974801615414859695100889005973647488609380087487634440733354866630713055459238801247253905022792486993612663934713676601131065858086170701623780786400311847486408584290051406073347314321979718763190780386855556565428265413719648073781794240282793477695121181666134713846558432673896539019735695653093879686518862536626232729319208347935479336957993794912279486413491112988284486372317294195143380081864149687597922588425841357240333696629019986783302904249983741807652177752082152760964673294119772461156480670349744334945617371654569939811042427581485885509713364512445108160627557883612885296653168997886162331543841591149959086756533962380798361976124197429104494918737616853624910855998249428460111326782331081220241188618337660241997775189761985799785784808835438661843801050491296163092936672580667346646997663966224760446831117166357820038197481201105621428224185485904706835013811677897865399881661674147423835845770064956824903530449845086339634430047793525662926856223029135025649118916977126121347868100049937963946509332504734067948746232034458357954298280030830112284549946452529372230131585904949549277423735670066920924030529021944014605214318707611919867086470848622511587635989102061947048227381169450478751882462247822691332533506144514766478639840903226051000043218810962397947780686736038136482600093121222715437027136144892595609284884615141655129912977335514955133578617882859772007733971602956675362127512054967398157707915952505611568380258583785549425020018137996971735287487673087679396526827326719132806112265330189455428125337152388734068342469522549070619510901327241937617902832255138760453542850763997869538671495612664098259300895616780957003178139993588864146309258433085393791550619707440955977000831757800343748239834544297266418808643282881774294269593939102085846993553493584901724806666463874547139580820148346085309220062263564965657398772646824355705583119633213587787397214184984072906688790614509806775411408176935613336809229279356366301251316742575811178277936713353725827508292493829364400725334770600515911293735340648699932399713676934378087780420626628691915205911676430130846302287084793683179963748270427225351067302489896321725275493390760439997418179150473989405136550343411406294943643668894019834628052114182847455936806085413689448121513747947806166981264301592781484114146196209038960439470922753299095692771974263042993568987188283185879333355919480023135954598991116003725280133811531157067932146657466751511337500259504757500657466114693570264579349756192210126450394108269713765808384066942518775823044988542840934572419803894741043861578968008076332091540319826304615888274124079487459741933600828875140329940260419086146885701389672920495340999754928650989237935321197378100955554711960729433998528054986003957415074943596690983225530475843326008108361566741563579396048780835614311455705390721863271544744467228225656487929528988510348680780860359090423356331797651718999913633879524489546845119747351275740550469867945257395012095603634271590587917745018982074072259200100788432953288853926033071858323738867082889654439205121470258985584266578626780054308099725407074864167325725607683320212689886652483917159538402953252575298102323917501690916900451283580433976610109709623521847525384681536077099473744787115882433038751276874774463300322952787127783020713682182079566940755694037969488920726496387097037261071387103444946367222104734662474080133408370789393567912326854581940246599491620236748882221742342489213264004341952868425132476301389139947166668525768353221041604152533863178347430663426393310194605779057968229656129115785997304603206423545652179219835409546130740711276663913471461273535358914929065702130451483768791978386124233512236487045514132555379452121092048122770336786734163165517082480732565559009744097951230894494287048117581433908780290399090344392828441147466252786456476244041199494677839173852218679326733200823547492646375017657931986527053538811498759321614259132912122374746335406206681367599999184151971982496028928483474000530902146384550688554771226616942342182478322120015670109142917733339359121637993996889091510271370877046753506658333789893221324358756692305897473081063041974787324204209036558144714828480255562401439082389327582493173461637936154974568146085652869334743742718566211020237854273684654375263966753765484790006626081361577255382664541433862972090370287348627607345850636912012105473302222238952109884981768875128120346648608257483027432227287991047556043956861865098855159507555949512220127976746717884717011085500702294094633650824929013781340998036144618425905553258530645098379471398099141276447507606969854550443942483653144570905492093680738624857722316466179259559859632104432338162284106378917547696823546995957310570896228610436856346115778643894202574983993483549978645716215708093855105592178528055328324929636751621329758689873854235072573594163685203706197796079521842283666724759112538723885637427647937822235321770168971274764120335776652774369422117694094798948769747142433259266727834426093653691433700148235480183715691346957498412600338257316677702760476285920817275052284994238528555285962199812559565800869688350065404519025354819175646663652345089366536149868767751453980615828486768958492304273277600057813794280190844990031094827089937700492847231454980150424460782478924303230338691440856101874079328272469622459714706516008336678030587740302216565102089803244070725041932682145196821528113307388000316581606732014520578140078213979352754477769062419367422077667821118796824806982940860855995943373963008181201353672156616228479048183057172366144721891142473067309695192614338819155061586030412916041303137777743623131034161594655434941734968756121942325449557910687781447785089963332066296000119808770463758261929225487693423190851183228473490078082191171411373781854185474895146801716191622608700472083828017755446332572360966861763531874710112821242974648861055980883968231275163388679288865804262411661383841906552796623446200097083332542310014653937287784289854381298019705729820640202409790130210032320134760943413218875162208321210483300857799077298601688237956360102487371711988750647265913305273542930401217972057818136377487268909388682657432576361703174303580195699048549968004141608365628374282586465882372269198060011719997597755940078683412578732426467043985927793371791623469499118441038326885468177048084236992668340905503916375392626689269855932933571825050086228744201046759902782632394177582661683473262910247224072935916395875929116882191476976333466347586798826766485625943528027797474714009832276183298682510737828316794495934379313303968312664626834532504444948385939904782463980478002099834688652164459555815274826898216898626216069126324502940590196480448703313870694521123091468722866772074864981013694652072719656372124624634349371077327677651444465297828085794519150938394666242794128600755733616568429784089022838511209279323935431351665106357388937423573525280824836313991377371515384911653723682296897313144499391825526594188933953743503939359210946080673032911391406299258078160839683800170876961108119122283859468972121587539672275429340315431709261402362836378888250674540881204608072175820493693761443290552618494783822977494278241794348360051117431836796627955816483795752861385245870101126736547052038236274671614556895516099952143867209336077336554874838168099083387289590862140728022750768235015712025016449637436471712696826717432558987871875375503603126990136187704071461061759528262230966470397074990811258213918017604099742966462882416316684237190012972256171898483273193635810274537778999723788944974642534677395392267680207013120108734871210230487625078065357195332813704311866465136923188538728133401750060730622493522822957538656070779236031259605775328740868599443730606807845001023806215485233394430363950774169896429835066600621869346712612867952688693178829269239799180116360622497396516937352217495620420273748141201035073618693379432632733277516280745722339131277083456447660345813320064029413269038180352296530901851172835628066812924256687906741152088651417800360198642494856212870968775050908006324769845756011274880984743698186838272185285992717940964736255602891627672782827050590103603572470994126888173894459640637054912644044267390956648246333882104556628202970369864659212113382011299768677196783975413027165925180183289112990503666864117202629041998603512353639237214526464878131120574452238417483625673800614052200200544978014533303145618413144776127540819819655780310186490819947167529562461307125709193743924142440842714585951784490626097388269512438261399723014715394205632136445484648701175123872573293497944922553622143431428902944134955161667761182527837149274742289297306845711376975803475067510052601859059206540358942345120302378362570154202233551651273221527760580600621154543494628897318712128399543633560388847787317785928545778350399642282302277214611814080641399125055473653150789947723810367859446987568004524816054212486959913307344476275026334548649601217760339783926788741348962028987312257383174608145071610086574937699514354670354163183977831450113981087923791028791870047862731083864189106920392184843377163826018026239304096907964350952719711622799632989413927453941990500547758214014238970793644625552416937530831521589000569726334875785002092125008192231128032427406973718404427029735141857942836574138220090286480506840320519009736499559173068896646977042677444766676653296450116659456413333972724750355286730446917191497277695643273954624849812285189846234152447400639924675981100429800451685548090982065411900085198384909167890412505657257749561436469549474502712404862055076737572594461573640958879485993017340242631808161725073037003957462844916922949829020825036604509453027160228234729591605670581531646331925763647924997866304059866358955915107595841844687978658947189078489475516623688532131539060615939825318954397566555423896125676482656770909501156106564856006603459738281469159475644029916930557380725227881867874400442064715076670249663532942038586545968694381900894355775202191651555947428257602008920671678260673279499251513087490231068563450807363860065526814890801858222227657845696362077401573268313122570357297076027820280827950577793249293369892679967769490731312778375099300416522710950972229330315638831067735246420718408386517269476146764141054991842578599332686444735153979014953521828542597195741609460220962336426101597624701054041582419932216050213833057606117389469887847684611327452648561726974258673255564396577849230926694766364898474700458303842393354265524632076495247435039225527232310849491139080173449446952550963307141195263487620072426136616091169967174713270108932886388842095766969013558834037535905306688848010378474316726156229981363811684801521955651490182412017808031699037027873099598499614164875066493079664675627947771345047832040738405894264508412921325076663217108846622505022978180998626364110062139030168839754797420211488609576193303673085994786376085550112893569776479774822402767050281670084352686213631880191706443215002484059777965281497278930777263353518103940876298720727865888665649784092579937297365452434224831799621538650381342819293781016684950898452858173832516060448674154629277523305729970437142117896501551672474330325466758447491817389054242150380440600561118183372441632438813472928785202287648660151654437298734911421432937210779665684020885146933759358283381691139675196040236699567434417708046460689093694386794467139564006667270714854321515795280739504433562884068786072158744839753024442924338368504443563894065522688547640165486012764044397570820454370621022027817121619570721589550904176207237276930500070148359014824265939291665525896439320173801012477697913548402419696037759319381433319255953057056027747938254780151732041145727139341244917377809850134383338865124666223727892936316489790289091764370995740231122235379215491049930009273352887170514975012961133050881581380275988936808832599061070081677926141767730665226679833744642721044833222873801158693518586137637202202860567271714780194447997687563123485026393483977429687649617300952441078611080820430284363606311865329638672039234695732769678299467266524334752759881876135242818526700627883379115316909608904956886746703631186508439564522632231467062803626988344042978742442242403693723634595843023205238181649123207491894358823054053967004478353019164882854570157688114267268421909184341994939819790403785261935941957655264433351783148425083087037029720433094280702315470220510524418953653282165385587042038461611969055856912269225804624239505051993910436312022074545041468975729433244689157597098167936620265944403195285592180918491662203816903698477036716955630077362605258726207319731944766233471120177923431840895440170258552326689221047106363244207239772472610093639025675374801967133350384952116560453944952016126412333587729209624130427752600243981459919318110823946277783344973705091583433636695391632601511276130340255929913540620653739571081963530363223300548200155437693243802052374380552811903427667852373519777927908901560309168702764178000375470975438390319079547612538779820367063494743075737918156228063556942581781884592116146933331965066220297116878386867119671899869305586590039540931594083249668799583372490461813650346477926637635766345427462636949070316185341330858955500039226119298634316970809491038838895694320018470734694508275405913904699428026189548100306501100880006161654530192626601579108609327358446420354709389225335827659166780453022384310641507020591918024990844282873887287271883869494069951279727447184932181296807225058914157854260715784252380650935950556521535736372123531036546201495092711865602212518096410853164146716558423122800978442994266000777968378492833698666915996494323997821236613871506271186687936326527494302406628506952651841635953616717864282573477527123542388384290970128844400464999385701174282288550321396798138793665105262163023592193986538336047023763834609273747189445061531047535393478329008003989984786359160327823632855673358011581645533221888936096642157117297907536283761464239766733143758436485020614935305230167476945612572036320476683133884756797103287767971088057075067915707628719098192911106394945758469589735278371711297233777981935904985338364282238178843090075501283809317067446429797796045733290452321528480774710955559914215377275512430948473821106258339155512526505577517467881642824463725527077309808536306910081058415983507152153891275065003011234219212111415501441491675550046366478451967873445953553912539292178733083160493311925858070610709260503537285599297873919232979753340610313815951255834914572834702907729504676785849949572850659483604303799564674461346077120271003334280427514883042000821469859800417556259123108486490018699463562002127781510527183575510114999200476673924381716748590436042777567598321885467308709804881050223428029741548151570650226047252934984976434698391457665511694139437767959813384527738336479029386985170136025312363673163501505123521868728372645521810425948701785074872268053764176284952023320824697128274397513789944939651574586378939039638496358531470807287624542578400088526822137234145388576296153976438560596264719539392960351625004462903131326892867761911565064889467801468332941081957684387584864641711926368511571604290509016392160806415037209155017158337265866925284709394196913483925548834851617628870376034466653202083012757506742327482581519146080553176112326145099016323401694708392320229779605565784367123146493292914850934997471892657315185347061023905081867379482590137482553758992674658335199632896189610628734260212061268699565550753561201414050328247962621770912355509800685168531274945265083069463943127627436937600535092387226762479798352495234002531658749050042236136489668126874289806742861491169030286357490896860081010549769609022209359523858610963031690194185645974040709733616624899090858464418680386089459947507015775046806357468645955726888014962963851435080281156296703437422108111495361845420520723096877972108262860121889690423657549138551137927006527095694844006772484828423307559031882087491940903808369537787994224451542866530296364294340205888462561025353986144997920121991809449252933306263615188031033522572904309063717561525351713608414528614339910764247071622221199149352094212732405760228428217728916870959158007495206291469623070555443617878670283746202725380157652213682154006147294165776884241492141836339314895954699358059461913936771046173407744293638391344119758588377552099199581787810674275474941479878437337395099420391769659245537393703016236663429641641315032726784308837009891388330069613148298536214588231755145791694993063134768098000936430150108656065881009530441857673250762020418835194690520727892242247085582432480268092989766663268246814616202771837435226145539713043310727383840210827077194531676652483355119848790745679252775520461863352351741342975263712015413647317007443939433570975673018787574686382444277485803693461142348732140499728669013601568658886002470893835738495412238217740588971955809999388164943939462500422104800281894151510872919160067450885671246403208115242181867230085438829355669089970172571909720128462672017205544364735649979192412615698209775222747262391517179780248014692707248373249121523508703027713506908734140202512739296688700365312928363950057499730963962993960230717884953492528080122738795514720265887865422656456554112920772154147562798843708845581946081342618228779402953738449544227398802862152878551376716717873019712416850665895566734049587524712095519970967903236722314091651465930367546901722372383069344689443088474263257757631119489195172946234630386136710245900015116719762919641248530696439465795458109518478576315866525468251699248091685563335968335357238328384924400671549024964059565307082703664147113279035654233916946446781714044863858608201213047277325829423345330743300856733944617871309830541950666084513866653740146580615987297542609095653020593405533716189196981024279036269018525351661890939542713400020064202104766533110299857800340094298331798764328857386862947373764367858141782698185231536756702441522797612906258187854693628623682123935181438587418175209875607074638603544518480398798023429072939373990525653402348689479752384625985174163395102091955979108280234135995169859979420477021137302630129701916650852778166728136959539815199007525405018852209512615109430801276848855495066591902489153136417963497169566942311018397508292964321400267102727335391805703983098055316250193475030427611722986937680903607989979719308102821024457929212628491861101978138773931685031623473868700806404430352570320907875881094246073825919589788159625933917815573598221615820983668928787728183501537969398886435282366369700708373941842456375214826645536608289903922348301148822911061644295032948563841527552956885994628414645343494796412706788923600438004107226863977369649083747248631402863976408332886112200296611825469617162755775596583949931169000268096496158352825051496052616139982785202993598163397327254733951549936871200415394228566970966899879820208098114760737120171578039032746851895485528012737547064696204291796656767062227958164343173664988184046567722058682007593406984931534902653094615663945880451392673231202100103751295325106180492642850018249876381465337597622606581086554946034707231041378784876168691319640004277942298019714935765094676110976065886541772971714332158996037034624896374507920209177838811100067439525991572350567698479763041851590545956373864542028498367496697628990658569052642531517348519275731892173311371232956146806321534165130900597738972887026018131927626991500117411906240888758683779492067039820165674739938558208694114917266536644898892723842006922835070294495728419224115310531306550089880800772159961330434416574970460364710370833720591791971039846396459914104237572947280466065637807820660701883044846723723209475286015645285235639391717496882703488193572223348781609686686864394094168169667202856058681252670640841801379805877605976397638546732516235987258241407163825974574122085768696605300508423690270735569583619812949472726638228374109886655498132987606083946188335961975588836145086057892956778091220709461181619257960330143296681790342293505894251543576606567038226306166399685553451716036222589874739011333507700706734207854817559294947573710751708511440168579759147460026405035634961085446962610278899533557258072289401188176821747197310585479984725855695377625863840526904322068068068876858009562032673538365857985976462228079960427905365260409398055206036611596554591894155950882947592249544289677026497691299981162518178983357680269358271144701349821721005088082965509320633872654965092669731802469600681196701337554972730117388879502205459668468486717049567690777412990079131874763766854586468170674365257748710076066819308197759116244385349258880368908850554196664724767501278158250288726261262854528353315108300143618785080350834476675122741221134715910055752138593509553489528519822033319308162936953045346402785683033332832810439349240247847181649409217641336165157923783358632949748735315734877971157923240679271168374627063795156346914552220306150953950258772076148524550984063630559786382020858642209074772824395818416720882996925322978282398623163440745537092253756991144358278037366044896194009208763020676090206306132264029998721014263128183267629900437181826090217067279068968483515198398462701165829980116787835434531656800611930879298555270489905638916711238128420106243918062661732479381149253825140208626572239559197044923452136953895910576339059854349905632688207189955823625031618834044235608648728204168734217908316171472186358992699610863092360572288667869427813560785470923645691716141211500426132334513492870710693723392039306261071320209434453902011919059151273383920782780528197262102374537667582322098399879123034860924123528258872778445920560301800329823154746550669279984812143764964740871691890436349931772418163285906156908727905962638774108488461083925441722703353045251385159649169781389919053642518291215680645755318479167491346419690492929419505664065985599277436651709177245333578412639227057576206417585480065382228251961519200413541580787599978563139553242552658764301352664151066702019263843823981985061468676879125937317881413196184894109455258491407417028589831671278269370092239561144726978340330229099868211330560395200287055133381292994886368704560504199802047343890173146795545276708975914540122871310570896894614645405533815063121557345728989682104678051990613459155298819152886151711190725568482800218927908989371091927369880676791842675325120839153133666548808254667065778673409427178718899937173910548317363647942393190234612571896423644597204201671396061381818990667364095134820985705363571017799059145114752526042221553070826588188667233857897577445147164388819544775777782410745433233237897217357231614135613574916051459349792439039737312624903429635981223924516969273666838200374466863779088876681187573131669756863991104225397432034363933833598389106264774830672022377751988842005730523932456244259358950782106707846236626440655745248125308762616714632572691614975327335900464367707648732774069956173241936227316937770686900987052545035029631797395733736258214573725321368146326562903590962334261401178954180852347087519890825192262696377765619293879169632538681139354854012795786110861381749769930461639178492514746205505656444500725389389567995066430466994733652741854794406068015297192144924413464343953391172717717337766135567632073251616324719380944230165281006977307123608165252731415199884577008202783735556210787286533963737118131611505859992313574829877785955962288849395127195366502385074605750630441540351032428890615200295785867281746886291148215123049940591145823233346884103130220165931535851586173951940273146659755632152504986156974698543460584344986051025363123685572886263256387336628756019633959598316495559087746118208052087253033138265206145254488986613895314505890918435008220793370550223443674469239159678067243142544183985965681165482436573724026723624783284390150658438211047041099949725038071671431062147016899366691161018186912412109715693801144925367173535092017953465986157045722683699756788880339584003922176880410721806708897823761333392348293478957988025750418092895776478650706559045571315165693524954691265750390749171251902202062006877164842188392769114155244782784500440854817634111501256550188947069494214526984891210852418394189623782829305419035191613993308510445439544952614563226811065831517151670209693997568694549275318925628643095363896723862580464164652403797786270286641560208514747503912041404619828989713132286206885614828884671736407409597966162114653173534765199947294413925566554358679618407328207741546418427028004546681516528921878763654641009962698946468828593287147719188613030980166552386184113991626316699391178888921098224538935867305668047502639241465603987299074349045711339001036997191292944161396226683030505095760415759772235930279517327481090243280373457986602238512859414839617059400715599507569976210091678614415374074481785307147924069266477152525921564998111276126563039318818945318406978751844907421069855327421872132219746391230976067962970443033309680040172498331334503276246352838410890833756049981260035681779672619432376151853936978793931116027364194922703223703653499983429167352232476682531337823118821963343999470927012454000397198142250912118112503331287087542082136306471242532056243738759855273124788951384905609318338564767594627125812364711876301615366163687536249375516801025464191574291859106095727187416480674135979067822614554542180521844952012197995204609347945832781575553739406118517373944614089083152949616324439680176484625826885394887537711341935627291323805996560573222590844703689304167556096124907574112514919488133831211570446560956258633009378404825090752926692347806906010821168978228787573995566133232349344583542477064929545410444070878066265002240132028984493244999085858248525328513778196113067243075628410515674462717825590941677966269203842632369127802237194985112591976912954292647261371040656837830503347410102824107372514399183039391398143984085259557463149005279532698956073305876650398938624857823283256658563757550966117887458196999587374153494817851693423342596458689035162679174473596608380068012144888570236111413222163317945055357524327335220227965830492323663189857217006731500058597834634884500437790555075062397016088764025792777707929397847767150936928682713177772222392826376217073710722879318030182484902080799325031297897496057940577342601485154919475102605628984532963124435582891095736049942277940868586738390018007277547886491762884459504569601308891936137318530662410111544889209132888960425935989414543630716300665327897253059800497606628149737892448957968121522972913930868865163774204577171659051799738621965288695456269182435164399417109313070196081394197741715002846264476781804423982318401231699270094688929413958934929566358120664141658670018087111108501413551993198304903264947303483358331726865395351287196502548372151150824256117933312817443659088596769727149973667202397057786015591746590330089761473945896011434390790369174922179698781580572516701690727818103097246875689293394728534065437957197021241473820954000487858404169854120744420868041244745620256870367435242512639804507787449719093177009209884148820901774394734432370097659893072853184369423520631339393038015587151807952264983766946130143417341036026051185871097666542559288819391310290109618517966345056005880793233350140536243376623041379773369692731611637224401333416005895536299684501717435623150012170715112187857714687157208100366939214295380378662709476575007303156756241047930364876735502855437380864119975631043952167159831211006411832335820488815585779906503455583370512294177726365144472000677988369532171556794461260300917260073087448467076369664838745931553973652069409779865560008916183727574591803454154800612122716248389145558523128446672707221343188755301301414609302394942167215474532999282995849638356985367294067282828027838273028059096417331932473778693201978506356501343044992395843464664667689171458095512774582580299243811285077643191972377603437155033777247581718772950330160631599364688500063703840496913239348490021526946238154198715140280747336595581580201988042002930311685144098127526330198781003564867706607323585857246874859505874890316320836730757932631118499609984197476466058829430337646939054979414380587524451013193728597405913051743256455773444834359647192728387993993114775416344691473570720644172436980970722096284622522358162253835218177806098223258579425160144866060613419253993179128312380871206584572650772812122845532639765578531341373539123468251898529701172738038002192206500890986476966098351971879823932490478385345012241150987640650358805321795130288673526578551565016593433943398456410599072933957394603372987232902346386520311001033665397653799921883519990837101729591138785837809163552814245485895067294745309072920345488019165510781524148305986032556101852960391913514235957936847235549752137477976289645482852952134076503392879962382750091362401332575845078807760708537491907928755599686738168785558994229182210808055408021035338379154809375972099668365106427800690023901041755194510785693638182620667657278198129245597038149209793008762969569567003993963644106399116955750151927692033578645935587162450113218018889326148303306126879948243884184515693760128354200189513582145162817771056326822751015231107114960454227399386925752722332707001673792761647482478107961458760072795266641910823413323914239912616706443168552185488632126949769308507402479487828039648938744080995310574320401333433725090911995950019892051381970015463403222444327947362780670265301685678771467666709809608395933933915713362553559504956278482078361204705683267318240982917231651645071891334815413606302200047241431247481914232909541555687842116979353769976704051771209915825215629107304262339877595405845223060961817521657272866364835149824959020534523380628054911227828024582800909343621916288276366879413792637457342680262657774772541145234551927059598552199745642023705212297863079104861324749129161722217521254232128308689063215088106822251164933618845458551272963798654588371479086202107209328312414165706911610819861662423425304441075075431885294594995069380925407330759062666170948319573426434334907399571662881168307135273360442745259686772448596751101142443106954275234800801256250379009004868936834066057409695668310917541084703849825309092010701295308570002492847023349265085119782829052345797922410484392363064446833157274499246100456560795451610154717361467009548608802433246112762311160447074384468011903036767631494875064914778751845093619575199997584409063729132383915463311321841190124579272895232923500751926713942460446469843164900702180409668459497527009036355926832381578577462850673150041738383465277485365596008395678191847190984503080204241439708628824114354143447932841363889236779977151838383706263725528555305467334088060827481620831180912561144476268904273532654354756138281065961084443208594133156846595331213474582900635039275633303523235778257326663009538356718202675469128600831254083908626395705442969931926925392302990700208594070806243247325132133048273843494550992160441396948169279944176913155922063970188033810896794654265566131121443026316830805542748913021974943696409241230952996163248039340633200771731695616259776333449113732652782417031931441937660283440806295001413484741231501376389436497649868437270267712719786535177933449320673262837792073626168676475233883047244990167276116178958910751745830035374086091977703609206401394535969482541539667026988547428857540736658512781050300359507088951006552101239988306719870557551590785037091332487108392781532965859188618507604802503544078950941436270051471404356193304112587774234361424880681983469548602937660303999454175040320020210913305584438953468872353735585945331888707686044657017251198658090946954318467032435783683836088119342571456734061832566412228445759075739998700277246865556865158794917398589075474900243701708341949715960329461651048407862751630564214843038351663588552062244046045170699992380121135685800218339319162218848782876423430859827504957923506176743096431185688099686261251582473501053785288150471311364756950794853792797332651705620999946737450840770262732300653523944569770739067119670014933960125580286860068880462486129321703326341679491945743166144502266528198483071099786104364245391774718103654032833261779858653862719456442701301404386343343386569158864893864395193547649091312522767034471659006639060691276736850852280342123130160997952226691199535474491713228577089723185213766684671945266112982251380584232951172596099781560714011047919494306334056707039611618999212569873361931463107507350964503081635353726963898968488298730355839699535220390066541235410774640988889706870861462717288520179736746941274486694281847281850332770397009771590309659719954461106299987378605974903286093868870728448167983904252882727327929695156991331309168610054975494740767717585454329694604628556577322611929284058844373519121105803724851248589037820277525849843092191446953500781621026427502521026720012062313412018960673325804625798463150573531163812126612466490008137906648967152028308302545656212583478683368069601540433870824142274111618466293973201362748333549745973958350649474080166149331827827465172251705775942008766526775716912901414857952243274440187753669585058257206033368380561467208396891082255424228059400254449052202667344180293661679415548577874889654488917373758523681743010725305793330043057804904995429500875803093775513015113482361217300145369325796806197703560958025235273742204623019922601217423185009556821891269972696212433895665630112250137331115007674557557965702961456239395831157557656288373541938531386298352022015927824336468066551327190111885742148279326686118534909488465757641509513093703780411014247601012144280757206315595129511153310738979035747749057838581510753509705059839060240842600327430747992829574918904740393039088831329618424176711031901751138281101711867284311317196113985001547067463142614874326809011593309982872431224545446602393750354848694778941774810680851519250870735423674278679169384893726889919817146688929383001944985544799336743745508197876190632712164534097809394969951102726710273880781038257394934324219877854940218965978985954867941106589627222117272496760130820948578757450001328176316584490510186158313615914043875214194145924721401347720413895242933424531572872756955399815896510554558264198218000574308732186972114863925942054240837844669608680957727873263849020080520203135170719306002649934230288622237597633193377264836946499274787535605111518917422682843617088810538872285243014235262892415182849527999593306846322286257826095992982619033886505368987128843617904374478514120702647050028895548767396866733789548770300633854080739362926073481846244004107696541188714142577061982013449641205013295435795114765141796411336263013727632440598529384925442963740514673050187549224657017292289993644625694463666252089340364214382332009783822773465589773266465024230281147700391922572418065972810884676887694696688063132375842782217243868549016157918498497387717654986307075179604542686111781609639983632393886501521160959210576049595616170549246050214139689056686281880201365278990852810226095390101835233429335643357933628623097674349512558570627077177764420785835779871077747681323712829947395365798011192556502236758910139973936820999794845480104713187723103613590614553344263951843868898763833753417866705982695952542809086169165475045627238199832519388563936096869517478657939933861119279362314020994582929948716171921831665889547907056781258941063936859064345191353586208214808932541844139634154913972158877512025596033452521218730721285023041755849988584522324102402433626383047711439830483969118903836698090896994706470718683438028742276888174546869806332279730601621609053067076016476232164578286458965097209730022834488570114355769418877958453842381558299620358089128631189534181351619409912981761167320261217865726622827372367322414851389347436767780866497999107288167122069862954551732321364926725389995908595129555642827145830160165651960206629536481438838739079491281349817276953946320165751526950422956924490162717621713837155797484579620205293022325072947204638729612480084507637101267906129527551839802643948750067063055156729019026129695060436033681247849243964839738628399778434508924218716834914774278834174346372997494160042210314747759857719863255876555458722922805463033731964158642733016997505363638760656379697307944236627916688612478818658747619436633362896592293607457724769524258077397138778859342725144190394303899555324910318018645613499752567894143169956857651058943916740756140552465282882763398481539504023550419801713254641456444138239825784241536437369994839689960703942318643360947304740381318714189171701198402608061108301256346247323925509233260955485251943687932672333551738971739095029919028011288468671097714167983668593735302910272981574825382972231137394203037846007858693217814610270681941049712359693820646952441639283246840401512468659565354509912327293616067501396647302930951353782314354095311533744067297207508245044643939955371305671476687149022886229253368583409917062408237934782219663752068325754770027612518228524055216249098483868985421605224364364029229350225242405792061711783739061221897567926147325463798552785160890892732029306085699560367005040800490018949743091026111791925646194662506337653102786958964298576945823155545434405190167007766771058184560295096780515600810144539813097341677485605758297759627263399711387747561153053429706128238881568095180454012250317513959164130583732182635520140504902667143549417043115866983897202915847836874578657468827487261920022343845753570727311937959753786892127479106272971376196394823389896438388006680163701981370250334482554515836461562533488179438213480715325927270390806327890138614626118845873038650309120377620524635953487901297607932806667622237878430346434043096111676635581629431261625099921974723501750401764677337266336615167097193666976652281193701962196357939222538738362928789753631270528029261508138343428518992531972583779970309860598317209941724977960852997795794809316142539163561634271631601848069509902108726766021342769069091302501008049892848954835167498749303352767484905680545330215144040364320850629706930490879597033133830188966308042104781262678976584898895928042357692739346956151819865469743682026059325985456224124375305602942078305684963856055042497369259915011103273628686247541354613572987419620631010286215517447880543015322980625144733826317370654857743251934258292581883800665469845165740963360693735147862726591494973489814648134214503398916108715696388120166252411833807027853442445538223721146793559814127355656177638431201240105453886438232656577574050225404043762809111035991968128355850632794270530042899493222858141205826507612033452113199241104718566672581447979115825084093787586157882125897679028124161621450943354934931577169025873208736105120616349442181121506541015097615221192310100583963317043072013536354297363527540123664358940488120533064522918248471717182283454001754690673647973324897235369210822225241600665747270128622698398180199894249758509197538921694772487350168477454002592267586675247279456048924706598455131232906093276938321651688213633112486237559876749296568392085010669751000850294022857817172001947067058372997938772260090108448441931872218313782361072008145347643024485983998263972523035405332068695703843873760154864854531513761429702794430594319282931342908234177060302566839631161611387372428668541338463758694094627767107033185538074367697949344270952544524542959064776879272572954732286984097511060010160635800610954352264958610579454133007480519450073971049995602335605687507373872241204721631107485323875839993611676551690935914540523529872055701156618162005750881979882597582774420921891575295596949647347914960378088534244364682777281919414107591234849000369576506136309043374322741428608730514813977294015349855837162399188509255891794203617702740828500327555736716122845887653228257007587134640530050848671736503934260601575530400408900070707303112483209670958013256818550667384701475631237123060695828817132012523580968351898003976324695060016767491970832900375459597892231645564586246576255676714637983991256004518862376386873371082868836632502540075891092327385482732688806373891275981087014798278680665979600874407980744571195586886881911836274279388407609822961358162512075043575331267295357361616346122809983144572715309550949244984951655738462751492186793766130780101056156125695964570306351743463563146633111271592249767332538367820000489843099248953878617679065098810373034344211216603514353352760369279037592364662192799261829221955880541890065810809474536350346525037549831356237478969555287247573442577067804181173442856346315979395275736139232005630020103910296276724913198423505027174209936209798441630686024619615293341321662560035804446350068427273517331904790455165038778960648397156368288522963825161867656904261823674385396943598346802073939359894445683899046173179096902626734585229398806627941007242313254877085462733024973056210946865343705234137011153766714071769677831493610159839371214235832136358756315674754275184174653081202603246939255803254204620233705746348932984347108891723877360899852800166392582432042462726236006337882218854761478705846922909410519308033605254365302368257584653165503010379730395677009062690228107675942800382262942103841858037930357024522232991216760080657256106362076363900482954542525219631708984597190915862312082522607416595904406244187841958679213911987572873234071827815396351299688297261876471019417326350215110805185283412483736371761873269304613451545470651761437796340367182827719489525303863083051443326366190291516602023585455373980742635252385615662588994656152836332063779241456556471844088648542838958343929303358201832881565657890200893446973062967371883218717078481215955579112416079809115070425241230671328863595104055682499084758912505720781426237594030973495724849612944492515610549690283719745174639414549697804226096715621968693041068440962430261676750870985053553920778687820037123059769757147487894526639755316274091845574596262022589969402615967958959252498958647938800340848949785990665026996074785439907761092225871718323627554352757809768680231102294548436883926465920376444749022850285590537798264080952669936501518400731399431862257921131445755992971469353514563748929711420731336977490422635359256039582287215027557947105888047166292689463362063619949871993253162515072781027293383028810443679018597094069411377522059532574001013375221141129804554247499345575053049852863675085231735003637581054799801622326716115092659820546510671173176632905089553764889406338085580710391583595698952356199876613697449518437969493441055597615579973113376756566963348525686263008769112750420292003816202023872454299542002081282648782200131108936113998338938732695290035484309486621919742429108419682683056054301979112641916419771631357770321497573628046217453149398425364565999341006595512247283358895492869378357188626634057198710307364828341424563018541264328696335817464076523579826051904284620118532191784518901497286062991697358177438583173591458134064488616374552487027832520475031926483758105734416285453713124480115978323995956098548504593060745649258765353106067334887501802485240575127354141381127647636730340398816984514493634210261751554803971334738291111138322797205916729020383293920255791512077842380163591519681002467028604052089877568541616625838866023981568900290134427573011021223929114141342050007815510671953410067410818089394985065676653693602694978632805938117685437073074297841547192562177194560384456315282048580557541366097114123103932205677412199982516708087386044029615900843051389265774298137252083729348056578090703238032584850076926467613545064527081794251749115727283394593540025909305476050103065586068181181771014921650629783274248619078451371377954587474007576906261338020588758049244622161417749606688926490044250887236469135177624403339442721412588072288242680607231702694052777801558889806557614557412249170675788877859635392694642323655024852009705902679002325280912356239515092241468781792550856067964103114163827640809460843453525524054897775735245574097106766140906990103583898891264237171609810758794589719632533994751642466554055879011949187366006134509596409124876344162222860015611073246012914842771834431602054374333596725129920176376764080469793539326061235234314903553224843269501196177726628576839162585632209702843554185998871997215998422637422148640257244759690121779840465156680265878965084359189132166810429028642284612046446098768724197170313589677189873904719308103374692112331714205590235663191076008063727089253925178053060305656642159285866855848788101063788840757700141198350008146606427547986578640408675596983925880626143353840519152050123785748390551392567860155764751895457098091160861698487867953330880158373063451677521700273379213321459068585778842683855321966472450957272826270747964987573117835354621753481520949332550724255860385569945475997746562144005268504125539070407515340890029036799817982761581600599505228137056889211596513115728879571681242606965124201802353918031338539978342016835265920617467532404436120740674826540293271799096856412135005459888526081044133735237151611314004249183989593084960459408792273993364576139885028073935974080422141109598982845531165739783536592657029325405986461927836949914806829326594782877532380866691016818807611776851836825624853378796576588097701990498757648183852364967708991605921749832298058262222394090815148794849019965163880532259142321279685971612111634087783939764227282435849469150834424003222104823460114461123798708899108939409033648301349304528668832971642566173678029340800765687679922294282848798982576211840731348121154248205623642744911580576086690430792426479868905092492277310556227616404747365333768508672824413491329434399129031020544700242135321731272775455214264792858420965633227346160351004044145442474929406639971501720585802387950645215576535553702161317163880967135316424482408049642622946266204761265935791705071052375582918245394361693406506431694610828714583250737590525401306609899340815915333850491235278005213497194316143562718867114863187198069860323640434344883164042733929304047360190552164872334182064907518089586221563273073503743878496100057288784694262517634816511739537824710233970216628077122749062265122275478726928424003366036968344868203044001046474324418404721023245377760802162637697470830891521002049488322635060312044265347074651756189073107875473636827073416742528719741639178176808366108078864936612841197223404275733372976542331938776391649036246282540481965257662931199285665747511468323232136838171927252004497916819594708570317083849380491435120581931506367677691188268521200380783261432219669864355853504306504411159826251864242620284370913824906651690243454742455500535279465786452409287011007547641383007791952355167730722407582418077341916047669440377800964799646182323619152719056583204117896177520894337220488271092361744746673879463419311699216008783462599879295457549063839244343945774406374357123820128479077181499040404137727209332876428270225105211527453057392701965424021413283791573142983881771617390611346648468103735378622230438749042830051706908803951465406670860805046564552894695135929433903596592258949610488409849186453618300916906366367739824069819501160172278970630393172178985749677856068399045537980341461727199899718702933692874535853353953593153588193159122807046949612919581222705960838478129087949585849325278932749123406986519204753755179268930102333389237834089109997857888373270032992930297471492792579942738427992130700624061443860021519654483274585464175280061567860346281055601705461421589320594632028595788576233315268303316649493931935417479153907819845639755696970997601588390445746618715691182273428958280106809334891605935509848210109627544357053521654728069718738512742241258399304275358227056895772851850658690384512249688212007689790823820605301016320588149348972036695957498828908395775218429277912212878430116784248451537873370347512541014258240159438300519121345495209534634612715676229851269039369742593665980626716956456194861080949458335612005041727199091541413514048530399176309553927297382200714852466629844323058065097275793556742643178459426194841093032063984029179436413470317916407733109192000205365641188543525375200436848347515527339789550586201763296448884156820946343767322713272533958112171862430902438636225530868632429108363196248911648324318815071169792955268228791930146039253645317785897265682769757759334656466277366754734710644601131115716644511881254417105587909629330331098718103484405564665179751739225997852183510583655310685284092659523477325704101122910864715399700504743847631921613579822808888593827287385608649714167682594247717094538384967445642234229011439230690115011907671966425395223702357903292967958873736129785125867990044728408065603481928372747670672871597501312018389849588902814392063803068805119299661444147044207090569440288496105700441336098206128890626420662560652518794351556077019337069296735902160235819716053419240340229900619580668100356193612993404235712976786554985917451380487210206669056890695857402734583632996264104998705399964150303504751974901112334391676964051114684200304815504168870910096450995917765120890815821828994847645164484917199359095275864339452988887775577677326880645622013747943554317912650844087887301336981901391512128986663475736453858076238310014828715999113313172913995758299511062207976891213424544007490689346288310101157740360145737615290180343047922119762899778742890866277668762187471356693772530753105444730663867023672278066821601941190553438216067254355920883760974770059798015719564072797157148464987016000781614181636867685775728922988186305592499857447624812075457550775942602794299564300769949385975922402242055322422610088589643451405241500827928807349290562434693704103255574665121391804747716764052266829590280197326999451107338485357712141673091490431869777942917822873973563167378769217989832159420161578426292256111566224994320261117709808909566582399089332277216923105052000910614715512580472248814356390954390373582015769507566276918563706083127478248098663511164044724115484583421387496683545143501898032422862883859155387832325597467094869456920800917797194400923883118129556386521377708362499592041910727926655280749485248847856892244824271266922550186993719475242313859592148235566081942404407549481923932984531280027063970401362285040200776006604700567618556791328796244260632500664601482671127234103984630975694664555600237932473529367284996309221558713681483942924941911032314028710530606596211523982337101789194910360188811466345810764210496626531057756499816566801407899565578350969146136432075624425821894818567082628066105096320050559177547906148941322170546699942129072243923067257757558641068546720254928048056233481690904054676729611571221393271063259707341273046867941536801151893916079949127108561076840729373033564588753807015708013625143951241535598728763575372061811979725919938010684164243136275521000641252098504097595600671487463195168431065364316760703269430748570220918660065468345681757809475930756401956421600240319202496320174066155493237122750459825331211219047106518017561218632082986276745138111260655482117763745930144750221462166619674623801250759728432350867915680429438965032697871926752275249637816630413448187310711648261718031412420978021164487624988054788330534882440653220793070782520575110225785960054077664370612440328779809523299517731276793159465699262100912174411972510426341288784493864852934598715881928741673055434230289805900998942101281877280871290990545614145043293522464155990985785328398357781872459182299995742316480307179709834414541158835164506792682374930939977885200655098272893093519851676110169459635512698921923503787456745955647323420132526623963070886207351735228734552726892962397332297387979993206007213458989578814949706550026765108660474598620291541958179989631286374655441108506897655707622706191717640200849635486679894303252908533629350673259802380972110253551526386273427261083117487060309295715745440622547159960293307388528358886644444085267337348616799046172845915309220631998835464260673120113837411463041566842137726569212353982822425368426736594648465812145078951696962879339661427599450447564046816086780334667925702024407437273026541101349093842586762755780947143291063906597391222476904867851315750336367813059759227867246481934028710508135005634014276025591015172108268200035029994523859370791973215270746018051430866598488071380707218987023111115158600187910613407193902125773219747168620026553089981494257526859263548982933018778916423042099055539095644539360358381754391206298914167769194344412250090062393358190975057245808490743832072961427582499028761344398502722710634965815548822840385277731014304073293899372331465320496207213356511000755392146812763576852474947433811740864426048211673611931395165413516748375194932901142223923634713364060844426987263167742925826197878739157996158762819190463243410735026346914070062466002110423214528190625693725596836562738891858158749009202947956843465931829348932936427703331247231016708221232001887532707666835071865325990228047604432169635121234862537415785439077615484519298356312522344930320332152394065201818587419734954163520964124542993635773256899155776581051825160118964230890151879618507166196359439177839039440977957003963275505941637050784599606907230962169099636704748587195985967547641419569603898604269261434215525497298711508867794123263744427908434036006473370176150944940772096315253884643224841923542895855173894971033799304824286322382795931339501749940984448568279715914848538923175337425398050922989353419543394008747921157705242703756212187812807410400610681262860253344106964398421292821116171946867396925900155279548205088969099192131920693330021716315232832012064577362064468897967399257352156083465206921196076441794621469765184142958426118627402256589948943386636495938845726042457038539692722986694217453017701322859499962955715343388250608465045716640155874138239346171321396373115017860009083574252287179270234119874777149497837596480820543097005447505735547434134267461941801618659823014921680752614083113846060031112642502916235331949963687239921341162995845251101284078025334743172084117724004698387074817566163476202549585226296465873542467578562442033631293985984370256794928406122249271163128760552660570784504127482621662751653565199176754631805417891849247727005899947024410389272418402388118518717657851962927987481878106265997767033895366875240210213591942460676454321007402863565558215202073430624028840715421407495851304863688628612453733879258521642529732513995534183117924138043235352635269833072118029534904388792133253098614149236820481938158602265974466508644451099455518439361060907492768755378292401967547175837611446781879269583169021944420938719393535312635464201037658359716031983838578342571490507632914342988875616985090511162931366390446789728053739193983656761116808815222483629579742982907912268426680732340533340675821619453078022255950006850997084081353359600585786023275325244472919016494610598273802622238374529671629308183464348447711043792616952815330657639009910891834863064209565401720572357358627850912844041620717245799544244094317912499749473996864653596120399862750391945963879896018949363048515840903858081136137893542520002620879845877751785990850584354554504449905080082174046734816245853265247710210039606501335214811894142025286350871966168348593010836014828193484657672594543725644153959727242786862362774176027585671507524849271323184294459318490627382874775245011344079983497935430743492297996629244703659099592883811834492864612212413851262300850191314870541039723912110812069209081480801621119439510491516048431688379888757326946232600591362080269509418752262459100331337595517098700045226035525740716673812579652408211010051276919477062750828319556016508295363176777272359090335101068515026583075824810708155096229848783020135698665493511052297299883983587564744723221233544884010782357621162175203838918055153573579841401061758895558290604774633911945743787174816250559610837636004311794026987799181974991118560028446419458071027122664254318571309603362892526541281630849931120329661319594121681314494858007156742156229466895189591217676109309311398144950273566883675696414871876709995718018008553165646509346326101353530136750837384419201983441086510745066545515646447096905427998804808842394995838561303579123452621740486266498018406954079658429595197806879080027013457703756896249528269784454569708487357508445428233810966530970248584720007167338991552710818177329884172982285511581774554530774952517542484018790834210058014008919365396541966427906375650516785644440608360378421099644342666898378105088607869615400365990552881139632188796960939200865317112278825967949937558706246008816644152368793887700504689511953538801272732853547520889922609949641518663272042093864840692248057671341292522642101495715484758925575888287022257656834799685143508411119776882697656619647887750433548331200626035680411601519112843534847655515859649489520138542110315923317907441938335294705282201891896146299774093927706146873824681971263630194481325500467133554537303388505878640912355571972492953091282488294478656120846594377755718861342660309252456952751209467395923777935608116865332992672664111609807454361605293814488978667685930533188299107925435595119530662648100548727336113427465734847498537169027178252808680078974894170232920994935418591804558845762156940218605829765187368758265080480769373731949349629947208267420334060007269862025908551057142344029413393144683519969421624971098721234489631968406751254416634401414544478265134243862067674254818324171962341425309069324031459940086896377094406640176313482786748567801494387286893743927404207553412664059638076622659193431476357286361067278120917440319517053117098446375502968435888631744398057338094355540399527144093279264238045976728705149850679046368726157739794444978453944310211527625377966330563568931935221804486146760316548613048013527114231837549956364005466048661346169250878468333977044523917065253897854428881800071772509309501734880313137573605702389364254197150841545033086376689229855547002880929927855768018994726347459648433772467835699562333675012695057910410392708077509061606206144161958360814576969475603873754926092319385897780942074073972495451261940986877814632557532378263840436915704504056157452786339735017605567616197866580904304547046669103890716418876917848292248102424376693144690799914310131470689965261600017169013203464617563424874010119248636407546435118847375345902552341113380703289298708883142857462449941953475945012404019026867597617573400043958031175734644833390478744393177989324105624790104346718779906355485956724133625842275145815881568412593617061199993306408966299906878135400885105926656425528005459408401116307500668152737081441244755054887327404603173160469266643144535863304249162027902175858496045171730089207723173891987506540052021714018196306164385323827805752747252139403660533743184654923974816168597938904522554677442482969977387104228180613915767230605897456537383884375066930736326764533239563173217218825883675818328961056842609786423912798447379196858200062008179501512828984333800868254630143166575635931455320343129234340013771787862588651982819259779314216842163560664020275511938751612587115572204353901479014393135683863536410462855545347351095504337508644833539768585687066782692517249997197486167749675992837217796111528784008986626551505261827293482510674556983367106842975089089573009042582597455565979777275623119754923699404773060051798432654335876239815733361053097292655584171129905795547623854490251332941967254238231166129470228862309380466225572892406234204530444926717484992997599860912722864473592991286535930744674819290763195826857758717450595327287427944991167860490898599737516130291486154311570560980379843316099686645393517529446645441887847844190912619991826830768139550120250845473219034347671890483452680983824841460355048513077575675086240722123386293811285433638301391936940077136010167995988147727188013528378462021877596981508179460769111118169922931091252952549237329536845963029701423436425965314229657053123182292087121009906421214473519257980327375875160553938347086478940949351741635636426454392513167524596197310762868162156040956415816038060695866441093827361619216010954484730269536128206222744898556893249045419036973038528927463609178924531591099772599119553792674448342491343554373214205482394047042887496858223741476771303371458360520005955741362421468181115414510033488238377412387143046414863325586806635485433091925125600993888059223711925108386844674213337512060839674834622800567014418016836910338545735983839604283101765101122098047730307394138894324309594491902130684636747082796305796119821496187899458980516475853753181266875306955654894580504581412655734642839488490580808736411924640754889644322433639991770920044555016283296354739716580154663909994310174592545557295902112705486040489606684565266973458224862902836712582859218101423946665755524125810481675418196310634906592643548610403840302127895979946787500087005988192348752617886203189430632965482587919292436628050526105575443002396460848421354631030571424457094092863373189812330315582033959950050249126872545350741477624414457004686454221624535983606495714572461962393702140969165329885703703444430200022033924130120728834117645094655027207464623244763899620514676969713937629382508640841432376953211612240176783614202291454032311378889726627818505398224845933346274598248215603596407722828592792767186628820847068797122735649086242381507227748387051096242918871460496942032735512077798226504027684228111829546032889052651917107375415632823019182558439162773187140307374465057150246547023416306535023400328364489294534073468620802431370558401479247163640862880931248895787348958039614256949259153628539197947239371561329802060769795877204279705651172287224526777638880406509542727756557919375793476332560544420597637530095174132045014269196336687329209954421381136861758140943200312545872088055322613346676486281296279766768678546055898617619731531565302009796661203643570627944179738909174048214547439518286007112410013283034143309464038475499236179643354908481903633751899152915797953158306946219712125297045925201133913285658295261365505908988368181420044966369882547505764409245332701754394495438883069536431789909520484573507698840815803017782374226377965346821411942475820725821271595923707847590336283002669165577524463847571675967790156852017166519020592544429213402802582997358664182713679456229794917547039619843953066937712333429165923988529547165300618573920386717550100141304772302426395284654880413836296596834578931832578372646277247084934293646174058329596562262077622769770173243019082011911758739232705303015422407462774893469932100407318710713865386078040579704780502966601670314933590811857205763922766040152425717466712362950196511840765103341041860260442073740806555853524239894098682243110970177514552531122195358305145251989774658633951540531641683196111652708823892837699967138068084808282557660735101570546841422348409279391397303846258180981541947389116512003746420260941546006203580450376030994807779417724069890730573180432875567753900142518170218137970965871399396165553352292388506922562432754933244762123576365276460722067952510315534275248230467987825269951517006166847163614617714204167035392253712294405342582319733439558659581973418910106514608937441040399791651727172778644773694688340740436600259517151804348951193588627306747950064165216685976965704602332777899626902574144747495176318699997121791393205455374100713429679358539970682882788346345345627822385046878135182149209312192114284263221630526093320211563205519742365391467985680524122774511702674145526320342642846082366877451923850557395094009500602388805924392688005805354653453830728606796550190490436148216903914464726268847377136155545295740135337566840554198095397922973713720451892522467785899209954036511745225623880610238917982473314515002523265087429853491975592350135140999607953962185683459890373459220777642140651747159428374008699564524165208608772144801515326299057810130219826507834915982912632858456872600519357811021338372548768243513951120162973712566818512218030476499859238202354276530006959657614488221707495352194750233770498417292555194797559064754788818979362238006199357534039036937666707136001832791345511176354211213988776216184569399936783713327691963030404904972453395902896722789799288710607535753980188501609097698347964567306074425429650821242886733055141031942766830812791738764618350225287432062939622959005381084944526990713094337003865177538923252960818203615988313980068599385502638732494761659381438312203946411143340764971729084880534556103516581262382618581151352013210689712530602621315521652759113353762586817218711335442490175408092040696225629190095722036359981782016070036477854510485676504445936778393989512262643860650194319439072488230343683271354181579398678205887400307942436587767603380038990025974098750821355933704382807305345671122244147611841854131489382954103195332588456107656285633928225285683753062434066714214641468712694438558739899545639191099663591536634383770534061936154541882380567311487602065451591782445996520421142673583644782851819627464188959369730714649953519737282839225628172817736136567257226106330535596134351767595217395437862226728882026516042020075104475603730848091490522110401822576683811037930693960992251871380181839413582489382622203702407542585672902068683619303965915041934567352829976827501285785938628828283202864079864440823292581758553765529646438825009929410382536234883645304566910800403392129418081643345673250225722365362447566956953270803407161409618231378070885234565071679935325126617225215520492006553251156652738656701433641743647666824782123867370975891286358121382054096233833432843651476951291844224532829050184272919886923486625363905052831601648930885554811476467723436124848817788604549567066719986058073634231815701575783161105397011696894594359761804062631538535978460340794885134800320502932073514101508596868379113615787231260224788229895548350750419318495951819823341786485556018730375221523882972601990799930299047657748339624335138610860804082500507978510828773397458083458218721570275959334469785549514232213483362087968180811889381270560837361091415476399940360098719162435982809660541984990360275436505933920320485291802881071091895755381151796047582558023950541989960214571040261392638561216325408230596860241230904990602886314940403110383205479598222034258610523663865927067769366000389143345732991178688577924445994736099920202157084904708960768470709735341706864660248618043952154436606732793131857362917565101004067165403221997880330874515517000214527129237772306879434089410845272068613269400337148790204781327704992895692950022906611639718258753536940675614091522320602149998066739142411765467185066663673138457277117869013068822220729104479975655589956874260288603978417508165278752979770315976302211783511255646758683351331098747095661152142820715190471480281725572998068968554579707583224328653157779801605132430743950456127933268913756650240408439790391670824010817626850210868102338993458145300486682704593515514730271474850510649685337028795741397446219763145888992912775969168683649574277690478181726548163496994776711065161017265694758042201184100135665799346555715215042397787089367595848766091614690181364251928777311049545525458598276028387944031910629637904403706184090889745045869285806079192234481839989926662104828696217134137882363116885111510471649220126971984381529201771316151162816412376613001613327650793686654089997864355321664571182371657882064600187717810711285678667377310288652208589397179993127076891962311662372283351726318599328422809166372696252599428557148895521345812478936550445214818978446854395635465777073522431294167366153984255184413232761358032507167795369598969463278857712301530509685204585236570861940697356049622079832687701982541575379874760498473811357965404133533613621211130797213818343031251345384228534495709030707366451262305291399264571026968829608477258913827942839601774168831453697733199469253362574775243164012700211168747699100725791250600608478146397474968000001897983349963353443471171731597071108273430446135940939420312105525124964847829498295318843511862141897210684477759166524380324291894274221448461482494781849156461015478440539594884387513978126336135646313141682600625910415942122768408771011985572449038599774486624693905624348990783729069534550286484617884316489972307921631398725376185071427750671261464560487881205411234398021378463901925342722502644677870618272960406025053185004296239655299529826354898924288910533609678698963625820679800983257913121082537129071558590048682304782296758745969227191262032545114113908883690346707121543371991981469345494306882948631374163425083948829720095716131944640240411333915608404999265071631039029864413781304902852239972739224706851382410701505149339982717498377281772775604306999241039021802452715139760326351727287307635557717825131220367735659611926084164706170849504242813516541089638576670142548200816708845415221955543018862725489451500760147537479623718076099978679226393123564755231250706956745204310076378975157640678163714627594195888440209191559748929750818240766354285227979159426578551562988978713267405038314701275784317696860051286918896890073972990241710967504953090587839766032879175464048772437983650733206950618905440813373051272367748355972104560940466335875431933628427020227696319041885470558896658079541650387815595424748693321876217643633783116024134837959089299139227208320004611301677402458565510399058773453121792945302705753711098320041038832632135404795835246765931322873808111945509585689234696708918980148289068847081181073837713997956197818349876119473373807303388916135548955254295426546162163301900550444689761356207763685184226751683825180060788725372076626747187983425233771302390322925266484044087437183644401553163571709623772159972820843218861212675933094492171194630026106254447424200627968999833439243691220073886620762352073469382212919148484893194962107514584797025065340377910885791264904780037228524077607854988563805047584014916547495889738732165778440836893679053954774018544721384607066595143226404029703241486512623490010245464990579006488775923038014579441391325168693339322912914431500124922623708122024550071300759614286574776983251746614371572208995845467467108799268227618539316689584009751518126441561355465892434835650319876614130718290911453816367465744484953095228722940212636430754680963229878214250826195251922962971712995271762835890606184652022870896672822081055225432182995386732843475094633057330491981458913399653928249202128552149713651135282802733870638333871258246713643500912495882980634230806236813592288586825047983398396946314450818669859727566357529888755458013177214293296512497387256716150040223821146235350480892445549444879522122573027206158716834777344242178822467021050394101009497984163389142973580034331793037246551245474784174219416562233098341826669760898639638259511345363132489402048770746845130868262429601180754328194269095087072075217652475223532936574489665894237901145744944533022632685683198147835640446221823770295696277097547095443012943424469240558618595230781505305913355345883296800993554465592698448379603990537486461559467255785891117768547877204189184089244154154424500317168077610851240826563929963509576878879406111136243379277356304850172632158808000838376619834361828996702206449761625672400021703745898031870908879602139073213454749724664206188670084230002910673994824368494934883853765838476063030561450566405347420435046206554554943895214213022033907486264563825427661492448238675242313951840623764392654409550992508605781911447897243028027699426868135603995337261041655283773425315409961423442750613230479016680053095764262172836118914335285336732514896594085225781385359292806420038508978306698071247530728217694710669006232475513145012938895639770380753365368859336578974975884519113887750604584581174122086509000804763521895591299144656194195463341560991789746811527065988815440548653017284413864547561657522372149523697319960871713858639057668958419520374283392637575555763317087689245243921839514875036972297422114219885276235643178611942842764598356412233797320332707637522425511778800581572164460250935759830184678611967881620575896595898733327358512199556181300768548246558469289961199796774975956116508046686393889848496686426618538351144405611458712283764831903025812086606251690152731199951260717929618707592775781215104311318562066945608478362999755499507894719781748034091657751734790113962639746210636045133334052262252032922883541569845953076173076872192802150295783577239464661374762353240616581161621440978620827500161373562614986288511858353038881387798855341167270085000464574122729901701536941163740930721913500190316451349667411548372576534141602681927303733384577472771828799929971409543359508537745893991395113307368453351600666821187581047913210211702524097161746914833068277709896936123719540793385045347195171906866757254918406122845971526808185206882210436179901295069503774249129215286753142446488739379023574557243885384258351101002140908594455775616478657338935938180273017679792440318511044493852931420252414193717502101595255960760405822912276720427830864042092103236251488515501072012300462295172130175591791860313565171448749206958783790699260407178392433600611227410896307484323144343678968636715748824347037508560446874411490273159695939946027401346568237756433369512542480472968641541285532599311355611457370592038517385293176748193429709070522971376266618397865283081736851724217425987182727727168080125303175062404097130350284663056517380270153038789488876154992022137530233579654122240071938070136636517290139808221625986007899124007759570330384461300999769169473450041849442000151571996512054899074696687193642162571344049187445746790406902292633381522122982001247453665844379619266383765493876823793484184868050304486862638791661129604166492808401291598454033167635645742547685362243457251112353017126856126579294063506763993120070244034585520062829049850467655325417760714017094916330455369400441792009067993703314765865133295040900615189933335802054981843760428171167403393254679472397114613748145094506890965747438503436081191753017718956465862757409914656208837967059059938574905440219503635751461362192674053290224089597986243199200314630385975537454175209973234661384890849039496843456773384052009797690070426502910557873917605413062009866603998362890991423994881496266281628282931659103900452771081759818706025747377844031116252252546159884121588676861891267331093952627153968474889429473608997804578059607343684897697414989850928600293934458277125564648786731518282356437554468119899035808523920391439251954284952996186027836909874984427004818859939315288799841955326845464593894744188495758107746735854456531605255303870972632046510581727371380301181113175662516980511706140434711865256027615748006444292745566490637368778088965824931296956445602580332494537823829720184135173299812097800228945378932245611911503975661079820145782674148748541396689967629613441393495399011730178581201583534790032460969237443602939933394731210694660854031908579614936151913150228125765637728459392532527610699264422367694597931213385333397007284123886056293158598836783014225563835703123456041243406018279532110076469400426462243442952709309355736366585459943528123983575948863375353739206290910905439180915582701521703426109425543828273649733024543379678334487973431866118831883472370777094842306528634054508916279240043015356608048824116108146872190883204425235416185248808875712212429726319573819207567675448017014238510256830519808958738503015411607887821076969404837193678457281075000606220437871004149362222943902117045084511360256278851733926583813986496898135712729183885825105707085297846473146350791390396524738590995330635307226654673672840954517103962247588712551835904769455469993901425780099646481452828518434223927185836502341467952529382703737962133233161264327785500001630142896697622804031628482426127829738553638480465340809603389528537319079702117311060436927068420647406746833950505254762267655888301863397923843069675679636311730902388556757320972948231282844320895601128357848033446356180396097808009239566982679165501622226455547473243782050145394136015623722938042626636586110311749310491886539112060378343489642470573091756857526479784354237947882173220050854101576981324088779746137712875705674646845805339666043313070575800420891242624737928940526271335724098308356008531653180557984544495787287644424573625226572101180018261159048434099254655948544564195680090432166474533778710627356187578079267714788431166167979605951555350500479388811142546579941070275380504858817178003936641612389220615304208758546380916246056247909853498321761710494837343030872400602628229207430674978937542845091664148615520913695504782662760349629032824141931320452544186297715930770528443965255599755754706335966850307317543291409195584792430451171254914962536515526130429620297093167724352420259512720024822912582128751141803705517841340608874698111246715735542647183127937634006513487230313246199026698982006918599066654223415730973904189153059449526773249814029855306408484532704428276106731898385071126999586701261574758348923322085193036747674076394709858992803650145177271241473641523738891567614784903577644474394369765961386195144236942152930625249297864604251292249695716609486166585472749590799358075619859653892694630821906738810974930880366830595218172570059003672932333486118839221862654728239004621389072510568375618164151130281623523754003459404756780141880111864539474904218353505691984133438536323695350555448684275812024093595605071526918396450647677453249336234497797270198813030912315481348724893346819717998374140926564838094198786708609102716056581082464306945457863030005165211783962875692077740745845959822084821689940498950797883456683041646700224149925049887171055357066125726053163313756451152636109902722671137716168082278722424004407802281239866861471928860095501664910170818718919208079500330693821287385784110753242336818897981204703791259652664913588606433956530053951711307836455903335289752019595834722061142942809589281481368519475734386412043348933018990759292448808200475248282231342516143453913917194073486979574322073878141875463319177753284527576026845444162633370953024611591833370262717413783334913390539280968291511368255561186646579678528890055051328015331006744471722638267885624195228193384114193442351800926280300001438732232243361572422914397139209456296972873053717483258257849483884954271029166538719294231102129243290651864628538984889314904592060321747236061384719243526597566844060165415158038440503046881939377170531348777209817195844708190690474053993006285432337950697869045599883317669552947674577439753623570598578897757585441128900414028123721333875856692352742547247405145790329183392137938680830938605381086814412520294032570444423266115598087010917426870112943782610164202289951068986891950998634170301048267323821981382983803863749311131004403962091707329318247480478686447881016921680836032413764232738247001210016748860791691174625117174736527991122086283031966411101857547920560811499491136780823480662034412214942435337242414927490820317698713597550188304066934627374132748415830073709785067332511967822825909332602942819076969882190967667914137683785793506806503131012626165928421754649330871321751395632419971220772774373047952120851922848625726334433615412137269166695642286299073167392873626103010079810539842479965724403505574343989707968142410061258322769913243997124451098806775292589758196299646170884431179700916740498848590111760129220699789290426105618343867545575293138531007363443492806988145485147214578358648376524367881349189870505536293696872934289400688112553296842825682165901738856353576649587982670116444232078710088140965439096321911166630165946560429879599627294012242069642069152094941872963924696861393940516881732958317678518479925123294487548177985796027903182685932376581054932731559139111237395947825768328020291171601001639497809966056541015782545243198319518299245984180636567702883421521382678968849734508992402947380812915278916496155286625348378537104133558611884609118521187699501241816692861430844935605484673648175897959208611307629673320759441940308513059637041610816934543125304771888675661593249502061660378070695835765355871194610358302376670355323834303010859280747488606034186479512166768171791431450928564627089713068828340571214615283871050843651550905259700029867864373967093763806060348895932143240347053806180702060963063908773479904423563920380952147014235530015108497559657530004021950866919018218757173679640911507824007583229143096172430192358852231383407896396816439920278853701435587607844398737998166984029577278589951250043666430878053694635746179235436547064480379267731391257507076017890180471241491696226085850279900881023601340525519155021320089122581819150708880685400416974299786890961560608717377022103701371006795100234286742023011136756981447326883184283408384321039305769455742489111305583369271689373465380695953349114636646053171113454718676005873450216893480187685096934622172003674799613085384196281023662442167835969202257842616951254168119146564298103553772982818362328705845297160069956930884499274560919483591870190754227704096668041033063865756297285587031926439319705862959593853165092682599156087953473928128687034047755183651143771233106015273843330114259509911609821420761009293657715365521158483455983165984209985157600656172703426691765418787902831210842494458970823979709550433322416875512882679601126548661635781133072343783827225021269769184497650491910627065786429864141967435197735735015170274164099691615326748495090289625214601756212141592404103867961725984731622965366894437676384353948603255637578544664742866045465658286331201208271714008312835963390235515551416801555834668451451608393857626718806547728593287809395405949727406244079204137375697897543711708070686184443108082131868745671623653175894003749119035468784084226668137470527138849538441886250095786705718885866132838814650539824732149965170581285719684449744464064426218118802769530299612993618999355746127931503097394217314308117778831308867820187254165973117027758497672167624875916621299796036310542910706265872322993489921332090592288937805397364478829135345034822389639371271914244502497084883175632709719341959902520209122101253791642839693509672774683888151364880445537519637169384451365421405049879973992052200810164999801459224049458243282341015806784326118970526851544814599013160527494148443132244540618150806682895453655171555965635815704544672068581998298684902325889043741273788391366980042103623977021582140213431419905707716704147660117140657023883689127078034798029717117205906007675219561119013910994857322184621173655693021688457218854939452435108230887652110346419050555869391803142836919063807524000635464536637695535750211565141350514463722714177214100882288897456345820491399155610556043686561501212990047367818199692392307427447524551515844326561095988049547429767648903878195617864788857884914415007173207482017888106095167841799152468527557770312017139395455561885351344646319514242484170168291267755025587557241597460099188171367090354618796213879938938405642626295053303371394867666613475019246125830561027024445035346809634556612872495554607276866035596345959887069170580899023117450752089974566008899500950491570649270454827290736201692902522487510383386812926826775577684874243704135173846806709257308467757057087953887234361554798665073094306375216279869016696411652830797806430118080407060786825554166387848470934890723776129454572338790494395101813887098386632797056979202770798848509186617304333866048229063792495931257410688479642634728486913337983668885403680354010134010755087641600060090706156207587120742286246697005032041568653301182318128409494147932380413582825664055976327684571103440912370659023458379053922694450772075127917034958991563020553295884868433626035477950636777260256246508200485161542405895555878864275955632984092510937633111648305236364708697285227102493505122683517827941449337046518788148960800994502419887504450856732571479829423766054485464625750688300480416767770515243428085500929093385130872835175348252896375939983053779344184591361518087192985623003083878223004624956390723582743933782493970344088761591563997730949691094056920172064439200093793566076785660093574606151177956678760771364753345562418121152237717052232614539299128140078786776333510924319329151436813934386041443593330259213674222323079378003741535899658389083037368714393587105036713582157926038547727682989508126091709639375744948435770411426386541940348648889642604326309328414922825298287728195320955255122977322722346085657150357890924210791551905822022295995581399209798368008586678951915209049639629806284718787710319018804194897383846876092242358951763568245188439217527161835110890089760607633065292509480632207150806913844532652792052251710427686425677779753784333217188580718236837133423352465824091227081775987674011689776260181088800267555427498749121516322416772717538648433623969284553862634532923298574501987661662381843502924511357195072096343398496834630035531469668307791090890141760020771919346505505048098436219402108504384123619468781388788412736696768198629651065695639016984667093258001225266659150651869440349374948083007349204492658765906089553807920501287709831441439795941044313988342543817194880382631966971291911660625361669970234652784254750587495247644285427909150018909497352033638077625651805793748708353542367189649554925401758705534396825315875130568140932344346800860241138625017090986335432148026758791993927655901704772222148003882968041453182996703659776740486317435596570801313200109316902560794878467894684531966148528075738934162733973504309584247081013861171615937207436787385144857191091750203795702811276737128697253588587366699004766734592278006283130187577575567495148427385886398771587545314592243578018023081281333164833064100091543028056534107821000734281995995284703809636305348710948845407214408999556572099238484900021579089014453850383082902298400353472488320626036651971989955109674229218310010853655152725416819548175490333714747526573541556603843386471381561006789440196168616953855923486379476385429488342167505065967831182822946065633649069672764654440888298122010543565799961063703333314971424413431732940455054157252163713028996846213887441930740221634769675410036641260722563167370077701600053585244507840153494807234072877686925206764406792985429931615045502378455132690546824732751751300842691982093022771276813384513102068128749920564751905878048226236857508358558311420747295553566118195109483142123452567768687583429004360900153442470536619675783297691660999984807166257037707829056263044872415378406824484120022404436703837200503384806375884631642980292610273203175498931272402795091846786610973551758180900520554176922097721669672754337027772404268660270633881372723277948235439040288513867988373508176291261187241828132040857736266367675557558555978595798755153709397824764507880033167447662850163972181525019643050260355763142421670132600674406516381600059768223777821128033624408841774275985764083783867212928853536881778650852479242773080458343859161268915577794547320833515348028248648538499212605979858423715808433532306448364171244306659700818039086259383997905699117309262171399797840996639011239051964369648262373642131509484702164676523483865117882429113112274971671418220274216034582020017373756531859973532760140474375372326587068278258037187260797558363102480434733179190631631672739292158363909444696069906243139340003899283247276096116049588160918787407400684408543517200634475835301990155064936538753326107095762056119093788899975293056607122715199689369415652368258816186904600783663257375553795109105554228179190785480801883873662003823296829015363654694695508173577109889057640559297205293312366744793133204893479913951093339752322545736827980221920179723268147096532185667699194402325643989807922085886812706626528764624258267701888760354217912950348443748432163757282527514046361131227142912537790803546000269075083055144293311021889109056129690493261943709247781023880157608196341541482276514796242132992166211039461313169060242374088661098924810527402276074750863101292022143706604657767504737349811661577609535635419093484381387133652832243521004803555923934061466888560229635948394799747164691975963997817909531228021490059175951988613198576651806508915143294564507875089398203917705679802503141074007543910681778876793809022237504774426667254551958132873197612179670537804550583749431176034940683743179767788314964363301005779955859829868836713001849691585718077533598798622544523758405146944660490450329920223407906763242945298159138793734454169705641035564668687006686524030257132382649492176205662888192111894882059965983973352890929025832587182243831110143598757375037296455144108034051857069381976603603285416283379038856818497776700682599422960568307009316288126363994472935563404253151645337830214592292600817293985603626062100907643329115442874109932226151168766779108850055949545926545648152763316373326288162235420858295636142282869319716359767734437761532421481039830014637276543657531256728618829049860138129441612361689144147209731786884285853595026023722795989925310508037556250191567426490519271204836163378790529936615414210443354458552046117374901626805156292430171299458810448886114834765440939468298760987484726136145836785421387862209240051430596078722412953968678079316158248050650930719877769508756754901287320651170829626662074977690418785922978399492900809386519223230385302008007012831963386563870369931540734287608071178783724418066292681438027139501845450117745148030784810147304538762177299072499588393261135620304481860863913019199698499094430446311309411857335817745222147685518596955135462636043455962484588728003394910862358459642445668052978842440487800607021533521232112103741964907102237820888739300227487303210549738407336657397337903634734621813726972923809720297127187206025318021013021435212312325789194373075487947034708276449079610453818951014456774041280184806829661360578026473544198753130899083070157344765272038957361290249031750107448523650329746034105667656496489621088431534935060429960564130908193019258707110791910105569989350273566520044358039851896540057048946870789499113354401868444954886842389766883130294443348885976726252901390129677640390490275133956492682650471750831827811158900531746401417073255580157736842317936089795580009919118371100958361045236827532911175629530448265198387184341673108137821705153135207933658865808578526601730438561571569877679661898309069610853824768461176598891454078619516217436441477474339452194979463091270402440686915627961951412972671816497919416186699139224235886981482451778592881182944899869592836148991792613520048652084175864683752788321438809334280584436187864655258649699278735304605905079839783474526032327517086678601334383462616798355524715804875232561211798100994392601253450599393714575339336404204405625543205932183889232600953739504004628326875232320855626785438488128753286061129516609719707792048883444556016177203034174609670475277328702184142173448854491840942022888998834856745239611074058578244225020708357176398874018840149045879100777882746312823366686176464437805820844172874199305025136744058625592995359578657259770171742505477333425627994828852232102577699205222655452258271716939127019465162909623285739993429381074962562570499517337305912701108741834415522235580601982657807255899022640309433834404864487843282951066000352033553365374289653636362409155179871338156009345955109794843289714813909315103689031535833464099846192707302787999974869417339736469591631195211749388365281088031986164954462496751729989827834666262976006661178968657568111599383151976322474547652459811871871422089348661917968135293906834213568359153485289059783660062840101342015687466244362211839392602346716944152664058362872306124162673704378912346323544074590372212023095344263954048279415927944209813988526626546623633813890708039979973310452518602502058834733461887472307694657935886099840916004933380106441763741201812100146864611738480077362379279125655830966387138701334254379056987730690656351547903883409535950354733186762950232466993939497123207521086193361959694571371445516775203162736671134244469863912476533480979369435594142418777276562525647588130202796989757172088503268181874909826759729847211974279927997729285521298134269378821795538097263888876089121370757900280833678132133743762881042570109390983686145421828613840841340005029869569263961348476783666967760463378119351927537707409032571885124700626379229352402338418315250152111799401850450154008702234687444946490042482921763163583698024293915895231244221413384759023926833528105520145261154381584791944780508790804909754709082989324867849553514544686083897763041944252722352684238668956981837334318704827336493294496310800333562508957683795447242281913840903204255531916177777607579653063712817231018086115886487213726890223964967834219687890860107808934651072579319065303807985904353526575929377140069257211151177150904507819817067439106049641386630606785960167050487747069759508653799591902896826760949793795800566442258915364938992060241615354913248560568642978685850411595853897139339594455964981170719063851712635696709804010522724940725452394962336091308988119222887262496520667082100392613950494073910275018205948262591448654869248840860687312051039645737807862990467085771623357597915574836572950037771023631200246257097941656160469731826289509949426646112504984776340808180530169240264782074086877911130154885215250211458799958871243653982634263663961025020766399283555057625922359592993878965516535219608476780279606055662151044981179105526961754152729675424163626935819215443919839443372303713550536280117269949333323546888605098775492709061019995053650959561535278706006997095543155885971698259194557724228887301384336906296391480472193642600982585967086532986303924116029027865709461295566404617736969179081613075109457573114698749254187093824982232968716566975314592742325059541041872325391735411167783839843940343971828785644250736121346131226622704538825770034899488443906782005297778531866680738020180004427517280136628946021968101985314285582229759926151635879928157793820846893085429434463754804396297513117900183200040296991693306248686454541163212320363192668678044268579509173301152565950106615596185713012751926752671199045811226909162954455909020737062908692189927528053809249950185345230990563898448881397361532862316162524834141556161019242311247553027394274549747075135331830148307617971089895223645390703090807036226941231250054551626925400054626235499355293779109466254442834435304773816069434536112191222860221549988710375256347845500691133626329536689787075583561975145208952034857100530128815491455131110780353608491301253444556447634536875927481446950704418276481288621519671287004961314232545875622769588231427440177693795695236436125380707971886641783976950209306062434076970672389950915747272781538823554188644183212161409901104097785168099315112276328801285557567558424669098019063827146983781351648878648279403832930346276462935865467258232309229304448499270373193914180021097392318860057515369577393876863609591631815156273416205117355624578132221094651484926095641462257715186523503464357105330108508768385732670346505311179304316640968343229701936185324883832183230864872143724966805882551917205836827803987489258180972166085857859402722236470415117392119727699970815288298522868065705260578907383945773412011382040547926680962487336523861387869369451002684971326492009056289403648433926241785452293256290971424375727033147962619523567845541842634914459723159947129053368255129356394884515709041054606781613414159240977960196642410191620187580014493403920080492550679717735109634582983706424006627651027451406300644812129289161697500409003233055795075475162204417188699562281189654440546202552136348345907986388504206801029229282614555273460530928747362679729652578548353250580229486776946564091299386480298825725569800146862790677710085299144932797413247881079950338039182272313338968958724421668518073227657283183045637401622833805087028772252607783724870566390741572115344195616213498372405540082799894445449320197933639278231395316388140302381262282401435363843959567579516930008155605577431619592538467150796863930132405147949962510131626867908125490129187906178884339098571801749580133805215805822163018403771910690518804870100513648647241485499388372524511957888553337449035750164515148550490521122432158595964483316495092526678203263573991938117285734111625657146356175399159715350275667315764739841778718875272407982167040689423492282345998269457932749240199546057081855261380025709691839781928153380386246194470746736051163951421465620921980332863950780799014220001705322867541987961295543122100495882810857205338511852142819147891865683407896022894438548137433431260283203514047618719831966208899361228372049711503170691622792128562161649699004799776621510251120363738871573341683809859012998205500759990646322897957287114775497873777666797794748703635088004904868710509809257704242452048113071086210593034437851069211567390762268743939626427324247832809965484450139678084087755070742237858043094378441151556932791575110968512043157399715073391274138646931122682496310221906818672339904418458390172983555058003587386951117054939377660454108100656936106109754820429064647835980418311442017160302562779472410447614046778739878542456910080105870239122911144451324283950416780927693944025209167153576342938890839090015296454926722162106242313060051084863820484736962452321862454723642382984252673869716438684600171116342536254284557315786172402667894387046978362318897876715611343256562519813441839324231894808711693419572322825782254580520255655492619096945068788504395496900001174089765171344487792334906572151687386385943385680210292223672739596229444672765497620391653860391219201246411192325458065152804837295828771846615632255480133920414318061921637802797198489150088187049479153787883773354539937659833369151151193205586378207958640064378047491158870227969266217946888612617477339296883305807670579362671620595095522703211104718304035099885998216463091780825875538660997787885264234757135975515755449581768460706852332199673513865975479598758302046109437434875185454015174733129681437103042553369871179915111539183402541009759865723748562924014961535238346222893607129152550059050449288856732300572613641978181911843587231082876544324939556025021887504993223641880038061904779022358902692614872846495572146790686227643131615140114626064675319924444698318627173314104224580970883413269696246757953179451122468637789167936804961367868288972402894992558056025170836853330994616118563846886867511887930823582103451462581402400026533953250647563759317881349550955301766119968298465705334322736707290480425350834263808649091998505565726095775424988837293919529339694309824904974001727695963587990973944721374855871455434470639257968129968323311744461118774779990358629872362248000930765194796920056263417480979498710615719614541919907484896006574798917172615906182813995794472419938278717852631594878246565047386793840256779255441039703113084222940397623218486367603334993744197372343014805975310850873345329010049070000658258586626152012329452593134440718701492849707705946119762608046951832700428455330937926765682700513867992992646687339008989424846340495477856047515921685969902829586248605341125686516273781358323623448010661159649915515969969939435516666238579682177006611161290535602351181395281984795352193342155515486131931613401249499009043125767142196639930621601309932193979387525131797848229365712757107155821434193311707461104111063706774501105333619538814501596200678354137189009767753172487297337699348142429370269958511442873497317980651774279972586105342026228720463058058363782554094776461011989886847172456914289382099475353451864173767467714664588870924193672389243927576374020918315293790773017601381811117308845530080750283431068481728451896455735616833341350337677946690665729796953447301299926339827917873328987861922672951176470536755654653296401630953587464719657811194995185837381422067513210686084939202984889578997509571613892083338563237720960842806298131305259614464790999251201293772727285377187122167425458147558274650727662651568800044232911326023765087905150103329122397989754197142924273070050427874762814808659933719337333719438143665850187915382563258397220087595826102304125112389270351389228736928294464033891911806291530986891958544279202973196011042141040378615129372875857957712978172438147139445366324691018818435833480522696781196773543348545946191291055719740976619788492630940123257177734792053418990865947507594317279037859886655901597445759704016440012282976804166021590492297568222042220706821842479397172529109949974231703008387276956769966851332728004710873945406499932002118441267840788788984557848790186575369977915942968212269554939054709954711098986841562582454828555460134878427025223317625585308880133552966140937982754709685814582693492729745160098588346546288915189110611428670802509493225621558493761301667384211356178506130825863147075298368596097369851747992468940281057288663157695270083367445056464845992894178516873186184082115862679272906606411486868318489733181428081653796671732632565312598051336217853580041265738258975773508932243040416210910963326912747995955333768271796041874764432824421211651644404630574477911838871948352433569768983241465865441632350591758864204203859563651478175032541341072598519146503095899140489746377595175287547934930337655717032082930878569315115966841475200274231566678378316027360455653805164382830972741763612759932007548034065042319564402870478523396184470057207520419818897791864268207220947769462530822182377045454757940156317418635377046013020152464816443371769104507095286555382415787009932010366159232468803445133613455997787101317127930597359287793903353104203363891634689644679469918305892235112775578712180867449949683443338603578362055506781383992225705910037831629378851935195592099644924891698757129710840823526411885106161934659698945756305441053586183164616511498325541434348627603116290136877898591761717668691573694810100327619837444905031036432320341193388919999460946858778822174456623723057923364126234507040397009658930867541905584138054659053766070733428130713523092212215852468954738494815061504022562327785773254745536302016530633705648121483164453552519200399035870687556746573171893964255946430052910156177473780616731755617812096068539672967366093088976262805344347882061833704197634993881734215309143020682548960930911091371237262131962538985204752543929051562637013968821560463557491308358404841153748888788195947677376377321529675089326899313060124455020654302073496822633768577117458001116435150743610742416456378392550456040055596310137865786102393790930009507877058860391990649741495639833144125461759502242113735939481127984129653149593910053765540323340177179484123944872450244294687386187919187260436774677280273589341877826927230168707058256722987192893102194101365347040465550213508752103519396298616386543170859310900589925964607991254826822514598821066181639969253805169924951706988942834632152210780175297522426843380431964050631041893291516106482668392205670880019500248482801199017746058961984139177158948575171389898045217234049921005496878651339183941415329905962856568488562471447616695980906571618902746544197625796792906189879646030387848061856228015689811245191099700941447062761309052705844653755966365912968512249841438039263341286139618669705519695544760457822576953734945768324881412706076477736821221669141098578901763125963215404723335792009078220286501229191524559379899563928375336239004026282356822741614798811522420230794324956152164694306655328265781058105737101569895200650263330890927241724873847310221327645145906835099857224845063505988916614400040182866073588725974968407103831831084773644090858005948794467609948039102365728408960924819349598772144464057084456799050650078056793583453316468571038172388109919046984262353042296999730061222107190903806271694995808437085607461206551098752898056611631337797720781873737518048224399464927384757917001223628136901543668341280841369168366838755366173710023431967883467406461948087753350846764900653032611522174439628749792611342853080786679107193595393870192870115749272833297888730692847021359121549042390267554049772563599361003296470326932803964453355208748347496837510750990169472758052972487963715557610715964371885394754248455161977287098144599625887671560550367005758828187196040259887591109976307899353668618300223481094245238814326551582237753404794863640450712379097003402319450923939999560244710716483399463877535763538232625401846857339358157733487723092699499096562646969637307635742757228512095172817433265310744091390983915925225230165566459185394638769687724379898093863675045851730747081058429687480539896263253297272278857651525612363290356635063893858038640916726537561795598023486373239604048126772743301819083012300075155331905055522365728002306088184783089534613987539631367922789672463860035476291400927093036467692356226423605447693452297586621873037408755582600487650648643960004404394090819532697753731327412401817179217459432709198999120796629952597903165127125950500845150708827035816827779882819986273051305866162044797101990401622214104152446933783998454976283696435205271441582230454065052984401575604261419010691175924105718720510984352219870623480831354747213654235763499731178899371319791412468654920422076106262971076074227257512996386778273414891764277572764767235241509455138518298781967757385241760979001329614786586954387414500923974741503814435370622959485872872105889596686987294160468739368793706549271996416528172873783057394310494651022783993394770208307143548717155505055639117833974498400408044526528906816916037472405524312526827837549685228249508492598050419264903252494340306049568331117015987846243787698328378059686808254476779554207752443672763766745150603271588105440547277188201756237593759415395730032664752908038144461843367935054155409491829757487469282333450490917519610917092739932939845993561279884447128255636735893317287980082612710590663647496145581828007781788308040810767811175510983574443085302043329905173000849095248826745571852405134599867194706984428627781644291800501324888927800683867706623077773191542067495300772895477571410988267294647838948989839191568257592456066834995225287877977717977960711903411531672428878815471341878578684414197051827195272567860760087280504450118220614264595443859919064452591785289995911179348103106980195094375599543240629324950392697662479910455103362373122052304816515891108600718110936815531249718315476469396334371713633281775807313324826239347994095786581956430295889252831398739557221395352806101600346787969080244661154005745910926351251798446569106107937789029163611936499537430231717871415799920243782921312941347287509892044961769675288479315794086400956792715744692873775074983465478896741053818518898695989650242187815446660658558962114261579657003972941885065006686876108290635378720381613146831247880086758613379638510691169871678687824424066119338830220637740139884963372574451396542747467309407400365465888881831313782469104939604038669913427711661260711699005701812539983583012028652032922982753241190183319268860938601621717646901283820753444210088003313680255760834766658007140655151167752586692245608847793332594348177379388384086708253292777709315571478623004578070322552777628519421894434748645762915848096901651439062116262241420310225812299826240651779288568753510900656612634118194755206083939868684365710895574444716417499715227510406012636409535467557892329939378645765719203145883259317319967076335444842953564911767421709067633110378766974967405798081458793767819921888620130391138126602666461904527519938017233142315983560311752812006737435252269800713746124443431551028956117380784405854169121861437988686410835283799661007600164638456354475197125492361911279018391240032322035568744218735246626890362325959718334535833317836390213400951429473292024185017462490591890311186034416085218198130115643941179945602486295474763619173696504259650705501138306006423581042663548989535737302466188568756879314361501518417250995814675482317103659115876632087413685110296746108027027604312752668997247667178373712968797993415809395276151313959961875280495009349508222559611380677775301555022738025591238141725749125170080732312171109837155735795879206914594104425012652028316377126343562514780428915652972468588143739758288085023457704396578588410745116433091066961604026312798333641490704180617207030375027605620490379541693164931417352708118248085426071246715349526035386077526901879641719877060866837716102442269767877809965872369901405901674646789040922603206440284036536941673226256370172058614806303588419146225526028799636956586787669575637723813728186393971506062829619230356742201447445994587342748978807739963485191077389739500523970211685578102129758257471090905074002187159849198227768193466235717236345824556567610202620942663736517213675139999901356336277384729182571144588322235837349328013282631736405544193494803080770172437889100488873976155470817300054617015285889328615683998120869265951232358194321133322396620486482683903475759661693766545276497097260650514323777065284366969069196324595300378111501436996018691030805240934251863282696428615981982773912945476858985017679438720499967952068138894147909292436222976736151551773007895696510518758873454257369681648425706478299580682567333744527942858608214181730991484208414512428359381479487892918470737630111791730208168106796376461512291765586462781421884153578742294475624417732964881597659174501502273350535701747534308279007612560689074891737992017520134645461128259371414484750847832861110103343204216205087475850634320605440344093217912498661550304970899962507716076030810103360673760025040508046714131063582730954390099234771286347993658326315790426108884451919414780384455118505819366354772474683535109925862180467390165280205697851802889472351188034830924547752346963626201067597208019936747288889328704610607965870102648937134898901338464323564340835861597992965483001290633493625614424519402157067589872958671170900001628845764581258954964944392085785785298428220943536080209315913563617635101751533866117429592732673340821493839430764035009931279514013529386220687434106185535123683511078376708627726001626054185952423235337709543177154767951873903034567116231211325674289267563809408032138044342477080989298658431785533930765140039113794886179302662547281153826855944700156099895457841247567780933373749170630120133579737836223419099849020662651390807735950289462627239403586520964921950992753998103047373745083412172683205424224370152647279684732282061194713629654067460323789741793785160411339711341733180505928408153107860079077886176202751574465370527078523172072724747540814120105918996992595187128928318577792725216384898090712921183035917007851553755770672972298096542683267172049871354283930276168311220568573497819580748263053896340891857849265252494879422949531432418302359464764062383965676968681523304866562942663135209282491244499116524565814785767698019256952782964517511602481332257364820213504303298663521450205016825815148980395844320820466707583566397838585526876954844498564466123398525494094104494536898619549841601885097151753591105821699252388000615968390133239333372945068323980584892989974334738736191490140914123752905495286545833048498909511705194532329796798823897084470073137224087350944732957308902155301701547820093533150278947457926416354794758548835218316547763938842819209202790883553224614850499665056720969993237975643864069556584534932993589616463137298331249883396455079022001687021647585565062436833273618452390218521383477855964499379003605617809709595218176926298514618456165780078852437786193826646255835083294369161510457770341889501273449146904921287451917840225714690092591938875518277107778408806490108638691044773968109339999029876508044884761193347621401968555769477830722229144754055361394397176478617069898438937358832010102927715900515531749641526151950448584696999106547486175484122531462970527404277311707275697009312271530233769551082800146903543754649817259851314802807785092223605114014056572543012585691206280732432512036205746633745397898829312984123045551905150193188749572225333220043005366982865795621799513369041744488427729392957757444974613894190554657403557549945889544924027490574933327993823348503337985789456880106273904827495949884814986585831030010008636424867769967457480308260928467382588723297945887790298780946412147077052579094137175638906818094598413268879858821666695586874160130138461825623007081180572387065631754067839233544449771260797583129943334586924931726347055716953329218910978527663606920561753493722411545471188898128326118206974402850194966600240132639153342013850612954037788258320877283666478784258522361757333235931285476776629473987414352498989392863423280520079160483041352694044150443540934084173537041563297292533217354948875374002975271805489135572512696621905683851822995377082617671364167293143114465181585965182198549832376678402967758418314702865847311335434815807191180427628703722735945753116537843138599250371241995928634651780249514248667037945589602939540547923927472649981419499804091896178082170188961899198566930224091393840192601827585035693166735078781146725698688394614177764593053929164796888242627456692626559208237917429878142946519123313215629353694743512705448523204496455679725300913093683709898196632770302489100297201827404586467451293283819518083379576043028599606627793919393620000404934178903039325228947592397237315867514057262233452322812212420755158494930622406868459420951194673812898153441960461085314649316650002340483783377597609641282712924516684863574932346999110579102741641662860324904181562308324413521678092748680955659227177875310971271683574977203926519150957123288451595070665412625698058885693487463154354622119667324838083264549669753382446077236640601051569582222129873388320223204219460948183454629813273559959255954633514682125025219850193562036232528222839124097116175031176169004958059043405871510570583603238975958850784932568103348767237320406518105212898298063722042473963582870298699575665034672556567206579536435313949217065051550043942753036921178881132837284896607108325189573727018691617489964333979255353949514838544776116769915288191015960269546393407374136310224410200948163940795360893092598092637460808287767402451457694501671495041670550033052447896096824295969527455701285270745129575853764054358236556288919089796184448628969210571983545561662775099771602880629505604629521056952282831349411941607169105421153243644024517858105066868811470062306866193106456233287168897475479811868047202139700445884416921298513638049220979863357572594143575907341101315096536253195377521809024693621370346788441562672808700815681916052898914358263986802294996934737450819680431045685945544328135414308428108073669355919823882303657238311491011320849436292620283894902806371428007519892553045268789182637372549056828779362232524306904612376606040776635918750106271161730501503697318943130776074813666709739655093591715638157433879470735913323032688090115738482437726006547289624849000584873173877118986636050063907398916763863991003134310387853910395540909094957075621915607261388063817698001825136235407990905091649954161496663469787417495692138347721141150626597592743011126174910833055173461877949204908810218360761343914611180921148322917785248386039282176246954405238923875543770027800809520049148353808026721393100593245122863139596939623017860185078860600524627030164511436441739266580838460214296393410985093371326176626397003279629104184750930324709955191152436036363163981899479700339178060269879088972185757882176337257898874593128252839763553255208353192699720777862203389927744518842233917759154556044172251975618616599190959749810493747069254391112473531349206245023802095538048083323083132626300190606337362558241853101203894507766142819157208532931022959745705187099919937543580424363270152774735752209171180563582144107683082982152162691583614929078336959400776593153837769471053255912770354468541672905666307325128201753206167420474609068350204688803448089735083930141838831481353466600790527218331277653546487001677752533998311779372825046617717399353483002487212636572903282925249109538183751041990725477206564195931954621717180710377992998794314682158768038448771936621418220130762539117899232749991576819389159262921097884670003066911648717604290080426076803708607224717506285269347576958262967936268496204979857245644716829158993769352369362281470850251619413854865818265704998967333813704738153097100513336306101502591382229945934578853706974783127356879597083865021779118288633865233496044390522060291256667544303498427404199976311740775898441002015741602899451589669339435051204789653723584717982582272909837735271719739177628637662617212759246463627276515567001689847558758222122908948354356270297159498973273596448194003033528291187193028113200934975143696229639958124837986676516035855368287497408740808474813927769738931765181518464411274164227178214866746463796287780491996784322230589058776189142859337962951938345009636181112801626686850513678113748677483081603359929942880376335271170827972818132817046047589830023629155947652011300908777212439367857632336938960806749813435756775395774843312234880529633619648372720321598735795633749172201979020683472202517181127794142307762266508178441232386581816524343884706524568505069050081843480068973745974048523342230459017491698318229861551090478399325437586183868430899145186279714887458149364816455349156023812618897653041419592074310247360130107457827103850790154578192845055573175052887147252675036391873538178554888373332081395556808223596166704933017494232961235982526925790892087758049707093725260043552435598474151303422825116614752876931762532286478448351892894703737615786426529994891604252673682401789768414827890743373357272554794977526240684037428331642542982428148528397531839418331353216302944336899735289186051962311664839660575113162006903036182516102345511951466168608034488321874590688967085542517647794188578843816340606412622274053779139247473194600938084428275844868738018798091493505956506481278979094225494013653876343282383589351597178810693100828632130778331201001256119230738051552172410893605011347235354247513375816571401181673361138556360152567689322754811647197379868913642050364677418150289821759532980096532015857532974880142580131859011130563033691973654637823300183392918351396029419552117514719664801276685536775642515699051421650445870925132874214884457367862490425789781328828121607711861425359916925858874536533841966081017563560263203471747293722302622851119005954550807787843144514730447660959821748952933548685219794588283556595149439771304594316283256963465113443412957018888741308792238961746674038177824844220694134567538659726157257442971840253940732924063056508346309611261578144650995037315057572928651633023080876605776239482095373339090290152486494953350798416749627245374971865555910680643182417243887669294679032321616947435122734585235418055908598946468633343357902142262354714196483881710720549111637897445376016336600899581542536814810875427058138713779945514477262918702194421782577101157889170190914872460573799144070461245872788513308462615400848803841352197863199683994357924533748533049835090845133586853879174494531255450617763337259945420160430985793194861035304472448314280802820770499286577046056504261802789366364746813261206551352081076233545291734092049810660050960153672105042485228455060950081325651427719900484876697550442212845978825532841038010370716234617523298718984894895551938941981753485112377744124413638869030407670027432471874722931755061587573015973830158100240847659635138635272814898869417675076589683941575169786816618376327071270420591928616573699759104162133988738485970869527042925243826863434396777985918519318398199009585138536334295055545045845438754754923263539438585662430462014213218320909680295795955727326546330636715804128870106937178312303143712267687122445445542203894822884613098596753914876846799387653850869628397682680591297331745072195379253966769351835064842868439790272569388528180243312929033618215913447393578032547879708197322941595428884865376439449870415207691185825022283307323231706988535203409764853645816234457897954101808895640260173593026119960033763833982773647460388002336168512552067695316386971486037107447810526036163293822097886797200829602909783869558090687572272589465292478374881910281126898236277197013489390648502793948031888703857579709057559602624996801973258628065134332704992559251507316907326885086708601570816924282837445303948751080874359990049866595742281668409663959163583165271970087815828811517589984004138694835184728310528368147198938865097043004939470194850154051088049521296016629512307192333791469109050131872048183658307449576928974144306619610941443310879634444101182171571472898732137542325105206475379785314137241712644774218024680097894448399823674627636191401152203477758752364579894119014582202003050158224076982579333818091654924538205573062523566977938364036772808565412635905355397399344190537233191518672453195550251334379491241158217278150212733674500878699675680179888592967066686609991925191262468180029869057975739665536618971420868797239338741590839932763191792714906281997758748613847668762966910814419936754721380496460458496856187244156918427405424100472263432186106481392255201965072402553692667034176007037047679699427753946266651431571888665497255335236937649091154688285105828903480001672593633998812692911489655568645477280980326269941964336512443477874446666734047054495454548899312450412684472343393592593181889295249205486166328536595030418472413811784265584056281744297195618663959719124309090097863981731788597681962679669063327781974362804297118533277882041145356522534524401273283789017206264633181493423472318972577977916922672635780692966767729345362147312367617843170722298336783440214612496288786102668461876373095979324894276792491292229077691045580084377320098121734318527172314991547479793006728317438243698383058908660173442719121327557842351131228927801336225792903969671755022747353572865787448738937120355125826362078700107036532254464915956575471250732697795377584776771382062121801357774959524843547013239352370056727555044062329001443005305428917631115955985058863372177407547477448451120059783106896532621034411099929636638943806742527093002554323884947144365223909279965392174600414951635165590311214547765200079232743776887506419048635384906393396764952345540502723596233397207100978505362510631736672592425412058259738505459320824809443266675809996872125270291424992323807821244493271001329234236448651789140421428270389412509369301630397539541262812742770405754769960736155236895412370134668471475833865410891565085977045177562696621939430148370903523939707170817399554290963730627134652656077313624833359836902181543435991213817159831737983932299284198359890179768833420622397414742187071579500829659754971042382339676268472803702157653994792141701687942709202907081329044264285568263994473140493647108180994740482516561349505929905322423291868138722792268205375305046227901778055339706495139506757401233797044093211688450818460284251311577089098980945691203752363169505767578483057958302392354044786657084515580081334261918786578437766259790002658610062581550269869325270623492139716249202003524100252091716450070252006674201775276334011651460425357247347702423074886218462476949980360753545568215193571799097316515210941642230460453614510016697129536165012909952564317595627902796164651599800844946166032288119911781036239079898848874464959709902796229767208943304227784925749123831972540567125005780746165256209363665287798570482523575429105746297801445653089871274173624420822993819775683311173295381305180291197481719975131078100394516431768214261580287415145487553858608344899608581563943523977342819401761606558710466774526369837578261234469124270318693119525210143979228095385466780697297611573825381253876376441366774769459270562870008290760929303546572104864161415306964046035928020473255035008561123728886972759671089438658154359579164402821260908867648281516706346548178582621047533590120311370439585656234972013113084383584176022833621735275478355300642160840108122169814479615409692235934099602691234901672269913786103589036693686600785812013425217198167934433915399546868471817683552031082107806232736988860700039330457782684271541439353326410171302470112376873054039247223383136195105987880074650235647138449933440818278919859223217879582036239185294012662147010421646873370634091640156573480431167660217864606903963243053440760666259340069654289544919689352889689665048472142281208506926942973341479869341354245461885668707219410936049632065711609743369315430888713474590788749332264314687723666554423027994899238549987774098815095577289162467231800823316465126793560380828474443221515029675497713989972677373038385340051114435785845072439710145259697029712786438313340003332712974211843015036609502508583587977721938381478640920751773914066824592743888611838355592065802913464629506663180768273864522791164973372850043924448518000340804331553233006029920366697697049760619174035036305702379048853367473266841466238652767928890124131846704026531537364061682443744243114347954178821380851368596445588631503013208569529717550365734205723653574854449902496712932424663187750104504408747484385076764166949183128195983284212178544123443293300557835399486376599277102208121245127349757392984517399867153911356712739204868003548088686486105495928971833164702890559848404680746498822064102526519642620104707655327510014699713873171275791016544201147079548124244137649157231710408487306949446614624512788720437392410919608199475219486236126945632540996067124284338734104452547785487545203131197125151010832302469225540182573695826466028192033150667657966225372275537360132426799827448138508383349689259188927236061168723943266919028053543611234826957657610964150819580734082396678561528894409693773824378193035529050613318207042518321143677597366648548608989162106107640699191690318844095258930751026735955837317307727384068186494353851637790236369228750808291269070919294871826405178345229295582117019654142307105569297851566133727916445185109917247145726356648217334138441781895070664081638959773689618804184461582848977757018043868492051213734537528848198927677862296924305088463635896150448647981075950870332347944198560809460556560838222111187558996737196650303382989279735089463556925349710257550243508589600136600410981114274517330217706302644446484002851426218651416191079595893667748561044825656489853282752883091922957540413232854727177246959293860414708222373327996451995184532337559149196634040210973623103613170836272081918034984751633823550669506737536991086597648735045113476243662046318287459189975279227793218800850630963341733620957534903371777013354071255790956719327223493790738514789707442171654265031593720020221478307210865274537192907872934307476776122923330260937121004541963589804376133249048389891621138713783568858504917541371123728416392521667132849188065709204249348709939708530947204816497229992290678500973650428861950315328640933304859824367853539675158067853782584906978071907634397584873052108236886595108658705879810921422146321834508890483823189807220528654412699518674930051542866698285028946319211758245869111407707438256862366049601329415251552202303065949354089909690631857745923696839999863314757556566426462465730578452319421765976021649126057406852061627692484186377203005321967596651644877317828534669030122109774769865635499515435333782880937288726873094861863005957409141602017285519019837427068346497801852736292707208476867408430241894315435959900284024754369498933251322451956116702101761832860810591694503515356587502557035373691808692074561424425370970977321906526038418929612408971310719745588437633587948240592674721525852679959394232063965140012445612086371394537034586131419988301368339820057721441893699240213527333350071494322185192475495533805985637809813669094692816915517705773844593833838590493847962849008594848747028557444526202329380245774553789781166484042165185959127847069364164050224885373943231154937974290869376038299998230763566574796087426018669204881429613914239606603588592693010632667714883857816916845041125715178317311422443585944622217982956440002122748795314697375870600305903312742805659003312644273790341830847442712339057160083467463097739544294524961834156818715586824601706157550780070070539008589285254634086115260349407529611011935344909299983360040107462228247133800594873134071401406169308564602170493951964938312945148251038703306332575842049664724317026286434127018317882974580474133437259645999297081425148875680793825957490340910576108484549071759153063317024767061843151497637492705463691786631483302884666510257669977155000117204135318212797153756145843825513737085311435727259232348784425026805744480160293197982864640810755732096391299376834742291153673937525015627755937854928345303687555832647740591108275348361692796607869040817050003579915974931858709867712442445893222386077697758981804276348202324163618074854683535676546930397974704831424282023719262596797620614701232139258654645831855545141819677619248344169701642693430199555213871504805642084278778282605039123248033268830215454084084079244787766863296554329873668631197604818970193554556890626406711543015838136998079460186848891576745866101318438522067078079670468005227100330995600531395334615907053648034254044415651887434188953575186049740457232484299282583118487918637771203663277853934042896605250309062572196302218914725344349764043476454670609385929851645752499037385086760420202307433111241693952985391697628910931803421479089813396834566369486941480561655488014185577535983582096052986596393222041497137233390208339221425512734679255385526434656679608275775683718943410010473091199666302685630955773013904608731903512074209918944682340262780472869952958800041644546794271169360305780866894837549878676360397300134501091046334758058222692339642384193141414526324932250208311346620702372974790059871658874718480039138549774396294864268330195214416309008403499927742212332538775690364865857955816900123567367364532727388273982829397753347842068172647939810721722356954974021577372118803826680097739469347507504037946420012163544047287132229096215872925014388285263651320549564673508491172733096764465249318379139166323629689807497358757807485362987617544079630996483162511826094815355504155972871224841228608422239086751419481327120505690845052348395019508552492770773350685999160618118493883413968641742074242332893028688888617764415533693606207384758774395755220557652492027515348324947025806064505998929500005017400431338677229592774140484146114479292697123411438599972053101500399253756634215880024533283710088461490456177264352922786888549080545092203084061508871417372572712593936412581136640903392990646156515731456864674396191783998433383799308076790312547055792446993693571236995628035311925275989025995532545314449298006419641977242173681343721902983041613274680469398659623470646344779899300916329500067996632558978548324974010568974100025760747879146610759291920667788604680072580300515294090974316843329498962358885936855097845910995736699621732885669235943947610052405164504231027118804892816398859847749014052822974324423723158745790993300245616494767907486693538988577454172077201827856243955648475764774139913289760897775756153976414179423582259126101764661030966125178865706175608396040378569827651479785858358592418573356690162588599551540986157027122910743315263983614628470351262841582708383033282566035127795015664834774825765504944194934722541131790982406050643004694713191081965647872365469948156399052084998110533937131130407579839431699952319529566868673167699257737681563985860465815430148413088219188700941395408229006605305671451843721235551180880605226407090727395596745765639233733553056072221804453940641576325098695639641871380577012802721710649763329613585554357258950998969637674203804184843070323053929701593835244663065209593692221374441488985628386155914245085943060577079072823783640302643570367874390122509059894889056379314880909382018086885928530759180157885504770243232813350836921194273558633962299597111449687779376620103859263089917935173801750930186601906502938187262027596142905936322351011804005186423598939025942373720387024050107307735576746603263267415645246177994261539359050805164773505340387608064244186617798272550058189527964228685730359224468607218170421136344816251798424882013974182081589464831338439681208236927820379564632437225054125392972622050820039565346145698678974548705851167569747181950636238261440998918785439618436249858531494814281059877570096449939395565228227110075800035960097443814669243886828001194647753210459835322268270748749792016418363030326162745112534028704170333999031492815182411691162325241221158885789534832204781860761059867298521049392100708274378823481517695340480339951004725599736115488734791506753026888854731228641591085675843120606669173854996481628448159230698636167907186366027938165832496610549383498180183426184250980780128905475609993301078258356413547325838863606013930093702249614734507208574577485021208547570504602635790532248598802631477540955160087607948176732034511411713560508433281030025412886282428811401217431060297936918071571175705241172725091774385413442063629603125971117731745059235811882409811213956572253692137667400339793844364706989872681863975413903820552518973112963657429551446404219615759151301180141302442173098189266479177367887962018350802754969444330425441332132106195773545702045937089488004476146534395472085134709328387071384075266850307367085258344804757363146419781228019609902112057971193364247609040963297200009569033253422606688432758368442297002191644786164107863539560330341128062531104131797489815867929669655137760677752291252847821175420212892775705357323673392830046046878046328735189103471847780151650116557081765588434516713337888710086460141347884269848537609756399616327717222124621256282942237568597168481047310319670345670836423087493383923084894053717967097736909530136616664110317992459301835387154700026916703666725214116406917381991961912988279157090728483428718037378083532916996215089328254397304821353599661935955523135146923144398054227505494842615031698542534295764606122187619776464236784809965832422672480585274243800619200250728731602243315918785145289465125942756169887229682817561156481292705002500976039020611924566873869123077597215571884865713249088110758821002871913056467103750677524487378940830647549245191277987710432041328122181266356050172713984395866668122235732829761397752857188526286599232689415369640270115556478226619485855167064150268164383275899029330070621832082058864272638129508586352775276231520178152379951147592743456211260203781075470402351481069528370906562826700345811450842241017533562405573500302317272695227818895144994087333645348894653642113826318409110979577839765219560576231700535988589537466223676781955923271820111383172334164114779835911899783829376384790064499814964671245686280356704630458442191942515787154199984977204069954267359028718503564457313978047163313528270518240372379901339731055748889712391780665609006514130792268563105918398427519366069509695093506730120675115203164154453368626521583374122959400886608474733503576644702200860880310493004767278388728671025480571325162271694460605228334122396585405728072127546707835511715391981608632692483243486064990226489848540815150888761264985243252479806211871907350118628211864604538602678092710362950165684640807909072002796811883513468985284084732946254919139664117509929870055994742364646171518596051904779707838598905216205517751908686114200844018751834817068512762548595535322142867339517425641200104128155450978752424034902083019510663057247109461209274339290237898657986288893966043699968886174504755651520581690363044190869336148358359775427933233267574027498700945159941096532199282918637620458512194507490341007637161785598632053893384480509202045643768135334911261310821891183178572217175360731340439899715364553564918327948107736514512037766630930903854053609106008753144301137774354337094953853016280520418770200790905684802458430800168268518122703912453538686864109132968310426904662286682019763920771987774750445655668974009966882697748943475302219391172547124312962656345260073135289409073474833362888860793585539737720447522326168704282994785343820832877495172631491048807428737078993086962916809045738992159743932794402753029262915940631376344554930720543035632376760991451388137572844499012165421365965064555637478598429396352942042836295844699246992328902876589393767238686340299913676176241911070006911935259716986570731405651918151943614240839209059017316831900935418162882124210188132556393084731924998393354907373466939252604724784822837521761835664425318254141117448065374848434608107367987007884714091039711525435769822395546749529221711387241526518726431816563195224853231570284549434244990031775990318080694703781661532479340874842262106036851976115879696164144057142353532643555526992316298703859495484851220644690383518194371374717022347389461374612789037767128152330840282436785027214188645250283431306332327470501717366329136302178536306972208019299277474149627268112817608683707310418013988610469501190856278220710952618360703916375309816631365961231686512574222571868885885319475295760586229838721820746310838748154955773633773383979962911532234535529941031342147401673523458746389411070139894352478556860234770869952699848308084281743771442038059400777888069843132861194801692667974558535620962558756933453032615414895270500929430047579762894419094140319454641266499231606959580791534727915108910489999291885971925417306599018916080303195092402678161600470341340490530658208181691561538924195503070280365170475873079285861606219744650007819278276829807334074323806657264381971592997508956624587552817138017758838760171047794680930996935258707408018250627832595612489852279942544150764181928663309018917326266832940042828125833895109273227088522570835921119204217937858659139840466950185765268760518569825546055131738757179545573702344551652481958594469536538077405621832415971152208035275646201842772909617922147237680674153726455169135919907179835320263294602116623127102646068770273979012873592141254065852542450637185908918997096545327858798248857322673195113900571170613246613935085491927251998535609889791596763238605734904174180615089413141289834070476840345723754009462343210282275737017316519549192049106331620095416505048475925773405532169990036817337661205290017707348061475932431762630787349206098536155761041538713824688830640867304039218368812152804699196363212813520141217631567793375475170509408998318845346617697287738088018106519085527308439678994901616755556989084148699713486400534586318273656393712642361040071812518747224962088076242265027327096729729538408280676793092532905136024439177570767801996691296727272258248138098678317933519109759024419079870914509521363943293308461081430729677671490766768734313223616547643323233298525498988116476639185214506608878713299154665905232352473304765728980088325917131545265950483674348572790356822557614557556293037239558689154731796436283211719268648473033503159159356878550306980129486142943163708549759942072447543108404011971738575590986758811355364579721209020639027138492387657587687053347098329539058904701807154375369332542667835701930717400423176506978717009294459441686260285133522035460259290574535418360754739105802368597986060861689860405929723794086979952388186435329157826311016247607704735167115519957493183382192452179011188419414064456376050335670889664518405059631315050253729930276992142249446389131193878891466210551260374580783418537681146624311060083165237361112347612768201633226906974749203544054266082523755794840870446237592399277436664146311023394748488677920653900799858262871580172863481048145916163786544963590382624648783639334911994513155003571248133954821826778045650251903862426167208313376467381450819748778540250915989933021476760855844834133404218483322650945327941398078035574150730283743572310141093731834380592032649176742465667536656509857153053304515786373317914539837814309937138964964970524431616518482358258621494223865563584076775476400301303296153671156790490385577197234751843885522979831142205334028586893038186322940280086558360363231284591647454786683439709219428435086610307037217888538061344196054005530850354481036168788632867826277189935436440403506448622596021775242986728072120286082719658810239870623607882915209909928237551146418773015907198018244983370156631391602728520080890239849902250009893773576590091703284984195999037297951983464659411579733251821938019748036713601478529141831986518464495111841148695746947928047217377045294044094241634065315689946086547483035944199378550931326918359188938560683345776859342242024068857740814837376894254797783353333159102444849803588217885249822592067314056649314986077587387866685025469043629484789399434193509501867804973887267876749759656852350239232341932881307511381707120009645029979660940068715197197258823582672488084925227519587091305826680659599580222097674372204987536282360048204466046556011467422714776609380242347785572536024413122177786048438415928726392708457578687193855463953743914603059560559517355147303364811144513988000512660297577931786698226064852450826142139899576726976939103856317989888015245344864515666269069511481292929218464963131243925056530749291048371206342072431106154060971540070034442494393366224155600931215537773801941146040227623030734334806810407863244793726562019566231092383341073382716862229562285337817971109539137746114385543343087992885881409489528321106855530374737469944111050858643550838792245926122637969826099033505367827229476233741404670667928277637746238326422477333059814910382369822546178199312523652193553127638508194595155273375831385047845642067371066048894057740000859848353729863781656739831602546929358024462408579761901612044226086344223933948161031968983444615253496016425159532834162094337199431854867226830948637297864746857045410679347797935629943216021592906031605605092029908785050826171537919003550894857439966873540916052463768921398794345799135750049280935552786755473090367139441574890207861003564305348870930325802057059889967966517688130705633096448977557487390463473612657858731256923195653891173530717491068318189398860358773797943934180345960169248530738411991073414617360446379530863836982156952008831109120640332070103749116664972474094284688186660452462040698512452761756889788481345296014984707511487254968655297978588502550400367734889423882082389902235362188396001544134270533472913577582566023201857703990142509193671450100329836927007675483090760607991315714693216248568947443802346060131960484416411553591898899503816696323895636234792601456813202038695991821737956593509263496777207401837800400695922648913934884176826403685454981892719849465778177323996492612878656099632913830826592986573562885399179404235408990173848438121030173513098062073531892119502154465942989385535353779481024257809598037726768338945756163688052208291639986438169869630572626876549302378971120344402331785535242213899084758520910626765464032599350736015949438022232314801553913413046786923668497083984584981492665524234888058094641208688744710472605140188966259208263539271215093637426336741818026631161631741611871216675111122177408296399413345836901373131063371726589390728857390659092425789117709800024110129639386083913962126962759700476287005785296244649611232681433228926924141299189845455231544022381022449588996391473167461521765882042531995948469405237725295951181061833626339949187250357926611330044978340872284096823238464477134576861721270932322562483144511740443646442088047383301904771018929103204857640326056888348839316248656934430005670805493542080057990156953837955684184303198517197405691086965114326012399213731366135162066203314987624340222450553431555568263551970347140221667239083673784201803736078154151610584453972318169687908034987354823602039278186776998775316563438740311906693644371797209598453444374011630707053641271356448055878101709351404413652958551514113884517195034059644521122823837314770473294126114694076237822808966302345401960835650985890737553836871447923862659493499253126265794394246296174564311774502291881282342838980994220409843964197205605723328934877938500473188410945073341485059607531356220471298650966345167024764385258193017187281376095028497076234250339628184216509692007474676238922823930747177550574494320099046427119730841036897996157224825600811536480694908997175155984060500798664285349288302948938076083946854384442451967811859139441672360778038569283394924462131484218218178420892969729344331663435303969228046947920073790649204100126446639053737470713811595903809364042563895121483462922503453410238588227180815013198792310787047109578928325409598780985518949849311335963992551439467942342894788225668056559982485583216855472097650809827384072100564496935457159918076555246837007105334873253826364892250594289122868736071724759074422255827444869533814456232110687849456796867921211810231947745700399228721051961077310001431644506826836953156993112909867771711325855414955761602394861834281593261079268080343130823839297312187352242890675000760284667551967222305312598048294359320589495746040583146511174041768852917918990723100827144740467081659102994228734640745654739204441305438356787209571187622893921398370083804649479920489441332880067851295487980042708973494210637874633416466660470106209222810175012230830503870551275087996162087208726941996908266196954849422573218742096663185670184632285065722195811434751021717910200473523267007676011013327537788446857833071880914456289906406202358085726362031680319813344368585681950160439860740298382774094439964226204395828345137998980274217446435015246723428809574253155326209020093799241355901878971855051815145749594521883549569946902685479258768356043654648870062864066429120962158616098045222303729568330958836741389525343869778871756352368859775390664115320934524399425828215831206764284341929446513771805205550387103650535757510137466507661058183026302186540215653529243736431723830754313471841670644152747689554265223878842350563839913059199839825557056941239610460956464965944466447763013268993357069024927782572746501645540009821930506669261259361499077359913160624432355744915963497424861656207127914212740815847148432218716019955738716514373652455700490852291792452637307763860678236920118999515313715028540630157246588409750990971647581044418202609117344533337343348245304651874931652439479645105752815476018481949365867809264306703099588617532134786963447804426080760232638342175483639926277684157078252775012809509302405875141447393410093583524726683493663007654339162831298195922745732571583183862832896508809182641727462329680934706394035978464651071449873876286818016007419920212820031955041450202285078703734031130858322839944386622437920819989118266475614017615071602175536339103987386581363437631782331902849835700014170274043499186956478381649631524361191273350423381041322066287932082831801622393676345776583779006211663124339906712896223915160665459285793620003505369806020594550282013288641719361279063263246018201783030743129811863838453356417380376767213801803598242818426914578833377507926428658572686708404036403090071284924229627695920566674903264753716856314604174750890338695348550437979645955408818310157282494020836401749203745781397828095010585289397650313418120104142578255004219321084836467644266821296386112935854756363378914674660598386808919392782024459018105494338395190689162286359809348137754563506495135787530861128312490812706822089080478426591148572834576890840984830927054731922428123311070047451596703194038981734195281924915561721110778969980108905446739463350182283232274202220995351615816888937500978545074778561261165841432051567384477137500385483544599260064294898877192662525965924768371967674227291952383007926127229220917308320461234723880070251390538116168012773087904860038006760792533420960842655441402824628531832772067759850520602667380309273975622877745884761781715390020479710549909764160982828359966241029964066640011261345451439820530483239739228374141994164540666223758608342703834778221974023623781180376409722332571869197838212831554296710094046814419424619706912196681167986877110740791326085561058750278574148564916841059401128910331815017231992823520060594552345206653594432822454606527949003322984353400572290435112181886771992620860510500456658336068754235895690603422975737919242470871702273982780268425785918146409218348714489191323548883417610893193458532073937174124641173372845291219143403437402054028618642480810657245092704111227814939976615310718204059873924171202177239528605464682354973090381222376988108800156937743314434468084900995282737654170934522435346013523281798596704035871124464759439047367690264235248598484394529681494402699797549236641208058129996217408503969473025903809534861165318810382584881547509710281578825839356945060674673996962172120288763207389494171979307368456743313426464960420739889927988320939190342181804247384573522636622314906196956037119698250847300128602844481022213474503241310640162990545506466002818769206156705196371843295256127453025260474966819355766729363790986334465114735401881644603616626227337893342906056364346483620812541170726484632416058451458112137049413690177229733088447256482563671029377155815290143866109279886690582198239578071018395974492943423378624774246365689570118912809620463884000549320145636183883991924604364820531467271296302166141240646897682001418325254194268328743142889795135819662290345932442924258062706710227178670996459624184702707293934285018238252173582598262016882148600243944098977700242397600248659963244791192879175140290362712900294518497055852433344767791925900457805322851547386695123982487603847997640777597572291557570126516326633315567055359155108769193285885013626020529741346018179373345653481945598244366946882705331660232208723742284950257774689237289529913873958821393240983111832772104677364682435445377104659848002876110463993429287126488589935813288201624893849958826241862898547427674990365710741574252095900873275218387925228525757952402814045716942512664708431581926729890682054926703677904755228788623504050927146650317850051634814488557371693428020745182741221489080730177325008778746614743857656324659625446865382733611246005946962718790866460347570467310770735068907115520022629159210343837222181232611614985333872733005783804594596574277407436500968330727067408337944055641842829668032003318842057670489905790380173028445362105319652130464597387953501298483471903546490871338247517441928123201165278735652661720779352518445664000603311988989753354787299421931505074154200815928000245336851541880617422667112868579541771558580274382620761902524881081249559438888063753644361735058498946685161448642305709253757058232133075762082052645671968299845689469051550146629586326959577171805251008467429026449048883416077049501452770964428406806753110432822929641519822582057151111553641950228430638964751256485467505184761245573013330136693460139313405315845282179388981990481048048322906273428726223516846163960280605662673293028147871779178730497462450309974791613722587189188330737935566964263563329057589833910553104149323271399922423985544937481161477765064900152864370526744779801700636300770539921008040396022610614189447296282217123813533851486924317314012489662623308218365848148953675582686458562049877792156683808524433211837338805027585695383657500157216936268290213872690722367631438150902158700764565476448804203852993174344562417636296727760953624993113964340435204855874733841246275565362393622550776032106441771758127216346189044280550536354246122474505188490071344798670827007895343102411225398283093730809022179660970022843307772425597531059647500332681269003108086238808496128748707521223823691240699938171055249589070975470866154413545692829228295515198340114690749760274947505050209524439006470090330743347592760137221500213535266391566274152571453738374996975270424080619559501669982008218858382348183080826233570127142853760025277862427478687889902174516432801462509304303069205094243678607215718483537909903189185242295299679171329828460804945124130065752049875054423560144295537912090281758401728501426597105323899587230636420241341164857830127052493174849142112440492535963199816848631197706958656929169765678464903455374691612116126521339231120722244646081279883551643139213373002832148974772511810645173647615908430008292020137031269751483064197610935698677845243611091662775508637267165967601377367437981948604101257960016390794074479410091347490834320650422535557343386718841192976232570195068440283934156316156443728574647159213802559091205851374582762454875133816898000539312527894886783464741542108799220993132143983089897137636587889131642146329346303255251860171502960397882517049798409162038677489616041812482774929032986152630988054214489185903562283587329368105481921739189699082145374470474083044148346121215696813781928182102847827754548989691399602991954572017843350299328337124420656913769106138164117165978537959252540517050845695726097629857836759518535606640037550598809854964286934460591675470664285435564552514506885798545244824415025016874918165133577129064186469036881041111854665516070243301635610790497444814195575862013949684823425748478716043110319432069308042752190796002609247144543553338620327149950139099265470293764576870716747006570183987655758884258158150835526256738412275539823905785124155404085895439026726355036296965554950402673556855262422952446978682307670766184104821873856522146890837644734010524133809415166747605005331367686973790384466982527613839113849132266501671389179056847442795824526927229830352856885428189442728933129378087176736961101733545335344380209309320468016044797714415311353455058196375827562104702119280485411104599453748496337253787863526579723666688622104995066096424547756736845158007766464309392441470913702983132948758803868895600114125897955524214679803514188898856529904094076134414518250852664050307748031510324396396226676252093674665741148613988984963829999456645957707657339275485433351391665446886155282067355057866174703377363084988031509888434964327210134304617480095011471433359858623629447697510291971946962935234382935801631023596326708967875300131773557961581713766752738956388938796843424573416548878892117278389680550832964900082106527251853433460589971055625599451805051221538944814427087707667282875185499503352227393438045866539891231078364481809447663755074771929169649381860527252441072018342698082212754308752390834459110612306447442182528411151836752923310011842654479880340027991508737533210849875410643883358699829693468146281105456571301582652054531657615600593610607543566686816941204135516629316654205154347087316773831561674038155838856391685258653452906271273299948561785034948377534537441613858265833411651741650642581942784842473728030084470948904049370994939251481547146712595820499206932075577462834058098031798318799299711323938266801036061352153992749233614812171256687157913751518617749323733014768247870869962073523097102597117138010060662549283792202388117117723881186727887165445008184158298194718001037919921093023550498728524880261434423934263405504490123570537655789346792825954637661580612775533103508287585972049117905257424559131806979522486874556240469532259824467480926100640915407797495859162737089153822080047111062518620815216157133899548609655433390118268003136074389063208560726858809603295397185004333481725225702407119551217157517241284304429283573996914719026419543135699960030420108331473370710228952287042041334769783148091273903541016330129015208931726595673802783833665937971933827651697749526108688344513522421499342517956327857369931620946962390854124986426397297590732773457381687582615928847040090705992857803967166233233518611501231140648569498372380004808040923671870627120244088069957709821272505717169326664819563075434176080475471887979398818042176419243857100655561430268337852154443598229779889369575231876965607690291092382786090264222978189510653533372155511133296171886953158422539225145756835886403563623226236114018102285995635589120883797287241365680550754850903532501430731457067599049282249107340152402227446220849637907633859973523084699816747005842232774845397878578873182925828554428972647834562674869743469953294270207367429798669338587994334668716828300190611324670143591127198217009372399226215300632067594977574713613333138603656344499729126491018526253102416032998198233424351272510642131498669208334518768992482341556962156021255409996292795108114627729830266542395505223869781243743103909281376632745228578054423809552373469134459262222577787968617493824085086193916024069831809102483629574659145214170613839575827463942866891751469158744133335079086777592841608740978795526759284971657336894427922265521612739203580802786423141574283292846801680989915765943253310267197058733944048735608445276141980098447365456542931249565159013074876154111368108961704632389250607073550056031683496524936672302434818088165118988771088744583885566648634444064645218549751416952905901674571881415404203229745593833116582372703237265125493118412243995485805235433682790936259576253129012271833962898604731912897113393539955676629813673295088525056878679644801823404827634164283192154765430923424287814063629917928625179552067517454470819502841075771396758147188519645854999936023402528592305811091111377964620226117622293972221600633549373627191569173441855948389145673793857162439575947427510882197034043644814408306756549067391602333414394610547094240175396951775012356937385034135746555961081278047274053794271898345304308862646255027603378454485270541675216595599356577586540507754019114456762778183047472195916179839681298904016384184396605883321222307381180486883022492077794631599096572616406068950346932412164999955137439612486578193133532087228090959484075486943664353275042414866640012295785929737248898356288840423191133409414353694034178661892219708148112861323087860048301483849519947025191724985119124098252751097929889913627647913523961433395277383607758056555108104633420697386148638249317961884360510707197294068611950457661473215829433803290029945704051197213163295159197613481101295143457022701176120745824973933897073839888572266660658325528830156390284133412787579455127595055398082961460665806918571281074100190826577226921152518852942281121670007098288595640608369388917689700274372937606368900958137200567674908830326273518583597608272280048020730459600751009419270240816055865736395404270383267116246319654320161554050361564331495813388446359016893560639249080031524638429202101372093100543867940143838499956174530747899301406146711906471435787252589681454279206705806724167068400573202421080862530925191554235337826106534820259955860637209349577794193374527418430999416614719329573467808646653568644173752658831451788805217308042303099971508600110354932672275614139017082750998869951701795573449595690304299115432745329632312057696542406900819329496674542330177316236029586495734857529391715749573195716672124895839932907669473576379478579366060093076203490337008695582268987519218065362478148918556608505497423233529938137692514612146042704523318451766449048942286234428034352551038169741826284574795708329103206084525950818309251987534035314535558028230963957177190645277962034760100506438336393756279620923670953837839138255491275292119398272028643738856551945096782376770085953919874578040127251131784114988272040588318026461857424883131782440147569278026006059434291858384094845770809030279359764036130676491296505225584353917067599272062641503022868123996227320295326109854860500357917588010367676214021896693852993457840608996984004282558111453095444433648754161141994919437382591102323928536934430373891188585154386995623758771585920979266358186795574576714402257666220452687310132466845908424644483948748830644000681149092694445202572295500568869630859367810648720357312749707066068481490017030694220295363234574015491978806690937053425131611707833118210778263437073067615414690445306279628577819553133571983383762909958016862165241269307684460010974746959528629248707780674118005582778719809221493607199330918058749333933631962729569373735901826787800503904721161207184366990931475629934642678150057329949456920727318031476038526102584242430533677743056602486710505622082095913260260133894486512001923578069941019299645539878985444866500844486167876371712884855172237897643693877765420763662771126295950413324494654650064425992755385270875869922775644667397231474354417031828255703778615957511240228167811493300292539072181830169853266069176509243415990460650131260937633504107054368702353636942599047769080053493065362411561701415470076311635947576908485388184700951518734379352581742713829401970119514177658299108506879471398389628244144398096860910510460652427721626024268110363853068104877826927501497417813915655656407408108577180595084675053924290831963182866437550810553186974347812759653748331229537990315494866974529360609540860184384383133843433021356670365752480729512152587070705598781383405545574672599996799255911568073770948709577478870718577094175442864620502865049996756641661676884048199971632167917087683727563299094698926819088399025787424538562252155472695325624937100375588145201443017808072330997458337800241428069890112619437002020906578194226049571666417195957444606500925812062669261711890835640321542486086676272383343908307783809221706790221529693077944075574159647914986443819541536916976324292726953607112507133684959059179467410882823423855861360194514465754739531759591110372452891885007051125031396457096039714688131121179281197909352999960556933054553919439443377071344096221490413476929300812970910284568581042544577121160233946216447683674005235036105917564850340216540245947368729412203689847215367607942530152569085002885350153523340848345071197686396708573809565760566721597371721090939173785525458072983835409859646255095716526939817229570895385718554599207733675313504235910935162139806915089155527794170627508106156894431668982563012666758187174909318888979820578322056468321934756903119071172147650154063263121401810855598401286746462550993536082176910228715858145698536946792602988325462069946925471824795724898614161459651923202461428151691778321487545877155833717552437633087880964299295202867549987686798454640116470403110378679532864776575724679802889676382257978858995236069606483158811870650794118965047391517273352638147491431065742632791493026629044309991042362829072348799426415642856295349851672682304429612777013667040751702632653162478415484805739288284085781323856900437584522300104044584973716886655405074774468760843043331574381379072980489394719783164158270545360503695166237590044965506985514601827081178906501687986302793892501078442201591417374979851279889065607717741108461065918722560212552585523797753443852027412715943553235111572708592604533711344807652672683979878472870092515913713866714934058842960161684116488338196859130650081603980625023454851988831870809034972207072302261933796224919497561483703731940623836026724090795768196937536603922086164574811388023467877592523847916728247729880837414677571650201219376114286904564543299434029148624389217816655565132044184801416804834367341686722489681526409305414495866156057810702286442113181904892272448283725154881348918778004807313548744604419908748830355644478582386441987691209801277666033953476286604031729205827436250911021837361789048096683387252517341304966634118641123231526262163033316068980572831707581376044384330442783927601898418652982947951695065112359078578516916060291282201351144762207654145459694696069443281934456064450266330244102845768590523897324577225972796212901863022885264563069306942289753389223573120430511106502537493856205861752911408020082449672832363325561377371771331314505324858944977901591347294076717856540413689938996620811272180493901124682863194231022755139354311203888035831576367133176251987688692845876832389876892754775859667094930416601236910403928409218641804568581879742468782856053670544873064578007489183520654197154614345944773145038880699851544904077388007543539236155116708051937315838239800510363104369737880475988508978165823825534291275866308742283146004547214125855874330717813656375550003413111269569346766203172319554848364388169102825394355506487634465097990782164469309782957185767127355331453879523583219032647150092069852562617791550574023683666383840906422943722190523100330506941638850287284711128072591441767455329981908101538190045273432431194956999691241118411788662918968851775062397326161881829488971570222639724195526990226122477517820130526549445629417417269696885791748965124243408927432496047456974842103292536198771365644113094387104270598436931193911425896787425485490399221889099704345873472277876453343654497576075300612892122137804938257881484294549453792064072899590703445266748708422234012588518928633408752706830999769636265650640551688736501795893855187051897517770422329905825382898002565047745201829582218823568640589041780390945183214688874969845325060434951531083201861947332844146636366874475001362607704182901296359957149512773958407561831047690126335855767581803603782725796429777981803695290167009826506971975963362655168639187751362030144461920205060921826575160892061516461509348183014486164872437161592005139716737589901465934218482301044209734723221996144390719838837233390916003159808512314702729280836168679550525119811442820884161168988402449793367314528799423792765703726486415983272338562678399842390759070711544153553165926836014494005533289589506544719045449453280457498862108583322273945072525513455918039595520716267521552523139308263724850973319840086292974623032486971151429356267401291627878994761133159328812442752118951809411694939212221934759512744920920429934350217846736215345682265298468691253271426549414430960820764788015089051230871590385769142517386241516685292292903174263613798708485249419109160599706287516170249822384361820191516082359433341110951679763788896043266840783997489350329042074462675131838075696650548756619979149823339495219674198154174219095066559215559174400113025682209504742894302974819982660448229388557546997455535048575040892897514755361616878627520204665038201739940156809976032703673462219973738118667352198823582841993155285389693844760227506373234912487546464351817213552358761196828450355124004650198209649838201472155324354934753290571323187953008191146477892325853340669458631112755057146329203860000867618600728924686618692864750210223011903961277279974819796086790048335753282743168025341072086766051851063754473600038201978267375029813286995721766869253914031223821857754003773360390327539509468560173851852846643777822606361985890826175338748981615103822770042524218105202825030910846593222437736303152305056878101631627935399282175993614131915821119649140641969374240807454426326212600181779633731784745039970899206343976258715082623515122547420189243666621070112191093890194909825540171606866596937706980411209347748192709030310505291419213970540834588164589725629102645199480973492920472760317351163336434205211924944223886394284594863754174707395627643766576420201964120488131724565003137990506954402976016720605246303799678740260184783624560737138866724728476211469083233238737524751738451137748747666523128704734974215179390528432379886861882391673894241990904748438248107076019519634134989369646364906388425311304826470586316051735814094735084915108947814489895622449445262179701824869090004298106818794239640367019261383850387664878632958520295041626306555877027951662837164534426234382749560744469411400823816208517759097339669505941108413543652638444117346655596684863422068708952623184144940546480712513568679422069468485353700189865804988935171963207191760190124103780440250204749683331297855925863857310250802574963944781441583672659821845175736686250625900418331105771820034304801745213774992221498417884662914518183010135385994080880170922488006208124616968153570278506280360803019555410830252387911640435698967538769152168059765514401457120060603120968336442711618927750311864554393706542312999522216085304993345918847132050754685852907897077026853963609764159731579459860676597574750458144303808224296322258632593676794148272496603715974983393438525730887187203848620311351386424229672185106131013588299234689547168358732273751354237999774721564422591801061880446096123532607423305545853721212066407591033843047873284666276281730869866809980183469362706098396294578431353134166728655018604939151014660800830108502848863914809632508729375131865105330748095657179913579819052738039881228802471291358350670652946941985838324018701797555396780284616136594712280514951202900876661640233199409542527648658470027576658014069007229769764163735379377683656229256571967150705804902907772368188363939527044636412135009988300341795451928801126592760486110418078139511889037074830840806408836208938023583591528579588159841583981577778591226229368464788776272151321759012926433112903767763047038384000859219635599559041011656729174115499275193775869045592202244717415194836906822078938634752491180029660028046964995042727571701415072986511504380269975585121875453038162885959007641095991061884571596583116589378993796091129883140106352512553721509473317840658970740187408837113286024685999369226225691554726506432435858303016098211776305489646452911552595713627788464538658437525609610775905272638220628653355832721969155158440895482910339088024496145327975096861447471204072975454150717510042482764981301920771450077405573220420686552441964560800258274881606057420869232125646869463914298769706815993011185506334278900737275010275736652016098920521730790794146970204604228047865327488922371819499107287766246905370845933838900173360711456475950464208208441932957451682431262605421763739837380193498700539559159340294881689874830808845609917267228265914633777882808480268461250081647710238919912300235434251858988902884172778687276412102701386810013050024343475195610852051793021746300841995375234204014037199857604323485891850404595529840137822795946653310234543911111407376984809109180999968701006514621943291290068768370262382863144798568193263508558089821884772882912138061240716402461259938702925322045790891719345476785934771932927587085588088645727177828669731092171235389218714849313764644319375848941803214421257238661118467948532154938246984122034898129341728628981748467411536741944550281675145930466630376498388801662029994053057374693115970810064228780720766219234805189217605708167934058493238734982062110857800647454510690059452317575346940923373184542281647455822069661887739776988366107945867576326600118774036132168204757605501662710640724405535437885247706475618433235693279778002260724375863445424637944268326719394736201232078073257505882642726933707811466847624693256156698324427299492044173453447883147155541060387555316179394492884643093756640202462885242176079750381434156664583628687477775138803264028323249455985688459778284574653573442758180728400285821553002582160112472166110997644794084958268405995825774166470190470784422549542003981014793106446999289605051334966273197081641267806122364540083783771174146220247935394499202252545487635066274100283223147076498428247434615255681231162244563075407267435155814167710656453374584916014209695384709899146906184168196886674259445911319559281957282122995148617200903438979721749295311863122480806220283232724932112445047310089736085538293411914067855046309240386115264498614542911422676258135271595267513254602251714539853759845938720912169846230234954513999636688451200337184194205730489676574983205702093575466097550466943395324322244533860733889563066552538416045564684720920394758106021116576619300166291022398721186621205285055392454968427039193340179914095580249139607408523838748895771237282075117547416766645569836533169487731968677981846528418401177790410076531702318101301541822579886334770839020821414033641046203817918822464154318591419582175185418001391110374535539167152037279572554061561640526034752584053409290076711803903453676963898385608223383290842107743534240590056616160859118517263239967027808844993505403667713454944224497247051265461347008047252955529425226239159642808857128034879243931970390500305345463419027241762133940671168011346439233764014670211969440154209607970972557030537440292545179935386497116738887174343668589942405277928795288235574314454433880932723688503847590478069871465425145274318046974973349917558481566830873918646225464131492222037572028604749106426647746951327118921584452431650586016256019726204868509282662145273913350076156148450682898142219176193877168698670256474615650510384296484234063200487118050557331168332101776055169061249729703664829400296922235924587073991489970836321236023150500696766619895729730122884827940190083469706768284466014352286078616235326471211891080695852359368303037440470583623637288934307538041783292612051080336052052392229349051570066744161437160572483238740848482415082927225780701659084085004629635414029462638959131458048983283577057361721504015494068015769511121540342922334544878311121819894212980581454086021106466223550994054023740248912865204474964463494601135342260805834196908385528334382334761113671824197057996325030568487797585533092516894246300252544607130238841467705835706007903448712629540258013622632060321980198732637078588845308345579330610108153643644045421325784235029826931919651460953490660942157972313059958886213742495330747420622533557207289857495084618667221650831975237118220664419954858233901803317523683559386669714526381365343071594566835724952459722033897097460459551993917693638126909793655358896074026573376439483819828071363519238815149671507307942424627724019489490347581617870176789141224048251695836960069013858834511861785256626047579842902339137538961904850057028050080693900791427082851709341750916392329318073210222522749768115788095130963916844149926602026898088317973144591758335058366816921584270628896832933252046455877246052590237555180076085811431415822093558469443973984340915425184789253911717227664943116017308623916787202049362344214455048180233244221406555825686672420600880115641263065509053437838273339070571826357922780661978736404865858108607913802271988929677487493303925486275306773019303473442910332807813745474783586654314516676177051875219187150794176171610367104717547196928219192163015202477228412130243330723568382811092951275979172900552142403645243291539203900149413110278474010448303211911619503006521089589080288387271890895593185763651153545223363956624384470735219171927148868812197529124392191365388524991957365566351209098664221901347425251969630464809677853175567270542149044270244820870386995210746970718917465901948628541761157107990296476191643914415213285914198470254410237635607082989704435552767728116242477573639686216196489098048824308563161472952265930001329098205087655927657581856542979540438795824346334512609767048638729643459493150948193134344900572520831359798560611416541535603806130362704287465558068601160779383761969797318312668398939512720903878720594293376284575614435062325223921803691014213065129374083950310457691364286006546996066709250190341262012273166194714929565358556945741585885943315516473713038346605083013839740461615444104741705959828224654866532957514646464320121995413095285774527896581427587369735062711753145558757770927250653415868570423858019212443244255342456127020312497856486647865553496871248125299876356501215624736953089516761086359070138075817827223361304615191850478245559731435550768658058749600925711991029108663629795062436213311536908584936869577920930531426583536584679126026971820457223372994465985139259725431336950662420585236224878919837541562435661110898762181559986249639447251401431374838749389806600813380296051856181653426632488148602462965412905129948513158742431175475523995366005668663704560705283354383005783513530641911244368516583648189161982476988682534727529722672749761621636412551270568507607505484204192312197133344949798933426138504921522938773630224896526974657127305216569440229430994328754787938220179646698947631357613162744725544207590986268451841136234837999363940124900002089661953396364383610526690709958012246638996629294876341547512636097792549037513133155171298153216519031892216509484179052468472952880081097825135831008950706223419136088247665688667084419259564109834088386379368163340417021476875218637049327519050755794926755610814631208707597656919098060468870061174750171613141139144552183265573146353951070605123601000503002120535428729796117236345742820727502602063676373887586370847042663062164916898355687334282559035627941603213887306220756343590816850300352917971988570006820630719196323338053973728697322639600483331903948142585673750937038180258679389337303920632989045310532756150572422258340390649345919489377065047669362959816987464993686104878048869855137678765323806375110786672457607104645586275085997155212514747987806929695933650904662802100826199698545912994487564798322432626233697844359966539266149003145955541900246224238305470484101746547365849055930504382025617534989359591530049643390772046457685145793984273851085374434384310341599491607481943319319421297500561943329615891976639086109280251771722625495738487103412439308788201768281187185243666269085614377951054644579566372750698322502565404461936073708359238727895912703126551142327400118228869757713391089357474425560197979159528453808148280936541456795449778405020783818637640523469933900911062061168251587210578830327545356623208983324860679883269335379865875484913697738297987520107484403158468241583067318587149981559428646710458812072569020373742734776109088023341408479774465087576647502442986502326468983987653559743708988463173020559615426700850425164266536832535995864400430856945680377512683438546778739482740164255403737154914312970192127088841015170972608463230670692278481146322659029819006977427544617552480062067014076312653152230572446044983546757925321810379251373738410851801766220095086925632524587741232189196707264784614076485265232064148250759883551067586679985459973406491274359738744030468459716274907341709556398695260063871620797334673013796940653937279142826819529663951110732870977129931061032808676714775447805703082476681474359700079217710978188237818615547791979383128764504152963032094470783387850060609442654069342384127843994610405648767836757608753429271817130127052632495049070406280791486446393682283189150556504213059307700394131069654181709953043534588907705989883774085552491722056423443655523166653160041643413386761274692045394840193812715781162287415404749728519665269950612217226732816108954720767054152989668435346573921909649118387147973538480214967989763874490111863844142290810783722149484776948829091614648142323641976569319994630208083433371354274318226246855185984264891078669395905565361872543283420224668584927244857838592397574329912859588818197635558669201962666732625791025659942737020266214552677450622188860498525756148893443335440871280017474149365637758980933359972795420388326813424698124018793456645679579570427708361507852205685760296146406735386502666863982739542060059138483388095349143545278809043117712635362303767577847193888683675919965239780720731490331864221707389069910226944270391526972831035892240136709696082381789900912885823389223985419878605317097864284317942432912099493816051759629060388874161631004169809197767594626880862124973538329015096014026905639947646723614924311342170982784444210403527999269291975184905606270292362872476765980469625861792814721312866486041393530177228919447052704990845418673024738197010150332316605431562508431259529512071146546255310463626994761399394335545750958372611915086309302154534906088117206538084072397007976827875813537495830393151228626869831165714929568035097128803434685097776797592131582074877257766383891464218086548449592822392891655372597658895043687751820423539276912741537675073115832687959932659789385149696694953804383171001992302136677283247208590911492453377723147730281468007316477869395828855343644956881243482727573507365378916568041931545804579079163614365948440740613442817199429558525340624152686274804000640284189721463580919860780190253554247433473344888416310219918160868168742683719025947817685584684711695172932492577968211072032064951806747263248804122199449994022909977426286713945717560359757134916390332418909779345811845188270850445996245738547291671580450696618508426472248764670985498419057485924083930751078196190742316926934655070530639070105767478070973949090488471176394910676162769595647604112506604838769270971438636530069784056650313018583474729115551927362868978502743104060416874456692004149483322937010005204783584582489995470579336692156564949614314037907192696004712749367718725041511248197680903976102363977837054501580741086181832771174127973313056453554539597244242819917819772895904150086754032806365572259764766946364103193837097921011574974326097651436786825572975363647964188728407192926986605896465382984152881527109930461477144567139917440891180025239342133964821821732583908918439189066239900590189122581148622891014450354437523932536884212419804663759729233192362807620700307848307511130140433744308728259995894003817751058267841662113517550397870139641933200996640682290466408976775533069117864786493518647952561582493907902785767288348014696500561816567432469350837935821402518348234150942061805162531120715675695866504419556414339163311355326579932670759874571409358680408353934558701624566965446321595405072496075515829839775945746600694350096113787420329627636810643258397583025314351317062066784555873353203046544212521783516448577340499890688355550563240626999872223034111087353657636863093723222680029257601939735769830142514294279969392568363933664839326694503099516747724399511129211708469136540584815696213880232486160467725809154142872022768907910776171296235468213930198380397033919746935697281687347916208460742576875476380694300360021580561853749037038063996135208842443500138355251165329477503455199002857002964014496835994868940301843805063735427391046131799977417521924788981850003581023509377654403346342116542555665496462553815184341159292700765242245663354036193991241102051908230527384711984505439714699551305869257067779972170469862228903956313318006064354770438197824962366191984809861179987104630213178860355332661237516331833797847255783125800731173923404183509093681508729145753938822596558760048934140809422357536664252978121746972893702102689283879465759597522738615537428141181310211654467494874197024884556587816293783396448692145218541947529900345645440350981670789442796165242738189779688608371092638614609196439652302690268182656395408873710596868036094569643277749648132554993119240708897657637079964280617354076098802617352966926946005767476042602921188851042506419370675815048821532179991908127919877675564577557913092457337883163779530407839884605292096565134961168370979032983411338710234226326736871364682552204659007687579398013289625990324220095359829884075601456105778242140649679894836366130208558989292278638140600778716229559177872592563074546282772687998726925368970729943273282671964067462605048160449021313002984600063917793540938869456734744235296839811885067328893506085008907748290941456911718766105777705377361519811896871943466812548211141784902980267393926885644697348610927578046931522723724477817271089102849018635467757316228099238758180904960071166311970647397140616650996481845782373411763377039887064928531615724482163756634811469148593622443345074770056172402947112460394387815823482047583206954606119748957629393580662462005051061557565918050069242485452874877532740065234463582686449213746646407642384307603979104089470415591075751322196017823884644882334566235546597439928956810501849024965940694939762110621435576123155111793150831683689564074674744747452867229548047473813268082976233323999520487754338919531112495594811099318119107959500246293352509918243459369846320276003658755916474446532477219590336174564679194127486161540619755402741958639351322218503195080909468377110498306012219803263734915374199390575545735713650742609125044146260775300587927628450147838912592948071430307956200819834519213442934715870692472342662564275361871836576386666939219682977509973153841766283283475648662279296791252085919590052289535553688686247013810017721174853380449434625957932695336422166606771869113856812031334847993028993313852325962081713524938785307192410635767492145371764503291317590022163736239336101092610684238295805462360631800759006959282116455481401470056528199034873973807083860660313234434505382272262655259623331308017613700406344429997567043160387287378503251928510864462080014891319652181713759003864811138791565660707752880927520219526321078157171190502152702761502243361292071131308924462982002714278258710876013400156326141297357373195476372611024761238105343173880583184085095756751543683460780207748743252303518749236242861342045684186929169095264382558366501977212394690994656925827636600412414033222364161703103585393160930225368508829863021254521893695752162355629478383851913737605201221820290426116418128385525252634113455632981184247528431145371380065444412339160998985977904489883632150725354724984895919637109286212559162904861774502421016560296109102937823699059411819678540534395881788545686794074266125391158542027401420220331431448565668208678731433449036215075673876349951327977684707600743989157742348069339371692892472447046049575358754743241005145300884478067947459934704367421649430714103929722956755076177057494421260540081102212781061603042253823175018420487612387654695641922291484907213872572803706415684376125894852968402840545336137351866782161746338429632704431643238831731694753051687551771344872965818472603235365069934123312798233458156552631277030239251555044692566798119968503931631113266465506810550728330175905635309611170275612585211569227221735960343772833428078490454302533362261383513646488456684878268853800476526138723451160563619262529104502096328755117405483308821216284094415329187975979061359938568575014087459199438978832476502190206480575766265337069765811624216678117587617395300787292020494672348523912058694084213216508478562796508611231063639677455510498623217383221821894362954464283984375175017763682061035453865389111134729891452633555045740951794457160269490768478351287545706742403866710217487484311303688400286071301025574277619106218573605004800690075801706415378245111383381585179276477949180835856095802398052033626011218695459469338478579063087630158461287566844278198404047429548276986125755759226479365057107780084693272391579893663776372945609147755773818449807581061989496320395721210913080140629470950541157626961425143326098039414023429889452532662751813907290982371541791084258110797262162715483313954306796039800592431311437356912475565366686242844795541156856414787155679560136327805772286096092571324390936888839021074684301547699152606758314809944271446740241211933010899923880770193700709936151975536156251121828783100300608557609881392215534142927211871933329001207999823217498009312272543972957340005399750902597771174647904024761625944486696009788854159764286522712662865751120448341667966400983075516977712167980743496052015209295479797804336643923553168564544078873480197587535060102251782043217150509266184154687083227815101562098722754369218878380003147072777031729815811664336534482756931162033210171475682123091077829235671252865171643926964885746909706863583621203348967902747848756066000352429144029717631073572003461308309342335544737259049451631726725475997322828389784890005618790050806051604471297907039216394243715467440460551996099454307922339739734216158747284213315322526819016846421718831501373288829016802415340576586747510906392877441100024940183631288086588624837005210242295732589200805404614457580917403090933303669695376067358492650729611511052064115188292002537138032265155765049173722544544723188583888021258263419178720885726017195922672372390905924269983619582761884406306345493161552312630408537829097291229148272578219522307538724592740627319041773321973988704308762978963165014997652385859319854905217029926198770477253232816582070105572394245701747697922663189253671840367548032256484232268605212034175213710219323794170071779705928601832889650660806881585636680652227758689902511578229119317563837939416391900628887987207373487205041444433525828174901348480399948123940578599422374186334993154549731477126789259304294591591274759492961298471852174529899320041526890109921026484801452644180803816959132724509707931826603007494881392544180925555385177965968997914223075406186753282754534030645608858138217768072383332602764748933676238266803291134607633238143852082128158080642836850278047648848075567286656753376888672980859313058845645290948379925700630227950106632331633996566845073903452517112148051054266653421551259225256979173555027498717095272629927877645459032018988853783245321460576912642163602479447170848645224177226367725922710168939556324096310559341740032392224151205863367037900044369070554258897289459029543923872174183850814659128520076109839844981237295187685960990603320644741308219071433839140944878458992667044510673664967439456293221331966377059018327309905792239709816835128148466424541799456991947223920114677233919977800204896755196457723538412495614453765707479928865338471723737282054637466278101608108334388297973242139644749738691636843639878241361142632222770825136413662850098890922152271318597997300647198593271722030876547552786102773647067580882274384440016795343335171801161585481298537500858187194805446802777854242552494812885861121008302085701693792337090935221909962255014582034900085016246099874258548129419128546082537991144636303413181966023536202675945116947736637779060852804888984037721447901295903410810528200889828479752584327092804708088853462295936251966756050709918692908296781635400774607764666982153412253276419833757842596718361305557513702826792218293331993851977630390628350236784337283601380804181099108800841017746831749160866979579957774281374896732827720925327866988485043682570739123138200089855203525191548283804925530934650165229096016246845614044750066033456410549371800615396744404812731945868715345713907267442062624333602059029707379531289243666323012812097764042587793467804519500677318390836324302499660179018894508140532921038381634345786999972376856846027227449126490282711940558838799987236583476640658231322837773298665575111009657051980606430951918875164476658703229714145451869615251948059208644954289329233034826105033596326861205362530748662336937423686533510169848772992583644447357995314791801613789658928979488304874558882023359246077986990220256888483069983064416452355167053852578103820387613212312115004461212286086185815809513853734538327409901641542855226872353097341670630046898109567628610439916076508703097539996673354999875129414118914852958122807022937040368600458737923547319743750956748065253594793205908148193456010002280584968297053482003870748230640266509612662754216037807479233096727251912127963993136666810273185711767077157562832355163039740145503476285050543910007125945690767891153035235526527842086749336378087391646891683052453177381001564385438483946105745835276733865641208954876302376760524065224489399894936070752250629884687544020995064383721375918850537738524489234324697660124817538483636329305470102915040238302130703427207957199078639213459855701495544814182035522400538541476231815978273088654383097858751477323787682606774875544109290883148265961584666939234639830413723715468765249805323880740980503458206374405578609453768403660065312181771191590407454162586028057795980134288050670869944016991989219438635112947622142048791442312004589608962597067011440596373848439669587889230884174038223874900215509186354529509004046830593898661373413212848748108998254115459598898342440268471689163824123342471041307464965561531089994583055144727625691015907342114210180347326949172295562302541192449111223914735215064580041130209553491608413447623105417261609553828392972210632041665194488112056069763938513980553586202346142991545075510497367165968771706820242655858848269765032831683579881078679547106267657405590418660127382929556194913360092697132089795419988850479993905127511935382319189622463918248516198179276595366089594220802353309323066205283633906266762037492269382204214055763387082503756878905247213660782214360953865783991832658604281085468223395992933090100121799014614973075516850773486010371969139368940921457029551831559507042442551674213716998151910349863558243355093513510730890789042036653013073082798612185879580198593580693739716038306908571603543601229264864379409511115270866039956733885909585285333514551218842476336797252538100727329359894023997138766502182278382311133968514544599074572899684160036620847210666701321792795091206707647731099969444674111635426672980800107460141453971614596615914199837443169035787852815718267435488220425130077949762047894635851479031018108450662393534478255230895683778977506667411354446337482297312549027288313755644115664959468632344635768354350554084093970783053443329291570282359683678761364750787649386725281585754777229743730593342480643294612227773782306993119471343628985211272490833805220102030397010529430700451766878217595387089524567547942730400149849132385005693139118869953355037359545237533090881469010316685815420401692914269115493175075227128492759148542839902487678732635309604650883838994040697742552461811685992814464432001922672402087544074023365513606198518145827648912637973566229621661573561308072879928573753445049690668177066205575415167669099202817599891644609471251509032956668809417903147412284441709889147924115917879480699751117029955505482302515504606220820798896248928312352530674943820570970554535241095126121984481727543129461966342277575402824971097463028955808303513523242384683760058568174962692683406658710726537622617362740011780089201502927026869977359725556708097450943331355565965417405646057135143475594988749403896683011311388811566053648745239342928159956739946986410641219873623963172431240078873041860198242576822992132946343163933377804023518843190388231908768832017523580728073613021652806385281754045042341731886579743873268761235259403001784713579569007743424768428283850886921412128627747084368522532993740817744238901222793817711659288924477455571789049621289503723297349056740965483463599705062678724263656698428809898034223547163523764185066518532523026457449786043146333927348858528847071975512292279154714759330484103172569340130166205530444823650777706029848442686938078142855196529946540700618352718975588440489550088702134762229477452457981363633894560445212752759718641718624880225681279429772758605230062210521704570354762873921466138147973882273584917331984982995800839329255935850156423215571475919684307708694997517444894359018530270615429797031160712009612736032700061831133476819961685528524071324630529942988402237359257257165228898643721654907904623286965499637726861107266411430416031453034142147472864621249853165155150552916193758049651414605746795666889819035777212747301660094143953275778318336096249994462120562958884201232135544807564454895272203232865346071133391561953305240574813502861423751105218552370884926154358809561995991812956750336863289335778818994455462636794096601435661671029088831844727501140009949662353130565343533115195669429291360957152357962439130424664903799173953003880262317280747947444573881604470828193168586957283166720171178959481902012228753704044517591649391701086465726442049703658042210989007364396208871017926938699980062051982124103917786067196604295247009476951086766339374646697181944487130294412887192202853052617829035367146396853216957352670410126309622981602434773015853039391411302416332028918216129211924230874421931053525767446706432063031698481933560141882841624400686341913901507661923695100609772182380765647261847152443189892529612505375129651677501731608784696056452730025177250358880296822670317189745439444394926416966351216739347862531620789568260170056353657917501012390118792417000252759153164478361192585078581200275340282105736930495868912603014152483956933119098337980100768880322803716891027947818487838505848015575604116410044643806249497279938476343622760153244327551623080400732294490943429694363605665041512211149830948901567721557601315425317668261572910432978808446430175585288938472288508927652453275542221595892688967480483104918718326506681245505224255603196483317184891042986058021317758726162411228003257089405897513442068730505327592687131992562474390282819876186841611734214954510695337547020355507017431133662957528540214171176261731062847471194815912256783203011057615754595905756795593994574814918912440855958326623480239913960269946828259443280213698107655488072257468784235085894527370688904349039542344309103692963097801211209174641248410675773650556379519397566758084189802990420209128899052153773416392935445484980941627680333982453271699634898299405547039654151410105163821129479912903286553546126220090254930556067538278468651916389943626587054551991924057589136323539114667700966177822412375591375182630135329096156073765783490090212524566554465033736023044680484257592228885363034783858325138887193496372987079202232818050362230632857662051906256555987259717149044339023262316477793247901077983013904726143124268796869668277020008788712991054399701345885833231002927544842020166691752626071461109160498929245138191162365157869574259766435198882818021941556551824775699115288541550100544025777833529623016102228732321680664542115737245387864634211202500297931662129692404326353126113432968926771378135469307365739477020522727089276354780338638741704824048695943404962289711132175437497110495906169193078806046522483816334916835374766167238644016964671428358354598024044921827389405637515969587918642010078585327686285416035783982650732228038121444482130997508481900657972474481813566658528805782517922902188265773230838842366576374594082950994044670125422790993792505802405295046745697593955552170707198524162413089989224314561647803177351155681585356961634257407908776706756560247306163633036132034671670944716000496693183251257800033865364095488182896757647627237474333315799814634098969880805494358469876513266760105928446108257087065202156939963051049267140658863160262224881956830425122425999671430678006757156772929651466380534291642215508730646614113476191875269470325388624679369727787332454817976748586629325590409514357293710233052667199890400040697763507051242698493266388558347875235887495752519350168384329846190396036155284418664615170443918989847818104386273098597690475261461634601639239352232251596953889503744586230310595061182863211673569155239546837082183962104177859195383180325251178919021135168380377331132204738318443405005743992169192545805790910767151957548305573658629493911557763850163602349374880222753263677833824725378232775473095119771082440305848546399314068776088100217261765814473536859401952566794433829899969614060169281168214748243123151164428023822769404597820149393146794077054821490839726018251546725236102832886569350023184781481566299411679752151325706145446278331026488010957575169111003873238262492335101539949894287698731434064204745350508725871854470841853168360627777790991430809121893039305346535271746009233759065300124688959639533673625352298050380762201759816493681999203800959926665206375849666192769108071821259234513467675249566244177038948143011458422896608856707576637297104433902985283497330129838682051622933448971756038829680040724219620882600685416585366922691573439111552720417815460659109405361358715373013699045370559046896858231218169372655107656087214624660991220529984352601891103374286798518353897026552657057585450502125716619190439458582021936840541297818696190916327090293508019970332097865579446088656524349273514243927603394346331208189403609894080968769463865924880421052497771567686189470086690828735983560873367851097668633758966829623637085522669257662583581606133263109047869744502831595519479196182385750736823684004226077358134079220045306825636871543563133980329404077292377337434084664232574708761668498427438887662295457081468957177782808148269570242106245733211996997104500011259142193586943002442563639223346077251300362513409005318983338551913815306938696672528351267567348512987163699684544942718438070258577087828334952761861727001742697243963028190846113367424432160614232595404403434614334911780970350008493285609043727793471282380446456354201458283686428812458561755818227977229486672034834847800978073495399413062037028494208063486399123574906571007896904302849404759726917736609669871869526005097945576361611707238861704298223586571215957963638829903151759961214585383074013186894497488979800707773877121361040116753263627602820621573633477568414238172566241537932033626391480847324881997353138829704460495331258218255388417144115753234997580008482925154722880044705253581152632198737135705407868818451155688126227470904999712124789253585401974911460298184145527940605735342280737628816615926761221577132036807962937510954856213548391829378344919855055143394856385616703747793236215481757943490623290623004015452166218037850558399961620950845072490626601378550002006089350153505262437515264519652913907205682045473188521743329352815083884580733408751745456581264020142462021611692047371795023052714151658905943594659678674399170576801674298868759695569089117848345238622426316453215315574240117523000529341997555676686789696735187958810547947574612386445578494142413432849779507461931276616951917240330111306010509145031180497731513701551495045909579526556338535671737109639460656016838699608244579950837150782621275046891645307071178311173705393836724800602551987755896137573156077760210176800499052584201566868499197492970348645055016185336838751372947925677374587305865849925106470037887557932367391292337324270229614551389778618825071289922542933107240082988620159113355760527984504701888203856122004627945504644352559599299569542969986154162822127310473058589149178233718516292199682391150981842589149013879326456737950488292760964989907136373565648187854571814144010421556052655143232135021160257882634767087947663666524458071790598635692387460019824416475781904920723480653082139657775758914311153435274880780099801904725206605248655809997169629858572928724396843746898858268396439268080909833433595321422464819955571643572404016463560433507809159393707152678401862589921603124648890611815771997472342488633518081233581074995036524709857769318223951334825422410341173246392795300450617583840971232147117132384785167180666612329303902772048204243694773929801737275479385089972107552039986617368826409761283264873191170508998531753519163280533425220743688749703898485157446525332318979929891567242388356534527339492337331577288666106087293267037608105697300472773653955104117660412021589609331664622887538852270443751141898716537962903825128519365222394876626638980978108697629523335363003809458578389039300619606653116421955000790479391698492557282415433066234423377220152794338620568382954667401462723371007604288235067541058976667885250393094611729677571091214791181023138870772194571013535319776133263184139170690717817589055404653905929160569024130716889886539625168043124841846749369905177864610915660646282539428621635167678879809974168077862715169561926261940474737541394851458731152914718343047759182772267007309002218686513169205701109118279792839962653032530030530227011558051125720659501720340298406877127515972286746434765038153493964025187918368509750559273828541207088496496047885132082333219371174504731343347975015538040221292932716836468077584713663583952616779517926502020826861715755288931680207797632301224493720933018118666081340733548727024403258343101410224059173053787842228393030337929103557116513517063334490448755409063848993457011135718327897346687618975127414247631567138026782077116617108629778096760574735976026516043226923795570077954702722205285121484874240301937340425367202866662571309062164637277929527004994052263043696584429212916208869667064872175616364695342800088180219112949459668322211518465238010855733966729942766264687263458870960785650419027813944047150551477519989751990906440354768739364082640381463930690681754484426086647233050416988592853612907271277267945534158103742361106949780362479735943547716879645549908150427469209316273676045671192468791035159922409497761073935620482160862265345515050199843063261138963579983523159885566155083812147547795197828522212125111546888278394204403884698924512638653303962238889579068476463157502005152549729639372758321824703667644136314733901162334914487846547302346472859760305183261781807099576725562208699226267364568934643585363520585204402369094703448058436322438753722948229345801177784062250171883347757923884020680359844118911009119044989724096792291641680843784816130975299264872965306970252019390281512380681228065838284522878543534424615820426142242623313320380490738729228959149803824621429681057932776720408440971505992833022710846901486138144762592701059997925976686901790176316652578157720503828859787486860406862828517494336728879359779869417781249821611672094350987570336827311997389019652213791723967105896639613054554457747820430024871623065645284368058558610867993227930168774420513662281200622563164490217242460736981516783437259329032694406054316859776062141347453709939067660780475812592108127343397568177222092265848972347844327715791502205514961154850174193577952934713197464782783512998457070137485435862362178116209751912309793057259019138482146163460552306115085884401599775215782006840230488563752718735346312171768292672798538684037834300320132230359597802576180434525403846267306098370619569322907530654275541305455810525371959116397598493284185858182024514366401616652088126878740029893279725664591370518278438370909779967496776509408892909961936210929409796190047716584420594599207753755988809649777704151962944960942851914199659250193789009122629677134532612279835608211810641527013307519434926880933652391426574061926554378246939190229664021798767802851156047123799580621145199114423627574131983062447842489238635147377493899448771268398363556034077343812023119809649849730544416215913951223346976517805041976944322122859093079328727226355035755563005888025059331417455490296181275703286198979682476739684004045263657371957423414537118595477831128153708004923673298863183777193419536122820998447738987046296244224117659328264497022764587756092566857938601487477177289749956015125942541344493767730659975501902165574134632526540551446840365834301409343266280488663214275179228321585870210157276489367951132263034356933144244398392263339431835318906689501105545240420408725033414443073263831719664267719375118014301694012575053296389381203666353743722896415584710341484803426390739700236274613213709735523689295144057420080952660585377925057254385723868223171574620709338409089128038221838200045284252594867487512260914251355237554656889252617329325895962406273915223151301607315341862094515625491593667145946853877264640610947674942029074238468904401243129802108778935863069597161932469442134387876143538947953580078282819842499831153450536509219021902797961215180087686833289300089768812970100301839272549778369434964470553605375354126263602889883234467096952549626687460005497037148772713536725993023866189613501262898326353154594994152959579625712976240270176109409675063127974177386470271367505386373909437800200611872850738426664441527778855673179369949807385193466934381026796158972645333520000650145568675394299980889375205963653416190007791663301939237127196373638370392256368158060707081713341798881154584314571831224935168050026425638463488924212330831688960454592126526927448944798784413492630296036502002296852441482973126333238955017164536951982531607881073272117455756875681284511670280991228226401244220221788234058092240063386017877207420377260006573910767957074359006629796091143733940373498255097882403737752133628545069805562389372496638264293892586813138208799811525148688248651505932715924684071309923123647551662811038920915825389382161914524798287125694568228016621441395382376583347584859343495569132719612063470816868790391985332729230066103079065220335797706977729894720161716152626922513528957770786752317866345097736526942848182493564011620091234302634204946777471581910981675480798578151449271917949335022941959084620233169848357157713776630465325705746250371334752065170688496874178602979758035601153925869946090674702996019590232048769249645108041327198319061248202484146727321462854934598457241926304505948223484090305440173960584493356154256781050987460402472865604623461813471939081946854066936674103050994025676384791679811629470247125019177946599254266892470224615078893306537002373342868395055043509587154658148527242174515816250781243330210954964059001996182583103686473025820695923097140813600652230631742923221031133271084558105231792126632413426978300456271570016862269764513779657617646158906385069643903921748772352825318954385947239589553378665936872003296868605853223434944978481487197922915770432068271586760809991327685895064908422226871650628692809815071809676608649888441991175461321510530516446500802392151818963300361307998242504171282490444366911935416290233436160978981046624720359575886458560183936903663849878730840676264606096974728662955917678597138853511178859044261127673187326670323637278098199176288570857776073979392044917811073144650873025165010599921915060088763081705689231061922726717559854358528965762418963500668338746612883607066414396157388728470735403529170680075650464945916423219284218622813575417367916844450994925689290590047919189706894843397399504124369030139323750528307035911889071094781166961374913257738863939029908234572065372659595610617342996081789429336177148150214541530051072329392262205790525971330961185483771132738989730695979117467941682982439526682369161142330248108234607305015108880694642109013400255691991087876598112622752721353989508979938515425730058420480515995342443529924129135366107176149213067789681888785187741895197289593230709413352453211780399522110068982129061391047458336009313458725808791804091103163665773152341714623456306245383493092899219245401751985789441583835738543725621445379861004837344700208804259091322826421229242087690582638425017175945100875145408172379705868868815888123504887395875533013032767537247296458080390622357581735568900257383101834612893666597852882544300827235407666059992843404889827738203870888712324570351613124102814647235058919269721182747209722901653686149409158750606059196017558294137086351766574596769197803313993107526665275864863495244583350483480814443566119945518606463160403184244119245113461979572491517855091326425213111511266896029511984259359129705136248061772349419887596012035326212521119974052775658559711650268935709429046070211560481541149951302067344278395452524628437195191879827585928714333165246875199477653717769176315648749816556499068154326931387775837141091163088073263305628899282412856715583054110858861716091447106124492935936408095210970706132884426228757935074975375636377603407182976074697961389776703199633984516338631555509458901239965031124984660732852172452407238553716279544830420496889951075286044252722275398249792421451967759739173102956246783842919835924182312472734633151911320086970821196329527542622693495569686463914379118053576294723666242339535070450815864790395072130987091490827963236336607678454519319587622527768478694446116513942669032821433417186603115799701766426287316479848519739810317241290635570606755365906943567713400950077285849718562969132658641156904358691763699876578205361776934908700230177899400862552412010594859515245910062571219553899479304793112724894403953280062182750977423580245662225561488588450404383748216331747217381036099691125049564085256162693352262463046422377115407055230851030484319798936509351418793301561701064011908077355726502793219806972579444805298128657046004911396547055285371604252205124751540518893251925256551493657665675655694403797069427710205201151039249817601534722507502680087483673479750662628546053963532855734541159893543436366726871991266772058870620247592601095982875574607582899024934521654856215440780892186452498032349033764939198928052968513135648300918485309271486432006391923010411662267067201878385091964492759924122670130856829717915554028441995865438524046537454194855646664639898466480845386972793367228049735980792452478456278739067962999733890554450556190434280700612159503248225069995440011742356353682520783544542021341530264286547546346931549532877269425526381792011853568409501876142925792734435529415551274062314946179689437991253685007258466361273755630259231576749286800260294338691302478716637202675210842600878398241976588032201160126052501868626567093448624004521361223607703652533893407188986583938420420691934909738059993431726049897237830883673931949158278066028823919676518701492769604728563745368841883512360641031844994799801067688207942682887638909996433500852349925056251773501734651404493269570102520819609543854471166196221786796586495772476422824313909513684311914178323538421904842827962685537433405358154362543562098243888756233406277557844234262886240289168068016024121368860141782745646380323398774606476790930893795857986000307080093222496846611064820517698131097129250976689458526515909548246444651614539839111764500880957604150623597651918038558134609237315169231246552401926951171309908083201502305833733961646595778991971963396037455608518919969155312373063789530974510517798931919919880947259180336321075537685572422869367322141877736189472105426554825392297304645196299205321222565956617127788107917752449225897848653507841882508632574249937252221246004196155647685140103729675089809550732489148613925005911765056790553704226152227777730650767538160455927333447207298073681033713965823541191896560994672581871152201456192128710609299071841534226376455682536505066467603300108399619468364899391135485533846614254450820016756384458612849398025065648123600745309045486678488513187706609077768110927718371817434078529454679838031158534703498155182726034058092981322072616639417953909815195686153060967575651782914987408947978212584906335990395861902375152509978541489357789756623730175218239025617603701987748251423473155679640811343678415564331294836506566450221916013141642995586820581813949150578822845364249981357909370651710244514324507912430276590133119411859646609282376585028187920040711668490998359212854737176004027134204080036961840727304333038222884972849256048337280495113948152830792465335819498067774735329379554213693531303098334051943622426966133114035327489578401565947488075063191871442927357750897420835602765317791639207751257862133913809554743861531118577443131684330394972614235779033913875767796440309321722922109925237754661716744681609496346742895645158723459326469688111318593735955772583958803729589482470838222214919029253265472774222828100842042208697790801654643431363552530013165105805515101231959180205448094660627667340275786230075692466707044391567901609629459460096951233098707274279385556073250065833296339696580189098293947535618094698319300661724237027155289403652445700916090161662530984179783548722376243078237599417674374288096426344649748222805861962069489512432568371553012352281320563863447263197784852793039352977435312246174411935743286386876066709507560836776063032499692329481590952354912682502079646261812175697022895904735627500647181703195268548615454955628869012300186053126367607376628309186098419382027258744562937030266219254516836914824435172121908371423007520585050153554681747725634737972577909007887648714328875700830911574220736550693860610905844597874143563543239304340301432481632099703394418743359173905867856714442501939102059251697168083684260828715282301694810179127550713912495399335930226548102094974348270619659932475043622675320361390869596901919423059306201954382803714838365660299508074686289404199519854130905984878067631255355257972600013690631127408949754468103735582280921431943866493728850513338904622424068659807525926860713727958016775909763691200884660286960724810565468098696984524792329126469500357498918229640642884907742022648656435756719157220402607304833589622312430218437313730313972258307263226756068040524846975136581523443934706460281679549102860796856521039546834266910749177839630125137263581217752666971923060019179162807038226113622622389201222736319379378989700041745082965573080693227926097561238478506169371532591533465255335365247308563352850873747460697929093969842223013667395339923664545131437881767807526993746209771053554521346053759062488333263109615066499246147768783858229749119891884315314574105209496447016338080906042302927471502012765062845834709915607952207948139655243120839604207849129693341836662938546194010237084962259326404892364794056340981229217852636708052186951021191721969130581328257087987274482406303990201234277747897412214733331093858799331103044961237266634877379435469099034672394151057737975625708672456896924480247458291396546561818277402624145851278020407722451354475753049632327541458374331914637838893094104499920052799848259732623638474799256894975647535518894584983850723057098924991875336187868218648570363518826091037421649942285993748365654498773141994396210305139963601642005836345333007822245266297336742129394381473214921147288365460820822897987803655037692974903293184340654416452586434776285173316565182354769601772514747184770065091631629452911697341004317432011719075503708013621407262300119237050496038887954598723937521191514622684142414039820458726978468576807692439625608077213398700940674332240593993316972542370547330204520006813329680989948078500484396669700538206185523777945657919117060044130782659549193862778273494751336988490555225021352617062324168548801154577957574912785318769391539424846858848133958143895284576485735263545820310015008128230222398660831266990340442844399615167272732041920940058520913235801723421234091414720434397875409543504101652935055614198368716037640226820803631056515291126347925494256089187539015213839114859981704091227768880726771024499966948725676727144436438201380212355802666225716252871648685224609142616343162023563106985676472850671671475493918599525213072193518527187040815174305135459889628352516400433464040487597183209018415018610566939330837783553754477666399858518770416646485938483713222773749722389006228997772060716200171028385012334411492075071324916257156670151877863529504096013679571666510655796349712009262121748916433368732407868408171187310810162044466998103201114245571997682034539720378284552858030276449518688754794147644806266363815925113377117300823972999634830038595380798897709358964823015468915722516350996618801788336736696482267763802120618027854513618639928675954453676268360684500649154528992667398201254456187088374261057215366583521480481015062547375565867960981082795203539906391525984299130961002815645324239509838504302092505536977467678082047077401520314105410604232395508342319786410549880112485779352622602182144724857183218157909669825931850909625187555847652127836583052059212635065893350077177359756732156881233142280181000932558293439315307920027361643005904399013781451219996845781988115471785976164391804390809268311050327669132748550708752841703920059211371678296389062050185868112620993300909936715694320552193308125999448287789907892493723431932778576089514277405770382469500219995190783574394904663462307879101472026733205235305250428885926233752747279122071145374069616675693694265388160486261148201421891053479421347788347666944153334302590409449400230139380829641130531683133293700431047954800914752723768804150499351000229163996064782135911319776340592535818300671318805194855685334937026911475132399832981883988712758269929754453754966647773076580171669400657388423094442135250915824560682087593554277597877930540753178916814038955854109191779783193413601087180481404853253581873289903904375035594365803474896032811896626588835409933791091206147202205486508313379545300589282123528615819168043945797649653896631036508818098048576364130669570841400532840666621087813851589845646095901312499661019453921537700178307047505458735817678849860707830686082553610396132658214987290721249888203786144758756048302852899090769253912978348679277417331000442128293583626629012687434187001995078443169761265812470637196095469694062089235492987166204294970696856985349649920451948773275104795813721748524295044854103734839219428457225048343724268928905163593881387868721352028500216806036581483877065341418134516655549114672055258390537388868745314133261328333276462227400946032553528781682413343031581860641677518045423266588422834062070964238138439472310441882715854661835554128915945478028405469325881225538617144946571823977614631897445162796250192761477910182353871237919170105760609519209038960318040008323515106524323653665186372850579222855517480573542417813881330739880755999797353079821410731892214187898059748596372273316995930656217565093995784757660901970189688988792871135535209501465834755514955488569753113462019981951797972245783277261924897888481696049734640225522637017387888890185476755825812503172154838777914507266027521104384542446654704239116089354825970076721394854247562881811075735514784433331815347320981862930195024774042997276882678217616634225398853411270096896052359682910823091084500929110916219304967749580824507734783401864678884260048843945828785348131243726416273135396240900013529512433644925049855239232872792121247240563883105259109539862409300405138468716338133065926183300740105568629581539251143803396956595571520101838160522967089379976181808569495797839434119381149458763585188480597159850151013241670437509128125236305183825552506867507528733480991477223420870854681171668549736336094273271401745728875392994772710745774739405812850171291355427035788707525498765742732956163647510625187088292083288389097487738351018273088012582246155185310187050638715011299351535625597524645535150621400157627191417401362252378810379687497588578595651083012282185045729401246090728368240192680045901271443330130425961271250011091985868259064404239781909425460496500774587882935147165911219490376304530391404727333715762989357148678893031192025593078158712785771334502649401482206776343628353565382435668468223599306749538232004184432482343516941575320438992578511633675308558252252614404231532555640825795599465363260768560658287081504556915027668155860089009252116618900444590381902540415754264331408761238901696302894890617925273881093566761789857236964975488654609716475329946919409006979973899643609893215333330527242164071931668060775680765099996873674850415700592130937859402883397741256671753335602562892568156333576936586633149516322357306165058939309920333921033067918457252813449990433499628952848887703719104293983838577136614735213192739685930784279545629573385393329383371270986311658027720558029872443384204470514403741019366808525941985180790440787644805231059668612890749924549174244233574286831886380133671149159656544497447778610937965716397820874415263880044947650183669497604916668499209581334943353171178956301203708368036088656774011404016386906006680012574359525013177971917243517433937083612125465812778787666843570692669542880387677612905667356756149123069512689325693536452061647606759992312598009890263604980859893123256858298432153434673327159089797554002287824310231846576181667664524930343098190589628643016324807112881944610869726611103032179146138871452750335411269870450767964175792940864616655189431009707363224966389375113544987625289889027926254500589872274414340321245240475472581565615289514650632398390378723656615867863201357503520749362422499654032794308950208989181905717631632260999662987216842856919182865822983391651669414884307434145630422513743718860737336716236542604304089870098696318556182660614207876466557962265787071071086264670746191647155179751047703786281520715593050984471976610317143608230436089047595859887353813563086583794557179998642346456214815937858674988828927858589989142502454016725726190175950584917554673048683539382351688113555152227458312477331136254517661493107629592878490447459030706216565746173284904681695491656887003093431285641810631281279041348875749142139472025382921204986816465007842447445115323690620438996501729435833398644796165704099337825456535596289285657614061031534262969913555103737159613120712508339558274021919829331751274589620230456945824929069312440510109147798568635578317994149946582142281260116973213846504175980801650327160815536583757097828396248695705183576851233957498888791421831323949708270210353067830168933335056575846244451048604658028524302980164027252182519750876073545111030698848705494888144605965529775652982538957881661314122786071584459732659185964156618283934724696468733842758491108475490671107012920207752065091632624197916749038557422283316190851795315890587804003235527384924836442551056540930165012672207490155525126207842371190103614720697796546766913818121516053915518121529898042015909555431873858184807769659494189099249070243432629699804314108860810824546414601115307963503455944477272877373199858839122382189950588139452409132643748663971102255873460021782761525393766106190833060225546655042457269055947138210542246941826550423190301213897443111505784412408170464574355156300375259963735094562602272028919590893749150379674127150794104275946373217994505059846229154373144833022135765238746715200426997991589193116524717432102183394656686533032762439148391852688777204931584741314106257141924174673262923103098248311982646311946552945616999061812417641031092821192757613813408179313552723404396337782772518047470839046924993592690021972789020801688236018183936189898843338987471620422013883465528275890661513295024757771308536715878820200593145396173967342365742544856522150291229860430901257936777562264565555578300268701372369052937327533398153047524066423175583337871906020270815447030379412316819040327350598603161270943227852536452393912740059628682990757441521007092442312762773466526574394533772457078374373485152114701266463283049378098931344882506357064088870587397868762625168062361071185931727411544506201813440186287642456074731147575024350847110011725066396306264501929610264755023629985903057140469905816795047799475266571817223807678918369500036974657850332219722646572427222244393434474952525406693057932609077822590666278918228637254310911026399583007197329213726317183094892688133380147921568364347786269460265585542555678781045181949798356589863398214969628459598893737290597987738330555241599593470543699679514001846463002279178577969609632623514630333686886456908666340930775090164107078543524665704076329029453316467863993489613389397185053700043123360284963113908120634178046619009093504206531149047529913176701935843425069453038343559896999177111350585143490791139729574592328836983382656504859729602403050582297613725410154127748018106366863544227282910732077471224673053649569394039328125790856451592093235358757813163141842787476304382154305051097199212333986799380439827517389710418343890468593827700561510143464732906463263947521652257372375127596415732029658549838221525730556612369766058579968119642857960628315242129670365131684766397243713022070348888575241919955331304792158098634943648176564896425494643233025884651879642601277240545031845874034942129417382834992734302413309142094405855076143300458612920476067116705719859110261149998214820469930211395766220508723579540109286536209616654609650315862676874202022005439760163228273160897363480518426745624742355647571252252982475907596814312654156143497643820710518210212012947107725264556082787597603986164486429777678656552014701868784271290600247391459030296662403493811956611733873670341351436526209513313537580280937871766085196609519566238513437023352115122401153843836659627707861254356641486232419693683012793420474467080793095466213264919589223293992487614151440399323629582980984533791437665415314424223393658138143648227219083563638947784250260272447540180176372379511093034379076044369554321948291066624273688398440028428754701060956195310867675937912117384097812825478773278490380660999704989304759746585890163190838827574500562388056154443472052895727084343330865398013257838555013945645069612174675245750021626047336657991985412696302426760319069196119680134747244496443494757426167652028814558292519810223239010699279023768821551680380497955732790551936992628338165856610796483318848611883839029581717043594670056283497353829254889284474280258702999069217520312500957644182167960655255093414573794428388276020788668806544016811680840249265673612617926946655205227804536016775269086946427236065254511567632219495080705792542381614130999194314825228291174084983253567526763914153564810904355656608722606570159856684326254768227233937475334328482987795393901002694405797616636556497294146323585822340188211216686337801503104252705230512152940754320330431488597196940071050413375087884514842280728476887163553223756548716333999023698728364128522681555212598362515172103927730203090858587410192468055178289132511078211337817841643582804330792048185543896553646685747320743601627696832929427755800825047583219920323764452219759762518879123480807872121001515692612844729872390408851344128183852893472865386294541057420502673036024686184022729245107099006665186308068405265534750663565243927394503763747223602151164983185296419054008816710558226553277403623956343914598042005787471542656542750635969348010221150921590271661140903463347569635591550264621416768279806294631503135192424530715000132235115396313821308572597099581821714572486187371579924715786511966958136175700188031824232974568354932199993194106474135521392465927928951632966415297535182459837242064103579266351753917583255669529761971244942180280139086089286361634428855716050842224713626513569982148143207735685492451557495234049295616716220881346350896646467418022442099543260696671600740271191786691364742585180227495930772691483545582728176443101008293821010771453023570550263412629719509656809159091221410668032972365870991749548145809442923188131682037576986233592919723858492183465059347305697995279903870620654722295923709853103835062212463666955372486087576914751228839904310764797767565237552653323791119387281219137408362736780590973524584394901589348170572793618977326650422493862836361320344756123597508120299930272390655746638806161084224780502347983279142212066332604386982973068734769958029394005234983138310656441512139298723318136141160183603768398250760869273290796049310080078876719488130771031875846618171450955363347783019388457370035611098710604932343368542597314997304589084050748167832169913645539528619929151451349511637084688234316940737274829399756893185020044643285902252836112236543420268548030769569710666702783673005040378191745998601891484622969919365516449784105437824278370505144903534659463250393343308909258205303122325158813327070204873813383562893142989974440071696294966026150226282919215496798169056987425658797100236351066658982463761186833555535521388062902562444998814218608888180908552602274843190299142610681416368699404252984380495435417695961674314548120827300021172527088604607198061979304613104815306217593314374488558638599123904902704765482788473809110243272315666788090127813393076782592814143310355889682741265565970766324338775968981183530273039602464869406111291689362639733719341434600077177193049583801854627454123537570232213839143186026036866778881281786912810201062172662618796118467315348001167394305218243062896939194426854547265035331144702038576821012850619635342711997245870959867278437185320949702856140101086391408971160694488898780423980877283525894377344452834765145653091365005483393397659558206968197520189965699657330371195671953855407867005279171645491101083738379213354393644899831671380442272155259102449135761534752312807379728750330819921534968338588014253901446555045889785461402083768088637657504067074924622959683645009770842368705456508735369649458156826964076503351069428772297194234855608428845571760844354500655719966739445894165990129433334763019755465035150533808208712444442775434803644320518543456402156405615591121684527052597148339766677669528811341444131439197597367177264368943740518182876175232601428763316852681438631274138238988608129842028063636410906636286450297112278239255489906337004036453749340391394568530383325454171134536421831541859417397565875727453338577845427808760060676950379977321918377705986794574440419918687861749372234708855546229420029964030614129727670339690582087595937099308858817705358722685026948183593726772922299444448577464640974185492074667946395534051095671577263664449293465516410908864654257005847904326270409255654845601643332231612797786290221940099333298779290859755383894811466834831134161180168390095122585163386590213885026974039278921998055896665435411555208451236309028982312484478134113771446753273161971365690007715958090866225033958452965564973594783897991760746540051764013232337169054700992859314646362241493321835319149231644900255442272455434843069298464139145699055488865373578871248786379883645396450241367812161006491957210154087988151956548773988315916921868383333171921273323720850556821312460246520255788965210248876552522114109306312845134915366519600438329687788161667286707700070279870721977695698556250205171368897409193582763584036175681135850184929899595925935389765918387520733259170365408017645833043666885256202670209019689938445819777580506227862586376774418484016782350101447859550597944557422057581678922772756238012669323913449274682068279102112126188535545549520027483133062521321556823517117470772677245745285240351922899049559028939460466763279661607696105965909380897362963421326621055715215765753232631889300903988075862300625290814255690133586649653149854426770764940344344220287229214270143150038369399490100164958897866880285166989179583625708885954575859334884677139780188896422143496853634535735874499877609857848875776085832925732096243265997622547776169917756530624287790511258930290213205546971234944118802537977373625708105209042361921169369306865045895308121582709495554843711327959484857929942378956430549448105149759367287733804734820386558910491026970598748152142447579722735682022688637075825728380557464183207345066952087605119143159720223662389063132613487626081956168504437356278497741711103274821079817905601722801843641551241338297398582125386817926025694479991907771961015298601027454009722597865184561287191280460860181053044156911185493634471288015712038151940036824965949650317409440713251136140501764315311973091173627538273779909621183007936726737457190466359174038316076858071771982651377732121677165137087823213880572627801578487460874332285921632394714417304531777390849838981600686002246408695219821597151450228267501780105128039726295372760050955081882063787788771984888756842991593604140380024082655032850145672820227738402529110143655465348675133619999269825541500467137379875992791609692576389675261998700717246227079070569698270181283073528203456629308452363781062959376715246461136214133821777263275028801595266197291896273104909259118557750300524249734134709471934711514441805327455362331483708869401401793606427134171210240234045085560604852687293623901345470990306360225678906608577688559944425485887408963083547701302015609986323628083350799380990948632200883914242187205253812612357227874849345894737499368771106936467861208910108886614666033379020386461513681730382258738032199242594580499386277668832309545898513737808099946597753981786356794578428597420259018964600278784911050390329781797019949849699867310783753496540534263581609098466690768996033971550978855173768916354957609450459498148953545576390775814508225081609340881368086517014670948842372887254466485686619338990806225656388690793440410019646436100208294997163100425421426507452632427904681573652139071293914401080577531669752538483704539908193132458864317932771839634020934219194204507865644868578464651917831069183065390548645187576789675568798297371248312532187352553661806862797714474900292337924366389671542841122120154319118312564492480199072418510307889780032015015804746671478189373373432083153088862698975837420848161587792138502912719733149746015625571438990256419650993867473394696676366037661533307933687736154714553788102482470051272308991450048815079106626858628396077438288841810304458493053222201773420865323140937746658707116327017766996201699259611882477068725995698736636206758631537399725640628170503773098026916494137270205184243650820657054815423643078401720647889850409664940348005415880705891369442193446691845332862418864133331732938595627607384577846536608115865952258549642287376567621545087285187903078728083933058957993254623381605157818120045908237560884340050734172364175070987571781270398946249621432619980495699469690169632349763370975990081298319196052842922730009222058550743468903911199898251920603209165082856505772253027049000303697861937189290856786413968796163783244633173342023337211321081350700115615124340571935073939964046543254973305346987605627984860361966513027250322835986045150666858010512983305299966286195561103392035144505237170299203161447605454440918834621498348309452674272844073592188572559336889866132933018348991210626328195772628793746209351403454898730947491728361187450941139877477251285075707546920431331622880600297607938522592781171513409328948789263725491312907156044874342533173941292503541469238946735184965589508973000869114149298684619752208932746647416830145036934680177943747879339452874821577578062664079066614601580284129241836321049664347129541622694651988091940013860863376631674258764218434362147230300848593426240288333056265584408839248492927155915913907297852418111633410220777787816255603720186856101316901080344807841947235337119034081839824204204063213585959975580202912277861124165851959317861274282673502958612632049251177577037168890627479216118697913995900160739903034048752602938368903451096379143024878291656019206740488803966234048079282380381111039697707581844053423892651118240436029097501348395695144919533760179942883550749461649729619334766553360463777349679783556317602227363254172351486727273911314605648454774017483807055808139431533443586137317934562217500916505896457077484999940494388095518635325572285254420426646122418638747139978814058678096560260138036159266506224326474196664829601651761726470670255781291530100889295627492055139865200960275446462234015810808927949945804551982502535788308732705450102899364012942684833296225330429512814173009274483245216773801009585113444323774165797695015490065492660747049003121987387246457775798606584807735307404490864594961893248800213584204979592396729980839929185409461482076311696154605806719849212987725222399963647691593041455744829438938094071509285495666619396095201257518992191372973224267636553585557302500416481678469123908149418957061222628650804046789642640119052985643116546292618274213106174991631968139393311405129664329795144725091569832343895540184284929827110321359556792116714115458265017940784113715800739786624205261497055815999368751862929929128032751801331899004568659339390902191347840857258712727148473641299252764797261171070382131525002241334140473588055517548262909674109011812124591316437792624720797866868330305243218760188272017827872831546830450943100501287047770889643739434839350728526337157174251180310978652086804768606804650778955639731288955919702358357878856924120640839919353869727736283075755207009238264231180580450445831562775815830004987192441313165274684582995293174982497462053751502982868441925209303544586589331302518194262867049125280267086240072524321407844191244095603555512171516981454002066401691634975074872054652210908266347504430156407868103077562461445644451063180625145971657120268197975183685319726763110174741835535549397443674123470098493127384084019279862000537524386947301494013889653311324226858906535063819708742228018672996629941356376350035475734549645910849188424505487058828325933520410818747513708051652507236852359923501948876987326428419167661026827242964428135418910723955987610697645132815772689576357234753219520295442535815427597473376732795875192932368520554570214952930552766542419274847794442776158912556388345230540442524467730193342590468119788388247102135461280485447621094827534445255824482980496274898731591924192838412135275632445356953292470227977207260224499267753946780151716309257538969075993614411095478243514892081994045297968825757827792785870448823868818345744803284801167884883196987453857733948672438931059263738902827499031992579702497404919155904209420275644357009996293435828154025093694246720512964103562997973581135571881768105317837420561459758497380656407910297059779437065808196609954587675735406076809000859564581591280130033677542064187137484094408226475515860476865746700662384497862221104615853466059200301322178620439000518469680948704708872742987685880937024987854439495129467192742840576340281120339406386854843070067489190769631010477030253138522549937067264241874020624833694660552046562765749521404668742413884397770951135974367022455925931386082825555041215891033888221264567111892420365829685837810515107797138404458662031671887399763981271560373569853423592515644074942343234108304494301509551122601656833086812633265851742118066225478851174490637627706471078151876624552958952978909681794127812608718503209553001205755347670453142449407137635643753867885039481904859740281192273285331664275139088623450464726447530020449441636775598324465129030960460344599350672999909712450901862633293226924027202472105049712744606587193321624690418900814180177788916512269172973825417548459871080927494021253859473183331188358688247149384751246692563504589068496617065197925217629792637283904360115407363993851093455772709973671770253545157229120750579738416877921988970190641910728152057555924155864417415499851789807329443714540536802307753702240645137040959678938512805706393781160236820987465906445352743367000572530920734898065955257868592151493502429063514944756805970492896146948900722959222576127924085829254083725608242874140396643040764068076621509271186146991539654011803293827917835191855548515970368083242184440660304250427210289849965082824894469492270024600484902485170974594189095232217308971303852917375783210332442093758153133281585808139507369300190496028883341817215098632197938426023158858556352219034130205911218033771552792912798272175167252292639066768278657766086227754187477626547772441862441566052194245348413467794022985524350783151854471893308131431411471988640407640163339566504266642737549260220351313585752457068172768188139723106021202122544860505404202128597645213353737230178713011850193696553764325468003941892196967268303380606859451093074445981974344852504391659653898213592862997621671931767117408719194395925742949352549937886075536971101720902633104811344317445871574003816674067642715955038788641715888123271892680524940847300236654882705569001651765642035906484968725937763497157620534615219616280264050275799927749749449255780112237148021154726288467020403668930796053936921626409634201049538193656618694956562069981007608638686525456783485493409850211862653113992604857182700211368150932698839446007081676566623349208061414946706322597959316821470795494319602683269744708754900603458145061866911568175108658319641721237496219642349177631375967729270759687934054156851437684965731781574236903016071923989896485738821442664502354679600174858585141586561468891888635017070259979318206022555495798396420812087154975963962304221083734119058893680527743071875837293614732356293165086026393331409545521271601043966021136578469104660971815009848861549043909845773076141787161465596037520156814494632751271968990923940169049857287666614206123858398571180066146276663748967145213309335693050151529268352455647268683788307140256161139218350753962006265044645372182937639535676986419792890097720296396673519997680677778918140358443684934607276103230669636615999436449585068120651051210854808920460397624357403848933301575121729174700602144188925015030856198333697333927010599608120454306798367645867634463749464443891480904046949246678268987600890703778719668856381458512964500245557218063128326250018180082003632252895238407678018839567998829472157063002497409987199376346362536791847932192924329871251486287639488396678305492476556908593883584733183320801497265346450441176641653582652622839656171667961936683890950179174060422178199562383091050516203839216196005278318743318889884460360861901113181105033852150530847499564628401158430032966160984626753166281357728045821860656823634351418613195265592867736992586357758048160328070279353078389484126754265871044567191853890348689685108282868259556375785057068448968257140926985258836590521413866425835795604850745126846967640451719363732092299530553193267673827033772090566020778791510301642913856063245208292757517240046028155401081560352134942862469812282003618099566048203593537471621918951235175946142345519728603502010930967584105116417614351115122876610459486455140093157276745718964707444625593811242077724254880552913911908658509259019237947889010747433169489172072932532726211794583461522039542149731085742912825208915674930003597904954609197110684481454552135337623112272399884111855875021591832088215168257572607736268224900295135293674177116109166436007099052979715083807325615866569496912598800804494051357896519207286401817844524507966687138764197301544057699443319015212167132484333807580356550998903452936268401951279493724651876671005534036705079900021254468966654713136683811386551452668019457542392812936937539999544776196675898720066411913174105205017148814497112036942379697015799069900130038845010321002300114000876712937865146708587980764613492070669078147726401407321631137020991360040318376279899840939549691736219976925994047850011541559158930990047043637811334141636037637306585833027713258834884782926124173897424196713667058055161850030183049995890353318252161273998177123710512432933045661929775263204866478112476824193111431142066637677979472583180749122220540097067315383411043862158559678989583137690123382182845417513000062707319003954248283198121152170793023393881252549400016828665401700031565380975308101295665591058509582154648792258658491968850920147616968989271199041241568495701839070086327818693587072048186774866839393268986573142502675829811358593469287321292530495189287572757647235805318939097728967781602166943865374648426976316732515391038151712859502429409889679022662140784576142567720505608739645951387960750039419247498466382528540492838470798873002207053698711289014975988070951755266289252720050351438493315692615055656046021031905026881203821051937734296138865825615379277644064148557299560963953980422728594515637941135294718426771585097527618975387724285004147926359810960234492749377864364569450483387425902238841101838413205879644629563035652855331217712982312350452111351679834726608730658637827543339295785943610694990471095953488769533996236481665473124860667092409873447861159176850998384689769568275220669529089979782144687981067849465705925029124596939238528650659374597998182223057437601495820078883876868316402774588786377655376617748998749033171190784270812910283113536014916779182441778375330069374958294425995239685592354246933483195664547778705753649791121017138265659056423259500300169005299089732369205704852539139298748480178002971885089023500494419735269491762013278462848282548980717821980408839903778894250473946678655746932927757544133397462811182604328422439992154598574522865483182998354421553814569824892517115343483908853492577359027237573005506012731759848519445216517190297171897376020748454225869582918978545662988258630747771477462610621739770414814956502794603268834817956178656251593021083493902716798241553647707771971415281784861602342005660586464609931479353701672493297472633274043338725732941308819531403062698648171161647794195608434972674922660156208089908515464291590803492273577663168728111004541036947770077203870587876942846305550722425917518553244698848202455234491028303834830789625164856835064200431458311606009120408680444596158317846862640918004170532583430995003654727076707179186452857208330518311822900553553092386788124667262748537299531134686201518147608990269267066685288422567993518385579817049344952218879256870142959420844911473994315121722429944213205448983394435945087377272428372616323981510884843296065077295123007264055235307923812351786050881421819246680073742954321320742100378923745143967916183899774847093664014992315240630501661275502090931959623684901239264745211579495378689945433555307137847462698983099416949864664692439755518161719441920552056807421786435472783828527249505825812365313685600965955396740800044337119415513835778382505669203877053722372120604106768031226916761456644749620418771590991964362645934325397544267482874856323663916271660304979965066364014751624375170668667242260596428578866491710050221862388080408167420594031720094831332369146642174291266574676231614310469881361123009836180834207742961033115645098736161340149418890789192699548526129535752267333333308529116101561912047600586029369411028955498057595414996081986431534448560023377493589037269254173552051902333128373198578987573988306902960255309754090308330909084708989672976567017985069725751436942093124543142351929115341188394334735388547446968486562925478416206032532867173681127448850179811609950181468745959968921457274265571262431412081581555046614493294799923260837783559415664437776709841103521817052430975275012511826318212462433018074747203359376659865631619168368274071621150666928457486410821338618692325462022020088687013326166246113423302743252332822774345172573259238103032660082452619096756642228512094480837298022342161458430980927948990447915769307002907754624270581295916429669911662424861561232281394659506373103185180862897175901100893452780652408095650579545120342640851260884913270940155346725329184083420388043831417697117179201431468389138989692281848427330736152070993286702584546228570683789501333344956244229188921345478058706598263749496147922160285066723701495987341238653813245113607797902933529333376705626762479592636970163987780631375801872078326922116698721409804052089272241700109787779755152399867819322121162614555728172346866272784392979828852470314557976622556091875115284274882121492251615688252486804513722191281810081452157861676010297332820943800176120286018667249230934998597731480681591543797907535085448917045419272583470745450844383366375826130664398550651612327320575742275803655043164516662473252423441039062430004495159740621748384695734306557508993731945538750657075467765147603644538123195349919382779850163260959943944481949846637047544585754498689112823736897849112749841037634314971753673376132079210282261011340783885934281253989071976539053732963039855309934865160653556723960803125657880730256975490966546398051603346854468448930526349580865123953057640935459231731964205107653067382999177002067276212127097328841068161724616329729123738870194697054059784202118678589961813935546700852857682452848100832972283928675754863794554925153784612506854554025058634779539708790470807633005848039417777958496875551494563891968592012903539311230120303178507973376852345103095311439020566555562991682996346397588157851943166525470663997246445234722798491378313386169075185436601577790602805641912190615521351851661528855534919892633978278946576393736634808121529243803152188299004762557814839036619939340744598862883900141511853358149228209078686960494481984526565817465495516520461793728637004273470158251760679298468182394890083070047830680959170358540243807981390024933029049323291347283279168305066027464209984677033115070857627313699903299172962004788071656192158029607255196180914921613219760371542541752247028441171941537758173611837153300751189001778711248667311453648322876682533438569758394576900765661337869590907596828005337491702066132785035387629426538623918829760180893288480208198157877614480275344612177964217239204181597116643147699983575920725170256787257128715379431530765129217499461356500192064687912568994600783414411603902637644783036407841232845863505131620045936826334458500898431721045734834023841158199526763822235341468617189918241370050669512771805235562358342937931214496488571566892876829384706581964175265417248780658705756039873884824133855739705232184691444329104607235470009395243552129610265033539721281609425354849463666104171345051918166888130013490837685053792294110358925867114986827590433546479852811234426089468635728796134344054767839685688975757807240827918784223418408691136439536155907227502488713730116790987845313112331621924965126589145860964748641227481917803926320302399177484634446370196683963052494170407576403226231373060630084289216810913092339557722350595745211163092363242111258654324437914769727269869047412472699097625401851120737609743036082908528454149352881396338958003193740418431083203035329650228161931235928156332443835826949401311873011400056305871392906849698562925858156605199225166667816925025333750990244427332919195834700814378951752482159330659405158288071620619198897390030659552863940038538730989512223932211523254282160963348226475784995736784131035916281076721436170641158582716998823574887875471402145186864753930161851970433646886212928168063246448620826029188426012940814593855442087052450932314361088261309427956693760313370848619032458045807143365308843173703987951290418501098721035079844030984136442280339188692496897219037306237485083192684602317539314196793122602540119490307815245066348991519053072620784714226477525616892810709572033902103079262395430643695283539756956311125465150595800253562817853094915707489782946096078739228985735863742730932947416087262255447063645600518615772946080721484815778549560223001770618005369244663308292464722233832484723412405383370831833927056879194017545585446874413462735801808880140545106180051757494156634698875874971518862549875393758643175884619451078137513982103747008402267980969539763262148170685409720654941633490759488290957563216614288745391872038434435584655884531281371327834889391245002460710084484828114610452807870373207010742471554770146558334038049542444489144187871648644228737695297651590866432774008080009248745977175975484160876223869882010201756458169438229822317566630948527851713121808844746669436704437006074126069932948659694279167545248815472079648504168936343267475464276253662340657842235814506754110688512495096547765727912044872277977206714055375875291653181954101900663753559468035755112981971799085233928537043536120870642902791513662474093345123481033539564784372203270760338458547323199333388914715028086741896674962659130607483484488443702512027309758082418689488572214550605647566677102704055580957999372883484779134264360849537691041737607511778046181115470351806871674401089874241282155492747160944288073332457352094133685699666786210734175173671690115027447006774662204316297565200114557717210707459664309632644171715274015700689370249580774812202107724719664722763781971355185110564621468193947506277041314613983482582193748828431388417972960463415349495438266312139658904466573137093130034117510887370104304966285288775769464992964197016551445991377120864825136712058558824391523575553881376736583537993044697410364620301753618925043602321957304520607552753859490815187972946998521302218506642417217903913310628066719204705522477729941111683283008301950832061617966144921336619847577051456365192183078636606109881472753268145158207891597362515804254000828640342499300579556770029160328782309097369048829540494770230400482753789429099997592423890842573336785453986721358919595180321472693354360091414876551509674774249916371785039201018647927027385460889379467570124826467518022272167300239460635784670329492273188763082008978989975824729189936942037722943354180044939622485182085395444478939124704386374567428991505177485035489209120350355558947075590893423618875523907077116055213909010372329554639457396376914130972010041652856898260636377662932647889467469737593652321848939083077161906387311264785475552931952314374612190550929531525390038029746286791047972398735524871390908188004822800492994930892431974411631731764959092396790798187590367254297889784522569152868664202519013419405606107713532519831989638607326950317781886107689437303159484400909843207410230871889839502281857753090167924332757474863508574714306398942689100705406548430275761484702194704334237128062054932213338024748364163584610427550195777940257060194379745578190768636276252627030731452239896100561914663870796610586680647464595226152427293317224713638219146803002538056733799299575942341815477641737932259081261291744534128161587091530865795209955381010744045789986242448156209396087686449789938596511667659914949951053001804694444322491339444948793671958995173389400860043485642315138483876883016325296037694031125078530754297820509230608042896331838221093095575971294118362984698660710826489541727120804287739144089391296923865770582836909304735828453040610810996140213824878691726618264995178540282350464000243404230322893000405250925150384890157702380658719137162980999947010465431091089560037574843068349900031359481218409027994578450753053329554375387399093908216135518970986989457569393642745953233568053442727862648947145108123223701789890440529071243058860787075142747166401834269746670067730250042269898414303260461418062045274316386650349039079276813300087739225965442736189469948661727797421532676248057854080813652450834229867558195644966031196390991453013636725040942082266956893319813167744919503656159794150759196623943498091584495728381423371197306458945106911084474909220037304135554742625537711748216636682330541802125455206894818006828699967432235597952460448355012975105391517674078016100905382249063307143489701749086274963906360534865895892674371246104777628990631723384862570852763610952662326157187893258721833040801727465504407107408301048451276915670682874973196470071657801558385622638638924734486066653281086500549386812629557043373905614719680550685423566721073174882138872541010488451014192205846678648625057436210228898908222973957635538286341312179989570138853191133720002130709857036609484445470619438024281807858468950609411304192925633171420298714632134048720171040680780869182016484367542496162449888715775949845921783213851522573713386585283622516507636111897000438877304128980193955289026578306857350550996919593850777001733531917531896505149427833053064895899577022405139919366628946396479662750251730329582254160709089884390571155232631137138067112727516421842888696654777142619706035945442515312845152958655725136804221215076595387211746129947003025063543036716301776319770090605974300975440860032999940298351693481646949539927574116893527511654196678007645722397111232161775381232205477919647003503130303813946372715386645793103179734859259180563205924473712550528219287670451001306794878245251123791159532582386474947007612951635411798176197594870442615326163072952564713103094811347808206162321992034246975165495027544117706042483670647368474370799554438064778371859417058312842837387409176124854780629468594046184170882400349347617405863282225706470447106488606105640101461214613437159299395562976701182153820294101648865386887210723600381261104207727210640703954410605480400146839105768006358596849429388860110242933318505544271757039145860523385902653003081070591241074198521505217700697577228727997379094670622003773197885847881218811612536155738590726442477232827518163306886438083230721702991045594719706706495132207029983594532261809115917629063977364643159434732298995414277962385769118062579714326851179205732067432913778789918893338620252804389687521850027448951649154238569740470481205262270150201354481373588104112903731297344636418381433864599932785417170444789063488553229634568181768680426372478267449086023921053732130293944889680051951218436964403910493392459953374520402554686469934113632229759408728003683110350557596831962825014145827029336959174069186234543276822692359910454023591862389349855112117462651010194025010698590821158716368092849526548535937202828276999880931989079716012727188448627753296695081234097021373567493187599903702661407107349406428611631118959413640158766929939903855574477476797401610420384413098447344854839162411912419942012023791869685981857425839756711330714572718939020050222383214290335768112411824167416624510180433047972573249760362870602780810299272205172672309731894639877963181907072679958554730619041325559504612408851768879747824899062185490385209574369340123890027456242780643872255282302547571148757110983373142951214720848655101706337872707563240321278837975301340494389078140138152929985413125786593565061505522501426898248498665483955649882591396787888026338572236573984991627763233810812432821136581780753127781004177049820093664083288367294687521288258542656557039796130070886202183857411595895111372052794760218935495565321634030983688865188496569969445625423015922369588971759519738737317858161044290714288942763318693093666422018543801895275257832824290278976597842838976549531374139301836588853326789708250196437455056146936070874603490544193479533344886292109503270994927953068132889460852364276652771955620034921792777747956577214839212627740946617130250703639039846367731995262131923755531501851686123840924617893556380474277683603541131525876587169288762377351659373687790641191234051537059614976790447609456592771626771295253858042688382169326430384353999047908736358040074432522876269703077019991589643158286909288302075275584859050143317415027096324357310333022167674740704545162213368335207886970591162324134151169403425787682515217364246739120758509587136302658630841617311568982756399811611699493743620772419775192591720780079390977853867788907758962312627145050320551752180735284913145505478217313672502374609409204808565581538897086682753617414700654569781693431815498643594393132016517007594721055674094369372740064653527888813842602230213499392822524963085918000308186461572290262104867442142606495840559959113794910169417402971712602735009654247835882554515487090742787074961055319647255522005747737795940857060023988686587991676397633129132388303735375423408084002044415801528398185847120861006633799437123358491461438093765322287775531619661087018984089232080124232392496983074188016062929523260023818975742776694779434799369442985341367197882010428865428736304862916720360308862700020813694153768469370826263983275910708435687617730867147005962126364093433966777569867279878199022185051546442381074714199242029119609605167782404996136353420533556140801520216980052802867995724366606558525346382982595484235989133494556512883609287472628780417292576133992753873821096264312054158735892926737046836453458231250481732651121391870394464686787442538425398364788462918196551040652834424771029954159103696971327764125498325353746226947510581487623900031643500675055387989278611313715164562795199323407841290191401410054402633806580984607354356160387430583935440748938073956066868432847290168625132863417774605051106264865565841585606277123805681996400317040998424600757414759488929032857712522068603646132923053898192674414149278572474757054711196590947184076118184369922557431634756746248572182251677795947910927086241368272773915077237836314787949280361442663025691887845952071734048692735796669748533676957361205162850779735959632227218776684768811190372662144754390509481774320087216136054228407843292163974918813015514946471484864176171006836108863381506518564994081193372533965458759103605043090006991773478846200176081303502739978065917307346624089642483546758308535175982693653903490150282381750321332376916161141421018698056418332890668429766717121103731874057845930078573108601698236483997285976645152191947626192922410158153510176720526171909760051484972698721354267791665757457663583487120002282645025345298859308514693516359798353405823151522322747652665462250369223930017166776579418790840772059033444770892583951558273535226067639418402694951395761785188599712161222988895130190729831147009116114556666695142360231218680976297329140052549597851711608614216396681707561303275112854663189326573286095448317429024480214139438859649757261859164241954375996178877802550291860430314838356988362227373092393011756123933823355685950132531580588939223444277473149043983934967732158393136455315063801670206355443828185589478482472964011372289011299061819036059238107423320182062963425075042404586496791166345428721990125482996342393004534050126542155818593467504557654838718445088736093088308197893426408723055213780846900092821081771714889758375561666993941556267507624680786519890584405402760032067875136623005721057658406522115736113898057662657159441001276584559025002535002735812058596760268706449394285652745484811675935320788781586959524234105768863556083430437591951467803086219565480029564748328264385308588874610823537531499804991135080116729341267414439906970109482963777608041552684122651409126717937604198678076367133564136759603564212428542585108087318375878078884465297620183442209631334284782317211812795959155652684519938612471965331270868792396995614370281633060759681810763847873407366093613959761302073044611288629575813285752833826300358269878294646122709142148591041341520564715498463503849078894821984024336560029196402501698632526937597334068745308687383117293416291379891002683926945656764241748246924765811046374732037921849806968233051258127424539438689749916623368989210707548051891567420470930098715243203433590669479167716381387997307464439816395421851605263366480841573523038273716776215377778084679147543981577634282747854794911810037346283560358866348638248927714877173649297385021640361761272896460529517610550771409630797063504651270213093242453917689293473220294455554455284315045627269217981958177784812245490187185868986425975780581991873181084654317016956054268772592882980992262187353391243880103193996708843606163482354466343901034780645461171796117802593988615086654407521471591037372057381841092189726700532490651667028231741804459039784459817560802420157533686403038996087497047693036198202148984349229155343510760322385736796212478056472682719806552578290095903814407164793222560357095197294279936404228396755251623070813736789704003900367916290217109596255050024997550397141507192695901097925264059522869307884490201412604969578370019405910451418986010093280744384708836278788006004721892534890804563803413945669614061449956666203327351876840983375978755412398509353869070514953132417355491725264554342088324967432991895645256724431225842125481609123537244355037855511578003092050562701459403591392288795718107949567475956133073793593922847568664611776098752862406827861942069099995314318583068602301937874960236352711941850486483025430871389795008629129289430548435005480264753265056825215596869261916149624926870465750740657924246563698769072207167190627805720513040536160462916489157991609354051469582130350458053033618478376765544058258510402613859735789672699443886165252960710564523088796337812439699641461582521149572704347101155028662117288450926989966816797820550729707753796880503220595185479859360230222115633722798597295096687392421125223843466747562667238472565021081520406451637237116795133178807469727461865379927014669869752379615617393762246033328764501953064295916087867944327266319316917313041815425197668074907368209285402551332806156307925688549148941415142339715195403723480332210164541311311537237497586486273995455819415224294705893475405024917100390696136342714914570301673916839720516459641168106363575551075140281022316409466534040220910010789332485519889434961439713818009666114704601346150758659163192012084983582035846624136201765084656788825658838414459603101044473974146877633840853586479032448324854079291161748329942878422938912090525008527564268564135439327156919071393959101819325813933266465889037191852427275777428078671343548624012549486712358304499030680817643393298003652457138084234581496704471112756108579856063394566612293122331728695352243777621524378781989703139767511755055271910448075502904676247447085255865723067600661935370296060939152336252571870277835459836055629552445380635255696445832834566901593129405311666724786676471465376303928326076083952346837677642689402719446361262041514082920618535971664055924102898903082360281824154834058162746942660451177240823038446893722318660424275044442107055756343018931687999504528599898767589208756513225665250421627843020109626277235478894757465354688539289587740566274712760091440653648561613518574758025754989637814323688268179650459658624168095419026900721061961136862932595402649035365080431070210003000697982851785644340257302800226581200064409927049535367686843832035339466215410953075593510546961792635566190106627603481140568111665739176262120639548417324459016054558395117015959538848994877068651502993642984327873256744135783104396189765247562605790352422182679523479477621840648487315856069822994043962066223957681384176118724410546081548085334443070019200527780280635702371529172809483015431809924027479715580887309542011379973821336984080069082514977170630097229245649511384640768053194909896278334662824932207986850227107854599212936192352839088306671274727895952587141318235007471826209999960911701362641488614786204222505358990825390684156127060630125913215869715014663018799942457842258520593109126577142029388224778193678191444458975504036309591190443621478930554912909368176484697645497928462596544870942564040429653972943729968819055328005188961357113892526715177988674319494119850146766234532619925223032344899384211933749962700680039729110298364675479977086422393947841177198218560188846526544144759980748847651565898892359969134900209246319839238480476026719490201095813306822411139869136173895417644357627966093448240019027878957374382551157068963881863837051911880666514733710383847778728561064933362545254971887632938510539836617528859498752295569533550915219906470403778331184572743594218440606914371670588244980775978620383160079440058926672416294284776947043656374369542467529335607634008964315978655339969045978060545492928487779494980262240109072160337350627222445415725513869325171923258117131786384850667362983125987026897837793716908963167020666909963445191307654637956283186019342981245865222136691693377062758624120986192849878977637703903903685996159459130329936215732066446097595873381384527229084344216611470850676630940598095102091756849925488228022056776596124668772644555752789232597310491482618511475050102514081440752236763551167811508113074280393884206085417834772188171120494630604054923987106339698001311340318236645235333362904048912216711228038178693931990631821936326852083639685316291076415008837653580222161586989104249438250077138113561303530840948267626639204182695230442256182990276230291331837450869037028118808687179688266178707911263695684633119894454518697002827061169022575566618791445686182112742356294327774858036020293427068475554271328848279598971822814042001641734637111337403797286101699672135665666709098750102227404363117561067180336279112576873362773607633879184750317497792831489887440390994801622110116757846583421618773229490995935686092519266450912206611656564586729410200199612873144221358860138890895821372169476749370316207239933804055647331630135625229353892373977059820675702419279302111522868238519389972213889685677049660232833899898005798732684707478155398430813030459676709645617069096739205721603673262826202600523525372880650017970632799558620483727140967583481373891114951178079460794325376985592860619409841138649819213698960167933728856643411512238120595428516940812723171145141629337784065930503948204384887272801691691529009762077667159773056270899951648466180460903456125631548024159170371530643078350344179785764403304916540775353275041597543516359539366627184338458922570987699608763114165004827404730368334749591513285589870777201500973286534420792084281134027173489116881172250375700299842251815160556948628010488308467367772812107181226152143443825928977385851309672702095163696013492000938873637013398257501173959580275307172510926687296594908794010013692793948723480475474061724701950876689874181058442241339063799441245441235638860643501233970028572509475856567605427815315382716847695102656676203082814363623537683819325287345060892671410472384946442868473876861022145976165933828972321478847354433737013717244082037153355714112604419910212779162398679749898954280276394947829244321372171617348231524982626402711033064136460451186526809797843018067145160054115151176780311206360922670303000602841663950772184564325102599151224675418414681328246929740915788805677102053635620665404591379264453141390468695192610523318568145777814595722042904717220133699310321026625538209367866373980987357747795682389570991327916297843422730568290218242459449881714013005723523488127202134246962408401500726071547966901198914695007544789362391418515205399231008515382732973432118161060768772628471558318864934393034453732371005033930675641200848477022638634820597789417008438499562678502556123699729443568146154448893798325662103016355517135113503386384418191302394967565864169965739870756811962110453933403990024098278905591587674407161892316202662944818364477283715058896746672831820333134178232682877985390121354640253383366546126776249249396454926548524152891963945533782433604315019017675362737582828463249104229394882479226765061679034932355046973455993776538318310355519451722147532661138981513434818437312141704322218118091648512280906107947080706453316487140110468979026207688942727575960560343014626098717799948267613990978010864124195637954876240243477208716517773856081855950063794748466253251353499683369416848764495191552240144609789246268524542033313448947442873907420111787338009901436746377213481703787682857424058282488954852117620732011951979899133413266028333990821455076577828145334941106860456219270637365575940715491423625533632457677639069867382933211960523957490821791382653359430056648457980764617502952602588190187848934206462338676506088208206366093112249581970176367541048234715105298412785433008604383852741120494534273389321535899642516452369215114515460745823678388683368402917490658211460075531034439310607196867090385486175876743765964462594511714360351119198297757325441686653326614330999565369401503392002373673327567968985873774899841763185097060796401717909209665794635866145604615385852839953229448797096800448793856048281247296829191112978619585762049275055622151081489832790977448270229058418926032319408348860867423669812161602144194866936820443759541816353600501199551326826582040618825091214364045457972346285576373451915605882020974224165558705979454591767690974206974417822908817296624053041646232255391555584371959238535074489125641951911254640822084189589919716688676624261934260502021965831992340515118186317795619503585248023539522075755008399824005626281000667744687621594115107667587984266715455004139594480938276019380857051684197994312795852691626745252260040695250229852111557674429950812859243911586721701403251631901506085661665676437672395496305369815269903155106837158351071406301147110457639964782429626310791101072755166696082812862522622959641646448006737046835736375777135014284183353851651140861457792263900547970813718070469017994696165605511161902797829073990850440067867158040422226789015406290436846286422481716039858697757208728621095567592642164601057411567311453747123395118999308252697176334498904145878060038860951597927146002682442225730887452585703860623843879690529408721436750141516256449504307472699194013796276008645488011624823480201604757255425152216182852233109192324726020595001912001278912781945029458269623947631493129350857055781784590024254474460963051611299095668149877077015530987610336899204588519461836529500926842214802228970676982507622148951641529253249036805355225873159924281953490012025131161867319112196482515625051540865517077933564414309726484162272268271104112629795344445449970221716577236829394239038155274211929468850527355294027314844185367639269847193660886686543312691756156755820918379546515770826586193666198681639132655926568825514435128812544015250762548857969495846040265524183505802092518164224531723360999508211600696652426164311407267040813921915794304914101394604376739046937199014685854559444464613998337303182656968502873815049546317511847896131554097493380982255408974629155487588596976634248752036893734608078913793899977423615591719304672544635003555108816287910328421988010965017038971184691260985586078287748463899938074302021755050194579724639122618746650597762245630058135343419263625528495285015082193844341431302879838690162761448426385905109339214509651757066482996544622673041663742186431637577857529966301073805917488654738936791058014799644942445335549069019177194843169306125341360404549357986139046363502303828858510032740543942093664605623156130781006353773989023163578926079276736374204278254547287498406227697035560150566208346562802588734737625291077577337599891731748667316616313512062215776675471657593475619948776062135967859736729466999505361104471637489897601450085511532847180493841209308103193487324451905785029922946644050070537734706133314302954143264233932156500253155392483659641137720328282849051621232853220379810318508695497316164942637826963714855680056850972415599733009451105413632584021947735490490293915746357450855483203151209913494637732276599466326618075570724585058837504486693930489943275829234145677497288521336306183151800847086224890481205332335064437026105671050225157487912694977256802521867391793196346308151239126444574486052619953544767063544642936610194809285139859576787489750959651706516698855116871089547940092051479330197535932156281273610795740673258398701455283014091253702251890718812230274939385281910678765218083108907974268044788304514367239539341710103038139821352347611543057053928374260286146728913150373748614857357199404105807806176218882153261583447824700733463329761248534610876988735811833627924121947175902917037986633231051218898987991444909260549387554262301027096867379540055914190053779175071751296504776403955859734653461341600743283895899860456469263130206722620102750684093670924623742335831229297236698658402541111018150840891815370055884455998545353843024466933491251855191319124864283111766320235608545305000553975976948768135570204205486875878297177856996616567713496892319929898528967569745642005751151943763108964303414122267146784970868538429065093554836040400335855071625760034987732933379022624903228895299708523383750769020425101778416276136334365568986266280972522684266078729590915228028002320100395477773352677048323432793162902019649585477212195104800428107799030629713251712525059053020447394505011968639700243064563009096257495476167028112996329133337884912801279582914134119484615164227866418549491833868124039557080189625084044984299264827930540849546059673707449065098687281989122517005178533350300302959546164378948590638530081087483683222365262169532194899831708808958913480453278615194487926973980846258716690021679220173019826248027834947470372323379812593495563570735899063139422742666655059391185872517436663207154759834464283327530451408267018684965350635296901820383417356173823382679658316383727979895517589619312244585923319507531770104090478893155364309345914758371869531310402104972932314598594255529470130745494844219972459319441697041308929210561363886493267350444543095563187914812194469741347075068230614174480744651851417405457699294929860119579231908806257071250351799697584044052380047059471587573064615102512349772829076110400209653123474356357045062666648483804924720501285495677966858383499870400645207307199306561431996053489073720647175964183373485287984867830463165209022493152863010434499149108654572290274854637387054494637953769275419926503185345387151941466545037387903161458005794706628329382588255747527148572080610839897466502563361248528023846065225303437575071282823233241200141429351899438195458893112001164039496507017356627013534288689404943342433571468259462126508492945496068789937803476992292463736000331260555161274194430095286946679352246983701455560932130066263137693980753372928740569037710232976837454528200590713567632626149812284272551855022198888999492953383476189526039458083067882389762320218446962092168307979731146218137114512000759698021905244487127270990177215949131416409035456003397672066634979719187950361877027308235741249914118872884566776347148966547266724414073675946136860664873060614095358806773675253351137899010412948298798882705293824614295595512650948073567602078398059945230516762651088590220188585739758266077769408981452876912364705527914990440742438011235017110224308174560461952878914609173845216859944903068183227196846791782858170022230064901607663356661540239247253772155827411800731309839552797212291263122754991744462564886686910848849968084185624893029201545821581906514806546789236213160216450114427018674641647473448719140356400971450384612031940510276612755723668143636865920433576211809066274141454223714126059304518338486473238694052815407633498714924223668246484492774433728470685100951737783790780026619392274762207727208880189344342302634638627379512890454323770229790966114082739552197012261799634900955743746643408842741385328905267719224296395974402765539564556910298353543748202536882779567533124906111040650010586286062341324239871155743593152450431019561750952467754307850714525659079035700001123163687586902724263914608986826981574632963314429685603397018578656111254659125822413121076187612194545821633235473366639043318803306731909916848338945557353225007110896954638743480963516849099825588519690229786525650420114266557509913066586142363253507776370796695001672589046885110316382151885190288590214781962017884744540903287071321846249350743254917550864997598108986037883224334612370722758790060233095286338345237889116872271127582761994391119415587563814122126436882512780069931929263131156445072411429882498839421719741036517656096611600794624796635170168305223079462107843924213192460659521443491613831999080401730911950767449290441386442056840508817326552551678899981912416960445423956866989299324473974457991799342959508335533111116855441454993445640027433026557683877040416291253043790267243342414563595275680595731836778027177609356350400191801350454839241834454520993035602088101874836518721396129135367615630949082434841625695440989647972801607420003187194519182305364266524903295548549736467868510464117528786584301358044862935169876942267064765605808776772675860948408441644319554568355544428683027027319933020829643987843541963060992182427492802038130168352929804516980945474319551361021937171843672181707134021099341692005691238485704105129008144775343255234918367157127206512118661679059906006146898032576907783796194802935440380671367530064744649113641016239627163811330238379154398785379793080739198227275518326887614371573926410505186040088495738105861482946865125083302512598802999987972369716017478719248215317661609699679916323651288473155011575329448569538197853596222439541979475266249984614525725091653284547726300924260519119258755998895395383190846694272327490957423601276161470227090272371690862846108893513520048763150330971525657255519164242781138126564054171563736045814029886138099897496555175552834274662478037340889726728268780538164188958641606177227298552722663707187743752486630420897184117857293564605371224064237718835706727739652021290491397057923535756233249084925921380612930637106871643749429854439738497606563408770592837891329826522246187453627391807488683656001657083517756788553972482755451145977741241773834289735304777600182318769989277103178854066912136768826180119559865486256262725964847137515625588023107356649625552175924276082035831994490110544704571976015058997830754138924409573581863644201205207079571042270613630151677061464969708748780053883293268205494802492601169496696947585811350332831572342122008093029855857819929814841086374956122334241710271276834180967458806313328641600994946702432424171277872986911959899826772083330671537007504556181839990125306969500181914372554361103567531687508182134998463387002870185373778861312225246830371793739962166127643772487961195799920548939030742030698235465866262458599640142733811407529542737872600373460458186985815375440727170421410661814665037772705967335684446735222005513740764531243744441524747925373877939570180581346249211134343506425752205270211701995502936384290183519186013074435766807567182490559415308995973567682258415939088512180710606973823506130143363913844220014507369218434565334329422422817524656964963868356494728762081042864680457315520656547561493770466118497112484845386550386134662616548679423941277270951144514448051485166496738131626854812590573045948451410343667149824181483225167462996986984195557526982545747362656356738676106378677311747982791974864353308274055548216399043568473053421432504140803433288660452098403359583396707163027193994054829274698890889891989567259348364021868381749921163262569753963897310600969497783772671460657644184110865609618838077747073394832001829432332084841106299042131189090588750348617442129705425827752817335989278398288385154904342828977625090007302491218243010428310549909326530084218840164281524698117678203661078874765109013211453666174668923526873496798912942856083913129740747292082386098538706795207033137492310822555820955916496544387303981113314063451008804754326051677721731599344097555497667811861172862001193804421539988043409284230633434402607562228093873412980709450633515499509072717347593802136683041927816735598282984436926821328142941818187396738794227458276221522064648425038541142640621918742846825555029395878936117982700279760954802739719189305793667795037070155397910049061949505133109898627577231346992747430539461687000557678538452260460624028541085869746658234230824254472761707483329472079462288936759430271930518180970793717751438417271682889648567937580727493484564605752937223196438005253013812111228424287880039148827700553896408695214105649314696022809620040120206478629397098862136689061431231445394349617867116808296829821118684732085191308478107812835990319256873570324883738152974977597311452431696983602912665231591667831350947916088183337372469705592235162359707345527649335995752282286225505339830276858176790035782077510539570487724075110226544393868754788706399943531657643980743650767811616048250987492232196891791399020779041791160350124868714901974937340214532994818588635889608832188085615400249991337332071727712582048190306800588083525147151761243040478192198431131524995328847585397407437745134822411725230877282298476428994544570905679011921729277715061722852313314659199211627374875875754856486995747658338765976063680271784731848258335673947317081160026352098812467604450459697579818314320629164217181243724697548963922026022962688045827829241920929148291321874674743132443321978386039017999369261678836723291227449221422356530058961024721967808679992198593012700209370264626537611250680904041535690542211752436135596386333571002497668075988831501467650780698767545727506757466117248027447853193330162892052689022412215124774034271772500571027469132213701608427150641265585448611017653898982626638717306560882363012154446924790032028950288366013283558902889808319019649077618069683041122217580666054233784112563904352645290250069387573009926017504916635356483886119864581110696965377507983987868489348692703585795656704659383543816401540309879129483221144553886649659404759286867013382347318785469041965340857973161297248946487816091580412007879355471904293493176743129912669311862144813122718867943011485793076704040509822741008609178580674170172459016482705933824223799640122893189794509007840784034027779863770457414788236913602672493644971414096591017544331662428314434427033654858420864997946922681009364040807652880378249810836432478524842127091174531478517220937610187439938451929326032422401715920825217670514342667801241619757121202453524111898025548101613847413250362791760378989880077586027974025750242674122262317173713950207812378692613342193694101231805801133861881606776726168797519856917039850093243736642994857476365065692698326847938772617897498125966820346414273891799706343880579591301894209386020390529352213089627925471576254028263906093919120668658158982071804924939720280057295975693345456640298541983454827475817303251826068441614399003970681643032342359525692500126890608589805438375367328353435763487697496231322122825150325798870913792112511155154465255966591381776095444832389586392156810265453180770946094579289399379370329619916352392238305214620391099393542459409421705743230071973431179620161402630447607946620100612117147986571607189350135298789860837489750037408782008777854223364552083668146045846059082238652733565069356020234504502263699784054803772890303022236566126613675591581124563063918688725834630042340354590500121585227717029588081438613283192887924356989955913664663125983541011426333742166248730234317733791155885038939634534153560337443844799232388174667193879059590825541407879884451608422087560241434851554097899975803892142625699019117133552929731094414254247769172918086048438643511861318392682931379014391722383603293420937669671779760995485011165817743137428492563438725884629493921463226541304785468969948591581792784604331976622395068217893272903930880111811254659754177601948699375409220962112683439673284879132658386302886293595720364881968714893370937433804181624010098772285255408808570552277242382251903649979839898128214089900727969604865513277329003540480959433685132826303409300535935433987141231217562746299298470239058310195143342813918368856412299239759549419360142117665810533831518157832950058726350864452551523716104974019612800725305866328072298492495626313075066248979531556757715782857234845099610204625851984597907334023623629089113409514547707168801442620322081882913314897353967281871722575218121723755951322288730064261506745924900626443699450817040943753777460551277227475233187813308350729954695708203750646442020232724717076322765968168058209686698955879202077401002385331340740278860641940690096519390328752647016494222203596132266131421449050087566018520023196524854262988568387436286414750995554933533928693994737942674796141179940717665834414391626673444143754357228083450749107440134216150260050191663681580154468292282043757236082565668123192563664587278468377727930651330761254166101222451309454843130120625539082062584415978707408051142595330766342817316167793355749793583022490072412997969516885655874458275296393840082506502121118499662323389160079841970369808691345539924429277405114672737657119602788254463487932447291580943831418759135955691578301629456368663688771622633704790226160578383608249081387786993864220460163440987303962662925183623038026885518228452632638801684166613750231819581223332442641010968169138113296948203030985762837132899320277839955503255881170546230864458737207608609477812091503782523686045273708393480057562833768801535669775709781935223457832632983928415166830611474090499282015133286116963361459026255652094329446666999564812866507428472076211900427716768184072017088211541496784660716632167174571738347389442983911791509602188945173099958283717970841010204075115387591570540607304153534091634227673935447091206578851676737529874425161805791017796234119396365096180622356504013103253250993270786143884300373088960687088026754078991777582750500254787986638458406589211597288556073523730330007037603119974296105874697726376030127064292714286224978334745365304968927496538999392884786410241328227948213501248544516645558169670786862182506693176299626739983749718050248137612812445544030058500814527443374597358167532598099971521334456035116672817251281841108898597168046666866074228979605708310334875921797606878741289031369387465683937362863792723723464431747880244170728823838235425414201356553858116129763434493966992429316635481114258610206045558735850362518012122228542521461615925266922429522348878704282480606762004984922740438887583130219967825656693626862256141310881578927535790530583785588356921551532166859642332972238983825599616088827783119905444191843942263946878855444120318775029796185690209382670680898288615449701723236152467075029400595963071311577873209840964085679587353320110111489040906453099707311265102934434404544230782195006065359395632525962246745987062307647438561218438951239470263451393959532396026966052819583616326951725210924926478971644422196801199678321836612536676276800735831682317566988048849974188992736544701193735676330302372871120407979322989984863840217099864216207822616280054448060954973847621877543278104537888763137645090326571135886598385275718704626018552873302631195255193550857899833158504942581002805856683322189074220932873891041027496450226608089949264808881951995718917596406849939875095822030082178917486757938638942411618512160417772568229348651032910277291116664814120745076426477866915376671416817400381432818143984835462962132686771839087715936577373366393780241576816931385229630458434194370491474330576008830175023532836552397591053321524281784984118259285105197871852741733020600828340939739529153602027753909469124107626442044687243162991609199403209770336521515071565741257454082852555211333817763976838060621843279018298919804606951589430227965254667059738588955562052731470897014049741224575933778987168304631203496912580856611503147051619369152498390904672790203247609290439745084832060982383473180714327012981508008463458344895552654485551977592190726343579196602941115279702795043305064946949422015234278791663538035961169621247552216168658552792720559995388954265632136832086675689799066755928252668514219485336697352172092733103201748923902212105439129921523855304534106590855631368893694738356374704493197171284952898630677263865617060118687820309860488904315156229897282323279512393775421250293759630968702327813324204172026697389017903174321233200926244755551343361808326994266360117068979857930095906572195907270013465355751909353691623241967086386761613586818472393588767167822056782202023636533230462568190854758891980266437783157427449967406291551820348358690446954778020867996912499520516818779872898554288821432522197934144943662160887112237762638709173708174953530854276193363650325384244278792589455653598108270827426166957384065490522601248104535719349478586677933208589674947932143068572716560244270718131933386244211740338970683364737711460377654785986557410899209379273112920811688422461644024223484627811069952867805326105367754717694748214169318662726053096618097762808538304617139808858367877338394654238724671877216675418122594922430106328965996943635903929017000168320928587511496631329599226044993663598991013339657196495558521184118826573882122414687853205713199321997349068193372981361144395037361321020707355957802966908653945151738065976005939851725910519606458475077637273750379755875504803610166432961472026113861601784049760772012314935575626627303026736788563292118822802819565376561698711811530723853434619086025716754522507423908939081878257802048388311011725643864441772788168733864741807632163072886032943811165418611833960570586250927411041342347712693945820960710450890043724440095252727652480249264746822609351890518515287189454506147346907977104627801380258858548759197095566156859920203698936577637667237610362563857741518921412402581463698476178618252148367411493018986510410465954934954828351207846311178352869458470618163810529607010503912066435111098923749363338065931964357548382460382211720578932921021673741829227387400367310810596015155605773585229273224757481361246698506274913766650420023126863459596949027315545716096886379219737657160338689797328513854557198262255185396324572221327310664982157007956887489151511963972193380413210618029183632209918291037610351079919801380938129948339344545730720898515365650506523844539563065913497533781926479133408370699467979760406482290559899666227370980102821807616052681737343208008732274608702044001327265073213783899005291918528743025930388306071635565116836776810010222060200864296878973549024426889977989236290126894776810936993359966340388387027222326656178593026793709055917893382701673275685058677777551801101575207225712807256278296271070562820451478727945589095718965076701576092816849635404008342003985792630191183359333106677743327156901061624690024726695130786196382294663018554384883062336278620719788109125744461487557681016898701979610487697233432648160725959195120892711607496344955091996379897333482862350160281009859018583007947737936552111409920579444602766109922208141326395487610302577702828945389529975027210310492835820047883454981393015086662072446533686290040456543139979340642703978567821740672258280522948687887597960561129241910638401614058781702045200226105780496519559047681539877435092263321185602570023075287302152674142939872628459617908428433824313896617670374121270191221127855930883161978985902644820608573901738043703378889027620216855171947940116878834139397310835017886427214188260947870633555500851261917547257965778611874644211260055183838358150565146876850534399527733613464114904983738907157031736344697982337932243142043150897707484132844450005976604307742919083217910958603713100309944277124449332838297169452364543965839870839637511521769147710807742049145836515683812602617410137317853144493785060123177991336248417324441082412232366212967411484418012964077904877254217672397265355911511292116826789842410257974437827101928128818607910718784599079594787645348059318732569441181484004255962796221733182922201630582878775436990825899075718514888281743905256573052252414950924457071682454219207781035580437725781002837287113365501099169025467392135463041824963560291944506324641989481198084919067061084993851309442602450294500019242781419792579752971019524813669252057293209652872845964659769458664394735055083929597673943242511562961033048887071133593976207922708982944647284549935566187079318579814047403940600612935508039693707016817848114413901457067197112925158030595701043938137726639274855659682560420196871899011493799437824932080199624880140518869725072085889689273255450901360195264769804361351539505567024590302475702501446770539897315870736788762231689466383409644469740584341200740167060027817980956160789434973077403150156144295229648615003254534025141595823082346186016507623739945087614259838439650916086267852003517420238653969659114293720468383841206467457955713274331946665462740564643494324851128528326452573418756525446257473224465740306691682254884855592783162760690644021586534324400185845669708321222492169387729014989229502923279223369483211316598513272830965541837925176683126123585904367878931148353250949924466235548678260171401858909843272215765077713612117251937584182913965729923841377551966041206470395960971652868036773791733854835800606967276770574434081082324060334087516511607200968871397017674787887840697272282677541915911985347829807766372008517766974417589676318215745274881939311577445941241124613347802768291750536701337548629200954305205659428918456501172984480582492868093356993796989107790102909631842803325386844743909216777753639496824167096264576719219725206307620016868263426410639645248427388143907798271756362431173943497165994872832213339814638522010058296090778037926853703719987603933289375607941476097302768464531253778053597316256348967341824887318896087721298374653953136411799196792543093545671457920246505206124798439367283017182711445086756743708131173352940511575212568753281804928131150774567510313744510549267884506272175525535578994069319429490806082159706535035222863148946389232364093756458985336654460201048640117515433139522745022825016633116911928154823199315300061171103038379116618938879975628769621129717760095575885144838725920280639609233705550119161903734167881851091717379123577361538909760578815048456939366341107682204778634098171112831253978539894555823930143596910674619712249672115089274752349081216383330250016123586817636239872493895843826972493618691844464810828171702893222240208346106398212430062031752910631085887097456550198825473624968360729570430489558244117587320415249901155496560623133875712058868790678047153094682968354802535685669691579741131000654366963111337184787785819321123518036411962381537947137454578207818242334212931569543883801701225345492015765759109333903103256273889723035496622501192914380162156678649067722546434877845224605087331567108620073533979430334151100687355865787627655297185712076649958930227827290696466267941731041367706832093672790924703553043595158971007107442002481804452833950260985045200572947933720071017874191454424878949598436942281392192356842824911180624635021288738796300905836313183433975904694261584067081488398470040011319971249617682626903599070412981340455873866933564832230569783348612867283317654303645956597950747931493928855480711819428197674638779970574314357522124818714858582675547440182586298358448512290433327030332909200659429197787890027560039955506327259958351130425370750671770847377446642834539518382883838451507708436707756777444455225263921478002388404921051088709608433174544989740459255387851099656207796091696930123378012701235315193430473188801380823281923868272452853103583306109352903584669731902983006099471871674247064692686882557291920079667158566012701344571028505362863458591634493969292270741492031711298192438768023545915207835213316863699351510957370736749893252567202170691587447782040860613146619340691501613167217639677914910508727212870907554687695393371623746906538035976695520986941715641194406888844903867643708711905778390216631698760178329364978601285169940005946563547678857668267423797808400593777897070435873745531177535916247546210222589998913520583438960336655181439343301855270858174039842922854252025821226277902820548393153991605660873386522691636488706120080238615904548194125008647922579089791273951290748376736605839071610157066543952890450665315715148448029447808857786108739184483841318837036046057256970970879551897381646415132560943610169720674126078892050509520442953122799912400069489782138369155930443704648229406969604658594998209708152100844998819472947618440574065002855542581532467517750224021717715890313741143524896462914670682895950908780700659952875618152484105717969640872714821721639075753361309992541465295380989785792555848201574077051537407486116407424620732669435404805434148403193336205474707114332253999869576453438997317322634443869023673269763182820396985758784551643122163916823331615834542911076122868559378572050456430266879387743551854167639222551518895366679260794006048254789292922723940762888793999700450858906087194020029886739364972881142902971157568102226962806985226305829191771732787514481602799490515556903944680456287957721716603845473133148356388181008882345920616011445701364489363276873951964924366157301904512999569817808994050496793853723316030327686381759226999904944379616958288378103430085252261847922643323655806349747594542330063721575091419613515799875310160957814646519009878441418558710889551244182579055445465689757142432344692561040959593958737116693368140147954915837977672916504375960347502150038544633779676778422745495929968449594366821302587574784368739429534068881960698040842807328901981849226936452396266922742120425785178312250575014221151874822568428149864230368089054313401003470295099976202886680908399955684897239757586196482327680853750458961513562537639334071537724535221706856294101674641981909186495998387634599867560233359386849290124903072099107352317309936801179350965868597988983913222889466982926755012313718942094142211678734354085218337754681347017529653722485578843847039311049696187193577398359723346691499200716330878650939051600708987643013354145788565963414921668235840251132412962298572179886062663528762544798947848787277351128458065401200382682262000640305519900121720350844031667821496205216171295356566562235956977784135975335914504180926556963370723390467163319723174219814691019677193254261635330746619752977602453014735367393187851328032841184342593626756779438443232125109244036731310099222193412711804540045024372432214907012693904980331506550552764351775043115732871079757612872509448332159824398845874828525502488825388565039983122005282738398243006379925432387546492760306122859851811572630542105837002074081170592557226273181357618028012410381244171125311835900996559151212965300493369507190122742745477387248313698257286324793284488864502264224359486008800818259070879711250543162697320819800161045325589149494498132081833022400305501626563224053361367794793777235149787155365164488334328989601689810589534282296799699214059427176607000119496585871810869194639285973271046752252847395538578225078958239304182654618153432145560348317816738207674054038607252906705380206265008436954811199805049919545714873951485532024052548549582742883201692130379100659805300585801372157084388158214692298682943484387806245453316888062922088954524038585683601009799175392263723196290096399164011713763384720352153713934735086317141189899970512502969910475714161918993181050000737054539919139279310495805354928671996715946297982397247299884754243449908611159825764180126300972593407505450924211188272728599115039304335034013733841141326774144682016600297225303319591796920991969835421413510642606426390031487922663854749155757485102586082581505484301085598699179110805966405753928396694012898386087095205263246657896567954599799679456257522855741650554036804837216913710835563875393675432429983378330196089629459125935866780861781221285789261742310094386074340195550324929826744467936993183024266089585103216693836951130435632433689315017178965058148955496503767782450740830106047434208455543022026565334489057266072831498631570343454773380480242081903443084219479908543492469522590347194238637280981102641514784764403489030527924991756583112329897822844153263166280360718761240775655134912480641411425079084161580243777767677994687376893670152232204410428262568773750971519632315717493016901987840541984650461025016447267422506827740987125759219348615760462575394387813011377189522702443868640843916260458812014055505138821432736324273437390665514975040431700690300829741315024541548012283054757868461037657646420742084579981990391611438687687171225773028608127890205314493894284350897201059384404210443682817335673247052467455743951241841020747755537765383855462479356845156756464009880751595679943503954493760130390877330093978669751566506819596545526933944092141286322592410641469536296759768630755344109326260057678656959757614620511529966677530003145541081427930444685377437982063622559036230832531050487983768473743899092412082929912150554484024005649538020913932906097568584604841405651297300175269590555959550473037117269063301702622218562781874567632362093742638767653634407162327854420996237524267480171732928782495327962526365587145065834101185177227098619457290925937782458459597730262318417657511527887748127078454150454102538366523168522762805548347076615279977774635380228464931835004485012736804379497820185518765691355759701790894013245956312374603234909313257165838637245111970374772352298916169119263182784147969861166339000461726310143619637863929602545925389835963908372064765599686839521257463253346128558585677867666881811691099071986523512234487345779764154693365597155125435814842842915673320140835394445524158691439101961563892128507786998280953782478990866177997961079419096499578079430810276200024106402431073332128269652518105489444817110006436300870658842720990658786822452590317285428009222028717815301016377426999619179520086606524744306657157034237903564043209968583253229475340894297701468997441305802218826067553373845357322860878856226463418384577677926536607330710278605143710436716724175661827995977798621903413520481501092632921346829467501627328973131504066413671172412950012987212625754974834469063208967640931458108629150773618194471871166012371823977592657485839969642183559455378899042302578828331862596224099977601918739346792365332231054409451731981767980240577404456778728187686518458475596507517915897001611313014114428943639844165021900292868067174499740514754568207574260475500915481162107202896509859631939399268596148693453858540458940181355326163450982253832164626834000102446167410524582584320968116593314036150833106507851840342808375943130699102911465193801262645078857366147460831710787868535406513238748408324317116741437025183134589414396498219574583008739560190683752306825166585874546707236889802787396229223417350764997158240630883690658943817984885103463998411474149742607786818803530028084591529666405532488462892454751432178945404792381043728836472947520273014473790517621417523989135371581334471138679912776741106560402552596774746568345504887614566837377796730304684362777405550968414500033617901934878992608302006763550201747106555370586182645097878176815966386476020671598005065325109085718778654403602478630264829441966544614498612634062715436406835932938035946957205589957256970262222062000011268320317860869306553560216018536677330033510374126588745402753168363111488296169857066739381414509519489097186243081308806190948150010854412747672079423488747611115374559603242465860240648978050845599896919446335019029157086306676043468536396377423720216519987625986427668804605061877857704216857047539494282723210536772156602008223735190281856568789650067205109089891944318236504609477801104892770216741524116812366554848751291386734878586898344539716169471122244004327903067490958529261738457230211708338072845693515725791380836641392000372956918932507168650082440945227390136540388189559621727305810126423541819051189286304100044692263011832895559878892171355315402235792826100573949827373057792199865190135834044209382688257021580173927474445625827507417018060358629289876382572264965344959953050080818604355312403487534286065637846856342032199850421231836193248166651807051638995706835704511930244172854602608908862596044690581670398732208576758066007178752086428253602250759799793877944973746494259317044150397459805083638592148050930669579975660464775119519034434708258766531151511280139617071521723066668521382111378136423269155019582275970040865818195455793109087196525431103586580185915936395285183565219552541256566598977194132419243701736537448997051831247112218095723935001749765518005454027286793834327818019744486204577548973787212554293799164267617936679378897284246374178965220753517314167655993062195099135863610996068679906953534794959007599929037682771739073421606759381652227833211337617614911390099044424094425421219983768265396730064649963265965023144637795710902305988494876243808950375849974245982683720936361201670084926403159567284248532177569433432722228476818001931030789726748539665278170243104366553709449824591957990926201322549041539296529780609216597961463054377813651564953404965843898913125885566028990120012362390791810898040848838460920776852967870940958430225312599160761360441767507044403589750444147100836843704651235888651842516403259791923156084396594366310877711060890219143866441218599176527144640872204782108393784867601304320663212254120893378979378811655006514051503119509137900092851840573269501852215232829501989036882162955824074641553134597681778298130257234868053853220053206783151904411462768790746163266155872723392414906565383396596639743211967704509595717115279229747326619878655596752974029205866979677479036922746723261463750751596564603871792103533718597713831142735703950397350158122381830383067543192888501782416313447319496531483215360262524238347308118106629854448575936813116154553151448209099420501977463857582551281294552718331442905788707521581688095780591706647275532681960250679751727711687123930685315638373267041048030876921115203523217404675333995636811829063352983778014314629286534226657049615501296097213640652521861669831270350619115212535255015592831890266072900355576800699757163459725953279670940759008800628548187785604958111350406779891868904740299133086089458658596860630432501151710715522736452258164220731791832671104252702957987074700674596278946978944861970153326459413911658840378267626668901693655595764521640311707693718240146278951362231408563429576160694030529789789340722863741770510152098832674157803149342712785542964484037147913872461007753296081142473081256126769476669040576295083791161535342807395378576933410712096670370918156608861582580068474788938422071701858672426554812113063444525185992688425172577020039995502359433075357720268725656591796643974148055167648119186277944109898450501754228456526916691988212948184257299940517624005742432716102060769706573395669461152940846954500745658837024670994590183533068057813729577936919577454426498679570849527950167481188518583363966663549290964535606320789837619259163780856217725017368808562387159718135662099731980477010184369480978463619470369383463772461556716805330586204983383466052443116074499533400411481112373029764472391106746288216153882069205507077443924698272440644521487119392351203522681485633221147080863512053372206547031682936670225431741519647773983312596781836540259076623288157651351591490878968034625671572466166236384248109547389687410144099443266013472946367548514534440294573993933120387599908461165953508934088662215813442480996611987848172152793234204563979012022164372305390323446750946110846624664074394926566458484194338376909368687329567674370101968059036015697211227399634882406275833158724489400780902469521252483073246889116853844768477464136896502378705408131923535543304050046843123295190582977442522848549997180454120910836402582136011598728660637956679089386981828176911115315684301109644608189350663447725497352339871837136262378407983409169093365749455109298115077454437002536938476748510617423055822564107456103314764740083408040158514502579803039391349060314139355196591016950210659213216624612266104092035426619911267801855443238222108145913873767430388508924939628419179098332912176805438030149223241184598995203834045443089995712535747047416480638491401840754719117340591017077359260574867294581063001176114153121399175030866620774140484051346055745302686799082887672717135570792593916072572960667114206418951408525184695747312257339567027542643630789776224713130070993285022336661562032643780867854580514598589550249447589786362016887219992672420206535227442764743693231141829588057214807405420625331027100059039268671395182116020477943281269826018730046310014700828822348687812225985904845355833101732144333098560181307552087097028894644857102255083800399514373171258549325173488094855000904159473433831387605425584196699720474006039068933091347142229175981878467480162250445851026303728941815819861130220119406933593823724581516963997472948557257805238259668171659127436459355359545589405206427151981138729766283890506299817542202489556156110209264337044658882119589832593334039834914071054312292195628956533894962220102634056994665253084870670886146932278136632752838090530195740591673801694693050625204778800021421721196420935508176348221283988606555797457894133485852954902856837622734432346936418993127346094733800197639950460975671874363153980356281340367902130317044570702954035323661089870003329137986765349495022583782014570277069180552664729092373559970147579146624017211635492701256212235484048308943972758469726801654248540797015558980775665688339461731722879321265396714279504877559941423162676915783599673664605426616049502093969929146109142734722694089410081547931901102532510084523549651538280630948615567431182026465203488915445283766777463655676281747700395008655486526507858848618884393447142353072148469032343660686413564076363025911439143317238652088270951721822786463341651522426388760477969905686450762986560525244605597170439849445439138404501789473830231625088050535599647557587320262107747250709707241580498993245219788632349352434544523124442087954697588135696981997453473734084575810754076483575084084293902555447547615227371157177609054811257894150833902750220912469743856202754276995219637093347732185445804101338507864853820227908349029874002108860081748318423497766469351025670889089362131261867222483390717812614586634470894703835448588878152349534004145325796238066824427979391878223796177885517292759281979856164646761298429847892347402465766472814478904685998029402089658934805202551509765629907666306447933551300275019007664499904070285692393967716533665128622653641842320824008433923278857966698827349879800069893849314195299601956845925926563857708411236797879425646734130980664353712818241433177678161579620120814462296186966353339742628270626763973262517988038393242819445153871937732531929884664633673127024359239257313808676406499792083227280823754226476307122605627190971262442374176234654539846055696807413774394474887607578491017036664943259571131336547662332409508834927804129198001339684735045953542117750850347314703143057440800288630874377799569824909459739304332806487749486857406465547902523586908250540773568569750166178978345924203970150273806880675004084496553347691831225640768117383281719161346440374021498690983886758611665030818669764010379500213379654016569574863590367523602693757260276583375473334991685493676062560293281138569089380665359494942182824405859587787885073242541554379478252669516574521294798411266617555621250839855544569550622560060931828027166366131197069724582524364358772574968516961791946801455757508543860406106850243708879879628189003383369282711429924853452775820673108912312582670653726770068682149907756710920986861297355598019408175738530989765626360776482835918477264388409498104441047566237467329119525125212034794531937506527691631775061767876682716223708812116502313151192959218624188861573607997806816046354132886522733943314605355550519288975830307087134546293885542348046874217774901592344338616375926733808041316852110906157189336461723695840504166813978118641150609852984105572692961947615970946176058199904761620620813866367722014691470673680819676449328185483745828811981057451699095110283077951394600292943511949869265453148798633615919217560295905572291946582213978641364808919349496223181934509968823874171618890560615399877523952413171612177607894282284021252562956750424903278360936285875978030158370032863398142272622174057056461318317990062346874892896842935189356769050811470422856691022176420490906870520128416223069936037682237906628854404923353232641315002553575133580611774866285610302245363234959493668548432008389119137387280170629282115342755672222069738651266657417509086846579467373270670417203761244216179543860814334433334168591100014377588766582397523631780937400374252204432106392549639491847424901445290687644353087692842926711200805354057270048810240963272179848358771604719213017797639675835995060937938458409234072569965503786097146353744749020496749290604866419019977100950859020173103744318815939045248479547958314785962837711254559513471219371560376272519439061837216801419232307376039821032673018936700972457084619104631295021544062794549840705679866803827265484949624312387771787515514973606072665165404836445214531505204478904228267167090624363368127836647475142741882008195820896746705584978719136521344598281200190552008992085106404684575514630043411894756096402667729475617593336318988511263156807564701570524382901769330444933228058418698311891341084015986885797757201396778232663261343761066230127533610230468810347041133900304772456638438331681037059123775485755579669054825580044040065316220444807264846614016972151937573154399160207420388796743513271515814124641893615569356350106958308067072252078821166502093512235645100142653871158948564296350592873667103548029425101117961477998661983247437735914137119012888523180817181892606222739545427765932089528570817443669650016183585633495286471076876637234774767471527785816545066282612388414305772107809142569415607354941337605610932456103481236710871481060307940396484838859858248424487689104628413545504906619151536083413831077557938704812209936429385283574431270544368084618172521679155691322027824508340393153836351415466609771108198774144094647579450387059423057325094033963009412634623376811858952958685799940699003411107079788920912959741339961697841800936822822765112438007692983050578515498821957840853362857765789093191281215422092876281784071903227364234798596826681938504747191989564840447615051630038355562103680997348081143605341328807464893215992802538794949223972584845011308003096755714976622776515982766498178273724210812961411300027739730434592430942413971301026980931325767600960699997110369732032201243216211750520334586887821304819512777676661191431179023384022687975430003426225001537215297277898447962537971890324820736072958250552572783576715333412334021106381370405634308381200741317222213488258372685042669410177023535936708183055146263367550140099770773872209366134474570990144389436841128418754591138771234672460499399141008603158061482415816994080851857645249755838226533350981614875428327961304888137300123185493483934477603743547429285325528047878746648347692883053075092471438155232327618778276700274866953694805815933275388512691605894200198613564374369931170486359718220594577484741550178084292877301648420731074141291508175420147065776309735802986219882710651810431469985064733823312877435396930320160686387652214444073934896688944438687521024319561405961731829935809484896381361696972265044381684393040096160422226135249187121146302076807015783795405282922199214808925284167645476034567308969135033841674953840584897564605871979492236759330878474031393871871921431310930785814504877393630010868432324907333834215797599211907031576596283212761565707829908877605881386495891449775771648398777109306975607488845743804029307793494888360735265109623436799263990767566732112395411156535703444474944623893465594742208961436586950861064659784630371165032009999251462683584020348095608741441865326699924099027181758247854206612411668950474245025528727186265452166200366291155812028061930150000021018014734497775706345163272089038143082153864188835995079161555954099918716746538495665175870110965132405592890657673360510475478203855213729913576212137989122012886350492460720366321276619682449145499407692255929150506646239589813095672681698701517726835098002085370439405517120051001400059438446575884524180309317986681372355842395513263280461828026928941251160845364916790684806097271492665247518358613997938840422201670689608339832617960557723040620153751455283663057793275699419967605574480683344469144720360644131059536733600363319137747735361778536633985335803812297729100121314162802039948311345082134364079854448655740200327245726536442501263355182173474480969213019838660794470928040350280510735153227509654711079990168573151798530842535464209442146065802420622942872580105679069937425124601248493168781689478044431168398665941457546374596470730954036231205959964402496751085476381249615596928654352964498990429705547680329320163208509845720775721680045056250823663834056289246939255070078813825851710143725517532565870709525669208671568829641289647747553382932522466217241199554087194079077825443638221834590080013906585756703439065819973285560710908860189533912426461168831996535371932135768914322433922176263406367175986322641893448108407168272292941774812185364607537176578465035153720581439218796691474855633810664559024623506034252959015833507637797565990420361979815504632879185405355293918305331329425991862018173021460179190908534429129073258476985431246849508909632116805772469713837863511392274028914536305669690687008767793429911852826010140186448624289515022464720931659917199867771345059767100384099510112623259166055845882893246988086077977849357713569257140087434589833472196680560982007997385075800555983093669769110849415620093539859431011324455347621744393556159732355281848115545367252463898685958825635067884129984568151533099117427815787629457766577230119572095761666992112160856215835555135916306429942718222939161798208472948235258784948359169961377556691524840461221724919449543391130638156983298347647922210087173972757199732867648859469084453880085636352476672018571531047064682080832690614107330527217994517009752264452023175596411856847088723003636267263873094968909625611354514217811694385458794227224577586761500128044428120414682268934653475821309056807617747328868961091210267298922622930625876864688425893965862823590453374524095099802543584198259610084090363055913861877151908764736797876138508207818003551851975867215232028293724799708566711352187374192646042591700302319537895137253198892924534888093050652665110215844646653669604373268913284460099321181809033102519144204845059091309263888401282279038036705813763325335444940213122190806627574677954203739640863212905517238248232775391752640084803054899453547243690477155126290396062920172306233469443945944519464945633048259219560598866922457126610023864910487139533945697147198872736206020431526580197081531310886723617203018579009702070138859043455417705798004455009287484851559549958047586257407258107712395014064963430078879391513259124677222198708440155484196769773764638473651356806714644923806122470978546681931756867029565036926643605853662013349372525766811863360983240221062666410189039315212634642953251462391503327341891795476117863208150733457485478220056646902915698198065383105324142403231384680587577588121191555534463699402900195996589833630473929968332242343875849344290868765625809016542396519561616565600823419145569301726097714514579050920959248243602348601650230853847118028734858080422336600785998415197892316421637977900525784818811236678305830051153557775679305962438554781113669308874823062439060351710578289939306291355490069001509944500136338601940690427175122296291826185777573384228171171577702020580740145120560816172742125823687971490225944087120576461934084643880003313258956582858383152159556166267694352328660976923457040043722574863390269552162810553122655353857455351495303286454176628635972979220355733290676629982379053794137647330457919905424657595970272517658573158437769419511244827485173591514803109456619953852239540157408034898191788348189962322905666497904138424367174173446490334562438954019360267692008874731499118643785787279891784957683469586975152887355751527901617083661105007513771451034508970698351690167045897108344129360627364361578335303042855754794184219433877154760603152070517429812314029613046235762802695199382519981003232213177365478086009366083214551177771185674479077083596280158198556100492383077911884182790975431594217758665446374167581338351311481769960831728527860355002843967306644729197708182434627560568459958495708044180856670259680130326499182400447719798927105701088062276148672623843630053791218781565054977114108415747406657871197841170879661725943323155632459197216155990679778045820105600932170064915595836953392968506353449735696256319321605625087074723723260475778461382326678016564421713581203292259739402576864213876271915017305530873861187508238555201466202999155723563291905365197344403781275647538652313508032966924957929479473166128824587825808614502191967071597987590579123708898740630146127392609055981503799907377835414332493571684667061844815823670678548291588185231264778060185660305446830542928321942294008147662232146580105781867314804433429223257384662373501389470080991304985397433866089201692170427980733970421335188803838092715144315685188725892690144725479204878035796293141001425739888973192516516998641484396993522096477684118572685799444667989323761071076975578620369624117280126079544991397325744304094467196662592904481485964166751876194587329311535577263827205996607465588195208094237845351381174904197976521519298400155741012715077069432049583249197955809967799683499589996801462812459392259288719576667268534766818243235258510419404875768902409799087044583109616931855074597447889044112548010061954455428714854621378263907146930660850892568684238070203633310974281111746052305095239244247177952340013984541031074026666873698185039799941630572044854622847936381592129736873453906543022909627383145779603450950938391934889929705093286786901365491998230272743781012475212708909101517621138442306970361336209312827313664132756618159863389164426077339413330605740606937499110614159202784818648609175201677197803183194193381954910544501382342208969759003567910600453916917078766346290172591380889206193302789409563809884787317735828571848763768581624601615470828888057485842824867448395543396339629773655961263296400918717507934657152391423172081089493429836218988983702612849770906500778080377763890396370417798286434012229783372403320602290236910369713371997130548434996030206967800374875650324928178266528305442103826903471602679089920493338064441573772303172194466663928194318530051489877039926882747589566372523088588073839990005653713158274377472888005172672998259276922426794004889080324708658811830575242203104581051588473485034351301898884151215100535383443583345121866431069045588338766524997348638401145755447466228437868935765651869381395149679710496932531449092264968729371376609308857084311523320685308101814075390971825097723067555936653820073980645398111106149724933337078257420817476844349986922676214800688027699586815764060538749268816933555110792317156397086810132517930194087530745295167405989415697351474129468024723195316735452863204901304613515915760984095308521285022338163458367192316560616973085151202308696527792620679702658164388765826252005028129207300567661224538834422605476287325480974150588483909872916795940032650822063966888570692110733623047084826179966204575270828524759743371667960152215704377698133095327879987334843203324010171829615064346927100142201595764803365172444201488065502117601833156749329618276367179227479738490085999255025711456902385412599732515640016579082975129763193107198757115374212703039410852436536772233691834623350969988327989635214299667587472266179206601171583236057139142993091118608918532571044739190001116628189965406374589135316338467563754881282537204517705961055346854244929284240104874230182694538115932859307401308635734650719411022673511521796568451826960901501166213903041134794860835628430151561948398456232616271087588650335824557604808792957368902156687593082381067036259788455580767210630553358594120701783806417707422405028819260879599003443691129262598095440885982428379058969275932925621157974645819955265918875089592049796596874530481103876873962368977552474490924928565590127975305512468881695875342238229702999605533349957419016207219620530016322818816606053960489504743468140969039270678976143692755719914220812924829298979567859294274950612015199548430916320644574203848004846991886952552977186629596881636395669616943570635673400817206784838880377083156495637114965463705832099976021049027523702487348552037872920929899818146704072374268818719324592956663259488805992702422143670768298479911442258521825625747718566536954169946317023371722527902956353680499325843087078191183435040468138821100054751928591391122536752472836695308949688109016669177359728675363387931437866999801758495647601246809903133499978824114375416479899235759776027839301633977202290494713941669305824750115166396830446803432219776799609714493467486977951826960086224257115513153466479334923855104769312750437888622113656958541917197939038325145916679646907811964377968090232989665016002519673392754758759088720935560059241424440662326054133869163291914533310364283817653658271396229014071683378392292506072697000823503447635622202643326612688450313022944041317396027645186822944000842551027628653202485739459812126211181354126492670928521684353471133024495563266426782653392417094285899005226148895428244172077635821828111159041532164672996546473575669634542886757507380080407249861065536003611357629248725508251758877678193534482059314444595536421776528837337452576244672596829862271380503436926123768926857186332577558826109614655251073871372897289058814428714710974768070954458673848134489954367871952861117597515955140856460244970705277829304522724144497625663565036340878185184368917678873645435631790212147528684098468052420404973478094023528557388303724256656746786020157470127514778543583434891287646870401652180594085764300686582134198963409138121851033519810392253211822744842065737406141406323573425669564062065869807811327488138940355600893948294703441178920788530180963069489235383759879601024357768250336957210007583388387252642512320119227846345491225964969514022294496917276852770546170546291388357675179171226300786638263798618940904210793451659951428556680356065727694974670947779088567341597778781168806896203549702387059956916090140438236066674865630260459918849040738127256304896302506216699707034250107859197415819169601274293297627826883470176760975205623578640487890442807971275508230681578707404259023198030638173216421393843920317937468120818908798523435286612467934341028245496872193284074253603083496844842700625278286232119229359392721824031495628848983063185140895015128671385435741832485222784894811271009785236527021636327666840318487738680040318300724717559918820822488023777020573149391822619791648544298922618897605910591571050608779611904775435904986349167640009844077736986231233188998975443640061719148257342228157791789170935552090017384758727936950153002051545768173037065677284707368541042069663120261234195849985168554475722034796827814208386099241516896697671231045116074689365060811088118003055482934386614016162708096042549009044035191137734746755478703425056532664339889261702393584829256091607939370781554210465206525829510585541177427773354657876152748844024774275251588625588046451071253027798496622641973217314335264081126542239737094927236242041968546746221917002212703237543180720036707092695712956787129118684119572472290847426629611936915970313428665647774444466350711065419841258638784798357856257148046421879448425245122929516527201088649295260997185867006030691833124308410628379736367377921608736128345116181821239089722886066063671433692522669671463639788538176460571653032860217253036282270896604365046395920769382208348429890067849442170076967547169923982239252794077907730106776459834252708399434783986450731650828939393882110639638665285678497246994520925505956441419442048393971592145057338321692992389420716472044463735995568759754597823924928382812973476409747047391492503132478193024239447727166622038248888517831190775549248930853118344766779435453375425136428107601544078002180155030600971562668552073421286636937289524915097037372991345173488668113321222466262586646028733000116400058949428937366041778182373738725929610727887438521833828791854865154878313800391250054191519529968216109261185783342523550466614415765649337652770974336397948780964132333465590066104436451429337945338433356967314177767583907453076419401281011966292541952339226887810267133794223835083063790068061511018491317566017011335018683317518586503034137029805072208257629555480977391583717888984925405177046050673334749022002832204219252297334582097046017808287097376090641668737447205084465541104252503004035201603595244909882831289727980644892977850664387598580371506076595360533106464625382852391972614184141495655861377282669439417821064626646975370769459557895209094368533774927199738013800034056015188560974749806950422545003005932920877709639978791835978895564681246813984035780703272461508324113553719176048943309576651190631394010115052824673647124718981676812559667880899719380760110261839433465679736288213973560609848479076234482295262335555836793185592383849744696301428902386466877302619578219815197212759488561311750984526746665667917092239202763937037070872004758000945172937901613901325870936998853298699878101386447060012233401494820792285147571079311039330684865213163754311998380334079796119950466497134945307626107516676768135564015254351970557076205035579586565409121060073808738808827585469352795623165563229414862131351209170396814640109545582236872915402246422193059646567714583968669367523321085599823113932498282312748287464563149275482018819816077126936255868434869782187621217080187601986690051044292193833498206729707006497645584874990146026999655633868350547155856306928609073513029460538766490037840678613730800610022034917895807781585893362333234836965357054430445835899202127343380507021119559326915685942501211428254379312794134688845001099914686184934220446810704862775587276565160366440636301688666225512766919272632915935078234666603736745293323467313149627438422776916829159908328373593448846733691780638037357900896085820440562271121445693690372665417561345736520754744678169380358890333784010250865737167205464422597804999330883998761804139118423632891939156831558873444677151874537935891286651551047807493014022569671310750256741566343170032605203404563301266553047056708178826898152111367358826002764191852068105121142872987858837957139962684801077288987195142171798533006903664964382924277160035841696805553476411646149354642916681355877920863298828269464840882249861693913020479628273044290621808890165930039458703979460825456075115264646830930787499222985184125222564835335544968265134642796200389418760685034494891766116686540325111703531904276758765005642358630613331564519930069810729219143000647152974605842999104998659381526638246767249459581888131150569959407665744407105788017227978016772199725531771014383570791059336800566820522213311322858458117128855947892944554613415393634041216263478720187672390525086232348881456736805869959935867235934275162465654748449064740503321779778257609078979137689834821477322621168136760373460615185907730328346230884316948848605377330754110827405287256149430537907464176440602313053133200514408953691289995913642703205306889047380380900049331720183249518742881445134010856810037832786868610402326652816976946724412729597358318849455915111574802741216711734640779451717098173740627834176470693447180250982778630903943545292715263527377225249253567885397877195069877432000364877671756624466365977767436527512146290923537702567435993494667797918953285535103267329486609450618653067328312210666817886721151985613910763634226429539412496746956805166111621995486496776489988363297824254904893239470093886462906044261367894265546030572167599465730861793620026043245755386854906002453193277366163312577284609026263391158522580108619310866828093421192794504466029806153458843629456029991287231451430172820318990395114735309767071973053111484995763607640482202648229773670516991706251289686567378884119505065617562636787017097259083530930381792561537506629628587139244072699429324696928442851396624473678065528627353040900763010313477459206741516498331378806394820279571008492025985086475144102947149775746501301477174029553852055209428195622406593690939240623309373454675536040754703222991208821970473668713150866253243063894974143843087815156598465716495398033960473779437868439056188228839438887368354231457741464178129940949132074769948648977955976504545259635595776951014162684288124006029906366483477186963652397232498566197131717423996942139897094074700394355484072585629817844744301483941857286094167027118228903041437006631230377016590261384790902889660895702587471808004883655444472946647134050542182950666696606196873185987723548744994854447273375658361323422509086953215760247991410981798740743931426848379953419657109079624489277598094055911037018265818421148592739297000191863957607453136338722210102844564263528528175037958922277136132029996332667678497647566191677986458114940321423872554874734953153671898110101141425970874936896519124099597316636693363941746530460031609690015586601371016162271894048483702076864512603064291051962931427242759442506446042369650019998373340499792823756996410152470335244715674145424093090707887676429738895160205875672944673351898629301555224466303672701135975146812723161010328585202455338274504369296793842326397037394586150266301457602986993218172953082045550903089216760347278900501632560504084524446690187154903198690409897439942926401445404885463330094891976390521719291571776141104869945100490532000767911313423744516767277517387755212683815984783574034977594108033015675701575356202336628158471965449122251120449814233919926590483876527846648500051778579074004718838628778790301426946105841264671300632736479632315611974586830780133834012512103284927712748136856208749424513910041253840447329771298782284084351304142474132977564457669456701389884163897789908254841178254322483504267540299381147761343708368621206489065167383418603089219879990625652102937429470797812663753653947979729973764322641703406384653042176763358006959223175404651015046170410920359739527365940837479669994353250188838533433302703802976128737609973340727825400616717137766368694957313070941863662583542837992149748887821491064746085094758887643326158310952018065926804030143732138851897722260862188945369183699186795067162290079423744057756262777926606416368678391307186874446001799142304734847270486629760777035506254064393935967988355871847691167492000963206269426845529307187673026365425050116033322022172813961453806891171564162314853750159447870953951459992439362534453067124265522824955159377035127780704442894366118644915606727674129124084552696751773362074812641134555158655554821262338279699237935176732866904887069120695790029310046446588129253052020138211145372663300152996393813158965275532652215723707622778401045548556789313644977928704160315163315360715300794904671921897472118426662024109799414316047764937920601769300509006649534957499294300149658284553526119048228516536903427160518772703061619221437306395333964712156585118797130991727494735354278290281915527171412807903169548241264580828589957921873211662990047429203560781590658089717015680716609821507706342814058584507888732341885796427063391760832955817147785961897871632174181580050091014394619368857791808284260877947250712244681571970394899300184142720236822734433811122782667751780212624582488655586806998306816992582786352070688508111325054326132819592022375683632914380804330294743734915988616887539504023522592315815262743000837756561312348006407494119793378100629995173659136766953616416926609537793037732190559303427277627471300322864253094301769664364197505341584055889272335731869891277534532967021939181437505012853025865887111969989561736634617710102230560493567462616316794575090641448504998583817639200661804223026490704210124311083148675195807827052568374416699988006622979533027414231905069790928077909403269980781273051375034504676616447887264484253476782070350795482436154698931501522626418071038018159545421931898245736648820711082519811083749892220798705008072646619963631338068824992911195108912148137537404048931828725788345743015938797544061734335907214584498614786877676523421338003978997911622601118125796043628638125836819938047666876445015578594617153082296953581318911685915075381252098697899897510951880082272719162170665718268361317529237968947906625421158425069254192636907396075088664099468393148128897931776536192937678205936817176105519232679281411373497454703892601348118476890219860202859705071561301929658253776799466156047232065495811337175362395425958553566415436116357845473236754372728472446720851027181980421700522644668909206748871609253959042768035060572223782024476496776206058143862430134536274706021322136724434451162750778481249568210639519539552185332200273256059815565487970744266384606731383753893882831115759473861794436165621390700071904139868000119877580718487329209461965645981041068085616763277082890095895843386107271138304394432704537236723404796315564641593490843240788486060256254639238472725887841536373541490787553348947125944959450989618828945382074689740363379414457844858204004036040653984674133257112623425343665489400059536299124390594265594556008364056321690154144682138525416762399517768802624931213655670929235251816806791272848265259996639311015422649832422246147712421577507479634894051044240519004647905906381475309433552884903855327628262507639193254122795936823238844837142114299172171673223784667390127709890085288081414585411967238525836627341741319124766211720433737956422530747091091938906832885791712947153026213667109494996631511799896145370909540661640733232728258645983992977243494200948824491375815964255140031470053334403566764272502656057178950918622104880827689398833780835602092819902509896721856598637961774131754000211408881807380915262070441906304386637866283031122842237423588032765035584382284251568858548823173951034475691463402308091668104740748932468055403504035002362653015433731757715696719485220701869280481633239746831564291389700671135764037595950993056800939357894602286214393327594064373934783805594601314877386563329706285966683713259093193884002881264273121320022361339143079951147104620837861263424773574972607045696820345043974998203501874925513444735325285901299860862786863876403688182922012546603012403149301558695427497927807882469343397793192259913006373638731165223356388901677775068231760201503039072863102886090179367160027771774793321349833468429363819306052378705234421688801653217053142321102709124382564945968853609292543710166284275868154814836059880038662393015570845910057798537985880065061857643409444438179143043578795476277954181258059206519095631131252883537894808609271984381923959669558955688344012867473080936652403130813712554053410265648629016387672015291559858229010542719193723073634982894865581806853034968696684491906592665425059795329314247715019257957671859831055864225809766346873037850176795604462736499479601399718413901267424428104656240474296054096727956501728739789519899050132145622706277528165686365441980409572064916658526150192742768172214000889822321539382506419692724857732799218365760260929415399136391479183455933436076078982760302927229156224852011048978327294782113624657266366099047620097136298833425086591819667197610092637488158312843293996810225592829912831742165936762871160073819295313442143129933263559651762470469031709877002266374560108922861446436081901463812043064545123325767892435805176748030219613709089838197183312215932974251334635117840375886446666736843430178855082130877725935623227415344584709484279072869585989883250539011828889370785344177673798769303687494194909001277986267093944143149172613531118858652175616135574608426384154397562643103878846240585190361582539293375769052539610368297032730762430313478239973966632143249456524496335631089087665608307514968106642870441440771538217626939577463386391256689243319453072284651676987558122794591429494406454010948694461404512448471046405758217446624608375361520264191312018241797895878846943966945922476505214999570369338681698664870802923209828938844656266862729384967442559721690867488135435130769052451135764991818888703084891615532469553598010939818802975364892725487704696711673149672066045042561624413741050653451933708261454368586139565499266271092578333093736978494888884766030240926178132087929347534236783652432156592555977901753693492785226691239899704931510436817229885305348903321667153425326278504568210857362018778892613696476723602505725270245914546821986342432796511003671692428039286764512185430547729729875877995938379329330453650670023604684141198096769346104018486185710063987425929689561444915150086675132506450800526504998044372780578532674025152969835810581892981604030049379120762606624950065212203056532029651865808944218994323291191341567269495445465357931771386199900717816588471133135758691229315984424118066080373901803133252713150723689148761890717168777165056104576618730510778105657189849707302963362698980450383795669572335319097044265981091979511268544855663193500662212459143171098780313985583646251766353405002098477374939847247970730500333472021113048906147379991437058756102510266161683001021183587664534133060811540980920064445902353018304050320484293494881309593112621259713664433331184154281742611642980862492278016453849679209168218921107630987867943760772145376663342770593362640653228477448485743886953060427659570656557772880310440359441561229180659286215516263049779400554338169093224129167951563972698540103763118906759873085417764098945166271764044454245639497719410852791807829706553330685925693920137765663565983257054354866791084904179137068571089982605805215359703548300079581562316506741076784734896050527398846155208133742132546499173870092304862300293735390908400897571541612447153712708954978594031342938077079544611270163628808136433945532902703852276933612279373724642291158539078613808768308157308388854879131682421239932668244281984482753831170337208467946207713158696533249692831934355897830348658144359892787661750480930462657364908542273719207991070556300416242113618466723561834133139109489723572531351824551654238705085247866521045308439845775282776330624275095098275284077058612830775564172797749760075723072194749313628881696429938613920247039437130969091998096901709052656845919395558170947640364059846022352335220709866830720714349635404212250513413881227537076683904912889404992770260854599956155379892636141588844639719559199114227588919560594439618939393701754838848411426396012165146812832750164992582229242590066940263613036954113292828100852220718895207130454591239637528893684982706068181564759495392788620688721171777047724647225396193079961113703857170765932923927030158748231794604926360869864439749203861630159330143157475130509476086358201765538961863043638849705602429643251408391521507113983505745593410805389438406477305929582306770877983725035730293215064195400510877759126930836655461124084487018980286883921875636867059435135854649266832832561127063604465356543487069537372853302886478204629369057537248082913227912287089493930868583438576407440759842882861421125800485869763044716110699810249094286839095674772747746752736848565033968122007034714291445579598535145593170337829832409472766148521427628936952856942549926671852533655407512200873673608818206928749500850268433821761720450932876511197545674572003539736756816982399842257764140412932658192992540512839032449631190920811783037089506553779881497481605500743924292943607613296390727511093255628644678258527564711791571232804118110488107753288088829796166674547559760521462176862792872418119178872981688419021267369122074036648631300988061041159594876908033178307898687770616290840629059225746091345811164405030434718895889335743607644132592041434007275705606566279471671331492211669511742064808445573501180105407924362145153670583328436600182947109325434124909859229658736088579376726184837218883224754742139442566133002501290702228865388845469500562821487284751430659009005656692445455913176316475663343401464740273094938866460309542209090017812686267597989390088605447853264329491310673754108623737268945737071561655191032992954352784999836137263308931270231827196706498419836015562155496398242938314229265967682504218721379035663346003660801285668947163614569995163923750436379091759958707425762865919405141344027649904753351775796646783357728311650331190464652559662432685050352106127896203235036327631130942702786330783474869391421115032448724269662363046346220667723146835373754842634348735017638991663598621328048139073314948785823529347590285305207299788055569055424628909929950793838760945086752609459125001329101421462921427987203714715465954223683858902243272340137389073398516097827204207574954351338231493488848154736969060315577095519217048632527568681978379531180370991519859772590262812850414559127758424281380767227160589143589339330808819170671243520136912779466949202616611018583522376918380622970469666376988289194681929898051162353581288698855384133701384660503266695670615107131635128691144806789864078677768082584508693615254256366392641065924005930367622641866120376445791325975381160142992698415192029941335402771944550242162937501478271376956822095326876133356769150390003221530348193201351915258985720727757594948361605771844802495753319807528203982114508288404490296662614650322000927563555023462150632845303767760299450485616283865273931312283729629770052992070019454138501669033957753204968874506212343827840417038412853022917063635662250762268876079894122395894305015552778334341753064157049269981762940371214667462434265036991964445944551923263744164009497947723664891216543867463393029243774851244178431469222150518015512996523698747753972474942698020508669897238062723292358161036488144357617565496145324255891718100440019726026488872520730501789782458042212755095735700974607113183568880538716089159786858327964211436515862362186187389146100808204401814163597297338863931759642382892124094227204315367328742008416330023480070297037832593062611324799406044875983572395383952951821916410662029415414211638594851085664625802099209411322716219179510687631421035764297161934055354720309977581964432080634274414771803706497601338605130352173999023678252508108176484233689000737286220777873739923755793242121250273158984252751516354157097891019199129666815936608523584064012579056849932108487928543351370611328166591665797166931710908743424566174388086597717461603021664187066912819114687966270937022608083686753360314954043752039997207984298228833193135570200000694439378077511292607522353774217482898003511577194657085399248256307534587928355844833116651593140886712828919249919915185229574078512542921993233703958429564830759487505161410668650744454331306112931226189137095483663239773641086755287047874830980087344681012174687470835947590205545895183948558608571684025440922659086124987285077146003503252124534295987132492864038478911980000559870588677080839493179127641125948909905186352341004522310947025864289122738105882057741526634720533783511268450532094955093701101489945752673796666621489910677866156177503075059644481680414146615908569597575342595312783639326482635000453147762430125770218901906519177826913933334906649761281255670013620817231821420833295455424502104850534003129163162709243203314050330057741348161350966578374019440698383177559985931420237008741510916769743640068279420885946047691023654101008837072188643732680690630636526373975570599498637186671444288751865679060375174539581626096844584909078363388289507132498989152261602295929161256006452782871982275187131831740906052055578985698352034405724247597018482593994937017848935098395365456149947309396667447645289486346316357624906170541605913660256309518677245340523426879631587073449128978113218292115821780542948250928942324686571786464529132150515694043010625828319739117627924862200162762793299168812640481427756358223199673348314464724371715225241066734731031394809321940551783943933649787476251705683408985710425588974146748509317865866786455147383276660776232220732384972541000824478408396919648712102561304860952577252621792506628874736834513682070527790979773688555580526374556110054907161744406546093351852972633802609760884500907129450704521230010608366616327885509247633847992861889366264457300704807749911760722694674788354449765097715907557180931661662116485307012302424495456865030282665770693900185937509302546650196504651630500941034604049208541482414057259955840577009601787776351953356194811220450037057402823619043583801897251713975243312277418684841181009286155183150945724251650287836141847434876588003711215978911428620493623121993748397168420727367750599988477202878167163341005666542191636141281741793778346052136272703868149421884920624527557460450721617211949221631615054445818804968472615741114333840229386061410934905253899806226341660742106716302532225482850049157324080132818754285879596171005310496876581438740796323457837129152506672527925242976508285127144578790512782930700681177565599559974150040684390858281907968233446822536250638546597232452448314135350600531741950102876533464754922212270431500418315108726163447356533645148341391057800314577576650895311639326050242391559911554890540902168645057067176238437734544070797128353344959357944713137674944577630367835077118920851119835050175993609642340591987676510786133278969207824067952440723628357188662893339152241753276231565273604486626830236588673562882098488590452169564888980456885077394894521934310808734076357682361134211270588268520318985124933258024306603972652030589432343848783031652083086421118077736460446195753165290111205540182294278364440151638005686612702319308287103746981920131646436579256066458111686481218408844992836339661304165822516958187677165802217891656554836804657127728809432205680094548015110093977106103787539883187406054341854352180335376209120949254825027050065564158416361004401749457522770641252456032052535722762516113458679710435674859630775252453960598665639672227872482581214272597280647840570940788662328155808578593701012626172016063355667717567768781381922198767333957910835598218424821440370244323628939366475284988287980320400762892497372249588235920971184166158070287857650831204482421418065859152998592987931836586429600745982767492772295870819442731816887365350960772008716381913771371790439120296848503449585687222427916420200991956104053974246488063937370668655474464978942324212830442984971343042361826754522164386678388273897861869203863975677515060935716006970532500741773559944302254012524488014246646227400571889222399012385794184448186406354445975716606829825203597612394162858754740063500795121039286044203840279931639846760656349483930833745183776845932946322791572360091614077932296542312838155624733622920054684210826400130248748068382144942866063708474265608321958203928665127980433689073104418630478160123742720042677726761054813943519741937387274074289094121281344197888412345462320199572838394661563848705554447373946851309436146378193571579410055669975615566260883414545113302449859160701317596432747028829903369464514043931979975450834660617805450368971652972554224701412768496781979626630048503188771342944414607471546881243026248018297132237616303454534483035417101263083238110744422278511583219002300487763750672955612906897413164107777856418777978930627426903769232268979507196603914938010327190969327054161444209115970339109327913665745534879588084562516612245589789838971283814392869612626554952108498848514953660445002126816750769467605535556260632259575289867647864906979969461647416637668667283784773716662776913708309214427785064409858817354107987308466630148928037534957968027969086659091407812366860951204519752930489899052883954969115992217140049360987425349385980056151539055870795823813463784777080332288711259001055448820540834519915821331872053548306646458852786385222935031395901373255754191549857987383847403860064895877574324239934620054919916693148198345774538237450890037962272066994571144605345834287569566306250416577354277272225212322936296600657351814730111925812871493995287793029262855123384260833370530376792671861424776262990463589184592849973759499747808511699311849855418447440695504701370291704494548977999315351245418400345080120125874600545907230797864114770421024245406836133509577026536443194575346221916771870553619475495211301894243491947519710836426505185241874788283523819854622262450272774379468471794616342539593523874445880085343824610179119864314514777214879923644274249741380397331031494312274457695619180927242582274639353442104451348794571555847991343247105532034432149230065631330410146016992836826023188237178284820496956160553294563946751959514530009673284043289706461465916013045908558138781166809890861000718509077292543941322282871796599224552236175984321689200876791100973645347254066367188144711592850555139666201956077488507295404714638217787288520422641947577720828517554864169108327673858351707312032486140963553556784373845735836340544148604086208083610902204751593606933219048377910993118942018250239358673100596312268153146880996563809446578838882119978232851733933888246218894101139720912267489448569638851208992444820852005687088298361032098179170716155216208870072100895006456940698447610389025280464132916105730884108784760287935948082996526599315006368317884738444204501026168646756569713807742024479980562800235711181386416416369107583205226609596697352154556278251598623609194085621767864445671306912872470351541587738888341995147034764387179442567364007509127010684827220205593681427486449854414373580693186652001173141491296643013517988069437768151383149214701689916262182048952242225691058634426494663425808525414030335598446373285053481157333585186727861488894134863753474118710972215949496071409120817917160361997428863564285696805339341422765573457005160630073727275371967640540358889644395598601114717630157179384840011827150583529503824930134261586414274796988353389431073764188347120844906374116964603706034341634125188816085683400380685475096385827325746209020106691922285384154738546040613947126148728394275208092381750771088235882671622958063936213224074693284246958041144002756162254636579252969252263117808277416685422639533326671006720166332874230896011063385987792299056177024689113472486545589448835986579018292248870101909804625240544682005839043441396468899343205726521369983541641305283543061032743896244832270921282625622671558521106912433907380855972762319212425295557013764777011162354862123763565442311150604987995944647520493476982192058067474383902183932627510173508255335357958288386453143681048028799422385758296511765365618297121129901208108436871475189378178280854433769475216490053184860153990492415117212797151333715681305470868966428943920351417184890625689223780348246765805441519328825241911795654218674987936601309633212004318327409509529388836236558756218148377920807563364993757794094351858650705891370169098538444284131346002266745148521690065924195309221245312787097725432292628551676502986485853594505078950050568491939971402364586149260066232618668339366752150951783461277231793125887339563792135022860085338023311924221886592478044663237013130574103359017692696937380720874495346494341778311209166083962201691637533061318915784005324062206648665621263045115908576762490623099022983443664642822013629486497478321951254869306984589937450530794766368580322781181101585555034151262863491165504500315526107075809160850350092100025459496053861042559618892492635302915609846811565415886309073994033715147814638089165810227261977041179973480068694608518386859264628232876060374201605071679203214892627791400139103732244748515388254478951696284614974329442169482880612817032052779433775524799537020362110161510580522175218662603992738896591495387898475012951236786668854221811654942848344810332708933273323243550723739686183425926274001222700260503378383285737451904212412359814424243019801569063988305029002803902076070250030100481891632754656611507732383584739667119806517274602246792729723656987791899962850612940309054730563433094264342224805527490214845448223828286356427442729683505031324888259912339682522978711624479890166156443317654795441595194188722398901439691324475015598008254187783317861183453634821472578588503355052796492814747292144469676546135009357908494533873384704968497290528751347426874620077517259463187847119049848196303484722284474143681953276551321881964423730155606560861582839516645521329970674445383753412997139234990906136806086425202100849794622225854509484667775984152284097714489547510680854724344225672215897768202302230120287741262477735551045089592443745195359158926629343174333263395237320859501996318352384196800313905028397387453731405019455018558951835316177041438159737669020983472443346355840563081338547481085315016424409715154335065744855735118121716161668202442202534131896418549704688091107979554568283768978642532448908152861394008487624891065968024239103189927472561106293503030801976770049314709916001827339101031246757833677650446316238224939138354288650389316034044903659193296735418703926198602780179646481437740677076501011576833210731744678105976584265088464691802542823252443183156091261267998220964915002882173278194349210103443180258168012393145023497918371575283529513897314491093996730688068665776364505607703195486083259326550124797385455821735825568159026840878548478288217462010289803745632198722501082612541491620712026626435384003086561754879389132760384237241442317787903567040389127526221231916489803230391774955736110408929626207440116017816710594247344684066539142449209329597216622636710876588578477381478697708228131371683579488261003920990319856842810809299857516215517493467963508710215127051572168262077857810468349254321982664844452039400817860236241004367561400025968420072421651682951967342247335124064509243226026636913408235649442785223910683110618563036641389305273834021353602622134475623066833925033793283969990739169426916507591165382596176798542185684970838567396288149880953097853213997179040386164837475285597740418466361283125231251515636207072601440221800965852106599930065537292358634904123799951347759518363788098018522384812821507249657505966018934700321349603626352912294726689047900177503075994858700429153410494009091711372385837235625156259736934601062233882332254827262516590876423724820552206734543661606457566422127780807313283904826361424426875481382620061048791889496675700703922317510270771725596120492876433040104110149125971403994875870171799676887958135548680679823897153693989675207133836633368133382522347588198692483904262811408831458646054108045168516832987941020876985002471972920960042070878222719208242633818460707997138140915478638679452958951220830475529862448209782230548082847812553485398089376780883919983291394905875027365268702329127225733904334887195700445715475777807871686727028398316883935948279521304902478073381253534219877049146074304088800385598524110682635292704048361355258721698551296068241117181944953958121526356155645118987928654137300717170945235452636498594482170759987963432380904088342783664864588283113319706357879413574470084804924336898222081566016483022950332891576316319976422701964764891670143067620488454841774212458741343177144417633350920005470544249424582133969489338560319261252666699150817626261524596111344110894930353916218904150682824481761303422220485203580298463276970404946036213546189361592237409971530143631717387244058737641672185167330808920650441733209344092279514169456010068499189678042083619536801226673304078380098622559778182686607920188406717686855579005275517737968092188204706640213319279629433811337276560386829542641015310516251040753184802961713932479203302905513148077617016660289860251856826091608177218757604687281721609052619374430021547190899986339770359080866260552712917365728755818144139112440698088783212800781356842813232217487638764992715364956633558552318514216705191582699639409354835593116968716201308572575989291240374702730301747351154517357373179596104508099391898359963222867184082614955287406694443610873350183862796136246003151803866625942347434077027714042249620816601828736643858432681235710413170031810784658639688885105526079782672468104583326960863254415620286822770157761381838363627136394486135031745594263670076084989074195794232025324068778241712462070374205434926075362665309712638752667641478220275313966925404801935486615982592708701755325539256257359648276715752403180010086253546247290904480903529188145061918947872367781699675443032241909810739521947133841654430823479309543037231236847474573230839244427877854751520451648749935578363855239257859940447372461181133355849289183747398182370829455741706937118685173966396190212680677286945229851344298970089145356959282232450075706365830348373844830313250727624664853500198974908741538310712717199697306532758097816348975467266048552714120547747276327873571181676294245651653076552168872747310811932085207785304844694327370638776942630836003368871609969876344398989186885821872258016941410707064793841969826157780377214903345398314575183036571949944746508262741662482772740871088728468130471076623603765050558305126715602958441894447604327412223135803401931958353825404744703880096528166754760968204324496803543098073875719598343107191112486664256841098727662981290766657653388406911361709880692219573590494335510386326488228858834276447676161640735076846591688314697946702318053917486101374003811071166638090062346114505496359533010886203956600909666278954120049649028745881114095903466762199217551252996436512042687958440468312020273769668376519443675798613406387464097184944605790713377284040204260275723650997576455194087722161021091464385735430063762202572500746531188838616533805603439088586982830270189882254745712902376939995292874572582959066217920921112713791200256664514055717054692110705705567388322065608994419848796379729226336133876914499035137714428249073236086299296580236792874980808927899747579696147152703709594450408347966114989550843762388148697739044408103703251332385284887503600755539627721203696372605646180863192173163616753300177695542813302368055495713563836153216998706517533605747562409432147956104000764020215835848704315125725588778225028211135975150798761142256304116986168585302882983560852832492998397691540040376662985495078738144827588462142307969151662748083728730142936693387006815150022777017673179169763864300636018820397412151139988449230185271002950848962995830093737196780076099293764801048871888725583923451834626529682369529121000890808998114479402884158777421361139209276392132289448145951695775431061307925954898795994326833931452179895213037093912539654170476309868874150080062749126011004921469134575195769784945780333871988509281033953994746606330836813980703326280872146165542882626713445681754495402171630932965708027782050019201876692245404134125739657345865900205025208727541264623312157998640841515959985337295383669252575376398690963076901643409122379476110379891185920514552878051113676760798101803937797905655988737006954143687425277105145557444352684825656665874931181383691428654133304421999383778195247976758627562869334832489762910970872997088179914723208183549651627633769297365782083134096457425192603318421184827465407764392454455100826595965534636115036314290099966352869268576047259673403734931544096665488158620000304116432297251814864999026210268834072948335742280375297095195886679267615354890818661277057090645580500286665117377548584919924553572803503405389606311996587213712338150422752842402586650183634099132947708837851626826173024774762272546005914763562132692236642272445576130395337042425458260335094246219855786548264413003782548210452037435796402362367880270952389064616788669218275430680573914736391469075543572218339535643419843801638279071073059568970054913879637218985179950951422223057463075793789321448856490549178038403157745890362929428196593924559234564039373526381225668912126650259523752792809944334418415227192325175013773349782655712401289713000460488445362896693776050338516268119639737859956129575161885375984855284016180463270717562217243990493347814301010691396411753774240337961206796072536698164218088444051543134611191755245796458957711038497793595471025349320242270569309290694840520284647309961030091767529355095274403715301087886712736324108530761535361042394991601957360233578569183841431464228714116652476448836815037234084859804424811157529967886085401660369521008569968619349730535224102554123035042687047035857632398151905090156684526946348524783778873586623589544279169551724314909963341601813861563897650448786705446418119175094287650702613611110960335208904490449052446318860576223403830986807423661893550127743463491385873175771380396375234842691708326014960633759639776213347418877354011434022694250912056366062508761386760311365184472014620632079856226579817973354922991889752279134636926772400297005508200073526373377966763647219978289041970674171069320512123959019892308718103749699814199630464496226337003849450571316008856922984944691645941156839574795129455157222847932832753101627742701840847777455927745079948154511163454320657094833697392294413111755421720518902804914436830898968033037382339439905874551673986533000915055006568419625174509810020366420546773555925574577743592109455229424200840877131602462226012773900523323586696790981541171967707865714440043724782536411759374972345029702133642482455345867869940819764807138724429945692139973535531756879345908855622267654841978890546964140334225322120296722799428845705367218248021620039981081083430835660355218732690726026490611100225197674644969437494737969178341296058115377075822624544373494160363438138539403880415381367211176062754817082771652831584927627700797697790105863568709395799290165160101866774827170894387534085396788567433332647612218106527661723167913901371832738088205839773511418431897628135280935697386741892501748179530692899418798257285622610584197382369003912855333694833622835171390572739343728511630540162031228357339554843906059558894033722574869997864219950037794660037654293986233193518246800647293281595277498858228740023107187132447136696851036745649328414846564450010331896347946191717999639868578036984062816833356591644825015022258830752536364908667513027486887433844650198251846504929541316979956293119433896251152001754745197350169876275670670469848542211474913468322534932921360412074493275152847397825315187742340462314014338834244095575420036902870171648531520266014449837768978694929382072575296188999831948983873928283125997074959059474409300863243651594987758836802560812331606107246471953414260140728875856862590110129121927318406152428967433370365478214865372840763533882456530573222221840389297878391523111903901116737158988013020903693478393714112921315784688869397047053846189090715567776648840214954399465843770072806637081004547733850304048212417342629254657156490144883991000364092616445308983819703300693581579244430112830461479911870885395417778582292622256251027045408557879865885196343457629171442457616341009757574677898639880641521635155452360738718176301272716423796425357154186560928549869178936882271321300297116511856085699685258712167677162718368779700464288249540968839585205592216465792995203472700753069007454065332511052834489826252941172762609347014708540818067525162749501573077996358667654394750549521606556525265268177174563548655697344315756640481365275278430771665911207034339443782151170195170882940077021111420346634787082702234470411213809926528886071958611841682245167211022016422935158111958390677562348561194601620188337660266199735100672521937422271537310649764914547961693891682810891093393458355791616628068215114343420177306451142184177990213669279213554675438749094750331241225995568999658419431855076725805351778230230489000391514023564353012763521609377115502014357429500781564105034325410716410930555364595326737420042247898885841236417042350059889766986426101475294681629243013471547520714476716788491573496105795702750519905958813103792465773467796461641151271397511754599350582406391815749653672961536045792127164393537219317415866210127477249578309099755304849765532379855000690302508883652772116757514538369667122890681147757911437585120831858613955694011719970172053545808351082844230956294942303026300200896665632881903921693028671084361434502214435245754127852935848420972294256382745581717933102319827913174743054649615778341964130116403661446544082941018837923503137245112400565188717583111815942249111916171341656105580398443222928185088761783419449056834166558077326072222943500223842469577758982463552916438211894743801505627897264413860146145160752854168723471754404880613563889645054754638168944871782496582387358156022478217383004846402756965398200561119395922911043935004669606781611181902424202542525173195874536370107956080011525757549466177104735534513705696645334554922721720635567451165021512822035389829970559951856639737343982362313783519383439226258759193428448514393811563582477128105600010418029730084575034258574717239425885986143778769866692826405747713477220213758683286567611680587570781467292884403300232198229813730483171101664904139941695878846266662749578474405410256887316733074925208280890724380018505746418241208769234802650745618408100099041083408566664723486795396219950942166208290810377485309057241463723214643492176018587090089534172452385041194158756080273309970618771603923461075636192015837318373264136951452523642075058735448760986336180071361459839610475988682121679380365521769601071176399295406946522441227555601624558499119915922134937730932137342778917194205364164479797752907939596622218339977171373028028803586781719214437504380641719839259770156593886656128096556783956727310039208632764502443057266272163683373264308561917698107867638483880020053900967083736844744553293795900335573754348231032969638796717372007125100254070915860159560426854489315169342685562578784668575850553902997172807690839336639367609774791299162761398699176277909331504104980746828311050907593567150700001903867181763478185888670020866758938272779329305902387968173723470861072166610130839762782150912533882764285701657268328452884553664108990311490933837735263738668975063266701670340866503337868002038991492404480336484979557041743083947649431985277340952717686909203704191401327403688127718530543694850887395775861478369010491379350717771012968351611001508390199500033028997713908938171326100633680173815952247241852269994780701440920089107545742873328150769916986678434246571422430841968223837456560112112947877400456340409091201539917120719095795852054530643925944524754269534844618830824000435632316305627749021647173558091426890731260692695902794221644378815057412995638656366920699513441982014374014004493239993313419707957580840584927494533279283846247034073181190714525376535718156240771132607390431012717388318038736136417908643331916974906505235408880733243280401461517664498491166442095775761535937161624939305439684191001452126000134164446219219003115840362260504923616788781982932507617030410083011172657141462853024539309650008806987185701814188094902514741618726810790610567708033925210987891320286276264502915567946169466071953743938704992542881724169196767028052621665209222904313713404993281233143123702929620392019701713435375349653880108501408714721902367580411331691039897567067279109466660276208000272273669712139929217754445222321314204554696661026717079849910293700764773332753051924349847058474100236545759162607437635687525674942840502935609921044518360972536314906181114852290788914363973165895926424741570410288247179129126946778932304210756786731164823261333591526729597780607027485044485779508861219971139771120632582764257853849664398753275746135652968730446784693339795563105663907695219796889277966005726386023609598280713244918240474664993878259183100027025091932543910607275517368869044653059605153422538928420217761897680965794260606810319022029864374466322413770838671170911474484306726185736791205121382154547733211479910460413694936291733093308571519870001420661652628164184952650660197405666069443394304198671014696078372528234748185928364746952601710121574665804602857475725827067156765681927261679171065507871424611644740593275012653303289605346221480349921265133494420525484444142675499614818017528184472146261862687117651506227608578399294231067505698377924130900919813276948141531004659944771207772997711154294098094661875067659994927224650733398601970619702730616073882168853315056764411673776835009638686213227195639571415433696474748415688831917337018273019726583512153526263482738569013629685445953955498063526766903559422910135485461743677026053497069800594759743501410042736535803305760207419209124234104031598550258219171595354061562952400290813113197684402732754530863734819466875099144948196680453602527072408335745228075870349257171712844119321590559806376290212981514595127331311999951517926877901986827402024341668804305589877786996436582903090317035333661193523383669018651710959201023398119228487264372873478163173702776766854088152594997040305291706424558070530442366317948175505445017549085997758144613804144377433859029903601682648459664148818145926991258204849434669891057204774384987733299575145068718429291219694621177006400111151356623400037386046985524177992539551591947343018810127273275102839176422265723461840022007700144321582290103480989150848797372476563585537475769672451604432403956097197221595981125135052951976084001213467252066181701047085275696051830452915656452398314964447274538371626135100907948558292815572746246460317738146121411709904498541201699275142191359350405810656992799320005824515421024782741356524642158097259800869844447085525365176348393213414702443798707548482689068017489041438146321058202567584797569482909661446400181485800518399855170194078439963100606149326612983245577785866560294204684652901806740345429149713287786871905680846310106706688572272009973137444499653074533946239461380175655171886101607241794186108198704378010883958838170263070093796926656227399873342333131975614788647980842560491442621204768035862758442199705059052649535953298574399162160289935744269485742945276598540555452009395723485369926582371707319834721617703552613667250016964578401669788569029637502328003447322967445662203553345467306311531187010420410809109249958922255401783997134480195214119663646337614580886226038678129403328454510652034160821011893108113222302847402039431674760363925383977158125311084147840912159889481174282917154670225591350651768785119603992926381633916641733266985622740109868549310493797544344710388632023949914566367369018088435250583702386551938550136494170719085632707318170349010754251838811297247282400410963172280165086437763416978938774593389199816069863634033810436312684083587183235576851748450422219564998514549809156853558414975942801455742205584800575181525590837051156301791217511078687173605969924468498597230262507826532118446304605586470945134955841857455527390840729871624085219495742299331844469925729570822647388483092921460486498533821646229119572372270131134111448716651303199187891778583978679912180495086175422366158672624043178806203955021358658885586053427112063064248931938315406688894131237253551543261017833172297743720732777348199973517867313957714764189489653624893884592233654443115678456335408886026682211075003354605282166658547340088328642660861129385518563674378126610654843780820375114498909001532946354678307313383813492552687909036126449079737860991145646022349693611600733476784760640900484482398167742862298612085027778208457999468035164827142748234615501712897621029370820360941719579890305860275820016079595229564477423358187607654268726446743522961365909777782040427111463693479897192364804056929958105895751190161494925275995673964861488429956639286409568809698620372100822040803588639509351178228363734794808660564817724373435626846866275194976316245335914563331816347983487655657001010436648319711212812394630359869495324356038628957272649698708583833058391018455050475350741739883274701224251576762128192432559548931932647849042241164507476129790160430136755481359179723251472614980246390410142121362498445489142972600621755178230812324263487666239305368136765154023659173994018763853693047287108915947027114551498789079907714614119667490877988233465005067840761123593556083246375243985493160022261310298892015974364242990205131966061966746807315736348656367496355851255967545167345809304376951782905191676494023341775932272476616851220359611205364434377343624309121336077702446887590421660170479828721011926188379489595451763951322357932437000990048332986343540262891129002586937573699619150980635788279312215235424046087133105160318612932871296030699909426408367777007120714677190287564220646470655546069222995916115282686442478351729517219193337987489801215073730247935858935654800371716827025620533325687673843857747159403928178371474503428693467289602731900841905661828599982350718878817748928357047674326311100986246261878231181400599824930880832038058076196104208152748076768793882773680168619660623734723029804650986815610033343782683856491872115328372412767616987845685613534380180232879272030002508946351723975021981632636570439445018039115415789745849876176928560338332392886515517620615574848391548317399216345998042213830988324303277192279817498186739858334842092318760240962539989456393266712890159440314220052384543576017412136824871509763300754351804314010748205550415752810095429320908694943385936042623612598613761213414637866248732262071768207146216560046080355863655380306335716791811328771950715200416806790088721320291186538585908915698720601996494023011632889196083826449596649298971858666998657714301663754295650504399527804132019777744153451499958184524763088991627945844093603941888277907436418681985536097328317467621177672994120010353255672772057443125243459449696361810338061681199501343457186084417651899705615098264828489092127751528808802816671507307257114785100170559352889737450351463836450698027541371878262605075437879897726448133649548392476599812924178251809470543422406021111301984425866931420074230599985645127225732493203428110709999079352319639361466377972558187226947280706116217542736694788878400500983445024528571335923803938228441287544577429087726181158697630416601535771513485922242986807321296367623533247592667314525230908255036745977422424739753340391008784809169596062857892884480044293319065217770007983741081118622311902615856302648084461684132782481043888730027604324209288897859711476837127497080206045251252267134387074134564557008449936590224276554185122336351036995805268007487456489048239325327522598267737465600975207439817478322531020536142250831465665549020614925508069966154344335056417597586773317179607472034347284946484719390138987635320321470011834034394572290015628097928418165327053344765559740993467964583358438481310691312593091085993610061575872216720476522596522325202647167832350537567136460399521389674527576827555238261295914485433028801688197638500531385295285608248098098471947605111457992580562624932128299447753087695255560274665255787408196948075266137763759281121675684867437028202442200590858066340434169366742071250501519169484367405659621744216142612538309618419754589155057549784975011923372689328715536916330823991074962869876229101755455210172371971102335374728169910403743567611237141709647718513695395393009477480288087389889236453669796714976908379730390279998332853072939806435548641574969908774297381113472613938846973814506914499533896892016630073683690879724043573885601055346700691715029832295034292842057901995457072309997431970836428707228589919315541352604619111728282194025462555938339118318724203674834300360914590874959204466780764536173709497311186175637092128849414014941752560126549608632438346037306741145466640953146637446730798973544104875879692029540487359401523758308587386665863920470206764427841090214376852011133980658252521599949501622227670105846894773682408480682274552271835611659394455823724845717374652985187810920566309816234855456812703237267563475696479527579531575273512440816931006299832203845573304073212244084913844177017031383013248788918028086397902837873546198572070370260662773824140215060490767036916130992871363876927339888950020773356425178351403105178244582976731736403859910812867825336872661742739233952630354252516392407188297376972750885134382982508138350972545962825283619463622087284924685072460981920322325645759350151463357490111211372411619093854022110209086738495129406988068322795093236497786280921961254985851893497646273070641512482736432673004199113070681278386955633649184688266405800614370127909058599770725709714810763617685720524611226892220775196525710057947364264222108696616836028525444064876512532143405151551937519449898155606585870092177603290320720650702724765541849417266968580367272687924438152438755309993676987607844442592065419909742754287626125320067543781762777967509151268493134852890183993446995824742660377739359385779612683246885660568651301774075669445256354763711637801769918877240981876363558356882045849547552429090737238589603285470585278428486054320348318977559610795232151480877396969842097087286196141645254212757961182612296261462170740945264646488296573175145680362965827083284230919218508378239507283863065384763938246220229597479666070272844238519390846730867907853510624712790161781446792788574498556764536214498951958818820963333621096204384329136060604672249266049741240628062792938158462579566212247202682612976393063782882385365561705615257159711525352505553617915584903482946201268548068947794830049701485004362216312776774746830346496257177902317675103461467935416284234271730570789271815474196980913413925465604784456600672735481621099913282471632765890950794687318333670246278554610346023597030796108825105049020390541572638542403906031157027389683234121094151788539188836329096481602043576510648619974248178928128338205918504754069547138361711910058294592659806440241692823505088589294823482167736388041166440540223336753232285399300415373739708000035306814851533154081227019603484716388553725214893007067720821415436010092858127013724428044557900856902856947080899040952262295449742036489982782057446294204693493101010504540491660840460711769000600531111867988166330707416905133191651197502959152680714473238037657556991919630971839706110244019336466968405364551531929826319680961890996536204896011083464239864360667503003959994946594718778717995394381705960999876017371788179810423578243153880758701828637369127267706661146194835143304382396246423741319652496685555257358939403850172886525649274924651579746596567252118553028872194760848408243788268474443140888652891646647108319143168379998866985766024343338009909481363076790002004072700804528762794501827313072805113399279321315207018183860738447225425005234442431392795272177697978808632873159324118736140668966310474714165488113200271195442002682099949491002731570843571840511104068289856564259476948251922640008003989963054745057003574504706220611832518315877109189659501360972562634735422736787122661917874296060999912233872333924013570882019153836052393967077984499970151890189522545035323564540562202766963703010539532615906081015232293759127969042354517044677898664542498574932276200445491590621654098462828625158450249889894692873355169722648543129231396025651486568465660742287560045103708283748271931496448942004957481293788223074985672533342011428107449687253834248896637768633624670148252787670331727733859712031635887809569725239776672134759322775566941560648278949995071688266140271800473805098942654118183445218521328502262868569596011916457579778699628191415965765776645148698419461796786616494758413270208398901558170658353373436508272665133377894391003596052369621587840297154717111273174812064836514544712330164433170411420408968871033542927785428179247737960714890501403088055719563981110925346743178389254744630417860268784051820152332395165460269602290066469262593865129641535500133377494775425211768473594829863804735809432029495377368363640647021625423610732575110376482214112415405447075442567991074921745122563923540181285123183297688334895586431762378711104279043852736605281506203695099812718693584415394553505946181087638960816236782440166066655209232349616410545479954625905422189727180799743621729038320841948870994301894655232775648955480036991762736415470579992901692760995657215833453709733778395955097577282792832530561967282947707292468034294368347111240528506761609111036401070430344117358957821914360813611177577960239371112223423838729194430514368419460832053313533841050125121164379335308316339007057538629441852336572820454237925406828170624001112821696693332442397098435396302619318366663642293642583525840512628124553683187974840269465741716788764074129788658418065292390728126726041513859105059820647499807120334242337411938971345608141882449477972298960157131815406974525580600280554993167684117647653610196779459139231915633716339123072219604095679988187820362284855931309760309745666273185347725871785049819967079927886369425654539746460859243458203892740122645339313467702501171200946482527567857752046952735002262766360897210476792128040939284004873346827249830183582078776879336631848373193713516457812818243576327626885319203038080186190972595103482814779367594018686054461592515413190235375624824742541404294295877063466088943906438523409287574200072919958738145945668347210118677896914120842494518399604938451100046972404424156222861360715193162594570185577152758009015779480054989018742342339966312478032974271518653734474760642840644001078369170484940118192664664169034402767140865121638844725997158617873326169677727870903165438376260637238595885709955222088811487216155682025114213214572493637628376317752305669131541646104790654740422659434438829314095443658037725518439755246854376276059810774344231465495595743933276284091662066144348788624284794250555046512240128394961373500654310581720182734122956589419175523388138153602498391922837953204795044497510558355120680440439833895661651886389936555466365379914461394185292968624831541769380606522947344501351025740948783955807006521756137044005721691201520679530773653690530997944968081295954164507963274571589735633190093197462763597599333375961770913936613179057634612703229724632990154154235358112611263610468529404513542387786417869204120227153521429999894043357690605951291367185265202204170028950612160644421929862250582138632109452814721702949082973480154991137572805842468029692699224543514935744208789075162915797406703027775960843881935724877081966299602686277617723463805584202099693731108121013959970076821675290675546504811510284961479112971431023337668101466526372152352133029984789251688764806218151641136997046151019898997492402129273521633902291712695545707703713218656345626678547556511878216706668897538903929528142278667410828865075113848024097155935088521412397379050640603230967740371878456345735322003214181942485423023158663442975511213236556697102892208208894116626661274600538497937910686551343590165717557771462888597014488924854010989468501735477876068786422857878176220933687458618235434618553562952412790100939925250019845233312019443915234435767842491542347213990466353988973192227260041174083637304375594603234767339599599223584742439475002406558805012077548960475242991717809578860997665927500188982719759461420880049585923591460473759739760162029269977745792299790437704423854232033431520689553146165731632588521632655276347218444379343061374662111933841263820055389441312087451228408535405812242979084778825968633637516002532321713880182763087693548194510998166123828038006484556558669766311406758692675961589952079119128103798631280279405171088624987295614971676402469871590350861666206909617802532099486283375418775641102643240916517368407926326172571219047308853122979683481129715738395681534667838169156235293217233023436354227742732116732316483643929533156384483661772993519748156018937870645867147611691954247423205621062787354838688957766797056467365345369274060335842304020254927218860765075717651620528570054446824825924265879710816216655902183926606720615261554766256043084689951225652268784329855197904294968976700379005514928712476958601730760097698212443524489593203905103889199873331238603527523802973184059948585270650726961173590314622659791475791348365639123643560825490721679774893219008784835142841783742882761367876590324912225232985946048814964827153001828388471998285784035093327605913527652350120759463532113417586860464608202700516675658168295853368371517227860044195316649874269366119841320657113964273065047680346675216905695001286021203201163678286807392087494642266378431960355470753888770816814683772060166212851034458279869263598791906947166275346222771577359944675423251847163764553795290192056959851868504249708115272533037852981713020213623755648905026430130337211443128722507718278784065108587452781913380531700312053045035496750930148164861156724726095924044490756133732036235047741322894455340238804700311455354893371335122746173629057745447451985277426555573196791332468602671664055290440368000707859630441065289286244167682288981044798613102379384251758526967175826472834339665293796969496283223382544119782182897962483086580041409143747291706770213245006655156612796974550992920775424263668760381771006442328334711554458602485502266253959934570088468467871908837099526531564959394822696522159624346947106879746905182190485423489018797128198406302350319072788839609677668699062187863626653527324539852670958582380424926439242520354924876226852543266900667253618612484082363403049845910342421310636856973210191613797127817060610884154206460293219618430148823311453444351821711056670530277288040523763551237099741600502828715339210351084046407626834875759593129299701127432677435067862435688419279700126685732156113236975781314864920993143094355905137011261280999499951827296328447390863844003642833169618540103112240803666556321656143282980037923195743652218269323940385332438827304765606401675987662152670675978519792096061744395589144095551408157499015909439390678296992727839738112730496201162578225538735677526121501652156430433293249997039586117542023434333014058590538812300388895418480733659802505785886043886829539289824474797194736354487677944025167615170305407524357586925859397868456470239805535273378694505935255708936282280941147641032121696985779565885031494412128899758146861023591704605653253801839414242046587071572810137099862611721483527308729227602093529498985614633300348207831320061648030407012262840859013133125968023339015801081094251771210869833720935947557930520669897103890209542215149583802594603432730031508354334776026301865351547508881912482121380419853402941927352205621342698674880623840843076910114855148447379967841308276529934644204328628018944231474066704462445978099741385618631819919953232625599438592433676101772977700910689553245429659935489402429391913463255981545201411956501711362671304492969707709384189116920897624870973924204031070888137595697581329751639672826258134102379074596036565835388850422114899689154325456169808078756338083855414323336222215302650780753507570597628118365351364936790470713245693976975094670817224208965176547348419413185975870224401625634585947273706783375842473442452853786637790566940713599958799970656060311025355323374069100270379166339837272376003039131772093533346782188921846261192153797003197621026400801433025758102880033585004263587792348677017688069165844118375097484379477045161114532917398446217790982899259545141915352300396701482447817553342577130142059186439891850213822680847346690938301293801363387816320859117091673006022300625668259883724429390683253751369915981073944986465911976283521507640022095646978253103138700208135211895053215184116565568292033580775313904368451869184281894805371151333968059272148289096341390736436634559767404165741734142600901910765806770383969853336497757186341045437701936214834045838919041562803037035986698273785655534934778584387495621507852404298254840433508673268469117217460844143893526888868517699156252302632637099335004739526908377318488150796667535283025190594417590067452348834041914630195574373883981141139379250625359101998817166133201062958751948877723566774775002408814719668854870655826568101225419288546435540705286772204838895541959973417871064772687885066252777284125231701121481198612367310635928089475537415651678692953492675441210774956999972988396166379072712021246099704207478188561371319350465627104819707430538737631246476784873020909753828564430130567951522538473782130767803619640231778642619285367150823798998748568362959664107792342125665200881206111327041658080619311538860967826952588168448660397105691514304817223102643883096677680311279465099084173281114593459847196437378910823888606548605594238026288917843034203771607676578976591335181044432110537119155310659020996632713945236903132238270340457904570342609917599826925261021676383319754118877068564991124250357288778288525539550565525811874990386567151679471788467265044946798752784887109704847732874118263226711550361057691973066553809975042268984394357274540110104057813835288073076349138978537383908285423928498185957390771999796443196226286679370398381912477842393656958297925816376732950015949743595320922258228593843309193369013850895185487723562329460340268041116825122560308485539894387120257390350307889678734918474960974166821593362988708180428656703963318615774310251085297677279317465765870042934168434204780603726545059013242931050401860309762285694634013736367414534550392424217926948541766110318286740750869080955741813515990028634420635839090985501824406927125937898665800017038029343830211107551161490512071185412228632424801571865211794725723533649326901789477623831303571046300135289847718362827331773055987005190853827570525655246816041202773300282535276785065818780501539670941270075312219871220569707314196069840492449483494066551684640727931852009026194108731711908549599180234475632700876216363612710053152959172402440711053703182402915854451750935735761339556263473858825396091700134015736212757144337564206688480957999793016799538046558794988324237899425515435985387319870680634997038474695787978216643469087180578373895054256659155453910771504762946909983946245688439383902723664627322619981745991817207207843456897357334790298073781067626769893718097246389901406900297714661926337020365006271189283454689924457047528827903903851072352576961203307550115634432496189175158867582868673210652538176550811621362485025240085652182965567085837313181716252319287132223628274858233695974907611116908680451666344383654179470765683376723515666014526906425212168915737156970253686696895018107747321644069178883861209542795623549747850829171313850671154021568442667702870412629661471496573847377556548684893970409074234842359223259266017541712362372680549247148594237339239451832867687419755893091614264836018382692473759455940484781903497775373778864860246198530940523864768192380011775346931032008429773726071357167963681649343978934664244421588070149861475064083445697280894785144299987252875973904851418179528858664049730852033810832292967021735688613243716183266172892373946881828009166936135253810906733654467267541995827176124972428965991746647105332575281810575110005735931760736474341438158644557764508251448124638085381703340332025788118086862835661796798305223176750492973368573241533707367977450598266911612161576992295862584105285234132160092075420259825846886779199455705226831141238475306459865429870922148666874739118106095261940771134386835808830970219443348692298884783702727540904872593923116644236727179280631358183856286109057444654301282281997050311734163973395173731429911321609890818190133200233221316847286161431698512823896509077859412639537572375808171260707012788467817183183400440690500084140435021516936839121186812676373728924373783810527377033648591564296202310943653758901562497077926323424420177903714261858989238237167643916773726461503686432797300695031227620924305724640824057694906471548704065719288310623651074988268235996080599858949752773756698109306070372339044677892020687921406204060932864638430989175804904821834382405848119546663020817225444782895589154677851478972507140637102334317503175633772472051079640255555346142904855097875457091471843605406054053043359870016604732677232571622662477080724556444312846172201321780853323162358890615031235776027994951173003416322068246215162485768608442163380412039767082003590783879666695982521578476437899462623981957229974263118199756053376083820601688868247780222281482051724203389382534631319375663017225701341014802817519402639431525986252207308443124260010967110198471198540434121983319004536823151896473174553590260682533111300682423357302392409553307402049394824624714962296560494356074097805734152261218722441596160198471135203378126356604682406097866664630432488194550325192859358338953652117601532104373894752843970994838589141331711690912534233012164753588336167399287272941958942393103161792379288817110440997053310405643860923509578018926544002332216173738574545837266288888668276176910074217151726305248134066475920578498708439293943912095371499146925628473016562816209382001431483256686551141004146864542903017768526995842518450969689792951159996906643920816957577442191482727039345286347627957387263868087553933282614842131420541465299931703709251846643313330268122883715049977961506967857421070734594684341930777853572209049169111888553511656023786072966340480371764564866711918140146279924206288079742083330155044970774357694703223499092877468498103858972025663924152739296950118253172543983741929279198196500057840756442109712167192490948316730224393578461700192976803165760920404193302375250623876217335892805161229010949795493392708821167707689730327587419326352243055344622904249938051551653654562242676311966471271564663616150321157238436366573144623010258324143392031211613104807881140584819450931185710414269206075935018355919313548620073644185657058683441714432382989263586842394775752723527502468047607957910209475837427445802255479091262353443903129463656318650056135896370607229531717816631672337513450290114740794920240981156247361820146250261198833895914367742825812266642966447469076494365365537972383718953161041265504332361705129687752693304432324575561152316538183935392184260253445402126519489067448453029706694183086301584094991037070491235455598776403640006656634043735077521746334553673965122248038465394570262018789757861671952400411280923225075376239142639690311535267254884512522989723420873733556381926936486079647197698030175717790055111817141737694855476337425847058830137347736169810033486240549239915280363636240171515047565431541893653798213355526967827175727479119314543849564687611050574409832247155175145828151709242703000910246125710575310097269188959673886856651128910327731402213375681325021363005272761127348618873909485150243703051325162972531412307702022651623033134043759704889702032596782803449206595413592784472988480811968173639187050644911710593402348379067296097357145798765480383425049908343795650246676293992733918664432542855737132970658412237831811085277203722515777829481708594115088185203179295211535548397975593655821337735501028879752305926888849161085590989329959083742907953759748104740635990805729152016512794983929005594510674672585324110052177829317229838627818522545169741758762616594331447059641021059640087083153264641972000463889231754295471423614873394415251931713290049846714371798291278263117742841743690236812262206385025418488170792194193149531391878232078265724333398646459676558722327278367584275837001876741893619877775496012835858043306755474116725806587211135542059947989288533723539341966498712203989330344970694192588437019610593390237821093507730933848226753063734011587772211955071544404218773132269459585827150505470193634503275127134676214068052649194833974358967248133701781171861948311813997845544482728499776717143080156764079660034076315997073239139652021038021383818291394082667139469225250441460920495308607871376841358993802918879030560066945043230018304167367914801070400214734812667040318931531993540220844478717874563883460369433563764587559209651778860773269296621666355775181310587722609165687622738789845793674924328746445594511923005071171272330756250810109763363435049250785088559579539804306198348656086621667947641009382793932832146703780028817457570767054297245214382450076683752351361642711819809143069409863822433483926881977812548168783028723113938117234286308213387892669547365454692507873550723899232844976283805854373104116065741525368436938333090562382343785814945732576668091755339455974512433781255938170348763514708382558827956532264184980185616574123042142314350850866455001372982154817756656681182188204380892261747890243326297270567842870902528632712302983436875761592492205616909763135648891746366238730983140414717377590129988886853493145570168963965427824291934021190661398379783680913912027144201259539302484149227974414149354154885501369589125705095570599612272859452139807573247204598941284993928724262857373957013178595706156509130755972437672628360273600818978941498532229830807637882158882213566786182733099327905674661541004755712811496012870512725634960112746723890963257994303776852573737690040458747737957047180024381054561470487304081511849754000129036639817264887039199360607137537287988081790864248530028921350364478563535536261564637051874669915885353928102237883654774878288223960275723395942041036370433031744192501048680446550564038582603357463902557212707915293187208543473760172835063244073962808280321581825412742707135870635024817819996641072498828255553942014749854408121692925514497414396238857772468296755656111878394731287975679692798352856826485155882125558899383993165162613719378241394676011199810553862419140951797553920282721950871791693350638994555577375739955816100682639070251608117004607166436821510724451538220436767734118725790106011273221269046416475336215547086696124915346658122032208079364382424045289895587497922665225874938200153446543423950346003406993136529151372978333100846251222064741508054552864689348229425098692159629956942439226814231159963884209889889310119988354994267302404910378281859524342392436963522001264825665221112517471260290601249340242446805577907220787272907735946942729343488891580825244319230448025757630329733889520510093086278279472867124831091578350998756125792736075413622764114795683163562730189621818409712674362324345126129188824955505267665346478344981783871176763233926323248913111791588035016477907566518771207074252607202631782086969733123808877182509159044373036080384644337889471018381573818614307059637841120619776729465999390230410501496589264728680602616992373946933224079938364510483916340513605329822479862916421491403227378948124290847296546953242489872288215387940180718903575600422544344327944630302653925294568665963804681209655374764973830933470507507647049623418620192901053661187245660198011155897349251710754155981178527002529635768563211757869624512819485429854897320456000854314895935588088610307909231272679754935244250929918521393517025250955335724323696076290376323339135858925461981987691007782381782378491135044877749592715108986250725067464204050603815868051666436983454411534598290535316795547112742469054327594130057900827114271494418932728686490336298386401924994216889449610167268892931359291160779863235293892458918275331138246264599289248119210332053039843573762964934254625306313061135962047261752892033736638177830186330812522327482726802035294040919081290560472098288660517494215287374137727188235689645503445886808166196015848769871719884506994928287733939007847607165413834264491090469221306903582319554584035930989536573443421042097221617414753617770460820678892525653990994743181244424600841990135958483936833262353697594179334646054505989069183980576707958262180267951016066003445941458067943802403803664760492925857130590696701659247414359299386103910206222961045009080567613306393863212032481945499922983939117545562196828689347536774537023874548799511657232053713010970591971032503422211103832215771719982698507796588135424366255326052287084259040002922732780354971772035869688556943992404662023207160395164980981572426651611177241729466390663903246308271639898979634768771168220971704854106396242405377511024677923002544836153014127610547367076938000577220539954336674500216466160699196053422984654651324390966098902544276652320776674557237371796087036158206020957761257925878058688589620548406989668834914547919889923526677307720570041920300469505118544687993919982137001645510384609424192998183157636680061638231612086373059726168550038043536549696430574322894935348040081214435772121371946042363395924512677050676518427615242259804265388201965981568678573519332289727202422211970327209598706612493169179717135839090264008627046056308925927265210476968837845521270145758385507321894163578960024116297296074773543522698442965256499416135360932019389436163715362564080233491296966121720338641391174316536934449166388091703510732077082464881104027514245145752160817707152858841557255514564849601234413223308141090269369665542528808993308325036363353395966918623904252212165106599223982611423949139278229493304422473647945089847008879155976775463152547291828414354898853636110185651317954944512729207082659791589426368887685559764486144064730113719074837059720245631606423620475901325515981073387978297590658384505271286943400861937524562472102117447644260399842066017987761358778134592965611777253594346039337278281939094545858114343181851975385972611048405110939689032196842167995351467522397116506230884097835576567001084545315034313119964322851880014975831120479939716519649190663189384035526974807348046745027526374095804542823595643472044726754408686578636429041531118012643038117252415356087727822771750915040850587209861097470164500611872036385959347840050484400868042021239344192185032088213101410801875438130669850304567883056687825386695943859069792500607483170635874980874945085073057178459075218139225754605219932666085912484944408670459279362442459925336407542221570969425734054603896568947596581662366308599376386304912187481780365909303075894000761885216316433808863036114002289228213907529318768109243759032035292732421097402915198291598178906095146355230915072017018347383360786837189465973500473459718486516374042249323216167270556479495702982465056439088601304925255557884378448056248536259561056052369360056303394068549334123634744004266271685022519439379354152971692219727445811604638788918599213862057438879068254964691210729751440350388099504458423739288229322938170942787659852454894675185061080433496566475777973974533037606090275270758291471039001523773663687298102354140364174761449706202661931072051965999366388690367180694466596751349934624045329530243899669643645443841428770643783994185668446677950321546091868790701120070848699508274250096361321800920111777742404335090975445039856390152245818300578355206782040802286261540438936610503694233639134357265501858806113079069847831567532991837679461468829992674290412909244493608761285176001614581872261111362425182842463024180195823286209165083033225147038847617024929706961083889824446385017816941583733909999165591303704572632691151037803979150945756770531141133755720975149675324356446320305744151178875216590795481200766083157949330074488789512867831080252964301885144156462788852750810808951034656979147381869534235637582003358039981989571183854335965911512498676629946694053796383343852443001096322397667529958674424569085070453801901085410617020462306496143764438609399540283782635759221679341409050655169989873604581438535595495221514062615614676298911081530831000682215379252427444426570196108324791437309738480471384643657012452015870256331081414914096197430624463502607721131181512361600155590116200321055742473755323859504321539131266737546268557009436718654803610625600099926688579502412026784436136499908669881909303430228159227400497168276244827218848585215657751937277853447135772534666523924816476161706678322199632336403288310179010070933471879363416977145997763410937852205683892745632133200054554420839672640467691222908888951441405474896792254984817604943942762190434258991889106974067666023482894787981144360373988564131401001774813848697443359532380166279852865369571642861855776537070770541199222444013501029148060027960908632551330086438978708588478742820449209597846286793394804870198446142450344185952910402943378887292074301565443261309913648185970640638573826521976600923607579266276794957407769990707862982724006890827269985527649606296381922598417541188919674909867704620832519656932516574355865537867948127102555340472374392820607004627850136732256820326764101607778084745735942825550644058551493827172882511659390567239125829944319387301012955063747305393947558451113610036754862147537621158246116772411764975983342192308464128875967102490036478931498389960224149257629268003499866543520649388167697855444072285256714198474051076499687109718288293910254289540791100790158636742139331394371972079291231906297275730259903757071063908157718209508678152676424633794760816097836402020905645921708194486455040696583156197721458929581563509548392708308088758557062520340815153680719829174099167144009081134533786939604566596692568028200767893912170863980334519848803357936448340114014818981118230094290218881905816239465069676565312241443990167694089045861327759485422089672323716292210519001207839065971038290477280528484347857038163283553680182249384394029276106819104878808429572270277200911139397110383691797473998060577218198820951095425863005316628868700154807900573707784320539266444214544776101695576406315433070803743575295764047021210530231690171842765081974649123748548147804713090916728068032227684252932327675302960623718066028763821011946651905753667963094433118861070982416835812284611394837370121560593199237352914674955779747504072638109429552172904263086325271986915128040079661195422556669579382589262210773527900305578706369111606509275671680211769313246262457052124899193031817988305716425132856392538606233756204110863304085188512873539944369634293730716516806866079803107505092839367077171698846255769345962900512558545926663680870958732190763716322430152174195522126235104483823538272552132187334164618592548523333457898001450771834947757457428029600890883717937047077324519353461864433860286368020460524225656575562684495946095763603590779968008554099962934555727011038853429113979111236152586788427793196761068958197642921887356348681749023769554360870445013723846535384130393290631638611456414336906016994735532113992639065811731605871592723920498147497800868931020091316105321405913277516850710153601593873685764956747496764212399108697815356548739103590176030733909443270502822561595112667432101489096555950209520656244091169804001993038377673055780560223906273661742688805127444205847644516392644990622028861873389178728239990462989902796895495291572607721623664025409037826403124368163629741859443427030605336938662708965232342795917014269458661691630270717257320930337836275586063314888554470296912326753447059914025268002353576076329483646343047917087496237254177982623415344339128050892989121377318950822531377022658208431001237652440059684673546332118518248872694105399226764125371514367609301665924229333928369148920936357299040145484617530678330918856580610521774346226140276293999834497471235818654368229208127414063427347416004087633137752385493543226847289897106162046834228345038122631790557098963193576105097806824454278481064248191869911550417050808279400539768352095128249101614481982224846303990489983625411805870143901150673739365729188578530280565164838555278558187755971545603989606722082316067141719914637308399249947015334699208275569673029139331559032335546160120340537143477605163193546747416162543328384242247176902839260711669124619001455171611041099832695150036217141500827369209782419575826899666180598956632693762682650643314013155006167028870812431410814144371121562827692057871651139546726097942839023144029248105135984510978397366877471838263990370786980885744977793390317882669224276919719850130431720744869552012969467208340960899178536728264110929487413507173566146446146968053282962616839443848564609439415452359205282044653804944680309891246573424663819106047612596922114075623491067624561366901277344688557266333035965061061943718336262544046078270307229975417004115232786621502713485605216734658760001549467438046949131167806931902747377700985706010543363016110213497463467114068322176182244628973602850097996988397705580019842114064731861132489407435590101631640861689581388235366882410268395749697402660022654994700018236612125884474953065568607732579227390885309276598534082080785970019599671007594371690502405245471369274079302942515523961636353287332346583294254799879340150217014154926738084222587559396190119624729115971699132033331360913214811218463952853301743216479974216232715784618184442109601319219563859619452344594140559834876931472896065358265430817390130091258981852172914050275990656803709104564558201639994533777060291584142568252403021253366902334387096362197575411103467545719349176590397005369569583267165499589856234063448705728126276959254461003077507583364559183731371761950087692802760920989170121658074869083968998585424887397979912933590944100690605879906564674880158602685434551087873016027075092979675671011121656888609537282237510103429915346362119654023533714708605679534104185036197772383558605098214323088936355490232871739737796774352544146912253780182553655237819857087848960870162564800764670361861358339251640457391681166616979200241951888455711629707851478446616838675099049358481853185489052134035658646316727080412517564226325723347690086463387168113550130006172653744242530104284242758794459763693189958923046354133719601716539252947125213985785175060468859938991881825609377388138467751765819307116970483153936585683198490724653054350226252555443298620113829544879673538345308711869157963908764811485101046379831810674506720177388682271602277871549401038418295587089405230521834930287001724826012401959116991724903014490099304133702715869582149168972482921429868747514220857758365024978531587875912402568004438316252822727226563986561792704924190447440500411064677581610259911090685484167601895695913742877103369290321022061951934310803054062112828976062866312970923466231715932647652130262911835576690860822826233268553999746359837270961458104136316223462068752849626482459621901302932077313732853434447486911768782507012799623745400782445647624461555783760994549985439288178607576643760770357573775289598758939061944305384783142306025009058800756893471621221446123923318705086350738009240167880367853531841530904952149070409219470555345811547930674193231667250232252195232683996590593102707396216114834307884574564610594115424963700533304578771357012743655062572413058696692517135140115688319661365744198119098912170009531302124311110543298835247613671815922662316186624216112837317520383737141843877842037366795534395646891867934602274603211305688917620455828917641790369415493534460932982808393448324148850405608271115775748439861170718752561516894945733413915639505699879212757792334938934065777128756070293049067529221318711424771926875820622156997049949098159023040290615988627526358145199358040202608277320068896444999709172156816379179740922703946988734635462052465831880389073642842301070513392049364629264368085724237078541510709963231282283291962663044271037730538846562578024259846557793937783313339351516669995101461959981881221094247467226963134099574010739049334927304301084424805227889547824656466692858277406728199749808422152198113532379473215572164467258594778752523306207296278964020549913668113854842973119372437400785935389430033312575383869205565531174714937204961895506913684624137298545232526580434451178290774808644298473629856675081631515809545513082421662726176116378667691456958618126616401428053018413742073736213468002545412176887388586685947119105911128468422395755105864499615143620080025807248761620059800326351771770440537827503935501347739750315604112155483122427875472040100659831259583828874685298825100019261242104584935807627038717923305200966900401231397639831680223691978460808380538952611469968249141667540210772241171906425506215193947960407533589502953843512388566968430640676841495207776113029486074071836522319309224557328318821423148445605069923884941439066653613002648797157930884167851811015188393527236967942748412659766135025766911153897959093987976729758787415826461901493876243976289128369511722889693878795603726452210965226693011351132200711915986960702767794276106321760551971037038050316041849751913035468044795245859944305323352707798158410378736843599043585949063632577386509418863028898828217419773117087252032248237599621412186997776493829276816228049813948190621612945987782820177552442029803864450026244767537860463498871335110846986902809452400153256365037940132706894288423577014631192471156506814535139378375693004026436939240834750285639586580427992438585498235917068225005307919801835710450194845928205280860112188227800591502065795610158358373742196582092514807856299853675378996259579413593465403580170562894896353067450692233495246884949111441411216909437890753670726773312230116616552229883164511526470375154937597516608928524890573913243459507494969511905489433167347036612359697412966436250390635825010309199355520265418014420162761461165248849920830455665574493271899679719991515816274783199356313297215556185405835893538952871895317980199229539059849949758757256099531241231693592413414460028391641275746643277637804573597726830930719573837541026795603973030709758507563434775006832824879685169425803126950809683539145482243798304149079682274235505360034737238424797294915743173740785333936084289954032260352343832413523184916387943918563437075093311017359113329657742304222537417805039878386327508318779242678410238861494313770230516354024552722731920048520484494209248412697007961841757938629802612047653190741901426071854518267970828134689706660394967023287402508061183352637699232055627229241776023995839138004707897278596499273249271111914740223781937132593569583360565900905584888980020549388922499122034416214862070340487832379857720469321921139920325529638251519946410887004321772332451109014225349981121622374775154044770033750002156823401533458366386000532874877309214765501159099646228685655053206655415233269380583405953761414120581117634116165684642158588629576143594690715286105989198587575699244025506199593909487486140198969463872537051655155384593354661423689231633970035411373581145471286180733780529178059696195547029746402160013571524837531593148918353954450099520804176346657294548315365299437554628797807440913199669160896074547312112927468973662050278735671129906959879683122188111815342843195268775216472051981467992721040117304597610839592129188968355848581852723142627860835987887937320239461956967428075094066039344902908826329445000424775014142707233837364899784004640463500627384958565923478869069592509779052664988584928932657348164388096000623069386358381023890156975768184926684508210388770573189520085156185223912962968889727163156580564708336757317025815106604982757370651643874798252026151101723952200359337823387209262808071833819692460698127711443191483296796227738704627945360533085571425676896711697099970094285879897928902003627555100433119694081149829970376077609429353621328897656740562150134645378381792434393584944385702630197069622310821404273078278685521229836306522142041484611044861820214027463809791900138456049111355569235015304743299583737744364600917443011228896930832280316989426010433628301150228862545032165951515820630800545514966584656964876729083400057013459776171168212605919976201320278094339698294568425188430262380026092956835752279130727055901788872333852190797943887495424627622991679044362408867602974741099534137971482540307007417391918533929167744471494463861502984785951318924852061484656636419309150104731511143536817439920231742333162837586237807015495967901080462070541471463620845271784555254971920870711129552791045143749997070894716767513082697597725086608040294203233104749354460580804077766357732493091977962650704345255310211590470661524422570124410041887106433257860843842491252898035761486636585067133518333285083107170396637937078596876339811953737881071097325076442530845385673272502955669117859622941504818660910154108657702942899710350626967578962135616452890230625553578799519891119891703439907131926603998634001378415619289013861260123992752619762586204204542208880111757795281058184196441797818816135083804050130879401830918221051261242922569343371591965929375252064053565269086690332157112796786641845007710728151358764265799633751915549094664389864600176081571005324665424335897979942509710492687698371474491491081365744023437163916648547079212180102374975597121809551742318585556859168308740530125047656555258786892970903745306969646480413554324183098792377495639776420571210654673883906917946847529678590755742557882473823757597179793142027157641657171498278710154863600843198393954041060682253770289159109502926029524293182957943503640228925445626249878659779521364421604012717678375773459181871055314279938582564134334052363142374850605141154329662057514121998308669294529886384968758122651703722851266685629975256928663565673498566582665500139512864200407052424744123465622351523437643402216675902434486823246426268352317880323888184715660265232479004726476412772288864948224884514794032607150823196827925705946036429639464935289788589700325181622011475367776040835113355724838656850747840378038557181201853272838346307371906498506832863283569764570148406341863800671654280233183156720657251415156820275128795018305658723706601206738269511951584893437419397903736941312598293011224326575195216554540545628782849771199797604081283257929517596448266585383078438007560836135375838486995026213262268025894386350068557450818897679403072804946837183632176572940428213600223486567064271885248819500683709503691485147197052103643580651924970664485925230084336986717112011141756204578463994578484471609268612031704377246088158974426983264060599392465653439469769048792265287009827698788754361494612017673401519310040666499086817748568824693003153065726377025637214993989693309323084794201469274464181581031412574900764710212925863511060863201950274818316509773283276109010684210177487710446450980434906044452576182036344473354533119430255517743472772776426456100615072985227987055884594816921138462685920876738983209069891649524989394247778375897796219147710854547069598877801368103652038185579318998786442204086895686330677585582728187289503068430947784670669293906822372390883202174863299684727007147656561239140703685997120761376955801098865766888022100823336282242832072737551291014227403078144248133182491904935228636586845063438469458802569276265183468862067633951041030443610959063897932677119379542449287465368778949925025018677267702608895221584158360706729514285515364603454038446111659932542804001393875894698455686327524494600295338240815490295253884974504740570851993048613581540238784634585229230188798486402450868563136371338838547481035104337654272006118806719462009057250818397508000834597078076592615330945411494022180357853788159483711654475104252008587367965628457278366941590315804111760056921534425720288065569520547041091081608764402215685925820776336024333029359497146594524133580606509249443321693918001146742639381727633194181316967394494246361148415833866949517733722268688111151747403704937663290469283985341986112336203172748076292373582859184320685883980934651424378976076737977474119608338514176337633290554663957103347040694863683289173582046612582681658880558631444002748064193480592138930369852867881975955774915459151307951690158459608876213706621764558132947327498219401183605838508486480035152712465188338171182742106315285611109145965131278199224977575408742820192360657237471726562828601705779641749242499703480819082064488483618360914237442727118934125632939298193757850117882129578165339176891805523522836168341927760935325119608942126065757036653502347534603923965413919524570417448146432900515484729482316256269520513726750943693107836322101155619187510008227506326694808183151624863401471497487949852346495285394130878801373502987290540263805909436524528148845922608179358848434611016434488331219982110334164579772852403847592703075242269222420253357082797142396480415031501102612436793469457952765747294540082480732353039054640664022497252775888690621201619849874335312420041362382937696559328338368368780373653656412483059388849582570688573254195434118036907030153402464688652545825839127954306552188858759680878543185089847740375022621869773823774853660877804029318682992373048080648709912517761660152529599710636714649220017395631021028247428139668722480015396688313305600993777339224397209946064821262179741549590904446891219769447411784228539823003064062601054542334113978662282850711900404385402030748701354709134237728022754922824058090720414123088150603203436000905190533939791335709226531498660442478540221618547086519085488001857971835890821973854482637753905083220666698617039305021704361386926763169675735999122384632128623887687881457998684742197505592965065610757849481157509942908869586304518353501941675866661969523483036600352903366435700248398393391300978636532114968069171276858139176056002035855717265351425479467633217284383741703996760840727814404430277016055803578602730000970367192210916335081033200015548435312979665708898101462213325501817739848808026477910297004000043150632290948000466836561369713637239184188327382055103440404962925712175619552516019745724179358806751158939210970957478221378286734755318781024812444053966489303716275090436544920415968560422848544575882363964042609685173125911088519511282520258879162927479292937006693909846649513728292925040174913080734344260632558010825066013457774230968574105943608999891610579949428022443649477157285365126628670028252145145639859788925974718027229469272209832838160317798743857759688525206939510503662681202821497451740307483598468601028784146596392413726795060708893247844111842044569618208197968392351787201935059498611472563665150327082581040989410030101872067579658595570298627826134820060422704501804626703945091140016247443653961800937354868379847287857251800660112438367853532779429345713039136086240048628228375849364253989570824361673283975458523223100359151145326288488221591127487169181461955543529089318049630339736906222426854752951294759003679406060028197871148604909764554200487378632800299038602725482490279699368055160268190539355611697716860463764719734552481390892850176276075253685768701231736222461884648029062998532098791220049444183718709774280450852140308812799699531728241626206243216235680531002961370426244111075779478018731140806715966866738307500305597979690245005816899839779255727186641856517145477077549493040751075643149382476689099153249972600455773588437378536151748793038260127715693817210514595095747552191198607050002433729934634494969086652452824670326038738020348686422966587871908959421222704706669239454879516163777906633729736118107677702887950894610586221926144308381708851280592366170426598164053630047178373195240803137622025869288086876705609056227514326697026257671128018117781654638516773479757499404623760247564697237908461600033831236836505555485949720995616619671976190337830273624324932051084549344373248867930247946856914725625052941885299847833504666275827415947356094885442182145282090820135434304234399311166585548824493896820553331362587160781152770090553853630441962404574604199332854809325826454525376804601974026239204771672515643709647101207103482277333933586319861727891093061964823170620714612836704650464326721873825989041361531127751671192125105177071568366718691120560234313060018815441614145996183231070979614634805231647024450511143722306594858855387279149666774316239854961522719977516068191443392115940208792652803915531817889389092542163865126535413219550607943132636794165059598239584950305063103458555882312082376066786532783005208233734949036715757214928264344494678094367222632705803249127947000041610461260210488185179403595463117540675519300702386763195573992651365070618015216965688793144368266455762837387945772564436286344036823581438110477696227842951017821465184731478535307878427981864212966365713731055224133201978245451062978885559651215237262923571544680525474747417543118318233332086958706527106329519159632257288085425739905824970384353289039242390493131829146774071104347088810204165896751755620738000195030943744188861870128840946686083466085471353019917385713183179596351207620340210426548953101284048374678615574379383322048577467844743007617103971672495058808308739197188981036951959578161718682399817841572721513267067880780875148630783584908636502591094011907466482812632600995584303166877370257435663782713202623823343758256027298896311493713997095187545274041066838992558986203934744819130637174500942687846085927096751369415063000137600472144895400214835107178689998206339258499360371256628703528189310377494947451383034082468967010874806667753513388392148683723742881932169446554372840647998031373688406660967859412606480129266246698197267851151121174543333863795827359278815773222125208718119985993701017468546840618442423320471824246536664668785213113046465390761564886158469298606371669528291584806682407739800558300532439900960660049535419866240288696677778052298152970859559534502415902425932313304553343178407733768284481156076362410483826239835848816415766162913222572944056558566748602374256400782976440558191227309722103773726039242630609423159724676088671270577217258269777958227011992852008315046514987867834871988299363723234969457016221428682848416142062005480951455482853755633254500314987136204429398370888296802980422340244864457498689503017851423536436986526517274128145299832309744429790198893441079251712791948322479112593514573716571967375572990901377094606536804075465771600496904407833016068643359971620411324586458358496805025888913249114515694100916401708301029304936304464586256582447226812673323065635653925955619903757533126615920961789111719483946817111541417105903171558957587126189779014936419531042360397397453268925797978364132109675001282181666180837637419793799616171230972300585075376416667336950144988716756680406792961385496788318567569302642915128525767967557307143431252487309156664463877993371957068111692402043059977885818231058650286765803932166495361337414583854002029874774635535783619074667340649444924848442688260130049209880181037803987023597717041950325550319504097710510773731890544901199462436306093047663042768861947726673476384319873902895041092492932970540979841689488524032757567498031731728913874479358047153062301167712952412977188225974846825161168766907975353637465464621059511518492412367978756311028930104615477926092535085490065589319449261927273051917366353476334706680342236816666390955063327779477142887143523334135669149352213736544513005862572563935595344062651261455256674990645084962262695139106322316390599556407678078572504323914120308820028180344016588046429209419749758482117477464236480977626497827005001031211651942046583038067513901819897803584782694485541052097358252506659552599489039841278720479118664214175271525662302356556226088184769885789843964607293603311970749648169485247686505683623610639359055598723933913015114328701590147629357803934300692727650459708049347834959361427594562053677210359247889855794802895097543865316960495493677284122619605212560113022982495532527659759151633105339954781692884205386738196930803471589393837941852869612913999760790995064321686740103560956068835612323555754039327526492172688322463706927965479422639672197676103830023053806523876753895627952493621687629750654620245961060827253768541883214001378568808757392252736229217177305995346701496329095043494299397589442817269826917755878946312234525449251519482989482089670661594635923136011848617233432601900514794100290828369522509800396081751939483513188411113859809720299698722739385383562477185384726560129413091865394995995233370695296206300128880118708862518950527522993004238467136590805674983487934122962290701705470580157415999769154958350242935332062720566502938709636999222175282219324554692704628892997061992483075663470412479354609759726920070813909292572051478997737492268451241118050595296875935849281457379476727411578431188134345709662012873291146735759856763778168227355801936050108710055577351584299543144064243974192882209902083821609900723785411177141997132465888227915213678757101772782000920381291304295754467762402934697981887669826140408939715212885942613838195941442191569381657275103632817863778606001238361821745872590447377351593899899458413898534057605804392592720855431242121276003957204743173692132127722603823015661138947591883786368629252655842722458823792131137086319057447510036785346503639938622025807821276302282854325487699529362300056755224089454431648511537458184377846860009367614268567516287669216899053072648350966093159016448406612927514425285396296731081251241823509271963285876700526813497007464347364876530634903098103776044189971432769758000278862913826274651141359067019974016308084110028006395096491993229141351981661944995005294356414065120264440993965201725255056028962811877134663960593905910913890302876788853520865756866191267620498097916926723041950931234795388851541552706825857324037415563319887159413410234484756285700650766811632888838788647778298354858239224621984088133990975181234765477167318524781711337731288955952810954574153655948997150556954791738866119429895951537078784987958602630097722055993852662796780132388914835660171818633929961612174930173717569908480896371594424342425850449332217552320864511839334172226204762771694033584041221410961214350229745748149336406924616735763067434211165300414256913999207363020160043962310223216474730859692900889200103009902171085465814501531682999437812125743456604926859870162369229237995713084956107801351307887437869761854757575025845968945844707418980863185661843921596406791183482078200751174429447260109417145671047803080425733778228937064967885346034524566694791593488094637316851551362880623715314395323771117860030185899809309179203377879031122695902154405493834209727315559961939367483719507936689909503069552607911690313404020575260895513682722066346352754398423768513105521262880072870947942144730645389539436419005338850084196858377926359352629249658308494707649598471175536956485962174286346626937443439161246113440186538140441095719167811864597785124873847216508353193321706138044925874773196751345762537786884264844235373812554381471636835439520153619098635241253856470686025731261308757393193826995769932951252853548489450123776692511856786291225284581426196189048651881378009863740536747094100216033865302214780053631320884727533930167364361976778119975566500680128744716075917603436429972989150499944315628039455946900647548742041759589037964991207297710172459933355355699434342381374994939327275909341228293838015214775671989172565007873617655380606713307209668833585795906228457668347607125723260030484437624016578429911390368110328820259597582123684641978372987139981429307243809743414114017575936627873560767074829014255252433714466930025346512547994129017369256312587327178140610967737919365997743167590423799552761800900392646179441454663089853036734772020146038345414513836765673448642490649501155436512170117675629739565276552428232782273756675275881561164431956041971649486917768547297094371269538365245417851877560827264998872237900181886911698567297178067272031392626123784671576226923055468904575450281848104425290844773038958560300450417389155924083063181795514495926158425816879668451758152903083380857101912361816911682607811026278363113972545138037702507643632735807556165391330012669410161012557183692532597993384720838055625756345913724706681863876195011517913045247145443618638171696693667199448885130653360096418906294213185263542404418261396634442203278436217415551469382014908964866990884868487892600448103449452885175317139225621386895105696915097226386416319503219636056692264401828482774937418966317984458113686388290186231327069276726186439033135907276813848378538796426330141527358055855165374697827344817987533978392970084376635718572077737318144551330662103910014713909681921977642115977642558584289280665869384838974091922503240238292725032952663808632516694526037563541661332438735325925773992614248925225494215549912205173600545545081712027032887138598991622849422789818163465067377104303934025427578344898756544061936839821482183917198951683657390693764377084297382129371069208644920073464067193263591598677800855066105125106131502728196186445989966457279642546605148693657233775790505569845921486429797825482913077830104338866049288639316671341236895937700308556469378358266258423151804106787137110456700096946809677102161209545847413201066733008277446798495618532971425266747042398549414659720636558289762269876516320456343735705208312790162467469632396953878792110879515462437708277780933719543716990659491822946104099753121707955622985212385646809083339751003168798054629725655165546564661858575977760853819956939329055160199269098933420763452156505886985325140858382895368335022773097365513067935571155807810983338817007742957975598256141990079909988233451865816735159753768864645876858221431900227126023894945059309750963472235098594342830459734224575607379067043188166764837648020848026398788808551173988493752428017874675467867991141586592735146070116610549904933483284228274011680397664425560708740609347142728006225828302419575587595390778469058418415377087589392657259194945979681621366012903950643284288220050121864033165901847685110071452365982096850537584572068390933520008518736803208611033572209656208285186571550468943709434202461440012826885310082858276206048297809562041180698070321651137016283646928192230944257256171566357904645693535465967968187444412892351262184642530056629541238932414267146080608882269985790254982499936152893007352513434154720757042950608170980816040963482544438336020690737038518737815830597825331369775632619497206101816275911255421427415267074587990667315835166642972064693969231546717460979650018136523592494317151807010767327128636538523489044320361997066560778702786212132086882088121206816210685095076958132044632381237881833424170238055546465204525190254243843839646464951543628703293197823313185399615070120286647261322331899729517202678151797176156238671056751846249574267418010800346062862366222228523428336804615604136979889799789029179480869356787647238323780309579582053099950079857120642674691096154653663140300416919132617988579694894591296224861074450986609292590630964757338262900556234272833995589394084179158785206479051898184651331220005151622108611873213189104131328918506471626407287372795344906653469475431520698064633784594926690047561700393229343409233507816730308593874383183761837570608349953723560564615404350100855966579077612787211510857100673190565200096505303072863353822360190015669248129982883253375328422852881009105524412625961989013770546267831529652854767360465968944352117381334453132540536067194994248540459859252679604888541251348054879287311659548141237987370460246635134166231935699533784665716280635731889164464474110160612263488193444843738161318681414680053486640871557761469310095361462175934819081407968157884065796409402242425514926451811994206994096791020692148242195948664141499889503065046659915208197301051207404712633745085529245301929981276355193567537204464267019567526755339632876976884248859635518470264961473485357642198509924606662007940874768994530154643052540299728040834268449068509955342067565742547402028725332489310833047128345666726301081636235537787420790300659040237177000110177629996340052094363400259893199855179666124294747433465377387379426473216788410386238513424067772679700079517309814526963348380914711322486123339712679563867803088744759144296830304621741413952596753988411870498885923122897927886045850894660016756770634173302231150757341221206551518412479825123019485461099269646920886448422643154406034733469777286667986130592090433944320181153821315802657168766657770441140528551337939592493201464368446370194363463780307085935818402268595832949684036907862636324520319677113147847828499782695408787044608448200772595813289594473397028530033830380978819723744791978687295706480462607181035764634573507611062903027658031192673086742564629029063187132921459296104604756469986125657478848574591407032383042466103241653283468149700283185236627059796159417443678910457877246145197857326800491654110020719592817643580354315429462378148343190890481759073440272288902855632327486754884896486135513530351044687658494256647348812769159233770736391138879021352507270118878756564730600279453988383472477060930358153034493965169409011509918767176615866076653837892922586680605244161981089836482753783426968830128312634537690254727795401703694051808117967620492172058416023809663847943047569951130343359380921057365300558563066244311373137668324965395402598838790906069678421351133495192752756201484230472562730527975195257203902983933899292147622357383632810738353994833126325275501589265988615889787786475557252113002335201962751864189199229507832947829649790360976562889661305687045767078188230920971753847040718108459890749473782815009946296434789788055174785309790958520663646922095258588944425391249923015740353675917382372916404959565413107096699990573265829279282905725533009814427376569907804745157771494055837975206547914603390344487432404363985623572614054753500775495682459406514973365498459651593921376221332351625709150040225154765206626286050223636814185426554648259293497693306463366816444373439361903258933333262236736266494205045851356516793039314454513803924897825595623613991868910155455986903576546529190947581121594964371063165696049322719334816980080665792196721690528714042711543598027807956347624522973603578669289693148015945060665478794202336375514037259718823411703660428971107649222020917497062084992988579621681855896977870114729409891497868282609521861001205375582473727850026874092742409713260211631040315874825856677499461024022543997840517932393334359174198938168484358143510543706076296639966085416116262805274417126799878883485770695420613175228498692999048569061782050056549928113560883472750616025600591743737686719996088364753434302277473801599484083094853445263880411173160845108201608613159667866571889352566838285441461908949551987073760396423480484856258969588345457869425273439355105400131250906452526283528186713540875295008077712466761913629925043124180464794500284050366455750170438191145868052572502598589025471747599989709967981862358945116605218251509459530017850772768462528324250516710612116241862533283207289844642490626332236972781054180149372323870897488552730799698365743532618177249346360412692454691312593560613724494413840139375065546519950759158065187218760415578110296201145065048441162924996761382613406143780933183447243814061256444095515930478664428043387529938360393904577653336718479487606843233269919377161767048255373018005753076325448282985157948729586982179448887412691629508593722477044635125664832098834762285919717489231416078889298693514095960671214424111087379313462942763797859387644859618994053686071854679697848422322415144214189319402205861601822775091607649272781849929534373777239025739257743104018863255009495714817834544170376415412731321913368996275718390307311126672250220669107787653127964296856529358902973417951422266511728486661837572669856435090561367021657175240319708155557256616020138906125990172503754043510524524025704106010539301003110992918109079510688687859048954882901487673406840446974359913176577976235165914270371518933073509143767017355651419687550710563921695708181396907012892507984708323668539931095242336746884810064104715071831812536050345827118268697361427230370486232028982788945483288359044798105027439437394130482437080602905157927747554596267694121719286443294257800571370545916085276127546941175733885249934940710915345912611219528801892538606047031752525839731730994625629731345799676663982199164114620994896963195369562115465164683303210507032894826802739170160149427154295728599885057211453580150958317718937536548795618029487352530568770495772992811162976657371955678000519145089287635615741167406392205350972877721295069821321296120318638153783486526664082201664280833970348110335084930996775199571371442533365023924986055049716333850460350963727377895978116819391387270698267018067408741213881277331406467034435665990519507959805115712452405654955006373705467771491894538439611273554384077721774564902131319007683330424288591770702041552737387849244101060407994089048509018900122661984867092967560681183725596761295008036435541660781598724372523737610550898415849431441496738644172811341001454670949459175491867580280507183925818624297022176929804624042772938508044852966170641984379181915595706362960586576872702754799550628394253257652709685098653929544242420859425220721473345454331590068035695955675731047991645068948039381391659936173798914891474021123433893622861206870671954812355194001797055336739304702223539914763024014270043318664068261137533436085552381720716831418034054630765184343055850069698771732563218695400581755076417705032566886846739946116322267552235741769072898867116925630198182952057512924736301315130224364954020858292331695080770584342524407768094552047314900910499767403184944237121831877100057089972315578322279773370540077247107361714367780171643876075210226443909074193302599951534194730902224600901636131504461428021714919177283315215923201573067280557968109308282030520310475346645963596796570339974951833155290314347057889319188526971467286061650509084426390885414713728908184376202184274699829348511014986691849165727446692337579450758422320442910288459045543251750134337671198963079661132738890092924858120665523199095738137036596925754830383940262967786755009848968132417513384141254880629884642698971079864354853604551732889839925289642253704292567264872042399368557813525690493504667277768488912257407125133867637659288941506945838314466918539601448094085775433630224059953185110604343618214526948607030484578365989999557184401438099448504340866353541021478215227226649094984766060294657367894060436292439413745420796028043179352892316412519370097103845960888375225004651904859826810802723376664857260522437560050822439486629512273785119039527903680369212020896846339908805132766356482567956709357801729169665580837664155380699983372173170439835567969375363852782612559985589998130124149625408743899253961705270002087608244408616185338387640004635613116344140528602999181461707594281881226810029786923136095139984989979082862410854807542154879618908181030374869933627755061702594076359971148000080360923192889259920451924375545830161957051845775374711330104247112129394891785966126597494557618757370477000253870284835023889387572097806313335389105041315439961166871438507514830103823150633439002056540342157707052752073435183014809188506984899836050729839934225835169140938845811720904760458876784351841012767088154040462172285558121154841658895653903652465546747853043859608386467689880112887993447799152001875879679246910938191913250138166020433635102286133921386979652242506900216554320199338787142498696782841249018373477627422951193716676252136972471104484667481356657952942582682045287597558859609431119695376890614895521361179393159390304787370648319380715137677082428532449801416629689883056944613040756503828016125231635881148043326964616970315494910393211931148152543452918586518413338809471313314874375287807218201028590239931405043169956289510215057788081950369120328969254712283301274981657877508542810323643990369547641510684373481419225211800376237432581383359871648255887871143793887326294145276927081592654104588315180848624436588505195445711208965684350701665027906069533024216396353465888454104594553277548803298668412509654115101882246613526058846665367569730050019642865511936726754652873791095624211999591910970764392664478805947397079157307118985400376881164903742786771969612997902637059660886091389903442069521237804139542769420906906778426269024710059566554094803835719265096387159007505038846048341375801877306809545928522858233487353337994828731890605120840910211743778304497671700117134968025055341857348595772092999595877465262807154689880791663258605446103722468458579249822190444862383381683845512989234160007441025345615190598877600592132506347469584425272871765525529838925936261732098321564370473238006224733156545411650005632912393525458337521829738607781336814205122525522323675694091322745967541836175807355367722315547632466732505547831314375086182263010774632485270271951789445734953902706675511044835170157123635903955515990859228709161038568632580708020226005394125776946897376005745899903830870855841637224981158433639824810356052359592471608978484234833600677905361845578271724510286086706074880339787956267198116308916800914002610285254803676374694164070288726489675641281979836626720736736974917321720961501081116506825481678650260771356614912092539035177809725766791831835131497896643593416491306849683026052832884965634307697046655694685188252338273113573844486082644787583214347906732840307434708585893392818661097698577022415389167125481309773993047494996060144824526586270545224189802912204054707162980730090495246173625831741900605268685245106331788403496865770803766903643743115779479689982773162815614769397247412069837687392036099616825593305935622855920558694653629109167974605529389523530854858567423050183366833803630583192875624200544266681786952624517006870464213456678437445882102812373411793695746867768896230648034490823276850679285766186242230501644878041348324030782325241074744867599960289271747224107950325473727016038065797737221630615743302900042413971563161282788630989761954452307395841860638546072351031807040710403832109225384940216365324534461475786566759559055236922465724482362318961702463818649907267637387713826457864938829519230975930424858329888172888718458296507187230578430195751308587813018066570546959190464234980342785452518948841324121503197683096795251563576714360095027358571025160055231583928728538273039224529990996489861057668338412500416893417536787818535804376957077745616831447784121692282647334935752876591742361833339052552415321891349622877466229515485148061626227158914012077705787796216207275901811458603128437364865148256333513133498258107263400595899364505818443973276337718811255521156242111267413727816456648854664928284391355740758513420513426451766174597832362372402079029840296857595854317255725281491676831258790879455195756415588485737286676027638250837006977007317265423296197730654778591148053600176878214360017227803280507069628764791115480521720889826639443981757449568857867424404848653543986966839020939583817936682080691048342442260670995326411328634131311400272249834687262172762614532750576604763058747091109888700958995193870655460298763016191087096002553835882261944440904769219955972891335947671532386809717993804766085383299230976000470591189410963634737415796714000782342594390436247662258094310804519789924023584932102750187642025698383654242829965524001741319423269973973761577359723946738712305326187898788116293599208481322649648149667054206905400521880395749968526936831875330049236877017824176267556820282907877652745047412831946859630899937553108730085969472007710138098084664534100979339178816752476018687227431946977806252287870850429420520361279256359340881074204200027894986500470978563165946616538061946291763104044944187687921576124844753002064021921499191326393527902504187626594993455470171700344993862580520578442565310472123068759522265661487524461601582070157028893387170183150101877254432705956678894397392566532469499519062089439411686183586909817495328949595565606418023181813014177766301445340786600141437891799314167134334929910660539843340020113430084625497502248259790346925507552421119858980843074825717841432597112480405370728298917930466234553707980990400476386355319573683249911401637329947189386471113803937364595656162947923158304673771426746942708401644280181471922024602724337705593254137897113785032172238661278212359846435832706917512295735850728109472210363304134746201017436240932762392445986442274664406376744370244980629808934978596668417290959985248678964717266794955190123319997018448340958531384669732361831594952325972978465045792277152420713407126606410303805646412654256477771613945155262674004724496259743827076191099212272211305615800873596937901105987738868080291999552087403309676132237511089614433640016560162338047038608407146675503930267337753723014095734411029856869374628574446825032044177259475277191477450783149269258039568338696945853590193738416380045655610835217029737053433793480601317459493041593614177923885331161862200222975402169473832785778508999238404505990087361641447579396066006562619826748799722659075630664980504109557575228130685226643157325867688158589986119955549918674347951312522088665361516684050027315989974370953152259700129295742655670207768757515673441558720950822489636802673312342888835401470623751634543876483176519357501743383218631833231416632353590369477310848447718487683375471705664960779457445412309825946599084075814811933273716967313325640234527209872536034672122972011956150654144376563957179884609706708981614214397843010192429580393874236927530711707610420916090466061212748599785569849596633612892627441014315886431077800812531060703466264364033852182486101758407199493184804337603128453577072551429115546064972842423049247964996960372327666561996676925905556494953859218300285420526337533697500640817403627161667391969419342383284824545456576964877397647919090505489559058563219843735738163122868598361760405360092469976120261828961526122183577504270579368156905737791250230403095083495538484241221014975126257810137434647305456132155342563135556802831404906467171263050355754506177399802680323716208291077616466669010406479635585838380055294512793969515863101649394207213696011361047533579549788154192956301376742428358491980828386599344576020026837916882109868010921449364088719830705911314243159055620304219177828997428519248911686182531294860012653151910678118831635831708463262259894893529083069010635853525702003060906416748655314109133819526825778140912744632517130410926003401704598703616659919049883616945078862585595418366739117747680835977363600870581381423497318480444133253598594749467946703062481245835632633215684143807003644910980038995003746940977047128571171308123856098203174454951210022574361009948413354146577256015544451739050223501408322383423892979281358789578074873757772665782222024643333354763593473803429414390350843122238147535191338403721899944135045462597551863740423160972833858963575091896204696711878540024828802194046788776431190247285487219169968230864655092544624319195504415969591523960040230242579866912965599076306485597424254894842942657829896206115716670062023940290419507018902520756992366211832065202544820499491568591587346739122564683092106172487685490818072345541775861542867718896177928888054159230239285041720010942628254485527037219389337137537134421692590770730022009134105868967631351265869979243567091778214340241538322204964328043447062910657290897421844615101588548706124456746812903713478569670590679809853300070729463583416230222750376499975712973101012206684321545722137032096873395150812050371294015235467914009886810728779659806258215924854472724890719490469546545195555557709492626514899844151968747939197517540309845809867437937520499056108571573520405917527539741432117101529385715709519724652150780235219588943330609787143973909174095800449806644526710796010122322232107221435612314833841726457807340680569237062028191786002947069409330953567285716835807738621294313474482331762331384536780193453688120925391138996110321580932054209905786927641256578115202566917494604502144605340057866991429092034986354591628805228609032317314453324261288305882094895294654594713301662666461646292810455531616233911401067279764586659767192931241150919544809661044060595450684046621656336265561054415129427409725762527406828734928246944749621944338766009244776774515144808011907350463674907121415554141251211969828500055936722757894480008849544415941529552727829555464048594460124622572017228709890284844280891173225493819637409464754689346408687100123695920995827243725906585077375716311365726046332928439905312818140124998473500693617204405446648076612204417966693173870791695498071456629967095768166698332498628410575230631539756262763253684630012621874318000695117191076922311750256110369899110125982594741172394040636069283793874920265613877443352631830984541880397506087209381393597230150849389028811263311455264286422062136349145862186307910323918839528643438429945507727550165358959669941897107350634608779161279764629914614308573129627339170976385591376107951901379751919802193624636581060708976429680824084715662465208061719492806796118511830587425878241450807580533198765581170407600598925511980966575457806068907527685057683538664090851354114985805226128662063038860404207379564091200328838710436173325714380512653545086330713905009240719744499248564101353243993516512259186256133038187948780052416760544997827659190593656444459002935877438726861807707480658615655408503156410521971560610381690169059795949448138200572863222678060739684088461142606532429828758500240919023569129165030906343681607130550097129731918796232585101685561435957794453051746396006137563172223401236475398578464720588371959405307320721985825701107950905521318683929138305105614230451147203361283492261769305403180075669630337507024741898885172232407044473280209723004106055780032342106396698178561597144973816661256012421679824255304566809452087803128029316684613714478094472086365677220996540174562329194254624413417507373601489984250105496474240713820328590434312718230954632966129010983094676102785266210489910878228140027216254955878214977629045948211818537569898634264231336211259200683508717587306767869060635326983774110074881802161702385026647115958708738686458086506538806695738552108106352661064395402148423835595857787168507208172044479953172038484501731390240939231020094001491470171326007079280380524658700106728009360985368451453078479544089111853268230835555782905034379761984584146000479980598575229121273427595301872609103161901231880702807623031258619502146542781597784059853043917278476071838647909655888684054879135367354760308057943613482286559843872457623173369593289672309504636007400467229808579555566386817681991378841440862805179379038951469844613968157367995024256313541399826957840901087113213824360701047783989873407531880683676230879585614793751579496407363640765994587637092764835184347593350558734449159929896904147818468445397036997796707200509534630839031980020247794716218798619947932880043090371086622798758675834089977817977227776040874313776922708138390647538982207723843458645718009614251344984094762664228126152308634595381005746699913376405463178807925009439503319487698195955199746786876156781441281148847263393763271733803005093360749226373742767906235227659538412656062255530875111961332840069844346498313639842808077898753115188695595195891737772593322935404035704180521506794408747531509311507096347518023880241046857294299242748418694459353406402065059212137120592034348217820086734554454007660404639340405792541700576230028519052190592285654776427925840941802360483607086119426080690152131993595042496810533906051807568802783816269424649400689088578162565468519746056609146644496495354472779368290174021202532207993533785321898247070103965941147987221336459697614470560963988864612199870879786414606169002870169299414073869011420409450967191373462360382714394633110392572621744054058876885641382329418660110966644856192223248338426767099077345493717069165747185794770664683770488604216552255576142426717401940036282000841517339490354724753226769081532202101514888896133494372123729440766322776490372183695219113407681897634245551307792787819751175163494030252758673182187676981970721979923542903639278162815241411968097004056524264927801834735534564916792917653543896360092123969858900798463789422385036766646143200379273866011902413978357190497822728442908821384550339931990085364593570289878665840013268890845799311873992963336480902221673591305792121531125287048642600348404505276088901635737436286887160579740704348394874600585538954193263897544900131934752647632954088076500384604007865922177020400082785980517807635591400092751617851967791060493368613990714276014776532429695435946399131759211004454173677067909984707026574324847118453072730078258852535057926768102872628667393574777880326397038837090837764545707255977087203575691101800951872218238933343448449767566149900643766628477332917782931640795448988591974323786725864081713802881678793984849611342801458696985630623064126284104007879123029611059447225544432439140330498984462371569345159028055782638708935769793992910521878591062659827409669108302383354138864863617542949791977335943306073640051990872473746713968388430241649837288763918821383620012332280822677622733114072831882599129224361293856635766676021201513981165955209597736586581588096758894402850053968633394923898354764767002134816072047101255857678038314828704569418702271575388129670961981829693136107969468965311652312496093735042645337504508206868628723390650761445260021226880235571800017829193253607641213921850642884531526585935141001868351410827932273747633155820266755454517934674903265958940214705442248008406143351857601639869566981903424205797757782105761303474722412823465402772006521714676279800328342312526788126615983099429649037040682823374304808855038670010833152414768708789427832384413090411436558499006138105842755309639994067699189098848952897179561139388253700641542452922312635910515117939637723826445487894623513671086028545724021029025612471267492557427819884303180224268540274175149996386309684883365705127888302746151572521352079991484819795653143110865787176654782779609850476894388758232697607558367095971392575031970502615181687628829335294330179517218696973683903422978908747603361233008435239033356471209356814594585299897897156228491444561318464857945565636936690197614300965088299997755420932880626472875521933797045697261764882582184617449391242488715934863355370991770913997242496002291584155673738111463076797548819316659856556314443568346041067773573674318656531503545183718524237626023121005289825240383046027738422002522949597965722104277941721505487917486234145924556560704822634061467316989120388728595357068794881277108158499665392707010621157243991754361065125470053612014180072542725758687894542114346569996481079972871059729010539241258251296051214461748741932555951334991935812652034606341300244984835678869634136713577168932235167507318907494196771810811856405469076508034335329211011018773878476032222864338969451866433056281686360251304171271530250595386085019730358431461307261463686463157169685552315068949296110647316286476284350778580241711219049063097919330573811238119055764460268618054446089979096400858449477014506068184599437785198687550237023601909248907294623378435876679837775502248689312535266932119987620166861415525341990217831469656284668286280818190356182773204772625989341583758941624622507291282338990261603932329742944188676304726753001581525592472450289346317702194754407962498255592420061151867381458432746812519370666530075814861480665951664989075549844948472892853427640579370633837692748714819850577177043420151095280201853849390801005327127801231883264262392858415581323560509205304930408232218079959465941155970348880558681404590543458591770335116944984904203616302518165696846584723793846973879884913306895859136484732123214932318042346545600509257307261553785316841103139743033909351456008949901083711393232257020342259969352861726877219125052366816367759633941356507114572944208845198822412917664476221082878083232505066343584895371384842049504933186796967651299768229563567452802852698060530160517110712822086150106028027285802316291123716221342697046995146524376146337455548278715264539961801163052376305110395519115967433654925608634572097088232428923128924008259980482744861423840832459731100806309053938618503951557785024569747859440862451965085291918020135342904863327119691460320173157261125484176345301414706686324564836526819499582851505916185192452795022402537816987137265927288566173574794498179294014465649284303719422149198554396502956835059407228031512330950671206223469023022367123684568192548128038651935522870634689136617898087554140215334916176321552899513848168475915686975089949277892271851039226091342196610193690074364639295116902509539429942110753832901743358735008334050699695217125108278340534925568523932211676665968684200265716631767290630263038834164057578055699553472448227101539239776380162838145506858893685657149025344434929588036235176674943173314961802592373304454041995367490564748600346743339976364606891766399051042289170948774610527118732995200849002469721595843119500466973880161182369536056636771795957171005113170663738450142459815258205725012519639223233469607993353998790456164277852397438124907950873489641089931631896289682348676954270429340798164155006538670269687846485584418246600755445691194066385821612547798820550710052526899993240217649453717147545227962134494598729682270650829361651869127127915799462279252308205403914691065924978354255493512762210581006157167421683024461155310677724110254751227995769480937932187145660014642288510873581571077284503332211359971078776025934944402029462523530368368220003061241929416356781898468844961782424722170981163000758930576811108116142833072617625718015399917500050617388906346612178826474787869148087259184344087128167110172343940189844633083330627208655843510538645367041700890876292231168170098507362313141931088255674572548404112678645123929232495983533649881646212169234645429041966851612888816383952198414736648802054098848305575090093688519161289410346551947955582914248627743328065944380172213078588850505767023684883823853808724060584555675259333125667072850417976955692902797343258327648359367813141092190111384022315961139083308711439848104711998183248040057191856631113646477044864275001125285352902140089320636004158017683784290671094153330484748269452961844858901878077132967816649716034513515688165762171420914675885634523736974647200686118742590743907902584822397795465215259125229866612656156753304157930842906980749685697992738124163316301651131732318507693643917112929118221388742040180415441902430862325719863932112014750613050076609455093207461973864485060957307619345054243024994980755989214853652557109644973412455047980198422498706514926196214377848646892765744508609766585282889363787965864223430097633979192063042402595654560207746845442427194643189949706768441122349427603512886207714557421879400340972253787339166413480164871772685090132626876168749436508430514777893132537156149524331319599754407781298476931846392359314872650264987388147970473512898494128541498636544073816572040957962319124607811845461940440649205365801463738072835632589626203225299941598220211623423100253062431496489891154711166060518917885729713683014981310301599234599322630510559028402272064346985900112128929275301554536167788340116708548193451764755739041475045576713978934577643512478664195728213750111581619390903992182568472331729128126767568485241000181558126220233374153085825850776084185310549372597369493268560477617968487376146242926219112386218795838763956145902195579527935838808815777537759021097446496422311016345182795487833134763579355648894487515018870069575910239987395181382444715476103270400284495957367264205843392100556721461799231899693962061278550771595887652218846321184515750798509441426376531159979562199295011406995435629263861479060647972896038740358724298694369621789132907379486035777683520574423613052120222644322101110774031486099446683673196631581029127565212455955692405826188247885430784071919418760270417724684110576358662660043794616510896738240257143667969701066545787764345771206227003474265204162737568017197630968044807947517307909763454712048751630873360006709312948499074376994131389799231211669550695612081139210057551452178216272617487196783488328587199773705292946307729752480072436496904603418622865824194264895764482553841244407756719909683516306726421250406086072673745142768688769353251766799211815348729018175460783624779292651057192831375474193623136453937819424911257755140709750243983284593879824948597647226164163362723898603210890300862752701058567939156713465703899623353396661697932045627163886202505778845344982128079498822937899231497497452259941993676732698236123915377265480491244809075825392249305945662904174853003688951298044406574427321948272419071236971211680037589022830880027461133880496827453947994255427591573943844499143388039959486540596983682424110590081650728310174697857592301922407217266470869808392723071809788545892264858671997389881469981725865966452552844250035249328158802838232676780574986284502198133855240961663027347835775163036043815627442911027874930913257991406708296331641879008907346043528553489703829614367760726292695776896810106016577875116413311396071931138751691621433826233086877428107502686596902135643545317276871530387021145334785253410721417900401934097475885260693748045966332756987439295129901142859830369512642890953365038431172165021310001926969250908731833331081611486053751930103781824490260768045455384004137196457689311420665840220720239794449876183588379769284129170032830021760306504479481013353147117228614730844312025917667374125843730622712858388077009257888986297612330239574696324796793500353897657394071832888799841124954565902367671431871813584759805068952561575476764625741270396084729777464577491760189321215047624683789713068708683274460055642555669859359980504098388988258884442382185389284506849811010505588207109345092455461952756875240772554264179634778279411181141462439961315943196718574904015719851899699360632717254319839739398597808892327485978554736856898551905269236952635130602759129771680652208262041515130545303195518606353382420781069294227106519136101211436549168908585076389704650230715456750887072600058113186785646417818644430126621799419925147497113773856392552824857458422918299664625160163432534424447560415341962371143037939607429503270852016059206463697978526162122661510071415666414729041890645297549938139219932894637944924790708969152144270411713525539312192213958068319235826209546897245048622472832425821146293409841808556909257654659111506099632084636532554791340900767822367607454243844142199789643914159409989987429958892814252468599640574091756163756979922873691104888202778340492650064914209961696098851005723165899076233186390054004472293201705099590380801414704365585598031818041242996457090792753949297758370832958141876810611070095453423896048122799811025579353790329757852156214324634691617473083515141357094191445446483732971374912509756719076438398741258136070229985204574013491362721948710133417094860158172902469196522410618215504339905330771784305238307636929715101095345201549604697829374345392399552105986036847205975323805595471204201158112718123641297941523190730810705141446543908963887916445674775941968279994365107067907128938473667792618509590681583580991254291074745674772267901481579330294505350263291025517941402720424588239468110448257818517395879790093315452380714935992253544031076075377041218525504528764687136432932032454526195188460750930063246214970917517630356025835810331651783032016675608352923494216670744535501476921655978968707296686204934121806696518958222449973140430067289993636835273779029257651063314727260407550880214284254827087974510323238953268823918398208042960545878146898328176931015188291114840424930167671559109565966499056954995091271662560366197692352145592585592431458369044369877125175450402885525929696018315837941075558590105964742324627388097455564168404757399068675846634547988351356863084137472506501350302959299927928217128462308394311585117197493747787661258154227732605574941090608701351383611945842926924175838329017036827861115712990539387630257959630645707656601502145489287589694828801655955680662704965635281716424106378615996995732704376730853543587883815265070225205163215599822785448472250232476672528762621507934452970058746574490942038849679661003987856626836303325610494431015258335192178800096090546018441389052702754913017174954425105088777354069230724972814546694371445274459569267797011825206482587967407893024263724583713554511060712376701530060082828768543205256347518954637464440389634609322473274965625091740410696754441448144563143459877728062969904798919922163204967242190559733914954424485141216494682076399194862015884225544495649735168424214558899010866194444965929742690338455127021446053036893480406970960446091119592283210704267965556993941647732769220316001952956856382652484493381951405722537191566327407394098393256563384400270931245426601703288896834298933141197621895860710803208024150073887963773779723840228458973999432465646496609515062488869449487630958041752064369466254123418085877152049218953907105018172179183795889495549048609776285686765569172864784852747006800104117927669087285733816325735479287983583317056646796790446996755120393129858922297937593218300787179052702436227208008682541598954175903139717971083948170533764624005553346466750185255210393778165723557251648240027731057519973544344353599007407270044317780263572743204904029172157266395045786350059708401685034711710768460466647095592417858075399684669423726819023751146953654193696589269373415371927383580416300103845470754451609918824109312140391194679957754370086256127965475878194955007985876006629601583039433473117059716215185101871210605999705126419133072379606470765155743983724642283740273673251958480270665037787780931915956130070289505594142834778395671252635877955132167063843768836681532029595969548535375542824705402151759429520515806586665812960842562559534156405723912165385261589557842449374156447940508571102500305876266564742607456879821939336612433379275245904064324199360785412851423577325828555045671670911605842255020465335424695757894760186716642833100628755696688698657466600548644412623142723508641316867158812289075376818534151713779027328544883253501934028986925378494126514810499392114075127217528326147491113071893516250920370746951594539787776102022331071049383555263862623822162568731559961742914123589665454690226334004594397012430715610522455327586571045479372809654729726820395926454715234663797862077239025352588823363944418478998257546213681039698069027420024786244142009505452008765142288575649714665639262445526074120324495371520615929723539367866472051953306004664576394612506158860063396734697160118659746412728820177541473896407275526342898135378141841244681147670519351007023426989157963500724617112817066287936426032919490563562599631281423178488858536192524306977418181857267338801399782767202358499031585711424251451213684570584921345661275820917437389587179921873574434403801081237464306025981196526296399466342547117572722776117404568504436062036363081450134865144114183988727354960277221248765006472335754850044628244716490611164062250107477537713682133863695894837369707344135197734786562628263403070108822185262330507955595895068345989618884480417856285575473851095844456468842281663018590548330543773416085925690300864050222625739196556758586607261016894813012097753914126429286129046552315942999755091367499424742215508328765571508286143767989832400406047612352349613077558325804712698931790886983935783981138270208786390796071249945783742861507076977423061256826560568880016055237605834528977416497443641796078014073302370612355091653187628780274693619023394873989531786789199811753733327625307978944164599720943937144059638926055244841189421788759667670272374993000223753417681786766923301080616277403373925186434470881385117207963095745207912581384035589388634712675819600527896028935519121878979036335165656737773598222855299916682294419412427091402164745814884935091308625047925180473578688304383276071384880399146128888797917161779104276044115824580214970201633029584661453228636398915004290442229601865253758708502270585768134207607212908192515833860979682986201261823858033116404902567713459177331543549804333906178871235131391873950030600629044750698705280149777427313089369296508741388506475060952854071468572831892349553990325122630348625253146688265203787864014570817025502469724257744352752868314589028146638651879219754683399733734010761297409670671898308103333186653934140913746718142220520282289646938206844055366801781888205120245442279727981827441782488684271641573870315526943497600925559394300847097837750398951107076279510260773417639027376002701439535372132837079890195261785101596626312181903707702436837594364250877170090673298592206623341898214908823419427977336371787041046755854141925089506004167682924602610864504725152186349311369800944149044673017323462470075422541487239950657991468246374366958809616164234339113593621858756791443443583846168111090170007112565481849573288918180952996005419728811703151166390723709842102577409009265891803111977522451158438243104269061216334924933651029015294374490711284943436516434458286727804977109969804565681720207929171967147457850942644266000276779380950952978365678656414804474867666658861814725163598382542650880940329629514056007886129216387049936286217537718311629960513523552741448784799268292173181788314467052062266171600485653187165330543131173864180001099433887478199599958911190883282907474344475829993904100081773636016874642585752079230797869516536065620637951777916141741083776812315217062121664897162589264882729148824052844751105914080949647980908590741846157162255220927615453005268757700666420788119686785991120047544306914474637947177212764803273663989361194752577424175545418209812081108496068313783679574665076498369446623511234313555794590284043868439874345183303244132140549898764493893423883834187113507517242921732062027013730479952338627928642371350760274607002870514010712156312115873542295398261083292806062289401837146799462633717822259410676967046640043430076486188766737450396196537125739476147555135794907568761958982700613860099146314875108505832868303860835786807878009778773535470166121062925923164270981817028120283010310781401823417530700543832611402002147687139310777628001646871514172115492901054343399067025449032662335820231511867930302415897165622769977500748179139880380276074444095167525435407744798615250421341380198956350670564878656888896828582315136372422536279414959567652700795389531827580265311921015861279105847225772667460393293834748296266076224992925930179829901380091850211389152222359053127391977256177367256425780962140561397221991834976897927371750083899759750217096895118826534874881530721272424753214027517810020658866359229662030268154584310377822054838870785659309754772900771731212548113853491865503937402614517112881309022833623642370785302627033455851828324581456535803125281630486626354603143924801376317531651357029336913342702528128728524090067027528317237985377727680028155023740682676073388736497125689900236723366104512767771874685254637926463435161175218971171935470198588992718807762735202837163905104774654168792924370676172963573154387767502220224128357414996865081775133385219249563923741740999811726235682993052317954821094135221913539245702736591505597655282493905628827554215727988721746327212319236519477105914556166662160379546999122857603545853796448494402589189260017466920973109040350836058499678466746081643500811111559189313994561857445426405943574683817846502337270886555905457545597064167875192927955326726580229589393873023180467845840625248009005788533831706300406132132877732205646732588832391211239948051414855069425611779540831398064912343343263159731729815386530589542524642941739575587805123856848745236537189803111588952787827737885225884159800306516401485184203432732324413907685628520368531429071594281049150504790798489740824777519128011815306053705323746397819872771221010646012704551602920372900039050292284470250914096759625618982966667150265238730549340633962494936767204578335950540267480277305084024359273737092739765788994654458852294378023050741908253660622668584869553126157293183831680097988247002215477141268862797027340149404484401877877239853083578923928324901672955872564639316804407100406192549486984217067114482264444310662705616913448479871040182226608033575154086223056814993154953431807828779212705847185662111019237234766932729508012056415376571077868474001744246866821944942246960878573987969437987631188129615526819601377562032188554782234868441782814947509936433728766784790007074694453531476643563586036373065618044139540648611062350720903886575078890711230843416434825610541626465936067643174178334008249228610019591090478588458547557729198839881743447213233320656274100925932982631242311477107852541605778960596546391890276983986862663040576727670693694289919457162586651415636605320399132572640270533807899084653879492920415522218251281651102575664017219963603984368595607773505104609240936378106013214525548792202866980987960934912311316879622637158618376230785212661515780351331518022400369210596980595025768414026821323988488202609464669312438864725207442567684982509939793783828802733344090017732829966327299092261998663895387207868752411598444029764098891521127648731434711160680943950535422000722959957184410396708687502827389489119950677552061816473794466195740213451513501679494915692147022584406740930781415812997038546036819525299996515191410388477379396258289580077753328605246178000628095029104496186681987961160433286285855558422861387616838253272318482408511112571840409231522938346819229624472688618422466171163374509234500100770588707138853800618711382368817816910431769546901332005257332084777655427429296050254971678044128286580847987684267090489347399936948664345858031794168336952159219855503975298622180503518315159826641986197126110511983915204703659761240787182263450536479213649935712362460164111051886551230282484332697844592255546385083302975343214476400637135478155928151054570266037688486413524119223332665227883136972587194290671699752685282529195619581224384470489701027154260225949924135097217003868288216761104173075533472653034544523484020766333451751336575228650769348590342222385200541765921656495575414600541957989601307606812104075034752818135043754839803090018773902177348096191407853141968832754555997778885073740903880234385229336384575911443042805396308968452423319792660462056539910295695829244341048160559107584388241383038286687227681824976427940790122156468071342155629857549076131747603498668298559792060716542200995939986725807479870514180556873659864905850891744807577748962048018655893267938022121922144537243289146654669803884228139718735319341459782071080011530874867318647211694498038698716473455603397975880803141017281146881350045870428086464949091328488709433860993376190275555494893978059702715986228979305091763559447910971515643133555429849885371627040447297517496615487379972500307172391802258433379985706227027433749075001126732588398739063351187889537190519331266558859145356059916333235396084623761403473093312318952044979126604492595518693183482461105122676809770314273849526955966060435685519025280471990771181898775447290981184630939703044348380245904780147189907168670011384212778146276816115240212179417703062049092234870147905240507125771116649394929715837578177069746791842745741245044741388407587171164245624903201511133273592469634027348857999324165664658333115669556811656411948140810822177701155948394064959652251986472659483284929903360154931906788525463354831288954716171127324116507740262774607668366117537115691987578333984070214611671324235342992707580919206256366338712106452183458249946018676550214897332189475897812679274178911047336876334260232464479495514276002775766616846007218129978945549035832320510015440126006262037362625393438012416367300646227763664326929889769404622858352928826717541658005226522783342759900711093948528430482494343863107274084251499570866716875139487037398066893804707673876946107271295919054077963115489608326183569999423612342442252247002188604106048333594065426645342285531335898543862969012870195524668482814992847388619285282340654617088881707176694107542772170004943406723259989428765540928998891850893418767320902222018795136748425390720415103464616773177045551056607002417336109729262722993456718880237327166325879593799922886838670123831321382924792322210322910738753801225922921780578587252208428470813473798182211661607183496888600189257797920778049321148602828019761728262121158692873510810882394585985256358589759758640899034554539158598201244914997478668796403785553587957253327195970954275938078932068708140884387716212401150550131452526213072800074809387038109813159735333931575887756877288465432216705156783088551042384684858856765749690315877864660226067885726962085489046995317769683347885537622285900032638600645116016165576763836339251089388282855830000775159757710152784912522693250090426444074674477408662387015152513156002227699356693278159008033960873252229764047638735289973076647610366581884803197536078105266414978733705947641858661300640602930714825708546134034519563694088736938037069183764042598871136766782922354054717055012696251014010212508157060538093126029155969875754604016734720918323982136669823374901464090931927198558280911011696385988760512831120934759860846226141265118435189060000134093505011039489139290590445458232643000092774816230598931015015223571724155738943322531140990153456108081678902559433902763455428737014197808389825212151873667898883963897251807299483659559072981675760352402336160308365054208770006810145428999310615286609313820399095266059734267458584490196764251080267907001251894421005054631401369359819180593866072390394163419801423782966466637466981677290991596064066308429474763202223241561756681941434551757472185669087920760823421765814236730949262516796280950948035565159849555203974863441206508271316959084590558765514233259446933691918026294529219112814413592312457260273670068082566215501532565315755705610786779040131543701979863927594458993770060380793498736457514929681875657351400116200759522016206261527787156742528901713689562142617690930418667016318260746304023995655570556990638112614211816716853512884924163868828049090433776704334202576785602543954232791641907167457686708331226090930601347113227498653365527964973910810160445769220356525439291096806717706260795242039769141616837825538271517042836742600762367895046163993898362359384229560040261538890050525576426360306533372947492974379878324064898687077557493336397753240498520626861986090278029208662428571262519396463205092320130105047375963063704332809348106176684911900536704033845391468496677530654290343840918794080250883251390263602241531584458691991469894538454885857762143405818637675767228513665843467151798249563550974635769033334485442779446972667823617751236411003705885161365172459725231808058748941478354788634375969786430670806921910262306588698122006333673246282274299209673819284110131349266617647202972672376725016096993029125494238897927021269422315127598622965151858888262757093679643749168130701422108989504944937125847044839232759454371699650184299930245588678307269835086546541185556639500447535133217554459184966488780378218962855088616962718140996077206921727605745299316347502289257579647135146329475835189782794947463300199948560680512076794580063331247041583972596752305873384246484014207449960921545960396159990975067224102020159684273928198973998242909826647190913450661772847895912670002007513670299468792053629520141465724065927085411801144580096626535205794092416579626112839315973248453320353287269114017594278422970071142842041530721333448281346478809597323174396084178542221943835857184141936026294491313656927018821596947271571719971338093116084609270450998064890173956308911123795525363795784386146005426083327651691319713811411618728854493278131038580343436088544328014039351829056955537957474985843710565050167540657347284772377863693046304112671520069529033870846483360025017393777562488552027652965253205016680048123259318126793863327233188685632706132835374107746384403699785744167706061486326594144295093042615555362421178140950036658408239647365871393046625430909848894822207641658727502019349138835504077622057247004214707744964084483621415366486797665255077664534691851924051732742455858366485409437972965304130955496968253325635567230879533066677300996092195172247208904128181541986907230242926201161565313284150916225807194571551271497337996102636602704435403967135729174302360634196485504101525607155822614930216151905275473883764149652627289098430840776083767758114024398767086325711916650954044594301993335571473596542100488490391994466930385208930128817715798696108418233733294827206330584928141280227588675387491216653258053153548723388891027174032422807939897121412373586858044569201043606762769509133194886436081406390718552183503338222600684176306984045148881080129471390929752404778314646833485206183661308596714685111181815379585981287510056010802578363073309358146288230694475538523649770908903718119199611380823870318591111863763633664838305900686201972314859821880272785912022286958618369450073930333826581962444695666426961136022753082742607354857387092879008204667699904683163507779299093999813091962877102598692114324957166378675583845684426941065495718567408025230622152319530450731593148205596638423912473655349178453007093035124188726924086520221834943748667756997084554730189743477088691395477876726614770000173643354158988776837743160386118335585532233085065504194280975080890536887235142226500104970292695708495722773426365263708006448998835575201082996594051547879882797813277653482959754358397736102469013576615763937697892903258891977931644871049140595351615488793942392202164004070042708848636298670234098956308046656662866832136894931818081548412362818762125245803010884186410433400629389605457414479360968797436258809466657211806866642869087909184936399498700462504771916323857720057752679784154922850464153964364514793306951202680417958813608781778552301260553013120960083149597459728208015825642387950133872748184609022361499104783984527817509667495338340971151993000935051469641801865054078799012706714468349557347112472501512239800012784032510738296165891518649503091482265434786938095356563103408413088940060016220654864975427137600641900619069587349505803116273703323783014364972898753889748811935718455762585542913452525665596599109972759141956918860367173944397152109053452547762751954331964658754128786311604028913601828879601110122850057170662118343369926888721054594052671355976186645743170044893808822377377092605108502893292665119326742097096736468170387971511077204197764822395388416970857560513583449686275966287209645971956117768803456869063746876550352631345401878010722406064443763793648141745491749166816227500820354025682692958316648748878287517934796307364310940437713385896832155747925973539042778946434031278291200763711916941251565180542967934281365472932000598428025607393580293450649796703652494309084423409738468365942434437021037060574481393968109197654419506684634578607968804162843427795071677483397819215382016874422513468754083969290975310719077970458464227909251109591214564191919197651145501953864062389737372334345388719983122111763681286354570186354218562250084454004680248225438236059845977447410077977040919608879921539892872042877448061920631544709122743429772335804135654418821807071986638300767829880508483918767188282907298125342776144552394268188534695189617200823798550583736462087800973830255042551305465413000276357180488706943586202141758662956742741494747135949841742783045375201296754578182132577168977234805273355620253270858753262717101651924491016397807019204478625403152194014772423098796969519553282658762474098428241528637398494490168237763958028740637879048879821863603656668977324622568533442633188497022717278116713973086230437425868462248277297939603496457449044645246658789239275019287843652692938932600614066907805188774550209393902280404126323413215177393734868842526224561547517478694204654487724982597853693465464982977936636949481356998945618752943520860105939449868619538733837223095405452649572045498339446072281367382446505343001225907150975502409257384115644676801346899785031657248898723967290260174131592120638572515136613209253183776335321980446904850587033829888781464819006450662675543456854697515927163588697580031851969797027361234209280987669198382075724473336446711985253453280340560511758937468638749549632812545293309072522548973706691662323549196276913599855518122994810128853692340294980965417462184310351307184953989966591989359673124498939803564349571314757906919034464602344894547591569183923933616779850937953904368387510236116232938565649641408820702303922654295784990464887421541066832931226909618449387633715876893626140678636414609266004639576909219106441615683137117599296677069302460894911816408420026051353559259566089339219676748510199654537417025061830025191960636796684475341986044876895575121835506314796154938877990132761284655681910057415579445453123272459934058920105414903072167166097865011296476533719607923573602948827108494485500936034668206213980005127573639725412606348653260293240294811544194586978590206355310240518202761767294598564409077848373528306584807640142584724347232781739619838479904347302036929215467315260780601376061314084667369605882408931360566726495554343698411722860430861612906529000977473074254200078709271903269741886318837158111685163713176283962854824340381147232302634978408532962150592247216230138704961316458017509365827982162034921428837262394659520194686783393889008028470854673404283007764877615068840661556666670739101587549341761949956276857080733965976624980399529459801324611965265753429621343571563280536914570811964430917825928917206714159242063457036813154869545613119071775856483586242197391200005902623594393289343714449144324760918999068521220079246620885933422555154521961399294121145514861472136280426246954568007503060374174351067918972618151352453538867426818118724180530122722125260199841370548220680738734447322031244817935574553414279964209562420606616272121800583068782276406105439911082666606731562185109145930769048919478766872411115037694760940220734535468123039126412887214379013798479787227767924298902092035551432610057534992538722642814185504515687163670010750569912237807393790545789640057735840179990979498414851802811897754808388624301557447375768360150727394051651228200493149254914147022959434186522501108205342011441379739144351610751757215746049574473614443807030328742834277928786100319600876163189590294850470680370394304800625232325570499089688591655637900015907959109554224238614048471851631897668712920095386959498042537121089410753120118255825087653717608294658722331985761368554456833239866626356871201168130162230800235932206049951790000180627050433541718143730232322027630534031678421787210091677459149035598985809306929022656667179637503360813398545384857523570018750815858977667902932411756442290653501056023707299803212263747334084396268790913930000841441291765173533078126017856475988678948405823803995314980017180920120602965396631964201362248198922260580706582782170299367415786108428855465561105966169446624932974359861109299414595609762808796062805796704953344813867292614422840423621821558980329203664806129204045948614211371376597113349520898726640142310748608711540497872012394342417491024781890607980023228814727993731868236151623539740048914295447779180516846935121030585963591818133707464968409993715276479595869906080508372929865131621838845385031660204612785676432018128555747458550825172619490764642376801382794768357072864864670788046994206707175241115488272913773575819522961838207375665252435396286410092087962494692454709574430307749041216774540259410752434446424750776683141795858529564002827735342613428759948901611671964813859701819569808855925567097144870973605719586560757873677451882075292354452185501045467552985528520661567081489711449757245895634304397413552814712810881782725453898461231139924279966997900511272586762505960305954374232968351813088674371604542075857575466881636269361012061747918222281322054252665814963136550559560496204267770991155568451952373039773579946073186009405197591970038044530615098344411313347181738475506055649783040009268510480252679132432178116846924231277651466102153832621128839661230772563241912442673421395682890910700979787065955868229704677640427496839827625806690816995575256691856034240152481851947072692893862700505737630854487831659064808617569765423147587654142052886369701524545728100761922828906112773496560793037288868068214469128987111773427861700007625055524097986521836475989415783411180788498310395577585019919308477336740040728621688381551932455786974301241861184247705082131310359974037696255315285662449110265658426725559116610012573293181067202017911534348512255017853393086756797507324132968175246491154171448923780161420364491871259725644299553288518682181112889238898069640845219662749834477630694584526966626233548506321976879340830282413833171917584803138037546410236633396467110245532765763286138338250937903437288126698684240251054616526774188984128861148839302264006795790925242642472124935913444005234845337303062679173304909673050751014549719748882470442594969718210718743275369407203000630665615805004658691785097086520539832376168767735810977994645783515868049216743180130759199954406853178304816560008898813995167217786061221135209854739675645594562851300479989874738268734148331042411356329478094882123421755351029126186544113669860897888857314899631672951005355273293570951950655383744036834725248028126674879663955275356368636179970235715826311907756642582722935125190135130027058563103478933266871194922432461923988503626759502796241235008117991692432848544024549336235069218671426614020361837814807100412449768514717497709760968719847163066457191621247403629902717696797953844683976757132181498145670728251011360728122883145763541399506674311656324632891683768013617499224859074588553161926521549370040709283607995213299372568172141365547897345778978591059013393221705933159167473565719596575458788556267258728578842162558435583799079469314145980529829721387627646591488858518001635166748762730203918780795584248571124740808887077175072868591619391866900529484483359673880593087559862498792562996614440445607347647486499068291678497900003712812225651587540644559303729797022691639606462371579580317378108626965242523091939131996411723568071410073570507635545664473837018021273467404492188534825842976739130194799662790831387592340216132377056042661699608853294977658264811459924294115247294095941924080638844443958588160604002336939183546884454254896753592951262202140739477859448497508376737723836089142741888450114062516352110546358705064412765189767626494836891592415903223856509948846106313801692740908925405905876560012245244242573916881151113047024528065467847171187290493694971072730616886946579261675580197336707628511737213709389348650087360054940907226167973456984031188315746449284835133169579537630611502942098365381829987675449340395775664981118207550667155125343815129541065064815220977344619961811471259291823585639502919971755170570910707845162841923600397498805329251770033786790434161239045583896001604498877030294479561871074657654809729041401289782309256273039259252818976611490358768902529810235571618890354788401592985758903077426268968213968554099175234274111290406063039229964956896942963781913041758680034518252002913014834109184250895885069545397964014046904182768126297398398830211148868777740775385354015997374835930625671907349212670680448477975032867335830329506144881919677956694003515768554019085465203219104237719071677535358350006014432236057049193861552958600872552459537413314942520265815825507212442275372777947291116121719098812246496207918460109359429540191090001901911513442748865861735927001210873125861450282928480129452661687824765298163823710566461616608395208786206104578975324651787223043284869554216058939405951710848425838978901547499837518544808296771338800923435362703043560676227545772183910036224378648491255306403615168286795686146003739083868704252462980651403663789629324577155602174112240359747140934029386430813973908712074646440334031227560265383924908375022369571778025303885672840505678765078498730355552031439019214255755482025347161598841193598749830240545640810625529168126351771939505690244502448360793888493027445559809633453759054998599410615153702330973412843126280814329855101358607095226572260508561213308906099139838406587403827171979723858337156926788291960910588000412552593695238865234584939901732656629775529499110128867506267191877158019647128068130898594624865406875381384837457431520476698293083488156389832527235740343507344491132496879996211296479848515190218331565767401946531894311018607286492034158563263919613612665718319983181861582997201947229112719266283276099701032036648997208904689996594877782606090732080541989745157325087098523635360018010727442763343770932402475802473022190457370063375324062500066746149796057914526065208628628649731554200998400078478705579096081443217943643155531517691412036099513994991052251460863630118521516582186167057222882931953545335940143859710646708649307582017156377656258325269870015994665991367580094413092290401931325990331511841240917615192775675927561107729831048229396922575730905695628177574021225208698363986990785409947670840459061993937828897292335837546240451476997582667585281178948047387750756696313803846229784129927051714703036570781413542839179497020801973261152654627155782327124213353544095683941748253670931122601994516364751923737138066386115100765468283631101353619761537766745113828950739168987568136806108636875401124521675822257861034136823642747858755224840896983513952674895136818885431927973880208819336888265817628977787392604095427108366866844710302983556507806173572214913200752295006198729675070770243660095247055494465351342144107467006378090515909150167300378267042534268783339616181345105592589232597626071525679381206426211738500481920509721795208345148070927565210397649876950222554986969913771821033843228921866786035114295034734334793877720154964709445522041646201585421893956684655336214363184557911740897827585332951844120818401941055380094020132393097770239655126540762611676582225298667431555969975106827004024716372271998494045725847563745393257199278580769875377585145177616817523328969815741616401706790422741365259472565720768366146750500219690142569957192827288957183982532527053650861194726352116096438438956944888137901594558570426789520260958013748611262107232365341351165018027678201576302872215326228580785834748837875223338122809123287846001762887790900944010353050830440571831741780202579446285047126594499086409284448420516003078931601006624707473522047960357647734889961543197909579870242211143560615952732354715853522353528052816641569311909020268667277113034384387975924443336062244528742951874984187275877593152633720761836823926652413684190312362212840851077901100838839507419943078725142522974237547153566869891536612353803276948820839674008079483481144087397154384154914199934568729824370954591923620328513029541743505869551832079030534086902551874571213842678450954127283229207068585765136343107564867683365109175466594232020491864840058747684983081560185436164593353767778871066519480912911246878012859542638135023480207096233275408163951383267284654200649910840685009220941928102163291633767806008280315522648440747206719308742879039747024684192036019630344609360627041391606037545998360753097052709852202163764366569361639017715927784779401656948352687005119607394653870226634665863635221144436796845620689359210563852714627916800271884104922094526779271247877042667962595299129955809543030492108507449334410811031927089539477182697322616134585926219228711452034720505073896904754387405984664321687034050261800231881056771405731648441295357390453577873733434865799118598473648357497509380521653871970517980980500175031589077335646939513974820993618369548810245513260367681244943364864964835031689989528398712269701993597799034071451324040387171240122245680295855556781715191678451597703688848210782972437146642170571388426968248880010856739952114106122606509782212098451512124365551857420608786600141842240646681665921300985127438077049572931253140941393802487324312381271688170345755566666206312073511427550104261256453389162157037644164307804114147857785250294409658047230217541787982546625814921074882983921050173742773878772200156975172303617121596445947967817166888971376747900034351318026381792632850699155855521151363785704481712930343594005877504591762549219663539905162336193295881273610614602018658925085096046630220309180930288168169652047357653939708589528323398896690762082155293130594524283498601249511972520976245137548948328475604439525119450919892056130850616621893183597000115105156629408534533983071422833971014329330208313172650697293991993709115955280072862610849594680915994390399806629025641833993923581086309342851812162581732851495428559621794152094808802728278160395191490983381918174175642768188580541176749777689036502715521895054783167358207519808653572174090877815897892610162974498971510799560845764349898284368470407880246502777704171951927290016189828042363782039689602493018120176809993765097456539267100226311983204511340873360244741861695137201705886201301457560824299895846809971294029572516408547291905834478781050742223475097191573898292095859328510884607557770315118971467600584186307776999666136351486789138493765341224009768119086799703082506801875576535875683632501807149392248494172125483129998381079854982720088192745151345113550952726750501313669916735519214436782875506473965604335278277654658582042325939746472973274563763383185811170847017547128216529893830091838208540202629768580752148476764549501397386574687510682881091805734238129618800850632132909175029339606353344186858546685618134874095046350404520332671658846050122943509329713133760457464782648256557118797359600177445924909605400391812760805301280637602495093895777183822242255789523727589116920098834153541805087371565366235912010989131612239286415271012420677617104893070037154262055756801028522001554077937738290316513283425681601884667293006454700207666511222774343775420585688400994071155980486405849390808470699923565717881536595785720019029683140054495370461257393031799841005104802318151713955109742963016591210198187097607394351687155076338138970350822804366857291520886021897595672152256837716533432520896578398136013158877676758650188628515217487735834184674721548341846644508744457676813366417094449234402088169503725430392994918497895012626260365244389803351838180592928479438151638460284782226752800589449808723082956296666333387106198784127851816409954594151207296225735220039692859495142810671141472177573729227835840905708927309117510076724768401027045182633972599869870846231453675644981803122355986611109861190100614378237493309438764718774597134241089388748748220173853910629372146632476375864150859783637474927764425138703511803744954814071720810125385286322282244797031154919443963869081425165596170327992973870399532865834887636308091975087318861347307385270771636737790273648543691771258856250012249552533681177110264416982619703350426911652417007487042938282492385832810064761400226857208582283550891704527293494929708428999971892425920001861255381656437289355149175482431955848914475280454532526719182823250065073253578360181231230169456704707528829339973752919977250081412447278220328290626608436517806079604308271608913772137483828551125481584385031206867575826992807280661782596480460799975819910297983132746596462747810492785310808440673528038613845015898190714132571107815188426461552751033576512034862308113260541142676664830180386127950571105209090071355977450156297074477334856058179597071109769418502026112633649616772721314177424716584837036539540521942962116393665574008852630978557397552541821443676981460157638926386080983152891210822034507277010645482552069782987091560742545909226097547333896227774505656896576495822920038765757212575534103612326799043599387978322554009908180896705158862850835489055237132587979392117395867518697967845922100861837131344895381070134703179247772972317877577428330815638114658554127392579374491094211369066805997680474670247853679450320934695875464727374846973946377783169222006968665928127879157834336021809124976486286089777595176827056524452056704914002866424083981956600920057283956226049301034215684572927553541466172079333806302026348672036849903755698591642580232337916667568538192424030901971582716137280633136216625315199607039356157118791341662470124480549397579631999062584783630691689758981963247405679595982242508575879690374955655024469640912145010517447036564948117285817785935296126462368267601464466414321205729900430411594128035455073098157071123680945562881330507742098880830416871150556952661858819786923281989648143549500131844575119271908536321587752342392154301893143242817216867715446111430819726321284879869678892803353520719130029995846634828496731811940884798196577068484996971418009310766120654237500121208245571039129287818042248479334522678864342599360557003463637353483263187137027727886569052893327896125341451408360185565911850667718317842240450877915029479435158278453425023792073134947353028922621012509321483079299193865819322324575633469777216342978890120856945458999812915963495982704425322939998615603073738348492580713521725205177158744120534649789096841593614688806382976896528994578669025973088814769548799920317832509924516024538828770134659451164334423739425861572463253392464451580567570295451528539245945840554345485411853850218764493755753809393195946792968766918809754977043910144077736147505834229746286077254164242082591658837897507246583140065415093736064288073327490427902716841377273880832864248627694849146823063372204276446222078472761889192460084552097993902416713944993315627162421827409095638682625607638147593782781251471725942837406305356911056495095737870917121937959591451263555169250154179052328199907150810179504763301112508746164195598232724176404381123409918378072738717122439398204060631695916038164089506204264721783619407116185479147884911864399271707728494597690224831783337732561773735572541640105863466518499264809146173683797080672714286045075977093606556926010479935317406042714598261152650903936957241473440368864433165198663694772693800374319943829895035515102402448499468986580807483275778410208126610144209704357296726343540949800764093917190590896517902945542624272439897918145729434575735540042963315300557724918772069454231873550990852645258245827651106888165854952720531893310642097228903907267748324630162952429335295862038196722427913686215805661049794071594159570659751333077474212165413014510386770805830729641117920135010727373563881296067120775800327687866668645039160556725173079861032514742191936464321005114541670765037987743103997530440484400209815373079489698600194561621229217409323901640191167967676826621222054639215534149360053958256156809909455766880374063707160084767136526223679301572956244722534913623565824379515412066868646574670811461849788876521261951196141759576152449891695685197199009328890531182599753603252913386916951429548553409859875676535869414350695446667473613466676479550490574123015660363416711584838092823001121284930325619239699703043954351376227128994857828003317907865752429170271805115997667997490316898006006076554446822632622661518915395594409226384840613481375225256925167665640440601700948354389649562078041216536595054699135160846374437602764259223586716315568489173370681209711271395671024744259715683080276711357006742169570389807022613015598608334435169346558374191975966657429096889955912852474500766997191865127645279196432889637032033316953153298754698072646980299896341060133956211722760416396000155081799460006042503126311503810922322901838948619756909402786326461630440091392475724974032647995439968308120596828224012140385288462805158291509303768462945814130369080976872243630389069989933924172242831108181525248814743021080498229010144936801429563206083410967282580968879879191070260801923752476830512217646457886900149277661288976122599621413041403839300355655707760739834959812809659653612063554024953172626658915110285750642913065966903269120625102309715405515303725319579623906876067026813991134916859462632463930963828788861111058606810574241968028059926135226897021531554024655050096289613218434070908491609210486905593981620427687822197149389389803874506718614856443943330593175054176191492103175446568335951133477012012521871265456570522080461323808458649062497435157508372853496513777936508597172263868864711239242322976189490616609093682568716967318184927682295484892941518697498238112428868931096747287948015559412171347196705641683395341660442957872466272743684398387019123650614878108940665054302501632420612113204683445487855213244841784584936999379564600306135507000374525054779720340004676361216109334300943419852718789200519079262878172710758248161219534693776481313200075830655479159382877337179893026494714744421394319835989413486204057752621177790903246333673839590389252799215369190117819298486280883255872101940614605304769353306143730886545986968972998472258347030308426662459350970038591272061616089269928671109182144831167027109193187354458110763367199106397761133413221048683201770419264984957972002859801063738375303304709376527448294831400812271349118416106769156138871868883897288971319846934604195940794750674394612130205838233885981855003615844532448796861557344130978706927022406108598359968087444899905940416793867965531138388269009113548168360928553636679267767889184316737042506100725080456278262189873615730211972300930660681765626248807056457519623845091006612495150637575357884254182741722220475703788408327131800491489032283566599434907681536378131910989720434675724821990948133219508684494559206093639184861600192580357098404235300614809518345849912333535900335699228451166595750096071153639297875022145835940902651916551773199365944775406817403364449618412518757078496347487017657709167611385016983502589293310556958048723445096109328065544146644272535988708325394822065715275005396947861558677086404307848442421046894564224817095753276229708168684747242713406723226818268315472485570364506022256419384672015116396726097431285266928417103268720453726928082748607222853542675286599700344117963558502199535471924480734414855734104774680496242216442571776416500079924225421274715818724951328213147325540640454257659363773312252077573291159868803754689003267864413324916395848969783879136822929311483174325293337079151559986718711196472029422309046262319120889077591440822717663822984336560959808010295802680062763455716252821558767239839515580428796023192877221254998386430022955822166949939298549845230641198649309615202485014598325997647612809700680166321205361415531586835538169460346302704231546300588528401152653944147295784660956092008893631557523857295651455698862388843660687266854489621357967362355021855123038369311259393312759872567989538467194057573463127446585918595675914157150770568053624215833032379686272677263310781811823594100910974358359485519465495410566597507794327367338531141149308318656662534383833028916462700777885529348207541675976399195947531647419583100334406563715627823934920019740955623363824005976645072650706497616452219178324955612913701923810068660071947525097023213704615326434280016478166747980556558861068138682672940699380445497971573948809958114217132863950614807140213971984473745267049362420499903832756728362786531601389630869660069061065653206100986777151658331486624074489990440683521461065651625682937148159882242425792341686281535810244165346853756074224653412387121677117419798548288861356727975859335604113689633205253739779200981237506515187872212454678871416597665763483019417326457553511619662996007578042700730169197145269539265867191956995341885934994963800663926162207714315319734923046122122960400640911720957563995913920901677901252307838515900803453903319905592838049766757417325097441323131528074306858178421057506412705438623346128459527534596557927558224023483133125086993592532578157804356643216106843398233571827826688725860921879275039634859101894097459207081405580823574824213862552804331041403123124601027713838759945781542868315718103569292937431070218959102120422907045522641023044086798828518644149305992614056769747907410535849251818290849910520857215495926764097632584314551207176947117211979325284050184584559109583129501622282566966488315592980795349774382193945719125130841554874253363100781391782484901722134247348107002194917138331917841952971042158938500945245084255650576220649626850795416454244157175974773633426929371309669664181572837040420430894384951811270147510294631057632853826322025406610743624832052871908052029538987889708464850600736905441264420706089113991931455454934240009491391324211386806826772621049855140294502093593193205599175866513179702020892097699467884706240006972492140844679309091241311165388581996032720303326938596791481898884099484603647113897452803612961805837907220230808926873149541275004134107843240592595723514265153068515480411787059670851434289197143652319937941854503184359133228746836569573961167834848487741020492798641962376243065518068712444390853194571478846519902003705416775677181203234459897171268103084921314050374294767754793894064962056534313543191762727607020820023686281408496807087724908646284539914257901712433222570816771757630168643037705042697731041657660955786648395545612114156007500787096630451442981254975705263713854603133598430294182386285055727464924450112929960802582190531245018733965281288162251307190442287955241441557612972620902697121211128289492770060495175656245574765475565342007089067643271418168261078831328262153239975916975497792008338635620711593489241720998120348015617391219577464630608523848909036917318458115956277191113961277407891968062118186375457659822211464012347690232893530763960916575587691805453990260291626260797399754766029791242574174758918441914955869755261034967528696954533409720410477983972399946461580722967021190978218939135601065318834635006102705756386491785699588869495344138230354327922833157126401855895200289536295680349072894125060631194572806372316137091463737124341248410321401730439871879238420571091603347562068935098499136017035679297784161183032743338697126211865304975338855102211571262278637712620211422811546452618227128666984872106381558472553697993796222040993119692498388466518330569872344039112665119939358898281412088456471735164787605020947179674140828650340478095959515179145517911769607425598530225995744929388963611431868221467918709735496407991609420972108157900859599673035173186547640108343084582203770978676491514220144113804618702063787222191652526387888038264345226338623729026623235771216778314540665441518435473426691313804136696865013151815425686255601391454870717871864533141583452385322167972991360118746803778666691379673825643119392606993863165113065381242582124028301693925830340004386952399470896382245699709945431155575097606953687395785732090667404937958345287034434532686402063742241692829604955123925338952811778342668641427147548007377750532780938559991173799846855491925894785884401567193899946272004756423386131041692517972973142549834873886252307684546587793994229332722617720342382938340574418457711673622064178198761654589123181438103438395843331228699556827097741529067568204967287648726552328047872368265526908456664176927749537610412399686073640072382889498974758100253953364395494582321045733569455025667169824973983592897708410816491438577307819925627678525835307739726936823104560206293943090973829841328432677742773518080446168949733801332208785321662146333270607848914009745274288415898930154145319056372794797454471415531116065453232185105273661156294962585991486089009624286944992860010071056015385478099052787646957169259710458620078809000302942328988896526121216884234103577552131893190361690625109268911689539561732993472753099046727175572025333056113395424407660884582223668246853622078411260334756544432865804991070351092201324467167328873094397439724788351571786904767586936987231488173768642325463620042959060366482820921732327312865289390140761478353675627307640319114192885985499730644703142486371398252559241791546169619405318959815132252962611122892255341275306326021046333726647381128408165575085773943859829347715899541743932053368942100842853082473190404330976638066749237758937089015103161039836089053040143618932851840395643338818869868972903010116693413875961567273794940256677952040567646937510261447999922667609700558753630572054756319474118015602711421303536557126573047292351132756433301645113883229855756093177558956263151126964067087072922359569179084049910266142841469007429009971901791289248235347378274679901697552616710189628845388541458833252163779762152893991132902766336888674703627728010711123217372151753544631963511309007377133112606594344096620373440646119225787446494469348889339605641621490162302866332612137887296958928395681807455343554269702422275698494993316732965287095160920495853140381748775295106197337033331847176009700121560955077686895544395945774353171356443236291376346046410787208844910204870615629035238485215707653945316836552147795866337133843810093621489818830592265796930823476044009244887583001736607540456388474180732815615310207932788151778681410608656341484817917898240834101328895838437383657235236325871407719212289784292641240794302625896179737216556648544242619401356470383926717328608965787668447584155223290154497687852812957503829215431973621306924912207429767841177420141340691163240266045332983588494712870919898508248727195986722080275182829644221054248695059567777470959791174630980101412588951151292924557348321456886147038534150566973766042461365845360899068381826874491626186884558091856207208758957296410757824426613235150140544115699658868183973459434869433847280952148766926463270784562681865784852461469539115994973645936869297366052167841697173419869914407781669534788824287990794067486389852169845988576883891233697251500436961463945621718542242918134139545994166739566718815742861471052646811095194116819194838674249433405396341402581198412895835874120061644160976230107870825757762242142169466327053311421988788758069023510385718263318888899222102129646141062825705605093737503008414315029428922574673968495058854008818777766592648399923554904757790156952686762200699025267934099037415731855307519118169929044685009917875820228755097564218072067941997759616374368341332368382920982878078607792237863737724924658654536073037239577531491444982339219272529189739271402806126656495041766010754099488562120243357716487709134879649397888940239181019959671459351811889659951631664643461606408754203343526361612044916273873359439195448616879680515423168448454107836238855805006876812791932132928719797236558885528684801092042893638853792591149450169275464800226722797468273242096207029321895107067648060250582062132265737347841565652777789482480003663106322903195853924699654651175925334604992979861388421868063313632969737814145195435769358808888537324211243729057977376817094638560609448128676316045590819445438916494121179751852587543936172514397391938018443238032972093972790882367523407631188484636863507048226504088132986542105885925740499871330069297080163694740236160958459695397754201530512475833848156304773672028978937354004652383367823160456661591524110617733715524186116492467048560078420660080095722463377085337245775512206126181277547387407579374715642758066596811432513003973075386032784386640881060469916576146911743057897748684198445388815728814102383845415783948325024817611305634485548278508772988809732825854155281725205673125222355057457844474664882825583126169153233755779170329907153687401610800175399730804255653346948483285208338097688546726532207970156365431071816116956580803910291030001157143918739887273311918280270829618790311274610041116238994588684080803614951202152518280733294528992989413510169531556184244606808870448334004319226861239386543440098465534071671131888918019212208118725638576465965831989954430666064946450566219775816665956015170737999879506211820757408501976716260428197972567455684514211434478753763557973167902552739941091304433523478155339863722831404538271576323265282352003238171421399091678579475461797679128064758626158098303869948890083492685520645302728308177873387932808938429496789655221474382045141200538950573550731722931546122332927064977769845014172582189407203950273388558719944750666745975392250171127232829080494797798527486879275151365647513203495603606871417939214796935578038985141709285000251207351027439107198290489154851625160726475370501712316208895462632743412816176475952820014999362644729221067112801759718889930727971409531249859047819722107404751279640641656606775356871015041751405408451751572859388422237163747312658754223415292949474463684121557999442162568162318731542801553763208338836450158760453914019849035964913564491550159970259512042905529948340497603885925613200857736156656163074398225743478006715702223576505577623565394059344049121079431053073813807960826149160460167168305859643146593458950567165245433839467244350779595430267104206309201490405160923933418513071882001711548543044431861182261886926234221449977094815449266791452638505306586122812902040275661903696134528272636967126197417515833142388189983887763539113703661376375484192951828072213045896089993089330746084921705012137642673590659308118692151972267882817429077511337491627095467729424650912975120743284795012555436541945571379445958427580807086833064665338363413546428526833643146988558174160729410010168304910633061866511547440622268262006081067491107899581074493240686211728649581777017417134579628826619060328139829080624476586865953420227749379774429904520533071044656373605202693256442066577238451642854938479295651808051770699955594286859758071414591663020943249768212740472891878562694588853280423532018764124136746378118375284187007099946174470878314969108399913407955189085533845925437867604922219960572265462911438243694255465983433544848025573592177035754022500461509141966714912338158097303287299403000001967319062216235552063998281251129541372487487140919135451336129468817556454788226536273065104555953439998903477443494669314128316027701097256068728709644326744654020096940356309446513842329423002219577271031277797125672887734261678662670385657932127395650567465715042022805857097974195293508331306751060718490794521299186247774774602687417877889018837414624242421273200200060796067399346186747218710934204000790934319017855475460393686180802981312868598810715632363018017951239456577507822474313621023284632543215676392827075606695333723579297504922870886667738272557338072844256093256297030618857622029500905067699169147783707049225685811478192588601608195203119082503831942399098567348656949709360944968226380854609261042101994089774978868296776134403431935414517469516733271666061744942802176159854369805261676073581909396750867755708049586792881536743638388858443441613390502449434511763139261912147118113350633267037346281455758783697114780661493222936155387415901709585993734893276639486856204415111778144187741830194186465599356750099738970350967884092275979031645318865990401288264528921040139929562099119411945119448173702879645278600909501074944756682573708896736648431298752683234633609117085027566931975609721062649480232850229671698338466131826202856619632743520381613986326102423148321843721319519647010510419918866431743622581133782042670688008820731168715964688499317688595798951386733046862605137816216374028655825848122958865494806695711821300968629605064851415246899850616289758288974443562294881591782034379520125514491170498808351467155022623191203735397754408130398054087156799472020062670854908763326853884526160242633112958632914263882696830576662743563503490372140132014417735168505217403675415337815360020891068947948302630151218976926733282072894044513405852317204379475358512849765418740140757709487894359282572679443950384894402389874661137137409905639036926983247980633705372604089692132339336260940710337710066497948773366008116790103608514268294537403146817481968408131911229188735834013795244634133787826369197241219850870094684356160199228609648733289344209424574224562809003680409232657965337856735082266915862845153136006062258342876609279471092148658722744021086957967193818798259934304206989739329765174516753365067601232026255809611120119065874923280421562338110934278828500035353890179765948103220605610001890828723024694191195908915685585633790445560937980174916736108030921572186805948496081939208903717821673184678940044239716764849134313180798607517373212320930026796096209132674446882845357544214408759872508393766479670671538018863899594396861576892695083255335193441188659950380209589662226317768322447846163590912406084364043524922337916161097345273759842925259133158396508626642617717634039026147656731804072363154973424136387958036309047549767854535180950833517116736080398363438351611661402473350993485984119060726247255687479985557203845556725347070541261935072381791552382983806694766519855436372620617520422313884422431149546699665885926781433351993180939086056994521924237708556402115914586690630924420430789203621578244770035805231743230120295042445004584257667896232549041027996421959237707473552374923726984913396356770046206468699236454023511865757311487113815687977534106238894419969922751525846864681118549959972586084375033002137606071682504206029634586287720554584087198805337204547431312374834019604668332262387654999298723531102270626330387143959758302434742857263447881056261896430296344936902944939403100538536818569109088656874762596095937382892895115241113313167421941474784596351947141042115197868890947513821941467465613999859146241156661276921962870469541865833249663152941682241864246179239958183846299366291594779692538671554414830351264449160049825273141048101640242152317024555396104223193850135591051331447952553934518400854133907165965888931888872547753643102744049057406012003187547800381260330941911121621894693839624882717622587757134820234261458658620326414905493959457045428175582563773596571140870013379434191057253575452379729248884053242393840306704402323210849261599379110093114989743439859101111868214642033531601993637640698745373557541465740221780088427627108597679242736668651513882334924728139662600266363168886932916639629190078481467029174541571403389730571728554418547056659483369436388756017202387705311247922423109686711296559676610277535965561178180677493981733464695931850132325381191482142311043797461640178840297475506553312279922696931503433132309976444794931987108463970371950080615330891416093157398993070921134465989309251606636181705386947856235481141705710912825937905987323210664523043771440314869447210860232777552595946326793136777376107902279159732172627437501081452362477018983626554223922367402606081701204278232943619722711758161922534762898279173540185145569081887205953494163733739342510430024841634479353728020713744978745857099794178473770529993447787016458186647625517463597215667574873553237134114027103470348943756718945270770116232734168174562013618997619675467970599812830559265209702989750966201832805090455980731749040684086885855802804799719595278158511355528365944230221197077766675505519299085212430120271362312088812604519442549205976935497809438150080228928476712171706510240076005750243923800258752691447298076526951821356631194259876172912935748139864794234988618226076624650468336820015351934786850197880787877127046563394844292935963323387189374137479697889179838436290719729609091426029587832004744577921140795136164762912730662643782438897055892489606473818700424799618656029631731317728456761350281592458093902587782600262106109765943494812458507663214979691818786928924121037927471841906012277032578956749640133813307657108967583949679639778919458176008629271773737624094341094822350736260497797656122224971849990376068828518388364409978248994633783574904873089273808310342863285209731903266238333856867724603697199429384518209897603681740740555301548242165101223884506837026789285377518999183706857535019611349123908056883963076521014174042031363144302520188503226789460325902118774380851326460071562172159957404991643070704179725118193048055098857164252510556521066278725599577087494195102331598193514250321795056790825045507711509200060206531234691920528810507644344870139132108420650696610151536502813013521549470211934227787334194691784726480564632014447798685343915790913704032763790374284856215406673168928499218445693822606603048878692588486021646921111827446583064430147330021092099341242206156883500430507833791001020858238643552980918759985697682941268305105765990178760664323650407035875909285396266299846432927197610490620265331773994270115509745693021176948027442219702829305099963635425197649269721274983973853901991230983531721575130765758465536543289309703178759010794554216254121932506764654527507968041241127310372117489756537404237780458349039065409648605794149331865305374168692540854285636402144203509538452515148481453033086676359932184232092065647916489609853608190703836481004859017060415672221408926879085379450619372808149579598609206716614764530035968655374109893351218863400137593238349863803418508523753859191426114389848831750908830866840221489674460517734120454629910930460752941584952178424199657381267445963774235522612754106863165865473724147507210010947912339343969428567296851705274528661407416799974530231516745824722413441520123037569272524462280213332217759167024101232263591749077318431470942790481904956467254414493639255278097767569413921249495253051330544115347781799029427761125942826946575895469702421088441672545295597885496539249680704510982010403581208857444811662370188325319863287198633853946411959966404979785116465770108854271968604788962333277311662653053072884880211551567732609736294493160341051769801913755811613582865857546687765176941280235980540926888238699961426777211173222139938407103407920136264977306445705337242367527679101146996174066334697853779552488458354516286343480481101964954203906109370576243422097374730855050647806162047019990388206955503612206176394009555227092719022174334638038492655100560231973165921147769275050680854402737678540600273641722210358949915360216805959399982459942015483480475551466528671704393113928206117817097547650226754013094970512845080779258729696537546364394289293308411042634819142096962979984004265665972524972609022411054615571175295943041332303801765439100755209682031438818097873152748254254516775915129982991186690105523617218272300177191610809975400625070843956979695494775162693940394975741780850680459911770857459061923383579387854114370944233498245443976733751241068756499103828217390592623495051632155632647265594786757991668323850345263734280415007706743072645205292096194589770064663773186955002784700301191351825022415542542173279731399656564828524458350448264383993475993446382879190950951428121981246620708683056144403095155733133403284477955978598693778707943057649734595644846022876542035108202091855964333335109935940714979837394028701662723150182724034458277986489695391505228833111682243528411279475755344528052619310758355552825204212641102527682655796341166212387905180538598698100197680244215092509534802489333880177265517200999785730835003734884860581972691870580992289482103946106683774345046880157718813373153742215674217699529381645182710497039302718175155239216181878342889668267930789961354493517349954209409006451717492364690822848000089309014130548820291188472603970338835011209599421061464697815728398871568470327040590771274459243901195405423256704607351752821349648121087092590005281728334460068049274191194390217311607296924914714515589365141989620013111817942377639103513858663299977377866065647914990040094409670058155608502920425319041479115209034506291898688170344478473796646392621359643121357118171780704290862770245805126802463953055443098881036231422330254231790341364416964957208265740553997048021761479217421406350032559028634182766883002914380113720956977417964435853842433229473934509685174410585850825970562675305265049754678415996969508060805072027935353797188571343680414644299108638826738237060252299224886187168952926428283667054718048770620993688391931228933634234851098770301150859582011066815027321902200204052157201865343429475656140916763957423640501424766893702672111005190545259007583066816580279494654789991193002678275611643149289303314854139566501094211670445908429676988375242284589683473874593380570997963985841890746532679018497682399144054931315535163541479642211142655048227962088871959263728325114366287712775832584835370311249498692507053449273599605111256801131949307766816142734580822922770750798946415702695994356484162090329039518079015895208744264171626515915609848320344697151213122644349257244245556605436425219767088934433510706940767282854338867107906379156152166697494857811254511449441589523245952912334323660026376829880312136806663021168003541972255378671733587816380921385648301274062234068759901796967469440480674600602306539340946494109470169722101631381651406440976041095478220159818510857046826478882420422432004131244371473768768609049368275807428194871819937773074534530589727785452878000576920300086408496803055109366421803725549135240044741579839570367234871080829703326584608254295641350536471003812997554539201260384953944654597533147234369313380609925148434409891072601934627479587014487972532928593276288784297383596969549382407156699314659559210417602216949823880524302500140501801986135695769985554456578157606405793657468260173844574937659985778062515785141075572076024515664014913420655619686076216975299808149770307005937593125018163667699653161013593468657017166394574696156953697784926733359448721917166903929788058235815059996489277588486041050405017099320944728587434676817580555157713463839247608940687774020054437460421365110611330641492599701372656932773312771804656000297731887205303507011804707118718392445168933248276503801814295320884431548543152640571701052218885067895261072416782159412396956197343967753963473317128182462711110686259008499022327934296103746693260301740363484639599489614170596759721646280365258854892136061465558176237120348195555738187065288907331034731482337085410197809253193385313388507042860964652895948893503936776567518578656107571078627840195892744534323350984721876057831701064952448857276384714228573133030508562346760412513933014328453321835631677534239042413395671420344969867202267623710723012568303929810188651001922684429135433617080218725595035316881808171942483446627208201987512841135148123177114813664665696459827473810207309166403861502258700211127205590166815645964676614920655033210982912031792986247687992157766106752239417029749023264117971626494863352217445708464243620179910711889345319948930318504984732242377692423858286728735605173002664287139589260093663017771541416442351696180570438096153491119842090540107898735144080914073438918531534147316617293558076116627807085691728489098244816218570033966457922745609901423652226395832282111085323493476800756194215019645056281348095590728911560225267184057540559766649141137162109835035562927869256810653331961470066663159854223106554193606473714283242250035346567476408513495255121138943514682265206806278296978627787946357560851948954378677754402181276614712532808816623692717296037179128876951110173952303008406769284667863997151704852563082890924917116600574882194519214997570970866419687684510901565886286251844571940412001475891512023716539173662519230768332101873263284020494397848452827557483180401967739792822536050824398987542671937812484711291372196814769512407722412401953543176489850719909271315337347790890220301291100889395447302085744119269843631684553326118504326161576495774870847754987826877100688211025416595671754657559779813644458670928339881697980805784090853729345703243092079308719775847453766406143580049531789571049175350453880451762738554792879994895319865891006509523477628955316635517297221851398924161219399638745345321520992875535518079086764740010212938414312389753422855997780693990386647092941436415449791415764577100179048464063360311174985473060990563729389815729231353983093290124018880285448583598017227222350046878460456676179401858376024839682017010433385307823004192774055967055853076199459816247707876483684689627890089572083192256050179300875319622927529079158164394591226210443647605334245786640631336080380651631230543190659751683141826139562286905415737458549774410963895623231799178481427108385201020176190652011670221024497615721210674655553835442579793444023253293949332730660813752277157197925034804953849806817268667992747657607340210182285440770163292776462381161547160243923607542148909577857045356548422607617385428542931212370963612645873800252243149428043366917665418089278202599496125883179467504470223983983526411304376033446994204793295954152265701274881931894514861129569675808092284418355283967462154700132453192811550681360952349738035839683019711020557272006609876850727933842991817614458824238870781635785274084257669625996048414536363384373725840273752811327722841324934851115424967321521824080046140659757700385619921583326362744810685899498289000944249759275429135823560935274346822533362192964190853222675789386855454137278772394061088308791600661485115297026063021325391389066103193482541136749094769739959472952234046777584458133082772685459146642606763709412185683947118740878571941693773736390131225028206888866349581043064542233233554701475370620208105032012562233730082754122529920025691576991952061101937800604308330732546477997146507625530880657514321469210492180974414871357198225184101850246859872009899754785577718910862948706113287741574909413188268936763391288943444381937536295665244779676433165920016498742831697269912316981693916806559992790166963991211407092265958757507847031925310885960759614059618099731072790359653518966589637674617152281313961598031576558430778966939149277696785067227257764184083977515384036624764655329977280080636448447414254868915742387889245234071039155370804933679388994698380960199010901672233537068271887481274025692861190812474337431861068852889612307433586625328635055936258122652566723053188781952282700476366656984865525284766672725954739871685670633350212664021006990783735506199321072491180163487608625450581775839845929692363574890609479546682597395631949708260674341744071491743503044703626930838217659825195439314600070331347527070593244104857911269686616318719209526057999125651543518929878316265660440829741440951880327370269294576340270679062252237029924749936940611272889434446880315389108176810806666955081215652220999114671416797560861124350042913975299552673606242498079270106926837970182028344453325811464134368946717034574013238394003757551057904134203976407060382223810353619178559031645220706542171588980378623167173809955610303842145678235446503490571268715689230679228078179868128847509881796425912472972193488333567749839805879042457277451330964935334964333848771205017412143570554192138345607144066794314846694141287259185461344858380219093069208421339960893740773691207212849381888666736465037533379624867719837938734515288499981629958799620019381929013036381183264678047447182803538284061517851868890474086144216284184940340164569221941199439479288237750989653620228702394406683843346116751660470116031617615936292861738715638775513615855450981633745884645423190484417064550527980013816107491189207029045511807339351521016173198994423494534497531242890701802515692448334546824419870026448559968790777113312920266620237242400491808463603812934155369810851717704893796266538079155190227760269661192483731285003069438326907741334194702745902025876209386225469690604776603700465640175435524710672073738845394459192967628721872211021304975643276954888242812838037303543978909652155683397187610097938508186457258842454127278304553573878187575806455832200776767223802761693853549045239426811202984418470383023185251159217746221549663397427587320129086360806719547715882429900391412319606457697449521596792210036154234192521127449638700148427910273548444589528608979894282203115328735557003163664330547936005365897931707381986218171084120749906188750186543769170268796471850901646679159052306200317117865671479557043506689673187762462344625606920453668841029613159332665276124116303473668341529476538393394804261292842236661774752686303523542498444333020124441851974000030875450560824798865569875437446360970902134101653327025992033946227355636684698438639079237628244738608908575434188885945676902240041432742282042198917420329264161156632965435357273942871588979089583905613996002901304743881251647224827406398440179369259249075228790650348248526090855783228804009179530290031240140754778935693139669424443887521373150550696451513123961744173508110698675027419487609596875594089024027700841927146478570726593995199543837039285963161333374541731102198627374053857414408407158983572566732740681485661695673674359096913769092980320080748467147560020815142899268351848045875682078399907075001719157906168000218404595322649666021237977802592995647436141922075448743798905134456416632976486870465075575916025845096582390272021357256717721015001215598320323127660423895895224949487516392506051990134556284492733743978268919654822139470027686595844990577261681763615880925871148330071625058753277933242620409138328619936709369923503598349451547680663151152787484752829654053511224136002468003135265463107198702960015344009528107961819971765478811287401374485892321263666510681795612548809913397030760388038080912577787500204263136235420513210092049276451342903271780808968580877469437789524800151307561040074431333931697156021349133471468918130761528326160918782359361757232484200577543073908384964831954303217995474080750393448675503228597263165815952735072192661018251392262058790661237177113452461612400577540493791746699138034867264155122557869507749436313651570793687428420613703284333982998078531008167195218616399460897276607862867373669291666323073738476718633171464082411669920657606890175086569692318430738456019209294328195857300654846328020511393906487448038124662748039135539599641557673093781973363812293842160543328546867220854720413016584928566077069575056758396229537925031208747430318051016147608895804457367123847209955636549106253670629188765784645132832345903688859397625191984005423133858783218263057674731181921371924366287085909881856568488170675892862729664787206486783226508479306017277208645754003303961381417651722774123761360430189117461582846244251143558803057209848316169806759385253049957409776751826385210274958395892724254468758062434892386767304620586752946314670777280705463031108596052735196098749323659272786822737169493828936252945616041613470094103224711120057086698052052761100384299134976111693914393764421713299430585330341854371824791246507759362748720529647659413046094093710233837119112261453866300712459465742977684739029547090468418372507844101481351017212438161407549331962744122553501872074595019237799041337262689860521227968453789307955030772786687287807938782455258574754062564857787921686137150506028050376305573273476426196655795289874293089077611014296693138985182271981107089287622716849637041507647586277707058081115006812933528165752767618770808369845471443044579130833464876855656044908308529426877176812549256801283808535730939880867388765804764013799484033916820135325245618966408508859470503975231971695515443038803051794384869200298825209603696339899994431074604884893023670326265812623329845388278241497755119992466027135955130622823055543999935066883764507658717457375148279394697782708146001564262707572074411672928356785480484576265295022774803588569869100118903823535689591806249288472234539943044103216636535593452953441637725803121796311899745361142769283439463215951538978215585070935217062148108917643797539554095720801981744419146736205564785453606929759696623367949036508358298380418066636059191811259320017343164284897048975392526428939767690724912420487092811531537103078289625121299116888902462714899193650451034098593342138741667734259957882964379266460659669631177818492665312437614798887303589649572156600152509312721778626669244783194141482139914702912051055654891215298935381558023033551575707001438563607153168946886887976056872966703185242370379364934704074009133321831537547392137401449172872515384086130612196101035613372550538267336053904426726540673569390888584501113473067909519948534869649897451756626484518231402902186463629327700995764282832797433340139846938361247460204804330406059583330247479390755945974389346853165431300698549094273183877895989165528646709016029456265674800239721602453931652403037001541636086492362635368662191477807514598335867945718783341200221748451353713018662831288112342234437487235242537065620424109406020402935916652494856295495513614041638559114209842124745051362293238268380341616689592125653140425916003300679890631487128795929173880330128983059123305987586653666577463963632530919548483076737654639505194644467497012312821550704016035126705310023373897198457354233645194998797159985895956505436591064683681186017638517634511677992877327690197290248350712619596439049824931589367925003215283914500653093124728466838595642451996606239292800388587692911945906006647783034651937289604465967582083869666585116698973292241729349749863122149525288122789935787377099143512771978265397603750866827088527923043355681822593411765106885301860763965141283962937716152764551251484096674820982426389784129609444478803299462106078684752484466199447159441514382421964236493265273745854915541226399797280373567389990183471406247729411768599410918980394581605506976694973717299775984194836178864762871375074832898049570767005736317855181237768077941577699941328277219996545527292612995329404383771430479857001829689860486164106619894528398280782103614991010166665687217904584079335341084230267796830187910171464862679125443202288971400757690972631618322840989702082275832251818128726821708794385595643785186310933333047727240525193432927125456170804563431746146417152697117787295451094443256549850579878906930962571469156546713222202940274740349862909681992173262316017911263177901803589446398884127368377228247386742726818042573097688482611489128132984424402426226762795088398713101563603384740312596538403403120078258656045831809949388306643634186429776352644168849169506429812049270901374857310135357878987369884388851347868267436873595425473119559019160594653555156209173842201037862880455320863974669305842874171963077548083787263672013786156505134911745942141499015032015465856305943162349524654977444692729204908404797828205846496442067545420484254931751428439815792091699998483736432802271417190083988661797250969402989865247283982081089589508304122438067399243678078271686875201053712296336741647838471507754338367570867929160936030346907186342820055789174293154947876538831713311071345819728296327726882969957773651055181568365407653527582047584950047271724726206054209035929017246461807333300428472737139888231013594948921926714856804522257379415006034448850132023887578151027774230528863686431172228022738683004469571046422975917021787325660042716952899960143609272324585095283136885877559229805706127222822244578882638913185087409534901215319916463772663436541380679632739561879054386897039434065780576686343466930789738944875481304068338680037368198097791788441259421242422030619666944433572931394634161485190583354943035679464893866573695463384874520576884248005310650747383752236221809617962225239754587177862279144700415924321066794095420452274387642295682552234367896459411039673581802849621947219631945707314634850874417699356081519762881076822714497115300965923561605115077542580988893252243957408158625652430476553261664263171288901363380872049782036213330906946920926259987235300682538951818615108077788760670380705192352095980915377262537120939543836714835950876559564490328074502073615320945430228043642616146333136375996595846151244188647073804280133362356440008556359799466340162722859457161458295456648114742649730814468963547224727569227191352691661981590147794302060874251938575664874619160589591051544713168463498085808456569599461471928203749416794002935010532632159479365539300412693858216501894279996170987981309602595934856887094533509672148782316705004597195009639679718642399912581409815238632141665628392588603978246922658627998826773073114475300310821809826472839290480236768510976142841117649606702120119942725358407121525885624130326664336489372259549953604057572079468370446804170845019750425051179350805395606614475551747397184934198496150835641833270976720032396535584399167247562579962766895621197470185532280213075373735993946145149405846874754958998732734270643438257677387314443447624673207743127507348341389937338115166641850299000552981158294881340305714544727156661146282197385305128487199090971153166424358009606836982754169122183914290757854297627910987606231794464429506046292180554993465834123667782698799166484954309469571140283471932420280852655037482059474145089767941541726756853898262567204226893324987601624665273923841335123500325611213810772612824675099005528261446849378888197487445351120602218571914496381524034633368790716756859413756494115661516905032724747520729526754884115887475030629457844598952125365142937999684424067867552827050382215436245952584324915247896893919988171217107767042591662569401471135206430826575242699001714985529191234398937339006634006233912320202963358500057021189797042457428271357618132019101737495138236343507536759355119737183569943358722161174500136728323012536953503015876615939313450310974064423542235132797653518779056536443382039164567407977829478100837930077169141805636424775454804712177558318779509060454735177133594509623823801094299183859860057487236240716052366612576486246817040658828170238954375660397941657737088875555784350488203375551177228166620373282149229314896045587638760054921673460868861989636317106595964639981106569241955469060710898593343052660489464470025961502772490311612452243172182902965532970967696753148221326544626037566094814979641032289174793148945402698324043490095457791805066999710509617676245751993543997430425596961040383432309670515212759060673327931343339117057546363198901603655859049835346522550315524506681528388210973218889975218135214757589614717838312509516535002863765566387695985106780985052380902532889770630825733629748281231179725322909008733439389720422555076123537307691042131761274623911735476849076939476362339091775778818240087739833249199921287146093288883504960978610838715693328670694694063190445785317249391522794598434674619954216849455703168866231959659440543416312359198786850500630028069211351326732159356400944838182711404047465371175125596973464267525547466707415523212864971740024672551982594814778470386281326695248385160715144202340741001294042831355256031918486036295129912149500806494547688317786987071608984746874466205304137290878752751801576794738262474361896252525510351877344235157013711229845444383352574814079793281920194331866127758693016570217808702407034770629552888706925558812736024386589103542491203634978755780394401710654876370058209822604293844899546731085020805957792972216694013518478874534081708115391431366328383177115990450319054789107436506788390777902234483522840982221139415695002822352186086923489442383813721158742369788850974555430390421270424174236518665057625797029884869109055656168412727929453335100675730018229896141934916837360118755153894601566431116259237613187799877357535280186650958457807592225026162186101833418839620403811914277707383224519810163399003806990870123728102278839815728777798494730395834046124151251775135370556133706493597147374096120415511713597097780677230129928712493484085596980955156351803427266286649542176508743782102858912570745402377581573578074031234247290330451855302228120209915190505491955635301548432032143335932307428063075366108630583511988182155340400892237398639518682790343451607143774379966158718017235623117693016757470185084859734615833107014276799750484567022920680967836728904343353068794980715339970193776399026195633869633893785408526041498120594355283266321505094762264510787393232566290619386392598659515564079164087549015630068414520443903921833281278998653875054598684891373068955498269293850748408059978997587881389310025549796762533431270901083622273348678789737374997737291247083146647280738036582072451335716148419551593894644443843992338983934693348383532264051272840658843259022716390996988499898439308078476710186429658169244075365964445073246252426931345858353260558813563839483850793944142666512345303223431850569638961806993047897189848142338059717333763844337707434376251229964292285273053186339178810898847916036571379224755529167793094753437950215001251899553520719990719810517586580229031345340116134914512213541475129657832923867603548891092871460528119279798871280381686778606674224493795803358367498037193498098104738092145617720441924881858181588590799414764135764154013838870602191271005543391566748795946495581981978470243270219511791346089964243497578678804305186783491943571055292278601634316940498265305561016847185182661074673551912146099887842960239417005004445831524662526712011617159561972527139698908432193688652926560535891116566467872036597145078731570871526068503767782243003255410160249115122403075044415264703051737086536581281476624907675015204971987182045194236495802442013631788676416648866049796447391074677287549701209105841341329526147894841758108320937874225090729860067279994810972889105075324232211030990198265779780578833830260894753857127901388685028853782708255249016161963692468155810977362618272176831867751638477943338490671491599726248135406476511941541102543944329019689831512246751927298358932943195390735833737146544023737111280313210638575576505061350650690238606463140267047534306212009164759807623071454811304624130674478005809305845510994865901376345806305074081360367706467049381325214620652415074119285332454377849195017317180962680257245449376687178463667165445456272678620660435185979954252375525033016291112412742253509211080629048596741130984342448994982256689445792489448964195581107995158805962830411227141003051150427719620209172052169876368232897847787839217058293773984093486716919472432427853410335346431511267886021530885246017149378142123211206054658075741759359989820933028223344072293588565687460482475909368829223854559061985344680978352773356102946574703107193290410960212064854131194281894326956552569333776102936884385627277909618098179904396769317507510647217801475776911690542747531072251871623266378435981777899950244027042005758115982877508578885565179848631274583103987806638262828380366635626655936964596547304961363458890029094180675783085457969972175205615388909768060485225962938991317675032050587605224939535936030985183915281382601998072112920625816267854319865564030559302876544625287672770720101901538399161314823407388467437262881988765441670084632843023274043710535346772147418775749841851315834593203001821536997716762391252127975229914297406385573427416436285308235065279811127831866777079425744317830393168801544156036669946839180214073708360669897400907532904285194625738394496205594804519566673568268744702002995352186318995015763152647563578764737965300880362176257920331931775951032703129330535888607949975602275643192954279033243724949011312388274360762396523713119518227554274229201092160278820396709331833991359468282423362631760641019302320140761695568392049400390717487381376122071349635383148330815535335328202467149922483261599632869147935206483383537658622370771847534697892309831027404594457694947455537574060672400454495468565319924601538213131080573935610524524739275800833749715032960604508728732552907333450728542419082878061615421908840969790688801732677808610512568833647473164980678425792655644466343042581039305003485027280215681963948338425110622795470397663889076960108200406794848738691497937076656259261652530287864433193737710676820062963186308087884922048861124419669961312853515189856963966139098831533544630916527879802365374738027243856710845359287671902029335291022530685995925331163481724898160885079503659074783408651380042269802725803597022503318976879836706232828202748945347957122565588019309837055339160320738163826979210612421908748895780329693505306335137970859422991379111433410958676858311721678466450798759632314274466658367982270323692205294991977344010523867285545073796370357739713676459057472703468596017238657450791106801609636773717000262354503693389732556037925352873026447611149348320125197166448689127283076247580002198778652748397309741226252068236714475265836708589542352988698559636184368056863030114578496888976422189252793776584732652640255762196571293614315651963542409224561767969889367218520472351647455073841681429273345726682695147708296913863311436649941551016549475599311442134942254679838750777851120459089774325643053538899374791029485704076757830527203364336600934141231133287913509036723802419498571980155733855294667393903492857166075721186052809270608487050556246193885832305217107908645513768590136064357474228333507331034465722858744573376007338109233457529735605343948968857430653951780968696891759510295471510490936283128623336595856033067853234663728370781663484441788038084844469798698699006064560363822625463576593776889787548980332471974716028657505438181551198615875129994681981904737610349416020922732611299829102400402111067444575907820964307389225652647789033048966325700717436973465980440499261255013469318075176009968381723449255106309590839879695418227447559478353126975011601224727979946682456385334526274290337034714180179511983487057173527584318859503246973532717849503426074071718812670644845113860973929073006949663242901551780840568757948184247935043134069810701174454974431484169259893057337542473803291653746081780736929736883276069810357245600284549612738558145691057684874461932932172110976927984902963962643475564041836907204347041134422700953362330891825971003176053753619572101379983279387922226130747099809744649608249529664381401592561842751982142780935483522359333172905217229300894748255808125886752357564000200196657449392412126766804650592933681289229710822585083781873696288463724361508334170311699230451078712333278490815795005117008123703588056153284778825596848619310532197660627792152145360514016995613366593331852103601219083048741938248416235156504084034986904505474662067033990973032793893228047137615703713108334276598020089444954066535883567073279695226729313484520051965898700021609231316262760357806500605862657965284726587179792751488136317600757921629314672696700353890197310825803639980531090356744704151517926373810777762326104974422512870065204620785394304216268416672751686843016632942896417485142308870991193628941947227193007031744100121431036857898295887639831092722783259102631595285720461559348270145078168558643078106466906486733402413058662303917978971022387229392617941707255696726450694697102141846781030181602688761430594615875334131151740215759525512553959667618975185321910502499847342671236108558727241963539476247987724170089716476827631785085723696317012934504331429622798046164312694657241174981829144453821601439323211556804267087934780128089931807346079799411954991070575624028099695028856068992728227630851381416683962906636643433926936365771178442369570112216583457907352817993533031984832998411144575110835602128275852180381526639123685394628759697419605764378316273764372851716172279673417614057072202396828248290886136540917288618748315100571984489380039606970972546396179261486475232183997792518107750325018212204111507024854040855627918598468027874276532801716790546365838699705091019211666296134821531906719524338471881695291102321272096935748924099619130656705282556881964433753793813770408872207600382808834657766776282853204191227613997627550430775151040854713440242961627912676437096396870498801302849815515042313233387048596060647365382417273191803641766295336230240684297272989388982850563843148350713420246164014288394388267079558425096116034044551714597151674792930534127386411957019017431326892278091056501537974818894587818892216911332742442439710250571839776263123909419725626478359634614292041071241933541070486391664382643964549589272447639615027620407898394201364717699380772213404887144625915650073498651283733986400135171629899366693173245381225039438171579140365710789889452124296308187336498974515566707814227552773876654400674808635111517720577317177356617479139636058187548120089925564836396406182815258329114649226070487697468398566032769448618754766176297213671880998965874794270427616523425658653108100151722698437875370941705569119153583205293168257661447525122987213974731748709527249912397459039636772335587590573711832599481623119288868137537606542984664345178530812395098205315164863754746883795466934783428122406620231268687627837177031431504950685107225318352107478345257111330104298910587723910026553733261609652000096740951278442371245260590265276710526240162457000919713804648498148391487212583788364278848706769678100417401504381431472002367411087723720155521875390928213814613136055802721334010201722470509866065685591845051991355953937408816606705338970382261675187540411649267931279988531609555476598619424163853440463205732764323369772598641454373093798088756371386590573723724779273748995951425210872070452028319073229688244354120102498574112267735710366470575946221942241240431984246500486941548817605468406450373091565324810118223620775467053867006029112680233779608370901281499567098518854606327006303669253024549781727167748091147521461142675916691813942582193207280757690005578938043189542449926284571764864401482372685889967438175415898140076288295663481074495736441323967040020553514902218861514772154218277179542795517861270480239738181120268543421074916824801541820451684416269068928561860504414696503481804777689283474406854396928604675345160318995266467549183463149259965398412111287229856753886626333140361814477866514289506603581534085270891192540515861823854929392671104525704808603636444709918769235911133620681985145989017249562018010255923700510796861611527242221991501511096562425598984710564592962871816304856607415912719532993419731591549527117626084423117607090767056572612006150953896755447141048475803582328499275723411887657923352814670064700316773068115714505177460340755941616406863763073387105909162143654122390839003380935137284737712684118387523657019004919021880446213573096448987763397168732120057755864483507654587032022623501926260554702031432690985309717094713526940513064968851558455064960718550028337622446030431301156178489951035909755859172807496246132471862742327998412139293013397203176609303043628062549775800579968671367338120423096588778257024169109143292148346912513859686274781663962131676618477765137220481647923223621716931032504863630932941056700537389512870706756565074233711364781897550994014982635312443960943108225784690083073715332897967554457146526828933120953812677473745508744740784434522062240058558494337266934966511373655635754075402559511365631153441934287823737996734931448399012190060580731279242438609846907769906575628077902294970355307317357084519851690315105997765728028617410702817609639421755646193245582422166472406978730397094939808850075528200985521292281378688992037050280978085693475625309078650998745981235879817250356593052120490219917667091466746397050978337804383631032476302395626804804979630346226592541148097446355809537281124998365860198381170783043095036435024876314030104471993156215706711625432153309445076044954609429779668432311690155755935752173493199167181543699006667052811830044922257641134016297370137837802757620126389389457069497492559362908127350328094136239003329435488921963867883907113446244583054641500242630375067974874403727786975258454935258332370894668537123712176506423965421934257862738821550364669333610144303287414462637249461248987429083533123616418704632095023192481876628153026449013572155657562730508882641351008943835732700255162003606918219136800196481017283667120088318643610589818198061708563861697210941478163708797129485196725550474608516190543763484902632336544390829789247595207465573838799685966892847924097178619880193871082930251351923772679275017659864583234626703806204364272753010237534765593166450046633797367843671155622921910532729142048376183831156377155616721451021760953446844281833630097982235868695440883463599118893777801850591833391036659567320102404113703493938042671501839542542687762249308996379665953603377255533025531366665019418703855597092003809512972896214269619602918780348449369760128481199581950096795731677566001125361607789185805060278707240470568227426851186281376336098563732885265433672682573604592177384212730809802871396288398417730242690915425228449491324954098078494878164038365737719749778434723258965984938796606996502416250155520637540855315275576673726679890019799887707621585684879860457444196681116678452404822479943715745864960080844990937378757963529406689947793481171994656463780897157634471230018468234808554638792564901098725666890566164021684388949001626721565929474855516605429801249391135996642026814834006368471492164556568228102576034043926596973132307302554495250748067444009635513251532284381197389126866373365315409538635100875104437294595579088635735689170445173274493878548960810107692782457618012592788466317100919472587852277755655317374286475140734857279563713523615273898799491699869250786496279524868630871151271277937245961798862320836122285624669017987321685433822369401869315461011934592554519312579465488749723872144252975006723499988863440101299356204877995933220738354714633530624994451931445578490453927282487303776100416737375926651465527145371197991149452166346611211249833086674599162872210617919646008230644978128337334079634201751776779039058850993878975660096030022088940944354330885078453443943096498902106317999565982718559419587016474160740997366518217325876939684778958278413260274441982567225157221909287884368375687499403143208773659767649767087642169723657487673003986100305060216732187524697483141283320807853725551188601963136560652012262743869610052858878853230147010154336498636101885548835847766987554780649652058101687495916216644850325269339367982756967693850352752867408360425929524906173338275556683322913282816743722488082413512916502601184109952254371033474702951668628564161451959314192864335522393059505865153523158850499121926298632261463211011556224666261898968732961339685563285739830235516596617577713485240769474318805079871736593054225719118876889831069566353059598920891640271020574838508704787112817629547857884986117342190230967293289040406036176514211564034355054976507608614156215402846859535214156932390510894391282313105033706285907024533053957019872243331694462142499446528159955632781226591584132545653029419146754984656991209291177943205674627567362778180203829144421306799302659470914202331776285819577739840521400746132941440043275678202087811918599670978721542167498929677697510839199781222757592445087875848984283535626155020348638301139395548850424006714483772813544235797257841735809490818947198112035137272392012935765306931496008978404228499307644310809167884446395052539294725417613691565346802676348850480429565758702801058297640154739664255941684543880293344202235669245694111317058404554229789325808910990851613752857207729113054414219667127510296967670225829054885299572706892218133373326719909085356160793199051880246649338068883791725531225049157346802256894408363980559054010045613175980747774809659283389887098056083722776815538078652119587213848827431020697543427892988820967919224291201994565507212221746612566986412955388042452973835530514198331925438838341252958867033251016758130356600945146725809727067118954494142041258347086843082582829091610438334733652117157393833091941462947288607387848273197464377418103948503217078706451269779270762397564576936040610876085048638096171491813519425799342016519410298548779181996175485671056442770324143983472030067475847738718739121573698103532435600439732593353898266517397893823968539316721980545723874446047458145875566725935798892837446794215990934694036648371041607762309712982077004902200765530986288663494940078975436888013420110724175894675167398020953653867342197449608939663202520745853951202318192134096595698275588782855056745816155431699808081738163370686146338350553742870520718816492252374154424955034592252177731777196705870893128923926641336920657970352029471938180238122291048770289085265859728847789334061077943940097466945067570623888313669910758762803061776907325912293020015173344411993545417707959305446339706794186105350089965687546227551534795466772459644522539985013504900482267044463389212221791930670454976265943960502025556924591915117027692241771101870100031995300901449755923975825406688764509133650620248836598942254997106251611985355868417854707856594490209514070967259362624286410453556312218818797500141411554151637735512543104411517988866826406607601809597145105043190265032414105336951507351783401182518582061896347951840828177928300986762472709330795166654261374211496301116828799200688243497553949967947839948146862779559333081806890122747923463413048563988138443338484622522176855703268229539555006248577741581112773286573534789064023685204726533091154521657251312814097833526076481480948760016439102917897847383287343624721809018652190215433455026129283534768762239293228039479502403449817694009448230576978115333030136950440427151489688191167759367590809440130186098577433253215348574354962229562615322729442932257931581041629979575823095742570082294618090517297827444239642560432057846595016105462461865412401482868437570717224455465090283683215420848199336151212951616678009551003256817000383915822792698004122274235737643227412020023679590176916887264318384077940576702394948383592080293082493483734450715405237048596641296637036935122202004984411979521609111434901224478492231451534147339534346236674234159591595926141044211483014756240601801867166013694087477810628381229853845213890311909351565964311793792383279192897882516179995891368940903303582585338019760992083426585467611770053701660499027210557222171079978577720573771282373387551751439795999043861638696389424766792659309514377229838093554585602100464754045000601807634418591289024966908417143386413793909615164389450945540227340509783964247364768177221040131375256116912704697388040187669321437233783327281642415142341172381607334599898090665030860522201104338971585290452539282799869397466723536758035893920851519211735463095178783622762962486511332970724222646394200264247135701846204504314124622182371363995795670850649134121161406853071846267616954813482450563915089127404580148030582584511418253983366332997686985278727572682156233109293905990446267297452936912381189032121243680502452890040448610747154773946804345587918458841548285581265676871877688489494079172575355468172367995661423668913080674722084173259004725419368921126643337771067579211009182139222391352359349243001440235537554283858755678256233763081917600416684687654691353121643157424488181501922581873991671189157672292256987050163258321035258825634507918058107004467044378399105213294185621311849101246205917513128265929393094430431176919236681693584442485809491961578262300600756831655806398654903407671309024003007855722554884185880924552629125393647410262660477836829004414108094004472761875601857353125494934870670932363385725901343813241508480295376704166513373803213814365819845571232326700311924629039329324411115372804964401932069929952002342400672677081817710448161679405914167211745986894001911858452333297972007932207419466339002660965223122858461316256950760981579841530567519358155778226096284318019018657524709653179145597914918680419243432713353046432034798655227364387709585645932894182672660044021516216075914346529426107944282710852103548068625668177404166527540221993510593330266858150504655746785481671590597712118592788354024290543972266241219416956142825368814208005633471619341827593919063253435266335502508993782131408593893396048175508030491719644525612552692815973742569796765703033000677453908901191613921215418802721009259864365774824862317220408990474698475308643862014205419386359575375148987377000287823303173457544013879177342836478574025084185428611441739025118970236925927902461285010569555984195785827046778176480161784037189834598070926108114539655793664977916050922411723989718233681051450171920993136298680256232208779022522314693561433561842638780592860228662014483001064686237119724765454755416615874516132806921955413126264512079235908362691730195978748636558584647773978175858002971863474922049258491668019365313639521189741278980081309864274147908189519320829031725566679139899690649051115983906928140185562843809293983725900236005730712234062444399445168595284209087701578618526363348453075374595377760407954123518672277993514437243785677746428502347516792163805917429270253441524038300550072274798105570317454098517472321480934142700206389182931728427620956371737354544956542584851844524384305715283514314170440705802176899210926678963653580899297459316560837751370845360748461459712058333027805226800370124014505018449488387741762472802342469664538382314211682991708889049512976319353621926750197354195493660737796796298889196267545386591358969556176761321666726519454028249467858967234009176326590897933620011784245023436527843017929909548919051621500262548964727544263709306380368796577575201892540904052589629737242063096858129986011637496030625553680620783053655297019345630064278214724518400079359007825546636917198751915025226624151917289619093636639896962807303951479975728573803794143185235336685620296495644031409034494586852963925938830182560622090497565522503328257032879443596213097771153868096602739567375509526027179569010146015892838190792432510000392823324858419537672890470725370536592478706826925212440019019656268516781199739254297338720160069812376281699755902798896419590077750095145580459651763101780814694950958274320349591368101233500792214626473476557190702415384829965524381726541138424430395864450832729116958619744348326515288093672169435339479192450598389814933627371742353270567976707159762648276747012471189712570863624043213259519323761431551436353147375602964001958849894523494704237533479472121715093677980848334632488759410410285997593956320468408454188147264679140368720989939402586539706634842007868157723935888583409879713753660609438040754246502615082563426309845904436541208944935192105162581239922053382042058124746506885532457315036461229011343781045699566190602861861942572065044077149182601017788000787081739725649641976244986179597899052440587568580528471413724796592225510222699018977033397939116144089865723505973533841370684543623870009734174536452596824326032363359918368276521965080307402093361740209537819224086994236343090219836901281971542696739378783484446557552118963541897714883453635707687442925998057128707653964072759119897357361421786669490409653714668563709569231094927152922368418527989516882814241513776893040038133863425540251257920207466013954840264848701993238206407940700950165159097957602338125155369443481659156995951813742407083583590126563670584205584596154211435107832978891300886643087446455615885415614455526953130459136602835751563503682207598164033164000481109759119952877072320126086181963657168720419934415629827897242179819592781384424872684717974671674443619347424958610272364026406334997708782155275331494010151077053908548361541207278240601510173501468618044056931252477982510834323315473011883170663549378339189743213333739683409832406167854159341867059370417277088369027538518662537097199947200470850507655254314849376636034329757383905877129456982443855665183971534838689240944236729765314052867789834030891864168795154698967004691853011800015078184237695394234626983843042525738431356732824558694726661341915105389910019286873383376215772970519770859190936608462801983940686124926401937214629682237881363437019687353284797403592313759892910984983398112425709305352583247466458175908770251687688706754736965221812439004094259615112372801428226723810373233906722552872435927273033015447688941793671480928818886264216679046002995142763286413957596510514860049881944795368814668731504848458632509017872346178425531497788266191670623320301284512964097817587309690299799865855223706391427624171515829489752180238921479382015647894061037932120874603979073513199681116561592344358088238852539560658557419281429268924602693033190445538008693546263953739734407759025032131924591975076211957357877319585792082836072856262437158471206809090934443709503418861289630961178109359637377943098286089232180051587084982457888325131881552106526963748650846578236044572086007482696231184113346896938220049968060775454082250337752798387361585304087406698252163380092581003722364515126729869028322116601679415124192741112190607551853526527510087158521944211929017422192434794223195734190568478672187793376759887616448162989207010987541858470919865746306574455653589047969028022044924200040667019204679558963436169719698771263562692360209300936162903054735020647550066259657361201250378031477904546004181475605079833946370900699527135381784379307308581423862079901717166018181039303492331138229827522301563902272857421166085020087082975547976068601906271481777409521871236626958920860784647358475419503541590054914250662584850297365577220013413611443797018114057140430074659223092810161792021968920446511094171149211771337329222317662763762082611335934291258110309406527837538252723366618749694760405924863366185789197215804255996569351280254703354562551916841517022042672289976040730032548568446734003650625537432416504926906904083800603194016634019093614962390842810422761480705472512062137619482964305035202130200406570273849767369936342329707105176012212976516300839637713325500582204303785252270128997558982335623863932584540262976025390991948056444128747157183174947266773109542307598708386081017773629591799334001732856598676538847786112237657517083432291823135716689033986839925423122337198578301790091323258581076922236666694337390658895027002749457960559260556745754687447864322896999017653946275402983853641828784338008449798968077333894116068824350905843109552328138713599010440815019278697435652504415741040669148083579692389739331539899531794493144954503704964032632695717930376278068317053339464440253984371918834675406379237853943555417855253818686378349640972015418071531601521873485445078457960487155399955772899219837931616480733524863360630878604984516375499386701776506731314084921963142513730451181026720609463038863651761811634991998668793973082281789074675764358965283974791072570299958045103521286015869390442670207772354923993264446299414581479580870540519780360128724201664033940815391873049741568263654537698462494758984494770660069175755199889297490555200136895425871429495443496037623920048642733768185014306108751807232018129685232233009912693983817095012869206731874610486214312828706152887572903432609855068455043529641507303291477073807173907547218362820687979821250024623266283498689318537708851262485154878695512563595598222418683535091375084709441830572366457700248167694990991618148855142818815440388217445384170551125661156449754426635380200224243301345783705320647965542779722443567683986870066622305660987190566921543891338408222543012453693057566226358994720563765472687632666186721735397746908605178710228185279533026577783779316625234535079560748579204631938248537103563169858895216497272789519535834464218651075818236351273522030271076874573977701423482675845755439232613561508085738207203774364714723026867676249489230618407536419307061111130972402080961334332124097962831968414132152753704229857378481605187648449379880665223124510365062225065483648693256807836019300136319509106166775908087022142246373842180019095324952664676099354390513887343058913140544063101220078175187458353472719977248576298012049710479621238134202246340512984862671235876241254574418897257602940574154512603606935292126655659785370205651633712580295258753943800417162380103460049383213410303893484980699187185427685809075363347201900274811117150838255003254442857851353321166437981404700055498998742586714281523043591935401195721441261268885393311612931790145833826358449439415168800803104235131447758775875546060778277448803220357370513085112758084705662923818911589232627538864714562693378440607874182442237301218968485400407832740037888848161668788060957622665103247084181647865957716614949328500432223110441240212913142906345431889771146959034471876815659435989748154299073074084766586293483392058166518171051754605664307598314766388278209443026846579276387811167277301827407891332095570179350402427519302749025459315146008775291944314492313178950592653004432286907318598236621467259015249435910839679816676325598912845861149068834625408557437989194355008090080817124118949770825251521633885830275307286048258797549178010072597295847651616859558134370386222988024690366162187169193562423101299565462684944386722313006862230217755107186578336455960003097173240623942270476189798225826384451337267282236068027676261956800042936665268651962853561173817391985899710842864928631442954837539650033356415942090766006176048595108595443310111315833757537385757092371773209154195193176898120649151666073022423387592311199110577067867144721699000752498102754655066263804361261663467399676465240253899159826640571865145985095759781301478137563159987580247115014080460545124260063511995030050492637836436059514772130158971188229773445554814784181059896812688774085116522968973572432738883789639715435624264189979642969965152519234278584363173668381186805264946611844448154756897454238715743025075552060302788959776859847618056758560597904745698739442928962772916176712864951653231643843993956112446423878038204890393942080297983353707907375932213796567515433488492437168437032187426021098883222653297133536403489929203730052187576518665357626489660631777227159050035752611781257352860497915687644414358362613494743431070545846925920574130712186187484125043430233633064500192018703718979940620271200616999374578829392371967007361279059511584071025989729359517324900110599710242008509847203782843414546976723512293630804015647763259486015159973930526073597790915008945177097988380927502212740689650719578694844140739941121913769225835912863694695233447540030103554489910621008382221185803994525898423677312792986403972099502824306361973054096476128574059031132012318913078388758551179686397963428275220801048756641248821376927271932847570717876787773726592474451246667939322242831398022677766095449842933008838372303922351479234871131080540759926377944225998086812362938644570070397953535132411239702377804232088467748493996998447700530705223378468232533321315816384307455495503588420869195133285575234778946889001658671291907373452013318241646761618893586179695857554744567365864690159808290656015925133946670870696910303968037558759714617930386224866254087170396059070807266519947257515174481363532106312571710618819369016962920707086664595477708241448221278996324207074843967644708170812228534569368016791418370850381984722513780916507814167678537183751482405410273124156226903189505366692610022701162633083086163042732947736928441632639184213284411810702664314632460063972453463197607973554466200928654102807113100006733061619431602401391962430316184333586369884698943399889399060761786811745055982706846792945760905210929656571649870457051116859265898116065729030722865096283094039427893316422481216611235086665557613545010855863112264931931118967033128804997041475916507383721560168769949020331690096970670278757383287402880668388630752147525880471740603763218644810588860548822059251335974642478322207478672690260511864051725554535304891448868696304156731800916765599947261797685506499935964563250708041135298353263577038985033474750669391505869242833730188540305433266106097267828829464416165671959318112436224798967208215939488990272577296003762624873700385193857306784069084026509180761708078979748045664312678974648369312425519851441739843913641572558976137928160970640689944088222635275547960922713555867741752821303661902400687626790809632070036793530042019482921664434271655513925704283506568457447088943127158979442073443971492033572552540311458840656963937762401284822779541128051682138125837973414630150488763723968510724203731254300265065211607105775305235200804633451350166926302292797214693365838626090689450800216285941506843041587299068728206893605565530953609580537341065726358779561635838845997285006109444925246335930074310284054726824984594467434479995614933530866723131497255831262523486619480768419227575814392051574814690036896903936135341735949737228988979753013889275212759950195310976159839658336440818531290983584078730417909703609666482931325119816896813500447132716582979838074873916445030122740336175972088488540458805048147272556671123270133351364504324451711978412611618234064339214457621870897640012082352656118992655366943935099285062544154120872709218727640328238675673199604814582253095657708608834359174758826974507228103646269093267559471688291901172757291647152278043265284436184992275522436374545048914108533354988116691363769474447395722353121244628626135587947402223833886263516487531071887956349569457590776198877063191765575368920583798936155531886363056821683082201097875089680358235304759906572919417067306589619258089774975886438397957514401082243427612562139739847831396230868938274572637586373300323594169549007691127512242898165339262905952687250740715317092356705719767497542464308251321549485276315524994428887437697210908369771396524122618420514113214963675861800358729456654046173037211684916324926123613276218900685350013945114706833446300475819500708816423607728094759675999893510025630786409348257513217791972184309964475966655897022909641917226649739551562153275779572344958329325938959478781435646579394860044727273164237806474564143766295997952258565217933862156383618612342071961008865469839330281368984158892504694164241657692666743751557692580122362495678855784421711297122601415490499523817413087504364153501397897931887442373144346997810275495550074676668580539198408279197425270941767778250945982008763869256201500835558246869396122047205548070753353648072977748769220286720214241367869550010787761183207854679710921976887049456949192946267467677508666228284963933978666555340628800537585290754733276615407489427182879118432567113615814544752298510120754154646824779052526975732780660149775583305032398965572102267353310995728993623462795449747631655855266772739637223375958748985199187494237718911631438472723086150611497150684564605579795714719230700896597217341689899096055830609542889599011144461689334352213201599962160416350464291200749513357023385041274281615540035759109998244988143341784341285367595682320396166657380941906151643813446892879433413092459438611371952218557875289460213898330870187357844139717855689801202576749875675484190523230643600607215430481023420375406989395635042702043784542478905120293265582504845041397249967324431950524925552020676830348853329477366767886271288415831237511378041877257699020965115981189697983654233519399411895062275068214111397404010825942857402632984846161060759443692850200074379016659144786491743557721692083749986978296955774526008468380502608085568455822543315228018218195766763216015959739614604991750785871343000429655761639527473034475468829890473511802418871883349386084409606015562437465632335851108695001017696392627239382663618672426621374415036806145261694110644632121631181795046762267380262620429641450269593757278375563221440040057410737370187732917376307525519611905159232073642591443403415211838084468223207845118840243677613935123605163793454568031851530367805507621369591806461922792281782714814595784294153249268334241920388155757615274863480761209219603163218520851924785546470092994891503060974309454974594847456805331814803536734355166382059570971127205623754250295565080790044751804656126110325109777470490902020097076203248128841255339955379798574443547636296172460705011710147345376126770175717006218718269139758471879756916392240960464591334553300391842735337564383003130507763187119580092095236167194079670026490402357699358253467327580134688184673005213561545647965676253048030421446154776541416529477183753863204462161097916956994943763128657644022791845845635461144117242100872017867826481368445614868638550383814622458821512962676279768878798073818834623164836142197724731818415953069209101816382130270657747127625266573935673894919819211676907791447479063792804752911146088949560933037913257337579689275168531862902864130751686499231147554171354072208958650470454765467030168307643062754986505585736973454627311413190696960277350922570094377229933946008257070823576285694631299708003182143599037822740557725954879841241725833949073225366911581647086032754306892745946250038507861000817726845030327759996585202848444197737526064198123534868732910132571358380251465317419799901092729642107389565681300766587376608546822785467477902882154565215631176579444994161342578784607734423403700267596727426642226164040314474622955200106692195077276889255737632295406740935959472861802412686270047587891758901596286005509295267424280112769384801534619163903686926280532247163245320017862833268000965695046857692224242806847569497195187356340128019912274768184901991690567473677146896173131250107094639862052854343460370314549044454674101092818295498297221484992155663582843724005264843302374791738563962466279929618882263441270480148822925636615033515409200266205671755083558806261405226015100329272043261904120165981094917527915447025960884524054700822665597733273562636543185209915843245560934096172002471468977813855469476889530872869488413194171469971047101423608185241102252308249741721860422961374760367230044756796861750895295624867455865839383729200398437210574306531837018602453842241555549191080081002802046116456197258586048738651513167715278647430382190184316544842393365754867395991042245886116744438052995061709489585700550658974012917120232766954012677415632648884065112739918213582358920502460583317962935801100107619846855012722734793049511184256018867105540622818594187979855672081850106046660025561460907176436709718413914622094113687933799488732821471916381210741160827478656878431014171921182804948608904205525539881468464198669214786187415016600332427878435087117510112495575819439135669349652013942934869171537022178595844581438431991623033479030333366529346864322818942110595389056974764636646334792953119341483815429488569782046316609705940644839456323238877562321653644586478257182347206750779926670887197781807007819705884179173115756668163260316420157663861324860968520201772349186745158142832150775459617843462136265667790276382212707168534106675038769742652227904373738710517347188389736935139324872689239916008364334796475348339386580517723401395575525094816877190011362235230184048007960347593594259812035530366906840234585084606998451779677607578331733076572729006857296717190617542256784867359123469554276206058821139938173931101203756876407657247508756350250447419295211407330335059646595210639369914602681248457490122440070250872388502907159655413095736995559033435134656593189883449448555692993502361270232679503928377458371626348806860534215529222954230949756301601383934605415256604797952086475934648241646882147574365210419562881446889192801975833570924709311355894445338361190327194980479856219561302743295748577031052515275581004565078667013532498213414387212169444114448322025540283179483494771216353508598471221508119213981023429704280479512754668105358201924563966965658471952993959381308875747082512125662684459360647529433343133773795861414623709714939612843216882580613541444847219436525556078363024345340154645736073256727483308543619446078743571679857275114506007523908399256822579371065057915546785755115401188561418209255870134071703088409380520082888507959270795715951122665183326942848702300505701535471251204468317195484690527813553436006410607053874962210832193210320241281339193770030231677015914492798032753242126303199796655921309757769426841776787033722681968068291840131166415560418074548506840354076843330967782771953265661059879178104714369081449804721236393510774580229403618356909132240843070080641708377229146277290689434378177000492566782157090356735733257038780029896642073696091832331199850173700784174130891897338990148458605705479655081773996915873690176472745475774189658942592710410767046880376963608482245396580257516143367815249923975127894174608310826230406379376142261953803705211481617767547461276463255222088684665251741961469197160604846902174503581490855621567602637158295103341769363037845249561917707539338343852583234454260946059041814467153020087777958423594021993844452733847610541493821221143452420919146432849965270785363529131417434255040802510077889650321160497027589649314545288364141753606605946807154629002602733790052016264763721535026621628017901461662513896382346377092988806571629466164517526466194295342158395463185660030293719746289070587156184810968690336262927728327426373077457816902568664113373049793657206218446718550762364923390990277469014838406336076179192501083289297167806431757654241864233897222125219670829859560460633541721929182666618965715525327447863524338332237351998055510797214109041806449306725636040950250453787008761192072717982641189738870752174641066522569528329426847394791892799548555587710840186221444039199705141681309911322369976552202216634896517253799527917376062587656040815626714009749509254332686420358372548847128036184037481528604994117062738811562541205569644250913228808466427269146066417980461258145223894916470696695288269418236195726431521615915432085983010811996308717297319962757035047998830862731419771767002588419526173690037822742875153282015639883574848311203442803976445969320924343365698654590359189509542000163480891212492088344638399138512831244523613993788292439652608038484292362812980336894519487211678182496609467419171434477888425554409606610046324259081673164163629280990195628736106047917634114577342635781760558655482634271899060488843763459688018019294308666195762765412629391791341421004213518452887486578504319767420891607994358325470341257912565503867803795564447891868390410352188992903334520379282802815523635312461428055755066895591609544158309432676411286073819737520492485868618237276462950373348046095808362604657914515886961114852771674503733820222270739309398213671135199577365524418427504352197969510646806773817726658960646507181116380581677458388943918791315579761149031723804207398673360762047038634986417787559677427593758329441307512475893568412433497044257078468440113570504748717694905518638111287929379932582652159091712538860341323865511142727266685962714210978177103517493949158627610865675444418734954939566209289876467176968306248590101650474279806000515679054351739930593042361713268774640757831879062170638913169035427529561172212959569919709818775630350762261690067357035560027390746089597269998200363585546625404313995650847168544751941937623139528476286454778455034673298412471933241409003517829768658711611553916402964658149025314871068163873712819346290400332726918189958843512797262207205878308134852996141908328657742195669216850234770241213499937289373024379079343798296178372383257035741729453972873671811918359662544026573713106519910473054075219134914824338810366116596871891230089980160678246229184164031657315990599170581548549706914025561505489828473706665374482375412457340031158697313974223590769562570550362524830265888976817898312386920297547227101461590942301422274667486176765427668840760009599638589497669084690228985631974607843551880196704963332857475017767570916651468985670927323247046976454466797448314005383702116057596983140952923887548429740429178246907592913129762232376961084709320856593189659716216196772205217182064033314073387346325855140944787582162860730270178993275255545569889514496923540455353071147564684159188940193659311946565482980997985756798487194053650907355790530908040705257537353384445071612311621246562231480991327383637224797011613940850578010365394272493487619115430506800432133983309619246258554915490793185014265003419202754870367861052212438567899568926343041594762134177387356285619068988676855197287813908567851197572042966195005712325012352513571767043399173939727443737845061669712359952591865187107477785905769889660884322131734945470300145597685937327322509006652800993850687514756274769427233324609432751284882815750075339243970601302124543532688731468037746394246343332489935241281247725731078586069859273088052475256504193962279800350729691327936368167243051509843599202396075006125435852224588464448824779043459457652594872230375057913439430336873930400007584969407065730488637009909807196955787093474250508401560634097785445145429728625868005222124705638535665920948729368292584596034255272557755376970804674949958296952804026426213953727690801521468285193526913051970005963289531121574583158357858158605764990288895518567052317262504736752180888964908826856801645860205199748269879488785294506407119943683210871764727664294791217163369294875208801618773127896679463449059973668819756996120956719084129278776161013752944020499802602792028274068060884021944381305385761126163102155189414142179039613896511454620208116443697623332573478042021838217248298174575756971871601993234260239328790387167480753872147864605920818776723847111985459972834676082821497058690647881041216257080287268087283486627598695210418848924401640895566754247532094522074158337131126965452228602408829595763630559050954357553194509575668428298300448179285451700172445400708564493990143969761541558057665600320305990079969730953495972243711425751555493612938312103470805454241889838472266189730599510700022796135146138182485662002336795752373711009137082002725960210798680889211473906644044586799433233323731794192138537498815868271219726813288148490974074612752940406843027993280458044158448424109217118441921262781372912465978860994617321931133187288579667116637639464831490390378797928795728737599557822049920206067372694195555952623775110408589219372404991614886610091446943845411485926515127494538875914723500709133300124774614111997715247438204164039857883081060512029908990256315086632927500055747190323832037608969079358444926917082472546665893480912583709895241770742565093556906770110621783098888738968389029060093048392253037971416287645753469680271701667957024675591735852790022263004419227302721808796037198164555046254807354993305163674951093705601485660576057765848485628988049151424821578953625308499808432413802203592134787312363951678189956000928950982865494619865874630386517707676391364052708782771269044872043812791641635618683952183181984403026817185132096781405826306313973015973152468109964335923346959596099843839413089981111172212097981358346267637429639247565458020734862586928854260416525940646802238748703369599314331935735717534803318102167386858556285591330469387955459497656393105143491622717613027351855893652044248555231346117856636935562847190375813623106967160159799237657885234079833393454308111897151438806134684739785196882695952930130644962940372981606138789801793991092117166651672554426249023588863486896564338081665387533909488460129845563791903645723073868734501028317193774326769042794214246208185434330258234242531450418113488833897243590821519711539912168962899617856245097245798421130504610725587328922455139556673172805222406956448618072891627755668776353969946322028161800152710209766391934874853505668396084485419956084891912775995147692936888510908177053969612652191422655081265562407520806243345478567501126178048327362342786903242591089217524788303769896548636677470667249945819047859495201879326343069257410088722252902832799515986668749560379619967498792796015678553551935820902872335187533959551839771440734946528255307306418585199431247629903195665730931519600711429056428089315228572982295911465738119724172758467352155074369851723892510911165343342898859803344473047934116234214700729444312108148451042631146583199254017248031370578326132530778832057923502063700393265536169640567327779668567613565282235629101163846009621691415605479368185093096359336050042337163486394919485976501159530362516352469222364866759590458640696742710837410917582717687831632079882957034606700702824985815153065621518863955348214162626351825373752775098148096232849614446499953621590443779439472214709624377874434681312209140707561830065239234420584705985555243757504578326418574084874297956238038278715054714175637862795711185944786482506153644845039553484202615687391188598059216962874830726174092967221017415016036614709972851809795031972625746918469351346155261549702068421273231386654116599415594821936340875431310546937493488043692083083556194778666985670177143784675398980401337326491491709844143175208339064749092245243420607177642642840299633051987497065224410642557443137783006196304702279870281384378107104089300494985560176303497503659784988062860568045729245765782807557918668524220978244744383396284681700288425923803929848321003938686982743693957218813048736301744903225248020861292287670077319163220181542101990804898107289236423822333890135417870500427237247814465179561186713735048473689267873520724544349697209578195974467488916573424874126992271267274261177434792119093816053606316544657332703228551022193269747659426810056435504161285316327587771640573878681922608366204443610052877541140612833448952432282917617555129806810385308848170343096072952727625323847194342106598712849879307113854900490725514022399336267415007110559373171572737578492998812705100025230010658899042467202449084607572186155345304462621955613218482619705050387717649356924053722750914673191663357674788298323959965937871533557081898968149362314469175856101797529786557894517490353749497065319624924867667051260316614486085469621833379518820083387817215792139957421060448347434866578647583986017164404100794391413886478010672280347187020270095822054797999561442836007074015755248358714216411291623814327059497616231852041713130012417570505816608412808781240131228793204227868310900566106608479758624450429941597194055975127241889308394079036525954679794612300579310093882294922215243529738273167877782326195380506663510774103180218856320180233894483225653897757086554778998194623248157768620404613379751199245569238059777485198789338475929908959006367038913839486084865636833114010820937578189516435921020510526120692995057164585530137991084725325819660543978285801668691090142703136750731058678421923471960330818629121071255365263013774935706314054527661540778139397607953938500450620886622994606465991433612198209330205821158962422227586468780916997157029862655695451798042474930518449359526890479151640848980406877927387267927287176011446804931123106727950627251883020420065390835568709883276693041672776666158838452381702228160544421989036272187630982929049591715253665556192760638099045836922310811740385287279823790948492775948346428374382003165967850474511822298215678414720063596253665929036560939531928017581834860744712447469561176865336839854631788044308611522734334433868698991711574971134290143895027185979421488340340264051504691680046673303048215063907452218960122425499693809413379427075524348222764291362523639842920230527657475491504663969040784250520679592608358427730251956213904412304797546167254936109298987961457267257750514819723668132165825412619676506507825737359980678264446943236566355501424673248268436589338832616116821716820572110624273752359413114051577496458346413123767538645251796099943245648038966317936468230872796814255363507066475605020664964203100924469361270997267587468569636235895792505431054875533694554731995152574685213830651030694019173410454903750835362528375315430736125139122867777789981004765588902161549334089511669652045380376619532523324264589790242859145898759826140214939549704304472663257114529803251232324747576510606938959911853080015210868258702231117754106122446612636475731822227007549969847506887895075411066776079153130127387889810356958620146765518542148027880732125426840062445875713959477415567781379848577311811210551453127819053858303440164210122332566139874306465292418691686717027616481864625031209621966187766803597910936183288989996516247498641094039435591587948884500747861021821784934316965379370109235191427285541154436656167262970537541345167411507442814400498691230645820258362670411765069077683787317477449499098429327559353215952421074952239401710760294167702351276864425043883600892697796293234091712880951278552494372161523799412726555782808254026957699515470790233322494980235806219611412322831122929235796619317380879636462727725989454256221812951907301809126767260964430025626703638691785822071228652354480165887933449676444597291176525119251617234091094862424506335147101998999694261840077754039578097784898903345312073841872879146317001460789159830468894243889244578499215256689050636616627672032728125590338303307410453942494376433898378045602269784695977786474555892436785015232248851008124678868980914750366278016108342800587171295243242938134784621450039981943467198522093872794652967358033109987850131733064678345472977903722027258275196337503276144167148359113557584283368394511780200719752082901230879306632623612727383636702340708378888937486189897161601060805048077680920890307316845125501226971981577021101319435870381299488749007967423230084337211836714795917063532967115972082980905739864677955271473967634253005813181210338084668327671453255235643810463242976091379730911723644245695003930738735441623003119836958259878923344896299641785176604252723159776090290606471918649231571482952151804043222118698010122871717450144014127176321590029549584120248269085696281378548849734290001478379041192038172493050794794237032208475235264374698848716637036635090886100622869102168938254868668592490405111270999362997313182167150823550113689102965415342298429215079212329031537664495336010611314056641883422503793854797397735563209416997276542489855253292415168034922890463907339220476889327694928850240615414335201260426561014257282544863947824278497604110705962044692697709816244930367831339951158199623605983170671129114367098135781214388884346733846627635830917788006157995617265250285537512547880555424115422679810594650196971492494476461425034644690598064203078597124862845190252679266616511168839535722008482977530001833260402489405903000113966748214274542193690747933966695393206166710230971143476271837315500190644023508257802103234841145460198914317288827192491930716177072492215153968772658571991057814350252568547617745788012199309324411726063617635125027692494204034060890090226164694405249215062321389777471054676990049855516349414758152558640299067890512445618094159227899375997862156269898500225910135792819245890746931634813371835206555617695080534651909526076952889988296405377327222128338338073759514114520915514849332371278832780542606255152916564789897685961569300722320015925475628928793204775118988484052313338069093089533520938770870581199268689832614797909086965627623050851424712676739383300159261509140640071229036685338735610450036821064080720664425004665884213845478264557161972316569859235134010984030351502805971192231368067154777809403673040816915960652910167332732145349347558604863333824772683269206223985146771599318250807718853916406164624481965907539839944786024058572498974423954884672262473338106600631217609806926195786907941253563962023858283955832091453103385149493377060875989439648455415108480571154421968090711456813108683528566008227697160228689856783568822205488420546315507892801250636283321749646705272790460422612987609200761491801903833460523737645677582739214158354962318933453716824869454151953495765469883989905979577518861473610194862010311404384944103828047340480370393550577496059310593582590876227733909446691862083257645985659820578949217008071615560185166200103696273197575075612446152759591766819537080422912013822397098284162703921666791793092190759016834591313113500162978850197471722741079660844079995178180159386905409293809240037289793566936619371852257659830157390041456906641447143726685802878223730116195278197047470688396354722852737264713943552605080324781070394134343180070694621722436652138141611459491377649820744978977540759630384713194117472763790311815075725286564222262966341943126261365118362285172999995629646111738700798854193253159201874803704133102220252820548577878987593319982756762369019722210664625824913987473169633552326322804969409593624908886670414273328950548134397237935369938322866565505093201665732378847143436238630506566899212926623372625041227800768825951699333710600764845630049172606179829800216239691123187343609580921797772869920772896934258768776267630404918074761271798744389414359036934603709199705041782884504260342770590432816446932682405047780334439397730699128375427539532807648368282084902586309611651094991309196994224541586124638763361050840818452960695393804907991529638615128102733584381941955290569140044109753360068589901019402691346417490459027530826883310553332175135843473965789966961058790225771795083062185263940330060812858444519785357175501941810444965429234219738250446478347936386342156843915828602167336464110110763335324543836263672107505386306664120711741330060078074175758570091278289072806500963059682143713049589548303130071725612868526842293723592232660770671906903072859671483423217194579020366884081927638136357065662395104429116930495819630219741292790084813221421239691490626607405802496898451454616967724469723556046834506075954620510850424187836318557133723079831027755572899601094487750937917826417682956729841858725829173605479579988717118002233124752008327862147306172277791246698622302445361526408743269001515637535226701779464246443337683776122091505384992565008229109887275069443256264013831924270668871674781803047074057817703312877059861682351961441046390090304103173190357523581041655842424047695690631309498888394154862960963854867553760643685977441440650825025877052069615456394085670488859137955465317472994474512508426745840908218852415379335337292279994019119828839991277443748273218946035919482774937727305724167526148096007715243637711090081526018242829157048430391421330789772617830343032201605727460565034663430915828290060361471156356957752839413639711704025471705117589595623829924238748064508971815344156208826785740126509767712094629851436512708587322951606478903568395841872476478962268793023824552800910797514604298312067930301461117707763227285763267069222855192448331127167894943000739026840932378543063602202592153812489544341281495730816489983474812216882578075845696239845943247333418223713098989756658464682260432569865924945868959453903217106414493791125053216322597511349016295608682179036683987993558987556612639472617212995223063284621148897281416959903990398789772002783751172601481680559225776144338875312134880439244806892084715328401917471260904982865766774226868072801362450137709648335694673245448748713507316043228682405996340206497889548358930250865028221634919873695933713581748587160656270836434222074675809640986650940885350099248532314974010564493114103372681347281572562810903578299425773443919598876176613678179684735947563370493135694503156245373231611533851440847109056921532765289714690615846139288900983408775143302198986042047522112076683081659550725642049203254182449847795561368239621838613921570846720471422466813440309645072842739872168103146089267030760324243490450477182354217321157595099007226814192439703441140740698736181855897687081308981594603253699094260904452643601545620822415081314514265674601587792068242432556363976451921368975871029565161440948599758238476464100503215218466386603335623562015700235284292817037188606577706045873719548581255152155637551882728506545410789133497759400627921078720381744550656459768441374326083854309796410440694432782002012441551587956117776169166049070927562026851967651171962129248184742662079890718739119192502922165871070800848426981071325121195789819213796188537111151096431105751644658863032744495688399155871826421744406516869325796425610504380515028886611435276534331535846064122150867415146808288336218583395823698180916453341978779252041558977878025767894628843015998732389516769087481551022145582817578477713386651614749889907613544981416767413767704824870666785643489372417613859484698692909591461275375393606102343570736137531070625465059836219878861013410501080004666906810649992990455966630561071879614290042678011249687294679890272366533383046979928862865927457013468802376202743744079745086602530668398124008798305847582967779670803559788627432053244770295782712049110985766401632461133059468931153036844173115660221893313135841804965275079808221813380372780911810024669166593343035101338460814142189403391157532770811830693443117845678777435371383888241817067116694803656519841851989884830002766806640094667095650341889030156795153749928247902702682840682585003289936274542780583318800935706135536349264001114305190106673367171200471454314493447956464363074394112194277395258723233193575410103517176582559683343957294660104468391396507286444385837127737231881571669854596892116776677838909041849621582000594688402429212510252597067776882088041241602962995912790991805982957240538690951509496241500340267648739599204029681794874156009719396799718165152451783156258744484603059896499917099263799314944036630240767769093576347795972353487214380798399362477801948721879616743065875114748029376313770361212826127815611394722845374267253589187044959994841049666559070180385507357618560400404006642764179196944676688613019460178464378327571632098041908497960859241354658210021138355283639627531076669952108202044454313242799713739278280879574039957452780815634687929333084308601891611918571576458804834755409106713471382721202903566194895682019763540823155535793534405517623016536437435807626963112710768850022133822557906220332860931686420322567776243188484687133919125175001951999095774037737427477781440504166911738447907820200356094233580913400119464296671105424869320944505656953952750468806774383179955800127280808928209240126781865946686645993354788357470318920330532532114779510325644350352842336589499563628558243667241160628277286491341800960573074779004166406309084746195453688913288099822459723430173384864057746118224355248940890141947547455000316920352935137760401500390509306178589922366443276952017721154011199014256567925122866575164685878867792509791109297715772712792661691350008993838483315588902555661764860603905332993916841254493409462703565254003186531540908633112907933685668635625594599710339947334930688305083036142750102410218798078782502261395648508142035549554200058550264084805234909917775210487709828584045895612993530036806724688967214519711296930575382868529442665483565083626918997670605649206703535250379014327421095631823504442595320707001289808143941130858222499314134244463095981549413346553095262163942042686837597139217530065509315719538324369951926688914422703257374668967913154536141794044710267785344335759137916620276056101883359563269566258242199411329352043496467359622121652408084514837792321646741971266991897500143929813140345047096318653719297832472761969186146620894687572255179118069545923794903893901208285407558762501379337151933005989752068905991180177534588682453984147784098163552113297880090554249427141889642518425764422111111408339953985683181481749082458916926306241001731697659921636775456159188912839583407747611241435332355956156331252964078797853912831468145416208435339822231943137787897290575104278733403443584493459650141483165226830042670767403969091735477258504609325309662177510785486949710013729257883520060366701831651623130435914228687948207997955021227568428434361004883127718095145898356328224543575337744963405415832985461765273784704896056405170007491901367618917350792633054116586189823975742151180905734961050791634000629893484030187758203929420932161354066952277990748357746458634288005592374108410814215500816090556753628285853702164848598030342368031743946308142066216235574285427671834455846122949094819388989683626862898139268451742669849611904104186595835347617123887546352209518164659743006712697696419154897416861256440440972218444314257204979805666738273507906445461975110217026965046192573726145515930237770116686394078209729251972502738698264151714003246194222904005380824369603460786721572994469896154516312524567315091312030722475447349600211508814055709537830561181963326164013702632284691788085582677296937197559678129375928402543895793461793442439383766667197149789800690897154531619274781724737533514285974772864795746030006233108570851034035476766365480023668906465738053681082418667585551744287556140154810108255762288034109328990081875945056652607311674242185868889430082523871226034744683529505649141160917534362969862434406204959525696976870570161255707596288460651186903549442493818150901819034410395988495334046236622504570998116855586177199311856707536124697543002861012774961066256233329851183360174273470138327446244205088228984005174115984421116551224162026302605014033947400866459761837446875584217719418521381509313542562865779635362154543924822859805732474173917960199356164817744291576743240164181047144911381048521097312797519484388040633920891106896142620170460882492194478686548058815203398221656983900780665420283908871708343074706916061975218250467418684303783213218797958495787257370636367454741853520117428421381843337245264827038141590220181366892755149506766842083975653488415781251674596063366389814760874497330785543260254036491092784759059810813405027175787761886437895430936920689739199959539750789402246049696967149023505416397592012478079833069485911384277262438284038354545585194379693842117215349216080935374591563132488511696058212797997866971612828158473736562106255566907974345818971766324137263085650550996174280668009808557106582799865025326334748471038795043547138553836583357938784589465726195700138346853600449219292436715838051079828143018401010764336793983166990064401791080930416674599469619645134941121796636887265351118252732894723528965923722107779806106782781393146391437475412528114145971679695428782025805665774171003879639592330699487150813705441674959108692329693793853140307010419010822694764968213671835705773137108485263193482136089428401821126592490467885437116638356342208372471951237738576013529461786397052801132416745019630082417916385399592564986906826685241312571623276417973202927142744608241629794533380417372435114305811172279299457900687503554019831136294395247051279206132355658397999964919410237424644050390370367567833288287495935893900314743555103993953911303620032085865991880930659108943893100184247770100559677338088687738874219500207383175987872027629827196177301361014664882860488529422751878661051737808920660054807644118303277894906080139534352529595262206935276603284765804892648374916105688117796677377441952070227183825307798032079806534591038753618676096873567921362522343908860442191236125384881646699720917846505064756122446739242373373818751416849548574800154608129754881202892999301517211667793819520309567638301843011510710237343934746024964850373056399669541565167922954336208226021510187945673410696508871714542186993502065529318433287857552021176697480620744791612199605885762018755571559624255339044216750598702200323985983291431424406660744609792868564791380521179179001755863863528477821074726414392138670457099563741999211697734392302491159766155747582344852592842151086171500909826680458221727637577042868566535391110802768248950795186850949163944287684103369947651620208160627968892248995364270922121598096719643889578250953147142515044372219640756868581770782230934804324985486891689427750763020495472148822343594237476349782914228143477690158679312889777819660904763699548641994555479254376078598219542338187541600690756759282301110353246519761273655683716246209139105466725351987942523287843008617712236055690699232547542103903253351562684826072731103230237100552047283931590803861200610492880796455658939161762852880199596774716346754057280897412114843638068815542847133801479748178033444179963735320943696815763646077644998742611227524265756205473858891942318715603668360292521406932221584626370848368880078346456003026123261461190330882640159028366259476628375539937109338110689496181042191491294694683969909523516478339538484915249814007475052365784341439643111980378747972676386123329472541526263765970586254465978762005355974681225932216225978174591952161807768517000283926611901094655776362244003198365988500732546946936160301740491334724121536608972041123929755580826514337361477904940333661266216293047322897066813578985823924126983379565096320952686205663619295301725549052651256980252778595926204466212106322316697935773515622114249733165584085062322558267311915164577107161625849805256406233333189427677718092692143756831453184715018575873051340116013971621978804091331480326424319830063718676579847855881892267598940480513011920411412658164849838297921210611526398684029616296174878564971173489138565579923985540552744781578630532197582556770356988805357143384435010474957147665845230643059269566813836165667258749052513082393508643123749051370482297716470929465276013358941001194969040853692323873402589279607575041796691442994489089487806311450479966647796980188191964397976743808791793119748100886655858010480492199425889875356499964321232300251165810291131685563444922718552894573054269550211271778265687934489592313664521804646985249954400953506390000675134853592488430578193433216348825274426566610598776205089753183424767849519859782004643833923532032191174667227226390674014201694811010475889402777607838982292052338047547329032289527827063149472974430449645362471598256651231199539129036675669850816516414268255767590115037135291333958104172046154666884264914360636404986087451287491845509145409002758075625996671838887080586523888861590759319902817232259568299564793042676210175054132764519602352906247520208979308170158588436317527316674672977589166967078869540407689226123946990040552169328703603477412012885769316428324599107750012447606088198154167241133538807774221623186253926864688985439504819038724056561956472277388325240188104679913551922480514098520674463732363452341469787331641899804030677345690400515099513175232960303817811470609395913666475431794462005952641522711815334383385351191024484076776215296755151831419300926003007214304033803243573508232417398732473888238763086127598895833646448984676923175449669271711728133913795479765624973241554362319521982810227488145774203500719291188835202764647435903119548981398135328109345416202239248318341512120263426097186304313497633224914681909879785336177558008016507472815158941800181774539503876254246511373043493808319102529639047028455020857650815636393688060964637663039512494850421719758728566397799238094975414492235668909018717071935125091206427406576658785218023555305279002515086939973222808991692871239464541881713254326908043144734627058807279244895263182382026393435630151907307211083659237810834100609773290144009112705232910227420705807260639830686966765506262681968638067025788636319540021265742308187963094365615817505194099950615770144450347915658607558406135902841309214066254278902717219231518568051360711842073516532741650273549127385631162152214224764857434344437549106657605829697397653146944070132068535258945802523949622059738376259674737361589681506108415143699251438716031107331724371344656387448792968197944442252972779101223609836834362942154649774485886419692033979051238837531517416580608943261324974395554451111900551426016173583515020419963832108542491091736660570000423385008127716238948728321086163529095325035089591344623857624710957244639845942101770872340380682267694769434375388021031689921071257174411764571356740288226689326161105710941021231671721650602697128439116965998066660031724933071461122042731117754722157852550114225084538381749088019382017833979543553125082260968946016121440219569029519020883374703768765277616214715454841427592810109359050973688927198958191621167844363692288405469875169123791548572152402573930786025580658127202133768981278785128397578377554003088485479089604813394331276397930691933894832151814705379028802742054103386543779587351590187311743348576214693417169281193174678341051404059271259560847054716632891519998293552598760400498908898511549047482604448653870106655181215626988844317810731643871918891906065036925047629446528075410155474455804837453591659164187918343178969422357584991900945350671472027507010687618419508731496588212580622091438578711025781948118874722384956144515892980711667670497352402444302078910206850580626159294717400782519517124616956355421906092506675186375971137493045301674534514565548643069234958918334228390747559115582866205636050892345755666543475021021314986247198879309831998764648870717206763879168068750700366785480844908969562582035081917015020926087396485804426981236088957381888741000309993606556885164322773726931585960643760814031902714888749850570563781853576031279661525755808910633817752357667615862252620439702684069251429111329142872082228262480523181083074004698091115939224783682249068272594661340862771342135985206410363934496457711433005775909215737986962080511968300611833685475497078432353342196213024256603843056565564754097640520198709525424787663928714369196553464110653831960051002920130995714497599187889474227184004873536668574225922081891557267479306092290548446891888090999145941340610380626215962400741741355921120228954797079783922103191324279688329011442455806123608890568048021824045512233253617996969845897854625472724621706063113415178082057065110525006973610496141497815281738704318603799268042097336648442636855629735602391540044072065429767053615046856933077625647332550532429894358537123517607768052483264214381678298346429191688192856377695391605099208884559071282082953254000297831190061976183650636817480976443956320881379947186330303584696346624282085609499857357474733550035803647284464993308973584713848526878205989973108953094225229067094058148097618411946697140422535638453589612835618237095920826486887988134691311989306715741680442282689772778586009195893351467012418550505834910730678617376045754820282934221169525370405847043738472371459177083229052916697365016318405102257141874102001407187556545320605714877303194850109382655782437816659036792540794037029069460259860885032500032343344692639405278259947430262341998278462675854006351864135321130365449233073089207813488545851441150866905760735860348904510057196193539529296729288104009205635168998475688207811328429882915703666601709834410401010707972480083033140818695673883112359958948555049317808967771894983920023867306774464599146795808022959563740770240567674877514575392272580661696403515826788616140130445791530994774599113948709188732463437009595765104067931794692119073906449791114488823854043247076799815940395803151175760125138761023220371190067008389779323346463679175241396210008048008806039945353733305237895722942229239933843542127407932198289654123814326625796931512172127056974672856687063626123859299134134359609756700203324801482267435517595910708629522740710647280460689942767876548578233334831659108162445762889981835106721235503853798922297635757113448174035131452390483248623709571305533174125010262188828389367501916137589986534187785305255425420655801939703516842174060721626986558257872833400775902793650584526639090266200831840363641660628381421048527054951725876255722372677084028315422175638266247132510684011306840961336996487951571427961371736565051685950974111524381593363525596367969476445793693279244203470276703197619208464662275899199204786543879634073296656179129199835744759215426628535858626275618924558372337341628178472252628226623337494685487997358095796313829847391586079191062433704191174128142371831936600538735911161005472115469473424846510532211627507029990478920573352835047332284481073336550903734698604326815163368591931415317694051630405975722307992991106325278572895332227422942371022149051752572336111096434121696744958997377375640965581046628653135042913919610097341462412219490364266130684500903277474781437062529038232406242079452861706372073377404291586204174163716707739625293927441833275756923756698967337948997201094146240227573229583150388644034281744731299263883658020488505562492153950609340284314918768295111808845966700214589706236634332819588886274365664341462956880140661151838727995704346000260403599968741584097786386707098022875858551248753202255889124930512776003378152204511607293779022310288704373771991668098599239299448412037332119826542829477558320426980686050227919696232168476341271434780714029680092734078667847388816727557854498226559791876938020245175201708516330423457060101624410698166680804295513911646413320572190924436477778563195826279844039990222141639586458685277440410150667576293935135480454673471426053724507211502702774500287758456901675615545196362337470445070815590469274388228881303659579908921233903991251551898755875962345947757168726145781544020025796172860503520412065853676061528612265232717066638332250644184391153937581193387166599819099514815340235431791366533828007024131542386013238211713064094487537559641126914678368049935888697416029934628465688125081047138950114617869966166129929758283785879237917000291668032030079875263267133643243005113051537403503755946834546663254617434265482344904838773078741799477049802401485677810318406750258567066397941420468500902489564126171914403442427177026754737080016670467670567955421909921844630251798244523916770728039611238796163975571564354854133726378852582195790856200083576455931561654499872638758355203531079142216257685524327176939427014454397470613928821507891076246744750098722144993545875040446112565531653472928236549407018643692795031191617355273754981890106863452394550184977028225396308752456729001377173484269426638457194745568845993006620091318163729149948556893245414689450901252403195410150030630676681347697630211586351639058741781092099704998370699892188020279043266957692488599056737442609871078736740855624316251323182381525851974630917883139129535963571463234551007343969191319665366669852998682394466135906126946253669788118865625041056872745900712758947114591952243380644567396995341202186717216478437669411619526089716704405700833509715379465787524348193465367023072101737400547382955831422250451303192943436249268709107395659323394491607957522394528550992177889317460931981081202150547261743399288413591356628732111435838075591242711243078861099560784191724535540460923187851461156386754753567108619784847384563011598629248221592213281801925623643346912855771432953221032790456631419140272333846974574716611214012553016486045189037786262771259120719246469863031440579498636987164295628373534715566514077558209428905938414095629839316645902151046043538518807154959502110835052750684608308052038011453062529331212066509946345246569895870750566400255979984251527693133162342423013513942085985785010246143490788483712490259404396803992276813991326580196455145487680549670784530977494786738886668533888696294729282929839907400090087594619018001469389829992403489963182155578131404878009530672227338109828487011380902412703174517969576666996719840262273747765526282614815625636909970261351278518284689594632482021946322678107362442411082432153568119196042181378193000790819836465764056207207158667302167622518828725221856814099013518140133333678011070201450760602823348445261131186364661548173093930120375068876695540226306090664109330966503577609178961837086819251482753498924945776761253810292255761878405949194724622629015978141458718688615184010911602423591607359663108196804809098793171016977793949871645372112719108344842314944098317601803639759242558846068562613323614093659934213570792588558024869059429283780860994030720746430164547418211846496072617919094461052196460599412096124677632489166566507269478070282114786088040104041110600422602993890147805675267224970874885431566841962492906136430978584712825921976209059679821680434317296738976121634580108595512066119773273849610577394851251391481006664719140844858647039748609943342213509978910707461594727950899845450033503420848357305269143680578132869228203058020600950804083474823327546197220772116833962949650029516284150812335827485850640491829768634895631556991268563833073273954033271204086349478862031461596977507168300139888411322519443584337996568942692864393796950465326723009951102603564482334944536633408404827605888591049360313973785704600639037961662309405810735964184152099736880556912390731368476025306932474312988785777978008079529379041535925209372634223270071848293124366784657128101598331832444587831189319593118713142968243127723398573481917623842295032788117387189430690719054542258845835342017085199708254449938583782882901749806540474191494318767955832554681362577707189438022451174452285649299163577919985046681704591578899426301922206964957044547055199434769701602373102181584811036425707633327178130754366808232297818262208369764510432025381440789551515953213095097355152745668721493813578809797367756153715811619476177140754410509647024383663906418742633386537526968341051096604311685726000241089249275233100133114613349460426070541989741379927176618040482479411977940812776773207997667786513992559236839134900564652692153872186218503914320302509521028398501226295499278675998944178488570705055738619484741891709458105741890350134784275929428757494406916410816978587219722057334509513700981173639413316594638656837258292601134638141341342082730550075098629841697526625596759352542019072383199887391442076363735584963305117140635093864505993864264258577601657006928597081712403019750885904035777772691406125887226313761884367360254989097657816352697166836561750346656118552799869677895069628751302701428563661105731196516324163858854273581186242949111301955075223793661422189569356513556473992667482906167626005499587094326595807664905087972236430624144861988059828475506088758117250311955861481344409477016178696253219018903358299392879937999043212436725660955687232307422093537397952311016635032835719120614606776120633792331902141927866161697141118541212823769578587271664892570357819765961007532382478032184181910510928405039254244128121112582955900903951812277254678365401422469730272450758795045574118070175978044411015578413503634952919411641988215753604786062094912782451641945049519934453816941228893620650352812352529532057665923580376734575512759434820727670701644744509478797238372160048132567059559672000880737896239453405505369020250536706225773839684547421244049911928290246132533605093455475826565232732677562789243074034568126595833463550541559955321780132989880372716679175523554639692565380590341654430653506270075445677004460543134626615290042607523775125688482718157375190690830747177721634465183304073548081627968729328785661911987390725009899643069900122616707953834097157533761862051918035115542354531102323688011606137887590446007118740038089006521432969397321842979044185470667967064022626243630000477542974831401250995236542657634476601852755565555463776084242905052391456571807589734788687369902435796941074863458046989581497565358085779590118694968525164930497909706796760475013780662313223077795133730171951583351895207954260452236440927516763628479971481616510465189373301772571358460462093004501522691523375215792084833966413999784045152858505870424799609939210928537680643990970486856231100958067374802652227480785095472503883952626537869520575763563189982829799766566232023256658402400969126995731278741507081165838373346531250633926451817645679131146408922029741568638241064988069373975948291238387636387107151219194351592974645822198906835179136691346997535826054811037261406488869290146571464757664995642090431997579430123191038992247977828864652129121537598236006357907133442195770465138471155760717492833397259951617863317246689754871475065974856345706359836211599783802529922858890923869554452108257304136039875265323180537798549875013108664675006931439859187122727770131103769548416633812656950819035080975726277017154877863892661552978880359809095423738319688047321313522485791779092200329775959734002025225252115939295933096418570746111097241683242990174003849960057299941006764489882355463432270434449830450927102576120329709894808786480522583938969676402577073680218217686594335565500655121002870868001133665362462304529641222289112992067520892121247053225556595366353859859060735456689309770723433449011453763916187688682931679344425653970628437163816304987964233352468450514362985477714144334426582018317215921627976171296769633116954185498219429007264746604360395462912172232115534912428690600093698168241967675678671161556628794335241600234013668682453820208457485728265460861180654940831000352046809156343406818540817259927212574928630164609059457034218906889101720696153069316848685106780668643022368728627238759061647183243917344016989034910356417016118937980345931146741551217254846084083136883881840651806728500826706759659438849292417311039612206990202586887494793390253012338558429672268969321264896190589520441747000666256178151778666166619883926953886505120714141256340013582867859635047285843047710634343601143226737287361442835326608543707418557555288231281606282875332781757210862442786049962918558747742728827628732102026701804759047024704940171078013837433855325113642894197642018522100822906345901081690046669156363013077161969476852899027962218584134205716471684569459893960439026113443615104314792868106384045730569604088353229541805201664029813943816579888057430159492406052795687960301075408909337884893198325001120849930149344860347575653724715418321924516116992156578207796795231987103609096440516327272433317384030978005152479287678959230802102151583979296116556110188943721296716404573187846963667224005076663756068861793220882619188291679988119933788722622930518578099284129737016296940904445354888556648794419334034285801424328238487983619209087054337196920907515619287778033337779510868125679523090814400876049538152407157630196871535558281411073663477811020871493127817073099707216170059798899241042297587775855792914901974934091965285664789730306421757725301572007073020361487413099223471663650642522308954697081238433334438638036895113209933379850777033151299612422932933920930555836942418298897274012080596998333402241185608894008702478518178327008009679827360037113405540752493443391531267131494219546428801223016843738982553161924655693744837922820707608340676842065540720675227302028797526136047908153189209257067058927451342875803821015752027161444998185160683398142156688429854408724303374126608004797308289202521351769966970821459806235887041358845721407039986449473625302795696451142684394020610570019173327448576067503608214820299128489506743205278651566142055942095292658202728752762843822889451043085689166223387913595086146651173268481845997418838824191145842918868529974148894117959813164160566491733083470122154824012224308502096984557565755538434971061925746894732301360110363898521710848723765473104927315745333425681403734730674997981764635597050134964210475986331977324537082228466544941184258241837180475001064235427716266573148139953154426093110896859002802903349604746598239049850785502398539945500009276747419685677912433511377555990197217242955762880434686996729424052045323980666127495732596108520725563949760940693315477421711087123828502742608478829318343682612439623857767128171890019694852909233483980785526881155316419442809532327740255592433380468557422541595504948375866143547004589104909511688486236209938201187301004587795201413980378459065784546859694482231039080215231031964256652042258395273003981928820337734223535439897877363878460498742865359451279790507082453933506981567264252228882354945220013035549361684374792377532021038438102004354337022975484075829245772858817862523468227906473255650688133557200006562498535253668158963220991705891182386203939555662973162931348047283870737629509902742880534421076325581000893087427120811270889994123920694890824739101302814785423352458046310681092912628482611359753507927760556987036027009284313840692535502595336656541468273278855542008374251131122810417658903359622433225546602869072269512152693932645278917183610195689740869138836179174583923820122516904539132932430458681057469400102405062091245582182634324557164681625714329499372547434681285492822915429178153274866783064132617951856720342512989305621772474847149090987237088730114905212883706992646665101427495831073937681634115416786785046244123898335324659021570569306176866373128016415815229040307866512257556749396235485132592104546528534077533471486830930769274937020276023582720705023198096148493304843377614271420713571929894445014528750330840162028633183058144351483695073738713240292762937783713648249355735482087108114419240173931594408629801361762498380358668354099632321514820379928054038032527767327526330119231000567434725555630524642720307208776834169905569170178354556391696122099085050175187685662368918955172446605751369948462800137475781870976962346838759857179728724027696821841586244290016258190716192611632510350572645525355574379667597682527198359180642003136478565088270695153137928523552375695879059795202254990437849883046597917989841929784688402204640581889961640871969605321169240035101241983651422512221641695278823440290638095340866108376052451496621145835237551133655706806457719237295587820638414345292181364128947343534381211374460005917404297355681122756998186615767367044057623282528191359558718471583010222256291335831746430090339354797471193606692052948150349301612549427644325374443885124453407949135563340089769866681269176040746918718109423183320588931567208859436891397918567937648192177665099992694823962589130912003248128858010220799710250888718166824703675978170953703205969791032987724223638647609215089799439338361585765615369738609210999956166474787852885183824261345833831648174217447960899742376131590719811596064262842960610318329394455105484968178732123361533356058281872125296385178744914390130231296622856951263506870262509762331964688219559652311849081257069595974689555668654032992388521019238859344486847484235813822632651603752453936506973717891824934458893641574042864944534147483953635014485481482983940552698743154469336092364215235856214761662445209914774874298560092432528458877346120835954361688535722549319544457203623569947572493725938599838312455588987790547988152857483739772413843024040718266708706303671452247290311919020764805778232934788705944020559761610703308613706473412993090083354144576431050087272531168716061881463140384525759078903802385567451543544793710485885391829027763332501559964132580322993492434996325414713419519962000299861403639019681970577335412649802122312559770858700751779179783045764044837191107166950658943735363803210210422609914909829669421320862119969794993346970909825748524258053926538412693366604409923325580578916502862001079709559004732169641867994230015361701588688340598959290205063622230729352314450593992858152318239218805909147553429481100644912033977011337343325503756098194900784138182410423051458478197111529266665660708668812108542641559953107592577848087982523340896902689909674604731879339844169895338975630096064962123360703655993964644598309167815780061090182681711060139338835714398046048647462556762092007888217491344910286229866626301515126346452766726506957631363943078403953574534339739001656565321995015396473171642256707812187875996140418691537887597873854955562533729707545375257907483561352110614048548151049239877136126219024665815028649768111447794351191911224302429694107845632990974326022176539184265048191654913535076359985634460461759351771810626247459445758435964478298733189986732931684502444407298500366519677373125583243494630421942523334341067732234988191044731030394706689224221106930713313265437547801162475039357572918002737274045377525259364240435448775716258450663884401069703357299061994759674080577388931007897394201901706180657129965338995902741998100545051284987099182562035034025748770058647480635381236286689340281959885904811624351660762851196459140155143538693542510645008468330010204239981478165220720667051090578861610157869934171728580267752011966384660006581373126582257746707682258252677427062722220425663738744858870512361707718397270119989717112713919696070244942025066168072661281361788587174021460814087680094693224978597268618160809826365821413563344352553031784851170025536801961271090436478205183325466103485246630559766581381222576755825795100549721489806281095040029288553853025637448127873544302280132886077896725814263562364719566318920805317620401227934664192117936843553368493383435207492568706503137192832383876662919647258613475863500958373796436205462695956764953895766931312160332291052068796715287978598353951126866402733590598680218052412961692415654234009910866309269039561581379819393435549469354009316406293918417984608456479654774469773817062599781809916588428327394845825950643510044340334045269867252471539705644683654470790607214556794678913172510406397119410192336966075867856542502746888462001320679031168862878489440556362540081190989141579117857691646568494569548123111063045019304604984741460430365848072098494902068945634062202198027776152545503484587523164094731004875250909842991060124322140959363681525353252287799206761378551080902885408661230934734421703555291156878440591001466329890013455818714575400179123464029662412689823212179088632261118481646972329690440739236854956932584447884014943554615460421109007827139455944872758147545428443259705948665566113797269153366969377498167649943538983239568365550499710288349930056327410039074533856960065126189554356076672630906442181046262803495999653230648278442110714197085678281312450805846994765741266319902808972485310256317778516272842812639868578903685525472715573072258218667347610310358276564483799472435725852727090453657175490907876741004440147571846348082408997175476275845628044043856869108555583856662480061044580732447229167302482429150133601300434970524168203919144202196276734114015134240012402202317563590738142292215052072627295800656762392301884194194553226221932450217544720578083825468095157410041503772139655972741856447500806472233620074009404504717615611236520474780299833191865132832444765029500294018836887887654752693251133671899415904478714845059246711969862658930365376267550411765169122530115897311128324400570840208331801097032955964072664764912720129965168003794315573342647674721506324492549125126700951262605436437504227134785935628506663988765994990616632076577483943785649379202438515832389934424537036604550818224751011850615450238186632162051766924233716897427495820474338845788395176683713421140549002093066650482657340937371358559313823024287164512128543790644809030822209466812651725378925719263005311339283228302022813364999878271250493409980106141322555555815646814261702263349318328546256660055329582595704298692217560210480111627886472050272074351756125692566642780453062577962262378259274441805172185899671401046176801580450614914483719292541262190730644715940600031179938332204323674357208768743056255595544411387006897158577817132704960165453025171827020555802512980048864606758617389194155728711742324060950978565304331293407196209216290555693245571266599579941804799781612898600538482543630792780028567320340915753564013951188855074514895962660278109480951265917197542951804416755595549979115046882290085394010057503672530534512573318873439873978461779075313035384043435805587705845158483196171968060277874224094557064535093535008084146718745732201498859027939003501470526780488828241531390963802578405731794927908780091871762135041917768473574055907041698503675301755920171017637308789426168029466650768446773757544819662236056109580311829824566458242465560756370118649579728779858541580830055925739787102220610447836718683792930904753607193095738911680607193389807093739542955460842747952690705909856940214401107395042816647829618617700996141874157028509664589108331205017836952384470226508772716644177902554359316587967826953569422626377576420364208494521616631643049924473019894998735867602418607382349218445704370426450032766851558247176999006896020479463668472902522825623058487684513561814292695207474670900471489371484938658715450549797397968710524536862711264794905947454925599465888348904862810580850566234408573897897624666495221512819982162869187826593108166558103080208650130939306253545277989672604630069393439583653317626238978738530843653485908965947476403406347921675328704390051706787314064993023160737553563135253310414787648144441664802169564829291657353476819773639891639730377633408817510380834754235724642335397166386793764787061089434632866326213120816574061095127179201174844873905034623129258261741603250840320317239504203445378956647239973204007432666748258871689517297651277352844574579018424433042655585825104769625335337089998173288648381380883429632230162287057108230498035284589814529733434419592569089664224102960165995935586441677031577598515991706914277372357434955600213486848543203972996766585628540405119169628242409264636206531952070099106928274498442361586702039108816335200340324224083382159387825751069939820311449719609205515074202527673648802390727140904979665969465335233067418313582052041427677043194833523351200842339598745439995069603263342244270652227254364905013340778402031286155300699863737747388854863040524660480518304448875845407944514829400869891362484339871969569779966815253776720511585834468572994830827808489174694724321260481415379418449292502135618118965915707543253507260597657253160590818482178673509081492185295296373787154228331377255740300369532841701638098847943029160140840946780122588785479754573528609136755039085886151547711904051131696643324680845089069931393314004209227696897594383796701973562269914843405862672641988716561041689968369541013368967828205818249643133052597001668080552604281517415900886189294482127230343930728659347788371137662556470726938588277997160014761548859718837171206803829224530556339292843069275484403945162877293773368692768208527086628819396778781277984556728717538693836018969028870101411920616140719597774002063069217170717460858343474390777055323308009929820235921584412779597520655410522402528444645372379223857383732294945625419229222605547025864745100453222610426271859237184222905131607844306703006140811282246820716716129872083556440183713827418975689726785953628255210456340971946049536106346857746104489259682744832141230103288218841178507989586631070666208924303651716041668661468335692499796887543646116187715178990263355761821453885753575579332725807550608877758672930081756086363603978232435669462715286401038517928718869127725964772690486370818058801385793363088638945146136313427354522702371334427988955958416138694879681442347012278158872669539000462193551221906126627081844724178686007897886295782463725431324809680595969777554678022821717163019556028089865714380339361688727259410175775031750104888518383336401630996552992859087096845330891368623619563804088999238753621973545942920763288838685292163389705345391410081962327156255170128954269556164089680201754152820043300352442080764843575024322309233056116907358939661570173833840524712850340326600115580976597629877550236122819034188334550961549769164092456654556305809607705861595159367940681522772030132238746291467477194658354343631236167367587057770854272282252742034725192766734509487769108042268810602302385887399006442813418420040263023080100059722200690842917069433244509414170034386404769336488797517298763936672000134485524752277013415629584463619474268256813047767800417705023141610692118049679129970927519207252501827129914675935397520684360913330880130634255879036988176490492393111504182156167356387828961030632930600893992505010091220541785000446222427410621129815503628301034497626549355914548765034193534623292413594250606538706147076616817380060195262470940167929190297129534667562939642115862964137078292359370340037736352426962575320023513248253333473691987927431036033388375426823027404978958343126043786684437675799612704524841650964467314119242982246423445039410350975168060219380113850538445207759195068565223313507498686061638396589887169099584552514955034388292658893663815123140870999158794072257471673956328171430414513277496599042423175313565617067014630965157955761315405058079238148514718173038845081176316179284705455400231930109045162596988008574675548969504518050573362612560478427997061884598971683822642147284486937518709910911710003353133279805347863243972914400359315107397883528242356625277487947345649841356888261156041470319932983181325307091471092756819801732088537295231949466058734708015230791366931932907150198587361777072462758748952747366861045523157812802808806129399993566874400200414264706499771011818322109981024134639469340094736957315121463569072787610592191376485203010689570907879176016821261152970314757309893604576825386131871303223575441993443251923419765164446710954396584981452167846752922187396927183712398846664391863394361152492225745843446978753603019332709161065532378295225911756589443585665565136073702079478378636634301421937437021852158822039196032411394552857900526094288662347228923547619245090155471122183710750521731557546524562458826232897113749696334537924280975244891926781242189578189780460345010749708158937721572238661631935254309270152365038781045491397799405424870582642597289453071456024183636195412932241843038927830487739445613080277043126576247507942994698664008082846548313042840841058808962400649426403160254189862539371322912556444425333471668576569391017127944423923012352425764673391559117778994136286137180598512703648762095117825102554060678090259114088243080420511811884649316738812095547677881562321928271522542699194143670791893618341068570910338973130968164065703407070303943845186985413860993147478965884136090347139692819744724037952747056050490482446790952076807354151709237868865971883792914142933800844947681928303954799117293375362998645966395366415412391806171656726035992978332301325968752059180562103818497489588819657612488934900642993896823422062917096490035637327146447601889642574092980262010614809368328880539071568949418618336687047670835004159826228450741174679206463337436978348905896120570104916180879519016477707593057519176359615631098932879279518743474334269444273897609664323501777813710895532311339815173619058412178680327603657383281626081206015644557671697645001736964524319295091241311864025167547005936945607462303707986528630965641954289080957614935060607747431269110833765112307471223551042514465926421784263667709287547866153894140909504957822236668302537898614611769577919980257625699094782900643798919775735740893551737304008212975911614776390536299797716070008708620172202642951073665836791148673811644295333715737004238590548945844300086227085844611206376719832713271618186404201766040942663182135419500400629870981004599645633207430684263486497702658303104453921365427410297939696918608958755701195083167411431505324466067132459486797294143400265496100597166476959796861719558787312068443898398161927008270684973086209535122772802388396843881840092653305257885330380012457732647640616687301707167390636282865275946341639245796655041713950592305034525904357424303810457212406456886615252739165039663370869910087174819346052281515195280006119432267242352538314890737419199024679344969900514030066142555289932205344576565230331735002253585803789115486936101217842543618039372756108183915448400634783751434278988424393030270699342820422286305568042894358877228949499695602572422771848580175078785076014149153987958228338946236454797155694469002574855396322989167588270864949085086947907890959641748035571205448683208148972837118367768830237971461928369180564428287681441261956871552905775178486402531083624995211874447085245415066047281040714805905039157131936781362601298457501773020049648630747950893304734129540869950794148575997956345827888906983199909108983136010345853948642701585474691330973719840518937420913057785577860514986000832932111330513947572518309662943769595598714937168783637817575046483680586171642136168911651598308247133001648998301343822453576142787757846527825227537621462928744462958878955210334373294051619210945625900535387512766963953722333011681719938782838848849272468369451784740261941013394074144577864453201294101345796182528033869210947877507578608967515158686818729145685880712920748324065360640015459911039696889075312638423828072623879433745096044233834312013161256830898524893205865890871686702010667044368592191487722108953584783120938751809046126035157434235083978302997513772724801140927881650104182426416682074072763604106424633850408934293803017341761251945288394647047422959654730726430571681652371515235065607159128616412260614923152854501326199334365349790591570950303794654604926825666340996771701932822079646949765699913083991970220239737276034626787530420703718641038781777989225292839420791974603660965396938515410568524257092524054697780653274243668914053412917510718190430812063418102876601601915832719009810052525767228699399178780820095444602981676097269973903878207968854627821872117764127982653960940114021686140374641328843923122026399551225835368175382692125586902312241384050752745735868352612376376780640967882437782587844315106639772792961219382630199548422287115969534657219975862737941552381012434982275411926906498605662770621102761985581626137656082861708228913695774697775276234997285426512821933883255491414923797159373587993552209157036332541623788607883659627261539971641946386886686536450766207871182806343499976292876912490282803132755752601636172025965311812169084629639189717198683294191323706386078531500059930584588139560549405845742266242497974038045428038146640117902917293639569665818478999426851863944577584668664411729593385165293760546625009441011336642010780357948051688360539489901678496861940925690695520705679279171464070124563951712541428594764631785212066958175452332163924446980428883300584282774288536914320406785713683013131144310972741994958216173589414571429736803177955897619705342568884762426161353797771591706617414030017877787437714942176973641434610845893204783806075749230863285793986289744478321774603753069162640656568713084375812954461224074920587914484269847944159202829531503919150667309121399313253110140090723385140208350249595156663023620623749626713026585378325199808746341188542556818694882655797426134499954243071895851869988264681608376557136830845427837503324261826431966400000114272045833343188592262319919447919093041209605086459715307424507007718697021667794555123492510969644113896021587273958640065855745096375452085559130115529391803257095581027797104871735506797964430727235583859255808450712215680251413657475565777657204258741877207271557048949367127994222555357582417033952246559549187726323427035893263534271411857921278053853876404128604052556278265106176485985497223757430245307219372823334145928026102318740616949354825118294184428782054992623738430476706160684691161887329286904138284473666936503079050454134859196646387532883547253166954071112769227398513542444170980089480145111558058009460174749702255495321569658465579106769171590503469660138142040153056266048199079661647258715795304431344094508017096729341778105276366701314313104111432874246332587890403653505639419101486318110653516072663976239222979065498720829945090752869300361800583392177820846966594655100129751052493441371969064627203468068136987582248570462826364965460981474785435935062261336286344922270801324887448104155510703667595968668311380004774463092969099782558253197195350207145745918624843757769792177878499018834177671022570705922245592617100419943839456852277293772865500363261877363303422598764489089385951217595670337906490881092062907263009718963009057897223590224854220528077615253704139846781003654253220267364811915626437899273987719094768931648880114600223463988489210955543752943066561884927091233988172314388748104498865553215135001610559451062118088838119369070342593367515515506893702968010585996958420928095670125405780663309791416444019932552582079631427479047814645560416697481100153553155116289697319725341352970533123147228349739339402248972895782914850277627711805552526374469090940385298690088059278074104315802833537866966929438425109976347857890850784807208220745301102312001299756945718992687699300830604219463007610841829238353634617281459121292608608385294799781440834361769722219681036660058969911169571935028015883192714409076124904743850708973725187103221063447425479048430337467076759682486600681021117906673572096039838845769693780403455139443067360877938240242675841922816229203152972657527417865212048167548565301256346555270387036516688926524047123119308033777417044912092885851504200902375835907736741049968950205215272163298451302352135967753701149027983508050562676988715670934204255546651939970029227550850105285027079182835941010735212707504110286886438933989016597607691438929456396774152882832694997315016675894401682331401199962870223163177208567119237911201201844979640273256329250829763222478806116190876448945345795469661245102711810571094353730946050376477153711896966115937093988243236911296957330744800632098878409771741059533997453478244370354311871368845351500763209951810492706775295206448992814104396248026515361445616393012020898334497272715849073755111544629597205420432667636944045993542815097233932198335485387721379483127294379206751305592348461233271343015049861995937866634945053364871475200987185876494902635519590508608569584196151606479706284336823439138352820390716760926829764530308861761304866300766464558644176594751270686918063187885711451792685459669416844628323002202518445612742071246720550542496355113577160575290819721297661741224444199933998828670271327938279802283018886351423666193648962418776056316180278084678146132467180600314434359568874448038841566219902195309757052874183915302178021048457394972570823910290623586431144341837513431237805184029131771252171533097168889331671335946213403136946679732341970556558049448102399309355744524785041393693849404343016902563554283575971331112228971379603188418292644694935708169793779494283907154299811632689993054453536325110169567652429428286746933867584843792438718121444970871302181205603114147869755086577189705453511889638094538919142934330188548794766754327980841650225005420618504118904788278853943955502229034906070167482423566619794049179871574985118186168188093297066019966712392457096309442844936223974177063534123839043897102478223456393430154020249870640745566192850783477982464099613963252602101774078363474749333514854374695986967202508219543121853208382512316385889552438841157359655755951676137655728049385064741464654573222365856648778729691281869813395705484187083518245299028002852723419090418979220022248769459515898923503463659915541873961287085669627312132708806813924133914601443613888227357324555198595035978523895563607370091521360872680967378989654455619154415913770895624715172508869917528670272585118350698622420144179085349836689844629820616952149487994604357964836224167968002848977590019103148025625734806745305422313963641015643383095835858805020975457452040050798469909765366085024579866216138384343326454016975158596606119091127075182093539120645916176803791679201642181739055219548317418849794889220886434206764329639084355394791686819136278836362330417297879982782546202494770036806171744626052257037895856137604741025739309274130633985806657445500902840484794572859652090983506734581984859723669816813048546654217407874656441246682862794467512111846084168916864904513013979824234778676859274522363591151113854148983066015291308141658686988438273572341646532237290832352493249160504912927763347051215398119569809976845921312806347992907316646949057310986729705110825472045076623544123407593828453812997573263941138809066493811367443281398715870072397921137940621807911042104511521723939148884222755104572589849438103095991928786869619017192847572891946484651900306343224452201287381252397291558319273806946938457466438378157402641372802073572327468254606828373315674207171849886741452626637352208382270156746310870626220020013583849234084500851197949837439962248398474953628738463773071655472993620450488353667515560774892471807400562977018912898571194437261632083215289018719708215297725345799338858268762760299265732347904627436628891616238785355801089631246116437467134063599194554094579194026886012239662672125172854931017503506656285996315347859829614424936040626496557180108811650602403651223707412757005501210291806696047339700472919864544096962573073883697506009038659177490013297023533062302801336201287708947532634068287192225363845984006780610668647659249261365928276483782661695700582826068768149208897052655335165592639183941658305905893197630461936624280799946957722123838602070240775531105061505964915289938879446265484035854780857345197587127950163869349763994787974155165999690908365718973628101147440363727474810162582373130929150972086490241615977188026449119108216323407441121483690741883681012086937714556948694276047181085405354269858518113960830515193467396608105347641667456648736641361182887115165515039113925813223479739004022000096935719691277006025392022097868502644896655020456745742611562226896263716681142567220062923684528809981924776648723997708270815527287638230950115782355391628384078434029526961600953971895443274891053978085616233675910602370599936651966897663245061135565246694224360504108627798573921027387790414250593448490615310053318918603474728268512887117047697718973280089246549851345601822614429699277348618131005235798238802662244613667198763781991776345497031694310819092733523263235854280802312618551301399581325129739039706598245554398366431228935037222093641606467936028183314426121876510178255345179219603643021703008739548292799260464552114124913695003634062905279079116029328040781399331155952106609315860749039287601376129557997750712118344773793968381489641968314965256257224245274614371005382182599977706448796057773209279467260042754419734459481610096784978298092399890384954222243168199507898204316897373174050434162283188697521167931381713248932341952972062712816730608582036735268487595316769835158505245140952579356138749027907917260026523665746428553600398414794287737199855925872145011080047072946748894606562018918793230815756521053331850985120114816895339043788613543996117159118527314318732725463077701510719390461247907788810078996122424011099561410017323135441073662577013124673136797994044041223692792052026684105035703278083904475429965177807977022606162301771015151886753705564121766906165044671158466924398877243456888476732910912416267996486115294484885309758271997559559547089549538780119731294081769225355627056408995956080080556518956989932505043422237200410722798291708447550278281401018936102127840318696006212252007497121660868283285626577883417058919476154595583390858584330328073345616678512177982671737598437001962858113896963213083044944656208074237184597018819968249255523214432996367926085032864383873268915566839296368058308948593576286754771619276858093261500337248661608687168832330771950373942468181370012374347414397891119116273319304122926555591037495241163824553314737226731211547706704781355288976955888919591135050392627961032693205068699866446750705621000075790265591282952425131440089272286648025234629059418978009013204637066565689082110189455800890963307840430325363030122626006977670370284376410466928149740646942248213125427211267269201424407398508376125279579456289618742197806598801449336509598275175405477039315667098633103312337052966033029381812142699142757742865629180907099012854029157014319739117944778393600780126647956818566296495596570621001043474283165707974828222987829644089318863175862444932158468742060977482831614876478625823628515846789716351073031414327642016426247813135644285710844039723722266372219769549643590519597156934350482211441469691109730525485298044288176198393284665126055997847391169617422586238750921904204929816985141682388129587048285600582255259443558361641773299516882213590007333594842101055977697730577908761223392143391210386508021280021023800130204975951712975316925425409039916263536057520833575343332197328444694479584883660987796273262064152687822847694789790097902224423966284612485230424850021999942290926186543616568488820133028552873566566311013397489315772851434332254250241601460598348061017676585329326876805711434217278098185629878891420406397940344548072814824473689410976927704323189908133341137626292568145684771292196892981227320967597854243523497506296219189909156315447942802168491379031383203876142517422381858571143514258250021624552130296500482550033017950995369918742646608652748904553946330264229478943182821863948383445172109865243726949712638585956599906273897649531936438010678851565632303816309354175804236274420868528499732278938548782269391412711535267063401920688751930383267810480487837994559758844883170404765734234566558299038893827959711360426319796683610035828008170067774795113688321226341374954911606170131262304569892843022230850496807971441424853203376115620774947229226946208773707976781384947467701461201562893626279529705908541045854227785708628550910325756531731428552789420159571203709191446765801225548867316800198053830288335558005274274975097636286601194210850307798783883545606427563558993056360221993657884322220999944901110536460814121019589983465642982458104806204956540507043103322935251835826463210396125901655807695874064987358926009491613598396829073707517329909454807603781168119566537641948861952799178904635079185501587118770111412175783784237477605909346112686447280426095771736270605136277310058437124921931647563765526049494327397280891768874650764068389078456834946015264984951044388724676664797466314484120301769238429017672311598983422649735951340747660923708796718528456153956637619374933923816505539071726450387140827093670396529124816886390657239188997989434818922915694998950098268564246571871820587418337086792626896366916500965012160088736383350612862430622310891210166281516500680395497727960333845857219184318955474864567346022992308926879837797094396341375786560917910554382020067858643991449475970997147428071053185262138455760470665049918640175337546051776107798794681786692403596161229137827754269366055167657276360392476326983206488289088755869302776138793695831700962760309072433885660965744341824997351766539252270531742807996064224704759690395687171146040764112659412696935651187811206513410271215175126322986099424380895939091979426640786662459608748356999231772622225328294381765755265971991203495218896528603801748510251214729814419842082194023004391582471252643172093769409458443807467940288795541426014504844126544548177893128403382780008908593926465704542654723222045024798871465020710676124070766475159074938292807461978480888189338335235439511123859946719805736660767535041993485378235104677333403996757404912290599413672100674567956232982645038465556278861158130437811554940180903809008314198723745977029507605980838530877337837102647331593099909103913658639172883462562882917580197147561609479584435937643006905197540702265282086294355380859815711880408623540124393371571727187635639184830433434843458932014009956657236119492638844158276223758376629817494964716184098346421297205079541228594829939643061295229147630353839147775623757228979715665984767211256873007197779105974223101363274010113908489007129633279372743653466642137075998853630915493103042618377119916205819655043038516231417291343842662768208067743963034751184356557737324367034291438974084366630249933734646274216695334139218040533820509900600646432294914217994538885968134655377815925360348336731301954603993590331159817585658388329940153453577778086553322590536285424807908748939209353324101162583362662988337545465591255573328096748263983332064355800633814574958342639029542144266002137850769028264952341060420123174012183897281798453054083428662637530650272520873319997089562588332970413512828966161162698731098127791197585291604248689968348863899041697752554230002423153170955216716626314134048529856858634892970422329498047709936626475883390805221241294513671218413343985263860150375343301337940425663770560264982204238932785613000091477908171335305979927163298651840651759566973816133929678664710928709836938633641390231109686717492889276898901785755881059644166770702582030429867486039010377828963889312087729351682115268137210463732286084973578616583317442931919312976264215803361190750311986971162742496464730405782093233729484263920317329536501946621457910402131727364379144816045381695001300864394883806862217774001530961937543709083159971515469059645158212863904200765145462760757404441546139541929912623177743474296007574464379369575706875120248530959468425279570939073602465642438970976560583158373316570731013244678827656894870607870517003021001497498380263390096561404718584449986128296409417472930222091391778456521951389374694169630464548547516246251093979071238527623732639906300497004037919706928339382872370399084092751348952311639029662474486828566457068049214208312592216631315548893251739345156813871437776645574622576566385022619976135439215133930759412130827363646373992870915785017157233214880468465977325530631642340860493931435326685924713076390938668578836222966226818364631361245279497100905872948050851605931946417700001641528942911486756164669494179628225627423788578892536071230439433382830420653513133137230310047220701622903550740101535546410046720136679208170178576369721509375764443635576762167736083132474783058145587147170447258339975439181593201753066392415683632256501804700803831016895593031655792342416315318967543732355147101089977958769380858549998957121402208510848547843348635024774546524226662665160219386699178029175270852048048070987639871917809619731119413529676716764934889392837017116873100885079520191409382390993917629644440576016609893605086788142251820597236425757870623490280381377792488828818716305846355470152334032108799412415124655845376011468556285954022979959997907516549511054867531553997346144828292186123029825801546896838838029060251877082886421803961639471527394372891251962110778088521875950221668040001119296415112276924182809379999811042907197024650153748664255418256587141811595881178190731297166388936353031149096417884181357468672261511465678975767287117282003291204967901390653032289968448121148124157692426700348613440272136797702350859478844071485950109097937968067750801663131507346244626361820424025553528300118812903371149500723241394735913485847982610872480175950872014008385491027312950780758867594750164302402835855733507518053771805229480358745472259119323923085891526056863565646600091947819298935900937331266175746965243637944615009493551839488263732339616081431594057689442158217440213802204139511772104038789162013167217114161942318904572880723782158667494197211018446219791442154101833287077625165893847480351685253029302611592034728247442130844951624676330777097687706654815497437216339054025031439141269086500167208101324987197317049928324582011407023713485403188236781709483922635020036549754011579239646023124913327414856258907150047702363950778792684838421725462989484429019418456126645943832205390248352396373591442792981407714710228773838629651055996033176222774268020013420812604170594711090077524096034022709126886155742221605303119996353685299650753642237931464052709874627806543659564754116972653168392545645160745636169255887852860389415403850533630270025563905574248826196466574615213835243923522944951904380914247008980163335711113338500293178491079490183848154632111981588759060251545835341215309653109624615293466316523415117566933758125344512427769738971567537337457378666989848679672400190688813720696910266933248028914272892434093857292172906371252853398678738927044061263076805029761814592849926008882119899488954769377908122082165036910099754370526080779286352639696444859428466890977913035853373290172953331502261506070907579019942885386710727581056729313463678944505115428078828411200615447971340582526848083249842294916992046892816995111827055823583775081360821833227823689267104572904503203847593075984508615349389763060407154702195192089372085540154894361496844458317225243138809145488982443755156586837099340865751476850922390019842081091429718912420055080351858976312518779933845920719766122486654974247072354266761155844995790555518294039257736919965910658764113001044340318854655139233490079631964188319882060306725101184726869410749604970766561029790129027443511873210012431192726076831891833529987611439029459233169813067007324432008986197629000246944685299698953495117427305369558912956434298683409860262104082105781886904707971091342648245302962829016903494938057286812323678291730027027198580951619637298968625092767594412849317398010157462109619643522774864180874928163987257543956068550326347039900368666358694844399673131263093460911591114510195673212084698839023833666017460698251813190778044107596559867494909211941377663969496034749448269107809631145531171596605594591757829554325690326950437343760290604508035722551098368656666419268658213884980960611289579514807553346997635591948972209549616252911724595236548845238773327570905370873006455642438007118015845557820733456699705277014858694631263791052537331376440915959132914126559592269181759829833735971556002722439569619022237067474034476075162007324412696130536893415782111095130316106740399695027666825811188609409134222680145851110141412915955059413476086658574775511114054157585425462934796705050864384822007963396049486289448979974679624077823459127105463996056216680846288959153585990318566851858095673925998460463804576204302712538024899643359462995134014883608608827169159860576446425968599002420895308290230389572652543759267976469203388982109435474971862289592153880488104035222392947923950725787854864794892013047784599185620304636817278867253185800723565912207298605663826884852471641502954092572576823909735345161119529910517618519125063573270714064449165380972564254002132245766218670504883332516089133453931603537686421812868180864351627177283858241001884167981544692996511813839728716220657511840803567707955056913069002269386959278345801693325878443083688610916616252166773064309837373838829396274887369909054485890619304212895060006462424866547733363712768484699541243255404507810957933034349873892734718211425005225914679947346323383257918077557178218857128101383007149589257391777277511719117386980482734850756467827342346812145908186183658807576148109467431649501109314304552910860828950627202624608344487777775319921396246587508082693816625598494153119848510689951941796373663027184785578675423527790432066169078274227731895718879619002217737163451719689103638978363691167410306341307590212426013830631566193765345295341052628492411772704829780309029469381798571630207501948802014101426909214405878366832706985200844856459574318969410559129957650063694799522372522964593942449776404835788545664493965393632694999530780429383043933823618211961202408575383271191894781077271741884095280106112307897800044285063815524119770356463881740182724952383095067735816572213181096665702487907423726172185903714516931841962899986406573446845144272182273488037261889479773059957519548112526774634881297775525851108949236460511728368400170295921338787648245722336204768178542080218550217122083256175310324632324337766383573478395993141804825664067514716674943642758686984396018009513109256683214697791332277742277894434981471962497079110381861941472148273456199250868134889005943976339868510971524383484050686259673397001664929662934590129741209275717515208655128290101142006226672595302270016502429818646963408756444453734558967913693011981158293482988247461126091120679216298415064182786974690979614849023528132155084858570624092122469138719689275405885535399118736232668124823454966078872299595234999499200661519514381435426647777613919153904168127816177711061540056641846676767744623478023468109500707477796209124462733972374014089154022004830467763506556522052092185761871799482428252537038246798205188322739393450266428729759639088448553059830281173425906705903121220934188931435580356456949070235885409217281849708638203201820048877252267571422844604718746427779705681553134316937048677177807321888339606463985550746372592526619105826121238869990447822685233394143744747607689363338585439828763391161138975620879470964025046759170869204182343040852625762399677922579015148870802063642335714553383755090336765422814350875161483595740420765338789575981853671227120618245209048287891371997241589977054979986351974731902299706468850152062346152080477427506944864697161620587433515918531934941136707682363092047169917737370254600700258525961351019675688506131346257694110179554795674995691182519384301320136842273055170709262723089104685502200463423278550556510957936813503782125108313804653089756008874302415545481001375918983425093590820836439286540012124324566494787629687400463068242061925758316963160037488506848445693073935143771298516919547431883806058433758045926180422257745127733955793460894734069791670872842996310446576862862540252567727431303888909056116246133425952553133487435624499893245017539741130322374127659870416429381683791628139316368725582668256388099633195737455279589705014966583793172470110071491887750300978544455752769082240570898121277203351312992809830237953144334653743833682590509346834532884178846590430611050737438498276837249454865801390252097116203491130890659725344937315020087288722580554121315204183285310657777236346689551548762037760063283434663154277164043697194348206250311022276980498736265618206181735292758364910436953300410391170581041067628950727248939700045077238644830947030760658687652737283595534302087364756782407332556260495637437049909941440841522619227558625965501118386100737222004544107114358577297843634030567838742457133758181108615035994709825831690387548433654161579574872994277389902017896339839514033596557302339515644078038591706247118446625079915086271650724038212977721676057691536673669471439702338176954233559315237616723560623808768893922596562987596587807763750497221527471477362988753523878004758773054321913073418013155054028622913900007521412155676753861958752187197495321994622183743968226979091733185139711716143421927568632799991686453285447812306496860000611125462754687782767684396189163413368285601606719488662634920462999935733185491972233849782205877936483565619692850316661948171700897481860192404090049801115859061087516187381108194063860070638702024717048388627899897881319701109657074799370620189380031334631848032644435046966752033948701208714284633388051689457406844952926874009068150690425471397495780462446981702460691607808386963924711054789163653659701156874185501801721399842384273712337682641747744968833194700194913091658026592952923068334460126720818671648388627290499213929023801447668519966021939009554120176342926188943765849074137985118400875209769353978622079273619365707717997112954862767885190032727733618943225742026971385483398153670691044949537547317963521625350821765751611537907258583620796222794150982841505855507675415703884363258451335628218844316702373175048813722481927534764393289357673879561673313120939593117839052749547521200177372800162856210579325560542382171533364157731140774630649380766159649403203216339523951671970302331615076048566359481810571323395750075601814706525478658179455400973142938355437459114032725604591944123177720257736913017441898778534540955902225655776998032371260423585658913601828073300892640740530134391281374762761994733771137833458984579528072816955951640058168252427053019670866479091362498690346161544147255875049846716745182401679486181032308440177709314972359248893254177648275004545875419660439050203358904534597731737643650330694235678589808600129966596046601169952497558632941295026266691918964477944491619339490164301564350735130898841179122300914760786940003213533360600450380974160355805749389843411181383202966232791783341445194347786162254775119871824734616406756226451036963336878934058173453889047252542013252827463292735174890326635171282209705151129228399312781109102960987275627686790132788278445226902938992784338178052063839963166259151004657677376793193116275552483882631779124003192041895738800100786323440986822582921212356072325786317168585704817940789205942391308143571410947269996809733473282189633190710948396391787057483144791839818723496401645819101804329259221743710688554816263521511093831540936789518299267279095698449646607789538616028881491702511818560225578323182096276988031784581914725665276829263929409989942340605502448970758845115845517272252990647985889101437863431621786462587035531000824917791435786123157911627715654776202020642375865918136348435014711047661123963440618740513352734214493595434149495347290958153441660154313964315667857251258519402803766053481223141218538977935053241787491160852494652781287034089434271223566718231536908072865861140581911382632977197529887053500491646192807483532942247761738661758490532740446203806442619994270133952167359352307846706306860148503410113770567517038430608347996436162823241186573647895840525764622897829610554713721811634413459838007211326449257172176809766362161637385923985174238372190604199467991471956267194671053238316577280484472522393987895609512268668745124840375371239620733236874866375424069881933539152312037044879839925806669195685458838600664167944045012652049095628840127558729377441563211723083823416722694848564127971550219683843545406694023286005841593485238929294901096429416021955710547578732956809871829711050057554592992259085165733364553794088754356184547835421414200179829431516406506137140835363874060057623746981796439270247087668257782731143778569317792065068475726797051787738991944594388111454785429214731057382144474511059387262819950959788995353671691844385266343360524685087498012238058892387226213641353631975978618743461266847432007283976943654885657221570695778647827392969457786793221715306364196807665095554919585158419831762516668005873811524052253541657607476714802476220631245428394035010645196899423951338313204616411179874158352434831746308801246298362687405808912007321903161577557816396799336925910452628322640744900246060491037900068715519563888884922413787938524444348775043503738724826870254892238796579272988414715920572062644075202980945709982379289806342487163067486541644250368728113249308772348682655828458324827904744242884012274868989712404873949086279638806314847352701541720194270285669303315733094718300129750880662231625955638639475032564695791632905694851158870019202654639493576796551005234104412691870979877376251978577980221579191758017144870020663587981546729552246645018714853495008056442729839692515167311444927997299388512815245684850537080254800212519571332709491341859721358808088159930388466810634397496859909958921770172796179874303857134315935171524188642665399149654504325959862707354886060354690776363945888884481663800102014363995621852246791074187292918389143954738751465469494040731927698841219614712326381578113439978055940388749991492678212222718225388989564406200836665680839657375365109175619180746079831717606592777637582757529029198454357001766509727668317764486327630496787424613546168263967035104464212312641799288759544450143916541020628068387993510123835527774424356374030799499238995703126406366493900141123518628119964304244776375879342213097269722050409145916338057902629767223277496958358111580349671877980067299337773272633063289752924223880663086876189448781825403326093167347264859329137106405881257809777748387723994769468796853613894089297969664406954862426375170868057393273555856603396082433502270877304327659996624540598881512867568866279313445743156766022532235380312188232989815814535116488405873250678481930853229031399961222546491380240088214691571723435006913607188169807870606912422562378675666858163330571132329789897299118911871426111477706569141891362451760740423523334807399786457810905595629900479793019781857097510632322900383564091345801079751212466169486083495067352613744905334882677685046588145042958556415186787263341712056300260002003483438796190584944429796580766656622381367364188608455295988311485793147549861724401183198055838700382532310819631025328681241485024732949967485744465419358308700448497758701883635235488305416668278022902091303951715426446229390951556823698663687865062237910024092406306323397051162838669180488741294218029073702456733165858402618089162435145467727470841701388205003981125383153083261772720691259312968779793041643841371041276296869108784800716989748392656849488713667612265188319821538827229530886052662664699168216502213449386342781503776923275012166566583710331197123240469079952008511662440543153789610090910658001350363126283672983077466170289749053118427289552842501285511152572017444579024870775752596539957067259389328174768861502803327525895352067316604496130958670545530021427912328421990608977568150578715228464743478987431406037820785646204170438255317575488489187804213561836420822376002552733753274146544607967288716588974543654725604503757019272369819957222955358932117751248972625624636432532002556130010266074164544849246595922890070810420261899428167512194132999627066701327240187806303414414797388346212203363710269479406470968712092773438147888859263627542299059812891871767995633088021643301229787578256013683341388543089977004173906838163262582888988777824518281129161071122622031603267227623276085572333695662369133035483126371940363091694899303533794571681326922534919985684770105506471598521420601533780972289464974560764410974321993608583461717801187073141256036918777478970217533282164514735670172361115715478224441566691776748265240985546070671650785147876008982648547495817021334377877151943527950025568783174699554661689277636730211996318002055224509070634100994317289118192003735305210879730747018584606309969570082135992805602864455958694379173018174675128568068341671854965960102301433421399904581780468548941293964569158552497863381840716611335859040322012838143805377007394419556516319640098500714347695525681394960621141474862275761092674489160252344606393533072931313523962829074052691946216480405939575145529922086325680508928621485669147413279080561404102189195649439811590805340123905510357899953333214027106372388910141822903055167696256636967165315545080024843447241899149790497675680870037932947513574996207090589666024252653410184677838850125343130127611199203592579981010228460878772051806548360315025684481264083533467316386366984003160660990082751508830661594359978303770663496130274936220740446539794834576540424463355135100832115620085903379301803343292451261846099442309726419314699233580622289120847327008292046810055618603936805360940932642022890198591106340390360831610437208860106269080410284219196664152852916563463225898839325167531409177620799945060283201378983611401422173675371505722074635340659696838483041711333275303358946297903490913355028665561396894348781017014669102595689294753589619583429915415985924262364973117638444016733857097753420679143046051931141005565226388232305211366007859616809183777157495251096179547478863763712479203346676934392342156797008911781705914846233117549310734976294778141834106518976639566622576815692793366232139716322030214886299680263271649662369604018423253956177433314933450893462942880539513403740415666172228741477799741900625230468716509610976782023231626785893087726803166147236152371194537122625073594313074571364485361128105113347605742833460414860232210509121925141056831585807001478237259376392153091704232056915684181504829175271327249864213292486671005326572603690249066087548787396769850367245626938418908328200095512605012941371022534937636173704176219873546709872380129943882078596443537996178809410893660210299191949670452620216692622656860216462912112244812478364294936101718362753549228055504099965435653038765836968994419986434112996693087784472234672573463115824550906383693479539686310539983828825647642966327782980259151095889213737467513849063544065323777330917966854776815687614099242654536175067737499984968391925440742534539470921778385829653777973437735618515173002362755499850487308583989783462406703253722611426361076563639076372342512214705567863419535923218883399942607818702039723663819117101901986283110968140662945192257919431721434844694766894801221600454145656463038718750593927747489123667435918360773090334793698870409911877088116138023722644047729118431154559398463983901303535517699327844467991098379612799255324092076177367830254176990253688446233887079719082889806275021636697606389045561997877605878227135081325495919735603748570431562839442643921690303410719667419486736606249518746885589296372820232423238227811650213769336440419644248540122181015090656913052358787714166927644256962084940440173555301124951452614029212743921318195017857555167239964116458525969267530124546875907845659874561906054116338248762471656376341064089613377400954637784877684660237417956209319103825402935684403103653925504864654128486557456301594842550014565750304328131272341804664081311065835633987384102577565508561681467301953935079182414811772338917721475904022799181180436550076939713331169461485287037533115455928890098143082782014637455314950042285568448876641397103555794427820873935921200625228997442625690239893919923105673708328870192087618705356602661413415686660588292061258344279750072325653125039664503791947360233755665300084131037196876373337449324362569611713610437509586401833736977928714843301113105668421224372186420661444066214531021212978625065917213839119984293159927480552763336967684858788903731896463351125184545819481958830873788669194002943131925580320416281324869073735439482412578716988259717420643695781877001337979749661334173795520843948477694350854029508635491553704072262977412070169581757347649935712817998028018347490102430464713798067110644662018478425297827334218159022329133908673854644393061422285032622893888519737881792551023611710887459750188031991114531180633457889746520317197011719513594364078924721429785497311214250963833696699013860674634001125628651378617875683884406723235229409660235483100176471214656069511022296135693510840535956862220743462349269233449028099635520256097005099081323312758224180008233654111669514611460356838293686326514837080192607357026948118563620260960349101282351169306661064656480563376489265043033377299085525946995085876905058893690391654438910697156105023877458554512300898294302861242277420331798343074612801273972051940849437582733857000879925973726959905399970704430655139848475380724323975350840991870046513934482981841248233192935720864681759525628686417378714282619621996375589915937324261843739222955790755806708496498767217852538348811291573279724901321010021104253534941760379349842095086926576272912045107640230993322032398054914338122434022900750150645811986694940977421149976534636508922312992780457296845044730934102744864344218986069595645085609654451282041009489903717372724480242469848083437957284871022313104022339383239053422095447844450048638503274515545199690852698054892809694217275701909494580938702103581448345325359648957342879996512797245361958987489821842751160022293817469185322748969353903660335894029594646429584284141335671071827649652752900278837216148633090148566071983237314981514858317025413966756950933671399622066552550029802801416583854992099077495720644192954663532445690022763023465201766215429208714989112893798383968689774903536737309737469029820066669272280258043485658809642235730213462585128562651436023976320702326838198274810878413695512088564836360081152756990228365824542002052470707739698609286597330730243089977557465949938457640448906205928189452871516339121972519639367055411378200894975690069437266867861554340464491190226846104937115985845019703228924713934010334060427309383850532231992833979612897407016387968594943784508190054587728821184009975703669118118995218171795270635291194469722626536614418860075339611946738688924339520274388784209700484843782855706701777394040890197162482226108747821152641458479143013743749915607556801112048451937417652773326243478070513650964523732214465454834594559416150879409928215533782101611856854231004532484286842835791948258961047855633405405776517723251743820086344827333269062331888335819366644071344789750083433785316658496001605049713974538114631572997339393877593441168155213472672686841457124791364787126009603736288337943158610627213461649043240553660195626192344127895989297390556495256848693034017722328117103141472253969766490639991246496948587732244163588408907280478452479903076261126564326463891344368252138498218324729074239173360450190723490981375652451894955599111552978408201181722943924053977187651260755328326339653875555280564805688155277228388642519501502402583968225232761090626849439830637991109137410251041221932821672241168732177074517312149731446179272979997335178809846011279304938262471188602814904801679618419531478227419309918013187851872143452351812149183676266145636557301586533466228192631753671648541629002533360560705073188813123704409504751499771402264564184247538399043813951525644520341728717140858200749072842761924332641875283360772073661841567331098262851766113271668615833433870082066975143652691978323237980789902633119464202696280667171552242719585484988877565302921240017032115890780195004212693817656233179743984113245730361699508916323436363185519755294784334743728693826752330965488930708304949474985349876734274966740845681651577185237035054427202473025402874650863909648701882589736261064200203748334711359781165090981273238368690959620419696182126915497221127428274362093307372276926378321497635157620806331069354855035432797059666354133308348976280648074735946695857791199058621232020777884637038245686216196270124703176162809095015286967998158339973094891235822873093147682552321487362341098753329990080006722206094457898643421745164093028301209713831632645381092290576883728030965502186586377248483161873396487103604035896195519280686374698415032858811703960560545040016415812184786094087968734396182937836265505845289076040889513039966981141747862996920598837876653060649036341855040785115197224634561821808177145282424326974862329950251541512012175634098540971454094255943683651686120573012496941678330541846012117103642774616056299315600881374999467465010403609479879693527870769166305712670569715544857738296472298286028324315366348052253430241191631372721646870362331696735877227151330644364295074708190124699814445410990160811908045260272640855264715685849401564251336362123802154645368132981616906530410792345181495525798827931030694655222155456231239645100858908485174690865787634025927037792743103297600240120472411651076887527545414684382178573239167523483603607120691632457287869015518394497682315096139011157923866176415722117579278483719327913280576895876574564838877263701837223957603568772047138925309744964327505821623797115541442808084370527010816187980682537907933645266601905642230204015991594079863006013839553525056696724060063981506785166139149543610543360494467105849059806871894855362735359900388599735860189071035328379010725701084227576908415225096617600214934528574590879693293164812966746622056306072131078234574696797897617063981768409154186937152850065779506080143359851441931967793880737515614336886465157022147975738905310349827881878745885196742868666418412419826112481408591774081904655489353662971835176414907250591619617231855913433122923105193226368839746540424662031068755677993762896646058626029670781142087295662124512845115083422809735432871274439744076561710499267483799431176176585582276241433930989164523979323572514865646248462072772122103982704021767020144196096827713279930766081330372939890755670309134726228815183185223180377477321971621633901372168724946661063980332402410673658878938221152620899608651728000435314541969737897588600743094733158495823761105155189606003859472372570673941231201109446591373784648044368074075198898423737553812000574596145102750042288434791905529825007469401467738504177437277704282213328796720591579435678697488894105843918294828874115669126628379054960447996010834811096667438375314297048303519825445171267004705657550037233602447130908038182641663028266543573145245148574107103811679497324742693641208915535903775590982328553823237974779628372796690162607397878606306681395402546672600399053064134041385304385887923438543549165230389991187263140588366524725700743705061283493349973056605528045447857264197179574160874821762853514973688752077597798908982070588061902945893238912564512664190556280424849577913851206924306014365097448213507963893328307589143551626335622034357682885833974953642012270556112322003658337460127081703039192590288283208703376783268432766834021355223950583030013314819138409119904758661788099744831505886793934373518242800201075837259055355740685104623304920344631497344583820764464844822475274557723098610268888738901787105678881882402494652632866450815973928526570970051584121287727192418782381727430285768771264192907109050796803609070831916877171473720518926978656098616509185983413734917304343120548548607750367404104749469307297897649990075272225646597646619915839489976372679337265388508698555725768160307170850667440196724639964639581148065458131993036788008305265013856131721916719166769248607218634271867096680998358857523224772629257131960761100601578814019451198729231959067077881185376051919616071536416669555861351493027850639339008191974955206258532835798229308106576052665598076904597692464605718899858764306757259298589222717418065731283264574765544559055136039200513696367804024782585649112705069966579550522628026578281385169459931886658735897605259453513117249364878455333840469943404683323992067794332427786597712221659797621649694738125250862222656088578251783218382858429783743618786140228730442565129367555154301241283675800117506727248507063707875231850889798022881167647511657900205475549615188345043857509928997606475866625707632726819175486162737495193579127429658697564771267608174884685555086122933126639392602168917080281142733781464165739254273328433950493413802062675634099933459891749078451806989019057161242249304939760385977088312405921997406724585693140358347014237246479495663068548712449796025439735663230588641554462484777624217113069945186949222204902929500978021561348104994097742101802974355222424633177683239251842084968384660656351729310012290203161143187096342722672837032196395433508653268035199657540971723413599529297174193878364646662706905429828728960187237455546953074320520647486413062830680140824232423781894310627539293000000760346477400521500123611525211669586165881184937317822086539317036481003510896954632638366351312849912823118546829630481224305677556404460329871765123687942401527404389251671032841652796269802215096958593972862183757674511012062414592255754706306840620575222565858816579462363100358778670117740611100875658428081088231847197026437390409074361238328598791234399199366786738591423406654513622257399420761993927288416687267242717621900530515543089163355193616219000310522271397506637447469021815594792172487976834028020612186871468341259638949714148663779710801474636755157727407206259204017715307170418093017626236170404275465078680721799030531098549547900099846218962476957335750698160534686870217187657239460880819048142365413141659010252062323520299040052242071712503725009638151472547508009193282221733556175320441828888550079830367833330149938330792092797429813036368790351261960050557170452769521039544998496144795034289640990899442952513872447007197271637852595755721162694916442892041389091957701770938331161860838918063221263033298003161335851440185085117597309588039411980594927500415401151255366286425807100775733920582856872809058136321244220637279242803299844579770238382782223207540077563887852778308588371606597441903358321518336477521509740247530877102049106947712588311932822702098384120251878821610709882057264797123522093891761673254351046908707411334726554650117489325580114393972944325418103180280274854563139760009595269910304705635101477848075455154097180348469593375088038050855830537046957452009165550364885640307557116285298494464912643175749458259879203091911753165865691684828352834800494154493527266310503192659697584248484209088886095235768224368730371430417755143460822361400278065194083482222503076124164140826236515345831811658544481220214220607266011061073220503777081850083137240567893260299908199752542336287762714283913779024498164365978769795003419650381788642115132069403169553353467146277046878571223487665168192988368414737030513234363909948766160289741627456420562852644450265072491488085490865967409269038457560411439942186537537276147140179955197251176927046403641909416357289961352316387072660101014874536181944584127907026719002477482129001952802820017773464969418808724872090671749200106001981814470908654121748202998532399298828897570577742562826122193977119092041221898909993829997903928697657711403934093156543473044812353214631404029389423739524384933730423014468022775578090549088734983971537149033001789452805226459059975152630811358038437011926790638710468170857647505593255578782242557520540552146192627610412942202794709687956176623501471074710310035455000742918492637222035591233904690772175988034726987523858380844932270349059189964425074900410862142797460038608826359650936397559500098474343698136578014421245654218012241626651121944540385970457794227671510624935826845186927438189414853760343562856483554631159509775410805483304196018605613496160413878964532763470325128979937958453375905267205258867903370508669675242453781249860943801179756732426580516904236200463582037846986625832507639290406872566295848678836883254703601694084588516447417877993595625408687547538102876815311463451068707670250148899178271370335152319106240863831319497466708615862895050431290129658434086622558906291151385578433669694238648707002786821836926550698160842166960827934772560859533817372796556658081209524396008949371997874554658492687963485413644874342099670013851396686295888415382389845962601617019986963534003277090932538642025519747441580956367962185049011670603203938105864084607471736369728645007129060089486333959401814576746595552733976759237596849529232165427783702808317413085151817860166380205633473140418052563140574799083804694024486461777612836843436055135611323980830715540703589687984119208796750030644584904311238948573886481273533287316883297402749926410973806590696550418895927269264469607098493894252335898704832744798849628204208413730105568931513262452845200188463557202716919830543230052281178161598532791955494439821101302648852901857581087000767644694546921398501967425068276169466866371086648552833551442159976791274835431046783665483066574526442953928266251574369636355605771621726181552427269927624603813484665157570086095501819541878499818430114059476707328100051440511785892779169036389327763112401015253295444812086961089514651919140634871775335472379880031487798115222138609870757041731668048094207804569982095880681042262149832595756198046360033906787635439508658654991089594682810006400691091939877410776926333823473649117387639018525648729029786061888390002202695017918639933310407134108285109575707049565339934110517372714966672179164168989481339348725890146668789516967747247339402517167334140202509135941794742175721074001932591315236125245410085884078524030890092248220843637624688435823089015550995418743099483753153936114616142392437601475502874591795344566549180897235513061190841541611725752611145741029781901714176747204356960287807316268466096796417055037357579729923298984175986334826635184963538281464694097036193491680428749864039544540619109846803682474760181469669076529480556479637303070086547292630644347793216981162441740705875892635936598972881827749923760149687904453691204579922891402593744133139155689434940464399229985502565657532196777602037805766004147464092192418254965131492290682440591754462652961031566794968475318929165108258206181655649260797118707284052846929114148341448067064118907018249607122476946246231407887439506270487801058841388930440610764920292281746139856776124256459891529714299424401293478514571477549943052562102551305127711165055030626923666612312452462398384130717396095065369208840499346910316548187303585474772792927922576223637060063599355238195641095184786941239816702691712060962365046071991608882581731803576482408091657806346195137668058323253478709688804943496201188479985221228926279486909212982610037882133187601900548237677302550942519408282598266921888977621689681595521077513019024753002553555753696440579457632085083369161697841775501821451972842939819092512403778335726220626074938955124994721600335686314082930756944002325341271799536822363851000435416411482870480878008994680821567235810980237554582828876619463380738458086761084446088670866718071558902524244807716001781076317411394814620162796959764118044769973364223909172756392895106843693889297569833246357639043515577824863241357874904834580569577807217170591156801963034783677503137224293154707526308354494936127166612075197918929603671980584268952050242390776802390973132612636991897501787820494091011556528533913139020623405635336146586463615722293550980252380517400963213884964381876787279338932586084520080133089509406181483303788296004215618072920921303250907241449228901123388980683755084575530491238051764246704688222513162756201918794249794991230315098498308871686875168881254724909696351209348183310083848651863717806078941013337628451446871192546355511091775833612184452936183550167599488235587215047605009788655447951779507048016152233498642633267004911492029053495787985197565258601957613799021444032047056150253817656718558520877676778833042069644220577695802231044807855813065832330723273595538443454215214064823563826496609804757697447988891932740146715279641711497892463846067620412605886968710527515562806919589247918696605769726977183186558336577484464943515892560509302192637609516066390705377572771032263420583464184782026849777104293336468722583081367144313882922701662539000841372599725075428226185192162274227223773732239161759559145848953732105470579241916275994194673894169244637381574053398650299975965483094417801121793955525845554320849914417107489474539569832637916769668222377104605869225852730210906471140066847345326745082979799721864171751323628862628517988623037211308979024410318753604877402792669168500419019168825571554654751858071442460595416665869829252817815950238313327555837327886500376374628161065890699468132196764713162895500131879307186091298282116907003237755855258573567924091948297002619191696469816595861509310441361188866463203663816524057041562127359592496212079025697930816885580071124904113325284663390231081818740428177705398764591804449596128782543799616456306182323432594879476672627262752646266972246666131505282100363781847295523238420712410915902234711712003040552094997792742108084393462375988744059917767095055219177133208485595260965345125313500496829293552584121772479181001892025223923346610913372949492059869134250762856152600695440159550609373814392497780378809503309990088331546320779179973434568834452935732520974931409963838056468016642639540170783380666960595327849443391533937762655724883229312721679886045706228345818967808330017161347534570345577899410822879282937819654767982935651678152412532439679852127929291227681623859119046841155828101545936363966606215382845257523812627926195089837573789473163163400907618374113802499744851078090871439628439460960173429071282164152820374432067449466471809433618081436894742217979408736063655303516318152401022956102350031213277796130761347799187818710273358481061151842778477271143457471004424518998097796969264083863364502243503027209707341847914737182034433655429640859957888394731944258204467034286027208816775829118916561153584637065239013420878853818959852183107499066668846389454919236964786008762781864789162664443577664431446633519031058612619322560489697112875041070538208378362493912000836924390276832507610052827987074875731800229557214024523537369226584225858822493989903885032604451010877924101055471325627918302356589060113822276674038692349352445872181442410499686883451735714121405520360514256865145507514066489148644725352607872529540982218277031511463944277519347187023636128366426676280303853831601949144380351419808823977891520710337158125776497951692813410538727412363597115688908821932823359462549774334078217678002725979268681748195351766671894059598960025360122167431738534543769336544509409326133986065906884953299756604705425619005753167276372529487495565582276286037444799751030816597270165508467810380726830598493655052973584313935097362096438932623663006768282648401708479384666594819759823076236510526824291077799630261213790401864938762038903622060885641224974390767162255248799473185345455765917133090400512714393487512724810678334749439581449954829941040948704566758718638738648871798209834943159988136311828338440157210009035737639300351837103177124499299143708568529467765485919336113695139132153384840988301261900577820972782978800000043086254078622767011728008666362658991523116507287772104065940369822339696942346107879151662338661635688806111991552344891340950654741527925295984423672470952368325256099639052832409139182166782306531487262312903778754335363758814429375951798810859358296275508882504235842325000656899400489198448539869071375309195465870207870107716662307410893395101604700263093154363382683547851532265307910875656103258939702751642775392039527892906138554603441990213859226834620125070944514530537601704305436961209854011474583623268685616283092286430532413868147554775149067278162098674754738583082141890880621067853817604563692628076383961889742725061388091456973221007302675142667222773824209349121414997575776261729813227170120415330637259045011198362534183001061635120972636638297705975114718457718391757286227879691033180775904417059965925563852169327623492400328567724467192057689074992307520009402791375206534370085707121606252569217494731880250033258017013473488777429521920791930495171931960448187178331462780785758408481838730121108375295395603125223880328929531988867812366862349831797897365254176448026778055493002201276800132788485909332403279656570252877798101527485848201254438297213076022004579532520455660061242344079338489753839977461425470606661601350378757477026724444179779424908501576704173441600898554978204933722542728528430798054334895240894934688202584859430488098406341639948790592981365001512979406004007504575629626759382681227353186061691292490340525159503147691881515945016909055301561492061738197314345707877358988258350195490830159515276565990363715407812955224236752398591548457971153453707485014706416441087837833594948413462475074124138752052858122591669329802938106077421696532710208294463689834500620076509398955428379685862156360012753169025620750857783406873514166783052540163139200872082402722831978181958260589610892454812596844932646000008150250008615784762874807798883929515768006922676339793563444244229002113386776182456933835597813786716619752330479500124994777642306569462261623432047481719645433006162223536262116542274853930153863152076442421873369992619037163625681109251310918390667608593858237366887288734235777075866075705023697147698839173458530404853867999452672042426382647826270654911527124269571075569370956587427373410943968966065101645193323964039985686292033880151288039294555796790577001567187037727807618730659338209966400162111044251626759799459728611294835978063259530854376521963058421957938881154893370060201677712167204336282004287080163884230209709476847532611264519033368136354805413862425232441729629393524945929018803547579323357363448009972158412027810426792907483874167965929451245293804164340844141468016942374757194164634504463296695025554396553702128896872608088481428303207179400327386426093387876584074358913507821509937002587713859799240078257858451241402743755756231675474581483229845456163137987559499902546187414132877706825971433099268909148957286009546951126743934224529650911009543800758476208027184695312899311069634253126625794580702333235564456641067971698642734078808521031453384792066459825235957150696629326383412567443298945356379227938328699828128581791086570672810781918534973116642764069728145326001092553916274401344088420246919062809750341308171880422661687743566678362043708979094699528916434046841610807553554854741228277857252251044736312096084766404024042404788460937836049574136837169654925568485248829094510092854322662061094954451152079537688944047591009575733711125960910486259588669832701160958802094846598560958183749987395805305444739909138344944546854163356807362616805042205808230915640766728961748924199470348314321146121236108324887816535921667990994897138496569222890150569146199286189547495084937300387919965159676022556343485896628206657401976904992556612140772401622227207168269758770046319820513314713477842265264951646087226878008207693582474787713410772302418328043289021247483894078056251001478595319886530309567945713461654887180273347601520457765753224365694288926263951195998988110415056774249959442503983877883490341332365117814663635365425263381145266636484003803176872045300739021253741118528962412909603737473643995142189331970664829263826005574330107966502565257853273785956644860885355329823889630179727634647796491747201267636559384446380106677259926693904400482933736265042921548536521954717674230161293190727182467241117218286408521046181615045323815610850912633346988602745099846314161352023901682756707111314349112626199390400645591254271547903088924311328085575741863315521685208506979424847323942858738989925150083012155564366245305679728465144285481307296314300193343231772696174477197510631973419914758569559911834309814649895390715552243664922945991229239811143872831362631957167004861540093745768849729285631639238927597314778354337973916722793517725961135080716090868647224983313134957932410096984364832436721409762197203007064923121624662585193850773667365518995643914335570174221188408178525024902080991530432726443292860562343015850127901409105161553868532658274969369609696451034910048589733410314844407313436224826604952113734415625106077224345170662620243687772209767907292080371259859392445993167297196091260894784730929888231606773655837161702498538243452218101517345116483563297891786697066031153726424503866055078705202337112204831637121806836641519182943815369554111301864332287240875190450840745353758323175910810381302381234204217759355153182540899703112623430056193928918116184427789898692648081127178208880149982774249839667673304495165773656227714661780536616935234257189598183870529396977402068474673087808268301559658946688164243288937230969748723409740071475526750852791487500771673371669232780858985736787522704225966203610391005187228640941345713483995645402462651617506443122889510337898059044694867527439156880499894381401266456276045226240316312015231166990672896483309129640285782913835818890938878040302588058485674462961459356199697678313326232916889885704506048977575015773631478980985663891290686707177698339187250848179141189574568261986921472129882938334700524677087348230300788129592164634488170207649278747530637098536326200279699200378552702884120988855535988975365289102321706448103940199920061080478303632268848850884003727428673886055057851624336339377978032341140125830615666831067446971712440998865736807315157746145853501894317672686044950450406292148593526737332829494718331062245831968349305476685519336706816695049619442235414921071042282517961427611382704287053718553865510205977063202426191738517287960773435228059676402980879157209898799113606926498134348018385347463164342828364091061017569701256012588167215439704912511254602790734059738431578926758528522189560132182878411078490576570533501893647836612730309670574800092051304242942157257384859979507681159815960921013001011296936833122893712695203360939304619876219077540036758349571840696547721175647135016677197528615097439034695798365413770243709574637950226844172467736339289544131660930446450130308941959419478731967430417941708031566694415919751770293609120549134830712983509312268677442612770478121639657410355549302519526398738275466160974145927183378983383742072533074685921717405749583599582807869397879034286853009775726431646351000531539986423251481423558600810275032416727197216841773549437029206535882087614135749322339154228875695055208314180559246003722038092970984749842612804656369228507008913808750601589718491019609728990957812600590971794032266461572669123255822864971370383680109260300719467371882670343114980650789096391356893035056912383842814890381127377705129623113790283984755099049779092600545984740001974426069171495159572415897582985838517111867051514530895824262031379409166525088262198377030476979072892682332366829981295295689592789072850814510311845165636711393968559806635474313712146923987389050261291234544822451087303347141681810659739980104673991933764429637385261946847042943854192416365971678667302833987317201660810440759254478572681362258946529697707509879882294101439749503927178713649109076236786881950065299616999785341250256662380103092455719218284361914395268545970482474617215749979908923091914477512042344587887702741057506968784985150798894908945986884226652796178856476448694389932461870255720802133092099895513654362694908472728903478657017958430632218744136470827203059066243194236365481586927685368281063281280049311380662061845260341378384450903508082372152521282703910381739602588136741324577671956391074442138778593731688821201583061309620864744218192791931787188353433236067192481337887829000379304775549732607424157838823013267034907011888789907188576691786748144831202974663432903591028112744160899241787470662776695092231588714212717951843595574983995900844646224439818047854998121357387476001600842431118444601733170108155768751275471292805957974029697960723190943087120711787469275645747219227045394295978568243193405613634329344582537704959276138460269048343547588225664937951301136136987959778117175038244665321846959177190399536693260999955757893277112860090735394690955730359344128876646855258585289974234691036969944036757130378779874846548888566732636912142194464796837543537870483256024146391384038428106235543526184730173654105711035355984201816548852773057747217770070169039505071379386295363534358987769028602710321875603625760888020142549407050304832079948905768132639924840841375310289012678456100181043361597895562934289731949895777625738555006407045163748473275228763151722349100636963601697706228205058449558668934058568918379846022635928042771181787155895176928765719108852605169425651605073372829917852973975356050263792515086452668158101618587375823827687428271353864803454764125002670151964584627328271924832753928354212420271401156465699759411451141112199070099852587756337218524748974647747116351836821491783175977326303203982778455917123481096997867077597454975950049278643143501778332229657219525247739703752209030407965628443707357996766657517297760839668997599551346910474967192143555611482839453254501106177089055943480663097724232926673362706423665497106368471744799071293934958851826852359094782792723659861682052415113290530032334873074017692223453036801145764005622717618475183093917849479866429237828964332123748210001076634695316372275134905213358334981316858652938026560543795043146164029646043611788964340573335876121161057498147141734600206457039727371017220936359610501035305159116171471751774383088769025441509692045069517921573794864586638105003570288392034748845225742693389981089839163870656154495724658437518026739489157459034052836125462704508471605435817973721392594570001550315624553319269743053120529195114705906016294710691742164912189779972585480484477155287401650352271938919010479567957577599334776059348744503636876257549587934405746697321858546764201461041497423196190641420575433250241138054003061905417030817789343890929363621815514239521780455575888106444308130145209350434508709359010520820918276851460113998099644892520400637028778212521880479449711400698641382383254179030011116829046335029605796909176833261052735760903617839068770974469480807933833397563419469465477994232670245174457490790937251818712515878272073211903989813583392021785520198916444492594068092506463299527044149970782129464369757053337646574077344440754771809001593037012301267386702403229982861816292775986741146740426190711270975625236733785622284180099871148129653355403411136022489508753072454624980595127062137221963898050313043785581775217045046509479274952950907300561242611451243705379201395930174580575984699521026112305640676375269784475849891928270686554909099009915380614970246825416181433412591006699520090894679109766710684461900648723172675448932769669925319040620219240287269218348704200820462863003917268710494557884712368019369368344417692196971451906023539066632920627775548980143843673502981963176773679473218189856708878398765250692378642110476331293919190042890622643617672004747215341767338293560659279432151926421497163435255139191113322083057125529220029334698366443272043401541072027593610210220382241269313065930847443991657475145292170316606011806433653958113444548712680995782945097447178902627580034789402115346780905698668662412621471754266581122726568717076105276657199116952243927316326210554921916830794294859430221532799989639594963880442053401375396887427128084906299963341136522109132410329216307044901759751718592219293151862675179257707168323272184635414342161962304487692434511560461977744214974159931379096228944670491825189793035494168451872298929205338979200748774171328698235964790702071393429339402910045040496215001425719762319575945043165986841969285798377348971577248123704948324497984204794004401469475584507719818752007282958798319364957252134423840363249215471548122685614170686658819298332124834366538265774878760467883759930563726780662330847869631237584539885600442141843910157336896195176572691755906528592505758969310698443331580551103190407670223416051506865313059378493421780844828560908449684860032459739141849477429556144777276048385740475666979017876874291677535513236109567615108032790175591216154814514208099001692251980410157120878422303634864947980132923018591310364199259221938225476927188061628546986610854008951637845359100761752349045610022923311471096162476204936349399521061507781225817374446532635967749627825339529310362616688067139710486101270998163168273899415859470051577935046164925404329667193514190221511299531351251643219581165309683568032121640109810127747979172948893760859376812006216745230639483159181002305260720204503057401230150548943152029558120860985624579654076261536738711746690880342539062275939222142759625292736452267415892213130608590464124742969137944338079228970762123081545607135542908749158943545176529184237734207477431798099134515862782841400663573823824106314196576988605714038646509718079251787320162912442167705871064077755617081139576298732332135968251023532603453145002754621494799735158552073334110911294796576716077642942621666114959911737776880393013490678820377249711075357179414342340093357381190265089080411640955428270575884046535672806187839940904060214465592450795845804492429458911286427635281172949045651625439257396274502984862937239531694410414353986759024966326721857441547963741989642150350723509570638064551522566320844188041029063073853348874068519343394044940749792285653938060974655999793193125799478841002540864985149002588155275443578619896146883240490014098968759798833096462804870157730737631544740868883856191282634499864763355082939266141869125831830315374411607718795421727031891717937921046613405211086370034866092229484167045608753716526174119969888959394855470775889153028856786042252458182313305574499731045085673695970469024955764694462609717270277953385788083289406898386847186202689910370291784410248937489344294664275216543975942338949269426712089554523025083085257996530927706480514389614445250342738657366607068476568017837395818714679563024628839364548483524226214930053763920813515268233052030710141024280655829917560995128784699056283343646160510127323136206030512796311148763473131175683433542234620111207219629126118051049919323549518931506768826035642273188463867994872014118494629507102976827685281454580135826367962535572988960760993090331119301406007405851310151911334024933631302905966629216323571167831971765575915801694100932241860615239187494067595201966057462522345984396031931068543713340638756303243792613879077465403425894122914927559186960261082342167443954037472959166896606508508557753861113242282112349919171140898219015687367210451769199301566737203485952705093336055383499243447590581323382784397756265177569129433973476995876381807964433749978974319487922904066058932887886907690632444179674208793856572963361284291305971283338732478721707658273166550998774945621409865591271461897856020849171240610510329690442905162932133417055459133341603220476792137228326708843142804444990038785931787822207743414432010810621969466742524152613196608558742257909475208851469632753341165212573886782236276286099966531399569247655109671843387793130589619459056350447960979078175500219366112395205256255416543035275312476988078567254345073270704599089769966545928295267612364066276092956776873202570205652384145110259712598375568902927897134986724900316781229626979413312829781388524051511244646647527484915653404502354966745540909693647888320461201495425772555438517594781073959184839609031528784059136775090438430822303057298851591743964177602170370130420164360279247335925511181682231873630580564245832507346208394120051782415790938050456764404176766488941271685683392328754876677161979619299236885357234361794218342177228796605630156352160084308701161972645617030587628785275379570740566172165992497020730678354970471905446615661610679205126697046686542932202418779605076854555824174117481501062009168425900699296121752465136434867828518599957507573662346681890306403545350908246631510411813946102648359361121384327477790723856462274115922376596867499403109735847475603099520966121185237259222254064370920207587102103512172109638127005453482846901516664397671700676655992201703955953688971157571994478102433856730753137575650723348834281870613035991971472823765260164385644612405924837777562297735175436804187067365996786523010606407070354026005342954387013747850951915066519859479719795482867913030848820836799917171210899103949458269716329320415840492450687450297241801232708223499984074248165573075066829380961781251175864487583258951138328707397283516484617364444800297056753358685268915531012666683464370657215033325785594023607177580985123087086683593013164811511206939947078282744689913193735924078363746849851266350133487672781512921830364549016103090464291213350457493876987513764191940183592940063404644206177821547985618618363739953668679335213010113272409340223230844435569276320415813647209128890340554685781876070169769871990946970126102224355489708426536021986938114671130401269575286180961027320073287473145728961532091541832538557205545703037394184268230767256153535409121076800420567444424967279056057952137119012263071008892790522930207690174576305278652436049441377714496498765613781015377188156403124417241929774779612492684018903565319105363781914181323325347798540475291616016440173351464206079297237226527383585618707330499310249732707550620055511326579814639434491529814978421430231467096311958366488900583051637751015063973181876935466406026127102449094389009156371134253000917598382690121906180654284479195422442381673964035585084578995073090110698283869221837492872176241058237706164282532964955756579588497491866741317001815298586254851870777529334583055410377663023400958379985868390954055804260922385281711422936084119506599490933957525226888379299845498048736848520279441389893800759064830659482340085587812026338513047489822458471221725649677150437694828784067486831096689239950325006803473961725389064731042600050786257109802978154269535347249829593814851484319203936279288635315792064930661707303345031255805185893240911657204220614668815061222607371618425906654428699635069020012173858124801499609336451338330545364037782236815053082044591457091673702206078906352795934557747592008075339607123474519700158866895689030905368141818537210852577320209367920066390770546345115877334090867460966414156960157449967187709797750648973704757964802709800376195955476522325048789423746975658448455476861756952272664434181283213371754660725611052591036141683108516359164596579614398720307483067298561658496258073192478103200597463324172531718762391748216134678796100172305876618365548067971533802662427498474101991388282889713713167165368464249851267628893172788957222094460058078874063873567559687824158071663871449399511024861429067161331455175679854087146621747109642141906498011216523744069043744443586683749182329524935026695300037403098301543704508311657678094039701300894469834057483878706675465618121100849930859671949986241763485449823824087530145016855632718139543647516916248884101047830254363683530135441725075632171023079741276180649457742280000792025934289490398772305920429771313028870804293279277435876811061719519559884178360301743846080619682596585353845621390659327220043829822995413736458895791824246349171906538112256057605769959835691171520785753477831081263024260022902593417738783246416321146908676736679832620630940242132222296963445067044012505016297610986178429732146124667079396936394059512030917558983035244393759074018383360775767634658881801533141975187217521261209657460050323416700671164531448036226211195848360204910276321245295135622543005008692142990640369453062235310897604395848957390286763233852933091721096008126773689294774634976811346857367159882551087725077398201039576683245909621234141834236076325003587958874015589477668675329552118363819019867802919931883950144206434376424939848762548598456451423740564582200074531795991390607096154158445036897312596159949738156318560639844972643851880873615592818725784281917420416312452403889711498427318630873645443708364991099246400273068754778912070776613447540397508199079900346099189146697059097272746475486194689777359316952027571638177882660779943850141592597207571187143614240336016666523251124362473598103324657960768469822987311597731215408819543043778951680549399914138944909220479030705157068571808374042006915167417940569450384644139837160595542023373889011616077684768422744648880929497255959321963084739894135991351406384834948433404626187170299639869127422710096235042624362548367330407565192817975160886259054821733336007884337630736911479060646368894014463977418752349212152296440180493708043861320893444680042759107274589740469034101646273936175950766595487156797801357549934598235097983763390831742742415060589405110712397324070729300399500927163680279114291684416297222263866023753688469665594079045441079302685806246777504538624147736046824959093864510636049153097964925257801261805631940455923243624771471419205177364563990411498141495382165784523208254960744962142745582935014867502678806934923899766963141655488371297663147614980858689357680440301050194600394798531593656850623558867270515190129630768016332060306017724659131058825684592598413821938912062981897959131259426211295876605083685183008307573991909771856922803285938094836486431584647819595491392106389112822573708379903961727931450331870025547517856956490433707079325922927254402279521232449066107525778650987619251839112709143021903412156922983275477799252534133621982137275120555500777750689773780263290226605023333844574426607428962824713317659526462713828797948744126814848019381532278229377901088079416119272074354056514497592100642064614726168729663138620927654351344668064228913405224179609369744230301010840663114947177620770811717361184975267874573010077413875990510148557747529663949663466865164240731569607491814253719804317319487857327344846766506829388904680325313631219064910204518081523607206451002835619227593948420596665985973087307959286169851150804369526363085628451695277600050120669219296630808192858549914101978690603698408523922903070417461508513044025320833851895980118795351634374747317542079615355483902325361452319343409015153736669719468065275319348155297939185208339720030210657596436331329836244987660275455914579451640391799493312783001621352077252442442145382547849786369597919272923174614927347643680267744367546779593781569268723686500518290405999139690459500063997092260687404498449995382537392305113694242317111328603699354616144921805501292245395411775064873329791300496345844753291639264560103542172294627563544179328310488485817440161637559857739360029782262003347392900813816898946068045364810532810178158362302389701221191397614784779697224912322246001084098998285117889773217842811078684777871478459822798620890731668057568263459906937486141668114328942378713897731023078904728504358913681112486155977315387831245648959726143585155647693272652745311217661773606052455976179759413480115971092220156154982202764550272725204412995965041138587048618243361349930255401809269402404486628269427485183718878702432958459387202135557879240615290498966518555518106128293595984723316247573800520983282880931708768698337076834612956719393446227585702234416357126204888374765835214179906211158767595676887399262463250357350478324089612662960171639292796779355124132026775424460177944794246727894100833714490596450116430937017430812770243039206470858538715614257588859503090577650873606319268537639071623741316869658957194143032873634736449728267150694371279507133412677327065524762369333510699629729228582059820212897666619482648085450718217901515248242709095119869203848274052801432294556059914697482071530479620422970263626858517800167455204110173570131011943169505438724745890419374060917460570433834486619172942564517469993402896274553251406709163257306561466806708191592073547869327153150527989732170617634008990506268320054635487926841681138519915586118652645616606016889097016485308431641840651849491830464594989062996942676397859271687764618548323510274737915216522079760542465537586258716590324573189377534803818419868819662291304592667431529317102401538096657185201183839215483441539778401036327543822507724740258994099491151771069330094123990692190109807174172803023713741980782734702716311822082230961943594260141940642990594451054649017362654203091448928182370980402034319804524978435257430767781993781578758532657823607811298183664050098850140503620644897180908346755746144534080872594677860623650390199864267063063158040513186573788309095888079506514839062659325134721547791905488431963483499605585636510698083998676203178502683600506562670108053693990622025056103207003728742859648263556006798890125963835349347561820986083405960751022400707532061640588614221171123780575333636063553837257512163168434912531963577021384881130287360313428587143462017518578870642407395002320800073139304063601782568766882207932888414101778465246931698363254030191611508505549390865050462668486686137972334471632003936357672377583436993208357076344388728362125312843231744083503451534092169918841676562931893026584549827946129698425167298895632018604758370925420557863229390656409402979832744629052661601605916138905684972530529240220918118834356294580941266881553217942553834534146054036459119787115669790912589471812766207105672793530913300922096446539905268500553729156140978991827002045459107946600910059385663466201672427424945026388062158903638494251296645271079901917345709526418102673828016634550839870656032928078315564780527886437600662533766788265809835522158167204233938726503899251305401222372398033132890757488690388906527855759819666855939568948665719027110765977501096947853686775861686416679705118866534712921463093267998391772907494497052809957980450521687025081921486510970206393598184638620563310518660948542660850951952987623960820560423415628559632427571963908521788014592581504841016313118006092857876812691759270979082708665856078607413075580761013664565074946435529662140651277386084624415022968034318490729210665818688750981131712294314085554741929171576128511665882674963058726298768950016584928341388696671830678436275065961771311416978310654617977563728101324331536946221905168117402066676994413333878442470541381744675540095838598866185678243670573690929815051806771986594848492721906280548219483910748790138098743077101535041361875662705037896051006395989551156811398450414329184012924368186141930506598410000814615730535511804371110920615292311871533037981360874845286392430199453023681910356803370507920777897065713788357442754228722527266324976626858206144782888148138264003164297119243516056029970277272055650831487924354889046624050858491765010521278849192870771605105851393223640366422337689679239139914625073819622972673999134486451721372278397892053499532901906381961481572996080658356862582222749136490674397560210313224057185892619246680185123192209804177828323543119825094867550545313185779869364870793575134406857021954990769413824921175775524769557938152071728165003884818565098157242689060286968159861573031896842511286899725514705932112605088273271603679160057994601582491192306672367288947599077974043649488716714977851441688228451550100986366211599342108343431798781114599928142049515058934990709703486298641450321136881576723096106213366347549636113033797557987534492835390156172343636623123115674158825229360294020444177703476345244220113626559107035495476976971313160460183628051815728221568970819311103293165966877825149023673256862920357091333786304347676388654050935469582617623687028554281287567885033133197460796627790291112468343405513831726505182420277436402117815915289498281414839388822973861076849186804053701649404247974941836490434055372111886787854917106093371680284975662440516006550661508941075730310902775111646282686174989292002493673513850608407482754922827779933157023822309037080635636825564534805442320173524016858339309824442237782098777495288140083487164089293474856719303000718837532126655444204348318838466964791341378564916185707229728775640687767803738391135981750628017241370681594522885447033966496495353372547396105344365918832662161402292565608230136171154479533832135345792243150103370476970426858357045778993115491388992119783133114516162493274584501886576627882759146502880089478821030150458791967166863568047323755568176252749842041148154530636733756639648133672452927500305956091746264938548950779706375268994900361376572683362730511696762801584071807105970074245333085235050284223192068171476547908347579827468852742235922485153780658482685008377254515202702863763794525027710515178567406598911627157980436740842533632302863066911824427528670120505000996323966076853420073631302017452236091886745042802294084492693757052419512398035595384586778359941054523191400642905616522722833662783685747935089252361590638938729010330950363312838549962736337013794418787879481861256186343683493108064973049795211060098811511055912011914445995794561507571005679774661045094108339219282153798013596561706507206409882796554139071065871934931265584380281800061716938201190161847756075420830244065117457532145627108335425803779782287508851764646169245181811821903840450144944312324699984359551091123851075355987766842858685537188742297353296699442758719646002684607774741786385400574271027717227222984796224630556960605971238960447568371194961641762182344531070503596343551122579643591549411551209347805076239928322139229744784435981508419776692409186359945644490838314394614087886280265973243645622076351214396293355325102705627805883633003093230264816396770032372124446025391380031583374812169554257550571485400441913764054866592003472113486455695588144188909760975630390695803827321345839820964346505826682971151897273040062867221788713488731258339528044549173005756134227199779192035419316119895827530791661313984164237418963301266006122430305849181917666079302425285239967571475522487769000040552393051400929530111490092116836479240332747776656738120640444991901053049572196065807305896754006881027893910783078818022408675837306851782816440033641863035136099407099817960874430987325345186251261998546410817249848228070462779938474675149655334114067496121546282749776816670261577110912769684825034780885574115219906021289923249458536652952704877466143068299053349061513383427181265025210397841349716934052253875080442027715263896524931282078833979455134283657388997629408025765765338222421174872343401702964641406038545132701736016477832096063323959124477129141295486054040196910973951988497241287706088726635744683742685978834240810321356159655440947734158204095180544206494742215258630829527424473471739454959228914911459370736292681251369809858600387491074213956632556386606953759256131964022623591840958900250771207698267000191263600955044244718264508448978482542297194728217349273901080430872314748109137126307969091516905269692686065580797419804123862520150912744360532888979940044734825435899160076107295499187986490422618858954143815452564038806635434986761035289333132963489984362835995823965406093554849306563846293734524670471742347866868975355807668642319434482992035211714163789991915431957298124461832575214888004895277397554577834852009559301489721122708391954761429171656502197500501608621450781224168684655403453542009258473003330351234309636694283719158090545552181364869184441949152593082484012774816597112748170940103602432360302825244920677685396936879499806308659828741622137902710166121932212625639058253204200247773918226972023664729290688734793482682028272215196828522423005519707898220903378219521041564997283852459973731056808216648885005082051127316738332462342031673982622011009766859130089552032162573792387327440657929787649962064322066119651508619213563597294584931850137466275747270631240233843803125001329777551790788598299341911704820253112083930235342814953094024193250254129157623135010580257293850848481398557106260036908331104662952011907459666053687388264498007110663415825600377911644618562772556929292667661629494205626104209631337613329534994576678347650473538502996547514281622827093440349809974278039108116687773988456070747099262438574497963464027199796056305277824100997239496995808850344177816503795668145296798877948549559224193246328281751674455171203869927670972349452066019261284046710913423198674548127651637023595545975512859835523593506683733510734375573448618822292864211141024620023311750842890380713306984667093739315133943208644597323928996324336100919669400810929565350697270548537793671503153203935907465058768914006150833660526786385161015722142767565151374936936840798079869188124007865477604995775769777666732236239813440998999374053608553022258348836486309953722144303540004642745907040344167116926652024323780685909353762392143990942903004337327287772777225462812616677339208893246386779791785854863408794384486231300000608709091388764853568681728906770057371212320905617550785463954164147793874955385266554082595280495273531569868510912939508428215825777282417880192251656615260378233646393973715319498935320022550408501315788103185184729766709006269735768407330828439138180280569665274305572187414634953724647097161361992124797033188392820084051524138034221915603766144277448896720257286140838593985810973869351324210340888099422298930138191547714713801982952379731199684635847370124198900978038396063103901398117165129705452125532412246035872390966605809257261066786400824993301663620662739192501010129771005395615147305955956034878945043153551628800385610508711994970171396757265610945331401884910556029096137070936942847434348264364960715655927475065436038192699663864511533528350080435880479812768783805924189343259258428275349161718359870139046950336390491009330849485774098781287014132461694741093301163973128329526953390577670239562858800410581650282936443538227542754809234882877121476608397723815322077909978414424563326259842568439811678798963758042379315901697600668598858168579144931513820483812035748553960652879347027001915151973572160193610603473928860259121486401320914083383363673059592263073564441809724316394781631553920213168890283611874950056931220100757615554569116167864180084613647779036661132424897984651217153135770656247771305706705473520735629660971439707976477095199258972311004648516096818009572533812670276681936620723284853892267706686295451471770776324207876352145453584141996947616412280643489825840624291393026093507037685765201793279328664009513312344329507549284900647457018934084904737873488530669543943838239925404137445186646286114085809377181068549909136169627264187117746190085470177289846972867446175975792036288316248965671556934191533937507252986409578384303059480495175435152991258541736554975467637532826507266079340613680005320013789202644809357456927600836504493012151688169837999963561442410364634660503882167631900445895209045772195723156569868862435033876587965999826048938891501551548503438027439474925566419692462903930101953513203763204050585229980580759202091242866439239610274377480484720540732578253347030898155810720963867914950161515161544475041352957128132344644891259281715333283437698007150654667724524492613376767900312373209819222000452234846505626037893908012093798131892450283787327599508838141738327760177095067509559546231550636652662414022770374754552262101743029615873602648975564443881190128382501294227300154731787795251612213862492505170850008522258313652700753025046359203088809849475644273555112303914938671806370826502274387490729452334829164377935142376071228166370696351642807614549846621811568544491079093164897081598672497356287443710130355076911185040337529829631820324401417818432110542731903335628711685214326795468739947604393858101744583446259944262451975013503253122623292333041907689943755485699113672870920283611193007416061858342566819953757457698001128035342320067230214389620782656188497397267174403829085066256036548918413339402597083790006642764981198968913603223777361718847252069318252057859833871664306971412208774137181504458956108688328366783419272695455328416009400999429053318291908360886652680199450558374411915523584005014657448365023876258475550043910705478775094576316937133247221285518210165026139973006557085992399162784769398483211395515765787321599240373159733768924806805660845024670694184059797980536671152358434638589465441756875346557666438329464865266313143811909890631042358554283311398557581371272278381159034124494509973173687190082350144653867853567924725684321612342106563097037279499146967330904578378169615349600650999861986572025374106247251992554049073956607947479280005315625978133997454232339771262965900027838434015955117302544019318200923311199087934480177881730511280772318441352102119776452835056022909215224087645903403786430484399200226121566978962472735998265461271416617653476620048697600567567052090033866149861808331087914089268970278749096954428720155101040919670236917598068375997871155128480827052757215227098265960917713210396402388190715795486995277068070824571283542891109752592176712498191904694062446526929827497838154331750901232342722078550270318325544158026562024639523075470988174165828971245496117998502550904502008495767056186644879711031992344068397021436040171628562020352045214455957214381161823896200133602552996888697786822714473754206554413804365196589459246068047835532910348740253913738773697099995995251558365922971904622341325094695644944503833531176102784171039330501864255303284988555464542809320557172849056409508503215533661134833515504369154961600000933613897846260773519936121557408231019065129087524400773518298089651946401527127195937856241595640661744632312827224085025431684661137203650753915791664551115507756775980087952171527502902786909324350427162662654392796977178447997204102065692955433622422473072904050585939998342163560228479731542422760667661436665303963328504133014070848431048519564863777237729417227557918754569520334604741194724786155502469212226761059562707852684252192367489953296051792111668815459382526797370815916620406452877185119987238591421858096808882115659050015842765172642428449412481578505008018969402501220596095291606969078340406887011076691800750922748581928647981175717961171909836097427690239858453829243175662017149769087372508279933970028890003223432186588694900528870715162843030308757305388931920538715450278624072840799733630340864867344882003040266141930090215581587358863802051013153247295789708362189876421282345330674441721915160940065725387270180047978226497643640007379622518767754816737970523411949963398210579873287798558832055643567154312682642965478941202527002132236064739388950926678887664577769551472385923742464878538999193363189495866047213876449168166119304777371280580581782383076147417556436422470447565860398490275175083535381080425811294874464928668318694769231300285379159516431772608600366064994027143680846375146210372451328665201795993191445371323663732792514928679102128370700924385635548582135694112388443896108418626924127345052054134414998526469788631511005187906585512717700921863316328550276449216935647187139395472377407179044891787096383232785544520344218600826147017754669774102829681704289790697074366357286259675650124714995483177100999404059295404182210379485987036061963397479214535902853252672195689427948028394029754210907849434811885675051880140134977396562877998445947887123480988453460641604973381982796249241937883671122751355155268771327531471031703920084090904029959090957152939866362439977426823610345493016430362742562411097473825870758037614292489922085836871789963376943415149089157931253507124801502203630504706677544312208124553358571488891185044142371836433007108689967081611474141619183214277833306190086484008679014139730306113293073019355327786842693205406999023969946067226384418664740130423980258686177477491260769207639514878404305026136396561135641610987706706029488350765097498678536005761169987329186080127899288135127689027667754148958072667913280397149296273511405338566503406033518903013841343175644959248313869362538978904041945637716405262426578681239581878067068137914717037380491252861734198864275189928456693780725955832306734093808840809225363575843175447683193144101453353682334228415396009708027252112868723172620609822689154238353782689548879592084379969259874343655944362777424388617534821484310652001839007995667099198705724210224060265767031324382073784234184704946868333371257237822705158770276810254739357592796058415453310690454964828400882570022118562346175553204005235928385278001751435063664547014164535137412450629186983472349761052366722416495443016203016836769299659466285128899936749612048440870607737982245479710879141846081461274031288837339856091750941546578963197249817752087118842008992749403545509158965592982419933447833516282633098284663087576140496179565603498403372371901820128500463725466761012907264630988602541022660384743404236758054417355222266696757629820236658957214853738657313641769529617525014838260007687659874706047520511312246061873556408113689927466800291839437185216260429401090365137284492242330916325740441538779366866072093226361114710367208289195829336021559999420044274453749113245744330612884909223352727351746695523583180651373089680745242120459613890797650929669063529042457456982109116467634706426223964601907877367741969856236039313562604890303686226674601487271733493413179149410819554041476470537240572075662730741178512894671994983836984719642925486453650592674893156647083132328717565143968556374567927186650532477530200578327940438603921697183470569015994232907349258523813785860051607792621688595377243027182016948797131008396313081394079346404250346639466795403714164985250986548447260138594432884622203726810481177171304912081426690349201278456253192864682158024448192188556397780406055414872115116124473015032649544393313052155931603102320949484361971485945934760871497371233680681857738435243265348128269471318821764244134199204651137374332181429506112222466048128564508029327554979677388454860042901530112495866007327409767361189756417416791822738604614344181792860559458037069750211089005927408024132427691472766536858477408993382120917274007379095574471352150758403648850947604909068201207003713370621120985460749533046157956594969608741382481892931609964157160863947864927094482858509136693624000817493911144159776425485512720635541966743701849665070555246498465018974086130446061308780832899815681053347153703629603551175739866008993763307923686200492522698573084540448921332180696610149146456852379961695222079466948740092674275355550140468339050940447993497041323576787165672982708343715206174708607128913911705260230362409120881778904667792989623978070363455715057460301710698000813500144643625189640694511965152581802046285949067901007729748475054207222547988722733832413744194052057637256180489291180667900879418751513445082770828424068077975765299514231650056380649023317754870988546842521644531615765011914025642688446342128158033466155671756429470201587347771888675710577621383449866968304952445476561045440228237234769233150589604287010776581512356535580884461420369168284779727423228559958964500729896346705113635540475471697512999808360622528494165465086829039590340559035559721993617257412534063415062313064595246718297193315907072788899780729920195385615877515794014608113116004290717060116350616765082518402038263729353146972941719943102507821819468643144079180988863515485256484754993342082062527974202375367688734287248611719105321082969152869282183871586830844930125822139758336680434592854212246555813071790045521562957802926416752388929975010074940001540140560708948862301266613639392798579604261079043669725590900855372372696463617257447844735834552392292344326594036478179497735899808436885578304816191763770333558739470907870352429770751592452009311028697618150627388196710725162492048285259676302454740800031120448657240763492783325504862579441077456303885448801033785032651682630991979576619053657877751606720656580423600545594470942082755264465324259765731015001348912765993440299019253781955131805859819003885992878759466037425510373758128306832936291425348878882282334311518724019755478713909663711592163245421261272602665228568412150086769390052911548815265347447736836212047199800334770822785859958041108114420409169881648941261710554335690045630097128555952868784942088218836534777109362833363487931311312237344903432459866851271682498341526299447223398781318288738016618207600223994376779522017018924587691775013684799918705086354282319529557592258596565126740670161546969031302069853198982401594400869808576715770067904685149900830289532304197318453259663700185299680371223860253814448257423163722836656831389296228499097388384848927120563696289790659575633222320279838787658666793596176796558880266350431471582467087737868899631743467328451532596590015286173866290439533289847931881839927994610957891756151630685312588205893225891253589483293295148216481455789578770411675015633058302932816082022735973784094094678873386277039603983745847566373432128250839675671984707783990498968672735892915830558701625495340312847214690315236882939098715174075517588037645244601236857827443570189037002929965972533687780722499699878589108511368403154956806039578847402422974348201274306950788365714857004051558007057645844646440865562826780113094868493731058829616234856373390376246881996096390557589823548541784237965896437642875925185447583516884870659803625659406565199424032107251361956763145618761770732719811768188100148882925346511538853942095372751355659217787334290566571437665253762496979086453264925318497565487620414872131916465783887242527831857149536305293139570679652577287398950760089218128053574858208935460908553342578964892338805650963612726052041884805477385690089740899274777234548839214778910335258675160507845807191462261131714343892657850815713049629745686337182825036090354549278122888712433694127355956305395615459126334798836005570673845696378225423382751322912278077847874222348145664123283267334964038616295483814353531129276134418184868521599885832381925919105747629381876633329853229829878970847708598682539769082740601754466321627319865707977491030501506659405679526230697115419293407194846750411690805316527319118241109581121221725010128241776307350600406998307197934336766426462338253337269767017640867079386884709999662645696151191832850462845620148021351446677690512100792950545361178121496353153842179965102048713498845480407247472786114290764537220534190396262712840616617781919491159155602592635697628877325181345047245943594296409668153803776650823461047532928225638562512525229825276347767654098142235876026033258732077636709720080778442135472212949789890598129133683289625468773955187807491212677119674136362031955060275621446052754013897908206875751178772062618914693916302864767050057105601100476080280164704324180442481094325450798410649456785040522598036536552986593787338188400622341201238111763557446416512341999789050709912688642994310369600523914295836119508038493130834295807152524626049547237350640037262414663087857759622957049621419540889613445733708656213226940392491648577251312987595049415347192959755144361771874166186675185146533163047596587438508437481874948928560657557133269130230615322816826908323593000937979820580065161682541095370645222546316262160209690564899856403415257479669742753342061825506211746024885208364687742824730332667195210207525452577370863887776951337494024905082906796157130314707414737318447134831531000080017619302073811479706719991672704822375551063786676829379962470313159660135253229237018851043478298664044732572661960981867809540909233363613970899454507309456383065296295647829828119279398152887740438102646489211416008302756743530281302631041538042695454376092652064167414561003755563118209839251697209230069970201438835276924532425138223398364431009832833626141131064193354078146928417169650535095467726865048060497464415801552349707310130510558034175609252724052285017297294936386571062609017491489228674820441253596271385837206822124052078141451954024291427025099216226418520139494440954335043883858407537843038490022884485736492168153128988878280878221232007482795665537136948967889672744017475948720724154286669620314209971947550842545262632675690046910736000204804332046984027078009020477468170318325577540240729249030211619919770727210167957021514025701919162916403004651294802374713918788380141551627957483018560584275503742038226856144990234027845075507082747548286032636227708421734981712422557856828394613609527920933784634775974359434630342663592795840187170844290461450687872891062047949845620904183521597976540348831236750681967885276096163560273299561138230621704912989640611393360474889669051810760067906303010581321798942105622983043668768891233305598245822064062502969824594452580238768957790359424257218336847400995102922907284002851659601441818778471957134866205214727781287386589535191349512972614361200469204191554568143255176146313936961086674581167599296740042753359189980735838290785102786389512238986448040037432299296318503889489234629991103797715905556337705515137790754557633870638191210973288733719734826032418333768363707149389115452251200819437490102864865674519310910893056374990595139196644805777600643811596710919211301126172417923281407892783151263155531017766702456692225115466374308233355307076374916373681067022484376550591616307551382010690696065756825301061079582230947072296110343379247386557863832418790840121463685723307993670824282167737575386115234511927044358488866992996467043949923918708031495472776995256428323834436445453925000320529135811536435409214869133893535120161900502702425866729261770493092065671557709074880760468227669064816345093509681850462080516718319404624184747362244783820333061264297940051729861529846662820679100405599331520141573111446976976365451672375687209162010953819781671883728810754750708796869628474770784611400645642925633818688894687839290935561718945634482085191988702736057399281341621081514542393455968564257390829584663297587821089772515733076898026890603449509168239126072279546669285658651517323195746241893153058882215694735989110452884951747202174512642367410883097813684574090752278809467852519202035294032585321538442733358102359134483949804083145374504771384884833327980717198028133107399795647350089507151079592978094662353266054755115460168350755372001202850621605390895739535288639720084197287696001948733877950809880238138690530017183214986414667966529270749027593640583663514924323548386405214346530618332343914700714387906920804566172293561798586847537400039863747980286007482212134966441723461243602684860460167483245963642827240100231455330056627732548055344756881292885690695367217062683363134829506986062090556483241308149499401784069074177013340565865850999386225841910655133884308656890773277342944531601071923318566856916039021642014949937013848010088146391028310829502163167244921153506355531097447388346382227946926102400291715378528569471343884668269354328492061785546336567357220689290212574612280631151608198400404595060073990314310873043174319151360504503740334833800646720750311895756636162389917772687768848609547650777878527629941884187293727071659930177288003874886654944909372402104989619426256853075455095045824497854536401454325525859966859086395916033380240604433335086133334260883157810308390932359863910387940329349783074205222140995378036832448756385326727879006592201014325770099146798312683603974216826692217337396119395018211946530185555961000998359206378744656930287724886612487222278836904453659217015876113240109139716855332970498618942546431518515296008279282057000824110446959887013897692259619901844440363149554008243205879203697074505397198816650638978642403452072599568928547958378911119515935112521443225719652199296084771776869008756733159282222455371162784352270592082161151047451936751738697763066436134190113862219066507391814519800795075220049007943753259104104283394729674567955437508885439969502576990649158719941900668219751749153510886773651071789505501274391190406339880054403313738489274801825029871530515588393851859534499987884910333797491714463194336514490324689042191204036241709042043110178480325746661398149026762195244703256259905086850374604109673723981876806214341572459384292244581576789981123163010734465424395037216046075758776786784012359171239757207052839742294198886737206202182736181651973968088858986095340758724552148269604173133948734266415311465255013828692735181086900645301613504039016320395663219132442086307180924492316776690207197676937512881285056737893314105090386048176462546553663905606669391912170975152770992628285466249827111783256345510242732227054748047958922082082744006111582710470212636014046078085135839912715432844070226041106342958704676300557217049163005673742947783434881491360137005699317486956489960206462724261754616106099634532184632112436083165217700464893654408670429459411743165422571007211258553872231226374166602367378649110887589162682572760230451555389844830177091397420453139758917771545400421906175689060560355011648862110482445486994134971941934331643429396953601753122217378508377128502004971544456148896198667132287404204386006612711140506060099763319363209448525051147897835909427221350248024497253339145093454554621161407147212956572917240589256568791311262750806754838536568094821103185886390284152738770620124976004805283874817222279986306552921828510049241452566823405658130333849980734319046397831904562174279714793376977137660690184474726858243170660934698428700625026052099627423556194673128798990885363035146063659848874150616556986464255689882636556624354498957378247102125654552054337117184960326980201342599539763404340340184823666172090101773514457677148574736539445597592853592765485013458029997314557998711642117345427681793854038659437997669131667401899356962137241333714742465806263166440252328166476812014249348614777062789321948008369415136004004434037133187400153147914074818928176704356895967424516852734768599410545410266216206772304505991380331789942912243667682392486893436929965134716658522815943439225239592680459952536631874442886868168567691314700478081102192504884210014217614109047539265839899662157362848509261947480935832384195761506708916547752260209704631924986000826555285029059459611278548113225433578176452888309973297928001742748975072622676185062877446997891087797685216934683798793342186827168622902663227590843056317611786708089960687096887288018569164207789621293202391585956124422512958910804743381820289095370063519806837631717231406950043389837837517047382329865415034229988443974445854887273882050735899080424226914825714282222871755403858759525782078583172195737358346642659985037729717111190668687814863633506847356989434443366264035649368380662731672074038693247986192204922662715808539836470287154753309573817058380055938665334603247629297977176894779588415843067472041617701183483858523396224598806699196193750825485233482224672977148376509379532025085059328581434154751014161892345547505803336972562435229182422466608008307798675755459937503370518708771518565281032416959015533473029014352503897953182286099279110454536282749673107447382688745674963167585944029748221721601038092896140276547525467543343195892298184607668740962127485317186718392450111920171974268797431732204901400230821454391111493480052298922667762447562644686451104282938429123044274554624174155866525569753035543269490165766907422618842626309650647208015025343976784257552417745732606057090074757206693101050119130764309930944045233859958797914680153765974910807391402328488180353835389456845854830548682799224510614778900235536918669344498880368970189695054984840129520252985537919312251920195709898652821159667994351974454560120412472315745828391734643346547091272424199371576550524224862519135022487290760208919725711022306053713655100909869150267152987389599907903986089584664521738289821636006053458535683284902907443794217986000092995412252415982857294290730593930708388503088481540657711649165194973955938224432979526846855478241138358656105135360046717649414067740429701525341731927114075115240409780551273547409960763827899349584620332428999146362000336705062433778882361174544730502336134503512673701882489967455225473486482787912330956701043418065858199334120698125551048239732403423323926571440114163302323295058912923505586540058666663570503436375505004769702674510996382297115323074801507103565640782761912839664460653872216077779612088684524509348656974887802509214941633854945342746989659062850524574059718618280864745475307719683861197045898152403504582013683349755213731781363771215083840228305412576570602037738219598118064298119315802789666963413345753569226324659419346239597005407888923963200543652421121730518999687429004124423682579188350501968939575955758072169394865183313157638196007559056929045403724764826265724736139206138171735587818981068282842358178361486111630240607905383523554866220175538737598831845008370962412379132293461466432083842844151488512949162461635643702606246502116947178305562170313518324762620684339956818249256155058896335437015161925484776967598975033331397172788602387177688649790706884530567701703569175612559909025532824786111947615877105748721564934671701715625878172458169002890841955190704655957161075781226024766026294721722645913427340225679698076003418262017893564667250757904595088225575787009487697303741238283676396575772008288346073837597170223976703756304311989263732927948198651691908077488685781243271670420502763963589640785365376504786487957239400470282802640675119060708952013773846129093329040965740471776306767803502642086846638395928090583523606778896449466998916543587497715448741570837374303485584252561908695264202774848242339868113652180885672461359945754417740312952944395665696410773776920711574991711118291515433571308065929951786012926089130925824941439388314065530593920816157122336419145551684181675311714602750925150520048244797299436844232566143398976517822964396331233791761651658460075157903744068370878433604029897919668345773434396067183470680554443747569698082205987006482576923690172805579212683168428570556037560449848568866763290218793174722958120250587441014353830284144795563413363042064536277802991533730489316315489542045263665875319961371161002541963452589119172942190214689421932650031005086420031132851324677826080288224413589792044333191037142978012580913143758619573823461787571088315982424432427608452454803386600310364692634427765363212613838307856094242641967048456657870451560633430609876771044144617440193380614281027803839113777078549497057140996182816600127622536479302179991180557267920358082683383703406583470223958735882123974802607191859667841776381456540794403701825669953452239379611440821030258007245995156155574905689585319631718752572240301009311049890161521203470979042188600299797625188858140407425924485258119234681573329901066889755805369620258407932940304769609747993579954909917033558945823110927433138239985409892517077758260644752416313353162993663705065002268515697231459116989554030550870149831141050843885768863157354148364062793509806280778865941957293752398291006404481337594742560988193470900269587127377042908147088861765525816488107504848345654928049921345323848929446250909317611612184992281196342452179622908574628061128422309365162199833848306954421572938017320099759770623401920292579415796440750995652678398036427893666959513095411920395869076203438974365639679605897015320656419187646089491312060676499332576772725419584560263530468218746246743624819630594883743363950176871016126719167350117749544062781203564630120808376559868800551548590682339282913153150333931027395566596866450040465563950026876690436714781376912441108938022747154248332381989463102068447186790644386913235614518885856531887330336181249282948747053152100861872113678487469600569089094485040546425980363911755028511167528755076121793907394544492165803782753508265950589885610139038619390249551642232003601509637183439827853897105067004544431309742485184931088607811193067442880938954865200752491605912005965532977111917313657834878624702517563159832120613955597203373565320284733788037951087655384729304869692626065094374251928883888677902380667475502496830643927497474942045979471722972104697216193575278668392429500332986213527214856406290714327396509808890633742336837639999817962003505684153089900989204420425026417664143339389265744474705294787803610558978088785963463829125788835297894927718688958871355602755580170887033899942154184719916139037899738662426929484567394535006598481447812523181408789975195458651300973594685270706941645218669884543587764639553524214191896049904718230011763968491468939799549746754392957274446747007824632405279924724752619725585101978679758065071646812359060380056060377049470782630835291268508641149173882899643670172032324318377062796226395692300183901397590301956667698093255598598354911977067435208889170239076626805578050877261124776213628219794392436335863487408608170562361295025066586759091051113694612772029227996347586288266766437879237490467821196633942005708145126507023192189402271965264548290104915091257534928439962719190618638524473932963009028493577828283920720786031661670494929223408525856112422565987697053258216366560230185241096933626775513088198498019320321106471017008468554979512950890732978885242455707496773260143275286146157754463342199810062604986882623250344560644210953755252651204250255270862330164300924757618911265076343306443280200672975474787262564963988004022371459270432211583360985697534105102498276049038855919847003010934812993411769485114367424795299021846037326778296760193971518144933487617600794083532480567301448714111807986696586877660498314882997507738634657329455190527414879049469118993930253492734661615297678160133011670664874647559317037962829440966384941002814178147742605343190217944681550919787795565603835980221651522085044413366098952220394539899423687029932053801071657492895818180485111514560417493883043353517780011602548130295973321766305998697775515314403204333004334922407773542330807456121587122723588210410493887376047758222966268123250961245489875094177473608072798430499676623382232323384766205388716575922437322664252164583282329640403135002405801766654740138152361977308989017914664914713858397351994197467934888808205377981007492815818764843742233710547143620792622621312669863759823775787408573479833419844893282109554356472899159619913312271984151124050883426320022302776173441735349817117019050310473032830228908667266793092907931089173271884168667978474647013062375110504115221699525964755250727340312364337345156677423400640560008094086795317183214437017499230140913602145259725909905665424231369937950616811630883708020108240718038963046153471790693524237214927757813210627709747077070698875323519933294536932031340774066464990900802217573571130633584852997110168211449382488051765106342335703346481606327514473288786581393536535413501130027673172369408823210340289396732037739385105129187618881429930705835245467208059978081375624250153054689124111674018466522318515832684692291246400351853876974589712342176628040157527526181113900362427833115178553881122926588621857755729553804918073501504127983539268803247386019621016129919182258703402342575397450811510569200838403140209527512654444792289303588484793206394528020172552552439052938298033893071770002033370130274588438809122546809787201914781896032154308419200070359227090192142580085258345587828770968963100247750150643906966760027511451576152946934881520077311594937779786624731188190575973962031958240808684329272330019082496475909297792681790301588131938082180347727857031645235575372968481043881359878101259282462725905955220652122350673276412835294196441631514113723008369404224583638876539193301847666031436326795930377927995942257871502823203233544734838287905990435899287818417975982409593280403025344695671343982637527022414697952707166123858436343019826040610995411722994249979430312084258793203732222842895655919594538265503976885171877855823092232151308716258385306498259771962244069051059739988441767828172347630610529024992352958255417184588721844971261730383292981773368020360249089304335433374287626354313830566895728093205944329236231763715520076400285682205925762392614489339998712434260100759255685532138598735039176307526710268540498231011255235168144236222684285225443514304481680028899160359448458038351625394869696051098088854371323025493097485465655451855419946540243394806716391360729300555027804890793306232299410764319546218643209297354042327509932209724338114617351979122187410338455761630150986532399341618914952843778455916232249008315479012539595034994348094043955500172474963631122273101481676539779448012741181390510939356585095991932165317028468504382923065209793852621145567896694660080205835155523524580461208441928314501733208958736990345449785133785433691855289852106172462064521332382724377937137489663181078193018099748905405267651062788755621846109137423361343596686990483362224631792426978172532527561132747964343628504444926199230650951371413293840487823673557953050745549142002012139385095187252891502512974988893595109331703031078243673300149315352451242603153791440013577617601404043981186350321398156407549192755242600135114521640912787406866921399976705290489145704123919597303118107493491309685868448401397641381785540957355451757061996912930580013242553599508310138415305799560214130281497886029150604421164288858471564335123961767967014714168756232185437840818340641214563267664535149310450065335468461915129141015301600783784987210425786407555183795162839229193382540776795697937019387231059636313140794016185560550588536227221929950693855150056334611897087008192857244586735038895836672168915140149386008013478159700408092660555118282997073860741539934996191330010400168312728878658989579933967204136215828314832257491216683978521261748987940647048871613024337814495553697107630020198054230869134569020105037740830795243367367716927282995209466052207125916587247006188281811750612024375825428173523752601538990036438739627804050823820314388825133626500248507771573515490407014389956159306166550370370080053782827429546915854233660378481363113972465831988005822387931914469431940192850226399993369360380311558258540610780282506706249856867213286652526021713426031418197089762622577725890359587930093957631326707679762447546597993429355556594417339397712401431913732782222474260584405434707798744935148358697012990259102986761496070798297389651525857692621670664456985588058186464010261274773246250704968659593362518929281523287807317297741711710371485585004945747996998380756448201072534747664984930240974910691096413743579960558349287456717796168037094276460483373853466127451764599039282999776459201340170317228948786585249393864343247691042346232755200675520131067416538994448581009527169593539559515043493245868508483855440790084079945386257004986429595299163387802211834780009491705650211247867232085829069290571888007677999661508422221286004759651575503505604114275166021014278601729418060487722196061583707394616533831102927425552354816951034924314181617907026847709180798950083536756669082028746963661607587941634914768942278043646482941215446320528173759955484358756376821971989599166864766855834691610270742409057781190026328464941184391789159789480230468849498407596427286392639551941323013781708625662916631076064045723534877247264924428294155599578101461274788767546040187358971472671404807431642041172265244500884198950039275075793546585555777311355955417142039662142065326715146339300664163882107537911352056944756285653626470332095962489651074838612971211137640581244470349057619787248623944889714483070730140012079996504561408542340988728224093236897641623342796791304794945188173443575608171140231663153852881748377596916301257596467713861967249907662501082183876135187800282669256070264182394441318984164875133314723100960757695495273855502266386560384178538451562384801750761942658048235993257030502340571227896379447511667717312026672260537250192114518255713078468386856109350297165752306947838082113453846074490140436148982250802192341676482802402177967796353891589347569128880090013643509245434378021387925617639370899359533469624900846455830437715481837924367964423833329532143797629732082946662829772909550073861166902825031824118053560387234029576348584205534359155447810416165626470219076555869354090977834767258722203110775211184274233866520446551407650735275225020526485022822109648958412747897986670044915551164899895423630953087691592360914239126774667474293654042110685184820911824920969198548807518726173852888390705675837607168746533920194934164092654837188961565587657049999737421222687673080438160906815921698687428702329565981337748245802650967027640890216676178339119204308235998251617051540053522858189872187493308845148147262576958693342032942645105533686592611371412401118993802868150297084447236021486936182080705520729813995510920325996112251760294487825736948175066901178067726740431432096981671120863591208271349202377443816106819246404930379197158172906562839543205316400129624468459133958655851716705861802810054099463593834968626567501697902186287925705820036990408395518520580589875871712600234283633924810105739221838904184614721112063352611076888513994428354978523880114686912579688392405914117526650312734723696238378578403357981381113150861098616136308409032913098091278017377757451959488144630318295892106545729196793817923228591041580123945451737882075807769813015051154303154004920715827645698551958810456779462956005893991379783092934242919456310250436930855574540752478278216371403116773915233518182475309467772729110643172063751759599065748152754290132663863707368737514488400662567332067191617815867737665150843249911652973514027741065587038248341410160342199479955907270809323876385783470790269614875037500869134394598243390518917549685263586390339047212108691525553497178795635882530436583385569553343900676782953520545674864502774943509560739057356906331999933999821901580420589960768444995953034906643051121317753692705043625461493233141761556382967080813615806129732664187714781654008165474659447131751705362607136794325330915791676620642618909113064427934907591397550441513078641324636716698672767488004820908461475986064545619339071295081901815207774515405213529830593014955252743439975128513709424319769356898458810049642458652074961961874207218086456488671703392166494129771635201450610850992215667953159837781735784249351333953703882308872655448920070614552574338602702662636790456866266454724654868694866571481917603608732023745590185736794369253382375379173417648481059863880709874030031689720046687404625932063723075167348540530827041665360047914429034771888885467689338401669224179218558771546555923903155213638894150216939570145015580384500863247745144865577121657102279843806793840858452776415758519396738838434621858773124191657357834047365846571615822666174590391003204527010116516713481725848987634700950060808833758263853419353998678672662672162122081009378296714204729220782531826655529467460583877735009272136099105518695973023632763449269222508241254322039244111782765256424427466324604027793410647979965130107153252258195123943282594319361406324454424324618088914981240014413216225449604487004499408501733925064422070706184142562478592666250577243214579863098059101015832184964365242093500837072916137311069074918219392667697065704177097635918505306323468662836493773501485003243754733175944670267450217751508193855519490560156861890722993479538669348361579063230777819947506437463350820491589014223213833132640737699874023808715123529386681624303017074208368094245270444453772509906019536789035375701789800643639164101737755404361138204309440739793197507867626026645073862739786922253302416357018647390378542660602541523495023385442196512485272162523905301237173457375431060121140171095744971619988173485306197935070239738769309768293332135944997697324708731060878696185905082415995724394882710177291120270531441617560319856850290535856673013139758325645067392899259400761490867796479452310755677587964519780884308153096148084832444812748349188590655857636317778213971229671308761349976633981097343676006973395023431631257170176217737659264439438104611784389707456759041610636203197856965308758707755459929808908866761769860501562938541635559624848571216453869304082366390480416515375468971358186781621580520415726142618093119512849215873704378338829879167508679679870640363107010187681705694016128758015159032004555612732544264067338709372451425216334500496318382607086069257751971867870669713536530248215889469310266474575907443733071186115915916421664984626084075920488833080871536556573895418691700507665374960579085697334191298933119682132549376463964881117371179549590226358743216337125458583349683225794675953115087439453884523530703296642714031527474874366033420925180442317662653579188439650037297033861412712117721134019359053712402683165817260784998822052419139245414517341480494587183513805407295656652280514864553225052669297078359859112044014131122139970973285787403246143713751420921826700106848843060749191040351814257238942624580274473244405474297436186832653424684231221234049346361662216148943221246961509260925913210588844306424595701620473243333250678895059337079355268734867822717637059928523405508708668244402478511064106806044456474319716072261141327131863199241863588131830923509807514644604622325838763761117452566204086155759933724906154743288418431390091598611752741875378338538929452928689000742974054661625200757985608197361868557097964708860173374495862393433009760538294762484935487613078972999420797685310378114281474241951840453579632833199405727971248401637039614041443357363483242190643961307728062946402904202214164683253001127019519577215872292118999201428767643136753431834015590960116221822859363801751790376229161118718555313970084798175145829860596422267382430948746926756014287922287617642117555237500586625082956588929937456478717786692219552037079800485356726675444423726566972827015604367654164468019922474832477505011146944600606644907149144743421765652150709789686513066548678247864029452134542175369095657453690105000686622023984671783376529386206295788589724567795258906438174052286089968879875463312158195807521504975850717924019268552599005414067823540202683639222453055409976219492971897323389111991675523007656277563544253879746337143580627142122661729184527493228832521353406083641557314696402748087180515058745563013320334005529332591706018892904839010816106410797200253553959959764665932559705234110579307901920269960982724283492224602410434544757530141311659125275950202072690188575274860537775971196293131928090778900910216914650234569853106321747846910459630301567016286860350372761877481459564192095140203561227287093890477806491733458708024568080064794881112880932745377500132638054684188310806004998677208750182375560021105219849949379690521289393415561752474067116319501054592637429751672460682009771919969589095469848872615888742164635913364956759340033039127741718997948726814274100778233530621628134646374067257561466750759512595474653258190327634121814406969567675854304661593434766625352218428380523992287680926362442759964174610965122606136695171820998814368417512333982292073355543137348147702430892906020567397944188802606842311160766735006158227851261201699395038859789677176136951744478884954849223033898984925289442408348382554704444734735233674354265089736157851894636869968697055506904360102984321719572185800069732368213120459233347349767302472221668387160437064780574089002288247064729187102991631891112773490175500301050012738806371596791711399252892257301318581615952390408068578727246798685879136940680483017692945556233141522181010316589454484901681543753929540851982562476975469312999141062717337143472579198997178828300222902061041130050192364398060165900006860026457121147600515408259806739358785151311786373156633549595940180020616485022919940200726501035021553008625286874404138094102245575477800296198272057314146627116074933574003515487550604148835536308423655681754508230383876762879506674291162397541909346480004891700724308591565810383568313097466856636205183744049486600917429965346506597619479238136046147475763285450965931461514064002292802319912310219793480315586532224282185408830846202461900815320282987026412188707199096082443317021987417099833227501203135877288005816565417725544679172160256846953865952678693246396013866606333793166756473903689105686457116487136495999446994582067265530337222047918357846038257155491980259013771441334534689523157073147802005910322062799928746179518789611926018364070072582410111505384756139270683221616730791759002509005306449333239872077411834066558131293466079717135556942819052528779584371585789115646872298448440237116557916142563281621027303055420151583473868744623590046616723449901970448474834611338774149858677600821412327274075766651021772509825310209718658391234041350168855055222472400927437371529272977627161624890723391073543235912033073024989867608172786089307233058354003591868537969269195680629629313131708578383322603304839313785540048165835221875285058350062466467074415271973407705754575333065646830838622378345387795752004606339432061304877470429871801733902522860686726732290583963233030600716906344960985589838974471628946627649189933528315107085463172359632302115565382731988258435438191151061760522001602638341151964211073271337145482482989393521670556438161362775629407425161050140546913928083206898221639885618129541939761503552593951343216435039044112541424985699463993002759205828451935448747583867087727825786871843538520795592959429188072690738091333580625329840099123207546320297204318239484894349192434146078585286181077572760705436808440631185402882499910312356547268743818979616173873997900004739176173618930441864517726627198892748476556263659055413676684469924424148053165288373315081597050205695389209560752390493138094442038488275563722044505693668208449541038507182020321407780994034003080137240978594033384966379790078398398450907521729319287539295726345625387183123762258865762325857803007598442615938538693184748541986688432725798213647902197192874207223723974076933738098787083042408290989756311016190799605318421485752750892517748490566314528444990386520181217043643926159286324731081393415594520059963099595647852436132095562394209596359324005772302325297419786041261721258402989305481015393035697645795435735726600778417178474709914641101714440602376609478879430397015090327063453871240704908374021228468263411763909080768403688032032027674683202098159508145102454794092763662734309265131990553481373665585397110067227104566804148165733172381024007950704900725067793000019760581483508249018994925481486213540566621137628964053895885495793193818089108665735708262331530503881745295737446727478913696005390932714023759270784176410705740472327758989499243836125141589456060559895579219676875823959658256004127381567533094748579331237994098127393037417628913899571474076103492196693364001103378933080336716831038307643446068138657970079827236132548464171338168890481693085438952753016915205754389348210879294795254932196812713642235944170207795296314095538632608094775529579291906352383217210146033443821063136125222185574280325630708193119666605378667351196369027256064470868516758052188681432791187254907727602699584167058183693000596313896316909030476425774408175929459070709093627472821290148687141077132451586688559518995008627387811329825952683903169907955099995108367737798443059209426220867333167839486185996483763451740087715203190855480640868168077483337273939336683249644055819005142091025441773814585090351735327437848207773885566281010850680771278176671286149625058460813611362038636586485011711593752833907387122290137177929589273959665803498153536667430241337324096117706556447356258647722231541789186058051286336679734442331408460467215098545982213876513490937499793942106077241802179300179975330142335024486514727876488936378452363759279979678238630593608536533640189239456658043020272492255948675929675969827811498611244571180039636699390039066047795034767171087617285914799525573902064787406814175960471967253201429227151678528001055903864072001364730810238743581997099615877350745257834484581405802503664467893958177850895894170866124817372071881997159510360023894013810983220655604406594618267537007910115191293972905129697608349081557309719798252800159152650344469041385448273349383870433924506184291979572503252206696740563848939405538576815679621346185128699385477435815888447455704893823757473152487587057263731437733024701958511261530180447282071759001431179048926097741658597998625176063758879468843992898446541486382146701647132690493324680542143773359230765978041721795377690069867701963559417624917227014945499375149087011442265163231175938976035899598849234373603360051355107512111605896684730240416670268221864055835232400845703608557372125356948731842264060917835040260376147502438338600357510426225780990977007373561447187161849115684469278797782905534260727631873640016659260453669251928528236006593846169622779866756750954848851766855435622703521547210797458789999743179581971859714082707416365522352594601268846530705584570501649482646470053341886576596275000973974207123111308271622933085448516089069057218495653272382386286881773210575667064982837930152260736461392087501224953877142445956237411227637714960616272750813214542135986048591085610817672142505290440362454016702586299258745925620917493293121330566794415239383716515652341654065124126628450216673678143076250117257321267411210683950462288885066171625189773752573444709541796151983056048676375780708639839144358321163443764450793067078492944988523569753812774308018548743462167180237224326329464083612709024047294263813780683340633329221549089377475611761308802759719021042958639896038873209588976041584191933942348482871717761239928957790416749798569605990124193298870561763020448302203422935050700817909946355708249455219192586665933417440323242959669517753565813642187226502787877845145418910965926094836213332367550663157045104241514864840587623107151628881363043376534635494000485020032108294216523466008009506772486841324407091635789613586018614631917423843377593629640613994908941780976408448556621516460930192062560017024668437068452568546990980324337040938215955712123669739794669952180921213324984210691296856722112703190799241148798496832103352624558561607367160825613248697608899429563595328700889872760855429562548097548028601092220382779939815542462717778267077309178273694678376716417993721567902556052148050095439533806422505209529381330565293302249481852703962327442669703039686588444339905456610998545077046065866602318362793323276604285681376712780081969966155891344983171809983215326246717862361499844620496019053152527821635611680265102605968820593926685692516998864305326797598857696206699219628147476332501682173045609634907498405237388482975278856363142341291458123991227958632097072131433240480820960876182601754839929745328964796062431047851883393958421380062292160456686069644960830593061348846054877227700080890936953959589513203058285294382735468170060178779381166132528189021665560898027088751371295273653223513599460925696259010088280740311767209352573029045817377117421203029943209313241588349961896612609248869797202662115399844317731697632794727336714796919241377950560926649357837920907880117851412731841911254704927088771092042907556695141157105460787068538819060700806911818176944956853688923999580063698892159903908378775854073889208174289478254041391828704727420154218255560560075983192597015774337185363807045944576623648050583062612209874828343480855399473793500013275465365333639178866584628598945754441774250653502581858263628757477538274850636040602991299269624406019677780789688517936675612956498815689719814555843648338031393737096271045765580632486041958498171717423487363624036152105761578285918988300742057123897847002091239008681889845623694126117114393063729011496967951862209442799031651605182659831391838768114572303467740794488063765834310234218199757004702913427695682684064811418149949456753239581163455678116820135509252558826107171864369015117658400782077085742650451848053215139871923719385041427485914656973325092346736924692220100109249632466483656216396143726520330128781489299271969667202516797237417784126446984226869309567832654163386222445116945713393244321819856423826766554814584036811566627832650317922214465185438290906013497492136237138402695528831907396472771010578189744963272775178081102326699210212419010792596447678445668612710896932182855774722703144877349818023667480964623732413600573958174097683532873170470154892756298430312341783513882528810568809243529832651820250253391688339472316633564423201650427241527702842689250131706100185703859934165618798714221489413090656893506160187210296864600801661222684327159194996756839107646976299797029224536897066971279224647272391886977534949248515417206358261280376973290630797722866006387894758724923757497767145155044256584271122835271466228403298433170261304715739811868352033706672730799374010898219411639345156080570434642505679767953350049868529986478818454692289282663197574523660664811944106496925793196138229437335880259738272972887095570669449117702486857908702173229078143407120660193931679197058045790712539979132761877173069686419596282033561123116651397084914738927757925038625580442661320996058435932112486230078056846945496325572190272629797403573430169170056172194860646786221860646641505149384024965921200079168622323069942300825435882398682859569659512708727477078398697357052556341015984776740902316934176252139344249126168021465799693484920235968266895823758415586954399077147246122831062430209734408300660700067230542744972734543770662540239511905483800746937111654573368400702899897206077391983080218511259416473470971642760196462140584536279740132934197277849814439140649562539928778402409285308326635505792248994624423838094941827212416199148516593535517248537967164575531100953415221243906730332124345866556612206143847895219789878146624548383356284679822369153067158237662589158503305336892054235864610328508169149541426817346510850070859712887081403643332919297651592277427054812256320426343200463463752813838125227827293525483282586289206085168131311696049390609756528424668976442975679650077502199134715830296412134712089735698261385003169273911983177276740125595947757952284348557594595667514177997268116145686696340012728410786390167834772535687074407086726828138940730035396819732381040092140720972855782759555164393893986757781744013739555172163903862102326984111811035069296389697680880874743121513090558763411395266064932871557871543792408075201350832806047896342506032895987746546452704136874740355832556316745170351027440050844611115446143959986655362635150741225794485841885425585880676210346160916509581016387738067338457298320464740424830131654777487479157599130861992385511822713544678073851118028664389543726482623955254052789171960938796877248860991797817729505601321320345260914619218687869134807691099092312721629386718248277980244821598396471209684451156625524531170218455364437282993800071377059997975393629757575996082190538804043837071134280997969218471682069269104007400993681093067875233310159692588546335804719482629383490182933219878612903401804789075804729232928580087281345801385071344411527578755650954640013670492119581969602177504034303639219576687651520637388734318183437163330651429060454265250570598997823157289618529840055570252951777204336938520035376856895825293045381198125101010378431632819447123920373079859318569878317346583939762746742351726001433981583265455931321603707364683000775898757004077085691329854664703851184260413452437756150357114247148510853985858194699313503502198310772159794225863362892645131315188929313252013214292333278831076287137005086299062675282983092499190877205151185951182856560288146848939653189210513933269055709540655396649727390385219734981447370020901648795267106530127777176958326062556147216909685229842271329248702915069961768103311950415112519849565460079066259417549627769407915554358844898045541364433455505408358140482712360203834684670452488558823483460180711705362155522700708238122158170441931568326554382105976293986958776971750229074669099083311249808281665977020567699972338994724088066836581931835570712195480125554480352325879105147458432786724834053052823196329728065070727168188748645395297280508436052804329782623269524180287774598561245417476797780508941519753659210993249385561045826105781518096254294961061700614856564521007180691585797493212714458570009171891256915665987452955275602784022354275511848830189726114338760282448164542169735334124633668994614684100653743108608789993621107480628691838057077712094917037472395509343727162530503323060252038917359460939938796534193713836104857759873386198864495997488007933066659215638902512315991681041564855383365778922858820157892625223242507554904761806630638811706495851509500794699141299121072882974864703337099415352447333362364944727984711236062376161580227367859551241108460265445424640040657968593063051958442827069991734372609626677693088576092560881419138724059911947173381442869089066001031576011338462896664802510427324153274845479454606933920650680228089079786683836925190219879036549895076504428425411243335913673331286851044912621544084275578561508333677154424389890495292263667598976195838178387763047849078751812196344909907559419268148305786733933466406017423899527698091636248036357223485474174539704138832328699724223080396890395748722921179296196680666109035265474149345591180587231933625498294694398996808956219456119491574285796461994605295873073141651736365586677384987885769878201589915089181225475851337957465720046755888269496962914045335236970907306853222542558655045898415982807503924833520961630664006603889418863346615775381793891257334086516266482584205028729806027946181662469725163343927003096619455037590669415869585960278910033770489533988167848056116085867376733180251268184342909755023678503741896661096481436288876204649187596401236012408831158354101729767431937752962078639274151359653442828706146487894735338155018605253498332932167799720399137035542929398655588355231851122797614752512590638648861979353792478072218470618554267463965597157048887714222678370190030658204758871780383441273779018253902097303463454210538146786807695158498183774939184943696857150109816592862349411303954688141282942336151944681500465251441879945572067859107070957079578265962429386347689141778553467174424930191680257947776155368463091454034997640124126564321486039157821209932767374332863547380378435822526280764676712913355961938859163478913099290221336421901692339150604456162047147937085734426126417374364440210128117262710376334257090542685869868165511626455666956697831530234789128594178001301264052404465364114807549987251768720169225116040654284461806211313469911421928881968874219294379593279824033190401469175636167907297117308091607864880811690742888567723654322462758417408052904405049870182270942992446311241908361628447444831898583275606149169823380850287180447068800860205176236652615035775009766619709629389004759136772468578077861435850969830607013665542462281684814157167893180224902120992564858236990463484489502171455428184963618424723870197024431042835087686740454836282797932512776355586407347239899438774664144445016292471058221293168050912892638674720993682076413034623412239295406016243877704833008647048986422224417730259285827379277595708452666372397002541067032077204817058393710010189029682562711796698120101498242949141832292333434335573883609414078380181471633930474251968268198545941324715848535632413401155065125444382737714377174336189294104875738970873211840708103840196182003277265125298594154614765761736987871780775940600744552559757711861713009793085480138263473204027064841251417785815712420405851820564861116237616961611707144018479475943782987948666980785374961752324279665949285469675161270916361353901258965495079763090374486068927992645876750282019510071017071249461265929521898631120108622824224705902940163329725168929153006191483766688686289002827816011856091719729621627265563511080405368777464393577076651702049619356795751188832694309301741010607998589836047299017277975826693902060578726244004590903538763825278224396932151194626501313922118529742648329263579015026364404816763248058960661396074838779769933590125477631138741157320214842165513050827686173870356867070478135405003009476515447420635591215069708771094819293672080480463922656035027086096861871318665008479438326602915778906717812128400012469683157119782729096458976617902541062439124998609872636672196729782542768911547791432780465557807464797857238914737166673016727576104689103925349223061037141078343975623429455088486354719618576054350758947460742952101650623444285784857538868574985283835266794975895639529278966916255271119254335689043794073904083613873628901764934631447821266178721401819286112158569564119377029053801234033014868474582076156587014115598792076819506714612660419090005107068334977813969505757878681314030991887172484700057456792069736718919381000190122431259710302850636704894998341771369801503838185195269602026989396157562616907662735624838621987882836154521739734065060444116942668043847727550300189508930450747912256822882528676285077388768184748917879130913456410112696864909481804337801733620577281733979372021120706789721201617699133654954045092042689665075812418843189266562184009728496796487527441120330321367679053664396067918383676209660452340860525431575814929179128108115641851385849150145487544760701300766637981769297228276024630692573712043657692689818865852631304471080496460143197548798424004881311003521608203728544655327168988038062029084630892390738839133051217867251544482229800290449376364943437123130312272272485260417449969213204296050739609639036887058720938708248111529665358317098132202079897680274924585952134509891334366611981768836910698167164148892348382090462967560620948943293730970271341154466162272245731532307638318591648406872149895098630051377293377983380948278975588752280105501811129875877384209180997443625567461445382953864684224158069234670558816898916303878975364022801166609807598201122443709619834665427790984842891781734956764136754351565596460276536095551711429638236832616836058039838466184948748898970613786026756973333931710264151462760427205672146430231101228526923325123016194703205974855622812046518882236067629912493316730743686111962807315425482361911100344901532414911195759532431707955068564294941404526597964927945167401712312784840168304291729280834893370174730450274153611983452079563523297155833608045388641770404109160132792332556388466345400451465722766902819869051193676882540223285982753055105521590497768914028175283536750717135778205942634513760127076341250905196393370722375531238609763322938097484491018741418718393162127146975909719953122037902036361123743160327345363598162865862833279890806420360287938471161244398984962373076031097462498949288815988618992940040930529993835333517824290133390281962184940370064922350666284923121945892868601054194248133460817229414077883576380403036167205776773145756156327540861536084020840089665215001504479257998274500074865092076879464514467981791153271427226949598602552243203122269270304240582500817040646225207023215567089167091217169335992716069507430063305172375335241920628185258965420956906618218271983712079304579520023206955425031758916271266852795246950861319089839219230872158665572629233068370487966884357504664418613197346395352486728831276796322284887052261187287118754518735010958468379528672281676566886902632043057922740032458588907042352132889660082222573334573785842493347883870466252693355946038825266345792478259702288373927088214254896001396873698855088089191543867635649409562203434320952110488269229876491448137203158023805010719139455286078053601795344082365261594025110452753436122034966281100455826249533065371125618939503096317915122205849350526726154010862578599620028573899414161860816471757251475409136393988927222119046603948259630808159703916884992380446280643666283126305865510442579855936601705048391194011707158952591274897511965328656811861942143741883378648752761539246296587255276189624432010901714754963958625253836307368307507861490392018739391460937733813811162955627496475601276256778350712945657732654728903357871491560523131049226214085047155127962596459287965900030205891586195978123617192278380620358145580768748339283902871796363516852472511748213016133851093800359794441787452989376737415672324356328266446712766527143174755143921334002602029389996256871509605911220443081622268711810024387379862020387981199430046841042599969182138607716758477325995856443550289225535311205680915779062283717060801201536064094873012946288624505532277306108293793811674171074519224985178020851727254467485216931597962953788271025328399376904628445629300920806415239019853987949258906450137114796743698679114751647415426378644385953716318485194304190882284597469636121256662129845749770826932207766971580712021957580003567312172153606347749340025652018827195068869858091388423743087847171363230426617469787728426059015890795013933887430976538348193402633747708980390232978199465394066373808015622626465565006414806009130534301519664612142750586257768225551160042042244347941244511412261581204954056824699687975800618084978073636702673010178162017629637216607549271854511908255910547153576773447463280436367861262858499188659649425987489339810141974880872600969766683544096782756853267879358746705348502787616460741935743179674804151031744133823148508293356344300194643221955594965301673247557529636015042450331622373590596534378702046637289760958462560169922619602220477797723683558182620265312614534002791113782463266381227532134598986870438234720474952143316228613939693113236852196932050782289371225788473880498331502297163927286675734469491380226476683533694096237965851650449067659839458629994795855116056202649053133702700828650220462453465729385056486667738659514870631501963702196343685436271088921787607363738465585647930388967367484000473955289518228730738068034940292540103658697551163039077565771301160573653067039455952740048206002063780469770095269939856783460745001963539582431550295736602477967745615188436511090413611247741172583506695616894309631353381718252983022104805156373742565301650011990353218107291844958359952497450794597556660844834052583861807767263337377798286621372043296236720011322800084814261679143627226949213178689998327024393421772161350242453906831764140108235393185599144821068715481478786156761263815123345298712460895911123704564005568915207795554695756632064956745692623108048738945539214667312981440245411871186170666219381169467095148098830924300517360738251414972428467783534048805635865231581183066571211574741069700185033701261172919529121793776817534378984010070635023691638418574337372990476358740403338208632109554117169663669925838295667060146017981038749194579111070194819760223356219082917374587697858551763105166520870944582184564620931891592480566040221256324754087814092225872605050494097310985875543868205602058165584190918968960399345447864747038745901060421238089042069662235164267776242677884739450656263382581129379964561972001878499348877138296166226984431323647305182825063967806728451785000518638185843534882727581202194964688845336383307393450803033295235844494802017366862077744847624344072372230645883297187387970058936415455901833619424520458099695475334688519459491037537721158425942676413214008623320877915388925150954505886247900908942021924766051294654639025509462574817186011426154209025541587714332760542219386907103924740283728045956425670088991122029807529724893793815412829307012260772398402150417910236557143418257493661406468059244102194368868902095763516022363781097826136341784596204418941398722890584730113941915650648274096794621238258053415091151610671415312069739881945054624586367625842214441499265071587176830180598852251294642260234434542640809124426531675084534166522786987074360588439396121939749625903782949611018709094078719634022552967621149178187336080084380882634974483133381923665558532871964739817227514525597698999143547110053693333941601537568979670758655054884646133707635207295981428969750683774541348438353124694641592612346120442837252056826778081986446627151189983963256444670499384623585782638480218827019280296765413295531058642495360722300785865355882117473999820293537239397071810175002878425641266559086294622633758062745265535779119471104452372732637443227792739460447245416343367057909009155623614801890512438087057698449168715546413518684158005312026465454707846731222112997501657367031404643015239971280906209906254249512318672690383613097582797103890642112369179335028297411419019510078107715217478333214935013831987480970564827521686460880462228067853611056922429275064986054060862023935040051112568746082000988614873246725678075557911606840325211896329576785844518888623016683945030261503696269729962284207349853722873537190849840586914557803690914677975868924414659366568957351702585373433035911723950740877123360875827395240348877838317620993032717574948319679941895122166990513442042453085113894018714581587091110097122454727753283385649027424927826906386097489582861121639279464155441325356571414119771427614229095192847095947568810127468492607481525524503296827885213642982957381264307511621253827475755736463398388054320887488785437542255578659091720595340268883496296434603693247268853081605792748109440149041134346296894059798801191527932998902156163462359263713543518551764546414551397643774056316548290633188023345581994145415360458353645969320069477439669367936320194096052135149182595976271440711558879479029556017526034735596022279494172525984430015918433756653093629912136944648399244150797823273960057851625012295113120851592969495652046346519944223271939656993682481909947556002878755470406063211945652181019919474040844167103354816591965801170308627243847086389860437235433453185001476092004701538190143496512855382280765458997183132608419278681788390604013554186844061747554086238754381775113473662466662848873224035862713375720948341805875677540499160674038845215676289880104365247560384846652354862040503400289515250785763839836858233523835557208867658966791518641478162780454099308425428180501933914507006373800773499043360144062899357873229543758903188756086532429401171162464452979743618693218370131249359269963756673426682902156689599850736693254574535546136008349976776382281196455432462733301427223074372237849252128079935966416405606836612213603235644644521362822782402920094308279307222916527933866731857642076737286116561169740908290718578607990204164038480597894568207362028407606270366603676830802521413786714595148310691437866483091818400259336142864310749689300682339039304023466633742898421036531305262575977198405015965691415769276534032986837504770663519393104731586255004698177771074972140370662812992695828325678348245600117243507449961667716964077156958671676587884152627564595646235923265030227042432806532195927677482888430894538873389662975519193064082644063410700645230319905656164612165316066802633371281974613192566238133122957970175150651974723528478773075228669775308281917543675906763822299951889147207882820754408021877855913036766250610918188366106815298865162598089865063077923111881456699703574010723642678859957988252032135147049928341310993512678360220754191154248237259635318079345417906271743467798141540777029782433877294910769253131311139204677349113155962134472899940488581683880119387421042527362563160147733219323201362620762010340756042917626158228372762943593732291072490694152115763472446914504286173056211820833927550532712000282485053652163588471288207206390950629928893010924732934541074973899160830393487976689696572256147888379652179706452484397525283234489070081929747214688370809625141722397589244356053568289451280923675302920636915992201629298505617313669784313830813783207191120218460617578329784659172645061104297175043018490334179291270883249298564884912871073681180211663912415142123498478269490011272013998462070069941285522063520824666679275251046938286823456789757305142771839443003652236295923999302785098777968806960385262483690436629007254876074397168442773114871608598572840437212604555099291442967294277045728409719072776701807015242926992227495774619875338610060581819866769158268992761582808748418981221191102843818101865708372873526301253667881970850494649134100854512750595534695069771825007255663692366956921958153959608943946223503561483715746597193090814383918322180565654114751381408090451080342726923747397058628120115998316897637408738176514093400461951790596960681846127624763838485420533245876462067971241801925767579595295948981484481699522255040301639868570910124789620850146021191639603495186677016593939019804086941188180020628865899133592389945180245119361703965343302092940115430437639834444637839136735940542344218035785687555141515659833622038080132133344668921438690034659131333613769738270009822136183280428865494184124326693365065706156742789869993727551204738800900314651097417377485293572666651309219824852757285595353364793360318153303543581462139943018084869762619146298651898732807160029248458955400098299969501741853697205606450531553485499155646591068235134791709638311035787520468845514529744413029781449574508870884335435430347510517617644201825633322723558184714318106686959777744970456108479110292505724320082011566828109877049898171945676128357463025757642924914019873415321207868741068284294315048309013066646953429609218869597140357284005907141775018777394723143522210008831907072593563921213836315952298727817133138831867263684250565120816753749078645037283564442875328892499125053325593430475918734651646630289313575119015554222479326960008816479881438078215380777380627005201975900949873522426536578723453590492012218740987549280694216954398913059659764157717190850916860795197207065373731882001520451241997237861112156220505192691796994559670336649426614918205558011473279157327540156930066873564921478247716160732002599905339281358795756717145541694715976780589174865495814611236656629758494972096482180723356967643268845270498551432292099808395374686862859964449522071279494211051149650496045837110425972975758566212256985458151105437209424509931183365932717778850150171275485779322635154589686700494571853516115962640850426824237978808572575560816734053892986049444743049389246650479586685603281235302270286333470595157747825244287256046263079477433011616912347538696185701753626440649959421805519139122894207753185305091575220955174569668568710482769865865135746791656172395923552544009230673810747938107801516150941824454450204021300130491614773559456491360508016791153250272809772259758276804448767935238417580584049492293813457124520897404737522881838506930178630760567145776933788518609108246763008432216984874370422283566431463755574902629832847093101062329972406205987448986401876095149502707875965198425898024982606035195035893350237942210557372431703878106899788434574189669737588700882367720577389863016053738044757365397364799355487799542333714178855734968798334623915109586606077448306174854706310706334537785919175624018847016510352434038197538105602792181709418565329652105123170055878771803675998188485196163822268629413034621628929569293651845274732179601817088056879173284567071423843606427886448916580527426962217037758226756323667871175246090840049332020377654174409505453678874878028246964570866884706562309937803300428166153924073545449619710489453412908192682821375643772084436877971389993393655650965435790927011153958620632957140502058558936474189734005833860250482716422833684363495527254061914768694805291064744930062087816683467868826953825035231274973823780115074513463052953198917427105052253373375518827831574059566138841606440548762340646579288916237309761141469372678027356366706126192847009064818233972342752845167726691589057211420693724036319023473321763319426735304529446509593976111048139379990532882667273343833819989288843184041350493487017748530460931747983694462541758565438839410885275914215167512155282226445917603588884426178875756405208665929689833710198542707075660444530376101175615196879962782744816659542485827877092200551381481090271078686885604559659490832686546113335745857950277414546057560664446626007857106651258430848577170208022593216404242556617811537458368073277050134247743710217266698387463532220000932781014880377932627036456940821198187073105274464474059271410112138310246799188513950114661875559783230107170160781665871737707665105795890788216006253950456195231573633350059980226455081071170592587594868885812391285286715039805118313060141523020901563054209273694237848764692888856287781102983566264324058753910233585174316509916450988436388806869999164822675820648199768995647511102972143338026526725196029895191046989596620690615519157468735136641404891267491096256921834042187633742759952523474742331741706570237336053203382724974682331383650375131688386755183869594757524064655309738246772322015379558080126213851868537156181674598223554271798759722334767249980778957816605277892731115915669534627183376829776217340339596999779414571374713389025005728094367338956408061011085033549864218332677341635323861976770018617294958927665825510084515476844367325622172510028894763566971525065279842775314950191548343263632094197876922000394415842846405399181710355129151464543772152552199825054974021429412633671924115651366388084764359981802843686744466117993927197515521932889929348389310162254349808561482143034545555961444567333225543998501764901425479512612273470406298035336561662946182454918356868590719931162721295000179154180713626766835745077821500648828666388720792899290591582440807670775453556416206749782617601815460832682553723978381959034990480902466997233949917291834436827921663550305963786170434094885988535396780910007451480711003329047670854363610556326897344217774657304890753133869284077394818714541534593033317741793986116622779889103008275817868935399747771276576485602007752059934935224464984739424121286238394813912310661521069460593230680140563730972322922553721692611170487608393955638627768187791000450065553049783328629095853822721302314218949041220963793251299327800550199732327358087684272347720954589552673073587477696004365776828237100101448044066670165235217362541256157840528360058953245096452679168536655402144491423134238353678567210153436952859239849662676511666734054374956605164488656938242830541959400444871166827861542103966811064608372049056055302054276764722289779386672798944841287211556184875546893534232701627287216438036824962490626194076392017814120867991432075934382056081968289368491363770268262682864909644012518936930482971176120670362887914024743340565825420705873547473728225132753372812210509907145646813578412073850871676141024679800633241068460285359459281537154415659828536299677486078822384926109488856162204433501664132704749748825866578797453798325602901895359676944231534307002829414003910199808196614737679285322093151959757426942011769891761118357783102116193621109532460213320333218729517639125419074781852028609262193557121897925284102083178236960522253400941849644249166781566848435075342416450782274008675038858005859937533297612484296845939987883739227868450078991257093097317666436286910214468629102323329912382736088069957681133302733755849831857021396262468258629745427411592657609911281776223771128254061233807988210590701128436927531473385248372285482310648351914506217230381886729829947441422013786809393133021108351613365053984797352217420180579370402387739869575946718897482792266701647838388695810365495042471868897486959271156650892839826867629561504512237867162624348756496855553125941450210179287723341047748251215596647940912717589709774625677093143641022216361269358722897013354241940382687179197425586717221908992674328773870888310479948222654170627350574312465412152352612545802250291506992973127465591474384823894230900786264557637159886523344022471419357520187863564511629089596815555950056684112567389882857711724699403782009526146816956937544181327617311585056330305388618710364603393321172948867497922149862505066626450833188243573201041247447146114862324259658565361675243314273709311103728118301674482199150021494086406390595345060017913043664400757383772515863992224759873295308249154032040478689517180887389618520070843909339448702867521436490777874061976145534644589206484991746565304088506120926779487084052592643633394097788776739824009331513713519899658943310836415169063289644182192012745819251338217124854379195121065399486285231435791436368093317379364812355966131235659173960619643196828213151675098105608252030280700720901490339195165380887369505393982498199501377991947722015048322648843491657783544533266329543094591554174659924587017313363516475758667892927012160964719639516327704349762162712818702643405722221638275724124778943525875687917437245661011487688131844928575139758939779599349099746338800331372209190749469591842056766242486790198387169480863959311646235174941899013603443962308463957649263076013472946543210988281167906606719681593157419581751240999878740867878351658096303979700636023393197312718804981684866052969704064115628798289857595128608609345976281042214574470025893880049041937597912674915140063460456230142972169946805017891221181603378272627214258625717053517294408768901587902577050991461390831321891570355125344728223572939980084080436146134334533635563162521395716876726204503533574176697948344045029339743804203631865284889132249782616315110100927370712849890742732015517245216601086644625825184799064413265337005106835502646118400116062054425623272086725603981681625258657558751862306299033611397287377626602038257680782880322230103381950708369415918284920538956485011977607844978213374427464330915542647886915183547058085932895367573606777935247514693857675702528051850039350520932826533373938658540714695922580335880826251748489218093295077923057021229145902805293678981269249069085535255063814120813798308622684691037517494979073757787354451672082163979454313909579366369341895122984974407877029259718761260027631001948704709904400527874514540150129070037397145334165509642769475691693000922891567910871715841025336998275835729981553605576587190220101316266357061162710463251647015002011651985279760473343076731019264173399415940154197433268702298122495689782162507130410898177164470423436325898463592979048437978823687949088732108605572569553004837147884827320924509265916228236836435969741732462550508280471640834673175278039740244485418741424537364300998615664400666840914684518652953083747285039078949343509773643118171480756596973607764252251159898926447559677202793775540069988497515190556011574719757697740491845433053736056166745217923590873136050937348808439964393943120106384332364010606089876474531551694840704549882999033865518640604226395213725880106659475003962635855383720012204855220904839978896003768689726901314058727124178208214266348648266536773834445911952548475035121883081894659120356022666625259007455409987378436894867891883532215645917358298782400520339032442902132487965208796973032946290043640757901101746007239377670842878779490496498143484232166770291681545557538846383746690872843232932505707822160094614148167341779168634226043798608922542271709568779587266538319455694092123801672783335811514792816950833815851796828867320699129972624611728442055434032538013761358351876416420948743712109322929853620594115362873905109934097164352904719209650813026758790633261844190820687383636271402425382735042350774060165055998814968468439127888243119807091525336430211340017786434550992391698350743090701231048735910238513427854565676957917814582784315714412295989535499782829899234377537095702570269069813405675984214709091561129293820202777324421835672069233194644571177435254268558047871717804920931153030010256177113822397881722273478490290988207595909633637242007801899199856981306394973314631752914938976020348460798108629693132901739816001028527670334044214350951697659137927881512533359173356287789621200095835418931459770925742639044811878013816654947401779923565925585701505230562547047590444790637422191242855534625118572694409779011204859144291029146197452273177096811421827818835812556484624624564618375323284603381130887032389093639486215436106493029007167871205600027097069287621169818785189419482302455716183356655166267039750407193676355666669220795874855076607533875608778658225136159107418395959009383535527825638024856418391190791843980260560339627322564802530614758531690608572008356051816113522999679720847201816262784949180611855287110901193338123932528316375487131994023147045722820085825103002328501846055066141846620521421412248944951028810672218697522510238554472104030868868385966985256779520904600071223433779212132358494624231400717418204244991662767317506738093585759258331598660183722419578386532385689345085633683154225389260215083662754633456768461413841893600932131241828718604744408713649365324616438156621645619262860682903038695225094028752566830462789050868819830814320386579036276823046862325062531245294882133518747610126635132295060215801449115453843363610536183811515977081048014118008769027594816613433728028407363928278164470941113005120839989329355126736740928958069160283460434986755611737024050728835900902844942502938648479563190546362994004770166286954955484596686212930556499219029399920781916210505126559492772244524340201208983336584133900682080389386415985567873162759773790743611221296564680191026884667249081766858379875874894051811019895000536667961845519491802948156519361192460136837952008121816459388110307335282343943375274097354670490476513539662882548283121891537916032166284281239985098466077293050177029006737395317993202768466305094322632034494785954209247119495120365857585602793910808959382400845514509543905054135343272408979361365070927407877626611012983963758125538225954411660674660671190719485759505290064782629222068926760482646606005847061328713554025970101933775564401041649764628087599193906341115817873415482767844216042877193842699124250243527544372175214294846043184072863455923150357428168404239194078690416571831538997208431547317177173493195185922005193533019369836340152100237099466793203323966662715869768205916803077304678214403859949413757544428437051752961496744345448643857504801772779640118685365787889033692345397020597453432028751287126609077294726773815178027215221040576373620116496724556906961418917580369532197396994506449665681688967816267122429748451801074953787987692159953905902632473269129231429422867660957475232238174075156588504930136488668919884299332913309045571406085422361685152059784155766813399589622205522990456996711898877336761582212223941660623652210661181567462255909474385676591524180206418733874468654366461252831369495312415739907152741289489124264626078069933152787529553641090287015208808639890719431057204464925550639610919837726650251324666492942608712673144774236445893645687607844675364032502844350947329909983021971107463014040894887080217112247589692947468930932370362156114286725478443203171223411439784301716996072589748057919886670268529766090633513134501078425857854553574656274728200402628209401970397584467607301984456411593750073938001211506680228707136687464363895859038631065253373560433915452361449565059761226501654378476785716840036630203315348252599343595681119352721693088057285680424067445155780537493704817615432824397750956156131734347633622679180543202007112066896139454926045656669520409097685006302026646373509556370351197518200018178949856363576013156899221128890960182496255487912513871163977473724683927825438182981458802798960733438016707655221962321279023092930069035164414567576825007152530271127722991089114445686105511539741665424241915281132360704189895058788770546456010952238348883077994786301214965768449683864767601330879567394161894216292237657999880552215549350009669547625854081279380943642941268904481886246149349673737604178107450923484488139405049944549350018477929817229647309562414050464575581163007719596080641830215675837339678305948678371698608635558475900989769340119609392972334512637965847135102316335490907089193187037869508255123789991400729648986064765807976676809107563016187822719845777368261307519677440260219760538525260886531684424321534378834440787014397387079875803516761085210943148123621373135105792276302199489602170427521541916992808591755117085827349689150266874687561036653496561469094866029131807588424353696163984803540786833863576943047665132252029671751382744869727029669475048884838229594321443107421256259413187212131625393999847732062936075790269721474296317264401346319254790126477377460299267899214374265488471827879305569789961375375381965036320220139350156652227349106982694831507107340334380770476800872323589969765939457855821984192613541762401301330487858657793921656674678155771698061953422532234767352673484397917964830467223672909459628926501079743410634754318937502358830898476700884646091232043717816486439521768506229803264640538929459531714221718789651184135622425543058289511563566629101136764244158763580921375726888883163016748716488744640831621574537685491691611531358851138468089792304463347391145212276443105317335917404435332069250483569151257097880611050792871811886598409381196706756022531498599098948191852563222474322008517771353165082894965179006915155337723310414329633823710880737565811735024111370365879146586791567588798794286507219301924305121399868419904298964016075454275425522590214421941194583175045064100979902093729386673401427555153992394841641803018285812063324571468781983601871716703007640515486906412310167762792127340957680195249357686301253926873594000187542352675236512871756776833098671625513116905973341698695691832430074925555506101661352906037481045779204087264256460717285276249833979898284430073030951362242355621983080966302945421056316781036783147647708926785683017641176066877550522688729090990005055708443655693558299012543939216265372072119557598878859455568163375429584361129709696301140649294856975598753917582734013845074797463061644320372704094400647233285910377361113602855077740273551050287358115337492235112812235050905378241526390787725358582754867144245197130830598131716597246794812578373090631977873798704889029494929941270998818083374367230800924267510503613556509101498767879111979497019059591694550078611642224261806582645640907229461077580804001871071124361785422184648907885582169902619033015161010550326548016300432515951919329959733371998588263505360013370432758585876171189877979960383448169598038732552683059842968593119775117109110699825691393277397035949825664671862271785738444797410521121634989423856051961661777497457373554070430938394467469666020446221535034693834409057427975164415555315724659776096424298120282289405713290520324304546014463682008181023871488810109104492985885510033712211231347975808713938968246769672191341450457629264068551668441222701432655667016084129590537167309275849142608569724174324700729983608503598094937032227047871766010651404719240301236420873279684851142047323929549657685945894463092799127033834230674158169646505185920682473580979209392331753085201327159855045343726441619978742692514105537503876761523339797004785690658423040980643672771689403572364436180722719012549898083758591501470263436144881363402675846408976818249063729984646618977190081986306083013661238606428670402807273658896096175421345641934610831385616617738714518961332473869068547227974826777844666612784655429074447572639419023985862093920818248198200290093018923333467837925489344447712390891323176710897631560982295473886587884845489483545114103500153876632043785905548625797981823512726839302458616957667706994528344064441224833132905478738138389171646041278433311357917888506485485280842530564897231675082379905588989481722293791079963793272713764464134975901326477163341921785043093169023166185313737021401687181397117702067682865642907348326709295745675663704649908517463785271909826253886596270900492962556852331597974213959343967441690564263225954646223115873860193782360947568960926229896725119973868132643615539759945893714246624171158092423640951637944746568625413754099660328923843950472165153102853463008619564559315859425802475339260117430210228813469295139792040015308989072395325261018295731306876716524753939105613866623765072744210946050124254965477953924606300826671678737082416287730316643553576987825129882620081738704575472430230557083127894054675914745844918744839791239361543894340539210581232918880344995499261083028854172733146927897248720264423363385710749125445341849783908820589338237494789089307631045433878886485855858529339888824032463367344852904810418543998121453034012213109828074541188278003715358335495504165294756647969996337820293323476756320951210521642869265321031770153097010666119755250206296593716567357772667213356444173857100000809648031459675271676199181553186787772079018414812792699503497014175873121454527210098240840967591777315715636906752180363221039988313248238212837313152463475993602763491448874826076623223148010789004851073300239782724321893223136952064761126633657679249944572698444436364154151178707926613463809245670176071193115094123557141342478375658836545186439647889504650394081824601079633447552034205540254305536878124741305167264340275779948135516327404514928284733409246237912244032642676853222669842204076961704612467354578778409772002781451968622302159774537614091454834237341859878269234920602770664324688530137924063980991684934346209580214413972754103447804611484530181857465319281285884717758805491372187688137284142693372880340610887702873840293063995504789128403079953936620458934225596819057948651452390251370591040590798645857830720775681286348686297709853202207122280728130153424904733098523549919562268168465671150517233454172261751909183686789042127826514999033350523664158113193116299084999919503442666597252673866609111496249423790887025366466750628015219825921583398214687038677874733792371675662548570076628696874278836729437837230252596736792219661276417172589271433795948483812207808048488828455153098571188921009297492192895580403028038147733036098675966163414055939867317212176285427576703680890238905212611743138077995743458914667215138390073978555020772629806798732414804224266494548284408271273856090324716325066657234917698157739413472764439401616246870391231677003852580392554006547116266760520675002209855618427366431032599062358052858185938493935999760649040723697954568665517136041025226744741358043046881188079070785074923319998465357025721639789173150272936550120525947306774481093358894349420711543034137133599864058687234418822680311158358125832754968614055821706510467386803305917777492819796671369199231750160289452158879156361708217196138697064593402973316828046993822946727812894731650524616379826348467806486605619873919498379287685766173853281525631392735866542315448483071062734633327332127888422986805031052327514343704022264241233823689642549103706871466954411496643528496692078588395419851449878655202042168113649814779375185975641616125574291256267025239494485571074929331341026531236894635974502808481143433602638269718204553338712334327422177934010894295089036705965443107687253902126174795230724923369687122331803818083112497883413191013715461889413547827883138214651749845345211915913459471806885415204985907151611130656641745612172593878188081812212286346799544478692018126079343383279380586601630812023009661020575752300608794370133047327201021789547356162069295084973277863792884376995705461456958645803694518120489036303685305177731692061399187315800579032399764917170865813485574112345390856616549487195974161722751815558513662615548565089218642730645766619066485422123520567465413820313073862112417359427410644120467902915217572261088431764746160286588612799652723363430505532495850688922420621412981255860081948417851095951736450123568883697306200453191102983202980477576603456082129483344723650978233145556551024532024872658378860228384029646805948567276926700667732986848807100847222033698048543811457965983765502108382337126307735180751420532107193761752303749424291594745602564652066313179476267599626474287260065573441853454124968083084549270274563135740281839982342759409799438119916213772631135088236905293131600184662535275162343087377329446492368389114458261197977118683185464448998841798026015480052909602766198956566887385651581851418206753527829539649388597628846143606741096529620008773747588803146993813456771438649128888310069296324046448433331243736493321141321701683019279270848707290604073220117564858431775066566694750070696173850125982519047830740970951237315761862639874242368829973269612375371288542675285637466635916219810342391168541519237354816498767068622877418816455396628884717674006488020892418296511033608000960131917508029509417328464466971987220652007680025358048470582580238072303576317879697173870692439423410969031960226888163092892856852626807833665164124827683739833795129809778705483915028226754787920191653660638238487537425299652811324005870935046922581925107874612119149329793223943630251829574512465550157000830276552236604761651613408103977900200592666535420004834579585785355647831943192159726409145433665610499863614248499533136523244794601269671099349897862597210625396637455472220755608996381881601916361401499572198760116794879190172807895876304299524133156033704294255553918847004472113577143425944231496102339894814551802908047633678073462334446237180077505453776643597073601297886471187432980072223631215618610924734830982925442376123556325315443202452346584623255702533691804204160635293724196763391878785420212941252648279450931369098582701934575777941362753775924560923887768560738685938516732157890429537236691539189492292569829857557785855610254741988717548585561997659341233154471178967956870372858812713653345250936906751408505750024970301493596603152052130425283384774722248849489675613008459360564366136037271782783105793279640209160901826898702362038389932859757052984571988369599105160548465743631288196632283149662970542029263659283524275576644071875693806501283977852895652525600812577337438990254180077744830203017916459691359107241739693479402678893492551262420344207980967029451205179408485326106784694069382347990999263496591145408077697790769735976492187434476034327366292335404035499041480881458286773215444350178871225017276542693074895531794860625155302997022617731292620892475309502663647998265364250118281545499933057948762118181605891231681190457033787666788450177918105091859848461105782097125892085307298650504264104573445753421830723154595108992307681984574293049926542172824896363897231903967678537108438848568198046270324777990172696141659020718843689460395570920789684686247148771662453567667224670398629996070056990208253250139896788755387088533495603918087996840832364248907032857747780996669390075888704124146965725040512317050504903842547811366076835580830055633353603397299741712625123327616691729885302331165002527034906822241382774481875416730528751027740255279622600442406095621616149095418015876618646779507594723786483256478785886877337591398730085050820869489904709385439608103786839164584227265141811786824647932370822270417842205651494741914634538692679982256462723153885290976813907518135348411537963478660422383108702975414321940391224704188797960101625702603325423653813906964192672774146442995443217326549788538564059973005915780922569903739671108666218135014377684641477827157801825131784382848394456134329614175313506718135304199989840068295494046178113640839521564322434499125794695904430206166761625850515366617088620831235292807810754183539246861467638874245246972156095411449013315519236158399149338280795922172248860174640249138560808887458104982880711378936980245964216495690650236476344566992089914510835958988579714047898272623913478138443108555138722287042214466433883062387472782417883191590284550169066240056127553939203920607477294557065554656507162768076775522014040873460897295912131040034726833063860512674907765942215276765990367887375319586812730003982750178643695086400227040525235565281660149367482558592996103871080236238076716748556405990164721448523584660366909053117632520965611612608521947425682101169688362641487521246922877956283531454174496309443231294861619196095705007508688093145909120675322656998733244729122071694686837022244590618708993153956962223894065013803387987029949791175172008560541046836894366341523693502776638569653794234555447774953917416277881599440002836724091123349729079211068505030074604532738989918399461471041401781836891066025825213969822414938598488808419009485600365810200374723387851560411915112528513152095268510629116427108177343008236347301481327254658959987531413335103318893854203385704759192781357772044102933547702653767018236482819077065714895151250553040739178054438071217678054521793612338302235989445243995070622041554463567924736420139850730468677185334531161845608558389687835186720897081861334724675767029546903490445807915668693793295314666366179386540980660656740879282454644152988483062538994410461235831511879450287590672044957190143283960664353293783092947126642694694496209606319369361404631688962460327334625368388262390232760365428321809505550274915637637726568432617412161218061438927548795672766820919805409485697646759221939549178753399656300464035885954159534991791281139730277763315986637571744825588364917478803649899012964359370727572212439186205418826524716901641577597596029929830120013440747003166997537465664606409007932417738582942107738937337590680785890769886915790644014925823339030405736516846413422650654748378581321812596752271826733716555916797737810178468040445526529210668870901575673562294978009090779150518789950155119233590607262928023413714289370274181221046811365495488252031205489517555689210463333424480993954697741145488673405928488358405255600498917551846401114109571761971764184162453154658269819146113063073539557025258674046288681965030725315085814113692145944108435742308655930289175073293571945846703990765061901325961862334398188439173671923888632267857315114048019141943081959223382366260398833932007852244559737797232177035681304938634678948040471158693852124976507130338513742924423004530842005823839634586378183919532100442616139831071277889912395714879317981037989325514877454362471136968374547290180173464847793617575539622688248828722118362866552301567379150871429837612427543531817560122101777251530592151913018124548664870318393341216760261840621172622653304403231502831713117734430380740159277891994563618310630565874237645721415470367732789600052901926918672729205730746873464762647314901204730729249133644437759836971308828022037663618512092069722189723270232496309701446976776025540223322889462575744584561933074945491307296464161544044745673282247208052188535800713395635804369076375143758286522966709598816939557636784140634635540002300465872601522208090274244289904609497199447513246473230000275808033472139965882046137630540376859974627161555125544708733337087428646845635150543461445075499388097238990040954412037994688077160914232626958224426355228459302931071618642518608595505782334114673942100232574448471496017865151112737777343378247721654430445369059862186054964140782426798139331189283107655126851375377041296818042085034421463693441769323135767820768555755153565684483378370685295342189489317245730967720374521149785881657862022941463540281803530193942148244061668564299441629843713569269525908624269288210869374957708593183563700478979844512736618137217637678331709669970683459664075113096513193600006780839483256856124659147288269412624633689490907872196836514881791316882356724142438844307979937313829948483180917405132000602179283905362793167799786517355106271057626425228072381623376652560784236495354867174041087085899253844666533742350693795989944306897389330714830607375396522064803300408495470377996306649193623996149514048646387478910256301085843002746684561318524121789275079411426795394528412139432604658747972793216602067841227647690780448881444683071640514341076917515295706717084726201554746628350456698017375277888744725586056110971474285188645865306378257453961309389571522613298112623219714895976714025347247058629882438232848697670512250144384944370371579446620240545191066853422386477543965677180300099393595646213056796479556645917470831473131999037818625493184638127084995935910728606863186684986072613049203671428568671299260573701901340218027587354964405269914612286459056346665703689228874330612364165772318883938226801817767192660994274924878838242173477036643356138735570297862774164648641688844504235302086349369719999485313500221151491280540154398207019667921131483496347173932672873129247585416641194533443884798793039209987948035116460613535273849936517408607178429112445630343719594745276173052945791896567552801896462771352963807072102604342777892178025076720489735266119094988797788523603206364994671790077533286429557818692069009845607355295397647989635536700048634858746534579518369077358235417509419293813961188444499704749372851138503168645236819453971102349724919353068460461877754699997542327218507866978931943349794196819304923505409451633671199525065350910592062073348093847707149633120633104805963609904993364502041606411194803307292790419256416290777802152072004284825142204605443078815715872348479962452885034447138285753742989743723862251890926666332863065058204867633634568019326304018316298726850689847550259720093125345258731979177969907972356716453709243255483391660864670171060884928807683027436768858463620619257812240969635807017618850752582925743413809789756971977512135623310441554298711515895153679918482177886164158105965549948952723996992638867874273082022677270043936176745246933983093977410516578183290143289834735499070401021566832194834792037516346266584925844876873061337598390564714974507347984376264766084846438697433069326327063677469817688127747029187435887689094298039229509707042967968222142406441693117948970394282489346454276334173706279387558836729701104231858101564621217788810249152706650102458168164082811191134519241958839773842781641829902284055792784690891108508425790128242958287626325832162513300651129905778760067829108201863650175814963202979775492854463248120516626063179367082128977501240719979901168057445417550245242869897864058648575196808686690917527238741106271599009199361621597924569170123393063893267872128287983639502013444713892449939207816234875292272014045414836079333187910574592652246840913110064809964558581447436067053503497418535322300376962855332503251630111286021440701314967969077702982154656112961853662306824598929213477081447963502922155679953281351707631223538345990759302197432966903850022287088666001414958517371342876254211055750035062925680033306721443594389022513507415623336381699867677237171990460717064797376524371559369508691751670430971019787805932661023983206229392845721245824553428436099209121370087918783655943969290280989991915113517965296333647549960996436513543052166001637937955056075538451302799302390467584538364450325501756555392254078075841663071021879838799485422440639480752707516606946599048150632658495046710413061807155166673922933544172268316899799637299178639460535904299742608002230787561200209364615299681638578098269934257101056781693305038927717558841223103221764542993685118347516034123866405235145864916135425381572280169306925024514332007535310794775308936175294103968750774098795041623991678967952438834411845713973008951085410118104053183143792913520556945192823067359823350260320498668715937669444923684783719923387277631907710514023741705852230145626972205212001170196037602759782348280928911215233287506477111514447019083625341630667335893498195236937748321296171879887569469487496079803339738086059288416884523439030494621521107175322066083180691961706045506901131325912597335671700755599136567900655895148454223765675927274148245161928498115897823534299718466343581213302561905145334506854246901776937637500917248979521983823838819967808076050783720129129163477319802910147683226570983233231291265653954573363992694458173457281504263802647406925192043403595835977008147287601318882900520589154498280614532293444589712946863848699752749528339937693703989801146358587765676322225814665402838924985278962067448090333852273053950510521186264245059609406598020402218553383783775179183686330069022151094375205816840075661112607434581150853581072591426636476403126061298130929875485663432108015466956728747459114263698702356685964055675505971446089227053590303097499797356557307093379984497708093529266731250317587834158490871440648690991402136044355142736919220878976736710587050942031938384439460892883364235163870500381097828197428063067012388920032103979991956635091703194114198513552671450396284509071205856722686157266786451833620521910294525598229130715079636938165099470929042417017339970774872042407773036527210803170823861706353736374381480543532957335742662505901978032089461641775029012061923732347653943789918766905308307266891506494531930363648094221840091681579965477495465223167299657352256084163920098037572213986358094791745115509305354700016714517486951490184541422836529403839272327511707845726994698848373840592305966641746657379939142247448344909032682441980061352832341769844749869852851721438910271913563659211613567104472641989543695068209573598584738684713395691225637453618421417890231379756674422636743190006154654758639606007613812097648994610636016302259282124842076865110175934832983760048982103988938379470359887203270666241571539923116151976716033797324665990912640044657272209819561241454509018966100426051987740878047554159768848412397701164722010721559292559549271025440977302342229985964001908006615654244913359838103245119253565320393216441017062828308918155303416516628870987275938133003039981755724214515588760573664748841552367412734319823051732836208928470702560449203456415324458834002251881200991721309643349599741838544189052640870920157528317179218674951795748199168775775909261347920945545533564770685687058297740516143915909269740197070801328668663869771792404088840763321357533341907571676010767343376720485004003697244914877237274914202544503675513634463617891825692788141801785827170572099858074815402746883597017205725388731233632651784777180357108058688398627526573492676743953081706931678429766337361980696123665614593824989165630516309093684836149342527497246541392895766696272004719275298442315859357943711839969682162800732818363792455459392751989870103883102115977720980360461684608503840980296158404923312062501285837218162278319718733741082656330626993599689964138203975508268819961554625660295197707475525589728758984553933739695208297034601950383097617439171657885620891379471182190633142508734887437770161945580177003023315106946593549627225655260462889113645675210367860459323384400381259158394819029697353151141387195989015126445826202387952316267778584143579328576439503258991444676181280533818915245691573465856687238354614772223921080188753045919726577091159752616564721852713431288016244907151716552884504365167646831384685993261979427706984592992443027871873355367028752391266565953047220777209949079833742451082782436395626523367259230513544167818903002358278555552007487808578624916060219229711538046631546579055787687969639247857695919593988799545447248998332689899390750624767666331381228108389892162029697952068476955756420229087436578755828335654841258769839908546462264230636555764513035477085430910746222877125242080080187612436366361511562818189142244384448559196841415228071526304568955014396292658619378430958055980360064470297778924910034840056681361619737900607458567911564210265434156835911062030025750894604728983658412686251294743126773120360837360592665617466747565381010782993092813947969564563961890307582647249587514870454127352752743542750253994480721816667339403436670164407119269491845796187525152784084134758716251905088748194849109245627301280436193555812937694166554832044113756800354382274717993684712247789597209525999096575408381602870242859648805365047960446862320181929832050452659580465798361038488469674098119397299201451009892004507812889918357212304728757847432747622514221862637446843386169112481894761735878911372503635850272062288531812644303522693607143688732567755510267192134097047983005812640641538426619688791076327205903758530745029862346632369203616889389878658820099110698901325654758190960960862476143291745661365038680386712168666864508932822533347805777488198570893615558920946955484432941608961373259901222399509927300069706155189900738454907841003976575329635510712530560826610556454773246522515245139671502464517438662344170887116218566914017040978810899478235258250996850750001570382826417754538573505353105659824758282939229268509144706785687892369745876319599923728746654227050119192753696766205210916184095382783365040143945779269869155195356315935807148145679027090402473357153332348506139468085167326440150686169180548332584328137147099611326155407705435536197779367511744150450584785794514094924035012037888094286402379851865063295967866086150313381591883522070598082601028250907048050664956843991077881241924508248756456821389668426611373559492143736532430678451404798553952159749959405518411428513470641690064343535930814448267385871818027711945319033136592936867382539410488062107549695656765446800577083670222209943713336947282721400237452399891672502629915107317398559220985701577725906001285609738630301597525630087973091768233794953888510264797094845155507394667508455226953994334964298961028090321143948372122119930070625167714925464386344182112659650843290187192517137761392190302052950900414613593831817949556103631728274512614983075316302118824876285580840661123982542003501898317645130764819468940695211823440921021887809927227051046450315849395692332406173981362889187316629388323605525617890524769626843224599218009638312109419316633496109284292487229688572895351132815243689192554259902633016371802829846759599376718869631106901185545916440759395405564917371667083620348001105741971993560830542183898592773457674048260062898884536806938786007424239876897597647285797716106369841409903835086366159019563823126002831551867735579642729671596728443958658548150134331257210460596159705141354255782463063814385890958753373606048639657121435265567096301279690388374374749788032408892490551052835607225642272751337771119086786197905214613557109757864234642031340770405830780728332847450706185629869806072603435123335230738848739975164989060835339606470141409693153379743411899493185842181240843024559450096701586000908285586265322702036462073058355573575311030591372037785863061672698642499878832554764861695916376720863013663026934446432001410940454225073038604043758268139652142415869772766634333179328425233076401090114873410520227508754586614367671620402678029388736233782897882184714164273545903605071467705634933144599160997402935822731562836655477635393568210895708578914423989013216316358159742347480409439221263674696509238775159156920707182460179241549678886680370062107999511686835305952890150341725070905083093974360944036558343365339884632678093917690366000928873009761250875025131712054131902143997648991459669429211574970568497649988900560975532129131929043549601646786305388330545981856063835666187695368909022413130114234801008622789179870727315093147238505499578483283798553119770709050732324774857387036374561878864968134516084863153692111519344572808728850139887548148945011857338270281693906369731620109557595410486986885488004196780247591440353687830132699018359872855567000866893180434194828035730002262176325659373889946350236501331249577764765323218691079740099786712532699494927735032968111294227755075156784600885182064488051368999165138501807990532642325921013808290080923498571419094177194489024821080027929986559788340047356795756874449670878930020499150648331443910662077528282388093520768698716113133655081514824446517099509568468657235915475114362653525731926035655418968672569280059135353441124815649104671981164061157719231477309776610140677989667971484309881525449350953688482700585308244281746779687552065433121540528017674363206705520882376629788823921638497631541569465738309722201564374885267556935423871421134425049660366956519695247326762181074777408373344085571902831411132265247737098012320867045129311944973340007729671447098169503624147528671115878801386974943578619647828869207456875691656351859077624762695810998291419465191701196364165846210627682083549762422489598188794128928340848781957900422570906122344027220721027927873050002922920178023979276061210171184160868568027368543844555580358202963387714803791223035120015004219013418320261838033688385720341254521630331046774859666443864147250807415254847026708048745769250205277932789292804896498155000865875646997663110623267881805707614191621831032435482969424108379008405299463364594887117402774162964988970488282681048843196142833741264183173350650309614338168798673239703288935454879787530403769882504744197319996710919638889037639365948167557450001617112135193774727796788472968635716858544014441988895395303568427805098554660331604506555304990476632532201865267405209194987537574108830219958027654743035350934608575443044749961836285404342942999624512799142208680532332841790151346001319890255367127275988569470476930213147896959441916626256323353937907822652040074055087535114368941602609481236693125824412700641473313551483506581652725437771115959018387878558499075252757508025288444900554566267636820293666110121244109037842004499987814367740262118016059150175632296353161114678859995306666537565386136562824208352044240079862676490128018423115917866138899351219847583241399932620229299564890695329576242608178561777043387776528551165745409746194342717914537835871065639663136659859003919219351909818843425353319574065829473166296530657496417607927568320474256966653982554914527720931280168845372140509259740651174981301443769715684677945984715348668293151512760602325404173743378685972411154170421566437878828939480035662524553082773437032804439605694090233643716601350037206047805079336007555626132057096149972693923860778149378638900529062600206859827245713710477871445433171678356776840532771098651295477528622611218629887046461362176493531666645995736884870080554010484405530481106201834495043847513632067821505407483440189704249978566008946359903954037211237816750524179108012697171017990756204781410211101025555052744377117153547420423411326327995182349268017009106510882644686169845297600104173360591669795305887830751724787261855853248798865710077526013994783692527992860986505485555603369643946962731063764288899619205593135422631085242272537568647190295422870829835035976706590730535475308473461719426501406536647172442664733935251838832751874061980493139244386782866481760928449900097766543077740607367173818598688422575875352220976863704821701604761854793774404921756042620738757685013021305480291680485326964784632106295480022134403869381483573487486023909835242924772155848515273854280615709795128362835842042507584170155319845420594394742109850778461836088160087479432819142967234371063682166175170743083842213052751359423540068100240411264789796040605258014197400752286591470704544693951057618888563037209982129709306730340287747108425581683764610887491760811126676501516650942526627517594097244527543118145648168753945612862018373075819128958037310404472724746072496791147539792576433598406104552968227036515046865537742533051634149444452391775742432361290043205527992249085895482941320155612097806660795821941121333409963654597710792639108859641547349222125928570152431535364033093345029000934195288023081001418170192786476977792123172601276433492275821428063957045332859190051929033525598083016474542695573805553861116152598184064399469929097290815063971901252704537575672680116345596316025807684418715675621792320057253750758690174211080795940311451245048905917824353108015458405126571477035263800905395200947523196906835841371616969081275684738843231010555479062063144033089080917827470152326348006188576291655036902936394895501410097251764434746743161691520475360559282651974567030123536169640126488260046354932273980946535674967256113936031486070546011622188719097492280905810130245343589171810876213154021847381165913789166799792839927426657924088230411783477562020168576429108358063923447815307805017419687381778962815757736737095157342985042299782990946927764913683894195706266316469896990702686092379206127173081614589602144042915578510820406664778056016626698821749260905984274051977425307429315222512753751929944588361834828144989377484465896484537946833590294460330493385358931172160824688410732909544093323754773854386494420342446133625314429543900015025472509359717098481776916886835038279845995634118683107323512583501183623720393837802633651487758021479519240660933283970120001751354600988111652961888541466978919239180619980468832646268867476919048746536308105381908080195304664982475726605662536540041452264973696413720982759621014693232084263095627746953093192967594784192098120190691972784333183019786077933922795901016365832544811802140590501522134775027742643920305239267705376350595752851255956352712460820320616819776662295342354468308893407226173015564540095010243969331317512122267305551564138379127407405209150251121618485850116305271440906511817268860181583212835156018193039280964773318482620623821754688842666554296456050603955003768446738340358781085256998575561240927609856073322630075732751875623300879453890517895786973699413383109887626588712920008029109928811564122753515720090442667134368486126419231343120383066028308788068693162756808346779433214045487011831782673507199756990282857547984287102980254711724338209543254464702295428978430391446947804917776288785620875216409621509863631150905416589129651637318805473344821642299983506667326970489665144980575306127902662597112698051188265902406771129750933317557911254177170962456315606655689166703183883442131050008671579032073313581497956781666939732395260863979323644863215523653566699311788701224258040681439348936414762632669795243599687322563796321221226795305720491620571214129243470526423154061593002301133460960069848449321529913606127614386570808280362962162756590793543591683650765694602392165788822530688438437960580943709051397681629665757355296987816156375165038999735098318983577660795650087424488590730239893231926793860461125372632235825357479440094784288733959048221024254633297471049128679049910918565442555746734415452350576449098072703312679274782739848320320138018372782910693878063865546319989072911517359501918102873875174100533387359243162042201417838519042396207460671371260849749333699426155442338974134615595619705528496227699378888262795539960150815044751988520336942030299698955690459225176113430880173206373551573129175897086815181683301740115455041266808329325398921397367410495523997777974955537964736542894938615406391498168898433590209023498102517865299117944118142409292737592109262536262774179901226241841423315744763727056189081923458887043097473100701966923282106900862145599572686460265352599241404894766825967087661653680731699270387143728229538218704544588975351391204032228414614024398916200792912187765142341744741910706723128882429294936214381150402613189163274868893217130695473994611705869548210465297056935647359383390586274544600231601826022317576237526651286714036192918838800207993641377717388010385780365660897730877466367974977592776846251797499963290609244990598473728651353531400561535877012360140846075905603462435379841991219801345877776714273301066155896145212909743435269189368419355858567590266381073246307705056884053926720393589350415111606366376262514492184496040792963413055165800525976294471084222081314162428984240675899109044903562491388371494122165479292283941119274697342888817815726058775829319426516836936271881094397346380697823424653533853859933635714682327607841175479978853145909995935013475036163866730076574925266382642252721033471182286769570386419209449207710271052558204323148790008239025532550886947711123499202244711928921844830139974401282104032934630020176760749180289965455545083239608714939381255643172198176278747392204211414511634237608089690567647756403344162042211221307226794223135956482563452555418250277056134348089059258470684229811980031303914750097974245551542616320265797449027163701245498991623587977941033242960569584842560041873834110431521269443980791965922067602138896766792953201654508706830424010837701524439763294812470787317219973523096264907021794697208216886109483722865785533228642030166450885978368245429582490889314868944744285123431151733552590441854942834721245969976420060435731359488663553984343795685920900912761675637418471584585432718529447118376948552422495511415362810964890737281696719949495152426450312078887207323759830402095468697159572425719886159926121761037283049674690764573496583055197786176564280505571508380391682750550287091576183044615468000063881098394523382094849278432160660531046789001333846069862279846584910055035692334866722948020487176593000350661630577550253462354704064920949635048030968628032591504905272320080200792381801911049425738013183665183241477540347446237540385523563412434955125221750056442336108614257806630811795452094371678133450679784372359577192523235905401148733189509689151007117460937024225637358835974997824909047158405438045776525054934330637023271718980263372520247245675666223868811217798794916915802525720558192604898725009453487524841330073424057649669969588058705065059801498684061355120152485842164484653838994780312453916109539373852998314800102467174998244126722505693059205123863048485030147466271103281819581845139528510221708974455148928383033478440256216687417777898125597934188253310526305389811618143944809741437152362491678703604353250721792998417282066335375325544253036484661219283399814390088194384691328190170760538557518388086128255791727254872963044817063076669971327882400161250436371681280753366857824050088972497269725620950037680189618454239638629467678803991472045270671791910497517538967364015234717769918338093319797877772305149943671586484067784295643590885775611940952466983177763459872963054602573938512194738436708189366166784930607579434104157729482618293057721582532048132450095970555703069050612049137835588384505981199721342383505221025684450171561543570240923507610158323923901409073216364902321154112211854270875122021552842414234562488704615808540121346521150305719831934131693567941540448828249730119605409794595665580155487096332509722471464652215017361681393748515856032018379525646193202821898905576446368379514132082255912361033518554928838679498523656129725415701534914713970132284705783403402438642242429978805715373485333981192190888551162281598991562417871821665800576549510677370000200509210843625503682072950074874852002648184232261600286629106083634185160246242841265708574794858605367517062855152573481936436612835492004469215621122319901438122153150133236051477460863285650664348756808202674605048549551528901561674144081010071901157091437712284059119048643393033872350944761100064771947954445203176370508646393402662606474188574510459343500956788221970729663139127185590943470718775076037527594458593897769300279468493460620920661910819078441689438650428958259582791522057422220903106922051022213923876989175727622342522748072032214853526699643966380785625736126025746322287155833199785354101851053183556588781368231361277942318118504504917385582463066639738292040588280410833761029190879007465327852773015312791513350527077920750527215948848023578968766748734175852787704194054331552018942397898041749599634726186848400748642627997414710911547240609821168609367510408571397511336355892909330878448737277249716142185064810600679338794644332232136662386975577030288582243168094527245685247596305678893105307932321415657725319906997893837455317068843502555120973299291622148158539404136453260661931381699787828916908125419545269812250401658587607424144732245995762166468360121055758892553982302772229074451237327199150205561081573657357272566284629751208472493726288543777517794588520861612010392735101960631839222935238343817131449525865558654239469817362637908673650087688007978419143058767679833966872242548022923150672457143989767451642220665246069151685489787526835479279789566288371023057216366909078644601569499133916265019047772127645668159454155887138723333230734679693470742207366744467683266662305724231072225952566305070679514716947602943489810252768229591775197630774014298775841299549309393312257760811506858123761997646169439844483266127159745484000290554302536063190199851644420707386855451671363975438820832537444335272321144135906105275667065175863070493843780058505959719682599864857998423451790743976353204780227038573196124974954739997519047494785116355212988664258774664015901202687600761516933635511879351483946070171895797208830641852740390759882527930691274356184110478757262099761576408518147989233931401582482554521588965325227194409894381934644351358130779123770431444643822329871917796856656477008927495699702187126305692955213250474416195951930859068120604600397843480092724838614124059330976194521517194617823377970661736083604761342946317106035038372899749499759248535040687429332344723170794817618722093086058095786766978681829207483924066535056988603288847570801586074245493934778564900465196785090524567634791117347301508052359642987427049393314615192894285572591675774226914542705623504037412244394983372623678854049775204084280181315459551136316827498014116424304321615724776727808732698806450018568930718628850523855565318406965110650212792924830178742419952457239462587557895476115074511873243957181033620671103789501439818744756727020416536148119817130217196505910102803619414951842105544843258769521740938609218267163374802704496000548357970037564014120510273154734494383985625318473418830527679896386746369914126767588811405350366674017616216905663008552067281540578155505261776883160365897447800877290237637631570360048173477424447646739975464502922233359422927059830223418049423557405420193728623294362331989052541148183835125398899555747383141788876821229163322707390604359282025467967913744671496975743234202678356888592203566446802287360273006343796436256960066094632096756474809032686067857258261733218203817716603078164323952128669217031789855343446256391328308411996965515965277821493928403071546158884773672981011225840383412769367333410819361275844397541748539131021377285362634422213304194471142386096077523027152505978856092835247535773887582296784534560750251952315500493718440791350097853845613543707252594640570462810648000464771926745711022669433884922287346176965061310919002902423037242034148866398758284671836832468312112175988658668099951995342046311612008684925934125747701544976827588486462042559325757049179313314925893447166872531495048919181339253568357178239633911742331392442472478420001656192274431144029788505386102615630396624376693206588904007587942828856232299717557425056073238227388383548533265005159076721767995481175622288351403668982159816313035201484162572595306922516364890798694298890250868291637544536681574749708733567334252521176847035516182924698660338868119072724635702243615952471549913188732123471952346248955957143391775823167605259533824384179968691003123156589174674382321030034680830519776856772487281497796021674726878520671195576734542282236783219731400973916873594130528340511751407649240055443117252664423546662664444986125700156461596684031336061639019977909795868277308811268658146986330480585930389009862077582803072928288657857146960815994930222771468931244694319528227483808037787933493221540936614422065045403901838759052956072755509144244096643272196335344793305914351750683013851021271241166614109181706971578281323427246334043723397504820072326494609380690308152742395609772671153478783483361667667406561543535511980614721257425920359716097072465377800812894541138819595947297419759252323508856556497021052809900873251020330683446616904928372283150413142427031502267286590610285652666343488266186703948889666248057998229989366685997472326827731427988755285428298033549897190975704324732313733153630922917733093834134914382660851090858784276708893196020258261128796305447869975011241026016458168063648784624275571110191620607474684221740103231947048144664067846040204245524037242458052945613237354458568935192295900551179480072175119604165454886216471229982502155144751366477651838353275275930456513115895568063291297536744466126098008067956040966097024544542504935745411124720596904987505179827470469849408411094073836401085834358202187257595248924526464383429096138714537286333567409651787706750052747533903586707988654172477273852688630525550258918925403499990031332255394518425418371013864193155284619102777537882765978584186352575942561955791764702132742724562209436355894154932819596303979696250245811558223982966326704627389714240053401234966178553559439306824419282518481591106699233271333920519180838309286789266884059529486687895439306559468457170686740482796117758284278794653270674958526213293696524037056001752967970375902011698632639393550342799650989539800057373979402701997000757043739581381552553476541268712037822667538895177196962809814814668261564689614068108107711717250920882408923303906314883349848285914876457446729860060265187350940443699458066120043393508056859335607635045398148284138037715153910643323700094913698133176568519374725411125897705048775315136817988426943756329448493021327336771929652992429030685766288843919021885623802990787274436713229409177929220011954901020560007882568998483636965425846463935209505439081785296303784557047406659186137585754298067436047440426905418004409904502791631839610419494269064142487801959371832556992553188648214804133800553722585817797862994130613905207522643088103980288813296445244614330581533485269279577504672948287299557902227395392020269955836991028086795262847953818004699340024084349106679840492206905942471489447299799871185201289133870094270450579935605134798509403874417581345009876715552323688222755198274446078208914588846939038411090589985173112512154261812214340749379336556726007485939229370025596197994668698034087708669300798718347326972862352762987171052160884278377866503295403803917484228824592442245853112543714803697075228668144006098970331138489331682233384740004575669092674993095358522150840428929328404614653091879203418245130786794450950833733091940934285890742979363736228976774016791498145810680226882244216912941724123063535424558439316998082741162123536573905827684784074298067114796906277914923100329121667230553352357944661392550410583694278129648423107920364523012323325210091682746965768181052290239109406119502579476738486945812015631934461963806558341472498001389502632782333654848935561071225279500950461890647745552823552866237305378149252257044120266268522111916778824333731968681821130217661414170129826220734201551244743798147837702773392436935570089850300752088727508039777225930171930838353297617848005572647797012502498834621862443156480855645571885171911689836387333269887480754998095586629304697609755780386654180230320992304188334514046014222008416812568437900311866772002921710591162079844175825345931132343730099505026953039756527571065375845593601916940662297205088649811074326571344586493838838423706291145134463455840010982614642255208365811455732385555726130224455651468687249005696365729505512680550270847428646771644301448079610458553871762063895293842657050713018417791651391745044445091282772019032186954868406687975865984316773768975780435266390116152949162399632912002847585984415056515495354890586711298012939088613845292807603955513551657691755701807061510939282913363261743478266808766643841612072418440204016450712151459806976107093457262815471885674540168568310888198689476841596961006712585593086682058031473005278252854453450713640422811705651170410692345351776045663594165619387614227992006590041354088394873533846827843785461178690530435632127677156009393708342525330336870558080932910672652866430173959792009690170305665106753654114815124392220821548255011460294440532894918089555482520516277420974827562071747634864997668070078795152193465503904070172815818161911728048499781023772008398127444679898630692862795482746687697347782913096274577647652212001702575650268720793036648480288941374891804614968360273317842622565664775291299653537126554673784018420240149987370381262088882264739758782079877082840899447517734756696477481434253431434946678928843846282108352154444600838577361526666518761072010903105390390244015336016901565073914431588283754061718413758154412524089644833422766658251555813442976491819579521684534743377859150557740992257319849405208916442185518959235703878099044894098220432579917168807421240127435175576208732776680392766396656335322092105344562730088953538736734166308016237680676931309896610073760506006340737386832581861663148547282912754816275852188478477663726437824090302409390663292623043455149003804133926343260205072410757025116705286463283687998357309352659980925121010146844250374594011651239742697911952900728579163370174732852596241785230388018890705055174081876534943268427127711702152607600411722658064449048799742612857101762026882240266341764796691642110161219106727756656432837216006154540005278860340603540220840755970124872998991801642125045072027946114807431328693300944201003593881980360851185559983934341679316404897288549651623312809906016617928370673102217401477587959603671497417741534292860169301347846278342149834178256499476639194208410567205723168179028926590950436310584149119717246110132642290300692016041705199244029767839041689390537050833173144874056084977765621171256374313165242280628983971032436498440919215088245469784339855731738043691425304763420198495768947214602306037422379509853525716689045661913457939470795224154177916844287622540429451150045247831425673447712792552994698135484974819027008813739694672254869904681295472579614740827212703453782007191448698403288706911029176474271498046645709615967542377592699288806508122010690108173937769027342801265922544980775987332228054652185668401288224845930898251775071699838938483702490160792103087414094679615121297781225599354419512270770181780337641721973555358588060920947418732589047522814108353669709945661988940073324767223068333151813443246121138597703416201893232049838533082361058750866511947262085395101097263114548596692333363028427035810138813288898731715276216037487493947170978644067049181314236196093894297890697694007166610940416560161497955868378812288325434397840307822808202139444369306735080567788503517488891950466050935502662986853563652569498181797972875237083897132105329058077487930357555105161944101746595815926362009187658198795462964314487343597333750530256500409757872968795865293210391816952861419460783441898159424457957052669870297814205792015096964436826648143197686812952425520166876313577154826054792360621594843363328566969757662829342705904570673004370659185385250109855875814521973184561835412165067339632819406501185059312839471960098721463328444628129917661336270371663330754114655394855605457622404711233743648506521582248303648061152591838684033192657862880826021463983048575254943243257858286246516056271920551502234418283171535611064074099324755133628377704172929369776404776027715677123968252675146578705158324748837843160622918301791252725748601614571944209360076095416276264017865741279998986553640921394599573954186879682459587355433339089010876529107990267222349667611854187381826310924381223058935620641490034836745402895334999121583676062542709920037127190299989143797898603324664478590569478460030027976088961977901621807316521854346303066093345413845252882154058522424577748991813037234373899184098237169737202395517339435453086477637287254018689813638119173259745897894134453684807987068769066085415314221870271852448642589964564618848658427683717758619396384882831191012125196089580912313410034812099267903580854001186025615455749276308641715766741654182427192383370003158084683940708586298904769822334549790925104820343320022276983565866513285162157706483500958147397478171482666157751852291590273311671863271570650359433200026521558149708270450899652836491473928597619259514672012827289349397889454966070039575517497335580879629444502120461853667451654513632353508069306287191360267878531950693376473739248410523409685718267757331723022328329749769397517425388139259637416223379767246018508263028546996563543091665971468848042351736849179469645168262083592583418611262759240553980951493722329768041835865270950645249463643004456277186147609698223033430507583528311486343215915905262662471070531242875939763925632242147747516879224587763309448800235383120835903337724942080370701555143095745691989030894737289821562889910682449364774979675892658607355791120582021352601092846716064528037705123049474746392938049147319152906333931559921637224066565206983699541465048669410288993606646425859154732449481165026569731287089373594228084518293020100615240497948522620227795688159524311665821207608973464247393173589551446874613522826365681786043526035292644158274647745434199361956977546110929292696672384205614306675179828430228720944600781548034711451511215434825477744207579363362692745571382058092439177108978886547299687714338315630668553237964916487656968895298378773572879276576123817307956849470260428705483139710027478383496665955900844679871374047151699560730363145703042786865498178157037688680173429355282191893670689715188603564255842281211157385642210642638451326692045916760180886575476922974786525587188128624254026972444509194229674455366565916899318399871122839876638321029667361353355312276954833467946529044805907746969009759848040138797534480071750673559886305559252481918044217595998193826326064467446263990666631676347429799061374226434821722401736121871852930636437792345082154648368962102178692008031446960107915034704819704098549367545753484764409683224859693165506567379681892909540210759051801613428004784350618195586423408327915113563094811605309060029232093949492610145048854387410081312664317544713076037319893434954356568514285785298709558268042710513479705401896218188885067458067071914287584874719798533789754528341195707850399613090602056001505636283027391831016069843390672407644176304504025220550010740718833613952686134373256720043506089712011177288968802201530576287564464109182753027820629971164773896180942373821289709639283618058935602325184462070544489087274601394987369765025523512186310128540866069352632228171159329932193250416283047681417955286243449843573827738668679853735616072812903313834280671770370971621936098121867078314013826756943717107700251939972730562616501910457584166072218530259293727613882090473783684947187271823089054237665717123437118644645978701493958632459059036327110208622636785706831824962683722304806106470750133174007714596185386272709698518724166898329191724850328191610168411884432430679827977024080343089891493220394695512006876369006033927003093705874525820238860967941984343880552527170743799031925294695405635715012747923234755629408406212326472171668614297450828942936696116204513303019057166330720081340347792413206430874490418842135175512421926522809488463022781667278715088519055032081351134922010829000246030636804038094599560340838165654228266136525358438688543794868838203418444859382451142503737430861242840917049097631088940692382007960175442589100530195139952901018663254146003314296392164445058141919250764813149346059666158807053303766043442020880686916438356101913912443769933032720257648423287663477926601184617982082297476773436682671574207381547383856943573112836299504365942508829972575935847002914967488012186526662862469293094466338911300523572826961300169598695455929560919885014079552669818494649788390793682037780485887410171234935102452545569331644188191373446255852842679538590123240877804813688162368665149206588393381189220560298758752965675427795268664627271730666586236242386726635881973624497816906830010652357468085237810180977575452612037329984110582749768071120225470332027887068875139315267309516100677173409212981638244306006976402541530065168576070050835374055454725477672402479381895718824041544554767039696611670600405657506680486908354528736915850868116897621838096415482569806449706076878869123370253847864848517055699279499147555614309007378099622037085299581791249416271516011872715666289659488646108252905106195412259862502902401817926607775602483017175408060447946215661980216404156285386831119381881204700228491329148533943000564969751485419032316316297630039287718307664428711278778963321188881293987191824438251824686790595115273692259706523283908987318363100750433677016203030132572584007616037522718741923805226541352634811613877061115732633373839480755206546462929031758267132929211543245787248213223990632823010439683018430808945403781838583807403669618115523300765729920076999064094656188521424564513900168131288478637710534618982115833303038949410165450010141219105921317950096928518404825944214821786476632185904131932145949461535852205205353817811639563694279525446543332656719534260750044528472292905582982786482515852393704041151023981568079633979160677035758722723793663628401391601754968054936862817131912164352250393671154366852926843009292444152629946197265908897135738121987487347022667090441908975797128974575206365986421915496962441757489031090379160631959049493442814055829454958751949511619736148210394367913234349744436435754169191640818162451197950257435253612487934872493250543900899424819580099281353543380480335939536116258001657081274385704698642949278822475514169947323836774668014714059518429949172567751128722564493386094554037321018543344641889274732021514781955110437726312849825713963124379641520361774595691778997190395861879037364019645800657810814944029321136325064230295324751948518939787290345224604135682477769191395529769930329733743660410801839146453277233390862397464392830972226547015818107859129248385284253643662778142807094411696589038547683910955723011722489318789924302554728329080941119976889031044241161431056281559974547679536675681399674440043399420775695576933223940341073621487481564433695259543901855738097102841430151974615952428647154771170864073855009751639421974134376779495966965463216233434403446703216668797393594212117501302704905977297082170820194877158606618969301866264934085499867673481043299660050498677645505306977833114785686153484587972086946962742262095029270966387921956146663892361134031279814149219973453851065968390668899825473471293165928561246658395416628626990310298672645430053766089992118676268441872963335485607961566876319524423237952619095066078735906570168108791862073112300317626392399317542846073656081616495714465475564035366175093773576349893339470163259111923535709639314966191369940610532840926454841647160902289310573946688572650574501748342946407382274919729357566458550064203677782293193136004136548344301285827553167716323576543957625920920058996423817479886270385180403888597154634791881374474993387288762354618686603735396517176697391928027080245140627895846984513790719700968552782920653660670039045135857045373035427332541785054708531677472033439259165424552852749677889018617475875032791914623181997511791087167932828791266373600539159482928320741895055709698838007752135206221900451660444392884029748181090928529121673496603436437145695700572451988575217268232246644546938037370798740711548479059022076047570253213267819717972104608177581842952920680846460975626811392064055186393085499880232213715668930029857382758119206837802572335191210135212203616631210298810691396550477969352169715527474461643462306691778594103491230569014035316002159974128325427386498636988216303046165113786395477884273896907910108122374249399767499571060439905346954191831959632438043399218261874642990895107318643889964145384316719754744786838647570057245197694059380392184229655364471124470315728511721682304357943513568206506634373796285162422219393032790358814506258056187022304841650271409343804584507793333748899943825142882367036311465584001170461719970674542759760131984745022079402900960444590189009222440621634046794982626174524686995217677846244602213620253263906509444240661981112297973343806269787887961342418524299089468532579718091122633781140411098324585779893088871636574208971903596825402762266213684785548541015679074412690879421225499450934255209904823476714319588114581329024421537461775406914531324684595809009215820024285111886324468998848841187383432985935617571925363491274488732630396334333569521342664611871857394483653530186957238609593457711831447059907848092193753493384665190267475373495068341826268604774651110007837404043069447299619134709475180485869774719949316525376054438840429540652773086556970661629908540553375748394869956944510050834111374124846208604111337841225304356844292467506722468875523441620240481005144218086445289601337634909605951667711934513461926848713454897398024923573381162012485120706862157918990728370907191943187299074710957201055741579338197248991547984685288753645587674104633345332219793784892128114158580616080121380726201212945702677387932348041731086160251641709926769347771655187451717052874333162217061149210481495655200998891367040164064974894743887445846794494416297636033292239155012159977208946073926764706254697470394068089731701026158137415375181950768837031981786040364422551594734008810542294457575751331717207441908539400222690047766220882569842582656495961711961236670408782549123519228078440732800122023663423692810994996594322373960368678284697708945996014120467460856238169302333829996946396910537056425450393543994360607830098921717591025887588767145347340823498473742240853747920385842339387607137990252565884545187318608572925828639697575141607022112982969962203859054152318062658214522330899892478396362005289459299982037972883082274668871186668099021270578710578471575226317679829198262926470901034630216053063983963629026954702080443307694980478804699200822533662419743640962801975581679245991341939559951123083198609296973256073512675154952617825747789084189747569094771673395519323841624925770542456276715040534082753554802336071880455330871444948985927253652826088441778595723740566488712720670988040910941782589254830568442766410381486755998721590161134292227408255055544593449908818673259201229271523072622062263073578548560183813995180755247479915648931517824053894815871630286064916564713904251072698018538014091449801234040443434366084910198519174509034148808421121431162408542432667521349631446817421290445336021840639732527177960690547076130787595308016515278168783822697150656591820722800109366413695025961471845914270506519641388079069321464618214629062191798935982942190821445915570835869594711816388260124236319689302096562577228241627451228216299794190314564784988912103866582156989916233434963126614189205540450286587542862258596442181746444385311583377251664427568031626725238763601372311368463030893413762562399365237365451275422990331206805613291122898630276618240143612826375426164378487787911620348803817132943459620219629082714808499357413727090631177716459132010762224719544805601003459120416316222353635768225262882330275639593351847046978560925584182829705781610311436719285843466179483672010642730167739184228763508378044560770748433089981262995688896810497376387827205478513245768045450012416542142792666320627453822473721861743309484820164065813685499224053250583166186705659606282421410524369609097430691756381352598201499279942362147913236515176209427337615329300074131309749411970090757410670729412441942525322224891474467659803499423221671393690881716954825930961285250179589684534571463949998692213196721950650141657323131888946544076853972638383303453884682510144658038263707897712089524889867226484739575375016426531401658876424612139844278032010546296945758147409847319440266766173346414445771560999082237170428511255543923903808266186098272519976178084590131692008887214398556521564486423194606474934385147219801510624314230433628753853655337177276691126162087867905791797213449540102417235809039976359956161188491179114343126124898506994458933072062471279881885995632404277163779915527895903202285046021476658848762292776405777695679208902482395922299517801550963551772501236508578850011907651343477425217622896289320224467239894024607712967665634290783658033227001705496242226918960149784732370478871090129437802848633474525927650478538457728274358883720021379822738546114526689700583818331390627549144273341970623111226201850619120391071698357977231302986222536816795208604889723866858115321875538457612543131217862380646696473817814968362839694464797192216472204637439352615865976271133594523663869975157018436419780444390129340725470271672537901098698937864489741765389427993773071935953378090935605017961585829035783294443421603929662130234515401476518660455147203216953534946340230067201985890888670210338834712440078568989409977469751723518749912216653699438035852283260657925660191820096738279445098127491681299852291490806814346575762106186265082492660372549015011739359518463507677021280755468370144847649279272676592486615621718558804630856166455772215613751800536636746188619836915883619276323764630159433121235269378400430997739220186939620628443244664875075474623501163884925520582757559563653821323873303843249073574501967520353484874391601484984214805836642440792504776422085680384929749029904360186686128300361645485259082661275317980411676224010169159056107028073789059912863010882388990706486937600934384959880186913270387912203320203550445297859180410429275227024212099517165058903778413127067308825362641805804231401894790259903675495482280487661130583402358069598133539966049053243323150740092192078373783832915723634425860440893065456924921051430061503564184371067225206731356681648970088462295716062390264560457687265337877197864549969037028620955108493846215325785592508421572672359576257058059633070557833680281607496965887123182004506850128299141710561872635256552241902786326951179570265796326552257962594976000612132699834788457372361062615821156460761262105880985862276228621344781404778908794332122889262131265177684348650771278961325434930349200205904284037641551915703700373055620408592920140145431332303340963053722381639099432349287136778887826247477026169621849363597463754346396802574662513262760860769988195211708342947480011478354455746752902249023052828879932956877679418503379619765817678756716253744882753688044666614285322468873334351439176817164133538083872547024113899171627789041359831793243540483697270167304809034315287251717622998838979773674478747222148128649076684106711099661154279491127685283668368733898106337609805190009539546707522623658534941688974881126775155424249847524981082968031897322891147417965754930483140062559115756668099407547858589157718966325842960469028249452431855974357610765950790991851127143606953015998336297197334592993186431728200487672613587383898028340337809934498605544418550381023086392163287271412078229983540353916110676762859355226560647941649243825803665876716400838411721562792509502585334640110155774569120426089518310090554874694713937423738035334586372567110356089414793365151973752041579843430101083526102053109079420684597167395661978341447454664022340231250771349539008481836507417408272889114900711329160577876667121917223157125639367455368836492800683777580045770278886239974951703457031268132363371037214707482899067806764539980464933063140490815215146854257201907634645066718774467228000712833545771324342705264724578649417643568096822793826706221521358140095889693918523288566995627508468011743174586051434398251353494575941253476835411046987885694977283570571497600123579429410722915045738533494048940809100788170520016547540785350077788520293368532703377470848399426526715849477976646790525076755359970051403396769578782865494432456671981587056699928247855362119323730216763426351209011829267616968138840157341641051119646115892672274019935927667492741044462331201904450164539061132471725324087570759309933701366179352406823798135982994592068170296452865255727498771170237266367828601935817230912765054409381651341822173019405823073203919799943850065567811101895848210313046316387813813393812855371317959591129154113955536189860692790621668225093068968203392890720164266605369820024611355205426665392714634916573366900719191124672759435995207102460507367339597452711745880071717175089331951189801097709973297857136933277431448977674389323507915132505093520937206374457135529885388537170095055147227635182495525007777950155930551095171263499156993628285389304730699470036247389636423369226570590211030385910629725176128027832788340489612972379386450649537601599083449464977676711597780649643424998338333640483699893592792109060972245399138274815215679201992693500742602369796655947467109312633325543202634730168070201656271411461936180290395534731853947107442036514737869139957481412407303517238445680243133943341708130703270362670589425453550605147013374647363984226378064448271500210994733897167962991953953608157258979715342351449089125286137327911096133577405703899765069673107644101294275550212736492649185166020054830851503369217856306409477230020777903238841878923699280849946132877772710973965240624614545015318105883585286675635629021802174995374655044307377708358541639559361802000759931220654715253977333568839406909446543207620066144776729219789203940295861122309534991384092637584583418283514394416792558322890249340662473799714735506488087571154227397297616125435037865277014499493289004891865375752637817812593350008376913616431998016179858491679835554431423607144289419717513618990447490280721785835164139294061532887885337806917349230772360394085420953590659872418319205885195943328968363062024268002260839465160963993224930563081697865823661926272502795150998169871917423081404265365334322856289719671359586483090218974453493040571372688613680266211476083659078370260274875656867048161928299779231822924951403279680919002618180296918789534169392776727264652625842285180782527728794698936491703313123666667389711505485779612062741111198203044293477968928147319019521691364804350212240921460971581696984590163728109593025021857272809104308293932675605817392627695876959623168276134910951876339266266312559174322470348813160862185479956874942776197756276135993435697331288938336309561937006056745897015276096603788933764934148444330819176318708194122013577707637354525737724733525243793481439045234557440094374132769436470666577015711263869954334621849364271343734855930706289458928839285876818670978539513339362348175278030855501858192168159938719507162273795379192114023196988238731269653276734777221894255773533202884092963472554677379496357163303919545836127182350605234704748926446015107408761993197948523969423525988391206437935253195283367595725580848036059967056070700473687686152060972708450284933571300405358548860247623589748174977934909702650330915234849586440866050568476129344238014798837113748624585107914349032534780663216844127058914172630747652297249034831694688271306464314651916029121411018515425282821639864307986014992430683395288152539202378176106533827323231086892107510150444660463789443234453666187444351178781140070703661402067090687751347824389762043787391797135095299415227616947092227735505304717317337732359072028138007712508069284347259205836588104773038445203722817193151144316155105308055976842578185872820564083041834667577866814189079088510444305451696213887886104130290742292870520730625943244121243438852838290481669279611098434368656861245739186112911671091835211436433329424291456649584467445676320010291795719812623407063454724274004683496061548559372830293764910061051062769228520755823195643277223248595380164384800919361546427079574049614890594377919861785010884831428718483291124841233549201877333874865228117196889599996966147413737882501655368468227565943930432853807080806665852058260159489313977886786241140421248970626135134280546574503401847862914977599091417631473239266040111133074852637580403320664317715043627516332363868193995206059347001424596090871301645912340423022547626369263560948772089963887043215149595031169151238782693038970994125831492929742074506879449480102344450126368400271121710725955427582842421847222083762801480285356556825953011200011124049556302742332276257782040608152695957629908711006188720422116790503872400887197337710869009283892439553062293920366665176593487529799618004913805167334288723657007245912571916988739821456089778925269848051517038310702118183706035736221295590766669744562844207527080130420214675515392367350229160340505180772532891797354119518239946560815921552980050052928363918428870256392508958730303798676608331278881725396977452443451963252125983638373849479425867249348768284735664993204589312210795973054567925445548637532993773358596122070233733208046844663150444019282831526714440800407218259076357589237900369013217684185142954698435749117366553992202212435982899292586693422990575346449261408715881331976485238042905248411995555447954351617077508442563361317938704883071032771485521478798736010074273135433526059518005761825926292648393989775056750179062862347837293162610535857928978722481413523978903528150458380917988139920380548035728061476673459114353460449849934440245665420602028948109469044339419963135454816251764719640011552387776182192861975650985074046972531408326172138817762285556179551914850389771312352054433672244369998436304701884221450596986292039955222819800120150988150394906344052793857401673350120282410257164355926940215383527702671704723415602325092366853635042047232822524339223448481309564981113901904793117126310259812754902963914861289089443597996522811881579606998826092932065004228698705281098482678420734789415350025391810442244977988952076079822228006858234484099330692815499186888599934559058709643250480215902691409440991201345464363909680237963523061472047762674001840249529903055924569950034361070201656889723635122513745554286068218322995206215283385769410919907584396889534475893700891064235411903232369311345048933383897465926511414269295250778377095185314899631421254898172091450380354102329575698095830833963741670074362587846075488285098670390665332314452102621245126812936104226725679504480933449238060000738826702755652364620185827862864927199249324795774025629209286200490910503821461835650888247450295593457474306285098645212585517576726513809380142080898436879651800614611229065893653980855612892471614568085146743076138544908115900847987701584051995799113576095123114190209101952649296379943333886813219847893382080586837660031772628156849880317497004805724820992268440694659324047826194333862022815561317338147008249383235539359113145884509178750213018919136828309487112332502456495654400800100689262836162368299080522634186963138606173924069503856526188068542835932788007115284671662421984821191183993285729992196645308015382243738086573987647445165778306134378370956153702444276091547173710228931484791000474651476815249342419694950604501274001073108244198278838861410365386478455064797168445370167020343208514600746127396878194119367404550674857618625704519204966654723706016015322524004619550448195757839868734095611446508839562762733301865897186235812334176407487194561498019408462823951617802055679570123863336383648102355964746338604372869789081493630702223547406151997892985532523705386218425736015769208619529079195606273662981158600975082379491341853716689678831508153525281505135539591960743760731725678675100775030960147928285392300951019472933058219987052113361760990810253918689059977085322182327532943814368526679939698001587169118745713852947314238391469953037400667797735214786051798070149285025561945289629037328242439023737012448021468392223228349400812828210726418113422326647441220888641278297063625350458095128046692201210756669985248617648511390265116812875520046545068740651200579607787552595877904929664589612614899833424678038254062908953349746044344407465322257012080103896342801672444199628758301669864248340108002829736200035127344443611631560712293896862418482049438874989320017170583627617620481918426781881067303703562186170108357080455926132200957664972840086398753021048852561318620763636075054546563941284747273343613640087217357983278261725122634230643577517115998550281204962511856506070346357569340756919960284855411607229367196209716048822146828661101723938525908379388973259960114745582884610908115366417674956324940310757568032850370984563298326418500849796529029991672085008931393502027022153899940887131940499535030177589918239776511610654121491677327591627473427730539450833822574396544984797059236231015385126617393315603280865111148460563247867029056358553504894228206114314303884806314368257978926852330220416548925396153124447663911224659673286832437163759482747326151518421006718995140576512579662758982687212519550503147141435709659201183502350387331695390897404584059941557638687762752284497102654229307175116087719539498186293178677544554769658280761139558067723537465691950060245220546428652109235160850588303695345419447519242888393884849149882364181653162457327053212188091616579784866270327314204493838527576869680322620204184514809476487672726387927466035517546242356339646672177691406382617223729322826628901899966486005110593753418161475453118529725246534973342125431348449401466172731842624525677947246107939078908164670984071809547034213011087185740296443021612957303620942136840037653742738291455635325704954473019226778739714064859202119815301140747520099113534665701561719485196701825471870502697444989973853439144537738349801629082694169826928526308052551949591433671577371090262680292642410041668416268597245782202207324471824654458814466069239357786599980847274591902482279619007431453820746967865894994126704445709245100616539771948589552432719410982342908271582645792841359025034680346901937007442948319298607481795002584592244493658411493353644495417654241650737184899313979760121853231116719324100177297452094673377380530860137608261142901804083110629873516537498416450993467576136037246436287203946100240956531041026605547243713891850191127406752648616175431632146680237231557340638329197151915398096326518633931279400994609787017366042958588698749970673637856214357289576157093836811842684533268372441099464150518442344051877842580985393426250184510411034583464569371084795694659357856866897869490331150284773531676451333753815882554947627770620155521717522602128947367646904145334275730847764027551618599665054111462358773860235144810788742827584329256508048780913530861059619417435024998622758488813341837432498266271515676010424182518140028515461107575541871820468772933974926960500626362618558205898258832078759815463193249638119703247953176733366270022697472038071986160888744616986919131584738517297921009022438676239036984553910298375717571400998735845627370672057384575744354546331849322312376517629460355043819520927197800633580582048724204660970144563284819816531886430287743718082265779091382321389706107974200717896881028545040191858849748442500832475493122994015468181704213592951722721434438416261592161022658981500986987240535314310792442954307682553236972450282791751647554053547291131504158512953779695499913576516164507897991451438245399213499059219038043842567871363726872108309843704273589751545949621372944457302487825854888857944553720814823362524333829698425926963037051367836612431337635525781880774532865657699967586949081229589886066534920131554829330232514082829170321710796676980193846825151990364304219816941954426751954635801280719560991428490554074610807393950215959106568462767216306193547057866519040512641552324966685060075906909466367755325872381611525876189017344872844199324776971513723537198105377326421511318339639524466454481984714968077320576913766252347720687816143396170440307503018294096397270785927029301648806266106286744708050284263763144900653987452097147958682962903250641607658426675658610093631063525264526760497901233699339337327599546272020285588559755485141009467587810755301196462700354766505519960670516452753849761584555014786912288193817595854358545800203416159487005122971738583331879426933948780074099868493158783901236666561250762391264759570094029946181973023308505988187446295847019728518260633610727127536065309032394317282923059878036241738324073465549128054828683181401137591575720592329956751740892407481174144614026979183458749519071596073551055271286042438819741112315917541760126478266622278398478942802856305324695994739377703603369805897242479460069874365364381810133149528476626901864627564771405250557459493406803029577216671435282806111859659226095476053487715157250223970862216036185250586268222355456538307524206755980873631918236085609756578300004205170747896675034429205668678773588115235225629664536435927153879435659156951932674643146974791293147687211417522197105710209231928965517345477056539863030171738308273781432077018460075707174392952111735967843176652968672333484155149914094668016907865566415993716699841532178630339550360884064307462643919921627843840143100213591184338080976314038560196937034439678480255401817174690063987682351546504794541492366239156946566041536904917941089667827663968429727944742765452112351926356060779066808776873508972607396954142939334241402037064090256071397700286174221144612255037145113184208575011174711992157864728209246101653668107693659164307516925781182456857271670891778737887417333710058941845334022192048145731100439565032541148395613443216129543283472043523010048771303863278149301591460257869883120891269364144238025360767938403381285487947638981638264129995311765717433249318120216956942478612970099626737474097779591287295848425880183195933166459204076327050373222024281115336827790936230124289046160001123973059897896035389069179346768509329127216466864559446958402916051074703240737184072673692482601611175337635319380613394789670165921172657240986476302645686661440410323930381745022779831270928144181043122880000100233959722017746885477233572142136788633928204889499189375688174155591323352732845781891204282270165274879035152962054128175111305790873596836950718988707153608826642913882001488246767234063461026345977051023081316493801528717565294306388779472452296425244019320435886276039381110130663966921311179854331732267763699917382031697178415502726227921932887932671008499041098312171254669331104937379479243008103805852541499581095113620258678394794395608279636736815480254301280951581027581701174538194367148880588958519104295442079376782693048750564618645846720111769511721929598621834498505073424040190846706510699928777754435208885086344702466919359827839611619315914264401649384766616698658157630064651473749087364180125933964734365142902025356912790248641435679564677905191432422641361648365075612801925941936184187102920208966570802640737811816784046029797211441056993708250878061023687181154786406469148712587570201007529198749863496361074207114096707060314560746001871722227212723309310525108252331977196819339305532345965442272878088258591358823579409449906019810996244112592897847982853821642008203247436171435210980617164445629948473053123974626629588444819859125335732928443389133624899556610574327199056617229424538906251867141529906124953003297588362933037084015222945963411325896703514978966357421066498128777977422068876019975045865713110678087823311115302413533744132709080221010458369859349366297831618040302183017181407258507594289650028451977362415449845810119982166694951713308640416369728820306136975091085400281429582463551090726329178251584683178426080136641829598553019604155621556356241636580593665073182243686715140891938600112035687173951428863398223077985782452070887801816146530448725803271180349817677457117312261425849251178365016905228386757895679213748085111172024240968569934760670697584314322773102668292531202240970607502358538858735437271781108751069042044361012296606513553788989478698291354120382399097658556289376319124296148352165548551273841934504200060085022145188753196924138302610748498896866816993993467003269640483268604143257214549213451798435428297275178001297112377532087835591281101522984975250014952163575023089077035959584803242881560370073978373333810941738941884527243001811025002062197079246974344824986226011784988573786165082603138635863799426368057284102553490002622424894212731754683129409127144695266991136097718708997426213944433159551987165378277680290221761241736031744388117978419854212031916931930032571369215933052799989187975701238353487692788943755584367465435461204802550450893079135187906446523445460459728821047516182771403924081564038677640271842806618087951324069360639154757099468406387150322133498096121382416541895106407576456612441276882644809821262818152541838681413168385220371905266126571635335007845504760624801553620709304912730603757128377647704196923823677143692402829181270628464393716123792283166002962025706343615195642615367973762340206988627791980135216005740507154433540983471441801321303308390714534175900405848132524334428188300033353693531197318017231905733185177287378546973274138631913739743321021490378093591318513989129130258522047762717473467742955028721332544859295865242923193061922763819174084889706510521938145623610331258435994054034956510698105174560504945151989993341640529504070149133466608200909895072615318934057658456395469069343428541930908154216979691861459554070340210628100239403565317730783954752689753136486254830014788118758533026558784012953295101411296129820967574247301224455290030757623909839626760898864929859692805377061585488507260407387744262391580491445563886546144706610715144880579688472898843148831661492477002389578602197824288559473815830398565657872186231180221375615067507703409410145393624773146188306642510440374579859025788661287007445098050148946176399978854756337642192305798556194985146940806501183749369443241031636162941198881946849958901850410792987003148628210854472465919030452087569970418663516210071908358665641111700233421489637461354549378895252010472687211482807938018277854069346929221022837986257411098528074730167318291263684953679310580355420010605970243199276876944842321587489483782732190693326406541549000398018586377973123540005422800966118215907770869129450509413106308855106682791154032820192744566118335466769039310847926277410520072152005867531965910253259516103146990957761646592846635289716332757732749901387259478146918173516718830206920130344154370740679927843576983720980123839434522676767340198659644153691448157820835678777687320459940354404550241344819058894156656661881559694657159355969913572115374044879827421191324303505473361425099547324172312308460205040153347543671998846800693720361602042373040621501883376153013785679620215005038484792769491992265205408607972319260453438740579436585658269082990487356652572934225045934549511448719179686188325157646278735573109442347318162320614227180237464291856306541490878994102225006200420397485597876454807472178648138970031333229904349855519311625951505742895254216662273225413433012744162619092331487543488741887868482524249443754748029472695150050464782919304954292632591343450328295390069313288159221925538427778041415446242141112008057683974717233090677595194734768960244105060679659335729316870439846266946930412053870604611971738215186799454052787153823350347883683984330485487221437503867399467495815527083509672642038562602844738662584324243571399450330090037908414284342281546809264774961633934127484615254306776102960713843484082297438120602082102211748827281199021624849387451114801656296946632985280471322269695396425045525232163169418009502159201496788722102040737954332435537239558783199315346417236194975126506332273943313498498962450399483986253931581934988672945897836223740235215611075433253213885647795631773013508260372804600622184030993371862495398331868556037044165664086691340980209636862075131381659324413563886318774990219506982880870144177313744623817577054249911000255194501093561309416860411281655713426378389552463485865004132655378467901072217800401929471966498101570478168217650836831969735477478003508855752852314705865753800076678284530726153714072526495829178353763154242714367271941270563846267735851939186457722953679694002285529962386262349086825077745379397033792334980780238321043082989360066135731074965281956395143213729712389596772050791460968627332601500371383944487936905533975462181681606826407335261822363782132282684596459718964102080557884250406438516058747250504428550116227124568153526756737759446293441855030445953628180800801734145277883749707710959481808255487421658468020325174981552561247934415448666736793225202678469186010333745724221466975920456781349328568596600523513838381873890539121459292991303401309089209689587449220017803859083574003957800445409744884122008069680772305096538075117848931187156758218583898377747406958892381180499429284895651241897494247390689834495176374974379679502875646860385474969616421895795890871878280441800851953527084108109181904385186545610018377267817799322256682102982139675903263341841412491697414955954117456349172064542118915695816842492204855676816591991196121716694286987086541895489165445418885928053723788699030096015924276630611436627803978570909269657680592716954328694843712083811136402768250088244376433240996039514793420566187168527240075583111739957838188091178354195654487886946580437343629204061636984708111320139902530436363736285350605136802197971125299920882192272078220743333373629745559134953335238546747576213737197435795150348305746301223154394110594001992635601735391804958553793254115525892438585929500341144420563148698260490906979253601641151806320961463709495631417256600810356526230348142240259447048695440838770030892988045145886777110656481147935163493968680335681016551856414638720487889815779410632194041702202661900069131110127287651513632423311467904959304044237344033449547226165983005729706360630704935116052876167045235461065730525519229660572016903987887280786936481934681996585600100480990361323567942078363943258201625725373927685962172330663662207828838170524796354218235351408577588187734583216060471105891836545169839040586309486837768942107950546237142143900629613387093899679157543017807468881957691544795660855746667143657078047401453248407524779020843830391277011038293421523905654698286474141943309709029496506110880188269963703204050634892694330776603871630072134159610193315915973393508974491915045299765120570354186926939398481520040803353673295693552985527767073616218159093835458173186088894761702425549490921573352103170772058927451728087718170839028851244287523093261521848568197091644155907515581643127693228271262940547212393206390494166994715442904594907437542359515373964269660010198253004619970106154495288434065932470565513136885010273771778997384526579342136699142796396332084633791867459864357781058043957735350565777421029249368588318854424312630280595829172038694036664669051816820545152528774545792491919635884420294756883147882004909004297102117661689283714180940808479530765950360431979939777753400986763051875765409819880762255348537636092842050303516269050904435718383895799314073284202621321223553952367298860138147411033614339738281032172127896800576860411091885952607976902568139656713299867014078375450904645415590284434775564142293216233210405464272016810413032815600130261242628148521149338849668720618751987429440008773275502274578062855863785757540355774807503006693024454810855557597559701643154649395003690150349402156351879228050015178557638011018514307092631375300590335598578951389366325409481931863888001635457145892718425554759637777710532753049222619561417184979380526308380804172758116447918359231698558178353728887860265423424411981754240227454148735321642270315894863819321844590910195510825952477220723142936116109562953220518589837963779238036811902591960398089045431600683086267762184419906568415859933590516174507943402484929357267996557394963757256117671408374681159705083407465751448529144421874151181119729515700981684727523780792156810426028049502305286538264178631287834381530963780461283920254371034687457619484159725981876459685216416632837632303433266956281206490747757645956922337841250622355866914729858566319117897971551543174695826770596074203702450094585237310736928516194170732592632208854376555782581795100661525518539804678991816800343494097273528378569217580027089556234964400838486170148934288104762056671673895646082123224232270020977817975150159531333128962311094279304302534001763900067670749974986488219868506916408218227447303130580134758914333123322544703441187639883751428036394545458217896264531141299894342148224323585085442987215805067618474531616702355401662750271753427703497861983853972884432649481285904592273665356052709513429577807069691033562577302711062005861415579489253679137899595161444671991610164748868739239996035617191980120220242392227252779832420400841110799903121091464445019072506573702665430838601822762916778169135919219628571587892921695972711651891216207599439407488802713402360875603556184500862554087505886263824567658437221713746368731617651967159408689891816899620770320866391197035982285936945711944927463280696222099219464669352024454122729950237164311113570696463467447754808117142291564255104022102414049838405111914784987498402213907125161691925045492063859889710062597624295881441167378746123459329427157043289883913393963521836362599827459183275984488982578869535358152460552100264048448193287770228708024985456798599602426019645582018120454336994720725770652528787987878964120338175298714521514215731627421677163415487210030241876463342777954876905946505067225025527087111717537212338079057375920703894030110353671662700404845299137747129890444182770381517225358492928670228563623473353611136293025718995611274503153915790062371787794575722293688489605554923497223847344628604607295279453435396454264359365888704190575966924420479208793636656156316880190402495783586796184005365401177861595007264231556560361488685104434953021026453381705537019586653420753517892564309781319914033590440035577641905507995721390001540872637361509340678841040440525835190654333656453491406786380002130703009397506400361536701242946391092529992624924657694357772208578627863404090779571789586975300875895564656124662681985807577023096099256230523934479679664541168806631007704194865437027474410198552189149125192965731120898312038490905476496256367749798156569723038449241788451875477262274041175182887161204876144906924238399272751015211764133189885403631168838288616386249160109511356542575345835374235409492471146737190383706623748433122413406237862417538422844054728891771810160943711713244570181449306597672297500705670962645267837319826766358532050625506184376368848287246887536981766012370587503230841732195628379567682523841934571857693737349256663565179598511061452720461187406022343221886813668083313585186087584366143578536347100545830728700610056970447137296050849098128238392760830591843342791279684149968599678045978592650649525859691955144162505851691179631862459233296959072770675064842951071879267696340401214533056913714743662373766370148266897547502796726388186623394281077739180567098047853927589912145573069229523460595518115461575564185583556442410688444208874533728692763694787502312222997413095887467009316221867363805094216721472576085836886607549890338110023092647870680927030763162340931832022160439222931470363144124470201417310762344927653092590554363919777060105056198250039900161102665851962848195311004724185363047973657574084262071805777492950288728330775101130818188398524322590398340478721491157540002616919686432404883422699237055569390392891745700520821495475352792508325750221393785627400899957152280496955901009184286838139542201361148055449951467150304167874119332517279121202996674497853308047173922243901064236585385321127791660268769668494986653774356016477089815146270360075503045651568332572777378477650084803029296707718634847144850547826064208969672240439372711392971815242073690637996444994188552243145975632855798706631591255110165136045883789518917910189700834535523219781206410028151068673971175513827020862899166880506687806056767129316039273877668617484863725021156915498248406667737289257709431822167897121590122350176466562770945515257597224117737715293072853438600443466124774932554142654553023551341376593980302312568327936769175952038443803500106588543029992154304177179962105298778313874671263521557402662841022636690604293575032906343566181253099747622790168613871585744441731550180667901633502640388009004218287522871440482470083342268123778030405329720894351125262950054532592577851263357065130172572622178290538445736665308660147434566172184522490328475529526057235178958094348407021847892197178960380512219678493138825433378176815842848498641269539409543044074026797818460080894220661352745353095817787980340133578372301888122414289498860527738809771350991808451432516579450839730219117543898635332461963730529258865216641135799167049051969485493318464652894417998984703089599170854472844106466102024657994897184850262857657359363743355718097301127929449315402777455626715955764351665037021791487404785696565466484082185876302131054691993039244728580199562154604649267564666040927735667308402565542057123548281766151354537022604388336634742866399362383848254124514048238957904247127091197381710733221179611647365494151467967006493750290761279328309079994069903236829936789644718450429577254817635103473629828826372627608396591855755746226830026083991535268748714875676049999814047415664309829809087911255295465842320110414420605621352512383911358129367179495155418765452942138386180682846318414804405991288126825954517998313490091891849944161832579731629038582476671495590104245436667157765404199774615024019566932813792727203795726099609338508787505204833664441152755364386023523436951223887620495274250889814449436573766338038262624083481740609139556745576421956087229522960567436492719053664985321216345009019937714252154091759080574919004674041551134320884572415928324407714198868271974170681412681197524808011255922324348269055153087067264679873322165181724277492083028321836637303932632762364559855954080056174926639853910917010848950065490764956077943732181259237727502383386334143330233206389830469591921832291186898001332926720273236708654939515897727529017620854338492045560041157907412681653106207403248692694207603108917370173473551817986991596803370418388851875251270023278982142368415190982741556385341011057963614340397419020673267865326526437896600490282272021198810310731493380373235800338753516966973432714171754181810887737502654508464135259116365011893399597834190000293781693913682407737219134910384017090715659048289768071042837456181310827519063335423990406640884335368744486265274373174757208996533713914196006628950472831217137640808392001558713411272817188240494113789962379626198022685338363364584497637890119126741355507528059862320596383327364043729821761895647167585738558651157460285055681560825824558481963295465333971015875538977311153002255145990041820202068195087042067682376432567867433231744318807162836685814682353009863596227030601706439635726385812666780820902129199021772462406680992363666076972565949848070439746418506014309258197354975947631985457963346059229159990815640833509384223685010602006840920044869145230037926093938043211069049868772135092705415809274658709659907079185074268986510395679358397389048706120654542065346575746621643422408119566058046099393438820627509835770362164209652195385436798853551840574926418097879366732620859936561355863012975337563890309752163109994439529751310003576242957077716424269878730391636732049104817966830524438335540143848582184202904546893414895389449988397732643505254109643278378546329388396388122624560305277503049435478095386802842265107013306132846586403028746979555564492252351083914746305677432792706676339212906094406807366072243488030949481621685410706141757005658602461678778834615704251401047502922627100247965728245256352041673831391473633685051806439545276940927884053319197693879252827591831776932119988306833167054697606097367601053940755539495164404595227307015985719474129315178523250371532664104921382551026562574741191414420580253944096783915167852530070244829545104028653887786502552402022625887008582738254583470479670007099429594605629215801474977638797398266855411969971778192303408645351048482551041914566790993717392340089267310575786147063888500752340795453186020171263436175084661557848627796444835192716674158481561023341644247078624624249357496971151447884196393808882640806046631188400922057644000704480458712214726810483715455790381419797435913445911248606734041791405885470788500977967714433559886216841729051107674657065608421251949889706134226335455417980000140153552796681355335351576553021681045253551533741818409900200922000130448001519796604559928022876453668842463215136328081379874725998848838460995420601462161190217311704372748614333058366662134738982092608552838562472555537147727401284111392721658013840218177495005680412755868197108256749350861144073445575472059715885953842428369648748072969292827416082912377524359259165198839451468147529651783769075257743460291892842500643738058310956113391770905279567655611776588231484572132906460090591608044272350172903730401033135544566045483561434217662205638039992370929906916087332218021647392283093259947262099268066840679329724665455336491355235606423070771447649288484792141069820030923135232048357772027597887980871371902829313426880501313310435831178294687999784271444295156923044828384391717593603988408687306092335853113969846045139857175525552508505165837951541844357420578965407554747440110062528305975708474729858282439255379207188407969585725310255162767507660889737375966288672875445372496704651923954176342901073010871385347795470062859178917181661098766778655062768068739492653122863796040727975549380157770219828384150476468998029112839291645074032131313177360364534872255439345313593863827529373979854964378943394240163000785008565100372062285560724088400549989887801145013747029480192476609630934951956196933622791062952177734896523181494245340943910752093867840892179553444234667433953541356076634791934021227113462318990818015487552257483160713001969304818925435875368031389374314621399463977911679947595127653846759866233963533814096195001421858388728910306802336036310797336683913118870834062311926164260807955682245564665339164522419412286210101933525273823645353578392664325690787254855240563178394012587626635156172839209593659388177988123844716889652316003503918417893316503046365127448927194254791274577340393447624602650932214361544700428499612270018888746802796757034421857833007230244176587673317351202225286086873091973315438325110969939167603203602491143198668907287370365894039850685761288339701984996208529355231276970515155749964803437098819967998060029579198732213365582548660939373501398209586162064714994694233967201928440287913965789347323964642491491669689241508628135513592967505835569422478013127813721824323613434929060235285227507711599759781378364076726045515778468895377944491932675301036663038124125447266359405553852962268129656916190106594367980650667990529244935936097504818824179498262713954936392066683668908279409543551408868791053930440472631539399726914721300371510957702873675517952235495389743430446013624927767901790211849723894687655347441437930967996716655108008044038259968947993103345656734793868869363433394310007770829538670657669339566838909578933812467171762512855734813395961990554039090823637452852852233295685062900642870372849560029366008744126648562229321610148827750587224219988777553363027205986092866203230329635582918350421783756875599848495976116901587586521242537641579809068955756312189571794263889451687473526468719727380066317485359543032370130557005020771323725741481408113223079241877479811389746188673516906402941544105059787860359491211991641741005282990063121307167280564130089520928561798973544495251352650366397379990557372830612675371054574239319807114373355855987370116372375570227252524216194974001721853137638362173885329500511813101436519297258860477792748527216294327401971855780014676587375541424461407926711304040021588234464285932715005617786390036624972391697049265626784118880881347644950171814036138797947504294082162969336594754621612761496799657880680263142157979264945555770806166641269767351428080539947954141172527903773932924938911870852311640381898988591382856095317453926528386026247060050658628013340386470830306945377637886889609987446974613816503157112177809352911502836096527844344648472418458663542510929940974217783729096429929100117078533865177790230336944921200227687397142343849722359525054953897400310005518397970706914944885191025809249271195388385630844438622060088725456132686194813620554613815376885438504378079271169396028193915557323312581885507483959052682147642707054370705451553125841209208566706445456547938282140246433377399684276409339092102785192986983291353583201829924725420314023875961185733225056106032905014258458694953309666735599976540389398537637297118597660216085893874638563409080533628319757501027629715611711944650730385886965466844466998973489495471450445932387373774703439386024312445388037191169914795517492468821009470731878117498089734871499274778564513855441435758203749115858068474841617667209787195841230732132663378273744186264615744401150355452785717982639116817975838585856585668009976922942895795703822335772044234357875311541868770885765963720489571795428640676651755503534101332829193644096751992859961558600918791478341832385518595526972852434555019039905661326181159606900059007159346325724096055351481297535554103865485775063278953160141684437757807089361639771684109459398469912389723000779228101985619104375074659501642266882530443374889136085969911432051261096383320966679969613535828388673821972023284492309287026431651739139727017163035126723302967535497096240588523299207571186639661926933222607641370544023757800998774313738095804048950558787772410993523079608031200414959927338937162432630958722499732216368562156550494489292021905036817834358122905214457567338215879160864571765959488161599128433774291105754888059008421453688469544824642506028562272273447178881775273801898245244734299362909259254127182709292344771296243451549747672093508572624223423889208423602853921066514816536485424705459326952498056540729722939860665131645470959989129297752880992190394220225285859744175417066386655176034502731245683615478364373424057296634473055099433478735025882325436877492895954345495061068554787257657111093878298865185229871611883982231231751393899482236799660203781351561080369021012873646951020940385218173167163006802770239439391339672443148814356697822003040822639310633701307471580472566979694694990564901969627382300379609081822349034604641460172162445211737222305941169544078422481628312305263685968573826434389479079995533792143933839721124375166314282467739688905509610168848832426195706794415302528435381377625324735291789369269770378054817308043621467226484157067049107739069201814553733869184500982010544764706698821837061079368043234145048114713510360189622211399769554905160842836409254725425769685717382498223370151161254135173707890799266365875508559726823988308917806830514988036008178650237588232622453561409112024406037753268877041508115436886938588113175590630745250141349568620999089707177181975765206366086346384395091804106452997787017016557419829270283209409341902874692970123240193693344635963007016469069326567432786750307374339653918656568822019903721667908555599279084251869323651164195218938094074397267377842620250664534894303477411573929244985203625742368026269812968169149301259720194858511781359460420969446465894913120306639411722318957434769584373492824156885246927453007427165928733079025238744862397145823741002483793618578052412814965687966073735390139567343840019433773994795658261049848347203735285682222988142126906770736129703888003078067217877877280060233168656404947875766971500084150802873018775482323081540916370244461327860253461068243191771357277623602195528582206129681927523767765735947156858381776318945903296859862440192407248805356869599066145559236028427864725997567453376274934919878813873941482030227469446523984309473009671752887257097497752418880540872049815754974322083647535886082613296015505467764940479138554597581989744456669137669703820957015170458921459889530384735361170583615013287620846293346125849217785282350419794179008955656944586231724391495450999087672264708900378741886080134721809543196067706627561628059631339584812087398494827195027179555542534543396930181050260880797416381540435118926970893053018453720474889324933972510275244043187013560221449855606840330599460753194240389623930935734106565768460615655430961775104447180173376692463027245759466889029990464730175254926858642054208318300448508907600172511367024068338713858758947579552982713631850047990976912461379139719275683007458299307203937584011588036127028420881467898678625409042761959894092869257858731443027805590568938820277128816745269099035684987927474617156033593908777960864161129178298553226800579992960301957367301112739521505102972423128707079519201308239161352387246780038951668482665343229855575558459199261437653635975130907505760067280414656586616791816872160556510264963332465694045444068318361835614081648259480413469560561002001813142989749095459400273271928383935136204763145354930701421052046776229944126913073402653333157504839075963733863744313844114670483122290162462798561783439755995274611697657789288190369914908353712138888661931639785571981113974561103126488636858510667529810615044152115153671987348996505968374890455349330871467540511167206320789035319337275132588478402783638969969023813952914207523919242248575272458916954012531573826567485207485162337103239893922152886396462380188034567295226451135312067886930317390174040672462005445092665856986195153098191937856643766829581489259955452432219453091161036478210467377436813556630571833199960060287177128951819188816639331466631004115719249571481134505901022238207701456067023076396681283531864578653284269926437378114583852681533506057010301007276595511218136199392819008250639224229745783848527131833887475187286029564575211614402166780521977892356918763159717607330736445793003106649272470044260956323058347614865513424982084254316177280371436467648749534608355700737677961129046063105523785016473368892836496403690639291579233667461331729079611520998821885728822778148691654756886100012187273355746507797550142703217065892071489873658330751637314040989909750495244907474561751055521646508972565286955801298175482158948712017433145430016742197721772126735691252981351358355333452698752015449753680867682023155884591441497812119995168657160975302620460343088040169158803273105228243769465851830027799185489625310481622097853071297249996930800572793771296669852021182984875566869206001939222010238503195304182385352882164987948688310906742781092321415579610946395595265730173175790832696533434268578478086252421676768370181377336074346341860334874066877348215754492213531269638343347462622744795873454941388585184043426541305813220099289214538699553089414338816413203524047393228900285910704876231592654924612541816667002238197079886137217890140211958944945991684062069726851923792722561255622698447959695855799843740036806763570671629035933188074779398625181738198267542226680008027118966833847412262527841156179282571146454881502467532688392165958168027108261868481343672087897506959467015912462449359367488338981844591825296553569207132607253288309463228452988261485819600505511941772137423504691259482427119022795030656040381387796843659642943047343121446983428348406019174758991077636801373221897029252169742078560938588960594977790731314025279756672091546736768576993116979509519017864596597930073524456047601114922593509138968743586151544165336243433751434054226637082188276925002270186530244852730605226325884284480292341538162000961881116519980261618600923903358157933589821269827961529846933127426978033117837853226348977599204046340843850920337106794372260772460965279588085023173811030339962615675111354582012280222081856480474625030886121456949890648099345844097992445190289737983802572617634982382128418225569277965973700117426083742521683508806374848856258064974566671074797932509181017575513634273781885676673780547071704072193026770381862626871974190911298880447748288264393050815711984520252188792405989431332818460057052896349654569636114094432687062938144147097140357116196603665447450975912863557094572093936940506663792151140237603115393184640727707764825728213096918336257812152590136996908487931063392720855034083305275723930975667620659489006079230830500632296799822802065294589114079251762515196041932041458620214426796091422642625498764151053276777082291396379276530977794235957440269938032046681864063640574207061689698471593784314325699927963709957461351808185546213949521453179288606490568818815034198123424374438838805450898291313409114528675046202686714289429799298014340011541534751261324311691972134852759218155547582229580388209797808094624113126057266086610708234294689609190417326719700635801257518305954869959925966994972179112698529229187107010287675414058386136878973442604060215859028651980270146465170605319638978938432185031984799237794580595708628162921312694014448526200775455618618520302096831676079086870402447646988421194552012700305281590007981865962535519613100037287574500857104054383173360924247629457402159620880939482390191706006186312658929703658996649298905753693752910288558483976915766413188386569704112735028008017207642571075489406404665478159883445214949489815580656723723266713936959444588610201787432034386521046849613629899256260927484018096973183295986600205459730441193257447442855439465359748292078239642252667887968010290933170202826641617533084396805020409971023467674851551980600546732383700635757317937441910153603083681331860200099252571823473554825941963856692510321708626105442506671998683948821951794599327389864767400691034384945232080175592937659376527072818575693681971189806957441892717042885574068656450341489411418445162133402366875958207833888207761407199276398531708325101445006205306086344392792453701959349270853884562341447994650336054602411798650125617489755640575875859498509520529532138516236170608327605252350433043814990445105821947170663746470651504362916681083679386070401065857083152817669784555183774080728942190327758367626214000847501410271689784248101970807190306518907908451073117192865699381380364780074498024431741132762325078237587620714701260085948095504055077069827432228794290127005730614141067962567198899312915500027534204573083700134206492040084028001957534939895645017182353216633440631804688618201145333790483570836714300496083105542943497596146926690923124530176364965815965398869402012720276015518843173869880995310058629496873491958653069780791732061650465847262866840292522106733793801609379712637973777243282487884281073056864579051218814566314053936857849402208131048807136792311448254480683875555562213932770430789541891495217086586863388036583306958532234997550613196889533966332112930344937916096981356148257679614503739791990506769634199685281761193805655564332299867738146127965402083756102212120195875751171310454259955670101587408821301502771537506761812329289766811062002183410282739130864969916853223416188655097600485495615659847643579917385290136254690339155779264374436952485145873670083069809502237904927537593679088647276166374785718975244115167287507983788955393064246512878005576001518725912349367691695052779147492555053328696622217093760746439473498638869594536397513664230811929692828894092904873630379628949516321547116083868939305289977077097307981535969821925806974898195955490480753405048072427123578163326249225656817310865083466968812739200018277135543244138488926346684493520710816736918827608499934272239064256509900028402782265597662536658891030418035596696017155884357181220548965544640232823180563034534239956873139167313171216419437058403221676251651907004515565066791338845276521093120012452465899433207188675928592655503268545680680896866092655876933797397748264996844317197111283344900507493298180328296536685254809225664447557094677112280396774729746731682989993187118004086055606334064037048734348328164075426952295078236624146306564503891508787046329277957339173015906415685439752580260053997143793641665911992518755022634091649231448526551714345104677157743175874620487505258625798707221621254180798646353487606538675218633092435140571171463935943799263852387769582927609656765751615042171194480093656323054560253327986814222157740987724225396672995061014166405129893945953064104085246550731777902035971668393549558104751410187024865819216609636086838606753792582889757961285166167963048676260854046294512705420278880689028629731290557895801105435547419497417540704084992170207101248510709382437228126753414533042715043012036845876895016997688360226683802944378912016318095388663697646378134818165576911366089383620354198734545261643682464362129375718948659600066856893054030460686119174039590449473020992637910462314252544234885483122970659073031381251681344931974480540426957463984784790443152270501991959414132772428220959280076864607261254795851537738792574712418757219657649700005760376900836904197392510246734945952965664753540435416125413900296618078213060210580137550922530660388871831798372929354092344965769387206035392636746418262370840981223529620051781791814816738467688197790387192017227762774448924082155721017216719852304975116952920876662535562105727151090523047769932121980939118153709185835235167657731787108290590663800934493499370566819858349299377475075768177843724778962837499644502829250384827467419757786409786149572977697481131208708672468307161540170066785086194719030546546327468720742784087441857722584284132383256620829114681969195500498940834037060498458283943434324016394400741968426551105535512781237621643943892880635325102700512188269340431457635372961054779379844031493525002584135843976698148278711966820092948842059973770776570222569702141203969216440615828436347397915011773504238877458314037093747563853961384889196982331428299276116935803541109426432623420071153395203465129621590017797590937654338267105922813203287650008148325561267147916450809563582947576792472019913683882729797754421352057399641769060796800487546911236385036511555184480339658528057825343167121847105387096710374392292459363664528514869855661740462959737804676207149945538609687346110719386209021064273055245324345970807148838086328353756338414052022794140934821760731950481703327793582696114575937997599201731657025950748108856839309353480043835956176027926601910486664389283450660108085062281685284434774398020327323208852444907484364998876486272467015636921745927842240496839079104630089354999553501488183812267331551889094316480552255159695425061607322081581410074283966531228294715530572726892955095609931953449942686258185129507879166205161243106495061638466232380588492180362419108888514698623034566794239672717449935914788080026559080340192069286548215355635289866183248016374375482824759778968263887425199132429673479226562377765741554988612976497103853472907493497450331981537838720294471744680687241118221366950424678544553657247635347437728762820855579987868956828945187646176299821534837911903369282534374852307108563590081309441707259187987113698559399339133730018787436357093532538160402240088624066207021072614623572263897396461666471682270935151549514723764435910672246534088067166208697922226988338606741594284631167498515654473572003355171271662161348094798278533416792129535525087755837515023111026685813164661164626966528857340434968003240497423082719951458084146370974779892300757257484839928036420974343004317890247099098142060929305595434421746514884456517510892868339467237339092847620585277962372824921102975869041008703892777216575937233998091356018184087119763462733662653781909273796492288604572589012924168229522332932882030571647029261020232907570711001858724830746395051909308594228262521321462354086274158670896884771065532466463701495161783899195257161625937784938498567037182975698020156278908091783700408605283687240484575096714516470233345798362472876407394238749017602635651773742320378151784367602411806691877712869332426750506626657982142835459855945503415231886220801394167350534777243390188574571728000718320038770549562866722836426196671277050118816193649748088252496734058319589980390241012002620828949732672623673214791630785212878596434829222428635133340750876771759455488979529552652277570695039453565772771765966662364592884914915530006629720729656926425294932518198282148643378950557328820780818694927127937158593292818310252192783170969455610869175318682997384119019660249742681258198442386666319904893337651912906182560486532591651805365948416781550471774913102084973251986302866636046795283051121312782169047361872930693731889381531767460181383598877865379468191487366315671682289243397261267991059211205786065812480616277265711731111260265242144350531423393689934190865328331747430202552857359497798262449486813431987772979512129048825384004223649041490672878179847030787617257594377692227283989007605109073949653845808105712501600297378773892336313531526112442758714352485964525855041728530033606244944554684053324363390231796485654223540905147667614942521908546528164972308067350325736664927822782019645712331803893185303732480762831033504509077845064495125703564566944215720113372916320729657372022073595599433130020496894989669884281246446013256546491461656621192686242519344119305863914449018711161950539070627584797054367039267644188381006939845597687176839442762044929279326125670463211215273438741378372499121083323273106074940969390898726705687889032834617000632546614923994701864451715985401309455946942108010592149051598525340785671964039160465322639433768151819989421849166314948990054990501141524198711197061051276932857115039616787387973276427827840990164210662484513697950887473216233890716407794502045890991427323189050549978743224891126676289705792879094848421903869946773784606388895499199021395367000115254519311784322089836444705710849819144701744515526441145378679156702304908583456392999230821485263814419967653359940968046606694418232821865809282162839022564702997472802312946015745248295837625261833053101969344402872426405507117105973952615587520809692702759745245742794642423519821828863006632255926261685685234399302263095589638646318075732435592249331432322702533039480225604783781495575763538764182025542639053864716584582616847027375139102508180279646775305204979522540767875998095592607411832776035019283285947718289110180179624804039085725850102213217104955536471641055843795069401784907039382789654202698696310293516435562543534902176751700147695579044377160420836190304065166967470398718238469298072245083051913418662066014017647188039452036292176469754784171308035812806055357836521852016121581686970542994034234556962921293053941778062179198781569187013180205876286717328778597083146292152205749029873499469374751478827202788144654247945469454390863390710904995912293706417935607919555699235814912529092327861080576142809388274930774527350196293258927069614102220025357862067643788327749118821623857147211955075830197766194813788516873833930973073410896085775048513089174339772482315725345557728069427529672149353618327428284429829623060188905124717874896603368039156533463013629165452865362696396144354476229615316968760637175431674999873257818963993347267192123935318354660429026858547699004165984354152656408958849169678754948385253457043844867941726998554255996964572751788143861375290879198545524035272584181875626229887992018776901675996059948120831715560073874812260083867498251588332201553515529224915465374471230346253410669643889347739420129389995460713557133914658351261165044542690278393840213536017378964173374838782750515132642317629686672509476804867498785271153957321685623777979634791881857967699180973961805920052656342143670054970004895101361640839978024674878640406697363457839355687265261365087641216812410767263265611561074707683658246740964662974403272009103577897740789315534525383462189462261260979644661219882548722660832854863793913561410589203498173292151236848244949259283516668899075069865110290733980382455718073823719155974854561514452473915504432368023854299724511062997066200118786201845372743603295985888729239493076647290442094198317197505380141905442674256820679138150112432777260943374818595675639025303858239137896312512243040169935822160974289531077843166096765433661049328730739481635815185799191229125347003611999754479794006799917905989892605174885794679730909244814795502189231634052643179530649042013843276503110226329971448686545745018089341573177218361505735694684582950923457266734063399456835895420148082689208720667604931320178984440510441909157397176012107336915432159456562074847779054816044532122825706078403633233804322570612157175543389933994618268984495961475780763039541866881881299943122596205267379904757829505279442364304668342049690744107701290330915695806927973194331542464467627301261392932592345912642246254627752830095503219487978470009686900178734365876421162027035650052862995112644687651791655225710633415684262982811387349712960239252933293952550859724567047214989518700318857975553780617231387490469071934036641050816398144033922419172885559052318118868017647527535486661395671347843499644011556865697875162252607830848979127859243033047328016632012976656690999725269286681308841472497893095815934019233817006998709971274248013465870843302774981206019170084768093951478663712557412782764558882189961799410836139089213754090999318372962363662828242683453372459456176768055927932803321145097681782154740329004040220201337131523946596904612117786639413860683507776795160420516221139829826487856754265876155138927019745755522049024031992333031330359401298532089558402228067332613740868420583409615883158864432892683188302225259565217733293745972348643781114359531340182742235295624714703416309086394954421267685448504676322294048598556816414869809326945254759105624353397797987303407756047837557623054525695403773253127014169353576648139527824203280435041892622668512727745966731910344600515713550087202145334492959483799392020575011871487707721428049297819627238536150992675124080821914758556119770500073646332280236889024175679242148490763702470739259479133146261815506233117708771620413263556526065207816974019364131103070656756562372849299502285080940742337549879558206210336754336313491084262024534956539182949004429754152750063068824354050494214472287334718987176877395675228775954953885229328642648101512320806818682351443098021845309734919509165737956321520827378841423880581560117785506796886527930697192706285759639292439682579902920795487968550228246862918741462729636036155776820489229097662783644845820151664611998433524155608432260876298695196474882045967575285309090315562607892199083753043396314166062160547230836377420707057401074351659722069184376348204563062197653451255958181811299185947042363423742590107082377614111647635307685806099357098060952795404407173264535501010069631199941604377690536227091208812788384003321274039872502555700982441540891222571775532466295961403435770038687599032611767048236019548404992780790281996300496425334365266087048306054912548113162364440796870762388172636456870549010593110837506644260573796186903394691560104160355007034440283491399597290880526683656453630950997639537131558366383661506698414450397227315990110804880327296016861836984580419750319191228142485915781612553456343964110036718081326300406088168393540138809249338512979370459577252925527133950382333000905309901227849928044745970259452507542879561267079869842979700865447458169966593295108893528142151542568393187766564404215507399309119392750477521606326386937494992082643578711926309837251926726410233515621716311787034705750541642369918626064835323647013395734678347605200287822233044231983734117972235319682295071808711761904363988030337105993565204023380933926743756410579639749694609695469681285218281302467306935796565117437085711751728119056391091150292396912380267521552528799781876732001905577163335115629271740958457831601971625158629001318292604465571516872113140740204350250096293805810308231877821644348378582103648399556433352912326399769438481397637676108942423638470124071864135585027776947030442293565185184229036370687173931394297359686672313621854652079801170295290422925533554191930378144527083003741771469317029160963449841027740521615776202761099964728728643468784305424358785996130291203999818222264530163836914392347098432415174920471612483790455048458725468631694174872383797888215911224150401376768655392006585670457362120167709412869091657631312876613814992426226390310184769349185009401451368269344057914714913247634261315352920381948358174334841187558748763638129317436651372846546505580796479142825948525853642969993357418294152632502085485412276151507778729835644168689310442103260405866396133386120909469145127668404331105160529521808606595396610434570314767221668616343486970597263893774879185637348767833568962190176288140725896158844937230044260588995882252766630700214440960586704774501399884764662651397462376697746555345616946643139081742388974804854259609298754180891691481315246132497824437790172700377520725322474197721448371488795922082552396349977626892750799688335819587296586298973098416216450670338936349137917881987210628717716833489422589441671794609814053099501396211977313298658246113302274942977670049565825733198414246494941596509826167030161715413573069201521257819284077020302213855028884948737293733880653354938891619019666106151844653833404041414818084937684156842081235562525274213400456133165679932574898991196656334379251932965147523740449842291685369636697037384634394201395086351879555437785344198734937720000786798524762314384948406651962912896710956204983563794308069727361773683190600766922996545638764631636919353104798971084973142868419618944533774991548761463001967521487346245515067077918387156114491843435982261458394120227627647649684792778981795810918954389870679881447651369707448794107194920589517490866447012846568586098077189401212641187207309308850164734423042300435375495442152572929998212916063304293246315240644837040894472194542712255099005908198670706803602526764621633288849051238611738934945442091118622368677676206663598019458537444990907457950183483503381730382046461919070983286500661516583032398639100775820704274182933710277971684339204262288503114334825237430306059038231091847933804175335871701708660227507927312010749703395943341962755223481112244199733455671456149949047648474979498736813339150214436393999122626951873588207325409161706989641195562911235069063467218390236898762855432903964657907244206257200457724965834874658526526342611276929754495950307759950280214941638706579459653345253462572173880340249645427541940132455825470947344745525869982742312197926219690749778975585192815329178624678131633714589865092108356478577759220286622241963141649878528254213336245567834371200997829109458374369557591982355688339499242337207929249413631135127788496525381304214186703580815371580982576074188476231772722729394901870863759802696577426832181843275654918090666262796296314158157062818401696768581429861387853901197351471784349165545459434459075331812059353583042599864533281386411950455246948709929069092622243770756764219432999587288216183480487630095505606428067265709566711053340799592849037417119972682431714175862694217250629778468647848721132946509431590534952993448164657867939621142646398316619166553647581767000095440289471630410504764477774607849260258230153008680682698655989986670124121217953574516271785540071397972086304521676920327589037021840493244000340167402223943914444784770805637629227543209072952905330606400434352765860397656185535893771704950607739642565530032337090077416946392651518506485005586312970469651795652512109835616528774167919584163598847470448603561366171232759202374413544428973980527327162906332384863858484073105271102085245162646836521039327975074707705113820616345633909944280511700509382292677716397250636785052312213282600656601506424209727609061545924543504086901065079104465012987904238523400010151227455459782393213500139905700095311180827993348745512752309130800855473249902311752279821841541171804057895956508636075489754003748474981931478780998981313988582227792358197069056101814262018827105926742555944784434805648331978253350610638896967161371503205137120697469713281627785623228082708247610007822040599230821229437812871655431805872674203245921015933790336332275815411081556696995661284092398277164073711623840282727570154701790536296429307554261677813047516460311093771619520038873516234319017506141718859560289315296956066623878554075057832594386325889553734495832911026876499215984103861313778271188084714020370238573356316906147469288054249700882956334497054709105220150731083274493262112352958487887022402647118771162879329794574800909597444399627822280368865861584060535422833890145658252239667129676947822558089362147504970599229654721255079691326225326338594449568436409710109273014386394708319076275913625563992516605138604501600345435521548899746697257465235027296507942358705822574456673563045187433935046240593790678453409656418306002361436107503648999357800381870506387151645163870986347648809957785655742944522443236854698953813489916469946467573967244999064905173389494845325196156922589771922577503722198709421311486200847129200737918223016344673967270286051592084558119936345085146355197555275173985752344148241401929450365997326581568695290755115334079527719954615324079435890668779457658063163147135298968457009139117570073948688934601433012185122095392645184497475703650967346074162600472547873375716303164347317485572404470426158855465508679095745377800008334770597112509423163207820627391786978282016128762921638700478994907999164662450752066653152046704627712182680636485817254286348305755248430597921142206781591408787300712401140242416502127436776654753485063709140349082111375832424146096868793842180492071767916181646722202623097951728478143771436847416428003630396281696401516367285270759769833319246379433357750585408912324960375399952082012173517794271222267171050067340274988040319173201990289216671893200241044063830378869745927570559412398376966590898507682702454083130821990525430212129042785049907294430013659416043520845554918997328998093728327998632500179296382594756697510027217094032387409815825750524314940183418467654207225139020712106145686818055725888640259197187980643868647694608899232757982451330661600483909267330798406467807647411427436487482270999664497734692266352524519373501231439320441668858127090941895373886215030919511307385190468438438574876034194930459537270693639062230381617953387450074552868006910867152466773894716804019104169553858994750559661077819298792558335483301177167003830694640097571460444716847134493296043524843658897637644036872484234224174300779852738982608149993559423133714680868136849625726182638157850963903691150789213549559410752691631604556667461809941028097575796995151979930720996452322311170665840938205750316559370249712800786859319790732655380332200774270349278334603278143767588511512638641547326593611623957197741140728534434711613280041584159866684946597622425196707966647713461974168429902132285964468363989314562190462508934866973608165858634746728611719573350042493896106092136229293996226263883381918061258291946958875987513635414788704558024655266691621896878061461498903425261368017646950952349447593225820069129252747027167048971969845889108566007485532387893122303311626944075638992888991376289290327830932046596590170674185226060709001308285433431549949527517057840038066410964775851882357357496001490853202017953464497817442208563324499213206044630242112722759168825040406681249830032713010995184543210349215711936561550630073710993283981942923064871996635798676924946393468372990715094561797362238277977031098263893980768302044422001749033272586661313167776609118419610285952897467991552365737010353627791703159381827033962497996404679047537965924575223011615805895822208147272788819932004941805471243726973886460970339241272555568098828971596146489764218478097358066260821430667483646889038369543389511861943652960692099230147158674822256480666518744599849665522064847190473430056345285888544352120735045078014328654295472072067976078721579249711631808724219365564077711206001349758788105021375638124453197686536650624709988896501474909771806551458965509540723930922733346038785626951263257872766188216601092348319328575826204652899108756498812776338532668823845226285444376092575792335028849972423104606036066582989614184297422276545073759964219281730748405642631409293022967051254088478189611648403921189709629405732458677496273111490522844385277548764917614287963194376217454945223950752124470246337764490276305117820780350763812080373316027125183227613281540073930459419587089754489298887903905608673893736823570637944637872462960489582719444431017290507567410895362364439875502303086899257128996279533786239238740687765469794104785029007275738762947379228520926215836886483877540650308283102109325484270448915985363033651111276445372442870796620119120182333659712889126635652243042879003988042951460029636325878129318884595988776444742197433135655562311006357566770021318855396288355838977253199842124158382902608831722169252275674663464276682619902046583941536123977158412345005738898940152030300704047563687794159649144262985057954988400696099592233368113548938186806046672730827808779616210598036365354085177768045328517747485941045767756542092108614128997825293734112975848288191030160522404689501716113702724956879621251660197874454372319506264420118613664325312454755840456224772913038516928274558725417594327649276056582919776977639137872782273653178083810493880110713095630530599973130564033330368735681295124406176201456838089375130260941680325089037413705134348472267638842657908194614293232855917434022137822197342608957650923519777467293036624133610637575128134606425338573482426389082183665098472209256127158322544959773762359459369677291393280037523021908995827080278995983721632180695880855381900640183845154156182149278188428303349916560461251114097451320481028374007091993664900166667273552055267551787616047228987852431205946559522954736529187633195934376796195978623212692257305084350804318158478098326834274307366810489231330590289057539122218000344409003074909595679342002441474471375835482877191052445640148649820422861333666165727761514294266826555127126718597871539690979761542442051923160135287152445911545415389120316860574172968793569651140769496706143366103173019993101768435620809533779060363263497833483248318011731868382755811105858428181257920207877708315820123437155872194999163227001059273001857024886552483871576917599323958873747832125646644621841287231810050802201665857304326916333934366174791885209452989939417105496488183189668729363042293610778133078280857872752901627321145809718012018930275539061046790337204951194019363206680935010846187146276098723212295143644097349036005276328600007678081556295179021337741314021473910028849451527565637604084509679743932675582920105769827815781725284063805733339355327332032053949121344332539661465256251761219146903765777776229311276260407146050953065320326395644869365477128191349179762999684980529916562444149421050825408938449543724933745995811766966915187196454182823844232786477418252719848073819791025933928418248804042231657260605942873235387090985434489636425534518921616470868677516696990846565386917183170002195230408431681483334708577427125080431040758126705607349285229163739610027519103695465170817657688981308322723298472039829625579475644880093751431603809544814442503095161985435544661864305369781095397757845205745699000623788064810272007166667889404124415765111305913354976866974916320228142168053302113892708363368673239989537760956571130211884084513753335525700293264992658122507414404209685612226778258912701511654926985253100436856978158569203098701800954097917214499446854311555000523781761215526019702849720607718722041248830255511089099176241521587138071639931614859802485257619758996029152028522550345271939658063020685912385176796013924327362851643563478140946327158566717326764014792663922070385551539593742250641787308119977951972055193588147380218915588778264622557387045373729029743222092976513186381517097869796237092893936160287271717273671318171099232946958494698643667321519529433914561083531499107710872765890624023743508016765551594341631635723809057112013103573361547259286138969615876608978188644476103258557583615519164401264539289150809400981211680026443110982675610635032171224377513078854898902114219318764380529552931053518837967257541010158456480054192411626081430723433387400232827140328520437782407130404769405670088507052545361253642695427909559637040364637020158183458936123669319947376874887896350576987428956117478630526567969644683876533236573649652309169852638671066492486196583288439115016551432989738549018006199051039517149847559757544116230958534320794632036997831696675811795927992665193297600259710199789241253261472784274020679224423955785484274892530631931824337493357234871550559850663512036222959731205727067867246354746891348501810167152481840718770795875554261323331163177557297114681483120190959883976884430175298359868157708764800466157965003090016874979754752520756590459263758540245465589786540438285161209948199783629740724783545956047579897276842666101573433974867769318077713566867483733892429921184925265688839477370633289922864333712393552904814436220241753532347007986901586366848790764305439993225682433102576158562995627681381707572972505498858433311704124947790038814403147597695779473279275314779588717906378171794624136016859209509840214731861848733535131565073828771905784853985583348691075466401742200240047979209931987682410552324015675402523893098898972389272707517133501946298335679153069862274627261666095840363373401523550524758879224813766365520738917249433916122325382589589326138378767170650932621808407606890479525113151523920733581709709433482159726586228018638620969741970531816054330328606202668309656245381697338874141560615420850043830372758485626269977822662400769353580139270324142933155943178852545550366076989698099425947748799958482228432579448728550280831303467581008002410178151852880169798531063568548722192793279944394721703859987440219650400773594705479403835360850212866031882550739358562623291416389720544538498249432466029235341998492736776668648375741949379765604758551540866680472628485464428491263041997050345842470682868838464426714452851934387628324441250221011885808808344822454565154543693133792412485609288468435111397416572260882654222354811497467246101376439434978765460298688875837953052777372129672294214556341219617215417711238770028478630324179050537269816217474632125480166512784932700624698501423332931808799184961683642492176887534365155759455167844846705266906476135665243368990659880163742739352280548821315734046502773592671907855457128327406647204483529611837943239406742357142280285235297656316531082809683002613517443049931666952885585296781911897320997056368420753738804691786368902443281888388237945849268152012583457729946674345706451302439388656709756063701622440889649529132790886389420363337093790040111519497779219637003544156328244341558361190141885639806567300094325786479404367610407460596911036172255463351517362439274423401318523989877504489700377921188427543502892297863408399498074273396351317699184332485212052979012198708988687715046231403850439286607001906045065294563427325379316873892964534588499603947576680274063008997348708821679884928457316426223453343728585202754882679094557084720586170964132607380084890801456546878666400562242645728329774478111198857324129902256730802221658188211294002707233670691716145178342098420259831183417330367888932284846749418214998793695895496135880782348806209111333081077338749501441862518630032097562525822308229379720162869110406927512019109623920804968883807918002397720471014715249497136900411300839777389174725507730035928466191523986552766471573473602002947081001971090094644859727682724681156188346714994285260617501302518862506036943567577188303652110949357210648686290322713724402123995083103899052390297118912623971309527047643737707026687661654972161601585410071224958687829178856139575584293574358651038729731922558570766786628048354244666775928670593576474625565559633759009172931582479974224773861486246317877286344206895529174776297772959929352729598600245745941484656886306509563090023454761170634370872385584818514931039215455589508094598960714712910541237353077155348337887968597125660315154353038716056696770890957727851912787819854365447569059574667268997048675995100779442138523323307890746114414742167489915132174128056421732895238747766603837516210847282407553547130019146366764445631952681085126158830488551108053011913408444698146192350924957138357586044584740759932104625524330407846294711505213796165059892731351374645609611380004795491897865431527673352573282093446836874022461158386478598797348662678598263071455506118236139846988710912899675081708429811595562607772500833121648425153867507199464667696338265816481935389636954368786285729033470543678136415366720335498280966218060946323245526768977779094581104554859275304893559107921669314794118328602688873748762611872851555190641515592361768848493507777185327673261289055342345817688267401015620931098583243204614531989384318455782357969986494072960581498917213807733014360918243447682934835244599360631698598303109312609173789813464674602017684332062207645466135153470134527756212493707089953215514518812821028047446697536129609987943151440981387669733542328633930899951425468880007181194777287337406524501133555768322116841777163604878133207966131058485566654629312151524219396299894537637219149546864703377685376209219575262696641813251854139570388498832442811324839191778603005899759120043761110746766931001279070580967303796817837563681023031705424855598203696204247477169879005309328507578810546825504358319422035583833012250444756456395399708685868701483689257294956295808056110708291306683684004640225671229786675375487992495347863172807979181917441316850960014520476993802970182289809196995859601943328535974597657788479014106540092136728495905177478914099213527858555240060326673145899429657314131946793666164793323068258932321589242943325415978046693295973810157067038162518956333939484160427846317496750545172302853874899306923787945671005371759530670348023286640647530110347386087606747865756820908019543653504824407791569508152347361994682666815676431971888709715386295171608220161417003916643734707576682804851223113606859685084593857539641652206743260182413888235904542983883888541134543340623933782602463748026601761659138854253605138840225668806912543068758594454694601676941302193977465380626825047510847418838736133706162141386285166191388661577379973877579733065495673477712278580750503359153061843504438197026016859309085649036175900327824228014331249934088346913662061396374337402792070745280677258938612235744728988765070701564247648841623656196387901257387875637918869138764205507142272756653197730870467625936092021028796128507094056280934025897932345778067528268249889007257956362672584533668889658717297564624539671068311241182968839744907898404066959081601735931638841768865518904176533338374784581488392572759163719539432352533202018775678164546159164247064849205142642609008675982376370687554011183540419580083723486760636343506148700985400618456081541868501021486202519284910407781596975352603938462051574760273086776210105623658048974422553248048395675429867716023311424964700904730395256063836061167968915294719530326929595855408727430698941732606114204936493314444109253302007229659006171517418050361796383693788045470413828932971850467829493868590793628852593284962739912939316625961223278462895044605896732711903763718519518070001432165987997126293524047698529636402897081447615530634253598235583372735090038333313605271321968182907405107822304520044505181229124840343886208065685059379323846292730892682147816190085871152290234612588797188458379250088499337485104854662000218720254842876371105579752487780089915257125705363966883396881650336886719288636036676095097886397178313376221307340626817548469812414816449356315659288788666235410358303947564672597281042498534089808370179696346261853026117139714532766845117326688684426928582732791057068668858517078868066387794529983438718325401740174390520877863714493035801870208682839641808452620561050447393299010743512043003288821398311139550161939830118955590896592834339694133320214219929801538561355628949529860205026934902948752074221498948834403950631581223578522960302795026736035414178057270397648486546635177170519769894876189047990682592800193876156434885058262371258277786929967336093487945441564864737809959168403308795769204705176313717203962893309378394570439602295058676049619586290753951742001202172042398724405943230893117829086689953071957948087039841220932655202293398660169383320307978452217595346563813218427873174451101505580245246433131364954484442416930857984410239080793111299936294540265315031150950548389780360142770056527096900838799332015248491144960671112374988078566398779774980913220500611626403747232449732993782755363844227124848564367948594262624751718711204377146748114824946075935669312895647133225025197210647767492339264271722653810907827495508304037370299052761173643015766183259781560560888448196055799845723386490239677505034888433420457258245839985157369606765327631761364063496856586308462168407641948716938203645769577879310736389022478630324071269016667774603775577152968307547509440127950615030497746897159775943797248193945439438147764815321878562706876241940956047593358908958324727713699376338145934395774543249107605862947286337283592022543541415746001459057079148367849033901411278691648455658967771717320633595550565564765476017644079513305144278669778948244312755187347375894973743512263962414766981663218508108761444072830921357614382559018618847375031530904004233452954846708593229506866617963712457819303731730755089592350871201795992353495584811287273554092837300813897865070541416737099886951086942037176832195700035803232051708639980370211574552710123328893463734851886209643160509349498159254541459336518163468879825000991568420719683327836793275008753351927331895293468621676122519409944238821702223691835721331583412147212603026384064176072052185429769581814443462038934032554559513484629047502518535509153819983485908531722810547594040727530918647361445968315716510363630777365938269838982507706219991355479911375487952794581097216310523851288309073675960369638172154121831684675031825905977716811274585903747501766968817813306037715236183736447373092938673708866602920170418904149946326178684544481066564540937195395780284993637127590127052469240146029453049725732578550642127217062257281278681772960770076422019583358575928805388710810761141958825485751721693633345600761818283177526187004512169314351977089448607525548293776142265941840217470623699474327772196293086608663722647145100836543245427752852415177523199024410313836869993092707096484104041744585088087835209072476425825559490027315478253723681794689780417015658306166786272295888337576057446295257910923413103958750635244194339149678339765384233165841922983723708404753013928820075883196364661798817532169833691584286683757929971415225371893591054677682739765081923401847462425291762119861461694303680644858238010507746977212160847927025079394169122669721613068762670679377263552312743623344042294958374898907186061429999808578141818032793144644988346544247769545783876611815252597733331801275002946875267940490427014268048580076833645281827801102942879125483294000580109119978869654153057754746266107525029311031563727441158661061961468960345019553243317218024997026968708118417109999643482292876108991579043522545565067975092582013088224875615953382789984936238207784740984372843144772447570206525381516291376636691682463162090787593607042054697970546161669003901989801798682386493092150091361943039921074247777814148789474749061336934653493859155651419540956121852955634180862653340747164746879529985908597392241511976141891891090832773082686696610310426015882749549376822923906224585990633262165824241690532064502749624497802719802378894789429827338920193431332081759911096739502129907429959771554299831794357438725951160565594818747069938498801608677483965937940869965967047540261869211372873477200063927239337836330843959202447525465289672198450386397095243080091609964614651983512862548045843913752557922361127044002891698803234570871193729865819487681195161511745697113064967987020643184982912922080450646312927002261659133863380349506366483000179676162950442043820867053601428380843820254856953509877367271600314717928281526320005223844823311500484977080627958533683980806873057657103472499883483089377726746700344090996714004551295921859392283684677400221755500095843865516324117079438988081586107211835536694403477790936120043387616098043164850627882878899546145209766739887412940201633673362932822120872973832549917385108017242227606145324295436201584692672574828920492919732341331528113704352989916583491993215079454231071720409066841845791700585150605245325743686039478531295533372929016306473563707497462493625545811922370335235259607124125183279199188496640675261244719993815209659816409604537688779807434826565799830600477641764364778029657127367832394734877616030864533769803618730125237631035851486452575835159038367111657685402723043802944673027357561662563614384799497411043519885942646397285507613608602924724684797925615408660792029413193367905111519302187102680712611881903994965219331045205333459854633003026729295672707523972812040218271593125363444907148429571624860369425574932560171585471299414921886709169610059294297574274336916791176520781486019694855933509569503841297640432708121739453391208636289212749726780798222206009526469899312597923331106156061901306113230973897315988535842911568223478895266505501785988126959776096579792072222680368149891050907171478684242555960729299270755935271861205628065373015387835795051276910551094301225781533928140502069990395269322050715290669701291587282473786463614773832268788642373757372026842470812838583840445403534511319398267442706748148806366293120441577892184784643554804257124932479657604027163574157562079136230663877081273166788216596441459095745165157943513441665641587256164653073429818129355444105756353264491075580577025552873930479874104342756539720521743538854139407463814191918933642142732828860062459529853487569092826805975546570185197215408581746274304180938292257640822428460419752997717901293431207218507768266224588333113436293653225173223394995800438860155292470859791090788450758116306939858680934099108279529808010817940392072404333099633438481389256475392380702628540406032986659857599339321313531265617535783434153472189044615680786479341538056751135094820447890841170999262391894511374210107930557126064769902847494554276366923122495325939571871128782725528685773681812423051773246819436932098800030060181689947615404099783461776533635841576808714870102250840191954894454826725229633527665976088778905748922978151441408759184604369498003557576162232843152942289273172616709196353556790987024789811059966221864006223194124021649573506652459384808703557709553298449426052873249226876036068194336797903673853542307786954513464198278048930385271945345439504057324981320162329805562636687445401815708893394249930363539667668779862009453528738316103259345822119479960910016060163481425327580883904852058766245001664806496599182777517884537744525126783914854055763079315511493733446925945454982746022457418703331255876203026154244927800679769277806522113416558432272996985341927411347024066243621654136692345804511575373631816484447192508264659178779430426416238856410384107743662859521135908841066027593514180451896894844148967653455218110293528086430863830084661755798502881697808888095139860068333900692905389310100093563629255938226844137762747666697472213167902796809649112119207216997429981951216892240722610915090012264848690972543432365253054177421750171926548226308094441647132915386539210792520070519735112533741840115256948452197659799480833856857222664962556446521068395650345951643940824435205714355503563106540084715110183433543865362631515164169020120750547530759025374176260198605306457864313062065699697314261315536218377043073684750627784222622344664315068315332354194780682738649690411369060256614149542293897998670733547569616837785838951338032111353599783038102115931005001905887139510412772030275251339811226672415288773272534194376317451438846529826372756948657510211822412684329273256933832989220075449974332458476115655277539985291885822186916506548394649313523939040497254184373225748198651633330838562203188566214925069507409506041665573132659820487181045878774555521155619205532423592709511027510188403966247801466390290758789864016400966890277196939370193750973902857974566429715519135958753924905783998107759682265375887661597698240012038251954679022767156872841313802331582068475582930560574571734473786857748169864841824639717556134191403986899709391826295538264422606690498034076740135875410944270903779065500904193937736133510594047446500109066402736896069841509829737540884360560921726688997559672062858916111896432325989842549176160288773271769968465346287471613428867862039757503717755165653374458108156288972186753457136896583606145612276256885408368540684382568446497972146270688870773102625852203961890362367086790233974945181606343060520270499753068504651406984879837427179974149158907684143029688004971564060381835989742021410755275447313989949549470946174602267001537265062886226179562439109944806762405329602562986735620790492717173826079326431907005104556201106716769220153288009780435536354379328947153199439862050541715893178035090312313278768250223188513101813504609712153312369647729377495056140715536110587512728114516716213790539111730591209904464650478772282646668845469088660528387400825535152031953977581191356254559119299555357169708094821952435404437923813503114282039840806977446141650477302822150163600259850895110069822367670454567866984831850868703315502251394674146882340825161217379590551754063582070613097422825723753395363644971383963901281944482924029838852563226261482779947230642568805873790265458147238820138056412446866794585395664327122738670183808624962778931696974928116234158864526405212909302446474959764412543407100542889561256772943469739456280682942543293101231226734508731838547051445728068889512899983571082223975656305570632272430164507491929561229333300138543711489396452833863965319261508036714194068871417948022018875860751205775440299481942369829961914338651947158037915537408205924847163265826809106042712349847038601708426853527545380477214025661730165295650290265005167769009005820019261423925614193018947419722979960694968601473722761930743308027251741894537968287774537953139885642739833748833262689523996214250911788792872115300064541205583667729196732695118068876496598982458696118857683664784311313857813814882476028822822648798303120558723361529563774079808499413316292503529383997707010663075931443132053788081337489277868085063524034432675477507053410810328243637407384952028638659585350016174887757773055413570853594114900575192860259548579226847664294318821507139507683139473771280805151640992264805609345655043588945518273079347554154818923952990650208396315252553481467362810318184398707516413038032409899741294985892670095128736334758236591743954781442326582253920206753412690070762925869311401729455444148090391566456007076845513016553728367672108751695893533833603365213929964750871077314722967989101286759359517852802122433297156047207708735033263768251066916782848044362723210900502591665456225536680167574476800572539995078266333942925356707544901136364891059024730595074213816251636454180538593748011717664605570944347561985143542913260300903687003461957415067601624215867284980687528866346283897987218192800505819405441538407617468153151379132857837401293740356177483565485258874094569222933958017868691416335010646893454728501245288227167717638536601192638760600373973021722405922853725755575723951841751669687030351042756629375609082159969669767811874754430374641120218892253862959003078902955684183666570011614328744624373478764262722683074133995858221622969202859835577227937248632729074495921226581598000598670532673130752004418956959085842260699875547158339992910341222757964756901909945796258800356639770272413376285958544259521091624914712607590996173938007389496510929449938131833338072771697694978723626673993328736661229889929355820259665285224212457591944733819108834931076619550911244611524943965787134725446042584986914007755313044290785119622093680296225749190396799236902408219395099154437266161202630022271052946479135871374721680917666901682040319850373783790576158338238935573111636164313588817995821219070923197827364788666620977887898800388020419188868649497656878389359220410753154771722652976473909866287254431771764844745720837110552431565952137776450648832466258667529226172655144416518466115338761031891996299503372360864842330344302179269825114695071884650016463132091283465937658208900021766406887308477488838837373469908226015926518099519543313792215713250676304601555540876726601396431581375733949002650690545185326208161422896905946048479576031835525553203245774554179593283873823683983694806378242631812749785525515725101829212044693351637459700226102492462420810868592139146606260712698130438443146416845963518860854703858121976039548430351793012816599435980038117828082128468853725026986388863088561119028491008733473850548479429907972677430551463847624591096594726821218055494006068718525064832599319436519851538882630120721929558373432439806682426333481296363946803537536065534158105048678335877663197190920068012863101772267512019458287285979404731951274825640746217691627528838983177305081612884595402301467542754401863604731234940676109430386335800266531114700762288412266288838512058892904075853596142022062568023710905769396094483644229906990574552934398574175346717239704955025819057941564007359326353902638656002951110235775612936208128193547485031509231310763516142860536685837219592823278186451413815907936168478134216159780707637936828053876175372268978198219699528199698087920658718286428252346896015609122281496927247045968087284548531974602577772472860898658030192562203749039734228289112627003911410266716790388304846489285217854330959861631327964722747413988460601263447055172749712768568380558668019955467908990870796156165511733390332700523234300511161660900303077512357570712512637077650353176460872237900048584748061552553655107536957516170353935426505165222827913896652123390075803573894424022109545936329016860681566473538514935355989822853865448285481419891437408099971613095797696283455046293004633826977131631366145649106449956899902600684737642288287674639648446121620293203237541950388058266833977010888386097269891997014466431661717569008703508716628082908240942010345681840741230460916185797082075222983918625166531171280925537917589063268378433513411251539053511190821419913073554919726759884019282203836381921146853747744583295246418890384311676368846809244014391952780658670472068849804878469253034653007356814203342261257414196931724526889625231212960824258940944516354231007379769353661215167763274282999608049774038396665850765282039840645222098500735848424375963341693083297055604818924818672246791270244721740851205480744704740181408815209018953909509008855682599126328174994302639663550131920106240464415594145631611624394190926644467986127252125966623691597400332146139648479474658046631663155397703460246369745145863707417248348411544240418874426064015156905119454121824367682306798561401999484165962244984985354554387518395272304440778347373787611484080846191695164688059438410077343692101704289852028542378140309076712355992405481055025944435791693324493816148699734806263300995368745480121367644859636925327470499860568351899341784238359553330113283378706314384809690711830209596860512322859187425582885648319856843656005124918641664150374528746658180927515899904253811148300980188763343448961568059614191972025726959245664565967431462964521627230014411082705721062114547436153779927709746275649046168899462827568851118555618922743256098908581939066881747749155011169219850078420907242141151046996247726776439903754216825926308344471879903540014983885404652903988485218230733019447616904391478483616442124710420566213230987422788768034792771296924115829412081819585805705057041532968321614189081164494202408907683176253937609358617938577106167134686549623578728139615071044830633723594845078920760609768158985322650505035704811620064359845288762222882951168658972047118187427441563170466716801522581989246769875278266735498176816055328530335415487787627907781121713352515507495653924906958217161273845584824315139347996996038595503647913095010482750758585884091312545870074067108034752544699836670190761570303498822383698149865955831710819743275678368778407103637387700405233153786241356357375952044506741940084976015728217887146450718197975679038854207663835892170770367309602428177466613760914817977503407950853250154779942667651170019398065423856848333445586486072789748119813109035956447144894473491764499567199451835692825654011969528383422475110561599521448273290062114044480954152663059551706729097416890420209062021546345563159926711697711367382231093189358455835352005402042871444177455808872038204729449484662650500087568336834789279054310353036024022170397450768189345635155552490167806216917713428060267706141437798810161762399027651634490001145046980451076021992079255451718473789076588925373970222138622065884448497776409567799815774167375938646947209597275490632491458199214656639564740936734430110369915064108479802515900244122115353848981829789540781690635715464693615605291930990245295655136302366207443181720690644191478691969301484379364875087706274315657867141457797703471889061683782833589797856375209698141601121449734316036975532259860983024112620387690278576015019279539851126234077310199374402294686279368011331184213188997532813052853341214136015130407921460864814315931768501404456287053816904064974922363710719067006123629054638107473338755654667022659528557000761499923384443795088700630822112087522562630546491615788256030233977039787745053055050512608071752586509171157797688442268129783416358005321285754855412165537011139906888624883017653664770911825166875985576142658856025465113054285756218104571971752722725287763301512230102139401087940916074211467572930055429919274639465265693507261755310251016031029554804539309777018768320410649174207039365095102759415682264767640712950185555073914598266480720458281039612500243190597042290256189090076751784009345809958536644438222239487987813924252185669467108364644939586255660120493030817070245095384772484945073914985092466103945732489017480863108352220084337935097615413029171648491025718422589512091088617138260069195693879672574110468386842530854857710062661537361486345580181194085373601599761700810727929473016087972937756137479043510511686737673576581106094482665104231322388805602382339856745869904335454957958547436613375647004832189778020507750187991616474245363919027428164775845214228721299007783778000425247162232140740498977486198407208559584944367190388948112428923792484286983068673829838528818474487723582460179686366647590686768076364927135262833799983199127509369930924689422006456529128492939411806280863133863095326467775781371938698687493509595303271145962495976776347264419543648035310338354743563699228098985726304613149895821509852398324255095985313883249055930723998472041181973529653395341810179969551697442874726620741480050226919100224830510822142287984555792314401654138598502778201653683857701378152263329611028331643909772517542626636868858161922659996491845207056395282293490863438343823743694130957443131887647810357564816866698388323514359331983103630822889803519037751473143242327238792667525064653266734248552448853984671297169528958350577399465110605670041375350882570565055743440459210061115183172353407766208404030257334539159166502077638395173710580810105973512557800437255377004211306811679201003923359461501109827274479258801297127520235753499719149160427512468344136468985253992774713523636035980863253096010098370787384569303187065031217526699433605693622532257425903694353410510363832840313875378164474165247442715222937939075865257276020134661213765547106972076228167310585375152939498384414387885061381204510111652154998007422654529841433000754472694723638159515301216418775730624233971453885599253379943380558198153931462821287776215720041944184815186473546113019429201226835156539223005835909917009030973041782742759385449396090676339760993003627534948571909623763582353094023888067271931338529535368950531461625997819125226129116436260228237948492465545879796103539422875070624763892138624449623864152434520599615657583837254432422642650374173843470688961910967661536748967974614113473495197791017686192362021514046588882203888025578401428082826295629402760378723473011894228986192531647309815944105228802825902492139639703579446090168546394122981226164580182371668998942741601240893806510415691080974707931308973600415975039436476029240849420521071130883827543865500388475851555795441230491495595302259525480105099547637463903814109272357549580344835712490089310716555065019823147750452138723882631959117043657332878520502284553600845686446540125358413202476681396256823886133615072919311720455905628746204046891789563503297286417690425619582403083181846802181046349240709738812181371203741865479573213016759275111791065980598403883606307528652810351651002818894185387084358653030457784035469240008836186167654386296082810710420846450656971241169338917125199793119896674864241910689030228406559855517697620847260937782949755939939786200385063436374668690903199003143654459267644598224286221262453753510259765356894474203761222630000507741682539356542986815905259007593957785578963408918672781352769142532330274356246369180684934165129926366347961073543827984300372460596653080770622580387810406361010175081604814561169813036300096617377446236411722141857861999898390119318258261175454064155664677379878842284403568209083216839177611897075854806274081438720531902611309156366280531120097964743686116533178399989474902462555664604917838403906761997600768954772839748199756068210366010078032222477753318836511800789486140397177822718527889023902500422983395160490861435679699862273091591016847720364185062272446967306273514061593357694991100667767420234926521179933404941786459173955757677426680146690782703177422377086590427994648064098829226480533798682436124497785131284451603574824233165785168489843610927111720397754963203155272307131311215919577078470106402228979950609318228096188036804014301767293195814473890871016295007646701594632571867279175006715558940794074649197857612939638079259967019646175967868479031585333123038365934963524054224280319025624088246447115124459244191381810738605451294361260414163681655410279343191924988382834334669102297430158429002062192168533954320169713613143229227938082100684334382459129996304826062606363570649540941920294023739082986797518765489083977763305102452657716716355022473162266204038182978826822516076667356049597623176537907527764638420690916608494140371539818016313577439570372939795590239667578923260194979208249545763653593910814914569948122757666921175484697181342526939961686823331060322421983662595622671468038894018555118712397644792397229953768192753746424982828239059878346556321510928654613478789182440168251018406893456703668030672182645441017658264146563217029210391287954102918330694248072408269590916321376136358877734156520191073067175264455625130227064869520886265649320571793725288875202942581811315867938005727857238484791737737773121315479035198201903257511777677369664691233970087140125093810658790797887538085242780882581614784977813519792287475921857458302426470368770127106795783441601877907075740977394504271082161877027490764583511195193622718458063511301336709839652734488844286275517008749190561198443867946183402495698914075973030123192859346704492286942710444017351509144779924029783157801884822673952897889427136832947379362519998421987287480194813921102577731294426960527688336963143640885677684661083722452415929798421610647753032673799303005739954505427203672173143382879353855290127305378511634676457039090300544410433812258131812185457870227240978289570970323034914113362184708665722151714779005619161753239358729390973600471531106993330407339119770835614538279207437989198187109567854732499570761102488239649570458984591659354977880418936891434654942890315687303345340485311290448670717990670774324582396793094206916614353269218243566135423152264941387910497178205926735307089427113440037816368620234646629976200877946274364266467478821698688121647205512035089804403458028379063373661510875599615789779884405838313323922740171821334827210970976934232481366222583193829407466991958092489250302678159114287236735327388129931277996978016279478326584807963515628226638895096267355965208740731322984228594288702152591591309801170467138496897351609443299941112165210051427284439581987827141917942685348054219153386908648409475832335863648460515007482535742292311751007565639404884614062574121732010911423802142834017210257949457023185339798929331071047574479782397389073715555229577385145670269527619426314133753805701714579130129044137645066933407174219294571152310239263257981794634650431528603347929671231382072454046711586716481930354144041421616581169179254044745898160924994055787276454670908278742499132247972402406688909681506283225034916067166925462035555590331195563603405158684511502634826288612582736703762063093194479106306304038012870310853365766705885994992528971553428107675102780568706485823355468063513083872723754988167310017441363478255172594503971264199630946167280609177741431166784256873514551753788939822394269517604927069402515117699814032872606792652594190025634830199495393426963921440968641617857409997162258819643590081310004700455532275439927356447114535570242825478678021004741920593792446044821329447023567698996220290362791423162213061666867552979052599885940652285387707793060866313485585252212304977424935993138017862219752580442256683499664879289880867885794701283315163094896732376282625462116603999574224091004165033323159023195774553562790493052722335120296500341114760978797371633349288049178717003327524126440709663099189517881795149642366106542160484220108324689841888458847620672329160240724492828364005486950870878767424303995046608535173412269517509015998054782902738511196307422463384092033459889312309860155441052765655924745151121813406826690043261664403228607835454367837012875937998542030511972248271201416044153601404824789768516810877191842454719034820295710132898291221424238194982377793351328001449890584617521478159198289139239175527586483652472762004967016323031517768719665359812258224569935432355841315334713345009537797987114543961687220338869536414404482511238369335961714082644617418875826900254391913426224319098260411210509807267685877010693787274561961210634240943193787626555967146915962938601496990187142255838731581409551991391641247329177107238844351169679402871252698713150048095660496533012401804721350075765804397953922175670638485280207578083385947413793015098391383183933791991277207761256150635486383827603376075396484999787003626099736822765037807119175412774640875875885706896122004848445036092211738763195957151987061299007388589130224225896979199830852557674248171293893597934249098217806248133627709005777488655620045872129331835947205830356651647231593231549191636935810441288159392691282229816797441650453498323827675982842991466056051182852837595994960653361938726953178499002716702243940768289140562064579854376346370312755788789274840935177381192859094829882092145894255058284995418461714503808050378523281423429198523798548878486007999434658007207453430579551659011260997889717144893568024284250129536559881685970543543685739346487844380561335410778087777442214519130622009941135666670698088832832854974757719578524133942634775090937245716233861762082134810534548437757200448723559500797140514132950196665654847275658564857195367617117444444500465655279971191080101816626567353835059848252884256145156048617721801829131132867574906206439470592536969601485948214939993085143764628109310332151260290222797758842449567669245365914828527974901886674225054395211975808336894372971352018860811190708242110415693410563838065324606612305186496099786121634095218469554568307418712935650522451648805712040165702653276848034628295899887906777274826237291556497546701984133243042201371694029982178309286273907492007731659393535253825928195083194142637860385858779215677857849401567068020228241904543591387660279817441330715808436846227088948709899889914975222955245821302571470977062082504194218682960259099897321689261402066503606064845202144729365744459720114830134059613425712867551169975724186821446004164189506586978592726971572628468339488307773357239924196922970489473521849911125302961935875595449469375062455962043815455931895847641361434306243696896514557013857261184756687583044976340085433978908909995445335496604475544760564414091809616466073294287844127937196895389712180729528547217029591373757380456700565380339444084572362042374822894607207402719669842199404050900724009322415639570248174711291780617678378312169052038811510011181916335099429756311741413419529670320369323599909150335861434394793932101869627643566143851768164588237364785627154980795406801293562529427718416614343744551590018866893179397912070264722564558884441246513015544557893156923750714948045089906229781456475544369423498413306886197356335888796322718864322554911466294607083107080323602711202324748752995180477589548179488999784349720552742073595045609934871641957803887566065414224199260967424994939778643078760562631106089432004073480299853356891026731047883150855098967996163320711382359263673678210274561865705790387994272233143458096019985352840464161607231027174039464370532921034457710889052152471005285244042099056709218601962804742416125528327186156156207025154777937302507012178690035171995210154573858284267470603742703311932959473188998242701169740880847957939286246714414200442497554682291877989712779001528069726793798727027882635778698681530211470324274730462162660962539337586987090952262780396698783437582749511322108124543799609778589927691083302229092924769792891460484966249308772647378634397398924229935509282367957372069426943818184765006096865494447743185232052263666167783728010952118222530602418537913404219713162354254593114795690701459893085141202491474785585603872909319618438067625539396075986662095232951223166763589066954849987662852121295608141781397983751966039902673250510820590264412934917488016765224728634342659221932630890284249398729921699006159266298657101560474880802335108973845034198121050088551354320242270443159816560687137133908480992812363634044510493724513059928792930877303809910320744075818752069315059111092002664689666382124126452330225058339695962000796807654652304268407158564771878235345770374471221669249342331108218028070430774947236219144993635037488688951411730542797175847712644784258035989758308153039412048946633523337528192464804563990652962187106586420484888150232531336070885409217361649071508610943696034423600530958344991322679696278352479098469384204954615002013364077397390813780882116339076318459476159937876008760632042713275195512340461400443036810948860708826873357929288381021200687965563304427846692069335556751651948937778317859029260520427969082023197622487690951673422248681801566767922545371446301736355614730830983692384464697617654961505212520968088305091481581827988909172013424813329482510914348122119781499695525979634381341047456541275783392641412006145474076864305881291194398283146289808322067201668177284459542769294294635275941439479324058373619560718387575788943351715470284292045084878974788951627249745756050242088856059163714175654913168553118632426451812472484871191845010459162670814052602500942930087489598176048786229389631643569510011364785063608049709469815486988200586866904411535357319856469273442584537517285354252294866971060685113277819040755313652752724259221313649669902805568856942811966761002345927799331981456521929277350574364527509441018840494514596962077753505601902083020331006678366745074365226611983256229648198435738733455445985938356562750522462086285454563691126416547772558828623906654799811329711211310106014608510727236842387388086681719321097587121292356326527431274588227391539185806482021432454841061565323441087954836500095519880044611403482097640277407879969586092074015434405156513441773435132884912314484871697063089551795628613288504985835870199682851830450783857038323465647637675429175542480602077350180184852331847170151435052008524422720974821796908056110020261145145116379434847235705371047544453712101167805035301895388704766321663475120239355726163108915387079929270787098480668949745152046939413942308707083268669588841607502528657172643870600214117348831092580216447172338336968142224692870931931334681317244289576030811308615045139719257964742845339917143242704513576678828363816668338111895113213686442934582949267772452077687816924151228851096608722899472185146047156925505499716985596772876394052822924078084249509664884468542893727134859987838702282363387299705305970330373161714473993680248759876831172729436318810626482485838065136624385010512635908058404347849469321699832739080708937057768057692584550054058720475035452279383895251649712584131049376485701012166121046071566221547440857628900019621985707951631644528995988382787067713100826368058404068053270251790838826816037652394563312201464788279987890540169408487714892789270095487868750986979083805141147690081656020588350242322827502600957843053828634592876631944881702230753788631877278032440711038454874219341049596137817217661255049013346482972086549593984389834766471976260810477355614083340406608237933153855978967498218018993839847778263279316435320048415994387581208027696463172777775050179749523507748515011683401708977376888673056912482536473527967127881833990544568978754811312318954633904913525726169478277924288484246550452480194770188915545707207497242256504378050963730011051775204931834340828294442854432574268013327702529672439918147296016287358446014117522313002366198972271223221190163271223891264372500305840372680196955674704460114701244033723357459004039239451707379123544422575915097796719070337558383545714796479849867674850825599875184114463516191515703711160935571023637985058218612654845317505693277921223455318724221411709171059649427804157894430294430493037825887370722246680136852963475104588282321950848669006284887558446042745119666251523764884436611587369300435891315896168494231902464432993293948026546006726342610336095290620288717952301079796909846019106243765347944374718989940577599030949584640071694979361749275834534939551527991286985262490533260439665297222936996222155885762991375195690902715674294072378000761679869652458569486393431026248389529257438766658472501193553869977777809446024699391027010299982574109001290104845915708081418610912194410048171485553934200033310500536402466955473630487129502149282592993290376304477624267770418957797111338056885961621970157632612085574411903435810856216152468653729186764247557890214667575091429286823907971238607573212428142243589723327868207387102836111010821832703075873426348565166520932545141714900040429042205574771258618098882930551954620556351068339742394353425990259077508697413405885810505350032310339315959643317923602412654002297222336358001152889406663104849876746380257601702852741814691875828149767407336612198577230636388094864052988185137956513325032588280063206335969562780781849244844242429887826800700265554015658649871779404972164037587722920119427611913364904619766037027170614867061233101805786006068022228735269720265719779955674782611385634795890495768180638128382914171270091391305614511341521554042202398676075069788319182544571535945613094915201903056278704189896380767624498271364763274005214635837689897236008751012586866095115600924123213381455392195875709891739014996471545799338349488556546550640291156254110195688734828656570045865444601109861729302682541426394286875681627133426250334788425539192050344248556472574050005521106954684218310649994548343397491707473329602798144419826132062773003089215687381473550441298047627468939912858780533054238972050836752546938738533650201725005663282934765230579148090403982522927093146074312192143826201855216534988327956577341628786832589075282254856903242233933708804605929820270346768635972994203626848870422791523051887472817591227759282383139960092995420180511362199979397323215277011718807575618190226907514790818373304017000343998325239801028828975520480536714041139273705917004821416514964614125501622178198998659827287211382857887948922563553727828128320175882176960849407956797515417962344719545907026364394576916654912715889607977694749390131179070111476511780917546295273501683998747456239775479540874499538698466359207426886315256411089240651003256162157786500003946827688274313948224654086546834646409361858911655693417636005210268873906819547760526563894840265852780271675238673214242068803957654615694186857772721324560267769028812052661724135981054440448933750108109921833620892949610709724853393696222888156946917126775132928942537621472232278200154615574456475557412047268368257381025732418826130466895838224427446499657642103143526218928142148159705609611368398988137326241617253633547676286990673864396005370043962622192781722087458447841863516316048918916245272568579588713687705144311230300745078394897366944123722122159867316799051681647567764617394045721650098257183157275682896767482922863899226684972127788017803143466441716464339882985280154715669877529648409993275731373190606099986810654694252223071738393236297209721958115095512671174935717279526067566627849247992098556288135507837266934431753045542861467374917872828913819984119972310006771372772819083959889132525764900616425097926940931407055980342184196027997539971707687859177475417574392608460874897631385453885108644852929575878263131724255942793736944302182530532927102100277771298410269774881237960036125714483026055369965631058302827358778893585365035825289976801655107138193453980683581836003722281639891783764002737762979453715197550545673446963130688675036950893788193721896997586380828441206965301423200200010523719057379409497508753916744210927595232280482203755087216071680754199796465031316883132590687934274461273270892050537828423865235490319419979134891952914376784397257645962764910136964902399962211006612701303761550254933462742389743909334418290163043445466487003672115453144753696219278790741535285448309328893935348958460411303877906710585273836761242644322155780134556841676143761322186172349337691263519993293712150434439823008274899333059156309994871197640398804383901509757997818888122487581689016616266224511588660498088330479649726078069608250134239480777188103531297558185571846823765055233568090603171359943457692061549008287298776253613354003945483141327079810048136533642673444978664215745184958066784050721822033708262823684084631040663180965391129362783453469858587617660400993722253896303730154246735432504050499738321664879845162140705640382457682027252778451390512336893355604517907460455018946470970942034833314376410100029926831098291408425259137798690937906414594917266777890714909691978777836666380402517726529568995205004151035492314286098111123538027649100953704142116120697051047543233736655905409134496630045848235777484785202131679478823495845387364908319064498784126572619877946885919673876783539443289485452787213435228281048055781976764931971073005315507234264724691545017114968888159864870209371279894394081938596597987724834454267319054177542638469232552696782769972007848705859227005503519339947983020243356203565441123323647992958264888452017800373450252658992858653757699985818470525745445441000163820681365499347659987590176622451268120338254666865510506833911641069598287630517422055356402418977290662549074991434308265623810297586489636965375964002993000277611615287594807748313846581469417187809158911679123718446564438278674701460406798981967280245934640464174618220906799562871199527901444816764562634996936327985111930330189554861528715390523610746158529784478719854428356198373023179966701911465255860450784493887603592042951780410409155842371569554223805589238864942952084954760140639084557389710966344416852465833478572573678849459312512691919340015937582477820036907756949932847998320572597411667735805034457564614291515595008910079908235627556930045816871496614896129712196421955938818487502808256193709499353812852950919553688968486395093714778648790727219752488152932301380450650749177699385597617509061931466882519329763573211779654770102222628658044917709458090302226621805183059840941717872162785064628406744514963356782396247241800299845637753202429723289724137982850057992792909837799001325264850614809328965118312751462219986923965933164142655593770125968599800409671312289836271171773027825097893761098686167970583051857297626486631793199606143494957876896023199778139332115222702554805308123561865790476002196061775213455096442569505063963224539084685576387995308313855402795308897806383621450303933826449301646513180504336430352682559643807986446245286152184043819600735017165967344758013425016565490602519335814929536428093697633583766006933309966614590785699239027267020646085813829395835250717031918972860524803702438514520900784160096629412907773735730049471295064893242094915563924281448091348204305710977445594649842735207873936775577374127035021815665224451670632381982047927726035601302778183969751155865919206523318665677584598634907407212912503349014635127039846407977582616355835698411497818152790278107389893436956746488996743663546584851396411256004104115003369255043690290530049372973137694592692254832821786416269219135418236423198354219194145338472388525080040996139982230620005323473743343959623519312878287514124370453398862827178847332539658327990456462622633471862562459946947301705664937394905013923678687079156887680879025553575404061022430654709282023385326728429580155452077773550977610672433184911714191877414298294940264105379685988050250397747279395432104347020669309102234490336401520567667315954444168237581475436412136743970584943280781064567557075994455183966255556343891709000793385318910997504068253059575177833879720008503407673877472293192166159952559352717009836181170698598306362155216058438199562304585795706239508084491225137648974164922309253116087444058511386580445514615237297827776952669620371984209216042236891845352419693388109689161179499560900171904795579620558431696353503938296232397017516018461334290670724239346280639963876177237976732598388389277409946590947877018633841982162614421321507005688525654825522580030707262077389372478729250616974670528603872936708760610285949094422544406309058378010971780587477799883175711841580077061215973000448009848469406915697372493547284640445852404278178268961916929117062931908413116018373156078158451352307414880068253747485502343115154594543802301528788075943544400215000694917613115116432516719594784286747759536523117078861094762460947567694833892586802514040040081220396485852948918701021798701735762999229352361464908680496783764257639144156598076151236158485733202830475646509951686966827879945614764899946003605642428421521240036386836907084784024072735878336831806973772193264171881632420200798563358220525277039359958285443318025145074204304002726154964693798824967090900803942421735099829315052823382782300465732504146294845393470564726582334697350165725199859204097992040579469084618185117574159806427755037766976415535812415025688560712905150207404658288451266362611670696293009117605698140177727969006617026666444063247887548368206548974711278632407567742935411609011181217749575838076764471374224245856273214218362270847764646423874879524740125077491909963925638810206226225839390644439019643311089103801152168664559182077090854423951293171063882575822656152611464148141405292051687307533366485475704521180118780683669532229614390426653000354711355880208349164148587896313932247861280991706430188581278735508420400067412629441331980953583183326799158716173611793540710228894123283351140309434750063616212743856872917702752928069877141468958643172754187283137843774839855580893489059737072361250779579149381178396682087536177015261685005915326296249941730913458556162461505482831978022931968390760155496849389608526520780601296478982926640916555149813905265664028339674343883025956418271341412283478545399319665028079795982947482430487080454820962522344089191418300421313013335984231808848847275794554631737404727845198161083217253858048186234563936398966391338011587370180669765062586758984719402536242739216847433318755608543770800556748284771143371775582063740271873281758986854960388365811082418160299990107258519359779025150875903530656441846340693423730996968723409801192043361431415650390886257614938589611707202773992451519985372837643846887583102565923469131376022804057962376645515363306045439693784216120702206022532804880679537776679845909712935732077329057893057844034010796466962858961447820072171174169635981046572422790202168694271985202430183125057523742637905285416017819446869890701471350395543175290638450487260143338829516475667788487028998079829326987489375499057397897150697586786348232407587683313340235132739560150411187473477036659219373430954923786094495224677523445694118588631175345188199061715002604167434930682060502239844536390558186264073300829621747141665206142291813247043891703779985821711199960231086544882622390284560081430374246573162311926100525462434928882307292659966618693846919179711695079545516764101298917368366837773256743525067386667037004674145876736129337978514967424589158509233948233060340904107705420796134704752268381280112071866070191163262656639067432434286248778362832230890594614798536675669521524569038403142981370647873729118710765285332262931929212941477272106696760504293684359363138961634931270527197836345138072948373499341090839960052273823662485661170489278141977102292473748644071367766092719002545912549644285528339849680917822731965667429748064745667706254749348356498668460618635318912737053211432706549138139914647275085621348754445324119925931289890704040376537993797211762631625605175113834603468935483892949719455587488992264814182524488911841545584012180148218338937997422709905228204717765844207506794224482163533333215902441975751475820100578538639956285077056449329906620124366466819531920306626881617306760634721601314255087026980893213210586386811805364047764468846562299689952005294943186256149706691375520433517773890371114563309268436475763776711540932102089937169243032706540583768111647194223371173445815463628179135284789224249839781167376322197356583495009324061540329596480955561136077093495110544064092096072997533430182442806202755149305859586279288555637126835267515278539388962734927739740507410249053314821969587611550990350273777309551975046824460166394685507764859758629313404941224361106350658699740739517932494875502128470943332456989994337484151399250668848332066699979352662498673505902970473799551439861385909532383948014002098272863448817986052123913385420386074371747978091112702487390357156906469634886821325131365893861739530692563855578033888418120001056630554749155958019652675699144187986832321955565076280124916135815175657172679421155779787966599077147243334261025964125453354804953986135301531921422990154435605168911415817688103141623131671588432415193775827538892241596102680162352079360449574092622649627620602231594121887780838457140315720027389976259311886302243847525531985564935523597328918850374597603017388176601782193200414571899593886266979396794870137640075087466839567622801458168356678836465150265143263756944676985331179512522884354143089494585284930153162862611667078117730639576883811242955366265835927325189909686929743847184788052718285187574511006754833598507500225086888032791802097331255543093338859171579733977794063109792491945255210314886749684792139460107353115798742778874132133713960610194713429360663071314321799653244220200849025161453433626233186390405620887572220125473937182751616987395695589394023497043050466925159385075715041954631588967356878788646165054389312161842011031931486738472998472672804700964129562292634906982029899850816656703653290192812468994287996802913279548023246909601127729946944866617985096545502753452750119106300081715392122907512181703978734452162794138818394425538511609607345611665308560580043500049260471534855340868828800217633647655628358047901358614580038976067197696942803973550352150926779711418577531901547300665583013944805711036942685477676029037477343029656037411014488012613280582656277271831250145720904743543279137152009410767166601156684958181104944241039950106505008764753436160603729521407300339868381834669324368276439971899695902622701746620663001436300210012465423182308328012587436608338885480461307624216147184834603479798093652788867318683401204222431018818044826848473019407572903564669226217374487032285314886634768124315732114569630047996700699391380396548708172127713900279467181100441722659935439347255059046239702321657922386515417573342165965595049067536213826636369713157534287072220395253237860032288283903559829546165735830400866597126703754456128044463518688676119370383142240975387245344179017756381716524764345962914781234954573841422644068922304332974695692004409659376314049659130517986154827463226621981497051347155439719319535997553176255426920341957153512903429660945112373189233013982356148967975746490905711758744992128476368337350918690373814450114281077561118778699751080727495169361809197374508504427217060101631856170823648070917167697225888492605857469314118351691066841261744918513236235346581887989970925306889169845514816023643071533147653080705449483310763513048834288613100234269376611560611261905949470245284183433223847562858785800296399526873101657485116004874310829485746587967301513940970652543252319333202399113748178376924459697800740397497751668915919765651492645838063143552806501648056809327185888966790974342958000076235428668469243307836809504650128724175528365574184167940597017892459682544191881592226198082266430945255385336204697480628722760421017084689916733772515571400568282933211713867716718090465299991057840572469645793021273068927112225305346093951458667761174916492142615154990650830177076066906244645162196504152763635696566647363528133266264828542010553220624489110565372044945456791772901080051062057294780082288355416126598024619939037907963280439812941644137232220017139883489566700742376271155172766932787394292424121657424934745070239920797489414397307497285771458189933260915421233505636966347866288520138502768868801356616693614979712695773122401465459446465064400181271750777357390204911020934512586601859744842653119222171198220376790542206579976208175754360130490782425094226205383223655483370191636539333956210513676350942432157849981495433786451066769844108608807935073938910382185892928225826655892711061846660910761404928130886033780136951516682140230172222968854508028045688124263654241330092131305579190834216594710838595367143771480336242289304148383826132230444645998469091643042617098593920860102614379789589427929790516645903555414328961478255142590469714210992202539692536635652465767140233745624206618784590753887597542227794418066057970473693993474399698369588680266344365079346645335118244531107647205469537066916571832243079659200386732069434940141570621174219692116143693473738604411018488982453590086838486663630103496374254594430116874996171141405182094730324455964373290930400493050982852057010189986761256406925444602203587570603112149344718651204857975843482003295858913489459766344240476480409875690865392264558199559218845113448273442888766750468137418600477759125552104738639020509963762462180736778570943352928790691228806482524569012827727829568455536950666453572861502657443724236542963771462463905564340392055064534086597813425613074592666458605013840462578689211445669083266851032063778258128184555282100464176839905880723420816982912319282001831280588908094885627460571958874429968492414781928074423440270292273609909302747669958006440585966626370246177621703177200511093791946848833498736405994449917676991906047502226566788293983414350023562086211908455921513812952274818484302254837076973983577711196380360309487975818603011838938128910375825376553713497269858096315401661582321113250607417642148583201088041176001255070733586773190997327503624973412691233638534044376214336262813951036998411891781377554128604710890262487794317031223624777524280660014430695189800859865186437314454905554564829822101726109666297476536164209074910813000438574791305264357371564362098425906765154616194569095575491894232390175143627584903336750626857943049313812531565867088292135564047058832715059838978430843976087354856631731299599660593785038653929012747365383193545822348856071631913511877228097137705477899753695755499033021169842967104380614201139100017746148829022892177833557653922095683348235762953032078795181781552852370256523423502608577867909508726983143959973041053303761772501517721869149687074826671325550592069386414442257676352954567261647046965306005897379505632266396325871500332696769433257300286421449729153055872602579202207259190295563286134665342789419154183878570905935749589391375435140607462757129947730998585299813144476996654408675707825477369352568702357887744619343651924048840006764606837911823846172579362134983419447444041515096696772460676018600948436425913139430675977233068154892066487091214112558985882103105274140787607076411179397218461659227869663856896998227341869056149956986556670122081718215889129290109685335327097133476709166888861573938255222919081495827074193804516058398549896304021399458446629723201865116746060256570197121966205852273018117054931754958132383803110749828651652610191517781550019542200649228459457617787366202986435608009695618990413921747308059342139391335399068856522502437123408475615062783372387948911723054694237289620294457077156285154883454429711479091965843941933975764822997620067918034178558995901559360331206550233791578548055957181615184599662195645809726504547748354374172929218257127219030116469030124485432310265684862323898223004365447622850596497619527929515681971154461287776106908356516863888102408233967958102885090587682928579300142850639237708759665559979950225705578284759886553867071303606145560391010273472863342665966993904586982228001670434700739469628060330599776556665728428805291284229058757059496452556774832954224375223832508742187027178639010285354327300277787679326606570274079787790723422210157083948638757170810781425110798351223944114798658194303469828526639435569519307075712585195230590501938704932578635455892176963539897355120396540381575644947170112737791908414744562003694558527077678945014945187011547112068657278866016898529145702049097559260477735150088678049705385097283987574849384525169119940791045708218699491273531358829064442122091501619480281736831161648302933092201055277244126497636910284647422792471499926621726440146586248916321591794928429145334112366645816585873128813500360748507434182002280976235336449106238508031056058210217140222171174172891079202155401445073330782847339442649084529183390728542403666071486479350760732636164185319368325155126140425081575180540893742965795440771248435262758921767490209417176024032065852153059753290778792937651612706890635342447909251802783214653515454328005470428724054828264842335317752739014491162810889305264563400964918683581591974109928400196485358506484653609285898693100983628666017614406383439385259070272417237900516334255444278426812880851989029355702817629371546908274629146448224848124996309295212691335781925596698091160351572257136366112507239149557273570595086509602253683691362324778204715975860468287203275905056524617254381369738133344134749397640308281004979347099198380861839257373711143911313743490545917458658454485907264433726652804691732523744683063647194752602293711288841226853231636736938740538512628524098026746635980831735980197608150638289354523403926935206276305529454651082710954252139285896032046454452834402177398580773430544841500110567877560321791190172299764052115943764458584490998465930845601818779850185692925048094581165292985082172621844850257655392076122595718747182199545440309439833490642039162429010470332717911792541908684738824329504192066092893858522519281521735985099534364289807068587836121395995978604938687740733286409727746495627932781142367533622818670128529120197811729895295218281497497223839622069028943350827979463300509992281946286748253310761695577835864157728865815621471545180978182466929798722276559815919603363675937091592182911010462194929583305093173098429491550506448880251731518606460922245712019754943099591522635130503710915727532729883032321505068603055974506913380310476741502468024185361794881365401250983226101002582606469765051664790755278364417254084415556811609127597397405305254594519285408272089914161657652660528957916189282991917601986219600509681528671947697608592467006433490382014867596708409336432477435362387059105831966340664680626825472768776277071936612481077266225704275184648572825825881747449679835799265386865051785529576910772185191373216313675326479313264099507550239904967513083280176877758966747104099748374204635110458325384322181920255945592994864256819660056595533859035176846661332954220090279470239434667739448196938478984739704075686103961336576164307351612312506139017775272286724651551473830749571395926494504946898723457369421276931072830972335588511090831179592427713480919703503486080511606652471054032753362361292003164377829256803410519749155274402276273556569964045087228956166357435639700399051848416520104419648417695323946486099945758350950247894949040480137797289026856003292865848237086148400860635385007895338173693084547710628680574826007833689438196445008802783876794543596510712846445201947412863664416759997138728853376192519860212572090346656438798024487901171954902030051370106378065140319515309090338536543618698805374453162407438573202081618061697234443842392222091738950120941870962549788126344658665826324909822213176494171340068663314567938173929916049634186212280702648130608100342261533375584480517290784258440600270836675229060595467755918628255641607069008673786734543690925909914535484572831889580149354199312862126607155391472991971595856295209000973224643422473631453159994833390708674974033686626784966680111929532646103949808016457769876158433970533969456524105528439641954913012976951414002118258301885213541832277343568765738011496983109979196599060335156579062602609792299798790276750157204588369453969212790815983320750298157986042022737711078898729225877309210696550555940039930804675538236898246868990867309824092753704900409227805354835771589306248627801625718733585572583334174067633070994950650771462513102145885596371420520594609208939758645531243052462111760478331287383371810159680806206481387486072184269441241242672599925836078918382546440261755871190753993357611565915508652394374007701516733387084621523766093654077974987690045592137844665666074046782960891259834380789545076782718570410356885631373185533823359878313104339915430908234684451956211835944566844229491818374633248112203174409288052564193493015807786726374391118051085825602445281670219916123461318181231082009754594489828778620321423337076064913152487628269384868157580024928620164746477973448311730198082519795439146446516317082711015322012043594286269906049116950742009952990107602039079990989829214029347499244252098757773046763225788798975750116213084804387902015910329804695441212654960392700170617240376556630007237850636957723611460910760566193477547018570146353537727587003639017340573280490480462643706911552100906218872177477442219443991243604012625793161887948666199595088317714635533269231137607631498936458190277433754546040077454288093453326492216519008421314038156836963973247824513102155756162756931607627410062354725121294122420525434635242275407398271546475199339527173507990050951889346755209296095954035853689034620415870638573773847305899269301008707396475500910104326447777009377649964451123425120424671252414043049307195130737260673284242704507811942192886008376467132684807857285098088543355262553664971827447452685377004249961445211828115091176542777394170430727827067078958785759138884567346206473790036998641655939627124246031425264738028899969993787470257959984332521084795244026491402296087009287545809761512031645625265932464278133068233606682372543066771863269502097820617820313243878133913333931097566789109731351055253370330213756097545252665207382003276756152916360281992430889463232740835837007192696001359651609857850077323633808648149028589638739955373481595605059554627070864257210525961697666389511519402038389314811147001419670484841139683168571644141507063740644470809917054055948262837887809215704495707685373563778309313685037953306530471282186648622385433326686274962070636000541013290627264662050200648623183120367048802201437408176881155952600733154517717564687282988462768724639873873983743027931641349137240943196329060002014153952123173759753797300621086199370078653636015122053790781079777041421547808717371654650289155983093335167782240242764692799321244725624748054329865590647450709120434258552096837174833603225153475005267599672261198572509945741795900059088058107694422301139420784934307561374195018922923098033522255263724605914574305138964695186451428419491134033784498784713594050549696322623799716480949206075160085240114808563328280774483272274498371486273629401654852743128010015064717522634080252735779839008495804534149992277419565373583766349983680213198605402593693428986264117625983286655785197944493070142775334544745381154945754222548251297756987646599164935779410078627668857588390198439923458404091974152369540745073761304599942532593728597872997781122694922110738549484608764655073801303935423130224396721931399539531748675992149807938949244119774431042086070153840963786566323464113871758274556189208926418138219685415866132499685096553882716504683559672266103759310168975099892420359186268562289319477028947721072956678581652986415714951192360093223105209547960461439083086496015286113892547519357545649485936026338032933422869774722387155677742023808814405835692476416947663773474119108540093925238761392171768414922265675432606313770253715263497983607297038971884347302199288695652119547095241958177228523151941982229153257366120650233265168277952669093842125423685783739673855219902669304994621438286376232461438771215826081370402398279185574803442773802443594940722630101884507422352350029830748653059448897054850107036314475039419395306415296843845491797998329040064990902162973346401737447200698489165238647445013996995046999587225461157885557111562072115441346483512189413788995447943337563869422228816829229537293275846572798100910451631404445078564449508055130560893135949551997228179176530572823510569173892069882502835276657638531099505187151638364018973622230901804162414964573079201714532036795230377442093028387451821335339245701633257094718444343060961157723436342624498062457627904382271899110326484445972294972868988944311034572623076959890461913276076031769596442150201632567272349582732072976845547667274654332313780676932597139121817992340339339934549899452314273518381313747401190859732669899696851963591633006564318458935060759299532201972319100199638641005102945624580680039153129773086951345032890993988247715390732474360405083836162889110862528123187538774889602921785525908756663429348814924090209144170800742203234617481285530935442285601034182828348248742538406094912478833871237343490732846725566678428839356932338054754707453449748232694544581642698400561005535044424751685979821771185803169625770366951705745658960316291593470796580210316724079454080607457727272622921337741952341115788121071751430283643730671675081752207448219948995839345902531736616548344279919967801939085606244907078029622169539874289499925925221540285010655034479050413646075193392085461973488759698452137798947815259983934006557507704249988140603588535509099381081959327351969084894379433202247316515405035179044191798465693698164736096751139026484032424128353419340753128029380244930663928974687184725894792470259238437460987368636671036754604371753203727248231496583152846148940797164695615335747529730972261502163107749714599118895599405851076716824963931729560606569176735806146575035806658162817349265386432681498333645122794829813262523976635700210624847864963463796538759708469403501839159202822092249755609506128413709600717971166112155673081079690922007859116553354962874708413793941351704881217808054948792907019015618901294616831131274943577794451991536547015794533329697816048968178705133972056954569816587878438439940964674397349409162608256532400994637735906590562684583732395463586907819023399592142882881760807829104781529039261299050034779371012502066519205399037467621191430373875133209236256705169327033788727034081119803817322742190639934454609522742728082035541172097311734842283062794192339821163438077471970251865201894425101430709285904949616418022760576159922521381941049853668371129360170452975266277758943136669306390240707861389089106384827663384883562491407054569943189445959054979972892529710083893915448610649592277305906392679022227314660638100830742278394586294587190114440090294731474406845718218812028375741771226415164597645883583586307236629786241664246178154954608961460061210369139314895639649340577638121516896483493306754531814129612248506703206783852221913533539648246570842904353871461645111016123959451124604912025518150649616787114432044929456968711840176749820598530860975836465837784059943723887562376895602911973412461742437786694513555220086535466452650846924448268699152184972641251758570499161351438832901090559719679861643005427372278825638408013033785783837269941112689401904754566553938980077826207562183337416010581318050956650176064195423632092022716965754960391353887319443865576928383651452390346006316590427097088613254567108273724545087022580012028657341606680461263269365970299180854583311332130609000864283048106642409077218471816378980451470743044452962932542975429896711579771476218798363140745736860397785555148074195771786288628847742289086185861921902603788367912320610029499202545870510161784125801405071063182896611196278347977249448124532199734060037435232492669042856469793931313296692643747940861327924959089747510692805833148631785270210266714642232800226724920571626319846257506773665684421716896348814682806199334156715206498210097293267190142721341906948329702264027425149127372436103225078586094058735592887186729094627038177149477956183408646232939941791875719811976928975509421527010795495572661482243494051734987823108031520262246898694763133168620817214234637633221266038989610771062447893383107440903168468674060367443029654289295456977819369654372259507549230369641944409936707857066013636266420201030212116151884232319421147533890775436843235465144215981645995336013459986412843648937658339908692602760370695121173427775262485160595227838576537079473906154964863144632121232355696793580921752244227852797324920464700977081626540475209684624559238983815035972691123364327786613832669683977035133016226354450333461058547029625365106012118467100660541677797751224329092432773086721318216666995483220740953176866035040861057720188275089227647681613084386119034323035811447226412244690585800169974275431831331725270361998120654067583212719227209881485018683319131722610901220360208151378171581537568039675370219368323128012066208457686349159314362729366796087832521766870264910806022004867097241701869459943904023158321588620300434568920065238914697249464640034309942124498589896145241062135373893409919847784448054887980891455015847315997797683811957872278626513481401641635233629925555255190442134973063302630564600939289862046438315746619428682921338112262015945204613310379458776057115161726521006958294804262319183358247988153400091164784263116680696136172160090592518981254468909914364238224638917221069288894707895127030873547608464150262050140638003995111245468685038541768340985715281928669348113511101681937065633369263544738895290031034653162538203446232252220939281846643110535713728079910199222851057694023352540083965064793075669378864367969212990867543683523297318891418214742915494239277416492091984092992731745709086734026341650003453440117435851534727281475058741436317864359499454155000484476709418322061791207639065216879674567424913315352651519786866088738992043008337764957186638083254081577191475305767107280048914037780476188441028311442774679914127589537211774315647860365975261393960769717794968221575571090687926163213388815518924134184028455742621649866432299485466408952699380643587511195956851877141398101543227409469953512047263003270390799872939868548796237644560369804012980201842092718069650585132752365661268839683004476225637832692641368143924357858278601715721599763680656141376984195871108451681232802047552632731339479021706068541561994744184878624245888847519536569677379925775954252510676594281368639053009238528559486551823978292424996117008054246949772893178343656662355869248551404870874927703742106720785825724534071481341452982353765408672434127747338387946552558730638480338079208928801532020456895743430071879610471057921021292552087584526437001469324219138087331427713486553803449110252668611021928459332020387547184781268855823514318207145550929683810816498859301680648077456284906107570153449836517802415772576400065221301952587022686737989300845442258875663419435144576726068396230630131077296810102631832324139161000325391016060392195444044492502411851254000037691972686112389996303859655503104731729960376027853896333317325082198945976620618586225260533269156377665667906614372931309184017157929584799872374906510215407804236911880782799686816187489694419228225018071867993629290487604526027705495663771364457655876080421499851352211865909278793268422214659037384820298142740288226783991922539943593155643472684238393121358887884585180426371798397339402637231306201749430925559140582802828639308335711091746163274120084695896442023621197818433251744813960164674352011692120810969395109684368315779745950110361300584197806612651981786822260529070433350552695051936282199034843600738599583758081490103176521205068466458986724358271784247983403097873052641022093357865752246971449473816995779908793943921395142669381043842129336132446070445551892651087716828863084996089919562083374081224059748582430422004374805366103374446188307435987742808895413196513072185337521697286054079016223813484092258314120244103809606962416221471621274655258747059416001300304177133214335221782268359791315103521718910709925326169634459951453651007403743586187314326796078889103460407161201419323342314634689541161578093763955631849232257665437085193042505735036912624000309643275696497874962972501169684130056009428957195590257006053537142927086771639842760092653926101154741475779224129530420003427370225175126379734128272224220386986368410148614917429940698376934608226526926547374845879033767668342253783648856740545092138255084969492334073523985039770849702893635843806660694272351189914242665713362419107560202706820650583837398442394128176621502742311999522985014790621253107518207162788322624786847352713264774698627463527895472719196870826030409653967826375841043793873680049809211192499341535066037813398146732590566561266233841302247934238408986452803716849762653541524467724611985145591511973380729680599303106473135205598086239726504611213280688303485861483313924816780808099143897037905462967038565852436131853095490871449274143490085150490070714986288828087241837247807311254466795994450711135527243975739509325983016482381909765537496217675164760788277516693788595991289972693086022633750878156693182221148117978216046607168480893253408687520056477672993245616263437699855854501102121275509534974883980110261998747622527221876919481282498454383336667137205382207381438647838981443016860814149381064765854706646567731772677041059247135646207416430714038130968245592431877568980611266940638623003939167612392021391810419120717700898932857115157232900072784399210332358454877056685720900673370141752709533220172109039210630068625169550012569243577455138554779989054699266742044052846647031698820118054523482390447313440675573008486990354172133761649237014214914227281580282255661407228409703318982915172229973058638589951919283290510314517775456034251102619447637207780263682474715217232797294239433925568619079168865795689748683196490038300961127662023080128431545957956216355664881830734235032802979977137474313288428738799254901767169784412414449518970447727596237506823631617592476811850363295458903290398189916946784193100703358844369903810342495588395601840483955034312096428200577568663513131745989980473538555853222183616408957330273179147734051192303442873251043938052745760427731650384973475946281317214717237776812238621566110206711224426264210292920388338961350248438569984702636720992667347254027315113951423998539665852328678195659456400277611938081287879239956673241207491021974703815513222883694543725490129248820977092057698165891992620872282703361401773746598006421839508066839516699459018731762275173620647480582030750317388587641246315685041283695170709799494245178782549852483984164805047196509337511478027024799642725297114406611489287717147012278310744422972393604353156759156040884159314191331963067987747959746906952441469898547980307484400599626737525307154934144429250366204041353321884749763529219462538856645791180692422462780100196548582691279097061357078095161093011924639911846576094571644565813475133165112267841697848672261973574134269793210482823411185305267853558120287614661468312134483121522342706037242668673492617322517897970588375344204635894397377879177209047036272133508809803035728204539032998409499492700147794431923470009962230723705845504769220122134709984500126634612144563988817336173992860335912830239722601591859333512964386990088131428112631124662588619983886974679674456922886313862459198494487618630842173569515711049849804057985748708045868253888933805725031660589660852260409526104586658422470737380027417730484888519561635101493049833293005508128039535477942824050107801668643666012852908910462530945326935341780549709158281121122663523055144778382531496671985440398704095163554768937089403831695509627809366366378770789891491409536143648676032428193023947549821699192325621702346225506714790016729415498022752534618564381820198740178705665120390227224234303325966567828410052975627822309078563257597307626942931254538632663439107515165828924995820427862629041111445281157473382220199733145558795736875275258131064041515700887833480612828349949996434730173680365972848626086009172734519610427525421782394971758328530890032528509309294234713616094079020022690544399671787571381850541636296839396409144597783552485315779538231077760171467185635083363907860017653734035078310710494926536190713206987480462089625276918998592875004792990277273714936312465011897763578118936182414662562592609239282258394094487657693674217587456358441753137985585121255485267748298116679803862619924401612579873887625740106206635369507550951748752089419295773762623483071611016844558079215539589579629669676627732471222736139162251864702536587346183580932149107049886443878762133815657013014455710758291512621119915709497603610995067346901105197324902251667249646963900540302711683161842438263505581097989002914106368442210911991737367920137650583979724673180196628128682478782336293404124044367685157824838549800753353050298859399277407106148333918395360044371887122770725429488412048377355584753072224022844252321346097705634214407405396782004857021074576604009108277274126943111667662141306952124995103202025198404384742088840121713625360844693263604942731386429174127211352403919604595023370706757341156932552390128370819169663010543946497821010730548040346127168012276081446818817568133379137190725719656552330451599700307897150316790657169364840513431199676181164660884573441923138870428461646747915325913253393446866664846993524033983833361202735500294520905381420426294249457763897820576128589088417259793874772094869871706025518705915013821706850321991567780030511784995995586971501568635639458024639241359852006298662457130753752388721878998582294599690806066409417943618358993822488807026022658622921271359281967805259791877989029816553355022301012473048730760230347463455784798722836739869200626288716739648256730514081037200525101514017204656535450939130051654962330524316503575516586446336545581177115361025918665502174326772337779112430232147046695840635773578634469855675423681663958312436780965206173407297203154924781305974606668842685797212267793987161469434486086981829637271813965471155640844142781503277802600394088008590156658716174841062475512064910775931242225320670982308476206449056380691984455496608722013087056893031924466249274712124478760097433019688444008412190004793498166927420613882395988736902618038261429654842870601349831342407472809640878488083508416355701067500061603638862135185269461428100312154671722283159195535761078611556752366234337008539103491394218034953003527080853366925982818093316656990836607468011272727713398794579098979570402780648523920595167391954256457144989783535545639409418682624695169929897463995881300558372297199142809736991786590606692049714697843708931463193176400112068130802019968124726101694603050390565814308445071041685435994170188386248368899449424267392528219433579860332587853539746507530745206480758429974479903254620148928117107499263448624444087469929495132995377100208203397064108826959115270092858710379254915935314987411578127775304297898132810329134878642947870825265482051472876896994108929929360394401960212387837786092120938477607413790317473604940843154794055918652594139481670432681011167070128905153806149321051961130702548867645291994395384430023021832975240425124294758457406567820304573516449351908253210848783614006888323558127496120640338560423371037006071201213644467961484675117479866265667066047314765419313845444494465874934499222810343548442935655538968712583261443633129135838054861904495830971747605818499754504792154702259502469158639584179821145361164236886887075822504443700467208354757268785045924715874349136458886347682342849007902509068013447679811426036598832890176799612769401052961498189363086172514280017432866340512060508596181285872695229472957035339379883833612269765616988372034834609060001263015504142868815979216413784116115817722835822069038622880065773199051367399525559061715345144316795182740944834019519559659653512499676589503877553887144650506266550749875961725756914232289612186342365827023759200894911878982659899192102921269334979072510360510363699821848095814278436302944957386515006851610332697292512101265677194696205009902076792092591727603176078228411548306389471067613691459288747597186175256905982191829480398626634817305281801607145500936195200849547559320539961666100878864633397231337752650345022570115755693226441369199043693775162281086993125697232079726067284263463718154704571191025147307001274035842486455319369633217040757643111323882643081786699595053074762821820465881674743558588992882999069479600521697445979999258877233197332329519005660866751055572100566149715150444016289583705311737763334482797890367707560734564645507474351014993136476344419512176005681017711552591807344285881434451688645840340837222869339963038323508949014395917322810820984003653933140203476048592131182097438512218444547887530024414268142904788900520483699793525484243594837664305196678094425368704181410362920381802322085480318060550836298996730579318691304988171575613288202206046573369713527710490170713671091752621847987725823605779427632813543633957913587585202845185906464768185266126015537268377276798450282969037793502470816663379553673617506344283170376403106971489499775871471778304354436664974888647660075272648375185366718502857132333533928261216669841112956653705950168010592816846041442450444409804472220573544355328749742917534580802759559308631372714760324396175456904925942015090503651322520002004549301500904322182847176216545627708455957363101536938742135632894364052524671838564301243103845163070104357976424073668984144197704849715243144779947371949208534528516426045474827248183971070731034204862683481946278371930579964783844394668712894127825639415586008364534255792142608274134416003136384376683285247530058863869951122219982045709236927277253072478269706802585135898608035787669596002043085989488864850162431241817369458427069006751045451346640576363646826147324689582305705925617144867420301148425122826292655786995523539318815065824981995240173458366219676006809453829148817120944102723701900019024588250550451035935516959616061355723042116917268502291264730058776838243681772255123555515034443641625024056829796873359849918056842793479407069587191868413409871674098943407849137547148986284705998354685502559681058703481139660808838219298124134574906820248157027800641495145585004390354258842048238137286927372055016574113690351195993961665233429369768706034086275280585274894215412639988476218353295357819431095059244813333419580748519680538907568439561268088178740732682501752062169286408368907635354233462585053258852720211495533538272506401760049146296806430772801689198980452228309479503583078401752509900323964807823098340709369569936574224199754487115740270517202603159924154420623243759018591974215127556173268994007151093494957681506829685667513971623678974958526541610631911532436858457583965846342855145350016493207530447904427449878636747753638971050650207496701987078709158046110622987726754587344635048560242232911974017817371024753855395279615569307524968378978630727859581163520149713522754053012604130650357862200710731129442189094393587643194212654550801276012759814890932927917895069060978469604649862944958870737859570959668440398361169479556775932588377005444392474848992815134269465922543935436393672949512436556131123212579821392846084371662019262212281250004736416319383495580266056032176968272495335220906257217481304754412443446432580328890114031313979375642144192148567951153720209296158483785879207010823932262040910715412854879095953770803461027812560911585539675938946084039453530644810729031736666945936208922860737263632274829234327142991713792082103755360375148832086260430914573698201162099482380223819308760332219132207491377830466427640096685146765858990649078757674803990694467910852619019647473144441357062375974579872224272354082875530293717989750102163136793002766431220538454497832725514726845173860592390566715570126715759885316894960648885006918598599717635916394114335939350301512714496364086864130060991594494883091276251518435242478658979729530174911412158016226954480973954782055214083166918107476374431656606445151032478459362046197657804823828756562019697702711206447068512829446872338088874987142483631900947260120209989015503765809918941481141124776946423476570239982457854604362312526409319975165695672177911015706052952249838609885407470886424724726225149118502927782908637889395436152870002214865814085020462191027526492151824157351076046772296671374153884458596584385010528321198057257610111296209441313490857032648087094399820675830755722423736801619559547878199639282182968030946592181260349320768147623880042657260990132685358748878002359767103603040837297271960920957281791904578338412033034834060096754118437232916460462444429298317565352033671612689897073421019511385163296750754283991170661126437205434601898767498444244463050869873562722804187259579609131580593900150150960578827683702922565311893601382800845042647531918416943004474976312703321253557368146132307740730675854421190665382067661901274912426964425834033442150651252747750761117075709834604800519874498721082424230938543166237007524963410905192448954246641695409270657438537896762423343742209307629536844003364323729528192590209791348137903215455262668149733807087475155485648201044221301504798568367150593165779396940974981324280526027575477663782901667338292418026143407832247635468066248667436920923167332587953435510819855046644799610065610860448989625066790897633249358381895100947470597673630406693861561877349761440251720641087204534988402661579496591363657417961407171147372404669398719824777369736503556460229812706426248438660134918028928406127142203117752675672206300209581774513540240451620501880608707570089324788988727312443203463037661860926777464772726879618479412853038772290733026585702968345144330129337081095246503515112536350004041103697047178514256185551749778996741784363850578617097416229001026260744243494059899650524984222767830177205019438580298993632670824605914143887858347458191663352970009830834877968458265351630221766613915052087736721628675153014273655210681843171229218332601139215693435563235510193108273711621554714501224371604560902681950083096913281477658144637885596188364084548222283471205968757733711920972179690514879300691305201436521807814676721989874439878012360843223306919815439024109948093430921243915860974044608274892218587517318028617118694881898814979971988115717992660114731324001967670930280968596081464719484311114165548066725144218546572426562534908720701946939736817305912265046962608767328779384431668747439585266024875469662537785108653395620927188606884608278774273537204099947734126566637968165791840272624818876884239639738539575256037011409633602360978532633549909237079181064008400737667377482858809522260481772803078246169853708213491025679435857974010615579664402772557576480118231411771221466393212636044568233451158444354248888931460395870451737849694338748036502010068661780229162777229049059834450489532986631002385866867565811949663166477883187846983579973477702943941675544369329113161811403550208717687994382146363101017310669423875989135924658622892475084920304402996607010687520355517981747961321856166576657307203528623656561820214375543772984169165211813139959235374042082825639161652023335194765965149714648237618450708456422990144539179516900882048256145870244663917843915895897963763522496010689727269264534059301150776941518243745492713591743454845879726077554245672953217798263137391329530410250225489776736159753502853190940731633896344365970721895970407183332832394599557783256310261116864305400312334355895999458542649089704569516646654605079517839999591389093165630622305118759984243345188232548690892451051750455656860290093197507110147321311855832876076913903163113010760286901493975589038892254550221274078930343867908439936405832532520808516311488719911677423316460691493006501486570762860602257907583459641111011955764449756406496707451653958976966288136156598944652988668127153076963086034703908067511535795290021103339887033335637967087295189391220450937956510559012018359127027528716469584333630426458012325607169205497426495825759497785804512776687842463228595424436299321387424033186175327827224761290001161218379217444499427957427046484505994143682744971912835060986912380472868949246819775691189865612454587941327644454135673211082752963211018058058260337107272627348729302983792375411855399056939699429283497057451345382608172696969636211345259131245265816816875117432986410763913684280497987326225745317095910234303419559241255286640091825805513072178238839027486425623353195463962444664754105271276368005396180539655181231600065874161517540028618309444518147346012446683333614246612824781639039093371570560370350562723674599884816180716655537485048401574748092356220372144836460141447299122538246476146651681523358901746979982330010172559100227862949990941024267755450970553626578157746121354728020358537035114600999975664355576114798749120978630056040507634715648476102991256272440651599016207119473799064290505626072704513176777315205257417592221927759426583802773789808831018521444205804367550507046380366539439426677283329463780674238949020149575668762268453535766120199602706001847550929250210589569659487697927438577134717044312385762960825140570265687394457257056561786920985547015432717572643032116099919489386180318660791601372112360161939239079749250773655869295303299177762215744602199389032718066451853460661676176762723428608812608704443552285428581629896466365372995240230274903900033795560455050643924482033939752867591478350783856088611311092013601438271205190330152163329049159627460311190380272382166139748754150657683882132779414411048287818672697370628759247443970986594780832349833620323930810884082783275049014350724264861157552530665999822701829916513676413939831979334757263559350587225739933792444333561691501529086837788027266289645301941033843528961880152497728537500829919483920408461341206565855525667792902216360713403652145455465767965896842555607014132734701784809811076019988811080955841970996888315064041065231503945433272928578076493009630864287379226345360557007781257748546222186609576348434013154323926266198273801680024689637498545255396781645674373986879853677870185610922978553402468435647485105360731902235869290902067163620268268878677811697215065598544570374426914142370596297430824857307972144153512053152435187830826107039290400712111251621987831079474752675226377391216817576131492857184644805801350819908017986254787472652172088912464610630320556185780171273207234643585405849507915018686171383085408281826965774827272729811234693426981439322658378831156123964151963859912128230050389850900058905817598853098917524609113356014982081646520370247183684839694644001309651369717853328407719020615943331061799381281187149823614503875650333287035302194472036548215094133842379130216839972959570670151657411802785732833112182532062414307574453636320536958808120948637278242806947286597678049920298452258226152795898284932866909478027161957290765926498861817661501548429255827282807809473216866165035306316252488641894111281571223720042769709593417536817750992880655177196551892915460398376826499569131672407697453511853483555268207352521871563129026363056188661121409577622030899227206045893366716007455028942666281728204205860780060147317591030193142742879526181779424431404184927926209227472665236170109560153005874795920808760328408345944165688571475825616250308996227675619045555354733395243535891945817544174134152249226819894923180049861630452669093720363088307028814826719468967179386142562865671568424526391242542675798707300317316489680079962966470948203761717564274430725906151896855077673328434084770101011588698219153333608516809216289115476660112273270740824019788123197124565265758229952399191994731691138069581857808119304555632932421842773816796714856800558251608986473228922415897228194614372617728527765712264907037092530775038138958268380954281724269331935348218634907698398043931021900502095479884936062899912424955625453204213268762344386751962479873183810171018793852890489404256278145441437757297779944312126008155012892994862606653334251886038634204066406254361007500805318973141939245454864508846973420354895605443743554645057628484115091935738940584374473290974300417021789173315312459572584709337236949521976472264935495128083890171647524587935197916632356628220453960376016054652939302734489732862694572077615316516043284999900577011890266720042386032304319368538240931027143805329188181944935152912422078621299584519914148846997087988471144689035987384798762209907133458420762792864058371140168626455305393738243958140822693958718928931292767499599932761262834881659256861937780664660918576109082080492628649893629732845411201435705733558979286859486988361145517759059675772067051187328631638806666885436277906248375621875059847961527570575554062309929036547412739206480982329809152017077536487757899766798155849301165204539661212647889052640373945569709594347914747237811060563764633885276468966728494354631193343715116492561477214620878942050653279251480631034454085023225732933713224270466941994200324762472332446612468768583070154135177279808195541026021239377927890630164291550828293912799911054760990840359677059454166400270923539423610450994340313050364681535656042358374294723793591299430734196313636302339551168036276546302710966464361087092046505006784016398574334453979688902989917068944665537469438953257924832805750430844939068951581484678067599188284504086915675943989429902834753898440750717411308009933476902434261517401423956941791374482725028418551593102365694403576561722248348736168148756323184956602390428699703909740914059040406929027026254807024119317544858321945826475174051946929512477603889233115778262430720067167948649584432297639120461725478221141126403741594962221699748215550177389411895752769632323192708723133697193306342682129185273794611316337493069985941886313151283149192138201225617743474183644493765731401651818638772650291165556308045206906280725232408662484437164849869474428823626729033253493706230319117857908027982380403671020024941255804910500590655218824218694650721675781818140110923727690378046672612302595209737263831081944442072197705019122426645860140632985771636486264478882956175761208988527172333188258686123064998044334019389964197357402565429798810870657227128029253046197717600390726908127134167349994238024775462787547476333944462571094501909566911805688420949815833630525228304268016337469166318563138996651612790018111834265706155410459325819027039617040372182226107982288362220533200979134250942887993101407274329321670857203306548594052743338277515313631982609499536534639294693123052839180776356962602507920607750164909465783061994891397126060618726295702650549253991618213711732748521623716809297800962344851235663722248330478978504517198040199130117392462966256823005547260396906191932157390795905113805031648346398461770786712036494931425395838791095853043017244766055524634632797268155885785465909118959981686637918473024971769498954236022935472018681875549033124053670951835345624603135390412627048584802131733276824885296702222318177766019248511445320336772911977185058387108324939834802973377580850388795676234279899466425340645025747019436873779477204759567491384383939004381097622781738939629049839956257157501840572775850316171095205624783456724271444915966428737537007058908480055370881433195099429537294641101400661075230093736277534563433730209996586915699999803251357979645926780676731551744852390928744563843694717748037349316222140820169379062307013576853678832901199414409958826317407704599298493313255545502221050381648197853928075219556373864066884361229345162079837526725196728296520758191322840385628841504305292590042212878570214027756961694589813594342377405655508865217094382231811241233550885098441771654304018780572842580104329197030468871580172363028148741407853802763897712287057359724448384376734597908772734253681275172996371951909723890025496003980101098788464110878085005393148106086279017874745376212189648266526181743222074428672203866354678192903796233749904888696198860503762628610665515259274437804874721696542552808447891364923363476183729558896206095622042509673309598602390537232860813773625179728167267435059323967049514143481612487507534839600548093332772992014483821815177848916151007630015609485554363644195244382787083306979920036516302155653542734664987210119571798802001468817183816289892456248230888856653810797518085194153742609320983110630919318848414664078474527370885854937191684639004857251186712306399793657624672660236469868497138236266727762258488978884300823369533171583246530387481791756073058467527040255633594822438791337288205474991340986236584215105330626970484244821043319213746371805971732496685365296150858357315976021050697891582232414167047006146210529604032010187888980556328436954075771767353076096582715834459667304118106475965895978172429452068865325900878033042345459168993795956388218364614293756372013337629765685881847650658388605269532654727240827929178970066313492959588579257968763702507672588522525844453215440337492592179881270503210522368368099938306698843937359010038603132062118927287381020096165169282082014635472428698644561501853845533683818738176981705284451672103575777556446659527328578899666959081117119805288626140835134960846663019647673557673239299053224515883494398236335876671607219396600916347556366890189365912834349155125840197207969519821588007920578077734124629452596308207230245190377404546602574895438981619847906468999748886147199054279183131120447587946955818882514491261870174740885707721917196220446737446865197719780216678267832912811239075957457715556187214826956547478826637736852761802202368025242321728199779618966100951111307351256429990579066587142348892618380705291865635581087875508088367502005519032964921472794944884047978687623598806888662945600418454946271733518708359465087492034318015319620928582269359952187833503172205651737308246923599810634623574643595313660672294168785194995286017013295820789453350890266634285975094498593581749905262735260861122081667019966277553928867945929638105194878544507306393900564668510860823930654664019018464833883221553789153704407405555766401778670647700184321743280716032603575502537363380369339644723645113070897509490144510769528584439121201737620912153248649376651826529467549753944292243186689610556158452456870171379618778351092643042780044393226025181692456139506245053289110070630112356590835770294842001162621799872339380697130072535853866854271129903271805760270387708290997937491444074519822121786592257686146635464420266683678277579017494424377351584553660239006894513784774561578265361816419366463410086976592581294864191176604518352838805922713924382540720191530883100068091293255181631996219199927253952836186444977539711551518281818563819452045466266412944605144213339808740065527596993310899871844410025783457143153983221034322389387519949506775239431447681475597699394355185896387888208391993408138946897289695668601357891168193311567802775620091767382034998284488860455463874588411060100520665325454183234914944789474925702182559843553733455575442262714976606055809537911539109016134502698648367692943924879088827462156176788367486172463911899933608460335961230420923987955888323699344206663205641877232673253713350888805364621436413642541126905750219827305703508561163601211117056665121761237685882151599459829777170598266205990389874078627344122293981433360865131689117299684855864760066708807000242443345089775678150544522123694932137882650907195891650143942168309113308410663920087104981749417081386918524830167784905571351534153385319635716148851821125938591384137537730355235722251260501692625599015584002280606830008427595820089972235206966701167327277884482817694696134757829643933374426602251877945213020839795893228125292963306579906032804026182875741197751980500512921021074697583550740596088015030776046491090618972758369062149570758013680100700749787856358822505124628149166722317397396778048806915542690255647857884783774695908161930017055545540176378294473663516667471990872709259467367834929704462128545103907420280358811792900628878085104087752712252657995176457947727439552997057955626119884726649805102883603828552630438951470651499293492877818458092287480328821547702724197313912872461645307332348742999611058512662286778411144981771949363892611421833121671041007624750702499241614078434681434031210200335814542967705042387146728721054099106112326108674000026428542945576355696930076381982150245875584944614234026684809619963685652968595180742750621169512736126140299278449786373403341142626605949879720150070602375438627924718491092094165942519739217738823291791886574015050765925173748916210158351934871440452961693996658979957145673282091541305426420396452238159474657499065136083261964787430299460928476849750779152401530297510629590172496427776946567460088942187103772206863447726623121215295179440434913315661953806953515246398280741828049272952304443009029410189369279363978054659071543414508745513173127985781029046659280091276563472996416891757209716460670041541441978560146410204919403086027330490215089298913092937971015665361083407598997272124946926770585597515909106352096351567685382442815653825385159872412225624437839429781524093945574031868237613409972218517921548293413641437751370406280692972989394124234815563173210567165401555060582840389805588542433899750415354557390850569617153298674442197413307469323295426562947988895636701414144869894740759936217523407734069632597438640652147772084657459522630532557952540130553007101343268303559952696864803922103254313106674633246849044790156517204096950787637593519306044884655150101716965945541758731170246269905280885935518258266727900272015336624019180820756635719005535999722198993895620522308117460858151354827954006495685586662134819199965682847904631529154573944736288983651679320663948948222033781938870437213073451485354016639684217812852465598712005893904884701908637191849489407295591519346146272023604772213108514920225476845530398975738541719869540456490572603809057306700293436503142642534226436344427981526136012194953765201082721892044656538773323652796047055395717779640238302342700642421091767792069706050084874541022431031991441992816692316395379832150725581926170003929754863521514286683702790283255655376492907455778249276414186419100252581869011505429709915443032595618147614237642778968854736886559701956566004419794645310565999551994449337376243750985390241133019178325336736781829074633520599337813758994172263660084295359599351662648975052281194318044692257919981238887912096597290385157241885602815615398431022205089453234660890504818486596493663968905168534016679868393913707019322710281710985597583286348391408231445522793136021092882059423182514907409777354974047929720700694015577099631536062101865860037396100838334226232356675441754763730068694094730799678231240313254377958379260838651936247100374159237197577345435121790399158035303546311867736644893013586200564014833031191663128952109821786266259876043585383127916999954565977642315283724603298196504861720082587032727998878144746318893602313691429487918406113066062926118365955949733257494414964653039079858942580913950292647859005414144028533678188766419786240653878557054680833145565271922047033113348482847491350712400011861989275332651580706344527035333857106326298587417331034179160631232066404227758353233087392785593364026293544481678939757164088781969218667199486760741712520422813091046454760390987755465747335474504252497573529103247784335253351961345702014921036046551579276630832598818458825981767322680486921541090453852495549768391876791900863329566177766252087275247048771354511501194317056149304265740116453754617124125538322459594665662745611137164032168198744988171456148307146121037916650211126283308380520586448052770973670631980995399947958079437004351250465064118064890319902800227988147751486503583091827777948938101585094620648613792971325501126713917837110191076577670150466910771210030358063518357975906417551521782870122153126093951768719076284985078292879065189944195749140307786211369296383133403656547438213428438721801989492910157027386576880670212893600658960909547042758821608839007308932044282643021571880218705046919916497759359469666591530447570050131979127036412003296506773681029591810802143912468321677573572252433924840115576070230244770592641568971828764156237695045870124161454470171407426233918930933324806609303108333893334673264040906639285087054406927655508474819424289910951977976175515583893640357342479146403593358699415073023591192994609397132908693851453695118613066182719745849113977254443750137952810551084753151085188190902283266580788956182026266485408186430407638740315251576523345292557564706770688027295781342817411254438143134401454330346402246069448201167029864850789178263529123164472206653862525900309083497691304148847005856614884278690546134607752011600871895172984580259744841157905602510048548481585681824892187590225031114213420613304004038354893155093428699559918551662578212288900057881776410276953995829074628845350787103392920734461903052021391838319442961056054340857575629644214850908367165703294678347926555410944111484116207318378877289455578104864525744702867361032864307445517013920162236204917853033987119359446813141299848839132348635469069438917400064925338842718446612161363837501325341283456491034308516989001004395766093236955503333953383006908608305166267024820389415668593908425068994906025598554496977265270665517214679695611473049540071391275773730008919036969644889624692611941946455677897785468259530496840359189143605132826346812290474540900209216387229367352588120882770284025092727296281390320580858146618076616763164667685554632425480140496996553717910508389008429640623993074356687526553101647251062266115078325639225543629556465379107834577539893722070175972836090982452697680744697585715629073083446089424544624988675780526894926709244762207895446585364670475868613847768425692133837394845635935447200248942582173571968100086211618014313404657858845102121620004047923465646718037492971938391885903511354506919162167075746516901524804560669387078013413203227308387773157074294365497273013467115579316717650695710108118297681679695963234228502925906023776207694375077316690595328778310100745127340498346914052883326200715748316986571880219174596373994044657718784605030523853528374420434268390249809503177711081480611295168074143007382314484364785763741300754542409051362155103091179097477188812426864960344553982315745541015493517222557734189161730688423619986822811835739546820304120558963586137612071357372980577739515221389267306576132716028545185434841941246907990212299487725679726043860976453261027413975269111004872371695626972075511408520006304102978862922089086183257693611290968753609254261825690939595296213426844400287589128298647776665160188144414041686024162199387178286102943148430456566953410883090323952852608517047749700042067330221253191346004743611449524264351494426363638049173711532508006103604170176402300535418235843536701645581708382180905660329831198938469348593309229054133142935901703748595014430153729226829253790683365468233600521624922925428988100705870680105960584943334992264794388375178117470279516539431670891763929550949470021930869410060736579282935147803941348749298024191493115305015117641775284542785572434802751625309825012237591987522765034056688209899510806350068374732953702392513211575663967238411655514520749243346719785305641563112415101408616376641203936088773516138400903324846565214558214471005319968040943249933101962491779973726034380660047941182827072895624235103696607364946729170950628111248190544483154491874567337370722851457754412696232632527615149731157553832971877801823717376862136933096636148526150347108986285711644571472932299191483408387161518507573699722927873250070903046173457507723792832644381950535159877698039395240781385972748942491771913020850451001376564356053051807128369188428560878462448330984657095875758481657655601283592278653754507026972510330839094906102431987279421082235173558253029276420995165639878814259429693239324225422051982680774633443039086896710087096060925862967465487178600553664996205445962652188106581375211981648093387967612847712098815760170831098030336548273986384549771474597858168580020083536029089837895692670000104830327497666756256705300821042959738881076574755106359166110924933676383232783576913136179952016702868818862932017311475478161515355942422623720283460275367940051789144480142893187504179305263853152907502123525063085219461243443870244437924350017108154271111667486699896834390731311776864484246616009780920087637043378043734732060228578924027715205217872578573948263683081261702746911768771289880966490459659917349034665221232843130416580491918100866039002993815059739821244698146600790931928492517310155336681633385812750810344867234856278403402640109132896055990242996989183551880671580142393576671435421184215400216458056124335999509454495273458160202923948619787298142092396795805786081833070299753178253155599458882742537238697092384765900307510527175978770814093143662092219026066224157338591965265875540411221817312261877113922807408447464703430985227053322242087052482686139714296504580779891795366876322002503275524210884348604043316972341370623552803198041227369596660038315167595653581464596861364500444091554902796585079339612680249653387977928049715283481554288553339624027192048206609426267005072021056042409507642424034543942791729546358598577981182796375579730225831139070657863778117931857437582369790519233811196253971140352306034654947297908443313251285390922578374919378205744143727760546657730095618434037416528387364302090062785566882376449126985059282994911979789911840511683157514743385100559946487435900511393674791689755260992915995634293528480477142945411638505244996527167849456949183411764337505391795740581486732373364535828753278267004060910022242823884909739381807122550961143557552789785758941199609896314376575697212807929394403859161220590402763147292190394042049522530891690602657046734950367853186452369615451104554638770772242731732921220124480379305309138674381108173322213155043967808406831547386510476454026135609815146749401352499446422024654586552081975494843977068287136482755337292209209268031754278168056772397269134529255938247304540801984004527405340465373729235709824326876519327245889870068507195009874771742366674561424588541555243459168914074995177621134493434891741514433461172586349119082099838788802052035161834999897019218536549174090834449753592542150019579755172933423932884686926009456617336553611352749325410736753060898465373787574186078967480700486326978457622364534295911133183293749962626026578747016135325443362974520682194849500906623553487689436024778643480943597176255132831967709907945879740187738426929167030205575351004650009967283266674387556624008374807039469644931013536810384957277771897756019448441255914189086399739980632818722517808869244039974714768957809062235278964226784785327024936153872507013730689101311483558544835116768635426929711760483301680761120542950288440594122327979489688565610198267628146341450120833748832842118451752944615981268325799953185270304129195905936355898545383744070148060668014973427503860944964493181181200860452092750460545399287205647697726039644522729809599734598407096593230513889775527138016324259356013415313314519723265005713854024265255030657596295851209477000462134264781987318896403852563663204918520381316609271953923473248336730513631564334729592376521205271637372796856146591698947217050040277659270322757629213702255668739129187181830641820262001765565037667009403329280290831502477599322030078868270123288980321514123504053375202471773827765009398552402861181636719419329401750337429445920569184064098745589969652981456024314113053131565917583188273228748664690026228561538614751132877132990667243742011327094627078581336663946678093937096988597358132228250570347048402983211538573569568969266641821126605871028597837811773974053915711440690543749631155882279741181586505344566295963849983512399995611558124072985803262167814975241625213191280069713173695367335451036354180025324391271929499741518839761080227802526034964799037517790052591511523300693516138338631178550813529847449901300965626502367832840515518689970506065339246666562939334399229229148000368910778596862368943179225658117766188356564445276644789934189603454341640453760126213576862286743703922101224908378019885033042256473784206998833579519652669807113298744188506607387664760503984656885716522072591595558890789472542744296648024569825249932809241029325786785672787305859309222095681822808978857770546583226682564790096843274207527038525704447658115954240108989218275760904072719442468133236672858626135834080685800226543671636984831802121580834954205016758778990542134782259113440582875055647031490222483771441213673545139111378249190715748027106842609614568566087190892926849686191085010334813207104144438461483807355140002844684079684956156096613129802275262221439402819347319918441710416457669398524011301262406452123698557271850221133047694007148627680585486830581310545330218102483398455700563465924595007298500729918020902128446283498937967723675370623624128406694282103358328431818658424055361093758345349181524613068889947576103217731822228210968839895381731698254324673022484327679805307694853437885346740922360070500564530604296530526490387036115347529062136177375517448530598329255894972965006311457490086357718999823581154262564729700001977063068261475726648847694091057938045384891221993549887860582409792488468150155187812108176438971133844564777180280254263294062204823557014351541408286766402719419545475993280798003071159267426038195362563806029621680026068919793498428481924804016982302145880098923364656253082523465981841907025431118206800479224345174011852439741152056197843409691408396850101003916682843052412730113939315322738626678081234921490970767699533159884990991601405923799211278119974847394943460356030745847276818097028487837450360673545391083218723734653295944229640512486746638466386397363707514178189275253464316452044226361504224973974043088106814977962173767515665089181808477916127643476163848645965780910653570711785084536074977628735315897248356430219606977994309285125343671466167566352866246225352170047389342911884218300974205689049675680773760616901649343716334649429941825941191972218959382664851500277941314230982361658716468920831192246116750652201785411086681627664597986205630000882156461666592470753058643616933952038883189709007276687924524678332553031074531092709395578838212950365504932288637132792599003482984651576203406097254125676588899505173778561861879212540955118483649339272411920755672654149160401108265737893607798909383527700614545445399814210601949707444453482865659766998525609413812496826202256726379650173832288277589106859119772092269037421857526189443806369143683969694712522555345124775242581213788814339127343749514719274368665219396909237620552420508488805098841938275456081055235028423913424082095065041632638210307453025665661927184297666127734200369904831527978336750710106639900352428831024799141164606973590291257682457950157216357504558275125177694983119645852063387311354066333840381726005147552588167497481758160741845994446435710908761035306775776614812537721176011031122258671257366237288084486935829086765555570655644390815189152939680143983756639668356932858854371514065951551650611600182848837855525529220771073097255933781288646706044688755613291715834673442252481221683168567607460364509119304927952190812411776609559410979328686239441970691482340922748089453402633699163148038560930267758242984169772313714312385264374767321850995969900826399103777833460608720770520783174922937043159877929087248891182753865384716101875017341420291196564923751402588263203030089135377427023675975447151380976227242643164022258481861696307078044480248672829398198209066229247067710486693833687771251445413104064491934336053400494706155022722686572264167545018401133059694919887048487615761563960100740841635445541484090867914639764121863491768371441961946368273007279279112026364713790707428636472543443888784153137993189460489398111787010642536355807478869466364361663068739563841093960583635544629139684236763760227005042785830875549691228753780945687021231528612823237041402008637982945820114986493101312929235174177012009988655360231381065021930822694929737203770853022142236083554233327879960519895432495670551579493517375786471539495707766159160111613533192911390643054913881762768330614354561563683983744667643459871933558119676962122663591166330056423304340296276233648051025562458423839867297549665151522911553927006023877342751660720555757715450225327588601791711605254174653501856907384961798045412938668836151654580831874598609452043929553288170437527091765821686362178469294674350001367988743014523544116028993559161245839414160173402862971762362169040174815433658030431403456136971791540900465699065749675953714748129720413324502337546681035841465211769840143916251094663442721127437130576510896171910849654716581642599235350390398730264246672791706480656905072163043777707494734925486805471037889868510063934935440996994374195180686246333478760217271513834536647544060194227980682268427863410704437185032767837910852175194152791550228196899473251692510768511789398984526106136674722566882229305481406174704916668206418323055652706252358045011967683254899635311553921320175706566437980043895361372039613935643015650811388591476764985055698021311758436571271818557906154005297039824745702590428090993776043548797552304717864366533586114679881239398658338302847099178610121872096518597520714922357218319358476261916270235032322722690208650270001259585182650448061721980589232087607240939797125788627558013007875571133804497287624525233214689949849234702316154810612915516882079865819358486935614347641351122780567697719451683926088409476615769585023200041971761303260456723659998101075305181006043650684849912244392396966575697015821284861669423952610896698526241449988526120195018906862852590579120390103354063886456076883578796057707684242167126773460750739706502148389163305106820149865455427397818394024662078465662646919173068791072000481177164802076050440097020446331487880563842714988147093053384793313019298797480170432571544626997577715597730996910402208907953617004105316879680998937898851585058326823943259578775675672170658797625535673538695111799028782670009224315962815848499318610826272314127424084364837952034008325269551574476653556569350846220354826453648210364794392935180303871019063934808616224219514107596535916827238287624535872872265705660976182505474993383365273010413138385501798275276674600695726227941134080678606957744979779320799396578337822515363416836896013898211257790919687130069231104860849286128558847065864668541339439902109075868448762878197326736118588031714969903448863792110372754967245482570750520220578758063116722236310460365468138504039493072441743468211562457709341936820394407152463261886529676813930413841799450843857898135437074938386560024803456006265367063412342851779575278863386743991153383614379476753319878762245861682379347981608177446265810854075128021124234445609279043159449659607939831533700615020644255351148660587052393726490232413302241007920210246343015619654203984000946401954302323354164856795868976215744454528511819394861185484756281891359171726629014954957768238644427715795370391411394514220573675686646282709082983965499763411839233414486332451770869454327030207893914774986975035137758119579014132561698459589547365406903825245434354764964789136462849422385438336086740099551561691915766797950629831761326348352286520419636699918763860407469754262274900073227562238959881160850312200574372103896793104136573369799305776855759183275845050276554937584666670645587513666227101108164127840234447585137973701997915502917220377932424907724686011194943166509868177870876685193990303877728073102895462327225003644426511789048220647634122355248441492283391157435236954866018876175772984480795005238231384402606519478892529503992750755057182611179724196026266020519270584786142220445922730172748085302731630926606412483180007201593063051773329094530845757933488901147031515033120020280253701909705377444461850021014857684008812382976047753727182948916910280295596868996764638619712990507013522040719524542460873827675708662365934775672503400301363044816082213284593251273804518982049107856845445575349253410969235156582981195507125860762364511771316214058959715897170704648775758204830873514972775850489199330094238042239588724384093953936050364619878195314487919039401444534195217741089209205780564073477412834621172300448446489965881756971160123798245788827526407179869328498589630610356692028976163294822603137068265521000316501372679239432504852289946751345436963505588958359408168008494621203696156966210641679628036597588583541865594850942013359495931014409013249574669255916610837903496993820055095077166226487315817908573782221310709246742272077585546686106445522901201995853006366764141248681498855411474288360498919505308957109412115603592565536429072983428612002387523525792773451038718520823615527420500501490301185638824030868422455889099139722126605465938359687520139556138036297763937742173646222000008128130471208099449125207930954324313580664967760944447094980349309082986097112988267368085668101274803919990317223966064057646495518275756525916607397233267604355731769944697657940858508671720117641632803963844652063270176715868382234225941081899495744943013200038041216645180325871123930724114626279033455719153628269615320292314225808450629760571515128604642901898112404637151737175504616887449408017172772719549963793518428264435877459119545752886214061275174946880959488760248675562012097179467354726007568648941219467168036534031669086770273779440211952245386236279020514549352709638029125882148852604119061292958305403206610875012068032339921418547377783568122914221241304326869335738996642997595920292375443571814751986086537584404202667402802291171610475643629825560105226787338588102282913344064714957739464806870102463343587459446010215368289761167982429276477065069386777495909591138614865522542134455320534523430766799221856671949014187332376337385309432904075715559683118864687111987588145352812263746090584174032018542446378784106538544898868399676211595078460671383063183879123419577200671242790888996544272895502978762523199395282468633813419523940645491654675150151673639421761215242997759234463293168644267200995561272874170534718110480839315659729383806789315120221568656819232680935281658308518656106606372048495505467110850869144210849745416244243680663541513590126541848338263416232022376348849795349586691716723619741376213201665963158963540627705524494586990960533789428318160918300753749720645270351673554067212736846853891024876160917210449953486858664817173850329692493263067949610179191799743552754415118355193116828370122427307638889475045156738073659738365243720551010834873109701178276306606894053962142886758163183086784415709596851748549048737730552882892463668340543189530992045928266994545574174156731932731058577889487497130280967014044287333847703502605160884111909905680408414423194670256209444222482077801922731515747997743182853137832216268095727869448503066582181606019373842617964629784920028922350317148427507057324224165726986243942259793161548982416976530046426517574576259592420527323422417022741832408158797955223295370098297989841883403073607488233525723591559484127649156543581956246780133369691856472304806127569759404487949930679528079492057883642990959151520048353364620843167429995715020568374527468345263594164660060636412435356212452795381465965967241211113034842155586995176345385817997753045707045781232958456108717550688080127616029923943946702918040669652525088410813987682264681867342983655020193900958654304674704089432601481149465155795063444584007376212678751738508519262761370627337540391379269113563931587948360260770071362963645684779699598961863291416162838787686869164764573000820624129797944260165622078651756266377073866427526578312025358739221886037455081284190790379260066568582529879554441430384868000299022202772311033876825940940365738915392778561606908374400524223972398773065496129593544314589223553438902868856743198840300784663878410857718807338602914032279529037677264806312283299864802154121933209169363698335325960643912419271768484890806666010956939631212747945987159596057324096305679734527906884397078102974859782844105027420430000669883548190542449564793396168492985415466977503123087329802282549726042753811487043287237353921616721951153431559129703253403507002918092764446952305604833008266592705076928340020661109897747882095963194704254613760933359522417289443990002469721494038807641648709467521797783246134970799581588018965256763421982133805347017152248673048893267315186532068536957101757132391845305947174837272159665923433762703435131747212864207814298746744282568608693894720186296984657372157701539742433919882925918791941333667956793030807491818373410494496426222600519219100590541740171093921446978781564686038977991425335011990177466071383258135165768950832538148979510123359277841555398339055429457693949224136042216814384271272911866439294080270752981547247059248548623731460398939493148016432671295615286833312723767137646770308323487130665350231286103809186129490235877346748739600053730009780405243842162707754594494386144474486414212733804627681581577180440255641078512670448717326057423674715177750316618727912671148296852816775398054321127311807453535227487770029317059290256127238628258414413914449278538028516068877831888199311012972374567434106547638877360120294330924763073409636101687657431005018751129985508250516786297087573947754967990036596207626413420332101956046545325079494614092535510691145573643192706257681732688386111823191169777162172381051546080271190777804153547341845064494225329983870195075222364307552758662774282101014175796996096564249529343522201719626079968477491092267030510945976575548850732842766029097884047133318805218502609667850199983807307345563937697527120777076020295878707139408798070342928927412879325224281671972234847775890861719533779147492698625305431708790278837651379965995128974468512461400688508724426431001004893443382527619012292845611456143038112681024065114625181392362672349716412190839363129929502492460680608778966203164455903270115306390049998621423681746122442406297960227964767843938931317417848021109523269266783406428496989667596172003770310269590177990176988996718125888965208179739304133530333834669440059257942605108146664800853055582783735000794215358756790529282278396614068484455480525640178024892548166253703491691284501320612991044812550209845544354766779165999322465958891851128889267731495559489900625589687699503461747622223863381028540074660792926926957663636202639362887120100103369078936694564334674510150690726732039841180700034036426151451347863774884963048861293808864975362942579713956119639512618971257357340210989043901397505740924499097310425991733013484792833874130699424572748606909976761113183848734387476515059580433081613643787824603232170653575696003278373929774472776679462150599563738323527390403144115291522095227978493415792684108039856830327817228033625568976904771485083681191204159587999121333873254561690945804954174628190883122606417395989881876694199518793562431429655710915112408488048165557073683683243709483387734388397410958405112340340653895766029298231355116314925617650702218921031710434818852154561517401568978741938561134871425443523053772686285399896650019870487043599549956834419365792096243111899905236425359145408505675412562412402203466539074570589179350307448075908728344658738552914878923931095471980401214473546822638036187609155504834491497052488269349615736370048680438536464267325291410889617198868645494138721247176292824169045018141218316777142515807757914626359523503772569632987292530674516403171081157490358443761669495869625217752973971765360884771420752554351512318779422683681088513506048885508673968890327976739867533078076014681835002408041392022048209536975182345768825315534871041743792825043007079817343630920508865501791627615292797244505620562309689931199892927804067202823441926481249319020076209470746005787070406089550373239620739054065017124953926424061504489272344993874574646737383295889483447202765613437132187614605290350923973811542493492354402556824679618339110824508639248455964543060680362032426621594617988798306351548575738510963080165866398708962764593965999943527826240894087517970895696853595523379716433009771086818699533857158357372566984136000421179986120887493244151021164127133994997550322572896593310795018565265362749972692394953655719415286589421232190115393391528543973723728344316749527528291098216214538723704569537392810856683100382305848465304173327812632239866723020856955429040746337834631063335822855898123016068905318743757405724447277962169855993753699436179317973637292379649550847255637816427654904806092434138125425414410339530316048171906629888079807529579693678143722701413714002106931399154547695912317040258148413382440104700845586615401399287884176883173276691914550873308990778218169127257871185094918008728682678415767701911701411622263225375151248636187699378302261393133189821278228028513107574910058337214121551466629225096003695612303592994139133132697737296114384421469918336845025799464320393080806759731512285325657723194233001785824620847582082202746374869900440789620030356039035294277604412068782058383029944583986550631929034218982579591058901836751513632272040578018534363316628015490547901664948408106458042204522675859482487350982783026995360749676235667602471549359733005793601224858632802789299661477955349908214449236497586652790170011124833043610753181690220522172497418434092142425481485117235454120146678235437707306290493483893694009763574571153978701550519272790185385323460646384647586021798428893815430492622407217808165383270737181553871812783987890570967676067131482285568207324165695481411738399566636267945264121229173864231169602208172854463644978961101897940156994319442208791471981588784493777615521554183850371757553145895925289410964229257653580270138225122300437068363150764036659689949735399834178017544094412063099559448931720746255858433647112279222009871416516716633260322766613755390554314285829830833040606310931863043312296281299854153471628809685693379176146300580010741109166498957842295023033778598561366112738537699228993011830168026339607658756750120475484898457977432083663762649995239078725109917417932382288015114288429370287784894715361977392675060723454272190472206911896766318981401574467085195754063721383789757746389215143815556836011827705340514072658007164274073411449959735648823504242242492906062557360519217022532354568268151643434847449806302262989247464208066838419871245280961653125300012684039439434244368954096776227549247257920950684023688788886556717997361743526608912080281817901061943959062119637983248392053968408154590460820654552927613706357089744237806241460583050876333783774784024893532141791559590953335826429641091075527518654775557265216534773459291295614345615627765144473523207520762073590430074280421430868421369464136874104548417238638077993307252083220499502288680739656046759935090863705234658940616678375924916085714922742976349915004479076779060016853886842102828569472108365997753217238125132319546735125217201690880916681487548354061976241458484569625899762424905021218323578574074021860163485480301842372391879110810435406383302413703160443873121668112586710309163046796893384035683104054523601704947803326831917233315412285338613113808974809004141314595298422889673788323335580875964432308011404688525480625188480315334666657624200500266481110986922313477172319257189696629546725696173744592684296575366685291779461900577259978244725816250232575039670611289557875469411448004147784870961078861130557021668880327722598741672668704630521367362765104486609362023733869064614403719799606210002963422227686885597759625809232540041961179857708371728452985936357078118319603216409174601656553531890845950951824848318566538130982018577148076451954782865065108618675222614594033323459077291480051404001360361068481860450576813791556596205641938535395120762135302514524609757254408972829894616312153679382179604791189281954238565192703619029496895427483866346921772782710317117011387065464342733216728274041054573798781848181343963144360655967866223152356381188150443951626629084663280325381855793871570976049996853946620770065276769713441177041247003767182818128518079111421042667416389761924708598710726738041301861420547783905491010393946526124425567587879090326770843477862773960310737654255479830927466551974143312630630553856337205058871666503923991935495069709069149252854943684470126683624188633215489835586504482336326112981773147175865586150157082503666862384942134101348065239716956969688447633019676987110598291221350831424711753402423597980656832765685195739388909511875711433354319579120213795567070703042586790831298608298930045805907197815565432966186783027797282225411702198529297322747971698013377912029816773760027530350179904188446447372545324108815549924082862714236720302540356447968667395758098160956025575520401952564145601817124641401020147049703917368229579126485307117727390328491363891059424085717415704781317171300423494853278638989240563419283740543628437124940208307761318668045249977003899728309149313005175132113760412618333410405040071327674770091031124614443810095023932656375312068466360745540505998078740499998572711129231183964677483898125475126937264121090108035292214302217954754509228623855885124539791323825364114484060365279086804653371141799313176297000185251032872257680393101500279838605321188027130035631853371167794784018372328945573710429953656342098916353256510209877402677209961212094548910129440976673841569222777047805596452112276703213257880418516460408631932189044858531401517439519933800657696083523931118933884906737289504445168077207911085765739704729278389978893966441624524146495738947099259461465228336158115320158280415067736843095059578485957770474832692520578162737196677046194407138071202849154070848128145170132752552284285452553829837531236483119581036937306772291537991873412512880676358176215869066051018360051076238329513236974730916629160592247272587854232445394256484573647163831446669777139154413122547624934663779089584810397457015029106203610889133701253496419385448631992357928180674773407999839193811928512840412472638155313619320182904692361777636701331986454892899632298597927274925355753463871172313131272049406896960955740494635125445940689101885205838693640121594470539806990385989984971382427363466322475804286966018972402227118553679359836389791361485217951669321688914570888695383039006403902408851939174768867677876074995392277509851815949643554836258561444191827479943213026370059757039216998155092416120451881561954862784305763977165622590916641059923243956089424986907286007483119312962625770651403117259611186266239010070281077569072773833738657247439732237091383488102096954513282135873825232692971571523077418748514026907959563941906974236314605933763405444106298642326458352291025786053734166125305982381956714942092780958248134352939194320520800170941306008130585233416425240383802854617991177282438155365122265575299450995232060880648871310251307164470205120654993068239067075586944135761061261989638089322856740574496143385359508577921260958049906946723354987411140364885087940584882883776204573151745580370716145793137612772671785594057074097203034028355492376879397956045493354695686865144183493597514212401298080166033761593585399407113046624191753317271728952415018048545827423817039079912927067434843678364670744836263666673589045874086902694265817603782564719719927619134188597734560258624124008467881670130995611832726230753764635345860441912780060515469615451143903994263557105082966573513226488277078503087589326247666902165000125360349535615469586588346059029687429983711551762257843643881523033574438720731890866401576612864544970264850558314205752719421058618820434969400460985431327376081932096078940592417913080765765054414330059374338599244695350256064864598428338370109742290806230839360136032125241708368239554044685960538070170908589944187124941441524912045939103987592896617579724348963707718065997050899936379531912224473377022807786358866134560439270815467967063595462116899984175959143923973459412837010189585310938103247646118105837363041461014179615409279935909534912310081124103761241239643775947356976677252810196797529531026035979698882900380354918513134589016001754151959402971688291261516852738647074257498165682098708583690109569086376026590989645400621965700402478146909297064723862176701425794548459851145985041586054458324710183136901132278484853740546182119334127241915402024483671944210356204753106733368708917396923553145981234227089524512415572282267066059472848898008320169800769612298292716600212991335317660837439459917414753190277388762020823898267913653525590787649912627442956080895099494904936281549968695906386381894262563153803949899075963016719933417993341554122485626263436003596023851928127315508748127067406403918827763074351560028664796983118401608099727925270539123142615505352532054705803753145022329030965592148150840278197998320304408189629291588711884061801005918979338755831160805522815667583103920383523752160512365902101579555717849431181423454991139957083885675561355053366063805900375048225829234300568728362378714209676717059060870839775836111343849512082621863866975008221262082514008249136309832717092404753755282257522150012992313882445001573233854327305820774390806563130695223319194572094504858836035913889124836995246427551340271148724042806949332431435316481117151962509610373072606182305611400599182710969588671965445258713305143550126326719175745598679997485100177324058967974799361228782051382456492184417055623755564714709088533353149576374847235060724753342141118511340080598555520844063169185436498921920401657519357633024724393414857221598784032979128293316238499638738356169604869822014089432734372169130028507146139892122618790173076613020928000921215245434710774070283561453486814083001145001612809670313601950971514039414439127845434723004378368252107899182850394579364057128313969585617888802374721777496308136119303672149752657109919683274354605749272797087924878562218140065457476875405429140075766974977157865680645584453180526650581384010167566628079444252876438505393067265836794592420771043222456243690726384637582648096765922549595203854286386213648068752536789750919481918965285219040358787152989042320045303348948188690380137644519795083355072556339350584830568548724645113158353769220720541088795625346398653955960846618296141856440039207713731471717772027770936591244848537610274769962255802470435052513951432118118465050351737781583895292462656915950821424629934114073380066269633259677525807228690798945722649615337347519019721435771903207939048517604767818264488179319649741303742610937674741285118471090056555784893011512954654966466693352015370289433609938064080882948402034240110268506404853468314667286811716234743919534125153473948701944767807537399603423737161547363813319297204888613655136652134168381687039878813900124307807409022144507431775715805428963344310063620429818380721468624078063195482888958046475106004899113182699870559187008863690992669034203988194699097869417905753530910077784340815858246515374375482765179526330390112295197898958243129429046567339321644666252807523958104238677106374922906032865452733857356695850760388058884070686378358709922148855141467518627107603036304876659540145286599857101942378857749377341314768875546790962467693909512636831340987861031935898239264873505381897866271760757233855464758888920282037608546286482875176980799259065054223987017726222000559284726680851682151324294932169682803974893074354245843593617586075480333671407415598080961445952035292698127427436277670586847624586979328689973708099897642179155160777127432348852487231990293667505560170879290763662346998299065077387520576377998599994420958480622927267069986854295794430165263960836242503488353900418146400001952558030019391225900957055554132457253440068595914683380919491777899132675739538261612343476020226829631044439555854515640107360218015732014416999162050134989256212771649344785380010743692578105497976797137005023495603269885592890073621445797101548320863761758535699141419787529474829997045291314250268578351373474583456422203035655760905462251278918587955743171355157803376453924118998110358405866620031134317180023289260613649421906282504315458352493806280558979621528348780956503390929090666565920802690699040358231285522064019574074092847928794146436607802516032905142625460615393058016694161346045018936971553049550547490318280565620026206178787287937258594081936709251998903823679003009427953099168327208780707028678958869982931334461097213959425413474681329409790406431362465177143361740663079030474882172834347773777005171692381464899764584801909341780733693086336906477846423139348095069874898847934692041173924475408804220659654908932187676926989580918170396387550340311297274487319875346637932562364094152345037481960910283563134520368688738390597187819617344385538120337093941076648530715583676797135645072492387244775245305738156887865278919312994564058302582368211551886193859448320557824354597077078521467375652311674003129208546093153893187177499153167497269606420291906942682825073763883698926367540403356975986592829531547066025336410406033981068824302220927568605196414525970154760240576148996208470676706474546970843652273312162599985910586417739916797678729126158688971097121794020424233791463634876974137530587985372656230170420619753312168670518694892702374878985798301256672282096268077936990503624304822687274313809457640885624542894483443274691443318395997870036133236075449112412195932074030667008457189416658272681321196963785371652586921177268742526240487319044837869820119664169464090346803766902821674939456883657558205770658414451044442913642708256032949269007723455034591229728118410414472817053990763728774517499308927894175387512495840290466094724402052937212977351617317569653514589514554256012426819152228641803358558532279896954524251697249010777642191426632106956058960654423469673412846297478139607253717808355235044048581656101256109475478759259023621477145223812728745109912277791907228450321577137374810079813806159206365903647592875671809169137336949869833467941550058086027848790609656553329051548192649208928135690958205103302707272419113915678995220677045698254288720747773594994039877474560742066634884058380010934549651138172379922850417812690004974808296182803491240965933842166933877130607506135602514436094141241985277905243767828170308975857704227572109199006384170710548457547594741292360387651181948871659335743341482119766253748014453156595138886229551655775638239654091238042593947230163041212390117225054237825857234980700898135481305051756097408378800388443408227044766721203804637513666214411007172774977981700475625473830606832654412794471322405749406519100906990331745436568217435550378128438011423059241081206092061129376302377359159100709482117705521347176677490116382485770458168753509799943504894593214915797071002277734071599514298839497414447762424087555830654840863736986163077172038169094486794145297242011502370373571931748387477588769734366399140786430140391484247712898441524561693014110924122436318715618362919257114732406899091297184423091659933219890676872867023959603556075507350452155077430742942239426797251785339686744682742314331950190463561927695888936660112652582084731692390132496667675506571736148501039917484553812154581650008493995272603958565360161672064629797821290448563153367414841988497176902069752465034193051904040863399802232020155773841807968950514469336003197680436479709371772784704269134163841125335455710312475336707330911146378198339745570435680298179198637810381764481995828054297689663960627310509955390389371529238440965124673881781562559010130955538774411916274771721316480836542021663783397544383520633962310808282584960222337663333941354793768487876559939204291080012831014089824290618453645151924778430311843627713393633306388228167697390127986879085783176531306455060417995987122332909347427862290834885417810271301439388797976862798528411885222499603164996825109674732527834438020611157244257159629454652953026268814843676079119579580262389019023566594931886110840295097169430085486155659595830507264240297858291383892356759494123251526436063543122113362854602424197381987450575187991372267572794204879822965362125123231506356001077480662965234558159905515237012665480026837968870898865404628951824254906570178092061737286217727809328882721349992349574897038047470305653628814159469928181788692824313686874176699982071794898279272739500632009172112813544579364518512794740467066088506159735182443343520548143203115989178740684328029789370486489920049703876647854324819113166567520462299657555004530127737994029120847259080074178615628584527661308041740886213824275905711322927021212797524331951931050668402111148775648574999735009888982300801843720797558815703526359741661203525218939295735885178942642017841445205997819074997745057463218231205573668175425723339213083647870285045468469634571088880706954168413256154624837752460433052062894161751698943245864502540637394698499674822773264239812430298047915263930035213123033507265169373020122088067273601272469440745550815465108072756580424860331009977499390144279207460805660200074448545652794044233221329968793650131195844744634120243888519292400288004853365030416635107171469973761795303361873093134966752709066578730724228760746971117139032345855473173192186315269168823790667453586354474880421014567133736683001141205909916584643949680915535054567384803459359879451419572058536947967083366637105066595661866515322451429665042131614099208901768610482575003705150349139008942375093754883159496292220135370206855137204168916753966737338018266249689579980778512687160146899062433406410750446184268797794151566989231691750857782239920818148297617755844096113155827254860240854082254239665268687720739296889699388063605740833673500614970577751676755749742884254495425088745536528781552021145283654630580600497766712181736288440975027044133099477334076248959383375178671274212128769407232865448836514745589237134957162139431234797980033896730179942339036770448007431146983734747637988584809869992899229269668443316692852755445257335096974962971439810502058718777415164317762020423668730946946727595807654956343341119146192484942499319769631091040274083141306452446608914861966565748637768955735214334294472015204124601440139318059019814528831331514987349308568596098532073808284952885048646451160515390976054638652246214447178841157768178255233438298670715172053775078637893663829650444513803348084004111996574390238872428209742117872785830805705824067541246558115975969311065080964789871904478604220009008054638150878566019678089986338330852405596182911591650899044822162382014617750740634570814383179107527002326475861454120961469324844927454332257302475229481280221613592984354096422475354674304880370093865644723313561754208063652009521425580658773316957016139963455027329316946928065872803213393921939309514644544104193341139621571444173204263817482941498738129770555471799537041148396009805024215903836971313929436539460252820389312776013117215588238446912915563452517142015260162789696729301870298296921593748864044695948414456396823852260303969557772169352500319198261298377048023516475718816520375358297462636942485140861187696402216846889160556530979783379643932760279404809402394908783973407608785544152226471025228856323573370563708621863679158045368094567491796589430324917383347341982497184521121092777443291260916516649412755860175923877347710483124323789106786959056189798104091884378454271481706132226375586346389102775936972277005695470654472545666807780413888621218030845099901660974227222877897881892172187725059260687351483678593325739675220225153446392213936176841840291190942455568190089584316036935134205441971786749060114374239860981963240551538138548085338953096170126909977225272544732827318483392495906146579917360779866736218228167727000003136157084688696965716304575329540887909434472872249760086558077611430071672072659764955953100857061955222069332402392253286552731667664550929833781939823876200059764459517151722620238613707225078617268253026555901875905034258829736006401262427561912152211021933468958979307886206062704024678417442841637517261617193454868419850691157526285049957639824487357532560512679749898543613690490832816424847872963052854757942317997981393684910901598722668694875605181378227931190357720291383880354400576734202919035315074345005031885391944142298440333378251595990999853030878956084404865587666575728204493768313448401837209067950481181385775689708173285313117059523177907090902408350004356602867929997672250574693892686102135672069468530371086533426213075762852395459118858525318562173308766685100469249249153859885339865348484974540333148272782860801211802110835712421075710776476442979414768771025798262229667916184648059793344980969437506884992188230531208997365311428817884464660012316517697850701466951345339592894486641306526174363705665876748247479814285681593507797341944632787104890291231332325701864180295170274696285854618949594564352825018720737139835444706949775676921538312513257103510709053918713283881924664402753017149369427874798003441947976971148222287662490772880708211291039894818565810890805813176854296827665600563692735989484479605484132199692864106027090428998164994059344686529060318273729760079034528119299489070058719853152729386765347427170185963044888876975511376267591634972751502129375877439115220793381762238701795838016620247316852394804665553899512725715436885335646531531597657158571666370596067323463373439603516234747604333098518887205886874530527362585939798599998697900590726090152257155200359064656633963534856476084177560837067855705002855839160087690066501009383918942455019230359080689030988771848624383600395418588546505220142464303207655296790398253865250658060727634630461426521874700394825146591897963474287302908538146422617163091837075127859397411214270173746837815168784334689810305985333621780363426424014369939403507191012252888625388730617514279635554444848923926270841488428401741583223079974192374814342797436160176481363379317084847105777916970130822186278425681465393109195056919373971332950659415575441957397451868851454885887315044048306192111092985367691179532123914461055905811132043865047027066778062406075958055271992256928401139044665189821580490817108841459291880253292875923481711783804862282453997429620765884506164126044495859165342726688137738678822631754317369206670464422005459532806217988400440738662171034302685196366339473477779721755638798400661217027030049788049624245344113719116136599579001672034854256871891428404860778490464637335162607001150610845521371923529689147297923976968196729341674150236451321025301884200299613984104508368284772814975226108820753427677074743887254454822465592504466625418386039096547014011794738315706714362936307044495841119155773237455827574776345197540448844372350904555980139953831175524598682135652485668845647041052060089683961785422919885840611628170509746201177388168589390982677124161547596155232450064998318056272065359499514215576022642341683841240659095883715578316154166468949894428777854372903956227567871445478583647610034372680712254804777532524243573532785420446826799239645315814337725081131092747742443237663649861296302951207578834322365391486981203066470469299797706825680985533200326987493487262629651536246394901925789932447353917675374455374295444391668216406140684210906226260480272951899520648626000454509572696119464070035555202562400506034871802658331616963688192834728071315317075011060359774025723212945218771874197728400300973171869742621112769971089461241230498772417937526667527588108211506043614860032462949115431128824467346677618752405657203869219322908009018674709024049500455531558398354798525405315469333204549059028112759934988191529822415258378155550145897130816666725700329258519867953260428143188458307459095019814879455324985418065839317202668425277697589460690917866704089183740149930842768987485879252040924608870935758102531324797684004930342216892639011518865067521986851484036469834501492832385621914646305554276655898296894454419658966736184712765832826233862541614519269476572501110952973284674128342682771891010050011260689760308052619761711626715456448193075617689136638095429611755848974023509490989547304337839319597551262766002826621767268016890866371424819223875926623286598823084486144646800342610126808035302926598165221167941969997109787577196283532530145087114021637571731179757963545951317835503313151700402151621936454347890812462053756848195714768814888374782751471084969135502103415187227936205409231067497302439511722399504042217499137485157490628870986330375992916051235246206853443573102707134942397838338942561196943976397544595637259051621770646214047338529002519020280129224328501095651064179462645582360247100149187392491306174186790321298274285009910653430048881628793905493289855919730276433965072365244280984480842188164629266782610585625707244602017387326722885826247101555600565746805208283308636671829486070855035561730273253955778461519785431933472186933708796884757051229045412791827202090938265057007446740873104768172295100896122183347688704712459771455551617583553722884629494982403620261936889319530553568184576639626638875439387071235111334387691796656259465441302830571378240629869910158690939091312403306219875285703374314289829261752790173994316210546723473095357322675373983182401706019375404005894375680886752894131952028773558377202939214276477088727955301811705518071686893007096577999380547784419353908072391196882847781861239996758585931672798789849710318695287042135186562768869349815882233359617929546748653296305609975578535280415046749541118789369238108296242345926118626228556033224571115380641642380679218907599652200672791804324172901594612840555801787343195706358458515905675987936601913990877749885848341198610724451199315630996705986394077759802555444931627402358593389450334813000038891737033475712620212987441711612397009981655660847631581739005984242736779876079230597161297506023769397717128350379287685873728521694520292543736547480831713729019142174271499659155009472885487252468420723915385562269825280097057481749574378222286876113515239596174252833425838094357481061424090745377191358181527500289155594755946834877737529350001388845829758124393675873717554373067176418674839755181149653050398257943238412986346957801458768551267667880761914761620975059638948251751637184146486382602220576192089983724424324220379817850990347604640550824559257573629075950947463388952513987029023694916230530415099868269726625354548681578030114605360025078392211152753049019711014103166898608369365759580596823601887063185077617767879150974061812589812075543691050726309395041983056514219868690013481731906771265711766724423323259185530947058439847587392901586021119648846394734934065956631782811753699850670577353178355245938253803975586829682557899821858089678176070327661562252121508111504946550866024531896152699586572684616351748972290424970987156113643827395038109947715209224987830342405756840885132209576795006521827959967576618392138493115313163500098318874142578795926898836713889471545147998753866933709279082676603957141563115936595594802089028314160390548520626577566958908959629059322212178973236549330277799835696619494980710868783501209302280190534428119946187905167947375834427189637519811324203250765227417079166682059263087557116731435246229203519689820770043112522636108129284704777071567506870341297560433121130617272451055796862267681624751821819024461966230393476228161148356040527992959101026652608975719495602363077256235002790510805463458997358601146590681560437408092879068631728580149179401032524578458630741477430131809581764839971717457834804169239578162487490948774271855482144260321033660012611619592786600823660142264214476294533598187839348660537135021779601401183875905186241245252767028088770250496199071922405387667785056274331171215578199132656250488656916735000750137696495225675234386338501613557851554458762339157733167493240768726978008978784138878869917953511907040095678760842188229203262358937278474065463703377861017141517738629666267359332529597931556662676031994515569332649546896587182178930320027226939705655406226299471645842168972624850182025389167835950425182710152696063339733540616181256276814219445479934558852992460714865373680767379404154231534653611150595157304144226001983606216304329422470879646670826837046344296577597422048742488445090516701365083258833677806010426172409188718433047192130884674117051990840107007569230688945507959078145110155870367135706789196211101258112688872745208823221553889452204635275806375508964733208673884565090800490627685775494176652323141980961678639888741341464693173750631124765335718352618019262694991660225921059783910256098581471201835430982672100170695479366446560491688067583526460162862994211997973613341709169604884010631483318809183163349283863794729158716937826550478198573472568398357793512254943539504048256248622572246387765109999532141808671582138700987494808966658212680457424918311985219669634086710124544426451756128582997655315230204592278862024537214984547246991364753451902938288889047622053253882919021698001807712949975856131782776468007255559207146678549284885080290326444601921851937278083411722736649952016924198612047353768544510156668417202814000371748543447878977800886562943435014283679234681972653169955999053903290100948768997876273672048848257640937680092561682525784831840311958159882963572887750109652886093571830819450635060196680326946071255523150276135940666897534834511181735746134435335836834445694590590324068030473847391228428490898173285259951670569669571297657837324441122462689170577003705554317726101856801147960985171677920865788186239962515167301936189215031068561472502877965857227414380906107523483297366287225464915790927412935590555252635366604747112280870098513873315689387243838281528101128914408232455208094014111666011016176127914129410883795811918685664824661233301401352500443547019799481879725911260359748315150157119917939303748800944331635206239968010704873396921822662508575177723876369068284047943803218679802244342674444044763145709052496457829641110057107538861368618827902032514214376753429728811475206136372624083038028165691798496850757694994455815488693371049023889617489038726118944314068042698187547474728390685574066764798432086804515293319047499785910169437672181017466278147308013188171030311057497598324832359055577417879469257992110798379344712359980649390967084730675848582880476352513881700648199309668849525713477772267908255135286018329063075595628927969453143272442373950396968517515641643892636288370614453109831428367491189335209733345183632992236530006961657449469593164642025769887984133080020219034319531703577841356670083204629022178474080802009503080613528807959788129007525707121898619159133610367796211709079412811077780960995865543152863597372818521133173712180374237754381363910949967551582457065492701159233816853570969044781684451676853374588597380445606779348935971096159846752109674556606707799081903041757815098096841381898546534550124993063561502107030634171251966414841990476113026840277039170583054553293777152564141733130103728662071116346498686947547850864031996560586805450653630851053596520528579525510254000615302901913379473062019402751104160239635661096915119595358483760318558871358724335667961980955593365509815005803026448717889179877576420884031883736635413544765918880444420670828593988678420938898035540657963158903512520461611459185501706475346139707462225494648994638273118498252001070609905341704717812788345612945649777074957026359741454726579076847968439978690054258860618981488801428129634440747539202220146562771841271326685901270775034914442995973576818657876812691683932564919880434513006865689760794027174657645057763775698709069361952613137159504142336529617812173496806796832309606609327051862371056871010856631461245833646801670884560727324138147436270101135831442138533398694399228595943657841760935120021997045375563872273670539159212638831660591688958744532330115167998607534100540703533551855449748204938766204978091668391494909369946412914074773953568721410035783068830885032128406484345957492054289660493885489364887556750748942645694387086534911804607975098235883444391423823243132738415840112954458585100456180606162151881702019476448260427414207596291775216373724280142479736875075120290788472715298090570258747779721102675539797454355934386098148042657834885845702064044159369715443526231382813211242648001274806353853972412701831102118511336595139068336700849500063597144892717330900431779628104642920293590172598466727781923442877531596034687234031293911966771205053789442897910430429189549402391661001520510543733848836225712463066699001530373961209843811057442911101296029278164211732009701037844927114682499773589053153808569135338757760977099002542255858420243980299066077001655650726392951295680877965941170130617131331391200257051097521152772230452423947225171602742605272594740612505116438430290835754056930016605658501899347208403072483854481982600472502092615532112518928151650601884858108405863869050751160340394321211950821246121206820825470638559478985751563349408484608597584574962948601822721668031854310763042277896385795977068011930342174301979793006652082312940850423630068359614195678027397834130659637294329138581889042994659612021262036528666061287791525720773410903363817958173968983569154549342253894931370279826487573777119998077387699348193436248098600371264100180317250391167014361447936422676340571465067194859297884483881855739987521869922493945137613540311065920347688277542126866077363491995193331174207032685459243790001293828554461073827657158347904223735995946661131365096193418761038841709137850108438797059878158984117852233183630461397710377537329613696756337872518792486539760820295593016311504160726987796058194310213556961328028861382161060275838243717086311889864752559347297357130527438078311004669954473762418811001631652830226500637031615621662940740464690265155166205730147491125499058550585011929109426876972285288521307919052846294122217019401068294005697890053385809669180970369921392212866845831983599967660998252157807691828077474435737480932268153575378287807489170172121381282512080240734115246857193530182692190930588528829853704074053413205370048184913314992112105406148011440844567751872837126838802378714681107164743806945175048764366118493011008834855730514332951635210093150185536262566315448707193550153393306601766905534193060849893054884111133525023964604670366199292240334509267025066363339224188736386495470872847152197742182755214531502516423171943329901676217430746293668719135002115295600767549987581068407722217202706069616242345289258961387981069527052698944586607220829255809075709131301328458501333318654180384376926294729813468585873488883805224731949068192927027187997284109793364757864623694318229333203542305981707243986601829402921447509171217399949295485435498910355284240657367199389663900557801089235953778750291000343979372831215863002429831935934846998376791187339153648308654502438761363264206572121262699340786948223359191033706768955265368206863518839258726678634623595916659655403331495182779507475518793797141196347811957855399619404231539488354854237223055036078441680159352072029045998305719785313936470527363461244091609078753400967485823720436612301413383121006364132213514130179097175977797798562660076792349852732036137890815956019360897244738637166988856497056470691816916132518500541699273941248204940641651829113492597286280247994411879664815339313210933900595613647796232646649654120314380695226928176488581004723116015496953812700539842828009712314182802848344676964464981613570158166411665794731639767246488413083268636663491138912942070172719440326815305972426742510831794968122643801904552269980982353022196852291556567586520101124501381779016873187586444399242118018851694291534658652115807953936272756923036845874264304050773309717955085578154253704442024458562830730180175322638387135215972393183211788303562127915587970741324503712563727378550314565655425280065557571842618504697303851474265598590349687488898005588258527344886579020444407216986487660027624557423573759003999865250142890649846627263756553584970433733647270329769342210899297321731905620313067023046017824927822274725900996446881514740680978092375768445202340205189460203066106102332231024014906020979282412676116430915221779504210181428622729551808113533345682989509114353173779926095918771825315142159017377929037082149450752882001567004491404163962895179481951700064945349946312361932728967205298922873253744223723047984873179453243814626949411420118345993299547216130709725707990193868504133044991313832019313517146152882554549886003191370865677958921248883200562796916503716863545887825429731708673822778056558397294243122855102874223973315691454600372800782837575067813983998520306274827108603528019766291344844623453143158324703424447626251039986221513989803033096909820456011685203786899168869950586106400140686374212201302320805162923770409546488676471357468494713518258833564454912468705463304102923451774897386361656441416645976094497594703230042543983080946043457385725641542326484170276466293218744964962982659118100174627976252320531008603669944451462910996414872068845374738416371859028336546563744326680333668205986908648529001274026269466902652237614746022614797704299455217419406760032694753258899037398625423636581101270519580640221905837384888099667789608646976864972113320832729318222579926658459496477176252479534465977641636355389798023172154521737090661555946182165184878082844810513701062404763923831982283724222147618802880194904182500450489747195997849262190961529648653071102358314425636424903972978701113329883268680629032874514607566304104810659620871778940911701276063457582472283713160126474128652548376687339776629804461778272350005091143529429810006632050024487163029654062737662981883893213414633089308616050972104467913181213148227462272299328326828964217001368876854932473677764698628189078216001697383187687264647116328416948789341679285045646453680713999801845008440995910913044345140424327593311321119888338287390070360067234435801534276970374121818375109963179331107497603399720576999965349800115611754879993875691473907265362782411968259590620666246994525945632666450774934455332683142185218853346844628291516336902964226343947428943491538281129606179269219413260163204573095092307598117358229542574347668158851913592777418051983477640916050520158656087167152436076531016718702910066424590132718637839175386372825088259844926029468438765782778454708666972103344540314759698299161886809054372220127428647758617893755021856611485837217882699511079296958145598453415736670066108441837638404993934828077764470006047152596148103652025806459927144814158925897350883334612502983586651280617170063781333304102357386044033122753331243388783517395678611961697704881800634803498315872411820130380932565727260038981379967588419452245909296465478133795426655323335991619027761959744471936787302711103072184016991006644752360560245406993113644982164038311761055711891808719881377051605245844184885613486181197861327683344482217475988893355500010283263863000734798454405260056763814817727738525369324887172073437832583786836857304469362573266276772876212515462471533592691789335330187970400005659585988042951847072396078728291674744236224938536741624612937598919313738345054033894232377317324897492075259329783121012107942742022981630612713498761706711996363402792855202401799054864253326420786192079389984243386608678660614223515521577831979039442170260975492405462894623077736035281980215256946477414042541629488952984408175096883970000530917544563914481179100291946352883125729046464985931723845428679459000512326807045687698091337044919023333636458191844949723448917652162193919918970662973023919697950265995389764837408065115631062581656439826496421021283344159176284920452130857311840216479137154067046877026443744212888432091999939759979139658496711096136531405875155079739158619317105437055980304537702608485091860100752920411446971895946169279546885249841378822201784026227454766745205234601935029039173983675594680568159548175750160092717997524928537645389437691963317964158231205853565265261274349366178622107261041323954521022213442138644049239883375667611719823484112432630696393231931465991230054910526007651441065478513498032086573027846538052821091720201176771128418227595927669462575261792191154661577630759053573842672726519838550029000350175402515477274185245899441812533963572128091031028774772726783020754263429241730685338989556133761475582255953309866196211990034091851298755178484514329600683385652918438241977547499167521330623579458355894241297925633959401956479012315140518941686682162060113535286561193851729283661777382699440240019934451764675375768543319386016348565341873581835687850616657714008670106933164090981795542151040313017460995664244150445423070739162812772008578986016127810808180956207231804865190680919986430611413202262549082244037973847553574776053927862174164131543892306823035834934216958039502403115397047652973622560382018467991043209848694714913841742013285061142928462029748467638620021340540184022295366808080017079865257081240782113720191030222490573815135227119527508242531321295655110016064233882990328861545710224993990647250034475539751301168373184243660170412455950158231772903352788804148060661188694069500466365217285909587980994129888052819439453853919092833404610724379164361022977508250664515220642073406927132570726859666300601213866372554115540640974831766060126562904225124646354294049350102861450560992598501830012843733983801970394869061912819906434634948814399781393110928896359871278603340793017041808989795493667776644070838908430913935592513020700059112023023562204140010981675142170289199133144002457424214257244191891555649716745443055921207063323814450806275052495349414684900334804188262627226333078889785660370860202742176767967414968538000831398259349901087249617757109244332901602648414220518444704262359575044843988437512941032808071499748035518734855747416838533446914473590419120807568719098066936402126060623105556987362188644607275938477060528403249359572850034344952808492535544570191110738357014672006018319360467586062320377920148080342614598508669174101155700397873471502284777393144248599677168183544148370289221736460934201653966388149188461865666346085755642518022462305536119530440075345658359174832567530029889093781777842093476582387451551863226919923261841464759980387006637415242049756462668301906726820670261740971872800154194858024096919114275888546515971023679020623008160365554215346564307344330339321323876015998961077830058664790426344876191794510108124278985645242039771596938432139698538210283708631074754302900816204498223349249544779911343288870098640690763455098804058635154380168563090334567475255400207785071864843732192436729304635185893643417510390434691446068419365579333082695937108241967943485605428093118497484655899178186773560938423092890299620041669074412863370896472622584343492234939503545796405938809698560008636088596625171912999628645056812910859902509084752255289948544409275407201778948238799324495295848553172928699737779863687060712130048234069609424942513068093701437184162502562853499258985593993051125730784375542612927407730954388589904711001350016166698805934356673735831064550874019507967386488416407745679444121700953053153174698600680760183103930550907326553144241048221698524547531312517429327429323427810595461691295247203137428966729490806295632852140361402899579706703292413513928405760053503186695120283884863878319459812650026171731019270605063636510583625303100336017839427972212463530363297502314774196071812292746103669113663419722589114280888130112206755316736467996672117298140397530233691413871855768487378483075720652569437243718059321588820111290459693635426743345174257772368157438746503997185936637489571645578288212259035703442541908755427571033137201461065296351983921349618821101990316669483466874290082955805262392706105348212510535680715198992620706518378522647599234955914933764917992280410074533255336898253936591990793663725971188249513060555029113587869388009298367488595641997179884871916746894814794930027910993337919383625064316683291713546988167111705172526432716615441960842872367523702281742957822491632972247788606070204852624707186118597596723913579826561596607332578824902337227485694235843197502651224409230613336492063614727018283905742536211696118650548248642726542629513444742225255756182067405660098110206407028091040026302475683008323284029572559389566443638365333569650038357512681644278873213683853079493982527781346918943035060035604612141062313930746377787657940869246023746389384179320604276648883944399315309863173182479089678381997032844723853062010256430264312728435271896497838890554162231891233927565618737582116158387441168011008425888351689909268720481679549624257551178058630653828062216192829663509097388568123894320324971098512153249085183749155554490801276737462929788896485268388786465476443836675167760088186929063756865391395074799660563390661376259770745332492013272436632880428833745994757460436080281000837479228566664228083587393400687946525257846199318492783244136602878797185402443557396030570573332635827947011467276239007524889080586993141095581583108653190295866178157951144858895008866397245876657531921230725574195105739124307476485298382347934646609654133128917989156252417952718523856489679492423688323933031336553869623436457287959303965848474122989301136266131114352056314612379007201646399419415066739086360472836492395631505186443882876335059167441690612761946612633010066674430980361878197850131619200722774327138900444236265533381472444845767889837339992705214544337023355553768752390776171176824667709413939154190647198162302288916496635516037409919029652326724107602446315553647333406687082538769328486853882992202476615555864410309497142799860422520470707180144789409813627342323730188212638007351539037488235732530969492610780602193010128695524088457480257359478368599042949861152959771578929921618083754054409376753913802888210427585687958346805647395814739681856081673917496507990842891197251015647028422830232826376901500494936697476371857862469619215822233350691225746473788083392627320892950112330603512773493112711186781228614683954840763432567323914517705713655115710653377995174188250972288297996852804817745753959732079371762519134708368953342698537136596206572272025465560179837859713765162146952098461854760319367147414943204223708750884513123448576825296124142768976022990746709958760973820653464570841124787840008814070629235976666130422490057443163418655935566128979201841185499534416424988512642292539956120577512990145202823820662093670027796788052604897374099970447197603093469498579589257796428385217664876676390973755073817643780404927260446429798037761511163013534576556921230663680292738886858804185508286991332105159766015513932459194723500391374596438671738872185094752945211874784256616204861674828288757158236145224547966152715468976000351694415475565744242485570818062255244149347302412097408957899159179992453999258932245135712086643972708311526457287576539189014806988939390879996297012324744644521468703081485695711543399401747855276985555232362496083047058435202374010365390054444979168597263448427033414053936886562435619319242240472287596781660136838401997691333628971881440080029362326585492586918287417550922382849409439241325005174967589380202442159974009716296112076650180476489702555048576737801340017834510896484871834673684021801998710057214786649865860223996146509500688564004819995609627489127096817574392504315831814744138594449276032164712376084221390120760390112586912106303271779996453049010605861666298481093956831717276212388875350084746159361642370110817242334924747552247084462224686438200811208602488626886901688057064005409115721785627601984261773055632525451326850646662300474754209877296682418778262013684760400305659819613369123436970901902681102321844247869943163059213060136494693661714714585716339733591765807278783321668021166016203261627472562223161630232759966235971203910359873065230483797353471945632820169453788408889632360134621185663201694788564039733760674581250043762171384398657355764276278056310085251487735980263206943180374833226188447737526312858932219363884299713351990096032714817987643903507190110964631843261228979513648282883885444997868400994090754356189138418141991702897900814050147199590618645008278154676883080763313743301125571811875044356749466571394537082519305400620850040048738531806254182430369701886414524249341798151924013091792256013727964419106977519405511807381180556998399885207830321184831129978554368995251884625326413456092686513170654808378946611169615366724025532752794495933979819975553016473940775362258919375657456946400297496587242881514609749403443370546612754401514662010753729312023639625792480182438375564180259497152859089899207216720340970129131227409694037558076707971409603131483324066024853101356562834081615903189027097714350357432412157277937933535699623875799175539250218248677497686666956351720717741355413142264127105999489643080334780662827785602027540790377388200692430894481180287004816718952883472695251092479287178247091746224120632615954281433032251469547052197777926035697032856525066901465799276032421859676468049475391673219515242771640433340943361010614549707786395336868078112785916167506183201575392686705155869338327892314858261853389746958376480178071610780648665784047150334676115522195593120263735320197364858027720128095838293300180043886715663290974380292164221430981105406789227816498045579126183819848868272381744379306725400189594275933036778430675035374689634587601566266569641276067619484805049790101680794017277350006954238324077265236562680818576584571890063767234897867356555525206140255911833586568962270061329031026926044578722741640057765888570612054569169414588347545314295610802201234903077070433724235973668149907655401133449407458435206312531616819643879942991945670069196439845525838099705751703148427907920306871439122016841237568819524455114603954320228438858282498027179058012019106505598638703449273462063107853235368988821703394431390294182808377105738335430340290558399907379336281791740931477055252615809651200272008469874283993091695312516565255911702328688229689085883296760481597971606210148365894603254453642310484043749916764265010534663039090708562841396479328643554429677082502998055850463460742880369293736458653518791796064883321500654729286306589923609993032256746956821695409431653659430680649879765330342476758126512168434646861250318304971303315132810295733128132731635494256891142032441660583311209977037278488112587293247934335973183739582572526950603389506071078097706929784543735591667942182126866489082716685379750230158253046815785799266005901605261049787125228270091650705653822029890691352074941423143506802289086836596739318889549916704440972155330877176717917316024596040805925090656781275235496135327895788196541631239161049820540957897092061664256859547168751101002855561409482595303905315840365079142521823320803506627535641701939279179832123569569430986793970578949216398610634130134160429514517540620656373216727026690034250557117636547100304348528668865845320461367363670452915083840452106606709924028865421134418579792779810268897036654390409381867129399720090848366802032450101975992485859447072477852464966717730242825421757403032919816806365273177406021734757408077131341568701245020899560191043904192189547225153629592512708184196185668444461465829080459853756071752400629140397478746660332123336987000971639839171996387433879728996769996443001817567318535289438216272128627263411271592459771669783148543237113240572400200415788993379054051699838991345242604377316140106209926934672167203645117277775962026057135134576324059628305175295748971837180090184439457898492361033889185535042653263180414847203120984134684048693899188387277122597769953892281724466165771564793587468014311525477038882309141841200086268292151451434110620712068709937340513639811382974431290449176506858870400152339364698588789570492623662157379549660379307128060128950334499755496004570980522199898577681847161676988856221897570490549050389016299449393887708311622329836551300936211989684693763223536476558834281725936320110259720509517667459783609522356645790472967136763063854822648243295871956690729906595748893893095347565503353546542655946519676176047754827630014261562141613672284551367991647649694018742781101391015333000614629069823736071563260350176260833680919018242483800807364599674618340577412396291220559758034012793961118852887409774277663520836030690218897695076287158301551838022915097399687069525207656798063895361748460563419312061392365176149895059344309954609778545441837835554207765993355667642626112242146446803828058958534871540543278052959540586468692972509254186841488901868150901184077248192195712789357736295442206925302966076224157662409423156423751219815173205955191429875006008392789703634308111329081903390108992058829114445154081533343708166984866615807576972566671318094607441696973833810501480949826045970391079430698449440919728219045485273959081678927347012279080633884808667461768253173012671025444761008364007369221792338409560812142892296438026580205638510357498459611961792697611416008075267809271882421704347408773609686317178030964795347612702605751856496670624325295093792434595063547625166092020979286723237619180232632152672894475926289725208755978538716762285384980198998916708841567306105485985832749904362767792182504121022730762772671421258297736654699516177891413192748281783682982241131312410954788013325717257153184694496324641930349514154765598092831499554105259000123341195258891274927284302710964803265256935461825515841280238685500361743776708029209998121830064080597291553377456363082460358333313639763239597349061234727783503603560305069084887396857707286058183446878737943956091735690977505463294465278190784817617722880470385233139852084203276175736716102491344815307200597185239825947693626041781397148314768876585344152841061508242883254632307841968159976366339513705548538436678008262700224462930636793125348050370571580382824036654843180521714919003050333269212243497038514690648319357759842303602371093173203627151630609219665972389981547305516503754699551463602859844249274952996985641660677859381639480796837161888083248447225246325492260736196576647764016305878645686505874661893492509417163380121499433880283706790789359316678743756750947612845739511291963121697819488255116000990808808724839893640855789030845208664347055356500543923621456067241816898071615022217651977524918430038917935749545956669491979638034300150792481336005267275776284651314172167586583650924101298393271641934385584821895977673729990349110073224362162139779323318473607594274879261253875921757567483524449313312621507650829455611571219128298028510359872042332816215423447450054292013782580754896273698589767800316089346348650148016951309650401780396670290111478822866046128154034759128752776406546745670270838164053625052796416164010725050300740267422537423551474590548043675976048563528703517463335997629624463768292705357875462300761569231721211463663148919452523939851913980280705181045318290483863958842429136596701370451396155796791269117645645558223566786128186999716172510303636342733804077850776640227938318175385297623212249572519608409635955239746071277498622930585364709628883366416457486978069473781442173967750727684348224205550221029782791789273941720915728909948566191188545974532299986662637431115292892099007776433116941221930816717306430283826037879811678252269453842289492394641860870927975682323634992424481045776325457294645394854092105995112326193829536630135560394835664523214959430175839087624273454371800049376176023404193155595481759709222132297701963759747070052238834860921176122170994022599029420657844289270592003392099981283947708452872742471943348266696512327464107281772435327699171135100977684463293042939558099222896727575980301791612508651339264055449038981594285856510034193268539778100825728637454816535019916952410737779785461418215620360733394182371529943545144531680342283301374963557430635333574122127891476867235592037169630982980378701786040254980927098447972809394773902674493642290793493289577563782294815564225677284334235156084089290210774312664277139610074136078720687810577275880926048591640457539899386537490892944854630431250593368033431236177535206044623296307573487119732759775152914939669977678381295228071449749573080486831239760651996111663688258165456272238784360267993839920521823522953981539983164709201209006527279063344574672051276054045363449247524391374853100918504941555625544401695547938961078366760821553869635827873598635445475122140725817361725684650697466980140438557384684537569171360362777742528374340751728775665711208382705866501598715910506973456766538573466047530191602758888470112296903624159692411363800814371541507107421060469342311544389751757569190578291785159082797023512072834705432724355800875539428666968838279726628570166171088632433930142905812922004781448709997410181074374220323377712510337191826118308983140188041357378835284616343977380554460578001452345775413387973380478664545719818449572437167337989187495558500124314380986648949055758568791476110197366692355930205369819524162937662553711256976396006892668928325059467893798768590193710266842291923793115287189676404496647035615229257811127333710867786919774277334175390460598043812252751108218601107689044978013313440200793708376142534575453286131761255603330187313681843463920799068125941098419177585327997989917893969850583516871100823877472795426528994200372993538724605299746852352067768129241188840147756833310350601220934068284578152892074789991163752614225222852054931897919089804781377511911255959706310667457034981761428817606137366059212866880097721873298036644287252921834064020851082565502627573095243812421622537134255706944083723927226988719243805309263823887394513438445310717790674870261236285471173496595140418158056094527783760154447450466559373424308709772061719525883938138045216690089998363948250727829823939858558828231953777835636627299815637366201729362997555017765598525393038342897909879090981481050844927895532223773818885255628771228165716995595322382693468337750030062918157905557927300553944628323686855582434723176347763460777052338680371239079514038875999644026563500374924152330657532786697135027505332401115726024257328639335166660941149223106105781266180509308171172971774775177748337141027808955217688408113632347667747179508575640292831762242400905524444561185564412485608717129096858925854429122829387142308739978091767870487499328427049289061791759161840329938074680018999791059234798944242092897781709494252787293532173412616145301000836910084408202359814819295702912586976257771865445257493466923072921930603924085110063487905661576691493829588356914809198602609692606561252118682024699979851567870209064746947457604482323214711252183043737250555106347824874698295651177837963897782437150935589963320767069568961795298192643891036592816709081680217363381854908488459855958069160027559071233249155447114930034836852394682514335623526682666176374108967153411850933905117552227451173464255917741864021102470422761459167009164776738685563013636102307490710241360265014607021375183117905630155175204565584220816172736842380360881433638262881370744353107784183568565028629571117939318338932783991218862910703442272880179059237062620485656782936098298536296408788726438678844215482065221048041834280682590001945817690167403660117934809120133402548087736702743919320491540654457920135584056613110532303624694684601233803083680746190453864473831288330305680941098302521286535526630007279121554138217527063007439087484794329672005519826813865900922094069722861358797306779829062372583349371743631271850240385879228859240781777872976646418011089488326718985176610504522440254723084633162578032047750400394483982871330578506680137291421061051389416676916044473978360263881358623153856808863344531389887625938987138733250250371782152321400095256665855747506317807893493344622895737354737479091356800484146329829612402885210270473883246567909309665172994795158196821106134001418260770948914562281590405839487853354347833214160218540961700570845467048884247443876606411979229730977460986553374122050797068920915318307774628691330598993679650576827075700359808453657010068246695841585370270919007773343589881557526663197022930682792870703522097070360078530279196904403547557531459647691395572099425912189983495886114705996732748200697744317973784421665156817913644050282520361307359592917117968438662465633630186598888150736084295961442350548511742906473380096544102551376464463932452497078148094754866346200390202386408831315259185142082288949634798291054462226520434838159216383262263076248952188167734180862833403681949102991854222975705069445781149490647963105884800765123758861297233378566538365143658704206937999422023835416309836300025802618883644353864637832735595214616726018453812761340384228380942083056139748978812409284863630924293191963266919232221836887964324372689663808490408479915763804538196592910470186154414068501764606719212553997414221105717602449340583419257748259877190774219205864517129173883257102086257090109641089248225107750133772019245167981963469261514769380811099456484700322503764926441423349401423700831655518013285181845539569766362873520972045097780333676052986140335215168386834933138792961392489289556228689828899449949687056314128716269398547148436852551701769082293082558789195497077688146473697760603553491056754619844668296170200458896149473907874596769524775539594979511794267160484833956433989102516147296138811291285563475411844106437908652986372018271594831416215446063469229871345015786520855497247165658719984335815301188600127103265514501402586795282400801990860828128229092305233915038187636778220414431931835339173078305633186752896339818717026882063391121074163427224472061331246489342912138918977232154858523533548716158374408562361397654991881329994466426053130726060201328979156586490250714517680968023733381144171314391223373472769979751266833619921301114462685009902809368910820950050983471622026819109382678546001780484927706717441769309659897210253432842900375522849721009486053222320081396508592125988203767454940114777812379187217908523283080517843229175371975212603913992459778183762638621460133377364345899616913511119875941671494544976448493285678160619414996705609824867605778572617468670302779485584387307879714879693429218491163600188347113703337803394914508226966772559329808464978640944750719086555100354722658503760748185575665694744413615012078291662988346342972526748075608330722638433821460536123792773550594698182234942259930489127118753721370836038756468526532707317914704588887128975098676267419680252847389801454433873873226119372355668486410995691148884044517415108102536460438872016786597736214726270776840255291913044378087381636523836417393395881666562325852740163331140395584087853442443866808998090306540791782082974951827243384805129143125022124318563382555768987401242199227882158545615310055339607037613695443593266294752406355662044887928353084213176525963625105139403420254936668071698962722231832193520893840798558027188636951769380605102121572155762204412894566500718669970811832060877830859004031989894544205013857795328247231463986053610298937458470100522585632487671398646154141955808179661390549098264031858632529709380707042123699214930326252509956142003248193457755975448517240380443409470063226554586132105603414168595388980260699144584508597975408448438004228243832842737221130567158760943817418336031919939420564496248597219298306906225578859440921246412587982717557527533592304809447764499815538330914024812752200705683668232985486623746833789153190211648231513452980712347940365690665312879422332121385723553748755165966842125500808375734385359325115137422798095703693586001347685041003404644172231781407946543453581135032628505430779226819630699832562371338883024819239307045425981716207238450945611285669365443444408498516713323826747671530521515784439924552012238069765408962086391728100444125182975693033919829029059941484913723350840697598966286245903573482690511501965880501566580617350548870218285380366018013994448821559929006940875524677438363184422182382939869327934411363324928824070125627744726339335194897258200165487748383946529433796757127126241355452217581021714084490448399603550798288835021931845116934656679188380256303148157581270508975706030963343551938702782191993974779000346060964190229855268749483887034401823570398010776357125337237479067231865215419024411337372951160521236953779479342419369326993001915046677246858712847859605927719148586227429164732590609306915987560094322922514349917302972573166774816503860348768318787798772944380468449460425860712015972755655153925333793326111420269622086480513037175795058572162363677257110720898112176529963357082266347363499231330994092710698314614409798307284973609574191159461132642995945038990882122330752783855238157586757257936878641973663676360169040322279485373678123179094596236115068843075554456126915423029704039374014241779252682804693626016450108463677024050126900992575692859897335158214165789028069833819572289555329714996721978263002780917819559541867040681018561392888063318515502700454745252921029573494887803015694941155599393219818434305109166385165982511196817548799118512971698039863182604430721922296714225320129475045013091307575026124375531077884271789327081443117897472057888800472869481346115328702409899481886433809338590946746312030049785558524727903234966123413887361558510183260534038352766949576842846885069002417809072873498644027974951815099006226403360541561212761350413102995931241046707026388175102186007584497642304355202142248034671003545672253055549429876865017080548749753836492676020095634026285010719230806350899818612597576111060290298593721930467115513910744089779963540744171662671631650249262112600540241439371031318967152976717429459947167871616219361501954988432059956110550665795456541996408113354271675040540911714328557794387534012511088636331683810718564923693083272029687285260775833441816330883580705376559508259962081763529777348378476084142971498117897502953287766603598614789568560889497914125675420294452690772360089481735093139585311064771297235952250446117725609372133532561734695165499577935232187255501997453978190842943264208673797410300794889832218346107095549939817810073296121671769284051476466555414167784173663669551376049120295009070416428716206150397897718708863927595540832463561176087235048799852664099624344250175397320235134702294089668627573654940395239017971262893257503804927689589061474717918564990661403059812647023754614247096374669454356821663816681117495389039350687121859635611028867432483183126742830694352345578725327271561478471612215385686929234168098376113292838718464642441763049456580939781007246886422018306287539654177516753485698877527609657999083585966752048849442786142826582457234135437136604586805661382141556899044537707149079867891736185654179479132437806388165971462047441624997641400543632523068849126470118425948457776101238262836021234438697117499094319919559413892662944688183038334515021512795893644097558341314346947419580693527450927366046070102567697968487928369088147286653891837193084631485038438869113009066520845561968225484264018417683325220765365791804040932977569736475828475412520587802768761145901417345380225469028378146060469600121736947635671311236517940744180699332925684585051397836847646567588401472603128321314291129852263371072550386402557070965322673244160106768057936964376528810248978305671518779418233944125211479353008844273775302619231176008157816148103187817586226242484084397439110475539711868661301582002315797784687707168700783458120165925337217147862171626969090636122464340534781272033978875181131047829233142653266115072968995962021461929391903142183908324250956157936861501886256322904582546024908608148159468238024299608481429206818658340689484205646512491738153268683411080300762929681801830534479583027233608115266045236393549953308224759453553820182857751928099122057334418176358640950875270906483723130836607725442344887379875071214275634628929253520160831012695063413393256920265456643585907830475753446264860815036547011851370202371448903852261987884626376252417069371208269324737052766607898039496582082707871873064357808002884861544184091360863237687753481983110971582688354494082021737543583320484344515215504281207297518818269803217393994461323713725820527392354223554113002398850436065160566111569892520918078697529175639872572310333333760832050485921199755933251082958026703024202849349348701425250495376519399875912952038037722548707046700743207100929753464640931631381517697596445578025154763201354001372987830764171217457884631568379818175592946474378654539139150977660569834339340348216108064232108007000105414178107009902000680125002779935647660582969317186413265410742151312555017125137191346218386718993015105916475491601291569073953758690383772578982364307730830354006425962409010068429175396679224317010721547577839089908672734254067374849421948874737084041811705445721358479927897425973261287044756434476072883492073546429022101475799211015909948875595054722533110003510636106502124595799449534010731343057683776323878507167182675835093941344804504324934850408332074610662514066996943823938695954572556289896306320991460320907335337850865414663872037925425034056518540651410540878207651977234088916586452741348194560750746115284773099264778617998942014118844157847981333028560459549783208895893595981469050487493379563450676817453711482115491384045524065005835726478495639183625846105383614669902786849506420541020344872946163492253143150007418597623429223137912362497227888248448407867072233835942860897060170603398299870287759274801376154382968009982142057980140817855617420175276618988001443081181719495716882420793703284716870020023877668778846438874467242177483128004720606094312204769589887174369712946504091581107778758729776657348527327180798542684343029819572546876251188087224293452797508996584583833102752156087052138884561356087190537829001792630234929837531877676209243462462485917660838118486878033290228628717762669890781956768681252548444868386386690823895432286299978399093889313939663096263502523777215097317277146333474891955235937132127295175150193926808699367163467426042976713657389257722977818812291401876362686346227699500901915575704352840773963383086003139034695925988745600860281880956794044823089823448532375590121240675264882201947227058023672683681810500259499859475622963591811863114467022499547847943683079833477148987428604982037077506855241692410881400062500456611281040189843163437093407481445604749062643821687879219382557771514727105909922409072548098525907824040234205723530904127562501983630280393754413205519158089720846198955776438090391934822299952404266232758113244292180385876593334864236066400122400936211044123254706263570141660705388607152767955907703786189692889230242416159336915376342999099451207286450671779435048318768832068141702810757434139926813630606905451773507666092057535064709807923483337173850276787296148661018810635956162162401870217713731831301545927651263974962439346371118734123216632617901750913478306931389455649705731434055506329472966120357954549560219981441367240347705216004383165820540009820103604077412920821246488536948202101320817420744810255431651748082703724049670270924333269764685546428064715765579712335162791511599411634924767368366740717140315649557067247093257922642472672326475850354377767053291353042281860113513254231375953879596211584890185869257709524383527101383645670778834216616302869466032044064305508284621772670912262428958716339141785339801026844929564693581870767759151172172321487057001677703184859946533442433696109850008369791058393263324331977220372892406330388122513551813732876066557417915022168275973786072402542150746123059938509993251007269364239736674828295691394063298461160669003841994159892534385011318991223467054040954478923972474750982187292110417379720425895439328377304176885444563015958193811173517907854226550190036710361735220246748380017002134829129861012575077218818633732392260523245031452958363752234074684700471590765359666445069290693183923084356155109309389655446380776405870771411684768466480057328971029485024243295667117063377923974027721963333634083071121741626648753955812970549614831367045466188363695914111772923851732306217184542167343236161571566015213686495008394238293868983323516412679048698779045784216072949543886354326691709765690946988980106324156027241928356972797182738526559212522749606955760048430421716983236147002430968463381068899293978003298430736422367129906462501924888019380130390032775529791426699806445797957353358193284507826162983440124833991520194780176910760670131251885245291462654341909603143126260178059744784437731969355748421942211199418642649889545902793083739757220664301505701231462919770877730311828213232673319263370383717289506357481872855523663723209664356783682753911744943826089356207225330187454522646896402263636308456765721071402590699808756709461157404673275126572137948609885642782012957865907715781904848480125909754642833233992259285964571432054394426632301247648992734343715610785838065706400590181631859065334686996439838449698300433052111263737688226905729750522794342718983700642383254875254442340048836277892130942224957956043496969545779283195727030772439433833308689669918627696570227755296118900368129326365413340063039170073782046474956548361143245197716870328314466607452400376429017171959838953503652288742996988090256116866212242504458614274551191770245794998287121172141261111319254731088995049210327405084905627106937100557522676652439008438479460824515344214261107867168177588508996384737028613482102767278311097825140358681977804298209701645977712634646755562504496872272142054527403861930934844911114386687002150532361723629961699687603196842363013025926299566646493278567528660701126463815376687761244122205631397355312962518190725172190977635044713408767038891829555879241062872752595500189238307038413298491672714404476920224180301788945366058183174129727298383747145558997637109448837448362012425992693444380529210400130782066149329636145580234410586360393737900180803175735039391971309181421829269513986098163970597388773056107801833205233606141763068725487347171738719801604242683124605938617370919159435750361398657508696006892689696732494320698284395740998874555019908595894895970952913065560534489189050304008949020793820514722334095033963359380995101020701866876740773631420623692858995683587673081286675683288469011783731523753600811612291771312963086251895757602203638922585699553963118274736801191255026510198444505919766251839734460268714862523621961900489149257667303134901758970179964289972442613606842447753450953137456358406115834555924341129954780586061308313198598503331927936729137498507727673026007315510250035134317829437619048959375573196350523309779208547231339109477288450278524824667919738176475682257449221530239284723176499193259801459806690430871489644832167586272616784747266390225457840327581552934768662691115853957864268488034033790069659525229884120568886283329006594962323628784929262483020673253694795328648786696962343345054455126318850582562375662960884394731213121130562794469486826683446995593510257225440489173455213784146061272220832116672976124831830778032434405095998407471611590989156348768820644971427749233079140128903660416494093423194482856262831052256476065560389402875633363494853185034087184959628891553555948707283664250548696045486711053441655691187709063337733894171787387614060816811237838109634692335160875509635370317378471478829035197129190563033563570719017422887334866492515606977971346048803159111164930061006737264339938898156912103587202169091955446698683594341465279650733737382579983582087230955445411289757724700520027318554436256248758391324964063530569025706369234829778233631834190798142371065730044342147537158525203936818999989917437519015830806463401461923412588779122052979181987210704559170654344054941525964651049459379279705852776667714160203418309060841974623460032223167510684353226807907289731255203808241317951643404034678167524877168482081317381513476630851332454677190719296596821050881251454303792211796108895847115035336169902227891439330755404076889969488961371127130656779541195143554348252560128265068291485691946162222983439089944924743103370305882813460462483877081761052686027638133601032675107843235425108467297683863511577266784148928227505453476282482988029608192771430582776400009028379015659350556334816462494624014006536341307208643716466350353857818316961025660988669260742939458913276213778161081720558029380885957600388807092615983320573057428044706084534226517194910178133444676484153804105512661830694191738971796382878818878952439894299778543346529357386184656143185437416070942916450056088930794953838608515252148079663468214779558908223300957452627818686933014659709239390108418660422024669680477787379844264463559074041363382854272342415984139971277310698405874506648383694461133659129394132409862856506508199839711438313791539567645118166407780675192879568571359699673328932245599830648078081762896558134161925881262485621350069256615960280447101778421686749201487324943880926694309088144815858236959011322351512043795319094200672155107749414586648282569766382031043338692580646888500010402071971428074603056899643378876218004884137923964558743600959640131027874056172117819749388724804838035899266875558686744822913499609774171953264482544652166502988989622850639205100099140165106946203262817996942047391251644164279388636762357109945884851427209711716797179313939277274472724870221725019491421140891909948965547295367898237756212313149937152011501884296775746363201203708986326712528167199797700494048038616491031324697604206042873986503112088211527824775818833146496392282425848776311795526166506555892979751033269838066005518116899655246650227875926819135683057506713366458090630788994162037443249954596442357647148106069903644359163754236830649532236014288220660028204740371954875468748711244517558359513215442444045550649884348683492923792394627039115772093840397234345838016538592791059861186117989784643226849204486131495164166202788099429617681474368091015485540387723466006899925471700001402604145222283860028638722727181345151123923035778881616950035941436391471494758707678285425009577079809294834049274463708117899080420839333177612971640187334359729694946626693938918363062634616280770821188210399800852161427147022077324689893997029117497527049615496688047330539654773898234716254685095367140375808127543671016620688259272968698911667114356913256931140731292335480435801471316207232136724998724431714863051324409473732491895030805456004904902943598565103530053591035393484831818957084250150933515261653020984713422538676331795484039844536893462915647487083701180408132222203570201918633649351616803372438985633418913727176645486901234418107656382660533553738596240945638904607739993349949933118258350531664268312818084223249479645786515071883509496004050371840993378598640467562232286133667397084300152828358991830786769467722114956707196398565999914755973762049249679450256221782835924273105201801910508432272840818276946810364855106110121372448517095850568726219149999382901942520211451497900652747622140768686377129612750110631359134134768206180972705651715123560727621634165503971981009325794898028954068558830761891121639011740361979531186517055259028576214501437456954424599320234089843379319324662605826274117634987598942384259104127978048618692445194079677442037723861497829664184860263260984946739918704911623364599813044825662978622571340697615107907956647422583151531947796262750730635688783141956439242524647720053100054010102477528750092701955977680340788913193528698201514948207845527266133261247451614755457466085890127523299265414631122377737632116685074732151108857968688523647844639473397346779088962401081773939339182423443356927670970118724287337365327179913355723883509485989873481525055292826086204341797387151505585519069122947782122032387272998629605310905731180174263274160798202459789579700007935886130842333902540333774193591869067236995698435564924973423398227617873741640809098678907201915361885548413357078861790404948143240792954936799795169503304175841167303262139306245818403286431034391977129974085513926159117828941612984263219558223402483930953352363342646963128035087789263621083890747878324085200101254794063599541562054587511025960061840941989894123400055927606321301854084356062239505410458034800306663995675675005280942934196808672715141515028776982653386025002911584908176857332118749002957210050431990411574973696209739223225100843517874896504489614392245969076662682962306074670758208595479194113398336328338043168806118819262986815555166851893520184681947809797121112609744073631217408756453415164956898671145659729041223047719788985813117608511452741422228764917821594150064938620680308167832373960402563278846872308709190018990922007415648853620855174549903994905865012337989913639906301096035488597234109326691353190606549237799383671370911481124101478318974195484875906661874610943710086727349268458751863601675033565995355884712860930698397837555647402637726000852553884782405291821481385959920984898333625942669868344159090926896108936778802916010789969557655708431879038244809854939695073606932138953885285447035008789113228738960757148285598902388732967068368426845696144503544047897876400984399518983748270551500948289279550202754326786775893348636671104776335784097647774202265974956636570699530198118512853339513657614387221119384734774118506879870455377664425837242341062816599908992012797112392025921650590227907923106481026283186768055832733763101648696627718506356957208067630187583293933039250383239908952562664830946988800501441937983436161230698778984223636632004420302089069698927544458929026168866435674586086796965320381816726057526679066041130620157087308426280252556637837062918500935883711164397749630209847612233068211762635950815622123131715076872023291470606165554903452536560639075947599005957128139581776382556974977965290705975627083537196663397959001495152160826158369147225309436083248286847907442567691915276733117847481297093510318193648776746010700427345234228946876808918963534518195038621073586305592952607916783950227838909696503618374355959547791792708382940136401280724485789303482325834057478715704225553392844098064664417106581893353329005909804508902069472076324094839098407917534724353220520901703238391481542050381907666434434934864845127171630851782695768904769316995209408109077228299356922405189359616504572566836724053263191161261662381155781128346111271769197627972889980472025900507326044468430282775729141070388143122149528244411287474090291688369271109536641973418049665502065009541389291894942624296408929370021997713651832861618404750927903296219342766354793454272410240504158020830262222172805898796611931642957683151257391671561639182128937746992815811513759702770484936357271585665667835113086379968687930942729133288544520982771461566579045305102010304701402642565523220553511132934524489968677032606108657195724969792295786123068508744037437039274343623658879574824252386744409708798483069535821090800612841322888606183400391747787391847785053490953421641825437494780710833984855891320211078951695578403085075616784894585249714803963885614267531495087846904550434906543641110168749144310844418177471692638012441615528597094208715750137180109015072092197089408704069056936975055074177286589107863992961085225052420908777933185540692625010700617825619009872805448003731506494384053111298807025543870670102477645929709386989440605477670783878275990316967738742315381005171301902032719279032927735396624599844989575139027558815196197966444894408120095536183876902714701921959691981928529412283702352087853587542214619236273836050205931075757406643915163503225179655744399880652604645987311923465931022052511552837125940932300773804862092553306994815878696844813451081367783075377377023706770045101031651288766334501804368701212478407028288775485274501947155579101058435017974795275782703839146745614280477742788066795243220132007636141276384807420113776954276672845905127953030685333460649187670666636140095902212848777061629234327658225883673012076578495050035554064761691746983792335046229515924104090474163815462585213051594972901896058751754599890365505528926480537838818731817878740760381920610879763391264667661475484127205413399576747439583778262719866790029974065993584586328339880463217150077632934170839073843765995588613227682427600391685531987100456329255633172924164781071190539243287090168489238694419972970699551689696999743813163876217184580137253753271857106943205430206639574859835219831226093315990402064524767566577047791590692155023252555322826470585986854500184214125530663772040329996048518986520077953212847563290199454139344742623053714919348306212855266056188081769074605054767361196641539149217004070135544670253844232109628721516691865978179798471326142514816549765637747596435444393694699573699248532529886533924379001200110274442027401455957739182529460424576017640825344834691088784992655614364981574056978545951948270106841439726079552265676881915596037683766022134297498445593359042027002208558246202741642204682945153067022194126313568831425123177811725365409615005138955280663499357311933216899928342267128053498961420620943912982286176608267251938072946022197813058808092583742908230907042374349085897799097875193206004125831977604586279486098481167371902992371780542897631153854616160518504475519223534114325971896234558206928337514993905849338164068956685237753935750914296945312116260769369448278856197582613511414734942399662065380682700307261857142467522278611591469876464099747391158141818073439730362444200150486078109136862078586978487551132349691418440919322901077033829533776311545708259782440642404174519323772206061630472676127012280565610009174912137007959701329600705913760176409303167290731496897825789598025370352124169362694379776470767294774859508518142215395203333874179143585273689662195231879123427256296557851379947637140683192087392058759962439235222590709570846188117708862048607105485589545350621907223899735187867578120640019011814079601108598000711515774088026310681615632379444862935116478292237970584403760277958728869908297282366375208002686276750592247081491934173150629366383176895835010490645952125603184413284845742319007619443883496743481811271569968309082929957644973542956194468475903774207772281002648872662123383703756103353450307997548741936728394896159982193271229269062266697836159308331102541738351662773054776772057034114389465247082858276971907790289957085085898958446637740887487618663739617032844543186752457007521967830379420012071304229510350903690881896162888727374449821999153354222354158873963146193846986401957313227369340101131613534315428594020127491174644743424228310966204314392980325793232899557071308724005039872673663564495598871504072491513100664908947072659836079510944388661068496316507549188333726520798663763949305778651236643659348195068711194801207822283675394611436302217291881268849907163767978505161965964542038103802843458271644485965938542042318371456436271471083958603744842962321317030524682822036840354093489116679899277923447671106138159078017447220749780525823275485020081142923074050414834626061267527763656394084052063330346046893198697609522965273479391786478069648457088073886911004694870531944981164487956642524495001662545343723960279997863655086482909484374825325364799575852480557665966432105932441694937922583960637747303137761536172718443770545395284250509886341735175881045615400903086054114030472292010280352378846520201802459201590045756004430578752021991513636266850619169665101309311832862835842610558840086915091634976450302539674870557895075097417149192025314609770800721310709875999374443827293822503572926759667638723368402285109222636309827930400177393774802667444759241969949111304881762499763014228193163734454651719279343209191257488332159535416332264527252753988910767112039247576799142678375816538685142853757841121201816028218392431017772070814642860437162366586906813603178570447527728913681957221758922556161995658185941095515585471067714739191357847852654582680790668882345000539870199531266660188294552008179501577303786425322723318836924243340547306520103473995952707142120219339241932802582352948222719468158407196061537319312143454513993301881371055527912115408986272462916955623909896987052706904115533825862156933516904281295018440202375460396281519182737471498921387957057186631240756594650797610842031253826205499066218720950821702733597433113423157230338297362507967207330072289425265544412021592771307339066923965789687240467623586563942879160849050923787980778189878245157104201376645325751827488823276938174111571676293019607157852895846176411203076018784835403029529877067601998699920656719218559848910452072807766368170450155989981892006008639243070569445409095342842859297574384407465920186000253081807651131405498135776365725219992886643696244540077991029966669045215151562336145862961766845205986220078834367397168523278726755883535379263452511970845987510582472182060309595042325480349232854908314138720776182244027118284696302868019967598736959357934283872705110319988135336254891961894800505950430502111267438183895222269525173526469685356151299398073818669865683171546606554373183386315545464854142137968493135025772181884112954776531006639404780306722939082950332909801158090929014631734528921748315674174461846010570129017785255727879288781950587938222786373120523654495127726967248924168269148340058786967432236939374291490818808918408894752935860383852058058937298033822271216119511287279354994783285030616248965984830119133006617367083499711643653360278186206338055225535230858397021340288616260076816741575960777899687109916482945048634874902119888357716679556001312666608405201724647467975758011973878808389466731504631399203478544228027003973561768681495463356175635125750332592511056844792005131352643111174221597590058571440236808132927257969462063542501733605999071395313189097832253005030565969180329141098787621189227580451576659034607384297879494910285043570794911019656076777850134554011080410185968500834395971394654336497238434136970243986764876731807959139938336154625922775566198284337343920324072330228319427292144426184455731062466117450896250970278023781099523509211451770424984599814300949735728613337574010559918727907224578958856638257704373287587313353325429212130777143656253835291807489156861038600595781278694779004415343942987612332054483688850155969514164905713009034736046444073910573951893357522009503901809733618449839573491385281796553505067244283383615557488356519875448876516140896521743612477041346149284490404598381702812080236945010950761034032461664005866668007471138462036186757946305833295506085279966439848381304654902968672089669167902930804790515358287776227193564979108963088087965787043313686611953369131124077057877732062943930061616721132851088746487513847659528591501617045121040689321208045883784141455029484348373805173019251051301660064253428839831752597011029750498300689044052591857457178047208381609614935026834645693824755835980094998297242456556510218842968837601739858522367841390055426878065947663686854485721550336483731848309317559858369245238087116877772554404985676307915123721491869560184959475054525340932560615051374093530395973115424300748239165602657953040711930187839807354704933347644189516378461056900923212383770871501066408011238968864422146272501253276537705926596499264725107503027834720466486161272535784750875108967375122532781620880897337348756169551479407201823180066573236580646179486784702327319820279418389855556890604722866321369520832135673948630532761354405497012344139835574865499436457186082336024291624721020087536546822640287498873344520452610842221761558266582496490776251644508992141592456196202875343635933764153517263301234816133732726670636435775904377459653831389530436941767069565540440652340992316138527019300819059803091584045731347528537943033996015070922609612489387741651297302546335733248540050267388997226567929030616044150965214452755027550609170726004372455602374120160560136685202227792486302691544946512678933448774884197314842790965829263225276985210348597153867277842260751444194067168585160009031125897572538782074186954924774672188999843396590889423196035605187311337364436233143259202402637435286109747892657647108664965280755504002353122630773601859733530344686531834157965906884329248853216547451221981259006120824790350199674955397460193431596716895404784046727933850668486487739536248860175314162802772457163234204542451979739581561812910296630234331706384607844652144766710641961589949575125558719883650715016795850356845510251728937245387402643456828476765362160464094420367784155821298562161395684704269171501735577238181026923861316290899734111627956435611383686894759204292225255858496658246989367383638804432699915591099746948498092033094312817593457480894168766185341840685258042169226041442309692169330666604636060650365094904175826656608983910237901782671200396380726598624918876983369369428286308443959693348014752787992218236950640483257662098042229649504362283041416953686998631383579791284073840106542781835644670525686627692911820021649645879755177402711530857836695105571661237007380767520414567129652632543370555013121605059759327351162563755433274520621645098407236418008173280931536323918800026725862362813351608799166367867930868347398639832325063123911389328524235201625241974075315121516618565027980522074714383561685862812444537857373006038967711187112685712369656609211868683604585119631684660054300988192284727505911453171300695326312777167824512671203928652936925252114602897925997077344668242618289212662226777690300632592990681958405006429695835456013084641310338269544259465094864574501751920144517728133540359136881231542109920661758515946016496410163644390965162380300744800876893332188695820497050235344813002538388562257452609669982847872317439334346360055139216190751060602453306757167186781474789854305371740452590963293437182094340460642740590543176681922493793098278987221531380381574924439528986065373853028062548797188123941790872413051099350886948486426302569140331529565493409684659808432162788034854385339600464016264475398147241777467392644009018602816294404434181151700395629916708702990941025091770881451206407013029888838457217149025894854647316163431250686628269727004226702115188097532283528416229296373703320570722306425727607554586732466698929549076411338425988582608296065713116654587377184012169014162288228169236461125569998592495370289285169276624225898511827485142955286592619485277486820033355386539807002678636375442398849715575907739272065348696269792098840495935328604210659958124915178654184783268961623206064350580269532139699305526634144164856488978830756325972767425555406308724234455992006594637559125646356088483171921848680413852714535129245493566847014545785287673796475029430832774497838214835446373609606053716803826216256993211829968766299017780782498892612068268179883876715400979984859522935754163026446544441189866304203337475755782774662233228538521700044772643554433934489640228766046543675961436701343536356483411656853674550709915136132795731772218292640730279643778510225826522372082942100670398181395303997497925931421200938331206314229409201685276383590332962669866166389283099062367773579102475882326604416864461821700096131357570616642537606166463034219830629548664302555863695866804679592937800049410501141446817201812931562943005924446154309707665383768668375064469985688368988765818917299744930864717084033046148666646352683879885539643703283880445121750877828834382523702805058967085510468534959317138318864993351679668696789806729352919332403643977718456688435258646301848246537651001765074615110673230767049496753791146327758113977059693595098486084478976905958241106813574201745869055374843888940366331446585192368058000151604221272817100108716892417141387780866204557692804081501022632900793376841732331304280042417847993749294328150498687936718908817547494064478572319166369988047962980410760258696696015043421993324646801276781035706774924935132383337632810024186175243337274130753831989977595724961529740705223069629589610110584241017666848784402755823424750234149447097737416336261534589886676546647620602636831635715810084795019346293568360827793806819813713421332824281656295916255210272817543971037548026329633273512528002045218362291316988355483734955527922564899171591907482223735699778424084390296993002445589650779773977846842387231501992723255763669443854311134375570958635245811674882792087638032475735844206241973815343348876303972423537559564693937525232677922204723138387806827586879463636082070174985057286455657660655591215722389507270038786035080384927697043338548654178234032487580728367989065370219237194726360985479975107206140934032493680618091145141499896310838572451651397803237295568850201592156251814261708663230407477960120902731368771955663055646452216767436851404618845635636691159579735867438350449711029208905751938980473982333837857502330225757362758595795552763980770294749506851939164711175787272804478745039018575820040408270638225231757885749931381279231728910064220315099522975224615897723654293646669266085985996780928349846682737510850606944596468685725101779611788541834686498578823271657609944424935218537958546500650255209384960677812936440591961013261229393762887933968574526081774878299779019255180552758033786795856321775991150804801780217150019134200830259787953586970587560996456680314365389537253856663537165923628470122845941489692841175146669787046577088513266036417149766981455411204792158249005125431380456759192203797454332451354631444695379509732221991495362983453926989974930029558212338047128496309809555736246064754849712811209100527037157736122827383327436402138055519090999130689178578725923877026035704823055168990308928967562001659027061205002463062031160426327962830709281811484363431776586161556212082995107974888560750781606951623755630914918983942831998437576250155861563398487702102273709117132113617235105340627759978605680038287896606846706944561067626762048562553330329130111647058961657724437081066414849035633278755217039916739627657150904449696251101877148567078429349144547629613280173332113190256565327934869326341635313230884178731206761183220644695775880666598574698241831729498431485536569592370952824537468915280553521941259835892658273435070178837792337476197495725155135661715891148073726711937994849890996763946407174102021594422128942357069474327017646219942874166319093226135462111867826737597773403658184519482524096451006084374559214184434395743141950440535580435351568012651218134542955759703531584962300048518652886574099277302605205310750326592411451883650536889253307925101652367043823010152926752671816207901247149075824957164287759568956287839703695885296397855336480906217830711372635427343335078935890241461822090578096668316768562154254537981444600734211614994148128967095917783842784416562995263040335929739232256148070646155313956276565720026837270230410025841185983631205657815785521833306009013714796692184999018743551282780862670247728829598558693189701048962178535521264125627297504833298360285049725206218897339453923295750565592839079581793864761878599004758394599033243016546783494698434295957594519575537440515145614721217569854639912653166481528962992680630728201178488260289930077148155396551329487156554822796157960021591735129704137997876373782137617906571667249837807651103217414409690448125380831244465168454931195963208894385355605242611297900355855949981010652325896029082499850430166066937238446343100041091417580599128902217916220113778135349222749714023570154486974356644413691879056376750344679256903207474204017730119117662390066515920338249996019816263749200965354529245511513041426909752199662287219835318015139369374636727361955352603112577248853163127852022368638840916236414725746158767657899900687162360773069998955571276543563106481946335310693747301666242606542303204011322350671233718914957549497730191273744111642485367873662863119653038238489207622494999340688960820936822287962481219913495956596625086308473574710872521901051056098544954384822899233765524222981104744688695522583528435895914335334825339157683459656545000857263018481847295130147506731075303271142040572686971157081721006267378075558664879204672563477326625319666922703561792871914520034065190823697607537745281730860259175364641013764137095260196719622904895474265577063507478753010279578381249979847328489624857152918162396623976263637098912781728068263919612122039548238993840994828769704019544238491519799163742704853263185119602456404934561926251005706711063389561787741642758889671247759761925486200120074902440413217419415477913782192143784723743402595570884615249311431899019615738243687037795922317145505615786840335406322998988654077909131230962316065128323978971095868026054342368164700058076444530138274316827272213446169425710681537017870496911713705216450383535094132142537027058020531453612504346847862213930188620044492979171675074483174486743341418691399281635356101767378628668261604403627520493742000027901373781545720897475536409306425964423606051899748161918305110579998045407632948721975214015251412898745538167191372255927836002570877676624075921116431722545106353435768763589198422001589459841752292724395250681793916958314304124122961574847118524335461811029737174437983788293492305446833405780556982341814205256353562767182157015640714837936606175115001669047086266059540440684868321739723257861319682069672830019937791542757369471234740744155836760249586287710489311942670321374012693950020753412343521800273967699565147522853408719981762183759653074538521938202508640507410866128649070909332874313050945498449218979790963927315934003916488156359228048584022864079055838527840937836207243412551822888605031343763987365340697996599139532759567238498011553112761137603949184073388079689113339537506314852326923178673247793018719186262649933378111565447475592456512435426877326530883609477985438643700253148375965536476986390326588833399509725755843163235590989933783531560443662428547689689344434328756087799613221554371046955827786139023237095422197227623177126102890799808983304115556555570295910235481259566121819812597819838347646082125701809233388272347750038449946411739152437976893166256483520127231288502901804831806441700924380547275176580294752813373233566524571630985551135095512217687803640736770997128066784802320938176823173031312795462988479705744442525475203179278819734101039394991609227714321196993708558177434130690770543754938369910961935883066202711697655161430968990976512150220763850990362003302021373065215125858196835828649879093395280673912605735579821083829254380895373259102057544921746466121717533893257139205946644194593423089277785524628934719977490106284460564304752770199261462067366116001988472971296064012332909849217215711470051081256527888770284156986856379469450754517050427375906027602869869602362635462671999572856032113386769192638714127654958950940717514091848948870288125608903932540176680545421317955314350788797875530835369990213598947096419899883624224982688538760032212741692480465566729663745253135075597679594380151525474060334502438588084163403907846914251257142296150805592462883527557078822477821573096701447065257744634828224023292805611957285199812661498765588906183808620115273638294498439559171287905915822987745853889481019737827078801108089338580084529646760571578863662178917135725796742288815822204351332854584833450873875299639026296676871643786351977369923157348826671362679968379076681319670205704957781349299184585800640220289237400810142699361198760279641972025553862401876450848761225764690483417018298540663150818833511884469854783812054253512029369715987172703831079371419468781670718748104609151171616685607002433635209533250030985979324900607136009892306547269604259644732026329279465212180536442051587483014852699459580391238431355059628109906482140161566321192258742283266848367756537030720065147848250794245224003830451945238998666860577353980510440642377859325320033260398720691151558915311864316775059291109782755436429604686033128249756741657111029653924941651730109349915097450080579594827077072411497629552422999445050101747909301907399168811075987779166802305820590971425047782304473354747268997427276130810422261337792499552016446360218733942938551808446125743897169092720136336070039664469611536489860445476631949822176363081445310309246851469990288873023479137475043076860165965037364286538926977065477694881079711184434915708364055307904577746017494008653499984581002883660764878056564228431263425856928174149735249140905350962067854816110456161411936079144874909630699672484299616457771331774944343814760032276764535702618104517005821853378645926154597858244480993267999211503399821962501074546011988398035753634310208441018736670498773637006805294873677539026141091460284779884821076242191166166405659864964512748483190464779583454932729409999645990730439353378784217795041423505087075168089743284442436203217557455101741149310167817365847720913076214471762295634992657214608261242286313772705766880902453312929473831694769452745174546771172900609858618359901788489337883777865140282746147563239504949430043501991671876296197218363978689268864693763368998938530311107812928509823766536867275505482485734703785570108165864412986759640273066756134353278335241105175224210224045566221543226631185207687441614174761080927891087652626585353362405090929120159913737246245983507000195738044216964547095962938911025120318730437733485049882052223884966630013759415828800430558904904004467279289565956048156700228965890259199940119480346218483475877649561509051966674885317709116746730050165070240510737313922277454760637058206133709756148858197027356501382991787794242110054744553463602213606611912695531624836365228355217847574376948590982955028100958592346849795014640373763841363805827446333246203811493261545320321435179289497234447118191552140286619687970670208801900066436228005049938291965028474726089631124068564933769851395921526842456459767450904724646499174487724763748445053625705855406189065666147222508488169943309375678510665881841645160780089694067856634517112092428623384921883635257371793770063336962097924321643794239088939567191134413924653597477478402346127452217638674154971712938595995935753656840798389067995603732482777781321231283208362179560039550576741022400764001448746116146852845841317937377041575236638732749716050498792956177502081131735318096196257824413019741555114792097231930982895155902280108647746642625689063115509242989810447224689592010276874718082739161302844020986401412026144595951032935550002353924423192277167813458207260211545306118893584112945133562065061273166027628701784417126924568867170157667338296516304196333563889976398019259344677232468825973752502363779364564702760592584651939360036390035358696158957747149530150950556157051447099869666489831103507717031668981674734945222099857692709964002773573373687101751025892477240216301507396727964016072960400549048447351999413059817966143688895878505629962699277077556449659835246880408592147325688002809097927945589630441632104062624888375464520553043340071404414742651302172021746349739118880269112024286377023812853075353799933595824714217689714296270930412685550005354372473043130583935016604567837463171368352962826907944725977382636761978348540956697184239398504460590580347102817644071527329125214168337153272660623856828259425278557843621987089240681669355383117661112049370769160857204140513996192204809238913345746226503019178401851188998959142267463655122522988914407167319538200538929200483159226554404241655925569199026107067803886630075202536627413040238019634335326364571970374324246295836533557644609215782074175422797160068369431716330688358269286600557469965236495039523028519958628786124989999563583569224142324315619267647172364055169561874502601607741953505882126225486132839312489178128614465976995605640370245216612119935624641699494633639707946233221032790723738293894964415842870245840145517437731932762600455073130788952948223244750966350803086089453237272651570966559845324413327597239359479800373418958726644022646588192510234100957534644940857636328218230912354461440960186477253627069702540273080610636042593006961257294179266834012880623052447253867822347049445275216665687224979007277955081378118326415569896344361353685995140344474002818810687040600466639991569894675527412104561970999881968184891769830883251919957714675921211166846922175290870056599797819496806535019147563085093619422506621762427389830535443291139133130327843103142445629685676944543655529895953025053710606094837124075345200716588906886925068849842776354655990810671960981633922201901097947263137626972757549859806380663147204747847256962805578071927478597738662842981884486797824266572548665613075237562197125804652223613644552909688318831153543802370965722313020086332467093785989574095288131601544584332682234034196561804260935310656592825893153843007112949936693239554316110314838979498222553893846512388651607934476694323175725463717245217940375365496163986113765429600905973715414841327293767835086556952073206650367861805166498890007835114452083163168668136523930269148289625669544915714692940936229440820092095707274187244108259196331011794707475121165227774719265213574485325842558588144857222717314342584921838020279939081950085774860971943249524116785510266029278729657408951177707630608820631507606030552438558342483285110787408549154892791522952588067215658398879161878346363119865754830029709268701138335811044143152584324160417720546705565356523312176117711108073672548175590636998804150695740751439692912823731202084231865498100451035143625434160373250237592652101619476897589776952850092965207094480685527557398228522760293645556100549088771827055749533916334642944517035469517432515941392316504425723149843341610478559996614470214499800936626579443256753590538402857824576290592148027552442404092888730818224237757361535805247671410847420595712335833793972289803840783807171299816168687557138378181074866197937677833929938838803907896512866792585191823335218651596683144233488176228801646896918036178688476215238116516806106268402661643857115559607029109517957499263779779930620854378406893039021343887923682390000016982356635738429582274681957599607177934167844445723262135190568576619709987392499528279689660354066897930806408903744722429577185520709308671737451156223247281903252194948855849275707321189435668576886237160328470630290226853883518311990004770610475399622001712542951885864888291241134749330428454401368947941839807311188393553410770403588657086931430832030615059205435821278343107666563955414118548993792007199628261040645108064168265149179759220547423687381508808010713937907585862142135903958574693256876961100935314002488954673393291800459592397594874332771371408184727721003797616715058043954366515836664221771189615821916190533823465857990137767015528394820692566720634278961960114826823434039432531508410845414237061198295073051117192893871128728764218235531764718732091398706043530271799628792696255308762356822651685684754698701213730206473073548005841954672609136777233189081028184752929573880854537588448580101069540606918751278749568856463437342948503261254337158237224499871612069087138131428627065714214794179109021640166781489238534420216038622576110673941697670567915583274713078076622611095947017492805398908146701365146297775155579708747619224850421707229715787717317974689745046947496889296147299167318427091042931395353805424612883158638377938101621505948552999627537019415079264780541534474615469540502391600740818120402492407008626110679209166884558787772484109319204341810422502962001190619915985273257565964612166748120204389222296430928126481083718914517644300749515130559908066335121751040907924681703692622816679686686173078657190152582187124175355984743817586437544951587088065378942582785453104676716621942973714353354281532422519129452311830598723425394833721410761264934954658091612109394928869441775857613341263756903078221636138358043342403639928833018527795687405652100032902722318988231547391935668478915864538108096844507544806907612018844290298295123670856893320694662750517395178701348402666320875532376481396496603463346251795409128290160078710567737905809464015667529295187368471658530828559008554242690981206720676466067866088109931477785324187321191511262524013119583250695193376237006810816909798012327490698654616803870565422567966643313700714420330037844128675536758347281311473629873425297669082610719832708474155664348305856822768836715445209046642855603924497765603009474478377799091194022701922846485090465521187938031769174715456891419420774833034447544024101139663518699036343612141432060191990396215422220068003968364548996968782904461174685673435815363797944988029317697429863433096791353101120796510514959970140751008225302048286981928464717246222034184705509958316260703530077077917489947329582155957192347220155653067683181600533129586355629876054942625264736118557590375174998266446634142270466125407085867825990293426741393049002992168987397455206582937726917524988873160454668764243584231516254257710106225002473498046045212277806973750400052117045719305967254110426825939372914909268345406883838354599265215568335377404753284603232954719533378940957971110853295514235345452775244069750957385598345431546178526196535463118725040114934515188205557342418105152230297778589563952536737670994096025115171810915001957704750304226874507841767590420669037389559130592290562671581181044507767256652148196177094887856431917553122521970291608432707558229420942566462873821422509331340466069492761409504518218324966335956512206725248743640574172890521759086623414161170772589006133792302355177193885487388191018181707298114684479307861436981711983701319382460304564147532871349200767483511650101176458981303677315836022291641713568952656649200170594638803769142780919900760556638587371652096614064465724107429819560589329730008090027198901747224512052796746386736689025249507386111993525379758662619735022248629175540849811118057283711336317793589758443262564071114958804555865557049197300336439797029380825156574595885380122838557153747593720020821772480087740309272814457880951585202168107994092131265722211488363837849103989235293719259385759973566171711574094942116230258268663282152897885821413354063776858929580697687358984406692808988399615567621721816758552702449739406943216107503512975961319788586395681685902615896352129210875536149416566786059381388010806248593652783430064057678323628345193328259721397887143403477360628064292598365083643483230034599890896974274757180644448607542988522892281973825652314270612754970698549204122237586394690999387877587321866476380711397624423645485716643948977636449327572854708807465876856303886734034336000905311302377131629133627418470868493634458157063637297328926152937938378448582732448924144705244771743911582384974028614179595894459137219328870723422513954619529223849638999099659876150971639250484211564964804418027457957895371498761183397012940444368008083720546971850542133751991978932502773891047176963051202013016611742151224973306961921065479912509382868526915448380010633482124245702653445328389187401037508383851553774106663714175022178186570779843726790812051690463750775880655767069010723446853732305167176758573191781099584997506222537503021043868185250938517865243081701172880961418330389467008781675696681384085035504688607186875701721316859156618386896849794295456757973361166289077917763268209909184547467638297161074787807584458395670388039605686538340443374116314394399640627218728417235076605974160621410636952538729934246705389741321872827671193384857881810080899685759377322171399161896270366755878199975288567714620964734457519714705783761944783762125014619683870172505192860733246919374461302940881331658171245614037966024477981041162767226840094353545033303683929041302503053507517367566916959228712601301215950745574768383375797465537330487675048237203585208861124286471001863261127753745152412675400692044705142449370953063049234819661328853282680346228744103105140737376527378445962796121768734834235455934863884449910483802953584303587138854026545368215471235310264380305219642665836967178862842982829198250614289181914995757676835123695620338626894446915413510914464506540916171766197998867330271382988391565842361713320518152216690622781907413601144092010271345286689598434417413610016424105518598918264429263789829486942202398059618093789845077970496414096348364674135737471025104988735023136215289864973148630390737747094516073711625188756515875198100038391163715927823217719477692999059776995135825151794645532828554095341311697703595425752541137156586918031605886365933390704749469312088426872198499124949793469604864460212747399527839148501835398739658920036669296166916975132011925752249531067239462871783382310056281771707001816332838366564834013720271057302134869333919918145167818417998011226390386724437591654244200834404005728790803414785035007811418999168571425975167019234286124968339504843803893147949866759271577873964590050777248712648420544771102431743549313195817724984282618110225776578628117364387903504229935301084156518459295424846454927382530504968814865739555129333176361967321837493988511485054726086877252756270647219226133343188146350977969280024843190092193331321902562321205467821919499396337780842056799187142742930918996955009296718580763840695227928511142220965362838124809370442435719524240656943512351847994611520040241859766481784296620657304948363016164056091555846338264772855868378221963684953188869965888256238559596685887316833972238861740099116959594177975028375414253285069849444811640281099159496551388399234660128998576231770388971147274740073475574627811743621714440717076848211085911128700274641773397131483437584487503052611945233567744127911227682171436965530686602042289787654687687477626934882769076482042025930913761824673491815268722300796548648923214941876144899622263053036465410060760352202304154653920936054647068930750760354348836395280760155540589068126527533324708533511975969621715761757601877602236151820359132647770589219068343635929918652940118564202498249682695357137462691115840376552390722676418903408036294381692112629272164083563791346479899796588147772804591106536689545273312326713187089790070295499391856835516607818626742485315125612890066678088141377031380722832628466353312767056878813786718940080772314046236210242047638489572064218521640741095164208539695369644916439922316172404520409710724426588932985853660651928857359591536404857956251048834208138906660773401685786893664629645739767332333804182436263426178112235715229949047686842218587623494628428696684252285617366286953395352143015523276195677287848474245269824595542639254464840644901655719412123593017756470851270379961384347179040319872157430760099826044127840928005230679528640376338324084417823172809492436914507287004887615064701539755306146601986857731414736034544948440225486181822138912046757471789816146736153324456366734081087570100219732977956048489243793811146511957087353826574398821725381894284787539912474860837052529901643460015888705020588518075376453026271723849551798813693090715627204405088074914750194686546049847505732035686971459914241119075442690168748047679544807332484104936367554357220600905160264943431280366029410140721278903239163292133958768248607215879857453261202440311569942556232648331476853633736741725242190793059677468123660495386982664374977519371305666224941936501965446956737367802888640956658905343123386316401622753314509694136337305006659739537494021670856228923511551559197082561116402037331582696553487768174740825689435816147424258369296673686458088160877717582653829603522320256065293419000909298398380451568295867546656409960802077337882265502619792818663106389522713358849098810319689647338410317462001319975454900473781798493320737809976575922365413034314518238358687193765085914850135013816541917224632358760294319088637238614752874545030151115351935237301235421804340553175062203329445836968939938191325486421789972986339291685457223786315956264564406865912709792232350722446959696225056195322417479338364709710529042512379919961052597755300979242750701246693844823805658922493458093622845423824487405035148757740422450563667737745606155320845956809617257864120801829376578755844678372502751522794799278971694146090799624623867887169568855650094044769619618936126289899517042997470805227210732926971640346312458416962988360360316368977631555598968113781262339727234325688046117519806019883131564622169541774614693732955886722562291879543820403784844214619153995538421801316754541895291574195018167878986710124001357967923371966163313479063605892889715791598827925445249050669536074564961114491164544497695763492719437634533610424516519332484459219593829242095276786319596993986941136990054818260438825430553468401335352980007531291305016750679301172540119573719540643188510025466629055681439059606200966239758098936788680363681550082882036762811990956122051204153975782779769891087394888144898123102560422320835609740008585101492214385306546327847070021269867485202612492003184728905433019455618095813873549718109993479369815293403595636450537647574206934135149225942972646723333370416894259681537740082473768687413494959491572640856332267739296634025016160847748637653661259168507968671371934609832687375823134851147447114442537301949713731506863892586590559363983071072961933680265849091117883297576822288775796365859353971106739298395666639251778959278538932001166484488197819373878066274355737662690486077978087283981661719867510935735908100247128085375383896723128542465319768124320130512494101508794226538606483763178214895303840875929719522786976362380669986573541938566598300895504587769057536949086162583686562347019577498629051176379627790416137510081770557769784462600082010572558483941574526658277464746947672860167640544217200796777935586359208691560889030151811866747225739614236477852777702406098763397530820113785248940682584558048234916056260258787163218543428335770149182823092882913401947659981674451155130607126570459770740473717831534617686844943291641209563110372929740725626922455439444207476846840100801096318271161629779663290803095533042733613595152414916777193524448706342067206582182832279076246599277870537037657836795196428456250067625372638787028053824026227098240706364675785375464559394714440767714887410346554815674828732370392791717080642695735952929544922204049253158180481699140564112354763619091793031864183573540719829088296197497011676062666800759645394273202005760690232352474632125078949649051720622313264826897762072687862335714463974044429185462933350644709115473421791836130153952255021831202778338861194106741303138809184292908934370202702567937836286082862623986257226902190764124370115359612624288391316754041698741338491241996272108023874793397130923858261376170672642691561053964512552473675581862419690237278185304272189504181665989683886421800036142636250408832552717781456897210670128428365287872037602257982806063321191608405294715817089072099055364391658345983787074494359155262217906138663431763149105195452680598143726542017395043917354251296585609913096613695514383160075729095448847620903563806296087984470947243158373973537888964404232787796602687702790680878117526065078704552018314468242062453392202619019007593098911275058620434981268092629487901048214692908338722190556912289352887124638432538256548306465719018925251407059767288283210601644866222356836200024279882237697181483433674209387589712971146808994610226286026340515135991938433366307806113649909242643385096339142809935868164573127138949712665069710156259025044073026067114702792358716059746301033857548387256511705544270373613207197892745171796128078611396261350830776755462559382616708607936056368277507813234577340274594871980267810534044119755828763116977804948133590897367280217137215136629956733164985751573425495658840994005185977203377251409444655631962056070754900893089347676114987096249082971532965626916305966290267952157728764078611231822227437512143277894065162177709852246759953367174600722819785937875221807790885126144552433183032488141572463457033258775594015782093328335748211004572824552354960328382186976376160912386131377368703106725329940628756355878608970152641700559768485415794465204086685879400029363532572093166155535293260707574992459220473544033628371601984037253563088562240361823286511555331624319580496094114184612792631830612461995662591140839855394105915258796954066036475838504541975192076419782466919065718451737803708945044424507321545572041976692048653881627724465104180087525565972583833725578211329236935081563290844746350667270861993127826365820942133077367847457659222484931438100621675785724106481546168540371901283927857169160435558957026116732269161490567122252647207342332674251321083215008895049581342589651518555613552453629596446373742369009551498320954300852901280450766712164177649102779308299035865858418562617303226847444532731194791260082774122306092468986560928820249989746175971888117559198667763287976894416639021418753225586364935699281463699170514665433232144868782215699826311702538348162206760282804529850834581348905349942239226020380958442155076166032257867853326067151690104254045374569552194783551873987019543522784720438124702004517535967755920738382343962977575529709873462708336812163530109576466211770710815179275965723243249523456469883976545403297921047256987921393547609393659323133646222574817177545008515224797432836826134715552806166553821339441773320586802405761168164521712798299356072877943868118281319277770555856441394825738928726566284493444693654685543719820410518184174479480250710274023706485301262963073801927582527452925828312070906250767103707056078698313191723569942699086952541525455057773963908186381026704342829617244704479138216360166911504393910849959607305045814637268781150785412841643834799729779799985689602984767278581264945598473505135219393752101487186520354234997699509772795135158453504732628209331603314204877988768249372373579521934302422725409256640449376832868903315200998254565734164565095171813416299079388209135118933582232476920497757153191211726935585965662956849490178035963648189103851969955867067733320730984421023987541389237235429743839772724565890531632478080881910953659889727435510397538380621527345622965182444381520385169293542946148758753889230473955213374688184604797778179429821223766967570171070343485184201513158451312593742117940287063850303220687436463727546477648543252956022260491896816107477754113618944443459432817859157308773461385319903351959962127312511204271824455534585875575868267099483246573106444177729514101342096865404044815280407824700963367797028620605262901264909073773462139043085796416688462337084758982407531349880932111520067146954322638653735275508843399602341009851311398777447130622204481942811260512890007987917139712846860121000723496377689742774463376123649319987750056672212028582578193331201696667984018071975765383603784884752809483601146119299945397279889492248281105591709660717215469776028576644547534529594665783692949465998594978740008642398257642238551253413726819679910216507118792177397855110709371603677764761637901736492259815538734429421098129105041740750664122224897962329883286736590045564160733323650175883714716140681034465093975219433759114042383749890508714110895894874177486902042414055408919740194651559785251545520737067027221495725939537322766780017636291603425007813609621073135799313463577192265732270628686872951286542294333857245917149017632872689874994617899399819829622642991957386479588161010978450434299571802382968485915698266214800323372595652168616649300747481955637630123573426275361962813924902734996108061790169994872239688684471010154923569135465194402261450729412035093665796231602782058753863355045219614664851791933376818312951713708437146150923298511089083443248200251196920250304687707857825980533239068111562189839631616774216261896267702351313701202919655085936401248634478695045192306457476097763249145502506414133400083492316432280596508921495565755363888373950444835324824175076350002952840848569752394174801423350280960789293677394331460567646007584210471895043096846046563239232239739866993760639083534265558470662713987578859488405471522105651986527975155785624259033455277555086327544154960480819705870209459634678395952880972032812240403873071132856584005080698731013887765337015755085442950096158204039382395854101403485682117312493857924277296366007633424052411291771383580284023073058566642366732970334380399246956343220846837234322783104984319460157488623231158642744751584505014698045307684569848909949998856668601525333860185380790235899893370993675460856299630598161557822292258116566965683154015880622537542809570981546630122891334067834264791654710178649671470795698491831458424298420595690172483543453901460814924434994135597519048510941273816096316749275057880133063351938474770592329977695040870735231522546042384995051793569416322580119906958136929778775757492984403712364988976290258153440384064928923530991902035723612417895188751775681775116443874602808624003528233839933265462389211877912887250961708726545080244497938318651330466561219244164010039642751601119980530871773753315836226858701759606452323211845309525071125856410513424024664804527252083495322607117981107196192869277043894094016967056605725626798767374494820784128431590230127426626262362141883083370425055123394533491081296917360330215662841308796580370110351042502958052859887344970573968853991109393146150364141039308044168010329900018391514765042408545045643772230005904630747102541691736200413294002289099520325065598968923049399725581619295975975922377720403718027896529595088708037462190899972503276021487934536572422088356648629980480964600485880542820479855007741776690685356558489472797662477034057903315728464968187113933735901147235398088440182652111162166396900456798864396091802954453676488350491381580622618112434913347841049869913893784268323551004368978955861791386327203588549636081185150902298730955286367183012966099569476677319456436538767320764589414219431648532849764855110251032219530023227168631685037917918866863449080830847238787221432220728460182671584386206271485657948387960719419266824909566424317110910699294668707910036847874237564495204053480595729158422920235172539257737262055587548944221338034714491130438168069429636549403700377095658938304541588013997685445066310698584126930343343246281399996118930428530176805862466444649745116079578733273265801393803507362011884524513620323966146991224479708582812958941816249322381988782584884278959977134801427800503702309396079013561905391791011354026608418391985053420637214600308126876561300946427036950585859857572187553427288053855696746314329270199108684250376246001773586483539805781733917438717290971835089557715255327443383495293269530869756503534571479114403230922403799564115928190247085405660363123873494040693367990616637471665208618846315266281561456511651428102148865061056024028142985652658605843586862689045555240573237727255783732694780564575525002241609028411050896798582368712220692287733454401940408509732483029179066579357871689933332966046889103247862314376613298599275768518953071252461816491316481421910212898236378590856439146151905146012873394921536205427369850443661487387035928823421475925239229176714588922435083257740969239446032547555470538372416605206470896544364195506651324918992393381051847289539951127247878863372661821958768942908942289003261717247694000260486739596096957555190259413311210335539617072584738508255463007886585873039937459819207990413557909237030042381514792197448365742126378264485317101217499567853918490239647955587404115057498233920816731656295637507989176809400391101421220999308359128954524760296454197541809468798283534261058289887019204345445473588381693635957047848195620883340439248398266765970726334598414395596241517264311162656801705316983796618294596994117861502400372938812813047434633791051459872795157703467694699268559684622022659175711211662354655962735007518282493057647332384295177660300482008339014962439850044129698359705781272529907214372413650097105707273566177862386294486274846756227579727058303564593481696637024148783285553204046658736573280458358622760439414642893464983026180336870745533429095709954680102021553706489453047471427668483589398593426264707186054701636269190220675853412240571214926158611444287942092281371217527624318872641675844973830217806458270026670733370461176455238573375312052552251582499643655453721960184488529068619756228679420665423432141390516368544506484683516607441738923853943681734571566184571772932444845161844933872320344282388076365119330738526573748832609572206465316340449232173676967538276491937758661664294317788195795990414712517375670506941492717545571132980641316175339243375100264835838146347096998685830879942137436744739186486969420370528340203235221286139281789343490891529904766226162814198132187288201913061595519078513494035312204323090847710635774753383903939339317513452767604848222457022957668953486832862961713971006063974091062822309651083067189267805599276477407858471753919398534344288230963281265171704444487359314950567527475806923525479659983801597771933022734413178059059177251635286765470165092892513611096716108707814750854073378636957678831453370944892506423007993121278647932745022097304355587759282406918687912471242311551682446771259374585158513171885461476567601974825295004188013646956743397637231599280772136648690029680891624573571097572971374263680883288631173350321611715161076456792453541388575091852843128320074170600353929447210273677833741757002883250297757964152339568278496835562091261254951552864626813111538757284075687553233584226031316846377334845102463023372694264734911398821443373973456479348310805847387582396354872138390559356675130752684180015040082118116081923780106246165017665407683017017990675251427615811609515311827395414954444568498210501205241631659488672978310051712255490750457712905224493476443806690529389179430893226578897514901413165836619588105851655935044283347726787910886355086861085859309424612290472042350474584274209801309493531627823015853377840203563603467761575679638341390495933735054538041371203669459599850453740775621656771360850363518065733435590151870678508647742207764442440428687990323945351296767951932033700315182092216818695303507365199266117982287046535326395475621526790721610118916643301488775854987824739658868406238625929751589911143500806574586617356352898922460590537560001450556799465499003002797429199748610077809855048070893841919940425853682776412204914024048173333587914605940430590366627323518040136302872495782011251780922480759648547793301844285219972544632223499255255205004346882418506489599727348310530071382114194603815233677169557031406313558926327256540686693247005573177997418181125937749586823282436570704405568038416175023524824184015163759082284016493716218504494908551162644282897900996834969626745992316096243355378166956604031899594845240094696783475210199924142480656094988370006849427947438620862417447069541266807259541248802326986699134456912086831592225747462748965273597096991961351218140770904203317138377554650064916592940498861562962033603173762603012957070170568983403461091887563102086401039894125990197423592813864911640973380628741502681781023693962662765274193686852136931550681155921121698178573100184409776475691015506520726666597382030318691592572491588021773817861762020560100780974716945449478155871724467930861958560166624375963330999901895744043138704491502095464830916115839765472912514175689043383977588783273909270089644700673332802833441634322034893217285025001375540662013870703224121033621764316733846410704542228505084061972516896055624950756627163947413492667890844621943202954958589152366034447399260066513123709661297636861204985722920167387149709709225619205743216112222542611233065384850404227922498737610721901513763244015697744303065253986083171442061722861595257360118953062458247408776690171663972133158167272476186743760809602248694352297054596317377049195487817786470513699138927744030410758867703325727405854278151002042697045525059955583146111488087695984927487428205299872220791443788982767008567498947906765788423673593177576041283175153275217788505136752010842216239924667245595173978114500842805536161309138776707375893758815478475268946677446781220790659732772653813257794089407294851993719222772615471379135768021348294132572919632610808895299985214915458203941062215317964788451017488879986984851312225685086968270673167226179502045158369265485253519389882427898440028772423551240234791552396446352772774638768590896777044991197749635969339977143841991528894479490796232464173480134608174006228511879337348370516118515070672932694835379931091514497091335163312009946853983731581465120338330203089002176482274870447989857495758854827768818882397602287074147599840909731239475474359917021657577773856403077211051477063026529128132355028156360369308269564710611146275502126986399968002091766735390336002912688091954733444632183473372416234448248066549762670064925963550332799000359632227844004585323709623666930368201912014051225968436048025782070701940420967811234561254706052365587342718763159233589582522976265390338775737455811740150207986591483194568258710961521337627014077966140717553649287066715500151655521961713538653101453367369125414096231094140891838658889719982837501133189630959884035858811628009179240447085074759913278969350353579930306281261275763291379598377935416547338067946608510553453758976446914969097859429705159885712534547768644577945575687120513703757199916284273826792879073845060205220453017294247440529196485149100977796380881859946027859549791548916267297819731911480051591833983559881637337298233962955145828722292376274206077736744706585610826909117807605381892056936284661067648694036549388810143910407530783320148467332378514457186535075435041999100077492439571145089382164014094384218883408945233435635108035989742108988935344310563610318847065457838636951729971770833402056108593213253659237915632019386973975350675053795050436559281145819244805358894179866605380546518110449170762759331282415903081670221878352673378338843797801889285957867695607401434856202615493500409991581625673607061451993967709855467595400363709248711204784072451619115818220013206178202478622358928391011253241637083072720043139763012513221118090730991325348881901864990510825855134413218764427724832163385992878602527081590648728987956558654646549542578687108547569408676147243582870023207909298343213636480631506329862063547499981222081624909905088883939124495679593793442721080499213984443822163720182401974060034826397958543549370939156920672874862155505290001900360538440208668866112356773024607800185862408435067546819523624775571510957489302423570330451969957342304159253179769863673071011939325311828222300967841714582636246295319844033040912446109735055967734758041119270432515392400864174463433247966046052403988936411776599071170559254857066276031312411266961191527071869794438228532817961101651853674436048027203381559470986393786119772787246637369903244952185791643961847438198070030201544310032972383462442602455649211881059005205070544676722323042078486647929635421873466276359616142285677225064589940999529932415784496062339037241750522969769827421715495985266669860723192759444203897834656172624696072808712929274479102709915852412668809110708320220848608234117121575987313281934480958670987397312649961651900163538637299608633965679561783903729549153054063548386645292534429690705324969664784664504421408740913610520375084454479845864004807352616314343169627364557766601258228310723002733401615914249106970994079073597033616387383004214795432322587534064435264666862312721207444852288903436126372132903018351764845574349011757970456539890722665556913717671346318583316574447323345993922672284584279306609232467979318663439116149572038673282758136659030714287213064800940067689550404399459658350704722896621611273202949280276885137390373427782328492158744588006311671393428939308055358994455025246077077973181488409519496521584660368745337679925038181338380381201979260216417747690850474989661862232252629406245922318214793451407022254155736816350226610339040196139549765614100000897922168162534877365121451065949889825598999701189040345750506141435345125365598741604033568828523694187455683376330253533259353708163183562111367064769272957282466161901562827425337725514138570742196694793908856305744809117640177162192852507843482179334947403182326187730662765967322678070905603736771189392057556461843383025228121432208791961101859982678305906908122236511439676563117128698830322910424426116397461519604120932422827626481389421364983517058754687802913197724415209357621115934267922644537422903540666322481082284501597807145886793793754585947235571922651925651276511940526588791542997119432775283786591232651281272606258578512237223388870720361311793115877671356242285504310953955336276862723537213943228702490798376808889066424319905279543643754964141442629876464784217208510839824885029551574960031898204495647623554370137764202916909512262816224330185033048168981045566995023175868575461810191138178997689872244426008273615613822665895924264651597765446409088621272984343959169670631184396783143533030472006520387556657295589044351546240779158236050252005682112867384695638667764940316136681668780684335875246968669781611455640979324515192169562710841041455925955605520909731551570196332884728576026393658855969633694884955723144797901930977670973803536415614055253086479828519685341101521241954906012826322710183168914587855482598322763996226759005422805659621430852816515332159358716047068460775725260362076281268280592202918804313897669311407813807511436779129390138823811053895527284507827046106350859309614575782105877798346457838191090508869525780182181507301036767733500318040702172486726355923363593260480985996178945993942086744968886443988752007345181305311665957996051046359835959704685917514448923347921820350189276812369660904658027066275441547842034981221044646133214299461811461717481882875579324991138914005909373932604746084178421515688524966666962305443941626157861855920103583473152685120754855500355654698826291173791931915174107898720376867250190313592624490476585254161952551055579646738076693814939908904226672222823036425139656138014397182950913898822756618140468598653769057045614512101459606361332616137706113897646654974251768978161705319387413402409743953538347400371466384287483664213660391255976303005288987589227735914918479972218942286919123396883176513194954592516143668161602615069989702348791965011307981060955395154916724604470700459604328950539039267899412470605650884333668407620816158414731930301980611711261292021735551050811650937367194883710987407897082853806095626672760072402442542804167970325435573331066496970875837440745942806803656694035981680380956713893945672514942712162265039379515890569095142606452942695132705367408756888011943719726508704497067173514163627265667778640014314567730699083651535933390346848684824226898752995054135162693167112264183818995256829273208594363855912288541619870020287139634785629897717001334442575910660457623678566405701542578528625872469047080691194044211297852094571908385953801903690913673686439723442539997005806759155206793752910260113919012084687312491947100561378962231048627521599460874205281216544855059039312217690237744227918131757321033084507549612423461222983820602205688576130254056433936983691848352042344050133532301956001204301618300265215174790301012759795444022495816700346362434932872575055058058083069871442477440980441589156334060871864574334767044297575957059925662872935027067303995525031419139281562307724558200749397975896239663013302530772885466888483060904098800393541210025254490045689932139571538101288044003453966094974724939148668950690832260884212039430037915479623310509631381663632295659976660010189694548225404604763269269067307466094696074635672100754289913171010763986818019108929838033023263453348842365198611072638066504030442547472062317596065934165939022934221769290779904452915009890548649846042378162012222560538685995166721792774775235770091519467769657543527193391293705773685187459155927167871835518854734187409753958182171810568296882141989529140774617448220909607070471374512533666574668070866140990271081840621392213374306293202402749009250896630807263153046179330800537251785676829067742749188232031204656684668057875741586988677052593256971734755418364359237165611868659995393726306497278405059449833321218409515075004670395216058284746308160234334927580983585690047328065204160468311325337236466600487030755493092042072086107572463850298585620965655392286366442657910982420782945638907990679713353259171249523788781405139624352584992552226487303302827343771566324112510488088935821251524531075516893455106205379116287831070486657335381190496600329549160683877617449187046087832927280464799267712485186461820365428083960544949542347292101783664301814013973657436307080299605426903633295519231047739599994128949478265455472279166012036107828993322912865782653499222062425175446519710214631279733579055030839418641725760127926704710341252702357583166078676301847657964478942437046821104979828221776247114775630995095280826716801299097269243859348636007697397245332111289986846385803142818703186356184428912974145376336151785218091352647897894498054396467254652357469343086544568683180620612067491217510762088874216080390003777298997682668263306277629652379925678953380281648298404007888708185080514430164313186154716470369165470776411760045323895471676850265858379088821929537326509001920380397026183522006119240402926008154683543788228420117861371604549042312196543684963572949283028527304808688082243955127699933718065418943216663912346744413859744184291735733634219672665274176815338943011724556968905424608140569309221686233494173952313566217180907759636883236781318351263329671459898354381134040210855415303293486675901821243021078280576121788462799914103379379833559737733152384202688254194049974231098856050644848508200341440280103685199356585716162350603459411527273001988430777442237753066320604972012823101219617339147982911517138875751801248611819534916037984356905581070627266761588044524441169618861935037266271975125408791115332638439390554574706229862235328770734403564960060885452512722040249539441854341892219467495280842977934384035133589690074582074173919132570789730378138565017286242757624456774323921093007054379619490192394012327925328658712571506786146332078443503328933160469795804971295167755085520432835127144054582991262542999634567934743194246078744329304127559246566310792189111824248114719424716100866931110785250354959273773434321028663637654944218543260609665759789667782722324474620854242960368864712551701869576162701680790471508023815553446992470872395703828234813242654713250635424909350022090658765576474689188190235474129727120200510912331208914647311672133721596275010988763326567616958877415432244548396967391723883618752071684367483141948618817001284977210970284827920087857813752745585026958883619647129766794019238741053271952913137054346690355536780560239071475103385377973368981257739311474439741113108753719661185395690390787204861035669577944778792472086173239104335160370382476987219641362243539262704791128065933510235397620144687601711161800682439769324492201912821235707512726641797498313349481158714519508698375383411306979601432082448029077426224652692809067976612697972162432907629169950795211378349503887539987043497309173825187306922257389554068121967272175636696407408663088471283269808872159074966289125366897607868123890181653714158877044076291426748820675763014161541335597276662937943725605611562867703506450411826271620517509401648944194172234069647028512509069769701746158716940835933939705296777884163543052867148320659932611216987218685096852243603762262505737422192684529874109337555092598317692234376739410468499474994995581881138891530788255343673333223030937321333068930875863652202866783780211445393827749723615523619177083966024171067262738104894294154890879310677396621561212978896218594156097008505970731815271366048676330574517446229004310864549218484872855990840860595254537164595211199347161865721595857905553664696678377353182614629602176173695450431657429103262269010047171897149233228706496043084173607931453950733660370491308178036817291671775108666189351317765987783679487142572554349377060958567564580516924114711237231208833305612444489300164239429363231573931088427100814801303280531675119472700334832376461868359844681722107571913975491919396776739308899057493045168587612084459393868743099660896416946841597887508404061873700173810290312351511007963526437243716438489469093760339624363789941352376153000317426617812249234529094224542613626147013194059546830981112612794422153052077070612773356563478950196961051582066592038897894338968973405870564583451753588886059460113831696170629169011884862425718822225480170338231268967488452451412665585878129012158923422475498345301744750921731206307786203078259015439909896868836295040879541050867624601141969052675599613036280688851084954907447050012201754469095189231106464943565089488260063563973419432383426288094589794752967656367843702803898601350722586324740524585252484263474050468815785052454780953666405725751188028712194392449665697077947885791719310990793633255520089038984439634856596217322333889134468860509597468653631818913718755354401333128087564266113542698671985607946393508382926396443651595523323239818705950646086769074498199839235538118511471414871140100142324147116178219418340797095696712578784603846562495221881766583663266573531786644775223822440093874683352953480579596675690019386562364049706915639320121470023193709928119931314001762153027416680403796693940913889385687572852077651312780659164718583366946429527825936603717730319668070151688191266995386352306614643430056974289471429652434439965668832092028110343990044304024002603713105385913303203349540443255806243790140187634887904020900776830010540857931398115607201443700848357237553836417082587571634711057248142741484408841458740047390304239883532622807273971040079528719883739067002791455142982747715296867840302658584735437116726693742663397269268479015657661904426311450947542172387600381420820522032574044324264372955478038605796384914880759340914516337912178133073866606470528187108390036296458466223478483272466399949224182985859958758722269174797469334098898264686827866958611066697246551195867327497643474121067181595346700591949509127566862810702524997783083500974561644277573128696382730397585084125810127429670075625468583781784037772592814930702074921377149685222586762388764504627756900413872363840267106665219355816510823845701252102681996621273187232140697283956979734906550203072627644567308557160199608630739477468819479047603163750008562276905634916498429557024553330969427773630997341844075096965189210941989002285882695522721353344664061565715971728317613077731982895027717453266786278520320949177697694359320738560913756634749097388231447136316250356588327213980936937951920999750641684521240170739603631727336112718299326610284627366717688897790026646336052886329473094004520117329300551087500297003530285623202562971747196513923473723988790416809773772696282170998583427225367309238469441102207411654434014393782175208244571265470581421998869417696360271502402085183511840312407962698731595218483693815089981807084419591671962873748967990282737847962306407490021411859215883520540432542684994434809824116824524043587717720460507048502769492878623818787308847220287930347956811575210656392126118380261931860549821244432607768696632679281965347790727832151064164178504082737033894085387455913899117693765585907201327485317389664009667049973244887667294420980668003498343649606041290851019314502996728233210205139575444967942208282103280425721846608304201938274024635182668465534224685956486458777034488711899543418057894219241887766807716105209935681890459956298457286673519583483640463569949417893008995829537315842175921702291116184143662647916207308118126882567409909567091951571200416904194916450822915894867094166672369344586360510879649408532309017996221293548745106453506633730638989377770346639323736456886177308336706961934896634266867697001554171910437575064714125707183503923849962576311985210915490366691037557546581487179771184808386445179599207484888663993184715165026697935696196361718584990161892819906261046059013451920029278000395158460035302333558786168099591783944017399526857713043438485871521541452054786920321596011946505613783313444616616079968694455616079863551177211699818112539699200035361294031949563548972161427292377335258274061939833397120500187164166739872336424450652511836747489367783254312439732811190169628649073827603697678383012515810244848545204884230337613702355825100533914225815872222171695673388811906311121073379510832781339790100876247991899995203414024996199311227531561658829342373595642285205305924499027126614893718799709793827566628588207732542046976834354800143894819152156686672097339361221642186059448280792558859230925478691425624476969058804391661838124449532153261834296008189726237291965126185414184774537542094474914787768840257924514274143021342965500470122377798102889549983333818040888521869238778978265166604890334654451159216969674868748199178774036790740423340918894143120901360718219125429716857507808422812772876443969463584683923867956698901824921940230590655943734818196178127331438150535463928161735497894278930704688226901728080649850153171089730443904097191010673114180290603206667260863699655248713688745969623879791697865872178188284898174222373015871120056096211885751078601642881898809943849792380000764725258585174365912034355382247202226826895274483108114611806779974964509906802580703191265984286508449002105884023572174176610347684784769218984379525747794351223379016365508959334751395677127508138180092762251317701369354106442688746612634921314158209134358038993393740314619524441233747753016547729282149007419870316303695775123862957132752229059007135261660535523868911737805356244124874792926169596854699411718600220335335828977424993331599671697748239373117166842343317889993097312320417234971479196417835409530776210876573600199421608451095771816752637732190398308159947955599072762774526079951709829256185616134527957696385922729173760873077890756354208958080646815593706021124588745465774559735413548540988655960322135121303207444151175863167351514996722402291640042908768399159444856122727168124532523595875695643267410186062415690169336554805735046102569094520415365234490067531045206574028958249104873941903657073974360848495344792690711526138599998837524446060049832895468929681660350693615012332430685822694203483880336303817552900267068890115926557592806151978758392338820692902559914177808225106634394447191113473543526205861849063854869332573450396773518164704864133457878388262021570401051092016240014665144935714358228381587309229025063738865183469230908351241072422290942260051842198453030480587993987822893764407089800751193925619425086258551953168692549841216411625170305240192110718038473341760074176837314066989043113205815191407914503429701813665402630709972612741496662977148286534025612897571696365913932556974646611819525898278933928474432081526916663970055629051052026914069233184136733836095031738662931786803814332988095089206293133794577802499048865389484822481507575975047564945492279265960250605570379336907180007222435973037160971819060200221740215749408483657845553221837884481631437645579629682810377268919766260569861266922197908305441017900656626514594256756029739649540063577385108862705415423258994768344631110763379808647249234628381762489267721252298592826431711570381952972030573752198593015163313798290022434210359388869098131384218563014914692187537512013390068403589854931141178979307812836008499546411772004246026764273718365668905033226338455801486740606855893128646415612291288330943864185134304373976440428808978827771514341080165785264442372932895633409485597935716678087018571612323346297549588450875330019391713925754018756621309467727696289958386065363713575883149316932010595149919765096324421985290981026956399858499391999073545954712673727022153422669181172150141670859674297124331302694321037282709220262587924723587948534372378770986460943266117658311492256260924812323326966878553140714573773027288828511892542038081410932491740532079362362222183292709214564470486642957831811357043000506802345982405980532972399757953203098200647407460020215262217344724315421306366832879265034574559413976389674850459941700302198400584384344313307068069694597211155134380371097433731777309352874667508424344303957043223664934881529996275539840912259014817538843366428716999504445410837010786508253235600512504130931791058183444722239461085391782728553983662606647633474891288317429043613454425559811317496133423703129067923682573168074150429132153735864281598644265594956308319687761193095198609451473463507521815506177030980111956343516764876134803246839840270600890193594564314303633008340982577752657005807925474524815769227654495260926744709950406310851900845371015343896147685784703246920413913500965321235190144989051176149832495161934517164412219030340218969293528983499470952438130596043465497734497362956241268629515329978937133432415484771529464533966308887141277240169338819156280881078657456688943067892852589151431883808015667561477585122360612885422474993718339828122902427355745951559391857396888051068899869570920695876002049895864226116102237568631641372260779349427277476254227034323124115587913654575519559054866565192275242248466470586557817965347815689985238596838427112030725613758525696317615296548801862410742268703689834328579412674646180024106022877097597306928432930340153159907950761292201380791031115760179812360259603666962217217338761028480617831032352473059942231795152132497351068339587766331497927817582072718718235942201608293650321641237477610560846111334046834127832182434311319660519578117700162785483940034110430576666357242354476770751917474129420694286685090652650062918412533706188598699241846749934461048052902174903494230542989389868609738207837743889750680714074202908421227122927524328057444989341302499949821836087897307778531574791652025898017256270823416734222973045427469305713616076605020910493061338392363104028542931591022768677953794489265164101993287600177762219803348467498152020714271605771617440222676686176696131082494931556590428518643462095124652106598093548170959779061637035385906045895569365624064344584012185701350387966079112289806563705189287991043279453392595471207860766232250921728672953887581371779409723133688707889968341519108084592920882236301135403771732397013727771486460274144081621172997149292861909547746313673088139274147087296017628735131544274094370098082368972951758004955730146135585927804469936857801604546380798826185041526624305876584311700970659133164534559300021628864328692388463449662274896494635001742526392803816176900450437814358749009266891852068488600144334225604597452807780595945708245588191856523673365659045646506741578667243958424501238957896318154192938868986598782887329332961729739143612320626548686036454170118940939702124928106681408469302089987019533962315547287541535741835970000624042734318634942360077431470455847504519691708548399731510395890302594329793327779685268500522311122857343932950906038553668382057399686262152427802983369360477090255058939367987043590325400741639715435993981865902419161856969565092094318273690286004736356232485745098729482545063839831412838951338010169645558128199131880090330885457839492928490523981818917649239363996720747699092882377745854289449969517609280986316487921762750145733952716160806071571678606762686521586002903786776831019163621683642821031569500341566266667208802599546847845688695379712751549832122434071497891573322337445814026850969259087795331275538547946717107965854095232974542656176693010848951775207275278763084611237277629734384667974109395151690622369632729338637704011672017698795451525389964259678639991591236239635407334789972850344318152648017529983557501936285859365929091033592738884709182538934682251562597391984482571326334952334164589520120075379806769698862292196212058061440577621367631834773524228449663030622299580747131140359308686680363077155766688376130713351167942334845084569788999245639316050702584469103637672383086948185592023382601188962996243485777521164684921949363038953653124076735801931450101170520910075372623112773505053782843409629472807594580666806656579735955631129915995556632067889366529848527684023860407577159248366092852641392998166626979803352377280275352388533270701470270586423436322736798073792595928200841046140267159388904913896687900747299345351635909546482833626363254692333009933338687892641920356944138736900002422113817470417694454240431947935661738747215577382540309872113314048291263435880702061099491075806033523445528221237967583839240109376825801214305449259699475864087046683645911603173823252200117574799804163308727753306142181487319131201651986178682831569102534161627289786081417622734065590579922306067583503851090214844089222709809345669492212663383155161593202434793341227034724800100320975276904802283249842675479230128814718790765643944961070034826874892927313173699561000610645213393239312136135406473388167475592628380335348788595653460488342568444340921408369662911317731088170445619287607053265607365960489819414344548878387706477251082559584208591555951327342259786337204335535193422573902376554239306892554582421063558520876907964453161200351889475452881757266411246224454283613743907141917842708376378022402892396759709341502478286214320849063980497831560156965811551960465561734856188518769405058705696858811416075608734895268882175591792937470663932027738487863186704548497245168405997661682024940734574025610689810888706802174623378710394832624232862806137670395287416220823136403822692349126142429113868323888634479917217042670881633621743469420638048386293355320071199503819410609080285901064260384568209924119759938128749578366949509049597518574510761922482507345366043177905336246617497922321995555302004254829731930678844516389606472353671516583440410719678242829899615704896241788666262293799835860795175031425985342663020508530818277849797741539861915503083536266960497906904981064976663665859567342017036469557830344120924504187724103734333627473764052194169366203075148642209826997941674655490110537001008745326421107754840100494760791802876059627496113596521202653653847143433963086165058537336615888967552667088773356309448043148805243901538478197271439065973768087405856830252126132287624151124999899327634032954010347842609679081085566092238926283017642054973446175463019615078650658492066208581562905993767810245627287116027726710181981309496497226660928393032984109537223175920947508593995221215809609460534190445275243989552359885223691161277353444917880311717124873075761341193850617495517611809371555996370652254611926257247407781700991423027895453292849795224940829237028127863353699351536982115908214472814313085689936219320430313127713536399347593059146019639008197950345495797948113083425531637388049501410186152509256606060871196021012670728606307189631300563565420166060658638451068377436003960048623006693539514855955138651139158139928005326856563948425450856561456142118996255167547592633121289573331661051036451557239990735739059636512855570646692007553252725279366264040066963442361095483696400128026526423093416493133600847667337730516035056644175414266095860153712938144873073266674683190765146852185533458558719710992786157848585669861723819002327348364677654346583993441274855319404436397402723849487165653929388021110766162719832725334457469112313005407950702502797056171346401165189015912081827894585583017153673458096985781443542109509230814518127313784008228729818094421325085796363886683347220497688703978549904318888374474074541504153593031926143112535652600618140918453634205853708837313404783123951024722389691432143002193688122834283725079203812894980763682794451358403507092849305340149756985566650796108273336711678858954971012851356741313704965929957843634838483924541589653904520036518105384364928218157991320078173369142635548678419627707093445112941286948675975336194749372857408765591516702686450677359670563110194282943736451470605100813853510166341858962734739274632383363420689772905805068860404457589804395059456972474896025455073613220938537707537640950769325553796926495760389273983225767583434352766202759329275849374878593105594292902961750057714630211390807321415670663786737515909499089357240592323164061601513928217504206483773806167880408798685732958513316116824891027321566453586049176078923141446391173412108595451938155118301514390470143950869690738492877474451569043673147447243553347884657487871159116495818427819176554055410365250250267539177938761923746589346711278855128324879485704489841146289007919905054900040608704649105210309488920667628171351968717174898058452874201844198421792382833754522287295832607490059862124363908287186662797073686362770770938258462238997605747438948509719529492417878367973549582398692482236823218233397249338193750071382124268596168174816561454218249002524900551105758803276757238204919280207312889607138396425323944362258288446524989849739682129523439273867960531858079648757295347290965509854137293097189278011205131397040879169117869075910303056921231325961538504430856048888586855959687733705447288551444233779137659161776614335574148439316840637242922953468317821160881782758613193532870357284549179167569653415798645024230713561023333927768456117635655913063425282790680292902838186488875630006547943204984575615171190765741749218899151735840646054649693136859067235670233312524213530605547986137740407027548002534412696418040512031569753054772010915693727264880879763275791355099012522917375437968394700432973915702626172201574443035333132478270909111175497568663082898583624316731463190663262697253244745880437057694667179094960548425141430234919513450507103284281849172013758978082129346542251246432868953637508927737150446788848964770371462325993639105370805517626683767319341530489469666394280035170133616676942082559260815233172090828048014109884571418850768005203795184203035873811737824398760156011390705523597846670200891823082416586308564764923347563175791248481114904345703683950267270135640041416054179664485493098953550451689813481033634637627340343837998193849953079427801154905534010640436945411720976275180888984016653204138687856777873404844213050883703103650550011188002690733653569261327953270840605570746835854533578110353273626093057231873584376147173559604312023459131340061113587960573949390268776017952620868485072449076249651828472588623857318554363160393440828818508035928981729001707580213973159674781518483146051292462173931480116785408616297790977928026845295878522053918842787044071031307536730904486282338456817937838669434420553221679239685742895454083596294434426045122336542500614981876201862369608548761360137125376964104201088455591549626400865836545049133062981653778842825138146819325753460356464880794585537385245418366035707427677517964859698705504336038597834166872208097571497420498606852559394249244745693768289446979273102507100817796655980356682732094251042419354825483332689803909651265620305343749528254164126943500719900855643824973498669537387293979040090692217148365965532236764819124982731583819481564313955498252799516130735278184112111831475178257845924197237712718673394632444011057601256809574810752567218525654927277026395151830043796504853269113953638928630025932156780878100566439468422142439115496832239642583071783802656466157904722771430726684420479309449363055792140676613809085051184093197208053788550394787635677587902078242787470076902939457959346746931435811463969420324435912065216311383266184509589492168408859376419485272370711338818068595166418297758272240081433766390329369403704395354310386612898237783336824826797803177791189421195176789979528758547723042288683735313287210025817534898464885461798068377330343389428543159360913603715905171591520590821878103274668518849617579406701936819124344635061803875895864923028072081070453786145976782152641158876177168852911728729801722907143011258206970102344713510735769320849420583431465693745484841831211195812061052537818096603677409034662690153342462421984913964771298486656859452882243856568866241407727130325071823880777251831260045608466485363847239825699321032965288400663455706968592944008506462347624468873825284510455170482192206069334035515159718474546872080665003229138459686694336535771032412986709563403133709974588741339294792515305214188041460518739415178239638713880040516569342865465194672861936348022076100617141582682131981661699110744554196930942814254140308827448343722134017169898879359805120299980883355956900512427875785120667544900577150744744194415837147314819642763454899301312893336037541338487662923652768595332827885838436475163420898296772883593020858359393593066548586839712971396410279999623670067874099744057236065580847782125403951159204685787707468214421650218765057725843801837875451811649396911960388547114408526036241060004781369502033375489192277652165905353123665838757848335252729988373462957447434567846243185124995533446789720312147937339495711844279818298121800632489536282232833949759125276659465889190344149868928773861114487194227658633816607990815950263483797081987032723819936665052857591189922079075383782188889071118277634757290723413898204171686591055406868423154439708368712931841551854539086950121300283934223524366703880985123893706567430674923296705957388516298758474736330073927509677974777131388655820820495289867107432818511848897062603147152111619085101125425757905503386066946626315206627997150350250755292093226750548559186197914082572745529300126940968842688350728735689786545870175988515551907185548421006837746618026963412099378735057859689755230690532987500417019858631161941319605762956874963496143533328681430969761637430279907488163286814803859558523482549820675187226709382314044926209305232986922969567970271754821677793956450672912842136442963836244533586672373422473063805811929043642003079353264144018860639211245377113521149062470367239365203921358936254241578152232188821857820784869809278173617477917433964815463362236713140999912802372331825730830912254325842121462512801289759547718377160860046637299933607253826385919061750714194479255234263702126767942658198246138510834278556507781505893671278567247356006125445488380018405455690357876587339986028429924531586948630724455079696239321776344364570292217424456746641537243592180631755219344430426729270561291441868487607635464359211077733481614487525927750497899183090898947454534114205634928597862056563075155069507565843163280206884218981390356347604506316304173262223570955877887325767738679260061884842318418145052051576820516985606412497313937279465684965979450615482384759140290007967227175221267051856368413753244319941660730038648399608462094771102892456408807921216116726139868005079438544085631566783151452730921732993082987926375909344592967764906966207840819035712178858284167170471994457923212832940933693259617484331825244611077307971437017100681612162776252557553397660701752197995905073984057509518623047510475551512960819738237457568539957355152196623900693809026580483153513741106291167137169004238268987676404479743417944674910950066690807799986711116548768406675164757549710154323729761214301136358942207654404328246396743595185862994516330103181719053382018591039382793589592757961085296316576852233115945729393297919749170557091932300590755610076327245164197359541185734492859730730445360420366343288893775409236491888268607194651863774371518906090031165891348285125132784269765430106359700430503668179056497426856146087871350625560046021725718236465801947048054033216424434305431695446390836322771831238778189241064696693264855490003637550471434150315553131830284834067732400684946605351450211290622297315490331886442277031443701131542037762275406715090109618823800642848036141063632212102757325050481949472538160337721162198055320856327047284378427358003048540065277334741328893145809188270912472719150470837933427176933590694581974791291980574540191572995793381339374343935055043619621090790785319134540941201121329277081411082317680990977726230107139125034849571438766360585883941457334960460230936817321454696909745028485966360253724098886220464910208866208553893097758131599393722507336263799812403511213992071527762378765976992636979910276474893503392986869537671531367575513025860073434767387795289701549366736692054489357505029069400557346713359030930806701145427211126583866692654181798504062636508135469145950821535026979230019169097408777220178346995817251774761361000175339919774657676330898042093113422686276302597316120963797280029377358091125493456384687996355675383817858727417707516715373399898916689991553935140631382608535434705592495092385718680490491927378387085499658228691940492067797458357723386915254632446513806566060831715607051628005090207892061519189085752880292906421666623148578025885885938284918454121622886686931756895712798493481147118281655442963226400200865843212362487573662195688639526347825694060635423708623686903129188369517421460904189026627332461620093419358258051387981668476808063820070193612573448380051921233111031608199503707135169574013691894694478981431328798875104880214526313379800048439255896478199226399009819927672289098948344151366100098278739558623416197123631286229989180239128691226570037019280889520311340582849199285091541885479850834861249820676940644766909941259752360018622862660211182281812384748713831796382927818157453708500848219738530940130413849316749620917697483278561337362350420361893256410533016480865554861719795960428040225963311978921164625602661000496195158199765255710093272326701752312001516635964827934151451936385847698821242196588742170207337913989613370676578455078424704018719193463758057972180465760305858914641522773960692493938621879342717116978415920037913374531948532649087244432704136395441224311230692952805472659212507992903445555527326570676805008936633188276592945377735009784426600470740892781276117727407153592624438734903662673440397219563567023870306488854642359935055300112446988359816922154810416694917166681408664864587588349642201967309843892437866828460293861104206699884452156625684118692334106000275066240675459539679405465958556780607709019100915830818991984734510538854201966087326992466348580320505617558283082163404854675324290754531329510453811773330361701151264003945677029909949891121239406922536720030693075936569292926583364722365187288976975342819732321431556630092975551574845624139211986838013709435104898454158579188758091710177865444506797549600141638366894379695544763931452001638980149491473428894473267885852994319461288614964307832998389879785467799502386603872773243725935847580673398805665366548645867471892657410105885166847220044653408648353378298143650679857243749141640427196379753991697241797506629164378071583908540887433260041152876349879164789453932931670955419314773884560155527620357748591649546691823767513239672323141298832043898406698322210697607180732453851454893213856750500281097041772667181366651213330084973801269425863610657206736615246755745917017131627052487140198245953344472604101603143644187216190746513208455433040416816260373812172621537377214907101286925650247765722462799372371229213177962298256365240544945389440457500284250329162247637438051570049646451682718582398425075012330057901933711592194732805105055645933704502801783832110049712156529491858352738139245693814372414524134092985024727941815079032749651621715243659330418925881513750055055431418051416955217529144459230309875043352623725047434456104620597813596985393146686051604594673332994060310646999028083084636803168391369465213084130348576621075052076933818699950250976463077493810344412435288292407421969002139116913578854248672614135769765017633223898320472438858417075947450739888929034511453553383283908468140706065959094267266158264258975530838962313683717959243021807093697297209253823386508993740105438879556894520059155580309511593431655554832883132464380032366686513295588137958662990593653530433685005309675036704644875910481398008669006715232339207453301612301968778767963276668769463401570121028345417764756405920022209281207254172831272169895449359233545213655155162944522521723915981897646938844199324097000991618681820896365593626202785945029678124753686046038032638358460190776349796272961401571859652883583039618207595571517253667460122297475626836843611614797476895201186520573882664531619491948388409086111500265685349570620585844088615519452408989994340475161410492999800940772522469842077787008768151869002591095834787716142709785565608793588059523183289852805796889570760952640112470930340053679108348911957880803820972998935101958700613268812522195458458596809865747800838099581214241635236452695539267722034433422783460533628210295094034557551987178773463597379496579179941864605023874584647186437806705769662978137637426603682015780501697117180858423968265151661652565979941650353843219175444334392491270689257748958233551638451168127033019762674214204346628517140671422520264473838936236555713756056889888382559357642327885583959501287563005457113524690667830552221872312918533099144216588864117865830106240778489934167528569050693395997711028564484320369032494397150442581994842039048950199377230389490273463858015003827188804247645218820122546554870036010891757120788645442724866620737633496902151802975976579110055261050061294559860569558085321552297105208078707250862106238566894299344497221677882767186692658675859243388569570340945610896094318216386651602657937959347726142657898698649474957974524195745281439212345087696485390878773887440433803896760920537829379721545325253051249616815359821127428459658583432218739267750800332839980602756692590501544939867939339999116271966196936087735761439900908768835596072221063765973739833685939695206553408112497827114817606726892675291994407030417924493498428770490161332898219797618028718401257126408260615720794556300913329790809157923269515749778375842035352315336625671473907040866000211499906940497460152604481974344163530808682984538677041802426433447578035013679121500973407440677393745692941290070560386913155579092935445570358890886397099765118038887193971681041107784363678309673202608156689053425038786025514765301180462108735754341073770972483158099930801838565230186264144047078044901730121787865177932728461906409667821737235893208170527839256942900652127845096152024716897230125597716836032865089164399295404010226343009420026579875904160681051370017918477197116820448274481436186582191639766236211576226592028999560922663936939997656089371344082338586510456432679130711314094241520986505584766354764135731558947759956556255405023546777517501881101366901885383736405214669709115493362120010366000470310510195428576467191996342089173100703907407865198481480121702768454838173611901008110616815082305019694063559158169977408436506842515594725001640780753271749128232358689230301731097458638433010243634315671697475138462915036770587029468770018687396989470853143957878472504855810920813832645972236767425086013643559826022585530617777244265063005793818253394201385898341547609882397200206715301511384969136429921318924107873481159125168396841784640825125091775525404353523614342619118808201565708787238402445945709935712445429927005984407001208164158239465200131988655072682255699280179135377481019067323213676457965638833243790544663533571792350661402259131363471659234375561832566694906910761568654562650932026916135304593430831509899621106476229319958627367797312733976187774123360492654069070598997401159080942040081993537716209391470827392920097547278808650738084276378298870569018368616442034838548800775543141065150282667919594439139598965986651651728533531682209748410908259157511575509523221775968984734660011686911150060823082985331206095935438895432425680872521351109844096600004771075729126915887883705245631234468373894356194898844035941648522477063831131104762661049230291028837251800589984267948460766110520017768682524767007085835755410964106395866963730173326781255243901521459854658039021500587057770956408782179973041278490475221290941738450940849827207280883174475778765258545944159667799816634269711860259751377657648022122789919701735881273557111739640229423806102634092476795119623988267068165371080555407935844029500438580054935672611630837978165749086087745690437696643070912787220163255689302676386910285053351119750874500772759078768663310453512410921758689850799344034220643655042831004216177157236100239750234587558259281303539026731084372625289921048293100032223538521101893067965743506112046537165834085435986240310231704660938070062270768630282962509112924728435791007509593193836018143085638558237202211739541775517693006701211933231187512663128046691911956353577709205767535376012076439747336525279181263289888969504166735483983773438243490843489748399445754135972943806588182514558666923685578391626774120455486270043488637660418828692032298209747722505732638626699082721835046814170172682975202958006711578584073087620275683427783810175921308755554539590484828776164317627537202927645633280716927198733115042272522240132635543502760874264388154439948109456650110337433438615564280219851953429057619699474536473834586869730356190561989247921229112484437095536274292124651146938707816481511058035602969809252134676457179941579254244369292403561677596224515910833096088559242518730916819814717310714320071029036798762311066017382633387502377171188091931927903054331868150482994750537527392717849461161727186678998132385412485411655090365318851301460070952912587742189106378818901149518809634964167005111231465054159043778489280540873597605448641439139172900499220344123399747042429197596531696168068713963005678863571071558896141909286843937210474483543430751717022335581508355519989022330469277796322224543747359128412432027526754975255342042393665043098221347575208006702505160664308734033582406097132892875266281075374085132633112318845742920323099383185876158618236624130200263082256260755286578965822098689458280770121142029157972774104800912384000126561271247220082533171339529599792978070244077898889225296856146395974714265943535158296974626368660521736141221322185626659063945424235575704141175857335449621951366296700818966893372835579814755314662015258709034821155918991470000036331805147153771232128552220166988048933832814098546611312172732472777076726097065585855935930274556187724762499264958013711326402898129270308801161210841975028728876429926800275471348391354651396098195961043702499975704453652976062334789742720325805206673455315452376915456417544602959813175006946912745410085723268278065454527251148957155089763407198048096790955835671726502310930912618770971370717728658767356575547509187872472141978294684637330968629867702743858026282794255922723236849138402782057090898032994793321135385329226602940512811553902044551290616126541057161468779572207237451343027248419175776655306217604695378225181496455329405574645113595871870658180432267529694196984524417544578309690619724642114642186293952340636582161324782999174840402212316838226308900635117433471166558818758748178028623513162129139409999522934847477180294462818905757914000642696012937485313903997454382937125659631670224210725812179478829196831695574944511092668329397432849209469097625551819848434837159363868991748145047335342640627921066119009463861948898836187613032204360237151648898779573971029409854130082283728518746941048541896912386342868809805148892877572727643630383361310362241492765025360644493289327611246155831286527680094422326271473363324659072123005976555032505793430845031357284677827971811312238737610158869116199998591185150725537327033835521696479879247456436530607139000091514740627587814855928199439733960246033384990953495497888083483486544385033375186671801810964755740169890087359895654981622172454437944810966750120689482944736188757946559081058082870268032275662011106018177130097811985104589679708847344643308157668859476498688458518269711310002498868693346789766089690721351604966245286634907652991618418601866856839001509790408145568580409223289579066997062618466282483570964730446377364241215624698921598030693072389593767522954777493476753545148310409490342090940978984246789556347063295284517073578843140531523038348462184487146401988773281454340791916341706734383089910916320917077145072965732551149870214048407306256528258388604632652549789319777437849199184616825954786454260581670015025323217023738821633479398893836595856550258084411673022641165176885012695579096810568483502764691383052191265710164432102582778316707643901169698640943733781002351273841222294032435890474080897179190236899571926388570874411473188937446262276051458728500943022776593674758350814028854124974777681858568157444793632278809535041477730182007297005033428721126439390755956680437357467314671602670151816068548254042179967642979392647615511727368374850298758012683372007422812962123219982438609225155172815114894953813089233634076267628830489923389600715791323540426228090659993832591556008822438497924240798041640414067734630709201652069484180690074187862452618863272258127324264206053509357944741666116043190725835633743825024425931662827748612526882247440447208311556116970182732936109162359640324951251894715398104295036256783114763144840953458541157579738684968905178930398452461924070114444937051002177989125491171449403039619472426878716840825003671755717907416051103173717365538964622009792051957408472882816121131549281318998011585162931819843534347044044289767936940367392952660119483532912631636755771049474420102096413830679265320040707824295445033663071933718079365397578095061807361371579788340086606110287584468040287806219891253159206341944082119566204598429259717292013148186240477469643634812160999035352578694327381638557348433338036727020358128401040558624439098186082960409525835946823081640867195019088203683585968562872359416000701056717162208981081701021113363604329544359568480674696091595175979760433733515929164182101321982941380185795512756921630591377049026292997125846144947518432479959266237214313903707639901380047552200689253194207513143341646951992203449873088678477675946311905190608928920518022305965542367867022726906758680438425401313696818563962407183368346548032342910612878089965846762621904329643491477316042230657648335176406943509813232516492854842583460211384381393191049124328201738855181151960063050614742604633041881464874477848958756008561106742168860822881404922793580846779183215617509447389739611845699363233624378399448950098005300699199992388486122917683943688018569105504436311866794950849958444887937122720351449633547714185985437978879425782992792757125799515719213271388838177053833348311825151740184978904078476620176473713438041149177529389530212349870906361544106477367210739622374241549956679365338013397643117622116972544440253860953000568756601865655989589123267633501395939929142576306384800473811435001613373968016996761811967663103729096314237475348575400777311414097177048868600166691278529921470507158813787112138526345954675251873169560275328825617025089474212148021186260854474076340515184603080357385649979946234331173850072306241073647097774906115447125116353793543287366083581604273919270851774541050485454904871862689780502458927447007173117955307539697742916744966760351578591844432662183872109359151830265208370508114680267494585159969909889416092077604699230760984785989207930022620038438237206653310580194196616566124506044686229965802779219207346449836680178318659548346785831503352312711632152148769615745800100151269070301354744159630294406495796356544874668899628180096001757064972883108633037599435080194531897963841594445722970169612598604110570602718318629046706410076364508454538538146304909400479792159602801089261023730058431641625119369825978130399183288949881575627897744506339665933721367954374539825009808157576185936208123600618983327848167399662013931145895050634757126114248293540258690360818114828168121353222640120321727136292679296951103095842525724889508681335351274956807573464515999985224781659526907004550981453576572992100296179403160893445415747298931942904389508833060281342842106021254628840268119835783456119001664644928199339801891583455714747074242539201661618313794994639414217026656820565878096755886166100557494070136969586826186010136656957309901059133699970549890522758715516312621443527531451145881592686519006486060623806925673453595186044469991911888135585644673669473313211236294485259975485171476752715098226566173065885492888726324208588175461664427022490334621282535033069731070572773107626265344003702315251108794841822287123331808745995339396486184106537549397248864363941752107065808504260659324531379480089514136240615250134332104898697167692000234043437840882427370916255336422863201880800622887990256408596088363041001988776724998488869967169453049757201826652138452578187253666447184448640960724880682051793096411123957272102518371760504880898927710524385410751994437369464868335148056510980951113197641148218774854921702820954229404879813225113117048186293162807761777605361842588775565151016339771198159017735562668483006469884620451592189727054905083639538339960255564015400521214427427600600874364419002964978580769445552789140418289465838709199553976687876762054795015186229186358770392601028172192869388119865490219111231282741873457184101529465131832528877602351900152409535049507999935101668132837644816985626845767714752092276255269418632049372365219921961667748353854073863357416705260445383587234839237762514250383320562449043827372383484775713215751399658935097611447298530754102175728288088247353763727646602846008461104777947447603105785944203145131272901516665558894449989034216555647476862421302021301048454143448766497563864988915457885903267185951133515112505899506432840767306867284991357127641980641606811068161098658990431966620236496693761028687761671356140519805731378532520322966710981132114570050386297243047738853026649334067469472405754014140714511065207077076554834778640107469502177295522388919481117404423138024210148373124608119445597595786987860549598491166209503416298926659864193991394628677086964380693558206484244867023885762936196364404748459270154400948029387069498193423619338756389574600481043139507223828576776332622168293341326873444145964592519344520817318680166406140528289083555438573538377388753106735747017039303285648243984694415276199166788331653782797646050907759119272692278426051491187293927498858550606706364746207262463305743255662526752151812800184964784318252726117833955114838957986267513165416259556648601158212329219262159387646384942887990675263259698745300164344478391773971300773626830228165166102118074769306211439537849670848173072804883446226193269572244455648712740478195053226888618720005157312272704980956102299935004206655559571481931608493022753996952728462105153077217994160545161776765668323188493196878410084009793883695767120914949801368473827206064981446747005378402911980256196689374816641483382236697730825561045937396350227620501920906621902748433376283676864962171781052308380986692276874237944900298380261149694001288189156775965624981831247305620714739428174797186611453020397801672470751820422991018436572313209592959440045292417518255279604305123227035662397349190189571480047282497802368343925431269048788070482966554903475413641623314255460472335959111913480977676647943664286545078330360257363504941291729149045071964110269510615664917063459773019846733674489205494641934563637093168922451382442895244730631350766414784942524677010363683908272830369992773565781497220747400297768397383516680462565105089546024637936879828179728469652782517051065827591697348835067962686780386657765259904334152312564097158908315278964902093636980617222642589831154704278065843145551010753058690396789794355944084600609761943791617579159969791061329247948140958410483834079406132878385552855469852033291226056775071955176337214509406305374431284887634095779011214511913245210510905744284478172918485183165175785955900304703357354917391697119043431786315175717635424047691590317614516954802982315676267769069866901333748355590942955549911469343340515665579907270844729169422543777369503356392504143423383258262072295472007486405033917013051036837319239129560400736015644931575215685725801378877531264680252670034779671443802450891029180348352244913178533499755482489439468786263253143180833043815278855298419854141983659164782120971229277023364597721771679516388154017278062534334535690979242103786137420401212294514387549465003476006276534087298541539957965241384063281541814061668533153801801774190993487168668760623129522441310272686053575230541784686734179816235861688580295568317996306127585703557865615342467041891351222393540379504628970160586829088577537358213473265354177948446934004002375572075941994518675534520806355260662430006157519890282341448438126450813502092678801010488460572183856942189667383004581649798611878256048806285804328455105235225067018502743612768501887383081075887203527419730497845577842076339128124337007972627296503228973905711845437924412910353500680796289371326194971085171087288854816469625910523700138555172184233288792403330265891705477135225455250887114459892919995555433463462609694453797485512801332300097812552151746792965757139667186622652277259828623066754844008337781945728886436738882288432942022905288324125065686968905531916568717489089491356508658553642370289260085920956275779361772810556255387439153438558211670961879407475106923963569945784809271747686183607427789970653794119273923519488308982028862360545902529561366067479953215738936882827416914400809333136170482042167907053835157003661436496823051489765272220657476187995049457688247274015847455957923994386483357729800234181675587834443168532555277245259640299269228705488486748518766078678875596390800932659121288336619004112901844987880981354346863384461368091864021576497736126595091532541510892087066892923910090241832344679323003458070129486672654318435867933324373004854883617310828605359910760231347503220644051136441346532372348494646055021880750491024675296301567070015281180018191980698660626946208522385948614371354776097122144878209861867169312942136969996494880497960533315710590389453959583213339139564724175825746351459375371918518359040375599523510926071315020300500641769108650673232947609125644096557106196906060738478846770878577078677622899660637109531848252898110441757975014751778623425213635005825023316371226644933008011359340246079312032092226165284773835344396140464043535393072914267368277524822430790132723665496996628139897311404334697826097896771226588601651121234146638037860148996655492075583333884232921422899706196139491821601623658743433406873709014808343869451737587593125342367514083126040086284397833900459499656214488035685969726457468381872234904034150143189276518054540725780436587153009274912421868975438180336923110475514763287987478683012406262917154086633115701811804240233551665100684348234940540870037720716445348265374276868399335649256670532251735099182481461130846725369567411022320806657489056438821997033748185302414556285382368831364610498819701996067474357384591141022683633110602821562459118250293446359693076375498880751931189045864811598542975483402673068202427238867719757859240309870930346214011682404070052656870345734582839508337895288228259974284468376651901734104226825988226798194089008588666227245570438451820060282668288343915612478121344451971265159184976097173645817678317955801327735139728412718441172814705449535825134130922857733649864509302349664363073105688014804885441035704258930592527724966494178387069072626622174394549670264277529756579633830132077790380107337363804519373284587591594073637541725378910208924347458644588656616216779784494861670624879502989470688276431490874289288125601272023985669154371569812769218169135995884909680130129690322677640866862713627165882993785654348439675745311641391396551077519531030632465701798926008689602481860708044524227112143541432487666685355679827916672518856137167432689185965338392874489063313826816258509319517464039878255479003355764227177387104016438284872852442850799744570757855083267797976131601719086501670341172774874082646964125128673464551691323548224218530792370548813997980737335069897206762256866986900656660316336799288730361890958616173859639187516459239452269439664058546471479755327418988251447304939487255298817538442358939606889947654448123596567033804711374973277619506690001142708294323036247560046780990694087438575884651280298536996337286697164248180557164096534553935061910470680507643416417592172001766893739232386426610838044212464194377418492741360579112784082522726430531763064806949373185752612478925321065400187491380647031271011922912800904795995455320123714785631355518147815122719613760774103654519253127223954378582185317641072740692810322344742206147225984729613007757270047237630110730506776355547591498643685079974635731823308502011730275535231472436784993180262265878586987003521462818702395157517418232483208525281202859958426950762519711306439052677965001025735598217577838838347140833304178812902863784179691977287161735987099215666212549069313414005219080746961687148823047214334784145230607761294382777589775348858157431022490781805295797422937567690499478916960483769353601903045276896502583044002143751440236445917287385178276071862998693611866273833391297752425033646336275492676171389125015152181803224257977875192745888171653304991051742749939406322105197967085544284523514392654271628757061337615483192717727024671750221827557491055659678475166271204400078951650220451756746500986510360741030329439923774550008091197215010362550786610938156748414500636145180826460050800898371211335381532377913551631750357304278578604627737661492351736151877404538106374965381999803462487947265467315517840712026373547140328230105317711549614381494254466027600152257750047352297701928971684059807238232259233367058718086324960404223887554551102970911694418134615948909751274272467235364810662218201947004530680427739817443999044086679246111151575655660684654122071635681840598007212165642250104712802417539941619091812241001585621691897051489295854959238216815773725315346412160896346769199897467451294614412315158295446003392369936162670570372554050926129818971401368302201643113164255905234334037676885297241928960081428296319671888667272790894792205193115017173995713301070509736848535393752367064462003797590056438961009405849720119908778216121212606571400052181054790362406515914432909995814034314121047952890661456878549225913133272018650561293492371405890332046009645223305144059393285299470913513151315286983160021388870469107275738630472203065780826708924612757799709065307995823862360815564155978869171992476510868005509883750056086250624491735720599075577198994552041769085644689438658127300124462189321560024917319654671040007435110524374353707232953687338000334355703735818833511077265057276040419858956255015157247035282804802827012711402072482311780629833413313891908572260031480321458971422692868328994338951998318248580946320223679511165050699160186854860522947605755382792792786999092218315521860147744662667909227730542275227250364819616433070292250876954863294751161637309936706990003989353791172513639401816784034559677252490065560273231550562547244025834180949490756327671903420308835915093107082163878356129727876366372320139503690202638522404691444233431386765141150054492193510829515022989228186996087729764894813694194230399689996993610094112541356267785252368986068612093736395497569660191463098396198787606419758934474730231729311596309585866630713364111699177044017799101202017340739207806230948727686939303463956281926072557596453049754875275824776186835111800449224833019182769121440021238006910026285923500593154071219280233723276734869468560806714350255600164400338240108870062137671404046024834641508019488732755419848449823801803402920142344386450571730111157973381499517644685836245280824484541461946925402904782305383285642379576832002052092227241956516116141287731514195403159037470354311841560551087146499401447264522719001782135150440274838901202443744133738300498275806463257132377629154889758167318395392690737597728349383812248095653818949986142064613995419529211003320738698719400343030144108813995319962831971315151430286436126159590945418750957103329504384237178723420568051797365090635382538138695350024710007010367057132319684468042388803327975549433424627349578208786117481263770215604061884403755523230772928659041568288822566224815393205418969864152964409253228206779129894719231468186148897773080694689900014796973937475960702891772096714704619088429908494569191845949718197321849126480319556120781127501688055459868109906268138004604093538611612674205905645765535700294445793127538262790816657011829443573366757116791655081292240051722922599747519400310338975992102401116216533487979184080375267391799639135943998242918815812497058817459483161470284810789458820667940875465015166454274355952416167100714951533958359217078943888985286814961737661055303153377736718496593747510667726132619539617216119118025701522694786886132865950544837635128097478811959976989547972834734990427361024009638803936508055827581666290079561941333989422264944647668805022398543566087070889275793272262409140146047032721610737754526913548031841664635386919178604344769286643453570217741651931430252927872129876994293479793630685677411984021681420802882054730793417946459406893793519162625559997302615132436273453514011539432748631310823884053369998380876969438695437832131740195299623371484053011775080390095245506226182101498532031403643041367401009609345308845296943475841565553804824082892869723807042634942096265779279744137001400285301290101014950016090241599001033935443413787569716245183353290729373410569055578375160282239872976264605882496748281850431552054948530426858506179646394542592214050038824379474748390710330858011291580806791489188982778866364902399349589086255814173954543366419561268092721603999913435765945324345415498950120161285705701038386078779264326118417188059987392780595234999349058726506509138543507797614118537726847800401731238479281550767348616130656076474704360428174509640079239788254916283776216169635821996755842079297715421604484139857745384957050149960039265866524805920113737903724874490681059530194737514695748362168805960179117136264247967353915671545170798667521016317860344163998768529187396655445423988236915329006178053511834120081074930377939783417149697554576774984665413608096309521308591600541350873531807660963132831398300708500541274953379180885862290648852908997206554718649855135168295964704049738177375842936943462334124970724444764592272586342698338952646903312448978984873709502779952789979935495271239467583662833704222069900801959106378256470457645154176715983121751890193523986911993949133639004195257748903049898741929211034612239136573558269152321179145739415533689758603725697090590545195823829145616417917678777314914043667895089678443019775955361861089619302513812330113946282293681243514120715943926884890178586603870942574846871470376163027856306131110725060280550491526535327944570008600645233708368905364589298437224453530754521944852547028706297556933945705753794812423366701502480954862762707492131337547889150663269489765792330091236858225929940899979564116231046536216242961316491998743061060264289946160896439538061653675896365038745690839715006894617409430822681071852097637553230059187917340294020094970055075137409946016576860078243345607274295251117409565679758883050622478939900814372797151491332336463715588292516824905845283422026695607816959906056771948152387931389984372498099708069472109661654626006982691949954666519916884724080262975833100577535230588680739286892760285123246671593601845330893567698471841323452927569377514024579407527841076579634443869700691134733169148253354038604406231503819932839589404078891011484565530483574677774032298249997628747722424485356205335684061727276179736725812886295265491843359270472628927663470522365897394009186988688620107377171424884149419215353408966014304059779370761755252552853482063844782867866584879499728636506779093507949237500622135269173351350016638270456376622319145858320579474782934367517767678457345143006216483243895625471396111674820969199253122270187356847240557076850030782041419118104949666997539588277993728091406272833103191044503063626627825845275487153205115425078037123370710336782454859298727630162353062814271179846655187201571017773719399611723840683388751400145041247957547213524372830910358484078732441770250519709942137859888458215922856731100587311419196400071746645659213167372920660348898070069123891761547828364045568178221102833746338307527931410030032426332190618318943678428811518453789087431592876089976826656552927774052063691709181937864449199964207908838061823727646530699833948950613576600901927720986740925463016442204174670935290517492770852224499115582852264073468458856023235067148317082730802184873800893188138504562099008148341320909002678675864100962031045473222455489874550944957428185480511441602068365198129057964725106918995883220131735768016949361041147883501477625115086096966527926638396066511748104129713236780905850105210735665388528891469204070529894666173377606423733398256131751316934993404503067243685771029460263695012581778101689602235799967282573987652388178813182675905673965574441478697068413404219228974164075731972414946607637394787648536585980041066309322657741956473755487617356234910197955080885245814859470961377232480499123064346717928186987971422093425289525101256273404508254673424171481393909310262894173208960554569506815568492004493083729344311792151893023636178128060888577920700724948294997460585669945121229004661080192401865171002150396399572273639477630636107784333189010470226724808132952137191868894190529597939954900428342266204772219235197613206016558870038500817057310119294449356335060402890954912017047854361328538469523297438841014442717351318674137291421397535431637681667849750987900576448462300118586701250178124615998423841913598835446918508063240519061543440211708433576161729894800905651998760782047526106366584028672642133083233098996526337623424531872513776096532437147466249129283706469023735859522148357897510299398546708047669363841158378337746198319695953027237226196507340321806531526783573655834286011066875927970981127998241896988698992499689949923827714448744949600237359779191266630778807393374063511289834532253483379039576316949154087644416596854490585436836620105854008089439706584863167972125981920531192843471337153764709707154551789159422734927395544454448417059267457908052400426673929846866398511027987695595982803468821012312526300197285760536128261490558790913228730058654737095381690430114708330687015012856173566320354006075621997711378730552264988470673941339592359740015252587127061849837695681066035008721426945556795808456447660415416386406805595520852867017097485231886755897114737730045221199862214315613173165955747756186966773096298619769113368414747263133186850858309320592687256406732916153385357777355476479901259266661601695438070414914188283109661496321049913367564224431546026633859349412084595436680550296751768016940383024129647303618606201932987057339507854627401027230140813843284711606292259982458218461509255451879459043627196621712585582652549415589196184866902207645349639638546399644806799492403678135625129145400591293722729630819318804480370535054200986415294740071578884554728998010074498587728904113752525639437606144756509809362472644302034151724626397260448116448771444507212906867116545680505527252758213013688892829438340057407749309780106618435947148366644876253621332955104028421358931154385838578188136714366486842001661048555739019957775342475563417157765418643549560820443844217202724522551379268791420059751442211068667476808906381588332507255658845220300286768732012414334433794440362714171534805068063863790301058751548860826262205290197561915539204321361534616273788237724303320060920364616611107215796722630920124172560686136830563327407680241232592606089022378353577168206804285068161489312266767100337190718243875692305748973209957630071339130929228036161669767047271937539250003161529206503415327788438338351857619873836432457018379081428933110620891972159864765496127010310671778743230099639298198573639343212254071448415696768103455226142468078464419610059573319117348725646036703389458553889340727270039666534172357894291985720857535955502075750880499734104271920692549195239817166971448764720215195064064948097322213833279214554594303698702501213453397813571115393676534881025081382464734151569615252884781641016629222956294197068644396569553191256720017430349594967324663461663479913789268143858825055625197112531325397866375545955288591392051052521002951335312492231225848404107823034906307228034726103231583414360599503473014459753614635134374089268649386777597733175257229887923301120578680413989511351655330337886594105916509613212244952016915545511156115719677847907518954401076862796112367367841245328126450231770952893158098995767354983943943479096408237575010223251340644719818698428681797292037185618193695406075182339316367407983613916222978967360078737898771397672337998857500773174985586639525887026982207938862779638528375770027072318742247697835233701678152678992496491632132550037208402338504005207988714872519775709277182299565447688670057071830512826126274894415626293097678784635625706803967158548795321870118381233771578536895493913435042896163265979579794718719487279704624449752882751361128369784463504369667245266166084897522952942838221382010884646655294579788082161789454474307345755076944781077178832500691582561348846401639404946646971422287687347764128726920051562222355877996584807546079041825819544057097868909422796295175029067275013002030208010864528511745465035588977654115678852872724695219795358886732656544839544334513935376242973695215958074225034602683429596990306306650896260536425951786106020584447722102840585307541762298041183723320513973621243769621442269723945671584720233279104233945535084005199211638104463722265574778199047103134658497166240097995253534934996795841207877465601511610193028767272754546408966659627598843408033809664086793481540057487409986952979644248351887816476715207202605390964333851200550249206046465884298319803483006025835494640236216811348640827499103931233007154719429840507916868531084973204317081083148130333888935479783043328800077800676110280437678320187951914377148854517398990593646992786065745914924490688774873550201212459922250591976133450862160404740943140920649116243041257729076259655208139273323897110835434539142685248004519382429158759942733938790916584458156602109281555149490270638830682853990049119437378573041482055176536182136923888131159210883538682495407450388864299246093905009412415065071326815677072713309384741569766346947869952393402337742771284682634054308601496680540564880312182694635452693676267498508082996320413804524581472736809047238258021089658990009226288585862715978260505449145175180026977019270898924018539810846999735678672382530776930756619071243050678166382276732639814937849676378079247018581295660622361705077718384136119903365053978209857432504610928224626551333522432439170112777208986796731847936675878551373726007224811656464939784891972592364097725563018790497429770558116885331564785086078437904063355188543905103364895268162448983915002715572069660614828707373569464374306880468229527125346028630633127688694231297432850145667005959001695550511059114551355645301993015214123006594601346099077593147920226778414083255049416034717108434125628130365479844703462324616210977983033146029632284028670487818449420466552760842845415642484744005651681685614484571493869797962871575174240846548633962804145869322832482810764161120302434767894414586216683184944760369141770310020367656493908478848106799442359505060613367398178678283427588130011713539312270292535902064097124870096407509432321212450637040267645162866537782411049604862659844099485375673193637641042240330434404761010415561478855299423602344712685926258532569954527589211038963258067199476567519171168899406375743086091904037660106190218388969213795089573816479760551712854142596556818449434292296795445057467905516804937759982964531680967185906439850449799997277234281175878950622562100272153565186638257958276801284155620111434395840380236495184653022072840071425880546579324835509445246258567987201699474474375991483107238069454842931625261979162308112763269396782122471380217784657139569135138198292638518404411548056338112787777046317491501540832290394101586893636986029888791609703022582236913722246931454428033847399253535087761600823261943567938965040084745184313714352793246605498931552860036643516794413692935301066950453107836537594463142033550921183467057768035782630846313638254697331730934260836194401651571727486367840296914814242842486953509738171272308804673565419426584771734814287015372603017873317280989218407069499202308951795347963156284375855684668740510467613745519847920716051988528267643916426188142562321544158097545687492149284683882249623806235987298039351745521628507998621869383696932445731454754388571580545334559095347340089504037161757119895084937213270588748069965922236478778404880391844829711000362231138656527045667521258330692604432357488901764183896714052872106878367048163950611179208523707674477663800759334512703253849131785819111433459286109690299610105312530418321545098245421959707146722962014572636864769974505004492433296627387521245323070190872911046106504519545460538296015753483864635872463889660409451413744601205823597847687183524792458181440860457113125866510290303451215614305910171584795881508572089549583035209602736777878073980146855292770737220143441214016312747147234522356355535076627125782283304799477883034327304426776495029130766320472722628759903892222118225934109768140843041451173322845799369652252244965771469486303487793520691711214168289285060977703339788002499641281029956433341473621446184776077755640837658751412213118817989480140021203519414685754639039387285021062003317128300528206687211105293508746502269819105424832901425985944652020598392575590278827250420970220982042136344680358946024052070082471386367513308201061800661911793717948303382298028921401958945003423677345563108270900149181122460388332613383594800286999005438288695712475960387887980411843600751213045321461375903648298056233090497017223003034355023715389094602574287341156032937593863720928143082648505841868852042818790919326963747364312295828613108990898174899779888698029129059106345476907129662970033357231995614300167632059401849451357473156403307700034213101783168453407467191270353141789741355485999953557378961100645187109432076338073436281765991434967447486347902452554802956460023001514392111234128250436219185459662916383459792873536766865163681370753363749599288073761811740976840330039435939632555328678740267335570072230420796549095710729230854588321193606699417009272465182431021010513239837354060312086360462713483406350390323399584249592597625276697848921251974949806118721079651556017271081087922608030786229412808790565764458552348329080021434793661291361037821774828504686941092724747195160308417018446452322159099188654605119188978966518073737362649733428191868192399434574237750328141189532353719291928560298204260618404076449899870405550611815027815350486111188440081518530849332425784192483175824177651919979615315703757459178877340464446438692338698211621454167476940201762358792076831747498623755455762286609581104540565703205528070149151459604035911613273661797726243885164742765976618291040298081474941719198012629721504832936731808132655103955070621377866398055998556019966059917369432443772161038328440239658705024818811162235530163375543268871374384866971400605467491964484659808805648114308956259819917495201516563261983093712911036963418920412359879499456253166127703066300497470447199271634217105216773466525869130491836078900781493107633858015189091168120387937267974688394941918498542803644990065357392791304969356845246851515429954348615174250454908667523300452363343162483079733342593942077555156116682152491049920488139058032201823621494319798437296180565119749120394612210347152937167989337809239893796832892590183304825298600622607622457731534189818877297356151053704251739509104439215284199661977993925754594170974982940731399755467316988583666197776949656696270638663513108714021131111199637009301984116761832551989265759451099225167346228343692357567612352662857915248446620528290363687520717492311906131467499119043175371377063608543252467560787986625243253362987729568857899611406372715151362534246887495533548443348478213218806525624442479458868627653503261307688112395684496525956302698620069063609865866969897204189693135530820184424806769652934099563012503880695688431515885994330949367196320539634114402345090598100968612423550950803621786980036426613954850927384588549140703848735234430871720600328945899505536596591682434612521671181676721222807066460134387521537825022680967319793749011799433348611266592927534323745738172393405402785461670451562939280282425489626387340870425034153923519539347793525682814302080700048738109271819015781252816516291124588142337606128551160141249979614230585151626952360478725436202674378343031156788211415229651271090744416529918024612571181993163509960232503928145905008997025765911464821604434914650498525571256367781895325564391703992912300233175448771175179980258083295686884351702259543489703282267319855398272004426019416723401810654634087616912170625157114870895075612413541723858900398605598229754837202720359109728514983719619350290167851462700435905289151648244881612620921492035214390681332284754602490487896601229809386061548478414230854291637713980224996855099664253707601748082386750243604458317371739329060190376469165896873048474771158657927218551462315403521081007463615567334461811802658891289115137719898479802797474860445535859079700584294523301911500759873365605374877931577115966131072885084699650470693868903587056482344193785140689708984298715106221076342902858932172111519270764571667567893426361994804065337251185960172404386600259221066299392134060519020050426514721993117379163329347740611791070535589779418011318878986121714015961466044287151902008629247425837094261067124654463352568134779701521945734750847571612672806159809660197351766122799996339195652069353073456881767278586318363813865461311735756621169267030160490283401047797843601708136952582447521938049740177959052591885815966858872185514106587182401359026576967471315830481039980573631535299084969931141749049533867018315994564433233490147165272409978442185959957174065930383431686238689308260922461732270112730964813106146401754937938883846351337306728936028364204472366414678278459636915397800962187034210312433244177019452469869494336564525046728327241739502293702268188650470853452610110328320836480547010116994570874305257321745303022583350595350272157255593562999333021424429049965278091758612424616812137418282062020985601415222203722265738095777120158971790736424198007692670993646152866983606598485903012337745003582135682616329281272561038592820290824044877761938081574828639715464982375590975650760168605401097337696028358359843518493537308133278129799734782347752216916254268939142565464818807034828718208974358522561292914862328711379333614039358818936640529884507586775915682270800231161070131715975577889774372339380374828242785182452778596752366734356367396194435029284874763407245891230233432427470862607554374658392540794098556459770801405393768517222906520329040584398710104910926208730317488835253776892848011935787088689830413161843531567297367482256021067439607466001353433355826531435653876973555444622642576769219504894366697063162969819430623802059806233337381827585135673239304915807686149815045869233656649866792466139878386269826332155345462988705907104913665027051193039442857116093575873308649492723840806266332878190356447924461003641110696375122508691724945444874452310660606225560944535022044340965773491062051706875689658827333971506179867557638840905620637843905353671220174234164967781842504807234511368637852349171806668206210700692603895210738563546167915900640059938410463543600563751214326243802730643691391442670860707184601462904738014436551562286930609828410888060511883104067056567291430710163415198287284446536763665553017545876572347248236077052171973237998715759878583383795700391595773048561104255157732365301165867529084558768783565359056389318254946150270128406373364807984109418456717972872883684936682394359742155000629146739800661537266013069001000652521377581965240260531591461568869132616676738952518505081478127281193224821062626285760772131350291149120941226232533274949101764969889038911081066059493318688462404296121993975368317446168203726229678488795894185057086123609552475339210640335439833053238855055033752681258951286260265947766342627691457034486400608196638353246193318253333510206861188929017183465746399713749665429723066652934710250824468659670094267213075828999562252142708243820956673901216927784681623977029221012731287495944437914052758590165748649850130701210360073272645190008698101354589594750176861764623150209842794934539464739507501477779931593379612549524287385058940431773105977254809508992028891335298523748740650879507768537967010306300292332299349191919050651656598514596813435988236291487754879651353067055450212695145294402658695087179357638603142247128231382763798154514021827091855683663836749819161134861138455607275051567697865616793738259196573636838290313812041163792485108271894605109360160507445669595585549504477675174497774992886982661302075708283682271384794646228144496350379326756785108870634372044847679426210010321395773860449001910941347757235725912573287315698634505055608179166275577532302549254754737595792863991530892975403997822183020922407358874347989616532826407531812431533472367444832305304879345098698117446901117824755823061336185198438658403277173113486179296084783881055109596849973662893673757160179154135672676132779042722364460267953005093982088039567152680678861057172671168496694204484630745435529362797505710214381722520019641127025717349066517491650550279848663481092831986035882596618059321454762935627874536948071621129341989231452134593120191959816736450787442022429512617150123682100327798026922683545793307273063659712260999577016720689998108336103249560522265104775169644702475988472836676615605059680744876022993904071623051147605852990689636580255573460468816622227272336305755666685810666301773822428023798570654027320934224211406604611630084628622468559098634583966543436635644185413137759337538267437659083972737429652754708261897257328833346061743237478177509802042200737528322428479096100258754488509590471789228204809842219544765435449346614257151696356633053859734994355252931465466038841232098418904083801664697038326077014911526554076130366710798045901465061505380725278381869570069065231717400108190109150741782583851160941268321381990297360037078166601111127432855732378141785735014332156545094984277739006801946688238671075777146644911102304507890546974058886943456682550363854338724333436952186107654265363837816077028068959259562343603399917060605397214544164206834872226928629379368253092969548575160291194276296335287551958413117264520731365400603854640535976560244440443787545073618909143416449960758956119880900997972239361769050426470654662342056276351065505382290673173071594189500947260100979032392742909047062159841249184738073804722268308463784177897016654811269244578250782515652453449458640063139620061715038333723601595175914874226764774607570991768548265246565012508513568041441535087263283472144766921944445170347892766040800872578253917266267402274814122216769387829460158331715920521813032997271268920286802354982292923153533555252745636060150012343340600638344830155478658442715068393474608114601858266641606605808168267649996809675755121471781033808406909884493105001208218900775245020895631706846290281503509670008946602049448706554889233565336260805946944092743743611309139996798000120292077754881427961849043676295738007160166829502714860918311125302656429194522946779345349360507650905353601590281625862254909860979752659952312958038928351488983871516219896532813054082635547005275131502401564346394978128430136186662242963316259090896512374181681189706481536168827807657453335729555195616880503159742221516410280471126317200986610684728072301961283313750540589379541712471645451372670480504278323841720931925675075844050864438917297446604764068348481422812760589609057396111435019310595211805514215710588505597742511149120189480714041912624357449029975351139094952468816466445757394950543597440743038331738288195250933257333393882357163298588994295263175663323831075162952252215506749831346440485264139442118786719793541663136805625961833568842323847454366448744834007955297073289008526266123140693659828818980841067198331004785538552634081686741680807978569816413517637830938509145950288729597517592002654664987148838183589207127462921837066928888906087895074536564475872595302964016920480717270552157111112418621398474121958048451443621648692629031100356525792124871963756389583956622956635170573496842948190800521873867713557853394880887322235811172163200236485042130572188740686719737001691124797648020852921292935323099683339503669130653118085862271410221736943240919094081969444151387626734557299248417066807220452592786529318519807030921983544992375138461033240746663004442247025672123228258434615978596587258297765779204145374566434551643030980142309626279080910317364869918459234176827473167778450052245000185512135428861534537686204340907793028307098952647124277062049760797958992565363912988563855866970112864282881721027864815774961201329837994097410673866273031090488270061627200449690063415368386250229788019423668258730542876614511741684428944609655162629163347861939845149466880771167880953405210008891463595999314384805143066493157198995154941468910430154177773158656157513962489976488519086810297714807822620453207560019794980680796613041425273071024493222173440319598203815542906368745542057438087724456965497760342096144054927248740645479393602585158074685320217460741191771632520275171191405132029609188144806846410002815448109722757251914189766648678612443399031560509041053390936556010222574357051388413330563209220205211096350813294309517099032947109288581527198143459988235213699557262362484334421860700134381734783902634518769420486925380738361924636014671797170585867430670827606237552220550298323575044640624371938907310724277202765470391383949788894198581490525689020511283309651891924304632665925289414047406662542418716904919037586507547988009327183266498218606513816022628461858814632614811298986915088749921034979082826860161435861324965332666327884957484549459613322734095071297927049875896017418443239794580584416820932558944431189876687827461281472467830325054294971254968443222269994204529213545909805019093788850939541749498083669359809781888559990695162490678719977605409090320028084234064328722557282972804912068709554313507219704543077038237282350527842405071498519503661272747692850569639281847984185510294607956155508351603417034195795677124149394886040079700309981880727154892339461096486869602378519895700181413224856020835411734510089632678536383916513311262656546053288255654148916791582131936200256248546688664940618595025730861702516980640278465295655817748172332076440808738187456231094452496415336935041668652124028043325619610939854576941545456131491851294187561107085951414880968352953718572764194387334518904681706992786793034981780129766235202469185927083502891377515205319920207041423016976769116732919213175238925562011287925633401373860630101622656201476654197185747172087687465973292542343983077338744380928821678005848329722938103512351988677295296244243655158465943468075260103842735193882347035833930189925811682493198530009946723311560958900424470485286078005219789903146151412966708386159461742326748120806973610255278996181023445315000419686862005367276993150855035451701399674260016811534034157961848294566660027461299304138186685243960857605843597501812137019747641018824395231235525749639786317931292606848557088174875685910203560230514658051905376964435757273115483921457554254282775196210942023644534231605265482153625931026506716521155841296183819568558211329967241972795460406133716588084897707749717771904239479192779289482323209697112018131809462909107948251726255893533841182227516641925796494500367347577253368326300417805723532456851589416001740458685870633010330321748520848336043200037466301922659002374305071773913233300204144471519638906094487311537012046440850084582052031072162736742366501499567130828533266140137804623750086171106647920333619281966088393400148723963968418255964681861307051303068005880378017176589999608536306284064611461562010665518946387614021910117791315524464764261799151045218718269551519162703816881347751631143915633347493198212626834923663098897823508742347919488497167655402442659078506995957070429198908068284499412771029063096488999908751361489949487253684953927905224935438149023363242696474371996796051593111692779525229501198921341073002610262468405287549335312585201882276749134072616524780497320812637002351149729786844732191410736341707259386087722869857470478950145940544385649890444925251664129883616678477024372758274405837710581172102465743104688195905127057206161288590159416992213091242148599700771761666179167031509599123247853827050825570788498532050028590906858263347384761799198694493584202737984010089776721666872786034813036374253142615404119317727533487647192814411083407603190682371150343164886719035949035810406197856916469869158857283088778856014739983371915360680995528850026166274399797924283100825815235852361899416483340451400017040109785314924161645215244429965665684436793366516160719811958807577564145097717716591977516195146705713369104887627422395234328980534241313728941168290354962173600308506856300353939496923192572058924621827811023156431345491117624613669100183325962871137193450442475983817518432166162863414212180203050026762842842926189947482429636880448302285701753296379021981238605932362273965063242459180568663723053622225157193132701237575226794660766568461848509879278254075038413003666570135699892794594370036218818573647221389161568571665131682278965107018765457744369836014006550389845442874658212322535156821130397478943172865456738627600906751219116800770623825093076871876240865553723790473966131586343365681057588035760548014764841965803464111778995742774520547101513262837068613954833758554571658461706411178731281512442097547369162552062454695991441445027644309220032902550511899859810240015816418361781750412073606564105258191412677101065319870994298197691937239975384341304715866459194616506555000373468340215997522820098042746624777434087616186834089077035780974950606818344427708680448428844707670182058102004875913283246123081502340053590813105093842859207917024299940615197706067610248765403156323859070239814283860010561472153244361223965270956753579116429161397543258796087924033301173504022147199658457562075754320180651329103471348259210102034350573915228337353518762254422639392799778743180250133664990773225347572816497659718306833047213418904755356884514848861223455296267389846395883209365358238286918047663242001935155476508834065501761142504693000488007103959279030446360392552855616143557609891898763221443194827177829796607418351184654937359535822254771963456029179543745483110977466647180335192392830457037712406728211362779907119955984268511464837267878650384884416590250874251155769685984496777383615881436454124141467276564205548114007712390216000759896433684493024853375859122111051455670193803038967398181618288375659392789612386347007157541618268450481683719395273968777688855498738466410157948130120009502575226644539986426735956245472162805769583394542055129471798386982431133866236411865419148626669707996394383027611233582831367318951950280756525893056359961726424219285110220929279175200229902718839526913296930785783333329225240725803730396911491751012544881714392444805402333069323346697389243915819375387584162508141470912680764250061484849470928502054014361213014322565960593133124223789451610696260807185514044753906336904347346787192287037526165816530327005203651412872056486633286372360560267818154270579807518927519489370869925708923628729521719145672853925627918284458452412553060086042355418633034811997458029385976247995334928240086374192750680335785640871468396684366714377787624794298578513973672033402658931613068376326008361060094061467152717158227759971566392611928227099486135330143211913932644441136178055498073493740392249317854484168065453304220185203821954838082637330382597905712491759973733959928481684118698823264588967288198216155354852851561661762728220041320709156064169098237309009163462354478724950524356048841749043873333382270868294428672168591619370673623366663520698917722252958407830465039284685781378805130357794065433080180043631807378882882567841972235536328145341744279609086988232156229647472012343799114075510442310914242419596402116240645676179218556414580708316956484439812670904518429867875279142289662122502256023964295505643073311825166174629557511670018088428100654464895946275043881752721491340733341038349603746723757024625810869043536673115494709893123490457417953682630291530087678014486753356726765711682256168610893875880213642475954346922695802410401759990482931674794414842577815848547031661389848393035314165474761920757822127591188960233131232016441730231202743650763995279759796743979334793196916566238547116388231456212701453964033885387827605486870329063342199810766086915438070795563784845794592318758285834753671243408335371027198656502088175263728551572741856176973428428435804034110016134041278718277030895120809014790271740638850649676765346858451155153761966305935914180118162885608738852245034386966059127591932094720743045217293564155291865944648174341748738056832117525815516070327113839752932846657364469444983220976906486200934519418719800740077938524636007779804909463285601626385176325860094029067255672101917086016542699424112476379878804723966144847069585625570332610772292233284047308510370557247483724968773006355835212497067821060135748927664378852489630628080367208148674188793921638009303005844928011854415401181227125321819121408836847125643432544588940131977055371534428746285180277867310969751750953409172784432194709372901082967616912562151876959680177893636434528809814382734153923078542371482825216275574845027661081110934430880454563999135064017894890934896310060712272243673741220995165475099347452507393091381939468435727509783892722581131398414529322187693817792438687156746950678391820481953059816287873966800539218393218811931419450158011563774794710576495967890529950018575808982956112716647374323554683056346328917496020118283985956531293044692448358426691103203161690348010829046046027121979083977670490042561212052104361844073541756975852580454380247970337632882311351450685101564385012222469897167622814648714157584433471164834991756528725569347298990601343394208081994851112778012006859550145963779768914094751229422840314234869798874437852488205104424329402967308068396318750544249040731447751571839091825695189034839384665051746817348227142050926724259263675180175590171403381678394523920871410738146036510838562491681471667832357018261762064806205112247284561423812178617753567139761295114070233772786181789207922273590310905692596533803352780160708901927063100721971704431468712156778534502127999709987229589444525752345218536956711663946135219957926038825797263848883816659439958585852876801323537767680825142130283424323780274608218378825667524087860534020518900852357192027652486195572103146821517913083853087150206975222428746988515281434806344789123408991908292741071283173588785122600468132327184735759933793333230234002278182785474894093581176321985808896431711167075882685616488438571173799827990431443072766082499284514002491193180185986623297222793532270475109221063612665141939062683823040363418661743400421831216931462451467259109614378293772177431729523095172507661964508096810220529796656626204961780263906849917716167646669132592219564601144834625057269175328241201134921233486149092340004483870357231182687425668581650644963500334999852718900896900908494457539179415327318686084978344277555915912099741622002761317595850375630309497130233512203175026372486943894026203664493328149090934633201317375280266250299276337861731687823719411439001492140096801485365447550338154119186175614902109639467091610810686762990418967076561193847585054627664649341652140970055966577222555691188173157646621642411333312814593019966446906119819747584053499584969537263341244475531880732737269028721611743430253649292678010640260890835762135899546496510886251818182364397944973458446100230510788030515741795727292219180310965507695246014504125881959617440125745863402430586327221781096327859715948780846381515012271429341761268382237272378578343964522287786354247131099567371389201039796103406247223559967210837733408349115999348511819114156631021003056053663704726747134228647442856606859717774914723982191552425139372770324279277930978360809520248918230874657890630888905772995993561311273706254129197789461234972449398855167797393082557588155518802957549333182627241733863686973674139915867358081781396542136473550239138512099593264222956384042309970063969951618894431598717424602019349819230359801361816262581240588001601924085422791677000704313982986253491735200142073601926582844507760220158256898982485552787336133917928159972930168169304712437816466841775017169771713495687808084441568471092464715981428839026097078637201340788011880577813642462587603748821538974545975240954831851338549562967315268470536704531850251442530834580979949945034673317346911786886232508244791668948816074080111299150691919325678176811144493871357242466368676502038573711210213655136747010810357930338051784493087601735264700326024732600541301989372900188670443096117241729209684954106162487452901744919977958712063079858270666845511483406503522954441386603599949589865163907423956842924448450731076457372905691288624440126622640306337862568248006317477598542331960195503412630539812991369776737736007311914636486917764145742353926824728745044925404630194339838019577562094578743258426053790591987384240754549798419347913545910551791561118619917507724514878865953314372047502455784137277860096827822051667167194299827602705467551448327393264046307483861873209160485956134223365235967485558234256737092561279716737651637171819509704442775264377545368262537341288280948243566241089372459087143316966940899479921157675791643925273702745226392899414675388599269697223526675848173714275404930252229503979789109665679768255072830813440556163733421705312101334623536352895944222489125349437422288807772127170812417986454184970282780092701838257896076178937476456614902751231875569757551156552480675961165992390353448597098867599603489825995316935696950878336084583761047889972331046002538518914667752536368082677380597106958665654730801445746408187161731189326963789952543745282741472823614642558136270976920006674640365042548411608750122232098100401671792124531803845332246677139629298760653308580152447778270073208252835558819382352591752962183853497768700249222336322763593813157549026766856331318165588550160708710181924718072775457062797499711223950767337575025425084006796685632446189028655577913007278073023566121163797561343631379254362165133983087002490304639143426243133788131504877003082340090293752293455338610165599734919729653361950135653458684563361270025628008853679111058675767884069093540161071287598455682513407078653604669504746065510374261021500317441213313633657237797052812136367673719946914141757566544569624884693018874157726130061627915209533164869749745361840359005049376834400959131891973436372007649216105120791800311079814358759742043350847095245290986801209759892499088006224973202456037530812949844310663941497900657328905951818253655312571917758685509324678625277807897068015067479856910408261172396196804736667780484956560955159638817745151690983623490136033975619555809857536654492496877480645840173260166908520059481416160557210251881050441219573963252722130099214398335757735331653068798259376865650414397523959075290936372708396877317044702198991740697618738938984136459094301993577072585794636241413599361965003520143044548655202762243490731809567407708184568796361384828435456160721149061140058976950054125390341647905461883767088955995749560899849006966298030126324400080949282106353472087529046018049300498652865018539117721782637007098404930535238009346451451189236085216911836153450770241445531286510601014435784626093887435085755728514495898112047870653078848916188004055765326697451052912325414276322060046662371788561435603776111966579877010042259888105737137248272554861250354781531331077057960864502920254228921482282492295784989811097511075708689336130303390644887202375600858807785537585580501112894108737253514537706380899064890317217358871412779205515670135438524347709972560558901000587987105589378367775528750411181941647383443611511589946354991141383068663002349861435956361255478710628774269091596328821819006378936733528895492423441461915852643350397575053960106906420119086154426006193624554671186686983367885592336602448484006721230670171172388098267811294822258564053995368388671610042448528674772021944661163633771454510610345899047144069511864856596719914091560614295692599624926126593425369504268641679191382700213768230179740469445931529825554395109144382584136033031935973574354314549589403685412213535784768955286119844875928093146969511726377184976040644513931389889053977007162331470800180894951654790140011250826378860748425207262209899714273727251174212730788397430303574658190446693495052265511200899212165889088802607062352779082909682533003243316736404472745801648315873057536735767158534887364936588568467265043918618847553729200831393319356559007703706034877980353853545231182465426064885600179942526158122561749989702288755401922747011870637719119153997601012898327415995990207769433217463638126053815695245612511163487964370154159111813161500502783705359156376849196360333112051140402456100964747079946852356039513957037871861520963281417538122173542033536891874124116400244892058853399916591279376436355849771239557527839128504340599869260763072732234130179628446171580767735173747124110637865631301823204023787989866921076317146090591453897422021181326637891070894684162047826906522964894919131704228891510747854196054361867973692869966617403019756024752049329057936038146047291203840123289025672832637618682655363989070568733048852558291438184628913015999232691199315070659941502816389083263864265610117565805170016189143575265675178677821632134720743483399888725414329084817569009530521572997465312916437952377197424106456688951501524062820619304395219755098596932907378664250665515721060249943580142480535948760861184068503588590298885332481954087925129262944000436579806925614235146015223366534030144213855777365723264446940347713397980166452378885411261639448097606619013235624215853169744387734932275582927678295192589628082494077240500712381774279628159048651018420611494158427539713332518755949417769733964413079201200934469330080518160741640171641633290608436547080002975375035267194235248876264383602505343018478726295574533216165579146951051792150069933895026597330151338464200034097216173018396058662267346433667473563736242374192951361766853207362849972812361716542714331692071874569243820809446316896056027587960759156953451652179872426292716725812785816917869593418665128377288171616458710150373782937435292615185403707639275966190921964564249433987778168326362172029755437486517739765802012000677527510635932447762208052727443199705578808334668129935764259630571161791973178744944828711161967328696822639880532284985976017862790234691321231903488418321745365627463384891596177158881878660770482366843874325909346462063934891295661169292852459286260414542801085345770239996958395549886731849210728094919548030846247808973706626730491924519801922244565053490619557088801926948571485303132853485889055592439777032215290584140790370789140194248145101196619590216291885320709454740423748346615081367117734717018504517598423952830143252428380944640844116573289895378687965551476022186371496340841334817976196312283953098597193970997109192558299379230563663178412087972310254965913878985584961085330415156963050431183517944526265399956965450796857120846562205797540963587954279971398872935340135818281082024303491790778156264879065052844021255656590552561689300397571837929493211826747334531362718930478745619372311964654775670168053836597281399887926176155382241839252318838952610838773662236239556856987199606962952310826613641750897645637748491521954655529259747391075038005451258359605204130415940696287231874288585992177800617994421475667708891111759221654647898500755839105888533747657940930167323312853478556487901413055688735337831865437935111589255694242641687249198050659333010273920644861562067288683979742333394387245098087361866237355053597778895574394145887814412667840473362508505299731817735643979524147706519530938008568909904811793861426504248105013858411801314705898565807725059286394833008747863920044669835733489840509596928501898445783419639691187121014441476859060713048348801398960219065656326430274731078092878451430375086832393377194185540880568748063928297991057979992148812264402454478974463846767929291425206609101518070316841751756456069760243868655262126484681370749796782557149674082246004549091151366486978974840484965091847658218111331822270786638345060076431904345605998073441053926397994302696417362417065504087218681084232286217355466788191321939299054852727454368194981004566372652702258545687132828450340064359693490213538936701137919505449562113065391284873770759999523036743656066787335319800690405420395691135460594828250773751755154740017847417994148130311915203131136163164742356513377552704125057563702220676385287060294192959921369131779068289249410304147795430091768596853085139693828268361196175107004878585506562889751341440009054409791883566857514185260531099189081144613167337619350379504962513872655043035018466890812875632911891976578380873112666936740891092464591109961205010629347798300348160713853331707759054288402117677412914629661604964542549952252323727076680184493954695127889571074533455345022769732114000797842570333663741289718974046325344848261124281071252148094084674837857348057164301026711085789594595206087986464171848131344230069034282724744953358887837446712958023152458781335096883351508471378521695947059197828571361253626217740185830145729583076023821341565701979524005852940478986325875659002809422731527860883569518046228439009075771071645908716211729646400311627325134296629469829514891667445123250953892268470271671021803693661607144004288343015120974505192601795510704976895080287817428362036780271895920815766814229109878083647829823426126241293980110477422939618532030639645054982092628696277972663215016582486254869066978765277326148433604868400477563163591831444900787317518850539543035851871794057888573569570981441582659784671440577250058289993911785404394898812328035570630168069781044046546009885352969865586034457155755403371738958916513884352997065380340458969316028601537445705268934735745762161149113420779399060032849624643631608461097026806107264071488752221936552576985479063532848146942167209923901396243165934766405785145693340500735884697328543094520076168049068576933912614604856455890864040556594735210262832776536681547730478723812935519291655123191916351853008796213301991377672524216603709808963487715722433156218364462667992593735575124644666739725884232892679623524982235789958776612795501562783049124621584925791829238884879620759824670036137375991800962031163191290743593766843262684767791616736686688148159566248047198528812263601470427111352872930514415310063224426520196526457468590861145585475936752990985777828664401423394206683391347269181386988129147135282515253390080550275868035824975921173692215454658897344583969177596897339672482042035083363591931962705550940792860057602316806862773616859002796774093194707470786409278138995177691417296928406397597933664346490184422395421558466530127240137788586075481315562743567157070880225295937506298521818861503617237759681162377760231929029239271093920787068219638535591008797920206391003218576202301739501385271715011634006204461899284610538725639072314271411656554205737162384275686960024524466198046538265418642376329324797499322109729652588383774800921184273797796039651209427709599500081468206780108031024722485582968824296271708830349705760265894018349749228262130539513457757336509315870290466984331783476636590919258914838533027026700164444151588059750719720544708306712808763242704824487417140459393073236064143903601229560443050329728949905920146753317552564135316741488158738254850846928763429679582989654000097316600163745551715216285768583612626697123614507022587886062492273915058163909558566953939648874370506059811909278099632979049240396977648184805734128802182420779464973624606581338871260431169885075054781989266682312988995250034107915120747977945983968654202222971083521645243783284269118060494841619556638699183736740234024979583451364737768868376762885810620117928152455468129485116087653827379173419038963312286453026141524518065052314336262730504230177878862831381463761971011547885587900778981408027593107904697134408416070376540736902786305062553150455913547987703719698548409881992432553813372583832697095511309065753174066890122110461156389046318036464528921766587448246659879449973571773133261722121368998498558294992729081263699511696697417900593918388135086966311642477169697622020243184584201945540304630892493295026846423599624335823699667502354903433858778916371475883787850817693262896487534681750096254986199736951663790943306943232530415109544866293209418803948506402597465774260522787380334409313878097255882546356836831389206457829604989159935816822582517703639592885447222503215855230392309377075504711050539205334614126821667288718499003826141652844222674880753854393227919039901032397671932335113957038062048462367156833638042624337969036586516137825049448541219817371404225202230496170046341835307076291419785024068378991172049855663187984493712726609608256681145474103699031762676649470557608899281354832724619982283518291543800226639882459103536859771319946624951432727858732721572231710251030137506107131944601850911711066305676759776551129268857817079707615976373412570411016121101000326344831199886197596616611962026833815112701262500174069309464281686537117482989803007248176138409168364899851834548206519961263900008398353830732367688197493604385307424624779578267935536700096830905998597496277620126761101318702343512633703970392708865928947132859567506251428137826931876648954897422653281851938713724670360892447770180755088436600335503930853148764672783973796222363569542353727875451155151056721720415058158422026498936543833210844928368807281408016424796113436682733668555692055137173467022405292779960334460686005475269122689992854024899428226409988007337735992359767700831868419538221942838313536524310532841428340371476738737258094942871416138576698363788834350604462842633552134060455537314845631419749592153077791093236393268309298366837807798015847014803453498243000175436081706068169142203541819432117948860871152059222226563570940001856639354463709232297656441775140719214651845346540249746120475135088538702268905738816922548090893585493932787233116412534002428860112788392731643343995098983916768315328237116909898178632364590202323825100945993570839239851400997355866302983528203162675431018383321041332483218816084572360800841592177650382382947011649190997231846541844751076976094609217722349016898581579015160248967340613660913445234913057121513772613015733690844372307214710969078511957490759319993003262398431018876410046119315128392701423079475097831113059662512217462845376759123309246160881453431672073072987194054002973459282457985481409908780223159272736510715906086983338383132047193631409745479257715055021516653664388998318096815438761517218617158750545712810194836715683707966442085239945203692360119838263288714144705706714151853986352155880348452867208430505693616334312099920878014708033641065342915682138381350009567881053832719856700559637661315424062844880509213675787297467500138111649549392845455086758561514474493690937683710640733434575341870559210455963133553373575946736651787230246597272065021484095885674317198531034433265358714151097677040519133566256846832888898740799999121822217314489808408711602162709139131907473970092802041091829100741058845105612903611756557000256007790450932151608541265295911312545855854508688278874414777328371386185600429895412802316567314556000455285038181778714443641111426478562763775979839024337050568543971105462091968319690630062585238582016728887989795717595216553995341377772581741764195144665496230596929588123162613842838977481825383140706783711721101345786706139743597803054645859453210165563898460714300634994849682028534189023749368544481976783564972052772558661278951743571034550348825659866106883638243091289965310662546515428098591578233966646593745847492166442138328197080712013773808628146903746519582494101266091000055300311016600505742522112791602203540659035885531297158340518909962561994166304204579078095048518146664027376697220634249435819386074514968907681471318162338960128565938016156257737656749519253955011477041474857513564553229192180225585503972027807758639063941691936725589949124923181263478879239482095160974306195436898892018702295245265050444581895899285111295706750653866343432226796027235383326626480917243124679840853011634036716772868607216265818693765877196947165355578678776379562920488754210669729357073950271846187097898053458506656696434103417387292235848505157612924597836437187615245427738916111249748460379610394979379329774581485122643904360267979799053395838137606943501074674976722928528974391384350220710605553749658791483321466974744249808143277721968409255067019035621976378906237681718255792049558893616539627892825027971201277288710203171977094014975239000121905071355346716508807315634918516471924140791285920636171905595829843460291238872451964307141162128271576368582047951225073726435688703627088543424370785806168510382561956191604439109994991734156641307356182796224757924358490837328935377848093314320335728416405166570267131103697717793131239922632228699060791890328896911588684720514638203391177250837758730613879262076468539837897779183142566456106624766142845627706188867939327266736974404799588803557368016133496948270557749743911915405653313048524775410299367919099013490218327491015273249565986941123451440416470578138938927074319719717953728664944984476491976067770645766880688547979659425544297865263644841104794415024587401413043174448704014076431770055831820322206263951247612074764275873246665984930188754037652624297482090683176194382065129974308580809560129334836578824075250065505058719289762893538349982071888872352350195704271554730487650051456414187593494393422136297421304384251215636282832336583601613750183799236738660795379571754809698675793150714650687205638887069389693344122056354224067732150953230093420344382059219011166253461771041694631647790941317939271911074314664515910539309086289325498100753292184693830590019898404175415730828220321429439232645270752020075163791097772282466323049214237053641445865509976693186253769800119407485794358574950430130829809614625868317227914174768060999029050723806443161435759143862968853112944132824895274050997817418648555875200041630494635473627288415155470139601494715387929451956243260394971794437607891698955543919928575487071892182392318790385720760369683559827100092889495008772107443295847149419755544074524288265001372960614887799619332619663075600261404064306089410699813219177687216291801333321227334794750452005424799455476783271179289755971700858952607791331840098506566641945692669182498672454945125287526218804958045314566999781725848753859265996160268040101072196102314446981039798231358785560810602758276837366690213457472926280436352922523707646193921804937577290115045048533118220792976064001094488613539719627123951753099799446732755764694448678470484161066329110038491786840724434046481106623510993368011711991491844803215753811617433875532993159546193478077410044168348013019750977256927454154913974349391619876265981242256644001459638967463801329885727693009598846596961698754219618137032676121484111462132334787481559156218480354836408550345484290863491419720266310844785185794988238611606561602683196675745600397466669712759989916521215723190130984684342956175427125749153345451149441174752885319607595591620746692984331500666953858460065997451411894602651204165766321827400411213456844789199491173466297871877507283662836001440661668350287831114712757761676630135539647966915841369125858917407548684996566604372200183440232240986071614147983613870914396257647003603157567330378720513795516742513705870995131726821591554964116445488370584151016204939411238730620871516680660037947113117076801273965626110119082801229988729786690357607888364242032614247251733144446188119684326155376036738394237037334675662445357282498882892369540933589967280626979884421995819096711662300999864849003553778827068058915007370946100517418758457127383255247830149161117208673753953102462666060715673837852950620821081920553559874244620444455314554018962756393765595497365362288813638205398065082245419006009314808277550917554694674507828064037142866475215565783761563545523637854865659523231221497243130134564112390800008925552368516614637631905302537184940051675408360099148696568419391367953440489967593444123811976214995888025463841738187213083704851161478551492984930307262659434688434371323532997094426860408575950221858134645978338127169001217089243063583020849776526864951635120172457487387065844765265936844558658142088345552808882392271463628063831689768093662295988873614763234173741599316641669892998236194268449231182886960389468280452623528930852542138889098280391070905549688418752115179861309725730320481169389349179249377596327448381670572218876246092121879661644684324166747736632252686285386355515260769049232476284730205296131418022161962548690043388128955833318340801235642349330766822002789184280784826835458925739695532968402339153553020682203014972475535266076158593943179059211667600841589289276441204728905756623252174955034311649145007975534172629115533930384719165514179433041971524377848639384814257423190489654407748392805637839623298923419609583723334566354145698874153914868186011439580858975662039182141082606276143385849783520956092371238381594477627452626011374131020995941955816162809800508857484285947572243543298066430163798763552525195454470193365074609866733811052594228063437540767865202230328314768980128902577323841676248570827724576643195083131809300114488354668538068091598585506212048192736087537766334566570219373880152062365197664883697477621305907863908045546043489566113120587199817262109855790188458206796325182218132979414113435022614676356112318543854601625473479525141447468635933639043171314801440171719806664733125989805137121727175511752966948432918861190449930506121695540592673611708847636589579820671730146519252789482536908653099455740363178170152948216782240248753413932555739842893465206651087463769992831732806970094403105167872273756367537971519233141429881999956194834927955093178714082528093344119978584516736169183474510258626418144151835204483505802484597201983329735663570298180427578631977526169445908754365917448804625862074253301712642830028221746192928408646039237673448351663847423596657530023154979603758540163701506750652253416684681493738505987402943157078029227443132698987749251780953839144121124843064812232999360834578903086450947074227763710862482449541753864207750454622160727501070081382387109027802093338815515008504048489917648980369219498588554143783052664942312921448631208103931711154430807570233602778907793826904217459920619558877438556943102503135346624178194302414096120548645240427835673434182975385432059813424358444122104473878569473245176161946929589871780177291900653080479808094906543853650081282536271705476171936756178341132077054612596916241011105316986699770545946842862777924702300537875624775153810733867347209074327133014510361922573953519820646367439004515590851361521243308705750355529959193074377460993290590396538971048102930296548987210473667379600220910697138056940857388511344382855058140581986662083046831698985534028593429638952507476934846643844685838495296744875493350722705520072775685487335345992898782116144589046813968295087625409687378509804217455932037334720884784710352445561090552040255786271020447074482236543471846429479876898320455016995796113437496345894106999913780678172815321628483265810921293765935886190784773235697904232243213214227266036050469621819966466272371550069517346416162750342703021653921387043160181647081823257911952186155414191460913399967559493104021577536564781372866015228702496165786964680709587672577458916684244839267363966547237596111502441887720649835019525638304205192227721016153901989607065940547951354658510599499355019266980776116418720192105645571009706807593519895027329381232473427164466282784594091312605192185839597580778426475209534063334998631031722139215332464594819257902136713778652581727379196916457208961292541496385121839764871870819889196789087389160742385110888739335521381700872555049419581989821938345279311905384979003629134099475816852898908110195659508749612724827659401553566029885340912275669123428823982275536469854966691034967773261999052551318525177343331394466911706564857081562673630038823497279490542541049430464526429037684990634681542891904268646256709556055132586587125273564644338050747023059644132628704086804426373553763582218450341614432361937076087109743085838400884366916791630836302889597093309146188256169832324403161763405743293589142648146016299068648110381851592094041551017646002199262980508900188158772448979233594915376770394747804584155379923353508501423196684974435145936369728467674069321366639138325880329510392738266001562650961082572952686569629787481911822785153912126875067950721669025675104984330379750413317772136416600077095037166403731616577842478479069256501579900454720654590826116790175317221401402387638684450334091591803313305906511634748125524332262982275518447252888791611465862554065930419502935385365694764971420418100080369091073815812539480464626226680536744677545226979145143920449291071132212629334880253239575515877103207235040365519913425587374716199039251085569787975068878087669476102149052839114894445099663741506042989586698760642978632054523364732409784643625020882596169810918307830097955307950475553070998668321274488230150612028754603151720791083033454794741453420178973969333126172341224494139088230503544343318231436401516468598877093394207787732600435546726015539446523782094954093210197773657145493460452283892177113253198496201600063547395512536969983096080946159145111674014304031437024300147950050486048140406813074252746892981120295879039655732176029673390793767367972031142753044242078360636318163969920439621225754556735910989274853165493139741839445116658083153070028547673382414786725521989292172216018016436215957629372153069039719425388429924903906970821941437767785928028857933390863600291137853790547816190286505969859240365495688674832054931460778229128171605554462489167105503713428280837906953916167150372257600044573271169687604248046149345827281746121072338076671956931121795926477856410677674662526779258224670155981653475418858875457934989093366093798700100262837290367043408086242104925884000621831841154419375973367007419019512503843575123086890281341024541552938884585297706794185653220784010378599998823043508012242838259071555281497861024538025515160837166864631077960136306356348909159018337895030233673490625537427238233801103361380023543548287109587122122652757699864563384819096748897962770884338250712900301669922937196301465746494358684626243166797513635605140803329711422850501374797620275706254843963379777280119858611071862717843333693589066810178482131867103887389558974251747614128497789088796858783426963556216681793157066123780507778876798328673474912000645475697320171146696770040592756767171888271939830577567327686829697641796333469449954750668703863931408893286271561869127662459817973876438516977440425367930432099111221743693199616570188947443104377376184868765029401956530776637252968154966778906584521941206700112318970371106209383929608688160972148206823159658321440319354780980883305925531909258184663611278603586965103023356428172338511371399371483157060762237665217670675708640418766688257958275247968123606206929306782283767034860025338512938962632909467475611847990282883326610588864580260536371606558814902898014200797768794684776601918166317532173334674844225782779498665810895794908018065165081393198423254160129240363773228579687178213227579363612304499115831251306675687601647048202911308027702217564024474744008316473185411851267071474712517579407055922488515435117481573873350560747174440629354594990939817206331566376725106220253668788917463865246346772004715849304843242155717914312016754450331120553793433152696781356364245626844884174293722368394340130584941513764842409741210271658282781368765950780727398819113785794648837832911248983235736455756634439768255116926939372169318531058278527202369869950138900595491295643023411338228909124641319428413603332066540369940228365150529489036005929987060588874312651353287614960099019961137833693087065217959981495667962395811687699234186393729177998364437981533723662688130423808260064978938052020721723230974424966521093496294557795550379897714558888010348056360742306268780862452329737374560748288540419315434095040454066251563640870935373663590041834493415584409432895169696414717972208359889484539066705203496771758224233559567376393116833510621481834479949967226077793043237042932501333474773359886181220069625321439404705959307566439850147197775504598344930648518393302793098575122435185174673376362166353956028739943112845053727342023068651830164426202816331315186331328569446176552838688551768156136175556883569269596252279073877901844889772120712024848831251938560687979518764286254095141623796205837711146310388609962423774121372365356927900755693829338320078617067630149458221656316020854576388647160160131016105887646026180852690054164839803722352999486275928470292122334286046443863218277794571276276347719600765758430997305801340297719690678524099947937999489371234523325760773240207234215178121128435349590111982726666521710205108099004605364978883590183075543870523882229931224602455671089701673252080324970306462839683147241671253863947715275464397877955376020642224003829545653026177060217960805828127483820655654435745214160315803515653830885856391131695639391640359927601628679093394427996862433895167408549386228053256495685631287307674944268226429449216146766160378543235764555559092569261764464495215935328555776979653209375455782052313565886882551285259154454402797612004404409946599754906576155920018528949591805710020600781771086591079273707065956401210781004579577235748916840557119332584286198165397389178529413813735663362073612566651004797157257830111494112481061612072560972100851652890757867640327960343265524854324731389279710514854835215099868827803339913342995010087190479805498864610229075757894162623115953752633120992502108191983389460117366552475266516203049092214651039493698598114481469292933763463619316717607413275987914454104817459522088804671585851692562228397759678555737572230323809895284307016522763512604979189428920031659490526869129660657786107003919249451421743802274148382455962746646126430895416642792734799656777265996071995596988199002019710748043816676475618230139183352032649073645022706627985737444426795652962416427078095348836965862601882829142624032967191363426727159338944270757241852184246995806248170140462074163459547576940686442781055120552194237510760227893823940505630223680491033028109876148600764675917992799548751091717203630219166652082937013049040510031388987694931786808267418573757955155900765610268676942359856028101275747907305505365564155518929300325626190342513709003019932714621098470292245392533289513200739034269594303641368656463411752938943129062317770521336272486025376140495528250616230366802238913409264127968463128269495527303707830030931709185538347335694888278486641185942648615431765917834469692410655527557024250451613458203877372800983120893157456453393557554696650458580814683004286870925054279744332581991182008352301770921015380657561038325196144573304569457283884055519639038563245680425427309225230338673748096245531725906255654144770089136761258010776249189922035011322405827917515947395318829990102529820604452724936726731175320410957173476719165889698987851889550321128230642007170109585243830765372310558567137104685807147426603226115275319511010904263899338143242044699656540944154702559742407945088854401967118069425238493559049725737464563320919462037195497153351821322246793253107993801336591684293418297323169519389355799333905245163180563780629598336920209490636862731775014638336940479372500412532975115802758613604389020437075615413502592425434714087711343230747124098207871011337392794930471138552328207019997999365736903641140328558149714233766355160441974967164287137596821799661026899322430480590499880188524776492613020451107051343665317592799874773421783244510304705873224452552794596954078747320357459194303561203067179750266861831079151739451747402406800371941855329293369339307295027888726244932988906274510694226797110692796297579101126758565985329613999971080249041161235648889250220347328757395513799476009895095040860612518765407383747342566202522198915568556458175786282506562446224575663824895839865210963919380858297014358984254623851539828800402412933670478276989687467507528718573470053841037936242520649693677393819212297616882447096871726515624540784727038236772109013519029761921043671150212542233662905864459364175029886091802182004475974927602520465132904346356846219095465088505847689408989326744383888152965288082043225049312434705510328493050271725205626400737406488969273550820601542640531272009261262839512405789428767662947258149918913172302892144150951569032971612997608685973540965922080644121408171994082472455658964538451405979452010444152337025959650961207756796033428597039225909557794721497876173667038877538812406042203822586459763834741448284646154529248666272072819093364120218507476430037572849130996310802757197730898145595106238921066470766338261583688737429358919849057590089516666267367192627301538308168884464988090885113159054788776281347450570016836767108160702629345409572915945587810456349656235066483425755823378375795363615181761669688470788958601498896792309337068570921041409821698445952833154547672035168166925719703644011251893068058827717735226887096818375765588685626681905292852830397088059385648919638963041912810364094077993998566109864094189223592028130922905614319941016533959532480625921605888712848876819345161086381164392693294836135417149197995296373788010583087909159117452207681349048581965963682274519657473981408150533261996849945632174282954025760018576451178410894013433746493315313459872868846108805863885580376678109842511433105475758888761981120033366164886178501778273004072222283313319309633191941327095788666879781147996886929154987138779076197990630221593048624824787900519266408692260321741121023410025910620394417760053808603315193594542626258772827867838790286413740331939053566366639305937885526797239929977009728847722595269159247488335087843595396508644821258195137344255130329366397140817960107396425552007872988176206854869649451191064141826250600856212931914833807112846966969959488818324177349550344581364910660606755494491735286881904980321712473492686740406886790111282480831552837588451335798333068295890851094552416613462986288131181139114543053425718775000577868029284356808591632810127665195962808528480611103738181587420241676143623533591019821821259806124776711034637770548506270456589577833123757596418691172739020038943803552508688759580653664990696741565301568461297129490730243006504337289106480092566039828734261110712761499196830369708223860737778757450126488277971910490464661295476453792270213985703649676843277199101778123755558753332096925358664730251489932918911080596596651362970223345960485436948535540536179060600951541747045568559201099247065887297670826722011061244222393707429846251096405712340877543209092041645916101105176177026885930519881343434074404913733075229278496133176496623698608018082291787493938677025566502875684999970044759472873639974605284686991134008700507821164034929028167251855956261547236595822988429518084587351020954053213231952064024691807832427476101675718938020844051260665350384889676202508393318171803570165850205619763344390719173773997634871962928027052071040719293119335561134483778893945074134602994781858641872019588265601524020553928098804550619564850276139752487165612793648801569013005693767433359872622506081545421832691001359832412702650885786895962435431722139093953900172077015728043254382465992442111598343111366825486339242522948699245084234433230772916610474947331285931170660525777925119966428774950124867814419872078162010270844614119711626827053907682981665636342462011481526617139589645156545362899266558231380908774755883502012387302172658785222424488150728869353450791086884976071337535661718331389144381971451589788496967370211039991413407245599386807628618356450210601668733266537481792272217795313534049513679202240052923720662659505565934330113128893742856005036306875693901262996633317725278752022121949583866613415726997369018280085453482233608760713418321516501771974891109698279554353720651784847027227076182627335240325253872049941152488147475782741209791610227932430075549494515883529953157671356211000079367209291268626561590884292610789585179044854096944799811277960073551247142017592577780932306598367235205284713562095723637139199054941857646334299586012641943524243626789281183719566535906479117443322606088887231867157924890051903164170151501110474587425248550885339095230705424730778565820711754890653300640399589963065743141595470068474776483047540442137871803019281995929520489938961452024236523321423516200978142727176937507103874810215857183874156825637009488026001947835544551720722923531593197510618783774703253300290266749131824633313753944076726580236751377473266263415306808755135631309057107024689576825992351531702753938928612833115578402493108500771338665897191157378662227214082046178343428284661877449092962092123935143116379341160689190290400063880865583079056945248769998828007362038545333261550932331781592984382420416863537461529113479588424327735128713178864632956437693945703989380124553915693432197675199782914468054827863268197223213589990877036599120787855808802727221648710245385728486522429002738988001086641867416258238126429139003803070770501604478589495012913308299750374351928024071626969601252501785082815658305394528632844006142295851790944059518051217037405880791079701780876892549996861282343474128609107240427115126518354224912278754033999630802784635246342340956409795591960364579945393871368586019105296605668688726434952358325679763040640096861354584826366729932457580761733793189449962030899077373473703028627608898171233448114202320380105625439780961241109251292930277618955758299009946677415578434089202570496870586002047112140647594427767590431675211032897292478344030342591394989088656276925196194487337028446174926468842192831630283462295130111488421867798153664890856399451349829542377596287838333879562774962940825762997252417957039911760416091449759594524041633260941498300163006553923634480376785280346722565709637211075403032750619537624160677956339643296161727648477623513095304060123013003705749188756634520079976316992682984849349694169241847661305398603380302163207968800353670820919552871681663092384297146823441241321556255619156780670497550384232793744800759228863551028107647024479889416117866958038433622001762894667296986791519401012717998406008197157020937873756842303371560785184807982794410672487197991291479619011365887905385858129771545419638828056366816389013361217346750149047513169267270745976110596897188382737904775755221391902807413597645670723664117236182272536614374371028338714875651048522011902915232779786467121500996227013775093120476730687534617371840565252559760944023734268434459044112179175997165276124891985016109660543628768821345570567387074123929014941614887978105883400695978175135412275735657730348002430144802254963665176230248309220550259150570826155839927771933248149073261419774801757149375858077537026069508704090046402575810741366673705079220464286763436195445285109068307853939332505722715378010348351814521017661331928392104970174824272461825205326090887133573311526982447385627331590386120620390650461062455394075755522904395547426639260817828055054881081351916809650601596843639189742932432972900110339211987536442546637392638047418159502641472530678889232810383881850705386633452879367537224647573237786072545686728891846321697317860176173799570560077317880131414194083418953528614560897252547021686849504925015317351738814095498911095237048213729315093957804970462942203348514366986737658794704910049660649494200561795590117634841432571312756789249488857010373315824979774495558098180422143967948179067919883122306035127495124240402010779669630805942538798295423680651341350124836760230287238210715467301855482190979327036416921272255858042683686545143191000432965375736863106472047053463334886641304814186518674458310908584710770293448477897661966541280367034472471944465160298581619939102414547767677671898415332730407071907850280802240913921920202215875811559288221182032448400188425073714835994843362730739829787499446025126391352594819183808740055174439312322940781965783944902863690786694654048895009362268098942170341629192433630023787701193570990910567300074060929960146663872700062576468073077135112281910131616324122874363242995087053758422503703001028700712235053125130514586437573798957506844263924592470089833625098535326504473735269237747064297401675101865272057244551610659880675111144222378461943072569805012879799086321510581259210379861923393328094752232231911455963624073713161253408048107241174094677615703080995872469846561394332556917816643455775022529718739948921405261675547630233043182625529076416205245276662987591295295687785381356100264312855425385723556071838011022617513603338174893377113630574306425570939899326536830476183438810899001262572122324042327886340961540596278782783252173043028919745745641982938216420295419438735955427954803884913998826967459389181317829789990557647446456575516836613323837846099347984494885553446212489782704792391070614848703719466290774688466339558640338794785397281610223267836609278295753651418974135868084449614248209020216003976963919447797589187069538151809608755286126138081837196057489432145552816765343505027972365827193146274128347804452438764887381087203344999831684311280269950732202602268579337099421504229140174607977817928047449129342068089566693928676243069434651417861295426820169644766662972035621329416891520159784866281912571735652968189142690164348594540285664966752103571606252466363892606400398566139444976319564811004781097756044736631241510457252401729045049745419802526285208432698600209485836339259633186513438847967364314812543960295203622038832003878516458432622845059194798800693251298822701701364868019159923986686552746747691289355224726225667085800048546922418934472541949606891755122073744309964063816316763461083660534677855789832084907675472126528594254797021781549512744074658447218686770435211667201653955989322867193878972835572585480939966052391290056724012609425317402753136257483427630748202440619055949284058465246368899461284665939537276517925515155603602292681278384871616410091126640426743082522848208891082505656819832291306198391229182685585070828051120282198333422856715992973424651298201023407511668179335849312884096696731224644394683011036508424468178690734163074728425223445331193760342656803990655368731687258438419552579412705043192873134991820435855783435031134560111675621975847297127806058789108752507356061733739301061886383048246538900288779390163683114298122926529471220990092085674292866976961265548272168659670815724799280627739280295737506970671254960486155656815786516293206343159366609261164993903090557451967592198836400393748572334176463032440591532023280741335473184433006539272211288101603133313825249550405253523443503866642441302737848552458614436823128279211978200066122078779046291392571500207202540237381828214238884252581921001011456271842355178294066669729480024254920045936969920830100374189880510740977456091465764165153092620490244670263741191824742617133532350678061707553265624228765613334560641580750571233491909122918076019836390199201729645435609993653922108654530434033606540729977475595856835303262898934145096437933418952956328504896264958955028847696035596578985329696732707895232787788030729616921626732709187852576710539781784564647530316476152104768209084535887247842387259251164270127728711128387228103456363092094428344262413198919179004236236628693985254389775147155457825310242168537579373458286860545184207792579604909851855485872865873013144580339402323426926788843557205263675791781154441513529394272644819133035139839879820866204947321637446277148267948259832275644582740044159563194670254590154994605213862839699208805323816931948525909044641135427312229728030928024972898516633067071149577009714884291927780324931770147404491946950240431193473131128341350510512749837578609417075962997699018440810464000036645606318630375382128894697104214211538195754208826138559378424530869479222077925286281125564643404102272464624874927348096972941639341318673689157774279393084677212037705853083195507927555138122470435745455015416288141644243954599589533557329488016382908929526048269230650779832143254601295269315482928684528617838922374555945808839206586944819262307269138749706892099965577140743159621244449397295656257842243137143213124521138964458477610307202706573486740645797296292822120008206431321365364362751453167678988863154902589814545709030513076804941566300353261201137953540169077302085550346355490453189925894844239257468018372628045818419829217262326834705680332696236771546924806200504763670068416992217440748344140214043977969230857825739436909110373044253437855877197650257803634992322391802705447479204218073113761227496222543738728488691245330405390571933425259203287554568274726577192361501405300133518957438082020271783316237139187972337190877749854085068441220290417721399096214488298281313680221251863188359808839434114915964965622584663240202484230612200860561042559063825810986116479705441063833452577695528184199088017862642187774231704836326300276070845913841740096183865028674887329227544169777559598161881895483287205631811949002465017566958687759147509083333318216306812959592445799050334951265777858483143706079838745618806920816183878305599430053071326926864154603022429006646234983098590388432306246811951817485008966430315458832993861118390066756445633427552681753020389347811398689212506158337235793564788767432991783497714476583678406493569879519652366447048011434044641316379213794871449432386585566379222764350362340175027306528712378432478471060866750352228463148422436276549095298573125065807641633105074403789987596553033049343068169521581188567270277850939986099801605091918449413614726346649864914650146246876795588853436344089260227289585239229552064183054358799646410481858579231313273494979566285339845338642309545562660798526984737664577347894622040319708201842833604232466433806365017176024757648047402057112931791018807614595404281768641613820445810517752516098318548542254683834364361481579127017638548529283693580527472766549474397479911964628927311739484868941674119559985172573933361124797942253640203941889288475230551823005516594856241036486932997841800561308360739330489564254256105071390207467060674342733650425422935115014436368214514413737868211695809242188625085295065425529765790240639244340856943504317062912835835226991179687910505364113590773572652049625610001578316595587734710498685309080891930640205445543760389718238583678581511069246155896023079186969808137994820104577313738351671279873679821050163731159755627682721344705284775305603297158800818884682840707720519844681805936508313518535465302040134115776594077222245438413919580596135729941111740258431717330360916499692219340268620530713138436210679382450353585395931910495404666309540719331102641268432497068597154803931686404755007919605198095516026642128703613307365743943863302695750383270237768391953136826961136776350627457255623989086663564957099611763871453802492597187050966330324127971532865376999726445540031405551715839021930102725161268612218275728586688144654804003571122441223644244187502394389791461428612513662873777563759910691028664447458034727317746551309699918665205453477620306783242149598915696359489397778275034643503184982503668938447259036165293904956015316459022152217462309692084270158662401996640053857151918248391537028880150763436030329189337133425523416113013021597020010751528468172021406300635725180810173294964542972231086093720226347816387535779814790349825339865444601336711368996936391042652605004416427617240407492126751899755901884904904292546238762584622549290918791586722960464624605070650859839553221185497689263937399184301622318900188974478130433099619460286120324030488794016085355675855393385116984054554488065308953032747954645934132083816378842001725346955878866454992643886200791052190965706681814676030025265992469191414630188301601210200616411872306479780000799881586535842537319394858614074304529652443657641546191305484181425406713907016041513467299856259521248508673064721441289219997672634696473284243922466318649993620943886455797573072962591524728007792463289791968588823669547939521079479390093840772090061519022533477335134108373997977627832221557038502431688387946603546979500976338660916745223271630444803956561072829843299676386508599676270603168873725941595761136128619774466255595039001957274131956714195064719196781419488965443209277327680558971479494451581957232752288600295859742409791974847886196638908466017618066624476804401727349401527526819168821205518701888031406712214506836757202755096509760667075864004269114714243502139740270571344252203193766437087879017764628407192041492026598656835818797738899250767373260378402559034014007631685020184016199241265271432866224620465458122883660690777786500025701357917079429301083307002919883389421896501253287311664564346856941701487476269671414347317595858262414898281565935740116400480457703909817377448898370264748619357948411693904558116108333073990989104833388090285942588743088134802930880835003468559436320832494542036660351443076394682069039276119747892473380461266015985645153763227855630182242968482039557487596038682866804333966105793527102897438810627828361183604730528685252888366445091458941535315599187788482402627891180335261575057865717190593228182190501067841387424797355992585145101079521243686545870254362186743619456969684330879325775627633818128208071994607636663422391106069225171107239253711082582599034792224236251160369198885912724223847137065855110566093216206886952288865399282494626071082569109222739095745734563952629882621403730219844650862013757587309428272372380405323251429527238108017878593089664075715077323146428675030882680170024885230810871134668183086807857717705986347272061114058271524736070250381906724447019056153119934569986115136732561912667108558284155184363751516082599164863026723755819130489806772043268927986716134147829142298331497899315674154642996693842754118541553329600578617535652485471868042062484141454546872663814363310084798574505283104590657061442822106239237884205968208381260358643702579648028179764060378485362752140864659008957513866632142998277679322073232549829456543381694496329321886770433396792144635072780889579019027058470856493621802150316037102823626367853143815735242445448733624738734337667805073373712343810984995940382542623652241817289922081605340543854088744460915767023062722322960435085981577370385617383284412462408379325182389217681928412359395582859244742957878637916858977628219767730315372217620753461276704377886526907005626893237564881924172517075780541100066766691826001374744240217820358943923773883553961504534110693957676585699085112371709993086090190881882635603610346187786166382543785780129779440493167592163802311710832972719332440947050321745813541780586417170154067373967043260321019690186538436168040061101209052007170114009924107524831646096536749665222906353705904717162746330261164239075714394868625639955929494145885223973566883398280537331632368225708394154955215947962009956160110335366090691966477779754304148894989128794943937750406581546895171379465045136950570766634077765979687611331620198400477491465485249669513572684227446363637992957363340927856964672707381414753270818294125514323751032095093733987576477662915203998304865217863357137202901351622416646870544067754246473108968745759479890296549086696001454025973471206461460013234384385995484113505070316799126233995588305690372773814737648522611705328657621196163119703252288302982026002581563329949498058671423807640228383229803607993151203538897970143402665343651899660382915718146836945995267302517277534453685687306678494988779196818645189139645912826437048494751880394529713493671757315773238514900540968197659615222119184299397773224042761731502735874925219886797161873419646574780157282649345538172326937138081077201455012301374544431010093425763977339770927742264890948549382638530227636367193881522829913878223638148745244690201966611470635241931327396732938460126402633303100076494641216306796338833967529321937261022878287896440645573200490567403275958005762300149693413514975319152758745738105635894544403358013689285615069402684856003888022118837190514207102086193207687797717922625428125659192326093681703823513163944325857918270137180707457728039699887365687757836413287823174152850095482517621402121818122261166627058279291662630839274113606433898715704034193003334818404051453576031987533059925321002635314531479988821452033485006537558740312249080614954615264336918070804482368013022214504967876883737405543596210276208891522666812440064696082378245931369132604716986450470485648630960687228289657048055844151322106593617805163797742338771045931073681701173192548681687513064038059825767391114804913979952495004540021436113933954111850197745834370663572555449473869551246287135028213545749666833804014053086229561759580280429602320120878123556453933094641586960083580858185039954620489579780443741227518291089881062723927143700275175318890471776970833870041964325590432348577023774573090526814232052697638472387976477181409893858909498641708036001203714041703218858974383096650528068550699464318825995782105397493934497391706340815179600960203985389857909774481940132244525319642078405511208820682521545158835087836851067129095568982831739350164199809396977781399274501676057610879833902503245229436823115204812102212108627438557105888667130988728754340882647230892764631289161221959752567739133995156840502901799145677548432407444957293563332011719634743733594573492040218779816089164358969356692817848718146984745871772257779601801894222838178398496985140279039184566987730054428249041951240898186305799450565323853327480681001162890820050950243847575435592023335866642457719835508910246671209719984481934023930222601813024899285729287603533846216873993952985377058093700230441551227839882588504412933044548691286009654733259567946085933491099595717165955241138864623155767458156059514348339527324935127171532417545337190213748163149219578616833415695167018495567399407462435912200294303367980433420835096923179957094242386411051690978805216627825491157242056417027914897734452305750187788127534522476075717628677712921702469663086183261611918527472032975811160093877441783670046748398580241670186433086516921703201678178268575985028391885194801328459072728928196425513200620271511245417181133321117952119027331181863692915969801937765028533379277705474145574695332607741240477975718067143981002680100262614731296035368354466156878211206085873204328493996734655388658682106681008374426329865161375221839873057899818175876740722637179602857046919089675672695045528023863027860283583500924504070145981533150366203608040387598761114677902470505969415826698130594964418785453065554305446931015126705013786158566653762716313296716173605564605443127941793506628161075962167511068770995331263618926778474005918668073306912048787050768565499304261071296703411094797121048613578087461323823010968746266981485188059890951265213551040667561496155493796324405624792541806775939247780215358129397263474413485258697685031326039821507020532950456849247377287627828939445585614728485281442221681322704614139801870928150850002998297256194981638363840163376661317454482173985244890825325340345702697197555935755264633384787557231128172883900606452568029578534215395779922401939157610851354586991265006905190548761385362283721537857771353670162089264575587265636770853939456411945161320923576912010220139024419101062028828096529822712582517989867717625519397932843200150916427906789578121482850250622499911265488161221175888595820948133507078975777341937194010992527920151883942112226636105606823563637679789046027763738766964300945936040772191461930976343859008234248799645233475324364181814318943863742750575799567191313190223958120365546412689589949328852937760112015628828403576013582654566227527735680521827895613579318442764572537293492522230271872129028499175972155752803558260510292831250737085534501296619129181641050631061113000551233819608829121720128663035638275197109811432786449926440102912715608087598695132691110898198478841970778881936224526609044373751504762436258842336005003067715583610540497635305467126825472126291086308311046868621214243776981208175998285692752757397544218979014903954472002843698246632864367722468824177805764939183218421968784271878982851329018600430758510245989929345206167718293635938681171560748148319348329158289671792940243802857510536155873794790034460425527915743879867538795018271848820220666907739048561276637911176115792424412762629753421603383529636549247797306229719027262825167220263214729199952264584840920890900821554309688300218738908381863337650470022653864725902250819292890585767992037141461918141414538287352524245726946095853593207127435520087087914176858616096848173537294053697283157971715460971369968155022939949499050538857560319953947398743163397648814203808453628533824417390806512247357793795594426201972540010789479110360608582758280783541094825574719022587399507711135305120066662324859563132514819437332318999736492342145137033690634688525024339109293130419390153043495118187552704959982091204187066680899694115689431030644394524507268652881678592703168580850221675995120101815546086760535179664892613035258578215694792903697891928237038554161113050158108997811819190538131447220956261426077158466637430204929135195321356792747798309522316314175060492011166143766238857679829663635931173348012848285860166259753532526670786278428942397191849549807817726743784538137142660737138680654814182632079683998830476180563885527245539269523255991094597471517512267339160642854804330485208949438044704253130649618589097272869448201858350508720745934756940349775204521635839214224038416967646983159382127965877496807016379327075156020741282034329607337756345250329615149591880332592657738634492333654357658684359268153752430367311294591099981992867091781661927091030369206318687228699121440452730710126191302802589195483332741862572013617826743946987459478165030992268520344621886598244448967023140187627448819110748166177726108623192020696556294927686111002261722159743269544178074011926818402087800462248142958119246835392768508473350166456082242156475406701728901397408303671023498503315712739631471401385117588809725858837598182722437059047649575133407935092864933927516809485771285553038402066681212440880707011763976972765661260377614325258449352911033941854194110015684480334188792880000640941520211868884603774932084395094248663458388175276034828710106896316099717335371362950827437051876598782965946435233248902029118201348843410792492530551106948151768802183993087092753835809357755136086425111896789175934561617007723410791666389972503212235395282466645674591825760066204853197907499555826842652241222811931335604713422519847949485010024388417224718240916245774605872459353005196096492113416146346590840562709092158534685024379514548929441765248583479469993733580045021255181238728834999272229396981725173140391536038880924978386638494783924833992735681674666180753668521548149709653241476453059240778439838659419876793291717170725821067159606279394165239407568036743403301900840086853288457350997135901189376739946461403796442244897074891853289541509443660984658039762550046262135203507652496535239517674565527405421459395538126352129336025058887609924589025318976197092344320054193021692288487599068255740486281252939065235414367012309180322082489781531276542882010405875124332463839545870337955567558594170491255118521594745865315954573255353524320941571604621995307068170682884954716791639165776141775165142114961866937381769583880267170012978876973932794341616627886432622319342803049257807261168612252417830048550345846136516239045578918391748567821118714622877472281103217443379362173348866500562501894461097358620666608970963675320251334150369380063642740881765591488946215376393167212574176462790238498652784114158257943261982412606650526258406682995809395340018322146996710123922423230970142334224017283240827939226433156635515659094377956571778291257115591418538591217455423180155012415905062405256271134684725450585420690375989481409259920389824193368170035555959615396218262624232078568817886067222138002352621555180907139986816927610406894795190766119632062699564597171323365889711612029448199919891882545363206827581498698299027715020108584434306881719837802636849414568551123930859096543341436230885852056396935613823889733266911746196010479607279718480927677889033580061358916290312960300182352104631295020401598709966928660272736341097149906969583931467168575906512840957160243243208852135840710408768799335592294166603401324959383706705047668632629904458788243978473661008729096313066633851226291908879769204021422899010592092029485196392764831971470650590263302838636453348437923561301211806120128103376940136038243871257349383168798946553434710433189195720158459226068211545620787457480897653186692949858945887883561329195470381657957517264862634973433897168213375860194713050363868808444885320524466172365491562568562184308033256335929657547503012795822827800733024018021794102200684645147762847145550734609949075574156428624880660466591679886144136259787879792699872166469104439824410332193514287000123998752656452836086417194835768919911348589706150681080467636014747736832208997017005603519441910722321688968019361388352428179435953577025338630519545903114965995374431278762789233148118482792771708785502398545825989549297076993755270707421763841010650797911114309564471756138121036011224230391312849444767321415425830970465371082396989143813750509128937141220029983812524764993721096087177115189735990139474397475008302024959150126843900897068067473829024453825650749540610951993715460250938427664404099188630808538065801424029775956343519961609292834622176111500296789193414117216741025126277758346019821030216376651236909854109505307338166423941915803768208926614212774522292082802268785502005901472410957364010278595910752116365920431016402982077166202634432048658503188940104932582426793098915571125453308512005269646367612791261757414229571631324893286346489887792864217326617835926867556502918638779416877265940829140553168815495552243806939294725848114886184240905451313472235467400844318627278086060667526361779166620103239017888286510919241397286278788933462299552020700280385343336104513773795758163836715437396813783781134239834194221859017628407738446613157775515410888015754272589558209798671963260675845045157848848400517985035490944094711163254689665700718827929080078296831419080945365188361074704662507902055371179870416191868440020379342049711173200114197780688502166636507577306929690764545489625135006472483214964333018927406264576062145383299738325210029919555837936428935862749970506570375282477056508961645980248367564299457623651531113922774059072419049893898328766182141211095165535373069265673786036107696564562025595250795051170027477138014752876959603844161378579587291421711470650793161995553764319225082721507567022612719414447957590765089626481194886868876735931344703110609559170250281134297224123644635432552770286453749784447359321489829973222673766919535941147774009369233861282139002026889792851809309393108112622207431173929159085996839872491148724205457047681121433021302824256986627727961791066850418640904765244722198103354758990232121040587565757564203606253177727384243621492241740610278972823228869632954136283174477363495690410502489522443164462504971290701886695154130978185605272110985993452214673366046150537409057903060250100305369726273937188913220396974710261495221225174698159488507235675905862851456661996655971320773582898958016796660590221064152820936704430344676146932867416868350644698747169426383849057809700384497674096691532343518679924022800039433737095499881782545468211296438853613169728498791609650805992265181715010131868055825927635557223641887103475558959069161324342035886049282524417885182669211841964456917299755265106780442878394974886160093899746785441391178362753803205802851669046909394406385300677676221107507476994783142832606581820916028941121793767306303883671027525143773381155547889550068841978678809826898842130930743774147981004628292045148155016194447274349789644018361581293824376986987309835011652188921680869096661280962032748963101602165151650898473000215306517795986547194631436725428418894724588985079170899899652178851533715923601465707165081283445233869979078019071333871940671966340528469301579089910979293553974646478582717300945517979671920055078240169455901395063500689539475650236359280297343021518968551862576788458745838680803396153092070103994906963019615832986898180486208138240916513165104115315350666392600921210129432248525786665883327358615981946189528527235997750226032919011027296203159151419070756573310236341595851510725600046478543483590435899383193798060233504262641817581795299566985945247027119235411056567107298352037323911893593398619877293071395585428531178140306846386340357475349763913342958399323376571267263515296780710931513114350000234822003368935304565362925023896571357128647494679993346620739910768102481928007555514235313699061343409917231367516378158706940796801125235641982679089162885989411324750917399201024549883175798993217879523898450047128023092985064776961926245665021593672636058232523456099588497688742196508360490860080296116326962725949394946910564668223154202027520198836648741742057748984043465004823609572291891420537645054040534291945557220110536194105555951874938962078148477050879809584424522374107901169101595413478598012294929451703384102556800894011179337273495000823134485372723596868359764757220877879292478808505383332210299120533728342935361191661530040613266590451836592379341554009418112633257368629867746277618073246037571830890446941373438089810541228683906605910761556106069114574009165317362775232819879951705542673757356034773232702176425926893861360883219352730471578881543784192765639580606775857723133029692163525561110207010071087114511230464557632011630744672909220447839200589374021825231287325112657969920488750714692179255991259933781119814255999285024676921274140020112893082900142555658568207526836339614067705019384528884791413864484592708645430752659310585874985823055675402935868934949823972813047831746418773351539649318030878731825847107270981099013768354421963638511425049023599895525270526486460145498397972536018557987047154818607101501262467493585541676399734799241741354157764514016977003260783154326957611547861845623630511312041224910318671049144432594850779691271971598120052926203447352847869225076248430933948275345725763486106763808683169923380989395096353383514319648825989854021401268500362438865752952155905342829062450537231998906610965829915942031933643152168972426462912330982004781757077223923047537810250951838428766175956142665279671048360560773622342709608149860396485541605542580600822473091786511599577208913552716221508729429182366891447134900390076510774077656656139982241713929869516449697288775041049799856847197722650024132167388418363066715611180000757145601499460538897843024596584285270528779738968176390193556981200574470525294602127534208113210502669421061083944611183626954078086898716562634285515579759398107806091218715700939546402450638218809108302367498561989224539684476137689521404593955031496342983857255987842678934114409328165698835057224140326579650919807033875440850150622663379206975201402250089776789870390264747542889049105578958156570331934289321789653349458168368442198331219293768607492862125184533468240497545712105215657813046710267794852934574932535829193137894493497908668295759921932711498460762091473943109124178911851642258246034148881008572027650981586429643921515519634669126947859141580233031362201913726130108805253410452810787553963006781576810664429451736283533441922615321463766474017653855422121749499113525336130357067702577986643525301248817908826748981188812583928788053409698177399107787319297386635547892063821624578445637179419374793569893195723883790290083438191419505202153966302897941658244830412065284734717726647635327276641266494245362907969264509352704813058860906851637804608498301437865261945698871840409811174992727275584474386286131465423684524786582861112765448018215464909623216251555626949875836163542524577317093195409546486198410967275560634274084295773414181534975748779655227012022555283104802810120911305953944650374945098491663340436765641497344381901712975514606975469632936824800397930515126882007398303491577324827413506860741913884195631942231116076995740165829001236505758707542141587934162871219426848090014340778793046243460866364370037934722055984946329663345303151956789812214778249178505455151801773552974236869354217781264901788956865334381691996954367637720795510110909743980432114627239782735731890595141139353629941316312546664309172739854901139807914496042617922980421980455701526492203421652711067013011816022702699023633765748962379862736967799048389885845554744010349405404186695277530692432812019389347137917583572305176002944620833823827111408424821268794712599287007474877711322186772725638635971634147666149069114494467116522405011479758117606737212214508142693240339489390984713601648272011334391253981802671535355298973209276488702654741720935468569888101254744825447660030127759693231181474405950232176638713202654993893622977155464596836340374708725347749119003834520887985767250483973945719387459038498733393612420265588565325970251498536958849466411430874906203553743776776789236729236255973331732412816709620399420262745959914673887002177732122040651134139243413617749970275732822620571267683379764011298001892417971913222262368004484092154693427730568804017720527873130387637430332578718125222537377164409291375011434434850394797645050216471163252247521122046239149499948413667165035653469441843735179088096356846814166800180562237394790011414798046531599871824941063435706871624188099732888598568804869501219786729182939396040623286317209843869711876302651886838306106448934543722594046068601334928491234868259993011185102095300337977015155333315128048104993561082682650432363678964806151999248139172088223104713150336594686489329248809650636103974650935564921061952843059624576855021627599642759928234148368413928401286164851246132489226298750582322738557333097690412777304809983910265484645594287053205931090700381152434800350787751665705618969324655694652873419523470424207706000334258010877472136599927926597179890681201328093160431639674127999644096906722522857617400871082874966295490549203078884573976248155035473785784711073773278409719778528334067551874717807777237326896239746930278320700569822108868596460482191460914594508955699761623263630158311115346968845252163531537429785980429152699714228239283772813797712495825643816423175644367039916017734610887611220896156561177221133217204638555967708791217014177176816388016974731318100750503567598830429417048089528788679515108463694615547319398457007895238365940930268301815328911914881108379163329817242145752258961202519427230519928550796549606106132814082264729197942257670145205379517192786724652906455495040983369821557617147072977458756544738787150568139327715802157154910443169643135210340622774711342272257133822465419332683208146717516239911099870242771071391376518576072557688103262824617757191330619274108482018024836597223716265494740652547156828905095562186935856285621701554095977519680676722257312230568849067218544102343902627567390310421671010258000194751630833771126040688968057498688048806945884816224254394325373154009238670919584772315940842910896117544708529172367164152681705210206024568510396812315475671773211467733608786773795939866038865896027911827938648470505396472893721490140087845595742906543850690777289379893273892797037346519204524588034185502817520682513200240396862876405178481762872753824805358984059556239043713886686880686570561537198717024127723342538282707674314633312085387192149359644676394644332352530358102558437721348607529899284826215587824998210761067717807538562329520370135917369917025104016172574323267304222882944519752515199849214796967117989305137508900411771132395532193079392292654654847868932008944775205638800542397928486317257248216997335831690476652239239052243887767580298827407767371846900797058743511238867693664926972380175366267271743547970548041619516031978666532364754548485764599148000307053890325499467321155512138140508918139123624299667116243379089727637079755329291612405766484283204847774467719708291040778130714926652744839482728504828237329394184574382633199382546314408266520406662412642956898309824081606277600897287038255513019648765138658124192899863673823216968471058230575530175970784400777740159768970844242138329337110642988352285591641750323909604343299686326718609994642769975305474060551836119432921234633622297692203061125821998888934441840156211007809684283013975912902247919095588374312696570530195900463388400455327026920536094591566776154289180779555369579123162196899679937703756632767033462195127527619348395573192087724698913722888421488663083693635552937701642871813079772856216574984568860827247377798766453262367855609565255848905861426623792437974312529677385578376136778173586832966496708741178379092859437498211043184830175035100113487751661474952597299970284318920772168744840140962905766909947049076900769225870619053386402165333390621669180442146652617354702801646316385922323825143586013044514726031192728830459546073611786333300833270384313719235469493194258778646600095787725544407265534544920744253251573779117881124225768898061644659094506330342965847139692061631753688274470012065142963145313414967268629091252044289525369593257344410243866034559345406863208396589235221865480405960778866642077232702055305134077228234948913443580722410816788247652858135568367059638266322211155372164184106665350438125003559730859897561993838442328831398594053633396473361352276833493795099797511870310525606712820897040726393852405685071557070208661853978439333478887467750174701853187800992502818875216161253254772969975645942258245980786791665513128348048805425967507893611649100076273457759207283012937412153936530774573904810046533356541395513390182422189296554713736361145387600587440588623442109251853388107954880352766701203491846077672387997279877472218280366538330439415555506011131215037613206779746187072313356549056094038050392635601427275656978181166994185013321459706958253883237882915959667506904107327271523422965036844989327913011943996118460495562244231044508621053663612513068623361181756920869182553657061273735184640936548440723832914904911878083410432594410147459668773634053800151169686502536204871522033164008461452030361337862803738186902522137364619086766178323050300026011610983927145747364640790911829419348223317794297937747478750599827282813125213566067607428506727446519196451183154957179716410696392637873167010412213130633111187944194637027348630481491063894264446412412922663757420379057184275003253927446504353136370844053109392486954045441531418801103357551937211389474745919908702680341165327063104446666193708456947890538848689406152004948825036017874758460687846598699747879139880851574528981329841020075034219502674288545330468808926817263731309567293998844849850344472756038696992533787849125977339617509887337602119791586066578976066688150881660842091485897925177352134191689301711774619933512078958367641383387612651045618784683028394229844253929308213387897706647871758426744372844905909030540885360734370540050759456258136255560837388226134003200446967769480625545926269511419988485238322274265907566926127410120655437898117363051995042809667646358821314820486708296022076124368575152605494165240546903762739818978164770933096904721014248214877338632672367522632605183725237686286215061621840142403917598428257093819670571245120981676449633759209592893120071520134479246714341234754356969115438415939227002607077251866866352736581144141347904252999623395191640018886161636641185455084391671500296280177587050041724611816163385540316596228784776424074545685903753659564378443818546005416469819707050254010212559927133980536944860479435485679285700091456845425819141684248070586574160297801645177688596640240026608486308466809701390535948941181061080673330366678970634669950003062688441275116970165862238786104153729730866775557541412425403053272586880290688305612858649485843711922692042061107102366145538773305525239616868628171573034760283257388074219668154243010560003847421976369697535081927102266485634061526643566742019368223366614088140713209655151787263292320738432611193414699704318175886134994993742751928852182877647120439897787824042639631938106596223064404013163785759739934432293946829781870141369349067397066438630659622777730459417233123171766157578257254941976422598437623816776260141112208921291894259931488952086498705406540602544475379887482162776562085951371364401843642262734843880198835540314307323881770825642832041251866836170162638750477915570303717612416288050674615943240578494057965595490988129809856637672908480889286708644220535749929314510900965643138159943349997428418839177005820969188618753664486300570547193660207162967834866948880826454596644107026123640052643126000871771015230868343047990633822053572014852485022649966766612557617389887500658921200443896277281147834742162738882868786613178729861089762549070683290248126491453690848963717358048985287568816510656364578142206769901199677459261234094999352292146578933000505754700651812699138215259199489148513637913327730086472169988106578028969333460246168912931372811986465766154158072909333582085021599851777355301832337222498248384807771180280521264438261997918903836985291053324356391200737061846120877649610205925517711221202029741619552138752392485921082709523446976973507988184298543522420872758498897068405376477726448955595990005621759397248643443020366174201496088035444103389692668332639805698115604412618036244323476785584852786113749496864933402178852930397540111751576456573107128633373590827426113449702682692197581169469709628589426794992665490206434238889756824178051270828547249133024003486346346560067405242032531846323340670683266347790399226796780193439293687467967465127648692866956289009398832846327001013182957726808421591923621700461953862453938059268801501292225058908810517715272097558808340243563513425973254013868591630043775650868770005978780588531700498386413057110956975671650666704168397342805979799389636488687042037713401981995334953367749568241099197647111046616985192880047853239625789678238679902739301295384142790306325463154257184553704722475854075161611895756850855679348962181050176999640505015370653780002732753586804813569007154887499802989410057896527711024873141256426592125785407234411379462521612195481849970707489871329515050191359247799718829834770737787875424306999292479552107636716102228995545221235381732578607149184136590088751999642108571127678218343666591784380923903299237550926051519607158765648128534573957435669674780678032258830368620813249239860824544460075469598361109639987723992832489894209100730206628352620210193967012844408120279595501441730995846641728252761732337701575345140524090246601560881317366891334570583321844336394625715917982525945889287571834104316090630280108875283268322636438047949586794783500748484600616335363005740004746683324229735930806254303483443032707442143032661942220115730640599896896481434430762335305931327823771186211382530322277223705170400825628637569569055516963254213835634111946158504233504787638838408833644809869271646246761829014897425436226944577652625441799994818199950597843561848235504793940192309416310264477939760807918419510329621656516615474374171517611723125414852054579548031679857383187445505250560527336876647236379487003387487470868799327987714317308167971550041087176426124018482196004600887299443413064399862031355008779955876918758059346259873468945257514423716446771040149230742363964249051947567515720688262641453507788327721264285771715689137300584571232679800016938691273621461718381585664343007002008163036913445211467674775815338254749837194236751920702628123594514452857745728437870466645915434603878841379556764407631117994373696841217743196540259276520836863012730095836957287280943007758676454925702610932209787467509814127315892449948143868128578259679594349633008106752906900425901786924511354417663701158305454921173828384089348690320727182313419015658248586022922057870074171335670580017494273894205161345036008067410743484372359676688099796735854956654201753144942806119281887217849985125163643880669553399255904323010840439542902092763883561683928144678022902680288628640584360147505937606850687839355848195312998544587022207068472644195217922710088875029331656741512651346528268222741639822137930683159067832570989462818332934763686551986666917885064013286874297801377551599992585157181369319584693425152530702182747963599932670692746499694944276395996906808762056425573107247446701380709597401435966824201877155433709302689321930665302355344181363773107462185962432851385509661849645470048560322584444567332888448171089353516043999457827913120738490201384202331607418983975228278774564869133449603375867083207954881838142436068958914372507521595016605570231534640382345211565611440331516525492440149883428238368486451894709575902492992129255351393403734460223838151281409778828562335535167307928704276535652752118580337265396519365035341603937916121645604575493898608615110952948051315881109910549593433868072697000180212417938469856604925562085315148564708321062587189886465760187758313522911675148417258522802801100490016335298365110132645130714960345149923191922206606525819661635306610617481348151635533816431904966077384588902688117259939057995017076430477411894924341602705549738940247618348301828389118759745400821515974121657975914642076479637058425909776184683821833223498260990074728105247186227955321492675526867460657784703090690299191548929644772600482102572884218570708979246513842905064861370350549501448726550310374607803527058117221898190570537986403351597301596597867148332479763452249700429817075004027889415707779220450506612792461704895519901856986103021886434705777563532409576872608078183493107080973266457755239295575002333592426524762346020042037876450930307978978126202270898404851254484540222997581273559935773581504676469860721932360612476189233060547123078474950214540061176157768902784837746683228660832246621394532825509230613243244215102391684944337455041118280811371430891448934887842498756601954388067910235606212857236935242018406051596421433144534678585765561733268812451717842572399505601546852859311494231039466944271632044255143784212073529282821615104975868388478424631959120826430911312341797651671575074858056917258377804619296456579442782407528926777375672252100807474772366216065439762167140550400539884868706117249305596930109298214976110287745130013930273407610833167318354550960745406734406889532270517278984201239213217175180063490479517876832582317635846634389336907991571999054015090266638890300744989945197241435721809742616348367875469414584952444996094122413792899910362651087033615140041376465892036150331850931473715489511330152487505543803430310917557601910239929729649111062297586177558225605508440794503009684039361498798455865766056297995551508326835242879355379247030934714459041365949455948418298351236358022689919961310107912902767477519664960477767134006956103906730954965379706451737830526141643165776014394337234223170585123140222119807141989960820482272279343581109902800500087859834784224733288099573477002528365439833609004018610380592353977952564156965551231016363020358386215485961728370088812136712637232096716708646114889928746564937879942914063119930709522118357707278718486743299009171914377474034244458858991265973740942569295843135527671540638545158269775107356365067676499298605894574006765097135983526895938150303069108770211797076322605719426121736673220515352735276812366780747704661367270912278319059201980215253907805170794711342280599412989026265418275739568087241571608958215644561065535471654319333152542703882066235085492650190484108742635267425858913797359485015484530694379498852589612843925636136399687576229198275618684557817150101126299943077169265573607534268853690521282529210154077148420943049729332835701912629983975560842198066008796311443098405314218871062801585054893382245081552055813631734066248257827386743093004027356882114124737500156138930670631365441825320041454214803233350066482417760635216844549892302004642287827449193629507003701697193371102648395527657720626838181728231410147989872933167021248740698454449537778747845247396110198411948345581077590279931025581760196155971169512500321816950201996269344360725250201203832866057138009876173234166455535358821805706493976401090828004790073598129819578614197460296022290422516163570806790431889985867307447235156233105102171953370994636547120418996452493612425030125829983885564416743925034379979800356406116052553415776524608032178968466935171943216678963826492236330943442218759279951130955884259896938848631175934247328870106778502738109843985347677044260749714676620269327774956415460225758692589882562729969147536263115557658615215628792371446808219216841572390717120297044687378080600810645983026525747950883545064288779322539921374228429661540209201150024919593773164875040717602921866156996049573180154846132708140976700647918955329902774435406057350603529183241252132209544435632986374722194194162608910344264952929002898154349611452530128649097508448773439985574253810177162211058395254216915508589735857981884035590299973874066047759077128293288957770495112722399933607053230838227300039384752251917477969608369810358942565327311887635164734448023790040578276629510594133632752796895966071742566215980954821569401591748534308083338218598241681865023864939120348007189024883164890773021106833940156074549715834632454175953870560695946722156367827916636769237462818205374599082097331900592037568714981065578422212845554438868007025482002861743751168400314509143875094087467591235058824693306783339936864362539704143924964627649978897419057530876267321492194477394188003972600663256367368391946645761554854911802481239230382977893835018967292278395856272421745893635446385470894663151879788871939728278360330433660196099324433379526128289800325695449588996677181581542342786464366858588161369600953870385116996849505280814443135103954767958166198901429564567468552045949167393873209826558306285082885781915775240012185373119799052130133076788639891191271923588982570112783699500301860279348077848516235754520487130013356629798909042608964782233791087838151423813110900903502435793426111372729359273445754171527103276036494944324755812539005439598972981416858278202160574026417868876189669523437153140531543307128988521293728722438499235657274552367191322760878929875888256269385686001770168983462749780718093702942526885919720468084957345691266296667398161293729291409929437674586938057483632998989031746889425242111030314038927451007097468287848855657293472862325975256616496103728099633601388336693071500678407506408693881874282251209640809769869349845928353749615316079271536920356029677502992300337858961359914396268946262162310152121737221014201826356725956851117995238924890036069674345350827318108842367478325840254007872729217755874602188500265941289412245631508354315878370046079209771193499341583339480947310839485538884586211061972987553245309119319926645469487210353436487044612125778606206203410769119443890110945011186382850909602647644717504677611849453844311251705788763892354607311868412195706686295227588900606419295575199930397694824595182414894809287070083014307863944079670260933840272403129818405040121815586050985153253464265027162365066258649544446205451869181732125579406021735686493671565473498685102264061279832797137466151884042563342859209494962756896001317984955201470945497572447556443526945256580385690982721594185057705167349673398785934812535161694760135614906736114919124557147319208111009914961913417698791514816793134310495899284377410251017368502394193080499800060112602582734666620191084533341118281302164871998303994585925260259001749391562577675509049453127574509000453730771809799981695739384384244056350146259799274901268642516608857471386268551259525618738576368840671740217064396812584878847115635318841330360110651997918759529995813711293999256986182993038455109142961623862329707227514093513819546976731781041334362820145670768419750901998184086371728120961590702615278292391046877759637136022353948364821231036354619319717338921096547714733429629828842217348897479620970646044880696959858026913303644639841240759932644768412091870420819023071872954545904569886230466753949575930274947090271769437489079042906313711083579036634699479459513611163067604377501152329184138502198214962366082705345614134006305847200025312146615123325813615328107647699833014397776319209743206598319157414990466242375029265955935433254308499937166832755769317643541507466821845550298726710133908344014160251838546721551999860493475512411169235953288918716408702451103316938540953487423371307511021648480823511724430673878334646683969033403431043909867695175949342537894352825676523605146155681221599234860624032026708198990082318110708093306044114946075629754421153453198886533284436042337010442917923507051009274316635863026240223290549404381928051446311643989667085493822836194632206921693902199844614253090655124867613567027728996047880764257137697377545054671279767404729240503956576848931720623712966950609491598337806506646444937121410719329357964380066384612963210036423596146550174052906790335759847608488128156283298688679964456619601096758862735570396002254985865267730251557582999328790509663314488112669425473904566677336234359249942389345191882899069506932822239399217268908515515352535057313782726112803481472717227559863923433247960289457646745022819561031997131638546066448716067952165618230356723706568906106600112365672047801516428119865183144269355704040533915867726566387672351297883386604412767607083223917678282673048201559003350705144195473232757589312005965477847424081420296647650715413417933521376911910223464561162316462709706686441244043726934553370631499950615314842382595934752454680531973658604994161210661886937000832353971717792426057932667703347888868352122962885898282426388354757072614221177314788045290713645347314229255705781798248145609387198617306311354813633965453060355462546022811094274537279093666206231650354109904376660165232417343958840894801624145765308121463355530482825983236262309869653694368133677743351223429813349382133661802683725892786754186810099631346614269948551438484821043653717200357319317622833653349568437298693576714078726752277560148338034752203944666052692809443744078282256852970884264348600488315123553842701331070719911099066067733294982424486018071877361344613774935281525985045067045062581221471877760078715023352724450056990359864683482139214793599163521792902406013242225680938906149560787906140005403591522519223381578048997266716208573621919347216778954709409449698929944458883312498517329507226960676044948342980922171839214678668701539381715908109825705033639688163793029130726225936508687313460839773349648863243764492527282027242386398471596637686031003965810629822262155552236821063666299335627158361012125124593941542118556065371866060444524403196266566636440110872097965480209564820532641040020164376567439139529232163149032465061984999669479108579740282023461637310168233141869760775056607986750115176366618950046517843890076274895040303111735002539965457388592234375344052242530628345905628140225304594468931594399148650429031250728758472096320624804040605213969153093612887806498289878272386020848133257060549276070109133878744437156101884534396591876985897983509141841160053212087992224113352043074743945800454670926773568395727079179503264851574692324364334306672897854908522332851197041384848359156243656857718461344051067902372848769495283614940405152953960609013162557573926758970926971225671586907694655377714579157946418532757071889131621421500493790163505125377429778039538299053263745511276774077598454961484934813935067376685884491895080840405798551724500119010919179771673996732047181417794359106614911620645775833368328191042391590039080912516322513367338187416033898709581559619284280395636826005555699821321034071666155848706646861644611895477772403929460591859765369139261229543931953902337225827813516722381409943742347700335800200752923511379647455909652029919867224980990955816045383055957236641622617016774638861209924542760133169849736253411932891685330301100519873602015466541587900788875386054562528075203959559300345528792794690403312910169776855334873734100782043662876776689907752404272707623731958469074678128309069794193869707570560559161312233642078072309078817282922977494553289179198062023441807653464661982328825080288945563786550407286148159837882500925959205682296466262172693847183873880748502802036930666446611431057618336212420199727673288396325760671225577983568090325548389889232522130405807772836572368798085271021495591902189955477765194754939725464692392171415974915113570097336540746232109013451697378077612242814245826909596170364204248090964616361711728984259847463148763332111710461980756429471763852821084607732606358292260626995218248412530056554000573115300249703614303084207811826194256223388226023225867057530218329586749262817957451208747519081532111230801972579585128503119379027168389378566156293798309792740506552337881492077436739333840260439527185935273633166939819546363563306850928972500682285178074986705014221084904941352291858373969283018656553076634097853479906136433740864229676138531146820553349203956663500712111835170662020030321910820585999766294693271463132608831055661390328959238275805052662068627988594386976294679354220595857031072797605307002205354510793053458703601173541112264816349514417062326812271100812851915665470591088638408355412790570051116953360080045140153461109592131972404251095894728846853213091665355334960130327686280370641645642048946543908394061742188125140304751102671918503129248503989533867007497025866636054904042992953962574681315540105376279773610803715408218707284125676750417143846920066207259649547151824071841425820973063163363239123407861431465078901404509759102622414803007306055358202602979146258256395957372897310130502827021253625957452328737976002735234742638478201058641870877893015322888613043157550022637321261316387649205990084061236842760757186396029940140212502876776423846012317302048730652024583639133041627106455680372205668255435997583397847613188332934590077548015606486732114738062203345527367900710512349052898514464691823160194195153612213908902569964865092739737062909501467506740316650346307088956755875279725449672970197729772808014297454418929129639212994621992046125763590932437546910813305148876512412256020812246693223048143984017584176955984916040480772907083484641283024053812022629519750756276203596543149698142037971554779961048832477219358290816895910710122458779903761516328846988260901685437918115455875438530095221081546275776081899397304661747910438428201989076173490521520359107332298221750098935409802720379875614001313447732288789449995753745286229829940872841313179705011827095683444152868278821716170561586300923703761285518652710002112093503309179830041617013107979848713657688147919193714477404446238091507765533184039992714480647377872792944363521587300359684990280287686027349476632911404419134596993619756650083430888171750617679494443518510300310808718507704998665196077034911771916492273706240008539134142570070235154482359558705618824566848637402690271377381461660152727055325288453366034078644214131985822051914620873733124994342803104074510525394806976111176667597637506837004199290045208815884300901508210146516009633532228481016227717067503906542380630959906134832932721246735946582891567344817229201449441777652078526786523605552385283261754826006306945535725824190257941948805234881231726864877754354437925033055426330778312601129965325005412094618740999696314312010295321228298679865118172491486116855378747484205814868919360609849549544070205686432869997985741875456825563668521390646167585761669946888268284458744003956026399685814224125874151629146604513542354225791533300018527957226071357363279777913323928172672782748101731027395698516037067542462468633064933150821974347454479050221056431527890129472011056662713836763265850906332440651720734460096767210020972820170449349205106076804732403138248271834932971539538859982458316277524137973913728440955393917882971769511605275377065575844644118163482824384413367987590077521858471490500413082528523707737077423193787049603422169795316956704157551684692440369593565927102083319255478362970759313425444239025532199380431014789044081139557365249626864560191301860733842627484752624833828092683999754062456649736525159981717729025394609865655796632247082557320271675163655638286477000883280227841026494986958197422887427447209661015660305957297287076243719598070004690385725735125444510454883343248253663747405517827123935704070537261354614933688975843421602918273557614364658763422790117151097329672773880512519095788846228613313577153927188791441380159001969509959169541013233161645688624447330561444792746761617082711002685793797152972078375165410197991034516882804493540580224511780354931698959603511185491445601954392762939751982716799869222117235677850858150605321542930166821202463216527131718203170064045396587913292374493718349972688876600022156162498584338007926852242263620556571760216828093856535963025073953154708692948241643629424574714082936260587767716620615779354393339181974931477476991182126361614332115007555612684817347580202501436079789081042232072971596790066837517901647960930503187793813594228051704504436970689981634370082599007294878691671068094766476016234508420798162922230231138795043688576400347957943693624574992848322197005789876011278001171039752328299220112803829522387600153309469697956639384597630464105442000827747303205502422788133217989156015248930064843267357811971887131352107640012193199708513515109848255507355499618771151409544350821996945736621931056949782340696607723854148048190249459637704586037468284772105558056966606793204939657630424285389947790915836870267182542692720803971955544249704748163805813987472038333519567777606944652432178803471669253450765127424455250853454155586363306745595352231039586187438902498112964094038952275290454078689880566001019360403768647637801407095444555817262290418924316106359298895369285706491617121987090347464679343627399076771384831802275676133561367176173367310777621507882169671047981174788341383147790188557042501845099109761222323693286832109459060923359772781831966486400096774805976782579621069407702193821799752900484773421002399729690268195790632103715332533057730047931023828943011083929598692688645258380199191885122232589402064786053732207894347733969863308650951439141677237690861420174777005073148408669471882762085569594336954565382334869629792891249370720771245105950845306261253766094980520155328093733329805280662939935616507088747101539669287531247664659254910662181091213425036607050898754719732207658908321995288092723775858025111501741179495653955804377343278540928926801236839141733038056735191979540543368726753069634225809345132944617590409020094186429033647625510762515253268221897309334054976033140691880597452279260789668923495848834029542048895322420067154310352018484836406394357099095374138632764212465872612107925382888994055324009076607568736579370138989956017287248769943005399181671080485509650479753428224397173231666319731730696701654628208822680136081179793746833512749152645196947756352950061277583827472075382560353345495090089446133586764598962301786076566939790630986145299740555098022274626826363822423629066834235355725607603719523892843963914240254972414679725982803842784475553055927760545521008122823919674359563664716465825189294066579451110697535583551789045353814408213124514674269865425696814822817316406735509235440389499836349681552241732119905859870310237355427657320354463691992970317543796043488012593594374559926247704674228098087210398868027018104004316238782528349971085469076903208541637931230130473847440741228881510360859440614664191725225190110620762860411390734562426397772091519318908481552895685404050687718961795698183530109951036764329332143336974936734111560171325870289493202826212390327038546014773349771446815643078688642372518323737161990447242902277011520669285531047830325112193515622188342009839786603168651463961951925674880436139263727969636393547481917154572398471202501311019069485497974439753748784218688773621289954648241381514409232312198024378140108670118277323564233493621184214144385782809674914259163763330915111980633589719461905844007094091868793978743809200526923295038534270237616050587844280955991928778513561295250075201170097738592878087129484920890942409264951020143360901272002728697406458049731459941535140023165646801420125980649050969616879498838120004440465073014445294597264577682995855443960292475436526586504740739287608804687426599348109594961484686381353040572135710820650943134054601418617886565670898551055848130517705941357593576519043208262818383120790173134408092604202996405939209351853582548529532815877041334186383452760172955687084891311282318712819827777240100663195346353681004984833077623002798815315596997127458164493722549935114664178765048194710059222480945004405671992919699156147653180021692404432665950662176424515282030152790968165918392125673670453467124927045726324894286432690558183040631841141694434665068245741240328385314857856438974681228385301472339675735830566750122451795938913483649768997560822091513814658691868983372844112705118904646966445928627808467572353036553612009767365903390500954218110217398577673359029966558252998702815810973141839525941029128061100705827083963078249025723132804358581662931754874701375028355413888717356414379553190183633853840257126754289585892743681049191500447404128229935335485874326222400721191567538968326984377277238289860071151264501389439718762197870440664896654318498550971337458790188138661845890523708560663801361728820545283560788234322324095658893659058804978101897092578337042622860728501322101466573562121057830431161211755273488482455771649970884977483286589410514047266837637596218885544659136642662359152946050879432365891499978502169064467665037644896446019409455374692012223364595335527355892580997858523766756425920090443013488205306483010670070082227622168398346235732740277977279030064145598506334222942047256744227731044638033805901102420951555067037440725867658999364452208246500840961101456177923943318799191839257762795239043045122111636671626364158505126690987361043497256466404775328235024168760534518108762060283770600801782856745162679820132524171010260369141702386177573035998682503973199721388055325387300438918228577198154486874816846001939052845383858241203021255821485898174995836821374939153769344473996941888291958587962554479818412139325174776258868138954246452594383752810270033759828586199764322183157347954744776614177760422834070011230252851449253629981244545031228282595285816306279601985633292359736902958559206254308832192138196600786767228569861159673101719114836934080290859518572724541962777850158900902269803443209309497345838952870383392608794551169546341758686741167129494360231103902901134900701161744232370465900790430027783633434053526833347610390908682797639380318587637938068957995239905511896652768219641564568614659206928565872124567223535109421112070283102979137889492745202174600829883993505527888124326474141553335397512073760572507353761288126604209260972099046129905586237306138345812148958122801078139510876969824038686879018150652534057225040956886168367164639523862147779203241231557279933236885546137465574444990742978291507565783833155656878734600533176234285498364256936370834548901004381370727760381180006614783779799978996562485065040705282560751866731214624185035139726137283492498377986506538993041780854780643274405715316568370551853428963196047713734364341501058874522848202650218324557805515578294273692093384490263054029863920846162632921439046401787328708351597549982023253279282548585811513438074977815612166285492146875568561723945736442840479070858736675897632576795150112911532961772815696024078497622902704046284197338023291168541405735423371144521728528730689498848695534313180692714633051414561899398730718745583665382718848248442839938022302952636507564755606129256565603177712070558773719023671038386712536931948345310563161789643316626148043868961413488807792467831704330772542936196865215177085687679475550252701899525853467927155020491354570597192912630849474220371675636579027692505436920875731682240498045389181741517945647327164533667185554910663917650174900484714162198495396443533033070473225375857611995087111636742526837668527504696558170588523455928947666241223822753260044051388423553313852770991431368029490002378411271735687811861362314132711195702992820141779749538593016711773248641643102082020903955724449107946096682271017249592721647969778450199032155392169397755771678082359560639741130802021643726511313044326601449808457344900917270552167590586246717510928891461803306812412649343996389775679044125811700451581077695500259950360048384673703327102544494150760428663703090711395599202481766366714692090170043088557672307339228782342406164698712050192455372308575895602624037089751348317383048259202778805833317806397276359555452755852022329935702356428532601038204158770770174116777869843132974581786004907330335139070308074485235081614400876063608024010814238308785376893603737286534498372955081067577538741617784967051700528803091518868341809073452630960184979579105981956603757181347339190880256037778300726919153093570655467768732812080555958893991644124732777625685077702267837221458216846508447255130217524043881648856053648422860378570643325427396819098415413426600338614048524084290783239175747010773474518916032272059377955029450086348532385994497508602786970373392844871858480782457372113061427598603931275184553359137460786722674246919827450347246219139884576678011547292719669037598225982574765932494284954138439805385136807386012817146143234450811532992101613920282189954468991008432389131463571759813553608961582112457203601632635854735519610936758279447065023445099831655863670783117302501326296828606708970681006749116189896044771637015578958805059714645254183344713219206037522368891104127486801553383034153263345892767360586251733796422301900556925106131548660467642712999329311943576370655760204339617342648861657786478703522776338932453719440810906094575758034377623757190662073282202989517977787268420935263188053877655610717041588400481364600565260745893574148043671807511369511798175287837903721861436263444210495745592015145174242968214758031791898449822117707008736518915777976170318679160023883680024995927673411060145055716824987302941877768845718483356566939354129237963512275499356029585568047032160509687447233653923299376841581852736119050262491144201041686705120420630732269530736426207287237412902448288042595895909774506231280552698286401414796982940977230253980180760361111582480527502735606522496937662038769596237872746235482282986385025089401615906504686656971352349244961232228183632227435822107647541916620078086110542074580108167689253009890971328509804033071427719683689908638248549592027916975680668035321088773062741511875561527293292977918569233670524246848793860220712377698000639237346082019716860596080230258860535284144048802053823641467684896269097729709382387850192254670743683953471537141951162631671027504921056934707030528972213391597505709213412236981263785365283673126533539542462289726301797303862114760234078425021141569538244850789196184997317914444074416201845941130356213601246938682459912818352748960659281469306609889538514166782473713840885614804446438144729253095408600987772890199770663099584057022337156035336003527615816543228740443581058772318628244209341657399988000339469348096524376873436754083998516705046981284712880936189573348418604479772126742036867064189456200989239000658642536589512817140058293434225420437212558649702675215521434723122076672599478425266084549573859931425012804340735062380245741423536431068550392439439105704794785743862986803149677529559256705407743886174721599529148489022769996193621269155341826573603816826154756217677101705433378789925306259555140778814659647085267090316842487036050903820424828664817514443010900630282135771534693619164343984629018723566031638172536640190716878003357602881581357556736637860427770100425832724175150736681882582994416970495679167795423110393998400686164933727596677462907760208070398851925207798401375001827799765972437471292607707328396949985173001423937446016538275616619985111493565185326097941146859414627261747913067529358779293085977015074909729860513570477078609426486662197109076372680913340911434456352143643733644078640630581686249260094622449218880704780575622053228131475996288845242223331074266502729692194569576380804242126885062393595929927570078183924970675604958373367156841857369648462876159856865774620993482478798600517197949798341962575010943853751675542242658254493019077122900976131429158492915163092002527802046228077957038005725652420489869621713682732576800817251578757833147312626828449518061997164739467304101290361607205549643497278262741889527976117587619129357238291090827690811377614257254932713822219372029294382160905870075416068942515736370515065664920113227868623305868336264470135925844041460841983623220892403941757399793175443908732649887441427458147597138067392915527722237243290399147573700086574714532799839131648417451722496202301014550464951846162103394977486263813447390784931868336439566764697977235081694910759329058281207485024618771864213246694122552198016585801083507528895789955631053942425240619141527713568195205824233045772046093682745129579385690368536333740147557344892216556103529512995929339724299069018268331979899649174042270581720254887768080051390398527629763105972188404281594907144159005279067874267619919383036040211754142769363367614455198787649939571798557795849739321495551346181698642743071462791715599824743611057071240483339609280364194090437967987438256798966505325671011183674815457795143864668346015382055508109986833001312147139448318620651251274016755603099154560274319267199643346045727374371948961616196465965979055861259442712704317246746978465214980834278337752482590484586821895118849186141689351697768734616006494978256458994312644007805399697366946892336464278321537241302725637903543138650747317985696416442105977706335217909678038888444143704310082595427310057230850815940605788888666672096383151324135350035518679065675309502580464409966279455175568221792477801174393092820337802277858567523208221130167389144957802938033392635309619385346797508771023639215542741076657311729460324519387025117488848547925557818203460284517097139407645042310861416854102175268878380556539767407998908541357882870351583547919561625372744358974191760173428846149813303037049099955659351649146827858355792822368364365152454260157443761513733660313239856476068239986696051032803077950561688661264113864516853646057223522933712851220443224624563290606286097554679091424930355205105981564701897313458223997233665984476652579622717733486955388907033390383400867832342783512021639618759509123726551563426205799887658086513063430568325884431615359035934047366522185614117286238929768067356873086591405304224634198576924526868294982574518821902727063080471056853117034899897073198542842143175446142944180086334303433067665657283593716070744850530853909828835131609984206041732209299096083800226567364679619354195515367232582939657304572032288041512525870427690496165509706910956040515034697443401440684327975590655180294580068000771003464907611097134479223777276209251322806753858928325037701172273936755771178076352861536974334831706961743566749995741716357960771983187123821950762776239553314898046015538087367686031950587352267810754126637774033432987549314525056848133654209763729017971713212033482509555354606104668394299820642789728267674070402989251462230888689348542413250865700059075701111339899989588544271936345781024879426757114066126069930367754760348341010502648998742997052118502941447679740900516008347168814203509590850382086784734222203416712352513195346843158560661172790274001273214641437816625199429058999646491178454824491388777792352460520205105831062321036169658646080542734055891825790454392096991121668828693799727211836660868107148367597598075268941026025642385086324706203877140782519743916760081749462114275249332749630490761471711113755717865119250825902882141527858048885108891065889188649650609555653139339028281345902022855247940068346855876161151605502117762218159096345579196274861417039021499047794404608995590407439297586474655090004847310896231407954092776547045293901513705177863369632416852239392214095188839968879716720315788382003975845021047569389263391620918766424983279572316883140863604684339728760817343606121758621351665856012709637469843380876613172957735209723169351008476031320656839142234723196887042036472593852189729193351535073445356524080099118844176913843682719055465662945764849318022495911156535775430206858526252228306656242676369491910212116849120741650562833977004418294119037850831599088089892934193367927440291002294234017262623967193244548145853065080328437512812365598348286566169972698448289188594027315055513315164967773381812448154971341173292471207663749748055010632910557894064214816178216755058283311391419819742528556192740158892072408306830859199436652135286478436938513713184440085641601300397197264350099917689830682936898182208137115301852732572713808448856571137362287777156023501303104012592195385637078644128385862310881549633829150832437070298274631558995183369232397179773276246437341389278515260037663373197384358385923857579865386834292210720726006818954084550234447546760166166176554118138436968530396668862912124916281134660983713476200744703839911205873546798956026666050032533865138275321896245091518614359299250387378524213632464553621754317039055254208317145308670605381008191340099689706380931678404364404260077808801455561421975693453966347519131786563538084650468187920772230408589640429334690016034986319077211413556577421832272986706391215884971667557762642926299598965476862508349745485422029241714211157656818438494956969024232444590030388155703222243996870827144592611735293665122443971679619717955188443652756748813964174806979447270485317609556504985004749378277697010552123929616708037954777689891566969689501308269084224459542779414352008232404529181685857308133008715966245576204709076400670402323628105506011347871512593265617156358519165387113037916032107672258623470723771221684868017580431098129978734270979172425455507955104258712654822943140583177799130117488696745665172309469561332256081370234675402828605977165558587823435067691628171236700245850994564533712870472719500100838166810193225429965857924474039401177877464395571711660813268060411312125930943403070727335955627436012904229195450760707495308614318613923968053602170064970212648032625836538818896577186569057862890725693274151256240105012702041195353890557978120760348827085112295174030220584457189289510812257088123782680462603158602809425819620698744426998074132115605350487493134784412732515015239914054705831313849065592192433542506559349542464445352110693036381640740545713848612152666616583689214003698734007053316284543591845119863988594009396529371649549135814780203901522516296577691005743508930576898357996081814750367146776445318805478403939850528960878840032913470115705443040064122262011923769752863191963303726043496082068031973284144496614244656266937572633795272107380862335460328045062397472498134339754575532952456407117539055979196775178132402111368374425007609829873905260469402427503171567795990937618270235432301231770324370597347629783784183200841982335528228982906038062959422091303663926353176285435062143216635497658556462366651206087430610905802315928032449456325163928399213099318092093219330521796007451924882637279062438115938889405803367961341703779994214888445301688140766788867419925140886246209806334877746802554630887544472754476827942368181145234727692529323582587891444425573563463354366297348009086242117456498146560945188032667248471652130210288220663756739095390784753466892546284063581841135550537234569050188697109532650436906304177827506757261059587819183205455540422458345059226545217569225119307024017882082106401261544854060790351927613838952383179025985251760462108396342192170361729957042540879130719484783031104886904255047151553410904644769600335578731451100364687813492012429288079241134165768995889768476120285884391436165722464962487376349365183893613745163613461503047070481848662457505745161396624138277949227865950312624008189001861950949229250773329221638469266360387926608285620540396177464737559572359628312636251535697005663543802309883892538680337379099271827603606412242918259015569864063379600295313918222896590911465591263511177400724223590708809197779494216228500191937542608548524372904161592294866638793467160747825102708031499142775166732165681773030638621305202591125409949465814515804485864051665932477047352394982099830382894005989910072444778748971921819874505422858966209633286657430638984829568631588725375186135071780262848271845367481503688088941187126953782881599484632968538093652624810855317516588267688307102206673225942396579517168944217951904959720366822682699392835327446098195552218556990435567317212114865632870250561608648979044152417190089516082467588395920557736008168384156910665359705862775246252232730552786887510755781577371662849412774713453450025857954717912590552904269221932252292339647114217797010503224698901629271642559656063693830049748476798198991335391739689272871449485577646835323452637448498708799767884511447232184856209611781964158278879042243063298583004634602425566042539283912268539806590152064528821034799955333149394276547299708679176610286649560561827362583437754710845130617544644631725489362417088667339447825878651942988457810885166175859612092819364540821915409586206877324401826982038134412084016838863418832420375579263624469186588658043709668482284052453009553594146294338863279727697540733414902076035326578998595151787038380558145560833164438908973373563773018587255024268302617696079581393204409900962898386841266696086569346114474517183019182483247091711408287368698234782336043578596984209361023800877373933358801072989699135414106445176011669749979927173097706889349913628170093242892200264561989277117815102164043538600050757372628409466877761096107042053065301414019798750888160546816400388137804994083228231695289185375888041619466596168616742539776431267334019023365269938320606958893350190872444769733608987437226024873152128134722454345506897465273001430419344467431514461315808585456221678207992266913876298329651802468711677823922434688509837753864918990108148453435371152613276138834189443288877204238094152002048804860519016346805084717183613434078248270042361560327113206882674885436838059624086280191222778306780114948291184862295059915778818292629632122104617200750171783978215047864391737663100721733690837889786870462415938808001584922087179899673219971735740537694689591712035010357178435847453595351332748497425334666360753731680068123797915094873457492452739401917471136436355902603402525973318722021003715659913553338261750033898872584955476770239916886799388220950539908124310293177926105721264350208693986233463021179607258486232747632737642009241827556838810283011290048311090143295793527961252005193293989725415906608291151607405858777692278522119552712692830982389174840049313379399359295627014930195918353368816831659504476836142220413672525722406442559833194771919897107237770125992776163660439343052690372420655683054202029195354636500122008748127237691394289459012398482656347884548869070958269161722100796538704436480388665778214266623184222305073301705397560567335403201376969964687565781495372993786494364768773324835677312896610553629153800883946745507891084223372714767756891344373950261634157344041971907789268417328604373640833672155619449919683183400189407977705289446478661977044097031586046447651958330165564443014823541978199398333803635053273420689111891011976330902675908819954402024435480118282025274060314340805120167789776597472418931044812530938942433613951985865370595377731693060010306674044745978182874010704815099551269780582864077646849354148740673533470913785845277467507146989591500308857256927284592504128301803255801349514981318503115838085889086030073704819058003539241171357868579900855193234169564040152760893195543262304149882852596384475849295889914094106716250877265735878632288013355121957822501046994959259653146569697313069718265812312862381485072784422899176779384147651853951495759985080992747905444468586730306744798474800911446995144685176253333785708576897063760359026289923155854642961048227290014784940173167504425250091946959132220607299670345906117120108141982902778102807917808827295261358322973193020984900238600820513292593559821437988580776856445898777040750042302565644852937017396858448871110562381487225455779971469933544736118292374648734774528563284361406875508737854848013080378987684178552553463858338911721809486088248425841962810314993385907021091123181676166506840642418009296386835795685020415408998306238244811175200577927167549727042420153774011119126448409696924232328244160939452987580607191914256709344895514438446344144723144875791405252646678266109615071820515495405811250895286007244448606231605081336958704778243197947211034691802913784733883425614539709280270185233878533171809727689068119519436462647696161647509217182109131219955110030489879686584472385705557921843692664352680609462338601633103662392423356714014666923683574108881661210014931584023594799967875724791141765345555729882878066381477997128010648778486261289224739447925893708084103913059494152324587584945362125381366155227463524047166165879188876827164124452254503749451929976376274178821474597014689762237669851184501944637170669142587385439980173029011449302669218297386294113101226006363656316326825336844815567577140911119262891330291118282602834912502199024922621466057877786348348371906581138879596846637057385065589070081079226958790860414657415888843708629636594000769687939595924871435397232553178664613894719322380845588021942716590342269784972479383043964945158794095952277971206603998900482328617884709430978408272822400125880243510722462002645076439349647920592143404488407241606284102214105056852840997115330377950493261322851153629096574403920857479592827618326099409094160698103820488271931988316644186943897276103319025933296438729336249716132125644950235657837115595875554496130467094594858493588183488798985131406170462009398750715209961572899149712140121711379240532850647480804400099895907375003281845121190868498592567572168250098720496152750247856969800703740090627517691078325343820828279462845276668525172261045406151903866135171594217527381255380609907070834423060696200343895340901563974874297984681220995431652465025730480490709341565300796017638746693200504950953977310919244843820691277085331106825214175074264357409082616169879445139217495067528824210689682736841981665219039921546700775572645365281819172142560956583432486769877219931517667678227877635800145868497003482244330311070601278694658546713065876717270148704321396066617843538633922490482942569521505695840650213893852550346399706963305293447889563206575014801457353960800763622216285278680523197477760365936305838122175416618931784966059975025268192218668818420194841155254490857817706679997534751384201092432763793447350503114645751978644859228084642809934145321282030941473058635301689433240806122942652921325662543810864015547778475413019669605231678687240571485972216058575744027128478887998830298392498106409955681552810510936498719046023193472250531768993008816304278482008747684476573760292267810778813032352515315566120062448645386438247370806215937289194879485764398098090623418729995031000097755958274053252130607603211757156585925284159689808119549070894209194008318747930923380656611356400380263964942938884929053432235861513055271298524035937972514495675817382048514320968307510499470623193295468443050139514608967311215523075875920478965469932978552367333966614591981637890254105624448497063471162546284137956167390773172424350550129833184336688536243076907582521619667194196116305851660311804125814657385011960422753171466475190293257056253586847304643379229695966525528846843413464475821191784965473354184395214980773091629735879316161968870128514111489273568286430276004389594023421609395343077294419169284633044600940156971732349280866315578877586999703915771556111483264768658882424108019239748782422807008456188224291375703034237878352778823278786221012352687193334457797384211515032867491241901807231220608152341262120379740163568553069769954753296850674028505810508815721187599820498064615587143090079981506387194087206214478039155831974116281740578008733006242086305047704034557707074235490844629676147529788278346938642034244992045407325414230569926900622795560397376948859877061362581951226350342777873730757099052049514172210195660558606735071623110851071987833289606383315421746822175056771078041310382859872974694910052560475738931229017726287176432754277657064288108298728416925465392644226607492330968726708412454504525973266611713239770690808353573566833339319669487167704104238484787385054197785369514698716098968821441434681240929237408199895220419847573743744074703348752187713661257303850386005448610637918166591185105705889567353999832924752491258788672459715413255482391098219668402094982863450317818981143836438608343688046327917092040641506995794026539216388903405103062804163645028859108481056340022102828641318661926313246931580223981555237203947154582803161708391192495263388153098373212488303908094409057800489280349350866278902641558388439866538177805721244750796137543598904006177739586369191264641657368290050874806863989580485244238781840231277083545263279406611933617189130135495648119271184347184826441712957867723580591809489842246068347202317515364507764497086847599282838171322282717190628771827687616787510581503553924677581426366935986985991695900528664069894468136725076917024444601531782064930165050070997423715503680578183718807094131117379282736119252136901573448484683914587014863108418761392479380216476142291324246621149706973011002927666760131397261394521936345029337550683432478532739253701113073763206347612516487952253513269302213136928146531082477823799401597399971013969397288662329829168116975639638539982496432378254510961999242725958470930993033582068033227529491493512833080048680972773790429164379208564502026330360966401695546686450749376500692346810186086145422615722954780265172001249696338931182319531650659526783525538430859204533574152925856787833795549073078009465118930127534164729289385354804174480320363458649342813282380305055549132920260896476884852854845242681043443551645205038078141568005254628376156461223651153198066499040428756442133883506010651708646759992223470237666369839932507160942687897062204165352452282222652317825594779336851853585091992593537390631702561075059772602014047812182534720296074775731538396610942096235531558656900333191123093274867367176556030529487038830705776623797465684608763268871858806913796151130935290201714442978020205491157564254144078901209503493353327800837751283956093123840372394911332227915423120756483007134792182616005715965747046315489712365652598470293119752495104417888117478825236531025157225991462525316677596057772975710131307489142148293748383816380921133279944085261489290856423510503492636715191719714591375292450437231852878145400970523735918997762160039151750945701531846216069333201177898522880979614785714215703908155567867322900545305187909904909034971982081883257903198202303154441078297057717776586397346961795365853462305440246085655315431053571488111141549304147787923445594727203883443285179378474089683214236339123459186290923498615929023415852009890912377149128200039029264373838274547354929976156307313312777343821034984227874103451761912517749190693106354435868975658941296686140484007038820859586766850381317259570134326994511019463101354526139651001198611212506115475240991176621610384184150460359798012351080839807281531574986327607638809190463847328908225935086946748332642007470775509502195304476445997753516240145609526899047535394705849447517972579189379276122846152850493019432395620296090704554368434233442105002722507250288108863130377492682678809222340618979015086897006124482921488069584274047423154746516812151906889781465930307683173796724634540591155097648666903698038301187971984057967676135610584811124034592051560776627826011569673686960997249720836821372930636893903392447866577033343205756669983142124522487663910569562487484706145620857712072214318267196530870865986084447536378867712379049959817350737062230784370499980044960574100231874655649048540796182063054210874558654019116880472690112563132879485928204116878648464744942503565221117214736847681206072028893460933116282924157811434240733229147982777628072466158925073628504677776558157282226107826391213080403769995305308140061168381172083945844659988675986993451942838486044057010839409159701680395952412615618183852619010923763451972053477965824841548640052693040608699576130292592123925480150317394847342274644862909967309528814725656558002418081414235042581425082158435714823596907943297539997942091808709845564418713800123793776855909913898571648190542689751924552073645367161501443120872308419280912186962416961243945085351956569925762277596977812103399478803321133188088879287398051364940061404074349720225926143252887996161312947899040097851392786863274114476067576066761954167089593828552153963710657255400313427680961072745633371409338348716571412950187493188308780826304571741035281298346534028954992673649931179318588844302671318586368663394804385109715580856413043030976089420253075994231558519965471653464456051015346535430599445614915266135270534114671935646897772005662726655978025451124920023651947119363746385217824990337791962054075670491376325954279593486650547700901625838956238852263666517830461827812679380570549701968641278076690217615855060812661054763003022657819811011321349783933664726667000731319399400376960869395805486063234019070743984326546709912098261577450007603720469836993859581832194243555151296363070434315403545415607659967976143569254886329089088776735122388074573428403403449961507882460856062994424978440638101798214346992322628408051147336790875735143742071873340114413493420730228159335024531569023204087533583426193527523767005369530169670645971354711620953239529563153635411806948301499390840299661345604697245665825397371719337965835357904703372768330080532240560604962671160406459512507665473099419912393435236524281363116003073234233453055587036256299410449308082472892128846876278847535469180301568555066705237065155284975059326898676464519881082915268395017939014559906319227236925010124663987968315532998926067116254667827009786597277473070466234391915721656394113410488374857272629940198678457736087188185741977977214684102315052696651384139957232615500883470915089553002527977374886410088955416902060246777401337889990876479895363289304645285711719408353670392223616221309371515785807422629319486332499952520525200808547152212010487456771118701823396910322939067888602785298080304901221368155936067418932057788326859971279262050959680993609058805582467313859741262198278908893782770307428624957728475123471420257808164071810889063059017524589257543037901455568637049774855449596196030935896275497998964215096549715121419203928341408451141238607011389749486596640460246269868223817372684421611962643786193568609266058454742053421236065486193179401269066006110313537746726141873916128100478372810765937536826897845477085269107392143377444544600372228544171149030046484884368760068636371789609618333344933553144509545699946295931935953611253639958071198382409173713236958596100923626311604840712249999282597262112693812575594604564609315859629472875462674179954484507318820993989131404313495018610134539898822314147597627104010679246934666288934443698216818424059279676725106270996952486324948471646424545788740832535103851976823423773699236748930474799135713893598183074614388489766922762734554543982260472796896413909199053583199271774317388448454302477440410807090594269863022808634237094460135376284168381373840402253311963694803107323290975154971114128053702357969599094983990253643336934610407250944702673371891626334873675321084082955790222486509814120867588471495281777935514529201893760565096052249512276351705986139737852340014576367577691239383852567616995705871227561986284311810726451135766261726531776073762297146444369990693166779838401052563504469056570333524278136687316928887959069829811762297159912211406169994284189450518989183488612196953901219402677569661144920349491112781432426925706187313398291994027609723348450483848578761583964407092604279360540021251888584028626115075837436465911022892341477123770598277973122568518658224788601042685804477938565688911791816965478335135416775625180566183890843960714247016404827090497726962541785502082385855984943012322180322332833790542946057419924481718838730055727433401336011774946135021577344917483478903023532569859945722162936487443563939589360188570142243048564017307590369167179805379139360560998919764868308515575664293307525976723615628851444108347733411773942615321506801761578810810865132786083145695120726034159776049168941595744380746533703530141182743371265532600198720785048693754763745201283001435796137499083598127957751532143987887792641546150711325130446075158981120601173245165864862740623376567714716468761022872196959441585265002996657201877170318897743399785798948356109948393925659121819679277186799452742026901413919236953198240804643721495862382838132450183582509968050857136425207190554548050254074025533887979156155048644307563847859396964066856569464269239076933032152665800161211151212406125368403943037304922517061441706089344282658911781937866876621259919884219212290548360930410007980051339999318746868170558598226452300081686462931978141221164789248784232235124301842945147846381817654291327048265192625010865068681844605352620342162018683091526563216168015727110999444085995567005948763185750952619209352387208967407005568015380118974967788133286327992480770642417721764737692675374941049408206155508231577127092457351758212402293581163097215288207609311779353782053763917668620695768996858091042824641274862725870629555598830065657510910810193721293964684955341618012271371271253650428120260403138146422180730908357173245417679681949663135306586894025763414139508735859189054873667776007313842673946369665842219515810621381669593171022069725729050160375928533919430501944380174704404223306959209965995918708301793799885592621630590625942302982044250364745049773618802847685599116481542879183116796007852393339455149447658623491150419004091366782384916051529983341128473105524792010849010656624122038143931839977851325991024201330461734249624909491984173652280084100174513642050818401245199332853327063127812178856594258464939721692738255464425759558839313043095935090689526952466368848866918058296533941492245351451331946307968984227525429086728422817200337126679555101088946183290480095638462448833346670636194649179615360382325662295558760370039141842670526646844444373141897443439380058776517540120585504918756180856519893950895402594314881290458765205779950351044952570091802516882606865145657626491180654550743543681943692520800302857652310512471451665989371583180722689690677808317884641135807533085927634894255226975281714227212889177755490407613332844097785693875299780827380871176122454925841556398108267670558362034898904224013744258345791894906608448769004734194644501674990112955004217855657309060117387216286800628613581625556355940349191737732361690869048309104122216348775440315800398617659623527977619898288115802715366304722597174862758521824511211648292013124616568620886189557455869040766575085073412782582240515626173896976750887852609845836622221851435311920995053123783714311117609670358563770504085525249218267518837003913572159338847444072259091345167950205062018630832516491545268694033953464318535627126420488328181360384977181935072135633748354123783480899208590809342569376593990100637279695100728174195026165459335674343753010129156095382539062876887817197325964030561524572343368409735143915240717641610495701843386986989530972616825285791605219837560738519390174213391540286586196523063372293166589934021807360818187255127151310194770426389720206601315230202720702068101371054048655748613643051324000870136453375298375109444974866769606087977126517052950100341911689121503260799447168292181887180875703332949217287047591097928164159096725010020725870261024546421462459772422239286451453353570034499671430721894020840788804290377557700561328853764934481089195362584773655290721018733718151901315069514713805193178337718266209646548298016469574165860008437667287524229436507938962089794192898996339569728375220723958592864747123212100662822912062934811507824119322472683743986447803982983243941059385868116870150274170518629646745682345606978114211241748363915406795296748507333270530080665084941239753189366360846766582694053623149712332867258940925130625029295472993274143473753193835501972554215685297752446275840056336631890820540628530642178214280691608113787884116362758843430417432889905532875342997700413995551893024282953123971154993004399168983803831415641115809594793051701642462796085647513775187730947852284159578202149574207399159999309993254052778444396765955123645428232617343051126858546349430612823738891787199159312439304507004891140346109043332290241785807497389849667177132429592925773658935631588993346816530642227855141297723191355194573987160346639885329806408011298412847505845818497301949491872675350209297282181949370653318507925406507546104680737771250426168293476073036953564128070765206124146775681024072283882608147394640909170757185979555145680520990618502410651324410893962794177445351920320395296930439834042737108743950886232421530165699081994393613786227571914556758630507058441256849841502548706403831894185488729766996684837008820110358534202018292845429374926340276736838556690190530824136044390946055209356928751944348933976545281980419494507693568478300473707779622399264571655782732332948846229446781104029705803976258012582943472277675627985276153122660737460382369484780246255998266984586133149257925674172519971315626432037240032216038435975337477443070027286216287479561875001533454294040869282501613660293773559488133798232717202291032495059005756337632691704339440594581428715546414887827507601185454364448960305981178729782979003601881969946930294004899712636644821337396508838527785618250699501195667127461961061653323510209429105478377842308818159025202015361772308475693675576602077486157587858767102760876964153961220676015737629297554421808986112184488299727241580381883381105291674660915541311175108985401188410827041743207094866131272280123733776901950722541864649581773763183110029681888253230733237147694490762775040634702453646787430610823684549141104602008346315469927528494149738581318686864831941964248079677422642735828949165534787926817470531977841884693981143384572183429441506015390848706505210116302102443470853347901008491458235116751666808734126056240300822081266324384635543509235252488130443672497665709503642988242915805063965809734960135328100479173148724694416339256603995351993124687281691824721423004881645573439915007013180773019229213467802706083517373985135541757713854137473881324342278783111191454981102786274570609767032651104497964594207106185486004401880694271837687912967167402274476187710300860439639069640613725077523325257248198968894246733556984808077337786282143386789693788793722979104005429599569509969850338278048723504030635637596479454764567816180465909865055730373808741591963699650808321819815771742436964318322806324754252978655668959227758977654705575321340598983289741870039775755485028651181694068910255464452146950838073244971555879401345378948254439358825620337045933981833505503145065921131801816546182870852430600599271484078993793615519633797672994928147942262125420146703924362060463481219072530041596869903846341059854351202272607674368976456485610931881543782845366788906523617023810079337627597483135310965084765773158109458826077725005410787137225914290444809050096241178194757531753518944816774041806299459920212042762445243503757349485760108796357360833298475494883547926572349085817059312810792160091752971753730780968850916929935908623647693587992777247095754166752722561960830962391678818791543251317412552603275906829057282623439528782717664033989397141531902706014189320135785272735514767908303143318986986439276660951618851604599033804182758823264987592646116345599319432568713623056511923000229530069102862378188966712214920869001655221585228897453796701098911318030880982189744675845630571011145635348324388429898778518270966723390011593132828450540554865929206823251943000227811448890539931641307961696597462286483477781612302854208759971116454071530421035794846224740495260164278780085736085201351859133146510633375512389081602869733674247644394442947364757996537710293313417532415522513940289062664812821202934114268946581882547957089083560913416517793854382541668613222219980984823811404345419526681413843966317862331508742180687454156980160700785400952192342386916518544580949697505653509414990170782382399474788691701386538928140224820182796034190302437531836706255329491509133378129962427332427791477953787548573635285762717196165139723728648535544721972226684636782793688946159817353592977358130005115956706408764838125599996735800949638853608474209840339394902057522407233733901260069186445007050397599495363673918822910918052102548923171571794691411081460233798363172187764930434908929191582760370072623218676335607640352175372826468701743128962240055905873574570554807581313808322059676154401694680703479451195262509595110067790797602958077994444253298118698666295300424838328238441263156836492027788905430268947305470154267097924833161804552420748176850815299979342399445141574613349722497128160631201062398649961401426971785407607825819071226415195360901521662446238708496505437429177918693876795195709470921508830772988812873117578240633977951102045213086915448953284725904986847879836872465964794678979490809332783908786793840967216197236577612265655650545808751012374945146065947266541848706393421747810438067750951182493083386747949041786451415517588341523764949652892475287001543837051318403636346437967914268512767089227735838416797385264922887597171385415608842071136574920477620448707868935437695138141262126674328250793294927150380059656974195654621898279632086510459095524997967407639824729699932039585509565884118738490088130774518179605999465305131361132002746380606004831613997825245891089382438424703900089711898162135462067098067577384447086800552021578277333316953646978211384244953596459098861850626882992010735655699975435551539581043447912670484080923580397208163487118018066697320714273754025856334644339483471624099763991865143554883377408085306611913198810159969710982955739940590911867996639748941541873336224631332114215993377861912903614873479857931366399356940992560845354525111399548572068024185151874080263111484547418899122514621540240597542754762609140197999425398314850151493377736068306091941171026928150285196704828980419190813864273185217608167335465521099662937816228646274736934624136356023799040562276416762841077113568453906709123420415550965072920547986118718493051086111739029518293216172888703924200800769571293673731300090795745250255130183806291085961256339830631886691818428733553078105501838647583656481584425975756753046665580656359406424010538539582388317850332951853432209297140942853384777819223249051685169241178352266312700143592871069428593147712910956938644252869345028368465984301639312921796936054477674972486324023023367910174278653749900949717355636504676305183388427076236690870274210903670064864554942892291858761423548454267893400397104786126351657811542343355163224737842174138328811876974846755960969629196138494468114022843131210451431985122568352809699806858448525312720699361290903440599047858594342405099604548093309504951647396803990761479808998168840712200081376026814076853885919868705713285596434687492260834664054858817652880104893279196228909687350076231618209918550047059598591408108055996540425639021925819017558824566541315411532559720742950243687483262440882817537061368764230345867187398774431447918593241817815591541489376726373595746617389592103998363891192235666014844971658737492183478730795129867136919954088686243306483648890488644296444043799739141415046317821582947498225480179221764935499465782110259079599472308321574852992557383181335311615520536684816041817509576265136386442949282269964483443336182267441558911065464113138871931841737321839351827448073284204766593098140686565986917916000304957136386837878100642393634932595073121873208675589864179895144879128965265934328353913952702620071681747716375206882552988950901533733125954827175119386979590855369040315130776727757990304419406674157795012815608618199393313853127349068817384455540414834722200882946444601164750449355631104378143881577991021100499511410909180780684476237428657754776771171925449581082829170899742545344479467993597349844485796177782507142219250828201421614222864561641096188594830253576233714628018691583767223306608463490929562881737710942092933279721733018587045237163212859932635249704661438973101932789865573652039443453784103964499703074111349193270790777138379274740648584688442313143915649976971887317356032314143254121549598117311110082502059114358149007811775920955034018521310108798661441780369255994155265002101972737749143177498438634230806537705598925051131464972800504497013709987605230020413162570155221054776935114251123292582799034105146834837407813999334592815327686034503152843992551354424421963648902017733574019277642991518162456586949346520810077539958620049305718674341548858330704449991823973386517217190657009810512310837124918282672289131781947233709109697772211399119752726059520810590899609234011458581037312475703869243501724745560675015904221011754897132011106439330274965126095826535290223089945414103617709718781216818911299842008164686512630068226208938476461864127347849052643676046214803959448587344355172701964754286393322850670475341720185464108509514853593774118489012207738181502989149158351744835469503026452275821662828142178736653892327306477452713315150974213036612778829727998391733905142757318795276264896556702166909710359970368480334021744551900059881329386711887547072744517588980332969230153025833285423916082090074467477741863887309635751672482201202139981580909111187248559825599902328122958017908542893533619450465814252012362326219244682251423515518420627039873774198862536296994130615856792398445434225740353375322921701679205693259925797936026822667587753264886219512472585989531798721061611183621834983279912931407930747411281707805076099881901448951704347516729778561844803451433965177709269118426421309834205215714790310089830466670654968677557090196305128555906691108285479259521180260459102318137513235561244402368351623839080653998035751351496579643603837610594014366500555281344024260653250645065229280230877393179378796793688535754419695017079214488756105558957934165387728817953118101075689947732614356062779842112828693750975780032110651632155909576445316557847030141151227230393304367061304278030840597721180593488501100211781767833859240818542113641318648448553434682581826788588122670946106240691053402784405295375312417142483767028464412746871768451286449460478658331182683699735188841442248171036609454964333412327089541677996660572745876371241467104724781386212399498471963112874393123581108465088859352204768239833430800394369889678725633806049407211505159055442114724424966202571918530450292633568303460549810323198409495186329702108769250833297108693393386829225433344245884329903003642505366536796999732262911786627375828964557231206006482500865915953334802537775775452811300497716263882234038791838247179083375822417587454321814668791774848004969014680557063902873890062247885395209556967065661273413242539649373245486881872263836609894198341943630925803962246085605399893194988161827308990841463625259055680296583484982179647097756001944125282670839475245596988644939350413611542424750320037123402801315374331497732122727384300395698459026940392032700840993554939009259170559010169206292664203541656665729620744366885883432187995909058987803838801961161176554910532858179347401503818936021469099706030395264938506975810012589729251253393439985793896022499195250567568370845220008545739683818956445165676977093536307558819194199757744930532673964463628302214517489221200335804851921644799845637716272755468575221005041458427377514030191621081227501103245265345499772022660615345806198080472836323548897113345776273214977826189249509840693309629446242997796432651219716317504633837062570057367733811863616497458904036116278374431089519514459664147571969028144474770074993476544276253725669548737349218223295787454621038913844437430987183155889755665467799001194880857690294782697426077549005695008597501530915355849142570177085399847330154612915039123893713900012421658860125364213247609094632586233852068936879792871448567106069485621244709760959475752597602230751877023628054012223504242235917964282965252712371966335639274740682315692314363504611421754909585616456893228140412028860458223951638510907500854323804012892409454430833764896861919588434856390221262975326297131347455074096215974761615844947261521951828211351578315701220675096142159454269858643543075202937849441791351588524942655176595950692806834634695984034333520825932984878910186908283964841606299747341738067769930321244062356102675407933372324414077725288578971531094946736881532111518780903928484584054081762280335478158033996490112766327021214040505853424907119873768059215608214185312810519228433955093113625736071808728252791966844079591484472587666497348225174256979323505878036479259564591878423367682219318571303895751809503817025590245206503708472387429449391251793096729974972944251923269400427389286374691728259710702581593774683485361215227749539560784189637802267499954716299968849864357070513672757735118076977381073808513012476943538602315335267569550170730129518229382329140936510750280739010553475619403953780348169023905742532778757779026521590763706502281998362140177351057703174515026713486411374172459013737260560994192022070676157608467821672992226395248922716780842335541222031549043032494485851012986582679956589851968901743311779962882786979322307670230086624909842017125453650387106711677207088634043649604664075237047867139890062102454388802090509266254869037754427800076503831790492565275529216407217171731158065621734624809758208154977903986741171241968967362875622507505155117292551715919069804140320045862112470599191932728847489956428761395002954941357483896726082888778063892369925215252020128463392279032091305840060162658681461352250835249131283759439144142594075374970254181023593526257750558530323677796182707297203033958470892529688097507018316126962185314906451852827172564140024379653369955634369610785429031379940622265133285040250032645300227099822175697470035513858715600147187193349917867628629113984352075946075852902283627805622419533438310810336285037565647765928855633153139843527486187205166417537911179158324293304759359023375721341939210906752189091196298857674571727906756893233527604397174612282705501596103882487809951415960007487552308379790727483899122556847474158032991650767253005019172318456412874008907838654283617025282080604573000846098335654374068055645988416300264686274373048901770841947712054265104540192921016695927317396847780803429356204584440233438347924216366292598620732770460980902391166167152010864218576762896156598264259061844926349798391428621619019799181015839202893626987650441806022570126942118183174200807336389829941289148452508772242430330469346965997265368753811394761217026042576547857972860814697454801685151557563045142284089989043018513200920639904324554373500750042687693667662365289559527827322331689797038826518558022958135778773653050212242042563766988679454480570743888642811057593354733944977389240868602509552388977966296309172249921891155577398848568733823025398876632004913460973825813568857321553294263393706293259819006565616891290261092268017365163119089108610922797563062237390822476409691074038074901388864274507546801333354056798756696980353772485375991528299894912201264043175420751259010783866707401825397658608753541615166478717006616546084647540742590712142026836662184040115226965374307729840545805523602052475322401167007600071133347932349777277442848684452948841892912656298712916928982285521241344191416902324123047072404819641892949374173595227610859814014278506418063999918826177660075714907689205441881852195091954969905105712094951912045909245322595465947337042533985175807018539725675118309965332344684022607197045605731704926923083426583993289497258187067054336316563242855279126244165600441740134743027861959237534404727318069734543243631213537546921437686391360497188971083247920279342467338819719819829540002085843279597220587648659099729980069106760616528328933078227014952693594656966134979047925313998833268569650557670892255613944091277717885768195273976355579571511581774898169633419385851437557312615105804888935760419102881158964275841418493099368120058563358019112455110287693335539254635126116628832665031669635552543177302103172010262306042656120862414444060368395534342504204282915589107426548357693530745585106292010606453101787625580313017560646313144477761462799064877239458884542707007778386895725365846282336461351379985750724345590107357737883499827321633786592958965603744097350914094076916024099135977107686562298387283763060359530617399298741526666143408156309984640356358781704428807411386465400179071370902911645440435926620229245273365731086009524650772592899615168841314511216445590526292844600973463003333207077371886647447364402104549927158415474209418638283285850290295091741974715310676956101736282821351837673882289537559178837812995504447722783898241875970299967569373762187466163972749895231234386429303749532874374340798764787290286482047028895624017811528669666862423374478776646189400981094872466945357751464940030611948749661995636570646889487678495208958519212691550844809063397341683845074523774829099427331505629124237450322997333022775174386349737495450381656338209147662264166590119359700956798555507257067984455502439890986256340972810746073643702157480476662224606010193441393498535556402502980666105987930068686070319993463552177519352850088844465660965157654288152755545630233475715353216071192651445343168068087471984823808053243144322315979292792936685393577403829433509077197407180129829940770959380978784844616804613350487149006249547992742810582218540329112305872850366608079344959812506600772602097737272860080891861277571351763322996946054176446342114938056888457522797617810359460146751783863895612050721880084788546604848784505267153665229491068377707672853971150081995649829665117425343247117864259972500835401374850599875398483886056561880720667814444612286587728738743589607907805635424068152431466768972564609137014864780466134124265776336368410195818762207678681577043075467160530509189552236681737036061131739591133397551965034481199749286894053837149862067516000288584841336119120943503003963953362346460534749825129763386186026702554243570083824160115466717826641202692127201164908851190212570587858289225699543596776245662656426716773128808753336348637811893608869495295720739023209190876515358924695580971673074960664232494937394937955210083664967786928726655750629740465406178408936737015503581512474338364110983576242812029501361388354647838583114797758543568954747236357379687999238726774254660416033327798861685404673796960782482748540109302636782174187195713049944861099727439880959059839106124248834294731609479627088634349167880298576407382798555178245745123782164203926783429138317198221728157687429072847785937168986927894536697106345930447554513897480168261779667289689161853860962210235172059588146641153012144932843121974283753897353413516103619361878126445525157324394155209792684863769094331243112348906542720097224988111541054937987901876465665572580934909749827300502128963167851017978679199421180585970184097907372310287256016257636432866851584072886320957253935192920800680429057691000041302033730223595108248759891630562049023426188687221805086923520939185451229303066240060040644868081657941552827092154707587059288721387233746575206339535002501559744508922993681860497157719371298550484878705961413879766677985949096440083468410931405805763760720192425291172651413239922504566555356101113450668433366395025431681305599059004809429134720888594527862564565424743136572059050245482600834616634484139929581922834871196700985016869885130907114919661564904581386372988196431338927973007283279136728389870220110097231167889210519908601893290438781715578352084023371572453944948579632652376085295432540116755356900816097804933535279366940473366984853313746919532669494468714371370215117831053572865985622253934214320775377480756925260776926811360318249264300408726322857273847559839211801135363799373104646034674812563158967223868194337738430409419552518540690960866805698538682551792588699913712554564894039798016486565101292068153207730211718498725195878160375141614369835487710165367043728774954876405537322971193055447373022528825131441992201749474270910833293132273007013661105599111543189154934180229467787177200860876340264267541198015030007306564913167019792145232369189421620559596749249510489926437295538280846242333872013374442752619551725534871475146914902281245974604261002652216578181658418396665394877612773243098399035475811826591237017578549068583671178161924626541935142768465756240033739111995331913802675296870618310289155660723428280373672875136038105322440490255000183381741566807589240861958895018058262133314104122610226143181021670356955452522016046842426730761519278565905488463360295604040954360598162570799891438357526895478430503940218839986826138181200346929291465753573489110263881229813914690979514519612640874389215261057679684672109331183203654859477624380495915161225546654800224560312733466973271915168276558604253819354661106947327977174729372178731953023837284937078505980570969353385012547038589767780738359477202063152617755710328646336151516074535282476936534675446891517672057518685771307432408115136526319493305319843520802108177371554172768228255780451756480025215533341523017311053013724943162128737894987489655541748050717158590939595562168485421904638024016807087836860534325994372194524051747100192523311221631785133242492662679786110326738214789727705126878475642503133854345018312117229092027401583293767105007864395886849166955970547091925476172518717539858955232002078926145273111539745138000509696334547465337550140071266359126440503199952577851911698889804613906811149527169732135164156447283819305940919453618656861020638727298674773125769440571409609049396952738940479468668032540660440895112481145203963279159786474171603096767874685326490862641044116310933377946062133768138130159008624556401992915108212730471028916959604035681462483266719219920768576252240718079650489798086498465582298016487434430715975689489554533627276652563919697962694346962043400815643334368021346486749706391370405521832705623626890207687070056045802811178767117566481158329755096983157811858700900263305213252592708532887422346872402334963150353380629410778486360245532522869515486959215263917076061450830561231582260078480259696046684382921087787093156499049808389299925255481214579018334410786325338413147733414323279551026099201432429922802407441886718252966738940974665554344272626323601808569473499995386036861759049326857950548552146877424774463204092924623992149267042674352073379304867587579142842517981203984104847923413195238669709296922416542360693309246159490271974769458677561550552258555335884345932434930269394721998503355070142398260276931757359022681555582417269094598534558734511443226049881842645560287166212389647888437790993925567683122920780435338426131094807324390866547682966653432073462060245686004193775328677309086361598666851291373378376326558719475625920786815375241516071166587866760312874683756901114673104820256450640472673967054237343242232657460634666652703808521836022032509906059285783990768253599354681482676949344531999937481544869728129175443261173105297527580600414666809695357854340457625082237690346853394087906254275699346020180116839343580399244437080959370015767228217447917325734912358606693950154089097162346102692844852291171180090719897113476807871311160925467901378280284464242753614460036506720634680231835068011895307024620088831871914287899655011841702079886912953028976550748323002078143069715268976241090883478959036563293227492174824957149268310670380998317127613827669284819272720802716940747083902981171975648016638314971300362465098339000069880019196332124069463207057188969780196654459814125464011252380190379972444918990347255923092010905895146315519195147544484295867553278937934816415333685544481364842767907867369296650839689681846653554609095709626466933796794787030637177449277073102861971829580471318327009582696339146859071541070537487536061896445530946511650091806135279008325901240813003281964712369827495746120644471672286522554299815010624876391203207787883467290687681489063961806715900465003726919070773646882489620573940541769283466146920585752311722573288868926720868490726444740352095360511657964235348602817367305349640140274731822299843293351107368201312134513126754658106371822353832649200583833075739421028987129637318710518154435496371153344467461220913236610615578004969794890446432802881072595164775888360338724414574316215862034603294336646213774065226698977474618859028595641404710966944516478460152703955221216360168652789766731438673670295562401634609827642856290114105362709438022796185336149851349066006237308757762699569246402667509699281938413405772527207810924114250362950096645179396509760531556809811423458609443281911076277915336560350185496604935547888158456676295507574700203127802222311379269132841163738569915354399881295223765309589960603136480602874718639711513258296421038685522512815187028762001945426710007919270386977954807435323399226065055203597980576018141775681756496354407757558400087429824619980554417853313533914379080109432668913052805790110411556470786868787758075694895905096783342245598224285340045333517849503616819469472746988756504400262074660455733537499006706413218596047626423084117878737440662142317804939450115747219405061917032176236914711631988126459141592844396045248882892978394652653566261613214699500732329650443047718314881913446820927606872782270916437912190335970401216569315957181689540687480848270419108187473048411141823498281947504764504140416696440733999138189504636784120252516969507387638073379595999618323505264938963792255989836797236072236249608384791909716127604877926034837018687314552412173564136463119359776598700702991166495610686416581212818053529626963522249690908439820412796373605638351154553160430139636263786373624857459980636304666930479016671508557417626652419270781760754494877443010737863446240516794211324984592773930725395141841731050849983728140283917956159277729264353204229964845148991495198076521400864256866201041874153191932343769236508381556445958838178038151874578171446626039721086329680989585234153980280886172375179829091378777889505390136504536833544911531689187817848320329861987122188411779662121550105024468509324750754516701243047720957791744731132419634216679118379584987161703397030346478575480207151068037845847110892591253118927779858740907882229708599696627053270362190434654984786543992997511860449670069403767289112404691675378473102930144437118312475424301231004186163174946236530689134097269474809815833896041771582365962450041146540673263163690951164989429274553285440843738486138115192536674434728064243545030508588664462199120329124984893001020895964848795371483609755851745457381547883668198657468340191710255008728041745030873735652956449286267536750861132952298915649533761945446440324415977559114942458697100433411839021217578449500596822151809168520745712675249219653809065648272894838272262620711099348405886014195038971184752137485926491651695492974263751839207790162439219795481678479097690869735656600480686811454778261398316678243247016181758431290280215051892097581613796740818644870761254543875891572745739607912117371188325256563342885180888736272431754997933872281226623481458478291451468125167311871576805539666526024110218054442148108040469713297589990735205359396321582987483413121040855166217779418992129582201910586702969075900581190716323688486819391848662158116434357417908095278681931598592254546575891407490513297414477255119528078039318043771158874421086914467777195841163634695079338919650382019423761772448730519445533356386209918315015324871193486561664220125172984660398317034516819825901677226092912321665119556836324109038864589939173322712627525050711693916707494786875498570976945760727716151949231130739346089490033950291419924126516738556602662995945970075380117837460437571283697602620966785665892716637003697174161707471617792236494709353558058300577674323588947797286048097206954207629522087061123513818290553191887381363523194815686659642257676290563916104924238560541759909648808373887143029239981206815414428233757279932652313557668517137907148229170535181982267233879064685900946808918351452460278528017852685322215559902392690978870976882056445168427882655707180403466568670183603599884578679485391413528335628109575673006304477083330267077378175090894336967244808593794666185081361595439295038244503194883341495394523486003069730072394913309167734001512093904605201418325317790697176294543561560885327601217336810313578649222733299289366386099138794310949779835052189213659476005117686744288751572866765486235111640408577352223123011021389714731524565431419541683959350939460936771656917667066727151912984792374716437792920299768735636856469520869990106246763435463086332114810922154197227749010011154794406366341454690252675505741271762313322230731453585923965632666702586297731919286177232571118279608673356139832574263908978757615057516484492948086986452841949191042095365797078313962879512088016895698029085125105204795185122732482032652179157038710602910992139920420599861695693760116607982751627376270439035458743361200675267653861259461238121606113145766462244021289035240257165940956714404210704670486548049832590893681017176100822033876872952597366439455283369537861005720332180492740341294553073994939692343443706442051070727487422583552429674006705600475478061439678580550843647872589855863938071144131318267384731030125217289083824267556174228075273310153421400641364193293081384786758602903488714531446617162508244114814244628900736447491163103226121040154041961393929429395439714436135544117880190662861803586085727303578470780749306102086631616418988232569539517156579100220252268685075227255296895492208432175170820624816374628098908986471198853498895660311219256635633583292820693608070856094958613012426414543035255727583444449105332517194096066516644050530874362490464644556992388688306671499680608741485986945900131113980372180635954759425856258164531709792766278582210429883432734401493480681925371266938226047147826624647114588490316967060369558676839899024944565599749867571869251448766990302969522705951735641680458994176096639438812546697199152233842883802141296838765174842033090167413541599842996785122092396150238632164716213696345114766528568782507876317363658189288592020568245229316972721338201057294098963368555965378104143520255175712297483607901497381516758667107574897467232092779170112846393766869009682927511103557109949176566174073935284633525426200413572217069905573139677710354766157323686406781040697374344570426577750795948644440552007631028633122525224591627411831827615812822120226626959667951157203151931485175675933449953787486991088636540661791066569161168057111512820903830749094576768869557492491409915867536947405337004520619686173353161176275966819606402177238373609889765352543377145097995919142792231835316423885209528293080049416812873839682689791678162962397530583414728111975683747004526748611761335708090417726914000362158075687537203775891201690776572129733041598482999365103893753452111103258258571285031007261221288350659448419764222932726689230661830711114930433788251077559673833927090200354123782584313586746911825539092386299312696637065039437048966749583560395594451578825635030247943888721290820245221359365798300255403375437731286335051074716763849292784769765775203155836898375578245501676609398196470482445881431348841287717988729180618311148956831566224485173795882248364063142807390709769116427523408189908214610911147920192601820341907623057907773129183026575730022598750118539091196945294715854804447611951575871480382790563812352809816984032743850618528192346376087702770613804350042976796163893776634093175269175860887760808674145984198533421034181835196288672564882575096803226287781249546127197350359380958636904840643901537645913312712434969634279835989066165175306501788810114771242534572525938336202298473793695457200117197153757953356841121392223983748066493792845159014711252942177957252853671164738700613141882263612506971767377092474027978490113630929719614537582421904597739326471041930625371244559387557729917857135077740629312187719712439653351454095515578737376297054961987477537278302940582790601394995595859863600040354374925982934892364969673328783506716037531662442237969552932825044344246998185696353276146635108621074269059733070723760548356383589259171680788862762539012358549939871123227945436475008214678321812968495580141425560565734395586856460898193549370716511898896569514077869977780557041035061495063018121883310061331668883461418542511659303465183955526796170242769071710824593268282194246276341119334323226633593867382313472008095653590307237023627207322694813713448951459633546230787696154334731108911844807347110325670537189471229241512266027966949613372114956935390359028794091375854490325904631280568827929954704274533434349296342590544538014250016741640706696335636269792652716956918910800267298367146439464674870498131649780382826389083328154877843027483495277479737806349152997854290172561573823314460377654934487289923174210620392430396426581653201961647488533719679231793562419308207001827677051635789664330183015168548228859383068990829768316678054992026180820382215138110155463083583012173547174778074269220022381205973608592448268221078246520720086690917900771389232212247294320272999680681793843106913946236671738602906801189214524029946510827812621983171209128341204003602413982683005155249855828828216070690877444229448568142014887891919658515897224926934786708876729599024013662805251467956510203730903242316245737589628193485125945286023803459708402155971208282923508538801277082424617648005414358466900785539959502848771238849584424686308120240037404964428083555648879920652180069476046194250619177601422897223741624263129841866320347774275153613690366853531674745080783275532024654634316956041713425322806885582592110539840891968955048218697699751719782897521167059498719171463314898851858454117815181140027212506987432847802871754283538468232560520467899698791338498652918481050855643858311578456648011097645443494180524894322749458559146552695255930316394298040001889508290184695103241180805499450748966990483592552400673583079340449267441858096858985636542862995918853579005407034804263260912342404811997659805795182248454097809039168044529021500083737830448289859577238553440323335434094864375343194860734511525132667307825818482878186394474608629645170626334670565570750611494019726113604426069137091121552443763965593076609172402529132540507482649751631956085130489180501230161166473728338468821516745352287876101470467002402718736011805431566056552247521703691351537668206720296731468286650047134645628356371334082189086080485098789356475322009388609259368444346041458405268255780844136755247190825056702721608611562030590245388553772777054014888173557079707860637938000557647733855523675183162923472077531373596852697543878095489603171033075538102423791381300835171839189521348423921670679153345222191078704122924126581499953390140370760759923275685430109055330399951224257885521196632277101819774730531649925538864732739720926958245502097235518255464847833668886461277285418510090655758950526993526900495144948276712377363376600228949244319818305279059726996954173981749882164919822638053716111239801910355109843455576130435116413261045951704083344483727088356040906857799371760885560687666162516278958122176482546885688092866056719751988999664813142775099188774361691248212418043637739074240932415242295039481386710792160272244016569241139194951742088650208279521295868632834935327430039359645576475304468774099801908396433387251114123947429522910146694441280417939796705852377441027702581641041079675116331990709417082053631798418207539837307296035199824628863971590486802310946611722556814979193613641595020190304125122335903107214782455734147433843634214885948247601434441182921947132626322210044294649179456792314904446153468745949896404905573904739714037959963827030429437980887474262511236535731115014364138572072191687156741912207721783850122000551513060261802410013812353414340892210514941991952171182414618239144632315826627087197198899292701241655116447675039641425970274063660405227222943967988484036612216490774662413037518610686666544854503247314753829716589848042489516797379656106189574809485931489589493306983764037547845306912277461017708024416907107953357539945992697165962816852224755356932923386870957737858056493087252472133497898930999714117850179217062692981072694159392552935238368722768305825871719436861701557459634877767939924543933279247178440915252308656064097530027983154649809693233941446301083739845643137724196142057030444589516969978028111760721042162208861845834285418001624775382077237736724014551700263758414936161748461590401309065707918109722814973777780397739344076222525267710766567934374654936148171863831456067841986961133491816418085554983022661255911199522947850152107032066263692257252778417446275031481596342310395468286824602788226587216776818606437758771363967133366520184670004066880841198608974614049553935003516578124007241438112401728999343267189432764741856520880679088768807214362543457511149084566784476104174890850057840723593328817704781016871223676136478980524916203383252808106778732326493635790922459067500544178048797728549654388297851699102037546876518260879222044562347740731807771920011575677617032963840942215687650304331402674952472490170262053103968667038493498141486761480936594426133142720660305485025019130510651288397183842900533609047561126760538473434947928316271909285452695323801124642495609028828401823572144500974330129832200903902324014795568094954116522246291030618961143897017546453897334001230500016415578079301853676594551863320726025545765711811600014901334353424353527364287255081293519205035852271869861099166862250458138261619291912196768393121209968272495842763577155438860345986233185279930409317477947238574416003900056348400006895305507693660378042563165457823631454990383364907611699029632748717000061108204580574548311112805693147064744852810802069593753678393319047451503207807569763004954127904782247376368922851235901866192474469333410593010846121265540453445896554339577654100897101839936197264131466027964567276683284818362884776393498871622118911669151442809083183798248630367334675742799416669543705041557578375086533170798983772030454542822623445386386726764014684822696069535014759764826685437518867914265726773606906576205704056578736926148654831771168793552042086953228805815099229772135149383192878821576978542664014226335856736838006931707639754647666880693475609725097466732732222995740947609727414856805026483725925659376355300133435239836105683248004324853239879815771889834971901789730505542084271478829126899379661610404175299304764641590900439939694086169483453046771800532800480409716585764153580944444382926493794539968468568865433925262279065728056248624540592239237921506824958742022099432725746300948181837167050458468504656524276991711452536101898478967416211861214151523798356548453211013657916850793788613744700855811211913268202023148752314686276828216030013793074911847298890448616436094173036097713721348845296243048682314969299825950068002123034926546284090989681711919262275650787349242585747146098801488881241284765218020607668037863228532285794362718561205337987816180008708052885547146381713319285299833077051393604069658677777469444284197161870181374128866949776804451181970609267679641158241958975496004847435416994660972559660657690258058402979455868085305120236605146122073068648383168228389246821875883373696018146026236387703115885185119168346869117495666053921000448556984970704318484003465027624496149681854646231525025666538950795409445359892607699576786488876166688747955716657386677505205248854697123736085619265200963149512486134015056889383190797049761994293888806845604353126776900855861479147945570559290171196241965348101309046117506717045268907110194009055214913250752421400875096016610827251415282332610707879925419825005120979757982145320842071741824190715879680317699109319640710852178833424780383728687339693146618916313426438048233707990336328981435940397693117856842928435785879366297727590965204744686871429293439099714005442204314040503645721491766994346511871588834285869688791872880206335553479170439792975232280526639925003597613274848591439500936164546177353365172553334770034580077174082869980823988487296062469813735912925506521543162378589903097906859509581438164445493885032957312730711884265920574563348515553194358976192741000311226106737835280762726432494432560678895920829972359122229127179521393326038745152570542714326769133373487300489052648234421144215103750053090143972590023182656083885017580667502318595974092112883495092199885838922564264543280524440372562744723580699230998009001642387776817939751512426381847957074076737964754308130608025450768914869094862282845943497217897033602344667998822946480691254421694002870436598582093119057047407767127727247867932231219656670664734137172843582561203465031775250348208343573398100167653132997828055723597457371484356109850131564931813812935005798189471230107878644219894487569169805374295591931787526899232493987534950055713910599104252431675984445527771562820538390363033640906951657606618359402008279622342653375129527810298238362063110844238651124907862859522491070818919637350715846295932580253115626552346364000937449707521742349801433226645689585714637460490318902239621808018363643261534081111328247428439168975021268229292968705472845169605803481019542880562878828471920826100605078225648597400988104108737369410503420624388390798811613673603382472195458394900662860876721155436654007279104711780240303028656665077035402354338117343882745033832388588976883630977101333139894366344914501780391074807613838611759675560238865438205162506293222058998290618152635012308506385098798667736955863875074155808310312839396668597920027755811300116961783136794678483430515335339046058381264188537252519155055835159243666365045131764163734836847178889323217780761417575544807604897773902274358390893256264518653724121184632875325629201757091361094740981363089994073388822572127610748270954376257805724848955781777578691791735606884576728228931999921899733536672664320169656364764128220115249476925965853917372228652182520868914325646607917891918088312483953559420804042283440086706599972810745466273532018974211147030440754766095261795517541432816234992182965312327848215768956921277782645230235053964554481573310429387363871807881921629081662581330630298673356379454477635616053586758067526324799638228419251621004486403000428285432000761091147152330391482421553995672820589564320152641802257910236103048054229835561798506240295226646477028681722721107897674227581084522547914767330245278440511847565165902321421025242815159362921185573714784182418196273927714417274703336663902161926803586028344815638151076628056638280115603913887075080841050282155255912764532421645215943619591242474822534392639872255189047314033838834203265913518301250841448128045955233507535595107489518920406311327565097012548709268674541285972789831314822260699284435459522349401762856136980987859403683121070226125140462683371728738526572624789867586752014688058235366086292989527306324127451362595404763451034439792802403935519538829014577780015451225097800597487944876312718908882266289150132512306299924115053482283217445725958436260758294516747558620055396709213231294761522836272903876327876391657005243527832276594794536926163101917869620153129269987985347855139481243950773707240887462927544266613951085338233512388593079730144671489814111879809892964585118745322299866809314526461512543474581015453623221691425125838949628411659094712389531752883037009393241806931326182296680898903159798269075163419478540138859953072630200652274087093087259760180046702316566112429117231592860513248524343109314796893426603753217470346820649797719630785659121288649845685329618732796034182797801253548126495561086359772933284855826998330864150629843890327277170840493317662129470060160192844470986163262249613662942776517944043121885352051902480297246805940130519786600757569605874271901345060192947256044617589724157416006752561955064944373810838650955299001411089997335894810610169147476437405826660580465481338469899793323878066503443688128880792541264418990067176483427691112305724134380947709771952505365635480805726852609769893291545817570941702921457268505575821429634459101990702340811071157942120980902699813420699129358125399784367081470047772690047547578533063058934425457850355665923781777983276582698090783220101273226961093850997932365323342137751834385112441617351619609236695748288007034777612160884994245771618326595073098252887015796526228578394967404973296549488988887748197043763940039068378414288243890722388682902196621236638541114121573344831293086703561810600139842091229321352831246603896221294936313013334035971167794973309914208172961210580047755805403458401367949849268248914124620735258006075441142152738643871343949563559109591396585129064732030859810359845375325978426038652056417618225076082448381910557977096371569645159920233872543976141767234618637925112270031783341614923627609004817142067861689133392245304357208489139423860529551824444775651238101421615866965425832531147886213741932812621165453442820015317867031597752269631133535584544187974698647874397755203697159339868177376031876807594689219243161395043718444864782713535299902488971297800193996889499893048701411295149070577147671634470594857363595626368103848248136625584317716208973868903262254995533004967841435820096709177675771514529886786452314935737450088806959637377126393194204791509721936775121045032367485167903190131392476830671542469596523367618466510346079691379306314573338595831943915610839508948438948176776183286163512767902587326917046073803619375883376414909405995883387597261595957446449796815916308175265684588786431355054006106668387270607533165902023656163341728966777084353453192779520542920359249031212817077433151620256100443613729412521212205606506565486287426242829266711787064588268545443473512381867441049130992416959750192300789287911419070961994431006057329674537702629305953376929296131933336341604272148737147227193001938307224724159575145861595280363337632748852205101005883268835192872001263279738774453551705631137151862084032308485526356002224419380996390778443125639967856354617075497424248070306646241079736533948296502044536689869874212794467850900512822867130497873072146088284970800329125198874681719239537784569494088234338087990051323690715590920411991470896667549348203931779005988314282521782984276052268342571332455567254905027833304411883421040038423118357882578086653115211667084438582039874209939416298031484184329096930756733893210746026725715795140142748016904262746052656346713772191648625075177602140016370446476398332595002317243549570731668544354171950135256809686306831483329002652185481376671702144879520916216403779984003279545694797345250978326145329805768732157486906923459404495233202837366278760034956165809672658559162399372962635882371317989692469742848116711721107582733048712096539793581049586010027407958371478759727240297753445221776850341624825025834368952469204501592901856502836528695406308289043285330375190803530564661881877776999379664358980521948643860788477140052758370906031032553234540494113510202094051754745134890079296797837152253148175873994461746656269299861534081051783949471610260727687149899424331958327510198625101739380497227509371613398907416151831970182918968496812014800708980225649189357583492198902135137163500367355286263416784458196499393499810934450533421602621433834221178958885262115460995327253566286950294719649302916742616012593339151451914738537928195090837696563081373918814502712157354363718283762483747246087472187885440884365539627099568649193233231233696662152368112557552177785514896312932591113388693205007664882044872559160892437699713662069923835398417567648912381355623963204448654075056890573919106868004192991714967902567382800707027701427214314552741059310489347402731712155104832486002946182569783490906141489589053773391887288564162867543581253965965410943357955226239963203011683226263066224753298731494633606736616518256346354960787401439091541643295314748893835853504613885028617548234334559211128182249382198400748642244317275514305155285707565422808570827369730408101378554001046381236809525691844011377716310009505549276794781074727062102698459977611876826635076031651993339206056214838085735504336685725014661328008210384599844278500507561944798147800363266640533176345707027383620361390416111208161782106097696229592175578896032775535968537799965763982383181142608781101388608746095488380471372264878447085787296706644547939351988564500118582865667334073110054846442030923158586743553149173673346884327760927115273034177315305857752546299872452933860038002278861925304814932185718991572845521201962595107898657279287894641982023710921216204621932906194340106305727082081001136972956176587435834124937570828145189111902115028741494310766772300812310877922204959538096881842851286499752987118979673644193885584554071718769322617059530848988200171256389116380234574431874659761148413485702774210735578048215642198204069186768753830241425546829509975883405605796773270898116165827999221268386713238562462483257546874763179877186842747297290060086962254917601265081346451699856287267822830958158892724896229858078990382386305965062314013028065670931201139252842084762360391771146072745762633817664757524742855323664380312428261746494732933534324763890727048380596254928401853729264804079591972248370041339771666848413775276366225235946945632898555818549886618736868797078539988875497093636120439021065548223971885370542071946860652966337834359851191612651076841324328292821463478443508274767913155741765572861232301881813701781561865987602466013387636187306045004080396310931940113292213679476970099118069642480636972957679829092214293808697221454869365516634895844861297393936675910188015966910730685180455549570923395809783678111238618884484939987208802253799530355877786825571542582797329003301760225747667271803057954590532228192950255943696165792743964344756584027202824424836322710252773438027065835645061215844095575022176447308115755375161889684151459758246582451698865198356273856852672632283758049789185679149108700739456925481813434604698450212948482134660979394501092483052669274004918075668294852050064196184832103625563563364857290007425805665752062863284594674901591484825123255300271053513867324323200851869595271348575501240492326289879499639390427865934194885094068556934485690330025790129537950273404913097382726429838093550984588668381225276575481049894766598893605648475134998666556484657056496062376868332881026018902496386038670120941331881749939947731778675152896812240952114688996062990035376057723450964687472636251686117954038003848341275114494833863841954235706380428007069856738935415942177193866490732197329064783475126986251545215608695872396520762974610348185330713581969359640371671160071336053641589855358325695397403762116905164875440048650097656919995307962070893590286480174420563960194825378183120968640978988306693368406044696139531278793987033486461058935627908493439437763675177608463905805862350906886455907924143859403876872739601559839772804846806873397097102779743784852616938013011569947395630327403368017079439544131322130222093004548392784666805623605316485006047343373878784773685574878979396629285350275802400267726750479105727697076916787679128037971176409789133344134588542233343549179260957183607841342269612613908670645513994476642362722749407335240590151950997641454931229341419462906409378158383870206531214847709828034782993406425589215254076849870969359035205808754492325709493210005582399880964129745759563808018989957297622199528265673358701824211009739012996498893629414384860085883266386867371989298915819438438654043173389055150107247206047536536962944927245820304115038856828291981776164349718903585503610257046233103268023781977435903988142813996111281552918964561129502254372201867550664305046732328315829436406075458167364122846802714097696832250440261648646739301272096235523300995280037994877638593258025344497479937199362337758181892628144692102863086609120588047065746404503866591393477444769309532241388299188783836914755306652332304137764153826259739503376395328524845682971837641388783768463079506852986932310880634940376740790974990497705707518379435659150036958992358068485180513990363794735537318094300783908601331145639484225647099088750128937070596795794123212359857513012408567924665490428248825910618480608580294013558478867424557833275361126893960900830641612630768183449828949378880551068901130843665530738647597164401223230745520102996160556200490304337958033524110172322228237721373889767468598363098233640982633196819297547268478322260573501085566630262751769887832439347004939035473670826889222385608837073859451920059462935354111811645819068454298543164003779653913354881889410721060766034775912307963449286658313359529548055814840297773389826622714499093492514763555795198169001445572789482806128415659634660439229525612919524117997866722980366946530490932169835627170989192959316811429255257173467528753890715685408780048537176861169866371750478784810817743116033214862015562965010271311861454355454834494202584873548165261412220793721433205207649841913436697825075938471109570328165960190241790191715890752099772094415148528304353101739699147882249695454150453420032828273360299845413426684677775165326258890880521121356451316787981026573129839020838444487740290827083465865341673277848827927880822712839690163861066781681344351721540984530910801863333075516498710087083454468210589919374918469105492877608588427694946363211579596653488281957015072807194430091179093929461528397638633936311248019972333612321723787926084807272258076303940412864805410763533161064731873732882764815426790992389840358688252533997999518456127139493741675383905777261607083155697358395960297252080552535573592403261908838464133630316022850754679379924036553229156750009799145303540204160268608736645631813390307050341804606801749533569338308923366660241554280099824912307724189597391023035084763334602875235494119310906557694884018539274629082934240119954447538014522011061176415803629468940261271899279296050939837198082406348408952604407207586380103627047968069775918626982421870250940859323259301953043443477038590793632900748949360151174854887122158864489659479777627720983449029459601633254345224895199105216282225187126718603290775717070542358914292239941024559529722068188378549370354205048431129599271364485007981769770577528254841240751207159419109460425455969784546463797235190307420620602577595177375688578921211272207944629902134221026218509622956136279256491898448280849846555021172489441881331316418432693206783295750245186020608973519349128722500453662166180245638839772670126446833383123945972587746717109747613258209224167484359809413423896583191269288947317413842254760303607171112093911484124365605753934604260049793239717718735469927506402061449531712945572895240540128657947654269445412236461666329831121489107774361557953301541045514094994275342221197568506002076385762637890565236159670047659610984758355818102505546384532119918146285772274626186849658718202038606903303037319623397851327725970591015268047378418466562745280756299465596731257430202235790030540069913455720514818656624377234207510265140751440273147105474770403094101129376938662476649031046191130969358140197852692214955628608915736428002181251015027053208972115639239710661755927220582357008452492902057209651497082645046756770950181319305040081466922118181386610316127592597433433465042419375092649441633020924854904013912200168945249159399098940752879956087225617438213808439090776107679986502073774678149969091501523306114630522472809637617584307938170455901769674503227362121479631802884951387324411182622771520183871374846247345195068536553205771611416019664533448910993126460465426523869944207084235926866939689300437447901673412743719352823013026473291428502353776093903069149428929685229937114641735898488836423483374354534789099636500214921138215868665466383089136190787509633891767673738465276274569446329415410442135415562563863283876654698375490210725300965667738554887878529150934756657753050013279782750223754243059455458843460876089117068884592701675934663201804021545260150527041027652193658093000784159245431798576595469268816319601164073242757194627547355914070632402082943007202022986243601638040625038183768038625395779249973468603232748825583346049554080690376328039017527012683917623182082495364357160789387952917639795945381377795407685808780523646194736220658916847916784443966547031493907010946721705425448266628798523901988074725372408516988616426231898989721477273747052288251374495213482794655800876647787047774335195357771043075966549729746501564443071131362749203017948355895756480166033061405024443670382156982499733879014307884216238864645920489485689026158610467639577941457761115366425688056860043400227890930930457113863473508657841815402182028743046884152021204949210455659308861381364329405950598864025724823327289654245097574642679286299023111373975579903910734813821105880293251460308441733952338637378660717772259017709822178914696017163994529619456420517800409106900926662665309557040833223018864121969423882512616254831690561751333946940734995010091712533409381889910833783567750676818992344098203118344189950341190854358893923296446847542231144460756057709959558370731183721554405510144780870484681243788514803448780572426307084145169074592904909870721604389613028573290480852332188961666286463081154588058510510910680541454872806346300496586689029731379541722611599648721654671695995706612231334140582671823307260853352422085982183186731958204853868961507003057490634218130916116716987452385248612478489242401773019334162437452309559977937111769518782898371796987125787909108117909998564903000022673374135126434850264452637264614941383671197706521342991922594926686954755703984266338234923329904150894100409156959385209656196590712612718547141706045619414787477882303137155837409595141653999694452866763007879656359614763208130681139350195445625170501723245574498438788491815733898678851862272454454259999137370595495125679872323735118613646386766523737148788321438813510761906968071269058308208419662648397950608859373302277934006043892972726346371495727615538566200349324709876453566551568622502263570766208818130347268794796334966723674341574745961089972684488258152339850457288041557412517205308585918342785606124262795083419659099523403577063464617357240163589754114453674676652469809978895306239506530054910205518016966501833997327699268301950561868329652554588402029748888023330642250181912249633717952027094864900766804650064405252313700839033390454324306856448420599693718108654645126953509402291970112547999418679225114861222267740960967752879243641558463735522007874630969833260770695769818951803828475676345036338084705832672048479302148843721185577102847068809392371982596692510079060627448284105679023367493342791842465076596817082937025986732946039590266757486696914720234511629853684339468199746176696783181582435624290340736140192106179385405997112103725855334174324576460991214526725697357175338079607858117126572349044782151370107875283412823455803830827030918623338351920515977128091992920072586778743920194632987185164054362029698473861083560194678772739138621574739451119022371378329232446247878331322470412159179032049952187792443035570818436941264111868542197635800274287057873504756665683178289544601206664474596057995141633809677073371917918038488088925739738205334254094834251388278857703915426641867309290170260229280803013209393740741616163856402790378405045852021627674849175227737651485054782286448982069686336946185942414919167949679962695955086495108398647922322357622549363376207791958362857333559623688413866968282406360674415566902520944918403562141484224646969129901233879827168024866481563416008228333193779680210101538926574631327799615991779731153752665374752311785212401762936676165214376319805975583031647887191824427032617774882809685792647623308191820083382633338797032307210782392113084778908445712545487188558675546953653433667972925771748878505611316419107381570006384978345416382008433544829746856184402984820754373341527305673247307250606926268903080961456109709167194309072117916206033982421408904063959714154831739114878638716278663607108569437890765103968034852644327010380857142334735127247377909979477381907370599597558594492861510579363663891452456885176590658796999365911309968328067963948991079032723064753500089782253277129589176588627843338595108680844017477735710496278997900724063400786448522992603287445786807411961076921326243162199660858623285332163308954399006422833980538895458205452318921720836182828606308710964986611826030241440481646140102331030687775023263154204253725710238405118745720383431542337746291087976871233729226134834099573990503549425562562856007052950158310323155341067583764794257112173605824841621935209070601006643437739819124913144960325221950034414620092592315798888678892925525377990959170140991267159670954033171543481902446508250716945788726585429956774530781659864485455570057059811698725952671072191980468076896948319452440728133808533340892812101447136576073112825124278317758752159261752991828459773636600581694051104865267771801584234888783782477250598971695833625078792201762887676401847614101636457759401755407462309586861364918794812645622456539957723416679010269030125934095229907961184403805832811730969530655795637462866176795135861824648379331666273720192634406877148471197618299192825506764620149163950435655177989141105140640254091688979103720378267114776471421574498502665462171657341286449769558412036128993409848735310715972294844470007311614571395487075164900728519350581118920521931112078656511209335299957648645069603540428540921798154898022589587828607179461043554045404497603834826266830278916454796507134181591857258297480431632630249820028120670037573286940906850017207483005980755765981809431781284986608332965130525874394278086837736483846824535483637284952396742594644416219107307503403179339044285505241408123388142758385012793432675906931794551444933936495486978264504732663263139793183170674492921205826227966605767373631990453458360873725093238574118368199038607904271701798177896582977723281455022741276782830245188548285734479864501905383644133612603689362711983462229171194646155633324599206286559385647293293587363480767165952964153121977554228353208374517070917239464856272141964622668147148555747398502195434660584375926608997626545898020596554520321327188689306913816123074323720574860884470670529274760007332670766115376776552339068087284278139892568591300179328322170855755949147753820885403344442654259822546813023541549821283533270674312235599787234760125326000696114275990040800196360871265738198825469917387483215516796946220333052604791866464763946780388319191783962165811307149871834156438400094780930396681889229542919396593330589991861705765464885112246957274450932693567469061787821717377111655053425094097322310535595526802327174855970035749511059213671286821906872519653795459141691526476746625879948643278742519183310097720992915504041836453309529243450106875408312775934399293889825199651750232288413568792585906580457207588843872645684071428117471300221287769439474841672553856248948362938564285403011360507376490574366171722740160597531048218611574036102875349771223679473676010267354122246552907983797787300701008054899366173169348341911168703709656785453197115850017375665969543559538341096354932647481368608607123370682386919385290184320060416668775989262210983912597756970874739955755254405927549946113841037572873625254000305329432883817135113856081007076464849617167888274498309231368242804753299961270195097239887336735768314453421891017914198545634795244726177015287228042554530077181471602865286080641373432937336990083149841459009702795404993199692280066467031904661120313283389860618200376379333288199121255486449028032405308438657701756829899285919318249152552277845229142907591677108539105969275899942325208982928718687234001163077575639871300128917083079798566008588321664111313068287905520427544440230003541412654989454354729883408460149939673487160322217514842814893398206721956832246476603670284352393748951914693153585734349741753711264978723634812185552965260170158406426431312624351898249742198881720289051425475370352184053250969494507955445319619104786284649466208166940076993446441232272657652893621809026792186112836933550806817948914002303321963055899754389824361614882530117463996812005385793566470697877072212048436626224829647459320442545982682175155575860155551524914959490126819464068997695381294234872489856738084043421414894926914372456206101383656272561296944288241661103093724597599532498471776410032531684381705605728301240052042330169482580339907473096151948772360904197705022029796893823778558945738455406819331107469631172085853740702899213287903424369006314030626732051160749879324158868661935272560193159138386605296053310479453695520839870923381728438175716628167786556249553405264242480403953711521488372855834238475366184453296097381017045382286055870739109968941891420374756056370282954739529036561932418985058491678702055716693116603791945220421742962144262958791335942579175766430446454212140964809313651577816822249150718143946223576038223778085378370846343619978668104608924766455544544998789331191377329695123064478434493408210776130843237545740514455323977199220558080549557440712691868289651567376802900319610854075998164690523821700219604225412100715173570439214700317998245643389035127634661307358446184782985078616829033927367324946935614720486074586533502825561495354569583399972792630783039402179105019015454863328100594291887967302941161304038578438257352522025121440728093966792776845559437713806966472447248741977585995272180919130693253484864183483821189666081011380255043954396560039034937636143657989239117335181688318752506978653395638478232818018369277170817411945572524092791742256059006746534865352609163250893035701378195160635258135313444365700190878283570246726319065321805275194452453473518845310998141430829241964673418466170956379477031791027609815528349605546523551135308829621458688926484954963011086711303628472706391105004764280995338868360942261756240359989727530733624214585649076992422327133430430744349719031594950903078721487770103975396202898449970251248245804206451337394224350180566318673624887262999321114940409393208169240556026187975075145770457864345500950876412855107028391725412410992934229158801141309364876775986771235049265712844525649078246073302523555999292060495411296651667667031253258691260878353422804243228186465934317064777416438744568957146337506091719804590516492502332688859277021088019728034628562861041648211079178418633574899877762873932546097454075417211253580884573179220754246551433770893874788638162018590419930163698390780648905083009143682374976536873304211937764227045769697300118317569419076479635385368390389583521522139068010100440801409681835428818780352658855898940254313928201359629578651792451828660306888293192359940603137579293817444306781182563849156755519699177424849611427496691431693375646274020597813464729839816332552115784416526976992684482164608677679349682475316686374277901166058342489806644122745637148689165880795925360751524922611421495461514728178794887721275521750131864760791564897148661172604740995158512544160238597690100283846451071967086943422270250375817514906335281238485244073344666326612792600508358038885378930809320657398539441639330954276534584882057786795272430522425878103778246960968226542894944927002098945403554717889309877991696157841704788512622693412964856730010112957698722366277193574495659952401834953115359752456601770310231536606529618915903352591631856413456352533548189793538384711199228239880087785705659115623841881690530650729992497020028471215919729484668314341917888130492481553924674163835745798476536797835145829158297493007668871267228896903826253396567831661790241693701006228684693042762680488418371510328811516773734815328978709419259439914097047507336361280731472983708955837666153422606430925579463434583695903598457605855950635541720062877307016097742200427395827834071754668082158622850238637502441152354267142933021426058579686448460820225532029721158764246036563382709383113483788535746225844072915876851792379471316632933404365941620885985680485135980246333190378068804453320087412282839539106862511005395245708817985394620192233514299753421998961589326292636026195578881972827020380379616790645245443087462709019668929242561461258961720367769190360561736071433554736861249824802317484841064891574940908657901116620140974294654778542827666790036590330065249813941708979405367302008912043386008114514734824702580155811005668394617138211040899851384053315668527179130300049047688109558024551672548960403233173920101248455087486331685079588221260809541712859828006507245080251094864994942504432651220561445071698738859275318759873223122916193588261004152129457762741466625296816602833976904810157750833423471274528943912409027170282283865072640397377590001509965652271645420512507268296368279114784716705671941746851950481522924127641358048625405872366878916652229989934758372243514548504268434808692995545446236142938384558570605066576429612158002185630410932481423589974232198132703243160408735869195877506569635507472362312693917291152815139151927757308654215155065527263394569568599730961193744771671912489919339809724288940144932117186626406913139071996231046493828546920614333672359006920906990677692870503634425547846281158416410532733206518501875768504610953191085557087657703296393687754769556549169219160798492750329908318714171757580168426090400374961886779883070576244962472869909312040513239590136917386343590290953620903990572745022001629306680752358803668770277228891014803432563071467957713816718391023904305431348120828380259308088788764324777041493312722634702058594922367013838724461823555803821729090682976353023336220104906542408576323929014741325106522149826889784488287810731767151694425075856989329829523603393078169779634056588894886849742192971202356037198395088409273036743772742082427007249285524319448756407105166636420597217196208024830516888089245304137141093599438614566594963190002294525432483680528376965907769675158070922731261144181875428776850904514713594361147540888438867053851117036110892345159034767602948429831053779793425947693115517232030267515122764835889376744958936219053919020597301432876453849767107973587708248202363785728892455258566310808566083442706007724383058326520702564962049246683353651695031196016383115546902199155330599304441808411133172615317055746478602071430025903820631471635421472021600370968621285725637791594709472487476571779613093995205844644908019809915580430089459293422423550060472522214044165511973754257845688634727308733479200958136699219519508211679745032686179769848529457849852276732856943964025465915478206712603923362004569553953691702448210989361743636027075032226800511744917501745462245145952281884545444670423987386317333386812691153552279545443182978044676251060935002892161243824943955337085985083018109651899782047240216769098073534998161112765570025845375327612945276394994724969990340249514428695920811481571097577960899105047288763878784582853497419515178812179940515275563902087647862703128909477125430207618184174681934302638846191682123872615087644794284878259655054793379379713680705921102735579641696593501445018863394817412000598338117353250764753447099099411839618121767338988343369294454866699436468437734059432447298859289612032616414739262024482377470785566109542961881460889374178553329406239270802295361160526157485259453627237005906347625927197739137562335278570776304552257658517828031765852579670572432275870246066615446987935449341470673275924254470983130400014455248803223047959445714846913213264334135463856980448534909028256302469468172867071558601687900461633468156451751704439038220637846631360848331286492939249582069756876927105518436972766496056084370421182527056616286497711624383331144010941052642560104561575221599162973162284510717890981445627337425048610710325676982871772953040125509606184932687142797965451981680908802166974446147560552167217701155890783490761853223240871617419098833659657586997856625154292325598481308398113804979734335188382157667040093923519794378513355564409133602973482906991870822496746138565254586892193197263666537538720616640493872558236380259464351929558286198918157330493803320129722433295208298669166298211677491698705502400007606673316556681975609710536500881302044641466291892719376079127650022849181555652716529156439909448696209830663369290659241732167104627353046664252570818025802599227818180366659613329581352462411964925557768642663647968955627892588567075373702122575309463985049801116482660241694244276901207902646471094398693087845245478654504967452551785792315271926045609127195806634052111032304167188790904080136189898270502431305069986749139479533066687259827087572020459635665910084065656911853490375712223780270253806647691405617662176971817390896007491081036180865476247246756225118325170271227899944693256652566655069308452925119230731642685408141326699506698807478875768746385924682971587856108494551466401193478951436410326972444265293232372873455358250939454738515047928724271594645291798485689885861750247062335490399544842680692553161834811478773102507216418339186964532912775100506977642020195748675196899511033426325162138232968985638584784144905021067221906852257446971992409220962053647381798251797045716631386342092708575588295204175404602380443251398166465411853149370194108278377639005209411140661824536706638008772439231864028570928113265203615076134549650563488656305158564694982477503907952784984566741915053049473989239721252127016358307905413538432711526073923703000988997658460861200560968891032955140304454319641171215132739290957921236068451327802145478515361298370306424757252117614489192158113145824957340435536201790446570486614314947581836765197177745162361737456561328611040783160882160861381047258279977451237119210366076507587746135269196142387981710078844858428024608674200419810555168625900797032654056357613586756065297130735963141323815228875392124366464658735646743431302069778596432853196781455689687182593021033168630979788644966490030657058157663377903393009698426193178531904449248643607136716685948161610517633905659108607405718690650742845916810091048577037674076153347693547610650789509970459360207135108733292460952921727472315074287793256438636169931782128694894771832503739148863179276121458230789751077681428175287145410547890814367677135937990210210370538930143194642065333473193210256123325353087107812058526796916735898589703630301338518824945283878027195744867746784291262941323988044337017687206219147042706058306927692038647025632982370113234849326921416349178147043346345438399041550084610278484587927625930304536406515993168503762079434545197728724486091631430051083913825430036409590578059508159744843791658142824829268353122418228611428828243859008093359112768844256076337083220941405787793682743922812090355142819346503906857565409668836366958558833521177292832415617114833899403788730049368691124188972254855096495347900364585809149744267018359481930169830225752618385816510303359734974330698466055795696945960855782388963148165778772732670555811598608171757187993557679424100355129752411584826826339499980114192299365770181592130142498627853669347561434280563712617321407423004298218458932983078162319689956718107322785678190537891575188813899578634862244614200565510009415551749743372729719873077587417142238510658214859681247887664920455927206399218162105198191604454231004449202287954941225255220755267088127496584111185007265389432223888805933703984447767994987379840452650259159311343639947258099784316086468234525609947244613743159794443881601363798844560829568661586452991305832292620218795504958094646841823363682335357900906004486909571431060356277552704266660739335333869172838680630859365333656028874791500162989391477917562391570268840531410734029110152679261392032094587712190530840707196471525465485084121911670307086924664900945082548057719467413162176491847316679851609321409121725899317349363679612141297207714090070265978715725319003067002752472141655695929741519804505274729959837713501012016705022976640730805087604877588797720032546253761434120983974632845035554580941803944944513754605324773131739159144408914889038066519359147202070783280451492241503125667591516893863024338667601621347714663683320220212683128967910566350090369364966233999417980843495677636152303938979507569128382493263507846397977424317152897435960403680305638415209044803023892826900693949715136694589630230356440461307718550776164158368350126456785283299806855865748121033220304279305260921201118793134822150195732939990632397083338701466767667598781610668494718368165590584528927305326205701404456113425178256770862294883964754543777871972566025168020833301916500610544999140117279588220951981659059450586471086082520602469890656583083359316489579490416788395436107340845969875982087668960478879690022522703710289195369371979423548003171113090861940611529974431109377707493646478093930598298315036658545828728068995634549427398463206434306844389032822719872991438968165525811098542143279826103737965713230392556880040938675840470872811024227599679654389974773673117822682263703802646027980239811769503817070542182339843706594515409557909766474417201360214005343351123902849130096419976835030439738302005113803782441972951371413460205054894137682222760348172529379174935034393556240400294804572231605579589406165760439715375490965585542866961062000617788253084277614951259025894984203777302626294717407072480000997328761332845849169585134798382872852301725505098685035443880817124970017865317516224065901684964692283375752059609011478626564874856046333328025827991466563807559893694644109000615337121481977275848834883381913521869608360322778588531938115264922256044635689261589075197457360845862022022167157522740664989104420023170671521050816221807238373442196802809952707997462455855907527514342490283158342238583921495625804854866267399594620256573249622897247568792928015977647049132507752867012633084673292318417656058018829679032659413404756412876555385618524605264980744897097246108584367771524237796679582050768123928350306473081583680198638434620567269475973479084039553057825504578828108072235814516045221661659014657906836538913749448057912907280898425724254430827440381399738620554971199094804941045352608184191954570877701137932329373035093295608391664662109139954540528722767122709211512667507164725592859146433763097798156549668380044760650884519083910921725190001077765195045614214650456043225891658952533229961396646320087107739730691210167016368873038048064426631309293514324290151085611788091433425046255944186610961373830248013284787202172934567067122804877276805370876709560249444423693144953973637338955032535130560619458321397337419244939717412588282817999722315547090850981125582176056220987275638921266886371812535308124399633854077224672601194443971812689215678914010415673560623189104927526406489912073147166652031037871872873318058624902405937804207570635683173699771985567055834476097405131634044395275941816008936321669270161087611063958574770552666795740414050796424395068200899647082942363978456655351853028492410185665936534491408093838067931624896343996703855405110988836755670494378613226299016216381216050480125573605584768566669183445034749738352716795721518374276819895057896345574773294288616737855677717873891825333494137722618103577383474526392561690885581765798164649737957639678323274440757089501778288160978089065541624678977259108943150296424473555314948728527937054551576304694104950256984526761697417580644799122580054797760183052177407548590843668434451471342341787828020666805249028898468551324131826381466630977200140753630014483537286370019782964376479365060667349326452648616678499119583816277178519520469982300349815328928104950302284731304918793712139259235874222698290033812914942617596479304852414599663579123233890157286895894176444078286321178626587085965201343005161782996445712513964858163622545478776858653602509208446577822010890634911015318988927760264577102414954833739578838977464605333058693681840785792671705068324587225196912536396973442949892964600146883503783087854973962946869479322314075036105525692573670859322865202873192976425594175555350528764236833420163912408783433001225394802353468079590209196527044144171028032113220031205083175515794910064632321981691467307415068133370986185666643809792245298228878474969686105639772417360389985545845976284879705746499323347188796347346190675839126575077680938572605020978312781239954383320239388034916535568589993670213608306664374240590628907858192297093148402222093775594976037978515275836005808399217681042497357733778860652397576243649879375062776761782516795289832172268248241928344503901503033576787744848935137669669629785095632853261166980290499436477579272512041650509219967256558998759329233817803952443757842764030115784136057225536606521227238239777526554292388372508445766008422324200695487656903909628637241447518444475704861705853959255494547871057201981747968473294079224368673543636612945880418481405739648410956205735892223967782878545196885497598778493255339516734918882850751841373628495338029675175649165599117355349919159477921102172635216721689451176074694998378915878369222353473621059903070971154078116655149113246464412339829537192200972042434924141284555392733594642771314449419670731783402367863425199155874299881944028468776244533519725720145959798378542757335336972112314724151848557235403928760744273359294752819588403955930613725478440930180047904151066917467020426961835496331116697112149831957550834496585974289610321231378473486327925130794398153314179152470027483198064322066441660760387866033220556278278052166065726425865160321171997002249256696277379507362849283090448013021925459361460959119067406043988116595941730906648678324167620415410215884901408375883443589894419595636711627215220738862971364429990017681111671342216922422943749310818121362159783384735252198280436795765279577792937151244503600268248809362081017933699795173725809966415675508031606037952450349980490384670268460615950775490272090154508652971164936386139483337748806317469538200907216437352840559118908883103021677941531497767710885163249343381319721167286736658457038607879211261980739331554000570089100536191115934600846224218292397138590058735064906229368774140281817067906167329106891767900469392462931992728520844348972790861482399293929272150768161247605577370248867168099989704777271365270700304609886101116972992158290190462349615610138772253670135015359684297830075919584475631425771515813984857064260147990922104547120150785015232013758620851033688174640000851282781188801132658839526184275944876167420674033243206273871839789434230372677328099659089357509179813572041798594810897123341398809990534777949758649602687834911385978206576646339741148115421969267055841390176820448794505285596422903305734915304151934072654373075692528068210787817841603912883194234073024656698686201804486999436321579611936066685088357505125567941709649082874271455804978689010438408274973769339148497809783502536391827291359007569932597080975854002632028301308423229628002155427592884923646105741983896773120374118188657419609613280107604411894325025605133106791916357391801968735980311315703640245595038196071928645681924593628687808710751693214024665451069369509723606910926624348770500319617746143579200374855558473873133128015132950213315925217622202458898203701088328338658855029848282244740165111584514622661129644947571193014579390857852177690777070085651253218483656317041326024394314604853787098490651459432926860282473222707401194100141210104343463341068955573355342495185831911650038036599289333254362235759964203758894024949158067577270525610013710449314449490372907200683505754884719075747982033258651153252371931005003747883107973446304399643556319094464051515346056034000613989208688934846757242840375194633609186762889100553410967837955261481809640697695698302057160828105959696469909032245739740561978528203967244857030408819879848202159581776567968339120989552360363921565000056516297585759981670612849924636473685153289792822434104356899494174800207977425163862921103982967398051105117320137132545767897053681473318240816908431570479369477391490538483898560594436348956109967432550069679126214227199693347323710881156765151128068784577417550727554803298849791729396555443499935400323647118491025259356763357405976387096027998536346273044210909509600972474818611536852500841205856925736748786736915556007430419892225519127361589227329625511902762577958148741986412497739421408114488937974418351646106964691373134543887702132581322478478910927166089892939107035072604806929401174402816323816831105836144626447677894308258349304884300160454469359555685302112343030879250729429629894623456995874814190779360147164027653392842931589404965330509823347085120435430833724225797352401848324705306267798413416106525939352347213539578732673210281983322010254395788956371968476688715970196428274675612251477267264466207917974465741998321816486613400333360942268198595675503551769362015475493014152788876144490606042932071134976119762487949735812160916386500015487126562726840553347908112445020736692126176972664402328268387635463159462287023763132471369358288076697928088090281859331375887221967873152192980746025517053737150305650867999591804061154992611084682359452213297210654602603757778736497864127422856050207796129431694415849279146221613276201813023546128071943816486487108027356048820593519502240451810725716993628511949455561088186578902906657381666191237698056359896222875738804491161934777700232042270909769102999167179486759423564216981113170749764126274275490158767875572128998290266073471792057422302563053626430470570210106585671895790338093494286375035009536771086635728362443093760821631968849418262673045832894417919261576627492916735843833569632049072742106203223523738998519020972087861863288969554884428407912075667045072567438073970370295828361553486068918615839195784931849170854889268936218540332500601417546619051446927851471535312656614355873876066500698230342580023805475448265660345168113241823077207976573612303877487560912376164107022224468962883117847163981932464122482685770900527239401080029907232382245886952150342351189111096736299932509984563851278314207399107550937529013013243560976779738800900994163225433098594221697191974313904042340272244783975406067326062412878465280882718360687657156688718324861005332297495612253818829778704233163822854289156556356169566864544611086690685969383005073358872433370784839579538618935066033333557897675019439286176450841539635276023588294675540787711431671614917253809087469598719133023893306076126008258326797650805040532620642840958052554211733167180000974639122319234738906332292609033059980565003935764216491254224214274840837038662896595466396070439869296728213611773321320123078431276837728634046961412003264319633045572036061240109719364872436483216779678496352492231878935834163053048953567828907056779662795872782100041758747574143009118592189057024614367324325865813455201997950458382963119626402636387381213074866575500519078252784461381416717449603131925920603882753489010783165566939954523314014824630030165610147257966086532563932152439880085546171512456805128829380094209728237863893706824468461708140982972374820999867811301057114091564248329997087380821406353168989193569971622166504876816248263871818392439235499942926515896380771445488560152225452030372426137937751223323608860004779047011409138391535121560464934187288342432427515635693183271809047052406750083866345589578848102426895617106176626716049807523569440399590978560200768713156674437221021421783514867971283680824526450612981091182288035857220815352278959898386075019553448393991943884893840454078034270736358154596230643845693662333732966698700490726855675226721670011262613981017982035538084948343122477628061009192369006012327275030028276939873818061746936554100371166183371233278324744963377433504606784800261285374064572567247492462670828155806772937036898242513819666012823155117838243423571467849178700015659386073244658845864633892027100714885077060130482967290548407744360677720641611706659571726251190646409687479072686415205395511433737703963045620050368021932632886850128506178328459169978117912047556486668901043997625859403333280391833168680183822085700718130644735943946702171773046646454114843887851807609981862778132898411000023860723269523516717726843764370633163244270025627672090843307193997347891593764670491221303905321737560852679220775455977831001720349759359111246440177190542695209821286009781698848963400329676388965266230826550867206026469200554186550388069501764328812599337216003621612336309195472924255516394715067296469697272101772200646626265853988835799458886780829588867623394150378454660132209333226519483436124360582788833354341602668606238294000066720584404292489950948913680549398721871956735202455193293396219304103017348652566557785193913794229471781075220866578246534642870353050263163503308230364682735469935957335483780760491281946823818318358766159060873144647716177794719779633186341976169849305875443852899842962691315432068393137303803888364191317460890720871130347437357831070372366196575551168303810695330441790644933346990311356241387260495831154214562235475284484745114289813660168763180991270597034501378025886584009484151922458991620067211955466577730674791943428523813081565744988600429616834135512521582339778231711508581667138381469515093657604905814507262327080813864543740678400966850781066524805645647348183211067332628186595155138145385728683180231460541235898996866663394865573419684667928660520537869863645709776307630381496660322852550266560919659343796589569104071456336758837653319503021080969696039293815633210336392740875461433109769916083852144356067113794150473809711501839286478226414097112764421681109024578949948408606846212136241908734447165545556008395684739929318455287530828946595552612894546105081626171921159491754165266067903296517927407428584648355351319531753746586100937326268300915716625321621030277269370706677719894360258423779413026243078630567089847657603724947370118634912467376935784679503451983944014989131144643115094311308221615241541484350379415820190685598752403279305573507216928780508875526367762107669949458874971085059570149262360660312345494201326653537589590680380286617756321816068769788144506645083879607257682007365074470640664655052812716936526932371553008129732849459187352292523942725910904935750653269156017707413210715147485464017898424998491641933960304690999255604496844336547308864737018778726230411319163809759964105496035384895363615150831089985519786226215398032785704623108308843408807092897327439977933977542445600409419606626345509348361807236223873743818394487271890897192135360483842477754847892403638384961851759764204469094967558885046232385828357582993846357085114273993318522920275346280225941997462371882680221464133573833791054441771815323268372038442727259892940991784295851421172093928809458252180650397682692557280600259953932505554223608131558140698108733743136760538710666380512596622208707671150858520961374002749282726600204322565550949081050448768730895708831079202248245882189030478636754042675416529730257218614048432642120380696694686794011947006875686887912269072967980870207156993904877527375625226663507790757547004666173652200425263465927238547060419450744389900830542898818964529621341889321820391102277925502103648302443718245256518109570949924208493680846560086484442111832692001394937651806230201645029535751800257020048607848173487478067508620339100362241651957332738515974124665430147290343859462647859804294259887409989416457478977234159145887128421088258946316408189588959178658872413896146308116738456107553365402507445576385460580469323717352388425687713216246076819294066265757547631946097469810420598108515439797660952896707371776779664704712970328168098874467739137432145863062082036757064009053915673940189755418602204877407226211005205819240869482833467685496628967875897120563837774537608164225204879424473119048622237382552124678325866170939934537445132753971785301009218696524267464380255961140882143761580510337552069274918849620754015301854864088229319840692526106202115887305625594660888000630445418884895754347559939582106958199109519582750283693637879732483006054447616398756058729159424095473488704665832074158709413791237324206826506188236535603846831477362878505462057600780113105643899040340992092897065477620422620186822161090542744610782731598323925651392904067972400806947070492993674925989551505482142409823653755562997029948388932437425128627484355482019086165494009490194741422652106242343762032083730822146308323296116129410843442137473089640115536758839416629572732053124883559205113304204856634967524046501026364584628340463804445442863764283598199259338171263782520852384682736052224276296386039700067102032567116721008990860201100013584995066338128606483520807883177620642762474097299951975040007636813675386970238492174653231781967638200416715566234579074034613379747596674629052487672762270815340218044858481489832880254599580633257270459924086914167212740756240127263545410841269834695640127719989073758454797777817094355316077289314114804316064410245780677352024389365937437741054865880917151316155318562160540535534262349205624234506585414878517591180753663899222287042368129720272096567612124258711558807609468660947202834414451666068108393591791795740316622077603638248166028203772823083716275622591387872003211972668026557793828876342980406055143455458610263542607029208305729481135261952119608358415806855536634566045867535541167600622603236463376723036660582636231571504789615588700327096695946405376576390552528442308452587884418947831334821435618057704710073409886626211423423560500354768901256660255583556107879599408097919914631757934484653620437491343523979593428814922643122157769595118371273175255424162905117951125888310361418314830419939690805274519892692040716899007133402248760058869869822495796611331036788334250511291217031996777752831767759376688998796530702240215166213191240891383995287509707640240162338411221647581884766323530806030441289944140527306265267164839926184652089179336369754041921690324534613324777737720540423975783635660922309736583849959074026495372499377537926521313925274713914981050834536844351943045156893660289972342163917081610421565667600419808662432333264830357839422483244621678487110518314850422187572230576432483461037072044135613248544749049475590817909184805325722315521559779260980262874004604411580256471540352005399715705419836630875232370745592137466129655804217941356206864966881567548178497694675541215170449828514770481373793452529054595817651719497356664009623049266223203098724671252274934335252971150594022268414088772834729789526102176456826617661783764053841434229350816214452184451195869842800007221764449172659170105524472904081052354470348961452733115196244019804128846373350137834913806444261063807877804067074840288512840443524498821346069073939289319153434589354126540953795218336733833769746395023315782375333315388251957487919634837672386556670770883111091243061654765246862379061449736140793815830760298112990494534898653614402027360597642639159392655008003903087412184995168073896935901449042242138634093981875998941092313395521470166820151760746770993696206459730080712020291517653230124056969337619498524446949943798729165469756351203143794603477466637498154129881987175188747895575671397008641112600458905182316085574409827918479393457520050339110666363840536205460258028473090002226006939523906829552193042823026317440886200432376956676395282849797154161017146431633744889036288374459624832829214943233143959501972331798251214569865109071994917443136275392584698907705040085708060610537098868576017702479502775906179662524515538989003002530995418657898073083607528579781219612649314319043636738745326575139264469491223455242588462424946005263509082222055563279975608353337127732799020391196874553187013362133749426601255817552744695164452208938295340272735995052820178193498709415632772459835558760561157870231585458658957028371902609340636456156526668779610693407695536729213208742627115326059848358680953449137906269516016411112472467595443971640337538634684812471016457223579452971608358096039241941418130586344486830806475014281033486265110423248313507731640079707842591307630023588412306416957719061626508046802521698129018398837485143645413391165354599930454114966588999804826824463118401894748701782388182501978727482585693641023435130487791882988192317079680677458800596260904375642986361196298945468554266577023197422602795263008873962005571762969292163163815951929135639027361467593091759206688128873782354954202551285220983744428917723935423951851821559399664280803256480337113527195145009320209918680883705128054636772326390112342346161326550879077625739441287581211629807786335320329242182377856521647425411987185797493635026125051485302884548536507782526316054070466991968774337350381333436937041086537362680096591457620866668853782285482201838301524478826115635224945053960127054611884906366260323278684255589243862083143475873654808833023936008916835357028839187119153671964928299347246063789318264833570430400952189110025994687768320632266458487323456034001321547106043796275382828929766804380167996306276027143696491227835398026695114232227266529755369163137851017526444958888865599699158409481040897278599198377885252941530001951753002777414710697602852163318042906898130542758594070315285654357683228055751661120521473619199464533827637839507496372475343454738625323044857696349802470947905140012022679737783467029206405557770128188106005695003486588629889885346719467415901062361993175512419630956683469289122590181931080950219038458242144189017812809015312241053598368098450885563066899436638454979731660581920957441460424515965618520093715360362993904318715658181489097433676247058236278752201998859836757151731762923728712197407331883295898986498351945480373029106376272708576725461403768753305199657935380368225489524289712202237332368330217293604608858096319982174052465317002310778913064273404181058142259451949143717860123120952352673972242805796672477891031527469995717281858804200165905494249749396991537424362221888573375922892601154017668292036569225230577789596154866903548088947817189342071962380836567646286561922346060152281985911729990827051410390390966673515849155714648482868294104961617785926710609620020433255849333708619279824426694819132957541757110932107512279499278566720330373737196012369332260438991039122980373176495656480099162948725644795651297773265932485983374334726094324307542816226597171027749802905234053312025034809392241147013624168024181214067958103801334149993282029240197224805866432623385151148236370443664988839394580885063443297032784912155331359801283342052130089319235207085428922650981457813223356378615829221238043229463773699974361615001455855170768901230774198213740696126812031242091505197331587175082709627886005263918276901295894818473396151968049016465728932949727288168080751905726587728167734220729265948952525418878026937476875467795250111209980215496134431965484182420610457114807174102932329327294425878437895611915583608890209361514055093634516386495444800242988223405871311352918513148753150844784085839337104923538014912675522899379364685789995755391614934482925126057346344214595886108115662438445031036430664253934514664726627854834738556767319888158732241949720977406953583903273164763783712189442952968232749725238758968809263053244536347519678235376189576029371229549788122602956189509714512993917407044212150450342398876709363391750029256174260681897527703092614490762571905956845961254936551085510059167125141223954826535618371130615664188217453584896110482302718736647642200633370079304111747937083217171476959721089772366387792663083803078306439580295234169614999958348965712262091970013936419036255850261614502523918502854443861816001679158544272624990577174705917469395942727484616744684782757456746099116185615998795885099485828904900157917022293850616249992645141814387165988551774626083587934239629512483808795561021747573813257763549763959655933976981168818326048051118854658401418087784671168945254816190768073665961925840527510848533475993592009597827385653391287066629057872992936908847799559568352062029401818081786089676781026607657516179231627244833409071599107507085851882126833260907822940944098129116146576196554526051874846520536778290712489595302114157389904825072359561801748413448241266579704781468872280101724404182816956368728664328154099073575040984324264521235983939847787503254851439751706230863689315877770620987919618243231451598458687315547208357220216368125670111076755015153153560642418586167932859565931751973560982756698117267799470114041332977172542229275806725672715222147344250507776790307622322290289206828824125767208488171408215341717826073078390092541945444391773199387729609290089634863443969519063932353754034562036977482198946910124519236758950234630691115427289970699251245829166162023232485034508868053613704216763846609430175792662997461764965604732678613166299595681011428245765991119011564321713569470564342485241997550986402380008289773822320138472911484499255359656396442921617836053698844579220049410729388432658081726121670640291824710592111035544986674434048434975478428045369994626517944594285104549341923323727270983717132673236229177416612331755488724520328200376980819691287185029798406246215559137242132130615069741334933650956619086587482654415340716477106214300965850652337351936424924425999960533514903294316442816936936171999895726886008826964223856471233914809267221416474832866478062634386908220579195716366083478875409056223197317049209075376435359265793742361359065275709662177476053457677081342116778723122921283958035995074303392100011619636182178996650869650762484639680487974597813658079663902435582448013416111551533390882792943317339244469080787967964169430053089582319846170954625604495931906352573740116827329435732108244050128144091475937327224879299167113061202853918861579868744655237475545870780427254342567574356585204256521886060638312050490665843427958427163803833433708952925851517669578591303420873188022019550305732541446904109901151695967979985082301699014756377523107979204814674237911404779315229251277635026537911095534430643503030919313855922053255551531929495046025936567762863967899616917552924115703515425653547280010090828047447048676733488645351396693151104923684312192051274836058079292492375393728320511851296251623573992231227475741479041146334579555686264376541103459706944302130772935574145910815024386839921323685887588019762966654662096948607085601859926870784270891915460879046200691296509261189648985165645226065373832970542232933097464956686787154337684646373758526935628577160034153712134187899449021491477259099486584896415333244399951185007689000750392060958484127647054446569890233837934809825780499715275073927093016140562278181939004298969983353073031409472509133524567170560629503473338825048038261175423377434306613195617584423471029870187555188277436824123438629016604895854698292168597968882996407429806745879256262179157618952157371228883898798951490127037863533531009734142926407033037778103515348815130247650912559827950727153734934205671862054813482809653702485329804681916711731836989073397655604529659190654928161531957938556575478921603455156862483741808658463849762554744670784461732180393279465174536583612722263372536328883783442844989294393354600719944656781123916996565732994761018977071633904699498080042051207630999220712635671908428626360992482666439802651666172428982453373243976906700274534240364236431977759384630872329516826490609852088081375837178527555894935642036990719885121040998772188202763200090628557386308376076399380099324317055475956633147915647479571626047395135201283836786814591126675117312404278730072538704919988418056758808017529641935557504115327627774051139477600055520378728158421449596910391770868894810235973048029561908867329398692899117710096739828247570949938079692826044263342975220756268231594833138740956618379227954370877271557375358646590539743486563708589390394892378112998221547410642605858669681681823023922770026963566124422451604564169117375943421037540449843693836218855120050650832748195333159007357504949721667775937811484329946618893634955401912447868736291308673830345586113232377350894691065652525243149188358186239473924996822016819070950378222615693211844601347264205152612011307681338741889345015245470890639119646231862667013384008651413904293076251098328634354430211079261808686820099518346665535797338579398592739130730822012569149248495284746440983543655921708971951191938634466619231350275285820069419519902094764547514369397193256592234663513550740465740689824938541678770074882331996586641531391489329470764704635823800908134046426335852997271658206457175844836691092236815663423424558621716632683352356977921040118815968117586820518133540299493189982173487815604271111069590548812047539434602610408467226970350965889980224093279066783722063584243787378869681167646877224778066147623935660210608223051606732330406775709662135418512417796099326252188803448898081408480614620657799429628385983262575893232784644144015583429249034466585024430265543048055777594432398839359747760121206822328901213036451655911771314534508771826921610120345540052480763104871603282878709169964095286257027755383213233176467691326431499963513252050778968479208619302625144376838664962423538369709883484677493581151323373069599342870248384181096693866512284240034161803644115111576191635481677197098365670680689811877516279211026673838977412745323206787010219625602012307850153650767990327110780982346045390485478113223633347324984611584217413555468388298815126727505794727691250719468153044411054664146748753905213734075856464762313773060903579387645208134809841889132344959709018486766699474615186322832574816602730234463020246270193122568226630423379739483511395439478606759615527203059032080714135898371929400342038079096690821058361151131733431650690644593269729494737771174034187699129404925858311811205091105599470616811946008570187818294261828593629638543745286966063329597717258556055983523066244680368878576933237094034008796152241827972048460561890295833985666738983713540715226882498439302527214315351120321842842973500116558815413253719413876317946431082485894394972691786880568820708233410565130831933234402060017672126574696574824213699053093190471504646381613980145258138983462100721662426015816942865554523987592570602636049517791487732209631845995719731875241566468417193226749198402567511807363418715441150337295828908575282089021002366659278394955738802791392612794705486836000201886301790198587682005826828560944786940396975208233131035223194799799818495356327979358046053161996142868965062021955481752023886476220242782925732412518497646107948262805056093135448072327353923834252410276537380076495966542569834448226927924160206779683715563707327875566518949211941203462420327717048693425401589649318514273538217144426012160813091143231815992858563678408781020798282370377500285071871201586824236936401821091912076436969369133977043324031423211156922202673921901084851865641633071277540692720153504104967678877906770453490524592424144049868946964114693386236094909889577354478495698095102444284146781360647765292481910250098412092818263415785618616613859764916297898675371619031042100973706229663635839695839785569268663892457070276498010224189914314598363615002764661283606403900402880714570571040138154625424338577301733811847475079907214726844933736197839156164771217838684967279893722301880610914210078393297649605657201637153011168072804304338739845673457378065356456266333188530979974010539146546344724929315903522594144578502580164796770757621762585501850853721039675152312913969048779136504671983629421122558606850453660522702602800279869887036851661117324415022118443593556850326793964526440172795413124346200172981417090239115549465573067560929937425203691723426515333238754737453538308026081396473021617034123177135353819091248511072764317771933725179719864679083361820370268781254453423427429668240886370629281144728944709600271658339830535534395662879396680229351298041738850156164185114152047736613522081144036856712634282953060633658745317823312515532642395332489753363769225465602852372931904143253070427623504283025947375858295616047909026966079412989057963750092088905655644878033655225589612208313287451990064736752291952872794891227466896562823210856934522141092827895234482594046701792017181034821614485779481361956620393040397593814186920988726828766261873179188714128405814274269197059330164711343591950353014045757598334582034227069234825737373450947613393564290161461759862922328514940565103154434360404938299865790926495299946719591518521476665738631158552974477684912385944777035273670181023672996666531911624207143965869707628637592667922641545723082979033978742882521227088360989429715993452070734834752627064635674314625409788919881152166092509033463579326908943555605087953168371590798924265100186052328708236485911400253356555155904136922842148235445137242793449720564330448275760788523977349552688040423725281794498530035746201515068161726544115380431686134435374064416179383847506416488557642368235180929888673111774347006983724076241999248945369378785363222644489872092348632553062555349823016061090479314640415535161669177843692110730167917244884267466325647987399712709170939630058412854253295595895116503702893159329554056858254253616591771168687127903227062513438064063525136515217131258407161917754254333978638186881520331780345583821887067838580247742672528329011907787560585065280553482749510623958953037236064595314140490213410596593801444814087826741755137353427981834236163582693028798168219440400677056858489516745774247587863962346255448784549001359480771584853480365286712795463850261824591138626113188718619558159293490864310778761635199257981545785503397416507094762204020186832448108843698913899859117203535661714061925126950510581085399090372125196612089550899309406937437767119938699553987305769011646735904909030665647451582980579753899307891465434833846421544075486526523740490912535478412652038420358714247027988441152272030480931546213243258470423679300404538475077489863098894277020711111364945587265992969518763217340495308094007152360454553943022709524240685943580275073682592934291493019313872654265464687427472148843458239162384437474488419743894208399045885907550665818869753443782560302135856010444738653292757524857306313154500709174871818981662270694655734644240867016814954124014575671996532992419933323394665499459235345594250793709330024265925164433212595880301879004661628558393046367784979169818092213185717108172627748821552853666438500161849482871582259294222486645970082759151695040252522204522861873762703857916778003182719023630726863857650343202659673021180501915328866708764282295065068901274869863567326904122457364217236262169336803137057644878948157668645063087223239707384715193230899358467460496256546322440975060756181010288716974340889348251745892268724541512426714051545775383478191239506729870997235616977134611153432029412782212291684222712682346973964922777469274765673689848535363538827843163524652495456397088559769545684709928287652073328077278844181504582740922768965832416110577282795083327597062997401263107946205837450216698834864015550176495710804160460107285959981703375870332699537570282390680363144473288418051182209407076067971519387793009609312257089869395747135452795520726773451992621664613123605299734030513001554437665331241154166793410809756459557132964711635559327461826960507482039427150237102609070391388661753547208052496123026299178915258536505846303218143162425159203296049014286056513557213561016218972317584206033503211975818130904739139851246555161906383193224863303559390359176949810652106445288918697310555019822561424216814761257118001623624440363080052437912810160343098461011243316704199596971968451626430895261670985867855102090885577822770034994349325735022941411982760889179082758103353345678435138469596121740135365367931206727797561932231227652855745400648688886901852354610267731453971201725135282263831947417966994730100733508000094995144483447930590934628202170536376109750710069703621711518640060403341663580546389648944076045028735093963100236144070756106640625955702566866971211032672076892611931852617741824622070267277021965016552128429575568351238125587757645153159708877803241894198209214167757543842915902447495804813342481302960141551361043199584686679606092447582461420088205979568640557598975292552776509357090758230907380611174159927229677385329101539373183649395802603067874967173032360070358000234559598130529314990068356930704806105956548842848732891694747072181510171448238356971192996378761718918474945462370744983001642947718353784025154662903253144770636910602117211050594242407256484163966328252611011840912941359441247439360079531089212676458681617497044977146097175780497642703367351292138710301414635712050459059425429390016874078028399578393780013533898490126330873261808684222249052255895946716374792411179013256137729152309354947496932637094022441006819161609277157903126510830740437251603933066717554175638786062944938192031539231305437946626373061645325997230357299013326761438730290017157109958555455788151032328418227310242536427337557167919964230460739724154649313250398635177454921316356367189375963154112355376726324012588528216567481421107406895258099045314854556137359344277033669081246393727486428877642667755821151169736319861776502562339896306577069997627866383585949652510687051747767507934246790362816604378941426527917178658256976867657730523090089524038938760037496827223120890848842837314626589433346019504034782494899233656432621682880381462240334750557022992843019201111627377427786611215954298220960783449576942129135574866015558944299467537652168978784515663573740805526381315397404600429066982416326409851457400363182783901714341716381068611198527725958478130578646259527000134257287755489600589949741587043266408904187784730032743678838450727107969883177843021518597974438024144962600146852051393620304206039513824052955813124067547357798192678739866212026542491807678484867251852679602634879183328607197573030725993617795645508564869439448994931633602826779973949006283041945793378392259747204411275606769925746119963679581447899983147153915214165490691641669635820741295384109469745172440191409159037711540476119680314557799499896372860620917091697708266431842718317332949817649599231247087077158806907472751862361021311115618442152614088833371882188347945297308877987608576659567011237402636532287044641954236519446688468416271911453891792411561920586576528599841392704405707658989502339000623740917517811240568947678101487168550005878163432958413630632199610804688166711946101811742179881261404860664645374681790421877369845352277646762836125054633319802290543452943566203095068922321218854188857773880801296367854276887256179710454699889547977953013152129901443003915295892166078325736842464001270215813879827444860395019659124474501022831866939217070419105030012041355321684106755821975845871502643269528185213545710398877632403998852820610869471446926349172187917185527890851317226634319723377169524550933499522897379495404754250204309870289302683953054369808633690888689588129032640562473509116034178861154977181961362049686064579739133344505555250328980424055963770784745146952500937218848481758434392607199221821660937199230192795633257853056322454487031218482482400087460488543782853771372252408829553691985852844644099921325945080629509073786348543614874637397226416347388572090218545230359208953764038087063930090996171958495543208821360874305896594220590450257382246782267402166851610511623951998008269109155351607510059975662878996149253466780054313025339803951620533339179469429127480737777524011582816731488290395538520086933307810616796343895643658577900886990326355051605778309954895322924277607988674669989926697475970592316154889221904153244300925525595407375959970681929899183894579614153358197292705142666153954118328314309781464856299269171765429121724882335087972410926651302032745521321990646353402181083559778397329859728752948959358035769697145774421895881192805905337823967610149350597627929938254057567124651597823452993869377526671188758461565234824423220641314836821525480282591318035348864080036155176168803675708864381160201230760281116754287726624088503875127993836864116251709375102622809854665363133471276718424140132624225309072749754306902188252858835819281236988919155467978321978095245138798828795522008355833859118781766598621111523453553196407690872162058674128657595124844771074515333507169946714082978469603020808137690050867242134003949709908727897477099318605597603841374015307211266376314809661225824379764934234159564955265742152630580250227531702432515500035325649443126371589555186501471223639977928995021739463975672870633611388218781158518438691470691170885773152084918580475805620835781184463466556848419186322667585619059284924999472182947309670970894384890714500292922100264413434289094796738732022285004096914795892746433775286581031959789866110475215136795957394794395419303394440246686619214334181069234877594870907152777956865441637003291279878571175104720362434179755785033908622832498367913939858036071877135797850247200958272847791716122320744026171671430106390548102260977493453937588491645768359413042589507405359798415462467429565522865372682050861711452715169053481443751524289761146524721693696096560486578016915908822241484702885904809533901837668341667237677678267856610789624904747540940308344889741990459266427273492614838587362875948161151936594179248960445595174524427382870603880655225918169309789243806329017110971776892449698964865496461412098483552577559318458501388460067536242428799436888764069130711087048979418867573007679225350386802981066308857331891415321699623984863671322257937741552831152882834282805782807356228887010353925078447320091935003587429771457494665268019382572814453701147478101133581162836043961766229184469272224511307854907702612700793592149719598229872354458522121415445284552888620306969505894319876673004757424014590018421934856968565095715993869028443173326773635212228840469839766597834072128260297027583985230198836187633688707650676952277144996170345290035356129673749478917155846859553477377736013363413475786806569905584820235712880322314827678226884244469243380138020649323745037133214001072135253962410456171702463715554064028153433850591211231376278601369197437378788561840269298340413920406757057095506837222443911642211116675867851392231574824434342345511981810302922937060342112469080093891500457991914732362342896266520844210705322827982076166272104257604983401090520732528894223124733815181790470181533583355251745904446833542927801060634785271476895194553341535199498107674902274961918801591034036209489877271753644592307153123652094202120715207047151438830186627941731340922073165527475086350483633383747769740879108695308447307948816126182861669732333509195793034539509730781485727942078278490664454603888704146615391214403171403586367605459850781460425517681591951464708609321978414496270836461755018736028419612716880144630819322824952409826384038105553041794994369461691396935546179194689870154124428562904148477407623577976904869623763127368191558637350868171475264165610539232054562622839609825219760220901437478097725934221076540814104269685124139748155971665597661346445825864360330585633896514581003772834612467316296435883565451219536069411654347345415368609720313240726838352024930804616002715980931919712327195696832394293059568964242481334229981285337021094058042595837934735091876173221310282450141436860266805838636718243574574002582212340641176915826982792620776269731150533547393102047230154184914546639246857760378325574219306017956509855889774414287314071902751774778779694440397275313086357537384867299073804299306620150097659330919028788004689756938924987465653938119403819838370750039326752325216896340990783553632355952791875304163540923599401385866007729288893313995071838898424655108133354377411925443801272239167355522981230346913797800080381303391730615867719742712750107954420686357545313321388287318334769522224863823546869297291153547177121711949157317221255695443793056229402669287065347626146895260732533386094073824799535969675432291259043749171797362401045261662444368021389808022516310961457542480260834445764813655551662972555917003180145141254039476482353307999272274093968602294715598959206751469948487221399154994718525062796146757078585869855179741820313465889463640346396376245804771148464503109330649911280221437968679276806897827168855953691933578033848297916158299796852989401817251925975511554760969160859684341693637024406977594725121293660588882698182604857729102248749931606088464075402818938303015894865542228627689180569039410501372150767721769222208063509122383025885503982385777983683575697309203401548393718291883812715639426912537286608421192501114143480330949067426392766711674707701824579009609896229495408548572561242015233479308953728924670094598207008468429332857811574712300792665291657415600576224880647027168564205642456784616127141986093425555394348919384826524913269656585867872227560346969703439264900761781745198308277688586577119346511074563827081601716607763410717251788063960613580543053815007349719337785113730908296756023746691538574587049964198057348304151640923991416902990610252986371925827037299647587398913058072748328264462874005633403356103141392727178056459020525681623850101956158143531071318955597484968958046711042854744044259069658929083314601313296168329550259454907331843210099481493877503781110454520129513875569008801843617342356653444893626518106883754041061705172760510575837995976309242575401297896388829840415399470720583729393662901178006856163584427667834393198087162482888482905636006751841584333321999114865315730941149715376123237612496557337491793262502921185182883459826294656750372319310283973135405945242683022615151238997999064385506165257148974599288134509936329982855460960283358495581737516086000331278398016478631246090676217402743954651167439951365746698780415660575337662522363871285835534412494011152198658598915866471251275887758426763283188687889610555232513871467392177728307378799279661185829238264331811844021410547233972403418827453996153787670412459876605538432852880059733988653649424683728509526167562527522348980392478775686954690660497587272771750056335407500038744879986101637972480851041378833103250913883483911709860726051446563627920198042258311101788328923143122270696825185273212249476484788148265148389852241774316428293868700961407585102332723554531888858136584086877398832275745437166919542899177214875081085859066410033330775734355435180266840864295940146098102976765962185415539195751636101279364097523425442693779388197287804826036804738942354851225693728945633942804326887553963220415331001973689719468187359298740670093140719685745099688443082184139181339226596410769721905359977470993974048857115170122916892846532345668338296275085028331078922189581979665413133034765159713004983221340973716919666446316739554453801567657286160609684447159737500803053553990110559585870841343521835283637863773334088658360988916200971183684625874514430046582842303042846649267449627890183030694229347545193540474464764508027035540735645353535351570221768179439056883581094127898162817736052913819581514982456861623093442430708158800579389847440996284757042111305425037550243659750135967499501380890990817323749247887921998793487864216129041913975687556037524998170976412658139460912871574339330863326858985739818364890686882594537619429340629033041786721889405105791284092677522610965749766758386718781851356609523644079232822360577491697107773713370119776642666791271655320049572622383090038832295633880676871833301223642417716890779424420164933212829567919523862516145856214686986414871164873784418682801066413619447439287618734109881678962509605420058282401361032810916372725174011298679938223454431933620512583057102958503395619824683587097537990792828043603916265677130884771878995789780687966288229472936613607838207316065299184193753371200927690977228632007610499713349237382260114046733663911378171166969782914609652166369567546463297077419439530017307908241527558201983295398281399808720106392773653002712159803149349693883029506092920577916025691103314137603941514254123123967927528188582081929761682704117469843441238904935189913497356642768677055612814520627160294294829898936819057661338839011660420292122791668939061250957161726974264540382020318533095408573783662840995322582810379051739530174140999758319950685881787469548755463848222165787909485136776376072916906438174175041996503090588804649362809835966897307806857118820141532072429152838339217813189283671970013110119396027283323574075939689261517480403126177212305588208256940485291574786479235794668098870286550546048182253420571216288797376198276949180789992529207723053479046223819308172857317410235871738632368165936730860872618187590695979346701398009612822371492280905459769076990396028093187840997331390406550364631218877670214072431943150246882827491425067298108329229186730750756169410299427857202081215099956459291283881405375853674709927440892768466331386541387347704778764776712736771480461744898701609508892585707269516291583001709237231812676001389412880923774735364022493327800095468876402213271362829230480112515995484249518506486529341119206489407480123761328645114824887501709768226135275962087940017189467307415899482619005192740182589663083564892159543070032634854481380213452610184470526059323244025219744765715948545343043182796596879420193536220053346319878158248196608681946305215998637700431220352298411870290998678398655725252361230882533499494597346008252569842004589274193265852862600107172543390361146839132310571897278765901481776758477292307521451263009304714353324417850248989042713860915290893957078989976724432097653741406494337064404636314002788786543421409857446949970542979974932068921484240236005551495336129038709987622615871783392555161966030515480140598060611107288777478478968858205611247424451859596005516742363781349313028039238786617231321393157237140477837770384946175757691697665568467147372669867469779244510142710141500546792277326459674934558696168350823916343382572238223103023137312622729010340766337790716428526103730702593479484602929721977555863038727070543111837551390887041087445927110502595689972522019971425701664594659875003462272763299698454888946902332583113647123245204194030898329745588380329250383851451981365960567869026179766011597953100336227471642981110776404872729223287537544699751031066245653409584445524607663449804186249839221977643691051959100702802334939037058391060516472178861554702267751036803003932273654422252162005372660330954168324851558943039211999911087103098742934003983463146528842030361239035265103757858547149136624146589363088059033966291862715975145959722787714159364829116881631912439797489021114146830422083864783449769876710747537700940801313291829544294279979268608207681878748496417758879347451712825153468720068360728675540422729835034244702279279847440689914660310352881594696821727138993809810094370382083936360406635822697716783115492595590393791484593648051834509902971896362080337438224373195762969820930436093943747519835703903186838411164291290561408866097091703804004877988334285116044925638131533792863364982604676022528636518771431463936615902844560710853415556978435323332947689660348905736409638501773307254005493249820132544635658753507967959579567141036225973378011403103329618764980871923820443334936748504860857450258512328520675287559424682181303943451610152312466448100365187110337888387299079060307980212040977229713797165281945912361207988242278999881002458994680088043126222125894672143242877680713477064470020848911198803909300547127636971225040434904996621163321120076208483799372399112719988230020118106556868405749773396886861336476746859286990861495829343803261004890090780780772102229783585241266956431081468816291796095455212671255376378436539382796335125780848800490548764626883201312820608391393937587012261349399014713968922236800566656559074574158532976081354267001581834231510522217621848352773934795773800269086519121751254017641060239436283258226113034197562415871885285931823648663019044664562314355140733574482847984177592057479253038019164049217462480872241844885153679222935105320585181608646830528546843010276621531263140544367071160303792064269062008873849146719145896671597603555842087593506747151674588008613621549442185534735343315262790252208153752989050355523759467928066631147508709713557445471250243504496472069922535343684339422195707657136776010351980373797709766820077036762626951421508595336147330225713883066364599641995188835875706925428058527091726942560697794346401696621565479408261080252488633120725236061961836374219537847482240478476276737268666768923575474586280730992173045666888635399989428785264803018248235939397526518020605434692059246564800139851040295097077216951588311473912306124535981928327488056612257451778666912800741632940519341062216428004782825150666730532921524346119197093477165026434010781985948994125861325003302279328824282355153547841407628415568014160863674005319758561523998255608392855048000129566435974954578559904758409872497860740548606541322244569066941149469967300091613962995708809370830192981850967851130416166311352463253620462835150896656285911753734214109106886679260709428594972955020425832798480477481594458662630655854936631847325145641329707207186126185636237408035279498023437082824409005985470822008884792212505557887032866353831460209555375200613943470627315936781317099002083938255929908454068661638878487014005644678854067742487178862433036847225651380828634986970554683489259187337369248876991916222828911387114708676367361032872181365168680472759088107288303454704926104890832962993781718921425452022865967321607394324679725856865790216479519520019352381923649675513797638751607745107600463209284239246860812773698440529271690402417415565956764917636616193110794546177925250687114018924821342492579912261488848602837780026670915675163358678617887704254332846838013315254024306385016994183016205648615519817423486575481978170555281331743441053067387546428607520791224070193641690365063232934085351665116415564277666944595061250145950251122916360619739191362861011472041946721069916348330027111396526793164405816306175275337042303876205069639605810487101809865492904552693605817113705240674452985247551086190675713267063741056620450578521339640579568931478705969707566679302601746552272960837734048990070709217780670525016312314819886560794416427331236016996360118246226207160656673421968063122106997423708968651168205674676048861883629697091645132986674563436070067426484502946468660927570900682373782131744283575625609371003829187692752755987006459254034842227777556907615049109169403858159593782130955528921155071388542942476459273027107445797444516984787662561863152323632957075287001783893566986803356879465699138152567075279814657683748058116797959457992594293897294952802799238915879885028132990271058135644166761388578260029525564366792836416065435662864705041745098240651029304922893215264188950081715562275442754765512394115678140363754170408201998333939822332309916864865126286829764378238849535806101434833745745215591855700046860688689076702814584978635353882159620573824913225146973534113689815896622659123373515603203909686085209115551413329768394451117285634486970252295899590446244613071400669474874538819051454078573057153773112384001906727547695613468629755375492375752119027125923096752461095855898143575604098136196912462622082217583153580967435979600628000782839936404127636819573803959189595476766141303801627260953286392055418082934597832363824242886018118536151955553217064838761480460903030138925517564229200019468257433001334658183551735467501135041559045220346987739438235842971898741847941938869645318699563014705303288552460255371924011949212485991322269544299264154422227714428290289818723844106172074136218130676616329529785164305186634205525843868256027629944310619909902765197551279701196254570831259351125027220357314400665432406142835762656308099800944217865208004882203846245624368675097794153711314340627859101187353446276495221597890492250627306035383246591258650478815944446982940763510458254361488940409986189159982082853137232688166693601957720835068230690926014647364510603697039942288627682169930355658564642904119123974596803723228510768059552399125339632235390859336674728752966200753265102906744439977793741430661418010451215196515965251516405102175550149591425015960674714888863090792032125787534974137642070404315160503313439733689801866948784408283892137227606009213385249847521449402274540808853695227306382748916851098183410087758997716101849159406526592202495611844604536723852390702586345136616139771986836130989851896871698612531791591721183386695940895069202799391097138185267894475098069896887122472212860783151915009615823083742954409233542564352664198202227316207978201557719733046324458777855751759657623486735386320216521940060179538645249104210100103270213462569492876894342284641494670659354057024280143938329019644369677710959933153494922805658285909824904225616056138441361105185204820659123161181737930856208176012518589591641951288127677271989469991415506423720846118501624593245543517969835764729376691238022231170860532770222505502443450191245603395055144309474882328501535540194054755054626551099664748097333948886216648633438755996938558609302133206918069212548295597112361843976102128799680921373758872833291218566675121185557601929439880108333726173814619181491752199900569215817718041785211899121244230063678179708920264883714774667870326286533710446667616788104976926892682700880512834446814507731418664744662362454772799911303543622847248602929722053068953442450868043197429158824295941840952054266884269092452039030478691664776787854732035354465774354607149123109829497837133565307933336596163081689392160656859504151312001988241581105222726404311109694557135479558059614925087706522321468808914738755305089684771439056947981527441722063512708593369647551529310197804175387813562183721498900077054576046186313004117339784333670566044991160061636511583921777645238189996293450870413917219700187126084811677577383456037724426824534975617635766562727690034238463355471894486641317956699359457357366937533500723139734386706490292803008990530106394250312184948309350555665768764348393599629853216276861950197679048870393742002184882092476953624358796663261339690659380958146132657072708248354600488116846084412414546736895842024820215148037109474803181060284033703509258271709678030017034738255661046808589524086538918668478112999541243823034873526074385836656253183536426723732315248046023882874933553493446049023950569571410266901134452696645633522144367518581059520771745321548753931289948498408653273504648917969173700497405801790370927123551340492181196790092565418056154508849310285504570853577872330504405813066112340291428655645842970995507404872342382701450427300308338748831334555073240755276667379033332853079705377945773978787882661357276894704511287524188093038411431269671911222888245699204054049148856019583908356912528293124937280905981934674210994805795149888351502799692843019173340687887105963803803785158041889719560891653575830983993713245363568407536958728083982504719566743280364084189285539938968116843671562960734466737007203743674019412010999130650041134196684342168344726060997040288304215416417412207763611710216881822120179475773324459511120279269575557290921543353209880088877604550246314660759685383111081110409082072729087602168429814094596312343061150418753420242615683866081826582918257646461233236562537643554198446288790018479327969948397383016037606839902326830060288541046427411966912930959857583705148524434119014030343546298822900104045477978591788776557024872829649373744124549101651220220842366627392699578990740662600812521705578751605373529801008159766595527180146064638191459854088780931138185867454868198810282242469176110467750189563503211537048089743629940881437051088218083880319249490044856421155074415612680249032617481930251212494637886838349335789929969171804517563012286418712200652444120370105860262625868143355836327215095391978469297472350026457988257390926630682225564751936304692344512793227422016677640283633866220594399610133286162453757932477925224554786723449931288725692641549662276509211067719751528425553999747217146794814056319000662564943381568724495050232971533178711619629431136303784783415860169734450153234050628715074699252467524190764244740389326596767496509330557062350059884591920039431816395547397398092169122985392767742611050454971866949811184118010631098553438267944068452364351918773081733357193638822540234842223539156130230147037028983668475938306150924171065766677742800084719240192413942017052813530849414214048447424646335876742517387037966591593363077116839720916774821766452508781069542151966319251601172789226069366657972216275640325890694364566208421334659395252896173442311488282674081147834884582384272252468034627506423599499966429654342675267277581357829294511710167409663409451133529423831699574877605683544976590661714414719278736780275441887042493252289923449518949324815248993567612756252874782486238550204490841696850851418222577273967217351420955426647758203381696445272477241655777182768820364776913565286814217003864103931080392245435808465028641870678165838632122873415964451291906332170214723553259012986450296495670660863155965168646482527496521012159698802222923365105363489227907454595773072104134875624707170127563566195317272963265390346275619132702740596993939237300932575582370366022924471977979765592574361265214595723451948977788173737781197113906080344542391978377839182138259448080016215774852717767734176997828232312427580209053984205588714574952237932576016512152874725635880420146402464696651662242991669799088963211189707634678949515137048639933808176270582330528112750454101566464964874972605090768473737845351924277400522994722977364239422332364664379566126844452483330878793002332595143620563122702896031263726316754456466094909663942606408185552695417672550264105414546835905483638900614201821609104373185154863535378338948833662371815326110289805065555816143322672772298847294729182857268122302797839376406736445115412182836120287151949358471101698481764036846180641711708780051317090653260036243031224832824557720206335920472707271880090480957378381003822946984329916487819413396791788872628415906848751941735275708858593660504566153354122318573065693749352839735572536992494200431353697376172707361757430063621940647846844341671123449183870031832450229958584611815018862473356141967787560211938355420814424455822968389136115912876806638043564565688193706881392837814981625361104214235940364531625388160947337032366219974683285221537857624490932312671710494424663099880062627888038459621683721058008524635988777386971712043197428200836711085525994511939645565425925300566945915474684590816659881683419138478633753667732613994940555745350267594010091331160382780690760974042903101166502661606834777722067001100549191676474207295028681921874705673655467213340927888000689582246544788896531704528525861320774563760819785038393736903471706627504200895016084756793575570075870163251385807830058078206906568401660769368992275522488179179300242321619180645353996356769488865077648371931277218121946053026010042149894446753361545462876465020726532625020224407702112573406576265324585022971084013485049252479998908638541324607221851110325188785126575286830967029401630197076111945487493814842549351955945123550064073719313260463939340522667013825787036476256145818339334418957814939756067299257171492570757524820356907050579748680649593612115384051046265317095656489004435701707591618337380420347915068661276194298510745658143550159116286456933356422190128151305169665703118057659415672888218563744102424314237913808563661722838870228714811055789525580045016284758570506198013263542242221611046073279767259849151659574908094643553460885732883368881746660240728521923528376505038056896555187229495453431359235536435137982665203044151753847369360495140548678849889993273916563173289000510658318553884651643050300096766588355817614967380412340372707263768676435119841741100334584249924686553840401763464814821915431146466513903031254377989693151708141778037163149764729721638254282731942456017278607510902277530590593324423129780754247354047871553193759168082628742960734672132053523291082323021382618134155937772527852932939094231461029543890864266784282605137482554167221304344343653856796052876405393824928244801453046517391129449771205803664607544473354951043525381244439813037076437632338753672092614002724359586792984850802625691005059595793678000897880580561007307925152584846685161856209288306345463093402401519178044850495936503040811285859653977073096279406643811369904805729632167518502588346773887911742699680340111595038943056663106073370440520174782296035110617996407097277263956071707126938715060797548145304421691985217226415977589977191244557855487441006552865353883204471804917230696371912373069344018056105250262507162051747106042318697534592882251761604928148467062119040479375253153117774979463268208740151553449742947851458109370742158450861094292045983774070357798360560124057243474009178500994000954643582019020964594409588991850389924738106733311265165635098020281808912537843760381832607495620204092163578828794234915786086539500612937543599470041618952947543338962413797889533860401610137065895152871953553981673969060295317815594864357019197737457248147495074024771549428406410960537255042832696963581080169864352389660646508500020721766481675069192740270914743707717253071977862472433429781962094753271325751593015703195405853532897692470619157899526398628395035415567307902767100692990307898732460192263645064100700963400087213768272354817409341389547420877705082930343624457438036461465661736635096584236028232367244375300903217142026111266378639302255618311154741670238417826180692864365534460233268350562865000939564322440170498884871391973891157485612066110504289475703149232513467223900111215658468934999478276721124374628230808998712549843828817955572797851863463160248775198146503932251052399439615475023000375131124076584222574805201075783164275483487419519484486860380463994445254171371952121290818296361258550728720716042194377005896793571160582518820391009943734260846336949432499802781796784970470289850049493445250994660066174504646332494843629938122756283414770370428448943663756167429383172194176949954629687710694562652553188499053060301959980414816953420675839961765523785860446205496491144482562317182313106665306756735254052308632980859312307612515183810832334069950473236675754037556537406345863163638274302171415430302481743689446115942587883454095519514853721362961988417133125748873056641584074365037609962580559152731702363355727594400972907022641113812376172327161791801739555473254286300449181815398427695559450567362138701400268473082877800520531107561120489674054890964655688914840689357748275392390900157723078100978038346821968115578858353560478971657018546606703444025040346784613774359127147558150048519057419127117795585547424210536033147928558995533010508985182211736078527245965314536014752376669257983038784161619330837503453422440690036500381014102592997226436269931809990252009950117611622069794361598735822826801551395461245281206841286464142818317755173232694436238192682438970363375800651903837798718440330308542104379314978655767720873566392780264950340377557163014495333745526996515324162686877173718277271562600439207813603915141989464304628409718873526906313922258208906830808378439309811012070115298444387451044471835001152357890453639819567582161614064609426608306829776673045965838089674940053877276923631715344957833240710376772391587155600405579058463215023464073527536072434193871837528099840597744978959907910657837079829178397641520886571681361487695356451825981885230583877063093557051588854127948967064033816566490559363986585121066977740204187227668637735716438758238384898726454309732594432638213024321090673101497730112699986024886360167930176511228126665308598365986989301556732088627376758077448463843146834599928474220773366884207930324696883755513158064696744581541289272272068068781829129940975496000588613191996526910501602534593498817471840588247845013820082743895331967265485741347735949998080267263872703110653286145135751424151579343596010040390967382039101719205344063435833377453312293011524762748052605594128541826372720034350995170978090288312991748163998829803687008780394262309688643156299198441101602951780832318697831585047241768158591609675204348724186314330306014624040669843042352771108768265446462672457396428648933784330947585617076671321437198734326385997473880517782863527780138425551304147182085435935370126490564377111868360245685085677138698058471824645273031344997569995309013425896528428553559185830994487200906986533361087029485349475277050751441196711986440934276631917237134602084754221060380929087945332718449459766426494192593533810449478105964969929701700118085398774630585987161331745125943472491063741656928398345797984728831314187287222931832477732324024143301587606540743333375048819905977120389782871107139535276466472739797484721806879817269414270483201138491018630355631478161051727621277453168391292905059939032373438748003359516270505505727093377473674360651854279795233644943415731249218371595981132873821395026512620663355594751893984726547589329357930037349288463816609284470019510599894344184911218092480047124139529760903213518535881337842061124563045705842082793725046841054670091522644184857218513159558345381631140066660550351150614315620538852528676915933601549679590987229460988803698822012046178598708740074202692297443593982417193536837759354737313208224356674545331430601085003086146293466930854094094326416991242075655834729612402367427993402833824484469883346289105924188240410769442843911542663396848134305210614064043762650239700392146101482239819406349201423996160164550388695794280366792628784584885046283621896126971455892289797926122399224407219749382968170910982736624162622911255792341694367543580246226545825427901748634896053231127893750498190858117314921150354402299208482725789792642787013122248410648994967359603524796587069871067109203008316256409488790343257259378215770294599762929087033830142041584995007748067767149539598473011253309830255799926732005505694321722726634682095281329052945797670699997992168354152694507302726352637052653987917604966894316950558971912528244784500514909500517171095896932007457170968906135266241779672055581946432277247300894467803484831974112115354763440980583883405440186980930953831276403458456546806496494709293968794670883172503459193877000051120649395279551122980064469922683601385333414403073018366746610923241384055503031010161267233031363166734569063171898538409970628560151910291263687357300249919127205583687118558160879948135345099480089637673392183272827478143209894529503492989728584959336584496393773710938260287724076818721217706938384415149994544436286004971944178696327821988140180731647157231703103446081412022253807304539902440540398634400996970448887688605191289168454011535274034851221842068585841731159690848257562118495993740474656640323196449297998205239527071380871975500845357181735667453591308908514761269416925191498062128401028123374914533559416316711761842698823890106626113477545651634976231868424938223359543982066110876376748269187990157273768060967795608231632092035116689889743886002211295804891544975757901237548224735712673328525790777905259803584518002329945577720040235918140708433255305209603878799167580708724688945493030663530147800604902789615190057149729775593402792146259209593796572025450305978287724736159166869309645319662005951852371484636419354834068250840262337003724753599671921619400712414879027753810547494357750986552860240461331521069443001326139521587685635290431523869791556438891206198575578770320680124352652904230068626523783274114368823219348462319943778548490246289002235752575876413567052604723946643682448422369005961381120186457877270609439107181527931515336067563406727291049611174082586971497725006286561709274797753096454816942157477522716031138745393728336606167574394586941376370736167607345845644073868260398696357414930738334912415380742396065262203709345550135651873703580383301157820251116880751033802664765026534961301207004908485688434645181991483573985338182901842241940340543215275401187369408494235418902730210021103803105109203434364950363798423050764053483019768467853262391477805468243626786554626298289702156097763249152756799353292946541710810921287716326947427112114242676575577231271937581361096793183101720572756642191156123233409774784879256807859927734399022433389443317234565564383226642081930742521819874162249950620183119434329295526909549078216079660878377791297624626753939269275665458623637164616453019398710727418368292608558236857449377866056641758628561328730106598770094453627906609443529168807180635584241465332311609539503463700525200008612964192966493514088423653928230262566235207789962068759604203976439279878860183158168784259377305162526746970171632235695217341661780296791370468365995799747731922206013070599344688788097835490190843266522491453649321844780321839907244823680558700760805669472313071215358317655915693233816045898009912417562148640444936632904552103544665561794703043429185825007798291638346501579958686750555229557807672843250466911388166003728802288459974318144597003473502641939646512597944570752812004697797518349026502279979993937032672123342419828840272398946659291194244440237904808505806376697153689814502810041697177412376541590283293255169366323996149423430826626983555188041409423709168154367523211514258824651453358423972897577476409755311779081941737432063512009352811539991944118581039832202266889663989909224454034608992630462612858765745723968725932119433897247237255869394934378472513387817822216712908788870320629181906052205572113541175997030724260066749122043961890470615523419559996509304131498516751685549207070914170897888271456402995763040612294333538903277272808120913946873300833667637360225162968640782595684306566076917801484425008727852742225310848179168887060122004616021755521048160740367601453519867293868347263620395695930309589992592633416402578207098309865749797947108217476051014507183812777884584701836110560426267398067799981154684197174956844261335290977777778030481996960444748498588942067751291542612915490672407630432108294842619036102751261421289509890606936017565799661782385151504729032094124248060182699656504800713937716863535168486522396979722711836945371916595923561733876593571623859819359284483373898829725696054179459288047035653329501255237643176875044700232935639049545462904628225695965067492429114844043993931093024586558388951450185680358875720214762701791385273290514828381450677184865298163293236548448803793726093988815013567231549271491312409664099293064675256806935354775940478047110686640555778636456887461775767061408495137797121477067485742634884658233288584794126237208811012557738615574688641912770160723708497936092958199610632512295478015583906105909212521220657301857291633348008577272927654851059581511031549879363913428196835527178828791561649482139441272000067502314245716697879287369858233725609436573490492652113519179694396961726520574104624310034060273597510655771906185812343061293963799026913889344974288645765106174378320391177314074420030666011708244942232239316782080219571885859501746578870112986352180756192677491119039589854790945836270134746203162870485951634836789183612939147856285295324773442935591412937062676945592733665781595445614510841182962359088862490278169422599823191123126202675650258250183812347212588116633384658308504739289939848545012697411565778459619855891606997982853231494388369294078892448084333500213902641390717623127199654583339733193071480362504499658470061926368007529232523823637845960175075371423290408128862834200183925342978574064077761414843605153416833089601022463474784451452697079223649129353786029981355974494909680346830026663851018364766510847921097239870240983273411311531568776381684096430530347662408735747489207654073855674161563127511756598983746219395963189034576555489167121264908883654021929952523073864011565919030721696897915730880326910851089218270730485693362778178563365124476145401389799911544020247386467233374788246479843527627252545096770853755127922658136333409517346355918788574072856355290573907225967834462141418060506672750661536348219731153494777850826995834812862691163854914178927645534637001698616468184219163315451101742311182805966538900318492283057182659246652553367120182402348348454511058672881094873996120124525637736036164255132261732505561605382718881093345723695109463947452218208934595743969725053940835418764007894714610190771846017553181660717096852896152481803843404955327427917750672652032922376807282567039904242078443047728876445037882325710417063746447467862626953093678881645422866297003865206991265388328001732885714274262021122787934556711355802569503495371279889847175602925433277984537322382817953461901626261716278882843600565465610493354481082707686687912711773802689635701711952107404345922635720560675128453267153278210527763390750089615480670294404372003026982568425060161052589606649448607718709206014568798034936991699941226646361585240242540124141498393327902257877571312778409476179595532852961010237774206136032875937649461670284086725829311277376337121565268784399498513267917367124215157020230766372439571449831506744200722223494007053856260469070498619181480607456293958496569392366506182107483871675000307685617650305930559138372768454676067210539182645384491396599600687878875549870371012181782095874300842358117821273999474691549610569603652828322885988236882794890953144928334930797811487699547332262745462045236947764196346529026316740446734829240200066768345569177593936134501482830581868232206591580204033952957207800930873555983539240497493079671116766493489496485805835573832388019181324450146097636250713648704970821140704540431445744451955190134728020714604977032716387513675516421410100605285043803955460645872607505719871784883934358279123852236731481217335440925739899067864762819973572909532810143223417605647950844498566036289672410017854505450966532488167423962978114879552165552474911891955685064666206094488552418460100746663826808115725662203167711551444112686774667391480880628364129493013206119157811326926325028899935367091866972750752995654532565112986055754159927978674646084218411770472962754262502810596517411067904717055716261873290818086111647319067305945981787936846932011217412943693736366558031268885553527899657437591093213254198964366850848701722998606505092761365787147312466940756976983647502130395612172334510961443185284409878367628878885894293313846410127152458113843927647066924363371277226800043020827658480300237251818271053305180155346707978303998560500659246546785844366369402593375903491597792333125127577747626524553916846022699919647704199932403490242721344239856077450890659439646392457328008068198169324490591522900036260289952509273385381207366951046626584205655781721601557221338300203458675264992202215957691330755386980923117187575116471559770565551857042951751586930264442955516857768180804516476600803689260434000719861076197499376951486297995260577083898918147560918716752633966820967588330992982913184073155022058990274589858406970181408448344490241846325746681824374536141169100442424685332002376171899788846998608857231783499195732525978846642481228984388722994358630792463048863757020792454994555546014688211279453360356331620670777932240837860618229236031874010566154516062504320781323741338051012974596845640391448262841546031443963109386659708639594364608271237056332313106428349408548608582151007835926315593251612881821661850130189637053854324929219822165352619283209711887042394544176363925992051188627107614149691759543953776701849782892056066354933780016637033750909562541025892709796605504309320631737259264246596938089721553578921081663183658928075320008538547175005366565288225726274399977510404447281956590592653469205303983618368016090597718253771669223840448267359027719115078945066857185304237970910170268052070723608544623165570330585674069000873545925891207664466178762423464255660220310548486466560157865173726169464408781311405731015779830071465091787604464629198362706688838461260157802636866634754009517399250271858082327274002440419746901210271955762578674861545640797886851287890741360219330065017272430308992002696051040098868811729702006524497171378717096343892396651524743498578451915915543047274591803829783615699810610515263620651971073693584843160052843748642259689321075554968321054678454649281548221532948378774967007102977358254070157511012861842564713710043139939960954713696241385360097959357863040395529983924906277668788172865482254013667812044210272285689985633615719154146449813108349888006114754906841421086158446311970136622364720263240916296652390621400000059557699832614572692129564788781623728706737343210835747511233418482667857981146488987874586105604162071383438907498313506615817761960118206542739298381593305715055125005749495343683236802897647653241829309468898785265795767209646669186313745899954326051036963040485264642199652951270495819732716327861533313609062687478822907357089114421643196531771028986648315203650300681796696911461831216555058204688305566600524331726025743796575574474848538582473969916352451498382668262209010150191134438876030801156511366032832137541472703143685612867333233109759091960415229924337979072827620215067540838735142637740388174822900252600040181719729932327389183823895594032717672805340547095290093181418576485351217723386664868853627913022010728811342001163711899620681291864602616788580378811202899523240325539489791071730777880570365977189319982215619949402753242459941031562243466462767323075498047026568937778258768189585431564268400140366843872394921971199275233136323993286035107993334846578872356177844694467307464092046530984624835942786523517559835670831893111116160047692782160791800755714193859080692149085790247186520233893625410444685523439204420025732266316331713192201847987009392435101835788988170506738523564358761117782348660578272761141101645115761979423830581377851955201875035768166203747342418930174167981729463870680725427935168836762239614147286901592673844001559543484241881545950187738534144902373932671450405112929602495087354491951371495550518544333540445298474807768728978019370779167465861450131418246955190534247776183512821417910981865438233253849395821697615640783821980252908549875219386034706934754625755005222629950486120501657202511090365749774709823744827024051034686379749802665724016407973241024468483794623513004310124345799848577708985688317439032263174282150009762399268046278103027118101902397122341033705213561015164625311134862715790489819163655611082237263680225946755255511218389454249122898211137028198569312979165274632064301378056223143214155362902933524197432685125692559956225905374242853738374433220544260520295855272849007492316023631890847217530224171971573289966583351803309090994906857423989875096646487689665223577797430466958579316024637428181561669835776923016101986368515203503216427516005058708834444079054040659789625534188467655465938534425728369490949819970117142229423790823833296056658080335250539470408549443998039655137153448830723072331217441968496581642681580101575272105625222243089737451559612237180976519989478863265333358557376872963525095101044227453947831732200948468276038109840294363303377337905865638916757476220256063932858023441263120691867380694893128270038239714294091343115237882338441828167164609890340227573693168779755230838784444260801090043174470116803519558905953811313442558174805110586710862072582699926691765116687890980023398544516204644018718106006337772628416781491445897426484336656374494297917040216661721948581801814390242632310125050526911450309354497171326552208084416306412392294299210447966643435927112187263406162552694482754394132695552347632564279609606348476858732043594343731881554300024644405491139068865559020768490817050133709736608384341954795814012602858936741597229032968892012914189674874162404779422150349447271286764293820488960984578131828212447785659581658878482268317318606195742443782422955878305877276258338487678160452370290174348508493692305283093929309696416124835435525437084646860010880836859544671600007544809813683369040451406883975147024107675885089397915791517083439996949213035554491441075901618614531951578704063737265910685493958762002990989308189276050923642943666920131101931313526668535219083687528268060426049957505475095724555962663721678343002314684228931892364075513006951742897071084502988368642323421317470797587505490626032999086982553302564386741916684685147352892333843907640806221986259582233069374273820473017564809576797358338101370478185635566459434795740945799694747162385801648959360425574932214467369025874135832037100207908278713835606267051946055832277049691081212050087708523285172131257948739764473261375887336622087589635407593829752081547617180666425448158835883968884477367322702936765272853560037931003198773425609823728077743781736335844308085656218465088970699561171752253172846322598048860676316476345478832487384867594387330318583209668692314285522797030496517588353187376189391566191590434134466990010609730216694697148228160698584672982672734086640697680407684151889291244055431255622208820500120026043260669037829080865656524693202568174875060915877386874188687401022239197252244503234204542946242017486211273739722714650916462091305332729705084613531476075322382750055992941633853862314035615117578670382484709887983284140309661583315517553100552703912779828888797402754373549400514412411342211820607158179009122286001747736951324519528195247390602124962727112364454010281251192905693861341038610931998317510278210533630369132891609639998103790812771439722841614492221759664847359870442994371424619512333847310207614140294569488406683524454377192946578189152631707377218755953180164030077225883564917610902254747955538446491720444384997493055045874961473895128197192184807295195069784450447067672626283914635593946543034577254335325401274178061450370413985857283144858713681829708131788768705355908961224789037255127351879689214105963612401730774520434166641688932508675453630328007246040903346174885983478808187171799983986741602806594777926332178211953362411838194022210554168696451741342456915810147508732712280959748617982224846788201222350174093358420784136672845310979780808105780114803964790037312953914246014253966287255765302002478239711254523219890091564520248762449853443126592440336837268506726717521331603312356960296207147086599328237845786918293873132667925447547754274921468847239095424030625395927627754317328212005996406476842418046735016483336385472961596534575022420601196448802182648897665006387616474008343351620218653163268599518601078747606820563878977272716107245033075377404409730046956815968222040801660441783344701631194714314392390471834755658937788072106809991584996420678589385655292010820786187919104756635276134519051803714677985899867319160904250768778809423668218285702346333366840084612870574035319316190213947562589363010586369109400655392451635354781512353341052768534249572981569802666713937790757226572951575911189088279883363326201399112840394780351656381296564679959440305632742094346552932863207398977200827930594136018917309464381560183593914721016459342060290856313999751615803881648512456731312327730923263186496659363786274543256260367492483705861640822883988891496339615563172843670465744402809894262462818161109220365172162249476480445814210862882321198868856012891456407597164966855471353288088638774398798715317921427745414409322482598279498494183831608014411773873156068353923696107458819614222700263386023022655791987177935202672620104859368789655406044234955742843878851089562377422432009493360553397160087156310437447398106076006532345977513046968008896376838496779529647792433687721867033837311077021739084783708985077614034562912583248059564704970281815439108011616980633936386322968162264895840394326581154472349015226425313903329707927713035375178638556762290810640144206264386969423353583743186713360234884124014585079572025413676409834327215809392872984653087121659159321504886933116904649306945009347373936574180471958994100766191602383802514125164502069422322508529854873336476287527939234451065510388250549582229835720727951947864159294408382463636891592228202818790572322517872328240856274242935296144344890260811342057167740438831626081399375564442185435606511969231326883605150057652314010308873432243029058252667392502325423593554100524419712978461880267386704819707160582911852936527259199275009250715240501489121898585256094859578516985257818311748281453596836338733686943498591009202357989845817776138731601494903347339838208303799325152218442689111271997617206647120796853314179783195412340699926840196760015943908405237572839996725216408690563405390457488002349666200795533466261789935533315748107295741106984503800076386089716669920710183498047375211870624099756083387251707404250872046862227622591819096808764857696083603265417620595766996480276287710265719729086061154891023473374893530013954013303325803420174537165413809058062301889301999139497100248146626663987528571166076722860634820124261060396769532822593484189404878668546266480060878430766988554917047030198949065097219369527939082754626064713919565129007283391685487689958860428880179967609934055343613463668313707680116030679826694233181556003094909183334932543839979593419224379838081220841173804919699170416035774455508064339886437068231228164957084852106802898249466273105737661265455274699946002018582705822546155295124371737280215544624426682753487145798491400016183356279002855509359426778478819644656856702764025827774412072372025797342844932174461304401332380269025091918822949434814685466735714212099849571086766440397739880679833804659505153892237788518993941500587307905346760467815330278116581022792576995115364931579261179720237233972509825514200295792488477270877246050726815568614635654683024143663911334389114464074822195169065113301032033513350260840383468617283567344784652077311740581579141720559885954759974604101685315030320356206204521412299536960659203178018972383146221861728309398966665059425910950493358502646137081545806223997057383132048577120439266825935020820059226038742348372348545827716074259378902107967541070822747505871024520120786871473693251984355702463312245152229883237131490764954596008516771787273442116717676939440260816056311971256030146164308990582085744595465738713859761691285846758203829930660013618660339201786267730531600719982875137116222799314378953540086887348600303472577847086074866783347682917932689105039331203845692586565222477677148846854824986415293705234466438078247208316138151866128317063456183520931556703845695896230472549950589715664805825294582952561869678416291564106868380342696542309759248466784443854861333257384966238182926728020657393712321464008674681994694756338674034482807691239995279022673043789170527422342044813616867309135392501293842312531627863432443033513657468059142095399029319831824709747350634949871827893958799817681476393720883508202288346521964856128890604891416460145059223929387477193901222701758218688103098971443549045245985165217986639917636799415362265784267536139430070973445109836088321516527279276989697409264641607499145561560920996442771842483737767282844131115289431896213119463490404006605671079584522310362848360785478132434072279043929299963310863811152396085838032617617496775473183316615335969139699857859041242109795262867543655201386315959539513143055466187956839543954947272427537791772497008879928412263478060734194499787971438605398172785780809061942312174515208322391283068822646255368706569316421152294893597856317648315767791024565228413548702794270224316577722261361537274662944974476729512213289363233553472092160222160319928798057801405667309408423672412464612230828952139177150010403764492883525053968841867963342304918166735776060976949625910503095829537776623563378375769259058182492090524494094464168259696063069029082749929296645763720680509549557335701097794786411521346666647526061191727517890472827181220468027116001982488076940638793385934703353928754945883142651865910116824609660867625129606720410598490703203044436075040568713627272255967908086936578041538591562508216863934281915266325225703564730430372583719854928697660030596265217129655561252657195501841168058394764548101820129790619940859444178387493346435011106033923112576904554812792177077183201928596511165287035806768507422865411243927455370160739545785644682109338031601821876502698278902710878315084714817028129128645246215131925649174623421154800368610716231970555015136620000850263224355017930153634572804869311714102455566050460070447021870667034773767092666237794392082498482961215689265513425383977405567667989714584316106373606881134225003642555207987806077249496813541381806986675171988575638697135350863025620955453514203553875016445142087177219444566780556700389065843627966631597943800777919121259553617882621646406622012113326521978423055830307782973308378843627777399977091804745976858796838720728076609622449692205857698926747003431803466948084865930059249945094027040033644839798236969361009290933628071413415582186011557896776497234334858128193663762959758788202546224310587187273919518825410546766421198907983335211334270443666654909158099794168025461412459929778195485171532871428472243842441361290963860734623246128064497392526130743267414473561671500098766540061628580836721906891423531522676082761708405431471185408147267264767321309964373896353223253444429954181111713762076704682331948514097129293256960961040992430638782734641329190832634306208012708453111676527920935821355522887939591319126495958424252066643627087808093117201602634578416061283653645638850649554483772152610432260824663498846726412009436758329709665742273846731675485247286404934120522391094983211415329589620067079081970146093685352081851825559263585262524119357456285947766078790754726939135290580599209371223983938740474191425262042003587268717000739450537748151551161123928790130427748913516107393518837899679681406044672698451453091573863697213104716361653802960949264192462261596685715672020206269693235401390182937783209925961923160146189459881805885073857222335485314372809809449641503983224735285541814181421659520395627112059738843126040622608023716857193242886751158496449550870815889953196902192495194742783555940630758292387025949784298052964571419922564827191056405474113846023716881311909215624273869474576832033581326345640119450639276154726095309426919334579105940489481037517508305215559023836225961947177698555627832480334357165991464112390640249376343360962559259286099417840818211302881284612918200250343018681729972809290034100659516182931591357524821821045127723611728864035957647346800774133724753154586812570232322735835791077134855133146650357400092104450477995338163274514935817002016291538303009114147202874306752750542530458776296326394582975397909190321846985102894696015113145878078661716991782885152985127001582965900817240083403556229086400272847867221635965787298051845163067350764776644756463343640783596522435743958357795241252850008603320140445517968047600538775553445528655930115284365991416890890719752250841403981915126216902134705932183618594556184411385842391357048514554230160837699335413878107171931765059033008261883258354010724674866294084039694483016742331400013898526065394598079258946118697268223245250984491600002229602428398946219985284500302768898424026395097502527463349496679238545388872050818144816283845908656999343757392944151429865629883965406365668771958275272479241038484994797289954575550551090636247292581777601969367631068254678111295039639589936990404271576376174213714658855056853381660472818959407002337764406444900117204312368539287919314947454181725958530493048725639595884245944934548433877057853805385086457613367563465076396967229687744566107563866699036599051045267021607472684794624087001141805227934546645779237966284972568487611257445330339977906231493889536128573938649768893725355712777526060113890801185460932453556149528997973512677158381835692103756520143968011431482275975069195978743396086280142920512075932153701004628317869870278672316018197937569208152409403607547595777264588852797773093808182027918009901733055431284017029816450901566244788224798486866451261727865065411584395560314056577958790011639734094411061832968733995483419839835569338365212675738543892851673977559897248666016268550232215354172156535497028809052409353941431455164088328890653961522561069911163611644262918812912247660357824593623470486560759644150979985907614431873936605019487394155640268750473705322685730499528518697825168806360728502997380992567692275340054053016748125221522447474494523294160034531697767004439513998793757998204835372496934852542246962389791474367299961637591032212499953927281783472810335812288233309714755383183713997956047893032212005385479271830053169610994919579589201904405109201793973839820120673376288313562389930570937763244296413507796014415225764149372463169109258559658756950732636740505893081003894467091756631329120684041462503917202593385782261919843060084381901312476411607076286732026579264047772095777022810221410070597376915333875978846813442358176525664846096770112012784581712086594248552850407027136597562041142238918100838043578347488719446767727290037604090154683394897200310312468725756478211072840370465826559969144799666211482336733256622572145793182887514626598981375900826199482538422805406098416290057046337817941428666536153559656805732478429342317545371616411859412701548168427589440818533399635994897660856621538279045355963664297400304205043400105553814868456430157550161359440449408791545373334393635975782516662088534379684512546645768192736450188234561607476910618963600025593453590397794514519606773218509550954584995635975214707958680664036879340224046367243411626112362012033681320397913879099553066006558280853528528060216982254638292442782907436628262925656166747871757878508383065295666533916627279859887620132470290866593797473567527291207944580292889501386217504185849425113775737967302265886472955591876741900639341314421306984124679555500521849636035671877121016732026418694117812988910694236065885480908553679947271765333021934745509038019781095669343525569005844028231062264440941459476214842340029414421407975259776886327097274070609014593207360506738106120928245861796548842941585715936015929815068277656718852721013099911994397743131499448327940221563867225410683570795854260887901502249067932319541631742205042533792139479853101343233257325852695844038942542528212043437252529398761757691407600388594164533229604946024047379906892234047453797073224436834614015010492639466421897457614398387604323390693427768005213145285988527145490415962087338848281695468044951753124354181678707314949129676860502932333575013764434169163897497006648411049057932967489925875261190619762794575053925994510232181923365899439194503209528926930729496717082471846308047363819695630969008482091467509056877500967535698549896805782294323302342199038475145272298355774270393875801021157708739940107510827089985381216629454894030563052879665825313701520891182521573904470467735914019964432611737246200888260379835822418982728323720406245423413113993296133823484643223720328102738931464987060091606998852118826016351671908532661343806798237671311651112540012633695184300043517581537558879492570460419204266233780917473958339724922091624456453159440260848161868377203793891878568917565638410181078791412212207353676298151269907557050879487638014378322942619638355744646028842851885779268201058891825331142040414930909924858106428113845847244498512407065372954366247240890263608983810216426247524735089021265555851491893042258885011648165720779165154806466201306881022708939582549765710709606713687324571823445795979970827631681296267220053929185681558718514715437731978647213420381066347197220675234209254893641222955301122155997403792564143525626544707019947300543841643376084412037586574536303258892484741087035414190056404926735066092613840093747889644460750549732918443803840400063991284581309112656478476049903672052878724678469598753468944749146437079937942697735633332628589970794293957275797647175737824575593379652912682161402704533563802580302572038391395712881791156836082303941395495173243779649400187023415884769937794741879770060702625366995563292075978447535484777531214509290480365184648221588378405307459146502799084655132016413780786737853066659184355141343000919215579969195184855304339569132245680191848577738350461683421400942027989686193017449159264188438298470572788243911519863176842796525495773290235975081657428636835717382946979478683553676047383359095613839479995935797520132278597341586940657562139394243767234670389098256893846953028268831217897312741354916181021409895394567156712684597262119689060366840423905182355160019297601629680328304137529304774122258408085312590782274129510405522992756829902996920373419354644513969581498452678707908989288598230934927162002172488742683204411071890966538749759239942353266502742945178184534506391745320105424077493569306228012815682916276653673661576263797738731138934495730885776806193518323260430030002420200141486590284051369124026323752915742944714003743514309185629081006127003835524938002147986544804141084452834413307581706987393273367044252614727046730624968127243816730735315638979852702126066377827409976403657508708908766168848016771166924415174157531469438136758026465743480199561725218731927501791977786443967067774831358568954647910404849469360224377773826854241432651747522326651272023985423376932362096333945510094670153504197912240420934088061011410216602279214504351940318021578849076456004771921487590633474347890452243263167081390757595490216227905162080527838604852847773389428390990435342423653849298018856616581219776652225567801868249033576773481467365885061767252217929135715324239052355506289475809402244405421745815306186767775679760282892339851482813978938426700150211638353599186733889140382188641547335457525945149360602843924406075468171375651729356128142551146980154288839769267015780066868897587398820599271207850854898056268388152264897360873513107552801440935477543128171723660482832546086219894820723129627571952610809993976688537994139173616271867778630706295600931939568524537565669131704482456446093571583623300064239370978350458646448199934522641653083101534548648416001284100262853611486202754991881628771282976233971161036824075108032449472620309609942422052045119146626467641304481260720355968586371830117258784281674721628723938710010592332053200134936774769152993828752651985788117430556111491509749919962959295379559262638061822678580677228755785196207011817768620728602444429004036775217160023451350533515432198526290558166300745886070177942567927013469294406507585563172689807690771906342627466584103475876868537699589990041299460059987570572683359622488088163793948281058570951061965616653469523579999038933368582098593564582761919997107807334787654412814551415099402564095589971183739875847185282854681087845450339564299620670655849287606976976992097377754845740049127159773017325611021671296706323834779533305446380287944908154527298703846540428239069107628294130388003936055494518456446469280584125343835453885538253829368521107098157438528867386087262897788415863180493437267671391130758972601396809576204124536001906557716053911342969493715607176671533268639439054994225631784936703639680695470665840991629850212995980986401891377085742468962588496025340292984361518670399128273583778450280942831419573738509222494821949590275468936894807112721174550775710583624805422333145305669289239181293582319846638400715171001688671094412308058577545300987055572880430813956058285383436876816615450886281920080633258079875025240649410669797839544320537688457617421492170860118942977453926525650698314646897372950246109316927839791026197850068463257149902644866149041932365831796900522201464370041970510666038718737890023267951761618625271212034672049376690735465791686175579390207207923559897375945334530282057686600772859658744519533329759986213186836330132124644014005096755504984111187221181231245790211785422218140141380514516833743368198398024639518118277223331310282670276066214459717462923396975368562909974626366866734451990578480472837189311419300043576133702241127550914727122174378655778535581697085497641242782773013984062430128521211696614394126798543025669893201546945115709537356972734323557064519030183479843362555663954608775023040985763329829283475780856414136105261524571665486909564118638304142040914408621709690732836867066495413687755642357437908984199617236019766671591180567160092691404195437623299520620410089211659085458508761189643319488144044178224376093561383982925507861959597795654261557099215919450858219062016216692742841688708680255192888985956349929281136623147438084999403958920671093895424811760084956318857790847692069801372967182056258416818930565678240416747920102555952803179303686280507852318754327986401898576475605295440720807672717199178611358130704917515980133972012240651749164686433559431593475105290696358031119097533045339760390779185822100726921834714407161589787989766200996319911846460060091435819331127668921768477588143594528115092969443868048873669723019141558269452883107639051539660355491967695963700008874382788184275801657794630851176415736072217148772684335255295964540827953762864551620984842526942151109792091151617012284926063284175711169278676752696428012782730287135608837520031434234363005827111591927550205360838094907620704021892722783270047651005881008935924250717224508444609594067717489756583019969230079487440352208193197409444437655479360955031004403178148776984593422665863755974970552888393975175914232089979421900536938512227887242133652677351099305796858470085680809192354586747618531466541416502003144740185106556977570147692737344378158206866537705096311397119186858868990847675415576932618880794992424322876076111710004594366672147847429953628155497806511905986849533071939524022330929406480549981696126242223711651185415797646830058465435371624272777903664122327466587818055597733591641818268942026382446551002436466420772768526369059855062299422513366404680279428038247458111722768212486558630374175591283873970889680346598710485709641354860264641588685101776311173250807321903972281425506072284754252646412587931621900668712550578120278614285580630187773241960629097118268133534597211916375261970423601648778783907509720744408493709469673343899959698119802048714121496565487974712828434739094163162634624267414831418281360638135579033152887068541309315039702844671221825658181448700771282355735609423012776078363068111991034629152614841090211681066140767002519036225077950302842946170623589735484954898612353736033030094201385648373466237279148890581053713884467444853377040184369130851082280157130999626184699790556545038805166855480759710158233900630602286243671919702947469761930710945795960766237908828800700782571803712418469183084611663773141887610104859388779987823195085964706463487996730087755021928268098868509025839324620314762198214525770747066568653132513526663991341107762093013281424284380580766717314751628186901784820322345630990308809142930049023980242432650613167405992050627434592540106408223199681635644559097781195372176799052094544816145796715216359897729099048889638441320787995695580478566431470878476277093397531077383156765692159815346961992539791393687360106304356753283804232551825389073805834370933540384247277821781459163297160491384165302044045077975309261124842748037157587221595490527845010313622370983202605754409029360311553559325762584149904037131603391247334409641614912769612553701036339280449614883089063373836519953392198333060740552501910249653771971578736033044629244476965100641044053476942613727829764274947418220236507543982868172730453644109940525398852883030910858525625854714875790779715470815017515710096821213896158318503637640714360418248955734958155412581747922964064758405914851951150899547449903065403495274106280787483052426880423210476199590405350374374716037509753153405610147192138772673577991306826845262223993657056704809698315537458707470935912010305350800567147696482153775618336884207575850457701700139030256873743892258157801435234333579237549308941851860408792485765265204703306586625083147768213203146007221558745757317016080418156449249219645778703971339120374963287443855977082627519081570368752594271646303387430897272135483555130320338320935249574563178940271167530366916849602521151659347816736004591485520087495782921546472882791446702391638052050833968385012850959011271597873675686173729073633032235849758589645152130057473153216492062966492342230769493539058083667919437753761722923578773406137811176307498640883252645639081863652053644498631037128316458059490966260002378038327490982391827660999473958041788737223714080035825547108819061975649703729137246990954671907101572344765687757200982599410831230432150518066296233224287674224361785982131062276037577532993399414278363792898705580834042751796839931975793277895009272131163750940704234785260473883990185936731657388684325940758955919613624498758641631314691726529608509853460095060925210402162458943020445719271334978537748847017303197647089205671248511610260708381224834228796627161678573582600632155928590792097420773234937080480595858205571836043430682372874811596558465509839127302222481225403095892970082550993253991374628315703916006554939829866366070298536207713727763339371672293297712698217626356247215270793450860778560526001252739673307548379542677232018377999766988066506176669475991074290191133329518464322081227010730666112322454153623091511155298488769264257839784530936625185808471395339175185591376429189913045209156126772295990106718059474073433229990898523012941150280570357050050491114567281145708588977829941837818205507171403764301592223828464742132020866154961641994908485665509358672554201903488573350267901617011874687843805551692131306628173540727229882097705859546876717578153005498051498143965153386820019862725568854975278772817591207302231635830664038447126816787859523704824273102940005853852883065429239961558939356176359450623059943202545088665202912546569857045146203224244451186866374112759611180209707719167384780401923792592171717501082385621906441190900200234984990192066512624295970323186551758338183608566937065657949794666185914842493698489960325432080794199412356427646689844123445204364847481938288561844339127337636684150631470890265208584087499488923128475962429286277400219062080969761195434444459333636254594862363654148659509382449842433576590674136681844207412688530366800966911919851618935434358192643459347333387435773323038922036680214768559074705690399128930042550545941760714719387994421825583771824130587556251152596183092276239376772812515170111953951653437789093064692957962223542780304968303155881424674521240101991214057604543959728056184159066597045198709942068790078370310613435873610799545043498183045673208949215753531487754403953099265475792080296751520359418881274818809890497428388629952835875153492439139786169042801875462860746714871025376277634997733847215673487741968593409821512087041953967183909765829543556261736916939586071017443997363234181908937735207144018441279280890879032763553634722825413442268722689635431258716050304091780792523892985938456047886510070352083575196898241552518601472579406225255972487444515753367132564163425481697501563713403288686602308862129854230018835947317830972731411278675314719159969160757331473091200252655377156678942895919204670299216536831859898691177368005447484956513934611438891348611704432445337155025039715912103584905835013778232043948209508534902877286563803012875441293779824179899278791299099211555710426663500882950676121069012192473501237913689866217254092813159712175582525511668842264141965986244074249080379688217211348178413277432660856243522040769503595157514440646091717645856206124331199334886460625382696110672650997071140797776671172461320427463409180599393963063805000637823188972752590383372046700744961536598138167244955860432533640733973097853987326717333615591308810486697353995167887817725572516609370418034926221602096294325684647066911750026380795125419970746772933915773268348067690546673413584690476008649893518357333062558219063676646568604736612433184484107215142769829467422182447957800154749138906443892711285754840682910115370055596329544726165394579089155469333895066781427336651171421849456563800058766302051018435139602145999153059752252781986793709267169472370596804998830035497932932262547089121490656246995826970868427603310278682935027776307658984173454651418461170610373199222146232927674036658677693781964833781398304733883337710508526538675389890895844912988452415877999531899991533408897227625306778404254554614598276051575701955790199473282338077223309885952341892481830484589452973335668718699649005912467294413415333698193011270476226726243867433857602205139702321921900850092109986020022985318680958897545216717905599757051596545027232760465074447096140469281210675262308272516391798308025594493666746156067800272344657970887599336163910385263795372134202241970432051254720459237165170258658063686717894803478286980227865392442370702034980291594684915695592583313354978881810125406518895367216311815184257855242830614609328477772604555681471168726246264834911244419029046245769729857728020302361367760841910462696793022738359963223977400581614112286676272763483243529613322771721808314253064690378640580466374019874340133101408941971035412206492901922954234734731382452113143323061650892974122946300476938830230494478484981895925870934719919980271425935924932501399920838707540131232034055596170255607326251380134999602917439100591151962521097433353696683709287988748280587411655902854014862991586964505062800771377714402751036506095682842186727442727143059284745231205461894860107347151414245715056723744725930054088960630258163511220584715644020158628058717606639696455930274379449850239889014811491319133746306421053651125905746795601686701439354819677924522529459560867632847339684390971022230645524002645878201744085106038414172504891829158218341237239764002037633063434556236914854537196468516198880580390655384505699403093491730741801875447767956132217026055992578023455626494569521772823553387691405035921878856790525261023981778679431793596735709559922234977071077109932620604211374191074976311515794177372440875257750105487275205085209406369874019453338797708329867719468103806741045695954110958971976203952334506214931104321763971846057375568835591428378494254026348465495545871300037993217777109910912083094861021450190453746576368529302954924182927575520433529863321487882779566516259387537215394591650369272476229271739215312116847722838205043262386900417286591253086654399744289029645574861268479897908180689666431314303649452750130559543842369080941859309342444132088562740319316643597150947816967135479218906299849403618749456394379706303445163869465916374375184657927132727680220668747727741249770610439433179805534803897426469344520463219842936940662011223994490418074984051390796732457113495669250576446881103672671741977981664490907733512803889175476773017007762940686462507097204795074316262336854869193989549342348467405981909666216649851247853935585540364274279226460608534302231747574116057231725982000328603628275165698190277131626110873263461554354037672861013311766678660223234246878159215513607705366831543923519862776670675721378652530135205784239288524929853523510130505999385881173601681513131342065592199313612470679645174242413119679443812226669700153498189490967159458221819959481971113893065547811321543934544037745079829817140387365867952089928131013962237545514780904274953563691017989961898100197866228641681389569117588131245320741307888940834069954441896773707741681343491473353568322478475384400668109741435045586544275003164263122365381327282870074187260350498492161211304818731883187403382099730503281416080592426943403198251147598034703556285139062805659352016352067880912562658594085588630556370887005575849142481552700924514995691500513154537213556839437055707480327534077540322643804147181917341260455094313359094661245030976394558119529048130957302876755361097364828132494985626875302803299810651984769479688652371643552196828368878133339355916671727445800151024473856280155990335399173911442442791236371402397160113691007649477006187701817189475525394175029206809572017013789761609924553942828655865826100002511123740541515602081431054349619022682915785113478930989283964211569310945340670044056572771311394191512847722636200190089170730852874761093003709907535557542101984210629822937869374650302835568869529955643730204751780159538229020743774220452569032405758018545645146164568871667731036748926716591328227080293943438679744107437470513189815654109014168912125098750961293290574949750298025762948583744186905789048222682635973675440301441830822281738108130849417979322470871223283636349544186721922335323042856531174662302965443288017026701150429754747675036546408583585720657098625069036797507786248710142353763958280480593363271085586344053977146532879066220073107942147274113982955083527562557843903550804469546478650469934924382764106031689056602662764223700753226385646857939451641306604676080058483469579673550642700003351864861971518116391152431179864760378820253363622611678055103243970404249469755561516955951383521350170392650037724230126603107086497337260679152795195059135275992069859510308297328680712723103155974666939419114764273233287741353342675658865285591346903023636141032723015571713053356051033664372247597300690103050540533014547336108855273932140482906474794689494366416042274363777844201621678185243780687893915246793934801945028301334161901396176727887352145613598004666173900956623319643434639393597840586374840688267199536591886538371418410025905158805725142918077230179894643139423316305465098407783757069764157932551084768015029730714443317574219223525601027289178475816782463699255226273286274317662414522664907383152520350718642703509858094569902143652113141268497253750492526112186557289670848668445842068087843357205860656196083934912828734298857694202587649792067867571494910518435444180479257348655455573528292944863143530396233216777868864041194278580506557593686708580284369529924733904760324895479464843276173971166674340066021414989083031385927718110408797432753095595308517951969270857990584369175466670779018135694576158927965311256944624340539803226120114320616073885030345073146459771324237721597621303795285135792757647099264631518150936126864203322636168412096829927978120937999771086717269970620910669260424761961283590394885638769197964006813936873984104373411314551402306510090580624453146228165078319514692676453399828463075756464723380825538165699619487855298420089511471013085779260826666633639281122822140941118509726497722862891880735720896011807204365309743262612151675950187343716486715029202205795547918958403811382010068222610679611494246001160285644455643836870884922206831678990143596845084766051558587147023304206646236319060077782982111955397814801583455386125897622770567807666828264084106109542210824696656225248616390240717418872095339281995044184265860405498831368244855509827213552816588962778402667710532220151728402009743617693710972324236969978994655204874747102448203331329472321679106739054244460557095881406936397765661144945480109047360469169048115453257356104588264896601423903092393106305661341095076928637512795918771241256842368395901543576093461973814417266600467283398827602473239272904320477677798996694174332680771257456355744695714741267031390520431788495175753155556720791860552244921752899890918126383955262080360820799657576530005540989060106707675995501622476780145079407392487019849615055319238292643238730615346264041311575511529807956588107143977752603862309279431216892315957883132973507157989813626237545594843008348259156678492088323490971611106816162276116462985806988008222865915779065713632121646508448515217290118578386954583368610115663626346941880646058097120225621476585670373900829610339914667281184307076806298066742129320145133300386440919148582654907067443284727962030911183619383545499613244328402341648226555075636215877766258915963280011066914466450975795393911935085638038097432243831387661204266120479651623555074239436824755973547484021069470175198983321170976854084538343826091211482684255165870744401373510431379432811867463515498478032053830712809412842932688505000718788416015638911744863385052305079836758732927372228792544214722356318839743891543978287232767297183881872227755052094945621405326249908523036610736459768717730152084135135514487512186422219959376416576122420107073494765246949278175858337504685348056390515623417828710317538732907476833554382719489219181724566201137270942806688700487270657608904378884465034823813081224282875872040118443024655017972288486328122157801898835823976438557953183036566803581853862062293019617961479046079914179403079164177565982263950088878203658522741909876704380528627437711164806934039859962626635896321848096785276540899389765037776430371769070293352663027047600152627624292110993863754427570387747679481202914016447297062644853823417073940789059411902463021733734595723003331450943781444712124951994875799701180895773530238725476022307111298965156672646221979603411797890733575338972391802430900030705185032158866606545494256268499355268355323458435674191103355236454293710548868862520376006062660438057067250947532464624397578382921960847142568585328582908774853825333038750859393098500748798487018493712724378226411115227488769839749372276909940444793977205456265793166487207019182202302835046366369947658522233895743477871232327137656175246270934533160259826131343302543873793681828922318995941141025127485200473315467199700979331201699842946888246066690789546624824537908726053539794736699050988491468819011593902073512789327519801166243195893278930256173617093724612360588497984666667031042108480454516341752844294472447776838747157118362238664205341999189115833428769086673235720975799658256960919239830403746637528426570844068310165997759972509014095722256794271518490358821340059488563767870133568406506057358208673348315399107471448693932261757090691731874622795783544833769464554048092672758218482250341315320217116602055554002396928133509846180316365468603907716535662277602281967165686259078918566646200793583869785074926806190780889695112279383501599710904923167690342156528727169803945362583727781020277019541998907750430149202596990065828567054602711300705502317554219119269048634425485890376427939668374839942046409932751649162369897849596799304339816005043861000171984709971291869080154033081030414262538032203365538321241294090032819269383077681937140449526109369029929410417238533358266625384449465486941298884437690318178600690845028555441261458535011562946129530020052793798370134939343994522561782299400603256708187375982404687690282532186942709930503264127651472133188336111724524022538977915992890423151803783223319264892666360462746046049614922740259451972448427426197572984829235192135077235469457342297311623530348362185075269187000567832159832955635762328107546835338467786210674703514598716388925426077591978007338480428853235475203486838422316609750604863500781635185550313081456936160583545305686274062281740034853602044862217838314910315701605099831048356826563721753713299988857888067390708165566912838828493984542123521691703326240264639276349760048162021715955005788678416901994251191813971504833938090513442417659273013123100562008054176223374482778549254448409529475807243579709802299817720706394671040423560617355490435747918543636554788108962378463959912696779046270396805094746309123876393183526142433337082294460434453577878959829394767339664550944440764442817859844389248729688196258251917504495794094131997501608388408830744553573598830040893405398380951664770912265701922678444355212191424844359148564526968818808942305729887327653335768781044430315076295770137904240455881801327073390776037976925508107768769554676783751651264567716109018594826212296323451535224334746753181673221540084655766460917691128308359888281740692241144772740756126755429046449597866960617629939522363682026465266462297619772592017477237365074787343820911116104386113184030033619798867032242308596240246114015437841902104289606239762579493481879925161537329329254655273669258475191002865364774679286013492493666241123260293425979287219027452997324640286234913216066476720887641498793479694845139307136429306489760340900704233615197287320099885279292526179050726092528448066653491073165306034345236675364559654129884042460732251716457490381252579949801858944562834247881370412177907534418993058802374865521854806905685978035956062196214874628255479188546872679029093943642402879225780753222149617990097994914154619643996404005147578159919880031158845316173596275458938057488410761405789063852906673912730669097743890292253433852765375720889982758692188093772778624812434659457754018003415067086416892309966209786537900032129817016848822845230657083080686724217896372759004243662048049620902718228207480413658537433494555578625032289552210361975689859524182485254002324055090060665521836395112704999822591491696439505900208649801829736864143019099592760938976037420730954800903435516180481226967334828177815942916779418639107614246618047506513129815044670428641654118916859818150747026521037242541943778699358088842701838758683011772614335496240727219924711278093444210072717611681286682836918864468219007227819477327041860325792443291386188030955309074950568700085128043997191856274524948764486840685077699952765701608265730307395697254770800961772863095901399062100924194827807042109974750822376978396887327832589954842025041422718444669300835463770706842704389850221746370888485952140780471503712634573352488905500356352765600643664342730258639169051946962883896108548662905547458592187126449135710592007868219168761612480917653472494019472676349448253704924826203305549811600365993396926809959369323377229025391288640764102172369404953097749312009710240512236737805081218774324296522476195991228808427014498167404182485061597889858082534871319148178248911174385950849919292379230544449895862011331497734685324397219098188946256105150865151768288278301667001818083071772703533402738586928434474415970297813241000790591812814676105788119124751430016411561767565109140634241541385217640374035557352613481366821480772689300721431903527208080973972999017709117999517598612243673717702411340605661304362752723850027359548752402925247855006973082142951826394585732899046380585062307191327788481246783982167452935910502624863139048478009932782247040350462089863541426255793499651969001154365281338865611556683526561604438441268111750403415589121960368413324243494299286459394678729439498657007038686844064224128571294618835236483939646343372439341543710848938796527002612026917209240343108984025732861090172922524492065345975477971915241831664792685063332583213716216111608110696135728391018743724720549389744677864512209224154575681425741666021979872313755102680494993411064878945227704995567510671806625659243624714948687853772105121887974709573628135618055257007367508543507797916277429613170611048378426203380399470677693401011348545068972922663881701039333416813975527848549439812692370082686105769488349494361684205253808704948242692060063095481400108221227915709132724815656272479747911109377586726258121385559458162544002175437373542959898040742466847261760268525618150881674728907329916906638531587203867630024996913399941494743718243145982541877843572231093308982031889093473724449920331821640493881254113838512221229678427597202434123881244162950104203091033519740500389587266999874809475564314970474273814866846253444785639852937337445710140517546173710545866472150109756300297150380183476460669514780253692359440034751796950351484431345381256415967303059635675970541891540940792924577290466277178435362693208719815579470618452109940918139876681226260873216929297221994176452069640050602552726291260946663133310242263945326020263841743784355233885290779066931775062123093310402620227612923134424271767476308214410903386960984403782397979205559359546638119356000646822555417457821260058843946792846772787741376005577312978433493816696376724340678142928714547427831071539265394162372861807684991637097542558266435410304748835757182713035599384004567724323991734217556456656481752043654217106929966013454711293515945870387457135101472352398187237878447002650559302261984545309637853422405608047979438337243578349044730761410610613364947106497262321796940133786185540168294043676421307187368182282879058727941468341577326123620983018284607957728350046797835669005914113957335895065954800625634174105067062098463628092299371436506620318212934064813973523138044656827936952832958393473084029759583321276592565092048807105179581452054997403138998444961234555769710945351956677527224777315924597095031152134310639890310896456319122048132481058943871417406148082063124471505381898650283880905648465803286239755067014197093600884497679350089670092357616142203913355916230595707752932972281236990852120172684875615226960809864418288015469294488956434522114154873795829423611813022590707079160561311567869765568539057695925396307878757009796715549402928375480192047919631736799227979635980625904329155353022899804979784059452454434476483496040789958098467874615286806585068498735155606098949927511080620890408237739400178450990482150340093297964458316319185363750640271221404847390462607693143809608709444642570608470321448994435613541767817407705827094967549445083825461648112489780794348503751380045827691528456308570064011825597264059249899367689396814729934401767147540872268945433185140273528298890060636346825714633306092453582675515438702674267363727816729833630501361912778859104589141949909466457093892735143160422110157977500096320565536672484314089709760573525905767976653318313754911917761300875627906506168758696770765203544493880604546119274512844714755752664313402156915053895097545982180860706480835685354722820852419466848287450042104112698355205285004786100495904569500397008384821121956112607363946433455987739276067369312698362728275781172500621847892260133699368592815449452264293683513548881709746681538050092587038098146879625114597564061582923967380801555583958485659781561345752697849196983776458441532496259479155082192428669544590310443034841563240153703849801828188454892931696581121912814568437806424906404206225087536524755670890424818997857591386051136276491185116923136076542632765352639448303535181501877367638908666108668849659257558241270051611592811378938662746912407802096672105502092828719169526824209779218952324657937975230179030574814405760927904263799426389234993235232176924059604081633485105424643982911977085455137252761074526970938576131901321514273924007840219122408397063034548434257292528264926302188926122504050777844474583073081766465588181876575484954872324041287275249107676470967585396299226862257573598342071650373316369553086473402053141879942951324028006995755540058626333110072992146307276052212779997380823949292412158653806154920279795552462654236514866961156300229086690411416212006875042266899783846009859505005520565046557892753703511690014685459478313287104191879073006178080919480064422504945300955786551381514090090621340385732423474196101799494505673069658336719769807170865107680573283783148746924707007034969455923183133490266085732771925137854326254527497023879710550652546383782051948184934376502414446805426428271992870241710082020222132561040359083803019269210835038381550193157821514918548315728146426513199801414026705499220485798299988294331084278047518575871307720711998198723519861116677199564871899789083211880154897890965224458233248782703014446050668258613103927663577442693137658521062614739058824887726595952302460590812365855612221081898750047174256904448098758391346455620361390131118846071603963273675359599816792065600905167820351816715040440485534201782815905367526689764735278268875914878742919286976943609601206707134129806269015335473267473377730875410759741590544984569998070016624512647022868276078507200585185807823870549485803991306724277569738229842590787206159762302154766904752097321027147273543749689758506775822028282772220243019260875195572951089106942371685890115421166199127006981618621470578588840890147304524414697378039231834155964484973362780472693666785026331941771517882349225152856600107191104597881617995158378527395573625037429292038112433780839529612307756036664877264286726127789617525315589322876596180885451243001995334080912581041851096736203274770800615248618294746777074719248175831661437228585080216815601459807730895123235102500822593280121349563985430805042881231343871789511220964020129113769628476394356156240488007656817794708362414689871685300808906625575606793318299274744442832085749413133583300641543196963370783609573427348653104306701633300548501084440113459679416534341238093627800043136569098617987469913713346193484582593661523470735088321302741338478213403218082407974206726725207870242424176603457985814683645281005674604072089507940244402348752000163805267151155816788066892284355941934061879079509424818380398430916208922298165500107858838309408618558835283453526416612959068114511387365819603112059008420634356064081546347627972751670848818164541238092478194642457505506152247175113467590076944971570990046752355425153015464137554697890980063841178626198761193761966746384008685572042881681268640049135528950902068827498722967368318325015776208865013138474829985765044053320168432303467043842661809966123884140867310640857091497880174137275655749177199964976438216342990474417852964948196497651412097934936285105208466093470015630167151246643601448979708180455214234426136809899894522732424504128062555279763496930511794267118267902603743354221768820410401979313692912942661234238992039384933167315552364038751755698694142919128304250319117411959598605821003190064443880764061806746626766227823013402856707568123748751173500446390979907236910806872817674733765988417189900966265871834748531702077714567888557028964903891919493473463615445469796739341558532858168007989918298890361219829125915510301327136372917479011459255875291396507290417031394255001270863585660953880202260963549203519840346610380756098943303315992350143572767262591428691206752999305267663323316632157272776281013552948266813749240714177972191254971967960165190012135938041483863470743616953750440574936335056137342456222658967822268817415947984951249843479778214704292653055111461469503604706867274293006166670444046549755323943549904500527252080537592964633943441237081969655779247831220740842807968115305609801850774398960242050576297565687210445206358095742755793984931096032388745392716605536250395380389775655096954230349384202473268448643478527476212728465228995712660280813103775192753581602510973400376910347364123028452425681540337588997569878534940490292919522269481890908222272073491090737172561541214157936655503539108485403521921910044678184996830780257784464291902678610187430891548734582508020824702658185183481664066523233880573085117251990061696400293126670323424356576948111828421715734227783718851820490068578590414361911295581177757304799663626106724652931553031744071178998269827551965105108177178772529195188989035168116062134791945011065990890423736747500699509642218460462342986141969002338275475909515689764550111865559273281445123731409770985901066753196312064762787485881600419846185840386110310087441569545264176233195198730563483622366653679952048245901420206723387306644718792551057499955142000955421919854178221202541446003995303281713993741956252707203656780302902270010414161979640054955143848059623475530760027307959846427793450602793751320318121018605804435853391175514773703376877943771712460510513338028622765347781921471282121854527621397688927586429238975542835796891539041817299823620311074124332408371841057042016754027987566715922174711592718542090123632264426519947791365894797931097037336085256048773284083475800122047314800259460155874162854632314592362331691321042760608977904540778340385263807396540224000560040200137447975615710078731507508981292568081924377018160716010268409991788057100279117313645702497551441963351228238793565893210598178982915228766523452002290574063065347165841634676658753461597614662086281653753748650671480705873108982366275721682572954630174486266223858054011533919979822014954785539505817645140171737204387018380037519446338714136610693518893197994595873728630709757264759541521028447290118054462092621086339303614265980351798269430961874067661382392015761254851155051894721996779891125506072404763970764591044576127461255138509381621329592654732233529339926156991303366980468857602023275415537565344900654408765796263921883816137713522001888332740526014442048253141690694234991186159634538294086057102579056682196286196920402821382357466485338603966853964164939972398618369103772357259692807237671456037943070177299667801533726693920351748308449741115822296793280088833980718393973238013219003221930525048755408539222474893573885085118172320333564455780681269199719383023658147834739844267213121741099511995776514604632408980522146254000480919073421192623449052052989171615927429825358054847171641394163001576639916489662023557290608661360565719540610550106257906537699959782266489580061894168228226425215366662222914873121741205223464627496630746912212911286651088805192187004990734522494156652891711502342515134586395246017993086145446136703815444812449999282573414642361631485754264165675702306747023227386865407449987696361562099794009517842905668446363893876891372550240988672250331884360417315232957921453119771126686055729011259929461910528880679550462352478104494491614584475713753785464184052422737963856460530839043753893360521578917255147049716348742193339331210979761908799356656585067867653640453319097375358529502872092242857116224988702459667950511116460486558116410093271542124974700410030938809839452632924523522026671539122623175184311020338904390823170821622718204765970093316680900916734305234564393665768083246828548935849625874855628679852897229805697556872188886941314726411521111843747674729479269297582237386850772351832862769560935973405354204108394182622807743329625949264489496917967302262690935621198976874760784906075832406461201550009402412877211616279755411226952198298061337717342548469079729916499269748985413112793653738246910089386330555372061982794822512685774741865760510137590551543884915795196525251720787486036024850995839473827570113033898482703793401891616179056870564493932777552554720126333117816039702657159840136045699514859542454428837882303266140183978384067402897645171185526711671559981239108624963539911156540577393710833491062945536488531365693373554218659917895588693954533732534139878804140264747841404777551745867745064277425747171978409716524709695359233346076941752000670532723431655118390454815018400125587944947931842998541187717753017633246021417796688366248512078734546851700189163106479815421500599169690972242925242015300876015904738328421330101077004125984796411413098560273496075757992310549494039410652644572573109777553013243578076073768092488594677212040317305450381278146623251006451008192736991061048200286218626800707606765811657738153899498285787626087952143789787380665466019155842313547038018764165777725586115325872857757721684027187733096284658137154591048640933774238916640650558789180474972650291050839051904350751048473283871394304572307031751197192919938446651143880369805154534143706592405167873670553157652805701780683967070643205331703525786209730922382839561164455664019148690597742964696957953053239727707376523023999342517363984241365551528429941770711349212225684493440264705239587510023323902758559257147628184218062176206322980222254402743282513296398366818542124998933992558765685224459817530326928068484721186520675644490576639005334216309643507743600753618985441157670270949609557317738636254486509298910847104281097113358498683616040008681902846090604064558422874011783513459700268082827474940048187504592296600509184235273377899843924885011589617172558001867380178908205536873891234114019310110156646480180142598616139727012936658583826342984706253734887587936097620942026801781245789280740080852860596870004522090489409914469727655884783989939935233534403680164240941449666455613929349144451302860032934535316570267517504093344867242237115258424016413863443516392047225943304265365301080035082552948416502936596981980833033529878861119869831416617095596858647824710452357008082416666752577899582764523305784819810525387192931805674813961476297175365008223167541696717576621881385129570561069588364464667171329720646351388138607280152270860569841689518271892671164521708366963996930935623088752995606231326735889276015252446829180894728475149880040376886125553799722481675032869225637107132618529146186138205440004193349834510304839684161024074336748954514878171173423761431309772763675910199648792956614852882851980729977684686587626000273928937628772411640345184269441393850478650281514111692910773377590972843108833166789017273436819082396502179004905756340114245268507778220508681889180420267692496293358972945169474774821060537512333611712073853596220068626377073048945610345586876715194728482151638954200279608043631043923690390400414150464034824495970184007635594452348329818915345691496288797477447021194378708169980470761833463274669683572633576185685153865428278412143443328802048535919289470946338409115540926236518661705280137748913008262166082922165922135957836995645078921355115867810444707334070519082946007913814628625122589318922992470767244049901359531426029160329722257790726920047998739621007341798106486661235534755700457561067898417221920658735746241174633838339216216897627543788853324032334529184711627048892882142692245731785639722850365906634260629745575572499605252395146032696024114094199960908671133288587481162059536604319959644015001065183286504401118775356126927936962309883615223401064741878803792633353716247563190153972113414446658139780279221040669885504945708361610600159842131456956782000165742079099260792321730582148182207769740770588973453305876147302142905074379252242443530317750127501993546698300183788887776006452087170351771968484144287406833128216928284203568885705130893861324607281738096528607245881398679650898522966815551650509131170169280231135777928065286220250330579063718924415146352656649226893641869084952805018895528139191651732888666442756257692950944512810488400379688198131970592352743182910397963708515680080488553616808562786913964016329926631229174204179706395547788402545962425612443755974280079828692857067722318576925873620891147168895147832501406192642100238373919685564184432174209396353012014238271693976745891492546590581485873684752020274730347465493769740130378726464333170637245480390898578542972775136013996950111635986386673035183967762537577715251791186606809865577419272335636883906714975743548013723619745135764916964927881997620960180192707928872288838528063152442590321585210414552270937744796202979926768053883430770686974278219942051765048354648579271172311066872928521270626380595002576227979916279785410472846074763025355838929802677459350398396306741149087619711343047813595443276773180818702658800674243453203909277115944035775615929384570729587555189548502453869173598936145642832097692002524309891651640162199354090726557929484007545245236073528171945338262966201298300095368722500955699456758812222492625772877866879697561790863107678639031892967928699396795514009043977282573762750778494491020852158036978211415605637170168341265659921614935181428055806529015891835201767361732097571087883871611347870078607374930635163952626003041811158635871782108368045022991584196710087113737511694295294032463030506960661584652357856512249497966334932493686423773292288147825216500212339014516880758358239496521092318380080266213699691464217249214445841528267442202215388600319138110832540679026171484734351161723580768548083764619798456497064712908663412353495590564242043293568497718975707794337288173401998352673549491203699972701736636524252488711144363170056811717785888530697219240464529423964765882378859933515892289555386346199419161890572295452200622488457582704897691208609535388229358919011002933138744841906752225581044666865789596593283348646843866125981569763639553429684903385340930934401632729690777741531069087167781809639164799471477677918307039351937334323909884731410740160670446072436199885036568292837144090573411846912356222212383959153724353059175041566264721168877773698986358499808034902949529241646216911033553549541475966657194108857809841325936719311411624178440930517979637507153900704820433629904288917559550955441603842261860262191811573643194148459462111249179258707962008035437666796119713360537186144752920257537059530730791080598586371487591989342979939791214578765700154442313388434053314052221497188252619291897235810863573891655657339852378629811913508495819905214411825500314947876899721747838012281141417631355461045637771074638385549857059834088699611062057148746986355216794558746889923658039145695223205143830822800735546584274625291635223198495026883214691284338782198288538635998220305583657559490992755929042527657408171987009091328411138084889541347115940418702426746683155343968590416016123607559195592074857618764808014381914051742264554557512113739593162926272629651231442597572917230254764241585327082824735824172806414691206148064288040084296312303652700812547939148323961268914249345745408057501756786296550088596338034374453763584694658650485848893681887211289088030722799178765274214971989815905462230462823368071055454172229659209497806453044217859501097381309164316093274684951052321178857565269678731714328709778764353827852241695932674913814011635617876863273170825347630789438388180417765402829873936759275749401473551355204457346353824458387580454856105149232343627003828369753754468364080996419529855433489273958856685486699865989861172569812615634835102856400328201264290396962309923448018737480229203398466540977922768452543281570486990989227127749111420329051482109486846894135490840125840820457604603705446172043685723435697404770810153676512490750851266321223629650187572112781198281209796665696206096381404474563830792955205421366735607520506421600208293131937740862876882832794322311947975950778408314857785602348012804816564815550087854066446765131257349099336179635985462457439274319474243296851726201774914554455649616957306841182874187194936802058930708132715799833264231777181054552306856663280413024915665156579800744054441364430054888705077421307682062118749597163060486128219120167495616721826205592692561507312102936713830640770757950376937525081726231257420445986745166644767606161961851006465502870655431121335879812630223677842721693315131216263288460187515839411418276478484210025703730316489004693243385390655812418608255167163227156407662221292374056050308336037705468230139101975740743810799340928558341548181348442640745292557141663940179310108171220489118453738309616346126621325155729757558396630908839395626731125881996035090918592939408207887537109491744285625789944346549690954261309073150594394586386755955341497525065449325743708819405479190490405085890466336330784667815260277697498925177284817832518943619360680508612617705127879743702448949107145175636469482543091691818333560114928707600843236758731293255326814299680778393160501111289216559183521241819554931575064839763468368113928793237256073383193387685125778704808044351375232048453843848634985212492527705126077916220197336873675981696798716057228271065814720303879440899164457966676706830144894887017577268312924347403994164070698446447802761438202651520775261339763971120338150425066648395167597659095082661969636379740532771128601750884391695572744768912313282883079695728222053553463109676693120768040602471958841713131496824671500552552178638564892262955024953757302090347259213043911157383952722209841229304556502366238104427103117079705395391302881897514895138626214578937205259219617747923414184412028591248705852883321596300448592741377758264735358886466986660738311677757324101213677680836938888071864019058855421419355785917751865693063709511661145220281815931641214018989858973067107930398574699218023483880469349077515546996403493508190710064219315267863270798572115392828043625976681805725238546433264731649790479595295481223185905259948117734939072340266042628262553307541820277639400765946281612070047271953638900490358760098794162032330910123578663342125787913296270375880678849137310575710882535482093963564959779222861965088700732777519489158945909901704752163073758536422060220136278477054738200925431468621578723892985964981679072943216433467728391887182125231617661384470821771914882084801739354273598379485075852345125776808344331439316514388060736982332619482743051166107130611084582216333197401589195917080924308880872330358621815923448161972441881011953288896320599356990241643501408310739788379621055903198293541737796921956809628071433759413527049785667008570100077318575573332758518638448301781357211361191027775151369387250591357114807447994480401990405694579418225176951921895177158905934805073455121352426798616200730154267812388580461589292346612048937035882087825464325818540408960177414939634119583580403061809958145386041997935978077402846928338691972157658437254579277348794619029823943643031504424496396253785464187105044109779838845888270297049314373220341780456485874944760678105957072849848791392262135414251736793159941620560591378907954485038094291217696082786575698277255925163661219539421284058504326989338460606877137360524675410911374497453624842517171755165668995327688891451303543856637563618023773037458902397187854911946899051604013233262017424322331336596496837103168120717011657479280644699222028568565474775688192160997678052317140392578771096758957703188225321305182269524050697012886648580995241496759031810678086835808991323332287688084692393067547662900408647392859596018466039561387620691391167121516447387144276515629641870364684962941590634172992821687157959872226285064770509064010544903571349921805061708143218087206851666910967256216987113831839073252137422841560428457217320849990097339885117522555484876060684392713736503375014585335006555154046304674039759269845239882095667350369952982598863950218277146484535398613363981393678865451261508619726643592769694463761788302727784792524212563506447965819083672537369047238492946887266872245830441435263729976150285413338446160402981461521293654574255740856761249636839043626815459700091658998676076471598148240838498021932587904848623646569389670601114278089127006554772789706016821734673859632976922325217503619605305831727017874644954355844157021565884154340908623592495373732271671372363938126869610980662739986238832914107104873251904267166610105200750108909724598875183744414874890982144784085324554242317096221448201299236658206798815775478031496451904012887415819391430320552479221567972127717345003906172737011249041351968366635103758073812576327398957598554397247830039005206538184452883962611844238428988990906921779336182233780777536399288309343483125665281939913718463352797713324579424617629606631149339122551791442360896563639895972310189399461753723390428057523663126461572938257888342369258384267896181274671756348456038606005966261022236555943981508081563849048264352419583100534344956383384793016474502878264791323002806309446032101548495027902430617246603319216772851402196864178728544957011402641493065696832303665856054683557460086315274802238215922731116586140796543574008046549932139333321855268390960233747814761393356736108620814947358711429130710359576920733581663718906511973748590658191646476020677784349872136169812118032112111232720478175508880530977289958797512470679862880408806388828624956643715694219451805256604199182625071162274224136282168555346211564032774676489848212776129984844549475261124454432978180171620333176901703126542282827776355941894301846747049771991853412313485530036083024207307247069074207894864987989622406133048822712111379797188834426132147101411353829535788553066587926000959600881219216319288687998945166559754568489152650763368605775199848905398531021353672320455806891801070387590534962124231870414075383757813622272549976710810941311297428387238749104978766239106477105572476717670243660768362709616201332225050863927690454955625010419943116760496209423648820414800332634644822014496970938274541304208008270352200645288057739152102548249688771297128524039613575331053491945956014703133552242509037653226072336186860292752246454429141515438386021432972318157509946802992642949785231903710516416380295351159572333671686700001466945973934916959557193426362631501871705132279202917816777528423165755900630122964339089573279511113691872900019859061664422789437406997940031715940788757500949140294134118583263946691988804194338108137274820905358883477064963555518942230329511112277442130690028176609616309247180385366915410636101743846624099059325912125258802881162952894997301442457176487498793667202216445268808396319215265984466653224629129516711588479779184695430353038984560399723012849224987149946647044494537193568994676016703099236711944868419261642385768673387630457350522977284148109382687585462572826571050393532248040931249309372779720441663956669219540139309438829531718327603181533342213339169027679722738348001322912766677953413983727970733176009674790191316415893304818606916859463107963753798015648499513678571560660724358891859034372040865863487643046697668378370377554832661617885401424957506018820151919961303329089674466181504822516762382300787084025065774951540149450557370549202592496278910539476795543308770157028836761650420747441863066453258043407241150068841468670657158449601403586655518928640728611867537316336772904354699381790680268069283319939003710009668831691126929770337862457025032656559529312276176680265175802794693212261431055398681236301146515906429241133334094233332823837550440364411385665402619107446756516694238535254001550716018299152173876491523807610424348458541304335803942124606201640443194666000162740059456384512106999398299121202188356376091608826173574207496209848270450936806994073655737018198878455373650676175024469651992565768328203761783681973144803178345676944038897117268733572670675404150544306269815700984820786574864805707598738693182834120349895552689271396070923499697437763561991416911225756694618525599835212722749782338992982073259163953779789236231595684980443548028934302331245890145460009733101347937079549848841155768668298387084877690622048967371325858335519145687150688255255246295471252838523995408116682408107508209231887124522767266747943750339464750041120553194961096947591993013554200439870826420875823894564490047436627132930532413895220539015945255259414875556573010246541841281540162718781295077184077532557977916736133552636405316950866445609280903942771454299150132868772228605613395148035940145257181620607193931084301592356667531191139691908747613021259973159356095136138547395627171176052470930948968489697134968963633008775663452324565283079848487346814092506924241945356246294850180867236142408894626623366878693448530616513556808459819470865943309091722649307317139178668318586053646945843949662523471768135917336438886014687868104782951464444168535313396296167533359949752440592069849928051890430197598685898679820907317025021494820153600207450547295556617261704425230669447049215689031840521045145350174372188285988115423859711661923964899883693189117974024759273902159246826953375846716894526332029168004038984246347368384453820722279362225463049952154994395097735697182581231881715070148260400263150362719587111142234839229635962853429786182101932461737866275564043550593190008406703520363256054002819632037285068486900033604011730891730199952656227412766751914387067528584860589190751789012351433388667055453422477311230397532336361588117103888577937039161348465389858920253233224399214451365639250287628733338152192551952048140130565146822722356759124465599254771037245169537218043864834930323739476082104169343336148184328031732007111990078628672534116509248145003563405800972652239266376297657429104056925579715047016571438808921025674827707009911297234630981693773131005485661455990935688195979659243854694816866721210096680640821097214223743236021337470347677216421477257966811749280340553830683596863374747241198443820422033524165764635611950760410998324695937099390008429556342561455176075116475217836400933416676000351127822056630655701731747034550360677138975361118491784167162021509180577236207356842240762593278312396421874467600328005507009191749246431741177637690921811402720857722790096006246930255052784775730571304090015544412003037595587968329138757105899283817745189453224234716726207716054170094979884569342756467804222035891699398138581749406166686247988719026343533354839456253255395153966379210061914476997736834568059279113693576463796915200886636752073735072985687447143198921220597512948585493341760280759409117605368759214471639217964620625157232525078479552319542342656991271899897955537439625705704981337813066188404166379394877369612283330909066563082414770449079519633174238446308206297021812386692195429940015994925404342557166783196252798339299278880109478405050851152209845950331120501504390398427643598044002539023338339385004158139668157819159225886017026385414290778582191705777957582071102180780305096684766398717182542440976899998525586689900767747129486666152791491306590010637963850168604090710924856433843394808412695804397757439233822911914580310232429542626804999373100958825456093688346577213281922063068988381357116218243130562739536843263982684276152440382054447887820970487423646525327186196741809391692728394101142113109976362657348823470647936775486628161992964838706958361935602122978309743084346599726023905603989298481454942738841794578914369302443416222925182456941958976661455059572288350929890856800488594864672485266560953455451195507296748785876524678418202396941055252117429295151985295657760875981653795009699127668543361517540545410066848907140632310287533763871274216353744186169599805872566019251117198833055079313644612323040331566780844388106631919328856797055591306705454129870496819584303463697367307562661157708442009006816104932230934348074502739560150151891166391130329020588511999994870327939886214375251809216017406966779087304013995118376010400275249168180353152324683286596367825060388052379973034734209746749403736371570852680231888993759817034564129996587395605436775306902301241890768383308904003152304399402848781541187158909044907878674828410818698878158891495890728346044920396002098463995973868734934136764793126998716341511639078542399030601223959157123670396190649269088810942809213837508771197747233938036158897246451834378142379096501064646021121449407311032577078828049830916635457700369343755655058196721424495312819874086079610430270207548380717350720416400089920931284836550713207425351566560662114144771988452989930664775034930441085736118470265215906975944438045241029195849216260410412129518470029693046610147125700083785177832142614251187799462590964671935091496523100502794920334345245820083956549558874157922208293595556815860483473560779848853496346294303357627190366302867187332237349747169644076291217904723109607872757165076806814781906362288546884475701405274577767375333353905225691900665928236124881571255284021616759941795336709478738512047300071812407217864442136134424367503383485401769211172171210139233892318473681854386320148438161569299733792927161740803057807987923241272076646333181743682577332456547636335682331809741400182095235245454065322821310654504408671337940590766463453195707733212534940837994646950873492458918853866877917743178173774119877230569940403959717902137635642135015252409144322036165803190669301778127068979141822834466181026923795918035959773976909193613645876966785624058986289511432543655917955336062860710634946367375223866863366214263152770058442289931572441467498479489873463073997949912921803920098870729417846223690919289645015206618493862511026828166926920546843660513690114915313274654029511350468779049472823571080993050637396764615060183681808364359468522365373022463487274545555530969729732587822505184588575956808591261297949492539476987937408465220043761880184755011031751965424051459036739130329732016954728900848707443982190840213190652541697724208085680764269665563514677700773915574628516149560414215793164584272420447348587776720332404428591068226545560194035953864905515176628331403195295177293123979823201429281871199236475658034785952717490974053769095150110631847986277288827731646751211992234511044193111009203643238977195889106329830109224591832515914953412673766716518803073607994260078964346369706204130339126550250393555767002746794693326160240382483202098301089405560571738026887833868979603212594009578775895009296381540428229650474667869597078986249104618319108564072674980726209768463775093976213124768173528622973565006209160031871718263321228432248835103994203468144522989745954529004141042956282027630989958072088112951445689176975105937522493713301734130080391538797361899285651729357539876149202234999914289021449744685154696069367356151488980044772717902605817311703633398622917290711959745364070362348791528468265372375178996180595141009428530135243457972714967481420132732066428676166195901456825200004593758486230280589772703205349764589471197550928318287418643286164870344904018911561965358321090155207215983285166536248259951330321125111139935420015328055700880085674538011781714453897647177356866798377595686963723316338265412781225358170986875575357280525696612259596178086128824578551100720711818894610806166956389241427414873663768676150703280027937930983622220574325929799800821316162572517518035282980085299288150325937288515772882465858908364728118228548418549663286364696798480614366256458027562616185946279329726250565872283108484804730963017107877877006262242630594147458792158619755420168167299702848515861732950818375452117197819047781085450832354104376919772952754670305132700904136438200346120969481803594042341422907329288283777933290192550632634655300894041096889984086999390530706004865972173820878954824938939224285739645680290077399635363924365303313764763749351837039348485851187470072794629134154237210567370428289342474105649924152060363450537133262827247801110318812206699085247104665989700705167074267137326965522941066511287154295728059342641706552064350821393509347255466198339986769706527826940673715578254777477464269272386289690484050256044233469002014530812088342111566474056438350202287693610617755849353809744792829534480268944479260985210545450281220537820130042104348577162369668563018878381353668427942552850547096063566428193848854346026283195564871582683585513757473908602322951003435456127450850786879181247723889039723386889833794397594827056029728372512723226830753193339947557690672318743858284597519047851565192982016589460919647780042843941154780096758028763678720575008846560675245000185823093719937586083031425440941270975313138311905184235192006275598305798344689750744348408584151740552821380310821661727907700056235451145177519076300946598129945560212719175785453746999416130397387237245557871931424349294017171814520112481387998676935013626289031293798851233809443783334731880765065591812519667561152479852241600108291715088591609854234698071028379784069180715021704293833995369542244980135648029690997115029024977357621765599942510050911307365847708919645350214088929809084054628796897063880002125277328987827407157015121916092768809670521853225148697931138758040154422855538616624880774483850452627031513154073346163226197894581005708609316263709987705971382554801286826673827332493615427536516897025672341171416674648118132298618685651241698355948893990323949206998933791379857205019098934099516210299343328055476396763304046438768916583863989463309098897685417528392039095774290653685829745361764363054982769387413791662296269964048403553606463293808472357944410993257403176726940264279946646218988871649895528060142813840480255396263693365791567904783883184576276040267827109652858718078361324710473286068889563021994965263028729689193320723067835359769432403606574939950011841189846347995270412257741703056272903739976320529163159436139023465094044838261215217696590246733060348989175750335240140709448758324794574631251369349064417737278460485233634449105397407003666966738123382329103558358280088248793826326002318623397753684949889022027959557894671871548849417586797350195245778021744100224316844147934920635824057365255120233332211761663796512084058258794067071507148235484990530035682619291948934222385831090356336810132676966163916962353720047954881911787543666013314559590320294060280615916333463205297217644914091080209971928958915124876201758129086086543594993924082043405046521274468564126790119788400949336148019544907511821406060315356414374048189655337061812889208446058551906557429571026428591494319242971859830956248763331615668094792689002979430255662285009288448846586551184527655844199238091886939554401684244038483829905974874115276522098087420919044123724052670907542693217174135149467611048792930951680006962102608802536627675231343255112436524236526194500246285959992987030032847956487293955848313247496510924570497282832402831823892538319512462226925678876633355852315285452428673126025344367590011395398357751596863015777086524089762936577114410896509867972974489566957065339302317777834608730214870297136934502200586418381012087540175162085056007762648515103734052489522449887248622725585466355107774638018950153959151178455400358743397027811107020638933046272088378520435209577376972026800514128539974177936178881649870490803212204531133568510665091341395664407552011477713043031149618784082925614405186547704191462082675250523453454562700233348014102195482716036530933280065264218960531031266944034514929266359084417108446364679749307844320474981913132338173056461114702679711400869679889560611946061589733006243829674070562300862111308295313024487066230238343763016751605157829405293400447097227388234195139336815002814534842154265648475095840381001534056528469046305218298352948901831891475087287850539254394671885085687100503586023915887605414649669927461444373460370107887494002298540801840940091151089398526284465786984849045242486365301346066857518083187810417806777830529044978404793740315437220956420189596194488807270656070653025418202906401407953594331466934527906988973968078504986144858511128991487286820294189871715692997240064499462656306185000959071121736028359653896889544280207343536117881425763292842635636664044375884708072726156527019534347764425771590616798074668139673818787734497220218959522677522530616298778920073685540055019681457218367711887837791450815213265584360270476209446881241107269144534916047943235277627200440850961555689274261292341931250069845868432893986787981346449133069066454174983486447826565774075920462845192491866904503595522627809348560932561305983850375930821223954120906125622971375410282595679937598902475222075512408338112166788349739316691001867055961717644244569046044342933256071905882859941189104192402629209497972057995852576033685021927321678333536260940334726405492331038471386215967849267242160353051734040882351034963923102886405004169920021703807172891801616830354914995022878185250048725691817169115833000637153071876736873128754763994260285104668448742097011076966825807273650593619008999344521831023540765342441882504574834170601761966060847433841229888975757932898279557919812894186825267921947026057023244318279938210121026490093153489944152562002780035091288480468269062002858483180197238558042485468919521154136367782053719649631932388190116292003387125054471622515693231807631469533738924443216148007025431798502263989790470516352547017951868668158220069953332902020050018182307104658109536638921234015159641637200057406469143803633149670631170209058923092614016194914485052861372897367415066789759651018446284617429553017763386236115169971660976540476893932546617623140304114302567372403142170090602295603759023786409005920378765256654500978374324541663164971271846704279512891604695877945035318423141558158869471553751537202761698688404314277410765069740727396662614644198828835390188666566090120723226535974637713606013482476785074809031488203995538815555557862520932652789727287896185240635539798579613981089074283272089016495988316352293399100877620974906275756637319734568204022280190845954704890624124470013287691535442392715476519873847658529340534459902074834477465166984866399315058117024922365736332102037829464010530360889961089755010026684669760660849526025043291550343652218807709693155843581534997219854851932299073611790310854799974595989114145739220670853466738650575189589053762875897135039009232388196865761798255243754705691788610301687516055005994790754027872621165653046827460982356092009871453429940922155296684996338693229508551430772409260715847648616053835027384835270939463642626210728858577673855423126878369397950648412671445131517540907204937268810703685125640065312411614977814446111517796948813181157998165603585693422599089839290008731010488773689870875248765590523396765594999485344853458121449493315837472843439145666383120514092443420654757822745072565231001532739361445970127643520809598284845198675817335960607603555078340314217278899766285068596214095728832421681527694035986665732897305712659842949132546780607061543495902270510630593279826137313608080076481048418610329066693648252084354097585441061397151578351309653995238668021920043231660608811557361508982036313287635742549198934570248253059282096095137314189472930071221324800002401207313209315809255028344819999928478697132994102538272323675960043627448186463477349203971851805614053235670448242594080929338119258394402478105225935233779241903950669011163012773517105620082051252327871779806030807137029920258903588417626216728756062509751731606964040178635197444217494930215668617759632652743363369831553397353707260178152163830638654266200936028174509401660721983860540301795636589822444781970455017308144463870487690113673333966118212258637745040876995057606066161624600453926190349647755182545265722529485720326245294810040163420374916604209773799618204491021597131427658592442599352166569423117691967389179523890726104576270165427301603977105421267908149970285774166726639007795828611599156652507834176247921658326743718919422345746454117039263599711872300346958234302004851415423683714700027032601735785432391430340225211869703608070900460845628979869002091311071154609746795571681635684068734654112245083288253454063034078304238537831793158354297662380805019335457896593600652932161300877703759112586976689771737102527012220997557193900610665691037879569003444261379337602998289199887258594437709080291496952731413306806511763797924808207035778221385035343440371853049538412492419893340111378196313592980294830510470576166586554514205731031584584250553403793010161969035366341569724330125399365192911507847733867290516138566248051110283373765613061532955171222017917522974778342522017808776623682907592472342609964199942257806383051047609880329759320439500651434841609320583531973447487857446217624042776154540986148227204715496521241740667077849076367847056694895274972284908705567317710473327500859595033178500201680616919655158561301073255299686199972430708585005023344610689554636777653454006899184036355609499559408603519094871677625189759852909070104037446338318446768493607311598501247507621627161192471817930106648638311347389049986632159845029375407584026916299801343710606640025662754786474748810651833256301104246182973122786432015231648188248287157407914689000169890042349297120505415347336152219558294356302748130291629591136549224854640692551539169523198261328152906340063308828679389334542005112771286339607334831680405769140591648872540695063669236332654030177222244055094936316379718989751016470363921209512551383712267196816324102237792810887580774568038985848710096534944151645220884404364166937557553100412026953281858832934343749791814550705234340634460079459612805899910187301550598629163878049662927613711966801511291834478158579833196252209316884936234941769185601934116300502952912394262644574223221754984512543045558958929626676534403716848487443651627658978930728577192071090682930694406708971994950698671395242521381235259306741824215564118596564233998303047981217219975943076617934181387011730052773499626131435956672127975420015165633734285427098390482152061046157051022774763730436109317719067002826988398619342211161884006014468979161932202744009155268447599762325763596112276868656661297798684173855493589250131040875733894300205986682587769578279482218068063340026942059148556977757210837856319186804633281355223422720407277896657915359764736440790030640901368552553043915050417944693839908695623231912942389413167951872098253588280980236325145683288963276017332811629763209852146687746686252163742678699703033142023295451993967258765125180350483728089485823624589714932963117409809289213570060251034603349577017754905523089084870031515965915814836791598849711082554638457970600043572671256642683313641156181850295550172006725576661857167648067903950481592206520109848166224079778457467999883555904872990604846133318254619807407682961333778777661501614489392206713846180601793853866192940384277522547874177792295170215948569792133881098151099134002281481060285891643498067802105576084090465917614540077789218941475058368837482539682003376389811535925508167961836166118761125118052640769036927471794572193656095263400521227048988885956373933463547213110560192123635877171105282324338365384792658620648721895986831063373172222256441306808484607934219975159484149234488832549634952993252026022242314615518072165790071272289815672998849490758430737047685277430046013140759542118238043876511285628275601291855059612044508048752198486179697446957820208456098378043751071214318567079234945209608891601390366684734181531764087204143540286096377203896444671450007467621203926024060311407108780128227119803150247753306132210378343930502746708134411728064456398295526135548188698512976405129660491740082791554183608310148971596307546824532527865863158051317496477392825566591387982797764975191604682070110815655960179935699419430205201250452910278476390832224369375869430217589401303046306636658149191954612994704842512172433612204033289817470604964507532396128597855932332149643526755139552517452135356680028111859134054706732680605107438480372732282294863253597115503299797564613207740851707939308559268153807625596168000927458105276800993193347887858118846739304389561978018528575125176879506112179188281167703573444409859289499319750917055900293401893761193349108809619062917311038453440220612395567257786927776343757889099261375359191751390365042885917571226607860194259266028659698451134378721778292410870809188104254453582856960967444944456789119422289221439860139621529145009057395014993830087484598589256052363000826264754270880648500399828797154918249832732463822343899080580057553952913428780706417299877851250126336964108203218548805275722218042855962779058926841155200355642447853416542350447758691077428903801269151317506565763584771322999317850286072960937705003632801093898734010447302827546192807880475567655153038980641323563153239669703529252854788685613616625320236405043920811668151039597910389173659177139002472599917041615300531497554701930611918350150589359307281362731475094446938746147977292636513913892305676954758063567944833849764372899905402850769717716485275113214103569952053488808803667152076497054060540096180309865726138245563729770203030143762600452204037451760630858251140461652547372251153513148877914455815455464835391090339612534115438677597805704513812701910835166814045438304052782725758377793910668070599279785465203698175864136635837671616551092570566317720869990890258450385561129730846456624051721651786618980161746937144803266872691592163768217726374319563600306926145669109523170890791712648867028338728267972372731961381743875059138938727550762598319785091458143324769965437325000408143191179951148090613812415817510158301813395844767307564131073706060937566503789588647656712082613668869227651289140735354399727478044540981258235134381588105961897770625886758154424196245336014574719895558829328899374314943191183892172764548022434752980023426019682236944609659140479461529982281322485365863505319982053107097021966766890055153329212831503052560805987060636022317829515540890636982509975658447823734127994990449307725600120916771131919122650143813430280517141936002746405837502937227109075737826948069183509807167195115779950700284408213631620061296311724852459213503994095373664116272503390535601001604005655127178241564081076335294385204262916179626705690801760508591151328722421081408165837344730006616978096782676199635506790163751604009926939252632440675619418927044865371673421213659010012857083865774991681922382916889564489930718982852656645433237329973055114755157953847162246064413355035903198051150187959657279992590261271295467195521679351195344456351788988269060739722810671297323793409490923900169791115477985657955551655924463277633386449012125894384637529308755143903684727638300246318914375165020515670570486413308370235918880448855665881791308146822889574400446654909744072194238182365329651664751729259036260637939869803932501119279761367990236001026755332363816223827847324207276146793691098437369354442110331435960327212816426656660780735658972011435646554947745548429468736672015150180640036185973987059606530887315799873308161924461351428242375376212937093827445328510525797593456650250746220680624482892550464549745419872341588432502997492256460288777481301596749434639590746925431581260152259132641428843939186603444054988651752619362972429627217240693969489136262993058210038011831429113013551626801814002414575559764386507961339501839222768039745088159391438509451063552939116092497511513893251584075137257222593993744347523177558269812021932046904483922698313044773360628936604679625192637573178877846783557620612583117985409272946712886547806633668889475874436323851309364095900716839323092932040344801754151316655476050870124943202395895705429852499626625279937771889164102954516798598379333825850853455311968955469694970370860516685718303162756738381027002481349833308079129833464469129566290880897780132541250424744085152572822253124446289118439402433559000020556934504503951726738533433680964996446589646293154936665373206333193620711825238400344190705900009810701915878210578224118590271439034259967725106604044808719744346172067135125070756060726568286463803447036010265589286023679208867775508482599183446085221213150093538248920729168739261624436204104333799214249625325240847632407450051762018659447896146571832111421836661343108492949506272473135072408668774721733311950296787597105345706126926730680536630357338959321866138270509098821809569942657694684457690969213577997653237174114311688737214060003382833747055256725064275479498707994662152264777958444442498946773551636094634470328221380599120828640095448488409700196364697688732614611283060522313741838351556742530925192716447238718532639026885541611838498241039766943228028983376758643011013852067936692213659401539024464862257055339882288219509091709133189124412315923954814755172412283962601353768442492439195572122629043698136800245382658839807373368495424127877448678483644929508279999045142158966466686554881540629355746533471113305582051488651095860099239144558816680397054140343936488236399273943580079650069990195766083912425391480512090710657763979417616164591432392730377533848262195687262471948534255404362322757305728503253604699597997151043048865468588498413915814655597881573678598032522771723320700418427432301812761096357394162011343420295408285069116879529817622694517457689986130882332571379935857810652297711855151868044646897079418017958628195338133614817123116811656573096488388916732766278925880333709141653858909555430317259329414433413357829922136232221653609295354050963329735979325115470200934631710631369056449688692433526461725761564363679389408063948003908915215861626611780876270727108136048535637533990940630309782722788631723186231060507346196880674382858860469987341769983284003142742640076894356508222613621165658870064313670815302025903426156352552802831822653952080193899249345366589680544160116035442011511229194718970148651631232567104262402340728298438059711246819679160584933616145917992818171360545629088141378608608607105513740708987385876582319449644477627783048105455049759769037399027192149391171163571637960463893616838093827103420149821293757130422508531403183845945985480686904528970630295479983744510850348492102611200204646775428055712703517181868471188262981397342519908325540939401851512781229828704322080804351455234027508546171013068199981885210228822233806571799913135355830196737830539529111183178017294405666800684128574589696265085894060280931374766023614016509636504682965243289722366838239815561228610993596319506424324744053870808784279012870385071844891391291766740661008489603908625973066958522782191706037308105838960078010300510515859551497216058020677202964439751318646787609399908799499746292153109146477464688379981878846260499000341915624307605756532549225499542202681913179338552805477130246982930618109830569814639245111872498680435133064520603563144027040484506143708080106213846641779854785488343282297618732037360261471094389789663559339457913446742199068945825575563060131951314045244382259537429241536449377035869182322605678042973920654712201798605481504738406419688629232532593413634370077300870875863676047515832237034938395012399068158932069047842678024507217605767085098880490550086923720729421282003659652972944737916801351556629338945488502082095295733371799467961457296577833127029193523341403638419636090650154064075893483206090976982327434654276076767907592644003391424973289651579247905644738392119857390749414757846528804854859442257395727757448997449753128625533112997148712589724613354382616797961235525398497362931853892096773004579416554206746513455142411049905307059461944606482134415107496268065703695756450919708564514563415478938695037076024381263141200259160754383231811717933529226534930795501524580581201382287505032025966934546323317040581394238202425708549932173300956311332759162711708815774070793715502731099641633945737122786547246599123606907193169214011989398431080487886921972514112399125355307324146518960061219925151307912687760331796222507402098334714147358439941964738062642284761274971828836606638370110841147086538301334067547476318712558897904726398409290952898630945946757640454896025026727704785316591910757242360581206567055432154759048622254641937794633475485283676802582432261656087284036778222130299117585345739519054461845378810260786895156559524590353747655571401994307602674035764617553229527717208702672481231205941917274803399618689315958327815975115829177785718556804699703269778666823095376341502431024596132460232542638480383831242927485728969960598904118952469714741330457341892260795138065813679487940676981697794239324706969468039589078237493133639981649714864599699164966250481153761728158663967844090292793334000909411974635314667504237270549563396279732566022020578534353998133449551313072310282561316046134232075849070793086497528803739908067930960847509024750255990262043937417359292652792810962675554446140160594643844318557279318523180522644561825014526202109484928422233745656078847812193743785177271134720193246287191405184948935758439339086282480974973146470240771652618657866791174722538305515660561612575039337308890110306493063129891583540261707860173472573842900589947426142160246685412326303372985851030821953819766984472097572496646407095596078318444360500412543842687373551178872178500334501909805208861740504375989906913032747847476772068172085127687728914045499257904123198992790535846779187987265841114080797370206389719978431416581360072736184607584463216278817675572310631174811001291734573861574080932667376950074837763658183701713083368551679690976941589663418344503555544452697670279722877685370428687710421963529998398413706734091039018726378090800073259726788033707937416463815875383915300858827020919750824743737694461633281864758880789881474417566014091263912066355062098116165089417090851272531650946814202218281745852119017526241187408314118929769960335617655750451043633385739440268775686322754640531741867902846094205348273539874845749900953143085031537378661327316074102728447292377646365759935876254459431127854080971803484010692859814999780428572304556578620867801748257862958073548829722580711014470465421781414316453311482500612468335899145464852122447136557884852527299684211464494595662121118190229306648662224599026618743037584116759738541640630870159033916786037401041757674170288002002017259654222459540964152430280719671202608113072459892170434197377317668093404552867216815607479391720090785337144298970292039556473257027063613338577750236648717316876302484672099488327463540321446852789990964740697832004928439698360869903532491430094823782540345825439090736958039951928782934869547092568621542236066006607850367365258384876273009231053731148680951095593525614881302847186502216154961058664137320075584106566868846692305580446526741773009740459184642638273866897724177065943392904506772599603105171136072050842371637661217585675135444537944404308883223600226206465231664352923810736425341622732671055829377300238066481954082261379835848033599055967667247767601458007111537110013367901378772412171395572133020977802111485124461175533650937581321345301090013406439154937761622066463687638407623633994471705079491683879747028581205066517379494047563941303692647238652582464050853762977282788374295062380588575524394843780825021202869315652713694854583470136531390829262969054431683553852011865363893158101064918601992597564314750664919578036752216339656004819569031528596942405623803192560983692020479514865611676563661275271623283673322502892251898312827244092024909893990554933169083919410904128737225112341611395882498937266244231409013844169185991614929822317837305740399123524867470694356127796496115044365012663495756021433357985482780368914754896863065194087992115875296979615491917178021918377081387210451579762634249647664836990291283069289048677754463221818036871160823926996297294150551263627936760575105344842472826517987346946749463339364751940671301478351839177352392523312651560466808843086125844721092613503218347341994286680198226482473498579146949919750425039249939296257804974230835707129333746434434051398061996983213583255831793307112908914856899204930359844101176222066806564013595846674163186411773535240434474059155236720474277075665480340602870482999604056822327510007703632308293459261999930660149018994736395550484490934676195579387677813221342474695210284501791126008175806605756133750337446884226619106574948038736463326282215741808582171529863448594385306924733736808509241067310083485657992106056403567471329103238226623826883883880050053003803474664486897340611574402355292311237780451339633082923054506517818524636893814245173729302305548968026865530303501082603339019919470319527928392881373064356745236105976597730248014545912207384622234388011088092251539045657974821819107882615731787639540232597666611852976513849966054645317263620651893780701262215519167541132155456639930133556510516042723448150951491606290582169047443680876317402007350462759109982091970182492715888587263510135060822923309404944173882296978738041682341649152185338241824519061174914731327477086852311150038496126709847927458125749850986912422539558037532874504133591049657760845021127562880593813537076059310213027906438428218873734887939012882712719368745698485524431195888370062736248892190307286283617680953269317165448860682824968118134084635187852191765423478251953900610309769760543442840711360400269460571135509485680740451188614906603679006570503608849124911982327544091527842738195569789701416738292007753002952716659670142866797181338194243538265936261510221527906871905952696832885849819889477649318988942679219336329105300823591193185979969452990770850337974812170178683869874547896804785707347327457770939075133471381179099660148300222314503371497401751293733419925806357264171506346901107069356184554648361236541211865210744047571021338224905645399878052952308954246040917535982343106418164138975161709252289174724458700815166798401633618590163929394711506762022743869466345225358681626094265473130516661163979079602029846857264199399352843608621394716294774288958487735506624880101980530064695251041671545604578027086642068592587215932941709846059473620357167842446640981215608215922243001320747169766790635068501197687409151309013767624728770807012752490556966213360589350609582063940056297783091511462615497490697170344219180250934216192613330977771406882195476031246390443511002464645299395819701381513858516872419731120026868522444106142185128185451726876534021884426760661063615281923137781200042441394434450864015549663126916690091106991178657702203554090992867065568896031956247179803726877671020891486033605032090086172742695863790678524688416229599529597259076016511401396226180568042185850538133793851489725029059809165908865302014371433388944033059843208179945441834519864578524533407627139954051971059747660124408520714419489068496841998897169062448827891518858373725496118185355268722385284140598718192825508448892459997297958419349490495995009783453024055123892104258928934533243762778641322921836390140166221261831009669606662673374079941892008873425756935282542978678130807015527530856814147655086262006221767995231313950187597558940745054560364131883195350334345102886815743963402342674300760440257228170681637673632443660317796213584603774644582656545442790175694912305983088493236724526689073198464982272361121324495081982645344717113322777709612967834778035143642748667730880650350097931051051010854378870471557695995877509447800561690516223833301644381904419511239791069961207959898418686466383287876942031310020360826238108820622032694543575718051276863509473775566694785907366118815386860493696485614579908624047472432875759728634919508771771005004240866350506643846348926564242746631407281131261529871308934999977050347229484309240115854301349417236025934061241924113689314576059961553743160151555384627089195574757761877970582130193067799729086826618753445192109266312749374492927283950551659444711048701184959776737889898367004770791995365120420394475833292989005089403016332156299193638855472701865299717983287143327095552017597744541689664221786101762302551381453301173452624371744870951018354239227472178170239684336637383701937166468771459267732687291481348862406785428970802484694939177197772048970609729362373958106514526295615089856055520328802531250849698410224475320588305900081562872138157197503098541975180482199564978424041069907103085310784922121198754640630459559501420431284840741401081014311440555632343542058248860367632841846098600825066769394944357170658678980601314997092925044226254748057393555765684297028750235321137777145914589377339426010876741451384180316090563490654873589932787239222273935321535534188912121078112350803681527721654078720434648046543342969228455105507342718604001578596154279952260677950730388188238229421338365773914404712728058809623990558303756625079788399426795320636326048769924101943302014469101437551444041485506573074031259994757117011013887143480919242033254864338085127221900721600983156465934327893639136370021923852628924274226141175563310151618019728721597607076597462083092350808156845566828636225134032321185274977118982278874581252356947087597333197925392378824225254785525263364684994508321372622296900523365031524810456399822694364493627945102154627401663488232730346355641403790100205394562366488906505010416284284614595482900773767081197406859832956035298414882108834387726297144967310157502062657105987657753227003510052358329119520692008530560174680859420140027825843519330208290823248318924805523879884234775131845704950459035822854250527605152645811721675007318435528495875492349480928667443775381236925437739514873460904383812808965309299058810910881120350799169890849847298165387431142468645788559252965546757762075654327618566971403750328444216503296459700183595651929485544259390125767462000399717548854032613607965190550551492625569712911567051138097972104289689767517416279909888940563993538071545476699159106327899228240844833845076488809876462477073849214106858282794402888838177906109551299764629221423142687741751820732711330794293678061721541549242639580449000788102507678909273997433865637330551135721391942307216682079921181415560162251804172994037446328961228012284584827933244326043596406719375673995644102535803361566563968496653776957892097833087131593327968194186307883800585845084883961623069607008353261295169923491185468337435316099344185413472940632374264912801588438190698383990848333111909007625626733611844334051548644585349290394830381040950240682883304443133848417427674158081626539481192545050333379312791632278662310461301779767682053544890387318284119877580567939247241411981241323125810439790994538032991360488355716714837213554523768342635460734628674149954647382974766292607026802063984469371195253268197285380414738182816778999438842309589605000436804997458707101231125830694755616731524564969073708882715782794807895586231740865769770972767256203886628081654767548667194052397272311462542134707543334035858203001131720766189490788002082688365883280600398663076815244973988760767723900845123542796432251908960199492482823088466044441569200835004536187374755076217186153122980837912759229142277300762252087635409414700183349604437294631507233768845832627754199206848608560020757296433851439208133047275480881864868541338352266022241619744084305746660239860138204091352236662808583062481909982434019988657886541201765807791194377787097087626714916771450801195427703389094087664392780712253011682167845627676278944982677022281137702828798604605876594490985566091100999820229765602013639132828809896826440411950207107143203498543958428075851849580811484268040330354014987232964558319818920873769934178586939323620413656942477413538114448871960856531427989466089857463035295692698793756167637531879355299136911720290547088672329389474263478506396722956716549153534118424510090065966107692535670462944749540418332366789882881267107708926356089415453473136813596653636904296917370599902644719101531642367008679545426583244414463030997322100051073060434180917707997324143489212131219672350566878438735665181223388369495252296677157611811403493343423925414571563937550403960249230712385618907631107001702068246247142064269669291175417917184662987522030631718658351142671000047209510820708633108154454741078406854472576001042459404307197493927152693928941160090187044312390785368358347802655809332560998934276522294067056308364132364190459596814421115778729272863958552877830208883284080904407937012973281288654180596134909531983785997562916805794381575159960644747818898326923009566562202952295971098418865156076149160614377243959070126618268117351883644334355145529609289710441362958454373124031979380386452578051881742326287516353101871776103962424105189216353689270808872409115051980360838236036257644028202136794974955872814739572556562904065538265901904050657268784506110310934395254416695388022648963682300092076587282728380735316192722831208019092011241060107801684949452832746806936437733813098881797344963862239981135864931006054832737471134982067222312122336224097240840943998807289422464640643965404047884169712838187513669428212263110935833338208277914040341644014518032690888272358864898311750349841422003119347605705508246081083522565533345791548217477710072450902134631580088179677538804491816135172829217344471648541056278501529451510938967489289313669768769164243859421719751442113086932757911170320969704015510586457338889100794761528680706595774621063491098398139488555606010204146706462805826617753432512243164921676965928473086651655618886063012840807092884449859714871786339490179696386295799318259504695107158593245608718456600600501619747141693824038162934959107412911784324230925981432749226466106308022253309851996405897768725122754283578452250867388548462452240513713197420369391083092849398472490215756765525931590093551374116843982320111921276643029063891014018375158956055550577631579187071941180813750497337678021142919236020352113967371803042148530090807454934787735591316623672275373952558184762585090225576494295562467225976436236372762731978381130849164648890429178767480150730056220451104898726089944927139278785028850425831453860146595095947421856550355998882018913989761348946986208483260908503002796577422189993504269696644296213541334365039633955866457000273788924207436703431091850557950235397603753981012817673755902651991073222349460664388730341635653076547092660666726986680286965743776169137199480714517502242911559314071775031612974573848711440753434271574588943509534086988245745607482680588346294864418361761227989596017047788914173090278722938896019539611290730673137885709477289008495114293786303805230690916226575843275884177938534049194194483410358559238422744008574196815176129978262182506790554426976187105958837648500966848684271581171682582811009943838467923697819343866196763030333498362181864687065988949302243463413007796960621985869901008244183271992035557966901758768516238077888416211658209680170041397422568512046421834762062554178452604614877863591816056932206162860159362373354629428288206229078707153407837297818961914414004338016987659769121705758273487707758533751165286476937466671582327810310136774525327758716579064579485914710024169942129766042781709968707753964630349670323681689380791616311763013449661556984224097621224894055713584704141842005596882589451845818081949772698335244073986688458988040596349221739188020237230956734928677041397022799800364486374702341891292958592871647098415243323376836662303050782088203638080055306554602173495325177077348264549489285633567133874701916617668619426553516735572024465652534470514445926493358299769629367093388419642261182006215322548329058421899108104695470205816435161132159501060671277138057997431795918588102794921327615612114560023139952628449047274056604078754740619124306923204065513538583550982078376248537972037769979251685433582385274227544410731923200015857547619210843243099774837892673712245661372077871525011323402557404500455860736798787071873753346292124397584156309950265162679749033817349128614510225924432057419884338717184618540623225813514605151930547939340224277912030040230121022326806895739644139243458090707385307440462747566498518578734688294760113394095897205509772259697158864997235161552156020025704451694777434867520931761269781641413281651723001928649187969105734903361614668242443770139002834519671771451026050084964009148289220678236248680782173373345571919674954067700703462542201754362549113716699120480938212137487295118830128582341693164089454021318254424087831221008414264576479923488936560037957452521564992817402527750249171621782386917030576607699860669166607981702680829486186164558812701705860415429915640125345542561137653819365892193313535512285017617491589197659907691675351313961866008528475450732604957103767313084947509296858923809155381786323107567864649456488670937874764918190484587617465369461226148082902611925324051704696720542931173535041216299412492645115395914940635393974840138711855576193134350465119064372189393116405139229951949503697834123211148565927383403005623453190108836298052980334357457844752555782376524920598172797059864604016081539988045951261598183081402996757597647118867202083632649822844258140597879631739666851062491777792830961448154965930512333716349961607128315910582929020260099049971495903786223894037185562390533353957401693255119241586194784252654702150871095582364696809906359866862735596805399484004888826038749627973984565480964722076074671571482433639036621739357462847168940240413564730166069837709372607917865075629853511550400410257471770676552909082809794986964873467679151939603448343304889838275579540024128113095442768839825192069508994500123845722974888705625262249487928530201511315403039848484260300782855267041857443592724220693917462043508488338424149668156653114075244482242626881005642975861142010908188998008613964804343545807226307709512343198182137413250986891258224357202260114728819008600283719966260501119368127649653964813333706519340010086018736315480406515911714356383316462212591190936302357039683772614001461113252375400982750684453276391553811226646998187047634791948070716464616916882662235487442165590306655031249612046500960034362277232100677481969398971397843536401253681785378764924375113067300485709468263500508351062938217643046784871775031040784965061633247618669408565427333676504622153851574071351355290786257216131449066351806705619785830287787949778476255224317960384141798480161118148316502881033934746157208236878148777838057132256767247710867459114627725425080037843304315714356265724912017478335398144356015457149939664174864751551979364593374849426100776384098043070477419152856250959544076794383323657381152263441470450403402422085899436360577788900380190831601791070208892062177054960770923160828323164017850808012765676057739176144992089603340467837428463287899811384576749514291974672329685293222941433205166340109942696332719295811589041923419995671147936182846248737975303930812731984616119443382144581714030368893086932920758508031093905018758905341573591039895163491674809025121544284786117199966300376211383012771957541593706294329429474437714942106235688932964454979213944168956836350145915273237934903564114673272320925680628418927159149976798211025445973978020486898665155169623752843817403524034783662779880183019639267907627868595861488582049244198664979756247923291902016359491851968733066260369146184651969175975788089045349380186094762206205651613460515794624966335619512431524362392964870241918859274140760330924546935313372842893535349928254302374275406852600219261081583549957109017715135060615237359091781320893196306228884907488827488458692100198552676177168220991661743101268580311409113067787935096980776447556784254276245680162588986673515653616267401409908655707957120218120862758018324743377795022001720002129817480779660673980964590152166936875687169231463870059627126311959185152942941106089408817631067804993856770155430915312517772678727426802887150873350640960497271170153826454228710277418166852451880397855073380755275915975264448154609098728250119239060840619096139083230299166657953444275262767564627543202555528888433747173881394306614417661503121280471853815620895066932460118221408594199732954563130685753992163859924575991459270237086296093858279633468628100614049018321947897538138105203018377037450053456398198318562082104080454618878082821573648333057267274643667057091883551998223752250031056633809257806297501363466977282648734439908893058693099969600164407733929060530102999342679662336569645468860873175506740901816938230610602162221977307613893650170649614512731136271170197303571013698981955531389197730035068670558652315475502277965784173951193719264657267824918091792158003346921609676750441431395794716316468699927026570077229211545171863454123942500814482918394776540482498701096468417774694180170016808730909982355746017333783598270756683290708449010409410649805201196573399547463564895922877568851681307479107997004426196750079413268780476428971890184733837347430005881153663575509186580027464154781005481960380006709600632998262520351470919119224730142843399205223360026401614062531333507815632770195815510241580924868664119252791847354110578168049913940116837365739334171451997657086370303973978295290201494829710197988136977362260331504871353160102032803484970589954012367782969847963309702086899997356854083482707885798831544819070214212890544522236049788006621699926625782087347377550615671313059904135555517348431025468769421064919109123133664007088036217064516201243602390432034547661002721823860295292867656514662339306370356623082242636620800580404859550506738964549273975085496819267913725631176234071895741763886334551653471666830821975189321663808694855430158866332073943550677996423549196544549493920253029630478883978006443302027773831972696538655214431401942583606397572278134404624236327986529687103438382656795290961105626423926648574997473464386417838539014776028177586684099338365739491532973063464270340394397032903359101556886374720167547570323939525248609824845328337788538862908894106533287965559815852137958350134884491159272725469324531515785493279621783388512879849086575014487308398357984180687976860998835047571922493155191509617069208765674478156464496836034376748651292107904421219174805625345359747159959841871784455791812335769453654113141141611389103422855492585363596924991736615989545017035801243509784919920813871438738810211240628624490688883628960707883959887919056396002167075050788559596446767196281569210668828189417998248294794475008899472948412916188685999095251508353852608526504741777501113373377551763089307389126305249107102233593078088419656802737262627624562583907700327791299511895689758512939606941909989331602665751803635270174478889728988939587428491733968056569637986762499447113896860433746151297746315476050757602867999109038879912910527843776642934492207070314130282151988722504790367116811268220590591307829741987167741884804750096727772486053336717721597208026468082849299289279283401240215725502270264899354634012588303556804755622580895557932953642059570215894805286312241779397617249812399072353849749151119548993643047809305134176141304470233847325666700216748801628810037303540003353287681918749178157616931473779717447672954984054519134629750995191328007181862149082656275351854761756753889375719482991488179807060659042804875154582471079362070256767535811616717282895738799680331548435919035170520331175571384117576393367323013874973329195234957043571020690651110544080038388259825395278073930327752711954389394469105697639198848268619728463663895952696329155754020199927178543643854232333874397586669436118816988555355485077842759158250493281179157458673868691841716132166764063508643830608247620380252157640282681516752221009704899355657865039961704135732243174390887924385983433650271282692199690692434232110456107594294960936521840848723369574322558767551996726011653410112735919457620555217663265456179957193343196198405761800814008207121732737458215231569134582452409823789669041850329810860495133256322388151987388839537177313984244732159194079158446470264739674872398302621941327664054558202808369778561972367919833566888205197061575095170740335908401973976061320392768231216084152084826509717429592494653222425656960860164453289316598512331997352229707383352270706715405105942513838425601708760353528230887261981034410318112443362900784207087199633531131595855178567035776641216388547912126714090798554155710465208912127135905583694284701102489739925493188075972903059444132160424961500219598554234741765280978705256925409077165306554155910493840655120097555426553974744628382056613533696465542105678692434228224195249109205061318948610681298425338645031839282256989124241106113706171568731401946607960375969457839342263590182182678817302043013095676706996931440397208946158536221311806687761953179670021372721471335669736943311753959772575066548951109509127222090082153946474829319695983653672888062106150072949889750354405248571489878349641885257636581818815833667051219488173454241962203564617140016345326972650604773564043538361328736630727943206183444875748386533341665481844915397597578986405250979655651505368599132372800394124173926257122394976560255868531404047006139361436587329944879530474103252754500617988399683936641583814984691436636657489357009129409368979644527342799269077737560565451117209508969191223400506074588956961916686582550569586716158494207903558722719948150208357245475985267627466482741155072185553145205662056231893353328794133591138155678019750226341857759889290534711807373588912190058263021312838838673460075038591424858090675347672359906774541379000042982948985870644136349742129172515227625233040999455071378127113381938457639692827909552259580589825037887082586657179659966242312598812960485606670361434993469406627343443176718512316876997382731398111387598522057446463300040363898119254151051745984555717985238823486635334735698242037933807169674992847192419075365206971680070215210543744887339442771257498278203669739458462861378559116239784708928407095570714753594614215788686203255955007006955326272473576039684053560475333596753656995043147766500831729867984661602722513750966423543471598106400197118231039304592229526203246234024022432359079815180560457042544919091470222260527514394620488855822822247355871661434898708308758206980950287947587206907729417888847586895319999196253761382220791789961586873083725941769926878643297075720835214858375047171586271314967583284755080129594768932276141315816503052390771474353502580328685918043292062600135778388773939543803603943322915068999336957549942811490051434042014497175919646160139737776944023209804981796640554940504322437099862386837450598503053670593942351112340346914091302376497496359341847225931036036119753411370790900071101310187516500677121583065101505241680064126432633541999198110075636896604610047237517766501105194331924126878170842176414450724581544386599832023857158374631751247741193315142913371849795018802919851507376589959494806434558569109111904362114803912203907643424162879949661889970505678675652049692869708346070325543868960923389264765099904256179412292918697376192011550977492642794291982867734848946357781719775206480265952844877865527378516368379826608554600785974179453990910914143444458885617597508184542246330409185272325995925486282584425056437659115354799244453727523409360439962163385796583738902643765783411408638671265863172772228000153322457384887347214657572862376280725621942025732360449083955146339107998511359396089740260801103742208856541578297292430191905244305949470367971092982885408267302096681569441499348786670601342193634332177683638842554012970681329211794339971356633635853189304659952620430761326671065262260119055735356059616522164061700884829623777783314072571008608353284893068633778471484640105165374885394084792315855380080361131314405264504926143813587712306884931392144200077836611101358441540617590904439371357431680609180410389844915520170473002684880494027549994251047768497165045968491126604008513305490923074924080489446857480710010081034444795455402627302240968763705285142696771089107732651190287405394774102650956181495516935729396196335022325227628850504795750719314331696399693873319812993236485474346420487394112210130577177250897637290941379512299046033542756163984557787611914720530984142330491103317324940572253858029051104628302171871647541214399393939348385208250082104116283800506237313403326808300775464907668176987276074988173315073456791929600317902385474614525259596950855872925530694274375099770643709827250645941463998246090426903534717300685234781333457860917130862029674740257160595859013580981023147907948842668209445972640278055225238428736363746055114448289235673440088349819230544741041978210174551019621953230161589927081028809842367429116917125420729513942929597851183094328900985204922986807233797106321031326322765410974359738296530387706824143238372292909176261627991221244458321782613694484442108543381454743032748632627369436970480307235640825046882900415558543847099074346129925777539390012276289063965837005861312167457894852380741314574963447963271782663431381633864079442083505836594549286574693910916561631837020134932537960897884696210070224860610040390509327013164996039254362288509292775420787082376562125240696337455282736905316740082367063720013969420228098306800994812410488499596025076899698069728064091232365533925302017521673721042862600518200087679150022370552638291995312563545337006877309822392344188428084367646738893679831020048061458947372825257222365267411210091777888230787435958562197511153973695613656671772228048256304699778659424758778887097578149668764221982223897432848392496951661987578286472882241713666574764852689970203422678513558126727502582383515215475344196646079599517002599421414645391382655150572329241124859645753546823699446190695531959833701680198634414951392163406008177013556897740428230013578497496559238103013336459369469291604208462439099107556880019888022170850631076441719794666386018554288581715636319891249151421163638391007898336231675406326069535695270755629742307934840019321335830536444264254087208326305323827957550379167525756847532793558286617491839230261380205381564993887101129926940098661097168049494309069057215562622509712113650157503110577958811990916077971991657037329674665650783775204327683347373573241304091130245230637030348229575917079669183612749167283424921771934293877807231398566511746523944372234799265137318398477295560315006558813448798380659823649986123119197164420013070632968206968887254692416127092106494816959504426179397806126116528161049471203982909047054831600848984768199161359818541915552644826401991065202853711378354313169682157465253803693941571780922886673763868268124952400521888859158508547346437704600989228270065960284895668226136198517400000144634272038253541607601745962778415615448096274375358629963423751581512498596795885469258153337053115337406111996854276958589151872416686721479871016734849692749644315664253405823003600390642841294779430913171992570061521843092585522574915213622927112935892521329829635201158683110991882907419064372472025989395330922135752036370473489671296560350894399505251542626532309588548088688468216333571981846404043459509832973664538331694569602492527618437952073282954196306798082175998961502855042165518375587083299753016606925014642256745833950146058407981568369516689245749046212840857769085337717951310853347213493744838359829861230052773884741282490497555307893801327923344706925022840668117141363543353117007153810363090218385033748023296571117735243880381043793911935748974609446000339022997633126348294088861684835352506858124808147329702340851733354182827376642199281111320683556070256403484355271010223446638802250495606061804860819646770789932535384617207019447872600542259260614387745075116765894726241864499066115268600166644661967852498334575224311036808938146819174750259740064542902917626049800725852369202499183120996615359452285676414684379642827738423057510857307290285861329741307195797427958565194764380245476190111896641668989108419813377251654643600436733443304077170749150130488246750670020563153796487487782154201998783101515018457302752229101199183182017369145731181767328136237637117327153416852214511092565792946851074098845017447395038329332112173169423290680249567981339689943053561684042679281121528379484041129297120468734967062590422751869531390341851254441686151310588210063075820794339801223130940141768267163257437639030140333756601404213263806048805264729090906991988885816245419277858256025637848224450354402906865145261609175281928025386477801220654513809886745446634260481463933375959029061073701462786518711099488200461211480943917509219384605493188297933651617743617436789580437192379129701437644759878890349599217281611667812656261149957001260960186609784839811914468318202722564309963038157793154662275735299782133208714851600538111989245060767719197683790777257563397631772345165062288800149929221356255469448291666398200693231600587241984227740844986559381339456400566962983890707267554016855447122513455841761053343378769237245491063456176135335015639637407883017553837458399109058789276852838100812010921288056953789535952995265156849516605328540314294792123876561413962097183892736442354459235944717067558164648794082558066502394410976077397362427933387391143659714137376941126392511063855036254413910832452268529622553212989002476147459515205662923608865548953491606095309790963826316692855172988105394199822417546171982015872691177305599451369672787253443024699622774191832472698198142709804906346031085484178383146213641514959269239039333867888054257997718800221867991936277106697206825542375539130276790064520515543098979244303044566162027678143968972761360039066778447624345441523488717471846501593525394921079998338197720148833243641353874477934044727460872633966115032610547882755781635819835508699255164394533869628270651949792788567615266584010699470477572691449060824560395903050930097560243131596728544617173874248304590015562549407170918663212508517995540759346526057559698237470117498928213971839595130823569227275307818936029002897087979052850372339170905897550314865413766019420049528034711383599515931817572407220189049650532085509542727961859393654101270396529218269400753185758008688068777836628784295805935494900839721526267654328521636918997031863613874658787297440981397078091736619215229249847497396805669697318303376191414423348582833856672018952734532864824581864843435452864684966114147291780243361452693510847679592103975030251529240517667688468259398592358833343725750196606554804928567608457051789232936975084620221701335975629541087563756704711233913675167577196359652235324019124205528036838488369791947451206824557004306628311304650948250409537177648350562284532610780307970767472165959518902943995399516367743946136360673169312343406903135399486731653507736478281152418868513715812219594678029890604361886406171853200014430635117967396103875955485701599149483638462127645473713848173787828707118422778429254097228304770728652100420249924461829855201603246731430282714007165537026537674407256982669721331370355273442303730484796980541484943676864426870194423963394495942515097687602175338426596081177075472220386420996514162594127753520960582321158786608434935691253262438893663659359721329009485140486021855205348122665356241210879726548529597664374215208568655540329658755247082182188217706209595496086127808450721887301737401910434873636068950502874588219547745799087460690939471607034255476872172485289277624697096131470024126377576159727204829274069077485575602524233952311106692324853086126172824498596058258675856061126546070119407914476203027803252521067046787370173670938053500429215070694100819869388105447200151994609842758007090837510536843359512137768223591606150697684726573575949280441872213790727684320501146469555857800078183658615666940228586345717485679052823376448141508222817883521035934020164226343067024538818860385795777332067398536970686212855922429538661012777632990243721064638830496154516730918311569704757405931750968973052919545663121341241353366697183873898808304708984986025795710168312454426597325151887783688330105609414331486546688837045101061363336898366781460926830530507980669494298888902012434594695644497771058773728433863770257969375814077340336415106554350740822899205421053271897312154685998774484661195052636998721634981406065162858933804272793311982399523820601846804345849948542844576116679244862825864632670332984717043884924403793414722866189376566997981840355879498740152500648148780302563613108876453948468032455454801944146161769584917685852933450222949330333069281782715552735700249188545456644908983702496061515034147173119934912728273222168066910547526339709004688912659698630218682022670406375838954106024194480736033177224060266713093588807493791556939072878517904454608378759257867269545807721372831581368723678721593507016082275013902212934566248396133123101177994741238743902239549629042964530312086966397906395381608264089846490668701464748643469262705396194117895927098422637371966330732551083564410719006481037855076691622640262636110353277228705936639054475976512595561495550646520732120277438102626010153899046080678626375876429478054919720404214409470202995070761809338819277667175737064755882692524151607928306520452446892481939142235396754197183318592019070387752854933930559171588450702108708706361626606437748852998530811253820784705643838475245572512206982240252165120250706407979544181480393800831822136379839174833810955323568611561181085647429724465280185802857410005695726327492013514117388072448065744383752231449939418255799556608884153539065505073330492250925452973831063253392355366287037084246707638248611598578848440904332987719320675772588991879489141650484436383756738914236142477794939094247061802051587965439751218655109416043546784209963639455955031306068895626817124279101398512032515037145495189500658150564748481169083689850487519196046194793733730295869724573948743200300662494068879298059806097998867131962700084792014903201120468852999062746309887920838740461706612364031349306460261961326880574045622164062926551997902099185842954666442803523204086623173660568498467360103887913000232861830796422043289283694709931661555012019379643793741583978288884014459081970444915844585625365658403189550428073323488576998116007387864480584301654197542226584032722250933930738673610795071422878143347210923329155685331888843827798968677657359879010562288633517072240281661904446477430965164937140885252586721259197003443252472698844840206606742146221707711287366214724699676037751592965911430331103249159287560583343765697217895051676006354509613336047509702426095095068527028391947757673802522142921284249276609670333707007724812745391510756478667914828840435681347632413127165036662066568525011740259371156777343714382509063297532703874208756935500974790137532331411703552292816355467571432213775112648393388963787469309432158899118475818526928298462079486308317027459431481683875311666882655834282061824011084401841537724488344564091292967424923854471208266043523630274740138720376520683942952519525200591594670883386040917190654353904709369001179441778960790909870743026904417539890879315716111205607031359722828031527424517505776363795843628830416586893742822581391385533306302110314519910864687913573812424777221870558608178294787451032128439383674979842214258702767955576737552628414291817080520957223342546128104102793258957201092645199640629970530289702275327426264344310632380532845412550344786362268191975201044379266985410334515956882725380025011442047769585005840765317310149156423700439061685476178177424755121404209198228317007427898754823604854578552209259027053869107237825565462164777992063100701668150022284439173221060113311291827441284137531850702080748354418898239743976313933748762098620766328661069394238554835639325389558595697347165148447365859619854883809099043749756659630172617767683220024570533870565247764599179374317508924920479065412400370709563767326926072431074215686786638021226674987223118411854493332409830672160115283914152143368099313455417977157181900448236292365941528300913301130475439850548346325555585284936220817450410241395202704912655536959891761899538912982679176077918567977342589264239305159714296931568782956942665570822769769236015463158212509096790872579955452961157919465474276556377906708419540706272076475345597504231741795709006345148511581594151226916307023015714241386424536901295584708911218013903725926757800059185447617396946052505185123718576396352245985230834859125390093421717623292561595555863612512641904553514553664581652895397910954325891884892830011964451204243858908808539636312071916688861854008347590149571470562545428256897092231587168499740762135626250852606410472731654987858409247624088912847886231295509242063583912718441520456499757709608562141143658241558102698174188427499753259606816931050625739788377634713905526965708730989644902444671858719401262677885867830320646436040511702696078871083331320963958681041284720299366965996576773114251873770077502993872794077323281235356909717018334372080962947134840897078606418384826189108645996275434801003152611890168699358892733200488668458032856481880029951290460756240791648230431077809004856912235883551410420049824292221803621496761500572973239330642913987990234435305816681820765740120581257486482261522706498061975121045216310409897892674603423232428570071644789386032527132755235224523315079363076612214316606777321106551305423424429927704559821598071131419892760844848074559494333674040458103054506436893253642828299047183812537394322424998974741026468601445486868386543213089375554311114411105386226902127475325895755988697064064221397468961779083792148652566564758467128325438053838208660307150034275119215509029442584227911070100992134824215612413314474897326232547255536715783134945744707543327598988362129296338292563264097892198803817553510857839972744574444824545151715596140394041970729045642684456006151551067302356459041737623097741273768086461828422940941748837205295799659328756374200224068346602943809018966871647873745020321784396527791564603334522847070414934894366474634566939391845766701087676446252677068976329230490975108742204861806202648907526226565040130129691745385327191086171008159206071008597690118147918603639696220433503424757843997563897281398662021170891914638774899971749337592552451989768824029221327320939889315402091784955934644059662518392531548997598598246779697625320171900095813109296226939559204309227227114734989124353173854738431373203124663484618885653395812008560001558046815256876131662442445287376124148142446053509332144952726885366594887124358373556827752537781493030674967258729633523992538253115745299427676040458274028068163990907399012948322585339022295219659596314281529716104762161895643883078874357292535798424599975037224985415783002664519821121591189846098456743762855145483646075899565729822792986498893501654253578906214003637612205030619593389016163340055468276419208606020346820892368189200014790438678476748165694623293550448178089776177170276266943529039070920251147592827860775801573296568509627470481768382265229925999566944053962207402394375117501790294966021283734259219639607915950533655412026661552715065615542523158724617087066715199406249551321131150243393684266689198076978530451965386576694935631290444923760937798793659732937780746216335275546373982156600929739894377596233534986596126350266549185214391521818067540244383049449056704997387482004981772092803647839153397284969746400024716387723358404937369444564359103328557916167559082769401054401877923678397198270146548442429157090667892041024599397211737381358979612724611322921891787100829945101520589436769767047764189698469017142253402360663825542689317379128065058357939849331210405322382861964122124865421505612293377537843676118412749353209615775041131716170838389376389198736249731833850410409608797920933280815298275710309654269665953600764256789267134851997604104346414458778554970018506692109268559976669585719211935873559606305432326298134224550509279221438096308498658950508198758184881473507380156961549024028506661092534775115222670862161221090571751691878611768837710255889608322977676090146485402738647435279289080274181748939352324302279365550591900258684361359705349718341947070852809130150720890923428531860345719794079436571288624335650502647761262842245781438779511414919644857835898407192362521851037125575902861219636116860281931152437311773911645671053582635233866121398940130915540998801616108138183289980012001030427254751314539611045196423901185585321169912781319315672620728619788000936052822168293969863952082447234533562605416021578870739657994016959871944398691258723975766821366570498945418042610516299125322238180509751023544959895947086276969414941342899870798326857961853278624759666007367951581170272491314958334780203928868902820379439206728157512849454302579521433418707378071081245602666023493875395794370229255960086637977004325863174642398193719903848162357379605107855593190378381433161017046793078710455577629581041115787199289088379279936115857616279830365097627403057931608972778590863466372911662784744263780382053082144070182400277940922509278330530848130046151862111514390102269491990428475654561873217628754413515149630599296316647094318088093396710940146873093243623426758481991588885669047122291346676581085757069952474533491374832940332471014795896691858090705322204500436342587895670048264272201325811651275740765317860451260377633527307695466999075123142065588705963602024316681939304783246712852134581205975191070261339597631312880837849973120427650779213823326070216479008603311358159067414491702042436287439657007936628205918759704115335643640822076908569658778495610597360382978028760212037525835025280667764465823294769933609337133589300404295664045282955181877259892408616715695273708663497051924880368445111484857142051620400049135213479270624415281215948698885603702495208465906454656823867273584177781580970695546752870603821383828096080446341980815264052586679677702522552063665178437635573602515983805370673497821137090164365274711668921894459645377112300943481853430322540950903367017629246396754413665756333236301520788329067895300697071059944422950108666919398600746136477106297758626404091364474163427362309642342203720363703448247972781451731726623392462870068452477104153372525844455529081630488768048632674078864524589399168727346142958570311354954573781337201645507900767776639669155666507080745179282506779280346315974428730197878172687774651084229158840494607282201931687847824364834993712392843493885951749782745976228409247849608862839304435150093115653619671602934601758399746361188064930386060668755492248449118045015757644562483015851581751007379289272501598474461800431158541185298895176319615302252359800504489198838807584986633944869623380870511750460523146094712880662021688672479427370887195622063708487271702797681131347849903651218411836288852183625433166487654472793788032612976462496403845255610517261674300264459813018882263234198196891896903754240873708785143271110824524354723902899227758098237790072674542231947363100099096442077853612749696148415226909881154359962441458289652086185329224562882698505836473602094943740584825767369840533029293538479421743627358941572144114829962298204647829739561370365800032525621732982211984871779087244377259424168167639965575342872201829126568966346214638390720968968058290910924292515972909660475407077037380576314935294596296380051323087730029716755156220657046936007126140355193645112024230221237082265309815517228216330032685133218246910348635340127690597641966142394148590649915814249011785762896576102603215440824853292528404007532006944828138615182036092493565084557471362837590651498802401933353647207252312769583664486530243747068981889588950567368316550925599207353535271571074635790144071764401694356328278496956388057339683658660871513478890180259617767330989981843246608160408437934861100235834550516666564227658539592403468293096926722590835494909055749480740669196956088127087763516980317553116154865810916865619704633916639828545045452349712644105987116943118963364094654517021366127074629320380625777527915768131009088476702832979317490913220495104076018330615224264102772215998062971663970045450525236240953912444781682380724466943716878014858929087264486504461168696686997047601118503614040747022413294684508310451117994478110840051765209840712840483361097763012505286170135885478536879393797174682415677465736413676853425434354129987802466713829662354996351524918412155315503698750971176869569754998067061356624027006006942701915360327872748193532831276892505989651490674197011817296963691296436277780737314660655467245921444339893246392545906630481117292729285248505967810353904127308312290842366854777405210434408647037292997416420559451772871970651039138286126403651125591429302726679011281945865852071583760896377409959620752778770486098116416000521846262591050729330536636635312417357400926336018175495996359806340024721752796576662445982693983171419957247593849149177929062195034335302801562037947562785188290279848331278794749872460026919327265558744031479861459687447296377609076058444770007637175971819093518101772409906217276381598154373369484332848910625986272072987343326110661982121468897987375029747231191915289725429702509983477864656882563910651379334959438127697743046123008928480305312648263057900475028196176140156244796439514347386140909875545559391701219352024485995634208456045819222656005000259051538731119293553706816036917049839660650224161665671473956055293538021441781762282635189790527182251985147208044042911654640617897767372146200240121994814187586588142557730444506502923551317441625641722860076291408352930197517150627045368370396434785790441149889409693754425112481756813888621855790613548545557052417161433579478782854860639843416856421452268847059421832246330945092628368008526284367728084902416181667991953534712151196028193589040087944817782260144424896664263076847353991923323239046917347155549077990935642445916030245507726176245099758512501066616698701432712149185874894492744683388876152125591753399098831966635180030185917073353107097291272832905108157161631946057307201313382158544469588127762356588213525766721425383411652172744264686277778915064116030886020945039719786564627808316165242036576679234969642490900447893127335217766614428154871009841423252794163655834930424294540028088050638452509845603623602694420164312343693667532504428590566373625106353747542709797622538370133534273914231758335726075349937093594497586201686852871398412350083171501850605478847710809267559155086196894258262150942563466990871084711042535671733261103122947850994113845683994485326422624426006647468865425362616734243761597794357182673777630526626231772548055205984344228536427069377470901705072522676070173393909196719677782014972211231870236907364407864140400640226777406043121659908451251033870707247223895195092876573593176830952822021683028926905065614330090702270828926148712042150079896539795112585394807009217928886432256814394594795514710562027676288910348314574129624099248556090720294511739301795790004855381814654196484535453472540957078656878520865076817890257560950626403660117431433165880930744950844406327373138560119794346284193652201245000592166844219543306099106251910099312746432683960377959821417247952006044633071795742845493981030974593235737676508094974760657658682523858079056045720517026104446339102299008447013845660259834164669342813736538286787263688580113077549050648289697035313406741488868627032170698200789851910197347224487379608366329342662194465831205070595701020361264463030704306338780643288949850048513376384059174632086887145666881942225364849108402693488894025902309714541181202786496217932167103850205859381949300318134549160397647780238972133200144029548133026171110571739770835103104994192360790306387281330444247437290140654879326909827823583047306576636924676074700610294410626394856793573833382093337966641281737517160967419451615918225346326898113792321179377003799845353471305370045111771674410274706626412847889014241437220833538018726888058900380003071589881923373386940996320269831859808438500252340843633300745396613582810758713452930623822824546000097871968806131984127285504704697126125860295195919376119216360570318162533521747733659308373455396053867754940844326438833804961267285882301368859400596682752823511956692318800227270192207274155830848306909757183922865686750991656317359699154102442429394567508010055754340736003292615256245912596500282789489576179689160655769897062157327895901511137272348583000608613773055739255040057515803616691633685151763073849540282137817977324502827864330492586248162286652211224880343345429293275666489553608809523095586953155006076311842424615393093572413865496669050398536501853121470851535134822103600799048172982416336618477510527337582989036604993338713226875877152002879582400785348744665755157810339990662319192066102480528090887450333468003679543232627668272703595012386523627736333910332692926582833484606923715792198017868780014802166297792151503586254372848147999069681463881146871091022625861447142158720268787141293089296808971173196496762770181526722437051211321646336786532986838693980463582020577479715606472276170075451869714757287209794926190072348970524841281871879798750821202061104104107788347704744894139433726148442153542435189212632488730533479731732389123457546124851509718972083175499861425065407562784836779047553459058250152211362721626525045512078860552345373224377724004783372101311793607769423363568740593291420878288538336879190255266456115113003747970525457856182706612593553154164588277915030368189639368182272823574500457680279879848376623899665378131308380082896926161134000404261476609455647438309623517971206545501946987842042020901992180235943359365621892466230463355479036991063843333139776814847773196291752471464766628715138970830496525901899228758021778356996529439531332615242916613758191617549637873000896118328606511957747825605508344451731810582902580635997956146898742011535383478534973072649464941335736991059623996564775301617496204719364204691353464835189993410915305678144123546371299817779166607897941665215760330836965882687701108430645652728006210725323016374277400864113644469382108802869728513131002765553024298826947761472691865310678697565119831673229250209586776962960365254672514161269892602665487657116282859668190471648883974579748656232209160849766715846880546572296714534570489377135878673646473249357513214166387521345267328933364601493360525719150704315582881259988348956943773225686640884800033817660009861071264147136633693878017465779719552648573476844036896301033945476073087534011451412025779380623914430795053597772232661742948337788243332197538602175547839222127688230834542389880471921737331092659142281684250900898637396544548623278713949947751747268116335693282135346899999526165255272934451286853609942232943701595306909378668483521293691480730429164614705978994622470247254807037104116130177812941170008860424357230272386427524433595134172403547242526135873071724711460620172400340137238484307672223350077414183913007648523775737890123763309128366941543660746314610930369324481132429824873959377265644831975148439060730810210887741960532782985965087683707427203310781444378250759762074898502939086095370648506193772085646420335187671316997485633880631673042560703576268145554445535544680301301123050997931638701526201387821466735556001456617398989580768634345930338812811366807234676131137729798876637578583497395322904346341247377869217086174500429280782777739893068320566063966015428822659421432093238242178002800108648288003617110550951780821892094953106182494483200377679447376980266656839778898769683963160578783973727416738074821009945204475318853676638135432360618494229586927778352623170222523429595135189303368735616002367100397275749712309198373544756346298892933451349258564556631059959606423651898428148314795613899748267608437538744243605818087505501239001146737090267548533009122091831421764771129693074570802976584603118076686284549656481924601318021901902821340199461856270963956711340763843262037326850363068263149169077263038858143138059935794400543980341837191216159282831029236583315697581584992380253509364022817343303963021361231201507026934382384177451446880866109880566556686566298802496644770981551289083419412644468551924524483902997447979505908366640889118752254990487199428812134465201812340919984906186409842877991430973998458367002918755476975005570831134295158817529159657913770049116011296251866800634124190870958480227039595909523682976003572997467584143323248497837045882867069916248984593470430334912804934736244029669581755302706069763239399619649937137182344987549506783547113009991474396384744644001646221687399864827128581262619931540907967254306919048697172648888392549575426843464710602044540261930465066706783422332096741884952593156256552263845283188111775505820164325486402559278291314428041782311009358829319784123152790855899965826959542591234003134420336984335682357689263062827184979919947733616268621722673645270895692085263588843853343552516056718912708451478445716886218428212514347972608170444125322172294374501176653548702430167177783278344401191880352743833811560460577796873841317377340348549861508259085349924435662488188175834020502546634519433426569638157067095893954588033495211357094393997091347033606369900390970339168184202905741784740044521636707342150603205359014005662957564383625234943691637808732561722224074040414126391620565285994451744491854317638379325222715196521035840334632956559453665605548135954576939926000988411982774214136610122495855138185187691090348879049820971813460966237702479968503318133421576913515825727862316361095715281299016296755922624420566024806052544603576009638018913174604720469314219907785401552446260648712366704355604325324386371285228030810864843108494402312815388721564689124646118053809425663315688506093292097861975561981479427961846813189458193995859826450791738118108578748178782361292833630039306153835735314272135182959146620746999894555719245304425221309234387121371141439701255085028151478747762875218398883545301906030752763215822565942135031174966537332301042585962175124427427452788198006767589693534818423904392396689719059929156160439342397818779396118564332629791565569474608088621314996789737273906766216091937462303352433302397663336823561769634845699601028026558181266841096330321710026735275240311194104165674364637528131157787418460151075454156424063753357256155235514531782604002829173218540651911804868966589306770060204327745918759062810296718684672935395342037230397376152841996930798491076857157627428521772132096885513665444468355368652371636692691101157701421895552794845317293385157436314133687690541410700585328560558488487154968021345139274870509874889633528957880878638351152617282576279058515068981497029403409257588407544936578618290978441945607851436887907999737787081645323777747275585297792915109656971818444778452959076009716528613785532203032510719390387429727151135399623944966950208449848813471453937372504979321025622835928213804137911424697350782316384696441955435284023876210605449374273370359620413506093553875679609161675770845426494246962831587836145275947404474141371266358752323677932875195327915645351620738598392613804683273400909424670320954482696175637453548504340403642321037963413193962432838722867447723999179084837686425106678022249037190993210911846832338111175260244883255644982838388334256517464494849723537586780120471035488300883524419570439111407403356321240147894211589341284499404611605927608775909940708305135411234142122948277844558341082538865998871777970511411324755645538339105244003176003107195299732920134548076469163272753330899734478853921323205754818699608381047507411463983252291598077582204002383187109551260771476554236594558335880901551622033396109734412543409488727845463044367787752392156694697689741967037525341870401505265770619416084080533852828820026974205602603427191313658682390727439005393479745578277029827860076772610249969372532383046756321836685675460192495964227406344534162048243656926693065674983093843530707639412092271695646043680120795858915360333309460330601715751378597286133111611636868740971124091547399034557178662170862203411670783029158433517552553447111707665171028103128622152766871842722633058473599904441614199115794459844880313013089588822560797103841867762541368671553352193207091148499175897165832425058803830596807295020205341601109902322749821307928219780469601304969566358249994335682348604112432191649574054421992086046477419581468946371176190246226335324733184960354430623679832273960356668188155196855668727068878341855511706799710265830595073419114396260318713501007241080015740116159755711980534337203132192479979156365712343649052931935928037995762852552624402449461275510088859019261902834593362440700808622552141518431236359965377650847644519690774776615939672990087529398715890712250451638662949438704040070189585397837934602108583841659267151892365351668419222855038715023748421671718531870849133866352481823283895915110956345778785555289228566191595770561424258391930105808441061189954916733531375149228764353373349644434532080391000075984933770813758859784213523512687404618837785337030746210875320217854385238740371031421102670360254562244488360621306455178642842768122883069230703188667681261876692303150629572160206608713608476205036211783575273953329496869596749991481703157006829242115301937822330961059991644622836927000403076119250989476991773540922561138868281935404685120901660007850457784106283416459485646879946810251054337118537438051249332854810144851087037165119679928549842638276584136248593580787735229238535320772409428312561854633873212817697830820749348063713297749573343611994488965985122687121103614978918825495012512918344010702325135251088897909614648110660114761515982453529267975823763591949441352554754164137230452715118005941706841116945635237027648990936095123379215050050233696198540213048456930511369290899718034048723054221592266403063924014177172578412068451624362187927525803834968933973395327152627237170639252295730802636645581700282541231880343416432620093040971911451577726472033121158675520736151606791687389786733429199661333137214874741377792481705773567708386647782390701270581536515699821569309110652138484271916662204939825003878510801959507937573073749738825826899747618593613070254590426277615097442680562301496438719142814838781358553801334061775472129315298410582448720320036499316099203441299620942246835789516826479236806637274981754337359747049466867681846433257924046809678522459283502998660730658089634647594945007295516281741268772002975046370197081754740322193382102679673871553385930451404610329454924363579743927799453758775906604140310420182039200308861443904428557326040973037734848254750791222349169114775943045052125863224483535153587436341378902996367403707158620223802400999400286797253970827343978153450851364581526580157310704892168992521461396433016575093476604490050968391045770267723717043335739626245809480285796157329213198896077238664912308557080354725550187299527222150410966137129454214300807996055611136115530283088429804690139613079716393994733032772573056044967407952487968443757513387610448884725464065981580488068353684711763176460625239808565035336859803842363802604120986456908813478134080209227462594143997875924119346608669382163686414965948506363343348646773981961911854089853454909691015052701991240570441209080923036136276703092042608202047152964977124133528717140508153006407563766768324641017013398670256958368419592624651456360106471906225207643107586060185885615856745023509450069489193118546818929800378732829931130790069243054500570488134351852690266620512061939521229486225523157538257747260800766516819281423243102313488448996671122127344855977660652377468564065319518001309322269107003419759614943426966998350296927671593453596510360275403454482667493287546223777088227546604700007409775212932943362649106151436228388869892631057378461546471215471108877932610503796624367719954451906736053509008090227732840210076077938862601718424558434943661841084032633101039462219602097643454407017477704764121264900419546125371312101105460584145585055335159864830650712474181964803607855714409443991087185169378545505143362556050128584215523534133917084216278692737775889066655890922193825158522382961201028925161678293116448100404785047108343086847454458592912646027829213715662958768646582113610435798439460955039674984157797409599652064773024383103536994417824629211331358998528348351679157739788148079113921924700084383502928237674166987229371470931876658681432795952887550418753747254763079763066456693059554533036048862182207759253269315536950578993000046903783296470273820130886515032195111074688797685784362098410679830591105396130157810378569384639514772610655191171852878266860264167622680254535851749508394637304906019898488319902961276644342562116751178026067703396575414775280695337720166294066823821379800494466728479477123269230412531636840790022005380046336447057220718905776215768855932777760278286551912055389376656574925900309365705518472808012116227652674241205975654547960921296875141571619627551967619042009441624591627384197345469975602948107031283768286774750510404287262868618629060090171213457256850030318120992763250201109844677360028652396120909098504087148414287662433900984794426357913736505978702617111973998578449592498647801634460266883462050231335933802221166078543497837628436202439604941988594604053714868451322716694726723355002513146202592475975604651685015521645467773690987588084909690952925548711803374464454538296244561868670721558321147715756651314958942880836809916048083341359780532932893932511719137547215942758958356863624194902020559844329732191163355066494944009986087961711296327318218128606209784956036434969618091613262785147159390298968554490881265681861006828326807952876855630352033698716954306873106021351773150650044912238024846736106832426443428922460556449679439538746548019511319614983763549421790439017366546532670387491656400070452214600434909152745993848866527631408000866949200596375978538261571770186809707515762964156164130597489195306995262179544838895143386860006175544925372581921546079405700396934985574062880961935977862502253707304589584695165788807699896954882314847189277113151205969214627012547427293212103682979204039302196594605290465926086449902394008604392578697014895117515126920621074559329458522825976426616388738005276946736803228081430422250121578756278223223636195217476710657329141433969854268240925953651462900748907570777582890583207053953906642699980102499826375713117842932455553318788243546427588974884247863536350898622025619427607162465498046354818346588275419196839328279295942583030403500404339816063680435184781239433779241945947247427239234732016915056757541742533579832253505915062107396489801213794148999401262253995344276796951691866479424902460363715919259273588809015807494861663005431836031525391337523930246314732534997070541957455779115538269996443949298509633494762949576049318014797935933446129676208533420902567897918696043145465771553686123222586726693568573454544615152721014195527450168447137450085857612430147972798926242931670928629045672941490602152880767961458919000341835786288100138570958566526335333534090064002213595042363772572407147418660777071829168613342904896494907230200269262101233026495347121147951545605610618904834784306330408434360107337845933204615284470004088823036574364078059703458210835314963817358616910244571313483550077681335885194983300913701514848587287158708466747497928551068789744459232880890833505128308463859635025521349914537904447456820724005061880986927362228834496415941621057556614106183645578263285307133317711384507526854825613048360299470019747124460851558272341083661685788019290272434086901571921269574107193453424728855358802693077811794132963495132174743772852236669169728938412182394578415341459237155023928922830723305852853595963961386952593599552732667101819288965513837997606751294146661363550797602704159212235668608330839614216987996756897541917929617253687803531930603402263598687861104634161805712625043432645084554366358359432364506190198368840177515145482062966799096851378469310609750353074184020330088819676047550853222486419018670125131512105343880219720317915773191049952942724331387652571082160913372173392813395789445088464757110918472026345871837984953345953573782178540456856132618077723769590875396888854601971284813599549447919816653670714032593457727017747662965769150491361050376857534438634888171747913050988105331567266875449098956135640528782214049031710436059163975474855622575522066688634510933376391512121595184787192082943010050273487128149439981825795113035249689057622246896768947437074056575820808022492080737963406771682214724843416264128964664931131644702675457097677097567984209618564019858900974599529218749257444460891618443595557364690852386600223556822501715867036899500791264076702128119565804436523125693102146716939687399732630635332458094642760126261145885775926148638330474260309753988244615956464981677482988208334633483882301777804789342558051489462919564447396975976966935763320172229453795341630415203046817589677637699813252830692694637702817130047951296679043716140727658549900212550540121465594391435362684769415285588538488635053108995059580376161765096972249319762534555996794705275497924911592956111966180460670493085731005776299192159445123584617460339357170927379480175473806605898107482411465414107587758904211979138904387649570556207290513746794791342716134267758479574857003134297076204505248691803505436569604522844577201033889502522939821838750977552101572105547813290727401618346801691486974074153050231509793794222775752370285403230075543213917855985957896780176719549371601687195473283935041084346402206293422719527749357911892179201284548000602280300597052227743161565392188305544006029953219940554599205005174428854010724969382877317701351266516828672611151713562098472814542741312487946490038136280644962719855615929630180815716150242996504791171411977302624053484745517402338986621139821095848934568325316489919745841919647653297615310191614221468385559459468084568532224880523556819042658469381109573669584419323091354788901438766592452136136734247818303923419145993674432708970379152130972726825732521394771651517852284850688694283454970480957477383176534991818085747701524578884951787382921508515955056828288489555167582804003637662196081132660464326297546488834459265188749555318148988611052986091667894105222109123206978555986068461369556070181949555941682111603165245117763759219078924492252581555806828998287184598537467983420971811701915870903627587477996058154160620826963733066263484873116829086134320417205986094633399802960345413035667102822209657863782939291685553637321312679485949982338259340406698683124095306814984993515928090740124128893642860236881524538080919370602904829138996404249459627584926002144181909751753586940925896525660182977072642653449510583717582059215413785995217378683581897834263319126669048142575702508361747831381277311063752903799735210747421257890105754893086579478097881393752638771347974649855720768795180769382618400476899520158726617427768772157596323130225844574993868435608979530127580110096461892989926819965276708069835984962486305140158600782014381458843741433588484662102740867618138883598031080669310014231161755909698944790370473166053634628984631421241212337198609226945385944852430857722722313431077456766370187497734108581020665484736475206823477350824539164656020529640064101839800118791033945549379910130573661480259468645078334533998615308449328193346015408235859259875678933251103484481930291734580149835629812340034071306368785029203208294531853718884348851813236665306225572712001074096141727578782591901726065815976332754181198582323126379476367429966712898527321673527835471582320753731601675152058009629684753546305175833281847951681877780238597365614032557318463424604239377503215423625748239338609027602025977395573493207961783887305261258050841852165649547157410511607865027357219380439932828904435465950813031007105952672346778270297454133489364638837400920360955510084139854465634731663424606707431130696985875596287503858620299961226095873597783989065203873800972171811395226001912614676565879606402429023792244047668816186869094551942288619291869288966156433915374616440005265415849426608185992266237538307758210528898337548507368800972020061753811372265769838212374608071376389516911276449935837716838674852320163547821349154612113432184601090933183949500908535577410631005999194654769522734644148936330337927473876133990039663262654763027175230201557812544248202930623198814980005880269455990131402287153326005725276779882925042670162235119092379205636339882159031007441626566027300475657322696765456115073217802378298423366521276904049393245113145511905250822350441816403921439430875452304658426276676552447696089867535336132505310336360358076204762492110212480812333729136536201531540230961153742570596603721744973602357852810239985578131311048187827827260079075150710894556287387504371741488945353537513461083626599869559797949446226664267992911967993317729412855487141841929736253637727117525558586518958889862898725694995724120928833205144468059214625741424369938936503349991151329759736410547188421666633159102073451576104080848199200819624853881739173108589525306413739084397000960308421378599965051191324616335687264246923999728861766997018163297321132063532494710320802040148013125564931811923979849472780599324124911510758018953223527460152017125715580817743409154622524848858678529190629749542569492868311932597381734780675758837260355520764038724630885082795388237248501802675508993567886493637201415238803952947921172090740866517574867289586550001177912973106164764029288953609001623537164010808911664399977127277237638626708108360153667557571535773279057613609437169698882663938673305100363047601297697116340999522586900288035851382644176428531765979298517767175347257439973914475032167292255669682174799116331413126505209368981768010966903344241122326951119923622260027697375709806543103839150503586803641919066827671509209508767404626062767613712877273619414230431996991580619319205849100358656567409156773067546982439044135050496603837474655391685235661152446060134601641095119083076514986783180846194545608592383364696047949033035466193484464635990673995236508158442715161778769653892526067207492698795921057825229231981946218165664993982920569271175900348748013963458001020932501481675329157137510725412247680673903641826793240506150810960393618763155238957319506570989667294122125475986099432531841750903243411219921106782021496378333993044487162767399741494486353396635339659681428271058407899607661417520258716905163171469682516107011696544268758168884336624259219351735655688572961441325776829980563492062595367393411764320898462608381072390732228913364823271798527075883303093016560188112729480112325789337767974609607293252663858879657277034913480719232397591863945195210313258700649554016334236470085276375243407465543394612589125745443985261575807178545382236007523780420010079477927284635410291557498317192349388081017316237625567676993472532193250295129296494213229422045428199143850537951039969053467853629587955615061841015274389122019592960242676994789571247193728123887346830718819089027730797857322519695475064090970690282753901710353732360533603156453857676433002096190394709258694079468938624893367208537292941104936582196395270983523073576470450631219599464313210695224060747044287122464314426774586736657587170523538426009724034655426362197060538908943892472413510286102818762689202117373842904996754395417055290818089944806257046844536198518939014812699693806059106384315428812751672607889362152539596272789456597733833015188868733766749927368486115957622377747735718341410917869384508380124276884517097898797457264421774415891263922414838230321522745854559990279145187182428298698936684799286311080618848984018983984401744608805145754332490195684980818000540950652092393223047411914503745994940905605048320968182205592954940788936115171307594210011728396814938909929406508588477815034525073568938205336774039329942063130374262732231826452627628314835413155075887740896982435997726246251832412842393468377317778641455252939736835403888722983059566487532554078873873093477278929638354453858082945457528371145536734403668570393384367248368084139217522244772341648390431476121887618207453186176394045251041939565481785182532472617278924502217768164515270428193402639750673315970224020690853882864528079934513957939821805183868050265081893784174288735649757420025504624381334465971221699553645283679454302120898981515302581792789225761101611111582259549932328213424068459823688405686807515000038537546664600137292190974230998840866575234754135745571307775288925546885590098903162007351307953476346493395473170244170219481809433587651193808215152526452404178992215557192792505835517349371491146247434311552979608192837628160794367016184891059796953834958424527630343308591102523406560442828599548568005472506937613915531757385617501422662948474719809432286571572404014521687920050123156317447995331328733367930314118170887982885180789790911412085799287290865379533526328081686867941731953778919766119682267862513921598210206401778401782537012397350521197943304866906109352235791151203791977956806799519105466509962943802212974026291782404679024943146571586813894350032122926145409810247888464445721419347244366709578590841112743053815759817625178729303838823382243456492767293817302026689374339923099789457399807632301818212364658804219317952931778116059590529295356090029187029067477031168319236337897768173481917629769302451462382425619635999619535504446186557896745809574452170734264022463312732493583362501145917296523161587517253262487325738388440766641585668384526691593658586135680847243794687380274076741193676885488473700090377088623579456309357312089973317372964519965684552675217031913330110333729698986930118715624561593568596910873806438817023161305720366937934776423199643326098864441867007537871826363522998868042728769055314483058448558627835472231984323163523889758583803609774956741237329125505831951919290182646575167124384856541887497103084871747595053602423526728891893837362600284287608073876118300485422135112579171945610071316512905924699117260741965791208077473636323433590136451806027122509333715111619334556091173950002557093723139057615875055706671671457585575596041216091121261503195963537966769331446850613573959065065163953982670897286542193691295799996649543342531811099138904665054090698978865058039419545055526316735305034727551343164678237190733105282265503199041284205961090921990565163099287433429781769660091770008181215659590047730186407635691547723395570736983361772382357628195100008744393048945771172472328135914681744225271018809731084567110850611584079129860962109413905775131595676571187509405015995431389775871205417325337282834639864033660138001887056297933084031743479868148662088463464131842632660168468792264823058171786449881408905625733172625203736487044876795168849291103071592348791506359488040153456112776626094064524077865915066700309961661102883102498040071076630207835551408557846906839443344161026956537882954419962505727848732236521547112181006141871827773623185424975891395259770849779335311567267236313515970737913014133535745870922145197270566031470208217843923697531547230808950243899195069375179647570644909789200456561845810813513853054763437946837258584761186795411357128779942671946299262028048288309031195663814028590648408785052625530993754485027331517536666967153793478543674675613629665385097703993029421836237406835171414023883205021073054812427400648912820167896354605514240213907071694097701397670110889394371350867425664778421684733403992550376088984347668097518671652582562132287217682034402125204656037895602274270808693472769965446119292892318850273394349795187224109055187638146557692396998936821903298120904388443299576057011750676124632712440131559795774104118538742062444875138605193253966804328075156335418021136994444124638891292364614768517681143616622346329709525839536714646290776524704426484400895306762268074252499830176583691001005524904689175886871492458570191397798588438653339849493111476562464432336203130558369904599215256105224176126951106182731726096445292401222620482837624448064695925330864298102346133977193496206892731842490384824154570238725765170098421563283528609831918869779950285802972331069612642347596095395247816500185183195491170096225556399573053429358277995609282692001642156854632274328036206434839928191784214548592025198040462430379601707565900125622156115690287492717653331410417672403125567130581145701858603624308377551278130249531542505694999867021426172797525160329088951900751431797623270658708199859621468126702813225355311374625935829369841956907175658566364711013519442066356307325585076174298943995147367520377705809083655044497341053307351611738804501687187413955718928642170816628703706856457147233396254049936424362658176339254415724088902930707945013344651187813281253227203150004408316655558071899588929372824755721365985019801819080917487900215109478604918616333519018784753078932704512835045340998709888996872091624229032109290579992962025471600031337440759444284487860712346172210589766415047778905549134166720258122358329305873306788424401970440869188922376645599000212995366500837344401278293244422779133552789787161034770864601447021447878459008316765912898882441213706827506578966266610534197896633850692980922162305085300945319123186710781577578684785394026333692969236951231819355830974175571139141609985659414430330076095558759840027744426167053740382996465994971283788104260411911566197766043833685468268629584738738241650701678311787611652521249800145308738211913994834569195634576534569217235485461510923137397511813208865935578155278168849196883262765764187965022760959996491094954767667096689349773607292100043133966898628853420943781938611195807573939942434896067915280009893008751000323165839169407871720967619010967046018868987415945219985718205861211210825639820235775647129644206032388162767156804354833214952486904371881785350045574145188827221269025515489453487793912937040363157575355513674403180348337001319230812610398393274397406213149567304469210245120382066810741572646289486516656924994746422491642219813022018398320957677353801418076374618283405779846219958196264415012800703555997427178807079295065100050715868775414896456321224598826097426002440054389769785391786572857558506304451647904766487956338279499717717973500811873447755559166021801271839651863197167725245946079496347305876843603177194962424967644269727348200512165675431022774164553018362394263403819621235207883016414800002890914470771472979800463248241750641188777016327163940247543214617228797961758052127902097713895880391856737194500728168617148247451701273613630954121144553085174672062122792255175640213801469914094616749441809081481650039765021013414131570657781919363697219387780626749219433134522551176442464569419229090775842804102624004009160031167773658506573039457182914704082106469393840790833215675514676278624961413018970214642589570678318750406791893512059307819991252180061488632357228097306950811035493002269070337529698674732882982098712894137872775685276080854995864079714428354335026952497431714202676739550569552791429948914135726221307561445049908526650386586101012526775426606972144500228705594631904804018722544358868373932580245704946524027199680459349063339069639753856673453941255236259318839474760092088356990448890651782821283918217560279474989440388159939092382631051577031481492623195548032132740748343072805151136580568295157131816008531271735633603924777832334075352500144679033633558415367742412118360378158152274108989399552292550428779897076904123871625217271028999466042786096167452447042400947728161915137213291515427971393926832360427736544684105256532573152272356678983545199283780171590524223310903616619496889848069047728505610150033551208444344778947299266935241467340851325866391958451168763915005366070759951810274225503372645533091434420843972804999164030480779338825412792559938095425114727098472245591381570171864935173442814902871181681081128772240390356459621880491375177314337320447699411235580752989922572211025292655156197237387531673475450652657589762849684946051897300489285159570469459152913801805641371897246058509874274643572494752187741642768869109652543266923631500613505963961189449892690017417784280292934939683025569247340255192101145874688994011082043513014590182858722475363270677144651127754334903828810908671583328701509603888945017543501819064353283953842538316154435619380621994418495877271777210142636185725218077547828686497986763226142807395202407415634712752436877934362747089493653499709487836072411644953392961338989113778220821855110491736685781618462840799543482416144067151369318409228714636685745527608845669248357064568960827775677156746397979594053661579233160110469552160163395084495265021089913877937255889408170651706090347053691404232157997922828845942365421418939973635110715279530396159235066593561085753603545127138102908234143763370683826902040490559015507153642382529202173834208671453347636806349122338425991702145088307815375407535913052053297166665480622461706647637406144931077504761583262126940884725653345293421197041851944646910535449788324054886587856216617796785884117911234299179381953823033689560790891870212344751664140208476548382315840281296963997738371316541960903951543522231925174991537504773961733328868060911651580764536944748771637453412131429087554284874376741576303036336540322214876793841049516917562174034464938510793344269350432138282648491174229191663552598318592867537416840123058559605734637114873362704516171895609980108391723448041662221814336997921376719802019985273331749750829341215123672101614454066534055454048364994232270362582340067458723730225580180023138771316946029449683520008807630750713854852700766882881465623788444668488783817158680225170424535821364138037577225192428560051093406430047341449571283202510742674904544317723490170671076181166681502959536260541874113810928369630707237216705812889701704413468389536101857101607970119138180959340798835976098616938650201108571811845253068216474155797538331379589194918162246174432223604180416069000303143888230662870296593525907461067127070424506047657377400291599038340764998674857597644002870562577264247839669212630615909131224137715000951970166790355369237359792160128518935368409599962541056736503588425624931940746117987017316319206247875559461219715453596998822338411714543983764700257753561466826687554218590918788270347832765332355862360953792270033986424221505891429676104986362338996150817048391054343515586618173977578611033614882075645325032504000336020171408675073830712503077785776545131055739995169792531502451771946141939428807444664387735449083603839063017532660262351274338558090517882523843920226742300086477724779963792050370216385826381162180234551959914614178507403547582648660772739272751745301305546398128280129811096412888452347117434520739549540475102821664656044753696336720716888994883435172188754568270934850933764578324827693011280753819903682812677724836634279744536666279165905507582422862738136128197139991156964149639949146098526033235725815793447291968853970602836827328652494281182915537541541471438691428092467478530025049750837419376969734969940542120384232592386486305276642152313707074734232777393267235897909299327461803458520886421614110477151498248756195853336404887006741978233275779178724768868112793176835088495637411295678335537977455334009860074069457669341497553622084976502426059169446445923151559561231086056882957148697310539027129938776529493399731708922753189440599844601359813146229422549071279518544297881419927036962053871004136184296784024977530498367796892750149860975115721321472130009522517136328721538660072199554793354417983331562566972538838417846834075060867418424082269743556441153902125653034586890832617556263826831297849776110167158401383149397339230099780723435280066482767006190890014099635993971509551389242709614512029445078152655903186332834478559672505796271099265135178105441122462906129674886293621047155423066762465986582219484153428669594568562963331497502886156405106470735131885391811730967976584921598590730743684333689156585768312084699227257298221871321719255285217756295485473828508209042191395836113883567330763632946499575444333535670578343733474953722885271298464364872390887812076245693396048507714203626772922499915036611472372967366644383127031653468611614993129559260838094612715628670287435432001213035047148249490270625404586851614676742661704467510601792103435127309254449552231824782275488695486772390027152322041129405082245050057565181923238143095032025299283297800701600176593674564475563992021537368982216521199638765734328182838622519797216100113821579385855123137646248943412360255216244031233285956225902153126859220772220415324944955260451955894199093940850297051618835485809652232859839135310278674500132424429312960978621941448487503980004400904001149712320875343427352568976459168854402871386160712641649411937602718889615852608490420555807724889272599587460315969875147774409599759493515910834084551076044746474907493591837948619433871293680094331573217630456142685912325730894952311435395838128333626060950791467210537285903180275666983551928115643596244565866116236966571410434619792518840581335032131613636668033469818271856215707140110810728819219023539787368812486350953406492002289587643282548218324255752014451238359094532173145075895087586062330844543267200590890877777820033266750847781571575910210802224426460123718168431755447247834425089597282928675169150175947972525437050179732121064114915404445686586685918910712413280966961217139974529242828030704969605102924855932639490733494463874470398422592586207547762475939888487356317516894725906159374453142013046441778479253627457155784354692649388155354846968081182565584740013874808265220586693372448534899823191524811351256467391274337324963634177395194225355610631757432529014536139949460911245371535417370196982747332961506846701124971021840864026008679416671935974395739273357087680423453021617665654273344861771987102095719679872460094237220892055745654876473314197617533580069518947609599240417703979623754630369273190383560222386234958222121703171311208881746769599107636326625828616157285000449908929213682589894251782917722457232868004556065303854526538742035645925263447615065760666300178614986254498825770663163198025006248061197733152288639557470384256286194339658157227525979827830768064680870862391766317157128527958434287052085244966404782082046133851817510335393950968013286221453003782111889435310202308145110763308357782339244168212711259425596892380693681417093586716662625062904766762903926658719389078976897655066232211277813344546283822633215109207480859578936673267860122423598882407201396849936768754506084287619137057878316909531603091456170160113637332564021453516499675958200509950089623367840751361096569812792368175943765616383248484807224289302153065230169297993283034065171058109392610758992496154927766211329779115718393860923454959307781895494401877376157872949134924311260037124507989303362706130816306047740775924440216618514187822288753134194511200004228762076264780935738963820813686637526782224337381170168774391868941888726405557180251310366837060977130228199461056911011612609624129671363651775314572024000608774096472592001014883382834224851835247976610861572860251822439807167386757205967254745816177811678687266199729457555750284958735255695331167988372208957245513044750204549845882555785398312088788940464716971206628380027888192243327133270594644132178637985689573286709246362059779463980506729084421257217438722338861483292839606338687974881942911748949577593324943487983737293648125415675948299122715936578715967664084668875246414226767685287598212922491188160693747156325490829932280336048876223008664966803802560272214407562760272078283609594740856494106381636452172532492014875139322491701240809056593010744216498026840638103505600661252993264776864735597008886216420035568487510418605232337209734894997573119015344594960864719586998350543133872742162444696889618714991150045026678307533217347790157341050106936853919400624659525194273752572376155807431494873978072053693648076532356035234268514944333309082560618004462741086675794346039915505134153705999408864221116366220523315298043644484646570323854634592634235956635644362780985780407379929603394650523087787093521648001617502405066473566258845638546292803821824005323474186017570134508483079853132512361231096104706504041016111733817120045217767176726336699452524742446877388745142276496211245965045256085818087324242020288954832951066213381286783246920291715730617132163067316986847626195417867729908355813457331731225038080542477825276306285432899683634356240534877661290576989113150839289944499371791645344236195111477088658852102045445149364333239576001718868727727563327384590169451813938978790526713605143080515921503550562587713656922270648623941055639344390974696538856371533466837177294327432912994571274119837613387173940540639990483971820079479282497044010172930477210499790080198799734090659661019479451783815246414381526944037901114867794833487133010739954937226995002159222004171060328724736358630888232578834884049868651011440813586388961152940127926815689282367104669541871584812436861543487968967573049676809062644095604741291495078182029380030752628478367729874092674401664591551078566777608959237737262217691859665800351789985689349008241414684234383775855761201280518071247771270373375703230633311114241420483211814025144354123783745492317036229593258996076316558588630333709020527681981202692391191063805307735253071951268889783678974122366342853818204942514853963232872694769730698564066174686754922267154131032854917218204735543613619334040826122889736914554226941848499015097233709285220795782351068512616815731941742487047236559356620795979019197642642077368745402709234563345835585942909729790882866664511153711756301260373010920637943578750434062315037557910313152111583570569431870790367168424916604602856248389676327460718695811054745218861112323905350278247046042740247847628943451470688081330380211868016613921387360396754961086158494105831123075396330005485000224532721191972188706352603004477712419614865757414523086509148176480706797576761898288999776769599531254938713038140775885022192876686925632671197346243137962799810025305167247556847450826536868530926686600260514028403947184872196160245679947997704728846669195249248670333690077790813108339003111805591128390618750707802905324950445195900797115318151404397470541348747213314445664696521043648292718164016357809366684125224167692458974868773366312114950403071859275115731904246818259453247551515761146592119994878333808441206759077965390474857981247542842104417466757595024695486624953335374851861688544048825702385533962504862422841109108661177902629116122568802256596943559707878596056434745503500349862539972738540525680758683910903699548114336469352112362332937065659423615920532495701848365490477248945862490862311340599072208950047720450002360954534585798112937087745732030575683144287680836404416253111362607265021913841354918476957492993001561635035984948452158911029451009172080048496428624852632402139416974896410352355588881404998748244716977732663341047585027325142887190358338675427726148559533689623030488951632123202908838402969905386471171368186313151365064867438638339860023720594270682513881211215371875379214187777097985061379552786482217342436611038167565578921807689831629947966277930622758937948695873750701866785457582357503539956302493345036318534084941978658814064972799175603000359875556938883920343278747151074086781645663543192351449626285356604963429324446184865262298415004177996028362952230686642019840216464299168010635937280694278854214690292887999186551565726737546428379702306453320439186504837692376021298956170886751729049442926045730767787871264369207036027510203925212269458436433489226366096382415767272633824014196266751329183076014054990591583152757563869257261433682438635156462416467945204091881962773890973710715759796727027746541492278347767146533078667076626086295032571288097237635418793046039822260938864658544023528490867781557139803337545667472330335026032306248466043671138187836087855575644361985151740704729297745061756236497907316354292121818564299699142565215298364195478210005466805968761346259678594961898143123404498919478718643529830913106257123144805519378444951997721493183760806631186547714327817149042610572919704428540561578188913157889815424733083606343503179939996472679366414242204900810142952657304490205454117830866083977802972906468381418351318377852055684385224924589406952743244025538806698575415560115565537445124477374556152583482990461461590157661163810115125668956274793307269659685137476735134570380768568959756888708023440194391997675105891565443154197438158638024204335409393818319927509946532365286258486168496057892757377134480805287074133383517637947073999274641131367232076818652151723994161411392003616509138465593230653123950616847598540291327394294210989124826600799038106008426180785406406059850364700254389529514614417700077739737008358338333551570455838062548240605529781337527883320553176088952988020855941826816437374867132644771556184428231319005545411201293175111541085426642953199886447553005936280204579872483346137645077895185248013968885060339163980575766663941538965353212319881154762524989323153058271595882667759202515490908224110533423912412316319467891894807309282304354691575839238335886672829339171865267480490780019764041109905831021048326321559806650014485803023758391417124391467126865425706565219784407416339176943576821164854275055663172360064258159039821196752684610032788128831642932385379991203780087935446132641037264993373157405140446741679589121790244938646693296225004749596395575648562654661187758932292231147746171425539628516633300181437424260715086291194840271501102720973377202742158127963024517026544171170308812854949430918186483645161563520066106293979669864905610880934252494624341449751826957526276060448005363992256892960035303821346709071087095168946279358944778545768325283799247675756923765582341489425076025233494050204656495817312692818160912307100969153308166301935866226458185612562318682169879992950239422176783872272319325207314637400094522801536178203256577986526498661267782964895934555449732103094746701948588383837933516482601946219677985928823296878817581410914899337049502411270141766716395390465273221006524146463956002790535811222039914000912984886924911857453675731845076576866855245771929610721544376142222619161219955974387266266727707456215205000290120802874204955484291149969557327021717505677587232663910027813706359147006064296044404696708842154732043391980444073874765811348182825126132788783948417608458349264992167862435003329790202978430911274800704294125285155933451282376517928509365940840926259529407396448145845862236818753937020465208192799661515248622296662834012901709479655695192937846696010033136450776406613190436314168373289036528691682223094371248551955684882766586364935525714925664914250572719288881837928453545797980357253887741711702720008262780862156544967933648224864312295366467431983605814610523907366860464158658929004819288518524119427959605999026349800327361981704245778928973810264316399986002050797176690594538860898539658053303769875330736326334147433046041957247973108842942050293362575804226659007434007376283317972621960249657302226828011462258790957549222581219071048523595199079348939225748936498212683709501281107495399371015038772751080585366772595051501795012813869498623181272653104944099332122381053290794587225837868790120382199311530471893093236024332119376039986402892705958878627060042055999022483492509808946767314450177195715907134881941315888625474312973502651980652234466544771617154070382526773515918634684566741725010974224487928365844136703435398516226394715358073077011702235572140233520846296967919854836420191021281866889765843985397033317450708031284878019750686478789760535308540104184804115577056036799887914802537003462186290286111319281655745948701823239198283356271631502475448589200367288435088536022976177497981012476058113384523454253355366319514638335504106259027367271278740901853022843045060906545242700621878079997187278931637469074668907726019911553607786513824910233367496201304922140532804709892655717117606338272794872367463579142054916197575569829661980951057247189189788909468714300174323407500799652416499704406177006095404621571517833636827040621576575755481539120708372690513350553178497456376154159927595451621092631559835570646170301980247733662234678924451301477807956344820015412052886235310045066922303254120689248254407389332145570633120689488449467334529064952378657905166914230932579159509398161815101669198621951651100147973417277990626882922844587744427450556264764088806021867042401951172829247296552647025911600324963072081265101639496542261060588925651511307378792716186337576539249292265916820277871207858181834278248537175501181711921420631951159336637743636835543781774634244827833494465610280830828230003045894495110109657966089559380463540162549797119875879596496845388387475928437310341887137768715268338974685265326897706024690201807235329607374514280929782032164440307022343026314847904464799032327320377730062497270239955624202632398473146112873856147802972007706194787320205666754590264619037823819052232714042978689966782284526337795861292218489874508323191744039280378549916499397128812783408653997301197598395749200293937087571618457021340948846973263810108657594093900223771584767455259549894704577009779747628392117624942044687847661608568571552455443444835701532703141399323671736113003270974560733838864199418547416928786097626987000429002308678592101593995094940498011080240167495156810998040492743170877162116115278416198509779550410977045727913881130557985247532710221048093364508603742198620259936163481902624289365534942397648413070364042613082424800676465466672952064368272632686954040986895859723623239208490295000101772661500469342580707677674907564169740374272284674363670612227519962878743331320568422156119955416382403952025696844064786545605203765165206265914620093536972005620413095391552898759811481614925367811977829609773101497249090597475888323890445002374064662252416199875018411211584952996401704770485001511711861561835475669288480634839451618445089195820898392357885761436426251074020802389152100668357882160771418878075997704906840012218556895105221286204834627104311132486551666182012098264156674418728145707571248239001168524303930064914310176028965266240550663952624803596740917833265100684519224327419662126197479867487245308136027909123916165626757017376476353023825590645315336042006864321508639855624176861367203654848447638778950613563868459232642570086356089086013847460013562648704766339672204443337475047205121391380319935284665883422411147070694948263040724615604696003210167749750811371837171560687989934343202119933194506813769866568440452313203232524048314629501829532446449331456327919307716268463081017466629587219152171408024242898076543991273770821677777836940524042851637470357255758339181060780487624219009342846324519261217941664585945642178785270222248387504401076076741402707349377329937643654116874812220234451887367597940468923027379500806192964341042439438967841341108348789869732660171470371950563224947563958148858907139236364970320017182718988565968283139743504072277655590326127216278060366149276938445932032496114918742142618545709710355664255569428087575177647523523983811940387395688200313663118338822731888181882901310019675526887309949929811192919331632606719776453694749261876377064511453183407060466480841657908581555960942802266249958560206045943467948577006241478267907036277262870572211411049570870289319953770239533776550947981969901277737394919122700823748078171483456398668716909746254861493311852555076955992258111108970564318445109975202201194945634091262356844875062648672134135386499697587788120334867330164343311530208006096528600748749748819146170788850706153790974240115057634917225704776159031412424392406028499025937469030533709568066601688383590617966953123269871485862069563122295073655838928490709178487522265159448285310435748306582266524440792104488956612012308101971853411652078562520933846941472464436500715269192686065476069555175003705438721923758023339445579301648037065270626689602960733396791771924226840535068952844417763144156802935554899328918635056160062543434407378513034810585957823887723298918587505098000429922338478368089419446815613718951404429761004653187532122153342368361636760172344408683531800308464279806485420774989596371190205850904695580543742415138663261593118116412872921223592583139685357532573874674920749474861511168632821782892243851678596328530498705986277993766188073811025479595754447204716418183558911321499402758946804372710448242842285648995458812844556223590513296082964954630705671883461226597757835299379112297492761200459910138585736159607832590928958246247359705588499653113592065369991690973695240973875011196298336710715677511732441930323370675632356219243720959698335938920319824843326181127195028311042742679229779882068256799030992828205206167450517579693205021064232310950799679067348436290859726147183686670191501594855979678636361301911827120328282230180662346274091505639191717863787692264447966746867441247850580092307843606248064545149673163835871785974907387241033596669941613304708587897880646812626653296135394462559089070869635333163247538001089594164303069302725417830009246288772654428810353185784332563084937902763328844444651615402779226577063077075308486671212664609628059181755701689491872060005779126486133533749825178021418666288499955493952189793848783482792860873513571427142571165291145840231099435818100006750523595900949527248531929482024413317989375646827142923144560057782361203183463376930188218014360344893019567053782611229793054320436778087168492938535199331761688434225727026448358028084025926569606984447447350300649777090630597151339763092262019089869237201950001010010295992768226116112513225670417233900271341045600842053886108150115030032140007850865807474147317133222572879305758852298396121487822540558451444106686289988856776797373843163635593095246519699301910194768832958799216143717249963854199688060200388640117602859299459866927595422440930427605219060963107665220361418895304314853021820290541468054404014251831026884911721935074098999849833215574996447630480471936633785206951485193305050601268635476206148743078661662211854925263208908150304069696197581083320581780344087715698641339715170436239862409467199131500022199665850970791267646712426129332847514938671315126804292603095883400329686891593327171154385425801117697108463685064056385627668685490609881704108673281231375286954830093299467992332992070990811236348583748353171383005922263911849571196543554632835845876398528019618579012436840381484224936887492034431835187593591914650162747082268514348281213357262063062874577083033824526036523278312017053819284853933293152228980014668747887561399203657787295845887521400228873438992380013069449654764544123545698317534596850560708265798850987570812004245163897719640376661764562312950949595751875644150138176395641278140377619297798029914766408049492737712178482770259233420157043992080860041678015680150561686079847819135380931563970396769119701735613932214378457862645054072565974329638110811519279136658848252666448068820380285471514573356786964791059698861134803362899268586850274147491729783846169101799826882684953204691552538688859566775499404707863875229042211921670781633632103569506682393273331953696567195551496492903002262878333992432592039979485990548946656414485394214205411397923415488915239330906188185967597057371949526077646309756828518434913859934563021192595424472149291399800258951400625396671163253809237109929599769749909499691377162233618364289989123743201383547217925783638313536621302673234030978306859616411324446659535630967917769890661930312035225038379336500766677912789868085163715513815549850696988142973087578451147081800278796848021802926396403865974809627701736442471201950107504520267606652552812471661470801670386787235584501785506171197019966030898318530358810437314850146569292260041463090273417661067410891967346370956276487853991252795754149171698206947689485685488678153881637452341628687135860305115220209885148959987140753677622494243994440790775623954930194703341694325095058144669685214819559490759956320253964257847138351268702986895545110601709654411369842515124437486197831717506551353157157094170606468486023555366009592759164056261059356081654632917721083773312338856867438108414273775040246763944006690522496299275112389917172551758016795317125259802344754182692389277380337505129525338738896670871048391182243881248699758517775460730950260252506922001787489459783632630707461600751861120840866293108279938021954959861779500933362627072639791507174161791970722933145244777589576938198798062130764629430461439617051548046619058800753122418712330036233232034975746948529560541062977770359443221498637293104390357469319723480151389531775292305762165828171265562553072683644066000611834042851062335691688899723098303369249738528891866101369911433411168709170523991804700610080471885031411812449369625470327771645280263230574777803448143233173085073209165535677352864515279147697800175647556418532034809701681131306152306632312965065302482332758908262427655335549410157358268958285116514606532451745303003752332340188282737551866249254571669202711167531066047003000603566204831409196357304786010181125587254381717573636699123183407841437245794629255860306647068510511375786064362106751009977000367584925344466210530571831276747435967474521672493094369868285297498734415817009347607795674166547102412571866674239354227520701139583470840657344652800944517926950813613474090631152135789161635395667213551795316266048880452114967089499333800341275912522924655078744379840530546799601159123427724636467222300603690863928004384810875607564869307093015210127677882265404916120547173036722918364383818529746283291219988716677934508203137914015127297009226102455033988141864867537644720932869670157401703873379276737500359514886071280357584321609853545388147508515905964968339283121903232305863103544477209723633027000492589451383809878247979785955794073161479036360807892560542825819222301448246248762720380236479666082897901242894645563529521706665070542359348927431725757092522526004894738301194444779699471393132790523431304283924958991555027674441628258819819658972723932773197047456160660510856833694944348883608924346496234902299206444680222741478145420719626040931999867373467233175611480337067757555870103815408719419731301521944940967942238205152093365732312761920164081966724960703026776942197290975765849474729145972044434690145685543976730418352085592750999308865894345785558912982005342708357143312774122467868772356685442406176655485460435387898713702258382798967301300107158047357489145735379257186240469282713627159222268704895392277544913366687272179913046777882403541438863384750068788577962375398554673965651624600002961914065368531737424907743770292239083244997535853110080032822926371252419923368483996981573933693189729475257601670515395336726770250895563488178243549281533738042004385171813285013730520603725991102342657727642134632766186949584584741462370395065216793643607197996206703759481545932535702838356452359499294414420278053014496751717306423275260710918616747457701845841700462754334066340300613739213571576828963661664470501436131448440732049531411118933379658425239948482258448733069477689677251579318924674161421813896277555838032566576963661214014535758844993603675748771312192841340052732940121905618702803921920244268851545346461185879191459747258351504048166871589716690061111408452374419841484257583198016759355735410056075499467130345893356779144112086906858179864539306839048648568090675950576145174098636640068607167335876989913064324955421290383143792700030040066834868751803250758179153877615136913764126596931663640369928109330354361076902701206981230694236740484409950140735082720518297628145483865380036399349298242252416754605093934602482277541480193183958275621105360756944232920191817772092370645449911957422758892882780794356889470039439315394123492709375995782886205452417674838532236338850240442062538884422433527819280972787995658523056761693680031351441582791251817337460424414900026667210979009906389921583749916000843842722433424394245109912128502130582320805937215319692864636141689637398354449735295470409403367710580637773824159482338636542438334534230111076166803436923267720497881973039922394984971157041387248102022326287918689089871246142772795246427701818614381938548587761513944281031782252201558840954871000113795713167361462829762256670765357266520649453479236991000090028776318477967982264170952991710445642125851049128448860346939399343098177102829299438141171062462554587274379909313675588859355681237525203237691818663007976072448026887046400433426583615696855306249312419187510294869935219735038151992842618939782626548964607492942344527503476377234258123033155576035857043185136072057445146867868901105487371934494926864624601463408468648944081668829549804289869253062868958008769384908219264639110042573977259588539007525740739731045819234730774033671354917847794238275239237829251730471944486308550349938994707880203283906188367537425641986003207210486538992513723991849044490224904211287369893852075025168942341373660375422695012655275927453113393294707590671301318632319499014242392146737483855288511656450191730099951021063393917151132104691717004263387731704175509565598471973957501799468633584155756793916958517039412950365308979127725716391154807860319798053669056191178554606476973779852538015370145323183373862329797696974360924096253179060406129384597871685149135865128468479277819776456622296296498200989285723530898048695180593773031935385685127196333127364649074215448030987037717922602665926546579150885166861557725506442518757480763111988541292378907024365646479480099886372973863323862312891339158778884201409489804201286159931837152669269585814929563105153977531428452848523495077558800266167139292264209852105993357805279795710117423280278741420172879211212824116649746254838164527232697852584159413794795546354856303654317643163713446740649067294697043065940873132643155580558822491317958079393533899031345261864385284662439329776986575506243284201238021905200032852709524558331751576658496092075342654405685241241961316740580149043893963906349993354387177131275940644269094097544597796107704384428717292624199974795396382786238730439835215155622129468536776093044730935858258819536341061551470108189602544189560125160510306553015703213641132167789110112606875970310218631485583113712731689706001582469164395090617197765387444461339333868533752722281695316045956250120256300793352197411635059911316054662463991824241363662446563594547870251788733871908975641387916415280497669828416071529299478158844201713457882508585643666458426310728206769164964678551868647946396372170359802593637561675037699468591192952877737289332203089263150753709762851233970972480443444359141512953695993540652616300190408496513143643472064523807330365281963672159797386660350839227139913604265254723791222822996550902872182146168620125366723196356567986660547807647915025167823228130310754835595582647610367168266043560741977276599892887555571902550874915130182229407230731335215798280555455016669669995116405426075493882455410542013192798617819183745687630436066573159235928046473282299385357935972986957200889907089030367155971824271226903992383808549634670218595922891031531167441644539991619125259211403912291737579139056831291626213507473700061999072076672411643095012559168242769688566576179220292251863652736759237591839381160849210425477790692233713093547589160624928882943404716804614630335278813105048959585073223903453258655479628639358200170800173977292149177884562293495746838453606404590230617791782567902040206133952135293167302143315568520235342258947665520554381493977143029036969894530290641772046394532389349070624188959265940826301612582090688886412075142818636423861546474046678623848940883641677222106398668520560243570091323791694561404529523343431908665107907665648005032205620099092018207062128125281722166293952691370372660205307971491644529098352176247281604681127325664915590933786216058484221721063690458029190214491252304609125566074484389519259377153950813900578627250464496181925138136013738254886361242655544653881991907083286515359779216974174383295502657950815849276001207908867434278757197014729315620286590424155272447937162862800529387773637448511574073680443760700818821154309596245613935385336092324690302708074252641562252436257537884892940120728755434020765751247008527681582260195278451247134800340994536962328835614526980671191322872238891650855612783790427561904727397009013655357502464641730280808012480456952470712086811265036469885864696654959709377572473288383957283259698853666253378964456691645609335606766391237968881706629941152733594571756629903664419338044614861461093124443328322976566071019340944860877614642300567769783537460176031977626558066894551638356236361768836432610442850188456369398443429415320432730212835994827216442162270332326927112748400148920363960926191437707161175902083571812715283122284108992239243735040218339354854175221647092524126189146629224268162343327206980044736989361653540232955194092761557916508456363023274679249706740112875029138697190759069602376149059205448206408777820988399571532569910948169049951724998378605238161838888202462369570293881116181939343920001808752460013013502309445093320974431303489412362952624108057490403029694859843337417155916961686301203145797121327956813274850700916850032828614615541511361656215115954089074602915983393755619250408568316297283265911394456319098013356000293788042525939945729326609491363277839970295444331533456615673609346383152068787062836964444836118281142057539744312625931162587908219248512663518774301654441263045238418030556303114697707316539676264735448204994082243032047783631912655469982176752265088336398443374977184090141995254591173056290592831644038475744940821555464370098275378807358957020700180133894096067831023421890322882818538236674529082498356046964586289014110149414020298274352408331972496652625917394733720262983162264232952103836617030571536272218330488723214256966801684113576426205036328463189777272174134983264862701987038927997414777258833559061275086416612232204382533010496395545767874683897111105312381671340158283716684903981447923168501552093188356738140565875750124498304937450720023687721629580695042057015474780782307060405096284367987450424838149517002407745612180462349740959183633942358896603549915391178381539572977032350166783084567352470336999410918444532745992585420151452352504419943991714297963386638860612828972077286472063691768670243952893329435522229272767190360865997762574564415466619182323468581158595268243566512944263405242691480458907718389202919747293779954014147356260770354621401734892516595612102811511397007329409973692749038986857642860497607545865943947302578611927261763023408555081024287606531256896219365066481404497485750326967748593097135165879826909713740538190713635656104536569866042724899799154821464319139693906326877639375596870119092538070804041151858165546817466787773891720132617447048631198228896039612325288506061816414229593488016599427272707482686242627126487270381128248509050737275929513907507700935880111897458430936770140651201544747692548353507063064986372829483062360744999353205461778102148143915334155458324791717406640922528321896938400076929861179669978149702343523857729147869000230938581004191722847263033699288802952228026955034273053837398446632351068976142722698377873806388326810271875775448721496917379307622176089294167684924735821693400000619158583748778495472755427674269999880798703016416297957812661475125955528633076239273549569948459317432821131598016690841249091212559933081697107190930032075065755312076972414820134706430055537031712270928600616504470378487186965563207101280277311386230688991924023881097531072214163294084876025028376168287753178114256358275843170576907074822361778342755421152013170210950934229852681745891900663914277376188295960972054500679432394756146565375516938325145755972566988765821049599081349055570488573793107261944432844303625268038521057559384695742429139980880074750220219848803045443893053592117925986979301227146257079314896410631135486592448327770156315283135194773186034161449599136074462859985964775451670201754874606540416619508594706529943264383100684512776416788980582949541598137146423194288452736722704644870882501921980836511301495757852638696422606752727684146662717278280133654934208817222789932150266930344003025618101154908286435262458967458815556796429982742299513615712005025748186114845457094893856693024841299514015652048207448376579790977008670421169155686794962746383735639222075291161965670500924539043622376902934730982412673999228266708955372125394201689678010270643400335742372017724752358150866544154963439839351478083108314938474877466839240324688589527265206034683750533819897328901951125892207025742163065898273207051419494500579751504345987858223357643411930049095480524130546479226189037434185199687096702367793503082390421176309929570298137865658202405556435644311957276751197352056454928510151259190161788904651565201140147167616691943769632537551633270529785250968599239203608915658634942757698099665646649432521822363680309770947129549709382026354682533883507568505252995526550093740193618975753443423790993305579566765688983903413202833230518428295711383662358396751030597068508432435246172403609154744538192572974631651273830448055705036326445626281673714926607414323531701567015785586703082943538435833660806725248713455731773894158123872987059711733682742595617986800661492853177539633068364357554917472354231561376337923123748476811204805682204128085870378917135347431362669700529067984078856673673090514314320568264433277656236866056774274250848003189769044202316627378050878940523398224472696163221553565423780378483717149102839552792137998763144418376965314951817080110489505841305888395423037700659382019217421252798978523288055977474091365990691899647528961517013858188912030561660816852044189950125142350774919522449650654875422292949423621928415204227377357563617408465865890781409958796563152734844317975084497128713807039280275706087502918989391745467487006114071288595709512602156180782458194015278630827012551668856906216293698115147550294864477430313547554208598646227505020668417583417304175038764916420592850893532412223361485194839204314198358547596671480396694661572054722961810479824736226164810932495098866429983790806281918836777125133032624167856415021383280822260443949021889730948856508986384818740731952530471239312946269958796770969197619988665473061622502852407723246247136619934916093708436742764410924911967902183945756530976781389821901061649463597496898364702622598609848030584463455510540727178247574478788585599693324503633086700130071216021197789790698940033189494786012266283650405972843841314173817928449535480899182467781947131862406392759745265361224278964581358182535491767326928072781350302170281770809574652635885374078371877524631602101260365108148976421408407419700449536816757096738584691069289646562725492157071764701610826808998600469949579471434783532369011121274096985072747659058878188339606436824426950936863486134892116268091729322683633218039454548255987237267881985610377217308645561177183315059275771146047898277512574316428863519333774153239058589167268324090616274185263516715323196926742759562215165971829601696391439877869735240726552115821204089712159013478866358733230087719795027018239891582206809261585300133883835530368982849192342094399966922312750310590137451995047042477229885422370669598168914466977326233481839890714464756826503997000312359121886196895152422973891355626405796025010507580447998699944778617693260765907582806558214504228530865379740048786946818030786792313262385800685395301750877947656341276713174558004074370502838054234533591781137700292549737670178397909382152689441606815548566014899616737823824018827106095740726986860852875970921727666999171274273772017127813665167916679830607356065689614946756993520187667078405020748779933919252397166747088329085997416415597459569354208756851897074910886043908810789218573799868514883876766488730993146710694346420412025391975700301803262089628952178849949046203812164830414625784570682670813956066359640753970988504984270395689789133770645936345347904232867783290778482439877766397594808980738814310372410063145465616438754788001892018338402429134154907286783480913748153506839985098178445033439003552453848872235177606591103867360367759044551344861898157525871365018071057689999918543189987538756262986814823198938226879736324369533053476596390113527586642835020545313045517488618019593887523311764667836981739093416972067028843037280600373389571728670676678435518999336990340961990737890139324116650943815094618506032105087902270711622376858103587412786496830736065536668149828288164328721326027980980568419899280627711507606927568596998713028989473148613953609874603515841909949996286356837699376530963778343757481397010466253194629602268181536688633090538427371624921560807477217990056592184217864554445387417038660699958626543796710431877215747786491081593854947165307112482074708875609400885769367957675955750030051374828857795206805286298044852798777108694178770836506179906434551024936229761691436491316754380834881680573830760930393746153978545267519329164568685254881193281760856556435384420509381715811819442883942371848221738376268930989032429764661091873194353587322071874424659571890185893261875021145779693928974141741646877575501407203844228808806550614824279298034137888136126403007833634652120551877278920884253393916001902673782754967621928592733658014550700077527198767597286462724506232700156472884928044925026307183055268495758578282891610683895483877815795634916386641596566467880897413603297134048901779174310571012931183895355435943729355916687812667360989896399491364680490168660357685065263437288254757216358126812840504582279513965574450116260098741133697917241153318000367781917940723678707503713189592595362244878693387015396202117071460098226616743092582153693884861425719259131650118490057565816212462090178648232752466600314119086990342610470192813398617365920791665528519963350300539002637892907780699546080292803412659028540093553638495410163090119954732129163164153739669687268386806895558804723238625622340815754693302919904989961682602863251124837508553417999811654113256632643160084572769072759980657219496950362649025909758926342754709215138335265472217269307995003748779936037579033383266174134744550044192653140902606106301640364359477072913997069882863462217339615876296967273764421142316709298386758894747955945794776380184498379476741819360137077168150680778807065739957111594762753578847784584411663353439933116482259877349745338071625009056322237913574864615141925470364670770668407536652333737009130184092766608816739159069786660582790769863157256959107691059079924803347409959633273002001679062238762670712722762861229847425613648682917049574233171252716106154530224281769521546699083345355920072431925454236548773446979659615289699697265034228980278225869253495001109454856962857674777079521352028701737146840618996745541684588716195084020937866735530197483940221945853125726276792502449181233421933779004164013995950494453684165869089906157878125767619976066050958471202090726984834719844255689179873332465138562505784968833258270637728586661965769074171456490770637162785788503045497670898743211865743466899865969967125807193576531208265889497816631307355173077124583039079563132838011529414752254983374490809184155092540002932946142970137511199316965054532314151921197357299415225279384991557382377977343881996812248039072900510393661050450494340955893916113141235974377069587239905586546878328920747179038340571398044968987412255724379822154782422263498273252095174444551732134304411706576046947869438434374040620920508222771305148427117930978187801442957719949574315601031109589577067275134698628104027189628492754703249256107256897134816187841235310011545276777666139872126091765593723505575203032404298368721460985279377796085848265170036826621379176798754511914359733913747233451431399427263349894781330668513889033829941601261240289232729598162120596118259760090350905747053427355334620877520760410027391274376062936473748414303862628055706511414215933377894420491940569464779528486831656999048107070957138026330927940897553656031458036724454572413217676505887454840429507045032499537640570283662749144449222017798576010607260098602175491080008801510599721056397792090192200941791904705215904202312510548987805689603570576536038205754403184838883203039946531485460790788650421534857529352941323664459282610521046083820282959691679909736161230853925778413679824682410339470289934785257624770045264748855032308294559300270915427186942757518743071831632185171795892574836991633717804872034928720867451956013235677930992172557045926931575148449251747875714136579083045850401772613703410396915280312011098604594388162883329013601313904272787264335378507058568508290310264968928413171345199977468296976620154549892746128293333551864026522977503535679937402137120147565986375460032175863432705973067940939739246887639703634011293940433900895067158955893619987543933939928771538438721891309939709987412145315952483403692283729037388195706545444048375333004649593533056943178791143959889490902793540955085543443913672070986064604395023519465380090531723409821537836686722444584452053933189404793874949867483842314572343719111967841140212770410661457436593162253217735445808293685128145426007591185285557042626911792184563191506002656453885803331274251606754078226422077820636012764101564053155521045746821036713787597508905904293966024344648221353812165757072972053517849249109859732626980744303002560251178483888031579437963045201754548069881347648574239923557747249213056980163735029604188373381512817224067613785179263224672121759462847461854754524089014336006016568297339695781076731229191398972775612594222255119364442013508643530995824164938418437599036830151745226771650342446989890223503181191562429136308346900906544056988461579809373258039796398674103577005084420565742592418915564177648185461290226900435524533139519614291210972988212453356541901504097854488638614110928393733128597890019764347726210364844061988444761488094234351187614043138768849061969015029598833848322430165280024256746265262818228451894981841517145408497600655925899045661535878358523334321698955473030862124087055203956202036773857699312633250417143381906847996150794331032271890732796551919354478655951176819892842537720846288450580260338262616091667370840723409513705949994453403012565675153495505933439040200527389270200784791375453167958504642687690140442068042170149150708666518121113076889417608744729386289789428940801811680385643855475028579248354105908120754348846218015435401207828956704272155534286103827763691646084109358818901278211549683419975092671921090572562909219061256140445776152439448882338901302657967104517359602844749915525283373542318642909073997672646248076528628848541947613239140350139860545228468594948076529027294502113685316936502965106536111485599842319858186151245595497667396769542439347372755998509805791861433517400762832783140862324826713245640436370870506116593809591783755474318685498906096035969031835470169447581969678523728324331592899849430910451659387915892116049808851280034177401241349052386075333137478149571700981285488731857688000712172685029389709049179490146895446756000531454451053012138223946232620581566579217129507121798826209181015395384800711040680628657818976274069085688474336139878339858863953770555976659648839215473021470128663005433075359857633078168213800384348936796296782661322691808945440718583690762323400487739132799938105614654829445139674200321607580619683662547113878846800449913615069228546549792707575319539765675927500771226139484626310781631172928901071177280373642864646288559722322096364484789314279501055501666080310894159863001054204597679265137031436138859592897002107631824102701174010882861254525194625113099944858074333183383620303586249783892896829434665365403687951358682174218376419400484589992139728466733535851195726798823924042868128034168002736385626643366819823890016283675004618215831792768756014049452175420681544904640631593975423321803083620613208552817379686394739688091751229521453532237230533530207773488519017180352869771768826873699651199824984248393727088599348942658299243672122594599097553055763778572878976611447143796528907877885540846857282545658915014083197916816239398266235274806006011167136775461664480236683695794576674004970714065663686360710541243393631518371169460777461243890099464676900917841230032101989877532531643433121654179111298964658601042960163967508666402623136041074698471382612437414610815908908162915172018491531434229858236723768209651325202738948769633947198372566423909788821545690068980072593399688296245606135834424723973703370141373451443673708060075586317887633005904076956152470678565070898264039264162440434712374033517526698793983056928506222051618170294426065334490485152278797399113376487530315770296596080568293208843751196683702230690313854298767566133300150745541148014786947941531524549173639851653506376563908509166925362268806239150707534760279933739098659409046642952402716502647666161040009661813434858433753872137939638495234717325237355587465672518667073533689987184679514523890065614611525047955718538796903632436029641783205959594809466618190806636015472443249173332729420869570672510888945195363342231564438467994918557553942852870145930066836860263775084808484988119413418094859522548421197696819691397389786437444222711737540607246986440160322389496947832165152566873022546396310503137221548136336287831998371428451497723980235651077428045291149653759065081171376128095481068314221188746479653839807118381659477573458858318592631356599549260187461304700346231880162569878210456168561712597193291804137228900069608068866396775360952839826665523614650249388892763732046923085005729393322521371254336688708640612044642418260064047194810225274061914404120610681405551025083041327321106462799509656244015547668452052891961188107456937784363851857491867586349199083587321119128155426575640064400619766843266156362277722742173351030691628832356288643271562861735991334828479393643042226569479336403875776643031805004657208683185067424020898032983047813683865734724320211572340251090074070766445866238573472782107102775587911115942739763529383866312125686705797574568397367943123001797316720345347031212322552419436683235716556578162771559481887104175946067739633636301777805377260513057419461914531644561155354296476182661823352455245670804202848737049056689828398512376135684374828137348416866055950351256562407620915694717212182506892564590264037457289359743399972909569593699867875436729228218384572094992743111926159803836957858671256103366773579072812465688017028043960571670836012252943257531930477660701896491216253031970795163592022169384131457094327467117733423998525494512818776430808240173262323323054864805764286441501588018181548760364311439246949824156779252473058058256457730920196049545185958948153220290484969973028830319722351826948735147517693855898972995538150847781684022349420470641469738746205654735901647985930464136411803475121053895646627502568147057784699336665904270155003220291001573112597861772908799349927622289781678136264669330190117641422089313967893456250876801869206808862402719349643049982537677210486022937832206204355760960376286624217081040672298071319386445999668564884775008477481555820852053014497142711403571481824034741655148844403476643953889964217834894287223354478260266849184093752219453397141379992568883880603841313226917403503890895823906935238262894380839157594602582955313394828642526553542194296049641944755739194302788280863654746086350514166214593801385535053650575235397662447204948084889269806302964797086894123398047020451594117581900105976682994044713363397220265727372810118486218123894974459389018243592838662205553434589329154298205725594977421494333561506063804095315566154865557688525317856307537033101294275507223655436463868120006282960409547446017279034804809623858707938451420273290777009743283923337071671670598540405884873663839975976729998260579246427068418408976980573402768055589805097058089662799213377090081541895427918830650835449708594178199247568726973949445573958283467737692741441717952737535621511562481432766962935855461319998681191085091995893262221980270035503579321528686865371012945374236127613885411249411043770405717806396069308208256993295673534990615568215592244540951200847255355832104346908092440882158323083366637040512190798684545703325979662099111967059611080627781538995853755424191929918387554242233325352092697698083907142899210137962156189728462448996320402742747339367825742158608635323675693587529904759720928617494461192197563565729311829899762083202113765238887509663238524540634949796113835827711453998605806231081265566459462853120119023583794176281434662323995369761454529954855864580231050825092364418834784921550792577515458180685468127769955357403931014655698004470025846234470236509489714278353076059317445256995506571307143258041824197417536485273994907785992184821905514163584270253261179249213946323721018082328509671154542165883489981363951133874905728566047813563721270462342414236728177570811564729032850492247414603847842828499992032125690779062543986143410799621986753996412583050106148453386905397418469518696505981230665309738297362478171574484841804788310719862794512729729007439547826652994183619309846979514431143869227292112163290286660731905293193966502281609089522466021225929095324000174234027497904612094010951233698599611599049674543584440989776975733957972306002035913778928392071087488831033165668194300948101156062818009256253220061375703529203568614830042441603012223806600057639726995087979190917760703192364944657972354493261380349776335542724182730483584906894449142466620217969983367621054538055268624038146128503882250090432008399223202482724467332040258460272299278553451462485991174600735110404096205212731338028048225212399441327221162231424633873608713991253455653873788821370069426046962569580447198567833589119562083038446822549582747666247453450468128485841881734341634695438803471832073955443139514242179814025144148463333487019375356526723358953995122874966779184413586340985697879892227397373707706635952621635266999666119331267001558003728735970770260501827686961924850136740213594040910729941835454093976055585338223712762222361263209386014726241232621489659943694969179781246776270873680080179582646117021497232300131933683735420157684839394058702250877148493585241912368083327427677496157933065564723430579031168446024410688132207532788739800594582221888983813799308088693528878619680458783276498721242408169735141437722859322865702159278742090146248524219517823876417251626050654258638614456991220944496898559240778433179923546676606655946012370566782953824655819739581073763334044725437205599959832927276112734007891727463228692341501327997892935507532525081981463595197818192679311338384557972530907071507476747263227649174183867820484143221506174013888044739042049374282650914260401081052292418898971609569225347730724352093605315224184285268389146630205963080627121353249441337739381021849625241234509401938957357704962131229982398376088578302975058009691084663020298767375405356701304567852517559279085698267848805063073154511331170924323262011429320579140927212167313662804462515771704728174852100979887298189970187184343672394999249571754886713015273230909335741891750675933265053784739084874787230734096153210610653381730509633283456131105360211165072536886937630535296597622976090131555260976390826614608616463545697947551798732957459758601330495056181835223607879662448678120387715417111274510968789550304258839456567212323206003697350997154773784498993008677959974842550974929311104270779621149823558495378417670376165113527985435473572199509725845508558321941497472607435604304935452220613226125322400306895995497542219758323665716912742288538378709600108533494232670622960317234324969066192253003315690884226968076538351400843291647250860908184278410145217590062634002057799386396193173359513207853421830232116264974791861243949903070987479310283454526505408267113998184401090648346531357408671168031257963070834813563493582608805296626528908996938660546570310305311976396816405662564334769444047451003940627666118733495063766191127763730680237115645758333081166924286965461040829173133662961242665172777456686527227202397083567044776847745401312660204439716165325332848671615376805126791345107180974654999465712420400899116341710271836915828284596711706644707433002212467920750694586575373936273573375451052227574797485954439824743148867916942453273696701299177579145164547195587247520941963162033427461774386761489983683912746182792764532415859594375991801473320076674387493694200342924225198534909029053768860332150510948166913739296937939893276738350911184085833236440329260841123170598928479433761388517264827386918382600583379450354360258572252534232645058104367119256017408613812309167865655349314388263090586926369293280011011204404515038492241397515025029457691992775351014644534696479802103698491092039780808351929104555371017392256108147920275395267890021462394243043070593005571387598283610406107255502682614205476858908048252823613509429619997513364356186166537716401067861628126256466613567175969516785369291275686288098035730191415653100679958869956442613745606449266140777020730602322539354295791929754917847928309354254411750570616940308131415114726816411041084298729650197600150755959681964653000826053030778492963956960653354452710037931286093033451920112807926013536681866655180006884615432682596011319836756830894622343793750630960397830687627074792912018597065371964884258127045397613515861821319501731051751827166412235783850537043371812079142958564924244214306486804078997520138851431286079277456572947559472101762764373305053966779437451687122812210399643446369748663685459863848596860487563382565596480182405394650789714347279595332525500299716690198870597346725481582172121019087863462062653818637490491652995554240496497642846014463646465002110816534411895112779754235267580758161755609492611137169744081164547544678282062399842685841309385035789091106063057146221511833810904416761537882122008503600155477313593641526329165919543299881116662347155142037109632308803577235935426291046744297020971269342038193319058025694018805659903658281870518506571959777677229278732428766680303190946778720045455720209037748057142988337332648352288871925736659118224632793879734368904636078175299229624247883460775416901391184885358334727844976500995321400369298189004429049242647556095065651558111955078347558610492585935418550912627482935117168490837422959626061781903506387665701008838140696859689243668102282676355978803552914425277453690800234193885754733757238798605969483631470834940075364079026838164178011735772875903222298442936678734632444361273073434108076492198964343763807375540879645806142734441739771702593108884251221405730201128539256211295437907112867551911935156421474014150953330655827041951872642517676184198650329281884826427593016909196873591103862799168247586459566384194160564588794385666515293547083924220465531517845906584058811852893227646930806588721562781653374390668793000679468679332178465124272991493815171494563334861212907622265146773714178545965503944696853290230412121611498264665740488280378272004036625147761031102733748416225452588594663885280008853979590643305173106916464956280298037175407843827186381646528249670334070950779399929177982049035887061929899619992451857068054774438152926433696550110567262648363424783911073384119950544828845816790487728419507097667128102323419910958339563139374327831714190951770247421728099277480921628558702189866083979751418610681932595609909974019967125498994957977286575782369659290031874880473212378647771405300643086449093369877118571629715343016782481409050384144522126104127614336745860278931719218454734211418886589254116349067535612435403076779018654763817066957141770986281504214585387055849013510659961887482131821302765339538687839205084028031772166094216747573157825862996804792989987619994414940768655423535991777565776853042843838459242884134423710986892077230451239333380479049812135034503040855269157663043870257143639873344384691933856564566761732784845343997338587235215129619607256013570557555017359524737854718671465084265275948915060133389448639853147239126710985909269222948020358090862652776157309653676110279750734153682385025582703916523324592033843883336910098564340481443675757491946628983159146939086260408047088135350234380997783187018727560781152355737744796982638650698900219059819964198672486293875450496017442322276555196667438940431144405423272252227829201217168397449852209066821505357071546186814265759380632925698717442957363537442012863615423438319258276205917002715250140047276436194359558971607189439905140255777715923522244649928634474691625876852798326912004456744619287491878579500328987362091211488418192766189268032037279911859573470937654133617251113173218512624525158380855181829547237719291964907165211489708734853893643769290755134639908599046971041011451705196530698351964411852485805747140616730052849007723716892062328570848429455582091017797050871823780079041619381192170110836689462638263604515336304759653085868382767564913472770364225669620984267388221526323884077025316893308348693650545405534158584751951108819943422409073230668881601568871090221426468545504835457427201972156384837069002456079069697908872551256609794324842615758503436762584357867745212296898232788880968255479900372750242656096102790587241965681757403362390210318523954943769561770954238261266796966699136004792679026343505226286113833053743248271346488229447614202553136063991404658965332228848035735747001456290622358238830506710423983052445768507042318222482386371181939113086510398236141954707919101188911405869945710223189017650998967510870976710663581441302518265906993107182518807903765431091599615415517218436184868135394533415782943743249966436688601755337762016544837915284591862735438618422727478162195812595565428445016242014769361426670370214108524696990992964902301153598761343214154978847272291424597831368524003247389827804849366683317328193045430989189160778603494547926785291104085893267104486278863000569347937479561949293975436355011560629045863794680022900462381810033076466279045683090328616879257919489354220317147419385645389498263954316200750003886592434405783146081014512134055743059679797480023811633435881318770164250611873003773048101051964257102036063503974330314138086593862518645957478590657777386182077275561673960288187535838679718775986029325465129009782890762873992858664090034830206979116791232357889894004827300252435159651690841765970603928151688924242695689450230429874551283023551057584816852239782888218248199750659184104497362337744111964347629028616085090158350140703469827524260761399212745638703106595739548032479015367101870177911436744188496119769944495857208631486387236760472446642429419377247961995964022401880288839357499806920294396940891263185754378000984240241567172465594354372893332550503972856800935768648901142181219644976627824566294686172213177236325578234771090947033946757110912905176865431253487635279660116196771241221888199420843000172840341468822499136699261972722785844684125710796345213836632437989795456184762920213396655844862670893527259801053898228921247499840772559794167997056751901580756323090361048924374486538204906648646935190374175590190478992535137348891078911953443840585238386263675773968902016881232467159046500788255547949045348913941549418961947564184406651310995629851486754127509294773044827534534821082722619899569992681351419798176623300280932139054224510681162780268539536221638091329362653326777313657648026063246216929428585674084374757730957559973170001438263672830886969541899361121750180469821903360520010170432686480873185854157443894234562365786618076047920459134000330386577573609875251705438720658563667151709232608326106333134862697450812709440675448788553271153665461299632915354101872287984924327887259605172154857715188538813719780434822912629508926657737421091629735164947873383613963789387998566347572768321605190168359254099519625207279257697447692768477313022071177588216067364086849231431275493082920092972458442023279054857968742843642168005005672229188466452619159865732362025585390290101559121813239123926502463085038497846187197044834417854215062901069537417108328365149091591905258615719842137409486123961708445408012538936761004405279501665311402934531191439625055592270481397173749089079952652906047193571343251382482645186371482232091029572157248482768911856949642832048310235257183241483587894251615474754001543995900077213230738287457911474774602991878356910637109263763896599228239866244238687797503241140461108359136279189302926666281145704038701448447699131465177751202443944284643972838241549773813150356134423825210900953706632930650639322840202288585105217087247386461191146884175354889448109380801863058274820734551945490079617145654491211761543773779097206191782621653943682698574102895071226412426232224320259292974694351086295621684056922438419697757596181022858084181309013261909830498867667188272960952714828028261697028246807153847289240700126494925718196252512508806181267182948486421670031598660297590696993630870277543835918653695998496429305833856951083950805496288105289963677316651742212643221808757852401342798993163997666130442206472915064220104036286574800296531189056636900875015639358637106788332171121163990062511782599370598658732061606028770347149463051043187673539345550789366321634390185714689069579695920444497173614981970039256847554943972345135908504480638482518329768875341435731102903861555347186183128067785213912548794908031582060555205189524877086409334734535786558328261380308777515733776243371449434107848774721481668207814191440077017393190647537068284055987860423825537590962729842120965046532887113059653850986991234307326741591020793219614179921473171208838323177360243736976110677798089121949323014455919103635749680290125234929606532255575018287947640981189048536222709292471329400297854943050190732890466362890687784246710552749329874685176794266500308715023532537195288963468004611332475566385773672161878162969056146360118330262133868200107296379354667860726211728594868537197349032746778359808659612648690291183605056108126398558774957299857252698359677979269268095335186985935931235482940285277946185822942458624431451151844767986204161306064896993412123823567137319376183910258880422723114642106669134132937405036177915288704917988429530935517146645699274264573986356947311034417287744713880468141204396882638150942161137534848370036121230388117134303232200913425565214204527000266348712406364747019779032015538608816538969065107191545285423733362167184780002516037646047806317915146864473495973780767790704725615441395211792181312365547622303807762659461306895542074059089340393241221871637190687256139333629043572328337585024822398844829384709660456398489325389305714612702380333740149901418073283828641735881190721067809400329682914768954558244956541780969967013444019634270277775299677493910968856323316346597042071229123024850344739034281323231517129157061722902032181087838578403228421412894109574576363920844443077041872692405150719119604011590404683557112886748690140729144218935903568747303832142116201211523438610867002090506270172533353722300948838347180095145033728805213928494997404513185398098542672907991436661842253869884202361154603138635754388518694138922960125432321738304823730242274061350915854207046844896117462604105331816786618475204857161496305012635698297840260519913900112392970284900062861774589530200412396391476100394625212008227066228743537351215178452522070933766018280554221605062609756921435032180786289137429414112292246471422052512114948878911880752167024285499954771761080542496618660250653197561259003643765552143815031228720665575991301573907309998136623064519441298506751037260680045147728999390056043825196690644211913365483164882250280797646277870203665338787800166916029852973476899409113029986791254835478252582090283670272409518919862453016477424996029359872946063547128170451533686301247544215349088242368861393511898475666049029483669986152591750893171447029985272554119896193280641001373036388744027997474589456755312782517908762738052726609536128092293111666428238161898418821578151148476921609190506872876218717230449181057830075357869685400356466486051070145682367615482348259688771422715145139975739034959061338042208119117118546639945142492976235786859394744456505233463459573633423775495237195948668018175763771321757930667206899551751356019273425533683619910538422681199465192778909943781757835288946789763937037928467604463789383360502484640232104741334532998993092430984572072614428131783648217221886204560277535195583143130719578456096714991782823311525747179248684873771784158808722798336414676830567405996745439677161381957316284370590335872365096626607484301399396079123500203173989273904758799688191118953089584411977968674136246168718494331261030259240769061017733417324293850077370760588913274199694417244483410574558895240786742175115400085585661397586962733673097290154407455641046818982194789734349465898378590162733375451014043680251925895140564009758679595462825955765539133370559582203379592612284153337700925352755066045964625736301825741320774528949338434311687991444769443579776766859112273870013800291249748527020772241704111281597966350687519990634064015474215615266610075645364010313732971346163149389765679932321196739813964569718870032440080367430061369241781033569490939157556172124383647122015255190800538949450934980968456267492852454321821311129413745153616376421778793222107819744142021431918162884413170873581075276282096931324194755093904660265506030217480570269473679116071516435069887444724091287159960228845634601456751134281486298904015559280186102865982550124345875777984006239176346271915923409770992783441108268717144893131808834887697758963942111585586632014342523929190726518379633398851448796495708448923918450447424660914090294072182101783689768856862029866333185859384587724072408696806839959712498988543679744686556754084954916915997213736981858622049232598245845866481491340068181260267912249672367689407991230115507310684181915624890680998376772620423503673848845547866063921423988999072294821982335553646225897350992208091877111663933156716411581904858956840450100976791979654759980092459540575435438374275128381643558224177866872164170699898122095558872917625731717405588448110017045884501973742249450269991991508662059008804992100885369855682853642345144560901382182726696226127709456732527528174959410039806570312241528705796130460096070584791839041485537661008974361754108290114100406421281719650911409409461604800447222703198017240334999265882578906248374936874332101913791106440276624792194903298018801052706489337052119497772486572460963661732000687473394206257982096213075751985296359848524934672107635409682850290860960994956229626821671582326983417964874237767835895507511168900979366242246693571969533359541207955597830253219881889280965029461895642328666805110942923418448615876634835120144491597530270672174142850527794850064595241676849127470405847974445577472985451794405250192094937398779893275507812505983401878671659418776910157632701958190194921913067683518737376968610688854195300761457483414211975347872145553522099763940085257268654708059718110515915893561006500272307919330155018749540659646715479376476050109607680578709509317402857212247694099995848102251328207342428293748184314403625216669704812161782133458343581829871392926330149655335165097909272427902495661255662580313799769740932108578676034681977115286377675374896869768218862035762657284727552318040962938649726897620239221886224630755655052617839616385755355218371144683395493771507948919028832946145402138321984843928168921573716899573091322324507916487336653630807501813053058845100912871341778592425242098126188796362976913342914666747785601062944331055920023379979918603263098972730669795145884865422067461310848452318271370409403617424645636605362367049389163800511649914185083045924444990792097113022805127481988516208637596807174059676677144429349711295961991759894180119035968984189519739684927475573305532413649909011295432996091750204180845388506704446449786336982080335032211079399454471202929512703580047922767703592260423257065703958860094078172405849021191488207536217341051929868813386489652465112308938302276451013039783607960468233620504358958344990831977103398260366954078432163550014522610576858494529389531575292101948997481851697829883309551627854111343758618570138556293626064210776950765507873606360866558446423902682546916759830948981761161795523114515297494568362660806421567519858084451630047585152413012074506585781549084947168785085482887567681061692569850797694232029710054887755708931722371559930198864497148503246315171260647335390567355655429341170149514818053231641628665814250371524455114048091576367338850825049070920089028265799832200130650739325921498223124115906982879402338735050909535700307806040052862157751297897055741952846994603902255169492103435237625215532635750730232414721077012805159282544263577863198791221473187772541000630156760947046983453877927792898934592390293704404736442729586784948564155043739786131055634357034193473533168963880904402126728087560077850443824299817999491484732049981427569037784077766620541545389306963082957011607716044923688994501389345430205458226203388842577857259072306500798919724251154502681587384504294192425083333509191531968835044956446233592581318627636927932991811166802047297701868860561078330868761314111007070961797972734237363093259133047246244387914879592925218756746713738696249799782023324312089234956228204307786668985303013256390343935104206949105266727610619763537245697380760098897990763173368022533139619154982289216350017443758559886344286814669226530704654369743097279790559457676708552828594521547222986941429261592558741329366580828328541949363602587972579885312947042121625023527155704543558128068385109899575865969425918111486820357195489335896777046305115962841910392623542382091593249516671571892672860809761289030963273901602153382568734882663952488320676458739499240896835999424853617509492208419472103836383198125914519620976717987241928086527174630143049928549073039847279388563641624604229357013092514734550309535133295310134836958559082044733484144239008034855308793248960271244038838047498966041054556141386018082283161366943251560136157305506652602094032301473187587870297060409582168324795060352321522852349214380234477236848028546040249937119102491138477311433844297089990596524450377484783842440737102561204031593470258983345585433925055479870744479927931288461554808860366831233258265343985201671260956228893860323172691965994808461784640759043643320816871026043697905336890494255300175223397014916326956683892782291579725840728181128867797305874777940866328957333184081314782260760699193024369548272430248873050679550879770012604896054965928686448370622675625540988845450695766572674899074683698343606714261381653823654750088306048696986027209226504072884555559212879997623334317487963200808989221453776333395602010601159372362208246097435233042448911078599846679788085728834437060657798006998587464683823799912997020351163281142608926699803178371234687296522539453033348144835196518908198428372309157124283935051957102303224489288251495009003268816928356241765871266427240502623974648814086882216635936940979446509252424162201534336382810788722494796258276965180292437892029071621145671965994893995857964352975393479633551129676623164882054027193651020853434939241570700243282692934610233528038271580405026236281845277269455703899422078508627308251199271408286268977918688319532308686307190908945335248559473600037489185206179397668865531243357082412551257649404755669796456839069612866195889420415075386718240920575109236041914399028946531753744473926041941713847795438726126635609880592682088675652126895917810826407629871675287677572617925985870875080587448652425196796717914743019146522267228567647547565145504069991482812363145909118933836593219478851197446686074083122017970251720472564817713805179306941816073525016690394859300885512138144246015423673040784100607351684061379708070415441434744264294184674217301929919024699124012459784209014131858709234894162239704425558221945270037567089713345404030356518987448574706924219314395804820261175961609988089722237894567692945390684639344266209168185390455509713636268209902533249512221909248583943413400724848933563667198051759724859629128318969211216715724494561602664875581148529272602621902831377587141579122292801153928123456628157853473607461501212615887337201654338248268019555500276418319467571744690795083350696741785810865113394149841453341549747727507390037888325360647461008148791408860456289126562035232978101968629904782157016545360673951240333084785386198724733749586051755035816427257668564424054840558161415598241373066979772413128234571751794812048066647223148896233165228495141361739921259195737172429198409839888061284842944729037781336645475045149111577387402562061178064370609317055340233227116323286770918286559433265621935748122848716764383330012877088432703285613937868620319365331640905751942506923795189001051859537310344222993759180443539031817964398643977786408134810983028617601380035736338937482512531700709726467626825614723358585011837101709024749395249278852544387256519696140264852917252256748859820917623931639259092660837570780149047135104428299877698213987498459124484705386740016183156471349322589512234802464413679183609198516021798217670436088723093534570243804639028372072606875017060930087589974105796268503342186455058092863682074243556574347649111783323260191347540060080117119415271780532422858767757989371676525516102312943764286751026639289660093800839616473300970661479827363886417813715545365694755957404869209598490169775378053584785445180159389918670541325339943639198057124879156123422001782076353385944553547930752885555482239866578448646763466938005837990966576411804419461914074965171631226823997619479397653561603936114403710501835196675871419136678552830099861192219870515987678060805382517599963437667075674060594609987687369585294850657712754560339773737245002579000029333845618224021530295066496301460515412845239356388810965809192431417987336343658210237730391579563293042811298258919974296326740164667792211245023492005971043950882701889449637786944254932747902343909511361798495892304511857650828840971778097205780800833581270280331909861558402679511664773157422182473426686741241341242067922393747201796678538277573925950208051841188216775310543367440708456767336961224801729633090150208341067094603147865296040079499385582599365774298593251409014017351128461126564596079440368193500276896683998637661414983031148932014584521305742195076782736535396835352393585909363580848028087574916327013217916578551231773932693590810843811556851862283741598328143251750719026455086230717870122852623707907811868968281240719351562116659562339621281683705855934463988220599760699538849358023895418068243445354692848254397785515594889352471617859515249816080908808608643574834057578352126053237403887186911776946340452515914302243378233189670437498291092070950360385711060317095657120106732834367922095239080313903695426785380497951322031123468855933939083976845492842575454849778157286392297349465426588754793748302317682505105856285176339561920094195143801378575529236659460284552590945465656599718377535817157587762828274967554789097654972673943639793761175679230382614127772168371804541631796410962313655362696329586319277711033474520258721058319947543957335563746126403945833032050345745257653754327462039391992209711149673699600694450915175189401156625924982142049425345909615990024667857111302643375022270971783923570496886582000878824176625099467212107648580958249827508837281556609198902583263977636708289174997299721862485891964373196104010828049185495659949903615105463440663968536006707326925630219402435435441025872385461394233348535116292662706184648209623256669353739930778039375228620652584714249493476559269478174864510389887537309103299923697404751728049395919084627006424950864783738570178134882141976698432910311108747373931395706483875481425381640355566700473939869442990781776533662976082048973328206752364991930665101044724385458344992418690947621622766854095842569921576853285454668444871652511338927592397036441976877886851776588626087114755683177909807579349101629512024674636952071596666767984160175975416644059379964508949432526364886280815378933067476107200189439031807329891573303394948992103139093581578986236940843836962056246107912836069571225698684201570664275067524883394934501278628345328282873850609654847580788931761844783344681114640411309803038236597977432959254697684322169812562430961174319373357258367389701519792567089514430634511963310135970812281844985225578571769946992883642364378847746605518435218856888486205124686140314361902201424016788327917351412055118504041681855790024280825285582309637501935584741733101963490301823542685570775761702977782034074079462877069562586454262467203033183446956335887310516096114939260243733639226089014520821078916453015706230908649407574276306011842325498156606011771567381341275983530480950394732215555128454769040376339955147056575783672386837425080413097267330381582419320851225491145216241193954570665423684252140321179906933852789329555450237679727513501157249314399184043103575234421641592830328425001897264585512908597424675786552424161079653528605942014963003460603592020066932743186473164979455967033258495298774009844624311739094411303537099942818247404042228101147359815885212966775441658626878475113885050071567429474091461645783541598429102016707810206375059181005704932522715866768655518470596736152188274709646257204271270275341589165663743753398885426210910883958809319270639233589446871396880171393396842258079279987959620258647797794423761609852203776247826406650491093032647839558934943624985832856954880447683282467287631425092998457500386354976082221454538476253129441895389092216069885571518795611271868913090164100003884012339793561966302762872285209476704526124359244758568005059931841317988636336214904056714864365927638108632936136877637120329306052471770333001118275915185781785309864796534976176392153596307056514561188842568810752656605825577792291613142813120134452867899712111380675150461433107643139552405432353729639679077782195760286894240539070047179479021237989596722774479007735078807312637568864939169372412124166636750983229209682485645100087859911536968909551185385612102617209016518442023780074803510214555480126799178359112317963319317521286152908978673305512844393541045405960051424744612632325573912383758083419338902713323710011193434541811890909993877313747539415581448302825552384887944943445059388946104977398179984952491181519230868912126746477199045111571699995045005145037971609428754263116678510505969282359407235271953040184174993469104186969748352017332643269994042423636231519902926579739859442352898254789339979087547496217122669523888911432560856494167692386659391006790315442809798467288113237269955524441856686106065030946536052333285015111156519023633587269050288691761480406188407191690598574945302448907684942375955531450675263275832149458958298286242680306710968236714969282864686430280757215649394197351611272657250375217550028337819162678566488492101368306372746998450055582383501112663403840114372259861015708673394199404474114924312376243896517741130244339532089932371326260310771744817813455143483002113387940529411929595003470084928218667161750397863472533248033713067698830638514555005891117622649329593666158535013729300685187230574768942274202369977259825555868189267436772827276025419116703866472659384282617309223818727511921259490272577785881531705456054305809512553936205989876508768398044754360939977679324751402383273700896053967361053914912380726691605627023960778088145070038586800450699910221845210387571120797881219472971771495386751054448682306006929131654401746326999758543528317692065956173444360426307894286222493712814750620195154450669186181139560026655440224808692189304106690573398176733626121737768434731917573555549611998582449277424137198524363758473313724950986816194852103133089848705631032256329578442369849942332072637151345068927997780033383993861665655659485758111802843363266656361647894296453955365058656487169996914630219433160729933554187302072242561163184615136526620784494859935981686193454972534139778121493959494348777916711885932548087391989753734441925240486544514954208029938652407551986184725933087179458870466164688839902779468109762609921765704185757796946555656526040536093443785991256476699253567175804271039089669048688158747101546497822299669502384875567937722700900765804789270363256147000504619081162254237417026270407482552002584135001802334960145766922427714071761036445291550334620154671040637945119725990288935882225778981063654749575403476701817036741718153254788077885563110446980323929185897689909119189567143502622003479422306194706530157484431732392284008257146377209891550832271681637545798852043068283880308518284517304408636458633042560302045253615116114524156974481174799977184544271208569536773145832168832926279978554120155829871962748280342247773826299647771717410441637338456013846503422655163417375426128184553877476958329700167175027012981731200342022520815743667155540229908228500131710124976177764392632541314486161526383924236273415209262758639547570091706822533900083060312893253806326100414374260679317484830539738044708142587813777167118313222212887836971027297420134209208942765947518922941521478307318604549604219726774684850997792016460432274383293343038499265152049501001166002390971638100664062940970747674452824475390015947667863133115831230093064441022741507748408226947630662645193665351823483838640867489749802104874659727333487106523723110097328524535671594906715682390375233116392190238050633516856997970259755952571341122424264781082614600975664312318669204300236418638224816048857379807482200109406522398810279536656486659912010425513048550923579999779900387547266588734941000313251705622963040584431995867273245287702178151440951682565398123430043460628208052540918316930100197139754665910190484010119321307479941606008027381896395362114316834225334220460245812949762448201160817012913991247206185823769402084586044439604926233990774819645442496685764843362878054294274188484214075420940999344890984053630865576999208680792707328743423733401937305051561178411002673598043255533792360512517407084081057772823367244498210365741991557626706122807876193746273245110107773387556339676980046659170512453040081669328164489547978671116577129490726083790538352355477958442966179810596943436005879563299797099628043241946661611293794494390960108629685488279149184593223392762447969904885925612808886101635439401778449933594083543769556961314942875811029387721190483993112965180708667343281779633088803858029442297654135844736787277888221509572296708415140706594940288278011230012938625691485967044625805903756275809800422539999674294015352237379455077630132553372462063080153157972592101235821440218427845166311301898153731080093123959186536001116403825111794518289420467459655588422744050669534171234750426250221085125053124018510257083503158153568856185384892640534404575256038134617941097255268460130095638018832874855890816062452207806943966977543502291408804814131863977640433271076920564612719740137061011467859365158914393043577950220990872301305609566747386994768305317100537201001509006594091574739564968099838019308440770963691780509143438965749264129826744749211186911375943929004500980537948020360123323224673325091398496356571869165150133662697387171698321787421708937599376052218517434545680860225475716419274320009517271615214887089084013532690673940661529247780999129704674054499960720675392866440248852796428958572088378024197528379741606975969174650855237898296264079868121223127951423271064997400124972647879406953014794941996586220896298237775080474448385137984371910159146635930457678926683707000112363533002847234754161773403548041265441413328147414012765102815485566685573390054688261755240503356907646875704858375657670110495096993504456405492437291534210885580322870933571432286479333615084511660943417990641635584383891988779366532521416853740582994716096465547260165948649540786188216077395973030606632990031948754282638458849256294222149730676152424737444871552836609125176600831104434416932214708943276769948976592829606890909985717442024378403997107980311366895161089401698210247957301320005960404384941368895256151930212246501916554198641347389974882484902079197656894181696241333512148882921029658155370779758572150208315856521789568139752410291871990191134201286173498618290737851819252347488395788603083015792241333548019654637016950506445753341988484441245585897265846460214933980081480814281346313230201998803591138257420630392102403882521470646902858097246099643705162601785134848081518991092469516141987288161709526833056813754135132700643745610004642040480547398335947300944595570862615728567297231318931530663478866991723717253808886698866477137185944816990887458650528378409896003298620371329338734231044998849891532262332871429029560281432340414677717750635777410790451832778248455452500600582780197290358110088010391138411796661583274162319362393424747026740835617325938737824424607979554413373933787505949721570316315039266001254565295647735819040256777788008223991493368891912807554385229046083406397177379355146389539547422273165992658088942001179076156313010917756935354936341917399989115980688986484384322763433806388920641510337293393725025716842045196363220314966617269299933856237693355129086674818934607982308378371281536809427093978038789121144047705182079525584952220459872984832673508904646513051251515040873441951491305967128194471277089210640198747625702564154123471283664179740653733561956057418702223185675702613722806358827282840377437819221114040100646476058101256110521281689301384971177408234156490696781829817172289118255218171258470206445273606632474168663676784206723437128688666057693111431953367861551856975070388515864790360909682381493748883760445140326406661515789808282456276020704807001962274295512998142646670234056005738106552513947463305236846804288216885685308431522649833780038785200326633055443416754358971188006194331825202799398232295066977396765601756927485840713738542679859160569702590723928123660836151082925940807167135894601281029455802392396937644101155481787116043853435700742422017934230394356861802887533910081237511042112273010541157303508906649367440916212260516113750760383872222537536379019394068035707502311243285409889797532922949713203643802645422001152850149544418426126546275574197641217624314533643018289922043776693117001030067199436819791717423213276455622933853916994106783275735370259980382193869405534568816695592803470523788708891942962755929737260457593879654456919156109092995822847266406510332246856817177162785276015861213157123572071468112735622818817973748599701741438644021585815901129272812439134235040009089943575840738234711016381759050874472239286983273536622248149430373371583920341205138872878865372979184542165963549936451891929442645525857967816460947584392923239547872419059335959794098182599845815357410668676941395770553228857253726550623390697598134093824666831116631042435968543973046387369527506418314224717669821113593608632435038431129615210168921658134374281098012311724247784876880703566896896365910430253771623964051350393183209088946119577745944322499113125574790883693800924243114837711336618745391285748467351460487374850920943157160597184019669593192152633427019178580372600237787405475433181004648820922438734637348551725425150835280236169896561682775547064389214831700443371957908248746874525093295201188551877833215351783908841565429422762652326621912921860113120583347543005067962293164125294472395264004489048199800828734858057738373164173296891167589447673572328110846667645962512687180279021381870419387428247656125336996881307633336615946772891189767620147401846814792174464409908261735777444759389776796817693228183648342980449890034771649901915038375666124946502422570864997290453589858351537795275257109982070122253555444301849194769450571475043844966174912195421707613672786518712572575531486708007107029950351955155275930350980600721394629183236599907136777941205361309927050910852908537319389135388366609421867430615770948809442872830572590044797677866204345700484558082523014885409599588004630358514878129048398111025120106862661916621635279136253344986051749898179751086035384554971099933864756662056170908942336820617405500663650853595362210535769056175017242888674885038398825395469858305149979816293414262727658412940684565498338150489476682516487525033015510875441357301223719245211175152142817132959745163491987668373867758927378199917587368135628061929061235402834817900636815852686714801245092656515532589440608966299969706416978760008034943404826607815801250408175678242283118639083621515028213177858166831381587233092879488171708488135518756131892030847049533046774463756119162026347019056068922288209308454995316505264000207671123144360471818371983622511166024281654680790951625114139948446896488933483480745197174622841593866204960998204565848846132458983332248478379131957739252367383144297024131027848017151260508909344760192121171114972907246461863750205098915308334361410046315719365730467773875356051357997287418712340095597999553790130021667578271002209820372917282613432196702324402003762097968781738084325134407414448234806549165239551516924017674484769500731180443504810307840351344713017118991706981490674263649855620686133816830788213844620679938067158545152529086267646031027635396189852013324641229907041425121599422931701675021763634296139714424891209202938007607476391498900440885071191672332140561882412513459216250400953735619065880229703802053710347296165074906877772439624764330651053208120947137160674975184442687329845240428031131892858679096476143351547775822944068142924217296370719094230982662307343733508629965256280642041112766445593557510652319578556591661236295646279039169817790765360587030827486422632428860043407118850722815342977285530847924761039093854993639585909779287098902901765850671160284894278955275311730159420761076341926060791132888517242738544831233168892411309635787637042371479226808439760496773847320321452895401588753484785502956445521689006837544502634847433128195200744391388869139221416373992025116912702106343446322860874362253640385473772031597211705039970637607036851598299837539905716348870271506244591654902953269929846866574328474395990854307650176912133893147694685602095150363073416063439754115892495351047015067594800476639749415419510267261672594221617549765075553427513893526486528220774403757486971809879809993494230659392582288017778530136924634527923967708078251402688793001088333359234757725971986026642714200549549541458395989929430048600039043559979091583150831360550585725224892920914421189651455439146388078400500997723066124147713680396938231676133218179374225597534734980277572817185407493850872451171148949081291374742973581388122010024068591113154797124014234414989404810694403821950460516990607481117048596203949554431158058446641025082003454030399956100701845007219820833050929074489018033155049026074424107645155197840162346770600384140308447844154447847496125685994617092716801588354640445343298670181165033468636495008436514877282431143756030522222904221542322405567409907502134555287228760340818425094353669353433067033518298701743029978628860954671641556413954159972649012524726151657816805148202975640887819026998008254218468202196164041306031760515850564298498449069271450603096709008291420621941367408187705134489419949377773751201690344899165582922629642514717088394216066593889879470800363124950251634290081851671043973922920831507058172502368638345441571062767281978481811067749597292991332995692583480033013733617560166051002963958755693610812149397825221705410776633781352385480848272318417947878099850523199796955166573018820421593955571237834978023308327056092807426333239014665794165210420598556184303951288072108707367076681210014993942922490003506195912673665421648327815979156048113149047722553417254529719433276789862140213022526297036726412373196468310597841471897753115158577971555478854866806181001685407032350975446720198251567834650214622065268724046387671200703914829001106496834851719006268749091910490476032665674325107448647308556264504307350044711107167436534098472538024014891918160780482897714910220608719363139929982149917996458182740897830751994084606432651007639194250491804831880457773564533250290449591503013204400203698327196685636173463024392180174528830826755652162342820331871580848540075992733264969178686282329314010313667776308146453226908570718442292624125622117907114857678156796810215999211938390620496376082409841615103655059824040774955819444717336684865137226192943594536827598107877232540873167320634002053069864642162170530950489748594023909828954085631083877476525708232114623056747722354752878847640737492135484432394789808828377930526998509819340624040765785769508258085650656155154160759192119311501050300757092222996461745645880856727059875523245472984987793861579251421732843857669991024617416039494353818297574163081647361952865253653511567447059516083563008923796296246956065191078272220521641798397138316899307097015191919783173828475665296316251337300265975528641132049858103219126377403184947262982868932659085745493017493538817751347497246843947733077845073655458329284285250676783379301928777557186506890108310671380230946668539667008524928161427804142594465438152064905434023982464815209217002610081757220803762568803172180033752577496229081143285405486301973780256726501520046894214443311601009663239287049598517203644832045161592310484022436939980299345272909511047225276026559139206681593872125890775222385304986974825940007103219961526402999289151907498253804850284087970897832065947204764671642108842966895227306011896509402168758946447879932191734231783222777118800351471678749329958941941888991966303841882621542938875406831904286745743090211433023783684031845486507570480471840345659211439714232633626629606657075080373590596913707976341615865810086749854543899239722049238202618659564188182798934223326279495290277523698268853309225863321733881800542156899083369428133613823945948958177438675181285384466893594580804849865873721417377791293428390983368438079676819301537147164962742865770081543176121903347839900012975549098745597233616841662176694698686923549003311098423029583129014605384883646722107531754656527589344939047894814279514062714012859475257425320418825656110827903247757102071592193054034493886614798637663650409087048959198613781355699675192316002510204305681822307503939917954692832650797863259247156526712496731593983245905073652184961233419865885741418422697599214284703464401198921128402047282197225242739248298721173919893354203564820977704645514948717566894889579672024274415728414001792167624720924311776138144202433422898127223602313164729900698047275399947078787694181630974741649814960281584190630119610079095043482602819754036412678976187828023063587889626333562202820996978637785181991046628222286993525884481750761353119395294714625356617517193557991633446474724064439286290492629915287010609395437240340320027455691415344560083530389799273320096615249923890521331924853511710652429723694240184274894352408979002581691416954700872425793152920115112738115520225740986024511086349521661170060472303680294044810219983264900597710252670687949857080101271493564272258818537443794209965346783942283264411842743013933555931082397838678862369697612162851431676071703153324576579911957243470627650789433850135165315523759194664117355925289358307126050424753455909789598757413652454682899030495388203382995232268449968195638434658665389329374617393477135416183049409713640378383439957182081930135402649621504253934566594137999011487834409926005988527016675900669372812336025347935561300881728495968757446704292444050401342434037321661650874553046272890548637108864499372489485399529483767934291704273980988575415354679685812913998167307397981256171339003603551561981395656296327626264625662891378864256106097965740646353884549967584880989817830417767424476603580970720901429805925688990139148006085973610939976567078189922966902083978043518204158690796180865542783112300195155590912279086295931950217098537791756654979853775341610022141056327412926496622540657435371937833842149085526678406270377410104183231634286633298200907977685953706933759933832835926881164579563515777210606536165700530188910515913027537036883196808085492111180820470425216706672652634081297484354658891137242808695422010516017006753627632510480678825654287705048339575534131852876315246400232202013908225468043520644749761225385117427324637089244932482221898631677374445457394228103274652990449860034484795861658813135038352554885501557951899588603378992400697991941427722402117967169750247307715509999521166679649297019726297414140948885864799785249235267431580535683516327244420698468202692147987425264713485113905564252759927890207001673325369227301239775227132800181324834934966696271985310552763140704508742804417082230199581530166252052425637823515471551383612641131486266947140035408159783994835989361733232951271126148081354332499546931311027608281550545639186171728064588430252826266914239422807670833358962299548725637235173345376746694585473133056412137238827732468073826558417999600732231929884998353105071803433316809423448635510222905240914942821778871962735142084227353495939475614487720080719440673793214459137255483017255504593723717401575571820039673615992048247542134076449787612570685018407859833302015911728079486757245057222784138955740267143605347081059352138945482430838630399923127982467722509035701808650789479540664016654189369220037834772178804669744079214556538114960572924932214785337564757341671305121061479116996727922110352802551567595740445226012557403726861014908958476451416861236928695142801416271286295275426222487886540248559323688268866474577228411577801380913369203743748093033369831213856071470265556604718790637767594610399230363039165811000141547185425832559852768218005586725885015185056925785087756095064525195598051389411390848256550493648962161513319690230072885166406686005057170021029389313044080047700244526284804641344427530115613953638044614607854380227759960783437810018350918896094960518723835655916968452689635396793296291110555454663446544642674530522479613909193603205518897269604539829100150587689289767243052891826420224079810876640956024591399124638440061519466262380048839972321243635697666725627673344496194732643850287885684259475858820909948160371743882841644639556836306660622707881808346657905789384838503755806243997300076432792371259609253572083509129358632690074264966703569894546658494924196787272849148383076213853379151153320318625140848999054716319154376813555049675828682946076719485524746051042329558986605091628033306623083848878014457719170727585715595910260525935379936253301846024923903715780387854742982575904678774158287473436685806960842889906724613715053692430536657688588465399064864087650156392125204769680693291805262865521902100823186358544801856735340681512861373677819529337700747894919489465007293874560534592042033400177272500283082607266441818455057338894228077251145717235048261407631134264753476897005399188812405181867042822366295160433731491649924185364557973298035335238702334512324121480363367455362555967441945568300478133275598876696281707452081965982471824801458064930489482087926431301692047373920260884897358982989031866920273033450691901244431218900613531879717845483828339554416964740956377120615435152114234158952214619516137670290597450268877705548340883578868843359746945784782551419531253354950267936238430875924448626130629798000823252513275869107295647650467961925292075746548532870706943133489779110466839770811814613107946049110643640413324808390976498033577198609701326087397407890418821031119147607820017141574344945300172415854941707739906230234765225587427887710519976823692287928178301778077153625915551365446503405967558995730290598589986483883816843240721406944103356189014814448055046413284725920030801815407559785904365909968489493329511435517778906845159099406810569355779569327919321011108699088865377423485912851908799025983686926207158712830707194260071004799940338314774034563890022245529290546060775002621460218926847402215748700546745488804029134509142507022093121902112745653075505223783902889518787735181640325126721437848178647311253125140656179029906050601382547734200949755467841560424782182379740445257533242909732319537996242973438265958036891824759177113988282968061631419552419693785081739385633659504286995543406512848408550032833570820437438336444558925466642054282885688330635150791957243489866294094795453387049412063363647096187852358486349419664616194499150511305191381276188930273647398347922146690023756523416847152803926025119326462540648641693346743481293531908903331534577621258817409269555993614432128088696587725945261048305629610958402894324328607322571216094210310194446425646314402399162064318293492023946277170587744319311795333832443388981238068273188104098889396064065502311423120452909866169858130892374448258623788711829448837545746992546525747252177183790492719063997472912496308971123149819748133124356600809959291263807288407954457412757900675413933247669967613364609108348229947699831268228802821565846130955365186214552336340966713083751476287702365082584305523747251047329205410698290940652380581602845293736380763302937648982307246824144522594101287557587065268930007096199530253809677840754546144057943300404125504074559817661900125969862315496726460231526251208229569389287863303349736101738981091404523910710315463010566105851853922339686887015355245191443755541650157940058033196972865202902756042114205843629850269766504176453752762578041610418249521876109323476576404141646095247792959040026491050293409948231965294884309083620164500947166920224696430315942693494455519903261190519447862465183942037308866690866914922739429735292037474562011094242318398322113192185214723010548188499360448369572205383950307342123851424028972254264218416768918440566436001353508834508225504626341510414652956439876126377164058496397756123596978416969157606837605689908307997880574225326846461799210751634947754444673759719592518584328409511009392063094919985950580352542866858089305216237601162611189212357504667261114003511553228903605464115285156573703101892407337287750995709140906054853837624670851269094370830039691701151769872837404698580105253122116086215435566444189388367386105457583738182154231867113766181795525563025253991218813341759240215229763307571945269463910898403292886761335797955835371121187556000946288876350661344738734154132482462968867508118145787988154268734981298526214354007255011380259423193778737801510124960724661230733895158062524411248806231067611525488915157808760212294746002927840749361578764850825020268305761563383100839036961117505275796308123769880688694442494364601309532632097267428271256452067374097628395266107739208656169584953564728663130864959695284139499045811896080488536987794106192518674667861506680530377424572310952146243174972863881898378074083366434413772085445310793830809064953129472112330469893479689026510047722153564580968809767265191037680434797289601023746652665503766130224919868410526137925074583069784471486326927377309080961673538926333051180063539751528731556911533205982957433552768055225718075963027760130656733348264012406630112411053924157696948265360643108862976143042263495396772244496400974170137954336357435768964819976879956886821845138353155474318023467248121310440819878846227518424720305712228712294128544819079086568175125533590531169747173264986213887587350970818720404640130471721281830809721014209726308082734084482238531725876641127486894450822217425448958351631655630155559521167981199589583009089894475416794482806035586833679693140306636616489326718801521350533957602266289269965709622289744454944795857748679451799332608724132028197194740868589886771795387458920499279765007571544931694024197399266695770372778546561805178733036867409568409691624526362791096095839086895854107543006508984051544589575219612964100855191140298744186834715755543836169510808335884946877377043558732390271566477639369118796034811618403614061145780767525053139551880696369285375946320086148378133934520092577654602430482471465770466669490320631771027401365933512341044463371560828278416858551521551493142924174409889824341689258657080092894311767705305435784115266147782598913597839938299978421214546471149252757123099446954205432043127210099304183946285343194364776803589999046267822532926259917542254979983707566201342952787310491332605215844023681698787289247389561505213002746088740338665589122965640228644843306899219010483394380184219266420947883186827077406964963661343343009226420789398034912490923256936072969878627510373434899804126249763301997703829277424571079041862492171963669865524086345273720521473118188067022124376479260330523609152493303929839503933240763553449849999922964941556211368607152834295499136029265027376417413282477182892509990273149874834636585149383463345438646213334478237017285714649053072187572431400101400350915880578618113400324606056207557785215432436856450876812921125411251720563066672162928407623220567793757960034425720295579974447484737555145493244385694451725245808558258106428645447262374141974006114884706355967176585271703187396092580530646151765318549064471117905657114480461911623802394797607736465360056074410068883584720574841787388459690690084368009003426580289897731510644439071453027346360256268689974698042670220743832723068335883965299663820756096818756241222032690911819849322086215783126875926960995592795168419292895475227141083607552204644546365219215334992896035437296522999834257396063483645699062772086840655777474044878510133958878904095755781954966942380292898852954935849358367417777696645736825856894188022068435838702280176716676427390979706578104169472856305830969873947527051212998719295919173312779706826836592084923198491658475990134563106851997142345940318101638354139589582956215892032712226705562295661878957198611389125938868814766155065940770889634879880860712431400327659063451236285799440320052793059280926590148107437605669913041840632655841705281374181204531604056173508202749152731902793752211317115802792647107719322319617975124003102310518382730682103954710036195494199653367231156804769166900261028758603020480208911882134932952054444720539737024935844780721366761412372608432026614895027509342070656053379886237575028849995707776477647090580227181808025677612183698512552281665905248660091719611882703456137091288052915223402369760612617428204740795223789784845175375071479264260148875636751272643627558480342923803345039188911830280110551103683856443323372353879611668467043923746993059535234707685249061996145528801827527379521948851648045009594133950342776164051628347621391869737232261978268523111307228633238489252204248504928918608013459112675220321115674567631519550972593447958326312521506852512974677912572453071873808084311065124965503649088033002410339759120244956721943950605099618257714405744757267680021640444406896364239540138012039873454624498758333372756201972921554156433122021171525391130564381355434345482211094768058667116562781858381046475475669597574696200164404140571672312822663539106255240814230454438897895907527090235321960610482189798877819408629976243562201840864637239821811178969715417798764540546685453149040641617424605520089559001571839540124692934554143041558651326578350766382006385724057367178612271179520660594081557151858175255577459395412140966035822635119810310517099118029042837596350672333841066698129377183280495264746484751685312007841464591295963682410816367910023787671603942817621415091084749585771259153095171798427633976508801661309629876369563912911143415012878901671813729037337567181336818538010236485701505405888712364729272298011498891239678210619531970244198927180006820668312832648552455330854913985780057943615750570489112855608972311841164211348131761350064018465375584330532874940853719918636728075892271158114844426125506490653384205164167881931752876859531011496832803431348210589543143964819895224030646392385396045266024594602356539109263195330213010412399605107053064285060913585092359205757040224165388127188608399778403230589269372664059104587888241392930848612728847160983041237506114485653172478935206414699787933334925493244697965598706526481098250088881144857269011347943322476457241675878670044597140665958633847971946692126546889775216883379750669767810937762859111430597166063105669091687529472451745277722777805396175138349695615902970918652130856722282236882018522130537759481220479627327074591464506655577666472011430462126094887137843588510455493421829404011537413091394027749355676377001117524497246499545286665013699123749660981714572812189402107929260029977549742631507257983542442642543781033634030052282785018457491242530298984842930419758889863838766962018469428795736064409009276835914195205144735251261845247435188501675097983414866556924494136143046519583647317128101507760509709658071111103831107169773788344758175502972017584691552468184869250068210815508644681552881079445010002893276847392235867839381350749751557811238948216516413559421635788263748344216760821944036245132781199771126849231753694477601990806610436797476967513777470483141301332283024206937416343410453615122117967152581753898097187501320932258236961599807073104815446447633708799710703634528585243383508222574099419683201780941597232798884998554783507628017537453986234169589168037912364624799890410794732777208659152778262237004680224836814078908006264304949564928367567950085031994876622309626667755077648464236281059041167501015349556612904977828067889344924979916403952761742000676760722827852517961580021986313862647834781130998446089758076677850401086415418608656833725902788867167262145087747635191530705311739336806147828654956747719361792869793038559497168584168722728705016130447804916995834143854886456638902835183160844212458978230323197323810459870157545523070628996709883216767968500710592887426233956210551967552099734963388473913112919084808092926479260745901400993905613634944191695930066054425871858905204467161154815673637798892263904567303205341264965536631908727754320881710126235199370617908178482291957227491369327868921621697395931985674381731193180371383311928087606149970658611235616337055482846943839650584279757022792125546004511989887258146776451722007436831041108180954305997643028173429916333450877680261590751165302248909107897429433484895011531521079311040000279944674394676551977026163191709916898544393653334527270765656695403616847801522496736202997829400529185068221287910769766469388748183142870361740379150167261196002472333670196784402449537349469530943034718011697283156714554528739042383383484914799484905937722550321337201367813936668721683090850886617293572245070233005364473806474333820726745968942456498012051625404704605718796867715992449192216307932455365041613886126048828984703474161003628180520235661853477281702236371228862968869479818566414408203488198565233462122201928961345236684431108761293917498649391927914655251908015557024052529041496212725085135284263236780145866434762903207548079269158128954846627875317031407119445496841781241244754661269706118860283127457842927553805459125180144299983062927000547066707257376872251754448411324378009921426014195357411925649414641815649906248194492079956672693256146444424291278952734472483762197301789736046064123723517922810473597906187015360801411380653369116266874860902101143711944710825971842408920785851443601242623364815039858834777198019310257203714709279900052735147352692972244625731105494884154940518457245436853075183242853408253268976067038179476925865896803094422807292315506686439326897617267930713322241896528712713004075801841586952647432285217326091750966487531467988969210307562892172541386061469323245853365079830187182766319181213174251649155769066819133894754642722393134542594636135368005124017921146810568018075888323984319345340629801586804537471758275929357917305330745720977171391159088629735643943776770360471215831292491292915949485072021112032443280325461582207410037018000251373083548349692614716154767610197158572091101375736934916668046196982874926436935704170068148910106077841036563172200325522035848704785519184553180721056947120255381015507940496698632046003274927560727178766778631579369035655221358714307629089659910683309166269652904267483590064005742410744122174728720586804964888135004711928831641884674710672283390691772633438259867345426139865634043769488779697415409799170232009936772150872881124933412238703366167603460255199606586554000397767204380198007240481901104592889697879379934785420622153574648805155272159672649429886092561364789740732253623145643443249768066064588358882936490863766224838683920286631495562359500004612110045473453761650779281583104351639066950345738792173230546328264987843455343496993124238391865386994330400142654650753269404757854216782102642094528990886764673834972146648554245339903612619444313600893335727631541622537544640538608231722374204871808771969788059959141457379311736975262575051539296274758979652714733739567975486067150649505973003281164053982100011631513233756726870976540146955627069757238433523320204244855749821959792057704183906294810437640533269919667680936016894867376349435138117430261168943674346658584413167984045552169662388963949798915050185635820462892802280788510226945517331508657486726639232726644374365145293774745550271984272097019671804110342031682812058967054969194067414834633201270557473048246368866142949068901177695630251322609091527176349431835307879114200856220593188577795876049696063739813645568256039298907135428309893089361026111524925366859350255370131145922164180805599928737270067780404917251528093712489512573786301480326885815311415513720339394602770126204537513697830923140254142193400405342635065166895706063610283187390006658159376350445078644943122657321225963383786304521807149581127645128768124123645118876983015553117866614570827516932246689925283182978354632736577937940995786226820148570774542041479955633878670352051460249050436306999579041509747667638398878613408452793669666552191439567267243230353883240432614933449448556738777524513313228904941414972364219175914240873576439164712098805684260556266421257686516485097763954568689804321850416796406857325475086981642115240176628979278798377625033799422024371326301307092713975135473608495710927518766623299331250033471508780709472117610992288064697026375046073579736245203339316726011336330465675596186822091941039325467989784832933395484226606822984897990506937561402878751891948107330058727978948684533563712207199877230931102791174285153120864477960870363526306677701538380832007840225228891308637701087411309065119910173372740818162725613990001637974509417599308771604254248252881397332548829696589464471593757756828249278980278800531682728301101751079962184658733448142462389305908778791254917854925484840633794781951707094154213002925153945206243730230716967079929991710573033806017135957725408764600030473303331389313323845689808140812577942710932135516916510583159234367304403165839107542469816287624328039047898345419227755776301227265991708790323099834536422320077233397450602613075438484788307036077377050054744383005368843195509902971432138830871128269112011415283562196495456459700808382999207054798292557907338813030801442347244500596648027260809749168591044332553927674089444446590864604424804526433295486737658462465753146997658327835428052476139902939852322201922936734948335634757051351563284128126722115421468614037160160880763546779144528966239172721137565615889914121239932765417221641726428630559842218036751375913892302758308915261773922240643464447706562957399536409086072485454864140715747548614155393850526059656314075038415748265398309766894383273492304099945549963096542063254063999341062573423954667853888102020182973993010013287416950231546332408364814419018004219105819074464213749051311583708432448480757614329858962260163394267493138592389974322592826401320480786863616373386009403778490514648236688526387144262582137253246555486069171442700712037398341410656227037782491410686112595190097394062344815182916147329295542365116120434577693660378690575446407893382972676182669200272368456484501112821228404927750799252041693950473152812471823635260592983693188008309593963076571283289229930384490054526871395982811182882472039969528879564090973594506353508235178122435637483837812872269115712157257806669579825655120829745330950846810897202108968213454311684853494301032132717336848158507497554951502129946827821820143797703701725476120087214352568889142072219430537673247945948843986794940492124944723420629077625988400210010392022459889414876799548830044633582859118273672531940102057539257110018177177424520383739770290067202822086329480621219308010991497737179899097015743141996359154109873611283579579519570522556124264903080553859588199568670761048922966432759267743692783157183844026547036016442914214095608376793353758541288002062869313899468303858257153380135690204107141742795987153686671082724651707825373676521234600334312080244059056834334288156383839549594018541919631517213513054032312390804128883217352126503730348736150449025448401095420513276832127665784231784846390289012423676157929688748453336640702185869717473089110063589619221777693471860155559789531260293056474614060602755440478741457540814052261256202464417664877282975066271177502144609610433914277538165153233039065970686046324035935583799836561265680351096336988930622187442237233009777580861804268861420271779546674086320927982965939547602595964954912817164133370195185886471422015865307921467700002960793038557649039646465445789192507750153416007169524258104237201542305564525912519831366502874416365096559534225094052409600834498645347368539951512006596311063528397762888560120651535508379976044565980403462841634474396613138580102224356506645813396981208814602560128178686664562179759810411250285706541973789093199016335340754820260651111857121619443569135261069407047439724659320108514886340867155989778340613648271258667389675740407415554875852683070269519256408804694901348281611262210242169263344899614071407456066466649025217113239543617247987901697721112085616240885775797953936946760247413857934794136714234737015194096367213057999144401092817648289691723776838996809290462558849158425023945654945092413188144244848395198114729619233500664765091933638039816705168729398739577469102344466390682535437894949110358321544035674100212346272729190217870621916403404514096720649184380270540255772310965385822673020663765887566280054243868104122718735032610298131676836005051196463089532763035946185994381271223635843462793548342258885701519835484266927001068750607612800473553728270222277505547214812815761785962424176070209080994591004022768221231467330129606226697245941215290889892377215639011299864911739342005440297807039516595619072070271191934884212006013802648345632416505086882218627983585254830210114544330168721213254117330387913759905231467029313796314062304605358999144018029316658641843139303243836086115559342393739452758718044010364102206531540504358395475415396914274978788116286292990658727427142521921604534792216980028273693344928518400155367966884027969645806808755730084570479901227864981804103478539229732304254307877172017160671526192180796532231771962358558279800566072427746352351727364636381043812421113714688641522131475192704316463493348150240240543373335529471016248562196525959263954866542467862029280009290653254144995773639089894479108563138885675717859029132447002772182797497007599558851511018965128709793637842152196358659100400506029995955704938519327097538317575615988934902958531106496720429146967070015493223355319472054597366339899149602007366295062619487231390155394504552199529944267116078855671563471307970900135503844129667042982970769605039581033137230974655749359680048132419805993305675933081641265113474304741177657736359399298473062031948939484689295664358804127692292124486144127495192855628030759183166253063070031961342306635467546495805650964914967987439894652873966697336057407860674133906275460706609380246404285426602687527236283496856222755478302668017818703014965063720957584587211182825999962066627183476753886476189390761738646017507358768570375098754014266426340321565821182617867603492493541879899019675444203750130181367382788398084494594957059216601493052539807289791517940782669026559843019853068103353006597016437973556238292548205415898502709392298934229242854044881043202325934027449176386777380793735671049184786483022296472622267048866752490307127755866396191361381859730415480784165584963686364063119763626010735007683930991985313966398571098058638808646096771662662977376785414442338047362147520244031193618698632356286311870684227722970167530984528170396395729265533652652449100278314436104101612990565416218844649080703091506425120217711598091469861633576405079589430448340208608252169312375931075158771493260087868270455602966305763445392782620492879264130189198757381729624543678305385948234063115750591646424758702780694608628513963566477921835706995839635150317811932917110282412420721082011894965503150368868560114755728523943810906907402281439931233616898782649431275224047078917948038905493930719106754386032148352130969161415980595741902627322879077515310832377886675445181834514140124287223846040153867222433135520628276485974771492565489332405553084427330956162827909267658829588234655148870830257128290693916156106031076653796864852121182058403039406776334387383158813822653066180489750836408314140603380157625150747672569178136006900991872714835159648692557222269836672498610148773725840764999662215255895149472968025122746699595892007224014128815353437221065040581879067147711397153448409847411515901788257867330476779260498271436773076905217860141078211814334989317960767529643301775426606895003735785051140374898882734093646296498857783882584801294088993204738996547577792513285244478767013043509668520034573072471555995664664827524713012509824833094009969522518771795680328917609060543966115453727466523766323268826075385948053417980877729421992168174181398459875646733390185648081360783617252771977135625713730057558071369724697887361211387932046763728652094672535379308011951071532845141974742015464116921392306502070300588833642023755424757270593469834108569869213746536507463466523314296976174949483777420619718358787409916131127851162192855767303903840091188577008430154228470051073982263776740050103338890192531323051843206290538239413015950730952335073261437045129190536786562607645315153322110531675373298069167553842215122514718401002034650349364203454348001960918327798389144643206101164088421428788306866273555981037681546132513325399460510836043203938385172052454143128601377545333855553488542938934640013621989099933365319660090360317771517445865479298860382280762305341103862875408482689314624822821815326158566488778525498674255210078947402653661466037561862617166563470136468052234334780127771890945714625959350274491655522407998079331768461544627516192566925612666158793961406690196588555105704871451033288306967099858486579213179155221958193477222968420430718778153839099231716660024719704633975790321116748841021195450407444435434053069225099183909117031406157858715357832509401158656990726674828112556605144137963221025447914856042365329595344706809548745618066454155871917073876556576861320596893481931452753778031002573138745345345366048708029059361256218496996914679283744601750135790736627207954567510341332314588466007152034639691181601082164122754956146110846477208866169325040117061079945694351882767917567594988294590041651791943188030133072291259589983570252305924941337708011489058771600978404261612616503991361039797677698771860583087439154956070234891872775013753095898578766035441899522274592002835428402046166574930872639910508675151459088348108262263952114505207774320434696107304254837292543676843754730953527068673802944388646407603835364798528963386898423415577278951227788169262559128930819032861142154945805059918461001140550787404968153907637622758404990501249318024885120020523811067532192564634217790841328048840630035470127824641042037620108311746285130307759177562204061887025585251039451315784149929878787714551933806905375216025176284590537105642631948198292204613879097724720740940353562665741961952194039799212675216175183989569265899738204512286462893571817748853546901353694037996979403609175195178213045954877442063481570724975698797158712389051866410278818461151917139026557679565270027211142488867563626406190921982665980912209200130439696272282593712995324120823757497812258534012703839856612916924494564467683562324857610140617559006758710498879159000182318034900179651597998814938341073538092572209597615372962567457484569734080247744580077242317371900188801984901649696526493937617765245115799544924284904916318741537661874702760344179877933591299873688432648884259018034935800313685252654343428704526349562940042358542423034507926819994431512078866277591378693427599674356716556442417241863728165572485499269998112415684427035968261339386529370496637784883560464666660749491551633995905316434111004848174758872498552184294029388718551050245328862715397803010679358405947744816115607707957258787622758121114446706932224420803009034161727850165259274775455994088679765075356746715912424500601028687354264703521683896465059555872823146663599477696160343498602701495963782102029225424753623102600502144684860761355165703701562457955966538893622633523930350167218766857052758229177274497507495657985530998819646841651439208516639156999255567834310226354423114127833616513358910376467707749984665669484476470528419850422642287295527384976673940225086648237726186150852464944398500364201917771665392783226354476663995210187376232856789218041802860710722633123906228930089527729371281013503832534941156164366883079446798035879981867913739193354798627085032347921445533005428029732849884853643536846564516614442889878888158302627751503199323805600500735936532789434877782875021417424998483644540016344163192971861016315323003615546738244620867900100090531504080104316564556333260228893881456364356721640750026568871426358400776434868964871180222262154473195113255373835590786904583930279908944383520482820696029274397336838994337800474874643120712052292673814895994072470941381940917439050727684013845508323199337590324119756120099136707116787836157909002933874204400776669112750929117197454635722512780983534309356152821545496094341745994616217034461476412225484141783668830495668009097968646521915031988186338022488466880606990507489450064882138521066476300550915620286244698106847226571005103306628203129311996883498268238504170185929301575991600919430360970798236242696512852396181220452051544675999865457727668753813719309094194086743960927794283370360899392214276087538258066828749227133551784630336138944152684546276064820595129182873952452501106393324942765374188441340125611444631021954256848049245721292206218501884645503971336269905688052323096910928673458517122701987438224590458151223442874734820240243323866166681900098163076186889255055005872457527700232141142582515226463802278538291236531084932786917809042896002829952419453069135797199668827622872202244668972625757267851876620028204300230843618407959826304976464073353247876297530117747055032234947953643913617156486136809037825465364471858692130524728615889324880290965730716571754624614875772787647206993262299731455911138158257838659347969319571650973624183470194886541863284713752358128824747974208442068774368653760207265350568889336752999860141763908341146739899832904296491814219372283869706301852410395633462091329354457662938599350802870208503479131552204081187755234826129706963958720556858264985840716348134483239638915224747399421497831773292084931000647445954006882978629262036422513584015683826590421976363233617397460765841154615620772159432320547030257854789883887555494634081127938881645432754950891623156339863138274435225564994986986223370850383747408594709141118250731026185712036613268582577031377492520921370982886831814723246535733418038816921155801312129096113462069194057387236783542942601233217292659012705553633129102634374313368582798582016176445342858400276566082710326154910842224787285106576969627077191421741466050033445619418025478448599846693474517582587407351877983811195734914211124251382886373407377811341821719178473656053628484989228300542343091627958292470443204288245462353619552862634997903604643630598466541810787074418282042308759539014253383711799383580026860133573273556267379258131465522691376213418918444389353308427695231028106164297808581442119212998069237257768478527654446693271433570848077365863185138975922253912058575185623929139990141730271196601352113897495623675710749925974560854524257374666524974314168690554312045686397687855309169140682129760569080272557504898731098071956855952881166984985982991331715343592607674469477388630650005877381864457000346910221534940014129325050566511564996498136784623230799823475637516823729039634445652624412719492255684918442477088960614339037577796423409810397447316530081833656912970252106016574461391580145560819257207328153771146513267896561947492691265062808196756186677854377200743113455151440778479754695322394508626904267722988906342832490253608793714558011170873109279233242214056064782300551078089345907039648434842120117234001103454150449888587960970123820091423761630709626794814446736369284842435636451472948053130063378013021337112812162045086745302917383608690989955949541515605360375333396894906091458834015978195369210399530754567541708417243481826533774636997188814574241320419190904882939857091081142259682507256519017730832501526668766743132437962665153950227624849091004663028252533998987824176236962794320008160154830736402635397149076574789554006332553594898531311803025668550038341092884901259454573980009340171030828931942518251387222259473540162600501362492686921018603179945460821337750738737878176199976506056057604384983529098108047607862620074924724324421445414169654808331148142316902071028575311444733557499380425534809414857348996964794717153638168045083942864534577695889468586260547252794406071066024479279689208263681575595082066944711378377870394945051102403036535688143853078523194668619424879608078949279741008681451044364925087535759901714063202007093692327568397785011144500038710242862909682485027208496017225050069813001820691670401762766132686154543872217993635418189496637171134618949971463799180833460862008899425046761827623020536901580169088914536365168673312450863124116202007896467642936443508095140815208545030891500051082198867602008434919218621370539042606145041408899142276961652579839134065194822723477143559195084256676347923555818658237742741472824288960136471769648644583906578122669572854693104681824114764102394315724280994487771914463238456397140792118287318495260821098478699065095105022810843424298696275043199140887853434517804182473603394064574148556277512787706680246791284337186308976649390708627827648571059965235966226476558723914049664962968058698895571938638489688924475727747577403979408229930046229860742387986626250301784020860114753290567458264779177023274873053972360256129538241391877980736733805788539999992865753051240530434421921530591363492944568303551634072557785387610497463255628289889429021561430376397619504931383237063165107532260988199772908214415778580803260867329027456811051544292868405261756890255357532739622437696747255183837000660735339405386570372141845864209955123595374575795107310188853578815370927959924074297926087606817358985594108485436254819493165804984153589820027947418991319221018748112196714037866367556839654865605683164441533252825300293148309061942590035872953582090539350484412520369812622985346696818806941453748657165470013170814726509558103698351891429869472790163351906708521212096412587683996223391876915827362059070751509358250018229711705261982454388046955845512803102013460573288786512095588041229821580640050462990773336761294994458500570978282146895666891752454402997845850827625862098873383066043317855921167654493801804159476624985544637296321285378692815013641680534470688475167914733519810213929760850079346063951912411393417146966235687075687882878677410529972111533886579581532735711553456786206518824304043337265318599028473922339936582761253683615827264632059136794630418882348853004297830869285010130140058747960857785391775765766485837803242913155551406910147665515235187569736136182157791474096383093713743336682063558326283454327158495654805789398273234775859326739716496475209418314440324272761322972975512414578472731459792327645196949207407040527953421282421961944208233300004570920033185302957628656122418289078960428952131932099328026217105714221550366454686014108458179164699558001696976222035169611078825401139417051475761390969568938359742383883374661745272966210547253073984063787334628040928913297234854666253163053077267813095638950247001004555254846204294746043129058148110286470661796522046284498885104313240866199296467514504756003330471125973601524664199117796273137461764566007500186364552718603476648742169326959687209656547421552364071491406779672538279214712568524265716211115667697793437466203126833137112164066637258122259188741500725216412017160551917636303644048518203595761431733202097995494534568725862998269525168208394279212134974910538120515012287067098231486860400750038120417407376344212285580726482882103156620695329933766324208931180035461655580165356622639920246169076403855010340317973080868711415832567754267079911719207219918405775230426696103745772940154618853361706728604070584598381231220301984339126132193403550708703782934929299557071778579338228904110439454335890654322812829771105516244984671215269640872768255255925644078849363781090220417268828378447322381196936127501608356661047774671559425810920776257727991265323097806830838433614388854403680436693810347722429005647425508161126577285247647283011529648909361301109484750567825745281024827508651730976319105453423714117714046272839205584192763214095751641177622809751495214602400886681042657329194693158781046109606868655267136913594998706723681169741065569903533265099880470128077304177641715490803849961131149978215484096240114794556175018947344960471326243585692155342856048949926276229836479046317312678814598150846903440000853981353217420701722379477140617642627704508134913823970985496381006196988802140130265602443660345325492298456947645638909270460374228003809789087378310093871628973532214143886254593836537441550522401601960452800018992608263299423207398990879472727070364309936929873161972819651488698265556289712900215957843935126881244133593580991284503076859879633339001286820546026809749867762094942812996001221663473699707693727972000622020953477952472174297138864891843129554908369971171875103292461238616401681329175984233250240208701439415080116535877221155115631591359036104552108139682321540148417985007072234734676044738326204680251315121645997172676324207928630701002831270773737398806389104011043548431102249268047738656508003396440861808812323719208959650572045751800163902959508941238482599152313143548272790723703284006885190367089898632000227693282297813854892044332486130767691579489198620995679698607935418664313081989973597448939759153035141829384251883205500651915729665942142863020741633612260650740378143981911393768774454757207228699562619122472370550342364823343408693230968109913514979022697971740210745457978963496020591536664519341346211223327753511441582452425161001786626898818279233623498186071821111775712747567720655881764178603892527091409596943225443805495855281062444152986630269141345026324830947213985905134688240860465264803354411033378160070080180559488999667134851659133499840360084107856607507059636723771889850475635184177517362934834485620447064647112506867730811119636373788533141257197498065485036611559780906101990400349861278560669134264778126057937002517883353554757024764816648835155430237688044868121936345195685533932242866424017794867963612107062341875253904657313875500161834333071184440599531245373955329893377608732386154513763893698850906172131494984658928863505654707995445727144716203551143856366599573062073226044093411764216080991502863305064843704769360171871444238767182637362154037889660216340204629671402205293307401432077081473548183016425359274135694608802653387429163456806370258499463812904440996649871462898190792243881520791739867438411397487499631502349524262457264537893971319514344387722454190606841513143404086898134739136670581272907108271131881142774073963556971858696493546439952530828103314048264354781719760681013291961132694388700457845169325372847231673144599998703516744796897140974142771475477409959592537226797515573062325132170474973483218326093066049576980521719593361397007131949870235647432641329984125964641178719922937473587388958819336424881877718295595312730793624881109425227857709483451216199693995873866229186939978068392187495728154033018723456813038195528188917597816557680863242685625784240145654488918389980289695567429710622935369887467452865743426147822132052664942538988801212447920582055279033594512933087989357261803086731420686677055833870551005332810692549552605856384639911745187938180705422652977916895532319744714599329322687034552707878465900258887076762238514064159048838539650618210318156336322303738752163571065641188013182864673740217094187829997130183751944494050354531776996331618008629615364486590748941303544618685655009033352346637957495100261569684795311985823207424485388295721129766259626080403493658267825733192455394408413495110963709687842491148099198747780280931273217800168681520851621115097014254872627180464658141359520764262476495077877112436277643591621466638580452145890512608961560906977690518312329684554469472945023739223011032881566943236178219523926897625791075213916343639124759336355452052588169163655793047760614516242777849657942878901527063373607814267442719786154856483962833095713135000427824751883097009954553494505633054097466612441750805757987698105273852443893936449891376093244342404793949674465361245486857067171140160713818290876832861738524362743130913386548278196692126785556364210185857175772992175223608790262529645510703804214154029330147226127409795967810294722510873948437609000664792313410533084323241497895316570044133026350139439324138622188517086447794551447816809232894425062509190028691628421976007564265227647163309014349921241866206999108749322390111089332573144700420783023537590076347899648412152281398390893781434083102505826735426214508554303745131701719999992488784318073435386986138926374285320550450479615247709104654649673541651526103211735953004239803309338639080563531380712563534278419797779266414667008258885591612362913160472069618330742442676302492840810947813412081305908650885196519589586740601462031226241311061636045440352516209267870259603655042611642386454066654766253711854973940912934687318669518695682141749100873668197410553526149175217607069010416221184948024169291213851668750012886892938977598137451545694158663151393598422282007146889403504053937442250396393990681753162767323898501418398095335272841677858216231433377495873077342879706177027121299762547442437836482507760785062119652273628502506385584993301958020365324826963556973397128456704468492622999471896037298919601925049352995029051872298395215307661244779302470796967767312354746443051078745181841326392039563063110910881542471202803574881313300498102268364442314444482894557678683649641487929301320964968762460184457139659720398367006824613716955381532220339498085976775970121171155189585527951769894754403841161262323585906262056541438790802017787734790768441265102668883298799848444839322572619682881410838799942244144354832155609087390296909483217923920142000027986357052077843563918024828851486084914248727725999026778810952152207426658716162832654531985104282588684677779377959070002482872071965954595540561191029391300417491889701170259558981666229080273433183294177355302359774178741733976638773123875885056568960145795315416021869050118434819789403538648089075670208473650808948411811644412818317752444805852062232050476431773197650437832012086587961894869752731627000356659692204373896581027215058695555237115014778640228750597112643220599162357471510492927470369487922513225192837854934335344695807504721947458236344894873006797445189415950497713113150781834816292855251411371573515768163676196298177005220035469397491536026444673466716566945176191007220653903564866971502537481279820459080874826676049275671487206806950351157144914248494222307048012487432952162047989435614461445875773280916864795576258260578799791498263211874373470566233482458849120022619050235709082948306631116831246175535139067007792854006561090518460207517283386640051409075856111697025165685347153209966058319472840712547768278463624388154220533163905273783671439635142553252247663632258793585284027119793412620922251264677532112622274611018369618385000001692461848046289283489755519644745824906971602304656448788456692684475831820716618411418474587537298238741454637907089611378557216252324455762429894601100323897999415793586380581122964051966535539300468904071857193986452718135024802811298448703992637007339249632064732486283646048326520870140169993719645167496463160765689411333230377336288144159344165829133997389417038597867249897990204356848273984432670976939950981893853568107744320239900105221860338510566204867242786824508482912645279305022016665419912825792296260503566286938913913108248574366696312851821481569377396698562818737514561175201353194825833967792382010721005474082017185576711363891670983508569924568391637094139642624839746969814860301424990092665155186847584866027388999372427918023869695989635066588809033847752513525726835188576926715150791150745706732202732018058666439697539645832276382585818669679254379587883156278830220744583283988874320814710887269678978507956901834087441351367035093806919665901341868371054535161583333343340887934030440396363337671076684492460903404814696784246404767133964732658681637556800931719500234448504118877016322676246868178763563546098210503911542892328625902007103980471526448013081906129960981529010159300518352993190749354553052429511243305826000281969120805025708772071359878026131430736428580865204493631811610078586566031743760662621032801124027091503609683005526730133770210723937496643563766827793137827921479195776596807717152776170827007114099561757529260585790831938050074564331789944212362896759530879180124551346709856452857976649123375754341936231121467227440224260074645972064911210426125029971163995581688449129757510643261120543707734474425722064794613071029946362137501802637152592850651877953893990101121560068293267959297035194106771955252892404260239043260622567672257262638227085704943869389744982925432566752028929401159890232786563078794927739606400529304179999426755633832086472533999535604045240717705563425937806379569212956224370105540839950708448966637878344680944656569222675819754784521485546056632686372934512767463236018065170290210723330192595826142097614390004797970910012134044009953293413752387077218030403052725797840217500414956189035821298478809931370939305000286048211217398273832355130016004980834652439578063435957613729632307092289434035140638785421127942339482855316657510803119677934306297338516739781683679965400202525033559829458060808194939461775372253462054440708954619515391594915419522514925428789932879723927713148875603196384248561613515198261424378324420790629586489449997964570234155382921760771878280024536915177581966098605119265292030096483934349138336522815887764955185165735776817592747516423132751195736025555110446793080897804501379248380771402960656681482763082682495017094331091129341129895377654029721325102634930017717184918242988386893030490616486665250823778043540332497040945114613033837437401935364444698658082372375985327859132203467649009596055889412722071131711386276959413702542967841926360087999588719443206510797108354171865628958437881594772222161929050106042147363190305417782661713361234335599757876691470780790149831404207155564805631220545542916935232135141554293618667502215737990872117458301567743922294179885578158852879389167740614990257120792781829208915768788287203495535815546411929678984028157083396511782468720025825818135588111279963717899611817237883850635744256260990127014710533786797830822577292524366774258380969027421610204422068147015553525033682581508855374030978972249551250058392437855401201876412360334482546811053318053789482046342623090934774726552289263160064688088167238827708984548031816882650424380570008869271919182323844767751494066482000972637036341110195512968008136600813149113747832272328087767336041933987827709361939437708440440424488578036763835947105359763111645115098327409817422405002962071295440149382688212419470227450777968108522127741979972997882940720527450966507536839130211050718944201247766271946241961644536756816588608258486109552998113830767369509703576333103123507521647366913083625344545710032858049912419387718849691657086714551653860215372031113332523909931761042794704578728717446054990990977654918408708062894941477018692434123881207373972568439099346798627778770875585452719972280826614993385203406857187636360612540992981951292810287650833918356001204850696302580677922229807579466878540433221630924562747919492505766222051561177006493075015540778478036233199544430656874474324842494529761655506543419927764649642901997438626825602880387108284143329573196725285197590323294555147046760533783740597495647835631542405353275439735987951916991550568014058575448467782955508915038641353920225375036345352994797862025816867740429311230831534992711175301793353938813546602799147111815979796403554747965441842066372402523678901095617964045279279426273773654417012427591145954128981467736274341143419979250927641195212362529292547096320485025171297877827311997674823178893707343358999276015266835860645319788628224407486521672480600549158193988517582654695429616955298442940618742579577357451329435831229799365052476535545968932664065154034246239126652064616995937871510482502810440493336668581038162927662301412449244130481074210458511082841386041003498267763142127529557638903588473641460208083210458700155670075926565280487612277599461725669099744168480204307878881287259917698934058463475128536643073566778421353770278651774117924926617523929084448615655065867965841146589190253668018982644216217183324195907519200339525544429011954061450971895768120722264304501109663575088634728422859734632120348917967007821309720107524197390872683693007664766037524871044035762760137233422588372171028699909409738312034641024462951250571335676625030665750627818457087905069293345649662828780405706756688418858199640250467461320131506438387303355798155325142842322294782031081868256879717186892919786442427869846293708180631077494178953366008518464540202476112907273623534406575706777047791455681847794013161466930074633822304054581496498988766049100850356193590594409220586347161928577729274936770559499824714062730574777358093509312189886321997217859747966291804891042489676364792227459016419911996662786105148011385635354969979671770332737148573392191101999523756687593040150494604687160403601013176123561087010007335619202010031898194020078719547088448847585140963949101658494232264953196190719220194084646362806415183345751668206657750765089691555521310575592904448246925125843411949199591525695882024484663660304677667454838926987258076651404230651437686644889849177404915446572680787547468002852155739699275890716711727842835555593604442488147808574977150315880648843877601561161154640699554175423686866129766191205556049202034089765872397319219615952613218779229817446071052642049904660921277822611168566469295396739464403593781815639820584298919905266808159079512295697158014604444281838787453455241568587023985152513609168276093110110732298060221788995110229956260034087229970269096376461720507406568944889410147223332776817485189629952583156613514520491984741031851562205729201811808013081006402278639719089197687236537895344107483982635530062573352466196177458861841522783377696916269743543803311124889712461791417661596086877767879704940664844131057618109259582100851020586982950476852623035628974224550287824199161649375398003267871349886692974224185175393844444496010532323056560747238436153507147388770895226021361541205862081942018174750503076456427636138426532986600655875768225179228720320161200338120492416644798392252100225402233104059901115906968948257302817801314949461112622873295543247396327435641774593167142614188529953818936423617213533745968966581983480392733047386563052239119162107616046496970167396335318142188536967444711116447808912656963830307929050297671186871687921474073071396991677245609628905206340640873474407871313200301511418013613957540541507106015143280121634567580032018161583898175805947311718032470525984740581676506603896829815614920018334649561019241124049887711472345277991697716398779174593846738994714398151791017698870407759507212676531408738777617950121881100967484833444740687054895834059246681222648610627586038342031605384420745107210904233031135175901456559376084607939400781464042958028362322204889992370950990444644162468246117097413689256367667175009774812740618175865030920678711240747066021757309931885870877371528401605581756882284058688846892356884171076304755030193893442339820534429187078257233998544313072512440932448008065859190140022222405617982410642869890418480401575263400123509999853220780441584275523523785596480316113992135659256289880642865566522214348710171156165052756878787060337393641225450980742421940479179256126950440508722973091882245056796575603882199205418284660451091133299912671379973667554188858531020822408330761385654544299246991990943707504659518473737982767501395042871592631766775882722636415967114888626284081157657087605276686128664394106118697263285820089887528917578441126240857959473074071675533421950651672928886461798207101793913029114380805754335049609013072788307644511268798627937143389866241322442840625200498785162329104981592051280857143964329528816198131324324768879883063047673153979203027077534512906079608666665824976850482061969892251829957904203479973131218923994983476885503313128430655225841310361224812418620745216037003062442830190012674463437430897442756832951926422680998676159487331770775749008746139815793828221748637726486907670668884752318837111368510477329003337780589877257424824197622192595536424132076428847229185497818190765879052365677134000581494016708036099156244977753752770932054161971584149846084076576486327205748494172482839064340585815745116813858176837495390962985271615678021309014918036689447288992331484095955251802591756467067856778755023339764446660856472150575555282944560793814103308472227484506787799929231533053402519050802169910536106945821796444065515692871373048499725209786431212258502492081114524173761503771338814896067792139891751455210571009252553293786462228137175187538149448222157291146016176553696984195825393172584971842146983708863587077225705781452285518908523665268996826574470723865454109474549417942125680752918777471939243166425897048184802669046256533493963435987939148663700908863079973262074248025051172792442042256489293933761862339695856254628621034456202772053914111923610077941174354267852758800250446322331831075783253638777373656382522293652420993468065541099064559195083299032972717852529634867261259561132807673220521278308158994686620316349922261889060190848654701182613838804855000704213221934882395736850196508159712421780321256809378756597132902102361365893972763635165094332793281127791973973945900125898875203685650680326397556578247132342550290460352818856734095026164024031409132920468157703635334904790938690224594176782832056759504233714862196021696059389366672760684012285752721524222681429412327517437056365752396027817813518364099679625259349095629225437625635748842049468578566754561748610449503110699612038209203458082737299488436473743198920927145099418729228104375805811476079164050687943083013033941401730084134906549605684749418234555060731903785575433750768781158018009580952871859627675336592916332921228918629451751305282718304880771253101113773399957283931293575274365338423793799543549855817366296766857566597219027332505604117055580598102451750922260159115198578955214513998187701631940611514975167638705772935722783679091549084685347506473819125254522372302194337326968654560194127508921741507662999404410006830496564508868761019270250985759043248505141421628959516232128830567638954959656309333379374218313071129004770754894531937570464698214417338434601120352354491095025885320847897468660879784937922485090105121328752870851525613512132219517652324407602075993135192549507051588679632210729763175546171353937122557691712503208089337441147357642967018735354057810512822026263896638228706321999441675339026125359528188659121356751146809848094755669156653502464303772912787120739616730788063469208779861544515230114737930951360318040835611822750046911635093234333534830647648811019252836908111512203141685806516754240228153333734363336747219401670711255567392566149106191951987142511964855683647913609885712362530160693968721537938312539907068951571656958384272853909226062668406892544915824037327998601803635066711407661543745424895408480958111134052463130071425650607127797448500328196235810993355538053534299626073414345072670054332701900568642088659145931900218537352998381860616183555047069480999649880018980286638282034267657486345407866339650260754929355366737392153146325794003633391539318144990140844812958592326294424379395554275377351217514324070915575885288472804029832620422334595371699177788510262150530178042127750401280861747603836256657028379336457026165866459287539256494504898602930983816499867803445970155439157554055144054969746359712976288330842391206786256157899891710590502158505239950877575138412578233789127197516196054383860689302393335481966206746740385572408809435119244235313523668951810794932775369288757531632768028905212613488634685190395654266286111347344830850954748720660285796640353086734139517407548084975639714606741045298502278928742868401800750930183331981408224506431280556322471959024596857686916881131907865213588904615461365984403873902086155382975149044187919302755019789080194209360391998665444216768856048241020169132188953597576750287150724171180745685504644545115903981585334885935771084971288053174807518521671149107461929396144132544510818434960339105633738663071731186519698198801029172065546170433363817568870102629291036866615710132211905049709355569981291882577065098631756311075593920348803201227822694790608169694161665527928668334900314054079052449844247058145822564921304289756445277463536958454497837074436112545436903737964827236289158443740264145651684358617066649354173374243954304231405421202032616474642720589299666107930163592563306369720675590741880926077815307451287698786933287744823429760678798097532600818393573071609603465286820905917911875023602714012991457383302899355583558776761779085250764040121202550275343844986794416876521365038562098143763020443195953977007675793181445481101308873966730837888737095289045325013443433317908141807197130851066871666419153030956072841439625769200974365588766902273244985931593008240630444156316186365936011194545958880210371275197876575451431025795745366528689350687042987827284754308788160969516387312076237321983800668881905613435255981244819951314127195388990645876665844966847257730354123959260944512046160529260933639644244408837227941844757915511792355041963825790214587587584184366689335854169576270711586955169817908265332516665296624860850154737455152506342077551959315436246937191803865719402810504539065397617342172868772941941614568324582269431957638031671122257005299741564902740190693181710837916415089493989800205252498836243383552068583822545539044924722566314423124745762621352974193803604614988249382045288606381561737994579537106752119793444690058261407027884816113162298377829208317080082165139498260099398352411849215173831389038891777855131163164007926723966815249544343531153465497563507403269829121909798589150168879247069816167184856807869084559049256646527808198558986117605172202469780283009007379684913668196508738568922741371442437605676132868408606519731574809812048764829852085885892476731735105753997175714441987651956586334477545528120555119652141870698847172884844066896053850234722387437632670978696690133282034473222856637947045044803834748732685862300148243170803405857436098083728111550312768712417483361732586723480703366431276669942114194862486618209711372846618276938570691350003012565824590693021183810317714107869797415408087899331516994270968008861742335090817650550322577622347467449417054829289881410114507191356662305949369605946715963470968321698873408551419371360606594360897221645528496881436642325803891268394621142191517673364236228177880834619065225112213272420851803383211248647672995601932099233437184268766218830115052988233387475972200753386147496123020920951460147829245787598553027534080943630155726444191777179842236886251822922030734512490581584878809342109552884674963758149354695886829502809494228853540746067432670881157683613224071789364545787670882955304994271649548657825376529777625629068170648378528012272760150854941179352567427561213396982281509605188925576987406436670369821942203433024280052562612114945533295797593540548625650787641407463200098421242616186367759916269282332826283991545706157229615028189928266490008907692063869279624981264332256025424369391715900026829363795280399486976464788797608993099560017828612663367787782108555744723293071879968671882934191982931244687471866335474233561199454144124245940463736477648276756717331216378068140361508489537805561652224386654039428471791400756736929994697251368987522638334845904884693496537361349015110629823550329293924160586605006057232724546248502695586695643686811412773894556025141405822047250329190112169093703048012276428316576070835276946605105578197233132126558687377233030999680491505267490043827422804573157232406056804571718959442591830283991677890676286496779673319734325540100579386626877792461630697341221799890055737682118863252698426462420937225347474948321341671716934033070792159426593181180465260299760856272533613851419027379795391007152781332166663378854582636379736971747665453818794700878721311070413941100931259316937655559757625331344084688088829194577215091539982931549113838584605552100782009205340468039531784030160478880697560432626077546895458581507271748140702511008573019064236416223210640540649406039806567074732848238571201345814496373917370757440761000478516416807801350072490449358203203149459396846746226276803035760439137070558457998777954629446039246366225486865828590876077692279410468531895849126740797032968054531099203567940262557560697111344367130929724866650133721714022396190466130713311087550589134470485997434756517609854834639507688334951269776666424274052702599322744256899527100732710650458482038070751830551657830933836171709720642224412427095525237226042016640781952938152979952676105008984257544721086724985371567339831524375540843941829782277513696243211549616315657271654692403692611493720955436644405620077651670656252809471277681601818797521286765756280604216316365546067048908433979259070476795472047253717601626722027406546886156478487534211606539731734616976840243259865546805563388224561741522984172344173879665593097946903401722593426274780128756512335394097374722929205962197084376851454736227409090363690056857621461019797022762480042814473464928889257502720875944604241371966473601616655630209002481071514678905443217863249996205990446047094066979547416453772044440539535241138068686054134032359828727291890488051571470574419549964876760208411313640153397821045584954705678886409939631229501437379072741785542259034835301589523831123177518193158643591013473938077384352670199047853307920827596993397389446316648118555609626596136536897693778163350653078429031525810702578224177763031906537861224223400044975948121894220203709232922425952436457644467816470476061781106546600481382433384308742819639007092314511768722226986052166415266443509879594628790626458545525742641518601627074465562923798100176452892161274365138098379125523150851657062236032056423713416267160220316653955933760605814181850382730109655200941140075540038940937474637807283601621321414979018943578595087842944283193169914446876153144040039699446921550496404721478009896800834118470360252778408256580242196271820920836738147552186040803638113376013378578004190681701880200749959229701688332012805730165243529414751876263053104407507613056073227903667329960594845164093826300284566542117851424552637313730319790559900199710868834524444691953439888453948504226841625102587488738442456757092115532930578357644424343087422422112858696566241586443517380882988849867011418179726950121072803069402460102024205881644198921427765140290638604909709147889268499372017468286349766396012593378619700501031208422371697136686826141369632943609823977807633163684819885794428643164516835367678077712759460625617145220575789058289878232267345809671823863549396382271519231526815488273487554983307128766014174844419896895272694143334097129510211027009076237421509898813647127378523269904348683566084633430022575458821188465816871387928476073212773569401377348965538629894595653472931857728052965978282925893408535796202310975416842806117002534548892380487210879656538509034234587713688790772316080641288468585542601125128377138447562399567545536209838655125093503257024567492866491346076243006590732858683542681788902865210063456136048760946997464126772976595178160302007788485044557249027050945521710666863326305920637945361725463738138193734647322045778100468920979529390250892740028771170831777862888100453332566693038510435617993164038067146701637443019046566237407023794382895910486294595997746658680811779294834158283961189116240974395823823990024387305266442629011011471042054131338794590291091457261095707373992138538906530179671074867595302401988983122406018278274005028166685478415799953899589679088481228416960970803361107741915730016756314722933614029530601450823983121631542989764013866995392459392260432158696429404560412706201330315173449362973018000938425621370989722553041931656312529244483601067448853288547356881419992011017159537565665268725937675561625598467889993698939269325005972798500131699325874669669673338086489462461654991593892092310793214134961836387717926333506978705535431296273827991491830499373042946706746676169282112219985680972577047391877082754010728584739206575413795562261059513430245208753482856664955167847306446609459071592847442706706021033787922005311222305389426063113507671529718248459767228624638854959253607218097318883662208410219866996159592201998099155544362823033739258317715655523502747602134113975433423007067008836029073727418588254584551915278285278502102291229746533209702969944374339524918107141180679013070402102998744757716047775002557570075984689321115858707948651467830881050135358184938428267278786548938291294690650441482802532888857582214347933587799945827433958056881762833805963071606087407912190765136262323978532687022867703122214210863922134456472415825083432634425319744818943898826479236241192090046007724882866815018341978554572617371792931262860849329063995670610203593000737879300736755937281535715807469589943942379319471289241702541063564921222831124631591598469946591511744125400590458401308499382173679202735384111875148477851282443185637846038560405839478267532232332370766209693133459660765653512675361252297641790615589401721720326072829436369898281693111033947298817527744617152306217888888103617706601910705501080458075028909869417571093141006805961208591808380347989434347177493682084718873585862332470356287970813593676127018653661385261399722868930540248860301433710559547611668728132644886107178224458053109633621263003170028366271116606729341894301360163187598188087195264273829429900012613631509002721882356686151368222152890024037447295213463067468865481866297301019776182085131274383813997969041676605472781873919685641863151148327942315463331919064981013490442034299038684803061662786222275638917351604201430974595262012071012954699124726974496519121509776411623401781420029458700479766070156922645467042604271568320279135652083992197594165927714205378077239825223172925621650609758980124531242024844125424472650418805083236758589513546679437763045156418667550147035446350451670441728738851918078302860031552221617926590191928278710662929411724165349654163612757557459788102812706816731328887456691484334540908800549511175775078455754472861995622655924351473386522763903361376352126796108238863204938058536400779074001571165404816227751031782303413003612916171588954470606553523159960106799060401319514784129437366192935449153931955216217627563800854014278995113151903711188351356875274982402743945892855260425864211842736080432782693826245044336202142995680902526619040580423029405059490216590831335889458601159920841998322165582122669083217831470245862381143634223688310658054568088084720163873954929347999969906770301181472796371203039803452577334761708879295065102842579789483862462390706469248406575729023324333296525983631223476342101727916506958652270346536395492950889548630922485895999864300850228499864982767378290938766115490616819721571867944805305890194739960047235882086095652846349332570779541174270100458827386813418044373038899013628574768206245213398583295463380042035476886534610238128098745012145003700506542682489400809016345273062220737587435950876782549583212167358418925125811259484982242673277732736624833863168583752841051260476723220373481315332098784110563119552786496243465976224492836303726161647723885817842389265770230457689639543015697724233316615488287882879897470512280987839774237837374122296473257492325768439475670776864252208013250110033984365555423895716824568840195541558903670139764190277275005575507594853626774305135174127307990700690411159409850939229658788776432689768501351626591349898765508096374263050612109943222163050480605930594596947730442156528477262277725983564854238224350926250073950113284347064731596128596504226884953892878757247513067630011988172829647230067639028478480114640501865529366960531857719219995121154853097919202975019962717920704972762366846968518050105185306360838040727754369664136091460271251104011709958705802158500486238268255735811080949599249651984053148130979133998188843023647631841096816028457865097007523806145726189457840246502656648496788208848763202755582337559889947017510366352919383062631795159403474349539425598697516174685544229734167421284381190248745501228280577371478809629970679295027013515877585335867053074784989884095199546918581687985037086959989132774903610250663905821907586773537097386780858027110258385898067914470346340136557400018990044997711826271516290960295888240251511884700375046606188052010478862860593999378576935411841740544742250686644002049153869360634252058059459140550941112486867806482643681011193130365124654456081674395156617079010779525730166338407498367774271675202228552422461813074918740874313438257614934929409505218496158133405653860835800821950562238193861293768095093925451245551308947139968943154268196564802138276220438259593176218257459164405291840615065806148850453129364444715529541147101607080624639318999463479213920672369707988547142946658791147756031571523644336017882727659587413946901103789260302923048785905986422803433981816596156397715980365940098764458249349836467058497183738607706534679539753823449808560914402128953936015378608046515762679503274288484343221131178504714584682178938785282766504791490752858745926064333951553422915478971827762292499463791464071734526346793431941132069419640137152967823324010362093004459962004991609721181416342886526328731610707888739559048544706644978468553496157781783083060875959163382782999558328365363954947063530072620787259578725181504840068148975983370120726398613602271914250071896119281131876752209621997836420563988585735984828431009295716346642393072059208671629675084128922401508197789957497098815364544630365533353409262668088718256717113976696031610910110895809885362781319934941926778132929230130821218798392074831484855401242215528832010593475713767046164022522063091623099877346526773467672236027701127484252097744440970329860391622650670155988806070945297935816529854838480912717976320750992051682614049564445550013626916250985653100394031957267808496483863787284244686072840237345491660673842742644617234769850452123966225614106396552623237635040098374639129668172261511590969876486971712727519100531762888737479371541105972953179583365373273495352726156613999251312873959454797937101391611706603045692684299008072184832229072922826978588424375521041992990323532435664520132338555667072191564922584058580790524741989091348401657210158652354052776540395803563406690354233304024021034288380086992169664582893031918833590603464100068444277721280785316439409132997792473611427024857898594989156909894492145129652509191310308944156048506748044654664888256478375520409552691940776018088130042720368211191456954108219077949700840710904077552122248835220219531809210641582525233685184310026749219511288034015676736327277257940033586950067111592461859929215653639030216776955612164578931244698778741265606627301997059050759827139495001891153940889612269116671495578454216248488876352109950018013368742024131607159212347250706109553710566898485430465418862836695098850194756377352013837436982150592025931795623107291382689579129548568752413926825475568742100408000685626840927197704742627692531141235196539296843245532632175611074022636444337610978885461134178931198415028579810948653656384931487255721550325577738312494565841742339272087084082097701853825014060067028372705226058665547218857630703030888338455213268181972219317062741933372771632179048280063244468912239943715065094406769643791423355776717967118752185753314751654992206865175625177308118142120957438082968751307400798210338242359125793935215899192959847813663996055634980085467540539993993783134366597723920838397538763419254869028796597616962320069692630021869603297095990065349743893118934182286185486259143603320628497112702608935666685709169006496476115950786453444693975631372100272391321160153809581912008458262361713506457032611148290586038677183678922454253791349151289759118515545032274651576299596058032680063468668800756157970094175829733283660039286796294874835359200817114657329525909206442459287335121778176249067104540378321089229545813499277271040380587334552305344447820490749152874189170052950927198587894665791179943291173634356232227523176227205314456196137150087893591211257363349741791228780742351277172660487250845368964207495784165137039801653300106039495554140617444768580064905420432873257097089869087164765538558423009201925203310387228098375646155855410090552604470434680867969410927954074824262272385051079151996091805672438950134374391075017024466678679416014025891359480903299031759264455092261666261954836166229851130303374496575394963861037299360784236668064122473366224235791865888110054383723796458515826179502467336939361811507058346287889397639396623763866778414109638214116793588337523945921716254548687006546448737874194173846374384779171244289661495866583870518932913152641611583341927169497053466160380889999975348434861582034190798896252190909732694958948836283977843896413168644893556987822868455866616094381183786382061456459274362895494451426046230575957257906148954935733180682784455759570629162350608932574018473536052164926240787583531244478447423999286124596833466300761695018363880583341598119094121256750728705776693807061738809467869250065039944858263571925043221100220352344339291068815725242258638450362557413273686527928566050625171697878450515261785223651971303261342681459039308908025859757749571370882238538488284146385693051869494142094131713436470633173775422297432071726881060150148019239072442065945057841467153197932864532956458848830484559676029847216764079038664698321150602014496247324859167852192189881883297409869234000882155091642245472384748053626905303576871341654548262838266365298204106346183309915736688011053692795869695282927693025470337857685603525059160597635366734401671463337918199835169210329306159147837559416925666885724167359345085545267467971322686589958982280170117725098527341558222960738821525125031008629527124438875872785828334574475555343390754292889477270025811331049364582211023710960475047249102220849110511703306091466398761532162551936661681420734913352761226925091605796652353362148362889591750609567421350801877779813602857039474573953234911067125345052397776140782760203776199447271953282501303249718046282448828566831530109094377371093526032201339653879928404953888774023242406077652651810249128917910216550171736044084286511654777149819884059132852454693841767475603530947530936749763359806935993668958122728430781259795072680942301088750548116615810452561415226337725861164410253043740549842394905248459998860011266557093676089353914386476928696787182263310602695303804466123977263033368434882753919066079813056966726386629916926790172177970678259504969494052478631030523157571441499147865169662512342792840323988261214855146264744038666337868120240170540103068582781930141236672009357951762084866409640839376536136827346365472273135053673916568341282028904547966142878156797669289326829629791265671977210117344412505339681310427526019750171314409537901573363348190280987156462138193264956367605962060133855749743594838860327137780892675882847499237620181532279562288076965284937937242228841514285227972650714685075272446828425345125383035403324951793748130869916560648164973486665373621384914741611609368765538922362151648867782064832585000771346680389782309396866012679337367778312518506388573278830953554332594155760593338574817416607362510935310173162193354412021849073568557351835302992225483772115698898287930907623898747543903942162751134528171432276765452816924639262443702562060679757543856761667196839363232140446442532452136027389542567810983986882618348654389648922832085866936975522877526750222056482100819894434331560480415479167622692916435305623721595692008136074592933892933759405417316316922076044943920485187593289532071397351605768205021654183063125533829123198874998626178102768960157350082892391559934153093605725564879965826858539722165259189177995808467491158670971344845525137342485760390205640975340173829874798702629597851563493791660043837005107274378780609996866927497946144812228642177314814653962901704621906132087538801949955675218164369610036090196249856426793858512849818342000731588801017436113228590231089786470668643560638980889014672929810987777981151032983247603171334525526569149158975389762129411885186514521218011364776785957067659298300842350827587145097893436518814033987386505957542572660870080947445616340582538303009371446849277105024972618184486992219672820057126705249798927281766551489610038555399300662940051499838386119739389230656103056538854007425975399496187025435954457317053645350062272797823352323092087413064924535131840418834815345099260185566814557194987316331248337913515045436917888210548549570096998709321018951357636706766230947971718980480136408613250271514182311829396046856524262851227791606880932872489649070056167897626575216239761111397440261490826755876114191466150476043778668462817634537219848762733208206982550314872090899306214811354772508534960783909045155411950401767869258567589812795304566585011727411793675609491893784270203416244206867651567562108053225281224125843661469766124696487373590438334243231011054423307369682390046057640523379770167601159376230371588573100507985736172575909131091273356550465514810933885887549298252526771275748539829567504923953669745010778853771746328597090163143118167764251672422093936531041323183916670922050667464547125313942940083785714209111992574776388092139275079286776856187676190468214241850423114204496123491630999433834585947525914066419226543179101175921388604030926141100980623592693014909304841532314276445592080994890260568902104619101057637989892398181669842525305279635299982944427702371149139299936992107694479120683628826807345144912323182406580075812853792776386690210570471157905175814994315310721094411518052850526785057880370042555474353838036849534103150176451659398625443016763239765996574622941814034804727214427718100589000571322518029629371764202013226373250047475062259410498628697620584636238957937288362153689536993175318312637209262818089811161412439732559074241696659577400141998526520871741333938508800823867829127301871101480634807532875079720494417968457551169282034737697139543189347890521339949787344415976051491688612358641942807217884227672835942604622501283633224514866117163115571490246653569425044622922850315092241461958446070614485698016658632265241312411295902434959711685549441655755377727429933940629698264030459765638210173350070940407546812787708174417875313800483093289062358391070127088060678443867098287307180507123736961083686002534999209111830212670343746009485235597773491183847385850210054873483280692249630192267030658669631221808671939462334577213005133306182547348027255575028650637351986007929810036889577893154045897180448460379910878174480919251696343564258007064069765858711472738451822128374662708139978238176048725901331853557061696350125247958620282826726599573241043317367396916061291382037107036867929802622380023408738646969198894496899126517177211940049634792838712775179324195669986375941394742418813024239294057748440887789513836816006943966111682430125804481445253579321711566731897404642328011182406411229231365814255021463155575574176556792216364481217054504816148105638042577096744702199591516131822209997529181139004065350463113849964318730823336174078527282975050722311369529034754149510861805751994100058185237485940720972629334737475516485770089055843147608432214614923876555737364594918627813304036688646968382780780848031606705498669777874315826844970582137709136019011175042230628490413975883054386488193769666830751521714965487135084569657491596522543259915571947315217486204392524740476354952753424827380682040530954015664429090439952305517592343853873716233721589343654738127877177009638748376524742087807940053002520794907807349341405045631415936581075636557432510252371981024912207530867377719907947824433549367710544991115348996270779604817962111531711108864656363076370203305324667721824744631102668011615813501877640794813632382084844053440292475169631477838772126334580053588126852890137575720946727248907548631243040279652795311592522974693847582381431547810355976086894399339461910777292489186436085032052766383450758985164748092223545833654357514033788352471567764493597381728536956650808759667880541928106276095726211994961796262647203891833584153089323354524889602593577201121700737762135931545836736483879747493523825333052675598479129462812183908855614958547120343767250524403851732341535899764286072358622000188457055869262891218383094985190368721059437335863173031451819108661935373924411463976288836507997405869387836005203881593311105501761276819950731920619186726523853613363822998113117833631709679987872487587597791152151823932542529069779307865492162039057725303618577715659561903302905595442687237980209627672798361520553326386526604994016972126222394786984673568170417558443989351631382288730405474073535180558911355039101645599195860326979134849106581017605584872516361560710231010011355019100257887385952457245393724308108990611718526011716704644334353425498464315367705045760867740045072817833956300860838487286951218950160434308422953821044315303137601851212257966375347345588243474892216638630639812095306813490954321032844381712589040534807261608864127721579822870134918944390026716543149682161753375861876459340297131957199756522423062523634594840508445717056472226123841660755298970056609044709226268653484831990531946448254089276586913482596382459039530918411108055521030493435663477021160384710847307586335102409414451660704441262710677068377473926741951221611899228289344849970410648958079926920153185317824591591367003919928686521329523524639027620543423064637883468558517511852254270256968420965082861137461725909532967173956221177906970854505992455880671075335299593959289399933582856456202949354906089928676656292487928955863409732697268290693668044524947730329411840130119341452832802710648930311697480256883936454363699994808732560699255505465363985967959146648245012759233279062432559813367363441995091993922043773695011467513828286762692695639512719458654533154385733506439724744561787788402840113201689856794543369612154805504038095133581317725061739871611261390109521721545483337408801706586258974460856002993520534773735146069475440391119148555853551531305309088011193999786022879315714826310798317160745416743409136760791082468438063951455838243697744394791118628083811327681803661011952490726604334027927612281875648426819448110939509638894266049691368089072654216077969613479824547604238264378428367432939581022393388553631659954291224594292713751218684775268019015916318726150839463468764347534286380928309462642139902124518042811270296633161944060154215117295466289063366159630633601574549430614195352917666566356085249391572389369580156811205907190467542768607247071091856670204732861618635794233459281687342675788807615324762196551037993745670852025933058333868808045501771414572441162954356676152103972114454156334595130942126403903368464022170767107482877737056377542740570910922550981069731365650952192994323402901493954153600283287110127012283773501037170649355011059408912411549859230818611819400426594388589055861825522473527050529895974404726317825309570466034226886231951280320441022524203040722890494957447119246102068037236379282475930325026563003084642791243375778665291452592774414664820704503640858882856104488414529626552357022770919102048505943177462687152541916469458151434681930971968967199659631294692023457558672760669732705416160408529456855249314196824769389783475375293124841850993973113342524779747177092934600542187900908916578948829811846528588806916211754480659658619912370414404317794328394260397503590408425368343087241537256969569825267454336435209776797989031841367960063175453022308692946081931040079662169795959342522093665963315937629703227290479875270824597848935051710248582649511893623773037803522463808942531390298712977231867046414775323013584644433772022122608420442810650622663676504684361337936705472907365700676727202496067134634837787375770260783898356894783923452041169582787891640757240567603589521734037056491010941531831470482611491126232132694895081082826481677393809551852471313473284008642184998199837446345737971820493262026779006259316103842048263592697745514512773221486891027319080646027555153050349924433310418222723546450560775647240891015826721516663968685217330383820403830935057973520629532606677229134885834741778640303198732470382697392501619212367858721925495141842231435951698495977324304185006211031064875587323022234939620286852480502607168044803992320882361961362762048432631873841183882343179502831191290219138908591750186314359580506096923719007208208532210228480775304012557453174450891097867153265557178486289541229586752698719438261503247317288120098062054044592232502683397428204504540413815151173004172462912980265752497860419586181660751574412569344732572111358178281726617361287228824652295547002133744330208938507857805295279937468492633440202526904043771281903064923351834009283486115743123201812660293750605299870552843378524287036758647002009872049797724911232940062305716735388626161808142504827643631347161408425371176019761321055373631966509132107076427446554885358296452248450303433523770504009262945958777115462859460538999129218995268936915657189052314497145833088531727776116653491431011849009939158138614265216784687461234651820089325944912915891061280095418476743258844446184791562683753889769588894264713883631100630051329280761417003562702598415259272869733236428326363147432731580581614504280051737999578352579757947403035815900437326420164951167129211378142556129540103651605232667621684035438209817252637316689846160415973313222125017612928204790955413693103392010176174579056655483763708729405722883278154482942271755827711564485822326881717969991461409577627401571199553044464730425406523817038793180725400765535680266086225810598278335345911143116860787520101927233897018986643755677991319770730964833569930909170417115929520593588417870133803529192160273340138915512763129346270784476121618094954481471588224097864479810160496220201009989943586944392717504744147962496355654106587007659294245725891040941584319169868685867005830912473162081925404508785896637232207077836197155488276885910751167198019396035386239145372975192924580844205982324699240971919782407190809407484146574666707412418181658504956842040202534274858341112215119357583425139718481321198366327978729454482093250028601794542347518329844045387815621103844818270301506547988657349021322083024075918081748458741679450336946610211109680069487504903042630819454628463610145957893576181100342050964520031219012808333848767739207528084193247847090448211592559168087684452209872177165739383146666300849251691965203756016463626137493077822581360258508814352958278649306114233416116805218534165069897279995381709231560716659221075095783563579628752904954242934565117825564429266322997013233946968322822983067230087531365951758479900029637498755674073896244795905606603109940579885637101096624391307544976508414474099443284112153764228939103996355871141300269119845072824825623565007251628759507685351850335433594520946699827332035481236502453501665851305468362029582873004537029130755092471097670083320177455345763530130058989797633809661482936118193664934798570257831303710195413157578387583260008400254534956859084262049796500459436473661733573352653105195832149320148249503559829459853356306313149348824321003672076732819242351175587241592481469929836273401725750242865289906830450343188990606212875626113866562193615983653784033602024100814211664229847656928426162368698156007384053984169926593042011296198594907979942157385852617706111326852387503664581490985122364891487761268166777414998717746914676062707747582408289519702753241345892382793952978537463036877147900212043064370001029326098618657583212201367089775408861039689477998990256390156082688080195234224151395816583349046281973143360633853673196404266350023661545412877444721078953078459068626986665229531724085951063724708058449852173170661644073091777265167175582513884934073228741679395855633365111947638484802638727576757459094705116933691511608617492189454287924640453093745570116663351780818936392833386354454925592899983672749631545027754057467972935878850218184750938375090496779500955957630131637970735988373624947986697445480762186689507893858209525612213420345211745927025118163877026730160045002503926816960243177456510831370401394489785265237419551426238368305955791722475735269603550320743679574759194788175526840208116493003131941677183254175310431295584410104767876901422244672194104513004862925499154782352944036733003909048198344963431066364774580164631922419819411931520553223361085327300721165406878620362192827885700579165150269736928692265451217686685965151729628101497620992375133320525947187524386243928330301463014307536155617940542571889003176420073138853679077492888136908021102654015021236836314483526606219021944231885235379096938838768451497976045296340907041971881252730737691967722801918704936613651320668531188271007426367703793365741499836176022987104082756166007514677239727582543875020483301229821453858118386219321287600278589551701729127643321386311766283038146922764513779998003677500053339980016534712650790324136285695242784999369639319970542762930310668475098999228771362856937859599671327155465082040696980929929518427971754271826442305332568981919597803098222159740477092724248729209101493716458069241173627414630736359032118358349419563333223873008032899315127686156197708433741097090428136168737695671963885970544842515975719762685202043437373696828650458357608242763271474881394912484798858152515829287693696814323403562104770136072446151680958728404183752522293485297358833782628710606549431468651509587221546944029246877180245368024179563953386909024079615825787958250924258221466729877715289864663646980407627730400048074829242242577626403403301858508940115194634333253199769235222080052699990343862426666880750271229619475127039992735396794384068469821930133267312363512223700153621658042185171206159717297594110390811324101686763784947357858531727463961707977317205662847068482300670513279410855584677008313902622979743341043560906451315009176646861932421822658902830192902736976062862068559978437976968986779778836208337680536896169672091351123297788694655871456133484182467614487533796021695329752738992300850676870186171617557846322014513492883359113968297181748414913300324349257149038881479739162702356564022099507069492931683914285308866748680780520105004425704527081811392664383781853321160257341839631468111510843605778263660634967100752570362661552086220211749456206787302512579659277731236855394097640512561786880328442148746216874767301328555076309304408829388585564262531190892295381109873030214063617730992779886953587702615268681033863727868902761310621706401279118822701784310932859002041478077743206374972610508735541474938785916939230063723979636279669753162990435912419466876318138701562852775415910978934201837025831641638159939060835839491475250528938226810070912077374323869197808401421379485150525374636016212670785076073139640746776293431801300885506725175899633978532586165389100735940798869163939666033580476589297014680325983820366255423903288919954326060740080347982037580546907402061657071729037856593378982083021265953360987579309140696908586619247569050178119317726087846995038619847137548951163062155886523408422140909886158979260511058660892879390853222583574068855934742065180150279563981254709789849359984281749463403666100491106502869980119790260315962617433358144403098562652327476024697230648793533124593272900172954139221196675129107996300666147011502840018851425769325140382943974696276222636798574711878190439475303861480149195737768135990633202976716473427338544748816917560506625149654925150679989264595742397125472799102769690970436456999929425565601806524364059557476287041184869101900920352430896292262886751990926986570160711452535178683764213209552960283164709357706663078031497378578258272349509554588662201507088951327218763003164293367209668522509193462207872869424824349703380828973854506037405867612204572005610265083339885365903068532247026791041865072158570282718212613569969853172012033585972840204296879866021526511206612421540084676076300875993623666377984506385337113184400606489116846486548601600409851672359229069731927026858777715675136612641600194340110130413934416979025478774034323578402878099783508516881798527983773396060972037106636351377913251973507264738421274201069458270266871800654708761251015608224201787917064948645505848561348922573112708295002935192641907924578480080574867867832198357318088400579322942564156525124882199303213707040160663670790217857206366430425427139684503760265493135896280020691368757462532503424842757582593430527494225359243592923761364191732292570385610954275531182983357095175596676180123693193022826582366825635647765910931965436018383629338891878026959331526430918685723381894883528849377008741150235899240616840488214068283932376991936904542471816023322033078836005235924596309316798921169891330990212920794870220897895035134408624670027473715435422006882696861558015076315805355153559052300931071647917938287345080432976810243238538407230879637796615851177869224961395248936707617033794390236476923893183990514666082869519322370918977012453715476725181862685732571905582351198697579538988905432060168784537449596506811259415245422515467295689851382751556456643977122304995899429120286104016933708714434252762013001823494371241821588707674444798784145633949340525395373844432673686996902742047549411026331091157483904346965090348002560477502983778891643273165153816552256260809833886042002611745304970342061409687131676086228372287022631139256067698468954250862755845402072316300088948166730671854333325797532382491315375302725393648421461463576356194513402264115506524148009466360488086325080774369932749638577879152595544289087207240887392304450502186398556587006713623793836890059507136488774122980359704219690813343926675855472617384591802138695537846957555210695554089049136165070892450224562499694029053420740054038744918973975028827747968290366682935978889312504349309112183534778428133986895066042755687941169716170463729604943889347984578718519553842484033060279906253569176331013140880829491689548612212281325994710974953876601101509438745080850432617089764355221499298007279598340971644852876146910901197742497893074908256661927814406523463580331259360763004047385710603769420863893686226242703597767769808482915301591211054550849727543885165187555164163223171815380466044003293578510892301495444646419444037929584651804216363301554223038142362014734566550155327965193518480607104184226048873313734695446789139719378902555252356704105162843387665919312522014219905341158751121180847812927026837516282014609856918872941752793097414255330495036310902219310771849102202397552459671457865780924647762369535971330074512220598982467336186596460885659569087220735991984634619573377300117196824023870926706268707891598506657831086928587126010691802090647855094871048117227257513642751094676381214714389303346692422974744609577915253982659245289944458466115106877169794083902443921475350875087575418291312586250513229808945575107715820049694483855491017579716983061346252316996721147314103839420704249164185558206820993652450373600875939433415981416211338547175077596008054952331114106852469980637229225129479653855188016146431867214885584985158669045360448547428173942460064110552352901091810433585460628754830421729662970171658481211182160714458264013819361810641072686205996808965710715128134158615267084080030477012249141084306397301525872294428523421379044015675846492228070989795984453596865886785080793074901626575000182578332208378597669241812696202880135879890856324761417061394672374221447067063221034931214022781663410542877876308608202150978602862477289835982194780583787328157525410020248006346477410895242173246706251056267900756400205293395462274052896108947891518905309563502840419504655138324977432228051489673474471870044532999567883468477232519996140502125040900272261874504583707935456023975503783742659110804377134214197221560618348384929113200196280894630856500612295691528980127334655851850855579313636012031081932728231400383874646912324221425337025834655601013714867844153681578857689924905489820566914582081918723655383063548911082898556747671204975388913990864477584771938423941076707125294828262238253692482983456573137502506340464326041085972911932611168974911048794718128615067310884445760564163696491277473519344361891357279787863035117299861501862793947916729861537060307068477913427261495365540933969323308435325138144047374623680737604958975718054301972760372017069188604169306542772783729490755295239395472471194443720146269297054242344824969096469581821103902471685420842582472190728535774400488133827415342277710981407843925019036845316919642787906265135879727918247708531885560807332676517028602163026663309805564041942676553325191975710827560023458205925952223883020802700677551051365217151102716970532288945822518298371933821716745118193846426484983533099575689799040559948882752830516298099810978217734798920526393477431198544164728187656503716902677396024413182451351506109252427041459922742508774184526426282932700966454162638799860409649498726707866583920663087522239324344504608437852586636369173672613114065057732183697147476770005364735394382872685192858785358599169489632142743265928879298723778378852496342563291403972771681484816476844060296134146963329064037922655509440554157698299248782078870638174608690940463161558863031912900375080134867065574087504315401487817910345295206804714103983529283916380895942656480946418493107088041340585302574613072269216141519731427080190073942483616154604227368605561794611273581851601608868172951592476287409402752266737344535383854768743916519149858884746659246882946595967521958296519090177823344317825582859799155896555275508104974489765995931267561247644571351073229004313895451020276134431708144042230219156759889637810945798384214556789512410104752575502125721483387217876718402651596784254442296275963554453498560299396789034426215711716120346073360437832135792406248543639354183801373195920250860110086601697435084122533418270708340765190076606723848122012600954111873211021255662762910487781968809313337170468271852092543230336913000261487773187533490694083907742534141935039278999851275208389685574434203060076924736760154502860116374886363447287329874907962966553903152703127104631527587675807333300758221495760228013790014893862349367599162053309901140313101314625677202699641954508486142830404801487506778514780282495277387343317739361231546433936086486444239086247674173997945106405780609419390290998015224707804936281804832655632772825601019567635933458000522404493060086540464563894414538270370603566005836446052984633856043845050274943107045665045994064162136206265795283300056033188067703398857384758403503015344498437070050680634058754018682751708448197332823286012255561711888008000479817444108375966256528166652398393592142767331364190628008719965568985931139615570005398970069446428305712598282058293199907277980710552126699288150052184975660965171347814051012897866953675505166994163071119259429996684753195684116143034176212984262577664337757138424264672710744686848532149640640108193428934396780644611464384976228000499138708666621450632395970678525592324646935047597517983447924580176738128176281463366101479496871347058607053682020394954808430087555684711082377388463613374463193370986507733645728539291566713201844828013141619292679352449007978350600993383651887004038004800935599083452075308652043712787325386939606259534601607118127361880733824565194588660850267041392746241358133890202894133967386788133034904057568247046805819862910029300488527996500774510609957886159452338880016026372263030171144939141019880058470688879251602585977160531573826575401041968775853926294047707711341171603108310589012900154919423816967703999987681538819178320147637963841199978799741392740138627433809061361935531248080856678418250728350340160163465343375849677786562098833909952677034655151943978027025332045275676930299652987923848726613616243398527596432241071070445575560332207546009273346442374781515063241739215403746283798159282503500992227184635269130614177423802360333017284400826715244055091763872321327360439326819389428856944631340036873772099309436014485189360100187761176039593055688122830766097453750028412889479373964405734314980017312654992825370451223570565096605929789225324897669114101499452132617952894643545690198282447719998870224247153995571314119760366450335946185751792874307975132769206853631144725799200957382766965157718786776706556322234623290077898857937084024310739853249113249801544537490444532054545117559342953730705249047027064065447922812144682060344489151784192690989433455163507068383505096432817430555412491573463596299957366268533166877405823268085189456131705227890930979300657627303369060599165371412572642510115591138299859796165096505957629689948403256465572138431223538061733833607766263007327024811233047111633736933662002202746252172814304387142575601708893223413699401997728806774536140352419652238509574630093407077751836232097431569371629051395117788818082913486870479959209718107003747357961738467112303944970656031024007373520259835941545205312127498227499744787418898278542528266909213901063347004338430199904131899210597612172313677269176541667905849750758966641852877726179166891260558315036764569189559119449680884633581809528051174878128928151275417004795533347964505941153341056104714269831826783416044706466313564746657109995486881993604411710905757769690720143610274050796022146531843242559088375469243432152242793450100474472261411663181417886251739250914579979378776526825027477095676283941079156038215105149854091845093625860432472163372345438753770007665733691495120555855594310280570451370528544554538570300561329036509351568003592999399928819460628091652870362819407906454465820707170064441192778070375095878222169636349979510625665193462594234941310366769145736843111882302279683618824653370411045524893141431500990322901872272815689403250878408828691730309417560204883679790324878320675001815961310466540560783279251810228412196179231252795895794778487973754700180700815814917781141748764898856152414088454700501848163686315939001233431765201974333691831015248502196280054725774605644412099301497572219623795963665692869328084345870090849772603195086359868013973986930271586133159577200571708746445474082988115587208297230549413266931031838384616802695527483451085700613432913623478117761953987893305970856437980508115945676351458125278586187646404587761087887894062298103526240345850895277625741838750674875288704898115148647831824917608153614374493694614562906365513176144144513612527890151409580543179029530178994566062233516414863517222422644055552413149532113382343025798528839790687603705686478924566770121526133676741478964652627629982808829839300156108073279657916823392799125175734611742864942622614167484990954412369732711101050113584766445735923838546748455383511267701544649161843171797112275179037386894761919742233447248090821147338126188020578466931196451332124186468561954662110653131540524757078779823988118740575075203224155770754602673411878614793642521109104501749772816557854847582665750707826105188658279933995203922392632929891967445516750419880272995695513405322717900001818806847949498474423603584473075446219543266947069174845459709834505409431808085357352474847424784620650340464952250886991062451505943424690318620804750104071703646499953594566571128794863770716323079185991686497146861874129393695255351653947848173660522026837804422448847310875280353414109088857387911761707106441841959152668509645985769237342264595159284662288826019932680930678484981346879197080328123283300117889244540986696651908970317754526505861859227003676767773611639411744373627277735644060187199258811833126844917139497476222784015657642783777415875343567657946786532524361079517665508363073721901275913897009263543868537022260878156440375004107224598183806669215931739657653669914663349008850029369183574822012949561324660088845163849908897219896522400053010484066505991088887969157607166739177860887382190010369014771843445698973880003530247030669720625950222820404031266206366173617032229552286840268889118738000213214519889497284235745727840638243150870436058786335609318705432359416869697119929152937220568862188196320702762159058126388345335975555466409624123505564344446866848933458427427425202107013073006337300867501967726441081709392478687377916816955869305488209697793473653224833060702313675308709243155557809515712764138880217492564789769660507056089638459355391745608500091766955524877762327502231225741139812374077042505747573448508364133534258223501547264097356069546101428565324254949587933939970286846616519470155590535268161098794744304044017495049179159531485181087825547952585221789528467162113495227814786125472277217107900679667734583131876377054020908804551193763596644419057851077320726354194020925569629736744247135516541053601943634304624013508700163734428897645827515924463096314902554456574392333673784390297554058677206997537831874344821538802453141885002566935467736022864334417992892170062325040610643580668977959956111328722069117334821547818784910729080084861314648222342378688288040735267364725959156170105528450182891667546673328093051388535517467239671768065239559010327725396855442373860898674926833664821629111064173786354938534693265973418768145955228020471126786003649578989897923818555577393908161347773864333418658228190293837746090214292706570795820771817084140039568513942680570311227976556661238082296477737054317777571715005713830612291407272618630934873035486775398619149582037427107718940801927670929755078791167509867066403542703608238736965824780972625614627821739498571027904746059227416935179946637853881114669591928757307207821942890036382434104389531588888149236830581718375077380475751399363607009901243155539260584220446316012530946178420425159375109867417869246623854091135121115313936814792880188775909346270215404518755952049868325740344330363596653371826598716476588380486749646072696957177167788609715697215434776379029595513082448649105944300032406091325795914943917831234041824139957982474064291153482621916932504385946921914608623207444106223151727119701484240622881247291434492107996341355448799630743709426705644771987933666413141327769362436156840541988224727196062515900275152809357647587454158265988269669277139627863323256632394162871115132644679364754225902204830694952877800928265731157176604681767509309328092562117680357979753679222530524088963127816741223030826281990227832770948373014517718723289179285227497811503948825366755406318286519511480476964228380651088743799738403720031814371205114390300977309755113798427819990064459860973532526095830146136213267942918265271687611508651606818975593264692350956686589929892370098876753202590960470033414654583687527058717900248904049593929398951921048667713980593964949294552633094158067111698176332174746127281256969862782949829024223920122970691816012271453594876850063202644635869597247254575170974351378629404026391400157436945760073220627119160951518542786991170523390982224413102651041798278436856862369752983359843113816978407699524058193814721177943392731884901956704765031355452159484588952865965965930203968097418353221489350819578846335625232636687656671201530375226101358241393042109211479694408405583252958409114215862061399744582510686845189568139355076538330625258483922670250607779356749969195687784899834886272268721097933849965545400978856102640096573453793606239425933265137635578927403422679045640503424651148275213741244846455323421095225353722948166599917967905912592554323964819111893148699571874423281848991092207336412276819472846136150370716429380925081225035883253544529434176211169032669921290003550697962317363138533878781721455187078752014087799012187529587369560356743502314612211020942747519324491045774820349182170786706820182303932910814102387500508451316115958944183233784701462229743214079990197571707062775771124632550690143440040698226773409932472935976212211782902841992306572166445868610199470068468799240794348702828624757624973092267316893983564644602020325721980075052507825245982848407046087356211984345456043486350354839845991988454968047315447851774875545271728912369467656665483989984025843957760176657466672352260556976009867898341011817696497906602573708921136007116402068947179580823136524105223437661537198881704288453407522118576575987725991996743050674433890028089689712554331278108316599085436959739814802857727725123965377545086265278255751935479240540738604336255009372089357669999034938337707262315964303107088124036697563207055483857295909142216590319833733969427590903328445092787610915544274147890673902858562104304811194706753598467320596495934290676921651915517973572993243436637477465288347715456415934707512726456109003917806407728137961410319024615352499839774026261510012769622367122415111470827648942858254863727652050302401390455784848487540587914610680780325006649210940041344012290293091407939452625512253258641010776708683846574359809802978177178938285101238835462777205027680375592184796678653312493255311576601173723002650227886999142392608614525783499459682795777524321858093918820271717358449745949341643898066484554153415403131155108430750224727207940975902953034144255051292408675243273670425544869838724956638718084618761102725353276533281099809975143136627189038622510366678872960973779082851050329589160851662523350419955320416866337027805168775746967423429393603374484695065659569489394451620123147374033605314114026371263571607633546199946408666791180308965619115370591290628777855355546246466237618694618082341301288002314917485820552897205636775207033323399939733479323930772044543357251747353379745144128928953993264105967925412404029587468385415367359914948680558843229979441499338225179578879637623527791391102636657654793249441168057808579773989915833911145647843130232183923532484691993826705053076668160646523687903194123012399532222347099126228491881454888326083974915827831777509804528492578999926643824237125521223647098822297749391023183865135474791793505628243499097460427447699531445499812792993363053042720115444177075871436118514519272914356120884373155645097910078514645790359479058222364426578267160856973420820254089350228481206851993053874642795801177527108044569959921566561947652159035030345528050559479655104433032500963466510925481967627423545581491517086097457137241127681672619359936103014821103212251828918868688410573048311307129561722623382025731729434835966074465605682671090744377642346303735127146051296313786324062630787746878157216577209953711917040856379792383165651427270287643787657207894991751685152746868689082321673806733124915107374963711889197699890789156723161739804075955000234657105917586503429156007969157296662560157078032171741639576928917203445931351441340223719428218839020742125079278918490031886410333032629189882815707270702444708290705939557368984689050857715956666182810364534370745932219300797950525449465833096003941779787621340307898472661024353183723653954349869473714420883617486565123642869981298625280219776914587127508998016433612391178671201693761272357306364903381631225520604074453878440112887366378002223177006804812456694687433540031991678342413813903619462937507627919233470037958495166641259985434282932259341351366837039224102011755552055019571811016228013542628458179698250965267120490883121227959112185475230241467787583053656199269907500429437585317688208985919145279704790968083467188607871900906436815219147998376218423068919253959435411421424249720311429936570875374450339928351135103825780807539972367598852174274750518540450907093386303059237529675072877926318993321540647300904047852599481476098377025947029072643766095192512115675502869531964822386906038091769088736888248071629484896476545807664055904608071236565989796452873830352680389591889965893655289184648408426259565063313212327096734240530489121826594797432042532154062003173069602693544440813978684357920976510663467684923677662258847684890704610308901795890245077705545848076094369507119698502423124657808849243693229404379477129477550596369833141445281993008749097902455733797314150276036622915583512528152894589651011906384404220896409479787545813979989321181877608980234273331059802774790123370493757611797777826438291814209917915592931443909665976763015412396017503477122715710078669063694696309286499759179717156522951288743429505605815485616074066771894639252759614069727993976097189782483453247437469383629181529387806576171842811276397759073573164715728464057249827087439107766802075778366826015207642252299931006285371067466421425990308476062858101727109026173121297266862347822734143565665815447150564609803150714044652356516600538699989792487353104819959270356188381196986258955913339773239386365552445992076835717913902439665078346519639636201714247212101119374391104817720116153554552687153176324397311495875648682287761510281787839026431893745488138715313285518815372095304239769304103441860904521057102366176403268416867291682162127108398685712427030408992327706792236606311658600017653585032843501209664680532970285538995025434301838844376548893757168607151228936143280648390025558377959233895663907628240407131107780051397445615276839790583028097108770246495137144260332077336006499516018452271801641154878996286409266738254613457633227460558997707228024043760760512000498061390609866911184265709923787586252833922870387710939717579334679878360283219848493086371939731660290415010527358307600654097909899700248793482445894596583722918377668628255409700757039861973466620707393227780669342465938067921937106216843703617104992473467656120120872659099401004475624347613228068914483806098662013402683955721228746246415493809688504589705754765999714450163866664955981070643320876061126970418745299121962731809635193296397145337330098514397519953015686326987324213035108035303240555317218345174209143609578992509167387653654228147411794806495896247302585625605270677742205605942011315445017937618555592802871383648032758479938816370992902508042682774423138859914335755728062901330615532697578018736639764691891661302704715196925397641863007017306180002005717230192011117872315997206268015951703685768831072858562490460810298701699936506061125185148706852198969120369153935812680705642410619118875412178116425245321678965324554611492992010672103179250958138331899654717850939549461518282687606804489805602383118440030458737313642726468308571408185548534031572950191931767506252146840545814409358294444625901885310741083954319187403855715440620968807761897869446501169338293791574414476381933349873563404284201123054059254436005922943657973551794980437813858677326809907953182134827927337359664725845180915405841849387975229036135329059194734735209038908516056734198492135265166332469496875013990277651492376782374434124342289227883577716705075781302821624639323149096797192455162260726256548864432671126282590107483918891805027751924207165774571003211771705696502306831520722398298251136874744483241294668503563799262716541700562093610829536257311956726830222627926777889705715013317410180630376254184084411825510833925943065931282920891198458814937694896466330049540842452634829704467276127922191045037635788625973601138318967733598656705296926544280720297433344668469402451774611720058553997208953299122692433037273485198350596971919496260072189826639656315695941754154170463108411395476182736537742384250479358080183733810196597225200715367699601940224209553427945175335293111869299389931495561455142166920371611722945702449359222577093015961351806564082554530540901720550531324122904708381955144220846027198732704195272753311086067896698217454314626484861841614495676829151426116859513483082168991304905883638747076929677179327091007414031876591793492823789262395942400616670115805396488939416337066898573494777241759638808409719056330078334400536285265882336680495773949284023602258394723012448080016242175168873894385360818401568938285679643711126180608319531989200649793655141644602989984744110781851746003779321062298084664126156704289831819462262197145595093806128429513402705714107094869359664053161076052092570589078349548869774886224544141992764957404005166557673922381715639045874304090568264468729014674289128759732491093748765489590498605626206020156164652276361522831197303344616554607638592429060425948610735065278578667568369024558348084264269425871101718854859079754630100103476223401006543428995138733638130202927037470139701861460387189755243528683155523803296341095695475306374995500580269702593048717449253735290473856137028270313888105071621853367287681409649940235220799903863265003604870303446361023957065774303369175879094949236958792176564552112939772097356155014337219685246126647317741286830913333725636192098682938308838601210109035049132771002176445208469196463333309275225563807799180429231678876857963419828449142016418991808286733134890327775729945075216366322023549605339065386922462711095306809717711738917816940514421825601033526594306117195454002440170699695602520139851198832683607076570320761381614993152407184633238458862556011799457267063706080737211685177915285384406955864545968320917391101257086725479730636025484122938462773989112393937642024223176527836202092798574608594708139741551426947102208674217461453128474871663563674963422916624370917950861921133042027002946233833388046582303522415828063902422015662517767537630113525654383625034022161137226164043715215090296399132005030945728883749741251404125691351765918046120462143355090272708923207309489048268100287497201232135604152858395593385937092541146268420399335615918070057867814948022032423988284473628470032126519377695725837289476689828584413538799222102992885750156901695435257981139594346619337475461678513194937371038487492434049727286683105337484626646647743180722234505575422332231020919586958967539877648269366268303160602228456732824313798024802704859951811574574985338071796211049564406678242023417723797829446531849702218349150307713053832874770080106961125045236034374105056848153773056437743306344215242446971220780854459118500286974062997419913731615044329024814287526104400780684040595874336193621504836605363054325092645110097134861959707408267184286592205201932233110527316000123744522245306488121076475070216567954864183784607162993542048601720712517663534986430836078678810956662132059342673978342031160980723595669877313446325590291974063834405997823466761078693666252692223575810034706616024305817409252646200614581089510955995954411547939466615649594439905021990448305540169621563192640375367049803581402463410353764327338100240297892728189918564307936364471071014321689236043357678173158558805555359751216436964517348490498376707134094843090532796294011218256985195378813879384100862069801701542654329198724211021646654476009154739814995861774544202264959506269167597146699382464681210943292997940688023494475794551035069376594711873557760639552032324576704240362140671979717761121776025459274949066617082402125518629298908438342374859451062879000469668614805336359816216075024222602882406238575099484465660387577010058306226886223080532436281620323401236334675309480054315560663313360808302076420010014217816933779313440805525002362897320947957926175672038013057306468210307015260995195574671018471236218395518275456182241766593701488769698844646498051858299486594305626490305976995377331680933443604723778520151946373751945380528712671826174562383415940402754914334427493136760018939276387601719377882472712351981058849953220501669893710788198239362817216590944274594938349720960750709549120668482805729150951503578415482155241382528582606511693817545527330760012076753639302705717677948489395706241943608508051062354015018873118840647960403194315865101286184454446544372324733463958890053289011938003911684120229055494187419425933482581654248825783574490406284182546185446472002073684743488158704834448550315079017322130060584902374972505856100394609396768276106059196162070476188543181116374000634550908623884760049962432949089977568266724521182026547949901261105081814458298569720070621348603427854646476940351305400605042814889236468493163889308653849734295861353971184980785774994652158721377772102607721253565199915104974156274858147193445210821786249930571779899257164941774644138047540152831809137956474652955071088202177894016181241407915049275040702196294439147117773357393208047412422854260338914409231044633617982072941266017703596449959140439612461942326015139212051834162643571485518198527008030854500896736592397832098114340552555088627367829741107170814482357230877193606389772836340751905453855392155955818433238703492645886854030626670287029984040817765479796777657964589732613231113805045139103648308981999185666669275960082162829661794123661321084258095409379101815542809353680505255275256981079735901188664609948992457640552214950936678909990870385443037087977924014251734978396700800356203759285668438828191669163707993412335028585541209989675798832624489217588807768306031511838534215607276087343628887493871846615494749885286704419511423846819552098828012254899130934500198144451702560519216228913096169453758676244797687168074802400022363235350221061855148265613228816198619221892264096903714714845913450330727820093843052090242330248709637575772929714047041554989405088542995969457680129944537178731324662810525079554425856944475357784884557872769200864208244785416469783970370113629003688781398521873426641627206099085594578968266561212279551510641486295151030825836494974556968627346512837265506540182006036716104305939071422122794181746843443136490775227038504818845788073492611962360937276142785856739205545764822587830759889705117719994102369907785498612970612836235215363244431738638865235307610324122793199067385605669402355510746718395407613414786778758389615684409771597650797252199413740523324013961611195466525898345569812966994999896407993197651043811185079103320461973473062214900377746750920328387977018569494403302539537808013994123715955514068369691832633713986417638334321664817566613708834340679895695932445998230875323471982270612281336807298611247277170430705456640814147033138247137688953722227850620561136664032057731326631074787958431121663160585682372090070657260193484339014820221703076085913774743108275454694575672823645658762290884119823320573233450486694688509940250138682946964549731739883460644706094622549902709529600253069288376059828578026986779246214179364240008941176562265547356896828616174433185444740477758729837477248973287367158764862967632361407912137041596331105891153432576265619892476117358869044082797168381462801137215985367924389986368629071387493401955109547964016545755389456826108116274771329195956850563647759854777297485346226448900642295147517282942493282419616817656140146262463606161546612296326888457240240452128287976001717082282238310716933548691472242212331360559882314382010635172099617296047415904950984247606558562856202343375770061915566670784080995220744685375983589740960496371827997028227950108275329438672955807697005092555468622597809511187649131461031510796410631913253432821411220028702023272478537008798694124553117234408556203651979343243913750766053114364940584477048791428075508150786247260221634543669619078479028312683528049153142246279879436826162712706547208701472916881851626096583497667728494605720443462801274199777856570543703299387289874236906809343275428128677570982147534764448960041822776560592432396945924281890152213174207018103684641932279950572566879558087016038197917735454574849196984679499485482453131928751462657733494200946146603032833235245791575223551632988379753617052870990699996224622138139299129177724483992979747962767651276284719175870734899682948151457536639774216325457147927306559732041262626479419019932554427939693604324277504503460584287252879739641464719281113000020851988882849688950518025404830425531164913795402804623385207885158180892875148610419354942658930258471995313460512503328308738926573995619898882344127811554299516540062614124898781941134354860577107135583975675182380834800271269098508618831646561663291992172049731021619056378445897610989237975805785811860806841037567504338750773701647448906414771623173253194568921693779605578178723976317243507547803623587180513799370793906609515164918940370587718849208108346874675163313920050065479030291085525054873814143985100261874357994552297048750578292568233371977912736664777794068180688097030185431879473665033129767209227027010387998555822208538934386867541853324409575490930611948386909206615008419842528357792547960365590818966568400049680957732176937798216268815665501563647460856237219745674047440638768793335076229711484142580416508240297174520307457606809763112453152994380512898821236883098778755861999067706605830370601950474611236559734250734942527431603225462966845584360311802501250441319120104654911169274419177685682337048763166293628745181022412557808172294579805949768590862474006283081580188755320535622811624120360738664336496596967535408684899273470026973398441519424560169952538985496991354527583511306126454179846018809756222265842345497668032738787030830856521254957393822692487080086639217348622127994318293667768288972212144965479942852975648999136500651456732348766000181307346088780740393948810148979011451946653798182737983419945033662724189750138643431984129524767133195999156686959790290488958548155877388326495063948618360223469427219937479449073800131576202381738737199113076672284367155085384811284676581016747744224098141771866936066558810162663947050292952336366848951147916692941746240547010767409648714723420175481732901849234705043022529763484410337092908743131564881943052067975613480652672340852047261373091950226243351971005834133205579565495389596880728372732184695671969061002689889971287500921462289201352820462189815138602589462316636986396750997551031427885687974122400444433038463763180073394123393926892064602981966068801866643558890616582357007708753863877189114896841316846058365342600386061382488402797068736715593296957257809678329320230417074830761769831347954502518401015252440292609147404358866424810429499367031171147075745998493753444366242352137572245459698114003026783670133138937385705905346928506310549385232430206511723206936316039792508404381289369129853149906955838728843609413953480025868335968879858705682210242409431915563327317657778930953824095881678861129535421929305105149721247846199826737825459642837921463960925790613053793488916138611581919240218057627887492089137738428450324540414234406864453400325451725131857497160091540375677224823836380895264153420052469614069774431335362976180850192103737660427871185926778055635207798227615212136200053174509561594493504477729291216306660998955654077683709620322379405327487620280763715265017082253678696090377329264078665448377785256277030399753498597819942377594649175285457387409401432459390891976618975874997425834821487618579759336296667286661533227819903757396105368877271155505240044580512852157948870110521806131170906428037756655734459653841255487297684885869812525762196587160041903866162099772607159677095272642383320411333254563017422166492322834690069546095404534508747654124500795872808969459163473554924088999836488815807944348995104796893379186873535844934160608926840578665573245009350355517241974289057415876841887252226957295162793296656363767750731850031291254502182402365574512315471500674226491959050004164569410773331302551956060008099967021115748605584863826869352655401925341345485347377690675227265821159804956418834250344346442725316766495962713389381479561024982995523952849384203434327850490498682943929402060696327308919432113632293739645481115845660270731011639209747732964713589475917745093368664595090161034798039065318212289661635198896289406562059395942792024229225459971752684200057579285253994327590431912728804334314124567622528487315905132237710578710179893218994199740376793923060712897169598878545812144211524158558332286640991799717686511214448565761885145771563947550821084680140118266603948407128773814210709520672591468413123849172835424991122715868863958014355626063557872364074434997912075563064629208419189486949181276872561815001051092771109125919848450285438322203175623113761318057177887694378081404487933931681681196423182937438390921978857196972212494810264722277528591033551291538282013178551746474568617357172767705878011698679501587852164990512880982571494075745085352509609221532161683970334561605844252458483494754614190589302966180971509868748508857207155565385410741124798498436228021752147631615860396016556295709792186790009476217721772620201577513681166508494094653064669390744137459364310657939028817905543069653338892259109306991822295540188836769366456783438577804968252793732302090753991942493801905948533056120311372488708319439661406183636449339884824228509442937754798984387945349187364710582924641903399594214665288558693269037742435583479267571599862090840411282207927195755796211052562112223817294736954448431356804706940314330563975969514065961973275734575664238974725220455502696858806917754102600504910609299638093273483134649950567696379418406288557002847406060899717065706040276451179172386094570681775584514627052068984423054613039277594427029897293988895667052582494821167060658458632047365664546807916755090843331016979019136826777011455337021899815098922543197247383391274499388750577097928270146804594091387333446624581573550724252719021711984913585831741571012591890723132692649088624362771996771292382816663581615314406943918936365217277429099694955964510377536990877966131166679953956482468406630645781897596712701860550382517626958633984272544180162580810199217759796254476294592426327910084758737484363968313138555947271648688899199198936138681420992698653463623490828880908063655268441343398470867669619434063042302242774266887163440620988341340062621842246422121099113402629559201802334188274371818516005755936519089034768657061687413898947457210730987899829193507299967091015325615101792829120178909450515202469058319466504036041957843842766719197923144475141828012737508120499997035396655247439719454805732058613795926325709688944113996435530790903051541820068218294355628309363816740381097067361163609348924468964264282782816213271114974057894600083957599314539499753861208851301562952298987837760571614922044442095425189905812042812576344224331526071147770949744912706171706561416339411061862922109857876338559522574223065197252962171852034095404027362566437206562659134880785532804042807274374271445670597470118717825797174611748617652522225613508081945706492892051155677648446158124943315665929979528974492013641450111978318487641017475381427500302269315351014062369291021781895641443520458383955165068373888194555907652440539259689818272016121975083881296103860466035037545689511524013410588481650204336877473868575376101381231673243232172411625775267660399098329525816898934786935214663360755616371897763675395748262206983943521524414189405095424080349893997564057126668019360142063234074441564224220200967334254029280334620756941366158931104041593244022340733381233034148249632409189106692418073982031132254333433982983145478955964560886788506813664577490769887665731899318831584541446282119245104434492260855768259985991227920238921853174956170951074695085567250863062688312330365852858242801187335359221467239020174826540347682301907338288332381188170760044394333571507096583024565676682772069278603510804070747248422824979198868815006643126904643216811297828135812295039611391338281622143291294892324317666044681831941204834100709848890023476988055362595065144512145850692334511774904760706270854518923852872425908850701393258161874361935589225195457884527962450276361741222627318906692815732579533169503222818899908371708236100796993280656213652534744180853992468734973272696633215184675714744316130480646520040214622082876322261926423878261102974664410773825137871770445299247295275582436929787549707394448860635538349291516000150946985191550253652999250417160769594075760734992421904226118988562410990658860450986710002648943191760380697393337809084185433633540362302173884962705755071064751456392913945424713466819847471673170118643202685721836765853681382563835434618319973111764627499287767062600561199144982079950900595812247911341890261854433021693321164503969937488683964348348725092559033256707304109505445476340234329221164226691886125947529791960485413125010269233842147790273873624782474619967455561619606622493040120972907500333916114045447156366833905161538850576470762533952504459897267268558690152072853159604066394694783877134709191837759830186528855395523233831838256632696091313819143506632337905877239062719543944979842745383795438730166268500067406644837153026547412693385815516999086461605764496823899100684204116391090125428432325598311873827280245756562039307643249260022401932916049785823414733642767045512094007978494878807365353377585164389107303792413115740573677395038621939938494302921679622070676871140358252273402982383221902508528875180074967362637383638967034696689339182972732441355730948035274640469524367161352982654412770087567890554115668308277355748439190211425874514896718475105070179950035856938653497757639734314657105590220598048335017460499079082779517722415250707282874575077466050655135134752301443801109057931638847962468704821432129159298651665783908844644828283723452287839534655722473261377844167488571290550074852364173763163072066013444528289145634086752710510098693840679387892106539762136702713748671979059053535657687008283629527438177464816953325307555093245020658345640742457147224875688886594825787762435139340486871127422092385127980104420560491472875333535475360941946269065916969615585678823567069934966939973442372202185007356875834687312917489954174782495015608523436656631443881033470103824012496762481232348935423867277338323168139125029207783456226488378385085672360639508762638950324197551817492437593017940393775100823909122407503504444883718556337089342343702484817823892334100484870381947371018187162753998713502352022359791939127796139375395548742885464358123873939475226751526490390547374687446437628763411167030465483538041590568640146382932783704918482063622867629055168675099991851252112381279541299197894303436794181649582333151811355534811565157380977727318720493717360989121938340513849067060637490598167940211162412355916249153463748899940728464265289393985244446288266199944233573418025644102250726652366293837755343331974742951988091507083073361264823582463666547559221708541733677120946189104444912473169517612977861668854205449101331812239703041889256850437886024990122670288597532853869117278124379777856291931561199161851518713645932639314025317841814289665673360821896630570982174636165765753423264552094563317975149040828549975757098562610043867983033091067230592512756434002641924711022462232112877579758219566225682512548074187111364577466623497512300229881740843781495972666305797432928702627478413273868284075652510194293599024839701157010983788463730975257428875431800744434032058716531209823574610778078821869185753161256242246928353772849095342607369245830880058253933331282015041815281664039365187946999217280507180275652706270413793974611462939214331186635973033609441399919830756995382232159821159746080939945601503810878947081265360411515845585561650354972851561367897918495249263534943137379755052396755652116296054795023848110525622962387192149421676189952007841197408608757585810181513767214772602780085461598769844581564607628542383815915824864646229826550669605007852684935060223623250206893415366036255830332336583393568208521964280602204183713323066508875664968771571986370512344880071620047030892247608777884814056381124086711716964138553437354815531301585208660475157763337126459351053960200831954825548348434010333436512441993794321685355403218600256450594806966697919857598890527414667005688848132019937202337143844683786691201335443346793727718274215822411002392265844155741152997211564714041966191238159635151696279582392923181318909215243981079673072434172886787077471278804916797549663216560049417446322140421829366785910423806148615704716707579354236236947370016626342126335380351235430094776112000037375271607685408924409879638337921069912322510976708721708123306689747195141765817017874712330866222427157126364711497944016436597783698522297357650867752966390031284651078012255937620837797490934512319769110295788974118396484597187350907301848779986479889672033501530979017042803017072892910887684644536493233830596954365203210101097859410879817517946849697687284435288673743008824219608123530457778971676375601498351545033029406308657182796266936826199576761606146016883427028407189508942442158940510518939965836732852656139420204794497277208955241488457376769010937135192254748286160673367593729435784338562795485620080140270245887689695125099264001079455513877055725863777827238910778360041207904051828040403767655469101593682938233667319380455642902961121875979333301892302957824645502354609105435173831527520995323530562682707949604719631915560985855763958108064376752057137766378236724940415843516054820628829080277532490741972854081916186884271000369711731779241927120558145826633876737624235296066564998679975848111320326502725909194301226366051085818354846583447150407348843763107408848661837660814146592350020901265923581068276921897105988626585220440928427001548870280503755710621170186680370335369941133746461851024435407542487611742135457391961181637999156621584334082321175775939841209536036305211267193058496244656488550834684687447404338261546984286577529501621563601258731518855812292442716695031116002291254344915435347194422668571066080622697251243277874759213442685219978106190418821371649690402765563341617166005038353955967819788335324951142363797735628125167044631396375923485370838528345954900417714157155026927690152337517790494936466061981964388554576167025757470811991330240459938893206700072493487550804583248584899851651783210595699203198440290396733899750023370499230031665546401248696262201112165439249195662011672166762772119339948159185946296320169696337649910328242109704062213199967130294445016125307457844891238491955397771642520689950293536178391929214268904141796056109661927408741796122238368531314179460015441916055523302431541511789600351106430736624736512958199989504601169139404033040926633301405187662541588881281938212540886483578027296634009251714531357944996566076883643659822697744866528011590936014860570282571649876369691657279808343789829618035350903941506919774282400155281123476790538240138851646520353111386821272221429233249746196322479674984046673481367794492067124734613361988637536554838708261708147673690848893269268027810093839445456625417396173164408740187837633828314672846001403860767372656839110999098810320312309831520650155863164232912842760294793962020269890409977103889875539311588855265692004152386544745072445868737904715065817088695413593316290653040908032363784193033204349471289745168175621036965181720837968040917553030166705099522035250422178777542027946675402234020121396821385522963738038877462434896882442321787614842761575542978208185764697054031525194054521508776181837545385867960926360768565292259221268353441562839892465859990119237712913205015786985591845371123527999046196851585052126169811427002296483776491563565039369849341366010621752273280824373366807866055766991188046017374063230843794259869339215563532564903798250338147377274216654467374233327615202690465575673251640455822113771276857530621923705396624202966438143221464945681960892133929485657058423952428474992112378705767148546995720390474706037822019779726137487984380239855276221592977091412466563329812773408673636217834295224309858627160058095446795651679560311457342024875811275552061565395242789177932209019191223985317111927914569802649176105800974527523614431204526938286144219963547528020443283907681447951181495155159849301660485701386458655693803336124938361962852370650039892112360862121960550272185986279466214750565490042031841565040382854855236963181095816673327340772328153099264402445589743854336014323414564346619327051293176880384363626591989914180809073263701154140036822711512824843388841708490227418655242599112327629504893671786910211950993348625822159540444683602443906592758549677925255423699703374390903681875555394098849377805094108781120742111082550117969012470696148962074416375398510183528105097469574276862442821505080779884055446444239446349650340909952176139815957223296753049743347440635071376159254584162055760207503655016231150218328912003064438064749643799333188490586728350895784162418939997849233493966515240187448524700507533038939114845214285737431987299445636307270996357500201068633075080994309872731130809361404415127594225412676458635986981055051896305056031746463633148238894194455898976863108788408990236249817325767763507208832577999286134449083279391350872657158580606531597131222218362557267710483223203218257428937705572805834327081476099508750275230405132544603292168434172853875071668728091021843529098466487226261876747848126800334179406054392123017172793329604681946118999470073529982367467251494563491689054095451325389027293911340733835856703604825380712169383782243592975305274922053579611147452870802853321981055205502412290980327697351450142809444044178812945503829514723788402358255835889150886353001253419450590799101770047127044619467117502810287373123974141885728768313559717992557910779625880111911960491253342274376120314529746323004667329512920529527619772957120740086291676512016649865444607479687896778661771598065290652763480991696249472601544867327159515099740429610683243185136658643458525662726320141811446687191169653644545155493800405439449020298182708786007001265927370132198874204933455340011697610612276169638260686427883909140187310902072852437069954685552657392593556090484456654906611556344647306967888004653213554528025062294499069105205291856794189649987600695817805417135266423391095365537751529364394547463143709082717278396721269028255008861845193220491302628549663855602436473421042858385728280624028992857074961550860330207054579395963530129547685830142563340057528273617933924397769812888383716882711929515352655572337093664594820047677684436291610699324114635934288159558178506245320274479309219135317957384805434149000452775952805487004441762682804507495917354748141215307388541591149974071833252947333369090951791309972949358492237811124631035995103222035478601796956562232578154880539501304697765696910292118442774821588261927551413230436633628936012609739161675759574109430871281470662324870901181621357194378951786089868419756036335218461185042996677172156736836674668045395970385389670538764018845242960579864145997634814948449396810548989097674280560047935133849756497988608108071404946877844324087570746011528483194250121619260051799586669580260459310007713016413752333043975724931367239465929437954629534864625939707065536404742654240182652985416495469678213787247437819298606497055858338991622892136739115391854595539741316341563737253540309584443112504191315979057179134319706648102201845405241157527135592965699001608498512328797715977116295389957673574554812207716750449549931743512462668972730809929232955233788966107756716724641312681478775978144018864607262425094440764563221049557977331399153370494719531107333708918852269148933940487805655397430716350788018202266008327641239250527120314452371320777119994289547102910297671764691673178046905483060530093629619083728831188614358388079206827856797123680076457929163358563734851385051762923138866107068722556883864077929256785349942968656135566527189231262417795489326018886695467942050526724308392340635230145766303039620743507249934798446951892717451481551414820207886878792941903865483172277735042156799240121976773397260459402871212938174668048673125173298096224114628578878866096005735103361448885677487929540863935051586218940624451176159689219696645346230207736624061934795140962468552266707646182307433757385359772953272364705168539018121064282824393070091923609239342120238740859309223154580872228061815988421079908427990641291673191867590987404148698877145908056451696251474524105737456734550922249149013396542218756025165220189984833577828644623566404961519218948523966493164988671314612776060677389523617022762271049765980438697664518470742089197426265677578779934765414887963125406673425130221989293763267883862560925369723312642176121645726599115905823452129407279301622919163564184874126623472016834202737762034845601417194650896199844803791768249351688203732520152233227624961513754985249939884295719909354703536838388807405037461096668924044080261868935478379169760198706442805069957587979440514332098512710171650179784430582976451761472883418832763371335184716971332429744807896227963132482994012315152944176282477173084844294226219369814543370196856733515907847750566409973534725204885540533099047401815233791204559311686436682009785870664082134008102875571900439050496909844417014376769341916718488727893098025148385882787013952926871794861472391296300689794523875132053862745952828797641002671111364253700726447887554550314434250966270084069030225436396630490240564586810927199166557557464134714737200018657373827156865144762889996571921335477011573461801869141072451761981873288577991465721781806699622233143525785300657607765547817421350278092705809606803035569908861041144111456129494796545717073435942425303005481528601171416373091819833221674080841123119800222011803687667532533416929568124223399909196802514308838280850106595353041044048150685898478080894957646924700729453593989126065388793345146607571884919411090045148873626423760206599704000160616303255358777465771133389013759796611301247760999345042368922951385323105207677816430415178278790900907419697946034733779277080287560388471081198730969578165948979610949989981454930404616189612198157873282821715053851954227169904851837384543054265372917024250630680932730950980519533820545812042078328044892932806851146246320840730811662213586727256063928301823989067321090879219756202487913921775490169557485215298772762362971870653887672242066374560941320459767994771696521151366652618816280672668187029660459223591248047039918527089164516055139945004024518154068883970555298146069087355853016555962253493257417920355355196122224822234901901240396241131747944187345266645410127644071403326926536233580367909729096076758184612305067653706080941392072873437579265606896337909479795635242178972563248765299882046408960563290720090336921605697212880683456521672558217947441376721087439910153236083651950974921217390321790227030200441193613459735863142430490252402642162125769531063645681184239321650985554341063452110030314950823945515778218667157867349597192062161880317587581791546756259209982203274051167781446563205069240008328109813853228572658022197448702199183478187561239482026652921417107115301205759450122920099943750211377823720627081450928616682809128950010784469529481713595199492590078020002462080010406859528759721313678751591851019032349993125439223849699793745089055060742521467770018925173172323118974033405420602025089834626752512397685470364662066832296818032535221228806134629180096829405317048776869286565468596086108458366825021521497583233770948754505698991016842102956312368551082650920529102652654874561026509321536379077954293048009127410414638991429662216239416707276124280944353864492982730470058170122199961845049188811755721687222488668643250939800615192465133721308286654907178583583348106374097804910412980971771921476886729863382492508988324319101140798554416687749862512463790334081868574376291605345524243940596009156721025188422018037918030384113303434935553171555103764310881208575389214225814527104708082375951597675200707846814200375394720915226459586918936110676293839145552881565891953525352800518474115666238845599950981856033773685347923678791156408444346166002597253231846572054017943050159658829308584160828171553022458895499316390025724429594911834132719965490034204551286456053539392743515006329689848098184966430256828561751176276404121847614038327573621100593275668443726373644889180347526248144325431027788681382165985094726603218706937514916657453643473375734266483295490051478697524610787588383812701081390178739481440760858396686615247586540424410907473736771238796976518358565266332767357199959030811843421372252882629131695973134625559261650273113930992092602100006454188792403402540748655035417541675488386441278741300944558636145300891979862664526254789188756115097343298711814606953136586087028912546326497156205737707738806569653654678256789357421828561686149702518211463337446755828250196392242173939946887051585754164765994707513244024706154977776270889541840221484079174978600795099929588333793634230125569192991595100767155871580812598841635249076397635168571410093809642898218257630471973882820689205433210504994651298738801210204524712774471412624967760133966951651796600101863621326036266051068081530409489876638956362867905557905217008430705715356056873722698674496564849387305151013591121772218963922661477377323587799683195230282669313285988613169926474162896909011860721639597182565241157325207582328680136684557790626969146361779740324050275506896862621580563593001663713261086734212435580553944328188473560654161782014563712492871581728275736528747190088419373283838261343136323505821658300209943467988147868823009380171375681250883278947396178700911345273024325252639872106241962895904677852733045429247781059391964782761804420483449705727462009752672602088364083833732357597686857747567270614028109287704199178509612788071340048276751034593496182994199032402839316724303370754969539955877910687515859412213192821148760399006846345587862242932959547765744609959108493587265631638694479917417454122584219408051900192493588995921749885961333359804793172298794554554201293459720343519325972412114287269402985573105939824626303354708900192327237696604128895438763621935050854642937056676954627665063131445943647137417521314715387229087019069234747041471655272266971583994659661187854633440672691687913031542377789620704651671920854871429432309095397081722408435599071027250684222824766201700415045834429369118829434558363562275465618195525474122198139913408845959497946954050383805406942451744530190664771793238913404658736250901553311284995068692661944673473720547438616314540930937197487500535747614154101618288368165297357483633323516574367584400748783510320211079748915431210355478694526848268866923835918422667018215497911247927144212495737214202103489131302623658278740536271420280720442717439391942471984650671564740436914035323160668775767475509655267247094085435778660743080686201159315130200651873857555071272192791714789221897912901859514046211932597738655249568251087582854890097734757216694599619420244076542662774884436038607342125670400944805650243808155566766220153118550942856916781527209325847079371438559681191508177963600180529513871220012609449650319024933996208286678913504713724346125341386571876325024707618993432283393995113465656590779831661776378612551517179573508314460890675866128593552918260512434127341365393688388278011827978727172795250070868599653684014293294058569494781579058658416340971096112155771079253731880719237402842603893033150656961340373074298146689688483563070657856925536920097034044066499717711739026815197706169388624518052537718537769796748186120182714681869868498254658006700393241140763280045772664794561811191395104734877239177727622945127246220874542543819635485250205077000325389236401267904707931790784872211967238192553246050981394152473682977126207567792871761564804291210748094631310470557306962606267358620124055734746888644143609327474353919590091679044442307216932748388782414945550299003833167744264178417302488384605026811199041743764383672587760173088436183078093147395926407649151935167868944900072426480314988856308965782824163990468897518357573703997915114782609612365477790373550466365341965348800020372005619919627623525113649701895727446705066226912106111827359513894653075119480224344280863730092114334086403433835667838449666577989352126775682660210263805650603559299420294987534334851971556052720889570871577191879759587192251531165286186550523027621664660696261311671627253957074512178898060366198379689355029113494631214769875032634490193699417380022912452159034740543977253332264301002839287223113648694948947023979408093265035683421742373234226224634544824606296287897835007255660399065798386027934893944232316471838049677729812666672395942864815143844336925710930697536057761771444113404907066824912433254987091511290668457238908513180490913388053878387714046850675054981169367652159002449798268136121364843569323433176432183913977368304935017567988078791543395807512974991918807792861015956434996755570229485571361582326228812238277120012687831665948394611489778501879171768908427409930797045934552946583174175153430058277394189809782498593607757998096292570311573415084041487064726328041671765911963696130989532180753079047996540391041926947832944839340996506359325189551504934628628843691138872794023266457100084288069530908028439546618889049428017475076839826877681322932718551311467874901571768434310791644776926371078551653897318179844444857223419532388007133203322849815566320391257098700100101908569336453253043013281440821082472794134920693060699223784864063519310364338338143256927268224014649509623076827050196982044592253516234112594712388262464350297704997554761426086385893254725782713448561856707598299519504455219732648131546546877817949912788197585385122527095064510236124166086384178032520855743899536355644243191459804038750772781161840902236229743032415842358854763736588113189737597400186158736278062126542766784093213441358280267813083373052471773444126069213771186886538275602718445011074568189884141797286189774367576602604047798761922449261595382613021381482341564634150062368502723021083913730602636617687572226204701694317742053446530815069757369142764680246282595694558700736574435303763875172210349695330382378702150399696899063523179992520749218159718388445228945365903094665953088622326645709359518486258251462236705316178234974738544000496082956736718930641138806297500603940026222590687267674162034487216709761858053406415611897969235592718334222173371934344100532721745969278917484417248390927116559134227138404399728193454862671834583264263035647314247269635667441625106226486633930236129915160380258927319429355293087680550618882565636831156916190290953988946739246449606101537566734565783605021678835632156500288955601787095300155364687986287520077349225766460834645910103836441786646598088726201659146271774587560312133303535111558677735752132687826312607562369794687592216581365401484607073309299998377413279982426812633693994994618861155671137217535058548952784900781329341566767851066233544312028427687642136983128150234407339660061837794599822773890663901944168240167565696680131696575316236863446956346779469317454722715193750394477584834227524715782278906162955190242286079032698570045372360664496920205277499751485478969190610387594667257130975971262064961290471017207992809576101354872311996956165223030747238640575953654453021866741305152002971318070142804426729387699446037741003911186516300718438711632598295690410771073829493166481288376606811632976500553671310305262830381723538294324608779309025663235740323496752227251816356522067195764376966081396177128190355887136265555117951688801411065288797512024986223100933931585195731342421036965116987559091830071168320735077126712176634729961514071460885687125659205194247941520019285330085640539730000046676186814472357181164963698473941435233010007108611882446898033115280940767994865850881974790826363810466647357276012341401976033603120329465115057963504710661916325006192960964753484997592948967688493577897863177776783184167786281434466544763649125168703305640713888089215963965197984407151404066432129691421978461543033812390164713429820137404806772811033993999651519212371903417500589171204893610818347508817174252315789881092207071984190496858603940500594231746287814983803492726030633188267767472416043064114557673140600069673153141900022252899502262395678700943389603718054058118760954299339583469533280831807007068304100208973422743717665612536501830192143737838868982680226994465692169514165929364850304721973877962424387312454223841014060623815967585325542432108176652313335484216476923098895458492796860928062661322261053196964217983239415822798421783495422400091358889145740676465880630607754670262909930784569143795824138968686499453061322865782336186412370429958378247378920768516435235231856980148905885111413440154157852212829779771084438798532786381234846588057478879162374098038223904999913172304878248674208738060694124246071157903907409696484557661974743722322932026838370631554012348567833627803809436632520357428948739789015841160668975494305151059553136369625480383428063770096147354441772445319882348209004295780744261080502395837065521621385518874063694475045832888726195005774710833106444907076959369364305062310775497484906424862118644344252544948127926056790036068334762207265349799827945105035146415152908042152500399100214818355155341301829645148155769579143353046182932863905652411243738046551816690591781196566148546798868804995152626400981782512818706281538937331297620700726876566879868662423764147825020839889552840251827690452671832932112660559629243126105001131192454947057642937266491273178359674785850186773505151038718361777542379882319316734407322115767906042883053398157225592915157486900558057221740250301138013462061574241203886442726817773742072020978556319584868224775836620959446087566036812379399443002794362690179189432281681290752606124593387291072630149209831751941451029085584876535352524020339626341896485914071671026450796882096335320545749278059865981669917864845112860755703120754183337340391885287464513087409910794030312386990443260586065214988966327149087676250121880852458787922745159446520323145669648407422313670316776979156983398751616091143610365440038993590736868562775216909890380190525969695650334231833510037173456791449268726515683100385571590585402679703171173705457014505912477966867676404380049094812210726703384391247744591910483957721890745549106741010574641699504947079059063690422228194050238682301623454680152282558390684320381420181419330481204476991655933913989189895158018224767351094017506666776894670993236873415279344530374090616150001725620175890660346694022134869741886775519986575601029691104195648858745402670079679124093077934613063553019802302586163433115750442018973053967617308479725549285096691953775205355274188748670889687184840070993690565664457503404182919550901578124259542672920000090931428172949616350471347174369420928380053377936736835414825069276198803801896234790995662970821555219766910845358333211869628246215211538351335980090726092399504191950175923657983563642147635572747116158762646146000729493774352976924662227370492212322869973788730497600975964405802137914815875215946829304716193452444269184171890047686398087652599502320421421126795523804731622517301967795080218377643323840521731866490702314356584106973048167506796697298837509483564900398519760655675067442677526617552793803081811948592202751105240895617124237729473739967111130186704888765730422879722147532224933059198593214760612769635061528228954485577675008279286536277937205819756677033485494848601418820026517238276926149952849532757810866158081384474303119607721012500566370752153810983950482650160807127910125861622019101491513667498054500988314017005754961474879520303721072201042297415761155576544611268402545037505897558020446008126786813596058688816234709368433654100040551073374378346437824194232811505569671315503786903816522250082253674978418989768388009224043438634956833301866044959920802780725445319161323880928046943213092728247850471698535599926583128820272795596502598521318995783199246837628031095738306322324569478219966735496979946764178350608908225070702807962048789388228066919949318020961511169245976235570548354269320096029160779803135223351293651799290328439384409425078103282821839830360295698995629430186094474861150657353640084629234964921672621090319149733496182067475886207414981345445119702640986367144300937408262154753954410887075144823338158150219972051896868442236693270980879182672634443632675952517714332176201607392238794953527286837593567655271618572879354549694260769487381979508752623703375272160657328785410609903832177915666980352606324808959683229427976725831648862011512966878661447646325331531196287736114720269920437423778169300623839438884602196759921268963584778529443826185326577123617287221828374717914181660084813086844717696339360424050021083936076256061490612597429786902414916603851309278986723994333584111747064674397233993596088458406466433537854502857452914435281396363610107245374994648567883621647529795917953126496713827418577973423249028476267705048484420942163332159742418742730744076826149857180059720577718622214601331336461137835703395764164243445864548593939779685853266536705525078046374293146047964349052627431097556420292275177388741212874230460904789497768470575933825968628109974653868681638951190064610914162305997842677861224668646880035450516498397263299460979888191339599756647487285953061576935793732488228280961856978636179291070277693242935798397987577364647708599402746844468277077577537308296764735078899474607981705984513548972929429801416155571076983552342821333048369843094595822306555180898084264557305420240980618692154989525480325747633717971317547150121244216988700866010314344888311247890565844744116291674928285439753274106491203980123646616668292836504078120093632994846778976378198594028621103023805649521359293597528773885126435439152077860374673861716356679395271208337789544763070475147549134261033840789297726292799213322957593263865166920203820369972269733006629343386857856440555827222102712678728543972472767709344752401160748656034222234717654226804701697892924950303991968923747622590053236393248511369917564883971036494584209535056647686773941780706239801096544048686632300447204436658030972079638534368236421836558658629136913601487035935224052808635818872948438576165239936058057717331727051806966810511330639624855560614809515221744650560717716511312794895599933703650521544044780463974911805626255004094737725898346424750131650106761542782099187618186526011343152992039632315739703380795412178371566411987455523837936674304720329765520520111119469578406376679973748342659818337050081077510228240871961963963630249091774326728721238377866405949328312375945567588516650280538371285145968696067516361653415082348152226669964393791649883018056285814271785380687631708782242695738471606189591663711199333480708876273683775241782370042330679001473937728688450457891408852428353941193981925093109731885938607637031779361910900072376060880368603109314122847558537419004369721358442521321548244376507817368142306235012139626313149275315068449825267500252426742868436334699292323193421884868293524219051884651134837610144896218493220541936242010325613561119604501459388943881229196631179767475686227753924974726937805766789267141237626083021225647552532157077908555687310339071302755955748368188173496153218818075774167214411417931481139673203481479829985468130237229144117393869702750292849410051024210256940523951614682665527703671481115701459944835356627695047261504227084401036999104806845232373066835931198079689676704134626023969201437186229847081775068445298709942948656776516434306701268035364648761284760227591831815841289625922581899143247350807083081930477296126660929282299229313194457060410485183916283384628424911418117412687911209272190200225063121753201977201153427404032320592529089367163891670447055251156391370173640937900117965783414411741193323424152554123816973821405799177946788571827223917967292788625530650371304743627526909476613277360840795630215566710287807386227688534338184082319237081806059451927627415399901356479477858776441665708048245445467325891821388942907840964624476568383127116301202236206852656702021200364134713260158515562823843037928074879210450335565541521917671537348211418038387700874035777052751121362033082414032380659019235943826076050082828136645058502104987905409827712326753980230741927444567563678843028461572458042937095105617605430802322041033496226124492375718499713452236407755800731935525538494098242638421703287040496235018207187239420420070746054159105791911935848438612785796660436905958323050152492569725423834262671698563812881185052194528902691111277146898460525184462464832803853538411181918502590203996487370658032519148485620378510246650237865246631048475170600996832397050855147100974924770972306066005775883246455112717031607701564244913702910190932151696460615796707067219625714118890259094455372950951560598599944717875364214673524975227026254909209912139668251552733820124963675511210303565596001876379239602529564048602126459954854850461476007007052577193117482292852730826599581985942504015208337834061849095742743623031386897742176997790866484663399251692787718653217935604194145313160598363396090948490161637804426884094585682894596048189026398204619187206256680803690058065615625027191353313303542973380062710472944132937752235810065363833933788066995528287064560285607744610340316784880823691733296917354144177298269944960307663838843954314377389590500085818943934932648531478707118045341013932280201680354862989380535311508425402516805593006975473580580252612705416883950687849358140815158107157904741907304932235560525962113257800898104649279472924659524232225555576222180652864761969937548185237716029362948316672703601232900797742333674158092314263059678696101615879507269116755417449863133743659916042857673561609719305621321582520005072782076620061148015027174447677216016875257897954262467426751650660982373086047196878200899398319352839777419069331382399647670626055217628931474802117689077816971611582418891892497433903631171313515578091528758815728628936273054571183034994877552622773270124946063029648201341263964402525251366527047181814327221473646775274849993483483985126690173996257112667485033202171150503875228180755925277205403164291554007596195191660093315172382374664405111356370609383965493625510024154021559011129099475619737563094114861588436670097841631277817868445353362010030043642842521970266857708185039052965292399145929343789873795339191315904193602318672959101158755519385439810454410892415944479961673755414890216867599999096338831436752951495285665796320286838049489790868107198448473570284841218390543599916757183442271915950425261177953228773515347147403470084888421396958756314281408593524700734891118949599785132633653422489958352864654251914114786880266176078744797171674162234237685337411891259980689100704598879596678845730802557897987578945882489791604634000936004643074842388338664054410192945135079278095457488863687503650278022707495174387751229082113395043361324574944128560397814271223408073662530858994671781328361465226427126273398173955638619728483075701531830709553208958025391082894008801805117564394968011018453879739155774161709214775518098558509456342606473418822797520802495662500137266345987941613592096646664283558702240872687872196188768778317938493599952694383731384135481519593403477149400881354227070316999865237746403141509452368167626538939292747440226180310369273093346347258768349338306378433345265757188485967311259948912917417578220439157872759707093373736219284905053877236102896906220923585368791168109860134791627488099351378639951384883861161619497901790679399321835780640343757718524295939424646491221889801453008242773612924531071317895408385335682222393070851713116558741589383768327022971646734702283950003946527106662481567471466326480520149086127868644801519473838651640756963696886352437796152078952105602614792310977064514665362442632771730180354514041931287132930645505180280655765299417919977281799907864195040420943761603461760077320881945852183258196590082875799718508281147523170815070145156259204617162904077588207531906075852869966497051984489339609481104887985188598920175859716736630409487026781406171312081222753431676814367370824884145365421718174003495092890436457652714571189448087546160865618233108351367097476080498878299024973162381072626371076750201567954963556228202829779066566167520688045464665964714980073944560691384446254645257371681626884045263535467207424069122357560991443904140938956941648665267873953286974395442677630290958650209986381996292982347282162167917891040449012533679824989829242960650850690677776594311086300168845601963307451946736423946753464632662864514951695905487392683210246532244086240930207355494886443582286806539893695302187424339118002447482594912123135132472227168826720179488510045456917377983973142659255963142240458562700718546797829681455526705722117114022839518898871088693639088357688144166587798499305104662204745197033511504876363341029892854312550792613288294285346670783898606856659132166209723042056891029939454081667757903538050466707175278595963104217967299172677460672876800089009399287471810984089814341464076011829919564713753740654902682717057942330506068074319159128813516597057444400443334702044264325909222385077037275886616217557562780826499708487554398725963924167526759053432368243396195522092872221577472605429216685927834817688750499225019651188804336545332923253978986293236513879800893614977336840215067982424443785110220384086936095771073608813119403576935458151533713330984661551526222009748234309111669491296221029589946791364668675335041849424865998316361062894550380561074230887060334658521455780231669879756281655129338045394808660093307850325559719683408834107626768531494146627961974072028227197038722825611039551040218804848557105077944002720555137435385029758907069120526944699320936623629374858980610165555151340008158716293488090596388851361390698898758988243157329319047148830918846803640055758666530951276730150076302555282584826062194762026858378216528461722943418491370820914680084647309324709774141428380369989453454553750714791833070465351254918046129517404386636748151711676562621178244819195548054420591793234617321874527005375989939560604868883031210745258939663532212762585887753826881789986897634870997021246687468054894559021268414979894015337963229645156294309316685510373577288353963724155303559389949645385859422281902221257346891962225575109887250675320036016032221485988906128050278727593076570570085585984916746723850063584776445806719256376592933926245213442043598637300500394013107492608990934933640897999787882939760945334891408757234043593923845311412346753729725276800212365653768565131180176825204934360376576844969939801109337661457570025657842141574234293668218346707595276503182839367825215036447590680323823795507032156213091711796739567042175674160216029893634155308399306351796236421898859626607422369691851682655573280386189934427603485731323165428770200462329909334580277896811495785968329812488209158013039733072320343982481150403502020331502499189823160673923777053242638832402659284993700380847405256545532889834726903016616472798495172094678361890502294754109763094717957933016838800649509139956998293775222694651750295097890378915666616919046048276913288884088901044802182051319274435589632643612715795392335078792081122278926337493837272844241354176515890020022393320544418624042050524710582912036184459726565935008716399803278828572165585576513028598831880326933373729065847202286156779426264610467042888833769183330237057527008912657349063583129831922448012245927393009926788494060977313183261268655350512091203943801772081730819348721250094358153866862334787174721245847727699668118754951975578029511275474529510889523345344981708713554851457585122526188839397577775463556017212284593761785078843565348420092961580533313224088744541154620128973021491095976798790877648638064352646893565464950124565235752753877559877937957881481116291649095141991986421845999675964989463293153190357924756469655053820946260037189891194384009804922095130047779228950077477210493724682104417323771993824516120477371975091275154111432320759543950801793154022163530478115471073983978975173174631207490199211513955402870115943931015187585056732514719046745697239132704364361207744489428994257737245536932457936230813860020117036419151849668550719772734414192733268118126986069059864361172085160968571455504332146860462092496379915571737728664522146490599755940157816148494476071269706167008667272744394023598430956233684967885324795762929762970356856125576301753824027996922011479672219926945771973022405282549094090597959786290413061651578959572830681980650576814293853127203616525422233569209155255488840908777028231952350080660558020128939089929117737379750316643556817261309390734424925293943520711881897089505309564958797709480030522069966362080775963145723949035024560203584300539506187117598090964460843105130541078907111521082372112563849704642412152659846735410605199968837320635617881886501666367846026983005655736188702330407162375247731775240347332058061203114606279283032285330758270506978881972434959783306464815875036182952354038255044462298633673970007305849804145953548886557752357785889768546646935258965220851466944513586304955883988960635872196346553195489964734689048942148179301860342773283924917108863785054264326270852204985820023996364140354984529853231935973698995442180711841485942128207123221748400388849812675417728086649078098353359530612646982893535072970706439916276170611661525060172302973789645164988573714859319614998332264535788470295517440727536936543352204766420377577859318850230369267689716200313485493124375100352046512434916569473483545261736606555537017227505910697488129551555501350970348264365829543910890641914031952707045172718464193731563121662133921942445391989618964917558299653879829509924486228838084455171153690233890998571642895752252157655677031391811150071155300846288752989606121237075868429269954553777614077252596227603657616718497245550938917520891245965051330081927744233437082762003868655289480456996527088703693149528554587848820056866910895071429601344391743359621588961364048794799411663757364250586251517372513082650577546261643234033904546869397818770099981288979714189415766792971334465587361246686830924992340903708361806885092981496194233999227535891689350983235433002172444915090983221237762024154772805196888590868677694724048404349989671824796105066275303983981182833280967409323483080308806594279338704265032833438732412487998165776088051688271401708552548646900502603724842929039418924422330144239678184697371721544104265297652377158268472134428494087997109519033051687144858980096759441087617020635183311847308950380975848097687702538849124766549281152515938057674868905488799533139433684616866648399807322464022240324483063290688738976043551323357493429759490300953063793078212379905272682433124861552324264156697135699424839687371186184148822390937007143848837726610881664255756058298021872809099948109033042957154599538911719400427067608389513226782911918374483284525196700009686287421546992341217369831152311167926422318096030608462215099185870968805665757607509871893944882873541653456147303744677406557915521102404257787227613711639845267647467607934078501137632184409104410518951455926416962680259068959946139167325882291841400127135105150021939737452323711687767210704421623050562876914282679486824389726290739990154635954909513247519444185049125282996475867094958036866543407690329158396700001737820441356229464393648607113961797894618071849055177106462396009592176818826365954269137440126560526666733082889360000548688126571562456698356233254282934920043814641828305129965198139885114534533615947452693028224302241004689516463355866096485988729236884228271726566380555847839121122739319567976548134064409539301496143186817101322168237917621643418959245051469270216519724644768435236448848727894409931779215888789992317470446303045112963582897848516506087201415764015123132517331921624646754455178398211601558148487409767653997646759763996162056931204414926508866026571059309644712337296257179809042763420469129947121226288739364127065635754723659147808406228876436047483937252349528669246342659641520761880963730849546906724382612314192724683880062388975503880844199536880907435252435965014019993497439803135885662235646601839008522344520834708082657899191152716451167790111144209600006317952325723032474705678988863427016468067374483375931153054620228676151013764244433706697585015383813893336220398634220750907692117324638147017162845125179307577759250193194234880078939729666220486255163773634081119154852563745532406398950222797895044318580508005178035826812501487496375539772346310933541309571037123043661752081913534221866567560884778666123597358362477613672336134794477770585772552948849402248646545970074824042054666853876357343069934687472544509723089520882914091624691197538598762345044200527650201611569285112137173910311802931963926789662128781443023492547431830798162027304872232084086908935255929255477864228416000718697345065381835769403132329781247075166789344384932716704027126337109991519630754508882069418408758067919403122676612653282240186127642589734415935162147809986515135089263450997935361634860549921765885878380336923306077641558283042196188194170133776459410205886655952560662273483972925862824561252504070033990966144149184382723470213284813595368839462430169295119411337058405836886314144078894277760287494562383481100276986560011925245524487017630257567419333378477880917634323368994431532221805592679551506378828089131697937987902928193434126304221360216141623653160503440534245614234906169834273843856948717513909037818534579868621676690271520990252272113904844916210566958877153078873126946964060846856115393716328236452934385052019707264059553800246795415923889816398638782203797442037752268646170683023285096293182170943062531910074846358759216125936900867833306022373605774430071439498619116557962003513509672179709160321902001975963004501333494209389214963395780780826686499585937364423582749160739097035444101499329680859425713662812825724967915964667250603034794228303365687740614336713769128665890055944584067692762962995806764212108610698214945657231499408004312025818829721084028156869807578565595346768339079284051390751308532459766064763137977922758206677648719202960563925792941020316418843696620152881388512461789691259803292247309841750447020830074735262881363364924746368059318798459416250277998718528091723588344228397522224868319472218065141838021247929176286968867909974441312341679908819282399892193888748584458825126810387124568370785791889235486147584070319331457845017348355641301043498525638532425188438380421078379980167665533304545095116964049474814326308539144306718963697863619860354873720154210846127400921430280952771714439974266728841977887964366147538993911627363075156497943236934785495091246640541661314049276067265531008219701338073872666951129689362105943641947817492852049511336165205760530857918326393118418862509818743093094381153980988015762287316394759226767676288965619658437303598108929561034187138911386748191894555572603478041833173481415827482185204017428287394470165178447314403731558834155592520178684811282433691720420542391365365954283847743690193517034750827452719760222891307696594636834043092636227963570162790243929163766685709930150905319455953696387426859237923142461627962697665716121028018312320011845065365885722737520832619675816772890902971687334644089299797342625096270174825607449903881750672797422063923697297509857137021065991025493376491337901896931873800795612118641540713496940606598265040742312654545168763778252260278873320568298151658031472284569374419974011676392244726629996767125576652649223753043528648959549173922850781419584594693387814134902316143637212632554003209545069546616569257654782175242768546113658968309570564903721084422488160137819833456468110993040240585232372303777235460890089207819250625094046134800511384302753716906792190415346827911948599974363826829701255807066947078209169238455717095599626152463082987955643498807632090150067481282579274644479206635130875310993798810328454699920203728110508600411693449710624545480838392487815581672688674150579749852699324527422326724356968856309321544374179231702008827806133758996403004583059722288317666138153952270646289413183583934464238144747887761052499253583919597573358366587478641750557444918086027826424307013027352488163128025578665040455954640242607073085748698295242607402413271667175034740601789225614951280998006319929277729727303982378037720184903437810563287354444333395176663932414052111893067032784033819038019122455474470633026127735188492622676078247343457620057482608714827899403316731562125039475893071724702502932950020024665215152439149424054887412634639580192905567639578234135002052357089691494521264348864247622964456399784586018181043032672637130789791262718301925684529402300878778241265289183325336603652218348031492075734214131858136148839103016197948003410249566442810714637892248512470531475225149152869041416351296376288506860874853930686447288117044801002173829471261203231177295355395825744083620684301744660061189981592965241540351085783154681810189322032053359630540045158281649375622590433463475823644353789808119705478224249164429635490184635290068708404234340133197262360422403526738799253281043762601079877063941327490028736452876257633228531872096885413681754167794421081914953772835512447887595491748851789597924477531056209608916515573763159343775468098717390241795944010255602099133727490191412954789198182158746800094565906421975409500473590597523696529366213100440840842591303850733497201194783134910739488172666628848074347985188128195535198153679399378984279248822721946348943666378434044913208850330706366049138406801256743560425226408908354396071930819342977844451630737559053661884380967243345938556804839648088050691690899226596599599305079399716300458591683249563945534809638775582488970134440241167748519999963215928036919383450874524047984123388913297720744970655559695635387808526467699905482404570112105224933583311910775454044892891955305955776355962938409614996893977727862410068009007945844647961852636873027154894640070822217986066823557126706404049808443522675340752175631617783071754189660215882380711094218818551136033741537518765124370046638734813920855212969666711989201968076680594627607126106692537993564365817570505376538369565296784189225920153877113290187981887236700857667299926106533287023346535540377635403146662991270000594111934301137977706066640108218118632013431822942131500528103400293393387035629257978054726362741942638053663304485586066674430367627949474646913394084542739747390038163561330250765964674888711518308892286943532900102714198271120786679487273527162279292305740254834176093482400378407483044480735300249846699033050128665465067876931036884048274144941260275986790979737383826964541745882201678657387541364379216525855987699877635916447159168841962203148213073419073945695110819991159456586705191577944048426339003251150074554188857658807371707386748403800792308914912285027009432701304222254849745463145688207829345617295182522664365247385629319879626961581857013321125164843165609023569669740928385382295360892307700639969752324155771259329607203791757460575786035336899730876012473533079070234798952917696039819764698847365397977835984818981059311630095471774819678008516817263060303295693787137898120723808441606822943355625074784600227723755006066982004302887662511697073945426224803976851556953098204345165071224565456204188957682231092043633018580434397308216337332827636875362331744883369228918408564006171653951370759099111528223802811061170026879977743955979286212954844574762272893642285242297965347079598891878642845780074118696367228355526226362021301162002426994668702373562024735957113664991620084244252510986857278669033081418599713523754231963645866783899347081387576157448984347510391050570382785490806224153582273394209243682723404866254263052687312105088942599169570009100093952134348898550225848283440662845520910052879064334747517015998619144975750706498036652649841994799204988737479132415159498776908198970388543149979214489417063982963406369448327838278944340459787728103616936656074112398835137598065323404399651585403659564854993944163671833747862227405104989550982290650497436157423412179840068298231754728045314958231608967441233989806250828742857449937495429629678953232195882059797732582205988634447967094727385431782670099984662561341779444019862053127791144823924017851988589909458976464978796587941214089355878686087950668399065103566776873303885175526034870417056432435394041737861624253801795878280623260776064546469346818571792519165355643884827612414160217524412235961238408027531249866530309483347545074374907587189042133652072089721005468045412698926740069388392524316317271297814838812861574507559950370022708048991919888607932979798494455293682757228565853955332741932810177545284997924889166107738189312244127058593583934142269014111248398345284005675606144392275919570563240877237123847055699339319578611498909719795101386292319475554430849272745506804059549915014228736511197334664575629526523473665435290807235183704800587302825809453716128991733236360703024686005274647733321968497385503569360034563679486242663671019553029064145320405873272610551006883627207407673563414724039576201861229221338584227657348353843305029164748839463444086042217580933187724540500144693409234018125172421982399935917753483691098068687235574585053659171631667143091856003173815386041351186814976322616436155965549486708435597102377478970600485151729679488463124251956850755298115397277262773199461989778198800295029706269042467912771685333922565894458508870405164352042605846772293539358338289936446334945259200675198290479269267513500698862289799142891013184007151277517334067506059779143247257386707269175917928574713398248904687340142786708786983564445819975298449492362205928252429535331012145168360297508023225521114978869877644355835836056586485741702152352890856773819994692064179591525666749895646958959568117784294325284173324987128966136342672756340136035907526530593335246561539812143299716522186590888187173340680187973890462889631618342068145873555421450594360803303005934395879854686611832914059537899942539901732113258340024269645447115833317312949469017933754184401314660061663495928995281217095448009042634909771818447836588508740219849803702484925588355397504298954988513201121134629531544341619866319828195795527009422489724886612568105969718579694342171133649296910446569925470111009391420838649843692687993254370652110872386992356586265404551664058970186763902324263854229703781144933847563674032490249127500474578593367890978516537344717014020171180347444910725460737757048320549554354908318882574223222603520118693514630888643262511763297171521474029242846461298185765515568114171232413634746080195853876581073335656484021823010686860127104692004490949718849505354780823897027414954415185231782599070906042943807452541722761178535385157187151782754625908013126800599605606137288678433709338183756959141882641255206958827354325132904497035643551678799372431822912875338808250921346320642895272358033958412900675351642771774472154934532078826288803123543015793390553636970232126846909673456270360146945293510355790191535667415845775510697862252280607400109571563865001743646866604794029990938170337718898322377773381653851688908358072124734496024513102403911295619547062462585823583965696092661554651812251750155874691243478801766539151504570430533645945902311670783708058915429717037125478796910172257524654330835851995267962130722787025639061511474402027328113936375325961328867883021717629472395193942246221301438624658091919443644161372100125236199277826340127093176985645661504124909038170444920562030138673960660617572226710177086758965522478644391236737124415036648338694134007855933655068021586496911882745345254915304271187261371664912499097412530370988912352313381045607267512146928356882244345621549653755953620743585015603069308881519743013831834681276753217082818114204280612872637316737725697652518149069175519610586556123599501787902128681037381429944927845742320265694076508048369895101378500825660235479980205788429641403700128408488532505042440233062403724943621105919632895424108143689195888485966779222195367558806751316878540160426412130992101085517536195789658765871459953322734213057054523925750575193253154706015778563160287236622213944785473352601044919655144383486024072191936879600710668892717768757725927742526171768503173200285359608796928629800698881400609590904715466334180515751327968547842707734336562063736132983920684261681250646246686063819374768715622534874277956468737401816963325191911986687014691259798819985782507053229437959599403432588359396392179164645711740420207395532726574202944974649419675681444249259604637871191025034949071116040269060481151907535711615861273400388478374895724611970370694518048418185564118756882893854220178289664636449919225449251298530967824330724013799670696374532600128139970901599542337769835936152582555177612742326426524605891143998014297231061991501690423471984439121957596864665757940835652107295691099676611449865443328226031753062209078174479958553405767463653711168818311875626140097214569787186220592119669688971397667061809697656102718538628204447423749056940622730934522175667425666841374694307139130487642304599886190706169438176866903479204498225335454196787666629370473178449702814934252205620769802374095940010210972872834153416898314106325215689867085163500793049065572744733214007780581737232249361650219508184789594482124770833884292790224807808295967372615471552271023672816339749273542992058716548282947542889918455449638938686780075401045141546702580244002928828196146351771687450346259007417689716772694204150509744236833493378042471306411085346667291730118345748748513425474320047393242256612554008714215826609059326637877997595174282772046338197858504222835997625366327795200773600526326728832835840917472546692908397960616999861442465141767178939044912317861021414861962226083526024617519414829100055571481744315616486142358891432050026844147051925096943304977927334557947050243126076667655681432834373318681012845606708782596901486455761514773611603569045905641373341767137627777129563543113172726910612301058654218021482952030225418185374515340159549180814233946821285178061158710614582500571769477293491086638840815465546322815214660531669288988797332436073830826240363291069062049954759414688630217238098319283855822198100995206676754955946022552238247693826575835097144733827764055933377989194174761347582105259635056548510282886480567171417374176975485205888484661923311454208200940395530366757006014624765526252051233155996660121403535886970405620914057615295861533436260476254798568980557310401989476664683361140600821981260773059710710214566226153123743514979482032283850619561511915589636567686630711509576140135130477174306135478053076994547479221010184448474248111540193719996929415376706243468581193600669576378967996304297658952102018482295157185490851614074588560960498474887840761524232742943855369307913821600669817758866244134002811033275178766529712511548445426081183822061645258990093795246804078125078281072316708525478725980455998423308870085521063120805101583642053358585143619607143458457472996810551683063994359764910496039094909055212190058165771153319286216795916668937371317033687685367291239647310404294301848671712925258739720321563196429557776787649469678133197461485339274413938155560553804393232498806343901582757471174468947915303267342581092364422453485013695051919837407606726153256916751403790375386015492568566062870350601744940126792379846660177851557647301294836731859229905515508151369763994778101688222239407123559030548302902044151511079640641548916006788296487154342830737435737109150283237843555665661822627913423213437918352897566862478906507502862981874581847379844555816709834010349659971073439559592426541583700899742536103817117024075265771689196527148965377689150948890040642964747236419682533775440745952871613960654528668563737018636103825474160506673703186395342793692049697176561918828281910755055020984146737956939051888339551212504283112978340506519228895135664703495330818674555608350406388022987771493062956595124649090362769124480697371411004700844391581294557894061335829325054194459652286465580398202574484224553338477098117711865825424769360399813865443442642031603751545835854149629555050424648408673321645963531163662104547665926286485151065968873044986097238842769986457344074317652699996633222898847454066745351925410804422993570949733214697095211785712238232765150766225018803469955243535781855921688858027771966690660502479580409582352125059417074850728934684817227433794367490211792506780833161321631907397898621520875110037525522282290279879397489354770293386757207126440278758986543388920113667311312562480691682881155024297084276578973437904626630026070580689049643901604907335679391957292273928980886374741951140904226616173580219884706062399062645357073158972245494833997345482554809765711850676027454563164532480626757703561229424862985886012983018326664999808278687932629830700286207328566222918855581567932933243051332108939436205063540888905884176992974531573122092495647184970565235491434148084174960104781049363486585054801766076563719797595532144898123530765439892506323965299832436177944464412443234659408586576740714867905117034553765053613324336986828165561659687246429146286459198671349046234958418797798429258744578650549103256716785818379499269805828873429329207689941407355025415207729736118021174826121729784915782912649861675801346125710037921169968403568978454088518794428891348115744010450015314751020018234522323342180132643833318648231425544730609041314810792767958292626729074615792618699785936110455249951844211830900380810565309783904240998276785066485467803053780009312138093428159351116303395975235479521190597568102720367771559232839486379270129966813502430176269143164015504854406667309179377243251153474376135173204062767846687190580094302654293014919723596790099482101095129196185044323710028796053935675775914412047686840380410845185846595241984476718623877783424204661759152959873425487483325320504386615319516738768337881867098400518979600854734186817090212191758436664985319765454614655711199693269124808827830242009970104038135730902639814758436683719755870782407979289910914711112370584764920974359664157490088158354879295840895808391662274517217834872203069743231771535995735356317658614388614520548445279257165866935882227122338862011042883834669850116283972698318639389327141680979731818644046192747397914540984241426406573638145161035636071282765385533586923578825661014697909562094430115933536060638817239879309502570238589169534586676374783595046647098439337486108919442081031588954625709916692401241760423123145676664965475960109184649980093748062451268277119318473048056459944942023102407040360215416027090037493335801402564243268111178271734645871412562710573410221167554694612073017570230453738637409591534758648926087892698299579758327370918865144876193476416710906194890431258817636711109959435327205749661119036067413719120340312323596513695250560301774260298829432242591923877793417206551327715582802858198040408761616995254412366240542774421001175861738487813772293031093523206394903055004722826482472299516233070214168057775466357705376717366630275033685633299715251898838285649685893544307227292585958899340921490464059825922587497576886690231650348791315791331391240907548289988849695380832314759579025956363562710970029273003165083662113313121902978086322511002863842008430310872761363143633423949127123425637574024955822472095299193208797395982890924483515535157263686503130431423716534515105082134859132923236604532831063878348507922750114630053900109616855286648585603048829568257368934041197005023226085743220095247584064548840630382469563829751985178046425877431878122444042568669432640553384131233945285546609212766172260675099073826451543436834106001079313146096726900349910693235377704015998268478287234047100016959136256094068843845944892457823590939273998057144511702009596945536569995672647345503375194027992039549995466099080436319656116353948772707083806186616213387598243862471798673440315725697041549161644457662545324762938403671335634742166674415304925515780987654227172133410020688526683548323148645790984270421279432585008043151829349733858663359365666640495588871709430937564819956452096446829696837688759850987678939940563333847581747491019190260788992194116200318411191372940795879024701034210652661775427987879424556467188762705418610226679505928219953814244108761241814037169651702802128321139014013822862650531354682243863536375839954714358062243082028901555522666673344248905403940279419122071791457198798049079790195924124679607484895191770445063239523556142294419949244472310096761013821286428978588503882516671749769493728099114476509456761892732770268170429686576058471509546461029815761359289106000171667678159892178530730567194418829706781891860679068560357924593985890614642239734026381846090417559202295681115768091545222516818960703187225788027900542542001428199630011922896090485613485053622502817027860841139057694492017152840058843916735672617158143244319463731125357302727593828618195295044984821260376670574869306508579819596499432252214905664660148441494147744811310402536171825905693123877926062513772793883829528768276233931088417958448169810390560084604122194346839456317003192707536025861591571859836840561698258244147075054729722508574967262540413999597290635985995624184605824406623524480748560510425134773105209111602608669708248624417709246008222153112565699937560442592906541400079133588825013945402132251446578242848466225457436595162242910420499861573016567310321130934842591370628897340445635561035882511890423602221172905638316127071177963488904726158092684512667169634626729120135662161709974139122577430296588712362168667354510253972706481784779254651077529559831113845858732666762299167849816969830656829082618885471185058547205405409062905198511058391746127277956269404584645217290408886968540964179867936994695195016769774073616117157313089459974496411909500060561727294772797943645957789770926909634774008396587935916341882270062996761547804251777192524013792403447721617524648825423738544713764219257264250753099411035456585372454941165247984972888664228846599097015473652048969597687790216572082236943651987683539280339249115740794298751607259612614281280280518350457278454107825735289354308369231657051457144064582188649867972010589248179349825130074055611428695527571607945924648086127587973437065247036523141628287604871850343785714359808462254113023645398016287303471379244233942464994287749249550033370356243198536883625213454443425567415102424638565399902259213325839677363938428375124906211028247777903488493292619782522229264734699454323973481168282343798195123375318174070414532299905057521827269572712338634828697460840449839574157176890654175927466329500282849889661353241683212713312592334442007254575065845602906088177704022666918266050500278611903375389233747034121064611659947294195473526310319688756770381020473624419598195984248064091739038970718460586747098439264967423854911473798079797354764234799399423475315692494661589176220420328173183915723136285460763767953635111875574558178162510972446151891547212247931231637400612890983813853795803873449227321081760904207623381184976196184696940108590894440867206879982735387559222949771237101569154051034285351797076178151778470302620477293991161057952740416414701426472268103000896065789531128799531522477955179027491404778057544083930180939278466432492413998728933051594294670558846287151280336858439730865886220698862488714411179220506733796359790245176930602168592661241220378345343759921377447799371600071856340537343839690357350556549509668507914479489241514354105486324887510912443641005314668184582011295243642259970673424905960137249071021731211883919622177247087138019014624569869767645487480166130935971312313847425335346951508727426991634593022452480257824007350902985926337262628154490591086626466529481036701316605577259140570213230606972645414293419058291895344901470560556445826188528389775146117360033460920874131328203761386830425690556596651188487406862475628246470844471374806629017610523163774555616779065143190035053948217935809691266313958655041402871574755883310393747956253168825260936250173387422600820005790530824523811185579499141884767109435717497247723891246880534092979980496238438549463569533590701425032257011458957832164317026043282027202154581031730913306942374953676780601420874895320748327917575528925178519297142387659392622631261437175622693050639790990383033456473293279288886700437382311375810776806550097824671349755408391549299472288781397778027102176329696492478939679581462380001222446520622629106580669605296287032695968131534673381720751942354735449591164964653073248344341067705581576256041132935887943274121828595888742201023723581755885573116253337170382783162158381346543322758365785217342424969826934428232794030068722147386355314730192150287617984064250231411934675910107395446811829626543535384618414581207631247076063943517099875512888084055020597955916797557642903203280549341063719364429052711833008484550060465967078023153216017719693449978914999049818653472871144883021689871685935831333075777764856116540761718395064712189005757625781497470510983222595645085378469954833426019420373485555959449189446679227960420482475269424826584870036408873433798217147349518137463482169259311639670243017168476608897951908713905640894340855151884705018057349127496257423521490628075784041932550091794626202476472057760052453951374768562105290851401849320247959987076419420801649296303125117744656758281278593347354640064096938341545566902973902810135337064022247029721601276057022792868115193757120928921385006252332157584376358830007157542547133026465022414927482184484533796654652274340764761735121011821401974903394273379572222794838724795906299812807583562585118400593487842419024589485138400239471544566277504526940592828150827804315899035490295567114932373317205119115150436777686070244133968379708379356847723544648048138927337734871651318264297838683958826102772734955482301304355452257386783208842057191053833964642134947524235375192128523077614839413484990427852830643562948667443407162773164316791437224730225371008085269958950683161332885402115275894247282836398719597602553978780257559334818444666517175209796748952710194339797005994943419853427132342647864847535201497080620429146987270505010304561469103781194338639262708346027706225431481104608581631491356686375059665437970742568083690141795775266305179189734189714857465603709680460326628740042710778731740345012535632175000663738453416781516969362508675227894643358199174852968234395864209396250833043689137495190158636930862530614667562471378711787190853643759453952591972617538558349638902999590570194323112824256513321283498377582002604844083888715532379157383196775671748885908972954341751070772592563315804093904061511490518514729721986097349091629519548863819640320385199501907724237989940911206083985368437349877799651737139631533802309796045428092675212087048902489807326715052607324661314814501792680658382991202284647309154725077513395124228817021497222071139755195064994269911299271921487070306376050745632853377575287620996613195741809130229634244501475524345295547187560984880557470256758003429419817543529788685052310111861659428773227758743721123200358828662307947636216312779436215904021737856678241380080432057998356777733670286519547863341959233058528487983154243643715244516007551967657744001272201996179433796700099739987797885945780720618989593857940873202192842396635617992091713915149200617457392707294445073704224426037581232792994663386336837507309276000562363606766515288386680862126457345684244652965370293719117971360853275428546543754452458850638213660650969494200401405878880306154397472639952636295322358741582611436625854444587917655518119381372897912787386148652366352621338662414711171692455111770592343316544332404260604450114812345824545426509374402199464601030508705170802235443686219505033234847310215572785007152135333632727077039767717854773022808384659861674551625884611274887549651837284224474973045423979272722576658811392622584581512248142566032484070365850842799650373627131783609938463558176565720491922343283617361815322655599377277152561696043591592554477858007115788984548002916503803991451320293740206126862436684315857500475855530592261919301612453824106924594816003144406951135394709371276589078172426366403398489704829076590045705448051553878734692926212914075371231590972157398312615136602809195662872679834763802197368475580672992961301015315384288685892634663051416408728984358651370074206177704574387893474671719973649950784492481205341574869087929978387191549463264677777344836568167518464428033661533772802610703503722374820554102027211531389697681703556052632271189168710244317357686149974014656459119671105469031675237794594375717487316268349712751194833247072669207418592831862324943537523740911318947876948301866218090428573360782211601089306022270516441169842767642189472115922704596210524338554187627555754775325716278569573182201057165512891597480055038629148803148975538330673372493313167581711263647583479890229432851499055225893895441815774339990860101486771711731687261100699660242887377011037459045042568456799918089157462528965732072031796247224028605516094779039395209500147945769809165824132537856163084543560723461223706203094959521086605845787019812977027640350736842814701286368468288549042380240901959486529109831637651685347513692995104716063777726711022482138971912590548345013030772092325135522578046616966572066465905373872903914126823520957052595822973121503951775854029042879417519951267940306463560949529596532716800055578477028189600469073784368127730838162821423472186778661084724181023626322686270246571719592170056828456757895658537759548815550502935189932351743194575372763951774943271683460170326236698987477377184224732579990609167117492375991396178878800352311921766132198283227497481844845720706262189051813242097579576201371688155318982203226499813846212655135776179909083087849986311563266100655547402651855854163827877342254562795761052550264629577269560536545518398614700279185719918993564714686650284611092560079418537363600562280300112166215898137659261759236738484552149190303894978464107866288758666693475049413859771678555388360355735344035783662231120058452993611512496136675451913901829461539773296980513340418633932425892295773647961778706803531136878391562222187899493856763150245810067236768941421634754191277473272349739255755669866856413289230729113607409760926171919790650945148392592962803586836712267841048279944463727517642007908972814495318958780819532798958531388660785529689284810673524470452734830299617637394378740191701538832512468471531537091634584734305675363121116551982838319704217358759893624422999348513577071309272964193905553341321115845533912640848777551771880455773074040733015716336471322515550477814540575628438417685278656601366072968505072039440582501690707905687212176392826530986371695937747192099453139593573340608178514563089485682570072746209240090119927886707443706129445499473820483413780378626716138757726187230853086174268833720015123443057873510224219799968877343984329603905948514661729633252491266942145560477666982314105417664332058163842990381969015519232671604504243160700664622413956838799007856803953888815070804400285089724386469381925043411401676538302076269143514140124613204233980394335487596930752381209077027048182757039269233312004909362970077519544886039433856511559307011874666463154710051677096726227251328812699961497124079688955496658977792491649381963184204816634668737141383886534947196216348875934713223183538939900637528496475491240801040252697398284082082957143895666065197045158860975032689651035033960664261774747290527346396892802187045550582900310995742848440559673306676619606794428764549985447047443729513147584530258999027707940385449524016950206136006322254710239339738201889389963333520983485690265860958720261658683689558359798542404577163262904982451946427605509026778515643117910631842747024602928123547443301892594633116196168733185928393923845459348019997918492696547522011996854666991706677690178138994593769482549850969409911081214914846479509479507397824905632767203855173894706509495763138083419738357659399038496115334589756662720689217502594975585733192917364379102174406922560255744832462226562018756228167382324424626594620975911185477423986418627596728168231082505467308742447323712986483160476039271867227559842054462312504373222933223268546004531831050129100197677098440164161978099665710855718117272150329091208970431678922461379481043922942289974432771933709108751315807929414744174284567596112506609680549127387189514602940462704161559675986171311886276767578733060026960238099323396613923750628126089928101841745364741234749771219586837326304443299338104054525244684566298934023836870783047674353155820424372764587370499533154219211516067471939782087293031131694933560474123467325222913496549194220924018028170842693311847921392163514335533541560571111616033153473254577783867678441581443513687826893520321716515271272360950610247261817050763181413343089254123746301682296590145461579872830609202510336536432670385893514240159819529627146413589771414812356390107994622926292203785087422169354379231650788255320304238586970792024524479646647591762962493273122354292469762251283161875476578188518109096539811909663915987815167635615510723096613742211461929744705934726096659298688460842302982797757304800566345266459362345207702106063447664653950590441548410134406858151976303525304579258623161014084878827385658026668148778559863528856298312581370776176589232431826120199387909513720189574762487786551334734168328118899246669448003351400298445187288714132032538689597053519929239697929621019659196607524854748887981790537094983568800661518863190365175222929211528099708803588743172826225099963257746211939038665207457737352069053166166149056839258143910942216072883809826977157586673527763531598838810315667805596046555309663996245787780958261533866751681095618620809089741729397017003446748356322291224608184424291243487280763759399446073694608063706396327093119618700192388055297207335795149107030488155510559351313169764229867550966963364313613117774641270422250862201792617403251948778008610372397782737859759883217438726046795232926990065144197837102510479336741474080463299600436659153739909462782400176555678760325618650662655322564337261089431055388178367551165917201583842158561319969492425491098322422626618005013839262920938309253119607795927669431020620520069209939422150292019630799084170078355291857191669902096364920534130476916498348722622730688212746277812346824944817270620096524418864154694961394935825800970450351808756274249858876366152652364723353074081607788392088311541388894024181031493706359351581810260728906877736689152989519641282949808753656770854511746804899130800397817445436943753609482243324298905234349520993834906541713027877099949167828568950853242409981397137108473023315083650296209711366630575921211598591017398733224333577865049284355653742125273135649875916723070122959481968649739032284397345007062056541152685226734794859065168374473918565834791000908908013802761172833853011643386519716375974645446680520366805401420554899126844573937272602853749249317902045135139311656164555989111734726007630875625050417013770929143710034637007567793247095718340572539942196628842803419770698908318006332861751330631008222263710042884205477501993175963129419542127751470221839326154828292259839829918083551816876941447734681898304222752717722790941981217952644218611350674407662647975210503634263925181048986088133247403087586875646923197083867575660956703665424639338426550702048385524431428358962973301651887713961756264085031094930051070346074474772247808439683375284264089877656627200476221981418755084027872171077176507036348031332336162735650768926301348662122092279916630413263193076832500475734806331735282747571748421309031781716596496935484778056385348074206473991290114564756811889597863816275309203546465417673705739073042638649738857245459353265419531910632760496101535451109201613839117982394658324983790688364099510887618975849196266030196189554602357937446199071575256791580204288490840833834231514903114479191046350699088972511391336348539323983519774126227959938458898132801708244349763992655731521529746733579328785895125295959283792605287627581575318022488262283207318509276113413174674136426069775942420852760231874405677195231764974517488624502319010740810411085640058319701091140785481441950302376573068617826821679109536321529802757060234735635824932103193628044958804323662777823793412749256536026016328684709049247659261244298088910903506577411770151036809036416502844980275144272252521368183891373369179728544822645102951471945464774263744284223812887100242319350913163050757782807799832949813869424256773914122538928821061673794299300066081514244000538132213212469970147157548514377577579679933733604616060197710519644223776889628771645360054989328487507316703009375283681217196381646481889515076664286049974527632236329272324435504703549879319012616579766753160984955649197328177188224183262827177949654846010341396529999533833373625161831152616359648728008678288467910190991262285781757237821481462820373150117428148782692982008408577498741559431329636849129779105908089970640237702793542070443731731615720868338382620807063561466518322098221181139020065546594440548178440867531711383881923599868064621935609047523379387878264627345854475896159388074981932317866669828247754961588833276178026583704960619821126621474723571649515307344914638282327962199715386385214380194633135245883627788157493630428244519731694669519996962820731473323203806832652468227711095399816600614785110867024189262005138008747924856017975534177519667807303443968708945067247336373811705573560000508900142645552055153945881720189629324852175666583834412868806781527774525929624106147039346660710409435186816087597597505112267524868015636476447818231573424656847791570440452594126579841707666777454235936610135983415754982538246637959767891713663528892838865380084481979688204280121484121887335051321031716615690385191196287894452067451801012071615339410247710613813705063853493759683902145935429246362595917064253049508634223550715220279532967177750216730185186673600112582226914870989997087758427689239233225628129888479592226844830376351068941309751769886002714249757231857586127426931099520032994869780623857118090894507158157708203202526437650383230881145456255062139093558365171744212282587348506710300780259751620931207280986281588709332049961928718042492910605516063780750270756802949303565827020111001944749297036815703595802665451615046108304662104245286018038943918200449991718531092981479986528245979577170035184799102956139706931490219357411386036243131618967745104646100269114604268958769174942695517577786772308938165334932294995804928143537227519346777531855272459265032195809315117082174875372645160389214644035299325420026672801233681819814982805882795016765049328879716315112505221880906517348175101100094902798518984511012682655086559425209513162182774516102573547201234547613566015410575530356336020601153122130230523817794946193346303578872913705678974867137462838427002026980710720784514297148618231337865138802189534502024691825425621889498695893077416843502489702230477724636922611671474520245689751499397469924395438683205683769691461739654040769346337326875924115838798566423311240717795489008079764926843642122424211845011596421872981156218951618326273299885380943136611139754780053151143011548437830293691151309406293630842187014631184748287868924571420200042033498596863796477990373343715636405252524379142324633799609989324386073474007424525909054813766479338331415585081643814298568748819851133213123736749277103826273751623480002208027583034713928415666991303835035279647837938265683270423524852504522662653035398174090155566109744696011558558292346729479926005564756215864634716999763838489176962857819709748246047131036031360869404422487701361164218940799547757843571692479682759485313901992438777795481449638459133083677977316328312322184815202418873077685984135929095545888741245468760144604067987884515015128206410465140527200307163833651655577147397408945423946960432655663989022771282164370427707678454306382983615525728581225099203756387506245539362893005783452825926964755382062802152256339293336974002318167950564005135555260102383766183038420704327295975608982153793396198103594804374083607712136415856471545921385280116902729027088676463147802254873596294574988175212873388822063692923857043063816652224776735215059174249893416742590946168168409358403254630620349996507132803169847371664432039293152855369015240528562306079490551530404899614667428119915847195799735681203687964710744046987129196130718949808760408619536772332168100329847841801367715021134604881939808730163725833994845710582597232119082728036267484403274475602682364424524088122168261781335371297811129992544945334271060575034123013851338090748061309242305018109465883635031965575752208004575561525974626758140255305401973776862593102634944447548372343986287871108866916198118880361455423714657332985465546238101801892740163460620687925726660289995824078304100055809111834808405811409128283904676428736882473965106873785773172752803241119934655510578919556405259785076061682977462918961249275175101849652550323694555913337064292567707504744985281766997864279324056283450098386608599322274775485871661412226288770678096110026341865707571978129511398916360583783013628813408676759882643630184046739465763024259127247395217554395660640575124640232190316374734289209659058615976731824070467493726307334504610223299634204439760224640665912078127685938747472790222297250702689589781465357777971835922543655038492862618648670065314551326237101106381757442070988089171687283840633969172525567400554669507636335624242732354240366538993193940599714566484719752483849285320796121881905751652184531647017828009636996747369472665139273305436945612859595260963148353965311446750236206852401602948004046170591588160739863109537312592350204226483311120080211774334876941817326538955204642722122431679548872678948462916544880849724068880508208294454404190399589815325462614181590666360978854485505908143887846132125435005120294046503009215435692731270195942314093532894596347471741835418855398321182648657652326374469958199366301979865107771023908529808955135827477363666124119459160496056526799161373516062710508483917634004296093440240705070187780634553927265408008494047738093194536967704141037551865531135063297494872777229224669169404856267654524793872529514260943568284797996629348921261995518114745848225647120787642763292562489217552362222140606333972971065207559580747769453582411151652559205234576020588915989756910048207467731460773813443237006056069375020316906457667883027315552141781980203242622201891956234727780425680073275760233271131443691675684733676770294144787924143987326120142283803112038603917674316143231996860936274509775835747143770460622104959100314423616120782384434954005302010011893754538258115282412874398637168581143891872120334179053191793094899834841463621879785328451556985052130502866510011375752755275705108236606516166680653964216525241018173176552201680742816542566679852985954177997932416922535623771844505726307180831822481585680594075853853773583133071289103241070807709927986750531923583142510761366165488861006455310688325007627784133533626111712369589324421265372217648714821221098474696739324357067087588070736265226381990022379335308770984606033116196828719524376565682697818244341720201233664348359385596184763463867476097809051699933755322292424255176859718615998638069352642198162698477939202217060460878066601147467810358539742121878008603757814427993950509567320561190131054988057665795165387622301892046963229078032036404426100264261392743241283476328708714366604129678859615796955078607017432796217748986282552023786635071865861529859131117064408359405190917760622772368965954613981867054549936688653044516029100628709207627307178979058038430729530389945774938732404855449514927922611740007259518452836052040122909534308076259583287236633935821982371524907608463768480748123291949023240781549590934692481031488478603618145499502882366671615894798546321091748810368643964456395543431821093003166088134120380332368961100192315560924074718141160851877323911853132306724476171231286530300329017965404194266111495301054644312600736286811877206439646498897263927869088175105269188874487157795411544616922774278612215447572961639473127200964422069270425890185291311409387597503318633332803218611427331635519929304496808774119256359222799420187485408202894253860471044787159044645816811342041507889248891123390116123861206409544676298700860624408602626848072349548371065221647793734795896638675342399143336185529139013349142863610554110533946714768729243245494270434233504008205245385001710985944834296226796306121336833781379051328605762681399918329633173527329333082367012062420856503346431027792908590535889224768689176137056623755641364555591934874620216473789340752192066076188466068103730999080194735805122184908826966953328283821486502934836726832180876992347607883849920985716220279276091025171057959211665641152866946891976894726751323337129953533167919924299931793824549110901497741692534348381152884642670381484305692659372733054479185484514482621786833091948536120045539669869272115152910454383202608323206585960489916130091347977304785333267726293750854068156794568622567559962450433818861525931721594503205317698367627176662557913149236703561838262812672857530333708740604678124146152746845074124321510999880086710697882714248200819578021355985571266185228533181923280831017567795237512614779350504344734570384328013771887060794971376544147804771324225479998475877884170856912153537965044740661134012934870615865167991162218986440641841376850564431482750058484456810915669239249349809074080341788911711925899621028676604660795896226817392802857027015693749673181087834140772439360090303776334463993973847388832205681197929270223113723961146952169356740309741994883412547890974219164820342887206003519661222385295569062365008921842916555626232255805391818484440799062054471916501362481992735808355880123311740681528267215567433872195242110178460220098030943732830095738147313213160805727094541570132572910536343488569783168362391853331533112803253300880044988781837929119519394142377842687260130315149148937313744716653382984643210847569305037074962514847172703782767732735671472568805753477355454813011137889303909660893753850116980665248629899744823234997568860064930564812882073705568977312865093568536912089217559106735365454794984970776838494812743013390239697040002216494945877491570165896243764096087730362836523914849388867310687946413970749873188289057165844351607342424698249797486319428330240996804177589619271031202881669277062388209386280128107385433765551425967610670417727255600340587615903413590365000592002128737135753958197180557625454096298186558896863446220034160863957819352720726223280075297071995240018844568915707482289063210132144763274519545257813499202595348894370135455500832281388421912682475900644782548355195942989717051321273982081178495125176003254275349538297175341575280973519804189383257549772044103373426192380421350091351832933210440729579566254015286956609367599458518553684629945663827510261266674298083743188728831043873647896770201422746937945373501988031565006948605152200096375444137043356449459774756274109294229920753597558313946822347948547029901896159890149454882689016861940364053070382045593963536680197372139577168332940412108689300425256402719127835658472466204031830661584536832093504293293048622270681033936772311490448648456816719259011274280713719970788859574503500304554616354051586348841074996088026065591138059215308032083642836953714119161164181162456830634368501014210714022248367228431493776567345429966191878994983265239340290065065750358935605854949847073653747998516870216544817651138185060361262012202484598089893441387961419180838970749942184170943734555649007946483817134307124083577317338418157191885123889035551107443594993016445344256876326312933372725213502096563174800278809637466216411227080716646353698038955045565783181699726086774792657334127645072771765916027160626584828313213735114147277444096837182043177702866578662466782854068145611299566856831391739758665988030351228585582102688096865227418520563543995137672393106397163844089355771378126618333072506754563843853878999659396068935722847185144065236169068788706048967453744434890216807052227542634895369255014130810164514845830682377587628392094469260409250862783952612704535485453623844789114157929831566724710793782015179959402982674879946108424256749421859080590975555143015282620064022205270742471276301195560709951684144727222458953192286777141491217180514183753665528885931566658625967426054123463916497110705204588535126654250384560768543616277697469160583326521926397247816943109687750672977044726607131620677525935965248938373013820978236858574350185321554003975146943838438970257803461062510031457013168349437323659122797976705691190068464382572537941358341898055166162755039648835212321641735935237356312100202591923818266465416515828696842335018646499870049857836039708136837722343643569059293054677927927257546111620730129970675796735428964097019737810342694691822829638105516596830650043184906516072295416417166533751134603794802657644129593848612912506874633912845955748064359494286786435571444107581580022906716916514738915713613659482406164784414313154318908618098678161889650146368959958494436708118021661374238930778793574854596010779008143920331871343121753178136273623489223672783427647107281615502065517190832304891315869767206162350769865258386435990274800474905853682270348208347841698245643607893365625236220923454328392636297323885336415691330765177116178334532925002868744782294239579740732687464419588693978023680114403541380698985877611752107675559746802172472117670751512741699302948737777988128903446134037865487158887537087215901046157865926769513612515541897492484632330206455465212421094639625447827678241656068398508582862347296880665505677497136813527100793954140285554821770954978737416304132025918872662637035528766203954297215457117207401003689244635836673539961179891559064534540862072235533785227016111700823008256632210920195338324566384138578721310869283742617113460691165645531699351552666943007651305237728437317664095971610406631575446035481459332563946368339682385674897628181922960317812351923698614230956138294314706696396567231043157867556834533185864183898959338858674699601983754232344970267183489010154889060154427669043419345639316811709020984194427658245844402015841119371385509176302860901196430413180719414748811625000862723713478149753753899999404498426842711553155427236653020437237582509915326620137122590825973533993325089153859432675086108869014974746620109592948182984369295792490135038418889211825327344357512020423252531752837803044050089340809485837714315209186946060250584933889800006913376209603163784955214031744492794796890630022211193603803943517939304898977372796673632529064517529292717962807802933441901371435922546216958065317806475037818586691171666649631787566578763500737600981825838693160836719917356312190145521457020025403697232692933395928017893970404007033155401328006748433521664356992378057998525576283032609740866758804835139701085785436798672401321059277753603496142746678560795007187425713371869539773736882224671720120058185956089738220059179544478774328869442674400195184113639538513658061664068918457142981283318996355884347094041596888442739671320835073258632273923474029889978632590619266193225596041249313931136462658560620061858716076976557516995144482814428760503381374500942272470353045042140404995666783813709830617416379936840050231310050601476615554086465858384548826117244274505283657828801459735793194031274710158307596931591322186686235888405663504847905231846828587991871145567556629953831099769568816676600593021730850844756637191572704090813750089391793742589477873317327686298529831958260752009234774660170512526612238805622973027136950412530231720767557581785091317392783939089754623483837836541959221323969464078641757362553407461953802265891916847494292282140320503488056355312938721030277407608329046606964967519681347440719589997019166419002844539952755253881065313205508173738311712863226666845262265219609663467835712949476552420882262123503412724137167486601014514852723595533566366991047779382108092882082270111103658453587381862364007647261094277234974713522396276202679392086526615988619183734732170533066838475430759019564965924639439742056802975176745548423342651813965670772574870118964712712180391617161387765399423515646491039074907067754192750303122371586613185881557938915242771554849167814070364001489813993713083839065177781466882639895876341228363138471036821312350571508900326640863266790966346734643645261013150591996099312967742195139988229814636225567607630390450983072184604678200016238908160151426160438811575270710787977710061588821586127863253799346539887911330179966172112457105900562932843786366403673748772746043077368268802829399967166310292045721283824185755968176120776158484370806543865429008605962791306689767936223675129248672087240376710120086479106600083261199047506215106658845301797474676845212067890266247532721817212524225021252436646750635229317871509246867515564379696791150505778089772274081659800280559375263687698891254141362343774548654221198408660047293146938083517910148989346432569090867761973100545167133249011872072917206952829485862053542489396589838375751162157309272915619290736984554378389690520585885561103880341484621722661834055996939945792033950345385760311111280680622340661671400447180650193893813502029048033085303596163523257816909274431610868908652943358521005869705582777265922487847077303678108458892956157882317791217941691637815081965250513860374421429203203422376236902836878246397283942711922863639623072781419318045476931777826416114441856372171908766695643966420148052253873458266548653452653854284830830491471634833977534857360782539192692586021089345123579853533135086020879721649815894518660051648416142021521235862911265612332440726525926368082422614213627169004215581288448476980791585340084189813751547638052036088361233347268632582104977364110735591873762268986955822752964195360670071007240332085159257440836183107613498405442170566549557488930765287474627309313970444776949083145474815294660958999246607542968585702145935464133262648289448504466818437977201176840908048134230514650520495067733210374564963428014349902972348419460197950014059540642645711932241002305675425837977192636119147794216471138418629892863788040492753101507612927337136754169152831760926458427394475563930975135901155520694985129512001881342300663413266821025087538376863345594212890528101090790839261645356006116833231575882295435499124191522070045557244461388002004177199014516189292617765456911263737713152790150397606870688961454395293074293583369400395658907428674721555721059764723222372932738572449563736887550787930203523882617841892512839015240502508702063322408131540204690691601008916250591944453067258167378075745556274482366190958337003841679651136939709653173967898791288404491156648375952649436563626621133418205277938845066944930868180053471839751826806019408059263716406737139317254327128261820495907364271651430247306200000671171692840299209846091340347901336576224202569181836219600443944102252677996876138483331135612446960420305421884384158154744711006102739338899332465617659880485495810403351998096970148654081625079120407106840584874891740404132592608974959186436677757111919340540296082680235272336762735011129929286541001998475911319062397808852067605326929138937795137922658721349264560378550579612197550965940973166317380215164078585577387217781624932551125616033979320672617702301042119072168237376256209304595984539561687990602436267959422499401215482485975020920482827122081607385016295561593756632519968490970186091518195645185568566809916977357176339269902300595688364858818893380745238288371544934052654073042178602462411912866736658618917358653189265957425188374951863363545284436021441505882624035545927027158371093397430710640321338205211449403258322337111569269836036346783448507127310381866994778580301079589653912254644077183257156962021219590860737106111534595831739592820201481925879246634010890691502319854196918352139926607133470819784759294751150268031838307194791793045509055916464378486000223029758927468932334972765883326574925456653222512897461091316887729008831003224576003484832394950544523096987215263657942547831858076022262342437180755616198665239865930242126389789531536872394171095529840376224395736174614727056422978558394533401714167461679632714832674890948877092600245965622911940173985659171666569747296785779086694748596452785329292680145083646926682235784692106194365254423870130840910690820278311444455179453523004962948330572783247563756880271515454041859439298133719868632712722011303719847715706985334601734157063878978895801240837225548059206773580635588129930939648012873226135517568854095547357619025818114290157199304153784093763902756143590960503044145352961207979968091679335731276332541076844848379647787539684566397366519323490705346492171220960881013206853460083150667574140516454163442475414946423983703616804411384589645265761316515189236231734808974315289653105504948308120382866999937122410269897517409959777919303542819999427838904260646815983442260986153257514447427200491816435855381904731371017782662496883196934711106998138967646519375710609052710601346177202913879985237232520300605302525168155109812035643718786536986740440166513152238194512118402659364961265504301394122177102239206388325389707305069206803957901065462941198726176745008196398012157556757112473230057217331524525891811780199117453217673109075498342151518456262457175183985381550742009625374280762185044145948313660014017324050913916289158180662281737377413158148977581698493594003863850321403196873182588915128832528408105850564293500657534421532936336516953430302018496018708523761533969655541428675548317893826214685898805768489311807152955950802063508287248642388130710162505657589025752409969810214043133873728279220813249780857240702639646881353469473725448447850700814399020506112476649936922297978804550488691779131022471853620313490742556676356570652342261771792923350368449439029103313966285095902404345396345828771269233350906734726201679852534250316047257397983023965081241509082423573441996671613419100005516973261105312203391584651009199711133431149112049639547063446579837497894736704139018810958371850777686289878112589637094722083372719753277664853124468188051932425705214832752774967849541568529643698894416174621237617649369335069429297434928915951650044361681116786135143673174208165280318557012030343794900954781968592699982513310495109617034423597858213320539317793454637534729299999172494027793935614317602893011774769701736490730553192369169777928710996152049578664071915617805554799254100610845754493833404900766532566041909638490078900168874141056704488426197344384906641531166268314703197861861865639036232948918202233173566932742129406357794667292582538236418611862173790961635628663659919059568751756265385511375044835763306921714239755020183465090047343552801431241713082866218881943057116302257037956486790328717715803944504573929128989651026342492461868742365484242366616448858758827853054940890537755016765475261734526922930444736467649279935019258134793436601704334484133553011534498976348729067672883061146587848001907072591352627704321367429812045237551494231421739516868769848463782608261800450839605703803524731110218368970194741614291141182833622745834353400070104611814554864052060594444150554361793189453708856612089279242946274856865746737539569271161732898035336338053528435470162440203848838049607601266930909742708527168134892521724509028438402595254460572096438725909857062316620902224454005972549204418163570218365429014662687803701992375986377620436671814681119413083541701832111096006311150573561181623878252869989870789074895739676063912257587551547968739527389972428970543991703281541118591578428694313663021906930791426229270167523164005450939753137980259663022378201301267757896183352238168500175649634882896071308668155537784449588162090433423458381645255221919951638571141261543840033479450248374436185171461467934525860337197207202420685916783977215811410678822883584459868747032270222420429078295137048456546249800472479431557082533836728900204798072068083741928723377692762154794923015949982576341880509146875957610704465632905602054671086064225874704478518440885141447045856236415032114164820599416077757499893086126753857548976861968861245181601670895407564138614377911056251054238140945734814953741142632758052616372831987738445687780011371813624045270086357651415229540566997701887496483634474287879489077417652671115841179253611221342698326535676549950069994842955111942877496045191332449256191971842125423799737260871303740096486796263519096364577584925328010689093488012267491114253538805940311535987829150914394738612100727271872263617582122928944761658683032608788038955698914017419017363392321592621872890015171464768301776276556187528165435338752975404532576158606493886418733354448377225357511489459061059970230320433974376867227511013258823152602569045636073354405329220541324466768849682053654458356629285628605847160547516242310932458819018416770358848911684370957533691981288198586614407565617659243934048065830020308376148281887911299587690689230185880157893295071270607176021959203309587690708620031010959700115828713389938386218338238036987585380606205285661098996044137088180024947506846741521389401521136944093023010734578421080176501252342349823764131642699283052393774871193974390881683551011742716459617164820217689212471199929827510500013790360522090592929341145634911652361479816752623012978579852963229464930558373453863473643260792011605725349225415388258930031013041132364900861275828499578140593611939370026801245115623936096958588473962334030377888496839371142758048784853032103481990077225462287188234951785007964522888219520621523195284798569482450136913469008787849374427112210004735988051854952235903259945302947849077579297095297976308414748531024514120646000012926794029480869475846906689308799191642794333788821648375303142561523101420784574316057845096438849691196169535282030850531408577323860470045671134957497677309650981604383210981978245483526223121106442250989648918588317532150961827112885643250766502600494749346124177946736714560031152254826122857019766026215467845992339659927077707656266727993587473481453499366892380274134696480609364208663815052776802520581701358935637273886372232273570736095465593087563117516115037265902462173326677943472690146404831216488296320202977495777400230670384196170834338956507114295991059639575778423968359943631511245928098607405612256951340706259311856962862310986676920771844553003383484045065907546777525654600169256656632314685344284030501426187343720432377868040447208053106951348242377109023978101891470978667236391188666569737959767256391870488062558303966497627687385347444230851663626474462032011701230417493713186496600119332532665848684099157871430273118206517468919866555735922473610836872243337120592205782055305662381842985363803310011236658385238867015496387528237551520287553411756494661924547264307887341634376825616789129872335406170038542669194929369384710351022935625561743824264235223733444767174505354936012307563177952034034785512865535541619146199025003140348688154901475861514770852239874992843379853885582092342858421091941396719154948534374348609545555388943675257814429578965285227951210653294781294413041615114657885798178492252513364849777274208966096195706206719213307126440648672383278326618680512958967256110670350463636853061879319572664682519883519611948628766286488792532437759213128289322837216003967426187638179763943369362663293978610375708097279627453592990705612839586045822847017220776779453071126087476385939217575531690783795271412857785084931485197716138330304168972810201649878384521579180642015492940248782559777309213426832767777216520855974924026142758682611418384006536508211480727750206966935700325868583601697677074290129213083792231231264239082773141667627635071883735185611778147519550499555490563016753864152043822264518610407585463413518262201598204664268317974030883609186055506520879360911666675854520181972676088072152861614655117624035916743210421271838494444437466365862787395800929860250640625450018546504913093988979391244883202186145048975991584295579370152560453483959289790768315312127630401498000167429063401952680282614066327416399126062105078950972337130652397542967382437902378289049988111275975916502800237889045392150352058738111210990315545758236254235916588000855340479839245552246260706747892551001076217231662877319572700937459994773547379935296259222151156492685440121690352179885344984472910616533097691638458764718166639169973343152024361540195557477306699661623477639362613451218499280838386355194945343206428065534726111943032737187367689569416935943225060630503054256432652070535857368530375227722421228695779888611036702036366327742433441789719489705352064244762595358605844450554296151443992357626748307237593445067466454119348758504047939619570029603978115179541704398277002580804196769350920605894986918504012969712552636217803799842629176320083494428408697114310961426582765968638630885986812425492651177640951164570100730510597348490064491318153229113294178349673326117576906718220901210267633484528905730571573171068643497757303948189772720811079687052151436461762983423258731912827142334412303905802945916760840801953851488642595797984529433940842486055888469431982409443661002766024133401720843088438264557148593213849795343490426388188529974567075442938209620789820639396344818340356751097650535630916276147689172278393947685943983513853458403164488434088195266984360096845454522674198333383428832939052156933373743170130688056179328404559063799312045695083437548528856831926609489365459997579208265325346578750357861355037029210105726855003452042277270685975236879746905103772338976837190436794290525364150467866099815839783479019026524277644321993406419440762901960780725337099200785489027278314445060244444129090187641380200340945508612325373118686724449432934788450731814724562965408783727489686703200373732419115575589757985079650897169693312581676471213921880120629133711977920665319298469580514008969799358017568967413524641862394241702336986915305153770955499104475418698110863393950803863902460373596620770852151313856625914732107777007096635620446314723896704888060568634104805831166436462847217927707103460347352526117575075094963727924247957549675549349917274633215411548131329575199803376805305842843207350694047030513396657033051335668949413217922677249850783305745777713809961832754207163839000962885514377240492665939827099505503406479707943852704545081565179421287169038636624133853118696805112743994168167413773039735823159267701243241501343570700811659467460876333751293407699660576162805597416848878054760662184566604959327478736349371390406338374221861381589623466074562753652655500213632147565466919294626546493425119872055442057116110448793750174417684287139977081187180265181520173927543572340660581251559563841200254934074530820880252971218586478224050736457645818730436869028357438016867233659871824742742199666137315088294296219466222480966398512090947427450048313626039279547803514965897194046964054750826752367288927893657860465510557441564243466331518222551593050650461718977546000056085882753778221532578106896831960455554463188996860813510535599090943486422454365536462287351518922219102405249446949160890048691627647624651109970892673079006653810442233289177914584232151480781456732149160524000335796197151998302471346329580301087253170059733720742401136688668336853537922481573207732125685382456895095923204790789275439936882229752634688625384554555331021095787276632312172229742664211757634000353727259059152187026847004384695475904062225330818549596703742111598420861513977290054637250641805129769610619646452464632197871305175552813980122249148781281058777458492379627769691840552236313544663888329627946678450971295878131499423497974301078333420070709209796054312872381326129247156693843519289783176112864196951376600008559533658977107490921363861147653182882007341184404915638306718610431586719917385664827428234083046430924765088954059177643113144110755725730352966729824792189722186819003833657002451218993270625490226682855817778822053553674622667388855494865703015581673872040240734339967991316934521331971187807952211014149726935448469497022147803303524640563889731366123485690965469969681359415216823027577125698458247589082803285892000496137905661181313081717371249392457073937529596442101849166127792689780437344586336323917474418667395287714804137521688122180667772049564140437538677024009053804940056105144466734194246985666122031625185738762929778835628964555821146463335490771563126587751453976814080260925283015197636071917756600817193001372767288375551582299912028747148217526904132101267098865734146796731641819596218222577481391009903743354269638642664098537970210485843168256765322189015093868457205420041427709825960409028882619575025237571457302402279652713190551061944234514662442339308981077418737885356788577630212352112883563564984128031045047129017849792363451304624140562263510709784216075971536596023754689649282174236230046618612270234537901267657269766708070155154196178293496509391838037243488369079906241427434997711793844349632143491233994040912713984716439711265001852750137711333816736111945044399143662028201971716068167488967022100666112478415550603964663333093806395087023768652118420307632414225174785409909588138354907850908746143092714071575133272035845127960130951963897581965402144053796292388089967148089161815656233986838396701721792483660944304962360204407556378399013086136555565006651367341452977871959526050432005673343476959514912164271584837163115908953955941101068454893295090227814058085698296421897357862919180122613087985377056316409867701363610133435820622282370574838027766660330037504056272434402359166328503620937702172609428527308905632372052774704817838680594671662972565955609359273509977233774630837567571276492393669837354097155127557236775450223216606297823276060883816374564693646649502172229724795876356647419244237172613205108305911799546300287146162328558391724322425384005651968089090953858416791911297445554876220067078232307759421114809095043482812699296310358300385578081268448342589945063667935046027706590326260215910460446313737257870248284302549847784974232259220098263565561887091995833220954765694729119454006265072705709912937295892471142527539006130305854757515998876062172114152676192722025489462750454192940129871893318395936517870724388084097667982240796661482091806414066046713537045943562982905252934792646551273853692164152390539962504097327217047833412932646381395078646651184372509836260278860666573026715078216790303381389980475371878102149893465602515355072236924702967092208873373006114041886489355488883886268393010217452441739292222523491779545081694248708569517754455074435376604347230744363927265203803402193212061592255827711076536432447583627737831993326055078581927203524859416042337425951717267442897240452929458002534239246201579251179441985185815582714567820371925596571541324903620902865594155267334609688126671563122479573276490572530116171133412533115910318757711496620759318181877490030461648867664577463800476236705725245025338198686319412099133471248250639257290997296541494867923514512756611254671743139685260857511362243374826166657424805770821929928884530418865823428188708208416548204156388393398195341543183850530627933903546307578998873394986755638173004539764473930490224621196498575598737574485716491263012531097559166013714385965222560935689628078549824477886247758502951731494171124168161126561141762480203449028771789070675080335241150629387116943995701767695946509742651404696343565385206563939638414984831421683443873309939354575097785727300322767514704499289667481092023829738098050704639665985884910639007101010944683863398483979071081340082953310439523930695587304060239418435230104218386872532132441812904946745151883157141503268080256254729238793236050365586482217376715079763642394122204603219064399133527968585352974110220349756313719594251184872216091582620545072540015992821481273249966500360730744381156090790951984910833073525636689688540742812353435881063613428213471732333877714065187793993600497794866474478988591007005692382034827585328318353809533876922935530296285379648988848385728205121511479744835120403253976900720887872259435979228454433117133026410364435104723864872099285905192686748300288811704684888320116737616605828723470827829040681480454810042616042562620935333971787944514949956659700219152463737577024889483817357483634896210985760422214074041370245746073864020388538374828563604719685251853010352018752924233222097228565176774455221047987842703847054853327949760781029409092068189220864864921359392221674033864515698293872195224139400797923339040994898490660348878776828890442246496352099762706176939298662898860227453854577623538160626714897895134783638882210532075351643553808145377046831930827186790841957585660537239570090446341519170536628683360653181957783394308549226430877374832603018965112585165536734571204187380181214790637204038589054022247808580807489132837468848144912047049478919597904349805992582693659949039261247036914044900683936196007596499959844161056200080627866180981049680875928734444210186243691418035649459349351497571731533560639348061327857184917111856237483729343532570479987971360289804087168169145809875272952605147550553503977066051765246632124306796537135447858686965300919267070360537348633114229673322695402044541086487689332150108265481080491961399798693019127277570348784408205575626236974369602229052518040413322783810497744910855496728855674253192392099370853497743073559353770670028965311647016801941572900217738683405260364087482482990025865782899339208111021694841486888835141908518230895687664545830197182048527510149437604961652957132474578758283863536692054270433959987480667378295192517677184612195899216526933428486847517088575690360647317261739511802641021305374351449724758346285827192481855158335722410008589173066661028527484988035504481804863315547938404198059211928644910684457924718876236404933132657808686570239729635147890131585799113171464477841901849534787247594071130572173389899607209763635494118851733301877069530538023408142053817364690359052316692055461541431169012191702264791637208802216374048625876563520548590946080785774377386049052597345524454399156955391843058296312204546812497252447261043515411162006237348230354459705034181992374386878690045568261817346816862899988311406347181631294624533215841409310227722981292003100338308325981417712082460655404213096215572824512230170372654611906111706377071757012453681205865353303346431058740098797000527766359956999142534346040159437257792861407327578930470441127855653730482868655204738201951409291285925592926755701178640907908209661160394788642641368012894905424805021632280277678867367682378823995249108891829820703285691683762625233613352035795426786351294069786693769112069301752403350663604598620705458477488987301138946344516863752584482931012549621993385162130293695770127420278470175339432473598997546461996429009161997253689735920047416044587471392088464211850138499524514036603878873036778638899202137526960113737768258717617302050837486512646578540653883256818013687549579000957438261047737994874892849755102840618162762843088573358977916966308959790633796329282312887151824433070296540778617966921908147989114006598980487082541573454933590138228304273095141289767221917190822940108009112602084525853854564784105833570225546197826040214742069567052125316592592004908278554855620106724233443582388735935923359071282847082107961221694661026258156962968130404769281699781389915073272169051219781213589128014582238165825251366580337669053734906364022728417858866011534841407279268142844049124530098370147566762874636219290129633984857683482891815032560419789161483273461505402387896588476403482110842656694493593038724470185154698114361544181617025335773034302403016399174817458552478599318228268984509039012602710964916874373707684504625989035008274205062630854840413705294406719281837445552364932730885205346486293905936164592466136564197233132775855069611058940444886162671654276755627776805625324100311777943864660155501891061067072227794219444901449715630257213587490651750506081233397287551506528083562839767895529533486221807711312726635868093669427843087885233893869111655568584035779096091524541585634344667069006205100080130075249388231872636378986668324263326608673044448122572020783730691645799983311291050569155013382687103116855686772116980901327997884705645792276917294992646372487704395459073699562185578974484321541342535903471780408167471900516000160010896563341208148124520452692532988913606619945455865641345393388540190345130768765371197751368479172180180857461813591264421145421399757358787636023326416944426874837274862738120428080635687610134916000840168758111922372292538414977730945808961782318248851220074800917722216923617140667316609442207033750447952339304616943870928759888526958260565947827395048495793218467378064228252759775913265991316333248640690514214467977900392317036836350092867883710922802721145016043067964486244796757051267101834582241997988240269459667203255309222218254072773294869071725080330457837720836989565690219816360654934727303241377819308049737887484366599246728196157663048782055219473319564228247663219538194144853526442039068544717266916451144211352652141021087707713253433565427296501267960213506688595070691138159429842470887022270588629869275222252039579419300155715338205644744311946509356361347095453938475050280830337396579335308325535824644657535315685879248636068478051334123377716621418675995955048391461398711564140005711151871019409756573920390262844313565959002250142540868407363971613014760248060189053720633518196931722621316694537791806466740399012625476425649355143186710429508627894432606836516927081268887667582605613386417000776040982424259703962028486210718217016682065777927918515437160219084210329096468532277025706161331254351946295819056839088596724211095449522963044680121284801349538296085654155068680068932096924411703308855625067959427808182160080603096207593122252974186681146990558934194802697841942342077765814436389202530256503031412004184950571208417590190987248413167416825018778687357691022436417101868966102696111974881499446462060416380189693565188569513512180181321484725244158053935622339083433742018839552079159992328067311561603801964526762357936417484933760236842262638391658208313079319662576579225191321000103961870894316492851190110982735450452643446714613464019447723987562353874577725702867365500257328883733677629050941606639476413935079170772739335590505792427023863211702988123031433165974279387489081929266166415247490205218468409693177922189440024300768238137103001603006396379834838802401134498714969832094270522494091637282769881113654145296007448688108764478827788828974571765056926120463876993286175772421858631053735727928383757103830191860347556990062752209976813487754419286567239978321109249661298979927567563009243693172641669557654401212458657083698662645677174655946545683381634733173371707989484433146802156466798402307231900472055980686883185461827734056643216595760607575693264500735024556272599009562792046970575994608189226773242516469108749108962040309787331717311267511858153292551833877277004134317957267871424125744991778209222502779627340229938304667333522266700809812700479146992350249288345237928711080114335068511520643437776436187873745894748481032072862615502516857038038171554044685349894000254636363797088256231587782430151235992344946536435355092066929513548252078778463522276803921428992708236016658300234154830969670326445462712164127416762899635314292609567356567682906660585384938448634435613785025750336551072030157310389876864439490253892720690736020559938744227572480937966195712470911086429475735717421008560311691887239465114015347791940967949317412411383474760652363679554066145331436901285935811121585610013244705516152124064044955553736449888429228770422294633201818438791852851525983810822767765486707790003938929055165466587625345783159287444465008483385817959506100616499624123702583276916501882501740138461493732780023670590109942222768711193522885945092464836213514474338620120983926434073700350264657200733453465165602471749653924438776368370103011465356924267537057284023443687641561785034148323246773099488171915324653549766793693767140264639861679768527904701731935528613548920874491146454808534403953807272231935691937104834663355051850292047127712294885142806604242277987565514777749640097197149669459141063369230048033542799484016775411030382944911417472244539537220172155186865415815577771917961123326861644646658619974753747493820069917726883052077555377249408811282669258690447016394522017239042737897810701418356954430825372623069675750032455251895367814588110000125717312033126580710116035962664378644488888779253417090673357377430185423923145738034689391279213249207394178686920895027866504674666653134617256224370541143550125883452990289257260189877823432595550232565515807750395240725629772091996982516884461880973949471251452809256135057340857660882928384428759472259743294866439286090649119157341880642576643046972663351306025651025725902023042073756977398413254749558616637566521130997038640102554644931127628206534302793546757158721429998743728918598425397820250385334997766281689400333344011547544516001484256832950444576121452040039306966661355538271485064655522626267558612460161104860888832906738745389676510294580808934870715375671143646633135362146108843956841170735920236487127227254647753579144170488197555677725138223849768056518630237383508979123420714370978174008142896631410153382878666813583147695526534270954413484335542235805500924747218481118348354874069887639354179185236314962752834171432990457975819265312838278826226840758630550429811049699472176520285532845708739995934074407173485312192958708714391959953075529184605526381021776207123882356359594986239501854014415819175571686275840858369536227049464335405762193651468124589140733684182913167223670136876757577359388138555810726969811067356394855689320995618944272184725289034180644956110932215316664283063189489515791211200539690803516424709823034957687338790869613491320300009741684563601711256781144996768183253387011758807167196587059283559430270108903539744910969254679144457924009914475656878876843847670505122329159660981522049537711272717847217970736071997240807767075803420240517611126172050185790317094955373798017341543404718386398896417709022384569644850128946981016157352133810699409236431807728471124564013334425980975496058929758243269124395253068401318130374975312566849552033853492418054399917130293748827689224150025599267502537046224114271812812467641948672140950086926391150623277333119583799438528371069139526375166777375969017068308385977267802396435983439862351112395551736908202485713340654312385345205353215050893531969830827851726099491630100288326531115905647265089441911153502919719621050086264751761373674890632935782394201223398954904065820837881434838954796622494185674234518079523538269041352333132041203680744875139625603291941210937898240087093466692494062571391616666590416470913003806943141374007497544801295875637602417542854956298272530897155829105188738480507517320064080215973984646309966788781604516957084305245575503507818053154055955920150789940067968944102535189578884830252776550896403029029969105850325704511876801353786045067374388000062137804007509369689652768418939797490940557685141611066317301574316252724891078195114182283220719152952227038425068939068527974631271955799887886573864885088656916604446530523710911010004537418807512589502340419083505313783313580931455627703449050651516080732263996879074860640418342073036944429285191296624722878546295534818918864472489182657333822097216798302554960831849390085315886460359279525508792255217378353702517110476159626395602214682913257648240623747722412232766839787041454963889520867085030287830108604388776811561765554022065049428364027458980041385867947374490935671534981394905393318739014000964257812685698038390702694667861708767347010732049764345326613119214663423878268204773678421785222847107602999910090141114467938882208341209898863943030964486630590539848869350175760567946010775362462102124615045770113360089459127594882416785921298468842664940682499406202888477219766127083663770435626126320935148538703318570628987479843128057666239462155368250563954598957932422634854900701481971629830272435002838784539675101629204473832523996113777432327594454883060194100172727661858267885444171635894595737241228517812438529577679720065920750959753322907070387358293278574269638823178213986645325819681006453347964319509390949967054853731233875143354949389931117076485357264076600322771500839122039955510501639848097237260563339009654436943027526065472934384937848704610982963480703869687415982975253746470697434293211328976249078187165458300289091040441887730857832216656506912617613765146764994725064069640678061571593809060478333820454552765754312672573862953566362252386193999313771323027898888737005152508431893857777450282460963032610725849109380108570803552525352708376060453323000844901530837898811466079976240374855296792102396867181072799178903954807093242577670746805471884088114364201163060363375967753996611714904899482538925126091549717248242262613466322906309052804487915625671630333721380006572455074984207783441304544171910185091240755640196059975442342298733123496649877094277676173078004460040512129384883131757337745175440110956447172332957853349344526904928606930343003532691804468949781178442356358741175728541426698300469593799741596834333826185005157874200239741918409774587890234348590041780004373456340041916366825163377851790861742007493900348478732599238642612672249942463731687354876709122046436316357914337052826976899928084627660828004969341321029643905608805152931407200859204546998978297478877875642945073035631802477581017530671922709573720387207175852902313244386235649018342555274558709168719206384079934121163676678249416742099515027574251344251508461361250909904658550614269024804464449684283728284207539913516795963759470121294024272817803122700059082552588288375126823496623734181080735821025980412926083692131930430559672261526357590953971715264870747715182662082008815791201708466346317129507517772764863015141300751713918693205432761586634131172049731174862790980039611035958145217461976471698589346678896496471732283223804510716308413919180181360306468696188726629694915742089393506219019443680158485980177990092124654570690767525678830654053389308375400218288483788466619563786210481515289551431866233700975133462856804034855742150074113574956187139848371373622142347583850942894511302446741094940624395109971436476620337804061207716877778655334055405118964808592552778978771829078571506291073699777233229551667849237722063380924656285083512853059624543439140146986806439062974180066687577491877369872324948496726117620323646465587338638990720366559623107173024413010557480314440233392301788204767834206752388894083759797689699696012212464005387046461242826847723209966425321223518139946214690643382748791808646119518424555290681953866762250139567868018630089541095156626275025927500427047894971970287430706673218223976334660293004299778452135956175218559929081300341923625046928121633980220669435649323735647408880129286728192812197987095773375252451961377466986835086683522785454091066473523902471603587388051777628185608309084801815808411764526811284953701477008564210015417013964499031947818786326368858485019012811341008679876700280332890763741128569796869663542118507362853022032794762025924429748805945666473214944304842977778531832148503647458037336083709386416108651516948698121210921152430298245391389956536023016801009225688422759037146544515234371081340718498143963668115705512902782758440625924814331655348095506695280412113786789221491489169475072524184822606367885983162044448669254467352765838739695620373075523105166405509470471453700735193917768652659437401643885919630248476076617530912097232694714317745126601757472755800319499128610672138214860153809800520694607472273724915004860229223965581801367571752640022974660494714506694553025613577508220129861405239976747568775539546741170982781031349540126671930236175363638583157827467212281159809744721747097616071557251999846123130363582892629437908541461095638809944032318375089409059999444016743539074334850700260754311901006663457486265500946307506731104085638354469137494758821131130189873045080742086607611949241504831726378401313171402133481047777203806293642870619851902390096991472712092382697921401227329063703953312776286723198460265253841458774986936806321090404122071577122663433856261368119398797852962997626453148153947624616911269745778288612215419741677083460068822791506427016079874772603655295843229414344384127234016453866689425441312041202184276592356689232907326302271816117332262019713849131120154227284418656950361273415371029947628329097969563821931635800753925583820938113291828236637216097350410718971075232336567518447051583085346939824305374505374727905910171752437618657815375574666807506911689106648679748027562968988451162507264041450262675968153268488925559400819896118196210443373083913093951279147410281407035384653818737496581184891095565763138712495464567243952471499842764435748285912495937523760208772118128170448795690148917388091374013876535653329529766527150097301875044415868634553743349015922632640588112350537814447151599898040921883347456748258624348552758766724305719526157750575802108437496201215285728995839432506135999642495723040945739378820037635547172683646604307364050150383440338119880486262569421880832190352070381330899665525050458007066689448349237697816431813528953284945308645587648909471528838592921455009315476806342054144256180851580076842486796546847586534054845685390035817059963833316038581814666639637327635854600882840585375895468106349741447054248646252002261966480847187674380626786827290051091276239319566936688810072424413507886329939480044114135829458651088809577256245614315528570601235163755035123475738697546630949502230342737157324015936300179480750103533875975373339636657689464027882115754904004136247808402150447225042440779126340546875214773325808257725832298551782854706364707679865046393974357794563169033839631369176277476219457199379678593139757607541714095362532221554183321735050877176609974599424314643078508337795499441702728976313372584121753965466411223671193783319584711678906106608121867720697275323612753646480909103445304222067425127009796518717914638043466200342688826079321216024290767265781949527726489472661641013766784855961176578942137563584219188156435884830864069483565211172986071054460550199273947458678933429212411916815144677299572900281708515996677090689164453018531045344939557487672958520228032049663910910802621071639112595463404367363751770401121769283689492205865528931577703851011967791531779815546920341235580978122339672438916421528964916647129711572748478347843908683631095616182768421216737507943826178872518681765076331278903345722563640216947061550808451743279851485470927530777705057129797965375689859609779307670379612181553844449075453972136076448738722200548007513872451824881594868796835068688891388893678196737834286603279013322596937774642026612178158281201803015712459331762793624921301196874100360687124409208452171295064218416535160285767391522507555494994690551449620305304811503128506724672577194539367803820213897401764159119825505077164302666333852653816854487975660559391738771718083582824112721254982722428470440095099128181294797128914470169407811894887031090521862440094995601874636737142586610611011823720547829239684275153801465622889859626445048233827832147786363397472071942022296697763586130622141559817079513192880439664510304797619957553770285636815106812650968847822144334443749804886951695035719432230437214523465581304111103331072056699080174600942831536034302292415235114357254056229872043460036066456961681446797669749703557106475582235367982017423495238847161819536944918239759977665330509239981645540921218793046698965778080711404548496936551506635330793021003258676426441741741114017035836780629032269301546438944033721987677466263175000448707813854839154776804360659099940846531307420787374141543240235102487081941815991913433343399295753951309184500362875068295070701457227381289244793296977156399599859146331615472016383916485226922695295148112134534595532329591693197181171589021416086213541552779946132657689538036598616553272322380285395515575065676923671697637425882137347816233206631376737655367330862591632937922952020698979863330618657942396866035165061144293356747831778139733110926782404609652059405467923876877785245621215993151855087975809553165281231433688937619757277308176462352850453146498033244057936886296303112233408647016907314536669769892659715528555759369049938080056053387845499184394853007839940159726038873479850652243328243561219139433932107698704985537927746904567524639218005351648744035183903611323606396055263108323025974163040504724408784559181152645659174209545362903627525521569699053049251860117035939608349486820089070319567204175941261656556253652833070980940186685385165107066184969189356179531642310105092511930478470000304088163978293921524864288451609807070723563572412486817459352259410855193418377137135318848016513713409264650251714570292635345120669309342648535750613481548304394628331916293014685656417770536538770744664583686015616403879912380790141281646931000283419868902892846787430496975846011828271754670530652512414035970447468744003447725500351496266159370691964034493867208892961104659551496554926629538109597346395261143735301177379406009271067931313312540919949520033833525729882246120350491520646248677025737857848693960420811581203236602174083272123221820226562822130914676029004078618884072286213874576257700741596879238811979389392824594033773855156356180039888119619941514835926748030309819569677035042340075006395252818726465171351061483617538336589924448176626616753812162898135183471457555545382264016563223322218909702145559587129531142212213014695473579171877430142480145723635265764831085188872417158967172328822139665335392127875765780537411697719260401007186007051547843958113689931279103873847138999161374187286543871489092146734563214210483681303426832713028338758759064832676428241717913191397887183059461039091319516590743689031343547887990965846302207553026582171564117964548093636847062083730114266253487266845331611045510766094590910107701119237259339104539580690636321412439288643045380537802111241642386582645067345750501739725685343531536831977227496904417314409892632493935394809621616074449413441795732626789435136794525027077557446168949087492065643847697993562379646805455350397743768523889928228686897988875314851711894900968800408602358284217712443841118456238977152440217034242113240223494351456354945869349823942299087526293515253209023720976255907738441901821057082555783123277340211182952206131408331052694742126508342446661405477440117261766990852307034176253542945234149108746796239335553831126349404144532951696233546672357931278640133356658525401922938237055922550059819593764323442822987829059742302011640564650037163699080953877223795297683533709958595430654927593141272009449687993731246783751444146914699290164506504285605279110461973580663375578493053335626643366265518221287353627970663117375279009351996228554649165528146035976529541999172855452903582457273973280502758223363640506142291272739175800300759912245060449955494718248462209087765846686550056060486973060108462731191929616608054059907965624029001648210846618415958826647179636341092938200216137337464031136681238391205425667010371331036631530148931309757891795652836478611877353900059238434698081779832741480214125261439361760462351187407788384612792797673131953948883372481139002402668179436152771968291413361072049406858319205602574262289560251288257299408525846929330425643897956468881462058218616615946754073194238860110051040201049860480932830916691555879919854580302062636789978873754178235729791068939617824103752365430341472219275110244427380755875631427078482858525963966008861296933036488633297243494604887244566784772837627465843161595634782300649207426194589637463215887285034639291096199073313747206709600040375946994156886230148419818137210281719002782675734910643042802782599391375404352336703095230557227612743195021603019629888790716374073359751938123310500855615254298616643853746935185917129910159650750192131726208645924277711439577635317982943854090145858975657513231848825107997271635685357799199709826523614351059348046440664725935740031182861702416033249273658236786467761755316691531723489429161732166857704768043911533631964527800822676522240373316588128104296660787519123785211100310729953148285311001797631886657179320601010290306770569397518528929819605135988987632626184109355970301565544611376151875622596554247187277951534494006457408749082076037329335363433437828764485823577444007360404942935141875823347159845676900565888804164101487990250057233326119396829637082332988922873843814974150360501071633736079883352990059857872740097674004698279278779071952879870837687873101886808164053609825241525763717246053477636313454979994178414766719677745947315366992106100123684970205316693229814392614349975453303289522406576194958040288086259201576665661204949562161708519079405138080489996272024804460634423226234821767544887953622167666140632520661043227946468334241208036869752944140939860369678302110526666890919172004067393898410444815362100720981841155151617822112721693689625743860130141443169203425541446322230087054693222227224860568036682330142489776350978182138511764790566507715805385167015800225403759288625091126642930467673234461082712315378292565271958805831357466277293553244112549311956085141616765084642560729271042691625602685072431788975771651552935145737208325952713220004955177126257974365869784927425892407788703914519471413625822175645050578097932570581216553991020200122601151714783341383840452373576876458465124437423009195362631491761875893709928167041031045050735523612708866812850939642167556238169166020854236727279873849584703590730296632094927809344950075013798100560589659175570629151655038631810170966818431529085635770270262492780133491178806005617471292415789914157851118483068050574433707215578194358524155710043733680501019272053256486517951055259513760534672952937893495568566847020557248330340276963613943240443217087305788068624803516412887201479604896619858227483762158702566612698524116062188013699956747785835564607179905455117183601130473504921581736860705009641522553122775072797424389679537494762510042531960016199905191162396618031324135416729969002443954410738443581684975909561828091482768079559438758772315748332986474983789378235261095733460459997534568734180891475644216598543818386186179237272289543100268978599968499496600924646777953774751787378866453411810805410348907329494761747949127965020715259986087154173511194423333268593881429594568120435685185691631149548023197507840491047212167251182295865481276311135924728785901634530902621851264367207283180633278304602228282691439127823626812040604292308981788342288121798932267923897596352852207161459039787707509600842951340499603301204198246346359685789953985126929661793673411901875570729018758912180601445757420286600260864291231735484709655272222048046059991884350189121861523340883796131029965632775643070863613904916863408304517995096529743548927577454822738311151444236518030359691768141677226213696780927146205609975580961721812132439420177635315338670432781374053390877638462847924551951486316141601133516636013434414614749727298424242943435495626116407376796145542810419635772250245101969269441915502251303010156469269101562238158195528424428932730568438704307228664972038976046851184719616039933846978028130236301529051016630675639962942701433413260576377485092895063176281227712296899025046401276349080301851390047134548727093057398372533000494547576777190937529803419872451179636467045595574132509559669987190988685012651049608634908789286579929591242596566115255226514102473721888365413589306614159522948504675057268238132279124969768470832187800279693338133340956256275451930466878352253948579331459685592396198667102991645842524047869930133866817887464260311224532486466247155008153898971557450779026039334850163852116499366537648227677330106587336309878365094264953654209431147307192510607680039838727728233937353114189006334742455505649690859562596867624137677197494012372133254743851838397456460113894495071369059191660817644357966470352071116128084773245700787845852890880684574472085572985605843595088536783260841518940092098999976005578555329031330267716289925864906728501905910977442295348507082577967129300698471527407763548860950183056070291615833053161214684424941771668158808962312683634328348407796665656932436945604366535217165050286550888555447595126631317142510765356799909574672483471264535252335409752249059905497258328127524227342209354196126889369664099310686563568763495969358020325829196906197525758040012133002813777563356270025928163804602565659650733627892554973105537561409984643468345176900067336352961467262056247904361954396957725763438672363228817412543698871554142557366643729841587449782250829913748832809711159922091314912204333803626308497120499904052263062352866801701105744451522920467826789390999397856911464903734317828505319940560249240173100653722460866514008679345049809560435931532204222351940376928440664478915353305444008268011485929607001417726824199024903120664756272916225191221147267496213157642746277705321498821450878364236705777358663880456348293776729387499094644757673255226412430883181098292135906874361194900282737533747521210403065783894215987056629411657392720971422733055175599430832501865994368708959001386851024874026897812103189898868076620863023880780018847880948319765997180080271283621927827766067423055759185992333696268913305322364180481893845006150389195920408144713732503818413459076191560148492004402644306407053645531098871085183409670188637709991995860348589335126339490696100187353849927344295530062997406859258469473664250726300800133313964413464301849863339221656039362269573147633062726574872894326077613619261650148875788329276135952808451616823600641801787418189553024952757434991593810493664312260436127435340521918530045132987288654949970085798198715403139442148579582025565994107590671662306440998727702689445531428401358057630567042723647329121197773975322235545207444024652838951978174886386358850533688775105741440384863349741157492569782043045853937757938437106535351435658806135924757032845328967677803976086513645667376878070003631053352717113644469014255626854655112189820338136692288827833290156582890189979560198062432361118146129459816882794787170407002910021317361182841489205526403347921795228730721279341501214080949731601503369610821145428215352832937944705017275920237348916074060234044754184490843670625065958294981899833323136962545052852092887572336944692198148746084634644591314968555480309188102118592341479279201067468124954155211950601045516968749401804669174658249854379316748361315500557500565945717663440484006776331690850273967772156841001055599862260603114079718433872177871709339334691881566509360287947572367480482264360825035226499929989862418217956800298939050822305775601893107945313998076298278315736116240943206193250365304177162293096584828519216779113137482519263542477426253892063000329267216964980364638829757340516561401265641040325989153253486659518137490389588731120248675988050497303101008542367745949575820403089990827989254739412477469101032448855181381084023991333092182023646490013621053657773638275242598688420153299069498970015435278903190563897800759855472286463764596220356902831084467001225892461743402715502373627214119158604109433654299460818137547243233998811062076582585374868498841742485214412367160165706944786116520712925619234828738549452985990328510530658884872722434161887335336788349791156070116045621737326201799363459999985976221604759760887754317249437160360285702011522511902508652185928658679688939385835876186057152427324065367721551087016067212206220076541785517981946190121960310239676675452550990204125756242713413859693332255591999728754402541159113551244452744661852579142735764001817305204047246500597579270875150865712367987338409275285218607912490674721616538806527070530549120173996309366587874343455411390062440700651910396213033474386132502128971722372989855317413613455773728720849446217406469377693928047163968162341040866951618924579658359943695705717670890829722978038057775486618747145652525426022708058096263215451713547857573752265707938963994356331522324948555592466863161624636608116281772594357804935917389687042727506330332095728493108888753399834497349021308725008492511947169623459785046372222170263102682641227692340691305543781204307369468656035391874367830449607363562402358698694307041095406910051192941908232048262076958725716898211664749600041624287818399630264352004807981572817120501757295813702007660428439688494992253690789482182018593935925130329094506539426442685427854104557064523688713908876150900170613903558657595916839480523056452837233457374149478960163744756544429378074478598919425671871227820658806109075862891436439113656977928811160289160051199848016532352137821965724778875982151284147297329761823942820707431569933227264622197803105802551363035417856951860250840026960013323023081286860757200198509840007304648295624992710349852027651935637916815001440895252622018496251488692855293208743137402980624705334437319183926946054811513455532425200457900855089522996884689717483107465758240047108651283583248774095137859681554784481613401839304281305415552126111805129621695015688845079564613397072108304133503345378650083142880089610787840859227862554719186332380274239707472764280489527442544907623818505094855159391982212124627243356399539054741438981108626579119810011073361579098380645718477433769601016297542177325371137776657046739413632809357781926886154693206312815889346309889215874808097576496836408327104499024607889763157501819712256438806984791786894677293261949521037231263794015407243147337490943443389906366158505395022083995538456454353926112648854168968613351457379808561059682553638942811835516070346540378100391439114890804040516758601311875204471240766429012914837000350513326184414453245364287249297857867683435361421260323017009987065539259150909507115189449772280209787004688831164074239699700121421436005697140716767921660081835968190386129481741410770397990400614749502519468785875534133964146993527164211568841517691933085610275384257582500566235906830584002980852816524902165019414087148616753883107773552027305994072055173844846713364348004381288511679519379252615487856776218831844689498362721653037223807545450536481991546865034123495830443333445140528300385696384668102379914694749627150846499583209141980628054922547279659357198476948487217995629606174029427715667438283474864887436744187633779767173078486637550865360649743813483931811220916141907935122926180493228649378061575808174279288723899399048462658134294464132131606489134839703466372171744608446514440889630246310844318175029433992329889993741808478770645714672528811909512693586826750732235085585274175552898040523873572799849245346203987587837972108137657162440467512103457378003444831065449744602131864377252465851993496246440196521749409523447743120446540745330473931499279686368254314379994936738953829987649792170051457852702029011865557066196348873178541237403518389162546152414450704340558171607301591064320676901316995250315643934102141198778643872286381426747327223695208568593879673941678226155116110458468106205127476521031318145964731434865970532582323559764756119472480580446321815400767764850443242846094920241143367680310309546647233603338003501799799363211762568489002489243149014547501189127578304814650324143953992894128111084119513467398205680473342887439868929164262621901787815910767262667653364542156586896748555747399809003028420462801794703775090607913954926224328012145554678165150922306417389033425689572647093165392425423816913168445181883456823403105121536288710536963037449226735923905446663110041948987101970838096397416352667824800932540644595186845417769132153144834638122011943826978394128500758491334022471606506006730202964313251310452903205658514365982605169779053958848897702955235414245612115359933043700155715066405547380063426504147211490312445921289136158337539333367120925967321971739664387862390755025723371772345450317182801710876894976272507815662733084217163248713387122978373185075231327065474745297376368333919235384375399558314538166762787417168607465676011704437601492409391026074718589992425883099785088538823967161622056167763462349475991743887518488589623738321630236381901494350623577379588506435306249265188166311555813147972730858615483855957807993572166466119689607590350893986083084214319288270417065929343652377597304732034200384326530958327508428619592338069043407052841906449264034371297360745125326791672868062764785470301874751849688921338227868200414291283311596405191808877088026847409992322639370230490014218956074994120674680608846802635807539367137444880368764489495208560635689575188774988904551939522461842236341689423466343301107284641524336903331330661735635665249494865130323360567594528544446463326952291660977612956291454884940894317173533739979899691834421416347648635453801324500893196463247902406616069227495044574147841216500226820926923460246155103196190896589005403516870791217601789318775920265593060361872832589626599596708260330216856518659540396057796660895376826966178744444881381592313741466088951699227209081073392523403941013992661558714432173335159416449736342438734683326925058541563577947676606031668994377308183522598354199424418024738141767264536572548748738188610226272460932894801752350957412574985844491423379595625938170607257635478672775892321663260857208519856374625018628247014918325575478819341233885935197958055196016847333509739656968655668563170275811203987620880774742117107035857241910155299370325827096284102346480110269201017441285423476493539085229655573355304312849068000270017943277217250910046882678379209128469195017110343352643056732594289872465799685355053560843406823474771064511693137691293894482234084359795344876491136135444779477568199380425616230122276085899911861500731337058260508505403821053110873628542708303629979355137151529926545365460944855761464407212732965108040137167045446129020102403242416260779798717351947545036601917752594191818573230777064425129385621950966669664227314072648778906750268916333853150064495593542587886964686191602034148375566873960968741125594095474918461535999853690973261201940364384609536020618187789731047884099233493958487671045996404438363479098088982874007605399105370370986911044876856443126453238956705155963840331050129500873939675986463590327716000030118139801805437437071139969941061001586999533761131528927816670787575651919807740848458914705306284595329517812938086948949752245064582522720352224618621053270720705290803309288746633624964371772663738118368933912889399924878246737146339278577437207474265190677314639491540699704146772034843863591892257454074855647607605920814774340581560839881772210527120759448003698718858648048508987396461673392644336397039771321685237432042998791355840272363148331805173027723560124332063464504201952183316374859243582144726803128754364803327093788809016907281131579885349362815334364232001255428447485387510048924743857882225432186555899909373566686854783684668828481748064858606366755595223027049961036220173407371232974649529667512811704105501231033860788410733307444931810450659836973432883425039468691610924960107699963215013198033123718798824011724706746487864725721393064279169249867904754165798152006133687885054238097111395782394097392724947152397625697271013683829976038659517927847249629312159149644005487827942301885683432166007484635882848528775710760285250517964774895632124998524856738154534111337140252071620593838356671776415845328544561395074847723558398104598241232053387728117041664839370914638832983365838237296378048873450344777505462387386801201637513302483573011973219709425403193160417735678672120827807338583830608582019153762226602991913702111909420646167508773534793724394171359691718547333077382978770760958347273986051734605801327633110889303111830775169049987422989142399961180946628862506582806858938633688885780613172228341288566970052960254852265648979779693023353999137601873151982749003037701682309309461541239148227426325848902806604016465332265871789384743418119783889581065709808543032287317437194574865459315099161164101845490689657638618361082033248059481170430663241021491646523915997095900189277001635175849918975755786546119085894211975198307205658932894905059311181124746365722880142698797201443941644489221574711245043034741768308619198113394843800101213357438369592659148756499099775392088924944128410197944863657280994530096286054865861121613236140552806354914228495652657842677683916308917835933499445973138143031564568292429094376464865330467413756389503351430567052775550816887498654493689405696388234341114332549733070601218120417048674971352140173829207203400697789581970365213806961914961152139235043229676450802188246500896752883868232631764138990930601148816360817219900938837999868293885466720100585449582415379651387897838263207974524205402649981719954896993845056544748359808653290041525837331054683612762208391905588830046175191973834133240144004181035798529332368364591157922314536122907644319977983303781500292378257644122532092230685473771359678425117911423304832037785136031793964655906907311605371158335351350310215640292489316194225384456588259822210351408924789507562636297879442947590510088687962627027683730271126968926999938420548543269844460295208719797558438769636062005012666820599495647418134174458129160960317461506152573946334928599936152312215951147891612221573788267801763147219946931497906219291044862315458992543006979874101367544461934832763731301326754422779106063347118429806187097502396450088244173032882011260007519272549464960083642500665567105063840411281091328409979379310110832534299831042255168529088142391942991467172619951685226815012102548860012494661540189639436648884540453464563765802019098516769865960216706513454567789470929172903347032812410071149152115254736322039545036190709034496920709071838957900008068610875884763261684090952564835756344414908453082943498453147223025543677238008964260498315511796226554437145922725544299494586066787162551724157343443460806090054532542923439655955298702607209526561518380679169254576385075726628748309654013334329920968034087313869913822675121957924156863013748293811182077712851973754575648845139159452452794255621841859547923391329148929473768022580421038737682326798108972852437767936150161345029044233053877555757094416325065450355828931562523042944406920939297352893714276385549163646611809726550010509627083224459122192687324783493096754924676920502713874608165689776933250105956395959425032795606768096862590426008897862698882814326312029969369850484539864185028368189862134242144032499579621649618598478884421593550984829936608605262024173751229142247505401339341213399604360447673280325540488016140741523977124952006768351702497729385199406896744608562277904729029213080118779044048683712418454636522955176348314606295237353559486866073666610663254514390427556165407560173463140519769168785839179979490984326341517602813989071595078901828012608700937576870180831970200640814848198052581138772154157750817095566705822258566398656242479972105258110347471450080367712747053915952563834768878991312486341567954564704840240819894993473630333686106336124711263803634662295179816422629017187046402562482124608370206467651731476158522913273535589819049800311001624907184986814556315517954595459176686486758744903710646515733523460349566454084682443370800912542991476286497249213934497614511284308332606979678595498086858683755670677137262617378351297174468884601812010811645906832441293693840485970854495350912292482149742990800835070690314443231324992936507150509499844817386485576916659557905025204674257833821071568208086106482504433929702440483917843400158255896519439998691081278982543535421613417897474314320978230860064168683007763515256540479515005080574291178796184999770412643461960055582362507561255916759113312862915849544737034143796648977773343132008476515807868963650425428665143175178183954010063689094880307834431689983880738065350998075449447779328955118275957294365402760259947169359201066341901386876557809209609021047967250151669477066720370070319295298520962776377638585916106446459267247341730244417339501885715394864736949519261092232007428826798141523837954791881697765613226063890148525840993451585260592031540682576187011523916365517257809986786660484278377953210518606831117285022806914415768842036816687412593572067159644916123320854706446864258041565492677913981859930138024655386772988278269270367833861586685072816419854757024505438616433955593079779971326332532644540482494068027514229082198768697916033480247159182647555154044426352452945791371608661664803868759765029281769881196526295420144762884033713915760402636635477571313050143255584978928251632365364527930179698011176460264455006613506301139335956810302045776309304597550044647304943731107932889096705964928583254837730398479322811237974383619752040780361462430575731608950790288563356504870320239179151401288965130216475381483556322142815268688390503609081796418502537908380973846287453840694401022582140176092639906354310757075374605219501635941338766059429714507446247538927923197702328259653805090986799582095174263654757506857703563961228710982702410975985129953262815044006864271733344418062495416748818246989096168780632650327898912197065462952221148899747470819692461846896229996261946390377084327455519583804156267956276242706191275465176275073298035020581108312930984175879258082876000643578266338076937162887806220716475401426129786327102284837488186651879618563842744402512986055314930201638396362331818658134673290370107077836780778070452118394045347917797789383698449898692050549139103310054438248201446062176421451773167887197501584921643515977728696282714091883578547727731641015895416094194320519138282963619552293388036600617394981548579449300040860710591562611814851248272152932594639940463453368145582803557985600085502209103866710362011180946041863040311064939094256228995517184365732355939850545513245208032367616510654920303950064770887912057133282212140267295832227689763056119994928961974263146729470715561789690223410350484416168454112563995815178413033958861111988704680642294575162781860196050878817702499756392475045157030527982382562822569760873749180435297141280841928218436130362428764045616475746375914196154678908877633785243126240144332418234302218840742814209339788777497654186710084908512276710373186121183354709177588276011164442465731458720074872814839302134556356500743089475077799069208239745127346147666687195906689241072198997291556875310773571161428303696005406515354491112774819765993952054872028587787726836114138268913277675491651762764372227519236934767645380385648839916777251396719234320830733381271862548730128570315781241366490344070146401192667938251840796563239896682761894249424845085636835483467385471253063040636931973497482907698977715064529888350021604750816749357501561742110735644928295697291727851338625488344239255579156617525214989791702451712467255047788545856228879516797643258421096557507667207436927809779683255416721302500958219085744673647122509219150857611892859143777345881891833515051420850201147538335201761396571249646989845942423405286080936644540321960215170384950251084710412389735413792848389941993664650401183130631511297311439965617402035465678686032855321557353047461558987909617806803037498579071989675605945187660384005519264721233222433085610965635094572149273143158062141796273334058144019758458027104884746530310553806019914912561580743909739707937611778178680686814388723092484697526280383635098200807384244869023763135584810052105510364484926233390934576765831807206350197969086156514854140468318421572418902283235335482504690162783632812798193169704271091733193648951190587542091781904715654205205546478021397646712605329874529155492974035383274037368321337250561750682325834269531448279281101371449779705224041204720159900366106648168863334002021262660239109972804886575915715259983756315534235485218519588274353045501293917648058396598055001275946527841030943113497523246273091775887718435907584976783682985978913728876294580279558932358679783323205211948619291176088752741010740387984150007145534684606184800837598188836885315741889991369446415752243824107001654843366342291162550227743715975050372710444814790891880797454142652060065133277780918521302802314248800256441606658431132190191280249610032105462987648164906393698146555080060322695173957472938205037312749497084839073960351695101244474522326224229332075106432439128890075671946938682280703423100610266667968929867593788749149722749000295963595360655390456397946150659438663143401276392159380092303030654415456935198250840550075932827473083282576663496070515136177096720948513506051427741547497913080274295389759326245145717193600943004139534839732112109500210432495899695059783974364905472650044384469314955293430104670226872767729992211328383093241161820052777127405561299562485164761564332066558493381591257910670425166210169028129625493672515149362098965476625282223337688438601836648885864235018529273198554851308226655774139890830660828647213573554511429951296809758768565503505047540639256223927963550128793752910285654087704419865488468563041501479692987005504836770351538534956709796602807609838210142615332269496274011540454193400932056717028834754768851686219613495217992143283926262994707387843153818756307690166300167158019852340805041434080271829375774937688685699446125320946936848447186834095854788010932371933666096424457770273033897195986289469366557601337851524054365633029059831825092658074068736956757994527995273182474920205444792550930910641226263841778119645808083501948677612071570471159357750290700501267245298104569229150562844110950639865269663968811251661646778819101489214617130440539392472068007388694728342917712548369419900607872718439829149492955458761061552143707929236667992746265443012122615812661517590430130670285090478727762343958921718806746509534385810165262485361328790863867347910088608042896943068578758562914368021550985471131018001987349968230772034929282745990599351475307051727272182618533292644223948152619843068249816855175329831563439143609196698914851822415721168642393136101776833168462046512101767830462073653557663719036531510415958055467824508248681673245226028829766093988875511071470344606546420790064313557989935757601585118646949319047807200438282273503526719294499916962213757473517349853202308718978390852194646824295655516028812742209418112452599000119995546828483823963584655904609155341722857882062007558399499265167403855462528854475505459673257385079712006956687659020426928870028668062612650077503065505580309811784970376811193034932845398854896262906678158330491769090225806250872084217745701794800402858231650659167298921785102547988485047383738827857335954539945797365777246758144282788518650058167141041366597436227538420431413282751941403462642340204064954164182956189791750155205360739236107284029450909497206237798758822474676158367404605325531544019193689901044858100979807092374393240333228414318759473257111977266688223981703815364905371789273906119113230503263688543614287681505274484238337551746568352189451482029863566375403686664590449143502481996039608772626963425883988186682440140930598560638286303093527375122221006717545851962187354534400699175696654715721280949521678782043264837380513536635792641214391212149425679522813983530608687333953390347769351773587780666543269720317908768516458632456945331340155257582598836488918599268757280730792251123216559802460013003014569876963470843078581170236786533164707097459845517103809384296478988208637110919518846341098437933130382597686387005132071478144519422469386300910565715985033849225413615541683305783199443891587488723759772134927240231828755105415568583229862353358416739369276492535332231642386246771805307458820260745480897344409393521142920632635175584442153681188021527272808861809949423963284626470484950321260660798832099833552782687717585643224057726672697064263578979336021539510177704004560955195398126563415756957907895529435330077758245919728371008273888656420644269062947499276218963605586609540605817894556531481313609832014759960648011589760205410385956934953474914618970823087941691486242055812929013723435258294496179441217821333878597118605915237010029069870028623884895108981405308435414611128740615371054078094081959436277346042311609825317488475057119396316105101931908367541389104309644555793525970382072898072231561075944177407701085853692871036416401396911310982183552470010946718826295768915305111668193935040968277424659551649394650697121930515028780486207239137637751034892252014541297082658211485778837179639938656762294200179756719856431275248849311629067406438453903872844835401157548337149494136735934763886764677158332056363564684607443098688400801168691639147133728038542336636136774017265676943062062672198385138999154389247283378453523355717122302929611880343885647512327948453149296389823844987490672281913561980969965739064472879529704508000151961921744031306210988690664464739101444161058525153539255472533047317348862332972002589883053818270793033269392816290336728769215379735209893083607976861919269258502658713803288135477488935854472663443842978412632456723423200678893863213830310896254404554674541714330997462979825626515163917782737093546062450166381282475345743094634712515752735818080013712458826571440860288471975873067819169172727458380787928536981521573954060906831460222921379193274434691879722062086080551557325740394603931724557874619696921557410167245101425592009877457785835381970629568385992851816079741994616175158875231767808247091543222692491380396128377718912422909055699985571311429703314533677176901797463137852402525572591749285362210427408510715623514249732242774435520625287817730496903473874134732839680822319926430108530341961148381978233639022032595670086334528670700405047361454149196967080054495244821411399956283791078150845176462195115262148372416989664998846912092124581967836994484935288345089362554305630134577269725246302716582702967434279208437531794923361946520882321438403933739161852901234021608495010621815607923142827124754964610239372890731131240803475184955318222651034079540996875621315044762320652013426051877669257475892599062781839210599477701258672768209863349814302733703204882301039861945430053560963757726472944290997855888580899686878753350020542603682125602344803150726701029678932585031013252420624232405139083296146912665906420269474810391548585264039474957475651111675419505836655178829037315353579317976296154242547936152443588944835161294584473773115449179530221314387274791218671886846193884320075558158524483732079014189213454431947823147740389667686911057430619551443431711554940315565668791902131422216561731737054860481908037951950693368728774234667162100541833532426626798634437950670355634129453995650423010377674505550523477943653546376725265091415959790966170639226613977298854685678916297984100098487636050825422316801560654526877839069722571858630464393772583216767158685606805473557728942289594904024629768194420313966181864572356930671101230770833345076589150900610944688279182791314177243317833841644375001046633408605715312331485472177639795742840343832373805826255354126455166383030148766593278177434092183419068441964893817736517633867325258224437701545808605800242040787418401102523524921992017201947716517140068229741674025039785223244236669478990055759851423402342015839202099255789605097081787885030243039464091060498501794101136055095040476301927183856759771973507439849204218819786564513644729148261053926982416473897049178759435306592831176660528870257344685059718625697690467431186040331054674413998841854741615710927250600313770898770773698038114198192672341260682040352702714461162708820045278534428838529491355656623239934463614619969516537488811494577074172082571196811586330197607325369380260824409339364532834796124801666625934804596772324000879757355655330253572744861042345895647078043035195504047837276499685858135622156425022024036118945803421439303458858319455944850774040282605568295171024485882311329931719225508080789796128304528722780797486782030174036550885941837918439709757880809240451024910972519776898568117951638898326978452223887674194820546732066454003957702745424265906336112219493884331079863746628127341801089272750935698480406945286214999574470334223387359814198886879165799381867015795843208503605998637413810852894789151588928510339099046629332162323460603328108242954477726512909168682341809465364960056109708189377464095678359721014486426936015074000436663923716344415328020897425252205373179863070595501751312606860858904209729728242898644866108349946503219702621848588857474870717014068343239498214469854922541214040100130853945358424292519200939191435767072325414307381643575130896756982021659014046913145304577198828730490273779431884108756206521265853796068121369556586562368718775497603809054824042182488036385735668553848064988359809229230722865799082372728362411036789023564547707461106193277756042965319774541383431649004273158026105479121055300112206317494337105319355722765971747008370284492556605932269142275490344888149293228813030682987813089854964973324441732396884251800312735707404592901254140554046325146960053671794518432640729312954667190289528021730189258680216682740359230254321205996443408336774162016774832881428279700142975405391570572812399766438150130068181685361181653998554171182803000917904744592523158673666265579342341939007931739457605352796190109220864176509548635598792213693084843447699406168683479759993414300019941276018484926171038912086245746426079000338841149734549060732384883339600239516965057243519960320982120353855172305525852163967473025627131594208719971454408669798184260664635035067796625057492129887214048191374577534980119602723651908708384095711460530837844427677780752459201277557672374113530377558195213475272973846376648910571214967184586520088521232132326390541973465505838320152692768610645804391345196534832134526454730272294928775702808524766884995289751015381374187726196584367020215327102640437524014582603222255665460441681074908381442769590218871720393279159301497315402582298983843099694257083998673555208077647872307281009797587100782402841125520962156679906210199823221871110444648304163217368596165210938618414338514066987869069151090075113722774136003543438770588305895621059939970337552905220828295916381749812715191775744033100429936908061483242832389040463457482551928751158767584410879909702010140532262714105261704225551532925909321310211495305043393902521988576687667056510769783661506849795727356261675367377368612428643461734458054768691898396520162615540778306210220180467988755348635521663305728622507183189585621669247148035935734793459097450422138820456509568326353198165817042415027936284218259318703582186930057762650717417705016232982217123800645426942639508607582963410561536900469264582096887971769302722133296249567614824733901047678155541408169825567164326228876269083914849753836294519094948160877523373558344733307968424958756782003139694212320806595151575727081967322210386098743387590065262291464935323183212565480102731037316168721713663595196638680920708883201415456649443223363034357279336215259240376111622823969794646099115807209878556783325557570210506345493027262370201510386781947414547225247110660532197892037130119972123797904058493071724633364225454273242451810085569075506805666052819066965568735200384940315449626129742595422655177127321715717471962725666032784293317526530166680638900379497829001135616304945610423846898584095559436612417512771610681803272931349314785267808890624513608321475797484112086663131730881191843736555627709262254118429652586770957325031543592516862317752551306953623554593269855181608585265390485076276791384266370020720816273978279848041275599532948512043334600319806712285541367673075125849340257884896015891188016187962491242422645672559727209922571976004439425525286753814678857460203321416626202076765043289084156839471051682026316233093921430789829083668627970412926073021884552300931930199062329381965991830743039183600104991805196598972628400907032522633340658655637992771152328500329804463529066616501586594699447295925297928407423304167398839309438721292117760569941839790018778262941469074855121285072204006895211006717440121488469687736255737792866191375366248781761453560179991588555681986651894789821469637141777632042303083703303568995919997175962467445813774850746458323390258479262002882205388548005886738931641570804530894274789518371792622950774414766524296620083369401733801892932483461528598070342181324901967843419191030132609071555131904544503936369630337825439217613011973712129388542964554900461323898741224261888277038874932950541463442065577513385702548147552723108326006831560026941008253119645755069584274094580077053517698461193773351719042653681470188107101770288412647970639990911205497921942175383402608326103488145176961321855048145412618063006301792676710979976185497769582389724000265366900714764939496486475413791979628978247201099175579414661636184749231630790845459354533276522035147220723780757075850621355690199985424913308930350042827444871468729567276775806404537117352425808897966100574338623244489504631295440678825026171978405678984960760664060860345408368429600141874825106965503344413987183133844387848223169730981672393444933218547663874134449139737095224962544158775784333420224462882191870063883720990077886840109690081628862990947873805585098143474089127076629581000638576798054893251930145286736738304570099085525165816478280243944028487685246489206880454269356277434989169834689748895053475209060723034323863946198991437772583854048750306595703768772551902144585636345582566628675588661415466942784211257181799411180156076843754606283255902579860103841713441310562506868917369648414785887253931432591723318749772863001870783784198119878473339976719714805564107448135923686638753410517915145625042460667187656994189276446575330964256452669717412154720611878877817347586139360112311249564692508825340631934657243489583620751446556001245186366189603528058437222119146478742146825334746457969810106316313421259160337995935062522430030788619754782583701054309470366834656935656788481518097638600071749094469503285655038914899468271605991969651985610171171042650116760588025410964235532740933818834099768440481379676033107447240439273550677080895808290522703099338904978415733640206978655905499283151720482479740873742369513427287716608597387148706210800119805977071999405662036904469425660016858047542247256613210277083976655815910616395212162044604207013418266056353585190369466412652393828565310353827020950635663596970312156464756173397423971763975270263096163110939859905431927349717114473744129494324574263122284405366300554416257300031506784267701859559902230876517333088464632952516422448194639422705988686194034600191665498788328971928904175815349226293645011968448353565497591651801080144893200419107542351758165106485576127113757292122239943249231420478250659111488729734856129250342734167298975675608872722352738134905351084915125923667171492060019726503018372716997175559562500641756768139863151674351124163301385090085189183637480060981513268654895463478413253014176699518149718148672857074170970271962595527835453099615769609356358167415287091927974649020754075219866810814246011620181425319248755696380622399309588100498863684019899105037466994071289067696825239467720836067283617727884384024186703468332034072129725671248812445749654615532962467659991405685590060726715801843819895377010869198789413358092626571772204519811375750941347857886428831883963691184129866870479906661326220906989573082562896143823062406595988795016232152458405505360648213667612331550698328210715967831653021607321047811477379449633470227512421672867861485933391541976499799670937466355137556157708045136346591897378223520390982572245616552435949191248118757463378935470668644787179426029300898494897196159965158483714877298392316451196184877399466189679019691770156096711066844559479853296850226065573563811651829748020992856670576362365211627273567038291824337927391961161350877969728627043934528601867370194513175077486259002824838296983695432019733478914168607318333296280460131337495980711563482584121966169924227441421759880776647422823341850913757674415404329149768851527728114386782520242922731774481940915853224150226708237301171438777857614986110459370028235015765671469899433943372192880016479551113308657578894041139883735013081774392527694341107166257262204524062056300564098986587211669451022944169145167014645022589109888558323255903883093744414904673937038136585559340234164709463711213135214526193810465739354779201135703051916407021927648361319425941880252487351013166410102710294248381452183963999403344755209966320058781013621656560050572233023748569881677807305465467959540615854233907414226537739338049749069804945463719624692742545239756692674473047636020292241282703174469443483305362497016050770243108411319902112563800546619891555869127810015358794558480033172077988762897989493383267075590589891039748594947937477288420169751220826198020429583704703096482257655644133977301397571604031103865229041857071592378408272261307900310683592286681943906279715518439032818685727467025155326944119420953332794390684685467524754124355143567191766480187493940713032975205604608186401826600758711202830201374442042157594909179025281796038814833420333325088853503128591877243201565136405690712499776035163187850213596264873167256752430601091038692996133536432723133245532920092444677401515675524260386242154585349959090458667392048856151937510652018918300138521424356113346943721075453747092817796047198935045551285313219210123594825629995007945102708054004399178330947453853361734922781683948916570499254774064097319345533826259947294281679589551921242459223919641242862173220497701916189315437571665373621688106649310602820366787549080094062518949939493706236805326289467651192701205249014716580633854075138353711759839701573924413941114213847049660670690078552523863803900308491365190994705194729426937640512921793080075772858490000732588113363644345843403090427262234424001322574231606299190531473897328473006261898448962096391842726282977418505140131156796574068108259715513396445033871299577531957015209289944673266411187977620475548849013382005349952602001477362464637246085192938037982486406111103122403304244809159552843657546247312269041440866512787777799560130527795500824367738651903401671836011677227567901573990869189047770607564667032199170429071123609829193175752233779343090544591645068973418135163015255358048543132258940298314186931163883736003927558700928052797607745101501406645166737010534339594300804735506254905761519956473637220314170391286718116085529265820880141657722494039507664616491744098203543729793744405523027817583860259834870808924455615731966875710657502156266939254670552021101284401125228697677070610519291302251040175412973059280019587374033913269493071386078500858917995588268289041847598897806463127679968131197423094450847204222518384375410920039172081350311478003474043228988199275669081113887165756861450419642190100054900739588325427928981265076052927533687648840497159125710333415758283395390423304287069590653652687044122153593928090367562370346618234101085112694286466218905986335763103080671718988670741605976153864317351578256127696951425968299822648572676788039626018758365718508869671183884222140431175691585854108708931937434231861198470512382871059742102242095095982571311028373876205258620956723425330718007684647086900564335165832339562291743852403738361972827757856662968997007053298579893807101178160221061967041857296707642377611608153884713218882403475761289126195766613545550102569946995283657349730034923599145691753347122585448799966165004545385488049093172286521779730667617130103675499151163182692568643348004669475329464721958463236770045412689502680134923506976238033289348878239505122416080462586295174522034563657905176536187856012862842742903488437100999422254195260749094347222159421231235234960354722240538719425410984350253632445582148001570105512638809460057560076016318367052324955536549822690468389747402746541059125479712058616989827490831890681671617642980527270230172267998049220267118155330015368803996196568231713796343160500016190555436082078697439013964153322020790995451700525633934719079756425381650489830145262423537295380750363781426078678804349995590775719151545147552597214205852782259296794041909775559420529530342044366030032022182756879543001401162079999839160251770593940231513215582288549281286028197530566097569391572064067191954720840264059369439828663713541700053913168523529574140409411244354391663269107856189862424594233588999546463879133287897889323896377523125613115139075469244198283701443438312907515691326138164077235198179314190407507655814334289478445558264238694519648970746799452353859637677387019224766047781211966433632798207080443954174138801931954827897406820651010015352116895870966765955413476464404011730646472970450032188812550375770159034639931540876107851593448186674285774167028873851149199198406999237622853992203910754417202537261673191415683037184208122238440202630206293949664385851544011789005510493799659058069861539459816394538753158110535627309540109503470252994574423964073641967796855484311606688270497761036948011895530678303454812420670031503068822186241318677153727925704931210454343385950138148013236530931015518287965420674078202657089155416552809446703051169700509331146561113851152351669868576613804164563698306813120479657282680609085705763806588124107534984239860433074566205140419928383135479424342418284494845651864757821662090051390188274754012155586171400039029024546755068108092946306125684130878452592518942957222566712098350272554603192037156778668972534090314797340770474053238668699490085171060364436581945311839083088373088191039946200333748377491134629365912501121556251259359700827063113146014528264137323982696745286393898159069630866011260201265796407998634264222664798525290892764558034761417035367018079968271488559286905299627014473662570779154299422046803614069350631054628810001546037837325379796708554117605055197407588421944614564726573172341087798620091083805010464303766665909655559294553241248305162079615955710531181311413007419092497099395970139742325133847778959496726317077554502059181249585829818770045150095886656594103616067680616252656042122558366817052085972696606933710130570488937816728862920667714148406749677381902982555976117640200588497278267375340989391888480600792384103883822538972717565675976666583466122092242705360619066661817173104574837218836265045393299318903989971854000893639801185299404913272213094666004171722776461246994337312576308173115003954162756065442273296630541489985645042397720408027693332564148015127750449598347552611753402508141523831797149335930009398497936809404190044402273369465882700381198063947674859713105583804856312299957442412891087659846874419097224136105669528696017231812505914626326980548688556798918810399616499741805093220198820379076603447681072967968896642576586197475037870000957908123259192147586264111486235841935782440584129925893744166759433436356610693755114957788402785711286073685599667426661572380652587966407011988957474258253404368232779211827406508648341796183278290829867868666415602774080590503122881549830001658926828792308252920208688119122335878743022879648107130902295194559658607261397281252222380663403252671960070310827980686468056133110756840060538233871021109978929808078603344721560885993857094993513702215125552714769607206636723614523056834985259515118942560294316258839815901985395807900700672829370000654169604210428559557330423682381314147928635216340208278022150136407029208607560585307645268555523384285439150392252573004671231048736063682658463914607364888762854467522187495383311696144496579614303411608123343133926853841324373841530806641035883425986304656132102354250062623561250055164305468555612511154670801892488238988581879849479625962179554760226617996749187880750469378186408105922400062553183151775105689132973678324467122533658293761777704048119843577243627622887442948264493137143505925370549805208623271254511429546339458949701006889507241526290520376359932441110718743157866064977114247176576954872552102865791009273739501612087456242532329266412633885579913075685304088374886140201332094540609201777493582759194867763099922528652080688199839004051088703029548603126948252287594197053964937542849419812655427787186803950383541239160290823090324249715222692047393910554971095968636658590454572110011218307028690558722853699824321337625145069031851473837833598444786593543748453263781849733082460514262681425048560714289454019127735829626235127198301375607980143585363112934573508572091697817656563612134704349191055593802942078404002654799047026899332504041189801605066692662465652299255144236260144636475262987000414104696081722787312025764652780271889795097289466903127262367455561377848259056996550452285061558086297600502346848324050489200633177897183694706621745242619709887730250795186800591117986288685587683773196260241950285307194386223169007490252575519604388383421793692750601780641519242710678147357840884763751624311824886216159013009326680657899790932310452957574434773738667071246241778756308317695182038333731189680642653979353973876017500909157033812275460057529290192170664393196182538751638689863525999768688486580067145378233032672909988410967232870428478417026000130441980904400940350910305511387191791621469469962346299099729951750070111948196075292928690270423465331349501253402431791321033791546592483080274476512786230459696307298993078072517910157648229874557171713897276691095803376486697623025779194466284246613734576910964505171003743683276625736942378555468995714740761260141639338232685241371447156927717557304006177249271441281638472013484329290453365769920212297391897625704315878974112954255464128505650321587130463847796427210350909875061537040372349436608341055267339591729735561703475035178120126322548189897230407260292442903107872984144373563316971526033421566744380520709957321454030316370319525237391711818203888970888936514070420919355700591090337851804407704748066160049991679331492429680497869459596195778400760996050605318348128891278502277536258458845555182497423779688095799517006532566122928384354725455906347491227344062919764841133330054393294325829205403854950641519539912486178621776104792437791001402689915484653572688300726315956674892306998660405332043465112438039692258159097400292734407012751838900918401879590295998401991978834744181849987692961916204103139525463434543112281951817537211930656800646724613910666609157690902448597280090372811638357853987722974224216142076659814967037806097982730794703651644161182955756625228164178534069715444594151973078920412101638135907318996009980304314937305607798441318975147849038052813810286443271065528586985060458392777911319503803460087333508917611478279884800165549041773994133350908858261833311772854343457083632424082856512008224347942992567571898209709112560481933495942902507833888619954748914431786922034278683259948981993091492575284911011967871127707039813715459956033392506724029449712593086199441797357658057257669950218771731852500113653178008027839446066276879697492606944100169681685680038259601996586173244676945098547249984580338409824225087384793671312331410468443501589361707103805250021511521456232681833723874626000088669788400147600776184323448777185481664212981646633778022742372975849333971519259381082878520118622778458384836694192492793859794828255894680802638536230733070193355082609496540951792581533052844767957376548926228007764206252142707677850759904159598854424627232123158478716124513372112665424645504580562940676493710083410047649678205317522454086916621918972269181656197735528159233506107065274906880648293798500235454196085943575423734636511994660886833839569035276920359160866352875681541820447641561240184130166682258755557420512572047284055763127329977120552637870599286220579411368452908876598491046715688396050284147709614483019437750864710180278091144299496309341414006653262896039554801033904518822082246156083999422183591994221101545102248029288034757886944838788371110298286501002873925509357761871817911975476961370224977674005485211301784590863712202304065834636025848746930347476182897741525072512990588315098746619466423077863565789739118133920228985390433965902749348048975586579412910787909902893323375943872924843080541176179182928186493902705918202180564557596020808419850854563486984355768840504884649864344383940735987805035605766648827852223953663794687348065666863645448452371084810458155537255003371361464385978304069792911085126262647708356821780884151699078680364459793743915428645457092268644146071478262449862098951590902825856553850589016522370275506335967327061559750712281814240244698858801449943459584355221872911947921729681058878293705108987056166356938991775033815994210222515800017139418791648442807270827151233313172524883344943111515220244577406774808671105314680802807224854388464723834744516803091357866856928495511781226991037586779042805660583948842943465166972475769486913778903722024492297790828279696676734145274164562687464433583180692751383937549597683267314583474751520041243894160432505675669898180489227916356310444849857051779616972793464062324733575378112789423100025155770220719297333378493645697501450425104095253148600144952134593105450527697467443821360500219052267342039003954486419382123631289195964604324154345357690729950357154805356366732015723908310369663548287548556362050596291965833718276854428531193432027706207628610915510945579059774295738785225401791608925238178219961891205992642128038691886959701081053232601190187611885686510248550969648073506688498530583039699301375944474883383318582668358352043505900544333852470344858818244854915028539852311725300302807025879062328463825726147471492498938460499876505078138575587243676651421893579345862729460162530609452600968172740268716672419143967050824197946502694993668593636134986151958841314154000653437073580255001650225847796117017413357287623403658230394977253989684357646752597396920669741930782749773299371860387304913874631986098639580288976139804123561902801015640928371224352674280026460117965994964628045220696556054911795405685695368969881030141854473753817357302854896053838297368192877439388777306776392376959437909149596981178925516664616958575054345233164462452655390272166384821240109693395608406775985308590316196446292371340395759102623066469769251833689123181456686989218562756728227640250313996224027388144563319584146815268210945424485542020335306189880359636798416708702116191824363893107302050710958930891984908745296212998861303850580403360336788949918646385295141407358773216876482136869063181235817806087321543362466446657630120940696641587736345090548208902304094543363460051750097076974402289073893413107598592827130377818008296106713331167043334833344324022997553958320247484131844492609978922384915390887687617870003853089765541357234814210265521039867948489139507975064298751092277350168687481833722504005188806431565702030503872985543885914325060952476355951147079848020797621989589727014192508878192373549619799528356554031315908376728466857847746807535884701079658029339081342159859791463752032696389025730782983224392025726048600151241437253362769848477272692964600478241152990423860596142601480757780500808036160389824242198961320646104413722259427996504150807339157511407008987517317723210971251714848126123214562713476475793946339333249001342243833940738004971053416382111712325421933717797585326753731522103665335158656686464440408429420783017177835147063898255468599159636045027811531599065367251209825513258553237441845140532598636538675083588123951904247920913407110144843393069354667896974490494117370935913970907267085494391486738938349322587795136918685512010419903540404276464224374287638445918322106868299817855123705771246945085796298273416587228049447829981983095130097766063981786488553835807589853557406982426438707079869919987406048504761477150540053015068695761180717071115567200848361611843817168090840118059245063217399131620853402593698807851271834742560202558376545128777548858615346363839537137837390469175926078478419584315711867899679233480038445969868625161373287116554818877940703327229497712888078149165314275286460143146071042659077516932208473182650203331870705038861347935894899467758526244486812730392786850415300491785826290541829550503204446020467632818581921374732278597333417745622944321274382269609336644184657824744386402435016471837837316990235395615150698400537844687259930239218508099616724674601258375779944002175608644932354181311377094224926113188605318616557240572058932692814577131166952820144639592779138669359755506165384741380370265603121574311826960160783709408092786304715622415555877717416537304867011957136319164985115758242614492986358663553004350010653762022634834571756260515241907436656885343365082705977814538185314603140777607351979536930184126640875858372417792375627037146583707077737707975251850359279952916049716286171205885792350734704090726472767346569673740839959252826146247219979978434058492740930836109929694019726656610780578334070887333667193344228714616811899915904638783140539454548814504528312390365404427455709276135033529870307570466535197941533092648977087309202270346855182798768085233702177503624530347677385735180749265120600950849712533067454512942324680674018682828361838145286878405964556698390952097957162934312291692106584778883820519733645110139605636090865103708836949695877341225775729517279728418310771507174538554580020961646530961553623111928400078203533001215832989850841887905312103563029722923836266792868747234409605547462001846958808788860768597593426074119980652644823857387875323302553092432319784999004090663038777923738574049665369573754754696518636768337356572171234218079881421240517499900270691909376950571578101093631918191057604108069102904275261669610702081992087640491950358160467965898503171858941616635979185114459665459662062223498686325316790709076706250927802352325313549171202816719903630130195146975082613247304171048732199071059499933675410335369813043621748349677977744793077609844932540944451538037943229532434438547219062492191609518694767210222459602667062756660927089801083742394370817913377789336914614772651215857581137417204533700753741915691572766252321764110589074947212159230722531050711333570878247379045660813075276243740926822733484014207705170039019595010139806196903081401049110333348031673475265707175212120932853887241984997748513672008441890422924262786220660180020641110037320620357542315455628569720617283141105912918697358877721106173015713730466295360158036430212973767028862386550635667423235424218142288964580166012718175113818025641255934573807307654375460636373254853381611500924380564010669303247003727715587326890204521721943317993171054576886407201534256010757262769522847727953545151633432451255833261765128924254717978539797246615081678624231957674869900268591219998251793959611635851244619583180881217471853958733652356247680597155858621845443554559551831338450321057896307285726109731819303430746293713115252097541563115812089153199081086616404880659491793318502926343426069183137144874410484431531998910390678741745918854996451827809266879875752455301414930291000712481990590317871035525807831168764441392075785389635986804569359969504465767117610215556536893964425779918761282816162063496095894816807625017935544368973503258143230987393832503649517446233243647935107413855202570544083276656343737626559137488041434297203475881706544965063931594378279629964651178271355991440134795288755618071851537693893577158850522095800190052856055189179552300891275061899768961559183813624521291598588905565314635674579705967805631976650241648049592807603676626669534369836143758538163824543076200440081887306327786222153256278172783711925725022434164702694041582137438508499158858340020248455057571952799340124540812317115237968040472626330525986446903719108117583501431995529762368586583586618513923366612593934918552777677346619433896042607402344291144536913870434637247216027704455055316792397206428524353390759306466337621099147730847038112034813382036481004211755824039151310317760432133421836956030124889462801624610814099274966195882941007801219703453771727170113823948066577473854423647995639834800519434766207134087891750091530071171170235039508121360208456140700538801043303416825865450779073444383282323503492074667606540238914992085916858487927953324489109204724894596516705670572267339145790642175984677262238331121514500138981996299763621726410682182873422151940151687022608867086811478953857980136867542342213388291263079008883199049810527429579608571118791171986570870023027996510800010492730065187818000429203388593024587856558095450752544659385808029209382724549312744374358575843610185051656056093134027415156241750818359112053006098174320175806214000391694121704046153002418694612100860392757131860452621191090483285763234778675598322009437055502958447563317530152942909470998075247595616382076999319657590066075204194960656540649987342875300372156680681233365939012726127411975543545315879987745215968501337503848781010478192552228828835348937658388134186737928536137285807579915217168989325266249491365545479606206548963055285975781524225640527436607293036671594064046085773442282819951012789736069422787481503713025015216600765339704230998544045792107743469378000344781758639538644784172277916805211921452795128590804568725965883996831350236925558076294132617078907431768621030952244329454648443320447418549163039760292480410202082835789901822266538262400190555193994204647675175468483732983398553969971752172640766415257537660700017276182166682249458573752263219880259480081938688419671865291496679793483355855002580493933827532311037372704465251282585458149409982343149856707254777121953878258487983422876311171718504801401384152768882376808817921885020381111756921909167505800597244641274534274378722377222362693329561765861766920302287108757272904029503857449477666426529653476673472404566984446790666044606456058281232872959605022543498436985728730383803922993393224083062194347168451671617109739422041221951942448857540906302477127941707948338254774616962133539854887578835700150498529803903561216002579271180841594734280712731554871561817857488909509161441713220897292734600951741373923089813363017565570038823373989998515299421447087078269465229237631183831042979821056568127387411268784818269724965105192224286113369945853260355311788400509894742801431845704182760197959282660514838155072073155205772596481758600171311508156986273008510769898208815654935897739835749845800040871664639241376037838718315466519108121990693516246640260588481625006135489468958025099468533793699448006480277891976756833835668772272771383459593161880313965336506892889580005701047744431765189807264838609741462363361186538394615140229134539061474261577439482087559376449970933382124739897704468977263786297738166691515573475748969648414874724594227140107673996608631454309779291916706746451204194524847174356380737690634348104077504886022462114951127658301266716342832893224077502148145630118645582916688034256617895370275994470501208587059445829384971972489658866208884200030068331636153907572440474256656189749520566219126233370871065084737334267756782681548541867495223072810211263603983492094277538043222001850428418065784757042978154633123835660770042595853653892986051645629179764971607881277942694234211995013232849200602627152392595230118694972183219786388082578215861059683265186808944275879208987996130184693856907790295453380332644417396388157667711178253137801776251169676628262184533300805521485396863722564686740333941001148754390251132076331483326567390154820214181032059768227161686839743159846806099474702810221448560100616462487228597600957062498645783678636592949160040905347765728655830728540860214204557631366421441983366572677209119190291231941762883570150073264372589079577677608589038796251017740053148027933235506691154461978532859775039519205431968027837277274181766427839775776214595386904303798048829836983258162549330547025913585749222422389850102345111994859871587453447945157840037735316717806954892172333106370282706692092907684901032464975260120504484610095027323829947592374263505850921480703808903214501140269676436016441078911529033569326988780206710394644921478565084507501447335858580601936437756103826837871352261856671947660755238804612964086241235495044005381030974664189015757245017652649991703261445218242211702312622322200124894360115822562877445063876414978050411590305983697450324498275994390464671753085085651410874669733551174837993143584796090485252299359798171307702777510989215943276759583597086901876361953441837041909968905461636737366098421240871011954810623722392301042776339499340428901193583007709336754036839818572357067389291155674475998106324262812207624820610528062783669739176656690895839307132792557404065310646246782979104114708130453258343860291978566542640899121530096290547375696896913878552159457052230112813633184310923979354121554688006940741553190082330161400738027718632073526613829165921578443493406540340243240440945003014275256943229697660556396149952872409187249328469977166278284542901367883461590621267443779144701773286372496381966343439487656424057833710229354044709670824504217503564425097177106365968562875836901992961921524161088912343887353722624498343297192764419820115884698592833260349385247311478845865842400260821433528614121611446100937694426886365511771958609364142769218377674426967841129824162134906638191909933187450810490405567848936754734035674332081850696174570403726362723042727183233204156296722096074721103486687782284688808166756830761556650976036773100079886692951792799799455616282991112178907906305951995724676569868508361950816096122473460609163616410588449836874694189204269318765551227825654000602747185695429815582720260413424384083234163419042155381615366980252703720720826519874561506416212954550233161549209588139763082458579973710249309691493988818150100867394312839594896190559949154862236534231536820111754980573977396514158206566329593261077639091227653586878471664691753316195677749527423550735498300365477723241436355839495873054905570827905717032407484634523612141402878509941616336208955306200733180812685372705460805618583593108519111586778806312425429496055941210064895195678220897808546475468905711051113007450739545507340784450907997752473022153675372281626664000139855365730649360680644437334946158636897771124498970224334085875994833919764383398805430421262429981774914778410136470323798176679930868765319590095970563679344894691450071706034396210079324099707441453840095192018516948374473924348382898380077623987965045651714872461076561795664286755523737537658410389479701420814967270245406973728827984352470980898676709460513440447541465779589812695342241197035689670006392242746005258685417627307380829370092162472827318538289104971521099075804029897066932358405538868554506570745343659259191053178573171381689682865008881134042347376980775828857422111149350254059598621438475492418392660993423180898124445465658131144754789178317323395965226512002186896937003475879450172641426376983488229221637493438422825952705177681350950329458204812539901660303604749724519996778649052145520023685275194371419613037995355367220834194972360955474425308418731006866846640574374980489260944980261034309683660352763195520039543040514175776395641074252534633981768604895843815276817719195783565689692947391788164328401662933107318225371601012627777114981957845683424558537347166529810547286558267927531403536125901150170051682677379364915604588366130300380156887389104585497989810205939863383914561142043072788327967261359948592931713832095097834934715403758613540124934386136209458010817816289752045429562449117088465925158231783420623860832402293421573875815351095126179718363417328751133071623443433250917047975129030254872643296505305480262883481903256061646553095554459882032877122758549831994270316080855107877039534367950372018620688411408174415804328887129092045231813554369480579433180009809719019562130133297462302122798189443446581368287372812395927532312024712515350940285824884188995809078073777930553791770906367291151592735470340145472722014464535979051725792087532402751429235878207405129211448367026037355483623679582557548625231367507800257383364833184872922275323816384601830869047273228540274703991041910062268216937006473382172870483046585090162491454369132329689083154920252441645819282862164572447953871909205842167274479522699984805465420988837761558620133368314576255784926348696311760376535051792792001185185538020691957997828257972678681847524925137685495025543119659737257294322278929246516892444109879044223746430746447567415274193505330284750549169978202500583458298175939566953221298948111892333988064553375250833342461241738261978491966462589839117902401332551574183095402530324954932800085393191625835915754278735982694479435312425899723718791466604812095055239972427196565752612626355355315688155676437873564044138920188466387130416841442367822247332416483942700133863822498389905148099644512734719335963539803567323908069095739563521281054864893094041654538396356732624826321394820150628524123960172428228173930188131659448151211816160191382832208212455237475676686177152160951254977434185387048781372965638182950316613014148777801495103024084447066269031778145236335670211394841589673393444229010092700863773964360524967680546645936507386155584546395983307774829190239549361176725189350550291724291311211694944044018448396365646543676988031153742726431174188613698221394799180324394130037470012297554881933430050997265885475944200244351493662924939839112750611379694499064067875878960557617031788175465869167751536909264749056832804628187489944804078441670619954785447313092275545848448228939559002940422477371902990085345303750015562590908475104897058260594638458864700968207255396660640542106409402044830117366766698694835070103347568848658609559064449317881962793732550202516946789121790473598987850190782902690013941228990482561655455236197286838361264835063082285179237871310365415357972494409622996452138947593501231617756164700123161581574447586757175539601470450077390888853707675550723477687222591024036992745495833841719801382403421772423029639064329849936464348951652826720671098055513691694670447947765474598331031231205912793952329831990944272924026968472410973256483324543637246040132115143775019890248138529541142196093313527206454655232888826234765343433170600033330779239964496873856027012850621515165514455675442561502931171637223985173102441131519429069181454531362323742274998620494139234053695106373755027341800589623521247579377429729212468503983621562258538334169522142565011313693281883021017665167718363364333847157022020541586369019875168557612203522912380773631132071024881649721586420862494639930732030837329327394096079431363814429829505654485730158120627044533185846975827976110186178170849513178710406625173061868338898719183707915795479783605565887457455719467491588831889779281914659855469737085409967365050191126625620215986558276657713789344804577692196515769407597899913100047291713852330091492864367935722467121458367028181068406931159379791154925875509996622097521413424438032983898925385466062240421812785000161793779261038057159700858449339024907008183840602952135047140112861119952536458061372114583662418036198135933647791599382574606213267429797188590609258627383996441952571983809630221156476132572278983952636911381181762880409192342744896249028822071640236384646401900718094843701111794854653988111762737017406301063461772550639998504350695996300667999886368030643549783352598717994425555299320893001263925361922330916978815584364658602522160692980467706996555745081006311886536507580948795203240901109361430788297180525584807357659755655127981263855565354038602530819805316305587913021773681971654365118046914363531574595718232231418847921217713568892791758547515553269133787444444825237401674823697160923995186641676837864766685378086646114083577532802939033352484977713611403473956912883967657573229240708219050655463998534940274221366201725654346196409288184435060014299916458359020047637680525329227255087624444569564306725781606932819689748379639197113264733248169514405471256214081686208016479873114428461678920298754034486066404997051866030167610614608412522857916179131125581999504401889987870978792213934963257652006190434985551034273083688454892264325391695519100551605815113965772155432076311535977066422552238479834449092431565111225832987507016405540298150137767090130756208747876448938808940748178684580109631714532110469243173083982810433281511908332693957331750737384540433448175564819687857632289363401337409476339362159697400745521579818354379503543392984987378210069773083867845650584650751743367824686107484052406993013822892269910020306389389574164696714068217712031174746946236301935216658243882066703272051102572238787364421985850111317352199302490878107066440179611282986490211718850623599083701688080095357161974248489414152038734113603095122869504264628787665691145965797131888625192987473209655618018791536784275207520217302954079259794198886708000015931169697010888364610254999673959689502080223954030802271980106010691910936053076668794721862868095358607428592681366717279230380743370521077406346991214075641646223860958920666299049179494776854949077139795489769123905939005229327129610286912644231171118855405668330146973960754204471420329591560245783847513518691825714765402220397421217531009958020820024277466594718701387141687461173245075585483523747829299738979532852976508789538573484093614380991460888034404447440974312456808727351592594579635267618720842179156266686747213217374658197816881811391453664808596702373985716849598438845590656098364297234538479836321933037556160200437347009478923698971725932044612736075841428117597854344608972144461856192926582985727362416839416392686393043950509513576594733768645958340762313064587659841441565370682237277190589793903441532790392538068787367788306397057286176639008748373949889636012406850932539810771461045397253962413265329549791039173310608397711206493244945087000808355128213647059340895426145566202106632008428900353690524404790669667028960001224284214988784775519650249190814136718783980379871577792550907581794695674407215759684876883925816799770042258322949923828771747156541065910772696790978793539339601018327024749724331308011069972780145140953959874169973633096765662095744484418901496446999924192929870192168070832560640359122560342346394486427133012259889168158819672442735012754885038620528450038894426199216988942752280504389555023880317201003379540471331339839527259300193146459797963219858000246208402888042254105182978144364014064506698012740791831184206944411361171059813144332820677723306882503203860655043090245721885637624923775105185232241540170704205638973558097092374719326513634774140058958584930807239243605600097899112897484626633459021090469761952614010544709643368966691731986574909824308892427315974576670426196054758967219310619570119415566427584788886910499163574508508482704657383172826472695850503145270015807277614750203147150975811167817659954019516303692405604694851483904784748963960068327933482024917738684756009196327507708457750348868116571384180574267840656747587046555403767645903763587523870100073248429932476219618887464301610103210878261270112013707854316562021052603531887870941759643877108111845472250526318859736377869037602905063268050591765217830390511268960419127552699197950002641787618348748285455847391357746060324178380574596947212523712173609246574863726016594239333689425020006982409509673961929440134958344175074301216673702557610922911669574446230839092032272660941947733960828523834973684037890300846337572959932015158759772827052832461056633456326658480856896837140520709098407668570818080160679541708767303722859790902704925014226827979251384752734246646706904151757698777406240120857154584766297835198474028496758954264085512184675189047430505634213377776158328316995159439681761450928102646250667443416621012267963343891839730663694498696014696937497569406502122748810009235161271826270594491990724615943562288371016175017718234429041630082156959330887184140344351873366011346245863318420256517703818248368530851493820216353832246660149603437413615999276858040265204687796792600387374196189900974294747501647002107616814273070107352783328411632231722592531103731469494462624551193248474892940112042525536353080268422245640790945209160470789899241967206681637587708745766037172583282583047214769861620740014860402369990924348713791330490664075738632025656307528261732859269655265735915362790134950743196893399757589295005566828269900032878895747089259135729934833651069571622026741320157420662452034862590081141053814102412562594118997884494046370453618380715290596662140148384863425602538923280340010185591190778070773734655498634288837288019230425006251406964951527921723580550326157308569524877578808506431905970229534102694865454678006584482129667569316549713303611750871687911600760393209614857739472024990587858374110765944614698862555595243655412412592754082829839208710219769309271435420394727269355143626956757554905146599808660685258861022335865001064136411381186264147254559317146303825612378025409813326024470895627600490105059018628173269567070949251774383252443030840826184789983482236418867341397708328508558829939853473792555892703889370460318524298640254994218562975242233688677566670096144222575499803862662624423006569993882263186856569129363869441091374269088163839254421772669330666864120818911444218868753346339134458823847560243056807166420986314983828969839850042455691618949878995893114038844397092876746631717586880227109277946830610282288121763994368715280920087848092759649196645139354216817170677945807918460204343843123357696309991196224012948891123420347444288923712643604628658099188112991410816557962058662746290724527889538730888252392059961859717379575260123518626718749019054475141442262498103084942647729022215620805360366126605553998425484090313394869843240679643886410967790136879409984429369245227633058437363332716055597246368698474276034635873078041730773275325417691992686769252573172764689957129764886765356239947571820642262151168390368449313959713276050126554190155634547142788005949724592505555484929097103581590229342048533384669741635568540658414860337156669486370233943906466153457552874128943329539756037658382279210743334728970642598073588817088358223301864202196329638265515723144523638232887866751196557929574911382421638860289180761526419980747501879000221359854097215549920020622248699085233988979840154279768119369330733789183863047064907350359155992784589877456355798274362995826652316158999239411414002889907825415186617811868741097726998991752029092611090706641385537270089362304416889356685898761843088456442693659409291074228713815820641399412720343317600766894267096886214209532515085366530703252662029239408367645130612103910254600382110296652354103361289776997534111534983714869386996418861866201356595717206748454192230753787348558941075296564026876238782708457279115576404274078790008229990245221032843703662687259217021620040942817512939776184928606359032456992693283897234586256863474431304299416894108448544513797038505982970318085160969302473643412583285301429972758740279586778445168312544914262204059594186187062402728174688020044366343822024569610840379349141686751971021218900917923968040795900723128977995405402040131821029740881020107900622262987804781244717101043318281333993370284632847870865139769372112267570340262996900100821576848010955162612139323606137890428599796678762156460262047565373066104973854986454023760774966952844944633804819700670497437051328873360543826567807568161272587015940875462985483381655109485294119189399741185399546992315209384140323131551858681970582676958885119674308274743849568998768478534041497619836186035833953421029526418740663451480747298051141164216557911842413323263850915061601571019880298800437656830936180797394144932562166221818505168845192595765637515864156870513219471986806167817400172147950583544140619687693604296762481026551092451959825986286950623840813538335244253979334926262981136579145728427780871727432312745588107507185081395822122621426089734485001009549840521509619119143254211684760997912158361883388844007429366497463639235855785846180185085431777612845369477031271161128969214800999297685717040549980093033666688935319639356980491885804405162803596632061625541770286582655871916955613347705361675867732572210560967287943778925973054767577026310976965221638728370102861954667100314747337271197187394555584287794224278933262449830678371160722907816118695409287037866264998577847456521223588416347674148858397159283586399977003408234307770934266103190441683057786826464207923120677223935437345997175416490944268874627629547919236501034369459339787685840544534741678748087572325120316168403548611971344240288206988608172605703196471291762262307368069952335244731696358254049928400181338221141673058716365742276352060900148363654061211869852821014609079463507401822209094710581660324898917445586704269142422821776180342347873402568905487614588599517070366665835622301945694642277881041399160879168959154531634088952491542289253443266604495878300116415752368596735115954263662228499230504304325343961612139316181877106485343532363406356057744673481413740358765218145762249345701261103049169963016454238007666624921337047960601182551928948586487694298699912238442909778923053185576139237600486883361392103024180318327088776481909295955835208625557971888251307452402909478461150229826815500832780054632140586915250975188033086699303895582547459582562026967761980610562691226333732000324950500333998717620630532215482886432990100211550760778981140065464021453172313358207386325095113112082321499707795078433449818746827913453777539421356688217727451527237023096352477221127486794130197827107940867193086783054031412635730889300423808206642807580009988169500467732331129207024863927915098278082789944781559164894851010690019525991241556273305553024871855127952917707446915588732918007791718608436409449216369983515526026290100429663662467427347354219661682296408087902224722861770482515978671226290500524710528602759970093250827438410179825993259662447862992241795424167749433275020823841284119230145782917792195889448211771038538686773854497253654358251145341890966727755755571387806659437174597507662493085925711969752037127428195842779339269354758756915728854936504829863831784039968218509301716776183046384268768050394798985538514096899257588676548132905885490558249406106087925691244404722677033279726537206412291703667914935454794891258229034900680397776133874009518049011499410703272133659309988387152835709779302851353976021923570946940761058960109346763863168701366352196244146919071370402469643210614043184273352995109552686384079322197283313602550691502780851372590090549081641224588469238291384805400070041047301805284158668665947743457227669986082252751423807199469687090092977671138548306114922032784123897361357922507912874372560474826412125456808056812165662777779933149950911221460227593370781748699252842138158095615092569456524542276101223587485643321729761147914965451363625205196203171534538935382934757506104570952264288280951265478564134816921935649798372742735577169655063796434575729192007199302101166876630745958042048093629085635381114896958007333633870182543026213868074547702339743215352214642208936136094748978359856838384471080965000096735301232860601334112278265858697794428374191162690929934379470206781762895700645441307212656139375416979129470631784304916141139010348238700091063007264729916255333499560425776699654447871295729184480409248264706083523047466199290135262644551694987528085627602281164866948602648249881133000706668816735773965629233126667943595482630357990700493604093613782641634885163021418905059860869425171967832453733869241016278987022166816086455315221184057034807975171147270586291680651740598108706625619413279983463516994233434102799183345980797613135691912036796792617235880317290220894083350909794806162928981163108471626995260017920077864551437951233364935109423265592975829587810475832678762824555743785025744257164710093282485398131613029913130406652862367590010814301028779987757556645097457933204859147107885419280870677487595980216355911700811725025243453386568506505040510016830217080802986311554736594415241461295323361948813301177374989655960152328953564266190726968047010385683355611025734847939219710175888913264786234331449167774638639335741475885094927411017998838979162565044017943077853925789529746337174479902297344675425038425296396648447062360043065082871648255290210301326483715669034004956046340092346511618900469109128601035557773442523686600853176501797908393003058104881124194506726832954938970349808448877261429335826412424034994604722435787966192183727069486695473676853130644050355965174793827842395867558572277974453122047595116970086800206368325665327384918652671682955365378424729752289669250799562371243981870912064757644524852953194028312706850726199700872388822500757206577597723934151116942257851621098947910422422378852979031410969175171875250466936800612839342666192661985628632467661845843957642290552133350710484635432653429057285841301072968779968072204604286361150869322527448795559803787299416844362434580242053415789040311600579273389736686290038011934315161623242354750991941168663812701491818655317451737768416415995068524486833737683627771615167061076547613608711226608005260762802257235151686897836731503750042293378096045836489690337912027568057600519856204143592301589370210780202101128484214859077392930839173105062754114434297649312043788467537269358956141043323857656301328128135802380425786853053957180319306249104736563228817719816249643067557964552744266282911431804387585500422648861348136178324329645762503941167682629246190121131124178249554828298060281311331501097233450486423869119340680438730776757601512600731277772817835153480629269026997523882638675513561350679045020109423015266171001574400850658517260271483006375153577918527383085991759817480417214098907533779823291505832668208824779275630990576291698075536047351387019677456079169447686701798213833797636784672755237339972528540038955680975151088592914898441125195903952113921205678686428919412637677444227989421797173779386195903217674458247044956836486604812585916387848616604019669019754761520092427515553549962852456369395603194787401042291431355633391437359883210018096557449329042109604511963971186428518867287071000221942935475199730630568294288260699251575690649646195018005461431473857703816984965370316378313282366159227375815512914606005930284766059682532943815023421827384734857235837985143300800417134964919678892369006551218982611256443569190067348758978254952451083049896624713431558092335127252441005761738211186257508153020060462005461774245666865305209332172954691938304981987447771955756671553853767474363756820248192620704020213000208516122906433098572106373143513084774561470938604057076343712796598717321648618804998438416628482577182788665329691579356901587010313869378998860191898664083007555151738330955721369073547866452488336527836997356373528884045568177308542438521781152838887554292408569872986253329263514122993250991773488922236484926489762756035568311470037671978559999286215522247104825822316176838197207480473484554393708074740153768323103346568882999710647603340126350269474039249382706978495031684995113000594594527015161065424882246388301055365322793721584824529497069941346864173357041720873451029536082470772514807272426788497574522556009132024977293398862611120968951670190288181711127443031838494948525673081973336083453222050777673884211541027613167297913285390300235889846699813499254263032877422973837106329021365777272101217050839365633580506131105757353185839024180090694340464198514271196759656597696196227009425753410410562136474808561522071854988285372395707733184125889780830908499572706430219704647799727864601387161707541535469254871201774524812577371381865926702271715554293757657404099540578135494952431597785834726331248581853717849495183503782336875358002964892024348209607466039652313024413633488266928082225831676376325586349340127760291489146378202126401152377064236518153964325695552506264616781195757061756199504802046189875707692735431041427850136441357266536267707260586493337811915113336465476328737996421789018781036332838392787569497460871668486032785806490232598933460786753162847531246345309204165434905451028700757674359599882021806343836817232854126817225682759746758970682986678675207405843986317871564153762289162344729861747074307571954321637783469150266735277204904963768570925267811849500171496824943692053756806920118252986578747874277429845779473073054451720540906529650153264010237934944977404420873409437162303656868671611726059798390484116817203802963458117740301383302127217793033507784527008175367684290982568527255463157362396843288113518447228709436942285744576127001248770768926789352181782970554534907847362551398465840072125736506750027346656923105661669814883210444016932385485488345547606089494711546496098607966877701945240689221806477276429033930285838151813502726819408431530234806565562548335375334352678007686009730928219405462901180925091483370844166905287104283403108463145427840054964828521981987916408788639288097617323823830339859391592454013476033173197778076899105566692992846924413214508519245812338774901942238222482742732304418451146331824426424532109651672197397974626243756244396006968366003355494740191351125006575287017339554641682666946649987682159663622079229060330531429277274677605975335855856468395373457342663001752366217164790388134233750998375783560205762699287234362024871594493871907560502580172043052326137102928808561498739105159322890312862156189846184285960122909738946287616686072053169976541903504181412303053416892577588984418789728875965033830518909243427597566844510783911013551000037360519367699185449291908092928264732790753314192551237516879909144687090609980072417884046058471031426342586652138876562683102377772513162202633291108490566808691759389366002421982661374686920164387596708635119281519225985705216516541430955627932646730296744991408289264376343355865773410185993039368999249910766007245646389970774471895246105583179536209585725991877959286227271337097548437379788728818147560921280954031728596167006860884839481135912655269074982433358214335669319488984906681409333020355044528327495133417364449212518956101777057985721851334412298877530087870303594081505781458831614951508545453351789825303912757432872501834902269066014257976475693995333752107013928116831370006402205289089886359193474159947381331367921601228983920632582503250082022043642122142615039059633654625574437573722742249949026643470725606413438543579336327011986385879643050435733149025780317535234582888026409949185579053904921606452502275510476170614461969262735290995922447071826011218213868751479626800404774720712405909973857971032318093993235544953253242435672695519562345966884198937616583196471748312447924830923277313238027492550509281898206065107857460557408080905476928941606461246307266559673273940514998853705685427646247006425331620718083423427014334300842111716089291282699655190238858276409416621515725955772625626824839069682060015801264027934492146381505251629232576247352247488847439959627640151110329638200728425052642718772574553505431464340541178863466859123793246499867795902649837184139913937097787195079416483943679545565932378146276282502337402484469717178695834986296533852853664195208624386890535193463821547495882899217836201288213079840759529994560784100421600826831564563152427907731339541724644895558958453185368810633690687185204700441174481105620275524906111446984254305762750033926141787594425294316246867701322331582092912706523827379053573543495546167243696783876910437377490769340036532033434760424927727650664173546098169755731593188090115016043981570581752505725980602994942315116348027741525180487242360365983292127918161936936968086967385154403589647267698366729015691412991086545849912368752577227584946907678235569549733348721554759619104970274629450770113905484886541526315194990965534588928370982338344453170659714865758525005940222194153587334041497281751510626656712315906754862863177304335744250578564136844601228928997593971759865698552539635274626690724510450689353381314910952977503566461154839254594727100519886255710123865461850659950411201302018830977985557733606548324816061718943376854266617663394868661426184150890749133272093875838869494237969036163216654614454964268781045638786267960667844375780665495641140746492886526335145589571135004341407011592609025781363984265073720671803973720509159865261241232837001422919746390615446716178783714718762234286403402236680329851122877502345153691462557780557883275033659854029488401213966240460914119207654610225279569385672728076614488497686590521678184075828807291312636962154240019549682772066370469929421455382517726229369496184845284910901876088794316974213094474602885174046309979825537206662107586756995208860662001505189568616755880394550639245750940320964420963278970435438621396116972043108228695574349269384664912469338170289649532410210395756696587334917021969477543715399551223317372540011115599180956964704863160265639853798637191404493615891076393969124706380168430233603624018641181820184428853341947287117737897314841171636144861892818444724045283529593740387804780667337998815194167349646398191941243253876010234099353575088352209922752046063456048474527998339966009015024870645455774465819999094616489648187815346645531051718478979875243162353604598919764811159817258665132440035130670013027145443553116305415036425484070873950695060344431765900460483482926273549618813699729763822726522066610181765365816994391282239666053240926186970603474314836511490961583971490359092144332059711004924268001865999210227409758258225113032723237121966961616711089579190540558903145356836734699606985219876027970887061683509779671947055371280637529633081810306610742360296358196105022001043643409617227974408273915907583605938158570981555539636621980894644809617346111264361864074021950266183677081525546736466507303429546753868895931851279470673959015681277066872328474878417687057719263567754593727957063110600713020513870689038470159618152430879277596546892251977323118054232170359284801598215002501957780928160833323224539563465897182995766727746826691770481149076347693003102560441884897085669524047877239762759037389763397436246006386248467820557646213817415525735916659662363902323282881214726830750288816140461846084335287856057292430689233143455657595506165645907077696850639296698900397732719568983959842787048596381863546347113662184508513002863381823042179737042556480882403322893955587854666878107467698730402884486109798828413159039619626872305664763547785699643041141516770076834806850364694283850790587610907665637211796620468317972734742370566591355243853375061944718300118124166407987570295033724865861812151040335106797283981657866458513055935744367053065495742638470098893061211581638649623195436873300597781723908577995162562137475191807405000583398591144939625269042136954253794227974195796912643734296264180013848317167772994032911083615803150379152635924236420214458921117734761728663337767217632233118896816142164495401934753363506592324003849625040999122066253495033341691060747050251891031154009451112133730451376829354030839663622057482440442572589451438416100851575191010960349569904970503573598655863562514232952883135995748972358037815247857601126267438372704500398850842149292843186946480677931330337856369547005154572134189057020973802561360254519222855002625809806577222859166226350573124180022531755385926192889214193757602257769391557659103984387419541715500244390796435449393442145546111568202636888222839215970183735932248372019071462627873599584464283850747511679596499401981247527840836243674781702147536683101218000981617199291143553479601759704117901478683903694584211397959641133103137286632943936317882643929940690807244577375691418539912798088213581688756945677838969129374893856442639739169991681260976799277098305830301848176139611271787465305037393434627887422621622463623371953535915340365031711089749082555682619603543924954786906655167953206692202971135799010596106118543703463040220292478183075255903406863240166642326401764867103883106574206265414710278256354832371493135603380208836285151839138044325987436361525075144776999404608577099251147779690108392291187712284450171403449361669869198266589593836638197902645802986767349970515217377918952297628983850908121639487197885866357877044021802879922393995047293656890591263361684236832442955788595358171149117338712812688422892247926514944766942249375338741348342045229383485071076056499049690523377985770718062756999922078321632893212059989228790763290992527025509119914976286195387434916175189909665465649232083306934113040088216835065237829749398999093492165000158275533012447566039335254287247255764321987034456604478702034743244180306024365914183884323776505241574630819406982181455063873493591361678503254356641414473454251737889784159095795179515708291471520894000052587468347577111334935333212092996277814179489013202856289734666790822426799243466981503819357348491850143147850168669398828995463802653441800032928212564233588295535761388045413836294787069219654693936446643119898552795314389915597999689457405063327586297292121551250799179399843354058424490959944882971751965309465990148669767431807945408576473381788565169178255016711514306755951896257097991561465207930464302280132550013234056969622597234654588568855650136527349298862926502319736490830478970235749511789703597322993463356877930504576921250037593395161783681860537925411683569207606018196016457216062025756641932038662743100537438150178576955155857234851496479937969809219370718253906799301889785747297952445516443922082335413090914597941981429431667326053246078925549880981754989804694427763355769211044484462894603921009772188157735374341219091168094050436754058842586832758519992968855897744886718763933819436463276088514797693459222093597643464305267829755524814810082279488855475897036483515409313761859503978111218746345619070200993098032257078527396505191945955489607236913289422916660829282968318798076225772511493794511432382278175063268190868281179534034443803628225237452010703856439402626481347683899065627355924301694478345936459420622909368447161279047997219595099178928347427650002849653380400731931148490037756415589140420779264795147617540191258766430351003975553827678134989238515746196353913607440149957278398002246112014096036203435255009244728893620634938848343279620514236324624018291136304041793134599312854884950107233319693271871402132260320545755865896257939728051336762692235332701370892132231211634973709449756460459760600568836715952437863663477686062995587110278378727546141512114195383892137278233146400226628181807554218897245169485913039868897565226493761966453553395718936841170108994063481929826020629304993700690206629687340377691522181903211083886793496211544157993553918271490992913700106728673843882571275807085268620086846147451571699776641544932801925635851056186898632693061059005318722126234504138464733858918123294696174468777876464122149981246357825517158093636188188495651075772196353565203555594591080664200375706159263919248851130900924917964546838031140610149988160905942978088811717932257977486279624291994472185266256819457902021428050963002143576855335290362188752694472979366111928364424984120524493580809210682120407639364401476830500229706087523459281157904700622406683840594812694596940945009640488323222816663639696131178590959360923551527943848408714537749900126124291097699039673495937082958327193523437719224232526860422748916746832835389538575716056972164373092941529437586630340542602332206611971841622907753947298280377813997012411203737195009463858106686816303118329384648940652374213198621053136377766272157673029430919462217852043047827142569377594820269972095856968406167512207803176096181189544924409531424708371796280781903886625100155036110884393308586763019116862333496740320826016450823400540686429167413015924425596207277328375920246868192213267319007902973184395252775518793316739502335926794112111509351664875828407142615343310135305726310745115755534775022869838122814430218348915200087211413101708853846038799158100575500481867416812563272649059143623047790367693631845886562999880171965594978413742130438048798269867204384169256992614614751867709913966544423923036935364868504157406759813047685154350787106509223954705643029627819377663214409928476027895589400760314955524308571293642642142113114664002689310168971007591471150979702843279480215025602097283236411944558941969808762552120111115528466035623166785667551560081147254532849972482763575834773822792306997592042009214136928190065932101876052189436469510270985210224694956399058752434123196514140194201265654625195156134982012034320684701704874626747155646885640789678299015890082856531643303780634285105944413630260192196970337553188489881787339092639898240300243950322291543787617310630213053557665270958293021768880290571035632030029581099728238771373410823928018666994061074018297429850645331776348240116803616353808887036676003836154262061654787248605130578161723989041755905602849319528618048742415185671242909878885421744657469921441757007714470311281523478096057630989091288908492208654359582258349598564855416540104188701612391071314902609833600283253954413482624635137175721425328050306777889946397961653902008197938344069177299991908354668734744748352331761738825744707236979146188462001807350848565043613271904051525246316300518173955218285634735969179643473787185562761024275266707749014777259068015650637541923785732069605466062382018929062168737374146412216220055727547733617250553083952269409705682354132318946099014734857201040651766913211700265610620408436261156533096973779048625965326374177601405629805042558685931430547971220619741280059504571151280455479566349932956513739527740495837678272175704182116563618310889195364913589044608408024654447557399058030244653511883892502922533648686412612801618859335486993191685611010595289145157698472271770780433552027124532793970958751551215520865637362777278403397832917765922954450417414742457501829907264109286949223131259918451730592378322828609443380757021285086073635024100101342585379091065237510436178297667118352627694080813712190880612501294286018562208353416020528042440258230156363115059373596127190854173032240010937588189996784650570748694249295960554259456078181644262753646634117382230101911219370057614342841300890546252933756970156206957769674698993621673458632669448288045213194100752579182168045683979687521278315973576414951930270031371305359357848698945607786335088298138381923421056829493359563641313500774850893380530299139941267498908781074953586693789839580018144873841735582224059267973289901819432657031618505565418119171693580730341852557795605369708490875974690169795190051119075961465340994884218270949452340217582872907644398758103028655740169867159098929000400536243911912777297181139016847925459289719791416756902093468365589554857947601681626348550148200329758707942856887289096362947659722480282791049682185476890169099764700597393688904047352356844714281142594810076458126773429940623966953104351741392049373511029466252614775794220592252763548652347465966719337389984281306761449414314629144445851177866329377442452601748768610529298524667893836471832289392878745716305256112249465103164358266451046625603642046227703588656769108527334538032124845759428859596783683093367393243022750388351301677747216307155247994670695785903922927949894776671725665255294341155511044068903227941571168612078335632122993281863443011480328443675299443557214387559545769721924050589093754201772082676478545493782955943012054372973316365401070122475167509095250922576682641898921798437093296265100502448573022839432755115234288770279692273920542996165322345632692254448439238505416715330523584780592232194850852994048630053886084988290776470552000175147780160504008399599875347387124274825911546597449350855354064233942532080650943193766545255101583290288822884491180960952781414622138411780517699125340429867562455532321472570592168860394953061628147040383599685213967396010232844313379569466924245700485250991208692753607612203884338541011786644181516443817311362350452919480723124305431636084824764453891109351551810221071360757091969064259323051340548944843629051892735637175414622867903914471170977201775079303403787352271097774719707536658955318149718978985160360682855890884004177470547678712335981340624443730548427176486686545985021982789109846001128903774741171649963091043955540368623268685595841486379009330855100554175092200942882640230274638781331200216483890722149924203095348308046042575241230077338754668680450808221011369691965292711593463987290931592845673256647341607397773929333508582852599238396985155521367801553208753290620484566015476785994525545046483748344678021816400117366567130630429571219033921827514417058518019586376760792270081071128481182824986194587571267749884642205321587775001232676475138402395352197444841234830665045134560582553180214030613537229161972634935332817027892182661665119153112135388794304309995021880635148430605228832913072844847388226541790352198175979330047702641677246480312135904733448963260584343783561054151539756231984195580991159126586192879374783547757598346412357868957453741659082730438738797309957927939680453420139909036533296643382349337234122226858607832084663222858079245956049950713008009353660743385076034900399271911658822216607063333614425815193256359241063294846094257908931335540418289640914216766757037179550988745125654949620998236567940478646502587813259886502659538920853833896294423718150900164632970576804299386374544224212740725183990122227801197478911361466149220499794505923249512974131349190318999172309106634513494970405895440418190893404886999941839166860544253978528477315536822195957344769996599516145840766191210507976532564197040484397183757387542730783519180924244875567921702150114576302868824192440229453358889860029092229314204398196725458239264336915698012744120756857690088952625290666313856500912068323210073905635771331042209195563823040230710262972038433944719870497143259690127867074539014431536616870714771609675588969568313744639322586496713219652170079832550736283793269909958179862490887646579883588944310549767211948515976593367424608731650179555967491747198548884490276223932198210111871164149109270169965778180083342281392337600985866681099998439064427948404720482810131134180047289460722076306321138401813635903338998195644715938063882275042476090879883640929421078265131641442260980098566005549343082083293231816720389710656765449461300232002730821541828790382403720535461133562195842372638537228288781221619370202571538325874279143357714124096874519272437313263643472498236874718764754945199624054704604573952544162236760753578892221055217137218784056017272103049600102142419306666115092503566331144026421515744622559234329956553551945328059960347761514030563878230486659648243677365372941653568506843616889459258339765218321566482819262605624191961014412142334807975988326298407013277873081113596040946104689518889860579682925501240958012950889520195301279708845737272189442729391652647582717523153783217197007672899102716524716169912698440208103013398966719989542713677665970096076067287093086652687707137830713765035552378809587848965652075070299217380304602294587897688290535706287733090208774777941642868252944209260506021878716061947285697200164837604880054825378449141517092683502370423294510207119775960064436278443535713296207666141028212695343031451060307715662926825198190922389687096438913292874459820642799731741324245085456615859005946596391086199831586524683423425252154258171043318467681749784335011491214081755163412181069469198527667261454497181599422988174541679997405873231344851249771676616450143641905750667074524907854685827614477280195346493207099924747909113583991883835887902879424876665304964940122827831227932757275030957970409819561672689932657142257946159884594048508990694562981527006020333505977310373785801051599730303701216125102851094879532030771120475149236751440068468895027238803632173916221278683591098777441836719957888286382234010966335909682815035461991405748311287963782576203706291298158761219603771664302356501486189545473394125684737859038212326485132005403571609162017666369225282479887653575565480837380990331717048213390242452775203694382222062459438776003364602082143262012536002963689644462656765764976164332721910493061278473863878854686546764867447752202014723067827891762563362474534617054542069799632709654431418640671139243989456980129482855710905037028217273178533733506751730899255662653765639147696464902292454269551030122024775658219279291678756789146988235124787538164076169195057346345819863386072310453083223101744069587844386047611503204433947297516674506153006565401895084635894145035120699408120647909430040399591961943266549025913493014489104102666273187081646659304501237370922379663199337521719147427082611484330474862784018712642001416405996303362128181263607446787490501839472400633199241771151410246786039986292404639053434151054628935011857406624197629875442775381213415770533753132074835037598460519931484085151622989366144570077852861853314227092212251732477169954883163077130099738189455765506394151384576666222097152475153210762467621535333539942467990904066324074384580886183589449583744798745342938167961022488571321373126218279466402763275477367498738277423693342955542354698066500607559756283981071687094185020332465970895167382961728783488331673697647265618363209827952957193891469582540800439974587379608645387873479644303402217789498239575348797551119671909547786314416918068602328204352904560681543429802532837742024904284835914754532110997078022374712171976136241305215921405260469103036929716584331213755878346718826444262023066326620926923731394907163290713383907286132114582971643440446371555433337963646864766040577210453818819844453286102154348468709211415586346287106167119424096114067852828150738608984240562260663973461516352363716147383670821430045869407205746851765734382662744135025702366911902377421593590447408527153730892517379509634252780306364226732681605777279213883386349474796293154025863163704121063228676590071880820030679662248163948089879271959609112109779876057528580141554416393719673847807175386815099379653380155297100589300268727286175769869095637526869867877334660349261077362736235732486474055873077442960478971321703864569473882264107985732827185073188241145477672230010465932220727248518710011181203968347093821502139232729044147354083934502956745117071684603387317680698077406265953030302576382369367054993426542073590170452339583274398857283995953071030839816109068883666270984146056680241713158880351257877649995852697604413860464688043056057771398430834547472207079109813182580068887765108324797441185884275009810341653207547002587864853435240559867811662482101279834661285327427555716349749393379792652468375953044941497683227662928041789600740102270208021534754517128408558544806707260131087208309049113867689324850709506697454391245908158348660744026968883038117751402680785611700679331169909611678037776744863571336273149719458012037553639795365587782767902461640899540676961273463777705649286510752492410433016935191871136270190893414145566805502274139747809813866626000999455911881072332582198835823974708099995845426267341362176078884029979307062316184606040303657510204207708117327946241702863626858503439874354241951914934404427252643405039437429818678675437490539049351891934752293764427656268552890194462207101898871542263615356166947299173218329794541156839690507144941034713007347933384770702904304558966037992267006757507872243813181559128218081131167267481374202771789853741176772667558511668097991245505731691806710324597088487452057077618204176410420345102854735746428646873486008595934933629955705187315071126827391053486509049279963487072473952341480770019448539873346650855654241100942270827106350645654186293047928710488013981978024405924242181551311579534372105730339137059271453108641976683645758363323073350204501531659028985023941411790038863144163395014994667261041097694017647814109928042928150356540425946588357078200466873095188861184692045214852019662132668920273740713864378559989936317372649773717055059961515810615840253998375962576870906864388587632409452569176768975051962817786801682373090890194933811177044960735986351058990672518268138766777681632113024662814720545696819775229235968619541663885986461571957501902846613924280855088852640875682167968785328867670270268989722412827896445303933646047591677466665991507066096824301078719000987092759669142778885174135812008438804425959576352515580642916744536058634960012840434036371681752201957895623596249211117287923002660000762038678120123995033479798148648616218555205020589076989124260625617799559772887668225753397960795416031251790018839250693046689263217573637103368330757447408418530939405498687887350735497617234629043027745494367706109349430596163432116855436700192522482257805052871834436940259440605226961210446820920379535979780960929026826882000479447078150279031241206317609956452842369930524978629515451360774052380446293999567163593852989295588371084556048547191763435789960376809149978120513472252824477920622153970203120441138357555078586979993176073894685835666390575434401944716021112542701483087657669070422236974600149694083451383622603163904140223542973169961104402129553930626850394504448359730312356990376835143132224143080882427210257143360511862821379376278564253408617792493118450175370591704225316670931873814400116781562115036052818584150781639083057102994400733831337003786459519468556599960058327370970417449741110507744304517556882622911770552521147572502339454794259761988351623858964102772323264881885762931604294177664943399574711012914233381556403907760607463383984360380297912301007900529025466174737103524058823219666668184703770063250486609912320667611870844186007836472727722293322758879092264525307788265575440793096601975942825196869430596177716866483780821679045199012242091141308119259584867767697881506428200170742465961573588445266463754740912793142583173826575074880052108944329559386363849670111235364317830737187817328637490060629831996068298249414390196106042758761089009872524159009302904875068478267184603943264078001844564490734879743583401507186119029515353563164781348914633504796675876427719418153154572469481502393596876974869999380228495460887897958448663669235488457776170214479827084531191269341846274920439211624512064762975623409850882574751376921969998887516744710133022979580099660316564448732672523189849212118085707391426699722897376499498686341465843889228681220135556325476119721018592056737710754928321740941999571891043199253323451448705918955519579489269012849910184147861277328414307614421873896373112403593108333124674794616940423576499970599191267407675622394479769525289174722241421960172853325943833402344813729437275186816143572842651619924081012477046696592505986455032453328745371207257075110529844425253833629153264456120575464448734898171407096125871240949159202783445504428134506538525976217252344145550306496654013278682636847213924638678416582099382865636030250992390941726470663603500060824524016959229375416148251487073608828360875689709928766499085737140289472304412031387058907509995332488653240135663894483995486537081998122267599677106568278473605917844112412217688348292841598142103646331748707316029933581504571514007484650278282300952949973223992268589290750873016215033920674213728959891824001497326852883816870313048551575679861321658952559463344487029941418584889669246201176918891959463651374690858794047913153197759082721538530551198887519433029184279561381345724339607064225811616471634968523380139571683472554700099512589209455142332089957231299292880139076649441284722605744262019100854524169419433404500156055969360900945479418479829024492918089586190459842759660954405384222722448740561875222842811432770633304124210603138181052783144277597637968449877475633033309770117228087061145344208408098028143604232950505606662784445032550371430367103167362204245368979387064052531764320919164559427621643941087347843600732953818527094431610841489596842140896725723229726186661687276343909023929294653134080138192923228131129166805436015710251629292333419456264648415421042783662763842054455673506485760171720122068279611030602032898063310552974872612812648012767965272942589781807206064183533316787554050127534221912437369379087042212940798290755700562753010853272185978249795075506725440964021592128868438792947112695237640582568311096616825780618562310152521754736564348401375348981272474846914850442208533445916116024979219867983760015933635784748955407266250488195625030619894143915927296405664690642825030472817095757486122774032295921990004850125553888356912404874797440475627581927288465554422781876246505004898785688897571009912424864592776957758847196554275452416201244363191805058949531691956235221310122159114075525201005844803332486218035948257075794757904592077738102332721655407437786278212513542592207247404303365490797521450493070943439178746642413902654909070208080592813405057781881948676668523010069107756996280945355995085660864317159353692324418085701060132725348073239432205707131047696899267317552488702435502015231333892017729407759812444789075929525416215131794958843651446508804275320842552522631442216172011603209597937972893401879328284650658354638579917968506005220287093663186826896666642376005516717130704129170330737488333007333168425906853911871795033680141331658426806576061177248532127939473377150855167161444209818503140417579186231895621833046461206498898948634531399658287814928469442723351502060006656171498225512733423099143037896122376948909179557889518862529805377609533224728688467753816707761901756095711264867124673108181703942597686792210492142762245268685650137576886577435820842125280799531910369809235726819367650801545292931863402316234618794718360323809659554395715060768058046473894599309757675075511568806124173863631186016265897952644692864963424920623800831200614751923303063554597521702580044188681768054689573518413392729523028179140963219868336063724264367711181624517730092300594384986319945375378178243406924397743777829283653391442120409633815957057566132498416315569000513118174042838519930167908990909357633696006814780497247740261343234552648631321807021155789354441628027638217888841448366937936234212894846057572217674858509987021098244446173338745688904778516156164464452259589872847706852341563125603410666572409568773120654586697775667720839708122581461617023640095197218555516301177099904488956802768288955137651600098744177882744252983973530021740954116912543187250738938686441628020875789275203356314596543187053273638723833193899565321710586381415807212653257652379846064027655569190355120623708692604922304152027505297013397406122339785099887931738989373344237007743570101163144205269152685635693127607206985019419424746080625603591203156809987696370449710283853328069942003894485817517760414255442605364850100178767099456047075121054286077631706702641329106944463141774614723945900300043029412212275245505582113892111463199494548541949944810976467657719470282799893475797147044627344546058784276020654838545865592562389178127377025106585400331748029489239582834188153847003656082205995075806682198365152976324759654566884292050139966945213630268811253397940675148857394791064187647865867445518946892883979479964295922854842605907562551765093689173881380863374429948572504482916156846914835503594575822984608374492821673223650608779413076617994930756005834197947911370947095095562654824076737702884639367472300229108360291220709737124247266224932068432474626323068130051440679366678545409092187112665895968105105580581894073491361374613334828004335280158108617425102287110403601009942524470555723548100347099230839111869242380230496145374974873738616267152466902615865846514634029100718512645631017807693632793471763283980529228006331482370973444583089148716793313632797952525503975123320632545777288317079608912324749201863781032811474916213349023612160882197496473609427158927032112376475664568448671579106941731380163418476656388499452051847786276662139088923431544024811345872790121258876294646637938156765908030647708450136887516866117338449944961455501040628599069896308556171389613676933963683965717649103515097278144571707388046238058982259391387340998915294415641011850976800230112217734086912541330408512612600681958277717030295550305122512085969266994178219065942842348946458612114991528284864358472513822697497231197320114908484500018891752431828906412352362466067426645648761778983438775155304553278730248058531882979538067981562264307341130322656302091880713524148716056130895276198005414051844421698987963473242698040943313851244293731783334025491618907279150057511441564068309513698411772481050671387053818845008107081658312788823902596125643283555620688982393614896928744520961572901636138588648196605969035109486254549904817755509498072629737052548582218089066001706283879442752441641331924496186053266001186407240678961234886361477469231820707757927329837277104650447214618553524022657778734342232789620491208025764551240589450269216271527660490224706464354506311809832377732561045441658024367092078761651672035828338830800153071826211508998991769461351122494279000182971235340753165279945229958957575082289536363240728670259013091695867873496427797129077937894670555265243044959620783870616953876729661694086813747015443223121944250689024396646587226293396310281724109761463704054241856876030104992566695112859776765105793114305768908514036263243346320658793886085744244646656890229977271115410409240768890623248609074477177214092792459267005176083254937574562833162512764938058325974799041784454457108159654096007917321811076922995746653795681409179039148678422740077004903521758346380755852930291259336981068815070820909634983930430240342107668448437133049630152221157385448965937186602253121711504386292192047813895857269105977048609233236809758179447365916394953035304124587104163749116549437168370841205240575839249176985485907312560333904668931439205849719293745322910108080679341103530351627661879689619462584729913123857449960805001044106609275107571390324331759871888488242607155178331298545004960389400096845282585088823772093077340165122678379487511727197184655695239322175886024562913344359313675708181625641567669306034259602110416451373895554295429333954673999404014335961554699536684370717556315612038942227584117022224538842604989460408571554103141351007209460836452421148840753439233361606982471701884075225211086749664535969606848952893026740858997311408687138903338466816591271285201767745577854666660464152435130526485428711322439106121448015093993398835230035406869852404401925490225052088648530331505526967771616884927219957130270315809511707076509570458305384776108699645687370764152432836141738478158791706636785275676206222503260516553781523385101903825416577891423831963959100937323240545830085427203082520342732094363619042824212354431519586552299404836193721076028001154327503397125026663358906488314252002406598818758809106928217982514232281693689745154366778000707254526787562874465016627806831779078167763464717151093086080668445358449432987314908343282217563942443844160178208716180357684177381400292742104347308716339803285077526369471534737111611914274679522300814742030539568814686099108554718178211503181251790279079993285933538765957184117355104805069289913262602584548106209128731484781762191035329698281909356883271067921012338040265478979968103921577928842684384929026284630947794577951578838387420578532157385184139725005348045647931737080939379786151388162560551530189900360125136318089126936785949834128718685648875580264760820450405673698981890950988448053314658257728321608240252189963536342508976525280740435965787375689318118023995991752357183318199745337859985441537253318152596886433368997748600675412818614567549957619058189736717845918736413266157737743766909756017061495787827539859062162964232600004805216328468420622422488015097605718477944759193652697960728783411554287538443156323579173517980006117686308382396805584672081628791534364848724216974752126786208610661112896345740111461454665424669328061449781949950284037396181445010935228900911563794888369368344676306941668830775710141744399245398227000403578959215352065662057673438173903983009262645282179130095882015502038479120010137005535388206669283253339163773322561864673823604334167230442167334844692292472832201344446937830270394162264065097323873115297153605581951064038766848407920100647639839872407373989894896062121953911797639747789437340788576818436120316686090601336786484041099267972580366483848412207515283741836794861289957772861182350942189289272189277783158398535649451614016249053816819093856363933479176999876317528450624915367663430279085248343459146284660788449280895771314462478793197032295536755609279052424449735664579254386246807304546057010575200393065606426138248697650772448740562008178797411656026894643421900153116459079689485974219925892798784564854498273433796781483865988596955462441050369314115719543782984900996805728464293831342651546599509192200544334469205552033094126015839989076784808914771139145242289728166466544434175509508341422338323584090057404669433583620266608087921215990217158461377605284503568736628019841591160321655471320359643346361173056279540068624123972610414174597894017913543660855039137678843215617399919811544652710976829587048231837158598104555167515119547891717079706982268984787637348698044701736907905780711681901718209175619454128705357238216083370474035040425126188418732917758110974335255224073439881625559036098245647797795849162421030173962203769044117238953357707519509085359711880153440998780517230472868311081156458480176928718182580177245876034629737055701809699135846358130585257558053671099465876138666940337342105265705085806509177922901580428570948853776021710015336118584845833477613364487968224255223219440696128372132341115188832336855933216272731931644040842145620494373501680489863312437549665123818991156558976335444059009489283133245003171793244602153675632525991217151006553402124001550874809407727934152721031934634606555057705728151814021070672035318639797932070306606992986020448905635151319622456587599394567731917224709504473027767391844578117883478519404958089784619271687536862102105304991025805902569564089207088656680103936110716009982955646335728043257791546450284008430037517590653386830132793933524810350740596273012252159328554170295915133125867136537758962914169485328825527569907272204773899669859359120807881537534750590341416629530882949621779992028147674582926419518301341894259524826362103635154457689544249492322854010952202336982830365817074659832511622219173511174155176972486744881758989798976709603250312801660930256957663317367759264325085859916117202298893221161109419963737327237416613018788121941919476264414634296765969115584737613236995320753902881916605548967525369817687860106396078195428162873484620804362248993872606930559081879624701627992303356324575363246400946050678625714429297403151078618394599033850194929251472876958139498701637594615682799933897826420235053080241061484884846207463741734939698616182148084658466705099253750048789814224697610337973974530540128313941809554780439372765386785917159183334009006893757536408238260235026732711464930787035364267327322919447146254485441672554897814496367025837076644672946520992626277250161677442757184743361784949270554926957582441764475254477455614444776348219464082859829590841940060020423969858524814040113482431542159189162594667658790378613500604899945175195545358908531021454653355162544551833850795571602452835929862697754804647854307010617295002255441349057395527079817138812733932879379233878291569456994903686631417523319257338410301626112999406532625984482564380626960479675662050062236291479175764216354097795252990123685986283834098564777189385779536656159172335115624230822434752155609679171019259821382894334869262203785234051592429569676097371381530626549486641458476502213093429925673984186819490968404515342999152922649874351274610075664850541411427092730941776934533421490722089515047533625246462921893308049629959648641250739099218401311333936589505186705522292739838465814498905658466743817295558389323095348540849414324440739048288927941327571385096985598675318089795767875065360068778072300326723289294043498899513378843448001190670276793833087263930311206601788822409275418567738728013758461305372991733953136756826411093254252400750955027244906614937839416480156672657778468361265987883731261057652502385430603811090312269392172388592056193219771349252423284148975641452681463161331467632271422887012118738732987285180245210967814546727706316550201579378960359317290484258771885466584825310362760770168682889844999722523083771346304418880807508010884481646143910866556330235457635528041520739712375238847467125823768441347566620055925433520255058666948063263488971900695239990134252057093380774302349657683531328136806986893414530778925170896177685436561857353107771766911470670145865557263722661108670560150393862530466153244536378621068726047294696236384705535604970847873254087867115974527707353924628160887528885344836237293198550550142265572537689825974469587748245139874159174699572345891989962317285463665726413392018762547923722297241767205343171389446984048635348014085542561442941770541821810843455248294228235499504111679607928029305343837859367956710160679277042469380695586676688692698665294974813488231998041201818141759180786790882779089085452955157521552154466324149303987084674915330476616952697131944165909453967859388124984204150996719124034461148003967059873327018554007973454834352875135084658293733112003770242450977746073743300257145626320589382998630413844056434210735367261409490095790822123391887770918714750080051076502856370909580262606281321564118380676521261311110160080128313631287098109249532203770069824968108351830453417101235679766946739994471236915267631695971906026698073776206460607436534167441476167705243371415162646687899674548458463962585193934373540559280029744078453717512631611387603956648609524254163050843320200347576406143770174597119237932413717263586065109436698789356210180435871506554298820376269230120461768816291143807084167714653803560984539564994890752052203907143999392810357251397223234276244218441446950663332931733635212422975118830254078600231589738708792273191866826291338891124772992641735724789765994042852295645017807728848798391308752333191163606154597139384305646317221220326401209493143216030009717697218976889093282301932706053123262388526699826035234522364601723638395007995538990346701761466561923481885171886500588893593794826329212389371277874299683082914703898502652815478794889807807086819525700846046190917864233381243474609769141572851811393318842869968422635854391697103314198498702504718529779587690415691357126200547765110374525773892294052783380142231868439095015505909847282783411534706694584634132491400691798438866484093967590104001422983739078211940279971421730942962423172119772891043320583861708546581038067760629267982509775330024748359613744161272072661586870732281458125230979701376741619047115058554902842612887986454854407536654658249091085945177374191811122746715914349523627350966859701095873782206829685037120608358515449358348117272763248550839136595243662285046109964558515252082761586160611965624902733765399706313291851239140746247059893377812622034651631345113068837097380296803058425889552904333360850732178101436180479995821866267338935927832322378656582157568297250767713513859984810212520967207224838654224984802726706731948519431476837110380197106835072611504831538572125830710378869499907312480263902397648038941471506252905271225025842020765853669939783920846151412037189447833349332092836747530360960351936553524622014402547601128228643850146097101721170662391197718499356188284359690321908472450277925011626571841175333560970598073073939459825364384777862659926114232893026871718073485452157480402858725737799358438967681906661955813997264759937625798227871934963335565860486392216905405394666040469839964286659334909263157690953324040369543684670603754121798316997585085613829786777373516394482228589393811679570524428356337352384184721596323071348529234089930556607807555622740358334411307980130685621077207407729949535997774042465491834194084881242748254559605380391206166003624100979564082754426429181800634496211412517852390269233006099682867833245396817137303265480247711894703509606399690274393358125534805417126874552062701365184617697806655422456990401056330536945525359704054421662422082476722365296783089248107302796522984021189798354559913510882490924342899333354309831543359854007305801535169001304092734626767468622080611176281745437020394140256494224779183232339311820298101767020686558989996538149235184103663842009845414890588075524595368550118802804925907390843583473967543195373741479132430660118957146329588976700463987719512856008807318009952882967287290765889601727298476483008336664750252336726552891849967635932505540538154792920696169073141400090928395720039716153205819502061383530953385575573496226996607881186805278824257038633364190733373138561802844894820574086054831851436689445963488751017322185500836883176765848967220970581774862130856711192587990918911037686236638525744801057716298681679988344049940611822148843235567076080726816728784814327066926694037092585385194809408938938303307314116120846518815363016579417980238928610937115438036535401711580226463382456322182237654338823483385495345071236830868410724200782010296253867719763509836456025669863495044001239178299681135363749405282186997013631511860556927530276221037731992417364958593511351721751528750591727447487968733093629684737207298070674138532863635468977954884640622036146476085183697188312143162474341129196834766119648307738864500833919498297195350232964758614432687307867942962328720734315615134416074083823516209035330317361187137021208408290213688576321681554213478736362793351700987493467227546964992718985808137225351660552498512191127664082726463720729512644632041324304747017389939312513238038267529742759936083203265764892772086022940404715204281357299070125371415039897603456827329772583524921071058527523892583134446447212009877498588830767209452860957051328510572606157201447125593149969497554967561788323264397908952416118688022016539873342684461448771722609875315979770684357929578213218887747281268337358447826870860480662422581361478262004153829080271119816699272187570374792496506231914292805759844567154379477950200500849043223322677148238642274601446753961523183543801049124709689280329593241165314104526816950159385345420402812453796083545141064660253899804655197013585372402259156172335190975033197614929637567070582746246107503082670961210416363368475555058208390581778723872067791026563393363069133102536965134305613517367641089583083575067575299632489619669682334655374719926933070331755067079116479267772337994683969155922917188093178101689127623182216581603936074932025068806546877155657240403767502764357923895034009742421351812417766137203319460247035772750275665085057899333358883043716137087801066144174474740643427449760014594928567890588386448789572162283771821828347480481654546830339966023561944835993202382475820511028764995934418502341469668723451021843061245612925592694509412712579056640184541440568590478738383866427245318238483781999979124199181232346945717167418779258907010107291666034806556165003103883190781066600319916169405517957346931615208653006134348098313884382728616872283107051500844116739148496062431564263348326761133150558290235279319832261392914170916410272646850595698849803536282734551728803671136856449051613614432917783129336298315837094962674243889672813179934275974677909334950710910189816039733184156714609585030732262385965413363508978689385148561138868458820519114441345194470443741258268863310489730867714854603117319990762317215932542629240519866402871350896093679728251517968072377297605814253459210948629899000984717252777430545607263749016586183228331262968027146025861434506178739416791082814280613449066386748110832294015979400510454278354028067171812054642721194972963127910097059538496952222521591069625562914667105500492083401644478814048827864575721222491767082776166591322407025607777708021690565553961889187374538929587715025265305035420676073732751337678686070491149206619713458640727898109822724955735132003749951427206064829202063013500472943573952775147848112800254932858670032901955494235272518713918692389129549695782942334538616295730352146645171489489376136448232306761144952434129191066525184213216588809691371912208386712760196373963303260906664355360190463244622398042238873828829979653517153647277812452279977615170889637193171230892859937618101064828662364093683201725969689626343376155491906287136108801849143715285589259574878047336728782132665947435283957123704726448495000273672897288997322116624504085165852756136185363960232121749868837406960271783132675599661594218975703643735364681927661772305583712679795238394651667696219475036294201170856388684607288484030315011395549367793444408010191170466747362905905277688624594989679570310895662856617085766635972694369838660304025724372561899895074025777628659981103081943276619739172283782155512099470189576547969567514306445971027689593124171642239723088556273433508475831054933398011682595974872552139376179397773873812425596396599705298122320750456099256015433963899011277304574829182475503795142078408513932408568140502776660050998900892618785841692916997524985910921615755451387023993916651415064947980024158723360266577235170712473382067367821902354229176672929645295276652641451545483863334316638256441322964809680363711627814382352187863896858013794058454072120997715750660287642208442757221910891075114531036549063645983185821639758778240613255499714572172331337722480959969928250454024179781127861287853757520075099643305555868023107102019352658903365358919117120763593274270846750747385603000542830561967573734098166191328469112022226926931497017617119254462505920910613696004890748438703887088381337520485290862875480110159702823386863437453708454714360545524345300685410507759360128429257418058230638889012008807880803306173772802327212742718216916208794300103061530993206247518877239292590831511441319692573249511322130318519237380868218744302587859602477474036577576900144497155814724211400324327606175804423984215466128654569444178951249084512317667085309144488456252876555581171379863609020446632075095976820569573715739692810236567000847842781334238633608311766138246500649003241175207777207325648602425537530417661417017777621089917038619828367161041590006670777021042929656626207698735860257963731768879714251624550820192194913354867911512400970414575678433945134126246952896617493157529970505594981379772381579530330340045423296780259439344508522919637208258756869047770162802454602041954404277052850321304565438243282215295490777613129467179419232669994443226392996976192444528310093940536631913541664589705989528802063765053360547350745137559859909700433060192129457904420169535536820910647472260271381407267347571383868927292533854883236487940244529424826666837291762011635843699553148448674503312198860977305527112199346031122751055694582963818061405621043125536021273138863044243652368116084485392375167235984343665666376691236994197340011338309670972616864880271057736056425608102437391590248331890918754391852715761630184154365761176568501439496003777651532533464021250182702778781873622089162325855460813413361633566118535575204182555911310281020066847739669345191801722475663394560503521352137956919492793961216863804607506493164902143179078196382513233626237001822735871343346453164518896598125151936632564377821416992238251349103395550564672902930607079609209031850707043555046558886877011549880477844077531867701307285845017297632209240000431772885905194613830780825687649648189811519468485266920193754423528153052738837139401692137436375873113227249420056042168898552272709555756827705318524512203424774960526015461882751690337741557045766455069141670499125602465238012269642827716894904439530282312838681548128854066055771888923017413046587260533533716362791899850758744175436896557584086729764205204303245854230868226852065232955107068595661460056036560443826465316952692793786171510281967517510237564499135928697899688435678746541839044928896697252840390954830611063908483276642540566116886205481048277415437284060820456527534612889434158606242921312810999178279260152850456490666971026276047498301809123125903828312247376004637108958817060897344028891240054001415393365860387224929196894120764887785177916803762102009774105727085164405353100190208987444342699671103082067548757950146675676220084003668761809265063257962544129246791747690087898157273676079388570845131288947102578195058470444482371944363008065532806976181533658043049324380632319273323871919509195765381414726452570419614567982281953078458384892704474452661634015467016317127023179395668784992221548260621561086013533546406073506375873717883045866728952452418062731490478953850192253388400709952924890976287153686027355163112336391649851358473356502402540344312569779402721597387842518196866949386488997029562136364422106745911950529054684416591706748728121202084149834797431898740773452593162107034646943999619038775704950029348761568419404376619086339281756998330510643688315044401193344882255866056558378920898080331453495171647272581676659396166628254250731903194367627740094830325362942045185414720904002062154349847296519497696653349246797262192762086117028253569765812425707540563990381808791091366773074392116858537144894956603639761875269424891582839000882309972047852483189546119604822062638581119997950515362518756180934150298572261950444533825367217349618165845038647659581141582729123208164936116579544912227240829497128085309330235252408978838576155012915482340482146684149883746793683248017300312329293461274636482237440866070678151566234554744172020076692852332554912686290229952719264071709129342493148035781833629757594320063137464933751905100067366759694586569876299302348606742482480911834332424562892912827317343666816301702385521811191598153608781497612272869818515747638171150304029234808363600382468310959669344393194499949618174181628572142848753597477824841790451229944194916000592192931968488243551606891155208092790547747508308084324783148562151035986310525577542418580490199265989937447290401801924862271185914192509904954156214161950670617626356616990422274888478791069291423625146157316687923409664162840634578202848665440718001157338150156870491801821408781935505019355941692924911515573308517793641506460318442398276954286228618333095755961088110520034502824035552340103285173449580222792524463163841336853737146972299125088061173316936727050760547105493764202999832323652024302444027036738654042880213521572162037763326729557587042534763910516470138565029048775652302753027477543364466084378225635276929478045909169096710680697549356826586191762742057992975504756231830520607327771983186551588697876665437827714579668950456264825419213571100402265044393570062822074912203392933604863704517280542021709180253128157757706331221749562655820206061470606238312089677920476708687090953436151509935494844209942569766666161973890825449709259281311113991234689565076345281616893097176142385735396923103781583163060952395660389342267890726968304524206416982230910921765530877296526448276383887128333914444396022519485587563200213256982193430835791431705681984034530600011850745076086768649282484034622711423649585905939201406894241770384585941856904302684669777326068133502298806036265033796719258575226813154215687564014108344758404145580245785461544395214587948812585463708263569564471396206650792171805257029411538037296300610723325626402078663784391700310820290959723076358584787094287223536513338724492428486735024778821122454438426352201855302383146062363646968668163595743467468312656474224473672942878359043054799123015243483737287053662008027184000133563364204654119614890911392259634306523939363099798872943841897404722816227928998452431742867009877312028261748022839983522575322510818784517688847764581809073958401357019065472729679782273423384093398224627315232553949956794499566416511554721837379096461275709472108901918325854471236463945781580578146681474305281534789826346655025579387586155822716488539614065752726540711878693238297998948420931418821549082411067767770683065192472952451169989505494101929616194343498469903030423725764368250706126228722572055899646599990054126277339648501703733412847676488246464375821753086045588419006505120005779688378985860674881645734224548360071888616864226971625454771141858747865526639996889859334272391466596572506737285357412493483112382983575842028394130994177129277997692470204367531761903060386318213723757275919612625300889707027284613905563140755380242194285612493359703584782426294602220371000408495944103608763650703479147496843416138179359709660291465546056118850417904894666674958790594566176956356911538109501492846394893493010547019505107753788003489902112783415389719537768012185267358255054008611187396165853857860358560555124936362818152579696670076683330690078358737667467208056428436093812088644284071257834902111567665603975881973937287786311631329955395098784056809657092751968196901217045335416604648880971214648725918079301345971299999707444734375891995543276330243033576615367352454514084857883315122671387056423661027270243512849767186916556204490024222114388032292213942471883302687391045511338373015516420126880226780845568098015658868286737650402100846913530916154429349911455531705159254431931553038104537071424036372949154121141549769927216808429627177857202609795969336487494794370423784874992180769508689412266002205888078287253612906527890488767729841200800032961794360311254421415170035785952501500767283318258573168866675237769382082102048361635120082361660047937739755792850063187179766259376646846175677909514978716745793648157506784286356622724429622518363475570742767697295541994257030615527127376615271864082958066415554367561479231099881583347453971665421729879175912671484602806950310757351842959260615426495209277051714913884814018390482797215959682764893392205372469443785388805892292075984915766657178211559583153601009997928067816245087191735660025890515279049283531320925804867229078315170636334715739131068813368180280237467203522452727542289010420531911298690817266083407205507188527008091761952079246233028840556104614642976139261108286208295444240081705522776000663986525963673711916589209105869149471728759597266874354519681973982587530011167286230045574330613602137477782632696716837412685389514764212750551699071446980833533527524067350059444956148948575616619318418483783158835847031397621127625820075706377266441572608177299427800286747012046798997219761556425570071298000429057757499839643324882265500450608661684371946985215601282233169072799617102707769529552763915714430039147481292643186779676812491681019124449977985615198864356434033432696038792998061144175347921160979483741755493499525157442795413961119120069715806010390271666797658773438725460223594959330746258794473517377763721373942136532475618173464019180574799640838089673448817289682703979430918774781826067737363503214621065255834651687862144199021956854509776205147157018721464440338046766971307710353494487700588504035271990245632674226798895419328868934805803811166067126801372591996286516038137069414278355740459184082924215088404452781260053172406258438505134749731298149354353540754020099199765818339545915317525565717926823577188607537519507652829896346047972223531532201248843333396157230123231147858965517168799767554848829722740208085913755000786182739388517893275740380280110939117983193737534042839277007531972800620540152920078371723113695145792731372227551350945203985779017535322332559023213140829208668277922835444326393919104855388350715808253521167772536429409317508007014977050203749219583848093896806046987783089710447454998506690455176100634476809089459509854368966492103899687998172022683435619594316854205264471279374949703427667465222286479521880648813305274118118634606790045917677137659042349870241075400643769117502543749288429301486324971352803224128240526110506936975304621780782029906585802942934419243167941009257558868708939545294329955022758344477054691600194428784671855750136709218881843257225414637215950597346203184411125872325964792766389909442656706086060197597528905751920226303432606494204021353006763210477057581604534152747900251186391431583074238713433926548593055778868935301320723957412780259871195840817953814436252254751402212714403194813912107398184581522217756789983119751480334095622292265873505539387662086374992691150860160865332966380787424095601136822956182937576366130556741105636041480854327554137670333511480554904712230422598641265166186355215815177370801062136939584929712859168019822012159529151180665548883099958848630615183992327704915596989337674054308919123026189909318578183751758722652867322481058122022129955089672002883114470931112581882559426527105708473754785657312288446518652841278988376637008823519236487167338157708425546576271000773526820953475844843261489889649943966930114432884109961366795332853053487227737205872191517078981093675305144109653781876594942804693692768723325655729532560023693303970527986704416632783870163998195734373010092484935260606695449828794845789373316929921886856911504451033887596574406617090196213692886853105068359084171383916428299912519583085533958736450961349225430859133049935437946487139130246242237929188798262513299870506272276092173031816150679315313746820477449879043051862033874114487661429315195866165641870107888463739093535903604318505026389530596177912951704819531338417689363876323610541678318162616676997879024506095831949718828423894449252983134618594487459643518721235474039775134710770728858236217776992136054859523734964112284783963889326264517112171037957526661313988792961166152802342800105572432056900895747412022475530481024270217995877044591305783712673034791196120104395531116975901151828381405855579978201818752123627594604202164691582153663578157002464710576002746714633847983609775296638200940138172679282922711156727091507553664740753662775008969452702567801633963296517321010726341160381849703565812995106134372798649156988783805764943939776752399445006749179011512425437339849967241831132517773684026151947812470525161712645036748759199752183050239437894445413098570681407026969480516978832784076714273340477437242784927453960263018056777973010544776014416319168252402256784215606754130920353698403805918312437765418104648515404260705156135866446656462176929761627107833920456770241931773868973493279737075100889755042025429936212085379555893406341386748210047772765702397491672487551950998197508591144458289345068632336487780442679720655242549997204250882388505788144892842780063216255933760287754617175153468836877387763339024908020286035075601627789058883990401635736636984256538969076100854756612603978245401912809157052978766852597964964318932401442254659687401570981205852321417402418181939513120586829359312011576609484941517184583765679186560135725896310953371161656936914760029149091887651726629162659719869111997095328705035945974067006972078594464747605908706620689374565435585627990717712917067821807778173074290031907762588525074936849551505035639305167874839343799475407336003644547105308075560419762783486508459093560307441098229859408577128241287979124338156215949441333090510334344891033195993997204799317148833764949336256564756551911465315638532337102897994504400497556114549022709369040543591785262679242908299457637498117406605230173642416370144165865292674916927798874830370409592780018501347720183075352230185730129307293342332007764507763628680878034826511241500610506703919562106754015153494518614422224872577779782698020182816428894880893625578451102255881802932615083133105829030850058855726790509381205302230636658607820233333782251075596510096078926851614064352194443541029282520740293043972029445969511498293849764986600185475422118928972714960087972631737474992972818257701531806760708961198305104863898993209858428275348126204924475613339272826170043117672144889608181222726310912025846261680412969053115434230506621628408446909949385977713005995285156217800431945528747531434225069795815274344344743917881076602213812983384879540748087720626394193765837358412964536589987803405437588077844819166450978463078444751225297582791399274202183047263255196974850180013833942211176226129965539199276640092081695468431453791247944617905903664368241893158555722636585402144976507710737715671706727201217385296082354792324351957211398753744465102556005575430220800843076085810014884267303289785231742547183984283471187206110114826300864363596851949299247063106450333972041422422811897611981213658554337257448721001613997420703654401612897040136341425690026896470279991544214568709474904120358979333588965919368713080687449335242426752891847841535172925558022795371223893159486240702010210468664535498027493087182748933176531690317913413094354984147117671571579229066405868965118071334765763023882568344698025664191482792025367916466048345924449441156784867977642714659097071258643375820359025913171238583343838849971911332446923459420480007024620566545874380434344030566938047862914874022512237026894044447794206318856945126287670135088316074160813038165675454543112627443953405383226627493185872727968252543791063672861636692420974058207258348243649403230046379968909986632275392211042022624638548852787598193260829653257915072177017021137052090400188682799728271157070351790239581414882268977533404196260077433966367861762945508275864344715428209860915042097911458954852903055639575322190667229341299700938584856910919681080821490964331534820799367776906224686636010444801481267600978614735526039933042953543297722368013953726546218452519910392491364490219014239715720535299628144773963475249959205309268482473374852240494256403385333457849279427507499011394190438167286205489926574635284418479878251429946504419852932068601813000211299155723849796105448961890331548495633324603548187209736666997317133508031908329004179053008108513864963524136138258377248635251944505774809383635989129032194373093283096069579058314779222393717595782074486717190806920392395171469682906113307326041751168120360363965161360790355564912480162239282116172448731167283523534453491467445812273244529014966528397847729582457557777163600526338228920393639498813148061012270683630896466537376695806018433118585248653652247415734273055522582633055198296410204751904460510037764662964549632054044048919510742520995840483605511044730442791152420478344979697966295693631395587765564725986919304050176608840230249033027336017952763222395121855925744839985781295884605570740881351923569547727396488115500840802924599967062610917761290545794784467622698807404799807898510510674744337342031739460096474264011852752224661763788255366833319424173589592302709869129892303806467297976012251670089559673870659053881582926170121135345436001854564410951368126261280760229977754972267948034248034190483703356590671059555624125331990796732988936674592245774304850002793932031755833585129081601178461434963804399453993152551136211081114493689622848611952398364464366144035550923482526611777905388267970703263420293028580098860348179244116337070862736279392143680678001721381912629883829291749892936035729546932743777077008069473285928005610513186914601919346942901148311616464131142713382982290215773245200263034980042310823274804651487403329480357710481841236539891090051005823956640213355337574353909807838611073155174105954119923725737497477336888009938831711349777917654951847103369235163169975755468876507641360665718783011269924889645562014900995306155268801598144931783771262371938350065301807481681610538079697883911135701129367327722943954992446169014443753645697655832025843386453233624878594919637477986797206953702200735888460968472518639993333540555559217352917015271821332231704330290360440166550385873536590265973891629805330597552405013344033738765628704859594511575747741487828248930635865084699600898585605026295807994380152790854814306057489571957290653268274497507331760548425250028564839552897450262839336920948617068083359069210717770506009437826177631761247918631303839817031188840352977792279052328287801586691531598176099406726356011315992477116472314632854336035353119388396640258697915255090541469308885397552194969666187467722890169760094920421620487647236727672425856437115293595192955891539078899837454874055234293697842044928787215639683619668906198089656530615736440583323684445782085975712735853825293359303224512683173127958031792752907574440361541596902191119317953588460793359680406228568909529040085429184259994207855012531669622404507771941459298022596887802121688417940224066288222816829414156128278828010779271127467669081238739395284566223695361555857585096364531937497522121877798638968117944455613643758116049323475029520340295358300665648586857912486554555409701968907949029218228301657261117500568181387864785275311971655385797625338289804303233055408386044200453670462524895069424307741415467532097430661717553057843037651591264924954996979178721652272991142827321158882325531301930926141161210141209739806575209394318580918201274443339672883962186012290489571646252405457462663960976537563644383611843436772495091292584474409664979033574289442846474884473640719418032164477880619350542381752601203544344030221496824489207037319822145861704174761210202407674604674405004582855018199264967108043981410824459932013273238248845772223297207313851505194341655928200588224148418508098302445425162325712506313411362289798217922658930832918905712447165655420128997494669310614927325667175263762213639114999458518880965235582151273018543588034076940587035620815095576249986680606431226623500163215370993647347258666066222386530319242072841720036963232933223416903221879204867112816218052053486327760706790174833482845106165424573600590014976361490307480010381671491751416684669768441918963395500022752625526838929499988806175671677430319668303104860548727229668593544822960308928201879266961307381087854202128439204708097525553208273693575368102124466968122512590571601872270597416951752014912778745945756357913131002075473471149296477651730220603336665659417524559577775238864080253603508341840042468166225209351153997165246852417718919168962905116212971419372237279040216854500805087550669962758223000462431835487729733315207935837551119368876938172842511601212653121823438918113808048793256246966209915430507602984283400531549016972468473851575121254573225839604321140052995741563521661151815999205126446256613905788750361504646034560032304567424989216733365562044025025065905012971215695472845407718561103788062701319106464033729633088466880883343439405406749500471268618932069861524990747248266695976559162676184477055795677914750031820963650695515317562109460519282851353685376778650889100985153647876480209079437012444823419526746713858100095940103344065889749796127880042435384022082278514972928653686947616019333038273494012796030988079618582572568129176203813503876239562860857860188494713343167767920105806157293324053553213079214193539979134503271779487147545851222003926053717611501911377503453241430020685935283848804416512700148921605262587683204121348940848341449111325579386505987240234208666539916349784400639048341149843810225426160880807987150726602107024320309788132870957174819622051149704831469675679540244520213580890941234276265803615315493771284684016036151092598585479238723753115960144856321590199742300951446360394760878214786341299751371362611917252647767850168389283351669476289071305022143674405992499831616426621452109676631743136436831715548964361093459779544441354972070278760654851115493498915164921773975699257851113245692669359397873405423725487037706459437136642737458876766517036288180224930768520599562660287135385513999206413071115702794366225882007396241648836894289993411925841180251266420307485391647225799619902718236306207879197282160361784914875806700557323176826804179247833743941573780508558203743776544417845029665080535050512432581498867510413451422409174177533322343357010719550476801892264293129176160509706895825771126478492482942081348598424113468375103435397001234838458584412577765843253236247760819541044072512540286072696466486616578267615762027997861540747233752188559695082624248396032293738291162353901750162235494493415908015154340015654455500372591937308920282656810765244280288681644721872511318295822495218287808305311359473082557393496279910750203109675422019265999883095967859096501870021794454722538837135599950488246844879400927808220825657598467094652145576531501155235558158316709956443183613252954930598717101421241688558503741465903389305943891708989463785418673906850340027456042918814561996317409824921404000434843478498121254716604379713027632523852797819820958622096697207903198508867184869238139468749072754868763623472700341294046297969657244841258804412205064672785922748576984220848336029324187533732596308841075912334932119104735021663465432871521987272141949078355568817253093191515346012795475669378693008788015626326555881480074189279955873074039769053428776440459270610536831981160792778210467686386724789817477351124610736104765536100060011089206359792046968842121209698944236876862447890982707892087181083575016976344761357202061601011273508791838630668088097479081238821197380065014509543664233016510826602590657441147489839183102348957590593729192568585947677862730699947049560269160857398711082866137302037544103284469962383120489875357660548304040188924929433964311048611952135562719998194572627539405487910630629341406660020353882719392578582479693559289714821506562263595912947816576884238371419055733625965479256147489803671415178628226270138497897286658384546190115539763439829443608416209908371486320078740313882586377588764175508380082238982989161230823073982214200533307656023310310174898390086112525644323260868649449283791211120401636264642471571337892282991090210430174455407490729390874621671020194497613274422614591216447268133253191794717600386528975220027712701625366882024061035990067822760345901950894511616338846811240920264177342728469489074609608016660089751339705561459317928005680506913830843179130532903900025137227985160534092803478295241645165009148815880877175685897966497685952068227425307320265770468863451497288697087214549597339861346360676730590879695581775161134375914116836444176410635493204065598128955923150257818678553888593517404928590295696406145160228070866961785278205456425803245580013144238811906390945898983440580453943907181858964914821455663114962519947131445710944247414322513089534157067939799091113443872856493637225888650563793353961867068000106593889289105558355453500195613152592182888610468728318060841499629347669052750262618285226229582539870842551270503199033730170543008404188599788064764644994447508927848715558942863660731367300345031619889628948119730338843967348933026857376927193832799393439248255479104242950824874354139413040653173711298152843509091738894158210572995351554332880948487074827419830973917871015223398375608745382124600354308467135856515446569915864815994748260242453366384789048584716192049253255504573907492192333247245903536885149666227552447428195162310198473973503098989072986233700555977859390328041720922342726074920130041690399882656855535873971987291739970012289687480499699254715378268444410063228987937389490115194499521294797146977073255200676860970195114578400276115144871830246062207436286051528815611161254024608693438079675277029303328968258430686057897752690968777171324539110959665385588280446769745814094604737742743297523100625038387440290892544149021444553280113171243966353650948149240384980478185617359850885225258144399056236185409485051955317946311410318122185148815816784735019996505267197252609225391130240519695046423173682732851920475965435605267146153850490179232698124119342676623651471346053564731895518382754237296251169492719696201573698138865692315738769638985795216720205302004299533265145490096361385807017531827560987789427250920220219144378117769125081384391310297480374236809365087304482323912811927817043338570310797081847590589125205205503884578136069621265236939716537828780359021120649533623907388207686513024858215784560364987106889159411131144485142463175546996718039014962761785759916851146513054107378947299044301295552441064677429433195819124818191759573308135053041893201116727321117496971982475171539793695904248864987921216406582672224217686280909550237496482953773007158052950027324912286404917700612485541436385960719703098857174936268836559323261431760393388321052007875792142193862892044169642801329057821681307512733186932343791495475839188166194035338120892804339405215773118694132148423184285591954455280324571831531711859418825286848157490172518765249614444512388407232773401405867180769392844058356647257983854869196220080912432847530864932452090704168450519406920683394356069029077263300786445022792904287144465768388899393670584411112011429410323715960601695850205611150833558823864871346057314673589309741392682604965501425019694579652079664606194929256938606190915107208125283971424003462680152603421033697793210390682639719218640750607142073635890028138077365736918536555012825338167632310622520218831497209622347255591829563477702660869246437453933703162323185472730699110489322511739518065657581549793943047409870773599857566799193489795830900911856338319773863342357374408167424158986176337879676457267644153087235958396686256564597123225188526565157440258956617989899516576059390770302360794322336957297365584765149647139396700476009192317962029148635669526534568943740477143773434379423483586012808726785216338056164811252063553333451648733013858431214951697289252669005167658410002524253599083615216603782150986211861562356378771816461727791641626364247999755762662635613631218256562151889182698898360214159412325862071039610488626868650634134109000259204977147920531694999417649036103119352005924851476562014081755712054919734130745978348101851170312500655091265946958536062423326037814494683364027108358596822327155569998126073486055204816608974796406092351442597163364838408342555248615185933600177296032184088085820126731015936507066235358802408891518659897276773340198778448023638147499706860815263052916856858914264386495182166325523631881354277213200611425117391190297284927400520179209136911532530514959238338208081339686249884556309548464551697017728159685914209035744738762787295657529021921650701899732122033358631910670284685830797907211340209906223048214618617732968972094742799396291702986970626641614644641717694116940381909100309268779323006426442974894259814654321706266521501290124452965987917818699364235573107216173265232026498368070001191001898577561476094476915138945263996106958913909385263540841080765048801291587662690053693131038142118671933161148088605477438726023046673327356406074081348014847926155606843939086072245714204054485243248574487316996461586675452333412996135363169857349005418798009164800438318873039325709218072533354056142455800180709154418156434159278370524791217026835141170801431279202665521613742039867386068904332707657779627258361267168212158662024596787780771258831711639223831540897628632062516247838633490706968239371005474147235270921424716272390434816634308759949603471636053666054186478566975674368196517834549496207199580957853630274669356534049570518182548600885908063204271473969716647283605429737731044372451956732574610208463615661173086459925772771531095774548074861471838814186612163720351428477907685631379965621737268454921483016881233762276666032909268512265085595787671057127115742384797613570745076046121542686226852334763571413299322998796223678085931911498342097662170516640962104225284513311767888396930009689899221906461216200393250732857228188521258465042079952009205958799100085644526051763547450203194851486989638191448661879244737166823036399960447109653558194321384250615803185822469951939011309249355471391851660442803148515661750039048731599375911024215477975789455972527590624274759185594126283192104660463711120381973616182486202067398914456691283334363790729295692451275991796590778457071562957498005242283387415155708276644269646497350011249906991869687866251816868013058021501137750713514232939883254479417700141558773074953851102111168698299687264756842459746990227849547218855011425689088426622193963087712765636318614252615865590433003750281681229536750427397258017657561230828043236919795726302228853425451474228808767745104542408998367121206478804318387665355227066449932678557751092815279971579906765996034377457003634124865416066817350619384007130028898086998420259082636518632494163685172015521090542221126230143169225441847342206449612766023885559269097233700058082338613103128298082970578679570020956998749062980063537727601772330174527041875052814955547548131450255608610396800510478990426681887901757053498183531483736634307411652491235015752377763038154911906837888342084881886302430986673806285967645648070741228249252619820936103685100172257495253094368039508569317592098255537529695556547498895323171166473034342027787841464996400971415481569125837288461893112277487208357942470351213985069593044325068757700506410010073380238772191241386447450918964245564503908833244660994757330519920804676926776954419894959307862410707235106209439452071548920721251450679721436925905902034925905244768533723049004716289046056250250114451179587537836432305311686784661553204492965073590844222629728207114285091528900771816437295427656220355168892401483823215341358583986653568756031608616384942775873502011239868010411262704016421830862413360507113795503695662341122145929181723767974529701115612585326843796857789343450889019085317577794450119788439059569233252166464146199782775021819594779690455058027600315836933417653791236820653837413496863375236679635781596470760822554859374128363282374150382339967661614247526708021570496707676940894319675548569929395788711178736561263682661231297440407396606930381740384329379275148832219656994887641784620488938005274588322346612267602859788515815157096992078932765662364528628425196234099415466616292938826990109802070827254594790461172951304128509502156184427031007818249018992252846725498384851984416879899077241577637242706730179500592343492568227720901440429773541196348770088592819500514839737280649484566315814255319712889075361085319051422395153004641359675605387329979494365308647175343030500943744144863771053981894614260747624748941312737537691743094638365405003714511539668100194608248160184151374572015963275681343764463517104922385101827358466817469304237758589456231071441085758617948694052299808292186538597201744156295029450714032263959455694186226009739134385161085820868923674211579146568653300953568551458012136477649261514522327394560253129560348407161843686978671428245631572759367343686416857260208913491286359462287141809899388517467191882022273134751672929389568219753702029118908553363861883486467980020188962349305366372191252821094598965954734556157885624256900689512763367922770992366281657807200850656078098883820473246944165543167938226743816486646809952961674579046860995485845409149286072618806318134146588229367431136069815482388969421546351376401390757885995742499528298998660794120931526883622824624707202202794568847814660128681696602144696239724869729743611449285055910367022769459316042894457170648438436097606238807130882262583283812635977021037445633983098532214201557915050538974753392682147786519511648541346885352503236861550435828909514366092420593235657159791162904064017538278588459633577018472574842204080248478527791481916308829588628617465251283710001022024371977596381148514129086792587362663146920288846220861088101117561305896642714592592012074145242915888898087501207542017548429983401517204459063457776863416929965775433463201765546271839973564282296413619373660012042756078407733897537116697715632336540966454261770947523522539648855331217719735548531149719943266849899612959763342723116190724742699329207160139700327747321231472658698330874372995993982356091052600743904289315594199694417284847426047881931809072679989587902501877860665996070158075679997551997307031983898369224021861985549119337369605905855128890826656918280600692568552246505796598564167148190206350401953444364699946916393475150959267126842453464981259044103254862440822727015016498732597292936987037515389790652370769527312795035114102647028183903550490577418514536272673467711678222028816476898564372328824530723668459996514191134103593286827274978887883437639256973677436394464094773774418148547334043398056483948446926404591141311487620199735848312130102768955306140670410863146891810670841735975975908201767142638914960920193446906187516127935442794984313120795378680805033767181855697909588116464193992571799470687557884970120278419915361364982699874129254902017013318644049274765339681210922600527789159317168120487794022171112703296416947621524925160216567013516972077969559438708066532316654450334111470836604718856352653260190649959498052245963810319464486720482375642964658740131616411884828936864781872129125018060767483371195608703883744472882573394524220982553947695562237133855571896946215459614166357758248126702012828867872276553866594659980769207501087936904063428187278917377603707572518410110919199651122071756228560193485835663291249734111734007232904506711950807926046163927799495935033339198443610169997266470648777992548069926974723196643385297480115022161912375986932875677829136149647070681551762020534491832034900532171916707552111406788343986737879191250304480925796242553481214104914399801971087008054201821270313576798180062778863249019644949762227668041037503291973041756715178837513336036238252663042885175481845588254813248688086753462537149667006452521955916449157830428781057792501889139875416459933380298378981688140873728959352006020485476520207979991704227234177316632703384626803770396282300403317936404311894265588951562160145659739265125964799149539125164068994157253508817331921301846417237076008241108056551414301781484130063346147544883916456651055008126149884469317989716989675085783662642072743535828689711600977516761471337918381050532577669701345150027149091395733214930665564182342743313603625126695197969936174266897114168348271813731721161641164208263164368308052037819946318086625945118769972396823103539476171754215847333919684839075777818887021087648234758720957632864869531798258536601159172154003453738755664339230846372634421972372444965073884126195001162146221008236640877104409790499773471707381017317884851190965659774341461732805979162982007929684965294432813218843033083547213958197546925738823244234600278795811281793290630792504405389659661827485009967190940944915427388902892443535323288628590893886802045724099972351563193671594574674203410026476181411415987410794672229231347056638180695109148855600925381284422173048687388763691373457835664344055655554067753601732153304926826858995189911634581953612664219920387703283854884922821199743825176453146366813886805076484730964309340597792498529612068129775811858144429087447433866300008615777140497586460842740163423755994119370352702403009592012442018265616769729530661940784106257135433574843672728573564510135381921819754351801153108716554114097819173735132563240532592131714430952753189717667422342743061212321855948112965825815447112967473874230737019011489054563409667302576610698673201504605691317021249498564929441203095310182900931641633668243007207991907079032209273274119777293974389307381745917830028649276727089046138727305955682721043491125056202791317247214097722120458726992768481068471314277727937298469667672906950739640801320481908776180701848601116805605747771472571705701606428635484238001155011664700576573105359250784001305132298600381182386700014969718149271709893795583903024239112026022729984351993829931733993275393913048454358605103495769456993811616381954745058278502163646256772429268049522625599075291423667902441206373386721124134180305775792435716477854157873520768297727773020669852297195309462352810863805872854405031269818687068586297456259993471851343127264754233210597129024296968965392742771271552814442600249899441934373662905444136648779793734175767509709893014133462459163705870850076573828265549773997575542758531283049323517511596087607527939493031848745640653542856708948108033625830990541601126173343152021688478096411882536252093764848410683455890295664546436885730376619297351921464151363328423045825448752374244656764390736429075854101567527167544935289360568910941006590395514474630747632711896157834754308212155606768710847795913473059844775326885574654161100942902188642606938258887286637083036189481750310455495095651467153306589542734632860623641972693220929276697417784215183973002846598260221436380845414842296081541718283101336592469191749651417260913970060515513061929043140266964183405776620789896341508111974217320088660242309706841089051101628982465437293265894218948063518852929261267448923227286029382300775889238912628710902070443615050313079758724738083030556785277033817110978639471326496679088720799228113415991269884191232734279377915429260978502512708346722113117596911683508288594709785119038419350424883211020768319006647815883726628884133179064501272450433466438122065915476961026612624160417410737572137059266671261070499582285142627688921573093056175424650606810581601673742012320175157937900593735321946554248890095258247396902208769351487754690725152944372746940268855634002392204890381127727963705928261586987434115164776365641724183435484019335381714019996599944110636260971042868485419165883074079864246770608072919850022747139345651400748516437129980681201776198129715598168487111238236459254221334031836675383022508673147403617769752264616802429764688649316197269030670474921472852833796960041119508345522778896947285959874130517934451232000496134420996124664494454230762290495627395824760815748658593342332571670081136672461116600876608399623718086491074018538604415244456598028340412153277923411310641322118943368308326629932607543995148270119578753550933567621874821381968628034280099599136036351357328018207675598625751844072071550247841371584229776599569302861758540197103316410897255497797499116482435041805377255203803425560980709714549485585714460394833456723692014003040768889485402424987604939423900505286000150118799197266780198249263476196416201980730115849103315549422373499036882277813428778241795389784957036182746956050078266089939766049715649782987684562676275560546930078398243307724373545346684788805880589003476607232923455516230288985531986063586229081377633767024538781891069052910718599523642781994839117461595485454884534000566553323227616580758056450367498904992246362108017809619262466392100292395461561276924452905760393651912151723695236033869252509379789499688788764544333943991331622720112691538104872009419797034594065755622957391464765943030434544575735694903878148878407205735484474986709726596828952886191414671522614339260144839165340215608397526012687546044070396207523897824395428594917521279841341983819377493193959138480002952647398921003955481873767103497192492305509141380973847363136101811681257095890570815600699114007597166209190706095703880314239009515947140496498387400226930777172592878887770736793701797592041816084712679655105320853087384107590791787804724323074181754245573244972361975509088540973221200211808585273488768070988993415682719858385425438195826320764442173830070510367380515809771047510972963871187374583733286760601115867422883824317532115082072290193466643417334357240534027759527145597971159320375181956947634283485256587128170550517584861771653783914264516319401154009256563192041413532073850200626460351513275468759996492376565349707809512803204441223262956743381238966260327541994806275530732096868058983086730341109950131204846682428972700227073298325772486173404755632106561880069881163347635258127500604301826444810162249525714840439321804396134863537032774616359081003782007569506784728157693371353414473104213768086064821157774575942836562057038408550959816916570779431167025070418096580319699544489399239069828273132941907955003043864087255491144593069108161675859599104152825991501359932939947176899691898789500877703974681617009516617385890732696342167387895461067910905167035031310797733859355969020443602150102022752941947253379887040663080209111043593847877593374351540708259980031606548579535297567906654988427807032019717651209354736205031411926236288455817483072722565362843032259985679089391493574293950564158286167531618949479274167248047957055655245842954720542457888786737879183617071725313343637530232712374916114502212381795888875866030398767634576351831232747640552039914662992881303343238113149045209474122572404290079009550370018412099606929629520127891776750934407939062483069095948520564166303877663510930459903325542975620218729502221732343168648489585601412280661488265373162530004724928987749426784141653266427962037947717375977914853843861153444712396359972018805310698544903262630957039174465949642159735064258731307993245081680237936158383165584322867881561159608579171525055242929851593067742180790516707798079535165924510281260478255174132355736988563997710153201381956343893268128335952164256339112868855846266824957390995397317102800466920181785129968651212897368623159646943594406574995295348115910301167937026063130099237360506958500762801585107710626564346376463915161323682798986042632340471779865437812303847857735527360565248005169073186706456896953312676737860023519289522988872245028744789438404968854109439009387919324392173094013692239332135614077735933117121917653828333511086071164053393430034897413032663636555304234994680071537487630252641206104180582708159706671087371063248857111344795142048984457091007853201263062724201896677842873154729525822898525555516558364392196809735028007773914867072524104075107240352607989070515732385485348007592769806745718815545245887546501703074298078377743905101326313107130385744184584828786356424151609154890327598902530628026722402196736364312509953321789403412164807826281836281386623563717815682866329115435033041211463013551318241154007768568311868701041695394853679972758772949655069536771003307667421368479449364757323203864656517692472969454006068652982037468029616569263203045110165540864709540487646058922247776230509906328832363122467747271963264197394484662900636468850265130928508038280474741362403191162749662012501423190075547702653329171083475545428284235859198683185794869639425168612713744199680213484730378053107399579979854583453129894513735716403442776302018553242104849772737470739622361815454072341759320872531319602035500133395683016887759379566121170716688030687953503525102158543322867014567028886413976363945391890735207367157095372141215733694299103302295178950348252309582210087627677959457920246509428279501563934724002658135364647546461560373069471766688575626821349899103336521500271301470168371453983104637636700306401693074464980263801614349017703512211882527156222732836767633073896857116804683274312840760188219910673432370267297613110422871626589272670440250608754325980002603940502261580962025430823831935159653046794227220339612467982197695289736967550702754001709680466949052888269094387545700205343969562189796309715898973247109966140658101311178565989260126252114679619035424629590674155165621276895632140503510732522576657998676111215281493698092229048211762164766669507496504099053329396176857491655192366471378866618101455786600370073198480405252298848956914199706921147037419115790956246240209270200691794225577028590613156015487491569084242297029770470810043261514491900481634012593242673001427138212968590377305740797809837309391634175163744463044645420708157384111277227235921745430133964218263841672036197399772385970172869580237262153665827622665828033459745816676965342622711347737395113319788121894076339517921837394406867599722110099740121528510319548860077707922356869261734905893808709782823632376860232020389540313745279559009929703084268209512099380975906430291937756105990442597842553323453150292811582807003491164371125052263802188332119015884597390295008058221073034021646150119457815236180566549170062408965732694645461509250957591343562612781981267490182600199635326710536799572445717884290708273884093849157407718012866853479431094629279398356231256878090325712827968422212035855247982430510083689472804112340950361091443499780571058216040560898228157861003460834121811259017062356024121400299086491954204351786250998357896969714164851735413898612363157766242772583482359797603075776298361870904924991416223983441508960596477202211822546817382754309036815147811886680368788474110267274466615467323538012062484867059656757521178669005591246641234242359268949987406384554521376225368640354994065674670685978362464638311153608445308581720498027382376502381780548075618356551813741760899964600420901949297762877880732922012078089922809125527766024588293857130648286324990970982458631442886907674314325818971455509475465472957436687267613624394326635108364567466004108971677857378890807498714398718650242801746856791987983299687812107345815453798110206417444253949398595495434494304955364447238390936443328496556292850967664983929474864585258772179734537047101657039177207347827077892252173972405969275810622748403070722944288897785847237956706398602179162757511008627781260723079430295483815380635454032134678968824619576883603579426536260078520389367912623374669601267297433709987319373978642755716315834272191168063742153406732295076083312061301741659672904635944361459611565423279128617688815691033453352165015527578162343059445873252753536289428487687977991422001578620823538312923076749150208331323765498961950510106231346852095896512312786622774670567206813882275748715524993991157282926481618344172687720779883194528450466895514258287903934888989677538390968828347468726004213351567831416708057355180653746841795440067823002282564765313666506692514082759965497644798204293976691880862234622573756870274483092547553364678690792031416293136634084429990115882843240054648676742061211357816579571875582513076809508564623589355490188203147579844940551455895122037419893041440137582078193466919466326748657508153636560161470798075541857387854230672662328542852265094062645402460573905699603466955039463130181817701957488884864074485877527925278531103625383496350141353226870061959001269754153878647795819119131568395557233776214127384536975918978958746982631549845868483967114698682086225192363083945623476948635875098028874691425913207867571111991388821909238303364284710830503745206037262192525300664550061703870643016028610355863152276539805775257512210900886665084387441690578022768744186790919780947613202872002279323082227722884202356680000596666098776948563930293378847792657316821522662568786856293585903984801201668398573010794073503643927842490970734664433453335689963827560179667418484523384801790338658109676983244427728167050616165202051613358285462929130505159806416881766858805953822758792612840465197146501567554813925075113796243579247844170970497213071168881194449357260533199490490443913557439042079110942430196446653370652761071807663761128771005413221127021489772323422945933567318157874536692597481967117459506085960902474002906607938294930111700788820951356728733887211830380950281829909997270276928201275396630591845730410725150553037702701242727792642398103078415029208514277897209113721777665053448988241396956601691524318121164798101082218637874332735457453285133955938654848176439323925786549568481051023069830874405696895171818449716157858741572486794270522385593247226052656664346467337462606934952378646942630251059032786201947880452726308214405009783582916803047435984777032802540865582178451276415373412804747980540288939548673397225794970718337119526664121746855036986313425156733973533411370255872629304147362500243458577633674025386844900873171854235389877637632296392227705117675100136057433270345290209080598580523873180168427368515782057601199456198664919379559862736837035893659351821664814349742649586678691511079591963931189036006673424687262662257479338128561089974511883122439515204780786916534069850605072908145077629935948970902788487275940240015228182828387668098421531336167079306290200109105560899891124225934207470649267940814768698428028240659184915509173565283505577672943024348865016410838199096882126803735868806281655068957121079678615399114401500550276148567413546023119057754210528268978776746849485222539591227391098297890780122738731544935536737905224021246147367921168081571204876272688119639648865584435453872236529268877543188179051599432596176966041782566756840377322467813227565861322137242371021993367180189269077165892245164256898499593896195329374445685064309434893601597828672311655730051661328966552789107677808310764270882996792599344159677381929942575491012671195340805934639443491804648256815447017875993496239793174310979660234880688382609403572608686905526965569530107878893936098920235072537018955911604099595673515401856568234889611647602670645109071472057375301855245351134541866757412639328451416671111219923932395166100060960025856955993274929651234439018365348802480140866482341908957237595927827177884140909707735371172240691459707421054044440717283132349113272943366566112711495256631419006063442656706618763718490336614002900355921928814108318739099304121051950596690616998223691697468855513582394956149668870514156260682565370826899728213658848900309634049082679275295292564539408295474640418291667404980194287566730535096269914673249788816770038031430717460669696069554914683884909209223581533023982901051350480414496512698938564542712312187954859130478364030240812041480167601795899765077664963664225599123142840509631342075675785573735958530949741092467560002962445022272416243996194122995500504250670496679598956259051652368435738662117343062957407413411934354740819457736853452613513121338372666328617334298658710818369692964821656074126983544857756085901188505072777057315626486798610237794465845407413191867026023006400935999123690538734074343656266744455529330563663173585092820678579482330749073857265361582735382139592941096744826926053248395451924452309978650894490754386969453228433715282784024252194306230345684487770708188001944352321056427199950659878834982629107101784236309293235297048587762254389842953712723910983120339190780491669783144999265506852530417728480217030907164630076439289492271835305709894131569564951103136552608404652069838200497509895448893363787936300860361901463961598507943264890061348601667206797048048137732508049795540169365576488975808397487023528729195454816723293501107171748146380505251887694882295665523307811431401204818425498528470348076732253303495085538466493522036126085871276825955256750857234371230890811251873379209751323900549699815140514760103822268852175544196139962299152192478451782010595996768749040970812240515227910964904221238014598858760027119780544099643399839344592455087628255373374757086081717698773354288805681365447746032957514388104485463591662402476579531811582370363494707138712199173471683888355342460416389438692922468446003510684638553135277961688415507748701839219540160767314997590024749617318712801531896845154129811558031685828079075003288028353870779491482167565565859530295817899375080857010697040542139062311792639593683799985160455429546935239102618027373600333813931523086842363522088229915234822310996150542577877451908852782449732608828123659981290541951474387393740876246347493149453637516426516726672373664410012889377388650282156094587406192051632166483937546628997753249558300949569825385001477738966462427725564487810655514768772749976009280112241709014057294149804622434177575387291224788223781017197839990686226887660640019823345313715990778374537625963846570576349882688486107607014149468048835883445678130162022876221356814388553498532096710792774496662861285682213776242245244325691195935094322609857169582416003260180808625726191553893836733700234473192160744959304339566428181454423378631027110949905845505207426289069326319702938655065330231725934162913795697563882166192440187277472520579768283429310046799060329487364369239660797693170305230475240426489066165064140063897965979130183954824480238706198402987443438599049376544556433914418051033092575274530798156866076529905033172849338234586516322799499829770983183650918064261955012939226904105325557947361342115911344675311009060395599955216111931873607426294208067941014641759450536331765727764164009242573406274663441663251677699274535050262302908082260652723304831935268571425060037513822418054971889146857141287079941606443108371163339796394804581186249632837281043827622496244460064026172150902319492895831377535416780852592816084345378483843143653256748799142403767254171453923177767042737093556736302330687294173360796108205225011424229506153423826822110644008799919017130325611706417855223592206422248629811052845556974384242771076907968789575259348830689935978091321085054049853719492194011505131319066721597595410739546756789847666982650424127574638656809300461353758951182766300725976468930090098207324280118448993959005887777722170833231925517355840892508958353678246421120089231853723860108422647356057581555961828025494547294120826427698629498319430460785719529929728858693972375468489098926048984711866306896294699514380668666102787314595924973523530606570791286558174513807416199834887627848140022896078900540687448290089142759172718637016000294273155716346401182600128465728129977697138422920756345077151186635915115078925488494025911935766077299191966954550223546370680867973745117090365280497454352767466755133706547223992033120359897207683199127455195091539097737904779314946840619526452559386245963181132641478913532249228673769264133247550074558131054148644744412185558932553631012970133529638337496032411092428190679019442563487120878719007059709391323992731607032077652872701190448115045362132338747148814492873556577588213265214363531626773074499337048035024113221111327916672780371125681641818084478101684414657497630385385059517946962462029838999768784690606406358318667087062729220320869012235599169924601863932819283544248062015502685176829496699872914834726353532511908659723765885401458302492334217055999434877086950839236262409987988054813578794792963100076637458355822715954856058345519057991297050579720680162198818448376654297406150860359686718973393550351457901378325639890379796180796947449863952159105267572120625423325264579359616765874876590227957040403312132685395304958564679757278436045528158850039508380206341057062024430717064055800347751125962035158199798305690848546893488681010149394521645359798412663781899184893576487413336288524789435925969480055905082501217436898807537182089515624758167627635155858515577139218299833435412937189919220448894004549945155528663550845787292757078973100530233874392678397441728836463096608800518811057818028643359771018061069956921892058724219094787785806051534531325100842482954979151015801056827540138311843631228404675538865201843180161187409984829730943748551992782937620689998718606175962790784165354289924942749805084347643025093831122805014019119234928684030000666417351195060387992052865272840317450199530675350302847795611731683701834513239195696296293225286861052576040690280125893205386049516305179408839201814596318445634725418786668273680528569281563142812002026129666302983328341885446022419314410930310592092797966919964586336444989353926155868523276806801678645182167042323735458484489280823715846772255089961842218130416230922354142760190972489784076942559084830147095248054549816846783488552444193380359877306304131149170725591179373046695980016402668979976513021756768022303809455005802511261048027506156890729728719940743840132866405956798786715498674090297455505094833813726714708055514993198733798819018814172072828686026434688945196272716317160818469167453765938034752943831335210084030678681859864994430081166130770259332792106533738002367151375700124138122898081786528721843598372099616447694892709673147065625432676787460342612289634911971269540370368028438864930229714557578801249984719218262841030509516095123716223333141881738637815309657079831826821874485811133730869545655713495951694806846614324271853949675540567993093354131507110044821820247435530947916376283933352475557321714765081727697550523695840092325238026574492044774776058420729815520661232100267186864224609216914104479053859186050081984710212988136282975376355015112155389114062015413914125497635114834703917254203354344376596521932053292064913095960815933764447172958923672731355687820337849571666590024602924495793850843851600689126809777081830724309088717128303936114883813886059628865857973232492857788978400744081630541082544216360371438861134450567093761823687184905304726135484290589473695814312029718407181886024254456365935830815881654455314171088687637735738943162879402042243254758882438044780478625898188226066159560479239827861875095660682564179981741362008176515433556524391104895193482382854290347900600324629088035244199337451255738947893431474534200625109844697446871782116046531325362693537265201509286221779477637199682074113973968188770960575872901009776487663978149890338498129275953458847627676035399132208076553609233608587779944296726323632256757593124394616996896748218507302299222414470073707963380136910357926892391081728995585556558642231827220649957239002510134747265920361336046009297335618079306290062381467534005049996085166452642576192460060878560128130531580865004674870718648197061168245752559207243626025765859795683530179107538101519255434270771016671637150497540223628918459386715833632020898608181566255733135288284249360960301382223566222762626387853313623930794913486468717273810871322652700919589047932070531093552825116344997163943511542479993645442121733692720934658064914814917670247007672237577611855090979546328537553394486752139662773242733932936771794715951475498086160844205694278656245524121188277394778404974272128691413485113736921677387004446572095507138920521645115870566702723061024661279665074379358421889277326515800932187914719903098892844987343938413078071155612137250638237297084879833711375180922420124914874138417304789537213879632308659632505060692090977107852532504340175854111400074210312882173515133269943625449658471669612444352467461138501030051141404557379195016550486175187121266498577282033333731772588825021786082874980336096222790838580953333400731969787930067136613042554322660879388909505308578279441262966803159041299914610973870763187761592083522557681454861020837460789904205337107132074071556311438239442412446859725805023239967163273705756521278984266256984018756653188124045392132215600963976888913516988724013372380090603069344591818448951743432559631738508305863999716405995893119669717247480137364016846983089795870400970498394762722111219659926588705231863066259768904539893128760348987209108313307739225665424930230617742030799695202198580083296465831597104376184073048565945826855749890069274312700282612955498913205109733564979196333753629542736010828602399538752201327198577717253819968591444751149809593558069112969960740288374644508810673533202072281561780198276012605536366814878474735279839309083425465515781603650326828237449515542215563805819099506023389404519981243422870662798008260802308032701364612126751020215138924117071079814914950080983773191243644200387860391225906378471854115029822349803017229392106964664825555343143031378057637102069569770454386368277973524686145517295424748095890812342112264629644387811886682420006089559157585493029844842317775229515057988336760572026840028142132042762374386229293637263943683909452656393622416550442346497337744729599632964884356493416990401527198346978731137924284037945332018506102677416270784663677020612322619232507494835760063422061633559576290042187916979935906166941574763301548427076057254289803607240648950470617351726047163685861965335439215552248361104019309830178736311392143880296696455401830986647667935589152833027117619151125645451638153894374934066323269468307781931366852616954274430748369892653586616052397017665527562955331496801893513226588649145455739184584131236469783135193369840059625070843721091362105764143554675045738410974062344960442804424581942529374883393860082472720862896406130316395552845025993074511113458468328219376461315160509490339819080234284876062049645722417800309670195717504134913867628927676242120732124336226050625223964910408535483293764394986193942441284205558930265853930318809714639810754135764894902577288986097579332459597025543054452164265280498362829615824156242233021252679706969857738644308820994570073559993018511622062561488532636770280116812804837291119693895528470792892747922293621589556433084712277217778224658001781216250583480748022489508609361854799616841098730238044879420388543887223474961220353226159703831328095286306282921316484757265779433368896818894685636997202977204533863825066722247798695745223867949210219971325711159232981563558723209855133737101067480579646694498174125060578543311123690121072777810186808832770418048984390751709767317875062860444119931162766557607107809432105634027735091360222562236102684515107798393096676827859902378947769362137737424051239395338217396784830741930923486198445877110435058790263210959058168475258889636630999382477124140686959594802348096283598315106712604135399383342752175800353853898758168126075478441358277728584160735985481397662088555885286966475110738032422891332033850161629979948578712053791475906510762208926523953058110603528202108004916013366432852384662736894366093414305423752466430367676568359807788248952218915476474390333090317781213014893426785836517437513249261479381709379255581044389829489643363946880348837208663227451666951657162263139165234556127571773982800487725087165599950908678435696490299597355484645927406699939402400628132877040574362518439943822280558300113856478832824567904126840985209683071559074329203770643632928526974059886736837994359592258602991556197931412847324837462537564885693693829576382829739086010388708517871962509240667627504639964444897901680140576079313292196691213632084583138087747166003454339246866466176714287447818015085784061578189722576520065914940017794804615022070226006057116537428482580467487316710413333428625097217920290441290957069161818449315149682625934075020714951460477776556980280269521660142466671282983439941598551663044130399398513144843815010598448048429649307548239375805898683939335040913757661791233968173501430037904471442869949710820697194310087895218340803566741311110200930958748944984775947407929728377697620512522950973858496093341932401538248887753284999932812759044081482820691440509746968904603863035415719722722455017340657268318296733563720276058491007950934429350354950857845036919168545232681595555192480811552984669012720997877311831197592476727391635981914438020113677580966453162545908550242435150831580789747163803044349866684563188027472536394133469399954169501001087351682399035793361843608120946406691248088157362569046157080158210610768459583367777287422847408675944649209672033754627309746889550702394771711734512818673022096218710708317549419666919959626386715277299498347003676754161214011639101666251156628540411388757328401164751734691116373142411129373052810098765296047843522531590319732506055543005651817691210948209460257597084341768278688382330092986866605833192923890070021778796765379115292997032631209946641315677483185561776168817628621034588495932981929438624945260377307145684880916206291634372130620824131808433826133597345312846347292347862498403124408876721337112092903531289469767047166452870785156327289638566914568520547255184858705627545647349884415319821495294908348642996511483183609566109641704996010416378183473095656866754035906104855595224479166247286852891288102263686776313753264025154153184915730305109046295528626664153386278696675805916090109881710393066933487682765389886396290069795638529647456220989338957985981254477932659535604478730531646101883933126262506844120514281281126760128867909029682551316044290352335754614150249638290819414162206158519265556755928962998402329525480007522026783801468442992678501760540535810437499683674045389686091522453629192858459387004512184846986360036233619488410752751069005935482969897107616679917772348379494366922576517072388584453150838687820420130864492720471153026265379426763125599625309584945103022175070955443323866755383809320864833771482641164556204773788250443952671720050142981148318991879887411093418642359819045924629086825292032210787580210632374452277421895335647595925182368827552669961513193988226774186495716188691300656395522318603108591979243524280209316898243101715572113261908235696294510014432374390175285529113552701916403011501415450279039566253389691922686777731151909556778780177486869471071152059164452845580662709106804283466511928403042586848388420472385443975808925599302173273979680843617958398696801500349058647960434319957036884969884312842244992601880151093392848832317913417667440121859159238696463555540618814705487825942383659005588103936147241280843458194031489892743470035530244943176023901616305311857864642070355280151315919671229688047535532051337048607747852732907251192386347796190266747872018465671770793577880215000850555945611140726908001124412219218786341898425330084514623833143164127263803159582957824519867740836020422394624571020936166364311623654462252218557615478369039832735583774227093309596320276847354769355959299219364221157781487196080548886380473904509305030778592161562762854699918549640837185473572314909946087688685754713488406664648676674551832586239769842622241944919541514784631798648029051852706115292593182404648189188052446304901128394058792199321249406153659020410677185023620994621735663088446709654907669589227465196361881671994432484965977439154237338951531397176384897684873928395803560807015700871132372907332177313313732629551583797211623930517827550785422733628383886419093054973086976089422129909223597498461064283847152288754025575987643642724643854586697755857767321283464672054439884568102971309170030973439230571677942259975245728626613054142352032264789445350739646611022960461292314894556169691561013472991316479826667012534970246920150823925265871450963033078549024641206450936931143824013321935483905808293862839791600946206578243180601828986369616857008828084832084689244390933770292810283667647758327117163444399341105750666392781670187417288069461148205890613397183492086292510079889928016505181473126315978842241315784261341449047963677936949778043590342490048852795127288167100238932863397569880388846934682303557945545357584223760195849084180602712150805199657425734717241600858423376244948577845122928525840430509357917801579552936645366168713048595559667248619981222223716145599182181362558956491358689374079730340880763010353718063799810898232556741029313523969895144178477821983270146455369147145832943985118764505767526786434863497443701605065798548679110417352716096388201860826775555034447141433716333728454359751651693767465575372355509277549734156290501140885841573719463709464453772735417451656712574605410875918166993026095770588262344082623533406151233429991883357024347299115511603587257415830755906247110862566776601021662074733268858032399598189982540352078750997233219126625895867701916646636278908561279486172650898335316264329295327767988012173614850548722567071482957453032174289279389046369813435881600956236440092317885420241056507325074683312144097111070294576332578854513977154815698812809126269406832373488490199633209586210216909952825560832532251069090469138494015888619955087733159961231595638225918275523227632712129125646735553954633019070973326925307147363901430000424017219946233211639353910739533369096646272778760761247351890926047900679190858556534175898640625933398049698512448786404426191966053060098615780138176607003157262281892706716045195662864006277284988990540579000647617695688746380535113724064135024942373788348119211616541185680592305584061351177491957149458829185321357365912354913032827318548913351983193730481345955087775452536321618157513361760143171900529135585630249912782710851736790540070742416338188611451713524256724304500672848148254037562897686099103459953881371727930612656481119476601160635301234584121250816559369580330934035343193945448627702966959543500737130931430529873784836295146146323741087847654246343198258040515862445009132496371777760590500688777498717940020181792416446060829748396279202463830571811958379449388440668586972234408729020689408978778184640879180643138980696136797716211268186002218916588616448340603725412672613433673040601452395037007529415461148490015981668402220502743867644085183781364480512932487734303438628709444974030995050861867185397728302542083595265427000753015768110858517913435705742084256662640711570287981692461087270797893795676664805450572285383958668376074866264228641832880009216157009957043568741103708673413870321317114137070006547707724301743455926228926252136100763939942484533283119373207359910729981060137591266750513340994470768622029111240890931996644481241710240831976789192832267715704795373909488532607550119247099400622049158664222140596685039408923158558636866334924555596021929312456061874124702922476457759113421110600653743884437928777198012516677707296551471613608508688934007542940768346366889880642114402264061078435369570046180023646820655296348924956841438915544557951908170678345458053701808739468330315778518489390164722178137939041421630825798885620211332207616025285448177346928222237931450762274931291532633063009731758872841485959706338641318494397107117162507131122151860964806591159587259649775106274918987803600064458666127863838106818003824464499339542002005733347783446728536838626622872471013755327022410162980576916217658174750476007179977888669609713248120006883624061334249746079190951761614036624327555621050901720457218451079153228004762869542298699216216723067851981141541490410103712685270042183166043936519745853873168134788486534235435140401050004072947950744359823298407089766070904723879348074925082930198988177128035097750914772129266581536445479056752860805093555800932752683111502448371776614791486005612736245276412466926750164919209675384992996471394080082561392318844757956114101745073212430328516102995852276592658651470958651783433731474023453372440870650585803060604966779198368004299993996245764149657653889164802418276845276159019505509090768616410036915863067368697783947154170925399410745131368877783208015873107595307668954498514516459067955651686121224676773169720402975175003938735478981910481393696817400027098998676640903428431782618240886427963304066842954837002641901403383012076966481647845300690442227064954120712979427431792853042374195094170266204061723731400346137129528480264924527435110760101610194852017655260419915425954409469196832593855210083864476811125497337263541645711796379369425703354564662052497923217302854886981859842018931028321341514093212797972077157992628048171280879299804679808811984513394454360462445977415731604556277302177328662782705638912436149334976501791634063181774670342950631871962637115631713133730549477968125199782404966097315366948039833970267975813323068499143735338650019827754010418707408263451940276020724265188765422690170672604702801578462841276095431625158734030080276864871135962313795859888826308378055872267356977996127972570947724942079954541326678717232933086321703947766836159477793143265045470851866246555653884246493814793248034843182284289325974614122841501865722229015792181074990411440757509965625160354493688776786314676986599467783780784049763599489351422004905482971505040845262986102957873886077699508552037498013337340019964667699844340437333963463738750492128353759831140101081194142874575455329227778046642519265115022336591665449164442290744665723056195246170142732760938520892429109690913537433013916584643741467566332154524213886680216009150668675248448833964586538306864437260323611246992134988831932832355498911490594878571963673897083076467322306677945998534341754576207153682538043575631326955226015444214100796659048546364544361358218204253203488465230719110335542248179749361590525251656795765967160397598032931125187461297524677717049194899882706795320210312794165253981149485275213755534212897096624359870792206326266203401675858579065733868964121419023387436076617389303768845449418183608711049694999511419698249196210201512116158534916721283966466937693034830983454730596054872180858703898684068992616936782442468076378422239074543862180554524996705636570118406695878796009240517266720933234933073550422016199075906019250151445650191428538595492220671240917705577015510808745388806179261086708073093782440175436576352466510827567200289355148568431520931336270600191196374054548464568412762058016469193309110883436333643277204596133790700846427606235426141368520196282521768795003367460488848810744773463691086923377103074187217309500017738699690527264738215117751495045642022778131982553709098436590356110501750568592015741022283330491275346637281781746926352530240257786004206689837524039543531921595058098624056384432108307800112017939656901143550058636328091481725063586354372938896070106112440493312211116757383330692945448749151578141877381668645938683110409700094325271613059546131633342305022895919849017283966229385434476774467373427282568204708860534139991569656211173102536253830382870844256100082359416361283707176758653843760087489830546934934585170772018994416581423836264767175889396622487027791642991375268571820457026214983926726357645450152210456981403086469090372781836827040373655858138950028994448696534115625669075849151196368928004071889803466127239622647722985611516743768321213457248536826076148080760848395730996374821908756992137121365860617496794515466307973116658819561869355273356157391971569693905632522929066765894155440666285744191490314609057963193971615510346163356118665529509095196209039260937696509652841032871434409006647818819181406722698020829935585486068947263121693776810478597216004127543146612001614261413044220494553241853324547045316378619530952359643246840202390638422575164874637489325562187498094851381261271543173121224365686109613843024083900284024378304637823159016765440051400530637196836936285744279360325016626960936417309257496966294758780385769900950906806303669360195739416239965524874831537353062948471738408063071677105827781404334740398041068892476552759932958034621343194387593583558158450420087662128783879476825077808854571001330166589311077118780924360347486047135171871801839942990232044183893691703499651475717488398726875842594488785179296947552775866306622858360547130926829931031469906863315763082804847766722525469162397614479884731645532529176484832938686150697980096122323366863914635667857872447786837151019027500537430171131866337980365066627635839914274165393563703269956011207684515660024596782035042545255204138993789365947621981837480256293961176663206373127554696455590897917590156538788455404474705558993219512908085717699799703514818638678159251662297837961972946052235970787324842875956463387962830669257038024049497416188526192356311489533504182011077661177812440817327379217233017816818136793893542954133345255212301895969307305115942019858793072177759352461863925340162355302203224466677243182588365633687571364036291071068623633528331913758314596357402248250690046498131363336402309279791251760850237781112019451764649613856279237532932463745609973287577065132100956230644861228637332088134554594547895876964412808462630606249674288519155427471950213171170906263438630214773017234123787008831856297254505042240020738729670247299759868810796928824238989167430845071768437575345184804669661741412200567653691148937763020779505080827553073394679958762224321810071487838894224286384149250906965898553876904245600293505554380100608696078900378510121438115346051480147498072223941499208050793521000735838440101331192950743185253774398334545093923232596549931884887542541909312584150315796894621437671151305733544581448523241696387932441308879568998163113310177184445668799094403305334681084675941936491062805749487850998152519186776961501481001743097289699558616447920346988368656349004201341953406214545751137605389908599619854983298755213011556257488956984782785212934430858964890641415000945490844051300467800033475434557907455627481160726059576007367673063859610022776521211611651545733562645461440832968119704941367102378990648673710794286205591581049636104370099959273639994645378027209742138534231051680669936208976314860003423418290357351370972299204671456458071900060410124358585829847372430538361578460175026338593733455912268892302690694773559254358771221510718125608503752769880614873785458377363594970885378597300015119676532762087166022306169569591189436620994117133545077369622245638847068144257026866108943350539289276515066392101719289638907290603645269336451852232111906866823332378802878083348802206828057033592605643316869998836557678969066884799030058528811399619406180084043577672020595209766887548754679835494080064276231879470535509920275556051395711496100747129531050968967368022810664644776121110093594792082222233632192620977788615867881896980308822734556396582476936704373330625186195876289862715027817525508356690011226129689645800530507203095578792366340774516433383215374667633801903109502643619796553097377644300240021529528157101766914606373028048924695141230439962750446882457303845394933527005006778184334031856983884588074801969189452013771581604607707785281553445151504970630220382764578970784504850042053032128365300545415814303096523219641802358406547452265553350926921134118086250911145072011528212913859907735755783478661253984365476739267840034272618294921990031375072437535384894859394536903040009754335707544623792622425046992957761707705759903688118361638543415582406991168770233243276118642861874315569817918007171430161391689654147508882242757020368694672263591754656989629084842959958262578164710442400060295321770412592388206592435548983952492491437830824044875122272338006212432725140978347578818935424493575377094364820053059093377961976802541430573670211692735083447739632048124450869742283724839074285810249298313747707313072092548612624236690915569446252718719408294817780234108257125067311255184632278258003462134684699873737892211504439880570130264038542674605092131819072561807367087003020925779435724992547384769555772533534579240477490186817870833736326932892426135963303502704307625684213845855503907763055251374818659543353829067069667959976298557257044071868690162683504626263622854788504621842768687257950332902243702584381655898045945155094101870050404127103018275355501965863042520518005592599082793736589396558273759816758344629083400754677250614737384735050358614090414786547533895782713409866642039137584289041800926574428253990499144557947862867223860076651294544271947904477482229376366318899089900373728905840240872236249472570978886882867887871597824258853639880102214828556824764611403658049505398731084734009692142657703763548924548289206512434094668049586268921839423539312866573221905636838093919929471409826879245610870031697807693354139113873266226780198533859212775691606692820589999348771458365322321473341199383126903458804105748924555147541478079283939873317256953221155641397726180935162523987382282387120220962212413246153581010175770672235805899065070223504253013779548014508244637383443029170063296283405360199531113730570289218518919174526246636752287570038724430656857998584850468346142500457916765572069425964722223203864057194426447835248866527573679232255060697136041209373078690840870414161779585314464148680487325772440958110907079012631336224943397349730620181308518779687769824134312229071782974615324555541723483978707523455046223269825816997490276094097783660875269668722533147486658024146897242205742146171221377150930002047330812608774885983999648574949355198963788628413019595054376317250590218617418408232671702456862283776289671013810017443822279931570989868753880219225671438137710348201623810600924186496885932312502888358373288119632031139517431765160960481175631447151354911208073849898357882252509045167510427053053028198330336004770269005459589718030836600604661384117981455964374075925486456213212874848922698632255679447106220970117131123105064785587406714745146808265505667941918847377026756916268433899347270357262372659610186234273882626029752340177438424786797337309335605132184788190922672951434489651774365633400604130249230933112263231455582872791763363711616936568619701478514769601728507082250096052787961169023131219651689328770936882848704357793507641100701399064106142312960112473963408461264756299886866581413041851048021087346677909529985960775847928557721954051851811380851359552317296959702316491619933664947262840351305405386080178052471732294856702967169726394431707004604875544006761905521498632888737307854507802112630320739085370810158039323472268942937923516469612567438331600312092921645438887957516982333049962604003308384482934895076735456665455678263411183382836417970341548482838507499174967267695121274936502203168819599544382316038816698981223922964588949351101712375355450058089298879958830305266109399586822594763259641801583651016069333093236612641412551272860945286073512219879559262983223615501868827085502173547275944644974263972185240913221594788676113367076340949969544693952708106626383161536566002166094757596410280731595880105127069069708991079456579482026100609456623637691464777197253296591562974431963652257773754430822750326982842035747534801246450048207428976188983740885041202235288014051525008943377650266997870755608262741677853657145645864728184454756115015526465267815899058194196749369145143435019732069611187450272850743117630457023594891125215676475459307343349634401559795019427925685659804866396659720512522625424850654771523707000667308736175324931843895105029260335026860450472536466334797253652226389952635277266657321406784564790777457781295228477193757380748808087889677222578108943039894804890020818927507456860417366444986665768153879261534351923935251356814379031353623610909093670258103710436634857648914761445031705691742524416038834100384639084446117569280510545262034276577972586130138421588702657321157299085302642841094223418649701895886856859857439131539674302107672692809320027484647845050038918725912516233160641596396574422724427904722875532204018319188448697660734027424829420120576464826920088860625318406479459319803403145538723919683111466886706136443449386757340878105177045270401410208465493394597624794783819787769966962165388762236293165112283743306635137397980461318630939111747728422560143714078389599649830068528087432182837143278979093089268479924767415592364664387209395708415214131277174359523967960589656199900272839561938438062922366653728478864600989058126888334954896625465761297458287870306315845912111847986946715146541885345978588951785187363735699643022012179899213630980465284694583891918126171901204010041361841394670844035333358444463809931855004985717144765468297172592814107375239782772572892490597910301507288315130091307180466967967537114531175476890271602362362383319964595365791269558556366739562186258209265517005289994021747817766305658653707303389662727368382225704438804112453540663397138281226543482256750633282540878122370949529947851284525531705975730262780030610840108028220732203920085647246049918246013749183527628785971897262011744555830328557205009165875465117239661687405155540764003383807632611445092460837026641439203360501727766743386723160870303447247411383023189058209364138529225546875440934125110769329679653159835032412967660754143859887138380662302101920307067763835727462029410371415260255036623227518617349136529335987156500538089273861599122252391265977964094379425926238869511902024350718140138388799854243051680398367648025546712203550927819972962803059609750977328867104633221000190518760834757633725103153489444113722560900592182673740171571614423189781746215260661196793915147471670038135324222046100590193959324080619773008906761753862100001049129760206377363454019043576719196077120452097880772981146347205489917293890176492033382219871840054296115793337456468529030545830375808691789729453131976876957559535052539003606396851553103535178189361424827196102858847373190111946097372489674333878588819505463009899058653522617029841877626823328650097961504323045216376920965801623298305925230525087371453879597551878801968144196904858469879511104303271490022250364100519910857916416474887509939777670759321040191777520370111736391019899357943252005508666336728666082501701291951748626128227134921299727812828012848319326921669165154790483935720704759717704079331729970839368156520689394054893250447499124488037626356393671141435554022612296772283463285810927382776062272784718709724435593454448012981910901399455482354657485762874534861434664528834246710742029714059864867591634402769079852650058552484824108528578470308353250096270872054626545416910571628909314642021727509103400671949283489580859261948766408159073603420658943885972923971120829564752239566308868135844864109158629550134606013173412797729343446122720176144293326083004255126744007259566993519818174783099525419349317707215204302786436501850906946844917786100763875674437540604931068451196463381438009992125969175331017399405207419010875775180642416449383387350293740544621968302493463079348647494163313160121736903629391134399746725465169974517781615055931222442798965984841110158154083288591361962757843755634231340226508608299474780645967393491842451859021484857719131502595708595527524536308528589784394350901338007565740026142907243384010850582268517253009974855970202619056861491462544667726272445433666364491808734711541499915906806561453341691510693865291238253208405232445512835533763086920900863359381703982729164241083213322722711249251555450336370119826153046228513920898246309106034764629892273826399690251308521727372069449374345449115571596089368662792775145825593377907458253559398464341040771072592269049800004296970127027241341637634862596678973523484342316847820150203523737652130702112246821277700172873630611626344100375669873968086705968716608134583909758631413619673289440152920463361604392417806544086702542569558963308796358021521882835497778980457951514050594829036714344086507003470665444243890423717311526770535602816759227028206177964712594012239172382569203653154023500398716228456179787498519847719054534532285853116939047588086385143613164615492401367210794049010096989722506788350044370886932973907509995693211080135672882555566345821393107362733286590700887857911409637783244023137392995348127424459840416039070405039530092299215756661229103259374087292923742609164938919837471471644088827357048254316546042085791409049189862024098941552858359980057884244327931260084605984881231879998808764657296351177185337431972385713425950102163453636575597683138425393471624044907378742259308115171155450312494957202204691671023239309236306979020185620615679808235090872709327228072646374058670412068967569130355558474171222642636541189276039986353294794808947805631463942599016049842841094979312336940588250905067751390672753980554888778570276108738926873235671715831843723823438459504182422377228747225022073001081827730303729943191006574586082557457797910248310127367726849105070809074222854824779064111847054044495133498728744728101171592055564992568931597989947298248698028318868680617625955971338535403983795550679252035958412719141809218056634056722368653892774657288871926277171644689765658307403376343982995354592400370010998476138876169300328987654637784030107139927243427465676504582886294187915928379207530025426633613732219610661565737170475660517377680275261873364874599410394535973044006045913966346141063726858062613353798760799818145987179976902215796392053798109699710458767028740460903808798655624683184547241133209763585900216051122857316231078636799920320070434881635372485740111242512029442177792478749213672205385643786141498220339076876541203574210161349754115892496786524533072515967285228842578929128726974317273948793173522291461363555983864679482284699091248848988635704558875170631994339396211325778356139304321122211653408617003682570948836162487964434050968068853358436874912164696636888904346573071759529944728522502254610055984006765508158335905195232880878362649112666037384548545282722854593700031827907839197836458925325702427116953834038594735517321669491605207337766671988272947316592096660330900196610738319290080878054648421353985307220603909407732464877462361783402632961162918645081921883796369505185831638878542641696108454309852203291226405424730239466164001182536905469572111070376123555475856955676959908406492932356970964458464616902976405460488544317552645512110505022617060087018228763723398538017895302180720056776001966982069539158050121385710211495598415152769939213100051841427999986601908022292917938810389485850917708542981688730341337916671795790625273272250170372174281996977434823419605816166446714781816635902023422645293903583445507850132334449653850763626636210408869940403071543998129441864543544524571592761571492746633103141536170090248522035830158106159320781841434436946881471157002574626538472312192323049619382014109604058781887953731825721509050224845214648006236839233434543918750910298796981337041878123778649503677212950174956327233604654781000593438746580278063490153046934533168251234214863226805874024649736457552734086406301896630651075079196652805949787151892881493289902328343706627926589460607522769201821771017146454199033993137946265402571740713064380363854902098704301632034376810790252998672968642024684379819081518715309723431442547529592878551583797282181759317972579163107206381673801419415172117502434693016295178522504176384366988933768207009773736255416135213569291615967850905546578226451465264952740156047769094906680763462746317246161992492155080046476527762262661629132426166897046598440623774746761710639255243655284749083299524947099133778170583959767854171087706081153320705188391475708345144208223820981302501703606414266874437678985999990848953309201996150618677536091085408348954750452634466252883853143927964568220348332949798887878146421928195297286745914806018744690752982543934636878866433127727389338624534037591921964238419834037990331525881414738515836930792162829455521774473278666890399848719947481122258034085776588296446552613064163897510115065042301272654715579634569083233365214616697364674363509986683647111555523383920314898136577330859606325532896728168581881485980957826188994877531071165294589725900096707249029979686746652025482284318708694703411148845646219656289528923309591788741881970369108144233141800013334407896414449098063857907658846127791311428537616493708084728221159138920859912658494453968204782842498034374786624997710953056279276673919130658480624767273237263019216265224991999708707288434817118950265012289634332691417859686885217659960074193425125570911935822373567398877488066729662482992367313646000698231806828258513094674090061686240677506160077182402304138827472952548404770940375814045806751580775220595514100741029672326131183357136428090421518959052623685008270480115237927267221289466131259409463768929578703422524946778134655142918329022390621616103087832434552668640952066010565804114466742416835775716231556409782506178767201600286698600087665858648866466067551064350735706531563042762620909726036062917283803000964101691847703755355743235269096350470063405929873058632279640041172795832098501375731119797130722932582106946872195973511193623101407284229846956852910291679232637115806348650183043986072621543648001279358285998339997745739035094992695757282396902211013712713258375263043629718698562794647794073229403931761098061399290797684029621047111359778107558509452567716011394829176058073252237686432091244115464405908398640381076578114972337396811721126179313301825885997980650094157398789161736492462566949843991224126963489429036327785456949099077893725345906826095677194845495118752009557388633779641165029022313493373407475636080780524893227784761310037035449189794921671169754215834250314091759657931703526919265762644279522322502893497527625391116148525696145245204745109527363954195915686589093693154298467062648475360772221755323506432577847763328951706149876078271474811763531521494554747726482808238367484275845642187989511086769525806332763359821320493801412987402991987955484368975285573769078082190481635355274459432501306291698462120021713215612854733497226186912750732491579243063351575996382917293824515143999347478888889825837616796970923305219716053849105660662688447304129498386205198012445250249538172815494591507808818380123862250024530609618634563002876082962932712779352142097955465362302588889946461518068735560462020982392542962697361860369957856820689452408243273094046459210225200000510437348306874060542196302635211808239616668392899488833188611151127331630609458343762442521271724498942592072716075618772743172821249136991364027002760977588384277516831646571811792922902561667012095124013144795649434853224388063309739413279537536179415878782996479788200605824148648106040731292291520725177063810527847814686735493652135384019590258688137919071524736744895458556815890878095790771971709427024543417125668079919135750872396303333985845664257139709544949405249574953220003592904407202299818482249394402151239365587839167247381533596279554739102267602094074922316839631973652849387183952790119754496419538140156462546747349540998404365353493926046528286381232921658662424940516487686335945818455297996950819488242497455381854378192614731993133140684302950755013294451918951945212434358118919480242934172497771027616452855201164071517862651141752659959263340766029613686022151939973713375184431734148695908306565735622743718740098395127257828451776893906910796350695064707105692903392539647850740389085445146300932607197950412087093987809067114920572002394874455813071650628788049621816693365336351402555945599302599535851618716726299500604821367863379822318856172052937592826113283508094556061661173868554353128375138455644743155494121502144440122362958832562524708900543150971295462195195395763332523233142276575698533842215664554122559402425725098135414753331951187527716606030346934949582416647940135595240932960075839579906288399870245513593046821103024117388683899245416044669241724860175747944958707218191605050622371410343680649340541406363195453547094732396597235934178557889543008041695320917389561009900185848423035442717654752805926572005255767369659912787078718432315993939677186170850417391873852078925129512198666136399244750390919022475000173141586111538164591640208398403144295489669200486748798320092492484805927752067436511438419795769451664687272754247806205266564692158526455568215090847766559493936478927224817678552971203551861342503076376503291426528661673024125721584734208226043839815952335919512525503840344452866975234110154380544256579521443631592535358152830068429085983785273737331081062550217641340799707611323127248279752160522999788235586816276769041238462073001306539513429820838021411582736923479096667423277545984625699223235147244059705611421981180350099108100679442874946048913425231324393829942663840973929016887683732697085796205245934832667950190714135654263226980619042118612503210872994142336684272534260273133486615330789887549853201888349932511723111690830848961935550098651492069344022855188022750693253824044277771697570339466686510771731693864703566600352846353160021075135917080932320827150009922913633481483335210621384733484626662855071553200335215785802768660644871154510868328219591492917754935909146044726192802604229653859865962380263757592579195113499919254580450141416993250722057772639301127404942299877787278456057123218896126597483677873195765219400631007069690948722048370552502719161335856796041254082849476808053199317635634618412588820962055358353243656440353589665208328446692820012086092950710228641955751343038448586691045409223840643086828390873580719435688388982256873197870082997217862574618376313512896599367120258491997536588106834591345554202601107929994607592636852606161641409497352427566647878600963714851299550079230643833341454417932730488443865869527758880689259851289821732246953022065261036480364088130437933785545034632031486525918505786221045592522739933530814753625919099941851360572546497871002821475234036817510573341586389962027086008334665279718937674846884724454932923436925285623669965856912797640000275752766367529489917329619096997709016468625795872728440759280450431742669477070020604837348311884190998383809894373049220278732618461211512453859047591738047493448259359132062734801323395385415413386045110163134394010875750518790741514777219232432384431223320349186361139488001920268845640559358403653062073328927194064684516167977346130074995056171547146153709893614507803916461386602820577153698765788680814847190555644512375538376459640147149909027752510916429610215841431123863638060409971001584493288784113966629073744319083540506456285728825452710331650508648258023649868786926663438340228468759976993909587931642953643170838314119607342845524955948079554296163133609618613710813245341264166399789314317006571373034133522913700860075728817888119651047180016684974852172846963250607550884012720759750639274469268429847187698466788204912140957678332399327087287390906872532732937729545700770480835258122130035146164730247786681047663688785126388770934470599970341432574705250292111911997001419498672580023912247515090591352240899212745209187401532719606869937546182981054518050433956131561644701846361243720530629552262316158055126318313322732511023371936421924908904665536202804463081283420247190910144093480141340349802333262601587782216270557801304662665195322751747494368868644414444383770934362642652751748907212417755559799621204953047803913432201332500102526361638011775214669966988228149226976902124684516844527698568390703301867732466368168042113092398778466514348910107787485992010919287167119837629940268938650918071462365573232011227637056370509044370324645086594794877938425177059844498015245719984019240623281599080001352510882395561300180923568172178435789408335332644675212832692688115887823293057040052536324549395834932111217764783387867472740595754599911675461922169789443577627898153194701128773339475597396391480988190201420893440376270880342971392790348797824002376706098918257781824603742412592571908066187650430599571869347585742158513184926308559258718048292964861883708867544001709983823612240300232180721931949276157605228040604946516012480156844810578510696409194300592741941208786867248921805361409119717255921319798470788482072874357807856745694573492006278122709413997224143999354518881459276289622050694121824185291353768764868946089210599875427922226860073554785345983975061944526614221246028006473924882583905777427048897766898615531526072601184236082989862806343309409295808240827296106962387610891787943719213489496994695997106558546517618792298912198367294336929922195793034241679168741413911865347144080585142910763498374264036932287535549532189249772682271077121502428577923038965896820657447135052616704880415015972460326315624935643449117577695688088481919079224148606521623728214053590403963793473889653123175653648336511096833999700969679961106194216362632120235235183505877439385695576840138544229016559341872296162156992620907542717636511920749128393054028783208215448075224578236452038939775740275027033738500898229529826856490930877741062118769902886469757311667812205458413851384432311746458491728293404525352097993066374586915032986552534973339119199504207592643485753886491217430113423679412488242942340755721100575206766283209912441671834204536027821942753248499551698467720634286249764167232878654631013782588933641620589001123827932017261861574140543976985303291794765716906195067546389745544249467538519857460794340058578977428765596811710029834942684082199652588426528965181054370990039507206504451374968643552514150538828728246175095323482832657888318628163389448101941536456912668282534659320136179255829070585365982424264734852902479229124804084590529579488922727186442228783187769816065134830563179797287915302729555905178248278475350158890997237984321585395089064008703511851977998724718746194161419548057652450012809228688664484521619981875131267025647785296687487732916491851711705413803879281670095321667267220508462448278638855789490218074728456880075417249079988851233229128413024680233629587200129708414535319460512823378846776120555909821543676825938730371940203040796671947800481617340462150364015928064766651165860459656347242941961616368387963487282800099286167627760699379344763397274989808850662354174633608648853929900513595439313897373787106002265286028984402571671110174052058154045869205036891040925126892853366189848968773377001166246948384060691830326477492777269540205041812407421326385009086950527667345933201104184355969382764257909911792065117280348056985388036904359986490653138530879692827739515517182396581801819409079822927437361491152434354413651014473501125389704987370755299945704196245337944191040484107367615327682507354846594693193900576010908046656002417807960900696412131468463686795498474748246995467855198361169652959978822752356069797494016169487226424727792889004691030837448181075589095298258094447538119410426326930592228342667889525313809916728813104967762398637153710672996145702947350099144916278860767975250400176311835475953874787157894166296369960841921023040028769823988992415367111226794376415992454583691739141099898842514293824982164155588127053261162504890294312147660403500013672868921260862918350023100369447445233697394159602566320979667488327470635358944017610104834479238571996565457591108425048218073692206010740232568705628805202864246740023510695556793117798013802712288623549118796297899956709609364360018294751584406437429157894316390637560482305386517911136763866892483519610167239173470015686992542425272027366294905873922626606128708921008499375510359414889500183493916924535297740314322243123457365412951004910942113025518759004500119062214066204410430131274681889377678456417613143752965124439905331978092328250337378712170584138204613344277125126887323185815661325543369518808438122299190646361944421731908859756101412365161612725607933483000382096861505764334211240000178318587046221465885034119238718800125498143528134869782648425237872941937309794582917081689564784506284829018788152068749880253004211649001104664344096566397216261625446508259430425099804082242296923872951243217683500304367488860739658289813958515627577281662845546612502433568064008224176754870696906989377298482838744942017487624289719240160221127823066840718237956912928544947912124958213967925482971539441719763986563792559536047410645498117826366326078683770111838469385105364103389952299119316511919350302519650749344373203883147989388970150321950121164728718715718992998455906436633991806917588902164964361543216258595581931769390713404268249547205561735184529971516358397305374467832313777691509859562157314624994350516321054133242991687643856544232509833915670083873086873434727398509650593369161442987345807518074062196043463267599504923135640297166207076294683678096943146738578568518366661914639334418043578411010285770907919403554798732295689576775142071302696256665498782767172487807489998096565196269313447477984758289796075688682574452901527062743795246314576723820101438430863143080542233105263886765248331995313323380803162631167586695172767920690967880514286979430337837772150748698068301128658846697003961461655982697224627037125551585204521254989731632554272023347442745120782490937288224802427655313972299816641709611983134776925453063823820246048969439679425413999984709522312937017891793097612976835486276382881901665459056857832829075164149748563117732346181324151820528422279317191011142569723318533408703029964530759295997170818624743905858546111154828773155845984744647781375105263453218630597049053920145048942598637970868647349973488762650045240327738217517786147512375876143908669970779270578275385733759402347816704425282655132040853225357099557190394449102604964997522463888623628559009161637362197265593995026684413152271483556676226110227608836451767394209293133575083049734386196107802646353842539154968874861563779692847314260465277388610798565715125332530540097609560423599712198736655507643746972318555535258997334255444585670210659654230652495237621103779176923724319330204809757158668849888531146197942385132011791269595204243987673681068910632732944765108875805959823935905023729608969559676516082906345540252498920353088374320668216517895551780716714062009435439715519395264275872266121056226856137999963329381244304243230257110504656078568927028975755191606088856793434466508158337827528458450848049387846660671148733993848919946805381566091496206106240298789352499970767919955079657949740487685313422508480218427055435394462860420873016210832586026037703040277812921029108864087168697732559159888717618148097776604461863737187652329449439190947117185221904421950524697315461976756640081742834934743523849142568579112228816462790753432487375407208770015910033051835196460951710882692812956658703067144158825807673150709754053820635004776116758168054097704075526722127078626631083908645144091334187025243320595282166671110804842466304325216823764379244788557006716915803354774140509331390009779102207977924364964430647484854923419769943583839809090272361928843074165462792984522372762916557146782489158111205865634402321215349214063986489373679371519975448501383213555959556786369006046930046649833321686845627813992494728537374415862218272290266749040016784298560226040702698155824523853812339625742529368287018790504092437450590343656711445223026041633749035125258268269366293914263979044633541341540263388536693070977720922665405099039082087824220942908326169548049602579070073625267470336230699729644584619224790302398804896349211456564752721671581635693104542128926220238913566260375832128466602907887867746062172523261029031249413635748288155858117154835924688904936049188933309057066891737116942353651002911746003456880649557150010322455530368711960650593682438515755343478343142052027858912884570829930603208354887827498587816087953264923715252527140068307417966260446271033484933892060348484650616841848241584572883636257544762760009329446245434912338689853012337319131289142907580158263000277539585612030472462021842573767965861149937866714161615587860925545641913754412822971317638269836466946541642689842255284942890152957477801838200848180186620320661953799679647407536104366771658415519563535180394711969277777487345728008533582833853224875952669436807829931039485911368885244035606433180212963583606897912403936278519830512144370177669395111912766999082454038961303301940135478913626867245686666038016254028883311272019146963499609950552585721575262694694884221217113026034513458160316816205207483598661201511764469403218030770338112347858035574136220443446696069103501871447116034029440411664826356870868020492072628422179831543124080322871909219320680506142163209127699936764494658768741229960682631581066306368772690103214700399626901095161674072260822003033933610364405147257845912168395942190235175672480904268476839078782876493225267085136648113311848351681010813683769753475666976133853590801357424692212804581588341434913881900156168185324312616742576285807835977530647781259238925394304537758205699124182975186275889873423412666612288270289955165905018979136433490807299480340716445625551146975127666482955898330989906137637958939487918373859196664658084962974443393520968137587120079315296694528307692847032637467114271359447329423919453532523350809655874231223680087878514466936555457421863280342833375667958115786650102868323704327594173491287821980249056733799781371273711575810178071664758500174541663140144290879240175644343871115396746512140624712038599852191831559638114992605261953136000795336851205277077908340028407045918454320980422126633266071814718429509311425823228917050117841131017433417600808315445195482426440268637773197417394566233073170514974384709698108496365292591323647387290960847971907463412051657164873446054391412445624021683872622389866574957042444326358745441014936375500885740106478553012423559154192923387234157015675546102662244868925755833156659467578679049072922606833463873106193395088348051413148992773136610717919678104603048161361505626117840701174908379504549751354936913901517273632371741845811218482497188404129382669781658110379061939595544968357882320348241183918097588034137546590190019612926351123557555554517909194308779935977219797543818511205640990976752492533917204210933461897524561445968645891209189628389286418514076541806255864056722319264034140671798014545040127235761640433721762238057376366116827783677537627506113066728762500731631955576649578057804740068990314892198419491215636415021717220107077905085637254507599780778761869013289747465618702849910214109225515606232728646596685345056224362074781667513960562478428788308205039928259638275535572573128574976412429795940901912046737493655782040208979453169046571621437135027255035586701568511163250819432745044663617283928799932373179425988542553625616408248564907065010596934348094564413060093445039540930124409689580162035356781370075974483970154716196894497957847083627874746215001411936575722725163748491038173056509644666107049328084879513932496481858978448643109903361083838871650984721397773830949330882596203104874579991159976015112192890832184872336104187600448282500048271326725202562476772730765398663746857737760329853107508575802780786108738682252592698418965915747264870641103708240892133935708029728000091554025620593580794488869945939570113913323941781017492866537136698915658056679949931940285946144032212756995507403098624987690281266033434065080479989747203433785094209096847802732586257905847570369845637956110303665794438990202194062367837934260203161825927808650885422770546234217469146791985493730441994074863572449468642998492578990923948015693070275154635293442804824098900745247826647414407972024814207654324726079341339761520914904316620328103029468391640844373309626352169941003020535404961755550752497863987201419066588045907686157506132857892159530272104415870415718936731801085639470307223130949246560872120703598782540154215471986913042941666785081700938764618197291485280575124073531764902448760547361115120888482075470084001486848718830117912570770958262325342514040865552698972639176436513866024606844418519602281210388207055029507441832188268749028737101822950951057983664069684876874561237673883325924942771676310042767864870747948139804087603068616566819754613308483121247496337447294110032297155641974034214373220177475005730800471117699752913176593834257654540178130946874156340333221803967405090878051539165080100591090842912526032019085542865568602458896982688304681685026976526838927452560635969019756171810002235175036173745805478747685476449210238759385063833078498892532146505485059951235043587842808079037129419044863532951012801642289127575297642503583442996251182891813801540298887836851261025513059969978379224829992206687134153988321564313693145709813225137369767648241995715867185577503072516463921026384479658849561473976712950638420610288389611180898516398248973614652762563001943872141763590569893496569125576619612240090653754703919182033641568940432954781893904781991578196298109073293476350136516471023497513347625793661177753288605429114064466856282104732337416877390441766611855616750950038991048808161548441273239699003694703253293562691087607987179287376596256823692630220451895723646461245965562375103254875913353140184184376968319735424384527150260254102112510875281688520965024606494062403315275432643437297441039124756928479120951668944719537640450111073971879507204354826326094681120089986856326304444008234766027558435251270527303000228088914715136614043395335558715867942469056029879541388515749296259404042067888588362473927695893523553503186827592667055685511993264547238241547762191694582715524804155349009293340720654111288162593562823561202693420525647480744810452216666807743720666643292491534923545395281166168588135586730072054975137227391997030987920301272222496903493159196079369575956174430223336135341074558729239562235950786073140346230726853806356571791096248480537285896804028798571026782113651821161539692756576658542936594044753507026345462184119358622453818812566441374238164645346192491944363977960204604874324737155258131936214709434540110417223142927649554206941613621925597052593818541590370676201533127762879616748044651850515110009842888131083928120248151807590101722591518267930302503567699164533211368978931625413030540808750928895471989608023087946981173408964311901194246068147329537295155497185917783546175497278922018119008340631417242350588376537639477570868596853682755284967856921234642333939142724472796584487677750410665341633260147973698845178967898577164948085491234523444383058382255653406702211682299176984123968608701332342698947121324436434856862327935486077529790691203551628297840674015329608751347776835725543439134523027670042708930642456410410239156452942836052085891920283851573800815151892815719039963223404662494588354677739858058941668268572343198969958769741612935281280838859668711852785868438444638179280435853437576197089749314664349717691873771755396216428016425145897793784392452422863659924312375197464843942862132160675078315656864632250181808808146593923100830353330586116976418838136737740285302417179417233551041264199536346136835019967088211393272346897731063628334595837670330211874418394569074551919801130403048990806450505632455139584270825919226911029585584509621555938864281020996681036683015327948384438631504589142255888435607962886168601480707917999514278594404021909139585967284949335110756532243601989327658574018240888034104003812612736102363187652952297397987925442709538841106512329398523494890469130393730490640857114519259347503360729169545454471579890263440592521626930357534302480293129608312702959951684108871728022087300520751590625803645574808861899707089017915468711720847362591486697285320143196855571377216323572137802152611762732411531292230018602721358802786839746434225110157711808128374699688177427517171945828372386642521135473691208441081560524056509282632479537505340770170662738471507160465041622644356216975825231704620720161269012233711783579201345181877812570213749890726878711084663419695503802118547581839068455642111070011202083855062905357839457652567255422512863187196713130325191921091254897495097228750283708674501521196577352162535393971667054096036944115381707958980698704452137324509533144386118027088994679769157258628957157752819059491411163809229089125596572494015033252934314075572845362529359539155649199854367985377267609078618301499707189506252049599253600240285904433876952507521340647235768620659083414169778915275462000276393682216854296858836773310377845590089510285775840225941130025175958515945277806697160796567359657717157467322241499881389151227909892212844513206626123774887271911839602923747262121219004412058659034396504657986248388819296000838716934946393848280976001430169191485135146067931942185713859116099162510546139225620970237111781170363440023973881256415263697488483471459494128057487529220397019747231061132106177677454653518205131461745848893251584089824295202445244770087289979980105808995389189473262633899396180442767604466882945080951748719487134937314002588595191435442353131371909329619169024720157429785569435073782280536012204192946851844596424181779718271859742995013371577617793291534075001565334462532576268287890881348928357224037164291249581234076881119581547505277769468956204254814332725188220147431982038105804900902206623217370474549980320076806588682102971276399738870383275279800399146799545358617975263712623925170630226711314396302151232732401652366601880381623759958446923470784996788363187657059206420887557457799090097051743143841903513784122178882430885593769775003210619822841138883242190307984468873972476653401494326911530034386934797941352887554244362782074664146050154251320044045914250019181707278965389746244125640804691351625303903482452385188106475692226159368506413948663919983710293752100198702234660615181874842651375280630309838114751141771531240263411148808799445819194940814994097542787593074563617343630920373830644472785863413371001284541409123785028572423451066840663926927395624680712972408165004825867246190098068639201046925881504264420964270540959903089647853596359149942787655334150928541229138590209016806192554591185900122985283829755025348079560239392924708730680687178856349290407251741508024116608722431764776774675981047963852496634413579359375555533488715114346037549734677609447367482601411014381562889514678164339240329788164000663122083916343220079984950288272067106140843957032588533407497719054695059047596117298522756191661250961464120677078245037829202840318366273181391428620984609613890912948296962938681663415359726123777701009985463733600537012049506197073804240009512799809990750878485509583551670597141939944503118240050314377676805543388425312306991801718708024180313164075080030049621437810093701851727060881166176185760905192807008960925809130766561584672520310470016817942072871038954443950718204082901756717164630596979040110217415973460719188812342269698922378957247989891407028613812117042360293675317826396038065843906903868009651638325109273528974169350234680175103448253115327694163910616468961106731187015047191078559175400136731867665940110146508736711521825241983243896017973548807808720493460331537132383527026586281667304045334805265057917062188589117548641141274277552038771526435816871500609314125700863336924484455271077588778059766071287012979121125083099310468337210404651983086672437511322592766780851433930254865097761594753698498914804464514859045226662421076892811211731426738234428287796273657106468935115644938765312941106595009856793039933672800073675137589891516067723950190521775955544226763282995337057195299461055365732039709933201907956454823238286522655497145389366151766530026036302279985677530094741000841036150550536745541432862127321878248105503844313518330487851005274524146740925254577517537734822508326149168447882063776651741559213547956589639353179066222418953376565474351995839955579208467339504963582024224533495264339841172088050944590614729704836536943692524997084539530223856630772959147373505797359250458064747756525231772455890709547003721296384803050342749579734244859632633421615004502809511742455303075045121399519732805317258204971995671417034917569002860336389861984865451040502498828502500303805701545813393795440642349884489810818178611730780334518892536274982093157739853398779413189730818138879041518457101444726958689723643218647193073881965043438476876906830855455920240181786243068502993044313653073716806606949257671835956729245583485740912889078459391496217077373592723720898606485924367270740468329507829253035449597542378609107450575933410315049362874808825249090426778064655312789950833936217860635585994911979555113050198466718831080152350677321903176105995110506190998933508274134786789022659153671858905782926089949939562478084981285847031893957340811792233771679232741347028318538108291996117626320416132314780400287452330499614692581473315411642781881630988170043824804783948332682216233469502581223247542500236982613494764592976040450701671409129836697163126815068198727361397641707041660383377356553423348549378389423361116830317940055587381789328041333503552716103073575489359152581350327842360892266402292321250142167930342522426884604613848315097341260070604038925901464862980090256269112026857112310202756927594911012730506529850480778120529633183581660991268611940014588774697750363756599907469201471088979286350163540224326047935404298528040766287279723931787306360305010483998855005592477720718470912227127753792507869543462950302393028695226493628405989964955775734843258568602058883976459354708977543623152024324451809212376642296866844417638236838226462927491865280342948361093241000260496812209980067369157354366632806622507079411619275587702908862973331449965607502804109695138211308240075404601394848670747040700265571543287913365144384834419911083226528194231236176083325931309175011821328386989664424130110585664416658988449291023406038210026849695977065880800912608774279676909108744992721622713540805514266105657754050049470664167878584865573657805867551776963033861092836274279506323370295146757512573410218887938739306051806930068519910295481669548252615390091841018680939892326117660261656573283479556383619207556093855476683854317760576819102294246246883044082933340455910931732590933314152046692516919283698457282617010551824485529037165878913610456176539303332675363881563785583044171440285234039685154498722594747009166797740217556137696017254863768793855464108208141839427703583010120091374423091154478840099059903737957519415213292048924717494337402127295970824257224961846941779409978022173296297985297220809439782524157500802860792018290482343381739436270725266378669964201231538417216475633315207578951035974614529664290425950689987403207625826000892812570685710463807020887204622394591061653378747480494426366695962318625792226911703836137564098232156511458232584811439875632586889382680878023363576396708614831022971550144473190726168329358566216825452108606088061641326060765552256881673990471622149394175885788173260656555948711239529021326683117008383679772741126588336566693657411016408385707692436884444783763309895839058636588244380162594092733477673588306990158816363174197873278790885863425436750319402294527514999966143506504018829369781717063538907457548904269892242450777680388757265487012362553610289101996269520573513683267227856826717905435642117545453797456459298278431018248126461994958225273429989722222690962746414453695249021125436189212732516141571433657601347504941356458391768944986505041058756005457478240416208529457503392398140466849488475621540446802910032583371817156862049519682813923556236275669667705677689518048718542814016352203463327612107633806422449123767460276713593944576070025503144998949765772911373931571915908391892600214209875868020099206635612230423723209123413437037350603604668783361051042845202539218160292307255557784940468407647829064842941671195208197490278840191071356424980102731053080343127512386775583616417503063673997138876910055052249750604228510000400076110622831504752612359543507267557408696193257858157326322228834701923291997197331933544711457076516788528501638988325253447765691476683982191415096621339609184732531131625555027373821343985109531058606134224006522626677525209958668017998854560418019495122393457720691422459008139454642925618782812223000331130550168697004745438559134526419276640963949496528625021099119288115759873268547784619047978604237634742455271168681074655361347307814114812152460970437767186050123317176555431908138174228515138423532216764991043379244422715871937669900946679941632530180625569544549162713284698278582729944513721754880632098170177096461835302640944465083233620277633561096708355566493485746400862341023409708810867495438319731290881405689679309291711413814778911314291116711218551385525103175452994653159461362867223633904336262356527848985635663770176098448105616161746448001902348378934795118534379360225125306824979398377063990371883271405391796431655384983996130596883476577543478046193718795703554215873562280168228724495378995414720042175207538645266604003826627466358948922619346029806100583405225875012810724950197579586710874548156204002439669636040826338763442602148722872498171270946679556450672258580979424883077277756359751423653316267840929342886131230768206171909786064508638609187945358185054980243358783379655543142531499222980359791662242654775970800449292429465496515462578457883812741527303640875049971311638933336903154780467531788771810923779683612753193451233686787994443298060520415992621275743810675614316518586181360605382248810498748983500058804396166139105613841770704808965312791846125670517569570852273262881792411470456973318778446539249630718624554604377602329123298363016619269194046040496779434007708747362284600271100463963905348020726701162878076125477635672710198532266685700942102087423267561167417202321807546553023525180272241631603611958388708960299880873390206301700650241205008019059063172305127271076533344864450824110165724148300330468959845427059438759564966205770776866335997511986564115144321561606730367782305110752521100857791806664216785414082136048834858163070563311220446377070281357126446711877349067784002452671185031797939030912833920137398133217770025660351785171666404694737461733655145147401725505629114407103839191164249540453517953650000508076590711316822258555181332275773898904963113305720474466813748542362829237880671600063381018475336182929189363406251431300823894103786547176798368897122933056050073315125770376529017966688839601440009152351723599886988201953102227634784961907940440136148156608280020702170053801963114547794563487489664539070851667862205397498414830800633119207181521441861935975607585533315811995586542788700174352515660306664407413455108407795561037087244566196505964550825438180785571154388779735468496976584944332845441896825312407738625633539231959573254810179117146313388637794795309409196162242176714472641969747804357994885589893735235634321203104462422809208634611627931392603827950098716594523059657363571031121829964492226917360725987438988635762462057152845917037125281265432911360617289019899827066857968130817940257119926702415412826780242876035555716963501953945920330086142450484983599487068022758259417952291752599556926903816275603694249786498983900656983466680523246388701018116203959947615646410723293175501113471343981312195080010442248987979710225145499312880494792042742801593149588888536450077176390589189793933837123136487137207864448531695226228103127734250581497175996107176329144954004678634879434322068460440307280532325024975510653339517373956786353652233827326121141499230326103386130922367945395897805413456136553209498884265460403059169211058987057662412738804252522524295917771214464896755985821918946185155441464346022642233783363344767575960830029386881786973390753453275464739449331036734856742098234813281051966465474844878104808667653705159679390482092953296315581472685332021039022785402303982335670336356678343343343728677015882119738806185434470780915895666996493311638297685056586314159156083583894516490824204562851528465559458635514484093090915398010830614425506904240577732132665552939282185503969850140842446741489184886304228137871569228404625557027352052676489193763218014550148913553942168705336195771333855521770745920043275300196554123358401929669216833082539997851744951269367187676865975200280031660721061298993270896337901154704834198693732727106873286301944691734763795580365169909889037673762686233216218742546807844507945594802852539828918302071482623906299288481780096749653298073206320049322448450601068026992401745031442246200816289418568076333142110352249837693867455853792735597360933796952617021124308531187822185325290541670653856480948338586852851809037073278041186190565762583030301938856538670961799272536507360251396920567238303693835400371367883215682194851898802723068479155442502927050303136183005001211829045613138267875706859776345574418010789247447778732189060671978287384866941898715443361496818210821418920273522598343933535333364586252759197808113384347914626005602443876054310886023373166350062886946778420690274672057322123105402511713584889439937152417495295442332646606941416169208487419421384253879245963241689725662570267738959246938294124621194937786823137240995580213028051259084856581607736673750765529815845840212773575512090002657601862361173106087962546852258490445047654886593754445869909869078948672514033391732714170265484121722558237181137632957954998259791499689273146986470933467134269271203492199576100221730330464296683669895073384317700932653110498462949398247865919702933580074921249620233666344663813645102094214288957868143451966340385112537426452997905792474532458634609651268542221652607835608636834066752125275180430808809115795557196178934985321069183885963514054764387011748214165806420379458692501412535574311830534431525425516980387829405239118714988346771452809213222337332859356834901352586962024301315126401246887865003647142088868672310363974621888052980206892228093192925443791338501952553670037803217102152502459474972592620944144963692227848534712065521885291907126988822004124722677807352008354950934849731736737510906839178033720161287331078186810944808181262092355258208951393698945429200231806374659445997578813961660084326272558318427683860915115782266784065350854703157849916768823121272569605274526175639944966471806215420158924601050039364936116527793788981514779293090413005746190137071798961470086184760032233045303360139815448633651588940151775845983542233816575319866940117415543922917082085806296239569871799352049628778214701055425292208752183876897543627336480537991514612997319856064699557552730695705121665625890414672978697414767021380514314019092434890661400102389442486604441041762213241844761454487955992168427331032520814179916313587258193315448887526484617333238395341718667689482085493533847880337787375057287056616696756551538207777216418873630615655101207447461512231971159898567058548318400738117033262240175539073842431644015241912297488432237313284106435637667084712256752839621227211305552890812102675210973839089252783188062819199329064047977235304410508132412829606609815477986993952765169429245293757019695563877312931165143613543198965056641655905340344816105604143347280556527403123032385764130521809149020494755566782374791417355789320779443033083470834586857631199007354683217542963346958570616014930745573278677585942090549923689242586583624749061865446025318879380677967299902024236960104477866940468677137996422148001387281294212710088105353269452118461689666967023808636961801261392149007340855564204330363648144601174569963819841894228886650710152307217123241900091287965250088891451555862997346321101182139756761142372105836934064145386959541261558396981110836990327889063463689709787341454386072288096672562114412753999896294083563255408258327244755263993050388831487252086429871882007106616700917751500934010395421300494180432041476685174852773998233148783696648711818795107327660114706671540320979722181282782096405125739186028975312387810206926261893865202309374522538847245040409550441370654610562846262859032135775807925020364917758725724138866973670543934625864868983894091170480203205180567684336546549628860040289377590281295944405991535557855934984238075429815374806009337415707137563932541323425653976164572501924773063871870675453399704461434810490296076748251027960590844906909521801208627357375467060163030860630113425410414863993589204823289120474257338761739319725755242187147033579628320894410911870604159709808932415391897420855434873818839563400757359204354461915127454120539299569410267937171712513654423498723826204781368117749659138099413960556349076317656644883199537347658985695812858939975911886578277620054508551754970078322443362384510278613745832177232368537023770879553017900358197940842917396925694504595486436652095264819773412057449284275236884132646430934028308911144129751825949944879650165556253763292806585046678990214057902613570914593233311708587582151908255443132753216438266664713334331131425306215861458382581551519113107319869927777766732711847894421660162833343923177365204123630938663307854942530253548363163299939174150891436901565445832736240418888243311845865521050528905958082609701411562976592942517351998774249983165801628446598697483942650361141288405879428023778490134389028695396903955653535114980895867488819643670315979420189625362175151874422061732968603726921899806720051566888708267469090938700909218789173577656503185568200151600150214537187965783273201241190948432609131216359264534355519030281739993761609770787343552525572587028633022925947501277175119442979215792299884736357225953690759330140040250373208431937315257567604443644666310059874248695507227702229283508857006627414671859465437520674727733759115855801667198303724426058591825696555102897169304786021233149866184391626462761875025924854388393468264072087130005428484323450721833290028076836367518504120003284670824860316094824101824970545760977519935031237653337769611638504658745208082306446857554267837907001729112699627387440882865308140705275149832281964448460079659077073361805388247042644964963534798806488976465433907257497587270038306453352426970371517130544386413246997871596828941407516550334508691065689739536176548250789403780983122384916937095208486697715364083744504969114202118680014937102358512657779055767706319969344132436293711747347082365433093882546679219911737412101704554659215071203978013963706042968333330114744166064696981699033015527865313496059412341995282760168914788672468299263313482185176949678179679467878748672388438690057079575145863806995383183059653985302685613800296815079760170679869080924692431056881580271638733101098498059343028122598837724385752638231641255983188295133410768376335594955464127415382221166599634628599960362469694992676378900049164547123634296108993893670585468691235180510606356679519989729314138660212379385424471334217588728141397926906079818778680762502690919817331064148406587482383888963214872103525840879880134015016564463138569455411214780918769275802181894143862531256655306808797553155126281191397689296208627636176990900610651765142396169139340627805759770876457244470084265275644665253716364475370668539662261265767924242510107236456109424673691575299335984814536933142535928758399214443782886765827145499792193583420855112577459773634546593460340844075634313627387017075443528848200496154234979939719265482391443214329490418233673655822196475669400545237332460200947356290065139453206449396586462099029506784066166322054709993349367208713381376051491879112562808122506974835508045031872522072881541792467470596817186416984074143157719309543769116247638684182370968879991405171666284602210310404269600961182435550887951775255942313919390791110808464561029161947824272756462892661696789860104223063617499659281937755842495724025702161919389225192261901319643073178923947257883364786579595109517522871143525221581272456282865488706748213512704319225909130974152851115272355477438772488455732610046735542761274980405511513628656867541654159244210567845664493197830999776898895072801119785065582774884719827876626349914482732939990881803079325546511460369805264793319540739035477357001848383198919025806277692564606594016110948121800802210832307349048812716280793536113445516929165223971477429287885179237072504479361802377998911930863151399990920846966645192399519012243626218488385767696262593068645858824708653483196997835352444834901048927779699674626698865674456611033839537393019941521699088038024513772464873203548496274217696937971765887199309850468617941572613386724523136139556794016072069295756269471056304168664187824997079192008891973786057703286262852283822287007216547274823250113492774261392435798734781201252031827656281343127968652260578580083374125226834349073795554556515204955658722794441968062098969825538551390772110126634495147469116933549347397585420755886756680603352256671674512238479876991553498619864717047625972000135058137286995422313560550544150742197721280922666542657488166959606931188705803871317873304484069768953691122767400547604185231337690330346733714675113315010063118034062907642348784738735160106555753172261466034636735399591024186297985195889793071377963272342522399754023354549266556697943181766433869611819500646262284422982360276873848305524759028684397490822564107815171600810520954977627173735950989130627660064183379612052403787968937856399311079928199031353175029407335411026219884856444107714088202299820958111080186083256938627557946327074154636794758705579973720702788730546410505034978311196930842654222295742138632544310443516608573023151362554653475619618804277205022098978139886612131411355814017409274588733010109093446346750679424268588824158922596374057272586002201613070216999168614128762996461395158395647772353455047668971258510778794511799874467470857639701083404343440795923524186259388224004639121207184762174227770937318103593194771176950619823837116721201243486685707073695150079417243139383294395747375964370647779748837353521854344635854203651020348376842058919286747127884583096436551357369769006765142713482924585039527578184856561161712630004424136674525679920641669047543203752825030225349363633692671912315009666195879675341996718592232523763781708078736287588574141295361787854688848195496990043019522208933207424207746010811208665348269748708004383965551313162778161158550024038879819031667784872071930693145010915346400905266020717132975729325716217485056472707332934104684894982403549495744697896158159514369340309139119947634689466576014655735420921927696187696392551647319407413036364841908311485964704150391129017858426091232853826555089967914716500723443198475507037526232918325941363083510218606943897851100871831211617993667539467734534775261721394106324198380601869049246092463238813157200291257432814159865904647487394289107219816148786707325998981166157644437994894297492424524282876370148143289536378429196840832155470673524098770386289322569695597373212783367454983625215020888334881529805819313186962367752770646907719454431949512450662527658508039263550620013829427315470941139742822754070850251456109301510365252947569082137730887337557514506839591076908212544356856234415324166462187501914832277925352840778347680911932384846012056090879815736023032572633390405805250066687882502231070154148043093226807424839638442160614444738186076958333025128623871283930968913610811977512777314772708876722294790305168178330790556650768216271648600549033098890117319037340965156801212747630566604177345184807721384124219033632226041400114996280829387356088790932706794193918574766442020725041453768886477838040091480123961855935978285887974932781199678462727987774696250770176532385785761969173979905952592767818230507654850663134170658877312606587649998727134948996571120620944003125164510783047887006761955985568180830971016217062582942037056634466121952783700330146579644556697208811960002828060217808731630439591968064314515467960428769459375203719786665382197522802054272967091087917129307821712576005645709505067596834079185492480856327362859039624271135472188880193696431416382302776154210329720007035649990625843757391059451327816139833851092783792738623762371053630137163215423951167091521450411394315485609528682578441877386899898924755959411564967038436647247182694923137897350148194962004862828045493093763534804027768004161452879948718071237082360293245553728751181412168190868325528212205532702397449543055737462691733369679961649280197196428282874688511613297232065833782494845178348443543080806755564787225658116626609332028944659917821127031313596978069799227085379731829293226109129711499377440672419244391800490947600906269656129849765685480013210145487074557854121876036255666420367804894035628672363444184322261283355153639764353869487216538570276332159762200273190164866855916050545655901303161294738831103302142120287133083334371855195670028562096439873601295797522163298724615773525167502671891001807135013308668136440285522190394676075376180160437850907150649479242079228810438642515176206982541878492188967806489534468694365363087583035966990715306802188518104250066213980575570951481687889046488997290404414198642774775592186317547995372444361209033253394524933517843254887077089254867421080378770471773584887637504021584795504436955963107794830506584814435170837291541298187874924947844816500577689802724230684584448457809683194510902080382694833679418994237151528763957827937795396914969885319131897509753655958102130354841134136245151447657125260225167923112136990312760029173556116896925840861080832998239793803239438615820366926564314429422086901232738743457649219789794433328880840419381078595498842271811891006883074654570960523859555194494040137066167816184666216522133603434154524791436058455344712937153875662172078852480593456063691890640784115653343763746644207139041122391097496697626817486404082405622155201678687367717705579011254672177075946020759306834924390494637295523983241119886021493734560148520807219710582661253996646114594210550534583887792491446592378839808721806842784592813995454360398263421725994409595673402677475751085105288044486317723460562924361375373098630680392036833749593958233343461032998224613055797935255349660413623194885665501148010706861970884320688078002590651959291899210315533598733670360448877479484220046152739623672656627681334505710770484375370621195702490785572644474398589950832539720481682873022544915732308902759021855178397921088517934988803679062471836565183521139642737082064439939788148689173403316164931923119791193160917501497245863506828853557563947173648961393001199734949379549780827865746592344022535845337893977004166878810734406228887500608957322345258567545409567724952387468304739460733875433736747171143661110515171602934586273196135200430392754926008067845735443581739507979313135003984857107964045548438344412154174408484454355726897012656291901982780899400175759307452489608907124122092859187127552327011276601809826052541547300875249653365675960732183294591853956193107801531117340433334943456645289664249403701492603866617249190452571893714334846829367677948314148985701143104493543092144519183099381040606529132653854334159155124344298412817855083007174133792915709782968159547977632248513644444059420653452369840803433407962280787379128112213190012170405596947312462346700707211527856115272515634554099854632844214265659635938924906598916296085875085999532476477352551365128115224081851331792661081697496965147086491009063041829315691502833740798145882735685538759010019634947147932092490321502192324394159379351364334299683230436532073809352666856193971228061437396291983251136235796810051889560923016932969111560530331248640647893933831922120725081837023502899785278370284371823791632182523292746498838022127608448045076245885031894903483908522708608519779759906923176606675800348574230350244364152982415767175280613842705554260254727570549196039709356641046866698254454895797076481069331308145447027048988769271833843830534354991886441020980571725316339050533757475170944101432521966042293129300894515413715930428675359516815718848662568709276563688070549644459657175808099580006271448146847576566282852267382991125724293915146204782351521358626030415305003371944086017266569250906563850219831942759305132485911258052097532178695173383675225540853000091013763324025025144537511607117267786441807982562769126114994057790168039666814969032093770789613114409839924424359257636001148132986262684924480111956452730600218512398092440624292766207616402707055164583947865099789935665637583849655709047954564897964424829688233822207951301257592923962585816492892034316341279693609728474146445488835449453006168945658961247950588141859370143561965553859249715692723561395676454969253868245475338183785727847739772997520378087839074848811871224655587997108978799230309272386136308548657451040709851210381270895246546063167078667137933003362424952410721771286250144340453398860532115048751190759740317085385836823889221283165013043514730790736905525947891885790671506775656040611620672609976197574993221271799937194484867803084198379354825009934805947456461498611612933869926054002067672957951644007929474879035168338002715265046649275140335141875447696632338875147736907229296114278082529190400458445693849510159177099628256421890061015321393889262807892170744150434219785522824110171202962019650651315698679486560936867569477198271012335021027134769299188968480471909071734516236610232878421540527832184488158886704701398141282000564797207821046970451972724261052190870130008576174003456702431649657975577297428179798405188232164605680037373493439804161983323317024929131526360174165152675276863596011451602443294098190859762542379485458047794362297202388146450826675610147227770912948414364841581238848390259364726349492757312376604874624808421483528602476676249310764023861820229809219339633010037938968000517191763705507883264427261502231053860754576808750401530164463386970183664739078811670051207079796197364636580642135340663127848044211624308343307003972406100537948667787733086367391640372675369065266848569926156243922364160393593716057431412673092710340992874806186792688209176939999490202106409193569682779214844970764624639394846368878566869184669516370603154469261578317653668970446198422145529403849238311555485571123628851424385459050806993317555250023268149367787202454191579891953270838557822354132347063306547120412579381718193440736940604686697520846625866521487437459374580104789713193551399209661271658035110915616201952506458353213895495694350091024789927117247575826605601253385111263887673545888079486025086669675236608137121147124713408217575047735721636266625992859518421366046032560228502927434852169589142835462347697615260764538372918523310519550733910451001312536043245500442371243849346468581632305263507990354281267265900111347511611985331376137774578689795182033078730758527768557905884491801711832396196333875187370131380681244353726535566769617503120324028389019882683700189689961187405445434841806788115216108370090825168125609109890686951120614827640409091477378153852122289715054283396907270837534731377993905472640979319496392027176278644430241670181064158862437635100601906361633845788047517043534521969296469363341639585453304065833420142301666100257513829656275589584441223988268770996366602383434489286875741411639971659718917155497425035253849588866453726820199850145173202892714882423581730211785502755661317594865407097156570892173520735343793553762626787143083842978534263060093506232298071119489674620701388319818247701067952481192947837870482239819439387465023058745105541661462826942716133305228865051480840318551901499335616364800209241505261599928070528286886697733135334821190306525550272143644959332578942365508775814754151066624340692601762859540872783392455054074833858527316734443210389347055993192357141449372692757762485204666968629155120941086978588302060298257038507122537773488780054028477601165860910556937572236025524827867879148612724691111851883812570492288532957456082239866931831993477658301986113276244689087805824784707094219651147636182995404990385646942145805814575316092983403734993460967105413892442936774929609491334632797850688145714396233449528757735680349001945414592902959210583317390993872787820920146022788546037659789696519568496242302590163545503851780439887902569732865910573349164680484288551290753293607290342386808473436831162822149067241966441334434902556588098988968439777565824651605981940356606450369347537185419247467097926288452736655156008205497946056707966965279210580368266143012351033620488055019746598000390227351730037464368956940748212708292667339790852983886878044427275814694388899840787758769130577751193015572510608725474440458487546034932678603023709457844514369608491836020662356955043419218995651101488689104773568528641206807184338001452597931284952461239526111154715392526788358016655550223446291572255123963868044630112860009740765851025681568027284391973134387576407318483531771393816345057797489157791566298592701062895599319480165225472352778358331341537882269642725209503115696480404264575837390241265994549833354068305809471752462155424868675912433925117790610206463649070750487552224360497164231335847082754650940626476269527256686035561881324171641952236871852750451821851288956879986613183523284101546114284571092770334117018033465104572693551920802494516796523173713330533293948486346505202814601383124855729739582091016203403777065161171473666294392373021004695034942850201147762673816493831552077197148107897809974548602847583699976233746681741533268276342321016672994077203742979274101189134553198101307344701496122255853368850018308148824987634897880633942689326624497919683724030682436469458198754089242527792263935858834986375281422818850598184516898320126313381135593526311222710899913868338129784114112346797022180851448136009027684383426416292675950287540671563507467428060135670059930871578597863180281150755882791148096706566626534417767683333187422770281221974319432304206269655496671529357424584324923787108541234790873230865417139852317912989320732472678526490310371108546943577463423586647493588051089757692395416638700848318548942963718269140052205784642968417786573355302830388593688897073412885853886744723046621320952525095434480711120056450327819653864522513486287805152609141238950511597009599732610048039041123264552464833453456631704757693298023125001133338615954019185564752908658079628438297040615176273889490394156346398728596890659640860348352299233159935189093172495277927296381834278555482590783014117489150972263343928350313890749844987950408225179534230838262240372673111452459801864419166257552532786505557871869211400342141563002281367725931423527472427559061771062224975939888488537597634510670383484946585799646649014108059371287802224777363619826152607578728757062325906181800067461866206729655913170065547187632088272561905880977181688506679099017229044337478099931086484325937262978667094279896162696642956823329193641878204136218705273473613148106023105826390093008915038534122384370295029860501458303802986389925888309237846485723502717710833842345792325005052088876842914952843044179774899728883320270349991850208617533329112592306043871327742268122920337411121785662994984250641849755513693868495725669318477349575347952921286404736252534474244352568132297439454078750958265825708467128397313178080403784980639534332270801017334700400857764437594932630551232131764754528815080576320495619492788658599077085900891560560272610886721459922767236532696684808254327865581405132134848075106868409625490887553054638221942454136200261125224055961572078594984976692937422310613321560492237363611987679258018146069615687162964260542398164002351705477180102962156946230501765661543631189454805034912143486385351135530490173090350746394861427620665760716918738491664548159495409639452970666856027225901635694843152197544121812521781933955694004058459223596046458349984302623862532699216284574094399244734645422491871943476593401220969565524503206507750259726838964874854198260224449501788249429587929308985274580026945935666205548429088422762518986411239163278178521087729488160053159312508244943544757763011705991251909572739676443424745878646749011404111252945965347072283473703184874343237971636119738537759025373532451507260187385388626487730491024844222814513095482038666384056123683181565146404499841853842057584617671377072007515227861517160701432644481084491985802086691471335161273955420038835564378098425629577613806846806490764236831184221011305811410396188802215022086528188734961929211885286601224119227226327288788226816307074800531941217933901710681035690011026584091908568574764648010501727559042981902594116259585793295142374927110574687436255922279751172921776916721420881865739754496463493224592633036412806557344470913915750518835854075370668839204698717730514611944857876090204900839817028779872257261966063759226659050385767404957783622475191718753877575151067124465894149791407602313372690736088636395420531682332736597976013264502170206880083327881606087191242300266386374696245868920568267777759604825521428570564251422293608135065456029089804742281772806635532227921249971100270333049100955925316911517587260213019606122304136328118734290868208956356884193330380569244885228059996156607841906145558444961900339943802462097321035322730968864419748464625939759827426935465404560756871352196591094746019447706647241483566278572586475337328281001528843682993688051877556468699034582933392313641669212485593073476868388532935849159391197395007823091126299810554630812214828357770017599415779406514518998526364583068216100254813332366008318285696550514671565060543587158471167502304076212231231753355266324949152422821819971296453213356146948512327007052910178080813914482258093435210290791292743686828685493390019370111244576351869975143592238199347925375347338859508974837524357934412150733507257578929807733252818528929615129534957483653808495083329424799460957089391490570766548885821517091072199251026396584892582102064237113723231789763969742468484763118811618127805079547226569108722706709211143561553103281802769395697112857518623817906248508287286570502177181574930795460136578058363094745073365561446764919032098803648523248094661568402304754972973456655539780556727752596290837636690426254042260509677667115855357760683830989263892983744839005588429030018567594032136899812750916923832407424490799312612511260911744654517165345226209116229148205997301181588939384133219952132422923757939212107272434701680339315392597765758428780777823654797595252898272112718537602232055595845817816154647933638352906415618337936974195975037557612655416061889530854221183533756260449519115110632844719539863960758608777853552960146970221673587355396398601292654068937243947072150876695823894030453441096448986078138775563679549172005957608360134225044353239735158112249530759035963365206178938363968109449599039867245173099563612785297725705252332544710397859634838912991871705167867403329723732075340067923031157012030014953395069843408393940197270213434081464718172869391255701547112477851995437506195661246657761480703509446403334246622442472904043619356198588523862248520068523911506381518174932137129318212590975492574099805226274675901939002417612688156219231098008541437350330364712412333551576251411337915436709966876650355006350324304817220170048371523253738330100748303768541822489246275915254873522100884998138488171613031483483586827058391135148438712378299529730995651043209037337481844208249590318408108596169708520874651435349250363227254437408440470109473315957327653735440066800734932853872879694926447919693108256819128772547761121057893563095346744007171025790813892664095537055984271958217811622104762711364933835921671936188218155737176554275010646161223822469735189147571918539060769139619443388032654968264531494235792593958118609835380169320759940919918044383683411858502230811006262298738144913471798256816562536381590363028918312945407651726399700140334062279198894452119521511685200737757074348580017149589038167280502670612371052769077106601708372584468881268583031121789954427900158981123065884849499215957073575641781742059550254712012834754277299890298927451355860415920598708695462408291781642959046760339273333557364778463149377623083198207976607488013921844424119780478481107831889772082471382618988884134571218424514102832642697304096949547059334372277224266055021220854189476162113130531797918384008697723628103822692255191041096258609869680337414457522851595659969438805440826987788859710983764909161014564737814835307361139937140819043599903782603283358261117468916801852313946557355023066247162291545674044904606807857527853485972890394920237680664148346581336212464992114826027159014513801785247942692039070710743152663435498404778454571348556361118510743322919538703433197462747638440234620291969114098209543013607390630087025061214990582713332068114044684281650056488730794643474736118240480778109641312084931707682512895335900729725276043488861718082445622029252986103554241787578936946875687272523737900778635692223955656352758072431130613330424851058992242051669683969004633936026978882345000868696419390671817908351208311841551014205429183989065092668665037774531429789216188606373524501959931563424081977850569270148008236619173015159840810597690181777830346335387265453365391143615496627667738009018102369714053602110569381536686215673717483266194888178568968327931504725440724607568523781046832306517528261812382354000068239723356141800501152440777118486204398028361967330582144844511069788384296969190240295657207994864388310337702474517412920994198069948235180894793452420723569592205497393723710375375464074882720653771010740597073464198529622665975275843322829429133252440744764187359908972031077941323221348206104693436547776851374087666653211126589549797878835682845890085622322885385284730212917198898552490707737373922839423795731843959809137826506447908046073368817286307632255496975953001010530504630217778770846490325336284929023434369897334801550630685846627973225656068206227377156692693054835001782146067047523876456458221592751038153536275474880162223528453023851772054486397213435278682149113079533686184094667480700223021059807537795399603257392478083235430773780044183823548817455412445080469930748693426004610453896352239840351964514269038467542926687651504710902373720180542716203603293238859263677791430700550640084213670551408692860559867541914136010735056444564614210262858690843021078052170770273803141115503409662527169107829449182427823663084838060837040410378329202663353483668274203743706140272436961755532704559424913283171107741291939136746304507768445839096406198214444730997704449115774626057036533279372369001427700310058078233737740968357973115772738132835556733157274860300091504388109875222894009956183965331496172486022694111014338065933322294742286463419030929975319609734937923660520591437880247830091732439474694011446859923225044774430051556882111949705948919767273753834860856812868242405726834567675428232995753226517406295133725246321060452291156559421082204809290036357785645403264684380852609076070302855349500019980725367221035468659890976453593286042759602603097412167683028542777082640155738323877523319129713270237358903261105144101792595447620844155330311965849798773575408010080798968968764332505159621749207235740927670983960521714711506297246941654939702764821122313162143726547468243268762569153475450667794855051271840805479542243341980215894944051721338718481585907696965858853158439549074374859265357572519114477006078639997260047111110559987936259941878499278724381947652277892150047336920526893697647096337416659978231152136309209642489893000115454191051409713520690869542274642543344134293121722255199982673785276425309729354784572442073122382277589115801929826086014572238779585008594551379680572809969010248583306030854583205783705338034241343290039256005717543175584353722876565059343832607728542387647938499138738230506278883688600819910183881877811604474662608009445898607972046647752636115404442722107136018014240103162107938991043448859673630154350694390711186479657076916131454014264427352967538580912640480392298278547624941100172439165003428897498913810315229542422889856190695500743198858116706211156848800984247865310702933129780860574484320942062958032226661881850305853022308307898412011737656841201614908047425462950640082889145068060591504171761323779014537934828116909404966886612061483254202962229722564151150291487575700566069761729975564953542567137810630559251451791488014161599307809852029223353568593273469347398085115252605245680484751335905393075976135572999154944999841229041988895257776975444386851283434021877885207016911375915764412875578002449442311783910508836977935473776940226966488945789113611559381701614490726868692187823171666136606444902538885465661526092252599700710184301890694382638218294904584909593124092308158817755834668692176350792752006771859997774445325254339949004231084707091304480519997487687022475519309070089279578284139560142240230691991939523474995597893089892632832191483927098082034569548994943380203712921017652389872020205255162854586887317419157030090879225670606330792369526906301865585601724405840268530766825142459397659942658528416530544868762645432815200645025508920184851979942899588163563886010297536133286338307312350213757907377897886761252993291016100001352773258992917605129901486813478981182525219626356056496233203111977490213152093518156719209738841277008972438542115568178119642569848125976264999429385595957264827162338333361420908471933286348311310340819561371493154548833115368811298984625644987565178935517110964382003757906771295853452211186259511001079091614097387417534951183624608621508951650085862695380575105484889478020934693356042422798957597883696200912823725483275190826296700761873338194952825453445675009095937339987372638557645871200881661367706115820852769301842916982267469073823984534488922492448633451301779389426787369386196559584147958834685620698810281796652943300448782372614719353810207346529333687110948239580454487309599087098847422647490121400766464272563177281760915447896186336165896755105703558407910739036008118943922494186272106156446233524454597030610465544012603343151344472566375086782790233106110096919765253890242317827230408754949375438937417239015206377924757737765331400187894937947310773129689808886059867294485399737787127697504943678761731563856194436639028094811596431190936840244420272652742564163802965808846254125082944720833359077463462431653956829594979026521787995282105834123930251954005214271655409042929672634456873323247864110120424276137727186798111077748084938140247328226154344859219767288924220464141971715815639941475542430245099794553226004814806451737045219772555065409950814251825486573499291365681179528922447909507604042499091649843971252278592570174338137165082071809709512157384142477714106530717093226478959388361488814806560246965430534787289976927087884991886394084099631245516688540351330852876433029500986082775858128434286245245010294498420336989012169800986393395055017240887013723691108861004660961729293691246172797444726319678685604114598118973725321844160973173554127667527814739394651546877257856212015382818585984769638482138313625542251859117612819092072167939856639720413224151431950820675656697831843522569191162974305985683990592834606846226084165255649224193313470003076944668921199080970598949864184089716902154430877737812351523136638997335067828341234767378102246212529661076699506783868723371817519359119092356344440193331225744940028576476283666097735071616889472140231757132364292147853323328805979675421999626808716607087966767026747643377481525243956641186173458895259135899785560569827968182402344948119830681370474478656031879646975195406031674628446860261215201437094167368954070317816191638324947171108132967835419482887035180989510742304731732913554263780575292659043369917760011709297630879400766022327453704591571451459999965373589555989329414247377113445792700685569356065180855524460381936186468165635396237469160912722765423753126284390000578214308746818316756867623950721210990389435379116058678723131850824799745936689804899735171388795751480084517711283845900109420306246032400743048215474080523357765444508424956901914201115805445130320824998719678490895249027429902045498099060802187817368290361495691942908249182661034111957579690890562414691919580815146282301775116086121812010248761509734979872090036490911291518487689773848236988310256852361114577487820671793291048479182872116522341732275490019288849175495086225856605517620921693949031674601746515865399445614491162381191047440098528607585522199501317891587380049946083828940331582500360295383470151376625465466699690272596337777720148430284978855297415159159644463455117832142699894448143490814075331124968626762107649542631887021394678395256727838072068055087163030154711778872251694748782780979039055789521581554527093062882830757184639620950580463796190258716268197259480548271849608420230691498388823874632272101628173764296424354586249738227228373942630769992152898684481753177621857066798791263722159878149108966833616598367921570610210337199701340793023595162002803834329620774779128978954496139009037813913379001141459489864897423612274216132097092994860054434933779296500270210216843094134217159899390586263634865219878291925477112586963104696755527847397560471050518586100974027251948316978487430814399524478801163653853784138176429867856454322726199146100991791090668269537352452384927995751561655343902352318609076697306550495914708829911861499953553412561351167298163690293577596568435434464642977235920090671164310993403479019734237079626850323520382608302684934772746306476262855098988787044129866383978515912120844431496956852472745830117681959487988332670408798722969251381286230867986044500134195650513617241516199442637075883315836626721115103997245327285419635028849157940662070531746935725690561327323702776133968113701609999153859849568017484317634665189551830506545378393426427215735732859106061268516606342754533840885788613254573823529425296409362403233513792905776330033821012547878812141603612710812086479416337544141905585256117775388502555193055212225311497248231534254284151895992865098489767545795687892742139883472271382021053546211363323807306980003380329168903903463202417709963997216445936888481434589280325302874772460840203486249703411014434661420539838623950430119266669699686974364903158647576002774835327801674744070507144504188655781660695977926107946062526324557441323359161765553764273640763752035368515508857297477327290699645809520924561833908873068333411183769591511893658664524975825255477008394359250597893488939219030633667307851633235522232696777670242640236871486822780610346088154309248658476999976937134691380553472264885219841201484493161990628670168134073621726220196169757199497016306370768197872535420790644209080009018986091038218359799161428289720824038900925851440361079085228211298192424299010738440900035422430194675318066697602013079228332843015590504681077680451089158007122696840393730577775018695753950267006048639041433415084685248606123429739377380451600484187952005789148892753380391921256671451261071740000906094397958827033296931719067384648346299716006797145322133237166506964214039735869215064013760461045631705476154462156710076615158649771307904140246247968570436173295636850838212363873354843261298464094277069527486453681029236420904941752593297997616377950809874990480381328050265205831046449045023381107191923145155731030672792615944204823625692016391944676579107231839890705811380169911540844121498000515915377361865818594997001515844222634680467988852315057531183450389374619701285721885913116043765628263523790477554205192456532743243990910765393063413219180768054200503388548563307501805945872903274763396893190758800319335717540129571784934372166568216699670722325836909526230458322136356241633248746134823667318859515419186487700010668135664897144998701028921598112019717138339229856526597367142353704944293307344454980340648589871604666829458000330987596633919831999938037437804622955992833260292439773849886680551245111681971405834668197313393131840149703631618630602036311795238398103748278758310244849631114833862896805627661254974488708378999670451655744375229657556196771927879430086904006645205528026326181648264271543493855837333411405918983891000085575824542210011919294833293273060724267142467082135531699827155835064614200698594040876709315437960471129903105726698105656442567533886014065926963636212799253111878007898160429080068225295971671270233043274880475722463228460334322470521441397592881091537663565204354387194759417052835414125350256084632886458767821258863157653729686481517755840833139086347831639741005913111768137694829133472269997887170438118611893488268781277611571984176105767936045526669376039893472771321293396475599282994943152983581842377132869182310721120017805910403872615564989490972966215964341024589984355085955837267698342220123617062866901474425995378970964176075240948767823824888975849545982354718606700767912001543385089943772443233452695019795545190312073720648993724666005193753307390552429410884299866965771337528126279872448310312002808568659434274042119911494623839027051727953598080877251566252417372483398782082265835614431442791161935900593554272027501064900673844861703999883618724465289025480086611331743971137964309195714872690251089567299786292295175566717001208018768559468530729504708016927838735236987850052521797196865142624065756300372148340559066528086220858163633065851635749512212165867084968462448010652328494521451160867728536959806681418562634639670203668984229685660024911627832389890256637548895073843197301860421082578258284368119358272683378773116521971520125408944100253874054992096870551789576973361317851242686840687665722396669535829541923417606820499637266209211958891883188389804085378980290762227121337386687174980122545625652248346618984042131693049902132064608454520829715257010441186278340360741379563693723408182165965411653207112387421292621820567931469118234983146900603321043179385640471544133840190764472200820283142111011608413177752059146483007890801099706272611023650383505580491029332309571589623234483272240889637135959559540625614027450237426264421432004519014354202938564427504632615912399721657136137906485018410014581042143609026324187438172132915351659413531920098801989839084627448045886382273123264148078426733917512901609376581108739097710924883430451672172925740740309725363382824026925994473634454459315972539097476154212816390676313008346716344927494825111739009455161887345681902421153995352505126304927302313170691483878997978531057910010445475321597684845343629197283186971229596120403267370479092554349549763635766448213670936119785327186499680177042334903650394019065910243956719539754365786675269655158453188253689730576304472210361676168426695422988741310849523671905557876534996783319532024552827963443881811486345128208782856665951104984348843879468222792451769913403941608492465166847969281279020811332255504919728920153649156213717571187199029027312084734895212849699262362798830705860538528134266689801699298970229026218140685701525948842135101030876392163725887072898000852357721007712393225075660569843969686442773871547576363140501487562443357483461227941498462755081416939475976119609018232233492282309640171472867026934893172105544074015869265678767581674144457522373179302967314103540751311489519163585052949110276004342012520562612252947679322942604487871477112394159488560928609704730863301441361763578300743942548052751218378355162701539070155780507232723989146126975242735500283162198988755570635370208834361889557247985370530819014522975768919722494530929510788544713968012329751664386631830399765404019488505336389376004420236944628989397904502439873182828368300539529078199593159283015270263841549318698818666694833343664569625345933500329917945456208993906264514512394599461781176137719741073193053992683521481210606175872527120500886022012223096816490239833157261683085147667577756293787066467699595353417181507337853671481196110415224556634975582866498841979629128991236403998394579326054669398215314335510265631945564805014399648231961735738326967274589631140669139915299255013673294915384642951938730296010228598490651391005535540847683998937938251816662928728421246971983996823614374299851025065780993579058702659757143537665128329055419260313589313852330556790750597962637401256700911117254431660690865284839326648366891922745992624039417049669231787575436965807629306373110879191487842077043844506392205151049850844338047046749560147049234479671279770699615648272452343838135490477646623946601587034114691213628546873841361410117335813608986217344099929291465181170698916333319320995138718751064078713327315153613432341700712171417955242420697510952922154811519922691283419247409001100183555515241701517647844032316736312204003839713726687152103745382570800368300477988191493031049721311162829193859069928408169001326503299972865489890328326627102463655131780577243618438369101586947373569007975365513065657063324675472568086986093402270935046328731966442712968107856011841156362712753458782024556880031820351449270860483059927495695862575402162014619557573096716645091188920182103352733941884532848291696486748031682860210531471302910078640572550861532950706988930504785844683795985350805877169179406952259793973470088961881999730347626442989296239783185431633838137728152219135015054942491831327118021508722454243669759357186424501289616301096553099476158349310712617619228245107982171307414682598960462107727529556050098309034689850122967846394039236333370158168613207571458034805129518093258982028078225981607135782673866795983507834402120207403958271591881743540557295877367918604472404961671208276386730233272092428656584733545670168812452620760799413622463109827429919836791644097322795827908098704147524098341627258675868180488845994402329024277511639013725792450285037107763999750405887447691567070753331428521547838403254254970167925143510402356247280389851462541571624164680652460140969018566507203219512739443645089729157126806359556414453261378063531905825080885483952299417894243155651979729964453746867628696311462048352945357765955758845166895797737082431013880248303406256455915717333699010736253277352600367199701700933655352538125265025259991498536012860613920086584205928063466581510673506522882513921489846949526082705987078816898919425923942587691909357562530345013213612401213381086018153492381235409665140174256880491427411790061586721789591884022553606826788908524901531964393318238173406035988654423177170754378256862604042118507297381447682435858002882736388658350734135677478010329010954695957681839749224830539390436549243252408900911574959232339832701046521129232185049421471876961812701255518169578361640273157572349526818285163604004033490266383865112472016599285640584056231523527073462725749109127147242021748897876725466677325158941559513419695539464899664373874154455132348607389020725712142245210570104030160325677363038598840395780843971246848478387638643002639260974511684958116312666913251718644198213945978011454855902222421241720822269685779482540871445860049893458602523102166176823177564373764780815203185236825766852892803678115141788076312061754576378399622644888195336030602734318608712556441338446344547061081904602101018520158074438162061954103148819304676431842121617085148672898597830598695641323321112176707928649233503248684287268753693211846726350729749931120968489834542190040180598071795061891074745332182890840861849509997109332540483409217238180462206983355565116450842735753870449181084554977928424984776047188576566354822456671812338821259621616668661882771289809326184483746969163354310075071969291859907685953617413102751460484871851298704987204006588389215734839615268974934777961731076192064292201844304463381338822616155156257060018261861496830964319670629157433516895720506471136902749529098557825126852484694901180554066229277677281027157368731982270714183499095088390440600944432856640822225073583855235913915072946260051562865331725914768080904772116377309766479330870227603147922210701466986669171508839368645458641073018401465158081418613114882099849259732165746905336334626710822398629620123537572645199962826867972298192197265942836988765209405270214129426636701216057394116998013661980225683567032985726330546692597717137462395900687145675682302882800308332749631171950020112841105851775066274594030006806708494797038315199703137495703416922147554209666307383954011410635653306165685088379534520426353829310103040247217911436878617468359313816417683275853880790534970637225745960813315622417466324488752724621530834719102226848840357481410137212393122734581342703437852177723246166394182484942858718455283181122807887744452845858922212771444109968858798546815536872120139073941440027224338712192987561987314380550811913474684985849170205233688264499752432032107421335639242547315582457451889025366083602669731758992513520282684644587705038180464461382627296267842264078322075099273624652803150897200594449733824268384741720992162646963181024560461433275683464572926458788868187930239459035586249449752902179758978577704289092737235446288124926345163469698221119698862038806186645852604882805205935748496166048406247830215128647547370625205626664522330008012266541391271729360957263585638222445614730675860159363287253802970144512175971514903513897834308602775210365708149482191195232924545477137520432911250927775328571369193510747474015623551739218688347102149993571890804483625427696185495891602239315172731699264204905147239281108403198114861021687415292835454780063079844618125104676588875285171695844665459562347395223228871924103364563699041006656746354055623514976651201457749878600526633266732622693923935488406085252137209224006205894359401767333131202175168390158812555697565232299979588180302049865628994179745716866273230893657699619239577302324608071703898007035514795586900599413896682632140676205244767433332765210814514190546180513093424251967270986828431631364065783200072241070855207858695721007338096052641624112727471242101635834453618387244069770371770100831097620003041710728930465827952668605716556355397452723746842749962955063778415301651549076759746725796134995453256395965460640397981921627001724360308089289916323841000525579516132527508836423442362258380890248217510188952979589623768243842553103871508143307522922796280149989656199177189353754378241601596711374646862088361386931750698970154511432961776936446604121839215386803857545314860774171895707289304218644850090826401716890474250872496624165649205399355153076480500390492893677770659579984928455302706690968752157279689749990900268487054288366981629378190348936010539260521371625082355312942002242569870841933728906726391074539502428899194410732658949008286774882972248306111686769054749667302514523874630129019800857801605072604049592242491223570733821717351633424655859802047940158372357643542311993158635298550137733368274717035796819546279065345228826640554436200447122172748966000330612693217556456966209610774093870356647641872665237495906163909402996095971934747810913440758247939613664555973364951804075672140098028106534832876951498226964297966573661546901399330686456218794960347416211596743168206245607348039620504529008808770994124410734509802294418321352410038446297839683399664855090834074910435222348433601112513562697212846064673399051642709993626084485628570129922889349538269843603176434345781907361149874319999364932983025526724747276420768439777784274640171730623817373388876987301414511435674480417632288584091693854789461471822106769356738039135347923638582175177456388454125988538562586594584458439599068553123289239820726817733505076323606230824559365560380344988406200988486191261930732918171646767822449636716819845401977244041577718460062006434300818602335664849047341120252153492074785863425140821121242356604874034802925708110446905511998993267347399014206222982463606728087144042242080198496638315959749446599502163660183086623453265149977506014245758746225528203508474636303056150189956316408966496282280670360191888309533629712769377080814378910678652048174650081214808598902342122012240511116704727894209461509221417760217837349425574178247346546494150340805467552861120809036757951354756908325592134844644587320418654165859956649063821965877598562509590139506305914341109824682384291556250727370511549491423715893192968538333706870966398885476094619307890129350205305766592940741150521480768057586334655232110045880975603906114138242076540082691552641060218856967519483210330592209342083904311832974242747690802069456804986336006984537006728646506869869215042320577105716704969746779728515159912214574013652933555226538965028448283651276403162155407890587321503409225444069743240368107903844709670954686490530064053669760118268073032304690480318710861432774948386376276090335374317599831071345170557448561359182144597839581942617130711851128215110531440563964590243214862878983011443762193528185614841838861824196569077819149002581728639730223327636412407316522240033363364304351173504966838852840553327841742450978088707106065713606734947140735137513878362427529769874071766107160356413044774429305190162357765193785128762193519363366244388088439332362085547292176473922029514257178783172502407265929010233987195993352524179614389032021607359782471456024118125723459652051674763986172415719610299964395448461644800660628063530066578922533301317282669468707572810512186682742625089677983984109668260488781942115938969833222588507660155384698499242881490238064448734734719406747968099363459778706282468583523831472555696571956045641401599314096721467288626410361136289323560097423260269711213664886670028108636635282181385162368202080271649759264076841878801923551249416201404801525831715389420323464441885228130431394626603095772936168101637634328005627661262116445081433827682137435105879194093041433729446219003207883865840412224602860372989426626700965954043706936472757025771985522295995130942835416071372827864309192365841295014814266287558107963999362992496571426166572031210113362604581487282815971870000056161232778137096980355799093872622203402098910440212129933051349291892045470311331699636502073920716649486009723034165358622788486569911148743581299543213299791664227858814876960558635235799938854977455078090340590008863961594134521536402365747932283511109750711135169411822956550188580839128297731341326687207574138645968666699551118979769788975988859427558660624673806224838196452967242986811956763704328987292473028163285631535684894131532006636817399928469962890716084816831666733954293320106267663237474444411739600238431360471228096563249496900005386947405859493282817490527930708103229266433036134805048691548015410746705374240765963430404541737942534132946517989492434373792867413858850427870865227084519277011727658090578180255361534186474250329891997437167331972771330163462812145455679403259448010797483284692115918946555836376138374832064653182299674754113883809369629576908732092572841053802212469875224951208650300011321679409617508076790056723425549032653883574820087304283763836460797874851594097331864817598888498712380610898473347268213345803325078142649604796770871020517561337520239539120969654642765150877916205274321960183803990648204614532971932786416204495208335389703810530251742042495025914608681942360192892002706248605403708142060071275672774413802196543080669716604964373118227287530059656129052266780166114743780158666390931698019546994266971999445333452510810656661216959547336735609701535920498161609906074384272126569948454188090049680439468155732245637159743208164928186350303324325054278109817251350392571877220802296366268779748401213580097529436291635202164617125678939108969089586540939644002348866731508114355437357414041982415115147265659371702150836505979913271846939928000032766730456602053293828348941604376853062272937725799402134917401391541998367311396096833345623081356427073505140646957746438783534320591367716030774302783036622952726840686280634031570670667691465071548002817313280512636259251053800266745317500229155119496611344005272452167814096524920541237069791643343473457059830243680244905897122095387161758531251187196512087918087242386388971708986816735577018454073258149624751618979904483940429263950381314508004742772918733803171690583722385731719875442601390290941671631632715102731104952602621527549675251153061625245565219676978852262621849415107208142714277400150800515208096122616933030910635554436489319260437122189816713506958420531028235190109269140661321569601772843831828919836931190245681124758455847481352343107996176892570309731324249932463418676512520209742516426212853563268984518977159455342081725733673831032031997755490044196457818464093732880264966841683060245765029354000535547314047143660605281811695751679763621067602961043280786767967414473233854022307859795068762941955679295458378676631088210030452318361948062644640448683658196623901812828536072365980640587317219235517629537754378277903053889543577418317128657975137079494957751483411637181478480882284333838698754505963161523199580953618208947178023767961959438593200405996871970138670756753920892375076084551729722598940079982477485539943149413801351521441374236918261124265916704104985700554380020471871399763782706548517978281083849776733057403003215190081268056174074669951636301931432119875839918250942327155474170132979358625718948016904428069450635051570032916523005438278205493068682157997903621331889757067492190901236359160628091825299147278218376999498404742639127334343627649440796175538392924407308683730750562592380497054069794594102814762471001025733482517647763065368046962105149016755449371747899043505009401780110311286994784689391896824358738411359765823701923518442795624412140081786909917226584059035825822678036124856169372545069395973584060207853509517465450600584503899179656997710341731405582540735097499292085741886329849890379142820152088524924888587001595547794510474418264791105494863179950153940948429547448548906222262778888894704164125146308820462790104041165285427702353290427799482819219500175297016593514267666870861792598240435735392904564090191663459801814668943271329474187931869746506056393575927302079471728065257951018415319621545550302686886458423752964460647766616397731467173239375078058789514351342774068178675202921104387290818163067312318281135983390493525874263084893178094105877327909903569978012360231152816002873012973001178768015152591006270306396741984263959276839138994410528365211612335462330139262415739845453309198606854074449368996417530161941301736490145405605378339747727564917209297880039517522471854037659131962498707696361324326551152788428759767802367007733236053472390339736293099512325829895255022212497299315814997067166444037396685050379833477218276052326060993435546550599661014623350390869426099701010588881693632891873988732846312878102476526683094188503263339378238079314224651860496893253206197567362444248569945997677235173149332877806977930067873524151732141567367718350334684985998581916666038826543641196872361707482317424311913472105162491480165069394283621017582944180991972599970300513274300127817515234936127623488681327634299739511228162916402754690715709542643264905185816289707770027847501760281516129099009047108077094083138346674958117956426662155846311361330641231132873149745233358084751019977463317635672208096232466135207028356082283388190409695730952909941156100669041795226330116121574443017419247741685269080270297632987761123421465912007147387516542492329668470082620463554938900044769501291676305120615832426164761594720695562384912394015430713375753665133176559077545102473022249017547682673200330315561183654551286301495765574145456874715124979432311447680769304197599523635382252099070670933642011799612119650537578871248386441042957347982973095789198933708209634939077680264741726966163095935104379337983202726243650419468672646312522495670032373224069247879961844757213186118026758551505740306531318601938549467951169300585047924090406658773803542386705499629821165581358504873260902261893792400674615718459670552937248545677084737543793170716973282913831121942161706293612862553054642963431058906659526636825333829849783058073548201187333560537129738339462806431964769121521923932715782329598006707135541977868962865540392577440994009941181139811737589435302815730443430569710723428543416772899282175065143155337322834309423899898874551220067961095653963133797311045383321876551534753827587830467723587744779875419058255487944800939975046980299026902448282958177531069015090938935807734090780599989769983526976913570924625789660650401690783786999124382180314383114188051794490325833672452316696093352299667506977604034649621221979745384883854615141641534627645988344480998402410927498351129683619977972090825542306062487437951665818001984493533869275333202348936152813815271405048620630624632435189859363122224916660404537816802681666134981913481047339823526634656683595418081871819637263752964220728903216212478596068396213887352656689290277571130557288925977119222047210658961993116677759579595776683749386139976961521491422929399140614735874105471123115117755084881724700569491481883013789886055796072516853291482194356256216457868512448905560620854234826744367582286478646655010642579958450900784126630644796898026947042364051082115483723891480618093206981297119338158905279131632842134148583724368299112096600532954396242145904743874741849097512892480109596329853486193586147685965086374949426865125615310292163696221146970965711661775771673100757390459165261747102910264759265553758707984726171391387904039345833422930785646872554993502118851286727213740846659150896154788707851449368233614513490353998468511642060509303440975388125091973635602762399501943586509931115646462113866862211222788122587364488781960767762432208456703612851716791579722684437543928032641433791639418006430114762988531925073936636883350903771044651148645662988426167490386592391323556982194175443326993550276773194449464786204717687301444811785341626010698985894242972017563167157442925752972355772325927475465614018941829627978144113528848008802949847940808944667372050368488742648773880076622822296453350074744635153078027050456648803550193604596613310632148169008448906140399325248193762022838176592637936871335906546805620044369137917525365768034358684245631920174401326462630439649276379867047516029998815092462310617122915432315909277466103700156274811471529767450459911688266610225946176301964638727412916245260834005766578489839314224563684444190990966388101789474102325514819310661532514271279393407030179600673666569160036623497909691594432066128900504050954324382210005037926935646946964040994447536388196061205586187194970661118559581054247323570021056878859552268361383777984890602093542618893691829491227413880340275277887289088598969974998452223933979579963350803712679131642212567546903288986528322985406433739923489265050197297181638565923700571580878720229547401728920139381962331433788157013397605198716766383838789138921578752169920567890826449396795513657430124049225063865244385328111451333545874528122066373352887128002885626827273930403596812432400572215376100268521452771270466854310766400263414308044103204629532845524973178154188471000921296864426358617441970265266366293392288646888927495090878190666105678158139642424490257066905468828859795310159082158305620335957981516780775654581105968840635058114308142691882942608244089938116690651459953818062753726003965197496243314994145436277970315160375735295563494275161379214358170396632361061933730528536633053136959136364241840991425811395220485674607802880482077912937438405401335013089840849869960669610658539388556090133240608442172327438600495294086345873158919884907145398188918478779978938092559570264999628573428959293843382816864301556312511448115308021038426221960643417924081682480593219986257655313796956610101446645986177108178927352240302348238650347591757742256168746484020971918386149511391197266627546384817266100863886087987116032253512536316488821057464170601454604031073891456365939095846885120731410917752186694153716108878964654006222465326273582590864056180280878814884601854021194963245360457347266521638805505988733478473284356468573357430159910757792622658339289459948867826622660851430423844103949591745295756656184068397304783146795680049990294366557553627984514049116484188946249657713601625674478441743855478351417680408515400434611711000046810462859660912783414169557594308500321245416987371601542655480947141317141525607871262426059258431786452650444502417451876011047348448614802892839979871785085571901201903038593072948750276743513336073183591529692489495939585653157011433255767155816598200125991105994902511850445229958254093569578247866774296394929792226655755821093081422836751958786874203663223703309923071235711897709630894113631757316986895278826010009648345741773492658251328114128734346096089745026632834706272566083197136324920543415340297257174213352579176741955233062121405243013706977251882713896398617111193144131266402310099054542269969909486405954450818728644739904499095508430792266610791778348477873988428570917456580451086203471350703724369392117812835962920061353145361467621792420944999391286056353403738813002528937691572411935391888972264276092492612671263547138996552243796365526459516019542329159722559180065204888097883334902756621199374819100911875404117890253558015617701151954557499703502116193648129577629796728991473304456212411587057021197924492468123228964051980274256293292499023364784374743614029958253324772452560624582722851257275363419118179931572975061422252010806884901233613035899640443182092981753240992931203523589585950561262341873776786024033560120546479847158249015873826654876011797289765795679125108025541787962106429856197092298211717906814123552304781771925046934320631972850865973618244194387730397030677487512976185346905292647653116400490031216755906723000276690133332562267351793150993352554979229162311679716530537393988152488656155895396970362633922219202090592321452827330216009779530953812902413834579057553513345399590459467923447451668123031551468044165528472186379934679146216866206776827733076905998965175874555729169194968373667557241497569127291874179384964214568450754006927348339801239211550214170355942235125131462540104500271783041810971707515319014622437871382414110203065163608404243955839757100819848102215658514618862627975322035605305118056953067171203893826041944611031019164665975665951040027815228637784532809487844396565800280027690004885931268278528158649813024917185408186111643816851806664126317941261477127726289517951919415646567425830034190280521060129797772407712110719803145724379479805125024944299474151854335239908444937236331752379893425383544767641655032877423571134601538228814260405804417854378584694471232149598996703542130649148548836379350401161830907042719172991790636749535474436884467086835162649326338614829566198522130121940754278224838815928758214679868077298120897157059450658617374241211969525978521804401393440856919853640496841379412777805260929041240048722552058682642898485363574319152770947668420673796505264364816655311659818501201360686798546967864720208096523637301618044407877548611880129311199836455832294925900128026046147007639850783101077179502146088222480525342311546875813725583213722299366732103423515104934936624369251063572896722260139084025860190412829924705768292225822372388296763221819269434140030533212490725439380621821339977126415053758933584289126045085433981923825680209956193455113414052423745605176945195202118552570295677393254323641164662423450504238940265956270611359685099287797133996149622028145430170604575746059581971074220925882301272968440499501972595734259490312056547166299368870970869837107665544015101105765328034535471168726558225005079851967380452570388637151196547219502671528819473401982308017643425973348863321608030583900222770784955303358943049973350214456157939729562717674206338765328001395753184868417404938245691985450732562309469257978462677716700247705034743836674734596124880504648156970923972770495626149064908387549612718283289162855640955264169275369930360824314188948648960985995008468009609025702621553887810508256388296399799184423128778937410570417404207599622124433529597323511913609665090193015964412015781554544789255534616798263964283323266381351114098524661660169192791638822754969395071541439526319200569523189507894606079091976117911588746173514119396425953066122801199320276420498873712972588012106492140018476566962548768096719628897052762859352494489626947035630115092521966288148458162855329398486831549834837650760384350862307663288533955252725854508470281809048657251716765020177828264472824196732261955202785543441989362975071970333983386311746563888498243498298277727466720671144656224585864370520260203410607224539956408240473279210632053909587977023377486964971677452065141408083239205483265233071529283931959000001262175682017397689538739558882861191024252178954592139106730140199166070314762105199017088039109772315837423051423315862246488816962360947941165726519854841179792255571146391748479826624861482431249837499144569417753269683821014062039895436818866759658210736420392959535300423780236255828955112231315321078998552142459947912606230821826239723206526101880157153705907935427241765253168337454554663419375182271632845321797124575819713293049097441762414601543618947321917926640038475597797635000048412530672593393104564682447816926172774048946915313875919447903916404339717529318009767497910888194350541244579127027108546798996986347007710634222478284410357533308038777086459098667244344862955802671713695394173526815867004564437986743289133011548291418290496743880886217112498669400316132419593871180873451374971546269873501134863486600733271002797122231769605798842418101943494934056015142376878899012267706225327746515929013728670111375206165321875004539764576208272605268122326408642504694554239394705386657724888392962616349956595981050787915782465279610529289980431371740759812488755221844180069449727383912958372801462746358115974899327135344193902471185333541386046944887910962017496406388512669411348844723340517875604904111589378728075091609888362270413763372743229526176326651359214501525932982058126983227805559587704688258690140791019546713330888077708514578352554161037334358663385870980686796743056556336155345669988399240802246898052600255040335308094651648782021748104758959598653603847978820703207746188083615658412378595920960315551668113615020490008659324858989719791633287034316314193525403880450171680781072875172332944840605107315217569533323797021466815128780366182766484033963512015473244425956962203492196845936896939536863178983275829314162300174414594834299893356894680529415011764707699506710770693889227396971546184089544574161763603302241092248603330534876042715534732433321199915061102014033328686201668361647383784099513750319885255046686294368079947520724829040782621477001337352079635366480335741618583064601536993440010585110551941794767083832570894592098678513768739118978946705584459023195432678329623067024797211057441661351028865665461004153366319568784336066911385196571008046009478369943046273784965747772420404686737166642613109988453043389451959665449659930156995349503503041709757152652047538147508968518161856571201015319974069504299873399616490400058532288690394496841355807536776059002336952164669665195654554218536028899381779743108202454656131713339427198206679478048703872753617388286911470938710314967257706025612376479338972742687327567943088071872925615061142129218893684761312642330385890603659806862846337062097484649831632052033866038647414693086388078754158043517064033724579414550060558006299500548507342331757222910170181393225397113611933369936023489704303316599943801725016555046179792996254538904103991261091930065376363552812364972546601510618827896446586320920301380108403015371378291800955165360863819402251293704067605827676492642409373399660516062378846338554321163380508323528717087778589489722623209472444510771439138053427528664033101677841661205135504218287198516206185855861784729474430870408661877792430682328977844673301272810989589258176103662280315606842056069402412589270035275397331289136330572278763179245201307454771702310342583721949778552214021844613865170894445394864755601133432818879031890926824052323103054290592119250394827127803275478252354039456244259720356634289873177302956920909266560316718688840437996824028500058522380105507987664590999249515430931880002736055692154687964289235448806123950046151942450513051965282987156527075816348238475800483618865663975874913339413653826042772031057452969851801125156217425172591752994675655517002795298089627510253366326053314460500123854689385956727824472194862399412553735363145536561468196041435012415574394478727455706791569413608703496874862923953869528720497843667641290544850063744176349276218763679270944266660288563250985857079804730086921641335994945291282881922066360096611429577701396206457666612330113678129554622248634093822319020113850670402282738081801563092232553185989007799009529801383204015668498000554496980047029926456528195724857980573012896332943178251975758508110021267836208452904094546207495585120476015593444647205522440530125772231354264996879278391486141150848064330562399936558565414759429745197393205837689537948821077215671299291604667144271842444684688174339667118032912830816337856585066077838432556928175445767395360672624853041781416651547029856172566172070174865857128447883275857015968698471701882322562706180990936294113047377007992718977364069170587797425477258107668419730965663690550140031469259146535347436101681077134248446435899823116399126574802100470145316886360701009976829200538706450609666423507503101124841251581514665399247109577055630985450266264266361884117615545627853757817924030029241085707576333314821900917251823849937567182602246643376354233449626473442234825601379494880079060120087093132701421523160764384007663857570690961911054712921315328871626860406520172406963801722689167810071632782500688188891062062786450964454217589761111022251025409053955389032744323733705109644378308940123143919448334561757172156352478222397437042837352480444279352845003632038683858967249999143353391820451594332927991825694261916218623437560966624876033856777365263311565295426530197606167571425324326137237337147698918383296396573704922901797837642879444963849731972435325648393047766771648431803642545242610173744783298928861467415546514186687671004036340994012500152997087459808905190677601220438376899217272024250960147786193409774730453884754200266586919491743365781485389738391186117679981916251207650059113942199285305740488192015350462844488149116414810649842246416015461254844832877855544400332295267503941066145723405347927525758826439456285195913842573800255880718943418454816368007353044202270071588942053207058865831439540590528573492144367766058322465310982322150563211239237817710638849674211032363134416778610972138331471475110145165463062256065337324952200516300216700333524821915248287818924110792045083394096040209548468484470892415024048099648349731158817722655715723934332320521483585994625333343690276573619513251141164269464198586649178569149398758115587472237141149410292177597625644888089204801116497369190909468673025524669996718863080291063765078366708458270816974239342373834953878115455080097998069153614735960555144890208287287005899774550102915702445267349847749189595973704667602204278214468813227875042028382109663458858088037739435727591019989907991400170561369619467254009350346367705858611717981495199084130348062640114826117544375687954000474532280516646688946912200736221327776536090225983324213619037719506789266955498413281345314884470246602098217495644418207675375100247991239598204754190215269406803151125687866891636136287508190854925131615322479843552209488399308761622118768088411919521370692452686204576563621019908234787199989823412420478825707113167749695137312691287606226121756227878008891198444640937574342787171839773193777485048687281464486214209444726391063798551160201716356718472266770860266577025922682580477082047212364887482075210008724025480024414004423483575367542219604661569720136910457208314813196334628104709161326873024139388018800695176897543033009114241125030228897585102196192455854689169537467741374669499649573538620334527327074925055166295563115723810423434873820148436433449940060843091983648448834715047177947564397398867852943153359473015218764649914002927675841017856329295581558148926104761941354969988268276042954085187909431862235096097067336990062226231147636075602592788117989215641747526401142572928865617289019066209987996148382325457166109193174536435411082323180924376026260846711816314905379974207842095908197183185945031553699250903607190427396921968855756405104747172628608827742106734116215823107243523118005907707988711812571402913976234099707750232756648568718376598822666364116414802647269708086867054346901644477080155789246786045883903285580784200759105632317765380129887504532088645285529125150550667491892772121831486537972717007633215830297254197596192142926872687502441531879192197547167386395977746204045025438633552222303016623069675225699165577199697429752954349880346343914959561134599209745345333108933811544907109430281848260187227531529304884646452979930756038593743845386174099999895435423015768877767113474223833894156593042704886464197496233159112439798578663033043808264290837102062414138575836320642755901567281623367886545507263455944517657603391480402998798041697018949955764306771569395173137722952183187689553890316014260816497963271850002182195088009592239961600023117593252043379023424073744512552363782790286929403690129364480154522514138256977036830906788765974007574382812093586386578655149218009839906906817676095953599506828895755185311343646141165960587483802797838806424398607486557612580232605626567536310182632171689458657562160951025965673604354144041812391021728389575502760557892487110833947377417109395235904092871340335446798461363992781171715137753338435721155754480420519413830590699958255678011559745244393065152117619329268145898900939947901968721171213776647470647170400271470196506687064427016830617532380577056779662173064746949344305767210392096060615609541341963358737979123886458153263205333884756462613065367460048342195847704420345885208861811549737798512422973152493719344837591939498391784093164687341740679447978585460078872582334883390847986098743619723523099868916250267114170422310522461820290965856522877369662746856475575091513844763991200768076787063491588105378061704946498746127418163112737967699661518005585595929097698339452975754521207110473438292435508366211307784664873318298755734798584156647377826034840265356142840935690225998562906477133585548017261604695175912013780782849619780029490604364497564037516598510969509069588158473897775776766320625889423824333837424214387892896630711201941228141575397953126329424093360598028470772771499873395388742110980982266583487404790840967597714022571025209788275383431780153748233032791375514093892165928402270066112362730545784483061499830164875645857700426914336978875180213074453825060954756658192825499513192859885674855405214360503368358434331675941829814129464978360034551768043405799036487153355200684945433404736069664955198639839904838624618682217074766746039790439999404037688281585064005371660536473693780478202927578006538699561042116795700549618441950589906062519736799782133258046369758432915929132186869520005423420045086058218259047576168156194483711276600332428824441166840068849437656936130015609262934806737520851837660849969437285549360296005217676132662500862048088897031467227706546261488837751363194752474294894442767994443378998082064126387339942703849016278025860791476934078264676162645682181400768227976260781162223454331772078534269106997172196159457744404844312566677535133315977908419153744856727989981849408960542881743387535336679233274264081695294413386419478669470285680251376414594865804140390611486329444517067606354755555670603352145305575742117245115004434124678671017579681284885737599421064042225251864928960929490229299258338363449761756879523117881406496397009639193790529908983517124060363183466084522562312605580060342404218604846330289646534104551165491111201640322539653660555799146329183288785095044564815050488076001445288769492459327518461734564526904979762402261511281120782682896616939421609073184212928863487203242522280543210560679576570541345684360378429618364619545433745943532186248971496919218171225861803923841593261322202831524986545586557046352190363732756603257073812095894631743953623506595636237664996435149440086657436865114206809619065130850168702744562244286850115624249967139158042256918180029599564235476283625091611030124276571021373586998690147430806432997857125049095967415721694993237988191814738971663925632808091294108077913040406840015305134533175305530024428946930205394877977546127392703606858166339047144990814385940578132652857357429951532478472324080994063354775252382501156556947042917479671312907404740577730219410382673996147305624504667685470452891540223249277141231172069645378610839290915516090665426683688009214699617542587813105553461037126211870434792888684336382865475629837450283511046226424714237705895258109812079328018251511169272541060981862767880052148478334137267737103977574923150134607328747178706672111304276254300541312033551124388522382593598900495113214426786511158033477863158475208552108051614172631223303461387891225836117643467096162269837427779513326124908065774736900456815528020438859159395701798064062167439041692026060640188167681411878666707066286221550438335893347874612010622318557164384087017235181675020571115523736192260412818451143717921715893984179870750743511878736881165010980736820371466589427021143615958632280106009319547437556649212098901607060519618574626978973948630996337015666243820529640087697553222784824202261223886873946029155864112480748765286145864521516539295618065808220693602060178052622490199581767192603190993709517019530044987509775376261447946109726421159538255754822297293795960222516677887657520205383573144302717581958834503076756581370305797106899345034120249445997904335544130751716827240324452046354579695657384644657381881992004800339935208894880915912368977403364429037542991238769841173254478278190596281543813803068941363395079150792910270292413842018840454075232268882539619318970690185660363463685285304857877747623930490680983912709016286559682112118417238229720580440083154170001936996099523871185831835733383283814984761243065856829864097398314693891264631323584397463642883876452365135037224784409891551830998732639296392856372498808933264675451787107483768149072068290230128310333172305232909370926655366124881580247889130825208857966591877189328413198119667607176872739670261013141557269624965439642226086060026755817512408965671340812873264184758704935027103199232748209576337256873112609767741467710181419185718143598910878799549856199586773803019145320253609399429418936667860918572389613760999402190148949620528932002198225068759145190772996792582504447994762527533153806090779090851686886076706211878436739597215398113108206139853671996634469096696000532210612201641195224289743733220549928046820280109129099276918652251635047857337337106469527984057218023366693911210800832050606500645309030460883952931351911325335996459185724157566175644523175138632352049545367358371032886580916497783325629575561483765842180619946150931829759846309767693049570128748238673954795238524971169071836367835998339027869091947889616278812045783564026223897292861086622118420629962212570385156064034280575111705284826908166906062621914855819456443171041760779006482246028719166279574074030578116625329990859638243895346730272502565254458746978144158236805042762510251907609313556724671632217991254972791074228980260562732266841865795049065056437807580694190031606815599444927399679538500859952121246947324473459447355876822826583996790693501356421436272052407665382907861641968146099664560292941677045664778578730833917069274477906393118675392632290708143490030148717788165398269830800114379605824658295809339887077917748148400600987002238202024888224004943674220110812287817677323988177001400323603739168660584675411886073402907618842537573548719931009852057322470307909026948374202411299661086195165717054755993057506193472326079383594761673309373973723773631757047504583390071819247575660529373269597660719185093873909568199879573701441632790071747044644541375571133915557116476720173349485018550512525927154161019625580932619224761000962098812081030951685478508263837835222418661057185896392033877322597161374728987010778331140581353586400274711102386531717300265326057020729842881772418128775047288466484346721781536576794991864234231145285855659102710854547142886012117677005404966004281394047068227333067205415472865690053410365543354157757610103970983707497001755950049145901434791780628032954488016482860083124801413181752542000557639166980336106307158803208612434333724015845673654998884902420682400316409950531993779957243648097882024134854596301070106832462651143612266778657729906831360474806020987804690767455561755901593981985562345404231354360170533916829998631074062079749630245667251295366201328094370605655630087919476475572798902699145751470643589136553364326088290232565840122652328635460902581620566369408146053284802838225527165764647289639741875576213037703544415058943118326667655373362012714816768216267581557710527754601298740747103883034075279870134459339752228314299578459210390429990140444413410069625602288446735329760650575802296674643440029087126461278114367435202298449743613120834511942509814638687866347436911823093491734333904515519845051227814405725557888384626896748096220530911840126020524726331360858629555115411087472712432918108390862214725325292013957633831300982250313423534879709625119552640676229434460904365251299616119389351715628201132383466843473091314107291487916059512969553012799164179772913587762223322501112109236969597402639027923116973557850437124242448061291924670590431844616200447180827224416467553217424386136519151036413989430586233041492707828002116116394090940311407007653042579640202448173024960620311818443623330750840054285648730091439308884702060721291279779468590566608719701514150554609806873467424827458647340557013474738924922453800077073196599236031468896221250568469516948164698200037057763224245384633554013067189319533273248578489048185545054698380867619018349319414301794327014174487297081805635718847734916147215897085323844710531674396536877830206554334725833901112658877259539504145467486091917092168970250326727564626554973171938135870577078112544161386367903062906916707027053696077994034883066619730130749037067494128803086708772125043991857031130622486215102572955783745853769778582450268729116574802889211438992971987874481260801998242720163850494889874779655663330636739681867903332246794555610659538615476788210164631127109750751880156574635581991539426848067789381096266220566732133054561545764614981202711650294588607867895670275853390619710854573572711130522242826041345149554678743738028418248251701798275694305460817783691254485768541782701612632979701269171914298461841455270364178325089659587060348362493107595375142397563420435224374989262472977577163356492279665268967989012156217587669061620325260576189946266780331871093821818895646024689015391674460394188631067122784831241344460813517554712057747163254845045001674038208915343402057913137164102875976301182968423061706579463655774775621082502120389013181434044983565566608626632428543946850805533167916113147653016063321246620544415528654257186934911520469908682702799308365736045422791802545667284901391705780356372479961977174407259347590296645834862714757491907172227093561528796539530921008923196258706792907688318879645101794463392570238906049519667955375900767121371215688986916083618644418385113698461970560879124893099175808311436882995803789405431133700168496215611859606792358356854978929259915750787467541293790643576046660394338065016740921974549798713540147356742917705024958779247263551531976058708051451869464802673884870947543783483836140537401268960342763831522364978279527054621697888640790482848069157859596285571969428240816422387840723641622690750158396405382748095388194262944611561127535184755288026403319487222198925641797752684593884915604938182573293615888556888224779094249990197808210046990615906762745055134871077930731228391780608240041033100807305099585991232509788195236366243144644431544781967835860677123265150885081386358820658328362792424784717218205070109012334507478443316632321567367136099274830499246217388623401613975349137543022119586081918047954753860370201923937883185840073198620115016454097649532152536665681293617244967356172580004771371567570189738152146195511108753778117774134745394912992281605145414187103120622061999851244154214210255216842309023435865412634245492241459867482257674745332388449009793489260526509116900287485135262374885921686189763999101072546957771544288041446555859835578955965027911506186229401363724465198221123769997002126478365135251034482734730548947697611989655008982288269970740763017004465987267459737955947715607416203122214462621385890193291641833163612265803775388862428949567434161114121240780594481254646646755892516055185320943217580408923744399542460908839681389566310519004944931937141201444079151585604009203625091001526374494858931267787879646771413510962983083713903326405926648718938967659304266115095026192427573463309345960941737731336532992721378246828293009485293171752998158615786492840164623061196865666807989896383788592049746153463202787531251610843328194162339855956329720563851680327116807415594686998269487586450161133751837766868557766871200170383427063361993920470360501940137873733409096659952276499652612248916578463968110599440528449952569143982563881950345520955401581258548055387914669381514320072653969750727595726883774134895257968490893453086454826652430113694014016597233278383468535334188069160020269021962961215503472587619050650098417395601404020695506526657964187058543930219403136237391615588757582760372496138796033718246352832375111787508501778781195003190652098155648515326538417234554325779330497450571574244404630626443583159793342116038551275545516161992953361379113869245775061257672448186114710465527318821533893930279085716133879029768680173431067425914936439414717762042471510210806307094012094753004541034397661563112286092671325906173639885698573517227650214828388790875495688029507863507613636814090338699208116981714839974815666798624251505306849523461601694147639607915397198703813687806902999651711611655207773878164645299680482512621386340220347106292326475664207378885538356723272824400589138702902768551589263794930966709668099157575894402313720476928267492503870710713932784529890056868945215551755343482985777071791172500818851653657061442656392734264754180791605568586602932779268475429742988200671120991383564058654555795980694312683596640803445535937771656759028542650744263562906401305449093197236490755048189240682143820550207341014182109430980190800077251547269399991217080508296819329931674549901454011391242697484415289478835844721571465336997076864777997971334660553497879605654408057464051458937220135300944536197380669589993191355077372855247316319754358692753081734004749869502711458320981610421114558297811019555813998261643850909579694672907739772305198050258741238122231218499519408551204766999673505620472894842920029635896059732763457114616342391615138280988287629584502091889713729361167541248419843923606666656190542311525564134724236100889445647724110466009101351353161533768747194766867169695564201104726238878865028588871368228132717837812315246620877271947565972829961442877717407466542830925887919670023793251732897905703359964992055528185822597186682055895563655883154066479531971487899177816522926803186614472182887850686424433679584461213400569522232568969495735150078186603867563660588148278879425049416178079999197414599305051308160885420861192688763530052652702842306473227904087277707791193213715877658631984916152849003645672123084143645228784355771201077052072674114811182734976886217232137462062635740400654568055489867021992507803519329964007142101222171634218374172031735900405094055328569538392619020201145815596819397925475380280831624904542753369745489536121217152858207517510113773809328543481507281326723867488514211071074574743157548975630489960473970173540156931128516026930527042207145763709036897978207879837727188303252805679490583261345700649281605797576296241535924891057312050918311714380742667865749564017710171184484943018306259613370541408763649681191829199115176985823838827606067198423766873352438222481060891446566568825560307069944565796785722588808945791654803073938273153386185207547005742521216712073528063270520388959203552512363461395918922436861500400588844573594567781975618123563807746617930724617734868667953744041105967291306641051847735497577204526585997760587452210589534409383908599879023352573031837166414873531628434821340303038826582698940776326693389727625119318018435770497834373414948737391618841922908957645655152845628980897992266432221165868979778538621511359662618277229438710141860181144685546439186235985003496121736871999332094434387418340007471168288697811883344509618988758976046723465270959926912844105613420520474612063923691884440783450353533186709415453366516345112942405954716267132527145715949918800236447247204757959758010259972838695060898617133260408564896436552302663615885803351069764357117109947251272398546273280488834650115055795276928191320469044469522827065163309066999768983154575798505384708988143619300574154948468125669328434890857659277171098592121435438356984649817965507904736338359065810882831500438131992431295927735460877647795275148712878975429499645819874949545803009777321963835640075397131805462711641653638070310938956682031117101074278617027979732943202685966779570980012804521391750232895507157500865180757496536210291510279508104450793908309073095391103022291616262196362487626354541915410023715831313986347381598659534296325319126081143455923181646358360468400560960444539456330814700511122792349214505120214075925833802154974383863988877128176768231401943831733444655125435009773765368976082977514956589582292001915908102485411620394291799439097136587293270657076784341966057325411913022991526828546762183571639418255675308738565642781489238874351932360094748538326050888944303848961886296325599969139862004937359403454512879568807654016146353602112328618587522632356591383416523834297853490745366397180951323276187177469020532026749134314566617161753613708726290378441113705870267969603001968084722869128466634060711107374254847376476160016575211673564072269862119705921887582358067453310705518381264369297360828612834692122703973707209557115057433021134941372938581486209981643265793242282541955111165139828247983018045803471959942901249820728202006405689773960013948144518186081150784233965419231627073834144185339864017722195410419439593652573830561726252045298244774333122017759698586449256542661774557736127700077554953482809036823734672786893679850217904075810217111745907882946043225531304718954567351870620046489846521884155284989789045126643259258134815125994346493822654941745656249664056412904235818196279744484071411758057781738212375249331238157715378122526157709093785503035240269925649696612026936990874265735776080383371575313881046446262809419162074843217628187152995680429823243756192370422615277879727668766813838520369869528824573184968549377499962296395000382528086097618243323214441311035267071265833873314553593832789353405538006249188423953756472532353072404784050003029853150762084936022745370530578392963868218147925688297195771956426419554895538289877023058192520565005676933017935730542638497146090705975980455819383310471976102209001151226404062366259915434685264344027746168839958007872175997865015832533459471445377228828617382280284652641327526160250205039663699146576024062462452089634829913619983177378463925611168911786223939663764749921137691535701173314631019059148098407902033145024875083727550593883480784379336128895463929727467163214106282253533979561225451653121226525430218400657975323004343226676435717835007741932067611375398635262429229828547414483544144471988823436883515639177491370020597318911683664760542289995570814483463036866712968362811727446554395461728024975940082821601973554120901478196770123498875732979172692484368998545056642278313477333294839167925821960868179614474072269405524248527672834152242469572688260211529358410422926000221369863240902838200876031059471404237021274319275643469591133697389767477302601947401925264927238218364022397493354085253104525850722236895390230777982693532195566403764591405458443063991301172687133813310242635400198322967686911322133903250694833980833941591355441402361039455410979469869235682396996916391171162538851496643034077679166104507177553962170533959549399679691476761583768769104502239412490881912289786406040078938072365879322545426903790275830737149982703685743596978007002673344924448049577961117890893677129230601429672265080426531474998535824774857477036657217619094666052958980656416246247158194282277340017970295175083148802580165627381952056565534022783352856863337459916665538998130502816571421199912279529068037879992809257432589463961391924224775111535422679089200258010092296456071827933653344045236609079603632879326085149493300763427515473483336690350352665851113334701625179776019394698806791369594774278688586919506728339259422850527068955483433289045714941620022866763254024091512915420487170021295279800088090713289600118425151169201128747333627366847982370994595235873534412188323723298330939019439512297761604378514268275536749749224236392896232421072579019666820183696687095703622983606719254332963297399553007471510286675731521019764222798231117148518702389861576229204871815810863209622995128919419449652558187541812616298073947564314793065236993430338410068992450392073453234861590224987132644785530404065101049996164421582867203714672973356718779521057460310231859712576259098492933139117958732866582348167511194800299542173149891094387249845313669893086117656012042865273569553177638120498701457966559221799901074377845023078564646289457000788886365731554980413764508627739765429353345702113449174638917754311047337452406896173926037413276116593690443036351358265479638103733660808930042004946649344433826978824801797643223647690026577572057144949733716613489564660834860978339407307840245085600214566920165436511360013357152080115748675372459187672011092085816859298966771976236684269074061117349121312343781722856801739418740049194896436389643241828998000369933258033347091469362876723736154812549763332157641032931248110305563889058106706433418645503048514287899129602510437424800090508075649773181823156609590903867846098559871574718295066711824796617175904900846908130357071942974038719372615720283644171043136471735788361751105032204230933005380449695446119519223392452621060595499825936567247946233520323358117203581313580462907407696161575934018955468504113261419323778090454766574059981956515568050642098158083451119753218834742370812044891533416365097069963327286310479588632981780700601185037518474105573598217715845647788521160733972325778563729415331318539118912415518008560204049773654256146845109697025216488504872035953838389976419596223431319339647721729952193265971713842407984942014132315556569032945179916741607516038040281102261200312648343478323154745654581531368830871511968010113645725633740574564881069644740549452049954023506700949514897203807862775812483242618979759729982831844126430762243011807928525196487758508018646358703594804434212445271353678026427416047739187272193635853421325122539715852222265871161760901043892077744468609362882432733715521382977169355927027090603961043882744818531315375651937003884838696763242915080828399304973215840482854008895012877200277056680860771906056509623516459866916079573061665765162653156585791230899453657158906571795882190578501233090181493074819326793356168940803804021119893875547763803655641777898953234633586634510294093464915288106802848106901806093920382251029578043865508262892027809536592442467265608532967368262739132721260221470156431609589899104374630254167677514400697578751195876065619299724935929823030725630968989484082973936550605265229005930505336800680744078574480149788311429554066598477647857263937903408544881203793531780478421177014486685995404916176603186560717049991508625882227966704982866021974526678187732076452996261539917821359976299673403283098131801430204566367553720088715581148307073165322405531963756479213973245490132270635172221938538561306289647461533976302002178444557015943137975235417299534420332013416086837967237405310559951879223431394628602497747667923681003185879557716339820666854418004549648351980036986593196783248202621699225206044294403871173238655243962969007688544836649625348897629638512715051524522678478243940094675496885771318671889832780988151216266301488672079923410781455225165897482365947954016854111327224693250823112370153911653268717663514965043485533949943666477510668143206028397418538520974748654918752217379339533432852143212181364571270786150480912962170741301856610641125402966280436820990937886653870711237754097494347959980143506595839207141139453407775150473881733325664705038314801546387962732352745758040721600680404598417811090770529890278782693078867403926324384701049955764100298620031758734636586863523215071728543523561159421190945472568750519074134331097044407774091743142242494363125042434593967490133436688705863788596051162587416095272334224206143872310034375172051631266412837041206505422672690548200894115091803500082111843058829806049726248930271023181147013118578214688908902455413935263257054459080592345262358778833989911455415606062860951286400647998837102258497786885871500405641732088409922409496827914288431903610668968794192501019872328829150006668495016029761789358284496602194585534231718033949851877152586873473855041804161770109940985867496508033030199694912966613696431214015229142451634849247492694084678035145450461749233714368482590921126079352093153767487988122662833781294967179378714647936723885670953769187898034718386154606880983894105461556406083985427624273866109639900000887600583213282135645095678151176522039563838215951305812952868398503690762758531941019323495118103577118296009609731629101221396495254169235174417070353557903724360661528698415887034427579019870094823888227795985472231891925253875331196091552989566704908296505260983231212526547099774328485562133833024827452730025118341294249468519194194376464219069244358044666630330906692185650906953045253393893807798548521924498478447387079161492847338780421399798574668193948235669136563395309505220196658408459701709285761166752136373658265147549836326985493599278716825033025223957839691141932430748634511677055979773109295184292403233131908027531257249996308554757912149245726414232452614523370939845295869353889581911749829333107410132817779767225916102352305180283907803031559503866436823105165689558569655596565129517888685653842719843227012092274132991058988628127172214494681179054423601108834651575171815862338101352721740169109683933857891600569240723439244754840211863527274439907960511342654858285024176641249693287869618403223750131186576401596714109472650257717192574034749050775387032886957934476977107534602764028699949232454175969178879994481483013805717443301845211354570956316730677252059533580375923892110073482541039127325475615250855111803991515571268651547792691564154577728461462351950492036337010349967672087400235919207528559156389761836832321988933686647503696597677850532365754134855760305874324015892818242966416053867543370357080620030547475581735480114119186848196267870236204711138808923031416838687180616515499289257320070915632433304176764260172908896901228767441323120799251600755842676794004069257923996510749898343928099202495974590992323313114175250456738726113247545564750719590943769096883605165104370486755344660660042274570388446920174241546764217370538238221543599215065443295015267165381385072274214136582185170771150918363323503212603063003174963620847242926606109500778717966835597732692023056789190387659499836064034070684187304147369212088830867454659347928619579663621341893634503010322959188761385709672172211521044088913675850782533523243007712836111063284927568670635398147518426573817473618957529633907548853476061513462049417269957311702497120056765317999159250795938149919150090329738122812604063223175575211404065384075666350097302882818128520663849984524794353526552068587517194041689799869833648183727178723871478519211417450320873748814915853406488008047915565238143344669255783315354830283311713264090740386734637774214553050092326897598391254304228657405981271791818493865091192603935871151692567075918658246752427091252311073693900696767056458140715853671133146920134572340820733450210323267387660185640053960662529995386600776507292575896176416112451822409052386250598703543661996928312272726123593794029262608361308496959368319104292271790425170948160369878551674909408952083686981515375101102977732889294941202290731980277023361513013684289345389264259761322680753547853005783060414267986686153840033465324849874914043321306894400257981573887188313466306092539578169979363054865513356528828492013998948183647004441482217619181353729432663903208116773573509526813640110426609898166869297114102174973412663098691378502141303757753540294785291212589580898669595169703958525367005815115528422374164846889277345396825926008369908799526761728883696423622319905841076277268875667312331960631510225994780929900767240397437516388931640434441968944990626754048420164526650634555081108583941498454534124736113838499698068109479092149174104897551261804999672178259573949984543943719311253638506563095283302585400276656078548504038207188434124635529731099975974165356708876364252005826606017976191882707510318338898007368670067910024048310430539890360713379628686803870490767356882377840883767202948515007600845234924775223500996042269298597510463055097033918869600284307481352846273299807254724115357003895160549739846325953875101249988897797454897952352794333545288014599786272564257961957152557498821861944732026904129453154032936576286918101354075231339157280043775318399520909879707701407541236904161080516164445938328006782518785660991891117044524713799893350951902451221155228642176497555694243746298220740222842368117641479157665443590936245044191866245149566555456668528189508731212695754702905152832276965568016753101646668639174936723845710365158054005510641302219774467828519708038967343489880168004057912520631849740610350631756848207373565988264878218277717217382157918505287286587727649356943380490351482612486849574505887681057777897429751267304487477017739641728516900941046978973914823747447856935908787957490161051011128115041591124559006548614125012269393031510955089227858892898452235897959694115138866114815804188269141572074590111548557879023078859725475108546754933099340962867758389878772579772169648401702303092804677116914570205775192326142909465421228482607229842614445026429371304762289936031939478364433567162629719673146329535474711169583456146096961413199220273062654295298859784284438985733436495277181771420861660272371712840698506859394557625368804282138624598730330616174383284266111496277493715221454871253842118478037902872008225541457049938896591058487485332933858353672526502432693108218396191091243746615310217270535275582098253758823004693800353471159395495607348982870062797736057847084439951097938265238080464727074068475151907757579389896912120705857093080876217189674645934087130743313539578320062971034226010233168860221717218103563501030602072098499374184973867217183202780932692893149388119646616302539524262904240446954578972482521644512748037841455154168356751682123218177460456436101559363618373059899701236571717727814984243989449657539353770468221887462959468481790938495793523029941397364849907863098987775587696313876232808931674538201376978844104686285461414902083747510813473218860798075128989111325531429440198373095208224630247415265193356970165391923538090249821315563305016501954550197845464907292889743091898160488031067328116308551565892448280931953801384774272396966681865611062219855523981805109547079318314455750699055927497038911496663720207719472212978355777090663992444002083079910400251936596819725959848776632028306523731494696480271510307767689871830393090636065608562541248839992830192223366733100781282659278189264617232081535503959611437847525820469323277091403423812239712906645058142362940142869716611287476191416807093401141451915508600231266615969896660505442939439064862432917312068356286352296916721160094871087265099525001691273358798924610646405667476722191070545451796032812349921562463372468047646859140987251116662227448289333858940046562816680087833615155509481455375327323246557334312428184736061098965221583203839066933775414988153289135417512433666508266749922264659772183404457150676222732027077664266221982397484188929880182412738688698476192343523881245631451676766196730139843003375887825585117371219585854978184714884648482139305452180874520034800546080034573936273726493336663566909615591986438193397403700792047323003740166949844523192071248759501775889271666383226166161831431008292177483254232952409228976097409623088882159997957153147634455436927584260209357137472252695145119708599960415076803852358901518956017705124187286845813676975360103562870583523586569606175475817532841659263700173349755793829931448752625332838866406900050105081468070356953582215069490169478432520576259900052420438551784473130434661742070454965725379713668859386787940190017980356074873014222257370772990081624755744470888322008243740700043933806646509980219908075157633793693241025965212674164958372703688497734459656641084820839866617777206606908067421635932921137247561812295889287099295057313376578777521445103945331817893459193769813304391641719516670473652813286066263318938253842730318515629009446839001477040312647752444654864422689362793892660739728340481667675024612495996845787952146356907837149694178886442067622133620005800271894298300508725893768362660164987087874713964504700810660072480376179704789687242238330843175242779501627034243813541954673552494454327805704979505626162062940414326745958951224514501520947791290791305126766143464857960829138928205647093580196032634300397434216012863771471145586445877007398571694998760174089362882103339456468815331072765168545062615766458890230050318970196297589235039806208079229352870600962989964974704451250835691492234170263183174804016035989801681385096117397967178495755506221583051148042394679078840462939383151900925174276687013682837635100439028313030245931986467848668938014060682299232377990250980560359276173122624995896511764486452351801051709529502153874867285462023597393454247385185694678003536384336516270070609152337086798265663873505167776376386378446116205986010086254891163689794478477390094637733479582398378916816948125155079144707381384343757130427511493836853977632721080383648627497185033963631829317651519585852716474561911721240982084166146982538503364115561129210810993603673824312595646260975716961556643317725052293176267104070219851032638032115306690474578378919061425296036662920880213137950584396685714229546328386531720510964735147945305896628436365117034859054635215440389250289844844921607588385301386687092183452964711253160248021499345163998579431221571356716410577704168213310618739863499422398905545608334921706603540296764581966479256044101114870107555074634433932641551633407661952631310302537556121871161655119135916258558790774988332979153329527718768120861927907996341751651488060336033411577700764581779881231011560633093893340570893215958491092538508686909364650743302762728985090172041681379579048695332837717667818691623875040665202078741570968667371560868763529932564363014078008119046174274098418693395157596443641652361220014130427310785682770418080539628470677412804332197503914704036867826281695563167000652990147920727920045118764818373285280334481111608310233054501226431413481462613874969326629162292990283897228457669586144966916592116656475571086527102105995506588705494507343414526690117048913418908647631842108768872201046866072984572047856548546837841929824988491631682332029945581814964388795442794295353866134372170375857779052946749939503214684505744118570366119597893904404074290081870919633961066400717979233592321093410067320518034422110644084297562121501538538695056038889200493657118021254049392529088367325700106375771729275720797543118370225501349827177650127061481514819276249106210831858353573298858775697129105829214434751486965170415358268270386690191854296867355883606755767343427918780393397888740187426183526771536380314962415444569294543696666340190360926823929652784319516972217138511494906182447051638879143892093224736229370774283538384736586197273497007086448873532028334298806117999437904730874351721339767122580259504127505350797042261419535483513826517583012889330580373476829087362935672038102192523885610767710944393041369805314310810010177115081412981100721297680068632727163776405080700637123851274251882763526196175144156921995265820581665274936030039485363048948731323386820433370365157908840059623212939380334709498185258430566322321615109308686048739425196330025622129835527372451838503136480202509624863156067180200167207690159481203752415292085780134126966721442338872322689610416402811766594043888887347893597699791301970189215632227430968038781595889284872882248030600372043354974115220397436813405470319034404982677964143095519510992929063567415986296651851979555531640613717001850158644666299771716801089555783638338015733688187615086867692873226479736038489210709951395238789946772294384465988587271930855779262688246044290724832321882571098331791902641897243690456078444812240913970725893070057025651595879255130153182148549168217425520424099082073288909149625938211406671777148945963091790803620164924749154770228031498111963636750197323559798969246380116792971678539290495764699523493370002256753102124425947474492761647473955977467886046256012889608785371504531978094054822810619455831004046558581399963973971588177892629846208944120419217010253823645694424524889207598721968856885430932834944477608031007685076041214626697976195793677073890433545035697345999475442865689944395764332577784527286435221518555176177983542161229457102648145192775926575677516248870691881909741995315428275111611387948278466336217747975078484690174086371306273926886026879635980969238518836798751220719958566194125399687603009061018264594664302100606570019979734222453239546573073176742520305628397173212047351646412890350949874442292355373999097841918983325908832823252055952324070416939681793726474651645312365923249271749686081974516667009827539532043230138853064363650176637647752947636898249909540814249971208213920236309640742564524978891845547601615128305023281925784204841107809820379600815675661362038964502794979207860862515423040256793883087527393371355084113477203406331372864903799512477339956934264396441861219762361548312061749532942640414882923443363288564407752238803500478617588352374458428566163721650807117318600569053746215610788865579275697747223754471112833327186551539739260820055450169984172041310767974675443723816194813652304010695156580484382810714216791643580482291381195762212443589263507903643935432056568512013272943786502579291614788071579515233317551618886391193290022556439931672497010560775951877026926429774127494427045032508352631319391840679639465142904754794910386068191140185714109571311708180302147140140880407249531147303544604265634842788057267678308608820564016093692742595752851298824424888032216589923105653028910777344891671561567346685251954304616785180997061690442071600792818255558327717255357287834604998269514482432155555452690986508121279595892395895861236413180625956104398773523090833372908895190383799527022637851129658022706358074496440791094657778417378430598894776892932258265567129821885849568965150655302514311095950112375909019976667915909850183180298493130150836866216179625061051091503162947533762643499802779796129248531863191102785316234370161067776062275012642713857185354942684880550702426559792323713823213446984567023676611620045365066283650073229136425987605213332041734311644497396648826065078914827935569944777152279254936123965617226547565556343797933151445603576280436953126979800847046435268992610007402371981144580808517055725794582231178830339352099672754904836432185644798576060484638481853710412932303277001888138326841930046041384674776041696185226067858016248353915335499026501862638762060082644885390401462955420224177564678114316108222632064815109244562152568345207705428040796036810654380973115431613147453054012516732224622834635800089459525003816974468018534340055092223978958632234861004084319451156801534224284780757000258429548725995790827364331813900090079589835433938411500281878677830625479481559764672149547985808513155438806784135199957172082308789645723162704855470594678381286951081104006302917373518044610291717169717433340938821573211329827944578877620987239649623218258423195460434325647544952025491269694885274635400028750222874335652383185183985812592886956597168223941129999334749992133628396527863632548512637657026358699680577471789885260834655168775804952991776678461734898550353639792933183849194355057266049354940281402276372630100293622685520154277661156279357026004829882705766320133385487763632067117844125891120007773887688017536994768913507640444496751453129168590760959700966144065906504358226575148527963479207072273153295364077815292458607347507359868771805899381826317071517293159892856966746515862544393383525378915153134711157200050256421786262802272447202253708580099301845131546061827004604347778148423070883981007658996607918331979265204035301590163315725708643694054470634517097099417871663709511349898678852573792709758694562050500079268843115908045893029876752946832248608127506400812480601775186954359418425112726833873944192191691105456143574330612944963705114819999627988469302714538598210978300900399872996350839211543486518014778357444335930023205773921653865380357529212175854940062344667576476945919458109822558167918239492845737103708202614234637988126115947815579853822061399404654882853579111099592238065425576996035181545455987781619122131751102107791183601105559131281745531418748894879542032768196234152498122866824250748177232408324243661547868849640356974606639557821656459993009029062582920767006807579736913997651977690057150975292187461923025952361438761174206366130977040980681257453976570950665287202540763713937331323772177385914642428307115337146731357242752332538771023170077203584824107807141895230828004755326096226880004502660888000447912268369534394749421766480741028394482442518638300180832168387575332333831574328722991136254317104414051059888431422196230960945621356744589240612096375645892842145043643846427665404754895120998750789159570926290796501904277240554402162320878831474161207118235246511637108504051678302377264607649587048670450379084389335380218082159729066442601975482421075555663775351125132128591883163022242538041653797786778040554314808402072023815171719116874844938237444938010782609307697336765828501918431849811774279514593777326737765403719629543905202559635774186987162352229904234115937197997003888019283253135213663925205092407017104247766781420870014723521666125338499378848303427994869155195442751324800862115022871942644581776329717146807754451076227857873839112872306872782787916548286639143473758616347493186073646634773871317524905655407000210913124150417842239498923096292744862827180251748603689224820583892950469958391638460369763518121193570563657301424671612211590794494634846641233611890836101900505577155348095955493461663130821377951452849977690851894652449422817207876315170350335540499001802402464709157733125719432554684593252986931170891223131806641660844412782098047317734882960442422605690843896164853544634793560268268910072496034778603497404500040485826102834234805068758603538430645594952627402323711985174441654252542263561821453016770608937891003406884362664956763835419128476440274105047177829202111445564545358003284465176953031599241743969121126295025000079722492512210745142582440061669759309994029970491459635739752871476228740209500211078546715544876245472589493676887199790854521805681986656455636184697639947035420859622121841461561493547431119947843746040432459617977608277747663148611820349166412996894091923439942004467470259520938461447781178634077699795627187943282350270545038481542310349094219729362005164580398552224187683768651749729226217061844899770928697119534592703576607608504708546865150849753409705921971460570703214972517311801809130087680784410795516589149183401648575069334640684714003290335910679964930739241215497982196525684490108163446988904500501606222441156651988295561444889116614719890137795767841571209340630386044205040845221560722204945669584359739133666399686909698648143620588977587575146988967026554625263738133789410622936209882652681737395994819700361297365571130482077223445837131106275569239490675175079046878409709855799621756561870821985706544739225436747231241155122657063200478645245280939126776851876876052156554499764004819439809647978570864600795194747768327060981175805557733526005685655688631150984696477463942542777337995262473402965753233807529890624309510442072128663850420642161581721764208506999180221795854850934626387368029940960501950235616883898657379712431307257845566414078478831619218347938753587083235223286239882493907636299834327207081600319732472164934853150113555069981659416588704086449185895838329816817212225243930596605672010755615038591957405592172331897705740240876852427780028789200299021439211194513904854566829872398970737925027736513028488268238656354324103422036412617990174299511420413013900486653015222532794897941087962307070767994623719124186853356049288340837059060138877792220932269784784094318641083380394267232633491275462071834539443245377644439325422157848546315352437524202440475068342090533198294098864023992800753099580391208531673099497638260308432232228868312168139366743389295540544605902118637514282059485974383054917003936880326041077336066095344588359644167440356890582695845116139763869775693916445494158602700033347709219109883189022979579908817491219835497251369213136003814113590064648085727167137244173189467701402208266250148701197519846149421977671359143490368431675496810919751510915888951502787520818768345892693818072801091654373822572629449419815920142651171401389049039470949464386842033614153363186992688408003621818284467746622131709932116484931330193237228079040456241342182667258230178094691699331054236090175697632449758223100177052378539004811585974625934917038063987728798727842301094774275263025515114348864087458582074499586197942486447643193213481327993609947123344371724600868574301377900349800459038862820149469530649583788895292056606560431550867799656742394479537073320758402667216291308043255700638449873158109161044370225700996851591733209760352213802912506481985593866838942462460977367337089083851227499272353746927210007290961676860104565637439257417295329065996483356799690748896286331864639962722914333574528641183597862268559104377933967296986424971242273308278170159554036861660565865611332845226371930789749379006555657539754655733348574236398979303153582853009337078064133016172514111693151561028643369644864698874824729474809116137966181070511410585596574792301409674243660138086222803197070038129350133625382617231621001882035738921066985555141190375512969515672456728187232453717894220755715432166116571417000136364374907240472259413790050035832821071340647161946414524500883600082600469404573911137010565595627023876447061162765858180803706895260618008564329383846608888247186370393683239392874598183992081707543977612990969824944235692972372180803302939201164821019835395652845048925923636159551689296453819823100985182196242937658726679499499183157357281703213870263152576423146978031626551467323751849080331453928424682780237819653310262510394654905396840280537137028708304202475461582757824468370373766627376185071598644510960092236949226106214416693501713961763295501357633006349307665744689735297929438275436502765070444181208257022624037031052227735813097283360212184001207912615692742427313728164437908687417314161428768714467221294432719052257937362391265447910095905365597548625069537386580843599217580315367237294786841734688430586429146586776675970808032567178967316570034529390842950960108539470217804413333948307387965148538853059081340272746421951182596492881718843480139593528696185880526183227636373103362627235394364189195891305573439340698770011162512721782065330116585786391163231833418556565405567021353855604657621371763453616778183832126424511804576981130264597109564874981249022250669954378567589374341891245996692268608483928773380881460410983766533852596938070887299470377882785238987475016295922422386154981075553430406798362166267799066082025171254594991146733980005552204635868565722079568031332821492810744338134593544094279191693800708893386249847644975177885593697430660449916421117601747484044288267424976596094086212103890325371462572537640355218608723757277414810743866585755030842153456874890248313487659350253682259731797345841873261642819317146678456577478123871759798727135331894638899377477159516531972783485894582351368539244838340598474693231671410555582901910349797249487735239072113616676672122478366106519905813266870346291107416255032184390634374502911954930786618607467234629958849578880078653694774114410537535920272287808226397011007445309825663469971582239520833087795096400144310064441977234181754066290867826230524922355915423964163290818075120820047163065214810255871295902922963011145540125071497011040813278975107091306826214304188071549941826278168061807563044036980499175676653416389405535352733196203806847239223996839540383691615649684916108112097510575136050975315361320792429749168316633328590846593950486777455834095247535081466071189581910689044922839649182115252923336766740112536963082935305294300938787805874901066116895602482991155712197444444885686937987756146054990000814356112909585666393176140284681897177335443846199170487226182142175278824264806999548142472898117565460785550551940970844981296380991261983556005027115251868001337048586604042504625057777216486651030838734695335780045354599871414489406155370896931829572531144508462301365736237351248991649759089888781722418182728344758224846826974369554546864896401163715138519581511324833808608099381182586963630229034668394865659099916209594305481303999747454516395037451625345829397846329181328591957772809461627353898714555727460301727224410728937467206846613514824492409783306358591877106525384532271181037938835583654517630349848918078655063054640058793036077362609048656427080624910793339815488186850317053453084443771574874075500592942152475378591483170594786214096207183339127397205761274530772663179517398716314899575273618805380048601471655890190196960464766495561607767407805261297728015950115427775319425881097821813729878816029649977096556985352061168065653575218850527863327959784300448041372441175035383891504341289047347454685921283389716691079877583617241108178956457208674313379679918288070169438597506785086852278728685801778926603734884954170340130207152008131724175570651678938472702786307566046045198125211174000664948419265520055984287283618049402671606065040202554194759561482852926400909450882440046945699802442695063177538749890091369721979029840069327786079359476142912008493729386974901496454605522384418370320705492136217750125508467134712076610429767286743134220971152770241164538157699578107259474431670722974439629814698573798836067327398052675036350203841183406811937557951867710852816785984705146407853876040955703721288358380198023681483956085415520140302850598331233487559089246341778965856289402521768923386409702149861811127562753038627328905907361671369626574997738565332556311244954846282481274531926309751278795567292034868374729780635341693418871029647976745822530646718382308718506978014946557238546669400858975197297717131326830217526559456191609672616420561572311916675597539783507909045995840057659038037969465773820549743862445960995481819517911304646995345749658701646126101970885784922051029962525242864272485809288056558752924497945969308222439149102920002654106994527787181390497335970601722301508362595613709729129731905141115391805424651948697788153609685582005310839479000517098487514171332909385139089041556813454039185525808650636897990964068305254574774890149997719801888915980653140014511661687122209681185329045234273798761458632966903126561297803272486617512143959827032405624934086172012727528747061644633188231287761559330137145729306985615244382010448743566253116566781593816376941402934124198943721477921027367872512049285816138444804431248315462866101394114074937883562247416748428367887762459923607155067334037336240085258618413930342992657538521391016255712554984535555391021695535175797453856364578605786407977364212966289929456160962853249210464540775447878611844010526648273500253704567564439476207212720662722811555885390121185250866467334003975628743083007883596967777320057900000937981856213133523067075069398325483364881529546692673776626752413759533504725459147839209653724989353292948763516610766400572252508091226575191789355421999006556578692500936452948125162301570317447504517346644524054170337816994601490083057583516283825320368159160115611850156634571440114877382734207628057596657985357324402366711985694141023239877354281117164577943508297850321167449803400018503023921786713004316267728399651593774986233385737020201342052845272002644760882515692047739012269393968705482645891674291389140932479375697113299895072487455473283007901915895362349360692278158224772079511687743936813185895385722221033290576515982099871597766652653869843278129169177507370427745409932894827137526874110328551528325573528316873652217412616917687354436731215947011979896289158845813012822483823572498356938475310134264582724642502680291026460634658436764703646748841076269336923034178431150554831306093685234334656910233813265772202603975226507370813265897671022276304544899380586808410176967119882264685811577284361260435975542587918169307194655030905656591311754008051153484981382239711706026283144190996211618323071388747617098085763629062093233949966981344519614412617293121337542320306404913034661400964400053335574156615334877491781680398950801494866090714666012632101986081508209620037317562556021855001378041802528162838321814156905127672292292513753265939542750033511893095910177422281728471706782446820192431793267803284397750932263159074371912281786760549065021781990748321598164794834044512865791457904601049434504822576653268563435359971922676565737395442969765426258312144326942387169751942374653316786384961458384305177472827511856684803480538211115453057249211524832670736844526893593506346331634033019825345556492784729988812649906827207325345893505622722159286611814038607003292311738898979949257773104002602331041516144599014053396002708152907066493705316776487370863565995709409933453078474245616636993077632689479531954937713438436232550012877869105501894992926111238134355306264723764968306456460031983706047873713596456272545767515168043645211448153434522414155384589980234167088323055966917093668289553258309615756630108648033562801395197200818226678543199730486435343063729441063811443259466216789255430307826741568848242464649405444879337417424589465628794784988817548025318286025207012278882899511612575257829081869417081852732336643322396079061084254947648090885498561180149231863296150236468116372279284911114100738642245248139839192601157257362983350728804329830290940061666645565008585276302976700218460451210128360365801114036304275866622784630525637173076110986270822567763266338954712491864194113214930473065177873092596107589284904958815267412819499766048875747566267247474788583474321092478030423038367294657170946010648292398553142230577891215415413154850742333236154740577219751647861097836691776483708200293400590454427269169004425782095365662016474057642574108054893677102503308603845477302809134718684780551414105545636852814600125743528452228844888830354566162226535103733878854933769000285136551159705437957831550614681113158054449654487186696591737357343853065413994731795039472904756157115917993275118366310598104770492355591456685975625485596855527157482712574303055391450465793153030008190652720509554237649503292946120407848029357897694591838106631231996079194983218378359745369773548004771531848135632542662355902447196831234401682008367384718165203362913184333959585846430213421136649288123959414177762201970223124545453766931101518124166975370415007653359059293264197934064239138751271892975227269901422143305752637354355935656382466253394058748421415563117699766821239745044487650167728099248899978298248852668465085097007646184850419416290659818635312510713734547389705282370956781980358539144028727135937352536827394929256208080461378356038879923371256949903989417928717527127434904779703109523182330206776681903298225962530485061397710824812446562026992108062335768587315067791819183874181788584505172980986366636035100960276459556121184172878891569559815491390145227433221356685469733086786848722586662196575194336321160140402290006039063965512896135663153950550355517934807029547929693829020766944528539128741557182975684978418097073484587894998983721866944861333285475060442036636116893756046879883258995562095464168719984157579384946906345123605114940689562406446624073499918266106183017950025218626558923482689900752830306271063115867701588001251531226644829389233649679642293802093678931426958180376493443699937808381317742208927224888984102524505524812096809688173318170493333724699733553267981963387617829816411765969447821764054078220963277337654728111486351314740613209507711397054807072460944890522060380350131005661955287255992545493918357900106788922516379490765235645273962333235899348320714285784382908174852199076797089470284130443925974763257264604041073868256425091387851433175573672991148827433803288448968993832774832547000463525209104587150649681716586885253428162204235064393806995470579767158737725494720408718098183178042095563932410513134075616239036650925365813169888224797252699026673867376926461558642798891879301184836961119651325193492394379523699850397130483614108602552437884945318484017352636075711562003654372870283367123672463092237465767578953509526507720965840823360250579779936190104095302438399543621282120937368730526521808489197690040376271176464329762409373447218160609423465150757977497344314089670099827630746334762064266163255696323867404600598747368121140151642673024106531203850536207393425386513707331423816756837009092176245563581810077561573380264062949539818205877670485666092320148577220883597095129440799080023866471578969783452295913151647327778634507531619345320571912292245522252804709831032032678449810640291418169381944943290323793734063499837017848015866278379671694990079719620546186482327564378872117488364699041395845712852654674410177241159486929675789455761335903663018285211143089321867700300709219931194832649044959023442641894368834826367109388855464944312485878241422598022049644909070522327090121360882107037505376714762061828890669259589282496871790161888333397432532778347880970738686718692815926189692131287210357597697162836591218799107056396010138376943959584012864067672398152683907153336167497561172108728974624546784248408632859801284942604349706928144236786463219001386642445753622764384992337943577754938455739962761439302172837379159014485203905611929443959345001979202357700212477081584300340566228990940456312618832512712982998147827482538784820356806993811617672019408962769253856822209816873138971056158653096233081137209194049509680534862628748310690571989271120395124950090628041905040998973464706684376180352362687127953058591781232510055072111910355160628077396683043832220597015934166613736233135010368934430219502134626972388908606287970618453237388848875786970062322226483639318857834998753430640009507933316729314095319261557521883853867973306597927348620053149884708881524235330442200094459935130365856253359304469540154547726831436755110159533444788734326171886441649247142804956864674063746608811215727621058598159613948526578598685444781332526799833285320170794192053876815595513135301257703536216131344531961028327274258133986215318768122702927748204425974603648701584852823324265953142771089064621092594831763453649691584522098978925165652702381083013086714175104789856173967300272793608679598749471825261194206706349582782424699636587036106600856200364355702697026390298013308387508353967727530304904734395244398908681197029271930628734322542425108598101855531989311942517007826132254609841644805445639017025379558200935396698101927688634271518759959410458489578146029212670548066099705763309620473108538068752704379432167391730743318691064231749821493154390211875131482828429425557287870603723982335987323856879570787468925418292675283985573750654587305270255382822837476910351799764648186554107883803595048866600291698312197477615408993405208807975105565941606674272134073796930363824481441394176525885621847014455488346012544423444645433813225865031852868159350860823998641941685927710981286777289976359125786547293952470857548447995889122316765579528393258309392003096186549115765103255441494642836743015456745344355156309689509083733608011280498961673138118915404097547114876225254276203403691664710437154518200702867127663033942442136505597374407343924060652536558705565241459199525947880691220387598583959387474035054282147961026526219428684403824463744668084327164405104470227490535565528694693659634211337507902688052501119093212464422656190297808244821925717237172246064407969413368277536707224316586884556398563885525007908541977755998129120292513747241175462256290874347746361998614774655542951817089162934670039476463737166102678016891188271097438565623094363766752623231016545304914461698464341787694377042050322055978679028386191513851081716378276357066956797882306066378932661905382545965979764214382597257893676421040901021213775160090130928861397150037973352032337286219876277282094300636684246704602689024957169212935388300412452657215449840001478635094907071583107093673157903759523276736030886394590627783311103203768591600100592913850975977831604350449353230105521959181075482805886064513523615245407762923561953242875859120652903159198688631501427021252137785542641609738524921738784548012562996959807914664853444428425799178043428867318432096648015758189944158196941608430445990429125725859081211327140070495356991030450617873586534875807807270862546690520308545690480290868351520210816822945113472410236495080676686358280313704421000522452574249478274044672218616167605703410064338881119450949524481895138925380516139609730460355259868659801280073970615717666511975139999946158444168507150694901463057847709740872679529478607610334929973588865762811784287178424764271372519565035358593326619096948600434623324909501869252338268791409188990905558686023902925321228405629295982773269209719317805677035691165111843527510194552594477144807117171551154222522020795858472164838504452719203822992929748645709583100235024818074212549630639285425782490569723564000618994085409373505347055113309356225833156411748154435303159523336391307845504648526313365439129552488055937997696303226325566783717352548172716316333722652720800138584216055381779204462661647014415086560907280298949540357644368498739204600470762857595701792761679411032249711671968243136437107661513228955516704061667896947219492588036763319330546953194994859721269213415182575640037215589746715469670509842780115216627096982551588770982956211149610548730769183694183522901861473398659264359749147491940602087380824123357061419530378504365360866354108163012928459695745966917785644069066293938522914584413338101005864286346110522439168899159561152521151269205848938028566101479289325247276201485065443507671279937263548835653705107065264683005990099641867832956473506016166063303313397843737071105245692697735761090397182752639557092875933077715476567759350341953866086931253253806474029090691315791182918363624532868077623129107801215932165362145340880589484830122913659590044993062403213427790032695383255493658679124412723701420348536218719040880863560545373448360441770801555086706687096365256767989532541705862187495396585837912167584626729358796489276442704326577100256144880931583013661496180492929370579592096854315300982197576559914845576849109339405534534558619741382236317236504767474761857613893048587530994190315662012997017704368734094204899754463763978431862257187466105426231755740983827655370866464014580706245404247709237517292824955349997972879618042146168488702418849396965558431165029562380901530388785933191103136944193540179660516334196568114185595886559019670001357439451861445446697534197342830831151094012137835258666793744184424694480434069725426758974560203989850555429253584283833732422736028979344671082964970337761766588466539991549094299316668747644321533805807656299111597878228436524326364539092125422030018227427204476772809254017371172055352396840000259502930647761394575522812692292517827612914521213071679910565106857431720951307044616671330711060981003954346817286292587067566831412113620578649080578397646624083510729777620192600334675639342690009248807082214890203433037898668783949116763566173839380768428805553296457642945397789085620494711473088505867567851273527854606450511026411198307658509761268284038873789898958483519862511165142252550411252722444183577481091778619682585591692600105125365511926477011458684458532934458860822962703096794754778724801674356484154783412820389701575611062130627296296719541531126335320524847185675408909705608788190916575190526323844433106181617574351975756678660342383524803053384585345175677820405249381775879327184332017158517641551343858937578004877016993809412673979578268180476027886994630373305697225206057982307961071024507889346791966052324053105594182314710580091161187053486882961077895281309535422273779610271122233817338396580919364445054267500951440254182353082057425289233285052212662179854200020671998662896186265360157602550940666230641996530080385096585627397567860901370061027001793289616579181343682391344496606512069652224282475967249795150029745447628542756535481401205532791736143688166012826593542530709444476469762669208940134251638535394809059760789555670919456303903274433173678471262543905082827610183492515940548381833265133179193683807500975748975343853642916635338452854367249204018076012889220363007937721940705862777794625871298358768292776203502076458137713393787020504309274596515926736125621340271595632797457059707651039803910692997393701870344860643332360169064847497447792234430666773234631951681115836632205481883396245924986565109731817740923919257587371194857852467798810845666418094020203628260473259815489444054243932634499809319752693268740397896882168602006091945694727049678974125089875386448737820190318838316257181295460103777381726420388817446300785820779677653942341510347281599751172265757100872591696419088867767146185105012952531789650344034306615465553216551134548512006288085764760490459763052129257096418020271097616516902965866548604470183115588996179906417434692334224618269020280237931234643560472405475898473311794798223081459691252100196650555610631904348340317639743442218151948634192283323908149680108858979627269208068654334478456597381907898800116947870259552155575276586608920858122850499377290683860514438159762948958772248196421637075136460673968310729335389460248200372772818782445816732079228768424131854204296709125716708624701621560543918231055306760805618266823860698390896264521738477712915991482603526401449211091462824052313755994135200132555922267745735362659830569490972249856699432947953699177268416805345650026713243780071901940378593074860843263298776443532675467047912784638386820189783669644679974199173239050866538696699436452520202417562126396457983865494187395350992103439856194916317292970585442031479736937675699576553516303530166393086511189498533488141382480813306388637340545577553565481067435931278119564140297669475990237755123382999598333076019591294322114586816837961465110977032763262529103207045443287394734256715185918724633736804784091307610363196219238213483395251837875566764651373723992335248330893398615962155325642777450725829458160539738822427590184528609752513519322310380604496757492981388522302320770033047616239919243972267971410451318709259621990203085924895738886354344245113114169445423292956203086598187754218252798036871711754160753354837070729740834842752701790856749073920251304806441079574470381252549024558844832310097293598611495927263150368689158008253574878981592651204810670179711839406858553637151781275503101181780434658525393440617404755128143567386314859880790546053334645337652878736498634304162641116657159252306613782940014737431309537420393168125307790292267186475172268101256842451278341804011383017157242615021524065382681315090174002930132653435721800053680560937275937090636221346150133961613097098140695146256449377993164318385556612913848948716320948888133426089285160479022486662930973308378153648123821634975523666904893772541318663938240103591520381929515897158205634646159905163246398196632946697532517309822604459038460205683663921513792110716441355304711571230583940984387160245506549566247223510549807619197941179826612402549222247239941828581837585790992408205894407747101481469009800686392058196071974195735261746020140131449800187607022226030500947158427644553757408350846341560524623149489207723726318895359806296371545177851567877662066245867704249150005803772556181167576860323166581119888771061483634017828133895758234376182477772305153576560970112477749322788932890694679403865793729386064820577604765947282276037511175523888703057765919273590777871172038843098012356363969134745636511133622702798222766010100647199244654103416312184224422408136785164097646921829297472862118567315438331456642006795919212272362011958348198022780316222900372347334527875916407147748612233286583436300208426698291318967876357894108450379421520876973615953927117526706229830158093268705747411961334047648657039577890857363799594699394823522984771186987344018082310798513609641844107840777519777386415446540507978299730403831920027985966707284801870056499708876945679272987975533522592833787827113540503489130394893034959377182828059262492316632448943053955571115469647037482232073946020150246389845570985917683454781950413199583213623260664080898402873576152377035802488845300419418523731623551972781290926086614839350632271190767106270074355798969887034126733338884447881141105957576041400754948596880208209561861381688980369219018435790905509621821384987289608856735753279417450046461144130506512284093938110004013289829154423240700933949914960373212993069367655514514254378339389682289958149648697616734071990582884869858630540343585523781710281504405523290416988027233136600368886026998142987941175595298435465811415522772259115539931459073571366509170731418521146181833282838751581155621986025502689245858105549132995827488823862324632805490576924287773774529880495965338228483739227680546645921421171989711427137860673970196050676140792842634191873105780978988855908902339581913433845350092861330863157320362415029757772304709953677181346870255453852544230033378947559125630468587927135353906448895550245516883687434447556263477823711942098433698353894470176697436849390944572736002973074469952803482075223601513109988677270091342915909683265465721226990468204483860709378145807589792748509714058785655963060157792628932392337302246654155322779011147229996191092124230148704461002753067198191906042671044643515520958791551204193354128018763564492453103376809822075132432373869668691184831297418505420715836983958180163164358366242028833479085335140015073673437931019855059706882457722667147224498240015885265083047239297129869771514981043768215434470421977142411165209970412780114096780758173272784372383222521853185533843515120049978712872673472168344434810173083804479737843113588405480290449117989998990954638145852625696763358047991760303365658119590619783895748085127766647105236603628921286415444794662784098477060465004626248712320369871914974793178660944213541844818241547178185368272282744111814629336063250493744679841145343061149497132713509586908560068118718296268040585207884090836668849129585792487753418883097951307334909126683779603733941023335832282271006320743194180743711602202013598224956990890748019738434292104108969884744373977327051211667414603377932282010859388244206428310083907151834953784539024581008325000117546333561709591998932266873524166081851327817349284297544527135624082774924396513199392218408137156002421509464076648680607500954631691018119471954012647860028904932765729951179051979336067003262715055811430793023784851581796091605083121575705021899284944345478373314148177935502425826726721300388611888563097666283850972883749940255213204914147435098763872159745263876600550517413057673205921186311610996136257936526009558775376277080046442154182644720011878259555031611209947431432756472990989910572957914260198382936024432372212464137782874445854770264410455920414723516514724924807010465325655521546712159114484479523731462336635104529631633116470515513878373841395556702117107714797251051943963209690013219332623130047447582566779020883440109313577753922823195163697031043742054771478044705751471114472192475996515204390215037299230345980383701096582810631042075345197825422364465556223195811794610497694352989274257631648066228223548087449335700189522028427085093042323949473291443276432197744157867770852579003377696136907707269284878799143486235433223900543375505258723986742155530880514102950464989507946691646656103275093774214854342951631918757246606752213206285427336773705559678989616974908769744780565687550696967963877038427961937353277204352324031512060576096033108464311795826250372776165752332973936263372846517641127326099696679343928025200594058370076352926790897676035975189084270746229764957705018102881182817068198308663051582923934001734066634571327293668900889631968239498359099437421074554573881633826434901599964128928392749966253379176847434711854564141414839149958535230056279590601726261208540632387354691622388370026909294814720822824693014277906031654366488089499576114166157530954710853836725458889820096618585575645487728341315971457684420403161566889926088643964281767871671985141971433182943323730276687013322923094446474424154463278492592660402329802432641600869239512565086001670396151940637229726032701100616619034243861898495606826578259742858714815301527962347099211131882473096804819653280523054194569339807812914027868161418380903358190098843600687563441066581324316833771007277637629084887544963764105024597679119003246103062401367028522286311786116131843171020293582583174323572096602580623596025297114842146982462300755752212049732240190220105255724913153637439535536057914366398418330217339343462718622359751688249936431169335080984193471562688536865283678051339839422186738117227291236220537469984128874309278229795023409703654224905261028541111472075330683756568904821797501506495625201361722842461213733961034521081156601231656940132376293572391483750120829411075591179856719021062867221392409328455654887142394659761055462058295532282392100695191042499903649913701448792962202711941140452411268321526457462224966769072839898995186831914548075907039343105057056556225724088486432568750968430345711097884642994692359274069030941350566100240160172396374207596853438803709922374596724825589521133535587536200687826501057894723623115537832801247876376098686624853604922200633174753534073440835652780914966801397809770795544804654114977689691114529399512615428940334209845994963321084259888728233786831525856692357842871651483321935146270946193234355110573299459173142344872677677008421339425690921672164301593067343144931635640155181543446064763937583104690816665705025633149849981563029857967516512859056041297242237998456976171591581984684708770061866034567121973336368921758516656252745065505507110068631550959095629465831478047639809608288299893944064825246921314303134172336534221813834846710779623194704382308930958548334091094118216901062815934219523018213245863474559388062780601696373215624562389334143779953328121727794922165424819844041438510508122405770237889050831371590738566741449605401380811416755631701689806031112248628769840254704809927571338274360751175001866519810862697318247993630128908228400311873748809675445923735216514099274432389190719830276031014219549285685523630293833254323320466014992025382382780772430672214250458784520293181584522380219679657807077024299940509226184856219787921884885101456025416992871324436964749613707980508543980653813561450767880390123908063672825227970417133289563977999810449717791700849203886334487407442792271073634124869378685344399406644942174685763279573623648156088083294855842101275950709626043709432350139233540404867445428271975138273948994829534117909177265194565292775887649307158861117676381997576849774645753743002732919979163126349507431058895292418048285449306649772162254414542847712713223432334879241835364392787094380101048264980201043043136373668185805056361307755598821207519828478356074574941793896977695115924613070766736284489359691128844473977187190210595909697916285704916918164811172429139147351698408897185883516985222737385870667225935983752767201866219694683211924811805731388732991636915639556035012261067079323109547882947373927395891623776100245300973562499236253847748875443755633812616837327479704219328970991162694217986617525850207827735467566058543277761069406575064360211832566152229288804913095474541379579903820419221716251774334091395023547108531835551536035907526032041574901145124471938451540917594583129140603174848316896695772306949173069878791778990606077952278063585057259450838124409830243800469107400353710728649192241556771575649794179343382403631916253282964879247446967841536075030473770575084213267629103955466348768416178353024128218976028500317062398664194400127581938190452319130192023888370235201234942600796592533070783914384027384078107076866779306925814287429186891471955641969755061437092993260903559011961946982505888829717068676315332266349044426638838197579004907788050105905874865257937443831183133898178702283074944118921615136600015131336217400771283779485114744952902560619985342760651258802947770102432968069266685105391088698856504731254160315899081073227603604592436404958733638275082581350832037023476990314380373107879993924495250970202136474837970722153948330342069196306022892327702642391199175917515700401301724462038304670450180188957474647644577430346747314208538117547014883239240250151624795020796546014090839744783626531518653427657776003193118968747350663957109180407670540980567177686973221938723992258575913663930106255331459921467610604069926916666566511197830761367052557998944289916539428772879951947077039979140127684837921139662164457480031425570590075038338162792642546749904065730524327171768986580291610550873419523286535142985840260658130595981332957144945831963686778578468142723719933766458530587278540737374902155983628611199451556243494024059051472848666165350444791331036666164764137623515140460952999662638126744209697435709748603626256623109479669195323929134440920570371508076786207303163687140671286698440988999934072294468416091722099432437643877372479389733188919478465914534950142898260917726045093938535519024054577272274348469954687139474798660223021810191593502545566156535974943821822125254146815727093274951294312760948654720805438493706602542652680677160873957928855510143561679957434357893129614023310572695913625661551419689540531301404243815067344148665546662742711032581479615164841920380236661168806158909613001963284469326093001804957118794471434127942521737630814074487378532146237364053314145632991334265928783157214392899845415504854599630378633318054939117423261465939749938699706029357453077571896174761649884817763447387911005562819565515731386834797753759085811548306824667577875823808157609450058163969310415374388421909995934519814827644775720422918491374839951113124480521531602682128092855859087718081905905454197112128476960119411384823377625992031348916654093555745474133727306579298291244002944737125669761418298323861346641864334936727958475504718318977726795880186802889726233288338027751409970211997971331539469168436267379383763457161893639331271257562245498562266741375940454277653666293596415613947285144687009697527962387884273461444141341388596672313650843212786043662655318658077313310302755498375281822284702368035773896717278589565133453039940116304096271311781724776079670328927406403907715820111947749480523139852242866002041332216373415805113129328122724010395777349179545920746867735195428712132752874557521517319065492679579183160451091723842718882968393521130909603010020959580806383972357042163574294374954557406476104325288477973356804749402808000299365021440905149381980932200100654305447731067693914056647514508013527366541688094093810278185195814507982157105007325963056984563746812955037894796347776872105813410385221838825435630406747990269514060452927615548428341305555268244828009775101262479432970709203300353340748914871796357531773245698223294048444913846181598756777473752578074374372089259526855524390488801451859407368475726964364493788539209020050797950967890006811856620464742504060463474475048375716057217951451226795584319510715842260097865505927672993241123522159454452958491907514093270652551215186164201619373850429626777334989428371318637142938645321940583782080652920464709342848789035495339124575961066607615694369288897187754601674637441815997727633419054173999365426294660620051786706584164696468550783915063473097223344443664329930138157329031872780652231402336233671676220036546198593205223908111457952922942622408086086273013980291225771360681752716074902409641944118767715898284852173558977053394827849709866554686002357998664849655305616549358162075809032632851074340431215645973703866835199631921661820740564325243764554257208462205730271059387931331635646416802452940314367182444282109661507914083620973418554288429507542565042151805318323103636405804627287834343522158873111652950343751815191734822714765305485753850531969343839549899026332405573844909392455210648279454711509466202438906840711670311329976568467277796370202497189325114841911316767925171945573026321836734531540658564360742474446416910280389329001430551177955355045271396983354095296526917079929861435246984094010966236465545390256879447834461685731565511692739381446897404502712191624801238935488938880265275628051361257252137483601961467299921684296059677417162524189114655338818709874280824958471213651126420475406967003529658977901967091740194764642509923395077765283733708552587762316809464006302000443818989462820628415603136901665378215919356386574760792830382137444278134702031900675994182725273138771802056346779535264473157844957867027279667945478776398628400552735606282528032965637506143774875841080332030169079565079171733504826425373168200055604263209352577229221612606240572508996768084122942258552431080736547608617632883449607068001832991585032794328009635999311065092507027940039736198368132666150053080100444010755123628658831737115955490922438509052015906019894214518350247020862553644271635542030169847045157417243534460648888364712314560881032761543075176041501977884777860612854346583855434893653874276959800181658335959125492124042744919833951127686535411010484211352514441994435933967287554917049744266719496550392084733218524837724117522709311261149516263363624819883799399682438324521803154075034877575085250471977564044308440509017742258061545980335222929024574862067220575114022977713394185819803280176173144245990531044605077436477390587986630366647140361888078171075376746278230071670858542048415773970537223082039669241425296322499117655620348610318622686537540461866090203471021240487596955828401652727210519911206627072245989631396416683759424174299811202481985613049158816935062636272950806592662296455867646204389474195524381652611294505016712538487318479826463128035276138024058123251245852891069639924086178117187474299312482565613340260465061686301251685987255121868588027661726359705118619155232901548531423391813036822837410574647310476476416783850867745877681953353648370937130748020871969272490250385710363125135432743027593430210478592231879704096926084235638283655047002109969740908130604080193374843171220884118476479929894990840690343462407661734829803559948538418078861162190467686133768361412983598407148370424569796495957053778210635383691348049686170880117516090718138798596841460323221893647644201172840191388892335629220793990141482072366060403932095325456246609568361545582473346008501757188905479713112108751994057496345197073372359140964974264931026164955268480814910215436372628754274029719356838446114542651614037603817272261073574329035275123994888307802637135698249633550111061288637232182757586951980357444545936010757660513346588050553588939743005477673715572401322024455048952526568676857286728098561420118445518022075532109592997739600942065109735854973308736502957561530585593372561005288215433469261301989776362768442334421298734548741466000485353890448087049213689396912698235265398759954888777993716680496398303124518343126533856681342071866621695582394317507097335202682972503976597149225551013925922016626844508322677613460021668880563508311451050424230455772278563646822227001182665128840224565834529570615239467860443170586072335734708434095333030518031847504927403864140294710102622689089225046591264674328785339090855733340723033890064810757212877259844197274595958628130930320605627166196926879902183117292008798669311942382855892241370885093630604826960146507006288919784719962102864761919159204079408312274206631693802271124797010016122736042305352555806353800089852279129131745706344297733615708641208509548713442264553571639259564938232455580660296575996806284512084447825986036641993303231057018748630325175519210288073196740132334583640508188032284704912713123098482303540677210509315816466480465974797314994113622025108585593970533868713601487387779880341968267452881989315474371960144923458302758065280993174256312456159601541063108589957716323604073769419929031876762529942724459891054009327602871108986416392208300298413530988657619075370352308886026298899966047511715583206933624858148264766061495716672129441073376460166229154977584343081604482395370836437043642739922436702273444059752157475160314584628711884536605010900451172314241621607124509328431547325628527925121358880578816767429667191455090874049200303939152464830811929917270233990179713129606928952888008282042403783062732341756627968576380012063865655941971172041549121208107363093487633051428703385546610642025993267183408218544649477798578092993498021399136482563044637602116852950970930365866941596301733572207080037951155787417749512548148830974964363326962939074628106856260854955460871136509994131391077080076703303684003055911163929442020108902519987761551412446388606142232922808491321103850956060045154316252008735085978822392335635687688711278964486517474257806088896270724475717908906736454142370597590727017574083800608061988131989777937898031143654791031271569433433643441929772391291442450073525713307768205762493243729070208282891521284575410822996946889223616412293349490637279452811479499556496950251582195177845343727887935400988845761281590619287508212804424827459642319844709051019352236455284370229014193559291700834227867107738234366365334578898964670461643572270456343541093706703608041610999484097795650484891553008429626322404453436867378148778372864343583163306328438613558579676239797686108868621995090580596685238930586713503515156081228826104984233430388717297744581063138943853903285982178769156106746464918416367093779741655429758410028309209165921076937876863311165388501120655462248032043748406085093979123287451216367682134221491613611905933966333875476168816404409585361708421041584404430059671132761633190243697726791128371042847954763383159750515553751383327823776620020752674933959114545345047372539483216276597439314404635144308459529600724470762407370555291306807126949838463840200325668262645010734934159223570348005562531248480746229247007474909472214636413090322745363225187277382300458672193922099761589796970650804581412188757854466985749604746305468360730554355976578393435151634097663148932233141198341846558263767127451628525355769866282015229998127705760724109608786497430180918650845809459627041057616509769775154110464753977332676236879622476593423644193173847922006449375622302646447279015071829542361673422424314282645884315083804057470140700227159541156267827671940902152399217301970314479493143957374306849915921496540324063311843281181056571627828681876417854069443011869880079785071303526633751924305701525699850089889734900758004498065741350297301996357379079355268219793910210475523121730428572877632840131029258128778131707827869352245500047948842118831139329704565994272010269045657692038757151033117453839202765687056227196025623247982639906338560525427677834318712264353993932287102007822073852745497480534615348184873960285674689723092175329901370616166203363247156538923117062256565969519737354831682961186443408928453783010993387649415107348689377497754850799449678262138928308072495101685932252777342742610817865770819096865318317787734298152392007557935398071519320604994697435687409128167442558749900477828403532442125960146341755055556095870214509543392579625785522738803301594471993085580578293945658081426612985052862479843048110747229664123761504538774027921032930981463849827276381763582251998653643760415643875571750441113655952370493179245912013362858603419907229656091867971792391270600834362094829173051363533170780012073300031950252820582556090263608003584021657137453923810299582112349339654992710914840411568327087978663460673217959808589104811558364612702357479485635525594151376398985709792468210215067219691822758275674207858825974256072071692299153157625549938463675129024579605553841322886324297466792118821706563387631820436457673986369867767771086054053397795149666236794809854166320142349948294452885552552400067504002993873657341030541291556016405705758738895464929745847816229771193186590521342566938939852899173075653981704660173978779106769582168118224100923716157395826787469187700482732759108173235021171994422939285357745927542627201671075249462347537542349812523684835997074957400656026560907635012997738727805637463053793488045126153050403179993804432527548777617035009340489962408661722420032844753777554107948360026682661744542104185658999728881306243737115014475087853441107614821716361747789027197118322261076885968612848031716913705093715640216257301929040714591251902394651288073674414020846914678722986181859202007870737516272812997045680063238401608571441613063596544034350440809327793787173537363675407839396986259481871178319604842708436015340658882411342021800315946369804463867083974116717604973858758727242083768630259611448896417529491053440401580547819996966076954776875860398898380674088354409523829306388184249356533705911149801905128183150957438818838588721774584598179841923125751775346582932535971348157896478799669369277740443821928055374026527494480923231584686837025731600120866329492087692531006992344371929307856731981705214805706769813913780341267573114062912405148158705796327902914390777874674643426825549447772508015339690925600943540568663194948801591014818958433438541046322023879533749279771342213493611734877067302109904215334744380437654864622794342482269229992454789826193557484711025908589843184858322542197761379478395815863752357668412175357468478461378211386704390394300306125172558047547272457732845520772535458392373415837499552502727444315785656885375980782843644799257322313658027180925815273952405129311415536959134681175638029980771922455212264750906148661694637753808352084490322364942067507218768857835866272060140368104356095033731719653605099866211401441602943466849072380584649456518740441467477541171373992883012768291704351691411748048118392878362552590074374981985970409894055728106963939856181032929382572679054361666768945761123354196808425732833654150422548042148472457703253825749791640677477182891045875223038727606294709177628134446965137664706399354171565070172216144539933828668414341902111797351484327731281912939655980647693180741803157265649792568977831180370470163866043443531878401432795834476577610705417002190658699255483558573988713300688601472468613645405587662857373691430884616064335634500627473620458768617076271489266538264666444705584170527112546543399856239660187499576509096119798541215197223750260750548053526513464064905263855852654688001855391975045124778340917768596436311528196251135165411460935798300575143591030886143881508819599424992929222899659942963992854056411434239272895859034678234506714102539796947911826643698244615370722110086676062510045518934743686594968284123479056000669727229271027021572950574542059574942509775608577304938392363907951650709349760286824416310414534350265799869192112646448933152527531995964400223888003294122521577579533354392241258816986926092869033346206432529877472123980524222017661371593966800180337653383708914682998510504057497015138723835145000240523142281630153230580429846878560486648378815259773585218848385387209843733921259871438623959120568316645609156091564184403239255583054792553069624654035170587631103328201127198504621392996357623902898889511906812894786873616047216752628376444431492601069746766496382616070788829213799964603063696756358615913876403360490183910215334311286418032179122047308788245458369342033760044524553801116131717898511689284865100569733702231436581645510372768921321025386720014914409733668706263126804740052596524411435566117960577784804204711763584694205489251836521345996939707427101491517989751691978226552391805991411855030754908193111353039018994928176118872549171758441069581905865206631021438859776454783198131469121535045649459386645424556885038726568711587465750117896226822906099717734207943800970325636823993309207233250109973812164937346773786923367752399134274444380700246724385411024091654579412056696583943815936351649201676945821958941233059220556311539660336355602227958403826270609841598795223944568554573899819300868635493431491099825301816897795821222965211110250846228976506334511362201457264403695068020046129471405759973495291304889859018697196893345237521922741698504540121513468358284071228499498280233321632798102078311305250526379675428951285719685898316906103945745081860032696694600727111377368271891659756534579111283293344393033462328379264974608446641038459583086607527495961013528371558211672113880326208848441800479975980448345768946903638494437045327982774249954021156188845507261489290132862331407631055515004324376318707232349300491645249402689200504031449615895627007733724769563913553376874985585352156329767609680685130261641109446603740901407333430459211771467164499189087513080992156712590425881562634209260018363029862791976597980413596353632216838973252381210969429262484309735380766745140418574005950245633297377318593126953647609896450869312655148348577538897823077880224870714147303601581606758036459946377579446698740384281169153460721203619292596070353798665017335718898176825866013639460204156364462918438048277273276118617570563328846591693263077418413482729642068296699297380612882516887112256649747675073335170816163069165532560471065335195098800888969575691628056108765840763242658758961851267618140681124640793365241520403052446333868258537582630212358517258163735862791319992234514628758450344899574511943554140955357918188088269068819295831535320222906031024409372431324572795783143543123395609441074942277636482044892010730341460352709709550471392734868554029421066765602663114288285698619529288446309437377675349489264674823472438481745955985807462390452493044578450506604769895380264399681912254965191932252830292177524404019730254729853518090516125978730081416845722551087708697608502168792094721855803606776994956039365038598313333051731606867507170291156823467680601021309200438640092777998687046874129481081295710107766191236267013892066633968101069320061331185451016113858706491528180139918931681401292367702253067651540723948944499320953230341414188513435828757072357172506324706431106077511450081012088598722483795286802975060712411342674050134978004599355031983009006772659024501355711758818071420033238898664666107159029777338231036252672688736286062284466362662445916570831207859825435015419030424421987269187539951211627034749815428569224517718504137253502289795088353305177132934894175349005718650186336547988637609791205123643276445975936236815017542538555540881240795938163279298301634095656016527780619663386946263017251217412130057668453327358512623170724095535607082472000662759526052795088150388643943802613674055081056674958945587326194556168557253349070533960514841248664369827126872151584833423034551435214930739786239985218333096024968784540254257745523448121542026658131519938099251946657378719722235686285421599756711657703973084769465863380387904740817723706932099433915598828929461753057063461309145682823764011135269560193849659409466420425887530939062695372700886544787381853737190330536116474459069724803280262104352904964282915050759421468621852259686946367442906195782717445560834978820421858616168994372141147055930070530789132601571026964459047381923906038965913967464576588484196411281548328238870886305431575359127150935261289413612014610095725139360125605367621924963125702935475429026628430331901398036418916145183160609099986378541207432485695542824600822437735143346156962274509935169618390062417533772374900223386059467411994281920897720741026095325051918599683547551948827708269909721871796624314298936384803943257322949055148377037430044122696336902454296725311327503510788958689081837827250694121983930277580413539614197284841429151527920843395441728494182314736627312618264648106939132928293793127982197026078704182282873716930655643304988389873231765513673213892567158253711479099471398900041887444488404267003310182298745014849509047674832069877176035695618189181504017121968159378704710754846163190332106341507234492699041805914486729409778717167175050888610644239517499464141378931866639895832944392545886863184906781701426489314210188097383980491900493389008965254923778729285786929865139276364600292332547318457935744363122796870999152756999453487718223870081097902055603246296238786386448224356062029140482796884951699179062174759065746951246608963443102980508170289130013470075244013016241284908490295878886223845512312611183711425980973771985808935819380880572923706420790316798005301042022631178909765938454306237070099735839851421168133440759680131810239338242795842350844409672627728545117625911524947765001749192360715188926637895334321304472566946301283795752585141009201752255703224790058630001795723953721397223384292054910524640020509385739529551672836977589153253762451738725846548605830296360969292819488017533284242901876859571849744638143967244514099953808988224173711698485054991038902199815050956584832620006649306043242871870138879256756942154335341340090617512411452470869555231404602148204664385676182988229298902305790760958604613594184080281235441814445485372056509049042700158282844494066355774364776625870637179801499420801274343203095048478618700187538709957598411099537258730924661142890005899705005972851314622556903898817661658969783490668502117645114558811809333256045024145915164944848887655764746311652048029497725957129543661514717790098341973426598875067745201673860097635187806253930366407016033253239993807942025287900293480431230899783776267547131147473718546705456119462459393045804128424151183697031209244788437250377765210733423092498928937444652464532764885633323941015841203206993669191169423432480321109814158097561729251938316879602311124165273473485903140011127993306799901757923606614804174934688478975563705433974077133456634552348421919987306079076113571977674934242737568547605754311001027638894446284476107381003506397722732490945541388435889532952776536534225717346457966585857800088888306559936509794633808242916712431440356613534399964175986773304123329959447116216840575200077979342196519002007179513337236232126929783510055492529102165526974252511233514567616628380721727568635825055959639588522811281022847559271958874613887801613911657066573825949647920870341455324109945126257698939845743055229159530617870688012611131934201559450312420329205356484820849776393911662563882448588858058875492612815201475596114960056666959761604100324305292753547795442598487473132114721705416988730901945144527319869826548017423762160583851667048982472410756341012879705893325680316796425568398443691386038333033884686969627663300373089477622123354844766177354265849544649384805123884318099372787639673570523230912891996870545202403535808323914278522364282219641688099323557910980142673270779779219305358977231812524794498169231001223061990366015399647629296125898563066859778708368273695456470290622084145673740379934966197057842510385879492403967869206112615263512766729277164656431364769789511049378423777840258275164953771885931621067600015518028825470556455939911890618137241724004506493646742542158215623648759894031532796148470877634086835633902178259765747925689972489962668325879984968546472298689560531450160459136594962639843067594306584619411495468360186548475592552087118660128494675845533954705567897627409373770092268955329905242860132438908310792323909459300298768324931287612111303278315000308713539822581884879958311839918266271133891499831577172804911311444737428614024944625435965669484778145534261752274661049844254895640290066755892657414177676242955573162383104270926061219388970891625703128171671421191989998240241524887386406658952884073655881693777621229312426063816429414125266012699037653645516660364389309897658343349253545001695785038610121528239971231439140949959782138574321801946855549176679709809382639893706901769213797130471737357399341200182729692495085029539157047495796177658535861180881736626450828838293113606024737887090746704065773498370350836814616169014290506028830766990586252376279056369779832293535257773291760828204265870925485797161161273767870585402874933223307451274619686368335867527641598390331131621458899595085058827633422992148048699846981580653091725471057307192197699039408310953868524391783088578553907847192428360088091463214569519521424730335684185386550400453574037744165545007891829093742511490482161010441730586253179063378177895351223760328621513580557807567747740958114644948891684367159428043445954058779588112226034230069850940613336282593030159263201217276712614853523427475156396117272540277499899033846622423157658947388262198316965053674356749663868697935537915686511553658794463116326541431839742579652226070348022178733257661080908231178671846538897787787535838064430956817677845395261119109972484392050188346725909444639214022609481570828837963556400430033172518719277296168814030355874627019134175562891340512612857178560906755467907468365140387509572745602337381342239264204320293286750270012034774745530678749443135182822435806722829136583912165973043909567774409408627465774675159633697504137413332203706097245095299309461200540889283519509203586353801783289174096635960185309643462934608904248666789635438868978258740755572035772818140092423589500531168594370852597842632821403342791566108630420400044761048929803312480351721520649615644403866628667312169818693143882974661912256375316019889306018474798442780002472669253885069054143686190521064146722047151006500255255776128216623013297399508005595255387585041911603645748386078111793593457016010095434225081799640754666553768787707938125896808637121447416891944359544609444486518536627640846791975205218970290881158828430204337370802378186156245192604856288094806824616576341278735856257424987399910786089458552832979984418492151242539043732671537484312584855347243830355354327500718128676875208277926750911744448774349262461835200520466344817702840663639382078735081440571550707338666440708031488596544328463151839304445018272672353326377893300680590386852147669876623575010400246620990441922509198451454408473039913605164157317069040170193353741177089611030049562143725923160525436524420579912589842585137181108610703237195349095546179750249774874440614968059606321638525530754137998179568959431981155275553209789074833168127714373171646177291390723247773280979180799172032071863369762500429090923377674006074241747059121176788280026104863068241931616277592080009264855660865129272443732825602382168535783680142669470105197989618594714494370563996978226801164440534444753232951905842712537921775488947773481733169802621306682496380855481479440290361008980290880697923129375060564197502869272483057457274488944509539129090485014295078838875034427895415920803689197481563426007999660416345153811083543381123220075759828456077120978901246414842060286731795971487494399712499544914351269032836946787109248335854663613522117296285509774191828832459442670885300055961141590216782578932175367733254265842780238537263379901896732384422152328127228113385081752729648551855723241902741497159157480752020807496138965422653146252430307994167622271229497949111801522659183177463187968940545528797286000780051139399176019863059491149623275098132051832160588492584143737531823256867794351906127418048322323923724695105726764815999884235359159437392584978132776667468643570950101324509454397935819457508990565991072111988593676924892572364186527901113612215375178098632240838102164288819968854611434321706639567222942802936133351915473449049248069789408027809511630113167998882688432335492964865129928490596263180469763720551783652368212535066958991675769174921362398326409376135014365944431299205945256132794519880787394911368696128332100199218159264608881982749050311858179854043665831237457439065458518154347950667864781896072892472919559247869406545819191148012939703871516863089692138528065372391571515524347869719542586076041815099852654955554320869416997188940636391356364584036870803730969247767786841674735936082794869475054796527241984198870312617643324352170475461952538183578920162200548004376553836343042667521480730535150651089769215752476141780125823863437409326367996366971788329599704592346212858720510333317621875778745611946032328042989891168075107007199579861611840639037556156831333360367659460446054832222214778703873469829598970686779288294026993088896644514066215547493100620045306766528826703131262241995706480122602503788446162822835195618324966553736054665711286962917799216144511456079689833617617458947487953858332188468840176682175381093674657218619966202779135519053777848252587552150679293281763677855629974499102845186558965781206158948247653728299649484830765946826172665855994142229225388074594162872503760774083221825707374687271053227086831172160481458419937482892358462582109437260394454429526661831814629894942735105581306260363090538652871603964414338789889623739027129138428739693594207123753638967482168666208596010302584411195057674427427753643915223870515484653207690881515211622141484346320890011961211162537988849582292266980422719097543919762891042862801657076514098365680027240883608521747613763525628981964777726633237038233045631252534632542841533157885780922711144643689824475404543886761029676962104058954553592292943445710594579344095183195183111316298078155093653713083232387255201774111056580696369838908938070893066806429256950658510422118280244362334829019226419419255179177723652896158785962044065750504085058893208265914787238617229398042542961368494188279644708600150967043049309310191913803435177161455543855326015203585207273299207813359831908091008818045160434254899247401394369733434714940727298868314144511044109297720523287727305537480502555916278202223895185080318106015206155760157780038072150381402648056049770362261447606868002622888729815831441691740506519286832340188253158656646469551476487143501847825307535133278451601640134481160575129351155198467845174948785250035534718070821652729541748893586864372805934021414555540446123687206621845882306532662919250230014022682075691250124518034302100665079337663015331671916367356668698718469683594996827633694157313204473936559262453287757483626208088641872577802810856121405832217635626945399889420002885638299089919563175846355266593376481506372585904223606493821355033379598104419663753997881653164562044841602805282304002582018246283292916804237361410515027982341862108965539118912799040592033334664723735293508461322883340445668075050306128990001353217459671548183098629617974208895224707207292749924923942072193593665698263037026364678443672275438919141950369489725983519375601079405453468029283190697793472195179084595978510472598961652313834991131986085601750865794025300256604187778106484409549080634096726015790544817982672189854697795506112764323752158190010137455104223004088467734550573132435394429063280302160517501637977268338691212861404440643947253200990579689685444714004745410754815058040065283748864430179535827403944339428961326824013243161800990683017201589270397439936947130766980525023409501763054862648809000410134308979277636608518237213139463117366267986321106170789425409918318071728489731355903509093214925779116875023244459765482917325523924461545169323484323410694189954994612216390563451085031869092733665986680963570260916204986037132622694812638934356345890490259272123485902811878006108670599483167441407992863131748960878818159696358830349037474722384613244498001465901198828972900785702931310625448588065743002315274312302470841083802421114917444583283094184964237334375072262732354738754682485236372545999387903025483129917732312484011080999461253700332315053301785699792315880047164971329568015939413107342223349401365271309812251022702095850593203910583339002340023359458181462235835148200859068641549888928383343393065316408343254675826940334141849566873926575204863739548524954257368772893044923393597691707078394909616308362114737602847515631652702796892587613028178514223961962574571165445934758176995619816621305297217617831493445529429303952693042543011871053151361442181239106565674589478983463616481773889203918397340206863651624766334376881137346852649820108314248196167192376272335400782318948068653204906924511530634056234596833204223564385074381648723865152688286271312791850126821662125846780259923406618528784946949771126122194788150947856460964905112021270768744288958406441497215844188835629814210482479706114966899154103013157082286655788085060024119669808259700812554737275542510804716066836112138665201233400343474079119430733325201738566392325835856130812655872163953237075087702857065978296591068103324080202944488861189837040116186781961605373248971167808007820348766960363505652889436733486558827730168683428553900812371918596785674866615968474578307411770848890003559850535572699530227447247357117697644756859777878945141788078130279071509011856156703012772419320243445109677001528315498267997146042854042900677143136490741729567973192724612330875188342140237220208180528475237466994515148694368368789543045206797427797794072512184953652771686621664829767410592501271989810080661973967318932641439035517809974591743615340470887009214773216655262182274141853272703420088006616674681197118488431461192575091027943045159001423632746908754978610806505588711364533041656408621510215027179406107253200988081452701956177759455537688445685323530351906270714153235202700411075223305815655407364786694481332989525972013518246779584365848621795425524955537899800495497725557557055467130477723887722719793893441729418999158080951102814480737100738417750475206776339923852889478560747681912043597724494768410040576337261864847843755437142111745555456346183251019138127048186078171171140811830337804402085773891090888627094276496024563358095855376382579793088956830945576354652942589962671904575344665492785334757103155024137204842718789788890840878299364617411518386635021649502569574461244041089006983513092066524885304983935252957250953628267932921087785719281857682047057782163397888699397885797676070117294994444632070297641187880129768436164117153209485233106064936823561799377103250458296747094036639060462662061968977220676051049654106829832456408829353277298404953039391093659445566797087997140175402425123998292162295974971941456187914534276410839474031402679932641735229867155963165524346901737617710470931052755444526215796535600461873084840179357099059097119989107352675979828448283446774251228928163744493275978279712635166093331606632639988420503994553661453080022922656253530595301316392975588883475133983031725168302817574018101927254291313852138069183557303804175106182151545753346165680054813802979928354706342353783017590500473916097775619491623404367304829077052485041420092114617078932026558144186656307157959311291371924064247007973226685747343890425385914254521276131445328734842787034508923579849731580492499461377133152068984907234556737584078906823368474088962316134639120208894501844728291728957434327539425515588875760604020569007003902480081440129004037721793678361213235876820015171763025166322270744705513980836987597412677587047986101393324317907409736936809434976399622813448204515740210832098098334530083848724413436868337510942463253356444438225947995576790282226366667793773022710951550981077265483441249242495972072607107234588065404180179539601289982084030113844263277223511696917628674594010334999392113128235940136718006284551032423996652494227729693516366212344014961920353201236396665784025475327278839879552461708784542001790395905057270989086753752608363184496264030537138757975083695077098089129896358095297197987881661296843168502208710769638437800602115957240725204746797590019115084573494919387275083019378641188108238465071232897075907671500723973108728454154282778989785914592125570205534744859964900031079014339716995370590606905892640639635772536533109013241677968478016779021590599138605259631829089640326021111282015615248157959252374925883651588925171757945538162155669508143079026654168820100569138412282225400436251320355269018424884705739079501221406569493234890181145489426414716540227730080006097222814994835581274353329084565936430653248135609775587718903881833917395426355361063443604545574069302370331157568784844845798556450162669020375901713486526946082898086363765999633460247035416149931433353456696408246287340810400914132138274892130207855752919343129043173865013933074302998922143659926931611369609300645046013133310886332962520515803084539608052537621639768765218867382016299805655094588475205212286874895772056134171244133446140440979240215359750837764146481729285834219532367433993673852655834401073705152429136779662730265993076979002747821020715459520332966894454841193375294865989398986999947674157786513316579128194907462177706842393123046203296816565615460505551907519374447043121231211451619899771576130882689597745313586413979495020276263246024575014323786695607655856093457506944119539001670002264368369630689015154942384585192731434800008138041005345224809328930453905452883341739767714818550999113965247011247526295137742119301225166821003295429711437471678952797267602712196872766409337475212857483469388549132225485172537306695553147783335416147868461464654644825689557355671803874167727441319593294231497420700998375493541887362423858478412737945324841177944583904333161486151259989722616260790394849459348929263826647288535205857653547685421082098172712864775992912488486031634088933393398464765635328708479835357505838798296987994218815122882432804847227693952628478363557195755086707309084664391347871581061949226570907081270773273583748592992999837567931791836691453187636975515790338807852760906534180159016573395544542329800143122051102861932881484636375128862409765684582469288033982083482990743985425806018338978593188962464452656581718605796074179183074507004070610039591179978071727011469524728453391255906503862656038800343621614644109500424437935169452353705817352772259712508308756230118158218443881101538235066310144104598473670017713188165394932763255521545982439837306708572958208150488950721087938021883896567734600919153969016182719462968433453010350396019142008964980607341734464958979499726773735571956382188499450953368912035255864817976741771000811056306278336115997486283345796519475560036129116939741371543450839797740750614662901816314182179042415799729552468700150415908462627840413722520968316496391597724330754860278055533398133740931916306524681399592088665837995529136578215448359114661512797194706343469806700046927529960615813195546384983648479742912296412224033646577941854532642616870282823537324748716270702685736486478059556262865051430556817556619852551775025173591066025115369763315348433119961769008423798972223204374264343403300337954441960260559026056973915467316391887972458057624311806693829509196531331336633772063980304438853643502903366502270919679411899855920362853827320980702441989008576869579907724303280108108116926878659923263051067075079539988368695544745285157667995429536149658534177575525787723923748557541284005567804473328135935480865568001494107860502250611684350204472395817008757618381217439104475302593140873924462993524594717275370581956498728964140732960567100744523707400023527603820709399595800962485887125079155475884727734951487861227144784745660495047398419720365377573093612651382813003760834839777011133276769388499135705424731465472238039428345455239390871400884564691730525545068020390574946851899321996216205624006364987721911855000936591690025966339786423774839927165390154169036972757622116565736861102897926893726017814635078141614514363209859929202671001638589813691741251384962370127630558945571419624060897055819259138554640770442595229826819614363285232276337187717018695021260449799909947918598896315572508893888935104395331535995495718906695799866469413428198997944896775679100425620627796008230261212325891987637191324466261310108314513027045700170852722630276706096702069025225087150587477417894347684217880064717529490573000505109591955265350249519104447459389050056829420947979178217367510338342591908611144042168466953736943689114966160543571455089931981738366662711504865130688613463333631395466058119063804275339260150397438191756875297585076060657159611344832137308752552214731771645012740599457830107618348739644146043588632645403209795251333339861400545033486738198190229809445807536130808400598186554212969947646922259124070274260760442394921858201817769965929762809656173121976262695177937411172493234199329172648572035727955282828340776954084233950927966765291784886053037827504337700912813836015840305067008181038020143231585084002312714028040194818676158909823444502658203841459965681370762847527784283930092049260756741451266514661591657622852224634684127708207397738479655423075150155825049410514758052966661152786681962329699876104216255001966459147220121434264492994459636433101567703946655093362084349071359751324740286336408787455031447045042645432849913182177468018479115150969996197997685801619176433894446802882538439181652123723578742115535350614563199087970987636556998814241352530937441577907163844830764610213799677070845871543693240100519452411048618936886090115337575165718730227289476367780575898609012645441748747341282838168098777258563263323508411044754676502534482803645085677714949095910894657262610008075544365298151554915027572913042528946200673174425484029088643301301157597534226375253855464697206298780393748100218721604128757663747715678240809987735305752132332774334916074183759631850146302624394545597473071838573224522961229083640244289578726709546895507127199961913535898915222851640248169592940095640295734832936240033002493216118912458424946736635401101777510728499645623575030925075948690710282595366536520014744422681972262208816208655944807817898076767905087082550760023129386988263392793908113113627299489396726547610227933896141588107215182477222960995308601749266288500595701836858064700644949923062022815600236663226780232239470749364609595639571982043929215926142787230910394600700768002071787459013629008765105694255798895453155348056846847168800514011664231122780051942476542595636850624566028643171588921964880587271389362933136687036597470603122573591741616225208794596019057404829518601512321118502307093177076525879497288305552146372525220275240216509417293429013657913915086746598542021347558470682414198098601975976938164262504219921822521133629152083118248643539766395570386621938099627641351540495505037887794777004891265670976307204988061730692123523683155399312403343902358211186405090652711679229539162029311437795171792705901173761151444159276729459719181927417824613442268205394302731089841139246261628931559973374388084607111010532849775762849864357066690159242064951775017851587123042859395885069698238949045614269633307736842737955973782372814784772352427469938184902714187833429951499093573996097618415950832420300025762655613781204098126245168717184909871539349809415943723103578031885083586304166986146343113528401935464943752181417461160439431695573972327129194368071120029151287281512626839958554844524718942369140766951952725442563460742276928048974013934009582451704242367296741392731833995624326360993927499662696846868347662712486898652018563524801312707876225612445288540283633292442644472425512239511862539905923029882299767954110152206005890839774741801913755549793240979058682863087483163989483510624725136054782900293303485564424302887216318947531451831849233935788972530035527685711274996731802277264712795821812315996654041321412727578250194519962690523339207338227346957706755248207670817569804425072719927107584351471902604253076596261187799308751698134793266804564887130091308742176262668340101305120351485970805008630606326409529128567836574574160140830188761213236018711263484558759881987722630501837749888707192262560401045704525713624441000312097826396481817300390235396364197201400508637514812561873767221859016097390350365301257791063731251418273172086570965819776509707201381416968176725873120336013644746799572705785485335967371187349189410708067463271515514920926090047598622601452961901244181563838778072217118231635825944780690754287092581912162901213437005423960217786038756692318510512508153662422503515636153117708685115910032043697271809344055237655263598311086884171711825238542928575220048806485630265670180313841834614517724752552669036248370107085374519221863987575054276074194405039896576672936587672513787535641513618150319237428245552768139424900534664191128424912990720411544776682900970802321933657891334290837211451682708523980029384603620462001426601257451510919384081237783728086574543604013921548387187014423367100636870520446729215175854170564027198593433704344082625257982491681536925112549158280806163767888276877404497661989905101820192406123809535840365144948995902986793527183954347313022165995232336272870592464601709825741696259903553256845696078360627895639659025959519123619472255794459301277865615929894902603594976547574975458207779018690405015175050294845302211486146500205143529167234343801669874112697691899387653091337186462242430446042825294408486515051613483275963828564542019177695348453735458141834582192597271282674098997090368035318939699804396837325399161954694180519964442763509974097690819512654351920225470094550870738980182529844018832660307120381885852330347805564236098245493306459738497984850164945510396561747315194553995355318894494351780634146058100294270120063646256447235720632358787723928074512358978424856962249564647941582916979467555216709018250006642034143444924335767282797540802162059983877165931834163772252862839071717278401635157402058162618405804043234942977292787111727264703854451399312832743818886522296419217427053862271445164150050897555154655000319196890734819984317169826785753550359759456393360768167450757655136245087655802909231360682974199040478948896135284496859011435916969885489231631202445325532456096718361881813272851708644844915060592393524101786056127599920767508114563880054214335786578943420084790893412038783346664699024556191912168570148661023511532828912174681320543864863496869480516322659921711196612279562445303695650478675040904552110342505977382560678808057226986255202037345685965000686912427869504345696352369348034477380333481343114245805588472630966144845029077558415635009983460348056186088588764370509507909448088107938101934310693164389786628754864608957433574443821441056113934586672513394472486859885591019971686564199403198935981057476699257397345095152320652583847209239771132590665756349242191450510402189350966840144222014122834412779128512513101895940839158439963001056294819769858255285607711641855745881548885031778836768402597488115475171445856865891705095837853255330601756041151909784572611186770751530651282719863702829526836200083332494037862304613491526357408089318517957618227078149412076178282176704153419615098112296815417389482293134712636104716444577294555803778471907125721034178971177171693767985609636147608412763215395837255905250053673444006253501937406169223821329181694217235139986070460530679959691513288845737144089018549174659103174560517973063742253820331561548386327437090898316230270489107316736652562479767543877443884108518025954790862088416164488412353071694982861143257396674488643412772888840577260239965364726142362433035544508235563146897930352784385308090265532430638415282331662770457390686400502054631671484355332541648892354672047449759975808115267262116565308038360050951758221763262296139969977321232893338461499581514550054536745626366672972031912830692509257034223157520538073664206105208834475456152630119544965747785330828416394239746073682871050428977553485437022128630751725788190735601237897358696124402955749983755525888635493884613777026051392455727626396373459835598701956802247153896611664375831139563888924547568098475213267668476903520842064602401446577841757701880978218245425799645216199058261715518899591695997017064562709372292403479154270370752651932008262259342230058944541111632952888815072168681745052391216105160472827284309704428429613973567456179921227549701753605278607058881588307796472219485362155094165375380998425494012235525603660978144487799669002606193267148662482589097181249720555779069114561692698699197224747363437640492752458858080527824435268228524260403907796609630864935950685530955297510402223757798007054656308617549544963353983154719718969264469903837675747814598888526817002384347599008386547909356144202611616713693907657388001417800494852941060612017006268849543998340100183736565783748361021676475854513279743337967389135153666862076996065249415143202828985366886972884891764779747460725633327920202037712295662252612088336359457283516396766144427716794488412365597306894896917612297212330808130201865670131342712528045778206464385551406826082244364879229126857764022636729284038860856520475291865516270964201248800473728642783968759057019171514606940582203956183020732970008233186613517254476509697981586258894587336546881238861249055382772109852678264039561733693438231337393938975122780956763848424832081991908698827703369346668844711013140065433821819505152634790454695943702014188207956911931152586958207076458997970001790581288629864184301562941938791056414029648218334706868286655102256801794897084757710550291710237096927219655406622379389676408835061573375367922826031822887669130370745628313095532773451984876633929674828378613519346527198343813654532796329780602161907332178647065604619511910103604686369279207580907771720956835010506047347848058429478746755443390185799371843119071687855450765490551160506455503142099458204095896106803636970985990031404226444791927912435619183969373378994281647112890520370400770082441084200788485200078963642465078661020299258622144961899452442459104321408655188850393922115323321214795131611365568253494617994332367066914245716724299320034352700906984382969998217117334751693355562241791247334286588917264805329338273813487267340612274474961364475797656479802442471212536213110867677043828029333955978099708764007527982545796804478809666189971895399189272739665539994838315897158582429054697003760591427025724287877806194905861116205876708620959222963349752107911022390337521212159493991575260576340537944014641804291900936465837460378334143986181914070963870855748961658245629005223933565712971674947744704227997986172773449848232005979122729289304396762860360630616767522500409530577289192746366738029059707966449785915412832459616480881661559107337223104130676183874307715515623377339461535579592597434073099009800319985716393735373980013768217027152904178594781617621720051796442335431982210870129878064705764619154948912405292211922223068690945573948725775475580870425786918811235717165791839436835618027512993278082588891780718572880273455984371795489938494642243589241401793790977695851709784668566577578017469224862969620348363313097747924812041677671645184017512189379920247501192385977008621150785876410515184517850360735587141794304406878395935025083756569444745724052802776073660650283044205567157125485961229842213222436319048394828960367640005717835644972016417851961809122009526964382050005616393519499026442447335255535422975460787665555080381185831302596971333604046780466588265738633053472836753324899104414153329614121953659308720284593013358437659705056376032949001573924380543351605577955501955704398187026508777451404174664924088749395977970179956223714163701276403835064810377878843846881494907422988641411939545898470944579131419635618177688943847065944642610126443502540521648466718691532795390959052328178514344254200383936199916963940213282405797257049308749902444874574752335570984418935329039717773360264663893807060726169289651107259384057092214513414676950759219698770198989133259986738795252532750319509544956301020711113032471512196375004636487460718892953333531378677643267722087613801972432173081808889353439762431832408865850036454318902574160512127827494525901609766287804773603099636058430984112783407078265504875543571783757827486532337379330889590811438519945834747814657600998372565970399715725615987042179429326084981079350906568213340115271718262656424668689269274383660567741750747409208494227220169596644632442545239660398844174552581219160027271529660940980354042749360615950415376401306295161995633726163041590810397773281717339900003778634304391493689610316960759512330872088569863243804372499128156049434130207010701148382014323272704466233916651301869584150226397575248026573818077379213144374457000806630641816312923863572255139728715088039120697674507389479349496360814917867052107022734299508299638972904567024046001771177257790252807626494454623191634969142690410081049992236806280456198763730731888762109261125697656852068698266890107648306013174165731848409361748125758126124651677758337859732791251833362386807949926746005563524201694027857871139589629166728672932166754902818083791060235385761232614923097863556046608271103664455977930707242238534226755917574080180475133379713727361529230622949885989447684253426492007375661639110233262770593528190173479371212171561579130047865394190073401179078930291387033866052273330201106354557873120236265949538525798945704462241170913902949967059679595848299804926461212085329629531364719457875292837081200271124826747399878178416013403622346593189818106733550308350508705763193951639081221483550848782897171213382718062917543674742264547142670221140349894786453901397957706851034686849594406501350869185929006400763303861874513249992327824375889329619071893321742772121722317522017266753106050617637609413995213928150540141048362069309276202887397970519778724633800346550794687264926460171703884589457791039891788546349185463783970973957983360317133642357950150610935211989008838206001563289341594401333194118548286604865823606238928898431418224608173690111813787666795246030030351925624347387964449306854242813537328252883274625027675882410501304112726898220368385709200076724669744817737561448034372798879826094298163968330423351175061398805666543375822416322833395512352235923623296337505150433384671222479570571179138556351469182582017411169806215336825365522639021806821148596728315844899493658196365039462876383172318291000413083561370989159733018024281793012076808621759447926952386703268374602998594251648906336008504995512859169881362541296014105865360184589931981351398517618707459280014682165451542990579562562660542260540227282719722105414670432036047694504512087287207789344945730702420734664470646610519583218814982575999213301621714720332324597667839988547037850671501941205648325686333892665044920481770907567578357089550127909843883948067367276151232731039209894168449012734231744046770030298797421581419028134458743037872442718492336302738734204752824985163199371694854727924629350451390413544849552134480843204005881703833819453120992289426297557863627998698635408187702045487917082859775098974963907806489086359323113991263943057000434479936147470258449136711375084110291828363375199958728444457370017295140802100003021773866700765805762497458514972327903144561915635961571223310057830307294595543172904044357030719065649068541055609984103331578564497105692463519547989683823857525629634556576197722552251530374440011545118440155300089586471008559904327910222227980801916025951382406556379639244171480830717708350599268321120942504885587512031255788558190323030218616447033905474084066173609699301085906556628137983195678069861965924190221613302409842784064065694788537479451621059241095785595380500280497483707920085042912107001216755565151893001288347753223006848690946760410450854354966139842816470540051196985033014380957818346891927645974926191483519881513311459304741442528798966030145769238351012296493322191530329918226691254222987720541498669502379759193947654077233694106938479965215125387821929256291325362316518196185974813448515251130655520998546728575785483955451385881099556810955866248112997659355361755222535336420589886702519414070746873712945238777058111300803164526122071742302592810522225940514889324920710114742396934130821079778654235221477227039621755233938968624135952843453054995709565356206324229496248837184480823909646902159802902303580875079587354107097328122225580580746383217008498331111220053361909148056372499242979043965211102959452416680849351134953599447733432067872985955600311933195195295789509758028167725079309152069867484197032778345434320889890764200161957342402820954295474561566572943017608242102834874416733749664910344778195760336942970456720199774285823933229999477770125851424231364516041903178049712892924400703484486635943228791518734300441084636330582664056672609095065437073762448828100178615444238608059219748956155275952494362083832342307976062466694285464048439950507611586565285548070750985288182883498566983081219620210903250216822262276804981745220415850882395892631656706301619618925067297922781286707838554245986103098928990021448976159917902844197547540071503956486410510073118322485296492871672986575236736496341918177879922989954119034602911855808021974294672792880269746787585256776080313475001350805889274740649319637203821583153648927434952537819855257683858624747693759746404937087605746954915859697041174679721427435304565978042852320163339007277422589046651784430402723220911577703417054637716356903950721578791762379936572111793413884387822901395075120606239723745198045314216288696169286609298214501205367701643980796227570207989982257790677773104712213969824826691925542637592572063453840139861776456527360536974889508857072500614988456780438827232644734082641297221377108778057161579018292475300830692582643967586077312323472637040821711425520540764963238869563936012911671889602788489424167540702319506148670911671627413038025000259047812256862825566285928701701201439701447624850333358470054635694991827746215289945640928485073063353698679528190763694431883048667275615667056113574965185590447668444069591884472677217338744299810831858308922839563175164164237966277601479048146720479879592227539605091113665696378607194748663225614365045872851793370635087705724513113545487917248502735814704393828097056490946223705130482437214442715484023697800041215702720940110794474628064918284943735638257306028481381822015068242325527421347191004984547519130837708856987319039924427113474264183877058925778429214035418917718901443891331299359712625113038129973488913956171065060011034870908965303166724572427684884587278458173575328092528433560561000802350057689365021401553046702220813518394441738696478411785127216042234787079462272995779201136401660043786045559475108336776328941140508376430978039670834894879382940938846214608629956776896908342925566107836075120575277574848320200917466861386405491440523521982330192558401114186742173217913262367503976979256951749781167338115292876058827900246302541348492970352236244261918331794142067193107143578603311028758019231243664628160192040533655616396054185818751704027875630957871062692250325087592596374855143384223018415912507244941435006536599741342034634755264423657300662438040631841140392333946098632625305037260811648731897043881214982614779485062532568260517150593052592595116672694018054421779032583319065059246385246630284884961730990620309020750771466446407676250135820141988425296580700137917585575530787129204227636459394542483619824840038143879879098730410705736883487121222475061355119372937586607779855352137972901316109790466794918166193610099580140461761790420297970840137851498328008489006138613284452873801915871309507938469502873258624971675813279397223964263449762091010095019072830901748245790047771126606400295765255409035126464072912375419412853364504080669985671754365028064429995539540606975378098566448913743953254820916602283604200023276351573417669498425982533980934640885663102420738992860556684102549963116667428780337509825953901793651393430748084595883617584790574081240074753757373326629928969846357631757775312741309125405010366431994561670903499489114973339115455560327135038343030780818496841258235683759344032238696020984241032056582670943821118597430402806601789896095166908890015997756143201300362974582913785664983731421277606854383062608955674192366032285228876242657030698337639752082809496043414741552111946000984790286130196704801694092917079207922237907101261256213039376138153036157603577686808332966180746045779489892866105091893762118523762513612553179725092787576051248258817358924070305800839382738317348869207870537665195158271003203514650600485209555148208385279947054670941450545293395410034172177654950050230229850801191783278358154170287783328276158131424002241547463331760065158282757215112921104564585928134038882731044278886339326516784791540395850132700767881438391924309351349933673250344532008040452936925307572519092873170405292452515394474638865653079179621894457471920846792368488206096814207408290560793388160798463778852440473746924346498762331439911207093820150255949518599959506627334254258089350692216158337225742526448786009012952766847724758019512915627123579349476523517173768262383739507020291334860498423848734645219992723529173108448700872072558641079459935387903510610749004506217736325824432783847038769269141480947246761952204102985973506526893632654326589589714680580995397820865117472741867748781882735485003082502773013621036179121168713169444771862268923661882611021947050546326771849577936590688988119390938372006148394916710095499980437751487265144725326400302709167379401160546843215773324081543986709918641580254006415784460104523850946628786743069158616345823900511322050488474753849829537663042930759626339079145075825649032333658746469440155018734543929010982540027813552279767207499969585159462319970094385340528893194163174643584285994026322712944394218582076034949637977100645003805693489833121254089341122646060277997115772126502872157344464331330803113561118886821482828639026537632711862251899084468751904005059790495430109564659404874324271250341465896777297355616064181751700435664933556201323692616647927077691289116751557990397348471994414029714120183401643926876944087980383413185726113102548588116082011239084681412592888282528756260801054389523875584448057848687599543501089721433097041958978269257139092944853838921541817836931731929960252654050604824327290270938033196740561541757018342047171347416133740126130578016860410059824286178880788898205408173405634263572576435441173835660898132405286517460894079456342408070889205580280175031031386625487307259565464079558941621121548389993123125876948331332302008608428800656666174668511405279898337595872596312677602544891438853114567991796818703264747071809504580703689487913660227521894062913072755654256477821079594538961939794508829542304932211629504748996098496307581242836995049058068414774199817565012950496902617856981181168402534762772608319901799055160163652768452755819386881430048916311269862866523580371824058595066429292945492498315291694007387667007415454981952109746458988195405404935392702181971965466302346521082169183259949193787137796974917168428303809933512360646154405829822319586956262840787732825508216691455645200211940562300394342907403506011977657390869455359870404199988961257515178395166348140493026777969843280302449577344876248253206638723210304658468161756218557857661816629239693365531258153984421701758803551781897704056519279167018266175722019597780876065863729255447233651319450431196161601033995807468861143278342933160226924756735319140132856592147529938551437051229808439285945392114041153117929598885496758897781960621186864041284876180991169606280818938315146483384942263691650224126557722773143576035381403910323877807714744342129586193490937751639340796149751674572102435187347343560406843904166438303719690858766387263610276919416584303066428468281914710497930355565599412788029484814813799229950821832888557426186880576357033238546171973255351697209640248492442783627530796382728098804659126018903655044092624895606495436108162556594602690970425206109399173590267489858863779069712846378303847395104842122825774454663224805973290701489760268777017103931347400332638878640700431095272552766732780106146540911098051741429188204825058598008112338050793740630247126403789008935361615162399887469449081828335523192278158013471366358734522137035999450630793905564311006048653483122730078118880288365010266783254203002016253872901016478067888237004211430930587074365874380293119281574316930901460779035693458509799333424933636197242726364221040420336068398847698362864716466434594655899274935760097752133237613261489456458232259731075721965304592812459837009601491127678263378512042822237867254613227617557302863941019516448614524657724445480435643993162731030912973384625333418476094801882424181462205515047050332681705068058438980860786768005342300653616249780399759374819145088886692437736522354415762261866774417126313067589290869646584592529597150001928121284403771113350486360046645927785647658591968982787800661405346025505074187822273812140680986583862632077798075435656018008684002266603470192570951298782267808524209200283826420711763559137985176513150420643554735759337121991439115823278895149047511581730543621433689411010877838431198665558265303671997747145745437107306169488910254788554082693942886428825646345286702324766540145180853885761065739644109971450166557513398182755913920797723706416834669962055008856084196239439740246110279816453859311318306544457609619555742749749098774906824152764387692658715491949345601995206357425388791820980234780733624371986748618944229262123823511292022195999505263316085675911965031979294674791205472302600313837356415673351746459523665018806183481053370016157504731841670642920189701199900858820062931861268348276311763426937325690532146509412609180739917519938847905308721071259967368699027517144021009075978379503737264942653409295158071316030905013505594366513745418065842477085669752327725353341894327586324485912062249746251886433886407926258520702815996337113057994126256991935736113132811826521288256138371488900089594176793524993607256492028474793003461549271760637700823461018090923198118698355140631089819216759328882319664523777168408518485363910579817426610198966438450568030335913693771485822704368948878097748626418874272240741032584370088153113122690925607763948068971699737526719098369650046199852716344798912859685757747741579669477146388827559963411420033014816885687733980118551681848496678177008821299885821384019562482581589045753382645299100199768779419054915440231273665138291060361907933508832802424074058266008644032081730359655004862067983088227782441447095936456616785444475274535935008606124366307835940210412324768221190296345157087041231362446896130350493793972094382859336418842625940584789128145569006830262563717654759720384996724900380374208568440711646538327834599775169622821635075499371576510811698324004977914773300246048999854228220589891369925865412844003703930494229010310042598030853625191796770930521353576068375926451455975712277746878197852082882425365942869282227358165700468786296355409855868822307624762755740660261648011078497448331020377938056457074973127071810299230936554026824920724372566315023030378008650957573222086074639454287229528986056953651077967688616793956066856925099666530145648064756441887547341112000818642507845220936262658056035692348005155373978858112450325259292190401505683559219193457123607440497163587278431753287049704735586886911343791645331907673700675716780522253303759678969514386298502862884613729919295245216478523191957125543049619822641182076895727705285037950133553372275586865576024548113271943399598629261333880602221382115403408590209866453646389366492746852200234032757756922195462047975878754774161663697743475536538121170168241436053000556740500843734376964308684429156810229710376581913407001846100838135252196152513420874849292168405510155723299299757196674316545043279002557957090562786482738781260528787984400089654349142783770142708687714832448581285418257621566579152984200591811387724652831405672435866678890206717715748624769931414780844187765358115112161456860788666830060133445792207842849659747622842875582282169430523649119836153500265654081834326400696221915423657280602249613946331129946800357541899645906183494208434870144114618494622919612236754247053340704736117409784344857351669493998490354923965537536669320148706535564890635448390882189784487662189638270304780801020326537729922051706532321382508303790003098209399567048440156560437098342300353133308657073717850565829764870424974406535554753444306688624626669509406220061766465443361064014846584762529964172349556951726329103558304940998958219526796701901913856996363297166356467179648640214198776576785484328844539821235992146631778113599206813991887340608752666972530302236517629293750652222552687367496800671499143123815147203802995744102717368904827831240779296860522024278296479479922604170443158613281311127869127134523288712426540770070951491206304799122319548678538046551531196795961676623587225652726526851827007118112043532696250778377662904277575337058780250047848665327209294213900136236449624248482319338872310237036106795073297483923549303414905372982391938633010453086640681363021425608294011355300544216818851234649615831315466654112076628847137778500002819374364535447593468954650070326639893504073348924493668536918109554549136812891186580255110359851432127563943981666425105168083068889612978196060527379253927256054743499383012564144775532022325633656431919197739198271313640784689724965175723929384710243587563888248433114520145109991051578472528779113861384366960183678046439829224600265599505989358127255534720803055751969560773726675266477253917069524464425552419964289204423373038554810058059968912399255805601265904142803531968690185896569092597148057987962833726735737457624317036889569070590031101596210931941195782244368034172750423971666614913210454946803629992518951797958555109828271629433183376489148591976793516452749014366806016171235220086167764836527090701698692620397582568219907730090222220528196620437120614015034779553302680694752595399777859772115002394450877892723188751792476055701908652926180120095692523804869063783094960981930293272011571017598362506436778452943438263645712490855917592477665292313640063807999483402684282297824913297674708551850615298946708385726993487483435877885724282615347987984006014233303656007756221660872437583631431227437354511367050520993719724481272204876746713179019447180748702472235448110245026023074923306386397183360092990217271039437272233558547000650323850444805664371491933857656168891612527988036030938477831729654844385888243355850213489961167624725516240128331769341473018159218587148970892944979137612828911855303770596847546601719076172656305435303901594105639372003408977090933131300320014347960379236968001579912816180269133976404740206525917625933243209883141641457355038365669922024206298005798828213106556942274128356535713469125527755394740024572901557193371490560939243437098705586640315161698351615068660830497407875118909516703295230816092692550516429004124064181328073453361784821125751901167900481261556624790261578101695260622995921015237351143522625025851157046707994664221167274322817007321930328352618676996503078983023838395001034090847700496970180163010609275677137634466427114420762756888605904928031866163086826053493982574285076493728623734887562705367399150454196189335765957627186883880846538994252483701264336746647850540449533795002153088145432108938885528060657363226103683373480013354476014472636028449984189648652549502817227467903243691348655697542073428361316905825836876761147200559840201739291247825196431349417468320479641822304527049110615595283472202011662740789549215721784485326290609481611574767008194866665296355810898851972562095180207825069095962455027646284654340152027062150956076165438587179371010467202364648762100359477307522866272309491168941256904037794271019270570895635086709144409139641107209565526562917109812085645322314644165147749730059749287725801932552315860502897882263848012514142883756568311525412847025939881920072850959819666308424825586481463788075214003512626091090903431206164039171866799214128207649747524602083295332271911072056039797357917050120613412684151462862710883631596963307729727146490569297346416239991350843183245866216755590448602094586230720128361704084644742554328807150101357886442951847470031134094504098509351686463993887449995604923624440410760777895652552624332420370349384348627520927989265216993248615595485293245142469870124487029451776654465387743056028125984513600165751519834358289936871831203875793918703799175425524922855918702648058963917441888204062685881106976488443439456721913315329016085123840601873407029170242836774660067511787475574803917761309238541438142334368970913842877697085223523773393725555123056834423166329414914017259879941299466675783024869331471499910902033410273280407503884279308691136741080071916287140415197462001211908340530655910495979883396383434175991071734822690836964773595168568003744498581370710177146858276602272802978226397157037760409810804913714676185616008998580290440234231897431589114174660721072056768296048583216653930417961068475278993490338399083208225757389668566933539346238440280685838926683733447080596705438818201614138167168101329094521348093483847376046989739270874653913336890097122843417470711143580621277140272277052971376841954572445505701488245438507923313473768904741147860666652578771495517188814846148576681933437177719349943188672264231099111389136025728328789357616832092242485511653699875916383358488613984454435372886608887516596154420921052463269902152345357289982341145006566195331408093171028064822548285010829989595458660849714861263261995362065295347143188745600466630688799449993470533017221521564807949575985013417816793545333888957437435702360538292344847106033550302033494816415868952068000619299748501981290585972241466081721565284266040207113860137718747528840942456597011795975207785979651207396814165745659356931655984946301204195075264960726177997852812550321365674400181908842603964592734644122204636967922239149184093111354834495281287986103489619692122699046316789309146902715582552834214230235112757905035552624382540832798349028680667294856600132955452246858839101581707434071853138191053146636859563224467512433597698580289652144680908555043911925579325180956163977782922682169374130160808921843172693316575777479789076873178337595819264922598143731461674014568274586289808586377947211118243929091672304523902646471179248396443046458710037879599266433142385898549779178023296400275516112211397766346205727163151430939516284099620039032672039092465874245877332997364533129114723949516751891850351351029258694453034497039618978246809792971318107227847899057757880140001357846306071927218403152063336590266142605889993884723387427995231574092295028537861429100986252742659084687305844543104993498320294125509054478342099786441645585450240797231225541566676565840290515136017032322736969228358977032466364595196511837897816638189637034947453419305459328701941675895372320334393066351297532509846486529468626205533715576933329620468935746315723312663888038600199858525288034258138466812572729961724531040925129804865588985619750638509936048844303342057626684370338853605444608561406493907338078010322267082220568572817260438848268578333602750946734828535765192971635274169384705911617705534414938541740268695743786651236416453762547120745651865529081058949356181287043560792192338138114169952666349233480240523685671558171326838254381746701002895899220654202716847618584119837324028426499419611462888144416634237098865549134803266582115769625760883388174890601879261327464605976960714656881064499263967758742159485374637175127002273635705088060818795474364476174717476306018519903981856098027273018834355353724986131754595280160901916148229224198875549357738707222673814990764388373196328116381253072246541088755698007660254553296453219425734098460387578982895842974347438246736705327111614028494260651234527835698870142314409748114862995776418153917585159537803845718425033410289398983310446507939508695303371136300519554796312434137861844257581894123982717151884973533778196245265947397239858996095979179675836480329045373943221731278797680260858941691891099324718467019791092342803248513243891213279092456928148500866842221706127708115940844411617989228632763888865254805569314222840515641141025200991415669189999162606955479176412030196300329736378031787448860959505629038190299530823383606436202694333621231645009679413747243628331530610608519008989408185990418163614953956756902055865515438041318361303420244864314331574176294292603560239961175412859702399170451938518795562198691907512396211096167350878386795568942686601021141137485385965799944904981156791443223496451159041283940814065255163868540064039176619673655647928266175920282066276454016225952053146150124383638315396404299401824807662151451730570720708708786939813763349247835520866480419206099495092366139083015532385813982760374157427940261586006381425908480663027514101745790842161539814799305992366488394561144006015490999011605678738586139404527992272827176349282843058109887361189409137543876043880256982640140932818485150848612854723157594499621788889120248048859448661028344308227695595317901206808837672009299940883319677363480893858157490102306592810360205139611607906754372385320385662368932233073043618781806004610322714719385544206729183447438449554802239542705302897207324174391065418509364673190223355226491058679512624763594949415113505109125832256461641102802956303700814990462091931912962045696101818443466423251392706309356501474122902053262601008443432618203600637225936878306549139868207800690147758322427461812664222538168458251836229208106363216112325667233600194629341968618098141880307522679370505804617226091206783137004180744988091850485050152639712700094295621137252067326813798286218214387129475800581071403780295296311903100226166734061907492960700711910156536738679500386991766275654263850198204197690056043029274401439993826538205775773863757935844485771069940662003877834695069763441971094651838295565643040640211592006730885733740654694447367925204588766581831231012484626861063684530847907404268613421646393590255962977332012537624804245907604563731224395737803651864629393546495363297322828525293166036968147962148143415208967985710009739060394447614496502247599958035830910657610277821845266378667270762857203260309325311328629692440030477983710449980203256990079997564456119388140450416003056627599004645857864048112430978962835740160113773626094270122308581316680960540695392390601974476743092697399462825778740638778156642294654672551960603779470537960444286924071223128454017718655918366473943893582201028841365685350240880826799482476096890672248294861960733818669662136112325574063939189094369334313199461841541246930394682079114990930889603587413830247788478453254614564180850115505205942281077322409312569097705956603646979285883614130089569578892508823653344306657328124040755550741671669393013791896544445912690953192491964402619712667965523879612492997842132898082032466907420133882956460594362745787789032625471883095797874729526123431179268287027179703454309139135062162172706912369049090267835356001381351433229161462461691583106126971283091119952605680310898360499096696010290635282606036405410583562648482395672836538952582887428161275820745738281117432337280661132408609377965454704175430507712617416713977486467436950215709551944870968873560211895946478947841987546512366043917587025119258401905969685908638210120072675260467723837322442655386618728584732845575985124974902112587005224849268689005198656339418595903487452061996897467362252476967118289960981745531611623207540322569424223092838810437612718605916320536703290707086223572093470534794349391536827653724370919445826339491471422774917040602797091297184491410264903756515947437874782004915563971914426121426801144677769108613725224910737583572651127139490675501179609108155795118417327594200050100478642704306157091285643557163542268402293118877981149583711532347120150221928888011083403892913831370329530333913213087997101059747527310765416261304182411007326106611480910468489654664013323022380315101265738524562076841243702694843799976319913199940338303033198685861476794461940136518237397201494414353017305230593627786981732609741723495565575197748327275319569936038002202178890139839557256414127031332776193842897717042265131284823786423826266402811871780559385362886125518047086580829229505259365742843659849342196593860263833033007759955123180968583428759533724776858295808705201099843122279330419125896265136217450057817326053894763633639939982692586723138236848460330243048605482022248233057013238823367359193763740041839213878050481929724914492882116400023341162957296247131461149654237460212506657277159836512061124436034925851929113396495555135865395787041859699942535629616006543128619972952025121684719879049282378497921731065407206085897978626241639063373306391449610560575039487695742017040407935237220584041030016974386165327162352003187296271612460048455293702391175791025081322710277050531363347243941057635054856443838240853022400122285611991916145466060740664717909956932747085785080821713937274886156826156652926622192646277472931954850270670695878146059689471962640794517084066233477982408372062227491589297831737041335472930819038814804875058154845199105822710697003722036505545700744243275987792375396195191307913209574579890851620617789442826854925466387840135304198844982396650401790957595399430781850250013548262071896442950388236235535828195729341004212414583348203725472232751166503788704413352931427519547613149087337032579647261743648129005514490754644731013946541970740333987773499067232322155752040893805663508476654414300168639943697801482010320131703658406115220576304551296507380130056606882731633771814991376455027907740427981217286032740892487275020473790802601800653252965169686711047646101137907747546679493041227562811559657855381433819153441367079069893970544766826175941050318356862959149645302943195285582187222540455201679189166328547044737874460809134160086824181924469110311779644346719160349080136396035899621855740209498452811825442220855432053301049127866621489706269588656462639872336792789572335321910576323531982182355839180693445059832778287932141834901278676411922226062920020556895077349914065672265220176093831111577726608407061218176141321114124435526790581787307215893746652132019270350622032340646420136504275948271320755130680837530264529511842332533617747060254282176684236801447133423322287763886831110088251528008815130761254170439016752511785013422272256821511505637911842318832682755576194034904849552202105490045504641970020560540587333941132868484483811843066170995753168119576663881065681715429711252507660687823139125164931021847504867668299893377814421691413746068063511442057685089311881052412671956414006681184754324709727863870182758007760158448989864623486432287572429752909741394536135275935910603621806718114756218076932971260546130568808861156445354436733925114746016256646942100555247526698634361927165958720483827393664694645708060254870257878427404217476902855903011294771936208012852143276309088847951787910518048319115750987258909592062993046135299241116443421217772017729550460826285148993561910526275488769535310411500513751672171748185549931479574891587062911199540989105976507319506756684053209320572610906784473948149855598867907835366779481042916819882494897040374783938860683206091757285249782056158468553508269653525327507168258629982047360346546331818793827777547918315139726441119430998858739952944900549212178467355072577621472061738732766384779260705080411404175500770707876397980495801959539102897491128743958141392429075525863113863241112217007545939066378193918697920305559661639642683943094260295327716598829686636984680197499127586567148094838505458954535022887006078328858971603211324520401174104761128588732773516222384231078131544630914236848448247671214385200056945769026052327308511585429253584033776291517940692458089993383492614242994725722431283606146055418512616558305652359293166299060985542117393133458766658225827415837586477802877944026311603931231127715609339231282626461233069015942346498214030352664095876698145848047833532020971788601983801289810702957016442415287255989087729032383600377996026057734586818913941890546768240548680291499433188225830778971688731948620847372339691532466725989454289468406291630687973446234852931841347371558392092506062505337608835850600567617102109718912365295104520233228022695568447761723836857242211856672799162062065001054032783556454992188628855838346536015363146374522529457158699603222686019723626194705200986936980917006770963991055291017001222504364529135074003769126572458467248984851669776837442756970844443582471446981826532514665130761310294394360562040771117125490391824773576338490949686359089601222978267448585254616732392523607063504851164914630745935808552860396673466813285825227465281783830354003567616843055084664990804956945077171795309617264880889845129675896453577820867220973865865018185338930745323455265777519955240163453050402783892113031613190097281039477496303476178722310567522396316050457306347587836753852045724087340979908681005654286852324332110222239602541490899453830783226822079926152602419283496205699254895085633528704603880407599841025658419299690509367044269419800079259337113664965166975306325639054834477754114434320393336039005640814964954574791040531753771107884291342156049896426103590100175346397997830210585074000036716936098444866753562467371272635243684080859533682946313043148265638087912887239121666620469047372158885460010925548404692795854253272395983060766518120489994536221172577069173751239138035540455427958887083098916571076055729262497944284220619088643139994485162318979127536362323262064113988727194637546748579806781487287165920599505096465879265758848915970492831113462362171851342064893314126462930550952357803275829226567320126871946561325292745658090255341976061989895264551927279699391709670743021182641868389551944241661522791456253471937174902925034630292049992583976197451536723278345595366684243772061593973077731726690058231897457157108048368511706764009293464879353531572586233470627916851408280076280412762853314419314736262125368999805190798097978681727131662582257759056699779001846180021148705187507733656840578358364428819011304401450252639579002576483641826236056761392674821694208471363617348648461331385724722321773655944900352308480659880970468848177105549293764675780964311182042417502977101394605469365741105680129804597668221147187629376171568272975051181477354784550579029785264080089989753672147915361238375906482488096288242592817860797863109870687016093287448045961103325732824556560125676170604963840006851988905878666022947995155889650850929060975753272227679541467933357024409570631211603063013012124609894129932729408230708247161528479682137179888154999336925997605179865615297587888374865023405723259743153037444941941058299098760930680757677891685606147758620294359624725493626811927696174200723018786289982428183967162267989373342168122913260412466064520840189013337538742975725722715388141103487463217679311699922527176673574865907108369395767256739207024035968945056957955069475842303057735187335257230564069087949343866379310506109721124873668130382195835827071187824815186247630589212898201650620180461903197027027505115877908355657369233895283321657577964842640799767494536164757408936683959028789983243100652380903873864056254914464961210479181815774779226912710149458256399561777177117851617076126121109508390537657556416514337306848078049446130907904415819711565239795606984026539272142071869066784024792310253990942000103508334010743518633802301848666357959753961174999653758292176856579045831049385515272212207154103507960985792674300832844111731944242515823467850283970529279300900169403421558244486572262648503913688973323376654537704339913530662340495522877172997978619238406133274799663408229861725865972230613543017882141293720525220599099589805654621273290409882870213889971289916417665693234562392242871670248307898499908554888734489768038679877660939358361600115303571169550823800433376742402908131840174458901205116400897328023588506188722420477417556970235303526355232512545630798766570580209851449261790560009375713824031383796531139995418653763677406107683760846972191186480810597256160702588650490315479122518527770717815168098362459050826309131096798955938294592694498867709088469306001785312849726323646414598693415938119495129337015167364516999652823959224094416517318352960211224936220424333146350357420677221871347547139925001070814226649237896869821517598993793313950272030340865631704748624883013682698238032092178975039342709681204515622210027376953371251422820004276588052551041222950605165763200329958693836661752160082428750918369406429603580411104515856407694984667012469726673307429339207371915771101298233663468318452090981905043708839386020877541645368664578357917783559696756488742644548097778469634133059315869204236370134787919518083532184975183413369353480628328804623663278151368903290785715945187696417143223744364891055459595968509524150289622690978065058766087270319379314038735624410203223070247996281372335995318686679914419364322207529744651399702503692558370994021680269430989080462271245617999734990061574427393215201704357132425301744186755320689011075685899345889059655252106819135873794681324746441948938134350556891279193719361839668790523210714838670804621012937097572045406526714305649669669318279321349276686204751992302482392114493576759925976243040272633714197633174971267926477918677617550183208792625701775884355967866842404651429711136667098063886335751113768147744767848592689714382737854261037979220697617158334920493079562375948440310059259275183927521367081309243786497953831104060311112800520468600699653585265448859049446200101249627427223877095004116195850800871798065018549972762132260153931252376678950594799128644604759999276488510351620125871933684163409660363309594462324725996408636997270496564528313471269719462212262397545023329312666624803783238405188726962758003554483569125004453517030044922945139549167062728868715691056470587580738697834544049296881533369890285486783185140278384187858374495758045566876757491862832973159125189146537510018799610993879167114109870483931032416945159459235099547521413464709076561134520634825677294215946143334058429150459900128754008845599950082934782984152101521236948204759207435343858912449712626845707665048429104479497566650625536289174733036074310665404389180942029264281055186262930055714902786459923741914146036062671006686219192420581383556717030297235728616091117635217290223614429588893222811397543011821402260246421011009022611182633593213207751089561336917882814872341955676627137889583359356785669772680695171438443339698454187507628815355826458074935654355291381715131440410260599100142743417596422161152807286986249582946138093715692987298414930848692670162672166939824443906597048007929365562088636283625579400644227325861873998714836567872659472018473057655566293679163566250053616607240503402334193598518020413561985553113217239822072609769834123571718191864460352138638395664608871705735251710582547394641205594978545383904553163458516591893895597945633089154186790551895338718432454382831630484905549909410687250578445180007815930445084768866482699697668947971967897301571275474028383943884980830764575402494131728672145542337126420321149388513043893861606275407809669340125809289188317650105819855372374075905599211800836125852106842918667032072746817236226734193954188889853635014522833816318117586874450763910526941439724641370619825783218956852894834505679971321709363683941526389487631477983060022104784342004516999990169526493916991166504798702772105901863004707976342718456848784713661295380613537142262300362541382945236879910265819255848311340252047231065927077076358345832788100210172605981898737134817239868167172740659022113135856258684074432629233304186215050135442180844706845028627571498796895056660251644238391148994728651508247156543029487050922055307669370608723324026637613389988340504366931380515501076323917059211620524498447289415771531085446701003907798233292029313798981828794186141603416528280462048108405669421192095864630427908019400903794949930549277414483012724914457018202242088552377688469878556212429840878168683756756265180746684736365406425332384230513554361538686582719324473260908652218739697661699800306067304829973436091484435121646948332291820566202087137515438154823570690453142399651122431291175606700090700142170331346649144919778947139906941797868973181697978707891034565165194267611422810914547683018010502686097784798437021713848434262696385437034952774782798550731654776891229496517099794018130078170750418690833282854226185621789024215717151329120607368288790499887528053452677387430176441937736719659642031857105698269214338222268852491792194434811824571654872107888448782708660525367619331252119983582885321868429728214347082976391648056750788494127951565196006474769912203732962373612131875805246785365842676661149375978443757949789354984353251016844939140900637404182797425033148618603470242361202262298613117415263471019671790069486559569443220313892886648079696517679651736301739412832891979926566700051931159270439114772838710083911071664806685976617473551610782264199247398636557924919266814760860480593652990950730470245686980370661240006558332061762268948909756452050942962677053614683519408093885581933395523214492902552089854665511966689595610867722255756765123412481030042543256277670597634681923560496409332005602363100738227859077978247431190697470922117191550558041483648169634752857289901660049290309677327984804056310060541514879187179609870529330505909232154487231283673262439385120557822850871264433963226043638456147953600283320570270529665399504124612555705684063731260662781537051088503596735134550597948797215900867251577962561071476700486836821645017414041461618436730268560711639837727640317459321122971175317123819321884493295536632912963573593597645327746688874801869324240519730051104951818647524849750739554254058201185003778899725221841853106320885119725037882496150141492473830664582679501986111129853547104025505400646632296292142112291772688354085526863192477230483839559099796936755997798827435095511536551815459377844660667852800758431407688763058711486448547702738031366192120892359500233342537389883441064583353234798482952265830937804051434008920435287278362007564744980572471018465956332936435276738129137431277334250143603099269210137543379067450825340506199699281026111269468267308217093847108151231935779056885729767515643741593006145976727010860705446994393025322708093419525710894013373647668514728529052417703757784797895149045199413751507192036532732076539481607693921337742968958272338887960594188767235162303136856400970549363769529358692040102555551937007227272258841474517792840669008596653112052422601839389049018661564877283106162428300925460269647356652523133170043487140428562927976732589272061096512741651677279093548137148269583827261424924667943758383003169863606028634289153130238807438386201828667672933507791895011260318290472220236706539943961758815084589290464372445216970912537454419911552536303548584119207749179842050622750668753266930088048618373517481232849557343392732710546769387662802924807292038680189082674370856944700082202702338947229966704427638404571137623772841038320995939675450379183551982276695001311333136345878683566714979447463092484134777559522587937163463492886295678716525658426312044410925097181891280951691483005973180614660499229885383902043990702302325990652100064257086686987129204097829806103724189569132633558170884781355194707523503276893595897640445300215248447451159222089112324576281520675943156304646038966718696257947662566261023418553690900934106403589125558315371917254285719856216858553833799710938437464963587363596293500312253480428577059004110637493546469311345055260223618184146603216076066202198217129226373588916621368727305380132811092498060381256986510600999908146450550402347595050081760436597102573168842801664578948844950779213164589768674098720329654867167902904689668760457917603032787239273557466365493090046444559408787554154831539602940000013799215196426685206955544638132782085430660892387081935793141902265450023652271202208913149275670827506236079873281802096566618939634803857215226458928000303337793224634696131223589569827908161576705750561680643880995105877536442330701419027235468183505514200735584969690799125116115097793677146489260025821894873505789253393284378523258426776968482176603641172830277280698796481667858632994704627207735104809126312338291137924783316486754377430792720489696008134345626147778294152158750908906276610497066251397073141379580010133662319856159471402074430150797061916148901677209986811689641991599116918982138872947705444583647146669597453297678471734441352488782279190549215928958124224674742146519828089753119195561583205272678384524025762561554783398051082421588533144712823559173190952861868042113871034431926308474849356080771934905227156140609850484125563455253564643863226831423908505509915507109651321036712561802701162256868066222623469015976317417154242413597607336509913568676932643205901221940668271742638460117663197045347144244630168490929226573656277042771573887447180973580615007427790094478285974961880364045763408037716109613174115961924629927301127125522616227752319137335862419454353108863765215185535513849912480948543635770137836576251866064314435336532460078785674003247434952299845194811356796201207911697720660439791950166993762314010618854669439571029236951263373288239157009828642513335041688182857416580202389090196528008055948824208605827354464507208163886205916901464536057962836552814154766937115948509873808765926243378965153244140090588320951694763880572987477831268556469763648881772639290610327949658157657016062439376158047211006677548649794259561922675563266398872528400216717179288362290399599649657969243148631653989964777313187243579412814986192936628579576580774630513565460018932963454554216391874857996988962770383091667745050298089595186427183033182690734236407260772126529207717134586579943109173964221234954472627232929085868739911240985749206169291071381719085535097050101191719331295308357258352928462989953850472202611212350784137185393713492401996297891865442170653675871995660779234288177273110333318311267447615429915583797989096281680464305051762575453252596060745347335640988360612432513986613553403018594731036445843875087488297155271344717766377359185594815857761856704523464833480422599116539096618507328693402680169724971711022193821848360864857702498686907313102109914193716640289068374941874101769154634562587484097573337849689515592906237564233265193521668703132281790225666317606919836222842233242827943263095927122467917833689098218188889216564022581027192686831132244502417736343980409166247789716928456333296066533094872775985171914016069868801664802392364670987297070995643229907039202430367092065818205136737496264357407931413618209679819234743641001124056895861489132723256621495791511043368267516543859730294542185674139235659959456190606017963258351081173890708087067530459573107386275992320918534863792404815487198515862983340463756252306613663120101927430773532559912535383379950736389265657266284254430405418607104165916305365589729743141196265473025340274360423617991300451304848701286439290894232297368945580748784519189714779887128677329689181358062786920823238800788992300706213745226264949318817866188430645434701276721292503831162462606513007223981570809548378095379125821286291293127083918484310481752342738604158052521581174167552701424725413443297482638066161611030386546413997103319309099266036736782545715823208077132896813442358023064962177792437541980342510403118368149039782154399734301074980705079644631481669709354016552489077023166588566358700962614429643910582011184898668160103301444964187856123990604135225917865861340199947773242652790055472253768269940868947287440111426607491795952368657821900805021852647145798506773472413306564046747114476293983527601292858360769927008301551003265590271693696911890631420142142434561546779070236017548559833425802076822593767382956737750180694900967371161417014440901263041564273204853694365548742109146162086037890005630065005891395021034060994876827625985293917829784670966053526884123388824127443579634933946225224693113497937185562232299751270179472871565444216641186193388201660200325506286191991125569285769717240783081380754281112542702592719294315162913635690205591857395256510186536784126515132375702048345676006106814526532369681872218354078371028685915004065616272669128171008427451625538735521496493060106896650954911151759986448627526904100169606937180072286141829534463741653387603118711891189950310492251664937455079412113991254312106103344179459035666089015631139210174542181618383676398317501461787424407985545172568269224538757277146208835909726386701732890891947362553937763131489605211225386460793288439550311824504514569708897502373405366857390731237718636551183978309498135537296766950075071365032992938923626423636662663825214894578996668807879915336233250643502772325555587030655140286042886672815580624303859052866122101871475377891616518097181299432185020965633963479130151462696379804734993730910726756324419215246157108272099723115467920171276799466964977587138303868893102642750269583314015090173444447014711654431570390851838445604255576160606274933260340010155907965099859317393520971795959920824588296821588435865451505697812286429015130911811288395670660773204116253869042291277668362140932181072086955834973123417373453076041139828795779648062067850768529192918505025131571121405969076478858254945158078015799039985931531684682117945461832047812471586167483758498181669628004270938878395263018647562446701760106155637054404774589342912812550152744672720588109360581614278064963002322738194696273542909788400696454251792598187762412945296676212128226030303713323260649148794015020511320241201508909291247701359059845220011473969368643716269918874603320958560551496746815179430888270206818558781057594502845622678232109281352556485486746902031310641437968878578859157696197202472743519208401548133660261259549128108856975981081205214115140316545109726214416504788858384225023147903336768817539218184403651324883357618275487928853338034984951668645636506174459605452354835280342717805278789977058590519117044143045344201785696545046492169270479110537760822405798889538779532366088959958194156987370802827628204631582953708919316456014346049011483984851739951653957525753422474567006752113347254010124714583429405185737288216956223321321728355805825475805618713432999984971407950690681842373592503190847092231452396365454975781425004297607417929626494653349602138593688404686743063035396596284641928632531673211657328459466171864744832731288261726073741891556676067021606385395583423803171777720521544151107420592453953861923866839693490466318968559522194660161072521670745340853605678671295820295346632274428369670190765369210326108043157655788112060063341682046478510530010853561157074601797986117054052721738878716521438378941477412991291008093129849839313415562101698654640935228913379282030423727128839478399873436915510940482204578810634832669602180972768036058303198843076554374091743985617195851939228753890685165956600562627178162963005754730163497335698475007275565957777702344869246087674264774044510714856554893367967669696144417224544320657590080842365195931216132586878680193466151707147448370498178846595533783119116563323841167426961452350498178298883415121166981350200482254676982147879898984261188983680628902334643788195951613145674709611384200112908637339632426667848306594061452144232416765955164904616975636597763556260554674415828943446005282615527551013991232932426550618441525882165540687470674124078724042408412453008283293886840871513127603941611356619024280431598791503789974916940694260387258869100874481385079248034795422712194076661534057703021212593884634219269105752863454147406901442853664876547514900974971077527673841206508474070470764908975161557379209803684488572787481122168963038015085644279687723641215911728774034593068490748231326064049417754506707514472936044945167714356627176601891286517592161698757907672509490704643797266992840631915033483417572856254877559870422964364000826399672582416324245294108276491177529922935066305959950441637208583527962833489597012683243105790815762696855671250798464942038908787343175494292618790447556887698642901808686794089002099527187050796061937832444690698922913444819905250260989922005101215839633342739249380313388938422300219653973041657126592364218486266642564080446939479636203351315820497795680337194494886615239433957411689214949813420139164215754534104255540810541041028435921192783077092476270783941498497130145353544620344122150598420836373625108393049002847557372253186838147728816214565193403775397810757840609942847196668270640160240885987963135689614006205061321985159463215294141926198235305511106900331056211775004866475099970510643053679871574091782045076431672814419266651867170806046494226014033415720886915730221704353521813315683920550643257722989321866158723160015084530115540516137562211381408846009333004849482721223759731830602874962570895620800206907781419371270490191837355664860959217137567399162545412950485609817974538764348415539748076812912712852831321649999884394862887564554665777015104144154696576870584903518602639567076386727336695912609986446823632051165822828327464348978048373325233137254328860665301209332294071576341339080848021189381817055756664108898036067617046578759349284977647986737800104411046919022057390197844616007740155119008344542621266242559173393193182118204171220222514443775742100675935685525535336739085872511575235419734358954783461461407092324789136921269902821180353344353480988720051101534139996128863539504917816257858965690508600736541652594791669087898190352854848899790180604062520014111182976195970463857446297422607046154578065256614745041974387340520501993839261173522545844447753330741965910229026592892582215376786238168238746030485516284302882058964750394090398205743638961331493926393822286128068359317343686548292153899397528944651928359723708702201283130133287575896926826540884377340702796038995008433497183626938674455755575091291997758446677253829018995342025199748962052851738881830065350499482777081939158756063861984474494239147780586222469175106958259000908664526854257154349693739736783708190397877056163997789313011865251639660588314309620226273786637375289709329575788474799460869206913833168746559228847674905950953898548783499465557370807687722889069630533215817517911352356527924526649360646485668258153802531007063094741448045626734070209208441185549884556251257314147830049469262606735209973240502147418467028772354114418437606186807247208741532444157887893726111715570440885702637934312469806622150496758756815750109085100041890393504236984034380135313210385117271704965662477217998605531484432028792529697290401264052553474470844370486269047671983922901402218691561437006027188948623190624775868692958038763752737401961075252477095922401434205625419214780715242048071459429735101534234610378347971481555764964959241014060784997104532776324912160013404936707246512747496598597459562598108730269043477640719505882557816342456275271765877967378312467123057709799797220902791355229340658684520188209110753791114524584888408967989182927336206575082655534213916150374588391836548729175135560020830170148501712616876478195562896453135090627307895210711930865205288243139168733679993055572250983734899125864171400088268638658781934010201330684865825564055980847489575476071031631408957792734858892867894630773407438870035687224115844081534990942495727335741294820678440808515501950600397185076925948878723865073880014020459461157432969561182733099004238104842790979009310089866357599391649885687949027123500338956450569425230226562721394468518300817909815761944742900304616824127615471116920146392940068621788555666433637954687649289673289518320330437932114603034584527694486093491005436699961438316512918244357192216310158829974979011112984895162474663370506076630498114669394350253334730712244466602504857662319347442546933838098606426295738778646030432364698821397157166256142544957427996560604166458968211017811059565408574299817534000559527261980219430027756309162333354586546095807663307778034868367468537937737794120019894827628460258532857849500825533661753279149916744589877319694655344494956560695208219719320196097281814987184542517292630865297773168593573572201881834407818800565356462103486440026429878067122110661230751708331972596378008523005969340327088745398810826268812858398959609886445927435061417713814000276016997926175142965893330627935112453549716189696814952962239560173127740000995106989667625772101948748503625957868489493039148663233031497949911384375028330756297592045614849747234611661801590290693977960575569636787340099906105166761018951310191293771797774003471751449473869400105336419113173301463675687325245740899619006552673954829063858600108285339492962535284067726450234150845287736865643317801000829920828298120094196536425416724906063566217104531942139348377352599139804961902750038712996833609852922782989000190796707872144605425724451365344815129145513607592003968007061649407455267969853290819466981666574537995324194563509699361681226590555475348723568899648551136377953315528057455620448622915630284841146078656263945513023319436626384368763158065484012591816069957553101999228090252105662977855124051747045396513526344041131700855031039358448757530872300963207231331633771301632127937912077370124556212690448061885685109973844359482464770167071914744804311318574100688906910679876415908843414370046704164054996723119565002507830631276612945243855968059185370840434754363952196703056545353603577822848047453338208190465701994686379204815547246263874318354297515062677159175609899374557109606774474234602066357677581037405754800571015128176615797336840194173111197345643021280181571309866570018943084259750305583233159558396239427085282126914254954740706837362715996886685063879167710262690748196759903462374661723361090543147158956622088857559140462443343315462126144274939524700903128032997755928201040856908596614052757463965565495051261795212956984086022901352654463502487844085516052160814956501318956998033730276320084090487667016413323357663643481001481130082430817041891996554650596499953702981488744978694218402993129078091023883288188015116507547378967226971496494351967934474906169712738347766962293311250905709787612448168012283605696800074941511809487897578003762128258394897074230759638441957302226773090636951324732005963018553775159151379305584180577227632793701927715718453374482328415360043190256020507467926092511451512041417051073505721722463711710282205242248433237731084048004928839661612966653987759187759541034735152140552148321400198355743567597976227628659520280463628975390440823209899993492877149199738586801684404299648531070290524778402611760439484778539555316160258100614803398434468685172560975939436194023644811487506154369325549336065000987527477843902249514914888360435592296417013577704434897839141522874723061156397953509573819705198957362723294767983350112229640278963120623636850538705503128735287189869487770233652005276133360977438666323858311693308777707553121573537066606092998216744000459496360474421016246153110388635502113286465095008113291504296296793834231966180146565045737805518772973114753494419338978173074031714122392830102193616014992694930112837491858759313129201504364075238960189482348233613805501442924602633206569543144546171566585744563043168061381146107849507327236041496129412391467683903341446330034278260000147683124109655471487558645844435262849572707963170079691154553087242393591788052747821946752284753843844138338818872064927619711623334586807100839057651355926246545610241071716925357334430181743584699776106639023155347337763957375330750291376888183551351292185412759075489549046044792187500737353581902949285649575419377309596644554067649613660453846057510407825392569870017404215586874554980820188727607352841529995429099384446998933288970869482076712543190018149889810458521717778223672173383886608187166514050796554005761695381402568816175854151701956798502348084836867332390234532583309291730410908735434428544198894040586632583756209388151112037980132813719703328786125305837910927556237436024439679523930778563727110847846243180233180638634104208202481074669444752466174699642629140031208856214814524213872335829411645372208514893489245326018784237921898709490563553605514886851390599719604750572230997894373529204188409385316131105904439210518998336275824055209550811233732825660051931520898854517648823318208260376774719935636658100957144021828134178994316641860841537854661627321168560303507538985872580480325310345721047483181395520133234390534537419226328137130620017560458286928174192662423214897478484786513393674264773968365792075141434829378637207400542950534208327386067281899015567752289897904851868603783398662796520917052705205576144816886579270448443375561333808798370590737078463132947730145563703965004947252308557535579784424887410523737769786115031127965512821629981327215235575621185681755713201917124418526744149783915344514771531646485271845582041698316758546676329851013198555024473845151436497997980266527435820137994359081236295828666709807418704797906933139018348579343381203076209717668612430982509885664457083190466807992216520175918907610052321568909215464997560596491556848634552536167312595677311020141631803749675008083520078710626668958881904272810822940733404242661948579074840543118498673964297037794277890899146686248335494275901878881923323854637918623710748608268463806260473328412299430559195967812628132746244105317101747244135118019149414645697374618695486936557409508875331344777039359263632752334593353880216346677655000564275756894647019284547531806259836878849595690554192931385343903439741003630945018482206198164308642624639093732655626388807336889412387056582810140025260999760831852259822399287195110974983505358767045760900060829371292724895258741203328792159355644162090273761089999452028106105781708997386443546473199674656492450831714563483022791442987396746323908697198680515697195393055658208865482335868677914900965474783478665999882288390762221122669190816881691627356450600850042286560147686745400826120118216567172979562161441417627323483568077813512915118579838702586043751181633972456141532111060047317471889581895692905437949107735770467078343012517839639046959978335777492115154085811507279995576946727048654735574580579593676534889640741233873974910979100454836487720793273908183609182000507112961594205381090954329271594204702335426006506011467502776190949905773939152283133580820292593930940393362542359330859206905554395603407978013151052133506015195331980275198821617433217360595436050045364760174571639844745123919006094349554582919431739727404712231425710965497218492929022480069094947696290217734773845850015586293930149269782243922672345802168360571654549364714482527103199830588009913474095300296521696136588471127095178798607145745431977614152738820772371383996798234126733017321698742575758337701536486947233285905901791361847563643331986105655363839786239259056720461750349243789018444534550669686453687036695307066876500511989117804117514215957510306389513031002246249604023286823955339640896774919130524240824502523175554422347776441925836399383227938889580736171333277739172926207046923892563012611349339633244687064743604759282732354510918068507590282501178593688517159777895771829764720501742043317566592528021738302582324457390236938378324310396807692070098222786839036628605198169569510606071398817462194593056893507535519665463783037537220673806187948531437687869399784212812033815201225109631187739559634750152308942509449597516204394131301374172135910001757040990450765510002395978127394645002707983802527555067856483389240589113047190426404931900038254643420038804046758400943661831558997792223882372931302276997473430237180763791363235456943431793372274319029977687919673334835910580373812729168667405315698782778772995685579567049801061872450728746654935833686071282965203712579261427996730412581940588504710017154995442834075294064326523982139806763078337481908309124357434449874834886973343561787245825019705018259292486202341892355920026474707102707531435642997343203205273448036224545193169427051050150781839240751954776593802934376040490056230761976276574087756056068105496517437482652163203552739599371947454316395415697426477117214445249385962420824169787727102702048547456955343047505676219215288684724565073693099864342224203584385784120180458057400376803266421005329760381942903240294378666221869789980730633542319027260501267227928453120671809921340804480685748861659444169265904116099577054622438994218569527141751081455704534734946390191205677350417394363559338402741471779996050999280357533478636361346774373667565360235710678864773586878276268054926038969952957337204789316497541323401666160911144547281742358221268529865184383358922917259990476248889175982556623620676512290858426492809845397436467791489631921970707726024222108991416718176393409275334236204400015747197627503146503468892458140264672202453471226876563116639080645456540779896035458917571911191545521408276899674339121208049008274510269593577544265954031328953939162376664101797708240267124181852888387888196016140513805760161394864411956948322413024985367567365100270320897960421419504678278758978564016993642234491108024441674624535125428021690799656526296454240720784262127897281876255523211536290543795905839974490630864619352247609104409003228443878704494283640385053341569229567558828924447608781476728149499328650920526492786264509975261887241916303452848339820276887875575100257739871639801202049422685004448265295476453357039560122209813906853535704070386184849096963862774539670983831843472901000451591120326677012022749593057993024900499386183792200541970571237941839439807519696985426837248905750537391870679065992250577227568209992306906187980765554009263332428811310096587984446460384038932882123070005453933583090017231784160523979173919787082697363827738172588650114749720004392407817532811618389093547498166506682949672545490102352887179924358400148473750730532490544915392132265338565893767899335940365784827590042660194095743897592715955864235713970079907872472076436473331353903968771831911041950336578403583154167265372078069376658047031631379260453234883233024339188605455142608246319563460496446434497514285997742823671786161738925385928087173801444092182908789912039754471812697468340473550715226000666313551713184889579276790751695459009784287010979398348462294882053209053460230121113647138005327592244413399184992326236136621633595818164346429745600782055784537068517188105295156154183215945681394736273579542177456419988794362726998052612267866265806434867589312942895574955852451513109990044794378702632249363956023353259624788595308301524904611847900241995492108517469507151065038930411572674480047021915092888371033055186084541606776911769130622811005461560075055463662506200043012827287296973574598265146516654773379905153545732940638954872857414389493614097101804306570612277279600240590930859472543157435952129249132305122797177612306548585391663603098827680434589028774143597176864634618725896200264557403157271701079561817378328258229898873053429894839749808020449968993338066064813270081368874635840672602770382976699628278715225856268147164686958340566779845475825186030505936723126691158447667618638080534989098108454839420485888117665459508215065717724414542390832579182837296218676480431093975303896171597601965319149359195108624669770164841301143434803277972083179331316433660112720975389990994787070225201720548825126212301166830129834485544478871466132417282562549444274650369181364840734603403392496181539082830742627396370065971491028284497557813818918580496227735708492594443897856467031546102625170548191806329944264204631902601093539141855086767956914458143406581544558557007211034621842239725459648250578216386906638212709257764738097873494106469205870576063088077307815597651624683463426198718183611819688397477629424965595639056451602284389094700916771314795760674764502652554830773282783198132685924717580322425788057478318761315702611464977432007397054581862823927257394185964977614034031558195700671622770650897291594525511698950774290118881511216953689184036608525252279637273155873579920485403337923129751371376920862076250838901250977701870739544831824701926025770131090354789495027725749322588157199806435074876614521809825921737117387153795583373829552706758299443556234224134094946536064968505205778343474042388755630073167739499763752515700432194240503521213252794127239195158648883605329146341079395080864864562647601187464599219243741302099340252848474587019673330811302820955049169300536244792142898077342642246658798627127947227533450577956162267293022554433964405049436664135113547670254451796117180624082330501895826418234078834018002979254123538933471349426979084740070898245710672343171811139054101406378918996295976557408486331418226262211238160959670431623665419887074824222469629781528671723604347408648584353374112845725228665643033211388962426313558910566863420001013287214337081004789404240039630193474976337352563359739397854888152104056425000948528694589058308487428152403240449575463958991029211094345716481316056828890627578710636172153556318135220311489517489784068165278546181232507825474137881397838803894080027878377948383443001597378191325596512262106792548958557263156927364858135263651374772972715153171327640241746961937553495353052314278944790673429575516812735936109501855222945432278870225779715542410033163688039021725558505681675283032826670624606882496137939685852106785454267281020487272217569612904293609106406766061614052134653430923488998790211382745941221650148478138680611169166672343321279916668940063030655731004648524258724159393850711613048449051860522288762361162076705329961575179995141765294710029722527188181976296770597890849323135752535702968516637508849875561556318640542870813545800400771199075723560324305262501742702197693590740515652384817334305757700255837795682703369214759160276576646217596981731817279692022759666833409973836891548074406354724483534069990741813295543195639759130773627981279884663362078664898389621767071962953067086495424503993834679424646848796906284872972851281177146849662858590396989049630339267161513429104033370948529994881765384210683457952072243492240466320106373827836264458181426445102130340495384865351703757042921771212608082848786066527896892211644485891610328490381520047402134472102123574558941564798621765978921605605859732828781062206527895155423175817068947202274179865759199856602143400962199350404584510323114745900455904180544908266183852940178167663548154322042921578721687111674684853210551969880169925728714315890794310692306068103544790322656450485469154238639090315823595540765694436896099182601970362776566203215155997275193514982715974091624681885794037819120434658794363183326363926212251030775387074717135553992314185481016886444002874946070435655415866994635807321457943312382499853601336504014851603785881253656200076808038391983531286168873481115014064187973606812243028294673946127481228254729572489448464494567671090331575269426959521172063095269156268024873468829146902259517633617382030113574452515790721168126557459505037049724144628074789459739031245678357337727818794423205831002811177617882539786225940879327046272994565363295242151900971003537135852546438080656368379472066962612445381552816855630742380875949421572329847119516795926801280354780647603468244415320895944787336973959337136217238510967858298629981178251656678769246079011922868183520128149223661876666584250025420955621093105569167321382720496193939885322370086969543121779312509701503682265487944091988916389699371572202914612248176790756805398392499955635327300604539814694077755622647081012338089804700346456255953722511265474428697173973744767890641885779142828518535812761906709559164939392759120743626269931128683328821158602396637559882337787071438474111444282172664362391097701660464252113919883578279480011297228126009550150825530302332893868589367428251403231264967912789380669896276745070445983561985661101743966499894796495573008326009507687626405119854506008575207300246619532446043669619007818321427294393022023475662342670002308927752450144120000791819361227457921517132598630837501674114745294785110560705987414231582147091431678878380456595485842932944953336496029839928164304920947930742742756418440643955620424097252628632433361553963142279899307093274527567219465574494168055323068572942106409244665371283025836775577534000808347865947306749220107353793765409115852933426578427995667980628745020852841204268769544502966454953127815532852567163794931952168986503273901753222121731687326090979011217633693693039316777953921893779628624052999294293967506279368057583566771335700677371495531235702376211091706390120904003856485462222582364971259950792615475668998513885893420116556439243946898959010569590913977521624879501494812703539117783534759473055949599389802180070398020247815102731517732219406164757624365051094959802734505123273731906382737939904608137662749350910996107885035647736195083014574570205006318598711609561830946036250407506038847299453928902236167936945808863510415478671029550156836095171666034230625185336069417733140011137800005495260353642956590864303629071996294102132412076489798584627589019514951581804444764237054760839825276605822042657312861917402124819770380642932763971718714521684074597950631342848627417766038460167774766937985221172892911694148225490224153269779060155614777056208384439825478037155632111558990237472001443829965259706406132657664577071402626903661852429335723782228348333881823061388208121415157619488285227854987882721552844199043464280469070185366967611893301448557024001934862516280970831778257524978937902917049599615258005496202459556119050772340614802177483792399815292533945349039037926348175162126257853124343636884472356560102436321579984261195466116516350672141552248239509868353899885216924136987470113024406634708175681657881208054413211976211658919459823631157841622154381825574293020304954083910432917847285149939107606951983351840819711943171636783166400781174406850203454438070952203104358886777898597931694415445061508623720941245713566421518542304515151789164307738225704170059196867995152043042085489381063568962136453019278183596872384407567549824827398376530537768836635682756047409224910583606241437925806179273162291942990279599469594893781090047305120490815602542645748605038318422539888869331013819331405340660896435079122984137039815609292331012253927972259960945157617542003735344013874880145076613706884408535217543795878442540754474893894637734607162288448359893233028231214860421034315779103832358073614305879012173558956159158834862633986378300166169725220255635281766301325732692078998209016759675390890765959201572154935655497773243726014387223163097159948500753244297781928917763676694842118871811649847977421636048870462638591352349690976035834345048487459361394116500009006425034648452289346087343715254574362688022216009286471566111352899031439218884256373140339385109341345003213597865319746784125000768814034699303102390243230506734920648374989202831539149259075181636317548071319826290994412868965198373194026411837195595851219991024898596320482777158647376162023539009600340972353283485846426458813168422309734439877361959796171238241006025200461848516602667596585593005102705340149920344913602946706223610054334630847950551710133691962371657305945474370364229345200237014497410329180426297546176449254225750776983530949845507857985694560260365831985818071469360288509090184409657682003216690525076798927073921353649842698551133503637805782899672872812016731134687519993674464207928188748608183594574908753745704502153071571937447082197035108793853288000232446042342565671587611239856848835741357234301570441654310081324543179826032219046040986894964820433326692237140302695088169441306528242112121554232330705460817900241912136043510246415906318034424977664474521096648245556380081025180857880920695376979720901886978330462760731301184221923883046882267881784108947095808428456265813494146707110266209970745377572137803642130061910708103544697879657273988503649699467584175999516382794801561227708139929708849403887525142464388655529488379456988294567055533356614883369165101399487318196381023466856876555417818808840924730419868843104390803433125940965842175747076017036210452215060410617468295388926470950617404998779889034364193999584715816279477237422469372571307582568637346692784285663549302481427494045645388160134879388523199248089361006198299076278982786716221249287986844732686367695939101854045622044355594184057217945970532976184562190032737122818164520983496032357283371996048284695410415185097104725845105447516579590736952629064100502393140473145550411983209415146927162730263892107005292208650203539158082184548393132276979991912737385940497628535920807907604838588018547004670404671916812956580202462403836248631755285375453006410018996504256629727094431519064124933720905264157746382745290172609181194517146829293217199255004614404477549811067477551901911425175833706484351614441535440837768515657924425769084904371937146242081102043450136902249781960604977070010522883888413422362934460990523973773016239066944767894714588495554207066549218781522576802798996221930408114743429521756061053531727920868110989038387030158030274895622090027187007339039097212403765277045873788699041515230393481565191116721213186592506313062035034616042395904249607810060669597313045124537441077513997692940640770233611078975248152072008812314781547220862640169190725490257939525801632701054416391800343571515155531685894710612516634483724525948634176138636026373893318012622775445096355892809689947583964338146397114966184370641796497016915557272477271167677974495319408915520195377570376623459951565298919319671918756640761095312966443678692797466609152116604167085894535407260473088176945553291527553526219923792993737325737894232499747726719835368711703164131523708990667603312007951260740003042438060568108652748065323157095401607052687046092926612751565424768816340154495050217771801263288677799394945636206113122888254534509680618112641982268352664847828014050563348974963356474237537425184612091128504518069337191246893029034167762398729335959328887280254860795666670877461622209047153876313109648556642076703792182255143887362181624646934844395535486411687867260116990657226557892348601304743095064636275147007293777081171404515295266132530631024251114440390809512802283381131110027009736760049225211980206157865536196809110755089025388303817778712746842246359998237526363606607045388333651586743318532346234299764974990078120909213414866658238514148784940512262829983854861749912060669718547506214452646678916356665227453152062795086554920361715251315803874715915309422247323300013186551584641377171626026971778003364060331275343114874702973685376523427046766004353287277660349263791832789312175450449737009296014543977097280606190628726655458145248450697458233233789578507286112082838979886579640660595330610950206231930931544480903546609377771025630592237626060246852799281014712839653655002312234562703982192553768727249404803649607393599729966993471071589976291524179335998809546824172700330723191581439797280213791091105754869481686566299389913793808039319319320810039992310615409864470385359336275544229039240391299960754840503183415360592635229234008189777566282820663633562946300749463619317612270721235532641541080811629509375865417190629298677763823695420716258133068018211406454334555400129706132949679929588280568205158388023694502889986931498014143946170857149114668902772247983047326584153057320634969221544884067923010229866713410531704418441480999174693378441489951517490022646236753665011147292696737997893072350822699104093188529660664298693295182131753953130843022195478398765833959189798869864033685824513066888944948037387637156774913162460228230054716897277406800453317352637539027615267760699550052382069620403076803705538484734237734999553268598906304263219448970438675267518750448112874678985963659045472098642484891704596542316675134790223605952763329049141335621953744648073838371866953493352803431470716478693098773264904844806629476798389969107503352934056396136231210210856008918061358297078584438544834814335127914492879592314803159393236937178902757367506716157350324109388453478998175913479373775845921960315013711906358003211094099006026456048138324585437724740918162215369022076219271694502204406027967628328678890591770712395148489966764460556794975930326427811584199646312410742126334359410801328792463558073598362773217280616431535595460497099944180393209910197385765540957162121997067832031601887590964443202426463911814051106262336970750290266205919578354754589163154061979731053991366278533333444294061622638621370162705853401207551861270817858661607263546038596680888469865398031812777184975794561367904466675955130824647865895912097993352919218066188078597517340445594247809302734097278226527380694983339174569922582315450479356244769179513011448884808788223437437495157485783323137394668152924574731770418158778946991758841029064884579553067770967950825595615880500637238237516187457682293908222388010429326288196919297181226502843010582023151133267878949307755743684272938544264640102183902324709886879151569935128201504190038867065843457409346085717719994118340704607401976126928923852631530228057853251343331841931032729692317926259005929591268749136923829771880065722655894944150402322514102818847927365495173368768675134911381677945106866444996024282177102761473834933209853022110175611929635002880647889681086535490653403920153827542252078618935394741754811407762448119509243946833838912627077782724311636564993709059162481328105358716145935249247946425101087512500167324967122750653462119719025437139959393909692885747838022337930022695116791152991004705590116403089587788603151699426361743101139139164209269095534305083230945067017977875718263711124302921913870913250396884044602184751424625417130471722039357896578815872484696937078989031696900745544436522751339121990139164977707561054014079003084417259872998323938222562457381352387796347820090142774349838453813466295236021966004432272240490499713779113104875132811068455579971818020265800700325559505423181729615149066036561820405348137073427474746615905219339821141510378693148501846078623745274214609071263238265320539516583448605449415599584710494674499624435511151750102504412829511384451903625542091354965618827950417502075981095389540965707428229574098106953255056121014717437192310562409793074266105336564818237091592608070089995361624218097616873537771139991942718943812736313568534597872842998188773575197374443252812268186145945195730818978475067206155840843325468744057194386527511452771308969566762949114528103514753311063916727824409404579534261900868525857424368068594857503419942274252071109912888165161988827024359515148002907961595300905224230342243571626145144152162198839821260337488935259811614305421862871963201569481569309997499202370320045214806685679889171216888631056717628979895281926104756623654952915287832049433120904293340091818730911413731139233958114514711297823891301540447527247068345967891431318587519793722864925072022721478473303811509560898023929849233663558782524623855098779636751627650956380571144268764018941742367468139344856497192381491683653595137993411718691250630281333666581449468634248685918082876196943469017846447572966767411975654996042750239857525271229856904598301168988135390870722643342672032755863138939456999074239208395464566673896940066908473765334203923233818361864196827762248150723143595092455096893752301937508623581456400288969440870599652459229025756270720948375137084538151815798970429489834419238893565777252666288182753423900202888452187167597284640751986537596930091393412350484685531164504960339937621651343117568415542197921547688020300936889035339317704148040435780564532871443853148755440087495336377980182608133721775239675524144678570030867874254835657180675650841020048306358161963075893179674084528299871961681208976423448047435153891977986349285232463295825017725680800400357850625583480988149343636238070359957173350266216697411230613257100012530966209150951364661134796735191483303319638087802354477106836302161440516084156996333016912047939671020566345033164829016734869075055884064477202610578159975914632473199546124803004482014454721065961485772331353332395800386224634432060204114765384281561621220528685063902348723869693514304334351377694323007825031302122952511188197911348800208131340078606724530514645914587475101071970999381058600142670913677079522223548860217250973226507161905241492500474215271477475850014260251443492101927884085392607541851025871309135150245982957358399279458514102871385912161982399797507593263408986074343893912755539793372957916991720896688702117768167696266181019311456680242933432107313668888522114427954146379503963256751400898277407188127288085981340219825659405299839750313573024897301077657305683613723265622308079806501483037361877560567510619978995021176408757467090502074238818816719568270132669009271405449601363407332059055685533527565350160767861421686920329686458860878335676460933617528016863535341729212360539155664177638665042164317292423516550669909108526415160837026331671078377340341784263181507728652781822964173612132349738930508880497883263767466509095885572323042721845357257992065724600373707811358156440646777466506674915265226948748371361199123098908774714524794245759218513761828170244676841848851772518535610544318384053068687748973292405241587739809141788619680705199969947983613177340755521984385874866255929790801056886781585174393150423919865408463964669059206513478448445080530245993871705257900503484957088156948232259139846007918528252597306196629798203588310005216314530438886564670201669211201616844106662879764604724199530945318362620941723143052991906812349296229259109861143350742796413146984658326297728053243540473198359497635167217153728295792571620267551974698824388615035496580521255166906550446071885623429127043499834556573001022657131356029727813805121965544594484073811103976698946369235447988340033462330651257398544224227155438973052387394378817348917935110447839605425438897116183962937281466601423378954104446834206718877793686814324887960943111279553850915977180017520526387082463335157744433316691149638640849438423941199704147294791113687193641077159649670678889468872883710306325714674517161466681276158306819844776860724079573037067961360309141241072240727789267763642321522980413188229540466323271351915887465096137246422129436797468826167053771276790303819761481455307650817874311938809903729202591831564593058319808681026286403205313117494655039533379551368816851542301306275611433985443899113697819926047843107332135632244684714522684397957896977591139243570498776120608102605415938652794156634378719879770165839894292190798131587368186732481443072037961376190886675939101944669609810102699252156339898342205921214664968356991000762372991292907344089877977504585748667550840823846115296934112082010969065309211970071822603854318044596454105145847305316140523157161435927783550804113851557404404134170143039438816193723977094154731127502551490876938087484197318195362004390374183094298327453338914445668262209063664217521708467827291913065819390180835580509882260840797293691777354729942559563724953772996504136642191384733401563660086481426593055657158214370034999660989413413223031043099203049059366516639791938946966234570547657563507218504898526904492854336688429884692547771862148679760529529402322387601960897258896150616406221771020904164877109170661997507859553023237038435244851467248098609290928529021866596182590004690317549365907935342828251462059307014236442247332510803809072354626710140884270460961179471898729821942803837741311053900057377426958883090329847906869955545091519460519016648369498418724537382701633516176415464585813305668309356213476948123639744549761849146647043469950972350935000456159579772733596153650324189127784775436495112208311199628402415333663480420172385954383822363330225727069532412793376362634254265656805998868104959090654413470592007739866281565759353734079665717212550031819793384495730201602906238425670771219420971699952246256992279805793465181046004847513440778686621446227787403906128686140480205808980198694313764588780690141806056032373245079115793305874228333960329364290240645138655499306099872298239596802159282736195054598224830361928805942653881581739139240586265322238972668178481797621700549616094047445728454595404218770398353425982237176931663775067804289721605089038244347705296089811813852988374724722875852981708868418148215773697708454779201750089318619587296188330951251342117855151516815392401219264586191210601492788546485849718496759670667401461782453580806200693025722514260445810582895020126028268036839070648717025344568765625994202595825747521216271222685214730225483268427627437349447893463855292890690145574921374866085130881695132489239067222431234652766888905762186801759832788039039497281267585806157216758376929284674421963090156715555919055502986874753924486753598594960490041577650755794442986216559442823100559012428134610584796597725303038458120455349615826469385660708549787530018253388360059487465873392789192119103856222637967497520499245371041731577083685614369922290303880519028872958745769552399422762490625501041681080462434798885240177669591509446129445529815424333498038434833841144885779474359504122410979353972392930568597807239726474107888222439962843274338575273656667609682884462984055877678483449099271767278852790542334533293994265026689906069597240075006275225373091001106971789831809600706290415773596582079950531583919827822059617022522040117874553120328266286691602443774340983659369364062802538110494777373445649648354014489805129753606191567791315571773832048375653785529036420014198775280115595166763262577953157630004193694645354115333529413910248924551971249476139827946820865055335073668883997092351602053011598045713109439881967776361331729575136787564502766891249104351063722551685833774142084273375154720576278307530597572504278790904188121081796052917083557996779036004848928066820805205747895887042062577099341011175205394214642335329327253743727565453626004893471610491490474147263626388956240658264818993704941680539818385483894364333792271264352794073862366188584928947567642803372385582395038021132323630858797043460570592797841569952566242142808280748956099220825670787639875674994863491641692851907032131909983132539212550402383115221329930638678025016052090381493422550159360702437248810987422274692852618464110676865609329071322200645309818443331533565779838749142706044445313065160624046009523796834433143456431382110991707964871933600069526749436642601465598858351358806280938025473959372249185908420297502297417742842214798722555041811234401041888418900344259357373497933970281916787464132571041412208207478915888002684449714208818271767737925267774113168608750491929899679942450543486133311024415980606573961596625286760568938300949636071978378232702276902279147521214041183265616218647642952454020500878603688458506545485933957770042337954762980900248885858341550032672576290004207313024426967389309692307765853573362322479067827638815336564960532912263358047092352212490030531108851851554630144397484773105912694117468480949818862448185350458890080794161755469140893096155356925577431549572912700945768028076971659640439143028499890969070197254654792950971343008415775158086045995962513172872078906623132550013766696999960883072233259510821773353468054820238817114624557836530994134933656555765120730831551191874723106108372782351614496386783321911505816609847356903686330394957871134125759000147963220796017409042123707956935509154283449017663240923161637767805262170035108278700644820810894011490479534641565295290909267777307891835001604340856694845455774337526952652801887801418084584574548546183186165690822236591192457747577730356959000803778665530862534085844483075378670373497581834166981572407232012689143312683503929356851824544497026680681596258471182445580558118413903636873695895181756304297493812082914156479812083741693355802014229657143002425207937362540602460633289870477947641631492827693102525367384794628758583365243215992499057714496240314872080673880444274768380828720257362139347019644280478482392290510727392482328100779791937533424291238231362324573860312790056880013236477272178122700377549421199290364022601785895884338353063840943463325290197266127965070088734122605729315033207273529312628248001176983245464068205373659639751816754941299252792117527445936939008183506708422671349321204776953312236895582344305733900287751969994583381080016186320582224124195545849311252830697896997018969504664783165026404774354607350280197010251831834697566307884181115582294135217650382165111833524624538586086167251753947804827464041405793698677680073708168687432711093685970808811927269344836498553796505281911705332608838576723133166067969646848445237100523744864776501835104593129037757236082497270205594706638843638109169682658700313570530842938687701089627662145151301007981132319739388300719294971300674025305606948942803322855143413643051739384799185835796935520710219540207917539793954996542919536369052989065368252114979396740818000301014447729787047813989543338402929347020735564652320809586819512733170387347214910531756919122915937668258538540963125506425103262257226158238060256544498758517466978764284506858322536888480248879143957779668787432880668194154078048505428514816850707101585991567886942169162371563786412008892485976250077286648980097181325520098288886343509132953538687692608480504157764689310843384220136355440187793208888287589046970625437174432882334174174949404215756481911827559674654131645692481308572423670499790597843358470107279500571686849854688966601068485739435921298791331061665664251074314735363298552519712200861366798751333392382801063690773649110479054528859680383474137122884133680018792277353418201855257992664421552570133355634541161472345491535636632879084021495654280844912197282897914278089500528009913679502607046171992634816507771989062796258288830639999366627565967474660354055599025502881671706844106496252206343556041587119740158222926162349805019850556433879021442794327386280060628689334726611316919343072556590434083622200602793313072566360789899188747575909218552525932054605076697478158495309201024691955669915409876994122258566606723323857068517084560886504415077614894410477633192508905235103172370578387620281972522961805832771174429804507588658396961793583809139472830851016887993109657475853235279636421632898823436500767992496594677096271723187546112425782540129199659798088486541352187403782226407977331229345603522832430336948020111328376526318343466521212281155253678198888847577870589364763020076550419248232794073172999175237692023102570459619710215213715051653608879171187970354712632972412880024629261430345275362971423829214371504149273195105934076112994902519987776317848643619467582096821627687169781968837068428611658122747656929396216878977759944673396291778809580368935158731222393824878847056231041654268903186963928914787160748697054705573732968146140891245548076330284809030326348957131281083480526347337762333806473517209815307219370046284075000832807691974223351394642525272509900724768616924495971895440086678349190828810941420579526791444847007325287469346314947470029226195257724407814338635579205236913403303757162297207379246436386437919979757086321564910374350298684791158466522198915266583258685496340184394391001746333964061588221396883014475111017830337938785587169171170078504238165112162788708045335088572950772741405982400416224720799177789166847839247498839343252172057478884427998078810674696745145496193881016676922800644831128238837429340400749410251732694218942543162204972907558656033332230974092481929533277169891417968344712925877227339440319361235558655487640420300335604838157331811984243072361686136823428137597537485833593987786638586484146250676328404696929075395872825992158383892929502515811362875078117628343865931595502778142079734267613634670002666315948402519555722163217396969655950666090027232047919210802941115994664122276357391098959454370572965381488963680498029826145248249326956977166818757019720214733197264988774306682966530013540168591904080539787965414294057880921895550738838113757156094825550213191992801327516399802344583120619887970198498210284698742591151695475631194295914062407088879351236435677644514148563001799881935431815229793929871875476906642928138062455058216296547009890374471922732361049648076009903853755023033781810443127333556433420216939386561858511909035994166606239995923202240047202950672564808818384400788082053719020609000022304159247593714223081631429625918457639922165983029884121931893084417424514352721035719806659960367033265032203055021411662493019032134849974598699325455295688532276771669295798931309594562972361901124843874255481088117308764097540291271343764187619536199972195995007892484382609984976903822134385232813448821929695197168217519010787156954566847258172721208531549909582865442434109828058479816944610580143340389210408374806165006162757077298143556113189113293831316651090062410565647170419190609267998502650159833316743938574690073086617854338153399355661374904292312923574082120430959937580388119854219909485332025523752817258111889220988652429835944377752841486365798178306582281024455214847299923510088273634046812035570476473458727821516410771582847243149615245670005095041790873052508713417677642119708802551926360014570147668562983622152093994449344548807154381352781792572780398759960691055356462179768439247218573978790254741142569341486417661123909108571776566376366737984611470148070372373584597857130235023128251666617751121875957059944728382555507658842697132673710824109391154424970250188483443135093085168231268499335402502831097491737485194760220671033919591172220368370638924017330064267831588351573423373480845744970183773292359336401566896773166979087944197562886333517496098326551040235968612777970525153802808190257857360992397948401984375113258012443359270634063511007286312531357698939219148092912383307679746502512543370414106563610259393796348893973762817219880952368855255205970420218548107543642615638579146914034942601836140433766336260367610429454834072169504808659066294859250432712207862761464468254761975147734166344660994309544062140234017162918353101350884488139037709469560252570984407499482138895984573259229659234357344807972386999982528715345974538600370738088284024240618719228286533678966619539628816237820695361763686016396708633375445038339318191146967777905543339090647926219125290094082427817609353119915658621094784005143252848156083340490145989536491377468599567355884687803556931258242630178634469967888733122122220959710650538743338511292264618747729395990032256932251819728297745611666077953926575772035167829692898952799229734206043655996119128746127235429791972351043952653153184800250327330646128562671972902856307807006728514201144831082004860957520519878596577788002939445118783947363949127290554363258828269541746107928618272565755645664990068875349033439072266699821321761322317537570491703792097569990206865198660577073655714694134888383311939534641036991584508762967419152166363046768464491098146644406262433980430576303099201506372701240983777172778009174010254947776345906867267374130645588632099254565610998625961074172334747198203724116400732652989838304653910791278120769207554223568126927845064518438200140700375495633676993171956656023691042421857891128524666607143769374897791628142729665177579918485862286385714659646140136219957292185900023095192603307003291045077071136306438648571803586122401792154818167154075293611361552310398667740960403278016783074041516859257540317218938917632714790283568761582021232909441291587608280687610787252420868836363490939258514326562555806111937030755722560604637061747245029188990410091932409885481821664805242781140694361725210912184891796805544646008963462986300458343249690982772124734456001825552458306765714968532704100000526208361498695606780445706016852892070017909666965861938114049547038664642205622971009364537687157213478114297850982438976646857323271231984537013302694847072270484894408534293504536808931161705264261586817797685341779595762608342654162777628252914364026778116117219162338592630923477930752073147724947689460594507725319043079767562929680077112629093844069190839415525729481637745081064599022068111324562684672544801306130743326846689563499233186192735066772526407099521761028066969293898689800933232353784650864043692573513094203515907910339327553573025949665713647528561395457427661293673869994922588801584961626587042519930760657944941918273357782274142110067903325050288899680330785969017975276194915343605538083276042878394524155803830609288546985866993521636202331623460361212216094069226443712488133041755215883094634946772193159021998745895963338621780199974551543184319637113271365421971925199476607897737646064819121538707654689340058664744942202410413465249380222603871845335104207688080460571621497321006160749474982044220621880814870302704418175148047945821508798672232280528059605535099068213536668487249508688480612155047625871035165008896968780507990766574218275216609490964357810866799848597126478698361100362787609639036941551217447934693917843791165728467552918152098039084901723272920392604361228089870874470987751568556736398285738043761067965131805490016428770648110703292458602434102198305702508039608219104526229955459112494753274464511290651107807002513196952748578388128353099207039565803360714418933699788370259354742628863536479596340463468971700134291848054421091347275320394208786682519538886743652360060592526457640639432551803180932509749946011460367426011994800175552827780182748781917754935191681731787169483364665782531499212482084185494678371747417228980884793150860022856083735742446493054581713123673128743951805468266288838994581673199451505768418536933496262329148655223998517024635090417585115598407278257036612457897455517629322687353786638609169135161671546085400504367906929694817634461177998760631882781151775086782084285662847570244564820493279574342408004676092630769967428933864410453141838218179816354694167310869334092990666402913327474441893002225424363909984101565670307334957624522008088714113017379479610386665907798121422159410296975578716047604261581015156673457184862343416463191869323413297222683730754161307851216918422884294593792531793512800066085701182613130513077881925102121845470158571307983674203460818403093896050484946980610314860373656633035900235564924895399269829223349185452063826752182607054474486545237537777255965318693219750724595248822278721050893937139831997163011914125271009358947214125294873693160240344837800863835565522489026489824794514842515076066465497022708138945272531737236234885226050177112660654852533478890079011491634516190878544277771475352965125211366455651925510549827641505173784932773721754690799485976514583626589690357347805587120341684001897654675369856983592617918012935203650330618716338357803214501880657594983285917025198892906346282465555343346777073117182568109923198530032007412255740391817070527486238854105130385643332643979061040750649508192996115502917061089235106310736091814380176369176690376520263321714643638314335160144234949479362387642010513193377183286276492170029046910695069376241454517092710962420013276670400761142689888310914986593374189355936674662447543392155982062016265329749617592940408002641054672541801880134220591049505924145186775111992256410508012685948686577066217141994093474219018100912277123046664174553117284665278792332268320610021109129020850459240964826885184711462213029166011446567290748784186340446960053047074325769165623146940917897763467546060020146153599511470799866193139850055808446236101954735105078546934581784047757824459512255049265188773472175357883733924678037090812094906606521852982205697091453149221836575523120563467229425527169622516263743401007776502270241529558633798224471521271504209065658988719418053082773905163632198059962464861816301881039729124876383815421572812296824989318552835560560733675498288756618080215757035418230844758838872056140793688928356078942119716501030127848284616043306297922443344723502905947804305166745633891943727325297078868163589218251667580367373926191754169813697769748072665811505708667972374955406350848253406472491120304120818729397092456588405683932783049247336245628826400245901533866231879503407197160089312404931792733909920746747414627196844448791546644431611434178479856117882218646614614248548205135405094544358505725948318066249353921921946476082457718174965417654660926636311224611249326811545781570994045722254448434782729437181761547907510690140079910848705255637798000835186784867876061367500111835003548272427764177844880218838111822038900729098969475250280260472953345685083749166683160656633468736616280322373416463524151624553058043934247996850550222953451782734880194085932773560716778389342504892984116326551480321956490961246737875673896413888984957702545596973148442914418375561436353113117725352843044462042920908495186523257121009676145909792338159590273604899365337541118941139613908018620099322888880317152601088197120321489491001027441927730436526675282058785296546410405483065456842316982383753400206905110705960604039531277318098180684371413913942174654915566332234026925745375027073315951509064157977480369424021741603201275848993330844500242485130727605829200142944486085882578584966138258636723436744266179547217272197126397598787841902056242950538287818856531145205610762991682436962037822248878372718995802737318491686417841862553421566774002324133984598631030457555610577839061458185477672850998234236649850004166067315175095197620154429381339349920223916409648146549601806467599546965307221586135470206176108340492774769309374628840998611600677833530959745043813595973544086881258881859283897991368177555404797066104954984631066785371715253470424431335617432637715971358639927815166634742219641811748129310820818364537144370314211557262157312371210847942579175305664707958081618162720879676611025354465888426557890267156889436299203529078830692628065597335254666702100483424419432710820185349996177043559383096860802749433548066768708474168205063979085411477582793143637882127240784221350918200322364585685715806777343852789562907714826647937226548508376579752165354652502083347813543322848081513174011696861815455598963352056839141968832347550750814008341033221986474088372519937369556163286393048927879967598044426501137567601851725095818573860591518172330671884237291328297432447718760134220214741194680104612565778028812284948228666465329211979346989588067218946904225338985964073773702486267748035920198185339247749726701949212168123756960911150676774464632119946206584408952991781725087871298812671244327678573518445118440773367924913529566363677115981222490095808091679306692126539266488340868910256170547566351772191386131204899796523030081256390052463780374654103268251842615892689581504410689185181672151568283483974073510646998237962721846978844241512795213538070888315452039524918695219855206867945638324738256811991523955811218280617244006639323519257335640041561741423843553498519721529961739932267182432365019993183284673691162049028256335858309855633120638239739580337505924331752263117520179927375630873493476933134423582814364972122223016971343195580469707340464561421171923703970097375550574941673393672093793060966539282104868365810970776391339164005699929321386081495945841200389728531859462641288541908812227228976674747860833076178469138988010999557157259230277254805610563146448400472917767239902518900433490135230240963683869082992199237722962773419318464966329672264588240404375969892187549208703297680603359004224502168835553989846020156610278030955830952312172420957787247693751910843225201893527510344398322079192430913633403418786467298948548159074823062956497268488004597061859471778704651947576852793252157256120404919649479810588651772624255459529299418981636401543271988044278889682555066183314684179038338152861357731751719105957663278212386081086622578285794163097929396671874440318736855920274610867574982045796355210630236859036170927281693370860005386637570052856638595577339025396212902731267654845361861337949664912849337492703556110384218043830496526233214447262698133896603489496700197636530578341825990281528318669495477237901961466110625775491568825568228990462023143262567677413244568629906078463232098010110428477029312978728888784170652127246305241214017629298004169105897800588514817003334541447271951892134622838704349697078198273567416468143719740959212219233864908648247835178237396913731176165820468616542119362344817784466740205776476896457676687916932348537797239518134844149608794256594156504836658665394090603169097876020340128340622201749195632905372845257062726836589824918487722937841225798412639141780289965835057074394065823582220532032129480960092612292169759831238094149642022758226687848319626068977834107265264796154735161020085325889831484715852071594335674271293606397544746064553201808225486209140612732429196303698318820268058827695197317767026977562043141350340831954455063828889744147304421543873478308185441317745994471656167778533253851432242354069857200467469731465481917977445689498589842936005445573666804067213027285995972246675536907588644380655819621058485487008411701139308869272334795615324575118659996928771657368748812880690749570058329757574224185884097424664656168882029111736124296662748798148289989934422579813672088790219744465586853756526058886161947617759937513841071045323160243937360554586062127074347155038031025475936756030331903764421364761778221470626716883267087183381070998230371224039479110556545675087375407920833076256080534139251509981484901124394497052024245086028017797075375030000718220626722497359841113110108088486717151690493988564854055749982260564960087390835372356735725539560168874276263224368314449234659155351114889213099354149325654686143700592938442812476280132552859594345222012925731273560694909994465858411530635895833054156031972137201327780536757550512335949234189337373168928623124186252721658764811783764029715403325542763143758986365568940884032949654911769369759907606119750368605574756941656434599091367649379068224506494327476850247001855160682927568757812546617285096258234608504116476109995721392616656400074080703563871881892764847357810767943344943490939466762035971601034671671003387302258294048952579726460540547540977564107615751640145883869650032256391369534544735873642042603331120305725741107516273274976823829799905200777688930223699107561631551829050516907991741544543721305431064661273162967365360694894015175050215456108509583166871785636764024982461256496144916223248233600329268183638421095594587760340380991819205333698001214856635960270887420852689096217609766089136636192925015670782670370520097103266233726082075974917969533682685593841481740750205736443935953606638221429194686208283156544188771148688373457741066651808958102924371526079185348987209715628613300061064625370869396668141006226069066960711007546629016086621653556887046548050914101107213387529350503407826016841381411179521568037416943719774374763669509150294568047091302398567363398522047897773578797997417529779367436375801106748116691109228903358592383722681880946154905980226653257523949938540497404667744723539905331837609318125463353577624137865872419616713956320045683656948740278490423549676732433861298381310783211413036205633309122131519823652697640207536998152438006808489464057323183052627082510240325468561764356966546421560171037026407351571417603136856132526342882935274689607700591365960744850375996050815906223701519532305125167097693880100068499062210347868753271851895373489586536401599508219746587964346749623778333368862653824198803148439280147712584975504392994658132887053228651305887054386023248052201070808457260473809931229457687097300139732816225412526453436983657704410021093772213506770552260435432206821671555559503658113885317794694158303982495409289973771641982944742605049283775213387121414733017614919165098232498453466452227769418589454811729869880107943231720997325352132852892247298081081622518901704539192899898263048396440688569267238450701352041492073279143977358324755414060505172732841067779663962005260035789205880084651102072303261962897147979668799554252530571310122732164853116759676069532446533016004773411733255136478339677089205549181234648919677429191779446201169749136634308641728437682575970522239063359078663052691776944190704096768694307911270542023667361148106367542747240597463264253041450791517859788620893444353597443787296053641482560531903660009527342496237614761265214750937553311337023867116196080963001011220678250851392790381740466014225409966343501983481464562942149417722814822323608270979530890588526366187885429163379554760006705102446080565343110644543421533339859739456232340459565664644834831223997129947908222855854591930362458422259921757979688638629303453235076493945031183965610261641231646050742892751280088564026746682546903563553509596504732043918560411918641263540443411163681172879737792079672413800139534749720191301874137163478106324938822335699932418608893593901684248927291297145199630173221820617910481691533708193044817688189555921150445924896867082607247115904529756071866409394311925693294691519454679887098199835830612112530239209234032318445097235863122550699729041167690970139143488436883010211045872354514215562640917128825283898187532329332096096351837858593823819581536033237004486932272275185636606290989376491632659658637509145685402917944880407632586138500120179956084085104973946482933910849788766302101601332712616609350849371499196401771922349075033600678261018604571609537816094383347267250044916304710685508902187054648730736401882003916500258110842909411624989506780376541832985288606894336111777544721133071042897602883431804168778806745127926448774449603134222885032104939893966215662194613874608364740042673968427874578109521982981228736154921009508005373358478733731791825829328850972104944329930891456875159863772798496421465549896102066195907555665359972134518499202529436887277470816080122962575881896245722031134909289164565889844754547083621009259015546431371199276913179930673066080044920438215064889825706117490743586189116546887376561977926114076998505598076682044313646691676243142334238152454783671569664574755891776674923082719462745473238470791111548936506526920301546463512732662060612893005056495286406968173240723865192501889582758481134434743551114985082876719088063838163008051434349702678205555478921605896099924487984979025341359893109304592670832737111945707840189529937572392047537711270016393783358751141194149168710482301699241453766765722102612327361588542691619928585792228291693806639261286460792148323940071503478325532326885192290465378206702010908313943483342066641343184148194329434519225399810035910975372204398419260297897127613666579137746166998730952696700755940231408501842405748687616640293735622570085076227784102226029831796723087832466311657910814210492151509524133918668176617217964520025705477337508744195045497319533440576011159750621572011146387900737591190172355058181866685338871539447712328446080157780029876000742291676082295778343407831399625713604786738077984162542358742046282901397352692035202323286160561527725753904201855441189077025723451169533552909456797374086242691879517621312003220121921520010287174824597847332176189898504337175163352695090661535185686539398582847278261244021230342532764967442666197668495800284630934611641807952877812280504211617897168954336151460630600970759352679988306077832881243438575952776060008682064696291870046353947676118731568427871050173715102555441973980516576684141988848612130917491969509238190700664994499571119773112266985764877264247761114897610030176580626527610479159067224275097779754599743283315752241549414147152808505380629975582741075853495868773503961634347975644796494906721199332767148860194487338178195263774053271218859923398964681909424957233072707957486112748363554606581767763127161482458653080825439972058414316359093875472399085119375615562675415750161684984489293803658522658832057920269091771398242156565367436754543416836343915226873603207259501596358709083295677759670389985907332895387888626025552330293049396525484125098957461146661948988911040356377438227685106732437721264525932930478746726023310666024371584817755260629997320501753564272464059613749644824764119416009271795381438187987975312156450814165527794865631149408851745889777467309086512930090433151125246991328938294463935702525694821545821912346695028316382340036946629931682470876562460286649045947187841159833710668241716238378085910275631615020139172707260073381049928384518553386202232656737785164452132158980796012356736538965187895541669645476515243628674668882190836641663821206696461676832766945641220330364251594224528444176026258771296000860797778194654935583598143409772613441374585920154223782254417094210200872036904276042365105646113665707071308587709109172599233813298129410462137053264452136805412901124156447716493884377702131693137131238083154091954839435236145517362416070085331920386984373069777645252332716585803235514663144355779581886771776640491379738920669837413094956018267746785115725772632293907515740270757408924482770068014969967680072158725560260221000737496461053719714588993848380798383194054100729948232573324292833885118479661031400920209660462677036005677830261901860317080256359635179570199147459511259481250616572090120878116087151667324190370894550842511306012750937574158140854916242772098531704787209869339518090781063247110370691181013727443312570843428458961351918364974192391348292452391210895354508563031379508732121831276066938737542676997131929548227678917443507625910412818965127395014665881355268121923510381466198050248897675310671603130641660846494460571399982431482626472255762201985488209935321549178605858248753126833660721034055442043111067853675059592848291499805881153163549651850563780068363595404156913877955644385874976359083777210292183989179540648825316950388810649083276095673947950084817640880076716736693247840244477418899150108883104542721155091943878876365333139177321457210989453686056823220865383474283903849755338249057225839853112215904908612802974605976531755382172898108105104757807053848962011533416895736163200915332040645401072987881511155066880279127973951741481232664802244631280628744943118982996315980987182979447587596598725351238367525495519992056368160569394402918011228827898187114617259030873362292294790334515710642788197347380692172506858304787068823841066085827497678496195548449981683551615438792508644282104811686322245845994101949856667376955179358128635118199135609302830247063540685002357476666691422746506866264560949948577455206814976656444597265286737867597147078394132445483728967309389257294851721364440873715316304111960181304178123581203831256217748739481659341480628771017637574864266909026403678277452982511648970453146267883297163224670138663817384955203445254092564567133297510638659573381962267130546629012428664435026800481136430113373796672877593651826252996350980803201368994344234606879270139162134904265817403917621593308500387286259131519635415095528987426789245137241022771843115199831771567166493067255858966829509367876689706936975321333215688126840912877463263887927468352083963038438665629037208873751517843262815128722287039644920042871222471127626781354178334811102403490062841027722176297417932899157981039509735680700582695581329215668010769943886744353063581469652572172429481297079666787263410303270406182020036611621897447596593083809519681147294641321125364618256634631210482359759577999720597327518966472106673960585274439259058408631172446111513599036080179917209483717879210912649521947363955589579367437034843528665182789027841940423107008259310523600730603883432564241321185607562208192363332910694032652822033004798416228932194447048771620041249207228336785091657645139609810043197090088701295494864361636621624350996677423729035801203013049663204110216448702549760854082413370104505315683084583634141030664396233460292409512120862044006007754769885982187539876668550028559450520900568057807257603033209682028115577097438559089769214280002619560641737123087797016347307663358017693857958481167887441461396134928078431134070933642685402752046750636839682521433616340720868322651205535038167091830146050132224021098226815519425995356951057910364563850321359115003397787167884886694630504710714070847673123091176498989467665231014715076408378060417963509543727937980365454691607786546525210719142182572187916197400576004256050944881443503249050292095218904476985628137413190528495638932655830155833500406806226391189710067507777855990300634014758633750079440457873770795058592442713682153094578153666098472176610999476872818521482144007471642470962734600181107314014867171227905030663010236151816898379451589133154376968687986322274936047878150503850339318531596694454999325939417211427324865386196144288649956604565460159171969811064898081775459861795119142144035685662016200894061846417953145931918908812202518761949713645385457306466340792412090363676237147920778187320374445806092896381215186378073541185621724924742210946115341232501018478238777946034000603836573243956575377231123827835782237490889755618956938540541772302227744261213893316769786027329770936244295219096665706111717929207813481917498264884672375857153042398276560343994102772410772834801684665761734718058150691686663349098161273970529793593596158433405610823388927909891234172026573346556139532297172993173710822435376871617040635314015033469944369592418979450843578248442872610137733167918382065002252268553953905660510097784482229311248122597746968811594841634838597566251566244501987287549334583981880772272226283590199550747008530318733933474561778774679238060992890391834914058492168080374270896822223621962860986497750107177253514553637063360379267206876330296735447270765563820935787962499446294215019374510514602316476351493956328181259180914606800582393540249147364560741014158832640111190805729018045484794546418891632689842561197137305233407740381674045113080821432781949972488007033976711474030559670722586300195007418881155639339111856889802556425052406688404182221845600780360647818351969199303504630805044010094328351833028025130108562669423745233801774208237834520782292098674233656364829203540217492023521941776309116952069009967291000082285559476818210643492922018557401371798133747702832646710455739775429062378474134778157381785901933314390441410693648221916770462770810060002137131740909209471812419933621191578126986077870655890193081945626467277422667447206487364399883275402438122031040466950760508996469395888475353685065035098678080422058495839886413488467120712314065576030145885026012764428515081223475949433866847191389772435653205319341907689963113024567696300576388430379402460082852215362892603683258109129312667293481825935835240059335423186043958200349373821451074085422267426999013698846820783185624316502627882766050574988039730370492580502779496200085263601095388019376419901425538703863202289344617315942942753634370667181618818498610125702807763620526907563596643759975011343959318110624946895347453743712040035527998122644327219020132780076580551304434335022980787671561266719133713815564107829404272892368150143792842800157145467922784761261422343508459659983898815739654435010119887005895535365414104379141267918056602949869967399744297342906479557289380370488032022197444769800205989745570517699755058966768736406222480373324369021418153356790917034307756694836486799053817368211258752653447744115901373607821880197614047163312716842967803891727321306650589320944300193598528389432638000732717391121803843868257161836936451094508817598293461615680895980580812148884757734387548675565350138862576868695938577380046603183964221499470868292916669535147990897408137110079325019643475791544315395639611253189400588156431443374939052783724349355491466657275386008514006796229227695859240464693082621821922860379943407540778744702671854865147035627227056186511607627535497820463154790799331652346254711253504415175434273274953214524440584573835768211731137235753347743842278409636413767427871619143826469125637536658977930676447274201419942185430679585898213693131301257539715792754580903758646720014160492346632814684626972255676690831103512383586437881900222339291166325006606688758418715527880432995377406637996736840187031434387538574885247927921028773766214471591265075133435801265561887753127650118276561801298354589933807443327205571868478231695046843652976203626198686841376663272431073837694274270093003269328601468406992359454842375557886586087560055869513151345079743840123102265873876623059117754471928283647925891796861910824686158717339051750583959642856862584168986885185896531215484013584300482133952759130362508380127907162272031329930037663242066293693170232823233695521453808486326619662173271171903909581979881042512850935986696316879681795752734729064524989967196643851897984025695417160998403649416610884475947337054508415632397017005347627484493570511710639132896693592222047054897363060525088634544529272452690540998724632110767807164102436514658483296295474645908119631187070866720022958249862915455889410688086416298933339716332449623957888577917461233998678020953683925724847358864132050055189503994531894384115748057706374576446808711722145623719362462706930801306271468044605626011321240892845000741114385050862287163923825043644259467524417115027274349475427379922469260242878543920819755716573284197382850826772517978204142789894940437152263290017718273385933650566807665134998773441337821589266656478373897446359091835510247726510998344604097253575212243072039016948928947972805299157808888479961763806447062973235828903356822052231358097645729382197026402559019206143131175810456308950823095136091135296641888684878553144769209366148236892396207794068570535729156436409306376653229111203181475307115910313226567482399697501608415799736877104946827725016107887454084529665303189634732066532782526203410789425375559320105032761896362979691890679673278834484556147233020832288454003490779549811241960801769350676716920024019900144527922149143454936579376396540938362994108951613554118326373464338203972102009018206223010524111732815790097566258802641122648410583454923752578147198563281814510729543925733497437224608976138877511530266990888803035230420989929554780444955821962416068136155256123615250593199893081926962678424944846027609111339634034363473119492313207330162108153341157031071678897487103315236268038872479079401901176076484948357785557858291673779624291212783434797146988454190428664671031956973700623674162966406657636314361028337358125202685139706284873403937893886980662936404177398533933626789313308109614315646823256348416119747996659616712669860011700807606974945788411493771285346305531445413059015098143332573113013929487377294946529841518749665146111030431136569859442366257754124030079971245698719638398485220243365072457245701737807729573857526885965800418563576905666790582484813722290369578090245589743924575977080687078597512279854720765791722371682054646775090403339579968358025909262331981744992981876828521660013671054382994998029704775209181181652619165379389728873671947220510237820439896584327480402098006137208719405504548966299472682288418170201429019642167171885892244111233098730905370624179745152307327118179821199394368604167385124266696398576885229428904838364385820112586000973298839655908517219877646446473292562170473616656535148430517777405609082321106076077738970398938580779010435006525980676881398363464834119269541643369283957916736746228331329803716856910563802094080260536477759303734226483321780808658899979249148937237904137409520417368929609259038619096667899011229480023507718156946532121612304148208464891947528172991127451138568160384628033167074841755779512092995672327563460126944665134218133064733633571365482484930329272423748846278255952230036185215356047491299399409565261537575348027436514082407933291215518462683183950441246579073001083258931613770438585346285523098427859392186306437317015720251626719433472786734794601689251563891050902752676528579756347045735459529123723778801660873280178987429072026799683221865145620102543620114205690749984796327272061582107323738962675615974395984447320479365863627056952444267640830296665850951862614240353965662143929995102631349750811296060450954460336266047893160038053211775356673039401057237581295726966790945777259662788388888312619507056966164059234132069216781145255955002972099088078741981336133782623255563245879261404634005528707168295744332147242485476439113578350894937515949628842876372332847608088511901372938673103368508876085591063837266294730988196716807415018075122255788533794060576208384253775142175433511497653201875727771820792375154509847647645874688291970954764105079098550030662624619740546508790842868651396004279243567593990585948786188146661984953505625894355185461330238783494398265407695764321159132718597110972660681142712771485908913805466970582385350012898887683274159166485802652344210590410541746732741927212792149585232952204536476118805907693902972287286087501459558401384935459297684370415816894821731120756329344631495656063988973291086884693346663092942740945028943587286408524666241251186333343631103091674001616081173795482902023701275174572668403510691382756645253564608049218816762452756746226759698218082908694754809927532400379184454737211567429626730013485313108593792504386082039780734273393202557556462882468725490740410192515449456157223793631398376469349376150345659120936975655063850163061191885152168082336316094245283106477364611448759153429768515577856810172377849984095079716605894662473872954840905735541691489314240341219319928669032533694010556286114696869107187807144274903762356236725804172929634857126375045502072982061693322692931033477584461513917562494820711577638677612701486348030598308320577380575760395973483202664254510216930714334651018366296594068418797972467467822546527611792015709184498560650849840050033929464630474004949148622453255648749407210719602557983684564975015473948814084733302294786957161368420368730874309196620849746286526366557827607195361346773086822821413981725724225376295382861351225052377267896837489961153493215383532022150848180937310471550037060007507042213286758451246018859319808746331424323456505218409644888099292732078272281038903260671033112388100177900728562115513681970252520196543492812107372998876363105025284902167448986510550679064353379347916413763978405642612827555498600703630570578146655156922400241533295289915487728216056509830326758106935304239982534189922955773751215053276597450100446964563497173714883108689698663076807883827658062443274950402263932871672647514432204771861148756857331448701163663853486948400805906335066074736130139982191123984146961634388506535673088937173168595937595445180053696617515265453428281005687898874978294527031011177186200862755564804125223644083397191848442712955150511088392339498857715653762576010838620873896131716133283238199506555409182637546273819576561055616180171155850109228413269967811373672811247979026161314560989982823372599334478015933874234198516780338169437195491912806457499470114335572356200566421916654863201958041915386358390621133332847571670699726094011417866821969386325521503657511195382808030689497228089450067483164423696066608733819158336810384144169023158996452359992416971588527031186143476241978713231655657738519137717288831205884630034022570261622367649227088761748093743716629642556027747008077429679428026168872238841389501090158634596272156622249463340877870115734827341439834572968232956312590625736474934165491703588782428054273148583974532759171611437653286807493458371220881302935665487769273598514285409489609937455829528146316937667433249599044653862086093244462597653792118066107189948405960248433017025743767429377239320991007190750007276103065881307931663407629423009779211360518003135781753456270285644540863225896600629960324962718016991857472255925395095116832475385997291867336073503273841424941999605688515699453174317765046003890035888087861276266463908317848645475898097221283790127609521118910597085765462354872672531403339157996433700032218635523451837827810355730463450018436804759605665905012799885668907721656834200072396240695342442282442508195119242967044259212965549793004517735275971069753244349939024750627127399508774513096547467529885687090301311547508521323566810658752330670726414619284210827754958285862839866369340289225843899421377433035198280998641219617829211956620645868556323347982089856411101113042361237688472259035232167147673083260560248021167059169971008539406804220866831511893061514669187407151826987605744958368392865593015070385380249111606068638889224990828845730939981831950184112897813630372147248739634339393268673770474417143404395224983855848509255904535847575154915288878668744429731335291594028652033059664357172858333087085292013865397511529991412464590268762391360591880919597069348379444489029184096100269822821364721717704831371521411355700274038838819490829370046611023047586648514635455940218296484899100964428304856979251747562129500126239775433932650160325586703470738415783211265426215806075487449035581532348016162610565400599302705654603213873303263643967775507302893672970292976113607862301180812504447992120985177292456665358602107998359962681474503729613876646786852279500836828542100867545804940774327688264155282625825640899655509479566038752191982946685360993635221418256229342289239509718410585985998235175964842430068554487118689423304649343692068315147508168059496022836568071492390843563924986585927421247756376537561871784509467298882457456572913112371107633698682078065916946161806086290630730743595841566444246246998260715888906824144735416855571315439238084900273112295541121213914502410224879889585571360458827609063891642217119608553683288169012356116195419665050368073856076959382930454646384211956000716933515157529901318243046297009483394716935804619938731171032100935922183522163091612889977651443416137252566934756825002024785400344236578104013940302915346010275192028121298683174796600149588650273612714576464732364570309210355793135977270076137421152145656839191261823364175460445316322872713980071824343394381049690396555245342511150724716456036111762651192678373891447495698849076582483857431024492694397035656852084625035989037016427649236460283952147165516208644619815068731879409216555601473493757920669155617633711400914438012841264655511947528016024424982472204078562028426579364882315516381185897190573468433612750529567394473052681916659578652053320521724035018258216652083564496834658805217632950979485781543231049124781670251717018684271571798077294690386386642645467912182011976663695597124384260228607823251968089554445720005882472734173676640910006148409169106932172034460957586811876664511227017775665892176188934066075988865365821013943327049969612317324362337385247237827119472046921737952927359547758948216048548552515115572794925344139778085499684575409312529000340235960678072035200217404001919903369120967337670868835369798663548445098321646876894642429504217318356559951527212735285005074254022758199025562276790454058519457773549682538154945024267603951912494526833177654979291596047185264915662078258361433767217195192920376325066122617497028888138700688209194132002724446288861492222590631270420158755402847780840623454739774734204912875755321293958263462184357380625602061039724216551476534086944330867975939887054982061154692215921931060417762910335923375984888256794460993507117040643409113771204307229263642376150558443122853814688146434606723310852137409879240856298583111135313438446390194663405027221454351550937681978964144504477444372019627520119250879700300978181576382549879007083276382573894379227926722956595439293743753524055961565518145966687121280125105722866789671679925493624810072847070049361360980326096507395619083219394768302770359466072629836555459475781033875218766646388909167429110310581632491958145901415860699349365010330499247025961035663368997399725001101442769412509075882857678347267269603895115618890337207780406604798346874880729814804870686282013458137265559507453018373239304901618925111785536875345582869311747428289147532924276243748938647508204138524638189495854262222096929947642951723519530421107682028097108670902106087030272749177329277305383335150823004953756284776140310753940177323120468235534908157693737559441597712378858514502781201687184403358767362424147844564162713846943241938401843987233125482196907928249397825455506304266226401670765361687606558784080678879218486900551809394233864145987152666956198076773175594802741651222020719975848389608301705954525531222308521767838333854911188065879444070606114097293654754641200408025654704323662478867200938814644232044469852435187498439415743176112489747554534023531206367440940744917957584493811524601850007875024537187674110485911088446361404170967591120335334761946143190474609096794726802362002534970992871194530860504472471984769789508321579166668050378234348472600654027497427826000795704869580963729573344605369324316385858054389807033631479663035907552841776957729362492952517742349175590334872854104694408070991380134417578214934522890348533356438086200787031407380986256663377373102763588649085421320317300338062718132139249302304466036306806324298964598821727471938551125112238639467170701747010569577088367642214751926028451135966542549048158774679636673499070958884153482314645346984798121943459398834450959506001797319694690427306707404550562089460955783519458250590187956696691300947320529537701069542281124181480620907282380443349003315422802346951841513140562098940918509302412721333982975540865692153303833028267056101690262900491575357492892381378319930803197603139548631490599666011909852368140238284581707629252437861141122008595293370115666730466881775671368551472108464280547988757159689617582696986624565234960516889190151426553821375998998774106282177287919631829322696527314293508294070879975510585275495883025738042210619706780108661174016156588297627630570055101094057497049685953514362826002186710195684285939345677057920006677067675075500583549464552670071381605968916425425400452888095361157250734760966967525538007930511356826669501080828932393565789155340799556154311898781279455439688070227269950868263300164233601003084728338814801169869484750360955390682044768662878788313382490352864072575858154761936826520897415600225835256406416879972261045616709594490733856771252171750933576342088843170852501972131409074256555948556467544131395912996500446851419318505071196461468634756253576418052619263925633777138211684691840799634720829463372232050404774221828588534760912541363857343316888840651249228761883278982755274070481553535097705128763378216551548189340955375876247153656789860532286242985099514657186789547773652890695817565100649806797134562513933090770730160689687633990057330794117648692169886294564984320748236535933378556315983555806095015886880413266289162129635579127646497006729245586538612215244032547877776860408249194007553460935377895925184892701878811794747196748291279635341645546250857327866044925492022801788340734827105275602782694135446215523307317890841903645540697661545908883232607606098066805688688614397703623521480801206796707161344044963536979922379183140777895458791643943662631649874285022870729343220287342594867282916479418002954200754990657307333840418387967362661977063604919922665985919268352314883541192872366529336930476311226915651420429108860713371798508717217797670102415723945399952733907728647397464622735615743670957848492183665983229238765710651205825189397656959720286767956074821696843088250022172914822654847985266515535417099025236089831431141319804723303785797144365229914364094174053392413833857165197296411092002800365366883794091409407449164587466563697625998422200186648052706714544602840379720531774733422146886138069244698922724305001397266217638961507821058620945151711529554644850243516267206058789245520618992902501422355293772611034670252622500903324992749934966179230314017797066188061685129380498873949769854584071194374658475995431108258104263892265270359612400903041043128813585460820993794135105932192874549322923435564873466678057258004639565988548365000416075406020242332746018505756818135913363289383367477562829555694053460287196817438784003425276831822967560654815573051554669020759376776188130842626406524631396280197922651323961533528445284735735482636764498309229293219796178497233065942146644701346462691756252681807702848199695996423027247296821562430344157371342747638580912102985448724317442785982990183353778481282261730895426434806942336180764195828052008038909586627153816970789813394609574653227333817062979852385348442380709638297579627381597941111101325649485184018094214384187569034779749911838934940649843039795540608710432728981137751352688140388874749561837917367516054244175475323614403967233370974086294782318616552874701892385135972712398824439460689514411857274610395787912921574152328008640425065092250612998340364151346801967372160594139406346532569000963694836089821374347176060262235031486494864214062300803123375204082137555501155743677166838967271130725494359407067211363848330794553593193629994895113029916238240052977224194557493727817267586085130994618335496612767593284518426675273394334671249156212867483297443459022091022753316750132381294147084587741402365504021786006440482455010853043861715559205615473029438321120378545013103601316790542475555505773214755460158666131818808843554382741245728970373250229551339000930448529009486399988560225189106567468970230234006299145950761935282981934314911088530084025092867255823765470072456547218194836525262789390820359931803313900324104246266437250443443452356360625412227710820030620993842878421589009946463673847996036764026325844984735721177335320150146605935745151269319045738030289551510625406356637307047733125742443233899255963456801364382402254559193225699641838923997939281593981354729381978020611853511827046905789317075019088512774793417229407550736285160741935269253497173261261760296867102637115780362358215735427148514460346293848434067961874872526947634995655780764686725795586193096167277201495870302578191184595166259866083830564286386500962870184118886716086984645319088259321733928566223992577285531956526676622061925923470191690388472608390795584647380740275417753298649219081801635023358438919814731689761069347456090726512437574729236722448544233485688378067452685597004173674699076795368461206981128804536843391109545550341834840455429033124708800344673557562097179341468998331450132824371329851565219523070414801405235555706807189433616240088221594991538743675208962235764425118401974690216174239798640644177462485629351127020271282077678092214923799102966036855272954153798746666623663553315387148050977521956314590492341759110118060195052228807301828378872066526065197761409397263866500280393377762946553119023147510666263598039408544865880639713232676083984099904440927870139210960681985120142756305888478105077981101867172323891903184398716046685999851127216343723340758341330754761508873975291211734111079437966907170750268136468658509069466861580811642325273687213695256212379382906130237880327701597689147590660125202489164959894046374596374410872958294566366285991245916928568075183588722964050383118868604886527488863594244477869260061761071458562347681640770233413753183415443828651811791891576436547153202723599213683331784989078951839769561506487070577970884261983367952125581417682474981500584030439926988952591125751674525248992262865071722525564992660643544244667705186380312016606311345303579878619370189893926515144132115627831660295006356557628864580214801079188351922358312096139971190734483932283408658070135272263926224114348107525976890080332301148461523030374082220849522866265488369501951612671016186531606162553998918356082254007977473827068451419908233669289763356434996770177162676994990985207178567035905812453791124542145464274871854228813112190368165650536247470812457504126468968563453712212165442235405455697323683185304766860517995269295721890796709104696838438436095307354555664185189415513140966018857046563137014919130078111122160848929774633099775230861004044109354258692842318326234526276879373762117259355439760980245344766821861578307921103042627483866776500273264131999845621637935644126205840301631113922453679483758218871067659653896539478820337856127511411363810733586314676097640370021256244129566982935445653752405834196321866223854184520505041499072629638706618435111034564068901224796221430010186744837674851045863173935088037056028827205066798493186369098943584661249337006324203720589920434185358077096361661898734738693724683599694208782213837348214142239648733604405272027451352819382099916363446962906788633994060379198449038542260167538643863045751588476082550864743171357676439305004009445579602430352465717524710355216478015179771726874688121036863356519050232827662393483805794430552914785475098732063693962716735321649053636275788925108952189178883408775096456674687923975113364987039757282408252255251005888861836802063406138733553642582654758719695946853885914312441415741777493726039214644537734756065738211826825861508089133550752024068150312700009596096410278679342641099128893104323369602190045935062643853993307676789791617994602528460601004696858482446076169465882123665792574882832273308800384182113532670647357944477016791535428503347300337419493646595874365545775224304234235507102206695141211841064655052181709667732994353752623737026825479158311877784139131374733067086560602658841635290476598864215257636423498458081728222179191034953888999250179974894071774907143370740861173693901042094090996990952348866769598714260667907510519684818648126405589432942621015968495837200486179644475334613499679648409039842485259787426395428411994366405666820857619499650370727848202130225205657533423114895604861757490109569832303229199691094773004153224213077816887656952209804093253714994579143880996865230997236999258230762492101629166409865599647616313345478293565427176261569414221527466605599159299193857317165443030040041401353324075545239862042949026764141892014386785203777355308165147821048872576022713613152054350913419496619113863714674312200272574402482637458988311065940071042686362042097552099915685818143241695964615130164836102509682629088054638434590994252104514229989545059404059553329944450328315976844143279626000328187724112144026890835500862464238384532528272052868892604271849233677300075758413528384104773934431008167324273065869089430001109094863317365366106710962366352136145837918413993773387209733558590749230376182782100698469121576481672104925789696649851195219689635315126191142707786666936106294326057385297776208068938826848606457632805936020648443879645185591663158476696832985670653746759982165096851285207444087862797967067522873954077398980466929462873830422200303256987562670964088368166010092469387752227858522486014107888394951144845728363669638025702459592694676475028520050141187342165050562763914274474431322438468111712016570444155687596697891523474626468960698555850986297911642037450122811393454964565656651057630250362750617259407016484376660201869536276454866439538805941804669625805557171752175960768709821208477903205365038198857687369521556321515978910296548603622584720235576835755537595947320701390702703944838361661924869792446876828330450718773268508777305939360901597019401303523137268508038330559541997633019196219005866617256744305328020253679934730982958014839951944241258669276360212096604894500566230469539760653331798967967457776603491039692145483752896992498000737959789211596988597902733771823323410844996307008253502819296857729962273071479445795792032944540932269698058811405135643757101501635900209697977160542301911471193244070417923375679812876732248395779805492211982968722308135322298419890252373055133917223270402167339997951000518601287886792161784096233490531655322257334004687764622185731315138062214050291433573567083811301563666493096954558818576067492877608713214988568891168059162494071384410268233704549987178782716831985085048927024252946637344104190630455634110746251866414591301764188693979800822691307438364314514413350426419739047811105366828841710265525164756229923949737469779280097835886853419383486642525061406803516313828058153885490716423215964566122497432461950305129211711990317825813187782546413712656482149761631815403847176699305901160749822379909490590350813691922381692038341408928492976785919072325148806057619396454129869250755121509562852311832261722619177914615181475994826962309373375795919516450414938516361370875276801622001776757144750645228999605538561332671435376457288548838206674630511885470842402548026861648843154687521856057082845606119355388551586557462677566054956181880606193823591820319843297923475578384772530837794989970660322680372469718238444065165871855051897655354657117425166356466773347605513726710133613126214253405587968766186705209117388383094832640540799678074187986481405478131742223027802718800942179136400476578655112650340636763507825656366706588327688178332915430444875929223715894524793938585512597301106533259711248703509218482284536531212313609252938439874506798758581958218301597460506712134147420471522424659981394801135839673742071792389754904134128132411417691644440336554516210123936481234555533751467898205572224544459682160079094149690068193923104646661029306752253918395245794261895037845100464051893767206218139885247638383381859399012314437656076070375873430792897131214758987057205724103572519423976595213094806009080448243866410318959470178988572974760571934159000196674338008281058722486560597166518843691933536932519912648417762817786373556787430991832328954801916777453444287217928531368789806963070654639268800314408620315330493387713280740449555321563931944713538681161166087799739587479117803322105351092595030093485629862736667934134558164017778090768339014814854813239634383829402071006585030763968424431723668928624666339851359335477790982647140258299557894720646275553508703653093467363103195589484013264399725803787331663795774040975118337041429472280053780171510668482925189050698641056590571315480328835920600827315937006153355696630942187362735807898250120688032505069043555905521911239867454611024215650454430677264984679135234345902165994069910459293020417619584792363402769644774382834565373653464429479677382840969272011638780388795126791766484404010851240093574155705144207985211558620422452807745225690746002900312421486510604298342371395548342408260462819135098736326483427594961134312498395149044715076606510593083627793139996164095668020735417923290760796457466871041084513330794138729862828589111430163866148965205826216233599107189647278233955202619219274534753112833591584687056503881559713100984406626070411142089736437572835877512510810587312743710792718398812143026604677967579303415516987011809710915165500913903620786434596168637380557091672509993833899638096373220781128298879674753288251151840343773545844063662441026747910260950470650263869444055970570972425905814249356977345666846746022652403054434707721269025828754725155078251718599281032703771583838217058275774424498353852803722657441518784934976357123310288353780702999132425930648128651617641587395262431767740240637998251931018493812665617548485924682885468319473793335372074798996507938063278441148634563406513662071439148252088037991055111687049587231807834940453937371316898682107458398351939636005247643360623723293835095899056180060346252072176291607514144481651318572118889272118667069911831420928108952679158412855210908105390023470601600471912584162872305363897195753758959864608214227110383492436472882395903191917298828021260677922297187870703987472625178431860708394714427667625238314150812729004772639757385098267285949133378404806264119708032776463312030823487471110848835792022719735173602523378768572465774158478254126813106944663698773318532734876596368630243836065926108227338462926823134416396941822168138449306695775426779627996674925709573362489357119863237870562985536481936089445209240384051932923734507993233706036413039807921750372056096206616742245226397753775013122270483550442484198150293832942834283735123545981878942212339270070726684941576547927304959712457659090891813711659118012520427826190768158774935534481799760615816846288775577106055734004949040688270534553542941989987749781789442785873260962390958426891872700968127432850984767903098560742499097989185869169331466186437141311494959726632081813659705735539916359617391501117946995411110539106806090809484895597845228636795732756146207470691349711715151331303955911500044237742575576045767599724646108874911609693021728572157013165772715968208554563456680768936097879509502158150941398579819893368114839609496470939399339503274849802291265554786782440731782180892849700102139931125881673410103832461116793940599676828698030364635287090651608131186021978919892450415140853555050832470823690417574225293096930273897830655060117421325018380045494546757642979444150027750576384942362852556951704063430776470279685352508447445057516282411527527588276657889842485403481790793504493274234769867711570370895490339077696683933740706726557287835693237773313672634157742214255768460033190752522726859766944343088573822223399346228936111883308397153751168984322366089286496773769919606994931488400644279419077590846636907307925890563450743166649095430560253824125126173618811857653774794429136625297182472117114633347841308194777595346971845823591218981312562277291548171554173043689466251772741296916174649162364348701474141754635982923038929964658890908853639851536815912561287191847729918996739275441176878829703495021868583628656398827438758103741207233463479146550112274238189446186404904866999087196428915948585448137560445105123299247838107303023367391832634388866136972328742612907082333663597999692095241107326136774667156134872919345663073597045269058808561426380404191819342542862341521211732395614786846470486669378286238681580801845819032781563887003706596935271162261392433069344882577275842874942546472934389173352006322063148663685870243456304006978562911754941089096404527918688378384217555615318174263654086122024840620728596099907530208051025973228361598308982336693818214469116806897897746053960642006567672295655474134888756293410911901098443080639132813070995688443772641209406549968942074950836560587691523455407075765637496855042743932593509028218291370506837503959743115151390205721077451682908601506826480557769971896596515403170410230935876726582162931894712320139963940417359610007348615885250267752506606809520365013682406787638525067351582317113427335620314531202544957421034186591735508162236125779349346035677481131454497787396807274165916679207525185668598968692193843097559224733809251351502703201810160008694409381048613688360629418954561055683556061405904916234957392135274683060311297080415938026523314528532852919088004613534377567585426915423625084251381408978179310651247057713252416921404187897911028850847369998390505355276589503516502961889150078809936407824392629624098741708707142204415250054803303996238043718527263984754470350632749739290296643788275950536666621445211869938808733735563892153730057025190760888303006105305840813703461045827208606573570309404546857451744995229253659113816487317986280643856069954916922730080529527365647529060586569774934821599929691933485670214070635822855907019417345762512928012636682901759435944145079986080367356516558076390596236555433285386840681084363434865561975377357921324349581006098801535211212549356758134001410142633807846570662708747013432286275965443794247439390323081996641988246492065648654929823508357111122948364627366178182231349791550873516849604129359837801062571599500696138650229149041756429068090142007658562520583769520848333464946961317205182561642163966932031162143020599564916768706678720354874012668763003755136615339729797250807531174879569783207921010394734961481713022357427065468901332030758220840947833935389519457094735767666209617304675423804548841334587568610609595097978151414030307322040678150282351860094160522935673261329943596555524864256427466476790326451384190402877168975881328597314278380637625843533653780671779406644527876679271451538147659753107059296236550744932814499188161150909389558785231508504150820795963335368908568398507377175817826583204450613246910427322578000554104919499750668216248229676425274204944010940007304823034086792737958655805823832534656042049448875670652068524503856424217885927637577436520537310432337084509589552705131992206500541437960871620887179356598906028232375678151477371924054534929380084312610444562784074595806183081076239793669207554658336607345240533457304636200601803159792510534172182823329686318253689540584966413951713382219451233698867830784629051932262691935880407386701903587122519276120299368303396421726368422285841488697136838282233741928115894106419111785770162897371537971832207348424310371454456849779756857284117838073422203306822423830892015787899100110610217849817726399811238944313144750478802711527904641432794340779536405047436494513637393440628200321767729675094714534684463918443060114293694285904766068936997920465480432601892988536107016063262670865257507466320417512169008881953236563174535216547045886103535313771263426057467977325777850158201577640449435994842344079778936934875778127692003743277743287887007195900103656340657684115378562754101991516657385897019240448584075432674780169991744329069586511608417232874817716096468854807018765939949169364571409274122160039541490882477093761899474334214917437303952700383953227920153203386656290983947551740692165098662763866113361599338126751365247591326732066772371590040824315299131647413629718870083432529042300291472842754884967061060862590712620978234243666107408725294431773932195986245854637846133401696572091243889620844176468625512558755722422232637782930087722729504469080701272709221897813698672739343240591773054142324303062722387555637656868512735574609557421543455174552890464922492387609422996496732758204031423720933169162928914658121311941760736964935201930263085711214850702116161192413272010647682471714422335679154335865170183181253288428479738755302417748184199993752246068685180902666309324869169596818063016471630172309427135138433823887902403409153215008627857880924539808045731675208387551683418097333621422342252908307106199780820595045622215810200407473038738345612002052211429949215404624771642820055795126555105427337667385426495815216744281089396455554741675597542108920378935022833979546430023464033896994820458884262192953832435640103471518450162155436540134013544187483680534320900611479501442601367821276756877135418513667249198989647207486464366056047970834382648748346281799662718067497743856231776278828919093499436671478518199707957743370181492792637231133415977111443001199104432087149128798238397910259325902096571829747680177088707691499318045893740329848913906108824408087669465733007528987456192829110725726160386127757622481447756779594403925537776929741508193555930819958213060164306746832134277596489746566864008714582843610944700452901468218579298640365562316503680491926265139900760341996631213915451925054071711317878800171757197598279020358699609000504684421322436218921642386273349067508874926622514308234332219084880810842828026118284885073567627206176896593254397832137050520688912448290942522312212917385458851947719359475094108696851628376018743889312857433402563756473448448470411553581970331373211855232252279845383982848608021835685027941523074961140433393005856724594442581013455793117445134928999646122811784359726658721176618615691992640609571063847118051019705861325901343659211472111442996665275588186809439343027454577320599626634026733897914970556573425994126060085323651931110980991561817836384966437471089171640496407384538107344986376040282107065204311206139011692129921237164858508247673416646931054696909377072632631590364093440362841918699527003845229341305802241095474993889444838315300704842791148683957241611492328512501388663788043733297982975733254554458654700811450597888418880207028161777331809699367754471568219756867598098318606506032614983125916699776617853784368686869012315483431893666561755831376800809623056326073009373988870742962350447598717736492020817254807946740739404508623748137377091491391095167279429773557579065873762590440671913332955615212903050265358450056077726487212063664896298214679172704345710552805722969299653099437549384843378664282048223783286174690547643263546464211636471839878073175758846674378869280397905234411056926914872954572656137241260915343774789212278228794994706449989718192815760938079469875515265152345906259439780257029915152601979753253179314129254638853642327719093330340148706991418451416187310584490112467426675292751519605095856154311886250793966617646215080330165892354434958588153095741403405203426988826033415574008342971924866797985431163543617184587277963676299603428245338709610623328080536068468424211369909486696058223841446626733092577917008961014065345591664550217307672383531809084883803342726908924349473698897551703803308303977168571075752196859689441931153031932312502069220094757894085672835775116922006877557328984554626729647466125533877120549926660597173545386385558247704253141280762490033375258111663703686417013497769539647265367417288953529442577060582769668731947860697582368886258220500669253034813679823736738884890991979347201944132053425680138838635324849992522451293510190650990445746423159415654771575494823943381307293196353133580159479573309917104532481600661705746907601601125022152774025682677176602008564943192002905729785320031490104799796878953974195077451264630127747864765096984447445294605090707951710475949654642928513591925302989447082007956106650386900718569606401140767602856454673784502051475420778222746862095517667027960477912216643735220926494587999845359206958646148123641463605172866167901090628379448438877807334783416099897155973527075781774146372740660952737444648979516852183252546582870899632526055643779956687725356326824706973279408682443356889103350621716718851762567704803765669943666881794001841514347733248417591047861992738337362987302311686714776762685964915550818211935221607047675244187636703749126299812754327941038717975902690302490838803413228407908899309192030236262101992781963562149427724729506775147644260211514738345550695425520397531197588945076820557435740273268403728975447842844262519967154897989015569396711957074596344542195579257799932321434986037088704377943880564959754427760892258315626835905148076396204231052013914652513131611462352480198993879708648397760939899597564749769806521296022177174947651786846621498199800648293063632929131755460634790883553805833225739825171912200915692447068847404228771211815784831970526150259287898791161269213146029194173369094471306672136460765980276325007624819506948964008164710826006476230616573386860161784765672813769706960241455012244302961012790293696211058464793440503403042075778009028484497636587097376805257894725415785710125775521922232608235324287862870460990438541762317171763274802966827678106676198650170113622310821645872405102987679224532985992678078990775215690627517058381356110355418839342487179999381284578991670055860227076401256779365485014708941007917878632022686139422203509027766652560414893183011921076051637444417548818497219480392188070544786934746621605461989525611049381492633517119809190677744551233797985755085298900320560221974219535571231810796970850849678410026114888252167334868837056413148263152064946663241605235226955154440273626582154124527681600311956041172418970997113361501095812140217554495191696675723438936679903389461828074017132977147993703301214974432384472608362633816875687320370609907484769356965072158826526496303200727612594981937741514003450885192128048627757759768248435238595629439821307913120713723795867952241943691835278786622855708112161006611140948964015407583932420913073827045992328620044445173004684109235572736244695179337138514139408273440770558651463569970674590310424434812474841690336597744746311509211788827737640989925284186774634015843457193501869911554929078557895156735127207019428555160223925267518991985566651905262513394402350662244004907046991994503633047230352764348855774461542317220064356401481619519874667706985422548873957742498853461271792159351677201933966235982219986388173592824204188248365939624446697781966653940654066159043982016891983719220220036842487512810590076108068591709201935984910531050326144471854591112291603898678870329715172884998765404185370948129004842058075121924980445096017039482153536902596137012880391530616252234065443498587306877823438495393606051434926600650592614209400422497563063831111271449597986842064432814864326718839658531135492214429907355970980977010147466305107447740562158121464416405398985052982402941231982288368088176067972529985004458206708365736462335855494291540121243732993686175073638498906454462057152642591687970809571671013340419598394356086019905120030717123013183129098975105776094603226345628084818624728504107928651561445081693252898408324322106808484877020708452660761922198234971498073727440608612294343708663931559815101923063498285136038596959040062607626673375930980618997656482072513980416307640586179957943088870988432908037481685916739879587842997354469123841813249998226778933653825945360314483153198739656524891252933252129171986857817487154840440528780703035615010622766559910124966050769786246606248351696986851567058974331276593409774215970198868720943603659646938019985003406480953277738409305700412546752579539055611466712734356285620108649484144191281546345516353536595977368559590305441722554662571301251933489544031785179171886661054646409003406365426939438214534447702412896549251976881930702649621083930449512497179313855561523855177467124794096335334066118059988784995988750874581986522818794647635723213094183639168180613715001690001327770208862286594852839102075568015549420674268241822436353160349314393810139909925068941739291155095596859619219504716998945746928218002834204339257315668236124161533964101243902595228245418601786264952242144480294401634555093258897187267265723279107658424423366385189057218091483864445124945565753943072037683135557022156728273665777903743090483990576631997429828615884286619227884426342868171914281286511895078686016447804715472041955960477201570238888342015140926182507060804574010174509422488216042748372614820256046787460178248358888410706015907589198366713085531694690390209568001808126158508063944020215958289404701802668558486184931757570499566083812495844753403125657117087844698929782462349261390845318220510615925965935717839251375276321754974613650480655909859973480171904117107307766713688748114355811658548329222975242648747046720921571014549003050661609958033814547403919149554166030688212206403070923113928480260655118102314319158877656332672019711176332111539541604590064492474112489895163494417713885091503387257610116139466394188093738134449266245159678486060015852739899950152876318105626638957297619050481671199237620049716589612606447205663730726253534699712813772571632505141265186159554096998107796746108843462082502151699704243783654047074963912879483349857369172471557336476635045175399003349052188720992477554467628396204587315585603502144752952657348792795503409605703847814054224838566770233336674356525602926126918866265455555463883954742207588228194547609993900597874289508539004719944429518369333969430496460138147243717830720369390907741338306770515090419858810471654748471287531291031669947973472881028611848499683889074893706293937833629430692465500444042662414051087308526804524511635154839215540970974701723239920663529047877756319477537512345739740259482883393457263242737890897967035400688535330379903778971862699019082263494837542150931101969565804453829567877362385493577825695334301490098699496900358175644246889955041741057148592879632268684054823477777431671719168798191525132782875806430297339055947814925320013102901363762813577694394199509141618125257956707781563231140869988099656940278529992134613206565567385768422325891753543230598847199392377104025254350750349212261521619728233721739389285586275013906981800532992067143916555635161401335527897890836395071222622972712997993515561917572002636105607498566158418442908379991017226793172352106218970807837364758441889621563333017441802463573260585887434256285485656338861300235177479604000154341515408940386967429978628067991061784221130486071955021191072508196176704798146365449429372230194627160520194161673007730805574828714242844938776474178822736037031137689543025088304804436551978926079170996518947378408583741985338870841283010474511318110190922507318322749334220742426170796576899655803594129526672726093521567340414369619160141092655508552356869863176657618470511691757175203974370048404795979930481900843404462855218119779886739433696752939761798815113205811684357478265338899750327020025732141575487421372114426834594468207785483444777229254182532055611162644078875474404061522087544619557484859763485355930970357537078329382511418112773336810744167823297827292718759839192526429616600867860406659823882334792690148209840194251966130912120899898150041326348502593847840609019507911361808249244708159806281212389639803033395548667815334451222973166632124523224371615299611116878612477483756284716814755999228110787940811254201535825675432424559858671415766015138987875804084719793651272102035544819696413009103282574465065197702873167998271382820465517131351077979047413519388198440356889595649165099711372817795251839677348903734205551288877126000563060010649943264281279789654202772152398138078303159801702495772934171304371187440281939493978711775291588536720161362105855173886044749094861481772107917386915602638155150777172550297881698215525117452505189027624317625100556813308411928420046026954885697385726483160024643973827878457595875146931594119825079345486422566524873079171885349404090091652235278114308316705876772070097355229046203027180326512641143084686724523607584746692889027143075956712962873596709814293234608367468419895306956088357866120712584600214068944347581587467437998102190221268044063547685872369314274979680047212607045673986289194583049858658919996528982117426776787528593392743046131555722236196906698108672325451575446816107860801976583086225551823627062531832315941691821701528762730704356851378230557749610513780384410461872197539917258481156198530127475907966421832021900146370790420166208640346401518380368699733906333370106694329522973719054544049176006720965173960821108770226318300053422059307738841922651227887237169470206392579408201829051406728904236675485549219439400913591671204056920069979042580982062459581579371019254673441582310890992576706113968614275458891799433876979732071384463128568323822989216112829781222699281179145693936988056692500253522657616551998546093047599874153202889607766541771494348927365905410733121426741860757938184935760434040014279045039456783704260168040909088755364712751355202001640703871822221061093195489328074970057093648021620006817037411880678546092806008844369585335585271649753854398252394089646318259218109831835654299356872882991236750161759260857199000751520942543516685200828365892736068107678165231619232477948088657708914007736913346719680758994107371065363796926717162850526929284098730830950253803372023513047795366496937030954198304166074560860550134034563068050938545216881376048698163249709976939190364671772578247741568275801678000827077405531944601642724230522918119470525323941432050808390431562484251134521967665748198115720676173590725302814465851671060848327152116302766552370886685371915731033705222996582601412657881205393749592682425270472280444541030562796127984156267116456063778576623277325245106187433892384254114631152125689372095823322778307865331691464963828855614593286987544117150043285071994281961584622870988645302302039389071785071710398927796754222196535404431518421798675850071266733993581634534184438759185873484244033125181348495283363131443256041149744453857068657702781213597885646177322608883988729129704125284616979574761378196686733123532716126944174085857896585143700374946985995292439300041042963237306243853044621880322354250610511025159535272898699111930945556314863243120676351236037602306455582954074689812065309720679365558461863380980028750597657773781006421151492534568348341621631167000330160156947653550442272265368096643472339026147119305600385243964095801196571044789866981808872762411215968066292718756488969773349560312691984903708558684970222100560880562514858903220360014911757512827168534550002092036924871928296056401583217586629251242066546177387757166943170184512548074534008701043291114890667784485984579836452450946052186441924381713587570211890257753455003519550911450467125062363655637365603268809989639482367728576268361772372098158160375822030115657337304502546575878788530478389221423477579602083806083248671959014302269734339958700398128909516970395526194820896534272201032935733958234002456703280682922362069856805929039115120877439006691810765641969908267383691371265038840981772065830581356929966093113300522239689768312060504270408543489201672427647981123101301821592629464127838720215802686343396535667576823982366492153020400961439401816300268217039284662793440206201950394522779916945679892384087047736689843137255070665361879587465877441260895894798350272693130430142995456143455402238544782943662118945862115206913326015637329316509828005022920021554349519197836867165786307170627640821672047601645580667783533200732335378275886820891107737644228847423767632216784598439447274122471311664919993219720594731509637599001383111248744866021761079157798824058000542146797697169037450704255156632664684368882923056025476969402619281942699209920568215656793450922147770974150220887992232170240496825997808438984268000070628876299826901651473900255688545061612853964626619106026567103957979245186650160132541404980579206487988782209762976281169856332372436715988964733538356979661594183384207871419982102012271128486253121296415260366052539900674260116068765763782898487701447142428452425682930244332471970017471260091243845387881981593504034977919090345806579091159847395290098853822152930096442362885317849553675000070174262639814473210343703398045377649929724192243587843259168680231903297702698955757706547380690064454180073155448442297970268195943997002133888343967882743370387189068081692944080161259284096839594730265793414868960283395871265787944549112515523759040233720267316412107193292203413482480331831978156469557719728842430597988467141286652924255872713959837800423017730913726821839234572147697875835953857259565040708091619832939581081362987674231077285742194699178254988484173535851448086934319322568909483425682077526807263828540546788233661127973748102507094598405609368999332455268680273151184143174922008117926930503150506197921060344778695718664372089735591310701337502315499237147037055691738794936898272197798197838657973259641314526691707394222618681507634843734054698047295572228569369034087750041417018428276999834810199981858581544925411372716523704476019567317714838364518171442033371826845061823428463468657257424082963667056334833077037842968577290460988397560595669388049090614158630958843802601440165513631732722192392160352309797797258546219776828259945223915321723018017348120749752783555442516353769029741712270989589388650891771904303096700091394831327482596534947832522898800329690288960989274449184989719018761736926696058911253322933709079232635982455027777728293311007490649754252863620009964121122119900121626597464624403724586777647068695388783453517813991903258072844496978895956371209838789915282966169226734290359271643496291150937522110404283010954612851757781591694595276397436594549799201298683411289197433447488786864271479860396573337366625419396946448288775619858798975623488266987904191124592374171331212212929340341256493273491399792908215413013161308608275520792259646537096446527458500102011284915380269154013705075546594958015161006681528214711409759779851151202797320793312827681477566550316107348545436144870129743422560261965780773453807500887858654300892959890101836031682295777012510903358487079852968025552464856279654025285056724234195136435847272199584895889190929328831428581165962402684423934524091509868297082351003495330146796126802532769021433954234459838096137942906135494276152550880863823859161311535745795421822799797060238089316123101532910009417191402445165958115925170066906017250674898784039197549948721218654890863214322384229501980471219362067381197755336452716389108862785940834132468150494810181058576289901007101773457034371946422356421590965699451553533686878894899556905673009747951911065500684925108942848689914438743591774374534139021856275783717057679302946786369066238624131573218553212848844417266484518337331542817458649566508176030393425110037645401146503755685356399512819279620727800894412204013322114808272503048417025895252413100322800889252119999043897722967219447239894963335778448771543379711129067046006377377826611934455290093001034878495888701089248959196544354597080278837994778967852984111574580502709080186252510752852460858237505536194499529537018538980548166317177771827942874777323475718529794623666001440093699911784450749526450057115431024440174869892561180520493610376584861580322982499752168019781585814144431573209306071979373785147806346833710879492734217628654086804989639673280232381314793237096175188110938256482786390100177631449683628623386193090119034278792368158165077483968350544276753402106224619033932608039712988941472915913473014535432029281726096657950966430868194409722744752900963696475198411228328133135661329515688767902176728648524773632996029738789686986003391963528869968230671782251915513817406880765687322738910534980938341612954143215462978803318593786876642056472002838571775376966305512182896817269246603732705287401011512904437925199834857581060267495893192742100433167815691518433878861685922036368840781451583146452083310595325027638429080218881899815706245168743689864854633629555011599140601600565074211876635700084054079229187740794131202677745834561686241381381064779525318241115104501894544856766097478611399562282575574417208257531205624074303559468604757392701717538881551253809605554142127299662266952582033464334510563606486903840407733387922226561735128430243154692247476031730356293697036256997498458353560721574539768165409101952747587252728423562323458947119916538828440190043459392654823214827594452290829015646831279689016883967169204315557520642240216185275251699820472193981391290628654668049735361182019523257932222626461878264871878251514404410469250550967363559952116046034669653398278009933655792379900762623966546981542217898974678688865739143212922159188951055614140075281559755734227227564868630051181199294466784590349688271915003743329618002416125751580058908501622888815746912635354957002200673330996893041487422918562346849572739617556070027584695314509192170966403672946566969243393783176123474025126785760310875662701784934054325052650687754432593961038168323467768134871749384287317627470502373855897781094237333085003223711797167611556070070934230854471731519481578734854106193271671440152758062080680232405983592266910116299242881928306849445224057636443024263615966753638225574745753560215812127164542943986639154236488287175202699094154887501933164681595262114320520668292052502309821577141947428495013325692171231351419073767279628893743994677011009079560431181888023415196699559335235647040750595651072537071663844593246828200267216750941797964495523762395751550283873945787606984455408166455954058220356272698601339123335933796895349022291555370043970907401622896904895776255369474182646771726318381261995502503553090838911685863976633521802902535823177164189283545257556209032583396283098261408068889626394239524869902437491206805827566269226745244240059969615501472087014202442969758279904311706775459648263155600817168265777783938172407069061468024659986792700866950414323173474923286403198716203337447912567347473411774030771045277329477791470338868890678953130327833542229552360160142827450290733908068915078546015070853042491987755981006006587879490692509667968309760376867120204479866951894657278058606250255456176570344430891871744231651087520131715618418213549793417530197952142270933465111745102426363240697291109985972920675716686226506020379212979989316821960300093407655136336862992988757730455755600329958620543674309047114849357932888906232254998598405488375956903751850849323966972287875840881960406501627968263313440504224983725902424624878198643215904453376904333266771431285802226315493334676440199438129924294976738126254625119146568623756053927078795358591516861027106206672275603928201138660463637226107633767535481604781178145788171404362772653308104911198695218272803223723898976446428770283482873060924858852319040193554026942118007054239169588950687032401007152706890639111124023393102270941528253149229811611915469816976279002359473903774701208256118362076819286435012316115122790002721394791038355061168255582718416435011362840293648156992743548156364454298395165235477471849040852181183697768096647044288127330183355078382992858561037183182908159333127017560914480042989601415823427636592208810001796810706799227834207222757529685316147740861907406957978601310302801909320668331831353250635213396796756194023832141175644120439244283061749742235717607295624008425607874029152465347024147100653515219436865887237393336457440961615464689884313604677852020491464882311771251919604251487625430522443174073722586953112197682634594262708534935323741764390350730245999721404353580227781975643113542803405019607502364606126658985268707021155024983115788120495399402429324231341342280817193902885858525572478111725622442128079917416289280984035431994752154157960100282698113167724296915048083649957348880575982067677026788326025774014745557293221829856861912370272836774872968627667602016489931513137414237479640206696442173388419896784771328022025653539510433439897377407904282495603470496854650431309869174956520252732504361839224746933924709960420740145469717620497214665500441078086188016406736688961342350015483059655233969410812180650268620221776379031657175269248106607444404989543666660042165824586457788384531761797178090525271111202384988635897983452027169220756779110052493370266524617337606972861741324100948227711858853334984454993235415501539879570240733879189454600469898679438069217452207201819728950899489488372368560796934742867251318189889924253212581148234178035263828692406398763382218502696663959891541060298157739823044170054582975397131981378911361963950061366806653082766321083793665376200000295691273885998550456351317848744119840566350463378912454920874174217607545153374174209624574320792140855520625633045757855859646627960411107163479890557830671025010262519678262354212323554637229224502372563783556464832636084244880693380637291668951495489434425194463963318690754392618319268596197351365876509885956044178409720736429338238158583596478776738004341579345781408936586667731654856864753676968713727449020068544163148246131622527192187622499880285583179723700883644450301487533096456307685081797199834381787012091588184091368518483999005053504096708022476243989024209472181307875223186654608901070528474699401046855263172274763287317674402546558421274476490718110055386225857522408696850556659793081476498208014431224898863626519809448460594786085562446073790426211146712130097868543686109589241526963321566424744746083531096955353530671327761675935315513592954138277852929918387158185563106641100037023460795521668966176308476924377638996693360202301541305535831910112257205529041039627221253587815153204597688439241361421871449271261715705397946384970012318269588511320222428569976229335920470620176463152697556380929253426046059586946372408401682199095156134336857589136577648637237127973583120203812640068608458109117845076401077545476569787248478789028170368887483772937358976130140973260515314600612946401906470957945337974721385336395356497159150271280759839569363502674337343678358989343355075202922200706733395740381189399619311905147731323621328493621723226851080501206785763679064893658478913215022249965489870680974344649356546638875402424621552106689164969146334959443805973040877992940644847149480462347282495700165677672752632885100483265998391296151135222974390529758079867605644898715476112526748400923605065702976331468207318170595800270363300814102495554533369222430840881673881373595879501430517722885825582396811958941443402825710259874408791478186782519702266367206508984402782646122969674932971771222324410780606661943801643406629591314329864673415465913666107699080497474473458417760449924730514668692470633856657705637583369129357389193599242805727133624856864820615278690051205651514303524431451763370989274691275361833880535680451390215825393238791637236432233611679492735589915952354900696157931190439396215789940754343213569008852176432506445728892543832424506344242249587677523564794654081080536548973062653970650169371167682784011901430018666896380448898834555783357230852043501780229215254135471424018791491978101614562130739202431322959394006602952291910234344707245935069322421307005291769917493080674258377443465409241377235809029597232270794898108911807089200823286011671594116625969656957998219930914407044754420818310399292792686744750588975633817405159259660831167646385194453040938291582399717113404952537687993757546246145711048056309008229027258410519529414657034810464726996955409647129993744120091194170496089811866487279504289981313253819709082215318615601680926816890805036847205459005181214065629746509292505414013211651351302440243029135837923590629624095950450538840934952862284269284702682476381365683595565685491731753263777245188903406171956790584988028821406680938303315787117415353167051063256332652255428876786556259909764133471069287709717114623877409874128814447075195734748540550748560610815565619880441705669490862630440642897240542333284017783748716934078165080189684347795953011301643242180699530269334723985544066214330050467380476859519172022368473261367776026403996706223247023474160697918103661821691098577997412455022849816801326241885323821316076271000042892528252135585926721821544711882151591636260503427179390177508254527967559577514256823450625561528044049742115525464874795591415636605055459213825275777621368073214267066909546309342149163688091331026819635773350322341633325976616431233223879270784657752196346382752460397264893291170876114958064692474775742370682572763384839758168297608053586859950457812372312674924299368394197774539287350076311187241164400757269391911620461865438889256554702883996814438590250658533851343481142321660730691651323057157514490625223808050851070240011658388328658162449586232051039263358357873292880638640891409627600597970239415419893171099616957538271318217464219343841699329951906350966051106728238652722401475160144633707722997914906249089069810831188349843562434731876077103148703936036680624319148069044014119926039203211811555036178880358081369563126369063108694301244821808887135434040482874009738429907074421851802167953218088505894608768470445614030972284562910826314917221950338299708443679056535782746382151490081139641292781150738854071019732107994666805195056558056389873837184184108416161834861183539840667156095514276266154049991643971453083989398943872907330555879256771028672676815967494404210250676480398936233585865513342601258320797946114833324902704148298187742542049105423923385531973600269621439467174646037204430600611210222890089341856251055635119092028745280680153633282969599795582637015182333954490705363321966894593731642415763045119944261867008058366607905273491968155071395880891442748776088991446541137153036375831018320804442482009078060669564124862012315991786448732914848395906572483030625904358771026522891479094194227530942574989107699315482943036557100507009928666538249776502467015113186593876395610334702245110133135776089224869815584790873643138802113011659486569129332638372308644598904921385151187784126621925295905895050051294499765932617028188703600469411401000312894227360233411161550757649109052871568773206500714593163950189618539432433338950063544974689835485382780677571706058147083686685345917738408934575810281289849664191256268425191630293870627137595180662118415101434795840672043113971818704342476864696754242218863337700218424207995608089883948586764245957652694949546794432480862222514947312893423200023657944914133558647650381468230005992605640483412855661783147959182209079609908522411877978386520774560179743304003887546585870332899475578605319640325743752592409774943056114236240281229535480854859235243214464061388621590894310123497130079957873730449092833352768455224281816603096836918456628989372714094979906345040448329315058473963046058595896568569890107582376986761546528969213675123615023906162617919882666548347974717616537330001700736372671281782421599118811620202306158250421605352885543858516011248399838794544109545911193746135616214050634623613148552802888446983978890013001146517063079153458521789032566936211946936709181951746258840473278700763363598081448100136985605448934198610627846755186896715828641972155561132067251756685470704965672149233272239964316217852718763505704556131428862184256803842152155943896334352152380610166976848767338950091228068599721946876236998872891585124669579634485063620019318801136332827980879447829545204145229408042735233584014721599559672796931764069087393603747642437556224423347121090680738612982708537197135456879712809128491035829961372636838915062821765861371177617172070383791335842274348748721115079298804428671034967324598297026245014924248700533570638819824317548992273687096175941494907600949419550196321581739567022250025793292583486388410923134879381239090115605218499299796000677155755016435822378989624813370112319957257913457411450539341422867425475667621873701465232272177077983356305186014894823549066177813184666765913641514717273055742551745751486196757040191242411865631094726042759768373713973913549904908488268780108130877221427847854426112298152810478462751962961205910466384453697443896721739286997815009407675910037508339841851725028808273857314910081092694947888996513216707552853566359626754402674981920544987364443827503155302417588032500277742169583948621516010350252698914423077594817574179179991829523085813396160310257900627867921156976971706134538705594030491963650641339676620205178053566064403555504867206748676197015566032788012285435369772131602107628841178920506625805280775481517173022040123617464841498320423688057817238942262616423488052923309167773800730898018863281068890536379034836919557681457215447414640770471625337441203316459045393180420540930237960729471509132463246536904750211339323129880207798552553089370630075894340846915329735270744301115583930972599376592381458599246922227871954959430578421716815398391783979251705169488100845189574092725361285992371333160958795811198815087397018414898858694817093970922895390308388518020715144360344620553961808005745153320228699472131054120710255745936789474556819684503116620266819676994785196705560772446505103096693569766390630427724046158305282799528645021894521733385312699696835304737732879520888723478455921737912652654530487795143343175661289366498953274565007999271798536296364919465790036289887331879599904551500409165971117984031598422203869014073672559058889044822474000518021056484132698011576577431814510280807942665646136935000440478385022513856870904986458391247992118610696490788215572285243514667201256051979498713632447251717122772901997359083659094055576331797861476005234555536031247370058839482621896479774861158486113370842900162351456594795733703708710241869910610231106510878445875211279127673693885581531112022807563180642351217530511809770985106907204033639474776820725959700157560868283533252706324294843012220202340988574540009151511946847627067815070505820340671432770706970572705242225101459733070340451886617938539197041941802316127441315155057412536209912435706204397620718552325453169755834326425024044679581435917743450006214419748643843737694223686634922472907611139072875006356929706946416877421154341866696364324689047268900739737960947734769427342386633484297531742578506512557449951212280728469093362778399583885172542438984781206292607668914243433224347294484676052652368147237974325970099103776994701290211300586120256985680517486409468110168441516535325177947408382913186669317894530737760220205177664829187212592982575992820231640022437151652168847104013185833830129437870357138052736118287427196953616203266052742321377032860891761131919453745980918897895693210591012248377787419565445874753116706709203761179598928353704714583853175427131692991059937778392345778404520926401710918108228642075791601400911012598703670461339747683489734411711834565989951913890917277375841444353710265373762456359253706599496574792971855255606774226393510052892042965413499633918002731991754489695380415906969534734567344597832783094908392147188325378107626906254356569008463101420530894648392138661824690368594216024897554101464708944422909045617178103208344439344095077518186414117212081158079932648728966177619247470871523822481950175428726951932191732065655929566124889936949104516340308153421491726150005300338709326683286589877417583544252236821557545110181933306568677506899610584401853382606394206867613801023007490807328822326488610521928333770917899484074171115416170309373649477514361046980762226515614476241039726708178945177734473139448245193366914612246968338904690340503666833857405113967454312592100619731064693215375426005735164846329055522647210997040613830973407001265633495322716509669962068863022876369112852410639078460298143327302054978259912506643177499253228809676884710199816548435225858202200776930641596000026635016703351158381067934436901404735137034152070711697187554188019874687732457774779453596083461876311315040139005188699598693475890523855633534660615482087851560002504637445148337391954908433358148994907389933062808515568489037247477630972894567529164476538538764239312128969598163802116908609507538182568700791312760537901376389449888176711256950022710114425852219124439760114579159454858320432250948354863238667210347374718948217691960055887935989754659618086969823484424305235140551145388655353544597124302894816193806403907293906588357063977578222583510030417690216764511256670139733832761913844144174247933368656857316213569542137201279176652732497390806140732023395987996119907424925913912846255345404707856680088529442756770339729329812192313435930827979709878692099310509178528592626689825481545419578481464856992050438842856871144681670201437117926983930822736527234220807497905660473770065628950998159301945609403781711085423216707254389825401560571401816107111587426652415042959882093169538644192046672795870615191975979630371121893678448133433597739565538069702016405295177823541842317648501322713489715155206353531644000088026958192189520182805189035485353350924166636106346068999400716740260326789056253639449524661842992420072079209006203155960559124708374136872064416977159432471085807676814283109469796640765401796475937788301519487619200363812702340605971654738415588171576378138451799712763005990649459805191559461517573247873149922105020433077447569871411369632390760169578328378272101805180520787510697374587643729344474179183521425545390897640946297171408884461415250030306322482974210655033441707325067070986000575330287375264188602455150397269219766742469502348845415986741838048965253184924175048862245251972046161654123261506122774725381771268115806128606698249249121103763802678172215247590662074239736386710771673807113410927450569209442162755972641611555917657687251052163831921506938391391407539324233217214505738169196569129224881118782183207404709151572498694412446191992793031924321202223873017398724870062139894332454101119669882747123997162013242242073618171250557113182742157588102168831083359141561840171848178946263736272528419556998073628532654103917480539761566901082726238402019501590292942557847275903627067731717217028425016814117172121290801057263806669442921766672171262417884863931542279693952504971777859767222508964844397576958238749334856144471814512155137080094588837783740538404170074616592261764932769420294929165764539498715483203435855198003104894744310419643562143982599296239537756767916766112257824024147328148000076237661167135834576669805743879627810385701143682096907609794320803949334435836746756551631551853128730128788700785480478721642613940769162985733840395614466004095583135524716607937803617453316003222833498970883420465607944020271843611999668837922392103965777261861680119612942394609924273443053829891363243195991634461420843552449519362963820025410905054044888030343174692903205361500062840526334571585775081081098421998769257388299645109452670288479415731620410086055241080831293811341417518662624774526804523866724108066768839886726230996285653958740912247295364468612541729213255711929558528302500199953034446202812186180634068838938427275998597371784363267713568657208402308392830254916916386011819247575249652269652503910258658964493503988533052208315776661606396118923848423328021589771771881480799732614099060300011879697901220822122412970473586438733146787657902585428207865925353987421270931616385827660616803821509014995526474027927199940858843163365902912431987214326013785306554630406679649758087306190911680680276485329620392515461146063499144403255178417002899105311881685619485702245439553698330004272936272667915396496151217332194030873132397622735162044571654089851072254729653980244558455046090309742800111839505334441381662079587003235061109633542530816648752651925764856373842005328635102064384175627749033819025717088211950224721605217039259090601248241590311038330195312155203912220604450205326524990236238058019596699681567993362547744248738974259299079423866142472615793514537175318605660607854552734905223593603628779956938840813158532357622250786450406143318655180934250344280611109651486793696443386773279291009147112133276627759258229203294821290077778330192440501158928949497869293982882923195539764322783294768004757443892075078240431751250734129630613119902145347895555426046730684522112900854428280970221428013080881299972398635760490799504421624756429035799631612884069111013635785154536868432854158349092614936824211054316246589676228285909792496589145614702305069155354799858076483403265779512697250355463778485979007569070719445045297846007829889331054481250677623562247245461187881703938195228107391959943714430919067373741188010764595642437253910952070079519013542962057085468272672033271640236816243157878627606737011380846132787764897352154485365411139792607796992101268321086839417637358316894909473490618667269230854673491401649578984253571219082599122862756264970075765794584585897553873978870086748814227010051426130421716177275473180334093028111837337064341702353513376552980625637330385099952431870194831656658874577863696346376263882665634103416806033530916807673437515545192841809156299389580429562472813379190680482804200553307679088456848517106654240318523724918670244197505182731948330102588628456502056847172419307805847194707857752653412817438877046208834671095750297445960403629895537914813847709726396757707456106818691931697109689808279832034643707207912933042773003065698416317170274432216000930545987992518482105982085844745596323702195702387957840083744518843577028571732954785561874166541679176508721996824567195148487666234569241693916609143520647527513727311703161633383669462373300897567062228195941992554197750121524770524106956422773704270398209682100677480805170818463100295786163153785336095321856959090503914689728024075705097556357169847011904413475213318199904849934312202509526137233196782537360434675931524022463189779816323648658496399106538359397783442834420562866598367787971554408540482555801629584971802856634734148039171750230457128493404445017306904050746662363041449970516623349223468959681007968503599936403374518800243095888711881685146263032406968703849379068758207057978167763563541008587952799342129667583261294935192041989954859352106402654270660314492702931504690787561781196708916454328867353160926929986667849140173145203031385314850990841794964337752155942158972533627968267632806447786897284323722084453926928220940097181722383049172760194411421874512537494604623405745685607333278375570943330643505280193466987903358956486611794266660901691550693814695513795685757260161089457701297054650116483258093395350927254334041137520028561657879272248225495624063045569012246903437963815564492728311914392236152373533255515431175437990135866974720822869667259815788810243203862298087007410241145512166142610837175107982437686848064661163933748989900453152168362994765082691071531834951808000615257060782364187129829421778953680321304120471683472522233696368297337480084588941328307825635551466911063132502680991782863272416158677056713745340401012839204765074727341555760708446458829450389577527307188381427083762022313021135530636928263548817289188037065758059271696807096491972311034016035589282683785642964461263901279922284296280209545909702589611011920004145371754138366072482043128375805020645245799050127829282123584862359147276127579166917619679890677082178325087247465308783600533246501967229821124676231293743777819228156817485587427726805184416543096953478801268812207841868080372624483657409682027203084570776038262879462796717645293806158797908648559712836481917559524104076271173149318680589606857345197670352806810476587482478903307572154928761409800198564327105180897978981440088427867801315659345889598637527639881087333973439481704381586483584677936673534351588991182458740401376551361328917395648731991197409313567233543372495697173316442258660044555009880091686949695234440814896927206604882232528141382261582836429240541882917712653050997709960787996208503419660448314627671233693498797148198113078575682153797008028256712465247961854815603751151838773392158854843791969462368591801549729716298730473504097600714063411175864521420104560570427665374307259026082046895049840533724824421719657595483726242673913651452401632199109736606158817279229556110925932300268732949203010955665422697097637931893082623755419910381931988075536960573706483458158990336875102180821623031333165326353745363163417496030739607453110345025304855653594381101425659854986850085373156697637555888289038961254521072152138142227367177180349260414900385826113545331558616708401132848587187024136880148444692505301330754904280617846867406188566483425407101158208777702542869299463335308472864821260159185590287784266464154541455670202872845145438241365198406326781954577058214256143897336454725338875735727007051873576339087252696402881788154889717837296946400060831219286044270353996164341120903820118067523264915097412183452630659616641197181100392630895912238022982674764621796761942087659551220000388731349410650368014840798745658132182473403431376916574829620729570328820310580834458334542798211277491534363952627232519764104450940974361430032532806251131698811103633623427527453067511133421194818144155234958600569625482152053645904705196464215767552509512969756649887955453370657113997114643566750090212185466003837995568255396683908061063892406063659317906819541677374701295740195089392459990034583685814763305562429505388884256248725163092200036791190325399155739478425027246849944617867463515858091951613277976956832196713780534661600440212978246766378721457476963931216741521988261386566552042325987940743274970783100780690930114266189664466775440227065907865764965027479500244397971240513247043880032380681612349342684768934538605248792740229885260946780100861924194897631646080671815898311081648477032711171163555516592180744090947497154288318255559058213603960562450281748168621320371426327660555029303916934834004638414146207035141628673286524603655387702471170227934465866906962411637642044865697838769470924601957749468926631467398662524331126903389555775629170079630333797668277745241550034335562080313918965763507328357705850826475922929338058218061097839104775479500936439439904548809862347450974569889823029652112121148948414180931911222791638738706173702557534485391885599368949306131962020995455761724099234520381951859041552221748639308837535227760316895717791893116392687456264870450148918974043851285079129033437656879253577118175510658382755069317763646931785016464558573239218059765788202572032418418003525024894018730633616890588359936543408918088928247194213374991157726803575361369226556888177066596040218539644973294887960328940974064773592417328673689077242617866598343477842934443734493721941953606029879105212089101903259855119131227414948251292016740344279810310306144901200781914136164391744825832318727594289255708050024024120178654311066670466813358659793376016224430000651196638028221461204497980609303639110187481191745953859238319476465192792515203493549131788215849523196680058159247484084559260297715547543935601202866417416489434861573408927172482609894934509409382565613183488894929924835528779769185959973679874890057728947832660759108610405628913269018784058848901736287380573869577353239902519176229821065543412004279984913195790052754736923783477394697485687104650160126211108463367305740915071883400731399879945919100521786861277435005870752347699573778788872893961526020345431277581404333961553010989688987988829771851959240207039162309084978643014681823227909909922750471374083136365201732786783688482915517225894378824162497682926794404099245633227476612762198524392935750707470076594176448548105246038268905949069546642024718835307347464611884304836965784001007801104937381971264459092293222712181239939374226221632337284062079753316638101727245825145278319317120601008594483958956998079811548119008104279162854325653528875015019099738257765759160555543887564539220411854154706927953870540393390434848634282830218662128687948664898095317608566940768670939753122002334511268562056108205165561599682369538272303734144937120136310856322732226996794698235938849654220832636417754270408702703345364325111392099161114104857935602982003196277677898496229998065079354153218953690392984086194109347583115653221711676403606020777984683124000681287047656956703997156863347602040593489566102567661913433411093329998192710337553027435075188301703728731369538555196366617765877309849711789252974926595859114334984795132044096408880262257451360292651637223211490047328268674622597270583050837030762190498755388601127270754026707557797978261769243873732683309955803418228879693519950062868090510899606359923861828559535136829625294152579527831393842065387692570990278813614091690324588071666042194059459735286636350823490089874325462957030939822368722238463708902534296651502344129286505463702079007188404132511292053369532161878278888942605230148698147590320901372286804572428434137226921844069046384187000912829232548419777021321987995342559580255094631796347511446608073413129978286533549823589149415065304131828952509904074912466036515669638873252255456406541528213475979577935126354777276068177015782483376030901028537173680007406522605847391467365275852486705015408855209961083709259544411079735503436660713529688138005282065540292857200589193256478794874224347404183702679342476874018846377342749626750416765444552725227139748363828720393952127123291652159031446020941630356061573935649590530500266689256817412132673166770044440587514110956333678093294821070597496020176491960227117835258110421256951053389559482827336271268637114050594232371676929144330821065447851005203178702376772354429982594104765088842604085300422353450966252097742699241485072139052688300359987498922546602323377191954469854906158628825665288305620578819401192377602730243808348506722298952112507509541029672773927241784830613066337654236129094563353314422119187394967141018225780480994696341170547040837172256018384329100822984206410972381713704334213387993312010598135304981539046464667516519684984298274737614189072693666039012350545824767150409396931075406578991647126810133339415199043445337868205459449584677398816291854677000419034725146302609137901490909057756014226831253439267158227396265405729315655054392302948521443735505276813271886282940714920920484948939124540813035365057913911499872264732132286310867021648918331116479315389762113407562262671079793612425358577885794135767856978966660846756842628380676414622700493840686890910289911565318676595841888917617279537700164331060483014516274739594417207019491676845636350085785764393070493308614213052946420211550306101798709323895172160918523300218486064925868865725861040492450308818077207829782773438131325388480625023178563489444343633781121319519329989772668457209608493996737208355099189069198941382220736305251520240498286514126298569050409345253473658658167175797502400893146317533613856095784630534706671347591743229691686474058656846343333139087872279821325227765011837314422871684092161050039752445148077342544605170440617069215980600927945529135182864622792244860827501866920615223782167688394414534577576386205779076556234908666270966983856865201309112696993211131058769678927322034509457303784148681333721430194951883020826673718503427724278533773226455262648941297520139749333049117984164141013294934955356037966957028767799481815222546171345353996367067656032084367226036279807400281117253899321960817061222095346363384352408206885172948062581766484270095223050787228119025911453479062004216332469569130725610248969866484473103599419067156995265566830206762194496669925543682668475679794608821798211844584026913350006593349437205005124335163656831553051701571194831801084368265279855325881991637280145705474593616428740643553778323164940547766968499767467706193797132310868880043547708945788447903329400839652142994632957035275470587224895362907123803922589040393491802662765548602327445797558060176152486631967025509260645864170988912185661431996293140617872659970476648194446897450352713848644848567835775707154728725676803143424123152506617450650679745362553417117866069191961835799212392337012864424198367478981554110192045842441607916944539097795311995289987600112749263501803968924239388307384732168896160853061549017418042977493321217483954756190326660794622228808373283462840088229754309834933611441503461050955582585739085187722017598937412884785504784322327563995772512090858566122436365455871426529806232988241851628599188156709889528398939559759466868835802601837824848049494930452461602157698113827675787238972806208972323198384283073417087041216755153542464557905582015698732570263635593276342336614594563283370138750605150589369733018688433267689385946922457146211413114670131898477208279244076536995436648504449462145201722472646853209400973882948507299978803437138962076163868957904774350328548400084193699497755290511088081025291336786471558737782032858970413735329659702656738843031630966560092375331806303860974616794025279310321930823788368116516032526939475211337651998918512933590732010061679083326688187369292811146545527735410775568547112595800802990025330948092472050823994378511840576623074409935451905293859888557773393248907799149731062649391661169390914484743405252352854431018047235428210349354046553412891837565632262555485203211194479747145884268883955543942537453724518239137954113873414545501195021701889879085623542839945103843392513865487314300622553979121210001885917706968155140403509795983289590793910839698214722071156766406135263300000797231820885558583727348341430129934581993911991808089683340254072186220795076039207450320689982321436976596324078167536849435089597453394542457269513999118637749331836266121360538093345687217960197757162644703387453868034013492099613661157919914883330091262392339231813537956411082200044764443697743920820150632448835478419226295209694667160197774889698335695733688234365397960765840492745970256700247689779700932077832661239419878377026743935450390568822489367233970131719446749320858089272227239986508605071417634531677133227905037008942945543408092713948825931507695329890251751269416458991622806413636981275872460948597362271136385790925337084469749475356196639089522928152096471285174612424939070556797778855504631665171135748663981272617521076191087759870033961050684935104375357171845937084874511824101501679002683711437083974488607295295073974355613890095384363835304692821005564503267938753196492836096189185556734275966042874652110921538128916960815840867139843848199741717807185486638186827331192599376584960301190713876198329461884437426055391322950721577026510986770435092010230250205550551967223052091221356226932185030971207968829044394472081815797182401541728090521680551671412086738765525862437356005115557888233321830978789875844208750610716858652564517513899617561601084842191578612122154944391505751775490023947471938384981020068443600242197820292926532784671372315123947981676402570628842555827035840129800189177375312041425786181207660800139198230541284242306732253580028236605110997479292221703665268597266847790889841556868994202167584367066451888448618629859922983682108005000268295282077656787951577721776731326971803857853069489260448390215038867490752582143082246757765237990602152293688281240565017416430405090268958413971295434576697512942169002364542940439907579206702256891030885217899743899143235068042319141777484129945131181103986839144727623606910958322110898318645924167978312585973258330897626714344967390648380994549265320575509736243926060674906110252374997941542871097346602700257146031752270293772815853466128223968961712148549795130643391650555456397877105075440994374190288529936985411609975215923786653151568908946078620512656580563556367902865658753471838825516777918985775425573148829483627415588533555987530781195314557868453775710362416462999973249752905351403756259540347189080592606322926519168736003493423561593968318381402004507105329017851945775991792475661874033937723169734671373401046984005354021309454191907756661991146775419913044587855758449318459259538032567259040331051214630154437809475869014248445819523181044919092506010144125132852878483730616476131885611303012277639826463839397348283677254799503401152409831157676381206488897633945398470644053215356279514387201877312199103099443334144807969626913440890239846688323869399175250513768888495988605340606064343912014779403597294916075895171030650136303139683803671541986922371309046810412853178996516021297931953828997171305113902525678056102264328251956739343208036726462855891223700016695516590625001650012776064534894619105183602945631315052716052856209042222188652447931769410827241587696177444922980542456216447358808199043603053137333626948821133712459185239476411250989812323511966568147599433205700647148735125012445971944044071250025895262302979887413844594110858443765908781293193788756441425227674853651894280129655091818964220992919403240154462404933935542087469506248346432396380014527476588727971095064795763312605005276488556333644031848612654067973529511449928589604839352923462882339457186994733661312779749183645952961458374399975400064757360351221656806428045979777937325848639683824659466182520926368244383837140855343199247721429700779699435979475660409641732785768507732412617927281840464854869618049758603980607298652328772156842120924881122510122348599165327223242309695253416385618058457176230917854702722083720676369948627512283852913804741776019602293578687127096720031391423659739460313576976083524537022601275793258425175371538184373545128807347767321978225068193876115610495198516400502719242985268637878983135109607042537102056396792758862771488603041625162967112173042245254966780358970589633834421353000589536174427136660239299036728795845245270265651330542899828617828740296791318883455784660565508003639678887648805358651721164783122162043677832293162326463329691340610668603205576105997183239096219875601015253870301501524466304952160285730769810067891390765578741704277953104556450831772720560630686891511859759675418861506492602053550873417180834744476471369632241514534692876616879588944214448604313999253192943713562221092767137249653822561408175323583247134529917098730042957173926806392148518860496765976165346928191828951986145509256063091517155506960755316487645947140248412314141315227599519949670545485721871474312249655976071200168710284826744161572272611575765838171783927040994144817819830197549492901801427790382435775493508950946961137424188096152717826347684615283283031480889511433649852066386203279049515495737768618875658978552270976433946484117251556392029989707914542016165321545163148773395692476637959023328010230660962402652680597340801790710605391317547986507479593692798216042009398858602360197292192925260137582983904383062637760264875633379796677154564263154411231551510095501463769417232714427144951853578164498516532508519157728458098826878966894890078727252184132736547397228296238558608158043959522954648322256501234139168437273996315048380861388542217018432015877840764277681902474034047502937817134705672556028354030578676130744759230167807316022328206528930596592601404807519738771986839725870576584945997408333988061249309849226477916867726648412165406419473864591964388993327147696116812634871587780963077994160031654746492193423961873679161129435312714303815382887071360692661064099739632895536834877047611196432474386063949139046547645588386563847362579597151197156078690439981068228422737867932660544676755747197272063271412294757642895440808679160267661733017742952952508579285421493772130648481398739003981858461919128834181539607578901552872029132161604136453659194223713308400709864261110335375064542248134122749888355221851083724865092441212312097504999924906598538089461609662142848880527371524728909323772608310952847133957443364938519245459178750051392992999016004136293845502162360183335807481936164587484146762311231842887655828753674134219512535092944278435002091314078534531627761274127299223492929156141223202802462008235573618304407674353552578504374768349259194175691098711193249716002293792188581572863414922144757907887378478358710186933763712732261056858959580666380305472352399399975421427326399842181124389970277747141763489108859331139673170018982027915526489158443418361935743549026593968305027098497506873671653312307252720204682602765392255206990254778340084615044562120173303923124058526615410372271091109075472922255038152276179589513660669102862249468556072326333765016245299955537783960342051687288543479781643903754645678302889626312909633222152081541375814245499790177633724923673469649817292561164233864141940436518584609219315526367570714236533970657150700406636714616715560934468810453157069408337947884059557915141101476115674156863245448194568196517432185128147622020782740893867165782230664005387932675232338199181619143002700481997917388465370320906165416618240019459140489900136938370687912575152515150525179880880066146039714087966951994365717039640167424872624694910461810040557506047431569068382507927033707212017224576751359297878846872797657610427856259816755062609181021502718267630839158199728034395617441904599120473174735106572606822901674315667874416335968299909497859369157286250906575025884678192853604895284554979485500794239244730171741678264211733713417648132653641763805896286323356689600359091460768456685015172007748701724063877080769254386360418961501608289528294757185489941773536206049387226248017531527107867608681297369840034637442701950003741807374014324668110469770075588921720944019849309547327653342859567048350897562568554881994108421985716698774500848011830485220819183582019446402328707616623920526236388514830841379491915398099823996976561332478154417878019641458589883885391360446955714932563696561452905996258082987180804795080761193468625605471131312415532295745787019087225911477489893002272358964116412998149383659956085092059173633795848811506597741018890810016697707100648596493047607215556853767502576463617693445347377888934224874361296708400019027441194583078939513827978082221588631988437012012034525078292609733668442488003159514859325024109589881493938276240098606093560920403860383644017491640589027649497329992464310693462669862973693507436047454192871074822993457936684984040827838079010308137851266241320154815126548666531114668516389235125964670044322018885924467855338388057686857730082220507600068566023891674212359775981401248873885067853228113566565205060944492390640068056491779468386804963129728950439292303138207720851522659599463170914165664975460360970513824567950169057544749800360746638739081856664475660466643220325511887969340687682894011415756571525641552704935853619789910812792073551083592346650875863130299275454266009999647049096487952912639747441191461628394543247326061029507949562506536423597783120778537572955095661130237626126530787153519289294389256451975170552016171408729456100792741727196834792655585228174587847208949129244454041737640946001251922444282798171924862329211307960579758289973553631309436738689933823800486084661853607888353020094364663042450068820268254141258673395117857965050876445955704523736883140564688044536649694425040555013444580964290104592514765146983212015922153690331912060852666352453825805492686637047579606336267605983312201855245073965813388326785613707218937161847096342993395705700801488808771343463315845453908168877866338803265994403887890912744254648652431000174214228274143604780307743338801830063123921044272313415363506311784066575260644539051314125448102956794700754040418640387466869950487319769606865332131318493458086466656046092811955717238024652047451115854052740419311458245323384736220793135468551975194800355922086540493408209795759596523061632537467864369715054063441048405865810584935795470822087226236986092587968622108886152937931918633861332229517526741734510120867890601221702336352954710365943963543280284030266555100760309360189687348605460704114116235263541345196940220913607817592917480163089660246348548764964793458004489297572759802566680298895621678081760097545363037074346409726013077567108945093790428982490265112788016502132356336946814449112597892635422768241446060551634314464914197426722450195975246691416531785078621075734696561914520873246149249044862065825741936076981012494316161362197854211625222542102501311397912152151119238387937525889094999931913117866175747575036149513966991861844210518484702564777556876215206469990325606394024702552357226048098299183806836508595477778365472763198875556302428793585534953012114635098223198272873003821937919359133161371605211837600964234330120022866537098641126068338070958637359044239300014318243153396280149338904442815750601788986707914088267455315885225398155840906089305255322076478111453170235035377301420536995505281388232271461599664112620197800777710072495971071801071177226415436379384711513548362358331427731362290533944779343197188399028415248011501920727223537465220746364792328545798794946632272823901749124619825302461667551380234530490989351922161368623824229570882759659095657851807343603638308088059820469211914908121553974030797150453463250831774832413850630881637497886706619756956334778657127956631487395314196253783994331114589279081319903403701547750068710070174345417535735944626932075517468981062102216093830646981716777078743573133322824885452733345351266526726423891498320373359551790357259110150682426643979700499772447103214698944229992926243466757039827669857568943071157881238123743760018350836864294679802199796738997585510125841651210026678378693155835700814456184529102423440227420561337904273811315274078553003313802874959040730792473706355982308847058969162299947731627391685091334314334565918425929271852651677398609551659096148614349523571990041196333999403742880825179825516513739862585585299232580424513507591362953077975787676047885007801593006434035203186863793965260047689557067303962851994584444085302515703786264819357784928858924744498785052710746680718479766825397234952938575627462408663675402375841813597399281552616285177169986910975082287089794741128858927486178202410960160177204150959181521234629511129434849912613132957445525561655827904791789550821515417099065856840315941135785832134281512311992380555560057597546739919802312668696628286097916611858319657488440329188330967092981804493347755428284171426101909936065978039830218560605373020726571079097140396926653342502187228945670279422315027295393071437765614218114495519971897379545994427089537286997215792150480370368570883955149038108540092790081845754813304966347859928766543216046943800906824354084094918209360788603899108475773669505669809135502137179832444836578892401197961074568983128424995115546749305539220914477628140352343171317252562103653796724819206105259413437764733768860637245965982945283220466188132621671610453434795936076305811087008645721007627736044129924963907026545500854972466816861457981739869064834073801117237245605672525343787880642925665385952622240104698474540740517808772321440768923731204249881215505411223877507230962803453240724830383700652029752201005433998373185803878486128560708519182280495677014993880002603347432041580838487420075266160984646158113570280412128586170920781868603594000408827434231048003903618781628282550878520941852305508091916374110156252640588971924500029263820432745035901100036909542286177686683363263757267423684631207049093398296990381391517069928016583403446851959974520067774160760530237043497988581189908767853104565182448646343459469254004441965613220590080572342222324647640387206738033721557078844077315566086170955835237508991904223664806557908603972029106476341721613951474895762443489397183695534169556396476316890857439825537789800909029149578485430594719018344173062586372332648082582392409089223084983250056561995626343535636172379339836854059267572034964954752770521953115082590922086368187527467722524934883292263498061560174265508832494121815216882612919832099988704020394139727079633695968892238700729155108791332541157814569427716350552485424674222414848478067772799556515120117315447768183013956174770569153157680960225081159177343675883939710363758299156388559117678427770188182762284707258527532525769275034048167598883657464071041031442164107744813416604616862211809712260519092328297527499541699637445455478333288660177557657589052771595507231349663465736428126144580065594646902891329123204952933512300096059837988025805847029196073635454911876315298069592409070659537293207460357933177351776670500426574190369652651137672969295497679070017809176545904617861906269507067099491375777241434917612517090978391899988147974569340063252122817784524992654082933866573822306090947660869113302569136403266489287914839691086849584141706323162195805960461734133593642817244512826877303105529973484784184306467676808617013309968701606584388568297012571727473395716395776498332893372715746559188505330067440991876737318596570513689398186409723242654083779401134731768309816898493398230228739429142172114222225120113664526062665464101335582221792255495280859358967663272761627313562150085501786931791219181050242945213859798950262403077419518283626155437694456476971322875446180455268230357834896028659967077467063526536804161286378034402620628114632004496068903080706194644309372859368279432176861574996611486675544845539992881852112737178407281155907507166662173070646026813787811977155949727876849587888797815870892684821027832451223799416165838873836598982261083034328794045100258754907309997000884274687548924355629910016716833332103915621553189976573869109308480852513939465141289807730806986882727943696052473172323423535306032732615131713634867724684334299660669534994483829056733283409261121100220636592266254806481208446865907395805919896789528601260204014051223296749651442543595802847965672672581843450528434681948708115583315005111462750659199310636073762196719872270290720917802204215140603824562728960112083477598897041803864844648817752035802435688750495201732570726155197200634969715370301773563358872520751750067461784628677154017038400034870807298579995584086746232076628054561383404027403642458485386945869534120498136535609652788226285926982503090008834349784784187186868820606700663341456942483805899110591781625964047567208622638419491919917330394709999307182726808502377293054011589996610377668170675280949136310909871235893030618650164515434869556067351241961405220974660353276324805171233694142106637153549796615756971699836511553130949388318359960192441085267959844124497635909749118879793077630046251482550263006909632566032045380149361168407664385096439247091137728103477808548456097085296348302441889354969036491160773983678191760386157557336354741043985582473924017226541700540387134635667973576113358183588291651760979507854954848239656126093121068110357101367114199767407416538721370166258029831171017888454598375523732218747847523316261220818870905524329388202482364284948213734659312224921615769692807064108235012836410809879056989292779252994024871627611303548308576641307599444474281949333122793772639691747527750868273103454043826333987919855789782771695339899232786538074707583622593942733494786001888662331568039886592793489245220083579643461623532629799815915464825957368169230340587842808969270042781663943412948313094016150033026374309038208211130278874335141160218237255723729379845590833929188361970856022867460612935839478435795116766355217103393843634443071240190119308327015328799724035748907185277819442485161214523409122051364554697352813303592016720163208929848867363183166958576737109814953737918478798976528993003710443275812473300998652128838530770448314962925089197224314553178780421838611835684682123944907839772329380573713161976656826266893909726202044416425254525266957094375335615870025099914003131468184651175783964209204773649547211684935293817703949968991519739378557180825440978033464332291158173367878037191864785127080791151988618930241922060147107207998218849957947833735192705660568570412317966273888377033080916945219759435788813981488959000074259596841373958840326747752333169676035490258234297869113737228113776402128367881657696384856767985713275321922077236554634507041007102999557781661066338597479412125830439728312466946035224047928061989841504726150880313366807232751242164056468790835910350450812046164305942416904100256370618814064116351437690482280124047920998445585994296518714283798599217727497327138792289080049844398501330368768167108606124055168642266413599379766513221782798991655648224175435317710401616502261695380332197636311608561058773735866456191187538137656868499168848963564015007819292296304984914384554759460947603963375636878172206297307061353964396640763592511464750682358776435500670185315667722033096408624955277573168636608486305811704614680077929034090770625930483508918648647415748422833929840994542513251501871955332293678450729660318805548616488463107071325379618811332374302988497046483852273905695647964945648237843083566786042472000070941947296479020821816560834604534816687480650723435499796998172250533598798535909610885303817744600882714489097218377196983797691642129597969560402741144766870902324452432546263009924935801236585349419780373015225512058879149184263006391194476440867935223186809925762699021895255178076650035051966175415541266263938431918503089771247940283917224766954907645228959664067920324394468165975803730721875008860076408685445714380563113186644654351045659364676554789230907462284646115150292428656913048516085729089301098407811726744997302937238054775228307942830357818482487904428159439070110793867236696945729426360884730450957344706162567292124532835390037592110343462432781708105449656722131110715241526176986122222097885834765766751417745979637427023481603820164424216861093545148527734164132554506143017693312939276332665078958801979093475709545253606873501511100722671625783091651553363719624082017146267453454236527366866252954875831774531806941751720674312742986353210197568656002028049662842662262303141065652886197081773045808630108111250156852646283869894743917669819868727594149241023979225526583817925393432543420543832041568224911429020363894053046716747130422651479096585646074195898913682271856591184359716234756391144870119269347831415672404449901360445234911795230151246859047436020824773616265561328745201835085869022408074517231798838541629299424711706309260908580856694669022238773536851639615898551276737875712653244044084414156451619503423455315654018304691680957126635447423842171304217124870880553993809016095550280964158483482287299760201233562829770861505403205600072113270228977549971436472450845502779020401761232515735494612227197400941457660552454506156737157669634358384295027274611728210753314717920000250998287911145804481035518009228167455201509386473501674473631990970042015238701852222538129239681419422929004352630194656300909030405384808824714646709656534751494363652126026863765693169470666829029225861328457989540176300440898561537504705043257578835341230797064986278833700606413124595618137785494760074618268871122345169772454307456401502466918158829824142116779118817801341313664606677399736610808698945468749022893449660874690762041594695019032325690745620052795724464325078879994716873964767015000497999024949970591010620788140663249159411018814460577298103514094132405572786817260950127387072996033573767223292491767011565983725397300690582410121129967816328844143257056581302664718487771227425342649946831716215173146854392064938036906973957228329377509205732734297044553284704367791297968102166015709952019684928972857363617065640346481897623390526830443670508747863474667978706555052382181257948675794904345492936734350222560785122504850223954694758649527188472556739868084047841487585392616276266463339033437031924293770828869777208770746381756805088019611053518058399264327417037880855588757943308592604885729485574897217052101774152833760615499402092289249949862453806103055298999894674624147138587359946294014930418701829930612447947495241819537593461470732694936510029050061592813028066803273274463553036400931797733245265687989208494660425931302894191593382367549175406795941129226423660055471139594987566060585696232693045507144037674321640935582757196846938504440971589052450566981696068997110890600986300188010206753156730156552215610574933767645451906950109967156189086724078658867190431183116448333466189085747087259282120186556156161174758745922781838328511103558164973076001342204589959565038342165239698889278951121091237453683102237832019593045277301746087437090563688909771300481527483679859349141474645591974813388254259878661300495607349204110727424331427714352909531855705620183129495817354491267057152083260318142196535552301522356730369327287044757214670665601845511935137553061202520951126684353191202979456795899125717158833842066575858207118580130214235186860536222805097301910779622440521639640668624634344942393741064793695103794728725445235493803172022515740095841261568634993107522947112795436269373393142737649765626307005939165824329714718738901949783339590400136022785262647428122849566780427043732679918684745829775306053961255256649290417548382541138005959600886792502564961050406619302904543068856231597148934817170852361037284973124680814163771262596204457504542359429307586432582528269138801772353435384856892341030009595449967412687474307662462681335760271487470363644723134046728274553890335230583417586514752283800388511835407340859346789598139220020528239043857740736371240899071593228540456099937355710245265497390983694541066776078530673146864118034850321526570183844555152336417654179514997224544516783332369821461565591631264196913560335805106458564860411868938637082910897399174764408948186476915978543619960602855556625393898216039853201683354067316439109144099201959290678324485887287874558305039417306636254528739170216882011621698839984601032756421598625506030122757236780947251333616323742016770120481391551718878798104987865692860013067565072058502461136402052472153492228333261888039915174141447876877305380942051101621440036726765547390267574896571738105908732162351160468217160750750004970428042404417246614349771418677795606992093841638490864944483874435904970726063261253370622460718607029131468292022713269732134972206175140817788377776255006682711061344335528045881358888027785135238010868651741919020915341318594591253946005175691347259454431532521292521612922272756564718949010393538328756804963311553370848273772570196810580064273505498875048726873536961002830579466921197514221605997024406234102365848794241499436257934771755485103735156249071474280767558181784891194196413355215824785023759626536919975322953789844806578581390332890702586951528009218630371610960351590024066006417669158841923224052589855636303880021852623828310795995253199422426296633440725776736793162747118006996464890664619301755498977389497561190650772439045303785079382368532097460948255956413213908060697775717853926291206527468697018809313036114871709764132850462042610580011400089300834999642772664289689712880077614233116701264989077005575654410424533266724540043830056473127650247295431657173438348793673300191278692772174304294339385760942541862554495080995806670006041030698275279196563335100121807873120360004902749074546844981831317087039780686256647130850718723090612953351471005651919837991026639098818383688162107528638708807217561956410195872047014490601360052222574552944382485080484027613891272408248545277238583216152002201802144092024286412075571140515482888155484067482117557122786660650317159063457585789181385819151098398790760682306542998102258655582628699154227506626960895894659346256034353422478172561304134052539568178661630126146206647790851460131521047643787231163460218917815228275094117257330885161226792903636065474948752672685731421654272094988663134960572904082152727006977110858260205326778621155685741744838449774291065827454049256097082625762160037815237003779656203762212202320826371541285256126152851550911611363272195400638225522546425198940671235149887685710099350967526104462895341010048173010125195237469527751323323588604917836036544320271179857583542891056213271931151136716711635788347382086514116763311326216390507525944145118620703960826828493955138072553306676441720291840467296863990050224123540058469764976054237453461223120344013716713866746308427182055303345918503222771027896449503818967385394821181553611683636536269715441977849245210628119624820520373576300509042178604644177599852655225701292702982054070976975848345249095077692619503755464574824106445362377507981744227888993428132204063532105656065181030540875779388326458427366921745899730827413650520765475665244617436596172638399886484667696202161468355132534629153757566270957587242147557616663990360523843400485097928389338934837479481651993648444447647499213666030164632339772039189196807121503646813643055410126551847045948768494095755514268132786276569222528228611457980932624080746899211062871170687354733657357749989547076943426699132266681631618980157090743753556101302119608315787062876768226862308204759882192902190222264762377692885001583639972946323400430395505223855058210384963068072524319601460570195833910124881880950155825638467657364263506049053360245767924013744922970550914970920799982264482048539141285790459635549706706524211796784128909280951017075437034450355172306448273453241638999979066363330826946634642643351978559913295330226109176337860480457753859830440752669346008095137763150511517578072305106860589321283427703754101386499971565688948480749300248776575034354526864493644685598181182869694592084076451901574117515862872920454679502194250602867541708928339299952282420142498350931138945066110611792151935336160247389404215535052287407656357801472532624541705301178346159242162463268916026943836578947913090196029312444506040203495539736263631377140458535880141292670741553720729415964137273400281214849043762224847453052408805647266083592272577972161284513673835628064612136915056208305662707511008381897722332371459489354981104269073551154634984034762955342101740957410022061173258386482973520584348624122996191128146793981439430508512563234102831412393678628342224879494305355063686275988884790375609356429426067629420604319995410935134718054931990379081220771905340794044789557215575015561961660152328546163998912771185862474817982326379216039080743732293128389736635633988658417731993033613490993857923801822831141235128696973869600363079151485013571040066243684113577108788867744926488400027389661822280439607323831589132037903581509938839591701347809426260001323678353278450215341661054513224124849096559367253043317710351883503777759657093817562541884052308310971145374050076517796371422282442388173550004193316529754662522051724637242525109457777391232749292740725046056146998888298445192614203173156457614972900866537792382864973797872854835900574221381497501772151068509524486100533629416337110079104970842894609983948992972482438829700416897120599499989217342780886521053459969003156824489428380989612367272171943440634655310294304545102083057771203811622664829815334699595405897414270136615248190775298474537656027928898131279885977886844493850599137475566012422292230652428817043174031252633204581235906426446113340115937822427913053594026174979911959453646014065031603626083357778508344854605424192996777614271863547667189328899169824846761540327698624205399471995799634699451443106782207312788682327958774543805900253535859627362286143464201329512434865619539910248613165789250852948740141048110055522974114494923585092294932861561754452715669645188055442708953796557626320005160394032356567389158518515785973936606337274920083755471762576531260859756634489110955531906751175051662469427944364589321892003492866850261375440334395261292180555317801519834719468322221202560652315219770724424773805129552564074157511952020572710326859440296623677347465840226924065350955587570600695234338535524754616751638539684763584781271022366141837666859389612793594057055621075508455118225130635938116907823079740117177359505970600247706535313535141366168589307026447833608692987957986957484059885105799966182711659400477122610999565552738300298111514903964945823502872419014122666687090977732025977487626626938418888780003742586871257408931093112406143667979022918369034943234936136685092656729430830477455311868189549043754034031564816873352674663286001558175589931365409409944699672752608327008434469525816711693022535343776186081355850981884006983626667204678248520654607038090271312387993607366474398816826546800992343092307490644412113558568321735664578393525017136863581806653281753168356437966685265282303515232294194399999410530848411626923402622152911243818842246127987781461964692376613929392982492407339521578456214740134570216200861384362177662109690154024980091068639900112171869146238604597195275882466941541414213152306677182921592977066683309967553672850615732988920168896393954498559550516438373416899022062307114520312840997855809101861414921588817990371095859174702050826226154077160422170740118886482251739254150320733066582042728953162623258145211182639143341797261367133528203214369569180626216818412454970700157556895753936167387865649569858870249207834343274505890755251212016223410734637873976045059249278002969446582876744451527847012261736305921562249037019277895018583153727064269015760278013917475340172365354058135883356333133263033339302305802919168256059706873209088610973494136173660377120597281431190823240563582451839597403404307231896655505052547488003881517913726381908450902955326759567199685657030731843758109279505224445167099772336212963002749364722850061419898515750381172685794535666114996054495810642321335365196384705898496889291844067242726818557944345632559796950801530915196310648046146060712279774632138832924685757679992011310196309399319391820050374645922285213355990290579579519758475915723513430892528242310161269179479011932851926193576779821547121734315987110694109841231169597000371524986589748673116004883248360943841593372934852884781364746521561378713747199776833973637009960657353728318297292082597920691282579503910239946550456501849724118607336748579535316806624708551768721457575837055782563909871364997999567810066185303038507707584669382414853447122715708721970919292392084742320433267051912563044854654412167221175661799962132404134442620384270127151199279747798837774684773389480718912401243805170569806367764838119929985758290063285668456860336874748236819307436659804138696965500455745893214426078979927151906663419191953635280468463871204144205989474783095248718706391743741506132425908718976765639377714328336215045696161276631530899481993331443072923006690815176678925627351060641036374054780398046777003395229852017652335201678622333374875960915230370929979247638028098342476476657108478995712911633830087961146652362971438265144992953606776283626912772805569116650901677860237677069497487709033100682691043760077608295233170388626060581551614671999443826754558263931776910874880203122054724535689592580826983741305891478935794760547375638156011904591412501702154754139311705722089876985644451159251198999235556979375464126289901022494485178579937667800688409113985624216543601365456714732824971403940591067573789219078615789267710323421174057380550751346705138930831482562321879303053078704010847069920346514186637291505369723034869120539287916066826464923346792743891945189010941741517284050129983249452036557594271784945084709339499179419142994140469613797650931111701811480250077728015661242455318074794159908790311961001264408976520586709349219288377963955752903430590149775877773071905324297447340371315393067547577295606900032702722013956560351317696610719734281724655320731024015528576277024562781397125533780168899604810924529915266543393333979345583266087559010710496976657838153296131442213263139626429551390687101092593862392043407273772812243863016860402588933609239571006997418092243967869041807990507573950054447894467652934401559303563714352120674705901216281215439710415052451983062641672450390726006665889644695355857196577754920722058717271824752492386843867927959753037624537352563713442960191424084213173863957565751274980895084923419356631214185648333619471402011754471073249648092222039264037741982114653617848877251524132348354296322897011521958637071240884871263844924819001674123219339168295922261407394246181112197468645485844170975388073149382956730800981353097381681361571899952114359822738132505450960546720397417374617140003999346071267644181997878450719619120850194592354753751041407182861559247672253502032528152106369448586553707461941564512072291260963077820410999348770630220468298280814682919722701102586215746426090451906932593088520217685841750128373502558304010071406627925506938101673841333669886557700122477140946885083506725295807489591124181401862873377559069813449600043262972288925073385231520042409761101582420305681465904165504214286058990407416008263222306727251489435440661466413338153221864837583355883179693333340023468922340483579663735490188430571122782669509970779949295884863801523869064041514177214087096561707379952809135944287233509606793072505932880785642527722141657376370335014558630840742123958399638137683467112435671682910825562186164383945026956218979993764507616453539585020407814205214992093177107117771056550205712906091854437634354856607889368281612962317024968636092077018425920283233214028159383447266373822105148767549605101404752721154899398672238165890202719077520285185703354195191941467123269100897620905815336696360515539686029529625712329991232113153554794058959762795503971849135275688135422822760812460726157784478135682587434820903967130735181687505184292262321592377923660536066758655046795435279311527683235833961473628594176677516660803683925138608876633705160802439056455424789550808654166154940648669437186091654086200184944587728819121933161402410450039718275712447638590514639325267299828303158813983732181341076774475450972839606395888947358207546494098866886871748539313359076354944274744765567558529128672680409431819699487103150753188661087115768589684303906438105051896451096604344442677481873120662055649216941086320769385166460027191311453742344799965567516672391871331027707467678405637652458388753645798725153109763950937392905799634855000189706136881346012437958816995961177509051679367824054726653417675083799333741896788191053944568287113501193495423552957286771780343349433532716761603528459588173267837897473509259054017752012283467200386883236935195326160460388785622001126374491416993607857950636022737145740647835893387766811949392885281505120500578598102711293521949567135694311621376248532312005853732500907884587179083316152219610828674868943497445528965346916007421309732756396521738456947412044379473832830048159952615603040027244170196195194502132930111557360173109276346312970338707521721521142531625341304316284699694976851138140307697441248831473072753458446430515620538824029791119463680534040681968518211870573361362763536704330481126748696030181806774394330877242460709594076782063225484766218359422418627754093521317375699829395708614142770351171934859317558746230750744092567337673128564598063663972879511876609547723209518524798164861891732580849419832507054571728226895172532515754161170174837446248870817446390031395590965489251762015189370118166342927408207755233721776963757671797376793401875510491192545635018724219884831021760530406718872679106913364064526173056571457029864422550727101717191230771392653963885912505168005115360015659136081706313057726620957758647913815535246890347435068391384755156412372468429222690558034979288727138128375292978262984233741329439476970873641909141228877324034898022919361315812235197155066115032130383700557327531962104120941339400911077416995517160525661175037380890183018754430432146119547908141224829196213230079812786963592556889304744291362086199150612341484620293043347026249355360282171250365377139106934010387796896599149398812126218126477563321638261534217037618323801434865204221407334012829705130905246765144651082157517902144646742147806263446114466410372869623800794749376977654869115971406301727085775832826552469395853797082166587092942228222745303751285790798180910276558021555988265299143385092500025274855904017212735279573523709406596230938461537026533091615437831280378972626679667463776129246303635524269392299641213039205365122045567600826098649892657471140905297014508725269974980223702920895970912755830631683535117944181594142033883555357907584185555583841894943491242875037766604633275137414941603118223578936851731348105287878752828573200548746000051638881447323924245884253275269062438016443250879193737858338002200189464771908187687806788647058603173243987119650093087154542007824080118792833933319166716538481074944641556018313594518822474285665313051232718727704686458834591305830732452550299113039383837707162349439867503970082873498149416623602859057560797892750638912730008142418333942013954843095463222713671898462971990424572711872339046768138899452954409925434635596852282872761091203427826237478786663636491523123808532340075184557959196783634296017363763382121108302323498591154169487946131185165165816623766777114879608362932805893778610730884891509664737219928465930448456779629744264759030942336386949216871898190340045846335129917144879546513497146391631396819141713540653149051175493044071370422842535299935306183997722081978489429712475027147587305284932719779233742084810161170911224523526762939893714775782619714778714623384380406601134287867732679341313569399291288174578324100690775444648169813043740020202427866623057404906825891797024831476432462938742549985189248513453998985196376486653298665162036141147681551456701750127071828851394671024734640476272570263393454824772354924438140664562987568755361080058018148286188698201905132968776318782696462571484184413212627335176005285882119229367836283948803878714292704916867190880535904054572637500812552402655908697592854661452348806410873971665233424276158041799440827217625391773441108250792482828953295279269518877239633787068174851067923351092321260387981392290921949705466978344567750845147661888123689785532174760307871409046471245864885645991826013406260038541396380937198884768661042135221300849629698945779615491051159011694119761166970450474664924963172440330525611569321061245065885511708971257837416662993486140321902493705063846612499701901994485005908458730593545352114664474704090024045025354975590361807916370892147089094769552679003691585980304193896470914614184721878583830084977007413269739303949498586197866597897644137917029870206984223636623341277652827185540502918160968087955474035800750426822954859749512890425992854848551665680893967142342729846650271121176435115888871851488486116394154133513150439591346904554628310532089676505676936635281067134107784222200678267678643821894489133687014274396977288497231542162165960561263815949665831576728933435550393194643965785033412209711950103871687023495454216983706210638422311825587433573942748962980156491498662263752751984956236535499040743180312663711479675729957680070388511936689897303195958169402644029257507387919923517623759400200964521966441296710623271655930370953364263265743733012747151316166347391931196974909441445910438460019179486685348009316758526744784494138353550816511820204984681451033004431727006685209595953376524762903339578603854411456038317043909640474745350711695511542355689511184557334441405134048610202750199836197304396288479556144717061127556205348429760508114760074001835396279221946831003351295820840556437198225208927111257621729694376533491174900604903381502536477023868987666575822317638365744131639409540614309399711338181808221439861983447107535005544269577685559924962435023105066925445232223532299949976138161252621629163368574404192563066314024997440202722442109649856056373549044858975019009587410286606633440259962808534170653516366283060830617396356191530910295151083833588627313823364551642254190513231304515983569016883579833173683338810106297889684297145440379444401391115706848816856607972186133169333702990133228288610258982996696143196264276854774632628328436344551334214436517872141604778299741140579144645201827233643107321479723492156887955002493507144277311633349940818023304028345094447158084719929335852584255725492357619894280819872732814781516979714151464449433566171949289438261723477460157132836890180663752000674699776110484254973442985406074377824564670790748859276567155734096020472270051529619534973470265047549654672251303350313247323610627740246860653088166848876053379490295824320539185275175078243901272575921757695983385804611536993239404131768538712839756934989672503962065671055967530318606620314908423497499895956127496785612213912036347627116551661162020557450173145514691914743819853542868696109188861528508611980230326924551977174451608094119191476906779636009313128569603727565196860454777159366415820535704867577713396247659337285821508357721917471466749212796451291335226311434419699656184370090925273165938046020214311041951093515765229536642734568962709807939224823096633951614560277335912172547379914533270628088256399470822690493563560831131011264246923046817554661300244515135605703491402753247005919966493827508441241872489271830668344630879736159131078443671509406357974760840800207137826667536076588660809303088185541311730107578852677599349807001487683083662287179743312982646506190963262239199493253884966293642316881895373168887422725159414867800693850745926436590846160230862163649120297591541080407391423116284879838228521636492362769625140676798834216602375637921148030924070820780231739882536290166970434072739610152253908682204879761648823551821083180699174049797704785143313819036109589634954165338729601420250235401110258051929577489444376560351069483811439134122554792066734819905006401038514884933652473118884437198537509489252754096989464804474899445807691345718360530414025104261015690301966390397155981020345078640511248897273471139318125427518396789219724166519340861028790246561554100675150355669661847317077991863052506939340433745568779009075317806428668646666031794958088115767275214149864666460243167928646643420301949871106285290268366056093460642398725796600666942711282706345040729690505076100799658820579336773818956589373907267155850461235069446732321191931911312421338123329696801275292855551060841120462937661677638381461280965137507926952699482915070720590200095628870053797155883708102103103446105454671345973397824780126916517257277981418579246724332291527889945333139440082142398491545694738780994323898841110283175396936993449369211605121330465629702672112553427003762150571871704803524766570676155386559665347824416287650839177791139322763303057746593816619284331230180511954245324933087294791296011115585756365579768766953785364940991510506252092273135933307295116377557264393264701221990130503123693717586290433177003630015449358488589536057595675174859298521606710283968037081617934199976250618263626286905184847134510462580800365515018263048391358805736553452620097623967470492553532338589455902804141378301599527766802012906669557504721138598793888232580125203168628376649036838124495116555218255135883369389172671755937313803756908078016401473972525030105513680980948847658746748550741130877249745751616407691529181345863931629164802234244526517164769916793465660558303807933048373851217023056831872380455346975999098572176734751141784279804221654285719701559101763352537610853813858813022380905599628013969481004960024041084329740709814627813979299056950265266142336816495274746806981937053149116875871223642454663068793500694335972263475401157888890904355232968439181692845431320950562085486165815871306433503340986344835190036182863401897378695330592911832416857302324690147308057832645631496507539258320686625252375218872345573268730321554803191204274980874210259187220075163604241648872935078813104611102257702453740142245086071483560212103749860406704972062319044529706551482074483601270064944867380678499402624691673358000336336317582229264395019691815904921962634483403094539476797151977935211694805247624848107406999201627075492629499592775549713737699192256051424229531598143523748362929014821510031287956036969138528946842485115077306993550464519503966422251702788551954924526067956112835384683315200371722659102253202065330352532284400787728685345444446170706382954491022195092976658644766355947466567684594818002384799700791230389359417705245762588220678531836971460599903030061837790116352134275587614156104304891752062204722997263303349266931155198172422399790669896353715282323109608782554026360838780883954023866390358516745765330869560460619845963804537254618438040626538161958034116790758875447332389720123779010679118581393907299362600432329893227539470480924004287415259740092103850132123618041160804781378825846023356708128306806249078135928707800996991386657508217066637348991996208459716586106705400655068802026299840254605769143378859826084931238907960795476140858957235462454569294010736798968087522449904742848599633135132169506186748616342009283892432855056714229495270101896802021711821232584123853776101751256063089234469164529220935617507689453024320574353418834023969510328656983072775126481445222949260225431009778673109048929421414020377351954209718384289717596936515165576857161072642351950989736583710458170835534253643328150244964054420624500727283279051958914079027951768501916404165194533882766983061614118301659446213446778156795639501536354333157018925961144392016996293917173990265181358033640944791833480461422202363164116173728549204282781869742776895000625426782036372911192766109541306419339556902643620525647983294176840340927480854382482186003393465220455039242262535371909366903089670417545925537916846107061438754985026280351607909623096227513307598945278653846207572417665752541031278813844021795298649664600086196669488338697975221623435500819302116250333319981485711771390870884819426289441566696061935809590505766592088841293682480789719443266533690794387206945609466218935908603649887670688842425195695317668373707579643387470090750634691364978275433064434387083648337493075968526537009086550325126662777542237084594666068137229333121367235670950854167189334602453042210329621810174409804773562255198797365862631153939208191514999916119332833276211384164552659308208213910745959651512180435348516387292702460516115107769381525434979169546974856253078490999055693389486053409153791138295991537711493150630009189328953446019604261476564905589174467618287442866212339860286892671383881997259989102240025516146547559381186358453521541859084882909230568013998271268275579113707586260122556590349374185556190848049393263870399165311009462133081775442181914619612318675910298977131052596401882505623070254404437279443588146476438152776525122408768274500239833388141734678493710836401794870090218422520919689887664817895066666113706487288239310446231725870348185833490470270780400856513913802253182817946540714658504863725821647874175177575154986180162109231921696457844605522323762772097012292384982386545204455339496708739220288173539684397709701422534920721670343197238231441027670821462377743789860377738328482009619363003225299046227992211115140684102418731215922604313930946265704645205447130657832541088850600622101620289489405593406361902541905426803695396237243989409864157382536501135037184742282946800207244828160136842915444989877356712932397711717598730443300184655803144498175177847498483254318763043466246555178634057004498730631345157418914707903121154343771095728380512159430383080192364169003724700978273938730922280138938153298453422335073896662166862627654877956986078874308824399815355362970904363179738354697069996039274921144306010827842340001767570972101406611243553271408193822111925170665858703501945687038934644715461612559865457370820325553758678438809284391247213434363800836143481929784161704709171020136565855132770576391366066984368454384642048026455070460202789762695178631700157578775996303339387650804872531066795604977544488445482975804500446185531368523726303101450680536302005220373715754037762493602718916766179275850540913839016106514882852648146053351321578911492380942536542385459062572475450073338793524399694957538989360306317627440291387997565840656803109926969170466284546193579284095765612282230272375235279150526467309526580266049343853431759155863984534553856113588679589435298258994223381602037883140951879161304240478665240031736697268922548020631820061600819556950715885756014319981473126118693336756261792042434357262514346107311114483411848755453313714628501015024905492524692089714039699462908683241193069682174975522406583080278475060597598960499945526359475144377548385240079272818962529781716593921210567239741106945091202239427107780027493839468881849483733599409583907950461337029351587005279404009685340110238967200455080527310191606972620615824758774451843905878494723658287415898820758409592108989975331678349159864158305311228178801005843589419934581911789199926052524244104252124072284058062679627225007987952521672768903829267483894994956347325662476096016814688284526569911377071776735352236787321482551652441868706596918819016998494504900687083260502719342734755771353041436614201556380789101138243335714425223370138038706555438574273180104850195321664460939147215933719491474089749688411819860183411119408511040807320961332621650825096718041740308279554261853769230144336223137843737676510058557719276995363243990174365928487986930718950417484333760103740707943575449690047956744030571141057256869297256123048291901848875649638549182844497495664779922400762180336898514945641586857661451464420913328584990089116118365424680545006267770227534337848553181806731491745946157547465011336340819023960931637761118108393865315391477615533199949406612023612629089364794198357521904487019126961722901702140394579072076957114952681027217525048967115057301781338170618340191984670892669860373833235042699480995433334999438568013239920098008485085920818692615644950671066104550280294799404374990547827928072017158388117126516873844619314697611746903847478582636819208786942444507907193434390417497963497569548287163048256161741914032536204375806700363025884408540782865172920007851112038805280804934634131659274345365690429646110708726780465369884558832105762862390521686413556079459071617646661992673060109527510373260326645457633249089351594415020660071477022212231952084693514610229810908253903074506968782416475521933925871875708700322316186759926179895193673770855582770505934639244448419893552264740928977503425449533464754489748735989699326473549679035404479507116602868973151476627314956829309949295277569748756185767113649981357122738138093288621695860157049096732138102087472664244630215080996564537035599552035972702235954057366405260802645353619298094463264518398947509662256958397076212417796690664678206680191281705289870115216424576997586694942531112608959328055941131793397202795673980446870154751741891885420359422676397647482602597217478318174600261663232081170131304310994459865264293580640727186509840874812127637216223366870725984620927466842462294802205000394734930475152676936829097254573911207910542533627710596454471216582752510844849676105319426035040158417672430713463051239437531703096349137284596001295522377648156073704712919768125669470588042755328478443560184495989896952940443925543538424627856553552351661083180168677357076485570768454253498911132275069826991971397735531061756793985376187776623080331120243634934223436948853683876394175424755633597106112084651453652472356257033581386355101069674538077471020780331390970913621803244262347781412831733953128603236931645825948118226122224029248748204947874385017761162375246616494518904905700507031164260881641608689056842703804399580063555633889135153237430111095671515084171932501044176904099780937015851539222255726541837305513377979660446680662313017009676487551666344029939958973953215989618954771616359126294942791367722797460142548444317236624439713649073048170701025853493015155231134779396004957216145330048656673502173925556809841333567129648676613887090919430575151814185774327238740072448645135254141307250448180608678671292352207386969554389775326311429082226184579238982556321932474179882335346111278099473720203760242469273402142741852376760806137954771079321362288156208252415668479105342660200648177473040342886503442835476527324068526943200410334391281893857008568102897543679904560060701897698913666481675409504204386544700792870687358431207091507082985631468252718096851453679992263229069937210094572645591654839909412440237140095246926531127662600194425010647126461095741404896602511512971428018452216289280025185794049764116611434113520084775626513547087014542153389570041911952562901331584230335726427866019031187986982293364519492182091064548959723783943460770842047988209580820037485069421624492736388207414974785812394874943980952264554813739343549092131665016858405417878557655704420869163271881327049714472116150732555958924342631137683882284468537618357355841650185425566571667653491064492183133570085198122728879718938999784954770084025520391940786730398816797544873960801598567905299291249247186074547910262888132037037782965411787734369819852539290699208685009473843562533968236258669188842880844442824185983834466478826461022541273907713851375641445611821630923448933705695222233106037324309920949434704533482995433683281901403832228420457681735612103169055035776542208787205079484228630238783629590564652201425123968564527361572753345933502802417230688475358583574549405235450427598155188791912859074596306261297738208920803160489934480636483021603074895650792679176641656558627096386947346338030788871262357602914700105749335983403864038704766680469866335547133559119020888015666062141131587353240278129190749839446080037016786692082130241439321347906342809304505404669778638987120725645731027459935855456681523444287095798580413906553805154733471038580785073514847713208811939440668661309086338157499904396310825764867964044291727541108273472992125850393127948051632612755001659244940155202450743507011296563723939241247241060193528593111047722093374124832842227030794399453711127082048748619690086655754253700576681552275950243732979370128927710508075978908268041462785325698523652525243094094180917414840286088198213917292475292707956110665041059710384374760184810678669887362902599054370502613966398927435492231002625413131727186113518630894630604042593749248442520452520327354759603797599600199948971410846096468379088675374605044056868091984660486817243478814270443672139534516824629316188758294668463149477170612783769725545612202945871254976164106943873961046725080402521224959426446432225849206363876780066084923531069042364352113532949396719277488998315292496630824422351070671414870120428977434077246494746134213025933354753001899297888681423874455953955378735342125241095500300586482878050305744819960598577005117600488310197794693813429088542511613507380955364582827122095853087496586987917729233585580469060765226341027323836472073594256100749124728961119233765848261542111090340848035356184334326666915753116816969279810363173969901317280008301415953186810672849896452100761514562169182782306019760744230959155363238874140129803103206054295415402208379880336910528842332421105416138600845062108904008159875850289759136214616176538841949224823429715858048090003576090900393737525547034436727874422054456146538817827415983180974017254956455851411005153242436097859935560946954101989505898039981044285419754685855254648681731305805147212901654695441833926420071440907308786059864673848225840101817914107438930065757803125739049062564443585582493957826201458316725311216834795173849732805124403595673954824635708079943843625791493002015494324418434514805421513095794162087300682308208481595273469607727184615223934294706711783816323430113172810499332841788153902750269686088222421393314308907710340055035120476194745153237177083730005593907820742907198091121336243302036300332300410265337357153314707070974235780438469445675459104695333004623795200552287857515465926989583246915802280997241611334033059098998795499616961581600821952200392443525672510685062273576845403316929723533498774296757216808051079718111436400681137330077702487692310822276215506661493643907229640266492778853095058755862466102309490970054038404528658052335125240773979267644172178819600890017953668797136926915257062305609935469867229200053553057019951398112429795798521537264355745252421730716141746187653463425923281969597305468950918780621096682387075866504036727937701372241678164049496741857429927765540681404758477722431475053966431841620799923578033774206438749717238429199174212797979646599749087027201645110702868249880006156385351635863624707069941595455209647708106565172607303841935240530540315319900095608760207665867989031021413329343495179190438556890929627042500814819149179039932104407916725492746872139367640019393928383904815447872329529601866302770667607621089996680403184443159267394818083433799869044247486276563702042175663772271978626444481994488556822707432860483758950937284512293627946286437555987569651428044313381634535135188673033255963481104862540954726385508718633876408540032245107731605509097330030361336169760721789915997200611001610355313079564386391618414684294754690989771436936033973630978766916852795455414914677104451322530986067340192653539943567875374293843409515593176391328278553462353374808320974180623078502366677585281885166964899770878144506723406286662961334881713076485899498104932341394961377806427722711721308908628976828221124191614049242138845137046108226249347111773271258888171679795164004527813014547841390078287981498506642690151420036848457835186167621613752100444486953799547047713008012325457084956430187334619725628371071367137841955031671124703217625316362989073820206194091330602665583597870313855639364510572028536613762270449923977974912249638835829040785452634641077295443332235302458417052820471858897019744159919572649619388638581106807641404535744618525676449678092207622301443990076792651566503048813783400463344052277337278619677776644417231762809253800337204537948329460620924282406548755464081577640325085127226072714068702231047575379746658764078964871082055199380220744624134127343264971913250729765874107145304357610481711359012383901383334608353409546283088998861116143158702276447247238436501956020482214138470079694175963580203342412349459118831277983156520516464577168201976279637174979235095153108243561939521100360486713409733409677592922355932936010007642690859295622593497279644908686091836861198305219130724274450107635572059470756036644251880219363717318445178121509326550855837691546182093664124072955635148130309408047816442612826454939324998609666837639635093588072798510791087804767958878185935310221755632280587134923017186972369794580597948660111518198744379919750085744703110908363253850767761298983246935570101463620207394444009962452340350392313199542519667043465571383817103548997368806501472049994908265742482583435896749463149774972885156878718254562528391356245538613417738962102219930004635004198493519632438894759265914154283855411833706436690561714599091554551513849813098791150779674180199497017964267056652524935409177065033323105356558883518394150461686296855509369404417431631187391096176431856495315100022005521225007790951579082696665765566812992065926051059469540978193356899689113533252046786661798847276634203996986345669580333612275417009279088515240097241590253330468668626100254317962669443736306846988942321709791262378240643508288327074440741503274973017281553559204298055061711503689125093523992770899842268425916564289772346388518955931776707539067114639265872083400226735196547757756483622933548500830884801375187629304728202929015453845647457497369517907616417797172538364609544241487286812141917375507886878766699556911913232599505746474276207317691881851655031636238570621921284244292505967600786438117001835621837450264575461072742116193690010097195950482261459418911569338970984749665432503646950674605996975012156305563392535909826960074445682118937801972535555224331887512919627265963557233082256839461195071207051939758354820931042790380022711208878879911914030059058960760010593137669190551394881649621038755173230904789230787945820487637269701626467906458095159543998937225352772691238405133064652660423654558918046184927916566820616398217882424374841608583553086770384310409589651250960983431696588288207680254855442030291948482947757093950339075272375084968241973274536932669985530473392109566148796617641184414480463703618699969217019472299801285881723255814382812495805684699827521081383393445179578589822288019409300651735909586192590311250685071714423415622498014245095846971830285015562856190789553427756908271368799769891056058260520852143632318500692732443262289857886089151554891638312467241821490656623766273302702897647329125408370238166650191191379716013748991012015972109755955969761192594789766257442392375683433351119571113542921892584088738036072391296218331253070666812836661461856578879168307574382205690271877674748352096901420661199532018312439366259610624322558436305790420334633448385892776435531640158377921599655507805372488853975432420775564680218763255168740270046877573354380100075649002245393837057212865078185625251065730810923220136498681037500134978465341237586036344973353311922087929009578927938819430421773741457121663453531931962784954575919179933022864541253201984322482320858271521240603454023859242366786437912911042216082977615156672704773894882097853075026022470340002173513794696290553642499289952095691439001562733748172872392902941563960910337379222060630234319605398042068705898198553214223696184553911481496359265928032543839193211968605024653259336499774526375823010164881451566334537309624176517412625592621785817322466762440321845050430336434814578240042789788232071522205737247572954052773478986648253621484228417235501335088401279291457926205706931334688725003134773886735062198369367562801903287981630705504427554703598908833247293522546290273728285244254962134244580050221070877476232998844945090768748009681353531971761467020465074838483590736346215387587386104625013545858735163419315422323050524265112607528399312008877005197948853146692632377062299628163295289601986540270049982529080684231451459551520706880093666562257235625975296118073331520415162973278377416965207410118979832076454205013144400374289491106248369676064304389555184687673727505030465820829925522303056188251976806699765319558143393836946599890294258901257543543167120201351995767542745372314965177750548115420328167446284733943620842024916959049221249280040314081075847383314777940839138936411376580513586231410337289736711759046888137470404697493421431400670062987228961936327383389301911969539467107525938882485526976807994042842332061705086780182930738455051998231071201934473642541003928368095680780901280022295760940878565082887840842456818872794083937345340706704024813246216775455469043961450556338946777175901823369635677225768843457837363714594558507213120318639958259641210272535991432298521540373659437004829314660472714504478564252551869501142324586149155692733619070115333154093170329441273163395095686490240278814439652798709167400807821023724376687868847865224907677165860291841962139592618534993887596329498736898102915484171049862552445038292105259391881821349303713252057332275606954811006381346073991651485375302074199918703666755470871697347265467418969289793596648449452034629493009468625617782002881131750420679104899627583696262915960286792292250000726003600472591592683912378486507272018708702528833660706211045798587417838160897822192998710762459975608642879230216370853114432283404997921682775635813206807610580388369354439478603477377257260796382550087740855174592687788716048554964505295266019768367796032069490462869685340755582641223987734024101253211600685160645719250087984545537330536378908874100220346172014241462865596425301922431884483494394619054275480096079315742671567710483091666178851549541150626610899621536866485615159788019646006024088059381232190082600927204591870399250137376373424301140399128888992282134798207099303584809695815030319749663591314722311147362770239651039353447127250729218516287699756766869537712558434638970094619694084418879336412572075704275593984066467453408178087457952981581123695238972620510036668687012326992786963737546290342848729554690670424740762238893206380029836367380151580358574192322749639932329490650876057316387792389715687951036671457716260671775494767556202093707363253505348459526047831055806850410634222596443853342943128835378785447739758444737157274442746511688031222752044943392518377693452133691754008093433227053104038330126896941506113338957841447801785265501702087287861938785569553690678016587691614972897777943870410350198732838023591097016768340191784790593475825726413388810202052174265663039545123189128376402006578174740929324450609839459687585633184234941814661835147074323757296145827091912574521595638565150592304728964641550111562897233513039963685914414151440030664026205058265978894121206385685316361887842208383268018205627522247962335495624820931150882826776161215269302344742430223665642690020017818082129076793723480520326230567474999204030999456855187362212924638369781882278979114442756020546410320186926414241139992364901431089600900629259327405043543813965706052709000948619103689223310199969042651042639615456532282200652345441572291756960140662253856424679581318973154155899729420632639673386570630817526100325842101392728239501624421059394860445703495669520836429730205454350493395845612586194756399984954683556059583427400135308385374962981166150308406076810865024594439834951605184810858787251341249247347383221237051484049113255927257071532540591170763523105250599323025342395922236201429358274378937640098504458322815456937091935015324609876236063148780504301358214715833436140669235297159947751961029502998046822582475239031612496120787690724106967322200951801035664614544915968589414368250490913694087153859824418105863990645191962093954697349645810951238084937420799091850362749375339441789625408132884630396382102208076570863227180021599005030951271145258185428861111409742553574166580679473799826759567383895976841851985274329799862267656039199062409687452199360294440723344732926301068120752746606815272855699404787796465828327097149612213941641373753635961709961587211615320657100399706628578065077566935203344471984495482032297895325181750461055627677190932837565406507269508711804370313291846132617226951619139001508372074739641494152082598371312625349514417891234352090361190352080451949959946639917435245759344584379968753155903700468241392560767513100335601461823406341961327570045601579031273043634438945243051500389473379817261418915439106541581571275142627701452277736909644860757352453726614197124898903996844516990826086053607965783878444888627217205509359040209416682054999909259181875567135158308606527634048469331363946487706999457565455815354068111680165697256233073592561381034781535384401990233259738121447526482391166861677105840437715248463406563979877332256968435860183206433325432918202769610743603560310486895349753085847600725746962137012940967507380402230600264581636406502075836924320473512589671783480144130796272853361736497484654369633538348250901893801196450125232199780949380599412213078692187312498962353204694622479795997100387088209590821030359036267477837616246196080716416094662083752890779692210361934927448961375687395153089647124189465397234940734423423492316026395354077264164198540595405202524372024604895453286105285081434058982064671626558992427626521746938673677522975045820034892611062774064227709428143919568991101203149785895115621654207082446343680847255994422533788750632811956710866649772999726760808131379730457985798994166664948691997062706753305879141273326602646615058413176782894939280871186769046034533109842458984258876922698625846584219547216578693004585200438681603431878058223947008668901202268855285029901186472490152498787133409602319585215250478092797354332845842277588063409180476837992093435088432284516654729785212310167944875617181560183839971515563220661574394933165193556227684899536385462567356769222774829758555189564422335542662561435580149878421332965020315720096323942841425172176123406619514169473086246016841005078744048658970535524146052626960489805678737525991247276072928286578540228349768473387927371486797569734634197129914763077275547830161500622994089934549720520864147258908476887027822026673459889409026652548582990378848400686475734011941819236900185187687874575916264179558962125255161400968163933301989780646397760003237851596568219895003150788656571989628182593555262986818314571560848984160348090634976705003373756165992031550808717916378225252806203555693174315635369847904441347926892514117549349464098320839620999777360930018063207421158802279712294085026155618847889270759243780186962719422432839353437706391560099032820056389589721684951005064811212642414210016869372838157126444271261174395971298539358932974271501849409621840873821195361653309808919299788052845207853453972710356850335059215334798115626892372032972461475566220714601648673591474945661054119588831177125756913361628137293331965007304897329539251353955097473657999189879235988283248937327209809638517584425265703872319453652545491758908551693908160310424695934987808870262652548257986105430353202962082362957506117369939129353718534586322785852736612600224139384212790762417517014652498545312424656746587271218361573860842447641818373245182846311099599302926093465694755024488800615168047055734631386227737751447193511051908835462957641921826105841703328156774934814139917977114616035763274978317082763968019473480186471262849279740591089038226631780920036349032713825186442809747332494788128900856910440240154122746657743218059800823553441846446892497236486329185718904152347600310203730113394852041049729880339673191296421381966056543706418730401411460291585057847357502922810483598595849218250442020235121087235245343741689334575286798688710735317304354461589023906895272215260873441731407885562365673785804990254872556312795567776611112770156301769672786996477780184200870027492131014129646273612832164354661722292416968768806515506256941215224145365500282368205044096486490370075850845421635466028351693423803602216833248416039806856069825641485179769281809219853793867057291692955826645717215219101062936526148152939379537018843106391832161171790552903026170920645287785838917359745885964110056355050779605384086076498801255355481606393393793576777115857966542743318997221460137668972309899124876908684051336166408705522952972838134400202542369987862983006558483534030332571385100270058571009028652733230856620602190648010190044140916531317787230714779737843058690116616998116794359263284839544637956590788972106947578776771843666723142207259503329200448756566518904318960630624179345208252584747992794074511300954116874700971452913303051725618689355541751686001145570061596412764621817953353429444347252623588459789639974342437313953572131942841736483664935053448324155281201896468117442965333687636956512182895133097727737568880504513226235512055312733485899599853896172625628269235682298198471470462715915946111402833735819317800646604552518423926818978219244733448915209638499692845752685999443641993124425355738396011946233499964885863751676505338518274661625830598846387701141893492568234386569206334002709185428873582325470232283615351407288964111531265254348112590413923573983983983774132010784294601361202196539490290000471206637172469539418661407497437625525739138034421668861274363484992754821895531394661861119949671327477974720436162720824747298384674688412820438523004402305209193841928952464431842386554496486803634957165233230805924032915941450545680805146487244422512046405505880641883381978898447683340582793177524535977292673948978884426549359890292428199319252193939678524353401223192699786958717346748137716393772491148874006516940087612435180551588300457741319198529328857503633913555125960595917418183588550409596010488083238239349557124951755152429305587148861170682621396381605920795888431470202586824620649106951077203140406149770990709133465978990022469887699599711853508226536005652303964433762266618876967253106927786543165991917017142108695226887169829662067632400687882642977943165068943751581956261798814589371186394891765461472953088897791391551895073326181082922434890165323546796180268542986505003588437075955306200196937145190255649524090477981171928116845806412827290517394884733060605230847497238385906803096572067181052850244468796370429066853877943573793384803752662975852481567813693958737721415191969442133271087428775674727518391139200844389815349750985464949795084090935483316526331974026606273503957975707965533633339104810710841515167360207952628750302037316022746338346466312700113414657684461463354373410166159570566778041127758863700688911054271914633946105319165415265599613614174411485512626578142861054946377921528882950840687290988296774559339726963467323551270856170645085442113423993632823754039388437709515217697132665995148516225364454469003488492817811924622316341238871191221966120773205720266614168661759805386579072588673988518556271365903804482007603745832543113186411498202826550657132787078070716417377231504288524395906024778572850841120230909736927966505872292373645738291884865277188232679472605921617995521855864632532627140984834649788291195985192136947088728155413348086575289263359138074932496881108204119598952358868028194037386184724951082272774384200101889768085621168420358045565983709188737884029355655524440351585223341968091043173081811799826641667958631007756849047552953234354313586781636400738901784379014224036829311956673686057869205396491979145863012988192054712219520146114131111997016294861320754588245413560614135113781684954794820793716374119470420788708295211641914899865567729213667948431201987394872435433082602828020358919909477325076097674227758474049711842808072726622651253727327481300860492593247437526633309850592607565661015822282974376140046346641774392581968845432134246653273768046339069253745021468247604058297219821401467419679475522319511756007288056931676186577232053049606827352658529210374620143975930265487257571512692386780648273178564210273694354453512773879804530664669573440511778002476203508813915765998599861873559343681063035819071823018959255353895258801858867569598030298786820194330345546022937803677450493841201919773879586060008323041449692928056906147811645571113789973653845080986525127507667107445239292338425203674450562749541621499570015793444187930337276676441765124454038191356654458209192509694616627490744478693418479911833166449192895582544654277590502116401671149314954051174799339518070875935052751704285328970367584772974633830220435507540957959280024850564376077761911685829671499045500863005269475512854822941431549756696018348847507827937336256870966467394450879733533335319385462791256657688513459436012844271943570794046826301352398052274719579888237766997482304770764985308632769693778927579641349433706952923758785341186718151152550535593044643060741889718909050557153509613755223171737499376445897952874666820571964406490363632376798749068265391866216065601402050993921522330475247059312800170363221598455419642369110813348658697711250285109004091638929565660536649876400459495861648602978800426587851280462457783643245931504840914521684671176025023697212269097060216477210509130955657982565077653264462127242519118852426200998722446997670242242134402101270257165599919084224554614849497539918626775184963699956958412181848323580987632037427218105363757816848374173375413229700449592061012276398236204152639932086233558705389498868897989137810100929280712399300722621401000147378353345122671519170318509030362170630783480609682295388702806118858078419448978938776110444508618799283350731249059979310606989874148796180760192920020262163300921294543847809213941114270310445286390862297886641877236015362975170436455601082260948214475176642790947517873605981258290705278819980718195223664743408172683269330693485095134821349703443215526080624176987876730246622561189928685314266523083548434214402726319470514111149426548864063093642911175634811196851615530106638743994204471888835573538346599525419790741130277735137893279940854777908263375493676447618602701273453458792255839973070462296648022471562373758502279363089174790713965920163817006152850257090488814695971947726608729207510851148432044022275039957631469478770080683466615315332819305575058757785973112848455750678841690615958462709715503844657532229339202530062676160304805822000224000545469447750696995454907916446646457821895720487721817983020375620228263288808769917245266511647963101571736816629034883467042152960578945077966918113945564314645718029266208439274903067706258594653698085573532712170165072347086597187187174399940183651340205570587189441489385425200195977803319679332511529455307187481194694887537393850385965283218098113568646821185685572003432990712453455173551531844507992866958380407384898961069546086340296505602490872805614790465459136709717734117527448288632693478719821936852023137350709517573492906625312430998454018229972738980530351663980103694225638180438555808671658619558658073693944997873351692585441187060535219125170139926221597317738982262723883549362694594330353461387466976295846708002767415405476502248545746093045592763820866484370171544975104514016843092568196343788189849597466620799026588829892061827284178711260651257124307975933007716987190622300029006619553086430045215642826961488021402424382308306213874250013987563204588011185927099273785066998226355238770397647244513448750427903136988777016077010194325155575200564489494158017331408204096317231761619983610463144282974486885061419825798139027684441091598067157973241273961425662317707962859060691174283862445140737214010531829273875105622693850753104613999603150099493881883556145460134873163222430667124781231777748340446056957057363884971524563485708191077627172270431160182336109015142139140878905804895515113058757238172002422107781126216250304344263369000890529625760601575764426909829371456277963796407751122258799613201318105225174542549559933461032358111271993672086844125933302764666341196535029896135601936778808280202665887869407540893487142075273832405870415201921256318454854700182218292882402356913011493961570230756401336849188533583549345608697453034570984508346244549140890152873483272198530443760717336226705844404112758022644961624527234995688731612261852541709700824045229176056958363453127385244487271456168032337493080467449735315905477439837845658998409809450175844706453155397850129991098850890432962655777015521384632556178610720836177465581198226975564809104241312367635013422756792137711803586743322706569763038719237385837566364089719209289172788907781946788758665222668622170359031738684667296679751832597283081112668827270229066587595811853029295709061346051137474894601494236023188645209677055903284929882091698822784363562866137942936939711842924565267786055670782852512073723477726552416950936548822150872428354766867602247936587296994640219744171202279585350121556733989638737533797351130315859995529697103605417465752255736940577467515897686183686093133129895162107712261826935627835855548565196091568412409544662301114579166005273019600415125941095007143043254955842826053854396264101482192359312426640613580387848421574964178544179479732014359506035814195621777088862519187555621428090202550385499650327882383924728558142410796727268639744544246683913479366489699629763244963693997800723564607403013389281680148217822139447614542892130113556787861394759513896481944935842858126472032498284644925972076842225851881265423879072043207836126932955943857772645825713187516677255459751675875952092797039336650567943021715483332323551406744990105485617062684712034277349429833584266409343465122528559010688061340601236269841277754818942562180281764103836150592071493224130163669811253389705199061074182801471544679648904895193616689497595740391533382110483577138556503491051936649778361359605367333873597943620524578522336252870066298598825791552281366074965023033557265226032589456561362312807902601574694886567363713090850607245850944839768784626479376248266903962666296900797991717216179648776921855060375763749000769921957846532661200197742014457100292467964006783676517835409626883246350929789528783723801092653532743805369595302068056183970544043006980088444592412267485140057311856789685572421708584276723674762182686361548034471872996955835448399542759779914238197235894639815238069012621216332835045810929084320578071330437424736973858407831236089792476542787058329002767054513197379928917913825783769745110909325658176876313329947804162988197664595040000135693146960056559314642086291018563136808621040740928312355113916511106792167706486795124462353912608287190673636462609535445187366824672445100622570740614642630608878585862943785839734825419442257418838360105239605679077018868462092706104136761646450952294319881256148260068303436380076933163469968953116242620602994046838235335658941869416958939253112425803962282292893524127662495900978196704291690025088053980764678622346556119006856468757844330365542707559623238208698032697447460232654158446987353194164551846748008274511800839305484694890222021570423645297246857502733422727215170408295617172873426250135799155438681557921142355935586031216710517844978800319836146388845323612370953438171429829171185967154180076267989690799943853363572219665471416008603429363822626412120609188245981963625996364264328619465628312391990317757112972783938587843437072932764731073520263819788808271197597486464172879215060739152159942045367313719147112138026516849010418414658825664001017097933039164836897843847976541731915449491216405711629372260649120072053339509048557968605415403531461228135899549634653911962073953100604299020838207344053523562275624463196177128893922442994706967832914515972423559700742964764502247244646556084119813490085673931876923143025441299427895069914837817656560409885147525177012957284701407714209763231936773637944412842646745725481036307101016187146607231021923102114728703284991389894682750900085916475654680336408674187339009343710963605234914151303854254335396010780213534435392631397320714795465094263715460178008915910581771228623541147226560932647610681950091835569423412861509841741510077422804102050331552312198943005492063047550267088732480403604533011177274408650524797809465651373617113771298393309440325738266379902021905580776872477691799301452063064783581671254663644216351610797931137586771598518120632257610948031618143244147756483982187152737610079599198458605930407757026618743655592596242751595738703243776641734030798485844631310420919170111015794205208714533329937610267571275367756181221273774619960888173061719866766701844283277549913619030370552512091848142986568284892961661291084914963925926455849749283414031693242158661114517686612968746687989335305064549257176527505947230540047166211512144532510386057452316074289751718885925559957574266494159773044033585453523494848452013621286546312298088932685081057323878875401797156763150342692830799832541658918112633145315469387703956296576458416204986005292242525463122393077972533708328679049582783112571178578238857734976221542548666474483179521170518832889532285899966687198529042551356436267696557642989840270799718721668333197570568301074943343146279707811542525371314204014482619700248188976780682206103637635665100834669296291125290298779717622144600443544993518831463021640012109403068881843599291748032975270177808542326266473701657102374270697685572624252912984140676111360708945808457848270357020041046093716529037336447961023909900834373850972596057928967523320984991775111686232018727411846592824679610773336151808653761406829756399042234218148872860011503539587417278128704542228220084953280293846324490296737426527458023453661281131271813014599915150823002526731910431832289007985210410264456439415514929447116199778351471436546981402874687805770393338052176345399358439438632907669293619616726562365571744093740339912814212071857581041697466279891514970142742669155103310587531271224010732535478951931670846609657152791903205322381201765743292488695858161087121965610866824669076547938663086262844602427881828128364304063156011077697907415663909659671647563230660421850580964779851477072093578923189250257548577602208211321281320331662535527679627426720247190106475396649185156492689993985026565394417241330047524067006511483335180940040099781673454859822599622136551796145473170087152942351351067748540865973226329230172493079449374253259527385049573776045194556346815483289781761316216351957625537461377744732619828203991054313540756830435537440915627193043533334561344280331882713087571346813562428570094348254147097750969230108797798622325905331084771520149197361751556822430192823902990545039580111893163489391066903532807112897502344634848030795930671318040696774319631491261360033029768419033304792206969510173169113049559663563030367852878613121614743239535975725668104504398196667213732573147191728899141194628902949199551135226084614433054264454354638724107525248379035074756900777644836497743198868057211614814915010163342335651115219521099395322817648635779892376207500160865241736283588636148013819210483744130599915254807467698808496338654833636133889265743190145473840627320728236784573452780443301391128566637955089669617236492226354328700072807068690943178477023131217655526234370241496290948588143315695903320380250305536683324663715561233248607908859143714396087074716016253701857281095026925209842212322187599076674528562718984667780252792806905368577558132416697495785805267175354659092062392232004274204482696279908289278321650063733047898479843195320293410940288078074027971133856277003997633356786871432034874648636713556020518384348357042368089166687300286284076406435297440378451279800406514340151552661850252046068200988860957961673043908527386482281994771952928773128193436088763728881068110853595926583942785280387617294323810324024734557834763753052703743784604171178997081516524097977887717206149471275107948309061020449527165619380584226052003460801642070987082829385887963723224905211130196251791109416619011767970856620234059653935472371125730354208679380773137499721555052726414203603288984845792195488148926864658239100551313698448100430853563859204664492304589005614473341400163013888361685761486422951081847823824715422368801262897744220582044501219351703611156065259623431038152194054367580975766691665533525034074180660242349651338515776461860778021067379203415789885838650984772484525921732708931785047817091950480707276830034851012732630877991889307518152471501610481286333455305826202798838137706916702659458702522927316192041817723721037093366332560432123866293103521391696405076412455665333903784767142967904295400362708917090740009939157635133348881775112007362669070828829481287858205125980619357992644263376746963030820781621746040255971186839324789527325371096371881087146756801062927836572127543179285035856868529995324906081630544491003680599766532922921044389081728253718001335943951617512892143622184849414927703658397201009561660530558474791741351866866495861752362998163265935724991659638755894427960158429047197824080648127637550190554257795653986937007120434068701551603697441507275161358629177859201886365647938135606220540230616067165409703933002122037488152024386257095116377953991201281739243703800313017668367855046374389342352229489380265285907534381331834532058138686539269008788270809440475141653373937507831358645277321756698088829569751172984610148614401296293597836997254583468277541078550313298937949155514534519674008136074379782875107928617220349324757569785592356170728853860503775248003647343554242024676969710012956767150976257133794366260102690149782147787382543690084012213861330071413747113513836794250163798712084886154374891231831657785008049902681224521393057452972284177177846340689014935898632650957157995029348700800043741477313392058952148194699438928146834185087165382805216078587763147929342777927174100500024732548635507662864069910491367256144793626950051035997687067204912329091974029752511708094333495406172101186241277666395311709000723720712546546290981598609858576409815169355522725789516991629297063428757154331564092382919154983897545070740083630904409668207877530323790201666538636401753708101728549447086622803549619916386591980249413889302185739892587138653496441801252951393949412049121980532470598641559128412286801475975535328258923225527507160081529810023230672177520755205254551140115168781821549825871074717041872927250988602608458505177811757463345048379995426410106683469589564235034038449545492827353881463929947461993400594606237240376332843676676345378845960076889586334745085984763240847193853357870508194088897566394516860880891919423001854470772171930100033947940668878440283808087881197773727355046829124859525760358546039605168354005273868986663788160378104278740486002975953190707609098553604775222264342722867890696418938727544454977033523982771555450720265150094058031169135395145519899367867254407610467004972255567576583347477590000568859203451991138285081307953446722392775509817384500514827271671753187172900002003256014634058835891809064285275333984771385312182905397034436619106821449938496014930900498720713130275813686750187225615486707254630449505804721444890459935273215521619348969021204002734937094338502403212935690902195000816232617839138248628112152019891179943179897544181205752110634425177542461523424651754200972816812264721952032803613182665538791154634113782143168926414080865881652733113324212800160622588384986620285482092425169915252882197803031896484735467449353907378686062509324291352518583960621498792703745187258276818540576105714195403495825363848910931491532328370841626479003519075613234380602507444919955726039042784613612251589313698128880930937884107710966138765844813627890777255304671748321331875774074365221142108535022767985956506202219262432277237537027370727488320206954709483534818950556838950072175386379876271764192108618900456428709326412754753945123174456232602624823141679845841351854883914984013327364283301442884818273261920235180249001035070595135261110796285115558566939670923041191026813574815596575865476578196195948800961584797298448836600139305649936506812008646718042435070513558632388108591435849241033723029366470011837203616864652702084508029342204106407930328287770903892902088084464754327698663599545154616539566061064618517635104742874997311511398738221025140950701176330747043827245484071432026929836413745170161430321056772945460459482244722586675045686458550953399007416215302560875821616593447509134970287768001917455167840842313459846309007785038866634237005942332702957536835212585959716916700942953901589523204944622456156466757160615588310475708345085190277338967482607024377893532630999632098311640147737036875647460797673299758569219299384713264209086576830201016794792965461063854396617685338226254567849524193428828252820485109582355323620255615647249918811551601365411574785138071902849604307606493508473133220497918797072075983939721013504016491708001955924023398049861482305493807869017974430079638968689388265494872057124957548033183224264201728118417513346275466080206579846908155419435467427409097504886972646821580734845969335219541761611192538039816214080676253022455652329831290865480379588435239840710837231384147429707365909387368863555804877695412132651718666779803924609106214397722436138852084198555148815742851629525625746424449294319385054942941188795648329795741117690812592518287748575251336557987232417017335878639096526981355517339798577033261543782191500675364755546737054771061703447631316482771840691848960945507972245800170559456537556544598657633383283690020668485462792790910880184423667521018127211432541779179341435190488828813695056550618793605983466416716870169813126051380734841230460833576851913454007395679483285502455107496788749006012802847696999353216465019965787212593978158562874510713805753183945735189718858786672317929021711549700827932565448086827415280045638323033253310646243746730367164157409158538633996811961854523690692877808084759248101731662616035824569215174329333608882234666889697272182376329464832862671075534384832517048906036233068795922907658755497129634559109208432723502809651116219421390997546907320152344865502170932797630570485536842782854398279360164621647928063025634353463901605557162562469092032676993587810372900967196951672423153212672492996159035785642839457122402315917831619243905524652785146809114236105590011687143184751071004408678705919083432186974984468285114502308463890302061687488473966524747866415438522692545713882649371511884810269050640462070502805836513697495475519848805819985983317270518332014120672052996114123003055422988069942917945530199049321451651272371066810828456293325707240825671837756028656163437045270614546960707983079329923999622842623541226444118446758835572701464283383617758241197596524355486112881749414807683868464055862631849049333646152447772391613014618308323335765519689856937729248207656819245046464936108859336350817552022900704926878425497420885513520617625858464284188607553902831915077431186126950760874484375454063623754321514330258857240463046240509755514955109557729242167512177752213801049382303099603657572277626054202672560387073933341392162201739752781575283865906876871994685694822203334921875199098314186113026536410822814812985025067558076637571219223554120560536688041905296924904936228587516344521395444954204222362535179136398979546882265325117993632690891085471195484009474253849776978287935454286556569813122603019522648675266508963148026265073233497631151568689837844798083938383984859315191407336848559736015501760808863035499457522611158053595996272000352606089367422695875729873733442631331036548188134048680913694303858481294474184744304826779510180556083087312712837671012702802443224140523289361884167737381741288725492015411050307058889400281701505210643919246677746268561661530558918548308112892078874829112284163276233041696542115120832605832267179729918006964478250711485575641348333374156658004067620699659894803766148957238255843038590028236473384992538546650939002252223435988678105207806800434834946857183945723352278656996362308482407446877120265585573282359012637868233134378379912685940263651844459692855260509748639292187114513998560606535400641669614161407528596651323729902654825395005601302123503824555291835851207743369436769845066385361199984505819449743765102558890977468265592031907619728014204307517927724787622493481284532121404334841328652879995297472372907352935487899572494220085066350913713454018010263815388036017783471940098334850228908009262268943688568103641485610676128145748474754798713748093920582471361935669986817299217436979019981119660986588369976327842060528790003660433912378528499124468942845023923758428283879619312597317077762365283578420858495148314984310823526704405957866512717410474038511594086875300663634646472508317873495869235643084072807123100581123701843937895680589566576213578416859685398312941118866604630179838891727972263106737209889482710104166278972126013259819095183885181415169810410595798973956422711651966266185121817151214951978970810709013376269543905168737004201237474833220330708883716736310513665774004279793419461921210024357599125920676645309885789066780490026936744423918765357472995573848947617783330103508184348604814553382268764273149919844730568904566726306254951950433689734873407966968958094513132001789523106634244899441041122037792300022885384806092321375429677259727827176663019452059777776383029091293838206841816825423461999276480480284726060605414604161773638819353800124325864023922466977727711241081837984309754152041799322685741370272400012442562265576651863198823671558633679161190441080298693900873690207844778592405117370763435581225852395756830232548994465400904885857147353284472197319042353564551360479608223945638782714939402452757792882872682504382137426226443324117747308241866411275760437023449763193542146695543294185391080692454074734289423251246849375878280590515009219005817943706232549576568535956327183416152581941968545143021360086955145154121194346448585179648490664878528460385345979196191353282152050531136941593134297803647057429732299785760899463550010882894882028395385900901508325128148951411672002829285374627492826081516580177097461554906427913757468452963688371090308644055252990896607981032363431147779515292105034055221664044382789496048164904084145671772338339846825864157717243413053623634347328310520801102337336695417727690253517328380861958201209546403749265727179954241432420849226521961707685343501779638618631772183890242119792000336774811760406397168542409914047788786353289434311057924842313582414823096296553577725799849567279139448007981402280527717618023943535899196669417591391968855525144307527430774355177217003727317074439548841040855978453695239305724843070699206745275277902558248161739292706157825091620862749301022633211218005382705231582300792983614778678601129884401501388893881346414318395825153898993059756497121261716003502618698075316943054981404611362299990246545984773357779175511695831336440911416329696686274428503739585121133719700709901194151516907644003402690366223339871977807211087934107011810053317050555726954333640915924250508505770264097460336088505383762836414077051949622791609595081538488027559983474684830707994591456054441372774231311258050123702225168759257220130683025441450643799046282704173888152306903368311597342550922307980652284222176123624544382948744571910471176063582458362574628654843710978602269168010221546732688408161020118197984005911112957008607558879037140888308872575594597223009429995293569450380727621542229671463786690228876708559823904627201400987164107276794744423659616050834887279857158696360698551235381130381889351298756976762292733429848861620845334166506741882020464071687232006256861761990801886572806057498871864329921838038390338072862303212364420006148324093019019555522288319444898502546311438469265323189963573205510955743556648940430750927738399231572729261706889002028200420842656185458512715918606942814461561252903121899250036756619669039645484927154405258679498813972013948261550201943551283720380057859807336456562758092502462485301378467404397000863589441030390283716196685483097917707728784236131560803880265523266513277043684214422796345156085531541557148419235162102957227005319357761741507080926955767601243224119103468882900104297575280322773273385238583981240569551808520521379045690570401718135066648835338117883398963661655171447273354368458730446573834702044641792999931313289504362499376876466876541131711536119088365052944460086872406679962467790863617668459764441993316318627864810567631178432694874530241745533699213924454433263696242100287556616129369065130528693845658095997967652963591683803986034762119766313171654169970991112293106974657318069531228645719101683239767319325808268668664142377583357411057546734511691993686139105615065303199238053683424253712759694310369501111688149340904245617887683056576900240010888866103560758730677766694066955184964806042831221788839845309326309805502161609468632942780109639386004639481138337714285875759656152657469751257188612062024334122171775110537749711645211987308017414311653095593270146396206753033628343361308120753865732906089145531402368090869335980400934593004010512392203804195414606408484655296460519165717194902057291829748964260537139238318635267656815530633348501462219423190469769480134065759501966229700278001719948591212528336781541077081638255824426557085146340927190819320249085762483953980912179744949713090349629045376449432584129624592509687054225400663509040717960454090789426495469314158759899751530953540770311302405165065765946188763547271417978456693335814294966730766759102122286804486325457746310525814396140019983225322231096941398183385874888624578281415555683942653079942108544773463046411296853253219740295355920290165760616964959749095226183798781518944152579863425915128424756401446987264239971256313394330160049778453845361268375565176241819677141825083449537033753457688659046949462563135159472488586122111240927704502124654357679988274551221043034914621092791212715214832006278951763720347733833697778935829395636206875372572890932303410429974495550739599586036348044717520457668509291189600727538275546845684463985226522286401237575764607073864956971068963186437502834426053622798778460790729064277009309892684209236649925008715567433293900483418568284537508320317103266687392554347066355227564700352993765193436498252913162807576994889187707578971914000322201015056559954806058107187240895150889917729677358547447112539822592141989899925958533300267763979462792126121838318358897038406914287793527104796254595788480435704165503384762472789697832637516197909467245239724760410407060902698949304450684809870400032041330093386047903457516807124605741038660460030821903229358503686320045949554774518243481959887374152615671866696741041854160559318539126527000057030177745826329766533645638946684364881857038949193777552700077457860882240736561491238636097409905533545040765169711601207943760021732471382678010631435525998045268485089518626462484319112363164980477835009170800765243719978824608602009641832542709205917835282629961851334950014880575610789716860138001208789789461838792961114311761218293746104652529716376271250564387157630649651370385994419173192972988606366315871732771926331897674169191749602400408477308074786815649717832126234385751962958719907097654720044410545148407398644507885552798928079591061461998689138037699842668106861873477796631149799622497833735222643688192583592080444449378566935785197408080104903323810405408905075781279459855841315811454875013726422564717198238565546230392756102089527673304942452792249457038517087542590228202834965940660237566876923687886489922166661114794181883357199096897920103784367540734497932020598337129458286440055551593164993491660972304504639021032327075822625956715928308550018971992821523050452867159986242580990950966006412150751326993683916449603442172289878342159680311791697949230069723670838150584424202171875076968761431719214845911001755583100213135918280258529602221464002806373729678621706201541044653742755660213871011254436472016024562268080161621506069518876496912605822890912715856926808021400507002066755573184754543916222768138565458230657778885273777768591344281573426150431050399873642027777372154433307398681426839147237650907223627395313624391813068274664107752959519546064023218563201166282367726735722433351294697478210884743058411148025503952763192474384214128799434469936898686828196904511597735461502493009114572850495635176998651705433055796758568130843214802481735913360943025743796818827670308438961012724073366063208158740400372164804578123604986696069281967469709702491033451966088686917854510687959699640701076750092232312760521121281517083131612417583079892723821612501789330430398812590390207618236326781226818214094526975615747584674911820757731381655641843236806410350692934403340886096370611555792304762158529406882123356551722310000738149937466079025253063489649582810654295296561265206428601291403042679766260109267454678222603879203111395003378187325859491217325967194032731042338439258412202894415478104500371486616539227409150184181546066891724383204467377506957508202752785947915732878424724080620144895986933257910000161915622441577722942163802951538101795347795921787708712758719888577578479943488258165293215766693682541161182924209201001937437462960675538866477361264033797561926603221488383649040595070550331369941301593345692197206332418835065709368244068922044454444668109990092676001668086038158649561935677658606288327510634699192851464045156582225878844239218761056131981464537267547557063512633333623523984025593099822678417364596928367675559018224110510572386236399940794667999157031773060059688669352157530646815578211225625477857586420652945122624939401765185289104102203579915464305914020388372358032601049262187240711891706979989684868801070370997435099080352640891564087880560550470381986180987267488410573210258222232371814416285576182153639329968419240883018125970689840498893216816025481955870170035619354875288209771292487664113889145671732016213335158165218501863575523043153025559842938792940924050272003426837738390200974941559778905364643704959034149978590700799287738819163135057083879659890719326475651308828716932460488342449389650235416602192345412203852269440542490177123586705446011422996790942620805363435927814571698937056079597875917896599805513525368192136027973510880161489531312227260303091175397760761027512892908180387232459868406676555920323118245673699902101262206660062357274943210189062290286400191033286069131023699644253828463825543080397763136921814233474771813772377195796932408736145700784512709847115362656214259141061737349493216834425317915329737744619637399177611433775165145789589001689612697601102552017237992284850659918136030630186782575216552981370247224748253008413798331316972761182518223834802950538050041168630639285325714864565605931389359644635035396293425683906640927639993824590182482372472636929039904334427683906140829166666012055046387491957802086782277079822020750898300413506588023147437279121825196538603674426334011536396333584426889154216982672393081805208360630418169928837795260567408847307458120569941291391225769363506229641071667270728092808858883037607726782905451607436226039379857431282148437395149865714335516310548696793346808976914705140674432676711679726698112338098923181004500222340766381400822833423845969122235299801953790226933724841544868942985502384828464609839865433548946396476476408202961745882915663694588299118306982745620666154811608087006785461349426594080702082800025500724841628197807269723613546716339284676656658293718562273579630240566844225308262597319516243207349877031077795602095254409821985479925814255029150540354977877304569374854072406742024624837356881791240718825060853591782984441251710367009944148138244930974368222584634336302563673883167311028817948896338228969032186133967776739208996387584716744402566087327315061564998661846556211800909937488373716794975333676171120214308236526939946529082408746154421942534033888700182903316804734474407331745372069875052665013898054184828497245234135821422698765549917743937779311661122582701452145930596803232241662350475822121273453026063460818261059022138215710919888999153362359906015617079507037742772992495038804190141132528505592649471615530133621698710322045768850823795620858237145206539228442848653627352118115780872361826668341391846197851918267334202137975629738666152935036810960922647499554068348678535591058148616170744508394981734691225887646050943314318403051346045475838451900456241753488992779647102609948677517959200585391600249273257048494488689678894807556876500314010546705045773544879096263365501003255557961807292871549319987965777902255221106058385707556052154941360936767924990917935377405074847025044254663176533486799503602732127852859055620624616620457036975549405586457039247412919597359277641934448297515054812278575002086686422054665055927744082323729772460465541681869717958217496817519830568793811568738715763225889520615936335747713575167422243310067348896173531237518769970733110109830800135834423432555301603556252482373591649854570118229788861713509926868201780173415328352013858565064421816864946808136435162319287291883633492893426018938850684098340080263507578229304088774684697764091040457556612098073330881123115156024565850327074914488471382934791965330724410270961967341305169922623728179660372772220859845226951853418954370633959134200104576820426292589343954355878147702329639001227052223641998641959279112383904689957608453056997784033739475530431105753698492272282912775239222496691638122245293042004749808161648482232451484106566654472192926525868523465601544210777971226911652690923365697125512327108054216586494619628464714405424934870650225796244351318802257771242560008629904989153708077183644281074045278024838742718734636359002260058086365206313672810136218095403568395594539687663928516510406564878831200714537468547651174097676408709738891491286578953680935031584698485096293862428863456901785560955310780799329164532843744061565392746355445084604088156564567520529159067358493803875150156705152965725472424985003260925694128322036355239043427889856973404083276525411648281037116579215796345602828785673205981243428424851155458695506302561899789602216970468273572018332314895413668858722330663325668935116877051220331088403234610490185697951806482753298938696880538393584608573883995017696080347424139462238592719925000111751576980170055804546026522388611268549189243340604778803304318525472932178917568529905197543404587650929211557506135113093486769579258558532970148537653738499677882586690876532392524625086755333081366255820634899197288041839422129945014322647075668532700544063276075198118579783198779306965018866078239309119381490623189277489771173175487799359977609168374566484829494227328870254191491155600831183507224018338091739900369778749079203446300984605485790560523813301326196781451408164462095902469592934680363219156377361266819802493399771410069874344611678137880835407852691060747175205593044476436728736131380869692093256867253666867079759126846248054243930875125676432667717303801855809699883672288196440563049897962346248751279056387164548372052760332893652513379472495824989722378239796477787860054704923733291690449737568630272963394236407404915031754205231895085468633796629298771071712329503157339489173078165965026522794510816454693634745062928040587423782359181919132977943318304517696125517129023671173333145988867904775968756895202632409250185412056977323647996739885825306873389859049965093881599385097894851939436002310232447744634517064145403349746428434183360385532787998769527988104105834979145293730949961157446715809618770867772494762662842759928518950030019490489254669805826088096547152113692080128316150514326086288940181716256575519960757273271721155345551060269151706916242147409333410983535072515269610149533181016534548402725767449238001676640059276983086819879120278749195815927683489920176692909069864832426349183550502798117154908406651932162789119249329559789405342493333198033996478234426019888186548445952895044250757287132799896820463854603351415665972191921624311813367065765204822693373664321935376376556190836236956786510126728114282962928509855705034764168278666090711028259833833408942040083600559270789211061317357253625804836279852448457722910378719300050027417537230500126786134466042933452711870464450918744997108294627524640693621920122467919523860109182389380165684994524274769206104351473761739900120228290488089452487046018239986723867305996566188277910166253622903422091128413731222865506241913431205543825225820283881776765462789900673893551206179811144161725840794068805135631652561270788853901962523980706737439790535564194097640253734726469286094693461743822425215524496972846113863607380929907416338318439806228766720267063539768028150296975099808794174338402197996437656957453914699899661807739058017924977582669084545454272106129848743303558967237818095997997844293913856913096869179320702243774306358741006140256922087868740690533367374019227866078864356292170117926332256534355374295256929587222650981275097316075699228106602249960711534150228517089928203104127341014610682957945418981267230789895569146070899898234736269001243146163071909075858711088810483545428278817597860881935151281284738515272947598969050923584575544693063299994202402626993926020679747021557344396084416206366457380073486672676012487756701032138632933624762059964432368889937281956701013107939469555331173211586273857290755862739084530232933554224394532847419176274429985891611871126708302110494162515161907644786776176446085986073425815365746900992077652065402436830955973142472735765283542883930187837298963089541269812529798051600386837992280920090040690394608775658800608288077928014671430128198631967685246924477432262839814498437747417968974864592275399791765460589231016981279688194410320530426304774438611803005812453266709212289629103126747923804283096325178698040956083116808818543848747529184895087042601189637298984396681858829115958469688731178614292008091150550044896333598869268848502431098694271202343922049060525418891456815189472273937488393636208397485238011311035309326456105381505114524941975491036435649429544455028124480942602831184577088357221336123614730838091957178541252005913085501958298959639560570511707756976447241292091449175124838022444734502358663636566441849051450542539773304578456246868194023725635390283081606183347208115871410627704612211143543178179986630982985777560215579570287729296068341504659178051929489835135204057622054256994202596438861187055355978197063707943090783144820992964107900902309861929235215315115165059777837575947176965200808806015169070754956332011672371862108054028884430120770028442846311501460375263008846966889186756884769322508152255785506690685873873140464981199956403740834143023934194443307302725720139699405934600742240013465878165030879666780863014438498554652969647719305038247744305966512110819821688604471735301405061294280448068339748067798234812380281073924244039795744986735409905297742394560074980709553908573709490882663541912082192141129057888139618653897699683062811631914272741140274926007929572001433511913855985587547313700920362356275255323119912662647697480349606959205267319505682910376792380071123016779783990166399767887733410856944005414429477102465676349370536420538181945510361931556829955440597464980758195985669949501232016232191441233437747937953045013462031046884106184180393794756312671176244944629025840623360367332900648220743904464861304404556781205581810521774575280312115545501837758600032688228852572789728637646906175988486647634387891585215794807930853285126652239369738245816604000030756572799394004397700767240710612042913603173923569825751120400511855369366574024541515488513372854062636054224874146027165581035180422997517048739397760592590329588890105830990848631522267406859835287808360440141575475787199391138807988843731790446419537180347515319855137113149244431987666555521077763261966066293722216518451469356546198256937785009906226413188216280803479644024299736519487930237753452823174254031855010039840421035937644904980498070314165908140088135861963663383850637620600126740883462815759434654502146365761365386775061828358137184657234103957970252077692281704491287026819689696657578894557549917358678827795462505995896910227336098975178354555642132601856744393174122701583152451484045531090930213627391792425093958843532726134923928370816438150787426402726920591121822378378312576274926045890812919420123589709312275779716177425121061167655784224178924784625673936019360747463224135882820075186984116714826029991675051839265079134266215606109862353604911020768423840609034912846737812997059156803043537299724851286892618133826049860609788005771015140412911435157182620047807407854420815661594687527721133394033786532270585827375574168258652912338285245667513374592190102406155833806188444587741026426205122735732155663794138882641932382061752422813777025316388024481328961534916079425342331219009335341171964470832770096472834812311142898078603650715448504671371599980483758590292762473213092471149206962795179371864854878293210340758115415309819763002219970439175809744227242307531712816398780565351551495044123440607657350880401283275389329039052058593470168769635395955085848764096617367439322250050838806469729504449589002169748599682213538170573983910858464372163038611660139277944684977768562563777289014319711403427421373625081854601710654191139029962764720280793463504624261273289410266874703496946286355056709973016333211964315829035604598382908982434733819142203173565144465552876411795970042404817878975424162142096775722398615414859055144413647642058485227742935300608945315495475807295938524795376250570513875485307130022685881710116431955985804544062112068895195216809799302567275239802473895636727913769758887457624877546582755505330008256346923913648941358474028116012162794820637217684826581270397043618590990746297142928718405869899548410396799361692065130355478523366972260634155157439697039694772397143771919340281480914313521572265632598770233324089595880730778465929824547509459117773201932760221237207526146868778145055687095553376494282325389121947917115272583320244213513374111324208419962327085182419195072973839710509100949843819389102660337426673572332056813665682051249276205433784471565141228937075670049886624642948638187891656287412183817611431902844207277514166719855707148598363906887404014035568179564357686586992279802924147388547715968071800224751042625487610915426515826733007460244964823778980896609149746457900609810440642776043779454352540860734022392584046305843602633091354853912518817075992879176849497116890597622914780702179895981086256150626397221103847274797592784485366800562624437132354846676334681640823820570604566584170838557769233108364598526948247253837039764780675585650163418397158409872876742492494324327862148385301092996631324087013197370634891591801237913759195450630999157621242200154355375319205237766131228167120753869581321961102686218580206994600595809178748350082361122020275279319953086251428257719279315437591409931329628997868083965873905781391928567244870350549189184346932922997504458277423328641338806038457769534206940436599815639239437102704255881796405134608103517242959962165211143928241710111296811028394748534983361743025077207655508945254771771565088340513060010141516234659088904182008064100769292061078986645506261418806069106025433142610870770916748611259002327986976772077105084780234060007111171882366555697230121441317883680701949769799915743653982406605046555477740179478647455858132137324481870027291111436223092327583956760004366096055435206272491474787801547532880986839813267373678710375882363704466180615783179347282515617898736216927179186763600811892226501687606009481072702088517654573011963366317786388707289891571850078416353686557610997611481519073879903326693820440396254368456252872418799960958738233880043650863788195805345985451656105677530886598226403956175128953511544549317335073662590635691462292350556093748002116248660623408241515076509775973026271901156194408852960285493681259624198568975295773267187809925912622247736199126904347084183410173975108160433066603052862086327748188012456944312497071413994856815616542607434522773165649662265528812676739484733479069213183609200400432036939954798690954389472338065797816165738174322093567864126703640201200479641273868734699146031043154849545925931994762771601156957469839132034468357802483370515611177249246706751436403416933404502205082986261591423661356104488953832050364768036707537042705424494347787611745453857245919362220386201511404393457249122580618735074203426530715460037938223160527879685498231444495565194107135799280391306232693741645884490682258256540448765781042366855607951904856161086328598345318264143886783305054870508543197416953413090281077204793132506199968195089297896124516216259381409035535967759464815336634162586222398452813487162381457252336240462438370372599604394436416026782914663326401527752236201196691138628001980228510608106795859190066876033516211362540424241192049612853426346634896741097629009248346905358187507900300668396299907614002841984681698627013518519946105932213141826536748873451526842622264296888795782002623956499099107803256734482939487374031474878066650908850618622279003113764634275084165053325090539796927062168827270514029309197636888668904259375408838754001840792409242141102072613829888250704164433066330365805086588274454683645890444227238026518670971645910915916968624874483744159647877305821240809456662385026199079604637209513331130553358552327741938036479421612066252417611870610718244257429876410003812717443029608653499266946236173409897093008451629380780687535825598955196445432053699936872150740382703737198111759154388105460949627191806363236495582396376676975310764138336986680530934701863316745389656300523585011535557694703706177660013293010166897837324871374058790910906373909315570459404887283767353653190503561687500593949389705974767027744132328227623355277224742450704951813611236783182638773287687309623781311655831067884368625712444596468994058915099482947590142324750937460127438772485770898288698894214562591642740412870318442528555081650408914637906913228704748801296242195906100050141337223212080726916819444033815143892275217987530102596808805478414349141959668185052192093738300095991832729003551416695331014019852020688298185301718003970628007034916088330227839758516533893987890618067992083662868252435709217246998905381270825375118385141132015609520482676638682177010562844165126507811177642419193582798228170865201614304976739906418724066448718985922212909291768243772574968988567078417724093604005642952337073541002414205601854174742886015453692474334644384706430304916325538161935168844351404337457165145273345930781469805721590706819473934933781883173423251890358461325839759820380628357769873027897862691883847616130352828140269557659982723955406137586156405389170344446259313576299566755595648038611770487883997728021145657322028442045497510990869134774155639131710619595856624488214449015227269016927373824414769535780137959982820007459144241852550349015231773036311387027093781593255609448311038709279763386656164856463760220333939110611755346308773238908697383285283639764001696434783195982428954178207488138656204928317932407801541071105082090152238376949470234585460516850506734437929691548588346796831709277944468186484246103423282722963720525029232895463323192058917657752736872992372556789043828942905851565842495084898691488443774929603370852234429213206048075891153801681925839644776431278722447164915178833240504367056592985995659898011321883458859901819056869670470334595855398759658111122394965893511760220947874972325019969390835220648769870575212489366959048349331958582449906169231619835775426419839144844323225895964313254314993865634864847730455029366609003519350302696735710926560852767305472555552283695832394376455212597015708770543474299688988950953971706807966846292810820624053339123561346073052903385645568131624806847860790898852776023904767566440821918124951184718583830056713563273677475067508698040730737063434374264191389158856866171766070397790010770051073240623271203754058264349237275972755991565352081085587567878363066349271361095942211057540876345765609630602865762068699024971810297770158350471538268581102192754150041231687868020014027116322083551107016704411704255805161003167497762263050491960045282502211925653512748983254238039433150624969402399745560470925237922294842058278789504115242521815596918844891427460132900492435185783953588488867648323592655236169314578263052087343566362718441750016771712378845066322208655064628231879141462595423987671005334709405692559343389309979963089343705835555675439200422589540922716009957494281057168614926905486893881575070589395735129364489096958272458940134968430932270189168986195774805351938114354140004320378711594975638237551349870727990160105921173336664058052921779128400381646582527638695478838604982466696180900617323643120835134884235483902787358352406739037925122353017233331382003367533556295146191113323018335729705019113136491572430414161235667947113592773941068263998563754317081053714263996322004167088632001201092536803776641330921479189825155442706178162465437388243845304614335148433078551998263823787449567923507687243384029701764597960303078305060498717521950980916493926759530649905924052417836646814218667042555689473234437113653920387259833562715498863344564582716948421675599259685795004325598696184522912636782687243548238348239407318051291820822034716275303502068613251458642543909791502424232627558012699635482784389418334974354367458909357569729936426994696339395723526409666952691353240829162609087512032680420034983657567246930792838423854118186335773113265636773115598042614602946900298501442628285994110113132711318938283765103871502288094818227546059366301473037425636087532605527601421568426721981507453011357656352873003401871052599696211598293898782594471133408841605960720484118274570821436027704156036903979126082834159973047059381001176807260852131935848402402704916125194168119216521361651239755594439474935714092911202512438039764358142369259242120600145958554746032962188349450195326626024403035397542354565189821653820724500425201917189657666976826086078076533000788195163465696939782598670317419539637677621704196879575271321623201401579196793140842275802387841908917204373631062292041488357413796902194031126352162248496972788361274521055375013126902852732167188844963523932442024062236673317881809265882119278356038976932016875452941901233256517822902755485257416034220809845391598179832064398757315414984307366848734994351848829556590225593915586031023756195634530206453776969124488740032332632516834101310275362328057072296132968934318413115624010093745862472858110003560531599727022459826885663221520475206421122762397727867800956347081616661831019171637562026492838526993694561667838009640914338461798358967866395428165822999744561224501640040606397962532966021851232020729039576298085861433412852420460512587105056330232578765137348015186137487365909459433170623232611336270925056824441784086881231886754547762997881233668517404564405235029168162677059650762048755710768699001960450012161748464468913798826023398431687554775441300053829680706642158358021234267777559786789401188253840914749407255790269278359272976708748494846480119867222259078101467842527536109204201261786133163016039914505590538035213640318687252464707882904489185086976938963242267778953252299764073232492781670505636560794708891932954821923236296197068340459115578188518527300193891405163882134553252805500965651707761795422714787085820751248658981226357643689881418482015999439713118082257173706077075793738736558290366705145092004965445985040337011300090701225488399607094687101960483165625003580037676452038599703685925801222252004550442715761187215728008512564439608274475393335547872749766003425743279571678877227497430219652126229839096643727574513750522841881664507446588293088734228236929950028240974814946204440959014594767475240645064681913581912496349866806436768046976093960215250514966261267800650185367029526141171315411189474424704852745872167003323292744196884465354854814032352103856405640080483104059646716899128211805581486250020723967318992531392070741743209941682779471361170776453872027482231635109016493962177278877542872149307622840799030411407358886061209626112553698365405816105595152771744916774297493307685428681165652249176769830523361213571977179331221306189732953273990674941828223228514972818680510439412197780779211740984788975186120834869245974063000716457563795930394255465090956028547682091442466953102510986610105995986364890801295606909267951180777872489101091630778924446989188949383306867331361793436278890705556784048149741945584434425041281188311668947950889210125134664126610223223635837538883690827805637263065557716654514803290664079827291212239138242550377963683347786633644007860432341346504142571359192640739446683749032138016425526166217471872337471538340350912493358150283802140986901140959161432659665211731584033612163910997483705926761671467867054026277751973497678496669146576231534976731331168397428235330015924060248768920027573424592067760499094041256320793339800939254461275281567560230456189585861837614239384897778566713100158262928163255874035492670550747084042151648788282180808874311077493338287588668288364222708099949932973496483284691210063357402561845140262511459891652110475225235860362558945815688300168876594510067744211669556905485855617107000166236769803721058875949278091377282923782994916837861345448968313436591096072408498961733631533365202337398393229483226331191679474720846625671872843203595913169072950082707703625832364528278438723000318347384340765810389824761124138503585763189711411650341588993845215499418101557434941537110818603800926559009836407173072732341726126994105342572257851518418846697585907652761462302296900145772239370899168847190433622223884778824438948003658013128656032991624476152031995566674307180928562685525704064218532451968077674779617521486965304000536562329544637714671683003203297732542972797424923994322394538357143682335479056983467097163000603711382942854539755756915151798881598794697967122641338021678488610786302258779612493922332045933241068230472183632751598047558644942048888906072925010720010105477767920985594405037698206904142326558144978872836132577571181564814321647046122079406573665874165786745247410128770123676961954530560044191166722043203012276044475766660333067462469126139826398774650311011135678580397817660309964200391855161704244828127183416109460991230948995733992613091304455946911221953234145523513028500684473333294808028289776920515974084853593836985779545095886509766447961099192949265241955271953239106687833970907204398472516839578101555763755913517647668613383648780270362008062982059058159013887932962461069102330577456786201207282414120246805135559032227460451342768768875794431541024452741701325527972873167144073304685202491153081532923901089556271106020484658627513244135422555318774969932577237445473568401540131033619109358011648464577244181177541736051897297042050471274276793205614109094597044969167406111450006054943269244095168220899152285309614842507590157586767696733768969074976129991144022544917597793245294406305657291840776483333021239716632291472228911007919193978359914671027453913407764484652127062451385639334773673535019776111571059763871246696680990556771551699953068891170797210271410410793432424943368488401440478790879410777737095012869100682554941589444475067755829492802438001138299806785404212996716871667232208539074359675436483110946494694176286240498939849648010116643055318282128987184542713588890957164348072663701285279504741997165617305119904923633744777162442976981898331070260452424597921105608612970063485146575642132464755205620669307639895385291060437117586230080031507946588941126731249789226214247886834899468357134594613070144669789222600621366056887069787963266749244475506590838823272782016504591995950878195149267425838011663132893633952213412620929318430523962413460755706443068146206094467336419206072458026915304311732594914406744460521417987409321054231625420960311805792855181336975099695642816381697757312996475679939753091800515939908564742427725384567653257814054291145962357386608909279280098115059338323295599458788667172245907545527859947997105212047585721845028775990294242577795281668898077239933190548087116823451902538247675543106152654918463020071247683697751774808871520627488339398077352464276387134176980362213665064162307057231305964875982185040260777207193722228768407333036639511073812203264498733342405360884290658765041514076781676590988382854449798580449142999514476914344038741025679995755403054513041419062920616200028241827480950688593386955708471530171174765523542113126165164117576309244278565198767447291954852808635201713118443554457643454953979875254119224859604503351748576806907588546713990565605571821497068290216472409379149665715327281510038215619180831327351706251229060989063542140918339975026662094704333435300753083871949347110752016310006054034342423952434278165858495539532032935586889550295476107920438785559639976143348366729850173788065459320932282427868988764732529108098745625248947339337335509180569609479622616736676348879446364336143423458387241210924097066039860135879677038491144512387462435530960778665289488623602032041916530887924089129781726790543179399071702462817782381491750971257710662508666643555206217768239255104636824031440191334967779342712526319102682701679455549472736084661388956627561527777164235694495237268057707669746360252200013219376424219857147416222393556502624581301562654078490308551162886030514576805014128055728513338730421960484456651022058346894606211233755521639084479411426567042922735199136953265798046481477187030316665904122088651951630219086220869569504134419257831633070912560263395237577771278996973003951735205726353090070913488866383501749739367749362452417013648730001788866710761068663058907827114486422595854734516035058197323892701755887973614001478383358848364891997110476879808300139411696865968813676333420950458877856457663850586613088919160424364088197326127284931358156124550619113875436761814294341625978372937520613792144793492124754392271897885214031509897589481388492898697238404196300856544903104307830539315096788337765401315834286944341941798846597695141595230279637401829838055800060919653564961943871949447473840406910887277938008533132514174796537957035777322080333964232883187015945007075838999456544978874459372695925206557212949474108388172346983833603370773376741164773048529605330284130013040037502409252836383025877696526091742886790287153849108845487606719520426516535325558828828548007321523726787144341418644581297318106345946131125990598380384988952978938254676603856361063090152969628270218044840661848180444780051466794958609143722172614593740906105896461980579023820835332749602293991380107184345154940081494861872188303769430430008013759909004802492169849120611043757506130032604366081043216285015910956162242542161860236005608123269027514014354456164464432220237055256025892760688094398235663674981118097544872976002529892795472253134521265148546105209578204287515853134779983816813885786168739370097201586854384708520363895869654298123655274209016390065619739829443233608403164742265604289858408775469987877919303947826025028106362056506787787325837816199870700241819024983854820272073245305826377753215094851786757175650905803740230504826687122492427588897557724284540789411090561341330831183765995161286959787454215235369316987793259885351556767932919097196356161233025939482980051142935567334369772272413916594473531239140965034896405584514389893635006255762948035514384734843516331869019727262210972493351887853485685848570147459689052978177224828009300662230085525232326628167015847716174659104375994572683025834143602797366569287462487304279615343983841554294670911189425446296506692022471284814073419505988018246890558052956646108856621513180757764803073734257081534040458631809565976640250330645053126192042588514040158981694358239656956735491200652910277803919990605517387397918640421296629080659540021785308973399759205714102086115885584723846908496283829040385983575079325593861758605555628045346438686681366262988997500299919485081377325123577606784630629217899573558862634207300016702071116147691263385280899094770423378722925908665903549717295283925345298762277789808610339994123887595431567457322911230900072215994534744903740120928653320108651372120953610915720007296547637392141430886338364969740848189704730969563327947255533367145727651678151490208605182727156371112469265606450760028565177142868449784675917840519379575183051865761979021096651992563773740580058244969697749855449719557569242136056231012309148189972197847049976191774665040608136885573338207493091805149496191504333479518989272345409625520628892064468047900140774400162900484342431187636129627008711381498566100140062601700185087247667553064289007722228808969120857376764042500541634733382244987104049297140151074681448074871366530928137253732044702398872935659723265428994453827899104297600886438326410428840551970572560253872338981158645778528027739940955777958080156974227464153331987263729872405115387733194757166893368888884259008127730273551604460571416034841895612493731845303685614519750109675156197782463942229296047499903545867522271430557544697146799682170538233255048863107083414947325814262529472644549974575378016604421690072642033130776721841339182546130211271812307980120581362153546097439562935382498836786688516233657189410899636395271090780423997734499097001457795649612789791527074452953065375475623348856672869206450564293548076584837989233254751313854564005099954555087651245955179899788679136408819520353877799427040945401282488009931455450512836387386250418393023612442867501463946530678550389330927871040048016980217657220316638834625600090882032030875989021306645793770949208779890338417526277373456852347160865536091424427856570492356703820446499642842748003145171936232917649439884107138812103855372123506217324760050840509508978086572522997841979714629997287839875361857466877119498145252665195506987448257777368605105515366218251769380226995440995955254929955897957390994111517255441365577118743733328149052507281889358409885503916626639204952421262158817073707995250971707222316553452836358691911871832963620669829007176327044452891801253219891578503010107089435048093690516564471496577053767358390546422725991356578857356171179306555106199177423186635688995772363212479427823094733494330738117252257912589457539786136784815748407327116249200884047356374952931025078137046902419916474433173757295640306367328381853654309177211439855913720575641884320415097749414555282647061569733379705430410161662424061287230298958577805567770348503487154825715619883536957527093616219875790244613914308354101003563076982114650093998350791879330525404516694629240663810489682428059850705824948436505368621468784469426355813067960207536895655160967089301262957485705529684553741365792026612159018873118718739529655082852937536721812106375815339988278597491265462788465949297507141508057104601826045409776441974164131989149896685460633344881827114358965744151697003046794076125615649855688799471589789125290110270088662241008203004370645963687326010367307292721088122432396416707181911721251066920927872005435513552944144042835261904794701385543826970691592425290341933631340071880208879297519141943812651147936217838250610177973360460991386570239201534372458314671651607407722585524054643642854019845276339871761026970697269241585641427773632486126389034640013422656872745175253644245270805491767354483827299535271848779968221599747037394056284800629424887367894243215165477589059769270484659438678520942590899843290227550273885660178040765982496411628220319967721943258658031176369242697077527264698374821599949017966651071069357572268252633985292514678570683524971295659022121616743810422988029699673658852445325326221256094873707978348811694672823179520553260377268204037402683628601261380424635394559135912148212845566338595905598138790900920471104758253259726283519565771803668437847369962486269942714970398307277710968355175596200847939223776544253265720519848824652101890750836116457730619635198789615710215112169558858622168106106683194511409985983556481350625623541813841286077329965589380702743947489895278146603848798707530557920312508938887598718739707977055538984587162004552429750882723462672137362793360603215781437211717057428667665090757997516007611112252532636346263676397146433021032299035748664277166116797557151326280645919725679259016600533239408954217313042993653486726556198761221702367503289383585002511291411959150514729538685951007769091639696749352067178385562823306887664643582801927081136593034215900670977169899818750414743957235322879598389581603870454666049650294745290912603969565719574994047562095022453296173531317463774102574013658169978804254744505777529470462577055158980716463801735220650284116296285069770961055393157976314420496440636029018357662655938808066338540232659404585942587476839492657908187508859310137418040165920988931482116931811496937875132908014451165647119719281979628209934851474649206273289854171455007543536313131384870221478797059686705693160510071321124419192846142290641743255021382412734359586509744679185097227463438051332238962932998830515196346640031522671494421008498651646326557096958708097698859638373637194960143800075759246270631335653586990066373468072413194123724470206591470085631170154480740146147204517283464480415308934705314872182440845671049903181304866010273565620472945578774832967602503405584067346730761472425687501626467572484651647478661952099870201199726250265054917961030777930681309456076472276750948432631899310269526401480218939776300064348855781183412205794449894072249321905897845441402364319794423733106743659181712792848757886082887983918467098007635806945019259167211461063140373523061128496012978334924208047406570745190850077513114441551790925804528042108738730067139265354108993134384311944029005280460182702529820319261426053900587385165251877040074626998276217795062740621105122836733878704782065272642297853724701090896546316216018286597589706884130181650143285322700348537782072951165717558895145002757570083913161702723038248155448175288992265304870322332208476132562753763454234736047412924284141629521896242185915879334987158060243768646473971447060376578239165650251945210883776008408433943730088360437086196523295523839033354914774285544257182805254687534680739634917220936420693865716340257834874682810649142317832587980887483605914370220763010747984532693727741637195584455896615380819318247682462589483267341545486471941536281820179428372790454071930668154876956135040208283672432853786189345571317250063795413837410084889837455944484619548010788854711872373111431506158648541094227289968116957461819273834649613268031573868932451478690970899411127273858825339896070082326865874539129047931426389552671517017660192128540254368673405767186069359057541319533616791043246349746856477095362091862028006717591717695290714109460808112887280840375593298039617524774858499278017722567388232277498798475211035918061705251482439958914944764714888236586688471432085400059486535076790597487800835524710429429787126355982811173391361443860926160618860634274885204953329063907895712308949119752146896978946790576767834484988220894649897919355098967394011843237103877966053004208616738189665849732632558983584221578959037290393603038732471849951074779891211223876418185771767268550052602257809622998612809419559887375662087400877820398085478865595183375394146984354055856396945415622433181267963274881163133833560974285855296235191800854569305800314231474357488709510966242415359320061032938507429203383791518503128481502415497251412708248147525914728656489371489758542703091190688634833519369649201914320914246671794374139156775196097019179449559942052955953393832526292210976855441334315384228958607606518243111901481938225137583675649666373776336594990013679681833393804119389725890831299664754346491753959026493525269211019701936873534298758151842660676863375485118694250318165040680088004064650866548804433358783650660655168013079164630648911768442920639269900037326536625959372009660221926161031068624974944377109944553408688665977332844434191377779404180015923489322669407791721466409594886361302921744841975509852594624757744378297725629338224994502899061645187776107679671403938048601092590799915040400992054908761268598901656431692843741585977491143819356487715532806168373963181086768194667812707714806939289411859413658436932332710716434559491568325342401632404727537846026415338643958571030150695625998588191960741509093849929628082651709776375981205841472159776009831086362392522411059799773082864775911797229309580056259430233331413365687175638306619912864506687116313417713139941860338096444854230037572297190496955498614064327974900559197965686219763949480552099158132237238333248784332662746169154863327086932932562921276594949413916253272341144019591247239296642190259443137321330664516610643690716722684195387979559402609915973356829315877780374600579267355821924231472451831595668882964019435236980202362237446974813912293005440841325849837880787086864627410418334486626033355992018313696061112776822200050611833356664502586763961662739666575597696069682426547409260193727830408451575152292490311780885645731751922676938526422235006082942877398309975425456856785013089196562872663281178116766097651368128748488634299983069988876358389759098584311844266257860224816680715874934449862945658771908744373997635297281396728474366219931258798371222354653009043382586269562345600339247058838442832217886995444079570420153924116902979425102896580695031472823730587004763940119698652961280087793347127615510493791555223552800291328631329249749491401866225886821215535865105205750959420049559240556001877434742820236911758321819118427649064983520464759332015014073134845962333716609973557632037877051211820963700918565788077267327447823022029502033344094489109616472762553039755641460482492598199569406770621287798353619930584437180361123824442840502223786236288610771130369850351565628007525342182704941501836056688769042492033383492390927217646466384148977523414104151488234632800073736810694539672476967878378925354564320062903745053613830134889371417949590289245389229326121996799096133762170486836838708956387902172144259704849789294177793215235963581900483328388826732580499048437975472983538748946077908565695953715231725499055791638355394300334568825319598731317387849277841747635191473315951584793581980018011200645413039483965342359533617782435663094199341212395517968505081564030458022748812740202160583185636009382607990074342785604505625731280535528984722261482823298546501057496081448941161091422190499238292220968469365822741848945508586533907054061900071745189080467526573453502652849855412090403038723520692182686911111264411241817641563940719541554228826815405244787728833521282880797985676556557800413215649417737309155286125622677482455148511009308790478434314459917261002064296622402419929740116188575689116009045929156999892688332906145342034861255388588851283868300716701715673859575624274728863244886857787657982079182580748344369947255418041427407371238726277385081985892639038217623816803052599572907736994917727787224926073287112454079052036270984966735626520259605273843289443569299492622462175022829830738924977378804016987643163458289350950059094687641618152019947131703041588755333785880486388246491275393840399764222588649110756586771706046649325581394115970346853154911480043676102456203112698762770596798524839861497088010171759579202585132687931416251635725316691767520142078973367488947777333409312696257369890249178665363385867286872908461833665062311611198611028552624219255591550077669222113110420457960752444804209287709822193777060360530021967289833930262798392625476222819285052611705695797820588974431807764166481817913413718983202701846742252436134825045537420924974132712441840821014000132936725044618363022625737944019495573482063472570120267802700539949715920766186470091905822552511126511438406431365831605658782428591957470825878115932217135708942427446591405133115488772411765969075275129555439454842932509602454763504715097921217452787430154709438222063950065404545249966825083979481362872997868381179227574114133071934146686022753717390848519267827999093613534836641970057015192840483756453950224638884629442787217441922236615165523497670612134186015482248311417533492321365221445937713300169539496001784065133003609371926616429996784311413879190515965493787739004470612455679711187226142513186635084564187837635725702147055116372144444186530296135617320150717663111370932632726145737658670222218503519082460949564453762748979971804397758937138242763392889181619849509679145371392361983535765909038434043169708160771572760366459275728363501840756596571010101755829305091738299862546779245629939579581255945644452404715257379995082057715168600567565461457785266839335691198896761335177409436911226670466036244902868741229693662587689050114730597978884110731333434903678596034045395881929281574976042736043358403537655770677509615733530700497803136621992287993415566037004977427722440013109857173753044981958000809505131261445791394068649175482259923026437415500091138837896013312047391901652543957954410505090848177949710510638953503311348238753538415292979029573423026903287944507349860499382934433688231914206835077003898768313107984188915464241196538543435969142838353300750128106772702290601541869289728851183198207786195674326532468524638818529668556022410540440055098254682628578772516168207577780431752650881300437795278618822049140226420264379709605803830480287052833874685598557763526449492921103394365327454148572908720406556135258603788179611748955154754293264274577086814062648237337431726751695431879682810396583968430511763466248013479180604387562136374018346850401755209416239410908477042334035853000955536218760397430925945249406344796750407218755684240668246081871158565752724047080713786925167060888037845006771172317911366338299051124239179633906999595168540984427824182786321193835207063886866812281593553527526806506361893184593176569530303752834828384677364750619430710359785444383559307931288484871714343958482969988157776681652823258260753479917434270480021505735809427334893915723328160712959055704429446788354830271471698599670421586881470659414580871364458340735906053929824086083952948635164772648758619489659500851554470423857273505654356429618727154066747999511770314995844241507185527009750312440251559168225005036342335678741195576708266854486920992580054190795212649859979387021156208519043714606175095191231579909763675357118878037179432107246887603329238056198548365919427234333775248342661407336627010750587884827861080859371088000821120772167710320750587199498870800738472298575773746600055882579730002334202760168903213615179825008937487354083162009944325366069588528786389659482652587920968228184294306297594742499695588458030814975799841775990332481838931369227413737055167638720451530515973427239821714778817805444187550091044295176975745199392235097839643224477262088974584467715510920538764943877459188299066649348150260008783579052441093438570346692356772275755236344368327149266160363023532570238369459292721846566469489889835771990856971871809025011645154755409354653336638353941542766269289734851319776692224410512398521621583574875416856248028880689279142006855366138011900064999800286633486994171032555453136145932173191842297267943490915304064752749797769702958797757040513026071615368375802899068889524922685339081502966444793030609169255011436895800791170977196251504438580815988949241799384178318533357790254830589149159106800581079518056282752797586551309672124446185891352820339478896456984611941640818670934644100193409857258927933331738271076715223841903629200981797815398226013226412671338300461949577129915370226610330449873572013449797766756555269402124874480861412401641160095345434472638354674310817903848088194216192706586001437079713909791304591749862799138231883172070153807326951318745587603162869788934432372145769483273956475234005717241548186081702954166655609746538329142130237848123178216473623736191349169580176695174925842905280397964420496728167003093585490266202119998024811389403467467081381582407124252342401255758987219027844529847812620796181834401891659217821256483528121553257707130510909369506504934960261087518332176703553274991610265664156231421180955691460634198419848502064108752331874361088899824005634042871143996445716597164395155894381862610904112132137456668371900664639009644315871380379857030935234036430921288984429373070227669652629283489568249657584981534457413692314933203942671311691867219412163926105044320982590254952762884442194977959026992869651784744591315234773714958663282738998793602250922905513731043756172935275263414747672422906657375979916921762522012523659511808940212555921239088860366616895566617300356433375102499037911258030521363400417485352128871301568980392061954344050359377072646506335977753528114146166495804488582055770125442217733614241924538476472604128806913454426151047252587218267650324321983304752880946837529564554749171385943375803193122743103920908778274129752796122927498626364326086197414063513619663803532575934210632099436939014936120276331671323888714366554821982744218969588046397856832309760000430312279709685460580347588654841480850283271805050803467668613262938848882639524917673610464304998365859195126839031604823962558178946062870500854919188950389113427746286476626424052459902335024627853830688427508005642707773692367297062154417157287629090679971671838336630086046149859689969096064607635074949137140293997348396234393254269700622892262800131720210060839419244448931654720364202908725073068437992063765942425068669086032660796321878280005416457817219194556521816822586852248731038888451298310132240816537566715369378495547883881792126587754642993178317030115249985720225794258131884565298060273911401721914562752130037241991769000845586945584190941196020891202566736388214139285913081189740321257796360036732993552012405369709184230540242106771561650019947964850620352249341671421527960267564123750707764601163633441300663772892977909302888833404116893328012147083870922793775854128159223649197101051874230187046495951194860629530647800235880660219797423837734703292864363772402035995666910354703748862487218348551143270165473814171292546954620287094587239999027098001453789640134823040491897360049102671394592591915039350151066705968002255427043664378664257286230243546456865636112080956676541593310002625578877016160175998585405546760049489879906903896769150795193976931913162956191281245411538273342592129254043509688104435824702122066454416242817328194623143291754366452298008532235033319973373704189665378059740825728296511209471794771344673362990539777853355703455019198951778812207632042329740921977858456192948808567218205992117414602703683126722414447978445413221752448354079381033078157566653156285275633215520975175897544674275997625442935193118068250592323031860934973121847372063925359952716075211009242867165864881351884215265165137548559368686786121064154345535568693812633934370004852959216974376289009357492875672772410384206460861912894104721039228040861795840846000301995851071958205824740719034963400196955216150428498036954808532678306264326003140207097601698554886664120186502604318645441925980906745083917665481205026716157527687666308741228777760845535823141611283730802072040337754610944206987983873908288161636171806353362928752981786295486763245446171362064898524822302668311763517387499819671409546906126889963471069951458725900770327313789293788289604004965537515306847691891911017777705143420362117423552654468278122467722944176167612663009738909908588963527749873395588544701622722846421490110734523231092755188377968680132178990029460305032450246344647688032369662298451975690707487159546397952768573691353275668778436447346118161732911837896305952073351882393853707407906043784851212620407349788174815797449966642069247128172330740584288382242515549138935378109209917849898387652127129259802731540160061093518565028137426575231905820102162576288428946815635379795333261641183205802998154990001880112889760076004725127272771238561606746986775784228331049918276117653114206200514372466695471593796638624872339260909433418124332005680215432120469868050414551711095647040693653308926686948305203164417457014971281131585446757489348441240731480702805808265664872170918509738176869644554197940147538288909969319747910752760395039675819112487095441460988331498071965404702527632653151888571967169048144669290107475696545012136061271301606732518676076556456387388706368461339626884965657437976514897475142396700935598472157590693971500012133015738218173033143032571364301332405464486987875608141635099335986353694693371637418474013005993465432122671014423172566084703029125630418398919504894084079926084466058136516775584960725796913363701031583482122818773158828108749782372045463914388977575482374532149224917834329601164613432013946394626525801789115112736991828374619278279081655942665966376609364626325843921786549901563054360879152669527377133316930838577107848185899502700864350821444342860842095905394838988909228273252623473548294220321867619619045737642466128764516612585179614918912548012007838546290027306535947350845448163454725228702852905704649910974454988240524653034987913842961411433184840093775110729725946897506485488472736381006194362040148192956830467525720951788167706162357201312334126430969066176507813374588355382219625222455859950642034509883223129336071216420396831356835679952700439603424769245265029556957497735009134576846205430704635048150814843103279867872923664013494591553636634029243411984437209229543834047374472864747937006643967176997958140932366903864819226423503913470643601920139853277288423654345259819763477365403093178161955891110489255290561024709120269501930964092558546895761870899607820611949690606518908756155131664799207120485350394002465436136186169383019997549737112820532252721482739606790976436084149488985826504520564740443249048263647724602431355361728052760321762468021391015615433710744447624069095297903256637511913377691646098212653462433674863335686872336947616618709959087065139044949708876284846462271167134700370320769789118957454486024230145353426695143873816684090139698644214924804961194165476412576023142440388742489652974495544059793941425385669138714927204177129860246452177246860032416659817557417283779805608578193448628445571232476822381129385146022535669856347167088182490981987426439394920151693266327865423558331069987815771197454512774855698631801290788488586321841546326712529230019720693963686203514037494410203272495642293556595617288774510158722545986904043900015684480118520309822920169344193390301754461192702938741575199002259365492177751526506023799423224960561988484920367821785357818251851151871596445591262755985473571069994071534922967896845234044567522501139213839471688578664643770707846690336596471055772942261631682667823247657106026477925497901978114099994737657931767738469071054927669027131366848114957027278090066344127302785144205587234401409127952097441468167545494091352627606034321396348881077999429528837839104651625074283184800156575425795494531554712134158727647672354245417920900400401353177725919513322589282106370478430385438991390435567431362025724476401498152145429359835854330187131685770683396464545242661218607502528721931414361181739337671121107088793523862511278813061134819048286857928705944499833834305642893458194200981731280058849193153560795964571077455025530325836077697614614462247556300941756549629450052255813611479670126763536848999754995780988417811486844139554536938294330329566669786509325169845442365521508944387433991047326649830622784265206196892028664369959169920507326190605503254347464005735476619301900358442090796888520839764547810304972266665093190250279470335325491589257049173930484431559822974145796353985993863086466597600395362348867760460318749468433459106641808369139399309217545159382272566002153606598666050726273569355997740085397371479833286882508628297217085581841917236908963253597017711837816521853569830218097458025545532235304380823010879971872952997922548506774029900104346287686094807172878658717687208277640806916958568060208020327013669555016946219896514987732603870642209360827336622180756009052440593326278971385798033049289554446778542938870853469899383153716370550608362662681524349529485277408726464520203795237732214312739689015822872101565595377629069911845003462214235390571928466803187814744015695264285112976237890860472632974431975279224755499841878781580038898749652202335396064140992849222162024389551859631012632825361587832760533304634615780320280477103228943194128742498122548988900551652366813439774681107826713086028025461876390470272002986615453222059783267400342006375124422166255120747702493842899022727086823626063357852738678472673526724308827436682413081595299763551006666337343908074223378265403836270229343517470701422994896866526201541951064627667868129275857777888979085473519795370905581207978020620634817753672452749256189717244621442330905215445499070183590931580225166775365983050549019355608831604319063317187073815459474766797807291083090568006631844438718880802937043320477119752831305824412742077466983486621257003602306391942243892955461214925222435663068413166787078619325438506621616288430900560908370067448051317990861160571773600221729782161598878052720452776616606843996044459654779081772834275875762741557111139002517147418918479684446848847278506238554985140231120057529712358496983638077583989298596763040473619031787107351600035731247561498483150734330022763837795930982413373020783905147533939537500885023788372751470915250538433609518089042195535363831668691207521054578101280304501674122898044148142469284793667116599297518072561269828646912609117775522750797462837917794328159323621279911898740127704744407468398519263698187203692510751877333632156694437318047048233793385334598202211995630411766904918517894846026846215999104071126232507533917070965514853798164182102718348208677116381222147535133304202724895361310177155922372054932029904766096874742655447484638070077247329060177618409711932195121040553985629018816186078319708867400763225195409971654515838599477454067996109798544791176955657482867894819949651685537074482395041955510126949298536945707046443666141587640406331428540106870173957989378766259332753477703071153410350638848241369464355410947125637578209989058887819269136754353064216044403563130887746913611449081798152639439561036752812655244230563625282087622515260457736796049710541790540035496401233661942685705910680421474290431269891069017234175134002715539533758110065459298197425731832777976811827727652077182339155420225332496075416964003869497779827098324761455646763725185392093756534273747379148007186332364729762966039668264215421148853789252969725602590099898532334145116933976566264802425492044354890090177736903222898331488340204056433665417629276076868368239284637994071771265879804431137531642078369591433595790502375610502737142449652581016022668427818773097562920269020676106179710580837569993428474098062196343684790048640729856490759572687772191323707467365944877335454379214315037873012210555539877679536228545015202682235098389707737468628477794634791852664560728422117068214308715997899593008808460602185976042669711470072644230175361302241005095600975293160110149350613853434194123375853618233994064153647562853165531405487737268203535425827924064155804428072211254016376707008185948166440234579072368598258604226280804677139098754032066144769667449091544167791095537897611913854831555520554214194822712855453360025187890160578739704500387017197293512619037162306977868072870045801460174971278743989571432785064889910870747118086055977143823058206376352799920688978354376699831334442088094627058686169139981774460763424413452388036596157444789312648040584643692889144012101702579253753111756106724840826140069679696943900887144487826586215980499616262500089902343483658353064911141333433384803044134328272041933675190753145159602888464649357365516274937185201719443130996709234172735740269203687763562555766186896409121343806067877478752594275632608614613060336491630803944419598844453116726796243275827368795969181749627492946026857203255678050898391258231700245171142964349044895901696548443763149814693564347306228462199798052801964575451198069734476787356051153119911760055926107700619877335274692174583974371241934975110273994191006487259672764119335814493989135122718417390505900659656014113807333074214806983665530076657828221656782966454145975966273994974271300809884825734827447141090917730860524372055006060089276444875487730016610591847027223535025782526146071585934930702439057296117565487770456443936934790455227232253395596713982278049951511325790097212322271160501262049850992318142513533213724498562391180349659113128822653772948241624379869116729649297812668717593310664600159919126469881639515219175211120095961494606138690735134831994556384544983318143715300093835070221940546801286561964237311075097551896588384620811968096492138604546471094764068347050309228986289956906233095115636020021142101513431849093980745594729807233972779230390996637965488177843806380174064701552768136940217389058489202357825480230624720333331368250895917781933806598965310122653687160019990124229982785852513419739019098274021244828688505348883867491508181689331333010969740422075880016641085672164913826838149738502483742325492680178749972532734184853813609457889907822053692577554589670721693032300210413383721250410312604639768984668286593168655507148575577716576483663811597817777213551088343700375626391676701301753708229964958122510423430074635925934489777603879651994241675997077414328246767363609613032673543507604486361322646154304398098190200197264082609568548960192695120951883872432707124050218350889254878638924819211459255368333865472373113016802938473552959382421576882010623159815762734441768868700063459969376307406691635026659890682940776667830451602695646025183602235532099821275359863786776728392588080389352693193486285226946714897116713330084783606992011986598644224157130148351066190802592833882402288097938018364084185676499759412889780278033050296156776301424826678967680882540712377735279199870747956770287153464043785398104206376824192929548618951741635733847010404597890677917053481776756439007510509724414657228290396931943994103951233441831608897187326371299905710515412906444846058477348260019521177306998225046536129935897628910054776105511365413405594491676824291431745275499974163794119754743172040180697604220213244369220749216867631920298714930947799128417156153163554662520226211039645326047591533819723422281777595143245192253202914994732192833241807239978746926516611223583793559065782582426156231222840889121030160165513192807369024558473854230345837030012834856429156747944764132447975798115034296984748388877478739534197147170517936470169832389576176855262055137390023116420248412319847188749345022695368770332952116695372959844112984750665101064637847656946268900311455075453635495085095369226716781944276479152759400734231579008829655514848640715816506526365334171126918495404020411838372234229480734377456529166930005743529448343466282372066839054642715426705718939551860898267063885226440884146920869770972852196739582803182453559338707116604170493928264094843136055413744509584445038385602106410265831294921599485554179289851681467704258371184263910597553308348129378467848152087212074379169340930337308701499657775519353635689336834919435772947522603662271904859170254060947570512599771483473214073856909402199738867370197236776695632525097777512451436918286486418026231147899671547774521557548226468802407723084722860629948896457930608799340045254788980193535350274748216057118383776943099948481083844871609082549084958671618303047352679292810973836207357000203199534250055645214387272221310312035432164367970478117015592468303142872774509526587159559405346235064148879527328171339836898284093825988169926321211398495269622488636876590740576330666748555041593247692066255657370070403762820254810477507046630207842508899046699164863941758885394527535915453109532081058348103734028563983015722540856696608430911626895622066280561534379578350123395306005071145262382104629197835209906619223618564680865283979539153503558928521844554025084684435035451086335739744795054569503745011653589457920967884608659642540639350543206518921011551794184103268987291038543877974586180155839566868032172225104534878226835873096062680284360973256423644067591863694911487910141976344653593682083439926081587276988082365417529794753511091503400978672768685109964759182629306630579895642931064671971136634506904047603906965257891018429283606563191941399347812818017089212298697679935197170734434420158709694260400087042286377790074860185081943680575770215373214166620117791177583201734979610090740821509809660852609989999003901691992921322642841831982863670178229052337000630118415112547762368006458574946612281420866508336885949973173028736009442398739615952066537197972164840487851096533433909593460399633791792018101687424286571153695358574386889845119502666365087122594042703381156872106923864336152318179637170093468277064288395143936909072622711890073260584440676356529573811894724588111446496347513164651342714388295387318677165831350963665863059559149645485385872418525307210154001506741777223451524846094593281215498587778579098373143808205652806538506988827106585820878376885897333514570296703858280029242779224857723870785989696441314032263737545781064658500191472920577618658787496063084640840267765659260844445104009090963518726918713227254605534029174226737655194841092644442294481227993591747748817132904413910641653361531351309660517033730762880281896916061556302628259198202118767670570170246314217729773916313156850905387383521659288432095302707454754390678131269497927106794540619931364258752352556550669783784499301723203749892107063463591949766761381351553303046859180088066719329080434037278498998143780299403537301012332202187117103971733127658888397736409627267634692224778785343154368312283284668297822990440304840363106601338362283953564897067759801030073390179038271296547409678248483357745595653213770771793932947138903275993020092413854227303589000462118432034758325500540889533624679920957523439198798304650362232796864110955867908366546869791329909282808213813223751143034207869880162816565268893817964577967053055232364137661418239345895745757065021388368198114871392351284556489987077064851856720558795542188959393372901527705311756561696507103854967256691203777963454197736146829464477823279489936746226241652117324964027237990428233899216720728748817065893407528351629658375348111196425943231854301759962167345497311368951086047424903708325124021673910893396374010580498047882372164345735218668667007297450746679429533888571212038525812692587296806789430004518821442061933952909720371593199668896301591631948465590027366914876817583352717328119715876973000989930287608081477577041978828227001908228524232306284571630206970175522661614833366865833747211865505567677652946885457908654519571588170425481847081017887173647753880664002692002728711103861608520695220100959502553769659584694901979164226357442605354703103530486706240927400673473786255122149723173011332979297197836903443106435447933492948636636041464402460122635172413546907133316021023432530438470543814052478057058942652513855305559081946949330747745982247480505492571045835121272559746289259770223731688869357991548321546460258798859292172708497324945002306405046925592379103003716735418601519923918478427044953887605266729647570299574345588374976979765582338088015826382383526448833097230039349657024593096379611274195759076923869028852890746173519295715340491653625077868545664000871975972102281829428246690377979164215114303182752195295862254537587292455596482923056461876572834333785705864728087271241265954229029414381014538303773573528832609898430109065329170199160470003876052372613706796018308574974531967156788354826976271483231482827231256851471709079921805861733035270334085500952874042838691301082029334940455375334653596848447122380454824020189134206536717941399248578352420301156896608257178641674497915374112422965494842466755030379419033139221428925821635236078046531187289554114297689019599000057632605881530981854488102151287010889722915390825176363021517800173358354881557412132546390784758843077334470323439357461282319552306923601758642832092420364189344252929006786241634644978112152909783604584010020125575471330615559652760286020799568749755908177829907748873714368384234994315727865993616380383807931490341388939975065472055904051096613896543084376147456756913459527650408305071605736904083131758757222000590305498118484227538863935918315921064350963050024241295071777411658872043383345538736968465464112076761056893079902783135466260519902968500177788051645243444419456187082112555617501198011683412820010341195283948461036943919004377446364165849110523939886793102418118917031296103896209759044003321866760659821164048188955925677547709548120953941165829926952499438646449586557687864580347237579851597382753203605541897423599545897593922379735541467195114538375296328649730420773124611171684775273840474667707613845579794114375060138117590888190827831793228193979690441299804967528854147882209030226371255933301011888186063259260706358402027360666878453344777349088250000297243624393921076745665489341591675448664826460000224767692369919060011156763633254188310270471801835653142652551354265144065174355066967724466292121605034031867037047857963236276274160937592078963176048445567968397681290919151550517900795983301447039691852579409126939367174843536064036437075603991532182949960752537779619982048839970185397286726175306134635652839995077606480791317023172925525264728311157799869976193952176368135752759210850965408344455124638166174351943152308539396252493265246469440294031281127004059309188456615521955138626818543859457312105487831595634631461058279711982025410820327952619761292397643612295692347649897870697432253105413613811136555111391057010558989112782329011532807915925606622863168323562783481608689584758111695758681648485239292838220830178877108424905649967362088889352424778946894967942903582476830052659432107277262235342377741380857281711863330894947299169731363833481146003266848658074488981341549552931191198349596739196144562541777100641412051859318762866577949712498763384558450912936629413339807911261464390573167440355985589749973918567924373339729288951069100503188135261356699094540559471718003181716929778072750098440032018255580079012925781991074924528435067453111680185898186335259318198351892891452190758339288072124227198644999485929630095734493758919267430008409369598985164765329343337117349737785721794853207109182489467612619820416681914111399455144302810217241732059493937173771499674274107927252161197358704720794463826256156803853446193616697143324243659131295130177800916713933858685439959355514824479823622731323792344561753240520176653381846225455397393510402312878807872808486268062269966086215535581473059877851363255495987337616206381061077694043812406759355656385949586998297834178451423859913383111354070911142056191168109343034081214408010314613499435178914885029709270023635097462361785848119028460268369410159118817072819728464040467805991050305176173595370141342450019666893521064083162031005806428964274597195586225920689923882420923508974536540829045020551939977594864760642715897199096578478340005613190184027534377974845191459406367135097467000871236135045326395415456324731992040722028703021904224059295545848376650734584434949031192554992130736368606239856155756915412359540296074927525468785415021576037139820008735052163494290587432311580657828408339802308364559417242913126341677962748420142725707408979431851527660142286719324201789960744456926516159314537386981447476310461395246060286715697525416360608736696923505940865016758064557566064003868972785480338948813867712662881831477070222133194192430989247572935476452189374364404929100988604947959034681937894014918921535801824736417860791665471512799213694115652138859738440864128066845784072058375040542554676290691068497504017569840441819699433625210708197231805397272006895389827547479997591279609239773674193239205029435360675753221233775171915643005345057375271931112810865477519433274398308421146631401869298642298430773951818257245720331678274202108157800542722881512667030546006684454475669754752944285320104900253077580471151216117610381635164230988654534719857984646393898148302426299070652387399707571470039359409703279525279725859250525249691286313196599875660105126806228827960273161084734791913550002596100552764651482522170879260127703694142822396429488326946761869036613288927649456207130292465635612201948871136477274636285979145261675361077560914994719951415941557526527869837599614451213586188877782463440535074313762441805629571622469618851914864748828421938315533229867859377297094396342199946658538130912403259602154463846109507026031022029388660503375765072284330955470828426318149538915976259977956485876992186636990563540445754735707958428340017156531107301483351025855491066810716538736265716172387818761389094649570760962768009011620456444722062308317202841917627927066775610697113395771120778274387713749709805268580389161600831533270885685678708932131571349194202486928572918620235663165909245845992632342093310493239572431061619020355616988682156854062173410950994993443500119313346318671075520692326093507385890072136454067404089317858020429440732514274253559210134829358758050150740904807356721743988609679628371602966074383445362375868162799158116348276718157322987467191967636933487521297143654592354736359400811205016461705569560404178226993728873581532234950716220772001797665224140636953513331636578035480392860755764230444254526579176769036010042657781321292703061777649180160140255422398444540045231752354372500144627856272876714238702512469770392282847218211050271414586424645665956685776676373347715356160161681019679312735557395005360920887681062032441880617472722590400348118995735346578642143216312341981823276960125393623715074074437601463721464034396125237214025366537928116555451180223381872031941190101870777890949319272627910730484047339121919912612795179126014652574995804003389505312185734262145233928837931008572374391138014514682709370763438230774140716127939705711005283763072288550173828129304653353213080939533872942263608214473873650280592907317139090257110250240542453408228139784747112578998088317302621498660526719787244245505312671572555528492317444491545426827046177619680175999444670122429640211577825690775764194291965192346991628818036077287551834253290738935311648783130075083542625377663769874984573779182066047822318064887541073714765018586262899918366421854945338983047404854413339927901617514172650583647136590954399669348334713395000863867945839311122334680143499120662144882651635493944900531197372835993174557665663311696344794679138494416454237585796889153025132384524282953933663913945077225421029443486983199089908499556671637016092681899998204487736335337532796827689105852010684622738092482418166442631141815904430896486864415392531916922958882987280424484939523210525849171521872889693234530618836311676399446538907702022608076791201342099180498094134213631679494040742034872409567546867748266414890530581268939636416935835525922216444562661300680086472461866110909915453483980115405568946869767037153830195706048228751682266560599641878259704881510788316730021997945296700326187754707802594204371322511675478830390540716905239633142050687584607923611169004226846694520205122766040143146822645587228416796713463524593565042048856001659517648555393648416858460361779618699189159903271051653238017715877224222044561755507608517158058073281305519330034409649922943968336834453017968774869544270604625526865474835371215468344795379067774540316394629591336319724435837647265950064001779260446998568513732829145188852945876641978988350002936637831581467251037788137243023181789736648451070485280472039674732844706422126361088840613870829584583389139138488673373648258656692764302250282795991440564346690074444321740847072544297308583878253574378359716865121024794758483962876631366209467106593316466580438068191365668068659458943277296370262603882674203690323439109272008005909818228862733857398864165920582446891333523950819531373745686386366196071554672484815777837118386509860869386921369740754538112345777013977555336176060509818024062617547725794673964757118077384179470714379336275065358107548741517692835316987297328833152651524847063285896838356616076239753783677009384204731774070041497044502618369016212206236791919610938534820467255020270944309366343175882622185437339176171511166541420986834229154839855516958147640131868780707653633343825877085776779575113323060664419395710641874051793609495093800352389501719299802964010073120422404245579205150659251146288898367806422155971741042560630240593851682370858930946051267531638953181391605487410089570905657758473885782703692628701997462474846412896248183633176863577315373579016292622860558279660296522049693861498726817272756996917193545450778158487369354045010355420865331155345239007530793107502689847338629234734428603136855073578816843265189374063338651284025502540256262954233087726742692605940070488639516676524946960784923675063186824985124640734045354032634612543798236097839551026888728361577088156847387628002423493848773332209220182692799164617003025298575916425695151898456729024635106293111116019484176982160419807396331977079147693877921962577726386164942209862807492899572885347471827026025724283536799361101147121470358129963687359154175667060856805601255978883342748727101681794324494130019459628969939053719700359980034223045645606867113779499181361521996641620357723399026903526707116342181825793476064611970528410558555776464231484981930752720898936005796395679994539566442546658102652019478533107842439747548748618514020688152907621202901007268617794355580470527685184791245937231025474763847202615373508768664618813612445965522261648345393678565861008344681242139209432844264512768033750316516342129478517564741626735889270947399092601170463554216538541535384451703237631488648018037854805752364760949611762545835370642088381525200897257609230593441399778331683914240663888871655397116564052275595490092765354662382848272297970035511390843887810916995887753590799048432976573214709972911771191105855921054455205070350352909103405136209871756567270821164704969254520796436778238513470702716849059877203893578283571761687356211713286308105299003775575937768430958709023485821392682094423370260941854623274929336777029694030846577874700158062826900178314460348047355977479591284780447081061645795270458655951767455582940624144051521825383422051896866071096767170061445207893719126854524507051506628532757973885749544262338990309102781386316332251150114273200621407012241877531788671242825570015211936274191175519822270152353020758160791773967364707418361093770616025908872777880356206203478821477176010807375773586122365423604744943666523354509447287733694829047606721234926173552759658602731664577848754116855286112255102329589969926861744125167008642192043343258656743072182492064060253393245220538421221544294520935118215987802053721048386657560265652316526473574538783821789374066531066078197764209532575495156893533551398036164945533224168549193768798524076664112679046357307573697974137789335644737248065300787501075221378656876477471468863295818117110097171784112315950841316771910710216308160882385521571976711563593685523218800856633831178949939091110377828705158242570515278873004764015336830861507018097952634451149191028625215242487491571761151443778351553374048854550138928835525416766485893199236915723655922411377575757107740993741031185791480615458824685860963766045508743076857160371589647792493188953578677546806499937493229271643106935057321759726605965838702287416977020684373724086412878128155732966182101831278208853644747388365686917790112370592093755825672294310668481630977373522475127308103462477165627966720791284294043746143309557259933880204799844615746947955160117990292016803277150886096984499082593935166931984544568437766707131710475153968175151181660436441844320033765296304085936421629693603305435315328739958016716702861024149910420778537513426033657627714023985158002919217477211769316876269551058948783726625031239918938144693395022183508320144685094509821977153937212118939116396762268817424408009110922432226542479959505054541842981983752168634129817379256907459758443035094489720832685489221971544158336641703998922902117900081588939491360843572628994343140061889408066308820932776923988719993742751939805772357991377497125257006345082273087966603357635546151265687130168924944523106784381857747084450842858434577462272136936580015244394709703521535615621507696212085774714361684459890305355925362219984140834483013207040401045246954209888392643894466672366234647168326359498461548475942214704066924265782948687286847629271613459530649509005710546550756328918838815320965596317653395157534341586445154996815057119791433905355664818398044447275131363076185201989435004978080201459684232788888581831432392628857750758031442730217735800253377554709209504424696668706584402937468422394085068501611806009906395203374042537893584892926658714703109355305323078898258192403921495877987525227010227852800314420783689606350372862146533038996768859961138076275099953266101973526229656353075353573128803563771949165877747982589641449096426761233219003813543139007069043879016696687218994545343920615305266152937161256493174478204378651477722030611101567520481312539303550084347609276279712981829962669804059870217000906858595516779668771543708992282889261705051446243606577086440071585719279988846883361098549724664692859222710895445972108551438561179021844490934122091496685654224429451640541083690180807695661861601228092019277834503958037677401164163643238219601554453761992048022136131190772018030338372169261610610767734316165714191126094068725402336707493047265495082671041471109236350233112534056263740222676429669818930284397775568805959527580479971514171247558857749736989851510079659654617519430454930972589938121979879224673074440465744215285961260278499949733985955797518379027818821857095216764758695282514068266969148240393046436755487012942974178875852570897024585247947491142992279071368549994559593996012631447431830894340110666515841120576853866576915491887224962800539650501336850445836882398795815888368860926286315509754669414232297068945309978632208688793224989986079780874528908105830362276108286689124653181193474059384865209503164436780494080359091054099379848298073137006146213161461091341246966676327243230693469802301669557267191787664262614725750983281552607037891421249759634897860264256742433517363019841786753686255768358500786588223695944888999236663717533943680718913667360659772469878943650368186707845196488235833932823433253750145428068470396378498212699104034044530716658415801224340453188612654261423733305623273982215068753468386299100093585586514996829738371638062487375318560952533542951384924062854249734895735655074686605119432238130457877519750746443771996010879811008015635543802875337106529488112215121010168275518719087370879837829031437466501423101268326577645279701968083700147566292024626934380767376961956402496335825810431279577578374547751075147840247967119874967344538612625712785771200135029331748764113743704116808377670429981611076081419142433403378542128787567185135220042025962968793262670200334534806577246878325542038890624069758867544818798666176196227999708058187510594582150820748052274069083606833413318304023166683693982135411198517391195583348445614132989734932706579600753424589520420203939998829533140607568775485721017435264793877896658691906290315283350603127300334927514314532280114719618113515707864879115116366075977634239293864437969719611598553891605797741746920327131346528965707437726171356684465792433071891631051825632847307286742447800290061616722655455313628556965302933099251383967446966856285407532211148866732798846857404418761097395589973860357575130774836534056814988173384207901526012154778904048861426413550961608401258956789196661989401210514049076990413031549276997290002894156713681121761532971506092569289513459748950353664724888320956553380001506831164995151477548324888916980610527605862984459741828386294512661824360555244074792370646752942605790559809334166689237434513971121587468103139476903020264585788036064964187692276171399781319517028578684933854271278823929763392692122880939058269843165075453656970607105796770837093753510367045278431466556634033387959181625098167266493553118844492864911739660243618580855835898950102975295351748537479587256707734676845026881222854212387801066831720082203276048775641299882020607471902743610283002756616982398659090018668792463467669222977285491447615024947144835925469403813355228652084980975884515778142035093465489570171839618251146946317971759800208235991954229264377882937282637022961355251777722135444869802382875022097613145343053376555827678783863093844789160144192745124859506389891224537465490568358990462623060858761361224044738676876096001900091054544672718129628208628056731042489497231930671991290881401315561951325570699520186298483055375469986433233345788343269257668068571364146143796808853642446897483916720569275541107782969131865735062771546576053731887736869604123931288976705120912679389862878727834591332751385521844159864369479330425361919888249927451676288965445975463245715501124196003468289461992143722959628309649676308763538031410203842881782279581700552838556327095390535400656922691987180853273254450482995726952720356891393685520320974912308529098618908657981779109445016080433744836616805984552775013447273216349988225160181453354167804137959872410927748946156116757799730631447487621743873536697584307780005977533047896375825615296407507116596641112340443274239671337158246757977926829246189564570099639979079104063803650047739760311226163754171583731859918753824805853918327411367093934165146120324207568080561559147378101619761612140635597262010003981765745681071730499717731557312686350295007005750718222567128635073192974418865614447000689151273655322503782544396061701359299635256427737169755909444024860898007232494278488900885121507895114347565650044544272158801638059774325988230212358048890711674643648458189611165554456610861705430437894657707973761247926707140901305243031886938333096423672469715357362222384440328170144966102696745795384206690869704751433561281004307146817995766738160800514860083348891969087891968248070999131176153056769729621508011297393525969272192097638711409395251068317486349566173806151828955912853569456460045720800515977422066318333564995140398341906910807789441734088275223541599204384761685074357438185797210895626446815563102479967253314114686115198370784758359810796580661861902827489254816638152288463395904001710642967901884286187715022068829015558838491913780554752121999798764292740742727085018249711860653097546256565849287974870220649823066405251431719122539215569462107308679214634363341321613719646792712880477999823201285702119390712764757654717649365156329720840588237702249873022939640071217470300644147120298421480640534428353649373485546686591932318355396626636820525341910792926970003468043483554069332460238776472576589146831693278635608207120104910390470550979991702985767982970486234261440871092368466872057588978903145761689433108022540134773680925657700219926366571366601654794930921320598237989971696186381740009084425599132219222424097544726938044977474420670064588209518382042500952468493037339277833968403641704895686317493047327316938183533760725616236322505609397066032263983336850971137428658709325870559056939714381227343885734679637048121522984685493363558514731021553037058607983021887923041747083773595675119342941803642583394671434985232902361909227269912632242066394995419347034602341106321263959215765213486611348822907777589494792262529036087326834672154489326001621163136002505195020247824676122782964293757124558521364912211816906711902493833759232128440350654209883588940704804460643649895637641924429759789916021027222709520101783652340742358641333191509457652501814452610478212609250908669121586036453363577371389166680673738860096759721766578179870079344766229196859510535850899106928862506151581805193696183687650714178848832697436223473616272669949327969400525672233443679564518335883464008244255150390211354497664942000917388798356943888918284355910089608439853656830307670091443651156565521612159507394822914137887848595532027943836323046099260574195523661795658269392863782368523264712603891797244976039520476060777474531422417234088180845712079220506529099324150698247612181702206870784790930903894442435331755889931489952749477070782363744717169595417678676902378898113744300669951807511147960450335562470400100162733593914816221351009495918874705630696285727561736345733121324619941976404982697715500756275444226490935584594048112093550252280979308149959001418763352456456244908397866526188597935298004447554283189696751885203968122443940827756309447672447344528831008449158648084571769685995103706357762329819324959894273570000864472005192563378287673630011892697132568411966086068532900703233081030206499894155657077087585031082546046766282433524759955416821644538657087928176406140678898104916252260110910004389546264164951605230671783600504467455442151605402847976713610399073924086352909474774981554669847528573147041291458752444283046736235283283693197386125471708851968046301844109979719458100505472084744081226927129590762586094874092319021827418758269547751584441994469654769509568211717319205013109559677118682703441846551807038056211290708004950338542752534611704858479055380011824881218835562048792967864898276873593625374638295772507216968607725028467804909425531014739355762138276571007107274363973725183423916125550922283350045931060183221923938363404532169906363689485234473341907463228592070862189701920855784226989103970650682457234236015565570520158575384135889269224167302778565738027394623473829458144502766418095798560679912907887580526046397233026486021356329127568479802930063568591593975156806026701778578545494293546661814287064247696248337014821786249432375472317351977317992565322828030021297890366534452658945612550866551442995041593615031618022555034238561048753281926170603440034898492430451886117654362943303802437138158814903618234352400043308857583726911690099203112837151764826927897043100991966326075530414577340923508199139269297835432408122269768933539615248656554641839128969843059392533419388912411305084351139184440850739026488114876792553641304284914927277177579395286786046982817221825181553243446409849724918479667576508624853656849277953381873657748291536371960900192349267754760630049110791298235612773267419349626997525943848095330146146352185687287619581391630390151561083860819587248764554153388970261924288594759940363477074064508240513623875866310509403371093555798398001532672270036178422913967632538355354730025214447920605201833317760734847822078775625331431406840331176753921159147733472067430630378321654305820799057059521200314494783757651916498639089949768729315421618902506853373705227434730471224112718965039667054386912634560986402504657507719673773203101086492395278695575589589866015632906815695941660240787206677205737072013466747800967568716029861357749470322294817780501644716717144328220512095857686206563577867717652229466606935142835669811629281543486401828603989214875416785961297674440404701417126924310007593775276407862877446624644371236160205384082227775447722773503093326925308540133094426803198595513298800816188613775992647748359449573359268931725266974800767798900652157850804382186953143292413958851265522471167686804525822482337704864846897813867826249247891427631730714055203250489497776723657317132803401060192795047169474970222288979572340125805418256087101135051222234953955622920982484472523839915033253777992927135972218544138248692631516323924225149469017810825015994473499306017431981632783630331558651429026249606302261838175622729246228886513716285205022107387205292054502117630307039095629937772661673465593656023644549011514047614646042662005738907042149827338132298447756715206931589558846577634513320014951319352441048690637841645727597463715184104704034380525809172825371729071415284012028146103230417855161595647804268737997525119739336517850663087697734953968035520747766797095511727274515506175813107996982442033213394457445243459090997945655891295678859457613809163949055987010282356821873803406807413897765116330591113514026197611719663415015116884491152430038487177014999636317464499317030609278703114097456561210216415664335375018314411654307362016725705341480276864789578332110054204330619000473386860928262139532612758555068147784068098941947319605278817267889535523388119770019516355425294231999891911002791186113667919840324425655534098693773417298880436792002256296662524548801505211619699528878840485650367814829657171740809585041582949556984083977082261088300894237549778363462886825646372493598036871752685128529288574176559866453382770312539368392206571475593059192884138554070930678802300328184399725608929079379021939804669073092077492767468310170206116280186959379859779476366671927722902844669059789889374345933836486026978844094332411597422706990492822545238143648963533595997399292559335513022042482847838077173662446838795881829789958040724371133714842421902486412172596649416588187092425823941489833786734751739295460001253375142277428774641856434162178382872617631079105477347719442304736392552697431599029847125195248601213636975408487563807012468565927329712527671808960333763645968314546604993786730631149742644387761172779225089132097906622724132866187802319300003648980465290456860459216640033474934072332702012101147461954134413242189733898071574779781006233888019585667415795108095705790786105381657587067166370445027329542005707732488868857192240265835607149469474517447502986856762079482694007229199358172257467835293131483012003606187668175539747706269966919465602734013873481887394483406832024961635738319158746933746465144716151907910961271278224144763757864174706095070328692412537070409039378280105919976951805596023951904806771958611486398787783896732321626791430489155499806879229016710394784552393546811208593985447237024658650364335138707449854091192374200436349912124776079140903114469077213878216363956209818893905326960863381666370585223661316812728906225473764702744255869172062820824248994485687780010264188739328171255749876091981357743753934183114989715263643756277732579050704083624317957058108330879040216907715470408608697866210073578038975383212843052411025429796384228003180262948620031029328158019606223747117482234698734371832216082091164369840657574514165838889386686643079015486010404131967467455318887139100217514202201638513715021645629566854522234650618958472519147460310278378048765233021157518439127965762328040245777102683986078664252416352826780095994066540662265460078691444347119962095447528487448521259874985945543243801554912019877641193988718155936230941998791790280934082260572209115456083082729524713435226791104277585167150634615422615534475298481739186121953686500081764277596328396690575489671730041106301770622286036299625069638410105702363146810571909601099542531366315599219587772409633900123563100452768020178882205949535004888277090697000088373052287281645207605136611320817656000349454258687997526447936935122927382920155354896603355640820017058078620269390958842385660053780954093007055624294117929639639302432150861964853328111849436398396313798939868041797664791974605918117786025018431427725987058208844330551004731996901738547467816632247921701124330158024577521493864086834147284927714010062946559126022983576291779834018462601984379421861200474395298455364746938690132483688744031753831311145361853744239017102881137212475930309343046497942236694136209696072909451731279028178570022542562289055431835506653592758542786650990576513095763456880869863682014840533095282981295047499020478273202859452555828040420950496140555805443059465768406448026339437329451941969517607111764857095291537033304460696311648216968775404836826675537008363023171959297523852016662926267185578562936411339718039742640488604882408633194908126813020262664643748735407666239523586882761798951743716242358162149393675976505399178488343061853354228077999731153262845503517893163877640600586677438583188167157094487605863399209418504303862522305828595362330714931989270991501158124448166077802166646633391666830499372032129162811795464922772629550477267605524267696466764192985872018033208227356972490179290425139256900396657824215691966950157738528235923453890974060829660788513462025278775799125857512848542904196346121142071477996017396145980492383959487603648045015369945625259312180820394421547959955111199714468320441993457809625364104509864824852976701143990342536707563151330577375284527159780068991210553794542676893447239303598077333165704173702843152781147936687256032981335188107884259531315161684361743503335385399623514070512410585840296780187588230550411315261366454885061721400236788839456549108708900446874372289374157457166769319666149518656585402278770840857901186862617359530893975045673217187510061814734676153126748721194267909875327281884094748824244973521149344764920650166538610537828369156086122923371310144888385027787862053641291952666285809626453295707924761403920836888268008057759760968893268694432032399022995964174806949741534609864450763796228427040157215576253963396658585300276140389528257741061847929273221087775893498123600743726222745610720737384859247027937872239237259203099951152064115390292806287517841554493587505974216466194001123725760930526444966608328668828346389353578673850209109523039897436362276976854652388970614316508660666707772085549607437302146876877080359312310143415803240947346475191459920688858529086515461892316998800915904687290279920706089517387937707974972360251208263491101458018970595189695414903446725462347138025361474837089064110385713026148138083895505930043336751332805828297946922577207073192161932016115167873856212149523825082214037455202166394828384981014462856516414954876546396641286697318087007326492792858463469562735631537758264834161541113955235168870497440592417993268186139607616387792765122628608190287590828907593103224710336565597505891918934538087372025300407322558982582818394685985651006555664123954073427883833842704150221510796765985560465755061330862067744239845046186830182512193715008089135795067398593974098646408477058963688420819831392999800788489499570054065149921819176054858434425054958497599094601005819497282372960088849137602033637939908936017848052725676875298042296792952256359772435063630820346930080224422249438234962528906543743638096812520706539969216410093457436371098313387337273329200372997497680677006819000123945173867977052409342198924577557737879041178298546999344510541368966596119247520196025312718059023422898936795742865533279490604967339312793462820872456467760165211632202201986704823170029931955085573777375636269206202537064666927330816741232457260290761685080328243660349898590144138666984172041521972752238571453411969074379913713877504567734681045581970178601286387397251348394115414020831410136458158710682056173558874408270724418077461062816476116313199581286662396369217587948091612998885935261445436729169004308770941475287605573170606876559373613649140602200686327324003359460715208773115419379042686527893004370173981371784412555116927173653870678616745066045175815520271016256097345776582704428395639306241515191292273848131122823748450994092256535800439471242804191816752430335067650414256845429527995712254509873015841045798365373902315377456104254874122925783351397332716764511021367309216014180317202598819188398209585899937264401788964299780697914700414063807787927479617723080129787334797929393866064366479632100642650478624348367993875064847899910428656364531865877422275608246480519210362369565802418561787402373058677096413068128994148951881726984743680429618453237849496480797028778932631056029310072895118521454983954942009660856975709450691751058779372010389543997610592218773726123678913261875428760106881071409764724924729040989690253571352749557142134185864544661472177710329016773073886488877531744314627552736144776817046568936993209748318008965542553353772109948588132636869222764119488573119885603886614086656832368255910005676074483518434912520714887439003631317063433859014612164324068175663043039707773537691847760653403352455635063893560692062033323430091687093602289883769797666565929977651407784865901378435425417030242999573630788963112573570831846502058106587129146408175884518418093418280076402897723440731062075789268496524548923519100736637926675583948863664579237041440523059865874931415601656307846216698041655368567870897917916987946991393087747813463560087773904567180817670980146507791168414675571645722754774409108928958619463308394910244426476349796636216228322876834508893255799021644443100668562567664145960460798790517267982665248383751754189901142695556897288484975108394794046186187958014159510004482523044997585671448259610089084522323296531570705029598960053051469628795471218404674279053942522208039710480148994431217473827361614395735324834447466695364269039338662260483920711395098813614531061161255136911779218631597251599461675582105203698084371850826753398697266336805979301956698006671886311234551766565517274956551197079385717297541922432567753209042079514304518362930341933714917803006883450210152687156914224281521731326956726455220580840421775831321983690903450101914234408589630075816232653043708548740186149895329214181021362290406073104105633502060286199217625695823321114656260931134296207122810179042621974900156649791772547589571532527027121725116949890439420507163384392836940354203600072416171531880005051161800098305597832073854869948727600193849189766817131882913431049875139162198494886843476604284645127799169253814859175685008102935867270041102690349963591149441335244952749553139620947544258069154788835107512156799919403185142582847372311495339999883224845838889208155066024745627182224408404334097737899544831656949883526588273922686282422591600862456711853112013915906635527502753687467695011648560754134795029442117011333993677211112622301205730433918214769752304111155823237298733186420107651409162933136619701324548551981314599549220477453344479732481696967080919308859890023634182121187672748342856027961794583610638377178303329694910253672338558098723572869558789205284732844326282068794297117491572130553324334586448860011590303369336597591103173882913183806599304843202600049709239681008084129528272703134333795321739579712013738186051160898090366549799004807023047467812410240064990307219769528140594651070304606541320031434785986181733907182802192258296411580405673025855607441825205609259909752227783575125349755978052395329897685363324455255118862100648811626184891132163989758391231042616656867989155226341216123872249956833285291370070491660478222483136619154101230038272849525901512346075993424432696664538962066529248730026294377355444773704226955995739421837833056231859325705395313285319482671539225018773718682428746225600014803820649711529167446967744031285486787418265018871832785604866839418337493803972414879536261951396617954596929230207803517670885658966356729618912230695871587012188094533390777460298498904798078952363970698311667498865863053935769254403736561779907171749636288221171336420761502101202471582461097044011124600572720644405137007631242084323932647408127994143952447774776918427943358867879831416034006130431754675859604396480786326683207580389702907227476902335724067350491972455484731596497222060632637340511093903659331831981086793239500039247484200610183475264397715991740465663345373249345412850177059341570240332264708589748297582651790374260129612323983641266616066467261627213996360325535626403475918718248837246665410521148204511123063916281676072166199578420858237877501223666877382038464125556898251373417064979115247018821119165520737679107502221754927666805764622892099860376513048946402619467036494514080520685280452280484117286730555639171326456925256953281187246750330448502317867904670969017692534480956170909386947805489985953730108152922009143562898697522394821672511901859655373971199523301286809191043284830558355020932442316083998849919843598890287544037001233877028833215328807707214409911875646789886768759162903557460867357427986642277601204945517907098651871573239837003203222427448370285977335490536566175516620525885866877317403498175555329687953805365858691259033415374789724723257737117471659255229091633198792677902579786717332280480011791859637505205644077882014149659772947776968244388840726480070112615847877474682050397808592039924537450296819912799609387522168306983618805981994262227971531965133310558265345676544041761691066877581813423937120717968171254772990684128732039174916628796935398926584486706649614792997834762171816865758611431264185123066103385415365786991331333462934672558728915436189438170251260285072015563031718283223226629803872567551553223826231271802554235972755312204500565944529167365525074580618890214956220234341140276051315709810853583060902151071364483772877567722533743643723706646537455348401208914067751962186086328953055491045551674940281725887131192146018864128379553894998536612065267604166489165768649509079177589826647567307192613218300895877554638156382994181826276931547833233634392097893327015344441370920727183746845422915705149416661564182122245542813920077265130867022465516609438975583464654761142634386386142688034131420593594024396089358198183558721049777408794881263074012741582139654813700553796230570161271304396200274371561847560345931940017224385887172167191560114132367842812454079903551608568744630417036219119404406598573988341279511474569348940385401088896389915939548915800121280647114996487518600034016947568918543810071619347474101158540340965477498134026733197442584049548639420810296397262674119314933417528522978927628566300346063655957168701400760131430549495870138418648749645910933968952972943576121564505999829943445091815559124483765221114710590583834657986364955141826156479362170887539165136000710854401641043526232282725791764928720590048108469862407015766148028575678317372135866037691995956015616658142661295963222053028745808639320376734156781205450703672652305210579803233536629621850155834772155211577746716006061486460793265354144778384000561079030627674031591758538318133328146369830890484048363112591766119524730858952888416942171060098356018828890584634921864864232213854757837253415516033379099170926063899474676262205385019290691215867698569488062010169979326188708809669149701707118357340328045383006942155039314156986083536791301388231633254320237940320953570890511499142671712084895706973226609427882613165310068605822327376835466495101010139971822845811662582337444013124258769994860067112559728062521071257788524125576430928739669510550744237249023735145852141173565644788566490708261003139659029798656883402262546292814741711733130955864398700890560240512962655277744254251781185825374213933641150617690960356851537549101700284493802816007506215480001419395123603248167855429458727279672234416473597940424283055953036512339837893120053700269271879330183848178771280994694876485531618988472727007676226007890268221086177186213743452172531712996731254161965009795010384966634949182498803379081457668285502660884116455237584512599584500983099089886544218919255998943419207270565877879969676382652579294491660437553864281614907263198502719189279096047502935724819672842183404489540753317434506470410104031034332142312956139160597367965900744746140890235848526157317116981806872466694076776708260009973541939980964073524584771143841831015066755761272499867492393307754215423847209753509351805801394160204390970612244044330476709119077051154302236717954134505585794450694003971252809133708987646114869128492830121229150243437112273898763238490603651235518530359632290447769368856209589451714175343439309086501113206027770858418801864287159166369876878825731559664836327078626818529744512427181959053394696573457426335328742828936327118527169590316002907626549785635227584576404948515895192208322260897813171030450956922146228405236112947368965911005696349316537779239460309066821351913525299898293852344823255533265520019410445404452516352880738461999649772351578765277324667269266722205290618804442113088986693579128257252250352993285688591505577327925678939949788160758393469152917972920278212520444981100925814002914634970660630442410160253109527167462595872348070603065040976013022037460625616462434570393675491907146812525873691777787493940215377017717034269780359232362696210042552884199751111566823256015936888761088447610345575756935078330423668175536654537176516170021431999030053644335283153335028402815844633236873994506241092115940598198767481381677633164791322799893529406805594244535990552591133327857545424137535907012206999431560959207250297227174594099978159500916646093021044034018452628566514680248721035677242391092776098569596231022391160858196588417832396465975082889003216630523916015921624584463742977363282722275719244266491529854720033596372767308389910491724333844825114385727577897989055807282317451331808904369035410241002763393849507475375003885769551836720734533535224373384125672837168918166854269477848520700977055677644601536405361542810164199781324834777443905963639073186844254667726868810014562185928722996320409173892556592186991286560355815387651713795669735516085922562910786895582752761913538550677409592750684147695481296981980573216312917272188524368544678808310780342919060160459362073324639107520297214573421169648683130804402897106826242157429764989649754267128250510404092479711748707358299323137663336028284806010887918061019993880296766168168936252083536917220966810641974409673572878405843074137817978789457931545224005358862520573912627547419591067334547767717864549898784909755583649295331090846316200973771124436579684920805672667020812170709929733329526479998946437186417652488660153186083535748052266492374562747805765867793981874335535214787232158107427921991003529725616706109279548037112780736285202044650222858546663310772884610282152553805799661539628038403529056184269609346758988648656869185829372187663566658399326949139731457637056912806005425265460212185373372277521411235442498416589375833949237426092247362305566303543684837190731382862444168457138315787288888422216925788037535314230012884117135783172474473616111869439927580859278107862168798082973182554890653918154742142535880458142078715822554864422511469785044099115097739084708731785255118594311077667967893324755047966140259045776615624867109857885047631100804162703078074611811632153037589902081067174738776589820940825232680790585672484050584536825361203807540575227369394421187843497786482556786312647109381762217258100624603953295819667099852890747369447600713619809756169450532163835811010524064436594582043471995605216008021357415468543768300926118962319508994731722061928039128483061740091469444406756672956158775583496133243703368188023228013522159592722113776090772797416695592890658327996983583170364248072047805190383627596960673077690661520580591231323919776541942257002801651388000215418520762889057016645767348370113085288895023781622963273774682888824683886950868448278894081685266425119520453642412566039411570488079055718659927132174676903189824722497997937862717713779558770253059403492726539512585894654151854611723637577598641802761157015554010456550202182200743902377771626034493300038199469362265321477604348174230231307482877891340151813062734436477462725286673319346712095133952266995447289914608196829686032534391885308252488018041466369829925057812220469466622169925987624265666290533612223937267227499809348799936957320296462498957672557592314381805061073180775570268713090476709081288352129873756103703570568465277826232749998948318279387981687159899919636360022798232344720000352693887827718561492483668525571174715869682676133412011724346355931081354769590495858971596793976180512261266617473076819575066244283379637758333961341971998377730867557281578986637307870497982809525259737343667221299639190694665387476391488343810129284825927164415021996752946866498895718559669447276760364742423843305099433789903457196379283386326334421533484317189872847647108392730222361834306410588212128441322854731352971132633155922506792548204513450277963669638894167968632042132064719594482250632898366872983822209001862412265018771727049415168080206182157964613538906708191311433763298786707140505787696537043990920973478035196057101266182738064684686582504840496673205367503737427098139904885348772697896890588246075752842556241647060498247464595910673532724396364653199404153175458250321661876361280673639959575913407698658776754350790652734588607095241221205847032354699949877511017313542868295958383014748349403312529705398076328404347669818188031333174999281908300003230961394215282646551070419874958613052560434225001695496262155001655004978588811058214469227664953136557077752386153539661992049733926947965021084615012011222433225193203984081297720760915986150535027944108608902636544575349657834013135854872294094035679363030818625315525073786102758061921388547409521590678775724633721105313003536241781439041617736292385966566489338288979864714425374176990796529835092603921835804977763309225444425283772559967081973322499141053919561839027910483414041830656985673151673870594797922167962360491325496505461123998956465079501036534204714694482466991454147936303042453114346761311481840654868024679789969827060324339550675107738290390734633363160384902303365669322118893626870312960695818620653160020150913306769601266162614411858025571692134308865316583623333179427291703120531732964243599639468179866704990388374744749135245787738686889430879957785719506544147612337834104027590844432346949267110231475474173539752554761366418146067984086463106331246746226138246721008692301199363220433140295768092102693350206302801871967201612773471678158936706066992079660436154853267645343742011777299645972392545173414348292853075262644191646122533080621601773325991992630836799697266999470286230255877057014479646227728713938062929980853570323331889844790515065816996319502791243015085152884898678997198523673049675124168009366953957823102486634262786950704573313902109994891740229351615808616986834820211834521944512502428138849697954231613432613072645371771444680266131522094843316002241196070081095027350811407253929802707717260420170703189328675132904040819358734073576200520822585360962782550845054198448753926572828852095122283730913326359683029062630744490377634529694885034422467196785183563977935601857951506449840027884553453012646185731289755742799078703742084313145772104389460624035564378013864686594786705716715496387190477387623962833886363541120564528088099577871964411486913688493901671383118726454959833533878731974381118084834675554341895198665920322972694801212481844271519562256088995901793292463384330259964141139135346960794479438647809000770277829331105283602181211416220539175910185905737394113460198099689447623602347788611228946087580302169184335051834798462450510536068036060435566657369987317863517255015382474640022497144688653302698255550112390393779614372308779254120040625388203577729343597334015589674175929143893995848541231804498004550307110494718179098837835307395513802387212614600791736786256058020533395863938633749914030793018222134528409385692701481948765703714856388145109920951869354001796490247109289239274716802223931950449430638206636352297600726208963317151321554840088704829284241966813778588126843508917517725497183424926213960514961415112548581405254389601415223964021042760872532215575608400397745734888119932674108696575850834507736235221786657167704806323205343844837800384121898123844670344696956095045283929064369943710472194485826325865109699855842200762948633576660261642430244880105383987278274406605935197006923476020787636287001583526169257459618857582226083835850095944157582027037120736033299827226144239330312315679404060974290164707158076577052601677312765857150281569698869595912303510628573930916534708414812008115479043150809444014324687149193543455575132853862041596166048470732357127158827190969458453957100954599424906843126479090095568378753486075564056554032020096748461885099626323667512758201484906518730348145248767952572607469271966425979429396611357938776095648860182023393585135881877279876575204188386276575077676684689542512816401254035625314388491874421230702289883678454777594655134199113497024873302587614507586607350253015847252649629856008044806572604727260005066411025041359305986950178821391966250844955429950763174280760930057545568760159086000131723813174419281018925373525606070241686936425266989009820281150335378210890013380884724839067297719992414205062927631279137545917176795557260027882475587650267116469994665281049886194912155938712659635217600676029499558383039966056823416083410590657601095065590073170407879156754178093535016615405491374920653436290330137594353722994661311324533990879445357813520653358285910843895513962503845177459954777101941739307594716187830945007111919740268090794759582670448309310446445889537476827148128705776414473331782062111092144487485051865470479625953953875614744343274106412313289509665446376975881420658318420845867665887479042243094115880306858358682509732751231167929866086595373351933028361197202430183745790798873968676350914340835385274813006960620854988597118973771767261853369812930696624232825930479403603058935293162824343991154753511131848926307861711929877303575596478651255190654949297506768136442924768045448228526557995071637256792393745352468735144873405899196055521780502433500704512042454741375495141759990246288921215498757829090816716513336913135193657701612719831925059662554115258548077181460673010765273801018353453388900256896830415571241903993821702428145156763832440537660154775159090354544925427041037529801397467497603499823506210713621382242787308926792863189295097879935050395815131725455418804449442857883410796979958004257214479121831307898599761386999212560558514008871542894187537352764827931995514804599635534836895231660285228263423216260740280739874791180935470872774808216840991360234285743334470676404683921349061606388498187989378811646001810408091113620516448715298528912846020462384839520957363941681573689471791515323137704945004554669784897167722629563343880520464884733945593845029216900698547028244204511559366706683746130349623121693405650987454218788687536670472503107399172128636288635590343799219431047375939350403019271132430220782425767290965757003420676343426425255021837519562273712104900259037683136695853725645679268000400551266382277254695568408763470208666920056339491782051904837741116438364585228523399052124342181414859980891404564234217585073125605885290575224098016067351478983554720252776076343198528890280837905041561669197586029158888497807974456082107952364065598566077571658847498577669440988181008036721721096939552538965251529619204546817472598010172041317597131594108926403080046080660589301551288872967674465060396599448577346826680332102850921485319043323383014399021875387469389344849533743939882889236865007381735102633207127728960067438165158131399333153936898969974321259408160479814189797626046207281207437700385896789852665100550759989732125538732943469259679576506496534547655695005700999357518610155342924629910497064779256341886491657213738725802252597512783262770762493626894456395987909671925445451872892699084306953421056776796327158048018083295880214779475139890516205745121313102572490874924257649614387317396660270387087148351618482202511525344010539138539024705705155815375381244502363800327026394428076810509670201210300772061043757107443495863834035756350350589829227721604002665183152248412995428165609652277989927636003224163233351931852879912566193448694246592452798470657657573315792096008095738671522451239214263158156244504283353827903098265243250154942346974820257800206937115357610986315614597622111149670048731609479182761840298366310448276049162524855973158149990293590827591106359847534698491411101568481045894843639500797658258365634758422577627817008053066879270459865952710050498027282054885123894934976020102807157881767014106868859728471642798824984681947538744365536965334916840591399756100723933519265875293273378373453988521004345789686128588415534541727461563817218235487441315435136444910784683093264846861471137616120653405915442127121170719320417838259208680667369024955646116486500460813150818592232985648685107252813767307558762646833248553889693939461332214414516963441829653924437695214327863152123265551269044907132500055551661538092033255280054079309206208495260507809728632068222657415726882167037291456752490436228089593799856762138729861873938410894148034754500951249516261593644761214233813549749248722503439934003094680874720961467747269888536494688156833688677731701162952003002450516063396366296286638726634410284899802889022460748587347999862727327799132070221265837944384763393570575420251228431879430705197917927630062745531241512737512818367903073421422940210138712009695634984801001636189578743385269347541910945778114501596267921514240518093045781885823778530785883788453146394882201150792048741557693044374355039069072773391523429598370902095947946416948223509412267194761042164773070871973156230829851453036282921730729784216200662025506374961353921392738538711655825812408123024679520031970971872512571247820557412274390804484506129690475953059116796559432464535118257991543608752937178776810039020051013575235176044671846122441042932755723455346826674041880940271218100362381864065623427614389634802848642084864607744902942560732752587480641620017476596995128498731599743374904001714535588083030482997320342128407517077521798947407085959377216038083408476491025595657901403978213690775637286139373694293778700497001564164348439205984630575507016442405291095594292485553540241788543208345668612596110626505905987320315374153892443862920041726679155251952706354540407500382623681574255530196210908531003898875251653717045452767450727932925621038090223208787491360100052144946464367289624237493857605683942741960417985316174768558426629979049011491563937248339915186464156164010047636082773748904218332984310774243080973335855988180142470561306666476318809668057849433866755989591386668608365628825980001520017701215321085373850360391040936815131952370516094956929421136232361128663122938452708679344506334326558987374345671462646755732261214358200784618668856252412543164695308673441186328933326763392238426274021309749524594562481982782945587163778934830048229474693269829818392871040350139607239320167828980854298137150197334813303042295207514318965865684446070686740903318790091719405307577433265812979422498198509345123389209557946249438216653118919289081618729936937529977163404338565766500476393450363490246207531396427415655045074985023707687775999639574884399630781811379105487472481625313143389337279913845621635837215299248202963903763027029336280344473546098510808218330404409578861696790802780480916311755746799580101911799495887060883080979714207046070657294730493241366719588911348117958005419244720058979942114333809541052284249205643493444478797977489988205555572271710616318488222988677254501118486724718043940573492377971056986981768507650691981416863620135403247487706372847036368845084540361997524331169385810477970166210544535812096090112100517243038795424491226715000831318542907898330256095641913168763402521025535768093930570618244869391111694113916762057052295513865470005230444408243606765510403248706711501207285270551675863513749613061899377483922004339410261100334117231604503300160848977586209713204634686779465562423862672848094552483158020456067679229558406162766894336519918981952846972214647313703417491670361764504349501454156819474109424008767543062133761626051937797144921783105714733931947465661669025780024633723593356965427902580008305353481339926682552788986281336722420682721056365857570707888134416507005286103883096608653601897547168798928038318911778178548584728295813981674026455133837178727685507105715978294492181530789429287147330145747043384205251776623957044054186382253179457676324553094640770901789527150219392180151842166731567295945853680710322772066741700728829681996961682391797870351631499329164563259190885580623490505854759686638426358029214410100416876834078566914357241776319791477171582403995815874974514466061754258177000161319006737916749646268080793623047867414153854604006171267917154021188218960287551952929208628967633833156729741193306973660406926655324083705622618981893889263653456074891326538752778504430728213103539175694646942121608170275512056490697288737853463968196419643403057797684215746123157800409889343985670871972331885315291067755454600868804320828987974087120995127208794147134984072957119590453147634224768307188374914304645098853722757637106169501115273763061858643924190739081837909628876649905412117684134976662671309416696641788429863914252550788861177217539618070293212184885242343228104433925124388760487162875238389680526149720013917250865939200158888909144708016997854125960994055182479979245143504891642389961354777355413356359374945362546700563530335645639968882221319824288245894824730324298977615122100224801280878931634479931914109435962762402843023202001428787481190398613132127582859372965420760843259897332049357422345709987048273036199683353194103001148285379644074116064733420334687847409785990934488662154234923533995909112967778783354551197437092502364695547794826040663425093362331356305536951906277231098312087173798707625932328806423405742022154638148362663393024944112611741009427300931198654843642134044525333987364101679602863015272554661707766063848620922651141517441270047199365084913198045738698258326976359851964209772563984439647528128413336238868625642338309540109578886300281861527938221709560370824369382223552081989946663036249027182975473757088505006491043935249821923224200785356640940360357308353270783437884122210534918259238971310078606232867325609604963353586786206201515359808342773941566874162996191591442975614288901310858171821068899404979873886625456816890213082177393983607312646166236485759917806226318635125779726449008274460143802447484953073562968598828457387303220477175588357791567358847810679430359557730700447081886603266748672164319767317430618082718396089863896862030188375873578505676751510188361385435093800822364978934453284057441772998496423993756292331986881415336564248326995480676639585292129935072146508117794968301306059876640389550484776939598544005252520274695881320019630326245286374583294399856937499675022818020625937738730232203162290129335836661983011236029350977759733509279100100654532395160815862566779658170737135793426559182127621008005925523308330872227513129125697307054770476216289813554625726272724656844693537354117062122166388095901022200856615929132587155774486948833021422187351196936500657376611618748019922717658206525035063826648001339767879898772003747805201076898158397615803865224525543427607370301525608814378307237915901379029485082514087209960708133109063716326424412948474857904253785769774715414871621542305058655204058720030459936810046783535860273188509208995668428937030384749624016353318992388072580296530738863302430811908081085284762081438988564280750567578321684499939516604519569219323676591346342836278579812309021108832217986576392544665425906347003019581553848973827536293327529255114080459093186377906679027505186007694500259201138995606771813404798187701372022522578062764849374025559333949018763325911874718812623933432580572620533204049840635425098555259089480890462395459903711719434724203977958985607639964519767193876201883618017925610888290523877181562469685262842067085381979720536819254451961762170660263601226630013928201390179621914820141612432970287773815608981968648190623362174115213626965124330926945800171748728396818469514443387292036349550489455971646385407351744185417831486116134511491258468364298823646124297134729091805360769558435404632791153863184605805642204803594868746130908187380944861147499502058366713192111443285685067156958330401162117938711399444944414139545568284516856315340984704783852680496793203998798870319936993340363004411140098592451045033046990664052291907736718182341372800301739254664548880305320463311333830445182187351118743190425694110793189465963535419353471722386200355720030270476834803069630342784701542832901488376245232524802668202702953998105296268696158819812569463584645799730015651512985734196844470642964623030963667397650446210631235360136033034343934586486617981807756620618820472888444097715998653819535163547067631689338717701497145263833265433766859127108563136049701755634162948928134060423396030024813435004933375658996239482767327679977332434667590514199902153387218856012184634789327086955360097190933832966886508303488171968238228846188541918643406368389826474180688787620865879448111496868207965715098232549595828603895688076813661264738196949451089388475361492968660800391981822706217843539434661949896543271701597210804828398180337047992999613125468982029501236796787765063455357834436239650168347283935848083070534647708990167020548598872809471171991476448567239776826346981932538820086830613343870067157506544911948979695901639243743830297829486396911657417261783842105383216643868112191605946210374032870551566305279894816629806375306697957601015991403197074173604733356528210770230070461117804251011072305012985838286109717019379637272856664043683818915289338305424333178282043473873804950552491173981751774110013419644618866254031854880675298398867822895835351149307473332891170661702227773435272401282800473116922270689859779632930173000334517229361797164306496842724846263957143832714524987979167172294788907919239880274924529507592845937239746231730964986414117133178001108610895877829669157901142711862244568876148807345798317187403578234854888057620802941210335588554876455752138647464694700466958277363524527658954204952069730259759977394478771285918622496978425593253114903123983349216485440922244715677762079460014766832055613093713954920031139527708458125477989167336791607465728711257019243949795186572633307513993027629446702197281285062040676123613701473225392970035521697487318010844730613366150645875616226751654127756730112883270560261798314405561831263120788758994826892260799099414693813994466788710277868867683752663873402056626469795791949291672564194040030142265991086665999733876956556311312447418044271129699624037306172429226964366599851663583454976342180331706607618168549239390291610477199517341577344913711222970878841850047099618418731462643168171995036641551684691465366566488749188765543465451715419820240927043174028638337470519922566493197622393753912493343829184956269385930220526162422072528426834187703113807097694951303186994274025088415521394434624982581103052006053946281306065802823461315109180010656716478831146156056705101994622138682263710457857171037900026794373615514404202012704495897214152106984180143562352864028974655935984531328431911443311063859011206495278071918713499472381312098304356734053739220584632031439840773109134162233454883279155950661199231412466084978390756524889708763649722904020219150304284600511578667113978091783175393641673364385142823388500543957952321081068166657476405233483112247566105493429331324739538411079838301931576734857414708194384304441686381254526199880134241215265819562273273144970911480369648811325090135772101970389489955900132372008586684718498484934261889935509383624140402213178916108454257235350511481108818831077878608967499206742560659363267557479794540772792719640957962352455248254182757240225144378313366364880745815158050934458942362723352695358368734233773335171162171641352001699850276712171808838051578614620625609306786298206591778702618887170072291963952785051564356124592911474294730399275247043527893206661257841491240329458324266888959611245133792363844530167147295765180199299835285352289263096788148334850621168012441285076625827187873149108273986764642312405957655064076077110916738432811288340715169468676259019176818586605934982436123002928983319181746739712557091832720492266119176761625270916806904343904898346098974610234838667166923265089234147623328013053207325330124382070556544238368867827138179617440975763779194668879403476026948700304488531068011439319125134734216643367788075120117814307522861607198611007788605809418493849692318280368053021622931125596990980149372420428604869297422020995043019136452217328399438539036616162980408148967227340915664109516496092526509408958121241550446780924198330096657631428796748503801350070773627182106435282266197163802286524568279016864704423927435574587978965980665757642653204110417890741227789516429928673789981028891342516871585527621096094635948233884181800559616778172721319202129187746796485909538640781660372605458894113376773266481680211433279800068952042358190002832532487379835540832263788218539329283354339428642501936097367240066066636460862444689006452441066656706053702401407434106546458418250060016095676361567427359616951322154056899266084575170457539917887395269963362735441621415198609750361105139481803441973211476364965576501004804936522186177776886999779635136565561298048576793541731412049235648933454389381990817904830523526232404825558864573577965818103646309588040394057311042463714029238998486849062134531084764853130171065073078475227968605386877652518115901392095663570835239000208361143716101096855752788110451806266363451585093247538938399472711200123780520504556860281929427516780974519818549093101651456338430856242826546719622244575445592424748913013625828547793353029412975418009853168621413187592724721681482521674259169425595672796350983291956143671467252490304485603416041801012992742619094942611436009889506518192711510280111772506486161051542070097869183656412744228128586858999759190408068636287720002368344763790231020572543625661398492983915944854490723100522524231980219373661584167880186286485383393250631305844209887278314833657832918686887059952258655466533629024574847115417777152685375647727425461339111346493673260271219807164312872641865661540955471260942168786946016821048375852965931265604648077031861486733482841530797290390199679152874809892954741352625561841097916952986008702418932999000405898673985731120347010415521930221698393444871723475187832581949196792462104086526974266441964989956432233275954622079993118800451842418420256811811271946100101445736925076018685560915605477416808258612973759559876181396525390636118660762569361643003356395027846285469423581268308393789128431795591249042884186746052695521392762624442266604159907212747436983602842628250312163407475997800023463947880751424364127045146859670173243536399535255355402461832566599478141757620353087643690475242335665434526347710701430602790119592174724083450305156682247373915282237524626093203467512749087878627243244880200797759135146066076967415978510492747263557560685086578381610305101338116651664048132660127702296274693510290655694262697074516645116322849629748090496867030649787880160199692428907391489225047409394723376215214771761529047309091436977690006230902198044408321997700185613102111183481673660545415175470420457347246496410123430358938832198379079111138357559584672752756689803148789441853479533333043598214962507001203524569998445242665688552609160897121178716934627236800306685812306595165065465026059985339219388241462390411754599476820969799208137358243028517637864650317033296959184098098039739051272492673050265902419237599441255526518998700885957643738559524693550214593692546652502101454741241494200524054594330229950685469108664862028732268207784434676428264194055198425496483934663006135922490385865352448196079206633297547932942774326783092255871506924338287905569496989706508438278645420974859216771723312441418819513873996202665440879693990164470414154669999413495501679930714990091726187537913833321459765774069448445257281430730512142569828824721436305824605387276356059294403207144277791824309949964735730857802688161987657314670401687392252530893351114261625513814051175290300497167981427352607146612806564738752504550424004039397264728441021005183222716052838388292074455800940700835749744126620889353748619427552484169433017597288453607923415320549410666557005856778694834681626456744087283826160775308438024777016066990386152273380082779799113113527672938727718394572523596340007547731620909847480997889796120316974129751326166752070521554020583428995289886370512799915346035515746891615020238646388031534206984220182536132610689712943462086682469520950634149988855411792965375115684432003244630679514789929489916019806265646005675836672180244629587829775604113970818160586543864372027547977340190317524113952724555319111138308172938472264813387309128909345970868688412703284534943104733241790640823237088540925601690308858542250912701869679733849379110528858053294681119937521025528417165907752850497672513356926221515958128859958449508133144400602265160928703204313895128717064478747336308514332543317499092780299242835157191945481765654143165574875683082533725256798130825779579688501417670257030465069076035093062645951788941059418716861592283968965967974454616451058900122571959193320325198142916864913558177863609404327266522494951668509760368536011077517832711828471988991248236467664301396551319169969178750094354989189369055121245372313644946244455390567279797132071598802284803689760630469596829751706735273511390860446053912773893482267141291365907361163180075338533897743397133703779875917773622272429263539141518975121734904015658949906113599969330496417077161597199084198817741745816962031634701082948170131161660659479706842059587983813772606928128579696658693660790141945199238378522467968221403921344094647964744603775722557061278278998883064838530244403309290382979781706136807959684395184616908867046277037387470270892084090440449235761449832965029242008708899631437728946229482649948480398388797853972224155884979868697136783135738143472753446861040343382488504061356755219226946860213103515791769424128699025037067063353969207651141894054006480620139499342636767555094718378169626136104937799472021249780761281014141400704381255026894059194221583970902982989643381534073370873094494874613563511068145063105900457521863887191375073756577904314293430601058425634059711261534496894700185791465363115309977868450245805284883014113484092790137711090401256709464694760446108049673622358227589841829652639321523316672198703966199036432676557379523794601374583502163523228699008017560527490070257545368992401993854953620757490168172532938075226905132007831479394495087969641863008297735157237593530792962171758557068030388652335896061831713275823088683287023058632940233191144333115880041541967102396272323099551803403131875673181191401592723586816857269563826627950015025283866736902255983222831917923809725892339852469996854949128000841274059185740609886621801254002922760592937638625906749190759815667640539063825464908725193984666633311849189612970337406730916079730558031280125900445068748620136186686059955212547625818414558474058446892320656741169113750566961048982540919555628978070894663963179970448809292260456076304548912241146391540019179121060505681324714744812414270954423261657583696263876852352195780774440020756057920086174551159932939108270353743313117832675668693074867438945981399637029590992953238812746232305985555426705056194612555046480719455293462359806923689956335563812282697681158855145215605689641174439769662495936882384206347511671962262391629638842003165553461317191270650436582421463810410520300916133733054711438463153686011047466955095203635247723886220435266497685161966218135487026637546095679912198770398657777418467577578402823424190497035211191048623188551450530683985323565492212537107069212820917762572555872656449965502628880785017599940089644041928359229111087327800820543424800777197066840952466914633448925082769859025812353921471134531896894166390896858464393714292691344243475667733301972405822900032956871809862132284622297557815182159058051274298755792247747179787844042061755566644005324010520804091123498929048702850005362316599206306263465524291624976255758507174598478080119195543940402279165419045337580803516186616736929195285167171307891606233298600530897055060477636350876265552163691791127331402175004998673447146049046874419513040809675916948424759043508675845347532873239455472684941203671291104072726829283528529563958362856553357201284406102804618782625341414471688288891495169471948770634963152775313257473785536003545714228375765553750021011458345587952921652701883175174003116446494923771514468299673856807360952827926721581198633656373076443846898470509389247677858942754097349499617943306841028536703117310024488805004926522930918645298439835106880374360309956123940761619950023227145141674939744488428297090962334464486204084044288144913124341353190596868300726035205702171024687580239273253754463078612578468948046010701864900015817700680578625710855017043088617559181418624378025009377381182240435656022471814260577265432076158863455088269689293245046210775020286718061540112107105184182963948818812201149684312101874687876510244046492510743924820690201598615696733242607215868332265423469455306055997402591536713824367511053818829504699827304397932075052610734861651853698363665507110218743982205049210845218873069781240035107852452513956552712075381584123151671585107348972660378364711549102278692479819315622021630559605446143583135917833754023124680382404419382445572659020842712543200962693948201891047231931939764840249202356252204061687681579727012365842133428005432042003292786979071672656564485022609904202865885156612144032385451505952320689080282945858282522656833430478171085344532592567834880589290481982611012405064793765206987399868493522419496676123183978393889711121267383167786525150622179534360414755958190608442365961615086562500892695947696940763155864928815724563540963445535687553920315607155472495201091826641805323108136457829270621222387826485681457816180881774193478828651153862745740843439650926230453201288352827813484067647202687507549021281338682997506606577567306204316573609958933480571124385220492219544807512820109012622738500992681047266736829853089435580227598552096666552705151448640831466177690946752265482845242073199379880520521862924157342423896444625352833527664071727719976903531535313084933096420110908525830113164551817724361445243913150942345756160758127006564467476312567272500435509024382301684866587409249595549041872999239038364369700898869235981751376238727103058572763695417871633006047427452807987069554852920041122074050427221875769535225770332262288338154407156443821190832003494093250766138801109695602213972429956989354369752660116285570281031749773678911808709961582135272508187012769512721235521282657845153274635680760866715586824404698627228552256113844839449947564718182807127760242374888187237549945990851715538751046714888151242775646411772417149085451913768533153449867293810976328298971762206765887980195746156989108170511213714327706923788913732622285694820633281506415115825883950367060944540676929069338364066705326405512292095747084926093774308631780737107852800417118798497317403072722281181127639171971377763975161729187518172825587604435521879428026301136993312259814032235782677968222131121678997705918032606141949506130035541012355904837971874829988362167679945220454259779044978781145200153050742239500783841408166015473918119122170330824705272565266903281863361612087536177307118235494764878813283313628478085893350220451005989862254387913614899843420471007484118052137000116539796324066138149544442059391753691077543218301846242799662916783823985129901648724791306910814207653586556311227287314902328807466510000364656827699322930527571434411870896774274920003000524140362213467572259565991880075482502640312281222760643091721988599838868748193840553197346144226020170893256420319447865311300348617757602535954430979616867568006781996905134146322485862647169408665984517694250144666850489802135917663077746051245618265430358173783903419955126997518186202741928802822233459207812987887888638248691898983925930340951054099773551278304443586326691468726556840276653851943853006708279522734858042712576509061769765872571031401473165426982508211946020991493453497574654454894939455199789231971671365080117798443952665014209045747999080451631776622463983417404568450496793153033486103700562246603355618882396013401425388928279035598192565928009194462919955083417202279597739931210288386868425726133154487604651265927287766507338949325281873861070185553625404565484229181323804195147947455112621351656877562050135059401987059601786329287582857192987198267443564722956204211965447005777005870591053316594348227932348965752128079466333911297747268462295685505087020537457514872400645492057925650135238420586181858234290150177634442251101276327582880381968331502611731489620947179097675893891129467536176376275110019018323721741174496233938661594263559912265962114535525783528335768250858455516107250528524027515740166251464057283182108827130931630427012127223458283188965912955991239544543120936966796342392683819761995738751676721004541280627552253781076283603296623943292659778262815976243271145090381730147150541360276475956497406772757597005712321604132725577669107616341617595493075231458828607051485816540725628778001399092480185786220061621410766969177354253345111636860943750148432868292580020456967709583206898641856427353751282996865284677627826456969991816063467927928175285919156836288873159663557752727141407666368703316594098810986090132236814294437902913544827022831962334297391981429918552445824706287255527552436549974353272558017137323773888613805883224602281894733254201748611135758612945820937198332224292363502149644391532984406494171840236401603704622151940284952267438795284327644224712970268957772063291595805061087943148321213647386739385464613434842176199570137118769983121037648584916505944068502336976245160744718863588431648839157123683286544168459080541417662516209062934539522009132440615888947644413061624256051624594783682101786676932339265946788679044145782976465297130016960192788882769383182472954092127166857737151831251689034508398011097382408145334752344261503333019912073637729265093552180622075862679602810661889408630745650325964853991347302959977076126119898866008594209603400679161611716553021291377141295880412560343253203689148713253620594339810270634526611398458447499644959733178286155075571268255707643851025885451439085928330915648370569234493687432601731752208243247890592601064385865702304551998058411309812546058984395663159587178934444058842701928385759147848537968845028399580978103022952881797983133863224720546834833345707755844201084936029025217404512436247629292564365734860967316039391416435131275178641455518309169838826739205302994542837491864306062085417532607547510488941442103215739058948946716078174896850950527442376212203570684324529923185872242396152055467804174782150295117461513125931938061021309652054562831715400967801567284934697784974648699200191855979459869602491981976557192881719344491767237681725500606503450358393254215412719320059306435006046334712945811171537070153107388048816544009358109119696657224377487976479984615234846687603021792702149659523530229688433978956872085779040571608514797151391501515377468186884525214530119138760565839069725810902838787463269261155212008689368392257572567713534191720088540397454015650366861579543969833289608994255517220585291298169886126348400924858486673156622868327746994604150475308131257488671122285660023376820818404551647735180632583267989387608409377321046453463137198075483324048289738250792277192451070539698800747426840665312068702249599480253065498000601671695645572591055732488947950681682143082836202425838970006722184908076810743985241247500537835667627977266335507997342296287474976692660172392636841192243432499612427199893284592757387824794550375127774061790932625515179728643541873841415309193209928247643288250293290405819501047893006008640182718832255860823456812686119403841996267640715048826086565602691752225429290617479643653858495129641686371181706361654009497179251692379831226314718679732504786201690098990989384010290973353095050967748658888387566953417751496503849098976058194978104101593931024041526499697870033210442824840243154726946016029162056376877389219335688891397340454958321897668880237368067550591820519682175645910657829230299199596660758223394505099449664173529627240099547723069887175565944544173867802921275960938617328039733411566129723432476348456666231740021159464903667590765571358622725206567711749610468356808883029712441682499244918226899271140573456926812051237006811659590798236605773202512049421255434872602883039529014528011796292921625251744882274692472771400764879233047120316575584187121626386546969972088342551873128674778103323136102033977739399962233429891012768249113097580856163440206507283999598040817762581837501708709773486374273548236136279055768074829017802493514323558623364423425426837611182506787830537797012494248508907137598602628166856339307968432702396500144512049722848344712644402021334666113439757487299785265465075125259712240848883679921664408790179951411524205772403315795776003853372245556530588016146081902238501819851275914752038285988849544129266537326630293666528426879206994865260466272768361952746635344647617610906358217272766912734313339054199752959782598073883011737940853774957447062175088244867859734571907547425069467601176118907995852051940121107381617929848779436142412158228348026638602642473067238025122800877782157123172414459892445878670671309413171958667393280764487678435297437905633733098613563465847328641753293974913994180278766295344378886928934825297557491675511835202319979123044207343488113951229819801618012085047453146541269041400818752448431801555068913964375687294450266080743681767709914673961151245477520134432061514114158277768583441687012757348875793417243044217656292916214297561103348664415770405990912905519972702715303069230646322897585457082870033354281703018713342349887770060453871854872892588485561518345188802479797623297993786545196932874398288901819855218421584666375624394710309415260765554761660664901658457301536416535406666013574501188831386944906899074705282160011490120972999522268719752680024266546398906215842597976144751113832512806345301878800511257984563264513866736101538051525258687211707204225115296136666649312372646152668198076903578306629225124922409397668651734801769235163099509556703573791685072686526840473190543774002729771035927924503637808287113841262828427674593446977091628476884483694149732745034418567163509331769158186164847678749029472291754339668247072540262881242115982267266550731190993417531949901999992572305286764234089372935027932774781493095933336384615325129416580633589661561966468960325685325135962338602137168668014268697336833379748588532528016137531481505137822510287401987154261870044894668063082430604394442736508549833782791343971858241507163708410677749324471320033294955482575337981154188096664321083301857826646879915512990612494392029009657165783839156855128310732433505634008829028276622921430065672903357012182844276418490326828672392239441933249905227614566784400001733390655144284634692928283984182537074337545502528063046089421146908857961400152018444010700659983993262889893806040949428897702458965466071593302433944134260562406376278869543015486890042257669098882729704313824564364764332147218141115353378985721391458147540494000647542871258397840363199433991246934969156407976504865304070310496719374922971155606306493179319285481512636608566040716794892024112675630079734758420827741033945527261771576475136892107283639993546570487747891215314655762272735094401098194355830396087963848333919194436234081668504676393615568396989770431114333668799202384886625268708393061931298440942598744003210612346863587978599449796031353794616402474416905669272502330824402030838519880233239773393796885742269382262237901773461851878878534423484087720067324154905971901169203769366388017247896879626326498196008232079468773119887857493618719852761148493640068800781712321962138419933908763532543706429292848702518632943919310173926499992476135959105936296065742143277896203982046387378700625461750467650640235335822327356808435198953932633654908382503499853721013251371206611900124598868468180420736269854598780272206372611344908950803282599076301967523126087162463371218737731794663458453272751028701472847398234383598822252275987063746174377101404158758840888804168641124246306095426403184178479426258015502986131714009821468866425573404938095540981888088447950019397753002037041072092068119439647240600014571887734210168863514466072062293167236730025858784105071201244158418584707851462466561602478825463376835092257582929662919324291145751620987004426352224797054850081583165815500979232236329400431747726330919899799959273022274002444514022063042937887116777037605792763769235028067174190442883677949053603027338028469360305289111163570176278136209498390420364525998935083644112323169786808323995094422567320618947629729845577650301017037573507044851129053746937408600362248033611926140488399746431131839884486896765768562195504734276877040924846236282910520131831761193874498359841516006940524976807750171359525221095799662244458131030471471565693846101068010568268855635046905480229274165789100842871718174312214844920029746874553627278649721450343485310138571800429227527494385323584960087525804473663702094915877538288392708435398757375242308140854527051169431813070760562604997197221603271664301119458877386647612023076241692161297777474087188077884146634857102541909232164476812048355557069222065283204246733102787651928089904990179012134421712020251941051004350641021704706476099122510076586657614987649429457011479449684978498395060864299173038212311403127530926098245396405088075898167556184162843691097382805999214080898287821362197585185419087564378132658354907386540673233053166623196696437535762925439411103664387893180972639743931456578321349603402868239915541676274093825856186579113406325554424929734333404859551578488104559963541793504590023522777470805571909171175323727383993432978839389798825242288655184176890998651215498058595101737304395058584792874984283933601981377952356751719990156114138983708410045524201108436211412888844716359795533534466239134059327317388331650915717771390614633680589077147143095536463142238880712977498992029183740023277832279854977526957643215007121153987268339952339817640442315203363291718490211306292604382146862652608531960951667642091299267890785793009456533732679224525943792950926290227796646406951648785575918941168246334717804982160716529921844938296586674122415537972040792697388342560223629372884299431465797348031532067133863498393609598455711057451786490465531716141010826421631522014758949681772045781544850102614686652033652949782292191516262131996812302462787630082503335434944302847712863467064964678365785101412939872172447586478529250301211036853280069391362326365456140489253621415181821241032282352999049381521541523378404207203452749223335197501555714219236333060648109924970779309366461099964595414221196611967663656625801540160883930112182858756621695002896714574284161500164717120674067249180065914457563202128287962036805142191360443889172754297218022494017307006106557077086218688331644777829093601953503819792865799072853977705231706356069229640472360198629503450084925747949182583468735352671728846824373698982818188195432936265624955282149003242492100641650362435544604503178464380510023559462742538725813127648153459447484860435738543763600227887180189637654721109162215309555365276786315006938969769289331387254422396211453895726305292865008243277601500338704410590930181715711596349029709680684054538795997420600756276827151951396964697110273223396711434669030947679057367695514847348084853485828496338897761440456871680565692788437150632874990677275780825004933832119808815921828278700545565649119960694168029126090844243194739928383528073860473317441882888220221642277025636554770566459754102882599550297849345126135125058923109214045751441731833283243196221088159990707812030615885659298012425762407706502729874564483258721696430936307943963044410745315532815006897203279305474992032795115631489894293291685503181402515530688508104979220202463525683363336582026987242541184915954654612887251806177015546675743579745457983912926968458653625552832816371488949964537085300476165979812230267739885032011766445390907966761744790623982265270240560329999261329016960446846801093803398865950360387500145142361723339788464844006147610141810253249937975202132081467204200684979251302676697491856640961313283024182432675967224842361441232659810174912748735486280130333162349844983172557619610595473111553647138217122042362096832383131819811559026727809995026675752693480710774808581103962062563823806531276636763799110458375134648237961375227593128963565960011689085840390927056790213559659309816226331691600053244085161682605375590696385901311354239778826013698510941595082393646941743693028254500730754542609106736248693339531693189557556185479768830595615455806930003954406265848879296750886080081562553733282828929566685518854181879323260302034005058850107794002716089250993448400889348235335010415447347132018160787758924714569201899455267213522711251224562148335724537568979126039619465328374255435371260433469914154476957222426769614913159368779544165444100484068290387143544883819929093088252029636038301581475073742775580821034660688956134364545491692502886383203511250171746937159603515423095505594968911076323739700784488661817761430506055484310231454496643066821045445739221978336329704446246058178143290318228886431957054515488253413513911704135439624977964476541609881260916751089033810853473848108894025308930680488417700101272019704893305801159275420627793239832816732504994301282213099386798148141652204884241328531873856828472884081883451267227087808031170720590732184248943211909437130963223330957759949425716750088287045734774284176575829944419199983504294425329133065686619370667884215242242095578260669464271038509258203920976389891268321881369167218849204017485340471627117032634275235202528703882720529334263474499462100267638326379764257362519876408723987442710490521198239321579905061361239085953200838674397563218614065522516528186552374689023006330454995417070228752518739722945556584774774270964916271047487378202691547737828295383794774183614198174703683314488349781614318050406518349291303681783133032753986458984070215059974999576901542691010767562642210769606035436231932782562025840400369657281368417049082727997719433538135177547312055816813792666071675852526448551144207503591370906174886279603615868023298615095726940033652369825535534140111188775715175613887541810009634705953793554408500118215034239310579391398206043934518891491648067456639505733040567644698534321889529264541321023196473791625493135515123123025084112293161254670363794346596949909252085951847895177060571745114682323520063438880308397548047491511074222178941339730708667767534384635436669523633511527307124011103567169916982690151364359992237133121137843056765478996580812783271813210514397203409297600937882973746581528245610020191219800593658573668440158880792861251655149833471060497234623490749503048829396891469199660933118614067911138106846348119817507874324731201522490235607369041961767824607108022777603880631332869205202475686622275557879974238188028498957273635707074708156582073367818751651687490707091410597731826765981816153885193836876979696755759126804386012834652200393792277110521608836739086442934145225548770851027559367774168766228010878315504369511335861333354527964211491370941987887883094253509786465102744800171195936608647724613477201282704383388106642647075532651707809745796331599045017865541414311708951121150003909303995630195117004306413429908106301770172147502681817820782781866820249466296186786425052928868727800349830498870575224768573167792647514499374538290382413667825797560924880104998331371193944277690379378642979539562260931484598298558459960305463693543902425062752766616679676248320677658028771971629978621930653794222798733312840824598621590989911558829953118642931513854902549317217468162076439616915689875173316128880998559364703593570581525183941816846555260317283714978124583006283831906079526122340562052138605423600665235843043175649860020417316910906790127417570598774726871950286651259449969156534106844364441690105217574149602548488580307825476487065314661910323596391577136993841143966477109938063770637501749904236669251066221162535634962090374589060970376451010085084437434477039180568407641185601956064526416055505019715058749941660093243415175808669070026665149700484747334254700921769533935008186779387944929573986387969819806610298834372684665056824177321082977788353563116611689919736182681207107098610594980001788168618696418311738412092197274688163406099950568374216245717936904119931493524889753689964312071046933050134080333753048421341035260812611215386202345994771249278638225768307246243642667931527011643552291805016459280797964639048923333144457428858070626173951883689379415111827521617994174612281882749393634833402047809660494425638272809130466561444080999692503197098154085663925617578073298997348054274723437042373980325366278359429734334896650206254769801553448178283947688686116743567822777763640575490271051952959177328742375250841439869056033652465879382779541535564325994084822471887765952659686485289978152454919622211484120262988443025970383542850183262030218811533616696123517788329078403223379100092538484390324431152979246075455775926537713327454094016714118721529853406144477136636906927550495324312893062700878215786767458750185374299096241932497940304533979885259103341278305014655063897141698396929351100462657199709946809046776597352303666072284644244541756885877118957662162414471209177418469084440522140279916100222495195792909372739984811396744845590660016883600145190994389142105941343151392845034643741284773378590799164555234055719104258353768934683929850413599325260865870259277712904335404629674427162660411917569571900351040787035218417578122638507505380169153008219258835014164998423489479145807607201541322439481086861285408198838383178217929122108352345331070611490034976241401632950227754849491517203892259023538642023925928675615427698804038729367353735920020212128053895443945319734143961815441285901775791643413033876568241215449601925688010065106001923620913642644871234023862815713846696646501771469965227328868276610304970015931015274998880954656965531990963935797170324198729766969460065808211566870453549906319853607082687137231456206986232650560983253217280531649692762570422188191844468230552932091686797438771444816397764982802545059739284724116272372208140408813121489232416838988178542113059507688176655262988453593367045472875734808888022136332375314818586872463547252498536274968013518742235238875749892474109152977666578190140183694854870728753796769345765762697515589077058260113197984266382160071074857969253336800564928316380669239866810879026933358672397185470379378659555304112328828388425026211130443706719643304058440011312834965572788234362570860408024729142921570415970130233338547599023661310643772562464884082440359775114598557155309655406751811094041351674203472503733164631659890719164695468307411030509389734038362179763837489698037650131217334990240817591253997375253915088636873631424312724264547640824682589162545611566940298545354214869564997699101093841672384911318642986797885771201631456124912801155101925432052130349510590304611892304467617064503581874024719694534622281058467625035311527974561465505437217252784694108324568268746866518505626251231588782542770715795082754840813603745887095332082262000320374525404916377220825801387856638504630107622083615458910573712062556664637392737527447604476964987846186434878162599626258292455972069622781653262042757928229429567336036912724161748460549014298223826594204612798750120418648196220302069326426105883945746919412737264603733940029059015346217424495091809141414935841127734527607729446939818333641908230972554850953699054600681491176389178201859955714297586749327778205428702696783435399023071897048020890561867056906723885119179286976087165913942403612967457080936962084321348128312040541842447221806788358791209000690536175664620114851873569245187518611218710969209480521202108897436677414031058819148761638857937158026998032020423417573453826092300772922244907941095401948981273828541318822489759352922378014262337219861304368264664747667076260309402107033241136041568036039343099799513779155970747048035987322335340768298799241249583418875062745079375914656473447273592178908766851229359066764799694841321143958640175922237287959080535899093293872373561210547522708770647586683046140549856202477684054201712030586535641168337509389324972060203509610864990430885415373035424320733137118774175745430409080759578781247264286191237403659486265340175537833687646298803011215616332018240308456704647892297328370532339722861367993801421835333103937116887728521190090787189689658394623378727712824757008206154064338526725883599916339012815832213535002000939148646781013916470371023949867100395296278920287669944151554082441488860893839293443381040493223963272040799557623260919892164434732774110893216407702011638773929859006687353581478020237182626067126388515634780114894907080713129429196960181724646240475590154329009165852376214656596314719193672290542014988563724002274641364177527308267910628076846887868087568482660650258346383923331220991543240301628137642761989530176722814725142732228716805602378164512045701981487365636582947063670442005699610887104710565747384082733568369373055367861449762413081293602786216280597542840856170898385957166401822471701315011978315173953636088748941754774688235595234253696761087254465631074833343001515596760106853177634753154997005078107046396896254049843114336871770657401763084135109471660079239576406638629985335148720979145190985790113783090011537386110252580092731832797866258088606227218784029022008275246024778204322989549065960906208589843366366670697862559318391655101380950184153917693266237386584035536925938170805765018208995878361249410433614802108992831054027959871691867615656487388518904558759379874575718904273905187305142341573529097014069210391307767166082118573497468842034798197539820932917041987045101530578649910736510954911142207401683768358236609804140849000358263890559065829691241989009816191094972001324929982558785294477031432665716154522182858877353934896292129755465869823192749407542833614862041799338411642588832828444417904623826435461732072693796807345787131498787659924732402456348092695577752059669163043217586735831623319253168840545331743864488476478419586527677121286013694819259314649509235941463325709433660611839284783130026662783910514395619670725616428487592021897536344104937181553539135180287181085931332755761606977149475805420561707218112180787556746073648973041294040806653063147650663487829887343695995182828203246219915982844201496742446914056696857190139801295716526317618534993034168006827759690487183176607544505956780438846043891847096573162234375896438451676303326946126742270945146426405916344578375561977735906754224204417782864189055860961643418285089413682901687891143608755031287149987726992235529204895949443902336196379926225495065666216369897360120631568913810010878425648243859180274083824105576586069489451525599142476401681206145539711589497944618528717935427872465210676133316577219406127756885828219589964712623576143508958930995725299042618922092694106599301210542948952222676566096911072021879067986812375828837139594412229339259702174523748300827696252360847766764828892053925048738561334296393359831174599913592679782178966080670136854195024452270625569666763229627914313024214438184624557040402510929585647826798467820036622768712562380516806545613890999477716979945237184635807444908414943661271984781433649509514558526825009670290652726320514829451868502969969862139240465011220387184978486976371011182836928638524045556954253271902455791130081639240513965156091545046989422871532720642185992951700347381606789948671223884902479156281900210229447236615767522512473570067704397365013882831479547546831762144061730167569026422301492894043198174167155752723463705545628277691186271300537581465687444829987291606844461766697745032856883867085077105165295806130872456381455435075721998218027921979844658094568450124716042748905941123014878067393196602037689351062911234999596881637446731803317371834611049709711401221560858620671430300013314660539331686970218531145850742240167107887054260043572722775237064799398791890172853449228797728666676696700996027569551467593097265266324605594306361158662355913980572681954155264373929856802136503587305267814225406018262695040908737850759100056303976529210037427583355198212165587071170521551554101058148644517693695054302995609985811303752517866961930366898405578089494482475845545187555073462924657549426264364441500268030979340510792432183276060589199920928794265329686739652788824303681779657010866696596637738752861011486662834844016141075944417192585489534229332250823049459151744063436767912061752641848232277692955876051931683694913749461402872816159793379488122486264352042719686711677559980967555614763316711330256494097853727509000620117038102261728494410904937015495690267568904466526767556096879448219601810296038766899231649234018019302999470108698641745147881658032202946719661054589534847554431023175848981701186817925745724289980801482578897228689849587960753627789831689521959574685309164778774329943079880876394655073367527812882455444182889992260544466098310468172332746594668409998123925942326427327496136163606730058558750892034234381719411173835169959926353014779597784020162867141171644354849080919951234503794750364263749493681833310503857095933109797972217389254660482390586121004005478306883496454336969743290113992496596221768628241765397345567682757549845623377524118889684942674677275426383912913659970132337803319541318076764817322631591985986170069279693620754913632800518416085594008671375502059364476834145055066240135800672965557764058397037488558616514308678318662142802950928377768938232461476538663675729717001170922823649451422847733263700159772340264883200627749222156556170884167339584058150239190599810047056385077107174310959194698662149099155133388402564854214692468216247977778247643614200394359956518896388046807497919910517998686145384442423240587338659305989732596360503795459706714301244882373504972342882523943104650032980521407861070174446940726609557226227360050404236021109161987991700650796494278168169796598796064587104118871147722270587291868883955760857830396870534870674680065562727694392738470167590576171113644999102038349141236960221166786673141252143104338568622184255752012891523386551257591980684337631566067732978438512172753804496597908497109284048218390132007398703356723654513028584950323952701756459495829677637223907121608621564052322569278928911497463381925482575747549683277148117391695218579408554189802196242251594493003407613617701745257273045318753368099762408482132263693122788643453192405282493618845752474044560707685016378722389668886556497628986066423537138575876876019637113553676357121427734868885152043257066316360944630665155520396093826643278923838092767983471521245955590476818222005233454166820052186273732270130605061300427126070763986978737349311921109336749244554310107990318956048798212702516843363349381962018585112686336360264172402743032008136850261591228876400878765720001063838301671799504076256905927038304927327786412731649400747417633841102380085476515492814821477945893977407715328648754959776670218535571900568295832346275403598981368524860576674010241825084449599795536564085396902948272608683118738684562854124444166782380369141499283507447610901558784052566827442747119767612849821326828983172139385745224112012349847999372967845060111555883739441822352644282909597664038156017365729600686979035646233842766432057884737738751851427071825896482430728998240179885005036153851426977518198082070205286986325800437193883569306812168268515217809324460548496609984154688725289538114637133811443720930506383804679501842485767963977381284747689405949795999091076629234626823662655364452456936357000789802701885487727876924466347521267185238156578152430925940033363358672456299739955992706295696613919787474359269251694179704695472893995793909222488682721680873524931188741919859558418738635818593755210403968845911782375777219376363689187901205591561029636869459129912241342586916316665255159429383252055646763989136586193068520885138588112421893201166366117895997321191986056910874538943264895189714403087873253991785478437004952525318914779194925860442081693247293580962423344012747527286297534938068252169299797374613428815387894462069525975205622854065042473584570465135256474739216517981386027535113728809552989981897025058782413186514887129976791607554721972680959664503961512261507531941358090356040534052285125510119590904581649956284553165726657287596123636434659566444181336496487228017208810426124132327469989686509950088330360766918789525259719490894171729093758110087192014053685004094730150455158061393566613384357697039921792819393569895653386490322408254531072373036771697410988827494126172237637756225457525255426780812746884005978071697946161213937536307468371107462559280211072476308759005856620522405653765572984057318333175794155359971306594418499091970863323713157595778881590149919643280527619230453190983245463310015605206031644642762816082995328353869743277819884620666979387999202589702572298661721184434458001147853393060128930289143661174342357667402467456709413168721819717780027191041758895880275916777840129878973321612658292158870464765287376178296833542093310417081279320523949085451823671886038060541717546879707949235508222186144076136300612281590294731269029029749290605048518395968715705085735541695344263898545101677173967198815305610213055411227805462348209819015668538153158039644131454374735490125714486007822083921665591030113834323383450618276386725276653438292190010994700555837715285428840273015051364720013737069841492893930623159534289877406682437069585951899635262557790302745062174093314953118677932999429374843373063299452624945900347500468433950885085440062852543309522200234311314174592248865222225078589671868514667920279410521932168836534393522526341128374588432816880816294001869688555630971940550240100800945480205031152498904851203358706893085293688494932917765472235990308053788094040486519427067888266849892121336109240427964650984153607868291883836353353328152608314396439634242391756709228238496261086104527644173581840130875043840402757700691838823051022834791523591028037510930387499554241880936754440732410679112573702321465031559025657745513373999531315597560144435436110077021211242313926115113546922597561732601943845564056671780418855541314403628732212716135887086519889046867184642188376586483768080951379639309140779909704226760765007606209575783767540413732062411179865424170369981991930438407603445268412235962891086971025917219528329676631048336917943247107079602060365466095875544471112120079215614589916992438014083053108635739298615795574524530875668166348951785421457882789678973714687103170952117015141420971845395057726543139575904205049713829776925766747021806726974805328539670686080755450333283223372625192609177038090427393280399805748201009326706172317402047683489670669122603108536077682849742984446579031432683855678576174760930567577847594505996959023819737352334391894121050091313307167877112168612653896195555887071978974354869904220747929632147878867658615356315873386933569883917011279004933046549177380753859912383288515662023418473484996453720615338653029939385871763851688502017057950169685990714654154427556029899115747696298633671042133929816860629297821813215078833669938428858027317463710700817535152988968966287813643753717417989667007333992951693743045654016448289808311349145739199559360789094665677412204725537626644194513045060001360783885879768083310112116892872508102165080254616035391158151110087927952507867051410177257317364452045267734211655674544181441750086796901257073433789501008058927176411903890577496194725356523009235035957450777437507969460181785612804373195554138676793789186103184997599612372463367021327601111454961296891364149593663046298144128836332067885956363190969225727243525152531730975792736735093514725134229140920112537585575523921489624602517998191951233143859153082886143162450132684817712513890031287030446359286524048762346249596763748633591834712241141752643521245003262781210263580532871324609654465933853709230640430865895028063117768168468248620368472220614285705159931969901984540773825025544044292204078830147609304276453304791289967565148585444679682198131006823444645054237677760236284193645449241806437622752887062357876050005055983415509752574452375364298952261280444007967118740661552957104379203041908426101792369553928480647288044013045505984402433115805539470094112778975744891545440375619451233097383159605282805150603756557897910649251480881936342972121880662739848731589412904971855669313223780904342315056709760137675597523115967403750009704491062666128859837239882886410899078322834264701703627630576703992968083658720160187386010471685768509121661666748405509615157075406525234355421613346956188781443856966549422894332894087827440743180157268923651950472703428200676802499004318441690291900245692763885141730057564474880217692572478714650924654723787170862415557061681472457886730171374286054713525673708180831298623270447414059181596993362129857533640147367909613033423168440069266771408343324114846923442570570638419639216492386564590196844646998260281805703134965786936304538687978709447397257809648385963461648605238098613426567375888697648204290155193164188235961782674842194231551877522393076201765293807220011705316630440659810386837389631681218293970859125466287792258867859553304382653864863334895042476800862395265331535480082789823951598188028568842359594754505682691080083302373829271977887496534554560628058453675259727540397208008817519692075289929150317022996236346261508590231955283975000450720342815164334959544971705648869401976001027386977881706118259627303749441925530223321103828654850111252677606757359960322038859686214353553082627391195902957927715852404885140015188516605223778200499743966791438722750625393150389085332851804455787590814264328797546975259570746955835285105041975205608509835443118263720295246565769268759249902263682906241106630805239719846797921352232108134328142428064046080086223510999796960112855879283670649351203768152609617567512559775218045879970888812149207664307229212468663237748055501752223854160668407244523706738588519875696218704256743063190117550054879962757049006478413019247849960299381671208066246958055713800453235338853985085470983283962412056043771501440324968057783942918438697535755166123758228313171302178658841041341841028783223222335974536864099091558555147045305298973204878046278518877180266018894413726412415581166518299126736271140364589064729688989109393111063513744924905114134728751789078852198082984888698488449291757865975976600033104374125394994761595627309863910749760792739486781731736857956054042175669259428401688782181611778958330739569128608503639611640915680645493280684454579847947322048582672310946511946130458885529067271995121871087639615348078173760311187630078745970571765036485443434507183428801043708291606966457832272997239097204563724759205620191427492642646329146838398772747629015965319187075727344383195829535236984208364953221758551377771981233158322214208593414492777790703450838390461537998644222230746859947112703172203917547175216955550776955356847417823240972912643782307948539700947766621438706952143105832462346794730749928659603411541434845860815654350848090167885130553128108305709052616835322202201159488551058171639163413348571061338886437335834356508327237934259254088119310916115190409999681947026728116245658018567435160341770634342952620872957460256287683582007144065752750785799101299569073428096957022999347183079947100914194641130920159127016292051998258267502453987962171916733206425411190002090021451389834158809618194388877995882587686293352973331614874773669242689927439536006610256799633736949642864799949145634579149857875180589912421159760783096880002236526819201854804620939255697656014895569539421698012900771593343173992527848373896858834710872002425993630014863773345795390110981078038629351417093885769991711227612013539126743467949601086983873165756209387878997672929317596186842334556358891605662992462175767202602016541781019074493262646311957993779050141034170024264753219507873794624968324699391493550656549238875746937440448744050430944250691495088535790907808928461818254771996210305969947965839415917204976383495623297053159560722080395715249833678848927032362818042773058082240977294268867235024288289848839262312466629059006202142831417086810514244716246205162246575407215338043898554555344962806608661303894076179793482431832485341836998563988743868789761082297379210430869626876437841977812395416028341360227558253101223426067457326577915121246849948328149295987887511641997858799388258364483263874707830475666498226023642523398665578516799286151027706463574007669413037300501980569741449680284126006210226384600048644704867669607708761386261246835261095793698354146848350650261064591638620528592074546987628036801374002440243394251440135031251047441152314589433061780558481005663699736839026467604277812443378548161401401985668613352537486190778295261613313217783090285794012301089398211152674154258518538868057156523943080985865294850881055450796804308561529102879198860026231783574414863434165712056655346521145531422458284683575746610849054175534820186483603360943617637755908415619779675930569873613378091316179852870154858937919972276610678957063806063640280275012540347424388074424059843215371343572238774480634407620674237461677152290126943031160352372197334258988453550096512335750803924928948885799475458716268261865857991224707475179084878349728918429048932995327678733247078087712292366653331300890477179384775994011652208847484423796079899431321152106120898025138729887677550787629721331454747949500367910384443697261352317814359505470548335819331947434624881962131473547081352375259673397685318096064531900255781695897212497616701103001433070898866845423575716399508150213651777646567081705376837889213656783080246350467645061062216506886853140696542575315114872790931931396120321347352850515957793821143968631307128899020004345078880301912479591550834003067008597782983315602756037244307094490655318797736117725638247379664364126318124970583069401415589243048496334325632132502399038952426962749822265730945981425440621284316073799867954459537299570628432214197031589721132416452461177485399860582578080248465625314566151728290578833013362770767006157372690983369137301409885118152302895772777350444647220936888991405160880767456590517279726458498934991236201896153030679888281522119579315910211562960397182417770601792875933444121269237290587408824443486981891750570739329702650246946191003659092899977896019697268975274215489419549514525669188097336625574639292478911877830004600033790360159671136044287974067583437260950986974092104617577656877644163283548240076216301634121643779455371599825286700641824871178039425808306245859117567187060811933888708315900961637235288257365829715264575400947382097259424899747658207902284287077192457165155856703205571638697739042687875255120445688845049461045442803582103687162086442893139464056435087234488267921861466126731055894989331923097855550252762926321624158882396444976416733588682375875522678902572367912238926637251214496422129719062625513144002742885856375368743066517245605046481644527371122022910487305507045918882259303802664264660216633985696103390088167706789148015077879896453793395303588135626088328454452754405030007002677366612375981633407533658399231065340244248592235297273526359254687195210769556978431962917058693471748613223585236662588345150762216741706035487917328576494327019878395345985321175489288814266593935798803262898568724315534207649629844493904317801581363560378775729401849652897216141913784090225220554990927283018222139768941006438003717904411692924053771480472784787802394890974992820141600707359939005734637980210072379581323353961383523827775616708853527094631530470428767728181247665114722528092084302652612281099850309972254727203682883970106462099004536512311624593204693003656524407165331081606607217743011235580610693837802476298422174904457358777024457402555904722292507964247875910646125719042759118924281092597955468218652553710013485694762759449411873162135979445115458257492606374649422288293072324453074472519903353758208785607234925514716208014585707967298704338017317063890025488874734368739987894415831184908773435764172119544652637445363798316903082294703648891460145699995677250663702350335609404975938492411158967124667483610257615613181446570990019922039812669887075367596765419169697779032210546407104347911148397575119897124800872762508850757266746789268246361932067369954662623840544696693696277533311431772425397303552772750537196205702312541954559765811504507071277143145430098727388206913926336285735254948777091496677317176071606938272768795708108381627584334162634345831673212298097152695663722717865288986091905401380331394349627229381497283959863568512549194644170730698019993586320089802153587182182670222200085373948439737469633079719934860476626522981196374984709845612021158432930424132934605693438279743329315631211503677712532130178821405137688904968959253117857910537032887687203595960419088758185869259469956153448160182836659718965179140126133701784058795260166211095730857154459550909942899917545891313394851735345899598827788827343307083323986240634296133979474190211532831515371982910000640272029499659582554491609063440904709167523687959655818376976228495429946189505091288541930249854076069424476395074713010788580557260702643260149323786996476067245857272480863457478140136352357178700550435423460608610723661904088562336626779994846816668359340775908007061968952842780294485515066301243293044702366659486683154312175776974208815324654544113137913608360925029290523996371973251184689871123171317857793099940417021474154786824765096743650462212555672858694213577650390521902470377965622267858209533691655485878367858251521085513071909914059364485731982429002002759224987886601726564951002480622707686949684936349505857341061460919804680177564580391089413710730673676580287922626126409211221041582780911647788235498824316443975440271905887280362315295032524079149017023403022593887920168459457455988905049832037001448436477892386593763489943421986178577125327816223476617894855417448483457125382957062438730885673951243050779508386995971561327551003043047263261264716710857319853364193340412968412581706877565841785280262030483153947904734393595232820452775737679652795194130608538684724698968091776392398613001126578136150520374276430242094010612818997545755985535351001840566045333721869524400579755922927500691703139596908860517521326317889305331460413902687472796250969069302212111384335488409799887363627909856809266579129162197290220202064475230569552862078739681218117775500941929950283908485340309322601577327285206973732269842856189694782381872771558720634142706364341331807866787564112436843226331942132214326524016731209019682898122066927161014680853687233565636234295194976185414490863804563217786217289306545592927855558749737569986367988216944453686360210930298205185074627026097109735958770417022448886944765961689446014498336063442394811757590348254811861519999568683459083105523761816114594969747687483145200731721728277074505558126781670498978130805723435324806954875386773935950457112702237166010992934638980778120807443021982662079074954649850147398607092468716907253395137024637730499260287060187292796101606373300578299508327250684776247712164056435673231029341726626358274342427907087896541805130796182620756821555202548050492550956270370853599264746497162073658404245229543307899883804521739041796575572402883377371320122150160215112250965139124301629573356931415661235369713859679129034245824896565046158101020737606079660406313416786135633522365017293835975431817910074543245182098067039035965502201383883176411372986748545787919662562602060934506967743769474665042000356073634824020417439252539088543653774427461026221156286944194365570275516001285886866601697322645381689287530406541387474691873519430278098710594843640981999800098256046165680325354536023614421045400882098436877010478883892120689215776899867895588948680033719662182750184449059534953302010948794396099287041859350215980226320711562199343843146200198123120677342044902582398796351167907431609187246836284070559225323411574944710261319825584976589760829618762110684104844650107834977994295907975023148368974549062541389645826523617749916855650944074856952048097921422626646671402707132920695592757936352369529210842785721153700437647780747958855651361322659208558460943847921614420117450149323370998298348836098270569336963915406012231606000889560014289539373486763059374967539526994674336593000510167735600010237347298729080111722343036906678995839439072278934785180065112833003360137640789273560948688832756295702397331685019739505424855865252388357155847174311561048582248548792122046965720819784412196538508254155516928117635128694070216008443806865891527285693477651637653338128740476019030597087227305779659736838049302831776059457709103103459012893790034195421778991737390441048278253962015901698640967634437833550294461466410653746872336211723238506199607008014813265372511268187542119197633800782833008740199210495957676324260940991333577512424070979952765014233410778495676454161292661536374007922779172612065212905112724241197443952669065101300253940183256242771577469066603277775172029429888114793157212796237121625900354887102352564273743415680806481917906918038136164430816773839951976285857976750779423387746314918680492175497658243791704256706608280741101020739019214364933214307879705646056407633613489059644952417378662924933577001163565036950186646884656479631643753349418595433146519360852327113452959682587990138748888876960202806501283838159503046070480335180558646810933380780364568533063691755503897564780728809997320945918862334265569021689214413846014081607002994278811665388652462183438311286785880690341530936861873053266078788391161934335426814181999331785747880107589211162274068707873395399162821861504027636210844843698237443479017258608807656423075589233850133603757736563379992425191644812276243341041470100474025989903963262344834299240379863858471866646669562231254930796360202909465388992737796769514878538637081052187388008110282732299888940690002451993702738921827980511002657907564241807084752220539284843915734957251124538099396617748149558400080154322587553899937180339001270521630012365234328368442385662634476458716580133331796148878248273471485896228817831683853581797015089711461666336649079406299210353374418872273188622786275437890596926250484891360741129832559849325091232514938893076972736329775684017576369932405296523862938005384870847047144453269181852550905615706633706801936455322006327206743559419120264432600679047723692563932267058740329027238538621997329679866987106775350406896141825483998968434955706485450186112145992705536677297071404699545689179764336201323812412364356635709980341358664532974766516753109415585365765601960064995538034117142600512994804509635733465391170468567302346360566145760631788428623859213885293021776617804124492592251135672890943211003068848077871081214503583039120739564556845841044216203134854378295279005855817351166746381676368342006049550218617119557385133134103644154502540357899560162990413369048391200974092127635816219365726754394722788944074837524815194754300909262634488157442472142200996439680852420814861634117500486428793017609785854724625001216588830854234904266849884154089340436521345660983885744201120329331441732124806790385661461172267824217340810654600306741062876179084653103637931588021472814105808667397878676631744731610346393878581758281817639286362383111166336534398442297113940032398871450946522311788179714581002849601999259013141019380165384146475184998268908755570570621651020815970630532344688418918310989964280286979064057805545018988925853357485125211413308141215498088485103048315194856778513624503929225598409921503867180260442850595301576145420165621461897175171067119809413748546991615336532399376423875716977888349119340810411774786413284120741637060716255572513634288694312474838115856090880085175257733818520825644027320356212014977386721442368260166759995982723486437131136076636978142673819043687277317534642002118211547822866576503922179218359936311038005662247842504886580835840514749486170127421467879192530953513157533600599803888169315459362857390547346569928237716169693688920199562258075362490563603188533205990314844000596286788062483105290309915144296860146887595898203579858728390069499295252052967263365411179855687891973021055667684864235330183912404916401393416469896079200640397777792451550651443635347933608974738369749087501889440727336834698236024680614367226414611884015103149836829161291020543954186459452708390899570932978235732420534805088904686699523288923920830091842168768802815094529458658062173511417262496059675584307309440133122286106666910377216714136638362752647136372490482475284531366957924235779134171218983520948448241292800177730332170414631296498931344251557579298525702310124191585578469010738454806049322887245920678608498642122093957164691052285207284366662875428267427627221136516318709881200096493315624626208682497350706648645400055598737058557619622263690738906946634843804182879335672885398569639106510906321498889107863319648770645263374545503169779554398586106084785116286750739957953333618254829668269242038071759087782683939689645717014769229563047168851105311188327947267097994650359904549722280258292287175744518739265727122405860040442864168557668089359848436593684235287069917925022667676173711464307242502594240320713136411490025760714924000522452100595704323970004151383028482863167312855656008784790007066652038380499059867664862002607391068053571051987276923452470530447269753239191850386874115641836775145433579864438926621955662819715354446184332389841026211559787915994344056420668543062753388625692701205177558098398854891507154786563562446783878823222218623706505092390920748893968538000038435855075813665440197207334497555314753282592467326050571047523793225918958502511805861712910637031651587292243406384355168672287046157484008906961223021726124324255215369880322296713645894806805114975406075562765354758223334241804067818222337882730236554272404667021323280620527887973894248050725446761038608012363974462585204745314296246205051113459009199734280847795485608071554217013640192975609896580481579186735457362652158454444935027043828699638003513494976804577934558311331177219508391797197289346433562956001255585846414237668052018547438182228455907237610808616859688839318765058727503934714656796924972952774681061753218033924245942311898166571136408641581832773174603623436024866444651404746242934860534905551869943217568808190212773377679200380939374306150414380187366141035452491646286587563580248733934052458489304113183024698942314104769039366011871426534126051701874181483249607639965168950894689155328109496433727721408568972617488337791578313641174722125982137230968342916186597325047916300392637290027475649084560233386710976460496226510090461141334431959439663579600669870443414869426371580915086406965283759523689815935231422381409404941038212883575430414298485292149368466310619275579172551694275655688260899245937926310179165782455857247818216091503869996617241458039607622172442619767697825241932089554248514009256364828619970500908289879918099484578715100853937533765627533041119200252713050306734583074127426740306225893506497176194014052527000460328947663960242722471518159908682640841752548337156169542840326332405583005677066829300916133148072185756283240123739566418941365511635320087195981208249555337546877022916813175447163103664234838377446911403519115196078282470265869619497342349016781320317698010136402252661533183762366844597656874497578848848430820135061905194430303355095761939124819900506054437446859838627430620551566572913498650808979279729389153645606602705696409498304451845223258375403991444408758800281764520425176051398340082517512879021528142499368215835230550753513880560800338474512606969268182342527408586989602299700757085949861114432572544983691960673507295431235075641358540209436855333039271065114796112870915669100250857914836446667033764680641401917147965692527786721942938211805569610573360998689098252314401471019989913448151394480105137507079396905106448527259237776654441781859282008371533391144875949477635053470283499394137347853522238612265989198054319186971856344126881552562235972009820581814494349407851830947226830991485907990264103243991288767676238037321908179029964397718328345252677183866560470611453399695947812237956975284361512287778356027714677830083454887756615787709065861370054562990403201310033882404633762326779384786030812825167242812770632149391017171244737606321662754413051424310935883871430101740636675027704147004624987368843557080659448119235400896668347060088049352981352993337565335603076226814450376287551172542097944213273034686882525262863099235026703234537813559474399668521560395996312769613527619563056806887217454840402631828428399460506106221917181997583315721453579101226135188885914358149938728228383389141034915709521574834712841307393108913583252868382430936433808616330844004485012835701084379491514394739623971868042513035117679388075606621011183815542212729060439710819296966276299462173455307440773672231331791229270110393019079748722661355288790077378617602953634934987605995530701089246930695867031662874077820214207412454864524695202188541604463737021051785755601402753971774854334803486422449444504823433857025242781727031390672882524257842255641070656349987885101799195183259573976322510988364455402157940097879475866308246604055088139307075413029337773595795044488878458635302598683155564473831391171119573115620607892776859475757945323699809418078377101052665439307175227133682789584353370845892327329461553791183210074877016933463682167046989181837302045269430857089086361896665206648135734110277209500942391907287507509091974973459717914109283880304684816515040427239330885054287926789081796882947475946786125323032155510901164345291378390200130418001035581090675612068016648788813169628178426748803657683152064084431883824257793494811103605471226706094407254516930067862037403597124777619213012035234836530160483471659371644582619122951797802630533507673180261242976710356339332187038426668136053763422245130105036930694240335056006629815130612235660689562135457409986548519749906482722538860953721222074463803583961821592281831000593225583965751562034930702981400518478742670460897362486639659947617934827363832941195735590508144506085425239564953817835847333972426259887322367446516199402791604507373458571308511986234708857577158284665878455341520819940967982391509424044767807756068311433389136800222343670540418309458233223120336771952544465375766812708981985099152678556999851366187127999705779189753781586628603015129503180314223540045699544703139066364968789701387191139007260723439000867574151040653575617344032584007310088390681415192320319275947509189612786283026067947569799103488518986010100579909344036517577531651418957876735723846046673247697176637568644775168295771536836373508732629764687581665417690211224676326012792470887045317616600527269871119632459482576739374814755226170119506310186499340530003558894522935959136000744430082926535043225753253625728203892384129211079238018523967682309277012813076213825860498159933865273009738228775807339103089891115720409282662242224402178324581824973806113623301623367577818005701736979486856943973399351326511332945412802504369437938429856374016805305460711912090060278677141696936802908065288496169026231852337002163570291760785427273364281710562780400124022901337535464090099995714934916957131790723236802167654910447019411010413390687764361249580948878865803153925719419168436145537585940039819502773118678523033909184053803800888193845668341124463351908445528828126905841290205961343819249543741994809879144976059505618969291053064378503854317752717479337802657819548470342100697194149293961747658335526530655879689944413015846047737904880003853994392729364943583094427165688431080891892691484788125359600773364565650263154931343936386039222531807245267670287251275626723457982117807704445908936954963861672632359918246090115041897240563849008929503513296114002912072998743193995272461251933187831772582865838806177173930377109268292323928509890294035167860826338977398893523144483216409852657958246339971335823373760173606470454423001666609836609832386400494626739517296067222345064602311208657882078424955389358729502185441474273099616133127399582054200024398639481485856389744949730648038235801694054793190977254599680116459884588593997913520602122031748855957955176053662124955754024461005740241494923584780499561213846761549070387319845118842769174063137863601260655339730435828549474884303713155601701571265135808275806343737889837477397617294616964674745585738054849273383682205327909624531120977796894545458151985647671952653636763046515969981194662248383398613279226621999615286230692802170170444278903523162946972657666292931531287470173020841432762800777993228060508591849061592584425631414810273708511997010703147071425159302224660334976913705185443014751239532395817156491286775411673763637598956140426812182773080701636150324080345737131115443245220538062236962727895949402062787585184893402265721169948366102754946223579556016825140824074456356906158385643450199570765250134705790751576474465843907345130548756884763637680598248309166161799109593269951349110021132845352007143112937137527302404397202526180617333101990406894137179911476004399565585642696794089645673431258588564419832481714454424798032692178182360440048671098053252640296553722798179724630726205120155968603386574682065184219225348349990295453566097718466254974820909752812390901650806336138539301945559036887738481288103561449005769390992141633293089955385403031494779327034419272802071010008218050810017911111528658333689004256037219965667444521070005701921337233153280705515126116205833394177901464028070345702761986102299820163006090779149206577576775991334820791905116293819481343554676288395804324790586234837356925830879467437196023629091541878169507662565761527894015506071026145417527017466715087387052229340460337984511064781341718864462123084736642802762824169014936656688978539483631067946625593237007497699206037593396807294059764938521712152433963226176310459642894138613874475494276232357951019905948965441588314348736428874666860331719296144227554361386897730684612558782401987470281024005607749242021929585809203821387791301302012354107723126451642763826704742521658043595743003027103628638919308944165025744570415214164275647920834948409266838431876752708254320291748277817820317433949740293151029084917175755435956188408277973167702097629470194457896188928274531095121044932213686371467079021785729069149602144728229582969688699890039975556592899402900019459563868800717735108550033572118719356059098189644334294582791345084919896657997481021919427325163585828456882364221425952037315424277824330602309157077330917311322307107798979522603476612530268306673136534253424738138388888248119976970114133295520453623008080018816666411902803810356488017982865525221528948068700747914330937520036927014175177172759685152473728238026652959743587759161062366197594583834422804761713891297221865534366258467720778347482952352855140478529424881169050466712502989129468235430929843562962714812816437974301257006470842551978706689190366660082326241636800373054107004783214307002920546002115427749195963681426408902706897360328320086597817646490106881479214692583286669664476799812575063604098460762054966489769606724564821921569465253541312161663711533183226678686473598096191289801116805084937187388530900925598417587417022415183223214860465829909618419385759000396675555134810625037603542879399480982607456712098245344883159269055957159362215165872370636407671348501828062149572914444644986068469598022856358418986728307873547677421080215801595575868542887876116518373030253079327106290980067609993707654144644423914317467839728584165961991581178830148147332749927127751520592841686117935973305711503908499404550746857204481806647995979589725304895771179789114238221391186968525240283830429720054884132234588132820230967678287580162130276061328925284008718726026278422896524113425121578200662319262531613120537593143388013483096033417376091885257304791775855520027645760555670997559839387944124362939813286577458500099415258640559005828126813402770495180900092560016179019586813285084757772033001467199717668874543201293278716461245447726958534783771716472661684672855251314699068646874079388705309540376235205815693418484477836064560351778026937995028005377114715537094067403045027697056509970489860612587059959524607279365852688069292876005518125979442609843270121834978038942027047776076135158893390979621020200499843733290922797203625307427174339725837789808853076280395968768200294106899767308899508377663871464550739251791612768624568072925852201263389054971501837419750113185235934801663330971723374516284699443186022058122015390655518205197193475575441774383656348144630964203021053417672385694826782307299984885462236721336976859426910258743747754529846149092311148759832468175228615683468682042469942025116402343924535360011788615425859883913739618321746953065519217860004926223972606041930399377299525361931029475965580882856085770977171212784536984131060006218859196502197185652696114176674291565006901148359593153114968313037879607617448966913643914389960921039651703732656899913125553342831079800227568241665369745618787181472764561613066552954537373619296532465244910740251715796966777000773336210940009544280731519691206453150395872999376458882649840446179438551233933734137433340213009554421547637422669021604103326691836684928422286281403659232216850290089461829449320904060005118444343497477062564209743880828895175268771300858981924420695024366205852410002241902004233139073247969405311033422518102664594086809542683492772485658728951623670209242737395931035601305622455734904724381651413188301013391284375592471705312610975296494740060407713272641067528373210657883904591382892672143186710140176290086143923148108543183595257106055126650963367361879739887714398721933154811604433976842778312125883189963602476942671614666227794932088032442733023005696781141754306833693371722496876112069887126412858133689890148959272346520082037767601272945089313506201254821530440833691379595563719560258894845054784698801480133618867967837927839422219414100034463736496069068230549983495973262150231351847796224626601514294620833392035262549068884866297705284850085458716403288561004462755320690813296463406885647351434576797106865394134073676483042335898641099671231933086385314698103327604858706627970754637804475171795464101648180595125022427146434867273620550390985963220844295223152507401764633066861248190884670376155579542877401675707905663468933555681950643846514729531428774689988437382371320177799456510556980394145406370292316581869572819679756822923459519720221722314806922354437759768054136547996392618643529570938838112165444152950326512806406600735472811525063943559680900706121153497136976855033250277719619966723572783141587976431856398445343916409498452669629105367539089918933014000264347776188918432774761400624064301401495017002123580322035397999133564533804639134169161880536793363908626586186026621886622875902825549946604067827265605881736588657843047476468209026690122876828705384056249984336380892693925069627877539528684251886485297083188041225649998932959242719690060142906397002620402767483042281034248341778708285801077507040145490955352113107948640982520465086054033363394103641354198328672590473726215137834960204037910041773985082002297418465070359215167580585401208331297086146989963152139154170387011430326398190566360549330855789261823490849937677142905302882763858852834373414617554661400112901538156878421619756619579836780279098214519075910566981590118132823940969588661045389664852178338904149703820574083646912962096864545362449559574788449781704570030768844675220529230933200083947324511694583343849492173457330727729755305510722862586408012512331472840931311245999626515252747227118232859986855111862437363462395399120984864722033224539795096510408358939104811894148133869095757895159044644910188972389179353477945782120912952919145833054095043328090668906875162628116302137510984368513991985025166059178012361952306705716165420792024887539262428568236991089479772558253963900996271295963314303847421098728801261352635912929583550160460842197131006853329513359730604789142129259727975661891483007585409167201940067194728117546001649476938785948282309546685944234555074775119270966227849682713556086876471874905910965947482313914129971792426622750124136011081604018463121639232931669963730683056966679630347366909877002029289121805243917484058227339031799841333850912923976532028715158158691483674617394153015045352491239127116505990449597743444885487552554659647099465148688543401118040066449341251894193064288874360675482915049174855763079932696531031289528314422264909541439630020089537633440768781202358073553068263550763930336318461791223250574701429830802476597720955672986618195570094880229197733204144004381492770930606748727643238034834996583808012366071329087210471099441574338154335048689725748168614575820554362559565930041192628110424728062722859023269875723284451579784719749973984819657205451651572131770005853715297383456281894365118404985845066634438265529349609422096803296648888758335753177007987226954249296495565180828843252239755539651030852577901464526694887375124702928576359855956336645867177425665764504021102921944557834615823073789483440253443911812673165984599089415573178849001083225665692590755783936375475639362542819314037982476087877609048252735220912636661304013608283841308301686838772378071191314592884883953746756445442063737191968179479134135386994779824070712286680267800823217089137935699355340603940139146182902370053810143519724822574118398880479754637422142021845583146161709657132324363161196188966532964320131223563689434355568067344561766398753344204558305513152387231984030275922903025664175815128485026852827280674053911150915919629778585412223931474322655072840517178811845741149187551754837653633123826105972263733088483791938532962535164107879629154390001372136464066665247198854909366683711843070646512488748990016627714264789356244287287362872968020207537984207821777222478545666637542669876983852349871268546236708835118047729924477515329572110584577293022594481550774208224305291287952724747845042406514857289778144650864392246972557871966595614582465392389787303548616287365667263938823887955780161314200417048840577958992869726461171138738140318778261916612118820361065106396351242335768221457613272281063436486635310342391156976520560364699565942778188500514005476658076799940041804342361158272104860162461246911611661617980563790204479409035616791011189293798213732254049213925663338751196239915696302437552124130875406845844620139011958534578309807834839572183913510156807333475853283110465282768144500698896330192880172807463654078216594281574266919556608217738076324807049788770079293034363980497081126486350300255726394393059351962073250326937234051217998829112420330851814507175383811003525084493875229166213289087591653548236743546119173727487464379857895421827918797795967311916246440828464297893092257429645201199263038746206939330339693386576186187281536868888576127161525860903520034548536013142203924451351553620810606696993736337168833541915403473257078328234959318647482295638110083714710970730950007474095473588318973525287570209016576025891431203918919954117492607026234881808256214968577821476730345654497437228705084736641429733261359974840489677577569982413628871404527026529460122081473160399992216036837527845626032725526988842939243294755915676593722753058483521363003861836393967486045018294966775344323363198303467003886693152239825148746167141105361666486289373077623759375948801884763553710228070726510927502586662586624798762055269364697338578886145105692078627936817966808220353630008264099423388098269045240761976184310932058118063554646728464923456027553757091454275685237290674775258143241755677074924557859312658005884341816709039412438845881272818084024574347495604745171814071244070546600725781909175358166424888492982022298029323797321068533754171114199946364811842064607178820355090816373760741635180116825277321542371051709691772516360972707826111096729130220191187819904243574052845172540924222795565171137089770198719262380614236437237803548091535394469153393627714772581347171919943379995381680876940626852290784732314391900505875685475160617409066483844718331664146133282895674109976716872814997652858230947783972908981875840838064353616405773064191167372906791158092066341743455636997320328576346960013241381295214253470766986111500169609831500398012353995685645982721065916814845747554462634105645279069498119071779331229575334522070456467770543913779972657647503394285293098365344612075249947043605888506923356229723067164780711566269107902776952748397395823652561741031150814563990275447976061679153529461252524217521243276473628003307956495070084528732201073924604919706999557212697107399575252033704491321128272452937853145241011078975564232134802027690770733657096589213407955843518067792862632269753522869168409424901474596200413739462909291432402516588976851301427435826988809405972903928943280386420612545674002957638521774636339552495228732684689544796279783789540410729004628616683497360587908740024157474020780382197014879868715586187926367139169012059552992649866775540936451572981198443779150278185919826500561121555842916053845666094983655931926281251962120993219049489959599765821619803283330647383233769696413259053651954769901639521133190968290436159952549221056733361215179561641781461300790531801275387989837725298033227587370283724682783423193406652612081350287719402313663627927959771105799631077445091258560930130993375627346120469592454724104899568504468465423001498004896227921164058754118987399574536721383858094154635570303047280421918659498280157685054980288192545311920856268399240667163318581315197161178580911347683286224396280212015360121995545617929807397979111236031175390754758060291487310140876632841941111892225050704978536241131939769314634615900640438891644336227204562526909426720263903436752100755901737432329137948939959516390088441035406792546846418113077036823528703567406296567724720430600455509566369168431070205824509040469292636800727998469449241196053208092755391777909287438316763153847548707018062252339498884541237930044503374715988237644912485820365376312579408672872640986719622336555462641598804859869508246095512358498593815857194535427024554695687364881236056446615124348916393618101138437049612827858044325038216607229759672063720216458716351742781390162528371136303466730020983142256460761255676330327218273819897176646265273422699776036908387186660937392794438905918966845522604168901550566503100211804642499168355976189758465472317609662877898761521458321645209232305115008503475738221675615770874293942971133657401900716105209991827690689165444944400929373712333374840565324248392391486330685070880920356892236716730422876340355067478940009343824003254660587588463718111067073946035590295425521753509797463288862236215828764500811302559571147771114588966381920512149607348807902538633633911711736952696830638960051649291615322864805175525451100320648815367733810538282203797771973193722694756793546713809605686371048455858059324247405542948105336023122123411550480918549111370807737569659254374976062641416094011399716404219131071904070913621563423339175931038136716169345659138597093073134408097812377404483000554443156668193368763100052985134451478231907348431397946622714185125035116508187164979761138430329219702193613465628330345891430962051084798226585196984332800848945430071404994392741431637822481842480803653719517389661523905648068804432830724358595564093846994520144712251872460583489875241192235468950439873390088653663020642129666179317404052140874844894429795202431850009856423473480662600315732854429773346983768305609256841225307567780249200429061062650111040371944005638051868511016202730330774206032012001838988657087074854413178050779936696100802399971695885912857317523699907111778729999980848637998691820758131445189745154365253271955061016050481189933807785560141964387227983939976074963036853758353162543627962237654264411006117089467558477894459982063435748864950625015971913300363882639489329611298804179911532843275561211242255883309872716341736593390162663267362522488795812010947331924322161875236915591980633281242174120108551702749646524490526543915419794259602142646485383486857297886062095580514058287452853329770188385040819033181050663780531127231104775593479364339898539608044516438317307362700249967895602236310551580486546456685133277483355747355331542548141787659020028698003683911663975527155203193750145828787169703949521843896062637069279917236402161787065960952536639248967853942236433589294910676531160404090673453312059076361074779778800190522761234241496018446781529882377817300324016455734926176213249039191031802999244990778103483961994406012514440920971204777550976186156180237415544702450445926639863235976581830594894452794949280932357063752815551114783343197919144712886619532823164076395091966621790179968106482875104034131704251293230401589635340150787535733566735321842958816432474786917372589887786045863753970728641044841444643575602127340638767091002628824679268862683367715845725254677895134937927091082067974598702175789790655892819108564173014906847155298001212051381165094613291106365156492031673221097618178181922724321321892833689117614746714748915789165972595292574081948608238876093097911878329021917972812194875587648846860467819305265459062546745782063280191047924652504148099972105268713566755983770224390730747522607285520484661663118672405742742007257728056111185038649935952667719214355246519296663177407174520912874644551094133906105018418404294082250050759154510059794457562684385575314380684308348649230648654262985028959633394665746212198269880927095631137354655534760820734829807103135096139806376148304734498277442688649233545062909250488709293170503692863869622869706127209082982370762802348515185270063417521891781289031735009491590259587549835335655407389811459735164497023562811560015812242318706455424675350134500337070757389656020114041980089786199742511103455655945425236483661243588411886931948997593916922270385360929252562787041043758217268368157895214968183215278599039130864504379043209031272450037343271989406059788010354906843977175798276677426366674135258797732870672754929160393233026715421940424069720208729480542030179810415350550654624375930033993915710995248939959322469609239069189891451390931345891307050378848921149128151565715058026921356848773765548489733053435358542631374170071938147742185329511727809440707162675663219547456618344187051339021541436119422841676830703505813204014916424579803734974252579449847006232998757292770909383033894131839069912352090367179484951510628191375007510769356849927161734615423521372392567465907292701019999613934082048979946486719183457198787460884842561821253964221351932731911909951285343120894531758324851037623092526301747321817346231045840092557918188321692941486742696449806675903961648046401278053299447227054225739626344056194051656840194150282399964587421406638178230116684851666636205597199581546839352940396001796512141808919150409069490304323629974396280486943793505511050157007234012297427565291162051696807810566934895081075991107762742260930111654451986609965355315138671263820946937012790563355871373375943773251618495339377045202868380653308791139234424500446892600533854073085176000907752949971677956278780804368214290425869327823115611731452244757346442805241648958219627907128335705396246206788099592964107871805070162073156626274568035981259218678379602301665631247387390712033131114261733651945710400160346766943262022974958846578702554912519160228646986561408714469544134427150569178258152586743555860615710537728956259974132456383230201776785418556871221406529897824920646688358164483928933066374833976033044604508583729548054632935093831366305385974499375043192700368104181137743965004114966199970824398401159148503497712622675597991449035911554623473833495553612083450558645708991828367614822248291929044599963566529941775018382143151259809483792182957168934647256545471123388415683565675929031429816007237129413577101833872252696889372256934994217814694927055313472354428383050753681280600585399611994752589205646973590571418513755713923872207655760227971263440511108656527549258925825055560573241752235924115269051238152445465028592183782777093446171531287295367944080924806611572989019973408706884461516305426260928492344070603087813832312028997966780277574428269993856323025272427257478388711391200000796782753310459256431755124415132130827343174553489062173113904592980256302588327146441107866731431303637078733464302488076053530890028142672080146100531367423366527063963030095099220126525170922445400491185403597122308130962478648818021496695017993730965382852367271986920388434959145964226607968772354293508398768898485792515722339540755468357840111319622352021589467156045852967748214713012626279949734714056524727051909433077288936543052215185278876340960406699597011178775886796787333770180489575739791071848797948656827558580865130880949465344664602348255634483768565055143804748718194381261706019917850080999497340215110630178861412474715835828460362903546494384299967060710505932510158437318352650459988422817876661390356748960740503855190357402411453742749358451006245465489626026822264356614997846715949561660381197539304422249747706182984718395991285116169535897036637905849443686134090610607658500339698981074278541253851165126513450500573596728454974800903314645717743824220012822349320081476120136712628898409651651290562925840125388427176559084537742444036383823811847711288434003838619943665823863329249395135991821349434917607709265234326717312715024162013874569874702636964745747996506312124690384276183644902014929371808064772971436724807737012549099780787731029095619763025512267705060124084033727534631823238188461309091299734459618892048028435466745151600177589333902619652444061270068361254000599512089327900469546735217045304439619114056281456419577984293604817464994882241704038117008912936910587238800732022467159343845909032648614467100405419390974842065510599680217706187476065431983423154272245129598189187022537627868099390688797175810599025926119143578241654140079504849662315104347524900354220080427255815914166003580190940896745202640270971059187169562399375557954276753768318117910351672157225818585675944116410914567550531001405454392005523188915992330507836523368000463918859316287139447411574268972505401771106549660170139926360803508917245507908419281633458170504303026501692473792473984625828074273763228757539440706579223246516909677404493770068563684742778772364570555125230914983150971537945835921837986784239142843559054109024799497532837394724723163781312347468256936959891090251921713880006627783150514288121039334191125172584709106847916559279392513944745579044076002556586941691627993221846042672384949550947895462368095386450030916989415274725240304844281377710711230029490963846766760115656192472275461487587461421103342434299625279118158649278856574140096430111464168197964667947301156355576568590439163272004264901047864188185116879237058881946300991711281937757538245166397265563532764491669593713055449465768754343918027860477298735385510925341653711010615200529345155753243718688807216527132259861444301859626864874724205483860138805718399815409096800971957741803007101690242229233412848985837672262418295812404394342865045066425743405909837453652569457977821765694918754369588893532996077036145935411710193920948449169894383945143517867252295223318679665174801809011110948118970809863797565826416894608494511935532584836454631663943696671519616660369186494137861318618252176445135958723619340438722319372734195581997518144370595158286546392350906862037502415288473891946161473388076310146498172122178478736450294625978580255741332623471921898579795258445676670905426377738768044479713731977416336327505132898198783468478105757278733452048935136805896249666536817840275372418801365429003664027727482584347703982543987480802729134794568770187413892198667001936292652855102847019257308721742899696868598822804132295902949626203898881715805634696753587312890833761740163336031976650168629962691100289876708804025929899778614317260569539147741271750228006406612891948972413016200506292433398639068281924975236631341576192964202167921740798265578698093063064162542984922068985820903295062455546070549471714048790622380079501621603090095300424926064171282859849779560831619132848811132722552044317856898009467448129070493592583703924883356187720026896061430025374547536715078194572945633505157737743357057042849720390139839162157876910985594807670735786343609827910007203696009542939258819412559131584212470740927747013128037010681590270520892648863146583321833332956100474039267122909788634046213515648089534877352341958919979485305987195654372335726979507799548354548348259189895189419278742204720921745266426872704484701584893963674020322190923714868566606955211123543136551460889707145819312741968949152502469364134889846570193142533843572009914470135369516481694251471383116118703501356456488297818156768760663190515177095800315974200019975151468890257416339930151226026491383197645732227256886250373052876625378143712825539319598167396472831034016397167598346324676080627338365761832047417371112494057179137752964679920790769106434534687291571741232588431847405656628650534958301891259519887463941462627331908158016207555276307113490980012452420321793888663537004406433660593444818147462468186940751272108828835982420301067072861945309652180514333543940540174843000874656012837952078043818890393844265025673166443656378066926101537080616121194822913342372219056236818995611462779500974233147681783407103546759664916533124098476631071879871782995659953842166366623534037409728716349322542836900929295984224562080141053265172634536281504745492536050671492285162434716615415678985281364265513039265027785349750366002685025681636906870186793648301037807593011462305278582183064930512245316996417520327693766800877652912884567070103077576338129270894323115477836551657734287678833059559419390440179759482985893252255354557706053199745036793418252929195846173479223574036627505646684621644028980127121348910335577529158358237828921994670320775577365087206393166142871498893353052545356372904484825184344448057466796091236623923419272445184126255632883676231521193390787456004175042563135560391975485899790208547027584142489657560607600048240525823654285987451669241001191460454835863385979910392467899861428091584863607398737898663216557455972999547921844451893239226258568369069247190428980252907922685216101542800002351613232035442998711587698537579424286685147955300041702817737776752765197307344876571929878946223661205518115287125426685908969354187605341186443256626973087868183883763859646207510007563538675991024190836631406749799065141922072847785326504922645042297011006548905875784989042319423537609361306323615354328065021643248681370441452101642030593081425645515514160817057817508050725960515413106990187704757630788348883581301837709302729395053250140096483471939908505710049991974752216532081878192171736391021575230501179923765039740915626009748407400271326238289312900903436626249024581760823200796342610227624902623184727228318996863513257094637084800174889403850317717879735268706750705778465932690323055306414794544228189387205469969463743170603307237452609431864523467015689593625287827819889215914641723070143604747938200876996685471816666071789365318663453209811578273835761531574133002419804614820770503382669525070792562592559072573472786894784849075950634023666571176741434289461243714186663235370596151238682214053361586618031949648809150385182174476319912256756593359523208806101513883295344257493699045842337701010436636697304788185492054666017755191677946941820262280558302408296726811552516246961527886523808864037685379945001440130204389208824420451227418536856742210645308020231258534372783775734504590767240327881330358816668181258041353261927339672143609974624841147473289512250682075956950393490864055079298365513014856988966703860640535823986561351518926888136205871187172675563450987152778235019981752960280856399730923866970778065674302692236696281428665364925189779091555092307387136377421463596173369109366711127842797475500325703616089989981149613600606812279362743085996508728237823746915940938803343735161569159919007887645860604919879468054875145192592963579066260047112187009354228468112195502647803067918511052767182349074465738710613609926080837902362726415604279629583878190144585135651460023431612128704373870585899385602117392752616146843527326405765653262220179048906756939184752275941534554698953133959819527870321309743561524389996160975754506308783087982304951781881361026730781355869840646066356072871381605373315776915342043041299029446434585686532961169475431592838297958565875203509032607583108298048672543221964185844380356465687267745563446444581818084123428909731110465525760166978239353017373683554944897077006394781322675274023753508236375318671594939082334873440265165284152378045775268903743079277280376818937995632661590838939605998561286010281595675469718991925077291671201266354832246900515181439971360401737180657218275764915606872414047800529555380069348897598661181122788096243669849071011630924329645238862934254367342898478933011513148522141330994544247424130548678135093725100717100290028985094538986628105520496788701532843831219528600456896182319787314222460595597111827617871680359873637706309564370589386379639522838293894250999523002865625038797587000576105897368121755644077008797993209428966307226192612878002527687697320933144878683048359505557712351676436258258793280423609759963779186255698565331857067143274356363482924018523234230244093552801860947494274442964063088045076122175124728134878619196916148200791806229660449397320835777091143963891109161830603062854138027696371886075967175642228148565603412612335507952036154612314167407573176110250393113632893874195931304706539169649463248428343573708495008532169443019604395361675792059448084213736193846037746257224019639208097677841902983118354497699954545613264368172410063966989999122317190499133827143098824077434836426412035059291756891996125449252456854579279580733762666718617941517729837423657180140191930882104979989378888559437511309998949950194630114406720583104302997716698678130651135585131510387319561814650903259361420898642394089286090989487778030903063195152858259123379319587891189487890499072146723885485021305163489748358413881047008054379422676165741845653831801842414710475243257517852084485142679995433545335084245270331217681455767640725306203136755602181013613897148223681092967629590036975951301524153267671172412283020687672860969680220069217263930244419859200379812104745744196045611583703526075224250663874556004781368296660741674687259152352826755939878054738837000866345506657412893648126751178405739267432769735798318896042370423494479860188745714505870980780584430074315961609834880363926368188989674924511269736407040733658166575795486186662583519669111038820265009307245909269597669272884753730080758856928212672927705550759526086614385868557492153267822714307267850775338202696392196729191158160931451747446349405052077429391530672557205697655059472614098307047943805316909446554845944616860635073120400268120489108890903582401086031449265876255192349218656587820153386581569430026647768779115693196934689088375736673741091215278294047841654143362659649250840479504704604477480770835749309336425349628417997655124073689075600237266009137907099128468325683516928358950310294460404021447613593775063560451707253827404513110847628308665761385713867194365134157169379102621428355703868359952027852004027969449998595864847328479537582576885230790842401826516795888853196435308560266715109692033380797901804563527168745555154308234876735266719318806941777030244711269774508018259661523647252987437257192025698593448353969341233982353153767658368525625412091473399539591414975896332484782264492524912113333430416880486328438331816400920725077260038418498759629385789149686714278305639172950741298499837051602395505058490710485348833059177273979380740384304855777203159953800149041236729002267334828983471693939524677360494285818563262719599910737565509805093815471585861248207281584698654495164495962517405280485508174408353795997866890685846405533324086507160724968424743005232063610421670667266054755423758144931638657110640251730091945589234681523760200718258030637117792958271519970512963163688340701201021839485629639460528291593039839241699149063138509276231851674561468117952913630239808593531369505831953464716157430951531192262379350635218546765914888565481122603567107408577060269827720679958873880140112550201827018399326536175424519160204321619868387810865263757552925605425024936451519791655207267725681857261205343574197490585207939085855998956517751618247890534815592605264723197885949111564657399549674437655833266960895916143763446132037919522667331979977701314575439935562765265202355570189770452021173208933165519647791373959791302611434339285571166665446476336462492288324129318817808279755335365607500375445851015018555464372802956899089940870283246256828982002619607299537721215301178415428704185854153504777239810006591480482039765458323865463583532541309503229845994948405177926929086986785839376678594379993912154971901379148593817498281457779417193017333043932589670609765936401212348388930402316894947976176142233775381701662119573284972057874219998578910327810587806977819185330379439804197701723341709048849676474341203911729466462887789458937939531014403113997057108703080818170230543362219318026633811480951170324276961122585209980415589488607879754700130922651013606536497475601339036105226472217174783109298467344769081720540339912680344681828135529427324901681644807626374030598320426788730003528930856101264361390438516028326569921254206527453217484057230914684480121329810920256747887976442784826062132456536079740526775085509450238514112948556383446257217511697715276565781605330061861967531583112386115417717305534411555661259522849430121191886856894417062132158743484708004327875557233097677447301496278054567651255138995131110212632707536458059691394083533691572768199600881417733905645686315698839736597298046614362457100820735310887399705852672441745392684852341900010563129444026413248974214455641224464545867332912737302362756403200462003888251473610323067790642410078914022329382160071483167045530453575700978857563048558860055606075512774641002958968980169846712511442362294223480234050401832290911094443729471330950607120276753826188288613999758569915410183927808831713905254784263941133264496207128210496156272854682676332329760526737168317791812805124170877953005596112459678219571568711272716369236085647590916008110074646952267742063150208984172669166231498608711366119701753605003928537534771199706169537894868480419765109147730095382485616978077247681620621596963632590621854760747810717993756749718099075592855375762580607129338240262055759334349490474541491815138096904583488970480713612357935079586343753769321122869137503201904315032167759640520981405706934505588831092617570032343841552101909988855292295940514106509996914465655002407275868563466101516408907893271312962573013145210630026040134438588261722868482779458198371941176133016881607482849825016778538562518833845037043369138778686703706961962768257617615332620960666971715500960505537551757740264270424842089169690747462466225965745734713289842622322909558684730143326447376103863962201567740699883971105742876860245263726898557445393946968429917786418161047388695618689158798894178251067683932037303256683510461681003938424796646064674561458300215965254160466741077011564673664247231853548017198639354762892175193169791301366188578817131213729983999493050343599067767074861392319778478131995803978332463526316455932289132691130012188148581705817416566781981144668729869845976564044963443668861809604625057626210225408429485590027393404046197757492729370172119817883092002478452773657118623802514300891715432754321792390638738626017992415948716834963185085390058365406698531526432582242973477525921110722377681167648912294161568092717147846758918798762433769871142536622757312897156818210245954406074684854043107060357846985880984121926675671083357082128859221656747972487584003852454104960344810444467920233558347201573727079091986903556146550814520370926351790108403431525524388564385701774329182759213691255145359990825140399091617831056753065695834183871882140596345528336936449118403099980087335956756584288250841789673368563640946516596472313521048522351287663092882265955228598007145362424600774425831233490132972587231360674862217316362030401893692681820300869651781539191517449098237348720030923032358940653183212149573397088518840988292223031308252755657467562300881942625545687630375544291590328559280039104623057251765408515738305646983531778014575296283767927334120641412635609777394284462882778690425155315921247442575128468018775085685535254474349383157586074224076911385644950217685605743323867731009961176145075422359933977245072501778026598821223503006624425158807661707570269277967561564357030403177153978226476210574992495861758604588371342491189675764033535782707466825558357667605759036614223663181735980720342376525767714570913546342060599883285040369684897546843381595669115335122626690353164345976976023221030201331339428108678981015653905517205947921346764269792157202571665059727333773461027953032074436578653104741067081791202724657021779005230271239960905500663143063790743015826385686505974104684449152622314493475705827261897290892642913225253932622039078573583229644821961658198619163495118721167645478883865296412622798641513495911442267929982815165421727833804995429688126508353755512562637944983340772413509594263246501097897243405263383884853707011201328960346020376857795104309776266445815545884480241465406537036529056187165756707838609812569331291886971158951098191085818584968500633967240125549629009235974011845312643805433859140432036318297259087216982383549327858910773253361910682192014715068317365120150413090997537828703977468647217411941541952156314548743684358933093472372002921915167775161522074011972676293031649103735527648845920056493527386463051024338325437010181063425669858110441119694448337554281164672936105749408822308298130257667418730055698004282770976525722772595929136345003700414051755071588602291295450460491987019405009135737771926972689065980082900735081160784698033551938474172529620189724668077071646565487537064862977794198334887743778663882645002601225312628071103612856454303143621291948565743313514219044679790123593798002297770777164691214598397971458589996662829178255840354182857914859764676118532633419700971538784075059351219065711718682097000631455485942177598438743900864118689472914821876026911171203667542408515624607018344678027469326444130565307606249328671888472301189200200209385489991900791624376103900389951452190537957095462003570559558605529142452126924533232285169940442213859591655674617538646201347815363756525133677730201139477926308860181560576458102585416784909625460211198426345355556452392422028613520730491891403234965770705292399935687417796175289499246806014927970319544637235864755571255093451313514088333782489860360108160797890082357323953342293993593033080612495420917829435034915067029628819974026847728297376629977065155610376818765016788057637516004240329158336109753255852331043775199780854566832272602316633547989722181096414761057354083594177048057093015483185734117491978555590245828819915772484106518772873797306361347444937699261323292922705286487471459193272995887283064484256732827293368490726435566572804878518233936946549631386641792494408519848004302869003728251778065394446344815601337022912153565526319109870344437662436767078600413009920777199554651067565319279611842164521530178290328396399068753288387252747162420938321086970862948446288934273358629938253808656121687069489633444973794005522525937391473717981424725131728371238813224548565592668109189218256491665279419112217423341851318011931717775681113047257020212524387901626399190185185038538852585161547254401839211500762456977625243756153849346089057604702960861106093062111095247446088834707438413245477907956449042042448035359875171527498084643998583428679983819552483434440681659812638336236528961923173728424028544830264638527744560781791530520057085852695292215583917294641126332094013036007062012177195987043126794416869309242788991266282814744314028534674657638391442843695983830390539901813746399353652636303378071251031636009739264006378836878351934699052472664127146997231882661767797660347019652690776606995204590960217546205955154547416656685034946414483756797241765998829535670418699571092881814929436727670890432687589610369885515638327252132842432303613400435188920639746047493722616790239667604549304393517341665788503934680853058553522764907693431048203513528086356734175354526048155610876151627196032986915742572853562129618423057916559209452094760105672817769963962563235234436362085321348031275143514753784007046170768224371349229647299125577380788255637804094137918723136394940553214992707899195433928861197132208603688406111896364504770914974301080275811393976807045109943684758282986946504984751185947045834400320867938445664266216556269443247066441085029461370508052848936282721776402184068952301113544628757024928404095553272034955938992805513872813242906845956052463418208749044032673197219414951020838997667770474024206630446030480648932708042743346684660084632071582622110175419314344187852716760490883064716086797488784758019755596913515402684196359834971332300141670371962473916696577025190925126914333614005747786374346549271065254793826020951722962939249090446516181039262005439347265041266808213996844523037065648901035066924763394758383965035335183891229160582124346667469740263016914488299239151518754407294270958442837686579125601636635052899128758409441673320342080335028627237091363291861349279636407327094390472115191982962742902730545843629041305903793723400379476847718760064934681983813183507217853320418520405654632921263054658449080679886065638520898905003309296422653578800483004251535474324198582382543025921714228765686739549207499512584946134778896112319067857502768246380345242447425513777092578352227101284638435317156903682505630393131895763981558661602410864751585524612732114737761001737332835072302672080526880330929871110999116011272836247610936948759528064441966398198202417122192932607058458598005255983086278489333211840183184825752469420585334929384609180322647803587850830123942342468949532948496303700778447236666338997983033252402466064100791444062842641939684471212996462417722088431214700790239195992450732321337898021382844919897667228041781870357842289244674592053920791976497146648311320031160192404899567759770683815969934146229884071291927257092209891835055438968866041141322269793756767225475307703795767217209192024327055152803532451552427158144113568074672720914538824202905364183776313578631929157925481945068591429123399162345114244477777416162962466307327883060162047769694921201932642488375686396562542063245125142157551064008045527601745019922093338123753356613222733528316938062280242856959686055075615759992974519026117141501165745824643262086354088961819867052788837484476238800570730733408493652977297646720754513444002868050472389011041359812797309172078014425940467208516804296554697366486181056809626830957817663175111642691310733635564577723136530076747817436237788977623849184291430445243999437390149518954759075157818247987491483493737630846135493918931358142025748342524264555751910241491559165497584237339524633008289555676132197598695592999921811012378169591791453298831085248246753734905244596551983093307299388456886261916635329167138099180214421517048460936980791834723887599211808554040295942734923858522270242777758754918235434813562834850893551205368279869391440290435555578427908699358170227085189939065803352363639028189774251484456250844657040584898838584138751826421265138471263434691395745468934454605380849929814426519015873415053274527504566118904664211942019104819406236938465434801121984265056871009946275503090210101241702595344367157475442901149352183411242205633837688472954103569176871996775605367224697322434468827191205702464075040670836225799594211769290441561941031132261681336135897966239055474401929958407590813587523037432467646935114045568849365762747150102935393306760482989462265400448042387297817525179782183715132634469061814413197883391559272133672165780669511634045072337673194469994134635487193564619585790342487864303115622381697584449736910922083413438507265929866689702881259953655645585096210160709352840294487958453052284928456998862953122173770802015229811770010532251090105432987574568638513551629794072870397869834935815449223753395064280714830906248216840295271860039511186638762819433047278830160712146788573539813935211298308118018401900353919488864520020181018189273077024494857920309568745825136561821769641932100780897290587369577751115057938913622137267445190999427537765704359328638143728560627790246016432181227121986321766880197852295860088572780850051640542973234022839008485971782645958881186549314305040495697012567238371154992562773026368961713742767296042018079187756362482905402441459089607043401517702142515211799716385876347357687376857194863024011748215193655056942306149306311312986944751212888189475002129016193931873046619336528380526888517576179215976850816390363116177906864988108400201788745248542806018358296474699888694563893733594324814441531185468122260356522443512326476506130682507717766972875220929168431054912259396424735633633515226285545931204550788107981833494618908157724922525239290458290017745770168292542130956148046315835449688027419977804567157161207081293481705883339873683709004306641165344014314423591035962950666000011409701185080460389103736350825671313539536285237494413879684385879724033812025824991227997845167107183010430577909450546233130869325522363588647593149675846886878830756752718980569691390381438514564148404805115234829363184869449505792625550419453849428578375558076775890609315538872087523965404867663727325756941401949345725529798496271450128235844066101497154109131176231098673974262666426543218332011259695660796796245092566266631765065067877464566675936455882994626660347311865183555164112685135290904176140704158865407922915878683179127177293976332136352190274251139847278867616722425358742515660209240947934819079401850525213970049850179137809046570193912929261903248986521094871826680347426036026062563377561560887572537775301624416084815856047999776139305347749928307734904695295229734466612149439870893325396092892358466884344452111893886284822055168162957586536124723181463218716984509913687508999341433429758849888352213701730629140890804839386651354674150692716923378852182216995774862118935370381500878845275197920357584885673819769106630565263268200157600584447537064432877251861451900133279581855166600552626847492021687165836881122563077535980042072330877879339110789425034447889208954836172361067386895160913380535564268120600329397869761584888335500199867203337819259923480619552600937070889385294315012943076669169078105966103706287890835076259550266557993328903650936886478616105050523199695734717845431132949150330735001578079675288249083066767700439489181992533522073366910509841653066659206609303369909942750253118438248628514460233569069072974433654150155750966356171156245256608450099219291410583183021808060747053161596478149303623329510823157091157657365321458426481365168187087653686149325145814698068676318893441752557389050561263470671776334567609717411585329623894329613740884133735452690413476210051307689572388764227734302960408999216627959770042947892432093694827777547318610891850064519614128659296959659469449200771626212849450096823935348387829263363730367819194849089998271328284399426152468599722617929834843365877196212528929166595806871018224476505077998024412790969317605413925694610985066586718303281238160304947325644253003990430982350027451974344135452741591227966886788643769510652259936668686933328811354617276030627106857783331585595407068946255570899782625353643539795315890651446046482300456453961618398483051508570985066947290428055855374488566449887220276146471920224802070491130066859535183534202545559214785402671971993133256755513165571177370927217226087412647438593822474905424254353503719593713716980520041060266021618601729481207175208173017481450677158806692068213756562712111360820629871434811244542260020224215549057908153413218186625156874667651514005980142609061083435114525579886882075379515165567771085262686381734982777330528622313105864452182877555201170006572862068528930338170098227855010996046180551623104137369177642937750340553232421606462971287573343746125717830862599576580548107473167989315517530144813956885016824247206711334246586031652557416345056353607086829172051969473206808612355373212149027171405667947534898842855745861524883089373982948436294328858817249130450183841351755511529552423381053861352640975708582165627880649493322200288717575765440217983864957497671643858569659768239825256900407433145700971591587569428792255957947157226316934468105011415551857521004735658821199811490219300293568273709665519119640320812671257593960300645412901552056220878272781606249670837768527451899713476887474421492579176454656976065072052117306307814977469713737139082102776652559372255635799955749400849456042974614945483650521120988720607407909798085990812030702345946350281482213282183917562858652639286184296042646151279883852641041585035536253781401485904438123586906616245360280669785867830558367399187113341983691634046338127442226334673859994758726025902550574927375471750377192165231765509394774284383820144890177761142314400298875864266673370532719129015384233568785180295004089935991343998192941681835972397238425131537496899827461492399561257363432850659235142052379500425939980396633668004686003956233964293591926472169471664501631039706036305211136140604148150349222406572853482232874920116232462927033704400527581918047891739637936747937357518957460162942958842934027204663777159794299098724771488719123123458711012380029954904796671166038625771626012307517079862277567956751558486986624271956578286272901041565198460777328124404084527405821732542406573140026928099275871992532814274261225214329554884795798807054215486321523241000802154403138431390846482041535987080509387641402634717299843164314729876781775018811668823251343465144958261520024820722374842607385869613610970494671139939907055593355553093828179405765895520025530171196872915137131776352719523704728009355864271910149985171390966922478309576632557421782201562673899527118414060946077963166256580155757843547626785880895618837817063346833197194313306359918354546667419600777375100447196791212421972267978271234476067583907910969283421354640526526361586885057466261334057836518488756303988008783986929419255174265310963224567185384276049712033413576748411858068760497812379495313363681275663827295042192910902376352347311643994446283820640851815994924327513637552209603653464093498928709386446261482396195997503780665320769044316339154043396155847455539061669933998471623022645307310897701467416035435125366617686068012575422814215131041084462020366743084445678290478270609199481913897625601994847955641689515800752376236488064168111425691177364269157371415413752673752413566749734350428943393062358391139273223640796366193179584976189055491909526183392508532361431529402928860878238364459428593554110199927324477857873230320103168051290810106015258310758540814787201297463131639449257136552055437778627940876087937263751262235419345656770445578410725937905708244090188890512316125322547753055783806163718388776672545979305152537872266474654292096936574447231511999119844669502548537489157836734812391536647462346706571470756300309724494693069434178243693724966428864345079556715784268784018427221616219059787146689352119891946966788909855508867593920631937996930107460568973220813701422139503882785030532534128737577918283765705655425227489083652557449483014921499229819192081158945052600540045327472358024472067084867569271753555085081689388147336004710716993837335323441951466854231177430834286228219578817631320875240104393048208193056194625774066098199498335703215219219265290276883350861847434712875451302019928007987433015872123372588320053852035390589089398199142801577837108102358313249214262081045322366654682894373644417640455543415527766937440367130618329452665358013987014660750397341369966876020703293924354171401671732938307799601769588676388928238926294335955239342471762991256949567368463820823708091441908720474738346161468916417157494654117750622796321460434095049752140201958157845389696027971435788955204042163903374325318835938897506914669158685490252492674846829111034356591761161528695375676568680653401357626515194858769546229227255067058459102107802895810327374968777263468114981689221755916856458957705890502283382338752869441212314368572292818667312372275817511793515663555920938938690845407454017291192997137975842284415948693968045958434871678092952808547860037921853824642119492861045417512739077421762313520652863442194272792372258228671390956741585857660499856411328209075305829192315762433884626285458705453775555316957850118899543843926469106491089864794446395254237817526937176943276403616339577233612941877351727465618016766021852134079648168793318685800492906716581419049249332210341750562283941975122039501082273049140748624815365995458189352234893157332497349071517801690502109518955468676539900116904734495951795130734943130929318020843875995485626526827704542297189265059534899179250457232809784963988367331296195189468655569168505204360217270917966162604515573166388751499903459140718291920934110179654452375915596185701920477754235022066751200938158906585926975042255716586160529412631906311725364526614346712244881269953615033734137867719935237367145798217152507337212478866506319282175523237815922906345498236116201914930019343594228511848651694289766365861685015685034742552968880269640502664370333555270113809734825995899394789182804941163540279439675788657285231423608007881615120486957817237551294512923210996118707570302233026400583204644910065036678508937945260682664835097841119383725383993297520208642328099863485241997584299490294846359893942698769899936752534127717328699348866394120502305447027874222680032339964628021402747348950614575013633269105263061245799480775919478426861841612831107560390433264019388558609097242621605647578693155599889702979248395759213946172011379162052815346792440825489403771532247064935281559327829332580118471361546839798756384936887817048295283309548748713086538890742788873625803559911429131271601402949654201695707833397450985321208756452182078986363064252510752519139572028768975706147889298215744284556353177101698179024676718074717549811792832390231759684153040168041359961865458940397415686073847131809373596216626785178624517394039969952361254339018306172807920676668114080418100418906852352486970505589041408770485827409832010160989784544614430955317248451396868074177828845650744472488267036085765629159678522119217134943002214194763353801620438087782784799837234779221832496115388610506933878098123613604766037174901302758013869058332572704099656237730569562401646199329114808230388692209758125742529276793397161657770850276953913244520655184422513333402341608777894536666178130013557386002330438833654554253421822676956287923911175320809776644091436329752451768903824001271297600087895259649550234108037513622685271091250264526702831945745957405037139891313871582977126189277383856059309208124725392309340230115221338135578578637392455586996438118424131031559638041491411374892157262373978213576964650420975703869955669746923770869172385546782219262483449098811296543854698768831761957693912313924537796338662092925854985615382202054037140783571758305672137128475807668717550369818355857919999710306581028039208759195941608335556532618311820814095712861772182265866049504606077608550102014555291944667544312175158021407645368665932845319148449395285487229321582766123394405245274356455729238191751151702860809460530570228825955253918118371577140345265806553239607848573463562424936093948688047479858755228713059774841592626891648427650257990726517348441394041948069511266366111338957543166679040693162861461997482551024915899298068211693761359954112673345361543264899822861135316101418066304313540239581318851440515763186662647474999929466004055556199587643797153308512499085068726401782579306283671929551135052533251512103210752145895398609270395812195703230061985115766969777474659148335039006954089285115457470996479991559773164623048285246219596932601726327933058540865642675224457504185213414093094775869910105353877550345304748484718220812567911928267588748533660163084017060914776711299024524020869040770214714063174621403597899581700334329349160157823978736514920613175651852791267270567406470173484038697772116586832023937635778250865275747832187209270199964410695159163981376055593114198661459672924340899480642668435792284004732286700809900168888667967769693422773101785601245247474141055327837600206917056523758816454823380450196671752239993486439098484637189839823610158085479659077088419030507432539093492192019125674719265257286199145751925421290547999323924320005944736766214473468567157067049847028901395023464987005367395049420745493062476114621892453093445504546211062041292508282978673421960661479385293954990626168416597561773142624620934396800875951700621307705388005521032264956275694817914907381743955994731602083055261718309026026408715750389775672353582247181489722001121180275213801425397245195584640294194857536594838607032550958833351320562458159383140236824457783332519150829589964555661558897171988005667808278756828505721570217569293267281832658283756356654513423886782549764500569802147942474290350341245766086333571025677603585496002884568254929765490038292282960038005960825847110725141878806011251642004223013710870135954892331873620770682978648805383154772868774753362949512888259327095571924356643850668514269696183089254201242492288401191097868709857563317143318730735552548431564268155358899367584068309298968910208454985442506149828383181080906533619623409223661854661072886397300256121500694107508414461422149600530249549852662126032668579879613750747165572231013137007888804069999651854793437805343466344033768634783903915968545829789900640199976337193996105012828550455259161862722181179607922219832046561224305388439356622417326863379799710664524495187603576932426904465755395382139344916605844907236895423141506419854660308424823536772617028170130070996091053501881000339299951931708164040944522667063014770641801481834591364503750475865769917925961614961007780105776418266470521192494632124246560019669976000256546391162682661881550828238535702680500736991265454427697197028981698295582088935718178662872007938117716100235065158540996118949221373765671005066599933298203024371118643700984592296472190180433927090139946565373705807224887950040729778937749368460997013564133908351182144932218788470830762179266437830821697586916345955778260710869221294103795900672326864601884608407318409971993706111485225714082996522936578165843043609261024154089540180222988423553849642012394582754091120710471912689607379865509063720141636777335509135348282715258999362365016104960314799104554312481256429312990885456782484317382594429348406272965156355794720430328950828418986454692162968412056464248502003085816732907533009713892562520681943166563215265432116640016551706565246928004879068010789818863360866485261282114931106160962452069140751395070465197112723343512929162281982668465431793658356612632549406834676020585485643799406194695000170025391316720125930305495346130441957303217554987364278913510932305920920677555232241162613030783639119095657587326674428444593613780969700880482348439853739201316113524723804010732674229454606933760169701463125166263367317455639927344873659532882830743374734320650355486440600330495665960850714180119793979954699246354372380931873187614825103617210848769337942228497200896189142082182009005590840660121058664943734888420640157741085707225042035698079712878342394757367444476707159362047403054823820718859731074498511528188089108014128919356839703960395091842713492850620253962021305328454542266726746019273321942798696112733507081987065170602000778591636430567367133263969322619983596959312430534443672858308044672251113527902310711406435550451231095528423209583005201022193303109029437717672508361320301825529656925799003216011830441868505160158706129140216163841636161439413940887108553411858224865549606658993921203990506618295636753669916391813284939403936524462001922975814596343104328802147964653526797928943782044511636554705145486173149396554559189118749177000927760691994562147847694771129243979579468029694392661503806817373563623751270262523601791960228687676674108998825583661697961794500068581892314579448671864373028098363613698411188399496316007142289991837023877258801598063408269463567720786382505704931647083531702806673764229089916644504519076392768888092328329485186737550205739331355171827527063194677959219784847331625877327979938020873884655603637102710422597296815455405054088280193390285018580951966643226792732730162773975253909381318618878899588046068896188990964111177970669714215630025429227379974932105134371579517423479999943791527567239300634647628519306470786073653262501747428359654878376097164362774264537977952259132945429333429701676068452244496451270981713246370723846633831860164808611488928010663253321280607444980425702963824069811840135865044799787541917863405451575065355603694775896736195041113925972218703533351386763103555088071983966163457066320188061212384695107997609047331395010521088007002373801914484229334067400753067005821960301011061107045034005748945492733711486816949155771129017388186736141293210402642775728666155447711443068614666875617486221866026827771322275977632751376212581595454526739399753881457051679146159968386260821710428704291063758557899619719661633145608720747693768578519378851405791699102339816440699958230091449038063822397180333233038993193592244197834708380052113811009913904610135427556932967425207800435982446225875518432825753055958754740514716435995482016621944361818168944408219091807495163217643060695626009189978119107881124948466179969783975707382702313248679059881631653077673883505582027449339650667179338350081089481453414321427509416434635021679044703498532503784808608342879909837746225289614439501841533216343966415728976593613867074293889464967650880104375705143513172457023262891084910420830059005898622636730740790184444353600470512918243649105009232623615218677663071324301000104926254987698548706437826907967608820040923918198034706775780865897081284778272490274182711126667769510900636816979351272337802396951185318854779753779283300646821853447859362185820936355528485798346125253999891516127522724123840062930280651406981673675480155912882157855346666737575288943948474830947877769999297700248462695266598524823327270267396204266241172498405618345074586924460545102992412855658338069662377423237056163456979070682341506321457498789389822734312056495624234845164176112576318691727671358776614148023629265149022739593816981066248524985103875805795519828105509411834845699570878991508068516283010885798222111170226924765194904859231971383169709213900915299563000911982990394970593882295557612773576940112485879983305945968976861902206501795447782420782179051348182323870730390105914288113343623079046828361735588029734212149343955897884297538023976856791907040002957960157837510224146266251255353443349787538954035126921809222170309428870662121660662844383804725573395444402189765675263120167320222355929849682841726030268929991333337978721882113355322958813359993389252959985207934782364466592078468373000516444273878236731328779020776421180423998758542161671094233056578579108776430107088634531996323046268514665725219921451092233255868523562590998800003868194397214229668790069968455615213973273411731888489292962854969933010702609764920284191784931612994667558255925196949314271621502379774252098565829800205815703390556725945326267185375478847177990724676594672184979262702504331610679413745989393239428416338385005408377258288884919824995357608657959282048524414298317041029103283790470189693771387855574452410184053165809781567274718433072492064630146221690692157652736598073308774459488042709294613800000657089811018457690665245389662755039941122231938691862136208811778809003039534939703355420190374759171324172193543672742098944884079600775685972399396336411811140241576318530937576485437991618618819675528114357338734315665711737053519140393413801925860663439207766822154162003279686549241753456142637054231612290684714096212126799739667711429504086767975895270071238927562969949800736653364376941590802420007003512874219538601610573884797871003281782432346151486191900081620060131399504889596899171591982117322339430401806900125404548925954531985474401179369206640611706628990593613358157450887479064889081240359608900299220405829464989285998275097064031651191405347807936469123805436298353762850570853048561573117195607348293208961771701685266925899776726583211174872649379807636548337597417644096169070759245435127540045584863288020591022295428079896593454641550395985125289159672265401047597127645367254216807531183276712019221870261794924282996898957623410365832496886812313176672280338955771942731186230268258126843833258245245830784374567319246254358782007178888799954217280640204135272537011227196738583681512255863233613281539318270848724173580287200485939588105371750181200477852569872137885298385668157685579461332458719882345235715486176001435889476204901846526774126575777900530132690945575835545483625300045051087112860627700238270426340537399192747797936310849659419251043873061081042820257783148688653684879959803038607037103378124675725910596290413224469698245033383481988076113651275939784708178034368419692416284912872555454046942465935369171123476980304640640771653300226475332697478321385838248049023474065520843224619798122325746653283410934845020909251814125660688652775941721774567904010614239802733717671884838130712643861775055279636809083888456029891676722685019556983723082938809963787093546987836914853585662358367718255510703370104701710280404418113948652655977631459917956509008322634071305143752214450517747993826061564808634373696729841234298976346134463511973479957386146417317883044058342301716899314807980292963493571198800914302537658823215393458892502817451883091516788065051614000737321408266956053186442798009110689771153157129633949102841390221037011935367771942352128527901686057518900106106346599305922842935173358457886859286074344355114960579620430571938654318405298496667879405659898134129004292153764658749731513781124830588219713857272464691221459164977261416476942003322303975073703661932612350770094594199662200109957477799952555913743719032971174212601945091851988712654249178698737481516135530228125458252094396767929986993942731473893187944701096029542532844408040765303807907228922434147242475675828058253461063891658112846922603515348488632358196717580898283643798933047923702517485488743041304598691540570882361456762510062595526903176446213063123238866091293061575540721963896955913453329785234203378957098675405956288458420530131801720889916793382742211046597611478178365278711145118143551008458994293429974128671221945034362288321697367297744125034659982075364338000174749945388557437939269237553089331003643170830263421347425998867696603471282428199076249024691263951853354843876166396296311360475100208990651118200357774169846016860478959894776658739572492251948250466969372534838498511538083498161552352173900031654580976145236032629003090728954728434128558583744857781276694233557245337486583965002129523819292791806125016950383385923123431456571086459981613606347218617959903551694371105987585571247185343960953655206091236540934474871684036963402615962697436785005314763111909593051127386751610078424432012956606009093371944063774575870631831340483309330691340427535780511645768713628646636945313035796050880289938182609421727391903694769526413547843294734677261499644365008080158129191105029689398711053892220929794689942119281490335869156702267917716798871670342904776683988739081697286991040240735224975697836926544919854785627999450297138849044788849099068017377662319313850742449322289839640537121002789147300255324410428702673658984262741640290499988423798317609747182745085266421274070599873729873561861145105603118049949624532748014956183587588255528836942118019008530510264429434471240478077184777840699544539037748357789987297181323509542821676764425562554415635121199860468968767853046000842333049805622734991018772486415280761780734890416029084035575107266514818064263247828867353484774536252456997947428243059499179790707178887300648555248646398421275118756050088373002571139378140923911735242439043494890453948549896128157705964120658242865327952340805078357816431857685657407179603589048660318913420717758905557140578079267316557351350334136167737155484327222177597046746649482085096545059843289779350894193308672965832557871190747659027622008938635576819522350817765979757500112097160108155447461138006237099394917495686032157123674051227316081651616205174202130371895840662390131360453266425887258351300934434778981917627480590230196772335331732784858571232051331136001389674111762198434097799896497851371354559879462757446335185398771467448687796302642159916447232564818134070639181333846491129117893214935100459753771833655280791394593507773287243569615451200172210647781170931562681717242088475611548229274810921339038840472709535069322319602890442141849683506053151486216126904501487744250976641091244184602853182441802563059095498091023966759325316022193532452500110275187146908603764995139348286049811209520212961013355132064601140306501363548847248864325833233336886161479277397578130524235194109815097216703410875059172712432541732241384649402931702102259809085874381135854312588934489039061394227374117717036810425065105986238680798056709742484203476226437636728997390104615157468776518602008796042757535680910567755993413633061485075468601636236312974514646416124053942278216443007974879519292467474712881233906390829875871891270532597154866800220170288019656627437492630468750765108520674593692949557743720821513149227852951578026885358101837074597016973347863235532827448014115906276616749479257479536402394359598458522099931444702173224829027426422653154330695787321969892643272960463479908600831864380665141954382222318471906051065133402301142768443312248819861210095259913417404151465053032732337327258534713740380763481779092071495448495527491871866664890189915814517759409876658988557941667374179512697076839354283128470006824453194716053249416168008586764737601806210243789455894051033881461658200267374415776311375868792316621838454586292817076407282339576978327165883798341350374062331399797473592668500656727818875004261563961709664221637929463327144238696513628693520152645708959219986497347128811650541369178830432168220162886033826063703960704765463264199077162488762048206848653406458779410755828997287315402487199217834818232767653337542505579318666733235268070308772005102669243722066321593916267223791700171155548820668835861121550739953614719472829471190309821370856941666347683267214557487854110522187032261237565559242693182772536870400864051916051875372858614189036702860058161600693091780753420867151345712558917039523634448717298235687445758382059222180597551650925234121909766156007292931102118645843936304963143615595914639132237568512422431206089187414104937217896128039838066261707561867326561491812867733628909179082570434813808697941138155858763863709321572832037575049179692912723463556256490968701395211804399424739678374106198716772476151492876956658646103705009284535727524303692265943202492075527160473772848092151391819329973462849433327115899143407743490242886527383561130917420677977127311120966636092531201613066632929022457371104631017603863386731483391932072992314010322290487263757217768946786091586868827609237442613981334917061654359643172051347503497521596599907634564973317124882734609399282943302590718442112057737501549417487064945026359133579900661496401142209656901348667549483120403777678012453203484772933975736745092707411485211011885156912370523422949738481950200714892576869538208942095785490079557171692986557720529026950542284007830039368163411416882507931577840835156948469689914207757287349749860073491009312716149964189353657073747250419249531170898426601038340985398159688827742234703014050438271945697592364876143394269711366717516346190953727907867817415013080474549950934654338551266650733749583329486868335078561913767562453656874209879866769666904526237267886558608288450785235269615656722270255061425513585172765544535991301414809958087550918178688573577499301523208952096409310882930849185289346184580985254049603584833869067346543327989684108599003540982858650014578767804707678411905783079345331366406275835490037838578706033011617294967215850290423706946189916045661071441911463381257382555365063694572311992970860914215951667408863112487285520052457450556408662038742372562472484924008612722579062391595894556207105693246161306499154335551034525104305546459579157912793083354336623148276159602703653522416835297935857721200874482290715879131996571805513585345263793225100460122233919643965959580909451532242318071565853514129877192349526549190949761637528894826578288064094102167828599517072325353625483743187298747175600592300586929404501939971799665641978394401620911549154687202698521367349475033694189403539477302964306636187514636616325159164630769610220893491363495395612838803729898957316295545842139238755035218839801404290331526444072632076435959999979898011718570022457027246227103578654510796004797000786851099759942290750221474516096054721860811088466661048556813280134629551709961696404678213203838570926243743022450887274674658290198377275863031780966456022969038676737893002766014072276540590798182269122719014227360250100085977317412855550882338816615664772922199392659363519357010107981036684051676859056408404114820872612768585364303291928497652788951726895172989638846120505528127389789833430086399782151427181353677771634289634125887404382340719347008624576211264166044309705964138542885913408280948431080218534502378947126235164068487617155981345371318111916736417460802785275697904079504415362929756883067904197240326726351599262048842382019217675685772097920836775540972025809948509118833237503815049729610635741440034049575766598284208513805835121016709460447394935306640684151590701030540906039053239328413918212649506350625995993890001237776424056794437156536607367324135776167518454151638665035744970071255872611799676522782628137916964473574356764190059332777560991201090830580110131227327123486060012491981782219278184340561546469963972848821496868260277627209243421712634561258926057259129768818288846296389651835761795515350343164700026820166233993057360976515927327018273639397362116388628343585881421402108932435762536192113275085950320404955052677779357279185366092793344417685779855793480674902825239523336263300497802419253277425845586585264526438874723556091885867159184221014293497215394665680056193616356892117430451966290229642825629873986065054520845323990846228533774295016654155973059694906839749673742456786349610875876755901452556766659873000865601453082242630375003197040086990255928311119143429991712967633453380728104626521612877354412691658944310534132531634450344381123646205906327236418010178127101087582245295178318026472215032073297842300901383305437870909573066870652439923902567950069273584927174912134006724314200969696743446223422267354866834615109696199303850444615104944678684702844703167527474763160223648081544239342889176537612075535557321883490122322489811390180781487829647583944001236269149010105664021465824534244524572727826117338506879932846267487248695002051052337171825893182318983264047497700207037156982149244159709395075349448774559536178499112277581375165983329129260639983394163066779677701876763318591428907102013722227874545007588875701412302552118283059258175561999642761072184298906044311599132674482832085214222781453011390264306632466869275691590216067325195386873726086949458903953593516137192379876389199166995170767321552519468756206362405948848404827021420664105182784008900884672119105846500798349436823577920672493563093178718800638114035768069768514531858031189225569600556007937288667758762101618202958622271387582695047056435883652157098228760747148108406105549991883574615809036451358095120578754656822542282070510156604692966801649087174907182619539827864428411047741315637795808183512668054865732185279979878462838962759313028742594357872119994850967870261691334118214381555285899946008607228954412930461457947654469550574030187418845444841804477973323165947377858598280648039167749872302882608242387864633782393039009686214078790394516832480211530425507901474655975361920995142509049813833132713667136655182782220044684830756577417140812890462421630897042903135643693105441756348999061703956995497861861461574128130149997190286757921184629553879370174322099166815653228303567575084417696385800989186943972368311346854245907998606374211452395285676158661808166425033986967776498320681718652932025163193603598071526574473094158520078513428431020556011256463888762103538230549207723196488952152822778880757995681903819952448126665009704265326765251864817346596372554393212052814951587106765435499997191148809061291279425806953660549321998780423391652841468785704595142126995177206286305218321127518811760691261863210991087024130899066391854282708524805531001067631639695264580676801878992931561459786545944818235282278960057929728143311605934534505813431605064958157116118714171516408385831284091416806050000698365269598018677092211327115511640036554626571951512746177218009477755156902100245861727158022886300879808605614205901313706792642526106994314035626439713886500185954304824265275513242881624048811548490852867669270339713063746336339723479526538033611127390374662048972709794587716777503405811295577060514189634509035334817207299130439874628012627624286952829684279190359471427105748612474895847637824937227251646527474600314445307332985463802535113916748271343249618581814849780416459216195921379823474439323084387056315625976870992517663218485674302666357219243540435296114747157933169823879482188872774488880669515692623651781611364908587781211403266522023377511687278556352337502286432846856260555833828807287963425447068975074314128715127746230097405954860927271717039411871571513057064502376020990515435276555094252003488248890913952812783779431694700804665993616375587245624508482782078069784921174808672915123129740705019902437163694089550082923694365067271029859938701506232168341297585161279011295447071016727131023311807073582441182779501828160100892847210657533606229063700121713528081353237031344343095169996648306554108377536358859587472818343978449867154406471440889847276477562841085050980851212128010913234471190558123838052806184628684407230569221583606505563445265850292091329038323896518219231491699213525242962347788840242532793943120210518609369413859943962870956227790911590068044028318371383541247067130653717318951932403720812692076430969537146386556874335051649415876777879184553655263928237757757705049437008562220755415471020167238528441091360371060570575621729030668741413117429711669316817268505516675176658463068690325997454953677048557658018147209863451618418306006897647844767234131301419730237711587515842534003156987561704429065566831948800437705508540058242679179542088460228745873333113328345335804560147582014149168074830306134336109873293503070514526012051151279406983782530499926820606757325859429145766930244674066642709965084212095406117597782421119350519945986471411519333062387102521349321338648942523471314644219181631343098292622339844283105821033895577734700490769022362109719305943975272361208207090947443026719592138629134407463675494691011957187796157608975834169383741514445806394957617385498248228654663101448304456426572578942634042860911946207706954073980662984775621632842054745722060787961690480505790422139404589164595613260571114709893979115473943556735709239654689400855734948819116818001612112824880239742949091979484672904210655432721349297364124454513860136840522596042185837965187576223766299550852312335840755023814678738823133906494902840624257104710103795038148281785231330576429878385837442131747894196528109928310656409348822963842246031950489018777614484944404136831768314423972387698591461697192009137740516224924334279001420099209586426105667952496192958713121536960203298659591180292444221602254446906793808527970823134993997057601843508526194209401555704452095088188628034480289485042385333221081045365849171950557623336675560596136661542233875092877002994429017228205889758681104430739729884964617674123679806575605152937515834412624453211628490083721971694459908915208858963670767072269393656087009585575619903649482103407403282966294638035314924408741323950545354976205489063031197832577640484761613965400425246652393071284603710677777272154695752865411381333906465416828920658243109581898783158576577837251072593817978213232243004356781189057966358996128777619413040658974405066473838868626455352647919541417990728056143519610302556784533721884944072371115849552881571742339471519600810168996627904486810276063373955160760138522484868378122687154529288309088775039576094454718557960831203282278048015181742560092796607260786505248945047922199872055119903288910543314609535546326811101048382833707207244748570187672727595041736455791064822896558531019297778829656849795397176686559834571940456902824508526948964834977734095962746916440549178136763908927853985307157939542533609109202530608688079564909845217841072920909733290952738972520741674016179776650915351593612251311218431366736427630810048832544485884953118052142152040713037524795641662557518734579172801189843748385494291450570882311427102217496678849087482141055411584837378514861861904431479985253841192296928523504481679530868211819351490784551534081989694499165084002718696417309525284353438910821928589881439840894298884982309474232891640112967763815234753422900834531904324872093139534892905127289442168206732304726703819348258595539279347610763161619582013481522812015747898143206542320183682935325489817691679232030402588988756696197646698829674702342541502928673127846077512730458894882192588746843352497251401500340627540016641240121001635731036351322647138340663543274232633868554479876782751247172550325207237609252384287703414036498317065128206957203890569980434643255983796927881319100170279716741829677965717281784379526264262179965386072475510500279752437371683995856036292288493073699445981932852066477409148065054051655973742587555057575876848915209896009338545654558628328169953951084412481702840765952376573798609763122707180141416710120676260705752632518311013715909249912336169661041301700651326307756842097904077541399023858609271462312401201693255529126673506652445395394493803960645518167378985195931459735138628323818932644412882651671376370188104201797059283942113612805213949106347469164567088279224480072516590356570792106950509818250601152680581814155722179146572309670882654890814254640981633347850934453800108145389415464199475281532037215116228836599373598947845563368120148315866750732984356212588335719649295859553680119713345067759327769411864519970350677357388109105190028442702136472640660827036927896254180415874249428276430822626145855992500030259292144341309172405754701017962222189816649230067192589499856711728488275565859207583901370107175692906695994018117080800601289261182639183153241804831492318678173760906729800988213823543037595751567099066359139269698897761253126874025782397944800424300357497468637634042563688921882954071434421091629069389266117423691008004262067393675746116246638528921340126446241821125921295079461442561980992292751290589332778882257730045205696164150131531645498284226984681220793073066144495061416751806767538253290844018365427272469559417858546888299384792249403743186068431036403104799407466288023162894600455309602528008139430393594229225070498031291155502643492671627831826421767673146710676166303668304104329943415285991372662167942653014441090229752913989232727628710736272701733484491777865359272470449995780386716881401941339435763793372653877784182139822147550239479882373548409837646411776928165232309477589822576167824005420924959815707126459596659701221147243063627654645963283068968950584282801493174010342217998693369828262236263254557605832787439506349187102432652636721281841767081827671538751556623145118107853441667367761128189784745032543396057410916776680096785803061795722278071508457731761178188007142162358484752319169950639560682470088893464436395133616846536220679144740423254101738005054698915172777808677597133794047750535343213850053808068447432575133272286441144881777167634554425440832331112023887423979886868544740147920386530221393986797918523257389813638792396257841008073080188833704300021991578515838907054855223389715993242626398436994105274768075263348896241984634050469358743966357482099781249438763563426393917028677254212400255700074260443173412447118393893720080037269291669976359452271544959485109770044851175927080934155512902572911769622188726951180363717316309442355942658661096684316546522634674103916267444644782377587836572895239410775839899119347942778144575417669894855300880920324339836112503257077481204865969245599024793202581165005117198171768084541962430651060457916446559242215488695150202354187270755483113799056664040262289684776294955121022198387757844037512090016966731764401798885250833274242866430004950627608921352225052649649377030307444302788389721246024679613426945230600615012112809157786917542367545955673060998838146828128306692640039103990550201335705048501655842023826896003663498405864629734459565967053295540878209228504874435184337099350419792327484243930559714822742726402331943755530017253306328011197035296489384620868122537467608041691857388713132828218631334873660450938192956985213422194314538051616372895105080971924256590076272838772686885813386037328171275556862911379327898995968802478842568533195778225225824245302961906070480703381549852312268250988341893818838605095381667065126131656226234708323066437815883804489379976500220578313260287331309754060901581274888633405718508070303533823627147333232507443325257416838057377165558109402528395516400271920589143219186113042821731546177808492930929818210852111756018853484683287757850428846273010159503666635621354632740418127832489602035146990189351964156029702725778889404602694472093542657928306351796309937883703101221728768821135666716966722934023518404245028827078856816258889458685731245512481302999677653794917492721809451115390716259884123069337883719965269140759206647034833883964476340307104794014936405116239589680342450128986547175573555152766901254863259320208025471970164969870045292559893912311341310117705883032926693136724932881439264460115195425454310741928869575030083192189698920274699901141110911140600371124965210112785808063646160694700449336783550907358710317974338418042586542538226254251348875484785031350470831259284030688947174266237240034075406604878514651977235641272842498855605699968404755633429656635033343163409967937557808492346551309275457880160197020803390763277761133361634200748051312386943850080796053717543726453097976052527873558433756527094963203737463863190601614950242238748366567956624291858542558051563404969376212411831092335285780904238614324798887021019450602653272079347174632933996142840340746109975778860622363979329869028514994330361340399315738072002102567580110897323029806909621900151062230071382763445577686469236664289100994877889827963986357143967864589948865761728297281252975603222804413200629313101077341482023832189783066954882690125155445474245893968781743121952894026073424990994874547978186697865503601345841265125274743439265595112225306827567050032697784084158222366404596346837972960611516764409786146553130335393737684466804392853841046950020329840340903857605781943503252030342246195221551884845681520316651176989407322609598304532850174987089661176492608919072015628965685660752558621658240703916090670957912396385427099307727225128919837347848578181391236489128015442173846040070946506719590946843559383822519231810973554889864382778590112247558116566602274967061067082583494303859381747612197188008712190247999012350011828811785399067697814134260374896570811738485230831393700944804476092862870102319021789516614376246401508554610635115075751885208647657129920714707605347876831341047047785226838823084902060022779739098096289953363093559973888537575722435364992987286700484420219566599919482404578112045240301907331282950163976513437470727527763044351629893091827975384229790755725718963597946839375216551192990695675597427996099621252801378601994588845519039114612677398238333518154583621398788082012763315978667317657490741630493172276457500072913872733745969800520816964617273970679673026042791844713833271283411814844614402000296846767416905817966175286093532037585093523250181873815483958613241263285154721238430685498013692095338486063597742724959954586293622663226336216293157349680040200404483430327123855462585207356897714296390273571614319325812918602787657705453434384843521167243105012769993739078875129081261515863477765128016108263047439263548010262750619553905038111302786207870096488074898499597870999455487564508572223841756433813574417580093580458581161617015815421138800416545384166328376000615710320601215123649126973356910556222729535802124439931013062311570189715355662953366982477629750715573765710878014789295163216627567077062137614373354168637878229620118940219736202656291732820495243533471326824718771243597348795402840712310238180156938180381134202752506903783246008480991604242846635797923837081534264403514332130154710797699164751486328838216567495295735637398653278744552954502308074720812889704922626346336640406867021183134531701946062394187256253146382914563988459636774872866782690675052883208228710206939198498006768325338040520972343967201028228595864493931227003964343929211693926165054082914255401748871422508238381014010676635011112037398092850962118788426701135811855841652109765604972430166159714481731491921456696033536760333103478970490498988881897305371175735533474492143022077847388186948104159437713199551482274448972749885084435371562475668766139741077815780486675157417508492250376609104318541094650195607440090757613393160300661661942245582618626323368397855831364629997173471691833651899343375401995256751846728405787831876853182439345834889865106972376124712858846538484153636224259946566228857535181042821544717733727408555439757394854637701511047596931639249728475131531940780821409512721324080919300260353875327961722947842064083958788458673372971597899180673900555512894504857737489563149645787337284511744944430482861252350588518847398911330571617042657456741184675253579185504152866233020187548104422815998744276435108797026803266784820385436144863484465468867361211398791535118725837577764719512674379922300565840565886932001837390278310240618320960009607963794569639299303412567762736108792242245830277189340305662293073944931439008074239767866982154383786495485854019246815409465593470003279287310788767858202470096719762077326667487523013867533531370960375275716785037680631237055983771633203796192906492249473310607086694321333007723933400479783000930600400867336133748360741122958393918712976068032183033895081219463480055481348925255382529649491598240444331829568191008907728671744221219955813740543194455104433715797599087853923521802473467276316304336118873442863061533112750162863686695492620749535398341563845694223999023221870734383929418726874519625619795473768196606144110366422491938190358338828351285353210355978789243973686483339513391156680814779206958923447019680495936951022597466164341736113574800742960085741857742338800844454660968522016455205976058903616832083214427650824070055650751645156354448211236388511916333381605701615131071414646524230646010655209207543587162770122426478034016135370867404859183457862918734271043148457514612794038545949319740061094461180572223961139834783508057922598447272211497467247830531735963437812449067935647149590621672667603998434288264618389413140631528489900173614692826411181112043634756085037680631377435515623617180062158084784737925597445122082114555356077427664853371631869810578025281040735136254849692901508884210303111160307020517615855343683065830787116155317899023306491027213289751620744500583927247437502139390774349101936164805458421671659422771901700796701275972061983910595291166940239555441514932015438791632865350259779094164834780344715699722037087338687816937579867153659920425736233015395908976330165671063166279091081432176710923888244490395470157420696579962366823232243505939651365070538917577435755849404303839012970461020603246164701948608867312022189913434885102835302404951344675532798238740301114879936546216982006147953574387240359788490251913678165159618431276761645857482543939975150123414931446951136119044058115086601320688681893612682736147949099097295694496916889035556933585325092367975024926324454275041906265695813822662290997366786989060039133297544102812396835255164357775447265216770682002857090181875739060190666516498391964216285761556758766691948471508329919635748351541037009145135189955269123196039066099970242477501416460188497545768311422233402153554613938264369616420261315845852775288843250937724085940812096699321163208795385505987600202805630120640322267785759989876928144965550142138909794733908492385523741479710026902150263037664600756014748808236735065696086340863767320025714017299618315041798359545594856904613980388926785624182652693680471089721014193131559373468305495842206539523630014885000165485361897600271851394974422018781105163586405385109550813176382420729060537729328096918607439544225465321914582208524339236162544512480186748291422912624118137753624004577805242618593832180589497594225197708679451941981318747704284206218222052717922069192871189881518047276681904694220238297437533168638625727491176856405718343204613102565321403650223151465513524371883599192378626343837824345889696512700239198895491938667002945493542685927534636756551281595719264374199414955495681776138526150978350051156532185278160021039742689529142763331905417695015438840801643507908756817274315231967513965306348135081973903542590185392137808154764922894283579542518386184724420625142500703410869067216645838617251972783611035188212397885748497646822628384745258040305871245766302162065526531224718683017193512756493050022399686412720451638373720713145184044864120459555302082172841058441552648118641885639555304830076860224510012636113674327151748586850495190663973903598677907797819030937854501675013801069673272624461931902843644455439052476909250781487777470895280803651506365940324785632924616233938196583456822827915486712945157201219471812815728176429746058165039984160127476065235846303852949446081363124983424514291347857174308650990883108088756471448565170116488018548611677913301905176686119242425612764408975344472507001595010952799079945236923072660700793581306126142671385712787293522329035249565592791120363176091407580182331054875655848998501451473312138452066175440127301256913805585471975020589206018358368037846813144754659166971665205737243081432002173990574817262700573752031297097968258896746551173967245786321583595872176384878137983960695416500040233109542516960574041275223835209106414598558892757896325024462836937327084397230015985060820515547941486545607594186437570140211577444992543720992055053845374151209613957636779695024562867457371992025361623741468174663963973114001333381008703201725328886914079769625360559577560254585492849590610110764444618495911882861484546615709422672924619982106956635991446902332127214250627208765713815117053317034880852032480081026939864321651653075497992135559445571189668008454319070416800468050567749853345128233865540089842246835965176123222419029106870795941852187379451519269893227116394114583970072602848102640472534704297015338612735351657252048255283270478337085633890396239675811503204483597606618093486859723979230056722965514548552550223324270324539668479044723688402401111308175172735892824474454739392522481982943947698499468029100798936159784775083505795313954675202831067589897022899632040770445020946566458890413829661861969122554048341107417495087120074102353771881659852715929905957971566476103472591247029265912887852908312859199757292557889515813789294594490548322924477933468664135835583802614601680869969161212009896983940204282815713900950569850264381072397968443124798532152468546737950573108288180491435869457683064969817711416616239202440354574920964850556982444082862888393859531354151559865211693823401347701959645149620228068451299961217473252468789189795001075129049722609027910541779215273177145029660611404407327462543200294732642958053511308118149017008360346346068732312314091082085173226055625809785383526078868523224617371351965724123326623082972311654600520055959153282398732059846376535522770886878880492059962230298293722212621089521305955330230909162176489522612533752260277826474779235991025708347031945337750624248068381845818327502976817861736804773557761431971633024075211691318919701763567547264083297639387186524398777114927397190823881738134269726818602652249007265033858866212358681277548259671352788804199131855002384281687567785110183866874107496695037011470292232573015642390643784112808710291972231925566034074697669015285771670093521903260363294585834014218969257012761004878526435836734909770881582160070629259784630023557046146629418050580848974266241543961134032393799212112178699796884289796271963241874061261758240805937545805538873392300593479463028083838027751382492899624074223899949479069384586971266863350518721367812677284505931261059189935434065310591680255887676674438577162427496851297990259396986570620330038689670287950088863015185872739469202158502816113791520084577451187871538546161732004122393698986017159839649526882872283909121088277619716130613084684936399786944590719068872615882729992417152408774824198315757284752496613959026855642800221159057559129619211991843871663699649548332377617591415161152188625974315269531028051749222633737764689951430710554257941990536783050275707756215668568261538298715985399144760615056150730171384347377015931516781822342503755871479525894190447593036637972389382540018978949632785520035143956173910605344862803111561879154751558814737571610956786018349982489408304095134865057359779501488008413659060809130099278870597135360284049103560387002729271147566562935304698954502543861686528255104336780668080914648021003361819316703864768982958606162091864589104575087752705929911331472660605868808530987939946966421937060523777642860851639514640968187078967380426760177723630402008721633486195333604637669555079760156438160359684684324719831915570258241100877680446614717815163279505984803031028735823639841169029733341567008280397398901619230918263097974287458596434305408868622545052680332956482518486765568922000653024077327222742756625834667326991117868064823079142422406108655548848355768644543061193131185101485437760413880707040940195683525478692895206262600717286666416815868695350174439650849676989551892046895644310842081207798260054890499463337608282821005052807217872866298079895582094615556797593288513397551691234929422935431464597237016291176044743211755165391960864633241672043439460199329680444922214191555674771770673715682621323921305809771233801604027601204073257786027785924810976023670016120242296625070594649627379284134278679390310848538210712262287551968220064904987483550283110659189673471862680404463201590003608435607118437015020083582874558055612278837868794660135815512768427582910482552013629264728331082970971886011611664295404286807636592407041360015260787293128798563598589360576640122605046311488446576377203325170085227435195683148491111701340714181642859943824320219238591262717021622464702766822311021410498873551357625878452187752100946218022922868638297281089231530828216193086227668824585085731549360274518104253652933343405862691646449898361835757511707048992989123388711520886984035837037469575500331332512213053349394082486595303688321200995992592507556853547398384952470453780491964955528939332945175118213400298985678050690739870825565360703369860609223906585837067451783212593877240199151763221490205375145542663352796390286734470404408057814042788107513458731634752060190597516477298967286160591456176606830815729387386462776995976630985548337468803277389074142436402887290938320875247516911352468809648788823165027532274609300622978888400391721555922671773302496837364772217517354649699781781843633216574367269507998996826477026326036818030556242791634789731000821425714037479216726301176764349451063351508486263980020193981231142320579355539741701818312364546158910181574303899075819167382584509711125525626924780318803980980335803139942120180330830460657252449868689496370704811616984516819571472441875796183758909171777674162728225248019321348740400773344919614006826769352322638254608337185393614891996560065136240524717610471459381196679194271718487834682496411858990254598768162998599328478136227602429425880287198823811197307402673165542400707531537039260326493613598611836634264027446765311116720571691050609692482546185483165696287713182951623270521196020090562304501007205256816082508527973082028849662501653854236369119952111127799473061827575718827814694960111307778112852120504709528061142376355142803315885489493059069980449590873259117394015459229570499277348812340837878360054705276012758585981938401345298943420219467132729956393330326466402670494674112802625949885739879947523195286152109792491093600161234142466521430772927110772854896268516061271835468670090689074544548702257530982369155568205841362933704880420430682849692153968109861593070020938186796520525296288094303598096179948013330488000350759458943308343381353733072342307340430212130921730429887551027629944423576823633066891921986903142165852982001333772901529658520410492306188524433728011434045446654039697488499455409420550854647602280499220284954091731482981968677488187267628538625013899481965998788823416235040135863716811073471542202358595582525445040422613650193720353339962835290447906278835449729955453740066873726041137219588512490307884451755840700411542705473444611435399786664600312552811560350279366051982069424833374485997669755534396645772455233217149165819662153499531249953217531322893000248037664773490985737828238164753220798620354458142381516682610449474195111822579000581641466424046224984756914760213188413145960497237320648262092100600502797436339726491542812121226369240855750501001151141991917892912823629974303657655193125051975464882999127761267998780328413487987418712005811247937815423212268783083770490626275552092149658456421479150460563597915568087597537372046729418426180259889336452170099114630177896137558243530721485284447578414278153875459730444412807615411664351877192178614064568231389762872554549867525420509500649072251457685394607429289136556755149200263974721781064125715314327794449025450167260091314417632823935688030353584944751204910610758778603175707953907031377291382229907495585007848651016316924865585749027528035608706908411917001132650366445849833804114649481640669491427024250014351874164607575099524502807616708154913297953090275410676214409894605137878131567534730139941718870710896307951525180997365942497132334051438401018664696009971509170555411654716085424784953740757676736343085696266121523757770407949977803304477721090457584917916227737601564258438865316078160673949758985580454970059532087157915913682459053366661066731190702734473183890896679420037402141566625344954905608980381987017650790613352362542781674949147662043418614015881347543577610567659741789329374992212331517534568592897778817236360451761165448695686987522524144653034031930443616326139993465181385856045315514124813860360719773061165981118456105276164561260904813584887194566624276273240407992549046381271155392426713104591450227659694648534204604414837651336379837518870908598172514246661912678733617604743462848763626687926607849711380045321913427901069405489390260294359828065534493008035852231981050559547964917504562828205502830915924452160552305946018284236401646677402777611988547639841740672612674992230617371795715163752753290542019015463447075620284237590125994743369835632731456784850507574246860543668685483951516045572420237857410597637322884037860972346552011117495956185186257934390600718745209275103430674723643814303656279676154470807487408265575488454612540199819073534295949838619612819149766189677900124609796983741143057528858382848008472669708563883066170414442682188217930660460628362770141994132041699976881322166192745733750832548506172141593700015222469459311512046299564120515200972377783839126247645761416642202762706237479055445438167341339697260727086763524647896185109092948584901481970672713850926911760854093786396914980173517863023140867999164427637846871996988951091017271065067381543082447166981752594117056717110893544678075274428235131862085118904463230121994377216012168675251523606454729510806973513210098146936696410683394126710449984442379207821038304079548555681476534184839642258879487889353424978533431065000205230192751351188115313490967689750280868903711553805690319253291505448830919918241091230817293866055601722658219674937135791704247297481966750610283341389551297470137743331709522815030455688646682433140761798011175899568786763028779579664290374372189987672217057487782377567054292647806399636424318932089024099615909501025359905048754395081780486526138486871083790658757459020267979801022091013865246986789602817720122730111504252196305303161758727132165842141025708649802543507754802507220866414396483960052946661168866994262047058403450758011649955719287316635094759454739134458007285903323143299009819413006527695073471936332482075846538043499907518219362989968519094365955146231012906692667521188520634992429948093849018669103209199306853627700213276940602837080259984543641356182063517732787579631344781497683459774238492867452745566876524266359843718270613988121658668302015962747848592699656059693134919470630352383044443942831053477913120658256438442517116904293833268598069187215006241177508251224573275853000774241016442183708297842246436891989970304740453772808001662936132344523644187947886924801201050130058111973955462136204093659237538214757949911039712783073920280798366060801085228264081130995642964186964502197715552126932409324899235799984071769758975289502383936697810974689153169915757655664207170250564224505747376925781028767282767797226024199342343507069986013481310804777180001632719382816540842734089305960973648880169373396569034090288906000627481040226955028910860250066730147472740260614032900853905938794265593113441357088114657161724133615376058092419014503671230168439826360519000311992276846492048887647469498755698126057248718122364154356020310275343418479413020178327246079327376538118122056194513905270243911054473526999651953562298626094912717170601422564081958542614861945051337387100036862786908082813130714619085034714619211971118834521323466859651309074441162023527883753378385701788951680758120937973209795956836597703791730650569841163769800814821035334393431247744651256181129332800803041482150037109999054674769027157142922927858803178700850201330630639580385501845440993517876422623623201966864343896891284010657076301742052944208569814261569093677754596117021794428034285231209401371708791180041464958906528622883289806682457839825336486675268482962641089391034134787612598328832069632918869942412321603794251527670627492969116291802823782369914295086420333983461508351686813778363907483041874878873407130621965950947740129414407591887367807672896418979444078557037285763663549245678059653465726274189889358366402470465383033212503951265580543117201993312049859279138841097339633377368936676307929692422367502795197555209109637530481948039008717724477842569217399011374657873476842297698280848249468354288730214443853741816439842839874966810480269523982525744788213802175322530682297444351245592212453792130867486103632472561933335192374814699675093591042427134187910470793163188964119756201448166024498060961274918442115283359229274389291004662244715306744176903277174823784847302457976445441288354174207653867655976530234963121549415795872667703854262506723914350830155883740836135412122570244708576096623105144680401179061024636609789773567469616514364542034148854903275449064094916031916715324619152472700597422093985240522172095310336029198318877987565907836950993360822766491377702636719436212592451184394794677603102225281515834555409571273462404261032800932132235932262245675408965194791035983302295544555450753863788136455824234217086387058581316076591154775458663041263335279342894890475673865166267065204445371878872184236489629315800305332992525432151558128489847942892117202451459320622207391261658896720882678442855199175639951161528968019703539588959373961858307084301616092362999358263474671492858453202361543742296378011292830306027634553120964748282255419574149208061869853165850781865075815931994353068673559395026106544769758999622356305193730726772147380462396572261125888790814859862196843792109461598686361361814702284868595384863450308476851444519146656829617593016689010547087376349192599278855217177571932491866368444088837839105786115296950414678037975971075323382229866343144121540793004007034781772584894821790020506061128191030314328961761442521807216128046181257409174590950345889114347817238001971657423272701174458473910874392310786916677860230080070595792902573934704721992628146691785360588680094001186563275214073837553599873059230755046291723187856743989693486845177197736624948673495931154951950550381761286960458880687370236734229214104543566488002537477080893897068405788770329714767386802539425393587707006552167076990302846725943606623105113068824748546031058372140520169308840072469627966729238710841861539475983314539086455597509926979549278899877408693925344096798784684542112222577135195494869784891911461134298309248336778353988309915400903914378962937654055959952721569110899749753919131167368658578613697242579473806697811655193555123770123641756508067635018811535939657288897349562023318477285709044688689328750553893624289268477322798460691323215880164962617845944999231079307043395746754838786516896591050058909279152024717420090385273100700562347732876404085946686705583766618422612021664141296988964756794855991308213584170442394280191929348143056629416123768354903592077350643286796459360502860671434990081066186632144132032348112967542039341483677530877331110913822259638194952805902945705221436285199490822819030814108299907658244767508329856073320849182352297907798887887905333521115434924311267212391733426753705292516551552650177122340074636206491334275277545692481017600800770038769435147002245426227197590654834050877024778625637771054902706935681053690411030807897118698848431764861269600713247274776773375134318616186815783992827871720180128093498625582683625415888867513114961789177049604579870713214890919469953454294466161273026152353663045606083431846033352058355676949884670377949118366764343914100347809750185805885524975617169950566031560839904736799763748734630841569122902591390230961526681865122444608288629252773761672341062851496506025423726286928004060297987584349354425491885533609958716378416442913209196900191200365949959163224503996414648223467345329372179039661092487518753624252238276638936480170005203837625130460661244559329157162336816702001883911109676415186117049339103647041331668471506431107939626112434991783408906867921520136329286523999104125402607523726588323438915256025105773525117285684408262939982352341519998862955156846326867089379716278714014626880553319989395283310634923752599673994597558238984029063478575733867660823900802209974752372218084760273897392098475579403197493730486326463756305309203203311176058226862190539440548421117637165627830831193709083474664482108246854324808047134609251990936981197953493482326141642989508147328889362126120615675437880217764666833822976168902161521410160618810600219660800711093766262637469635413747752207140105120418171397362981535795549374056201561801712830092034044112196601020337760196805564169627215201576626205145867697220390607855952139195597678931399393933337485024959693200014331555123266218343878334832482664523908149502421923872786130660440856220970675582910587855405881708304253070493658730503232439980730718900694469395935441800474783287840274441848580112060616165963190012543213770299761946329267431037203890461828020709897197284401902280793739387301853786123411965349691830503858252075893776962980061010618706183009093781302411570130639460644592999705412154386642306782201103703548189571456829456337698783147415687343255014499544932458988211095944162845254351743263755902793450692427351135718891927842446577909984416631233660985506537695520781745856256500276273761896502399393453694870657268198591468398226345567405770164718454689729453060557383534928207952255757567277620806229694179761458546620105859998776318433385559368412456658022880697234887885173169488227309120788496519314687154385718583932763408686966235997053464013947225446495356387042394223556416396383472062492567802588007208582982597822528147875090669511689465112629423585190849414123519231073639611092820188956222885313103276721031006042201410009849968962861583874388770893128099304466959870561268879569705693361144630369674826945051059063176554326155924236990295968322372896455779087991827057638028659009248197762729092412612807627817661623282945669277665137386197454640026266755089621806501191174626725720831728716036871036826381466697869382255604365488191248383442838937741901384662722763586440221386433279174500065089573618903615545170765664599827230798048287778267682901768627588928412686856564771260186901196267893511761156606852388553124968920725563644722836387985753189348767076012391378103017246659477951019338650195167938252956987875769718848034299606050328267994571120077642449212637480562550067164253693739582770320209442906924595476248972120630873049122809075016168015241535822322269183477541401754041237801707531922674655758526178718420086436506185969620388325114260230467589915955730465472793952479386614056626123902911247532596493266254970558575562792123684813423719124256756342409030520984706775440269022988648250374031335122596422866104244684452158166119973019940936858016578995203069455974971199344174797501817700560030144402815089683851764034230226840553408225779745518898490642156338091012179649332236610600414349815878285981262807179696311653266164785669171081935667284183415915186843607515057964924437311292087903344679266736901751972108740251773630632768061529108325822985251121573076388706822247861976375573480027633590935384837275221338211517820999474973090286555436029482892876020761609056183302723303549613701331941169728163238742254762664871177902581955350490600447674749474910913696130248075934478852331736727350552234757407177725372494640922761078448733585926084053667535837416333872264455685575316720282888621212014604314161997866906958570319384329253672853329854475692739057769831216287621335340352924488001868594322971532912112550326552178228017949872233612218617941280537586768647892077057635463941207761261195537883853494460832322761537410215268075186710472615174882400843486205854349138759425607479051103162307296664194666974151164782564648881918277146360653656264060621234371493791086458702707028830332800928225366569837055523084553720393421158045636023736510009553481080250886639961698474570621517003004917532590598220376335786734067660198909735214097158569977021854804774414758178898125802965137010502043524703480649272764757887123301725598815221163451070504239387888063495980584140739888294154184705785965840456077462676978623179726932694499188342104605758533210744381427188036207129247222046656923306146120027211920344322047791249378323234697069066278820420334594079280319280260179055720865027188607510705612767068049239983827106417548354513462348527386419743911164241015552889365784085090585752836081491842305826997409198764308823787045353901334825397904673831978618027377975054070796100263483881806114161938094268850168527450896270934694949105778759166000001798847116955599020254831381750027191887783080423646836934697166986963019805999480351637053926650066615124266045390943228290282376101012626283473149815416359705301566027472807401357870797878298319478558181183957570191170834490146051294268823499768540000295306795541908126459366094393242404139223354503474248281163199671278620213953744773551818551752461412685631697370425576729407876375308240407481441381976635839287266582340512930127928113701020896670816928550430244980078187458078260977419081166745624639487768190792936301020891069871810920709467973172231059342818108247803691802272554686867956692069244287743260586973889784004656033688592146800111933239532797736480983755792593804445439465435216797456438968632057486930209465560917832019879559238212988837460048589620384763342036612629161085408081168520405714892378435882853450265891046060182229236289670427152435315245938504879934346252558868335062976309981061523047626447635385964012710686493857494333449615326736122836589256805207508645456087164747006215284895682518999198285596573221946146538430320896825175189218090912885477917849307548905088793287762121426108361304677189712804344344778031378620630297715474701600604617709094100093531354845501623836046081903805722900700423903137409673327756213174259168967095063999028533338077315053650321030395386990069002004823566564734044003837637086518600074228473381679201365795300710322690145377804161606334055929298451484712436779570393728478574967219388606266359067989278614939806757435671142931579863912441517988869973227448974124680610068837637871281083535277154768349093287887315564989057804030788060297334359954108763138255221278318398048231162602405145733765406664030561624919837247973711764754870584916013383431423294729306069390846873304363723081615669893994337388167955811847976929986578957270823287183647231506776497730038770665703928412599938918250771597517247522400356723441155322294300303221209749234033801776159610726121412094215752350886750097663045429634551410390349573342271715034708841118641713014164989397413674666659972206857554282302506947233959367769542398989427175590762543320041898556585386644000341932495849740428442162935891525228177688448176011421835387667862530508526978892924178186994442509526231220192356841751958981843389966733684687202543108676807341603179100874033487013456874238024589091393724449869638575274476630114292407787820091778612601010739891171601068176182492569683024818874317752665525488222808126240681899245831663608126499857820164275414541392598812346396547151246326892974211040474566246724141975315783455894648690575246990298496363081736088857234810362959956166951981548658035321560642805228801485341926487092538032254688209272138409483442138439424089274179261430487165865202407859898586945198634045923399326977252789043164611726806125867554608538525242847633655000090379742555480427784203692224184257128389891232736563968203862697437359160773817355511184169233888735299286624348873041873308611483221190119116020528324041491642324821556323700397522903733713120374142981899045486573491295397844119382084346452390505115965355813199463595508282397474622369996689489416841534118909910488892019009675147638865551085810072247539856454763502408008116739332563816444885391257125201662575883159525288725733879669590619948320841689534691993663405756102818386077828332601955616919809616706408492843873561533051357498606251331503901097871700852806053196041945882237256587073440463145198156844311554843103380003901900958826177711486453962284154292340909632276819347217878669040459434317363670253260119756807646353269845747208471610708853350135114613479532450314037811459091230579007213026140512852624744397805804655454327241853704072842189327879398679672826586544972863973251147138150337355532375351577804972265453297962010180331219513648282832172765980699623125776349679835034638649646301000061729319987735601346834998414345095395845677866432253342509758709658489873582873636115572621095591737722866855898622632689143141406809447714755190278670933450300809215100873284564990568588376783303925365557252467267510520305686802104243879756654096575252962285778715303544243276397679839484527537658587496880078915619611660195515788618472318904443056025788685884983063594160769020265211992014822089197257159014742549121050662851948641910100194881195007668579240391209148543221028886530148013410298461630675963059034010626419969466526513518791024462888888191343881819300738722362241389086626730698693140693937714936459477185142196036964050761563978900432542477277483405775154658995172523954360085005847478475263871577746539949807594092562480673432227670742961543571010513152111077129462569659343197819493219377932103797610966698392001036535898162698001863110951025999363901996732114189522084800877791134217158467732621175530419553101670463004863107214077715132083416185584052780801182542603163114799570823466212315987369897091016323318555743223057626525891037643246551705155729181493722225011421571372630066569074962143599794744822716115398556869731215423564574362408348357293487763232281811370924114395347403273369041308892050994299893008516516680338275524727256100717440842632777585030988996864190358446268855319528003680974379955207838914825729066324913411470832994445685023120057598398624147565464274890653068618403028821589785874343903545687063365565788158449820508068942829795971367846760988177809229082320066335162909176107151042533928522336588530314613461735972712955230303513895522974081743130467677285951628734582153801430416774556008619243578108640092007727040499872520588637759096308123832138244630502900419591839629068836107028393754941052473926809593252386353666298147392907768816829124974753551463599222063265006015381237535746630979774756420266353144252112960367223023651390585619128491460618774006405006875407248080862521837425679108878345252517575644429026561121270481780656388983754574821925821888426722147815079922179368939865925177321497798864960318194441448168191931716840419152225497365860911108209699998489024746889455189847928587744771676724619876094877904569805955324738858787485127950209309889638872582001444796908767212273398410909526641897831658084734534762873602037272207313808483591318363857869472448994504000042908015716937934887989110943790611348672730037239308978744189976389016501783089062065582024199498084676337728192965757192046549949856516952652744697858057132523462664354576652706440503438424976107554351251562098219095380563964641458919082513606968043821881303050797821242733688983895273214222874129533848974989989426322777125414648779410564477342929336804637327101927745700122425354026491038913563263135962413693191875368967037133425516180414611165628862059855816283698044905955363873907782444186795701305980457126237963042117324012270803405054191274832687809017161480968555987170555434548504710241333879449609688822501080193627782349475364473322167543255100293307041782241087407369801001275845912482150548723940220943787307801319390814074725598363971210392426881090542524818477759375358740491274686758755644930889781094385897077867608978245019898037200784436891116319804154506669567343720822345743853076779978863700997442156744091027945641315144355369038631505412438738292571742965797377292457904421302222879539634540501693386099465068834388537058912855829734363245225794604185517739585817866783270535157164007430341104605491367230787060804807643418882990255958351285279553225891519707031091108889124779085981472740557559767711009471670348747932593302573195256128802119791545122706209916819899718047672494513187374017475382264525970567418393283504228528432934296295559335228778433656708593482394940335979644522910890002031088007686914109358922145467268487473629151406794496483459732015239206844732546212305436350846031839267706455690642506777115289519656030896962806920949405617580191393858725746884264835838991927087994017726608038853974285976098669930804168099987322598377876977344552931524452831271653969179088645202050909995598924899521865660872846350242248298311838334774320025514249332109372906311948900967246022636573387507910617341322805483588078685879321616856394399082990720131606760385954617913818144767303851270539094587361103047180621527157148217250438022633485633138597897180128180233039164882447702194095786046831313226346199386620863051981449129915493205794505001235984520377978852278348712502069314523720990146508687857697325846260527398620210676582931515428858502402730251780820464058926599128730784011412136599028069301516709965123357732391039787590042608362598012481420936360701352046209011266934536252525650048991726150797431044873412052400674262258045799022146687708493048990561930787718502985661357643087538752126052160391941979668865022685990792984628489285028681956498007608081276555420991758854663132658482754498728717891188306303273971096477981189780238306016788127707276766830012952785560522916731631709691535499135770084210782304849536505216251744805744341170705376093573875059595167459496517226567732834439275403854940112496343321339697925917126220783408650334731715755316611355905261151608001037852251242985210803575923947057738995993095406780603318833083775350147881127154886094860785684266275428870833912633059720387886064443727567803740602003226889568858900651582741758899195246537159161452551866148633494534515309695331313185374748327967103779957123735492741673790634090906910939778227284705234822113418505019068572002028473953047380301264416452726089313817669827362973244926766111308180826073918639801697153959744242828934998487327562289775873747058348038168380758039588397259488548475765565822174326250657117402432349622921957768232149739446551687592065109290763472096474152793416949956917436363803047207356213063750666483077151744207646836058897459777793776956092857453627687424447079049950707293182999185702923307600972851297674496809001147336648415744812990315974291046665574916937630691663460209626729143401362074851622240139616191792521768622433368491715420397687486082947055641029480227011903334758585781659528127899945821497129385138666027335078952224627339682954616134745719545917466421358270078205265095430268567858855136584090066079689619400620229299383169321190005390174064575014265530600030055727932681133203164372538819450607013579397200595414637351272483900040479737771857786558988700002278992724558807736301772052668981444579258983278097533693047087762731023194235601685145876590849403427754236540099459824644253906108831004812312118359848800926298526424652295875514760088342855379005067425484432574009770767097642070573595049663552742135620354720984456332039851643027243515352848433825551663619150010519228897160005313593512229678396494183508575187806638674224633248767536331627835021442983492695114366207591817797992137833841745706885631164253626481088690824259126999610103441345298189308767224846938401219876588690062174175858809408564746303639165006879877276525269983328086061900483976827462237322035821021325779842111617212990397534117483963582074516172893513044152341455180817946659088464744001191146900778691016197796481345855346928255922020964509996919136523158984995811857334814059448578818066336217430884484449372071748148886710485882165164917887804125934579243385005702493194368901442881761524875584903521245776437443721225696047572685093859290866259279566365452448496780589998587862684450695373115428347675439963157993495207757737532401288616141034598120915339652155258904073767290501789641148610551117526093908118535686900393292469109355178828695605885238087869271333113672380567811557518532400936016209187059035418201277645051319302350745838037312795237114714464916162297203465523895394516802070476168494328980287684764685070466484388947857592139207166231466902297891695567122818368094627145791413711648981063221002698312324370057882050240774511321070694780100533408949773571584977590044309524794344165298833428006659842648961697753735331817389701532208735336787696049686919620127490940709065170515124291907075255465488300527095278737783444750569192814766638266291790396276129377156041389600955286735188098603751722554307783213461986935750958871315667351816111430087564635120093119763074864549533654840202355520494232438780004018548001982659830879494677552976533007455556048510613747280174811593887345287571010289619787524475780469613455629516298224833870564633571366140592595449061315916913644862951198722284195792877696155407098064749946771625883011808256907297944629126933377248980392871919319621583923470272807216874730861101228171127160689281960569160538309975799940865813177739135466862126906035103213294444147116013699090831443520782771726390955330173086174210799972815167851725554403129259563338726824380468905785882984518328895675895326983906928332271097662998899045666674684142577454714930841904206931700116020129842838592910061323085689296161250808793256344148058180926949470770241812441123894920789421863801609241640579006456803405283219347293879740603197694895356221850287175233929530965193115739770779678989614819538534554720661472917157653278421519071499900121137093787784510154517935488655359641041250991854197747883572617046136405110806821330038758095804314179767369270417035926242961098716441328868347198649654348250816473421464014356925791189693482364202716348691726692740808023400748607064485940970516420733055664414922287405433982451421864771069310202434499655574906608853868222722398854140376521250564633459427471522037778423147265628296220369911676527110599029079223721561787266694148122240159466107175302216863971245720931148304219995452869618573054060082057769344306022976469629987888042343822824251023819057014576129251053890208366851610132914922599343837569892320088448188323468068603941549337620873071914163341263727321383781274199401462046779067880459968894972206090173400248849209933378070800428889734275179315864874912242150198250508472809691815882224038293649099957163538106404206741913486980114970786128762556197743577326156438893552104766209607473341126856184073246442766696849715301801628580701609909018921275639209891053276828577710136902232408176872717055899089474532714684369979546633127249052299495151672296011852386108727214938664689046698257567464853180802992555347543017105499343583332527027369904446957567433272730469615097612403902363235691551216704787280926751051478677066416028692592459377226979910381328036860030388350941253113203499946174223833179479794073930064728588328106442626867674337202103503147931415940834677387932370323533854324025602389244368198179627857215878293888802718683905476324158753056074483945043629636631992822232881141656029369621719267503262013801580203342327693321008309626189768995369262733669523764665084736819088658502203479407722541903272271255137625075158585670281070642536471334103910484351749405491912233329866872164973573274489535337684610793221016672949413617362604381549414152338691467128622573952145170127449035481428436067030994539746552548374076149816235792701192965011028039290652799764128795712214623716994441696276251941558914955341116673830818131733464617224758601750836312868575766350375186465179851401733976456227913473995727944546665415681590521204162401047084560933195751769941856867731887602675799108825392529113041324326911688785343188545275600212785739400176814914721631281502461587839390363880952236034962969917293190047619124393565308297253470536755087349088922076457876586980816879823057995673954693951737903394857770759068661091202615836758846559419193418043399973295674682676190538266178637119992454338873086557816351777400371986868824130372501388776735576561346157652245813879916631102450430584563517334073246270671002003683983607806642763723345747839250356883704641992410006782385838305121644503525064009286493426572214774207601824609404942596213008462388377467404698307473108146591462649247797702474989698991333785919380616782873183781050895462674287928070833086342135770445857860689214543326268495668519591405565046171484965037139070797223924619026849791770132839010715664067390266885887967809056716963051589072844451751160809149172438026163223395141040616172777340537191466574278837357726152915860134631298106727289277211775319945187850807507045173587657630618645499500381762255596846477615505325799736629476601916683137755931729353110504152629875872459425594925953649223735081897856984493447697773557294666552707170862642878085896424573066711092974434905462280620115422650951496913144297822625087715568049384514002615859587704915135139786648876784965986577576532415498976843754996143654389285156824305468034773589734448036689329589042561478014529962299634111576847697233415713848731348949614820066133487088211842457015072130997201102683612892506631102611314916226357664756349045733584983640498807206072935638156829047451249252970036343954413063724427105867105983668970616025963881163199480697074109345466416616417546197705396491542583952836815389914523452380275439374645728012189655569308370365569372860851733418503264484373409544927485948085791711414937730566999504018795406209420379229598208271925555939373728700339134330327177323563850560185748589540072743290725675822581278227154868165340416676721830252308762946066825747797068961208842468370526692180570759260554415630423097134887706774491082466760929705181655013683416413186303413726332327987383103662403552685627433640352078598363026679706527484529020663818810241429006674560787238147344961625011425633270566514413388884182989393033062218939624605744863863012489133391117031881061263384957197481049895797418348421428485457030798763957842485469085370410984842934752076138108683444119036110501586888320706694600370609755223711596952533926275644914455380830247041929950497580817296312663836975525541543222657520147702847855128796059779797813108915405986662291918299376939153641551732886675388984280703128238130478129375491155712553084402433487010163055633931181234536355665516002631346971973900419005447810227065327776850269233147805218579805856145603600344499002887821553641576971587863966707262838693054770183361695821173817925129720531749925590857880605268155061758703194080936097486245719134189285113689669133149784317365266902320407536619282162538397779675338082083123134013210745520510936379968749737017045240029016890648421426029492265040320443019920235785045531494172492812889267409390940262791852964565693623954974931228471258053183335220712699187961972404996906965997370141774789084529546814883854013479414296171922197941204641566547855851832162410997564316784748429308853881906235788574358970536412055322572037947053252343363800867481613852157158191875132622234390563351268162863427565936614923896449837473354844244135482613479697877421361439060216738849066392562643950267652077357030035731206513391829064382460122405725603906542011393791302019950775474780268971695173945546124836584762378367637854828579562073137181593193268809227697655837288486046563139563198099865002739831882648460077539336960858397373883608951930750628996009045246153734945475649528132447900119656148220208179616054525716436003834316987039967750400704829324976855459019492714590996857253629506707937247063778689301694671686914232735678340182046469010507380779050012249430832054715589534254163777612680344761919861858721000076535369256771114018282387184223677824256095362145715754203810023791075187994069159594541898501846925428204866372499321447422548577237529818819169657467721128624717598052918080855454376795014362504030918562263187627518584722381036504318588296055812566643194008451410574955837212196815889627833033745071048286965987944967100303597456610056705593647089154423685597472285090310844949554957980947893727320633857036179574851655216355234595121135970049892750214442410619767449283710268974428669446663191258484986144968020272623655485759924410169278489255617946226950695236384009774583676465614710597517207265532002778293054751901424681390426438880313727347438540698223767314551614524025793815468556528646943326012757650155447598333136595693231335339431607539558641422584596998001725200898138227102113643667647818677188082135771911604604948391209517679666734990399553098476155602068862119549293402565333771869895840654077762269867909678257719342965856602406347007621232075818663558250176242394331394634231473949934555897479209911699970812084687253386167564116122286042290966441721966733101914362690895441321308882002690962684228708001703717504927289999113556848834323070443077630103653254300025882612769466857810694298097468753318376885445749290435753143616048883803496729659312947193454070897156362333811547058241691271770118723756892091011430954774280491528257065225098013228475977205810951915803214648651994536011503673721485687573906319765040092140364721835835424735346142290551746046664136426510741768612162149563194064861215683209042001770704149790252763631316973793122499253828857821402943670456735828689337851292864224147339778176217841961725763186821678525380857332737766574354412209982753285352472902355071971438673267865781275306595881993957065272629243075538453192606650803479388011964914188535652065964304514332023218600057660566995228485280139306095969712502749228618470017617669575517716558644286227602222290162016206002584436042228929355848782053227752307986984651064300138666902251587338309960011917313785210230148228624189939038074358099970998350675207927192256870389253385215773445879542234407277579452419085402382250824799748309667603354050546642166734538428490240164043176131230141314333051322022505404584758720192652000641460563674690996098044413316052435888847630330181591001168767088877787924115572789680894298982194322390445294832030099111487369624251855178438786014211868264800408519076432666760679093825851842989354759479337760734483498100890718526124319582664583950456958562486934731399473242153010910372907458890606423615496148353326891987428860466232249286747300538444044777047331087709906595051282524316637299166111482145707920799269364085537197853787462310148301303941195151638379874580571260210484752966491109037544035013697276488285767662893560560328176950474002169522648082327960630702560002698215847967352953144621702066814553971686055016145671203243996831683253020483103693501695258225567953715102449496856478473367776261866570466216321039920388124642664736677850954772098139119036402986190386710247055079345040356114081762412208321876284440981598071659077310891581199914722091224898412038984431650636648464217402440587718772814072536379726451279995666579504340743272897061755623065846775395801960590719534402562740609574451355539496644982164141976301031301667309896107025018633672374980225462836250113278852209975240654315109189073699385831781855539286916573440195344654585963767461466983927634562881049191892938944765706845503419066110607237851231208692378793091009709032022799255757886060342436549840085223383257560963004693488819025271322437380347393002235548477866152445427305577420816417274794710477157497228490427594769273832235889980170374958077895981424226298702530117648628030004632576258818037920475236276895658127593882182794662266161851150952701644412802534585444261158051323863774962673616355685450563735355858848053205343096461621514029626069965831664930910502693126220222794038953983400237383432584766564906700172423092364659210175776240957093021448657104423259973994949006971662353974517651990034449263469060713513740961789484825734473918932287082827760711745527687380419157180420492347145484074803770588727075034530501576851774716215674785469312818230225016108853306866183724239037489847015976095592893081414024846695533902592051342242766763879415935308166702066311766990620049771883353187503115867900221528248648665188228727279562873148741133068017162636251050671033128471278046112995357701816412982174711388875848674726596733756681836850594355456173949840097296845733180134211843572725219629585453986451735264297884897730507302871084651082263054251100989195056370221267237045691911004467451827811678728880165633534752610038715075356979702207207161905729710417066196183066526013737953170508745172947848057889725722503113496342859674385599835430342570932891906783152166129315325773362009640700692954309283248660623844857693642484344264130297802305533154883704226138576064256433587088755050029334703598966518788816013192405173061911072376370380217665500846367201759478524658040968529922981533430892534723531988139695523998692835811972086121277311899142778942297445448924790153104822480704380432983711215261932679529518876082640420357227226789441510620988906678837595065339014955855237145714061333502305431564786311401193981832305980574196949571626954271499861689409725763531255326512443240440768021136856697388910115838618671902267748730734392822725752856332200694999120271406435887643651660252926482598488958585909323779368643681917162014510358343092252205791775329620253229762247010357577046527751732154170713697190331694124057481020506464100006932913535668841531690037809281513981643359457435420926392083318183232873158315632983944832619970760561308396574536073012713809698235666677533895953953721980116874339481532047617823003994519377586790556777676213813219629154658803587424181573233425899229378558201834596304061781981174083465084379694691126659894811506195381169446394204783389078238187990345778735650543523347331224438087570057910740690949041383557588953264794097782831621386119970844680647951169761126508676560261342702597004489834074589475657022110537591603514030211000017191857967572875610715769116011194808081434474061746466112592986769366824347694340517105372101170507079272171702641469596023555614346574328622014737325363496995228235642395041375449548287251892721818919485493234099903619943458354597431232850522752410142911178099385307842370355003504295765083688290660823772908767175780909553840095149661850252435575422107856419501865158525654279093032874115777471646343946111593467971176468404189205270702931080232454961983464469838619988478920193493001028031013854655610266477604879614544224121893247578893651530315211402791054018389457094026205532776929793691641283416516805720883542589576332306647122700272836016033635790604171971571243643397339051590179987852774031703121703509055171640911087186633304250965102105885640642946089080703341275654271702429416156681245960120766175220321413206217348014227248544666713099124129791985520079162633206828881993632124445568694198962934247412572860501448855605372995689594343426725998907407433280076905088898086142244291920017158757082470067318169122856468235346359669582481884203161786727505427212874018630930951508543735643928353567076317568200952368202790722222008437466897242482318409966846673862530877661774965806626327520430102516926546739337396141497416614014561361276738896567814460583773490714809804180844052241288293830836119948655390020900513066192111085061863663310513648434802124882131204860136927355391308566063875580204193838354693604408556615825024159269532646666593484326894077627646272160578879912639321846457673279103179079460806898800525460912629235176079831212743189943887050385527899183234063766384462202259615765058531984400783858778822132341984216330891815869014513717426601346587047238807468526721175463215018302793590271806626619257527363613037791440545832126462378755499285219924801156547610742249199654453100553103025338636172880657027267971824250799031313797819951708785403878555902040211378106119621259116919617207943353436461745676482601983602491586477627669720518187066605190229767418174870932665328309715488058219347799429348597346626135678393800086935839321563355923697280578868529636002823260431154407433169430635832460921956900011600237546934036990087058279333052297931281398847719335126774433578776358549820092514822180374337498534815094873107688594017913518128833745903898080485113978596189702115951178195858676691875853979620061685471845837560680811574208380848696143687794019707240387780938344020638034045016236017370857245532289489869548442646121745004011502564258529598500832901331540190956672277305237649076177205455213896647664265422756299971083103180899083418117852196904792204461110561986141373384466983664820450249345680462573509803650751880146754700867590162090075796853731970078546986151000069579385182580240990310849155472509540258673636844665297122747277520918196383994874603253065085356447780885322804213800515046980221169084599884349794238959851246865025575535791040520609780006473137492525643443061379953494561145827107015734712497014530645819748901067553810785595107891950906445000010884412112484390005711269306837258492927904436440055116691866658205111427711360103451586365163320411489504727384787475242079140873200384359680121988060139433708658877659509080107242468402540894536507939524597836839863227872222714340829733672051687391172684483756634823976127106695122714520811474993885063628183563078244397420604262018854890306108804624184301965129219000394714242994487769809724615566478401485107330570488347243893058014163380924998425312219190482531105913855121700072879162279788146363245718801631447250641983001796081874395111188877664803042595032350336029123753289080869775774222767566858137211354510513713393272280693127874729804182859045788518583361877178621863726882591089334265731062780481541939654770276109575744522665816155890508768195808934423068438280758570050739797097840449933874648016728031876249125192681718847320296626215621107948360763479505089058700352597198218264265967762955557305057834073259688034554232421999755533284005130827648575395693873575129716630442804461344174269650307057933137003207853019028508466023936601813518998471882523746379791553682276332927583499088601868937948633523615432419761862862542080324892043998271516759093826788858605077482706427804725850939883016298142017036434350295145283008599403365208053248541074523424404760026294301781087934694330240875277664171835345884181963514660593692544083090919539211509634390396240198905131796545732479535663187464858766426226045660420349784275369846440512027721257428171728886576647714564659633599145813246914286113514856818128101136551760714554540879820439979486159770136578541599260376319830713699891083097526628804108057968597759085102342575874623381018625023498452810202796289265521544578905144239709625449875176340769589708032461535623139720943598207952480156426650208071010460412407112003913459837221373834036024815471588351330965545358554902931532943283496748519064998391011226263616050267558285717654180348968790899723572814480574515212430775743934681382024443424993762797177964362352634956966579892259443752664708976932939577078737159772980732646816780453907435385381020414784385663189819422542149098061498632950344661148777212296319758035745221533869875384676814436885624482453605053556104149897264376924368777415028938777284208982817207283298788716488187681000375526976705510793797764266513491369323674334536088483978927809040551062964349571429447062540829613265736366030671031938032962324550611899802453125365761408313719955770387037878797645017520828626564547690322257139891630942639859343380067336985385353419910443294457061702817622557170742324842609751352376376630696723211275453620281890263148041801015306296818749212254195107241082969524189358673649169868439626542189904922444059978921318325669846011159459022572976867555706592153748432118509646384776711858271354317438724258524360238073279528539979885414038901885812619833919859651794493895510066562240302395886604283286458261757756442081700223666223957084498551335544462624530848531309897142860518572309069670875652833509297067177122785827479162644293825542104750647748845925528442376807000079571553743900820112821938118479622524786918896649451111844023761892685437772683976857297463422016096362699241080871082257891760037213163194701552624966024493565465680205986115206582845238658310553524602245279051362777505115748789845122661391376305348985605599655952535096267869868636245496614346943617676339220332417295221929567723892647180439538327461811220734800513234675896153508808163886562855990657780348236675722389513017477068540495912501595899420537932335236602102560776374086007043227944268100847654236643028312757624097102151298862885259260370493720466085416012400107569284461521520058826349899746653270539094619050150288408711770717051551578668447065919843231995502232921547140625329773998050959657501091919556937790611613337154889654119089437663266528504326667614974742209624496399327806576295960308985580709364645724825242623400556856444655333823086292399389245471023443573202092669156322859242730314954942061274562926360928255140728021929940592539446260529695373650467422364722831802697379399359228052158348068955768998406519857189372118410515341514739527476917576463666593513243663734534017536676776198772407200238115099832316117534410084154864171529732519888614037399782507482949140192796574070932552836959649390252035686495955010563880931248333504344911147089821542612180072124895894978755414483525554591709232621153403071630925309474603527927184263803410654748653694391114282574973743933794366683409430520581619157337031752297830347411171643521802619554503355691530409998890842816284841130639562914775244302471119458051650696083730879674142523709663990809284218120606117157343480650010464526712090663661091188684161710459452632929059716282121161414275087738822427432427790398421474120478254758576560051091591649928190959849112695667681752612407964470248057280865831978612393785024721324427181044967509932946231621667784807552363328608979288675307501129404042360702343814253384049085656350743691972313695866270936859633045948829218694532050345283188123649335147108452756546119226241074874141622943167195303019214692187687723051529798915153370080834433505587064590583835615855517952861527151448640246538980957568625902847029901001158005693651430210366519849616220312367823152375629265957977742626720905786602170392193032433866151754059007371724931783067678708728030908765425305227260535645154617937635057895683690241823110482852510427057050479158620004614375410551111321169358364784434829999616480243902443542682621845415242525179003083795958890837950883050599031387463433358087534495963421030295861511026048503711845425510537790356723426432724739792571724776775686812194541050132604279774404426962812022655725056266221803428686690637047303912729406510721067450260007684044420702384643936169955126351597210203554920266160357179652548529642560289510470711923451213018270711912941856037191541189356051732410582295861567812543370682138968645379220356843763833258789250247761614954057781784788560335324062620601553635815510497962588636145956714960650129736520913007528042866865343580438122851414986264421040874959645081941029343310811445992962021531496172332098323866085483241143906818524891939148369468036626276746042343193294789650365480059798717688045006722604311279718732984506045915691722148676494837848225549463155636969948820806431945191137771006706608606929356182789204957101855731483678995213336812585762745321635618764750133406310130905877816513682217128065437726324224281880494680245385001131741910932736528130493944412551414114754536576244694824090877617227749791485635410539202554037773522119413173451397063974247811909069364147078419470620995407030249569748001517630070961740740900047013997829214903009989443346709416225049200125378352328328884023121940601918368257259597759821568100787510634069068336763405902861110188228335171410123844660421454828521128836087343027903568669679775025680254131956468903445352635242672128422997617266499753353931378300242348189643881400635396392956179531757701861743912261323161232833271665511748832585680920500089556796973098606085694173721648139687834431033740258942304724672474945544190051125865762550353293700187947043764328172667348781963369077272350835265629242594499444904264339654107451870223953139929483646612084837880176391851711869509778177216158315208227433988921106704773033954810974989220734216686242354702583009602055299525494624052969589013534324622769579648833249128128129468047250147995724851396417002411159626605882914667058108441652758956956830048687769127356781687208572524138552075109908735526172957953795900597599143831217876028189507020928763225342521358035574083022540574870537453269821644421976118498491981895800173827378611744032922153369640984988936673891678456361197868025226727720763214208464246216162574041011670339041550019115482987379414354279447978874051217209325075419004191742878688955368540365744757585375820566293301088321846583383261027020388693935168417031124140865253000223759195415491236181865210957245854753325899301986049924952373933417180247276428551229080531418137143624846705316666255438284726195473347575859517394200157523493756832735876198914548967702476054576290812677286055453372904630794713390384246929949358272939916967062404526170576733726238878081257374532212050411923287155700520844589785352420343187084915870664853324279893951518129524528485062546377195058634470878869084285360460066366335064409655884935020710347436683508401537940348941997314360847034821535163832310088536246829560307080706317434298319311442051854064268632974034548634660506795772118428288711434679723044634966379996265578069733409130115712207109126310787021395230798748705443764429844245859748409342238445802872928305914609398668021299798660915245110136712354735451079420871218728755694057583949411950989187687178165474850406103986461812565411348803857735227073556650310288353333715544555048897941593136064490602718693704250770372446610907463265981644552885513594879949454850499076918011193626102593141385202858983029541081531646404570169912118915032725435929443751980876931397584722270356510472440089381614184751743426073416998611561179465396360456084172818761741528711457936704433814624187749652686606856307376667434440668779660141604460408580235292453698695688513088589410566168157163324280028287556384422695333613171555014770127427215510024222850007307936955676811180344779941939416053937312904183618552825890263123561716545866809988532299225086772605364504739136662425697734811775779974821828162843829061525629102831753650338589814400388286245683660582601854718889689106777941537600600815320305272941897553415830097993581048249518676297857656986304283636203009026112801842732510881575762929117908692618404060657661482705726419905573174178568917249320685302035186175193694593281475298119976493789780725514635628073889459649049310849897258537957749587295048957829944175532563212314269058758077063759467052842699349365289296865568305370857232725306493989626117344450509587504202189569402103462969236734314454918441743277213021325816813005461454321893820548358255375400764045110396032595176362185700148715935493839025764729893680541702133977286363502591783901652106196618434082596641989292798845273490396880581463860929059890859254596809345298984918576143133801733983518309780095973846440422792086672334090516067312061968545683276421521644457287230643161913142870028362984791384891607046123767000260921051767558848423772898489331308736660560641861557502485316922188219899087174817848906719421710466175506291419528431373958519872049845193571642031768666066494367700284803323886207512126772421531756316841317098390603207060569347104528493688399274323401959365730440692493833540821251274757189205859472637710352637001234375988513872546201539366660422882267025688124982843361301984719354189146641728689843038376295841244809178475960757576297428077647810182819711558322998073736025075417061452902713568683412725632870869527546921497474749097498313400204187940093328199739684300643938239734862569342816030226025317769391026612835627610374989860308552200432467056078565265974624258586419310562244595895286544855054539201733921098151723555193572209674251050394383704152473570231802245625736137025243477177158200147712456464933867585448562430941174147611987977620675383930088597583236801746033330431794722674639751441226314962109425348395175877466999957986575525118448680402426098067545845692380028735699333174969255006582324566589642976932441235048665559761525877695384024495596196848999558340219030208038111027015169234562423872490150785918475298399343995643743895065927304381623214183112639549778643246040588821310785377936514285675289315065432220795699341864907071846070087194196711810081740618198372215529398373155755768857050385309840342672886665724515374311860774546735124639942155962379353835601494780250551978360297237455099820558599606183965513875588582832217008343428337000682014441345377040558650961312725299983065786924421966218574382039458544058541973415823442275615446977365258373480109018288657329933998607737757074255708974889520365057293636031034978963449384356111845181534977259788376463448371987385271649537300535755363650365283429873255179616765364950705739948639257718195129467429754967159137879618398736392020236790305446852421742336871057643478633013987885651666808833368089928414356473836093759851788495760067605707320034259606475339954663410736003987562430760045627224014599750904089321017062183584417016547017675843041243648600979772894346555005150539817291371728135059487178447334968997272671794441583146014915629541939560066156727694518921221241467287995409151021560492612520573483345897336786337138656402664735127727366600896257528236715167996073921746479540853433836425036413861036385784750024542160086437301031978300456366575629062189128767166336049012932957157317946879386512770502327641405869715092007161330797340482675463100066954838807381262937495018005854069950229642670812903708099164997715628537725849891368639992998200441864597963363768837278136671044890231074702080464934703484480215157523650321633678350246861108166737531883603580329351851453248458691015992482993847295950506238693640999050812121960406467083526582047763667630328282903412783924368385796392481506934153096298629487148285480601412971418658994094493133350857268369647754509857860385591635657758127140682063814577491977188139632450453925383910331632483147349829122086380921789863883857449581372971922422048057692299389180554624523879537415503464208258238984306032571300596125457016750170828476663170689790669504240884198957877586704639086583862871444072032588390212065425068202444912371248121093975629574135978648611668031764000006165444121997603692140979767513453289968780085233102053912365339898141985427083222685103995664823094803739103456316759105674636476195789335532597686099043827220403147844451736030432945697467407740989890382225517255264536951113324083029177861876581787136430305729958040723933221334046289863704027262849404003083527575656260058463423375726464771219225788888108666405376432628867030472996685508186521319270132235470666513193385406014940379976019594585870450877417473653713666647267124951097073960471280133147101372180766458673187455176366221841802286763304857058094157747909947435552798907985194413313820103425836964477556854130477732710165870470902029488127250526611499963764383576416769821501015675556411409781910811536240816328267739198695013372410143918827984693978822209930324735302374503373057549992476253259908320164615861254965234622280603222971434684304082005305953030442434560800553933518025594091466319117070670266522969092378799581790598689414131213506053345413003842859868854104174086865866813364164896145907090294936637226707859620271569909132284536609672840606317450724716701183335659885029012340532474102679970256284668942453916236391246710377299338820464973546706693935406881698517614017782375798958877257510611410710652377205148532382251216618375264931776971313821780386710097075014389938824381151551775123478316602187780983342715725790442457512547464665400387671708529156508098453276503260123735770306079834009967824627159258316393992197362073928239885999519058600362785630021901300932250842563931950979591726072579448530392153469827071119725039671381710029986406933309676526045602088414914592609164744843957017158314686640444809072240342240853575129690718289721375265807064237173422846412561551228402299173181628738578099676942694600764900610741153654942476566055335868544052668665007190067602430539403650202086465476816216155167020285602159376430107747065807286210216294065915785239284417330093927142958121755939294596489905241326691269891539419266620560118286641798699385846267172736856597728925747724685577904234702404041617524156600716835681549148529673669166101879127406743981685630906733497815360398777665033164378981187722702082118356667992555486115086993133794425519015640903177402967290664486929689889935355174021599762490472158818650836264205708704128016054598957417964127811337410648210902848674961030770898755479067707916620507244416237866348940721190723445619255769496386175359303309596491439226639184605999698186316628883304984838650994337166308702621451223301159189220447455080645542368261929582615975702797827359956144929224672816284371330754305289537642139473298729126032420389759620483190674005919802302674227829783044196289936925473165970424559547256472232680280984156054942490714912131076326201200546997737484755601644744328503612690487218063330099925843036959288819207610351222893216426421131626417081711893109371936239952654595416511178212412812066553616287339732428131872995526473307456185813851387273295358449309359055709726853257612853976181362399699000622732455835175996396219839943294977132253779100045489617159485590730162411020804190840345179303479993142557934646421331137110563115683438070483809830002398260116806036279543265150880835673313088500636540722047504742737624588942799817592878610140743405365734632065106703303388037575483008715800614812634259658146090846449393888507449055749616564928071933100597175008943045737001030292905891108188293262550463497630922870893536155586429624026897788716135529869739584082314389537426688448011834015922675060558276694277558624937954910404018381077702887818654577292588558021546771766219020372463663754539052711748101566227609735153749783947014411767900125197489228449045278318407743430922890992879138261462516677246472416741997911359006495079192869612888686340476205910554772137388776551940349006470297711373385307763495740650346065913610985381180491559383111474633300585027002325113384801075754327134355396523697310521558592479900000774544880504725236008559888766793671887927012183971736868920875420163473077246235403952126154430511077618400872844953118073649256470735328815766246566723879069037316937688308972236314395004822465292200924478172214624045467843819612271825650138142891027282747966376932767058085442682258559450835984465214032266867149927080581621534043055195366940981595492428464054441147823763244636641921164795830664271684199775934681699382916145783804916395622244696723004382645417152569005750217613524295773597105373067688894293861054997503019283155235329456242475134680311559569087418065739381109638157543856281052606940798847198546122095293434708315952948698042160771083653111269133602740906478497813825465243297373813477140413144544183632834977559080075537652761041231440756658444476960387063992450515623358758940400649243124459227048856002103042742077132122623800441785012424684282794159591313147446250011821525990302692496355907683275190619640052951457358312065536236609272124099700717904865961728574249015051879114470958902246036598435573641497053940066831542989246552350445863584931605841244418031022147617320612807862928775915027075447838353158901324978397437769675534788502613613396717078628364099128508129309246697581546953848219848420876412346274797549171858944592652179199806216112825805521613127826198929542060800994771397083343341637723176965041234249430556362662471028229143033663584411824645623387894945818545153237555085755344331918237777446750474874840572727193182733980738788961479735982228017471844524237589871883651782898054017262407093458682085854967142098279307276640966736101657044406647267165972623792353172059873233719437000617199188488079643025911870072351090776965810514428886910190651309553838065930596793870376493884692768002635982547409884188672830181878793219525980743077255004864237120702128350146899436241586774915549998284981204601687904704087402047704994482410912766391780470490381956353286516524698669880117784986985400093237676777684933784353441723763067334209626619519728917917497855778864950781023521679508870932371830001979133119926853078552412750657119288843636844425634883909711748476628064535156691700523977334105952303051753684236491677582227381815438005786838421872879040837916399979480864747352547475718033965861236913158408408377049336830293185806522444269321933319036568025511531682713940607437289254501753338163765630135232394884276125442873545284821335480246608146803469288330115160110713672930433973550784800066677999598761090980719659710382341072434508274719057633904917180005580030186803965948815388043186669866608067147144485710801809685761071541259938395833024810169603485700449309821536872687870518890566074036346050789390467435447522718565895019120423409818444835412078680739730032016788273254087628649963100271632858258178709227328263425335590878311305305593123066848690232150332111918406028084486927482127210192663233164552195190112422502341497391080865407358496715567583502191811783483808541066122698806692976829378933737872612557583330438691160231155745036771381633353713741472574453321541165735478898003364686643827937335913719613902122809103795223066276533070004956678639305647673450625981301727176702749527862471204426470626288284859406220928890830385693434436500250811212495219186939588953832348556741437762118653625673726216655997527935339266907583378338732897243603527193502131076381618074790284971913964966598970683613481561897110822559286049980002569853154822489161497982674528940518552037029379099314460746495975667297179737461527581535271278534674451521844320258744872683824861398483358362296027772648888696710465767289453387605499041555713276994983999744352928392057915547459336561295904865093132501227702804330468338439314539038420806657881064224737733685342446961540090376633214903885782971925017746465917948828435229374459875821641261253479076821828265723393134080352458533674857014911704971840346480584704433456511144228058145556455706203514725723326308689149517379765258229211193747962496272175575298960085725324956649359290118387452177944699136415302516682596304171881466944690481451145355281516338865728837156577570426249431004836308614689514880200895354511908841672040345363399713190107328759787846204703063031815290441620265863275463387244261733512186147286840596254083062028896793964034777271591614839685076695790671418269042002166521822014063560060122909567494884851999903654331106786764860924551950651266391683595441903132018002920322703315658346999102853219499922666520753299601221569373696218946710022950429073225311011632187533112740251003431377647847908019362806284384267637283745925196644164603124975984478222941766601173063286863692869882950352940085717547894513014893648308184459764532513407717318662702000933267453698913920014944043668141343443827312142376756395862242707360492079170572980217427961815052041662888879528316990832626578626657877976877219311106198726285696321452127160195644226773511111896191632716167846938050898373400008365160256944427763470494991551610325763266852581407273807575197545674148733197735837967951778919221851759561337910115665125153917485157114683294356651694585384313248021802911334103421964105735603364027833313070997836737937470542413557427122164456044064158153605145204106024943170914641977299012713990694940021159057823206315234430628787944861522331213898136200290896638372432426466757314287167527211548070802635151439832446649984920201732534421571217439632323852138841130599336069441794563871036397179553887673210258164018267354560774047804244625582532945807008722939487554724350948162042956754701377618371680166563941025339383157168793999178247586472857839547236216444532654888207639828693251735945956875609957129210844228912677956731074114990674279157623937986603325857490974392012549252077946008654621321365218822312463034432223385110962800094993749480930331389374254286323736859798484220505291868482904356729956962253764855293897372518740640860026753834510082290104643248639623873291268925064483777803123512853977694304692448054310992703420859013343093926793567048051660563690881417924984507664538875927672849626095773058620451573526393371352354184370170580957392210491697746945520837112920656951597858704277245374637538875559597210298807267681031668163014353509997648580425638761912944412409466310289367932344672459587370547962327871186008744955851347253691308597533406374340723261269287792352191025771572215876543292228856068161863174109401236343270706858531495747441348580389003833269243260537889864325937404888281274092892855867177844217415797548072134678452327854465252635537801107389780305605294537223121001785642949593542155056329222350185302403955470243909850265493576525353775544863295509981760454327587540583553734524947624008287237939130385677266930097063407889935608365726858786927438176136227869974292764795363799279442540701233970952779013984991605925909651353898975110040278846507017750352591027395437544307340587041127634607692882155787007306657291157935137860371611525628393216710216462599042422362447171611282038642881748587637748555679951505467194409817460393122386799427751870721875467068024678033790776214796939372557883588261122256590557097747288246312448034234194762608343285319146387484773528682937798837101071281390887914385010833447002149134125012333037833162954590682650670305330190628239575512962536511860985050190304199121015520983953916965447223303426241460393955395660030718008501191670754781405806533045331016933274092170248727375473723234760262891441236260183433620921906529773639734248216481806447893746564612707074738364017359348529467185497534949742255867408217019100506663341457378325710296331487896297862084636145189926117215981881360857398836819374631612172730770303600509486723242387209719200005684649615854935570002157070728463697536602542289122269340608131594163599139911147983310091033580227668463438398666117281877219748613824031527717938839361456884967617546146631407553731095127440151420606258560115968106082891222427352733207612936903469049361684046367150334627413892795909867552513446950466606299189031524348784697553111393047852379493361738005476703944867607417172389738927305894995225247695065721670867212749986411088220934700086293938401817597860688760651859985713232397848838203710649294117119773173067833495541651964757627624878336854671865039747565659858306580030270141873120634824678838846486311738096273337452775534277118785784230431466707036079841946518834880708465162604799383503679665702443602856211308402920057587756037798900027743658137001189414727587322491245677521126028330087899408184359971610955008419257793345854816477056428444210971704147960156121763209653834834388695610676885188041045329349510516385730884635220374955404020708472739642645853107719086488413440000488574333714283346118933537836918361806222734972700906761077074477708449603327291306127480343733002188932725211625887554063231282027437478973861485653405368406836868908083153576552681407878297840357764575452175015544834288169427776555595149631525649726774425169404087729607493752065006868077664972614867685921420341058815769320512344541438781399478872367913244554139332444791599995458453285741831490886455799467072927878921068588673478799618972527995975482294554599252783017723397885474891552149468434286055745563247648634011854181214047588466256561048309846755197842298758890884327493580601532829820476275129629645205684323856488087857541563412743098145461454227337631123314421328788452431099171389513860425980764950601517709673852921815410095003654443855199584051640193394316435141910183505153713347990880445853632339288716265370857152882488575431427707898545360580162937195273224478708503093175803705919238892054612100726144901219190688658597540052199500703579286274988036712895197860285525454193642679821732752585342074456708426244700661728073674608350604103656266692988258926970442308894572505913094891318005513201076758815041055802729210922091622370439438109678531583762255428091027757849550249664168726882060244309996835054988759241880200479808007841637807812000680990999240018248996272284107460065307776589325136082385686854812495959172436507133146843666560336317897635529266309730035624848356521369801469773049349868455894127406684651541755929389663428928895602305671198403759265291529700599276949638642128732882196536983570614397834507493963088709094219010541157916103854441811495683271375165363830869348750762610095389548171985211049601502177223000471059776126720214155160124581875566903590509684695003055641378592683407267362642339351401369662019663278317126512951132243907928445893137743571528130000037966694685066035649451339118035620109720594306924205952150743099213758627626543989906663161484120107410726937184852521835891505259231420586261297300524674619030533693423105743782490057560497264102551594369711823968554283782464667076447145672803393037101324155661243064318289678259065102835074560577509394166886964589779753470014453784020836381518727980873085259347349529781653722597907252616121040553146033092984762602007037107423777505158378845091976098586592324940871078814618211607260216013363836174413928969962557248443159193696942180359724608872825162162219621549132802576830880020154833916526726390781487705188503973503865592677542087974063664377640907026500087442560583352168418497418392763863615181971691504574176140718037550598118626256764665254601865669745709029339153883708683585758840879235192738429537052219939743703904800975658628379642701832905168711269121989405523885319952240862463104873052844692024686445017590172952463165373619662708832992277616854828160198314297250488229345596713032233059570795395520601186747089479929577223866465463175807007071104378544782893171636930937220431230633592306889670815589535768812604773177169700027292277439009029817909867053078043188329594567371664113334738204979854167984499568310647346434509728531830135407247861050352960276111828921877811967940041346313535630414332075196824727758264773659679978426244397218329812158667080700216443523713099653918761893243850142492743657999874873335668719372457866965450096605699466217087070957012388666910300424328706191492928009255022961526675222777266051016214689672505098812100130104597733469419222148719508946794468491837198960430797251974669655804271766691986552998754739566391067708502168362959234376509173309743733341973661114096913336318421569660621385330403354681207703743857724030943533089462630138904655404846372549914104824026405441922492555145876845367093625950037009813984865447884262659554216750514203003015664327005865490960002396868022638978289385903773406292036433369051560410479364302947997624084545934238711322302455909950672037841191588978349889732776010643657779258093418184815080290936889529119823745408178738382954694550533251285773342002310116290897262222880207797093193230869917072985743947648067229916212809464379025131587328978699215080900033804731242473689837151160998705257525017464620651194888726509008361958835102965600524022543751245315663649406745423574667555748877870650348025667604643268587126140229023189433864821820516317656677599397339268046405953436770455890131206603023929573082025224461127954945853172132294928579117603998738548514867654191352831749989323833670390512210814728762302386985142504344416563913572697607585283559033103598529459877940632875634469773337236321033504661251196629502838306864551256921766068068661852804646999740237239801456491718600873268877282927686719515574597688040891060844682783293989870718581207064680855284680732255741690406742778738187781642753919965330296355020322641583222597444924461672402351551140078567352520072065224288204728489407334668340184057126821685337741891990154069764021490246018302791461536400685088997930362372867551584287743132293763846984742808548268209841726302101436050642584015020043968675005562913201037192588863451030164319028096606638742508634507990750190661777502730853306810771399242069999735867898046743344547927547992768543600214594882469563345340997335879858943536746839306626681527974495679257829541651312404745845913872922947789328044573637352755282508651192126756088350911182450846957800027743209706627762775675870527052434390372294068533044311459378765023950152727766208348874026628090615820776246063611860935831356941337874155930236215601447588080662624414516657002267262097228761245883007846501696259873063945338107377679201482114368192119714116456114012845629312144315394577215961506644142831287318861509001656577190272470121055143662795409098911686447970383451326224859044728859599095550700840543074576855941468354610862877166542057965517321274810895624560902393935552280820905225467100076117474466954631962384375711565533716293229333409957717386003345487638500095844067845015380809191739364207425358532146551590414084992969906521740161736250587294916112593006905459550526688188773197008352256735365237798158280106097735227042676369850606989927409924841912124312287762108377339739217187657535362641220214036902690430702451627479280893647521422903098713701886397285213971866813732031152466597168256098697950969799430368749312983918877843671988642134450341943604686668807315139367596471640538025791250389732975176576427880938270149025972777542361698839250344123053811543301015361909090708887421644261589893316106769712263185127916689798970447179085505335458718937545042081866811121878597888390978176344292178307264750700654026584774928816563047235012165059082249023995925154327388912661745387453945885790247041697712406440617442284321605150556381632901142263097485307092903287635699832995902909054841615543296092306348296996758185455463751793867411091352119859403694052460620660987998469609963811839162400758008380716864036873964272974128389043440997600892549129667422942912674798963676862032525070885941392043729747297934939589539399360050440524954763752711151577868864585747611158043707670217207430176169307631685670829170782229213369371357839283049551466101156778967008045752451208415852887055791219714021904064149150968568474737642651090460285359188022045624030596708852816260797913425732177643730054757953185474992757253489259820155439350798429450124451474088447730743725042994496655312599834235523616886149612063934323666214411388188222263727800262705073257771063770400779166370283687877398776923503535981477992407235211745410118299487564870647113399885370156088750427396300531867630512343599565138006004877744832817246927945177135256291088594927486559902947352661074851721712828356277621423837897752467724896229875555046446041931592644272780662840309769127680498826971653121783161051697886036886538055352666776082612626863229849010734962512483504743620278362983043098017023845637145891127917405783787971244256496794338019981113048145841347921532801584546108321021781585531160252695135553760011409498896721383215607133203172896875344614156595029470455150313426887907353887272852662207565599536458136730720277722643914503771375883940543481060673002089778888028669484669477646264958066226457449485820704516811991455430451315046670035305251104042607198483735800135481908086703794273608967217554496592896749435805103694797265177247536818749674316194950997266742878782857746015367011290988100383516261780340298828749748370719906053338068862550783412539225875094520657552581527281408546413041560488488005341185578113736631889919434667736462642926099435708694966012239339568558552841473591610547112463357527530554570628117153821066216631555484468443621041803440016290558978187091195795517168247883415897053663328135846138184149814730343689158948417552157831518817703227174553640966722228370008485949249799626257742433511329856082394956000193646933404042222389679290579085626600479015829755706664191024585983084578090964431091361255487762961707056609639240845395905377009807025548114778631062922607199034640032570278250120268720853650675731453943986641245204276935186786768461559183455899503928138843141641278392805812027093631485165815417312589630500615512601997791967030344222052018364295455821924743894850272605249925555688689778539803604603249600016096415251287917182118185830886383537093726855738639789129517647921458637533721182467560111179978118244463079679557579034718911558343148010520187466763482687142473522806349082432158404909187261890835886172294370877187006606034862511034172908606018008129538404949863027148681515521157400429373868889562959277177547782430914329119189214968071343217245878071499338895691006987427718354921489600127764571389149057759146551335264372261873380823973398106139818466292776248259561601814557450919024468007064918138767331493629282013541140849053365616855101923229239458165303905118214549302423722589677342149312850683892532045206715647985770985512261924045996139353017268548850223453220040872729701155226499642905769399012123463412318626404592327587442992811915818754393748523938711450237150630757056177376253987368093056010746193533273620147390082181474165625309102267613680672115587807154683986087228320131947744066301561466069285113707571829707937326226006728042647019536945504918768275685559053252144923216626190252878352900793399973870244585520062502831563936226127034873517604307015786303403677006941451165553366562135636535708572196263060424933479020769574969648592554205156577931097744869211746981487246849052919961378505809624628385977314014574002682073489327878560838190298805369510337841682850914917224708824733087468466193017909838566043989399756304183870643102741783752335198722671157374134042350238920250337611421676307535449327671358599766334816390036204896833216998334341960852555621366992682725049591990997818569561315365772123903081072158921530646545118871472145136604062498300377691010603834011711982754177749539048828884540008750491836781090867005331758235104619012515525325928964965697200402713662535789475363829722334920529279818249570567026236375205800010682400745433325721668407969899152772392236822182334478507133797599783083966703455758035305215716902014921826457895088471599828097155190518043403156310184584897538717988905648514924292332743327926240921358350077796479505182306526672593237581600685382089940688352744987655990133657727862985448291744068255786747368318586248256327212735174614923802143053824787523754479598881596129313390518920897002631861845994020673639385555396579788481116756687252224303839399110328300079174077843304116399081148068845711493416707226485975662957077466741652886507484248571044345790849012272994552299911279364249210266132943378284644209743261847983649145712553350073269465915252090923704661185008210705050250319951426621549287802400330203815642657341153423504180682726489647708486924859533831356727402237699409263662581707066773451395287823620725707137924838393335546073711201021667189638907901399119971302502670604455689664705140892294350462214259509597924475703981576357202708483417144434291266412702039296314175297537822542855149337330411466321895268182731039551285933491820685321972522967266206822765466003668787575165836041463983365139193320257300770711090214458911559508601172862038977375035285739855878702780100097672141713244687094131895883039547697948461402969104375200451905363233356940795711440279946750980094792565447365147725611001334803889024270355589879474320189390689592928458308902040785011456509919468286790610337826157881089649452017648717943577896577384539536624450386201952216513795470576895650004965141479680086631631359036354111222782825861525768421263886607899326025927908255400922004521310266345334949082148547766967090745092563672017370839458113710515075691041835542046304849846589452006735924946360729782966882750704569271060060353198953628179802736209901599118866600111731715720634829137844123644679652762448122584720197318325978012752627881776272141570843341089968273620348092045083978602570382630109486820328168744088124240539533486749065679385224579450169658461245768221585976053465631476820327694485318311647848216313663366458752987468047437280961899938907827145836092245020596255356955050229328488295285720587273249100543772453802387693502092070954632067903120113584976026491829851472287445688171486189812406346127160794224572512399098754246748148573045067499663784271159930721002348366138184339378138893324979068173695475375583762409439871259050012599870550856454982043610703110149204180974212302408628647028958966130993828117443230202431777849560304761408356429562346982988698094903465656741782016009652533103452961336030359919921150850145501469492913578535756004585565664320828312744496314622911085613353671746139431805673674621503334705819178447518416520577171923950336796234949786848109756983471847628833609842126957961687977298978358485999394383459885676276427015073356846817149991156714554371199601730733084582638044816124654358760459633431461856328422409575118127034614426392530510058891559199753178823801595331777286375571342070660501631072433825599099546549705335928267276462165838736530878073850596458292215722875623116845263022593016869724939804484805504082695503179459263756712538703584760123957084854921792932531485837143140221695403373760092518232868583542320531864105749913209602317734697927713945841829072666339678640263473742743376504893410324904224345609147113398615641377194375580351006346562803982301431440859988586132152153551837663804746083080892690758109588559114053375198282183339336605304268062054402227727521678813385891550126945725184938181167495449445946519239520914600776042645024112633357304688100759544448719582687196458559336999969498504567081934987239283468498901599495037928400224469232874546570394408829201789593601263001529388606086579749998638151165224843001759419014193626545436959203496251732283605960971901788909998253367744720691178174008318536427264140292307921397807434157797120777467474203455582513039450306874101127705809419790490301346759094832613682276996928547166284845985442081779938488562275979148031210637251588097005609145533103903527520454326349507020117443323463930334301819978916233504545752442267689999169085750323709191117054298223582854351296262513126892489734513980565109581423031082644117835254021474753939707611802974902285315760826295731434526990266238620118963043363394516101775750117297144866953937354022174388949861779091001128350758027765134053057598207987982340654103491205862795876336767149358907661739963460178095833892535585328244000083195634129835304191484388172498521869447190055162180629000987321584100099440340631352575441364537432475543496072213152214898659211277501982915398748127216033498305450092987212550680974063854273576949524436433836444255698585157031534564211977594145151264479651974904471298337338147901029934553423975497373985973697493075082848343088123555047797934839177877077816274046492063387602392713938265676510140088583061477345314153034133792105883256902404172795086190552426098390673910162067165415035826073653309396053458012812260192436008210366194959644558790236821849769222425533489340203305779305605192116293288682105642626593751847650938913169452638332095994842084429315077555652389013943702679872892258561662865233677202530616635457505717490194407992063810777155683776361069577152793997207276524492289725921949042237367430274755926520864264442733128604406220695952168027652804907344170130681506824155422330066133172663102768993151290250529967443385761660432657320058443554839341116764980432761030699635029015858879465131542879664354374703624932059136990456903147357715768447885509495855068984591220091306992235311403904074706935017511332220126500146469647853022845589596676294673442777041916344939016958008713237740530779505751261546524046098772440696994947744500941507997651188659098673880762928944622238042755989518762634677209786078548275843734889458690523321455949911564598677602634078467445635802535551177865841526147293940372554761911789356592445301807765825115065930023883660236486390907259035824615755848484176971488307163986447956538639723030733163349891519740980070222681888327272867796199011554172137444480759055962347117705086109813824150365682639565057274450482934909902412528703652080600318853724567399334362260544499503176943489732438786171995123524303268157150045979926445707731547202075163355945351595712369035452484658863555999249787084394183576933608251045572165887915335082255079780002252753623061690632898919917537862702205287278811573822743397666481644318888569355395946493435700972552932217696888627370011959667411341939718277781645350027297745102724485569942774736231120069884126340187835934595691076145112622352025568003907508782799060341473135549754594200058331199510051821545292031164705870678708044118437705532882238002880934705640729238112845300805048024619508333382979100058929487782084193830814463279525336375598311264102116275236561401029752817433442635147520290059750146499278122730312757039613298335399087677900780890119905844152748362697925385934682623826309133649708052769551134506672467915017775711594531935221053904355884823984032119975896825686873673134746047438961132646311462655714127385756186776415239403621340456764326354946517181694100170388423916690439486497278185637014139750446273219009905032857936842012919039877882756713519548792811158548845980969965216691439635590887234581827900424021775411843498633652643095338348892901403122546992487248596241892569231024641370294260498987298024375939569163846638192295907886013472496256082177885913931684995444896570958128903344148929320546979158033110627516242845093042084658308980310833365157754075770314416197356276497695310281988307694038915143293974063587152565706341337033634313437988138669470122274249167076571931545608762990730820370293347845814170811873042192632665818765024456294924391814859780341099483535376612213654455822716769057410741689003222054746692734233200569480254505909364865670688750405771788217918281658837843307232304757996528375045700510516380689595066474689182631392936500776613770184641840928728763212791497412889692014770595583736270676442296394372845379221538346293610417096022189771193663291621853083654295104018741998319950644005158204720901608278722458078539131259649020239070540912213134251745894831716203447967451194569747088538936192441445432208977687036744269065055298137982285215294699927134751038432682931333517282275930508952111184852321450287463878578355165271200228877309420586178574906523974265519333206802784236959339914390482963847169382849279661873227991645925842684887488326760655395121553362954736131547139838664872238246517324887874652970261023342385670944287185674750682935083356624981130401464070532415975597973045140353728643921781176674659886355831886669203011439256872911775699456291666332071730664718239736265781656682830292004041666954621586994151339228930254970866796568702871678659809178557937740336846468202462878204623830361236357377517862402556965710781173775343150570382664500858075292288354335923114717825227239228967519200914696197128951490901299720819029675419241489243650264532949332023621997829278359250758993094015273902388145707133857102369575556693036657726871115985002057525841270128682562973375667930698293539540462769263655224461441486232326864634973230962244801951496821453252442103596176316526735217775757924666239636886989537608495461239085074392987238170217982186954220512793574062489358901534003494133354334812739199620260095909453997287578622697945244132260678383702748543574962481508476342655044497377792894113509820805496178962130677627165359501516837699755499656540973902736388219923262856017035571743545270820951032564324951425188392492617204235042848110164545669127890159853266093688037323834603238210412921609024732675650247098637109746527913901709832624579190743028963562839545783328582011734513641795314876463769910512339827474294738789079202686550871719575701063565641424240278341847028242865779686911286611403900838902591682186345130078323768919774241392167310392259739688775241689937675598919861667861218337094072556719244973285157906929785020207288218438175284813541313172715209476590898576237802838466978770888141003290853353788423569719519078370669506515644331885726991748039270895869421111844641498703745479449728069305233551090662792287171407189238794212244647436879185076883304959702428962139581865828500012482869470463603218408954245573887366109370955568198563710346840093256483302031631361633748113671366593012201487246099993986056110644021467506038920418230040340097652853523003423442393017606690011193184259970549813685297777735828668200999427758509478061619511773703770761353621255278958221512953495937713784129116660785521474419662034624114637608507086571573827441838780517223937009808154564330707490002034090010970051874574230309979307140331772035890508169255529112811086362301004913083869952975597287002615516222955956027840956781526582197798461628171854854311860273016590919947454586341869785421038159427828877100277451737411954366730399403608664409194371582235035728133103793541075961750263442426837731406738381395128498162278508410850080542947627574508977422090513849721691049747746099207334360615817825234101146069212541725170926361824331557928158760960332906220934965627121020131834161593254041569003091412218765018118918047834916032561399452996637318488348735438328661045281186410745382846647643835570572295182699756062722776881190133984337439376848033602206232881758096105911462858171039832209873696787242222946238985627696210398426185723895610886411636084884131595555835189716899736344949105856737407773006115087851126132350706397212996384522833332351991303540386210688697151432511446792811159590735719485326355619772962194350424077041029748122944899204482236697629161498162271684592972880220391547790909009737807371529452791628780839591547228517369949634674130918891880371027663338907562887759359564116742423118034666511364462123716647381764153868470026647132162363720592495697081642109123455477578524960246522608666249610852813072858974507452063057623570590356912307300263554913437605021312354292309611087979281360338174967013789138396511864714141843603738789034877316907146470369122089305520418653711646550924053717142098204570360275455072440120902700138790928359492864254428849244771046241611390142802311351804954071776456848126520953450540936303819997794848842261902002217956792365030287567761190987834519978408003915019045349394723870930599963663559929939647751479428170207753849573879134737457173881893751890673822153431594538635535660045285544149582660801311312095701197295066870321560866832289709533456780131911930808983588498714027757975845351982318570014893656110418150109851411870748373469052535847356015296378952287050245357564979101060602950904823458547719270555163512478422350503517566247886500523904022585626945584876624097402907577605615614826234089126013252797871955235228674972016780132389202621421961334618495516061127614685166608308517188476532050315718751551622604470524581102739880004916505113718871546588839040299212001233715360277660987397893485078944626985413346577520536519672233443151071970150767474654396528424081705698697755911611617130621124494982249020019138761034650347396383494094200316773335114495289292902665343472056462919549901958468932153590060829947311836150082912213046001186619274958189526806566951007518309425719193924378904946468911461703444625486702692329781101300010284263740693080751243659138078405415078032116350869975799026211437004259233606131587927175426442271433051220925524947775777230035054854364647132368452718204322812793225603385795234437668371946877384519852462068662159155409322010204146451978767532929544052134919198423853453573200861205198450611602837385789804544185429635215276795395190068577617905517062441495662675739169717259551164534429476445300688045635663211359559633768135052119995983992804493622225386509857897744161416510330660616594221965562742693837759719882157884050828198363107233321260548160128416896210452356242770598625842757508049245395070829614335189249905710339628617011530660660675519228773424104702436945902669213728125872012351408953914823673442142110199101874083117271663612766008608056427872408935427592581966129743825543606926553030242219538552678553181922809307091845697859722735489936162989897973924552691921377104944069597397642148348763698795085488812040072477984444337980609717567553581902271877169902041498596556887998670623740895967473866490534631608523121393874864095691044964828639917241833142084921538336109948706027149353936669856053779290066116862120327878558609561204686485246111042350040039119875266318327114444315542436179558582423891817038411967727181561696851251190880970394544954566169137000134395885484645469487594951311679257543429959698462991592564565261293286002450979428184879803370058847902875808848622040576837005418243465131330694837192427318933907588583573519008988497804455943782923691106704676837552073092805534374424227583818876686146635420584102763326626762998215863411363866639505379456723428937442091176312434759789421844164674207887129853974175308537379953554359543853703187176281136615132852006230983836236955190796663727039536255608817535995639099776236407216727537734714980495239995590682776314838917603106116344411822404991895367437547505319205756412278162572889360439634962513532852582542280318221498861928441607066989301778806261157079627986575559671917352703766346046827315776362527426573879322574551649514961754483103832163753825497887203872721100460357415038905756666341199205392384393744495078437917554475340513862404641411600266463519412640612822611847894136427875648555048347286510127061568491356032302003938336985342181547923833730081707443701236221880548165110851043454665596873067449175772276135907494728338789701280555960575155155141132769129516182640112332011360212793795394891128568248023394075729676014275018761038593363561981643002954288366893214878388777269047002060017919542706936015222928685561300044998431865015021455197258105106918548355778922015403097016823600790007446244232401655052633805241107134721148319121609716879099817049998371790334559492942465741537294464103897661274345807519010682968011466567184938778515292081280252367186510418396061752479916600094947978647491756901193896823699608227558649910345543539170689212149701620589897407593464265518292053514069681232532876865690525908691479587487067698667633879608297841969382140016846934796358776321314808056353335709735389350097787396061440343183608191444874162819504309046318774963004214380051516154803979643699373059508059866993178749685330848357618682172449312817736644403327322333955506146051580430799597369048667793140759205803033939259464408742082961483627068730329571497650991888703127821806997289265218181467887026272176952186059770901753841912737328443540090762466107737160490316178923745727786154233597542285406542418929009490840311912363206727450811744778521757188111407836708961242769297899767831752603279452832831344769330630284763997345007427996275422274739175879423997561096883927736219019406483597367568153366046797150417432853432752917401007903474280756838501656697248095222724562013803537360266378776846507328695335918833704609565352253834451606080157063876490791371305127371595122056140399394699090829700590484315844206841486802799491602600217230389570366902355405160554506745010286811668152962227085142461985539411817161820552319946096173814278702062654336431751942189353911535646621255648375839151454715174750656181580709529260709205911248968541174943759303024782367894109600673843319576034439315778928763595487788716460757596331694646641655427407019343727246248978097364805628222786300550132424333261200549234557084828315699257211569224407808838057430647133372707003005650254693432534943549040215234020936512417895530484196108711737091170039616991383284016120751077033064582262903425567785588078450011516582541517267327489030201105873035941937004845937665285854194254850292833425853191488142416750224052380128449013580333202211825691135323317575755795590637085436418068274986184621106214358010535305786552307279187792639348884651779946382807377830732303792069770892392259176906738318083952030895306991203364660864340750719919159089782588526303356443923093654395994327869880632593378295321434071455568647686335948357887184435919344851010432446608958328183447267869915889929576775782340797889545729230230174449031102995999482025850423257098264963413065727828493004441379792522852807644853953584249059721095368510782406225708078962894731183364999640513849388186754728110343458192445445573111072118554745983767255408327367108452680108033244494033447528652193382551120583071261228450539363083842488419229692356560916223133234778907832027214701266364321765312653360780747762436224477245529806314751546775634973757211134518916061940307880005627880016226482426425303114753184878864422846485321405634452350606093296417680785439745743473903347864839969260465749221684569683666589863406081647811317637683352521739067399369636900122326583714121931745033877115391126839529808866463744275288100493660729842406326424896836086414321793864023482394733637211325167208338602375538007612756530436561043859050954451309585570934306662147021273962239203278841257869319473072838433546173571883177753395238751725980793986307953028859076916313748552700541219619184219929290553945707209324525190745136417028942620701650522769154451622037714863311345248662245112111308443060752133348698389847110418671722670585358232323178667185370460304479538925751588821693817715951645181180218325143154114092171582113655958180318426827827633800607017784556476947220947954380994493311414209388468993791235703610462288296479951138040514058418437485182024396038746569877279657285975846937423814024320585155739509844556379691232069409976837088565679594832936736540184403177976111482907121083513194878031598643934123972750744200856668922720791408772552973890566462732207708732425099223786672770877773496148160660381651125315196864465977254440327402121261637474737884678766408456201510383999657336544683473611447116475493028994413045174445848947658979525785498002544097124036908156412832771055975589617566458704955430258007133405679896371574334056224669431272865815464202906785552728628353297076250943714651621868797341141719293909967386825655302415527472033573485080815445440444538054502049130253001837730193537873241832518001294537892420531235680165790251104647664781374593730447192522227655300770552866011451507431879724355697310647015606059077261360305990295209595282440348156182012967776404449046213612166389132446401392289016179009418764301371924106695157900338684603132779813330361882490940489563964317037974953061684514674796756788195353789219867313478934100514374554437888564430416635076700974412179861210928779647625131835249106811885427687399397269776387905577273807561402692563585868332209735548522247241268778609761822592315120006380775445354652232391016541514983863295876268734416083711413156920826759320814097351980357971990281729685982544765152628514062899238971138734542472274110089523328320292380118542572887854297747419896960725336018292972527020483661681538253748776649991390011075616631907910875559941660548514671451119919864267651654375489330930365224655840449857838984106292409521721535777337398628069557124193507272548100784932615197399843746583323334162709559818278865820119454920596691935740149087777139965786511290355772653254239736753946553401448017315398783302575530981971075624825801459326673699825518970279663605050141598747887176883077186320858433336615635521748122763419715041431516786457376729005720706026415832257139141745850452430278893670349489848603438575083790987158707264069187451238805219738395881134994802092859294773967192967316233872401942114999072210770611538104950719608031741183991587692328515159150410736212384312896113245174657862736323275520264738246105452200709708398161061470477605357711986272625687000321471656238510315317071468756248894447406029083154292774534668258232035405040260493927067307992619019337862810411701773276364421950229705602059161697086646962843579104339861509532465472816568456454034063241074696030487363109031514913317186838119700790848600473309805377016253063507537154940059304899555489838120973488580307115561407060522846936749322764162994904751623253021660515576654524177812397254754524493379662020748014867084157174187322311803012200439816316833780306145950602015211319080072113652080582089397453769004196305074043218308110251544103524924528692753719639545342568263461055587715539197592647447165434358045263772359381610372131904477521460173426861492659972143089625955540896595898812135267809668711448784316130718494472931252873893314100561432580525388319569360350187243653269686807598104179490512522110728096649704045873685996840926011213619903671959565724921391687706803036682052597200590457039083773762862917705422589672649073537434037693689482383619563664464707503525672631253863260374002455139101763212137005707875641211641933594733230757352065227589376713193669725557997362708417889167682381805650341008114504054552275238226810907637781698095852229517275138654388907866478935736103461615056538262811522874561973851204445426536218519805744828675115490229334906528640186615213930802295781874318077255451919738158555490139698459010119936684510365443480873667701577840634701490084956176107887215022843862317603104681522760597046647330038788769016690312684444660907651057637309735137583993751523901514169267103080878457200442280537174225077868164102811896583042599254604705156863468785205641678080285541042439852246160111486602240444192853267544042848644658842401779480954703820552705295140835784965354706401146822824396534851713057983237321031660520924298689322256488041082441998289882018445170783944288533066783933118035822685366920940719096476975679407850993919296402294090242419029406558706613157365509814672858285260646302796403283754660444489222627100377346498463781715331796837864617859284918371912534643962281264218300149651789615811288912693717970564512443869066200079037220603771293947768039941941815284681147975336691012323668567210477956015421181241503518654923116364199812886412936768240509402735868704330441277765961084515995661073682608791070237238385473599491182328317816574243417614756410644039791173597620952568069499988578951231057177498420616528605966151753561057825283748208071792423326395789631941209902476206660068051058285274405213434449703723471071008168930729909439318844305359888592529202234474421296228552927375439582783535719509814373812931903008492598010624603688597893204362777542488323906001740513498091933132175461997670311967281082694441826240130600177228619774542620045458413713926956202768431600948050630940805343125357379083250446573939168104819296362994948354615528756008298186075636636289106043363647275313423318217990277767623656412815624286897908626379438194197373492167937457529305003983169830617849027330324661747444457312901863525954676080694527228041054053458025733794860063596129014280790163176270057265016774030928340631819061020843741538884983581027659590647364815350137316725906715838018093565745124102997947205897954194245532768440695028997013869556427037876672807926836484183382940440519182472547844680855792934440965077078358039820376484837657155189292390314802547007623313343949337430389864028344165545026727933316761965978757612909669081430500167002175642992255688127409981450013443711530872376711635963886046241794666761844503610860239296000888914545422132301908571551863265405568977763841159959654477979974620792002776559506021094559559911971974741643714514733388093294032140759333649006067384564906773692437067260374801009467800055166263385670801465086377344590977316866958131180299208619586859509840564802471591150851946999874909312891324357897452354453413487786816693193231657048122586586849636408806354338533117414068839197245324959678078694183271839475877179882395029124502824666555738239579967662974027294869944781320801935056619126473072530275279898961447857227136697634871155975247066300378945887771378328659317348696252224978608222865012167399547606655048527634661205862916328966059408105151891129076715799979650092084394107926404780271636123677001933283884969261050897241043201415499300492306454777153639743279568581448845667731304735096011786015547160744514986171075236298161955820629976125233663795301371460642792882328755871421493716269351541572149631287873533129244916736261305275231489642758057858489734254778813109972507980023185605463037479368576779614877118471612041638932515792701356303186346546284333054782390953076909741656000501988912557056289158257059245875994517757767189962593975595688579202597175794282163113628416037955193031771011071867996705869963645049959978275062432907198817918826993048896878513904917789652669829720850058776539195305726216218894092045440783693660839576123693936034045470789149597097574723706438196095619677693651898558785703946629542207308675372656326589451104116499967541808777864754245303264665236888888100230492234844478550354482394841226216303536185162749232757055573889876696078859626533167316643183847548771767546433511347568468642794613100013941914307220225066729982877834685923409677409929100292852627384028199660564939822866967056232687025510654013381051922001201998467948924136181478290264172496295676635426511044823383798573237396752281349982420552349123714861776317665026639790076111821487649618314730709609450936963015617148319984055737149024564616213992275118722043464260131513233428111365137400335458677430399693104890232679000746583544923406374843808609232736109812966190272786111996294788784187638595514182658842768413233782699532961471880162915365610763564310430092618990762610907751142932697983674852099465383014935026548932947225975863757049800580493240308495472254860064316531189932761763663294954793790861523705091194558331884749836265282305150539275669894421591288827081120826212638243527361636169781689081936007091666282654821814817091947078532447870012240683242221661716630825420555079864229395719223177626996887613730331029937396723458250772308932086842619760639311325575073176687695787501147669277489772844541695842873161079093712676650170444113583271303331700263289705144878889153056601912232974180847755482237652061739331098155910267637749391764859483431548295980740426310720342623532862974523763141706698483047121562338246643106991479564320920360965450258187777034946000438800930393994249522034995859692039425429358381449089825449296731431652958205788279926260908991659313859047793116524353891819365911157919143525360176735250253081559788206482685604716526182704291665301940903955952203737350609121799287083307379847502985644125850074282772651435301211945609318772490831221044240406404111803743508366416755533810230160520340839958874996028465525558334604962982342492410590768033317276594911935371446325149143195876227438174409257965866759560099166610538453851671039408212086236372762962511332134997668800871080939596080338554663519807397303675173413926086294393195193298397383816624351332908256616615156867723513384933812617287666911895408436781140889241934255085526681860358771319154264647115606665912400423123991606896491555720152590992692788048675439716351526905206492078334191907828574658638070804807026813656300192799503650923841724287267099383888573289470727783711272042102284218293227763121375245305803805159479185254460395239595918844105207598781789157563697842078585297338320898119098801153644692658342751677265917188131801784730434759202051911926728621483292558886703810383205451345505878333708500466747540750550146053353538793733320338113974421526205606098552391092134994149339023254371267124554532993894700996485656134330713315910737981835889297166692700929143729558440941855587833414836924682511653926672433532707203178221727060326853800212801111745801074744006846862158817786360842376312747912446805663635780889269473915846890190465277246717794801069241099448171076743622305306795302286190345336409948070918967577090989475876840236702795883150231418806644736982320562888751916768945737029504647987356780677980252175568385613460477386364555218260553014910797969201100829602298571012027038035868874962020125562565001150237114580053842198870989171061153254217042739134382573725763688805124784934532926015208152371545668474100115539392318431731622711797321207536157425088382098690770871269083764724116043032613784180580308612013928662514833291016082274653597671642387135883654711919646934886635332233900622795351141586792535982673994409455851700416165879365530138256851608053681115003578360982718931741392996646364584993855935509753908333170016443797054928000717082294124449176804281550068482806866191891667185701737480327773927751902052710494443715041288618441136786311128812637841391132557554210388019127013964355209591264631618856550093868565817760222543480722414424152344612825431242064296095111738087585976312465734397698912854677168053402992145964157372315980798270363755101500531916524613303085391552350559057180311041689386864805967089848439870413141879450771877447036209852539880521491950039537013357258314621838878743288684899478210139573447849041176991468014588496711889199187072211869673638475194187569686747141255381861362625991138661886679566456962137171721152806735393191618991623673235515058921195676138496916508410511502444609185882855532672638116870194843076194412005003880847797260441318788217786012632376644672634778867694281610800864160158615385659353498973976951816307329708633866373136917591454914776640480409775050465289283448921987724696847274758078304872571579903312145752865825157507116986064462873730254890260774996520028961734328488838944019200319052783792384081657976603906156062824464648742973002194351631986766998387134570862412090648175566563849888526196681197810267832728650722772752252497474713854413756762140256307351949187819586010247958111538931498164829527818577565164419302990135813741497457476437099938282968730797590407249693636296979803832321768092528256261626594778022211121616671237135901199912094848770693066821381634676903616853859503360544609480026392407062460418190585842573312006948112835766912569101956785549159226147752440083610685998616161651881469246327050451208235300137193396999466161729012059215215863853490046166591550780658109553942939258640573616830937996975094012966463120392057106857112964793105258685077154757665566139137447774500291534149582188550026879530465830446873210791125521909100771535646385866503404515079429742911762429392644896587167755343777598936804451952820880641746875891478165435754314844622484742060257973334589703499078886660590218932525791944771841490447274484925904453226113407386106624262574472051921257751162524511939378500842737752636302589518028233779627955661164050949870485364670263829544045977222809940231116192405572770696685668017926592337200564949144084475451960491044583952659424568163338965434855161444486364018906116960218247261498617591139937315334674093448157641699433907225419711329937161924786850866978940059536318707455029790707142583422139915035774005274732085423543517380410095891945441155504484505093076342601005720304383472497242458601561214837229764948016416232531377557247121048078569124166670334021795548645983901640224532791897138558837884811701403982384234910409361794961852079847450494962993378538457411346616604866231376551464393155120412564066258103747423223351394106874525947854443854012203125657595848218511692819923754882669348032077742869770185956970597667619888609909471854872499233881360147715794740387790185746718216829425620125735454222475652328924236959293608473283516570407107421357607230355195108056083694326353230010655775432653556118969205258527870217746248751090900721805290090675614365735676469356141371476296080027360389289445758835449216875600684264627272469225882796953977552416365677737606264123849850150130851759256879414550432949217507785678479995800589243086151595792140694270380459642074905240671340219108168537420074678850202446759709858390571455335908809176980329628492007497045244007284564749645641353452870264474017505999985767091010954759582456864028340267973431828601171207551585073490872725805328198842740334808386478810957735459541137347012490689690184454264147817850480391957327869575793928370850571283854362970651971081387905740763353603908948484893904187633177030709186410991798297739517425563546347508844272364028724062723886124409329536133280398632639291391113096433582554458939574798178158591140705777607633905226935361236504069924780305882776778817330157880517275944077512361065207343097051014599534490514712440835177816957987187833920598828156153785713854879883471516526491439035946694945384899059072319064588278879963373494451068956421526567278774206542899047146267988345347195967295345728872877873097714439769058462597390742542714530504419338914787440861493489986212189946894995195950848125007785692498629287433942496955322318347750379597579453115463544095407858221513113691700568857565147242930363700054093141177401192557239058825882177316533124896049352845120331834192679580847245111489189492407857310387215522599328845188170841391678625748583728273317055744783839976772945579142095846921047705301561951714131673664653202367977602700939075990851715012445093496722637389223773232919719662899689190878820433757404714610734615159075477782497987685992154323299778628539529555237006038613571255889353387480586409183884805379584830845191389142688235154208328994593589224770668460917025319111768705849264770502015266370733625410957262246965371848118469551712311297455349567893228309784541809728232606706415323891895452536350328362559006636426199730742881473066256995112525827058708859493826880596829644697781091808286480685118241226585884517533912689289622609172673867523187694336200225041808730430929080284161739315284250874801737178067064507331372313503601558400367900406420823500720178991246415138168088845990098512656405630498635043202406126009407543282449164428724109212335978321071198518765785017218906821041569315478047922720281098514350384557772682898905544993158799775350742320219242316412211302262508218632974815558792319073661764834640829701553128220121355815807054902670206935262913970742184196229227860114743934548830966988478410862218662245387724216130790672712295243807390685805870774328491939533806410686765545762000147040263461891750976235895859999445099853391350836805024912257224166852444598259598209109856893457683588411685784971946026362520187134710907546874941340025927824575596316604900793516813978777265705253357402529337186056828130882979891839610454442860892484216981328871867272463553051131919028708406670424479495720313278229617139979734060875962322782309449515497794951376745862963187796370205823339616118988686066740981286801696663012449806840025828426950761871550438047257832410552006098943302841736488824470217820188539423668156829932350576026111686539468966925665345023752776467515131847623667642318597066389379712404619061742210564223627790504788056901777050118291911475438617642441508435271239185233908139452784350431563036811663526101901658464033329870876987968662368952068524033264075350349539752951023519285115385558167975859035573962471153345066709127374424902404367939210037095830375311615887815743567788832107012374677397178074906880782463514499264314743167554132382827364762089833688143846420821672828454032397338350114269267151715500849340383265492215361925735551836694820532648867638579943485825752030971495159006319830119697772209654365935612493558977456130018972449477811752110643769529787635951541085608480270507896526901221618931535535505889787579643210223737045747471274969031395848789766579107407265357447393857433336110255820205684675041654078306545920649638709847520665421696302099211331872969074902101184049226428083859415682790331405074423842781567021120285336877390484368876878652691527382825956835051524573004941125741697745061259608710264864993826399217246397209175337503917824075767874548900012335414223380103972945596018200885641186384273844134654498743519955691044385963223421734956183489202018799219425028815562751437055642301988872671394026333810525723818274315857587988657139979256672601756287316631319122398466541346209896025288859155601955854601015433123676500332780030342581410074269457534653028268866007029371434217212043550577813564512022748477554534845620648223485442438970847038586320071821533138821641841382349875531505294423507809988902156348053126480043091939001964704957441239082035915250379313472138341715617110117780040301034000181931633522948478656601844477657796834996981003236398430398005225208818544108989250932928582166581338282929491538045505562944114472718465595150527046872469364150854503467969314847669229544937303689319578312927824491775850639671799030510816902444321562063064263481805391191201590721572850050181107321052266081597606008281380699401896985837581883868261611936484737174851030061492348578592928113236270089166037353113957846621626430477067464679679112500181291904810925428278130805918858930346367884891860177767732770254347179595688061592268092010802997679009027392120432275321375533081617340486813534433561452327498117861870609904932930125959173645840704916217150811192485321683547424508528451580557811020149154062145028064178846715079278703146519923672619218261711939031802404642584313424947823568739697936174050222026511991085339698962387747852786809342837321146541305645778300463539308944991924922110887738264700228422455234342300793774564825154725553816829465970522195404531069394449126825617682009985792216408510674192450403492250075938792768934162252932362456799558101592092687203138994385840647150847763821392485389776845327980300547596101737397445879240397612544278858222972797448461154963880502675032651288233202674273852738540893766273422181691597959058745797344109076536036633391852439734323969789553025549487432426342476924358375283183607208557892277022108182612233284295355873229546258345451612419582595366012423405576843255176545551769404561300071580966828985058228062817271256910239800063978713507244345537649905256825842455271295216618464778659943065494612998590889414323314738166652106796976523707405843694991200675216368659706572218964468744495235039258871498157868482493551894453310493610384604735431100496835606559980695920702703776255249478856281147553158364395298138980464916890979446251921878572674272561926848710581254966389223348884518382236011221840717146259634599563779882196968422951269780224704835781370218524431398779520020904887853397461589252037308695075215732423450334509494605804742362492361681241761670773446554362747492608725623525418434488517995756069910967999813800463561135733986506304631216448191229039457956816563733296008472826995689946197329144085940789754125304836928390382465100189517791403361356224772275123100893603847235192404695417315105767534694499292807510229130551856557258474611504501573709929186860884184342602666742862309535594304630575517707677500036658937197663008533551860443365033957424950207842231786845500586417140665117775863760728345857658148741570799951145343549650977055445369026814083805630763507724073833470298595322170556225725285795616248293910264894770428010959657563931750447247184591761831048229209176515868178862627752485375594101076943144072437719147422658614137409974973928246013651804764701893812272247704532509183580726492004288093725175734056363561598272130484308424715704442679536510498509570155718731464328380317534362664507149936497373707429554218015409125297637006508729258126249994517888455366933286269275391827283588974289476257814297136545158239849739132121811634557874186714043505893154455248593598354809596238371914564821760826553142142133449327980199527445864715160435219695730059576665128462533734559458482189153909967499331261063390390191170200292606486944151057814117255916200553412670240766161376550180652222667650815303098767930701252860220572678104465986766263754963843449299933536396061390096688015057286877984206828034344586865345774462120042363416406278272597389771209779374309061137397439604477388563533673521914600246114923968529335217826260963275269037733402712840894218468196349877453030957114550587937454285587278558758178208600929184918020398094167482726707025900732913418199819374065484772696607605186496942276523253603346553528942078020947223148755119901466715940390509664573282176389223097110737322761667109889294489017416865235904939416868021755595854530679345814274048748340299970988967245573722507266021007079616069578849625715804988507366095891817931181360747151088274900016487815679791001609282866070253501551726450277717368415420898363392480717793261011369778807215605728636979082666218100423007335838140469024971854665754063588221911623958052821988458200990752093777214831543581058281685216083655056409559854009211805648309356456300332791595339532887736571450173854449977885287540869401051022165760582046377784804203699901093923640267095739868959884152885248114892873568924017016705002830229363214257536626234592535788172317871811988011828071961187172944477176459863962493321855190485270907161717982419127592072598471149585139203035565131340086908128789929167926946504157245021384014258382866199510771814432254494028641881471707766259027039698267533160180437691914306059878536966062003277578534992618658166519208446171458619069154042134870282010621344875411806087685066151797904284464856970223902992480962633315634278949724765034580510782662431167567253945048023133097761342171506577621954392235814158672280086636683115634614497312464078474909947348038105395440479250667820308542572568765835309019082018071078374573358966374886974565272063272037911995478622038299799204482203030349632378552615348260507013700197988250780626853663199140087515890976626812378121451031074576214747503114891203727019939541774482809504446395292031905729207738181014214000880371571095289576967366955009373494543532587098936830783603819410868134949803026350254303665168403402577639761673643316932352950229937911245119748733175737689136402236189223704094519616867631894548711626637962710884109228648336410730565586663095244854745875768823706795731345240238261214552391287149021774481988692615665111394112929491593430191154482017921061043209645101135919944743691505365080904033417342203429482766598224596602640834428562924239830131566167371954548803624399212186501500517056826682158395527687078823634328954514285832712725137935578479389535672815400089216643179635199107558888388599443642461191801657254509675721206634684912056335934225044243506784289710049268201616563995180685151325941278612327196351678557831453258799857656278325435637043455381484577861836694749664143746695646474248118255169528405048770966934642197661118552933045875081854645391054570022137747369199186191665925933057933717459716863341731369013800826239088094937732934467036483064850894789393296629152856905295583041108324347784181616231354443881873114629818503484850182143073032586355593548070670483252548245629687676114975709840941896339917812926587394485057685197379026927050465474297795760022312706146773737069526860476618272310389260722294035406319386614755435572245564611053289340434329245914561672287426286038186492702307435875818266844684392726564065938553155902525279646763060400982545167654425743476422857127456721150244247250712476195370343248264287468630195537671890907392871482523753846913225189150113555041013994745711274202819711381670282272942805191883366657799669378909043047155434813770117545766520262506985189368868165683422039168477405277333692084832525456363464088023647166517671115735179073183560752806399691903442138184919501910713965823692130158901217664533618843363712415743701386482255868886677835897246053105035112234567200303719279700760586422412088160012903831629662673012496870898382647862501492502587867383692204009585981184326623526416372975264768250060250172349496622787110520563810543649999195549465050757309289999742277971862562700274864430806902351998509940811383552868316755232522872590724647761340904907284123896124684455946144053316124091736128305057141379158327612549519182281531444471271674542764615130644310124260520275615827815277959744926339202702310625131487142217809169584179838963582748751688306231223999385733743958826857503319219473542138760181276274349860039017684554234404932779513969988545320165757589816981211748116378466069646484793592829557273419883658442475419271442640734941249994561764336430188571704567826052367957842472879827041579576826140861186989963995842730983070657252404134709371910815736428887508535102464843190114821583803437136035358369687286910169817199124795510240301578077318460171422909740325356809055658280710563504036050653906837374516087793112348955930219925247078151162191709054759190613987254082749843446880980863189073752608203888860256090721208862014780321750571594904315453600551932597201827723663113907686503165282865781384990455107658652594351574404889268604361602776656202371099954848434949354722484246071918159369267321932479254972249354710198969833081760822434422370930248748086806306236222037824865245921358924022151736193844399491259967525810499677395312678538491408274962245635106299564895882973179940923125900655853353181174555367005948741475964129728563228910083414524220112779395182261704475197214380691636866247322919984925509148131108740206087767036133394784626513479996413794549337936925145090888997366264691572388373458218512629194167282781041290044036692614481212675181453123081076501406993610799632823003121358675803030784549639254837911158443406111633997538873524486651069162024847413616044315450817077391622276945393277515889105018647456997932728290296140871781127325166665901364917735557311996192625115009124382116615998551543594018693346212487833434409387732405151716276700240777813997739349961926775760358225460154486570864818269044413169615861235919510475510491469949859105231949022599055515797487647353082339646106266295602507189558094033376190105084365837351109318634329681518258430195132538196890593374258703161641807512627844419317472417651834053678840712987502149782598075296742581136417352158130523407620750495307674801518286209046276592308274408024341966618481314752582350011256962452932070974118438674427755202427095658932963968837002643913950761761964958757033094601692346434301893296194912318929205387115103319288784863053769529136663088253143875021251793041827043137313438871499756825955309089794990976753673893121232421229282136238394843653369913955361440006957183975190700151326656276125200481994991158703823593078746567480009376738798421694715467093670708331733033670210332095252657568889603346049639264738472547303094080900480321339699918566846125270602773048004315466223598367547109555196689495666563591458854916307163114148785655048347444497082760886860224134223904752490700476484946681167194366720618472919907440225035513168977811220119229631320533227714903303663750917099140425328554960686002099405459812551051730409986692649772980716204003219587290786606487761291691550559651145821777983402333517225294062434511544363905758435976362090562033418014517740684849068483840049181956723196237771574812609006230615782641117175041047000732006795471257622804369185089864566880975520117246474003412662815694368947006671707570163956206145288779680770314179015315941450661056862124247844153852287746502821722768400103354007131045082294852470133259159915955502050231278993470888955267803304549814894284683234357975949899101790948440305900339578354628753120622705110557898688523371558685866696808490748374760150642794288305854015105696454346856102468816082225064090341346801624803530774797353080552756964928245054271375712345992871198419241879397987198107494607808086895554639404329382599124616893364827393582379423685074383040877829610822039218503329139242122795151571980299853860241663278792869183878144062595107267654012225165101817137513563861881528083872241183164857889577553270012301003862134738411658522219155057508709944048810180941180531391674847143377298779191120095523543446819866685290359439524248309593703211968666271782268678428395439111378132555204524382751451965223129559040824229636342795170468955750629247389233980272666855653056930188903076422674664706589273223755563767400348117551393210953761688104473890983030197792083556755705266153684030645427269785023388107473091904591717314361655473651558967030884843312694491839407916348626542376141997860221159293634526961211949196630116777317829313149722795513318522210857476374268906122891454440197518735715034673407919754810447292795987055397951731679161831454188442118936153048650146500377911170782946783838383950046438270453740395313161221039953289558240109224440410828278405279696091185167368967682918195836730849803493941870819675423729717285610927971461195494232035614768502983022227279611759834645177245754454857187179109553762287358146611035587994332298436745367665762652768327063582527977811243827926548926928786832059113661068823832203465298377838564248983580051729953176078581123502439827355729600137192619650156815561002966003868777163399251083085767023286969508824620973426698254813556852061757840255885550849840913539515980895651687251624724214802780132108818645776007905455601342093535531631417151977925993700888910062644491298701656306883052446490650232295446240023218923897840065220534547462739980132076131563548810630940735896956482622449634825953155178802896635672875068725746609924009417618496797671913593217613554742469703799723358492360799141024320458990849561585573487761080600610716487791465788045286340848645458199557694511779668794546715405457944447780782338052146595678537735196511549933644168467414961251336900423729103814901973142328746800432130109743297252775354390487124675037254992594741262915901132305458186106970774862369960485126189169233327108694000711765343902450268364473968691232204886249054865402847481022552454316658996693710194496160926038202879606391734218001138335849461800202621088911805754499675752894621347947365109428631814742208364296750488313526547055516082215595362836311510308459876925941030661145707889741398521941201515784339780428332088846947240184462337650188344196801377737810359214324156798841522157044732907099430138177135449359917693948907087655580287860549054557382943685170623977687394035884700068580015160663985275630818907827698288056315018210254434678356332972840774663114860888804586359994622990812449576079393144129674413879941946769736259905016254820894606042031327303818444570516870632396312857936047018749658176867285360602708300454433955512976789366300179369975295005075318659446872732304633107644538994716290129695165359962606637184557177344272465832422352927917596088533181839421953315795210372246030514902239911586471843670737004016303439668097932281088439099966361281534106368452688798045467513908907191881999770210400926944301248350272102171151737062406073789201832432534726611398010472488581758019604864312895987962710629814913081398269142296970712009859314222613039329525800289965197919458491500227220140023742167432335119110825785457976351912114120447790573981351790248985864770074179352412072689933597916271765373325882608980362989662815410705202828386415001896238763465520475076838881276916470161605381134147786439583782413480164960087096438438452945776831093215820457238465825045403068129897738796171113321798330679654853462132364493008834199456766813960134955442449897924844286969216112589685428375871099429447609315638606976681769878467029719644186955481657642229747971014756907443183098033082001763891070101990016770625392230744393352273932659575664903530616515786229741260881961388932786134363964460974243258307887629330287965508469726512658706887449551478245143875888705431891594652993173722213072503529786913105966669999932674884935499213575927351132718237925501425615368986297220499857865928334002834311698782124151976800377724477842758227583872306719931422492734392688154623644842937350993148686617473925799994445524081853523606287878602800452987826917349277785373685399038571529873641472737991164703877472568063970179499184423252995254172143265705725551230627764813036805639927697702279084196723026825764299954520735793448517987681184035688200696846025345127818054735499521401915982259358643314676789341189022322947605193138324823497310539261824456636930214771395016389196628255019521622489000318654015181957685488678874766104631477225171654477561452247767881976401078325403467457694735281412267413881100578401911931419836022093728780468440808013713610112431643024358959455637599652914198432179842814257792545163103245562325711412743396833560797602320209870231163588758939651458322333051389577009687623323005749049677465309469374110833218968240883049872855143030140634682115644525713621568987855931025407639629805284712084331718860261966697837129617251262400145713682404871569159848551845819241333286956602245303331943509370685965645410939248885974773941797043798330915955109194515007214543701042927982789615319398256214629325836089341274393784311767918627419727742896200505669769306641485349021183257219025096685009633554316223483730937109762569041930621072094074001597688974534790656479143375464259172582896847371313988820097591791578482896021399810815677569467263990099080222144224448803172229656464920555142759632020353915028664674857688915307856733768765892203448295049342641737105070198054732803286419701780382110522087086068084097759670620568920189809344588414844440580875694296194317069199035777091903901056033900143773300222563952589512256541914220249997462153279321984059531752529062200695776201978716027898706637762616891106402909872851257967985938983726120961186821445384842557287334590982241782278737584376999464779448721176358124093051131992758040817349272089330904540059981955127757747111243676017397973430413899819714522159818082124428315804886295528840537448763374706433975463856821205977807079391702418360863926992135451543095490534644199943969269575878429885113241407303506981221443879256209734104725496223181119617897880369465603567928731056401047308108848464715278426087363272629028361774225485606275312434375316604327266247350407757592761721334577169578221746928744606501843353782878489999507580842620486162498322005732807412298526018002256760021214586250835693892911974424128040491573686963162948951357231697374362753690694424689160216083743019299577509483111835402633668616925197364823556416503665273881095756937335661057757170248893372524349528008536582490817866263400675447551948405948058478212690988136412331558899363296842856704991100767906210598974735877432549287894876853942048999509003067836751363552238773929182126085230664901070520788765960493877658384129526651688282100535513215706613761730309588014131051228225833332168097775864357682652163549980044320507108298024348601145249605266647188368707389216718137925719698941705232073037837256677481013862315621451150009646010772286090195352424596754825825369058624588353310896356504237156954856843149034479485662791354552243191567380581934406339931852073873110343197892879471479145252579809193366515070357826771325728894719275273064424382981518014061538705027861733245510681087044073248494888296933801952128857735085465827134819718236328041464812784637875038799969036471923722193519443606526554464356637074280927301678468854212053935037113118674789473436067344654816226688571509047217988693137254642766257917579416757461003155467380237225190101896193149076312459527932340592004788260137671631612391765395732433890929435581484331276097420986959481246839750309402626067669869884237624546446181162955253051361037360948529541051538616256589447677988962508598886580207367865521535818983698020772612945921299292201083851996245152586376102831611247858150427973697044979200075965660527472907525920843137932652765799363400996569104064595760672633658236600765308410058292740721827808322722403516402219440877653537018792431856295887224220840710062663193980967197981293880099407847303895756071401195967699362242125856749449436322831625944860595973324203927358475754179182671548821547877721741529437630309285513431347736939615066388255268184083493759693549077748663970755674462194844516726056535485601619457178804470949618523907622010633034538237859186599070406172916531153474472960124217254367589950956245612273151082619741047272706088763759357982878965424007774152728760215492957345136099122965670268222078929996235501916754131828774165133606087626574561364423834723662204770164972778562974356014194178156839644476427105839416653019096827745874721716629592909441934500790152193896764593095507956532935408682277084971249717746371830758979127967370812154387293850467483444235991647945830226681824920767882097542903844314756617224481170721769916946670229000207755976028656614487787398884342759403100956660581144890021208545660208905134333909466983536617072215386108082198191048038104042116048506563507019926693027698553352110012148815313646918702371222072176875736492576110406184499904661694019224865911690887111563438419570887081356612599055629969737666023229426339192445110736470450936092042917485993770424176415685961451663320721683117746703382640161222064989519367587405006854331291356375676624676147690738615178670120778824891974319002082466364155268093439730180683234692206391606934196798529007805101351975098784749559651692713057200865388868316978469915252507904906875632104585634743485696962783308634567324651302702194114001787437107879503788204913444457388992208886697654874917724867741057311210669025891649533179937696130554258319670195615220605055439504108689351712749137471212269615521381607487615105644217980038944112104759877735549231543327074659046300587851667597377094275205802227094927392433371253876858809956338573676630779840908601458943248593847910767158365473036946707804739800489401640435392248818328735046560708911149078447660192569899573673579788281081437649956779431686727763488271418471580754163807872636951479735179928469333646325521710644789587261990787247393625569967685832630250588979775107816115685115640743799206547214948168816707388699821552613109111126035959928676367646725441602566292499800420890363614053733403108119164594051486243633312098121681562421214141879362152479571803308689005528768431964372564001967496955712727640707980713058094549846970994382087411645132475149110757629458349595203647449723909127141079860667873959918055263372481298376615805311172792239082189019629949249349494577047693776834445933067070670628055972383236645270697363193594757216100436109951481530209012120453835294155842118991686625661322842736280573101864905158328465090490375475459593352216022122835336051420668758330893400740766059752373091962180150696500038543339337772709234780457192987090345448420865357826743695027070762862970049296774913151308047268479841551878738709884242685916582857384203159552031811138667686819117530202389312106351329458625190034842369371508474399647976645285030371525215851476253963088393358560189041090411329729020284617233402207139505228336297858329164526059461621297873501857368674128481208911668595316235958621539323893965297602620766647163671707281888319865482385084484478704138254748182301002879988600447845801282560968491506641414393561231085783974304090509471775311216510807076841054026199632758088259975931286606519583780656948392236444713604850942814318146098977907132242295384113845441045167681922359627367157059804957581476013784650119855136510250919630857354874977597388150276091934758356309239201274428165449326551383675590040596165246634013710810987626376684459859262067886015643835605110345812179541607106872444159252521342411167393693401107301467469020388877653252524350955809131084327270772035274281442098122489996305989002917360372765602836903035941688074956484649811721313954485885002273527882896043187858338629286475593655476154411325013520381222524963257716425173234763002389376544644616443547370210815258106410982907200068128520201950141232106326856349058799900722528635961283205229491861895736905986346086836216291379869996165323182390810704657255479927369365961903949681427350171989035211785258526017145925546651211249519726636965137533152677851799153877035518693795670814456465582106365481051480865313601704514557242489242900735645019090469253849006118897662573512366224112780535735832194702529811540714140796400198076459056263636900076743666973005913409727756089334130971760147051980419069451394901874963814359134237068833538116007317473165299856689593923112910492480372213612263736061518690924526796442661699305333379538598534283695379837920714094253056656224342365275586449772662449588806194972531906140590726702533171880515310952036489358508856074707630830076518140915010482410055058107502588801210587841466187631193221812068386374376902229583696111152596482572180049386254508933113551425302349489284284238451484039215006003799311491970361398700973496817103700775272262808803600038087322381812105923195892150752938741533729823475548204563275514464377731523474115304290207083357453022712301171509118337292276859729523804906142765359926708724517632035629941417325847627009242430010013661879814951556274771355058694013940230961938865549480728081409105684901660227781851383520528187026837977590693181577127954188228742661616043662688821490581400187690492071653688637547225753858963991447737238393129129574587173391931411020154160245951960112545993042392260644270876361291092530323744478261785519068412983239056445061240261455277134997662750587695705902044313113536012556711470078396024394718802263693189401684795221222822598190053323872082621616331963511702192539498330208890332931727077807291105452313057354085136170686034144708749695033553019692213395717248280355366636185888299285853408627800188139353133311509936605681092645926330402410187368749691454802220908382284075198568200364503300200118062046252745469379645597138645903380600062944121945458018397396630723179290396467416706965983088215601618524244616484025510140740994805934969129858698093334337485014551126804107268497231407868125977130288954141960216354818011031892297762569259710146848089340058289235322033069877042336435227443552666140438654768320378625991422328116071484612984916597293750630272834335688942065660184970913662837902733566801880810992668630690605611666889014875732806033170859608157623074326238436093622299209675951292754869725801467813876725508075700349728025966259267006857636566502707901182522180669821324132501967697166670888067609273593038308037284445114823140346477003355049885537174071292441227553147546330903281645345187970017263031483722460119669494810386752196396288045879707364404715350392369179888392208232420650454911644209798968665138318984646771559684037794334864625987258053501286092375823928726530655955364801801192678326229040766180963268798073180882812715358047739316239018683406308967510747645528889679877976528153015935007029036740072397607837232068027950084969189359546782914187208388152934159392822460936874231219274392015274775093734980694493734504756606615747170642858284226888436449453577812204467522762287690701770289205611771434252889777409081048972469920827261119503637307830426104521596775950972865702900714011957702825881897710125968440051763029203879619903966994065721104589873883251767173505407391964632044032772790264112066977099189794213144478325370660457380093824557618068120106887746880376817327369040110578638950289247842233015086581597634561160819335250064865504020208259285737370511343971578747073283215167140658352409285567481509235403637451476279544701078011451689182273966055471097076036095812238806062082889542265030660935944924780306064918836373709722892326444119451946459514526050127269919001880534467885174072353804986088777678053023700130952775609802444607277317227680450171398510233023682771292668434980327018323781358014600686577422765280134843195329257313611325894353949671460165009461766789630030980967708773974882140837597334890096853936876960848916122370317044623343363252135148871815983453043891392523199878388239966933226720945335634851763824359511289902793984007735560111208383137853596558518108443256657332102790579089517279105802418682967159560960408631236372404831102113938118053966397166075556189396677986480942522190000734751200188067126795207263021334859514639405219747945836515616598047454374407371211413736681519120727887192329588133304015153879221731392121329488145711845950670340503680395758130293718589326977802062911639152254287594814774962469872869973522090154728186124067081592452434231613629143726382335173948278699852896845410497377425254123269689587871800714196908204244317726761365266515603298783499308136286165262614419889578188442867626834477462925687870878924592044412955308138343901744771102156355899718632308932148176390182036293139246877493136022826526210299931438272379838298992107235561435947557948460363599694869992488036197048170008572560903959036366036245003316791847902556754680628559798720316031735598137103754767601378938411085196235252758857561438955218127471825308145537043213657355287086310016151711000462674946205040974554235033879376291360075003177033003055059575339322427032382037000600346429547814019541718894623297432304447705831042008118639438128230924252333758008996155077719288683923863694952649376844530060457791925167148290349414235301575540596313296271871868943653339948512975563129902960447453429041869582976661193590243922843043384817515262924858780428081661835631766401705785588192192497777312349502353593258224796537801505200101948282698871934262450673262831284263477686099171843168471148327108052394057704216967957313322235912775347106667133764999110265391663256855935291894452076689466808319236105251132548854880885626027644502112256620739883623413351099477655654278070722288197277497304943871710198753076543948922099072026423960981166360026572617168692658084798884736719306806034527332099736839319593945749294552761322212862906663484773131169920573278716004510978625142801355827296706216334455270160370308386031643856280075533503510995020284334729909970079739523857163133887447989673443731984957729175489506765960355023208936047896049176953744661854482645517098910536061940757083096023206131640633697249481590315104478167989309042556081427407048940495529032144896321612121412868898951091979561202473277783589406736192086930878365425486131010213071611458488780164638955806895122719530662792272819087708092516472819645635010084822545251507249768622208181731098304066905051966550764908981133630023953499291247469306332883843263397645397782882770162186979727504699612802958585290325972504085391720569795889483352485362871140967976620514666010672758766638465317737406950489429204480216180871081487466702537478359518684298906120969608789126730520539255585986702256478999883837235966699288123501944423888861632348796972136118451087072076693369175354801642221745044895736786547613624640598469669508568664791901839328849779626039307583275370187819894579150541397912293325077484320913781192048199564954352384670484441490191431177157114948707862580033534710999390121314105502517556541768543803030398197321092445008942649791191613398275120578963592403796642471355411193145591200604833897561461255141562500090014523789268876059121127365785128445643395351495610080591547733041726382461512817851097109980742227114809327545721325616176724602716164999386455148310040026865956779307548992906868763825846454638809686575648412005882965743195783602311921476554773523163402423441638751075082859001252776365115039161058950331041201493069357511545946772534307678780966958347928581935304677132732193679361666703647250326306620900583829894652438541461014427968576045948545362800093352930601274975109591253949232412215758407111359246185171403818671695348055813024844206402117634963653948914523180374194949661845492808856647267668875310781984195626781159444602050447315302147125671914933245892898794539993668991921137735966515400978538692810773278275968702545651875568313605866107415843437983912711884042059738067636311460367973159397289114528426623968990232916371333015318611443454214425609190114742944529285835847155933488961045311597667676782114690415531514312457148730630197908199165009001263969645432968762183966520266201559787202975122452525435894563485508512590228811257622394138713621751101132341517000963928092158178269655502522008386300398565834512296456149092697130264183845982651980241205377984719090326706084998507151298396836468484195798185887096351762307495883230533004150679230548619274326244482839760667609867029199286005758776743367236483672835663064084514330415435999286226487289935625121444748326524656681401006031096262384472188867579459554201842119900363012016231170207790298514624748888773781005602935035574452883436740930533092814527603010438612913781684654251851555143119016238142543201570400095768332963787174115027255924123323372919741147228228194923030088918075831158484573774799503165034039632853415988856928355956132471542738072326495767655451589713347693825024867713331966778562111608643779747892092962029629272594595750220220275545670200823911307588157529335638142942750071241057663708476277120577269020532861715984577753578442302388685126449104602827933616718420718401409691694339079875041738401443313270083494134062016549483159707242227249412660446358034982547047945153446491944335433697960548787627606563695016128218789277509460962461384381089020369184325169202005797222387130481776668163507089912887080377917080378861082530293875585598995615051549352568059778348875611705024836380201077720467679033830560217664433557037931108288879908092963508163827631500883451202632121058949629390784999437038611368862166448718811039423782998581155123085662167473264434729935420186554120457596780291481977396013303792236257649843289901189349267512686096111305715744471005379511720466391625683047033264465203528054235861838852835817605101157627331410826392010435210392913422773624779624782141722906621549640294548236545005409158279693009085511853205040579147182523941259048772155915696796724508137947315429732507735152266075183032724050551654038505573032082364450525320340979582989915635072646858015153497454347105154100856821787706508460969587543892641383725046067145343685113111201225746225605397164778481936399841672855394209803255902444933632444435936693277088027718861725632204395966391803265939408968605569459604329049403229724210594740534485912536716867645054411907612781471570001031905540411891474467316043626829293223468983885443947732660840656924161758837808224243320985836617415262148679476181134444066822514055448361813585711133957501908262387508267530891910276179129982849358977385539481429157793101525809485009447891663169954018646728106395466497735060694046255138347379025389736627188002934180934753657250245120763525709906890106188956122857170745127380758497298878344114362190087638877647327038050604442465876994617404680420712387890870616884928771366584402795686288091336081025835748042962832550455711414886137937244932391861045738804373471760384540109164514496729493492404709758113591381853928490576181976619486633678386035876540843800170425751557863195989584070471099772939127059248412490722677473455031628840730027145893382998561954093560435376809904570214217676498516254896310030997464862916155201796951316457830959588166441352299406394814489908741941404570083962104400470622322920151128220788636643472253904862272051755145794203491479636141143318806042449112522325977082895330116734341041489628392928196577965278632295092363076778976032916680698290750065447659556801885785660041319373850274592337798182773668362973772300818162388786442477503445604807966559124303735743647182205213064024997597866978430270831172776055750724839877248269973342989970818560946651773607280817191328193116548627724983999617083326438830425121931443482948884025711589980052132440835624825477169586409969043758395400964094856917521227911137906896899507518040669306904555310106351245033962141660096326363849908276093368244013485659824199450481858411892837525125755560072577024326118569279082690512952448259198094952472315634261994964935803464127295240590459025058490213024029869858338084056276298556540298161675147668643659131557506924195745523550587094310808043230038409570962281111299093440941751484444753763617057587594905646151341364050053280507734286776568606771544598439980371194220482704368180519132927612879735188994510389413722430603417439993892211069110957630649257732189003347805220480667418317004564258744051090888834521656172507978695567753421515401903911348106210706237324376160045535664665383194382682062978953321758651601454315133275881102275060442739537955038571748470305511022203653929525835513097531273504314111618162004889633510841372528414016153164103661881482188020079250251213016037562720775813305870015490098808699257956791105992489774486173914362959884105321574071843645151352293257859403669850466327351476317556792363268312271522962973615519429494474169779099976997665260049828009379187408434895750235309619778293422512616309594678213386826095531908795969265092757137752079367452023063695723316428177222259901464811055983410641532370616266755449241102488426412026259480507285259898090228533307430090890985820855896526844743625507571175212795004075283667448920810157275161613267358792051144421409156542343295015093721799781619153679090920607893864072201487015326664042890949765034751313827556728233502529284437964853944250347980693031294492236781400612964719265024171979132919529897377354940271022520871028409421959370718396617790556673477617029487986337236714586961746694588157867608659368144356558016160673479469886638053139239505155699521708601371968083162745048692816186287728273270264366833077067320523263349317962936097444385851926824655314188325434406842578034146967383175185225153584748745458622177261066083308766332823698793894383824033152975289629895842490683795626141356055798263952759131569667384799551797562420791196127253730342106469463596022069381818823322461483833629967809275025431929153852647048598169071080243343787596531685033865210285106770744966169141167359723321762848303082785445122619216962534601541752550425325139370539089497493114523330265295400424296080364904642776405966773670123080124904453439136837976771897691024442535134449394719266651207438947677539655776192287832463186192306297612325959527954582878685758238236799767772129192933014694529889041040263001551677426389441339042583686702686891770309860744480661675888295034000637601419028390422464472811444132100438261994910732585109384744229129683261767565479055457712533677349452481007440208144212565919966139107237423607115255879129922351203734762110679712569484744821007078215717444473929041056846747833424806830271946371027960217478054455433425474000204835030034152643941817057447234973427465731529097584097966625042390591217429702749917379605838355689821444427293420615586296766743711245004636869308000344378368504489500397460233591886045870180513871782867336253502592988672539952191434179763151238480939451159279594372462248668640276690264563639878998235649249212493794596161354809204198436729377732386361548033852837078682923861138493307283552861326164647182716112188727568206719861547326771306453929263498949778348485751489571962073104568185452333023325896714612218763809517404312462442023129002296166492471116094752728692680424204604074111115255612859311924834826062722959387227348496575722842132602886806813155660544653526923798826966660530404206199682655830594948435334681702845690747293033558650690637850219669359955585079714155892850254177126487186516478112535218419590457910114939987813120579054038129410610970904686683527290823773372199688842845794844916797258474859765534688130195696054786323864846171037368971729811700938482009201216286564636397822802836697764519679550321930443375817283732613462755947418769858472851217519937745027026300473209680019314270279232150228725121349769461059385228549161632338735866203297537425115592248775639969695455859388587989934991808320722014544188026386240763805737189566544576626684916560322267413947649601647036482741270900457715570839563536802567245528340833977248283637916457368625101685073354262758305832548343244185810722137583075430774782529859915430522391161928213364993096111298208609934980837548999471339235201662798232937457759169744665556811925856545038625586097421382397759972800219667286684833012984621901777765807996255020838548094431757976994733822609820440615647166992089061163572634597630721046396861123428579602604626560140174376028931952685482420806094799599944479611957514838504310236783902472491117440641219679471726954485009207327761967454150687241316153055312260191310479656225880467022328448677985097079415180293857180914019775427549798911114648730993208810783578994716634029997635919599561488047969691325582798496449818569477588526635956298349390771714341002513603740890744683980914716968044769757549635442046525352440100406862847346308217203210000745051306933281587006734155666367970149734934263909819365140734498146470401074866908153217215924333708736664143750693779903496675734870964118995918819621640405623159851620173567172414059576376072688983449908102181768497356333807839316351785752859415321874605787667452284206722440194151905148961590609657004853424996683939849266244496380827127470956195838831068706065500465122682167267306389687728680417903401849717844721390992315449610946074409189956559469214780398093877065922686266866167999758350777354904151081148483908836028221772381732481978954294550407440812264492979610977630169759872826926133442590526520388661793077472421891698549707054343626970412256367906051443607252434427100754484806207647080756840313366730837265854004627406829729955357400591036698165219769241900713105748498069057913199136929140453483225096517361565001397177503088644386463083062850270383073379043709008920337117516505113011712157501765930421298289971384168627924464491525421158729418035782113186641765600041477014905925841630261097982504621813598391174488843369347388269431248277392078477768948854653267420474895809346778155517967723562420233880016755476482737433085107784005738299826658245344863211255621159428973559884839249524088473313930406916490874969921865633284407708043947328234168878026939361953685200757536074809084505574785866136235733597637863954472441146928310875018340905571581026830552801932735888299515013706138978744212331134223080344506180613024961854078647821324645862040156907080926984279719781083505146937118109244748460195111532273791946348545460273445936330227287933339077407194261935084670163823993960364093818005115792100324013319872873547181272848176566633813551299021570839380649662744321158618993493292068484031065184976214517033063924470436735220634809382561695740415108571743170296854781598864952426372264371462048218197245609262854405279918778106986525103108600261719463499519641114411014917860981603352018732214232829335457296272523210496205397554761078108632197378147521883468360229592609855437180701801804813090985583420490187139852610762230706123389819605760617087438696453815453403356826247471623936413232905211896141666720808821260954498970491536551368109296817104382034076247829164862038770913456959357930169681925265159013041801146784345084887375898090608888753412891675079310284232668612095468903761481643078322896737285728304071178452762824241450263016359681988668506746885410760449862384156782079515269353642304712717596736680702152242445592286326949443668735324325166249027794605409406882543952464453370108074320195819675878704547820546999026257168091825665761228018977300584194674715112723378690051026582852511987933338721544846094176722580198634462526203632375831329288700841513781467911946545403521666318243226167804963496118427023472790691394903234248715501071914219995431476210812927382001400656343119757987471336400194907969961516419687928454525341202107820310910558052936711813032116075656460075318685971278276816785898917136077195311416571541217712691003404780533872555113831216874730841110295244927106104276410676571286287383023121834484560723908070024526615264824004058133191435016923135609260571541868606776780198194032308837010484601968649070142702148929283852182201927895901248136597145397408167318349591155903558642582065143932336730876774815962241226274642902023712252269943873837192112337144183986246455259721123822961726027752099352692774572401243229266134976013578737817185213458281965252477446543761376468192897407837640398543379317906525758023730108110673634516961613894767450286478417964890419407543181555102475118231192429161555940058815258024241055735040596187305680072689698467382833294581546484839675034077601085942154592120588663936946156348194529781626143519398644332501883808508742332508190206570853365387781555038682155944544214072494604429636597977085873984979226245680281791892551942239927666040680274795490327272698105862800635310799960489290573651407660585073411353082268133536475376172544445012945269553878427693360968572349536078165230499973350913115734999282065527864532087085420464281654830044505603588086389592072906859919767516060774721024032520010950410825392222698273834655308781808174859240396775766991933340980072940341885992981906100252173203553890433362614018588656678352720393951538918683170032640680360660470792178502925910131390919389948082714943060310054881779002093452605101064317543590483210170398700509464439036387782035655750496380610257722313827720944411991848426459871769342601195860324312182982267762580936183511092355033555646274530122720547719312872779103742430484816483604412082077845391964667972889752479127546362475908046177303742291727347693771377440854714462240935929734436795445427376908746810279412003638461672527193077365893611732926993938615078991369707568331824519622534401262169278794596140490007943535100702564362962007250283923030072566013117698930698430012037881198821381924804065764274799385289513385662011395913727594871598058933538012672864088055309030101163979664308199182903852297476851489604831977424377724601846005829676415868367639176160932636867016526783785475363799401102852296847335545546828702142225259116574707805249783938981005064983380326603728714356427902149961270208700748732231342708340018184332978945811320021888701273671807635385635102238383274416061920272684899088990312375712734774341862831040435953200020311596835676987116418562940972521260368309326954609628282491043655093033212510259816892121750036842709569066140950895092222283749595496727631832330972800245036178160482253482690616073685826486077961060839425046418958314281253964021025050224428157152808089511674850500502230909312337566357071981487078061267477046112959239890790767058404244842423925430061255819344435136108810914478516960112385993795609336623693098851893094804940584782757658403587143622515829783574685467229730763728469773819917443415865537061773047852767376145699257900364445650409296262353674428780548928497131973803959897912905539499475076558046926078949637553487340963566375628824079894040616569919599313612283644564866003370572831884493945268880733620372028797991307084578431999877536920746174054613055598634695504074471241995166621754071947438548971273604713974927871499522645891288533168057347934169465343590474005940803971565476661756425247613125414235468725729265425138939020057652251495097027447388271456674945387077402227707580297333348098456039576429457233082676178863589469866961141817476680705855722757968127571591242775308849676161122171196400611469355606890557710584385674863673588859288513260081308347999981536413756334771944656973040976300382875746525871505460380776083238231293660648968135270892837679605804058395702415414652997380156779247197874619693430965848583863314230776699972971022952759374561035303070142388521280852008261079879789954730874013881106025127423300906438425395766154390986262476358457658797949654677631570266863998247374662727055114066000234940028810044190731247929080340525007704437319645265806070980296658400123538748873475081514957560433349085142388779636899390706522989236818661037566563835394189291501972991923939742477987878864290572190246424163426602248243787642470991195518199436963848722713717043566693856089563451346596092586222613336048669359301512078446675246496979854604825087590174233463826587876766067795185998824180129990197804717985608348301078502588823713940054597619320790498048399965146711722015980863041798785685820394126182515147180216531992150387303013842000920423148527529699282114643905683708034589452052000750709640376725441833915102246806062173578432577827678485885967672489064848588539355640250705160864886161234434082373709921808150692679368461014352114063303754009691727078603930969475485847020588280647274118693712734137843438717202382118313613899115048453924262604047421148241899643397220377504437472592845718734900972207442776549579153436126447794178226256187058897808980997293529472799933882141511351485594256679438818768206757140653127935270517313087438032225519149092713825226138916272076529352301418582883974760532735221009128506678077482923876060621205583064224931637175270370661865726042872189625611422161646521088239949898115028803473759534633102456383820768635055190292991751687723167132514800633621207224437406514893468245051535026371626080285586832149548314441282762579815434512908318515085420429730482913963716813107828971366306071573691042329817954885775128544789130946908324934481627617873765677296985419933393043892714366686639913845701680144580199430497469872200084070919673582798643959128210448122440730887595825150967102049349490141304277954131652108225820533057205357321941511629145346275041585164327456551738034730632254111179550258029430196689379239546497418719634681663936563425994096211059834763941635356067808438949744757235946436512931598425673952396885980232958811471293860458052763850198537460268152820631866437485702090209844496058813200455963205961811118483158561118166468504232831585355087808440858098406789582501483206353983567314668817977091249084433299840596209716797068187462151570399089051614659136865906093000518538235976237141787539397778959517432132609911367905657926565059942501653941360485589381505000316662867081764693424786332191903895382305129627493017030964608533549421390342383901169145448142890223691207377459510836751823768629628474208528499032508523491391442671753409602541987752148098931402942060697326914456879095111615842138224713684789562009619908795621404107794836716511517947853140266876368828449902018120961006390666328838744556022888248194650876022050529833274191397510141379859797259430631092238892370783158711340730594376105836284391306545788500872799072015608253325970973022312513557942481438730773992384927831349882288949683431131625570180943289209293271749723394092593505527251919556016746967352403728831810407492329204058159777265365469404257227745014061926350552891094186501824246492407814730762564591660993449868301858898836645493460400564443731695094368846857325002784655071604052398278274510091808888979513791271138693064178783716230136848679986809398421489397748475078546874084357847428380857122885593082825990721302750722871237491138623030214249677628129925173289246107154674075078392079523278313905180046028169111046045769373802994376419880033163670783963766340377790123754398804848289240580608686217017060805764517380965647469845595031034357949566278042640902748308832456222744801401947539249002933316471239963332684299185396518243886507327049618421417334502683606749872982161652411714276525923577738424993625733044670779714681811651968511552181425703782328016036643950226313407457418042325939169753094714016488896299952622592776871061765928996666026476465577021443982600706535131015135160461012909389573966337240914746997704498057459143478596057281363575865424040793329143345542790135837164717564004952331332358324452808874359738552090483729905847955899772203987109637259293919871126095010583588542877335103808385999886242862284949215429388599718914111082925252495813994920549759501790421362088887966494600795960525547035594210720248334495831651654915327335707720166316664129876272718142135471033321290426815833393707751086034300216656091947775453787204717010925676758838840383376332929442546762677243012367138815998610535171531162133801630586401351546506550027358039774611344196086482605905991480012586677280340285003153874023846052799999194119095025376384004505465657852753787399780521566073883320594252839467698872444310063346799496255036545015846465654293102497474397931872025437476867775269616525320154472791195905765775709354594609962224567294141875330591807981382556024017124973463664524110388516755367108921204716195530730035198410954171407705844118936165448201083310347670185841379023694793556355816948569433657072937104868388738034353228691253983261124358916755740623582793491809620906665206678449211990854130709195468358604670391172753078208095022094210715214012516292077173107889362949097251590094697103097054555177336180744763108474849208206952054529418711957556304763587330246361585958165719059451037262541169807364481894406854544984854405368522586269442764038751021689679874448924714749542424137168089792034553191304062220911670636934344332511409774519944285372550646316581605977323355365087095750778631068571392620815286285524727696402126403480982844737021320136415302595971322282136824200987897271649344911439848366000065642185911487312653660400685018301133598078886145621906968748789197777679382640609097291888897896593819093585402549128842371331838815784667157966595769107697696024791654453729812709155076901547474083483021792412842672595843381246470197958920793839779841768017573115353157630376140286574574607004975638345730030035495817311789611036748658013893713741769021421672806232402529381949894472473875428792079306414861229958196099883090708300964491388405023225858477837600672401620929250248188812610798207950157802299460189796331723332199137493866742122528327597292464071664089083628112039790099646439325031209934978429183010278973413148265695467427794999493497125118640841934845758305267425264296505854323739465666451974216438872511984886323288440616928479034215792292787327367076061305479627002080612510196678850257252503918908710730577889454831702331249578709745257090075288492455320481531992933275558214695196379453106045875783706048483562093415631209289778222693266920648041507213483692212910426025615389766345096198171972731102210812860608411576740897834314161786534178785767272125247269778689846320664289361615555532987524605375671216943482001164565172746799836918346526092550468452451849392541963152973403182771089006444872402283529210518120199875945290335348446745699860373668237181767595290342284226996182954676125433869757709052322315094593071129104292142634335923116070400371139663082221782997946865932714021696700672162382713053009562504795016909907967972337673991972550171163320867235947037882813636990576801932414528142926533055135516550017811001187476731538554222738433130171784260860766206601461079638877372491000852806728452942895862205254118977044832752824104518693469556817630814467936701011914192821373455164291754751819626849196961795740976075755120141714449561260443898590690802134497520711495095246612670105202313880183175332398520112604062728742074346607175644938436047483179935909995840932543791953500722432024089914985632476834210132260374130599056250636819920913225029834884250786919473380096243429467848169902031392371358411100090805122182591303124308801946032250631901718281739237825493166694076609426780815288577993637878571502555909890210372993943946447731102172464604918505085386473843364996584676124362980744824204383936207687475828121799267836901557604512188125938032314739093226247225751210155516978999341089578552067533684213494267144449197946275115992525714461543870002831625193741933038135200860774085172923225348676763861643572827616024931462031620558040072607210987423774684731924492011029046493969977306838421627973501690691176227132447752422126152094556851818197116591702085093256053927104471714809950330449778574245761138419980430100465383470702141907565922731234122687980211313011656940914234444834681834333535551571763653912679009396823411658918450545418065800226423806402216793091739148124086884901006056961556442806985666209864692091610269292786696825333146136523764405571409034527810664256793794381014784262653470737967674504868881397780982527789111847933838945184134113177786092025567312862068628844949629695488791478078155657383709597631851826613068301081881965938386229324996045473286985534498513766477514269899861481580754302871892998763408857475056007860965516357860081266607591598114766688056690773055419459607179286401433298272482107763157704117435159481650192526831368452894954450924047859332868624505202773782392451671659863449286999639045504883714945309853067354525678844210640154546511797454401061039788915451272776437197582190586122507108123766442032640453415890498974929747905574876710502959645090506515860331129279422509816173761889556580826237177760987088242496903225833454708602544936971230200580786866182115084502225244898291281306996159607281349573084704180075150445773225941401074495872826856459744704537139335877112532624711546398704806005902817675587358167566727472028001041827726383977992490239225670957371180019641543093176990151047783144647355872286546322022949221072358990065697886757550875672537615601596683302285994354563033568668736771540709441968518218720901631722496752468066161903151351443640700538009641762843241466025301352324783427518672608889593478291857305938627410307405417861629452170982431188150932382886310943728486373390225133027652361438846295734052674973074784217530579537409834444950183673869725268772688891486975713805275178862861820357137171136233971729757299584704077150354631704357998493912840814624910548587126417971159786251652862214247515714774356305392425967156067682292969028785068293251522261585553861787934583697278178255530249307560174951675026554771238544453629430067781343959745953181925686342247123980597658882645071312404018775863849367570628351938431083450613726838851806826751311373547147607514281081883869231217197499531146121956517397840226615387089045856693575074447836998041493139406698881720763993146521513580916705314617804945541056913866929109402570221560874787235256640346451451790453864147773223918917792002154221614077424693204245840745058317379982173918369681994626722149224235091136135234955940653615958483276632597072784426589387940503760444813948598238838994538862095181274491065739233924588733536817743643300723206232240635654973950375728426227544909618310947293332243942746768576365988664633744387633661250752786539185507656485512194756702900120753062486835026742075817173078048871777088978498343355408492056954564089535910656304826116768084761411166290097245082741791225558234671600797813323244386461875328731480873195585983799311883284160734286273519997384920527435334420388341596260749809339065664850764092899067116446131834552398252608925482638518301903945860409809134111183174159062414133806369123064241017636576930336008645323945349266772009867119015583305229788201242019756054496016048246800687548420135968928598580302253390537988740333329392697871495496587363197524965577401290946279511622943375342254669081136022279275526337014211672069991433312734039312513489439226142069293377990862662467824519694482276310403490951253395553317239496450846560021346019510742434488448446580136470356234278948285917288496070190316271800694291478552654869851237555973004998977150285815713582314762000801854193970367006012617022411423074458580491997126678411737081507318585679480160087821296416934670643792778687290741894005310212467721230736819550049479139506203931801574713605518250238508499428841700199697839962347858666218435554301745364152692831943006325041338622605429821529931643002115961015956545240091937503160080807056607289778801844322791893156204734881545389617161946693157749207745351343496045918895574818674246061418477872407205442328808174357835557772872827859435253662353014069705311180206733217779345564023352187617454374201197003223466334292681882726612965110684929881653466942386666612362722025588338780821614764550210704762922488296563391532076740390391142524821259818255256213007091355096998282765406492012708561351934918531073342705305150723732584527874680744872492466881731244980842713419432980405601729431737080176615061485272640603635973861038603508750484087033727868880007080126401817105512945691464294151604394894406998331917568210862504490922281293397634180914173635859722654116014471424904430834260632823468804890890564035509187904698531396074900339174838304290162236883848973837149652222470394146368897719371978899249389148121684964100463274232692915543358714595981663079768036830165086559599676588576353832394930928107166404529781419033166521291175660858347350102572682103438320665153335978144799105331907886930631402794770452090058814428796364783545318628187381750006249820452588643332536225623850044543369198928518319042484656163274959469051742914672314571424641096900959441867077973976832105839777953536170522253738728173718855518470185111240991129519410041554386001873328516339460467227633053280888709232291335415339434160689187680626609435988541870980425410322413709048567055116944101305577037127498797066022579476477373872130950570107975240372119761289214162538846074428277742074758896236673760411519976755292957190476538008124772600987542897703545249338219293104289960566489929860585137264525971194586288116140199665355335370170295871587480746816339237689376581953850228567173635781221207595607477263985498668309891247131414158815018281673445293124179482032653063628424574040955769261009030229297720470656190972795933628233770468578195377980581037810192296669330355165051123783490230615168732197821709876367614454563999248711910204033666316758032612544419880359547778262253679873323095008303324118161194728752105357488686523952252266797289113103995991622025733610174775001878108617901267905924892115574638228558048019298447560018378101075056878235067919534567846636231626352861032951289360268203528244496355102190093804563152653131443994419354496015691003824730404402360827145832253836425064000655023277071156503452531026234923190640543623887443032372770833841425957772619556186590931805859528178437359264664457017821885529834955142196595600642369644378096279992222587932901575026441881937334925377661885077080044681590531124897147044930188022403141924133345722753220179551592609766201980531420644368122901560089769366662043908223863138847098710154267786016977934085132060313512073633602834017489139282337201538859725071179626530444663709019183401105218486050067549167300225071674923631646065801979112094445158371018736336862653283448625287076101513976530302266927290511623667093740896164440918510733832161122251823087243755164501198533560824941100581258688405825013005226297997794604460749329099576712612563626811164252177687834210746989519710911058355368458575325631427268175418969669981130791889789511971970137912850874627953181139085036758558631697907918089082611361301745422052803779490401269735064751405409783387971111995608461885650527127481350413614848746376071655609312203902296345340545000510044933113712050076583751179609431486830376741016811147469536218656809333104124903311195839061219078130879402761967168854166166598189577262183809329732869114727909476217396308031604409094566954105626624135092922061138548613256406828588132235140815313575806317930504876382261787673000695562489404934491765401857983481065001871463500351056678906552674889638905005846396138543463062578320065459157340930810778635664196561781057876797435205615972510535115908503089700097432480693272576666605197822538845722225004172077228032722030386892492137966392660631447837189721610498095405226476557376272504486509688564241584671530617901310075096217778748170260179234762124875090926802118025181070960590815047006232015844511095097745362350922240006155438973496918905463361710350148339468763574429212520824993067504036986262800058507007622135472559123160307049522463391439098840444257283652028481806164770329508814333093065451094098399825596734656191105724650962677472717357296134043549676538311752045227465791653606382635292760279849923214149750845670782421834527495369287065417105175475830451838707297443937773681955902882543455328050061905643893405309042436758289779325655911626733952047342205367633576551975517799331437118630066592880582944759022006661189530980733621224090359306200748453755830045249597397326206085087051049635562522977857715257982356755098158200967697320583351008144074920318414453025158009015635461770602035353184278000571799454966181191159892625484967344951747493174683034310369755081665377084950717875385515737098077656105330817364868586862631848632584722387525762252859144089901497311126912752981507201533833214425308356153804985000670153582915784222626756243606032549163365065840930828955330520881433833911040219860514210918087694378241839729510014923054302475148173726994212852904741940259621931244973683347103655487395795903589172268607807203485014995332826725355221706154978903642158896090866605434867235233197442921857916735584800962968144387524964595097760108307251769599053786144736507132257854537106170871047748925538087856359175598204300381258567643586023897076035373267641125363287495314311215901932192857020591035439891581102799725421338545120800927827103175786986451226735945272086469766174038832416235616193145683507414938824908926110968985527973102456439041755153535569184043398211784322512113513222228364396108522483008464682224095618046239987359295784010170277916537958004296425853225348156797263035975635826929134120746707819245812348046274498953904876957798585625058874876436185647209623868550491674609290842904046226768468118230625643040296724446783538822790117660180457785825807884843187891873531687778623638014843410554999332103674975619903949095175386394957028867266873168893566412581596056367354666940948159159092990230471229613127635581332322434112846546386594584785206908630989212837518292594328156910059641743132681999899314096210918342431730949010716264347119429610134967718488165263817228064223157932894824349178480436346869050021953707427383114178962884640694980242344047105957440780122020312030771177135026943487770953368276519234371512932323792648651541859826141446497551389364970384448045396635005500119219276359323310718652536122354133620912418022539523960510729856760591508467525505064774882243118186750305234829603524191821349204792169008059231411971634658272142398439639046391556448012818986036298808001209871261296276660306074900321885291078320872543569595557831332269987068234971361288254293521076626894241336227087882118429156997663247372499530234698268927237869429127782554608306197363695291744835321984261106973425524445061372668146313279788245716696510846671659293396379888056569555678550014869661973697847030554283375585458778475542697937222637699290694112133925280920656382473979232302091804627623632894864609048528116593356097774300673335758894548336602169271455651615320850279757165738891541337210035777702288655927319367313877280065962306999478352020385484046345909203529590637425014989401095043327294864456765139822572976491612297372428985020510058645605143810109703203940349023341461652179574863363895300963882574461605124503815300665425329911793843250000965825221291407586387886355053139956988270085205793547371270386082306676801843200127848992805513260929195483297621857568596670957375023769902102123526241264486082992346546611305066222546562457614871930110674298799271508446362311410889363512190774986268799418213813444620059558287917680357221527645726532695862912946374275117508237364523538364990548707034249348995180254964962815657764186848678738004029408778860753831367778776984009173675398891721257931903164030725346843680396491600919343693041666231040633565936065201877476598641524525333011057026911006952334013466604218918499834859270894737349508305261554731844471348430472227292376267307858714523982111981278426980590416719000959078633159403055689516553068771349439226530066365534721367973548609581730028080614276607340206107848243615003349892253870486762611714564062422098560654137926058409102230364850797158621903802524524347381480713622420354325759747725436965003444974922572597761878332672839488938899518459952884271876068345426119516939381201881164615980599572547006474953741719949871037452396080469193111240401123417974260860379877209151928644927325516906360318279048016944487870836732160901712591205823954280735165981921184304406681989533857562293081696886126175624223995825376225667057357756871936518084043500238607926798882943035625034602435953895475070378824302030441643441097214852248315300173958403528240096213474704485033118839235360413784426375186679309585265655776979781915308017149272428575893017287423708919120501897498955766524969471717208909088356366909903426372024556324080216388356852691734741115242685136639951649755535995782122920392789224113427258584847957606826514204452888390441775910477963883972969296490302699414610147342072947638172838482116318646171565682324092608103716363464669698085262619977419064305668363453243534143509062720062688342500308590272999412546311066712465750824425415137902207355648885034435082204142477041621587388949551133108701452913547614712757884074336068650266736496148326638500801196718260356202043851437370899824727079247763397245993458204876284451061118230966906160045664104942809786715910502026731838917100800508476969005840072935160613814888202856753732383313548832530568336899773591182577256073096207133200840533184516844337476619358365114037605151575946205485426324380926306394509038816638218026108237029191729445597194745150824631961176204207809311575020827785851889063737482841248715642986206978622052497593851570781142679634896089955903782745140421699457269075115084107476621000467507655397973281932673650488568756116770383962944456144747775315727170941134970096219142708685107834991997041494289668266042235060208193378303638191771026364410728626357023457235765717846587858525795367936067005315167551795045795835678412805446224878057523363091703780377174896801681939910359042962633206370744592354355109479687346241278191553584665964645609132384417622352787189309257357284885926500663273458519853288257522582155341034870066909377668812837300198871149349535772405749275622695476419707203738694810044789054770293220552332573830189769420705761925893105872516354058468571890199982726056023965325141926620655978841709324967356114796188199689253050371281835446105057522608637404305438948170555980341667359548447466694068637008439024637707772072239860955210160349709136220656305406664196003287607258555315106606210931082755668759972344155078501630732810189094334737053082894602674288343862438428029454260763635811753699174480705145154478774765643362277414024517038963532302017657404182590835715386647376738189179493645665789392217183193597360580002308247451853288097951139509849233048790540798579798027068154084800519215338721920536285945378891951763236477731699715539046455519299383814271515794277156607451041338588340609007159180672018779447132723061244947530227632324924043370526713800091109733355409931858368558579602616889078535240737889736066966735821609260267862380053242663960909575904877189915456837029503916680881675487515899213056290383300602538486241543254834958094355692618182232890605247192764402006253903433722100072353842096500775679584643846923882168264416024451071405504603683121940515101239693710485751246713915637870923102901961671593645176398305275158512821843344363157600197105780059447163713601555560596309850334484897988555495164320985311574727901177944270645438161965593396599812022191052470590316844807824584003107211508361481689783834084290171834565743149431551239853434773998066198307834811446551154051931923708353105134044915408196555362178562710903063841495309889508672441115761665210907183353151075313208471924300989936728531944239558292963480138145807310287444176581630374848162125040206492293209037197354523173616635685973887592983887991569978094106282962428745926209306403735065986988606349618901312619436242525524431737462397700385632700707991111906996354599510696752711222149674403116120120371099283886045072682098792496535410239727607792540852637806812894486010360311367139784544838649972110317010524931538873001092075283639882170660875671059660043313199935698786708275665032448106180400773930735037567433614752974795528668009820512250865368473086793551039958503851903398150329506708591889773081662876092614143247352282290341085548815467321036714752569726930660033246693597340060591616314415666301937754332649082432540083586248112304670265990764528446878145669056791052758413815133569286611866944783145590683598496771112251546381082839457713346247084442432947723546228012130923478252075796241205584242769817564342097365553922546428296232165532829395387007622741325711430625083494116746936645194992915739531676043086823196941435624712924772812542670282505342775347766814926808716737196776293484756778431911341773297239549416151228766700926375055118976791754351983471438204605201062319917451095421133500984529402678667736661742534612201348032604204528217486429526519356620263252313851959250231781335890886113981525262562477829494616319394125880801701194128053569252932849001113236250036713199619868464877580149853603013983211700784788849134951542735259209595217811270677351332767703721275019550579360725627316434671828200313520620069478714923825969632105891519283959261904578492679641900755923511235208846631657352973680352895790545785823565791214603653855821004746793106464217126549777005538128913072123563554663183436916752155003137666475936428909103247652825907051103069824209259086658662041440968843704774888853216962674055011709018398345262665564480581668662902450378048013859959878962654529406693510346903054302954797741465927124433672334669157432069994425053251061007849815805848118233676794291482722275738091124626730014424069878638805260056731865491855480134189935518951411450850781419754933800810987124340225041708575180817697036172631701168686717290593729046474989300642562706656328107064420644474231887938195554320763343099910211593679350185203173712215653371326158332144998552674925432945673313774565041752715698088028123750474945989897781702255598264540093673534973516952923007512725307556735487107706142318349574626168591881325653477907911710361213879577714018162231115260354428149794208198163361092312118871989355784392795957562738643708101110908157927783135844096194057405821302820133746333386354211828055573181588306223861253793951852063220634724562664765251715014643708020829654872888666358391350846489965724620928840314092473820799061425112261051909229943761581386925848908446831701616050807486326508940758529723366456948705213813883116668669391772223245273656655595773883632717332067144637950279675863405936332747255054435187842827943691257244042527233483233444082158765666398358300572448985183371551491708764494149026092118658538238422603703596403111981419609289433102438179267297721497709731657606594270288707556461080200875336658695593389272322547957695765790509361421734817731449964597177534466126790334011795703292103163267209257105994344340018526290268566416714960447211442691010972549675989726644096794929094694953654503676272969506511862072405368060066386464169313382060854654781192388230477969229440901137448383898511556541352330654340043940709022683672968219548933252856527309170433391638442896693706712310658565477518491108370939416691572899950649373527068409019740612456596531001602071543262519419875529622685772155823726183809667856684725966445059143120150028272574169160397048003986919143906806734465470054211949027136476025302278841968935535751704168826614551143975928736362906733050372608650924089538638720245226007862211171827322664546941985778818550817960243850777951597927310722572934343461737749657531601071592519298774669995421209901473023767904810073825954274030694107172090452649209835523278748009860504521242164242409036907025670308121450951839396721923221558161010502453230592115477780997436467054775967922618973959160004725860366956840809299662945825139498739124680731522680765988942313746265630365254341238118794721601031815456990627858908850273145834825148357722949290911808805933269111562584090352475428161742184428409968464342980636896348687478268015121677997789126632096344819911745903803203039862504326872587143539914148561941608670005274307618861375914575983611040828927147201498729113061959940076682110382983224164844190031948119272568538906202616139463975777382854518831730079137688960103030258887100329418269907914769841432099302199513097527179250142009092922622722296738208426767845762404195461462434933403292323880910824530313701253922313595317634144329078356862486552776453599816289156074623894630748555333332534927284325840795363243130715765315168512135286220794122307730704246278017695857479372596121431784145054279033135206237074619304422048479436160382305921843641835771667794803856539408929472140623804464360989101075439816920064003576833600477649629885515895491642234112688944216514786711513258537179900602095623818597532171990444959778970871318998055438991281778157667002970042622812851842959958625230266775332507562476497971862977281674681479204746850231262078992643881519645538039317348852331379070265904824387119488262111760289883862457658721572277730176700164998607717383915464309555384954786972031624102381606335283551730934083558936852351602173048621275688846829673676678479091246395812227566189533362814219540687173752119303055019951827620682912996192926991346524001653594231073001620479111209838789858855111493540387282734409089834723395846191725762617915087863847908633681585978875811881504300481145143295067074996206120965711445715281165142318693910060426437156258851515618162531173985482840519728188855007043897755665448859647037860374130034307520629701761378544561058159649372858502829682812314856500394589464017588470849347112602586832742298001809419142057764436246010149613286156841035555388103502832126441453697618019254169791039071349246226773004389047996316840869570766171306266826747569288409911809076085229583505146594118653756653196640692798858527451464485165308956407043632472129803540328453307755287099145544998375265941890644218763418432678333792765292315725971719394728849055942227301444171836140724279417802243928614227449262228203757761575820062747594615601618136592676725773919491072857227552874175202354162123687728998788995767502300264974247770624296134642407085978458235061163450862438986596241450816894486711773956312802759739604791035352396510808430522159908396110385601157559466950927889296373749532437956817683435016506682235481103540347820067899251605048173953002628131186970970697691538241395279154121548612999452946660052152839163726643919770870989981827210804231237291725549814194500612291134253842519980858375557573264556488827234418609083921852277416694003232351332152696784961328724348767163400140845194335076093693879449691813331880764255196182793729157416075763646084143969610357365406495069950083414526736052839638781044559901186504148146556612825013908375095953002631293422136762110944824575951068954020070991689278991080425068613233684573978287869790048034138093536262280504103476536322434010376075356500628307528832082213340415325068455322049914127524586366638456944213255105571647540869162304505435247498507702442301254607993982301183702013057509915788302621380434032733481200256219476801022201101594407413590787250132570646019264950907681683751032984111605156068636554263736005060455567213868020178947383987989807819536913691399532558818305283008423356954400341511504290900720462561246925388959980576331195607680116184916824793834596369697644653685903740007022657706323319267464015829139250929787782354870837827341593663661222483712307707482079848259850719972930805601991542855388201887947620130397905571248006280943798174331967112152251394652910020505599145777237613872695617746119257708370939361421923513562658595018828533028578803068639351624358852295425886740245173688429850556711815830302224107606912951996174877431714575834458972456646815291973795703123181313392580738190336181387806980704908480857358980702927564084159152999290595538889707525355776542725663196852202728791688838941244620013047018000120983535871528829326355685586702232376957610571952647286610770362273761867109721140082751853377249827073979443328600892329219903466680209106010440105327380013803008282764681130913289392410167639020969201467143609185557190390610007266747857621992953504408602416479837191055876040491829874020864844985903272462177670861966459216125031616160985704955008892551674269124962414434383690558441151100167171326303263752418995117822629751482170191806102352473969272130634470792191719879566855765049112008267982868735694240283995432438025728472142834779909241893034543043050196094839316720859734524573170103201336598359646603971910170431964621426858569938957370557566619073504298854154065603171493631348921810274987644945124519769503596218393808519682866104781722825733792945289177216591125632919845012663154968876556123138458041949257768550298158060075355228993274776965543864143713576986923400817797763365907293717960877807840360972637222202786366334076466403940094620706073090982904728040696509956497198773170559299658249568062368293872881132210826407675538259208172125733156382666297374139894948746297680781933726632813908261156315744986269618460471985826090953729425781752121731536707071063066850792143823527195705621456832158172288583546075019292380260481728474193077746657497988817009493219586668098628448901809918027954376451475209390996495239532733202830454145846475966490653989533383622804370060561910357062201306183706006246938303316430606702424870764123504183808072444287785547195930375023245074271910100725897274833979259278292049440272051040080299840383972322148595707709608568346345483660628479503969438803162823856512795877022172888874622854842627105222166608431265021144285995678120684456199764615106907131291861868275165691230922807618604915297653424310104935534958447501565853602780691974345738905893752995936096769878538773996520159511464888194362199940475343484253838981854977628311610530784764022461113486918111243200637305025422948780065908747104937041275261618679569919965857472030931693341474776617278443023302503706446145466956173208532312084763065149023906420800322708980033187937796972535367000444396199778647374237411441500752247002607282282907208970539563882145738603802124983114859172052882189088714783286617944950854380867023462576246272739770775988874784300469984171157935835366976174639439723195141699668895265299971164484425671565483983810657813163648428245006773398569987100512248312358080230144756790891892434653251708941073891963821594676094471925017944210552376291463984262513615150236993263207170703992108072058932186709831355915669710071962038413097047378990374874953048385525535790127572979762182640070958812463223971861026728002874795467139698261737687601452628736150241128476081108642829695624155664161431148030212146504730982220431355950878753393016675177496202198253409103623393035576920434040303118791007712341834333464207640167514680945182477082742054433004716077224057757781543706033627546700169932432897468303199985705899627921740715043000429708628059627720325202582342604603156090905325644362689061774332200503496684264065757879204442283974849746433633494381443501019505338452634805866328273766588669618237892518620692826887254134556420931651016006625393231962037408533278207452805890450528994226637087983591171726116274919130721415724180130585534527227543087174372179816173863987005236894297812680378056984083914824406586221193373548227218099222280623577133123798200278047518056912192577094759189061048078800010689703792291551614119301356393059837691127750872040692453222859857933738324025803558472480836140402846330061345868392140049433981652553888741032813398201486708100303433004032362159961599203730951749749536176245341404372712122654150961615838389216369719805986680830146719510417108363709919414925029279722068854338946423989206917541418849524235266772334917105107795371194993367852490493424430363042368686792253639574180870408054618066026183694560747248855384650363467567811662646283877816091336208887830825425065971628174931178954832126112213887020326898716971526817556936955424883583195079629561185224510493427338710348681249529072285700751173005670725182707875276959480647445959297930695152649346103402904391827855427456846622454117732467897584879786750854007292802286290526950488996565779756436282152832006168829943806142747250296884069474867972954930282165008208482498210691008774377561497231523871612262392050411004965368846833254985601009614531021038818157176139118740891515612816799679491212133432214285743905531340345577809943716651028148011351625352891152308005023647037201522841793236619461505284644814115797861129617545392006787496179702648382782541289991857824206031505711102708660955331701040910896037741529409431716004137633672054957180272095901309169916538804847148477723453359047874660808694015449858787775516781011942227736628712931361430367362983437798547652053303194442778096138825862276976926559067200571556948204733423077972842814714707606675518812992202344861610669334067490687433078194122978399848864660350189554027864531422045434435184091876744775464298061855895636410126803142491052552041047541372762772620911071581183753662318834189316160104816267356874751183463651445535585339540603063302203237017812382213447636890371424744227882274237078971607605577022634504225712501788271993502552708418759572592749579788994587730327222016616152629208611936073237540143682697247300057766493164200659960461974939143127971093979957394339948930380800620811642678564232359943475921832911635950671378574375679168362192794437118168026334494296738397663109669034359339974124389380115120311920591583229081975649717708906098138463220938904513517255293329459209483146656855882179238936085196920863135544439235475579689385194214644355235478919653909811097266293076275227466844423225204725674322134591569845214708312283205909328283653138750348648258932455132963658369912515530929167256768867383020044899500416092704476010785322083647270369097003790065360382273550619899062041323571326587666522163340392930783253706658298823201824477291155812556460730219949971625071938851465493431268834473501588477874002550853254889579351001473897583078623325862316545076278827392883213396756911583933115043689693381260247910270250683651181983994428672196425168444518980292183444133260118835549622113269338744724263802169627831417177246149988768006092299301739892425458033795252219720973274306936847133693036728263661440980868840492756912913483068380157501212867336734372310951765563538215940207111508901679684825967441938435113076509463414419655851382439936043101519754463995794153911156586465793915743523495481364178425011830686266285840768580095224034824099355486410377721876566062248569719233744388809188310877040214083799261540641414585142128742657081752237887064893158989377159525586856150067272055007015824617024897129170277076134121738119611226442000679532385840644577849031594427367317251720885061554172720925332026715182344216276930440170659604860728166270052945766552991764548255336408033615508522947049880184190147438564168591807965658554479512856538928163248478418167091714796979990564679675717859477415402437775944398424078407189095862609698096580806810045416521167065365233313637593618535430704572483519518859821308002830390511232101926775270012156952050941719743852632509657092459151199013469864814014072117707244688529042707593193600553695541784244964424021399624743195842714161492015711408180697163261339704398788944611495946011587054138396478271464751893024147876110019966106518414921480479512995974382439331089655010529962517608920785420052294405173582055329404752691255860507073979738865588496959682190852967148379321839855565907108672205254642493469771783596987374548130053881735908064136124787607639236916483491976099149837917989974652348021883043341429925633948044150738702696612533678983703132469331892117189089502194809933311802202007228039588783030972922732240937531744937938641900548473185276550656591264602627483862746947726973077593990357826344906828053394088476405050817070825373309757844079628434513549961682930683127421352682898763987380985134905597574118513849723509382937860790035010161200683301435918672066996943601358587985870583799319410458799143135174192846617043769700152808339599719921494520311480379632568337211259610941708024433942226568388775797763868756829328394725421071373513493648287117122549162712739364336451032709389155394109035941973729492510823135292259097983018043535827289320462857581884499339166368116920377911762815252816768101838345833732384999286587354784618669257173540074895908917577516421303406726660174148805254898382100414065809860548335640013526420214066933005045402077072248145705096487172304011694390174249517597445738486675592391209469187697232235874713395395527117164944386573555248567098921205870599174768506852834853491062928218129122888835316728515685858255573432154416956170623238851456065788138329734935492067906736400651481066128893316379115233622398811445594471216063211933885149001805600304197510411893048624211437400426793736463490833986729395394960333644677100438313907624196310988848808472705669705860212200189770383961169751886229497064866394700163896691719077311128994228494604779241402435754390472358229508391566994344869010312108943526572679546759056231632690907642225079109996889995600056543569133035757423293625211338677825557181441912008102684331875654182157010444631086876002853429720092198683390206382250837020356838515918815453509361770412623058226361381331952581204349300730325788261704788834594388264862779149287525238256305889144937655065298226582466245992089857876726352305073546162512452489675819333871555065020700378210970305503913645887358256553165324514610722184856051422664003775587998367917359954490604187652636414479843409309791861178048707146424400180421461996149854794124988797192306197421511203568414592830937454431693707704743722478793229472476071376213215330034241681026609210932074332378703949567581130510360866688196474683520518021066860818882209287465648015476652182099089869970186958437519636462799067469784523744159498023241340355359734515330432895608136914673297740545941514343973572924938854384783237280044755112590946342287903405851909115259191176005572590372779716707333065606768956078041170875367598411858627202196945950060357902578959989366584518535421830214861891326075242095000586279781761067252470844699659346378300475046469358168764331656813772166339130682892254995988565006042491882100101563008301901651583621692507575705945029686451012671279168201220158937678845648212536290343208481082900171977677749176425816149707298461096297649809210646497435489889631179464516367524121914354939603118577685235494288017358226008965656106442648353071987927779003476080293243015553726980306533302337488897875566392850594685014725132164958578043143084964457775733381442575245712109222479684202161074826936597457221398776600965080514469437327158110872728884232596941120192350695797935784759493515399749691775423758308077229155932204506904779224257041897265516070440613849248436683176438900350162236689047662943234699540550763115589059301321190725313052955301478948597654597193254167170838203836593417635042168719752611117139140691106532712708816173876308953890289364151844938831450208675364500453291855867576618667196677979663745220989026668088135736099046325599938368911639214966638627751074581006714234261250374689714736551221230067086920339691592194279098633876316051530955476172944764424830665442093070543701019265096460941195879580852319015492566218538112059387066816543500798459716563785548372544301056305223206155305954587694677362285560346884037941136090214628613357811298182386623967004320105959387650344269312516698638251778539757307105841413612339293785856035541494342797844497470308773374117727248414406255566609755692022532763901668237495002565364844978480424070340431856603924848643061930592159600757840214878244439879085690563327432349424205746099323787358767789908211728925614660158765400714483817879149395288296946173144820415085220778914863246288820957316300663382756042545038499690069684881830550476946427592635217017958323712883034626840044288681536750843102085247969370673384206567506266999271775902986485568799836051604796848879739377646007485260617158500098608202981759914091924341375389858058398828993059910392140447808031141027122224103455280946745964597032510811695313291331225155102378637399913079186493604694001207676774973714480077597448811252342130107918938302792328826223879317675409780103959362352450609836570041920342550387997041058046207017584256898961216135826596897820513136563982692829881011504595508752581562341365081041009028648452803207030578318189179550368978839095653680980722644449273237539305356193489062015978984258878123803529055085669158897824887149672592274883326816972108464919412762464365798873388408742013522525090438392667547395927496747683681401598061293025490451653752520485657734726920522962194399530179872860877158852531222733628863232295440188455401109481642294534390927097596283030813854132874707729446194482585244014252274713675597725798472053616084828777290813430357081756292571248983075204933161838749494087779186463147929040942136001448236165546390463882236040071022781278418277381491089223684336166090468936024089156060437441806703688161792409802228529451143258453558467629686364426676655054608519738210294975210552220366818118995421139132111544579575597940251947276372288970693447922362579272950525960438640599502371751889579779525042510417437857028403663210189394519486722086863071105089524982884615288768092171397348672026972211961290990299542283190253912734357467456974697349798625392711676840415330659015569854162392746433412231816567658176570311046401678601238515037283716940051172258091478639272908477461910996552408047943369680348003673738778597135748863182010404666108657037400278197316756652374102683038688571035086565909712419204707437291970324942159720803513556761350068995210359344045843844669020623085242866421115396660907168808923074913394970745534026009382632680380187429303159895661381370646415268228042996964135083426102744890703877391922190894130777776445877022446456616655848243467159089087951765718721807744082741264147682046047847069115637673862697610905413117505465858069806303795652990792158763523413446656953880583438888408035599362276825847738704280366470043237715297111353641082993472381129074471107929884625351206854438808893520239671784505755242802059718033270962337281311613297372353058992114517411788475801269144929857251383277247174403458881841768620652222392206021851687792531894837849403059734448194422655026578555412416806126923767719219430064328411875878383689780229961702379085000231950432946444725693465543473551853600242699069096844996158678593086262339847953565939549493136261545916325166547490868950444433278233103985201141220347094589542650902617401629095036879691852389850086061489833881940531072924959859892702453561350477011810107722998960245882195287346932178582144323742984943732445318547470559451034511739345684282288932033986451915355648142983180069992509149763594197842230117082830124837219409404595967562653975223145972194179036563606465475616084558726469232274777719754357061996519357520108744497123246586050490642845076738695074859732918035990031915212913905773663085394384070789228475279617942719027427815369322404560932735478470102097142564949280778614444908498198419990716511445668299449582234183571086664940121802232049213409526375260481402300086015633730335427101568667444949437439610048203818313064239553374160367140815397243670578324661609766457989878075908832416190242725166915191566273814239881004456035206066461823721423455991060598625809966830731839733928288511438563998012067435445003389788760840773415704911379197568682633874057529789366134301753421865178260160469546327885224437310616069057464552606651025920564487471907577722259575854922430075753989115138661111292592672633544063487672229611475979851194280725973685184155357834191489600793721514014981486127606034163476208004547082150466478823324366529270933320815966800382333987204208425965351809081782853479338517315455992133520274130673303547637996815259770348943639588323559294957174132575439580478355804817057680411451707607855371712915475532978295835436433586533065461594221220175076480501461913307532957102881242402988708548219663477080113250421572839491491271416074867213247643865403151283466254022360433153063034453923283794723978206957487156717000690079918688739005717304283306900800611010834742911286205225156772431823572951160512986164143580992956010804475549054817867738273788968461105167373821103507842620269248729862664844279154772330920403437875157841325564772859581496758924066184683482199854021697461892846683956478017547565568607183813939176824513078621423433354229240261184690257442500483754171612545838542770454118285064727803346316176759863720959000410836127574916630870382185337542440673459593824645749814533365204783213050932626557161997293660200496191222015679600811611494289946712126309501429655473696039052409100841983255394188300050048566239964686328576574547368286242073993063878696243440088797483651414817087092031076470381702804298604666270611306538946949905704374370251299245562100115685538368850991696730963629286173725473717103139298878308381973640156997173590450014241514105394132118135007905872508901387278330646485292641276023648227776117446512287243390526736196783399576870951362091472280642425465085959799315652357950092739271098206594413182581060566950895818390387674375255117324225365013514715549805191066360333327254471267701796742919275905770284525487407790870538350293091507334397258352431688328940558052280004535040352074257897390857406651921923445072733022050551863212315375930020248881528591648043162682882297778811744767737258634523587805376061083642406781444643677565327754539804407984593077541757905643365892802238682100869518796995791386858973402483068802585295027623830703455070427914221980935984046570290760150241420400655344046655485977891158552237063206937025282564015300097024688611957838160272359928441812025995632973978002511724526286747211540499466173412772168278836391860727545337955031520431752735581309425569876890389179039971100063765926024855599281321771020713868824482511785042526474405982176378102340342274498063089768958301601987868624651170741184563141047255832909098829344511412302545517846884908507201124247458703743759777303721937039218799335812772208197648718584443377949697878500125892559604765905811848681031722027367658008904436812115163684353621640736476104162649308589541518834010063337256236655369880052760481067846498288317323656196424179826374711088446535386773585360718999596055683463890248647527378655809120327927403887753497759282039047677325710971946961695744460444571357250143886511776956355828414431134980004304695508282098765910976721759901288794360264761233694272782548893383004402124273876264462803848539536944476589391872302567779170882669093079760765202968843869536137415106033663522901973810027448419627622575574515363975668102038062606839916914112265733038241450102703039777271769068665108374023177455359453173388277913927298790185603425091872393557732213930903249304396219289670533770451765142073264108988404505117708967540280565199494654578139680657430664436801659399161642753553425030611891843042127378826570419905323508433487826274278302378861241200669269565626794793402980546726607514974222402434878069404603304550824352490085917165647985840398615519226630227137553831323185504437341862349787322329752675449059492753370717289268524872750766969345025253215100472089043117751023985656727931557791108479258426425601124612095163087520950780468028067896259685646730684130474461713198779355772836850596915786952955199163675734511197554346714945590412430124817334436253044589517461001010385041210195621492394531242874872562005681637315990364891999016434625224388548639498760036698126616630237834786801863910194490530781365848305623819029275686000113260060254953974188208994788124988678198670496763036813546491836192544278353933255948409162105574888292717474036208623710543009431293459907376798977690409776088465633972077712729673279078270177888109960209814764246573550516078802739542564857057760043437982089322029665993603610765998226425782351814481504185993197383816248510239720105907977307493422534793116829281646296436773350764177923549166862334161303874269209981950851741892645555272066376215297644269796311269601272995260015335238014526850668625891869367315223022259300615758001779545543734252436384320639802734685658245695236891002756759192525188954715006424918327962271742789432619479139754212206091544649285015371230612224260957926246617566237161670406063283364907063796100887704881936415059742812917890370468519691431594046160991929346935880616546546228111872962974281203604930447658735556090533742951880864337068329556660334516138484281031009778649990397950988628249726139149604576348522799999752834468977571233793276403510387461589764198820328534274045269828035175586550697938786666667422150812273988898802528604021936706781912683041662429520131129644315516920460476160371276791726894614301239921502447379524219354201858621760849525348506503792467323247543440983120141671931472687097810259039898884599127622078316044636570277539079263406637516933473653347966253803867627608160347137055395077878023155656568699121158401840617755324346217260729971368256375213139920951081444368116663255642086306494466401406114502239758271479971409318182367417932208346315670395452773417186985676759668507433937734444458665632921155050838167657375178741474472595641716582691700769197832771279357039979967934694276907608056638200577983851033865145709188831705797996872114484080409351498943192090754540721022766150937008307428364316021761405973070867601410737600381402624268153182924129700489904572888168099676046193126487515900747227265690581413230571909708401106719522615913666803703177151732699177724374790943329082135522720562219591231800979981811400883163834947677216000338820363633934618420837603599835854029363569043952079269203523076161558852578318541456844218818949304459741358834857005321941659344587223296482021733319756675005340741965344486094147283545847081177854901328854970561295773686798071950968766373192625754648091263150322176904680937526067690079897660514648644668767388558276590572856199019354755074315340505444670822335339857378315619126683053340720631010510377478835969143468034069797250857743183692692943444411025777627245177486477511849381447930933781138496366354042262199950026590584388067831787040777330076084293692843177516831068873369394616792581175092513905029143196028058691281929845374121042928780723298510108033661110828325108513696573359650703388262938214896153446645116457967246310568168596029568066892004261952559071034608805317492018448657299080194335522331137412290371987753885816830775850288393301396273874182927659752285329856712596426297955864102903106465036156154173341288500671358995095667254585584771682690398613859888127237243405381602784290026889966011237866394594734037329780178238261619027652903514875654931834453859698362651929229140663416243679266567644611422938237177908359897050556152243481072925988239211523025468886173405709702841995288648879207675263556567848138713762166619876338468535503818694859444829421815715614412490631631274330953891189081769375882672484815991652965148236752006519656491824525363390777911488313639328401361616131301914549308189325838847827193131593038060412327854851961777676554993948546375662890189338993589598996794316505557259295726935665147268256289581242812566143600408209057413323502210811732216052464246666514229817109845023064205739647632606055049611326561759048417943445482483465277357861942324330618152510150881028962787182683794821822193192288961994912914812576326339736952562636117169976871871330453886273745282494990419779232383428979263661690809383991912319174743509676289454469994644320704069793168280175523029064361061074818927952200331140151723024645928362028581133576661971436560355159683729639732218686242250292703815556265118825880368616482674562729214832046117700365281978445294393347952376981040295171253149210926358079044056156775072077013106701230794795380605958254502190586781274802208082937510687399844049011609443035528607047228375470922044715628483739900485019886399102722269748394416996960244591579744466215621632520395448205817039274254570913980277154914623297050239876556078039854709978075886943753969066961724670366920145433042457568682636059886316981903962703566496563355908811821098758514808381381240385644794640731773094506058918820223350434011610787843192853266425585438374992817363805256020747965702103978733023436189924012743454904343988745515438280950673973427004022051810329198793747003991275491495532921046519546071580634201277978107542420200363859971228489603095261252731967605847871695546741462688004388716803139616310264353725737321849043817828709565608051248268989213013417393740519128448049765207016195798829175327465465764215240386620931336261627685250604734179199022234662295572263271115325746319336360185640431086575348270146484206506650181737322796239920547170502472073968159177465302459587539926651063067545330877717749134727142972705553069552035406598691830249235648699861349944916757774198984170325277583775821638343576844128713780020005710517248477547958265571647721197205928651931781056070905633533304834560300412956111243039054336250508715900896620967284383803826006877834401916566188520225630562279437258272678282820412303928974271472057535859040024618751352039132773248281980472396507521066392150614063768135609340918680217490685399989769768816460033973987202037186142616234248035430724578330597680250851372901129768136226043837503609417985578714737132572535713275227232877185201836716354373511587426970942778142454378606579688514727856541446515749188958438350985656705251275851778729781053876887956483994015289417012966593395596945288415908764590221647943494841270879265350299335646741035931411560377827466977502171778381645826515028687099293535796317546259221402644280805961158580624779226356288601984938702309123989526775800189891558232347326085293285748407762191854226545547294618526709956802367145265593813259821782376824470299803879953319702028144603719729398538924823550191408776306741577198066814948714683103425821173262709186650296044975999657609025718467657293946742616503298275564429867921706496026807873239729489203190619345332999385605014908553478321270458082390935123165176956831032400768043679747905374882106202430869059792323281218039921435847838264995294749170077708031803020831897332337015219028178564371946616380816677648647718605895428550975407708043251333588756497936759425967214571330764435638858331741793235051378032072012997901991420019116985939816858206640541150125392880539043547080944304845053421129586021938063790058493709689041307768285111834007908617463671590706906250277012573571058283742362783414028173152231312880097125145037912026788117143504202211192125086153114406195684963957240594147373178132394880044307561347816349525971618690244670624949559006333883570720677372145127063754472511125378981156201250433388883111470924781356254237919875264750626653766461587480250361020687823217581253555512424361904788555304855107714329800217954033225475727374153414893385645648079667658449306537400242490157198398433021364216598317644146355841433304084774516589809683716454288935388803749253251519481317403925289231027278883432451020594298036982995208080356730626044264930620520913252802318557981163182581778654352608719494909273653176473515177796110278338621270020366296798556757104530868567579231159776326388503618388593082568963491219159871292777362542144699878514564712825308936491490207012279066817709953247222658786465869723623786690812868829335508608622947766334792709280347984298135041651800866988146382760000787046798534532373344464462019895913325626516201017902004449104190904937942499950292463177348106929482659777996069630456648827115770255808683253880544737116621022971530233401539011725514596136345270068594156755560948044859880127053534955699732041118359401767287390676059763630693016228632534481421438272857343561633416770377945949005479457715934332800208215794472932722361155471916447574094287312760862010316442321799037493428943393755916280851941049245590365116658492279095199966196479586412516907322734891247240327072165136000437499857103312412814233795032998018443297291085394948776171799300506113466091332856637314915574919117995029561563575496317483995140699006031694410679118359735661860203951064175629315519082074294181713874382873957974575546981386215403124282619469677553995356500078507013439124514770868032404784235033797466728007467534564442171172279305876267968961471532617463159411359516738633314623738386483397309130737493156147603933391448765916662004997448436913292363306385450383069896056983061010911562337167971311352142242261230042330297159282855682061078123701922672615950806598905664855629701540288073584822003558446954099176706630021831805040720228571524218344309496770503984055720149338699638162448798173544159662607182915206743505874999395732326873338325964558423432100643232113612376611681740304257308276352738477207647349259113844481676705813488870594741693780480978188952561625732246900295032188060739114977393614295722608330821313404024289873985415650131676452596617906368550514302427573822857668945195894845114358793218383860486884822114321613472800476214285040021345296456619847152730399206736556592707289121179479811356459975429818435183849402513400587228050463981751063829685204264068640600701492807357895074994878776984296504649355651473229423866088868959025043024709281964771392207076801530561018155250957906435256631569450677468982036435857482028800183583634193976711008653787843578785987925389609349354086869280907570926254817349374609477839266018261912807085149019850781677307113598944635610158980019442580593462247249937861394248367619180091776244062825149630625520624042879911962524268222147973141910735127490170728847592303613943120737648635753733839085188540454378166654491356367824403014637000872558519037943463839677331430668380079322268856828938303954112063770343350125165713370010027588625835695446776991709205212151049221304715638903868294301121698046735166416566766312657651757341642338796896628501701499502381901236354920611142466920718468174944740408643168424464099935129078202084289801712410642549161386172209264916892277317892608438551360447608943972340198455245287944272216297543930013668566132503038567701028067398165922926176914273951531287860843192152225258125686615716564586832940433611954504958215204116933483194501566567492011113944929635663194687692104621811594453241812663588761850400630483038657776741449815465064091530654448104047444199876080764529473989305919091429217806217540091456648342229280493274131037395316489156207776468009533467369714104279625254178773175085331517385853682212465747375097332546306340473196736755159858204967278319382753660880812940484078174026669330482837189439450500257745445237394399253897671976900297694996132609136776371848345673257239157876896330272314391614019865426790151075963348743822346166920214441246651941739543891787529914025026936785779418406083616066260385360245460436884427760842499336960395829900043167234498165957053990408761010021460753680612323132000627365881449771410888306208999388648054550974050417561985278939459618980483636990134354100492606915430602440945829093688820009850258890885846579951121153274229100284724992518475141271891344889806617753816634856231054459003355875095567118781664901888305527548257096065336054088838130006582989429198055486940507377158981031856514012851509083535850777213973314246486845422012720594710339522967506466452240775047621204180334436456562901335393517584391228299947264502166514473082521246305957568931374471343017845039584853905832392869329849765000635360122374779006887587932172377485452468017438055065038353294858365648482417138224425596501075209049020235520524795812424537452981892205952042232039440921741794309111161818964060007721026978561373135522058997918878028669830588185906068588068858912873426509495547971886351717120655995711305363413121384752584961485020394418925118192035032084698054220056024597331546712066561532047438977802286107484219926307089544075776718485799443256291487121865167733848099525125434140159081328495567103963591954982201399815565132829657444069712197080960966640755348120521864594778895520962092119944336090508649053503674569968195117911627532222295130245869830793748596840763423321524860047471089417279170957609905746919230469792365301786393036438413323547322500174013198684221317264638707615135389733888059443603407833376326702242361177095429042974742655478635993466987039930761839572463823757815310328212404313056904716883775769668533384810009889733326382772206390315293284327966032507733609654797368433332360842071429949398066274057492358439618178694791271849060168879296911548399426653267388018221157685275430561643414224778151658007084751178685957680646164459244235121502371869509609737277064530823230538770836208680942834288201752849780167043799345400851376827569679907855173051012725218808783430952319773895386744721414298669482078124219321675198400837033694009619388010590854581642375342617258909007238135762424718620140962660985665484239332719631337301065221419330238238615415810956733357945439471246061785810474937446394564807619554672521133553678888508394000600276531670347409639796841940710417202784705793666683168333869608107098910638956645623414876167283997922614000339184027031518355786384186503356453103029812039023976470572930425815966495039509875179172001931469474849355725396316668901835169475724188777919248555589021826683604799844253095169201301764672273077583109423325527851747386441205165658220247833476238353777546981520795333841244278459386553774909662969025868485903950807503856146604793472625025751945274571716568710328249378270438823408710673658996286410222076888697226598365169730746952160940967064066437125101604654718654864087025992780929519400808445805094021825717773040951755102929441170132935526108926095980280555038279502170953313228253876955703805197586179009902112247273447067624534089390117513269389596388211550054986648535366428401663729480448185715119834570300622875797376746467380929755488852209959323776472362512880084181442346837436102902521054602307251339528748896214181968907600841207562368078880654117124870615360643124727430276444548071116856432827882286297074849321564378082640370854977077799322386563481281801689508349602617548062741564295220737893175690849890435785111206953698873090462174863086026732086224679885174953665414741578036234554088765855819467845928880527909874649248198727791302672941839171333073304875039800115473412380704090924331784642224846287283287734652674824833723194421726396823844620988893065840393837473820452314313387953835304494767511280467806901126481957743558828277217235944937079602188636649985048795642891405284032409814965345613499333903446153714043849890908802786445785822238850830721508987141967175537326030873376928319460806938000124576850992161460312516380272883018461265418272803533952951582660696784620062745257494986134180314107644768623527203245790418808029578045334798423295235721611361624929110363923233156771160700152052471235339511416621248083767403444574651543397691213959599963350059932739871997210801149574169918299209797319949422490043662812124219734251395486611312520251732359195090240594514627497495789934226623743119318445905775367958612592401293207499578387369526775471554044377725486591449961448949257219741371918831695507587131553894356068923783387015621221933765266274456864744128923286191570216420412438698581327333859987595193098522764064047142487085236532644395832633712186709015888762076727267297375822826982271835700452389677275960374379176560052055057180756884976003776771976871078450130224480178878482415995670670784818549652738957153301441959998522907901835675224909047397686548551489835335160003175728410857680706981498771230489903354112647285669299668347685221772614574095325730182950278834471538935762748775423124932207193085768458974879359535438851136574418904566976538342714800411400004844096455443166147965933275369560885132668295697290129907029125381809768841550165330230039957288914489145075065620726095110859396406297284912967446955325829590863899443584025721838671778928671175222661593652677250983105927804309462844500219628890297067533021804424889544305464548414227408424444172206195832624501318761712442678450957235004849172071541145439678403704978421870668072363741615391738018496997770134522827487593889169826878474650020529391583244390025369929924635685172544640623812518188811876499995084320451173232968496714994225727507255469288609966440840179246501502397204090668477724842359275165356310312960636607225430174544248487382801500120140806034205890502581644272419957015026594180065643582514147547376632937476489250522038862903144077354585344585414172707379479944640872576975001037169204523247407150907024717454817422289132338557371424531261458063964962805044150528545676807769767097027279928616021910558977444198075650432329254216631522375672818466613124252319926511787346618837584353347980122104088128515424623025591375664319484824544261458654200077942926198902322403401218269951405465523110941235159399826650845358276662559402183042494419638720411733600405729482938984269561849904946736224374066095113137535271928580522965659547192054684602748608923376408661148545842130418856717797838293093927431140336043686056735603372693929558136585067381451757999775678024016011824556308988947255934138671908572476579299556216764683615479280608502945479141937939489213946970269326206022284826793130710416977137258430994256216151197718378146769134233231112648189320493301001513189808348463883804837393840922194462290307742499811375569675930367240060841251578732358260875664649615831773315257231147146083664700601234812673169470071144491914632002295279585193448742940805939184934763577516165174234089416500746376727174929205903533514388751284124610021444190223667461443962434615501306577741743608804025994388731079904696743903842143214857439263518844966370480414783398706250554835858908040540610792284719005785108212616997095481223084532421321981809011382065518342754714983879959523199078372663304200705259076270731361606970114112297688572828054471615266571484507098220365272278080049324753838753286394421974282062901048645417602760901937097854654979339143479386844603299896942491945829937090984763091727908671196552827819745031401124587537264226705418659414497598073175340600205761149044742158479501603392972905596227754813568384811118733445667714577375210267786205905556848140251686573002097053852574559064034566400476635703480671132965696072034304566882591312320023387173144506720740360224221537048553415664147255560561094065551767955183879702076366258149383721490047594696718773943334283661666390590169157152125590874145935338981327740030167612233744956719621261938020089973713891454908629556733132868060386507784438345202108211084066831173806617512031036324220996685901741667377278089419036069131988766107624904918791902623988922469908746605323507305306541458689702337106646807375260007799487110955624002043255317704520217060917637322462266122757741205703613458993115390201466324482844594410100086716783094804323483454401655319736438743991379201589825758461947909288008933861953287740514627184271227484853916785285241271180504954029620907312167692982105152842618162607041576055387201809277983746473224435574853752347748332498425711312201978666358581929598089140053887421329534859211284866128172445405348337966087424545127252354859369358135643829145812581807926338735496067926441251922428790001216479868921357412961306861370367605144100129962653398128559175272483059801607068034152387822633739786868535993021203781822598283897325133892812518406358864239646129208047616005494631278624531165790815724152104054670906893917552090409194470135391829195433851378322174783707845261117485962536021286195548682870657775240218512916811754115204818450950402540228966767684410453905566528954134403664997028249159945760783246856710135864467173079952251726928150253907662297080211792604064168961353296985944490510004630581061853975578448684492174662174946443306087648493554923466771100423086280222518186624433811365814243917015511948245007351756807684658166400027835863896472433814979078389960905619424799752655215254546623542187711139507479816192475791530328999684953034330729933785239942455090052884241003917474566607567759644954695955368160354921766964425286030637620289771364277076666259074218679154517147688511771082813532564731821298871235768657883792498169668331528454784020827734076505187719063168632127065946669234542023563568307426300375165526236562170232766980600605582780867107210316508749195361559407667163396842048832527237946724570737039508338767256643209100351977784950203567670742305857312012015437288639387683434520551744319274937581663489319778979769142367683098996614598543427021628195250031716640288296072217170848493844786726462950539334216286174078563870471880454473034242631169133996979353896260807762377208753168525148026021349792764026395213476095858971644527111862021816413295152274576616088564586764941391129536954131192419350670273744957285497955700419807200220160645434733652768138851521578494969515318854275316485998930525369789634115143131852300858282383501997907082141637518333049497066714407600108805811706875002923137512079675045444168929403771593947153997741264753196010515640610970912703970910940600227334919641161148337216091343831508918052310876764208095390902574223223563675602175652872703092133717590708016505824799146976431315361435533212577496517136154084565547048625928579160993411817407643651803503676993693156013119163859552569321447233910427259391875523822251866534609499686637539881483135168588492386219748900925004367312938656000002903890928759478317522637155705531384928775438869314419982245440614539352025171591146712841289161174701958751402090219529985377974048536032621586058419501724166366535492728123368553534676211181684609333019036667516409556942226038518254060643741825879349311963098359934116624648651806883454645579455422687889477488697453174115863300643042646018850678030429910587415868350602377801503280310092098247826193441510755145211966459936401442198485935993070983569394859945843153698007327841767201886792151963999409525560995683813888326124820193367900034197916228749485774860914029497529031491481935913949946165637114615268600857662635828634163187488645411150203901083190819476740667710931198252476499357183433261140501083773640718654771987628395605417945208944079322092823823281371442811828018736276363901484201101465330918148094853621238697505969447611907137348367936484944489946790168385891757889178363326464775307215344498640001009387166982282718063461592978332055905006759643720535175031893851825551310616938207748219136344649846827018435827771974498518713261470170290333417512191335221892808639005785302548523186029140123504321143735241520790978427198128361136216830201288171464572293013158951107429436931323281219879901039205195810012800384386164380959085707488110204588043810100415937496136192872435156190517990643102020399772230694673664045478424172364040908570425192496445408374522237862525224015523525271121067460110382694870525447786613765398002111184230549703913642674424950437137193497318739203829521565960192666790750982688643892343305782360536153226274629180868488399637694709980886608199788334797800254343624902424411388310501343371842222917241476037600744113980726376934445172221875520949281776232809296444843291913609808984395696493253677374844925103812136366473177891811656550006886602460119242051749143550209308890705650052722158163751285819267534457914715228190644737597674694233680556857320045143752233610677620970847243562860695919516882592927494303233498288331397798717524733794419039838534700778899746308992087629378201938486645723180107075471921714566062173191400567130585142001569550719723213174386256509725871632848307252102776790767874603150295555295815092407740099492363410313059573096061128388330189764186043645919019383281615370237708515308220421034080965133877318882839329995960358586543643997356628827003922545552092537648309453681568209188365811371861788180547139197568331554511099548645081485397276340963120833999478201292969197521866206406347430443004392041977100990476091889595318819377414115506658114207660416935590000873505324965991444676218190274160329532647031504332063153583631638938197422977118993165790322759432018750116448724115102581137721679990374767179536000323293937896905740327039159428522782694678982704922052200176892763313472427072160745341852073961338481282870959406489567046073152031149574016818436235263253570154274267466451796067049342762832834036091810247327371019816166279366978852118687705875851119975583564745839376046287667226494601788638417465205993941829444791970166345185640150052431872155464241559770928955626826748614925991751261536925539953222212704010518873811062568271251865173783235078505597959337695056689178161167608481112132538238904544393292211190332173063458991749774025802456130176592300018164012572889796159119383862215859287832786685437616566723762398640989563234954322020745227805605028320420588560360260371496888586643125519203792777266008032416302014929771612122725304040689354145081326498124327594992348969486692479638715338239646182377229774871808087812735968375071588360041745094377089535114791241515156302197332584222412361801942111148117784833822967720011049570246882966067465381945162018163137422061561526985976377281044400006233924501319588638647894695941976302969988705217962658922076083797186609593468125641822967660680748456606894402521230219121864621474164118426315177759927621265982880148099901874138221836728959409141410781415452886740519124247397974370160823315718780328146929329047204567003017759960158938596657506607606747032520685607217065977907643685724373074078292289417669954936697185884582484628250525871018129173306571138579061799438582739401511943696253473294643121752782560120387429931173909349885491288118818442909677096548919666879025550191603084962284635083058633200638997198014548210167786581773094466577977642331065508054432514816597494042120068486138864172369758218059943735021094405401477976891299639207060719664937883814607693132382429457594877307307671734077810352983747100989656263972163978330484333862805448481253790641262485187753360580440005621614883699945361703854047424154060351020464179415798079552469693117140740027787501525667006318726923500934232383362032452758916101465400392204641938232458860654521594846740378321573886059821376809584242255860409131973007124543099113497053566025925813694281164895075585387785236558879829389670223765769898424080404353567709362732606631585488505903678271761138234432444006348808220616801127165931335252355883638595105865659736424170400089209343594813775836102959648797128160948542145426893914037142716833585824971653087574176329362149958046833999385370919144322403388393974260084821563630619977479442686148307893435990672832760797469389584485464776711294971882967540480603929285737390226590552368087683821177840983862564590784337607696827728640948899161535657321713934792999947774155247717521658979082368933198660154747031223323391076738290852168156586536105491480990038485004292632201664236866817246133178114642873011853941595268266699364411677036571512566722612086513588150107464143255506476607339557325820766917193042199592213595568831136534811337053585819704372282568217278150361991788124723643124728591036336127494094459797086527577093968879255092632575306883407660281054814825673213664469720753149369022097493251396284034327551699856272054160613599713203643263134622064481357461877394552876011096658546574181086798965573868287699723045079492921924644778949983097732081998803673043615765231594571981865961178231571874920079789051007515194785062501934831078302393804068775118827964086070168305284320457091060602133927959869937780558041276653958048710147768509813829594797273388076458205221540850540134618869301930715726544573277355286545430451430124389428967424309221820745271720158376070883741598644794368607719690648147386089917399334787812180648882553592611899997256017551784749917635049228833317954280921899853010203931976028108751192172179454245612327967122958863797999031054152072686172751828389290159984662221150030087109062013137100725233367041240159370718253296370979070236517943663055523639528073332813852754407013711267761392759752451045372662657033094541106402603525909609553673073713754314135393883994651958275642671970061966374716672495839767668373619369503180330189260937711096297487088455464194609406344470182101179315307667145735895178713703772202452518296639990415966900867492361089773436608352669499904213572234517624186350432467383312806924837013021594960093757404915969213890355888379534970616910664391791396555978438625947771779068774139072728099937041358536648244831465194886959664493484437213598820133080347570021809252141180375454598802682704871431301343867004000096596466258042506015633370919417493800384723582120834632106963086527221475017601946511902683457120384690082395611343904747933926930070506087830171790314882432840156560142374793774669875252336928803748474268274175399192285024863377378882001865688198731362182400014487818123575596363958271817185919989849408563072582166313261355480521680911497253531845110700413354205853316774881379028503553038393831185725360588921824599425769239404069951381294161065053008789358611934220777332002864137477960461660612981848933320000256746221366466925261875792979264626028226168219613575650649589900789002550724695065807016467008733027338501655697492545609095068009033635267558634299215164020640929756075580846128038008718736468323553504640971026310717187173209185885424032529574846105340460848392701314751613521480251859716352717281780225761658307765817155710347042807394549386835572593881923094181597293549528694021314184504058274519904914883207642698668501020197713014737218533711791772810168355899203566532383856393596823667535192744250084648697990463647236136977445838728045220734990530378325923781939553587772902765730159742905804406709223477398546313673717333387815725964612073660929236616122530310909717153358306209938277194885932134297596649160067945654940412369916489856246671186321902478953322329580515685441133857432814120418563405373777401143140004765682087136200941891285102948526731751677531515258453353694068108594157229718506310988986210118456550381879693371575962976680725188790812793817744354270361554474054922444405371318910576093536900833176415012695791631309846559626961235838889908719439308369590017538045862266266111997456567754018470771425950062988676113596945665226978348910436806144902468165473107297906337092951522635867847431996199942125475566833457144985694317987030537109605768073615197659728616835182047292274744827542697106204777676605144487605436514583637008598901207970425403746285061224483946656181171713105094375628288300947098625158704855893046864785217472256670490045529482443730893150384999954534189583279910310399246991067606057106790978829138785606571605717537503845186632905539775824534989915740092931500706887832853257981198728186127590207286671760161987738955034351569647362180326219796222264602871179620568189672708870568288759209874118908873937376168277505410155318351466049706695801974431024017324884720898310974960647502158151236771450038876200699431923161662043421326275103119604264210234760655943391500636889524528497034276496030806777807518007519037488894854850138764989546257260799317074855140236553333679211705256456454971920072787304501720939021668248529308220150293789858044272912871268237331967481873769871517684131795593837352225908638986546678310702429672557323382544698773840948378696672295292777191694876983733406469805950367220827720375431412626997180346517788368617822932084166135013562351873963120976991514226984807969386430352965934416946006910368300744929197570963919818183840506294330947434412140450400128109439953493340057744171354047765767659031396991939538741137082857084079172367392149825358254142933619325361530811656036013487846115283695665958448594408350225942508657620136107999494036997848581762070232791219732170845993252313355344600966671904531853400840597022180450169871352217941381367282952169649758276572702374390445694357943768543300108119582803144332825026524991580561434769634348312272611628376951396325824333358574139611410042528062887562833425498078276269509831910288229716725539507986732094051318460385546773569246991299212209044970959259399389258280680490469034057864084332112025727120847088507718901965429140543738125876184093902473444923146376698794612814631733900930326162727344964111255536963959255363047583259804444337535169240179972873698391126645371440057670080372171454989136785109373257357762667773871768457054618741553545666215834549738456718292591249069367606029243504704775232751952835073338525921866602380900908348968368452055555470457593888285044613315368282287413181559796420894445201509214081064027883647799541033808323869062594253810802895910255478145183573599625460240489369273683325060365494471545244407338889583086822308826545218706752755945536836578645378361525612675843597891423692618008917705967167331445855119291982915633726533556494560435707822769802132435887863548856498522448946678520703644033833859589235862978433012603473538875333215421110489689903362889754020794701358520899054757162450527927725839528586352633329133759921902496303940933375224876946578454885078754318064713298017077589174761439887653305280460455963325966730525594354546033490621290886769571061383654997352684880140742798861311642230431040970239768540417138147944092788311583089169774171734143615348852996979751408793881624350580013033029206759854111701472045607337020146954289883570612836141536866442786774414526519244356160021238064952261204255488522685214659062581136488210462406349601612586549512771907527309115358585210630169067753481974982900417095711671437615156854279555123591388644715919335216931775753042866139681922083731597143667147616342559992845349560936229448813423001138657569637275535739481814458748433896266167610346528352367428543475217995141132931518712049432934702004902740648078118496748437567385478413342120915275799122734140191848931012126494069467375003072417869978868038171249427223516898863488460829475728289482982559753566469786020502571688705541593383722338392983221115616081779592358256523921254095683197276494553706943615987829795939203736670937128339466991187089288548952919239700599670064325788041755012365536578434988537262847055601361969350480076453443235318048096867662948465323225874393867361857825116349012194915582247934433174280552950622858870639221846787355350085690586782801405872467410521781274034435654829784853659205046549910971328576752336429845914924904337205584517127844049404846079083408653564903445269692445892474579888697644345852767982770886617023487987604171887224753822962828628680714834699666434265766671681297131181583521110279668065591682305684223234493516739133153615621635998940966102927063079269022659671451214267338141107147758539643210185700657000750795111444833991540216310484014587328501580653710706545675766613731932279745444472595416017760891908401694749551501288578398534841103269422037091204248190993259882662573141335047633556733191185712544654192620890802708886224167682059080517031277423248883987444905424774133213329838134433891348152216594307184983924227428626915352057446377915645506964246396603632767483788180559139555100063240496621770707660780095487337816646350861105308814262533130207625552197003503915385304419156407089399496761354998415568290569934361195198015489576774762376980970291317835548332009324726738696479674884964742658913616741279877015381495143720669056190994072992216584146368642403765293125189748911281345911157147910239118950434700584617146805371122706734822925281387489766953301485067299210983484339338180152752997261754383379639604134315321598648326548898154241492118570692482876895578502158017353486581431560249970558801751691770397018117571633345742683858431981309872531162091207234375051191693526407105190083145107659370210400154723578346517622268110445113276699614961535805976856027472506311026689595728871468264004663872713516984724835877316616822611141161581697092140295796617624201079369561931733408142836539316730355888244674915493495391679498677557930465847755535640323444730505052043027675051907082957669640061900039998472270885006297958857813140087923031371984721021733895813475422263689907096576132964436207393692647096268887764236019888670143339812693099429078495423580124244133498834289241783602529605043263584837343039199941828030285224377239274737219598412990382648466823383942275713391252597921126781993847342438448336840458507127051920750048617708713290486839685955539543466298879431737184116137805275358225650441956174533993277639811635488749242048100205972720439405394723120055088042896959986589204288991900553301534376991968730385689901821769169566177874336225998121195731951770321849355323977975348239989254390329609182088494635584822426350663349523650718381509354228652035591218780909047038638890391213794924016474274231259198472157302769594228020246586917954370781670636390592406818773748735811787382704073102844447892743737783806590895138518355364191038735849823467741404236125556952123897472106477128394783732948952630406535939443268457264165682307050122144226637095604745141398521565381437685495540048399894284523475074287587680846071227064765993826429527233191158109494808310249177666825137000724407111557064825534236733177960640661335430630293803972567874313576748416989656126370017139263185647605513032418704816069460396485048808754173792053879879336990497427659242686094390858922617612471190192973880906923895338296454433516953784593743168729832797655989334126757404851786426099953893718655211134237147252284497498856725899118322979053096614324768748700370579525852926244774707201623466898045391984740227769747708301406713607088551426756634562775220217143059453746718667263925756975285390422583067868193597033611175033301185672417864425484679072922059821197474640647082042776477657695035487287380036014287176142452724070471686123801019134120362374470099221292279321050834838951659214984648773902458225679001999282603301897935004397093226986061444238852802581232978719647883505491089578220812619425606709324214044268252563359565463586698658114985903268114068828055936797093577347272779337447974792669938967582203692061337636097839787613704429695076430863188135103551333078807394940483940768224813641831272688029264874370197332991144375060994241396207048489284987748775710595355833855385047228839813026899464901364505201862938590261645051398803846180487610749726709981556760556261608349785554755101196343041255689251728613795432485830700383771332991614229343331784591972995818144446708916262953752680945486126121159251514445716090207671320401820601759155784730959399897606607771007683690143460591202521551667482342655406712396280584147573486561131044561565774245810482069512592972271735419398305799188517271730096915847746854154086328311123943820905709225893615040692168299775842030573430098586941070156511150505767906408441920241307286876816470791803917835102652432709819727778997772025362005550006898336661147624997039280235242161360275566374040466475156642956898511042312829725846365219026178939985825096648576780832882460629857358302831115160536362612426543500121410818231810760713449528087068263927193029239303123738820142481152585066585550639950198941606486369219424767999152218733997491945601210936459340452489365388609675938887796990241364152384449118692170302799456143186291299534154592259171935566603035036334640528271343781974328584730366443642043072341869637057782375508323287690184403768628023391357101487370369352924622147798562440523344219289324015272106570417643491483561842612883766491201526265738084263453732110373747564052320267515991859564734197412411271380689345570176925425763822536200343130675395373168194508533070459868089997118396382690409830491232917383177720322974701348577128399242254598975101511522948099789503533574851345980237906282160340410462552003038519107060953406076085395439052003388138180741300128969213535354024967996308274931302354898140067549161726238238931530507666576332372951273363256333308853963526658743185893246653726889565726893522264554206145016957965199139189868731024259903643006215513317711113780944197336099229026878028408250039811178369026802756360521789546988098579109406630566349247587216429319543912411056291427610966408344746647946977232904161623667742197452469543255666901421250682197975071013744470740994277379614557869831590998468872345399862376109505535962638457600124948485949652093987342933833814000430524479084879356346306010423935889832059178744554198177328584681238319086226827613500064816526249443582154923287275120569063083684077968202036679882878839181670115407857160215869969926793836743984292646893907399173550515023229281511642094994091647702192128479607627672551808885382796763814758186953186114727651543792065090064640270486034163232662724218269628560217794773146065501705277533107107437673554709927028978773391186654932113128446667586362820405009314009493612124460309297087071538555807373756747855926108445629784391218366331260400004522540405718119472306779454752760057095971725746361009530498383583265490649572476281265617878361662660338190204492255353958734729539018908053935093256814526177224929872130180612502503565891307994499856239458219889592542592536530437642624067229607046588463035930894483848136856488398654043267885535111805582498013418267639142186764000515790560646559584039913906320591587512709831450535209026866040021766190426328708866961576133063860391058324249459171337259417877057697618402392217588039635332189546994642302856915691825210096772551129894045832215886924478489843090968517350301010084260153412595904607039674533604941730866776367812802880971043156431965073297223404992411393545311248969415686320718094119948036149174316388276994770126883695718271264707033563697418404716675789683250430545281967602308854120460383002179549512655832321286948983005983660375012950553558691816257362294275284718426325129505960019369969574383162572813060573645830762710467001022285226059428209252724824703712066161980366750968193764143843409210835143417853023121902167802424367442189354409921548602063735910387896289785998866566260341032568555214625169747834371613807908355859673726727346100565408370257956039955351536621242780222706336114711262483489738401531782265289699679351766350379195381812527930120814663839512961731528713996253662139887433943435067044402879969773749131835784074734239036252404192054396670630384759556810102688120326443852720419518332518927693068125319039694683735792231501657438286134624538028221462689689317876245146068215318259245965544054000722485525900022065085070567385825801019528805106396054220655654944456762641747927350636013594329581297782132806769962896352544501487742264947906760028427979435996876463493219538941302489494051738575821636467062686856932666686981994055537261826262491022304797946124122163382872698517629983193087103214109934981611014104219944945729251543027201266899332876059015097203415593399736465900109797655655075501042769537371634876500123251090655904069570956132411797906261388319810675756841956518734390564613749611482055197770931014436951804487590724951522620729317617353679838353658655805040784139063825252548811549484235014702998810746485922668796087955115820603987661666847261679155367998233482492648041694876438804232218954209759697874539998284730833232642159949471926505137379393663795320757664705650058229128018073013801108491638435896784024717671711218382256305589613325331309885742901701169106110593548203648508225624046666514041689305859724587640083692077578090664522915942392229266745927330155664478770914477075515297829275239605340972729477398606249118306073791614278427700895107655391406263237289645483155954586976430842370014442096059847508154977492340508347126861166664840934466316934543454572541320625643677462205614568875375218873950198432976715154262993360629918458696556092507818789019473797795221174250610958275168859904671770578581672355896217178849490383715359075988321829947645580801166688393837222304245252679942831093565208006247660215484984622164685782788566781622550046932682287457002048166180808275522532826995010355375791053918061110469383576742937522485531605804901201655788462570376639027874444572723734101135364053798404830361869678447486294706833575485789401473763417352183841006171075676978603231091064966508234377959401466295798667671661491051903482424007978229818896071341513587578732285176915815976952149828038262308807563828807945278401879640166855278833901659734779895135253069115106460925168791157659624561401925980433656472728432963255055429689661883316357940029292594787724926158170160250715491977129284153188324123248753713735021100748225186468540685950926200787266498789781081577749928595538837804491415682270545760031580180604342168940923143637559557466880776037539867658469403193749676456197811274663688534321837053093750351661440412901170884557907323158278969967518120210105378006165139733473951091204083436882574287033535924241768940441365750436330026568873818080808779901424243553753600575547550092943919978972382715802339828087862463622414050369590618907942751331449786520208402465110320839564217364100254647662232232873878351405428718724723447960207006151246228717678901144106666678610789992978992909604710519317812502643519618510975386028130554333202442912466257143838709039534640523876212738413803630210025596206084067036619089254345954804989118628621777014624177829663804463550583585186167916225343864820863171134289836399573290434064641156862080850343603722160573856745695044028359832943477432615691577199817695128561270644377128098175424552010136061275178533052368886318464378693944615039039533522756304542619897985495860260274827310609680603060020123465200689826229361156254732725206434369586144328213509707120106705576911832881446275805679107509559614381598117372268318933343372235508371582753833986343422193768335927031001163110574295377681497988455580152141228893955368788271324348860505968296800938202002135131137739147898813406726846410187980145973992245019361058332603294560410191300107261072413126162028712067006944603491261591115049352930422056194028493460572902593477037900121637529468851258811040740944628168253527224526072506512482618499296563760773791320002118003002561604637941381012293333332437049398798774535164258274807206102808125315863809222786795918589980128959101153849634586572849782630347557394363757397468700819016550727850002507647511077860457609428079633191500869788109781837080732783979656200711486717434770117344425856851763284212810905642892281706626099833902282088181393452682794067168278105484282620415686417570858845822208335491897766075117978525934758593130326815956434894627097754567287040742550399286118442723121505087456850743614741875596792991554097392769916528177863819822225341885121775504891906661053070964513032238019214975759308272931330418073108788384155953945527538101847199701553164789047262624774843234251200445056270091968170462864994710227089679990431495173903024995858121239004696806239425998704203796064245242318810852765445566587675838673860676102246882373188084920664654523931291704952818435486025983195159339010316591528897356360090997223765646802843195822661550790065213426032271825340623869514024939462511052651111041164342880318430561889927946431070945527923490408414179544488500040190662980768308186093771447391144139117082779395745199975307271345951584625031930237828823074048692300970492906659580176188010458283553363335499080463822141713785280798849162985189060005540199723908510652868445240244058297169740393445029301741762349090056915457416355108477675560237298675724585593858413009205345257218472858131589338083819854446562407109199130042290782568391893072621415340582763385058735444176892452761223546691307060517553836579228539486821811768302687562601113096670659354236011719222485118893149570658202923812615439980201492464366360006027046705939798848232444409180831439363250244066339370773611686098379990585350235040905129421643491568550680299744794721602210321995295295878165683556311736501077347209257823521713448583983237094538544697571091535602095732430213112214819656190684087767026271658694292425278052613176620447921896229076131305076177480404324712098865436704718459205940952295912131841174768744863323447417243991892236355790020364630811139716864850499033834808947609645616340580854201841747985431530308039229130597711480753498007844159034525224664340579935640466357398784806669434047593444760752971453101338575265857660002161718409356617772079912347760989480751461646907599251393089983708586755236075589526848550545928312877647273631605971525173526690439478937826262790070609846689240558559817662116055016560899798857576796734340527295470033019944685994916176705416162180819174886098251918957053757105395993082077118265506889235841798512266774208774913523045208038792398974461328219520877402530768751269926476929040992148014204981698028414918373030929959892791820403186297004633284274696432038970566464680688412362898096514752701882522567714223680495420867933770674429137823934794510994725715541204593460841968735915238606507185256326257355862409979155511497413445874628917447551475803171495547783525527376849039818828858319054849618982332128502727768244406423598207762223095499307290971640004153661788626801473741725600623192459303165156878148252115938721573892816468878039923014696011785372474999725743724942827633864603932932870954200929110778457149369480554759914612685693836024862856907546143675370401900755619010231012109277377395894225168027000467817751260856416008382833251785111263939746393534752752495291081679562697514194417902356776001123991343819456111214192032582263950634149448617694516687865941012911252593332949657876992187327058970056754290914105124988381187179877611406636573775341317286786266377485887756955063578880460084628769529592871901370247603820952268434376848059408383401479601078813431330474518926454322100019843738631000711715874474314365994430924778358896270086837528728796190948393437197356117685914936532802460486960217853685646879092152585732288238196856414537944353513221037553228620107899880135169102436759454360770020483299651932425207290904349569340627667727459860985109952518159571426266813847935126257234199681456523113131804498751328856550527264117232867706871343384698257625750140398648040629668968696755135756946034449715907486500141433971946107458464857320344571155399935914161979320695078587921545488724249630726875004492754983767368365246480497097183954629458481216498327516663796436347633134618774391845720606865990185838226781881584640765394115053225426237150185693623392634613420197689705483829485469021503799986930569252146397528576223954284781705990744325615285300992588698732621363093902359392755954626858439502575150607960696402970835149516311464779201834900414240497133114351624256362952525927713176319480787505709814294145218350084231186283827553388228873591290455701080475611323389053034893221222774158952395248175344431881448262022928825649537342772846014597166559605641149300149609077507349581331156323381984673626226449779125566407418533373921683550027301085433301477210195781228100640205775299819296361496337938395258744683688191073002412895781715194256548766713986934733493800959502805959093589772071144296923376237888533592577724554766313356048780532547026106877379890949526930411614998716328234300836967925096155221594346730040644137306451528013826299798878512191618926626312523669088944840641397150348935564808854192864315968719879816798841669504751557520901391754330971034500802962726564146940436628192801123473019274010226312971248947975617453303637658172740421304088478280428400078766811113570707602805045215997156144149912032107564342214770940326034474675300335364762436802793486958171232793148196765145107246398081537956758309354762436828153194016718198760966047602760757757746826649250837005333422570654549867602628483636838637289330872167703856122608652530054310501517985161770453526291241946127181418613911470540092899579743949339758330116624868761075634013824074279544526906868815921469068085603813100339142907665491183696020173014106967809994297472989906433488983404074854710497767734483162310621550034087999446265773902458776060454185462714213269062380289473691701876384232486032316240454717440088144547445285691305221082190770106198631001231860632865743230634916095720242106504742056625439148457960684814635112322153459751343793328765629266800337705930628217639145662429474688341286798686441922871197023738169547082080698620044999828553110597786236901152398453091793810983859249307718894759349308384657786452370451285371918914341503450489315556649038810026333817871947293454240416454779573202222628956401363048564203151521950702404618036944553823421008566818426787928128417449139560763595399981101700930822199449633109526508074240230569171059703176617803430528496328795106303629307876126444935845910542843497390384095594565965303284023747048605482313576507073054018842827289487914567694126673927632746628862197400388288895864546663092554820071956852996372378279744130208546831503490595871935757908587187272073416639998055815324275631736570622357874705647689933278590570810994006966630946632030263553377756137106258384942675939315964321891357615432816785613323148611072502371630307402909192295773898990215436562462192449226092695220714863365089615218120428676804200960063286829404575711132278561606383913528359538524187477718752805850234839770732923947434801904503484600016300280933838471609568425178624580577749236037887921247026271099226143888089527545576503771202884595193296665024911471273337620275159610748702619799827833082474248770818949133706208301355818640784681229839333147508154659085603730722778657665160774174277602789547568811808908203767582122755749330597714303329745977795023906188578257536683666461039790989941453294273407757668257684337874594883129832835379918758650524837784634230338515428878819085252634132026502654253419881348613052693780375466630969421654464775864753446518293045499037544500881673521412939567491247148777011016768649298435716458202430999679798506786783661908026593604750198337006359798397424682182150671162366297172686980542619620676451804722788740296143091788452905396226746448359751091301104716719865875892548204783080328184422968400722985142249518500684172525886336567975701924923852345340387180792721005049255914797396848261946545014065987075244624887649273421897971092835728947800286653279866341552188592418745089311196739893145549526647159849377804080912190969049662360699815625307432051201207120290045279163031252882145206707025830267647780565123950445767385984521319170644178293181041349472479233448518526223982555004348613431974221723544439222634425182728513211481216282360306496044323202746743092660900050870138774897495585877363033475204902193818282997687239120034751221270074444639627618924998138070229409359438663415076523730894498587291213016989320407278503803004126070091763971880512940417733270776754394343233593520649325813528586078553903435750599542025324428272137126614172961970521393280704926261149476468772980456009122704839567952387775180989494968071861596980497193818934751684352992371386746580136606365362570953679195521618023570655868851319149671353243080246499907646641154186295149101091686592255207582565543302237593317416918573297523871701299667137677377443054976727479150572483294271176671547144031626970827159561557575912108581254269598161403137535405118769949844478818956214182624907688979561622470092288002771688807375913146561608605039042631078919195766071511012874086463391420558140507211394273104713128174620053721278682557365622035421812322958097804762668703399329135075444526848673640942827175672413570216386582403870760090260831350263286134144119610852080369648356444860020008596092866122377564609592821097139058440807617298753068252988858877241884832865857880336414768876335421704041453908353829162136239406508533285240997826981541159929791693171430665977189714296615558790063379914629954899321407864213128399971886246933695961937298921494424516379368823444571193911615615222145916281851230804159674758892002773951181080462011664613601687731024627790503822172642080417459227576105732673834438348651092487454082525659310801806921415724743447169188381364980240700088756243490591491610308491778325903093108785108981177884909670492868983081811848370203676756776714035532326229072931399050244425504311796487954567517808871811518770288466753387507508042763926425348379839765042477148943634380809801084558868409560859493900333686708163116649158044584728295971866707194986180746472508488168873699061643356039022486696138499965289111621256917062730659773631728011987636972612912952669057707676013392739416691231652694894855624720969782070696412090887643742481604548007022917933328149751094977181162587116184587202231361159580313724453506674230868152109814220118312033995817918780896881946659580670150260636815478557771817133712961951254251115354224587127977857713558068859877856692993345466304872802295817199051155101020628185165518282776887554516480474035015018772195368413908566865875238814279477557659050049583086765018781885925311434851272142382013004296876666538222663257009199428385362362605800919602810709438912401798028729929597094660445200293259370366180014869708142265874263555561506898529138792524364931887578345585995691059865750444830433723557790709383259388952307748531999224091800883997121062924782814149122203610661610130442133500241743481403611247417927157299144385129223757293459438361231686581757708607094394545029858540994307032095648187551918528480161239617817394265941694749771136863621786577765435913815318661779506249407507530206057061635910132320466162766036978488230063715194501725286504375152817820858840581315727080196019640039567751666582113013584188756468816339205708880738982925644093024908785680576263703391055235735675697068470194543360056875464586222469397213910320421643440406949699674968776148928936051717646586061741260614225891034543069413721057925810918297562426787428488839977402944567925155778574177952745563600314519349181334485259901167819391457298741054575209333015122293982609872126610372375300511607560742760621397132540464184506879884331046953833594639046994760050370293474555205624557796061028702793528606063079568332855477408324894897477832317942573653548833446760613072163018048660994483583332046104311464940473768673887283527292100162560242046218973900527474621274517873552534583566472138523574275878758573488133626122905687031775324854041779008406146885132333848258475021218631718542258235691970705876966254931979825925106789604938465473201765611474756728549349782450512100432113957908312138424387445649609747597811145961933237655546381255850564031368440054136877882990494394740457853454181812229837713493044130861494649530067890288278485634420480396023996344189674958530100639590716160878215474314943886170065433143761045546691403013342064535242467229630748439468850865124035646598349577259686797472320082016811754513942546515819128771132522878808145419095180682452075108887538423567343348714462427838878425283751006444510024948529765171759895204792340852309863358206115858155466865761458559022410204615871080112148799952673530211160408944739779545468183587924020049057301737089797192423414470972757270369843286672922244762886083281504502257811858506841668567650643357073808082298674868493593885695588993828994458702573378876455701372326187006173562624515884413963323216460132748141915247654635227637706654920272942348048164438504852985529725792221673508056135017077867001878854040917233939731728249397706607112553061083364653508986535838004048806246714820818284129499514331967151985077347234957778255415678932561689084432586761419854346307902974141035179737561747465914678056746667932666886415708622311695333977728584650219808348596374301666222582410560661072403454588431179455551111643203985515473721766984215676458927176907667593627134842912009523771873010191171390810032699111042789681611246296469149888852411331332933338185379429809362311678055385135019482030621014769752818451891109643279313186114963064036831290996410306826561347080997799331315816350682441665496480224714203216148341504512606959008163422498911786367423663893413792829767243088298010764652744055652033211126765331283047057464263196811718284818299941190917433767347719614462880415576752117972719451435049964913057179204844874532716134829451692266158766907449213206696374869806196993161405205621247620580912764953560279616108773083243562543996979213275483015017400744164484570213594335755396010296749129754306442211408375380502322216822116783598079337191068216513574680304739935166168548552627609600754741838721669118321642001507879404147080152810317910448164866572663887227827845806194637943494231566917984272229929336359964823839839648316560876844020845070712270724802237001434299489627134104266103521243061324446170076326381016792198100992077470516767267897888483610969420342878920966853287335007355289225906541620177932885372867886349485130416675250374271623339133870061844344634730852831714833944624656160498682805202381338252045533732227988464672720995066389114835093172127820948922988545355952543568958060557262708666999745327563780068091404166934186925713872837367628583125282879780929999944822776469317206585767561597751361588425181200045401307599980676360223724497166497855895501242950173012806642593398936298571486096927721394464477579085477407509535729943330954323912040155364262438526483350848797285427251998011840348918988074637600929756276754934161278039184506666863985221507594121648834239264172049644995152549402814349350192662056619909215357720919397610727467077110147398076385773733263897047145265782973628138278694078189802649499958912476661480976948289014508051330832852616923766574306389501267394892180383422948818347552444359703431581717157611516755258521940023362500097781648083347878084857761011092854969032726433282090585206075788140794395512584312737904202977081855077369482607895713814676890662856925584798946954725524865720568450759208716972111063342435611957681250188484322359620638920720115455033525228883979676792913178308132958428750273906989537820547430935821252648222355693251850507977879114234712191711847257578297302906866177457048554678236962233653002105893218795293330814417585513445272277040499459761523933100960839321327684241566662787335203273795177368034198005549325786644797709100819281408919015469269989757393866401903775798169218808981079674247485098731892434179276253684903649791186700764888783175725723449745320160550728505430098105501164098503566743876589221503381364233760862135624757537837583494986483416913030552934677570338853747553818940975465183631180503619120817899511714745261776057292553899876205390220535581017304541912528771377375480153121226152435467958229072777321545159145189468214294509849644658154114257176410176628532513201575743015094068764171268744976317289181841767738580084825783510853965866687227636850274220660005917363936599950796518392914584637606609839834635285640965485401559276697435985408602091782362666948004588446866800997487800038395437232186416243668402658369382013149585400801742397336881631096102582310765082066666746505202289662181399646683594816607403767991887882829066824241297873002833081004834283130393882421612466304897348375447061756615092238212616169292785362518370582402625045187690659672026016221013701770224885487103796371202674048372187527904936336164213858648876234409940069643769594600450529796407592101628882547238369697396466217360658907824408520736362203430286159846270998563305932738449496414606978695429135840164444076928097583411005589122086833289941165253764863785027019103834760659457992753033869087305667104659943982295133157173550609355516794170735183746258559668011510233661238606015726918728837356052099231313511847826612325727869301174009992230483062366645630401649210618905282494134569565551122243905649256133871518367947083838731189718076084069927226512569959828161224532510102358343258347149125071761618229075646993470532852096585789590441388326056419404106894646080339589781635111498234353181481554740806633408924972899362024608418058693158555921585204634462463836391974900547190566420119205733106157822612315229464156148876286631822205837788283708194688880524508779139902464291407775505966817803549107002725439081009143360252292664018758046242000881795247545297763046408240202243154856706524602548253592981936363482805611942748718972397836968548147761716985273479114572450350844663996223390781828052983645027587839685190686782621796604546254130329891171980297249185961953388213344539315030380607249898266246658053947007169973867987819769133629658922909565875540173768660126426583033215206158613890806070291197070884791676793993153591937048050450212082507740091509835998499823692190256627095666924290232887470473153412015789853481651661745887068043012911615687182736380623641586686878869656672741651564615588003188094807111711400201007698421781835388132748642876697898288921398026406054428824687885748676839057920071166861214136007897695532477046433339340483531413392221045381589974391976971088889822199710985326209755133067623839280518933137986943260605272308106091683257201999175062054169879632419514895182941616822111797710204303994941835818940095682572610026650242760598114506302581395411662181800314158769839858286545698047323822828109219255366763105328180839579449102114139918463480641292151379252301105656950550761575373278493122261871835278827238608388443662630807260445371223332793274101945902764001860189812950350202051586070202775931842013155584373569127838664355864502523379796541806985415864904827595215799533316147208734058919773478394698118391628435427437161684355422674484890481104610000110237578167216794271826939448066869738537543242187510580461239525977630715335039108733965789293930184836191858356071878079503447626515893585150294035606294782792667045366729986997421677174112066876294957226338770959132637296468616065611036333888743160080884652373459228816141910944486021031986149982200369288048163036438584079669999626415441746275302866234750976028698522217324690278803851478785444904219860117031433341188569586096567616896260696172648273194390983694320373934829886243457694852971270737514842304876609044459000298077619414951654223351906102997765004544335688438574579545779340482619545138126936608259098393662943168865872630824148821653755676059909364496637137184116229832067800371369009901127472548584664648879979446838276031370125726696655156552265866684229491232614506008417576285425747714827433289180575575053481782980153623116527905986352229322871472239565415907752296083547933162362799689761430596178764970219155038359361694345676780710600683901569780541632175931242623322435513292306485351999145635695086181488999992597534939057623437000387885885650266709718679346483522151534421934325378216059748660179785832980498143513252227224696497859257821649293132864863840010746933470739944375209610397889908377535224969398187579110971120222242493582180989880989754857664519774800902967392609336352384065899671085629544796846589235802024275985918560066597735760893091608041262942460219135901213876740853691980766269826077793502651635160441245317922631933618141209271667718545978457746993848169237401372171971242318335618724813812872720552952007501920391840025325507725489368371017449439059577334991954427329938360213580574023994553075964577409875439689179550301794419543997446569697412233374388780669160169187373463160088801395185878171916512159487873188116458568284503402874957849941940505896644469481773384738258420134156348025397937545335363503470797262972541519165747807932506322764769361467697001482993160957009930333043773795709134120524454754785774476721276970579527759473572310859416149923845176179151957675068372334698247474702993557177715355463594235789094525378171689126372076111116691675502393389568361532778402067457077980625121075682489464740407757148900834855384545224754787383579817159749951789725202837536058475878042819988026893970183623722647869305703865739574858786968960150542710396249428293840947189535216770092286782372426727526673060465536351542773281311198325601000945182036444583079127422754647461742383525549531615967969618909996288943828255586794577380437013337206478269553664774569929682454177033782640104853875808237742141151539594509070788803564449253525832541415722510421661905841249423004124872473340453669899260610334083116023060991311460878423716235031940546746950309601554003771828762572713930924635782469045866843397797539506253213388017097900163040633057887039699840548079271968723445893416513574740453637017021471120113165039873761116360437448774035188877687896298668985211251733205506494505662659242688357280490515676194329671554522239935185699808248743130062764898005351187340282846766974379602526309666640446579874633643021128930762150463119435866754603123799983052317138917933609754395043278751852000019331480343823265215445738148707582359158043912129364559420168193954984160685190411370408194406408148677194958840574965495441805086304427572257447556992919494428783555717862892977390107592545529834505625204567312264627401249991583308752369615435421636784040067473621765037843635810033043118181887429157036200267735166415412333581955675018430484104299163944099510899322375653466830984874679163459154080827836932830226846090230181309492484851130936752314212086061305235171488858242133062176598771426826214032401085922549528722327839656940987142074637371135088459566259197262224068593392301593153221362507360455992664952816269616338418051064549359344629981116409054010007228831758782159935983723535101603155344765500017032403038306594997093370515012674476396513407865426767848043033937835156342818403854533854646542930256711755475974428042621428563224865891144940773204756748470024090990728175186028012739542519490216617033147147189296780352854903891101144849764751749436035486940142951684169711766570670573565276612843161046114262017968753544434578711412923281371020120549220845794692803373658316012728411726732011199352851092410577887739206492982443065972369853049464348544123342267782085691831735873209434084832438606096415970941708878306072650339133495627645173921008405277973069149728736048002973499017676726130703590260617085702443694019230682974801778376798181786855479694801549648429354707165888628429232076695048387535919466048982632049685464809793176731485209591336182658761737883683240152270321299454130182724119819706532427177320887231078259782844988849077269189692430147257142378144032364217088526027291630978954403079286428979772455673746908002353582464428596143456171326169301192475812460744606681330703425415453001512689023454082846051165910648943460979452858125819359315099776559696835696874707665694157425294289060752236925418406538073440300239608847224219368387973598437359314824427418405103835907759116959652738317602253298296343516625679975724796465789459709374434434492909723298352673640835639119692647767316784723040078204064272730738847484659599264284740290047740097160973644188200656655401076016390799868754889509166580578991178911295952116946174581824109491967680912237073574358372801416835229366507253271901538350447958029966460487382472081711549705788420306547995641179081780604920547949392857138125513181456836375754937727335987261808652108823680411450979110717570699774552326814918475175204981227683181915937137950925145657553340631560909803718010011795179446401494375029896195891746077182566068866597523122467107229515654664366313323585775112255121440234253272160234729700913516879002834318366912898431148497270672081670827414769315682978903817928244434716344924642225925078351929142143342771298737306769859622922178588217973012185539760198143820134758972459630984008371249954223045445350348014668673884423756921440864544719313641335543414307904385111571196077635031952217060347614914388088611461315755963341747717911915891931843138260233077943104269762138804165436176149786874135880581329828535813654405090188008884143906206919111699195381304840409040601150506666237273489481057783964383181035926368488414705335522852510011447715769157338300968348497797088639563087832753007629793101261878576990489833629031200918804396105102755601330194057473433939697920687076110674644580486686211748643185027816966264509726169090350541953890047370729217646641660358599889818266601311450402891714055772762058986466575826613287640174520578421319252303243802032414116290925659263837619585161809790395150149859654399553943898822430642299498373065437637302694571752636940721220231289880502698432071388369750369499956342506621092602407214462087560102812932116808449137013089848188073049228325063811129615776851538074172706396508296239991977529087674121821779210088413671942244526966870587802414777054503377764253921966884101285317154243323319372546047336200099217237987092017250519167541040316073944270778491408810832415366009375688221660888762389605351008381009117044795434593835337997915539271208598879530557890885935673062146521799324521726908500675672523592783681535092332302966973321953419504096770772700502014826878927384749074440717070886236280329383924971414877472872048656260966371784137529206903852160379047705797714853052229782088850639939457623026331206033949713104095585002545169563916655760106138062338392225928920596747126611764765774746720178553256311102949960397443593367398595029844787110458936128727573839049732690200261408881990208874184341215716460325887318585674974339407644181733766429427636354991238566172934491826154310563728496869250764973891935118184698181457873339241360936670367862405013126075973885286722032783844020321746161534296621993878293508851295051876198578417648570318763795575937345514506669611381806530263195938959376760353962741794928465724466281042864305173255777849630823991477977752030480576156206057563915459521103119900548572594182915154310083143699122273449052623692097663964193073219349378767565811609852728920993788244029709225791419320687339829896580354134532536568220879902384441014095777672825359431920700431582749756605991277734430422799577383046007870627541921623335843113400966448652078301216622232297499644897583461541949743329871263178114568673803501164890023335865360036045389138465886010367746952380171997517533828356672753915538536486494699281624928564795314538645575582825292299451721582671687216236314924176200523479176777896888960028595796777936400430079395309456738039069546031857530623268197413660368617573585022013050570269841103103959591818386221869604434650886106315682046554288891290248061887072546976316273247803019685168079780765246811005807497137620536432810763299812039999536894046838980903991826845191879158534493623982874370760785477153156364279096722689974254397004182551204854745434652969647262634222792786264575177477567900788803752432667409455498467469018257918963555779232830045368672935019241718033954930295039828233131939308410232528670232981164784982077965330475711836511194166533543036285714002634226874101183195487684891465434516503565356040253507298317662332747456390832910325184949057014325137287041207395600601538112575760441734234437081819646431617966378882841929402674099275448155523435438873223764669687277605504824398750093114538953627016589319406089501637558558460417059333485361746317337230801817571464105683078000524940544528385661530698455584563821013979592349561487706390387809361850766222424533274203435024106447434527356347002699186936695241260019258510416991024725620895864981607850932975049796480733390838658222613806666334781010201666817532303025484869279309223544671719476039338093869111793261996020186266927860642981293457324800798470053417033898062737121699710792308102473990041224213433391163187480139033977702691958893296406252414846994076279393726882174049598988291963677642612681912801679771006374730294126092398016756265597601258003841488936978944735177944691413861178022804425089411066686812822055355081067390669972693695494162264924123202842415868674649047544046650648533934114993498377660915610542288846406677077392469349048586336388527553141419860982796420648079027312030001971017540257363112481845643798963857792860397358955710021543156031676053380183970803712817986518607309651745371579596661281633764950022148440855609688251413617351940821666146719422849807231209940028353140017732929517996162664488277563107369882234866216149328696484388905502181308614383068253518675656968958025901264297554146556151805750524857795270344322991978317428224880895392018751127214707880457813153702887906356008504340088925009110590593789165669099029199298712838351975659150272333931752647950430941505941757726154581015667410964327831682858521298209378170367898760836966131670210342136288607410264822908298560453590649776645833690417389726042759132741505750776709924555724371708364085609759492831322868524712982070641348753357200788656356977577086087416935722124280867200965077390755037774078306106865115317318315018877268609994940002204527136643955172386979720353149315862769877509281625279698495405809078141746044382928842391041354865350316628558059776039365266030575444028721085649237588002172728887034295572699310252935327639942764075750423285322075702333836251092225377327871704432248571440869715246098862106453066411267235994799817531682060485940700150054591679580651429242670471813844968719323924740942744176548458915874648785185357968544165262595444894647969804634339145809064073494322553186307722974526685231496652963180862553685944197886139064381477666128604310515542570474120230546487959226143682629891245129788953326683599299825333732369297452762836331159824842327764336794406230732487000975115419250720445136856487869577005465260820738073906035658470915626759527713944362225292017374668748674144626607757697011000171435842340275419608276583327016378129073206689189315880899239392619833351297420326233476484257050052724496493859286873277987969978136586790997872499776203428706979042478575557765081349002705562019242243992641191910514080913866200407530412282722435240077869946470544092420604131452197602247707165179757390793032778101162622389543671302368901898565726874391829689003858641835327252952219621599900934511710788275206887699081033819957752390914767290190354098380708508085718119268885595151090453479006762633627088485777467718637425965761848484277717085963451807374888508837304519385979019832012098245702329832765022354715290106929267464081772811182530575605825106698827191209559317484282697019093000910963465904461717780193992540490457146997889570857389337019812740933493331610411654595245952439599128793213227746403284458280858979150573896560518794654013789204648291763351994991855214014114914506124251230582962133968911127082994352777907088249419319113292135128882677350129348596816247596936717978846036012182921866727639574861873235210781331809720838899366673702872118365023608967223221059123701160866791445606277618525915240864312357911096302917040952330232953486675625931002838038128801556366727488003450913656107824644589867106203266450283921622774985398476182557062508444503252343088192862201843815836294393031601376014072736727946175189955796718979206871213870347518609973369080094549291659228357179777058673126098596662187073885812224301844788070815081614570415025391157377800882976955097525989057717616845567965754502843790826476976226330481686597591761787958791527891612378967474371148001108805276602505115469809941478405946848632422802819588993400093626448479317414923461303344901901164947001830887165050012926059163302110658782862872092752724930872000608916795012928452778518598707005468013548113852885215413773744139883528955680995850249942676590158939284045195790002900972451059527045587169910106038230582736080811397201168575292656428914732956848813237749462839825490525828782673110495664223319637345652889627439693315458059991097984528498879793336594654642395366761719539413717156429948225064968887383169581362926256459256636360345816064007000791764173399059816825202399009584026700435852221506997520231679595498434695101321400118223697031799856261699064504810134376640514075960510708040471391396394460269459234585515959689798882885260203076700780674118047994610539240620308848199391445263789889931895725749519172055622085421989654136190415491961958309346536310500232158206423724322737538497923198143017692196382860968298341309455535627450279174048266441847354869858239427572904628050872117001783542470439475063264044678614162490609745692448129470062819649264413208909425705381047256807560217592326563455111826974532640961502281799709409699102219303779613768639618217354326840319514630705974007851915630437771003862488777183343913472243794411916182221339808760122798116414912440585764248290468752981365571716175979727551042989978037582563023292071340641081530377417054990146700144914229874191336279924870609437636783163756716713338607517871793769231057298966393814935197411937660273991975360344091694309381820221000065559431015866315287769551867247868828175078659536011749191380755419774273056168684206031923503648317257157547668836001151481084079371077575706850783157923239080313163246136230330673529124148899826825069760434274313276074237980261106252355566432452615854914119436322816432998589779121228646595973564548045090006529247221503165540961241404795160105889170898608622955163555238654129644803744764509537738863738698098991490983763484712036447614027615521197824247903019899668781523603043043810418320900316294839555552112385120477906045966589434060293501951374454884479032290139555353668927249283488768714858272201463004358964194121559689049763570688431277941704652761452577087912553159366889723607301302740060695311819319637382012944202907869498173884069605106406279206733519255527268988626165002752408727895426326216825252336990739141525357905046809382239539700833589309739344595785099020515279828532272596752787038822262754718246251771589940291860742816943677369766207847196363535780052777762758695853458355413685389875181889215481926974755390829494283268518369357350542994385406462231589146668236989213484073530869592146054706420978395775716892416854598962310190111704360465118027132291769005726786843710842143655011363482920787345138296534956805182737357118629982050351502725586607501739509258635569491188270858373354401817838391714454611026523122270545616965458375706343560684411216315307202930578960936722040205607627351191420025485472419878921835943052205422184430252009138101269052509732206153490926641430290254890794101487801000265163741440858558470682237518571753082559361876404904542264322797662395001531892154005253893009182546066180574183094784953269793901337170183203793494783174507483463425730206594133008052874106623450413227348151874169447979444498558492503262415490605221758624339091984896273572957313624911096414775680293343363717844787370017490711219909607259895161186354275140498010761017072182588496158671880758842140864701568794226273144849751622739296966652788277345963803862360928197582812415269912596032701913395553657442650518548664164796052470968039420532521399013546295344026613436532546977232400159900531113216843044017868544560728017200727436792375003603502034175952031473063653849719500086890180967967057726248015074958316157961461815816655432586855145521395796814910356349658935240072716974063632112756210949863579607842443871254110640598438330298455042127234001184368659329538768674094069573764382507969190807393085116398062212410832621802829829714975152087114122255366470541100175757337323837619505820992769321560497164922972655163534125443843005278553810192371530567535558041451199726010431859598487563392449659012062357127689538650704940950955584130236003864430251400368030170916726134338634386083572078512948721915486019794816631201169982501827526028674746711519001193089607273938868869409195778869615590174713356653602550290626392001934781853799916020609407855663470001975312421822679759811745367660871045469308458546107378430669469319766486075865346168469065003794458199551022900535842907835205232046310626536852180905913010962165926545197499991844440161546260551963143181326445123680242231797250140726488851689450654531283710140582040219737859963116133819519454908442755401898672406378400510796489570030219319319662099192730329057511574538073460548439946198105716815552142069439724593930044867912978649210573016116175362417183477148310425080357404155654553936546701349964556597401550445656294992933348737879121284029731654642626000027041472984303198652257556404236823380532785366089006468166655180854201134320566476359780953921428515722164137436514229755537016710964391937970442656426045154463543457653283297197333480690193437428906369570575825477289772518990049761996554165572616600262058966710001995203519016148312323627371307977589119400762331836747354222463261291496301891978763869873904336315428047732927468338349005740868380559851807633104843821865877141063842379751277150158064006778253398905489814467290280622369469724083227309025751272229082652199081734505529940102835500056705087528536887271632556715805690586369330400746872105589301535515525980351121666324927646997117551153995444877233096144039620434541612643297205911454104302152750799059464311957537188429052460926442989836996847784913738433867751184682648036538762715726430239371372545902541305594201497341359298760919468308230503695962518390577655495093923866430949683595697828270219313798374799708387139798445412414067978028299847043397868730390038139560873458085690070705454757499135867635837911943554149548501874388830730565645412232762661046674248336899660265771815204257693210590046104419360138901823982839180632730065788684630611044820051176118839518690114385998771184302735955287207405344435009745590022977848928642474209086227293008322061483879563088838056568919948472264242721600656181122258403725567165878256583544340882918683710492871390960945421575092476111750954523131831899088030981354398885212249893935787331125672343843807637919711376288709337752618815896629364044858118979826090309002454850289937827482708538389446444732962690408679643962714427491102809999004897048538204848199211949557018122865592269940757357101849119467076905967269704784245442251080811799507571444136749516292887325768465598491372768771658032602907541055475852985662318669484128473201756869089679421976406182500990288411299971954910335654445901783039621756554850087896345039622917544260161279994436291517474720399240678026820726531247345927947524559707143246731809616543520247703156377162661638124546143822520099370640919039521693414802786509988524854534952657459670437452284881083586966328370293165155213182784428179945850459592777259467238950804298061101245030254410277419197284776832360935486350641451999626991763018412678233190837684155600260871604464288364943289705469409291565864826345810479522128621774564232686237236522479540255278911625206048474113228725862751633080323119273148346956214142763784944929374828703547933376249649344960108537133727598577697485583623966581351066712781677784948262446756492052958010644003252664206832447313945226985079188378967254418725649969945482853456824006901636589598145523085030921289852887904596333841119425898996108651442738266788141706933426306332875444037609127781202295590966218788285656074585953459040680547965959686760388649782441710573541830554933084403751640983867690514107661476764724778790177116362341520310828482369532657222085890147976379639704464262863557698622614322457591364762957423360001075486042557488445912505140602412042203156312864881761744167727970211465117086988643691590968870018703774101058933232855852303543507295831439740349542232321041899518642462931011705396072846744190604441492989737965725605378189520274674470902769658955695241378391669169843248315259385091429875273729852902612864466281125376485971693947383916725010433161461077399033678873545355304502144077489659395829399150642749600014324670666803270617249791322538091500389917388285837947410375890143094266065401858506493816316538700704586087494281443882479720646244722746557013758904225970722364653126811821216413513987019234249861895703363453443649599498168675829275431746430392882922616042837062790089025943440228315867519681738349929274856906045799491736864345519152373684052916939168383487404635506286598275920827030110260158926137979215476172760983494601885511288355634501163761105242080657291406074216617492054762994972070524638020369626605218832300262608288575294144402771402975428326613639022953707665999209427256969434151188633944387356649682288025080048776923541017060948056381365598150007973188571837105467479247076109799166775811583114522409798468834711528400209068897922652848283064995104261516924205561739771399521519064133389240526172687385464674762368074908853715321645152223554163185642665658486625152133416921444066099102621858721161029754273291768757747934493784388853264024183837097684697871390960487736072038471704644521491450657805642721640896992888296311116068502210475278934206323173951849781125517333456240915609360719654134408795233220567600434974933833110165386101669799852238240595666005925282055642890918602996362304722611894612627654365887713424482278301099658714438635565162029967789411362641265697385304509010859529253606260341476274957513219291084829280509487433745093083491951168185424800666601671175978817027097182669820168984308093294551167329513771473225557208399879249388804193692126578527876036886308492610498599238646265729413343120961951608844028382547893220284608999195932082659991726633211194443247528198872242756502201588248716175742557315993417833935436125592585533374983975035137515959982302820591290053592826843504891572435204993582904924451733892554879456767373327331090405322702440018842122297511368842999451915527141531848929158942387689388617680269403642306091593814487486123300838195561778398361014010785821439524220207328991485834104099611861806946077776912029513282724191794373932113296196097725020078117543231015825356070345307673980147224907290506443954095549595429288816286500693599718744442932533259519655564707969284601848134575501649498702858070395444930172299316820666476428250086760518582908985718880224758179115436626763451609703229855459547275277969087639657426767888164138038017996831628885040489336317622208213669180892664698012216886163105697402696695147519991023224605988192770265384809059124088740708355054787370957334342889486273024643671545595147388679765055757000813626152892781948278905535427017136926299918296638729570320957846582742797356116566898608570300467261422408541679765539568757595939359052870623881912246590683187197678737618455987959334556099697175036025494315454181143422092536023969801346926897434507651172159655452693871488546998167633621551633729224125263999240321303306595666793663380668070299938329314031895070396598369779695419342451075236049969630282655001134486142648153227671700299871104770370846077107319827302852059875057823429092501219940983255166311927127353882394996489073869947233443881021090644737813561164381329358128951253671347321313346464174540436602964046597498291498680966205075478292916618655029629458688391080698110414189394673010132734574914904391814062635599027499120556521026450553540261487003467910751619950482090590854555630544124401713087788212145216269386746003096743742856477444192258523106008772557246459445878560972178821086869481322667805272601671478317687390843318216233163413996219392355771675597689039097955974140304534601776998875659965629725615188688292105317928576187138743874415030472088111195546243684324717071599018566028896313810187211026291309323047921218812067747378340920152140065099387230840520171073911986330430714612761465740391375135820611598506870588661222671515954818044360486892379280667034005807032861445742181995391494058520136246707184649157676027634244758714384344295265366468093202381618450164696738535223357615600591381514101367806209129445171264536788219683532760838167116299123745647263468561797205999288484100871682691341557562409888725109839471377964762397262486700607835326403065415027195258935407348504638405248426896474028626506947513345218099513425126848719927265282877866256017424095813505014287948741875413551310997346466654461319732869944101831338366530350658116565033090176316105913317994708427460007752223966868214423977771535002894897537567885530844812096034624824877760775876875986233650811062918142827557795119675264949517456217778347756673245617443840669933047323837673075320912682416244853708798433349223810702885552102378308791250607350930916094229504976452381657779665362454938062888781572667156798222398418168498232718557498228258210861315922927702722960558710315640146843882545241295074937693699363529548903071125805879930310914861362679042965059125888192710007909727068277053379220589303948895132941951721802884349310486503895406240473735161700985010241526889742325273247951224768462182048807889389306135526860612576111239027715316403738563101434644369768488601604062265643302734802745801535964411302321952185278308065199982495853206571021838105007560885631626134447043229760145097082111580677510909167928898643307762596702826192492753434268981434470730230344417176813649013687493350784250315448614806853629591391424473259657952521147799131720547997400837967247060217329611342449162309513888662421781010701794898659394563632311407130986728291780224115542170053887953994804638847247210896151245517213093334539129534098752793406055662603640540541634688487949725703131820102161028599553170294229605504750143128480823088926366717000861810992768402772342450713913928428913372770356075458689478972031479912684737041072471270299135955446542180406604355217462323462289130215536812378090610640490305092535171612614330157103062744869465988397797126652849067494524439814828280587670067395745351196622073800185779936808601117697535281428543543835845845601135046428461759996461880320572552944141026517204968309249683796777531047517414347775106915032766677249125056750148453748844256233432086528942630659579503691595538636941949402377024783182851855867904567494526316823421301467782306909648069434586742698959940821533126827808390635246935496837600605226535199271350330848142010664727565156336021887114647483888711996187628801164344984236513648561800702075051918030282988393033847788543930155272992073282916943594831838848201068492196332330516811739986415081943085924372176005869840811477329730049131901664383744051562799063135422936080184426075317582645264957265130466522676596604631279397479185839368910500443239481744935997036564789701221306012814160191748695563238970960791183356250706933130734605141266304795054990918170900020589267152183184434932963385021921395612409109032018571253985611989617362238816770395311969857154256058455251888459863056440502192903237469254414779707197713384607537637016775395587941544282452769934997571326616159004566592787376603322673257029115674599806461023606900248364588440360431872852040370098334674404983340275094804362249134450349681813556069849352333602982911862425945445836620341510139052531769626319268302653620270009745796177943125919019550765430089443960887580314301059257345377995742403603541670998405356510493096200256891169704282853353792713224870098407865240990346503901822337669907194763922488104666495590707180250567325773531566262408464571504615403489592049933870606971849727661307810012746697736566280662200500756615006120181483624379990667997859928138594006072282485565381885314090298682008210451319980566379976213069843017993550458400345442937945423524659247931515471082508132248689371195788633338625109179467197320499666550257877055504692618374445743402098714379264300077236961888014093522826854343281669539871033565508964664420724388384781394789454687975231114933183639270716588013777435942988820432725905146549924335374846166665737132226819886449145979433297240364546815294401873457817551168432580756040000263661179382785950594057125517950066753359692246497960514203696666584120383153385499233831530765098004657992365958950287001585684536282320258262921171814016836118787739599197411149940770297878679325436066269347881197653532070339182574549154369917441666124921273030407149363883121298384319164250679829817060390079128965754539172855167882943203910075631756259817670560788406510232625804693765209779202470122177772344684489595198898771884477173269319303639216720993878528065472962439298232146030084972926636503302816000570571337183400943349335515928643714180498420869867949092241239925746999118375223266129785265136980083286420840224626228882992632291653995602250668587125586972205545367458176293297005594407173744276299963807940943069816055804520230950062532956191885544954143935627311811386307634265443523355032464505224331775071717390703499741322565008459794809964348016682784145109109362886394299056854232777843342933930800262552015357975568951843397654662764942333556522068267971711614839272972915568396560804595491776299867648176610329772414482609768597739567687255674439211095138801753091267164711966057736683486986115950840143521012066447079029963159510199750425490408629888053239684475147335476739604184138415427946991176982420749367819831184727283445955953549201172444177094600724425322219328022291330985818622274389586502244968421983080981419746534730505508703651296740118135180167914458983422850346102445871800720554364075992328521358122512487307577786604673206653413550504192997513365709858574434311113602247512460020406521124897032445058964983902912202980713757687018545392690767430803300902033536153541220799413859335895094293100547941040831585219941564654465185658793003040624718604524327889587067464553799921322772830279944140582299219777309286859002287908438912238685265965331717916887752054171733119167869559192211708712396696575086418169594392299057993281691264317387589513384048916296096609568604428042638233309518907396453896667627528096816096686730467547620872936725800593030512048017154983285712750826460055513766272378799692157463415572410619281945885697044076108819203549167795616119873024020578677581349248319379505771749743002460162177784416095877585742379674983026942653179320592280221987716876962487927077127764909846649896886866482859093990025161469045581511897715112863216059936164179075285185133691873713368240523577743742319135026705680919211743984394777476850611052117250776575293757002070331765126541455657583386122327490126171488758270013049238064847337177093569112745329500510170220348806024522719847371511631979791758640233592875389472996050642192825210917440421879637881643261440446729377497338667520715746852841664905169772227932403058883156547527290913002896440123511486064101875144475847037983434460776058732231696083597366139085403571045543555684741410093343085076916887495472400566515487312161890746520161741242476803939145730432190073772743422253152151209404066504241870217196094943279526628237872052708029274314289482434990602393040643503951088628585288213089739681642105802660739345756700234300831147272913929157662977881508424029179528191510648109235160701544501838682211052299748192090604143356695644231782261779093673132878962096128030681989640895627062578841684916810205477632961332335023184826816862930343169755437601153625479189196616846015903100475920279167518352636158486356943664544920142320571334344275941093955245150775953332473466594100419887351115052542278512009437210988087826467652084926269173524394160968767670532804132771331772575258558759294220906683728262079722494566617047044154217439077698978791434002187159212019182618108675687100579817299392530923806810027291679702402141823237054316670892501744562849901818997125081421593652052807350754675501422906375523915154901967070146610222638074054080092183745083535290496461658938783003036547238643924665387074013285299626067698817283786638508207076944906805738314837181928695196247853610127492487858238961192409722301569492922697064212609916262333510050895053465486357489080203757043411625143107028224815902263172054286436766223969646120109029485538409304086356156084319198642690637683232946185696688487912674856431648874279651247121434849756284529371250724140426174000396740239665523972163288226609105831849682490977395332519371338239612088924720806758774654906479960223042075923053993644229315666021141311540572434273079783824318717626973782200352342356499194335862286277337234882787744496466634587384822456646780179306907059286727891400448320183442802652156724496527389192631387283082750374713310846071369050971042779758835789348766484659428062638656094283403670115017641383275058623229958649529818732890875569432610306181680807926247280632227775901440169682503055180646016620201937097167539989598688068896507769357940598183382523292270624724593022874613909747261693910003949253747699888387387391842466463299106267794434415938174213477095924843446909340073954013733645792274822132498934797692459820782897849233868754904779642330386438738366141595664835985070756075243800004771441973317528339343184546827879431248600218396425101560619073615935175129606234844967308373629724127581743116454893523862388203404532483144754803805135965991844135562411610466482047521226228785030639345075234872050491622298231964828768998146351530087046541205531422502223379190728359924289303860561728131946276578375380604667170895285481725407808288692835006820658155911895804119674665380307566917361543008756174054458423339809517976166759617393633248179721974741732535511775649640047886006268991609996569668914725404843089622049406046845281734321362827117572863152357793251293575476846315135533053165704057502049267263099575819543880162322310141022005067462261703927046339553790990901545880150808606000840190976251976821405352243937633968109920176178464476429087786948202974966956137751650137708107076391577629684470577546797041310560736953309392358943183579038236144369355801115228706447268676321803903596692577010595485876748127352557705570219445394619044074321317870059932540354083461237342315957578469794822061033817425548949842301695300238369717467041709310671431081804300570023224247129926910706819229484576352015516107787035049473970086487407098286045315350638440453794072245752910992915573603434721378484007258132998211766468200739497810380589750570752677243572858814572183130076255503116384954234998375802355001771854833853793737105827424600972589134419432312301662493986414137647353933904601609469716910051287024893942935384527365037193718353871548670810198663405208410797172162895144535380938075303389560577547300944330425949709662047948449224051895968362694874487529917038320229933499677245782816778355592282337642470369800216628826258495472725657951351549155957092698759808037875217859753941142444093259980089095463421184976835506581429591152842049310467948338487378547031894949159662608082923967564897375375855874496671507653621002217364488672917021038695974359069690228621453073968754472213960102103197481881076932620712248366591010849852715622588496972296567533743790930949050084954780281364788562873071147602882764191652971309424723444801656904664219245851412092124273256916711444937566141602869179231906758290400629407276105449854723837347760817117755972592469275681825573209188332956863578855618281758792585104807340561385144050612955890776647925771907232991509448586023560391006693881783989218959392773521160063977526433476113158136007985097468341801675700569003320143039704295459814775737974667300135685750361093110643634065391965648540122514343106911856825268269772587836906546727353376923230404964606885228324511131134602509677186307672229326947215073403969956769191280092516101152094006882890439805310964518253362186149680709812392638959085086700109337287213767834986869226841656025396104469046998450616731488337684191695092594521712854717525466877776755400317446050739391904991678040304417190291840979026229626230329481701516147551775098344805961961699607339044461978435849886532851371833828126578831088258161283552819247601809734605636648131192680619640544899121138069888708229302963793247024332831528747217193897834926768279587999676639079746804190333674914497250059893410823007659444457770334374217672981192152337676133288498971157882457072618919875549448563079849164496554290122787515927516049526413317422028545491395929132028329455259886824911346307970108983201131077568836229517549600371351716069294493488821063894715822710504958490649846744909461577469413462887939740542080292872011774706741495569379796385552825233329945513571296879725758933123271715610970718160979968085956735442612586288615758893678129108438766925561025606526801888149005977437926540551854584905061396936058311782155740219307389467078697287236639292609620863300995128835406869459219500930539922881109504206166475767268525545367408361236577621270627588778146019989943152318725829843310782218243185889510812151783926400103028836481559595368465707631736655616623177272239103329147203772767761721467496186525675623709931199050672128749293064852049059635305245302011591210726902586176856027590485674837640052085738093404772555408020886663013151829616229431376573047521134183128882438910619254503061266871989989268786631440911657126516959923947161303835119629983693732895744441441015975963538168509719416462531513615447629261708949765138464644001520751218863523769520617046744504676702393117844343737877958821394911223301120357928838788463735524339008897756479911755882395671208272312378256925170996741233684174815883523668597998177899098650246907612228879627753516472039975181898930495805921479470478796400301473882016919134103174893792217804682612059289646866216512608979630945538125168128083388694184131932948818748960960992319474131456135089966267264142957776468042869084488106245264499294037363353388655354944828038616243008861361663989780883527837186167968536424659696278243489219379125519334513506376544498387186195008362473322599633946002785700559578873228062414351360425497658786144101730358402689283928576124596280948111154146155351956263013976538979056910238945843579926881065094892719881062416081512662787397024707892642519759010391431288421275091012944050432108671038819986702133372157287327454524260149915029810163218601095826357552432015216575981753131471369928769327378388056154634036585615932398943338738271227360176797318500723125735298748732373595732701423588415608568633479369906822000953051962171829540946528330425572813225003102034756528564037266245968197615267191309863633670027655952277223915425646855155658293020996229052839095552551817871883596383125608448366418101488282190321179224405211733346131017115775382694055092110834313156779425201880017706307992508306491715403177170208082276632951117453693949456867413628305509188006592858201135676444469083470393176566264722628443506076274293284273986559714928540525389947765922586940380175395364914519330116549864218900212634287085831006321128287519858854523370221518222288639622812118592963031387922931944683543302462580657576629027535233819492196212806889904364900312172921700854299177167021962128022778558148531848236343590313259375884221524406037428547349393552607959077014686820580886677394465621367047148962614822449151272534477412558381888485085417006196174363263247103582191550141560504366978438266789729669275712177538961062445212706817681799802539513600826272105719164525933277324256857944914816812646186108810403594976931458239129125559628232785940213314555364024464194681376720843987166673473130206737827487793947442705254492804645543524659634521193517327176412649845026576800225700154229867889722391251755000317830023217905832812261743857572248990810182346565469608621553192776814332255108271123683114493860625200109957219402893780547495473972843922917186308492264137199169925440625267787374891138647305583008903016742710757331337644525689361277175176022428133716395960428162678818135787953644697443232842878158318953335247218823467990411726626305603489610528419559442205857986550971013337609921980436611268750618666379790358149754480108954316219086215101176556894229431390608380352105635240145663409937303094065361870182265480198798257664447932528614738660043528731676623254792005761195153379706833243713159726754936220012569892742680264624027731714203454706358323966292658748602740699853681912878141441788248805804738610661532082363903896523757549838533986258390201232975823616616618565100441281301094803132094870876200315002270559684356029605529833965023761945256028643118913880367673415113080342423003522413578019499409942629955273205963514259999201245548936251205375907867459911737844657161334121561187104847483474501571910179293321640491450601248127997371088163122494668230733000682840735567731813682767170201019757447563026683474977718090181627539318262192456640130332105046020862841033072531854714936430050861939100459208238866675623830765340167068693744439328454029276181601681407339895168042168259493964292363806148611957235146578875585372196603673072854349430063672651623798245483214783129991566367120849833600785183552042548905822319296980289743786951297064956361302131442868445905345482358780079146442835015534579192954065466772630048771991756696225609595197020625470512473001158632565227170024985184616794205972046412291682557582459148132566378817445535256091559668881658040279925848461846916630987951416760633865950488453652598739572205772785805801032688420051468105046445462865716922144035162383022106776472314537721795597289877192043779690013541431073215955232457181916128953870031998084629969871942288288980853926635649787028460502119872794077468569767877207242137274553161835583940669395840029137406625193013594044546197692050743985769992371283400109738352400465264160816421981908883886546605674844553790213492192359089930563301960816200770457026214398580675785268876757609554054027905509820391896348761933314356126991447388897723525530717825170062134513051508628597835542000086505604528899610568257269980364673497003296477079031207467059549044825126170163305340959819386561490916452374446606761053808823944184967364408623059759833253282739471116999355083570864231273185092122918409552456583311797489050079375991087289807788678148920329513245233819314192574074851198334234503315896056755402228670563038843269093805535142328308258646624880514632347875636962180795425361891363464046423271558113433374205100628603371631242872411639916397775690464806459553874088962362427252575598311026034738466879515925296656969058537971667051983915624065074781616289251811137876994417812995917058795983093896933817226003581116720245483147624152405998606014845844907185580506038513307462376345288370732201067119750560145807367152856255616871861889172173114621324253223161797352788547462914031524798237773939573380716217607605003827943688724684785445537344126661457285265240784988642803710531255661153527954004157885989947727189429304786107929656039987816080607730437051551416876719458687274316910967537477940832939073384045029140201420510992745929563394027495093391598004637049300461959185363205160822660624624772105262582570452247345998209737925018144896750189147818793474053564747239244276714996481707046852508838865782784664144922849688120328613179774725130138384704435492603249056425498468102481433641636875940638915790862569986957613483250998182350052006125626156214997902752637065223119817261014726928179517301325723488085920533471025823803354181900226128682789493651605447414634846287176930840439319580041225399867532974041093951918859366055126102612690286236261542448074979029558560960790754337671465545036789125073481648120769011788559232911544963615873373933545260016517642251288317883077956637417269844681906329222525333632425566659418232387481331602048022853681728063313630457151969070218093006075107360268308553612729983386359519058965811088775485369604975412589675860576880831814453424756418001532069473828654936750180268710273146101043214524857218334958170041407173792553469746897038216463263453581979028437282912582695046942027556778159604557983982148603166316482644093203934173111389727436708580671844827954011958761281437430557859583068210924240982563035663456407234218292010367765771411755547858401308201958625256358794832646604390123080927247676058001095174935764576881465144262112915955517650453041960909498517122112117531265261873334525584362673938860518724379413311777468051933465338720671175393338484272157836162571320004665174307506987277719190128603847296488355912065684791340847600197707481502397294933554992084374818023334149815070481505638145563970234652067629639056712059417058885487950679183942948405354711857597405387228796988669229910608562521216126336277160583922932420816615472169676524265391984721764687823222881163862095920620759407030598562648585029993226740293252065224161736751832751634956841635306292995197700670500888228167679492468087917463281009118095095068753703344924844320716956376243189969544196475905303100100542375725265418734295295483005327324634276465736700110247474695874206759833473986920325704208776452330591171864628919812521511439406708495067473386744282137129888836306615770706399385163134628167051182625128930101679477523782813725090414651734334141857758481633608531935606805958857510292364819029204341428178998013839751130288978728516635475105677920224553529835515042547278685573754363312286068190583218192000528070678507320698465053599411208877698601282216115938508337480512543756497100415245036147229430885339331594225443779759850682502561100645683118517975050443091489882106519906274883255142892106874821325860775125409186259775550781814801515997948178360725950066501094089492023031148702842815434154267569447332134288424587192130600948406238564591074873310010962330986596238342795212634441990826705999928522589137820381662849218552522833865567231020195486960248485845179024557612696078980557584271989735619562008932255685502940973666149388275712488248699074066455851218531503725249672842975644827678187130805720304449134123173751753484387125477011550979003331014112079346214408373518991496159926241856488947906174726053108777489064670294704858090668750110691773279731160774731458161228352553679120833963267611321675719504163254475311183405433638843924218387061349976948826321102136407914009123920520012759243952580029351670307233741964474653789540862398909723937245562246098968517534832078862879650125950576165746631255870483366252764807228286035729956768553826375059643854104585491738723208911556310388274152605569151919861549001907539098147667725206177897596637573450554461755885913326343224903924283869991500775841474744457194241149442305008407772872685526213671242132978521594799580241883973928519011775838928441920339278432774568078977491894796885480066191772601736267575365589475560814163647335282251271874407949690780188710949931686318260437352739073718706443271172984839112026073819327139783649075986812267715615147002929589394502515565172282391437080196848229892531444855853374974976817647477520776509713334872315623011552404873663454412591518591677818342058364168032088337560612493654181341108483042396983559284370751612125078653953873835341824905167451243658979351084302523160066566974968627384716628364104945319666317504194384909787448847321743990109138953361981565651609352582610330388280064506496285428613718553380895583853813147586325137174278739086961942472559778251888019965589937691612829655291788533284951092547488213793835951875842444757042434963549343878365432297565659687526580002408962850433292689414723493420842929939903219835421078788964953446548173652097735661976114836924277920098394434055145634928912630108791658131882907174453577859920891678265827782223558583051191434358991988479942764925717730002024798089897761872354790106888825845414063417579246088653914300166254304430151064509512385832753092139187301189095707301684107676160937656189145852712399870658178702867079126651128279711236775859237118284615578803591235361089043074223223840616962554446077693592326896557315363034448487286227358445005512501413308223425091065696263304057988784455640025791014344761055442667717037039868559469463114941819064779894295904818195557762264461160151887984650842693133439027014742432216474829274585974325061800572644711007937180340259931429306794815682950169193994993512944710005928047596947591383010665927734449056131027087518323719942424164361891981104449225907331169100473328888972862153910621420460785366510594346736884388397211920954982413839235783743208036681284649679655360512340992726795767179463837441156720826082915201831481278820686291701075092730013906402267134823835488791090497968479561029951019843642376450885854334607934928577139416438976492804606219318042642593845563838082844313990889795748870716125031962360158568846250538772418102548575783366538633565821128433816414181419374515217457154699308009679504871017457171953331878568800971438858470612619338897412123758286129221116930583999172144357375726490454492888508883477589029181293451430221864193727896820098760806642477006866319585074982820326499135006941054577606238688249892409617994871008605632829169155268880497081328631205786573425639562931295366668403708051296490149940606438046505651309419297407898568185726319302413066728317592373966923545183997631047013084211834020782161090444946944040426156074481238661501707246306904403672559237938460993742060574176679802501950051197296954218877848825179290420692464563027669986578442588249611072262128836956024546866535932091769668240055279720811788384259282836738055417366060811247358049710865677661006885895463945063813869016269893993841320127811525083223864475645994271939233618181049499746038141899593174662280892540614253057272907618361902001983033891301864119791453212201614883748789122339870697076847488666345625742802778307457114236075185628182730413979669483990208581686766855660911605051951268463839394070679390972055157532903074130552373326015047180298288501543525509626085772590963290376924821709763175170961090848740886051021880279941987261444012192036282321562131995807963407095508908734939903966852983193754625564286386455970947334502705605862544030403264014562892171427238215565449992298496467861495420485502062978265282897588287979677503173007113988866904290772959225183203491967410082577808360411710257652275358394384876312194078510653180302323340055756326311307653750442331915210108125433427868835376013580863030194587277439434402052382175478601530251309870829547298817396022529867623417521946006665922365474357086780072616420537168616012405035224382923952630910275576115595222367229861147442542230349993273312809951285846400765199157227390681456259278321361979366966903430174037507626828718629684779374469322100259634631514180627773933831001449177239168887708952376327122552632825081403110016175081150368679200052676304193962441142595782353606968671743984201526778306325370257217186920580022662098530257418218554122638389641231223444426650064363968806249748106297690405753846605856080499618232000819606989853542024252752465124488767320768615381054864767891069264666572044104949155640490258590870183331790850811696997719872655848896819757563498792808855063339253368288323526865491082293405255605897666469382865392752254073888607886410161424372263947269706257493518069897587537873344102908333319558192039629418218184571741902422036314673817828139311560157212687195312434552223034706404732086920317398281373046181497528511479755750071156745199096744072731268446803101919252509818588426942534576094536297509127762644432724650144947183128122239304568448071693635408092246475765643814855000277438531727093053684677305652890861668527142557729899949954650648164190318399076557689867714180245589717276382520379415908048638852743065351559804708857188416160056316821620371480702266356174198381630349218505357447067527855859757102184791592726874827628071445314930535146105877003824335556573611607077524653319141140433721534990043867252868102871939576003725974933235396917789467691318826339592840759565700409466325664724407129377542951202903586676643193378294937144867881497253174281498775184158001912686836883934673444851463999355800402920751621773035629590765282631791425531790449772048485949614787538790366348635774764385316587562320887150342782982057915037347744129850992457165054553017286225611032790158803859209945218018880701527566197668324683277799711828766801146678496048832828504963612489979140605067271051737431971338123319159462494787740415379873057281896830649494447186138572759451552966229888086529877236141928810086013216618533043037457759166676693370964171194380247430174268630202388585677889782032514259583444243343397221746173135129991186439061333544257484945880091339324103706969093245468564239384142310989442067986352762260682287063324278943513046676633009081332142273866998748726128145803999457707134062787490469694700812268615370966184215594251225138551298713272959567916503643893688730445614560894996356464231248529772389598461664284967285275523043515079212770503486401141607272744997764901366646485649773629617109555438620271600787989760356534870973677859741698750542181658880705729834084558210058946827822140653928730422812117968844330540512574524886666113806526116577098373208481850269665283548761258771314644252132402133719051619409022934002684140632396345036455537022305678252056603800989562728487808937781492136766953850449281212243748819596152071496588704309240288352790018895953052075609619851899026363150512335493339230262032621949463468402732154620881626783728800270021439232231383537304550502785479833329235793411842945689383914530287312504163377412723133826962921167851774354965474765245221935704903285943446021633893650981099093515056326844467909103174972776517443975311587504203238210934691265025745841723524532195179740034342617844924308375567926647321630001666913704690121240637454407417019772576351759877198690850312589959123230712113575765901287955841716813699089171797725542738873845500672268245689884399385059107538078004642734721595081596089728110038856565359942477996215970620512322873660138144962961072358468493961411409787506843027250661956059053085342649380521616113007597071599094654394983397326358259887548343465759350865503064551998698133070669014131619835523034605683363441279564759502844738348139023304043883888169896154786432897088946531549276123876258595296335144924441652174230941652479600135251596060558116696460289504979994224283843042180003270750314311483095475085582057432083234909689994164593681928594882211574521127437147016426120344969782726262815613349229441113531611872061631530907948767572479604838933113403814419715373400681513649201219803231231554212308493184261921725064126689882677364040073252253845067361066413475115166221213151139940184855629069741875180381119748593188385223315735182729109886432623905307148569702063847771054403801747400040375723594676324229603002523842164549728545359338306193975084860643954801983224290772954941980070468951027015496700127759052805855453483518176329041275790434453682163553942769855996901821671455237863186094844932294309568825094585940718323513520943958422307190987261930104079600476583589975000739539944974197669405127822147611662208511644203263218523748377299676291031270407394224989664164923091395971865121999804911312621906572511414124494141496766136822428619966242439491207850996847623546258982165426393636807913526358702508293404808659124101656612205160809245803772892828654719995268047990211975552916137211616893928426772726280937319205994235515944588450557085880359356359993437037364778128675412362997818512807372979190312248092981829733141105748947400072117030030761389112067416495988439850448397826603909864343215965647297180980438772320619625210563036565282054245117097844103376672814252886611999120505915383873229707477612107214061158829455245150472510165081933018470583653038932865219863190430489264948467524723723786793054354818482422385187176106681017358718113112711456243415095190126892736088289362439250421403339948321352141984729865769237389692830872980200795693775130509365213307449256985516647823023667851412345759815597555027354761534032430640360250204079212418109407649042754096952134865878563710448996650812064448591087138717288889872790734009900322593194534571614665752041598251112935061892085744004184231329725445494718555902642007496244788558579384374454993376325017729071349340196956979609858084292806373446398167687409757530944318165558967569152977805643202429978806521908927590093913608503446481696853503126166728853524885707856441901784437560441075685340261336627278719245918386698823843789418310287989570647184444473008350593664619684436829893645284759014330093009332539946234832339196588167139304132800067316770610055744203889010842076249760244636491060239678421074220434167046942524956519891413286945507616332558519761937632955131419470067944085209545352104451339171006339640118404546969506383261030002168804404083221760031587827231202835415796433025632381232259736209403346335701968086789863870515650398559504795384482893997753034472958733280668587246287900498778082042307119591623948047473492900633859458067527603436163708661932397204466425063049773583424943391857780378088205770775312587892161475805915357251620780248801712334488021502893164605662501765052501778061926153256658763329416737843761485196837983624116417554221350624057944562944082655181981231261926493330469966678682584012325044217398032236377629914391675203686395433289696984707570172705004422991632938574533472806438866857970787464121319785254623272224800632959593995116671168822457174946150791283557658609851830494645607662360396584253284145582994427582922575238941643239875624428503941951293014417943937931034031278967849580809778411423562593599340621273428865151582404134147271133338763221638401689980230011221475018367806200057605158178233631556427697660105482754443251111180186741441242898972084958147607496390122437525624068470173221893144513843892452394232539491143766789927219539238713865654191685891460536156320253110057782797750805577164075815686872466458679298911077060294469960828599323535583779334555652755557452035276437855921828949053572881190229551624400342691514468609774925662723145892264556663493977222355651659153181620689945102919818239270578017243449204879552404376964425030552326137393686174076415017582890199772607881547850609671164833068860916125414933670990272877098338961649208996839090660577406256357736694108125497365723274014366378653825181144262591659789670336022118145257346472675560127248054841646006157747810676289705146082807044491119663766957781713570373646750246161374822747438492240201707429455250465924144975101172872845937676251630206213507002029294661018331460047904489176858123092597571920429231948226956775718031151492907442308720273069284915069706998960090088599678006175225995416639977867985049202131688729584398250941867683032026348766264707315839865956010394818901893797895188361395998974267962879575676747754512544663855982760215522804729132779418586445057751306148872497330198135308578589317700112602239555755078074229787384350405165840785121074594434239092615861806177371162130157154118468109670171230858736346759195411467004742004223263475285411369873717996648355332688766656116448486998357677172736627192987210673041510503146535816292942251246150479090301644812723889974784360147696663827976537526171509816678972845394433241330050413293457149150082065287016138697034291744900386083929508584287498510819600455738017336102950750008320074627302628158038494308214899287892756019031697074713795212866850705890043258523071759270975649900203575596981654075824940570914065985638740945250315782654998002098124247755698051414056353845438033959320352726872222171783141560983186157834027979992634644144443958813964546432893674772576780599965145328431278809924426607252420127583249129270536201455294793697065775028346058471255129034113795591791211284075507570627865609847116018116115967195727145086606573716113686476829276782817370700509021403864163215976669029411415681612722944938524714528941487986097662958162701889567585502473568715445346013692091692660885136412575317630455134927479102175798419060900359467061039717053820558472693501510063566772735912644600626685711099018075907655767840882219664183798659231729081925718838887496653644958960102707286099792233566392073605019505681958703169522662758323756436279751244089704274594327723463958172693780622753635162640580772310824315092040534709618810743806951630600868105443204537477290347300884413879274760108928266768600533795380703378127789237895235453097072667045669721455568262677931133001987262311961880730637908003003477396186164633164809822871559265074009447629642803593393454444812883424139770977355936789983362737196208752269805585833205469460759674582044299218546160964553553563468332297602112339272667076143789355765096833259306054230314150516850268143548763359350763610483106277250730191568371932559158051701591488192860861872324542890209978067646273830132758864378812545060356558612336678696485573158699255462950453319539673784720473926118530384385793165941877649606801168510121937153737871862881411168725498010083223373908311871820216332150042187347488597676241048699663387696394777043418746174512000267598260347450562768687213363317644838688074894994472489496142098498850252511421205358203846601390276854855950979584588799666575585242208199641840415299415137781031176263158147517145700031049106839192866897359048337577776132957548235294043400891801312850745469276494580978963732972437950006830723190141915635170841774448423868147335500830257339389731146684676749975153800982881885907646129496961765197631984392495291368459000041479400326203674835703558007513227485307120391493643759414161706465103813697705553712735059113342571921984184001465429457900555371125954276486681846205685561997839329734407931190720408109875469839926228479070939248096754665612599102562296087909746678159952425535564491701332855538687743367464477407584149887954614659999283778056550419823832606497606152941847529720745659914996430339303899687520738611577034495709434461919808421565730524771908538014254790281359657285773978460315322199059343444964443673464102986368449988823937089897277300866566456071499715072002349238260232581142184613316888097992447278801113862672256964394204915042850104338181180148665389824913691892651594460309151822841629340535403461353522332674682466948182932443488192642729729760681874816642884384664916588938186892973491141107506855651035912020734803334470878116038440141963249395509250879402161105166993927740703976539918859231180204860351053699934178097959794833959125003953674158557196144267320704861235967165183707950592531873993832399545988546351703485127054122414877208351356858281227061786822466143327729410935235468263681058470906202924034332392961260185590497042028842395941618293928808594673750223466471193042077587367030249297215778372245534500874061187595037404113079755182839266975733180697464605663107089073765187263102619440986606233042999652380870273263828191105940741555883014384216341342794438327579730609723882356419175270231435444454326882313258051121782743022253028802759609567767798386751027529568033312610581294632763694757397561935902026094785365825500163623066606557889842265382683053483652945882859222457744241751564217423998459837574851721298898441216004184160040622936449987048037920941232212622045212551205879982336032217524503593010543267311408827287154743722926737235929272865668793289095760332483955919373888523837026550326500227494533454281852392956321421321086608242218841942738552235025841832856644751452236194230241373312396402897857665609335559110478090438038563331927485243583509817780915293522784526762587396207383209445354553445524065651186878335874615348163862300948775327683912368076075750493762771247549360069144255162897025891146515521390510644126731687495890781645063090653344864537903457248691075622975323173218579397066067915794143673438958622973919625750995337375743597977313561302033811733644366077745997604365617669120434732462138466270412834991897933366509809824109894419555952607187503377696649586724104070369342066099742448221443528450667841104134175490267830435621685275563220285745466325934902548350749599531154024833303693250132394027674573005122386560432356499728593003628241346986441197983979184741980830926802871097693526644039954869764243456444297109995816211043858216788914067901515999383932659200255668516064406029779173870081584909146440085264863917700123595087302906054839657951000585566134037673060242317860319939622966186243867207874551459287619581006922679973322156327992779891866430018331291703342050504537956568750556545112849347259542879215855379846191396112832577749638124533862261198305278547352770459125526837850291671770908023083553213710516004290146527387832100303569237421005306983556418637107473599229193338757799923392387619119301475093694430732969487089538860367718701735104309939575582119706217479615632158844520426276485709793407889641624619157101031401651415397445939686677849589045509656642814166870329250944947439914448794574750521740001693756767169236872283265373704656231128529513188615661165108749407156227275775104432669181839932766022358207117074078820173334957802180533849385097675726432043031900364009917892790422543809040625312797663601865778487723077069559722721337096055988278114087973680593272446994658422592280886689507215350191851235511603007722568017747723406680191894210290714160903890917455125046127295827598896871461073066460100344453336261368347345002857716944063204306163958276166677454625858658871381855752796408526629290486402411298655853134448707901465385440174879834533996884768351709430825165803427308154990949922681177409353540762969776661156642481584788644436018141916676586251327389727473036893503393446058150629657224377093565891085008122042487992512709009246147698488059594139233055113198692690447701241070847646997839698716465142163780434454268807047587017107101295239895860831237704368522670584212458109059479209355086791445384362149881697961800400510438731721626109176363244384650073142166769338826346613609545760724232746082747430147793760816842634891743053283400336132403231597445199001196775384563412820603134754331994365868617262971423740471231396794470751244441113916510605632378543323757266572512338406247252154416754520006263461813652977016796148535214385391510484150749214147336536018054915357246161889668092506919404749613205772814154728789886072544254257006915579550366211610616026141922184916887372326312395826690517103221450268605941393256776030834230925679429923527790589907728773803777953842719473903307788646579416846893498546508290049469663938228237962192686365370789140156556751640936952707258283717032583558506303879303849624003957370302064457695577194459211169757825540459786802868561198879148739236605179681998195761546977417868659328532040597510119148724536274431315523423435010742766913818758841518713549578698600786343763465244265877217578830483779657326378579628982951979500821630306459522841239615429420223819035428926724784577788947610675087679935342517190382173405051333140752514500534284722759344717922589260171373704733119285994975676822241217973018386380778355899864494855742551791668703356103847759095760760173202531910433273914950098601353375058443697627369233642490528496123602161120140130504646761362871523029774724744999127894508131989803751377077959790521169975296002802728707779959341114823206346357302931111407335497981192120493908452988531470267819674177878226664464583956846577726290860532106747831787020199046438205429386920339018833525776372601485652538458622259414811374046980455111384759168816087398691664104841118438597459566268882266308402567656701535761971783303087152664255348001596928377562134097211367433874958702789417170559237917336371415167868932066438014586877656793486044055097934505094710562581760655606897017761916857733416185170335779007500688245070128049372334701901545065127282398620244637930045154244344806615560782695692922924095206606564663500438898575796510731236503306585015541152944457434425063037469212100512965891047872349717291153594831872851622549168166945231466937517303378163285974986416409577272494745840796989898131867731422067121081677349911703710364342929433305663802785534903438195381058314245075946532721803671363211680080261046742891857489301386454599629947795070372208977835862924704404681559727870130520808096634205928661750540997313501581228131749084136447663773665231930732985493231179247928419721375268642731863790022374743043742514327438140455909601302369822912333404427801800003183019783980456772101653084575559073678048159306096466668331968280146455588413359907899401416949107725382720553845684208040176537164557389434343978363671104316653225925484027661640216956916204462682158551140332896606374119023317199016317466870311973724255532380480100360547509988688974634948281186083921438759758262425767236384392890858533492110316603198451473520279862289911889327970319272965661376908630422592462845159734408482918937516293648779115223855936630594162398156154773030587157274723500013314336148719039850662414032234862494681296026723572592062211722737407682683136410870090910960382490244710551508956504165266081921445928714286930152537716858544111423626488535841595896811226005169691251185012189126354545880850780706087268429043089487232293438075679537874008869821145595348464622387753857230666083383158759042584471467054547073967309303058469475016990598863357532428586493135895233699406727930582137423150871896144919834491894356988086130850631396845855009047823011431887398549132351714416608609353426012923201670517099016796786568956325985718270895564423095109648772382545626451155589332747755307912079393474188069855191613272383353456141700525294546039638430745643932357606066603344692125948962465566636948656511762921615627532851085855207861881138146812682339336935153577046777032832903725754467507784532798065877500385566357927503378424255906434225813565852261620326673896653950891563505496042749036888972349708133481878130173668202522473863025123148943077178286284660792978161709353163660008795627620804869869968273029443945406304055884172048400146804209515047913146737440017173369142002864910076686314084943464921482741916222012553219752299793727229966856310305210866744483985772966097356653782178607962972334542182884900829215836541024765861172267762356825598460839303709571555243109399430983949349865917320574795272998747718516365263191551765705594363794188073279926057197545495472730765553888090435521734938041475502679783822887230689600141907047642298828403615175577602072343060559478199743492669811175860584485581618252885203373084151981578630528811478895852392574145324059991053001098893846222115979814004245628309930606940405156369541501763559994350088856112522535557366137035716643018547766518081241466090742170265864557953599839338030524576219553789267356698363481050470385510284780346690709442910076474538288913309040923407361752515201591948470420537075019426888018151841595560208849276638126679342627830750231680794380593172536315173791058303054695334495812052530390180398256244617662461941658894471444802752375749013749545757832549305927639618923395780880752351093355163844013219241454750149583474086519542757938244658457227092084405628091599186087113291693553920941118330046112532758773632703348721782179911484880147956902681095451676907558666597421699844544846254740233770964153092862818214445595741297487805821981387863037190585679557145617258050904451991135579730232822762306826081520679779993559577240141100718750299757900688942208079987241729141887151517943806386645327681321104637927341813243245377970801738733363515786142195412517146648285079477043457438933336987517675725213711337041297900400893213151591155112181420672163973854972009382599193868815920319182393667218000246985239807854373738887508953821907705610931067381679728403107603473044202087479105266398623095857016102360312863115561519385093609281608277561122223959055655159235271373917559863395201348275901622067264983078829587627527711890784359007562688357137522938550950557657772506166596130965582539350136355232557417514335131805088302271827786352107474530825430877388407058673605639401525489889676967681198100344948169160998863704837588025018493235629910763900851784166975661932936506292593770925742093404187430917938953461562166376279006737104592202668803768626726472476312063674715463949272426380336985588385563424216121972061399660445161176019254540080816238452173311255879805100204146317261266545915546111192308362593570752062764476030106237281141281487440871454316829650254308057413545916287154032891393439258159383338230123802723281722032864135231859254428734304541651446267038729001654916373596053320564375103236033282781126984632675250571760661422516010698308345070327637134050478413236238754364450852750639407233187644548673954528845593161731355043099755519294573426226443457175755533854119633578096086091218955213065267966647366491363769172618791905862803863512771320676063985703282975474539987387497879818472610309841025318817484578072887680476012774683387463416751058036717159571721953027844697284923513839026459116868519369044782718792162559381126650189665454563800835037109063922160824997870427983486813390895165825892494352023735668378474861988796210312824569122636976026983329200845841984701198544340271038995395395937398327185515614384388042852091202985598261098602771892003241004808503568333279576254952923589185856845252438207311170977138317167917629020654475506464574593507062255269759944982203056315288576835593511180485043302761708820262274710212265389447682164929478598329006196048546702150882910043471399911488292847125114966103525421026505856416379890539734910623712977990940397595058495464911862798395249727688944609911078973398877888334511893267455577034954396730156280847672238668953409145304167843719650221944434994379200487775943613597616323628470961099341380798174099950692339771652651291692269416021680909424228571305498868978631674572110103751299100947793762667590554873269705019695939855538509914542964968340601716023238443088682448586117738646517419221189753247162645835277857093604183313596815379452039636055619025882386463770180770966565560327095912413589382753639883109369651533066784093832367893389448741264508520252677507457041487961459119462683902757180076417312127377430103279157399330068043714736867488061982051815125682878300393088424756948461490957516461197908193299535104611569290280841184767938898625923598374398657633716850875458369277309902870672744119241463883070414329887497836450046100054640998130366889289966184699824686550820235454400057596528874434040527400784846250941968694552846367743257407595992174572328436831922785756878432594065463174056339233140905990841383627454813423185978320591335647284476574206912920651890415650527515834144814604342942612688742005433673728586004298275014971448946834490970208750054197232751828193903031795510407522793954289571963577299455020489497031763466020581007398947325764005013606874605623801793686396598848808545316647522509156394405388929360391449178176580468292697065989506116412786179715294353141050424971490597214629599634286074756039685683779742071101964589097155366567242874151902796320885813903569055573495144837151931536566207094624919921013175242867664563165295879515963501943455758699207576028914305316618650156077566353939353443203241700367771603272455593985227225632367427799380093294140889363359080311379331672511033264267040216290092453571859791762885602581735610427953451897076231403876288102919335908105555807330963339545330821542807459481617816412921667910614046822681159503114269394706600944459396428619824851073789446291566537133295591312748050110877067173369501497229086068824725617518190797481722654202466080657243824945758551883198952611510155812693060387364144895359944264263859464969520187665589532762062211079851798073797952108051243265102846882467902636793723927958360121576999079860223504899889968079835398704264259569386251026576155941718440805841927823124600733536623911565837015354782606268637093103066686797117216921455512374275549158539024896074907682387452405568692922748619874964018993505529465319285830537462390843463970088715388007479689480561969193999580391183271754116487467364652886183160368864354020296177971607128145938856332459932839435003174011680168114811520530877866704870913686119509255561919400611115000524245177947980688885811843800355482864571387213754600498802970809866408914561588774600422821687731291800348093970971575617342398617351476828997874242485796904003023920269743220062282514312623002654691441323532876070203408065519967003821402825135916515018369834203622313022869692330825834051070158533276907904704883839325418323528332276110135910227358864757137481342124060518071572661110889158989810125925942948191289815151915478344999905929112197324485199461449809488300097262663167203828999097194359090086914022519005224319025972981346498091899119353911985622124540215654366490336538952446031605150189209240554700501932820031750863920856465808506193062893368727541122259874949713925404034364030753395654852231962533226772584920219409326648398632927680513362993642819799165472706756313400439838560955790105119025870115319536969792644074467589491031099414958146549780473526953845348146261501463571581482288825173383352315283178565802220130048778543498378142578499400681466037458966943771334902630062044099033148577500655957966224354573815839258768826309153287283409555700547782383948945339297793077788188130097088813467266340946600144610991104160405945366898449605269513487278287014345831902530202927808485628762234863365055247943786574097591024279696854097616067787672066612697158930144852277594220088681632115677405985074236903868228286537110256637711452813291161635005555357372058172631803866928058795471936322514400181996001187013789206434453237538646568644247775948286847388893833444633397063727658465798655916058469467856243091411140980472307524587626203850421199545348264957477852376131339025892017462486695861523572734014797230519834427983122977316288899131259705884169446957478126923991828439917827575433901402630344128304588782945210531331230647501303143030396181673533771687406339355050409062057739271232421675849123869654097212908529387977597011954249920203011100168127515617023276025068351514464789359891624953642415906397084478351174882953152709785053138976381260009917019619264558806406222391552694764527035655588334815681903275269061598243070817953671064760912623764614725078891040042079944425766405561145161015456232139915659068851287855347376510296869171274665991823572027981285341424742441120911783816223672377619313117664094475342451339018366576347150945577077937489567331473800559404712872327674725673959270041541397221273247875625774721831381132475461238865873433443392120864304650701832612868773901920917744852101937998800210102897248054733126805835182010369893773713149058509002815761462146027856069926964108297620280121528438426476587827421312406727741018239117841533037903040692833297367960317902831898628757287287079509118988796190141388783752626098555394635844246654491107020334637974918098694985960972810248603427908187410357911216612345681534254867070942061474369496478759401441976018599823229310602797989058679584769966457800211913830918796603400277876112561927080133787948417037717927688492162657382248977695433594860498320546734744143202946784297514249483400479730381935953270788737803885672402394932437966629624532827557168217724127453856253094876440922893690502713904116390540292585099942909977093827295519438562275581911208210295023458859185690085586016654683304349838629204935856691622553125535781897908966292243542347509997514392216936753813556738850954582120180853964999634679663033500383142155424554687241838999997253211455573900024904345841470216352166590220467900115283457858757842475544108465717469511443083115824113659923321208225809496710483647178017409948463738865426410671527716396915422180402431456313238334913374018438701326122686236122352319109635737136940681326006826857366865503031007548580046348560603135996222983716217374470013249488390185753755939284012369772847860149310981338573941830957363637998037712747415376277015171315746291793880827193629203395415712990270278532698200148376342984884659470812691006528979291504979212104287799414382129249842971671337803494615559904290195599614437848000374014422086596017757390934345295524463847227623741850781038984887249455767146733452297926131767036212645796287820655632665749797626666547741842641698472242707266668458043884132193220939377997008061142367206254970496449014365466265283277416469470599946546440631210260131055878501700514937831250866040312213822319908580403465577494411108104652315467532990177760930586258142692044562603273758566745210165421027613470860789298659129377056944209003375214902287955736796098737582464674389682190691201336144761855507046710369686624153215798197058765752150102105046904632831974288795500919091904189697900267670155490260608025318568591480135626167453360112522089451853214755204452817757889987845730669502943828659401576193204573441955909274376297449783043638308934200153187501113644726953482280205536902043138590308700073335173056944282523293576425907052662896756645706019418454619253677243730439527358285267228850745006515633430798061815398590321031969804240037718920232648948162469319752152125968126657241508086407045806862004914043656621759014554056128042333665280454951141372432854604309891132591191489473478856705894858411997719775835806538399407269467673096100882141003700550971790098943870501223740616054445300472507194579616785477272015253232407372580510668761391518135037363577528691406612817265402928120024397785674301589963883285055187513951505521423591950959672009907803019321932837383300805216718180106016411492897921594573284909209647768760520939954115911741929137425070600932759124274170933893224040382220579740036390006605057985995716316682505587697388100159917779216792330463287421192649730097813131265745813391626428913587760211895848070301698395116074831907256998725450905110430476970246418505704916485718600799890849887836092532956585498224102426476980865557284682460898467918631116252902917114588914233454618863934671857408478880399558387933372612364136031361083852465610657425947316719492453323915827895849373981631263659573150680591489570084948382419355732808047632600875671216551097627122422851296451252900656190235511116566676900937694310291364271216859637760052384847543575977409079648986465550919060601595129654575661788131658322143479831768769253343666926561879090785331548730676736307794664277984122581207354514858215832283886616630668254339024441545296982396109414309071129020455629558821149722397086858586626503307199333629230535748168733125315607399034792251080404829636206347863585657613151623562070785469314028821519501735931153094902673336932797151035190977472564323766057884568274498888040919201972046317303302463027969427906206235370920455093718452254568811685354029105726050822337595148921088867735956026900753227381842531000530839490648590869710024860508971125469673944033666899410336964505002775143628830686455724988948052142145455237348654210617408061157001691590451604631912994079103563707556160020781777176112445131677752131918463578340485649050960170848862841478057989512940305239140392414830820985538466915871307840147047374702299283761394263612488517221362525203102546201974014255467404973089049354206030409820479258558897970938357277516428260439653322051679091128702887902986832880087575138527099925800472356738585793164466338350265886737538647734383215805779614882457685397608715943925721122965450891097860210932943168013608350967275029127188850371211966598846443498740887346093568446220183531541595028847132690942277356818021026977545143604931840910629448740722275320565207610709907739521692142476884707323303261316153461540972298985835367198063456060636483182865002892087279004391921769091851354075717599200211651003287579558132544744991931988308240651807498942630476492426534216126824424160344749728068200916917614236399597503832266103096882613391967621440412874751942171348922954462345953819089302406635028952567864471169763693805579824960069384824856340943460864649819587212394523974488536537128272305160614521176027531615722762883950699202402476482948589675607463546499593932059646535685326639272932849580492967517437834825596746573056023981306705652709148514116434119440638295114495710321492493611739684794912381794389624690205785086379809017047384920113588524520551045872260299814196285653752613043900258458200332754286942324630415051787696755150656121436120867960743138670995589571092169171327867761994053360679870418367475383626701509804062409836480566504443635000248485425923600065177698886155105641128487662809788812815164417856739892650084798849570088318399305134954385490256335254623361260161491873192603614818216294147497480903802409073412656045402777642648675195995020266948019924146058482883911851615027132090308331401858554191437246832683474553930089638505182733456297869125691743704288048601342166517641854147753184712678944240585087005490425264713088777637259205502320072491586287395966652130133067568971640026881298288161243372854998659644948220099183764764863505011284702986814794235637202080881890634548134372669665498722880815685917098237734670350651148682693595432530326505371925969692593265189607746717539426064396064846465597634117531371316861770989893213216928101717551146384834286562926414730524740256367565085173918897397145108176571166620031574631722702709444457439254489067859990320893531327277634423298464757584703851684309623140399001193792949570989056761068853763122768654822042744874333017927962245348417370362819985741479098399947780178932081314911240054116399607280059845287798265940372437305855692591225485698661613169601600443938074378687772184888767379286939393922748733420627759669672148845109057284296237068606690771414065828541434450346379018526350702423546452952686941706025532781747358289179771573706250429529013921608138141768072509721298550692726157480137255365504476272076860645780159668183617900037028787622398764172381572791296468989432814329505946175058265324381184335282211857587482935079308888268941122087003677650948877071367708640083084815420590755456151742830367824455099962166440494449183266664687243254848377072753273906692819913833487155106767857201967169549762387000219995439863934513923533359654405350154590779406861150644213626533279755125048289440596411820006267805793648331676872274340378044486649959519630487382961928107079331413396298305732751243813616255018484073300642892761101285974825845513143957490291481236645822241706200791928949247969473974964276559870185366136567588893141599745932448036072681464476155251596948851811781197746986780621257504168007462477776791469752994083614210820953609142476594859103430792412263573013971738139558736908981535278258879441046142809954978612004241945262109083188801380002787758223188460176864726395776607882536447703080247831925961816110802207873832084508338190276601968101053492458729286771824404099759568835791701497638430107523573062140781440170430015628254789708456186230209343867310445984009993038973392505884211375224271692787528198158275372846128786504441155406907115617811456776769680194897844512099258984871292451327544824397258031173328173614734262840328386237652608623296151291019052936746155569333638309508577188583753332691244851486608984692308802272443140745912530364509365752595297720075870150786846259967217641305507429720082597593014741228858256270024478686499465276367874727151028981646721946883921798299643543340579601003003329715932707330390264236154586870192059847936517414476897562374231558105364541936080368662488480549655363260877412328049214165990959865249246313619089588220968714885535478815973498013928969858638598884833523391459267852879113208663635262700558495839088660532947323939687020492383196231642350170721802482077779751160160728085483548583670836092758438551359616203253260149815842908539584788538657250163305869138924862675752186802523518376058486665235984068329047095740065294829012046540561922546317478425284221752015000868436886776153374131955689023970429946312981151983520143031469305676004183333620906273443182109600240023352821263500291320017012730863190231306147313165207722985779617388995429054348113757163415808890054865376670073121385920970828414232132971554247629201759912067116605245075051020025255900029555302993720599447512679341218765335974266208679892129040657648830978277551852989606102305138053342881633713036405073158104859594379018484053227438025850277472955090897932897176240390123667128871163868402739746218024063959345985886949982117776867215448474130789973492746956980104419954581579931712891019434692982039403269327391550391886056919330940927737153106387514719293542502945354753275763437876142406266085546782306151833843054881379540791568445552309684003701679225772561001758627702536202682583216735646265502072279893001243364631188838914669345958818930460961899802594919772782928472804308406585412764264921577242836282059600515824864818927052226823788194882572111491889386031237572257887170289024240906084790614896352050785772408959231532841855420745310661233547386731746427958716535101228590031147015479397089629334789115348081915818292977217620154267337399279860745483460955817805498207628072173495753222294801662066391043532163114491131192909391205103185099251330418587528051698474861366576447741212094390736475284778360490478493421836580043775274654120096607204551617091780775395224471753838655429125773114049228964482463778363987178153861006869045578845527077470529107437626080446457161322231164383471842495610610093284040330558813992818363382464948411630166109228380229410099645523749966163334509721345982954157461136143339955047509006747980728713214831273423481469979206453779713955443864472152378194807091061189260394785669546395248491651915793986444801689475016890507825532006887278725901921285248527175175118968241220240211803063885715309840886187936556776789298771668801548503438351777264957208175637727277871097924716365084476384569012612244603295064273743755603745100160625961773115326872237050017370215666104742945068494487928562329616349306337126773953923832591334708133136540616435267310584033960069349344569655288573880499329512549100424502964027986858778727482125850440294709034563541866638422126241029620526428593702258810182182790849027503823745475377768515407405845797818869017608030981266389721708665384746579401441799198724628924953177633326103636132057511528225464833347234897361840488967137125720093889769434991956893629339560628674588799102138778729300629679357826533034633465923176388468744776084064899876474273607899281502979526348154347749451245402896976236558764212280508445999643376494707641970396253915347967323186527217270925135106043789741012735298001797222521861744100708861096718558573511207407676039764164864826190900766151728984040476873811462438467634126458505384038469768487057763672846291186887701264648571541951837458256511365822939710458156655540706137449274621760475300985423948098355017777660163032344504331295523477040244441135107404337426648031293723320762734282348095439797871407144721097914773703438412016733494896339372650465005252622156592371390857901746759584503691100086940865954474283384904952791357600088055388236925505839195382888792591764311225539662752752496840835925713943622500690819290294019425520230163314544775131797984335986354179809839910604062213947945754176685044645860123171726739262952578842097761299348252882765974124355266107323296718085578738565861811841343647789231327706706193181609763218949941795023305484034337121315474349598473160525456983756979147782744446747277213340185783550059930737836006418816730440422028699758332812898859213261028582326334659217100191993305048939019532843464068748924902318289744328942367412096547234717348724173359899761837700772312047963544331898454916693982922627067076433312414765610018729087162927868730381775140254534047527867140413197302590814928049297923287936350316623299723562300959618410242526753635064764438405421002778826498041339184596111513074917660783437658987318115293268819702911642551866615659634660870028342222176690225595443148638148511248132107725927040565821937267231295274391260258273594748647578305633171603083566672554013924608469002781984367989982881038308844101923213970252342781315669745580161712196293434626272810049670718816707510862383185024094154848488425733286324109403844048756725940228286403656260981537778489966270162894032646209394830621672140232473577780247709498151243307329431382561296034322226548186830675336387528320162064725711352364937190655936794584357600604900895968861518240379414212980677046544452956391990668307072069127367755835453192348646133970132421225572040433027306999331877269683336184132704828798560054257325616197218513351187753589930401627370822145588912368128853472062067346670281005483566239240794615882225844432376792299963739582272737440945057920598891851447844705285900597575458896021520315328118731977453812050365755560431931550350514352717537036346526779494016755583435031704797269317179675930834476566506033405513624839538680653515666118108119965572699143913134947585385017039076792561572030949761523053415829846580602305524925808874495831861689104160967650055050427500486098965412806563781305244409992173848837955333332726209341170321523644396209520161008821858339444082389004969038163975249635115768885393323495030118334755703260799738529540287993076939715025022180077783197456469110088214093546113459763827598164882988664857494312891973452331478963920811689314131171815158018634787653135647435089056659795060876490246156938227649144373200398329404391886798202219883171043234142881039490181930740860152402965895761296467385251712684245790063928521354244626164126199968189477506417900187999978739400648846464881911497243545070243912368272649814258308558269745713826756831295835413734345334541819457366511709368227952353655628489491007544961664691721179010377053058630311643865003012122926469649067888531115364403651256033488289658921349390504227493355194944128260386524719917829568153491872169086072691262338626561196191368986751108401808044588698142881720004580739385948435666508199071886657715531847311957017501724539921326784460531611409946942707955518678666011613692504346850996803585691427285015936008239729696149381773508154635762887855958453979309403159719438455321319354820222347362135727309259299753412152462021897352315727452179409327025839241164637979349813268011306209463315581492303477427200462863713315636666310528344450493405640431767127499403781410075059965296317392309909776857625391480898968324523247174881011713505159326812251297816557261587550926145222497664629986286423371460867029517627965632570690866830642003410486130817309287377647131398052490467013905133742419510541610451393313330859685808026717388546796117656748828060395802052830232527403060545357659036372428062922725711897784297653624945695657294155591346892691200015790490673428968380804451042723718722190071288305344620212149106392763088074730681510760484557234464006453472386782045721757020486095976883253552518409011158529697982452114601750147886090973841998815314711009654678719725229468928685616190022422103515984668687471502031227922394799365930777559061572486322693070366139382116191859902697861947095443321019897326115433349505345781492656027276734083787275013811517828092861047551184934498603410301040178118056533315109934477352927213139378833441194589412933769017921292215218481182011365975200969488944965887059266203062419733601556032499940263348034468427888730010165551352521026732258005057854383645819565899648362765627719155423862785061820104137860075560562920179564055529162939656459533442323795989858469580973390542116270509940312575423626386401238611458155621772125612039799163615903383277206660865297628523510404191924885969986145933440594717891982689218395602145703752401124524326349530439605346859178588466098023052527515210095830402168043862055865752223136791999027879279484828266755748141454192166642050470207522335677171590177786992732717509256570774116478115318032651694202292890862046972613560436198273685549087116744143470627498662658285544899968058023682271341758097810482050445385001959390888591397877765197328372108637978931122045182813705653629236032710360407992099179753702879181442009140027589215378500797101727881877513172578605354855878976960691895711353375707810670525413508516263029435196602309065232131349958179131858938588256288433896093683546901778041097585996242839705175844116005255312662506499179169819168164255203746217189829710166457023900425731547483722485977394802456290971555027292262555236010212007543714114338231426615820568187230272153120906372687428603962521120567118998437629770913262090000949176726000601916188644533951719542044957656399230263443423532428477212103679578083185344677208835460775922548413110661073172082460413378671358196488615624384570738384493843738463465211142633017379161721886766875378751031542673443224732157426022120008178352612245938645181774585481598671906856034765452664352447343483650080937821017366774292122884811825881194461940230481604925477832666908352780925481023006470149309577887022800996763811299595210936710424686903042752509989910967825033540498210671851508318903397586345092492366229194808789615952675437023219924681968583777925702280481714545489936807988696463001134937071107053894924235898245828648110257808848516624501686027507199681752423127860349456302670803130150209605051184620850100921286021952371185093430617515609261612000269391254050722116335481887002387223819938617709560675571970666002430458140033574549238943609708606675738410801811067480962447974227569779817663417633776584188613921453631185548028817374347145877183642512255059414767166101837192866799474889000104588188684617045448856380246248881334679632678051536213464565095268571148278353815683466036445275327890249955911684846154800917722742744724553391694988172398421883460033598832669969035868865245558193425640719963223133696172408012496019668585159893305991672723237821456763213694392459208308980869275705216549401184609232495870037959493847150010065577265262690411351819682580196932391674796446030694811804857772722443491804046264682217628775404991956904691632104642064025177299892309955204813299821718437112619452573247798415389368230265983558661440221655368556073761464141155351641769692797395496716214163062364669053434125665811638157959750621051427270271953337834504273381309351528093293946279939207840145384174721365506580758425198089919585626567780895086046859011068035141856352461161123511872878180420052704163723240701943462097832476365157677252803767228826494616344021307175917575151912454145485860188195951839146253652833450441992652951735094870766064871901213867843554853905306012240651118603794513156168301139526037113838278544546418036748209128430148365124015237078970288675076915088830874639030568668141981933744474283916077789220592976300200457195676960995888643829967112453492766317440600818096850137632232211427059110206744535942158090187935535282043788140336491301109583978011521020508365759076960850467237378136432697487644682790989796673927769514771516890035814792843172348879587433305231198872079978240585726491344577988283124511951315970003588681763266367792285167773231053180316935839996412275184323043864289818094594958505213952722348139556067990512344821408059191541047092707759528965601806260023213934911797276622942956226263300298869810601039305533766023237058795691415776849842223290335455755337846247145198163148974326917286519714486507688943521636443466256931355733784181677796896731941148882506889431431319237076970763485650353886851780879693610054316953688148139494361856007377741543244138770205573161215668142816368585249337191411095292310765704048462288643328936908880760930752690939381919978812670362119342604632644253194776081839000276312962832498677829814191332427253969396066569084098630964226859758688142258724913100583108162178697880347531370374063629736618945787764515552808999223321340950272477725264468379215968997077491499215436683790456368078183273234893196323722788766168001433900537899068059472589839077953190456626600985894127766988387292327850696430629460595599688637025228023828395039560787459640911072957155177667967347828315751565688004522448324596091865323707932322478789646621887301008443638743376245462521943738479369274372796718095028905849635267229541449680866720604909411828538860088886863636439735795133723593435155269128968333560356200002210055986107426957773123541251801258652728468646491157191486772876381873569474965011987949034566137814578876373537523204873495456431603457037549262054777933545799048853524026253958422855086815823489989392643202403580659698326392113395500119599176087480022218834977204220767423423318452915757763823277858843912342380300256918350524035659028650310451292367138120139690775514649784627697883187428243142640217891784593871916806240740112699274911429713280316648381308034703249115825250208935289644315957053602964556398690223127944819429863581006618880700283656294821360574265333639953419675888441897062493089522868087604521781728938053241350056747255865857948838213404512184014507752762317331930182453777790522845161682833796313480623948720769297552082387381112969114797819408862218828875688995418492011932716280355279774143757181775101240150297767218185454467276526500494477749346690012819908522299202102525256998184048129531786891185848042756218626798537328096267175036555533409037771364307933768552898015895530633157808850926349999323622078895099409589996217434693338772303222342702055496498163356428863229839887741714199593868126705957667594219638166439249392041975451257281816268395652051652752452006921363881464477437244204830292626043518398727810975715272224181628393113625918157046771080965402950209514324501174313371219225975207202533742210868209525836316118094622119715142651028902019391483051329810403541186545468501348441763195818813833650945433242150816621016712811146521032480354669432189496371197128306304287308462094805686263203573634708764126745667758595876954898046321073285635822485106615473082594063453644783651023848810124460351311993642767469481619655002067083969235968512980980185935124476434180221034304237454956923871292652882191113297859844411180953114268233850745510346529920723708731547379349171927450425309530740652382715576120672120510914916227515997439727969001399851862353026491100599445829363324082289902737788104465597284751021734895033833612462349240536361323971545244859241917279552302262273466023815703566387803425561432387208616015213957956550805415483429812249932874823996332461739876208555656582950897105321926358738833266443139384117928920333422428862924348955068892440524540867647858849789265851719901216906829319682968249910630074159300616468883096020215797506629480731704978431624450031905318177347293335415859311050944001344724032667035078950248459215961639353499109016167774718585317495094267659878146559830102945333720959055649860658006086790948815704904005910059463973178515735586617811320280918604534466570994070132422132422080946584010993582657092350290667566425945993171193438510814308356726661934294172280529466826961201114078085110485177555278751433230238382745326879902873908804448036298197941411627297274324957671233967585150706278782703745301017014310632311959460094803340468319838368273468077109278111706563072460540992660880113179844915144679738100162234552209019253261000158874531721756206757176019628580556220210325093185742180878312920454507208015439346795589205087677284910663802333785472120636530541689175829962547033745983132701770118560687132977967409900857469775635440493619228695399137397741544769429283885962889610781611136484461494576770653773728559768377606144338412325470295075944354723991198307769369998026700469045776187451346938470263726790968428104700023766597045653258129756208634627066771331298379904943983705141712725720293637246088286032574470943771049370808017316307475241355101556993628893537870116101937514525239060627007376455826155594675594425171688403592827883412379840524067155334175225541462611612240542769153722177446703688735811987194240076808211898389577422664284985609127189625777838084805413258670589470528022437572986805527338925320580507094250898115140847218229648340873325084816708719143577577938622006311852474870374244106918244722908058503560588300352371755677800831878398774357857227798827097962274871358619780099751333472343433308247720609459831819439835520860288871156807985221828465895386153932374212881156187047024845315741450193185424845763959891157391012184681613861505435561946167522988684839001143846780031722198875872761521897012337487590703122836302854210775912108328728068206196750253008064754247112399757727821184146423629572610993300537593818952804076566169025050062560176981187370478318677356343573612241212055013218013200669649258936944628101057401472654637304752476022302508860561937137517313373481598982418643967906223424836540469930577773548131039380812505464984883042882272955536756934301633052770199726286460802189133903018850085871259088589700870616748345213878514697791587350853588678336839207855284618533576733921044884326645432308900626681047543521869120985357053710357014216192796630350293657225648417082713996772299711542303969579317482730960750338277953042681398706701609723066794687921958583422010109782092309683545370998079831151598045916245176290897926906149233715947737885320013548688599661296559285340424607921234786477258379414850843839999896873976811972614322208808785441751862594191794349781807386329969150658653727592597971927994283151138734123808859709197592870747703484305857954998758665691440406090683764296278474432234828096371735841427016354241953975746479565502069621275510558655656227325454000610284086335265195696143414922004455501709707051652331672291392037680435693940665581938163585799493399191327591085783698925330342409880745274684649781864276697712838692739311451923457436314822013477089112456644426984857648382655604262611327643354493286912633762442570727076132227084276543812091948573682945440012480045147944736666189400068306437824012591993049631278872914560088984709124987405849391698589331716447515399567453398136170643119058286397858315689278791222067451167886462800076368854472645582110731555287205195085459577123309722165314922308361045045876733974060854252053532613638057984899371641271514223953676357019603630327064904940795183177515496485935624950648727341836119303904995466294505684541813627656078008349126463271705958623908116779950126206488153315050347809849787819089947292258443555193232317886807250724366966843777772672483329200083876546651731605103160577266710173286088183906606866021731319189001646475066812741939459539226622513981432648797898621735398090913564291229049620528080976775910420263386952063435951242713712759547413698896260022646901073460235388902185626675647259298771828350338830554398014562520112953424053957142171086018585053893310840237107705110750454630685784020031093434194595739682671547786108303533643250957950390655874103379794117718417178689418354840126497389597333454546523140471986168490085351817275238090604838084583939265047453958974717900975557925848642078569797875436260109728368855629245875916214474802619161761579092096290426844391970296204303798308814411074090879344061206578288641479273297921842643588636492161595988677881295943817230050866049573508219339422128231060100128067321126122246967583989184813988703271674638259446536823827524134824618680024671049329497101164704145219347607654732336817261107656775230765751531910069321544075259760938548960437981806571470595035460880584690007984296625465521489175752848037665950222430502192886989911232387233902334203456022309730941069881176705658237768276276218531145439697189617929701787355743329978678275834222372755143973468959567733788642019852314157225583488405736994220684270386427739363158112369757930580359675534639023012565540089338730299248310127613416092068015182571452604185203336808667187412023336935560429489738062211767531864861556903329354896105102640679164680343417153338569505726589705194627484234422702014595669648141662910977271068395966869047222163043677933742094693010563074656014447912112681698251860205156965483415151194912225162520807485050710151102623642584812721366973911616678734135164482471038909264319260493589775043364379900811024237209799169510488217458551734080903822176419338983264958941288122620440751009233247851410753081569565132219476425889471394727842904780632453913318356545841232347250973175672999398681300601007902574434820112336285235105261375247385756100495840796381192198532820238488779550410720372883591009459234750983098192029385517364347125231571548159834012417011153619825467173885414446478083769524432587120332197180024602683522784349752021578304465399546721031734517419581049335256228910279384625323056632292142792029605658272865341623898802921978699407852768104122234525443834508372677118809025649540063497916757940262481669882549455036359647286076394819186665844866020896363520672656390189567432512763428630825294824231801603241583211395156007282452655416671117650719133569316708791254941190605158928445332189159728745665117481750047537225896362710187062065466409490212223375725407853828716752770182331212347537122003777174824616522836990187402619639046689769317950865553542023991200039636929287470615612070588096776474161223559473994657057197499432158618092252715227184709591917683967683591385974664606173004872867611725339021545245896268674105841587390015781868094711118564014449071960994281312741929938507560434989207600934980242577101643596660387250756998625395406311113512450748623953655845916922403491565602408417681448472358128661579979183381169162425754858426962724070319688669298416131530926017611947544467994323708492710121936384589704506113084052230310728936071148865198582301886026189232992553553382010288313483285715076316151481227266305314493140461368378673572856989915046167103957448456844213446532708142708689393935620571116963290588784767825005821872639022956159262924991796402096733439008985650117356511013469334592557678074641639717293459677460887649151118085313594168988598327931825061268113936688539820768512878535551727663692929379081466664280266473313031092826781529334498558378224496962796246204034925213912617927359006651307988821526087756182663383955573778794061155203382046710711187615777882453027722771263172683733471174947911449686897434251063824878495722167085667126619474982832930487628595718030913088885747047928350189410992910330830159781550537379059038237624904936912509839402568661565722289782978059812816056039277037343546899823495920059712852480920716075164722938444785988296413536283719676333398601809526752974252856889290390471553075726269732551574971448349515039992466426484905698636335818144435546237139079176738978095560642494422725050012784389060919678924045868057814297025927049261923445495587696595021101217488168251469733422296816678648293374874684944602994086525352052058347337509459493964492633119033537675729820556720536364986671921616663832298814800484692448674471362712608809678682581839470642030385895733114617749229350289160089470919041967054005091825592513500763019356595735701642680887986656528167728457407548498934462658220903294359550793875856968073161545712723227960152561074837051441465391438667156208516025795456532531208966813406212138374459852781275226385353456239457039288408347349158141051705376317086308465593359539158651059149631665212432602586005357870454853194774260040155149465037959304492072652546632063365769557603395352309887677070129027714924577401197540222842416414268942559404673299964115019158563813431996528431340564617411818534347399619881830092434245512402615006957388685243545157656700156501427015786742420706794436404677566867154927378164404317279764633137552783841316280080515134161404528570002888519832259320857926923606814384300766697900550369315696510752485335388279223238471344323233277212890075690647754356149380777599294920861714041606106518315029209655613969878260497638108402888761246429250778412653607486955248302618541214869516819832144750711598020957112779364088152539712963617089049007222782853660637385535794117535298201800027926559792194162871317741387238171700589748001801570450162967371409618628755154556717106576838938134349142719435290241896286567344991316565974848810732113298726391764304700542000408175900337312898638184555256538667062042510002816139818604315081085659500995733921572651558817708911851942173358485420624739469279941992913691577566439703957306157545994383355380598591024358402983938462611309354681881354770116302664398880436314557852583516445090902499210178451381489835455597941463656968536772044864360514192089493591617548310094654311027574092273301798669253538793969041558668178619160732054120065179308625657215544754288721944300008857584758102480602236956647350628754629616498617091181392111177441984652689259930471857425913817433477038064870904726011708160497939761406700547527826647337679350191584763042961454433974067609900403268599146343488977181416926833755057917331536676139745284482656212266712684981821971069074089716431310107189802534334287662978408310238604149785322488703867069742539901232357860801303066819914493199090011336887309108393950523490760870409011822742418468130177622848215516598779183406447344956013769542036705808943777395748251887898265436833752801978216226294553534380552961005673556425666929784556984306614271582537397865789647359000006308121584482520948170464724819297242162801630745393601056456686262051016192413474585544648755321778364429382910657533296512937529823162864327289374138056970695443062983293002129041795133254529438267705360168252024873726783485197736117653687359460988221606237951927328579836154792965133362373416026988055490573048915652064837619056180562232139715799747404290449484178563839404684126246744036761895471944181857234738756677988158740050291048762785425653126090542577271759072070692981201647326812752572100515405947527682697749560118920189015167592182305824221872187945982373280173849934425618492422528897220423382534256329931152608076973541585918941633606318698740543412977182610112492124941869196563607662240646879177235184933771226665414455408056396996537133737041280924277890951049766257895888909574396953562420300883675284084679907807533401394984665784413321778245503623656676850008441290836747107782362432939447303484377075511533720594513259570750160601860742791030198406708449249711002905928525127314035922883642052819746024330694641524675570716123450897932467182914088925260659843291100231021769199369082330229967718595345883186639298984964842185058148856457307400058936796521462694613883679310188381938745041303205364407906133387547018622168849737271163993134621396358003873237194365788927288121338856827308026380740086437900111629362241288045897842146778559618803318578440781474347589069807975674245696957052836660218189158946233110056344078884111364437097654234604679751491598718427887750480248703841236396431719955648416065270917278162820411239458267442912749238872218223029112689095883049989146922404395322040719131270972516200539619910067821518045567541724892461161071474431793115701435782574620993873118145194766786901997659593825533803597723694996273191579667425500544228958633316610223911938013158226105590067944290948813239143471486120008406362984158029309692482841905595170194754115254569332580578941699510507543612300038858742235978233608216576978870462074065990586189850901989059899307621351189664767296385908108625450424016073690705647709123724728234274816470994619783543048316908841574113660883748971989574816938375444427587931889949340320583499257122616434450669450365240304083349008271382637183390204327687559532226919416777500864375248289371640019286723752353862411955738819280490291519915832594456611588698102502471848763871209282955023737053173623632246996273918534328548587596394499520764009326755893120015102307132463159357536793488615250200723930819317618005160215265718974458422656845805786226765438524895983980252213205072455426297550473744774561603248276412325106068609236482058390809213304941485527710588622858144091730830788983109204501864000126095250716312791161665187511445175040833140354574628212614012184160545481078076224321505596993504744507617771238804702505637795294525799293654026250536883254679299013895469898482426793641008838136484112771617756829321428148624924984799669771068687922596459407542204658720373608373511016503835553317191827388300271290349585012449311740297517728360574070638342930191377107263888093318142410753667550854737774373156642841980019636705145905683214467134480978698521254447649738848843646369438262647857960414469773784977869407139731221459120088790622598918564370308782470637869091401419058814191634247486575675929463875075360209757027305659084460491175696401563487014115578854549449708252792208769076770637701722392876093718338753950694053017917044634039494442960309272195933544855067091874398596853516913615708419849868778951222822140926270083905653568110708616602065467200728177387069332069364130427140379700920894617836505946933375077752716280767462326176886535867842244145854357537072752751749879419039174871346046562576192508949762317390297202648496972540196855063669405642910275210289545893526333411514987667375877021254763725081788190996566728041701218096953238281381361438336545232931521256337787837103353306585918186420927751368824542711644490095399541384481306153281792473075619441727385241446642424250464302786409246609279886408934426946740079169873033541369367953129120781993710153906350241600525132423382775520206311235100734035222964244432266659737150494772381606487079889350442233473725976490758506622843143811370477083268457419737501439971961336810307345403466799124155280192853026363837863520142044539785385686857576708874724700474876527002659460297097364266084337667614289796832527577541620585047004688143933775763018630289908615493142236629405471969066976914583791418710499794440475371879120021601988666117127504804450935535751069015063816868395259645022958013773940637483351427394499527697433451954114723270069926572865618378975115964254124441926557324291053825123694935792841505928056945904464439733959597646826169347178572833298780778975121245248389615115920371591596967585010650099360792453206958837697941612867842480550750616090151999891945134616544689674575626632143434792959055098611346286527265503404263638625305689505912434191002657998038004698654863935229697970220743250476151724965867890786446378997138637791329700286795855754389497094319230624958786099506952065351208122611698283143526369592049272827000015544228463027839183315961258433374201843018670064601234301837677179800324042810512553054981875010195681969452524722603141314426214546512605155276598537516286831002438745975856046813755710044716225219713645132711673188433508519463397056773544470657001695562561634971206335621943335196638720591903327304463604011508647058292172940136416638191477631364885091964146763576683145520935519165393077874471648923270765149396523413069986879676148083576426271219718008506199446064073524012662688496096862858954602162054568519121231531780765864978893227501309181913479219044678010346085168965081487507185632284144589428759033363838041636973640494062794441178984942086715707458259006965340568884965405111912751727639520266522303748172880718304056516576772045000209199950032966407664889043246588987374866590359461706063252873454343641505477949510099650113379613234115846439212157254439473453049022109381351864990561267518670681402228595323638295038781462676215007665675680248397889406695514949746698608999489344209397903364239994234861778735939396951801587860960540503252445605641276880636032314984898179847810761093551269812477702647483787681243718576526013836338157428944333543535439000524664059410527784641966590995356268896069550667834435776363614880676536992089802498971694057620692320679526505437791126196373016887131027600189302713292973759082081950330380424101696856825153901304698159729010526931349947247255671786152524084197879431853588261966224802870607227681756704675634763304067553872008154552029114319671467016442770909872839625874970338465526129224409104864882020165612189900980964800995023783582492383427880635264698994983163748876007275774039546646897885646487472211212116567207117867090254227024521464724018319322997197805493644963265904624962434373351363463377706540335145830645283347606812329692339810478144614994010060928941157957884126742892893669856997349476474766946881556250660966042490877075916118588114489507844399397869780172369395870567944318900589453864605414802801724018333027259905613104721599858152860802968298491367290876662146196969152190157071778301384268079007571080907208058585236182197681780843849962885377976693933459424735296423740641022477368915190372125666843746698454957560967191971353127257118289460938429973423464160951559967998913797297372635774579470224162999981686838602122583873161534179856880298927327111894955419212981697332218201790212906138658662116850504936858370780318722765575110087098116402541771350119199398688029024787217464347595805777770302434368728251081216963774132791815154247509155693969826667770722685892647877490618563281405114459324555650496530078055723303724778777839308850089418729033849973439176130607533829962135248691588776721582864600670501691439916146286547558088070509476769460523409493331024814538141103485425663635432320548918405546964141321437993138579979993531652018877278060094723606649799392720898630522672726053991672476230168402938834553255490104750186418584431745402933582403415814157633446045591614515934999472350307541632211408013271418191966623873567657401333045238978012939295907319965089778161133518447018038011391605293078056565331244985473406756673691520316257154944831191069238622605534419529708808228626024346694800025362754113828423949940414884856003653576097800648075292626118347380228889889134507339182631624453816041215315775385674207821906533758994698248138123984423119063214511444934922622102845498671603131847101615543432565037772838104655968470722262005802573318760013498720339595298841996868328274481911088906891196326516148739357102537544162096833247154945818485506171965640195537512598357964884216246426790705922472255970658405232250427044056367673239530793855309902514654252458051959920879797234658196385620901212023716125791656562485403824315961043699033764792910269399587428947308159454366796244693983023701378032410049416233242531279594438987665974639958402554557341321286597938903533119118614644519327821720602301425025770975982895229910277094225415282699013463816960939894614477034590845778445871794144726693625695317622709425268855983232697746992814384785895855485898706785554774085615886015896312258722377979540384876267433765060123061633321829081230908212577881269731889753801947553398339383443456434887145198143146479443591256288552705925869044741257471555263105152221200428514652075837425226729619931378094513012598809421195017361045377631859592683045262952795305608881915460663160896981551649680894588383596071724090567401345948268933856726702512246622328578656162770469765490259744655940640740384566435123774347356520634397199753701456579649554184796265645928707097858625801634002503517650994753713030565204546043263361105178874506107004257762637563194237816342339145998522818516145003744275457404806593880538405588211219392143505035350864545759700513496919963378640083196795019173008702692650653413687709840341679294383599384907031876454449593737675537864632127066483044386511457921035496516315686624425878720064584905590965362351869137782853701923548706940724382649299550130193493677462711032594124755567329291441195775643049441483140044780404569911465379453392950945874084013967416635524436286131623037132482510444774862886026755937109654429471199947445385026218691934867297725116692394611118833806203114027347023105840006156247330180898458437381390499854881812751485146219399118178294758433984776625305353152198249222143085622668720276518361678140996400263514352892141728524251744184347427873431606423690999036968833921548233579914763692525562113297217434222477401885992581028675820792315325612790075029503771707162257384948134333860785395527284176645175052920569988727571689206211821909806224921996985777263132561038357957010929456462586240964085444579110408379357975793910172621900945646052804168363057912103416915291772290303652465721655148009897854956927869027534268410552912592398312212795534594046828554517429397169438053318671918636173489061996787361339326264775062465846401299231180477440610899337480717670699612001539422577172334347550461399783299747648489489765675338512190234841338357650030501004462182611526952843804814340642932386724266783703467739534637518172949579263682764589538570868966807254732034243604833158243857090518450425520119333221908023866018100795530904932902104569800903180768275891667701481438803143600306310143584435722477586870504197222928586438950220957022433403237124367347675921723749758994305126628114421760146496880461371231566853925029846503343480177218678455548935052297685210429421932189633167186963247075820890171402371548774471108840100327385692098909070963154618498678182612964154863681014322991466803530234151560672021054279747875635305975243010391515581431102845662930068981528796748154954195910488531923764867338458098540098280551771520942550639666269843230676473300104947725843782901376028074894304129853558276144606758248244597927083583137377194013632036039176181121838987448220639865644414161186795150984678071065470169195226997138763490465702026159581899833727338962514714841113947268348756303239187288057124927641744188515542858863617069219723881979924625574122215181056222324308095503537520260089916188890578651474353080511459231352779091033231973318546392072995493536682971748529178050232944714867652538166877551325106441806620456323182984556952899499670364706814545676524774837039670523039478155748636176688133265583082958073594195822498048312731374513704133481674693054182203984513395162355648613928493364792120026155301912735811121012770190455061662259950083604073993429519570565608584428007160939877800230419715712506929622117956321048368428055575144159200085373544688987982096953725005629552232245839404441905782913878849153747163819358370071659627783122514954376033711554524340584947743492234134032879757897375979909107196145097607252922752997124828027455641159634599434984987653094278631506197725879424846728184471658986794150030592443846290565661987641153112418350030956732228532384861480135363077784683835496383577557525627356945194528969572989975150414756128099731186800889038586868679913597158572264785969983869795658286519390693207723639151705496725742849776238121700515417999634185940755744813999297781019424006236705850164035546688066599214830568636653675025082353049581982935191730761266485734967378578105187929488173107930267039744497841550843808471020252437563578519686784062650474716144187323752665352614885518540920530575005579272182399166113437528001736551150329533756094595249521615934137019318809730602049396385928836845518355323515892368938708154078363391502386380860653318650335386544160879869779405882982667027542010582668909951143310906763932130992186421107772930738080304106911807393351770237131774400999473066725949520356539225968881581095578559078518685110195189362072045772302429593666909643240582940559602655543613049506784265138701231401456385846803740234398169873267438995166404994352236617354951117311836618299500492391172432575962263844433646191055986656485034504529670286157286202968672099218940930432797442477280358668606067927677571591029961971876970647108980891889336941134600192731342135864527682370569208806536024185609629753150534156661220002963635126038072810275780065562610655583992763529253528191250077081373894782774215089098085281595361609104535328708649095864360362111935120419769001309403610354663888032239745933454576411675232767316471916166919231215613303119227064768120161363487360399761866704447546606238843990223022900006560152146750258570359427037728544772536310256133294083799021160885164169691841979128842147373550140379224279463450999972677668918172936384585048324462305530028970289557987204505861410238919378807539998416937080315055420141677990414591796387085822863380463335636138758342067696479593341404296397418224063933617705009463423203774638697732588847562932814815058722686173539793051434636551591271572038896228464231934176749072994818338983198337675290526641488142894605752823570440965493696875007228468037386577613217347697293995841419518264519275951340024736245786645635674077005867182566667759923995257696621884968643851151441139033686886816318632079824410088383353575178793568662958625738075432639823211590710015035601898045243064099399175979130935441649789245318476000783106886736159262249538910370551246446703709548550355866992661820902878177923979753302686876728288899324520229807999945400066528640060928974871455368196821741214273142649300528201808412942465410677866727006255071425950076899003370817302504175646562942843217816271706039014063657383010586963251027792860227136395352889354723549435401377605836767449910121440918872778895268639973722339631820965183000177582706806962808003816232138186953174187239525819737809462121720768594726474241309801554201381765695209450919353318742662045865308532387270463627609773988254516058075322507588565410633376590218943592656699704158954739186694355084154037563039939220396347194137484795741405489729096408633214271115041711925442255921167859725718276097686464201685624061031954084240161745474806351135563137099365439010041594123026527101625035226308245940332048222739372612119126255380511256852892969737706298640347035322690189499878373118288463087748016961500140587384257818391636085022660183697838239274716366808247459017158031236716798241744957600238422422948275714167534629987522671699282002646759253024243470303172710462342417502464995921569886689608775279175321781831661811563429289871040568587726093559699726651102530624089009403144109635226142401201391167302202553760832644897451452598334686219049442993763216864845039488250360727288749928069020785959657663771596561912712206286931700765786071963645448286780447430375916783182051173450031401827239136927923345572552203690653474832554915068111464508833507880832370203731554329520202276478541403859832461508425840933126574837275416356924526979521180691450346509628150485440731850457309332040558738198366245720328121309710880932772661950088540486833813460194718165822614893571744987351543438645622815163329142001439514887825786339452774573407707467170321299780506582231857684711290264195041130555988151078926973221802954771226207262052497018376104191021016443558912338291848423324678894586537569319132512601562512677925779386891533087419022245600562517249766919992634018654136806457333243570313174282825780258654609957693512301307661718665492654563073770974313700174244387051235303589168736912482056122701364433862536881762037786853469864384079656607909935502133880718310606050692735549998485932544698444140919949831008037267320795602096132885304894097709469280599853059520307585553751898789200697160616203605391317720096290416446147480724545038650774228311301277940119443335031533961953354002053852904150355089337469607207267672895180683378002931315587421840671362471821294233159418674004639689643352856978735523142190633147448466470298739605174054097016609461309109988471654146421681844229751488865689953663056952331031088673461211174964813611162579635023403172085370005167333914091034411425346412413064976391823812465892703817183921079876011596374316316681239468468764860234292320879783954876356136242272460203456467268353370719141608711876144227311487173511819359721540022588184102469667403356039136659472590743627943686995649306892678243189860641829905248385908143164601248135124999218644175470332105857989360563059173065054441769091609323816920868696743769952433932544492855804855437963931479168677838860316641468922493939006915724080152364751743608890059084695165216699347200898099112330718609783140193669304836058764824891796033519598718970227061241132211082964664160339836577668110824324043788544282803791045687639703959472210985943647872514097118976140296264977810819948206711851304930660185487812945979597726007220473507755918677483573280945441914676728590420104569184209680611912392696345533173379744828720591497019599244452524961506005586973752242276531992789845949479621851226031286478770699008183952588748954313095893418517208100398890314650514474391648242974237548767066948635238446761503695670518569461853088462128713379101959116651470287462367994689556087741859596902543151664888154715944732007034174075914380626371600424906348456523542031727445770842764519279429607923949598332244320931711142433839823375060875261767349228407661494499451471760408847563612228452406642334834736207639319042619761422743988011127867317832681342026660323995626948065433981849079713097612885011621238345673758260822427814369719251489054713714301318431454305341291613087837180733437336746335761256616837089175955606184764031650538441487904986776739406967581742612085800753882005975712511328299669332445303586208622873530272976661213531976426324283235008029967505588941499664663383720737383823182425510827739346254063932853931964384852350813106326556113536824761545156119131042938037337057139227228869630049639696727410779216023850096188210795717433250403694220689657728789047876335824609780339885146047812172832423095529801723614397566707682685827702709982450230586263696497381522217962958015936125126148991554317524715077632076050054548088572141207555943505717683738873185096646497497656416087309517658326039043276595223664992818342468004267058882879624183816938567635663927966408410084374077390906770106452733712438663713241163982629726634022041847396201628715154389181944879545092849973205773610648722932735528337552460643421405597850788509080262062034530176670591399054226766603929898266819546968189699335750352812233123496086224079564091829230587321216910143388031392581835046985889344470772936592803994786042880237350497267163172595152658367942883374563876688795519300424890008911700883389054380921986672030975146610327693728310227152688107076212272172266128502956401350049615622716590766164257493465747173486567697871900562535300051927159481729988444571584929334144537073274974348193435170151184092165055536664926712389163072626408175552415429777856862812015566566085042087553452815776065113794853038304845974254571971873527415474211055919932828531087615782146613028593564497167087868580862127524326293798850109658478486536362554069454413144203417481847299644450128051181356712944441965672598187676684476772352130973441045075256146535435989833066911438478502099660626788613710623420947928433935353246566585104949374122030020178153857509884791515635264375161883012224240060669245801793471239949326249975356283766722812050157060841642399399668028558618268242284687100569103645400759890509934577438530568400753645481244838886043918599273759381933982250704410200294437029571796606665968681527463463772265856929223894700567143964011372487647244110420650565087371143489578798436801492281152601691360663497981631590465408397336022825834362415403613423567091815947887470290382337171983485564398594688527822746363942734206751102888887591695849270157333594662154724094627735485837066980742733209522501430957056526139562429944834761647368680174998005193132214104191764193878442120716610261933220861058881078637185239219571153907826426994689800468103400157549523404557991305990237801000095050137731017071484710807344105321705126939216903905612219056435947081518892074183416834231614205656837358674130258080064787209058598436364119046048398953966137357335585954132792718331106480264926835291300895947444299927342515092166913910450480298660645066482014260856923765928728921224900055878665220612567218435811887653902821085649328281222383919628173302987923847320895439023387091783932278771970943093624727741106730112257572237129022905076095201534009059538197199231561187796313667062785631081735387227813221032889071684334082884853014960881236199865370092485735471339497703962376068292026370266293264283292751044992050759718797808262044511987643479632130317727080834952761340472065042882358249375640332045183713209704840951561626945484881965211248435064150218557068975141530973630501751825528814252363832903643609290560507131671747189578716947259970702426255554186186155472600408536250914187487071082166694059427761720327020549684290306006627867202053672342388228490935483744040917970685597040113412965802673620618278507201052302195253634597269006321738385450575084216844473299292043066619013572454342227864009189182683288667959169805782590195052999952264004220436654710767210473169937443355305318868441645707290002657444125776269706328952816504023254921498979259520131188913362988335730097298426561287831989368702979712757146628222092509769423094060686139230058168514391021235966640109170341713050525544117897879749402242468666273433763657104200993386228428418381306152351518008346049894062322109532039333770805526071009738369754694610881489119825363930019921633979074247329096960161049772559139558441962113935026593601700475633024770436306515706065792891154379749875260884725015272338136137978434461952153015379889673242887881015987440368110687775251114864924272969072497786534729303396835004016462413113319631790435849602822619425077699002672092688445211524014548050510042709091211856476488156349027950764807205030520291347807056483578095354025627923300919120952582333680115055869741211191754000114597762259333821278460102304340504270966719412348921361501917953316491500785596937075525931646187739741487753890452342568279537878980678579504867466599223869494714128430113832503873535605545486452732438571529226363405644628887389232266525785235679005199433954374213823993527574297125935444281259703328439077914296521694971582014692438281070445799571420455141692360393395120707139795818337253081285889526699581669057724501843993829408565260418890278301872009222755125110028339738477759505721805127612413761417442775644638392201780309070836863056527959748297078278958367847649518862098173079880021738999501965424847830261694649596263219826712035277891728568919857682293365581573113706219583971597265794507065293030157780108042010491244664457283373147536183812344881248301215951484405814657755313090377504677403515811869443395287777410249830207571613470063091836479202791433283080263440958384223105589525392575362466118169843091353659746981132638521260198851038893015175244177094539727878192970360700871629600921270529549268326448846049107360860062185626141763317655611236291867315685374757642096482063929767032749573689736471874578158755348164554522466302662614699510914547079038922593374655774490030246514030350106840705725175363433658703123640497677980815883152754226823068164574439978074291016268233509371949334892903285646069535636748220504239271741101407716194738308785976627528870426268008636155537370946257289796272025004959340635812560718062717850553963396835605726682593556863318367602126290663088213644233297918714362875505987393604932711312499474764769444204595356412092033793814235244479528079077043402507823640871880716283341607727486054360934644502069532758281135895226327447654102045306947508431403076957614788902948880374348330319048194387294630797711903230779428418231953753354336242445071848188229964594785092296112523924070676126982013958140933870762161186671248617342096272780043971580831461489263360766127079305163495961185380193339960181756003626933602658731490397027203929574024359970449204531987046832954563557012407421195840555899744373139727375932112024124989742761587267422213769435831274636250883791912478119609938142552512950409933053980227303188356959955657067024176832369879688874234840272768934770026544042404783049905215606511333133024937696232354533456383090547270213445950208709209726941703765030185555236323541232377229618596899222160350012668408009258395723717755534752413911170125911858723884894440767381614262472240934706881918202354681506878834717594048349007383781029557024441486273563227955559451222813814654712805711591495395780009908404844110430626914753536169765628939031017434560417260725848939133169571679781837157489541293722094898198981702051059307698157470860348543483823791597054688048751564054451375445270753776320047501596806237415869673850927364084043255595091210790350566986202961529612014513354537923461724945060069607176165194330293932792061603338287740854787474384824802498455511437775923199194842201330070657590133340448243857493611880794098669466528338614579930427846313997626886088469270404797850153184527787495580777549848530904782164699012576554443948932423245903347473823063884405022758133176731722390611811411486190754871930611857687675675735685637768854024762252031145495912529077972686476394743083726166143036137498787093024434089766316230358080162887567066272463831877895875502318299257696668530572103876630700025019583478623960155273470237425256720829181758141434426366327969854389618019001231163444539789064066288908876195780920075767792387197098814253750825404139092450914244572850685534201049395528466531131974846218568578184407777649149100499351000758697681587224853442047536323599956235580315703462071782733810878611053230393549160566130079169707476754400165115331502839931752148889107695676058867891391637855191616204940904394414366605874471731916822151832391107457699272543490867745248772879714655294718151273029048682623194941748952787545865897413439580032140338049644953050506682148478502026922287065973147481676981617242519934747954306722611512763182971775826081953098208911734899973132271891098840664029005498465736016275544395590963166068005905610690459599807801674267717259606419430050600568799500567253038489373280981457265799582233509897992033720780653746416025868423904006566649812124181472123971101170835945538573040509338954095216160416160524979681544388620227638269293297003325900513472122933920315676681483782005110413727016973262681957703858844287597770194090867330926190571676073596953140198726708187710532632427404920991694788734091576483215092488432171214199349068584393126961514430645609130597646296854389223546586385996801423385899065121835406664637977105003210560646254048518048536326119375636662769546559314883945606766178022517747966579840664348183046741130208271785860751787209941833598433810831449684017734366252000501926972040976012264675594400873918636835343683652340690949205386646613461403854075329049874056777754837455893489671312523314327782332420371759436404034974071048519531762062217914356769249174980172069801028261446205687598648002654044766709384552370928516767876170611689994295430004805336043780391623742449947475372051067284014804304043898640755721604633532726364837742218490558924684964578478942081729633407110099838349907386383953810436402424459205087483008066504895178079046883060507560429977084059209396483192917269598567593487255188528813587745866927650691781528562346244120293534721220307735914269826279764796353368386726668027013956517091436778084082623051073572085658649832101636209492919385793664579992150556367438646683246968381139732908599214564489210040564854386020874226717376769806520861688027024890021568280028233501678888042000820167699224290492308286899575136826813776430427689194953779381080689875247293286336797258003732521921592339578188152930750726460006668409674605323039102152153746602936299095198630072631003667149682045450438508079422831604714749835311892481418449619279390114940247942612948156477889752692549877261005395365120915341914190719714409931595439658844587940594895767305356553533744573146666632127100525549256978225029211219766045166656124567381798500322931795786013827927547284743211084223352427578191306113081438316421372567903064930810608937018107983228360618745206588399507802929665390215650581801977776657242637554209492313683121757653930667749775652898473886838584304890542746941850789720265540472163993525488684711387470917859623198046151977695511589136701671718323106294512721711498570479294433385480216934681601902199572543205584917431935576072360450141801275265813352164984943682611670384006711274942542507255221162603267795345043257156833730898757613323023349593941491560292196260912721721483686259520891929823728763802110344197712072335450500473501676714114680196288517094021931167721679667443584782223404320126264152166938667134963545832519913565118584979581686242326542015402683991761271598575213512050477047384713517866854504069835251789341140082614480309237584690692727758195270994264191757810878472667974978908209443870031806933376878530864611550907816319932877757494288026830892004026284069120902719690076360711848545396160655117775941157110090640049428429510805308986073070311127655103404423962695588058540978463714941793009015008981547069679340485696549421509324067727046355807773566444770953286221029899106378453801080963532904598858665651757152106321566858375384993616073975832180092197042238007137220892694778729922399722963158510731235047553047005537339536036150410794587949581431706937998605656615458150619161405432377914265447360265793677886535015861404504535833840837888064490728772288699010450459070942569287403618452165003023256320161180716262911907446247642184625713872103054362434131323654783852175252789558865796704060582523120809793669499269536911963994940548186143699528082430319391035241047425411064284219747476194485293737048031238935582382326429680229767852275748987447804714034364251427952314721298058020745313262351862192797919491040831898738445158877986422965911725089396747096202046168348038855081794327191675507984487183699669317855360767833749635670196079778521146001492644450278477588971392381059015796100724114039033365162189283056159887037320561140838588677294990328664002496640864477650074353092536697326023853880111621458380567707027212351842815993320464490065200763290266433114753838302841764942447514610542889947714646322722278685831189354326359962237246541269250256904078317988034192895437614729572982142573497452969180501854625502939581071827770480591205072507112912833359995138296951072211388370069260038997792727867561309234522534745272582598408044849336011467292142746999854793198968793113623112591627350439247826568736437999164404162985340903037231572339830254701576477397057449943784210458515647057138793364401567304047397843912213068495395692607080743216492795855706918306682364024371489381510862595566293946660971854536434032768116837411057568218917269287429286633989567299319645929304326352974176753991007807424646966252102499207433103772461547839507946945769407153855899047590437539585899488731994421178298001274681840633754346247603198497645984394413132964912221092722102726482133145035259226462973781701477326359234496729296549832205674775821088860230414268584182084390235328957658085072665018712908110686594380647504939596675006397174788826347998607506240386523319802163496369457175380074768949067763384625088547499465784029058646762740087846990186222219844842551332290897981392987377990060888300395644084189444588600640351121488537998740257422256613498507373090946752803142570767370349876021059345376092642076111601174473913167477513032075185670460272508933816071218643055599222879244927910703539541153227943548519067057190995482138269426083253516356365733625025554335620242152962157296781525939287512214832253580158444526707237330693016594250260261566979074388661211344835318357410120510939110187077682510604404874133723704582930491819185812763879009860821554454992331465772476712680612431244381064221686577050580583286159593281673277649918000150949046332034565173417798333823120359105536124671876130015679086197428674269489769321145883327306719053918324427135641208463379173592588911119003499362000940032325941302111760592414236569328509009511239934782404113573099864050081851980158005196136247610927170891435530852291193861458324679747944100263663873587900853652960288011855771396664957717518136693189197770349251045530536907012221878500025970019042766878647198128927219446721782548613645215107119249506652544012730403187176994898149230417576583584728092655097811262064523623129344717640267650496926110396707414157281060145445941421600390185902288870655762517339160952245796704068548837824679717946213673797599088309745574040085873608117424805435075963586508626118897385225198699469968495367871104216575887240660299145943987998048192497052621756867086144598620190783680129592618447210020772471746102700545111708439266506412154750368098270321063983403748018753925058744925824080448611658335711563929227279403817914614135901998575041764812829509035538758541937354124703749072855613107605254476844826995511487408445249169939473018701207477606083239308801777804424814879032611639864950314169105401040526637943700954608354083671725787068726860841035578827593624238406315849869728924694042077859284679371553752321315975204289334413730593669756941845651525532052727556519485668612693564376743045786889564335292715263473450352554768368603243501472068766113986075240092269617430284636103179665226547645142068670234586750956338737667435480518405040426828887794371887805184248221629392850719375507015680683866329402145359299747909843972222576002942167050304771658070886093621451878734100937442373564962657261341229422864485058549402757651585129871072851229541916612707923726104026967119850954498059012114708916396785685200502864108933615622800435728144725959006199204475849455362233297410204152854733530014031604043381808629561962014216430915713668127681094093368882721995272020391490003859551463896678144899515261488443790319426714171553480129957510462078524983142603134402008324434931762703186890032646917523132560801372810246295057625400966725985379521329342546882823608006533851079646159851065307821135038214284235012726725114138965332389646290379258891444927115977212874090611300209266677516359073059221799418727593662080555334055366076190353779226582276787366012127700965839450992803524575302709426211810056490355636860523829356725389450081297339129155013938302136887448192986595476852851710297893976054996507794210860363026051653239716354843521629687603123173096009752501104445140715562857177812836174765666703277579502428320356980947133970222933447960934681998685131713440521261448141211871796171355755919101802662923281926584304301570382558282450171308067435395540659587572582459488829601805052177077996069362264605248017851188223489752235096988312668806077356761662739190761977908615834739941483628301281936469241116675070199840076686921230084213741772436106287383616972679895783616757058988940613582688480414987917433272816147750325751779060466647835061298272390049303428696656494300321730350408104435530364839867667253534598385847686344208367322562960804044429452169443343892961606077557533502221036660843489537653124156310652585216986351061691476233347629569772413520925657170430152304643225255717593202567380561904804981266704048346944768221836239007668541025602100227281870449664452707772864325356972275196964925883408366577543387465444686901326582449849110387832261366570721519693149065481896695857138225208256098215788786799262917539997523462764332867961487888467676691070675672951241382191728275552850029228268563111404074174616149545950725412540087406129320536957227617100950903302158026327278250564556353699943052252548128678441789007959754841679760913576346928227733861547030208376130832542824236533316131004502781632125049510932417646024332195245719629772017606319158692442106154149302247553288330842880867092057972485238418489501642369830346634976795109558707547817369471105856815275549492458573624500538079328579437512948162821168186261276630591690991502026097752994578278865094177941807727621990473398778921201068981628320679166406586815708598202651668995000993336510490369942177243505383893417073249603457888682574946650655043110234422892107513703064605803134933255192885908191598291266199520882029032749440444155381369091925936823818609471271030236146921713519451865536232345087107067207966730552717496377554719154860227022765004750936879221767332249364633778645431806252530890960540191878246360002141757909356400097206261095831900163630757978954968181004218793880289663283926144497388842106718694549314806248340873465578610690340518178145254718905591739019308103076565515942139097692307888749204576354033087161326895612290937699045263065373643519565644859015123140586337829348054350258099603377548468897390798010104125167140090655712649497775386915904202939144301611928419319843943341884984215544574862746325895008838170937444508768985555826009148089815305468981845267657208342827299150976956994693394521055211659251906695288248266398098355640796349006059836425081023610380134280949261899976465941648083674111332108851278601140366525858607242850830308817075812760910366508899986917414387894647524272055499550525340569885879436291471221915673741794429131680390135379433490663599771043461323719321815819134882676311205688957227510089408163904489198207042763505073939862471402934493662450793837010054926029045361388246415167303602986252307774468854382394517354612611822101386509639069564918387856831794874116498787917037747665248564914219041449290455766730124963600453497307205158415670939125022481155461529331405658439339195159994678665056336934622648714713609963802303573467487547262666847374234862048532668962100522714091347454409290158254895077162418405590312780301968175511509263735980287951225762517164602731734482888025728225716704456827292643970396860676934493907054653444206388881977324268930974174200761871634009234171096729516498975634145259593096958586579748585054318307244423750115087647007639729901439721789338721277027098043479217141288581239541827980240180900347941043170357165052513666168833990335521486223250103404103166726454294614508993589964926957685491652745475896758761500647980553911170536717360005030977494583619516734323353752943883149282434218246153728378429874339918651552889645398625632047382493021081165894334031542268336315394389432515335867578750304001551120875103817463898122851814973443172529665159578506075328561927153204783928153972868377281228123123759484774320685054664966678573106840415073449476035697096192235873123580024098767837261574690264819473548276147828515953807018188136369680866460020035188041079718249133445671774927151526771651733254293959806561627598598716130977348126368626928166706621715953675869452948779903194248728270764485080929180607500681411916906720822066812246020023790072082831857587114238478792939561693563199394623171017143487388427515323745360918506199664052000048951562452443126292424361051083045865488888060463141115085038251973821608352189284054229050313665874370236725912134569956343858683412708547292843395417379313802716073381000504841208531242598070155073508244847383044303008535028352059797593852752989713819944925750107788313690898557123378810051283843512330833997557733717646947131138290351617372016836822033512979258254808657131044724293954663148180396991611413439035319606051529175457751752252046410975244407676547508806197188233327764660764515794737101938264280694948540367699089170362108137142481072752643018933901212743858481486559083531790049665478533693530126809397190602969708772007034928681494268298330662738531510533010691565008628601546670835957748971859649085845449501606282014419713185080058677810329943712059274375121256176693051198810992742195269254348142831726242250582448400433459256374843334232110707300026746735845579946611320797882146676754477379264540292936831667036662020651897364943826680703069027084446588276578949235763665640565384617122672485979687292559337674692817799031879930574056802999408451252582356073405322314279834134821608564397210976210793516224173541760609377152462330598807009629828245926887058469256328070670519529449493051193109532543561107731958357318837610738413045382739714423503556507654152900997468379709304635888247449695185306972095462438281343668865826798785258418746426527368815012879444304201600384605761070920005850995418868791851257557499067252117507767544017469548526895787815622583190198408538239593448873320246577143010375096195192487600459196140586688878370003498149822227582403941918964203988441846344704712787345449162168548186229872891640400186701626562530141464854424761713182199911557823441841372599414675284323756503727132446841759618696765226440799390913049726003857101235077663290880306163962162844022834896446365120657971613878056218223894928342520537358601769089434045567787220487761606079316561298745209925769222134771403095826531662296969953044616581089899511601713101498497948220188028419748996360638742752285755914281492690006995106079623831633029340401706569453002989049230437026220211918903459670268466444335891644735803795595298920512580437855084708030710219683915511750188250226910765165032186027254790583420852590946958828900696202718302686616523735238540746258514226256815318970429398044200153389519782192582030374456501095863017562628921727887784305503592233888095574947503762343769060819798795782678216918000258301971132866449472651331860575130908583918439287353111153431250409476301230293818293362148116811632402713470611624835112724052323045375116990330828710616929516986346342825690095751552548701489455370178864902425416895288655383220962666893879372767223891436964501465316616436940235737198495662109085947873504302363483134840208472874255870967176927398297018860026076669510598008949064827201721117951057908977836967213249070758888209241953209930599859581083437613871372735431005198079274598391601519048474621626693412546367542566500615625644519351198018728426929244032320843724142292661243902385925031936406374804450957566258383134336176880944232347655520181772797916968088204171533351576554568100246033782368450948532788233790541710884946169904780125088883452262157207028340476157939713982752001029846425159649449933863275686702349359569665956465261380129653824464392381585676893199980017828330543382034066144263158774785474683958812361701637739823405285347137018134107249589287934623659220252450983835681913357118394404396279010702603453026115176127753042172113938012226744844153697744567239015485938564692176256274732045798599983241965496575938959906547551849935525554111499895463234688392379977967692468875431145203853296501051562647168146839339470629677029595621502948154094542315849244507177459472021700880994663432587391648497598215989816269398053743274215440733306592540598329837519396381060858865030478297607761301259383155659820468419436936788665484641773210963678683236716559486130340054084726689826397604243734673184033840227312455043076727303933770208735467564390851116584551934254358591256018824037942918643285098600834659005246278378167016795014316732732802685236640461607964735271581483661642562547544622010254054678888442279484616859105745432892085722791378917238693085501852445638237717646405521519432031029538496187026727675140589583522349432578105300951566941963843452193440616083036132250060385484798965795530215350506820559370895155397941423252248698660847642812884153505150276992288728487878653210086471170554769285433305388108813185975382460323629287455892006097805823879251669996703688782037310670242482488028113138873657437064018157714152670794412721703678088294125418037073476159168979357525516002118866687570466458477025278612551649360049577094173727181703433357517277491603633982461674928406875873611686855240348038189726971456665169260039855251523801662852430350883038077062720278604235164130620364433994627549465898797472022667935318877612094030941019039021024043397199398553435679464178748355836587667160535932087147072447912776218254848289021852409174622194982658401376365446196024925001604244926503960462995064324372089711461226999389535774448686023509171943489816365678749215931760905326518899767699423872060986579645845662238327294947053487270316640975381810266107295426944800462297076638977111303791845767473350405310564390865764586423821328002854421023119750681236132509426087136277270428750799309691888115873171620973721549276148073750051294437573053455464438443460056884376830725826901068772605334184409972822008520983511677539769044257594662766152366739835856989713130405982209356076315544814689770601858801662558080107996350906713700499054115340834656490263136132559754062056876304333629484132937119359903409005897157122864982281952324326062439897246295227924737984944171913737133034748120619761973385355244586428621819059431386614739882125535374452629987430710853871339786139345120971043758010644901301004554091118716285706107481000670901484880956610150321727422629582665336214262183240230259253605823059785304958051731687618967692380157129084456825815650863155390334401531907318756522487529539466247040963480201248675945002600134522658051415318610933173392939816309044373827006799006681321060458661133257059881997172970367663780398167048977077827584712162645340705053807560805328490512031341646280457233399565126098251905773194245586962985627090564858309328214447799937011669888082574486462151305476393374808452712448164631227099105597161974544795660353045021436978953401581982332216296514128215893187405380401176470313214605571623832273726482734423055373983110221547705180873800173962707530022355562624679482249638591560787203926295438166748077581234321992155697731459434049771986249671606259090903645452395071367194539133573919238771335198832306626587043999394626509000930857960912554814281040498657021595919518716254903679777212299139934303848307246497750458024635414216414422207799048040054938821284287284338555035131472183408629459311386123359086025319614517848508718896157369450530392410758531189136204616202282396759341104694988417163849131265626885919487678977030766117529610897641100265866902145075951306734542068163586722766293937381574666520465386238797370620406856130357060511401452804545963678149578443838228432369249128525348494116454971371672042593865025162351001173128177131997125229820639255168216892357128110369016392574358909754076709411302141139708256399661844583076113467973752806595082373923652177525235464758175046106545773918421614410296126633987396699421086551442978593414214915649366425171562486810991320734694499857302709203050052202896309429645250926695514338148534974465498554063976031284916960313990952714715030720245991154471065469594752462373907285731726701885843357378871993770054161730735356828843408039317435786038000172303878931184026789113778477255230177426392941545034331532036506674475747663077618389612660267971371496521565225554648556716253982030799628200993833382475940742645047831471857246521474978693015629920946822701472702845159896972313861873066379261393079760164540866293383509075889076058500873263122917510361298530042201948666588822215059724188621319244528937094151649470620811259612866302505344262219755243707456317802891462346475040279538786219184158276684729844818803585109504981253411342769559114595068690485659715928471671566411237314132223921205349179035554953223011400357101353541255589153911210705698181067701155916798200547023002201946918824624914762542085633600426811404266689042155630034496945738741582070897468075651858028265240516287453193621081011537134117977340108072195415020491413393984849678841484150885904904426824456611659841207445436054045025084411248896509649903782721837415776541449713531538526157154352099806846604702506156870042447518454218880432930867375858599463932401339112271716081725734787166241709110633797317977581032656929488253146771623180238704335786208957221942219231170826329005497412554446907346590029422651862298628663426832239181516635533510279447711205911969216601194839567903931257921955340151662655371021412909802502332779338400937541598253582801500992898820013406267757077580016871113968575611457115831622249859183798140983194222538987533773789377707469927647206515170016013300382131744349295124193402059327528859655897093740971980867670352631994927455380165933561559061945554447994034458717144037240693583861232982410664020544313177013538088598641528090314062556352034306410802185501373814521458807524903140479567263124646912377928973758112230762861682874637741268643334360184858372501191753513271823284904229066295438369551180040929466077430611144870670261918587515557321365331047688655475629128755093108125128558684689525120137042982526415464423566902157955728387370530614840847158662415383164277052469701040486440940954731728845687033472064845813261532122322789388190752003812600615175895671095410188977047346491562344074200205956173803773728055742719808431377057582700913204095921566492622073594711032033539931143774354891159868701940372550207112294896807389627157061344149276685735129754657506232682563068232195240284852724415556019421011029399911982521221045131099560294671257594755420005788172300855115020792912867323679045986100663206903704762515462066435019512709588148066456157378123963179883337041926228998884441314910595698913016687481159176144532351859465168703028697984538030259489134359025538071097106715102614538952199026485215054486822167278245520438469154264787941236969046958708569375952582755970110689741637290362204988681468790787751727401685887833793156825494902221065571312568961374716221130041839863072732189282107162914219256056196632641548723196097900221906060681640110457522311906564978669741959506877002903621047828290522804864497438823942596403917688230399921576742490265606670835166415537375460990322634119600456943280895889948167030199346035388815911283196852868704611443646178162059591415034657786732570136731265104246502305368505874357199161874263368301334244811281751833242339456071970367565392686067615841211865700837952342199200033105000676571104834906468984996489226484355114515889478334640380662969670899138297573663999399087066151526724186514366578049541357999783645939470891943253140217898582546191695888689477087582982829762320763266273371171656226441804764519196250088301785856464511820082371130784556366175687879720354138440267692603057553057342043391184024517191638759487678929480149338119208737738917215029179323427714269686147769451451208097249041263165363270337636544545195536201028115680787512112015783305404347215453378014994524014601174343760938371865009260416514661794891641567304243281320683152907387857481295864963241350160523161974277814021393568143659555628056727453753834408268326861925845279725986676729069419406208061768267897458931130468351491167329623848288879275576251725819522759325824054185452197516330299736116174299983957710319484654284809178355193016270137025548855320387439894297696505148734787240878296905165211920991241406315861825809986342804652304368908551443049122386315320836666454756121177857442334751999338237640538703953880768116826070546498554605201753206583833944359421213846692200686794946505929600754862160117298724303883512870433056431881843799281151082271474896342812632175021890804998513566317684956486692211043808529935562870106843272257538538836842899897149325242808145064512210982835190074361728304562353459818002508330369902264226145716349009047077761577266191373224565986893222024305756244640742966220833573254942339093252648270384541312972525049835128932680750360543316240006478666822755782276910331597092301524634309048504133729862998455514431582260657689469316068077002918330387643678337553958234546218020060413123882262708189892434872292065643752061163313402297584129835171922471489950915367392994935088439565278990398927869719459706103401987642705301666289831135077085456986467949257796910993847030014232504211012077627179049663838592421765937832412320189401651619945424304000293860160591275310694722756900299571424875318177718300325173277421502759019661671370003831853734270145133354357599890174181615926551403414877041608527096935664939050382283971611088048221991185191496651668321208531087250992230254902303527780219889530202597641050941963534114919883642313550665227000692056947063859367057177609007601332758964064665095418626913506046991845603788020374070964151795174675264816396879577862995265092173595062114281860496167044853526455513480235086153301448476423732917680428648217590167650155163393868488011541711163481830882034847786773194085717923614142259745287379155550737922536318374887965912015897770402695400393093063802237568839909832987661844203048321227377577261582041323326924833523476001698252912283975991591111774409231874501973243788327101990139630872407810663817011367942831413156078252076337554358443438814774367016314620997229258621525981409552482760552713454510004039659128762399652839278595247827874116618339100267533214974698939041737214191384316251524818639582526560324272011486748642387391568581620494429989619023933035512895157088233056852789662702731007936547486151897064495243258474788249429320441181230275672850308845607711011998015795754195039916791000300318823694175646060083515939918249720153390631963970161568432284107900922874179668333760629052816637102861412703096678074382678929297309121413998225887718916915059901469513955887650031833653503548092361167483113557391925355241789995868248827182688418286217989276299618027200285029405751599976337843204013435113764881104356935865185856229895715222625450681717018401918879406316521554023448819038934796243573402052786377767997805554241687103289268127926742636685371042829950258215406750537758806003097193340956865961140177038765356548857051452022259709096887148920166682776062033016835377679632497295265940122917428173154272312833006478725742740432432737423252017766826272219764430244383214863247260074327622491652312976233611776727465437745547331703850715595091545216250124630990855187876857165493934807162769938403327049462493419933699970577688262683588109550298426998736482763984535182886693142150207120828159452813733525346389069171258284337532762745098335933876801423183754192182729481926473718081265837394719459828996063639443252779562262009294091056054087075137410984090985196157694277153646682545924563374663294954470870060203868519629323767497415319127823793465502952058419498646096099037831492900824822063466621004833226745802328502801874743814522024097119966495283658768405487075483007319929322927270225041638198103443480223123157711017311343115161718645560919412213809266149798389762270707181839924338967255025802757297765491368715975312488972062350323600034844658058275964251102387207127842119279727688372333940590101693389290424565181193710052265559839351859837611097690080140324951200486359605810159435283278657441406019878297572378450028921263237493543163074562343551158517523431942726117105679131649562404426419645483686434486708356141274531865497781317238046871337470097370999393880904010853466298939861402355741384255608618056349174264062962527655205143139330246122910476642448776238820674497168307682507396421308739418299101109919760070823924243710464568902239219304423304743044329126742304701265800873701829314228828472666637331715494513935426614430125654179166834479583722782828462537674915607796526514747941532017733089084758350210057451345528646102736937412278589230519631986512646215174288162699445925019853673708680234733028885685340758470055552878528130881271213459480235687422565515309513864287248034985015555870293915275289220828077563956914557129616950843940267076503400994307855115135567336906164247464437517105275212734621239660506590898879083455947787080052594995841111334670759394096049515305633421769382238452944721599054244592907821316075402186135856125892959423291415924016893783792372230844060908887735817002590100598101414349024688112284231333615713814205041986988864791410672761564249249509385569758180803794006154349971636565947969123722623614378258328307376273952758837692883361337809995411107354418085073185242520951537628043582815214290236575481462774064501378208767059510778349432945465695016521588257424605361047942279499003926356832403558308279284853457055285396280741281144147649967994309248630963404308132943474919348755094107057308998774191525735853628410858247925337022602806373326072684173226595371485315000658455651160363739772907092375892319906008171674292978936552026805063370049511858862289104641987060895046459319152979539554651410544922030292470553396392692766048988003679291995499977485510488231647546767293759186785898847912969743993562038584880898267177141924273495450716259702838828024371652759339297699029114366888843998180446611738191585185707696962918092095765849208663592219918730442779558961446656551309450420998990928096595732309113779694119839593098825916485243463960086887002718730327847482867245374083063734737554534186227538628888660519473691224694317415948486263152983431323952426587868061232275746022378316471652335130639076386458024627550015740746623626660099396207220647175642508505304947817260081799587904092594162866866754867601794504071266405081346969694595676476620828021762685471524766674179471389835785785398756245768278679868440060888207536111916550235680357216506443150497026425993180750367583669256813724817502217214219168845986773572315164912227992452290137268629062959882505032701870265955172015909884223489016149543521573900886765250535950456863670689210794020835587974114434570790756580925466317034007657728220742399079798207263179248702634690032151182654936655676427228381875612274592644098675991448508489374067110124079535611061607205276192637737143050271771875929202155548824345944012229647215675948803866496719064409390354559796386878564922416323641105346204870817272738225234228616795600469947659073727128836797650172936278929810690557378216006623879807790496222783120835152325547694991651371274108118800991912757711756357407340131021757822753686863155611160135323023788062528351953398135106061841456196302350411645231421794648239019727069856323905945984348388516366959294170626587585376627018155351251271033599810611993228278715987557102713691261078113468824610276266174778819699530150646348856619175011630918522310511157920894155772347889788301926770172420128437873762388346642816856644716544634241352579841441168503235374022879292418130590582835243022923413043407731183836496964641553508325119975121057789013957168238058071380247017276919400131483975957937008304776699908442279107197355197143570849977540465867788526579148355808572705862614477136952956772741619187356626854968551850661499110772948592365707535871257663344243157469191452946832605171335301793022815495458547093958613497292026540370387678851649834173422710290712841120550125824167449875019825797993556502204317772647524159512794998823410565834022123197846146160055676399279753044368867875362207194881299314428312020960832592126771692270898136821728475447247235171281641380084358596704953305962028000475614980238814568433899180719324998693745088358515942007470549801801879187505045717436905301197673765563029090147560514909355251306841109454381306974093093080736311842534478674422747091754058131374828741428974211966176675919762213771309392603713728860700465881174450509132860697105972488334787050875226285459465977467274328770813299065021668350737478743896247910339829949796319233343782594077932992156300959147507814759519153781044315095147809839311337806973531895761886490079011929260527314752679002523508525346127425350651884035699831719193995453706901311072246591735355637808820271556762151191054529028559434132596174970192060901267771469504472177079071549749084698023764157795373658605681533957424104564415812790187344935153135996255373895228333591367204276553808459823268366376534126554489912226590751442072998898611563337454367881272535644197801344644206290099082462948409629909175231378538032033766656709482486947564925701385373528707720401090615109822266333444581888599031085809376392340631174627467394258675146899812638163874881532402962317822980032398015563122195820433126825526606821886010094959769352045832908788601091879549296884936969657619198064731814410130373595006483545043763347027566254641889503996598775439950501427722220349566969273098784197879545212837204668012254508880243799050444344762658367982249911126696232729064714843526115442401340886395704294394973829198808126767032828307273562543220263363583878226525626065177131971559654128088014523575397241059524799305042883378139115383278139268844425907361081943583922728526510352374164843755368946959708756149960286284390450007172495035469211201350143306986743687261164395102991646244202236337110487349193365802737684998523673704019268167676864092871291780349580376266765738772086340175680829501457921011289450704973220442567143912229110089351691247274468937353354650725845883987167870349643788238521753289043008817785656836967364021554421260705318399554156157689065590670354007796333601788684712418281997414972467585901699744273841202002811873931480363633191473293798387208999248619561292845797444405160297187628510815001829097365816879499969809534213632124046699741232405120481422835380278581385473510230398560685504671942521987594738141731105080364451995379124720906294835435706285778649477549626704426982779703027041974076393189301800312449203744562218047470954558701456934161790768478771041626244373673430128241923803522718713571319921622486143387194260934952095517336992032047310049127672543768068957571565157231385173328148363713246408489297535265454050491908852624744751793291977000860966917568426269050006216798420859641004282908291494971406572378611309798893163034499514723808148825846029523197243008048423114721511229945399759185352007162178634915605762428120433123368589293113727259913763815863972118305103384340950431643111218341156070364703490247005383301546725487684231015907522918608748178081905443108576453245164155180856383575635961437972990070801100545139032100699229380000066526633883731047661228466391284519813117943905972647856432385993670290844263848841857189891763022911665803955929705462499438938436932316141629199472680161822985604319458850446115592277612804733121878446385399365837831841919189022339047831465208469049357030233134480212135180791601840376737214881368675416659513490580475058333282633407852352413397291391014848490550203752970829090925855989173783556558435962207473366049520082140320573429526331620859170334048019088148043701812056200753523472235185803743474605104878275115275482651223837623425673086138404694598192556742476817318644556145842719322672947313546037968948903631398581683949538705421812854936823045007963922029344832047354178113068420519417147907837648233477806004988037247556821289751427639161404619878248864504951063668308211272975112616696720434765034050089136874866175942782842176191808296722624688943159940643509416201867128911099652109507864699041936246182437521465362864328776372673197247513601097588415733587914405421707741209693445758092597125834438594373883280628566549138656209804554811389971182142881718031274819115401092124191416297896914187306186797663839666258746516299700294442389369367389170649444776738691931071816244402179215051882766919174956628064902017707811944963355546947745946540294501158855610797760196485025077342521680374800268775156630122342170753248661252580475689454422760171275620855824449587807949541223194828351483123080648877843653717277015516732102128901628847009975546928608073927372991917720164302012094318877400185579563829898380577275456718927315868823008263090883402455557953664853001815273884198982391946615564543992450644251113612687745698192529631432621774550811708871192620911612409104536761806026312338480329732176892099431598694858512885895397579095569032251080882077448117434388909288403529819410740862344330904013316239493681189802804464489960640030346202148316545785195219109097201331710359014577742584812160268644991025060425186650662002681517850948712677571444388005535521497400395571384166079207978143825413383310653684941986095385651147500314083142435703889088108815829675146757416802219701598287080836240983627396863853399432164277788594290005609185503195160687553409678777281779975431662895157659278772719858068948582695664955907677430844250828139481006195726451044702538377102444341405032104498331878720334616527562145835929072857366150167959688911218876309696382858747026820567201654790679545873358859543137052196854418246793946839685930375239952907680275889709352269612288533990552873318535868125328005337657718040877200326512754200195245086496629289364295539699356990732162936471244224546969666893153715030999796209246062992242403895366126276662641891266230704323957301782481961249015785091459961379756656570139727628675124061343168802222546534743930236380489696656529730979776104862425379901227367955137622723783746503773544470299324312444120007056310967277907099225061699265679927571291398551396814624729389301712996218623007285594871936180725421613229344390205525078990311916936342502686756297543276103554732594496165848554276960545629679714620010516019818880573002308600899822128482395052481730405592561955863021148820952623785431859911028653860046058177722702084162800956182923968009284454120779163935359556359430921673212671617314684148176218837267513495426674407035219060191155013480354114443523352653305068926796665420715382613537647655980993784570095128972027990415141382302653142487682365740308578341976095146222619189663048546559948491201955306452139624436088642233168170161596717399147145452916099771729918770118672889158188384061511961588124362980661048126204233370162435728563162405484839152776006797482607910769473215069692397100168614836623680123582218467103684545374593193204490081325551619639760408646482464851630605211361106093266506813548039651355136062415038369116880188491070817136865425056433137311163529184299197022119257437444211687705281414490596582765930337512858164653953147512544264442033341368419676764731234375849316051039459335546012651971125739168886895115235942288946389714712807563537782492188932579564578874798338030635910283132329960770474849419422381164703995570461887628900799040774797585078803225391307667600378007925199714796575921124761000639199138831465847083266771101699167487703182436159495824589659014103710701410301144011184446376992749677926320349666940596162575252889088261235418209841550700296766074537196407968383893884235905111798435809656090211317927825803322977071916689229277209906715168777966960780427532629627117334899982573451502071161376974378182146147800325326583452766981770960330609504827058906875020108729272339829114769595636691434454223584729893562602443423549530279804652823168506558345443401011076406223868710482512111290063337381607114043988330946335104232513756666776812681515094804874055239113294469360499459642619549417825379436594405746033438914730780725263875352330887718571698326749878835182442487397528258604133873763301946554476930220169641797970776804843570677050516671737968778531384665649067142188487838700068676646341785754954025316834247454389588474782683330213073873894651124186394893522709012689923267388085844343659908251898885349410710172040591920419831526814411661990777568557846287938667258293776872724362757479741441629563463022247785414530299793244993777336915619771899430706488876701854112093794015937347530729744804248380548639280773227983108415970134490901439768193203911063475046161716580327675058150931161365099141376340777833844215476112508981879882478972528448384125878816813677266455318189935566550818489269070281918685272360632170979506866324603293842212102010775895844898351041062157305089867691440421079021206755144698392545104684047884553069653898760247637486392744336488791871307301536540906231788173810768567145559960559352711852436595749479004904013349887915602464111696697744826251583758689566960402880590687811435873228703583446849769736991293143898656621594626959695290469874389471593877913625264161362455676681381523610443521243009510014925712749317245348143834723866172583959528923230083241391138977716495508558149301667447730567356984244531655448967005560377403573446092629604552461152635048116799668902142161161349555265257981552711072291935905665361821913237558331429454811586670915558405406464600579566507098195795945990488396904317575649001789211084768584705267969923387286159682958906827627482541555891758884645138441655490025094548217212014026769913167957677107383441015328935887986489971445714448169885548248037012399527467269985360819179209576963536485239422767734921751995997458503029079563077280054140483511695033558104357114834093849802020611482964399801935267396925470297258877936119581348439556405207356955687019857105902369266447371084894157747732792886085060012228708964604321537507227845667429851610448534161231722703899231143704136064231177375153824370480952221259189022833482503376500896068046317202801647923137861184347516294575220534697926050141448348753340350173364938907428869424743042638037703493454950540732402849711879959080716405274396220378375267627447991367570696147143921288212741484307689326576778029525471713241008213893993021337872758219823419385858427807982419447849079818477813357648598260203239580585354732900268934404243689878188350245556318965608514062846570849540157720301755074361902273114913885367143475969518391898680388822957776024853209474278516868310962241636525812420606926806940136380054234444034147520578462468667767885123675005320764450727990168259610794749611285104523534160396657404137996179760264679110635266120779888968169822086022933303060129331780124480191930908936752654290011447936136112921640331561850824487560626535597056143505280720267890371050760662276753200005510905976415019079328124959826459475697551940051003035757340522039218005592672897819798052646890694908136313155852872577882104951256485601941604795538267185944095428435144407498823031387960634096521624635315389487664136976178770309819295858290440753323149013121266273625862939693386283381992944973769485186171453350708623141796782926050042581400943954639349770940297305906185487218192841848633047867344048202046175396629014113593768130965746652097113485936841439389039787209179763746084844950734111910145838673709115292009789639848935792797996805681001429211540870108711651440618637494003851596567082951609074072370105565557838877989946464487543534251399077244336936005899415396183113681550465339534654966454444119134595022754103551131312583007552794961590200863224922008811927621941965343125030388522740250381551809223467989185840755921654520083740957424214315134560386135438575389767473787382254856074175482740022603813145040935494403308053017724630145780094664844131426644125060529980747423925384663394938481931251684653511506464621363717445950714673719858317771823185302340566122799821090184035986567525439984790199634974243807733630906214890696089206164872220472572809003113365785790896986753741299840319916055798315580035367020282403362916679080047997512529683315172453793071344643771628115004735030036127504017031945548611085456618627820417796945966470116778005264067184255500433036551418787703079061445921784149741989330881953373003692620984091467206342385499051664646169693350852143537159365266555483865889649564133134520101479913622400129347344529914899849378812348128155883736195479352302663067762707827232994614516087439979263523086411845364554814645820916699079578839499357019755133716210840745791706608363382069625341506275181401552894485016122596337788656528951772529437199432615873995588611955112476524647083150975036413303476936674364527011750042180516136049662924041569913070981615676093962889428877610094967806313983973437218940669597470336796048533902958447993543142807553508532231933763448387737427739199484438564499871579123442437095328482999188364220955667498428568629249718651924610385719726784157673768022757246084257701183290972705663383957607372464370977331695975885682735007881401045237905097885909695033323127726595734945579963220532808793150567884904604184333697232429000490524413909262084824388214322785228969649054727762601727023399169533514947491016386311190771635785766389032684525518330076964875247782940121362350411765564918270576205724953312079858424088444635391625560774194775776297386745694761324028262656597865380512273209016351989707665332936343182965723421080146656193268171753675444797172672198178028610244638972098432637754006889784740864905999461366757478290984719963540527474739048350685462341486125113911054475403328020606532741605692337514808737831825921382354706319275678579108065913292530525544432067651512200223033137558129704835917472853220538415071522057713417435787196556693520169338752713013476140076401093435249948389739497477399871946502567823299503879354931350745365432015679153468798424285801668060753195845121143864404373760752334925910524753366358581091880129785344598733665541651322283723880525680384895338172537292560489074699878548353562087660640264868826406421004951100835835447469250005607262311633472537086833127890931413254250234826066260767341505683994097276344440109535948340455176186837324398293886997012495681032980775792226067911227504786526852617583296084320067251523330421290200168118964572250391345430164146452817726753381365222458433371332299014214930209955350061875819923551455973234871022594561139844244402861450253396360231093380150446035974162783186990154454124322844180013663836876459662078454322832742368681597404721511168719089795678381569918002935684917495989994937075650278983302193270499305083523869182957141759610234599596320169838512620885676455991408891950640723942559664464923385687755174522852320898064228526380710303109577394464587988677218709459844693678371764285750980747607402945263556578553556616561793704914425218412927627417601399565334414953842085539800002321797792086918642237984124345060874955983430936210277658404375009662074832407434401635161252957996005025934253238425542544878376446580524020527108363360888177518003696051197819755930259551779956869423124949991378565651720660246261396822611734749314949761649747477459037899059991764264353949245383850204728410767703139134537286011077500975150800023947757830257667259169980468271202110290611098478170200857514824557172154668830774365873840465291301039050481094751525492634943645137092671060028748954074023302554232795507230068515514062635281625653488508719635507844033925478850247603266563527059948408310151271619402126427510398179849889184471465820355209596066553979924810290474059644081466131125981753413199706424822325476053692497900069728829598766839921010058892599033326354484131057266225933033688815297693846218206677370004202337343954557293302858529306028660437178679590776417739064375782041362760009662113746488405292246379459248245973989004105403561321441353477144881908588567855720106579197635917357472605684045777356034207025285829860897904194417111251148575336154630369769005132844719304794250742872064846119377284971838690429853647955625391151255497292887658906438353036295728228301769729783039189376257650735403135078538357104019850651876740735516965133388653439869437499918347518376173496576096478507952963754426897126358829549311981848357290244036911376860022759892748938382095603487947868736536068744877733434305519154825727421497391816967676795250754565842906538324078821060676565274447558017659348785098899063428476581181976257914404855252185791310347768150280202424410251686005710204541902431456146956272942583394761322431724568469506628059431994403662110525513642974157161983549185355989105059290799577711118925445047083086628166686295726521389776131679126499789348965670049255713309173957038596761393753808410959760984624210203739558080821790569977071546323788928312038741164529284768604200947896458455136651245542605189870540401400886726064343645744930135974286624839467282681505034970318275567370100519634177057270141340140731021092138087947357781191415271030484916870153976481485711758746835695621866074677346982952777266508766139300892464534576033352875394757172248953031544708186338924084911200095314790426775570724990362350765658449460732007041494039184288504399911873885565715939063861531687928660170745942790972740919174907268614192645000746294960800445984620592083875991817439300798261884754519822128189441138371953831861591183259413218674525087766568208828570207634946536025661787014079952145225824666241810231559145686217382771657392867759805006108259516875266669422431091308000372019123314066130916467755946293361479743205889182201777928719069778877974750592370932737027238899699454666061864366657128003234107781499883130824761009908499548632961683089425128469942712605208846640891828535953245189965324775226207559839906050797031101092843441203230872800652760137370779890552642157197972211276167394256281232816348174583834488781484203299161311915090568906274369298848675252898163890211641047436888949838780735137179411015685478958767559044607483372657216948371215698089285897634540949248494078866270929524296116290688158776881978046370220197055317512937301352452825792554347405902454720775701348510281588599601218401425667105777670649800768111210947280285126107917565862229916924076569870778236290355525683564949433602399314933132721810211947733924817674237731476844682921152036350828047005323265782591468055796391636104952870546920510057955122440353527286837889853191952452988335830754698936955217117254511262209226392494060310040510582271775354889291635103189050864479933542163464710445261274998835263621383005143530602625409562006704053774895577456568724572659505974436337067202643568511626929317084426435345265600488319498941803475449312194017525355979002191965030153538813948509756042350867089543411812077522246213155314889581907325698679720720041252756174069654787741382995077156007807544728788825723162302561387438169261962842250902724824621611033275468064598946824051302574474499531561149334248867597692680879047132861590035372956447649129221929063179563787522063160173196908910646075867127156362140375176261273117373184232065299827761545170052372157431068875699159796350670240361521785539129099128290357237361630420829843318939550606667293243720418640415673151556268456235600768808436880225173622412371301006354774616321511204475280845851543529734227070601655446696218669323006937531157303769709786287976701042844212140523792571935355940460606467452590612453094673839966890569239853251658766718321461030938509579386629551905196707492749941265185782518234067041057928805885698354053855699543517957731762317690301385867130184337029992581584209235623964122314719541507593915881492834310853011235604964910646759965038755817380390067080804336911231896192290565041057105092905182811040307446325852719013295942978191586756801458268405190945348939442200838416591915814532440528025744279541614131667912729049931601086784851735920647710041516820677718283909869493929648698387799334148429338623206654445101228120708806289964119682543610200720039531732387643185919220798960371347419197695781369004242329547679078190118391514039048322896242841179452288590775436118698904944835495667736669714221821206126750186011083090792370032152295342181712522966145130351800309498531520357298671357018708602098483262947571486988760834994554204967413691861286123751598746274972172726208861447386720059430415648082367976087705007513505939627550681132956725984755730520546755559341929229832672723737931435656946593988028105978940562123001432481245902792994238796079204522465680289177757236256586906277332615950641084973446633984714728968312259834059307224437351783961184677465519578471239964840580351329615326803590526590088515344957771838685376749820843657197841785146557239184119164921406181219090530129476444873402841814347550293322523373035612802779755251098215079559722546921881783336717692320479607634254865836611683322343426959411842355722458098032626465235309930727292479640907749172412910748021605584487491938524548512303972087435393304850089307802118244656313011918864963689815112658879546518214211594353518050083972182795445188531937576670202691758798700162215808335814957411488375951456404390190009931441475191826640031594541942976655976408642014671640112685897322343591760784817008005312959932979333018018592571630769764975228978036760509562605828330832646400026482905950159631780498741396919866083355696898807039776318318736837983204011475081018366072378487848153184761875810630030443306868745385720723773190973644563538574263877411673097285840994756432607224270432139243332886668978374666328497641559891287337951562892143614273875689052841521350138669785521577178443843742619050807165444172175481376688037224746996724211437210229096416954252331812306763872573944497490901368064725543534126964138021979035322196587196059140871038011053283404966051662902859873572815845937515693600066769697823512515538294175092523710575591219981581110949820951897891134378905143597374790175323829366234608550469413827703493727931833778755099428200957654584962829050433066212617337405624346437200284755776226027521945606495236301040720158981154735293967693468076171945902157440578891795121427953153511488334465536403953783663622491898796482404991066068409608723587064318433623850522306496274128156724517734331725777854443657111464860878039251623144036805198174637119289602639442352230571382608633397917805944385220099228002343484373548104418903281922443125606098111878611984852655302560575012310528945187951473718100558863426187277401724633171614216745979707559188451395274608189788817605888766131362565520888658785133495791236868303864496113430154035932838377682686961519515475869448654691604783699415415105662312000940335333418268927816808351232339781872320655311584516846049457192840150600501021237663139788189043543039263424328530148068361010424607825377215032576543917956413190513619812430786993829688904078659110250514352251972294130675714320074620346774207399087559119949758894921244074985242139237505857389590436744359964243058752669778468098322778040083179796862577626144612054553873328132825898079507439246681690768460243567946224123010026627668167565369745211090600932123309304647001441262977782830667391754103486504822532481571130231077088335048023072189847652860744865414126710239777563258562871483338467188997896149629651988809731067114565985524072037943367096076292588263385088281996922595728475077413762738638141485426696100640772607678275587164009254577854017850742419507785224154814062475773020584250508296020357154947468792120231011133487874501014794587723794980302392105958209343781718358644091700132173467254564479273968901917159329903632305144454285512391527407205070794823094384392560737346324275993784564731613729657267285918242983018706489435760948964421713287499749054161591993062314900794455475840149438981595761249132618897319430345505571262714729641314675027922777909458785714772731187180914935937151927748980478987431223191265045200666192317602892503721472389246817497088734851230626487915880351888070989277825008937837785867840502516607969688697355876499078557735246481021914141493807023574723400260370081012196650047831251098035431382237231613717014361530279217709279646592979169007396948792952271010063657515919119031211813300816168867380842011230444444997475126215367451983933527873454391215314043885112089583645887970613185041050018481289402110785145240625799062594716984311984363969555027871598318905985424631994611928708992769402247317028979611251169876342479044870575614278249102681353758928947779082725479498214394552831249766396788752054831766111074100752082816008304690099730163829524008964848103929031279234133787561414200057790873445682605954426689049773876289963291222599822033597298641723977034524957503102137916835609204090595322150826271542658810433100257862362855598137706092002221339312484305605114432128614845836992206740908725814583696068574903619942851584033760955351013446411553164420513733302020328363081339074273988508890567639819483480999280267130125923303344794458063559851215578161361997847259986349482962008835155702922532594948890532633869558439762642631266661568433116167751535257825799760669179332293821075288792816817807357214055203254914797734171632000031646161960059117415144791668175692915323319388709123397013291455872038816539780055970451606525955260924802456066169910776077712133744598164399924872839950643644904726559025792260067669751853541599301803713460065085009100117288327535864442644354964042458675976923674620394131081426519230594704794717079235230802424233839477069663331789583704784797983153867958809627555085948020091684599613725168674354051217172297933462842802359136741418320068144634956721520385932607573610729451266923715342299180414325293900877462733958392843450955176300767383129642292093977829718868493219310295730928637759761305841723198413922917573719791592333116657732424607705379887561915433613320124465479462885964415107500276894072881536212682534097590420064655698891362901859235937579529005692027382793759578649159526465013574137438182941897891093932724465177087915323042675599621537979101650928932038857990327261248473342850207424327670205559901297937148006449405947392771494775762137003082162259311772562365621154877909885994842537359645091629769868532712497310245725394528320380264014580680495457907357071243523107950963444758674595483605021443513689419735912111831758306843715471489944490822866936896596744505471668259329156881746646595498120553169135731852067544555049984618012001676761851768853595493802548827395088518880428432390224003677958719720813790289127831105516458077864789436336931623733476047030893054577473390188744032857483522933402971748005450362795096507788945258466045049714060901092420992258235028493075734380562370631112500628554831549195794105206591278771398445307221287091440154946863650642442448443310186583113548398806610665535704483644001580405703794186353230151978239463444393001727704692274423524861777041974330835743113816366194269856634824041721467926222824170448630971995590050873294365657478259593922473269780888385730347153986110396278356615363779689175069398505800999031965021934213287821562415724437384393824684512277071813756283760411862271284657197608230920264481155318211709612813491385918725316651154548129070999073772109265674073549303748684924610223036383338338648971243695577045204957956847294143486744946003600840282368430971518606018808004883567659238989385063903131968504930025686347654855760509083502509488718266154890430049587519941421809320643053376008027749801389838641214898622052696672078110147267115942438113251097904318904478560772111942749229412525139345171160927879312531300257867766620004904168365952708989537696251427389795042338294358875989180430773253631271780120196644004823332731991901804182310484596222277125935113905828218931926410649056150134764913168041220773196099208827289227570743280654981577797998115333212536761451948103899516731486358061409966539558083013652136143299874398680063972556428771407470955896924919271193356042109110595569344850178820632970604746443838294331930162538602301183222893346940081731297580048116289213521614337662231965574398041452907165264187034473328550883652292093486229931630873644657421576546282407803567444005965722101692845393988877873856521294696361256497236029098346263090067346722286621164622436630860949133842412583352787840211735374365830727508936179128707825221293261783602709683471640764542579271289458929802705784384329754665039469628773780684341854952581503888168715899664896968329422534642584449295709209796614075000473839427787560315565903896946053268801740240970073751579181834850995833239915666042615891844023281651307538510468951550448664422515210270778003263416765141461672525123626597062395691035945236245333126639732644953931513252052709928894490034542378421897440830575204393546952148406683918929668360269684515050172166430345788489430150581166329130182931634079486243879650430163410884514145928821329133969486650379731614628466820732354350479532076902327104316830919716464140065964043946450130726116976974876108626317520169257247416766556403922378754463780546499955643351909282319922364362355407427276551351939861471722888518251604227008401661246526494886448104129517732373025289093179466034749758751481070185495423101787367031596570894061411944846975393111464505959451213962172245710353042420684292877501166689631499773008503004731355371195026828170327267227049303663788843585682794976202916929283551721062367999950928625161131134926417940591216505646866161353592212395414645971484703554964056672719015071216434859412451550090412188055282383432937678997030982881737620257119533293568484238212147287691765083289366537533165534661384220384825783191390345149006540410310908325707550938187479527947460256429479107051644379199170348129193730006872719733740027605694626631987762523353246973380540742155120618005383074344303344813339733572329437925334170024157670290656787558395592248058183848316808498923268872384127822192651535546853656782609260185468710684992266860949923625188498026704122811863715469760602473587080140372252241712496185690718380008286182758086249930008921843223354011713744800980505105379470386051918241067224294341412017026366081175619106375704983061718095500446205532848192499345993031004967370190845614248970384786816689922199307798182142543603835958515076724138070424130952801829170251652974629464449464635194945260168496230666917627841517337705550010343133958531955197807211978245180092307777464216457208966373533638981685827722063362498349181598915204071162482525547767070241089192812618470622511135185450919715644129575843435096168336466851043565068792399257104029504849482389621504549538816505089544836298192972354525733718993403832731666144734351977293288928363813163473567171023318296297728127735750497862139849331693858087299715410814262695938519639674350468405565810615363133160923719978567851417027959716033499055208656882604408598323151147445748984341131547912538229165903159608933125037364612099850492934557697505588268400368717239932808358983171441235937042524905193731596719774808457469109631689910131887300997047209486318799010469420166294093354679322688751774940267067395432670687674277348295867935021653809230005762431938328041638998082164208174348326094833006890549467070342173919410438889847367523969927677160637629931437730352082053428307144927608493982555046464257795957380279838826672625885583221011788659303338100336425625542281549841120801867532699154558640262690659927654344506603324461344837632592912207599498112891058022283492043646970576369404684880108937558110739899241848301669732453175968497440292615938868127336550804262081809984684347968432391813024461244307094937385988914830439766555651133754278111302564956406701143935109826743648408748368296442530805368624528310327995012926676855458235615772546259769311782294476205263903094775600829167284345337744277792293707171139936478509363750463117540225139963621398309093260911829859909423955818148633109359628349892623300537129727549225727025422457033540531538757962385016757649279391591386220667480308198470463509786752956159064117736717504697597339135138730599590098271137950112110760021814511067948034561356692447380537982418919276245979672580396672892675846861582163347414973269837032950910950185305445522287751444575627383236347035438361406894758118328335454917821274830966809523553235943240535923742689593855356733405879838988300965626100043025182967511108242991462832080250828388383756371056583361590734086463809704395712758659595681116500223341449017761156129046039018326352898588324412361516309316315929759042857341645873133373960169187674438228736559367022975872584996505476149345074752167862701374311215307653382921372645062931708727385283338930784359336291662730257337342176906619546572387862581348962861763939312247885142688759296477674672010425062020630032958287004901070919631243555430710904193328871650408948084028909838781429614662314746235860259303043019589723201270283920421802308474787572641625629066001109280323104410964165360908306618385961250674644815397057024404461291480154195320339960666802556454822775160395053100722168161179363711252137696609767235853288298236287481599358314937056439533601481877216678879215433539597367104497480483430091797477641840434920062180256057322119629426676825842385736430251413290264549567124520562343399744048208325556382321692020759975040208069046699926629074934521998099040314155889486005927750353603962220434987834311894215276878731301097183436913226485494644023800410317591249042014008780357374044219204496226982093408302349249146429724460446047328345612304196650322545870923353224338698073196506877079162789467771583680398985176414859055787304561830047048547534429457114136667912596094369780592323580694387845941679668279703998837659573713565881083367091447279228920143746743874176677781904067292534457723677818612347442252310330000198572806438089236541917426582442320033645469296564207686006454056211554332418148104763828917015277611137088529917585147577365567775949050033772781539030784151006715309493485343494519688490724106710789487676664599448931077268511777318185738638984545866482803607562597991093334734548719341839653503350839950422521889610842330864438441642420801091412967442203201016716528572814312789604827004124489299789628438694995483751319359722285603712072721891174658914223554831017528079679735887764543917745647994339577493628377019119540081367549206270653656025675691851996837650881953440649010495609740008729867160133902336498923687374691815360428993132548850923559714879871054656597645115691499506062351417544017533067012125187301703695917330184000317073543035804311620533921594686809862258601665092750880915459763610659514154661124837628633616224617326329773480367783143299654904412746553292299954438187380219197930434389168625133876201584243587023624324487142980876904948569870204259285938839295654680305281000659198843227008127542420579015205525990872214779772576880459722353269745473945730208405409643879698519023662372572446929766163028237819632195457623915119024214636553887497400698667144026989592970317946150673331710845153507062935686654181510201430004803469723801011793593385128174144252871728947789322043226614089895568819025962055330198245653342345289376581263109843237126744358606818765042266323370410767679494426061805065443594310562117420318875483312308354506663000049331017707428326299420337269076142797461525832455222933493421204928600808345694334904319054711914092533179816663698333159961061900361785307052968616802114961448658530666250790578678609233193777766257832335668349376838360668176101826214841208474621321400507494433598464869284618838639630843967594471499916544931620719967606221571301278055630843214913725302495770698545958923256495650714896191248624186904608766652192329517182924727793711864792599590718882296566747977150363406148946469878484508115012881738901432634306014894025993975128714359148089609933240316276686550116533283239363490220263024410635929071009385880612811354950507940146630311934388794275342140221932235017658613311690765985712487673375601816021467681388888980329712344868010020955379186630704821141971267225650638186233946376514095553172584648746224815340010738876905792433079551888458334945784940669583653608918747166920526959318102645775451848275041263261990469536237231229070563171860777611093717114599358142340173231959601587468104125165894756042086040627316794092453914995788710885578722319961138529452682493791121402719961877046802809195593995900041665024694556392770969870888762158881741091656951308100247936143467103707346226522535296872429735941390199618697901197944254331517117106548222197521294979747406845400430464877855736763654273461574096161625731000566728704693637926947679493061858613867966080625932197580090165389344127671036026546879735006604776454951926976994587379245438883652357834247215191451612087156357949546714331740853400093317352184987125361580724414447877069275328105921408664952278487146121816212834770004958721920403415942663393646798703513038460006668540451606538129888255251959962242861788232384005613855095677026082288173309245434294757955371486591524089592045597040141132473693320478839176400354051929562109135796393579188629093638745017304693487754344880024765800668450667638618604784305595658651863360749560706498150510349717913760825812368042512767150006066466597989256243041204077705736960495622283634611901899396172522289372674379265880697191605400221309323439420569352977101338875563660605737065585696661174989657494118677190189566065393892473065053900860121658206803522102373712341333506927559135894459839646643354740753922260521164971964156260687939823727845621876688882126415544546670319098422364137843359283404533813023419796023277614146254487656078372273278744565034626063960653411826568261884467357163908566286086252217833332825536392999144869742861036201154727610878068626943451457554920161799766596271734737529467591275110389249253838401432489878794590185348616452390964419069020757715215542237088644370131087760127166155658267770902632708946379618890699527616086585368864930059981262601468788208996670996019817875263729047742767790462992980825702083301294770048476037982717830360674174633751421027136375448557088480253077738158360023669770614539566841644863014127275652321354977466572839118487339817188804334488909958406897871210913842897421914526775235198342941029697559570130548943337899761931871261322567885084074298090416054856079669486113346598685536401158852663230584480395513713788407361561678480330437973923592324351167105567180973178898139962944052803265226055460795862659609138189118177065531251019928579641977293070362533190594153052812175683595707233890751991647889167819438386716723152550498966116570305141481572477453297245024042966169969466644373224400550642169873536517284000935777397548585182710139426769973615431349907966468972648877962409730303060673252394911055744360111866864880502021209934102765880023239454546586649031067237151840968825653452011728655244598821020652052042275768040484178679065271471210476511972524502105486111645256806427551694625547681531353873305056953425639940430373078133934066751184512944571281158881961116810382797025063818041698858838461008821871094912092968120352536569370771440425614201869284842835963191839832027213704718495459292151558933160192509286791281269669085373119840984508842725489886636250853380282241607565458539288315674515452453133768511379145606389882423325119187207937818233077995155644276795620603011777864895797933527719861060538043283984057737246007059291521310855180498696505903630788151195270298975329602180773916959100255233151176802029980848657028444535320739127665471619354579988659512821220001108706529138140168927753262591883566681443964719501268891584398459450999233375852202930187443521087414101454516933446015808142513956605198180792576026797218724472380495265677994175692481153188950392020133278906191142387196989343715085499942837413713888150798826263942436793524413560719597181793719591648573915452681890690318910578550170883401968699716923612908195403255725325008043648017458017876110437346497713422450202427085318207226711205331296515143803740290635325116851926306334145194137175761906919892003416547475810348748453843360240342944936095493317086719337122999135946142221680924489127405863028890851754763670753755954979432855059273382277339667718864971085697389171478693983266809985821751657662032625731219850722372010149302702947041124208155740742925214234951024123024189250520298789324530737763337474584985598215929288512222799569795218696399211557649485282087906112873272611073025630519313367689006262576047882672807817842236459169947653932626756818779144472433138833366808783214498110902154228256394509817835477670172739280362492955059862024973322659177231176399137909930391189344442818610686099846188319532254157729177517701780674642821503736373810619343745338999521145427523600903884920354693077236188738317470486853857106905562344264650679051423422461319896537970161890289574615576524581696174058352759559979956996365353060425302112531887096931723883724481703540849887071142212842285771181210638733131465371739504881245810490728609676584414223412975226228118858550410065074716386296945076539199581306176736696727028128056101831897378149557901464714573393365491739457250102342383283797460317911001310662067783767982164860459511481924657223409346529313079177361612055656296501394261873685658303549698285189794466535656209399807112069328235677719123195335612103468573344107996297242588601191122898929538832725410070210036119035825729355348166614551879512967124235690821235816391401095337359885580014793002439248114553851578676311946406564019921127179486763959730805676496521331945974445112579719572501909734998428077591755366879364165012081540970971988488519129404864562718240657861926619726386880848143640395152964855738554347092800362849705830764749287965145223281784569458814281288178953927899884281209834402965919668795675199770350121361077785308787699489931405606400459788505452997969257466402957823475703582222821047672578082237471195700472735837409430491244173558822585261461863835842911966814056923151422426464250079209641300462432742235718960060883290337258859614448413800314327470950906863673411821369454501380521116995519349189331070083229816527536038558253699005494376578027788292564925125018536225126390083760913061739855243405919629225843591455243314555458595758922214991950302574433930742903461995085832397945303757705590316566452924557520411668733508873782074533613740223722005812164743336434317580168726870158382715785295115324496902884270104333126536140457535359234379174715298302141840672003200246898277724998927691004634513340440916203495699439360185369251673017184427900009043083506802608289602268442427395081828519247187831632788090244030111821290244075567826404053232742576651360254120200025581436027713929162535725236016674798383947042507668770293569867369957901731637748232810781474529802027640688547189953475215017705538853953737598003596310314726014689788723162482633030827266348560901707860440982662559195893911906977104171431637788357781061609643095247081704059601152594104103073143735367368693787736675925083836887429800780680756348915317169764942892164157199706822064058353525786745589757379281679137259524131272756106471832509264807384948922816768043334083680099456642897595529742479601162593002421049981534435898273090569867742008775723578316224680365099041968233069867738138559183859046477409331580105148432189481064759048946604605519924923842058234513822428883442460154202808390654378796191497236413954480728220389281046383143886730930448683076007032169816096983171479480973109679963373457697252258015612462074613113755312629918107786107926437025922557678331405870343425642174370851208281087507215063073488639983941366613827745186085623154973036005482423603389963664818433663508857931793802010027393201847196811021379045580573371972974834754846775746143755256226078212018414059776524705447993855683916184375174218823261480662513638757185146333083741627121007117436009295283048613792385605442100961248909729868218873863462523534738558823681561160659929673618666663242126038713052187415708560249607821301304653844121141744283944622916590366653883658129104060789199652423592979080762944644232637692030008244108612500463499272506723560099656748273071186399329952566711021049932675734329073920666147869388763108382659007641904281154786830134354875267276940046733261559212375178032586240821979959853573193327731816687012642388368008934414333479043740090421146468107610270169335703761090502136629587883142841100500248438165035729422243447114452717055906357560816500341450501062233138744722953452037037977145149127049338422097031565526191956263570453628276484090982615740210011184144926287050189929522767871812938379890212142720080671732286774232464200775597025669359114234449085561051225844148785765112798533359312800054317401132274148706212498643157606884834053776604208385510523809118244783846430128221934965457981461225547219980395159353430523507909406695032291594922754876333183903939231781394462481739385251618209393060483684866070204744414558238668459483695452356444021375072851758864835355839328692192985551879499950816697031226542788447532641751224203164204536430620752915581095595621470679826708130133468962045510663212215430594195253204498135221029840114404113261483089383670139684478705070820844192938766564227265731810297676443728073489354250286356688762673553001290943039296576244133081352194424105996826756753552073955531273786110038071694197660102314495888563051256356894343825262329155103469354241975767350437950413735784518800554577175076542985164117507993986572967504310368315475142333133183657742839049844795075916777973785600201668910759258096565312706642059855997509044877331838488096152190101641809284594293810565969685167375788648665727330292718523390224648102363802791490555246137051657843045011701080151377070023021991578107546823547639155981860510767232356094071070993101043681337966354902556792390104825162915034861571729584800921267302959861041849130726240148922610758994427107344797383581137034237039101016786217576564198875991738879848826641443313281179281331838843169537824791478342301461336828783949176064644038776140642934033675837209004403532233417411554181418889306835217037940544809722568923645405878056241025751122960246854203005530634671840640024369858093348978226765330241344701576552497408356243312036524456583010242042609289299580803817423475913022328568925068471006488758374315690649939288568939339081010147938654277880061416667683326229780440771198436230169214642984535115800323804117806338781912467258149141589949451626790334338539056988375294839568035377542171819782118556357438389654221748615084543695296166006432805035029236966651792784983773965647746819341561979796576777134110181657097448551791925852116329431831470888087565045575937935688155674703034282363563040234057523054472247677410106490291681121010669868715001077499812989165928556349634742444245777060956803894506227149902882476413626014289889280531321452589520700105224596940342586666410967455219433918142161876095852164972673886787517981898858912224023690307437033747709725917947817787517072588844178897523376704439373219958617850672973239903813582479113397092680019658045144179893615718558386038710785983222557939580795162333271336370732442063157702897280869004414839836563165316747436442704973923642851250335980863226392896458529804287553056671035610498204857363464388170653166648834107641011283577736755558839987570303519634798292429975446576605321036338492431882196594953255525881514998235816835584744188981806136859989436454711627802709328585073078779833497601156616292266962558585497503833860529371526636622280482937562152902694489818030304974605544469246895476252411786041507539653468157608140859996416680182882215591904202150936934926904543713497640764253493615925889768268161947111404451522629958867872245973863594640442413207912332890835707910722117101828017781961253273336798409746422750331517573858947986035409576098221976739818513299929913135301047200727625335953086725598622839229708134986821938769013746060899012305170411999500400088629752807558937149383791631043493972715245685609102552355584591002860797334997800383619327291091869030376203484843520968941496623632455900579913232232648615777591912352283634961662235350583452440427657644156571132113474614113099675991280112853510065888612720004941318193648825976078746922571634957042790526616202403843225668404046533287217731440197813008611286248049630888845029228904417732398938487253637459933384212662185105276200929641636900483185478868087070031814445014723155797565368256058411415487134931621354352867280990016455749485854921872527332013957849025685304589115114923423040530778407430842870461078504389629159493176489413936921535028088491918067936875777836328434531528263230921940703916090511060488956029061338873681843890141573651911669569154525611114063423598298991362828995707074304638513561403065129010252895031230968706730276124978721084906032748145195148580520359834823289250016378616056326542596394718428292264103879770060998406333718587601229432594309645963709741552903369412996262377704682831593536029008937991469190227708380516177507392279308172629269678021687046321422156205484189950068491214584401135702284485308160728634252186509403491250278748178644039195895706526816064279095778704356619473099694872248704814443147217538293138407935341243129401248326200714618270456785015668660319221081061972536081723500363047276441778556641661613844785522650679066462515297848114540056725817893759228482468543284565864738486969581307609325570838274584421076826091697154248270596630380738696508562686430011637173284300594090361092675052626342038887356414840081627274964561572503066633494294504195221439830866280080048961661218990526629610616671520868753823956445316049413879876799082703207523592057942965189105532166314833148319963875654371516619464785094551459356575838029425828175739246096179136363405885331529683857619610765580731010898763879034048306609888083934916773556522049375335713592033452102004371024543056331734034246452356658660151212510725900700807379082730218964807815641206156399762171453626669505012254317002714863783834824292352688111762677681477818595386084434109782090429679572024899769134298882711198896407122414016901788706681635811624720116731734719889357732076344419006850422383943950043412930954080852460617317031476606478776252629859680607352346622786005835066204092873876567835492314813578157563011861744363331325650610956930893030230050676967228484831159484438393650103021744299030901090399849336037642028304574299615823403602295150980880796686433129239808695277482752060720918753470092966711938920313685469013789206745791378594545206528776594044722073699485342100311716997056547833767720827447378961010864949300896949016854363638289387992052790285921360877485207432818032833226275133031322320897956928088295933571982216455018114198448031130214672532672847322924810905666293829506544827782635373543631656799710247312143593276336818965531833529619444044190524881904252652875616943344048352775390374204057988047564559156651526587673960738050612698890447888709624899239369714785979155411181615030663576487097926807885964246515105704192260377540042473954970392367430641045077274380908542729276175172179153090139774488298754539451129365216340168149085830407974769018292646307803437291323822108177214539288578691431292053439820041980080120699074458538040719168328967986259705667422545366341539908054042636659783677446025671975063533508475902174285633738130939658157843626931082617721356484441313888759518620887715111611950394411257672537992848621231614725411027924898267636940905378954979930704478429110589282021077435420369653111135828651017239158902536806980300795915903290198547900590334883362042224293403889407908018047355914942606887355106984789557125246441545920799014715241782017013587723493171224655287600923955985592376902970200978946547261612566524442099056268100558134541509216530399722075456188881487689573222992363364512030340599276346504129150783790139707672629475698834807656717451837537205696780967796632926574845713992539642811042728185185592433505654726033580342518297439328811571752193094062617721116028498039555877680153651527509440434020443141314897058038534621930666125535518898661173224186662424048831648724656063608065481473044993891494481004555962885323498023902438447576119310177535091838478945834133965876453485968652992058271306615394126864752533501329453775037163147208586373297803888997538289437770453005799473287541066927463528498476112253379621354001637890714683560887825534080774711210963369607696632373315031001918003494094889349494851690170033690947964615470039574222369194040965345397792038955851695028429631918543665610161844733568295575263844234820672400320964069613572537702948539937943833885472722470719117010761738548883222345996973763802868207377508393715512849506555606168221914043828596122347056842564604409715658528874138814178900981316612600268478694040878736630061898140673465680017186453688619922041959803137361156348890531192172255674142777062112176838705357863334912030454038040353985468352193453588239825587517761657406834402988011273279636662120886225321857860427624259319187224682344624765851822486113616683225981353071186179431145535772851019781846209533562212243112061401801926457550365819287323839681151144135253396396614165672153015847134105871658316264431165243023398238123429629996109898506470424622330347817377139937836906622133685591179378381187611196731419041387490121451171861212741595261085401021900864660254570508708574530717732665571299115596937366566037758938515189076598167751417418533273794338127440815196997782393835951382553916275064810041113067877191207391709903451863225571127247912376689994098147145370745100848612129267089081940050906738216293416355852728199938154218559925297721913796405215103213595041412995202587568995422484393335625097543261591000780415665328161991670016090572510867159121732231331467787716749810062423642724517184973524297736638868458391251987921033216066773414805936485474994123113819591446309887008617494489488416512821706691176016227533513205780441622054285609204529917142865918337702900287573932709833645158420610924531972432960729466206722447527753351856323225553524718448892504909273235297496104419595268535136034689723170221682740051818899156796723684511375121019527011928593820796104906378969337022406608858055652262888332574624311793263303918804730532634137902433527865954357657446829738669871168007609841069221119299631184443298937711511668189617324204710334518499583668188323511560096143479462979419997953957123356576146783139973679112398180329697756584447110961453785552003744626838845109761364384774831494052506276692731562240226973506363104797787275073176656636205717141392973604832473973434667251547031889871198915209300863981943075354576733088374603845774551354346831425621501916667139045276462600203439644708516169200294247022044455604307291907373780714431751246065031887823441933952976883217851851569221521202708542475002308747869189554756722928731480941244123357627669705324696955797905220418639286815776041103345361135657969888859595141867599469907153826322909346105325079302240075825685558117015152818464391224659071899287515758163257896264087127556871153814987093631730505127099687206220739530654827989890487224253601952882049886349792495548973194532766476869125118191641983169830316233084962804122802726653632214796929335660872572057459796133751630856733545959218224730920881502713372753569846476028946118209037342431055392798093312456928055629672254758691886432559858249658906955911545113631737766426387399304246751590901347724974566248795098867808485900057398708876627578355770614766247701210678886791069881676790411197226181008808541368353196115086583692119336120893931557407686569452412239403637845498495357663717447220095639720830597009636886820142490770375830065350914284029664009407681216186179658408677893184008318268789395372806904497384445360667075658641445113545583149330773980875376182464656602603686696297284285024643632559060238499379809471634174914708535045287735640624428089964616736851782461942676018640789838982579831006501422858244566509648716458835924140786582411281768424919262870632800149591366962313108683204512218283474715260077747804188344850218552326969966385608666058128203292038353354917015436152564472137152691669973921806245539180184915919185747176060288397250425208979147086309140882557167588976287613624794570154593782530996111067628593289400159748101652476157907688390164683611123939543666999922642645676412641153849615143742353407839294235625234494639230655634040139191194140712153228826494358700101922972195460855651488105172496225830808479112746601108882500539066843662939880465308460308122894826446286427755412028682644632787229742152920466924720716839149927420272870116432121139519377114839705916050071029769052117967127310899015544723907631519546524469065449661969888788930775459408262770586407692812714589494363855311815154199099006909636385001281192992368886376461462328303867354264625252283893969525167894651502088111658409273850265639770262410170944587303524754961185783210934337815137535156101336408107968916854880965829257394918232595640170854260381694585107387447715612351508387843971735367694356136098430165008830898612785605190375912732156736105499057043607231672635024983046170414151366092118375641937046580457446155328767245663438491143129705293189368314073469910871586923893408054324467636027384666526974375815229363228936800292772912080631194811942994309075074461193888872090927478890519690041170818854054093129244017947313866275918403863782117631011416244587287301604350708926152118710832784947707642800924860782438921463003786389428733882044538667408888809950108188473609621151024161037637142114449493000012948194766583206844508696134292426294824691168345391030223237217398506024363833500887979710190124960553957096527414603273751103936382867116170813375014796272504255472445052246949593083597504930441418145887364720749970035034812899088535785450520255544297923549905375105977692828596012855700998986108335198757462405363989682659461214061983555016113148476342255191182352572108683884894809066017376856014481516549795774113612529186538362442300555313589167922873952175328260303105687660916601113078505006621727106513205116964987195300563151108644384455503434193313227946841019895125555771584537379464486094591264315531344301883852351814167892188899331843937284571494107830887719030240661183970868120611778865842371474710274827152427415887732673009429432352522178621041166020911213855521581571711252658360226152285538326527785553403651220993551036587681469557736059440537128196365801470529120521731143903990467591517264938860562458651035240790381998084944775017311059031306359021121675465332591407489860272041913071617769990203341578891095179811706895371873371649695882393936205898734016405892711767924735489066999105720788739108049272252855676696715404244567344753779120295486232810554679206682812022645452095555714403839561655056013203921303616094864007175392482021665597936408868392757930928158928376848510070837084832961774083437857643887478833865424210674854561275669142252415650471232682259036499126926728712153017984822433012150620334825798704407248088223692558666682216229120291968649409641338733279782864186716053470992034225297573539502960261629386479656634088476896338264707214325180439980695811736501216677051788721981209790740800240301294750902984973273128283529721561089729603786831380879873853241736607287817555748724368614967881902399365302702008917965814597712400792367493345752079530626366896993485848479231637784447364483333234291472527026389351358449647879605972028070543161946871576168364109811361893443022586697916878029520843904274395452209605428256805714193155113501529135965974253660170977128104934454805085678238837960263834923113512956697139996374915808779418862121136414773746021506077676852889803061894108908828020939435115410289193186939279153105314166593672000726518266724013997445196773663615263381048721708019149817012812947099233068238596003648657637940254732521829757794553742559230548114043511867515105555327420863412922264470556169357349297729671416412387481316531168507195335621854185668901806201816994765926927804841874811982168137260287713867927543269857930035930171986408130095824795593954199231252814664103923811158854974302550507058749091308847691189127025583892209960722605032215581802968758272729264612126084483215276116068662926762977126724806991937828099342181323696304414410492206955026774563172505917722687922391165758323132709784725600492853016364174537851033269578190791846619493661726468525305054291659707430952901499212945424856622919839373865467714902979124414340352644947100863180813684714111207168979041247136119703767750373811018828055322421748171559510011674511004053464314444486645383684935443473461332533268262448611908839553889226373059433303764466900421309915562173761961414210749734907170735841826114787089326535898096068707080429318382173557480980043478455445837094533042665008281389793914913978110857312793122012766849300269404003340064990825492995510161409898362136081718269578467295135279926239015274381392569925354477222429280848079731114943394498872580308661782991289111065050175860654391777371009429785633809433368297135576367185884762502527568009917674517898458388192407950237897333788515611607291439917132183329072208309639541447720684861133856880940547788298659654336965839276728673593655462271232005062951779849726169742685044363537580843300102226765221023496146115553561473441160631873408826155543498713917254357905312183427838570430863982553252859433847451336003246165307113087748792162372655087989536301384825527270791477656441704888662407692591768860639165474363586379356964471032415518658616565324584595552304765064920186853740272563708834171982883779769632785137265458815106944742037625945581108639942395472501089669709942928057165630125119353525646255312615272995120407176328629725718868379701989873615761325256068245456318106660788859815274417090406792415109296090557622632055405538864220492551109072784581137212496748898703925614092792503487035784422615756701849623489798678437042988017992972235404825148003088191550672970380548392646007822257630167267407770323524634614549557995222880785223687876686937622434240448056751247803810927841397990846521582664515079717972773026536456359091441963006526026959578687097396060887386631635003431297323168086371508656137913919408730846780062046362441245922436071495083858767754051783204146176674855982758722281193568573449430825194164554511044257681847573679024635282991052776720663398186281748597875700537525182802023457628371894927371254216503885983824862307203155925778166401851259869519936676448999334499757102147517835449969880576857473634799486004346879395867707749215567264944029666601499912980858145528403533808036475443154016871565171560071888123821413239250488874686692393767744591013934304375560552714110725353412340571440939267800731667601744518068521591798613445642394119460252779969707588186331273070816313872336703874306975272731333621788681707570423229656823996441580369299865335115199861249555243856994042707019166589309282093116286356464326773044871737404251518263949996945454658335238147085397836002032220765174432792959779187793829203906412793243297048019498297446141363178370284979214833473794094940556399921319999144160707191828027558978924683370321599354942067719480917425576215357379062008971014720947440890365451952759516739386121834439197519587577336308491184069929436862333539670924420448521319972568874628374110445659862454758216941471084625161285342622243231428700919415974875630181483679476821621053425194229667909816584251123382959995553983456722048067231624350513639795337763642888181508818099170831262636171412896329595180167478663278190206774265879992328638836923708705879302606438411672923001481185598972423530436377309905332322782914759983411375128177229326753010828938718459608286353607597077665737215325642463403725316830497607373620714659247142645306688969938700594259905362825461434681400921400988167865062888804931421945448885185638680932172486178172026879851006424634696149380872474155263954762338595220779544634693567024994255020323282622012191878757671329213134868364633782865590448840969347450363827791853715880896693668831940129253914800959526758186441756849215980656860878554245846745857507755665158908439204876692290269581986087509598908174924702982890824769223720195154966760317715231678780761846076703733252809506755956798891893063370965182049005940612552274563649994530539389671785978178760552796870281844541979693748713550423919047233533265638606593416734928787981519449205036853392293782230941722306944281840467107427539548004265199102462232973542815856900261499162253920703775524404826521738208755324686684576795865115840484802509431980043381260286206616275048154958317836731790402957756315122948466041152972591231611837249983449021596977435091351051001932236212613652900332854139324867258375018004398925062655669459337765803454587824431256619297745082900439134457636866959071190282737978626805841289677243134715338757366023273789356911972479489095911654464906572061264260233605124131889432312232953317347690093529821098628907205378059230134899291153270848896654147580403270507885147551839123297502898060246234951136331488937124798183312761796271489367746368510958359254286556374861410202567470477699032304598011557929118030630387168135204297815487350112560377953059364947584875150482912514910601045808858527199787885151927790218168492703655548507692023156265247004178455087060021345764885568330004111596202663391350323975322613481249470183067767256080006119141727777257056243784558259502840036389608792748138052807563481928267834954789068316843868903132306665747427439785380827769076743753544812271875115611797348277068038461600295982918571020789174886611433613657719839520167852868777870469848721245292815578415755733109196307329964922672869539071746201492684456111640780952779362484559892818933833010158881584235329806676897317038794704059183565643937800065260780079216811675602324943689846206501524074631660272115512886066488946143451351861126660918311515604213827441473868654586598367852494068783256390331692574989201360563387164336057982346626765107387359792539076912942617260896685285113083031076256859332375811844582348605831594995823012231378685139486739944255622802416919521488032203299231575040215347226079595441154120408845507423674986123101191046849552119568619645395611495150508056464203519881727653232459254096376966279968904093261334386644143189115545420245294489813480156325171517836947063973307524380029683562366941700730841150197172782148682823587377860955678359115617144014312296850268535367864519969400058381608226980062355069974774433767756493133156433355337946626774688130732841020619583584383544474513639774461393671018145628930539435092451171083578333288276405050149911705256302358537160426110277372350147778460916554800246560016866573097987753565198588072130365841098607643536245288479241181940875695947942386123709920010013496819655906800151144239730221250590458853481567940117301124499027694088945371962485324865157756390856040086444068358668066157312592412675555200136177961367775251476533564213676310798450116862175841598330919201786141707915146161688531813815238193478831784306066652687949345429736914281359421227235412252495276731804851469124219609103287224023616594620495497907726192838257560174636154832151696292624531681237060751218685392475015323615275155583113690971976585359674697079321975686615406819724716170884134152451688095069829468452531364157112865480333877050909480262245962596705522965514370584625068438909040716386729246905512993277120782228855270336758723173436101295495516564160474791506950036243714830062433654571576641970566132888016566311042574283472019150907462449273728184765245012079290136438179971843001548334789170794468369425206247453917754238056889764979834705319748366526975902630835143835771257162022839248817878628850653193047807452971180748253578380905566537045251146544609532048452339947178166973428842981668545505528574449528979853897112639277931651233692258510109452732869333518004437752845178673215466641651807629097581330081359312840616645186832574925479851882926411747411597834901396768472845037536532947413608511008311689854996973139280542306066104439508592244007290303035282311257243871069794335676624703974765294080009158409046650004449432561856042409984912024251508602736670421913905927432997038862876036093004949276099084570093441555753221782383208777449611813286546031010502692708527911844593450825303844236635332872910944392249495098093882373174618909100146395809360387304253797883320070215876270343670058306477946604608872401113653406408076301561738543607782036860099788050741182609621099771406885849124146648013106478972590923845740690631949592364708469617757383800267036505343383678249324136873389098477001794216057090204084462406058143749069051428451062094039249359480644615226790762821210755359088288624876958393281517083099491383653329935265091378681907638715456478866064908371847303818186124423341960943010286237279319439364982794288629329027575699382210202171056490727664213022044191616452809099355630651152781675376940750165222655755261201318393992360319199392006518636059039320346606519579815121861321374600689303790677183062466104409233437593598880538414629379441994934573734945560615990656136606462408676605877788520152958633634420631497436783835348741143872134832406686971208917455227481846047980011057092043751324208568267393159540793700562618585000728369466131524677161918915967499345099945201392098673797443631775954486069868753348005962811039508466163636109284693322506218850243539405337365077203038737062971062927983385248551713215145761211086389484360023173336099845258916113662199267887803171268218196427638700044536673314412483530647442820946453287710693465414931400651216698325434120511332766831101771272901494946484428156984937871318590551259940128704420138471652812229502626033758073992273164690459125538205920835208552014090303011998581954223609324671453818800788512210940928432546019675432006844457050143227417636863670156178616417972852521342918287355819378686353586810459763905025385560156964065234507860393573299542843774155884280037055735138614961298530938756316595401309455128315204650133008648389010021755658936644788935559836938107789542067052964458091968038720130890491777346367834219637699358044795007118232967021556720193244076246158885405301766850046627050432607424278195326818201854731472528333832317154342874810962319634202024326775420698626771871076509857043158966314941360993260006173372656619073536194209601682146399672581524676702787475188102403583045973941733522691531101485756255586688356404008777412374358182256814130131870993964924465012763746214380671805361242550917803608489266479973776392072312746912494964576794292960885318929773994774719179135844002696252174253166921519639629671718697502762813219755331913353622719218118518995821793933361890996998550907659657475927381747348474503148574057618938967676899878895733546658905965525295370467725357036414692238731401653711253296011378218072299106367623690645976368227080921986862625894519474103387213475192895061799121641124296022686294726526608906262477667626415840568574743876264620502939260418980869481050454867900835907197863750999174057013388869181251677864140991347933634644574667004725883558457769122381818735438718279428366150356159046026023077206029879507869367731583635459535851974979540911299332871587901713470796146814878927563942454953242243202743882060570419001370406778500258658059267404387969363955874757425901467681895492495479858179778598135939654165162297775401475654982639103777203295836445240683414801845687943643472407302033521561193410580382839798271036419781314746841118498551717793377015834404721095151044015783264963425627506246219496502357312486150123582016807445348520590611389655251379500784624960963582084416536038975714069587737620827024206974246255843199716607776502955774015196274275725022722336017995810429033109681131689010436665418496456259101711654196784024969130499569782770746594812975272276446831500761330413208661931832010843339689618169878866881062140388257038770555799965413993145341823509241500208342841136432049941919484045087332195694986230100214355806256424128362072427007096611003532041415486737229448314796284305112053626691759842363325701080960254381888507472761302121943531480928119908227200214360855659950599265275540233543064130012757139693586647250594589766692087402888502937451311174669038171192039261159755752419526559179252835592622589854991500786348881192150257125786642616184884891056972677715971041787864589402533482174606656586255423035338475357700039424568104879361539820744719021369599613135980509175529718951783257575658859342231668718382586138841851422556468548577749640236726972218332620380507143452158907279635752746133479869890823104050579427481911080889166520649821944699564200384575612485753363105905612057602016463298202876542534359813021218309085133489165101224435576198419692085954082113403557602243414380242619046585165193501284944751472580980287751337842847630361677542089734823130157996501257773134464399633854041044208941427622901913303622153951149506963542694143117260114661876663763857109364423393244618194486179872825733091978310690861918504533558810863253459853898953896858052253769537542692990102838959103517683219981761040513193177341092039070186538113619464220056948203953883315924042827687661884736510943916689666662284009362952837026457649980196129675565424197834110362266340970857750436627419147016837766502898542775394325662563784510829129211548934165890369336706576032759946745853095431824089438327406490162679148189337304886023333354531965558839694851899765381694953260311722089885513122864025551106237608821834096502999418787058031340604105920614735755188532239497013721351965402078273545093792936100903614397013810732316911285991068009586818236426247224861772927347038557935730886290635158159418871715472669677570776844895735996012379858112682108912305612976896424023631984251009398017988637115456857733268688775442534210817072973592535654990245820940219623575017074297586359831615870776166574991504268658985354756510536658145673955643418152622992680359464790899244617654473259368016226528148424986404197538253857133619444192180061841248740591036793448362267486861958341473000876145715793661712553177063272637664041320410548847707000812637463006612918350466278614476053292885202072660573134175519673742096320598347356998790917911785001643029535947271339697749095516246157405430321877182557198960734430236037022076162005712184560316630465260388074027424236605285083018652525321828651381197759419508923583022565006658842280364329695642061904593943874001439985125657758531124291245760943874072736356124089370602441960478050156115109521964204931531677295598910726219688443325225900557947284517949068740184316512295682777869406504420935960423408980403738975345671366453790996231528115276381145835243822125974859058536670536611729518172899211237088714167723183201416870164062014367572716061089380900713633969302298658403213119687014102535894349826502855609538631814728717033346330344813996055512016518692460295265230918120998694897551141888272655297641495905833294066519992353980180313702310413737340189662605976608232505494274481163448821961067014422712173005836832635139465278968055915325846763380957035813456571972468482384576230712851640357731874796004402753818600923757140106878597050783576698941565658951254221405706289276701858859969838901030254071065929273352454822677481594625800297654575467126963128889245227426931979603158605717197842427270042881534446313174175865038956128472273144523038979756836225819081992268041980671998277832765075936335894403485171657367559826075092382159740539458535755526029087744865288426487652012707946534840855754398208699765254915904987828786434771431150926818853895202765527659793413993248211872381336418347031612426666989856364606234731204036716790921662412771624135478103991215595021570094416686364124589662383960061111262108952456970224415971548813421051781684878204074654861274645698498081326387609728648323068127765322071841768698113634647100582000610953573991718555689739712473058614963984135889693926258906830410107749865149573646843577533495853715326862730378816965097366088486685298592021623005916504014180171670350231382157001016520013722691234906480494527567894725995919234866824768260205925741441421507352554671431177708111535625178130128516571431321522870797405870980010648678462991106932588687827693428736065958147551483846347500964385014001647828607271761526605903437523096650324525104812138883473994206609956131544563258843264132179639772986320564571254608333435649956086759871289584922226070978554231421767337407018819121620942850877829825036264476407456611860965612496430102096915446137090804357445662080161415290758015566193660346982022139158016224235189047814827546874720463899632449689098870954079148621882905461024102446663366588361242190460496756865885168289269725327632531141006212866735170319694516260322667941166879049705385742005405432327261121278665535619994565428081809048097314948901383673379322697776559650096844250273144118314382512884068035692569295849902015205603507142752581403926677259090668965725723177496248873872834337447775775600055018206600253860699463477143180770866702985929571596630388733132592874431461405391462477555258785725625837485337865513616622467628118207352174947821457384199557811175233327589872768630731731973306372429479561444892557515335685559835592367816830353758016669543241020508568036949716782381907973010362215054371815490779101865228272626363517916583024031040519411549711833690521083003005378907205137416711542193036905680838306355562626121202260273698453785300598570881425390268657280791454029481929086755517709800177435053606057358434424772353108931250488727402721429500196444252508323480477459196701579969282802867638843747141734720927190803059291394719554611131444428585534970781611703714092277497510888413719714187805600749866578637188002130478888862523714580489320234994971675604887034879944896953388601690874167126935339483973276206067168583272045072336550147020832385431378275868310937982155144840312615407054483527392228167619940323042796819103634667929782437618561934269000120300645107044853272606135522746814879582800565606221272536604286037771962811597828347672648511512409647601067261322494950224166535044747576636254317954189133832535103454068790178158643867941881549290930048519712422748888112879165392023343772640624687055446848514881638481786835648257197480030752551988206397974895245504359247821804160162044741451071582224927991564765768482798262938020892160954180648988190936574444024478870575485577977914275455494097047140217605497142816934648756730701702847728236418948947283716793267879419299460117841422495933672811327133282813088069656407448300986160597592866189258598432064857807187538976018772418314353995868543947589212374982292975705753792648089582341736544785300805413602101928841405347191313220872455809049452726231768011951499684636002937141040430798047901410350165783996354709533389935809430362670406942545392503069983054618960061606705978857822793973644263543734935300231638685254051150748025336562968110165895896976438777555890002154311493235831597665750720344736456938896769844207537203651355785902105137842468306316332531133595845518657900588982178731259232123890935681714377438093005540146150529403847953508748970874816244878849133520130227901342223660366918137511938993615043150428698631317494731395229415170330133911800073762375249902340821468335090264718509986667520849554859474570573271203552337085181382766418789707015136489118118917392417236134239080253053176123943202691110389297031179545110426408450283691457113828774617195695225547694785257721675302532682167199686986771031336285311552599055030833796203031252350573445736209521395504518832409351701801402786191868297204141164198792937056014779196381311870569964203958885666804661725132092407650143059292326137926346973914686499546461684714526811735954887796762554461092551898585627811835359087885820511719503745868235543764415279197491884670187243644892085906486427019717276934272665509296982917411741141031704974891647210628166850421670328986786496185964872508715010737413504234675349637383009035048911863383847069876248099498721007018483908530969121590778284607174865029874553765099662021618433292068674941453934583989681573193003286429816344887155978332556367622961870476885682952418372241165637765872628140350515648356882983974017805103014330047511487068888493674918999176404692350732415313044874881486966758486159841036320534075332911741391049405418207705758040012298183174738601549675410409103487928324161003931754575638347180646288449292243747574698802635780236856981201297613092242106893994072579974541648739392182634330262270361412806268869328900173350563760395363053302440340044961571066089140839564852431321561791886232840495042067049453332681560688116533042568793318393456343128187311044840516749194264573105754410717229439440727484236511835391658592241843866144011270579353459959870355041665768727383338948595643545731512158592456183786046379754940395095709648850600005246130350419997736723951427087096901030265470879977123896065683945545069524972983971682563632034144396156577880950784133501837154252495312212893218373402605586806527191295404501879750722347704363888127096980988881438193354128152417777955088269383004534514204092354506905768717230496448283550374042453113884127357844418083812243994887791441163502232213500832950096123644806043335477728849634450586871688065336701941475374593044550746229685848737811410500790530331863224908058979587193772085934949129439349334102234567172609458009169940587899906546745068042478330330512234307052479741273441573520698475196565814233066066868238934689919155698835993578239065994733951249493935790695666152275191257933261024683388187249116699240188796898901708768685853966856309743142441013929006183664395584957876334011593607050126087513060928463502199906061744138229769650852998051345846820759743425879863895718155589140042998723092229624379064881968191135598524838449770076972402858551409645026497591579970127777358120562845306715265192536576701030607772814102311777344069199868900892371321374492580115967454527440135105061695273346049476514925848028223167795766575199919701852779578818632380857978093789494425711677009182862102437833299861823009728546447070108223666461518186721293134749814156894603181434481164249292114499938530469479697750468905467433842409622642595557298332334077112099843373319590162120610425395754804332771645823406242875267854354784494209214256256027985758513045837253741587805997003033971201259691126699742049254239316141040002442620271714113973713490729866835773685138902815323147284969873784686107656603398883635297990846863201086549837950616560271563286306731222059042184877137908590577085228311791582007016290453840574888998949384804495506902453524435181402410080609760805725757537271103453002737925296005062969495057530216112450758691447478194273189238281769885080991928876537001504200063525927909373324419793859343897476000076864277756105830444954370153347179137195291256148230166818948284545814092894103462908620282181325260569515666803404952811168184480149315368841861439483547618602539240032464818405404707058512280511415426857694129848617112812996109809288548268114608086363819334617811998570358545014285358377316947581602419284171516116368574681290921099730302134697679679634573069268203859771113337486709554953599091978525770366572084916801323950475654120655156979489216874213647664533149740783491457776185517968826986707809140469144341800842230783561015401730922945287660296465248877401243081964932607663603033278911183444289388448588539127963131215025925869408793178719613166970304074785871800247118328844204622646725617908677923568101753273145376580236311444682198147054618492422776685086804861595913067441433412037096498481839442491711820131786218759778162245159093079178258295711051283804192550882369178287248608966034367980043623054426246906135263041604233655828782097807296606880568505339804203200977741382256584225725738774046394382666497434309023061771946354147179182716360169170685596491992875560510229543265962298060050456089359546792397404113364025080773396774417341956004416646783966010063034172446579407669717024707622766856120529307059418265965380911035453726613123658654723114008550177655561872072937444001903344838534554021260494360163121837764817771992832767230208361281727073180713055363237255707144698353090990048792414538138299675155701402497716622198798176211996367526931303042410745541732486809595485310529980422218978704261612135080376899542698656638002233716025434283205136941004880200165261575588587762002967135067471970325300874525079257048683068748241281558565613344903593021279861468557400322877508180864614958402824277496051979281306791438713327071261444021713017286643444412574107462899188166227879448180057768743824963581561120860977114274698373801255338745769063313352165532082482498350854171300550110761469492223358951906652469478465580855414597747975687860531654244963562237380846652386154717316152418961494287090597411368301417946499176326379902111369263817151379177696092899755513520212973079015620062060548628871897399222767577332361286657167283305978728670715506663102267173660815323864252083501120858042383431017770041271758321649441061898820850990071864162563415546921725110805616719783149871584064596934086903585491349429945582157149511459138866355465047273929723328045566309960194745112223458535549526133847481563242950958329732081927289367964956295608164204336323031759352726377029052210707760644232993174498392988284671344612911447513677131589626894296968753993691265157173920165749249578323803325488682552236779486837956524198263057651308674372976221758212629001367717993404973510463173970158261978128585044986546148829544440674960694611400417410373685955313987376084333810728637721391095296017360302248729981931689595000249265765233636723842589243335439406005922629997151062174614360371832322973927168729095063701957433983940701360187983589169663598212682189022759080737030030985961307041461729846702761256216537671804786035990581407365936487264576671502860647344853471556101614015484604825136145534692094961886727767170543477502437085584279084400116454809878040168786629988737433695189786017935321945977244891885662335530771555997236151427981849299246435490352597835741162862594252859553582774629054449655520730906521176163490135643550849531154353313368701552787277683132735039038259702364676141917313941354090821001630728659564979641737290779984129804672072415144486432501084717089623433227725348471953337431924673625006764760826803683583634778282630055792238099117956498636244554157327753244208692129368396245002544796348201944312045835397047481614338812518802736281386158420935108708112224075064406198843001449616417813650757356009298423694979007167400573976370749245158876097436096176860859407404401337792991201142157216089908515102411493977824846222142085528678793635557799071764053817544722741257946196416823897438096981707650710979821497077303164348313218928157819741145382352083847374468697339758852215022571734127932626514104208495903335089775385533174137683377990687979404616470311580647858076853503963216234953046404710791799040082633598643015400075640657286690518802965408637013503333601470598286823294346125214600217327205330735424238406632520780968696152728774174583039577611838132303634780714846752456915202849819388294247098706197406037077677914424337825458750443179474876786830830319426257326513390416165833809909246299669775964310361955331395224080509255660874509592450380924873834174660217908424262785580293081439655113520443745600385215386998806535168633574824394195102917593692543887891827099100507179135276156457451226553070148881820133642336775373108617819185145123019274697081644985821834342914338461255172215522791092492757201772271698511108580642553355376741967979801579676869349774592489774606917167504232557760476223513589474714097214158800781982302156597517818614026284205192029362812399262673413909879817509757372487800016065646600498314187070905416260012645740670836498093129072989197498528825546386136404346369766516454268333901034369847456318854090153634543891799668088192052385852749736774277030333704074197656823159659638424003535802415224776534513311115140078869461675416445830768911615637222755355325340707998631573452870113419900006050281062963448629078219470093071709215753364862109699313159773815660379219809226116359410449463824132207115422771807522835837295471780256143085119784202666802165626025310462925119140086757617096811987717070232072586333379852902130452485342569912188470333900175668130184720455346936145722462573537453368945868870748690119337547555509736687156702652681902238266592311234036416335844979072469560684761760435290624415352156223378046951683270125032754872595371047999590571716753386400730968222919534476756364643659609830161076614150521999540284577247872863448131060343290783647670699881780357581372898462510533841179499514010923960896452292911655096748954048374449378115715563998481494287109054369381973844707414648631044369396313926582485541543185825159317629247508318748148102856200821009662128963905061346184287684171884330440815596331336976807937980640322482671573276183449160723084525526102977670292399191099801176398795197568513676727182207155435659750090856155322337254806671439479438297736899346624677233221994863726015566610486464860657930531923783067935845472804484861236278250352657832739299782949639633534546110206040285174577538737234665637911467672572528866166606268822133534709350540456287273709888542696854006802097997895033778136066058403873351614013656482941911305907420264207552801352179702848863596227183007629023696371810548015405672375742446501143405720626197808507586001417493159967371855710126233288631808137143832671622927832421975628562475946458816354096003099626413487242328271032913927657518615102732536145014110552160010683894430583511846646589130603970668084862863713081095522267036384720385298301760011964068100066552755031993052439899193385451173753338341693703739868999774008633585229609393602592412134745384592202008763032168641219435837318300151299284967310023356922517339032146160114215728083222472367894029767268182498916429166963068861867012163936446138328028475013485681530861050493323869113956908618017162656671034734048567971247636061954067860149219296765221348009881976226685115713122133798972471581864516843626457767326610492234804420284416816161428836382844979738424291392520676241367585809972629798565474079680668910776085743604263114273626102548718255092796714184920117459462369270407283774459902735337906909641624807084327823816780049816293469340114126009727926254850095955235827259276542664783492150181665866964022667753868416208201988054783270205275483401900953740983804481626575035958186340910453096460430545633568657121556563768690154737991250321869514268844537557267439851182199556623395940821259758085507990033338241947041727492313172355552981659519531714626211307327380442353694304833598116804855535843902623215746523499780010850797103018290796178132513615383762881971356037583586583405115429044477223306421726696742764556641459595512254862110470419510316309876649983590412652996263642818167404909658770565384771290229177669455008513070342044780666824896558670927347084737241263238439615852062475165495714873314165913991755654095197520326572113788196076977080576801369598047281187627571579429597933531379135303248850013692184993537662165803872327690237453895187151641109118158919630535632154527734714980053328100025966117532497117265080018805988035861814667085552081373171731295359865556108463862114412089161494496810254444365352307157466835589549840179699669073292493624806967332559435417679444465667870158915357340104261326355804737142918162624733942154981992371630000379855429829363692831598490258859757427759521435886987754781845831247892499738346751669237199000174116658792838638491390388811259634552086002997100118127514764911306609573115607149564411930349289705579199100503676645277408490861793605115744380952654668419654788945402750115146783867451840075849883498329225730419557761240881231883629743547342265874002797023064891480136568649006771597730971409662756639545751536426479803957327532419174795435162105107425607947111315822754774487371908613269414169900880018562400490617789442815305561346840557169989285889350008749433751975956977046616767559270562095579244511604917009331827568492939773650344819730400825278153372310044695165488910878954173062275313767109883062763897419665304532281965203555319754348040152360178384836563616628526878792963037245168565147008425723221240361526793760754104510237866476851704683879684991116283071070899914248176179233324005027832026164237871809391726158661484127726531677764045702668741130464442633053698387000782548755441854265261465719559964921016731654561434436799656996656147647538036629874415154051923738765734946932323349261394942316569283059857662866784396628349592194124452818211445001459353675341391395137230394862746685516800106783056735281776079328416067610258376279668788230616977585152432567223571891268161630633964012221740347940579705522916727916548589860041531967604585874877120956566443512800431297880309580207146597477691141505780074993959650838645452847269520873863816922805385402726448652920211958093478959087726099754709407635408982591909590545349185585147303769896069288736374523550157483785659294676766519067337983937087980715154010792070901265398688272209926073639658552908290065275357747238509551409147586141968615581965733349341543587359998023877711489226189697144856903819225526299423741889336855508212550491624612437338512083870101217818890801411190590542998121759894188136768525905464118386960365681457532029094168965873538282031573556693331395166285039526493421220726845559274068480683279750628053948424633825379696009693065784957917296826310406756953083373166026433373648058315266387229483231337093821168453733943312131032464542244086307707220866312265364599043491499119025325322836752126144624486444604419085193222533036320786284559347565750029560770351271725064977952754944072991676812821234269425307673285877102911647672962113896274435451596569314654627685773893176809395002467710812531325088566464932218239847595005461482171143978373856707134602694395699615071204744499073339337720626441396332130634700513262918760237857965321727154195112998520759535832189909916386848165147024984919756379418883694534491032038568650845940106620371270395770501453337367476103775985946040914053574948964039980041790391676083934639160385901180748973955188104739828030612728070074324463926501378688922653437503677661166983965788195342962430723896687804425622808473067787738063443029283512139782701269438588791375300048685741828824458678638280539477311878717060184403783270064673646520844967263105479311258798098106851246904199617081488778309038740356895488443404299190191482241424727019139577068414470402577629042277096319909553441614322421144424818412505147972368560894445269152067949012466195281772207581678219431235142065311862016207545694119422330318717293745493357333148947885973957773710223347210665383464192498869281010695710050642424113006601312959773971251349886355372388258784463363053186633701544249190480367877197143710577277626405509394354096893116496151817147369598137928004096877740780524158779320551749926961276194617746288938905903558310045828588074520769702395834979459824242034507104986638766689408948397010652379104239100387044877265272218445287257114024760263886643078374546843689943076699907533594856899874365548149850594925540353047481398338870574946072092416933512532263925547675366386950968297356261906702075534134296180623466947578302078591510876954958424895398375706252280295414877954048350855075889651861741102910988290536900449592285780531082981422022642516086830349745878495326886534362893932029068259942588519070831675689341068694401541526582243715626552169417598836212810463247045215849266741707508725485781754421628730088946718067976000745897640292088166607132923471967322623296744386946541851686606056537085977143412379782047456546230027865250221435330439087589563372188105357566265446169099928936123695766219736302445084973806705283630856390224085028108682792874788109345984049751144031365054439900435760440668115771215962929107201020399206769504064252447797773530337574572938022397166280533677339384001056743298941728509632194546089197871009624226895642990084050310780501532162374177285209249821404941862841095769038647475326812732066992771816922795395027712844399190968286837268128342760512997747912890284681689470345053839385031850020617325035123343581976910793486742098315445194834407853873510760928595534968137217669058922467548322174843376629566129367105760874102718516238305139894965436180849416077899118603943604393389542630026486385324118440956291750465119151441267913845672469058568064391777823441471220993937575329933684076787317140950342569223589776846684802846357495824947887784681749748593473375102061935834053709678462247460474295705545850987662506902378490648114728703077470290910750257418296397481506479799536046591854989743493050448737477058329742944996469016942486783275827644895064744896816959428309820851714835823651139719620063436009340752011583023960873535248431229557709531903288213194092313809474601738145259962786986747765351849495259364710299303106795051537069250004118959572701580883220586752089832082200202379265886923149738935832722390861350059683987653170558462106845059269015421954976030402295673968559717059115264437943091079265501305390567885874628654898286699652300818448078062203518455369338400370332406861700315425416994517205469533655329930539318606294497003418041017684525362726085804972523387433169944937955903178311399456384211892509819994478889079672860923660685674259349875600874707546764136966572339816393460840482129827237076142096758018707506127123957681872039808819381964702043551187100392728945093492418942687322161997714440530434796943984947418665784220036327391642313183706290041056584549265276002852234500034313533943621850580483933865287450806964177286090503142528915157589549274223642955978916660933733782107158804780878752834025346372067827606482192436704132933904937820109715439326414406373718199930060901700654851785027534739665335580585225955966246425674474386623347830391774409307440214120335517794407803389643907033395373781131444443178244202147697030581184687262109053483372648646844068250836206208671264592536774422444800394196754016454714238499911829211726041669321693852865978701194504050762408745363266578542138321612548574589080603913691771187348707696734809149807352179171899249558860145917237828117173335870784974846685474759998032497056913987690035531992960164731133588455818356738921964413687689592166925589245326092986615133601106531648344990025855527377567753087310814957380713625122872870437655039752580527907625244121051791808404962057600409590162739146925314733573093771595692889830673905257158045291837507357860075208475564238569617507198629002276362030341061960671347390398522948377510891476881797222858180661236620423449963847151370249517407695180887010995881487747687680310198137054728974496509948996620788794778238194041914678090944856408708377821341137073866881088965426924913471921781712354731299085714170497313891187994953980937373812178436726124685026153845882289107489974121411060728880144037241298104204456239660211544119912316945190570468710458192889642301106427291768033911274208467039929709927326599959523894213696408533008674806612485027966062818062992813485224341813646776628475107268846439769540939411433950189612145955957777312852793021528176195944598239547399597445214472961423553148472242238115526099395559016699071363269565986294961970090689151836809859810476485739781847736000853618123338706844937047298149042318252449291612018908381692850538348204557881616374637253744728372702208977970844197645067283525490366489689079082005959269070184188583525853398990792310555432667653335937520277854712901839949256266728665488017481469806906859668635584399786025560487579892331315965848898453099131312662057844286210284988469041638690688906349669994642264292618364082095668045587392019002147359547302646077711096290007933981215873605599927185536051556979305041272563984583884365333286476452078149104695010572293308405047338261209919570518734287650572164266025861617360979428895172779589843197815166937198166029203881435321121405872345014550611391764591987996503868494533399785649858912225234606326862982317025607751092896088466545303875397774012750953732135843861666342619895556090070303396662605422453734768293116729611223143757287017051497432435136678644650012923070160438986473950946347348372857018676287477101614555706515482280447684058768986739762819985661980389538008410538131674453741630100845844927759512511826671363025245862505593556059630955138709225987025355264334459213792087956773762317984256784727346609019196699976887369790527149200972535431169501083612865059111942843542493189733250883065801296577659352109151293627672477164169902467349866467557240287240620731331042957552541558646428798190648786924906358476542553625611686481048154448198233872039779928086394571840885367231926921541591531811401228886798419172500897969639577318381440662553189326391018185689039614763094631886407670384513524556100557880547323209812793186282443081080039316493354391325555422288228313594527308395028121089473740582204187196762212700669304181783002101531532901427315605043985053016498073292961271455369811835175499360758994187392374115148669403345327762333375609885889096002834587731744900814110184276917475077991522118815511071665002112900844757440053177641637941612577077558211158394285551459718498246332116782199785479833523002614447589213600672253478090715510665521606359457963586404395983689517336821645596358587703378154058925189893609322463422790865208635757380102922552924896615291715299997278516208356226603076035542884730632475111714446469802656565940056968401130315007737786723570699917843252040953705259647546461876330980065721430392107174086248705420948110602942606828848657421316953034260437830003434589960425214399430687917424302333137669100878888767595928060533588138631182410753419225664164039242874694366740646451400795348311423521214076442504275375791524791216043287231675483691462632969696641915316346205970777882890907511219465483839180844630004743120079832906233944519032849168282018271662496567806449213313332686494062287031755117568089251349590722921438946676769858179458588666684429310853362227334353648736119433644008116060376723865549717934640959484538824287368669317890240497050044439109387138018199206138339343478279664454146304729654377972703377545511503877747894120700611715512271610145719891187502519077298588508672752881868538055258128623918460612538016007901310806486163119763493998603759684382561553071330120443082411733911504054927768988638782550626941837526817114235744908906399077565250128319013670249923040006716013490297315569593790482061998171237130766573035150168056267948295822053826017435701999447778041467196376314146736589403657740194945895571126566393427108554951837931405349799731835171634204289531019057700810109078399831600348363366909228842640375368680487526054959136124132835242950464685362565138349931954567430889859448394708932329653248414181032434849187738722984130974823866996323722162960335960881657283862432588053232393746114676822064051591999679226896823057660678644571661117846003466674407898827183546280064950642295651963339866256923478629540160556145731003681046218718816282660877893808903683150125394223541159686729318028499958981092729904323017486955400292351670785588235755282303370755562530081938924637434286306174922563384200954877041454798343837646663187799968507270549666374417133709791171817326996662933321295914758853479576538955167793191342473233663474540952175297994448621670482705619854839452650195348600839959932730994900793091874168395519208547659631568563739651022609460015476234377777968842281627454799155410451281135862891512278388275190757066905001595859247788774264532067202376866411576657287887297154981430625522093185359733071170058893280006717855881454466388761414698528344864143902465659463299215896485768199977505917303366475934871802279848634372782870334442166642172049593207730630943080427063711693777447436616113767663647835008601299346791732462246537185081583544277342942659259696830212436531392570435802178187688095385550000221825521102133231258660370553813475996882841055030741863085826792628726255380826530428772912247981000307720236332241549741084501704788960326043217710580820807391426214858026595820517928938947609233683856795764212543516658066684674723722796546187081069546424859627662098502977083179794790594405980695474263591517587901221673053171146253027764216051248982005360820255593800476393935865159361881468919077935836687314192023747537727963264001466832536092733544335850442924087975343474871991133529668036856185201947199859895785302643773972926699415983543106245027027989632643320334081030029850025712511489319155527771630984663608949161831817975064945110211049123473658853444282629066614573253671139097690404063569823341036482806327653984112696211958833544711266956790502065839900353180971682779939043293459047828355899321150476352204122958578074667552614926031920215633914725946453054138951713554921152721138778458206131277202116828329048143140055635018139088208182554238093477887400868359373041686643592092722464322308544644608042962299911857256474646354637119351751500327514282019003234557135455256077327064279900953849033098134561052827948579959363188823234252099517202597080367055086955133206858236250138211358022541156525278840169052496805090995940094030111905141991630971669619232088851180954230202840962686884551590133667192499056911215537923557806038559019061583828028885306428149295713084184967445280696044718017761625539780265464243361910806775761944826247581092094192355528508411017793940728142822434027712404071690385451660564793256504197743015427565197369652266162695221543540409291419771529063101849436091122467534198925718216697581857098508133578687842017517699891461807920490558527641380698930646059249973585536651299398278124867295236804868989408729460283214690997598625828012066323659986842745157630041716316073651908221713706269432594431143788400252873576095769649913439399200748273202209463774481831010046194176443717762423322793070966692117152006422004850179747821886286321151853942654416871221822765644867204975944289187639256322471250033148992525373148574718018017548399202279487006411219277001019095828189626753504860755866000232417546735021315927210886998297254408929130381560898935910734607516942748436167879995740805953926292112459386336686240990328536864538838348957351469165771156335702104440126597438815234627404962701531492724186335381724492638489773606174152461669837105148908984765488224309484095542463279311270358557688322186892205017888917804381067412333752080823264915148254201717239438475104488501745367875351584574683544078801553656567703959637993227188711688968993720113470124502973709642775806049027387196814100028478827841842788186447983207906368996916074373733103802882507405864378604202018491719917720838693638448299298691469775929239658217798251859883815195534624516335196268716330067266061182331485228263291465656135164388719021489042403525739850443151876896788740973666641373307099428941525124583874901875200232280888038975207091233344244630087071921058961125271073629677306861842478012078001905260830393891637807349092142827024519849047914739249101891210879084165961970353782650835759113491096944219691466152159038817941753906718571021266037250000402705394039627616318751514515389418961108540321636473502000820132717491659606068755773778226110006240500010453763119245469019046408625241831424158641697521501625871482755285674018733128277395182158216523324276745641764817799233666800341078393000130814512219675093490347463994951191482949970001152037577262488122156435676748214114684125083171448050868046948958176154711552410226394359406687357288200731481010609352150525383755605187169334988566723797212971876596563914516834471871666423269223083202831117259756222705916317952917892019813449572241394686472329992385770917347497817044435081870209273305176112443344700169370101383327458213402025027162591156591228055866324134149379331954964246325117778717216941982434952520515991902501733160313498186873868835506201188991856634737946877561264562892394605481314947001663310085500608409073077777322228805662946827882371037856478932406109599118937006669199746002648293511821123197087159314792033886275870534772735845696670687006960036019066887892539659319479966367200976026339790678186455837520010227202421665262458680849064772055226154255682328082426731178507140041265295011355758803606000758795850019161099534968372616175442225895490125010759921365470060833258672282289989451391695878461135928429689897885648484637376312526240145831232120944358521182081253408904639156323751866487400978488662616580682166076489810335242106081897192664247261489906778279372418343064333074597960518464885908074011221201296713745657148709593906627598036104529098049240552866482428926801417525930871054601372524317177533997666810369247723122412719847431967816160425061038400609575569993179459379174503465527643117087109705370512507900374012456943967759457049267764603149960205472464330715470346643621405552124236596851717011590625587091901926455096298974511863945557110519135238702950042981905432015850167541356925910343277649151262443828453525309031157937465507579166164745211089544688486436818905981558170281884607754527377378104193478033770917675982754042249218135924325404158066074016759814996972396477803793023997313688474907508801757057753465974362748874777777763295424078657288216718211648838702277067206604808065661979401111133192234611834999294639217384013009879009990066610666387121948168240411080524575088876466281479065665574214001582501515909835684170593366267022560628280540276153390327795644511378778382210557220598686837480519501020153142693439255231940047124099931356104029568363166443813543683113318030432600874403955539982305396437241011771366720989059586191416266209647172616299517030783089337867875042118255634932195458821708387419648045375775726447580931082962486250692463803284994068086144262837740701194026127815636421666549914073791577484602564624160949709743017923637489011622807840371477416925455995363778044503066966880476831538361777253458855989859293639712945755153952659999780439654996056807988461724125556539908241915708491287417732326001422165564574194956336499276173633120577989340416025392030634452581339163708286551347415675544339164070696947434618796259148340439942656955318692058038422603951338130279953397210670868411417524217830586158645525038079493772862461837130055629370651366366171239699895934044721349192741215365314247678671105619078289453870640863192494597511562542615409188983955220200101336060132650384952649379468763309099134871574348330152229096428557892408785348404475839576199534696196243726532541982034810983124683191979179533319106108946537899807615535154185991878448204971449259198266257583351874980403498385657910197006612321776798760387859249505787368797215016977232577809011337257272245125195475932279616306146539887301271099409841617559043289208325882728164104134718498680873761883474724245813556914739028518952517544163356344412560279515786853378872664147501934589774656914623680369640280650971012163506657463524964244219872319670703825454641435386863700001197753570125107969385020103400931690393350329192840557985070585971402885231100354135502426608769048380070366785226307163707102195840128670898540602829992084669169857809878859315353431772041265030293796900034603393954471556763380996611281636407545072605891986466170210656543452588005895820955578974983153253153387332628813790587437229702930507460033141426830975712908855138412389686477266275119925635272436508091387617699004220066658556960528840738673058397942053329893573547364483660349219019119310201887352404394491070453664156874765370442765692492776934643016118157801890946599507011239194088782619955810105507565512900018724655920756267691774177537660524532204945203357120224044981499704370022976167252891837099207366504167862580283260020311535546835180568925295399776111116098894201208312795857495727885504941652660388022748968301232707348715812029009798187038723660944333989174662776167966046488190122172888287748945900308036279069286553798450871672067192009094067054988901203202089516926943881458388061092775056397225726527069730341010427110855750888539545546077439059472280487471296933196118058039158476101696675145103297137676807681833849526711728307459075380387969751827053524708036398874595791720768363062892672163928933997757918242061549267383461453017559263521613670166260316011951027915831260094658194598218144440499077990853121116889942671509968822572249503952556905921437959352906190241192193462074789789803478915330246389027058036188050891333334834424448232742191551261456499925995267025371124257489351860082732380792227419917243734144961684915200686314849758038983673981974469857689641879745709170764623127152655910534646785262693477804958520846973082015640230946295302161568042303102483047944070082657420791795198333892855786322754170536184948867878273252156538005477711103606643530174746902756430083896116840430129098208708605751563211913148857234830237205813038379525906924238678560665842079479060602697341265048191670514512390792049200669353880421556901152227706681368157232089828683426819675854811986232013499257181266294135645813704562662549902868602932207603468702203482301066908475255051112338022428250553655017169970965521213977289060931807431477740290747783401111998338751082888602761000592405034711726832776269897586989672143098049234506272431666983501043302312231285907674204675555247760391224725144505752260145843485799245734919845435450519645811882961752674222117063512086136727064624489426015360630847293640268075768971504249098146491561814145453674681680157343260852518982168208828600317672744010684346418233584593930094963674756095233727959848393417482016841975147565759559857105859667199194418015290421543564804920604647570804397011484886614500942512089829161331666157980644203348734495509370374632927407930766575726289872457901653692788596943615697640476197464602281710018413722724609440917099575558577609331648157615200527912509382497971459243976759393734411024949600595382657754257991623485131812392379822675332058041356863024238737531336460544896217455177986745209281794257025018289505371722313734939306662586236367414808674772281986358840441824779560245697236813041312285948239820524206478109965316490435583900572498765114969864290377374160621194788680615759977448041371634886696948426200027885634282072021394821053826496786187520644615671383652518800952420664141519745148548840434540651701268262735409734332609898428868920174357365724783566381398983860811828849422766769443726349760998673839280906063120341235330180573727794977995987863621055487795813328469466774267477067331592366358639645625948553779326841436407702141824122786173568025051760908995259032445597517483812405388948177345815378740357135023585089528413872576676965706773717059690083871595423732583271016271486305568691370955892486893344651116325689085837744838623355841963406963430266849897237966435947470594324901781430451375385545452587989359031894285498877558044903947634480762784956563299164685153047320284911907750896502596918494380693108503824465735759569529027100533425536233352576459187394804913609081470463665893870395970607405044116269636623354940789272551378499270399160047917366883275108300729993193281330753503012591234202805500693473757213295611969589104164738455333687787533719190910867835903487938505031883446927445871093761436637648578515841249351963505242909045525396898919466847150275499810906113792366481323305500673496251506022792894083983565642809820065804192450475256760760133257969775736839072833108847426030061873135572929401521716490033027202877166635313765789541941056837459639812495063157172052195963377077977963792837881358727019397495945601021238318541711078111271393186484530871786473109668203733645953057011470471433622705983394480487651400822495479554370341968542585545120459397371791023913841709006582182383364962796876330982355067734941578853068338884528515212563862651721148309259954690923472979343475165475188096202918190292416598550351199173347123276947400157066162961619739016765534485024088029689485079522904794257213654887020411723914114669717179510975784693375257119014784096095035133980938785778876908915125592387530874490325727377217455253500641327790448732483810014641821942752372983136487659339589820102711131538609573915191257041406981356608991776669962549113798616142990721963869586326592646324423354150569768310027831891817235200580965006670768481673613535546158475286677881230854041075620637630578653990756526902384595496314479279079322251468174995777238399579907551316786720523382114553280465207460566668558149171987779934419922648333617691701377951065798280103657597949872906241222616371292285533350457835631242370907507771241211124441233065433171039701817877248618626135645088339135422295493108946443834311964388127228585869220812240943707275826671189100409745201609785534067570336368587905900528770247341639676036287387079443916600320235415741876904342631294489584237770903204059775760171767166608672513105499276224673209969616608386885563562744156839226029107183099189826847472098721478150908803177678535728741628519984071454767467460410270718987813926087961063119285912198586754235132356074016683255628249981979442668819841513853501877298813637550053658995378375644637451270548443905118666439990821881753945515778478803928707248987339228651071128532582460343995787552292217985370357581058707677663509237675395089877647172889515985667194210326395972745072404234603380543927820958628168668954357188763128871393864056667170041233996261057330941320421887489775718582316080777656893322957557699597510727170352220903700502996684950645018364965877597967979832537731697724481175809822645444285386883692778768541520259787291906314920487618640929163570920548688581214570227247292196787495499418981201357600509179457718662119725951132527030993207782741228110813686277744305866626081868543378053346175243670362570800462324459053950291818292179673092109197632141507781686443744234011297572821093661423794346384176519591882498317475283362107089246919483889588640071912842713428721316970125295978426894804582402527952169350528203484339221216204910176191992127020981714320919604607007435918655446653539174775539050381507472397798712154450363693360162960901630453090718857871127775970429606534152880723932955845764965059161062302317301949649886633207842812362457950049843943870526247709484085741476836468380349841025735399097469692844758955225833697619596784895452789876415307880257034532048410200272863821917877007956531179387622663866948053253277946897063190610097458004014378647834058017375563301725646289164463520635883075309790856134034224874216352939905288172480008924432667464457082342166712340957541312529556636655197664518134909289041945559426245150637806927724948472913962367754242682173922584966284443814174211123886276704263034910467064237971292130070166429942953472529646428874477734890523732666947233239971944890244377764896467112235622664724637451532623276271186330835079895199019761021011395616968286886210721857120989303818039114712485746657850073262048413240693067020772385656324535960396073156806813550836545018033951626432092790781331899630626975649275805796192742655802339177669237294060197881187051781358571414593615465220896202402485152708095954719589415456825292717585726890565768433848726881480001613834129066031784675746237918799594598350409432144042345985868288370709329906992086945789932143924173635632764157940792111209207833697089256997913064749858691492890379857061174971097137750978613402226370540017653228732986816018787301573415978465538435972116175759150514043729492796034762783693785231088115891401425639211119024997848223901854277189659171864758699201884282873171766323486067403827791316858989274711899567516114802532792554312042176037666891240414935865697151036301544292798949666629680054861373081427877139015589091303839035301666225709479892105048164671641678477170673241823005077301254679413904120147561548808567243922742592741431946604767495979405359701799207823317096436451100500174863327942959633658635184211990032912408503931144438525709957775273506678572673451649374616556512463734663367214615200723777695094939202850385519498914641052720172158732064456664780114936200131669341655641594975850555942106935849326176032906040999968014314558927400217850335043494235236372048813169741371852351765493378136687279882492071321180644197924355815503190425871168847357334730099107719351958711098447405329614455648510545145035589890094909056861908817278841849743054474228526419734226481254876356833605357988903742934877752422362187740279116078595641612079399756694001151081350544972634518766750547432236238217803648609506018435776995103880943423862599285173455661344245493717903334145492710644602489132572028430260399499860906057195170131840934495182479043666358388191332470719949572492225431126634650105916003636251122773276908724025431719802993730385949145353243695436380817640402579010472274509292858364686887526302599397020746627024265994926371488284923078485439399949669651009977503044946438988770971495318004814074973487806932368104950848752145057891199084520810159492128114204393832139387675068207375234502228793341809325651142974481554592059367502048698205880404101321813673316525047028523317971004927222948277924105272914723694271131518195342069351833210819213583538374707248090678694480480190564235268405902364295153828682291387774010215972568358719736921206035743577871503791643410900616457901396768023965393303826203139649317849372844994788816512620593198768499642215455469882498002800788830608261772843403108571223134146805842467059451900301596898980098213611009583267471872402845502085353775056330143491901755550765878312674723876328172684789520774508287970594050823520292420712509084906254023016423973291952842370989027241983685585848668385604073437199655375272705499642181242783460374065736787043824908775133611366836810709312347320577838165990702140947887127836624330129730629757146642226009059319202354095695514408900174749111203368686477468530587316390248603058910552611180997288325500214752517365223000086957258221178795722646100641041009690393224034372933706673805989355432622940632708290821885943290302919333383102029178778824456947145305076036322831429599181500435295654108623888620760499297820825933376378783791377923245179061887318783818840812939858579706705974641747864174017579070370610192371418385083536432305004428356127868366788068646326768251670280850778088640614005055783025853894384314783546171224353960866827088558943100281404701035359347752388014777504611883727402438422546736439059076859635437985074123097407836092756191994725735886367396407349046510898168396760772266206525703811185489554813670633245722594862989962696926230436442372155907372987451393617185227460784839858966126263799441584739504702678391319247829044434526788724852693151103749775970906566361611326427976562495932974916456459996041971841523714047112485809872624779633733662173242894369132371112274510316334098283702097428219472548610109023982277794364358115340299618819723902094797184904048847504177120350275942671805531107001485045423802390612892310652392558558560713409277679488923979080088311052314657424801514836877595340162666317078345479877704408894175420030451090974250706891940570848626773213310956265225724311785452314398212515248680343465661097201468747136213038490098261864432221526799154541162640909958876069399202472364141188086828406181564999132304578347094783827609778443836321236645379188434443299328013587138286920662700655923522599252075763234078868705633623510082812788737849291845682002604151037175792158674304568183709519669687294310808644728347219428927294921532821421399286695291375888530164291594787521059577502161231972369868973282026093431029924087352841025451553181630677449303818539161012605816023084860463922734197680423314647079243168393941774108321118699137275460601100637671225066143859944593888965133120592003083217835067851411733809479953556693073659429218102140961890105096015630005765710991794033101387899521122423492938913560070380587820688376847059926705680472441031463754015885600699163636882802984149957292288001339526241786813515810934602580111067928667156805664862383694373605057953447293452099353099871751241990961105076792795612865690705157070698795331293436819100940226974209252363968597016027550390242482139834729980090452405091440726901559892246331186912455122556382052139716133804396760315282375688064844574502970204978872660237569171733195994595120401879083537552023995491814081411355363451362691021678307183068630446590719308921988837521502683468969386841990200870087770204033234330442883618679720210324151261661469811345818225503081322256679941396433661582130915036627071080474621734580614880070914725642141813708441372738032053875763850857823330117700934236360514583095987597705640016214714135117755136575095821953238775107698850430999996941413481470050472795123268331329035298605136554645663501441249285915370048435617663921660100753434327897222139700947682007769275930843484561557413405820769450018694363887737799201160407481005112720639194013000660448344157363728842830124931991414302565097937911823631333302452499470701440541090380490129195415553375162651080266138335171186625329991598982204784353774749949890814160174728781386236515530525609044596290210299026525852570515708515883136820810165790244150112127005687527743943271991861041917480240766058475500754960253627566685215606823976829942489580538942326063698382728476266173160818598592633680348074981969098941163258945137496773339873743307769477732654786514883910705124322281687981629955634774632740162894186762326512619507079809198910623462958772694040978739822311415978592515672897971983673983687320301020339405357548511369034047001941821713652478836753488522228585858703609416861558452810124199443398313405002299234805167012924486090515632080074744195754021217563878382915292871208024663373207312597056811418798060876953104202706381837818801920321745041094018096530065679773341540533545055292493180203788097918133065281006169054335369516878288638010909691334261144170278827721928590236965530077924296155987733044583240642740568647943007356734338165124153448026720450413322876199874313299328603898382356436670468741312503354543517122575361473590897615062209619758566932421514860360621148767766408439103955291481599879220995063956032274215691822834045192288445217333158219710518984038794576454998889870023024609066306865025719374098198442101912065368061323151770652403080260381382315195850126701019027961775760210281328054064535997943677671791916625328065960706826271194263036547649181664194498702376120424780218911895416098223937411681532474845233342342371389646963191111523615524316900970341171240901854306311020771863112428613195271591848959771224906637163286604757949434191215586379233370880132564812915474245595851544374336218866721258271215033611457237392175083048813086671339761675969356789042940118482679276767712317280911272524088379667411130130204144571783227916068167499356096048910670183887069295080468085184340500399122854142983059768955310921583920128749571233775107248068527702965008300081321741171459390440132233986135091454245616181185415892184173637596146221633705991865214392043041911710527983168247353426585235739275615890117964220751520263116221323213456790616468565992680125319826491675348473636147648881451203421144554660440859528098265015745042200816377904365004117377698654826110544844601571931098148965735603636233791348276043401230007619374719410239114681248724286187931974823981099628241190600250495916637951786342876283152143946866111415312508981344027101140235596130121052181616083577779547749870394979540122106329772209777662873546341315998315750752220408453024694373021320041467302553305103345759041519069890861332978262553436846798481794435555157835667673542458868959629568966146499436845552662918761957086580813741416898990319176032116329216020798885231206070671282985045260384424285240500314285891955718564264263972022416407519996997192679652398666143649476996299383964252644340755060333748171533534677255028558469588663278554691986760725790371018825886371003780423111429756714006272473345539997810253944610990299229614478064820470694385083137773647403414480930344478105771514160133892813041645129885184758977902752623513968266284744358881738163597627685005557737326755856227541829842429957662853487407498855038340099954054175936145634750779850823306090901201769318032955973004549622396547132576756715080895205353443506703043400760317649144113394612721798548720570097486006723041821442369689505790263419520138828178725369929653376082483539467097924591763976911898247228882707068879714484039901703460637826409535027611864674521167361415086973445989882502893806100387618952629271319668640625799584187979103436205825667849403432877695062165790495068962528204997266157275500097765779200216743138505032546850291392080742310124554219421947965026088247659773534737572476419690510390132052652693547640262562030559390307903351693521567397291389602172556690036865157699059615227861207786467286757984315207625597764109688187082540723442660573590665586386656666185128784868088559258542633586205147115187677889574113845471995172190665404511938068251794954597375910535110671621331372846802978770933779017312048793575841264436293822427102788329661980702069164807099205598541639351982474501504569529510852217069992893727911231146180008562833610666976615841888531209902343720362604335969657425221570712625734490441301979890269806553754409027007457492225160217515905265402683496830744133258484678025798052437657687453546678544498154421105128929222624836834889131415642523986934460599439408684995746279837114657646694961171533790778806843265596534127171673957773121111394746752119195375161399533471170174098336461381408646997146503204898322464830601044231360091809731331385418853437508341627047804568222234038955497950160502332402014933129868443641563430625363734799425863214044018018911662518915824388162630101735498989344630091595009355301261975753069905108727151783978836363082567907791350831012246175460713075276603538613753824838724871453840200526297222662682086943740056133735822616668887008227629906112366335909542559859441315208582691111024947369139848148698081886914750014699717287682426741855207067622985257898970288451136057294472970858623384745605633154927840600404137731473180806404749567810391739948462538207419726995400673114058893339097713630230170107509202615464188810248397871706240976648648707396196509417926669038806707165615287338161780308611559062398171938984066012985058181560706525576499791341054074529550575826205607802456327963371910579550327220635095813485301555526254419187210692453301077044980549892945127306693033247257097143717342127400085974086976745996111478306578683714317387731930489118876527549302599012985625115663725801834740888200020928619361105604099750220565566858468098136793114660401815920756425626830130701040006100849875246002502086899407935436468930192219865835781480259165466154286465940018555456248269318593300303619289956693877919020573165719526435822876812527386254752586406145073979987479075053476911644670154140790627458866195677934493121522916124129815129265471560496714957530258969339563118875242667463607398093908269662459708988948590698925989703096145561374958935068169269826186394479648648389614916457133865460229343810010008282562903349213487609445645823647077356088319320323008265616059494353475145722618062697590404218748459360252162912844305322733588609601901610899034855186427744375345015166566285931501901535114888483260679535355288039356665661749471473616638567652459067221741550962344076775827205653592139015388878643472928838387882506157426246761573335952026963299750175190670823672822787203261064916241385207685941408431738568873299216990895773659358094681320251862449161992285093976809565087879330007627165949309824947981713825053632749009403540352023592006188682280288709520759701415373135502334298855938874208511775734855024027783028016157554598765646507635840684223507406607861960369879702710001866527932592688417020699075829593643591067431030853653404738546606928430905554520206623162576498412631625105949520835930315272460202863858105557872685764000817145496756793292192559110427727856656228273630651075963284559070081878263479076807085514155932708890117883292135219272594196896846449543667885767983605541821532391955184203940938956061878663324261703071691000897469446059054938979365450884805327755386673066436104379490947119003570061754636824181567486482286167728060371827830104804114539015175573509142148909991036933996345453842191449118323154850513379315379016926992629244656639030109561866863447980928730391276259720655105109635312684807434914444653524202429356112011441210998638465194123850748261002381600163946304950185865015889814954210533178129776402220205547019034487951283307409941058377839166031551859673985194585113991480592953984946192442375224214226570950443522149511579661159015378062087501693817668924099496461818852590548723006567512302751980924678114765298130556000986262882844060386615638911781574979821364151727436443974007354277773805729724116365817165344901718804517538224815700411043638198664900700616541343638564014513091288204157627748875355536659276451665000873883268351480390602549344904566565228198961244204186313563908547205821307210180471287295948737442848695913212092815580167623420738779421452892611637341655960575453256072043102610804019929117979157473864652489319783932617299532484043427858162668164757994051509269557241009612324693619522712380440765658757118875307075237597741017203854179513892210587552974989012968657473115237922693955236931931578350523682630627359395661096529102805442535820765530994793153411872587413559794720908702589858386881631012981365461457835403412666259841984783070837072916926296262343370664876681947328304464499436480311370311290474628946805713671170366490138540155486174782224732326879986330845098185647304664054512481333917727985344232472641911561662482919779188486522400706827249562222021006174404603129505553169498403540345860363699383266296817632401499599176058208789652352585375178703269769280528085816706510491291522010520203465778979678171406851446386005987430423788318818047403777614187451928602983884555032406023997877744519875388330002016915802156012249470888765416915701232615758588939390063621035735141844494695331142652793209442971701430185945659638233558123599416438640095193537853266223651980362908059380905531326893233411298267107470237052784633613089752424482897844578685409031336286818818459859061584403837335192008483544311120712611504693988396846972354380717132312271309293623321813609603551952341055276099456667274711808165686560154526882421881509929796277655365363638056178686818069819891778414638431886857899282387302348551285363691748747903920893403908634320796534789298143385030127505904802438400045333885650842120669923713974893751383044589722027055786721027326117019939610326415691844432247232730403213742994466461900094960465253952375523882363829975569519717423694658430396434887979250065091507802355178124223591363038292926502554262826798979271166986936531482811477692215230585166236870606147834186286101980259173205301255826549788262526569117809703075353830074424495896327123752177010590161340567046055871104046962537761787559548162590220123428695199150245307483155381411922291052489693729274797621116252291926256837187090069884823871747042051329560563934841374969938764069972612960364405580742072460019553424028407359660773103603717866963740396249382346120388700924283493581935354772849964682232502416946315375912668380098460412544869190564647575046305556607200480262536688831850677375164724174054925708685944258693699204802854462698380534591455072046200825841036633901234827385136487548769855866408058734715086085862625900370286392332635950344159080568697979003080633725096785384378391285647713484442194415512179140220071057634237952395550920647003265697937549104256746714276132548016601696449726061180676903229366528145437368404859567042148128674299996533141673046456577536790201257397532363186756427643685788602968526296465340515439596180432873523523133829252613907567877664479513502742892922559796258270064141642400759480399611167216622425167213456380262174764440805129881197225437071243487394397226024077175578148486470370979158887515224696591710191859194869457929404475647827145299157850221234702821757414467496973619313801342354186830008349361376996740890073646126304184308196033505010039352086653415822934975744714879163300072921319829814730538766116902870392670472119152966567446571406006766163379399619371781981769317887403984451947624120452721768840666150524200637779110783005214516678734197706121455446441047393627634176255708136997164588376151020228971946667206429262697604076279048313704811129133334390499774597090816247673694343441582378603033046567689067759870816333312501102946787793245037541376860767869325009683027464415397798183605531974250958018922652122699303376608955644767673489109733533456810204359950350862894574989246551289046452590585923568698558690628399521463566220554243767888888092564647673901401641551031261259651847397718443294273248689510550319387846497086959261959488158301094268944471558740654484543601935706081510475006046631368863169555781446954735273718517734408470679769889815254601292076763363116681824983207785911801712394764917875301358993996837805017575390565366302943463711690052609548462731488324657410502284874905837609215611780167499451447950053313645295739124510338548251380343407492714994607419030514974862038856693251432861331424424376693051765176685854265003233141928967067963593397872428755170109921142086115301289595287628507972736516371157886545414842963417920802541049185684781945690476667644919980664062510336199945041741814191221960088442560631189280603425630631277974705867271493895714910416017905555226800183085347594686325178245435181420408429115993999611911204748287698750690198868221713246556195096278887518158068214264305528294988034793521758943412101202857267618650777434802196531820624912192052519217541055340134630967500702730574704154816878990388352569735302495983650724206867189031928039692745636305406716593088460118359081144968900624353717103234109106861520582531725457692026976568089545422681175658243321531805347094861499617473180939032142186679463854905568669626325136763597259176378415458002454613305156866895332299156919824416779338827603019645087465301735201950036623873922214684263464892411126043138478046820424096735608133880077856458705372789852374692701159049616259250421929182865462341786345715421964633039538859046352117850469212989207995668438024691342869183120817989950686934323891112827359810817006304229791604227064131698792399446738603829769078444083127657854434471104304564400888904179443718909604022722040810749993884090650270977523352166235885786329107235649593058840012375388921537415287922653801474605496135943249810071629609128417858500219185164010449488833717979234116680851258974047524481791217952564355730712352237193694062460568873865613664788544651623621893487371288449586742488667266159578474976621553779587495548969000266475917115045628874934955242270620295383855678564493918365292633099260341139337258587739115741409186414086079724117523602539730618129883817413930740380381518003079239746046737357284163282564252211296554632243004410800792041197486954241538893003645292272461415561250971788645886452508229227473733013363182688526886470233275988634664099876848605063170977867117575566492157497609615254204517499440847879814301341450015514470950548457422966135969803714717883225991914789394802857718580790252102361583702045490295463919636167071664786216222999106291580105169998885076791011214386518789995170702003303234283788229792964517339442987506448701099942364585133632288380929779643257161390416099654856210880964661404330203760376740942453334139710811173507470011649246749994343247282027017975000570785008115038730550511011112870071580931368419972318122729437806119818756335295426629154149558255912483205628026972135808221295774526989580253918545498851309370797895967177543399541948521411794024301978628554341293695441555754864069937218501358710303272852937011880272944864986976446063028159838276444522576129012257421445310748248396290347107077355181875882073324269328434888088802331981398060402137353720573870075901512743303742720582326915242374696834723452664286134603769489705004529290302915791958191632784969477146964699131752870178209003331546193650812064071498786525907941076920315226131761167211669991182173181451999271909977113263096518059354712249882043101995733680980848177115939686678302429675091480002202443178098121046428217293375957674632087121192780640516431478120449990071473249659647488787862494933310990364528247260072844309655641489499336274727718387092984947017061154882148052637838702783917003880900658842054058894963583509708762355497258853996318652198529679363335707567792081699380479066168395525884000131424319874817763270092547395041143745884952570292490840679249337164644919482961712240702370394989365203249850980572451301436768749549067024067794117693593238147592588415660785295936777197403541742575864348752167676953904070607665021416200760746719995690853624558499291631384535547999914925804797313047101441609393726622452767678769826197406402898602929845500736306166300415071674785972340861128353702018650168559646658366015844945117621158979343628171167864019264625634161558766187520640308243252667571823000586497453328503194559670628060146919797510879489684992960731334365511919182885510843788068464630709471934080172692338131057570573411661675765969543131461321715485322404672450683713637785370150864961767440970581927556309884300708139399806525947145411799086621500319364146519377448324105421582931532223165475657664399552081646911976235268672377433650941471315615634156298552153389520061783062204939097642342347151859209579451161220865059703664506913480513766852116954421667008598886869918698645135526953920129260309748953670933969483974553444742167448104138811342171228418779050108879735644616769491190996146329074537993286999859903964758014952644064255078372893171854600839269595072834660104981152589571090076775428263391770635891827554122717010138860086052502262120778578083430621139296591720649321523345699844931114062022520996425541279921943122421876950501737734480082255801719754866923793928326279436434310168443013568373670332690337443202103840487928467662241617389494225452055484814574606907106105090439607890769583730602066166633887423449341618334579955925229181040111401834726471044435803627461749948224450395219571920353334392232038625323315700141421417438925291085138673829092885101836305917180899653416017209708935466566368092343274554953954402471452707980736854026464908696413790448528587295984443787027898353336796538105735804409424371747356791844884670062164345509505140865706343830114009180801655555180410284366722310132563258574029170428385360407145004360348592829968006838336574467679723321772332545010985578469471498285617741036066224748152398963906889844450701333497304320262014557800554426286668407767094052847966515875354882066975319886819652874873088327556642297844341738314428199767995210240517014799032749490360501127993636310418213195542091356062205202786405130360715349181495150698875246789485566830855501087517820984683594692869566523579196839398332144961815306304290541702723845911557666805308741824303462220690379874125434567180069991825663007395126344479500889419331837631961829327816362746969949351445411337603372539376047741984525289096652127957362827291940590093400873750346071963865061440103693064065894684339244824210513061792861624851511929169405976522036585356634175789462904913051287255942065363685434227530943287394501350261825161822484726215925244970071721588952539745074375608029645867572858069731389548275869946814119875410971999632165647479117229770107387421246996343330104846542661437697459206372592288176959139291411207975974901134503360661723296246940487996868568066704749104514269218226073618386081611853047674265667696795128676288109153308228200473299136629369673001084398167319498912574231402397746324556035696915772857620507592314924143241521548381957541961299736895073100750061443041796102402213790103164755499410892163869650362441112454891078905445334045981754776390068858238322383873182520804637761290302797406388810401594007332374691490264828347357932412538459989118171429057977579355459390032698991457140907601604285847560895243180840802219156843900329833709971936313397483888021030638826712953984299684812401990548532315166608806295340995744560156242602841798393233145229394510905846294314411617727927095750817812255577999434358646692843641658252385514898391571646421487562381542393180225600431242054236275057944953845969191349528995063565193781088045120634534214712370964231639063770834918758081335616461963663421581164489204123255146323495151995611016903294160488135692148602314611703592996608864119744795745993649897944289629953984981227440021102649905726642497352394353810542941623888347963460226166973043943993269688675228645266624566472953935633248740118876411932823702630208135506898925514128108715131709612216238194978716650415932502467955202309223803784243497953529500473596409548031596715896654535658272822940003031998835715745794296120398760527563692488962943094025755817620656096075085628194645846363772995899023172791555057222472818003609418978215087900314992736206818795174483841400318441112477380729221829680509028154098718950019993702771299379339994629517594907065616643196292632297915085460911240335355740031438528825390730197624246457169535164159283852745240145461180888991215207286824841880214199698459695941811463802341943957554266389646172718462014846899384041345742593399494610735378382961035585351075582367046667203497773465381290587376454473251741546346650750083278439548287523031415338733906712291127753730593004913935196924550905265703341864489771446118326195524143877509144179207925473776978753794591099920760682946618171478751725603443849623687675656367913214447373530975229886539583798829618149877779869289070463292890954655542480020367886797595149622110957626160779485502035136961271384025126171882363981659179810893809129987573567273168148169063099575295268012822891395088844383528567376039778214124258982048724837435945354904402775803587959509670759612319815913864803796502345453198213444279857384541517038409500753087325833942863160222107844565156510098050724080357296263497404945597415182558405208728824368886678224837759735396785849016975040064355364577834371015978927010550463325320497883727015582801702026323708225691574171856102065201805338875740637816336197685880487366344710919410140033439773866467969342258180761375303686842026391924529083626177342151925144833431686130606322211734574117820300927306464797621000358530046367117511561927474629673905877186090696910861345026177012005877772751493313163126685191010134594089938570366171693301864373892805103441986559760601020258252246055733997877182423740699926024509761668776206820940104444457529646115107422749037847116530125654476780265784866947208521136279382001382121819419748941674025374797012370432023347085921629562313272818833689095916982473445917405301917856827881269514867007687249808442047500770943953476741766261505284125801476214223172208829000026239054795371381212454043992825690702203587554495084611989629171611139219311613424547410819576470979176738525790004727362907337097897858058143150598363810387103325306657274965398684988750455343375978311608027270457164893362465315729625279782439039709950736510609011772887408166952117497253689593171192723293181073189713552428774302762973150321625263160246811644356502209737972514451012104911775757121930861412739773619171967820658667119235389617656378136996218354569729650062717525246599379788120656207759942734504965760352833149412334125500522012987521877842413571371590969397091378750340702698983487972299822234082435607029003305791332023472775318827889213369216823627358836648515733136330861029170321977876788344227781905937900748518400091577337523520280874567932848207190229273525123784336278816274255937786390142119347649517385808455566929333822342781616834258498382644390450394831440887956518283385382001152319761550162619870096535711181386092541584186347050896413512494322708604345671679921835614953812215695823094621876035514140937262080474394792354922339900983581062560793071192005984623833501201937793083690822539704404647089513674333060675739657694236759836915421758601830735014203754150523737441846345417287330795434088886588992883759442806258707638689165474598492306408883393242419074702249803402280640528707436536673801841961973165585838628658899740604000982780651116168657152239181956153635877405315495443065123159158924555079768891469870247377795085494597272580099824664845604973920286444924755461070652048411876516416224639802725595772268982832809677018461631806898991984542556905519340596285593655986439363259379643122372010284480752433325009208227990737595155204860152226756137383239711383304213446690895375820319223004866142171497168629750709854206756521469703150838359952660974050633727844983556766817348894444932275031412731790121069781909643201387161567868325164842116789868408662881702098905035231424118137229623045004806386957302216978501124868494323306200560619818530472679268508826959049004372941863043925834546328445219380510183135798962565254936300506306168376579188213537172526714922788888066300336947221555756046587152314399255216636869162112599836773796454068970094828936612559566564907046254786716810415055568722058847483434261656004768891320007519307952493253347844662846113096620311810315032524696223079410122435283750161900761714488217087144796558970555371881217277051480516199053668050512172973161351132002606972250783219209642248218595951312614092123502835453182004319351906248410039732128700793387848201868479323282946350127985028338918330429051353973778530120177445240248899482318861324587706342265858004139406929914026849536932460472958500354617271921542378513891474571903497214020529449088899775286117935105893939297620078910309705832010707185375127600865477455254892797471849140808489915132970478395730385572513826398667874943686525417942980516932903045786209947439523677844674122340648466817324856138051780919148211110443520363965153958425187888656537254985077206794272876129677875137883784618856333256753058438128883643277145251611033134480098961044251631523508398154184849915685111273965058475464017968783570018564365378761127776938606531060210981843612929640984930860654869354518760088751974382805459716833794276569522105594261957946593491551441921150997703309471144820214522011651633563585389779984589054825128262256095094287857241757324563404357545101143458070242951040066971518993966291138216742613158149848475146755933260163613048470101596060973011357794297163464927610941343081098952109406862209681716090004686452636041958246708211519610321453769165813638573537799208591004684361241704538619678289524047444816070466018007213805405593594945818330935878108169237186804169963797233311098343263692896550756553486639902665788649838167992298871589432239483634692631651518482421075649893480510430571006738929597215058220495708452556743376208569327283410869624236142350700771900640874207773761676419786630505856324422816790734018034883700180017118375506507069252626276174852855747902010152835209430832741810142586504683227168949495493010631611155663255595662214416485552407477323653916249062557819089042814209700359805204398542896911796944440578247301249290873640037549311658007160609636062751985216672453996021732087056158530822069372898521973851236210019485809283968778788710451102696783775004400127698925677492034560182967374505758455433484251095901459445947582338064013279238113406396410352036005920016291967897822704400478369498794920268753358441379762167482772163705280004848293824658531011137327235243586493413379838052620632531073133149984756208473987432952439727620592476813054374382894559136471404725179568470996439251396170645684522727857437858729415317295665142611678334276734035514668216123214018748143593306579145429956694425910527152658992371308503228634825634567716799486759953473560846165279584669436561373065438149089940162956086584029641365689677814672653325299386279961358483652103715335281203823815915647896819122445163733740630618084237515908457264641874099932800991876012393507392827166735649958282220170152146678680174530013556139398670546012487685992299044482364272266723449699519935232891001393490406081115873003162465793799158800954215375632301227390526838538732847374733803687629507044529908572876541307461930982475693398456696959003470284294524606832902009533254590241794319294261250061792103797918917358217692466918233409498631537211521592621965151959692900122582227783411406191694629933726766655838461882799979961724839288849956744812745770796387928977838756388295035740054309167011820391047153527997187414521386034815158643295059461274474801857794092239043268115344648836848364160095106601134275939958914257243376966895252476123035006970125893188840868193910396045743803849905901175541739746220722133325402621970782856042088282797020962495485577761651593679366111222364807072615026497089138347018883883384359541363279523337308871936372143763694473920014004127768614182669193508077634604621909003529979051129363533009303962267808822380692557560732731649446394909361137077080666315420075305967718702531680814001879636414196921247506818813050552234304810520176758169701812309866074992075185180025334169527134616254089338331095288710180241174831086118368672650555719917910909356879157070989469885410547142950105626440888508975601862643171548696488283756983828233394087504302105048253463492588690852880524055644481690229302397084563229157376625682797642952768207856132503960483597633097778999993005634820411388101643123634724820481216187552855668650691254205066564991429214498556632109718709398334877843287883634320529101180521674821306721854162729682665236760044339677907108772173765047698879198017106467529672410605871881541848185001141868177998349436285915799327487738148881141666180456143643225698858312222534729269262265722998378970934383787704661418161158081564108529224175175330518280678585224586165960371384464191326572133807194723980461574302324707943788841465948653506924338519518541778551648523688562313741516723499060446902913178664317814874604967171156113541338477397540489436094200959250564142037150750951724092379231135539047496805011505496657628166386310512606379074512979924077187088811019817828971149959486543956418216468842859430801640024194924246955087730231916317505018493600055385209550750175845582164221686754020879554335249146371403710127485762637222966310117735508006778338067057836156222880553241034010143915159964250582886100099704487457960504811079821132900521490849246912468045217625704604888439535852260060039370904737321294352786811065145465836575961257023552993282439101230317321360023852176168659357492350144607539023105682646433787266720708741793247722475951388893178743816518865890481792636898831440682844381145012733518679605591964276629160699608598567037872216051437063399500297574216559844973431286662714437929179520602643554063968575673972713426845370302824137070386592372338510995169947701833448539439255195099332842263803419720118374202739098028272533532192686707208104745759574775245748404602521485318637400984159192480552552502961876327613536140259338445464736181483770289259383994321885740796940641776108392505781654931872195329368562476924861754735071131727658862295779515765175917178229690940047784279273735482120440659769064966940646412932821093154179430778739846069039378816517654491936505668894299673383987372733098236289203980479166993321166521260890734017995834734608160144044899623376340060686783182124574842828233524384809268137812989528694777011336411635960942766117776938206752864617668272327888517101143110694788828571590994219227241065864967701811858070149974683415008640325912239613478594964267254517016684288585372192023587980581984918074689614319512068703033232410610712635383972147205315792666511976816149827177189542062658906712373769693346871072402042830839528633229761602081873480088950298927073396180883122788156381009990296910344019787917399629754585123751645031294165061702145958641890052667112346512230245704253711424628880919946239822077885291661016245964049479402824475726278940353717912484206723637410481410993630548102216287650527021640339707436128907129603338722665285048118791149980436858163208914804785263225877351465017454720696440102370629740589913831718387880414478138174129497689138293786678218665308318580619724976167938546694866824733968003991500929164420156935124420891544755572366831160940329627687305711448392606017839305007752308053213861058544244114107529263759824121463084869384712433275993273046285968805708531049506661606404222733331548492346444102749110560516144597443938217220602133461200414062314300512110552347497604732421498128594688891937019859109828972368070393854299297373512306227189664790866207914963124916866056042184241720308615149732186944187288710342787713636407682916782940548655055327985383571797940752613669311873201070995081167088004861270162673286611470754308007160916013382395869637386685166388743602962159538926922485593274907266813089208037801375909261053070835214740789579708257362708173553741891572633291785889661354550443417596691682819775352279497480899877376783526486810913045172859121334305317652255346556046439437121488195813172751609604253011012267890919465716722567317134812164915536620061341176705824314576612767881183383986546537621925430934414118311000695144920432537959934283430049189891943938405516023234474155162038833815341350254306952602439822911360868702808766945291130266453926487960103497700117177411127689133041327413673187957352679840276099719399612426793975305983800205841625552714221558224633471151838499119167906767094194122519091052382038896928830741822434657482878518146136271053635624088154040480750730483676233325660658039410605059835810043894893128167659421709620662174148306332417585976888711937014926367326647881379735273955947396897427618645558738700313810968956551064229129450761018963666589179469454639143979447111260719258189942623715288002783895657608933848682189886535515359459691581764343252911314874265592056334200023532028637902232895464859063156955690205593883519094291296261702005105920365668194088735467403818495997591746552160684753171968028137160367452630715496088131025146949057789255459187729659432413117329433570230892352189629792562550255046815402674380369141603168742510254496349662367345168708803411546488047086648706873044266636536270377251209769139348200338064276787862412937416628383963512518328322948630027320432845700013801050522588179361061860307809985452660690409594427289922964011926299958360460808875756548009014918618781854146001312147188911757365958983700180094665972543273378671647708066184939452993267598235579639095835508348757151614771889794141684851305036736555793082524897664431209038823690313402425985487707603279320935110458388643844414629924724402643644621210007176423177996436160581691081298301638606220075615897600127166870459668129352956102650854802883398081869317015994546468084597599470041054737775471254481789247362129611582072428804380325943392012899586609297481118290365448518543828101937504002462410421010967849981847676137608588469635611239708495291941283689341319315361368704546408430323926528848194276961139501820825005796732983136799966689346139527796374135146331320253287147554929397235391538545117293408465166379618622304551823827538764703220823079897594128329208600635517483864139022018609888472414962576261426526309623232000760110445209255272618962282596820641563672074562603094504426925678828039101488392558382004353251499280622018359727380455656912992831441800069841826710641140920794717105285247554156733759445452480619660555844199771527881845234391391765527751997737044974703538216403809697772592222703125828404403977919406536493945161001549110171181121057758994201894934874968045500232758847036970190734762124410599640735596421898412598767518832284588837825659883211055459480338683195190586044837089968973805947656971758562739073352302859213145718127416933823012050481757198292932979866931602708366352853708758662223316530010993542769989529357762480921908634732183833617133469457096343788114934481432063811293336205115410043972516549933042291510479312173225322762877631860531220356204031080075103090890521020122010037426926743871002369436568918129812921493780738651440892801081085408168960976351863135667779774114804822455200046749684506558659981912575951850109026590069638706839733287952473300789445576273331232572826068600740973545267100729467179391274175612311522151305524258563280719913824686019967771922328045848664893573604852073926537412144767753997844832400404339962426720532573597475834978128235534836318407925344653518661964042317849442093190205684680699791827220745814744846677477691293170019065397439030585548843101684196324234325637210769647368981991371088771146712297836298068967735964684341575468978940320296282389178594730203934296439553635009561708801539317680532870256381104926598927055920417633508573978657878546713388929849483215857537315095363457248273924693640318866264732980638018817489050761222377257891292245799000805238537189292459926206988797814345341880876381014504371689656974426419530290745741806530171333944244928300703697491074976587126390838338713121637227606336919256566595635108264132908107721742592671238303985033840801112059508074046219627938291721254612082725211507626909893795440480376596450377663836715636696111344859814552169320178993191623188545402774591208544821290635852356688655596103282124015867101390245312414503683386258211212232623353885288676038231637418424642947969761034270200554060566897575485937317378939662878203743843636195439541588658779524426200712802683151495284005363307528379063897598662485935616158696494095852033564749700122216027820191675156187708329562135893176049237456211252959766504257046784561338782569523321222207659047181786018908201965522212005353828319092685398486544102283471852606124522568994882243195106511413760466637319982702968809873989033038215756994579610272589042574328063155572467604446804413438832236679025973887544572699397540620438946482218322106983499453134558464292189914109929377658937371833967962044869779862919534609440407623470537688263062986704628920226250882540390894267585598632402964334850189962653509384108187302549569862606093187069249170441712732833626198733383235055660740155769582986195831099533055466909767829068800633625631183897845936861815973598478259457780171446428216679709100484186457980892460780425638697308996404042014217457848637996029305984018312120147017892701198283632822649426092960273545615428669646395015419536155251792527122479713266181828409582736508260189097170386457178098617575725713967581019005405874020901070672277764235612085727887236393355378387817616827028041694290811171637461298493915949583418680268081126492890732872641692385876590796157163635840081675960669199712453786022606768217766042332757231032463982169861154846609807726322972755260719143898309535182830760042966934233257481489603163203797047215165053580675400230179371666802285463532386686051605650134022472699899541734688332348453980964315198047867179716340760645919350059262974562817683247546960620500308620303010966173279299231107864898814450786313659491034029130139984826183054272006969150060049159241703973379311950602767119973604539743634292688383161217838617099336849883829253672462583971125785652840874503590008928192071792535122557936434227835550470067962953275349185246603681290373264960582456855656778794808254712388295318501147008702310191298612447669851989765339357983318299095609627210822658644898382983345978404731422336798692024405686509402087445097236090162756156779656026089200633496391781081816038952526822185830771705280532193656297208495019130892482207731228004978931955140194439975730801610248816431709517157034709004147664791065773228406218044943876114831111574972694689714211374240914694160442266822344534996389706409695230227558947188176416587163000375085680592323350908184631816945778490240363556381898128788449569171176836093466262757466240090339172107628180380404226662083821775331742324928812078687837536383959086085727137728039658522444454320798365492962773080172249196771840067886406201451123457250118520240053052738885765319141989521283369279549381116898840257250304776977313964912601678257931102259441571707722478504198458071130017996957489901583903553853192240018536107133725889746796541415637855435590611859097114115477533863880913478680747916970405826609794364551535898313902034851828912858668617465601772689376989134413261015770074373367187611472553921448136484449360823857909636973403636128966119290790681913834075749064203182207420775499807867386181227646310671920231688590987905969527730936826413242198526585334932164734179191374423408240173528833455353701166361877204771119135271213143087374570040003547658156049289295412869594370762392798971173152063030865941358958983798077416192328940268171951147655640664470142818749497577868767522296336076084396104564436036538028009156792058074860359432554415515582791182470429243380456743310941522370461322757587052372402103875900206144193278929277972292504608402241093357626486144473591657258716731446194420087192027166623148046357226783576744707602800403262353386982991915213867343397352479247606210459056481958074479656643260699876760189471106412950750487861583853194602217327853040569097230324737526205766452779348512580250120784784895642120571334541562302340221328822174053870098334874184406373048559942852916820356057468876773194864870179946941451715057248654860158886404850623580412469397926181106422317937524501688429691451035679754009531653015056262815735691025486153170299134460963385502959091487143843327881907171758038089024920914299155852601026202544446700620763916354119533940289104752952804332503842920193637299937914731021329142395193843114641824559819078126016513517499791459888554564264262745323330895847651746908303348291548622244160634508188898181695391438192039143089129890738678098676493508719369182244418966631715291777668381461215415831554149855974228255308810299991572313015214459186928625254062120340782319939743487885911221522254086231588145807547163376445167072919354096507366271202377797017378600526191847436176411065565003435975798058070256932281782408767338745393821105984241783005822075830268443552028566526207928885674473315004717342668039853023482374438044412533522442799029274623907389905346184098170029333046785327968478945987475474647388684620540352052619686145363997269219970550585290438970166898815857227961499286491624390355013900550282804523203987413404854607176510134981532776777078362487019487698852408090109381833141819267735138648659248705605368932008402352864599708777249467948822050412907252685099546724749914709975497416387953134842102628751738262329982010047358821303866716261672159676059561539674440099476010634553942260359535221287001964015138077886289739087186325573996750468486296039432817265849943085509731024706191782570212099203370401923226539572813569730008564312448572496417623776103451372961848379089246571319572572127089268378988678240551809763047823970991222994066949854068386701596834081265509207949058975186138985752167055524060196945171023220773686448567468789116382774992274513305825284006528423181071515509115145927710031916414894235464502775383427500108776704552672687848099249738004575627149268682263160182745995077013989350831856075905324171084573231392203274175898346414912506277733754671975302366207216455033964912339933773083306550872029407852369102372812363323494629553809372130673027965196307653928790456988190183089095460039558507022914805257584023436744723066328902493498940741242090742468391049528719111729932033793735188850636714232259278392935527168857850153814217925231181018830645636810231493457047292361273297925898547319487758041749452022721362915102848909168345891029345301813936477352478858174018930819183260664291592762850698218060242713390355701535033338737836016987765691020603604257866198348948390546035920180610878845539647844519894886883838806803381137373852068145135384497845890376328205791589724070832594905261982634329080167322608679340173244984023517983305679141429227209554953395970435881455892618615803924430268309226840969975021677945238323411531418449637281101590806399826492964032476615744961394292635476323864642123934299728144322288392724986045913476296766578077455752088495832023370313343366492326444399839433036189726018145764312081693000833319838768604210401809876533115400189087493757677145850102069539300810276761719773458423355331689428469796646026917118818925439173155067871819000425348198461325804604278041340809350375081189516614963077328338928059195043657951674764764661502203889492802232461344539400425087294475331247330618813050495068044010186091455218884608012678812336589661382427509528487283701539868239243808045000748207222155886590292337535002142983313648273266583569867914171066305117026958027744297041043024190012968988091284363512841205431290525909425756750517263605477663427502761808272594612692066551993957532388167808470134421693905633650162104343355312880950950644574187702166025609898330105092415632704766425820035703267025176519583364489684961750563572620734887579426063400475014638215690289549958248017035455288133057596472461887797577725829131217460401659104249349591989617631644112541170215717943771172450420486331877102794425660639553218922164607346484011690636249950832434407630412339307058403822422952552666373616019792742372853369709572866912832491520969934220742945866161295081118442356679673691751820184204957223063882327557123670071201406015499065897978678349114653968987065470695747525508612171219435032002590086984796024172627809302588185262156823270258434936648925174439208662518928827386544405587093137202074131798980987624916801777980396213248664376675307245967982785160358513289178995098824655860648205356011935591885659541416469847224621564414601405341052441394779771160950407963867061636874323349844424843111366346944716839426142293234845627102330286032691190841240694536176144857213085734488277152581131838386488475714944151085434823988448539275979457957060895568532378161182012515885466140751805440305955324918837695523479216984961928034333400800959024614898413033598983834633501752011131830762135584559964839593940871223524251699315620663213263298182658458498580299855604618981246503592204207527114128714623562215835691016552330235063501988268738766719420983719032397534118910971524317157205216009591154650122344646539831846099975566628819046303239302354487168593175110111528703710830139268777095977136963113583123863630431935693857085702259751077113557043545183262836519657182546035051717717671115415776369460147233083901780778622200118184495626701778290592299151068449244345517199918332133670334548583014284064885700720028493815082744044705713935000468069559062248613134106190080784731364454430130146838056513365077509361696225196653836849428603824365953093112021653905164887281976906060045952964812918282324650009485381444261576022681711569360786316604876919215284793641107909793405186315827314082934635316301254215753120211528852019922424052877571502583451453494107458075042334691906702272191643932189160006437176775899105748602148579360628385284743738246427510525960182187616703095541018098663890147054081831163246103748968641805874397899488208692225177512506256055767881101848419791423619802774182663546939291431525041992804018436471989829720932851463197701348751211551096542525505413213716551573594362626822890093935421793168010270085262820606273545792182500372495072576393254860722855498738964711035204499899519695377564672811727556606926271194061128390656209831372380011654698817609898497650547824885729060042137061100581839048540815363372915688499193017684655580132027064529673423264170155406034521292390240352889011755774896598971880299062394539669953547577708886997728464072885007516169950007570554459164969927080883169019370504445406775461642626261983680087900451771518010530039883134298920147875801988802347018020056713027375603710678549406758065954638073551474072333090725170403136225383158680553855497750226287073807053683262488750185917749915744088944502566909850319672206159782054349478674026836182943762643220039523502603457512349984649941139808808977508897513991909014647219851465925469712539090284600342940486487599381772817274739714043444626540667585033948874381598223540564172506715759547935144204586779322953041142554980768987039615442288430576652655464544782993308471606446935273467793636724508304798379814299968798646422348137536095655422947237626488005822178664033705344143089864290989838529468537555476320647499180240702867373191254582285212243055988971572399828777641781940266310482747818596660856627151795614480991360283347951349419182867304939141065940381517258713378244102245213689214838427924257176951998927307813644223772491597094572093818991014401021053616700607048126015399502240021660153930681348717868102785842866711514131879056113568784356976747274739844113916122232657664167553575992576715301288415205927521099753239131411974995681890176458270154404700685938416485427065363151630579725556345469849191910897192230076348677276088496847782071890437915808472088900382040173672686271620721480386395425759222834975478214313982207393210367267141940853643551841803337124499512026729923706778227951839886202843881416380076005378013333505533480306526058421846407835920066530583552433005564441381403712333480807948201408840357970862379647133494177855956817424811783064541501503110519708743065519080529250215268649662235470056907682328171596940358745494075765243618216161148237550504157904365353953359347341979665537408637092032555482177505098943046227192282119709284308248296954195871081076858411262973877995280751786805536396503383937604873897804746321646063266827057260498659606357774203910058684505809003961493614199381671993428809789391624693064772003681261307254344575441984268356892720100460687447071907737935861748496221117864974865607642464285220171711152206364943254324038852721155084448048316881725668751795338371465990553826800267141530703538132491443589403492037972254246151993181589065177485288840986357780199986021520726580202199670772383279306345014581460834356527834447326114657225146877309628818627008469524299140661653588824817512824934243633650653691386025317145979489445588566415825678506988610153314959661299911605454402928163875145110863494633712062929310297574546589444111889599435668799284009598990790129504252595141835862246903561494750943976388943450455097423788733604775345810686064610686504800994852335635977363463369958185646287663451741226617961925525325021875482235923097281934584784900390857371281259402972896661910500846318268967092902147043599791186682320453895697435286588294296996410729155534693910893775588243056956163034840911142890620782180278831285935537088936274990952262671298167999812211717475345705229859896933522846402062252083489274342708834421263627049914340208658024794794819839415095270986486705104531913672829803507435666307931133555358750867050683362029483761322450746283763459922295436014550402747149655534555366130422075184275469791030485125145706959499950399084956584592789577902211098457172456123556824104138547665975321485239261393240528868476633924928116369399428216360989630774563676369727419877666934086065080479151188104840602600459817078434605183404320481715610381855288477497205560819147994470998468475627779768428826475736822856377971416914253730261147888730743762900559437792546225665500819250802912837145555328067209969302924069475506895373475768995966945247320938862745224687794867933428307606939039081533315544546722221457287480564773441100572539077753738300084074541683971736779688139076126255602829446766717721054603520942156923766857343167730825380884676370874646705072774845054293563564567624720374564606623102502631270867880814975175480069263448811884257631718994254318580690873835381324785446981991857953436096824801985563115144621052263910049679909864829220492326768247465804233094033255099175413809451710646619035998815156572947486852772589950988769021144170093467031619886069896356299988402007293311530940602751368468492886092691650947270463381329412400728550110673035370776310404713114725634315065241884671197885346789290099111826323963785693180659542986724491976729282834368077688555769515309352605693040415321800821137829896211001424692017971719337200146279346775108288730773577736900277869225828161341546186299336143486564093341630185223571600187853044694663740111593201198872486259069112939159060631913682204595977389988146331184616150908242448261568635873831075574272090427362974400007867986463635150378751996554497779614237881749101612374481273026325904473523345890827510642853416921294578964433636729394442336827688192675360763575693441997973530971079770163826454183662732630820405188983019481605884417367196584895801153046618860335205182851708181724563379943581800604733612983773907592698154462605716513410044838040765710585299575518396901690252590316264114608369621700548294800511085129495522591413813343748892455114434866931830898342617739540730869848117132098430254285684149422648319811136581569424870952764783032280605089988886732830352908094338271372904054259967705249357770718960774499935595072271921789840459917658880118799835809771707431051849694833512353901468555982611493531403811873158627121651433006498165672262906377217617637236630224736231178356128836232359410678512114304762484468511987118721551735679293363879310191790303602308515006682602290563838571555926719052712520241378730782854980215731985233846912135153174754232565146590202795921861191576948607848024164631301339186883578768716020528306488616720601732829489746575327765717446173318918693829325601615360083410342339646271184742088479956193025495683144395214541573754714129680066738468073721207652046429904014095224428965405174306811255818762683998895268547225505872995275373021198818228151551233041048847903998243264829012996853463043122435261355608121988047597377581533622781599879172938088668368980242107691191260560881671156975047723150747754384874515095476799333279706116422715995576389472868092024685556586891807231731496800106347348348225576709045142773633847964735396578519089149399181982977318220215548315604180475874385578228077682108030104137420719465974720170313915994689839931469630641861787244999025473866810759776448555408946462496840189686759802088457498601264680515577665849355064956933952680473497321050802762271738907234783004404982389740774516321151459673782716720252030171167606281250526372848092673013146666901571394798867974180235613760284213607212182783847162826969229232071616683428079978090807815869509384747125906963166845956100609656488939202203435132017079024072092566140951607785510990615948948032158238810564726986658385714141145220215425397419652368771479006312201661135209472881284083195744193091341109044975850078990214791301171257595875534181875656253418295933772945083119409169916832188534040224548128758525667566035336305920412669993982644599596192361074844055464910595789070158780799800593034242687933245979770230717566396256816791101859066989344820888502842912013711276028831688829186695435701230522743202586161246875961250088734789769835124799094626490000755202103128404835943369297051198825564628903699434707081101477207150273450707995618060513898915593038710004755640728033265020756390743295849546745491010656889640995145391044519970310565375686295060407421436976617028420288369741268196178445537992914077554094538219031248912404511517039756821116296159958898816051860689964551656467273322908876974833701618381328978395732095609983981182930165811575354610103993046596963673618168445481819079250869626759144751518770709173228799186820886947140954500656621860073396501586828735272145266158233702532476360453887188335299194380430785814197611258321234462024054077608416324570196360442527638016633313119295889824783121548148339237720905966695069999773749047311147208901879128455246541717881519590267276676583604404249019281203533622375356215322690859500443232898599515156957814617243448867951670917993737107455062441198870453787612241979990441159470023778751847575981358564150187822251804039394660580886372158827118755408787069440450796700259863599393281976161134136365791202549901787735291937287934277851731409808194931495164830183752195417159490194183259098266384823427754535546544613027627430327275165156356601231653542594781024733398641569683920802813719108487176314639652466112148312710276781170325952516591781013862058792562641541866736442993668068358951055098934792083864521460908046410565906183327733524048481642073162274743254286129036924879326670700587908521820911229966569773108567222891256223619233900720806878311515543563782343488193507441990027710448556480515252160299734420401583128751841862977579151928556955915142149160855546037846910430801913201101016717101269041144577999687350274295243792711607731236268891361942126400660320771814889645752824957894133129620126283112031053991166684596811895397103833189611293901283928122219536562932156260776118368744075910546624141927114733639451716625118850459614844985036080350159099699436623804284883486008839551515137781623770835748268484450944184871997035456162140603943542184415584789062642473042112404989697661520545542922293012031809937359881516674449826900998296321390983427311169729634170691997596606439488404211886406719945691278080891309014387372400031149493240730778256506286441588077878453609250642616351059276965886267971386582161094518348978548316274137295250359633144309040628560222594486481738861833166933704562629359152432572377242455766864716869814517846090932647940104880526801444489701631529586952304657985989942320388236072778254494441351995805521493210098423774936841648725270758234014202717179340578243826921511643033590788305858857167702653868242387453752963478402890931044044889007557463032114440605302199930294535840216982927482468056049823270271952564161220059962938015561626125191958256094754395722895955499861698922378761401566618267913623232510327917603848029114073238606689454234485278230151738747491591189057385055346224619110154160327634326188464319895921674309434969144933714467011573673170224457102040259689749268395786312362508187227093525930204687879924124200294858828635945217509127756944233464803135433246096011984422586390322139192282843338708251674457378356835750715622290530455812829533834186775845782218984945692484428043451233581812366891731205550482032434240454075714756857708630222590773829820167505648706456696041099516414930002000350309032489774294432783971025400992981171881183373087914370471936832295298591784633266884578189868525349473264287796935412568616696585864997552259980235232485406567327810780883056261769454084141577391406231447794426279685589987112132882576546056840270443376083722439450776885630696919675732549078215799306454992602328433872242004912464366337463942098890393708602230203131255843127884041649421450310764454525585346729873783506256098933558985627233048102228471877386326809700791398754306466979364157072402850502771734091719859720695855696648396983899365550127607160221689141668000793571820805614746036091524384594913993814861107978527314168882150669029139511074531193815559711820945305183126978334317207571475163271016809437105044462058749597897345337586587545691696839696485956973722550416993838911441462719939513143189632826044728714346104820607222100806270797265546310349309820798838578967533028813080207880239762753591718599152309828719177687905958676473944147874335616203364774831093220562389314175388113789273936976753946862937384560520827401811906375571338408020678117230418379287145361861881698913963344095561273965326021318532842372685369845864986771431908116021140314152238715590182932761145364084872582461890775440045216410274353523114781800377211808675013411580423431529618939958099758005301023312569544735491343801822537460055829192736063725051185466310267643005511476492859944455134760022958082869036702563984067939419140952818993456905829023765490039832362587734081706011370166530156266646834155091600896656164126816319762413748054752804431383679273753631396289120863845857765184760701830476937000874784919426880732995849644715640793277145125276238576964772136018106872532642480359340241982068706564311161484851407741866249467650438065962448847151232595500417388993170488245799226632940727154701599507579594344407690225841779827492110788806439222391856710149145474275959954352043788200128393300839952506235401222267740209890478676762845533656592995336559131082201849629845430155574356420829233324926225349271453627622388677741545077783829614476333029789058259637927467528577898258813700305113487231200376617727139597956440028899190804613899886231173943362984643098926745857777240448476043396950904845028230886656152432989748817050849349325283998641874298995652606303353973647210611119732349958752131825882618072169996656029671715053978070194509307395066321913426405158399322281144848258081375849779292741607816413600926033437977515500719671561368880980490432276655852465103874065149289595682215455244000846025533189859032486505548206318957495114995440010027832666081132525836029888195085588043165040955762155190612734485044993158796050648928502382206779784879460474518938413521037604254501406994657024595805590968520705577523335337596624809583985441685986667411120743255354285649749575473801939111725839668289664034340270967327733642574409703694449741764258654743232553519673100777657644369561609343120872325349928711215093620908253630224429015961882978910538480302465761835155138213654231031072489524891686470946122611153679322118409322404322780016808357884023603768460522876543676177321281646736857941708256106691280165606123722936396939042324099549138174319332326253185747718140809901966981190193561742434254937107480666996441631229821822107345806294638235454778433502638136836224173592000448821335318926343457457224742204801177123479988615018439476641207737725502554986610577613990039593890598618516808895445046666147593185602485015719060324420136174201524188208176223523713565532838067313796666390089701086617347912249033827981661957058583632696282170789205455498216997154593463813863698984105052846277638697306267806084165833130685433916745725215614227593029488533820902451941563675668899040543472571494003572844064641338050999526612082243764934349380098244971412665451278473877300575861409144441126886715465438656328091038511419073517147100956448544783992519151986126463882179592482789339313409363742235833700965291105554881034192637645573864392511182495817531981400635569804734914883990836294634501277628005884391017037609140216323559921574100782991586233523564521072259411536691301761461330856567223660540382777418335670680153888470373455361752618395844481447747396581060251856093743178970760065915935040241548158173008915120237605281387324943484089467080540638524441515830547441927640555957687899923814485684990118976837398334900856006119085685888536844080994086034314704595072893322552301348577042500043260878877810529643998672457198147167009292749444888113341220565107416362816054862712348956862859514394261374762640872265986875352566283300845722735396933106067695849506159876342715894505055893895145913574501482219340739723342148245772451425755408610821519105456720485296227259353632794535080087559613067045753377086872353187480076760503542275179244651859877155579988102813491111997404772764574066381059809983449943863197189025217377300896425200004363993551473193081361007682349628096149626950210089419823544344510418030904932312254962874431486419074924452600089629226226647598253152093808791940005338959961868696673822778059220612295999987793157913863176666636383055527060898189644270118178992529712162655749007444300088722100813986573605570186775067411366189476665261477112273633360165417114300870483127476866781716912580568753611206963574957793209733498776943858618034805627799213137873815072596471572904642076000436568204641485018035365312581656440236366285532813618793060704722812895318804738787339536852011570041358175420204805530533036814889507592327795852020171310169123440505428135438589188532891435095170713812393678649977017969392944751086203878464558544603335826554125637735798269070691777447713924077156782752410696270248372168686269628783701460026233044034600018470118776047840091944810540813107822181308577550055661147949866397870172146606908054178843758891670062388292751855414182524174046800680353920074188075131299425736966003058046297635480666072261670048453187466599315268487929237823043144022847924303344379528404954110008743770150878166188242192768633884352702770375890138033649212282244568487241170045611438204088795700394839045912744173326799244434406161711224995594860304162423689661100841408192623931222939688675584014900525629193226195555189188694406466123793154810910147760283968297250002915751741310455813453074713965537656338775816278224779285423721422063698569655708135040163950758484612297847813750448888096045113234235351819771865536207282887982455319317702352096442217183928643972764780705384845399057249886277758310587584847289635635619932284146304321057944352467749600818449955962075877419697976818771483854528987788167834176079930161446774508001192438477493448757719051939436245061270032740578891270981119091104288155904552436068917310488076334155073281336930253090813799878325422452264745413584490350427276074787847774715421880176930197236800538606844923942988764213762513285920819296899317873623892495222847591963473685583481000121183307611468852625887188674735498161539738955323842385177547742931233370670122168218612764762406710526631411509350089325984995756640921728213110564566466518454851449677565644988331734450757541235431115562587035373876426466009790128943642208076213197585461523618231998145832916819137383316132169768690452799835610942307751011468392022232486084614854631043062128848909111143440903841968735217185455055128954831060215023857050177387370763134555620143428338722906564023511608357107024168970220702873856352492830210815445910742718767480338997240399228939398233790898244932891060169031618009576791650303025529597129433640557270051288250673564125509504211636974174815708242737535345983131078339291918770943955160891666622865592609922637184781778049727583376899370151984293800022262522933349368695052358019554073098039724397345215523590378695403591487396699732550776105825280721621061523101493423510810575251684983927584886067167707358950635572204056697203709543705056739404275289037278735076708357003289167881832719354801789501871566288027105567516101889732765485970853799093475060684762223765036898221422114343416731366046439703672622045388791893766268479246786860183126585530489738054657616455362835159328932819889413951987855140700807758717362089923809069193504008104497715609216504947072393634658844310988923923480000352729415462410434210136239498190874333567396649643325067432032645147101215475422420539233918580005216412298005124206387385201971686691827641505170692643664141672833136756147270755824212432156891626564751512156858744139389447303245961956268255952172159900468928850671081988868370811238342149923922260811433689207685435089940808620666102650501776349789698930440653398573093320177330078301699225862280008213839877387938441737498866784267240855295203460460638108180643641634726092047554987284402403528604192021552401530589955238255610010808368188966800365420565472455365280829058695303260578895977524320360514019704264028903717249174393992365360249992541332957714323098221834494793509473178450480691665536393058945558726434509081497546352891624482204397519491361302469498151478895701025396963366644163193521318814743130181260403985925841449388192201284835031077806607980737136554787546016448407395216545354702857952202022659595302730869360620527401441392620490985265950160157604778112763947248843657015297347016200462160670431417202367331768288835945191667877942566785933969298988473088296113734370372247403907888453000655062592445191223168267576132343481200363061680821073524992094171454203738866876873186975257044714028874829345220219271040197711403022168969599548959350596765440024711564183490444143684929278077548526154234904437846293007406906237330448609881200705363950260148869536567537207111345035463250481118406381529233945756932222209688107723995961251146764430189863567480870500856398653608451047408618829214750169393938884135972395517418477807348788690322940518096153054245324055282099277889746864365634515476729968715778126600972202470355318484505748620737154672331332222698429187052118529346240591577383194303185301106819765527333732149124605949712050073044753900397788015027109477621740653661106655705810802646571631672865747657938122541277131788288600355714955658406465494772527779554318213616976199975770496429919454819903733594710591128106141429307287287345181661858561389942872812536463361428833602779195396819438530468981381051374592553749795352111040708359087702883750267175971339063072593144510153358710400729630121878193780890263267039108241557650994330824061373661026679520002131548715602797090173192484384116693706028786116393040545163607925317037849302441974197073321319971306273170996176409379864873374303827390995620676301369620815102123944378030408980836620382094973516783106150078996862358885683551386435400131434450516776600213602779868614056687121082095157068217037264001709281386635961001081514624701440347560282471437692146319887342992765222619033479099407501743816013833927553984795339546307597371659041043792151472182926274378492938037904209849817954041733894500896912017859514329034094147551552475956185549554412099792524783371240723806603958277306348284891715689848371564272722580091476898076328419702520518169876340583476290294417510785546548359399102032919425993543603651945750427945428838463887710720910144543534241075971615179456316460266314252281652570307009197973138054236329168189698506279931709900887932680540864512567188157008334307573964931186797449810809032251241940522454149886720842507093342171639863372934615757627786747921967294167268679647724718222405664847934228334487698995605954912723742972936399533869730263821012200361730442541798383295676105758632294499809655263562913822971442008058441550088994330054938655178581788085093347483604331395944668844589761609417670803177228889197555807327608130247839798296662858826372170110954690276890907360885032102238761726662357369710683161684416924232773095343881011271011500919389838201252697468580491654622254725596867028790568016500719400241760277993158480668640835921667421679011825542087068231822778449786396971189607944788221052654938678055283357322218558900753808956722276952112130634598328375741742674366951367512832894477834413012887850030522466476228170763754327630645978400951826515662777319352639325464759710503683599098292060797246756107584575954767383877042162962894053654212267124031956648643223426603137289039887382501403231424129835216244843890163566439091091542981720298375047583151825791427259632428545503309475428537888023795551348675816296644742748702426209442694376220670267963936192784975915995127476738557163264321538660966620483002460942379270588988084755589749659140200270625263114451901306377420091347573105140079294983297276124878853004151168148621724293613678557705537866949689260585503059771296414397947526431287594798514018415069442888903255068473185691408685693011548073215579952178164542624296994337450732960081431464917154637081591590404896468985318437149714696665277999245783241375567504120463103581090710997223570143828829863400690221134259546125335918812544018150390236655775793494234932137252845775064246756701119657374052912481724723011094890611556195030537203348655359904091569563820361945271348817731028753444143745838140401693743768091087269129864612322773815972516915534962817970271371938314143509835097844656842810089335268570795405350866547717908246455680055584934546119704070810615699316559620918946559765773792614286183832902836581704530250576507559868709373886382819774914148097233525875554006899688723979034488282859631968569008647417918234055068212292995992097874489100205558771238979895472031404070822952921694233277028320634632858475593980696973199421400521857141256731624107170376892590429019034615617769393818346275868169813882359319695944812367407728181555136953823668998901038061250261436444395756923184162645192285258715023480342939919869503968580969101279200830949188115838441524992296678705877432702190238292543214986554322332553408172141426614694647140308040754242912638920171434311443666105777346764790256151410179974029932345313695442078630822973821518889266244686804073470364595689770644733915848896407578395059935791698746252713949254405014041928110722130121359828263653243969991889316328946083172890321288364335141239283923725848461831464499751237866899466248141776019652849808805944909517323427211589688061049368897352596219024297560321593475835630919335839844011940154855672485008826030592902678551354789478547205734862128859336852078428868211429111855190660001305908946504878805606906234914017664780799175754988069325283684631375142357767641019710093220982282437521493399906117412932768082832335858949230510059776628080535285863841578212274156448201452384284508848702916343514014109189968615419833865900797608319221072121538463421413216523134043656126740854297849990742866676564599954999117643364532287474359314132351109268611562851737705538001986166768658935696869202678231431158230375617920963646423291075615319691404473612453886090529722511489331657855433148680516984633575137696841018758367564200067195781898539876103546872127133231588716931678382265910108788390442870572072324881325538121998862808351446298003189591801366303845706409682967552595373340715162926400353713713733050875140512723469661981006472528793109896693691021086320974800412462968846813423285510070025380767232622811966247444560006654033279212051404593403498027656209584141153298029339108993423424463909441929779986652796231364475114046228109183477085665365324956759364412588291578077328938203291890982548061427567869282078283611332226013829704463551261543419539582214226510393449695897546026921530375124862985892728068460886064489311463297406462359146179240731942216242523156130909425474250869589041134882658555805405726710506472956303189946869602725561890490025936960689970867730973350960062361121112227071325302291859873515099638302418096458593689208384293927896511502975347457932581901144050129837719096019828598738162029328750528393840974019494051783361949848620830487802962459858806899022267140516369034861711849205522901384846296136654438889235002488971412126473733926320781972472859241542586090681963420062173253783307334623787578533024237517564254882253436430803883125702776501934809564368306568498462165688616206863754831439941414910825451236048168972406581892835097381607802359337414089093559195167688253117880931785349343847172627691471525635294540032033369324935266733945889713554081889877145923522734371632048262198113421613716497178915034963609883476357500151121749667177370822602794569828028905891619956098940149536491918345038601690210417197786631436810172213422352510366319073867923752229427829268019352295577551278617344062500808609769859514861772796417645416951867918405040345842440226696296114243014161243464233523836447362422637982207309041601122232520846429366568825320887858585362358021858195893355756821787560855437920277684766086621964455264405640440505384697118645479591702948130834068373553978352223827146506353818998743278193189008248590318498832994704039404673716986415978397310829805089662029352681722300230028547164021564383999409174797741052621102156649194057198576490451714527156604320269663486925510450247504419065242397108941071817456830958742605507842474315400661602878038261235172879964755122356075069022462463532823988300162351919659740521834729488668522177276838292470157481833600735514751267305830262453747736771773899255880562045369267834063820048243796273918570364410316816122034231940992617074063731713208283866393725733882147877762611060001727661534891128889296684497565807539224282575941256989836292289965193889612922492267391922375234182568337748059957774846514323726197295979704079589148466140481999805924980512647468350311871164511598530710803832621178380090610670398400386683107269246591329514746556789074294480463012340777662326620496646252873751753922833968616021722325317983268489606459348013337538247210505437743847872610881556998477597998072431345041535631425246092158505421509794559766474544993612032372278103857560041423281633132177482431843461542313738802499096575514410853310906700118728425623130831717230702962866464066534132271993224652822017027631761564012758113812281098885641744006330282780498374605911896912931557818548377826217481992349908485883597949645786310412075607412785485257394120744895833925999247913906289365295949965804232041413371703277493669983968331904282224983034507638371845232565317053928602890153997661118668604806526451837746790582368140483975289785389562462070889103966026211164470251829735557412396296667509655871878599296951519794785080912752876470840850919574351008732852403694836216577101058043534587540702338746574167576250051279658815046052068685421776558931480175950258221335867873029417793089042277804525741846387763160905107919254103752107054540466084547493064501566936150448386427439355580238556168947330127350896107368418624085878063082995016698193006834171912990888450712190908475468124378178412935214282643295713610467502503480934835367748372401775865466375345766648555787359178891651934493708733110172578211268209963520131562992895511716099609584104651134420513801724165528256616982205234135362471079637191380716987438894631362434811226685513067982310831005996195739792938092270948595829981417998689526186462044579097818306238630563678140925560021172917385040295257718367125624845207930084806628713823945221988966388483797840922448780634984296129271963162249161295061029878473787807796778985339832763682321208323418990914434189425139746129860244607325317022072493711984307414646776800439017466876535954121728005897713544476672747238017257920726845493387808851508384199505959572364998277111740036996818205046597799581867292501973318553052319832680527194178862860529502774980799706994359009264016714964734606812612217559452067516189289675187385361945171176670268395122060607297507784528076692911754966132807444157078647119047632592648278638078606158088209822767380531723471932198630309861815375112178635654070887994089629762091018205847041144729185439748918256900241541058026002924933932319656014835492525381079753972146946850345174039482426652166023166196758857992134695810321225556344959969156837656545132783326217573961684259319236105877998253538159119594762070036538848441969556486183894937362079396841567714812812657913089927286901247829579532826290469450011209874043688827807626838678664089818786548873174035364350614469611652053109198306360292116645540523689292528422990409831566647170098119499104173509387003477782634392418675614688820602665316027166236806296710029371611006191025074519196082045677125196733788835703642786320080970094615788102934011877912455478917297247796589592609725476568628793238939395402021054837152920314931948983473910911103572993010745384874914830331072152091106931385836586143228446004669727135264308931516700721010924373814527363878507544791528936791006035444513556809968252288967812116830687220540109387356951126981456512814422270684192792042586548457528147509976204014078184803907974535826493064379061866694692960420319155640405540580912464125250139320717686647595701872318088349082509782396248315359368243519178418285657922797749813002189353214147840579984452650733814737761106303658444508191818847380730125474618493062796328161793292436707699673914583697203317668438093373531293895095898728971926780360264341485141113361953579461130791545013364436951748487866711138855054323653656714954616894279065489088774750968652074698322812610096598944292739148118531425809605261984966874385339197302764264259971049730923370451560202994982085385988619091926657326343826748967838738337822567793724032807275321479185126471903025129952213670762556518913307163476896022059448062153599545973653993647431007765377567194523623842476291422923627757899822714003652785604419925628471649233503210357137376863766601146009553010536573005482672999703214507182811298145302102691642297742547700838563439434929920128939849121344556904387936636493927689483022709375856597891413144923111265426895920371322160801141369499512218916133406678577937355535917305363852984813006815040381132861181859451651719436001552760861130389082039022850265479476076168388028250028892501913299588189850574391042236063810605974541464635452930427631986854252719209429638760708554839424378470657403157425482149233190372578643398166464663683527161809001651115171934497965813059774255244294268120230601098210327860950066206129380538499603054116083770859352100945066220109646993916356131920712616906063940557906303241729198581328753044367902301458947730314753026200073240441853672528191235674133344488322841913860145612032049410178781049579374374282008940657982264449545716789705426747213777495129993829511088299358893754861612402779679264140632986991652489944670113634432501404342921238221147249432771195800301879890556788728640966499619716567281215861563205558725139142803970757939239801936735965110560948945259010203084777209918302946471270736283306726593661362895626128413042074925880737785598212779707000792501592865097583596315526775747328051876862546933359295619243408764566511631329754387119715144384500039264955165800635751795060609948531360580316760901376455920288446992240112768129120250083858979863948296409072638114405237974207608990747206309337038733994834771357673609989947332644776987656784104194086622467353563736489200160321911654022661128551951132886397681625680602520076224165184275765640739975403421580393252194677457930356200554526343660782028366778899804217736033139927971794137086287109136629646461028374822292475658893350710364445707731190467193471662663444595671724294355219720241704263880406671020043607816619962397632314079590985448555899476187596905500011839870633294223947875429703600806147802433712682369753708585037915947617768246547212856900604043897397117706159226353473387922985925652837421552431093677112970794068881857298836376856410634751588768047739155362358479352818037335259669191153740487832243246370367997209993893434752610572517728582395091344693751216646473975345115498158136244982170254816127227341613373327870929229148629027486966756923444720069999901867783378486056066852361626206604718347759853183465503659124132507831445555324343789229916273935307415770147543992540873058226318156253784318764289381675090954354201087837239665477789845704239545743658072203780333258956122913246728143309126660486511267944034988509381109210423127835691240429408976701876194531845084299725881286230272114791381672975923234431654502156589654129303199637294149920575993467866271746794645841764662689280435180264992781545619954703696281326854537164022792832641290075378801374414601266155903764199117116484885588806103564697527924269060885132288701139127294092353680104910054419688020262954183170568932438969182235571886279292318744088293550751000598806204441824610396113691188311226393333115098131080133975727092583999444159166540464735169722287325546607911308730815599059794326500921868449816805257853925476347173574042003136502612057621545303750535645674795010529523507013692412475655738998046858545936368193208886219030837847542979136884670675123720065782302287772027454528763490521283147364886249915091502976195231106445852697780382023805417532939480699521798238010969467218664827750090078588122064216742057674059696631820461647240426075242614162528861603357809859263384605768691506443246879428977522216515595270670323936925280871725774064853918796263650473947669392502345567425595112899644601112134724885560422010184395630820099365084953214438807318037798817375305226562083032212560893127058554031646047343107960283480117566620435032087350700428741267077129079154773081721748271699610217648920221276945696511764887083823646180347056271803198701419460315241502597776112930647052012333907535224634854590221948172656143424891707765930360195299488522538375956632479242425274726278860685346025734524380993336424764407863126855221493420583072880042500051600402282524228919370459711490425448541295012774203868570458215527419184548178576931645532837417464442379056915186428714296198367006346225610670309296006212202482108664068478686265428117058486596008271319880711846766274108012320980893166233181244967505123999362090761469558083628824099132793363847056467493914316607033607592926574340106432991414167273976079118865971732981332401451330228412695561339151582173484180875432987289893394918877920044912985977720937376448795597927441594571583658275187216564460864496703266640775571692344360931315073684575676690981481373131209057839747345806153470383555312436565037659307853478206384490406163978177666452228527357321178100471227415793981089440342188698590603492314536541053398653017346041471367613539144574111355493988780442936796671662148682941497048118091307987507055745734088020005945820624448166745504708924012347967395231661392953373584407539568120184237540836649573750726830052302348834149998483931936311108337378188511370630805631412653058963743544416485846731874819440034955528083957135640823184279127601275207858959846054406436880942886004226157923934090315266049097879700752361334122261110901579829483047922577905409816832701549332201293744208149650065122116421159882130129135715893939184020127828823953118569384823429353648701554179363765547873789484275495639823750534894529665461982141247945885136263398804927829203220841745753969994029114858081022767906327157820194205522690881540133965793414049796771393158233498184523086691640226073283563791013427142572214454269502899744587688889308191607742335450952492904667043614055535969815806004790000463018380214823756780191434589578406077262276095543138638572681972494771542790726144036964444039467700173067827893210024848489250279098910204201001977660023162100547743459012607982180493957487233186114238284929190690494739576342968385816138399962875986871615081884463465116878169008483062666430168875656266498812675967047010808613527069604483838391680075355431735711107239914034187682165717145245857360973906969947999965649040436385665291954442245367335218535312097063069678604781461261549079356382928067068866732084047410232853638323448757404006450175593960716288371322427382261284304324897086990393297809489419787896803718158514982441588721362698578183768841321438950863500121038717354782040319580342921181911237342650516641361332092334778243559655198263519065207907001899168138795116841531407731552471884146252953175476043179213878808765134637606786640894402959293733493641484088842203930783571462411660416983997635821690159553613067676133299556817390124175018408405538570113811162548533386557299336211362140500916891765237520892850552129954085357478792864757042772011998113382035713256731912656598946267787956356490387341237590135669837945321605490920417601278979467042198153144970968737675551430125918911494775369870894437776317425154691062757688596716663219695598930050350595325708956485278436885356653568954523631632165306497218529934240356115491954123749352361038495979848935700834022094698724063989104334085272139177680165477711813097358425998854794048957835333336270663400170793536491272341818829615445415760766550646962042463874899086500832135799734719766158942595892973586797764240451976822292638494115697146956702994346702185769242055199656388848936509680958797664699719896044518570876170350347970120590760141197564790911741114456493777799012513861189894290574649390547986839262825304503105630839641817952424643465358994024361512222331342089269377739677818886334735856682541586681540065643716364749326771328707168638507525106739213104131620147056017722967335598358031871974438853700531534583820730767640950730117081797085681661814468240523380910883415876930468921000859450327400334628963017586213691616348956013265845233798736126096472101078056899037427868471859677523740250969005484812345605030920061225746704614400863207685409426596162924753579811434441372080166573411760121284005855297947211930240468406985801079615636108251217551484763937473495112408009338085906435050304099383333011528539846117804865131298636515047227806090093753548183285124504445546293685973746963225880859848283772518294172312910612191003990915230474751996941099637027160096155764918280350922506962598014921821900206699490948015192774689446454435830165259842239042736568131085521273732603331924637793670453885046214486454308932130151033034525246592917223221137024531601749684618825674750588536701641540537092678582494669119397285422298551435538422823830546214273062614384152645899936329215267589554051431533774837885032489762959516524745309913963067631322748580471488675601686304076987832258832163432710954297337344603177670280026637319428750763335623042152626769342974692835978438880091961130243079412425616449224908470293988661374865806237114016687082270527549550535683157132988623771756826588113374348109690272654768737214106154638969762769986687054132616216352439364800156974629922271060237028031675761018567519105765619306362106018878027712372716146566359874816074788185274714142615342966649373192234519603960231328912766854427187165334929391520691844892743380974506266044126054340915996441514740086388768635681071412195285154033567193336596802042149443599954029437059247163164438332857873758561817982470135904935471670748812009976150474943003389367333184928401738296427248937589064925525697144149067198446199655912676873145725519536958030492145824121805705642723075806671978036039063621113256489468932981541157214441907367977744262005366511448848680581875980801533537318547546961493209542508014667452945319781155881491751864479905191373140311095762037909258394932080193028225401579048220410306203409035562551310881070016446731995858073767422345607711133537227660839490837720147514300661068962695409841806586952078017261646095433295047381643757231062717322727783627648883915310998247093875697778629232368619691114290158348298586120104025040437789278474710600034207825509964828380280873224258535804000566938978030735451831464188361736318419039327643715410192121432067034757567156478797805764088205333178255516149574726231150275372461378442877222970174697363766431014623746140269157365577721233844544542628212677550933735209085735833571233405080981127074674453576701618135229498573412303689058966122929831382314349803802801228337573573776051203061204108913124750541690606172573474403513042824636243310996080297323494795789943810425181284189111205862864855092841456432155636441809221563784441719253466953378904908633436709715698855475788207910835997940132369439848398972735662831600362526372712669724910682583125799699022240940738807291234347917465147046963732354686803894810161741042013752409869923248942645671723429729408514761771680586009886898007418877803285661961343451450200665649129192902765904259731102172458789492785330079062825504364162817224913638575486361757954143140125619002983059796298796231420235945538637154124937446801439316679521420551567622720202243009890146616037883412414531819648784795860597114060477726142097779715435730437646743310201581071245549388934309760746183257927700601801414067158870370536644853127491509237611176866627142095450115052521990468370591317848382617258193566351823244356518013895316124181838961832299154604181178190164072731503789935135760866422389256137545009363283184147983791804840974941159842998648790113216812496973903860213189239991615327731402164072250935432210772428280326354868595752660755809044302645696221278236594983476660772340874553793563638139617443052845445301736851421373527589486055600780864761197149505114251849822504496646969713258059734789424842516192698033815914917174687847217612423633759038336661483801258316900909566426606937846271406653880216091778583239722422859082405096205283423870637392553760255250831249054718379987601107079849602915460193833755662155374856166107487353009870188943416117609098856607977745385037210010762836525980982455800155611173420664328528821569660006187068885145430390232099422550732328552017557052513592006784429916210529322045829568377200073799907308946968730595986490940616260548591518630190627408815630118937646718684422183195600732711970587931156676996898909334006342977836038623198282544897760799330860340165489613762291727907493730636173816697337535131058375907573955969368612210557136749570781986400210056255597899761604346711323213416932515873030977856374057840586670672644090237041967898531775076714547086042486871136897603067468374935836714889621618834834064244149040944813456198558481073427813496511512603236144138982559059651228166232106149066455057575426059509268622948767994936202905419269574690424234312165423817526539015675148646880223941067063689311506770269228781916920574693270733340316483145526952424653656121655518361071171237850692182143285241237259945461507130803559867103044492193884802327870888999795308566598041594358019491295356401245613718443253722013824904195666405690198168952517823790333131252604191600497181346218250151900952377474116851293967774545991497561208791037121127130774570973582981625182324715757194641713134199941397156642203275503761563519412209173456811628109959262304415015939642216451198674041226237954892123751862737261092070735836526663728992300860697837581297906889186959373901557837765147071837701122890879698225719580852166549633318219292158964491066887491248819444420096964045699706700821118443066535338615837948434371671807244352654742725846401399401728064974319883967594603801461636636280259186364824762213553694961440345523552292719986772300978953945428553132685806440855204003531805875088946145561152749693378560616407820968793672837910915469164774059365696733151185155422388981188248929932005683974859522278340636825536483629643223857586516904457080338830230103167181381134359444177767278752247814766298664749827525166298635629113688719501168170515491597546271216507769994452823206334860881362454237356612714465057323693804484748529053052356512370185704298024834180922868411951261666051637017364789762445421854554208593374438981582333725706513458273751244808226867083756038046413005163993408056207753836596626396630377309291675773796730160469787700277045369150927141972619688570472008331083238622604162276187814811617682563297272646915694388663690390955300296720965798902523698427677220828867032882433980067139402145982810657269153820419483304833842303645167554510296623483189450883513059712643024036366355461955700646838587038755115824695866630413733509857878374148750041282521433983438578274153805782711395271783915944021101859130820272774577725258270911923070347391858421468163182284583447114239551157583411669583773160864215129948906812327595055089570800106009527362462830402166180730922549821107066058477146845744411216472886336931163814749065210425918478087459543421200821403022716162400995232173189894164098707565244732785602611867129503878554141293848904950870770271514788667192887270710095015659470479304901106903939114535418437828936774279561579763687798891359399028561355675485561883263154022500885025316545267363471068283486012392797961812795550008073046214844795508356112657804442852376625849901911564726076338584050391271175336284639953715069417412877343999333175820461401785054412988259971811248852182802083576127245152147605843052064821052365424943070247641340140253003403123612945952060454743242597854999848307738807713771690655921231983875174266359769676880420811009598421255005325394183349757193586719856521146450573076271887949736033748488230217154565437508485649015124266398295345439626976773762623091183061686724634914010900713006784555119051337174060538181470630164462908896869910201962633708543818735887685443084264708684344254006795853598400327909317799536819232486607062170937794713426294946234648277989807095183890528274348855488059395892463870610069643529703271428480624499302430828541565746363594871570084835923755983205685515465680551172180641367259406944954968538131285371971429372715991927943930216913425047355386354848441197246731934286361942686350841112670203961544546967637998972913555443678065891833532981674044981975097363410398087866902810442011964930325354085449809810425283492625296787805135081002102475323519469945792759990893288882642355367193713354486336799525131785983173061612685473975841622282861907546731154737466763672031046282955728284183050614519159777653937006593974852297142005100494011612996024268827021558905680870646645960276045365589963057937540675091761323171802797083978937143346999536380575132827841006384746549934585462241443516888594643975803610005514969342356109443146004695641572142194659932351166326839158413990873200571155837028558079164842196440707722394607730400262386393042976597211883574321800352836836008829137518205398110067492043576639150590948612644228519168304456653563077104761636846753619537226626695025506780127212136913058037275556461670598610417925675574887267705012349561419943690256706518568525792105635865439135461710577803873777634114678660294501798646174587829116331505808567304364987454962678056870928706619871973270637432720027100795228624409664654171231658408071611073343577160633217132830237942415589993575066337383180075535252852425339518475782167673762441028025379579428424578433973723660706549589633748294590186837368831561338087527552873481219912874742728432475512405222482615099460239773752810611797912310733297055719933329747451688106777988418300649051316127502977878945976199329057749682248560398120395482849899995465752081177331782860532815476873660491829499773385373119547982454992387615159677533856181916481843244937069829926125541660653758799759244882241661862690183613685562797048255549649184847637902773113651594354874172777857631610703774262062723724079630089047432046678429915259341833042385870398380382911374891656084426435913021369060310953531123698442673308296373796684924964354352301401575421127101945364091373516901299299523527952906656024220316632784710959097446709849980056365926129813998767205279569761705120135944001216007692498035175494475480036459910703220696264648661839827752992763080486043613503379681277793374212548865702392279139256099008061097041473012414395340730440581136645115645446404784949898400422068800685493344165317966687436413211166499505446396669521781639344433439265319800492254356989353473967621756012129365376591394471782142435626104640423726059740960433818466284157635933058867550381554169690078514778189637902292977807317190563030632731770286489119318298373634573797123560932369463129965913529674914447646547092336733536543942558113942720570791487680463389257966893133310919525174797246365412162685215167743665183209250312522052996320070567997998405930496362782956580619300151144743832001466945109445579785670813130905656769407653169722590404794728077396835198762305710306165756783350541223115729166533138660558405516612883604083687434738528997272939001885943470725565529775796642440665764231886594976959412559116580643503534831385940115903973830642218486246042193825551107532624508825927185065548422198809049417043274915418856035678014170411519606565551587666304040655509412832352680127153717732497342889167213419879443542026404436158063067379325369897525503055510110182925539006264543991588600123728680700223206048004917319580874035729285588566810118843912317169254174351366193197167059194356694733676333135477882906781333563050886878064135932305413726900342060485875328568284505970908596800937686383817696750000473872562902996966184603378191094764846912166132548839835406797078526177700877861585535294031090988839056350248391540899352205365340640956937368440843693341057404151450241136757105320167730122875922490575647465519422290084290908742288531440062719768615369805672634050399764016164910469003318209076243503130775729134127724342671838513279007501660566955233152100995376040633089174933085173488027622585313571674504325051800926225675074797037735415293022687359141645832845959079929184614559404873544550450040118654995732319809249248477957501484092952868398651576593007463351129362871068668689284411465457944887077731009738790567150768392706740387307071241802998904503434701707051342872557010297005858391155176883808242364597346887665085623278866662828280295392086293944758624679600872852458212929843099850603223466475394970503599215586683156948373708151447674944397726378810772469527403037513681935094549305711081491379749565535166176012859450009240718163130603992895273772719805286668548849030018255697773153693752499325396669578950280105901549541168876929883691169200484520737881115922203564816186080204221402091732641144394702367197831168593834211964566184479624118765369580357419598339728645183261689956753684399963198946418059992556732762663470344959533055083044009832351250593131577862909675566478472760159832530954934118818566152326595435061317481345961277451749843214036406495407940035541437993107669149095830425738937663228062192625823223342303980255504886370486203842228923409219000913365491533875299855694252431050689513327810539145645073332552831794173675537687736256963936198300022558120579544505759345908121677233003037023575051977410466869278071582260619865693821895453924110653918368351089247976745819909152990556111928514265015011092582486976378452843651973251436914216469929251385169797727317744879281933596340809683700985826387473150600476300902601619771153473229195493882201393272019085668506718752421098907889391839620015975287606224479818266854456543790674072805039253656129545405528570119171177744506835551886369751670395163436838779144287547941549270755568050104993395483770706240527553043382359328947541365951212672067154874846633389931451813375503787102601145526213468994788805608906195010474797883435872166446829790122340774164323034487441136586099520205495488213072627430348892931222449189881966054903349105820261075225400352422713417009653287212161069700337667240671375298496910435966811974167194109616219240908309011284907958580568415660267247524215733011665991790107471925564135968484520212836437972249058666913774419730824502102440182800007589756150824543485436872320666865703435519490666423729227859540937546930131968278326854320691193983002623991238220675906028101504523742933986264984061714920396404886950966430359518714482120394874936319919494201413198085898685810085489476632103259380351123996842351670855157142460528718276406449173585675185924092913576738643543740888248246616954664026027710981232214203814074224636046643226897418770607195327423277371919283928558486569576878384786987859518004198358494986179827626102135484253748117508295019378520317586093781865594172101972058284560517943303305231743849478912463746003991802879566215119735145022521009424089152705584046135674981347973743821993437910580188318032473524996634605941967619393576493541863893516455520201726605051437903485530405026302882240576970134062589383898323511616679757299726863509114705040277880612530884396803534927927256807160361032435830597327867329977423782820380989609128128120917751526458419713999143936340945858594221451833962785672715779816696514910934403457913550003051242729783343685993086844368207777198130760526801250441429034755746876320724664974317410082949759476967883636034821869503675645571056056609663415444632300751188463576314571179074894302051657855033054171565791909794837391669624325099138130299778673790433132677795526905929209516118425213204584654262942734926205982670346810959455917835418607835199980383791612176300524581311189160419553509280191503207766983271017294089524391394780260350632430062318978928270402511722915072447555418926807538564413766085744859121923925886233809302665403641660352752313762896108411278704125015056395680349255936371967732825107358885624675259921838762609096419414387213663985286316667723868044923705494941294294818063562514933279013736147510846886390836568548779093945596003935893562036501805457780306468023706237556739969732598064572612706475563545336743560013609229905302198799155143600090346988181835053703566232845169784927590283165916838770994586399162396892789946066442437868220836397074771807558232062014638391641930226583772481290087247542195940461914468906395302693252821965319535808590283174378757119432199271715164663638690716504226887023064872356844383937052090251914491406693440565083302285657033537015131631623286893139743481047371544794258895685785424901457388692061526294739748417807761920984998602305826120477723067676130280360239334940713215170973619822953412798603625009945654342282177804478869061361721750803350965008190287393798134972768864620724541984267209178407769114213543860857326073664436730253189705686843293541773004588958554279650309694691976757369333017517821028311512498365297853884156882351356630364455955198455388137207682730660490205380429040190982150207525194002630090376751189720331559861179920956246737511117977252715847297943764484430062954642260634351965412427124116490915808261224445343659654114865913942000817438763954330171632649071108815683898793978791714182372071910737158823043380430415907248552838938123654266420888602666686976464546327375850719360045261237617640496219082157476529766933114111073544982780282827521489488126530750892031656485063176918763018104278505224776383705182922070556017442721588375972541906359805769516539224964631390927638780778551858582538307378481043530689560549434836334689627633319320723751928682577462257726038357247986690010561751057943076205264669736027021615446824092026129844495114903260258092942920935129370283375620156707296041034212881520044384726377717331158880113725622012951298327837428282862577559508662677914483506376160468262470960687573453749506947498951918889534695586347448755324605508337773337794098755296235128123085487579841329820965515971152866232560330224979314069412414820744449504951029198437741860387220812818251828205422756743401346649654131632539759679245150327633800477604164676826050996704653709444737145675878646308053142125792524416506403251555332831249974010550622320905811386340368101759437764310586242264732309314564857076954952774864373579865388854454916163878845357677546203322200942877918568550602381847982199633634902917379497165409172942577702287675138570533189020584818389569548750988015338752311228484819808947933909490082554409467342342377940279584419733078142108371827997128958969878903493519549774637226105875322534139619118290493895333509346363980275770689063254196349485530842417958147913340099240314170272621245409895972397211167749243601171837830974964669105617796024762074987016809127867933260628539526847245155587694073437567282141827051892268488784087530690404841993202425447695053248165765399796204439564618479646233579176804211492684029585654887089553854718242384107952971256507569092540115815494448955028316521250095098399589618779898688861664923233910472683957152144704084032079176870598827330416985629626998630730946740663070866789986686195794556062363735850033523495552553496848203791886818948898810798329518029872815778515080831943527550316258947550900916308301773396877522648716046260523193090571060275939921364835108443686814019960670906924327008951859488707682090643263178587658740091013620852629594336894106378097814859208650657561830484358821166763228266649400507397962297236622911063665762200423542382425675668029980824133970647852917697841972942118516855636408123853905563940267690970808677057743736925976936771244485158759524839892269014147059910091602941516448757059502305269520578184013520610974463706677092577617863751761900401741008683303565436983067686585905510133837485288068048979862487753233846672374495107747162991044648746912239632257630722938314978549120493080723168440418763634752679529512944160629792894980959439707130652136043802552209365354394143498358816333974561968885861284751326035212990389430155991869511596369480052834684949890354687666139952046276025508878282194011781076877084055276986529003108044052572490545108118250808642853598335699075138780306561551992317414685510589561973141036440183793884372526769666346997811902079089147014019777752733340550879551375068295848872825275609956535307200442411213068318024474353074547399456439975301271715133832079470086880746504303778996005972285878865867249486307650754992261041441471465617122837741932333688502000164532007116461893931293790068945198409158563794099480353556670615740477375777208839892240434063957059379374770118409112514707773052760604190654312386750935816193880313523689599459106343813179013064788164543402632694728674661209685940605955522880101948191163848896220959522280287565091463117339358126592246933344619969046297237965572269373439370754815125387593245384079803122994904115870304498904934624095677251513434980886645902075109373157584666800860268801190822899202036652350083929572890753955677433019403980770838356879797641041816941146451765189506280174350213825021261311386612967988036811140275771649980509276840585612841530330397329463487869442626428822426867824510358319332664890999399236404483607559779980888638420583326279258401545459786303171215291605398509754288898741663918616267973853376832971711681543537352610928003038824087380168254184758719641077724889808054680010384737834186335022802163910281123785661831343798257862299430795942716747851380093757749185833996837415629241221656935710865513293957450636410283864162202460135826647188768772341480019262075564237731617839885064488836899442451239090995438481533572458910308493301808784234947496453890722053830296696738218288427660038454672094786717991395179338334644286068683558177461876099805838466704174289036904994812899413031053683211498310234487066429237711188655635712481650469959798041774095669273962766342594604782647096420041239642871341281923442531200996977639043911693704415219174863388069435074858644375023526105032454331227372933372597754190382039715691467099792287450792058130718305779876421668310602611468984538752549849939056501084912422178244508408751333736868722065890004532233722324235234314402670217015051858495483322132909937492552243661098663991113591039243586048552975168707088232618111127669752758403460476490326676449480757078815569958028638815979455643131888172003208807566012934864500328558893727652403625107156829406269380704275791038874607052255244029635635947600408254259760855204953332989841873029663663799209883130202873488875024975459882396250044906173494687209481029822393896261075358047099815300320407476262794309886500144894287314807718453515174323387420576025228701398436239763028408063258985220137502711537259820428649730399968992364932729935965202435743880507889556346009347486791925883453162107796812877925236733277697814003391082043812755429736897971095921271140178265196639448947601575277628487789369867250878004774060436475831476616379583366075020144394950280838541372999788566418936088537743247259202953538063848950962894876082487809476636553734522390958699877010339136242977190829052943045095306731866861704163470602329811165470242370259855470772056038125385371750635554261409632141441433846121893462485415329247858956972083425497807684986608164082852916890616185559847181724026066950706460349707012365408904169451854707768937328776021965439269503830552683113960325735360694281995503777006846459579951998756424933347150756882176761219134602496240328940641501790045183874208090753170837440042204167638518064200017890499445254427211032712754028401825899729572605074615431187200215366433767502063194005029814137291533709973030738688017627674006919768659027076016180055183282124191913908308301144558488192702506922486358172512674545110503097112419749869222041069576154205772041941287348851005267126202966786859099073356240703743667639190630648584707524635030225621372707725963898514811984757806820470781004584420154255768790612458334581099013414703672495097722150354182609508018185697988073052930885702718879678731061611826165165952329914776793666187581371278451220100684344937881612350028482902466228633318189270033037341960419587525769261869364903615878006726584500354756491200522019665620609421607547312866458622221703136936763966494540417932004079657483251801632958135604303544995388259099284937064061439342969876280453164440339397196987397494311212253295590749595018983484226629843538005464427256533942304719607197942538230133133679666175551718574239824147780825325692105106546030464480506327578823432194906646479749524084498833882865252963245674865930973043390681115640353228399168363313151287375433536116094081994111720487265833462260157369850538683897312154797937063009296987390360344981766808888704100078796384664638234988813495868908493728753183173362399710342502637166536947508137020856314820762195619405625666757280012460312278611020395066670833718215319177761671748429645073273879915336579198799411092579977405128850948699003912152931926524624472617293987147026283086049073911024304610363617964261076016636356002480845805163000630965604245875012931482897383168919213381125632957751202782851191860002381193198108279981260366307718867801209575915477587502147203793536847936694186308471127691378187368957795653527810052620990249763561285233060988760953259529453329504654231550285086390869548535767013367654008719802730485577178514863169551318701623389605476027895846824136699274622495488762420463273528713814282137115534386988558594610068575850139568660530315612563007073666029801572411843918434792594216208824686738519129369820161184360849117188995920728040040296228569376936271244070554051394221392937301404061144456454723941300530547891043082084160298284377619581487612008913572729638152914209694518788097479757777029118742849466878787111756892896542931421876132773209081663194715038312757844915359376056400777755023081248636497772903128285018359947569089052496543930915208764454238930216162721760360366805265582085351116016046589881841132589719248898085359943590604997591083086701983734884410598906975325226908395607013222464549253887317353312135257281931055625791780141881507186338557950330099388985911006750212387906014489844966885357971533290642359395175043947582882133031105818473681027349309316265543989777614401630921702973861543877769528066395931934102288973081014918707380150232469394031743302693682270122859499525888886408375377775579374471632922878655529634643664903688790842322973318754089210079939956825388688556093450215457110385940292954192141998804990918862595221106637447183070635324906284212472544285879046408076771386733551077891697289814930804815625142567458296142414757961329487730201350098891095849024240132516746300136991969523434720448893482549575652578490878139132554996411028877281181827449833610564018558195578209016011669831353589169729541826513781586572088135843655940948008214040720642715152018088574353011125046046649095867775753668926965532174863809337538746583118589395804228538339073946667162444778599359552206649758676176651993906143107462694520883504909195638736359177146579988506209694605702396485183913865633804057378879886292423531494173423637094397426798332028766674271338185479890725423826282688757343386251179252997562563019175172182318094298919218732964043129036804224041344222579349751730488217975743216142473171341400410654508239368355047181553469594404278837659068809356000904824948916707564812889226229275144824568540549072562777144298854527454196489817708692395544042056441955301468118396403289678065430832881648630687922669546717623389125898012219938168111687275262429160729935087555469915002165594710278244324448666864930771914563773073921687240713619875935314937045126883286425118233082050057633900128541168697481699439851542424312728302297776332928983613180980759235682187724415020205879733609029270534278509020640893584604831700119506867116501551412674434376942000498013495966959217494438852934040369921622976306969829691125293800555447527943863094770313051617031372885111846954212791849279432343031449391148850504623844288453499909403937366082283126322372727927738585940510531480442334390098580106879485875899683615772938111506749174836442746289070847909546075456042765699760144443685751920915195126226356763118816472904612582196778347205735771366723535757527415261649012688353810569584204392526986195360381553984820941630066260979029248789863422531499262230007414346324333325785297931295296097899392472083521191201155190957167806169976780684228735178669002559261504624735586177679846259452506348081800218621223117572455595708622210694348432713052949640162583038230951384505935612519528249102953517267291867711207774935064204806212745879986935372046863421014128943606489347245558102604714279368082197434358858325714216342862515425686245621157094758976622853938005064434538258776103698425248656392116065881477025370542883769767336616449313182738396736284284296460520030659302343599016904264276403703326337586702499809179665375117280175832821346451685000966950091930977017131354180655901462545644003627339229117677030062385879206840426143962968254771929563827394665441733038778524125794398210415744078626875465538338646070263484446306490563005492902926764887705486509166854893158442656007150535933465088209867319704026948719436049758483812127012980973913541469681400516899690510160830406537960316512226184474163501229681476543757317012174376069387108928416770970601874864028689756543608654419506185467263287033025901366642640110489397124810026954220890247327507881917064144780958701209078251265685566019613528218465276996975753878394875863052603735086605062415563177852786351178954237627902477183164020301802556038464386793926364610374441673881417436133416705820921850421223579388341861664276481255054782270879758035730392428731914145220170088450201761367709205949087259865987358572207734840398052466889204610815941070823517540415917563919916031585272239918938214997714100242422521192746930619636356770088111855363409130469844694170665335446285545957128496612605779324018822197357211038460638506828291204076832600261454350092742288093170363278996728007198004620026720460097482261809605851761019206510417903041895305054663188811291798221013677440242804582435160807644245253449142421511480626183988176161083515431196149885495456386434783361865814539429146950073250297594750992919847985848913058633237505224173012804009891036506031011478954581285665225506893965177407193864285435004606131601260210590377972561344508088822920986539293743474921440311951561386681356033554220824811730551245414992187708019269327922081450757230479698305861956471138936163071471558274562577408338486010545490631478339669362971360392271849802870487625064238566314354449777466814345094243393222956081030361596824622852475064733347889235697801269273978737398624595979738335936880325729612348152441064521068990569878643397558663824926967347704931282837948957003753385765761680560764282425523284593974977906631087508562333035192253709006503963969188410753512244072257801564110848739694580615767146105958366481590892336579920414767661175326380086555466839838200432336705805514752788172928285562517952532645833125311271976893108619024500219928119355625843428113112314301293819469480539261621896339172014383979918672734167476941301014319793132509967172486644063478946397217608095073821061172613695889378803239569163753415984602398393007311044065630729209907900668086293264603586149908207984189215711885547358628107870318755088692145907114063958685269043906590814594866377148799181557131167688879453326553499766407162872857747519975371481494469400564614082404976836167860003734317609850726051666688285266854580451806457928817359650126149209433092957650047024275787079849755930771954445847582546514959773680381151363239356148671132296876521234529223279218042388809879702139593752443183020179988757300626852708815683725578936590794963603555510034068470091494424151047513555741133808503252849487353190046906063232174360303470761948652467090114128871110015003554486029660031008878132303498257416049359244517842191203209247127873002312673232843478285958359904840109661979342733654661649685137723815869844116772278977552007840767890160878683216974375121623117358744468083502165593535364847144315972229608010844820402850031969040625785935004858678335737359299040975185020680774002697330106150625192611803709456371584464424379635294093074523311452420352720994417903780393784450841103772458180402382717331002692492863960006376403943238417597392620745633606591417877245154109408767336224478569984903704217545259713824852210062718862619823804531066295369931145509638539721604424643066444375166541346080296199148860969262065820810882510327527701896800558723304538559250454314854969001299588069080705592429995998960572233165845003881269254580211727427818908972273980510955814343989761472170028303971562764238785305492899772978333416246887015026078965701380072550725856182734277891911359233406602893215012125636237636310289037932417529909626107565122066658368380836852598210239487802440366242766217556994143725507610185696614996770952976335011545226180932484517248421120412480487298121275105401201246669586204013520746430283957465132650687843156534972019800685803997593494183307430326087703777083069634672164009646121365922076105116241005395650530427537933620680389038570808567830526505134147191176885770936490943138420081224645985901325206239429657412569217715544481844435679637197441578735501662272936138205080393861190884668407496751122722715559166688620228034838046463873146164283887617737607061274974902972919674678256785454436078809359764593497315947285933086330375589023406429716684558793148101822734658826973348821696993585934118522852051269122067760593879034576723288083259019529435300574416215881230865172336737118386894745404955557680308122391543638197833098986436318971824982774032007526553163698419295970729035039066018966521098764846336312448188175316928071670058993251898138258749967757878100094776984608110859581976102568552622987700447577994715615454638919008414240231223315739820503433291322577321131992848756316762416928486434293082248457736785824937487272268056030148114207645418639157782736715894631979882409052284105855682353397734630921857862314675201381110279569795129433753322990831411697220004144663799902535773959868459420894501467719796724712037290517420814375183222513006881259568368883286544106780931924650768896303431210531149182262876389787040911460761436783563260935175345812753384890045977092637099698126874642937773676166890660464523230207067842365811915498823344635592239681147915768417561365488752328669071592648304544988624223598513705221081347477001557827564866141128707746670006584306273508006234673748579387735401930350944699326014051165166981955801270565687075443722303119389966298848219247205837740446588966499492351432101944250431082210335745787003873880290081662980291732964689708733451077769830963668716212126609506819835976096366848227706662856289743579996914604794118721898147873176683398702410340836262543277192917977150913087291076480686371751060724360849998545458755314039258873731829420871314917864862556127024148752703723893174133775555914484275148081324078466016442576123906481744144197427628894858601762944593836865319504585830981187466209975746446295694927829840652130394726725690240635247691117372667716117210507719389685369917553600594336084319168747404770085871467818807460550230692937494324867625380866965439841930939587555365798179758710770215554238878264457672469858275759530898453574097577640778834164236534646972803975665448379670888317481204489375621792174635184950481635814363380867868980621887923072280067424518613726044975518037431081124827942660192956985582637070517649729458082905381053940789130939283186119896936054106520921715869245640356362017516914788670045337545322239431757274369827041235717087278571698857291272320561614394728728789249160211395437921738516497422241098693154749810961078448384238198776179000407472897115833785607033025728885452117989159663782462049410453551511978560187155559379015483652557808525975455353582137034557929857899467573567900477021199761810992444977645887924000176351952660524825648141732174408143081820990979233176666481538884379802573310336570683769453512319743678121741730272055153364238314429528697401666721656090936733415595065498941738072058444461213007241720329920059533493739552412389253045377645108951735581448596540531887645901291746252740493536036729487258335605211689216662378025649809346082654710863222814183648915752433771060908927384590116388865067890513740818708841871978768864490551159961400672712083057505852999112456963910466268370732366349897165846727908250361379496926529854771052920249526931077021793684291287448180667116434171326222180193284848584627368501306515452440213215694033348904930489264981958184221007187725864333568012394645712251523973140990653594827119553784912649986803351570039845629496764018429511332637510996656925327160566883045236494833132810207955058993934066420224531746278896430773587420602606245558466328633002400671796593020279109428741243735050083184370071738372046420689220188627768128069332512132631585877159958963543942179281364302568416659289005649907407017304786812401739552493236679069276629937369053782076888256164417944742246932265915413999624021925287362327109518115194239331049893172307396596129709425759156274979584454019940567054163983128318744960992719115357777280025633285933166676723014043994106296841400031171228404773733934658633089063441847576616831743418444932121811474045927596952168857157286555871815388198730949747898171695224588293362758229558108578054214794420404805059160183768602722329869120078621259799508322241026074622152272471186881108142824772044465561036367985463194695220968692809481416682412313498552062204073804310895082965690531072442612997324940514994703767764740181163977826860554265873964075981374115133433582381840340679070280185934140203853951884163817851585816674420385042001163357806956798941451476209271308820942699767353729554855181634380406039011211140388211537057705278135302313960199960237782710736417121656570623750375181230532046372263216423205562843603831585436512760468189838050328018947644453511685232679872321104591894432904683285760097547572415770502772251967869232114293172416893330281299588142165765801124373601607289845215133108519026861301075727851351184116281209480660269652576036323006365960247836696912303878906999472340349726034840123656557821503116253006536838086609174208632197293672888032737403585440964047521054879333981058830697313103709702212590000306763293463411778224183069283821080628434784781249946867472586938184015057770346896119697342577777232389373695245564969847556643345599461427753031064837061823241757866663107482518378063397664137342284785210371564828544899970995252055393733090922658664539677390040090905024736338297776290781316543218038714445934931262256512074652691901685446788634453724629710385737514524170055244329825320183885970802135889289091193245489478823805429848258040710404735478376148567165514604183529130222072858206820721770102143494635443169613937847132116961461157098231800237832008222943540623353159515992133309141603082753173544176517578411795177175562721458375228080940921707392161974585942456738919602836025183660618015277016125152772027834180836756380777461591036504749571705972410748069588118257154806156023440074571238587335524470905118313522945797458565553674692592303363918143856273112453474006637197571244574101735866404505656694757075320242211071164174454656697650748232973957926558931676173067331126036722176334360732313433153026756865314996522731237899243729480469438991295464519835660496162322559574943910157524550925804671752780556291579598119695051369919762133416569185130168044112947680187366015643557664984262683633407660352312994091187308118089072594430670588847790906499413366984822805971228383095664263786219471127397207414976857777417883497957631935597397359454123700739115063735936520893422056373834786489931344095041919454002254040642012617407107727054548691579634361969000116526833124354703320359835561750481399158692020969312801810067152661520180182306906011249472030510362657981904726392608208167792668814048774152712174818670027761404134477734773490801966940826099985981199368192775298447063011308429705364506527790397276571451515502068819757087121565884421447705969760477232856667346535424046811429826524321014434416473262309338454592735640890236601553269447192331934782803071489868534877514144171243279901362315335015710997185257883171647947612981523767346356813858689555677049792125972419546782357939392232868232338472450481603109699056339488287172725943515637118456379235055177664659059708865225924248870032426465766262595922450260737665279965099471882949929611530756772086654991474841910886711203481013498362408673440127697758198592745561842331497844498806050730880786539990883683133599862300992418040361109203761324323416261888865798671587277992246272458871193091892706355665480926365953975181311537647396318154477491742860441573949644697108431310257719193719768923188805675110880030780434435651182031238680578113356832496992908287016595229828928677450212366831256199953651574377373789545369534132631354536259145316583100430115951358768669399601783296066061507901885290065622136432446762815637178100069900818029185713913200357334788564604721077547222704775576362886334618321171845257580182010940144353469111816132938431878657606902078377233557852793921794875939018843950526856443231816534995599594406682367077129037545723886346205000617886440542255417858829539813523631431571855462539643649281351938258084097054722362032966652830717546947031462292063251683686361016932368324100368715973376896422924401351999548563490005069684327242229857177287367263850649368709971101612289201935746373002860904926368469828885792018658353911365540015701838985057463721132430056353145576552623929864747840527380890605228906038555013935283335057719615739269320576005277674996086902362716348126317368993006822278491111013418242873296309794575971756890370529823207195390299251037509132799840255431197916494927556975248553122689238989220435646662742945503708489439979032290226201547120179732615351980576878479724040659009341918384236548899599537098448459509215677231379736382000863925506233640432304751182876643180842282410734281795042290652217900750952140856407247596621322915475076726241078093290253971466861077632250347135051009080129292167908591144544090453286387854447842702944585389728275162876737224075033288991428620183199808348012163136036052120394904757488440066736774694197842538563595531058745145689062422565727965766180473052793552559131617746796252018917013306558970114879552732190096281273935692931020823423816594806455253526332636038202524182921334621988123254162303571311023846461294319632651837873559455787559857199655760522666036119659741843525441603110290724391651281156565585937040482517723518684807816417976102967869405757529135547428348671465806557369453129477350375154796194481477637217664932841521857161942126281969239122552943279669633258688655754054093975166333158744867390969934061564966145798883099000864826990393810113150755079018302151745973350548700653909920299703675306403347823151001817743775317923856366844919386416784948484935365552595565625316205825311819323844572721371123414043885058043786519937430738755713616405423282846805998908471965223720999460180273748206657997481279601479915389828837648668932103243913577209681972998725896565893592215070524959435105716892920288735271435939893800821690124274966673209022537373681827840586589231720487710440403345608537168131854990151659486729601424045643359466288190227432867929600821491727341913741325772856744798578036419143455493369833760463022210528326707098654748016052848182759720793765384020865256924956014877574244740640115386956621784223764352417626121049894369643118755037383501272009588525974376844884532608440820669764251027837282124026639064616516556559161116858403713480972568963226829554656842087228087949102800349079603638176080534098833415742516448908786433793109251531702334574736961813369259709735858639193564925680403715255644128236223082003492834575251418556722755652582546637848816188873284886157901015956649783339005210973218417090748054027831885526584544557736788226657592735806624262565928742246339529748882649282874629065824727163924263581478176309557139251006988507412659976824049386956263461912922362054860058625073890266136563025077449960271505897200009151822780510880982097566042404852772607128269299786860004383723692552503884142791485399788419928974600704737217663528070146993200494588423101896902156897175334326600262445951797032487543911275793283242178983518110070881004644575415157495824844851131023879046522391932714739049813651870451477380398505834831578561710291540582376328551858374014533816306700183286313931214993046398588479696059502850628823487529049783855714262101704003366809899385708700104346815422903032119035871851317787310360013384245818948060202365166908182451661838744667265367302991064388791305002950459451300265170716010190929554405900499665979773330653961961508815233085594877954693167982276609422794028336625827447759808498843168481738036599646267672767003461282007888822598165179098026681388938440136323232927948742119853993721063869312846104440919392316998063763697987954050197794268995953032097526810224770290549563350640074228155306898209739892074861358939377954234220586758552724704261447810095058153367148195422079386365460239120753391845335022201002424562215758968075423673093954306458151867067388853477222479665592750301871892755183741069627092551107768589573250355392620287546937248016093167647985208396652617892296212646012747904427034086248872400068628014608696016424429133579003248426770625842541819593300534551979542747816158915592736022112784220358477734692361249447281443862830477709622862183495517075268061742562462988408214154588651411772488246404869897205587416694160048002585708246040243629288019895693710796031972307105533566428538522841752563527471559137135335650591463905884965086193091344390590088175791395739505124301565092226387606274343906930732207209918944310399260569864580428881205785928770841882512042415160898872797607820341307142805480337775914771806345490055859812170419255047349777351451743249860976767526571287640404755571002074601121191977283932708100161863994923739336051928191898972139448717730656744315834369257417202313522482204959052525826549441757375314681456403660885457935813806366120808501378673942172169034582924107109135200661988838700392590851365325885637896012722812915657027933462443388739815911190662228855365203377907350622990813230853657028628300766941506448824511145333091220090031436428254129313692916859475820528843598458657727741488264053344476648258218793592960331133706313049600286993133473119470271065659850547500482529214616269671103421552719911803862661195442649024643207751242280394029117937394472371336244549403250004317234805409899299179644567777955561082107056084902670655991867993707465971899369088778400551318761358251073248685723520441867575811590901484042107854539981037866049654305946716958875096919624518787052729763489779462892746754388120764188098302532770166572530754763954270000753116519180396173659114124198348382994716579539672860649447688865884028104141936808308707673325217853911103151619815032887660869550545619287682672454772153751029676146216564099158198119416915333906202574439496663499811438595130101616758905028722102516548715989992757010290446279910664123764176407247083582634340422201954694110696202931235192492109022180762982191666224236720051510171280469271820473479939319426819599310666543471146809222722380788326038819926980634144753892642821613320922513519606430402364660597857005527586707625021498007337335825548135124175189000705872359240650667492311766898223576883092374329215030483140104872608034554239806995263024588556331837525498783326612828568451973594216737432174300860723752469938517002212688443777408021487744866649277628568588750152588859658836321216179222357120699998486870158171970842529655765590202053254417220199922995914471658494960205598355015732150297077821191331514771128095828103154952056980716464691886435149701907315712949994695218671340574357170646255733977608409421971326404314522998046496488870807426460287853411541429341787551766948719744466292900817936086855168341696323806531171457829086429865249549894185971078560971732270712351643664608419134562645513764093474619527018924378483467978454586909030975979401649312085262687539391932043755589376044456406919257880160065266036272960892396344858852425953847633014385648684181970930019060646980871368508421623789261696638125690534896335706743069382292944915329179955555202239147311414040770767894636145535633253117544407806779918811664618251654563904616652901262861913094773094895196171924273837223193519375832068033012321301300735192696369491896890417851151139672819581138692151448145248666510374324422383044866703661330022443729711484548369683946562056106177420391276465486445063954528886411640805915734053968351305562179582948381036356708365896283035050001438145397945371369911298438389643075444408652819917981550168351314383021870067638397891255419899385324565194085092629332030368001008626812443307430851697605054388786377869241443495876745280024080670816490139939061837723688464040597248475328436253247394011672507671346775022025874464768304129045706829933003293958030537763041157126823359727790764240825499625496099422253620519773541202846353086518932065924049177783681920625648674236756683886643411359599734474441254956930897208795766732264468530478105635939021779836895292624792072399462405349889453594125864876079277184466262798737826370238804625339787896577276182869384781603646251097811950157755557124248301880313106340080930080341100776257627778100302253059860302981286556126338944553025640282021763805326634938674410586845557918442339831790235548873035099584617676179576795321737866151588105501258421394483692527279207168843430773326348802597066679696570509897889695983554325234298249676109919482804329400301560014690289257194946106190865856369600327821763852764850571312348339789952638829665128449981923041114819733843186629005318985846997702684888292679203010432186364156938076145827592696336241734497745701731539220225935734646703486509963595725098773025504622447451318898334371998777833660878397851540786489703287034433360478662384612510461131297902770043000767529179856042167001746021938990941410504727818065780058224378895710995121749592461158505864400462052859462339790040803662865407394700297591984137108134960053619330712177205021832990176855531911807438159391278601574020190543902633039498872261307018851463937953367811646442456494814249802088435713581506602367360017141967857178791696300123260660731279273888737953310798982355686123445546210862290396103583148759939592663188841178568211033187652194031176228675846022307294837226200334036524348413849508563774865435369438342570448817833247306233094431785601342911716395884395123834826904732217125226036941324967956969895062803882886522453746014379168696086577657710314865299768337694991816358254558061898368407896102567137804585588183654822465524398681449191018057915257951535421030839362299938386495592316089671646901844363964956788722502491181783562370449226356883603278752364730065454255822796212046709786054615113593720285386874521966324687610606322692377290837562163694726472949523370803626815158903198262367082469622617502592186668350348240488926367487128610556748955294831429310116060552232853972676515854181755340425170354772450856172786462620785712113638412639444608755209982213481703963567917750673367321077783332742086310059510013428343738305795320595516736379966564430617423460924879541172666865107488053543834692285161940932001356826382936572300937391814621848500310515257002175044499982390134179323747822800562144357395599277281080547878622354760000841126043111872087443445113652356850509923861663462511577973648593495808488348367418062041561695438954187637121066840043359592229299531190609083360748604126545769954000473179450920459831176242791033362406963106916020904521786205942301169402868862614366015788890428625306867795198183462467447359117591299176092542253181419984436548923400835217760918170324922693749305532095928342685703749936476468088420789289054569213976621836986919170406633447340768059676076837415443256828485344955976267392425621882134050318209935826315258230107397801549323274160638813411396732977260515752115358825004289202265653856713676688048818674843878238574345900648903257280333137758715388880324299002471266253421664203390998489916561259772922733156306736041388593017216385215313562437587650439969802328661731548661016659737068048922513416396687954057603284483612663817046254745548781416462174286478233331221597621281037493013386793681785974394024758533922159049269468065287280007214748951166242291427504120889196532270677619529304371996006316134215297240793518321549396982977339130132158931156422404807609328256374225308570093972066187250454360068900248441460454427487053502867681391187166126746306811789601221463272476947586881919886713936987845071844715994112061312663332876611495395619094860014602232425193252066231717272909113070499707538560156744620003113080786535556379760219095237856781244076847422012330836574760637577102543668672387150812983557291494880338443724705476456187766734624771865494329075749353045581944911299288600419240467358429009511019138897965294240954489385635085740813362983901301193439882182852664513225480796325203107974041768602559740309559950809689679543982636218524595038226506244036353525040861715486272426792252525201283089889244519726213977679673954393558190416885473882714549303686525305983032743114770632431011620899082453167283463652802753071604861134747919689211917452270825035936788294513024753045413052429869869026828404356490492059628925214039160233880746723838388721476497491768427512385957899038190833025110149417095804048649741877809469341711844248303480449015902917495909894077795287727088497790093062246736244883466448361038162718792666068022099498323479846274178460229457476401411482549135457321598381065826810347813059421581840578977422096588976635344417084519671763765992430627892085099652008449910564584353124172642039194987784333194717034080729370296806390690473295658919154884685066632322968898628168076831446085113377554403533028414319533067734302344291580810256192777754762554175950730121732536493644858370672964476986371125564034439958758221637597365195627106165191857835663961006864809969633361854933716638805201815384118471055731158956281029670248422917737777285291842150209226396576401781074744931537553343518803008621948356058706585441604919352435862843216447209405455145734088886545908837112876461947545963113196874156170543937926535713122221211640174859881646667657838226253052190967553581860987052192416207180342285470051419524651319131491607705891301101546526006934355820322587523891701140171721664281824022007718567069232112734725474966459783257318461810242444928130151859774675258058429205967027855368332531485222237025309732799050811572010150719413295163282776382516424878323015945104763798387044156213030784281122394341510907430025359883101360168764871699899321818179315744135293368124845471585717393060924049300573207499707540189201126891888300693377185057802898672208574270956686740343542774002084424080352333557869067497034226866685733071385344445115947843238507841634437739057522868651398512773264451077024412023858418460840484510352248290654032072320533792094646365796530463263800598341999092432985244374736273289040724302917001239318918629582922159857867005419334830808880325516917916266570422085263698473958405724068922505144998967779439843920313381412264957926006367511264771200131742744536559225135385873651349938929926413604442631101339498906225383079196377048837420248836713806671656791345686096734148896816847998285558915845718889738808750672042380138147141275918968732265299703321128960841503712807332353420308964220635765971282931946934437064383114069472143674523172839348690867934285225315545426724364300897002441160661371060391901788327243518057472204056592654536014245146623755589960588008149864324171163406225922410441386290983599132616250385968488608641305978979863112261724688142681165674311083881095623825996911597461102224793441669909621584192951281147008523822551350441730007451985242036314315150914787348203408538279004303445557408823199693495588781473728390692374585214856335547674386117151372769768591303654291877651901172400209909600390317869909181130444899744350085533542809769419846649454245788432012872963936879007501243289246392702289758464430207145772641997323060250939145057740228493427924693128508652113738361976679023852702680613915403366132908381945602540796955943319917844114411003562061561645969815454767210820462246865348640708483061887169263962763420272730200682145083086895184445939726515076712886279274256483459877774660809570148721350661627912509203792108354221147937572006672171750580418933238019753033833785282279172388623888922544166938385113183717712426505940758544418805416211367732866898257132227609703577791680453978316709034276830607733189922256654770417770848716239454061003242671156317618605504668305804603236707908374847825135611700908872918418243231216365981704795560242904499477759448411770205649788959675199805801971184999775568620568182009816817154059829864523487152434482286898643710315841557142104841087878850254137448596573483098013135465912374253189465867591797817459078083255991700024037041523231708461056114808893851293079699144742825069088400544182102662978916752397825565303167151070874168864375586195115671939210436032117420108466579311124127180227212432160749593226128462904136482337569015470942520091986134068493013024285932659746266571754186417933694930747495418301871594796131245853591688420997373906262940599516467984146729210405305291804571896264094391409589326254219233785417295167290706131733341698148587914315509790478295825231465440845868417693967704413393223133397679784705123824216046096264685809969074799089937275003999271296562335765911659286434106674317667851732059291871965252461940264822470551277546915907149428449501327354075188936072750294727794030253862330085768904186028918592388792765879353842432768911139193094219486603814949652198869737513329626037429948666373847317998454449188282560913427044564555114905375619686390425725426665006767616283615569929262312639528528552920590535106601327323678498049998265805399592365761378869892984401607851163865294928254425081219408537258217996689480801172566401650413261828068451712361145883212451096309276372809110042632926271945293905284753253015548957826496803724337353692826409568221573084082865079802214992583589538799891321186263188906448902636257239728385506280065221490279703923704769120871291763799955297196451840110402644687232314390040647617756201708409908732885915097675329457765077071776094732817906773633241733387993216840341485920297205388968805558053255778034819945490702081759563772685955899711613864058835626141058396526550124593271968375363273367603689172819117621819708383606029026623558741084550106108239983789818635113648958794142121534302877633700653040212347640625042715802866462168419188050679901734931221560887501839199162300528314374114796503261328664458343256094205586694870175691438592290807023614851147243548259465511178232372087224679118171656139890376424020072468564378073046271967624189920883742759050090810322263444750508941313347546504649074011481677696669784381259596434669982965511748222130855508214059486603124087936246560229724669265776968472163101191566838053840345414205906392365039709145600180822554526719004857173691846513723045431451206761239876905343820162254119000521466113083241902987686848716958962168499130886733852763070839128851185634236222010439759056442445739501661985040200879737567284364092993476498405402749990052610047433581219229832992311836667603769550824439112211777113879507593893912098085299233089434938036395776526965575462660814440744319382780392710499102022083262525057054372596017489465131323562711865667143153601091209142816542648761492252788981534898633421593859543132384797974951333337461855748515035485717655194157872874554668903513801013981998429346521378187031351818539703020767095382519275241153100904916143310059632578585575904879377204259075419436083660039876835164851008770797378205901345311111196699477885436177045135834156162652470985032983001366756912428014826706847918365598591222132643720771003631501681000841812537575693854675776732932523956388721093995692060392831108519533550458092373906330054796368738465440464347472202659659707124433891134511463559951597457804001341537572543510013915182427412700955088884971557225231049853880019874088273018913149253659606520645159842630235792491443520997805365850857062419210699335753582956095872371256234240303871283407588620151316774554027947279768678035908452913364533047839654859326356023771222807089625540974070157152590454982198557248822398210259004520850255094219673953835836084464625978238340051363401330736570667339959075658556401948867683209710241245815511294795931803094924513598500484658133841649842731114212104296086559476352450783510973594556940746016568309142493178284112779334449096461305076044642800187807178502950922452724630986212019431714230587157233785379913005222590283935958769639478110415598352007555062459536265012965154734098109055339407192279090712920950461748909377995051912019247433146061888232169795984311698137388777485824890700701290207005272939618629191804233581911171443685851822096004625220160803803021900868586442477783870495295190738968268248736892587913471318699408138709517188529801191623621687233776801076591806320318777101266255315176133153168387420641723736030536178882272214414705079655626607249344571908259387355637608677307569968534527545372813374842381669928329756624540207766462283475387957490572407889609241897234205734315696289130553306637554224276867311229102477294961513188008294254245024885633761223408822892884995106779692808002023288498999934761866352740623600034579708425815518360191840993320793298626977010704835103782644066862228949741220331644132701602510101966638230027540246098786152058371701320732106967535386488603707056315132641311695297782008257547152312299588106374442336444558827359703674824834748759216408859763470502949512251964713669451645586882494064363962826329052697113607393973046023799317796901345619308067878162717488369752480045745984031291163134035014926590450793259279991469279695008374463499780865695915966517052228320585796685984373400721227197556690919394693545110563788998559811100722473613542992724971939639329084605807980653851899710626426744664127166665550269378181125839634032047478258311236160686370849226938930565358892042645326802491211205164454449877361836636225593575170772524256064787799316767330967900358363240683525966686629799612300852347544835237637356734371313338630695234170978896549436891731929134029969026703406099047030040784364308199646778274626703986141457809588171787024962938344830854789298751791008583068951614205102834669928566752877210597460684142901672660581615569504246974977180420722612221397763904679341394699596391753492519425851387845437438662851846660591249383214520730442107882313920139232867147136749283918558656629014568103904572201021793193925191965378351774301570084065029764910282253899745443126893522205448845336555897521679802814453383091241871314368065312877906961250832453872883471262979241320290048284385207490658533902130255693743394153564864874831194343145473830453365693635107502065740875079781501241632162149240535797053761068959532107785522720907346888357127008052284890916830322298344863006936489698370860110084440770491487805951890643150086419765490187140536555461436736136323098845450719492588223447384950155459634373439824420287435572716458747663996315655784549822327824927496117361811855677724404875622486112613301465354526827064612004269424723568283269639304841119005504742347913110789493626506786725189502542734409357117744873516124474220033283871344590495446908421517901405197865417230180339769311048837351120910171469081674761613929333058480455040554797821888026975687657585084392920580791332200889058717007579164446465103162266836606969557425519809191070186338275674620541417871861709915583940389798347912371835826250612826873913763791326930963758256457246761980174941032673351089586659614303347266554668090182374801357329069031455340468534361264827467884538008971464618338226621022816235191334267378719156674284230939350598899788566400554515603704968831124093813260763540560533573886879198845959238364265872543917470494887989066706257668560825172521540404818523352914502178683782481143376660438217588780704964679525094218535271983279080621248589915755869170980785011574549824233992806304982702598230849862811553452099104186177587350077586415475157493040201210576348804183189368945144296275217428219095092383943107645604807120512557253474091095635094905005923579609225629120724405645888787294361100200250503965621900999900356837296457714299877617093092149634633229629600522947245373520286288619685050181364387198123107700354932954749810915150303647769297136528863665818180241713366278090175594648128805316384652739816535105829727931146573194784420650781736841084733124950804509120936917482939678615396546960898840665766280444208727912874822242142394403512244507330330627505585623354261138003601468958170952510232203106248862473606544413837546401058668763237098583473953575412564207076408496458937928144722619448445872161371068022228523468042944735096175922564460456055209775998590757222916465302295692085497507785543251452933299756821783726100598408704697217904621357009212974012090802686618576606776213736441862649149292934566008260416987397665550677691530631984410081531540607978086501930132351126624368482977312607912040727037905649244585869191113344276373677136858466749770018844722048099974592125460734977461009362399899506092069218368050848963242865719394222840797458501006463896936085604797148807874451912399652235352597274055315485607556555975153078680465530588180387330560401445977151822882309091616477829520599786896655082896683295194645172315129882247502205717829733560726568614032252029116909745343328385637690957369537424050231893011643590133027447393601920392141059093616367007217719595535945607247593922449899902807944778345727774837294938321955745409349012463821124478772140444963638403183234984135388726767521241277168292912630309649867633379013571192808263402162060624658048033021860423406882702383413156491673613605295250206859429381708302382618350414133585715755384706847772266259620653462317643974073401387719803003651505645308065474668780785381552956655737844372605781077886949064224775237091018844623889724422330930320285971157117389028787831087592221545535132131750919938457710766920260113322573453637314030060948587878904464441389302015140910342332939546502162004915517901962835677929182913511658125986462789769890079219854791204530090807397717934097448473102134102299125597778482742852393887938640189625261119966790684555507090588839602080570325519490045493040348772215512242987067532883742708081591685213011866387600156498677594823624152713095161200637473482922086289619678331508637431054721383830428935170840127377547698367919707679676612656804758542259510573010364354054864194326447234670972491791261537604059842323584920207854562727060015864507289352140207749390747605315110072108236481222527243004161302460299798819065727240143464805151173506841382465345598151074260194899229656637859112604171965420010531394851152092594034833860538402741626563393321005522238200528311536868188999573621563483156902199518184297454538154750554481000552498806547785544650603173036477664546362599241090822597042501664110203572569278062273035543107684205809171372806023694411531473773932563958059853490591541956290438131551677014421805025336884051791064201055589059065462057132615797360930992877369507699054689239385445905428051920278842809599474576469985868057875072922584946537580052931312535607290236769184449073470070598958948829224443949179051465521495008979004613318744013575705654131965023155322737106797015682927932713881719832125932894116940293838499466405268633359096558685612212759944445112738875451787092008738042131284077102631834195339012397790448795919917365622417134135161313744304111126091789514427825187655048620140914866229537847627406964766692522123506866161794000068299714568868172807153545943842676620002459906921199198583067328553335654114597062367883779980907639922443654369634685267802181405336828950468064624639640977802454343549266250396361629510798022580599528481950034754160303117365870571401631670889417705973339403145479212408827493077634870377433507501382524676712094364761438146309011650196623357588968114573948437654031422182421085617507670092339603383131251736936675477758151114603226843006093210119752312849410572150785665458370943730922992883948198384947441838470786021185431537869393849439862684392958098181569284518455714704173932602371535417169961938028824478484794442427977407799621350827239175561761737128683953882105235294271314125841832963171416641595020208500758824352002529924767671242142167929272250602579883215855908388416747031368144718075505471299175800095338321813739241027485104055941123708129811612501262933015404481126421976465495763186814131571942392520617290371798829614428791921266786173942391577981416263291004299430720987386590100844972761120568534229164035139451307063781692019288658336724663784144269707421181877990325110030530939092352329410274622223447279685060257622105876091760037797099128735567535135168970444722656249644257576836602030056487070440266953882094771278479650245155328116528539787296365921123485633003847056008000777692103344733472972155307143003671290877099294198227191797217646589087027849148450564747840940691842446320809745305920005745218843948511047578963370128312923437447772273314722730377348753610142206138489869799468079449416073235690657988238936125475940204168091684798033564293778576219182437788487066403153768577925626595064975886206936179032123152333617548540688625066769215816765682609699694285683656727122162162905483686003989180910796857514631069259431675555818373940368996907835795354118986425636999105986004864630827420124115064879199537933027075720595573579142154538795244178143104858126383483637624446906269527033037351017117913299566721199301804617962924053302789945671557067654906551500492527800971383805535982323889233204737277604174059885134218396827717157447163210961243062362940720464657634811804532014243239929955644028069008779796856968166538297509284925416181113068114938181619675407039683463875522413228892371491133401553687331042042563423174338554553018655264285489262721519595948816388745241779705812225761778314240286004708537335227248086049603217326993886441649996291012075219325556671095673633312227518941080330959570879919835018360474293346182831759758450873090348715206475142595300656827322057843887570623111780755925883671523621748906063010580774107215654311822842529553351444094146585966390244865441823588966925759635304018846973439832193306811727086578501921901939572417092107845301868926296332933305626817774643782825629840155037666521298154493947425258642845534161952329177949136641230113500200407520954835262230962440585146890206630418389869620303118599985368599127340420412304906322030464011069756199469238065173613084848242468416519582933831704644535829619984100975245732194104573296642554170963669889346283194842252278407980993561831609068328234107901782817210375970508585909309004019724202957909670362727586601947751601344805921269008679774349780935086652844554681686374078482695895896974603362151793387212068824390826616205933959504074267579303485226766279702310303035953132753036850060262428053554639499042446234882390463232012370714648351063072562260164008775886072001559171086982381846115009112365214193695576213493880139049485531914673377189212201857845302820668150048016998077505868721882589984316637763909064994931250902230079694507064315035547470636616947572104781921805834597997683157412339549408173748424250573656692109663045655465554200197972361640549739001842243220971753080471650458422679516852433888197690007461743217320967397317512568667794692123698586082712631230403977817800982829731340807242648418346479982996946629297535662080959944614028185925410515765555024234899505586434710520918525479197099197450492038468397250009737250065241324451051818129226780647548604230024580499962783498730252931394228563924714385420158262565618808227077167542633301585120054054463824716799214216526089104472734207480212737410618015970138010917217141495300421888705647191996217713484516643551290550916934704799194758591364853284469615193952927079662262578785100402847957231117858350043638482967095291864285485932588927178987744876489280495301540510530235497782574888843149550338210201019461687516074859700902035922602467646113821774253908684520330560217950899215560041233401851494261089645792432406146051444855220850320409485060394091234929225253899914904825117224739022909845848193990184659549149483872950110589749074738962129935697763863395293869062685161010417781397303269087871303557053979808636141495284120294675514457181639729214780382700680811826669297046331347726211846600158646433007091441849747988629641478735673308631722897188783317805252998213746712590155597498755820766330466039167171174904393310749015851266716698670519361820345813560724987120135398926052419862022076062056610400607376024678077804387220455182917021241555395971979097860271379500367208937926168388374890765266629026974162007166914489076959308066356192618506974894351078828193870727973212637242078952163289046429993235766550768922525816814514222685343949978061090209975210852346968525174000841624407766676423416346673741520443509700776777104583142358905080585506644953950055011141165721219928569209105369540682428586042385176030469578372010883035807609915414293976621792078149576422072920361385978453192081100746004382148647123711045787671612287059046259896047744646242670397775379335799522116381635745784522681285263214176014494058625886534293533707266796634220035390158964516724484574087322529818873834366493014683877671953362688146763970275528894640219301254230560242767547147660157336633689576206361515237580752594699975799671084200180709424563816798739747765616692626904853076094093039768919816376657904158468143461841403003734005229769109987878192096384954590740141567469929071974547139546799072111242995846906642224019397072738032025638850898662021732251830873483069673571261802488889068748790691158347664387391966038047943062190551773618492960685951351481038229219312630355629983450922990778397015654408517821855829095906713645586034539652775800148353574721173972226771332421692570481107580359587803751044743216738793707890002834029853407118765185292905107123710175561278851791954685870914429424198904453397781299447484232750833590716654533885472671530848294330640330634090225438456066328276146444201041047719827152126632583475776556207043415253219619948951289590063533130805147857093660091888893831570536709733168291600569305744593932908199243301896434922242744853703274570519529747416951446425075506791225935476888419986078130425180661017849660744490252263210443430171072898442138286423455153200127237490552893194931725060030481740589224974309731592219502803285497567726204724385487239750568939817616596549008449477113472592557226746547046258620109301103988289056180855785506306747684695758961199401991602155649818681596844105417026268594717268060853212321822382343563060343463582527877075469449259510678703093739466632006472585347893740460485140036425748220807515234839549661907238900227593333460941875467387707070066312276567214949346761650977624210478363466264551805448170585300665991093182765321641510987766790871828335685650665800475790292136015096730982474792228135994551279412265408047714856625974923552644639449878746671845438325575293435976547998393964307617104380366915083037442560161709068757414233741728216467431434638497692145567054610868124369682195727522760518086484634848173481712691498507003751666005413464251910961396029156957120961280134414468935131935609266742995959682160684439099890842309155642678215085137678914963770041059086162539927609670961517008149918244205717855805567013138707748062458555657244810118038412031779078720912061586173488440463552311862137584955404338466258509385904438338792894405277238231700279395703995648688768727685304708316168277065465148051466301125529097690026421846602729264189016487488509426882864636298057869584251172746688796129524815917625761037644961902667788317637070268145271438804182179199490259582842835731006772076453484391096578653958078067019258259753390120476350665341736549660865684437828620273091621456196859096088556664685709064161282413634158500554288326533775398743426445153405986518543407386614557133601679800552199895692948467553458314902588282984683785280010399808056051510406467004307623262771850812105421825577187719977136812794322970426067145649113929635518722063869014856587271359727541823072222092450678285775685612031254505000395270428075252842974061330299456036025290844277092057440692865389203710115761161022018111548985530955744364973654515242102815198245914317368071377074939953924863386612262233769274886591165616993490558530008488243683912792692441311209140576177616691318463414475889904369811455531028335272389966432392194681520316863610236312420302461075940158925935630337544749446109625462256459266061098181250720359716534428614658993480758128080089454662509958474648036829623333573565174578673742482409221926164987355815216357134314085321165385719741288739708605160987826686154609019242329086826243652649997371677872318651111243906631108727701694681700075889820543957443629798113897332455620790697326180176061292443521463805506286567771849255644090437541709095736768942397136733754851395996985237339247270820534491024919455215504395113808654211543884323052132840802107157008967486915277481101596366612666609400676197781083047841987826823213630575338906284565055466147756552713178044659230503996367276590351820477710490512306326223464303568398377044683699036432761100393536672570565163921292750962971041068067021536790318669520194670951339419562586461098304045070583708006118436883839539655858324623293541843175209242043581955659537496610097511875937351246937173527715864055905303759852363949179152990804053451180005511368319847186808280478751770820421986430690833163090539029410792565345236504664895460987812278065076942701499486026367526330731778798408813909271905250477239983651165533954562561542084148670119710493176309061836119537691464266506992066974246011722391696204143006491255656505212191030633838064605218646270892541629947677308837696565781726427829713481295368205506642686120081738505689227403206149271071896688924008620609008629936727799386633180184291272792982564934874516007046780779044382689648930445253121479031228339178911046566651344055102086153656188735202373358963175502218586515333895924327074687588271481149065110526124788491182330048703583060368818588217265056038118268290857446611687203609430223695192168435750000869793459222059632224067464147253254855079897178298716466029892050147561614654652218075719113234563896885310343835773868849061550766940997666909504318461757861845701109908307525912689539822268241570293429631722743366537304151330395473713729115802871796956006168051131526492088603367392072602777374569630949349981723064091025847194758668113050009160630283182370482735425338535714473796076677153024724685215636245340524645334100166185311131442503943367101360169192166919881777834280613704991166112082903026058313018215633593512818662262791869283507256237644489904047497316815690011477129604617782325155489121145859933315446577498449143662140607838698358486400465661205784233105103557951306321850057654930238745756573559335388186186195310216067775141723677717530908673855077930204328647187491923115218218365557398854647758301533589293370940524537126083480138355812545872738154038351882018570324272149096810701052174066312986409119954471369040229537177568922513266026203146443571827091485227334350182651749021018709716351713756299181804516464997660645155261239528190429932396134448386595204343631276758256926746263274092798593099363793923733255985553712169501035930326978706709900572488871941166037584414652538091597189752673173355668699020082485781955465052860368072672354707114051094693484483823094726250032398548194363232733680271628796643896347954742804996453012096535019776868383929933347356909984617450520557899330586216315832129868025975082121264849376514426702151882372569523685455464509961856398637982397628513346851480991639054789772983636255735495552732338303732944501341570180064999220677727449527528792081331903270181132212827117966384504106397670761510439795429685176325353880950288470278631966373372092504565043877611788795029915650634975706982658683992396128673468571159345102002785505591904560621629834292001400943696114071848352610891808958963204245648174062623568156437772966098188775315623330337491626679322313415617297224879870793919999773272123339429662111230687015566421334919703616431829072973788052610950327096975164685630641936489284575109484438891156320967317531459053684137234614202585904938054402076137990320104908994167484685300834854161235834816241374194396015913456653638829762284632435540142808354076521308932686182283782466782822822361814645744060094308971193897227807911924173858139122419511263826831736078468949097556121731373704204101504304477890379214728175737974943708669363046814726000600698540648990244271939130867530912504379093306233834792390071279723016150176582437839754757652338719027302148060741303328980286617521606056171463176477491875939221272020374294448369665665523880731401356829424034970903581856192223028188429508347101221129629375672665229903587791082445051121674174277518245626888582433790518100447957856990660826250817756228364543305970332344365391071586448659280727655159244412138946275750953402825158352531648755809965189224018321687126780797933723887398721052438911511369157743508627179984321522064105364801000585748102516742599484767477409656771899016159570790997357790591163835133123284303405551100717158025720217375960371374437005545478431923015691107354699466566764087767643060218783614638966504304768086897824563683662148353247304341827052591117459387386173292888803060447196868670767753219555349658124395606472728844405805860555912128133224076232832692118079251307120004225508341187988001576616279569682757698787964793989220594069207094110186485929114323153835086132226142889537294416991163436877709815690599744851151368142049976760646683442800690665172203979762941399855303470599431175690987656409618195041666038348569068625163656848283673838361253649424854161059039198938004074626232031892226268529769892045403078862916371795963844368249332523358974085084483683606775668898440179418056103312187618783159969240213747596043559960376513040548485950138106603195121234454723498406408672531416528900514346777954316908347220764906535460259709138053361605438361209472491478399550260368192660385198707606190865611785029527174264953095935153331642980713389702658817378787838682399277655565782757147979370313316001855130986896274279866033487271002366125651317319086579006396578124561323519131803530076486245899908804790541354066059202185700640772698177913784644439008913734969002343966968111883984281857989607083875159334849834766866748608873553035951305390096541019657351950404326417382995382732011436219568901469028680830011809368315807088215453260542259580652299737875585446651061755568599307572723143113513611013310590968839734466190008802533354431051968546981208844789017777557379318226341796392208203863099027735676231300862467483408080371310442509097702285713680048385518558392045146339291325251335402637178606953960676844736975341128086742216442266840901819531261407446760628635302513028121386344045745080768698479927236760736061903829773787082103738287351515105144100736744632339811464902389417441123919146984396012021227414822773092245078218542616306035321101330698099467902083059829302990703170997986987832404690911386401628724698110119870693213105536540283289707098935674214653425197291626134850363507383626265602915188991735082240932829445353842925324019954037776447912061777915807313814510907054108579466816788955447589751452582131836281609140652788799168866003752114314218317235423395651393903815888222318208583832208347295903766768436275463526441747919957732323701089384512974602632620852381422506963337727065159424575184673250525149774164834770874024449750857715103501896964229598165399960025129240377216782682749366248394629053829068020584361546515393960113827493135563491120488710092406513693679394922613862176840478027125030084789514228826965378758257829735130707671127014207209488716892364058204369651766766924772398987572398303211231596427801858733127610918548745660668929911746858130955492953841953603809442602309656836701218630224370663940460945137056752791704203548623776407719047803013682364799065746884531806463415551155886964001534704183788819449095589851830924792251621226065060985258333601461016922934192735708190016702538734833329961271517345694461815166745017401052824881903532617714768283861788295131633855775009700959500700407804368347181646647533575534890736550108085548447257985702155538101600312148003473171174218040997403376504898985786640839295520842271285411576837976483581075559400499434078337115696827482783569034125311108274130879193126077488592129124696962125530774523904786580146345407523012249064746394276330395535719398425120054277341117044785394974850294232940004118060960988134677726271736410080544710911501117234080560349377759577070455015744375014936212533201750647811513454579926448863538496163503750097284142511950088955837501320714991843142414120665661575972406697545475854707828623138573736381265725894675699458507936514515717761103699989837560173822235557307926660177550720452975455483764604071418607906329478474720249963383934349236610369210708494038798145749389366164168946838051797702095479382951535509479291206313571918112755393419760814643293411500792507260423792088730542105047720680124227881076661613349900926467447647398758867159414536761132378104644826337463664290251022509565784736131630314305049471948847182153936441081311255548405176931405401173756111537772114973074352744902571202879075724920655077099773217609303038883042850752704266299150047135889636597558871051890703517379762851278998192003739851973896474464023094172714904125059505029352634447401842426598152788154298885630727862979141158706860558024609494464358359934775458529979487098727068963045172867024133621530910657984658881919425303997356730365829753795811705903616465290246895326736292900128540116775967212517279035026876432874780430909038702987414831435645219418737620218722667231056293714934932378642959638511961227759578866929971778061377021873092774546225744433440738206840962821093916195473785561302729922038643099491559337379043033756947788671233517942444827523236730331504416240805506985837552334948636987518719345591779628540868933952367656456751342901700415560018911057616693744551643157842095761259643555126868833572212461495344633226986050667749242432963547166057352409809286775607386302548780016889756577881282928325225623628997081614064957032657348668275920991045620181988647676598612200781731667840052427158995876416450917832418614556949229814560367484037081384495301690945974062196421286668693585120412516969011657447191385894234593471888369326012680720133082655105333434862474726035237272306277863337583137784244794608575051202561502521904970541865299989998551706392345092078605774174346790950721235373241495169596734893692253826393786100355937926844702821315160722988225090367728768166489323094471747238743072106116503915729350086847780610946640576571458589306411408802298564831064782136345297628094102068064066423896139041212327128155474001603017655048717138437368375428765982120513555014427578803107096509055761524143141890047030429019510980072287812067435886092467734588791979634119439541884913986140359611748745020884273195362678146766165801340819600611286434267612517083279217031388264730197977911196588132765487359600518727196880958841466319124594971733868876469986690552958077664646441115554116430300742815986622869675524937046947549973592101598075336576148115458676549837524798804640379679588618345023195224735493528738590375704690229387800936996556960185095344409043723229932624089539612343912904422388436501571136604173391527604604433691228712888208688795221856108632071555374502311865531042843817483899431044446530082123419974648409802553900367937109369432619216076443647912821081018186817312176357778033422608935439610697661927272710230965326124059933575474508562369428347961018598147167812632789908903797230685673725466104200593781176422344461022886740848580597189666034764239708554515108705305536677882398852044316094274095614275752015051710216527574757196602888880539617313005119177809608293963928911296583338852297379476712520765336458620566487314105893698592944871263646633215953724154880801641704840322687840104596171180908521393878084694766198014426187799941656152067592091414894367387244817068417905894203863635044541873127144479850918992029106214522635187769681239989215878900512861715938427183530118452547265685772752122361638729902698265691562574743253305033289562054078061358120632265163557634204982850806877885248095245483483116321452420402417292908003499696299404920594778713424246791984676852722456344729668467940302878820538619819072005275361111933731565795918811253650438247122204958955571038734089428020506664617345365196403667686247898998042362913397785281666624509181579270907193806446268032869255928402039059689832225299347919344993575466159188264602460558917426845992802278285090915680864555090361503838288312439019171019519821983559044248318310493457420543222289019378108308169608524127651984126301440919076072548869075385777545607322086383729922594061372213659184931063047343531899085674539848629007551594758033270518906424269135656791510499748765575609985848278502850698832160071734844297748036344208572891563243617895958175290752637981915923454875521624065100737807820346407271426591144265746820282236262457677542782510969156052480279457560358494041668635119720593110534500475153534879692033751564432741879390896058280960094616673001025390442446572118655738013826622760560983476808256489906304997083476791770874259977612772978893063210717164421773508646443093148519208739246782822371807713149810582242893606686913230275195822342851008915756016046949003975223855794045849991230012756309164407613222720445390669120478031776777843236739634018357287787888740875216176432614880720543933022357218971786559664905207597261125155156143915850288176096654218686737991564670753390561867705759339830770422251082965249675044580324622994082763523987694293986859826105190503376588999066961359378960561498222140015289229990640615691227733070465600161223861725142000750464321642403670300000737583455358604895599046485879848573147694812909546615817844670915805668236617799285986253006789066034672844157788208199993643270472049217691613426284394920340866571843372390583776158804625084285882319775100893767939835669482357781795874540309440578758302378377458314793809773984152018008442053901152012101367624967274462205467162306565268796134717181736301688122037371735930449593468152273514569660162978627212590438495782761387819714964360046570028082815299996365558049485443670454757159923092341712201313854129986342880297646919056373048793684286210850071875020016556168444563392965950129167767934589353828752961820253027466556865808867872453023681204909163222640414999540819269549162553780558765357242590576467304160797126597292429786773317291774465376304820144057675863869170365609361841565592311423739598330750779487513356492218142342823065033770590392630642672976840189186844806102310910105917266397291594421255146585511875309831410819910677702650063417578727950888925170987851784852413648309664206802768919302399496616214851571250975139014818905148228020985236504164312697676840916468076276482435012600443476840298897189339619543809175938577256592869524494356516969087818312690397367118373395163790620950398110647321199097290660312503340754769374139033629793853892614291525999819815626978244937319622717115314949538493556006258922577081949494535199163236100836023006249766161660731174673154202367736898977200717721442875520581930849095396696890466259193444084226557742109662104916879097961886523827779264294949524166472597278204058494305988495723694678870293273934877001240187445214965282556275678866937693660466142990836173862213027549334234840119295131980521949590530513760153151996216890176209676873830017265574958927373666114821264335025353508990611627251237013254223964513284709882165482718241987840361266535983109515771612645765694694272379683831636373739221423760472203498050075568715622480403125191070621348689660737140303509602904766772217338223662450296792321122312177422966177120933071830724706636033107896975718359002804723392268615353052985921160383185644858491140910699899989667921676373977569891369201936345503626793545090823932462283342863165830598095201689224493229730705624935584174908933923646280270766938725636712018765945373834047498595433318165059622284623145566267308229229306316679518734902370248059004033155755751789128033264462799293954732066692076688344442068390138063685608380677882852087912129666274941465901009082148638476301120900805047659847446622377794210339170612829945080782821454890148470162466500994012100106877423478620223766067582908762401351057911999464529327691308162674519736286696942483069186087287738482897435957771591817639245738488503716234755656648123044669414489392584423594854503974639625051999690854208348059726759849476950504032774097537737580754525093504737379844201969625899195145818385466114001674078569985871765343813556620102598203895280083762663055440191070068054145176116533238049790277653025572048544886071303968256713120541970899408826634595842813470703418947036881532551301068135648447871730761353418879694819720578587450491124374334752814405120102424972199004829847231234464535852467904090819640252637316305696877217386181528856559532711511471223504124518450452655317592135517032874311847928602483353627059136299928160793611149411326522163086749514822018170965238598501730074333917854783440944203671804591549855224341477672436182148443981463503652793202939721345997060271798666305498516139213969596566432125003812944044689052583964358958710234610789354672747609668245689328526160043228838127408917321319140550531106927815080901823772540979365286045739278856305529099755345817939842474059892465509551365438307640560118286426703147171187288158002423760032010471851999118290515327313131595437120424770472049737830022594301876889033162206077687387475267135110564143334335972555320561495542720807879942029909548050725262724483424653840175215706407160744679118368667289441714053221116817317113401320654294840497621249348611924299237699246975092617309510697430036231897689383525394592231272196800217994534094617694605802026333434472690670490600895969793864673617413871929486533496657795424395709484505416927143946231222105935973257106621503713860440643437219614140705773646890178550762407848211063695681821944034670288643975824547467965000378435048283971115400238662423781824866188377585798468097511970530847373575514005277571068879916888004624038623357801009974434308727303600971310715234303789929263473734521274368399674507209997670744610604189077830342904631000935516563701581423461790824183428451634591755777784302390727876928177119374863964835554983917549923067473967858902212513820623664489747224892410763640636970968550329198412437535405794315910612964704026429995711600853437075061975758824089681543355611048410257296477184674835473525415210771725741768950248740004743807096036736600607832410706803219778571538194350583133266550879696219502352195079357981862326976820193512566505726341086646975272981040593226822348353378845665110910116910226084616381329755832857547331826638495418893850998925201766911840023674376087167757241222012227276757159165577624971972870924181160971860180526127371312051066273465666612009486135438575516587864447960103091858589425407949354319648215434499157066611765945844762025396860865201928275353267979968784733207062156457761183823921518661448497383945146194834055112828744161809704392768072506938690676965807802262673796844307164847400839839911144476151586965403765242114969721277447066962643796490973441906081756661385205008252122474002992668510296094578568082021218006756053116973086085629157313330403251195494978178079720955438467016666035188301892531812496838143737665459543588564414606936869737158646891656841065470669969076789230554923908541790624905182423966237746550136500423306073700879635107741046001568430906017804240339505435763373625101367230491652484209101112161678475285817200298682896482657343195340702736097036750535114903617894156629070694818961080002788978062747956769804816288000815270405196212173578352780534113508590710112411480743235323020274254113824564261127279706260474391613365818817477510674064554510580229115278159241295254316969192962196178162244370613663868853331198863771352766092908195938712814987953831573104555958130549172849313645959927414766388238477694497320087368712542865827680932976359849238970790463494554049425856305323628765857142324751200103312430645277932113743490595232589496196390845360027650900606175608317287306345945236367316886829172405576261515814779305227482055739077816717884010270454655012422668285121861696351160449149554782537888653636814672382296637389923405422677842613679137987933173790595583570998072935928303528703190257493580881157218781003111153117644423000934849385128617704038882059282112470816338668318784238144241793797547818293937272696791070258319683661851291366300712163027823482844129996194106453216722431760252613511036815042751223944739633704943166874941429056391223628253580665083158920665252619126842089762368048872525291003198071419033649590957754279341687118827977700604473169797270498780377582595762732752131841294341203393417749269509438916497146129167341012080729266409916373001400587978571181436413144405419116535830022054494246391664455754022845136944378527146383799966583469575267357073892168656627127856991761378839704667487919158817050970445238474042754414918987920464589882064911791330904938557143523210323609064167232584119200041406736247865927694883303038906749909003600462328989939909172341444457419095482993844750179867027940538776996271182521174826275027182067333132153135868985691257297801571154373707485862904600621869844308907438101735676621427037332328172951207716153093452400952177218925607586181533905120157959640005403027422225695515928209364421148289907927465577809011166908406837143485883685267720991862545795410608794489680774567292486653218875373642388401935117723942930094628914379981543984776726683476084936373370810922715698109259175218846649432927616304929088287848042422721874816733934030843853717708265301892099831657000451787925629318178818999393748952919094873894334877795364767458531717782247431907282753253332551010540918502809561647599823886328150397456908717726603747675511397806510290928240886999094484073810048367329251996901654337450901291874009999214314408534480313771256023541416492523354400825819178419137492525468842978627226661955622732738747537698035210441578851738908838530465861159821006653438181341981478998179441668615502155145770010738824395458065453201926817529690748218476825859179992876985152967787953786734442401906832219705034973553548677980883847005130830247642965780778885273968589572838774528706447113021856647837950413126382511424374304832918057102755255309817363905801621299248023992341358653489093714913519478523482119393565518310707658135516636815066554498657017109434773289409192543610410454105373781625002476183903497602731146588187899083027559927242341309101979676841330755308491429061919907571261446401664191124096975142548615220395574649803492092446831084115875076919434368491469981506567521725901987488550607295593137851828953148004017001467858331925939278263794753234486067836953168245616898375429634112627404892831776840814203911853931314176163805641848859508648666650687033250366054766255939818076204594851056801892037056886549266633134480841273344122464268214825961534310519356267748793942509392508497044204820857058772559323785816563395320637912707409683048530285614139286185783004835559011810046324311648357597788025968507811564072143157275260079109344636835277460017706529811065995100728101325603590536225690174668176665599756819414661976029658386886065546170124771845333622591234129514195402453287336985991929230031765015024848366255418628014891074609592977364588677661663798248183866654348011712402954933354184203872005295546405054831062606111174819766263496203121644004000975903151613596486131113498665765304886656980615327003880149428054582267385836939599940014728689851440017136680373329474011468453561819080859072185238932507952006411807525231928271341025894517036283603161984295775155406225501224054764797306342480106498807116546777948558222719722459974069652683008462136903892495433446692506453647452009405493903241964237094417421088801881873168416805551562850750802289991729296618485199279006102780554078228068722226223302650865374365800802900108849304179875849746492856819702222948336944520637667056440758699041226048563560226217437559017724338165435227342855000414836074092888755278298251618029143692722690887694055332292346595523186041678158565545693952180423452535926447506863959734237279700964650804996316467522211870272696363117297237577795226686286928720594980461172408390374253033037659907842688105999250266900340028227280231728136562428958365788095043571190883169402901111050843407130996132602193402392139867023041779610043003275701784713053952729384132457139648998399177388967094333760370511421330331913056136647707500084246453270214413924227186794917474266810277224452862633837985102124871337004553026369704018485196786877818852663134217268337537290035106215991196918630376139245697697095242652059849922987575904404333073058606001212802104173390525330255755477554075756560056979483917926587599700108290783087994025197546042170082128680243635419787195185817052852989267605544153999301268354815472121757798433845367512127967747434355271672843902935513320472165728658453424189416888057670324949751778352683398604144931594173028555518666060186958712314513033730916149178583416211977032084894482695264706884451445525184108860178099475310743888507484524779238983741651552743942494448608350137857520461221421500130341926491303912309411768447155885796194883115187612271501363637087981682440959229925842667604356676655892996141015348331171625020557450787036168660266462023381440057183690680510418739079391221501644127866937180674805314941126249087040447409610586516137638197973477850737570019238625895806265616078710390461081145965663094006825875930626536006812848480790057488537677118887781591069394041789157173830017654359715656941000490803153070413573429384820491139876843733484291357391161963134505980721065592625877329424239903076930387726466763342528870711211781710670928952647193409996443886331479187329929997907353651799828290653355796102679577730554593875858553309222552983733406445518621344778368714243549210648374260494755616271201061684467864377320721820060096903053707450367397485601341397614282886974717626155856085142472916066220183372584204244113305506777770020617469577220819399894017477074342906176492755462068404314534868615676636639379813117736287841816009396466446508113069681090461997039072125587562282847775219146033429967523509329877528740670248812546729740298868946402034682013952764617589394645619498004030411234229611383760939480422305361988724092778522335388085756066039696757216942393738500900708936454948203945370603686191014190521118069802975664942640827384108636341033842653393172265174056409625207995510085475061056185059016216063047394016237229220157821433527947433653866148073233646583824900652671000340458053518276067026817948243767246721854170495141711516211958371952469593597257811194910382030887468816622494984083216155848080397840148213742410514432996831051036739384175629425481364046861809289061137318967168927741174679164195360591261081746771559816299486291399258940007551005977951188578874526359172525891640914252228622561965716220678605985831034223003808009652501776000299161686924368347050310156301656713921638977800999312627892223777839470982492365241790621580385560913419927075687836119397964994834866251124291065506452859864412106045017982781320697805592802167706326614392841599178578451488161224542427559297514892200242494206822304054524467801514480893718018999830320127377077590210465084051424131303159524950232459482101281094095773348021924012735847420024852709119598294384917979952520464612502188197097549089746162306910618654565233334503268176706154390536250755827354685353230249770072275723539144018775893485388655786944386205503615966908810544650389409674724372459275694849564336992224963860769572005552076918673133646296789366766997976035768870866028318148608062083946934377951615765981476565284422022184249861104192688620564546669298623343632324162096735741433914361979855093705786836467490717751779190162200404047644100222753628035024856144509362722944719366333113077403786408005776966518152839312732306790632007365014015376974277349781966568459647834507977661004852288003210682832618826676841348176971151712612937245225265959248825740648607258997055459205240908977208034991328578608773786837311337979046732020934158505720610933587367947601335145236705191166591596315134251773407725215125143431223803720075008379129859108056742150981719410545912616776020009075685667323447431349695610146132479051057673803023696714930166435637887835792687743114271603507214183035227564718640164924551395053962267918715067865712136153219765020726548038631196646334807382144751972914828092619733548855222098424369657341903745403956660434307577476382589707700919243512425712270800175364064002635764289825303388825162137999412983029832660200138080240811684675266634045590809271916061931649933867667467963245426824961538641966530712092010347470700145878354854435944255564268433381041610609375817137537694567006035523071696299405146004797676172883554930081895672991277520547454051260799881141279806532118393417728765461838012176935728323782636299789464279215641438027983881366214774115270146002172178296441160319978490533893172715764792822544812055281688045588119320500716134538637092502424723503332865306660207594117702653161676279139694859178794764820978427280747597833397975755895494736329314345161588849108405284273125148877686433644451367151823092889022980609042458386575818986268818996250320835848119858297285064346794044960906577605281450936258971295690446138408136438507251546466712161671016215264363042071912143173653618294587822290456511793209761731291327139613470329000102400168925389621392987981584689174708676929394817002623592257633551440397246963798924980315987181211592669936948655746154241565524284193605452629300817163067866437112410955206989805492656971400120578648344555250211874440923398680655214760464022394671338502837800464520149644584747182381226393972553279114845320679068665428446300841874098132171037531825782594432099048272006366853417650152546654468943601570214237634441288810753755475913272666547464872085452343285639480866642731380238130938426495405537519048045139490440218330451104398667812410959976340894747684985306477452295743372212274390992706748980288750887180699233772809193989553479609437726925516391804766807272888787082541036855246069790090641541826783787063328230810471013008795636966293987477547920705014097099155587970507994978882521042438871716450189327651131010751849125713920389648297227963569102853838056784572791068012231974450039753192047755742561116121785328898218104890527680060596238447335613665540115813508354163149972779050739882124955991020501678548906324667137336001598716183316598831347596687044115938750585974519361061727497395399982380339158032924943222419786267681457284286220900450259996495090239431674165225909874835466180458092294148960827234956065075858867289893593460120844650505433831462995984710680635067413768178316571968545455678338183278122768434044132772938789311695519368994789798799618250734444194228906045230024848663759734922555729615491624308333071122563437817831697437220195182393910019800591222567857553998063067289829331373981483543560666012800340372946413719214119427527757365566993009206608966467578119313714646901411430462929105797449461659026533033993748057189691904820768584083131629944807804835588694160566832093480184007839432045712813570084844926980707020799269547966533759165969147615323678579644389642060682959461422483939590356204483418052495019458585597641087614976346872807153934144774175408665101790728911651917382666748811709799984535507213052071232343726982338938453067095888750572737403749401665637704398867621143681920937666993156850143804275505504894241718254529438863294530760520437408384493130724452417220700698699272063209255551865940841526035476346080667420745323859394153140275702480897966325030411202638455386118120702562988639871629769063436639152843476776024776048429632172505933795369547299105513115949803330757404150670787134861199840225822224480952346234109510816838094299155130539860179972342812279804507783210312248708496043313068873930210743069433148018349020281733064887567129485234890717670123786678557225380659211720299159366800337963601523800167337561027006523780844128056347935068299436920758858698728872807230776796147365205535222324571033785763512683375485840987144686287827900926732996547814103196781640677896046406946265280324589169209936560391809676909187974076041423541771642227949502130498968349102930042591766303423781818751927729165384023602696285200994569528401398909329590106613732101263038472319752537192320269231857479500112327659778595322373500832829274554544895173861163252788764170060365894310371594934257984127145726530807003604262470950845702890154257603177646127877133030959865830045674884097259624166289987688072000398924696444688984863535460396978047956342567659992003424588087414606757729022360082301015017998462523166695711118103353397003247084579485909773413231213955860471750384112391733525506201875307507749069929029895993244563157556256194137865371251728508049757775512816820322141303181750837679583518975665424050278351490878666409410851886552216559788750706697248159587705821512384607664396359408594689320947391805790633494262357973508047008767318196916840842158083573093716581742658161898031416314714547130496959237657162139772233550802030733034023087871256731094436199783827377166094315115424783155372094921408698386883653056598483363270153710043919591361225459134545372109674976837810947777266749414769355167661735545710752732284739971442795561813441777026352150445027658080129549900877318879310098084857396897061620437121510296631504325009230324321703413662462621575198019572131456189041636474928552103909699775290922727076234778382615091084309603315162474471348438647026184752286385828447457384679218232235477052047185095456988755070006891622647850325151052738160520504745639640907418277937248834733859331268915732519629405059094799219288712742341419413795744315117774298229121023842871178354807050836491648070414370680407451580896904048379125718999018762322499453769176813440272151638372064222171242014301024134260112227926535678371919610923154481833095155051584380173031724527996354049261921497321960708352544685792972536561310866097026470439192336619223152530139724888196930157780348843433659512916435124621718976370603507464127044362421625518735164975035733078366779216232713405109953260078439805241462828993830971411600666155200189609863092706095221845133146166276183409040184136469240937987371534685803014525370483704607570320520614417296428049288164247980380212181837399392499453442719778058133907519005499048971221847051266453551115902218549582439992195888263027556864899455492609751123040591951704396127616402857392423215295699128208326193657068066582788558797876896479716556551714828136699330336162259747680486776159918684434031409131635192303870080685028804930195601284125028896117330084708995580408624593397447733319251451616680506309474178385841273766444780469114688094358123254384925399800244943320331955627328212495412289004276303756876814165879887598875957275275069130194739592231843920476539396227401070041458162309551471533558017949426245702336086853552763995757956822256437952796917065854856853004297360213370198278264949091827367169852127624894193919365158430042838237868241726910941024658955859782755635958021583723458447587726678043577224371005507728688205074207099555197500672812304006544347757587062301502485389968281589539443068468847906378934718459343201464344681610051878590061186939905224740885413232428691533085472319671392854814541988317609775600427036216351613971480024024790667964261424259358748541796998988602503349438802473049692726549744275461833069123859576510982019046474694495523980267697809053507451657115255203120788556841185088506015149984896327545323294284658411093439827333045384934708549931040182804600150106430372368241866337032203904636884358345840928915760785746052041422587264811269178590066157212313855661216289370231251185019550591858670430629288361666202299383469768922174625711675639718842718244668539994872780467137968081085210301936518621939813435216743273670730851850745902502121426516120705102206060506876275270557835112408843567406717112996203551271153957357146555649230708625652712676042846642149763403154613601681368623335743351275153666942429574890853602021723274195741516413450191675111710247869592354206748771455973119670045631565868055700084537174120937848217627227614907058569200322247877534540788838959111778878313328618558907883240788651055917600131121294613860565460103400634174851870516881936169810194651910752956257230440339036353253334222790040329077211408908038576889182871566601834767304428627205101579219625257903945751922482725016946173136722374051124797442010853242415180404559031105945060848334691230629784902493520933121076438001732557494385295661810715369297848158061568908560097977377779938086294467942382907337706340346680152183652817400762664308261179386112348523294379949399724925138652654361401737174172388757919848931953114146293711667447825876555377107661969737053816547908596256366351861857803644799687910068328918846126707575208433830847743103522980015582451872572615445046574485194129298775101270261621956270360186969391652470223155469137282819919506259043267664724912755816313342958957769368522264622151136442682853472579921427865316716600781819755924325644323483562038907400758022285967168393150665818623490016293268264788307489829083608538725378769886757292942383716393590799145694812911762472583640407321300907362814206465786630465994992701099347639511524050491398114695543266738373610650701721214722527917050470061643244955993028040922978028968207643423694651302437710736475194411353724373103391546557217765143822431469722922777454362858378350595181991986562803153829047074193259375101954117278747641719963026686657237715074437903439788270366029109599742171406098593618019565876560732558708091615300942466547326269947587972193328833166542689668300864840404424038763008067018846493898740912351761656331464557556527370113108213613835529622541668551798141143529982300921390822454802486745936622115171977350230911331107328141537489049527471009727852263520847922990024681148693543929983775280576103778685926365496118200326998728339013811566056677903012736870346123646694804636259695569617819223049109057044160733435966899709393239106967957879970990868260190029714854106129794635246329984728098808150386502921887515667916439718049712497573729441774228992525009909339110685855480514518472706503054784415816345420941599605053667032208509880308675995411777589949914742719169530900691252808530063312244631590794828479330634281713002942911032736395348497913943532114499863160173554072868036828163556676704807174844691782082965980019939081905572632462171987042618823741236059596141827623576254480223353482245707813769022720298080958349205529660414049319525214769280633253957714572627139665299461242046864224574669000512803052967502685935688238895159026218435416022411596466914968301252762323580609264266632710328998172494336162258174468380223848192166529568214961371565232994516677404754329084711986544104150549575464217213078417432378077437222417129471772716236465087212982506105982559171642340254531911007530140021075640662155370829328467137422892327808084441772645710310280158231537549486754378121467377921300256703321805015562754297518449900628547843567055839524460612003400673174779996894146742994834985198931489784754950552165501927078514342316912084869687610310765864941930116038264486739345619410806711660384545444048588197977611725853651362395253478546140978777320268890155687982184580994850199740049526490688241466901775808887321741850519835249303316882846302755116607080436055779794613624621521179859260829131135473325783211826462621088611538791136625230591565419329802656453520715342994512603112301073033487653901732827835775904126825012136903436091615257369968250072549781255474944888919385945291399197616710034035910260517818605233142292234262249414141883827260327019808008381250342779473057425189475999715774244220245312063231269133877539163266959612846288696552263694439400740548557273369831628462430123903838995701104352724922269963090674037984088644562901088753727491213332341779239494649473105820272532444975379172580209626239373171091680093975952673261372775347349840666505083339634838589670288575026045304548385183890787769935114015000327718279212538549515959131495443870409879197579561605900205965275383286570201619185590366485343933481209750910471020210295919615560334458214319680156996875220097914263731929080234762654086507092846967786450596016326793991582023134334381990841440717107220477014953152593419544704381476270550119698149736369380512388935354683733019588946383321051675174572669637314996386209800109645723638785931304953917679480383076782865269617903622528648399891855088243738947188069152027536799392375407543010594803755673488488242303364656352691716118739666055053006926244556451323348645961717454079089962140557240710892659253467619087708325889632854870430786623857172691300221745548746022961395974788871031124866067497743000856305182812322138067077628919783959720123309511424449435218737434405263299468889230972557814938225262142897053398147976815856633720569354856445301658682389469736344751401209549492615081896320584552198395601985127092307684062145914538387324595449450910852287019486281114052678814309154444142359709525290233584600215657668390158893785385508894716211700163955387903054646156056776220463456411931192359754169236341800908803807728606619968465733945253128113815416337418186615965743826512891889251066657542874866832656275655132878140913107908073218120781631412576962307550439267979014732139510718549572309241682411194339747593562361732576530576970151022821836860896446743718129017425837149968065410303014858821118422332029586250081101720975440350912667772771228722039635716616553143679080006841454685539205488646330520604564426261064866182184750142623042533399293939409197651087721806741456255704306764613794148255224139884770860843809374081676953913806091675007981990352852942376140103202830291346260780469964723384009730142554415011343606593007977484840880839027818127515525881681701157813345538687964584735960908288659294418241392592529440750660256087555350981713613987454533894441286117321935868935889243723432350015730150066357959489207753799233709467390155576648143417347901493244120174697087825398066927522943869952899871570060604836943428304743795477194619635006139564602277397632994361751040939821830358756907696677339260430454046216948838452201115906823912074436489154966824283208145137270168065722958342367424430621975463673060768408441074472004679488602642550762168663112511630576145556550650203526258404039393327459629120866964671993642901703213819071154598605939097186872678762612595684277809090546850462437728960269083697803444236679141031506824332163972856132342040095227853213733463379907995633135686334392006047388047123893199433146104948632969846937754154183759588779748656601625527306950597807250872820013885919296712822495347416542186756442202158616058189893791393826384731198413405533672898414339350856566592396968945323768584064129959556578805477005771931833796389910383331893657260508933643994310167718087142560707015423273787296037869066395240422659572516656127076695781858790945883724615910962350317750806083710025547318503091508434859215887402312783842237780269213019021952796458147274137275237378114873647394653741575041519152281919992286677043429734386720066383178556670325259836618969154762185768442147110582612307334263467711893973228098266218017616851923926415775021331784178360610462415429391986350082624079510675814331316297701375125533120775256386899131543598250154138819515731701694772652783312884675227206561233869851790112328515004415507470327886332995941199605301598834864094179597875560319644069768590983711517503487575629699093723250304483308394920988091687155442748351876916923565710756721854201771183590888146184361732147317182660659368896074476511882801130501755841341464291588058651246470356444375302745795637934207861419013997001130465277427749876660438304844365188241852380298768645451490472011938833222230508174780222568106458610295029799585995396609509957593779483099330025178046262688294200306205880457732544509338892598012538925266180966341717243410662844497691792150992160813545224390953260425602032974854828643969061761761882576186411484579113447738024689531766909812720674902074631415922417965750913607945635501752379151008005627592130051043828242151809734042164404299752764321662170301567030793323558981890098047083183974544685559959969409365512562278837850626226234256620710296486513328691135399817881745603297230610048115146124093797901238114337887403172710464267716422904208341651905007989682652425257152837594152174675005153551064607059744663366891361652945796193402334104389140464605492902657602017068749362909360261033701132276856157147894038759117537136657225771097403039708616447352065984611512569946234615853155344205749847793101678999001409419558258499866657655003024857233932938297348358776909066987593449016958364739766245234898528794781456478009566060376163991693469047029758285365970711724587655900191177275000559843371755374178299968747175410027716138376619703436215889841566041875027187047517013665153453692828386418686141470303469381007153331868570022789328456092014027202533108714450894660767366453512097195977887488951634194702795919454679512997826626073205755845214916946529586482199626914818039348672747044498675394398430351132832696398475943038703802016708918312380396536452675313550123458035643365386762884788345875759905416908980702741867386992212700278995800831847841716168477961184052781885292708941167262769464623302310173085493575712155846554449788809969365101712321148841158619344059978754744330734889673829622061410974750702382894116821678592876535522490800951096625495649754074992187053171502134158896584939314453182888001233534454158098355757098475408352311401570562951974201551787668451824666156837888163013148858098979607935533417787365625266517320584539590328516578716180365471705777276064788348613687691241307467999609285407111428681745892996630399231977165158180515226760533181134669548083830032660423075077901672526785167656937715606478837558358651884414187721394742863263014732575346053534302302297711134039797941309910079079650025762890879919033658852650583886709467292474267964848578203471678284162619368165812805439007980571078165230015667868982485585095058769835920373894865983027352530413864637174837673848810095172168400098688410185367904267659690883402172573714771588648017203874893247395963720068681979612461603248646870801977707283656771182015852930393342236311227060765289919213430579098644041937962380663121942596556603501035631076468506013278367811816428558067202695546372724961908210009730899358895761591661865702054951560595471222577269522043530838216697881698358060209499926231009998892641450260380873082924254612481999317057390213114791707856013565087215675784681059890970366291012736335019885369587795237621133422462674542782724434639579157602374887750138963034072542226531231771421414379084744460506923268795231013693573166587637586169536783059573581161949901329664297633592621189095669751413706699038697168117786182847165907653788510949621363580838760743690123198552397703634135370151876730713217437956693257363954624224456256711145233987989562318273439853971030602241968257910318439539773596482541183743181589182692743826257578331998080950926135293884280397784008911060495785888731022338242727168530312203138017833728728507968955274374648902764404346682953192793875473385653947690899358809793890099651045177096166936333899832711271914540735751951863053893587531278492607855431559002884957976338646040777909841900704658906504891381677186634722005191286316681276210256503447267738364355764780386095654998120310702623420416055790043024281634761662838831140467611093158986126908523645110262788397107833695033293751611565009742058236915303227298468708146266006179107481055043959818220159004696385797249852324458552025820896664909571128550974686518621701610146399631810670278966031283313206343866257669034230551315551438366602267207565825847865684264256131338792857359951772920195605208965249006744323933211025409701271219144543127001064097644963661471632242310772679404276949251104157861643494833236464155173781923265880535706053776421980290206726090343504184603701908401750363765951152524815754328762498499511201265982512748722458743043629039514953073293933797417041011569631178723598209816708664051365116616625112674639492540388298990925043824623787342576477673452124140244600793644561932175196307852288558481077529572254962048835370638072165195702293896674077675901566648403370645163615096644227861417244781019188317189838139451430870926493187229506261145068707084737446506992234961479547854018378533938370451126718376257316494883318476128471150303198181341775248938480499875169501727982620709610940803308335826283243422506088309147459399023944272002535043785943177942821530830462659766028567600591247096520657511114886670481217281613707282629706760667400153109262472327989931872424443137378113248104250764662640329117249753528018808876310493497263444215953936079652844329843217617160415649964921478777082027942759925434012980770567448741856282978757552021306619400171272711422278287864178251616504341621435409439663489978640732372390954900864014853515725362775454959888959773735392321746702343787200738537883412066242439540860597743649333133188126088896517388793752657520546874878369989220006680027722495225161565484339762692011641561057033616452598402200645234961952759714123095409743594344250082554984115360171195033987935069186488092243258848001932677060432303388183375664724815665405382905889160426532760546881483546484169878764799610035356893702488201100809267082960224874593886769541066680163539550702420364746204251311054161602586198317353329958879873441000585513150436751952159723138917573161092913204342004868076825168736056705018689280086560701235290752167047004105664441176024435341147915481693701545272806058720523601679578441330742109091422850201261557924417155729069071419894921507918012858805517797464042871153874891297142363900330732416195665696237428144241480092572727318550295615214619903072896329351139591485865937187229357078892995260582866200101695182098724768037714463948401790170594902770230423860615588541010357791077473946204794349132182479701037360951896018980902021570486967890000857741378922336000765091705885786412408171673184009895726319619065326645727790591124382696087515282287956525572564190467495195889472490814004097322646674695219998929084764994918312812871818364356578588916950486403998664276054633987288268679725268268338025813581467152032547798445600015334854991452876564902414770564758476939267494461091297514342700907641393302078234425819799483775250974213808807441419077035272598693316381829301513255799182735363778433739978336714244993189074910935165076218022402328003325698418084199626218404308523719406547878127136421258369809606544748479761992117682241966447099062421238814473794699809101471052401134216157153197879290419977902142974894782210659074846330214898456758028014121722124458357632651513319732669396739691892222868900273862430083351779512556073242124770089908811204970216681228318780127677263762222406130658697577477105701924002425003019659235952705854382311253749454073398232532888043438618143271776777322645015542779178985645057791441388387610484100725974013945854240559157623566979687013705063260582498470005804392075115644565653599004229549634872606648675774687931532539024535077777461688696077769301801626831065508932311297233242624481688686658832307398382349170498571779016785664878333834936714613755495800279541912976050643327905900852917054120140762915398317452268011227679733235331678036082673917506425740157138051476509171994693387481278860240953957383465469431895528471000529910645589841965211436418686892308664333958180016344482490315913216957754703708196185236998086128767218903905915451510597439523709501364230566484687354219310731081245051063496678912966408243878334720420112686791530194015140150151119515667788864755488644517205591304865950261758106166277106983990538756757115047255314477899753093277792439820151777483325625813553447935620760726702058997595105616066936758022874456548660672697426654917997329710190168486755405655853319822179422853773912191932952166184689463494530814944299555067793738970634443008511970836167807711864172817790751584236469492475041425215717667401193139514087927194008639226098884396975107099248559011539735761058569655900014284720441996231984081414423461771601065146341497816929758307328543303488044957553505435937337582922152220706330614931982150898738832905235036018791627376328902040936124119159113631066753907636472184669636587238610835641679728601685478679362324247220419053151153264405676913074529376450696354411902915671607660257329991484424685605737683230764019242987897298511837169188238530501068075185742522343592740383352501186749899070516529896487753162629752344547519859574754238096054670925367437389409353975411610041983796463378041884686629669877656217345094901330539060425259714961547059880258164088316438782265374698501509851688777715895182993065839454409079117031550706975638229374730163930845589668340804896039836520668341620102856821533513472014933572615438528571212259000089511193328762897954717201173924925495606695526203461790298367222261411940901304523893551127624811876370755084067287479500066213149241770843998520751794759644067384935942922475388270069268891815574981670439021405787442897357205999040640089867752282709653946924630054687120717804348364056408401581149371715058966038861451411351610379863936681501416587750434973927060926699494101568514142730943556741546808405859668726961151050752540168173941074526892316713278639999821827691433925762051227393173483917290336950673278935876491334467700915209398144502037295296761472178163436816744282170466825722844979884972423218302239785790018343553183056558253951100093084018362006335498778663152497311174567502090479143100919767627970403409493269735860094724126138928092006339536410789065935654056825013628126960494520960739404277622525325034516703229298627423094403434580279368132952526801236199509183103482791225795732576499884902726165791201726858220314367421617936178855271192187498213346412425645143000356223713256210450329885464508674655060591010705128050385891257269243905695465957855948545207315452336361363057178986188877600467925627137620864804771057749176595674256880088491848267103493393303103142198551474458262180647139523143522802482770489933174394652206947988355512899371381422550636543115756456248512936597094386656045687340997318445868255406653443245561253163362717749981752018227518940014924193036549199073326393422440352862746039458033516683636976469373754789623678395400821746483576504138123901622818735614150257613993895362710833631909756691369179681222796923301663181983993552138765284321141411763208324646020480534485905215052969629272685840613012595970667812787203060739378564658327826212206195252609949697075555855892988651194262715102702260944233706484344340499884833108889959361030699712307879206479916860039502013408272351963997891421625257056374782811432798134194839546127953676400967732437310492307693513925178662787803134185205895602810964247949784272025165075599267812146980451293683488171024727234402168729702648147271723762812526748490232646319117438768384999526137504040858324267923773910565411886809494844564699072575845441053925407587284448405198524492894712325544234576773521602775681226964227710648390639103775369957488815155864828673087114874655366387093406904509332548861997856110179319740343926970263020791406397775583683253164557992897167475853698849915908201111636672645942023629066356924545162985049843058715579839613728765433080557900061086723976437156374720222139848682993195559583889786563234292714083805467151272701148700934492376478741515715342235894377572865368076606818473847806442386452357448554545390698106882967230773492470706062475293005193474795441091777693851299039902996524466848569691166850011980925731330952673069207266406054556781473070549194906650752175443973813402937591124003264007247676804690385943159012046608067225832739126854707818016681803697856831224971491735971485391408120709086494887004386960270920304176512343883417766381772398882656198704106672104374305290887228363913461113481390405616300044291414594085337380944895508213831194184485308146486734722464502641555601265521448257476999700833259049672338531788482439673507405843055952993442117872760914806142090625870484367357661577372488120703800626292816734998633338828227406512656474219305907769489706274740092554973438436727526550478371807868235261873219327659469346625899854992749489866645623329062578412432078756514084048566196124838620122774127255951930419732003476293120947679224045802116927578400136787107492358867306896600478234729421745139094403488033167113690307510472344021556446031347585606941946369545366839155942275155621757141704656369674576694302035698484800635955675806142433046046611533503637217755398542997244457820952553520851516214000276911017650383807356148325003339704939207606908706749056332595691106062466765717871582788129707148173110315451096428605866828465154857923174799959719562753629044004613077804937652203888943328919521585476209785119523078139355515335192053584013990851062480247743260190726138588596137062691029719340826910103037066586844337121225970980788920700352765106344562312718600994097155140365401244389932460830784753244638266455146466669415414139938829610211879013438743816854090249460160172478529275183081071676937173305450309800313424704280613739430714380326938419224930607080065800794234952517434061563591901923920305018094327401694624734644889393600791461970202961892507301625439796615875452800040547871529441947923660088740444654925484168861133394083426947621044498914258233490399834224067862066154034844509765018515371127102680000039432216371871893524786466619591014868006084282489159980490195853662502306912216836903534832986927689993413612499986579909115522514141909513450621712943022520009931350750736810078395119295085432589519995128110012034505677133054700479077004938082192923881884254886982627224486883538605004932952177789993573023799609789899722200462918205376082022462471543049443499023706647116240413332486124957607082983380126397028015134055178529517362697739415128933404674671317625479921691139467520749595144908005091264289249525614134967794355313492458790501151969381293277875360171015989600737661648209944535755342085727970956917881482363279873695467736685780126973983448905502007379729915658239441777084089899234413388349942566991503355166340398575298792681031516483837856037759099754920859446764708116760407499359983739224127791579113892417673413541397010017950981322098269315543983286832750542352364983280064664702576530514044805966634562065682940889072067791092623945295878552345808610930448083306434903848125966100266586528918764373452134512239064146950200353298781694930399342641918207416129572198004658539709082862664971301740531764031700703928038093646910613932577102835223323706455533327459874668268881147954556583069070067133183498118519967090633737224944442749399107391579789581022116997303235146291019205462477587871384076145932594948944345296431525336643017403939962976234626700710208081653830018702604150812957073297488107347549688446136591495247511444102833407258987867580145815666599889130248131207557931207080918077492637310529258000745220734774588543703747070717906661022089051072599708886917029762834890589313668603291558637138130966024945037278158424558301456409291189037019879311345504073653853440402892393511686648112086841494298051391035442501791383119662487890328882467851535496230231176879936962002587711703200445718837506461010699448220923959301750344135014547843946348081706502507215327957744933379283457162413640216059179033036735126044604360357126274110436714041810975039957842776458517820193576883906954205999922674544976895174574910361494542601694955917033113876938135282636108584100038187368948515137922007846913154292519768550412447428639383889585199824224764565009014076358217270935176857387507933580324039687698429151521675862146650687430211497579361690842831987637462800225692461691649154913591689193082511436520124071794532161142899176534287156403164756169268181713894850915725495532948198655361050664038100116553484028254197804256767546120155796526300316073857301370081302396714766833509713057195485536529716242485593970092921619607296375600870290451776972673937589015443615867955423756321130760576988185270956483574873408530280155131081310796985389279645078913706982151758562484541225305142067585981523739887927760648070880265864961915829288607711638350929908581659357853131314058646116489113948524987132199438403465659568942383490684912649971540494474855112483739797033217034401289863685131850607612592886407582468133914619403048919846211835413657604312234655938361764696439216145412765989068529144922725768007363470404251485827325531612669202824487777332342021066125085233116979677598536651817574665862152221443442859998500241819555097898786834288079053697172771609882122016074741807269792754503981685640029666153292689817856350823213384207152194243904700135229160220519414691682906027926578951600243306503498785703257490404006384552921137173835610737412212770050935938103900460707486360603395648145168600644832131481648197013375644739707404474123085863308860288129105258707087876569744446421223972623265412470238093611050253678205446718076857049318072241300749636911642546921909636957514337457734318705277581571639068929650840236055052971680647048858532161022617097796321484960181578924825899434527604395424551167647853964060827695936153823192102928341372916534889661812421156214128667716682892736873985416717653581742988506705222162773289187899028876525413451699463895981323460420454372551081477167909501712571685935190853398581018685843656260797209219875770149046140926126414335025567574052108090145032663146981546700151445452185010293460851547514273076538707726717963161026188407048540207750569647533822731201301638098010627183498703955565974644764093759001044000589907111993816356849381350051745424752076535674713026842460121263090022860055807619572489653365077582177801870484263103276908622954478896069376923953534900284164552754075692170693849917821989892888224234831526558117641324421207671231297100269674438397859595673990857591729483531957670508715467936016823786532408860396763177136013701771473388968608974507238709852862501478250788901507248879553903221898710695307122192988606667945565542370416425605791503530063243288440089474771872975421097149934779249191413015897837075273044845544632674675713403895754808294409012638202741657472580825456362204708454342371464109139578783226685989343574659055980200298029919504493630266663284374514047518231991189537440493841208220255556794830502525972820719506000532981351406120172383916537382130636125989520758129478571439180336708177583834033099885524052349624034519405613383512082735589522563978293999175381109323006155012452156172350375359029010215065622573458874423110748552063368364908658680051833661565483353776969742497033620496903704328561362816909353413310450191885224457323807950326446519195974855908590704653365721980521519757189260684685442920091468246142714240700852100653851473476504359238927541657104248495593211111617523033779303762919177540984114942349092680012022726723526245899720953072855139751237997396891109546454145498363335452704810303158970275038680420193552369489828490594441751901034234831819275304887845948893374533906105572780373705768948183398751225589877736863229164309826747387062262173162838156488221554837672889485808795287472764285148095266011138288890635370695293411886940079425006872452624680068812057312520127040631711245851134917206875948652132877703674952106211482503990726438257439713746074444133084418731467217053401229221118914209514662513018105128562631016345939377468865860502786726221539535200724896945036385594247927939938280288921860077294732653127237817727800264580609764699959633956429188403071841163063452931644616575416534294789189142554316356269688877666967963552421360020064876982221031583343308138291059177188954182236453475964871116737100068785291174884796219461626021710505949647871809982249055547145096339269738242560722063243715330850905789923451719694283121651534259492066183370970457933377443666617694937051633168637378266686822795610183480448788261243022223566955043798712613574024105314965585310567720942648457036970801121416834303716500514226777979913185556291101463268529678106547313108737079393613997269553145461808722058346137865946711076961382110030273459891798832330209619830294787796959022100762433747523091066103041456786061902195678344413269456094358288099204229388001509458674839750968145790232167596901408699829241341320973724875775690680766107242643985915463246834672500690348598749754947597778600255811789743765295075978661565564800508836185517071603658770509116773956192039604478191273822563397741195735745017618572352403003174003275455870119594741760663930162308492356601058145507855200908396389693442050208674376370389599573646348328914818365876677534408002665572538738161261067868740445997094945649234890980986012243564301589918244248532696008369498477581308083210906023240781190564301389829461947632598561153891346287456489034770953713646985126254821280259143615654115185369602452118408531553598839809127374790206322962793071833219015909398881196751352850723615691454701065210340618330502158781548410715814139314376577672027904482991201768939010148051086281575348633028739701389031666055565189751820011023053153754345284423959342930239707195301152274096470934009697715698611499098669261270574141415519471348164348540448380167341853689995078789162408612735857578835395690483322214321589344973929797950160591066664876898129017814692143153904462952919426284375497427609933707575954729372610697289685744360310996052360985623467804286592507808069343702701193227577109422280286552280211640234141025489862705080484985838575825146984681002572867240676262441489487448670453156184858437815030472572607191284962987861338006548338610003052634468854130448523179625648729015593984437496546015535421157668590917580437408513092830424632926113778612740393272448469784882253364006045382218739597003771232157651927569798011368068310727497416120207247842650058730604849174342765721836271604161205669524698789723080638211555288162763649482858110362957009367768332568253988576864108700242800055395197204807756210608392061506051856332990245735780113599964794600271129211702712140665151367341849757180556810517856553538562309835032710313936441584992067168695420382163107836813080916309443930172237626279071437051094033071001060962232419111314096950196577401606829052114733615689482031259664540983417185978635630926539800231452124977473076248623591465410879968496741806482259722046146718050703780532210620550366450663837071405586517626437085449302691386998849756258415451926819668641021762540114859073908739159470528253209675791762694682546342960939631483007723380369086195985493688247005223422276611678204445595440231474803910761464010556457687927991961614463215264756516203638041366781003390349877378042518300868652454501168435746871794671107301064093692573245419102834169264696117979920193575470428223247948258574815494401953741911140647928953861259018549080505435270736656876109625601804387188597027267082149935474562018082932364717849068709887430267055177645881355728208351840353878780431895661431116497008678772362248502387052481191397292978677947129834099571901977818631389725356904268034187251796473039175539461655483658049148326583110876868400810199682049479680389085123153429245541583998906928758514666732388669718545573550195538198654724632465443105126061767610381152364747907830722626034856646943853712081504277535603579449242197253902920195038016364765218528892547669457806813155296857136619376665056387506210612508142956999937012533199079166428037367590703381838269488824200060065930028442836726501683484649619213652367659285446924078474421076816137439565395227241051082787038837741540738601057602787652492950552015324389732529368449357725241338024752945979452544849014265316481342584115622946721603646118743485699566382238802220458108697329048125190824058141921512381358332396787708224652662457442769916775013148046703172743907629642804950933981255767308875940265924441143820582545068156593498005840216060780789300645631085309150002742858722203010959451605621095974054381843015207649034491160520723619542691371158853019467462249368767710488333515526054173500117878256391624102662492043300927649798533977052862287600373994258344754930815246409886200250412610130622503356275783360478881115557555256741340266674247871080925566731752373917167508150214641341712915704513873501019918226375318296505622259026391121910688057796685667836729258403328739267753092315135206681807124289031661575495427392730492394604387825393535080124568440541972954028761341816192287263111070629883595659702447857405002759931373915447691881095545727189893329714315207944421429589183033550131885559205468511278367908204378666034384989613865659622077730985839971153512111203919935491646096646614413639621104322350271005659172227125593704296501371548773709995997232906930441055811111045316159174109359095796074203592360550358845603098168302084735053935009804317575411796101781928818616278021348066118318043420708502498440129876165419723319753551566639122499621340601164645055917324379065317707426204220102228348338239984322959643263169116608868155531411817007576169256433495896467112003202681551026793403699600036234730069453641412057246764926503260160644522724651134316526573135709611447317221276925264932803159990040550126172237319799417100082460721202435123903524638780849939320227089149361849520665472229386483232561411413160043544269339304660771482574702316580460614396303393351446091574301535998746449180997887013422638956107821771675599270432715520029294458881288312298585009624582121364703336584061112326450170853269496281409311802455077743720206303054057516206805912113727926772216844339175139516201203393245840128704738948642218862682722271664931957948565492273619700142194331280622047166215514390250595897072856615154722211063655348637969925314783401112212848275753665912967533501480588600125957361037773767406615422328174211984404405946819583358426752020214009390355374158096915558640311110222161054123822234172514770573953753887737786353871952285800716529570077024485460637921261607777329459144021672279110576243903443015554903860057822392497999086756575184643057504225841115934695355173907982994635069923331479914752495721224580463250818752957894972690898270966845156754539353992245657392973317874113485797982714563907984036925043988584070197404516668461635228544581835151181117146523337421124555966834348357694013738435707082795179424483359087936521461381876865298701249350856715430935519768075811221940911472224528400369446779867405332875524140011761178260737293456686427463667907706160623415409683801503375764205134484511350639333028043700271395885912780451213704986998260947892906984997345723779712137524877800874275389524947424963347150937493419379802985312279455503906933720014400319303072119616427080456341527613027046196157997193207793455419686117705044155357357123985120662294380187000731068428577954224963058017891222642000348514004906958333710529764870878504695360087458779538233588287139347861816379668655521519891362057183269294791516365397985029572449143100827262901750064857038112030108052687571919841132587623630030774391248907853405080842512113485498308625719004676472808908068292479660652908759752629180839278651101649818501247891540588045274804450389208488991500352309525619497970739605735418449020174674898061165923036733277386293214744122059621276530708206332137332555731067006917365611996262956959231986977828896653386375939705687822588532320710873966101385537625049691904067997114499263152855897994340606822098142505550457950005490467862034943333987063964092468091884124301410606042709225152817782944413028178773502770142170678476827942237955146290992367326775676691931801119959835792689759919107516295417847302150236736665168541285856501376713517506949733193467223531357709411807505586755209907443690981876542528680669005370383864327367652077827787319644973755257335969436192899975252435876370633083802021312875021060670902448899907208985343654698720722164240730668569068110421378901794098281373165575760230813688731936155020564263952774956610886138163588992164456458409775105718608535295622826891679160183208054068801238373106732869131948456149638967987878302458287516022546078179381961437396913487613250717220982975077354038740579890658366123832887364885888112639993456030799643716877365156032464383455244856697579637315869896644179964202168389449743850994138548813445964089123449738068239462814489386161099530072071751069551975172827180854468254328092234371625214966469707847504626158778119453501414368244617383987406368738822808459096409926035607739617723022915317926427534733190156853862418582932701792429683598791285086810108579866360945561753928100554749496833102319356419989928216289944244925956128061549088829566458552170227813540696866183297824098724353215957433479027552259995839822501062182681190910452651010173757456543503589905459926282910196910944213282223378645924890421152100783571069688215400593447286182862646905614773324748458753212473880380621917992827338566156336142635216357732232984486215260992783385279820704381597708024717553885093594238793920206639753582884166677761576180768323952767720828116981038579506110073553369771903471789001171783037172754047297529047597549499454863761785191793249005269334774279782268620094597506465837194161796798721677584736978260964673639072574597823926779171284492274317705262572980298284326478387513375698913263094667670392324354091422209726094582455437619324163905733308501875349513414565517416165967431599309185637295766025848761241454941558944661117866739947192426869830041587820835470112566450597291133418820996881321814943019784379392807224544610102682691291840688159604888671872324739739983371689799183892032490225768578532351593694330172229629036231449292449398981654074662610993805554215796647548799258297795867811351712570760035574290197827849902580945379688981995262429474617889207653928449036611067675206467363694509494672200845797851091949611960575329816599957720169329577684992708478529445938214605172252842925778056976256686985946859332545087591176918875556127397694252140054282261936502121899581404262576175927862710439006069473500833886855573936374275722479588712072067806029834211051945444203684059630271197519496092748814740625916912772945703484628370229526259306621572312122923587053247586407290611676689305002357834866464144924696076133644792875960012907794377035995401155108846068563350856743004966715773470994256694902167526415563541142457027555564807622960517894198434659728334468075216117995936487388039507764892773249185693601928880556727201069140151711788127180531336628573226981220379133469363106271833451560230424393061956124241624139534593989321106211916840366161811683977795982637362747428549238551352892693271006928905827041895463036177029634368623320884720065835484825571099197037335260464967622993878673385474273860400817915596093633115577084876597810028563073745366190150711226759857337318375679099138836386849304370862696246657724022859858117191331167650241899559221236037893526143146156611221748713755032571171766164530247681540282996154324527164685820251417799890476840575973317388050329635815371132987323728172094033311087960756924299554366817907450465098715544097324259784382191820437845628485093997376682325280433126065986312618224048217460178610877903949954401317665942234718690720661428022561636822861542494541620163323554015261299873433428855144027235556318010616975969613818714748593756637619762257242029080066131714249268263872505664452359737519981088993134877476806365800256918095567742456116849475177880207324736938274792741141357974332220981260049526553055198480503018323623172182102409384260381280697556748102710160734630872891582887738280777065666622770360350989759567037529222423584742975808129434911696416281996524043444211867976033330686406857365861369429534454056510538006141095634108922873473423154286036733410375621004390147277028694356508227178894950070125452675155465659897378378928378546084933764065003063208287822799191215841440175916984556029285441580196753774229510807748572799017174071425471144315749425860918018959087698345755503889353831734699814804338897805478835287047051904881758141676612351986585547794318597883552611379088504748500611598493028757555340497724650093281427047086893639243398164045242350608776807021162559717188803197183529294592976086157266632562173642805741668148974779842929978300887730370953242921977445324033621856945871150142158405833659559370671805080170808787418650106537457059555486706060705736635393380949274805289386257516984015341885555109571374680478039757976981165063641547963894470824807665697692872573370662900785452231717294703343905709116073605563210003191907479854648893506931407106137021290476124264994838297123025608463231262067048565102006886208027718257229715789103831118180379851973040435677252073475763817428735835229225987269825957278400786617364180614233976296756166646587910925331052007485069503311277733316693832942006388604403972764997629409903346677924676599190711739897936706065290197746515022891466019868089752444066331092375842991128449044248895171331313781955271097538971422337223014597576824478435792901616044485952978872552392607010177039679111035001895292253867186294293890203975700331709095098315596411991392902193108132511697355223100982295657363602564271228476746496061838374033260209807165074009044563507732305412667182515765316380258579355725295343377472945211023139390373621450963449360123014816137708706480028763319863244434407117842198954626535078623174433052268085152978791046183933459031984187367602124446532438742653919952296276595004646292882289518622581589875682154709882298771626918408416845632486750286108865263705656916207558080209554111303149280909692523506231554109815563169741206702960803275459563000052499698242954828153761797153372115536084600083368812942602086750857350033871891868127995556041777983316977976676981353201394960501867321941038972167117935947196463336608048363132253740428668220876461774587900086124481643494274351897096649000999804900508435729441488546324538308792970887008887010199142176103907653543380437002044086214223706911108939581997011206178418337799028531283981622375437287199974294692730019777313296314679979594260468300577732363886726119266120263976866162263357445212951822451543219247482441810416889101740529952445650933447515544696582139199021481758638267295298701351849810049984335162202152943284138774682148587833092983402730153767813861277040324932675027783825809329257644551227277609888206044210489204078163136583705517840311169159249940798893843933108357546779228705821473549926669418659005766227354907231000342631558674474925725294389828509242299683600137573350022514351288017049885537548064951540133387400093419143098152327932249006571729435191520741355126332509077258700392751564435779908085780278215568212375390689960420692213023461987365644203599913060125361695841677495545426245119499084287791790351819376054252785522142336976020308950667765154317444482795807170500762053165201299297187794603424382232904562977236589699027292823436517467363857434120619133503906013772795804238860161279256439827900622713783474015440568940390844739667749608388878569625881082030175262510478455505303805598119305448480000820806387875946239113494369100032110383857092004216553650876431160108363038056546909439766553250730154445768305698858601246172839663473758417777678576892163761298027447481581695677189726673393968834613922006641821541622444668978653339318321946539869953194449456664021332328930928956508724515699151918752524114760043596630270280770363942219310058448199309322155009143649580551945579433099648803359235343390538496439768835076410276112529439126555176288212608620587517983444566587342829758861873976221945731644178970701917057513813178592266463535720320494829003926600668612371013437835949283319103188942829025499604044578410336755250421860129991057514601877479274327403062271669183466249110793953519912710344851352847634723048590166669782331852678208193955185818423528415444592292107488562351157034292448989961197368071796641057662696613552785178462510632636449466158304069105940847320654335325994364853857657897170792143723653207747410595537393303987328140843863488125564803810778671344481633136669050054646464980076654542933159382822450190175646162896185201582747286844868285883394901204519009522587967369208099037948668842686029217324673638962637731790858356353289195444501350356847693049065682149696901514243075118396463539816004161552186524667199178156790580434809857344539687707526025021632216467578796979981436098618429788360275650193062453125801824475248955735471395530907532320948258760736268428854460571046098835529292080137753083272764013343675267400205496957120796191150703406080554744293059930320912323821120031973923538350510109366626760539430665511665772223724544082471405246644540322184366710613375912648979180426966562068400544074490939155103239908736817671955999609841300576050586714528070769770054277688371433894483055705654201409661106139660587936298380434498646722836224883673160776365145127518937807585455384015696074103217649961450874022640995656929757363224221351091333034893874903423511665140771048132292796853360744927394047515467907986638994539455399021494740182276888743756817341129513556894398333624563137476200247855284208566577672709829102359017778800883740616823781511168950792624266236395275728165059115603877443303768122039963799839936213894400055114510343275651587228595285774809815985869890473974419982653238062020423410408946279004248384146852361009101055975447880050364576097496887264354087317699655686581399645031982018673561287267665776336968475608273521880272431279018465246519410387020591717944509665399554094181467573866650942032541541526958670133573487018617490987823218368752227988549639671697394747972615741615191655006772718133964459689055360176463379678187631717514490432558919161982690758202282479085822121161326477581957498369678880676382234957138459247793823207736986689164288580066989607355087784966899112305553255545300969317970897704829112181601985845029961064673553126344080558921538301885531660712629414916608918576773964303041511364521516262368840911559869919310359076514624388019517601960189224515403907382884647967283856358098574283350462493939082587905634502432465739250424869465542638557808025373747006292321762253668796164766239818126097062531844694074129743551804402997207366755345034607611852813562885460583107476941684216922906321126644949703410239891186872942965596311523390121779132066524841642462245530231355250713707425860424762563172254601323860182059171424086830077136129139353859879786520565338007422555111419600251372820236645988353649247112021032540250188090213742003383590654483129095886191048711923065614920193782489846965892786278242681795013761006781378586341266741601400777529617496143902872375603795467817599123662947889085221702405250896664916586093447009073260794789687341105725295508718836647422711991615818356262020235392313124306233988024380374316948743247183366386242218692326554410653924737645930874596150256675661309483679776434626977654780055231650870220587772839180612108459409184970416929908465284827418877986171867511094127589574872388182733972282262042705717193899989027377035663676336826703633731205105230720966642446803346236271080767790866586408225335470483702300861068431499617534418346191996279523542165361612066966406991176566663201986718519364403227628048702806725485797041011910714014001821688174569823237958637877802566192820251370907713169125050269630525710523485781244945361827633689591792525786791346328891852030305818228288625881001317626717571944028598924046158029608136341637551869464138235563738858602734526854152832759361991333712296629443727360438489440593893185786957267571158887138861935977873018803898001791674207983092471296390736318330638258130091807240750164886860867541381005682907873472800872444697054225566408747611264255078750202471327087756409745358581477130178477821701846099468121411057694155459985069375650387583698357682213550416103134466233441953629041859018276662654445931353177282089099685454474001209061569836874665020346663464367051637816452480108533556696689215714172102532472979923315815089577094056052056460507205743583872198842077796735316521098314407825842802678202586575309299587330588102255526024605822989532161119578247952713040130833959210198174396305086125529244920130655100118773137976093115283511867817392532338983638103739738026450517961081718254630021235219162612401480066149199532010854443120529065584008548788054902275177975793616412241584800349831172982383963927609831023921808151473710142368014595643754609074380086799344462967066414345951551424160408157053223473401523565833592337004841814125141971074126673842910066996298564829134813527728585034860455945924067113122549911461787459062031633684952116012055007088790705462183310375221019527504830328273807299702528045625989374023938921723943492244819938658291221800725582203420044001871414074816889866872237566108985210885717028527062595056874929863985778254989886546404353522686998527658118744046611235790382593018463008563720779549499009694955603924593404937231148974242669929211019574918257408649971362430240163558155059264408018286203607749161716621092421423388534911494455213821898882647676893738141675327761910451867064101292068545876155566314097207559702065632432253545568707025903737212740246658672092738514637616047615409534243544763506980231656885077924228522563981971024387000354555243470761299800481454535439261842193334612259414606033765567182170301896070655316795816565902818239638631577453090216554379510979454544943089821562997328033197179631332079033810728595547897054232795784655478331874139925145794378668412842414859556810852411914095241636135207074188492234171572423643110088719985324634804938508992975466059638402578233383456164394650930930517605033698379355279092578370476284081132467180970463093531363379812406698386357395953210605485714260246302187535071028541461222725322593309660204856540958148548221519854367324427560261839089072925120966802262293972278633059484885526922761964682799368609794671644643829081578913756043119458585627316277912255536008455634120560947525618277278211385509385142251711613587520916099815436070797248122142760236786963084070925198670567450809465909098805861029686948987992535271738458667707980862564773822432336825103507875749163750908577892668258742304272441085778645324294609743211830303673766457883171009626553699568122462204739687001457068934856753677028181908574631020741639767034973645837528962885325886317959089827356554494290888923783026519925041248951152712383293409280300252316029814248007068456253301691159008959292174713190155730979497939673351358772420660233535921126032968206146238859836638634723140960583653080439757760668789550182574813171666182551182733839020247290401517480096600038801196864167185493340890584132031718593754637434306040531386844486471892875096139618774006692037629556771347251878574610410578117924727164554875383778624324755546201966346690379392166455107087973984671173094627236342519927785317959822615019988360999875491149363724898325940263675565119680822528510385154479984524315872298858792503432790682002727419675366498164456456637093505170498233846171748134528195909984735445894034635496257909369619004925231174030918224789043741362801060708499669181765069619608001187456894796849582318517228556632506971775334369725144487952912195544018524396741863539011449273689324990530559711615221318679415788845024126331050734065040546344760795581982304225680386860681181164520467018351276170112708979251686417552207133558570283470220114029238558749972453756317568377259471133390759057599355884666341246091622040632220150269736479558981197246083042436567900444541071043837868512430128558844223474235305771669225920138284612218609237238037642294930459055943854607108421648763595449746976394024204236538729522784001928821572704155042835714092330312152521567915233779118196107066722374372699521816294317288816856637179337934000659578143907459299306169632218136634691085994573462431956025991618283622200308546126259427752029707941511476121909231149340355929347398377450345045484144569552137086355869959368204217604718735245325149639803927488472417142180769627582334055925605245274150537519068971401640636365680052535515713723052283359437309719334050648619590498082743619226283340048764278178268884501354161469068795124467951450883276626153723067074325455414552670160333255467009628181040648717428941739485837652619491990204651208637795697528259167597585567768172481725520073021414106550939463058444022742245862455140007054897960137893967049838513932638985642189541868447795148614407003316178065746066939974764788670292274078426692219698903076369294312586012472065181800777360711559548882837742415998345843926415000152670686437786368032220188184226499679059618233019425181921376235822593633114143840790663457294713851845395127925434280298832387868912947258102992075204816176210387224498851311580736205119255853238514179171095563648730507487517426641629306472492872445792392443971042875342805425842842625357490331823608017727421643075326633132226497937595720836304510183151790121676179552126666522599792677972022980114989709607092691536836725247356434240611141485390971280164111404124056635482208469764499002637560808701425563245317145324422901378187197352171320144423005611289672844146255009104719170661534248663354131709924766555802522334171327148830133543176954063681200204472966629999463071433083541429209606113782081902188059713570925602946979146511481776354299043065095818785949120391494589408206093445244063798337065107464562000532725773844092495101762285303432079888780660963386159279351392494882119731487386265967766425011837233274024067629913423783489601515558109688596897245523224017497879941447005473914456997229253333136699304002500291153695349432866477863453287373580522604374301100806962980481572331595558152240961966140788889571337559630130891367957158428845440724892194898765411076459568320161672591660572271278866012800795981945624886765399663523172031295606155999994880483277386464181996101898310337701858670833416135566065618007206413458463555596384374538487892382116189371062776152722866208404899830633975052170213989786041486785760908326395118296865705223253603224704368162067061494547112753339312044058962072749593704185945850038361323480036661233291929039324648234239379293716543904101498459420089219962471085601602479396996546735873246903423638833136125089861979120885776867136717590629350006403589295912459494738245294573783306906514997187344019246458973700943980926649789220904266261967543697010334284945118558224732451128679072855212130982034705892519984655745724438029239445168170031971605472966541935604387056045359450471126510716427672613819425696855046837932684180800027102181336952830793405659234135657177156958847077762735481251389259229761031628691242426561607748466692558467927394285614782815265509734054354165198439037071915703153363321188243423057515855488323216042758764603815089738247436250829211827872501633636176217652567752748375849164154969203141339037159531181404264082930101709461667466844031417440813286605281706532598546087042592290450951629893839271606053217272756458635393434909174015446676568610292320603110329559879085583066546411775929551740680485214962863396112739645536326653258625001884710173457321140194001833424561408785624573047257862764670974342335385139944390536209809535121675418868012813285740236695490618347732272050405879691836942423493410947757443725522351441533417857365884484211720763421280377122766787501989303937380276817355836613647895998878041948855317071303427893714744476723196581723081248818787419559769070606155759860257245287101788739111100986464153708482322881076849659783332974008919608203966821013121041922861841946777592152794509911699429122624546921519209351675966652169272875349560131944610464737422993264135411971031071962481977527439923981007272413017601058498927168928489452169124542871538742277943176583109280732914228418269115921101601513577633078845347148830137180658644796561540363975550350331789994523651607234319238846497793806955631859921718433704906311603441873035261223477314464485686249225895004467687121443454280978493789694650791004506782786264901757441241639159516297334138467545506791010855361999547328755381859041607475006328518902270696904954548758780760751184540774647525596283456340867400462317230431708008214552841125392748309153384867786314645508005545715532115295111882825372013832973112327453036748633864278603332313934307767712799617042286342733828694297315450214512003830454385305452796077357681226643533616671606976699495303057407831468370458483158582179513904431638740628866442946289569007031341169165755487048389236609338339570679637257065354081951446671546720109034396493248897029398941720909033298926881048195728627957658374485537813692420870523483805512755928963892285782833413003564578141297070766163189532245396240376420040307919259632444781381940004652187257480202054013209194757161132682538176147759456358942258524380574423997201831977408002755438888257100804083007145451853931554021922883068919903115440141214605643842860315833117738837427998339642405322629490720334241846203521392281991724435860915162118387910948554384200942536948777344438320991829474239651798855869391536575790132278673811317139758894799135171361871586977010847039418207284021873448707634622904448245007123261665080217887472984026848546620298596153033107687985441251534615573004361598677091062933124851788704979785762591027587151088949197919639837076262111919447487731581131171267248863497308913702482973699416636908268209439482903765084912850892663906391663056901651530721924787164286493087671027945050496639154279134421171960297748624980215442854153049585523657701608333620866531492185575884286401825070963581232203175542998710499964427994244576435261892377360109213058275906809718800624636869308887238684390314965214258531092184900000374177674835003591695710630272698486230541066330742685410860835778474161012914781066630135260417161389410052725850533277206248087835083725098185154612856522751052875070161345001154600468096584309479466947972714607266503459269461678429524225460286798711907517334118175164031138987544325217312125162111482681311658002671734987946619805661740913316552826455611353512434785409366674837971249305291984422603714350065263088170516900061413285630545091739328822242452267219624628739968831158276455392085737885085480624221617737866815162076073280348098530244934098911795764996408298996372852435320512740418347765195584135985018856388482239761184838529582140591271738346244156869452867744004585958945361209610160100394328452462902224610604976646225843720963367558228351368774647697353912620114517588676798954947947175406190737854358410877451962979917579640652317281047125376795223532847756362920559244837501374748631731069574067708516213925430469592171292403649117800957949505329073500636227375643695890616722691607336291584106786987593030395533596245824628077156994651300412957945387764265367312960277070347055271546998595984098881130978677729642126793596216714277735479696749790842263722266886450156808519433225855652522428321195369590543753662910612829066399078435210245855532669397426754754527081666223482871254560922551017808761175985923764962895027028011993513570119511514069944416886179983378315466432696685686641842056929153077189177538107927335738868885788042594233620417462705105578448739329931715377385757336851644391045177605744152575894075796263491241133134321672009098331032505092674969159740793900745402274743743874485403306056879069000912766596406764033381575284457279098781648277598585514156724209309539733931675444501393012108501312198333752226596451079941282652611565890243215451146903571099439049048570442209796248640797855208100129764620911268193600045413222473709565912313468123718794874459376729691261679816645866209576290697207113772650897718883191348062197512814135100730904299192275895610422619129648622029021404020567209686059291569771014689295087381857511326059291130465071132432266534918149874163695513895709092723872438246761782061566007948446441275391614014765022831132460202713515596781097403768338807323328496940315892699039396563514854974439656744110028499984714843672818954887200117152347914173736252348910047089926778050431190642357776747271936227328721405360807494409519844500490122491455686737334306042149028873489208977825294422443970964475915968647565061627974014648527917132306282989236530544272705768096056961481731880350835986444143348918012514984495398251447606788163315565420274653300185399985059239899556981801135047635662709405021875996656178997205900400631137836055734368854002218872325616629065771843568667051515225632677437133506866864373542577829631930751363437140211044776015114069134995999726087722916194898609716198129831827492504847825728977928247527120730670999793379871436563545214724163127427001223816358581944824819581082038500737208352728561924290335429092707446907210252585137334609463981858953937728162768028138666519508926166378307123801891917093975743164413480980871622618911385128178530391062284972208056116300609419101603259329961359515490458477896055342451120948887143023245003601185867312050867914620493586120733040560726975242082240483628411892576349045359647352369288778481538475202726065182688930593071739435675736366670547913531780036300607995434698857362019011728426617481470927607721742377371501353560428294079737430927780717039841482137997028300389021266055721674852343070088926500978478772640738764391266593205286803174265582235309660551628730135899843861076209825811959210655175015043985744432094756740234054866540084059691658130870324585213661540328531283011462044619743198675483296880781615543703382375257906198432855437865205325480920858884740871091107874609537805141837684274344810777233669317992619354982459556041229013198535256134464230361151042740513759195091033549647616289006816106850823368040204138836813277223571338195860039292449688612392340471141510647504872871510234684478249249963064056968659340261043081745709963007797650568235645901287788349416426271463453192088529858691473618678235961940686173570608692334246764382797887998263996742276232164482430812750603912929930336085744270277388333269704583350646384270298443762219790856663424303407493133234059307036364664452158293383838844389301562447130048112646416652553105567507796107799063460855768166358480574630727836955021292537776919890877402817699105176395907576238851696375378093025971755321993557604101837270968618878427839953520375577809112520783384836534290314395912218515060305110175829964577440330774418843347404114871303228555119061763232305782398192433829261867255842138158305660067354967700310098129652580955482481609364677885115445417140434557966541236470388113518376800835446099358670466866326642003494702223849119124249554862389337570949431166042254962713019502126633890970653043023522168142475692130094848458012624532008924365883058626693240380368449538961697153007229451514306889252457258131486957800317437214654638932199922925137981604521013388240471364700849669331829233873740085197297101948059091336077508014749963822625385380963287871172583270456292405771092728345995415409401607897261507321371352969922124095296291316487461723034813787622072522391515538660887799125026450754459670710188402396279063830385953952880151216658838675032132630447094868073604348570984152370497652641331871248153246069433023192418235525443424529182963117293622307976719076158440076392870874602287054283793489130331577182213566693874205759864351865024630179473303205189478662559420508303399999409824526894915164274804877871509536909982910457003135491512891374126212492722956856525454817882700207112034222070026997857229848177919645094020916392690610814547809896942022927257429860948072617186569209349118745965895880111078127848668734887541618502679191690929115190083860773026359854334972643904981699594934557070956391267877116998359434182913257842612239421823012572433074130527048698351544339010024647506031095113686642649145496363488935045370347388089086358667893526627382139942544195605042768955813825376970082932814823701642261840336544530762613980847159510871828975543086665211165881707443804432841669155354857543026349988776017471218368496896231591528462115192348436369751353010733191381494145496616034419657123454388811819975616385965817603078415395560883192169914452636877729764944968228190373053564429403450191011390794868733242346794765749922619708807079437781536858101242258871155835999071498777849356960688106447555137181010557288178272291933595411758472625349210756061612947703629462516896666200239405207662036534960544796074007229931880812985468248053417021056171502318880608670510408944902242202564970530103868116827485076759247614042127576327463273484006019846828922493276142026776154474466833543996748235150217125158715700192815539002049590119593431072072286741893295715483527104742050271356622106726645398579589581558319806054323040160765530679680147928429934711816226932320025943994645668522084437524753716913381074550303068249217370084369652658902883760907448423859169245566325254069683517683901475855300000260004400739137958075463268137902841700380810785476049231691482796900701775976182397560778057502683476087961775937171537808699554255805563697449162767134426590749115038536681240715560825722052693183531021586637859896650574148461282133675660450473974489305208444465174847770915329483408227518672705870735231212179852070371779046934843775250389998660364073179447881088701648245927627157943607960385530908659789579565272817520034456499507666375363381778998300689289164755722780127992081503983226548028887884796202762461464039004090801656205797629491562526561860010939911780555047782149258606238254773246062425837226535800879924354624483192093919552839714062932147185115223930105739761606814168722686002606537303678757168369908512762066516329364667668670607065642373710927682360536840201041137526726312704725922388723654891477902548742602980464509757680810508934022788190100457479345675691606370571654351555312960406590867263832642909954807062495743277159081469666397212683075027513369444246174084598830419084132948710451777931116311658979323203638111222878675350774025184759406256261451864798708193414138276728322863488846876443457995076873998086935631407151512422971072299423604627214173910578569712041253701768252658301128723825752266705693599327399644496988094041454256835438286509898066213000329907735698433732936740434273386513914090252456925439434667450134000901987082401960199397047362994111406242284187950838794310646357803590929118718652037030001231878783943184672731871700208213172951425557326653713321873410653147013480153020637778630353202991384607026404101491824108404585286608185063434191636121913860388838554120574626135879382173819067980404100810586455213062580027105512149761012199986217919651261575468652919611801010740849185942740000759286295608854898884251352165720313272144910379803678711643558011858459658321124818163413372982012119616922753834743845995044892484506753198313656307254236416947636849944883745092234462185055283108288378786204651370782634596810645070625281238375676440677010930439079939881947293153390400566480904378439073585234838174227325226218868454133970039875769690426974597379416007816586735276208206520196168920308653099349890410492335991902747064970745661853668510090876379298352523979657292703730512252007052734764067332682316151215079559398885094862134768943515327480143692282574874986189915340955712667672684374628968313559749877211858089767886375857246610416258276866998442100007362827476924275023836739607359563196408113202396142712434003636947460622397528126621125923339573235386496622210652089385054101147131589193045922057079721864090505842362903390660357620022551579831426582574909983027940263261062336133838786896933569379002765166708256603313737689159960235661111986610562701015140568315281756263851665743437138450802943375341595011888199316540767415747565913912631983367798005436142144709361902815137536277854243506624072981621515059101755010751059102078258010371983077666947161310817942772309324082080216051238828180284774335060216133684002612826838837405072785485240775693389006544569291570273437256340933084682894183181187482285202919712906866748681016827726153394486318123456665957169601681641263859037676567658943415829648056356457786987143248065161040193370110317323422783566582340032604372943705259251814539962898388893328005923676476044813664004314274391997431196882835798908859142093776747012849252542215184504425255061094670785402925334431398421038390093794067253488207766054140106349658095463533295970022327718220483429138753371222100637986605492132272205100202031058489054621489321327368110684881562051222524034240246806590046441703975511928142875103956801440396727688879920529022902444218839055206212733357566924475393299090996102133112370539141812686980674477171230798310851598480690853625926354381801275493624320611282633493248645762381965054419566878171799449212207165406795062538753404137015943534903487779829224220356449933025209880320942941446899532434219874627762487997780775500171974928206215026241420900975958998947421022281010944323145000237689270702119861517249982192785909037854979709280770658526875247259902364616176894811147461457118652652603390908812876199102373763790357505172529095261160910770183317296347472560926766382269052705967726979421195311420430520155310415259858847359127314514640766509970059851861565257952706216895952791545873478874331877479164508463361493858681767476909997934985627332825969899894143583484926937560896248066857439427278505992378282100344680424373303641107107908644572630600130926396108246599433507237686181904441436469552276940689500979711815318401906442812469954376063233195962378350926448573712781827458482302779207746782678574396356610031702762679518364693480389522016290440685611550525847740167206657266728009071260917742589320663392164332100822159176379319658284225093401067392168666662852759780094595213845828463260392689215291709400486521729145631523005696764032795804033033616285473643176718450059766490104288204486873058653048271531220771947005669732350832571859240523663258284594449080380967108158345839479015916737567582165579229334588975690066683316116887478697656773908019496831682356024959661620212952377523510276697297001905988430947049648290446512821241951974414625627313721130314329116800253331179542527772375770487646572952210724009184802616494882544235821587464744667709869697585401682790250452531804168303455734133748480350197975431943631502259179962093528209552348226767409561126127123854212623200539595924142107937880888160319815348042224059345933651205402580255919986122202373292082371526516132417190604541377573060026704614777676453766978204793521712189769682071104819961171887088879632955892532529870642451922653410636815013228355734260224692576895764908602676866738530137341671735391244196748287933513123277755256987413527176304564719433865112404790241741002964517226362411122824397297122821931791331052043530518702156355382472245350908010960808372733436032096079558467576449398743470643114064611461242768343763806086866569096619432929292754872381470405132366241301604258362020151050410488630180503952362181096871821025929030452753154170556943903916546280850058490271481014029436214464853906629981338812438431434665318442800311269129398232412510977899191840960329847092305938413555985476431208896065952591530281430282379248455083890485753062654131770012510812908512104777351555770950906997342219599443691413750802975035871427088369014730869817755067630579614437405125311249048762184027487474710042627740463522211295392715103943810239163443714798058409941614501949857007721949119802309606555840232627443138377464380603562372271648072028975393017277676254609767432798035561160478423401176649627075748306996077916742520044839456558672738483919655231373295256677145079971146362036371647673335797113650582385634750061810838800364572348451983881850373843297905856466643307470207787701557476606497605711747769137880970275190932469399116702109043782527289322274915491566555364331711561478518923654494151466182435234503125094004164215206442841700280336521257745400831817062029890162664774216560803074637465008014062648383320255520854752152415004509207248614941478971258081034310774960976562739850141667926868358163153502783573892617165264067815684458135792945807251624102303915971868613611143594118467956424495975331383855002141790033984702720066712411878980502522816999434252381309660379613687436637246785489228970109269509178996549327591078075363818486921918006069083570520196427460041251158232632553604270751598339267363289117914673863502149339377025599992893905643965594738427221731039632670591217370844558843674576997897254231191307819117265658125808651615055471996382227026869740752986582050235299856921660042230270902641628480142350527780475474880669958598215835154228930099137598230070175575755355797306606800119168313825300806214116605825917270629488908750861262075470175880329041682103584154718257892627721894901869290792520681353829416369102203431716192943237068076262888209503925831075724948663783702283548429645248680128072221293200892701203592264122862452764756016699009637587814787167785686395260363524496347695995997621901040658281692418582235525725720229864138908380747069593259634330321537335448182567593623940498266624186920100111303079008142775649003488373194222021797078024470103879323679366178497691601293405537496789599069176671570577525705852454071093670455490413492974629107498117914174540462207584774038856577088223189703227973496231433416976381089403439087912268630852166625651967128780037934737935382918906499018226823386124904833244632904525168555077747697246530647215035447651406725053264659193626746207470242070205331435235499311080375721747948458255234832369951296749397386909929008231298288252145894740379031349277563269700260271438110175181277493724296013562921565379229697735033121027226042572678608626154083979297761219683350771311182155265124186603325772959978272970248634835778944725774958863777557005458913138552559157929302701364875571973750720978005516682374919822759214910295005229092587808803746506055252269343364591658826513638161398135553345421090413067548154990558875097796898964796467602025843838596292500760050419290213590697104230654671371877961542512442798392556829841021101339614502351599535932286867656964960673573010624870059419696469206137337289727402113389811633846692348571133208581605223435760209446572041049526649321291905325760401170185552907976397643040029763202914489995618941747568418353261115249354912821054465388042415528724273731457216688327557882149581844579112727397115300839066572939308468096657442963739760230259232936434376228109718938269523393704893709972710140569124302734229213109936664924348961467357626667578875911066091508500645166369897776079541312304000134422515600304141336374513166370967492049647845448412036003815982276179650306843335746640673193180384304888275765666272733589401110491126037479968275866766955325958667132043488614490911850237614988614211463076739102966514497769704145986473089223975931095858942128482000977748963524771586109949413082389628364612009371803445625071324274722521728776478209976360920290360891765670043014688078789486438448912751548762777587777528959751646095028039158583544022488247282502443072861615273091137625549179210350580413270640056477959015197496664139706443454085847801085685406351051903100998438515247510563492859384689103731825383195379350628538977933010272316940043060372260042463542372462829354213554902717695327718769466035687953098906950207467113807896213309417696311948575845355550516758429284832453676833331752390999812431465870045554555022196351757992346358127101565394535948516512971392253757488374773361116714751186705561909692448778298679667805718668555590643007245908516244729550420230574828678000328189713145141417181665364998830132682700256620756976137649162493131399788236758630266219769652648285275588088531592021793366537279436342010417257540669062287422588030379019395175280694964789513854779539867541329443237056938617592497518768670021702256264130530202399945352925574789520723090446914124718933745667721200037647715477066279454157135221332132203725787400941471397223418640665186464073537517814070858955878405923352411902819323727154165987378963136696775423547560178321566242901889864100771114044802995050721855861197787461755235730526385713131221468289761213161093511767748081663968195999380727499585244969933852222430012524779012888017638263266943588545131154557354215349030083256285695943471205849613860438746500914547383236297005749287182323589271492114682434128914347576473496354747574675584772038747960485146296291599569324884572543192249660000981325736771970829216698296271715690352391536357911825881218959763852414374961877142457805822206950018888047733972208684298356756513479941177071246019128853227638221256734334256681823177073506391546586953143352223081984704729320310786418385125551644279087018811889724654458124298710699785059318899869250544166922662589060211474646592036913617240095419346805205651907582144428657038640231547640360346356071788412808962330835490694494497078643363499103060719087250625183712169809511820273888274708962968926328194233464545448691710755987175362357285666304241425127687112454297774707541191892596653798600011770660732754760207590486335452166014988424341548655333658554899523704872747335272814642736722916440756798767861890488442362265419021298586836507439469999333232077755268772700160558686140827985853408523484270572700346493134058092211331603868644366882894563021935582301035007993588736124618073435032492109038471614961564113108169142281332313078029648922490599264088985900089360659213232386263030551631613164191871644184933773461656395191470199691551280307342108389802939661053804829551543964397978444011943487591523868271193133581787036500695929793055110765118286558095296804327300253971731779828538663930447458072012656359893041720361265677747218237301848066384847000734595534155316180475074657864670907760553950860142012776691375624968957895100963841819599263788969368275276261396510795995201214540164554976586428107249753826461395324566798888975700348500861666700891014639242427723866051556408993290541612763421685874326596377824864228168481435914716775515813979515636849355337397263291968998142024401570699164798952747752552515525552672849398590029576496915505875590641976981447918866156336550170749951466032763630723188483142396734308567870847330586817559513026481693328394567623173861646819640201844611854076002989278700285314930597914486460997207781720902587076163085221502002414886845090074285154772754684379254247338548122835541138901657323120246234342850658576161336106486241781509429310713730702211360876755546191320359711525875897110057622630917216106303818974430545753024862017651337255651705033635773976310219468416933734190280463121857984174898838601597252773441933897994089026758198324574614723114226175366854338338755948059138371357993336221001815623751090794877742353871538635260974005310624457794132191443873731715519438209356241125176342301030891663064267725745389816673613040502523327478079975049646285606626897497176394764378056007092090234052097707463032100942574308203350569228111665233981138172821843153452850843719261628378786853236332371023335940205642498004496565479305737849267716831183846305972060913467090269046464873903885419315664725027625018567051195923476935639834660971714626167263843629064522469343183429271187333177027902990920655875789239841553837183505122498205228772014777659554102250937481727925314086565248978444787751120508267449714796345357637577859873371744097202268798385444197038967976131349076723436556119635848370185596876087893787927357474944655640962895471853129690430431526950760815638332388002836228462658238820685645488431451655328540005778961290766366909951119969259491870706290699098593579739641826063760160078496946585511710215526118950764083765507257150735394834457976275852758285915311964281809229107079220303024783524591332031752746467475199860686121847705893856444936902370179051701978455048896213427963687949764038278483702480148381677509581764348432119026703014246369234806972461104674607187687579464066629221559065008050118746843147332194005501682687480286823653758590928970616061621950423766164560657050347915040041360387466157017694838738298831705977470993641065341952117096506589302523767684510356380683133265065343892660101817295501689737385611701154121439912920676733328226896639563631277958305540839126710035685058979642373934832222151049068076758737745443967543395362880922705411888069342386872079087483149166588869194261072104023967965420916252909471963979674912459645662411837792239664363984307361543182052256007184730410769017474391117487755798802601844166111970335142321976866175623406033023879953978486024223802615105351850902524512207117409806361000403060207906768678647452401484001021968121828417228788872165483273457984923432896548825997188594266260970665284042231878664990466766397911820265904057252606824148459239957454565697669635587420586202499119585228952182640133015282344037286197789422311585407284423049013558436044463428764955442770542584033497696769123056430039538612636421597313897580434624620407616162968458383407137642980771598704097923168566918874587921042061658628191133224861914036470389071927690750197286766208172141039063252419286751332680124439893314557295109016449640812078806409699375959763910246825078048157318767767611755593125307876895646801756656985333642751363917385028768133105318408351593968544019264739676106624456535982938179111518059831811950093829643506190283652560478273765042858332561785032125504814219983723147325401132990294309598014796438898809802549803456823671862899022371623458012863394561120455433691212851872213346666342174127209308609898940265962045275319244673987319453636427684599643828566713643649265604012395384003828761050352754171916877705045084535252614602690918984198222226854069670018043515893546073388419621710015423282316816873178627799158317412279113129252963648053202622507409795630364719153708411354377371085507579540446638181093244385424780744563295126488923415621533030019156540429337777005206892620117230458802865303564039057595369998438528201654714497335872902695365392662355792304414762438319617239645269501799753724868213689458268327148821673264599415297985136392079525164576002117886345571662552308032387330003830530577062610735616367763828999622245320497835269482817489754945662343955969929202946913016512744670537075543493251017654887214753992893788867723616319231971562788309559661693319913004561801497496672123006676565317539710799172058250778229585198739919694412058661772157416497772366651938260258476962125999306861025304052168912201603185961024048943075221580758473274384423548866644854295908904464725270191965605480911460234089149013737581881930933969970453941451370293266271867627044527774313584592915896004323028466897108442326950518579769196263317436012700415788597193973177292637813473369861103854748660691627143900916542817098372798255823535785099978459737898229727181686260480611249681348320165891899787169881737146076743650831553687003670436833776802810389244630764509352996116935989815832227063931805158998262800946922515427642911656630594270663840841343905532145514778220057013239306387859717147571539448912303724596681042135751668276528034587204363954543939549457463908492529822065386317781365363082568288762375311736356731073673792606490310463157252728442891520271025092530143012019385006775138447891862616083785692548831961391619227990516940536422502816528411746095426735015445432434437978322579634153722112897993176634439467709134763746229760914659888817604350457388853121957174576250043825161997896347077964715156026442412799055962282608646468002845286683379375389697377822367072293457907367777288132814567062209068003575433658252523809626169393917622189928995512963099300298510060654588076105861494343940665889012951777097562923992246807899362507858983581174059851714295657381440597480638009892894355815799565967879865223119804849648695822591207476924585928206424597787327558985605351368084489531569842574690637479915229820472335361147959850463509963065265869884322602721763678052791593271727391030038612544009180248846485103944273499684375261387501106238786899154745147060693400423296497017524156765059071231961375524975233033666476784487651108415899053221706629110037008607714642509285486649520800115383561454778288094908760990784106626637793682355551675494891488487323944554750180723090115185630698241189094995792029799826202490868075174222460897900791314547345724216159467424775566932130558445789847886826173324583026162295931293112259076144326188473249770836862577382787401063535298320659864562809805455421954142535703917974748220272751079414042898593809546664998398895436137865891198796807216179584709858431248801168783997543103094948581796495272751263960438343028077037787494806008700678569416894218559146601642529456891250087036411889484251919804582211191813236946477758897368678742167700858093220575594673920890326056647815477788268728073090843846396744966007669187409836845637394457093935078965048669742089282661834269304972158041173017561155918749383123343733292882361500199124456496288943139359268675240119199085966756946840727506011686043067281814452556562209656257316632877667552388840818125638338858267126842983557572844432515093131195483367658165609173601213060168328718825373302123766805812935185924790040093427559197639909584298788154834849170103629990928775181898953304619365226729474704113666796829200463236213427308491554598169847763959360814716144717487371468866588658477271583499089370437828871315497888814076464285961919091910017912699840775243607479505999053414737645302324329680350251884931864484519882640222066593102635890614256038287852637301223538554196157345829003904342439336515721174362067904637723090037396796467926383352370140668532216272649831686143020112858142568806914827962259250216235327239878816228238545409054210626740297614234537033433908128839055239107577044549845737927086596311004518584706687659379274906664115813797467305784935409069302929949170729585624816209374508176996109069715687959725099175465935900650651640208026364392900668680439057800799422019482904175663220297168280955865189721803578418745418284026274048204799698800429434687034742517060757397163823656544607045529270231749664561899296210461873534016249489594467508218572301868860810459738779545407410868438639482908379428942599775680175582549251668214529091826166090377054357894992621007417039725675790804642083547693200549764404029843312389271774307220137348022432600022135072188958124813143397889375262635673545769487153902691059856985760347054026413113988444828827383916575542702738085938030094014580567787328032924287999312245139009363710541291962476431367799681226618979188004135983155493114942299020117144828906608315340153664948325202425074676758259965064939336208668387815261318574578322700816458590105938096684775657867852836803184541516687065682132749447057465642374379904884399512734475575260464240285638164250507399273807927154798705077538670752565198796906768245556821693927958436664633061096342891591963024054107597297442394311298102571835612163499056466447313196088200391331051051736903385121857773126272302709616473254760857137432548583350340672666392069208894890571029561549167248009230085992486512438000991148797896175001458702642598014532317506312033028636931957300788591165907770992772011875412725785635994151723069276346428783921883876558459466516339997648061470607466512307396973646972497731458591847282185326223893306481082986671288358901571657776856048903514181181482742347289041531291069557618657475536282602597206428381873418978555927020101878768315944136377795605929008228877397884006918558056284171466552737266849173132047689335004304730291398227219944816074385231994719265452499420102287643728845769680193698622871009857042072618943722560988146328867028581578470945105581883465589256403628447962487291524020975444827654494344336280416246301345421892585447133774515152090356555175777459604619875709062916510804993788216866464492022733847365887538572379197546474471821332341021051617523271665467372468827974488294226143761108207098435906475901988220355968251663036433085259116675533561422251423071801333934409722458045732761348574304949406477752472433936140952657772507310267956082397337670225838846034938012893580613204510146873549423354987074948475255353470190428475091627012967299937135932842772762820342664876972863933972274376002038130170450732894218782271785582093748349792571284719498313326667714636044035773177005697929067295994004073212201093949134165776267666832180906101871160181412614669570447393550325528798455450986067839243696578322349599742654681399018437017284169279477786293737132963032329223680649137056777091294614461333200130231233478243018784567537097765720189856973963093284494378728914729454258597253912642994809539516997663834660277401801993786078353160743582179648371937494854553049574437485136830006770527992128911480779501039799392584464526246209458053357211381027611361487730225476591997171772335891434069643309943997785756940627649833731291240776886179440840929804721946335929168963472500044892989542541363076201046752370278674887257609332957500072472399360180587430060589912073614024740258863112128581143561553158914413669388267728232422077244741835524607590077668762122536646649339398217975971481074381646477906405574257694136211608995098643658031864824633507274275253068043863067560875109945021249912566405086246552475277671314058769237085606941593190822551203875237319713281286015317897514323805009406491490642236693353007850813137751753691364153974092181710867845128476098271683648911657584231873054468422678860387319924549772283224802370566298214315237326123110985381192258583565316521669923487175646069638597369426141516473378082304068635382549140321088484631288444560879133390411029607753640770787750004898783125141771395647277454851895817068480156557576775898566877240749672625814611032186909084749770830569743111006540715553242988766965479327923569173541133568012933810212904903424313685775857523351674753944287826697590380926528490784594587851553064265967927124916869428655987734893460937503506706146335543357411899713667189641336282582358657046784513829250201120002564812419199504825374071140851012028855362240381800947159360983000841544643026369894679862072273270452007345686040894182861784317165576634682070793352864838566810017007541671440793033277145294767237215570650874455078145392253212029418443886492347049326414231908000148861189128616639702826421794198145245796513435485649114421051938153741373572470668750285001760986934391076231751810993093171726545659926486241349812903128975380934887887055305980515459082571852046665756210382591982193737858752856312173019167959186111817984345679958948511017768962617417100110941653859355157448614165322536726155312002677990448083118060156483850827485359586098490481781449254086513385570084753807466022797614080011160252445334561966796012641038243092206610265630023323994016935321001939117924242750960908118489769922280684858853806349495422789328670541481967917649823762783368967300406581239021784202140759640496014458826328594643505294344480390341978241488433716240697994467435647375952319431565981048559603847602080345794004601930856190418003448907893250317738854248243965858508989360926775303828528625593441813935178683425806433093910957392754348899136502064079982369090785631626084309112276420183127456017275510867818517326589589699327486697725271390673370693764045860848074413566848475940920431421531498382164095531914190740890874709751068582780402852085366189011363665018580718799488566419420947137569299452513608503329253644972519801637900418656566382291495350380347580394807352787700513712221914198308682812935516573165613812852568048086135027321721082821218455179198628312845887021068987188709018485969943831695244737339464580977638684344715390495353812925952618693110926809824363876174046918970416784712329009057057718581323950672489377504062512161667879065696935897735938110973860097700088986866874442205449459653162203640346360565806813092189816859202516162651533712314118968574369851377132202608082148757163115615251416048354760411518221132766469160552918655794655154493221517684238598431190624522094636902989680020470570060156039795482001325465900882031006327320889572372224731322729957628160690578065176082048554516834469607418028788549075685955088240414585642797539035077623891002627761185004586415595170565441720570884197847347311457946472696698777694410538646519980441067566437252668680025238286210588419390406970608638539732722470286554468177282684148176206603712013961345285713069585179903420022902762421467444951519052919078502578985984243064485891064261209149196424067943098275479316202799308305599097663668067529940873366719420701009700587022619170746619578561280378822914987517081799170136593036647763438837849507682705046546449698375571910353310390234977058203069612725332107432675981067755249233822984044730284773191273081214067011166540666740913693354793945185359757262982577145754949138899335783535432900108193762587476402545861519892524156740904237634289713404223726821849302668085951682122022557062873449697948094908006645168873268039152990670174461285199540071868015368654892939315894695721013803696761922580328752427092890855787761685392809296981937062041299336635906515185502787101816055899713990729331702082547471442547129619852101664539300175205227576366079321655544168654353919995301344715005611781069762969207133103419368275597768061215686696177632431491364310973835176189323166922638668635437630892286518165526695269442128625304270884237572039245167758779568615945538997596023923850673483207623335125965365983146736679709986809920887597454861765123574738811182605381547125086179691540837724294520288706369494582620216208652860043128906014689258634704031849252146044740595829344971370144107620025458831320004909546418273873975259073723409369349764411196905992981920543052476358722922125866969168569971015066070170751537198489172582637996974899210733207852571555173526082802057779336790643617121284068959855779020222405516586309675112582692940543500968596040159455685014727218884880654763136290868135192316175691534349696383145056904534911803816264103509985667986387855450225056144921316166097005701029061994745122792136655971375540895041806053483582801185316239833926664679850777031015287815657794587085029329748559695376937180906376369621958710879744247652828661635952463495117006368875273101738701379502295477574577520319457669054813507851730959733575073784779341106284907270334334985203004296173987971394387977796944856685188111979398043528371084263175434941202181376548619934495339257027676704495974200763096066068288496819624134255194695622428629336689794929539615153814449252318156604570794755412384937703629819558959335463519823124791179262543601059623192672979007722399469051050865327344567379004064246594807211164337575075086641186945951811004879585818521180260341229555943302704610486896868770613307648022957065272991271919298916005931556820781898925127122186541693090287486201468205280345772908600152721639154013204508408635478605985300301797707198340457611276191744936836951432508117565932667863711352126166492675623685581357159958205943558944627201239405757675794305958335201143290950828674301830383903638826624043872151973930291650342690372587422039808652552349856170178567354491013238225241536838290003885995039448450264424541302640663038253711627943707881733585870096623285823106528414839171784949720401844985555937870570021314766897749373783520835600990465109665634728396516406966210573315311026096768590626419102549267007336950719334125759624537426033025601595530729876685873015841581059827940333449046428594272331181753716426299040441403111536624458676730112006576478496308019606702420281044523702444834510188550240849882976957682534702688774271069395750611404431493044952344888377410456209351480595773723166934462117607776297803281847733290748913790418364914966685552188936627724342862448321995671686217216591200806164357976605646847941450378861714315466049344728330626068596291574243832904895853465632215780715362145147295313979681712599219103220431438038033620334573127149839045472054366039509849203880412706153946832500010532281276757239616673852630807086455792975456356737407981758468165887001933228120703537257547597734799873855975413223333112981978356731665592252601863866549134799370027280684650217503475570316748121537310200977203892927142032257480419774908288039545858542765285756306963026121818692244502249035956270669125102840125984099867430186343643064091209437617251648363985787282569573358541612264201408904098573482427741813728635994721254390843860775526155870823251634680168261914856544885152051119976641307262133588779009949632293296463457821969746687301800964842228877167891779211964143790160292052348872067536625961872407050623972728690755273475065038530643132579842870093186564502260287779143544514444241236795116723524071360188382597452333752781285116391651823920719523025309606195430923174676622333758988383017261727516315017077590868190734710494970668214318811997357420941095467447531074048928796642644555945061145743833080947271620123302000240030205390996639213407860421208451990630563480177548533929902111186976565719166591831107501936063216063553326378197197038659750360453957967606441533116741342724644511498279687100057894518595296489936027356226429768292783105194455049041324145141451963630184377189814035748769091052862915081743909733147369981191750268405394105387844699508067966296616694100073741099889371536368082078099745390566451435973581485153315646296376139149214466115630248554245490798114081684340486234858677907671058991703452634739676965191930897783079193530979243526340085840421381046944960330929497736750971244476714653967647481088776778905715935502654007153029091129316030146361236712162702270427019597520534075170780242609760472091604260761397045491019110738910671993185275294785914619283177009883934733741251269206597755474927490202094025472481267860706210356115356033564500351654413174136461472219586293181907033976245001725309882531104231056375294330952915460315288278552379076215462861475223449644342640370912554716774409308524546517952254881438572766842126454282464412192608792322574288562854697800052340297543840537817576921756630884492016411001032382551563622313594530093683798129490543837490186759274868896883442498743156609019910236566941241148281729162747217090070073885990085565870781770982547013815604005619351363871805819327586102444069210702589019184864061558545548361424565017241004374339828897851383855645358241327091209133855898621997402279095806803646353622931954273601071956304922440694591915461541326113033706072749629264499174868005992475206354714461958117617588038598497320425639001793420381517210674254129621112486558330595550115237138232989248985250840674966283876458400829072680762267251888927265918529502993057953999432885092562427893589318866780953146720791056130453061303659133795374408908938914271546474190155401890311282942843529326071641232965332672211585985901482411257331934172141782909216536246797078177820449313346172493528060216379141689713968895426922273921278343643429405717932924484755187143261948693312325209811279924652530805812144122417602363192822180293928631920361336113358797989942756433341837050575363497088633004139597497405004440698993045037709845005073833818227066145522107444717222219889147293114871764874352541516530919635455860413027079521582200981405810285112679305495664801578381673809407660714928445346914995261350293828362770319830407943324159927134545593470824404230682850683755022576681139910504463182858524111288904813706095155372167370919488579374389682405912433148288075022165154604604360724010244084049532349863380956467130534018706727267755570828496845849183412693619882101108041931633148787972745902716532400517211492361119577766610226203623178057471136978022130410777491176748639055731174875155922893071687051561372276100605220471530271489957967124147788925042493898563260599389786346634955683596076813565930372018851885929546354471341076482787794680625137587771907350715705953811889809384598377419986612331862343180988165178749466838017550832079165825802277753937131511812676641275661064047352117479735509022510437424071598739156397609590688767110937444136978090291803544888302199086935679057736741723239579941303422196838520400273559373454969544907066717584574901621195906558573176908204146710672824898215030340191574022623596311119833897263121149146289851000312113330427326811081260297842187101216886951202629308676754450030594536797562271953175042688937814020797034209306905323835669491031043399402811416174001203373009071314510648305171999361542708715852087961591543533012615188569187623164776071699713588708734516532626580481121142658499943183515813773265732067483317795262471513840212189634930301777595671774475030583777307342553138705421864996874415480711785700588436005172238037668596306207486264349810095556772882486080462029874923471646391900374152704310695735108177825218026443989671949057494111733154732266090230865124551489428264431483408344493281044114121431223748343096681593363530630060337072621988472180993306287624024494609484674121993507753748718628467279949960902015230002308068094376784418126405022667583606032432922778304672880771237678925835591042875931118652868271909910903373563436592136635679124763046220259952922989111969166665362832948611846042248234950606329707343030071022897992476196713397583669071618544352043054108208807403771068129049572575137073106364602411235487910394079489333594518652522810557407237476030202696404096799589561890111229871053004191833500624049372329780858071957221766872954666241269550919755997043921409783031728037317311913876087723013424534362516750170097598742325436469555920799064825564460943672864771553369321766668948025391349218608073800557033207926625346564060356105098729304271448830590903112003338445896146525024606277852254536133743349925370646746922942049802027141577318072336596385532251629506734768605097697075467718889318562098236354972301399765566250049865896335599415767221328302459184220471482072970291051074515531452334905976023017016876371075042483401064311372008403509600405610781670139093194241281484466072456074292681414846863798749528384675071575801499856090195696974535645986134069756951612106622523261874145238692208250554414232240769231961822487666601140151501721557463231824049048588813968882431056462749889394042885796849114109971837718262403283350645574262025057710283337010615904077748417854054062885400763290947885954686449547379683313829880665435630050624487076610529001574896425123238074573339050985031801279141778136233025451272353224457540942917602577145880283165172853402898042088399165440185432506779883867175557437817646675379183900968258621856093762997455120204166695224047671188180556804511903040245983699371466076241838525392991934590872024334563019302274863877801942330818925414525033604284671247837796844785325205154835053067452431647627803554779461325144113346795561090154840877408359943980834858400039279201110473622712214999428862372840456139644020987402530329995226996899625048332079323823651240145586393327570083814037808041803494764313677999450843509688386942338954319393366221514852922704127480488492646456352916008888726497653927514019263704988156928460157642420134803715598704196206427961055392483941144558281005635042200257858501992862360960586599637568177654681732605751114046625586750140146457878952360099540545090295802041279772434556098436907163661066290779881334039390323834289992422226179257641244768186803784061882088158025658949499108180667063680794704221350374148791922323728013975690359855364394897127125406117434355979993841280623372072332137096184184381719109710791238323905530801041591361884754709892681927063665719369344416799558926950106041884362796969342250461038495518340037827181442980479913056998556344706383946423150297264645771806082515289758432600292485317585247201197504378737241781460825736409738217849877799479624229564085230000209040633925349965908728398649303629513679543594433579867567333141863572582068449879860477554335951941117194073143952954448461644204041642549322468429743056671973247981457975545520847288254601662968920112075203560688262840678175653575192857321528749681281024785389524907173567563244808561563719309465523220246408871378354916449186157142182691482268323424953405352330036396659843239135355431438883187810077898339759389431832360150040649418176403153182614445145391621227772915143119968724376270259696736712276873227184593685591419464796095089700608128073378513812220507846262578835648041034742438639169292061612856708380463376705561546653490779018131496776784707132907593816520061520199762461655734326696042914538855005031593609709170006426361827830256609268845108770641859335277582524890006308707802592331553268259639546900396821475977332688444921379910066623161706799436330678170809833719458279625318950847232470972161672129218140805590612759580694986842681682053417922940279772010975690176866178811449459992901082588919344000213523122325917277261075325191196311946728449776485813424696494566504697421135674982812739948260005166678012411361503097467332334184339759489801320229037428959707583946749136207640757352619674225666878349073647996030690935331862800429655560560843802058537796066183363991191050973493181975733154215855596797372996022738105766949353954473351865255862048657635731341166454268006325921524084568957323616946514817609576089214209276747067257683138457358726376478522096470679092119041440314158067853973286690965499024728052852542715818856144854013195630877399726096960886511165788214172113107545051360395080411227561329601092527055162408158136737695673642651137515990280248516927381357412273464006221608045332580333848861730680061209548219025485866202190024757746436325649660073906063210807452745794330347240574245180308272793626704129186875342176698578229208467336667585574754481141026183607787232628661130635210128183847106031621047463250928509969664315171522446757186306293164934912544421819927218361920386058281817549184112175067774491601055537603628864097261907522485477276341716136231892672483750949431102052020053618303273811972106542720232025065823195405239949578398383818972276410253138124739615269366075979441170364422731702691533073729697440774034761495119534507671369034987735153818965583753274761533621151545898817452734280786463107514872582614005930347251829437980005315861971861019400578931939594767898700778578538022549466592580781872922230617534509674094307189132943043882719100491731055000798237488326316965642484905855726803326245786672846704564635357642423196490361925725330357437630137392816209916887765661946228785973266439641532828277582577015253633621467703338419301434961893066899421954304562076684428810623647902054036380917473467265889594505104315456276445030794747966551891487291192455480302755517315170890717456238286699908807455562304842298966643033223390398176808581319585570099272877249221226323235264999629111201863528709086588379845677807729823662861525352269593272178332383369476354619117369518552807516516758533671967167741002163733851583528150761915090480574522284082010223574335906920306720608225502132506091803602599767669473481393933979535784550289409221287914545864003642074916434421021304074877346521547520729901490902545179851506974512410117698013969131320729316891480803441384076930913252969845065911267036711623888793418844519995374380770978464029137668639617431276350429406087474799767592548445043681475060763958280347303083991919366873678166524382476675007001031792739251259824104714396368316324500620895294303096488215647547289862171892568785517641240854550891836808161200408830707190415916798985751425038192615340473457058480684877803813723947409609579020614139313766720819795223605765780811848277876498987948352141952060520304874348254220789766416497456013181282566625657205398617580343201420815457011351096589792233449673091730780235747264081137666673139298643057923486438931800646430318846595701284702228254747937450477455784808440663218197280657836117253075671088490100534006820663783029366281900604262421598836373925821443719146376445746876253518815921802942361038747199870747302159485699877011108747630295424501509126218595175952444986914070755382860633560693205345975659018068987040151133737001073215009325351379401300161922008088018368951646869021696932994672409753482932850228960638364368625733476859413107683696391662600046426628148889737797758892685037706110566312504894875007222334726829070106322319319863424425565242319622525006111181916594299952785807566782493815232171465317747625771469147035516516475225256872679393502873142365725096009777864340397819536962534580874744937941631617748538725935450084466252875777613285729511719109805015642134090856451596359601519304387198326547818378355178266613958609478529141386951210438647578775178481250834445967071586524675732953841803113519971216534331738670935689070960977481666583995172700962997997453963215420396447754300288059022809898667423142705690681902761801941234872355950040182650355530336350973365020694698030721446857547826812048158802698431440774829067923750201992873890329457190068765407310355640109391754801244099225254144909707565941836062189435832700936011005406968226168879498272233036730009906336408338697720501845819357623739622395017847139301403823116418289450334334264305422376952498862224250212831909592988432191431117195659518681646962360193701528475874515370205721185319831008018526519002420019738817021936822615576415698982969690636332536535722071307783862469963292070708881499219870527178515982586555728058447660786094397703304882632114318882667474393928599412087116445232591866048585437454553741700641680690052651467464906323413752617370619987552977226742867365875375326053092032768773395707364175050564030234511963708115923592678308250457974411954552523787648531048119342365126145672374074430992842561953550927215703453059797917514144712593853706325798378001617100280526214634940812304875556584025225134645570662591374614656486761528148001432823779417242397785550710007994122260559761103562320340432737445855044168139805584206667324145458495650441571196004945452828131021106760225386524499290265713222788056621216754128317196523412362788544666226605179278467946670331374546820075789066608449345039134740883625309748627868734063075088322109460086351057257472246822719650388226846325253737855897152398426189479943344884113855432553835995197706295255175852450627716872864993161607083298708849599060151844867015273842816702914115001051599957818073517905077599913231904000708106697279980564505675377062864520421155532077891205674442883475969394489295173556976201078183848261438395507987048180043087730093304287566753861770601110741044631435200937917890810055663875782208105418461057976969350655824679573276676690129174513085977069549537752553549943788745236500173555911370549179419461027061885368638268211143362232284473078371398062621413641955185373007244410717557075509218245758753034333079034787715859556553765937019820333571963560630660242503125923306671797087446605951785074199866557866995688971631449468498154469148915764046225741608888080167112652137809753139308130177222325247130160021203548888975126770226081675141406999740363519546585613347748807928504387257591058449869990126544717637759370476512618137782740135741903573238950381158915214734605289299908014555357338520347402711693517339102899239043262707387467784682364846146016541435651228135475341066185371021703231551712812126562695790680385800710417907227368043873095847285776775846038034313152197656006813554301834194275106576369889775073347965466051633620247355991204661849867952172147412696922833130784410670238422049907745287483118335102951085010542590919076849594292007002207268540795748297807043146849536848080020586801954563422859017952762198761317977995758627359608297369136669402902902596341856570118728521083923024918373658731367837778765763732492191303508148901585000813073963062126182187649197854789442546860797186069467634928263107377567859320389585989190733435382508175277097484739522276390378759601426186927460541180997087271044080012475587578808427620660093267742941712306467172867552242791649375161466659250931237465557311656917588214111732222936508672661064477418492652877008256421206294539785145231936701984704513993403538070350985993440601689131914029856671611672915299695531800190087254179625059812246608197611288756778850544474616788289264187515617792913312056512373630852383529161123547462252994835614529546382862789134031250317743105305480980777094274595971775673114813888804761214585541661542265968575907520538357462123008717954013091622420070024044496039617918701578679914482060467458755101771774778614957566027678782383643645036824984286877349790928725733892778827014911413486234795908079911341540160743000206241563453778735137408895438563119989214980864724108190720915407705836608131961978209899167583393208439895244401661010415712921164975168718636328093391987337552697766164306729222158165782280045657766375856854044870922769513312790726910083542124451439513882450823896438880375705118999794743078799616498062320197770934508605757768722390386150606979444383343183535805474849056949686390567835884742702105665801180705266317546278551860192338119684669554396212480593456772208734669124310801597956838248085234897615693570966590695053886535873180678390949855121899226200415695460244022358225464204287345793213040340318181135245272316534975099892525439227320063902870534661708019573917351820980463325265164587004850655881784395386198500365197436387496450296370736044457977631023278722467049867397405444077859292587858521552808651681371636275917481451248063919225762189329037108696644455349126493018554251634114462738197357706292737248002977767896859943220121085494250774582498932874440018311178062460991221243959424504420075562877635678310547268643971850510195341267424808649922568759579915917338422295070237062971297192312930550073670363025825650786451792471134638025002781980467722809704563665462326853921039611472949973993537443889451319431081984976637625163291286045033977541346949795861901309652866679615548921867537221276009399848537539565758394315598608098984900933753200836470282041308811559649755717155848549287265410615818627898850305425254708428959064266979328482190840962886282483066380838161525829395444748439181873711687064559290244304238375714264564259420066950390066351869580426408288068975949401741601745822600331325046931036351773638948321072750052089201553039762519098405089827820525720612170564299751040184081869143002708367798239418928853207872229208107318932048825957318755652111549362013063357593733116081140248164724594287187490966817303152511158601411634225675249544996720315425656041622905127296629550460177050207910069621729241095953449025965935812890300660386696990594433347092667421395742563481625316330949584774243504721306077629155281801749038039331518890293428955468492321724333112884211722889006181411590735512892613955944455913308793813291793321480676292986647306205291439942611352599347868398216054568038833580569408169233760242823897008798401787006156874670990762233904974296007170997759629665835534268371276073294029525149762859954203717347860693693692955161481348627896457393066704187508112181867221731822714541319397173456267715893548203365152822361206911561477524316558663999590073217372638358179072677934217127727067787232136730074600911617008034750433316424809619158657590382593555099935289384761566772322798410232903403673235546825330071191943064388233429635621735300243600960424500967550139840905456539428844925267503275944419331734819918169613419530305583319889784522708896154486818283327479927757799719682868156073148684318338138231338829874680122103520054186620407478385998424084691405732522808493822061594154846703907675177547814211885000780382603542308397744302137128744170492067618827556455211338687143068186730022696814079323525787047802670464128855050707557588943970343133123500034693554210983944635006787482039264038301998039285137315810996725122702266093356087862141903537312757622826355723524200553570094703531988380891887748449167948224733343997453627040735049985305048080632785380983136929275599864286140308024693672952904290450313965309235932371592162439547383854645894685467248285456689306075024147611903916463082657419094997182818987978840846812937217082693806582352749332787008686818133742269859355104544847037608942757807774684403082262166544280919566421860399482218906359150638180326108058901214059231505531851630147571978379510378314151378479440316597732978977932630925937950096355933286420365101178737710448317863696127553304263831548885164826951617862130844879568659109903064426146062705413931231775302485731327398537898690153563124953712515986605026101707344253059640477676190691344513817297277989774389832660530568232224206583617499269689003098595841279869445076804375158356756209526783573540853872609240975358279715556399914200263186672487010753966147540638185081490177152526730396667218106099489278219631803155067488722192297611467098590097264156130575018361633477082051637346568386722558816130627523170562146894922903957208465887062086435260808213643459497039609517207635532905006577904680616733847908443731640851651894597828747191185666873787016241015536278456598845953696351956880420146341601497098066324508736926320152022601668988166933886903942786411618590036840723402168118150538544515621212778987981973882510333500178375229663404189532944867074917278485913484792581586619625720226938238933100963162404904853259602640496416283195852199454096270975877636175663976870226171116528180851408399521506190818963810022978453229443541834310535942211738295170988988629853020068753871507941597736504308250668410275174442209218048420138993729076992137308479399330412413362254294076157263169518324139800161774854596948410689998692540258719672321159599816758693971626435645287759729127722960921104404462640860103353333845262622596576992125941626403324034629647378510972071569635228177539840540589823446689569678687962521047675733380765017296272962807951698182176823319411865840328308740817826502556170665740408408368023426813430837905396529736058904295210719279278411008967948080925303359590564243349310744672166448342226305436540737544640609833152479290428057033840478098719519173390902536656898133214707309324899395401114985616821587524319642494390845086755783575757084701107253954537337096103065675725236073394342204609680799144903593849905601440461726313752966543904288306390205388588329016938174301582225862315181066549692091302626529946470016518338580340315315291570717451730164493949865840657785543028892019702707148448547744869186233793122230901824630018603016192626976888832645412525203563135083921785939143100901963575372055455350077631814252625912971638920510460483557480011284769830004666246259316024171196303159938261178787624854481392029591582722239976545594424118984646077874656295076958321475034684684383974214003805076777114674033661790653916907595134043284382372412246933270186520777786153969053539207343937475109816595078985975917000040098291055836320213407509521302895060302626315824693802273029436718878087561938601377810038671634500798200782688221902966663114846421912729551280057190390052776390417966496811219974410707637910639692488423647477064643064675634095396306176846841595696096480827273521195259764196098700916965933081292033616339296459688853912146494261602054070371264418825559287288547764764496571860183383895127585080810296074736480621308164836055929246570279296471770949680261619867906497448371634588241597050371388138630315180132104824319062781956770015643132886417567232760719515382709216037124255179612149492443230403481934228979798974385158494751016017112530361181190257150782884403413018316711305453120670656712424328202666506279518611135292263979095734257677024464367258216619767443851851842201474384096100788649605275629640723923266432085622746900720127698011789972285778080223103715086626289297995934092136851198742106274891108169481198130083366100632948088356632980268570984441277809558983660839084867352828054715117723095060070248037802946658010174378179157058272610695728408568538098912494779508332634943362488121379334507633924234291766645945254443617301895051650606024453996851519647445229696899717407878853653991788115953345154645091385990445007425783940385840231104437376872578393306039910774386817077103045878134224665091252823389721892013026688078960389206925650530978366936426819891039228412992686843058581117254674776190000174027774631257209392595355245017695065496344900601282039900114361058007128028929820285751196284291694990341931589373669068432033903043264436984434421907894767234750864722784218112758629637767096109522206684972015934150032016469272992843283584720414206107968436696218085040801572331876820680350667454346523009576824665620507050110812919080467199923074762415813053837375741105496824502196949683570608196917975741884529279148960392770828148202950125749809024502545467318167341136124200230053247354227327993391520487607936223966994643129096409735064834095324597096429919058524181483480758211412803040395821165222206879232412461601519447962743008092745034631671560442687373570578847603585112307241172980623543463455239424295223391794211934634417429897037636833952058075965405574482992078410540036533161651222809037729633234513398253148383250554509867264080891157265290216475681574711312980213447379239692625600778180036819564463473693119593075773550337403588748852290485110544418701142646565504605917715525648840324875881123397479936361160565299163419029538892616229284861308534625916186599087798509048052802859927416781756172556008989194532777846156379003377181173854078047958176025433117754573836269056725420147369104593446108038027645103478643911281288830536987023938202834105376759721220862681797774914083932536775836559542427004641122730158123386363682526760056505494647087411439296514274092833011880464339819002397938829599775605835324999122355400749589893507587011777580044845385515177777182372524236981776005732638644567899536382761252292179247032856507676018808697517311349763658605048752940130720397157597383805568223132367777117786364426280846630846711386567675765870855835898867172349705143713465905680181629455483714883265803398737594731313027171123407977296043218106440391298300739030928286047900766163873832558441786801617765388973363292388509029652618934825841299369562999196698307484697330565789387326504159779985106612611096380696747493436628811274536229873137161444513546663200138160899288662382785226363173108611696154643808936692097403766422096788630665336805286668647759595774560519972208540473548484842716655793446201603737983931303111591691329105836502695229498860179975607786771812671883357038005332052557691930465385590426614430949154604479565321536107197910497200184506943999176186628411371413432536106060601113469528321106833479703619971674910091778765605270110320271787918220947839394491724470327206188816204639613461413515360547252731881264621120226516151253794945742919279652662857131257119568135911986665866673762116234513996882542713916535729180637855494997054364574436396411896541357783599850240708012719911223075926702205264967921118402548007707531130338139952844092344169642634668056685178511669087238416940625399838895355312894284188056633480949885222009903493448636262311330128058167180837187428654691686467201142063778649975676855303911601483752179585609532971982232857029223208871874557927940400834199934184953584340350605587709756231457247084723316339909336107782415963709104094030896845687437821040841738166190600149931891709752553986722216342812459614455989709990535231494171187904404695250190041523626231088188405741308444231953496153961141146097318490831231991752833278188222136282082719550240482954904556530085800800350984080292725385977284015605795163044858070776680808020970560251718894247589785179300956078002049335813288511937345025756535455105036701730769092373953417031179888166738026305707464909142350416353631601178048207381971292734942223090023025695472302105999394124893253068449002384469570706075537045668132842952176584787717311274817601985184192500171054767528002993766250380409960570518345603199883612663632377667667817113930607791613981845010450435392228716366873426037399428754628635899023824200652313152057785795707611334493360571344691037792477554845267165252562217222357033357871784269445384355951277787027516112693036355199544208977117393572987292485881364515973811106597174738195212924548046529049934216323689097447508303117206857019796744146042313724706285164653186525961447827217594560448903337620032049544154431196992240265499243254733095763183908540207351558141503694565160299656499048405331956618279732702940629693649917251283668801293166506679261397720105084386506576868391585452122313043557890628733861230790829722747958330546490626976474344872068867926972274068256894143973700706295664470611297773013107556012675246486177057886539545563436610818287557618873866108369861388422321956761964006496881050384885316315148820516096514488652117872155883863011504306047441775573664457377167384449826541752722412145749670167094115349773800742639998208890999156490012977914489485793286214527140099416786681552816724109165796859036327030050391853888057561252674887864734230514412338273455491049425883101906610003530691502519995194559327638004947881784029253477321197446803021911797078249918559838829115164017549545008266819480527724243390688307691529661117257135070280411978971813449931033112702187699028529841838429605392953772162897771701196358309443060849620264234681512402072884121770634565197423633983022755451815986400451290461985538843461924663616967193443971881294726134891842372471893344756526333944572965910394603257077051112272982459374950279392710165566030981912397405209041432844300971213865841313158366877086938762593711980705882995142363378306953039452462740132954947515151716879018794039133736654680099057759988587098263618251439454093456306308991100052768566042877503789961676623721342889718072643309726619210540226782076939437369540973398281763981750335791688949875006080212848351094570003495895107928785359431321836873012381754014419328913089301159856790178520645322507964874074052234145072885721650724916882789671463242327260226186374477151224377988121434929039001367913949243395917283021183477379531534886477508859240851011385812342323700585201873731675858081705174369991020813078654368520370229286929776903616280665249511187404943927804595315374398881222717993712982312755273832481553047790105076509166934042377282757553461955158071422745248346839529382231452156916959495127033645628865869978318832077785318792490534735259729126770664697906004340872383551245321890811321591149511328526846085747406510824908990779074541627388558682702734657825291090703252415100109576418219160152913890903149703010029812467540103204343598425428319693472609895843455051613379815260850800073088336328795004131344501540278698252715164930014578003055031197742431555901521870524616057892307664570496943701208636284431818357632904972254883035230170925263728278636354854377274990892118273211869247887748138955861771662826213710618671556005729087545825610243098648265364278519050831959840950466628955240403084487414894296665116289955539509216572133495539872430391542328684002737636972767230808249777193667900798655259001999173157778066339585041854383756348790596740596795405074166246984654108525766811422427903298420191066983663246468072136445452838446044652020794136693099240992286680698775430315072328929188969352534677209915775485829138477741969768659525771090550708567116951483676807182073615304807224231664298151701736532023828843770453538703743784185977512911813894507840315698163508690039091318862089360353075968573703714148625996926576188880894738923594354828997265924416655261664443909862258841948810971100670850827834390554121158123074757676440644101681555576334169804483094856745996875951097540982578859370191660236362302956458751406374020822615935306355319157727935687322949198068195539006067867525961329519762273300498386802622309524097885711053878212682121672207233193910029000644983838447156212213221757729388763251211815240769420543530842753695855280017634790963459432630452612403200191472276863833303209429851632719794335704559837259548995980708494299732468028139078887458184530980012889974601141552174151175386853720174431608491594450613324963373816597946753235700673942347907022846340282953642439359329336728415578588284166053040726061978513882258049018457091557022796300542298375405751541980829843604506137226086456137910512057483420024777695564910522502610788980117594224297070151920914224913188690940084477394711781638576600043250298885078693463055922046402959230887707896856304325376639608371010961751052345013272097334323335386245855378866656136158627776523677970665560836862619339805217288629612642949620236532265941619442338695611461604548112441286207773448356894599472235957816890361625160660049647278151636171317975961960508272847721444098724751192510508828158019071992899407632451062722520326708473512893328941727194890261777372138973097159369300061598127199191680202073343631654605070485487741768676262169832490829072373775938617533575728719268278473623890413036761966193594305785700794517534367855807097417946372399812597975219861600770753613988581754794172435370203017993968396031219534797288150791328740674167088268420556692702900070562105515674680942433217727152684768311555636907986624616339561874960803955851832464683024417656489235232565670395715808469825724025716615349432290936301681235408170925714720552840341200585822302908156861174772075920027112439886293263603212763485144786860869716100552977787682299390786457309497362823191147115442599243125543822659301378718229655973061506029837651713648125377665690819251602958028513592355286268182436951687640876403324974823919002494855033163425345223199095868146698300825254943989388383961207988748659959334291576979457306883757606540568352827347961792758603175191784496504968844916231255398555336276983707992236536632826090282283624069701309955463586010929647736451805422179592024288920921846366110740777773700533977113554672319495831403309595362873183822073862055179683091969363918428170343960514046097136159737207633177061035599771743358028440697545839206215436915493313167176647768984795910164951114006041742084963789282372084040772308572451282477129599760277351045771513479844752028906861917688261534800440985738799752091343035776413595780057312988504117608901481748322792976078155092605331710899322155982234513917874190316728130714675561681926897671096075802139281288714551742900818491190126266882778902989536278363099621173897019441261942996899763409528903709537263053807300242250389300178650772413351094426978071736406511255134613475643679547097758874613377163032133171724130954721063682365968630780711325947635612275033858229468053844698896840575914831286834945968849702242547474131631284192833584398359797115295039013267123588490182794808574210189219678003160711887853649576529889403738742018093301940598600461745405329523905445435914837202393511288453180704822188802692692570630447019655030791940727883756696856799661246884760966543180930792093069752381293177352256952615735701624803544312687037329296313754125852255845912410928167678996581098891025604259645094393903274893407274334966129434290292010190924468888913341989192041224535529514779098985949735317469159160453854916219585323289321105060914162766925095214012885630941401884766746431383936000104509972589534895134934628149801071426465172427928461391793332290112896392642646097506726438761900731763688048770546958384216003724597164026726660605459292509792138797929407613903011210234296000404453754253636438786534452408661007910799818700323212470044001576846492381544357876848665874757822695036090641821968294060906119228197313234586212854487625665871391300598961276100613583499799047780368708256696801911714254878017541108633168667074997459859277309653384729679795292255192996497222019788932201088169928135615805897566332680125188562047210358551139370048486736612730936661539906729180512096940620649069792404403983937702349051900922168572218676723284405153365047349639579436421142226195397408419306304467642968613632814931300184661854997449609557216619722214548887902553417579190899729612481794686346994548217795159795065515410901590023765749398214467174964351477074015097757040286910592864537381918481152921709032552889048356044122856525777274122082083145787077485234074297793253213522611064986403152555354627964548428842081518390587621355324989275406110995636259500204055626481476597376644848654299744397438113001429776244930012995146153736006635415849674001950011372232982305054427851160031445376780393359472780560086761935400919008588324834001557348962583296257355380284117561810825195445488603813445238775376366767495102628524925475628154872650462420703774859617936754181145580487796685035397745182911842999700240450425139864199658217894169662786872719039051798382281226575608913468576552382785646423622795323749931771970883116965772136578690483862497732007884447655650049694759879536156631518305942705923763154383052554373679519549948356188126782052490632714410275006196704178829860509745937160064412996531584407484682902497702513198233624827218616739680082579977285877880450826056458983865676509665343050546062127584769351766967923657111634411879438512468302906048263752180946201275778484098477488660711061505410935329839782095765142568552641639820937774894427948580849295587165195086382924961383513481501822803407552685571266995813915242574257646442168360250376559172228789248727519544512255816941815632180942473220223924433992923268396322855065724401350244778087295101951055332249046422276806989069152269168373382168269779891711278091831264220807199963492962463413560725387941487254705486168328419776074668960657789097402138740385357136044264608304435730636961513695378418438982782261167041842826719858038330633998001578881413234914310377110312202726420940256763148127074379657864550689095017842517724634040683731069368709999776093432637205987658296425707287011999739797243677898901718991612794139731008214643353235428743554912696537856052730289247367074693684506866662172462869023478105816566658920491932861755504606683178629777807025701080315483781157823424784545650802721260454919159431802188028845047275467660788992484822383810804401535022849910947055722178799916817709381923793529284329258384074442519658756418626782794947390956840647537679876855776734500324796836791885789991651656947638903630961066745916632383340345071719040027899838944638641565986949746361302455860432441844765543701490130696535771477140618114750401469026723825023702879337427970932516979768614634781411239205613106151271285159438486926868997813378271677865427469659239073435049665312704547855022727927275714345199916924607999869582493446681552138286284552460477517597314059023293012498658682819370898758498388996812264611510822684450001291433490068636930209647466864423476192089522083743559684422273709010550014525022193142658551857942508801637913737205767397723305555582734933751874058340673822704821090763386065648383440963151815804042103544142962019426714967391244362945003471815566689676210847197582400670114117563353850821820266351026609151473357268938036066391734817035423261966908507536050045598805381186958124641342660694781642723097225423016497324218349749388467456436612950479276928496980401649919378387506266806237290031804605473203391026056561072798102504829684460146767381825014477904824362947096850489198719355071032767995999994639141055612710293618865079849328616566628487398072805088769572783385616642516529948563887406430552342049376695363467328715203373786964176830509880062039781849561424863277098986631814934236183007029199106894939715808671409181875189712930374117680220623542668472842115689982487804187940819771091203376368377940687188119938897725029849908728263546319179673002091359782322578867590309310629529263757684944854390328739894265023445956781766173455699786101032486221112954904158967655741789047819666109948008434272637773459928525185207924418729097219588328451472038893583799305810047624501624363795153533107678071448824629001004909934749354585482118156394845789900153271222671876426572944839451008391508818186407652801464137907582360110450352553477716288316241625061801723110711143330713731639814485676162403624624424179789383933840420418139442513246070014985024098391957295072294682985768611460647121770716730174196695183681071701574141473236997231856775415954525754224772670133809321747065431023466357618115188121252990906555429343075153661588013031178572856563643739886228526547989110267881788472825184644198324862065553647340624466921964156132594354120536710123592650769904135387240636507837538677234157040828089430713654055545936133727574911514393744321682067833281816992454085861298046294795564547319540693238328439815916196853025564281445036715480522411796231489530215916994214106802983590082469328512390860734009727702927683402550562053365576601504184545005753944614887362983150244715308683469301357608113525071345988684917899267447147389701508050105207551568645727678161208012472756096291245317220604216648707328722507637784839361471526904939344929840735877012546022577395373071927424036427007502655779462280382353875908370723910867924414918989575322469549789398434640800316438650662777183728981878953052723664215717663004301088500240055804100467048818638160308180334723189847289137814569285667173722571577281315393731953840394552070134016673237599214917934122970802004085636485661292566614944249588069552327850488157976410436759122435955692262708105823580912202842249963142075750255184884398472356751704278566024872709521658669311041382795740467454555864935159238902976157440506289821499019628966062267736123000700402626960403389482261244842910906408474128855677774783758125090385618040429087222381841088065176193139102683315498196540329331193706974168193323716507623660486521313726950922809083036781073940179836354669961874530653367278558402439732794737141181473397575545107655098803891015476402632630906684184790173703202196163796835646297223281443096184911364577688019907143405479322152044408799260062650525421411590774693677620552320445664931250619761209889059961600132150818070132164397764520073076601148123016074713014411230256725198797890380881814099225981765298113480963479199960787473212891798161384988932780663736448187921096725088614262915872599716158225338662110513248275158156058827732463335330367106899657931177333436461169993663957967558510385861958455373671094555879262766150694691122503660992801259430875718935002798746314770707830827589578526022579233204445472872089476660199594410348888697879165465032505807746302113675302295595810758076975512933432948841073919263581122081514942172780927405286191718121240215824613313329463473326388980613677248851971144151327902043345311885811237879324672751245784979502029019250270645818004793140905784677652845304588162303388514208529741619239515172658973837991785240980584753721468151723545551745811328555108246637040012447956651476178944945854867879630397483606370348448612588911555828723181693074367415644907389001195078657079668272986580530423082962946659233028537244379606451807413966792592824343093462201313401197065554229166937959956685254868358874885598192936449393200213575991732794917230300948765191615336382401300404166328940537108862158820702015284631374146560056947407884979167398880557945582972136838102900433793240461583327450256090602695396233146833207610808475843766994975318617324910742415972162228471494287468690297227007962685745454391613659240578916158992241287829858434651605242384120773489806892851801795041635286910192579932690836370823465483352288074137605369534999364797450500512112954087254189189997523032970756099840630572323140636911624812790147755970626317032112735114309190308432285563241401951662969817101062866456994571752181716426866249063772382641667953512421732727933861816256216480970905648706120307177876502777879787480724819036596945356333349410530535960875999826454766685978659765759618144744987998510600937732429622705095921545912110933382630320479054830179832972140785713074852689879062717973393308835738786410962943869258140880122025662694618997255801539776916125539893039676122178010914661848090869580559359711405576503091609668453556230879909039676169887920447102502811675610513425657820588846995382673235292220040711345692366961115626760524768676864369303458664970145049399602531008871261968944925462140497331204522197621274154457583413145900891685043291183390551666384584370408044574149651807234946363540565080108168060988678295738359505774832928511789518241714858492301565213781241228770789220612368099445922847796062577342415559424305134075188798780589335994528413193637569355656264340014180177998319278564916039620623800975742841185502556825879273386713748004792418169921278741299171416785315526317596950891316920855011455408425053480239000779160055661033569935778647607436129669398585335405636339823059334623074604477323951769350363769666437385888810069131322765999087715501617622105830774731831862649085592491734597320094272928382394712201033756460712501567102878800540981669078490485403642696804856467670221275340112445009285886629622329991701102651146522609120440169579032770781887324283461590221873105588285586900819655910144412541533579559985302307552738001361064372853794786123821824770633257865245627936062428254564417331821803939128929318530340529804655768972074889931858403064391060929240110989084741465313675197593097736699398590651058831107197129314519049055592184291655871701487661658766498473409331508398145063548858147431997259432781236549002837694779017555381342953784803694172236763364805093188064919581459260072392378739561867803025763367573559416561107521007330504967602718507445010172968317299614896586190396963502171263768662193035872866228382783416579861759924041776100475456057133279711421842990455257552970086269102351268982877531632723087970694035950399668047663594944168605959370881892220046605186548785016164452308758413923252835099962461452249083321087171208756522066978793014816138629227533690442988000092562403040004097953921201143347977462920389758958351508303131738992603877367100724644268157284862124137647092401667730695967642201209979722905191367773899184743093515072047843666395092889974559588250989423570401382988504463102364377500218243453890460262041410635763749833315806453123210305955484946152109217686032075659002183936429706188577147389537678404268746572392036976734714533524244428097509010562478696697155915338019874567287455276095311719750393408707437983655158022669145630357269839707287638711551110607327473484383122977618841742265854179073953752422223997705258409317559566986811722579751854833364344212999000202937124317638205886710602245778753106297580632119896021075226324607871789691955795351615324391186051065331576019696682527634447028155362437983246422744742295673074241564772488402077382386993390031451245269571029910103890973428295643628553492307604263448200114514378463943030940085983211054968700537967134077241828285214065118501829939253839326189331704368790490946794590167113681434123142549008474285896965769804690123850985327415901735885227021314385551190032717196417248030174979454874228845574212568495762597260652888087870749292520754181452630510388261457115236604088688021784367622132789908272948808884744554767144839575353786336604382738969420689910588438157862297935011012002812565596677161982830541750827894314291981333526992802451096928883232291186215108503944587421831460711076774016354078704498525791594212280635612604104930069137984002345991949733418131070493497908236786635896497655687482524061608231500653713719860174355093506861508047007609161113882852432832840280117702333501501295857489185264255809735668700504373892413381487211309747781785332415658629505339053794448734355959423327705817065494209538582596488183438810493249468615764720397106183394903919172827696338600688714771673610419181635370761953116975946313944256485680375295206496977086087584051859730429303856494292014707369764968824249583241343891720686600867446394257449138833074264279079790038447257251814648876967337717673760955720341706123083915642907181290236368111048979837101602942581352090295560065557925817633807590671501378224295705151035961342121535798152646674263476291922455434935293231365292090499859849706734388992191425088578050379964534526695100018763713009817130228743337929998246229552321244366960896946070940346989396998443520162859396664130335355826710647435602427336726046126858829327718691573697151542574823365675256683429139540737162059475760351157762913655020278306510747281428163266579403277024713542563757218922148078569986169251488107525330656880171747371711800850449881427709591285508111643536284590216493116338737290959700110883642646047331516857165437477207352454385111512072648795290668697857534465499229166981592344537043417089271628158451636612477067401200537339698002106831282662665179031728568189258536540797195465465857958238922772512096231721720505492316251607387284384629076496943566962534584873797717260315331216274267823504312564935186454086968014537571593154372643544407476458596197010098751787908269067598092620441785583801356070899319069328096796919348511611120868057591807486882271351260838304833279594851285166327023338398986012654078655661579399984013859141099797603451694934792244748783765243079845779503010446629387828065380093226689080302523729395794773232905850553168551690454213336397608856434684989361431483393041658827694307554339663108994615986406359575268216891959456918220922195076204415302580693046372732616118507818933649272450797546024733929260834920555834784506238791154825970475529966970066744143185485120677370713622760084867820067553131756585102615100896988540303996682523916161776381041538220504673173744784431778933927627739484732989364907915408874073103413921993439667418089810860951461178735318516235652185206160968483167091896345556849619640531919149040067470045356964671641941183983519018212695253589740103637674434040437379534589902284355009028220130442553270756224362978888419288645446067231288143371127874917489865674946393688278849181332862607750585242523965108602672455181699009341577937716525968822209092975750619748716571356005786491929069192506462379905876312934076647821659831402767874886412042153663173343706910232771519706556368079721936517230518158474659631184788626989167682136175986312156360414304906236423454567813895141326207151984504710638451757089545070165397665609297041003632009678628883953285650448547003780835390335212248580437777972481131435014252596106073262165320856804992527003028989225260925286497368800217730902273130268215773423351157115405238684234651212038965065671499021609997262539306578377444931411315090464995965767483006794010262254060818422131256377896662806985635150148263391546195588570350252854930656636841237267810344429553993011121241251706874724658477099518668603390140661091603527689033694057575332493079692342452055699949365295286693578081478646411054968824737864850084730800571736221680621253496173297550493347096623716619763740537278724280336474311691327279839133906259078682087711553562717624951719229819005625663546098365130967927647136038659501623242600644831083047996166793838664200365749408785430734595060974117985431714874060064296484064573395711731841838980130637955619638327950803919470249003574315508134700102143972665004657463382739406790691221861250911657138745622491693932125821598591514073132520086013811543710719244459748708480997619079926783178221325614491601458580801149312980706863199480060382907204560524834872360034109829349048560889092108757516887234209483123251298347043774871813022746749357499946834771405730171316624577185694747087561861326008927435718541874650361043467542529347869215481862960827336983476666993653236539851454316316331386495166445274505431816573075253985798319923516307442595315920122977329510260401979970582549780593794665326137348227115833033619267481774796993965414757827170821917406166170777581406187234619690325275839261132476257773596310351952376438885260789241492230907465311560954955118873707129051390575830807805662895137630537755441074447478052570882742136740642504811379480521343032145296087996805762133990289956447283466721313871240721197834147537486944689028430640515345926000850240598494629161870537845975137432089005683969431788762637201897675769895090247439173516066527109984706094832062311432006055637197408365836444617352487389175343786292359578605212732048499509051911864612905623543026624218067165665004240623282869184997065661879433442348571944953995796074752174517832124133456939194720202213895138000150895536989134887112630623418291243080881350473981179292179868707028827483542228106784445472910718569840614145171739516011718374557024452626160054611979909789707810318287267238331895547396240888939474203836855648602268717913024686310303866746558947348302966351864930390269827014552431075278478237109607873447278412000376860175269686140272537995263403954709631927406647917906889012631454517429185882986107147658228203572989385922521698419702025132738848622470592051965866520370424843901206123855159580519427985951559347954265530476366211449947437859107320920537132888383786853125088040275654532831728872825720029304257507822016098197889541599720831492222967313651394748637465797391429399106201555372359675507244825994968283066316604705041121682312048799867673038647253136087735852566993233548322591773802271225542631661913117648130835975606649259951399438539016202257145128946213493771498838322056904534976329249642987020591448225838193964647775578746244940126325284441561230405831377837207049309206771694878357887483024443257965122521644861116772538412097819616964175151198014265876399505392541488196256951156251119909468865638073175137410965754111400112345808892449251846601404156038649420350615107806245317872784463651687303187599270582630666117977189602997724398348323128215241548629927088709780008818187026727261409804802330265164651062761403964671790267552801834299045450003147164669098513395592615528042696961542514069823001339766085882359022267323316595268750827197787620478005779866374641033364129828901257041108018945700866147688033586664262186346760005511962471925911499897036200032691132033808408313972807342785469844279670494294265570627069217979809155142655328088716895831492139740328203178771640771488673687693159345514282009284395913222538198552881301896192496844531771326481355480490845048003644941912151488291787686184387731727625713097414516272752624063745082227447857974385789144410614148406427643580900407589067256961497027458075670609243389919258087188246087430423581029534537406637941610422678919685664225331692959560727098818349227366172565232618661278828429490995861465325858765361326803977621575396751548311827391987039435332612943741444538051456670929972891785476691619593292225361310715308600210360817182883249967950648366477564726068934131937094753207926335981180948417509999602801790803283012774625843465237712884290734835695389548874259793283750045842095042118897850911795987946307968788995591372277894247437640940311160542670456124333892734552663142068836682684799321286685706721155993760363258559942698311407288913636119387047392401126164184680790849463751704234519182695128326410642230636310055386057138635361825729267039601601117466210488650593997301663219807522030886663019332285155401305932076612699200610763029037125935599230881516903228187149979163695682508868848725693950043674583369652324251441146762074444610695919915586569047629687770415513621762798294881925363951924500341185933745461238753250188619457204373559810450364310036636937795693325953606671569675676694336622342941041145182303248006740263761255180749791717532566975672029266799624970345735406876137702660665358120123399140488719195350140596301473830538990848659757693029503393394741659785545714402812761279703827301022479061117451669983330532873479497108510444703859732295460483742044553227439218075210863739155613120257605231947138401212207044441920714059175505365969241169766856759620002211646242169688087786426949667332889145289264492885366315279244079606045162094754937508311444279166922505543541294441069469456579049825736799325109870472725160838194218273734516215416104519722826651137424342616441928804017057792687084787632681442232726496680243174409631113779376855631705828799432608916896828019821012793422482815292135197953677905989927354300790641834527322008952750162881788959041158108704649297659533494847159501964707939668103768637130071767573187349977789939424970069190942442358444447755387104956847473189441893536218843470595415609611940330798939149552610191066917899953474376440073621228872206407172925965791808679958671105223229175578131919226393688681960919042369118240084020142713976302579855659768729631708607277264733673711659879738414053920265003865033117010591785568416478288193390805706272303702558167134109567541764985987884520140994509928031935989312756650536574591649113834152536581754423595124571799103909237426426819675219924301621464359887638625285807004976194908611383350170991142376124170474365740515189773013408430374271726076419087405302388136689451784190808533027576139910788491714893740521592399309323791859649924849713265021619197031153144641601959163081811213437220677098237568134411216897031561735910950005071721102858564421630229721491629621337142992786523289163523004842558486977563581270974926628894245080920207779068652122641449320451986909116600387622729227503786677733327182901387349284227023637521482228913964257576630332257147304571463218140089426181045225733082780526418388752227332904010504125868087423613254724044443342344703180079090943167303243525207825345069681835358677578142701791685187096358374450411307085342343496453000110107669042318646517226788230589578179714732442069001401339331251239073014902116011084213100216457209243923427108523774286118781234066907250323112765076673881373244604112642684917673608827261406921223927945341255859392598266536719069319363601532001636494439670721130317491389885367085174412021323120538022756711977993512488920833512763398140220307252369144912536669498449718822648379611199400229102053054739946380713196264886881748079620347539982146629034577491532636590415962619613736133795689145429855761300925092988840864333232218647941779633004996639665488206714322567029613988025042309873588109300904058984853463488834215415562947636395677552819506452993487557531381475256636029949547970542157774799448059934963357187242264396319514407691554489828741270868889109403972002316070485713646826839821363728753523645615388527512058909024366700350209475140503092992308215067935276929120934964629282315360159006901996363992066360974885061961808602778941235750685293518108701971182244227637008489483668216253146511275661582607063372637325336884980914243832134196042753380734288643666917109079814407651210311094429712332803129878487753825796225761184103370747417445560882820582981911759710083252363332927475828219415280448317423585239616596857010448935048616931805116604977195199714381218187301861057956670944606236360331019567810053729623217763333420575666801419710878665872521224946900464914906885033051091163450499431566334173717609168968639706360598496290776038149038203089583578881907652242580894581478353281214730585372171648457108219487830228260797500990568040751508211070885786855766013690568395068136164777982614603747768291632227478957748968789031006201274012660594906936389236926386310129833129891403337408427970696679457330735061406130249628257474267720557940949919226905616490651452390980122311143712416118868746682540059909979576589176992881750552142011401569395453451051807131781549520293078816253662718733728724976121288166456072971717559846951162207979308492445840825296967347512857189129222072257987265777765805523838629121254166638587360599829934879133826695652543567525837602037565464083410085219016777786432660894298056386053879947462742207801273152351466417361977740612004332710836551078266071512005750970869811018655809856805028303347037186293524388268554145821090244566273548189901538912185350791645644900088454637296313035599292291563390985156051749719789815980768709226688524420266644142330833664357161551276556865498842441488413544626573237277821134200455651054022189542694545963598474778273737030529619925779121623045148153609610546350006435072941713911402524321340410097159758380618434732561935694348434194532859035482532653733387443357077600399994059253645476407152484264359678599519996158911871060738655531903371968834741316748713306155122342282630129003886032116292746265701107809831304763512736947463882427969987533286468479350010356862243500528285140473738538201564129182876507147819340209582038085413067103008332505054249220146464961343321665661538749912379213025682554545352281688397512195161288399183301276946433119914470483225431121641332078609822159665727240885062089517997532505153529916352723971204787882393751005228510225674917730273899161108047003034744008665795626726842542171054408070549763693063442512728132437822157931315073340886832570290624845736862735768580526875563987945910478150391975159620395764620135133957625064213649659052145820891082806789048461308213975204819337503697979263210224174981076245910343768210499135638666864331475835889691893059807139085743581390303798362967826057430596179525035572128570560558222869301449187194228777385474411932448369612234104067340548210694413375961982822308268921367939666117685681363004991406881986380569830992102427478264726544389543914676513843864994102254944311253237016593072974440648197439174877582396742373332563991906621845468433515796257337340794501017186250280131314782586477287620618573667547620412216005362049223932425220616144142649094417730979711948262439779777103487373274362856307541724402619928327650477831355649439803451809211507867283818838314662197101683328055806558396879755100238256119914646423463494178093828515145124349847510831877930347467888862455389125748911949332444280060448983523868442133970455962115102434073876883523925863311434117922217768363419452082464643424039543157578887821938087710807527711370994350123942037030446972364815260037255397393923058131075730389839622624015016224914215632397679386087497064314018626152655695655112502128535485105519377418197650393678358505972788133896477489920506097508384645759322284919721241721094138674825655600308734795060092901208516812939220873143399787851784365324948650783169817742842034399266488972712339487906117068790909006866876089167918515695588438719581885309597608314550899357626924392467062382403015247000457050621148915871751837061436219081012228787283181823083223847466295864779960678608691683822692904794156722851844864132747383835549986419605734591453330720692516708804070085397383797737590040467831462138998812318831109583001088427947181812465056048847197667498713767127126606886488994914813222046661127480647970425554342603756533934179050717317578388144546704302226590686215465502077609027462520922306478159476965319526571774872222547816984382367748937948213359714984295510450908391216163269162195746290341406513204614980006045280445635691049045932863414531009924730011738856305972281995443410634993560127245518997101381073636984680778207176964638234663553785478027600428520268571751536735403474410427217799328357788427234786297389191689715450207353340535434438355764014363131144096616347962861923971141323912043851129923925194619587565945372822723289861659783951672193457017011605978494150428046250941329898604130879299840743564805134480323267243712497621742230296084991294581296942997553958568279641656168011219150046499851843476323716829743041982895450139430713821278570553964555945014124428865436132868581214682524658114335327528823784213272895793958468418995175058509646576587448740968970842058810187547773736105086564777530045601033992982276862117116094935569722418945466199180343300638180612406530816514266376064312965964857542386901887981039671580694770371031894705960689099623463754082966345155533575579444303905693629010287977696967614243007134052564936421438316265750680884398550567523046142842876654666249206105737454918526052496507565918632384198366867660268547987774085694744080687875636746086807467212012981246268125914266898181023475730506293859433767706204445974601953851008583335883917709852861795929161355575867468102252011474512508140492300495006076123151497745516148268431523685735006752842026930029842189811364385610204082680398767030450887967347671977603524760178147560393988143599992594240745002541657065515699379728270536168017454786829140979536803399440595124115116622992813337197214187071022684713160051694431961734190474149312321112806716352355586548447523002756624938832774111371386903714038692039657886341183769711987830825391489315180919466226992490406878440262262693252228335268087189859458076248218420179516216150190859075864694514283880269478244672473946624570084139000460695739709310758136581442153780551033742033138345971692502575433501834254629184217241580738400540679909620374300457727767955424433299232363566114462306674800540077309797757267778931143964700181625932107224872614044727838396612799521538837205265614537939549616925167176867737433181862762725825879469436986506782440263599461439328854323598711168719387641127262044129180733787382077324701183481948889712587000925761725044562196402359200370499698343741259233405345801167783875175194997655945730130943439732380023724331097489803028680490560652644178034753197389475076701443207509712145403469048044352067996567736821257784233828402242178801555308284285405098120753845807268326832107679376733840311950325856632494120619650087504142165304463583914481734080191374108705422899940079641258714807133246317275856979805808949025549266830060818764908512219651438013831743956887016434321949221981961283458655948488033266680990959757856901189214350461425130273337107796941017198234199667646140321825305641664939574660156442496531591647556748170221088282570975614670167847307675758330712677404345888153434763751973197745646917468810443038685491374473119430818417193646040846586848967692725763075945350087756462717059605191423386921251993669308372552408511206923459045411890935408751580933212856932772980813411877715212067790283166226877175799077297771750656064940953795821519071375348432343164487728440025331803790481821032668291318523823183039369732558370291324780279983289829155784066542053947521816027907698488802221936924251200824636683184165130082568825732226723135904552719582452397979979132029242907496999754785834742440397635078526019494984958602871476418031873240426122497820093758533124067098548131492449176935159518124096745637661694699914157652582884617330587339624932505606529074922886937650272571149623074044586821450710136561285230730371165478906081225710922903316280240970418122877896219644961090976387676429212506452519626775478861239235774734528539211531226403899854361644168177543475329201986998731741073884513435186505490142252447959316058012128184046458876680997998481472176543042994635659404995231668499601419192658998651962239070113352127339837030218902531385894916436302188165847710274407995626374490256866895383931516231527445384299544737545090219971068856962861769251987177447868568726120340420212759623598200815597747598198447098767034293035378404040353635104859455890685760051844013024486727044885507545108354270514783734647896418233680458395157746954036694500031057155730835694935482055108077422685839379823947977517492053469465487502713558313035827237360367646952131378236152230662299922699724298599567207871155429364171899318461357221256581224938019702977679278155888198943124951960802567913996184906826630628425931761589800783456983900707972281460048048304580320634054416650310062585053535070657954921415469367301508550681030295784664308301624369863429840355430680999189962538294061993240425692655550947468608711908445002665707114211666768141075086049002578071444838832678646875767773413515084251958738259650835618250231314879243047286332909340970441905408141175572287683226937437154084798540265082587815087512694199097501544488187254274397259081244238014518759289762921204892454158351172146861219056849453948701005750861323359199856775239832560006501461122382002664140585661431209147459213269038596432680369898791717808587994562847697225318193320998830240912227581852735977957789753431652614964312715514404839106422045211879878109091286555037763500957919042279457789099884710550004070998700108372483812362965628148985567350920761296816995891488676786704826565609241284047254319811152194508798689995186645913135574278079778366694962307939968293429766561566606762796120420617369651380514346281754453734659179989817290542360367846267430146781405536291181380394479017199047989486946819681943314996571561417530133964796128288921595009483710587447897796150671298570747759280277021625362892814199743035674117396527022295038125508743661169900148831097355036319933419871834174701415135694363761919566752977697977720437803183060702666876993215597534545861137180325103900421938334841151002501501149827318291717068999509544729928228127174342145061407571517277257773517316024944365159432690557661648590427879048135965737833688574249938849293402395197602037282034248258583026276812764555550092846293966537442099604062722165932298305850187154208351196270294342024864430975862212403887192404089238193960205740932736912413367589291906679503310078867276962089440172373364252125655059473627730696482790257476996188643272107754729583156215003121804138574376717233690199544736932217765985062749058135293420648925054661553459969518383107977617111368562613285313721195709183056913482732184218192615890517753141293820861857732289657784738685017837334444896436384425549371541431141548767991438160900509440262771090760997846361708422991295472918335650125288381580758296295391167645797764599899652545096857344066180742433452935379656482830361310437608005399582990582664420867213995933981581902082310823014356791740112447189038556558346504226734806303109405344950939659019492630200200630980084240733880715173421939594469847714563472590130532080634380033678602690941111273212472904537201106774672682868441455601534768017933990489891155528978481716940175591118938430893470043563446487662284981194255632057431273322001108088175285762770677439869019036806865879281145181946880439016890896765061669840792019397803193891679168297171164663234751328719002602228718290443738003073352698633777762647692922635939632422118238210574975125836958434922558872065091509352476193725198019107515523319214263318634059678750617182219573336243076552995448425085930952349328689386453157347410225811185268511734579982643896181646580336894830609025163338083493594974110443906689781767887463615114423824988851484414699562778456408759810881347522892861046313982802328238336329769116561068928637444000578836964142384007627186900324985906146313065522927698861431582088139475545420235192291980604868483160041427173851508650201743039701035842413966376526494437861477267622213432097638111664537898289807024177230351277305883817296310963715611436636482735574660990250469998107851724754850335561780697932008913092332726118436684502329034253562236148021197955966983205943500773203766469787592430798380598299866829796640210347359142536690873669452777931708125222199087643302993022658526156547920898855563084403023157029647228444517444070209453028971019078579259118588848523587732287304042738312973368264413494101632290160880814151256415664384414841493416945694755290713375006699104334784183705175604459649521496341118677966143126643243707789986832322838556265010278541959597867238477071808533021031974268191512449659398180880022493614367086722398345631245778640979522141294128830375714895700271947975515275187871646474139618518016790626246755235440073655042904100138675589133733573215817658807676133547432056764937601578398364789649877367519391416795950429491645750226076220536379354007042938980306723901247172039068742253407537889254149014449162441839486345506082890212271768020491165005072176786828571800114121160304299467168816358313388567647693595884767890350682035341745295790832266273030004053133238488304123428637657983245087439122478861301731353645235364947350996093194031319260479076855810783463974915035616404747025783175430100257230351237156720571832194944867638174145407558602892223763634783901887526604260981660080275291881355028118814224881747354587045577786414777014320172234928600609957851033256654345211314641753355275491485288946555538642656862599364569313609040251162068475657637670917392893297763107481020570335800094669471997338417295889890821668133007309937817783376645938883644822913928628920875797833082307253363789870918725941366479077346333230783281293090350993903548708510686236454397815850785321047319739676474689318856878272462847507242252405726100610754532367355556382036007797014007350281986125299262521899129238034152118496453337305261277066197206052812112951109938435253261975395648935670404838497577205318724303634695366247056968805651338024086579821987407726185121149339882776999609529433308200453225303320650145043348547264307376616537453414771237312095713168760892721114728728433943323003904162224788199582398388741698235463755117314385666749082988785679632694005391930748971896842682004568483196635393015898678239795808861503094743930327958289820351139132656803451789635788777344105094886683299674366685836505883993913697877954436229452925762289022551808474075625961715652882336361125500792091875146970185964958878658682011327616662567776304614150882641361130858132965251046852956293235860466798818229563524139950342351950202812812029221696458115325309649942784689692751143495355136607485920539786385862573986501563831980621431860728049241882340253669466095897700754939648831408961583818948378589256578080495606773913823593736734369615630700590640640531627291233814738641707146578759824842783081482668499405453953148063659036474972128715702587407530385425383875211322158144092667487331071173538628809724070123241357127968002032253993302102988456724100074774705307182952575738624705559537256033727236309777081628247544646484495604692592436917071782388338258868565422668401215748866393084909661406284159476841200805483680288279742549501555333748673522103263130321688942680036412761941646529785223444547604595548147822190856137165103560687152980022256166267790633050845556642021013887807609197827616966174752742093097636105592801389662659210864492066804579549652391151989447366360315934265152766146547102749855063105042110609975405190737439711202916380368511303024610830490486518631814813034486328374058071632355317063904787106079779785006384384817998250301434451429893256748659364150080844705762639184300739934361264117071686899978026344907679856709091777531101503858064478262633794148181467494916224289663557405395467666405046824060753934122198790709135831329600107379455330490194379197666704559398141491537643093598432573890669850141061119696126485328195969404430366531595018755765002552087531543146788740585565164581801423126035901814486320250995245167765442625610707678043738325776964767078928741268474179824234621557435544715972092270017930288792947604500192687443797238370420920238966805564921446964402689971484168644609646093657776018403035386609493169290627444156499791361239602613258409171555427236642815549108165712037465769712249139882414721384569375645326228836446820545614816449911729605771861007615930725354309807037792541983909071106769111984893394796956853634366389530539948265508990642291328390674886188849139327538814326113251607086296131144234770022000803748102287497283195018235512992808823020766638484595424090295087737446879239610769214906160588187976424342354024558554543184951499035337680895516490471093467266163444790695839612934530323444809247374142383006551615429603320364322749198057533973425391584236383353451366370116270745623296667733069789514089848131333916248441560863329887241743409006903430772718660993162197337393510488315399656831287431356475437247506786012950539042454813893001779912117125944715377624324437060710573229807745290237333572888808521540388977063534154630483152968261773196039210304851071462204087526380775361671983531798462038222408584508236521117763839094250778734768238833141926706058215106181507469507238678358380001915472908692452073252121481361000363770792443526613667738522122754638073963054468104651984025338017914710761790360544562792476598815863161619106194876893680487789857031599111009491258804638689687152595864810085573243670392931225262435037687582811691997160863772988276118650246980084846402697247217472563824921538060511381120831155393956873806572116322789738385554313194078584156935004591691609024604640385566068169227195098716788652166264568544362722025509593646587203725684333867309390684791987696816148027390657221552575818157669961315412515033176711752054412285205779755355626657690411072649716536322827374379163763748639494694312262002870066658319919970763394645168657249687779813478322376428169719740716416480187875192682796221856870432345590850543860452211146984127142358242010245459969084352915767345493215288163008020010740591287922402898393711382618507808393060638262443010333397049291517524012415865927078201659156231260467038909929144115207936246818588136573131025930492231312684613879774842801081793244758611324591578548442314642951040419843907072473705671836875285316870234018989329752434903124812604863288256256809067112235168977492815509494103592587260480175745676329280131355652209714734245708573460634821576027589164567447163854556071327531499305160000692837902544085191987060201665660454960069822019726844786401704253109175405158701224212088809049703114714591491985142917408367921138095232455998288169358591856178242402298007227336107893577629183041810783796280289748348844445958655732792352894017977852785743094083137392701234601862402492815732236047697027947217984383348578897495843798698947464909844315443719182663335625065715752877867219506551849544379082032774840717645798702598890416386426329829949218161190694188306322116585090872783107397263505732951970502386405942482184858365424949743174301975883731536973864066537487186128117463112972713506828098271285678010528027345999412166646373335425284062536533353157613055369035163400143291957853703320519300554878750107755046639155038018712973715867499736703954768281069405257229607378807525798050970379582030798194193036995127833052468290408816718920069301114500695771706561161542548512508305836134122743810122663240499644752121695156000025357124315345460522778033666701372345526758035049170037652840377388813051989036032302122745372447867604902071466536358517761385380322603532861639536579911779043502513090691499164123482153699362131918916634012103971154558062301955655306352344914031784618181690268506122351567289812826591007187795230958677950224001215608458971014436466220454031193518281733462558643756475187120088995610969371499109804739452933838532654786534016953862492035756253071599594860673607251871835478096933659687792572241784609631763503393636355066091765172836029740918617571360759500308258369526235371640040040248924041372462724865596558511267503545327434034329114595908198278312787543047476625971695178134564588076037386022672408357362587281663138303739663845000008776607811168524299423229452425635785696191665845342675329896769198344744661773750453283726130897826590272779595467868506072271668928079460577570919597575250358498173477963056757822066386377028742837800202094229223372502114346161458146660604073079978441284860352662512167645986477707706676875756211082625069542245403826294996746229443129927722672846021519368490886900618702170502318204101550382766839641583167624866169587334971980484648072565257521222869752516174148378667807116800685487899063091303573348757137102465838343961509313201449122954149785610259214979261973329525076168228119053423788117514962045743125331206408163808069790221506995767247261504183628494745382476897779911338838900487984217811737927560286007362660251072110358123243367123409165911820047774303753603807706137328048989105289315101394890532918727013029279998124811696531563984304927765747836040076080974043181366633679562045601518626112116393836773938757142645041570472771330676882493774283141465406086935162114016430466046042418099226662367584330646965913210430948950170617917527129321785865558588821345449532027221518522287727592237668453494838645000780669258129433269309946307574368102257441061571018071958268931147374873039458906435087724601932830391761073059182840535361849454662479810759422227782029855033454952613663953070836051735305698238600229070167028763934011827137415314409591200384063984713534366178566081228649431551187236002043114620485032943992023904477719671915222818210173010776875215935173268249848420668170820832757929759728800828379097030871892289101326106428894910630292494404560719549862237986825139451928245457547170982556201424528911116407942234002034098428839538236339975834342345131405420807002076251967781593207650076559476097551034740716488939893557810878861761370384815929025078538035561002347171616013526848360036200669263640556766728990539038628755954732729257827120607519295136976557555408468273444702976945075028374489058044467817467805570940234460697152909457945312114008250816127308260136494393835676166559493529618718521363923045266366363490904171119651488383380374432488351495327150697029600161249326101208833533999516189477000151532546399937203794493475335321086193889392807635313947696403956697315491592150554035438986341705568325079856542124165003832924461713046374250040194991205880472848366211916420925218786871679069817558799527719532557906129967924777581812970698521783196945369084308894394262935933442271196191893591100446419837799199792265948934199208522380196924987059802762714337584662497140955305811647091161347752178958182513894046533102750612911384347943322079271877686475922170579688661324279706934058646606325221684961123719255303315811748450349080345795347430073081330584661213285671744610884888993268265109800857131530703085143189105950940726017021573113634517350862979348603777669263725803894390618828651405767326072694627704908274008221732905222264012199793062864087809620273518376039156322268193673121761503586607943213920301891005775495547735809038739704769864270832240243725884455041108727182486559445338233131107687510375969714205708388036236243859277122519701094968642640107496905239822174900899442998832656252647850804349321540836932291108090429464069550005009325081336446069328244052820555312662898227107088697982703164651380076363600057377408146032507598756359408037259814844334010989841241974577513868616878021110874007272982106612990068905668770881281609277927407129178876280566095444439405644911803587484692708732604022333300489602776686979589335469984392170613545325614049364371925057850506982940173897514159630207956824720484447296489009297095498455369248523583006399497522316931338610767694876799590764826839249342505732836963097130872836457278685403176499988149247746501062420019908120748287060617976208071346401245187902746670022132817828343359064268901032636606096483434692877859002581448274769908122676144604336607767397681353631387053136159370217897924701597493671439933935936568528092797602643674681653814782578299609763912539552568271681435025956239525701648602727371372575380476607425466675667355413699521898674806393185362003486787215048497844388691475604743744157962468524371355026233514541303450912662325678494812143760480532412720197386516055639735650258021132571892925740789276494071366479973072693094300185362176485524145135932534530748326852706695185406631548158646910195860073538966924215050864141455058278887491131419443945516199776600313229163933388680259461308616403016456514099803021185725192599766319846223520616862764064042181619209169216586130914039163327228230653022990817087500619586668647850593462866787805529086880610624905863291384330002955008167521993989120696656155865482210614509008484237641822768685114339018199950447179290997165395069484982148026399120126141658137399813619598516215713676131925534555181521224080404317229783082317436823430182880809733271618575407823033766402903525188877720676993944541741906521999351702197679293508937413829061835082875138800332404041939098996955734374479774059086161973861244568421872191330387840556382358702142127686105641129186367227176013203217559862264454935178759363086808367405808023389566072713440368221754580712716557787636074745598736984727044280829766181331440203890920630031743711943726458662743877835992999643768121965754962833891845909073617416576129018005623808794138778935191825373458053603203293843673648285290714863710977945731804972087029747435642186475164876190457455532764225805821193967661612778315541836604326873154649778695022056971837537573478172756046015081825694884047102737980833087967810641876472471420716292911379893118857124124002013947612309963755585725898124214210317721223600977270644401726087723588270842184656265756456335773215780689687841476012274585227303797509597740228422569178899730696411171104536472281088958713418687944465598388748756432855620424988534099019051408601362526219685525664106289312813182359181405560215523080278807619219631664469400437408605947169064400725730609671730441684139560542446669407835292816402766119984818537718784303277142111984999248688635920588353172432988826257335688079987458765113825514336636290382707800976223659397483616838160607423882166682697008438934096252028255234560977634280317873934428525829794210675231592312093540383309588137592018140358381878695337572509676500322547189672834969856531385639307760649507818830928640160915264699273531525476165897483791613877364121066687286495753674805153279875959917075831110668464652727737869316565931537457750117875292236977627458116407949676056706823994879639594055855070272902208868537122276030601089793102022935146574259146649444333160154125619269704399899588841689092552663527712467292817703985445040826524329523903863951415592427767746477578416891115058990552794193338549735130945509907083447506965469574051527813040609451007702404116841915784231994921326924084914361560938787176748203514231449904750505825020501809361179082897386694284351193290350398291683294607280560409023227866957698618009406473540520448353691712390253559896691280362160727720754616544353669667268907865943961687228193013805447009841546387780819986747273738909852367393646967383804371569187148132853669908661074325877472855016589512200394370774372292232617169840075173302335304737646233771399737951779731968392995116173945006690580403559496462457729967026800186605262521407312720711861443770626689995991980991262524462842944726879397773451860255202084009001645559501992458164767760068860719747604605198609266576699200270342412752491106032812487123934688013358326470629807497242106973596202920620102045264477679889101497732565285468847974307899948607626226126502531673233052983073636726209040258857115918092020862584401320690902850546038891724011186719557604723427898133841550424024165412537911662969587342862850433588936417914962680965470519515354817678469487808765784326220094350217856173136358690502305721952860496361978421965069305628120973037265088380774401449020370065383159539416176062533817684923802566925124638485732791419564146969363233144806430976107110130046250729351519077378981945823056749819757931269363625628667109616497361974379867563536709153643534131024270565851263927780117795964818359767548262228344989227137787935901316865704354550495267020833910711032081735237236666179944391091098458062081484821498517590192366770038840368478783631551544088818296195664429157764885822378425568409826080087675122646040510115713094048041573199221932319279616353514438939388851855382888661466145016391945083779673751602942289665649043829601448015156961117062338072982912002981209448678801278271101211200535100115146170567432408187109267254447407225544667753624443110968372470797292767346341205699635856426208864898841993122864722510688215205508817216716621482989048206276794701315580682877511939041426791511542521058503838430351281010996184580642277806596514856111193388138242102748840355893443650852546530493822760515791559855762361596472258746380503343243085996988267022103687278683664807030973948529376394438386566718961279245039237114366757940884386296227391193721168496219533128768334586311941738485096166982545637544646995750546196891773343406706633907675322144584817954696183997896499305259064469976515308095237772239659740986345432891946964373046294702582219351145746604650649641520974073720271810391822046131951741564688208989510383997931644449506752211619038819986961315661525613454747146718794513987914541187534844079755809944432843437138558869008956522099622337900835782101927867604009059444782497055494654468608590154852475510621942233861948692168846747145372616468096230213000114750661062065107452637954860830942996708958154093999909909171776196051290171383676143297020296671408760739829868682385295112701343221445560061680950113078444717248777988430156634875424361886934305714814539519965698627931502513111178302837404741876501243611287524287071618137477366203068232145049151641805444066944784712084740809571836659122136081234451253893259244876492197093799162458989920832408493436889933733040958371234334395533112973915421230802368732314768427557097797835705032410569304257358252032248734853209579883694109367546152397583844495798336176489903430652150555284507456473544721998141513486222311779486527476978913940855133180255889286568174101902580243404179918659303161238386806576254556475349921466081626155717348957722214117557101768096435218010719681237513109050831189226050651569717371238681094457096947443864813454203154958666069324506954442075369014190296111932263997019137219210316956953254826557249542338786624492708414021171439914607212292546966063003944567409388779807025050782414629351189323375212379815840830178614145886075093929928423336727047623512464635189494011375665466601063316762947754399780116518142391883683600736585280319197804971098280666501677041410990974668505751790598976953654092416085706943332483970932124173548132237429446210383704902107606793367504242001310660090457227326863140758290112498618137898985485744707647561639103318677127763092343524243235092156817379820764064448151540850121191939145937309581180619525571107869016965996599369476226381335875777750896671660110492558083363802241279541509067812026899096599958200162694071845680098431837563260034625963818035561632741243126899340895113118152214069193040009240579812448637833638174456208277012896559831156215632673815538157283035026693611352692948683734800120678668944859835222329527890256635732328241618874455789543708083359130765127046867288783808358008237379759168715217355608027843467624495508220152815629469207998763637786851930670027460296623343579179636338467404097466602937915030582444654734900190108973628307840352816440924410214984502385528927246686390765067707346500493154560614991260297855995240434243699436992773444551396849405357516920934227187380852378665267419512827321596064382597530097515833604888300147420225924037643610704614417404393072426225321328110407528350247488526733009336302528089527076697663628677251501017244721407516879759846895093742490922810857826320967847746737251046693942647401508334413576034712296371453587645327248992779431076807960345140880311965491525260919553350934989834876996059247105354726036943636565802433500300600646511100940308062283663144538308692263520691529224005691451377937944675719598764770386753104725413450090571182207438830112192291726698005071939979713819974137582743978036204494026554349893004641441852392231836382908958985825368509673468788301650079652781843170707911713315842731575251389839327693297941754977069993111335044391432465490474933708777596087757615546561350942672477188977778723475563996060890086117660173730290065533910269647142546835987688105475355606374972211080306218091758146288144349648218190457713503492194891677349786949232813033285787426521855577720908611194532311975617214124221359748259338605198752372556765317556945289776746897388399234397503874423494376789496425563900022472357066094616918676146114004179078258572482342183221944600611891257856632170042668161206724325098980669523852172699108286262718701473389187213372523449059133733966159830869729426349015116764927123644107589693572714096419967745554089142771542568266857242034177940392093631124240832593162438718629121830216341107790587444757926953219503867255285775535055809508775988685176850207453965984017314247038602510239995411497565057257112274679180535864905769134013782577357089179395595024206400674614577009837370213174288010165907559902184922237458937470403272116415948374848063543443084023167377181276514889785312565033469532396794417932393573582192565300614993482192581440663143601825569357610002347545639817052026532272107042967289949404024500158320758404275894523103627427952946042095391390407800744992463354842306391005129832773431709831324037075594727031361615103325625262144897550081293508531034573702111385403726042597960216945403906829906322621675476821784098536417807905870161688528061146638957899326780941100897684225314426731778569059968463860572263548618879093405868566596428713923691931176622503242901280088292258176989308731098123803478051191557820338462392333545544410148280922728061219950062483325152804361455475596047718579951408710208173013479283471033210116996702406824532979699531689281808330723650710819316401292194146943477222361367289669211675319711021364686138672385442495884881289952250885993510863895258037497778093260042104453602692218433571265547843243556616050091641535774490717850653851233988153797091376782394474799967732892988862159803041381744411473777196263102587181616783537067498130184272464848123486080584957610493810635244294110194738387351908670592718892804749108853936001577392993918085234317847654079581365253837660041512525523764915631913239089651014330680579575962001488867600726840035173244757901757168012489563619676882517573041863170633713174863182113821206315120856117390716180545629229866054141926209069204824473860721022836910440109341798678318947179606155184117174476523611217639053306684504834095147634476255601698053313077940947133054806465499485167382400893109882864682959765064267685628353710002185118044799309428690156893201520730760163642051980247710245039115820595157657151914696207658128174724349970956233068360582076373992321113733609489618482172904702957594054748373466550680557895009393123289292882720916820666590952296988305380820922185845363759078668825657007171173859326151690254574052162308839522075794366614826077854285695181325806908295869771090951488248907976730372774287186172623737374705952685741955305762249291683720298504078377422260741800211307632498808437288447714139726132137002566482873029691240186117341615428930065371602128324651292712730614274673073465230761608210812712817841294398254861310302861421679564157720903046737743346645955106294564634902571065392443613715090464710078593065007860601149740090097376450225398118817512924246031704850744458168899384382984215814905463859778923109073356108287337935495470285608212635625340872622369984110199246250886427856535038841791547836949434105765382832741868101879130503445669556276801044981833761631923289687634316053450360251148546468105339567258097685192293747171634912227864451856533947555815121053355824955016511231054528155169514257327024347707083419708953360357595430956031954294021674052758938507564390509132060466781321322108139424231408701925280138594666647173925221670512237259486353972004893563183199551632563787674345418754848177719167520932759241846072129332587213203505793379472168401003990774960760588631919034783502262586580089929519476535086814118426733067568279851980994458025620742726804280380155913203399922080198438155881273468457343124343277167083837971338062594043636653393939935476472468078835929900251488548305994066970220540544662318845220002308325026898340611378151405300508473719965592798526973535217632707491669964224885736641083308536257866828272270531904730067313337634250521348181632465638525819651184200723038235119745535590512529478145321617091728563320370469827117373232357828039618916214939521937707737400117949659089024176463119589803493074414214588363620575207671981332449564323950299523423831251566602852778259345333549306649827743415718781027836668379294699243988599834424348926797429678134658611894630539503104824132011696823020392243866985773728290410678595319577969522244780422676292560204680649957941369562305008524701566706923836058346845593305826812606718923099327955162098034611624061320756059021212184528926701637897115378983071929084371965410776052051471559159093199123766611571828209127739339971168971732105787775830519486545086551462100471315433285865549039410000949981676271391613890927511464968163961412229488199725642704947123773529805255798698495355025582498392291428240366606341598067607606236127196525004549469579983522639600104154034070620607883206808884335927848712979990083042749977401564135170712591793293494259801812712252763816082361770293504867227139779764032661487825963087990761467495933216405995170198269709873911205114252423508001684911134045769912437555160529471125151119765615132388558127901016798489943605733599405260307445237240553811579165361161865822651821650058533702138806398277972365921348115007244113567426265082694588701666593566799946186417460354507416977446413441126713533970203907163665511063359481051647600279445493219031810467151241521029160389510782127207467413127382650730911158566887210132890859529494105148916517021683932875300303698414845542808522092711681301025211845395469928692299259503863270493373564641607554440487626090733495888826458658572336947673363558848830947036251730853323638234045502913935936845774726149623027450237570140765879366786031498737008389938821784876772198611562299709687189527752310671183962981845437165547811952113494087867949950032122063879692070457014787126465896317879462635790977000624818448733543445456089981157890598173967470411404589699812601228880610258357489829849869094941497423336520166486018838964359866525013416940505601053821294926769778547145232032931802317854304081982771147069506457210408931711965718213123085741155966841318095480654757408668152668778568211290362806696152946907483675765647094349982783607646975864249954839880019713900390978913903187123200889861800686758849895418653423808717526658307875099141076716605597407276496012222488376336087349204754570901932988517353309583509860980394246384593811909478516408909605033711955157124876501705417536080866889234492047562294176330439778805350044673699250062085404554072938908670823093164290043282756897489711756925378118595023891425608393791082274815896010161332942110876088453072322435075058676188409466163067261771028402421993852158203750398818106077182537782690304784305852200102973008691632843628606558189065811186717590041933371882809962804032934177408312461282486300031792629867410634104454261487474340935573818523142558223340585252304030835108167950858012550044236027375098122392800303176463317983542828290937268125953932518350493507768710923393837043119683056917363480692530018585656825846045027282398934005772612703122298100627434896856942957258469568633368290546812601030233536804291347128317568246268509368160438155850964636454593645617615930890667604355518434316778175860021769821547645486261141559437802446846484760695395128301609069699534492434571735374990592597872655988591943677241598604757184154283674298331338739778539205742406016337982184533463127383140266667621975958246783291664443841204734100601658897454338981849780041418651832883620502814817116570421652597212029653643800111257017146532035474279680877847240741194291132424963205564313126134157585750894258291333804181668470329612045347489596227647108107644360145272433871615804487786377444665723725098222166058114415204444336692218766594840102809308211667624025477556127794699957134450604998864704127153045126666202216228271709062664991642949355520150641957257034466319344504665397874158947083601480526976557232762295719808255360305544719988281379906085063217487752382633646803914346288208011567014931191293097782995466546728431996920020132672486411624235454542519856247508322543069635695445011794425338805290849506254660564379402440694675741765734541656254188602461742492084695022967658642470009913035526514058737365981089883942141362672799361800310979061556341372666797661676129927395404482325037463167075520954937364797123445438378754485851496925122270345145206374851099587240613460194566875945492060336134609568348242768191065683472455260495825947771304877713391713627883917084682464253244865575906008376273397218287467165294638441183215261335758514543724800279510895167227101504018622869251844053067622093161646505213145517864107291045001640299915261068138428165861034441189690705853557347694560607065964641278169532754932999425766828981894731846260297916318894262866576629797782950507656058817325078727049801067103250657506525860287342044363701067939688001616375088386297379247164407392130180832716919679097008038904928041866519817596503551913513016772898637192432703036363950475970930136545476918800195230868341235885421297230485865376595540729123753686548642963246989432477158920794846452194589491574373030808698196189686391082582843971838219945438067792673614211118561087111872539875926237583300938271857941029413366121434822673132888318015983017698437464374678983171793211184276574148097228353725941626623032511065622610328881500717394162354032464943469336387354785266803461533028003312412928105497642656947719103872880367868057744747595149130417712868778782327608707135708314104427675723718122153437728805208437692499543040761475760981093658858496212039367553727985435439781488848924537407562037724012642130589309601430315686256066417728389378429797972919154338836683395853088012336624993397668792836242487775150508258540402748445861884514826404565066809871313381213662203999971413155201135130297603135316864131754358192428351401353342601591379847318041552083455260404452630538670058394866404232804694316189785578026521863227916467417656277644244339206385374358716773947785952496050792789401834794020016864769307663437725285698253730647078557863193266235579049722369459536805384675488415557138758329073003706569447430074931730083505598872081960039327245458559122990644652973791592321112545562557491940400858304021204921490959408407185996234508195141967713113426991718040202952041425490974959434691009040631750316732615514498196781355288930336212215246982002219780402778557177271747764978649505084919880399625325159309664907106009810851215778723771893043963946577213743597522538698811642542929446533664468179343827356586890205588867161863905128427572883311232202222738939221838998521094394935446566309024120980641571623927773901101668680241175882945593728443962805321751807508778483945775325230864175596267497223623873214513920952437045928794528126233438969957834670854261450893568813927334345720069332449914527207807227383492809495062598402421454950365318521479090010370204923729627088365208926444644058393495587200583479164068742537782084353716376217040096299328365044968568041382863205910629912795218533070032044245003012763473616200263090670721334762623641803443505227788995559838891406669578381588177407893169323824510967418962862473443902293960667250853642733074962054536807620483828743892598344890966250993599357192410392661894564333666277831879956875049892689094694789924676786548395751730406725080826887847029228288862440848431677899536038783291762488609253085780922296950871046682698307138037451988167784890513374234058546833996364511276148216778153416936372887159648774212636921378543615207463384372816411773281864436764156120312340933926975685979839922065770990312929913923148498543048940226630036082107827481399802436230488607636898138497940548331018497655593908474447186653790079438442762297361402426517053932008337501187482120562936959991290043033149259800098257123047461667653246469538275430556544738652820790672296391471389213883628760180070083357154700386509089326826944139194504565871364947875274544695390284059079405166237922900472859229240884921407636530920737206736770880694194835133038028909644213017548849344143081807875319857448553004127616285825644378187093713698863712246442838275696453093866947804720851864200889084038416443298334327675328612099082647881261381298678907068186787502799592476526350711618101430130897544637065743790877621504710196442409160377933088100318434203339133934985488061820680203682045233010210716009494522147893238511438709629054714259989071210855325514140581524902586723100299710983759491581433376339132756442833608394900924271385762705910631287860132749463634086394572838651589543122051031373610997742365672171193640977409781667863757486855371833868151522869534324842116473117759928374673240209953010403771620775827604795020971545356123812503606673746172010038783229291928090039553714556008979510105990523444507576931550455971142218522635407233645472302162966886815669074877522926887047603038969666369456956790813279746998048229127793692173600398406966052860389847207325515632823906290669227802754568441266146997616066218341735388396600643743439156773603308700500307396785388760614192943002420420423595808962183687298723832797390085411707302504118847267495868173205294088727175878759913621538285411951598825031881250300308936417758064221864295110868146766722368042145324381543013041097381965177634493046941129024419194206134864541415367099799450368495946271540852997679543826119776577266227776586264737565271047793353096380585927543433561279749509054186890387420262908782553866408472055736294851512998812137854132210383350577711761329890874486807450845043275317867167354028036844100782210240788979848415257218701638263485560508561251100604307166445181616056538437115170664831436061352259492285356026860444648485426235316671047058066956282690122663677869681466391273549512460492172647259682071436131826486631212032042396766385016576522432614106918092476902476956726094416064474675331628545910556960723505663408648673002075455603314245612193708107491566217523044344734865562189467069224974498271729257885228784980110512865241534399568680972056847423509210430357810696571510679561536719967703478037692485736432089172880682734035299962827834499180703949569757610284909014052187839090099991642782108087756502102884436826280007921394409715949813027051845076280268607271119156093331029678311970462761722920427323312185663193911136136779207295922657593785532712701155740575969600261383977511718981741882703009801299101492842940123489174376205839774643202286245285579467583003527805409127788865479345463642792911821879985486740779676841700916627557382037386563889148780491092570169730200804322990696842481643355988561449927047686412318745710220424459029682161600904825843180299901375890503584316964755375722931097598325244534664578698710634857541001283028921131354061429827310394104607065931623393054096422926284667923074098341835218649899605097390113875051407137154538883133559690301306014482787124180349924950135688939224282665300951097780418303624627543382783620486267555355536773312022354362540288230387634404641654803886902112442514695991838140997576621620432868147285211672016897234307995201966060814281415537645417527025974260398453234117689185573495771815432276810458194217918099028829623927484471496187181310575254473693106539921468872570959326275421120255211755105897896632693815602423674207049614036797602429222822800008065010419746937240466213111221188558299686864023510028295467520927230379735544463259096692219968473528820314586322916580391497655300445852649264916437872758341502030680557583581286970900644239180864474574464506095559227084917511302860456235004919218458296351509166172374231017840560506739860480250268523932651964654458057268892899716486205257500814174715679799307210720058842265045420222405331544533087552156761758362838580166627417595867602185012754000638966534090888924225840768739317827102284633760452225906649773243246478463523224613763470779016962215741546089049257807689610766723683197663157417582530132165113033785948524542108099185764665387994012982414988296530128856326942265401417288536289529375393252462677851249583582485467455854050999396024096898874353312341158847244841504442311229757020859705783636720141814789992949144385328344495232368514017658080956674633277826978344901546332840124715160337666456900314844896045224907606985223910116979093549229691237665924042136170368144084137630892428977701901535452243631914235760501994906733611993192930796705841597298188663510221218353658584142092705699827755791066037610545027003848773310957770194794312595361389979815569448163642552905565424549779628884063596469189046046873816590585607532940453253443554754246615007495962195666054240793200611619183083895049142690683082220270470438575816958101731162642019961812974076354085408268338916962056181975652985884204220729905876887474648554284979327623981042513578836073988181869109253922401801705345438757792306369746978956018696152242334785246745526439919837499684497272935203756154058719473882155293790606959702935629830629470912645077883009282181617398798711522057519458661413427536063668941265050124532162856246226172177170015286210653475832886075706947855898013162509847249027060517934216730072681693472614716728905935515490262081762083301897492545929351949611336489344328607257514500358540050232770532225187625048778709300419169353746451598259581989377085702630511909780799607688544673325473724280417551139866184491731973323752020632821289769053924868836317140687385327146613582181213257495686152162894569123630966387484204631065518923303315701134065310874916132675053054679894001464820277522481653230147969458133039509562420724145411855450370866878670839010984138252216557957930468296526321225518022257108503897493091233863911191678009422490365894095879485691204714699527079022036093666829928850169068073921193192291559898368552679517325068408753935203352935770568385066786963146372854486245582776293362812724412705876007171062418877072389292073268409430703618669336497892685134275941103431860023639925633656914923205923202228626550038290995044822782046859764951406547820203602908810579227399774824226514346330122058046156393228266216848670012810897320737111891273192479634339697980420158152168299971799912352701092886194653420716953514521567791300685293295834520865358996669914300727113420109203397336111671178063502788589583209960391777815174888573480176319861637789481733812531395731156692625364411659823387830507793351176498115108608210658386893748151670233850908306095280644634299552584314003449964922737429196177023111598590774885725212073221761793104360120402736905224563671968108959406555361581804102762365677585373134472106587011912557081806787233732420934408231791930631924293015849524312125139524747331975159970008248729038238786293016552726109038420937925262120751786465654941159426514717839969253697062283633486040340035615981025949471283990604397066924783473730830487257231900998836872471694890010100056198290403448392122267215569841056914164645884417926981985451109847313741627990542810679693046268023600562735971120449081926649527449948808987374170072190354859187365715124886119532982467072580782301107022680169517061431137034511745550011304226672653462620117951113540824826897401239400879582181092900679607617839576253085126751275864441989976779121527453620012253037486191930249598728960847246969770871313764680704065588880433765360527151230939188279112363455432154470639764276537828007285413865836772859676018583869693233653628839303602765325895383487732409710045488016118034221706420156529729674385755840453414740163967754469698415296024030123040004627966185739235160317847352884047548734219668469366373530385700323489226212384977440077527361113605010218854037574846267159625130201517506859739649055501731936297633083309548684097659499924581474526970955829682633534500822278623725342826500952050877839912135567822574369126110963063380246037292763311605884432805492447756888677408046022573258361712384613137327009739470777603611910230011174128254674769021442705517088747268088281945446160332604584630218147271502563003605218098599391679551779048734171675592261854588768318661609247767449909549175980819428121377495367852028475392370925644947004469178201614898296848706854063418860608871613169747953817880068699555033379598660666738820916121009874933705798656806986975759506450486674933527730881514807802732191354454691759932887435959893190299206867036595319858213757147095649417546992983079230857178057281661525482789111337582389462655249926258900167163227513926047168765661318352224354922211814360266121143987874821382300145955183260668622108883320097061940289903085151286166742357297507349799440477474321135562252208996731566767671776479526803670104785180079099027388426543119333676254551028561640414186820680143928061603391575700697918252702224627530748410976371141697692100363599032173065853023544969027110511942768545568038842701719744797763443503612706223705117102589531554059266343923972177640481383341118858047544050526995589402438922194904717061937326226752508710708779695325035928653882462159614726321938840694546506453956340434048785873424626334077437816764279481218807405972478674821877310793215494328469285929323046941606481432845715521028855607095296589166541211295764611713743287799653739247729762116824312568131604955294924279546046127226821376708041449446318626101458585462653011078181428869739899846384862150182577422124609349495177694362047121501988410609918401489844666222987031497589908431844249353465326316986739081155635974339727759921304781974076711457486327688551875457341448700242478312825618327486345398858480287121104348617297433184261303437052587143924181241250900902064242162046156592401951974436196649932006289984906721904957017421848374348838812824610188316996426085775327230898693965339371130957809053975836395457505765490420354799871784901750226391215457875042770978215003398823232923142830480821932508232056325612416929459704410487228974043222424074993342602894744466535044208722028061410830180043405863426054546907466796363580605436245170650838876653261270306118005906969943718306404871067569601150394027754071308977323230845359338135951333041105874059850719195892893095069513379086719140972378536617636227854216188745510308354143051709111625596626349314022559119428447030311758499132201752824824757947472774136145099304091733963601393419118492392050368583838850834687702818661040275472658602699797546672119594309015041081784894516477632092069013439444025209317328081691164908148964494796180726576121512136989481197111155035545986625183543132072841594310046716019814852145599540055449120621607606762487869949255515655203060642405669910793040211629404702754627081206910405135387667991687203757691087360319049849040506796537001682189518676519927315378289619901663374448486858379167662013968462536071124732186987116234143973314862811157702057920971172860871221189824058101086936838685254968006224720403656781752970175897168559589847032673253116961628611442143919168207905625209650557639355775172215610887471652558181329840377838453527967328834876491332223849800398351403027220584023633613751782697148901041534891686850886828453239022222507101278411881953371509515519123872187774066566824848724688249646336204198888229028028139150377406456954377439901454231058153581237034636358819564106230752865087296791166462307787457944163009562266670042515951606110338442539830833435176478585968467860172442327628167763837307759710687963101961564743267224630912314346461099351525496487289080388275453532707422221952539475515428945630395656141075969291753074211740133691620574909417083181323948334899819776904815777402403672566218924016682538153517758158061089804749550630603900457987347858699040058864199246284243754065472140119597191140639973817297648784191788404855931109098171948076519190088247390210878739383703481302420206112817602229927123169834130920858205773671183402012286016855580200621201199784624423415593001905761274035717498056086934639759564227629049949289487386951433150192547876487676176289291315235687692605595977589693779944246829960475318799679256514533883075979616481084482319433924198278601284513827255876242826904015806346873329199629144549420643194391342167461440506351425010627926320147092455880889829419166990152457778210283305766342465124489486276867329445312688283309162479653085813779692591997431948739997791322210256222155985433120440109166447659228373919450077832836848484605740474689923946384175352437653768689049789991029029897492151810283977880785469099666790019746389264029312732037729425148005772821480760099397653605223744575159794419309419298616903353357608118173971761556633257410842176127962218000295922875595474761622051620086247881906658064660604268956291528004414367500550562317647767968527373358447811395505510903809796179047273813811247579740551461363236340433704464624871790882926164517580147741663582091517002536943851480674142620143744264880449543214404930681203277984487163438790001263779041325282059974589088462008538320819063950626018778324654077812472453924967011457075530539259450639301739839166880763765571024081790492953434387628014642575198611001477479772485012304674871109550577084503435722899746631491820365126344637591779696948898185236791919269157995455631075770779327079479258190924623621244991823093657236015618875275004568260570750047394466331891600761941471231841386476222232549677622280491309239497949421873003953937669860748498166707775725703480563454768094621423973641227226566533916931060301790796302343347443274357368347454973739509532525388266915877627808322988058415690635918966367822256735187387107731785125024732523576134744206066948813625864462482624789928884781838907601693735146344457584320240242910894020535520229053187020710805922545987580301809808420837989554573914998805325973900297580836225984330114311338267580680963907288588902852018713629851835184478683879978960998531400375529274751478954206960403289274212632631776807295827660021377874222619257422739063414212419537343865161672381798202490004869018853989581027650558804117746542616260327067883577795523488060041728059943943128805660156628978205207856130626487344703376220245588358815133961721342349146540626277572670439309832727144412868482083665341438941126629095564173648308215496835120631322122065665597612466382590862713696829352480797648991453933319314321254828291916941199058205288629800530144723600611036923965135043283738677101184349737225647314338053836606601010676486533128632776823366377362815214766057350554806659667790826467499018877139104361113331078092821947169613024947106378335993951649467837978644550310392632205148701987169919170048444578838849199090997598730967406428559622617261144857285120722352818669721591656768705837012902207156069356279977442051832247674938693329195996438725632305719406347632635951368973229465591631683934058963981883440168723246937044197090160005105599062033720529484385825491619742497344199277108795791674171235683285593412217789433228830617197561490674821959713249759218110864536631494968889798315421342339106596422025468150436974401760471877807259520106398978320738748242528656840793767601751477919592766981144370086869069635400663239309735886298090489585580405377612884200584089350215341617684886061334378971996585298936123454870174479761397786788800843273405766586400933205065606324711065885699104797527309735142039827574063516852490524667385073319114779465437552240357805447102578983703763791502924071685644109834986261390722961297191174365695042785504325021292519843427217268324117325157735330495509468373198471986878689477130796522622894260070119237440537214815238859026257470980474994563660022744635729634987813286660196126735265108195890967466770594443160507396968029743588789020081979307109186289594282335920825553287842550187813634074696810053667039347866960261733749030732512887225202327181378515450419384110686318096029948899559874456228811000364643533650568886510018771976173549733807138280912841941521846320752097310283608069140176846143073988598901061950442996328692194193501493977606448114607590988977789126905500852154820841394738498351934176454830297484962123260883481155124916385240022033922936838807286390208267582237522501847680761158947195491987646808937190909575267387979174117681157637424653919335825389611388460939804371400220209439470542067024504497221872411029054913869152310881881834351781027962921664024860047758738558100840437414910343682605693560379360028078753287661914079554458366856279388437657024065823418186729571515075537099198928177600568055673979736869073728637584674770221427439792556603492605613096722700643762692596930157425884870447391216081780527800553242024302914986775894813699591701835514592723451467098463350651028590210869177345476112948866762000604703707897184457639791437835705166504528055934383534923110259096337128347901194529856976014517720256225527839540862764344537006573266312572692620199808644756334127187342019412637609278341438495635978057700210525918861756621726413725893564496448208036613439272199840644662219390477402033963199744050471252537628526679680923152758356389008231283950253727560655695581116280752571355914608237714723851625063483510959843366965552833283518513825985365191948774017829943108433219771179405215529750610860579124924064839010077150434425012052885834108692320994555005607547177838460988338734873751371723788972997261509203575103605451567649117646985913956317823099399196675238819939248750294703616330949592745954580446712955914928755119709101190834191269539739015168648701853924185940116792478180326737158422323504325578305940836086759177661180968278991837265723321392794242550829727739807545496740563019446067035088337771049116756776334862244464080490887440555470071831024432752133351877428186266134472580351728813962344489325889359846406805568380646239633126658824407335090681618170036329666089633353392381647642180730864528079805932141664650550278371498147979685346249229844945025267687975330924364021557582022578592823174786194732777751692681950652098168015222759827124432808619910028134038457902212978711764393785779535967415433480774951476271916196363132764586183779071139888654260797519977390723271009739092881970633321300720704828725157002446892709087780140671192111583149261942999644565443118281863482975914712723973059308155789645394817004855126847219023500736895236758039868256962930393629963445561536565581688384335181070104277979005415169138637949985668348532877469175708210214131161615267948753071636438682498265631487345151646617678189969316537379490772709712855192381355475120946233521489735724520124347713232734204499507564916301977665438594764444354678994491292317791643787338828387956777613771750873133491643328547349472542320386640716242811400479344966635937816145220614454978821221986476643327109796439940652158419969117534011397346068202727410198738122448069131529661854157141286937581338055662219556630967906587497242221945476818538729479563280012410546636650805668449405344267667802562693252665634847468142943800645201218831629906819440192009036470965029402177050078682466813123810523289535720657414199452077496972808325565914978208350483754257506466300515541833174990577721866929828698262764145602502565985702072021626414711274535394565506396231145729923025301372898066061976089710931686328197238524788830353105837142908657385322956187644129192571251288897389140348698340728987618706681030371247083657363639741251054623820089447756929376875816255841430204166387561540881765646423892712656522241423106682551139138072262346897899921785290545742406213642860589786695066935624929080345346701634386697990108792249758779886651821803795091297154821419331585887653505295704202029041287166247688216106044524156814715327231467059251270179301090732366227130602445546667254549308511382733776665577132374277298482078475410783979620998768271833403909309509732424499801206862338640688890317841367232241262393788237854347482349748191234149326819190535315806115580661011290952207402636977199324898870977605023753431056911935314700803516583277552547270414428338096754503172751532199659278009623163663701391612635201870781676350794013874102876926002942782510359487241118366888720023800092248047783293200284806571256505014021162633227846416904345774928028695153849194906133635435893188206037559176053495805252443577396237237869642952658241453508707957532892240602933127762303820737831904661811772204185452898539345337818347169091862729111047765078389157200347194057151120491852128680703988027020376415628095294968465783023277841087275006936065965880303084157874453688550070334476515235328182439143426927961159864305743943050550277761249802657639160735912457994566389942186218079516489753950465454744645800263250385001473352242619023512755196088354352967908457955806044838186344822730644826526066039273739085847759499152876753302341170240862344248659186257134781972169871722837842954185108218786321603741876892865564249572130406422243691266892573829880681006542718536516997914762979171592268614776715064324112105423411806468489823775107873316743826246894814511366900796258430337157095836883715478711461393303524702917409397102369594982423146172650106164104954360960848090245143371454686189803132375114940318841222165046542753076989392983203199588458038881048356096306026451949178640061775099492678355047385311603584373586671937878363945569485787516624390260458074673202654085188626115253200339586277173904972367951729379155014190664988784069066775732876431860136914852589667804569488382126029407787245591060325946006064429877531315605392689909422261289613522065316491862805395638782338148872495537405662120726565375546601295817149933629902713374472635964768786795996853530480071213459829818078414420130035545540927505629969018090139675095135432814588240592797368289527054748699612204885776649285097410974144596219308163930880629118551006223732022948125860010428290017357427857326476955180084787623291526131874956004090371849887062742034422825543713219587368363199846706314721091895903962009803940338567758810124068222710819673614465815630202297014163812691814576507831844226632092107949931558353094148824589751282663287910303139565665083050861567667766702436238156290990442610866275499464701683907305299131074450730114804493701017727529176177210608711479781949530742995038746968266262581271183746281777265880444236198257457369542328079330905429664334642354395889335459714581183770557986810793944234904753272583599450859827150061042182144330122458143047711732773576631936735272308953815191091707722989411595235804046574503692234868467469543823619606688892279564395031277184366201942717720832275518280096441178715780839239605891340066357424054735155606721321642517370154090631296445877538722492955326388234209514195818660488080346815054099365953677362941594920392261342150491799542894973479138474265271121935219520053443002351154822212444040220367370830652132178927214846023631113200866675819996188887904005680564583158251003491331921797678196549935245941430450266277197328538305973226648561168428581844790195118918968412968667843780489610185230611374695743266387211196373770554652555392080443007783787404432351313546753220225279215206596133050652465407646486522502705687518740498946653817314953295388652939766639729996079214004508936274645182260737048109361804675239819138622902565427845461948347914543062333975312839932563186220813572919104410812687130228675780423945559073908347954178216297299236980301033778322928507769228291103002509485685784019724545026533237745894682805490521859882928173606950811840080443951702955022698612984680702764091755533603916849349996008950829778495130525698578107494447335129637865084783066261184179733442398053327479632533726477753241436725310546143918901484955704401325360563044293870153237449367971861674671296832925481586092702472199018832574277066616577777053838885044615067088152368030188747244894812014003273165063264489226512239389283348867783619199458580145334457640035301192717818985913734877629605233078958118944505126217486409217722268807053935038488619603784157710978224728710160578429707519251074369536143611805575846099812960964055669817734219072839769788560050762299864795546921387098307212473536497151860952012147319521368118860887267376624828698171854096206097783178267242053076929947734211848005688687216003120448055695300810887430355697462362928235924643852641197504951669871815645350397052988878325421784311278694131902543413496260659455506173363328660461719916683013151212975054564036973876278728782189729129860756661288355147242267120824168760428272298788194107814542939687599841875782492204417427321577764465562897171993974947055282586524416225658621736158196256457633310648843106081460452628002097856149949326925571485730192531155755700761742195062141080561161216105418768047237323581064602931285466971372118997906907177050628140693997783006570583701134037534006177790830329672615701680602511331533096081084758286664302575470748461631049537317944838261272086526513652460146578923986677386614179768193591336551776642521735445685403910729443462937976406101185989881563922769244796034199974606562717305857907518839828345514293248217408144192256520744038428456947758238887780175157642295270198298042783737436575229379439662317860975527595726580916800297226503133355296313421328590496520439251473174439684021421522164654870466410438268007231863041515217839098500527195285509702630244262330178329303765421165421564977456843965592675847521261469192891270003257680280739645097182408180748849634618486982568791777774484262484534798910544930261755611748313463159695177049526984599757372111468765367410035118266878427494853215093975973066422526364488312732858831461657771121704478684527509512784940953207468486904824921609748573905364510160697753778852376534852680440502522910895995071689197079170272677138800321585751385612167686173779030920420280748427085680160881842215599591616325843094404615133298673658760636179372404334670680142106310368409256999279424448690071576736942909171572582183210463035207491238157454600188506383637248265422470617209877198338472161212470112731581564853408091436984402935267083920508889421053061121812798084999991325990820938667747019023241609181712651895967533959860860390162431009766871917057337295327422207512883529833287918377194279380254523166505838565706181041307001260109115740868806370695287837620613822446569880830793376385191058998270189804974205270189521293789498361918369926176195951120501654543987581816322613072743937473318571494156950763077653640143699540008881706778523575032755294720956001785250222443779401490767901036684058595786719012770122127154867845839185113536880361751460210098795514497876572463855737129057937778840923858477668866302434449596882874579112822463202273904805510629037563619937587321296121774623628698875465255195095886609086800013822054530722624510177558493661943413789052371832905635243962024383595561221827869521672207874883733316002061375344048628781519999281006044368238385794797466575972180074669174787000269109130111182038563864900396525750373914824288300706455039853942990848446033726088822835755148577800865017091864929477540280339810265462149072800199090751329018041212226119493300982424503759506338627021477815480023564851672902002656556599875251125098803874573609134290737147523803216081285510623750754501074365972036886524029779262144965240944146766653431945639287177730147487445755758194994269814523760270267902983179451166346369342706920366974319766057964397656626648360297568064440835070616030858258465287844061174590052160531695214248357537978924269552564444929712798944070808368664504533252619351243488708623546581417746369102575814446345860162512796615029428060266228592086708967870831211622117215990545105981656631807530598665063406760743642010641508452715325333312005361888236678440851797630693035912069974081642446138918384507872315231083345318812516670924303988169722512359945729105868333316254723151003668240968322419753545146704745826849769954308389733202376597453689439345489212794955098266859205189884482603502203727515144984435363329709559266040241802530350611362855399814938887369275885703755280009867305795700657480682788145392653313614441382441845412772405135898224459349198678452530626589314696485523479395076070879095521956967717239741815906154001939229016570740923273460447844642252857434877312135918148386458800486984317526318075535262859957526059028951422615341280102640055370896217297529182184397796081151293013485374811355613990898947250381452167369848505156048255041182488136919507978162985091089050772888243389978772176113685528595239591592279419042158989091848597976020874440341858169452763694572718186374172138017986348236848551379710744660036413045000309211791684811031617118315771318449760127053740036310445226619324107724431368389552392210326454005603624138534118211110728920312689914021167699825892547505556862576561509851827151165593334125370806227493883200106347925749625360778698338859238961567716636595439535301692233422290634633662388412453457829908168194732510838986848658181226917101217519151779602861331720726045470481635081500133127084387903555779956269131383247340895459611630416895008999041916765428733884490489985145618485885087267939757154762239768560177052331095739969017512516939677909488224990356579326197141705799565982372255552930416116785891136336618425506307211409739097076095686857718352043775206102217452822822806018177719314799217954500945211344555081758810151201109608662273616250455246842294275420174762239010785888660683733162895516669754408931073690412274021620520620147835943924380146810070505181643305859368680448186305065687127239489600322184979290115932684690964160612607792028242960326313798780377174100119945302646009009827874750319051196820394800703663412141541446285484264515860546084003224535963296451503008219070815948281654026357209480993534865056152468234222599251241312010380131383303123687640609912073629202817678788359891350629503312053744661732004025722352638688000204972615650840939144456881878950930683883915189540502631261973883972414787045260438939102171705313481163963431333468389355228487005023317264587249407055428740022668407944271039812815611529975692092880465801433615489684399709973520922945813208696474794844439464052002817722445072101287333760964229293869367738467899672709207773866644113184585567961310966152345467524368205729671773160578764722273094642193662372009809101173934352742499690580198598154367512688601249997593747782997965869508976917741184323194640465644992776861203197700477038928350241929385371070337258128927690816215265973805161533751110657924775751833703742626720320033748539093435725467301243857989245458370151779891767834326519943101932864418083205788957420732149482610541581668711595345828524283920640094661388941958663365090624425236054307053442310713647330053136876837161802397789688952768070310250757718405470570429726013546208961225844548434266072858223436071298618390185827199875447202070362820246222405670552676034022415322833386017704462019682661068258906140947708309325419790475318237026556793185970398429864338624247073138500918113655753362347928884629428708708443483180619919414669815589708511437900421178891707382827413112557733509056924856733101762779584045423070250593542102947704968415659337207426093856069308173105243291772637833300719311055433195098105540840526631322534810924326909262277587320135981123759038498417975892511316227570034996868014637181975390631169017559632186791150745769983496227408577090724942700080178057689255379456286158951994221699976339974906299230842574659783703664111387619365637505689214991427466989705927797073099233707397210304251697902927538631400066375389481778681279148399017648795988658885541782875863882376355526857657721990932716408581961368584904148007798739106460604332211451802866547323439003920658291013544520538161272861470834886367288306669034937317729057451276520247861718236712836038435088758815951705815031541469389999276894800123297367136442077298762166566975687049876078664060627966650317672448248607182676632434127387199000387107101936317309563073048596852316425486451825072121912830860195836581122127516706903456241389790992974462193944877949861270052853343663913162443480896107593262050910241124282780768111690780883838922729292788582390195302126522325735362617228965380596441049258652161822652197679999659415887685076893539270105326039156327414370376229427324634685913734260369015802325287583990496865617024144310480279987295435418322749241151858830938365043841380735866734342061387681478414123572159255814075221239152498126353558764726766219306594782156263511989888000332128616867324901185267247627399262575669883523376109770880447284997503203314750107423010550391464681997877052204456441019413149546659372556527659269027544221371537638498049508571898007077015396297975764201744491376483580552845563907614553691464899170809712328062335657930391989330647530962718620784101828453428322927872827982281753933017675640751650504793041853551748560866220171902405678049115526989047956595411551689140392936070402306524771027815206672402823045732518583843056233885597426660783838349972173100427754049662085988122845387183789576363004917938970271978192724416360136938334824926326648746084102920433452077158647311865506280354655451144971366673809040138994837952076926505454466285480115450915776748190730370191837579856521255249499032921431196775103813858607743894939406864090004291841128571475719935520738222703758100232914861450836688066687401698095385279702311841783394054664505790927315488002605175582509920130921309626853956225242259625511764546425884837749110323989815742695500673121847925527825145444356004555864800651840197722787094585766828984014728509004927925534334989122612054317091946224832362545863088034418322846525649979996461932874287769525552093890969796976721424049868134676211965814391631009529360334452076792075465679454973862863353280201852039407307067157261188537986564925321374961245462102502374141561042340896486297158580862757863567023384077251438781466696538513975160752620379854156211225628236029473561756342895266490738220276833392730166553830939291931113872381872157568138194646273771935497477037938516974387109722467774351552539871857967692122011946193015400183906723935143414580601145677691283999229981858106839884392399202141840915086775277674613699523992858900485269233791521551341446088971216774188804607108730798261888067998243958939444430870987091308392772197038768353025371199984651574433473698539708718328350269432945643102970767704922665175633251358793552720057550445227468690382941625035415526038877047674772108413912631557017732550492301719052437035283372099369476375805107718244828672780573859274414802948913082066298712583216908049041297473963209104565130842876375820637180099902228846603920936828672086175259755596816805359624280738046241323247870677272762040607854645208704351470005885919905763542222110477134483867513576551851222284400599322423940290343306063091947065728387603117622694482700271740782918729522956958215761581593145933582165254965154800016421882705400232831124564810202819963225417693894620800023840170232131464073753554705205178177285059770624500103188337972417685615085369243734143438056395573862211463882907015018730778709245694617231529188215338070982730666397883063608326926685585123400078843246039789204477599679344828292142340473828153131895780065230660163339765603541506354199716917163434659084828074072999352319038265870426950470466929717944958113755794910844048957403928884656120476327301310534332387944548511389592548948291568912421756594185256248209103850896932799309169754375594770893626670856545606150733812955257693374234839048468286523472186637431312181018187037588282963390186515323498063261330908436113175104114817003434566985445671988568828521373835592525808156914967873218096032730641296902508939475153401188842460166003630267655407439057825290038898682148119877621049738638164822581702990587060962163526121280470521337131812327870306283121658707543658204848045274604819628827214189259566573995231183091522738961267943809888364154999422269549288856586087522570585339706924604663782227939650584190461959172507566231652203194821381386657360204418887169102734637906949400142499810878097729715930085875118604427617402555987618006960787490608193086351739491213092431955096884938062503183256779267397091468547825330768781320011325308677277444595838137259444852136351409157676592749341285915529858444057144811385053186467704444132688821288250579478410473987241431172834232614200195361141107369143249868469865156487817211671276132525807123011115429468389704539706979718075138315813011320872024833435773287882818469617017898837748420689049774352109726383921638713449882432103869266857433499187762196118321275571451554807372481918725120234975824560912269497409281333596152848477476293513774883233078897996488938934689542077409930816538818151181145886216682857912633228605226196719222007805382010408420549638526415831405137564306938905661274033789047519715497171732147874035554162009925403674368780966509255342447594839231097813224655220374228646280081923677458031247703569481041030766169068874976999637067689194190345987975904408195021388155449139956853964698401326422189594612375568902503849064154955237229834733649999484655631112821905999813551074903196405606898282940103561363111954287006245732079179923423583967143663023981749248493106772088065625715150248571206405581749458658686440394447113720664615061438888695183969437233121083762826835220343113492514731815132200279911949417184519200569091215936314848767201638278008120168025037416884169586281648967792021877853581854020231870422968746443713886224973412449981305600972072322501478460105198526933906307081690165770564975092925655453970914121945708711340224822462202512132256477298417819990831632518698823942780096129228434051016674932884116662362579390879168714225122831446893416282774992310106399606492143328871094265858534683300877015558189105521727015332667445341036294542174403074758451754357558455411727021803014380911382506706218242970351812681847027124860113917210030882947659452514083875140588551461968773852664803394769075358229285811221003110050034131270734836891982320336853637604580493912007614733403196802731435993511564644442495471017928896376882626423089419040675197189805331201196963986576180203287431071978507704120262488706274307618804122142735319006694542396125333693218715534625332111767082118727253222835809459810725817219964433175400678917101721565557842867558230190778065655180391895889188544343422567707457796497819724629771824647826455160131984052195233567717662529698826160103758453698722993827123878105649842250859854915824199884979660421183907343098193472008788182466703008134290008902116445381198364253034953747879144742443603234672249329737590484692524085047402582403506102767182134629904257638091898032141462944517760965154353675814232379395327779525694896935251823687159199088806006979475254054100809280605272020204195146146405998336327108804683750610247595805518709273964599868712404998952650142499833048806503450514929908251794990286843059767586275793146291764606925492635997653997543767180632538523786821580952289090010490891210346279539135796926102955016356169621032178678618895101629968250517391746410919291171161403512980101326805359254453478120542052302820867583967184169969290767785256383056647931985663171811252434321542265151976477157010814702786982738469325859461981730723611949045425354439005989332036143522572335801375662612496799352669071809756411045804840840204015818971769005183638168434527439920915766176360439917953166176514544221775198372475830642040143562366828224990552418593869555124433409041542392498287480553439011296843935738660821670594749108996990507452566306252052732781000648637882542877497132154690716825292877038193705918758414845970204785679997340336881668658151094900126881510117411021698626427478713889236077579968943256362396491894280137880553646253152683789612002879882199628350135503558690487887542629549842636373561698355362245107422896897597363915463888291108910636863578757945799042925552822347589873926617742977243904760914731906136020542586158626773014877974356162186385677975078200248443944532573001120252025372748462141654357565946367755823487876600145665861336823751869898273722439427468912797114454915096645300300707474624730854927442628071970594754240722873863808501017701990908227069579205621019480955050265057501002358714421460724026736508454346990212544406816289646832182572412638066565180629806929330426318557656173875650629668646359638492351386730457958968834815751044408833847911256269077802251513002176808738468933351594389337528064644478186264483701157275375293523034881436264754846695888389151364681779040677241155344812323414517532153624887477449191254252681336137320571999129318550523482755456290708073142709894446801200198940150644686881465489840155317627608085806040275791337326917626641912043830314037972340048119925607602344422817888689102896576927753503003588025642431849588766302921583200584783972703439704396297736009724532981012309779931935132085305254962160621237679895727052833033527507076726155733459510130939903005908182518562276532542071230041201603031778819522318528584641615831433896345661717102809130334896862576192919022146294246528208784318852355826989280420654413899652737715050437875996717971727092567558646914902029215101548602417125338497267764955847334379209696229355550890566227888143996266018121464474824620818830608640084882689825369372145256232255051816863977743611652859158889884167841126755079453500558423185170034751430115225023624696149823183336637624426814300741669673357074696867663783439003283396177969467941111593710431825404428392995338546685131110242097657241888539755121484786665914061192531001304071296727603266373355008484358371411043429171296994167658907083468587084234530847714698869260902459462590280010794404144487974265596933700195566128348057903697989513511045679679114492652108663354937214799045671218829632148955428500760245777300718346556368639741498069813600514061307293484399653542218454307663736311615218776532462430245187436279443341301395732429836610233484663112815670097279735506841326601119265190486305709569055613791142328994982833157016224924705643821361744739540698898451216958679813831025176271632470772188351958616267008910376767390077746066447924011497610598903058528255146890868414587518569541869104103636834256749598226616277111478366332254898617070060635465476054692597446696952165387582110962924943604744245648140670757155656385819919410809347587520549083816920760346042067134252534475350703287545741740544697230646430550537203799120722510754930998669728032842855810990220213006949210213701935569368692230926317985026614831795477224194651370668581529023064850163603882955748488429397732255521956172819707998744322485943112795340851955825665025666117614506029866726326321425397965930049204976511263406393178957872282990377225792585841576785837262968037083934485087476905432569988967132282864137222806003236967426658350548698327841810975138834821413038577592075223596773827579086140256746179824071447135626439364200299213668990958378392428589697712236592758241058625030961823760282311923928693358011472296732279583021278115547759778913373337000349870418735235312816570465440386137558710486838571313754701864756335407714166129637825375422956813456226987192464628072273012458499485978290972801352295797427470080030338050109123287709905202925843311378087561850893563832635829168163263148669533704645636083772733883085490985002882410590637449232850695259946782981041874161323207876084854149489394414561620550273231468153780019133530425275152451311456287144450938474580433586296568539960236503078673989310229375569628806247164016223836624026188568653734478865381570842154695540297067931570843164397476310762232908053126437832344762706448736925399620055898832326270388784709749250520866587433087647267483491213835896041292208229721397854391913656394871378496678995741328302753590708624821928256848858035009301039936882413777097385401178214108532525136249411029850427293389231314905831006756466931170331323375909276450917423580234878521460745192216098799148856535888502685829494361212734050972252641831672057072128219304504493079533517019111379627671621854979995133681940579621954689300741921427183470334544231160647674513250670912928079617154476109356483670838666701151020110686135944143610541005361384012078089913988602833307589835551143778784743168184740989272134127000615323681283123105115796571858632487673697157989734190073191090142952938961366096251673521348378779216142094129372683012480344407999745985936236950458324248890861157636537938565692915812025723746538096093007814213942847526835834236937514569523841472866222217632440365348334848347635747650528492879384288036532937384708432273056864078722673745973091638812709414554858988313994359168982192154314744913043840315261646200942410548532259164951787538181904393625804088710067848875103059989516376541700903216128442311831893309311200852375798986016345834106520345092880299863258199664557730252805011152119800488718037598663045065630566231524141293362894241628567432643996979997170550940762455031575675397392768925089885739431566193610160550647981640588000966137558966446283022450167996112299915376125196161205662105337966912552905272908436016588529800864869893686697232155490707667002197507572037344260767701283162648127106405555248112200096628793759062408632716249134389763591502542251434965608658866926999988951314977991645780347073072816884846746591607996548577866849195813355231876868479144928820110877608287464069083464575023205138947024441693191392761600455737792483139526323114158181273532961537103058211918584692298674454226453613579419816686076604011022795869335011344163040251253439033307350196097220370239344614247485839286387393763328911630807353204403245426147524376673567949972219661631439014956344766223358114003782107256739496479931685096175979595639026774865869988523466624791854816710559884386479042874333325166412282716583090315799067449074271662393622283476095088852699304808153349317251905735939447189512532940581471433827321211126596938945729500489098202463047469999211634069089256844652384559928255994609773734348241454485804591301346094347968897071879221483535772867847374352375839287439454514349757562778954109660252349231594866607200383095948339971023586449417201823521331843326180662440371000298660395010875144614996951823399594101730366610174990455524128831235081925716098419574452697864582952543009636678036297735881258298734383020526916818397650013707179715106073938692831023079392049276474584408126353576161750086937527028135130122377456016458767710045051037251513866095678742100132026281874873488591628667546791887497869784998474210345998972547050914133218311830118790200564620031556726224399841175372557133874914103018969537585664197235894173140334395991575538238500632413575306938607447922544217762018849027760952176154261892561901536087012435440032104491064537316729540943934173234624263981188892810789406044657920214015932977778362453019365333985461353864686357667717592988269082343185799880461705034025058210985179478658293546889163817328197000974702273229047071110384134294070956088789097231030942361875227333108480780897742439717467832360248596737180951858809287784347271423326441264447579613843427981236749724876750309522693077606655549032511623283607294378599460993597857730614626608616299975402864459466073806830900792677438896837013446053604940099934166426672441563755988038715495687619507652374608333824340565292205225633826024528972027667081174024660766886550375883429823891021661645713939277759191380345467937882376578072076384622809610656279539761723608762105785160514358079849507140985512649395106229143167292147615473324840795434031287483870152405501736465985144111007963568953301775766224271594689088888202621565749947548930587402828148536541015725930907504902067943289292497179595013461769575326740941896003056923013448045221018370752678080574943429702876737494317910494838325249759370769670990983291622573211168407543824213845376839920450789161879490773715364819796717786992128578976607283922987045394223918644467524017945799102278870606916694016729093114516301590954145803157833696284230210794320810524960498333570859794266543068126613640704561517522019611283338740729570045425761357877125097712970137678937368217019410454132733089300959470334680987845039413080041400947491773962135580932877890632910826742547718218867730247606756657396049466573652558877976485707544390860448312727184002910083417070186725185366868022328187045890544315283170491764712915479442306573095357460528944817108154456873013800472594211344820750600522245544222526768944099740345807115394665859726412283603556176633854608300051764821357861997551637307873646867136588686979685288014447816684855142457974753762395546093578629245616164150717461635823583002236397413241161640084921348435389103697579850718055768490420084504052513167669463045908499384349665806037971798353407990896661838107300234844988614214960358225571269688630079310565700393616668280827829350452246950396228373644388286950723829827778355757714315974387599837590463799804054982599041908286971387031913836140588478694218466843843778722019441186708670543293933227069521191656154078323546278661149855919696708511539916049498582167534286985394968570795982429249216060428167724701193675582675436799030324140796827709786618859115139447465669907110351432361048526864711641260771903454552201949790154213362217660390269927129338421013441656811997618793192806190875253285782506088465650462757056912532432972570179288622455034811717180884668938482829411234537485526274277322170154744942392251690630303187785456633046541713143903403978055018461735211798119103354221132820144325704856616343522192091422285314971050729510982475268056201177776959873375513381510478798644752578743224367895768045496662317130148064437569232807183562920529305385044840525734391500358078397261821916570808871762234595019836416562832458255993582692594217174468609096109109895706288762696954603068564103909847471169556928956609968386063163356232334982194438660613144362911642104114777992966194488259323532655131782700412389765196787887468477413038179603699994623590154333069127708594050693800009225358057589423932608841629925304084915041770008719376094898691432624765326717854262116214601099175455965928348798178448369084027226382221403397949837123278568736898584836850258247365873917597674041669933363441802675759875842095415509237613370680189761633893763996199515398926082399804574023234090500881604259438081831133822323930814131433634595364432243265415050731083191542103615947205236955002246824624975789752818986565382397976418859185296347107364449624733768523167144588771113788667715132402949771263704964179415142655556981660504682807453009583313405683475694072018771417583070810939450425259993349080025678689176566778766361064230169956760135758059022359757564384268304497455585213548608436813381303849828234936245800757677789712240863839610253673528178116487577902720957986801760126396930274685673239233815172113764030194055140312155826450060887157617359588911988234130274211889728638406879789490318436142915272134526550051773896939284809361528636585621390882149803106382422614990483098067867722893044148973042560510987849439531637933826166868741639295681746844514969008570555954764867100347706345702895149828435376700792403412917111378322635487608508576774569657297947648749696936103987062859587536339517729392006140395689883950520882792584648766674487624856425515132006547266131859160147570095882595025211949937611399454170514641307343639793408897613266237331818291831056112882649004912138468341371058340964535661335507487106017162833123299396917080335814358989338675183898293266605279286986755943095588238527131284636256786541715453819103411130812317325976017730034676252613095819417229988599761633150680119666233783095079715064607970786478038912222409959960514335920936086900092236155239375996689712138343161439661238208462151186561928629866449331057925676332031237068448182964336503953302028661858329601425109035106527038986847568928021785919547727757142517225508859351780435483740108005912538218227230173689055369203499295000668537120763292284872913866048197553805186493805314946103702514418660968904293003036119567827825302236648624266468596744905122955610881727499118626465805153206979152851741196628879056529693868287854308915190179129213576598344069823339507434212839706758825175371200189135843927761691441557746820550850267044767611474999456376753045207557892563846298878140953827992563459191097455864089175854204940220515839099152146305363653280410738138141680844996048696998205456633873983219135701244986546408383146650030482734750470785557779593238034493536325132866082864999122322849883417657369183461241491599783844373100882493964724085709350486992674205575124806505791309782540468908756356516197865498726474667363048734150518498817756232132820932002882916483259314038965762289321209824582308249800662298456411541432080314541899242755557757514045544505923978332721673942488707914809887359124563182388734761010225797828231127293080939774385513059981540393757471904221382095470208693987417790016185067335441681343075234833761790766904982534700716437039611269344148799944590910315963862730273608890833187429100340931646519693174181611319764487682112408976598345280189370136171777305498232813633269988872243133869147360494023635919120133363682713701709651776826650806271848436802316171183069721838093023117876521618199665623587910738554381668286288814007157618833286028581716090012257284176781011115088129192624205091216773727193058206026202974353895877687956098587278650162117257217555766024107552003947171487173533573795273134748470731146663271442765008915352814956289035310029444321819266394329806710240365052706540011662397670110497853824390805900924453257660340959026781649765440965320105512403496161083266108763316076277096575517498722437709668486535380859028231629620852239134102606422360104395565347038614950645257612075101426077176611751315057694334836461686971131159765796767393140894435124478829012041940497733502259785756156936956099505912000501815649688918144539154126949551712992747700903301089157693487270108653737329038967842579542859625923147209094577987823384714102491183791683436313915606360745422524182253827142869281221274536310801690220520977898020683144922532532896961650039345852536973252377309459605374314542155079168964975721091645200156596486175424841046095075081173136821371513772106683105459871655810119442474642885853396079083091024247260875503388023269278735768000562300136491729634950616993112329937415992543251258711683696544781067970321739298681741608043015821370682463773235340128742125592540140025151716108647735040054584686603472233767288013536259274698866050760805340839495010713110559238034205582878734307935948289956905869142230329266656590899463103208340603127199161239419969442321137334638123817783861949670518052201135967504853324893953325847326257021958590527389943637038435005785349475838224206215150261312495992090762188355524283484894058162132844896952434881893710163317623765980001747993838695210184911354367955258766196716374706686517979809142758974855519607566822214697699161220454141875057586666170773408589098198895778532894920510028858196038493579831865657679891338493315016668010342695987334406009635899543229688889687718326156585462114948909347973835354654371926894180292343439923759719593879463173295540734488578069445989408353559013786793205781997579020262794142846575894219011850514172793738206651740430016627262836191995319830799477780020880399759492656912432178896023148154775726530831096355626207002417086894838871705941458934176022985328421997008581142167829515914407606717823327107695488441699252872544686955879543485351930373729565873326763440478509890759241137546038056021332554978055824674146881681762136468167721179189801532013609571114556596541109452278042477606704753916450880941254347273577964153298528946219702325225997945228031146199318042805886386405676063490676733829859660892524510482233264609970961499884562855415149949045441277269029027798739066989729440365329058816509313826488623736727219914404538369079121058581257084393827080604882765521550390271641299276112246453869014917300034049676424392223542830206934845767207277591086385820364567475734381642646402693008087891347164425961910679167880087865148073152354679429599122813644453371582318365929202886310569240358871304631376332160055483960464947951124581708857600571101905823458114890835530173015197768552551623596013458951766761702736764379662884303681472778942297635267000339481390179837857580327885637488934318882534337673263384267873429411372057945773318816179058686589975055026724465665701777106938200397958615420131114348727412033708583616357794215357505910915605205601201204986883387480002631659578556440904434316047580821824037801338157217597435701418927672694382411832786112014906045392347798186461103135293921232694037795611545974021687246166315738294553163302419608090329339216677471564152361886320713432207202162815673885827823407212738928297557782025990242646147913111143781391260227741864315906484453960731198626983257578485093817970994600345258688457507746204237958782634553814372902889474757881910887513687798367653182247899601169053064643869939552894351206584581021647802717699701479583461212347551001752310802780470915879300163210778092151615677314686886714804786295304497597710704429294271032195906192718806357279187707905918391473987866922899665493542509139811929217336469063979573041221399896494683460412776274222201788995340302765073275749053405529990314625668072396218955006626621395678811676349528966363107864845780789319680000453086971258307312396734980678146680834051699511082421790411078537902637519263223282823424048267630711255747157069392694720998393832432594089388746325685565403962045718235617792643259693838428810596802476826959747475194546714124204225597412520980030161148661046348085153176119440959186468428975044467169914471127647664200465680772804784293889918524336733310996106118765991892957346308150105557827837937492960405100419651031077305368161208433895073356980135250552154914704283348471876437488088924719640488662027442891278789965783892889748581393361870997533092499082093424404930999961153973242212966634596513476546339768317359902843533252729545061659078905592924970150513680166080317590001008545176354343390484897230984719348205072838044925221360890347388531637217858714883168245876583763247911909685701937586715799694385218586862993657295880882797562387863246001875028232719928773522725396816263252873848394597615509786581186172696543345247110067068751632747128573809883689489429765474847390640495483019611690067244643296027508160626347914148814030741541093685908324469486253596655812609537176049660009004255150602187493158048783411401676148859619134309522869374158313322558004213768828064510234118053294059320596315509915334827979044950478694078657697316905582592741223728479824474503094290238938567520323694431977244597554734822179682524561800499744837015213337233451786526681935626273356839843762029856816851656657802962651391917523851301976512429188930321167854927255298806888251277535025140743399039919898521152726778282433567393742628818306935871514246651435880959858839740550848314338795272526718005951200088579909459118021106110115267295152870275744803384314843823836314954347988249370414989097362904325707227006765670313004917163067393355744496628537426952869862261965694315804552193693002849843004754246654983331552057337431438878268842118989725809266215310854034324478501455984943208483807756697498147254410293250825065989459285633762683151761597473034699839190243973903959334561395024595365137278877496638301195002025477024308776563143116309425123512311882736599530786791539668306528804552662111305282283718620787418072704573984969924958511774815217689995690476822946658115328164327833882711817840383679316850245083896393448785865829684957223032774544194341754673331921900557872214419310696281085922445349180490670032833291901372662952937596550109932794964776596336496684370730085870127269053241264486022016333038406669983339215143674684608864845671672674193284596487629051809113710999476836406890418542851307071145091389179853314761151883817182997141933239819517968353382870983586167373804008294496735252030652709961074357111946730676296589032743969252221030808159245524490363416248446618320771775368475501760463364218685228725271473575843497279370894764243794018342837686191159166972598235332883341558797697910566761337674135294734824343828289369041029954724380661681458676526359860489527295777452158767537753093401303199137789656634961948579688811181114710485937252875334983498639364654639120925361079752875565623777373950921043937296408213401747873318527147862346639276155884023981958757841910680002825381432568036400053862503391554731693097370576618560302357201969915936638410250886585693596976965612351575783115245519862747798278589112036304498464031264466886004047831215667978946305592358024269302720514838686605846188888286898058635371722661298779379065017345343984992834204154363277834674082856983027298757732151768535021233148907141698093828816932058244891362672532997315799832855693530032730231132447197836099283512769106326678918478388659176967091416028312043008564129346081235994263779421481285484963907174332190550429158729294514529360497538507216315440136892335193786081399135739580046425368774707681298698216478227886152465754146789131510572295015681564000535230573389712141641117276993920329274556862945902983692721524228844386495509286535187734600796142164057676318742074317973630411122243794498124595288081382934133381580745387295661990579427169503318926545065025539539966270867587678432522886063608619108085564355723500348045516979806612759945918807443417345173820915335950411999287143616604875411188154652264239800739457979152495046872949200437487310134175457896693994858223321571496952135083900917966891703299364265253707995557433877585110123518461791523550724200623275877997105869532700323187665439952572153821118266007019372022189233838507149184783519675020830413361986339539598672830242038432777269426545103439717823881594030939841603163139268808534353026612973991944663243274249287201810124234916595845656094211433317974600065761118539549180701811849367145974452995815970068661153990828246509062070437067647609368039754792300095780144029077511303296724180194552677497264828000687249967516007300279389309271819770032259127164730568293674021088405271910971969831964793612898413705454719487983362153483674661960436679700849806618718981900709345587831790472916603336382307382456503538373577211235152563558632717385891785253180550868593758364740819428862772611272914791745138427817125880182674063966414107504200213569397738017581973669465625080568888438751719594963440187508512733737738728209515289540742648552412858316499335145757875323246325166750506458484158380895837824278683801599620750726620794251782793420885377148381275432794214247880944542847960104352500582104491550480091885185339399907426061907458640697815942604231361956097308528994487008089753418326614586464821118179001050376898545860239403811018034556345815324411568158201823766810394789806211886663867724116791025080610556525353472946334247095658448797117865548599887723461787526293761224142676637800768081028039566326681892725232954443232326488605949040323514931010178627898812290896575122937855446264609338497026217246268365652562085726514900654017959255434798663350271087792529736257799520256248228807121932853723478889199450743009498900121964256938514347061751662371350763716091814088643868880235623238205459752903869375877770760434103693837772203043050220510372575827643654788290774728735204453166788896005674527696173374626365405934336960666180063229656681921926637070985928785711851694325936611850316841634139948122202197916772101200636267653715576407248056857472535345963852513598277068866630334661392142234766689368065379411394622906929911712569739451097339301683972719934135285846959614255481855643336154210993256474776049260537866604758919235403251427109687088679851506760354195593060659270539243795008030471200850804287788075848420026219117129061383460820699831642392887329882459414426612606358874707441789986713833620771332022739768277411399786726239086050914105048894573664083105508194354955211706508095203516046233119342186340376793915143664583388215769019806245678674154968885242650306210707927953025348250437160499345659876571768802644455366575965688483845781958694124875876347624743099653794324064288246756541164846803555471840982592168154367937271451089315965551180211481007051765651305633456359502903885544036902320770694077485248835508058295937701592489442674031323342804706956535551890519750832867680157240981819141928113739765017860462015506634141521487216587796277220014198460707166231734961420793952348352946819034906771543906146007583742007901626481587010187639712392601603363479643415770439282506750955035274196136233012415781873088263405035336159454733489171677155835588432219063851473089013177955876887349138030826772237345900934459201685441236906584614096332184395634339021444029060953107280777080189893277249102972404931895598289883349197611338171490768644622679061719275017249668714936220467993578769179609247160098166062073191192599050923648671947427680084099202991257754389990057957104144053534923426413301071023816807904556386519362233909921793287118982424572054223996959252654347693292157444965079154060750487711632952798168431060309176816176598137899451346411925065172996948186365231066523603249864031010988036880434355015502869937127390555463295503543271494978483150991991777162910764437878902227770987134201252854587150159008687689362776503824756545032087093770394536969225789859216634423684004192454160727842910471632194691121481360510832917004956352576792173090327943843126751373333649689881475280399788489996904029630835530331305700435732169346796823600987089764560804421347511615577843532005556914802104705606012104051948325184346325688756682665188935917053283454642242680203352535419637605293626978670895610698541833914191934050902897831681168969701130650502301887973187659178628805510343136893151271359700039991858670395406800551562852024056534171791812587607840682479149101609165931317113389974197817555433239998892384161142644045671998379396961371972963164389378427394085711298644757992004693150694318299474470355190938467552047353228367710576729241623556026060217555137564758153723912244182800345584628101043042784400179958800881323092689659867274950541174127987731612564012411443599207165354076374854997160994591874626816632269029638770057255913272430937735093379724908982844662182217718363344248143483124894227426517621999426134447784797116776152688832225764226435403460113348831488378020017987394642166553265377127202464273692105098923340340860425420523049541783204061898656276377325386871273854267905365386764172466273362940593872743475225279866214494818293969157650023167623834890656545100362396337327981242816005406257448374341757790479351062395699445423544294852773989359077164070128601620558485051121641241220353662919663157865029047255265621616251363568913582577574181477467867679903836963779239694453367527012843663281257731926628390912370398675805391137112878653937483956029162393802024861375957713894034904976854178894582832142926997765707376283480527974340581982172091498273549021706182367927028402949001997648530939048852764457438787865377193373140675794862461770618857641368484133346924698192858429790693929756527367370669271773491374139810002720189358869798783955241779448519545825446955107810178776539929051977590072311579888693271895492507679476718783162071145409242107760052030651834742569806339168171102869992624214818659726968682988870768766108609244927639498586815239505514161866896362953253452615999483602042994255139165775682244899729842808417670387504788839079492577543242434844668367836597324977060911549735388829000343881831630828927304067900131566540693718874872511158055911232841518007387690222302110135764545021782596184791503475206156854347918981695543391587965911548251900244573582192098884401989400180343196094758928831937063051364749698024677071408874284994238923097163017569672675984240796709050926923651974069336350979822755886731587924388224763927704121585856047968197172758108048727297495826480793861112158068953525264778563920291283963688823764013823088029658144286227452442803614641587974688155460953268583727324567222802463813374694461423397664006430417326639146458178241519882749459376719256130367409898294438701967204055665893686013798433684964706798099150688017611803009578341050748985206873177685665224159862189228795182155944810688433020458717107577422025058846626905335013158731684879941255736236054241720900322438246096201410108448638651099930849649821704907001898987869336279245378909466980479722224090325410777947394883125869867336108568008131952452866288832487404661421329280459725461573498828175027464035638383677797401878122539751777212580610933430255060107870553684187500122809266196855445240434258123074570112497846386116323216272458381248010194064191215815639427389276363873774319037728174727712289416549797793133717485216652283083795758484835548544548819488006056708029569419070376797190526172066646956350221526922676414201556071686986637497888700304973416210775502912674163871969990934704394715492234589062038286181787484368798381850011672205332230989510572359509321947029345301655208093180601917072638594128512957165081131437424557976935778187581725650474607851278515385712961921012275797426303295382229072267633558222419809298347596165862020412647501487446056886548161508622323088979701448213504046949564611147100616714710845346375792853212814624073654721580195246068832468053198976598068999944343240887693808903268225494459667655879408741990481929095520568781774678981192099288797917042713601294475664742034206266706858040424095422029220465543094984250796227964475752492812853410662191891181887292887417843049606873970624161589027515150907302644279736323114991762058242160733312222312846893501014756834387265755868529021404184054898099928310688419013525054334754984914832732722670784417280734531625692586789570849941246853060772063273126717905320729138691864920034913001704387601825778162620982681433807710409579839851947620564456305619021712817267235879176961745291354021930259386776136868410947110792244891068034196095482921196585938272788775084243370647845711033741330797218544102189272618389867646180202673505993763509958977827649766803032344694028631281197240154864871898931766874839054156463672082979511009113134054679807655311162002923232149357497216750184492804498377075324225686681499237610449645547183081290885066958953583753150570287145208178970381590629391493520895873473586902643938842393978151500725195968130341596978426398567752583536194762862444659704678832977739497072795627415571898902701544799887664705738667055639820279967320094064554702802724642235715806766447312572593412443487684209879857955370418111818889441384490874810430557359226024172615774171892410371463772733830979893520329015213735438309300788530323870587798347794179486931428809653942973694753191921568208302816921217466424738061582385521113431179118477994685784965084155063894328483169415581208468369281134642193727511219160334754864531800867123926721220569332094675377179435875220991125111973714290777430490469054481035727124026242386362708194582359084039978381835766781094523155241858006802860426348537117671762010067447474001941659559997477498320103932123282516787809555119853462059495337552480673290788534720345960441609339750746747678814064068240570970497716281349592390242368453042173135100087469728207376868928165636648931980022097021949267463757210644871194287145317562544857932192446455935562001107788524137336043997688437089402753181462428872695924673076685208349664420761381000448369907509204523166260548098953183366867820575443034210834652347418125300511340253919331623073061915072199870039055379902823248432100757150374003560104682953069303146220861812660182395996663368801873138427119455424953345518719706258155959046577548909927293508868147453089911687272452504099682335398145248339253099425835498303023863466856177106189577366983103244137196656102851733149882748301924192286450529318567415006418380965488906698346350885567266828232024928575045474059222586938841778090260422601758449650178773283945016484313450291483125521123261593346151326252095894858103051652835891670583927819525828714935971460342608583352500557206598856608553253085775121921364364449787356977678333459979145293121097519174840854915611686245826401173206465709636317905771356307144297042288895705889639720114448364030771610731529286782118187122479334309211843457917020298174957769216407879593113827536198719031067099739282885203682818383960084309419183813246978453713733674670891540097636530653952256729036564371470250186937678443615138946847439790900419175562633342099956871857455291314400570690023625480114708075778457126622264514597424040556614012603950598925386679091539969939988413741760700568659015252622753791168570948406834491883058686273373196494558965342634034402540968972248622985094893167019182327238788595871170928617321165132409226786728928397973275354917182997716825129188892664928318562094039464532866317412050956671275830620177310636204622948602234992818861600754119453766776569853347802458446526508295099977272386967727076346516166206245237755071743996664303105492540135474818206344579115163950868739264579776999755081918369335641398757607556535444723927315882550287818460811198683380314611259819931988309011992072160841019842423418077325872972882296789337431565042096741085184934721255064338954240868514489622459554384210675245442362137608751112101110434126681356254396722903926208714057683056328942329170860649339520985445143629368906337812582939505027889746171490716757926744299286470122538636518974616249848651072106156303287432489659087323411124575610306203876440900802281864668858065752370294218066371556766404182701425101895615687544828247215509329771125640323052413268367775467586781064454496479342726221486390303026636874354764551487813689578263444465944892889591562505513358902465283446942203352832671163856047171208309822215332435149914409488703968408092737497066483336047812549736467491383768752215187830768167768735293800930534881172466645226543092215734885851390524218587957995856516817438447340387435835876920389116284932752078520096161096050741645714724738616837617738800346191803460149593001596840434009924436557853615560556234224497829413290505357705616671825967416566398214036981317209177235208682525403593778899493096993775714028886855735108658449829825382048912822752715334579658776843834073536113185987862790555827571724688960592145824508235020523455850838152616522617250211839540266123412627005606259182202325833395393225908497774027598060212861819624620179931110652179164924777214195580591811745782585931573127605506613360531814854812731337508550834999409194617072895827003059948112679182449675142453264284331314624758643195457638524508254540058986954519747094386495698167530881044306973961072881637584964982860936696082947682135897057753527116179966675779964901084256920946263540196580139946225556909664130888942415167188862733574105390068209349971267182250535388929554761592303449520205625741438131547104137687057908256537035264739831644691236973053850737810892246522139535910326558776551947336207792292342173850109540901738728420925556307213889604943693826336920581305714197079545445224977878830801303678432860390404375903567634730208750527246430215969610175248257790332992532705016769478955134283302903400047087799091197920496458745332730089356480786281958874940471426259126605900723414030121543476541117463490929063734758092996951451117491238837401276973852656455959934145795412284080467406813503067869872993607671962155395785645626555859883382086605026400059934953579631000982238446803290528388725403551833015431468913105836337939851765141953602957618458975863274346049226284198190920782375418329722340647623737467059699893643769934922200208898783181354466221006250208948195955811256508431190951163893056207340743854697306211673686662918965652137463247975264569962524459986953926010786406762881821372467440132603041899111574275034181538942271342134787092728854861218135922500469793484371607543630850129855865005622853658854547393325438581272021790894187009148386487739286103612293707686892829466769900529725136608595934656819269553082690921262550530581592423496716172975619275545883656055554440204123936662850327541456537214419134122227063574035187695845504491415227677510436074881450197596835969574190219636589592718823428776042291457363013786835617347154537914026646167308746624978417054685935845936311735036858277065166015463542051773544836484001629748405793477527369127205459143175374752333445530132804781813233833256851055808607604469753401451320540341032206736819093623085997601166403683087854606288268332495173060883332301794947523386726225610811704635312344824938030218505864997553809202896921112093826134464526508533139422488753668758931020883386394925323663839133404304544766621722420770429798904869021686659667745401910807750251809773296291665803902142925332875335535826358016909533557689481198195709343430523364282099293955942301424323916522684715364573460008540755024641543436357195355236585218837712605332384750879675368283170581881489304509772498690479851144652934681372996473846254086252771366970423878351435495166128960603190051913231802245074638269219061444221085556925982643593950061096520132297141044389109490396903499937006546410682386535825305762336703138624452052182104109891965071755444158530276314560354089204453996861320203565962524698498497234887121149513638190532224584461564278163917003354083118069358042463040540113249869280424038575637483205377774965664423912166956312970583063499456796803516141002693343200049385069793421203143694702324459471430130783775229267198745875065666356886436860796584115859141346070518316194520908382224030104515864868148284619420033437214019623542674562232281709617630219492128062461861490947236318532014385159568502868149622091455855260474542247525005992084572150782499257367059653549146907747873838239639597068228345481008301177679337444691501922700129042679270284637888016047702978393231435784896654200901371891861209872155294439345113427015943155069681443438387962179646716660507086108505752534038204463787735416465797946955934858979432098570737732433841807811380167364624031729145133155718699687038912581903681950592651366486729649980530274502946923281549074990752474497728163567671123877661979427595745238833787541066275523769274865860825743306576960633865814581495523320797774186984307673359505966942459368823942029265679402714298735172530851733708117842555838057024498832343336992180814409197235388696519883225159612726383505585232137676575571970754040784667319240910671585944975268017192892370016247995907460531093138643854779097329370666635019952151204642083125505090859648258382520450597799428240517660369399881663004993320572540529784973593026749160591089799166267611537660587543741583430199136100376241591891625931676825530740175628167952452186802275291293246004698501309986877868793628433314072029618920156588422165769061045726740294139077193687068975092684752090996334914226979303525044289542767220957221214338876675354407956539152003592086780503156749092006051858768360850030038618337973268474457032254796860122878972163303244834848560580169895946539251889817767258600058754682511877600279831834193060632547134873299876443094930751048255833956814454515058382912972357487073621434716879179330412219512699652525403438660677198643414672106364074493313967207909726980404012219369753465752991854074483332407473654585723364570448408473469540466679925090489865201760278056379464525332258933707210920042468753620775880102191389973856020334371979521508740927703278568682368231532230070404139867178978127857794888165507031926982192596116409693642520184411813677555505077014014320644092296380141054274998221061791707969377353828237884147106575405267359297176573984837379031407462567393011882761982801441324315754345410056759218613813021293807513200886809256052638634008319341331777713757185407406845345141765533878393037996464678936715470844179207591670024729733587074373977023226905125317225362426233804952084852417772747228433692772205641592201979992490422584101535545666584639670072332490690908334926393505859739399772934652367883487875227842803775570654494664077693858677399503475306039411689625107248582819435598681327191008487042592757769436926986111539923752156557663271784050885092604169415793816319287484385734942356673291051837841283011703601994633638769323612319991654242615017225519292717505591115821420374637360070371055771567545563987072616508952782153157693288512081069186416759574176669321181270763924342037076871912717072693910528551372933783601525652682077558117293509507814111196817188540900005887799821004182202920770560036669101267280520547432809758958470896863082404151326795316853169711476358808983500311813785980102107652584814851121181698624135930428837400042895253799676159567642656722200898353169091593420713549358451703969926995207644625379250334398310287451239385210069630971507418298251115067279964785650364467971577347276991493254704863446204141053074107860059564066526351259625012132657708718407391120863569578070779781522101154129133311445527363879420876809296427733487526008776547791624539794083762476051961812154576851895745725828599813761844653225175055838979839798882915704478438684995838859482284937000306403488325957001840823586942659830616698385082908876014059051567738425264715046471357332879672137308413335070992523815773531954991393971660240468638859296081505747903357889064056287386536590100325858361005996532643849367042443854101346561595771726884997388253564199747354360527414583545738973447718864508985409901550082443253536827766758306764263885058964066752747173220281763131900563888281842981281437714793749219317973293129404925384126712254499337798414814913984060815358227562047706646438804114561359980821591726515179002263223175141341250721930844195749394426625817537663254676202036687321038231223266309124073511109438553045908072358898243853700990260909385285389048805209179728230558144678985644889818728138855950115280712631221755045587133040735058990676301058487671231773941694606306847220300981424280115564419918814083113802570607443083364125336956210824963244101883623848549877352503740195084625282893480791425153802518529909360684652130992429840194625752006864104447354051319083045969535391566602151852708868561238226705421089140185049437401263820493190839812981902720096192602396375632274648730815694531042154631400432820067845703507296089366971893696360339901616302571420933131063960633486815155021909135535044192440727209757678774074255858408384715392449028985972352814617293223745097331574440775759050310994968792323215068324972212765195076133752972469719797020711177194608545240517919441142646133321922077924734993457250094602966736811773473456944630690070638439374304874986799026426874326099702932832401898652524443268390841013393365248502541302358572295399453653884083681086798694367666597507430183783345246819308530124414095381762761835514366696752272344919743510174287840483223083154798534234049512215261322824657422837167146517068820675080807470836497721715363731227474306557853859109900598292401070861833023186920531701349854075997572071487582865054924061754942797421649425467046945172344223417100893843512320780683125388925556990332512425293966250953528210176902274039902177137429823450209253457155465278934967374261795896375721441145927409576189391602270311041269646150987455312270418589923295340078909395661198689665817675324654835401941895226949539728418074774948166710777589413768806405197370375394644452792247577388228546555893332522665811161727488917080278582462359321008844690130775096479544447243687590821327312299208083473095687119091039657828735948331527392552315193500275869876704265883048933354675172375965615213104242109870103731012218274805631711127749805309982866379206117664649658314915010829421732656757394159368204390109580678060372820597237376960606775391148982763492299349838818354768631321008857799270756135099230353997401307363241383893133402077082040951351933105710333054458985421054539512699504448108098615523864935452499909792868265843107726176393883243738661019957352719682382698533651490076524170147445341730380631242946379832858177645260525436523642406460106725653225628975732025235141506737005195550448127022584789007420875069945963725129287692933290344818313912825474976069204114086765198718862408230944345784654932754030736170607205624792077466608402084051576277326200639444161109294616093283530552082251942359878551677008146215916155764820904338246950316976216865788814938837007278169044249546888517689393048514730507732283757737275852840545048831513964038331215991745281939929585270049164018435580097317936918027158990631816942809244238812802405194232162857520547799785366880330774936798738724456859213040411655180229792482821011969417953370084849758686545144401504557016260514509250816776660285848081515223952355867078936490771344505478608508394270805360321750247274530987999727992081171903936213086805132713408280311055938910241060725441786002233176488091930621566126371917210860125988853293264854943536197483177463297206774214023493467931925081114887565475448719753813730454762829118916166716426478147849560184400352628944354876883517669417922012103767269697816621646692516086797151171257131092297468553704571216943324946445674518714543878002497369718025836256713941658579515329351676782530902855466696305317203350743551977578189163926578935075061395377867270793807543508363812725895162155026126308980265625304118979043925008061081151538110011288673351263360578602634930669781607889838469948771780607448575399556223248103194053038038742303645438923603475942565489372413286590342277883638508897096288031209309800472767064470743636920572076346889529291182809191020147430611747478740584767518678374966536720717144135011413467300741980052187566472076914836401850211833960897918031971338991597117302358709405394908605232121512091595925057793937834531492564804255437704320803462122769435330984293155243548868596306954028525605564786519977013569776443196321140274872638827854503659748653897485563026321007849162526695590715236982563155881425969852866631383080764323040727318914544034902081522324867900225309332979110595697325244788450673645373448016857459167249933794054573972453683541857687722109323360243737368053031772519857111050793468257488638669901410034004969584955360037707548244790782555642319744790086773651089683849944680881362864973992390725328669065830798009608931970585709968311298065293746588322157314408566020720420210452255707541764155973146263170567245726418568353565518807159782534276142582525679105953810953172679446002831163094515830356473984821686235606761848884837822453838793811989791720924405883386807739003318136421481805463078629611357045377248087299004208068870593176941650865635632150139858693874470430903079854671533488644950206549758395187128104193330254255603973134751863130128711731238359862822314317750252093139627576855868647252995901477793182767411679530543518067743857840999693717807146174298289938952109275696499917566384252195111956009873761524633430457648837558887447631957572323993807815128165060605229759686744162450951297598102910616150822209301556298881994977103111726316045252973766468464442466403143274760049775657964000177319467612674959089648606812772291174965751322819065764449297852564616954593390324708312010683868235147111477099945052413384389687124989782637403431528223792123945223110891386714262086549636808859575285712148380244077171167237553117210048980378766786457098322927304021121187407127645101993507346538787645416811026847088069322989508176296152027997852848459004532547361381168582370688077150415474183376542544883369534347762564768897843470294545388385159107121495837973481209601869769890007859428719626732443035592869549947000456299617661588241400687253498113370464442749856791726511572158956828298159312324870802622966990254560004135921419063507293037726339747453589877070025942284498836729373196958432617270456054137231265294977629631878832623061826932155625199827170577109011858731078562156517158496443973624642916846752442666673833759540532057278655287776941560366428017927905837280696909823952294473299941873772980896646724393209822175666107018604209493245345635488348773685333745559213135243077345507465995314896581400018763744080690707772897784255086338446465678441861298841060019337013647676635979344423597693915372049926325660252822485330961205934503781275457363011236958403521209566452777437659312028680781909432430535536454649341501134525133589612981790514064468877777514431647974737998384690446949494838978544280964904636848720255887256661217407051854666744663718999975987917860212694428661737812567520941867727201426311979199539838338858979984367126344303212332933144678361180405417463038061899858382379275133165884305290128792104063722481153156080822188431153384327665963987139389909405498293932956321745908252200964078950691912169109194485282064373190980607581604512329251639013481782223488209780760051402644971546666287915600149441158216573971970674737425438109938990417312446894956687542005562519004945660687801213362450537230094545325805403854486859235503731801344127256162150702364776507754422033504747756905011281088786041414932142420834545646179966146649935420400294335475237087054203650961102270437006491583825658488218895346014873345588282635657943511201018800159252419563154424416120346737896454702249793314817130943016502660690627297833730423340560128833027459710622068227357600892936016545676721268796769934522432669908466011119570707586195447525464351146477131791619531240635876435533963229890346213185793078238651432650944696303137789044279537002502384286096980187875700746241505029586640316813466169309763421001829746676905657866102825944587792677856175579155573508284513500408096390936585757111235023179952062901641024960980401930548700364217529649444392437731773251183647426268366578534084939650572720963874679285588209716923104196914458395316354103328491540950101450107605709631074193937288402687421203574362844091246940425452470509483180030019904221700208447672015318158317152448982364535233303753597642766492773285935984404197855834513322744328375912745088118125268788522729872198000350365020040883547500784101919637717599419331413802776406186468592074787489162453035383041733122206204248182836313748543141098202988484378165497185363163205941071817125049110696527278613739124312267756746981433052444927187155894201791428386088532850393541951768721029394847330075118300129636445430581876944422031128462539038291014454772343019150822498215233801517730139539687876596942396875215001787777337534500134831134205844297387592069022516519143015220610532310128255916034647427555541638609284514727005786437642757988344554491797923861275151148796500354927022559322710352888833015280278540256844438330749186140823722814024704608915039287938051744770585005834773550080973781718390115871357832330501148949202668442047385947594706810949459341529881639269522673491592122684806783472096623385627236603131565948449456242354852045896139713771913207811973515778619718324541966234129905065536669809962585665755547275155001078152438432056072792706176105817328988366458528047528073036166536947929457654217952117807040605589028520155502814417834924857280878214991391117097420858320514791873551183929638252351465587762447890826237589891510600752271182649991355132145239823026272213187716176894696367004067860557989959394428183246077401928512799164650778470722757016315899980350116376175657579812448807313053845694998800198171162123648338844534542427764665878429775500077115353826948181542805518839178490764075325436603632565755174992124996900726296004688595194015708647694459139707482867994555046347165990638029924902127582359028860206146455556940344019985615979385235156082579183081771612794251803812387752206341318555558865210014654982456328837605728725895475602203438323491315785259740619507931107043578108761804109246051542792743126768008620450863069404427560085472685458887475011167217340768176959889333059404095913160291814029449158615266589639828070093908741725519188454766494321000897056259856192437284143388082600998131698142427475909111647385173079946412369793272234888982841280149728711091832901673093165364548460143127929114882088364769780502372411953604159933333875051027715422200639316048643029548887374828517865352598358291247074981069013526916891814608316241556961695721742948366406861768447648225846889588493450210071084575056981074507627296007625769186311779909425357508450725222488050555456594365678455229785961660812350935841432184592178685529301557216057502703308956777253653137387239825323356475111375421389248818645313354269553575764459846243472764117452823109708155014994031213804896559041645293164438634006496667660556614262076236401966707504202383206789310751990972926803200138292783387160181976094250322454632846243700154582506252123869615656790677847280023903990827239825595499199090492497341747420235070919686719957998404391410766109920591970822140891263010886944158652707230722403035588845520158722258215653466014876352795572389126164640149927940309586836351219927905316247092178738474066136032115303749316433008567022000557274621067619554309655724044542031145124611714113971098059572848593261206565611135610959194328667697085735012374533897422251608074062554603126863598689943054984326351186296984947448614280018774345182951012681682998837642058591650166693089778014074221268094979324493980858819142308360567582249552469812571768072533169986280698971672739283217014836956506284431023903580803560079665739689094516122420706701199013251441408092298980685188601771995034765958008216790283030603635191776087190842443336339107846867852653040050534850856605247485909843046060462265130102306993348576745072429001774570984562471624887691389397565004291700778615072849091663597088423358989062513356868440943061274765856215705416464119230742438489696063701661248132560320710300692782405864951815474101452531190371333478469424986601178265536277715897465137266788493074154393436401748998430959067336448331823066314923884385801484014712626247247880920332839701183446302126827745296080794582019539210650480057955700797144432259925598836665299824040834799625584819297225569314483226770396406876458493347767036236724426610863718331633725658095076839574698371912153472987402437402519792318171455472136716284232524013493700797390710975574726755532936938460175660746984728247451711680154862102087764526792325795730314017877595764729034447124482257496289970728652710029724341768641590257660883596469347251437503337287410431956752749249323782090595088388586423787290985451059241883721575585630548836535621988793652975719342917425183962819145005132175966950609540448516063526316800606208590696356044703518814118429216813956794087272120513257311792910784504461337947861093871838127012924001367756790263894351166736497641716108118028616863410011289619571763779140892776116753152849061924229432898573397500934480580926724446162468383851094342044197048557148118663877390310538494854659973068974035892966501833706798936817359879112653798446528718655482753312786522131107234817091321310804152930214866676071865499071454552576646491545754600117454181097577902845556221297138695997540709350587251202506741576590130852771445202718166793662552987941805482753703293032812599203899140222636538166094622155938865515051184680079558179717406086583637512866954165989491174532166606998149179056606402397031152788849787866180604006786082197990862533340472975906218001170535013706557971784370809221247238748560512847064423425084919668781229109729985348709956781623885596008533389488258277830515588408330127342154381408821284397966951057464448947431899508823136478833126822765727701872019256511468928035516377859078242155101586940332537642028116966095563685244386534124531556829865330950106529459385537575854131436970566438811560368618346136372719273246081465704014473923902030218528897500510299799960061680581297199184450736124258420044272182734908167220175576896300857830397542456822922797440602081467349491499210753733629019633044408302423358634820997067713369533709930920663511370074371881102088728013902270263876844499702670266594521470740739577570659418295603110303503357911027162661471796797545815810402608562921802818544518542909152301447375271985452810093786133350801926582686019557310409446552146107250947602624280208540585549533761342677864050186304693911352128539633137734929549047111459010321372093687106266385760390092727620950113350910406581293639850337433468091079499614557768273948827325996690034665239816687913106230412177851678367296054308982234134202469194530374156941908300613676418826803903616098760311052574788998970460532636960474282199022729992604375434007844741821139237574812906150965171208504356343958234775963369248649737277987274293114653623035958032094627532949318683466064094482026889892548053527283048930868359427447408013966466117888576259818264558610785141095058737923202698626450972188041196910895043170421688026133592541435639694528270037724002636571349593413309948871936829947970414248844666093381239094658820966254736222603335451486244849128417995172710123420276144712415776329980782238672091357580532158651328319677993027589483026139378191474772485370378938214857561734139322864982956036790426256671959248151557211569924619740878049393290112059431321438764296912510143736544666665205610626495316455838555717846692077073009515866533243252996945212095385052843305514115590918342333511339506233648111108336340699130711615188983501366718782974207907582961438514008185009841862991640242221028883132885435484825008075029462207223170355580730709624110571936892195853137751848588291999493439884542009204424842154381070407358916418740397003402460437529258599870066235001350139842870194430828271210090695560464819055558009978014205818577167006201513196450677984119439547626625004468508067951141472706158959693258667423241121562901392116361398231549848583195839808159131474352574495703670790045432222590212156124633667163776422517875180622744224038083418147981290362540926890951240786393613979497202503245313044708299129614693164109294215166844713694914683326623206682060469603245387413743797051002357687515485500064830875371718375477383206905025209175134798837604855251089363780316918749017012667106712766670068108786051619266224022141494422323745705080919484558801741272749557586889525112383668518341963327375094019581365207859162114754284295114129422713893381347815731858830534505023328747084508738484470036913596904560560825336947070583144659402193243399338809918575489038691642361963273851337632624738049400054916848853581976637488489070937035908479789494191164749777790891085553688945758752714158318731131180443883169676325550241838111696412260932248640638275132034904199206830676633108269388960784776626401081416534264809211518421720985070706828554889683248905941933696944763579769607192200831819205438014323645191088383574650723872253028751347354824010005101377888230596402562165174705662248969946511022088406110970861780286459126808025631972084163097637644754835572157134511222417573037515373535163688739325938467088994532692301450402354101882762241972819414783513212405692694685880736440111151194170405045008095511751472138358276612412588900845542371578432099009499863814409239326585236362218821568948989885793832394052237212794474728389759546876605756685189970023970070859980886433118418524735776843235093358722092076650828370096762223867082429105035434361712650074879405048203218156890481406990149744924874450885033295157913317639031187952618900377931436065030267647813890109314133082666438649642884539398434215831382839664043814578695871764686088088210703952995422440467382108030423305842971587488113307436209207570202620004772462909753571499158868452244447371479484229478396474352150354507438450679626843574489958532271684380062078119217223788975084759508123669248180105743922630404003577437854429640684974708468965910430342886229136987190795927966646672740240465076121110236145297360835982600873080445929086434584562905173960378408157112783029095337768724945253350469895303518051739881209220577956486064818096834155341493384950616483045882257578101841030678920375574811795302563845190209096631618364935407545000165212708574800094896080306803001125734946115734643377470080328538136861644279218548990061858943545814995302760059569321066344344294143742685829567500351677644549959348777264699339736177631152636415407949774966739323562348361986811459801297504816103074787434778080946819586216245318186130960357839107809722400286389052990710880889718989243871434033608626362753690041244371993247947982392359152172180943950501991283827552249483392535702381259306407033509538644036103218817197387060724976317428303229446684506328951553756236553486038031415434356915867829799706889742891274727799414797485742349162186805246959471941248044193220652665086855353626431415396951653116353612855805237501827217561470734435013973844192810618433135388703254243250508010381701219292913753432645019137393647922334120233954894550623370360245149655269646464484680115183265964677758873054279399310318064934476927077524077900387254784067229639182675095865963401576919527166320436045749783146313292490898613847732471092302024981510970068905887635600672423957098074089588578274429307213068338261875016086256116216646228903663583020166413462573278858966322377393358436184289868252804851680337602968011849165887082001500710854157829491092663410514901562829162068849547046574483371958414632452918301001627164867552735228798467169769031872660952563843816523452558988264837090257392278966901783242499088915720023183662110574550524818085222662200778953759952515759336525915241345438094732455424905715460875499552211854906087720083034442569549082217564386664096978680355248403926258407036063163909706602343909978657951238805418645420531873690192670311085228490677264262657487448571991672044023764312042907990840569984024019147490152361118085838781739539971976085363576414117100761537661521556101762335455922706522337523260599032465502978689576296831715513812900107088045852264592898191793117003514357071447994656363704226577177593473327982731787242389430696757345913062708655019942789963748758954841142004273107858989803578794746163740236340292997511439434699815874748109608772496872250167106758708153222181773422667905790461738692175475737307899423334756246190779381121429598642402560097828138508964020653940091823090268396313730574343458639436564955525213120247935767221734113077124478920442761474588256028915262401143644630162119075024907665744625011847763040377793919376674250369194870376429969933431882633573441639763432635576030517578764740137635037839644952060428469562005657847414323301369973482659831631431613505807746302320118122191456015499636119769183318159399223816836303025703536255317512352315447781099251539080113190902354837832641273937279114351588761673072459222738915484905781053460591542328860885730039718740222050662031208836503843978062891422073427278925799492607528145128856171867150084552462156185381641114581433941197829597049988633513714926828557070873305907074379899700537125912224929851526353610571492946933409208371441099046957580411814245584095420993241385950138017219254649326220319391541149317764698900197396375056797265701843129344512342171063211796017214619697595127144184434927650294499465227068531906830919042450959734193844767804936829566548583060842828666944379569733073309884863075800440648989348509128332333953281127768930014764645583481711374137429527654270072006546195580873641714192801578832933662264526547387257217227788207908927604314459116108796640114860315963488400408578907266449544994998807784803392690805379425089602088378126331930796980428233517077829939115133428467769172072564296255101066332252485826526809422939880593094541980920343171849396608609103456218352316884514802049796623684805337650156289621539220613279978277745330206638900323255076677336299803140816021522188309921006589335712416626123573689919350470712864069954122757015944427998078608692750843397498708334959336119598762911764303487414888058131009384700010148840104461274132999316211898993038188872759358823671758368624181548840771839823239988361819621538651204185241886520425745607219579546279834980370689058236968084331509916064890311143009193750023738893351325213166141630993649089533216872610553389974461069021052795352757816780322067740340052074226392770753646061263227551227577346228614335704508045769351570222592008475919140820443281438018452205335336677623601794002769834386884193065462324736734601616970664412239354681040189518385446696591043865528046584017697423247222088313749434073601075184158004977996341157863835213704492901419855691120469621854929234725108262979378588881970070101041200862512401880136950215727088377815809123235327644767970106317091242231719326040325679889309866905652752896359168380785506051257213746852319914747066587173240235373290827193677547499546318072780457300259488569441673478200606517195976921793480276111917784281718551006847387611330905693900220019157682003100482471096396268395574203848753075848235172950179539522218022051163503398466493831777227745228038164722802184519616466421917029239927163278203926383444217878286628083996833581047606535246555502460874592815294838046921365586586193189584456434696928320424035552647182343110889517283707981135851847456583401589044299713724210505329337939387443544393408118234755959699897925468663254796379136031099698324667904267498096864294312941830685344485659747026890833391216141913168494461853922155395869663451860685421184247491276901732309819804175813588759864980840994302606682989840964075851592684200191960621909928954901881722977338781278768931144612417924848277581072120044971009473349639857742124190431264026241387035586168132078686828301811709543453930583365130126253889880218404516232384881856023694134573946265491005235003672562883901074510177036013374504742732293716393373164640478100507163960423993498264393163791624658034743469998199808413874812121219219378337447473181875222456076843002670935102060683246343789345405669868592696297594923779391941716373844738221233219030955560665702785949082653838094900509032029212491350104444825182726459011348889159996835358652740403208564833990682123912074933894358652105459579169048360223886724184153222133050495499127410479719781235678134948219488055330859850765640399703166918772027711876971922174709003091352076526132909910926800921882262495780898568385413501034450767090868173542218668904879811501029935703879914056563802998738504012607011609381737170090564684715361127668692212839085181220710891395991024405226168137636546519973177548274822337136748363048820135736403791202419974027199404724286429392022082204333225110262786628174285862719042647320036838574572778229638197150696193361520496684488371784869381242473351651182609300736332590075213916698281667034863695972478551661296035050425098900609350249224327233240247348675455624657619672491702241059675992924830036007278452143112279411982358513282328577555926673761118815532082081437343448998754665308505297264147839952929179781121835238559388178387756378255988161151939077818675169803109157519772730084604059664337376916364198674711052602434285857731651260416052925968183230110170241482629855834544543949958659025407864219919532644711573013089248100073852144147098075752530372453029168892251438448442784394318371559638753062568859357919249572091914198197295583242587609149064196263169748561969325678655093418932897483124314646436710761833911921909175968878639863599934077787461307206962432574327640896114803536630987574121957031067878091891701574544235408131548485969668971695936599803174747867814677978525341912785599878462344761319969666923598882801863518934316036779633809853029270402563975269251302445140458541449599944663656024616268678200455863695566125334206722580717671240097272468620430652306110260065667129833345935928516758868200871722381865930477756239765881497386045774863712035011432316851924071571384881517792101274268737145956704487762700574173440235203579378746354043506762343724182280030619535286930850352135933210940753063320048483481319052995266109494049480022972208781210091835463480864928706325770271224136328179190798627065919026934405484493102479141954733351760358049477482251201324507572285698768593227056081102134370285892064775908167801338231032116337901084534150718832922659129303627231120835461805622414166944725977099141361299183296155673073944613576647617722762075704954270814779473891915198087424561806218322106606242505450091447996155969381346339752544407312724802566316071115827606826383272186613765641357871076771401710483117232147529723415733992460861291653359519807276378496251477185535424883883316749265782433371307462665838615684076632273526325759747345114443970265285335956973611477542078953917162599949492771521346732083460935223719724225703053512036654689061040146795948791525549125279666336580311545050219426975797274563499579737249251171885569458598186606533953348236528708115623543431197142108644911231900757389148707597237724885238481052591377372066053131310921641525772218658750918664781147465433326815926117507483233730834027890722585261487537227874782187444268720261105495989238522575143285561501205739187441473923941313203179307469643346864782244523914347748490814623986613672729946501158078310610739292362163645464580856851372482704643948957140315073345913356149299944566668767515549597504478070508826750848984008052538886031710094530683613949559550252785505020426286642683753874976462680498120574791771720816298354658598256984126646074627504926524927634872231629270162925134491491969631855989490972955160016838037719396263624029625009627803603749437789848466094183694232408108137153429757024559257308184959805587241580722345832045790229412609150620682684172075773384936968474192846953185493392120435383181612456509000114462887611603483150031922398719975053890592816599227925989104423072042270927236923597786469758405703500857463578909623007417135834829266531710431137186586920649026996451609560027794492846933153745566346145174354633145793993135794811869014630667631086895660653928889545235267804240899827156176756913901841657850657338921185636370535321054496027286051171059039013990021303692541483047423378382410882926144581498123394339280607310849958344750731542616975539627599433714984554600447479462640346916912544055553468759258708100712954296024293383128850804184694442096525180673738652071241132143854619998162653377697131665452065843129304212414646046471557567649674990517720883590059105908852737954398167791326285257031083521934797369554281628607342800868626982304004833629659510571445292037208555733870188709782614333082377749358544726939857737858143698304443505253783270736837037983407147649526903794032761756400963681332642194659651440553787693549324302164565504561986973218003081668900241623817245036008912157862151499711374221642750929211599470275185932235832961116151378366478263006223716191877079717729776476775328461593189400715098662976950816134182743189675136976005969542560169154112080919551240535606499023037611910972727113456961792127671875788538359006205570058318579431815560997869604386728438857509512516411984600243760040497730386312528216614461139065133513495041095572207814217944118335111411936377165311273174287213513663170723733438978891331658526690448972106727991548873217549915220369069858609744660291921635207291226225045863348218881586956849879793146340393642072699128094498673483745842352275098714863134718855897824966743247862325116542562499635065267165483918996293432847357008465697970420566619431287278383001060647176602781363979422450947690528119129103774637053103487895296202271943117065172901891736039940237133084642299998849152219955084825676969955479776772215236600810056649384531550676851280354812596534251027486352066155301768734539694945790399541037131723095276308598646574296606737675804313182625404764504255921375871600524149642897494810988530436234054910363084108898656678413308021607871989181860131246431651142259810931647951784797513095194019389004186037266917835523675380316293067914286443012736984165658449373282864145172329706210881273985164145239056493037381343768045147804477481172573922480611751531909722869384717309850161532722773499100682062512379187581025570607191464476421495641241858918630142838121953279156236367064334058265481839490064428988912987848722423349175364731250830112497429208753252093089088324644444222855019848914243593583173880310622760551822416524862472622525637654250329882248130525143578901898313619207831555742124509736233303788876943783427147142136359869355803796586527606222022797954052046982529414200257149411594019770370178987032381506142813268331354684650375574639724332983078104662402512400258709462618993337434399337837365903077354327848974109753393982055115369646805189601753396363497433984728963745314441003076645946460667895990161949759143340059256044858424884970721647058052858456693213540127875562402375812125908698797609543178039358221825632467558100860475561235999754544818675240743914874519481008833190646661746688752019909878732960270362965030146305293746160393168299339264441341592088745438135618553702190906444032531397402676491916384915129994303106869685410710064614282921154988558851868747003981729458635485376574665201584469598230953891562877143375032609003064829136833340437907387181524377325488381658032395359011607908506933656666694017856758125144402382010402600391971746287859771202538281590636019402530028358245054323527814358909608519240800989208043371907112946033725360895810988569167691386394345982489780656053980415251315868672400975828062601179118582970114802086324937997548652128959191405168189378360012880412156752358456012781578212584644803464406717482870295287881653945153726444468960493088696600291552100744348623275979346345604343331628017821803257050971202140270588011875982102131797312630116072635061932671080514635887868108454940545848923925451590267250043147624175456814361982564763055534811484580953360125127790475953813736215449383336895544305028395779972870496059970407934461916976737878030967648369755514792375964367899816977319558538555771889592469280537706186446210601947052983391259961605554912562472172486108553722480450868595788751782182067793446995095982589115729668807990678124479465775249571191436405307820701960999756540533010490714025150180434555016600492813371205892483448790508609704745821481294618293530871444674324441463953043653752013823746891956898377801246853196096758262204092982374490903604457679891188522141055439798735561802851583305183008797799025308946124457568080513871984662484970837895454558915494682644017926769688068192029610225303735683660560611963138972607161378765112992678471047929323387303349272885235090023480218202434354679601095453513123463902807090912234449387713208023527653166918562567624313067123867475207013278507767298579155729079971405609125934450392055402403319207703790217960200366844999356957080653266180241593523781501189256408257060712651750778435476258889089040158317244236927996343590801202213981860134401690058093978318615435899568370936780370716073001135667406244669251630264082154413078647033129936505768866046433979764387387595805645222606304775314458705612110903506120675044597191867685755141440345767750298373051547001094017371486391763322963083834111604839896239339787147439334057858873206687472686810602515814553804918465455721096918761225347848010634773951932992616485780775115878389500030995323109142532917959450618580711982911377347573048232506615046532374644198733377950867130116806636933193168261189052369687620173825585946219191340967429220239865108049295587687808958889489500170747518014300719810308183484059457435214763491228638843018282969703429689444813057369541068978923127275643908995598395950768242796685281267161096209687779081526312807440168575947435029916547220952242323796692169516183495430629059618543826264565340946997896198891424838127013403563058705268630309053973247797463021755102384180279947782805062922730439762978210959653046103435773274301251299705904454230140199976617663788943828163267139065399594044939537932548962834996899069735540875590688091155517412565216667620266252760746311099089866694059643567719030754164279282318429161901255661889523793702420430275631980823449209093322391712702283221974523315768707564990476731172640245757448237690562031813033753408158778691004965268087424434514204682694995392202963651512593615777195714450639552372459059429611962834581945159145133243329169439717948813587962179653971173587170762496369219296991418035449465106518431956227309705173240891281777205098644598969599621319523580516866784907432767986761521867621512671623267189741526206917897824380638698232740771319511046675915135411288092246368724706404375382641043342273325992718053326236244651270542750366812868465272028647383064802198638178588999952938510559610578509806191896959486948513814160996102353559584053031146886730815293079720447073948937201653209887394695093847342379332057998541995349206976456610862834918745414326608265094330190554595650009340382997767699291974652187791218488881031349358390219370095146214443942702335574714807365775799009735719454353832739458025752611577066152188372151454190554451331589552450979735041142655719315742534224843338336064417957347711360657293303510671905469619412267293513794573829855939094791991639460656212700426264573657474688413971937729692236414540822363051086130060542261020585897364146074402666166626288501544579567373353977320012205345511338103055857141449626481653936062733331924914860975451356424802703389196236643815966868386336402374629605057840055869931710537865059056315654983993665411822266869309665589474531961899144689906013508386266669904656613471073716897119473267597529935702722817819951947135002474403210025982663820936194776917768493521490471480003624575514927416498168627333920153759704385238801631392129863384000269521314308223788163075767356102490938138633856973624513983905800509345386867938492394679509720060818919969017523743970776068380405452607701160366598259458104358648554735057435413187900939499279333945977642305545344546077417469564805203713727217866855919817282380068826638933331994204776035659232572374771186376162097897948470247356492916345461858491786449314767025909157016855928326966463948892783355567770246494184639103216321395945793641088146365495775739609392514303366858440079594503310410287851576063338146576973327963603368034804056734621216110948898643746819490423086204403632876728888845045885930235831396895106099170796278720836286437207565460636121858043825748543037662366783766433246069893136127731669514005691222359286919421358026430612963680424929065041677435710194941064382150697637729304339008317817951644386348901028025494820744196309395397907068689312100518474779472475614831679165387223456501251558269469566962075466070427600154175677279777860356783229611073772627832826459238804751763259252496174030017980907603200151172952470373374236834195780140340120676441099212215756235433208683356105918611531334344798466624332156532198401317083817708069981232049387677912861027924564089865004763581379604741324366193985511065664097419106294153764794284891073994903868161535199534307428897049613779571408574542448784664169896193410653651273569757653775774795920667164458586607903465908790923559597163981879999035113355956574475015783565149937315970553178775182629627556368212949477612924202719160752914226018225294242638791704215448055247340855155242122155404548348372166143916968328328288044355896529348089633251966206875447886028040081226035034479799130720646269962259122945181092713450637204443548366457418451946351253762131911010401651057121326413074113861061515293021653691149774927635278602396190047192619180125070619495923983305945197476331847537127706940212255119201829428733083730547717033851860301551890175201014556349807936229587670066441571180986497580146515924223099770378750528107013365977262203502029128870702909461926837632503285136342033146675614047565418591657949777370123118622899379275209400927550582816646244178245217797883882437270841068965993629716843179539622940574347179386559825111684617302414808371321109812504122716827128392041376900217865469452579479760186125163569008414534846111571098797112985814955855746905044700199573786074072340372637442054157502967996867895968008498645428049113483546843661439275867275932909778606823815034661412560123134182685553753062066211615703969093933841038436983017045178178405394908306930404757225270211850153228121681024808958940410147849852346231737003537711485706231224926393400313961450198630048905624830142268706920768932274289290372262119310288115806545526703191637140865909771427918764740742728887210315521817870861395047652759442690030493360488591589890565441607838387656445452768144294862583970102770243995284190198475390783146783167744763529877589806512979198831974622781384235460917332513575299639501877150771710498843602785415322030392909561067849888637733744797453879713353571238689385973818298680144982040622985837246982743509575187895133116543018177144425822882715904037223348877011569662459346407294809334497168100852074968810096135952957711838300403624201869743396502737836103891341814571834047858018478460029071043242663723101206629017267361335799385607048124430888336186888266124540698134353833768885009020012867082545857200921970191997877712199660127996960264855204130575974175550599692713810650104741482932666804296744740978122503368356693107361419083519396226565325595367459335731240522499127671388600779396856941814329443326938586022034840323013685752451292005379721151154617172930630684457646824761377234118272981059456098362486739191533980545990879929410933008367241601777435923637782531682144387416249930752685681700984779723409258441729132025825985573975735338273813963460073699551213503624057883062675219369109567947586756165227393293465223647966161797175057147176084545467992941861123270239266454714223632271141906042068572864829442162537812926962870005386850760230823602203852767042957972646063863016717947866586592953214725294783090224502390111870128017542522649601087414967972927076617656503711500532678701957361625259920443675796801678776804981893172312310969793624408589978719571386174354835163444790466986542179263151591511180175648033466713434837566698516543496262772722791773183779265148556282284724752019906166760083272607878802601910038799793308488496230071488431228847286110371596121228043022819093907817985245749633127108855918941591575389122198608826529018095030279587538021996972088266125981214648970959637845909187408751676617357439756329291291266487452088567247664278568500929106200642900523005625772904381972988462748349309495185711639432750864909153565540814804603711757075564895464071115811844687396680820038319141454400675275730876023737378883978548909301534926162563516640533493969439623135958167383413206812665638347505483119576697373788722582426214415122558820115814675456467502327112207794440635901916811032001445590128879835033501780046225716872461589884197155085902019646396535123841061857603387085279700973606995297531084412097993632315920105174850985838483185079378175495747094678727875192231847658108405716655474821486440122734552101911605079792811570481015739646471073656561687411440330078557419791932512712481609221446549938312293538299959942869189678612105216129628992646860461251522101662831634751945556719929321346294201079056883245183070856515752360742855536659124076961711848091084115215127948182524134753668582798672334375343231355559641240230970638646998078797906261513990653076299998079317934327945401690281780469848951182645474530642428072452785143613550850392615661964773793221135569404321677911903911716546449754145224049119109753744655610158700108097510284461196175643573745879553994604330997173414173977614904707424824268936618871665166838723919083139445996348706125597631619356185597294567529760949323827350566889391492403246539898835213025481056501955271858127027795844959791812734615070013599208648587513932375928986062761007022967981248836010136344365077227624273852553022087295196773251837718522579868235153559265205081697856907465730036316609951314175285291923507885793507639307727905577206238811940502294347252444465355645396344811548382989323517516588869031740194392090207399411692170193508951656499979262661075528916124098368655022495314078360614063582927005095364317261502551379676397993210468718660894910745251042083620367643551637683414793150709519240704074288029496171320569837385529616333109372269314229838782488340340838045706831028872581628893980591107705945583159214321552807761229252589344464991774098387068312553197159101927348377459600246934653351110603049676073725725648402897955124103523833010610898430715074689053241804694353659415554334638800323676596051255154928838037937626494815676358716669383979536555197220646887344389937948796169159520165362418528506031397643125037155323139848438897827398561312925409826333949361581052076982410547341962617964496895525317699565863324154042852977909376665515011042911680700176375060035094274456594672474586536602519821247175127442482374748689539918187316246621602426641907515774756105705662145800496807569268480769544107268270767682108894384563783882858224694919175530297582605944626761162638178050731508030754922949835250171333920263100418005028624972952015539771846434904163370411126310059410460658074428811080695874276395086114975487459114651705853611535450459416700968009059753999762164806512044458569944593639730011142315269248236127474041374096840832428225189434828050643865133886442315683805963920883803302163105909442001302421607948653498899266185595662198344030658087013698212067387609766353004385963069185220028425406837641950888345312585131808667278588523867401624724155131407549269912901876772024710231786481058083738977857508923251796672664989990079446620590569877169742285755467792311815748718641828587749119166317334438191905615987468050920348204417889738319207239276292730946292991683319013246093768454736881386831364792230834839003911059044240784980013027666609546282661624650961644114767309057608499098452361399648864799762661461095217755203057333344473999911921816232633354631994784159698682741851431003603368654544785876114590349130413224868755951293899566103686371695859759034232009538053060041114733299458137750778296898173285169632005012058614505649464148176560080994723633405112509069965678718415801901810218753726772998369004931191317495276992151559474188621289186072471662084158922773650475906854723636430289137358623997280763331190317467027191213449369904142179582657393419618134121779275140691048837273070259749956315902156494139232383864490284694664122057066735259652203096206390629401397200476504341329615879144898877537939408143361396285572047985021690662848727106986507811048010975548872434257681343703917972976317091761328683731588678560727916715237636241957819570934882168203540250101805957620397702655028386618415632611563149542948619254199591154167151922033118570290070849176715699786189226116333409932759596232595575498130179136302665408669757864219837269955198728325354569479739522064462770990396484896775849380911958197913446249890321194608383842787182686051288893267374671986561919961628625746514726307863521094940531845922342694385367526757689352523681091108854268298414982195946269252738848684997427347294656813262039271891053392837876991823756217565764089428795398037263893696613713625374471806944604130148015083417797414028599988886649998854165436185164259323884664136693708588718087135180807420359820856975502039079447078153792516740292483603771706274976062009483337958178422981471666839221735468643395647162639548877528968673918181871474762198293203076613349461844372619986967804731835242514484811137046377618707629765565572091975950037338600097503757824041326070448312606643327463870153485056119597487626006843588283233301620418756518351531796957956362836009896757075130313242308849321580850275463219437341565539099935306401577333367930216064563424722861463822226717546031130244481844121339126199189502591666022086018558793338190220469344178450900485274956339204086394724430856581788428888205618274459798848937002444010209014642655281455850188551207625510845272006515843387059931706518685945393323083750025120489321374542877603023414632290515659717970680370998136238458887829866458065477402796622551373073748076986775044294771741278018318916079796470246083131953590008059682798519691608760682556831668353336271559190280478027308890920577297774437404370948168733359210433183353618683106336036060932339488736211170707611069949486930742413860771434956258668111638900922104591775125000322379358243866777616158497728000280240830782984838224882334768236397399949239398268191449004674046173783424268660876519897815924221299815186901898520038876433674627162218837730403750872485211325045539251291059866374561933419390166537637121993217835153775624926083280855632602965782447795766874087967266332944079847635243527892168690782643179807759404317228484566482068490974821849631864264591407519174510866767882858982577873193329106236157209415981020752151459876139838616413734060599177621467420809790750890893062780180654159449368820026632161542600967631954449491224401965061808753309308141543725355706990587592896766697733727974131989494173794030907568612962237049025032284920977603705096488991934090883935986577032852593747158354543605809399899109276067289291876482102125923841388006583435558003140492773874657259189730248065376106097603762861125871330104570144041384210588115963527224986363749137110435784625514450993785080357399180884271999560845869682705833447613410653737496518277153982680058252937140093130616950501522905826171896727851102013176394999089863777949023626916330334159203417846364280948570428305272193115340586594359314570414929097247758145266334394317639119387310387247549318638637365732594019056041733397362274597848612111216920767642635559564859923002210149975825387525307341875299121904057470401355000720823637250941575325606564551724629317904400320116545381283171436448175521571451426473569345241738588548628682350117413945003253444696020249322767990940708719562626657659943345078045287511020048328811614992357330566099294265047985865052941218807797303567567634780454124885989217879579735385409686301518456057739238806674386180899200388439233643784301260024961358339193934967886345910034243917351644125009441351108877607482670182486400983903300253512380943148524443283464515738429523009735005752381220392355961369753637111236392164724138616612892302298587135135148584558650351374245748221959748306741822688557929490321112644862679038929178003522898767094287482470511483423646462054174396032097204259718768872081204560941562399746632668039718370036884203958580863269789736658385429577490590052108568195260398084136006740227504462287065745759974736741974394808275081312368205937939410537327339913030835354439908903101007876651125789159211019878844357081875363272821996875084166635367041522912408473562706366883819372613177314799439527305975732348870238559535224964488903358952825196470291187832500636074556517997554370326546082631410267929412780306335372464525988632949743624949569096070459114430055427445391967258300716681452722851024978709310827633004262424054236848389485447046801051546413429625878289518558196584914585084076494600988782589961185707458804704653096468792958761561318129236460923047449866317028627084646980893708965110244455657058144554143250599799995150235832116672085649943842354065862486751989832455225290489723976010989039119461872049921481360216672639185419507242950599698139618552282647718900675888476697132263231480008101670256707139656387580033305630975113951124256377226288694212143402871831425320897638658339807114866135299765657145540909924380263648030372750038043541893595210744875375203125877698866528078448058943412995790752134371577244503233070084715367915529203660758851321205323676487965830386215662773383428873035113377643819546542611276821939425777788599400756273606128057998723310968753357259336824634919385262273766656581234265794879715995463085807579156897013490396267565386187801199482060694180378661553424941887302157681720943605293659750244707711101484019380925504508336360432643706481617978471129275313945865668065942718156099454221557227308952154160298414261070375083363243039146181949254047268986782937693362386174852110241701793943869075746955647245391648515413349892661009247538414538719900520764388074413258149840691401720313353858904767398840690967543744176071872828683225771752631203704522570765884180681673965275449275864713892624517826138498582655636410557789136202441435298594347375187629149739940412164501109192128467465777531498801476300323042477326406536619505269686202061790126713527209336415811595555213043810379196350369987225733095424831544751402035157331973061135868622222562247520044950002781409800075081634455755611731598587328166962573988512861342754817843009278626230922442620158495927052407423763825694825229688431476294101878126860370870234279152529076563391116990184091985920583051707022924366958537972053248351581083674637787598090211941988415544840987521394092778706353898601991069238482614373119652733737248580793174476466354275681248353056410519621200774072007360500938760052243704946190183629572401099072074804113986275856572577766058367477463476205982570586230554344888670304030880822786697267420675983202335493105898841443746119839604127691245136336722785369071872569997959001531024656192033712777117093705872913965646544716094387703965410633662485001414214261346213844707830760331590922502064806370240314882642850736743790813645926538131273976962900892534959814294187910252794194879272876790182349643064422733400936804701657293406108908909366840704205129769955345420204642980844218050514118683476206176259473105752876154685069769897571363241998420966999728467057391410301305309183534680701953891038520898573059432882512318279765794841899431433330675879831959185573755671540645809957000782744727767665364386391953471902357112924659552759259682185432638920856005651924167957604688024420715482744028064043905727549271719678859128205273212280808962220328997251697171875421511359866368377101943509338605130387323864534057590588918191672025539675662578983485789758294341605995976540150138648910475563074416117305147152192601359428742618200565169524452146679688506776392091284520219208427924883440126628914917585559068914977166204729340484875583554309670566093631946910209309661990362486474938178717243169672276275105878262627869228823140488272340552715857263184668107114932784420196787542682171778314020663138570543143101393788765204840382235519329129244625896873537727942700104649461835633967394821756787457442173751370488808098039893626249230957409982854534515779040451051096093192958259780636371222901970570290375218254455930548738356707795250096960334794674784934066275546075868297154319550366849088248825384037357496980407729433249491720074187054811373820643122663266185132191913387544292424391981427539648238152492166840197993333949724732574579782925055620698966893383594909088808913259479389328948308758860772184128499438292856304360422865559563188242024172908500229859571247650550802288541112739797829979268294698554804925169562277390972707818279799234471960022574520356597834634896740238938952495054554186088107462303436790610511467917955159509460435323254369401118243687252537144687234639302744448546794832257586916790949864579628088174265861440373473968521516451406270102139897760946739471002264798746791391669890429174077440229507680472144145878099836487560933751722322410863272018267764467087422512811383823752304927775809137973962390576116041237929191411683037831226576127955885937052176759372311590187531594934945053917193004720042294398398775717769689611383245557920626376168183331989563512239180374478376622465540759409811985582113280692430670439932956443006255492323529532501158433471724661517170024537207984877824966860124901498279990901840173067044143485363042084435976463124618274376699000650092771519777870776566432138072863749190795107054964328654084611470217059805650386511140029147680923455373950394689311289594267350834243827348227053677955345403630829439858594021812743904346678927958536366894355112245245464359774802400576242849533434283406820001434786202675881285220656649290467374050860789299949299444982713247097589048326749269429054504903379251684342601336199897475369714078301766816510878327060896169218523062755826145348182957211861677598805686547676351593181836347289915570750396148033236056205682139928720850811129497955102320352774566205570700834091866215524854401849228344321560506481155757365289212530257836542422690705885428721532777240152704319935662545605863182081189055821810483491838643444118873003652977656530675207526187100931755086585212858360384692311040936503580271421093668221018271089184862683243456835277947251053276258082464425951495556909042218796708883129173590808604618423326078992222656458042712254553918079170161655401037094215195241771802351165245020713226200801674578363474870243115124944318524428241839291391319420287622150555596795557135532219569068674330676848151909650619812598529592509450081432897538112990635615849144169679818438451720207773379982626301448329409190038615420200126767965712833472565944945826980993139711464187671601975475723911675514434767445544445492489707074031713041244646872219756604571658125348157782490325094707131817766776198868259511110519863865656730407535468172770302088788677525230594971433311344920984977372949458803941714504728144574934658569187611295900739864418445501529684975629470304006148262218908862827338972373789010007937532118716678980249254032610820164910731828331212794702174615311691410780511478629735181229430609428173598822435619669701721003081451035368795573101376987821144274558548003177719623500884147304836493923824952308815935294250634008906543371130666364080756073040163231129679505345749899259175621351467897974825416251710018870537032764700994578112254246489081911721656161276066944884969329551545328241860421743786330345558971949508791575745321768512381215897022129954214158186871926339625855778506093531330710683491666385199371015451445660133778460938721354388082208854638481825601603632188467907436945371623855060626627606740087811083342970511396404141850173821277627742861161173348896594583500462461226550474277657801699613340072063870617087898113813234948861014550825471983140796051159242598434157190015238881780332848029221435289862416511087953979405764468154323462964643151301128431527676655359687007339014363925242357748425876164748237465135556886363218251574558208416206779471617625812743953772542741947937280481422378887531466312154654134843617195749825591996317837268077386480877860573404874907821484221861717159521155047590483864789655590600736822251821756542375785373198992082704756891751844846903021872793373850624953786829521701271316164780125784998509574102700664221930824196931134436293084254649497289134412427185963320294310118945174883060911437987404852748621437491835805407585682727653614905004758767510103228677302442142830248172584739618681467201598778296438033230614316599544561632810073702154080367265257004256518057411899306044175930545142661629804202054525960092988472165941958288410859394332530018769667783226547439380637335860091054488573552382052972302917017280120444468561203007830935706051110724656553485767144675303347027371353480306317724342133279538666721464133731483420526870893147355246927092745383484044785088216996281700077138613941365449632696657815607118969643941332612263872275652473266517428189459202019867318537238951722626797641701113646315696121105929242031232784572362186425423137970535802919791004806874620217607405515262238915557049571764869740425698735376858737927520824791851096638600648022328741484777738932156804225134817164586874385784853168561617908435608090358377417269702302252826243183199714763095956959928691134998900102795826323749696913403309668574968277234865317843745981962232575860180487573576039983046931395478610034355646184012155638845675945277781154981051806380062843171954615835289168412803817432836139947255877151264986914315379725283229894685592540285833679475431504610985715265847592097281691088215529538809979956224772502163697474912143491644552947934837462470187048999667742035009760171008396999210125454188820929107663198890250854610881605885075297764968979611580124653957681852692878636090833133625645642443417481503120567316224870170840149623604422243783662498311496883661670084302093170597574244236039124416722620244430774729199349681905741764141707802295791773096871350380580020803889012609071236944285078545468682008602582360220938853195766795775398905637701115193543539787836342925899174354035970557872535152290961544733685260722910251663368743519635050207063062678097621743792916886788299685861756928922510728456179378760351230510220786956886012695143908137389051723677457664060380022366372333260638904121554331826379718182296770862272734498063537685922033579843091335188959926424177205295424727164084532900103864804139644555369270778920742046999855635881127155514663814459561348597037141622831791437971222522666471700430621596550874664073157813398657822765022664820689164776317115785643652872438059864137515006127059873651729221040069719064109315367856570450252301362714261569400236582206325789173878235382015792177690045807225611193696643581300087931054052841598382450474796391636173460330388811344022634060621565774345974468652104912310680107957617050803375301423764615414560152684219701367420911039892510067750421994555670089599347687457433436394068912910880350358194381963022503774889152944859837300442508027357853563639486826680053284283044512880413972340575180534646239491218770256535569624060248229472596350882855308225810413618517266435828100083080860393153354243693390210174931476970284767639181973654202301392734087011461519094683198018853416248737490066386023377049244282025052725784195509348480483719317002377824716205515473726683447467327236478486745653171781609083812428708043624082796794514424511419152351056253255732769264946116300719704567598787543800098702254310356408861460496470842813080817210510745397638335658315095679291951932824293686193418511687329919977007768650891944213962539650680416653694006554727171285450380809854701329503655305623477838258956551283890703489776070927061632698835337970667703931632725794161021672120769972923114004153291907716758836050912215939639771680805958674796686128865396875067809966229522329566265728070146128326928596846047319343279141350817848621991959367228696402711558325137238911617496328018549079014287585633976393009516294882587140372286522115625038062470236725644041549069345752536258653856020578758718420275823893191366303873525384245844701306827040757680001411113363577081922341780412622498354591814217049554212897537025347291247629573865027238013841582820493477192952094055979208717345902976067266710098091447109821671494626533670948896263908319578637217742911283101056443568101429989852855626539529739258866727940943916103944150056457358187321144083740090724697603422275109094589239415443587494351175037911622176771209984363295216514827297457502302119183107104481110161401586100302205189986892742322886228617900439775503832694827191300731439397209739039672485093598174330287521048102373923526079900328804564119957083301333088040701650110542911285972759830650448216465487708791850573469590961140103485453739222812121553417326442232398135061079761863962172815736106812472850415205882458239052437832421393486807421018092312616786992376280294125977051682695979164417960246489735411665085857938796976630202288710953734647800255073654774244618727609772785409757214567874414672694524967186221376130598097143932222640787522661152006130100156824583584018914617164508698705119565706348389937040814680540205344696499920072081715235964830143283870804343292893930972251973569105507163840159553248789705978753701613629591161666954018417356255000511295519240316767789225492147766392763531274046337637328709019046657360622501723214810457163797656945335374890036323731159752229943026958338451768295386038778759516715785664489506898727358113020523913816129916077209916028327506868429961341918817450431145736431935435743567616169718275482519429941314686021525032511747742454659789013238518076889836935673580674450519745377892936639930440042015120833943330880013337021865290259062802832159522642144258400699694593520597882501574529937447502173900682191123948469449849650204272432200759447854488760474679473654928423170625741852721524179320218654334584055518712195781053748110003704442102697568446943494083269832972217294802458509376693972302140460434473435689616588785501749242299002738527038893016008502989009655148650846379703070580368518421296035571602773321165940589618455891237330510266103630431803115529002909150421735846448955618217594320249530589151366452284993609031040128415328487581274026282724353809455895047736576290544515941167923593610034811496105983422411990799798116929163432808268975040595780453533422971885669041467033671581250234815736064446912371614130920766020494489553351795814526716801208851410190296296673044413186531954898403254527805009651768803286297249324345249723011953217092033338357261500374835982647095995376701117071149961957103043231237573943685965576419119018697067407687072058920335073569837396944787393244583987070612126395260172055017655207580124273872658538612686199528608859260093533381146333820521754825717258569296647609820016351219294416864057438192618345474571420241004575003958236440197552480560987502128853928352899484708816543071235166067646112547511762833284519109822638160061432831941262601807452962856306232943870852507727369875720678327900603377010745598384373256428239480256446126658484969032240002190482858428903651329184101102232812544894167400924409704057773852408580134727525339384062400243887046739312826413730456536089092870211634075240951804731350363114649996614831541667863558435763578742597535739433115778630270338908795380625906319870577558639181474880277473185690182923652262304899764502511726490545884416356359310596240641699132637214103959750045901459322120603370670182072025765000990905575727413817636995324003542666428974519173188200491572004460953337186828641813387169026244164973879898877951312219156820279465278675551340976967703944993034754870881705856446646458872997158084183396386475941410771044067503450904573461157322907565287358180239547256190588667747428716567947856709562853103217749837856310009621169231335324070223987899671712420597853967489834615724642325435130246894762887078096041782743026230671201620150145098282875772527120249435216535633121181982078661415222557466209786233215959461893220125016986409281447708950299365294378889028496971448806765894928750240047420337091677382134335341758643356290530655644393670201042654447124509646841671362404003199476381121492586124560303059305242341450916383284775775646306751891995992199181061229211314846183332298351581390910831450321244582944645140985450221900580269486721515502239317673471591270123705670665903900721943127974530862789662468704687791866777493735384773763827805365016302105297756065040913647766221839395687876694304432288387838205511795758879763163212583771035768432121336646211111406754003323037362634665741256066941444321353856413077612208914369614629819803182328312516859587265049507854419755404041618226940303742545808138749021234515558778491644686194027740319078146952470320863084117377119340615059560911797980282590411412679576365096269752515750919374870023326747626366450569750495880968199426920614439146540141075591667366158273105818133313125290039789008053168301553664195965756969292154297500797742163614497299617500428747274201455178605412498646837211849458762191791928109795145750157062006349437123305553542596520397974023748272718492422919923051286707557317554444551987344472896948471561816050054753216357820046931228226090804469782182132521798490630192515986216008712161690222609537780429748231536685545405117238584344662575273585584701373316831349559989400217887041674982846192164353775327692991775303426041242228754955189655883651167557636521781614009614723759326087140763466678886137251983254883572395834382038395493407557181748925463447691234231852722978499792196479130091649956574513192921816042816941413237239057781722186195907935817426447135716142140410153225905513296215322096544492622209909899383584485440048158717008619929068615944277149005873062248798490902975391537854379220734330091374884410365132432063125870980187080286989243282428163639872798611844860901689739717252395733769325766664508549769560871442702862571426904238191730650042845345738926556275239028450228451664772311436609484704596768646869462950684717733723010613416187602112551729455120000989303519171141112403246865232949016775286185442634140870552932675170255100869186157412811748026605298050883871723006816047143591081859731608916319966978462178116784222233304517451336465473303565529820929153806503766145909474818736141131001130745662337591652340569123432687645486266890407248670893994767957839954983957038202118378449478851127966789502834660802577706589447385992979425209917114221257563129827256122858595646338977462588680660402953105480806968740052963861729759621155925266111174738660978746234312548061906606800876663489263204215480947342908334999931207179793093091668176195978938503586979110511786467454515536879670789761377308992025394351792971062402057212857248738495810405662838392690625568214457739330519545154134402083773590389392510509350422722545038035598094150855983805083490919308076650542877682065895427153844065093837953880852882289671231558223138798410979792632417841789572216901478155287306283758557494750073240501975110882227703816853258650260667426893604658225500133811517756218905336500853115421305425085795846164343349177971559962210393332322605924098006297044897903464064467537764096686829005263710115373755264634563813380669066062094694325191215827000733847974392125654720759018330161813103711780349606868532001055577778718852549311132938251643165452482273236726472066188758755928511510877554257400771440389412937366253472054910750541606016412477324505819818646700783578562369665783605460399763468181570501794689913290973201756694080372471373882645587245345203378706839813845960240203210614075611495209979465427728418147311870628630088260106145549794179048946423360567313680694969653604773720962064878545022331461840790372553838864997424244801018095305051019535296000024673810826261770273717179451606303763771224277045934843711954375725053880296678088950624612749710316653512946174092631012176488752136217044317198781947668742611783514776692231162687995660939323601864134065767043038857125638596081832970240736455160578161513696889763011500705177361426702229827123179399737765647297636970846201780359997480181329845661588031283517875255338714986575390501172261795209660307483208650378645668152495103570644389293070458444130527549210347963336438077965532134062533949069550538020474683916444203017849078773703984921971193677306893215353817325725722309377240629006100488971338566955273492717857123450113639295439855266215750285669508165466767896381742270255970691236038484081645708432236312959861486822499361628821643938863133040481410730041556224620362236334308701954828247990355844658475740707129463676058257269583610119115420860930266152131498599224198572749490255044921481157477076037782812461042661597298315480520108780623290798983293083237130750621396380812354777040981857266895175234523387114226521366316261229161590436727907318758173199991630324721004358470878207930716972015061483740658342294084390823033776352272385289114951778401864116341832596274911962173741612851900477503553071449129694746770782884136525743597992476748191979668707722607593498880823248602337434980735521319090817488616863248733578855058051568071549631816443670001357255598051730220314316513460700333007248014897683805439273676718119413291053206502142599070685490593736098802656217711035002060960782714084202836445183167441112452523719521852072747318438545014184507823575463344205530977530227610922825852327802807270910058214524775245168507788897569722238769879146680593667761804775588910215160768934212538338808855482936629544679654097620072493576255562273527266781787062700965763089207829122256390779516099596295414131503944840038205123951522653748622203773749965171007676003277515571724977430017557268642578870590057708295629212834727488066708164421973013877962243315412125315318302415172884761512655267386947413276925441823164909557821984339025917863389422182577834980801230696106907971122279550131758163005817350470220359108508202301826281198803643092258291658452806782152091123845285225560582235840267030601993163592189748614573812482533991011284542210201033747265271030147482714265401169794508067151901888871630957958609207507080386907442077212688922186617514187246286665007698511699203204826652865650787398977629564312759607991246621403511245137023364583777618935692207353472956089052072322027323844110071482085636201737435421233911431556073374517426957200497290300624581358378564768930813256056821256527018660486949088788325146334512200694361240772993768678184279968441711016430518773688578839116915736240778263899129020325909496476302072174678393714642648203896301176487153272034967331321652650141386497088967238188211964953869350428051105285230421446028238835084521258788467077892961930309344718585146568369642683587713339310992861335088698860363147943256496750612140419039015867458091817412814814775488328470360423714883922212526900214484167641149166691835886242866984533676011480306569337084906324594234562370616952398431238878318441875025865681743672578829576769496236540271373473756978764155318376509466925490351386177669271529074557589075468452201522399626125728719001166669782550747156163250680091456623203198473461696461326297441665485115245313859320701033826554026463089039568755872083282084448040979506829944227960471171235608358318937112034503106870138103378831749416736831948312033128116269358918483922572450966896814124972316631838200516364706055519877095275240510714199718711299058139603519332462093927564213365733322290814258343668095743397770080824732851911727236406541180782603550848870097356829532631679944657488683770503219060738580122692515707083134292363229249237867049766827885966268918476857589936955986290786994558463964447155708894680194368360247489477115779906153856013225816786310344148998874675220394935381748497589586491524270691119859215206648368040738044060225234660359288698781302958345702323154416005468760613089717325695706007501309773199267802469790238018236867192307772247463607071215815840350961505592799146928685994791135331020722751097563356182708309451283632563055231388388059958453752566058416148027349950874107578435630084020110154096497994176983692051021613340696506885397137373324088017643720533069641679401971256286562417504863699271544817633950221663884810333557502933184739319110627498752672248572839349858338906391774003268918389957642573939208932392733195014049990805752972987974069781918963282973384415675231220504439410571169244954929179837540923396513905657701514197064667875086298874616637610123245785179551137432707664219912093312793517014783436127702531794232967789484314975797614226943114716721612281419144881836455519196233217592366467099995209191048158608405839761892327304481488653442368897569331555691488455978661795262201350773923211871068579598631816736534694427804389228752582460642018817767953594915324791553350084185936228018817352459423897505181111215198502164850680709075988736225907187646319013901692835661451839829155262437616213431044468540898164175466871417916495947165477957191712997275751556516035615587626637221002741574067502149305967500846888162292631869970309731197850965024127304227197336184509617719113193933622145222562028122211483691119914465320763855468064986631526053657018046183585039216200313455366775299594334962010451321354727432959001492367953785802111902529854340132230588248022699029221546058982965906213368312472815038666897864017885924159466748110119439754832157688416660478690400039933961414339697164327496457950248939771513547957822534642558068653654851382622856240533208427011218831805289700640869938339840652855905911638846835241017910020510448894216368824118479904262665280685209458778964181788928268718939037339369799101040352868936717326503843565349963486161406954184691162990811831309793984798291984913545329002930343363420469853750320275617244610441414334451108390966728956473060142204297372693037995898871630798868808331982460136396551809233551035399884261451316443318495609774803025531448334757186463287245876790850908422224009036896644434161846167372237393311374644573394917603681988946249266092958955578851048653211175769184269462900847378405056834337627646877713906557416559493608327710718138618770457036311971697861338261010486959894787714014311450808836529081153939209160555813549241602452804735748661210864628437152004346049266396163986412082233300441142327389471709646218951706788027316364930046825887773258915541392358696507824994280429319136066272097695530560652774927562773120181483674064656367359720992909206703663027635703621206572846437255359324335996306877823124199694642686617051895371299869605391419107883323500576782332667811497575019460777130312526417957240622962030644284398967945693868348403573446177022212607362661064338718991856640586467599356304933198791183880629701434912051233831867863363981567855816840421570410525691745393720406142939929920383061652031973821735390361244116713352232814026824255143931565254581040599537627120771149686325033705000609550765499512265386163103503490557701479152121450085600471090049170684902851824800905107741630890280610797567447583078259228813428983416338924824525248433448436801633525428537414377268397194957105247986466858329734167933778059362142462343312206015258402397683854512394814394408510150067767460148125009894142562251057906258670025367176423063043864550880864520465457626782864341553817523340578044725487139054237873371912073962525729104519614137427210804126129394023249391152442368365653570626242025531697822343817051625405262337327232041641012495124294126922098128572480569862456036586502661416881657131126546254024365511140291957973458713108994695480674435236147749362542074776181056417477936420961172416875142050333043420503394024418307074614319861196903022155360845894375314309123757120648722371014425640133404479728720848880324845236288935830104718681236319099338178209705597464235377406289804096861124042186148829424813947416242631118888657714216235867619387263209540245966401523532594153078711439846211105537149529210332897798453911534226067125742799499914164105144769745680021011495455809834297005886250901797832208994949979287554466634112912346628815024783690586300307630786835786722974497679223735923656667993171711626282478880849991730190879090021485393665521657616024841718651244197155839949792722243180719065737421418277164208466423394986064741023998492141906574214369282450466602243258864447235336819896743598026190518432345632572687029875286925301303889195386735244574425270000783817947413461399057840810547178567454786398047168135217771454103673291920744316699687512933193459727143959077026231436837023098599760309242227872422225704377779734379519256549705358626093571071400679933322740183143788796937364657515531873047335853581212215818333935672434267928823882505835201363345277869076079985868339448674306526204082639756210261464190804031484705977934976825459907142356342615462639278338473436865139319357901402113817574330658241902736695663008058279810868694230494036270237434121569081292192785277179377366502561116930885209945050609677558873083934189248769798458665291362395368384778128248146769334304232384831165934873530885433613099836865978503739134071135517730480770247847270557931707595019112368975896743215025441519043183067005802411425400009359709012614128922982357609501186389060077906513046165407578254604243129431841706063813284398078145591430365120499362184467633715621958909593494247384294608464924647419809928026582822870315123603061427756795614450071907115746689362983326265981465575316262732001350978081236527325438423929153747120537085570796700472675744251978668112438677194961793570957720264969684736743336936999364797276345653905922608369778796974505745388787969824169989323246284456401720714276655981090457852712902020437044008592762585385771089592172536711326964586485351771231640595084630599863244129889922920298423640628983189482715900924505164242763755762715798413900894575388803161333917089539667615011013415481342647040163809032328494507516880565935594523301879172003731555093616408495771194934078184435522439642475075645986970651175992027352643722433238297133923974242566618371013344022062348908964820659410519374326944224627174130385970337967160250014128096727280282641224082794930363046100914909715435081559948586243271662073237068178669641195144053070782090457031012320005162752110696838992245827950943659410576799864444371433336780688349668697083462022205032948439704340857206675628677385862850953908579616633416792303084977141998615234660736008842363108561926076611321809908198165586593981279837613194059478720324535956704997193858283985929245463247048253991147792009387442589131449555525677823230776743821556777310550163995713387219510650270315676888293282695321240527485608280570242352137625096950329214557427288164524045803435080867502684288829532657634771586154071396731649143929324943834447027541887925012544916517226722220562385972208769885580279856676786607731807830732574424358977045880035578494502050930798623461718442057039598587593321657167524195231478467650068848750394387876342006741066741060818922748454450548356265621950825238120280009130614988896511502409019576375952546401816326978848981658869770920171968008179742662409230873637378542077360287977134215392671941513996046592326542405292210850798466693866162502335859020183514019448914992050427744144974674796753003243184882464489437910617324593472072045633538373226858626957690955367357091470419929397604845095103821266030709802056409713967172923632587725644065506899904244418032952862054819218292801708968501667870184771727838403559006981159521911700035818453826502239150028937927628926426616320679827191344931219126875644401038625874726013058303162224252663069019432829342523101646607988993915211109098770119661491588207832681252595905652529019793409480138477061764102838613482489471202683525266309380834026891530542112201691758548085576479027868754253242404034673861339575897861470907837805271716405181484701024870469014642079091537000799736722405267185751709409217872512757812412735745587349000823338501621294703792439585363878976727560768293667322845211466809913534856961302509842790390885193269036996837667626295481665042261342678025561206178926618450418106924221790298933013347430199674107602151538544760874317048394349508974347601581615213585145365635564457615292254976078040936093021840974799932648478637547353070107221902444089528802789286886183211593418690755439293098295985194805372176501736176995561512187796083208777049904020637574595447496039257160321272363432994495983908936935128884134585838975089483234202029535704834981864306161470908757228677751148047199749401008946755978535501951426266952381900938093054081218541756247277903985051351013493998266294329038017674646716156619928534390685239721868395266763102220466762318010892580517362978158267346178154432890072856014693884298774292884373787372305030352277831264978008447228335455375368214986975838613948664837485242470294083093451888687479572301633991812200561445946565012039242829563410943848043255993378826776120328004087311100967089749240337710543631344316421214375141824941214739003603354749172974012508589987503717855394698352100033516488760890084239872991832955993606652779450375872268876054122145330713511839002162888100407105717210075499546594722115198094367864721832261124599898232384355083089291644638198205455389278160096066057287012359262642061821323677606741620011937276576544168531752029017512905991583691297923435889051755178567218337451190385053014685934732823577356817759837219547103428838579186121403380962171830772856095993790736955333409985939326873374620217287885428403781077167002459195069436510941652218610157674058244268322857641244111324748810695092467955149615765133289867878148488920538103381352359551720447993207183634201377639372326380918678233001540442228569448419679148112054315964155782865894867396811045478200510246719568287079320899772670231332311428960310400210184124818401402331117698539457740239367318655074215439074696440250998759106358619265269672508449435673197776561825399039526749992777209934533211151852000823225979789291195704791171915695884391474695942450540766831605638693761363224989617477705358034274107434269777613069539499491168892564983120722420730099783688640600162015953022643101840281025699803675046292371229388590082485221773391194032364118501967752753517649439054605943083086971866408242302106551355903952003962721801712295177941931904988001160293912020064838216035733900495147425722547501013379769827558283307919148194122824138762722465139704471086198514674137415926219827919427658314807761030752607213047987660828953724056609993446396135453793190925943348535094375158355272004381180148856584100821159213925758686361659958011984581898961700491288530047023915098096106017282730301170075259758279185169502785538748736232442688906455437470466818504611873566486403813599921141109932915531662056935070808757728982709139578851842640580640857299036100383834163632564833006214423602487519919162897012071356675037948471504773978375932035804102782166055516985459954863394971893461825169433879739371199509422800563008149484607663948958948723588258296378415662121780298462754463228946157539759042692986123086664434051376322466305381980046826554254499331466975273014446324684805729616849808638872422556082878890038738568393215453991803842795572376818651265635900756327849068783023007015837289491071106976335100759598578604589159759297233612420645095364956084968562241470935248320434804187513165806950942556421004855155545737229928419931343547098787834943979594986990315583003751566082232242223940035014972857489388792205974637671932900775446688441239033990044426428385156073044610876200754316084820792385825176837470461015614838083767749048468644146229574917340207297310216441462144300048376305145878406279259824665896575405571838370106845252570234245833127176096749147173209381211529997053861491672952150455800984416716866614851025048673257151327483701851954132438506449033709279810147922517936184234259490700507356294800151043625152238842839703110291848112987429517482423935862479571300844126631645845501137393327345349087638732192810643229750582430214283873148934698081231577349097093736241827737639844135419784349026337886084052527160021200908598271881909609367186483780676204492269951137976377482054320011590458521254168390822351913818702029446312268458488894246793241433866423404893472500100746400971168219638587739429919797899602503470432530660864925786897741703704712566266847892604386367439119089652107210701709310079479547647406940655308581837489699591634355142949018909419456527628722083276407339516187608076387855737224221132472172645807158007205391407413229573864309263031815860534932191245265846127990768989091708800112995714654167279110829563734383724853943400578146914138246844871470095356907759621787454026222262286211239377039676427577454402490924608828414059395862987924134406754711920017837882584132644797778823979456600318203110249154758043525193971019665642776687180713971870146557752596999353487272741132857376413651618906625909465406132113198865981577142379182238950355703599092670320586215853449892746431460722610292659243570325815762996406903430577527751716448309870419128612569986704647849675760023575945541948185564063321786693431150572895958540893762886783209620379574846930570308242528858794437595630501171141927704540879767306841988415003251856476913193268175493095256439452408701742117713498145099978665047674901689961827638977509142069903078524597439291226301140747241486001451875367433237036369193182934553276865061103559631616973918235983379766325389850817106631353858646674022889567673607018436172547598500783381542319653644845220513697796012486650514917787911563753168591595188648975622702182371846623291235005091129292428652328142565359951882804241695165142953348848439984492493521266202403865615679902767886198004360497281628806636788578653385463858588860886817779112423419493310245787402147111600139453092093942007149283876627064230363498619711579531467525588888640488336431634208985878707123168713390037790556141928195823623439772446813188882491338133672488761360295114454461001233068074939534646841852700850097405492133553367838466852051040818641127809717419741167675162175324776163514946049216175095852256839577560500948001349904820984321065328134270463093798842557701846326281740526981269568886768661457313899623882304508534419517312337962377521719459991099898663023574614904173797039155892867194897829343392352000650267902094496591525466280849076961810112653055711534605899446739383811935628169689372640136129669071559252033310789718090934624062888855890867371083198497840096481070648933913709130728827276350880229097422331936898021712373748810705181870843818335725461540039735957340263375783203470663569245671994230212738780614226180730109676781564408003204765879142936945967316764968016827706269010065277831679165264270364258906889351853497368251507275174806550058300338509506941486647310400863713619930463574714730818361246910462658188878272752244982569846271304034992776222654260007183002631326726384000446043629535769295827826902385666535200257458627616689053579092583311953355273633774593611734322992045408124415620117296407936607132468521035994225822885546385664280625288634187659908116398005025313747069296402549748973868324099803916442454860010306394264274722358216132326045168582440970227875228912560862395522970139957365399276689446482239664697501977291524509968886016121244451019436736936210915702254694282440006770464814243683797710612410060380532546327363735982932792465317538128413066899316525102159265148016223627182028512980643021627940216654181769856617852017630963746627144111102895801576438274853081933458113631427537315700471375443321500565816623678568598059125536607691163670893787532364749763079449136555042931292040781177000445013660744694382895586822883159546393386330187559167412378602770684485798247529907428424160278816194338096062083938497963267433178485318619376673807670198810747022566325889986561882548875145787929937183069005108151224952664716239549187827900352314951728307738709731737074803190024196030462041587670123546394893205474926249928708354565411447760337767783306171414080820323636950551197994724897537152066211929721786588668930617377743062432998219361422996373268668401931236049056804925578642251617375767214561910180221180972780265822155757794526016272814285223856501046473148844455993937826666537507233897299848090168458069896001187819089767281354758505497494286969141903220732184210944350626669457188159463583633574864998224484232419006766752801055660327850516582011785996162203752839134413726112339014777518040428555206405112242850852323299189116032937181782362450967937772382721318218634852326065405654670857534275589371452735016954831595966881843699392941144454672547811071027009393117883144073056178935750201779880843314745366973071789096990877049960532553443540849546353575506486565596564926746099647693929971325099199259983728685385482733084492838380662134272368037964079365690129592428752075107259716401382029754393770032492965320994345626079204689241865957750188789429009160406627918890793942542233528221000978628060669133717630434512384936371333571306524994390438168888628678026856466646387946478482121866715362023266806341043850010783985737113620368215275136503065195948991476035268594464523679402130980958669680095762812569453022971106717153836849323800059240323955118215300724336314583404157952510391152248295259347021222345414375541601722463578339353897475315223569856155383791186586574106957180380691945211811060490699146985062044460358468346073529723383858890130440653494450751777178681277866686303559455470430432081675228522873411359602341598913610198782803995774437567939334723227874708468901570811006814443826217102821084405500105590588650283392242292398738930758856739515220652007858001375910468077102258636093287249662344706818548255121535235322690112447887027934592905230882288906302007153946935896122577059627977846023942007510750000345515813809359180116384864887718441128206030713063635798215456381506798309194638003355303722024860490145711395170402716958209688579321000532285390715991288237554667954922095602109759741589694654157101312332180713957911337071888252184955550274351372395484031930832580319299587358131154501515075793408122185629409376989802481433870913890943575926457766339590782737420317073890046846924206293503697679141188447661985742605529018444254033846582246721766949020689612572667775713498786273692982259127103614066556246565434063359955633241055803133409441426710921557380508379897866693048469111794276506302042160489933823941773307664742602160913093908715561401004114940326647606683530937540661665741633587370576934788448972251986761554072246633605373726772637889855305155301713525275924039019523076402949831163570357900884659734318013202236497416316314914437300548720841947898030350740667577526476045850634062814325368074912209597805431105356031350519891120748696297158586403563089798066607717438426486715716953658833189174087008396039729027969437759880612619611049887477700981313110862778526829333801141640477888749923975552889551078929377080009423573085568845052431410091285819450432564671807482260449696648188805994630615584754969465396811236541695174017859048889161425699451526362410235155230032538970701134680346631244668922575364905150415376438793396394407722807026051512773451889709320039159396266407714222951343114596349413259235342104885924016970829317254722786085591416535798399876753049309057349278561979013739283162402933751260878325140579590321379853892561434353626583960456223353522734664170644329717618355481502969388678161778274618496113002586269251300855501498912043727988498322392084224441547368692107692605472052996175851658347775683325141443018517143405171583331084810297780985650986794229908952372704151027888509100143538472644004016574651886537067408646392129811527380076263307196243679221154135624638769075924698951499338396527966623192310741064871188569410969497228858845714497396778518002359921987549186954426653778263170950372093684961841871470316085980416242521492465019097854485800897513983919353514681198464992373710218622388317066847210165125816243700524720624211689674001636658814642874724643462116603165244313299666464175555463331332756555046393770203175686409766759520290118841754378831765245995234021002611172620976115885631383228045571215621480943608502897440406014990590803608903959684116751715657856867493230529957887464131779910223916912320330999246652926339862066059072573742526084601897141784853089256350624977135612071897157570727870916230477363875182773028217837681381254466600701062702297135551420492791743794282754547662934382836273023116571166333164332034073190140489414920887094816458738311445954720951653069403811655918567795246956304908074102502706437776544477270258049703718269088070744058669470709027425651237779129308636284860778792495764272337707301477271442133442422745306846322058613656347191432431119518060273457736336503414703628983789887632829670493844993223355678401463294478302843002154894391194095969540210480313841892739264234863842480096874719158665451065015645935479570918692705225575694009873392087384893998799097892728111726333992450872143418558656227197517401071153729997873913249320186225989323687026993934112913250188370341767174618238596249319351001231421240447170150646354758000929647007231275234728194782855648116154477646853803596351651631520536425639670595664181356642492924228146981082703701941397624881873677095586204436033677661824321580015541231910647239423335589724920110880308313911246671961636464972536524191656365823757666568651710124418328495340529372894405122104164692755888736296230220407454413880429246189185547952714443383017966977320421732287275319853879028479141417004749780232267018055546417373133559843688155418034464009109609729695197492810101526322492798493639793606119272651628661540114505533270410554696331264901696302367587062570738085288969495941441441253485864600037756978558950845174523529446592377531623616758424402459314575712973050909228473390493377794626746054210617650242024080436160940416982406852259774915373576804724689926484557135571313245743988236022839247627310482028911875239127135339473656688832916626830541760308293341354212251551237492523630645433155529140179751099211481308548239696529701297806771066604379643284013640534487480889061551455508285678017365330854817057547998294146790489566706315808249620773033402813743301383209449250161742849884393900143737488395594556584363600114025367881022295191468166931446098576391937898838273685676187909483457986877014227366887880410103445295094710547919603800686479329588115840084679205240116196428026331067240858108714871391793135220766172579761390740252679381922786115181348820963802749802600787504444710554594057978358450451648763675505900740914646568591614619653199335111401199376652144131230501202755995977911943104515500552348610640456616947235476242573808642482291308492548065677334940667969383216650312354277164809245894393689936755796354132971425751113194621962743916211965302099497482557084348387704394149815107651555149987042724887171952864174157816745523228797490721137281573565937991485744397092050509885924073410326255679946823342000862852932508011690682959371288305438651824807900792143966230310100456112584227633614448911986762132747219794403637202999877112677150950364918742889667916447102508485808734900175678059731577669233831156281380977567926317741240881093375602664542356386389297920398200028330368540349074452985213893100544909717944474314991359116485854408548923836082294129111100471888456393892240309359122787621763785468947246123550157051275426697436411494262049700832295138128241907089129735775273702656823178793880837844550741338019161265305327466194028194942815054081079852712751463506544136259161437168367436093696555956056508059458266616979528699954967305291995585959428076579406913287749357576562656065532075197419862632140149816773731157344993298452316305701028201571061290116921982797099441935967126545963452353599144290001910469359037965636306852290243476887449999175642891651204250522599664428889922649800584273857156360112768306329136210132424106962685475145926927502295555607507417909110868969274278611448984816056874237978364776061509654371357397096343866869107659599017495898333151599928429850172028666912634892816584805401211568189907120589213189277197737082494483092805086357868382824799928365050691300658244215156828586810973481708962312502847055436872214145452137078977558031830573102324196559689244304558204554118290499742849273854615767083845633955810975142744381839658209135629914094467761872302687940892548415125932147695876483681008849219031903214187904678750958435175485979316371234756309747920459200613290921022910096576812520476120308249523922136477648350583598934837063803567263393260157242684367462337437696318555261348129696091656966022224562884340957566074918813547252954820709778362921207981856207610096975369295362682248321055151299233600586927457341845609456513563712201064424186922644777784934130847570516685132517946375356078725185074120381247808453297433884823636927398854694242933329570550003215979511717788619352101339108397125818755342877132685706286960304593535271638192184879878707953115492309846546024946301524504051389052430615870374435881303735536465112110847237571293654436859788121652182312454767562445901691939679615622944152213159167439136220632724978604725720977005758267656953899645213661111897653708816308582524124632455385828268134799374555047963901017070348264676051720853503014038321878770370658360882241179177358913242995781702673486376723528223527948545206619626458291690663614359571492145002735410206729520207438498520585883550326264944103468879538788466347571296147470726441214501108652255942194413747554054316715332613592853025635582798444709336362176113015259282189176438934142554599178653273308938297932209839056442398102087515087306033716368042938641389404188742927746648093502136697113884145456356866916149053143011274080619835217627507913890863593888988123180045543832031392467739028095735511838867839831428904467400067392914910103873770387594790846216025372955869342014674830849802021599734012237549012478961248951741827847512653521029138813169772447319728617785413959320756898838899483064865820519324331915999204190720765638873484720131006871328834655795781358658124333116116142700759047812048659933420636987682329207058041563677488179721802340029280263092856325326582696719922816500648251743615256834458369647137100896229340263576472890203640407198565655869406558268009798875521003712429854435480701965554202711316150673924846152088622366816444470723639654536501723002780536227788685086141271341480858226550121874050587540884934065137341158896931639885828912761598302867338075340692548893907187788005296572616804437633715097862252377391097433235627556093326865281721733164738383543382122939442568140221919491931521774219009825482701623661737773947618272993965761702170485233119253175999664680027148533673572550889068865961454488254114178954254937157731159885696715357517367924802180420850539828903851710530779881043187465023073396295211214354578512384593669352807738288976549806544858859750904056862219737156786083908367008304504086958981609102187315638662811488412835875905434853727623420109152181867554552002815643640442635809559946505349289005838667491560721552465789133119957318793510187997181411403106879153510846929208071768858436420986938131713217469207467027598747111031336873800546567815494296913033887357035975573460499185475269721779805781318174612439115563234518947040700503147854478369333445960108915368081770907566343846197601672110902092759562353384859593146901520828178609851874561998325183354992945741515814181791353511711924781730207732863809320194097753548294739859463631689313411341506930771952998660780855971230102775329511293653733814953362428112435942665577671980689904022722913896614440358515598720250664641263835638266071054807238762759342102468098801689707219656692157700248359814394008599203199241276679282173968112737630276784236468784460920773446691356935471457290388434657653359919328271037852964830897541216709986636259499556089146291293488337381461538638400285887464458186509066647352292654863206692684652727670197488337266613351099496617260978907602313463880699504827589892167228308458164854999914235840015730005813365920962305198454607994181322382203203877225406974420837553602625306916558201320994852572490159616956152575156132479721475336914222069447994941984224943174020606899678677261176568922516904350890931315637643391109919138156729645702698812038780951391808732145830783691877333224311376646615749583176458606486637785627389768245999884127905136907390911437411743265966197060218360559765801148150802729458790577316238383199758546425335364579341131105444401862463738447951248194246616286001385133675120780601920929412705441619443655928870796662556453920826636049617005924770951302229745088743874033552830226005644955009985961082470951861573947890626663061243066576886641300856300682076070079061764831364674187777880440301596997240829903271526790371798827262613341453558543632212692880069725665043117687851863658519156820683909742692441932561001639256339738545641308786605572300646676656753991600273251989760546059760227348407070352511957246004449084975089660100264597020305521768858366195714792229294332596568323394646939691993747253917588885189448387506645273975722926242940573618909254508353240529777613839410709751360037675354819763779979509039820369554934914793213543281923221972558159554354181291845734408693023600229346470921512338928223888418582100381343275613277768805704839897855243786898635493170037336548916782527128454596103977253559240252070676247657189959261549537259173668547718115268999648249947358226988073440093526714037680357984193858239269827613257621612550174725367470295175855131889124559300254859571207634730125479280595906172408718877307288340166466447730759534731157051521011166884783904450271255717597311138882761751688743574522159776576598073885058823488525629461999213166788904726766198023886692757315360496159688632118957463014606511113179977457643821337423415579232992271420740046527944517963463300411478390840402953212074296261683881578262333433453186211249576574949327720328080959788769487526616429767574212178389969415755872715908477247435136632852841567904488138571275366872911905799731079427971283097555011031100197484311910540930867800624277145954534137288058890470611089119262867818379568456389331767901081528325627565128895634640212075952050215904996146277384398082650358750955829606023385096646717936321951254539489881382392022341030223317382000564285468311248695108551466643136025758923110732161852995451216443198839503114683320043579452799962296452559726684299443156499070218846430771590744867997521134764056155481168037668494440020095097404650130532996557480870999326743398815889602141426457576827591066494899618574927533038523838099866971742918192759700550369125811336967651031966780457381938294660791410380752664299354639713437583766714905235025099944248769891588204418779557920682809770604540202387732276602238380360519907803062228842379035907024827262466618157797377845331534397008423941451174126456025780162994378447588900382140419284700535461527190088999374530961300560618878791091448840526425969886439333034406617011483021050643116391847271812011238071244078378522632288147393236552252322059943408035026263930901107201772415274562028860056794070779421705005499913355324543804276250896471184582210866598539420279441750946429880052090921337303280627243310383114337573522921476084206003229605689943143698339302124976405143697876619368811326653804510371556354915315677791633797206930411440706080747536269820690202788635465937463964512470618101098850728303006324352285331596052569110256622416170346889948938158235433134703061735274883306057964783596547422102037349714702481686740648852754430931546434031447126920929222107924669136215176025011401599981632800286506493537146062991342380504965581536877881256425662237055523326147918813316472340000273027845565005228697411175913045390003226169687715721060689855299491009875211798609782068703800146922379844007670136841189597079505381055277750597413934073983875094990231881948424921625558658407665095317620122629343232278862784846201056868055198047754316640169176267865630883574902433562653009890707594384211244499454874312500518077042310981792547458110666951623729758981070124204883500113335302091216453038716433001874522535384161284178810604195031971494592469612400055408171071083922981214166268398572742760073204863417866796827444479731412150887006383455984024883420264833606679288789166919148892004695613015726149618720977405709468712413448717019360823386936884005245198995897242160289599895070453271834930876596351819107424273792390499317464420104139442612454815819744541130888728752927489019888264808657083098546069901780314156653968808015002058789759740520166026695856416140286317028734068200923246249232307616209634243058261972217480517286354045283545670564028357476326401809886748535740411483137835879837098479092276022944172096969663136262803864373854033935174645014531637187900199624004218684555242208372519599188513778792681081237562739508585375504836657490200006904489070307999217187255765807001502596385483439601247857519039614561094286235430283282409796040092419877055070966438712450299634920810555473425978750881918818371258247019060854939778989125437106297689921546575897481886540002999064047072022027235397001479480075495625856750432491889137960438908778625348547288555416698857871566364839033198536008085154040767446550993362209956591064506175689246258637403543619014009596433306877905490103463574507965917854125916024600613746339631526313989339911318566286350232302123228532149811082882835024301818745620397861147292066237830676662375997511803033311609044170104858925240591341615719364442222600592141920140402366305573134272624843766913596845164054095944423437299113011621227755384589513212654593532984109312585454946835803671676536540850323775041473804877098711438544540468045206085312891872633061188877854609975005795802950082890732660393208201994421416318348211227234979807095739868023810025894123343552727770231428200674505847856718491153169885330388970907601234180746927437669933746424277487860038004693307303619531280194150512968260094427683943988265265072084152252632132767663237983261341380176878328762094709862665662233140338683805069831425396752668613018678735276022230415756888926976708676136071443975751424575252367920726335550668125876575936353320796847654118794725523376641374016814208804739117071654284491742424732820548384888020979085324070729855175383181998758171086480958338247791975803915683478554053300789309657553469639400736474165551326559989951058476777539825371545931706740028415122539749145991581534642522537763525935977279094806857117022716122036796674559588980226849177391036350353472710459490157502687679339515925879946246709009053181926766040294354330969165812781852964306092154102944076263985551231316218372677382817524945835680849934990405401755617645207784837164761750455144950088869143132878264310533141016821321366125518862945081767365914903705507043429361806367388994258857866281372981946951956187956713426404020470352520100488447559781910088052204084340926698264769485004096448356495378404432516616741227341082510917443244772895995587804613855828767858881071977437281369822714783904154892932954424839229484324895753560150345317703266797743900683565720569100123018003474889205970698771510461393132285557985741022580188620195586205423178002920075642106959626721161221163955093077997914955635675455414229749344471594837870675732218135819396051035866847848903914917267359439811128929664207035631026227567415037961006603181046635719106963508813307791329689685751731543906199157832274254696638132059709605663347235445115835867798904822169500715341549239253208713695010979611940217168344435788596756874206141168083277526347088602666658864340443377618958157565825060139252001496931952706013353485151314230559370507544733193438448717731303841064943141903709956503460353751408762650371014891750931318525079763344214392126673706928668084041765473294252999431435325706823021964697585421710979845484485263171242060012962392368779948473103021053951616012479622378951651502115708871244610626448709926255741205593098581899588357787656676382517039031614003606248237097821184802896312202101420174002320409665754582510575042938780486906550234738448983848273737361149998370144319649408964395810403846577639671701118134541203829138991555840425121863280082241438587052618904023442218244690265620150847297009761187913790363380677343895667268119362844124753754928763836166460686447750372040055009139866675862958043589729626837176770824102774074187895359055858167940490168214056069640923430387686561583960315381871297393135670987495126586847247085002026704021257758315205429204063455094713599836273270412677629324894254454759557736115122778417133200203816122002628424228061461892624500364687575988335792429350345013222203642403450355468628490276536142668755644021042734280121161633640844788048097291167244798183133332233608253951020869863754949967130794285057350315865784427406528136697500787306807747490205720629343056324236176529184020801852600228084897247790646753608357514782054658222827122425477259926908109792335370125808812757085434587920782376265196789839760967888956854428004947544852710413990844549154221397113766466393853660267898225106328171710270275782197913883263822283116603283171626668458522680935888406881782351878964120217875879667366676265369942533125916420053959549888015586513913957269017209323794383253482653558728573366338079825382921084259817585225701493379571118787331119939945533422755429938345072456668028782349103087379063416060421366118931867454596339900110409662033685571763279801034985639771735859970825939642259150952432729975145782225157281467130077632775207297820936891995122498519550020980567310682544797989117181624175219424661048675058753412087083472250534929596094079701930030189724917462870052167509031089277232897716850077069867221272924786726525601035402566255708552538904605529126509316314234640788511005191679598023554306357108662261915291555634694842508793721209225680897074019735809882442142704425753459710035804336914413821349066778386354057935697631242327766374677162472447809693613944308404488867275943743401876969669607204504200155131886228478261771304675145722996788022240013664913173983425512069822142811956750695931448251910909161249819334144440251167333260343921874348359609328766636481135915065354498526151370996122316077059470303593998495191623140150366941419379649549882091238652183153522256774447200059159536714621783799488953193067289182895632970956499854050217842323021952088619480168195399946829762164557831167131633616157623951026615772603269365165520122837543159973757653367619848623963801856381777886726376998379630849989562884081281247239680917043624453198620496074037075489940374391996525665967612025870802862492157979702080669412695458218595641262579862725123475708469710081864728514538108070439955742481041871734661274740997277816954484726814075907693852477401269395734897373925460017890959936836856272641284529117235332572845879933416291973408765449643206316058434755584170473569595620000883905969499644098904833684675048839229202047560760446320977173010376763377382026866516589502563981912718387575504780099786193383164924621731796736735613543338639160988945805102465205301233058035352327147336678311500812541360459253624564633424508832157344933605695372955974968946858700490954326419461224258545682974371160603159183447862822103699003172813883600678649175579964294149178880136620008105916650551760454032416776987712243094639918191720210558346026343521819150117215491998745178004340385306167593329326609547844641955117932028714222636410587443899566225039013232117535006927361089086513132780368723896916327605469418408646968674953390099694885302378558510009882288969676478099350698651519731833618429538454385749697611701549365089949321051423701451650702508572785041760532152118507582727371989086000423338275033295832803278252895333638729488836894827710265487142468263723056068013910015294047040021415750551383067805790293747936033482726011494188816051741833672516608614345715567696253302774436043191320639216197110038797710985046307851845098034138226224919723561592379209226755697252094690664337597492182459509019360740743747315791248186985136057786428249467184446947857762382486180998176557328873765574199260936222694778565159099257957906262941708039436156689682083637509991475073655685599749927481766326187048370742347482724302565569372687696763479180418434515042320754063156187978215011168287459169043032121668519221411351935676890025637838536031805165890391221137745204240629272313260052728287687727110594953476796472387583877881730761249178649704447730793291788001792779555301770754690827544686145389314100849860730638419074217924863141821945404941589199599403425644686105647203933546783444375328086297384365865894595558842675371359674387522835648052653600297863876692911561436639807719977432451988083845869092425829678325260698341222874204421402176219531966106815745022556561301029586685348413395289889263738714129712353918446015317476524809568213601042903311389096482371503330242982879974607029976017720599023716049932258456937757309994692890804850972787916078685993940769890271222531772194113913490661770683364874240442338281454813143112638946209212681363649123681128712059019320044122728382224405185309364936440290918352994974052453571087270229686536887340230272903081633117451201149041531893154594242877667235044726241337510153837802392547225554757289259764329772845566197046799856050412787512495869910963522609256635681313368054637610453681856193616225249507215482561941679413155325837665961756248514922886172805163175808306143376959397296978884123457772107645292185976593590238992429229188983206347639961941504864962203698297390573217041850893938939817072413990202855848948596057329545123122882394622283715245731513766185908597767797182741255994273853418157323025494243619658548494673841517353427628264192582276542155441176126679830684237596002755271269228006082276333750880625343961133363826335415333180883400413905114969336418044971723130511555838595626714299891714533459234765318402680872493234822890494385271788492279463345467136792032787738958890815972082753586945883563838622713615145115948207220632908734747230370213209954567406155948687969820851074916912388933066231641258633752032960069016117114455372346109628876398843704454753062874658561799673941678904516399954296764243642590477123734900596433076528985886533296235199200542147350113902537109691849744260424095141037698318509594124606351229807997110301586106547961011385220839277790967192063156066217923994166300384203963658724105468664507404724423857347164057151928511502755417733613806980512265422937278886903224999306498863809691230632244909127217861557043149303483669330476202006806240525397923567267379687383453565850417191307014311909898360103061044735736394552470581346739126511591387041782776171716996788319292998237425100795078204101189442447093407876496519283472431936082024398116550888174038931566336597194980432619876956012402747135170940977028718481749548742927348125481969374148447250034426741677570138388255050009637079738730608220688347563027181425910133072324965812546365594610621665941540472189022947156831687134771410585005656776471003619754409989209947077634899486801848659551330880005508977318772611197924534571640222246192747379841939262280388775099876118667486748236354901972560193993830126756742358000174052942417861570061391619200263586426008021247877305662172129683009542858272835019138309753802997553137078962794822931796903235198946325313026746426226225878444766820368774437429018086774800449245152677072464267270065902858813282480543535646023288598681278766309551662297825729134023981246396777292053865284919074805373944619971103491604634877049707241838816011109562847117501448725556691873938749649726756699625927644813037293706482780549498422987039787949924228037057876549429194819797884443022525011580695042711162370571540973064597234350354079296249561372188903946208499328625813727331120490308535412251874812752174215647979521274489999013411840243742410119145997283435725455696857674660460387843260847786996031968522779031229899974521604288218376731260311847428313826659878896673156488448839844695993795376470180171312866219821356471971586344707212114837708052616228343900437627853904527700961377465209567792139188879882249400237719508882783155450878731610414035726744487399017973656878688626979562701011288569957430110661727862078138525493168669437083219435270833658137574249961896631552127232295811799989491191337507713670213116513791539406411614513836610067657606630084214335538911698556647096177162782060766587562849509860772195903567390203271950719629588617968003309864656183097350810492100620871128745764196041568278690943201568529481539760625469284860503068561662322069860982780194972896376834762635951496485545035781958886125227979582755969908216476204415759644247557776260838213412585265029472971259663781134711084721627384945298115532609318596198043886642635999855325424920972746619180273467242650501646334109306004441970686161698795336258945273713769604838938196450743145952908982435712645019733899302709512810638940708561352047523633885025123036351404290990225065612625078001537840140765182465054052526726205305945775369655581834471546332308048097436067802418294861725044776624759088000882482243365935470876663789357585976871199921299950190731026327991831998988056613811413216264004663583962101397178061733853753645618595372581648787825558102251458512839119391470327235413321897022688401404944489496280090522608610737341771961318585405772568182144402792604785806912058898513473408203988715244392195934723167628493252871008409321733511846744897015894937257288152840486780543008356893503647232060017266349087514807098239864785893644641705421587211950164268513050689460085979793831979298605862979508197100042063747083138267896941836164106141713281970560255520052366762106668660506210913875377951596300048741379268440728956288470743830160380233595763166378858713574112388169171089488902759399027939539536918234620192634240178726024578573317411852466542821938644417796357878935121199374419851678683233783280737313697319110788604415552201378238695219688787351898311686076258407038050767743760212529896460955155991472824395673929591148451357744559033501141466772330089863323708807026239027896201308086060488589362734718398041671802414206777578205770993686701982125183621542897419178431636800542868347586535799229948332539945718097484746435243211698526123067630746741055731676291768305552028933735560891422847907440370460430854148628138490939808203673991887797884537095110603910507670357959491240459404659913547201968355404107609823449516583356170123749963453574661913113772658125381481108694484437556351703930888776381693412181198064397385676740850281871664327899861341703525249631597585669593333636487043073506042140163360916629511508466846943274954687808595617092276652621534837456367771488533267496592872826782957659374922840321501475879521270470204444491443401334268099246633605357392037759456527354602746887513976207180650170286488197283009044194292015209756795420689672630717097514113440175431812300142225805474369795902265884720471111834824141105094142758897428835809619478345114975659388132712101397714924465658263817958303460985827962044720610913818961581257705632984729003018778515432118004818359383520816572203507052050442782310698966414424220150866857333152063229360533414761094557013850611394606633380760841230380841375297734023930482512958479727033539623094423734671608969800687477080917046633697437823970989266082755608666273626838267444048717936477910922663056088225928864111842931605606576602225978726739306559977701173630993064947350958222933374104165966680467881295327969478370437005495491502431514793234398576370635650021999195521569505703106561102865414755828853854252088664835993398906289683097881806669784244942130128629054069434186168428178623978057190274461748778712469777583171447214801621810686946756037914822392806990160566066838531475455505152807546723860914539502439528277027832176517964669361814633778350117800492179145639598476163475981588837616004747161358663707793990880625545273586247381850390301341723815727288429895500150023869738241471001117744534953523347845024534113706137658923939475381963114732722464392376912545646415076235123163257080622584723218275823110696850549905413283760345778391128051835300233707079946942102239528212523304245438702916129007567143229337701277341784535977353547471715544953833603089486670684505119188030605015844475994815535577916818531747682974211965210813828209600849730079642963911213863047639696969683917208302185591800610190052803611442842588675586351611435226543137240723624307417277621059837713641413036962965024883722682210233812535943233804120849381026862821873819868691516274867542690672688930327135842179257696248897077883730479572423082528627734333745196198677890688153358206579934043276778427947454752176712909680936372387084246015171781175218758583434525570160812931395073944980797015853742753059380551345324936916285309021759347689086636582716986183783307705062072138223977165860755077720975725449944697777875652417222549875523031668472945736611245390028316376764768814432352401926191194456951651352911804619334419072263120396034684955614255112833531242416938426995251690616270314485512031057090978944574157470372924604001994749297654829464696363181906209658433900702335147811702419798324696024725055898543660666443699895333799324717762211742113040902267927875988964185121137133812621060508607827189796486594960349808580327482979695728677151016892779716869792560370404388636031315274749110135821858697679666465071402133339286115414992147848207934616205701462709751948543803646997130184891072302206613017298261441964007504279288383031305069539593652661570162639073674504985327227745263329724860635628396387412055883475764722322153127356979615498284285098459476451197736332422318703482931302273457888671701215155279801040741886685428788146430017451793030119850783642253785636776924188705727113314139961247303943222684865401513270279383291900392871015477171724088041329005521206651660119874928842914615902034418272571430164290868260474433115423121579501740558505954436267170773850596758801810482539289815210259024321682355646482204010740256951749385212763281740259035400961216606753349302399822974863584662152857503795518226680629019169890547287378197635203758281613222952504224983226801324394152472269774322390073320988461874346380351215238879353918321747266240239547511278877580022987843294876255457110909169127336071666080123339818707892119220169926917217998631887559126762206519545651230554911125181495367216281461653049740123194152307785324114389640645338187032184501481905092941763814539474780083181719471747034236568959487537202648157540662249470882542338728770014405991870863163097588895097269843284592367777965634296968087096465239215371757477582904974987778686997416978178718054904859147214964848677743954093889793077705280773563610867971094973859411092695633542814628895326683800420206446083481451427364164002774973264954916550877013252855674463740201472834396558530181681899565799670663160572117012668212790782304034258283338090125962914557811809997074001907891774663010145687804938226529636665778041511996632677111246138403578393256688803734338551195802008739139994155831925524499895669147024060202726521562317291301337149688134593504728637182359073774545837734290492010169858409552553641131364087059222134969235643442820490573724168508961874107771166550683294831885939189627503310522965325223783826111440471836945479280173281819498553384335014370505688429255103876754817554376040928683867067834347700890238446404897721790600838576496194947897689841791583278705174685191000282690252758406693763965993203417321654827921478614801681309089561505956115854572211648260848264456863148061224489680110265401853459987713089953187515411300489020124593652383181331900667809320417211155178115351339156287821246348811826634680984703406741401976370625259510797227816858615547161597505885884146892788487712739990245624297948361937375744933429918192051896201984901055115164599929334438908145413821802294020816556815241006749177023546547712835487767676943596885165787204222376634571734359910736748623287486575874013875363512755090751274996839581028033129393093355530846563162310029437739887525176002145087879702092274163955287116487242843011385679052607860118111013588282848567718867354047302540613336728029312215101303372586843672053888629582185642899350213029571842068395943827037294657117595316936603259125318349931693139203707903721318911900322521258090350427905826064724944414129907578271370688439973695001057493475387229219228048370304972464072619163580620277475567948009527196549329893993073338888256073335457509625745627991857268762600142438805561712244463116240918728232952364366441215129302203740268600459719661355727385574422527907189731408192790560699683226131745530165817396480563833106986344654288394862262035620149623865115401519717852236803078571793065504321594605747039469186863159401296998722279639918393572044431793786494398067360167269769975177206945986484964216808893945745387257821382076716051991263366210791227652024141254616786965899170305938737016829292614272542676077437114661744910631627895463097167227205823208048050700624744792187901528215174926210928810260306906423993970144867305692722829649964010728896327563229187545142978566176397391832017986501714441616351062441608731735521836997141807746291541728490652909553112135223632899852477932012844506899617481173519176275741681082188474295135039945117642989422221204816496276287445635280757600162650329477651488494571400272869737095047851029564489592128297629406531936528424003783804103304533269009586415611276170774583021490097204704904462296870252185303554090025424414656619781808705712824869443314750109491320455879035053452218053230615030315170258188529284626991145438454447069214589990586335012286196690649770731962311770073262209990955240181524443131850543523746371388478390163560251690637724961763063787221284756546204252765560732105716928003946097029709937356743145289122579845436119881583433044703122985452295913521446808506344963878710448810907050992736087696281364930160781305559909398498621619335334662575673443556289989399967467478513278793239157595747000446182555483854665769117740762471037763654725548928049700552696546472990894589357624553408597295995868603901104652395381502329841250552126089001749885237831983077579694131599549111797361487901307530395751018192737758511085775470443909212810998963021762543261739866090076059320733432125724699942357686359928353244304928840129430254971000437867648732281387272148502557218683123794401607844524533165191911414230037547435588779208757018252918225360089434623180988549170342119081650032471499744192684991962412640967065065632433051987597012154282892530526594287847413632198241458133465146744338763628325494044555346968720275332958059530365566277276784427586395167984696064869070964524639376145757309641748760629622457008620916075947644795547596125287901281986707683983304137028880810328174132079677377617847858430311316643633415267667178176343293796375381709618912763047614671384131183549948318459131635247491423026236266028078835555588606754180814567902086591681941274617374943659169187935911461964005091905476993079445802455604136209517938573793605577712761509848292892047017135368571227690402527616020450153469950193631966747299162075050049445160486690306484300791054308212547979979743584224273674283868321138160582685945893771416238993428759021571843499985346627333965626364375955922889537928648713746720931236589291627653056620507203048078129061485106740969056965019037474314539587355063440001749242149516011500197373052937877064707775266580329149328914820680101036895712537810119590238158793248111528658692072627439765734509457356214449555267496949873239731377557736177720856545872029671371807687589396158894590821083442979080588574915006358878971125317216570400503566428486081930070933752233503192374113638106741417666597570602855441193793172873640777285817537874955619435089728454140782679593165701531726195122893388302799081992068406037213196745928885884107416782812245482182169291336036299728986893178268885368980002424009269083379215961253957458855869343112221710544437251295106615257823800000482145376431067413427130801896333764607815241395529169682893868490084126942368394460937875142536357341343414639483746902899682133303350215080023463161189032743999040518533711683702578619344639161159592213421812053296323949534920832533370919905676259563027768565544763293113313811288444522658167428998796883571600550353251778138570631350632204170101508148957396992580316398122982413247582479987242920863517591301707825057356510029699833092519880369131971675274110651471064131281859152489743738358253893540250834648399056312334105529689928550628528017049336198900375957532633796771594346726436354549345258888047757517249864724677357608463657179034775005592679726715743072554987004482410549209201468303486691896859100946967016695507117506788807037269056062715817842234710021074675948155951865359847526603353361058592601027004557596699346362464606364361810552607841503079768022144844449761541094954747315893425501672826138225615778072201745313661271088844403019537172836414803937057305855141323518115688012778397001790111084761407989444286368729475269889589987104320029055406253433833218454405968686349691076395781935613737797658592661832351339467547810862457902031978246711271509715476483943807912692075300139368051574736392184703447499143758121117556219034278371615751732493008639063080365577463089911247644497696444850124854379475831381709061279655679182857339783273725506553103492599158550481572577161614368868161151315740962529273669314295071199337842200636733138348744866900950807816639314866366041646920484269414602598797940087826311061668817425563308596873602159272215711591904426072360133555495913406405464148039719743553160918963100384655778695153879687914209015843845778333434834424821025919187598065084888789142222346255045042634652599286964544547281145014292417613301421527477231123203473938644851079577302799224225798392487170178431091054707854660917171638666294657986994333098568485416272739552542444240617977333597758467876582968516958681121857085833062318848176343442026833875310249248277635775391166712472924428705623774086334983246142611197529217550161756045175183327412753423729070786005034703968598069259187221116499860931611844605054150193281185184341014754298741542813643662857158202998150504804737770115417321575721647311463603104205643411053440966419466720937992673343200687137275709671454401161185575889765950305752897100429938571186824132711507091598302749689847013599271469768584621159210115839731036328507854660083636134042171975634328694770827673192217802366790389848239904282845806225754283532829974128112465009041711722307864813055203997786722424271368181715306211318110688048827126234786651925338104022997756368395630700428009922715989596487577373827609792262989137936606956972543321256258919843992690745482483976069612838081265677483464316700666093100330680396436574257328824579881256487346041192926683122890163958870279577950051519727504670997052683567029606518466653485130611980674496908495192829127127126342441628644598039493361953536566128781803412042514366880176345717608678391712755748780886573048621881663761330657195116503683166390065829638801885045677699262119530399685340923488119056811635425103103765561209878368043842555801985353335313123774688116919767571215542393334517163216056340479633157925092564921663946386371549885305833523098211780571885915479164806350866700936052347158906507010205005508152041576007216613315309603610224334921485579348715449662150900415374974815387879895986419580975029625052079423294703147420841454777686505583293216533237969663743760599751830308828567987105613434339946602664862521840150047311345960622318366008287810296845841455168740109900050985949143522224715714129000529388602675410478698083416187268709474691138843504709122671907542560228106399600335046970681279410587694767410369301076154768428680616313574393273947946955690448749326833422170728654014311663474696505905540531879481072339786758652449105813714791172010817229904223160566247311565675866477216410001621737508292206645383242700349798768325805440065981660811024702596618421683643347335391129249280255053324252728365675798863174516265132649209793408797429941743902752256732431257153393788688764908254397567486752026031108818502725696758385846107001929017641016529967266118634143879875612950314612809401020155742592287782937503697937132742531663876097668698059737001195180400366918963153973419991345600977069492147958135875353935183560549394770090838676795507777039389885504609178868224327526949942051677640970119432207047015247280180989722788376033578944825370201577963105203055863772189132806696138731168561116982636857565865343238774904790100764635095211007417838174955683760073299699711066614375060987425617046044546962719348239664535696475950807829441878633681399980177983530871181760933174940874422639846373473911717305214612224705544936897696545637606918998919234982243911947175671852062323191830164114380366377089117677662707439431633243290100839056039800106481516354098371544503409635094008262053104518613403996013103086419224944414274150114208007646025637024196424682614361826282102695529790256109354550008793133095468045108639076827119207881462785452763216172576418143186971317656367121485552382947748418145066184682073393365642108417148014488109031156349124223345173529841858570088311963896503370112717602817972983087276400494538161233933552504595258191348830477302380284199978542026099368151668351400932933902140127109297564687735442173124338660143112104335750010430559766677302965168344625210618778004130270195853755620665674504745873531633620348536424915104520572151153480044030660399762018235621220394402163492374224726886099981860876498464711997514786841536875543715950447695976799448853039955032049776982757120758322890202054385647042390533448864293058528117658794475976422507931366658626857290322202567181703153927206014185629800064275153945662494643169838022025529281664363145397925395585603842210445980149291297277387581926793708649403013205960050805274083267197587377669360155179708793385534996367731385155828865947463546424164853722448218209026970059164642751177638546644382157978881881220951243446195613543794467681775791198114053244909054971065067498291922181528877310935710999147507638904763552735567460916282422560843191177854280136649226282709279431493067054086582060934034104478613159994543215876775314650593248792574519883099976089134736961161303739516767405173744820712560758837191350706774458959332770468451830866826136819300440673321954590565289542994656007930309640273892370176674343167267569259879186358782406479390613498011100633701222287567641929701651244830851658575972854096159240738496440874604613318123748487596875382975380399633116468651722926577294731829528687047952471043194892351600021684268864453819985402890255292255222644739780884480001683415601112822630481500381227870397115420650262621340720800975418859963505147231770097324690928894881040481822784870759835403357810830183385180282847688876580561985039167002538156555350587550081291268790813445109782836962360657317441519207090345828765228687032658335312947621243050622019610734320712468850289230539940111527135933211100800435047536082273286115274110514881207881423704491010612025015609500052109457764443629084057620257458429797670841929391516636379371077513020614128332061206266408345969732875675689501122536781537193155690234442555841919042040072385186965968165903794869670292839725231914955208446487050968754438420178801309288426194376219732740046394783432482834861002314766446420956422970700785902242601393197898877573809764691647386107561940386392444618343958615893535582129578924915272596594985484328333642046924666522668719086605892885147420564270856066731756123179112702688257691590894574793376371607565754621679258205784701921224798251072937321810755206107749456533155783212510775080836981616674340925352863211574663742835899584327946460795459208929998304068664073934883176893725980230373762653162065744994077420653470895814590289193462041339781070311149495859487708709646392597935983221835384338833412169119223632855406367795887989048154298676726852362588254913562877964872740481398635895340492823396999158501641314124622303891247918457237281130554702977608695787126867315684540942951095911707444763883311437590007380413381187164104971978610251456741798663150578092588476461310220138290015485577291229019168911230053291999739953165068072337160220520050039418099041500601117369054836850279192753524820642639381708273855314733669834086049658340781755166909723251623748303003113478321945320203848546705149596538318719996854546006989120506777443921086998173459948039427482951101224175351680004489544925695145425494971370448789312793919583109301163599663895303960744321134540311860797965086259014162668858873729334804337381572071839154977586135979526769452360705320255381736819518171293905814415736827864617127549542071319964840332821074671006806098103696504351336169545369864018084968940340078499034320818807962881097486498975949644681718541490147012688765696855669354784128747377304453824002198054884217651846309797557911839331282606285878081274239614288055832771107496286599990365241727290117496708698793310193103334825164618775356108806531065669029784516390847124237695567702111125127199961876753125817352376448431749748353322458402106246115727248890286534833140729593689453713401494473783703121236846743232613362479454552691184602484385256317347910928239605288150845329720398480236847229797758105935746641285239119611880480008059181851483085679142522404168601972090685407220555807651818819451511207418845416635404361885447646763097790733991615252507448575034730587591563419462125870426893340268745064646478045799830843409752310852966470686686040225402237836740731457468376591653612668249337242746373275232597229373954287466962012705237995156901880571896128319513853981438946757148446672424936341632026484849371093715167255880481602645630814795514654918704640489319687716964124444535654148112554281481147532916003938233691669277289490503506029914931144053296653276908677124013311730810480768699081091187718474199847844076032846787367453303341458159304476297915191091318373446117750221870231886709566012872365930342334342346964768289293613580622252224530927069964100870171156102577041622403585606308395754537988105444409950687741986091490126258012398847360422959594507969094420158112481469494246020031190488140161131025515306205618196077823784518425470807137192572119019890260121519803112651358455152287882289825411766928005672466929957298926581914356752278223360877833639082906265163682741221301152193122254992386199983427842807073680517494243064833726379926784188043146976858652456567678115810546590506406192356370127049556317200627070115788367235786142304920968820989160175580061343129837770950784799238510393623366398837480001921447297050017428801153017376546911875755436882834390244450608759486900057437959413399704338021739663285127614306539413657660606114440635389066716562324139155958779236998315156025355777984267385071471050124758946512067532656772530124270422172716197504623200564348503207810339088184472565020108105602239439951132353243333795153264218485527723793222718604635768376952137609534749158288330607453734694771260658392799339787271706075548315290531776823225456807664153596180758944174130651573445046660916753972282903690785443625632000987450289765692716739215408357737065899765807234101833439366463255021390488755085996121963411214049722902496486779965066867011812948898603854987526540794870145336687593851586818176957566447611962751261535213857834774179748828046284401776571056364087579593276927914641303569592774188839952670665965480940126316922302250303828611467264347567677569936501702373455536611810339866607143125367514097139707230898885488408100761310385603273678095628798479312720096547127697778489762010845635086844878278548393352392432775073262636386466013036582365129956166433369123103124932649054308478581639096163211295315335987922393427065639346221294241934721398779915989846818251048095826700402334050852942613631709189628996147842027313144127320729551938487323032550170793718807551912205243988551038184248074185989900725160382342397491349020405921564768418744392127049348997461496163543096570343693052786090840258461547346202120416196787895690789964560219548438654682442436312551465755191124829713507479635499711567935201227271854330722364115594784326170905706783460287661884947204964015914091735852258618736090212346860975406515879131667617200792160754835000180623961425061865432332271951559068386428511932670896652938360293893054773122697414418418425788705725746364232629037535839490423820557491877645605842369080598611009156681114482831314374710107967605235952429159458971694409641144735673514853030152657267101857157183554611678001790535711464872472077085855057514319379925368790864426774773893434979229747945648199694621312315087923532646614762461432008095204391160556775075624623819152202000388001141969278881002997837891444727133408390389102006837971043288031074237913399498758736643951992409855399179559113886045254369125756550353460912515684734362820107821459835728721356390203104025408204498974902232234589401368056455399673041930800360357091238471536726927896848982817829725558061842593746363740916017701564624613139715920714968111269965051048795587894529100961996936196480025349396225104827267912903216315400082883696027477534467257132560704621354872240430717084802498634645370041859328917953799452165816711873422233347720380323589051973255837151323411600474926104818999126027504954996766313735501669616052224516322350653423103555298037265329614799400307556007326652467420195042102252883575223137234459195890760453901447088010583401344003978073971038188836618388980796471740443903120782644428683420556676381647856686226003929953902628872560132247042402439434968734533251137127841857425054594194360601916730302166445930251653079861040850366089679239750637782486376810620275227881366943161441123987260748861595543039539565816586782488308782167886255250256160756829025740458007520776224145882417957951486650982898889463315345057964949185457074304838082731325811226651874315869948711269747820796387898148581002128149271518080509143613612007624489635801661777199483806161597793222953535167471694175090203885493974273923497642837292899855155179107348066287137841831193622528272999126078120285560564079294697081328404868543504037041651109593194695161294359179819771283464156618395970523884184388135087304579632616421348471285479758530956885069852959332247477257153934994152449704704743683731699191662092918635202287541728399760751187335339400070215523784501854467571802028311392269681777620002871811967793709177260160527536602377997453637118791638841005052327600853598704076358384984954097423399494071430134338613719277270793713910477044717657531830684886025976087266729445138485579120814064034622374545877101344170722357050755319927718342301178156474960838406633150538181542996026248660389134234461551154748939648026470859309323096688354318597484547610204990543264727912484646038954290951460477999945856729144494044608721499857556479999768790860633127586270361179926578747665518195497276221321721316761615939225327463666378668671312848293954222931032757004841734923911246671347181992589271910783745464666557108847064342792456542710298098920529387014694460077514345432324220996159386983669491081902453744081866477966567669845034415211401863520148216583302587276668544022082300736261125188431011425724619026817834524050447502102182227418464490849096317152033010510864171523391854905555213516811508929472478473952849167778474515195065587528576910018409298980161478150468054142993269257188374498238476169620085408180203278214953740000724504581110397214951094515974900215695267466749963993621089484041519624002732224825693954932063360131581234571459623645833530403559427449211554072149364617526786357056730074177460417869423692874659030947038800876208868772122842607021867360410955936567258084620407371025121250830969987754859511496814040441733358376849321725339002780419982736059363640181722859983889941838571150896066944995774773795436433306546443291380894790355476072944362939053457019073389387559669802640599661801152314668532003366168903750946070171920009930844086586566230396930029862020680039816208892145174922073135932154038178838124414440796469179724423996253572033039451029595118429640137559331948820975500275902518076507874939292156686485623880904023956729591837395206383653903386306438501789912752645302219954441466705243699834002127563585115713402150987601608665315988123698972478759551620240628556140724767598645666545179891594194345789131242485970490731713513450947788093093303441020724009502679337874483591729372247744190966950262568013895876404830203190982774130478482379008803404944683352746887103746092187916632784414301461679625550786251025348607275548553556675661953163048229884566101820090113560098267862280946296426175624522972622841679729433500517299541525897869521873644972056269051876360119117483020354310867865569467674290700426496061275428266023967077066588241853627383390912491031337230224165345275519631319416987587842180285245045025235283561601219232184811028848819551303165322218547083614680796046643223217393738229259781624939828016934926834757845483161777615479771470015354622591784831753686755811288845222555301192051347779831216796648910100994936712067760761054642754476202744452395595349993878331345114593657653367505452555023039849468687534409832859049391719061960407720945556618889329351434676772328310218311814520944657660878320761177319865832084831316760850394253368016660851934962537014263916654329686338786392220139654855569175840963816588577323781343873304961991052610464192939916208207733520986332075257917667284561281439497195609905574164772031730285065036707824565893316289795805764743466409759563382792552945445259914266786946841015738231609549963337049764664118234154080168683921032807701413221460341258252758249122007590717677857360982943621176603402539811808292684433379556548718653971183078783283006139923238411495758610755981541759355065964977804921867933886442659973520539114335634866163902198649921786158496523190451902543095827986097843815687856852933722701255198741857390763844465084824837823607137045975021894387757922701954443197714819145638673905650720949079895944819052406661452275357386230572057294619448290974333435941956305313373481946005014085229170654595792756084148861211862468750311439025776505402877079061622827807761899871223399966263212933355871104983037537825712605833103426750138707903598829320788844637289606262674263717121823129429655371770697253732951356161062344462503855422695174733580656056548774166841199806045630926906932218250750614775144648965884470387951380068477475582197439867595566092513134123737283028173294052902684092147587171267022832082284918369327921525293074405909306147633991355834502887011291220365667674290481931744121779516244859605214159389619328005659187969930050820054422356387841891242310441658863398985754606478217292079525046613240214698619153015787205831985705359888943904308068907332479241698769891725191241212561464083843405120917909549876864580606132676387728486670467915366018334971760117272256340469728616750250218625624795349794097431169413856968954566094999964726193101066067688757342045612752644076055498462447422572313955298090791091451685413966739650746454566958575656604572836799694334684769803733509152329246009859226360575826578597865657003689173206990252597291215220583436681863323725749178827796410726386074731056341870927868854699171704375713779201857832924479862309913389745512654082372784719074017071485038362915799345878544153545239361537163189296349495101984496416133704718729805725482301663109183259973897324623660425399032531207433925418822369272391352682385028140057828078882818289951175693723766838177420271115751488413463854934567194811205844958088717700510612809637323781927574562478182515504520247452752534901427833186077171054244599292911554751926847780315844870862270494583749486544834540117078412920346111659377186515225487381974963727318696336737322262642460669470971029681072596079617636502018018217761418653153016996352540405067340787055602643447218094622229062787323951202278787796238298006016327772137329598888216221087511979009071322617640758862244000499491778442329337364627854766214204394400282160152558179506648910263434889410996692541608242132271630351702965571663616199723671233161158866579737430558607038510796898336870498633316618860580312172602957125760844954528353924131417449492530017628869210294816333135373401944536088799436036036227278430613720956140937789343593033348237452225059550028859283866996690636543723649775951508897421243261377154853083070200943947452580929639968890815152279030926298664226338851214381946355266221144177981418978925340410535245593104229160396298849141086469645645829235639020796011827794890206270202897922887045233353438052190140822911535872381642415615216226778554803531285283561371771934251067059606388256051202339133786547313555641090817476560197124064354613039171441089918054491096105906101318040079896516130510195272793773459592095266163885547599351332054851952949936340313502146028638401744675687613085914117036921243683695972478736957560064811583769927690625670785298752829801878410742469957010062164686428502253434442958027620738319505323752162264359030357027825450865478093809262391097094298025236313758474861728393816795009986788565843780169026685979330485394744667156526557205371188233853210778997311964739286254738810251788585157203591899091066991293067723297698628261665197006123515223919289692461484765309607055637553271954458809024339418000118099287193660137329730157858828186023662166018914334893880636851810240622827657661717313502103475312730515557197216096414104489674091284234038240600917943224276122784638281028126052103974155246449222720208645452601406532293912480707166876891252364329503255789049077755144136995934840948994226927056870293409803476927913662377221664688181007016673462385293648422903530415913849096460532846765539614884896552884801383238739411495714189421128055298699688465263687511732608506524009114649368124905452494167148359930703642346480822164831517591488491747497872675250903435348108689676591342318750570950378856178853641880859993078790891234455667771552586608946793018328177553516472928579134435708646057561640917648343670765641270052862698759931526198630125717892972922408377078690633789397489656722193453084856912057586011334039158676199800153825835454293978453340214884651828396119066680760775554964290257766418686344480315172440235922669332920949070249433605664698319908429433455853473585128505732729378647987266449219428136249161956854744055086971174005659713391833790028013610790767551214560010506823598992685768611638200624585160577836212915455378958719606250933396241447185301090017463041174491385436656219433480057605245535089079655067267844410672580517259917421515917815772795515947698946640640064897562124165593436323772111446289946204875804158978297042397172634635879192917060842741356480844723642823372359539172699358434390399140695874222030771091058385313280995828139980106809332860666571110552070028011243078752008349710500912364725348607883836794899467133401408177749832527963282127555584990732646974963628033220262956854935481009468018107681639704831132177298517216388094673637621260823780536953797538750861599474668935147100604658984259748994800229808372219699122321877156448212330675540897586596208821579781409818713859583979723144701754642009619420493001938272401968820615900349332299368672334948179490538938576449415715330475079505511797493228449222136967036553263390794242806337260295485536760534234028854178209868805078149494806776046601484625136460397452906433104052766578589008265880896206732229254993529668455607732358094007031646254125782496696619367326140269834341073375454141749684562734027715016321041395870708868622133063616526662927677214926492536395139634312041592641884767708979451272796885625181543146088170806524780287280540364487827544749892429163621529768710218257393968881409770116048885193621339186028096231992231772321500249743746972499608782271217923359598824510947780985468438647489319522187129632893997717113896344366183300613406475656248266742758404018309969164299078390655228857577775021547883406218576090834295246508658070493041568135165608524917555008871179322875925270744570723201035312697986411209568937605236261329599440101495716180176551846130858067376385503334553667121864217252155605541855415250053873875055865360692116028920039436871046808236257755604190088559675986684021980978877176166649748445663830633850031528611275202596388989730728990770394974587376871315619545152381538328419220076395513058080902373698140016474238325946484195986725520348602218777061405914956552641313442556107932600761682844104438890932083463976978638993369179576243825278640733485803804373367213199365698271692072181079865984662217596957411310522441802250261759621044563011187810657687130211204470537381804101184930489222467967151742385793219938071015342585681897187921272572279773674181712370771213172496218665174400132179909973469776026941306706241375319711120784984529766011193203685627992463374650928707394947834810603309512331291591173830888385288439784286810563568864787124874067154403963181514705013871520622812045945591427456304602136350757202662665186157298027884108343872445389697240560378252534288745085694741898198653233461500145564272621206329541556660780374442553857690379136175985039297772614379771173949131053279158366876756318175340727865890695291373877707700249949169691111906567442172785332728665374829870228575148270719170982381014139396848488315578754857514881836494784815236945133744484547627594435896990162122445534618500852447570077870055310642460721879045017391609318413340301778760770484293019490478854178294088928915478554778044782222217371621213896557430300448698414782216325566621643481627983088264279585199813918805879318690514473222408228969137926935108650457389007283592328245531958084431731290173758784318252877010427713050903939861314921806417189976454351038307389478242145833080562890877484364778394037809184893706738222715196078090582218793218164880324265677832496570677735818014347138471106623827268366059749532251915960685875623400044997663504193464256587900774390302643098458729858182690296359961244226956763747397061324607327136645835590150143356778516188132210435007385838755399093997790009444650316793471085576100155377027816582292716463510482481130640655449825262692872704332706468884362623902150312205076437543760819992023041319274912216660135742321730768322254736893350721259936444811400698917386185547602697925729191688601477436891332483267867986907710711777486559229684615003526368833779307105751071332399563470583460182548474661644214871498061079531588271693301269751818679104177098945965005457546451401638070745998906210213522384471833057848034722131210204751565778188943615677464380280085679611403026916865633438265065655556545543599067540351575169710748273151289713567089832315493625633953854825338446254630942823558202463762878704191848683878782794169851947730898177341074464788553747644935996402723517630729426410746959761870535011316876033862182111544955597091571951907997118026121409722557241812388759884383034930982392718117167280293700873849541042507378395487702455981935462131534545370845080969442774534656414969077607987437120597918675906800332434837797447539856517898139059927393010157427013499964885201482972048123373635588013914189108698649504102119322151883311269107614529706316290834070725462588463105754191345112686989209214088286227320170654283181447890755752794060622878880086495160114117417234075657064069802055791200110580183098725973538027617173997702480365004695735928614022466001122627899684810064971817790261757733178580821309998408607014504955516082331211817242103214384412642503793067762594812304344591945114529237639720308562257910118435677784454028797152651433663500961838924398412707331467763883404607920690864709470131252953119853031546916115712081895976490564359306830825714932751900535732293185882085844114715486310552223669287391070662326617830592328127850086580142189445207728971213199687412150068527577824695995228560708703062211149716508627643179668280054449391314859613944794279816528116060722482481523735750674295354743598332057897537088983186112395076661225090852487778888569349278619899653732981397002754676411452527797409491975681552095633947887518959002903650531414347170670671381333905145948567365878328628318461082277451153029723373338622968308673298653999204947139564927434524152933555104781104453531818231464127467932567649980788251845393436818909046833786920482877091584020685236950211205629115889853830474705418413582250568314802279684860689230393607504853484989511278062412721225427816564641446608344625449546115691432148406711545722109636504158703136363419599328422989089439486902630111053455916600660116860269422241577294142345047337947396870133214546020639170100299270461908004085634037117670910320801118126456989100034836883177351235880414044737833087987985765814160471474962444748367173055113454467633917505152235926701765070748785815792502326394288781980670697842849760335841233874637488945224015828896006814538607107371497682023263110019363505443899255120469609359594384675219453985204636141462365218791291016916554714015186052906045534871685562813260497097718452938396993123107971888070038768265420308164546400471144964399542412482677244185216939810203592023601315881611568099647440200412613551896645574368339568562687113229123899540451968163464506742193869579259880373997061647818538593623559096923764839927911371072588578304034480491488167371178878321303574504126364433177345779598990734283098922745868102360263726099886484316678739156864314481551325068099724390911168621015729266320458600873043598197642737330921584222036510899209327972403610829533425418953304266178881166110811120069687302916017293716104466948084572737237553068459618473829230188584419210101737384168252011159020613606866663394250724097382884782971356859756772820336071147319776443612606035575200086421921600853390452731172781409691501581178900204796936631048344978659542742365627774263803392888521794575247615001261765640487684084249295504135426220060999233388566344018135965358601547408931176474335307157521493390387853071717385421698316049408927350732420299593138578371224951992731722269816515762200055029221913241768258587751181650171839987409916362537441621904820016351624231505278291180707637218283907829397782387330927731242567918098383381060833659583678439200379050652059255776797066723466190147201303646626354801303481265799791687066946278665851062568837117650309742223192124320708996248558850870020644653410601543131065752869028292730807033013147299650560848063107379541505037350509530070734792090252654593509266397728680805906780984698624084458265158172191751734192325354660497709899241017255573367144205264617484815127785455221758494772021914262807417242094268536714654671420520378458903945710229137961697540566430713609486256071859028603646253278932185609461805202746653915851385089992958458387666116019394194324769853669423335775837220094749344674367051781261125543530343067837096800728505992298124797468493703419309769555653890806209161273589987111492303556010209556082630105942367616249736714729505547729777353483740134034360003201260547936450005347022319246903699361775962880344944547093332935661042143196486096509219823998729077870614626806169538170631607043233950088546128760935958151964338976750083560138968346877321541562597297650597408417908027888172924681752804058605116760375671269665376405822480148460278591032270673655763980094601843329221402734842081360353620282711132259967994155494692040050800588941305106463958612286784027927938512306633569981691118872088664088934496321797757822787426678377629470062272043602333656715613098437827776154552849704171825289666862568401546072915571743848147318172119311503956757433168594105880213572643107504291228244465433268135610464472764134464556016878114304603173242280131596073281031860754091004235109282450913504615952091724392427011042084282069059604833854356048664019165280589549808346047561745647329416672561835171270530632173125378369805166429378382552119914883262105626428356193586049333879593495300805042917392792365542784462013377229644640320768156828072072135825357768124741764637236207137236329507495319522184315981073558701808239945331035111934298790695580749272957788000504842421593109672055875006063054312264548263763940606141026518369302482499880040555708346279224709642955619143743259162903527204870999002915565179823195469957494902211603976773000537632933652937496697411107864067029511564749000462369487098440259883760665152635280233577450488985118996331111720511843499322164954425916480890773061435223266353951645363385902396656190409232817426249024218430027666299870450048596071437296207782518007443090056969487892425863100529239465083383171887592225129434659510252557684914150604690757039804111894036551461441701574450025329523761795178161693042689013346102152310832003475920126058259985301362822743531548175865279429279363031085797207308979314006269568467377320756940982957070772258354858447551715672398482799338533283540660811917503456664067273992794770016057951756633385786754590812563488101337926125318042051820677246366054326804463887982273362192213710035700861773589853118410002661333555738200407064327175501962085903152482221103323996999684666651081771706588437080817020594283189277552322924833169769500034761556097805113704296572392693958124762679792893664107729958927599449087585057597755376161692052670167513505708541836307880416734520164935188024606085809585909821954749379134625149558702164017981956650677119748599613763464011825377488278183603967342660205632243280771088512722700554435505469851084825090346652870439258670714113894242948583844552301221249666340019648091269111423088871527572118597343583638848782245142100430321345887773800948559091066901313548865602109511119916699048272937649131365163454031006792804048249450945399658514945926882075743125204716163856490182608276376406202765579306556425172176473246088136183128671707562814222882170329552695600319714508778025178605024544622819722602152918774592126501754640603691642595542767336842263948462795883578808775614474495165221852095785785160619505998979074629583139779765195821073475453367963134357438293682818921588405110876361134030255620248276036431200121667116052845237414384805511979497999567163914644815624138702141548077089491048959251050036948219995342684208790027640073480142726311121733948774198048762809235729609094103235540491091517274878067891768988900675800738788116806939080066469466813207203357923448366146785506140950600752648603259777303367846731774901139149011925452419277459323476296789859052531205638876991129143555513279174221771006533636730425631728424397159289023897480887277324803873223098222810314579706240010784453374908878632301362706716067184691940795347559448469156856317282947526781511960099857679809380463931864031842385921834713840758733274986894180080141174030658875888376340464990224671249738466841053328315682673444934655111082288047428828529230708488972207962521182136563583253328228790969485545570572982174565852012500568629092871555798756516834014974552403709823516709116124295634713537904627250459306073033454122713898988413002052595152836609141549871224804895956045142409440107107884404395718969445739952209737965688605162308792142929288933385028800345980560594489326565102951210218658891729217730571742368215016723729036123097335214937812739319503504192893603973771855360105995144980597363748267949648170262274102526774158968788008635500545949846594963283981727504827113481789023864082498818542732508795714256137511445084440498271068158097537442846861054302121302655282761269279577947393307797192792841469673472947217169043579520911559692864961883839607299796141340712826697999923881410023742697095824642887691814119900436226969751619026597699286034015748439138078878730585927424315879277535429364252752952436392359684484523917665129179863659730327500520878492265727890887699453461285090235746936162260209783378357750322647416097731188050722303509087760363592873238241721217135959285343760922929175605087917022734243578747252559571534458026302745264751300587244641646544288321007182104469781450298071228974721169742001644780214419950336540675251713943612326647478045002364527574890875395773923055320295032178656472924239014185475695926584715072632759170027381383877926542501166128117600004859711141770825902859133953237709070568024345105994245579010822493025225786669966507044421449180955846029928196500065985867095606596607981184229952289049246582477954416290268877864526853541603262245651636612565997912756043118344399324755986237133186358181969723062432722756369467429684466649774316847690636334936366307253791901190940722663555227899333689708813590718483574997923308624519827656117915742087323948544998889963162568778132110693158620843982531880483728646768043245440781685103019036732919582052880652626717215910662059880751046496548272856076262412684597732583438953824034252620170520908361950753856737120452687055688819015133241138487978110350095059345050317031863729845703148937493405625960623866083746101753370623941847961966116039400977744001099145389195224998258834025292498046575638399630971561233844580399572011359163758767382635462153026501312499663554176152765159301348165939501026809570838210282810047245274524793442733117355801611143523850952152706627657106038384932044051414322993000461461864725764237291808997475722650993131894903556842655671594399761152687901510874518002293871712723229796910987305046276376182123981072651843997543776534692451885781429643311715250423325939732654865896967039955634057356324041338175396918779454966183732580882250225868072481490676019532582577697902059671897596559462091647807759520420381239598362780339577334382874618866800292043208915510010489337376821238808384758539000179621710815917396292839101453432713298975213413747478323981911718084791675609491174137929561817935559679772266026732988867288203109712065238972314879665919113225578696533048178200463346098363176656754657284114510114575702417825499493598123698414463606253589782524394605047156631093316720925922645483624660768564026928848727871812936602074533104666810216369192265855912905168258658483721664669288191066274031438310767467050318910696379365070910873909208727254204277236375488645321725367268996332401581879449978439892791824304335745110450671256804613314598370867031913823135778768039302528156483985007243802848959106240372264574806934815861443862092796776984788512536976060688442596598326573535873471025594526979677830688558467994682844727753389332562848402224107111037077095632679651992867610095824332231406476489865605879745481012925325347580021763039064513053834610331905941709029358141597380576362519408894754367492414015533271329864931768222215969661916777301600973617063254790795380164704829593515750902607766429142990744794673131281378979735113331872105879862084163858357741161909095221091720062061880179130601849476737674263087037547475594650902584234931517875385963462399602845544507138184733987254431126987503145165929173017063238959474119835518840367051586330755340293258345210657667607552557070892207160898437953196773107056590386922688025832829611941855884512319368915321793691068957225562595407620097502815281349803469371680056953428209548833074559282305773440328280469447480518278885396797372961973827899175643222093757291643768759321226890191578814960574979020630746271623040315564917519072868912866662769100024353458714054750486292931998156345696584812062482729501512643368730115711232943808014579327734107013020860397756479460822996877267492852895045338072417447749068641359780528475008417481974115305356939124201592118289518583656168064413055478736528741624529067633521646232473161531627664121980946134229996674502413177128549798164557006234663786686162037799463879820873340791848817410104074975044528741754853330528795614905416783013068649156545019199769788920043727074768860994597329868486565044376214237278655904849769351288643919270428526387765151454364735827488501734956970823991098115995631302454403879521845569711925866893688233742847475019190074022203273629464980622892544258358568204384586913698640779156424863242927974816063291847249835990135457773249231882559411377306942314352476537453428068788826661311169547993347252568792848799170349820569763364373752382297098468326187417873802438314174103918544129128539313192481393824366594452198838641304369947112611914024409106565862541116788320934177681668030168815208599865669432338326720197011450506319475841148348461236371116349530742144181388246553824572933881806128700054866058802965870447121808744275877539252925814955924130369572600595016948305613999852108677253202191762084957144467802500282674054694706755649789608797147567238843237711649942647205564068428502028280396309848910189286802490705078577857558964498051906524222241174040658406423972226427793195362929798453377751812788634229318157123851185573191859133586552417716223298984107383012434172662472475172099743738577446446871891828248943607275832400995594468412417691174411074878807886179245961099278212294685728485042626679944390786137113900594988334316599060845248297689777990179271292226694707329049435222356456139937146371291011146958250541950588328478514999516263808295081745230042808458230753369213879602073374690540271470436387543721094699664595603347306921011802891035059488499855097921953371164646739119243279790748743429020561031812030334167626437601469977460469184945829777451824727248093768003815812871868844178832998395612545017933876912779659900472705117862487955582869720111246244497391823742942643567377719444651888737437197434806605244097221951914679728926624254094152263544407519295694130774311109382603967551357371983573889674670408346008889352949005497090058752332388469114685089642299530975453878255263705734788500391563040300599237963535025370836446612853340837962724206431018205193076735532334905637403330719687376166318640444278094842819695234554398265159178491347693168383825042356653983552167503807018289242301828271682656215403027079411220606566156773660191568538519559242418988796451041353846398454497514162101136032861276513670547799183219283565988238901938874570094660582641077558260754822684458096566839849631285618158568833755803422790188702747373898571173838073456691886816030288528311769994315872622700939685298732820362857944650232821340292239955316763833443662173267974565533660865027425742088370781493275804038422761243863733022380660730692353896844036023893968091528463915762715726186321595904041646396420234358736047029932529905859316052545376219249636092499693783799238180145079932436411652442401370070825084586369301034406933305776272196893863319307315496055382789576106667245529001336533714743343942365954452506085277444041481392802751483457028613276985699864611752687474253965280704308974306873396788982281960310587165624585982907832794243180211724701277131860269462801070573518105072659751338582960615165194279702054899181655647340211911890577766169488140697676837202284149350020060105109318550096346068659694770815642566646014027058876673142757199298794528676215403860577192910591256318987021826426050602696304754734933629815263333866107114919431406200503527415160440437028878601185050742895057290027285031688852646574266850374879502836361931356027479751898846983518669475453629814213838327139686087897672627446587679960592886810975868110103482752160702885201016320364070431333458207135125189683051656742857947859934520644895079610658687308137039415008019315494443673214664417333973431314009556159745587389376476511509817226756569829250412689742511745992282304608608601432232273544246877378012044061746649984167518151093913485408689897288586847781456825117745083353562348882675566968815622970573506538502377347427125458829616580302224407788562605067273593635376556327237696760082643823197263659934554898648795823290381251036682980573207639548483433763322284973167975381436777555012043133380772696367414860210113454376555368005456330819382694178454244787932574637597915843824200902153832565615978407513722369788170942666632658618070277131540179945952274384035725362667395789776180755668232447148759284479531745189095915964409128652440869309184239241619058916953269506095561330937699161354439355114954711938903783429885732165427509173965448489943710942094239478936395106652113237349720164998396549782745165587484734617528316954418179041792910443524655395163684522743225055581317716451971370855235233414173747281087639023621064268830271572521398088812772857830567929031506113429542815506990514886112391098260547252299194415543490818863294077585803661410581532483026461791411351522029852462695025268417688874695146485217552541888241388757374369984745370601464979789443379660538892600964004351505026401248703469633550964506338340467277135271190763582343923139851337951585163011978388218646140796383926707988361789250063978716032032687663089147882333687274228160996681019010345974945705777556094320478884127797589929598374660243241867712950576615683146655861735017648388368935583377679286779899789554121501402879842114000181023489208119466951711655210350648291774074918855239040103158290310242981434759280219471813259519614748600956270589195715121492592072348077104620016452097674768346368840691354922308467392330096050721144692314994952779044414556694607861236917453135567399044902940586698047875014962572224939994584205408097624838156848642521761658289052199358510248358748689369592491370526459339559911180101192745516871466071292782254877631684217432606372600136133457063303440992613724303302362095767935583999565480697854630332858284311013261571302416715807101512335237085986033253260771976760498977090539460619296928120090709795001197150579444543977029152041092515570198223273748788463837975733187155524499264446296784841140860138130261183860129999573649084637727909399135656780435304693479471150080274864142682695599665375301675824590565486127290150403168462897364149916696261560823715130456057302652522624631761572135291997173089987242021370767945812543888195751945757464059007268254646532439603519480052891010350853020456135126461280700706288466582604467696331909130294538752891869641146224204153077103741218468752758850153179216267609994119499537440490218473569631742348295385467235811558307823596561751714052201579475479331220656209627026002300341316425370774558681771035198592892921514773023549031275494061173529451423949971658440315162049712155417535190372388921096359630458494354377353498448317106725320523515419752569436955813640101933079108394345102012890350581625805086537373779333131952487874698683313164202762881549875292671689385496690819110355759671613190351366897628576143258569296389554303666904306434334404910064836306361043270234894361270342686452480471672418084597637461896777592111902294043715690789920159132616176641754201724341909339455141932097144821571497439120851609737005703381293589791197575942857885625031874415978125171195101861154080702706072834564440045074923226852380453456240288300493335284595992522060302159918655346780694071901438601235344284379809127181433789906459230221184476465167360145280015493631189649595721815953368859457826221273063168502223479088765002164175041797801933864053884376875149612781482947404911512869661903792476675746929171165931830967771780730558789988182599609391717081363760597487229996546724845403972306036526349417177848363805839825687640059729912634308150028318110111938715647581536628938598653441824441889841878756113466556126337543985779153794310044253068075065118591861694358357346233720988008903564483489479393235578612376230832400058439106624153733937249849203004451983843643564535556849928200243173673256943887914053983711394427356590942039507858755739731417401834838782813974076478542206194131354107347786009933396101993781283282255111737429077292363461862067567086388261969713197304689765102206364922209559772133410987668584235452676396254737715418034035845863676061272694528709719157692867650316922965223408229799415595174841951077921816926577485966929680585337684310112875850385772408188861356783903872814965723137584029787874548115561157571603608800316867509079374400904635852483807094278654389603847798614292844389036622432087939042497068737389168553686028047205120745839184345044217574353345854352127523085364840546585110702219629075703587353084401718748032912432216906321051541556273967900174367367114213690615110324980223625322624846830006241696368140663345386586284185615181476072581397953461296272461953997570023339400752607583187561989295995913145191890802407871979695635419977953997819781735279762637221601378215363366266238668885390281729669741629428356944891564651140821229961266272953251839687941546495618969450506534045151722154775829324832916758845115956848818771364343554539093576606500068948206605275257882915829132232487122296758476118126583376050925251732450394626197812167799337990377018683350491574441176415451808002150044282247984823709089020834373219314228964636513147079078163118657403556112900327070668361518527413097889320684601333202124747176521602528134860882006276070005073199579112037074098890416911067352483167755610428830333797655300901759062755311526854127495960682796991366197721690481791436109721942567707080247232631893170565217947451079732212463983002124800065926351596992390707298295628338051011531309426035552195207654178956251821612917070097587908718265193295756263494229179659327330717642506730527498021423179972297329072878296081355748940933952908606003016321426259730415807824948516242497702270184392788916759467798625319093880098176607022377803629441558424027973427232502099666446327954659612234109416834330613353178319661345351440022520466975156552013717534990126059452804797598185489110875131725727738063812170133706128683216044394210566209424419568603528514415752659440328081884579330073493262553746991757611348624281239861129475297940583465518074153497514552270040695062080007430929992415965397071862197697251238191606359769062244785932084516646236886020370081293368138661288443866266315566561314331336449697620750388095532190287789557501445566126726546157681906444441096317278877444260197859377730848364824395118231613100378927100051453435833737194273905690385462612659832846722707605254956233346160542406568500276211309416501328579065709594233854830803023555411869118495489357091646390137704109420750787089011257311507132332325490770892636938555700323450528344343585575901084739838114663560130526433673003588415805240473826445899946460858953203659191060450575901175331477065292497263591289311852921494151163697617046535979700749780925746358746157393958557617379962294256652353267219529889377446294218569188169427536733079344790952597658705739923247876893184023725522631207593717495188865048361185584383002457368753926785219531763058095397135077700817010109807438916009895060182399428799754151474399033832731978645234454157674972785481048733819959159160955995315994821392276898541646010702689312979623580390296124501832253354479432245394264162253101947481932793263215183918245058028116826341820387542738660242765758767388213347623426400795422184382171931746581103095905509267902013049036294917011188576263866575503270472898397158748805910485279045735748383330599228311230580765955984044237946357583361563404795026035831382644408713747261031736334281523674004170763651740333804982057799166724471041947270675556441178832550841001304981995416109489069002868552344268039790622832116408885107806174346695692701645800542074066215458954160254228215938539395977193518935754263067599366401174966958370512451934492925409479655779829498980557407308146924325021816074626415573848016443219266658133645196297582239814689071032503035534259105714547410083284375794804999742389166924338269940279828340137297408346425601151986780364855050524133079519287020848407650355085986545946311657916991414481064923278430636096009514526236730102283707000618886850829650199287137402548812831998566459999697210048267928401529388334502691226416714457858430173530589650399293849501112190122787463385449201425409221225989359622779619322155463823312041068879503853540537897425841234518250772627655056990407530140189930914289584976453440326255131544149076031971553356492328273626407872472713236742146061785463360642396992079947454813625652385820400203795774641194987502992513541125770467936371785672365105170086691217411608468351827494424978689358684998496277556296663191059465506109107671979013850343519444620686199417619782560348540773225278992768666018704636638534003921403192513570779307200904721461881369539646747695169644754314718658518549385064867919447731251369347784651823315205397224295391697497215343499919789700939988725136878431650602495567128892225886691001271931345531251035268802789669661261185727090318331707612663802824147321295460752078360709971711754749862247066466177053639954755425680893257827092590070305618023650584138383352541355676584595936207008217080266317742004215319063467650298244688696688804528256990835000968147667594953342943956210872296849355223311576505920638647346930328910819599526378080983189182353998592874764036349171547615555821710296166913253853564928089347652520554771545722382836704382003511689242083692778171742908673586424184076890361042986594183522448725393236310157432503843846152979645847933696803173900351970476774236558011944839406571148211752803809316230572547066656302867793020827019060544579179995307791569973837710835367096260595843669177106128051872219022524826597047694742761565553844953568436829996762209233166719816085512886231674181489810261562502925599080868983402040078648153250187218251397955284809402126391156011418170586521953566511888850968710169300606511944864179433266071264772078615162176877890806212644383757786337543071400966746505099454218947080540629628670749489642026740003094940521008916389787842766237572266782796854725123807464873367021803855278833346491808176128757011870799627419951158818167808851632554258297612410544510169742223070407427420042530606903980851672314180679162725780594694526529884476762119294516567980148343089545462193467571030890221826794534380805712976178045226165978815016075444444925215990185264405003733609355077010967663248861730601520886816092567393726167006902777315370682432780230079317792772282991654871222801617492354138312419719917598349263377746008722767847140568827079899443487376398936920128644154544235348015462432800019269903812234080678456766650506038315779688960050481054199719790493841585890883998318141259146013734132936573783802164478425914970400644186287621236536608607430293403898132519983041185871797626932277441077608089257913690753618167436594738947153245570169827008013556109377782339081240227823467611224507964690933255698895006748939483706345469296860356755457525998816013335254619050802091083388105119679460777408524165762484709388183077465769285772357894594521401574284295259271473208628027228012882808355900401310255177572133776892668653105922601778965238586640097588061116513455016460054054168496685414152820826306380959125327817084099248339101361935125156578413720279941527800485741170661788824094138836181336744698066697245167437456921365506122048631861335390017136707905209585653560218305438675623731002635017632926520863480531615974169745585447836231825289521229376274281008008503795847279193262376463880053298635647606264618665977609930270806467065639262136316588762928414140158332572922831263770368810083323381702474608727171035705239777696858960786314714701160013207162153213201635090679667949513591413601654825446740557720759123757182279945753120876321842749920541548564950272655586940919132460936523673503010747753123564751888501797380984646094638415735829329964475092681927451898086606406881183441031640403930913926777950619332263244031271398214175495064797342945514365923075487791499828111852029200118734484902268387828486696061833507131772139826974888727348672566481012670709272061436205895823464232458439737855806140550088620584634038014873606721070867227584464283328364445581083951449873332340073574510630161450851101313953924091980628176696042819796051619062714439380603973881532391554913059534486454776949043118395254208166031813669280908937745221508127753376841465569095935951449234013057914254335065455905000890026914918181264632449999860220394338335226523957194589079127486096307770228522438545944745207800910346497267428439694462373686651062603741624506747327806580619636873383257762763551123701136550663975666291573646832111964900812741429687803191210220696232597222563554275860695758725412607720248674393253472021340132654391379341776674702427706859094405923078793641799237204226130903098314637500400047138401010206199276939137184827852052587358186968195525664427756171062654380765695301872869519734569051613285866084093631279702262798587472679445228110316845982183179349263620756123433455437850308104840201140616519163226567565503544226997579361464101806235462495845009227760172489773106934016026846458490993387868020050771706204001513787974242260222679421998716899005070297219886700551292210637515094882623954573335871091311152372356464870472519718338777174776348754556136080416009195847118352982031999601043573795994737919078885014299884602096710165380081321936447956099761131724600719416772255644013272064559050248233398552029936954803431422191056437709921602177699716993121537386291596184335539474872238924193237982886468317208698727855535002007874714151010373489843557890536239828267480015212113794421646680248418693145108367394866008473445423793655683818518378821353987701330776167706953317272555453176377753220812630347913165580173957000543530341979921557699751022062285340216595567241356923207322629305705578283446671194672614513466937636734811267925250682759024191861339299594565439564181407078433124451071543320109430655862113315120279671824216399944291622722050996297260375443249501505072792791540703866938539356928944994538607287352690166308555842619294316325406284815082236776354273990342278463023143305651834681444350154243294614167319982352464975970767409813417104474998526288680266659724127031228094742831860338062729512838591210849242869938101660912379130575124260536183034492022281889384739123428212712851605843050940255088150109675982678909784155301256449429889106050995967423313058529325472118542375707763720938045345200641521774626924835973560337198444154578088577779127583515979305327672713891368937942338678373653283080634169725886849399041816741019032353070808478257095328037730572404521876828078549372299156795622481815230301724331081260366232065561247281574012429344630862411844134044654786963836602327298689296790718411481221996725273609343073288523831135202415360335728382459689466164945204839227245469231030397373558405739375362909121517827162364434380339200012745133101137265221446979220611349774047220841627288330148510502837475992058363117514366145905213640932561503267341021598948845028700740880901481495772869712228742365438870951790150345204092545778061416341326369173024985073707883404814963027335068020627216778339865001545802027302486746265656158802570480085403802912089080650928352068526749476888217459355047350943595736403491496283610968345493900395355578649684108237860669107354174711854787175535217066064858491136288278640532480241068672700973789320996321469085693026076453152741507581037340215238834387997864329624334286571411173275241055179910769091794752062393326736092808522005624969672368190339867943371073885691355836793006651024473568202407297243499122154743168669211921635701808331787960388619364363865552372577318100796500439372560787611934094991349938637066477963714268763169475389723350888101084785034068422863541291567765407892313974713508304167288530626555290312110948412104407101920227779520766597959516869071344116153042407827645441051200589705265296812282345029840641118350063853894685284784707481332860209450255972814514503937470036083946317327092061351530634110675738880959283952716327440649098871295926367182689296931094331115599190211672982719651934417379261779256227337275577649605705717626037536775187196741645529037596597333896238366675616408168595214694197655962486278105803374844182983533309993517469234935222311688673957227232905839901992867229725540704870183854323420926514401514978466497798041002829240788445590759099775848872646931485233009934629142021695648458912161072858547017790459076987145125531198450164487770184391118674632248993599056661632648660633653456973965693406452757432360488155886155849345002955820424224265022515728845937945417180601094739453187068873497058718750147589240964162533738684373930098803391197540569311639794416048918631119527029389691841702095892212586362362210276082645766765684375695852503093204825814515671684406875635523452807809746975262658809818725866118865724466080623116863617798437952205676749445930795489737072145752890826086131984354626195622590007163522000810157325783502132225557584015179369199991973467964415542497721642868278485133672337106856827806175335811647842948483950568984730591781904938883737867094450528672724593001030445013469990118672559254265758316585142912491130277755836474412617516811709367734986298161419923344181469175332528713425768843052972789200101425249314146649998988224873647006887701773087625670478200351404350171261811419419512372948526445425133462075954720254332554009283516681340152714936848091086026432624045088861915152947005506544402015803097095833379136485704968802608379905243320459686016368321362044599219680624354067066191258665978010849008456433129148464002537044288436327500632469293081612856488351883676464414997600128177488122454612031363931624750112098631526264536627341289205830893943565024851944195247364161321969581726994406236284743485065016512049696408852226906873842115540098313494542176534501335852156982222033045443913284967374273115356897851651555070691204354931224483941329616480501883577848532905281252365924737769440299041537383513049265331624451379199553363888064688538616120214733107302910215338703012141134970255682323350605997452727113269264703851657932130019907082934459747014201581643690979421677044290700821349780683029518506536176953780236474540210338728412961088191660963261929427016182724706718327447285031473136056772731754548493364690885377144063913583077075840535296266811972204775966985340194177885864729444869641753723717772009474380468804687601863550108824504715471560390521575205711749629680642995251645602947845826403623695745860706882694451787864665144423283454520646671790566907029893307948773552827686409489635608823380676239205561870260103714012124637179184453580370310310904855513600539990131511376957491045040052750261370428230795441634692907914832185898471041297017608894028550857635257918511508903748038230413562253455035652972320860156834769495510920413950152221865639980483181318484525270320476350912363083093126091241464968389268401325605610047558235148488410418329760306918058497777851657697405483219710714266012496061525686879889280657377258846247257238086196636146575151360830116287667807411314246219946182531758006469065440035511280894076336219408707911432424735117888850993601099152534240645699141114052947475602188375678883259043666887049991338577172021541221926881379158485442350471843605820552117030900102083284315213972606485598354924706889104425926314269213694981102434081863191226927678848294923530673532042712910396980561355607744414449580615165250245816646910257729114002710300829759982395407084640213457925787893498916792769013631775838724154867893632859804732200046989185734131504538981537268255590800711041046083645137289306140676714307353618380356813441026754811825493407679117032436643307252778359903027489140298643062202044803637580306313370839036159065971716615944820619602949642544228980268260343477071729512049880552931446812193799521601256602567818582340640141645067655438182141711017089423385064057569753458781883728822419544121243535528159269846873617573029579827711065076026877354989075246846981342467959205737565127234528295489171686086983156203221705072460423678671875210470764392910921130399277679387484876345864314904386910117833125346530919105918711203310044640693941414046826450446053477683693781488796323626302445356693302793160896405767504029090640541362222505573169108755644038987785486648915933684811335839775700320429729469309087458223815450663054839926676725550948687795487367401127544135970127911658262885979037492789200158932950261944968406059824065817215341821004103451236473199342814215322692199059407123481745682674804024168176356962845590757876585692281763106722608252341209327227626205704060550446669361574177252046313634560906313550712121581983143000401501459524654593438015126155691031881359468419846684298524823713644166846575154006086078358600745007650673206967135247614501695159232267991728119383635629068087840974326939037974989969299678813599039966237155404494571422793292411927479945238006346337975388150870339691455175903471598202748202974553498492920669203712601286482925511628767549317317259713507069547110991768961820517356382976988834165926028655596171339134806202653137663669418731281503652502764149070663334643335219263662339100295909804829131986992843560822253728960719498681413221107577343628661894171636369555222563828700811884588192607116904973314961208428026282823143927773863858842985301813162895024154105825360809197078723147480216049888591962059677706652349155965723629045774801517497637382447173844564183130231558520775088720639966209589064733549320257173038065390427297208914147277791494027886558401764714190081831564401184339408256917343818108487622453081720329890010915594813127501221419520675353166074603017867750786756970843314143117484519710809080957587980145346149248921311344333420035059412512035670590212237542871259662758464724270255598220717446189828638012041999759407570235027152159839186471667582008800600444033350423081871071051603275099234314486369843077761907865122851876035870912496823307957295400201263934451550341311526403373274696448473030728943107291022680806035051665380467949063967369397613416103208450120149453051941602331115246779071073524942337174918313512420506579863498607661963703360436980838508072589965791619046665287493125615175738794559399541710876833067495161952426569122038277271287313260339222634319351733855554274935864228245626259410157967672750716910992756650092854818561708317170333808324341942048662528540090727622424608194030766382209204435127032321810049916743245044220006649593938074530782227248249069433899155746513621798862345387640475007321445604564769670922292759777061516457727645339850183534312037596331863356315163613756022033882390248370624092649934947201384551444324428798474673119787999255646381757866752954784892533082356114287391432894334534651799774005407292665441176680044050399779604835241020126304922021031469699313728072363103315671699098350203419274600988074929872006267587926346274047791395374588824533544466906269572665933044642144424114130694998330575921823550611602341230725236709166503382931399352976875486057440336132992525634368621013989512535095743940125096771480514925738399480629369098369436350534179438951896329116929202763252770102065154940894427378894654689664452946269592474570470454333903417317381615627561979919012999289212682068217370560800783124344636348215927885547469844511652515473313323929936713380439311517975839314765058997957861007238689045690102863270349535282744536658101753468710220312898443291936895695210981901801644589315987784952868065112661683825848201096374107496925796623013949349139393342554635571962033269548199972386641142702752668110975422790557962150432948189153490433528107061964200036322590590802783229055658225832512292725695565496214118315985344857795224413235545136593054459600752019095288002859336614828551539113749155884211154978070959346290494276008468903405685842798459676272728089889479041805090235328301612940145074779060249721217141736938179454266657787231663863433424223623885675649608629202524435809674282307994853487481046693414217974128261788509035015357708219378335347465104840728721576965871853214069018212870302277990114255887814567945778673199421168760907144551394810903460646044375778214886732614853554355191993930030926757968560391417848124961696920345665665478240797878546696003450959646668844221749863289126780077396138624001535193805637850526350679645396615036877984683094552182453567391784025489334330244017228070449830171407565648298760441618293300128295541178734231149621715346907741004375900058491662450222116877191403311231818956122790039536208900426309574478013360299080493314980444107675302365572321341231936371463267872137903764897821803037846293155398521659784150943588176854075832599588208987411141721196920363920774883103889084009289167637362822231906614893433126131315614512867582699591650944627260843873839166548732043838027084685846118672866213654250175976468064626740517297663037705722525021406784467448162856119323584065918853465924395353505349211231140427045305726605406604642991014011848723307297640994254581834014946888498571918463276553044678984373215228771623529008664846070814778018490749493039467020342378798330741936802645099962655942127216039748704017140696979215250115873057665256478794845918901633789959167101445521897648111327720468384569095554188566158840558316290781986018412030692096184739772604038367922024893211864335908531385454890772235777883459540725362864222931640122797668530147727677034369386909536670057230556508819615866568638385242383263714141394790832412869694939718955487594549116521787203424319536472015429290672293789013261135557895835190267238369111243089531937352860745609093674597657751458939238094184952556766912163527246423402685499862341935897818962997995687476954066610205057347185756200712386111885416789882495988092284738645490429082418426886156135877648322814929228020399780901297275849647365336576671528578647861939783445969092235466121803116488496063082987989009622531914902654811715172903465765980180625871761581397298058845001632083289059980696085399755635008153873904657097044104926225434578932941728475251337867277883696685189170949648942607942375632625967639927192682724255124304034681266412263952735314684063314794972174970965174670859310584121612438465996424715646750881257888808214409137602156947916681532990096326261132076939734015005363214462518369653875909904042349903889609795137305979189859029269667124525356561801720168144021328751696536761696674715936213985979563525566339324881350574072038615251666794381759892105755360068573496898846866923583044635359365377661188295445435184971003604967654353686235047390326827663099181962839474197251767007213527819598442740456906488271272831270759906969970465850394732632257683570843998973749577438710749467060535579822636152603098083462694547598496928871730096255576010726362757058518262004655199149105648390003211972438057383218305348486601390314559082168157277915053474793723651693170599835613353489211623230944884157960814038345474781160006424380602937175064538917227254393294491037862406037779503449541952459701781820763764311120326123480588786867075041120629622456051751738187113204530917721189966828075398590892491480399329475744143773741947538787428809251064706799956416402257174531809092797006398951428385947638660666876880136532625222449623882255251926246703050587894576413931825896580043280982974175579057301391693193904669163129776770854923532586616720794374889989569124408237982990721846218445155297214275413501761539721346771370965195562848718154355993975485893604915677321351080202740735373071503319064287440016257775429461136611429933030618755152609595989927444457103569208664356265002421500234553230568833446533824931774676827548448514117536916355443236649198878525638019822088457528637047338652753245774192466283751417502682185183279567306212661503071721114533282313031859298357020792310344299117945437447899410177598336762627440645139464582996637761424033848066535975945549750799091354350771469187870126012224002096200494349809874211002944004535264590738776579801947649596340318973150933953449542308986210585738524886313245234721198134555937485997185176725808817796932356927491288177338451123162147950319697015569269216174053848865674569427843506655876921511162900726903351124018016326550807530828248211573571425702894985811387648981626166585318520107089011300570563709710626054288626076633953512046153547804109167521902074313502743324634588943077503999167307195318617756047297434110762596154311002457684196215280977674568960339517665435912548929022603412429520982468742283435568378939068136955664295996668392064062307172591210141626963305178134257923288222450628699366774000511915426850474329171761685523429508854536003956720310664369867658240494780518215169359747378827162715559646113486961671177726459756102813422192945298187224311499821642996618375294161160622912766440030158929683009169174920091474179562448824231545210217118927781445181204007133150144762641249900884535329888125978972879746897473651054024084239035379539164438471612384099135569810094904140402888107004586572830747005583446719167159201849758740972134466549919050194190393619915267821871209366061752367453912250472549409727427924337886087545369572620473736210542175086085250328817327619641715877774217722735691313087133971746693909649973730121325023281571041957438983013824095836613671000904427461871052910715544509000938488711708276186090868152973733939157459579215004603941007892724194995422052921995990653722510223483723324675381419462312709888128353567071234585072960535908869230797771890827005868849909608534948110891522930971643752710102139638670001491095069369316201024362397287468385751651922055327152127763338403913249686355538298698060837214556236568077307067782472714935128559365684629398905884321567735830726057333166380541192773069665081407862518772545810594441513975789674857723981890251842283907593839903848724068593266048829411534797841378983704317385161669685780662688837547612743368082261994393073591665815150649336086086650557169865055090824752708917292102142921252174988123229593373801921315148577269626737658037283399142350332529470380196565299919608946424188641268066320460861741250932948997555304066755399758947163166514797572953679545722688362536987933351336983676226570937571631649981203091944838171945335106756533745028389577359974280286517457394650374433227404680713981121293002612992042288111960536369122660510235651696847113684749290853821929101013554625379519387677705525781623604760052456222789280137893360378854763946881043495078408057165993722385638190767801903275620132250785038096122860209177255606349658074102629954338348868526309207956571533272246430826890438215309521327080712261093051071282034572893998722206859185157943711107238025437062465616996745943376620947583231709797791173349227098669740068188690822625146230827569015243140424861216021170274601388401215970784311946969576683800053253354015801501378346794921563587427727337405183113484774189292338548783414318631105632788539810509409905121453713924556346415896971937275744643950916447057493349589097565071405694082832532995298745628158069645803433095558848694039647869325521322135887199025887868467809777592393316904611710585193093033466266978867667447033913361649194389471847447696152469930339022783171003507641618361600626254800232786687701696177237756350762144851999726903475644699169930368964649927431158957569289977048456774545303777480155652671464161489124007866659658996609756412330117886972418902920406211381238603366939210565442345018400203077858634106452775381427649502697829101878937559739380003412999145255999247410029855158778886554911013939182699819178826245946705544909377464569568924248693102953515692631607569300399795284772522524999864403995170764900606427324564495814046888806203845192408269227776458976445724320601797242980923018036187075643951714605642672731804498578302374094609026396679578949287388813500837498035929875391789984258635228690779627990185477222504825783492385346132339594320888498608378997660840003792525964941584944811348237169797316591598329369104469290584889204252814776272928866313811022806757903736112658225139184323775463654126651768803321220805847366503022262031557121053913548456764437563645546113772968261726789926594921795347673803465335763243950452655369340571930971721108169417726436799483353806098516461122651263118231287823679213928088965788831104430724033030894374044059338004202179345198081273272658758584325699311349061746975575341510765030706383336022362073982103247863295450161790786104703559670231381666894548157950515098139410189914154972433569214346481342148812766173556125213805556551368703583356589769877357495522540411593388113604306538701630573810110318756285565973957862548646969687460334242538557595033044351321187398420722951940630745360351449497844056513589096206330341268748565810141859352007654003402329034100768640346598696724445154484995801079099878390051389827023495147043760634377525893442638335664238774352055030132311364939069343781174226299474082179868144448557690351778369627391126230105851958132325991983172567010046743309186137218581840450630198148102997306645161252133663250646547739185244870282691236347373187267454337557762856073697428316534134705577838811821087624298927790810493850906745779695491474758160663924116658002973929677130584340967737188033439027866350194276440821691358075028822691985632644485895593291203127569176436437911567432062866897131654962571958230032364492064531203258290750818069116525628434041490815643502585062212414810649178090276761622889124431682083513443400625076462599982447314837903551949639027307231985702497060547069075940859580682993943412304169499472208564121871670871273470952049606075083788167830937188483803162079768647040770290618844419457224439822982362075969550832044784887570775426802104673872248112853661488414528487137372926488593694409616364871141506891824992252259617543172558249454006061870016933756685376963090202825223674337844659314861325656402274311954012905733544664416447277742199040072397855061812360742363151245649553960389139034061662813228008483997146755108587894419801133495519333110132236529624330560254892004217203905650416056471370598786681132601585193191130387961655667695080359373595504582881042631812698686736866726593170961128443347397942624772910093229722078542808367019058713993999860494595630102434833433592435501268287731211332246578678267028327617064381058271340820000509103552479507048815114714733022966379523000437885791450651766224486885633435574473487688096476981700435299960280067337587770439474983904459049105663399507161823062130338174486689005142248940390472639706991196300072490164571322502293202328833247751321520499003405732330949047385490303159099645400357178242500812114114226824604706200458308874708234202459036296068020077718599441413971034760692388985718012835529806224234989773630709867944046305208247421680683375461385784353145007149624383515714285604202687473846581236568544915459534312268490610805627491132520184602438301451793762220204378863298708206398575178620872094797140683449885775085650545562932406540431765087791288180037425230636302395734942873924240309052915214626092774246257922876250898316962636948996580203751675714236951374086808345947132087475004648671209700019855307378698743778168172881404391955714372038400445720220628812150517110256951260725435231299914626130602242462786065737479538001399418357405337599681939545106457532329251978932516950862751697976668476961342974581821301151490256086421657133899955812155991783004271228307730395019041440390896130454421318705039727554104860439154644802982938571566651110968179817077062593103740889683986201384966840965328086062062080793716833256373365415566838070414971415657982493959789393652477681873596154967057016001691413193751858349098810397820907628071433241143059994943910551362742115763833441540641936317044429725975783193032127517585305965467505368375715100639532339399276660764071909995508872593715192057498604413038466188681222005765077734506651098355707463950830640013024351182638537850209364756801447762467682182804871502942369387389753052324314798416686432741664430249602654000602399345406965196854571343074129878583661537703104119204935009291185902029600971820938606779193440214258843957979511730030303263103008886366573189055416536388478249061827175041445998039803345523856828112587180353024518243530779380071666957127742766762918100742488417439885513817245902517691002224181494938434843126006658701956285536200165664333671802975402788797679733185957308112263999450203892833532257831889613743485613413657532245348295974119168413194445062177779490035759382760292791836051732711709682219018231788578972492094863677750957943900928949054425365312143162243254640758444637265117755789423370901934968385120302788842545746312469027051048804914235312773481386432134182771073336574402054984358396702417924077535889209839719022677436746515746601945792329783124115535290866582286981164380047749241649851728591828912326254240590180849650337803712156047656479725958698559032691980746965012425814114098503374531342295879346699274850791893724511024140040022728346463004936052200104588091275545492958880076128893530208609842988883680659426766484862039913701467994326305860126151480367987822639154518593072302660993102416640394375528793700823117514303279662037562873905395642723037710713497865790191728294242058869601574265618806684753001102497679088798336469342769190092648906380593972371794319835657034254495283238450633537424839389489478501723645123625573010793557290282173203163382061753065792426805199375319621104595625885976288743851990033355866628955998544481488642138003201038455435476066875437142970864775889261900500961406043417346505246096695515781749482588405084495511915380123252251252048680579851457780855260298913380058873011113138251816262327630997166203084102156065190033348982843083128018052661737396088240519082110994275799977824396955274629053772997283818042921276530493631825953145618218938971263961948864056313446602978075409900845228221277583068269369683725868739669948094629983646203084307779885463950451127189307848289235196020274440398146271710505269514304817831304354577646532404160463150815459846883693451452299256374459059443539480510939801053719916965424798474025318832916457592680608005442953564701410405472710711985763773992252399079267323222368548222713417775380752723410121451248980178830374764843137209172907476247062481523569281157477720256051241026355055187082203406875219300827823381361700444020762693552785792293004702232373014198160205980147029399201683244815800909442854633281454532467816127843673117643199394117287171018237329441865297083761919557387272178214790180377203638054555844850643748315161768250647902156231402051602100186783018803131011150368165281327366318317499889709127332762883740903921078746394710176855134761573987452392340737598318243381371099538735598889873996523117669063779467732481210940731424007508046189608548629252573578498391836437935869253971313542406417477379862762580492379532898095408653674789430351355937226697211296910722791666736037472571446822420953614361946886877773653638681562058194199888957428697255215798184829647992701684395359778208742691949997978967377650345047465788632167441986139853640077373740835090393019708781724226204925603020507981139024178319720409910276742292205677589902695789086236911185288092366172440876242522923357120646468259137022805994922987057473079930163584915637616618954382931207966522933384808283558703274271866101830523081732329450185719792215471311952845206712923380400264872257779433827915296608518331715053351900735957539784993118130089330458645327866379938770816912808628689287846830895395980846202378898224571122389321945124062197265499487975998566319749670326573159970348286704475673350762858570098952350935264862856698786095946124175056310354939677408714948984544391563556991914464279072059111545898257918962801940197093693432578018139940077085534587302700987542680358195074675828272467170585766919645723849419822446364702336158218560038210309918665758183664288940188423643482772989496644117457185649292798658551637463287868494618440931268225117324170290797376505638675647230506078907446779129797208503178401088288420909460845929469039360561155340964329283019230846127174668817078033890500708618923817793149468527556821134407168648425967273286780687468293418950472341170589971860753696608453386861010711054659060372627951808676246996717663398120014612002978420895021979303285569194390785479868824637971689850522951987778481488317896895592336020450717648112930563053585619964469836238277735967494460092485629822979991110861203995888790797777884475497109028051229691076800690583331171781194913718843452716977456567667816906520105170704090298020575875131086381808906600322459002649122282802548116892701245520346767518135723199701373819150352714926164848966522622789407151672131989131433813803792436149177591383627513550495788763654912178599977753828076386353296179072715668786597526580846450796834295615096113236615324045782442084182645835383634053569430797668236604544424083405608640976601438252727556244406060611097308648587283662465468779488593503807041055037326120898840529991371144697333708252358370133198429398729082354085767901596106189175701478898063448497074590615438605565564212133916302078641124014017889989005912767096012087057897408924934377628716392511314922128412762431626350204272078218813398716114401857028770844305606537788161096824764279188930176559141464481211825291483902912411777919910780375282090738828384339776666353909131768839112529889527837079384090038587938644435025873196938591668210614227947420320257061077118513163660491060720649268259733839789394396606472862384264590953952125051028283678364050051162811137525342737414073031116582907549031274460797532778679007805257798158792820703349800767200433610679389899204167074644272471715865448718039615572310986452954475649942286205090011417464515166647802405505530276085855380731443130234621282274034639393069739737039428697961743881809707374822801990919923876783795689788921884488684225002965551477507249908385811854876192826334110357592747387456360630902063341768216443248018348033733142981906821587969435430003947782443498348141926660102431220115505039223341188464824802747706086094816488383321868220259073047379985293024996538864677855243166763093023213108861227403182513436199717497630969260238783318290757715868093313665987905801020790777354382265456493286202339773261827546392792907384263556572229447157403193468219133836851796943334413399659458364777093628051637061744887471311740920770644444899860780524677636612269175949647340540578990361269153400000565627341689551823130523604831697479776422833423447197612739907545882424361993725884093076505737134078997267581939123353228882565492098732344013374149346678280262174396265408694656854412089676586742007994884175776690919740692229910331411105384463991273884762574171913221842688989031521131778545878679011918065674526201519200862134956138198666233407591439282587513225938043099909110492465009893764246248202996128107500820729717674064729417120858295760478948684192485341296905992629458286913848029566569529706639371024236437346583283820224343589829868293346483459427014146632524669475654931663977146539920393684135414791090247307496792923033062164244302679388765917076061148047102950498366215517027377781852288275101510218597807083364639647670947704604604195790407074028240084215189865052094427527367748873187694034186894364694318729872557348074134439996427855579725410188629078906837406399331702851180147738176920788684268094604266464121609385223959965000015004798436324534783351612410252649821298683264507125585512529112247780538857737703126768211957880383972264512384398803094519599128483478330724106037769650230429249825221681211502749469411661648316527163024946646050684100224869107498464072054232379417749574356942284218197329454862347865220135240431841105573174023904549458814410664665210518590051289254370240858881344969716742901075551196181491900897668429906308719735715506333749622800253595098016170290121474733454132624268417375979278036465725779224448433711296717065477711783491035558664159842743170624048245634963225298249518594138163696727353373615737608700765547434588685777646646541841022561998439241710607995805738550798050762011156338791688051745948072067654936789818000483382373211980821697663641423702588731873286955777629609999618703992254975030012829350233043881552488306470296008701423837491801237072810092581011845764747605528849121899790874473137701704102463734119595793220013019613647450778158135042580700654751505465082261192624129031558681506976584591209783298554460121284217083431432767374262152081868505444347786978503295084082082483937710128816341931564351153925227048896671469368725879289285618871469548002146598738807307242313711322613579403284095681002135430076500341794604915154157989515121424793383662102070721245719908643396651708503111204004290166464694078962042660233020855252834846025940963226795490355286284676151790899552851687274778744611874722812945014596679565683569834612698048222080524401274221540514044093243733179478063987526721136919944049305168070299433186909520647555201771455205571622074574215171441815398840019165198754346157445583135828791961140111990424676831657512320278954430796456113709475153751591926564786175373784138033968814990166641826200449142181064407580236924586087079464128481139706812290601286078668580172629179267422846820311261483135029178342335651566798712955169722160689875835872673753758576097641685264149470624131385618053519042778690556825704380670834026631598122046157964642796712805971247912326971832975583170595698972617879131347675465621165184410955894132308832892197933828373903656913143398300456125290381389393465529164303247070212563760626823063769215764942455043597687509182303291638288774820501889322276511454411170615884195285494951713949024246542778546007907259302340925103884220411890001810533434609849515548402353445846452571309487795267862660148922965791049432478129814878592261606776819408787781660595405827159597902980624985895321110997842352710967581252456871858749605812466855798792935876650958595267148008936948427002851912720630513472707334743175657164960075261952592777067477448908495987097405938304103179462564754655862714699902188639081078968168643995690790764837269532882423761167904541700467416217607932269572808858407205334502029755071426982113627482904820261034688732572374719985594014312737310562453449618134267244151654194758459871174995767142790508154010561471293602133735901707822655255375466702417728492796778135407370447910486308323107745229813543270379943081279307960657103722283625996215624271452520373604335921168296622021317268497499015781257776742190724480732913337720043178110577682859400993792596683601562621939429921427279882004509840159460389258912582825179764449314670440218907900123041876599822705700224725752811605452614133672794276174856632548692349860809226348219138430195193430173744212203061859473969432976183693317635489339839367071491665334591272776812363047844716694407095313859688332009251265218051528924999566446347261270104547620340736708469935280310184848842330094208968342038859163838188912095581068538845715065747901482772419897205923632263802349710482040946500189561782631918478607394329539166050932257955974440357863938485850640748397328340908289425653373002380505924448756952107816595648615840914849950762482791677222859925417217036989968414110260291499321592211075804514247902699541865403352223894615148920756043595063549813779263700095074707471428252417103947826098667542394805805846307120386444145350248197091311904127786497306411576245973440335908429902775406050272871043533777860053753628506197290199182590087991061041249112217481394113571548066452148315109742071065821846438305906399563841849121206312530375580439389808857459906470858892415821357180439748023702030291366862665019783642833414571335051513705359683542838451500182048070199055084235762923774094216848502392023202090335654423650944685593197493924789209741532900973812042790982258888656575012613186201429936263241216314398130078496369726188599517601609840592262583929057910330728059423722629329727886867376109965003735195927116283988807437466674988463043838375082038137523126605957448351151965455330636323522001940653205236831575453625458950114371689069154232354504915257200824959887218235800972073958065167268603479151719889439524286519352384444859073834878570622636388175444387085875940680830750916178551211873734894187862230864443999984990623774673334727559253964048858242195455366516809497058605528349566804566368674229092929273462523423522138972662460371144900712995268189229089176274782915638976411457736106801604025831696227478062515142267938090839128901470820260093713327684696180094360010266179740461878566314028318528564914982741858560211938549379278787701239629503482580580779126857442891529921349234284096293514731619408874859377240213689401852041987733939781228385455905754350301410057472260305877206357848377802290686237531612503861988295009474694044474724041504507786800666110977307911555523493210272173065699360607357455807106490037592762789091443072552218705413757917619510976535935345482538945045902781315592640725296113537312685728632685564810821631804461260618602279216595070215325584100665891850127112812991350436041984096400730915146912159066186099537341837247983972583173282986152414603015929415278777847586534676359796646274539577225329300770278543869717905496500416924153251064492185037350900372680464684349822319378325530882167438953762641747581843322766747560401154482759520804696178402771166282265318358592922991664572273963421752151880195863417953574081488025977321955523226456399450680358019478950361268124495612605514500149136331377334840426658865342182515587342968750849063755983703969497255105215972649889688011562280068055577668953013934116272682193611474965347516550949912986555229322012692010687187895395846738856887382613753644706832594575531356781711955549671381522007595459585972008772942695350850504697287092671863600614879353037820910808088895676208474974696531228204114285705039248401525430996201451808272712255117030764266207230070673047777157297548496661752186631953793654411336547711295176529198929526295746531593826269325065972837961417542314982523050209706091087392203198124188667604382290580859800020413620657637978484796148853166889969884528025236994695347223665778850383515324874873960663142919920533376246470236913865611554832995549564212746050152113252409221992149800128728380637296151558115051710776631484805977749166737529802944707283562678454601652117671586761394900831026357210548008390463829029606799493662213675490142353580774731364899129388477917132078946151741384297640136902794933318436788852877256212991384537990501291741884575456960026133381673818604279586419560881227685201669090892541741877903764773556113368860736738247027653040695848250695034022412592076036344318364665418621952846988393105895075674234300898660738837957059073366809131921932372110314673959272966056832377919635710000864790447333454634050177659517748613563253308570563773274982825935269134388625038916528742356518412639179576145254883448453894651759669712430115930563051658829424743314092280210015991508009030129826686177397394213460730377015722835424851127242472046244031407392170786967545902686194139471226389546607009757726225402911232260958728199676588766358779437050227706573523973961892985482692058340665330838986837248898872499552472034576580500655747761352891875112113335069160163609386498282855762029161831714995076171589841120102299433412723480480579831661580106975836399705995213739550664891903295025634932429868888347670574884041058008017686638790363708491066418511130874387742485852307023799083142718276623430609324533040224179138768905168280677180480913120477725393526966807234090455895316420637425328524647134042780222745410070970412813244776875991035189128263359720815358178862373841783489449865630889663602540016917760599403281996638199694566036145752551122756469267347894507827983593133149370537346682524477359685907891324210944728299913751578349894713058853297010945299446462696753320819594729784097588676918788735664814603853902362075574553012298533811967071165399549888341307635230561593838477847283171842590401643652055750838492922236843372715204701704928330912619067937747844434426860626312316269658407895180721572463924967141145774067116501660796928877994867597908954767723174868248611187499829455320219629894232228326822799438866027703279683057561438715461686316944983087824423431212312885859398048288097593998623476420018235528033962834995250652694774064118055960620957446982654621191044752016181932977856357455929619472972207370748187357893398943004099889030535386745083764777534589012946960957159552652252875844908477634529827715923839258011946451199143651287898379086241027294278462126337527930873264465633106189484640416443967401824507004791186676570316662758577737768162530948662090584879082159776753121820888237168868551058931671556328994323441195027267095508335628518822761352573585621001502094567690026394011998500426787658594887098203726737931017222114168994704489262575496518180627953198052518117671421351825494162790832755560828682707240917397454321902364476075794505474104481675711836543663482284384237268171378831173065140702183768415870452867698855565252558676121513131886591400131157919598539365407298556059689786090443807789839661793567981790238633136569406267193594874193677934466959522894952419329084292014964865607570104087695672311568293276432891767573876320157552773682030550812313439276533048379760998796258696971214133651114965192439090795918248642602458035249826210405297460613889068463527504146301640270379337781812735478045122466817068530863586211059051635395097336846748901888682803653522534968525755330141159840016138358034805803015716866965484679349988539195257091730242142159927261373907674237665091246304396007053773664554204104297846909716240238941677756295219022644133630855656880020108032691386053923360452689641030326979902425728924369922627307065956893479280967792897076458256684772365997670465263203063333586601877039885349518892544372402185272495269618108310986845128233541620671470229446861554385906356751306057199213467242749541615994114692032988667545288641608805915311591511959118753551731042459568327461246423134344407048600333872495970383843109509144993740554821208839458674172296477220068075492753426378968416307742118480112958253946056391200518703078085680004426246809632650825897014588520792509142406378936690931604952795799162043902902132894920913343135532169570755508805649052410075504053685114824728273871841822396849930504293573177095025749998832671598919099575010247140015072050925004302392102476626998402216129768828481260905490521099874765779421590291514991275966286164533782564129086146068392331179342601648515253957573555359221457165776259423586190638111402873161576679650967780967028599645797731911917813938214200473682552101118844129872165145988089438160126095264898685166385118439674582977028495558302500002031302364342851971411282569343942442006741100966480695714008192748036455273962572415487190669883175959545827668243157685464394874716802334584679586223600101105785942860304285078092298415805064789900300563378629705100747189525080545094245846019439401020869795651736773142998431687875254560802688362837597954105012589155014072819519558727468809212312020642184433342231896050997841401844053013181103122588779351474982621280842232195490410504748882465109090280912589528262237660444993435624196104074232059083277439124879542172187849755271937375927974219635216586150672223216423391018090284142546343733285633430305541311960423904439484906664938290560908495430218527290505966747598762752608650231274077613460268187849275112139702345185851259259474226283721127404073149082004935464393644075073750568364980102605550826702993915359504738420045986723528045071975150169552926052237344890988291329605736498419517494350235404603820354735567902447693703844526168281684348140246653157865296725067553716733723097205765515719417718920478658016536604346196402099797830933688786380385451859919483013987076527871102999077738103709870850167207516620473165642202667413401232365281573474558468971432526242382393235622214123282874797814877180454341457153406572116165509941117827273650393659684601640605541549534664366921877015402601806608792470767671305597879631120931227105170837410304820465086179096580788664742229836276206060730207514940912380232821116157364754207888492885201931505968624356234949343746486820390391965912005345176327813632221691125780981728257975250650059524029581720726940076579368317896717356095347225792213151690908442011275991039347560930615024201691536971757060042695017531722779551655412648410954749575643697518088727316041195466805857631237725875727767432364820597740860475607048176064628930483937956555705340609674751534886925146009636641181491010111090272851906318913854322763160100088059217704295761813052748768963339760555808954625498591024167964924043466463961187368722751339047924669318329232364905805371279702668021897127960729049416152774161933233583286983709412737656028647066578285913540864615940574324697253196263357318260323992912692843350954684587692523063897758795107097996809968838013894623555669592442139841689049990373510225920962161904445289470770062398421417684675427960807802315889940532656387878580162273390796868123458642916163119049390199322732103934311760329858093731192975868980923168596371438869441743649331799270936287931209742162605203489534312687260073412982441076931719941498989318406739724827727322035724939941487470773765817976039154334259997362913874822846461359752241502255929481563277727777039129780196559796650469557699179100803097571967980301038839006563347845266294282718512786481598375232689562959263961730052259826353209344168220544327264174522536373205021365012431679977931211682252841081889158656480073332169524118053340919800324822279345039299789677927625320982978443164525624013576219283252271693425188422278263263707959424956293872626682720082576869948668573063900034191243610488417495426419797169598883855294206458282542141142769486661862250000332234359660115288213119893079893026178239126328660490713066802385787667038062651271907829804121242770452744070860538942868502074749036146744656074942901290228195403978566921435012026089731143389089888555731890515590568411063931432159320373336831060365285040976886018637827499599646529030269193018389671380206808436516149553608584182514303499708639721928651859188649296033126243153480818787831477272561685777949555644946576776516773801277188843653097594141436742569987832593818362560253957252558841532368702662575791781136034840421482920054144017483617515034116045341304171520889412552341389738068636761938108881614849404957547549138632248792843162894697956714682676221476129000556524519301472484493697196986203062963113703594417165743911030329020246558842431935463559335942414193622217936396394247722426456267969030320668466136852262852300322539533986566035146858414164209470466064071969562277923664945511272837586926674616508775554833940756766156717479145855238706022438670379919904692679046161787985066182770175443715956219809016009206962011520749645364050809426704781412034906611864862402918295307019946403173595579360722012516749955817526985310672226460930646584066224412858519599838041692714996014986109945740625246320650337396193974704717707753642420296479550532431246701815806443059598770484332587980750957222813299732305478031269041895760711695042406410836230061150984871097217350773255932196732912263185610839030834216916762906808744344418012372710640375137039930364813245893917027952590692969417700888751954412387390311892322989565755036620773591628044669447675702558770366395885470944121256636482967009691349545318424708655945730516327608453789288869286559282408686879292355187831118332131912282214877270373467931329159955305586689508982942257191478794257163089638374426402988718211728684075014818593517195468312451178986755751353260986808028900934325111444582561489811948936188577900703966522849246125207981931698188269389072446255992122613734629913787496386074257301634786970184484383799884840270332399062337230616366676009560062758201370192081397285470966422007310373171380565274951581068229634944206636343681773542832140267512507439938783191570084531403367889395682638035193379991498654667917870151920620673911941740686386215072599569938252774366250342887431917620839935830436336940921766834913852872941431273865065640174458937486324547608623096292196296157003220202215740526108932747768491431841388005968450613286195535871745545194428658738616639731318700498582518696423708371450636563108233696840396304284363361504480454162630664690933115082728640751451922847235669632019904037152080714851418315291334179101574995596439890239124946772324526564268514295439924094820694543600389227277579048984352040067930838564095792723830814208490637386732413859530957239867847938110173887730701099489302807076568593714547569518244059450920935730974128835828456100752886945080465314411255841563338695486831740747374271512670000718998823258943405704231530464943593702238855834132539643746604135182817815491359703357564938993134587317275793038656367712351490714397678331632534676598819344864370431801650851582650116111349863499169794521864325344901446880429519507657151048391604780969687611263508094055643539058439234298377637714483001421131950160980902722335499719073127401255543730337128992614124903552969833619711658242072733645728819714341404881439184401611415433112727462945798313026213616917527882200852323980937743205866606677323273092698278046833839371329079783440626852849618870666561129583202033630423287947120144808512144058846498242145252096983427656631161018921267639126418239180163019458211787283207405146822635165947411956713755817706121965665203837867468308746397974319227590503645232705211508543512662907303989030652747114569140237492761667778333801708452754128573773913580489446914083321734200966834291337674745541993688544998947564024123498867884191298450834289066803834688389161072333302993419240802975588373466846031978399086536147850816219531482982349488800930588073104876548642840204483294640062242458536766443539623251381675559242507565005843932454227776925640149270914921432831283630109829384149171100198611603786279371220882357534297760036098482301662092742317672069828593933196165613770800001186797446912873468513141479940676463626421731068430495476026327577611857598665300116726016741393752707960161111198652155782633070589471010738969080099446109765398895236011620078149316823183090690699547826203607723748770980988523347068587933326327891339826804089410504561005216775392096910045561746229672214261149063483398693251592245141210068139498958175255421578330708890242024225441808595037624872141666226305805890847479747895839582840203751644162385074736815510833155055852689641390849539457273051295228906549358397634445686143176744883691311869065700516214204950305398625891473314791775482775649318689527205150425404181119570853906658622049211896894588848845949765487386034274279141949426920815426078028561620703918949368978687063791591206821352117048383671970702839943678944430263309275247575140538651868846769960638447155907989282261250901406378105981014354135124944361162178750914747957423718525472417321478549843992465205841456335888294794566557712343427866297095176646328657194725731556196420941192977355298978912419960591189068862381227733709492884170050516847901163400755642786634368561705178158168222826630094439668950531506902114346777071467370930189372391314992687476706668502295390134396222614083956332128421919062236457530799398348235667645243580389962244557310607038847324013628727021604618381533967110058880679781091352424302467940794824903933738291534933778532309384488621751210949901955921420102345307133032860774160023320080477149725555204060637235164830022022216566872597519889911648543576101461841926952783755585149385507107961160532112793820222394988570717538015703333415009366735582539819771323785119329441332615597809551352468109966359804511666077179842691564018618852216565111344126006114938313149218559923181729996844370678397151480134950418386149267077932311945253963567046628324840091294508932392504125818939003149610162660221524178592269866077129431680787039921600824458231156102190328987169885385191461614351267621531622165710936772607378485735775403077126372691644522212119540911610045708204287262068477434329114490712586225950640511169624200184208814955860075489534984839283898112526602726227421235526429015476794064264832624313283996834854164032194994945521892395454157871616693217482075676128212747286719765366981188727592966871369211324335029583985614901510265221508398104128954206163366949206890102864062849141879845784470237141090634265825832979246612235773355218321712061630314401251940445570068522884365316807491043529848450110974974161335776855803023554235193926355383940320290374167473804302872984476369665114453431036834843325007369175479250129325719781352115719660509342837723002446387842159647249092699039796710828861039609677354682358347997687505450887349710045435146092382974654698431355224158961712837439884148341787379191920396339527723476205194071973253656599716915909470706358822701692624783499135102444178421077246869814497386626193824262638273317462943211885314924563836740645087502165251736820559922482059988888756323002171915890790598146844895987252816891352915577709069462447057898257879834304550938331896148271586179700479991190670644681182542147283646045634885397965662042307137439322554860538571499092592114069551640942662606002598221688134834877017537396291110813862676359474213407770867611189079987347116167864240673327328925883169461952212945348038791255756744454518602224482972916541685434218538895578072700669324683836786430937390308199236742932555141350544569759732816121912045079510090003998837861775199664121933491381578098791328069070520535454315541864438096598242222331250623875257286496847402823690772292859144360126285665770806539601083385847332182918881342621796665512046466416558226380817289098044840845629789559189176210389531900082910240524547998546436642360645891220530721803998323458843419964874638881929219963936643597265821320569889806561793034312669674695076143863298688706045380522786310980991297557481969718434906544521054115403095221808985813021552912476032058198974532637921255192224390937908468622381355663712403472118965704627990565639051931735000366187538761127479889790220314539229061578116685225051278493237953653543123406105300405919799235263611939678929667954658533163152422256477064867372785100330694655068257027960244502288113567611249576745303328532286721400316417507796033743022745325415092822181942523494561818906991956206968119197240000419959197081304664343904254138266392018710837846986292572101545805148872517257955532552582791162727276981257872488671716215243057599883453229206693299589996774578567469009446548858057488442438098439498841636363551691759664802406629418338652943590916158152443870428648774219215738731072403243260650266256130866675711258670548478688958440671906488923997254910853857704410848893743862580601493825817648307810143497337634840119831854828090145949492524564583744940792873842509775630382901532060758507437543241750684642071106414876376311919631901129975137961217367598754091551838981041143390583874252909268127847292646990192956092784590857805339538227201202324669456609738052461855567797916551755525133238746402493010212146551601472393972493116766364173640188880414242467237340314560513516715785664094837158738888719307728863708399646552978533322060856362756204717975040149391205471303823473347414317173254433429613430786206102046176182621857890104299745817246536977598982003064605230785732829288882800102045953076784739693170485661736140620406417784127167593103197860672560944818577679982558170702573982266195658657209321648504672846159344199728995380281960866345947039719013844268137268841216535440131198635928521876354933902660401503350190702501358903019253914076863197305457602558363191954080016100475803149006632369887126417979553042214812845412117019849411470848435870542888322010491528829362778935701839498356476792696945857990398169377596171227503257392621851028595384233511784366879853240982406897268929301122856669808919514819948729889622699743124157320643559294462094244302508035238834209969166755193100875833287341544614068822545870513964354764242154431191399042451218633046337586702720883709138201733418274321147468069339149957339102983879716911289791816450566941270517248186764062139810716214545011819563752026909273406495772418107138977136295889677245434801318107557794902289102828465648239320583356824585748110907754173644530894445959039117358038500750663815822877793093353345631149867122722025651055031149215581634546789993920827739006955989681533652578550050551253197000147313016902328819030825042448483343501132838683202894712540620136667652260789340575552852826646518462692655575471173184512274687130636194580803500774659865231050432463922541025594026283016447978436363077912382098506602526010061958918290125680960697080577833342959653839425183106086938300625851255159089550516205016979082183685320423084031582756281820853605968250407103888589237735769034104110043733820816803613713470839312569561014487208677226564606260824478690511609381585837367902645564724005432808487554551496937241223299807854870051078102760469233242401681980357342338033802529273755664062903344022079291542051373286735074518401437858292476938352347995831835324415014243492616005021298679751651688478723216296864999843686180801144714818661529922151443915127151093218933587149997403008139220044858127286731884814874768362823023755118535349201110269421157056470217298700260853790512509717440875842121642280696009348372656709406104036009088352891243634750911135446844684881669847009281314243559938658497265504442239757018195068210985512086302731382369399477169970904616286693287619496864712705120861474321416610481041693726699997920280772347920075854974514278291809758438829050840446983731087599159961661051324315212499703332027604865266720688724116387054266447037800641174994504309421300996367558366274477466578172866142313439151531972333160619309320908998081790393720590165307208230284078783577024055012515013260345900318140298973232266347006949834246544342261256637531291307007323222789564711554430610207709740359418583195737769503118851149306062069208189448732557822725295906099037059154025188842837123451651117136034645963043803039150422941225295681127029234416388019561053609828540651025967895152378076716775225132806914982091513110425962615871515834862393309433749803057341913731421057333995840645113932558731920909089789936124802828494802811708473572697221597993266513375493825971088947252050333046746121649389885370505518493315280805442836497615963164017314551797686299603207431047786781924913277506840990723158123852757914246842453112728111977453296140767660391709294276727217563893024007683539135437087359706117821708756388667665968820368895878987984304324453155372740814025162768615860735145459675917253984299342020960959427323343070958773238995814576395964883682388184698036719494358447522942656791119197119055460652884036814629436394654657562978131586177458782877816875235797942678169910386100618144868763087637309970653912686462029208294245436328837616873945336873107047021531931327588821161965474614411589379930843781189898687605256207120266193631973106580973610854053086980708542145024887245603658352598202433592152007886429597715789895980709491627329460121346866514301964143027235112739082181800117226415992374007662921227025420149520589598905217545669728250425798947660690837934798837566273371756123206188638797611350069829590841250439284088710937183979141042626811685923768511135636638496629379553007576165219674171940112765443174187408248506363043837193104010327606365780327847657562194428308408184175135690444842484868793194585980498267036238614160285116103554380116599497226979863528821547186322075362084291653072951545307039285977062921224771430296577857458264388149610022552466126145007505845971593684200079697964121188171835057998335377417076953138080998719522928676555452801326581908572158661076862540668918665766162119135742630255564209004067802545887252419494396955161425442834332037272915121271403150809474413075625745902773789041921464229962084424589562093020241525117204731695825847719333465836595925034236211465686381517919488434340691684380784865384002249960984466719128441840000735863705716145447423196463980709827512333678852378778792696199453186224940695920771874199672409766968026621933671903228747000965461270772461972747701362866927929238665544221800831621329454012227673031017361906278300785907558630593339527101934460940234029049348212608946143775590059970352348865483586763308092442552466220941351743303216130535300038223906090344917260732976192873052567892791149075283644701469803612654647831724943306264299471726668918758397518858718536380476440878595073643308308985469929461186372187844928591034020763906733616127907040478180623388527421457590417689261562476690631297563371485935861039755643436003434515402501765478435109628254434338985958557452999012370198924903563416870683770044121833649297290758367932263732261500154889131203381857724175539194584709691275381681152907172974362859075105263575254890156776046368078898974070372884397717496664877539840085223467470752342919395769084314123557853419447515438496481661947242873443106748576450882855669190490573943149631709803908473747473984497065066193978016031200068441984143471694970989683833375464585791807490757173394592850621992959979121971277057506958430456523542675866943319053110518272481063960233891958139565645828519218000706561282413239531703195580233701444336354923100803450278845603809250317723226413082926751743715434018526018639448150473956769582695195365712768831819857859109134580176671041241422049238712617342111819290811268701211190110073684005449178513558856911743374160091776161159741986382590124360220163364046083751395868544268546079297051262395356570241032996237951051138665052105148256877177774821579125461639940350192960532542098703083446796267486714915534020070335292453244605907757557639224457350574789830997347971075479760025946301628763264028846641839980724586152261021609596220953677687062449808812523964555995301866064577913692125894448303710268792243449601739351051214782231627379326448103354974899503695362473324509761120316582014226701749735413927466556557233745404293110434598410461335283231203593504642931349485404020711306238875434776025011566246249848802665617983205122784097671213237277825087343669864760938808417682374368721079900006631679695551915951816855991815321591674474080476194467149022724594518906929669256520994989185774493290138304044869610546474154028226654069889750909897973965680769208487534171800717067818178488512352835416017455151304735707721748489917656337028930741600523803454112752292045843276106525946946608717146678483351895396223073182086640668344241602474759381241693200412624751505973628030854594953417002401971242173312222438781104070244574162667784047284914870336302646614006999634156045107991392439418425211740064341706881600121361731555690222517783901855448685624609510778195670798494032649534328849159813196550849899412524897101295235372474213264457064423760225232648811324036601271140989165119809679326363759045118115903154028829478709797876773021819112385368031769102616126441317213174892015822033465043535011408741389508458341033465729040646823234210802901074112889713927895345845864297698998856988577563973174715149474749491387285024946030347483171425445036170795662333514517399471732990654157306842249877501202298883031897274121020589295136785566027461622120998028187994830215398148023228171545202366684837419465478343484788117550851129339522539232718531382589825110830370070599779743753899099520207399627093363595076110411299994602323388174058623536195237339325069834387771058829344846353363663662640264216990497155324721690609059441984389231039008120100619114617563655540454233235870830694096893580905985687509779686289978341746641400735690693520887045694981862341111220337659525260162134758136443525423603211027528843033114714942399380117143232381335597216902461595978155562452517043785000512806702104861302450974317012740966657582003594308349132318645358000607299951833540938776578591516535328053130877045591307111510668411315753342852620491386970047373635399070875663417953970636635316173733011211498586600509393257541488078342387082216624805118076128844207871028897821826825676949188048341498363707517089285509273592876147651205026526849793037312431302149510639555480636807514288462596470959334746352414608779438100804349479131399788824553995325820316116586875704977751883442019492902273397500537973485045760167784817257765972907779536328449947776882913905508923497889980612327481576717567912396597934793681465413415172937050774435827041564984273274726598939133711804199535704264925395160954319288513281146455244581748585026534208928149929172058382527333539591921555331479785867712384806954502933919149985659508568490788596416924686867395771985427587352424703576006505528492513938460147044447837206336348604652640773430066711466603070838502694328877624866790122616055023480892174692514051223981262834754583588995497367358662234391674764328847191466175374163187047954680768213776335673609839828879600698148044880685973085917813736556195480205309376761523222102736590670279777793488403871318391924199718563068553213412079968396171081300806400753248716888299391667485143438658976245060080270292599778501325362959926553034918644524817204099846302985031463412683199458029042092788342892165364192171084598393583313021192351626159352022082750691980560091307084728501560015900684798583464101093005424262297789967715560042367327913015615535194346974487221235066368891172669333226630762211330141302881323052669380908142763185914827811367889742936639291941655965111729175409079222485796456336759175918082426487402558582032929044852113501999592115930486038878075698859739977163676840702873229634612239076739253398061133945157631712292756847927071705740969329705676107287093217281262928723433009415213327700678619923410445903986295422623304309105100996794898678336205430887854248813009909212296885809846378555097980340212129479336273450355677193344723488047021751419956113285958554037136704083983364173425607757703863265398820291161577388402684586064401191840452017258714861323331923601767691707209169205928929902869255602971110017407319863739067950580699684233065538419542506752785209075420341783061591243229798460382441308528676499967400681969643200629962722760956096597478022505990046711057242484524271322286688472843419594309957410941818503340826260009252435152405777323467574254366220771008724600030511671810075725538883786915358951088635840483793576285125147848397276080911873269591283374364821598940016482278072248168500226463519081949463922135121182625072112315570223967988181839235657934333587132259459268900858366242457609124082952115872646760578568897286906661684972900098778766855563203597758929534036036282557433217998784757556989808818813625141264811622861090327401012132111162053168449796602421796374205216148957688069913253749407508334817591431567474912553560637229512712724594162640155548451016997084959420179927184688747286547474786014535159648866581260232762465668248422553047447837320969335247016872189009905594437520062296941620689111748379634562804047890667704640278240509728935549995200745026083428472713746994051152746023108447799916213819271654386843025140208358318586028112975239825402814952525641310723913057761537571882814704502825891696983695023292159137567291213934102018897751936558549375464981727485655394447121423659380166473939640793863201078667715104481203344271514608505886681783083807043294355247827828549177097784525326935897071013336927491466190485271628415402402375352789350856707271165504773042350096199909066613484222175574579808221758053613407187501290716939008173639401651135862620316743764009112333220102424098979217301205843359681735799949279058542839359118099276917081199472903949341994183446418710207864373228825078999935316562948076488235830290659052450138453967246697256904753923274322739272045687942704842304657185675187725907925692531019765402955653080515912668928567733864778239913047502615995002662146732754937969856028110834626803952740216522924736079484727989131873883562990859241216790481590417800234876462640215265870745789878130863524692807766174742850946888237878020924033648191759806877800889338911746212501039814384722755419144385712088190146306712748905577366462749902414402563413178022585884862513881613852660706326753834896212516193788463204557070104174930966362309532854163791575481910799479283044544257063971386849610632700638996026236296312884594104517344448854152169199506766775787213207688523918929162407545247705571148653437187375075667091910205760041975244626718798457299157768790647165561066843544659853466846422383050433281833368843882588954647738440152088149561249695342919428918681688519521509286688912888919121291662568847954021386364826368944355583791441830789677770170192056224915662817268368092158479894038416560802966602157898335010893244498162021190458377657735878790496220626380212028671609375771109310556220532014332429259824131642921394058311221149691150135936721013970475427839213171327686206639472098809037646879452059725973424316975495071187260214738287419480550997264106883109071812212981725209826078818729452348324975291202349629523080174952805682365806120549419438817655914725837570129442481332996861221913955414649494251764943488867643242206155016087462265616220214608213078505013359091624152035606300466159975754303646140299046689159030766482616881440672663254997518284921224788899927123089351839251809587754805542766127158728261262556320069190613395347332138871050918752423345895058857288713776965308650731253626979997275603853986229261231060900146725018133107580447473757089672614615605444639607381972468416193263888901385749940734161674694317986498964592046203064110577696047154059342197222620273927005295596225575052561791014294895806691422828789157071147134756739511504926584373329571203205601734310927720575367516188904588084070772222910307563078195637386922171366944849113091852571749621098493648848574275800887528211252177971934265919551029966195235379797701040311167999969372525483150903826872023006156509727284170535302287293131011266649010641357595334170442603218162271957979389249279019109511088276956243450006873919836901412685317282560687311882306140402679369037327695922920136656896583750781422830175880668692278034666835725561186552068527728621567886044235719119205831523094075853824639785770737610174498817306027188967260836663701538578420080549715627476631163754126631197411601644108148278982331879632466110683435418808479093243297274709869300788881011440596575116825753232657164383182746820454867504054817793827234484850450420794591114835226925530497346816352741777825127538568116240116840183296052830250525934569897437723477351267344883578293025418229435605849721882869632736239476439907807140612161923128089873321495795650601994256919948183169715133636549589870362049285252909482753576731995891339278607778757836448113315266771679114565657772166916144803901125637191410063841391668471625599221433847780436292890612775432266119005762332047099836487013073218824064137910553479704164281101837921505159764452150317277010878925427506915130171622217242685695069643782336967875717797618756575172235010328190952954565834581563435091543820895624239514234226910947158765096616476753686989275148868747316228911060504787401837490328821112991009797493619692765160515107166459630487964379636301313847414591005150110984640778532406840599307000721842009135696824401720477008972381221481252621231996713631521747497149355520457599177754746206171143121970568456243202101450521829643021300318413065963978037008354675489014576473635948070576908629856352359247293416269578396946786035487771913997146391479111142463866724651096074334634895251038478509398593067959826140570164304192751783031796929597261190155423480957878123766250282081272836261701761736496676377954580585748003997214748681056635723169060024854720666314674351584425309731829123062797359259573553653493081097689080541351669854462451591311516595104874840458118768476942965507856187007883880191525374513193612167996929136338989720311656423540547522159128645467255530816215823178431878513671184110263769253132091326816911693799070183587160850517806543265367886845116442675507823104952496642446119119143170983755720006615513603480840070723555930947735419517549520261888941006606046500688138246029657222320762434264489830142107622573488329865406784958463061973798381917324278664614861746011536469044452787136493111853551461039305632747721790954646772413372290402278228426139484081842567884193291370692070794588437739015978692196144116451721198168947327014526745689760718771088634070270871840880172363697531585175419912648563636946964822416327350427739447772224942041249344391058101898088844574973003941450587348274764912948095443158442809940777561303093916502055129081944954117403924831012482482784316054462387584905363411315614372867260916127975208481278892281970047018692528603026926841798126440727088458770822815831302163747440541856678849586332963485022571490296165803612343632941497127559930165751383638328953089934780277699223619544353701574298835193269368194470691878307850970720910728535667543081947382621318727514007400621397343706368223881754028776797621020307253886102602536154705681165329953945973397316900730102523671812767175768684649407510877621053597799767625512280932195792286352800824280065733315846247890587210822691830581341210608983309953799570872384428299539699688872986069716966921659614027989647365094532622128750273111644960671063645189858852861401430317174435218681538431377219131909676124595305841412417760862439627141787977264058207408322590969188402343248484182070056991274898825111218386801504379945460587778001737433812597850921903078954282288837396797336321236203784945645698005183535712878581123758349190575852796478650882081445174182620246369266950007699195938020131856880610551966739471899559825388499871417665580418950791560392990849750487885460942220951914846090022609210135955524405337082214976943376919706845437896548233710820210718137604866401856527771299538494027059972185394850961649112094650437013896442436858053399840718927083349249999886833380103376302510677754428511935473851549022103212434195900504699432834702969528285744348455055518465074326377256713425915733669945194626747750045817153056142877682313971588460235772386756590786791176315908023283439535957819053219074157765545233270187083455673871980726124667218768698470591184584221269429621721863692776692754613435627195500148281782129671407366315505460504762650972463390059127121464007271188874717121680641067648269721972977165233148657924902192514210845777242795957867861390334749269087823450336866207408523934786513407135497237297841362315499213956895470954983397857800056801432997827191857298228334685443718833798639701773619696137685807430715876028919025767095293791933448477404309142704082631111970634717041366646755764043690295021458254862772054688319067597971921559830980094241690493432997010061385124318542056552356697505550727715294612180001640915033137206477272858536495592160892527943237329752117546172107250538239796769738822471244771022928448220606374117870172627206597614023447726577059612999950603271280714601356218831130692272947341042311584569988966948465258873265864560515012605330845588870073841355570861447424078313463078455852801709084475688140546629945021774184436388315302245328629827279491881003805134032347360869837852193388973368597105168591379125673443822952739267592336474646777016684924240221948941321594306912411363874224585343290093913295596740552223832998620207686834803702949500154944459221757592886761337786549399881830325740746111173213722822588619481353101431140703221898517729465057139688725156957490905319319023821027812672986310371990003000463815961343092380736792861814436191463910804818608424353576720586272072041404691182665513313437709152856242139140940367667011417469722006823060082508097989701433727332568229286772518972864599067958317897098607912914185328096233557244632664123692350419767432294163509195167258945928717648454124280760438995788335233374055781917934405335371744749023742192189765455889838634144512298090616911348645838990557711548660243607191447409323556019660559953603882416169135889025844951593873389820989371095848469874058132916985850558987571394635279873946578312588469479977449396582320528417701496808410862346185915271194135806233782099445571105905837945429855209502959534433270109648352770897221876159978410829230277184501754884026329150571349090287390774141599307681182926477805776772571202844420301161488944038868006494147794153815478552908218125862848574767201509442884271211539651815205972523092220855060422452578101889363469443007520109293730279692892921131734815295960603249149138086234589113904716509808704921774390428617158789804765669003124349116024680091903324757632685896827456486360288554123547940861024384189065698153939904998221167841093540732885555568867785584995148148729159559262707124786338422703263078487736634984777845397002692508997408221041660765080906421630207374269794564109796123233106623727146774512233507621357118188045567711592589023837842790944290469277403202873707098729684950723436585367808864754713557766911906404177871833960619708112219846980604590795067551177125218029953193872194867785924682715333761276613918731719358221125924900251936687220934656627810797040565308717745340988490566712055869018447664551318117540587921548716449409087085199786586428587384031900003770092180983323721545345503891440765866804053069381547863969854590023041123599001201263390297907141303940076937998507047670923929781643597242510980172684235783271346496006755202731169028791229761812516561524611783706347840661877139496705053918053017706425758401109715295807059798232916352254391856945616078143634909310824192509641673992839438054338835807619132407752631673829340962094372294545409223814176436412766578695664190376199332211206506900308169453783644780872279100186735461575076308586911002744968588853181054889957749861401624730237319620062426996272656253040158493145660313127367799814220719806058284700464779170553752122136897406080997104234816162492036753378644378506262457496883149336079256940423967120737288076951395221905177078911408161132518654928106093592143698270379726461912822240100411398448943845128052834513843959425278309101001818695493279939128797791404301446170720481053969713026046115900890651854816934917463512939769915209013386023253114039112927402112894861670691893097933700431719655110317738606785008500576341192152786925191790271206885456000346384221430105497108950910778729224403848815639269980550980596618027479718566081332052093679553948480959040488757004090790268044681749980250613663590386824988217268734841660976435786803315041487649150866425710831014457354882319661216083084459738677565727685309998545480937120634617559880670585492472785969545221635509335413873895653127960680153727214213438379602272934266687752503760562015515969701386932575267849466385591917964440952163977047002473680841705553000833628617407676034130473216420862818280967247974304745993344715388154050825310049890579462642314194437379988516594659027861277623018315107607838088096098879966568149422650823694709686643155644388941451273988904290925112191538939308518897267557615557946704515349255718596071479368184831627604738508070008368708669359023432609525585929091558300259725560910028275226127419064827631302705005244504569447866759587770622007335118784679879138438210914110989212773780900379090646391832571989115317294560575989837348274482500191112700468087931606287655523733638325143127575395539948394055752108874289666247737309667420399648207840890569233554994991115917515914368255641060827421612900973237173400561199824294364671989725624886360143354244636599529183240233516878055481945394571610351435118835526687536132518605021630604609851004532238297888004513116662130775926212385389164617952699007242132472151221091774156397122783633691547293335137932471815954806528605628989442532360388672239107214839343796732829898978949614768449609936151202988084409854374072177019201128737809767901272890906289498574843814080462640055686178286587792839489229512774464256945186274154510210937337084263692184883946980434588449371166564220816501381907037522457123534806133948419957844198896952477278789809539648763839943881719881544385431264954852564218749650125681995895248998695438046588490546697350380204858243438298435187512038949501283534269706615714864944942623658541987887533655528152308347868068745124304959390388744653356582641480216687438493298419834977778520910443420163306625270569391763763436291971269587655520819822164344362054697297295336748457597668255127537644270203929475243210069852050137096431311548724074946081184970195761036747405427864175803539045739762554865815384826109751582266693652864522968447389596074893633086513451143344984196794640524926494408417951694989306300774559976327087914765559135357611410848071108269488369066842539590928349929412090164729927600774805679144024477728538956301190259056704831618565615662197527627736195014626628100721785286921423844543048863940718611124472079432860331456912602054477512948303648918912016191522703839746808308860804662990284160085437083194763165541611452639517151947295842390112581119771704019700993188889185923338868154346486989449458213338203486821578282269926701179450546883213384329069488380015584509206029808870269227727791619675318671874975547470334351527687184712790429030075178678653069603817242959307282736015132900527050428857774564684484191693468427306027291629342934958509080739100690939586978195343862721482107123602621433515470430246597173185832108801662607703516380769499954699626843388808055374734363125297955597680443070562971535955565782055468995206613661094111316281301872275850069062934025711973243319904053381423535312043130270853137116571522528715769892647019995319907012085451820899993559981526025414415469506240812408009921857371464841699033724924187947543106251777400630186228803313892421007400005554508995280434904995452679668792573149810907128885128926337018888862886175304244505203952844014143860484482189754956062513879125232642785535840559709275091240066254680581228867375818216282819726485675074560430833123431362028531233113000122234389897867247157443541089633555379507328250414589038068193048119833573934030710124521641270510747655889994912840117149427159654756335835797146554580635187304263470088635149874694925931090492158045786084385931388050684324444095761586072668454029610747174133735846451291544158011085556808568945292223877795613457941215497081142537855327334803780099637911264399940204658382327953348824245816842641701647614665350561125112511946182839429013403621404424472982432092454489139898870151467950905360356382269063509740077151768133172579333394855818274135419162745143757743194589561227572821356220230959621859024680770437220778021332172155902194515966513540421492545689832891171400136076519885606301141185263488408083457181527979550844320513633593074047602558068473429346161085076194696332291560914228243617754385780121520510437176055861782760985133436634783486183415489348539084082292508455456852628768468256848309928179019865528455153743325647415280856562048005235643414519567042990921067829798120712865896748734937551735023613664326273100686941862927546756421542689701777059040442430750841715009739905863377621739840034551747721836905532032368218438765000604596146615888640577196271030999802713052399166331484614444372202163477576895700864632120963740832704156832548200558211269304794874660489210817968087197619370855101188508149303359639053557280068851450597030634464198758337721812250884026264694141570513211650027562383253326577387149943033589623235077506176976289632347119299182580645843966652847816404087068676145507958619284235368339552645392267652747404907348327025702087821657456635666000731487637807852145158739336205017792690956336682915406163557641579677939697365536185101282609775747001818955426847844494721459779061438288936164393989097918496148342672428952976582363632399306092480420743642501098694799191263825963967081369621663568683737760183479747664425278314708613218508037356993524266314831386684075812364704030978101480934617896512508352472524632384695069603019346790197249416322979415188218031044064167736240308897528054541198835635114325978466625177136432052813429905242894738680862679209417977981369693483310264292934435239004118160052679398743765125577252641432253446985832165065858271781300396269657597466604299006432892484516081062410027454274257066228705649764275560734626637440335966652196693420587715205397937424504830430531349775932691982443521458062845222447997894021540043572486696437783381871388305610206323149897039531084675188813450981359669585932846396307740183206571264146020476007773986958050352869808652081757835071816621211662468596638633694448654201782288905054580426114511230220868817500928279005052211692667596256792037136474587381122047209389877323160392401856777615937566625819825006317217377032309889135819000360368987585544486378230698832837255950038181662292239976735141862408889486861147556682601553819230513046903813629031955144647741750490246333834790760681848510205335358325543614965110419216004631103790861380292456274455540481158397403382999480863181130168752603297848728690050317660012166688910146631919853033247779316871940993645119247346706509488912582481462405261339501547059785735541016467521169073111778656378831741635679513288723324000986019573359865711474113214587275551895269176150693358930584498636321954038775462681029799201831265355964054516629017621949744438484741540242930264718883773325379972949515301009468699526697400727890939707420025750857634714177193089825325669441332945254222677794668589133862029480386348246694825649249438741826912729994182072399071326995291284438035964118493791008479951036972355268752002554392221046866424166216221113086227552187505542063933049628742379763210958954967750522928058988574676234501781919897879532329355121443505490343504823175268789555602276212749005142696402425724561042904029678931916239413392422826400128320957706067509640035346130190820586648663951523819773282974033882821336605331481621473660475569301279219958400950961621892366206513285063103624984855813619376039419122093723587998958827609031619890957219142275763687769901736933622643504455576102856620272632097492579237468757102678884769827775321669343639101771579363862015501586513876234180359466062519360633470866742054439016908060940665965792311873048189264907886906193684949810032417610639285668824559830640778912311022331635730975409048342435319171372264950458820668640836505570821876468810692789163685710249348197431270983571385975942755802215897334441543127503491124317617097368913261239588804148730007217195020547842129913905153961522070249362139916060907508218163385311131172215465468394118302255214623686377555902575028659461358092365762054699823346499935057956725612393827642531586918770402544188330482601573159432080215889837216477875918227433413434955365907018943609026430403846494315147026894931788431497627036769243509681576119370224867192622178176284052095063837652873367918624240248819253603368095345615643918582916114195799343019090281471291826486503775738736369967589142442056971878733743432073454010051637407322586476100162568791533624905857077309460138465644213764194538859524043011202496594368758530915843882949065853503032134394707007552997892878186078713723810582032695661642246435529530085583806130759281720431182355618513940401185047606428207974747787927983877450788006686535330026880911025218657129737277505028778929091440348453315102999849497771907577706098396455318802136657625228143995539582447246992078978618960127720089483767218254829611419843955968319304900072782255623955572174948299705685390767497725502733792059938407306663703515154316501210753462762534851538081259853837264883924260456152997481921526710109619218818203764886673179390541563343887942876942496681009618997090167793195915462791949114095408175843906789273616354514954662128635410531844011756931036981101654106572278871957268136283049756654797988657590739182754590512133579303806828221540392518699472655238670845397069543706445630694938330038624594630443353891833987498541518915902830382768159519391609157491432796657721251815646960910762863863681398458033268328837977256836207390323682991797684136845702162247035564391799979503182600448890367810131860130058029310293026923628996233360581922366437102189647471319903994663920718518670411676348450625995323394448232276790422200452139574995383172210652619961079119342155649568684217599458227114609016234530658925834063105075226733154278650263398097277392613853059586279507215683877723943188906736178404502195896711583732187444379398539266819086155247797854192268119412090412924416962428570946300357473643470415615491876807814830273122729046637542105360756702485193704943675833685918193171538380514290714206556888214134282640604118406977135561902501232561102854843677721692195665137833222434681032150185935989645743454734214032632263778527855721499900371836227788684622476154338774881799727460687297864491094574449675945840419095550442170867943834383558406542581293183406303115743980400195257205151462233872960755526705137541331025594917574837984267537668820386356645132851789369298362382224513023152994544481586525332204094476659365416555266569376201509903196648498745439107740301574610184034550263293125524859991063099409139583421744057965754422273308141903894511770223433067398877105674234085525884276511710704646726382078158554464456794449442498058835244521273720537619159756245796042890766756532162279162251123016985002454375185581752549331841807005189738825141992997239843413148749771240103991031633105727458003251217329717030917611331314833517516752931120611023644729378268692932625606430139755165112443163888987722102431023548442505126308143126245926508945019811140896062003602053764349762794538859027112529615039121834309276441383926812479754149064723413877929188911647564198414859753022633293830568610819339481745248110061146497505496438429548046131289492345699720256626594595642938386771217821376100949484846585108848571405025702627368918077399045134093813355552501224670307336030551762629341558662540469543495127343456511285442941890757207692116109545513694040330489820568785429931330327993462862089383874635058597441803451984563894064983847188678983564404173147598084287283508339834277157495383594321560442203914525376621206549908763853924693352931596402122968260291829445258642772628391973096417317345009693711480239631673666816780113951644187213279910572250151203865131316692345814070480413647700684410175235682167474728635759442839814783684898436498008583430805706900295638845121970402039362154188667070424830263405762744019630242964321529261673812824291814169247969443471240955279759804467171481493411559468007146270864033567671469524928960875457028319984691614487666630548305832494882928098230742761783471715009426006490844654177409877720001696966306206937522758971428925454294498664089947136993164986234462004870558135416693922660635519603176236165251047229033440251585628867216345440178657751629231049343814604326647818285589227824612159245760859667079853694617289088724277227615822370905143013081411054986084044431726376993263449601179253553170962860300773846986948499974836880050380105687276479170178810973141336322654633954790444841790607320395154163443434602461896854351164048901539247192002156504256793687654057625241539767893870763246880750054309652474746515147275046155758831998487078614194986741743879616702801421513444422671280852228667388536600901313257768406853167159561626903538430495119060817126181847146564537077562631723741226682093817394261368624961906635998195746179130223207676282806308082720041469966966625461616423472444665634675319614713893445409042688051444361717961613403435225212494485546208209988155350122496528381854272527954536574613701429793975270087317490854723113642620922751908834289480411487329760692033069329782612232799814629777579565033631216389612175312461133285304625328030118717020521261443158474982506490983735577780823929465173408873051402321851428511193130110594918908619771404271644745670850992085862647891977409325870027926236627507634116728814925189945055529329874926695889897319098498961757600263722187934605686932084379710527218230210758938377182066488571541490632758499697672998421176512820801778694073752510001578016245033428837640836857306928580162575204890576352839461738076343618451706487481681362136693972965023974051455072027435951797253774968261916061809227422257231619264022989509336591808653346966360494747957533708365382644628087726899272986991544623219907041672198784954954623555257736310771152120609675694450791470741530899786930093654589047583688156101769722024768611664024551935002872652936566292337905741268317671972528147696723446581797889578476735507055842024500072424800828649469652639114788147078024600746129313492250246122983623371365436290925593122227114933788126123613193152017473881571161027725846799655520923311807360697632258506193296635806507892654710363160009115659063166589548303632014632039319242464587836091644026230644090374572853868094816936301962748203958219368659151024862346564637114559755673400774643763871220531742936521515846220987238813278412933977222702318230488149985341867369132020945641561416142110864531719751656720387343289150725968241773191198134000181735995103153133966718358639697007708571928378323238213508042282648834889505988896937806607076715160205425207245744886439986995153957035910200742109420268844899418342509233063941792839804209604718721583510221387058129891692870502827441236439847441519983750952593370839408436864028130527144358170115617185808476622821855651049330463663231926236982188144971668561516237021887059837108464486521734297272050821595559061232171699771866371483695547450293676688107955691204230520546764174420219086672526911554112545631476266817283476013654520861486289529858993195759920529509877489571868605284463133852887041876584562252462590396455166989317777007759995787616496235496822302400140143044645018166061307385003554095614187621936939738587625766718075706957850953820542286418152259849013355844124702700039802670466756223276578693150169909696021965251995418049498824332855756083769905947216245472673889388734640788911129147864072091588239795800179204615108007039804715491778817872019254313646309358236023313421216811316918746484002734611707771663105307304379035339610687463699828593559431271522188152586464112486299951391467603868722698981277756561460642757260227615833211717569817000817422940435310614171934454503460355586254169075075583873309619953251820427284283904531110372073766358582699847113995927039493921120326582963305560592709675072696817239421836929768662576427476850599876656198911883559386822280300132283928066279947942186025065086888141056253210400764410040551093949785708827127804769880628652412261234794412147680772631200770698361603343777209949064200781419824863842505787716978564657299495400961775173010720747276847846395332786299318640191909075571537779786725911287868619466917479642617305708013529113901463453932819437317847296957973606475367819955371670774705007093834835376954415955233043647286213734437067228565327183044862382806530305682029637787411349807481110926401326290757005804930167438365613692705146682943474311198020364855865822402737129967637422305289009322001626603870472984086533150998901984028390936840255523202322738888673281644786002868582397595570652268884927791757266844368827618074415013797544420809263408156554770068477212559245985569338972826283138788448941345982490714479670874294020086144106523043303904482953781082650661760702762634505033732575651440352310003324421839011082425317082131149146540318877115874193911492167867110124150862046311286390910936254156171726546205554235545679449156599252248742692766258302579380271506565177899543242586361539992779342914558678900373609705263693914541218340166556590766039406063255714059042613192852138602805638052568176665693155821290780994129933289095334703027698831242777514273079067643929334447867347021828695352005042634438762373540166510286744963414829079392823315516355550579802631535605634833261327939035202846859441933297579831060623387766657514681455951735155114048168312127133302619140788135479534985678280294713002145530911430328128250961321547745990818064778092295253330144648202213220147832184117290164522172875603296442289300007173140781297348097239040852725789950815728288304975281208093433876969206392231744973741525088420681055228758121350827881885958730739649068638680380026451245436680653121970467720739562831661666284737999835050147080652438113301570026669130402330871561825307497341202385713912531233718438130300084169892302006939579378693778512293008576273945735685905703613081899201356973828654990837450083943623856955617718449154064308124239138327199121405707502763740697754634486812952930372350045644606609179389321749935579708175851739103562001637311638728092939732140081399768160670445256866053210117911915423236906033186009660743713998222458386913021351212058372202315536889245997082724116649535077526561121613600910205749759707233200128490735981887518386090898081850219694923947477455059281051656137649572145247303649905895055771545180443417798423177579779841555832049516950976753662541495310477180664712597917871805169842347061818539764044582051289107937002360146805838447171412244450129636888570260789475468825498879487642950291407697186344824136036703511186726106954648973640755137214312867488960961701251734957648661786844155203856923512140794622981833149690393288271558420948126896941459733129192185147669434151597507783989293080656521353982672400236934197841851714556533033666526147532868017991695827267856427532566358240047895203694994418760481005536923669018720059952118015844807715569142994095712706667805101294338028673968500888647192316219012360749256302719364724239823145078667127866570758581731321064530749217864981827170907430733236793356666224332073974632277306560309045525806875485563705595261876775536650175225735929619083346846784022837608710928103892630444420137719189130530543875090666636639218114517809966873646729254788642761340890424360865092091256934276103403723393589886276333764505433624861760081698904684783115750568681676109063647889322905670685870028118361818633098969050740642141744015346873909310555879328667818165065204616595231968705826207517115806751753274398488875023235706040605605830052775819496605706691727415850243938218038332888386649647787149862447036024997332882215173101687075650816424140522837983168590396659980542204458058747561476108596211735521227775695857010275216119400763941655434961791283024346886909279913526573562932874796664610090615072233553835292662545431338809717254883625725077332817016589614190776607957430691233407878653292003928111115664363542298479109978656573709503408957508257215614031125173541436344761965732022922593165081354498856153724549522504377999644069919821959728931356141250684021606654713184470922907254297760122385543705223416027600742161298776459028102203296371098191766785035938281598290470984480089227608904226110784403740739779453530789146941292698325500039038136857031623367936899169946131101382175004725103248140134195821296982240171640152319923338342788489351605067469566115329458792873399865672733555229012444436039713324683281403023292967445324178326933738786325337181829206727214728939222677552643646719386506358167747102321817492655968365770538762035998875880514008674582808095629731452612627832599007592793532115707617997933317955561514792705929090367072201157394467643581152892963182349034790891271582954552849625671719700975355665450174815638314979620059882758519813493449365273901625471506517418007028348773297713106583847281103971698336807777601818473897621035749212474639418496406706727682003126397542965030881635386860907025626221343290402291783912606881176666373182162363252367103348295602978716129539388147051444943136499837558285487024994210579383264111252709281787924022601088837401129472557832595634915532869954285583483856551344034982142585655055802537774886058152530817728565674369193076161880720408657846244708002522236091588987156150357355316431962345523391086172269750875577080133857095953111371895702449867327976937364036453517828522066805092709679949353836502304481156489738889806312079552362789833046106734393899582815556525391963891251083860987358292100290563409609130050895217092441397489333202215281719981255006186896432032544800668336815868854620080244476923954289574203411450380220402287058192503359947095349364830339911924052924406498211461242321361080040916872204245263667990837023826648738337114923498250636712244267387840463986537069891014681287893951739215156592914819733771064682599646564549752547183487897306979204405155577193373530773355756260161174110770530058375950754763633038002283747068891931307483806536129936352262187875527075925152654529989566495837549068357706327919233339803336027826238642013209766135275281941702476283881710650022191332209576529406101220529707890283223371512360766682394728254937352170371983344242304013838521113789700896442311540509040831840192708992833406115721767695878670362017773019569213761682236006247392190495738919719316263695926881328949611591068490647644603840153194573301901373997149933750391019875555748708266193774060110750808552474793748287694078349880700958111751464304705693282725522599307264724102715321507046927476768594412236459816639537584716162170504614105821278543673435404582923197224816167653761369484573884845153709204163254962612296344796705614144906456671919566687906278566438365664982253593717256136699590751686705514332631040159555160198722824037443650415482579602267635732160206700775490148701992245377972588289778748267978919144677641719502653797166689055616696735107233668566289028319350179079153867380832949166814258158605650445543058311377112552881423795891453993905438460168633835350760554542433666650468692390306449010405133303062016375935384459432727315368924509490600773992407136855076160766915256518840639139398128277024100313305527252674732100215238601711950281132171893767689003841882120839294299317779754417120162206775104535671951444521982268584346106128795651695503440767462393117771583940550020174196000027448186663015310900654250121525648166687612268468368779434947000251171434355989848408712279134909290050606131508137423387477827179809644287352771018443640108034329081760403482654264194856395981813000508651685025607006368255346447526228617623921787405132590046778605472411325991492794688485448181921220677957857714215050417713102148160106434823886723396573519492188271583390647124992307989075112862468321509244869671302313625673353686055552263736868704045323463162781548693722149554864259181015041758119357402760364672070083401088142631826362601184721730203466677935974650361487304810301521672975154416017624895612580693900424684008074969957438688789336542256784669749464384391640924554636408239816678869156410411260653129764664984567905219935076054411692120134758029066334793869484978659276716890633147151635391597824331343681296944303052368932055898752541302513014695729487419750307692624545491146184080176148337590792090829209571809770613357298982142791325086539065356792115515631416370737632971110130145905717508728014842911918365161162604671783866654912959320190712480914740871740145157527972388582686641929240875580492841629629498967907222091223119250446975161558729306267708748053464901064578324881087122102927589905221991265061423476309158666924117029760682556821473601542778439299073682624533914772101592116970230024891109677212808814786398616281550337211750146351374754520895387225318083019348293444624253383131750841435195908509706676761509503631218860396214732256756799406046167764891536026647571354216215436564057554990224569705996276216013450288559259809312142798843636405849771498106283726604320915715408330161071274139247725783871911751616653559901649356757805440207966111377713946042976770569025327915058925950226378894426820754486921692622083213056277475143686494245530989668494770353642294117459577425610535768072102420502420465360616448088266996142725851113265660451340750437988719925676894117550472120445911094031364380604259091901101724555477895833098604477206009158934031497368968466407468145561449346515857295762359496685556291884922671994139741724903160141365548916213910123088433590972733577201515751244269048869411316767043100443806916968597321372221660133040402328019182397230517017187583904761639145220869765502483336117507578738755094502338892906080772230301200923223179052933788126217870467297722309194467200228515627433573616773902828057205728564018727297582279701423315448036007244287498482536962292370758437332804661770603514747965173604336146832518485358219918212134220039117263851557423100513501442988449723492836716568602807269200847995205733864052260996000383097098996028109265368489207799724520099879713926999611361676374647164287592818254032359250521265239170652123353871060725360700855513335493021052278335872605354777239289370210562423155632738247245991891134321653407937252107472150815889140371117218185102022833302626679964431197612993698331386743319666343384266127521929369721195181840453514466949060065503804904584607949975763046267770052402586009408566202279869451661449852702148803447848103412152005394656554866730894078474585708288523494765102589538715622497675880764781584553896730753665309907775266534394938623052276116535444006635571103934540952034760281550457302502057285156647791072338771100984319338917218398699109977711187751959854079984104175117175759908347726347803062352458126890970687979076370814681881955362780444092470463615780533044189642797027624445871756064752814635631748014655759061294095207868668607073880904033239871765090768822137071897841110439074219213070136447444876564876427329059053456654109080905892848810874823825784103102176731524685461297995561634972802133731998698080015155831991768981510392026116240455447720648305898037422334516753714226678116462959264841608402320019056015272665589656463066699426004080040174577944989684994754733510628532337170480337674479399351715171635559951867421463876336884369557529116128464459096256649790830288900901619718353378358380214423953210095607419199944479031172445452346129970705162446953184551367289073941977931342599779179107754338204781076945198754159102067077072967234631138396715608949444636837001328685700075066063496093751732229498963150194546607853190390756742521028817778558383891943773262383415263047580600498669317669310990703003506439802530204251701552810580366825937968326721785731167799551123192566647683415038260818794907206326934459145268847581648589467475165248924198371246619764585400384069219914375804053318172833254080343129496891973327895219082690685544699695899198462211665365004722604518408289177809340600633743991246029750357824168010575843908124002230375528411891877631577480461950168744501996560625037266952096519020520817962235442146171844178284360798966633627195893055357618351677203754615177687917678177698634683480630575849269829349406611019823115346341014249821797094221613800349207035833155599393558669693892345030941220439327811143277418040712345885294992656412550905629821928619766678373730086477228176069529897366135236705097667254605456162326055883966233475298884169476096571770873554652279568984171197791708085176468137093224732046124832974301748453698216542525581242896954295913246767898600402921991991231281163700280638584776718447491474055499261237704895165710621486514348344571319810555125347381061605935571180096180558797526044583600985014218091614394125454308862535947480670640366838265000125599281923621350130298197740165050338057169197054978353217622581817970154674917376905196663396454508971681760856511871364946976083977574918373712639720619601612788711577429741564835103420952402353992216086659375946601586924573123534803906543596108737992555709191099401983243253661187655296021404712789598751868640492804363073055073252789595349795202735848665252445300780436101629806823254144631151862715224193219990416083044205205275681345460996416842643570121021230630592297466414377518107640931426479751425739006498499854389964044012136549910987964500355762227704995179759127118094011163585901661000570050035455637488170462457200714218494065360549650750400013114276516607453624954414969193627127095365509329665620151239749546016818370954617249387298687577652405838861757216586161478577996605829840966150743808665506429377749284403695587710728085863230707693873798113499078509105981765310419516395087535876102391677350816833226730314725834491524666171139377141802948361151617641118228600446980488550700980378252592003028671787115582429563960006236828448506238652384390066777015064894787670419370538043157817303143431610217130947538566444768062789624962433675153504557967817523811321668804657105747581071426051716567021044646303883509629974658821163365496924865949186667436580255093142584350486388845471255035604109429515666552656195543304993872069119561325261254100085950908837909118411976328435903108334482605762702357413785396785909043149999673838825374797457462655364882321219110630526805942322576301136469221076770532097175813838526051144013232474784036521916480320714377218270029810320588910269149577670225461210598236860009697324655747147428506990621033404652151558498713075123866230361632650653834639668732535519072955082114803280011636653458198275998207829649524419383866784260172929350956462751452027329654641704772981306301412795445976156352500240583667557027212479213780822057946867223248578948660897172464974305757980448438768418762278354054885342374070359967235619976239967371856451765442804764734863645125782523334918170607384014966145297011845380189165877825444452590336146540665001371003609444256436390145959629769555960297383907687079324183960742569562611399540206788921279102687901390646726480240827550724726652343916850997261779424598344299907392881379471459191217537333472020690046941090143645363540372045883598849251782395664866130654052851846743852185257776202718914481689330825965126576796632022464976107378851381019261910434671866407911761938055619632681970586225066954721248672139095635698098571700003414882389069794346666581192347813412361802132520678791557821812471220972344949032674027632104277000072222583907380078471993296420161368164159062692060856593868023285108159581769722730196490678090243107887676287724093577348477731610838607332617364095242664088063698517025883098700302161425701805682038295013036337401062587225707313594039501089095658344589216303065823813644587996655267511172584421188315414972443248093665310249125814830546730263119003131766314469863624035326357597234034420761509508104392666990325364410978441903564709680144290887964740665929780125383513682240746533209571078476128561860795497470802293465994796841713540386374964542383265507453315677389716601774604624631865278344112752349632862295248584970467225413317356651961765896029043357477922170970204470935331517417904557613518393920029715951398930119137707933165400761446647779570266291173224799206525756048023444248779821618144779293875157937415071143445452304456397699347083958293141429204579630258261135757487923591939573631939204015832009031122912233985878252557233105594500610747791989507567259367799887741729422430827456975059184865386663923843342829491079478805184849572217575429668805589156762562655134419456115937334608356479752624015767044497586937952158772747620447370549698736630304900562631467182330189233295353458761977605122141924002416785470624907529604190019269586327679292010123600579399531052119375763239833040826857907884548952395956147896359096656788886329268473171831287416445905632157054368125649097261563017228273947067252341314571794458289608842326625662027013138298189134237162146515193013453068141433574962318506162139700284561298285763853053079809608963360765151458879011591242676824706453134652407690968571591028801449717713943875783377256296962994368508174544370827263854546377660887677172096877320725346595150195634849532434635097636426508817311222194473606302457331134361425282476506311283937169122822305573708708506846031307479735439655165234881466716090571141888655676550571826546312947386813945175159899098978535595718384397648447651980299145218283019368721835686970182824086367735498511773821141175194931219546146615028896276475434147716339505397373100268648747683307628893068907994565451944897376839405961161414183292084081660758527233460811665952798832688847245195635489246236045810040616668664233829704432297220498820466062934763025741104702248371307779196001451138939983269163968786670296717892300839843664328122121441276128068821689462962785515169517664484221671075415613571005969129054492371693655806980229091430618772744018851770151391875342642049708252266448533588432957413541872058436590175570238665577709908912023203142337023980002925568174587183279597008221963769786314317479453029225215825076236092234857078795372513077387128779023889951495208944805085271919945583690598529138962112191494167449587481393262696263177313247637917039978301765022335324785536128897439451481890931946374621711852675466880756215489209375684563499821737569184720139854139785982196520353447364482088797937989439631080137097086959742915954621194708646182363081864470465448504637524744067607649551800464024616115451994413082349342498612219007968831759425673278103915920644947450605456405000002438655393651369554661552456435931988701989203790958943235851703407855132004750924392946167107361621326169848705111143533541297912517974008454670124657798820084505723299798251050382160009537190391162842203730883995513016837344732962026799563172407623370636802146441327622981307485059454814977175882681484064368117738415368714345722471016399301856216023159597865290430962181608434322314638131161536461733463418601942583859753464193436769590905989763779814020900390924717156792194441123081658778459207618713485585210157667480523850042566495011482947467961403623593963498731662941648339088157030917545098059346403651998930615217341469736595506739749675526369078497862625465150279120266022108163690105820793648163471985617089156155492299769036152302372215717278445701536508099933752908388063935179961741400607783905484405093735453137130220544332105324719775901876866887493904583888020622110150847385267264785358814930412860340423764024178581761109656376188250718629655750293393187019650771527301040007871318337195138462405856932973743455746172391219945463094523698711408398176492151260491640974957396644438244875588119480055257179410466802449819160802260454828765224358848978176089281638321310720869246395962021657371581472355236900619505958289815585418235755523044504722933962028691530812568838152853970547569035428748020191890808730051846529847938148305969644339977044667725514869372327038355708136412584446097882776138112532280352090008272191103619444483911326047336818533091653780621398558046405473665832764623482316029991217706941671073271126133176493991386367075583915686335530512681131828317730855352196062343318479294569586506566651877798549498048238782774882673567413412045910236051354573303495909929829692586959686234225481850930988961601526267108447731877374515577008246862459632846452863604262448898428942252614590809855939112430856613717844935097894678938540707760840545334831648809805011668200017054985729336396956814891247821414602976613279317535646471980159616072048096420721204992384992717836193867398416248077156489071191930584349114267406333097870726543190883651249270658077340090455384622051486808575698610621329173061408362405622088605565440124648977196402909978810981202534789194561348328335151088215243589880071856555460261775013105845886854694764417088514549871405152054500353168527289172546840705889080127736033075119586068635772665489524849819451550633453079194003956150635711097404952917033974718847852773831622131137278889429390262365204796862566002853247147762231003678558861190175688344220382660872733830876475808255620035822356419816231355245388641012303563705502212270814840276728977263344468352493518565737258680775962668096192075842638748687241775270851060633770539740880108688137692968071306906664041318295073569607523440425368441880474565057281517160083474079674063214920753613209957535167068258549349051794936278019479729707038751426378522919422154762629739572403107478900073316463524876377254564180339880911590241938550347727913228243919289952944021054381066426276759064879678136870377169294197325400575397911403632803131373532565176798793021159588402649115324920283644211381270751355218311127138005590808116663735078063736107886267809729237496108096497856271792100725426084928689499422221357321430820446072543155446750701194287923935242987193239395004975611047148549180562093838516696604715524369179337036203407080677611327863112409381356417563698676701571857867817773796954848862552433305645699781573656524569480714124417012828647604083471974358204237477823266481742650111777547016137306940234859394409074367210980949238964166227078436338601389183004522528832902436227833072518705336303825598813821926305149074307955555215621733313359629746308067720381788267245226543171079531324079806524923535895222092833410960313134410045642272655218168780825900472815203765818820811227501158072916450498270200785939119268106988052609168556188624176713497268919215973095303305362909893486417381370019007286888255831979464372950365381368389686230145370457731566334283175555075588441752709820275244048657393785726935118313428396247513696840005044640533965120314658379293342244415540531258911794406725850176571724773542522597614730065212426095092759269393816952322306376021027266338097263368827304629860386100329166407703265325456336931348546630314627102682439485090885144520273604859848649640512466334711323328835632164362372704049269191231977313778973702367423109907683094446360964492824336373237060781322593458870017874194695989462895170686779022295988035462089732844364975922897106144933088758186451612972049289099219034024716947473457805169562451430380999408731147390546554053737885982073619130088805754122209070677585032475154892207910683014531252188878995710463627493564694890708153017503550012057143767253057829037744172793882443107549743237677127931976539716722775809671647838412512747816053074662380716993339564442245673707039193163005072601350330783506165280779743514646761648978185741811058292173720972016989536561841015298538402896344425455459123353240288643893323388553237518862439566924109585073936130333610863664960695066573362972313111886470691462204376576792295424244308261119021796297590452109004462994530364070248903891825761701096699031450709533604868000815424291445457460514142838137019931480786353824150445702519159055839056824941821004087036771879628017816092907347204508180860135033059163134522822413426165808182947243263063039077304956035377199477875237901752606316421513173397521987727525299406584116785597105118311872082795255667086444113339999781251493938633230422685242481055751608120000194298568349106557358170497497435669884572861617915284963974277655223931072922939025382077529400626904143086182569796111247423230756974549272391900478795613426631467338144202100655352301217094200602109202377522653550741809714808141736350577391003542939624454598569807007510387259574767091596027758605800174155504773223336405124483322642865119159359697150871382037034034003988011864051139193122844880938634179958129762723389872925158456452208517423348062850319456114391810765190548839132884990558708389504287411439138552253580027588190087899409830659806433337607520789840181918597348871274052739952733090402830083509980515875371433347060368884193064163191309515477649771394132723482474436243155579932405408551299878881687179106343458662323858060434821890702185826606963040284489285613943044007160311627070848945669555127498036444686664312175588339726529978174142316343197790921609831618681469271338658545805823258787233229610187295045128266477655466920950075229277351735407093304106004236269310282281056122835604443240864793680818154786648770530453704697302540986607027488353461302409501229774721256010097673398473187948504001479814998528058411670622772070540677986691997726639849679220715724956261283808686662885261598206593637132167248082746564540383049365992792361338378012143675434133649451545663567130732236388264660789798594792620235876961431630737706000315938537141689735685195369135328508445961133910604888832784820749881386485084949868850246158185560702762536840575438991360669597215401942742770098484922453744781966232752472012445762866234383002484520476172653273645587978806111869361793259340854340408074543767581361027082413906916182356983490172044151790940740579432717506887086219368689551349309925657938946184409349879453508788531728754508406294121391013884516485395632217615460021939828979252590747041292854702299796724153589001562820214179911958688360732632753881469322733394403473112356329354430977853243916079384110148653316658474801776925195980627076305104313702361181473489284099485789127148672139837991373173588131263371525064065353278748133200786319461969949245185239845069885549043496382743474633804778248110169488564039319582525218817968229458269132856361526113790272783997484360074064366008075910207523004038231585927923932984502515001407471710038525002998948071150869600919466749127637587317929153294032721649055936591472162176637887733301960589432869915185250468401791996289325346357146710158276697316097699161267024029012939149722904512379738368878335760250447572250397133603086436343327069593509354604529446656580919892661582604617391194219933066933994265808134135987644376647769454515396048403855810021954115424252987872852731677189766585733838428767807195604245871504086524254078956843738074722799917099705227963819642944136000668184929792509199705257759313894807317965414840477127105523757873937012091394723705994156535348554719190129567440860127381116607595959245615399303240913920647266390880853112176547658525009439565894441214244659795864334689845865726993751604264142061960780080432472914244915642679345010782684756067204354279451124255914342722649357786531276866017707178403762566214298454541340115942603808288556693786223671785938891976869188096333759758275113771942496146238180299783052706833670923479897104251956565691442643113385610041970200872835260262306635580033133845962876449173995042609326494888994250039946208836161583795173555882196591455261883392967645675286842534582443115620670219979041285764614497444659967171310412686868908649772356454518827102970280867486899786926645164006357162014830047662208452306558089148586719311356905235628231998393043321815906359242033392641125603187740085601851982806136643348703533725932730551674469575452034248473895869336571925946330182793846408112366313069921437137050508385227803479214707207290611949260799017540107043253706915672956570524163770747202939674740119520708627849253530937626680721062238885709914633643998661686686451310010971429557538280598386847122083681577658466109993617245509606779191186689605523024672849487904873428391189268445628760946040261144220872826704348746918936873574379473270814633372766757208055885975547685036256729272719978811911379003577491902462988138172222029216942809977609957170439706579744805323389425755726302588772855482925922992594029800487710121382540006664294077657284661558268793771509010240234197565688066770331569684199375915202690439299846791927246041518903881154678054210516759926092533762016128626242400882102961964928943809583951743158356512270916909277475460060034750826682159790389173921103341365146255661284370308847730144913272771631040598406653321634101018506440396529600204831265961154155313805478552735172166154924008611812146143019005861715274809435921802924398338339409893660273899847124688589872629173892592314423217514431971593507617337164338455106972897434294350260189726589642711759640993598240845091921836627352779667008263383928468167444978940654550383899081159449034834703292427271682214208646818752110379082532958075919315106188269548598413349746644916873221389246258225840033438092454560976724250971716239448106080480318463572046403097890510992704164952594683617565833533788411316337515376792472216602294228188400277920571831634521939382936884316719641238121920923582055241641818866769624976157822342740026032126705470703575250984900574890180615411438266263195410691730666305230525736909841387832765670489026232684149690842777321793692035765025741900032087956594171832759131952117921515198743432998462781166970280093540250969952394967926708528940598332989245996433662577864808600217003744962882369716315326983422149099711928334908580855902923614309173303153067419314171675921439272343135797767926088411290641061982977676888342813047409567242165823927542577997525631965225365022923136389510663185070214826353687773744756603181774896574939180192479852005497825912377788450334452395263589610375981888411590932702941400544739297886741007467680450116917980834256435280057296123233603949038492084405078427863215347741978390060244817893896819161086294495988394419863997627993373325128681529504655773761950641276406777607776909019648821997010946107372254998275565415959644622560413973304703332475577880914822405410666576422763737530054617978026400113431646662910979858998950620879973741209637231281482047868361894508403069296927300609801916211299080896361042225652903673109726276709239427811804139850653877891111171168083216955370771588392520755560988736640904091528756238053155918084143191775748908668509339245306962655833492920530512233889416434773626552519216752773703384498334672822625102039148127150299534880484179500262531548199461159401907548459418802057091793846706468589898772710873123384596847293774255257802803414086557528072341928924915447603825896901984356666129829492489805184650919820377019891285663725823719567210930279198871155029054182214500890196987720971462778749970739370472198780778135545902308410627937281924243886544074728985857836195566629765375885985097147958552298225602827958871527523018325529041523878089765845909693937102614933344853426080384783948619043757189225656407435459153689673936944297819537378238609098277288526893461709190993957200266069395939764640559580298059675489920827001471371647780716667633789237438914504179539844081646919076709027084401472420954607535766817458758358505789360774134462222601021311768032357339281229592227077440226233218647032212707112589710785791429439277496965567033678431474338701801910255785197928002960674629282587487294093403539804808872034006295778748324852834134143448424065852963455675853075474266418307115446076752316018444938354713095070093421125989207202331945076890174286852500727547951986452990374650787523936530633625102310785383420954097603004495564474891716108368732773985643649717154127427396022115864268248746740341720551055913476144172292890992832425880565662889307441055527897671630426754002377844471897440769394487918204159134724429162744277298694304540610242205075005428037192524102367845355984374092758095322817486226142425011017455201145494955094015455078784217362892441539878347912385940751289942251689976319218766880775536940351644973425086688497342378270323458907274715954408703217025300857637134942877796194577731349857942045303829289164793661382887302728440359434534978095465693593269472177223867209435377758426952047482731435817087078235326315758447154778173564388232730882400285698636389547539499416506500433355706572811183443975730772538654138472893082723508988258904879611695020666330038987181150539571056980427817753072618594114569794983221995489787153666634464087968200943347309411521998640050707436087137398864524909215877126666624961460033741257041835292774181054679568013105256716371685941501427165224819274259328444581080461527957299788411308074279285091054966031112684013076959971519595041795540524915670567142076496845545721892756548019051711492466660316675276313816292138380916311099095275787613295588042955749023015008483517576358065213962995471521583549839460191334249662533650035828777622557999870378807642803384427728624322666714125896510483604613165935252470801213573890256724294269142212714935724496681060569262581751837233877575334353515267365358124096805225807350495052630913046330723526927194946664930259836612769168243461761613950891018750914600025562651924285063413869561302982536075577611341217216820640544147693588377449117344982082968596035856874984965560373164233529530892779788514361551711363454124209765671646454433330084865203987973600165844251903426948989156644431532127141807826162631924641676508851444544418229730435987217123131234931041668794643583009716528545260698475595602579565959483309395441010566301671659354836422359484835704637177026870030521682149851095369050527888765000193278869546549941357439905539158197151473344055244799633089698281649242199311046483563372560566848815964792090693818197674325242389907406431603509565376568738285803626000900243637004677199303833505075275844584771979276066136713230726049071229246853897879116724441815984888497822786589430754457951223402718658435809676419237755837811442748838915855557629921325554150689992850896140046141333235216583444826478995953451781781480806781266530842637941380968570468357246111468387914283121904641654320992144854051368054457713321743022259722257926770428913667254797688964583658851157825502645536755117208381761768811909291736468792589798971334105183029368719193054277249503247989355942947268532455921440579722227611814555191278305254099459999764205154828868017465506599714600537762493960944266183356961164155043257060439115937275190729269162823654292796613643314714825315948855365866170259574438565311133742387886831890027478151857640149219903556424105813148664280771956382939148029082851146318150231630772075033724633314805175428562654495367663007359606355297964650187470116726930181104525800920131530181422161242769174658219031084150660533876386810061924540588383717048541557774912258506009483832058588863824293765682636862342355928139477240071242871097076220325345313395550219729266361542301971504609912443730705873291270887486079135148397100460015425467827266063461887702493768361631707915129768297568650054098192779740526816385754672245089485703395089849947033385102101434039442123254819888886272587830746010458877009371259383506024134458203917656033114608908088596866277179262719742348317362999473497829535236685751529919471557716399137780630344749788070762877012479840172113507323216770113312891624289256260880975932561940295747082231316463501786007860032188382580666839691942734336202881055737914983293506798379535133359291540638923790976628116073336855025631241222787864911397764914607682632746444480221194917523335170588697840901977382560155286963255202178533129353230168696336342197931277739824600332361239230201055252806162845939530435479534560100423632122044169040416484472777813259587949906797734995240193788124998168692345826455893982004920889080936236234460343515155426307481091585750721920284209269465680974094060607311438757762086172640695840297554107024576241851370930066992688867381451812108011955035303005525584805412127591318422993954658077720883988263396734701265072109540940272802861466855917965719901649787454952381786276779842034335816466269937590002927293771461665311724284542929348566510840275585965866385504834082582528036109284927396226115111451537061742897557715631166473856811262683553806949663232081610949307511586265644329232914294177128333542612832645768441598997723005600796981420438413451149347122548464700103079307115353178269829525399637536026617507812197842165747435853454508864359699484944438943419523714802595640184658247578798886380355328273172747085818638514095760146169141495882727709523223069162055374164461216882000356672060297069243611931687053000586708660391599880942232689628343546114231698076596207380758615654837443578987535187697733276928475366836298935963844273368785702219815255581366761491914757314074644860836282793420141417833861950377939686885202742511523377955244425195085250530328016235792467879016686087742550908711219366144232346731965470726879486521665650427258501687407493868137904897241251120148038108835760083213416350908310638370432546775955179030937833079520682779701027386843383685117888275266211014060386968203343903179596125123092314007709216849744778369006724067406115371762887544354293292534311676888632843641445833941183761599865906270710403938753023965046307002625359349436912121241730654659183119147361573293663321557069254605847377685201087713378210560206022053841103156180174268034193229307503531361071245374597493267030123339472271044566293623011590575312209020016729041692395554854847846356112218246206746741251788491164466116022788055796250061168868832416117581163857878460270552823970247587694693677387996519385310230561369019648625590547142016826178367109157659356048791498763989678149248122584738690990948905319642862039123126255258275513292108822361210482316226680760123551015214280287841813745069560303487093821759301808435219964452192009201767721325022231692930651718453886597480070614597217503605458744824375475348360209527058797460513580217180754805654281823107950246222707644362764034871985992974848252531953161116890167659408692486019841504903747350069273894571004028728133298081081034031505008611277685033017148712939490997033282993838001179653298085939880762005704458838374470711653335460976283154636773473183179608230451719343758347104168023482802933123615441591702680758189587985013760197046305094826888015424590619016337433810073220232533923149367318673419300607049517409121481551274843112008445208280457100450110026177306813547031216650820032723339925069517711986123594775991177228870391031596007693636015713615516496074323845854991377909695147038581389716220863430767235327723703259993799077432605739787684712346461701427931641300205468898147245519461529741559607318490568201559642673310116541146329842629699964267137612520281620544223569465848452755939209207974168233615629736476452501531935371379891120424760438750702845777839882152148469825456661271757284937802666567898029778230088098972927233851881681167965511877213744712769960055876037153403207325150548063373950222707102806641050500998581628875692272692616998387169410040958871654508729299425280560531118429363773377892296308060035876975968775996431068513735630036691801865823733706956177685269071267775525342714187669322162563805722143305596320900243126030500266915611866797222569513035600491464639886385180952206266378562368778660974224615216825217856986743547505814267617108618447756771899666185519815043563484463774958026288922711525312521570640517684625604118751185052489633116241643069823706445807515782198612700912741294915454825492982814441737578986624373510477525402317568611237765146868967423739929767463534389975935406782054026918886457093987277741703928918022097658635756020753362389979257210554170878690996723158501416722714241654647339402302246586037166813802121770034599338051139159213394787926036051185832308395803979314615565903275937935975723274023598219262114402714054226831673363023586837508899175786070282227623237197883355734261215119799230703085391617841595954991630152431648966984814254817723263169621180051547926159337127859354390831390417748069760248828587229490713213506561801262443508348100112038749650639016549127039601575213228713580404892101040049293946761919931047452323264979720771848546144710293693496092344949626859413246354040590839050573490923866152677451773181153243828531597201408090469207667423284973687502397154644676016947818271894470138879021034201975489485505023080933884226517546014327094254804553174165360648668214457562095479025990400311257975018957914075139156608360029441460450590980046917816106492113033803086116573919424032266961203202007032886714251521722332784513071825288698489547735345439810886343387103487141046007513528366725496453469355832886214398651539615645309866595689766455496556802396657194731777185870108643666887033574020480770151319533454054872058416074204716237579754996175104839652758060422994686556588877883516795767558506454590859659252165533881629401270273868459153094376456158054370864225608763877903596631429903310586947144071428799061436616165585440715506166708801855293268900603391839868595945113850546058806375300607611784849972936671289294783133950636126429484786390552595634687904826447898739263032694110570307403574145837899178014600637284200691180379782498878964246142200974525074737029239858344975319194363649812358352997155165167616306274346846965709378912868774638792501630012091763765304480040526169732469375444709690192997035275922794365197304992004456879068900866409954819626645366991536113109173451533069741746056628994924059749777099184304936086029108478043615161035842947041086630623708418013688341704591762493288024891968629081570580955081696049970302181561430602619540005404254344154469173274117855960011103620963790090510395819413439786674481916614076875976835917337512837004629443555077440257166923537995430834750302606173432291492112300765181335956260417854884389970457746570230314511667699681399088057460589580105675861496474294449630779128832457067626286270353976248522677279615541265509157396139199101092121980988848473515591626752316657895360642514236015737588902657108096581747840574924861388604836008256558230874431278077242388628731063146646959016633231277202163947453740527026702984238508730668490824823837889319547455551593401383376947146314927063398529178886279170402992856664633066379602104283601252181808093962433187359809745233700644871489867331799901933771231289591886752432023928009671584216973440919365892561192210467787083588225262146718939537368010004137546284354188944934718465574657751263036863827024414454967738546980658400010442819895784736061797532958095089555777084355731953004878682684348126640683944724632225651520928479258430415555078022930895653150880882931734575445334976321217586226756241839624190024091304348225757416817340305562942105542877017254801438898376163885152846770556095792978120529069352551585681029722749869404900056716907761884925980281293413228262438240038276640673383545410393192399123291440694429839305264213162533796398241743798778023121785793560361198769945568379607463412089548088852302886896113235400553344155127396127342586443894981838712596936249773449204909898230510461004855416470180979847446072264222204820662054055408978490760499032924660998878574154811129135309566944522909797747835425131098597771265674039148371978124960816546957934074942004410750902291387185980287967601578233319184628299486536119795755946615096721543448200454208286442053661456852531333703936560633746742731435534146576134788708796429108207075986519606922143741045507831298154738006070234232229563741486816702818102637729696664822490587347581467251405772978261474644959655776531477388404045093884572128753405636419708096720577644986153193692351580371516066278282003106170746256827363853743585361792428710478343515119584070470051461735361084991120652495439260906796000569437696358272692645611917122491669279456157800538469864911575650281437504615973815557352356678298698250566953712457338970260892087678990812823187996645192783024439008701015386892955775973450537209968565848696936826200787362430779126447334754897830071478656770975364059515372961016155312003850256033644575935175861311245535125536830715969069554176468398489922230502787640740056929075696379939065697752499053191826127847132123868191194309851496461368047937406917285605093351591763398484955744424800365360410930046180514274468202416379418332527032123389155896335174636815362493979046481644564768773850453732207430543868268000939728491358402041400037021426643671590684408536529280199177512593552838288195172335167012797357960263166134232111930730791486599183377769145473977975671942122716290774333046376968900213014372051551571933063051689083906808162217541524567172589773808788733407956603095538038161065857450403658375455605857910362383032523365232860447086895192129751344677804325983676011677684661970069793568328865723057367352057277027938562704505732054072966566129174419762271441032173456704703208604937568373422242548876308724197835668397755126274655305136745593818935203673289357118615612467175304673072828063994484833738246400148250214429587150259797063606487585560671280379284143845855327865006529998582356109491141313980800974546854152049053055691907738548107087275354889337096175670583966736020799578719970153967824078739464869925187706055064551081020304930892355091535058282771981424495001918490571121368446214502597861086364123573491537212445080169535017504689194369963613104713530796324066089090229104453069762140201409310751276303698641591665542092324578804868637707227429969518730955025193685504886463399188831839533734962543478833231647714083853498312821351868917901475435295066903903068074397775720467398115687779036195623956000660899819098774163336814321526527504965496468703509474718092703494858068898888754221319410118839739185478730623774260691408321004497283073544273506676071604090158781364498887619175939594227093881878672821531960508952724310494757234601153351532004888691706797286054398982270977227046565283952328447636672503661534354479237911831022310888629240944339235809683045494833540185401597055350262597866266885949703674985152615572206722486404298763322191626639097137615354040060372318865831700148068038839385349433533485217589685938742814865456171936129077011161161266343672190823354928572731881073860026034320986718168301361898705973932238489900819136337260037864579491912162684134384073847470862299075211630565694392995835219088891646066179633764722464784306578230221345378425812632210634608884193055709643214092881132930119789925761250422906841829367408913355098370690111583758186620627315709979922144813421008006827793981246955021955669738305582928380635079965257612405941346415201182240031924367658593380411560882805961201687657270787519727431822155737605734699803274526038793931795878988496272571929220840028224693440582671058936385877258898974982253389742819489145020645694928694747485152672189750006289335686975466043821018588611920190258463274066685545103473112648612978711401607172857482068958260368209200254555405290090732792512931130589207952492067521287574598031871832149863136874573704445432184923922759338918211529288818331687333109897359105581262338988191942271315887595877392115714767329397174297763601687712981113835761843909148807865121426610073233422216556563753038348188973278491097485101897953120544825251376234371342696933683300140623048994965047681100775075146030062828171595918241236029539833956310153766966536883894685824570652380574456450907047615472038792378464884457113443847446127061750773908674342000216881819473738048875136673535411825079603531420580990842135870584297719582028897569643611276777921941201103031009161560299478720804931655483012461057468589455450869513243976383829809228022849533459240514129318757160038717359593132389262316818751010768758812108550725395825216789425920825643619972344694310379253837737323659907771823545305129776781692589721550292218766730431848457587088002907131260141299766256089129105333633779286666912703825672281215994048868998608033082344623660934642334454245041689857534107195127091196937058875787931215001024574483408925529627993369063950558578920443933852205741664968531000879209508380477504603612765677285961991265836232083895333057408705451603338377414201689672053974457123790725342345834013857066400360260325617509513511989058726875589222655789737295760099709709885368730070929879694375972260743451483837796697579240171053359664511014789694925469011633279499536546323610295316325226268807824954229029720818851088332390805990650968718781081480762918578210407471141998899586430102809344497247430688052463325585504317957859012720240711217450492244270032818304630358936369346455897305870580978039731559644400242453830392054806343131060337377722474145846158190308423072740304887822343453411198600678681091641839305441599413406278488677100545828482963685142554741488276224964829672742692744871197137855699011116733605550438011324146777196418915663696851850865458744603280378270388027494638902752979937557596679784221291917706906060280799470303555882156290453663634395433318197541865650740550478973163024566161592740481458733361475347334936986551614384029369481703939853059880691096651234681422555230434022482437967975209681068481877922157017308683162432142127973237940525134464464473196416488683329199891311536656809411162059282401919258995439164122421734038048288495245773396950941289778439446170681233809811800686536374038061121361537661335792503028634831330132574627503546958561619397481654730884057256297338998246196566397809030885002823317147529479750809420560791673057408597032286165957868846792032401594132298231360783432945373327709217519121800916604798101077096530746829072804170199627245656398332388915087186431077603976958326173216617046062317684205948496832963588577996008756654297565341237517918682035387767488406008378563861028010658142562952659720645734336422618768170527690301868235305899565927699010053397105577692946630335576975776440440915639389645926462893768673912568197045459000212352322053040066681220204586889246115619186752140177362692271665536370885209877947619663078523647804354859549374888681503683903292898695857197893080383821725922405038897668845057785999386721425665958058223465949733732971356667287807173044547021653882618384564378726214994514684799330810946969089073015805146556834292834168062576437328681795253287806894070101373889365250175414665277786276621914586741575894239346656375285284931067922295900828839370838161110238750478610602106104329609556704681664590288768914863221386006227935547767521935049678691816477575629840139596221615491030680568934847994306020466513836402611210293370956568613280417403928124765404985369517275021730835613444568619559384429403020602143306430345578711965945100426507495377537036819850534407497735120623556501452666876996982427287963390286863332447741990875036614032782534823502753397874893464161060491221428311187419915362677966643093503549096180668756128945031725901287180458095515647065129786794764758112668756806154311455344546883850630295410294218895543194321827949107316685888614690945538914938114820509995196826494117008329629324411378835416448513336680321072723739159660432175886331215691595054486075772380896101030521405453575683726897715873719209310750732503075295949958262815750689708864606161721330851354016285575174409972017944229662333476277656795360655619614614242775850599254023919845048774601969098231649793910663754260885689818808970935923844740546548667913831602137029180653803678367662758241783990497082821386436643028738873100686861459142770391075337022695181012568933567412882405315771310228861890796895640326717308836158778639334469443019414993165152952315500507153382516644138821521344455795249354793224954965845904312586481941626026399103182178568917694522252610948386448730871189830542799502368678961931340277523819143150226534461413129832980153361292329043100800552822173788486580872897899333773742395814313319412531865133060832530616193803375111723413293472181024717721061036350800069621289752455686516986910569815337624772278069407372611680791897567386711319039564327757477725419770383285539308490009487412956709107376740931842526070313268617494366532512393712361866308635478190901238919768718596693614828559040503434000420231015722447390119640727406169164376827956968464138663034304604913109984659661210362712496836979378444127903680922861820197421232389946914075916294947236157130051808561475696857099772618472905628814060077979001696158114200417104381626218408664631181911336126958181562625220704577722546728165426652383478879438905539767461924246242463875840746583215752842748746691571411124070013765676561721634105640724153793397067417760938396064898511319475012429483273156177353938110355411774927954252203847798491524135606641453146706504467701213595962046716925725444115162324787830323308956386894387082078868051806225575059321513998112710680957658536974639704398081590572145903424488806310428242886106728480589289470230314019571867979707231171392437841900807518495844367857210328356662885851172810943144222779531367742832337350404512199512096067458653604081955384681450597440407800951814619173164819859934452349808219658158154011942165109275147833842665527127456449786124245644621740606371641510134896018603135612617183969364808085372547089187716113080966790827275511720211913145991652186141134528688031873289226845507567598511455459088566250722548870080807105378584642395508184035657143274902208666384904896526803752047945618823791698824273916297209931089078370809056440724259874208580594935200118407896276304551598510667749325065074939612984239487434011912014885129029801527984922471807492561434414344481681968728668024496700469785730200935959498152054257399369934644574012105509636355031947735799235268560560728053968665552845464624650979642771877329110213831453504998354577654881467715415071508500630701175148157750584181794173974095866500953184937518580127757086619039221597335207336490368275500523640029410398656147068738649107289056763227766926159149726737030843265051277573709021937966801882285869034297515850881192750027784275171411785738969448959077664880888326862833038626420358392404712663642621602787535276131511746589655014877668301402892853936357657276472415954973360704535597090609707587316933423240708314263253173727504059352360261456896362186532896546207658675617649629635976652054556009867371111477199350280420894061199498898607982715548835480065024265243455181739844101505329779300485927825263919075005184279663763328388099994930694012933735117708172142926975242098136089742770122229789371862220402442234050710526536514229675016786066055059937516330597313033413700523248024528564404715629561228856976877390788764394409757410929297621415305965408516131833941155167832835553450469168319942881089504953342671643113073839517433530600683600989859708393032919321727316897876274078912782129134129908974945142196644253040008856484374780522101455328270600996206106174254869194205696905776626321775299776678501209603383525563522888186571403537775662037371323231018566072015889844766782155507901052649095534631217111072181584648460584700210289622874076502883943282287202923244570213600913251960320491233143372415416385170699413750124915581996789957792675722950762743320498098298552015142736937983854105084277015628117296986504019655780719775775325772810162639992139361790827085820522631667336889344029482472454360600535290413896996229318176068412443883615684037398106203751880987571302310518846658317183212149009448645689028078042181785891614832678590730913219403362983781475208894405733204461589360842236879611111415758861229835658593046776974569073417701552142750528229248463568745783645444952681868628814897924932436204249429712253068819041915526022198137768640327572208577938849759015055653488036443051872150115844042592782998918740242150314982005914364072478928244440979129425818909072149965864399354851115905955504250239287444785800380814453675974247644348075306696354428030385839252507581337884631064422912946932699117394667421180134549831577621837754603425714862260353812457488804185762145972721110498898547967821662082402723602111346025283982396789167712274633685266349211185651368478339868573760430479879853923524040571268687052013960109510593644169030286118311626648485428497811839637311204690640600884440674763228856103322597111645222033418647059663971112402273574297809376136486368874051982747607071105100263618865536980253467991832119952333683420693634127468981112676502474390653019575663333678560502027500967927199847459305094759641987492676868837218809831459785865681101648089939918651137326011139996476516477025331707052304288209449564683738834236832421650500904853789602892069440171950582521662504644644248475907151803944153736192502135395822505421103807904783185138593560750465343420658548067747080247556607696705477524499761109930388299985119501860177837664004582990694659736655711581565380513950914642776549288437401508724185598003956434993300444107653841927824988950740997122054561271944614801277681882770616392748585026967454677571692667181836743121924278483907318528685491707308077859538593964526432005620326514819102737403192867403592505721818609663485009288569785939631688425276475029456605940016835077795502661116771551986989785153528592123139497343750860818061546551097657310949571723722029734538003161548699802622853145027830597907657761951261292107268853880258204492472747606408774297935279717372314692106446427266597362634594549660817023022685207840605983412851891003353265966687272212814138361023645574385523609078722082743133691913957714020292687019980409331253914303751450164105780007092461554339803792437896894340714426720383748102991330103630314805144515208643927763782101063543568858377805091753757055957708057834281676546956458951206357629051529745817006687649008016032488224248991037374436180892873024980106674741026942468625627261378285150210984377041254161069357473557808948779665940512676361240741265587443156064283318653726468321176202196200906010654314344370247192575070179217854242624394022076572131065386808528117170496845222921014438523874102728079790678205328624210723584452396239491281978877598589938914754510444440837754855291280264028460504121070264403755497137484703292446933005237329254354940775328602254856820932275673491683459106211696200117406760179880638780288209713492243326152858935372320296588836530585903969032840879751679586082812820772379111913805205065034543325288740087508912619133365636362507532631736376584587592071670741376239092843445242484206160579197605734717176933810275046893715146099714882651049801079671125381258300659900879855193329934398190490207491493965254125432303805921133045788473119867692005399850138005000025734990529277202190040996970493725649421664201471630702978472000656706641297990636190045323042124832343721505172280251146011900355260596357817683915209390458440154873988892235816439576699580582507748859628349395495939401133664890203108416186244967905250596306150949601073915376708814557332113673604292242801743937262657128284878254816385421621057036173335289316904434749456973418406544259228804080817578805168124570031203347202336102976373422163971155732893429505553095308712881651155535305551077028320079283757597242597016837855309810376601908646954209045551406289955398232801223087642688674282586462765189027479186376499732182815294167231894963874235485153256401924883491171725731948290085263220667778517991563996417593911417188996716394309402518806169374005360183162749350637177404371035543182405786435360017660780612136281153313437017546030428941150261004512175058626924937752360791722897951308999840456965212140301773302390216663993610310283895809875647992065538099475062343828162343365897510578591017813497917505243621148197168396409913754782978073671595981347182839855901449441639830960221393246167480398319692066128327309305648201120866952240866347823806615506269513176770243551768067266511922904529534921496925552636231966222376786261430529804371082587381629564969162668988535357823171052506361840182957243665863887440637835623854940470102227301355782131642945670008641394514587399035679975257185737861166863541629881921123380230614883948719608466509547121316946572890416771099981129753242454889814267990137915656239721111645360745116138715126577590572045923605893600104296589427897384023303291912432291100394202885211159018844718886005294870560398632600331117147948602289101714667099999599967471002381079871660531609392654545589363639844255191580089845910479072224754205191081122778307139335252761169894038936258649602067134338365939453724127532861954554183792922712868296995498672109006492911917861694978697195529794940432001722763793009213664530405188739280293638336960835078638067241202286883105497194526937639838802854793515578550396950456681018954856589186254993775711254075216458847037813186672264045446431398948723429096477803339830794068002613699835753297475555932972700198075430024453421552751250698248254512270519566280691131796517440010191585452098310030238000815359539692758585345746221565724673362660286954583573789598653902756507684716018367018953856862606777077856162937813010317527355678301756575879890348467891268860114926151611681105004704403342096465355869945774104640285677803476318672352772437830263640373966654764876642728634263825153989648729467466923808057033105386802030351308311634581985497869372574130464433760083145741447271272403137855735461675806769935614352050061316486994151536482180108197188416253013172361675126885326837480117404834727068041481456462534362607807721371876080625366347556636635858126322031240123011722994718447240386678184442558850062153220660146625163219290444513098247162027752034551860865402627976194062102772801118736516570784832842913260533834727626852229153119883877467066928553344002047144547858284863225495558765420770867835328031482143570266246338509657991892270824914312028252290706358595923474593246499972987129847163679419052143464327199656244253260924032149921207824809049947626129290618768433039459201397569540479402140494575179378538531034492191328764896097417039564101617529496111879881016984469200765402998264211630820531492660171416529561098151034991857409184409446868503480243216404616053702267489614956026536909793193254910221187781338174347513045293209471969546847510445485536787240100369824634054670577844079030073843513500370429847325787702463313626127219144397987200611676932496887671719506886100873571560769133648041967711332091862666922478567703955825001305832733311526277438149380986220159313997389763568905799821558687293953367187218867364794534047998784844556725839004307960633826013562361161706219272921088418441311768147106116985274609676415344356430566036213989558402122342604781061083395143857659900117676503569941795943200355306413242259355039159850910497070676327999673085713166778209515740550743183802636005652764411618997797049202348179442545992829990829348625616323360642680515413662622589852069624768512628941698223517518974692773239758246296042692974631276970956361916645115215842070382901449887801395529742036601138516561135386095378757657161089782087126956458908604267295530590824397401818018396067739492898280062459919628822310971390938287218319333216070480485889976214133188939544480139904508670723098551828242255170598747026509433081175833829904556643069841983388671048640428414374305683074338416918194237759666900450842384844965327437187564346021877480673605363868156072632672388640864637211474133736244561669574406442245068774739654232400342819519981861377932015654328683132174583850563023414848795276891129426428330188739973702250448403662036488225441952106821287782358088489182245942196069282184387497236817341700791996210678726510963517581881010295106542441059770014584027025769941242717693117747671031771450159069637309252163256353430832163607933377348437821934186258167864075044126839283361000397764941129363882368506979200128391658727708008411362657033875946916013282520241543709473125357764820307799600198284469182619577177569054625524739502887322255796218234365673032323717820182802037686085258974201693969204492928895618719487000888524438566953993597090636627822641611280645051635720079971190548105252224845899818680228917607623377714895550364046885694056007438417125500814146517529516933686740499155606905389504674616960684293428895608433361324702432404673279763827824495663875720627958839352994003547168583358268951333580822760740716607834022760462475711937620723241615550681024558335800735019473355168684099333613335500677186347959128721545137639105640258857261929116673969691649748149811719936370761559534088390915909323834574303799366725209761646151980029331570770997273011376857423842542546209815429953432630573374788734991440165873868533283648863408429369340130377768867366678632332551535782656084454273616492084599073377029936522689571690066189575709668720637593419364493069100928645103576081354491627822689270360921504938697672625694205598394556575805681352311010319320609134927410392477441735008312860179416572788681051919629753820033618627055374959516861365270222218964369294216968718831148260530883566226649525815435072957665370317779976059084742824274409649584430364953848688002682091916684545239412566751325609878045863961972658260201198933863837268717080954687172038808401147225075831407718867679867543363778120426054437654617082730987971890376053917913319712713661949303457276677665259602537181152741658464899996621541848001225303460340308643774073932893994275725341696399487502899545349881268534357630389605049206088412151869216651019177425855535611120512324843421488103492171457985610082477633580280581047433853779721417181069134603897517946177914036941301369779485340904387851291361945288896508236258958950900032848683004122474752842369067653576796983325450154806141840600979482156221757430114563048060137491209732924975658917338800236733952303358537717112934998904893672522879105924481912723073561606635938633881935984253190176963448122746369992120112137071777905156848920453514170689065917091174895221350993233900058474705574791550014605173444796314091215070193714670887531321586023509725873608781170799382829997405057164761519365154443378802310575482711276648435556710874789359643391123562484568503312872938593212846291393925718358735040472489543008629747626485498357123643224697544759279856694165698089653608732028061652133692680154490745384655383621817109721592039782663559276913619803219973729066310462802379941028131514667071186071518394934013874568158198833414354690790899425809180426594230735697403865652068506068212140444762905721881171672072652602517907383517229416251183113541025983257537417131754494967811367649440614489446274922558121394931121233736637475859451151922910664883986446130936785051278185871279480270783218881203707296176216824679133525645108494457345880479404461786072856192799281350732317930269945947188223761758033724783524279533123773032756814576220612359609007890389519877413588977907613376275885518203746150466355768435482846154022725370266271261608921180682262413774897712781779230769712907251687369895942921039504913194333739463011290739368877678194872072440337903623769109754701594539949317273278374624761607101878664249958761925109675580599064598777107188805756412897256288949187192631260972055916598711796732405965267393578548015723532124853272952087526451055970880147177680831801475996197465773928316662100134569999100180744337888139697371737429198401171567552849188307839507272121708881944809896485780895344907899670006873281996078738673474694696483431134397588382467008780763113396779519455149866040252168587918545852365200071718537825727400308273995647444868124835371698285834523113510069352438612789332079005231032431006153359685764609019905754188201622636636093045009389651235074467605796561210658934290623177358724067521508000588831813366848119620469688833814398065914276297871469397369736903877671827061385358479433248991459281375076050172513515494019690169143820808214949341643140722932078368099760962784575816416920946633637656966077810990482515722998311152070469473978622596388938189962147399333253159955159201331962572313788783219893488076153740433971939626954774079931154194199735600274531257550558300907821751383842201938260600296378912148475708670770813227105392603622269964014067351517505193761007055386321527163954679944500000722108583434976745368250438947920478602820437608916442433904366754054950677758510004735137633769875213073496835751764134771304385746820889146360878101564990681828671250608992873269992239920572981173013673450180247274977000297679641782926094689302637936670622416584876427682046480066628779071462241720384813672980667962305536201413873553043011248751464762159841533576967573959968872245166558967401651414322257905338500087443624709715468609974633453861651445727789433942831440748324676943155559694422174146731623448960847501336410041033955044720258894382049372499019526993908874533145281921410548619712483512270981777054905879379153342172230374069989469769320164405656504466908900622962257148126198488286200720977336741761023430325040652699869613125042114556787517990404743591594402433890812696341730063977241505225869477248622988519058439152371433447450428519055214104260220533726935157133590375501120656233079622039925585739817577908076244088718520781553164634443918570121206168290326045346741373272540137949829666493822159059227723862329274534857578975990731852427018018377583689461191668025908277103084056337368999958994909680216439825808678341484337549845538308036738293214918226132957197761049937793719284809642760240076701972370021655542165431083610404800239692650410383118000773814316698139569177349619107631378777603704885713109977785607248968192498767291016466600996889712061419461599490300894922316346524386083901865247118689614444909362858448118296810481389295346437668873242791566484562291361805029926753633680660711615398297004824893448776150612036874821022480158439131737247677030228103488201801697492995872768998853514205842398432009846566563051921659736347827109875544166907932189043521618535215141300255973919833036221936607058868078056249018003592932423786367775450139791507284671636330515130848721303909992639457470705081177874751840822434827129284247493428360627206209507885373245345195058800546689610586126935570117573159583126859576665691809373127655973344669340744366680051433034462033855963107351824949782320693065106670634634291467214551509180350164085462263549198455698189469664712177549172228212983659677101882610649966556373848611918366739557196212570576209524550838811241323566970035139343400303434111813032020211016036335302334419619668413359708031362724139066806940778574420662991729275293253757054388784440036848303195506650743327912085067144115099880007172499111808025202123375030733068572515562668210743051883631879219621316594637136946615743073557268201747374656596630472950947344033330545341493641233912666459585998369547805980223820616507030146176758508700551161336153936076213188483702247095048111543377236550732225017989257397296515786263033465081183612673522503451076362818056852681403945585201435924719698726803750884302686883005744065172008852302998812791995362712845965311125100043230536629513670850174613450791055510975010862538183795317142399868080036593794103885314231871374567824974842197476411146447649913501161043025957406949038637169942139807320856794947434401089869166343226836143522697091557594043689115496043805332566464424345044126010430077225718291864449160395362401972556836983848597725533169229468335613337514070675218732547258076383090347940387140808783072498306155273584508805817217708610653858117690096345383690977175991563383127645024425472853850498263782749744966690357274323466290926179535045126997358420524688663825276856013146278040360398410230200966058018838111977285545574245931193422163985449218939699441093055920664322638817474887331434941343103160219921314774204544575610472851933663145013439267818507209160051521766411202287720951386753752983634182211960247846586158532425483304581156242192504699481397099436717921433680080330597396453237265702232052764209899436052285335953690295827005051060350403592425985699464109811514148558988765940268230541801345747260809632854865202856421700118547959192455081525851192055189434779024011957508224458546146124587223281031340187833553498668333057757857628889725968551285619031301283276862195495158631870287349240594020435108826064245844591834698569334920262755411221537498966590324591933652616459882801970536159220834964793366811895343922035788098034155005156988135078303320343259836950756061682176126188138481774086506240401261344893655766753160435490971910119118805929338888057716317540500866685747944201070630923893237702970852836911068556548192407913489655013215719061006888167718448458958566835810750987342394226136818803846688657181712592234856489488569980344124182871165504235065223968975781381751460583500456127569535972438413339503487587910080262676968937532865428237540622306661158689134452172720865565574831801682219243843816600568064906645994011912645519823982072091688209497036677048191600796417752395103587034820242462335541315847245696977246633544544851368617458498030155714609002622417835179621495036165363065879106420572353407578641964525353386539878349082592905996522385508488158130987663447521739145644529653687404788824639497544999440475211970860976311588113369559797835966181974969246707535536881497110981653501773729322701762467578213355280626842682464680947613188523982134215548973894532692257352291455212239392505568133598388196355146384320467666325761493487666671264552240746423853393009853946824636735484432119667794434699753326722013746008372574998829223288559801693700325337567897067382403015666887176906627449117130767915383933373009711510655387981916194343431003546548573376578211486473225459461580807032462431526699492313410141467240063749336149706223291415372962506164999844132774251230478695391792148001350119499594804484365777424210886438722656401035912205166857553657601564936603675630670491756629613685002066799466639994245317160536706737916633235393583795089833612711721304075219211227646286345938804328423845859587864192290065497170109485410740794000701554121103046245880683100201863199609356533727158891178408447982625456679008001419961753155415737407358681130937376517724407921180380063915870717696730113657987740245060396082062428698463137912143609627297043298705986361832327179618810627873381601423477531354189558055969138395583051917206570033208949828415802108752418365126993934033243777060205059074846378606731640204622008180335125446456170914229649647476932114621032855195442090602484997106875648140435252053494945783620566389177288620620818823458557519720224335533838445274530766325087380308706961321944715694935992535866985265980139816690695839792379150108362556558827398802638256381277303016288574592181131970131672092836291425992801769665296370694348465604679837746950561935280821960082166042705659396382705856295579383160727049209809846739737920784336907670351561514454354274159732916207459071788225792065133740619121960501505603804818980120826075493555762293860180449901897522070435096433615139985501479189978149968025829587056733293927244157096691619469237502767940203505069663352837445615865641118598653934030341367309930083735293235667679221158881981206069591641444433143064288685387624376231452985918021199469486992850049527758233797543403450598037785691457915085783358589268976952343471460565403394772785689071159347697204248650787051035414365988674538044332906961964405052432173155789816948436822134922325307664224422123822276941407283042966308723814758504614288270973512110527536053695949509376482260193060785072695297101669126397030093783919068658402224125954063683966794546032218444423164285116601350453759289788412443875572816885605593742440349733727582103866004198426858604733497477371766426883072949049466439817019085868880059775620984123689409531923290156289134117420816962010945612237898760334285425978537029687824437018955206617905326402975984778058135583882484668043202916097458434490287215890815832446074884684969617429883609659504769828413189540769408333576862802661946943802862317602640728924201713953562341782445646731292418458365434585324872146878216630085965678327534928750956060366162400962316857236736350338629102759121539392586987484713203483034704064135082184762547114116802771954340584298122512418899851713204021135745615401105005398109700086232788000609350230433385506515724492366744391858609189555022400199938898540412880985582593507663567514400850390547065291164984340318779864190522305495325522761345016909458397952001169846909149025555228477510704175542911619187363805706383330859705555075469788858763803654584349460322618172251542215046507473393220836016109034912230703503588536271747271389418611379424833431124828115425550891933927726325731143836211000143015793653177205591215129809890309942989024881636489593615929902701984197145668976786267379725295466330177368478793492684028945797627452776104240898998647595397488187562378564623421892757769627743927788152413768537710252367894299058856619664414931969747279790114548300994865056433469126891655508954943421155121178308032493157475466360028948006030178764424881038857725389875158021481557653450743906087394875614163655930484236228793218095402587344464415003774073773709377921856041823664123220339774169111825171380272815706007705006885772387587896877572863411822071094226916864268801680322484266606842237004276681167727034296432972745408339060534737115373369285255699980105431797619515985436327014677170626251264001126468095148500663362557675243205789996449157214332808270138409632026613611394687612334542111017988556114754744997744918650852610563534754445042872392035699735299259599802120393780497295384932734700541952300627008128805045345022201175483022164549701237352082824633142963636940372239875239809665382317460181015290768584611801001477800251051639351543202705201237803221953434491947620737607326911025398688038077935203641268434471874894408611491887306901519116256575046200968277945536825734370192486887226906667627311123752297683225272295373983489713374869965087334080950985354045834638821319431118105664290408282188322466684428096266968261764035788201741277583296886267036198529509779878466010990370194303120075333436344207329310916088752643094693409580442168559931527330375922189065617839777172947480776838608191089017738120243069186036979474099344194094645910088676907370900404022147937175442211692148662651225401930838277673091895564208251552567356032420453315875989813429756661773749264946068983651732410228536282079255339902215877985747952449215367670155557424981885870075337030307430496811448250214640162098750515795221485061503952488337852740235894504126186422029258555341608471042460683940720942736530710271137464433670690539422821594663292659355249688698193099836944482348047206617708461544661936975648936441431377513592944688578979811699041249728919006169393491146280734679108548760653122513340730011144661553127873681688765734774899631602659551161064209546991343645934450790634604922933127742845670777677755237716481075843309108993216262781689418420567843273753062165053510759246880179155429700571165629400858438198009942395050542312438216234746167583712246269303072225538266251519126578380205271071135639631794584861695746589670821255420169164577132684917408498821029041621380500612279983326113395741085745132661034719916177652288788487174498093671710163476029653815713318774766180483861215589615189797957825927499539486735131255168897334311161031135560855776153073441901687714322042461811365506405275858273227095336927817521174686426623108120206930116942671951076753296306323591196736918477464483662817561968569284756252912339319893769791034239915928342636426153518433450174962122982120890771194031208793391424422463444122280266405342054186872623326800479023071401805534584636474971880735727988624210487200400296996285153627591945198636524643790616521850505509847076146065536899197199971556494521784206904270135290947472945301782878040634386705239862250443909800732154048233455473314933917845419600655185387559876513784617695646286519470940869238064662190255038810204024031141261579750128887260759918039138056505009019975215471735371956088619788529882040700396931014668911726985128377641578903615873705848756980648022976124727535522733976863946229428722026752884473918990481098670426989054558714493687782335741533786397648177873740126000278623117834931014119117207164107133237558490055368971388756916319454883415173977335109353360736846531446209314000856507973306416181637424560458022472304664949090926653244501250283262215980237008976471708354126860904816874276466825285662425353653500449481781599875042509577821763129793511009992710293202464286405778381295952434783433500334252811113076877115340631014187268154475076086368017241226571150011775125358600503489604328924070835107051079147089086097898048756822234022917673173859887657371289526151687846812800818653014979367525146266951490394946984638026462234129001912527773672887661035400125728892844619831283148147896892598303128055284087550475406892735329684549533891530121531678983970953691258221337580965948896722611823341453422924723880997089542491343698995421211886757951700582286461098069096204997982987795307474325257887597437706444994408745189482645498042053544437651033279655578484930274559905039231087937500521299519807079614282997688442132981267392532153240377263003432910495759725468929944033951264988694527841642266911904359709328983537191960655627375728353413658285549253457679098158350126022004894151773470617836193752597546400191978742373699832866266184425422711928570808739858099960931907376810886834104525037151664798819301642877895043871563859285108760669053356525670084693948590409547249582191253329817761140141482350292712501742269839394980104626357638140294027345016016314012360902872206526848769774802282924913017912401034640431682259849755831519091732240309786901594070375404698981772534984257908538015494616361083953340564437967161344987473098619538537949473990579935883871764996901355376145627596878558776753235398495470246065397312736015105824611324983622178931877596781798442359538061426972273660027857725025664691651845225698526454822146606413282478907464282582704657379936014718514772441952402068997380414149718496147263429285285008695539709279862545892476431860859929256869154119008654268253507738091119908519621477823766954653612472209412919386344743579747150708765766618354127298940216406578460694201536222245404554933998026335666165576046490819413958166754973540255223466888044741057130765655746846963415609392245053104269051886264823298932707157310633713370259045889625650315629869961966894485428976301123505521539113170745401467207487666031228205460346179583727165627460132974745066385186019232794667014230261709899540562021115076088383760977987577141884906934849458604250073221616373410262561248553520366849238602371401547664770990589948538522984025539759649604540939892303158202496362652579466668073123186864408795430480773180229502775788129515713352480790479694010608980082912133050351103174899189647662272513198148467314681621748479922314038749415421188907624351243838823031365410743706576073989830349553249074464848201213878497770674417935002433517273473204726150705281673986310948681983968598409603513831104088966420289382391631073194486829814871306483165963703592515044360873807336680071864589752649110179810301124737188473318944399010253782094383388141381033412420871072475666036639100358136138580449079149368373057181717025460734312850431026702441506637309471614232535096695969876173264071771730323882675077253564698887751414257477826677169154449811883745546451333386089049027109266528954593063098935424178942347936076691919505360710897344370641277947996342606251529966329089543498990608975594417580832964701553601021690094457164553370308888737458308880709295079565072639665060167623086074840595588095017022772029496988982495039368890535194875795763357447095237133749433618934807648814488566377263728588124371835780980392274337855272449161987298234845840534698432419278167370327450528573664921521516389742007597568876825689213183323459230201435074901105915825182367687677317673359343261891853703691051988035615737245153097752587447278737790662433863335645261597555075280047235735109983237391542561724388565893440217107528304476159418837399040866687312712819599751250485432448263271180198939319927114783197469917607951996519133234573779601541699638067664124269411973535394375941805939921442765362661025794325774987598827747123243838341338902665719892877146514012582817355791707227876834611539810305225546952944524831550272665126894086713203801391301271579523016050722924714010850177360356533752404982281244847376447888020469899530683007515465641606573171797455862643982039663045729721337229514667099301380457707802394819290375854381135334658042675757451684285936973432539631499823768625244705591103168853071186957094987380864761655449109719142538384924482762631589684906120073782444593592954110356997300676053609519717731957702270958863482431972566059021883517471256921553436265130140687946273022212233365219101989261322989127390183640341386908522028280651989457778946926143685649217386917266458832697507167544115521366704608348859555823992276208296470244604547266633210160124768653239957126955583329795140077289125502538599525910765641320758274362470365899906643711401289315003698592433539513393491467062329391548382977635090698675783190258361166773702403235221351157970144129793231882700178996783014818316599698833129070332749565932897297920910615560023515589864908190527919687590148125693449681290259720894387872936500204221921457886155840793528721905404361584533339030520254579853766253268125859121561383665650597137462552626257542861895319570594931358573460842149378040143103973818088368315511421190185609818505138065206256638581338544751280816186119959633240470440127412847492540835808207019835482243694802571818872216068948644240711159875888600901909259334987700475593817014195994128051099252272320534871080474033384352104288715986647713330135300167890426300592814200506265772632447539660374458322882339802095441924374159513063612282634141606559591997922070276117974137622945952712809693853130665673735868582576159394754362984137425772633439825180112222360076408122684834431126852519235361656894074479582479649812432718493306066872610412292566587205529582081886733166140646943074549423389853516265507319306749765723357492348829091921745850436290027091243948032238842938016754765217701583032685624884365241986873273249504344857779813268752410363724639262430910459280734277404282465944903958730316323999985869998698585746727335133358567920870213651017429978717093271822946022172734544078265688636419576291290490196008359009327310986414960723884752648639376805726474454292837601679252533093135586448166859626252535742767351391653319016051494167561092972211253946817723027482484120157021115948137352663508086569517078237747685083741545421075079766364907676234521367452302240039190999095690500983821054742063305901767223600051800238807703472414119614605496699258882818953080947978147917918783249392540589298744079658104280176962399162250401119009531732834960081384622145582589381736549665271978659530400548255896175592972490087222491278410746138810307350140388457602615600481160058006888393725059647561128671640801536900872660872476256452252262046967849541306819582735046468818829350536086508246394686745784953104982220689816658619365373676805311629851056883675725807207047478969319835757504240635808312951574385441504184571658040266838141343009826288079954950741394628956658201547786721137755844253823239092695011477091053102887428150723530032031513906416033199068695326601555454257794034471070881569377149655894544311937761477075630328779907197679521040567418475384109648422869580975518014878851032072744588212556147112018781587509524310364416766508900959597992807819133753646725740950374927788679356413427391461161804575200999278067358413693134425537227100752298359122063257651405358215211399461350216377900116540531556950049226094109593450875200670798386818807640383963289304864005550840907534028398432068258600113717097610037249120093543060859940397981714167486153171518169866422581396274960799868174983493910326981564206368719742109798018053222089526870565823513026180075546624517914015637224001822280662586681548135438839030532456167552559319854400704074708877743086166901277030609806289556051475784137922605567214573241014441246460167239295925265267579669827297674010231365759851293086239880477011032066711760975324954329128913444235686552248215472274324628960651490653594978622021382223430516739014861487056003831563693161444920684990669941778067234227804384200666265281932772209684771706531578301729032504639974058311467181109981197436568933651208932334928964185045909638753058600026745570584136368198178331495311968780228351598669343470434572309209785823137367747447544449033511440183244909868370689048906489273362293177469057296278137856796899667867996965938614935089850024687852448484540280908355428906684858136837977263008063465275499620998603637199254188865751707523438038818625162854494879783872194883781092711366633309865489453830123373214278457237071692805442480579605650159768477426440969043947536906316905941434930655066660700450368828871246760401336382766202677063522263472715838582542636543236393732337648148806790703689343599699465603082111829344643058528693271242510703701494079014229649336511841969078864687360764155814415773024708467710756249895923166130027901263586082498389389325691912291855153308925236789289911466755401084568894687687242370636523247617699023779507006047399516291756955876949548027391327031379859181958940571397964523834115443526773237643261100263203772757896414860966428053704499185454619644546087612570959507273346671430716413788770896802620990901703605734589629624872476209791411697013286955568765604398050585283722089823909485573529378667128966205406350978641621464748346175409582676054906609307715356373643606222827348022645872342091518998668642601749634374442547674460474213513539406801555356658228837515773969256502941329238787163243587090084047330236488914245837171737372506307230569835847338885962499837059352082654515796653926144271767954740647104208711969314635536120415861758813016037390163447138472993841253465304467968107203692636494376380657996517406316155440529126514424106106561454717657422549309992945503781990877250448078157241529843644946814163477411013465877613430634716374009824013316902623025418718260402697936041600083482892599888224554270985792478747155966335236001267109183104712847963145952972527536336893713932119957681843144190215178133302318949777696251256350697736719111292516428054591775214431418912949577056714881643331073122467933443943767719845385642018719353917593654669087657687502689444820068854193127825177995971168090819506036731457334761180355961564540242158936403637071988293808082385317754475301047513498591490664719173016665595748375003942162937893577793628404930929932072129073318178738005737130572049208282943524793530515252656634179904885327396394122752894544640527634991785467756449255178054169239024238382989581095449213204113776575753196875988811923671234323805347546159044696053837803516860889656257906558369995538628607926141383832009796079492947542000198814884691278275682592548919125363776056964550690189043556404469875196187428686433316752069882192176042203303195782835690698914557802687839439230981810517248786434267372812783008468525739390557356266446067658799940000124864069267180687401040006873030724687595153823060820418653594538516678191593309800369395348593082125443382453871304072580418939294159784441287765462274880470540582045719081758987488166505796313382358451103451741263268088626107559178149197649547747081979316892744630913990574829299574995039049507123734496258515201843119694466357587251196181973413177455341687841153166985687584952097856683719870962446753236085361550035116244564845686327743307372217254535054370828684392037147831656148269490056445475651763963805767992439379302591910209624126028833260717558366147749492677275053630908682183504008015902444533731636769447028002725372791703583013708168125486376376230965694456607718480151534449782529427425729712037377048073872277911491084028956113135302806513358794282324701813285772833775260349345820204276561394976288103320449355727153692066305622361424996830664414660818472695383028842635728302724549894294709432353283997976449459187646127211647910413723929079390242800532785384347769475910532037247669557175371198019901556783754001992055920141914439606075007937994624638936510281592159315008141522798559498969808121820436138394111308782128859293160342980853056093236779009945105591503095823552116139821544986682171523060826151557029293958276030255028801904658722107493773730052948328034238735429808255236909398104942186364156618420108839882413720864742249254613916200735947593042702265068149259201456411252967788298650536890288167671208109261530962591077349060479410719146233868537046539092056609767123363503107006765939602290211671926346467193400484787116013948869866711395300405616004953471268908626409134092170087014868203874246597876674588251619414866911276434876272463365978943799909404147047189698076494441495766471627809616106052296779225797268115090666409693838347247548812212518580770415252524992591595564926146860452524099475997551479320596827130319244481742190664426565535061559676130426094259975691705943514057332320267525965507309866894281788303062585818273566273410509663512179136674505430058935758787378359605941185738341524132051704869988437152748303737548125148293957389324359795114885087430240353601998337271235015068418231233226714486636452509878677795733066553978474157918958947049646409866319526474871261649484354405104487437524650227923214729219321625294775766057149161981618900128145396524666947262399224396163228281295754761009115914336008237527082358465378256386279541582326987833826055327889092687603603326830417707665326248262797971595342834416963432201432383434740660092318382518958156882968122086308367463335375658980487704138530647325725628266148792706081060412998696908509662990261773953260575254566604171616325662315286136096942590184209052996899944537693858020852028165649982616176627432137445442415663880631265541927009144269318773799472022649379028172308697367604611376122817104801715251252986152559296472417663692730427262557583795078442405049676971669772326897675607631858868190291125141431709196286486591633699886296688548129882097816489549110363335622973608645463832684861439306398440104580777723586927482713375551278637292816572194532196637424335710261357575435104559652247662944336721837145468940988610539852917286750928008574171121399357901465296518725235964661907183977449547144741233230802819645780283472871753499709044631070263158805413507349558400445523739616152098367678962607576227710640728642579998438681995892688885684861240330778584204111793145555450264336052787648260570639032760345099870989160269303424469408254548727575909887320038094957246474919730529381952283643376776873181266798688763504348532754504638651099049697119526200897173163249463927968745584455199900538471769315382414001687803399010946951801592297152955412146373348942082966143726322658104079905040337351769018678497749621436333730225179789796831165159327243260937746785800246424242354374673030233117743616222642648844104349112890855030865643005142300502490022294253519933489982850540496137545259710251563027742508118416479470153004339260081243714905335966029769928134423468947458477585256153800304643172621206206138089801945408003190879113641899922542976243449419283497607585769942566147796297292159193522594599458999167829824582999154709485565437095612247441512612400340920839075519613106465201735128059395969721889559527197313651351082391445843956397386560883375361291249419402758033540674279463738372945338075862335282994805917138789561141196910813205007834447767096799976334802636787029842217759145153505999416345140282919807499945551707158779918683972626984276554522682728402000505022752437594688101734560453081797072598038942405387973339693020802346709545887671703372788293733114643519340737539617032426305511789857118241451173415222753836105257273012174611228360776833493927041970757891282025545512593423435786646760122533967732384298992075116111588006086257791434679512071947696197851341983118659053402537238492068444881319231758460431312312349936088714805231081093855199597193969840100730694675433996475096195417973600963352879125488082200693734717498489977440697806047468203323585230599017607199758869540987626246474351259259838967328633547127837937974015292527512188448414790150630470232267529086797206432011910922703842730640418048324875165065606695753079491891684090129529073821980439046833266888151933070062955596701858353000771117130701906085797499321064470099553594152520182296667933924341056817122867403367565324133247790153509629381290898243402524963863260433342157767836557739969588114682901767056429188822959144224621599543140416486466555674576994511427083527434763631006544436530443777351124883473214242768019055199655783926608147003774437657389128421241917038230855800539503445806507982261724467026639850948026825398569143960367833254349558808144714033602551729328074383925057261352623409760872926939660084717174404393456945150192980597252541565045298288988811894555667851519087018526747105720840234652413215960282526624933147095446885907333178360795658233422722598468970679144014227764591904991119121735529811369070664673336443518979746769232391523875268260338081217619980907474281066672358447230589549873281521101897616982469064695289403303803551374392444218398200935610041183089648155919094044304793338207401419158399214665396636905583616770669004188408884393182521225135710165879545840053209767706405705234390941379798513098423468495069870018247890590111518121767706362856197983515717347394938090687596765801058297202127460374337358516636722348511167723353670125484085175362121467371835423796100787432270167060749378942491132430373516842487091195134012207696955361530554453180282330080864499187234565301555255442016587662725544516156405429208723210391602388131579200189302331961129061062250243782594392947607614644741668032063118576367169772624231849840942036181346445478680660272557653901439127719602335396395193545288266906893468625238794057045352310280655749016213840834586469221269929277987621023805980105555962318631615765573240933944510607403394941016452005905756364084132450943535160295015875791059733372715536600046567633126414517019994617359337411889854462005366499167218466557200178313823610391638398708980950154920681080031843701514995297478723577286019994243523801014358656740742392700384186237985007177923893532087415982552795433362882014997159730367104854509687485647389809367405984152328972785999980302325517287530811185271267006969667387402777519281797307802043826864227055545699063730298056196259083088998939848983462487454145733948563893827638684914306859738596304675324766451490350787339749355861996812064329536749853526923466737572701826159800560436627086062304211063651536079185290505731865633268768681106118892873141381522709681317927229443348656603967015061297713814909861214113288218611985874546446911149443865146994215451723741919434186407380498355315748746687481128171080549531983691735012250711927065960376524994152991165959221047600065033980645379946425474329828739535874588633966173281190506127807008588383598682830109105490658730198338643278957048765617503791554844869169820923362359852966880370899151389038256372714718175711757510319679866196467185019900802285176971141185036511064211270431866806391280397673590617020418570748090314586546804785250773741187625001807504077581666341767465883339951093949307209975934394108115698867511029249184914513081352739502758577728670948838899814102978892135161410649725555432659846611316503921200632318920588539583489764125444296966265256331187115521682935652091922307299769083452954773575248452721683791157629804619529285395299433344018574702515369392997963155839892070699593737778021228326474295918353422881533756835927793800788902439433104461965223790487191457853873793270748564708798897269037010280169269454541854574801808731912846070606585847341682125663281964369810628845689524161618143738008686872006505889426201202155357384155444347176884813085490003268927017192405109528920180118434604794997077279616979163749207296421514005068763019534151184455883271156143798160427185822160943186189386061235086738850768201975022100508530113370142222726092846939268256624425877091776887224325621849054179643224736109378624725419681039454659012791555427719786697370230580743867553251101930562768157788143828448570976786311717735466055994114022198832401080609630713146000224863408012144981841106178733262613797651124172790393154721097763452965967823426442998233087170084429109896769152801208616862749471105401418711719285462263857089100064622295404625210036222371571977815120504490547230546436191285287650228128352378024906425278817984590270371558742977871606133513247771857637437708125161059965565172079591625689077975463172422279247760374751973187542392388244780893222207177270082707438717943252941322819852574351803280692749374286706268531411989120806907460294380798572640471900858450510249873079030664861757659727625143015330732464034993177275418229515210968578773719928522245962945598357575708181505113585709804996587265450626038776751779266934072565515597424931429184468077357886001231121909165268473783468445579974629235006690501221755749044340183541842010922257420323924867742433883721174148965327890935628150663189077935794767803481935833665328221725744540448227827792773148526277890116705934223147250465351719458319538809046866047307580261624663803384398222729923608756986897245123943477386403596285948810921651399018576807235376037968254127700455098457279331698130123816326177042723690758923961915183404390232274020134462500663282310594776687380008774173299827845009021963882898642578696880512615369904825664258478941918580337374528820020548745577830132687889408115682827037323639081359008864451186545802989137443447880474819123746753729630329375389652468419421808614825623201620812000427898293677325206355263511999857449978271893444704267968926302487569275110410059891096680006232149922805628496050355334648134473146775702179379297189804290185081509156228362675310266228304673267824215431115218778407589141594920548296935529094982295364288223043840266946998578987237155065373100716676725064364480398956424669587396192953705982798544965763786292883379065666813416452857269563771935980571337413967676510765342712452824949979601604594397715266209566898891745656139087564676709993165483318405668862836150901045435016527292518265820367113314150571347400445801730767760782591053001076438536511910903373898077801547854604212614703565289601715445775832113296521533993181133015934647960121873676651878651275541421666881183698827955757509896562943383039974743866801838675147642881734792769592044334684615018266314949401286020499793083020057291885716998866707083851828633997405437441908787771971524774043811614486660598554174248278599917026182010687755902074661114195269786700465137148991166235763803627315207631942036569696934396816383633296151411052858868154877395275838039815690163919481557273741097141492087347959946562656423752290311501796574858134047026064560818206710094225004268643678322488900955556952573445316872875515518923275144107193332868706417602348461933064762634735842893364228230113797145354677947610853512702633041785787555463551375158931093837844873424660381258717237621343321657958244483234604179807909699613817984582799600945628957885204939012452567017797419253592208209161235725365265861460677511625521360929652611322169766488917396384917136712188922402319905056206325072004910743190060556794159219888790348167272961207310952050977779072257448456586048688237933570619678470866075240840768025817502516668642644910316470131338460221854777911771714436382111284572507137471566365065151660231486517047746338616689563297271525130749109315754178390233710078679085428353096391244809787245685852935099717700422001150237722655631259008888083826552804739533366408896283588354550014277765241583347146163689711285122619117022400904790106755841334876067323513585736191257219936854795732162640348513401887140106689937491527297699793920286313171393059380333644429441499555143407060818401966794745866205012921347985100516824321789991981869054712926328017669389702391884087621684828213515360931751490582721721964765934991740732810753626734446395753527634840038271328938320666767042135093274440077334053654302534475094131473026632296937929523040086339760512031800685616503529755520029467447208129068830579538276285050899088651381116465518792695999898111073235411284755979943653955922825407717370326103942103088345851499767287464812875163121333181821702030477530095298169416646081907371511859084551385300230876280108958161469174127747750539471664845202896462448853698712219627577721782657966606290981179320050090610800901468744062596871086850963834700905202385224963395645804884424126415437883501536910346381924541369947713149220129697512270857388477381943477193428524526770021750792308914863778836154911331747211982243577853967386180123404530169595191942569784301663844010717147164174904497362124668415771786915124389546527799129749694656570412807539759935462765051130602381706041956460680346193822273155610168592741998779475470665113889465669023573921892381214980368995749048798557631003447785105545529918158253449036857608951925163839547594971049256830746852045843358443391977509105184407444149349086210634753424977020996097565866078529417843810057954915105597915443367716778122985726162094217034139575009361541853526298827300232259657625556730375424098114934167776628987949481615726910041329289760146995557172444264543462565586603048154982873980938175358528386992861810898011619075911679949462170967784075908801199677058942763090789871322822303114549370340202067979795528638052253503073177294143654440764005293268398835446249073536157852661176554421755143333918801219347195806932252941591104047562133956325033136852857473141601154972444400667222449282475306129980161541186048147474435518082850664216582073353992067743933521941906983479535768858139756449332414112915312483720446700801279069497730371571155802304283023660590285699439460539660108746665045860021456994308610766205304856609960758438552966921512864687518539076144157425126506357585118515488565254751771457233727268170929832710249876332138725101242838915141205866777006123261665060409030960577095392094732456644968635771478347438097130523794987595237094179477997493491371797006199590685757541041790654395164988166672679084927454723071401099304591072729489252373758863461267358777825209792442756122448336939383103775238182201470997141193270926093117090471582089935045939936207698282692899125290437021903139146511550396606238843095315902826250083210595123396746878266452085027074261614054584804535282506020909308680386555648014902754152511432690056091688370230766537024375672861317016295939674055794595527164624700562470027949109620533869835853941147359221727878821841289585013682546616193948753927225664711033159303091382552558816490740176148321528690032198046666291339545026736287139675346161384448934274575483882909704172647609435729685459213316539806332265830373773730193532070013752245866985915408295569651829806406148329252589652065836948528486487162432146167043275656450455794824445321316561338684869624893020750738793588126411265673881112594338594823099529176605753328265320446471874461325733349624027647748474770034835725851414086379162697215231699577430818434075463033767919223419607504561036314342658731153920354498044646806928870419638429892397141648617032999246854970630681358178673144977198276642220490815983576990080568508735418345469168506761257681772843666059163268140894704475141566776441973489894419659132317395684724446528156519239385755611760229849874033792953258146842641571898758845121491846326380701184718822283949526886285706113257766718711148227152041803921206906738092320358077495006260325877204071071414262430291944567483491199818748219784029504569924770400354389598540883940625558115998905680865578964937818810027774216308966711594328512566050772639967810926171063573158950338754652960642358199100912110540948122807616750416181094393019806315874827165651173923589999613952246927088392275294347011600212236967672477389305996620959335808523774189487571951666498766105427113168507132839234292092582812854153738941362073888168256568029506984921116734312289950680209924895150212659626253022348829292069638709167646710959296696775641664267804811243518994182542118410773763777999101236801277342547675833848315653049677134102975737773054944658892443500118530114930893644453667341506748067785051431166506322813444365170327447708878117045071517261137255062003127726732449703708169148711205711514159078174705316225787099002589751175162516780408594534738721218584195263968113370902552457379649514557105982546529019225601268429613344964274847466546359563083129558486751663139891612289827268245828584584622225942413254264247678587728045988596749314680671258530228625039955072636760980430252459853550804100883402566324731245068371215455961390944633744350186958143058227881425891692857489607489651940510508406145233424112837106978133392876867303408170991443663978955393044856667755311355431189523108282067377533836814205905340022926504237887477912506542427786716964837185258920713450079287385559013859312776822008721820252808073345268506594982154474664882177282655123454025822320590699720914924002277364306937700547911550667944935967190309651206270648639423585027662160160695130254827009614458370707608986360385494490559453239204319576665101972947320157062908598917201290607398458011174395168354818479237442755530788757954666057981192155288659322710543173075524320815036334825452767580715120311900405311428805504493075321590683046843995162145071852147271019699297982786280562163724082090129380829110329135724766037901827192157180668492546916240757521230396756337270564841916589323379974128406468827169576208688657523877740799621222283956165797982900897455895362990714315897923203388136034652580498140404340757209526954153110336948597582348842691501802755243669056582642907803288892831029582884303321952929711637750243316377002697579734238329499124755416109883736964800752328024881709879012253257618347397032166061072883823319923710427858463689669244846990584765662670090330172366517921035071784602117550683212668865315617260059079161504466110126522746675057358254554168749285592459374928428219244391350817347996359392765400197067665486845303000263203626329609330607529881889393236962917751961002656315947633327425447459715377425466201806689348630505508815534226304868512700741381440381660325682337035166132862077641885016694555469813134283554488434641025627666354147906968024149116002345614306199421418243395081136961757663779815667299201601092743051582003820098234638154818534566078753736183157546883969987221894650919604727918400024558450930390800579478361838216838025733320000814236822885856166443151993749499157314425316997434458699208496298992906260489391856172373863520315605379157690056750854180991892341322486566175974938117434535636913991715806688127963803789787967251462697606375927363771303731938238790453371221925024340097299193903574946948967079869836670951683197901305489348603830322893340866343767954286132352553981184949634247590273914779884493807929939700923335250929508747155573014556662512780639662246302220077924302344285195399221703141500549000965921881454821520998372884702544307820744054787111139499154479521431439510042965847447630752266189503604872175460647264505354590577646214554627519872282387296805792493634313116804935421539503022858805632426334125046708353405298030307714008011705546223070932276594733783546136063160005019182318981724269142273532159741509537277800082449608711435514498619646059927529303051267669322030223678325243284626576352969917176213261452039821143068578601714786373075255690191707919979059902741324346424117524106842546733649817586342586101129665436842479521386680388708507534620191522985678502221920314501832909143852402793879015032698522003958357029731922321529258011259141782479479610158392963450484683117679563489846678181490891403631741546856927218556363168618721674231751988694417606549167168475341420422867976457717860781671234280003645534092714953521275932411805158786681615823584710650472514625778248716827810221766038604852847548293952298171650056227240437007819166726447407963119039187293419997740639012897019412706008972330326484868119650452499033570906513799961412634899526776376200746608659598104419898451852740731771453496782413365556479299302198696934333618772146784426317058977747318157844672017666473558788650241054391940438078158508802062456768064841767837983040443587325275313530200048192668987011458021487035280327307312053062513119905296945691526742507474773331652160165602743316866275781699836663652234642944231651439154339941569866727348361099323789803658099060463858850519857153121956694180352721439097515251630005354346285354364356172396311296875406979070759250950281977692918383521316543943983622112044669940245946648946543239163431933218183807007878058497673733666372939148259648149358159811679305732748269975810250101030383527761744501947696864342315175435889718778933314016612101781242533368606775385915905155419118957801755577369196593840636597422467383130360261833161448001533779598398680129956072818098697228920384096863582234907222200427278867312755147045894760470857149985976011360669093165972509020686995229148964068048154133708784370488103829730706475245654224997896082288862408580804237895743954820098610233869210792654408450387041069208709003001506530989428548730607798673564930728628161181986246599443925902921403987461417994834495851964609854452895416234017480919756128229847103292689815502602300050012316351024845084177031156979728114653437945992517750997992875533139032092474355314141328846601434216032667033542315248901349419474919705850598538770637932014503853215484256300584497928199844694509969492320995303014127842986180855911146260309630030858910438121105717138405899042848181984187190862029688564788686430296497603384103518246674157369452713502913412103860452638817516975851527030973831512548416456275632466695493430841893084415714402814456525567432925558721771550694710913685365120605651553440556539530171399829796603785949825405191549080941965493996619490994096286525366768956334299996263063795153945505946384056654615355804449610142334714409201383778029843753586980003784106183829655226729219826596949391207440851984942807477306992858358884670700500942201801146607378602711312408451682144668281518420599333909638698694468776826057063456245208370141944947524313783222738196641389804649196911212667182487346742614617269541047882433918682653819060817173179791172518617135636877321432281881959524156162207113988158619269749729168720923083835344217266914598365402514530103223077883173529204314924504429907129557899696268160757089765320924798321408511574070291959323122036178479761096852377318925518645662232190173715872609596589877783119646226782251478689473965501073373621541680585182164302105256758307395459822759070275268302384877649739992126946615348957185624776071800599898130175636789222661188617831791171039358745430668233432837085645820387384764995821437210461326567195391333111852383138620238637869216773089451898954739526998197417798149174556779833271667998171888207521107247474466471717645482040045486353633698652926877104329320890298932782971197912351028461401565549101444167339998959729484096334006511700761152445516539838686456501289446368429480435452906058521784381255051264455301124029431421718769580739021074022370123286143696939620420667145978175882276866314369915009328606022131845561001074984388125224536975339953614960509472227398019932711519637935868479595695365165404407225814298413510722025392084348473673175733057090468112989745361433235851339960427812609083798652480064474108799372128647086426067474550560801978720970350669390119759221159503028434230767258180140240445238665529034252463624725788288021999101628405683260843317444987018009505442619298141485847134570809993531881482485031915714013199849696609597613136912521858593996002807456854566587189236284445057276592133409898441855610294354288590424028054681260503464537578514341315478071049256553795103804020390200186031914418335376427197464574226414747912675737647870779483724098245026763516059214219296583818873681224791374488557338068388855896341136196049571145805613585079898589518983623343284047704450873440840270911218586057835527285760082607417437579955313490735438655622179755943528802192999828867644211464715409765065779753497337271418898021998422042671764170229296479607024606577259191602269657679802668306262381027729100388057247337263730413998720637655883629549483610700313124113103544678581796064436382833126107023345797576995695764547901755475337624960241812954444850577726311726863917756710115584165067593148931530109796464307340846215961967633461764635354651863860774518873924747737597598072753519674003851530284902099592841608641194086401044683791853028989988324207725620524532757788189293132368944397110331190451910430990016558541951178588644620826194814936297282513186146870304557093971866899496334562277911121785127011946320666031978586867500533498522013959577186092343235532983572389629214766935863834425048394535422214518316179497298630975269985061004230307643993418390333341151404400481365634996047137345337793858880314755703451363102744351299927319386813778941770172795602461033751079597647178666008061550397704485895519977091078588259691361974728177407322931524538773340315475520848201036875679982346395196624872195553282840771704127741318933022083686239339629637864120594275444282320942802300957229886446928765293446612380507165523141858750776214952742454807461806812984888549632461953707922195659548319726042619326039469314035469081594696403713867679216705223018769538311004174012322871639631558949643273588373683204965970092794748777619950170482262245855674003021690103799356341454274450356967102296539824628333473815591635824408426938244257818854523696515817666799095089233616335925380632179514368557133788637091700950646423070163964697601503758416082759114764481268764314696341139586211966768525604774589242893971703525483517482247003321438299979642856813543401956214417935983600901289742867607063809432178571687833934280070817986350170366602737921229126333240029732596530879551586706928665066999343019577996913041600511546551527894094768166219122356793212386606936302970917054892374868416207479220195560205088835358059025460112874367186890488077655007944945576649269635521292987178731019846323506945772769148059826981155548901256041265463372679100785375878097286918524612762401663502421337948305653881038785531393060417321177580075164311549789176258358909512612911643619632487215009654557908481987134892847463802937635601737351939817120988250883879906628725756958186279197086449349881476674413695827942037438614767017510975507737129611255273321848983317579590284262550618331140337420918916774172469746785619240379773636150525478231073399693955691068463755205345191908263449160577254004138208093285814846841602182487532220838960028082937958690365952394755976413449919295019579078824914671668372811823052786332392665174354973687377832493438308885137801914820866847471524885454076135574091152661307704018190599351837420685808648138886745912332430812398780506402194578266985729824966510537706477168214859760046492541595205636745364883698270511962838681636664414211028263616774370465562862771781689418836228347167646852165675659120889062242866769543350686653339521874665285030272811641098589981000168265113720806257369661582373949896028569818550384282874035737428133597581887096361916864900933764007554113721704955212462241060956773478788055800471637784802311478465316579999558599572573472571507732327254826759388650280977686715356535321279268416325673355029139947658613241412910463077770958555452037944955337872278433553571855768561326553466226875440375560227285555190999060543315753528306408162364638485899484625226993138661858961944887761049562275661187670635200385227997244205185222574049293290404469918521372745647184381810046920651966360571592554116144518541324377382904368884480648422599191460476224969055142523851628293940761703656533472758905431366319701745862097173895418015951308706259742865695458711425139129627941260698702710658959463397869390065324972954960592215306383031718767548121709860721241392979454921593740780568848002950160437854827516970576925310979727043450739944158480455789399589988560339954097676405121680251642846208730231472547402553990306867905424718440896945112570593242633684914961215295568259965948184187010964321144447899290167022424624060227494993382997692943216230299617002672609140068447174169512220446515269762937319504792172821004592414796791548524319863628106557264380378082909173861980147738082505029391008281573518956424137936621823668701658452916802749269256956177659908814626995112352318785232326781422883161483281340036438697012765960829459060740840382066195678134474239619715225258480470047375805229954357824543479444219444207993407715823707581902049234775970177942594393150237206842835705289295342404622967127041166529129961429080953705255535220552900744555268987909337186354595828668640489967515220058304013800441478490531045769928493841424033816717474803549005947484290775569800069410763246387297126410296476147045546743091482510541152521499066817002588178562724913017459068177336878748629784197581916928628638169478178818805372232075805606803149575662778577732619198678271028589783267521015776160083923792968303976093937109654846745712239088194094264806270306145295932984135256340719700090862437520536237464290057634747284392405190650720217013086186751400874658929864368176767200402281128633455782904153010219826568923439434608012852112751397209373330232859137727282056375715740948840550449217142422403524911805433982581890631595581244974259615188469012357642447735959617695595747557556772777076373653719122030735719013634549324588623605808755957667115373337207275725917985971799998074309197737732520988298648453431829681196275435242238176692607434806933179300907015925243291387260658670860586862318903005580947306715421540343979064811315546397863369968708724985230313722921766332147983124928985605978048221159226308090279818728551929637779023128084546463456043869653003764537017479433405135151124240258730125060946044135127645204636048358556572172358816551885088025077766837031785602175631763360045438933017010603267403478147145302440104143795172024972936339557077423701039509301062091897141749349376613055558732886330798348263059199100826151755190918669295769839575361756935616303986720286055054883045741087133611632062531330749938388400762099476256671642809667866891693336761888801163269143869303986932084035557353298371640373357106642570638791772475212844904946862790035765246991956176063755550865230066971773411147047816193656860221768379624994547532498257872259143323745640845732514937183416993418737126652618108745945475053687992143113757167151682355703047414508721703120974220621646281077570866873857571149113329362094661062276518335938670211717227934289494783034347078711465201330615056820698395445812448744916891396791615721642519152678176756887932965746071468931997828407371600802266957969247869967954981680906459747368466471948907602126590561471085517381174630463052002347000985950992520227789599881206015023411292721487588090040674339280843466778569288133535441011651415024285891295257681571215547557094236552367495004206840397492910364613155439619644869199733774652834942271305605692726395783163633208921362353161004467615894327624524067909513586316809388582290789996984270818861096145996428489344521556250429737172639270859224437181454955314888539833491291179291409572296696767900220203297723966108263124333987740674413903989953755481057519516586480082512622958423912510371318376160915186480550290399371203867681654702356702755186292159997773813387382152307988836188994414097644318757840479494813686319315991715136106412189905169302852913305584158702607763461138453373581640299711006669712153736314253677175715766996071927896537261668573537963557996248708301096517320647735593666597778108880564624276417600542070949002136063948098456850129439458595686051782754545349832263817594384570694713789861858432722160666689989422581526176442431369836405669293745905452937941943589196986139064856922450507796445761127594717179499573319911545246641005617984282762970663044532916334190394057548045674095758870697445504301267409109072645575360885923403847589924984191384970091608293210756272701590815183818014993056422262912430416443145926397230858553113569810724105970041320542375962884457654295305871708039889656992265237864564934204968034965243532711749356382046740801188894268711430574859250806709835886526134700379445247398542157179940359314342460829239192850262983504707945123093386722324455735218503518128939363787253949186115765899159993472817878600477657725459213598679982466195589114166199960496334842092157226266604071013336158834584453784830917209006929580967024006217615813067655713507518928589320390001847450942211196071125232413483523292008149721784524582351581803050256003545530068807690610296384339935074701228988282933169678841804445152654853785976865305770383389420984020312810526354923647615017318994500933784555159934868865746377935453113532270207038463167710742475768913219741711780906155004106010094384733897632775244754510953552738124007222429210092009806221743595297305228178009266064801127405788194011864012757592003234281797665858491346231132378474281365752136247977059836797242419443627714831881342776104033232742896255117689751164420338464783875865034503191487479836989991118316948489779394068637939010743235383027182533998697799099820051086830368059905247608589160409699123176716625993501851540171770357889062830215856925756954151144597335259994330194352430954172306389205104721127341888105190436447156069092088232576708763320451360135373378843287116479975644994814776336183378205067758040440593508824693753334108529714133721008476654837902891799671379899771466943408340226245983917679025823551438767556206751793184700866825050295313121416890820005892112974174608552959826850549766200808268872557109770607084393548229615617880447934245370116181729300761804587857890605754365004636544659246367208389532356161834630752601856226928468898413665853767267468138636216981319079072346161575515576673560640162709169592284890008298193091798586279231298104485158874446319263943154886645020542625383239130229756266988745185541899299374833360058323974438568418628919221818414906087937719452206544310455086980663131817679028827125380361310639175040904358377819637977251836166881800926785633657243799375463596485733509664729614247388031966208250173656258223889865261112903644039535300753146396718506643337718101298842236507469267965457777739321755897068142301775158935706393330660466075254134171703187311303146376873762320474595598651959749544326023338680424509519134358223281227828982950672524038890602559264500400674503652045458623582648373092098891041133883099718500247745078020961057557184701328961946450590115161357175870243292148589184178928912019206514226359741203057275821703139440862524940220737963536132850124607582738216188028233604305573086550051046513821466602702194261955460360135420728681608751568378927680262848755266030573741089255853739135950412310688492358920495104943194198616659568652850359519675766873962899698496320140246950900245009108715085786041286821684048079557577618047689908809027983469680440372703391355996406253850538825650414670350782236162084037549702563287175622635779350710052413166603125547369447468829245305437020380229830891686324080355611241836721296401312249679620214519095556526238180871400290569449386156087985526358690900539767547078259444624217930333905095132151475595407213983823074131026537011752946072730461093105241650554868701995608660074977216955394813081457304686475534697302840958409591697177615317805241790608736367285418226526915913591389074103975455759211797310094404710011224776928973067931960455289952859544127705565751654986017012419950081925330682299259883907729103916009624703532461825095466148096640822847352799733329946270579866872191622836710856046000979660679021601472714509009168891406339195009108357666866587741247011973774283982207527203880109159001926282191759853498154709051577084802095110340697141115974788324893448195851070154974653042405264326022451056961908214985437172027066060941621904063032130012735282426669533323368112757944344775078479039859268073517183044544824363905000126345975442522179698127738190015182488015941072661587732943544042875944209314169762391643993847639320548829283375670112194308203808821486644310767659570475945682407903699593897991263419622630927165240159087026079305082411290785181269964259246429594524091091852701249013478823149576608914256127111150399342742437766107300144298163419744314794814097496545937582063437041885889032734588904250536730964303378667081116397160593298753772008747237793750255769788496245983400985569166443053698083894718768313022628951405487160002014046246204471283217969458411753247727999009072638776657612840559496774716647595480833283935607187655794508680669232943541473392220204403751508405343632215259558434347351450615306552463693021647608107075001715089014374810315584668056261791519826608679384558281922032909373063944341195394288177442107673007493477974624231444717274042437213522359259191351604504946019602455613442392441264685269141012297681837620792153636782530888830144433929260238234789873773395846772873163362739456718096883080890876968192625840165513600467505591878927352908877404334772651433028795769230759191859902959584436276337723859755107288079136551425440126180111646241010136156253442170428787490695621944302775726125689046922197056123647043998007032649611953120622298124321574276083608476633413489823340464410379213540429262309607717709238331951676450671787174249301287702590809898905707492377246113736149303780585518300024827350813042314437335929911630060420440711897472316283377295724675628686741726597518370371989435355250712390666399694559587195846936327404255937865108852250290069455042135866610101510974021322946935591819008237345039161767991448567841751388849760514699660259239873122147675661307804060335310977877236836000493392295290746472292567546180862591322366132846916394061361542213370155241813448483716923731726707845294453141096032038977256726535306490784894617178653033029130132502760931616581025893365754534200482110593974210672644207244055473242239274160181217103640772277593952467878824303063639917687474302697355108710463153516304674102809056072890654836817617899168409608691263853468541274273408254068949637183071392744432423632766446898729161742468738580889128739426641773081234266266448699648118544042800556478082885369184131629692098274528387875997936673092433854082654167697210566595093826238924080987586284209263187090140302668484971179821157214235627273977510898753195436236803000241936723052713692341783875869860652772126104255932231584886040403619780535690219675047677051100388783280461190357648262953157299431661494738718633881420627151386571194477213007099105471039724987501867219588588055125844359806048515661127833817102892775770630394444056170562056779853175153095016543786307895689592391855223482125060132061544747092747758167302066187119385032568013175427231985419893052352422557419000654122591374476180604387512261919147827758574932370238051196201955976248883687953325432779638143423148056692499010183212925431460883913544240825154773720942146237844139546921531346075282724890897064489223367195375084242083344849112412640769063269853113433023096071532781064328320987867711309447626317832335682037815162592554178417783077147830740521841192873816369958634173192784608076979240000341998428861741764387552676521464164802030278426588213414852390800274645974932450245549752753590248525697955928646699095059000333430888013741444415858102948859041776768307488741076598409449382117956077160816462824402948000784929561857817905566292091945895054770195046300746637116282109538469830808443903216105569848116169231986960239919641535903017843665295660187610928066722113702795961413901032561382009515564095256953748370005857187603346707021728227647944986028071860242566619437030517841744930386091998916026620231079511965890406230315805335816685195935041156289325096957552172235387026481740351680736929328284169288344982081723321939226635537316519429272462496708784912693071109415782468579601675280330990170975322445470674840030260089240466181034781506599278039347716858750223240124555346526725733498685297651224615995884605682074698876104114408864549238802288839130137621171140614113739924342175761737346162426365503086353779500090925149239987195304043096243524629908566542316482916944971592657680766288827929638685631521892361530336871208418958017491113801242023738202360310219367781769928173077485997385343259539493536069416673732124739775517721959893774525611596849708034153332200307665328210392895023770643477776456751350330893701430219786170383426421865318510722232733796268130333505990654674974896358193415124617868111035987221518877015663675956140869434406081107617724173485683522965000307494130895805837166891284968512830062996132065502886553557957453544522152725578934452207928746588584563289221230994113685372338254946155354266580513375775732564984541688151753072051605356302111990131383116812427618029513689806264121430631300652121198189590209829756917989927456012922336167081661549881738531488827257238089513422585934550454626811232014709533205680494875264403029126365104710486330279258715446399279705342744748485453835569383188530188738767020582669535840647173734868210827976850810005400683715320688433625648257953279199534221518799131542481405678600881796511494656971741483589265343565214541383699561279020770465925610532706223752482755383053523880771942462891890157189614698601037260482475219340261855261014958679500221694315730768317309091943054161350823746089437101209915373253869269527522153773398921644282781601192511258800886626892236119386923289123873184328659477549237323960513654154578563285326984964060697287381335486117440006613094755759437263100074163634701555142313349483623758851711236011007996535907530074769809281728094289373650670905306742700071709737039423436729761126551627728498002377874681858716735283229808860579346498743676716298998374861126210996698291891071741455792442808437112902400989486828577519789029523017534310762551751047719079313604975299470002316300109563937325200023639103534493228719120092275975050552678873959752016682512773816914619438643232972442786858328332224270558967414168457752691750590260930632353867170611947873728151895812973636393758798634519152558261445281334842267267808522697742528080157556851059313497140286360115220586083072955393520167837145592887770344574841053626735635865073335725599554027272349488080709651237718092244847232699125320892049731666125480424220590100696074392454049543242056057131783044757830374040277890366737163464769954257678373958956457741276786664739100648273438929123069380423114630505657821366136741487187712999481351854427241825722233706880742414379556024578415366896273570182534787113505509886206576995892516222799338443909973174572266329818388518947603761902687520221975879453745915868369001222867834318477684828872468268074878970834396699160063042838977385669947688110719829559266559571697522354983005429671750539878279431101963198426093417194130327818697327366916438624776577477191120054414623814821359898808203662146593674422813324682562068592907170423562913473165747346750764486112558525399979281310662537811210754668037256125339757286483772927772465311277740437116333611518547130359516878605579172574419572716722119401722030336161258700896382250423162396353660359605776276781181198137551964595502500106190820551913343872516416871451175147002324884196427632862090100447786903561894563160875942531706598160119184090120848707376026849693898315885151844827458374763090498674740551981167273904498833137506824930020033937824896412859726333475615911169183334766864608806022816045550149430136094802659501279276693058936614842197184244838224887042828316885949779198827176058922193385745580542792525234291067089111303493897186288063320213239516322376069163192618992979336831105286260901071996912987591388774116434266152219988871736836778830527973008237531860602801161535077587703181496962930299642130322346987734234668396005362537387573260557819518424832632968062030792859700297676026161798665448833507055948138713535814468917747008984604128417474067479941102111879932819990285218219326483661582359625900646295021651360524662468764825697641299053094377807856203752587696671478093288971139303487576029282399492723706108047288359559512559050594326799444553616841092280705281965647168914386947387751425956537566691496697221026095704788645701021362911091705445220963685188418771410584021674293342549958333127848558979231625312466544189845974740553778698746161254438236252227359034591680171021821828588039933952561927942834300691339617092760944123728540591006603011230941671983831213328479165802090464333974944317625853520470661164301710992946051150706961371703284749947316389496712375104972102523604904974260642518670797134020002240462299516538628520358888615486867722683019693506650820055582137083641228099642827123319162744598154981024380189287481158707861685874256796036992407395121782809922426223334925235181734894706139599294052639275357859925906414811035943912853593118785663861126484972782738652644444658221293063111545083245924256757608007512826808666770860861354756338440216220184266818085326548473649352914404158090393287706278798206230105931738672874624397464743658771586728408108952548719416168790041446983692551647129986156636861328626217561705608059537692302754644474325196660179136247418364563693334446429053410628576787965559280486613757209038256960142578433357404781510677427084819693110190960992415433827757573783664926569409936572315754300136320410014900190989631576112908046282867057946899513455943928558734361438937579443029157292803992286563266823239317265874672302770926153491292919889127879083987594371057250207542178949709748031243874647439482276971673842258779194614926700589481850567003973300547828628381662904577327496521226643995550499076773577143761647904401334686144316977786635332629794097640648448814228899215141391180014046224899334322099209926467305461692629951040581551959559525831733734449923197649926395360271572393700552954268702176177719879707152593777408905254724993828590221707821649596078620652293080416609482596536402201697788859252825920313106175728301449150515829092678889731001549373614014155661820003838971473757515631433718045170828473837912571153780556014784800994572924281950270803657159289926353959927801185678738802320595291708013956709986075466433388048780764986336722294865669942718668472228965866006190608067957048274543384557433140369141020035050513957980200703507268087655940854772806365548887118846465217026176782227572578026832000652306678165645790110818790653034260842852756904751990175617354573084423119444493060410491643206913346525975746609118579315485843753123590311891957319077412408292926129904886011621077618850568253147025019351613209747665040959424226734460156424023047363127153092153535303633985135804599556839975639466090685409909976076461638004346762710186384136174604585207576967083608774989503151519975153563086522838995955424092023784146555413167014211474612383817853105551276873935428769770784480614853930381034522071077361902718460988649375843722464840541400042154045077143253847539776069658408414129173960323750690389178297019587929370149532636998672341258399839345855950062306240911670184870633209452128079217252364878071382212838958757224312926685714912648017510037389857651396239147805457138312301505113275641698157032700916936069453854926114346708655837116744443529296072896004330531228378378441280031914507177254917256108623956391662119848720015595565521077872989343475300746978683737353252770676961462050482079567271963863145479349038603263277761917484202007938031660512327175200354532342452265519501762755846199220156670708644357476877527958773177159693617792860896460990848319421763917955323849922730456232558118147878874962097778406821461509019874995304794262593160484025009163689474213983876625142464716887243622496242975872356712802260032933007869442301811498167608967029879289688245700582878654995321212825431200055007282601626825486551279366738149491211460695698034790083735803132405800434104800761009163320483146154549848108548387039772818860169799220800493453133912332480551832997368416500562136582580906876825086699591817636501532608275869844613237015577890771350416380766853985207000901616769695899601609990073178975446391500228708387112240996075819518434562758785493131436181018151333850689307107166664291664698799514964704974310814595884603158598824048006107522872761306423840944670392759042282791721405870185436553167430949679414016665343220813606664794335199042696634993157947788838191856630326644385208276798287250312602498532709511047552376159795273982480280962526743130859563431717887558463232221309856855883162410904827707460595763704361305256993859269357355378739739283569034895529446322725003010276964398718420829517641098712349712716723784905051358016757385155323240013100962323597000515544502284028877144144533646101926827070757875403752436498488773766431184181950183560820179894658509313971793112156612174238647878714003302122837429481702425581040960460280881820680308699295369099391244259520197795942509290247803076967698634226316560312254070553429745130028756692539981420063827014880354384881676621441495361459340611121609739548589579696831987863192523880009706642428881001842423007046457368042723398242815409842726516733472326648396301505845696978560016423320892673233246311661547627567527074655653179385320784258504798686719620541254253856417741842082238923398546729331735486344955010589430801847808561004428744474857000787238287022914962292429502565136543893950817374570467529395999267495651982480188350711046554487038372716162577526092294032060617738800231869070463132189641295547310742031015196779370077026128894998026515434723948869771385060096285928686701116628843521806235326233450833236550987001311832079829676460606177381231277241894727339130671267527709710088052854270524735140158494729058548163522547327056736497617751681010877797424551090266147338062025528506631458602560832650372269672333783960374912251973720541549777405927840094149255612691630844330997467291397252976921353609886393717671975475374047407195725075492549263254979876952592129151887204226122765047655821447473956186987160780528242794314249580667151261296346614329740633785705212744671225057863339396111612438057206682579586819184032906018315096433126721650356226466535787290723022368417881065584307027270232392352325444030245707071980225325752358352927943267629255510926278376305130929336445238407631537060808916612052903392671235225268314218243765533255696210507764770241949928112208924233510920319490792950493245629754038200487689847222305595582824609127221364768512134820856168462136259942091277044540476960236479896370861202197070224412917854340639879994692140025109549221140102612058924622317897235509243182842731913790229692142492621420633014339110100846359480155913517128924685666022629744699018747015763560355047298729580763446603995200854731210076019150171370168896516023698444229296396434700726706664146359576752838873725858345284621754157837391388088260382962963705043748566874666776121293032379291345239823153662734421498381262756143696563292367656071480516347308293256234738752727713732487380378176991563500202568268085285326613459282726937735071616786480002253328734166282406017632646379340269198544328584721754308174689102896438892895083458893104206664718778917857652452840907221861241798525616606904114354366861072319751912545255722742134214380149312401582404316971461267701941364758602066608622375870122449242543729595133587590159517510659717464352454111061718519160149519620043010496037717634324090885754083056584676068674842215518535117745578044725008821856957043832371636677506858571851215414854217633402124385571395562342847369655053871570219606542338139305418074772234145639417489327585527780089652606082361852467614800538603619376821171973508813653651044081406423944492581807957678668426035612089184743517512882785480388255647635649945955687686766589078879977386697349687693257405808204327265338419258979247801469319366038347560105517324440949077335645430858165967400942712381964808662877908392912790648770655788459792685216108847876527043457626968014731250020444109952412475743979933063343441223256861157582147649752354586449628263665643186575669363990792138703341711905631393935334978033433360707320242075339634859191812152548437883349350924789155224800687482408557464338164268804401496133988867399496429463454004070390761796462531152766123217806430327455870226561308552910197885208973055161693780436958059945173778179927908437556987788446282436899016502307028954707159286543066566674829827189822498919940238780929356849921100786887522390738149112013969712112965061459277735550157858161931270038065452384359364528420819985158824693136261022199768204347754322126853235220411630314381371008352934191023593417441374801841237841699336545802313649082107125463278975730779759015557162993521515839235147845985763367945830266236265702468035861731082764208510584238848011153346025475936745591255087419814371589047171616870419593253775377798930299217285067493880518338153094370552040219750939132207398054721482639396733393691971737646137551146451395738862736422988945642154730388307752998779023580393080527068107883952663084695693376233717583192784749204324654402921608930559534541573220958635378953709167307987688743891043840791722634681098434424856805689147253745161118077627053455446526412066130906759955904858026724973475220585472699935317672899509107720837232668226649015521979133029523506227152769139183720963633360397751150482941279472759537139076832695413315722269828923509510863655560593363589628078292974777810249345810763542650893360227494619103395933397368482870964650472637336469858491683887305417861192865412845897557504096918681012416265948801804410768012629473140457094060483300550783416199347222666521164521466929394873628784323370740901747911333680294324902852390092236132883027469443104502176834796319268907040473010410474023429018827889542492832622574238321514795152033532028271871589165227473660294948837149834406014474060870962504253098851508885564348194461376443681113169833158457310510355329097868365605690628113219823980751388818681534346440751359306033818643344063784794034486028572584578491593404305958539243552275826316769583467461776929020128775118512359260464759117958616017150274923173698128916983721951997478439348296074375595981617645085942776238019971312824899697464206348850320189495734305979242171824200262236558910787390718198735562707706674903559899035652352656064680005606578981408066237890244384507644476865617597727151944154561946370023043608237517572180432034164314940783686899410599589093499157099412744229267971293866622559360001804476404839276839704098348879113493975676875712100727494602407050580182477081952332581219723481460509181389354819107320859811955190441764302116638497082561384393714582292893650804809913942397537312138258939013096948870218425737915991735435017379841072162608883208730682674014594091334697224586176174522784467886435833296950574310132722684394683557307843699824460472528265029994714530069926500791780371673632816329834452331591242653283677840904460572646248981180609841082523123142019704174296673605360870321868377650915963701436329970136899935955608962270700621028456819342145452167930158780206520927814327465308351497092342031434257866540707428174970667063461003933923528119363542498491283084602976254410942613041801685227942814024987653215171671116498409806151264090940815136825313350522656861135948084592335800055763188297262440412182905459144915786451304936235211340943272607550656231259125987260324841860140207185325679922314069629712287231060006311672852384886464559820205683695606493482592456546553503537214081017615491233986429050996639659721145665445252903217549954578494042395806456746706573380951351436342124296693444761757032646332071108527304368867665675068845149650625772843209551891462984729387318148848781826672939843365834666320127028164917065431380166838950579994124966205654297509857373473341269440517692979201112210390843333880674946066452456850715442994181835293883891279787563694526531309109155484214807576110978635351950203586854517787128541869467071743808629048415203327877654681069556638700647861458067308498618491807596571745740998765204743007728940307961066819258182789415132522040447939673207141895022938826253990083951124940771374918583124276224431834940371962853417605738454556776449324598914347534210814077254410500162009729651412185048287125000763583573034665026751052015343815453401270055739424601749063658448116084583364307357089089553321729963518235895293043279670621546518417009403901509515331233458258817542298757718116332116296706726861420848187715162366460284557941218651625500737551754346859739475624213500779508153105399522360779949555918666362726866863039763894257672417644096684020566865847823461197662531113175367618115093314087824466455515894986854673256132708816742570571397723942961358665036492227441773028693671795158327280584039470540879654219508328434666705485202834011500082750637999288988668054313339225549956939103325934250864860190249855757884401046046800740168453921507195913813532199861659564710597336300798294872929630975036590758447843873192175995067724064830577346347155229597008331841629151708627804463493475814214140170459157932811666508912529287793414024004639035191584919570785827320296473388863420911135310241567048927067329948703002619075883489514006777213963261608056894707542400214626205970565300471715000088549245031044091014486453970764059593974994115755674001379417904839493535368610166767601831196809065401157194647055053664440140218959901792836294602210946186949687936180981132055782098547303779964180400351302407877252147908553692273664148356877927594699621871616939836493686261053483020015456450267178397867511493749928691486945569807312105682982815142064440187417091759464747518369897917144015440241518472889793601739188429251715916627919748398933797311489641653889443190954819605018168139729052808496453413029509939388203823533505493975480933193003666327572062839799635867656245430851420722025387388732058760154850764513213427691144504896046106378692278328398565942774051249661847027931033318415680476231455800838610930322972936627431937685546632216866694683483552154709826542668489944899907917690200755597575957696771708466062888952802354615454379198798214659723602225316887502023541780087354371181455696624380493737346639342806509890509017265610623648459470378038097751817326361158739310469273185936688081703496472111533533671855656342581614120792637646114294684313299975761570626195660642129749847814338283498069986235433889702735981028664643035137092561813140460761169759507428492352183932050057785174006587722697079014616139149133199354628249891852190704895603983901298294444009320923850184832825235327120535945070262899535655283449545732246870446210723065826011976997718356905079475280010855963760286821522130615050387691263982357538155405729334078128215884146337836164858655618697106768564846121646010960240845469426291622722502475137735551755389427265461822529247067751885898446528106074525036241987079407071528093710405592604064757725913778931613016990212978772674511116237317186709239063449931040323122922464277218230007632349719171803529450720905629688857023022174308343764309542114115199884520299001086656098214272578178811910163758426811601857256750124172493701760971737098138505240923594201872812327287806151573851652843888222684648376500667986963396559142963138726040638197658859638057387264430446388070038031833133107365502813156329710505472969065239011726804775371129466072007167087054439023416775824787200033166778818947894964068764101069946740989069214200287901218763686893262565437125728646267690456521192064657929451139517993445674829349526712103681806735560479664744212071420384250674659559369088511237352987309878031963391415487770368277213879725706481258403607341748414258893328890114712727731422732280305561403375584570132891594697460890805271074381988036268531723403730944627861888082888039724082540412902761281821468846339201560485795378163790755877414411428114824374742707879851290305778874680281331897298776473326128137123239486487993991838612478995528619432762796655007097239251529769216238039735674611997011748442375100469884832388045232847327332256889668333976594356367494751091484495822126074616782996471385531362310843676891737380188573709472849894848315909314718107326668978022173912118983211504101595262212424108784553106564151417799897899092427912402294810631102834997405635637048058225102882159391000887606846671574736448663525248659892438269889538218455781760265486693115258263731376617766595408062502159474525989820452079574758473503759460242594999732369849920039015663506102041445599615561059026495037230827101234904793881845043026194037105354594798510580467818444359046944123850546432201591260806213782033988998407334483291609826116372463471658072468368815260693839017663650145172932190794493673096785549399060658855861332872608656112571431632110851592023763389847335774560307000567169008299070378517789272509741807487510787846996928144725468597323110779607736454423662149264940935493840281102794736434011472808425278578416154878400702667898159879221051017833195330540933312712763936307541183862335980768962468736371646685125518794288214137802558357575694905190084327341241230505242489079528018582476804431286317878162714413368996560700139064899342420162634465001682850413497534664470428972098479673216533286965783131298968997758486228247991146280500938521780469526160021516082066058157763057875169675113245825614652680918828428055619057300062585452951007733784469319794843203332203761739073129132433085737072760476746381912551612768096996780688885770137764977278123999019046802868827185975337371974048336223064297064675241985386665088880105443618462982958644310333972256982373760191504614253568509374070273306420583796658988027351516375767526543500160511703775143006280124694664890409862424211215416696935987530800944595671630151593685067294606186498193255442066601871960958377437466422618241607305284488070187450895252332148801059388685489044133095165348682505438012104836207920482080875722693602728508820991068118804880679542234134035796509447550328925086573000147298915971541733333428659680877819265148975096373313108049956450862670162922894357425290760309022658639677690472406262685080179411025841515942328896240921262905230938883463813365985562450395216482784847936014579367673764354783993702474657133151275650021765895423410549634738358775060619087340220236584673444010771273800777665824291835276082662634211764729184550828615039073111648125774130452921685563962177637008787966927162853138683485762231163632154346802105060175995202987157844018180915678904811458501659870431502697141515572261721943118767791703495779492437964192233008477206657955038652787349391319553071295956532985353162803440875052722758286941401980844459478205199837614658424769519205841331026309539949890507330592497664391289745692964607178920494167554448579089570979642411122471793421223835678368022477045817208661925401167737249202490338382879543735702958622757542415905954504770848591777442124521588201659936202785486225022067907735754730574317127951212972724457338148113610830569934959095875681709254791078456572791150780539405229676468698057693620561105233396606353868429755951220666679430635560456561803179222931586212042376791368074138025910174378647958304689456873357914189582066690285686623057174407506543700704360516397119923575429725648203566895194746996923911987694518133389852487620695970407965352215372126912309878384666683600923715943757600526898270137486789685279751116283542314039310567179929927647134701755600011628156696546167782260435954568223747692222250730995870586322682238417922089721843985319020298597556432399802055609709536892911163201326998892629537335634103052091831315419072736927963723292661660877463819256227948060602122335885516404137119997214544445294837512500682785664964163312759631148149613171234027098071695623253215289846510747017195692923028229413544163442304088796137974688756530453327616708132419742662964402307358411888001803592561626494726002778747820955071914915987065975685629228777955099191727425746540917570943871172418091653378339243867134146890957548559654145537309770245123635280687577893472874546576266358097524462642903499435327876403319340565425406481757597069945191865181052732538392901115451180072168391193371423420731860433967540536061350104164164485925583122913749034008328585434108725520872196546309260198511341416664721426362771613326846206218389484463915782844997872747008493210880961816621558607685471695769645248241878407747802984616117216846206808250241362885169738714458289779586739182349675085397816823121788211391293408841991651133104276879956642551674818813785917887330607254485842391394476574148632028283222513407671570359459167881598379034027329249852169361249748567165943926882650527504862880635933020942851010463771418268305422130052328949276502692548731305915525664986996252633206756392344458794900294656239993748417940320984940240415357668427706722981880848580098964426697522654700083482253526290979200003018005391722822984131435111594538160978382823404107709337850660677207804205736740138225438390190384327324620268784452494710433981543414919982331962012771119703129928173489902296277823578207215762017648624641485496834920946255091336713656376821373355290277629040098984723893481950961020258072240420619706843264188272220782998193080093106501791006869054249701188073722319255673043439932938193171740016002644309803189333314170665063752755686076028124058870962650160815556898885167271842668734703768446566742751857049903012413419507720099336129180964305951315057641637930884851595720598206405754736318007222485799223508816907345246671901185724557707400074198560265206218868532476235811545903971212885075805887804708311191392442640378248006618508426606263482333109934018748862366360839654972041974949941863252185903080016667634329309610091990805360619339252394636284519179749077049960745558160737686870770263918915452256733809903315248099018181233040299449590087755449161942837805025807626335547622693578304826547266870474569423414963585934945232170479821017631010980204275854436879467188373614508270107951755504556614144788959743916138001796324443963774946160091950450441684362166653820040147575930401308044323265691942512147656906685274772774302098734305685946484806408902584226085846992465301371845112682600975414864254577709706062104187117931967092827827147489968014532839214932742592872805320618476221760544182073417264228322967270420254722533048585970589831735196820007849253568132225703792355203097509258173372386140556584448486213365472907775884873774288649921335719467202985731978324480317908415293697949124379118731862640932162733241262567019252466893635834285756883023190901848731768022056370709973966674318038910874564933318606567945552112559725089519050203952377385299053608185797590358968817549068563623984117327021733753496001776928191246749628953156092647287710470910081861628133251114828136523880061083548975918199923231081355430310551158369107268308256282839190957229808195090561143412818141597545788948398363636209178064601509305143749170787171740136296339291089618957089640968934738796395558872956648004320069911648230332126334662109730406750108799317035613311487898454665999566187364569107081565335461237360361076567838265973318601720363630131448366717744710434587765616891630393615396296601575131109011149747399508641913202696531636637573378553711398415228417072386964201597019198284899984181797415464819304507204044236977084248616843715458614353816259609655132731992018082746399283033038031187846374470978970593267366220053760437920528691955208749160275634176739316854177309597327253704545744420605167666987643172912324128843375887451696929207345784771980854658830017979662811020704686630127701274116702451378013166589054983331077297895148902284996072793912149295162087024332009079500380485985442627655854248841088825951413526820961230338982635938499985038176177566751076054802783355533108140936028891458500634886500364211647233554533344736421151355627713161089033368266426288005068721059309822417868321616496265118419220139281309584967368771132096042172784895968143372769621232651276416413636932294493577978407540594554040796412643346798312982636764211086610988771128977477179457231052256647332075482977481764080847436109654707627661638479925674345391034375724213280675675366398831246595095519325414793577404198068604071909229040199265462561024791899603907652064961587718947809169843016174609426007924433770697168442734975942958270409686066534080696578317893960461919396131959900017357088930191345895544722748111288814759717544674962361330741335551793660445272115474314068397214395943545208753500909434871310976196250393508090665134430086819561425752266808029257515997608573337249993442069700145981450636137444567909606731879358958239974633939851569438334534729432306211043723447038693678868851757086106657922422175355713265002358095911809205097503469167224811759190951247968415940905485830103096962539463478035942583447291755966683399666062595956990119035498886901277551614755442584504224304198245758331571058574945326723980302707769428310987056154449509936342986251596991228963931279336653766822365376149667672819255900313353160285321239655463813995021743856592001902610831060652787280695529650740522759008907016417056793358706417256334602212053421514224693543196165505855963897361880902710369470931484613101875397883467215365410105244853002125675826233354251496399036246067886767301746351310023203206550378175424341007556507926094701318672713392594439013556472159387011253661398890504186786052579468147534629010595541742612625467553430420035874489944894104035550265586372122335789942243185299277890766183650800460182981742107286645670058093471000892274732727513023475514111912120822621861672880991135224150535897424328088915051689050851159741880648029712345124379746372096970210443552032560553079000858570481743516766141396842710643634901320960178589166685460118200870182780081162443087170703946738720556810284991425155879787289020334341039859568851661898973406820110838618255250886531130687636240285904373458822358126339087339488866512428577460728864755762447544573948345362611349497497123882064621077421849306026647408392662766265529547029649827769689335093438476402787511938232573785583444777689737073244615977072774538110912995066456714511593404898986392376227017058312245676279796932188287038000827981039400768358674892741635855605243777995322513702016391344174198836035088220628874239377272025549118280028891571924356678712022027437781905377026771449826115562454605371161298613311150220506402346697266539468470912462517181258611878884300314414405017091551907428029199366432398822602762235371495034390816747876866797783792474917178265362267998124512142243693978988246191198312553607310714717738531293770484650887649905657644631773742960246248234316381004253278218058924020918330656466097055491479653121832949142653862923225882115417786655060104043522528525959551777383911292907697533021593352967682510356042702200419458387925886992463806033934669799893246522022395493579183139488704274708507983270046905221943557726858819136951459641961203037261426720963890074765550644597453155284254066667320829728228121822198580407353350373235547819745363166103169226035156071195965492866610105267896208176289628478765030278840243885094757832763376776187199389702959929158894527765473226334940619309441137993735378823086165838431454565663879765290149476095563225551052497351711544982689364896414767733300669388147456665969610087787154920930853520479991442364032933702451872619744685864998889022056096267086472943660204276154859829402786248982190254000599643060442441792015102634491128374153639177491512461889816722576774247710761976812542125704336473321168481967870830951350804748308216471169227741512670888724324420285107762224065889108389074279262229490000751122262769525748829106131145742107768235996817206669729969909305009077971033272031846645757533842955706932940423376937903486302309240633992303615162967997454566803004180702257836136481961002194768736238745240481812959273759821279978349983082406037253646197300610932048137732838813454649937424104960488433025946654117955149240801137824072848636792752879112710156333530093794537395017896218829083194941884989477621063135808083324788719539757062453462753326289468068306847119747081012989748563681014745765724898572790316795452947432989216935223107743655376533144974738070530387559013646342059079296357455922829998633596195751168963263118655196214559390393352518859290448143297793723635295848772208510668068231693118595808853872900307571261967705637157674124160408548217082529011784192513731271454981411342550353046414410701098638555561853617546160270167489175146408077127061378829083337769399008596311541039118907991753153858709363834498412420122352747419248833050858250417568642447463784444571505301481375245948048584936886954906060891695823318342066170415566439136297702084106267022296471696100573044320952400425458349475239526670591998204315908732844381145274456649860488950710230345743420880560236232585607197268894869341745072640402409552165803843924360676318427272869883985748965567992506248410503770447290678923119649968776608492112951177970951601363938312357517581292926599016809874953612365715130621039315142646835426920945289795326211819903073684498404022300857765564794808620733917976272558446792180230246572750170385366821993743321977133732623956695762571180136330523908792072764197836202522437928037581441242836132870618826688753013835391684713424902563394466128119060768713468691277699658017422557341506456816111046615268033501503973211903212660567806627794677448759952589465562822859457990518442727558999655806072464465131594869212078444142343298246478175612788078203301645196594065740801605228176637926762360011730748189776537149331016973785050833012268806774713770851977827655190231863766258684125200226618574412060298665475535893098444679307186164674384013041995883958063823142664339210304882777652523214147755241153591294709406507121516798755400230246543557553794073599503242580223721884996182632752750262805566732468599383205773618255771093676753974171745832253778688682570803603879864537983155409410396932251498381303213500494673456741831987606661810556199390256346048707961266470525639635716050509219155287218175664232077195229213510701906767808217301771077557238395557935320099768669476341799597994137909361862127434115460560494862266878667112714532042447755518910140757484194540227410247673767168989030535950655154526395822461042948118286086017257688499111541602712405792726554736098498537670640156478709533589017120338674528546543828706921737544142028062286336173428156991979646455855686468495994996806756057354571700922590403156097752748697042428714101901584265664286907385922374663740085063163190231931891915280677830183172972143867193535420290049107643287934900813905092097046689680349490260268853522627381001362895267372511135940390925599998082448660160634670131958335441181822775997650127232065574997016487608796454558478318028897283273904125635022376941185088562114758257368000974366295819743901519703070780103639836457904275634000185394189902447209563953056947172513494618688989423092867347119448964840696967904658487114122711439718636163435651986687655561275492097178017270103606589903669307123942369245334569621293926835276029219422052077576045337986354293941743906563546323502479514817582254454554324873815478307197348787308105596867802332276232861022248732487390209329964432552798799400858285450107523421636034287871057999480827076763912346158725924715676111151203602200204553518944737566013047127507490846221253539688896320088551633330652815099528585447939065844814352825921831413146027140416424577085863838396255311488593254686719545469878532675362430250129039318249138322709761783692302280676337239295618841410844275471503621390689305566716938949282795402785382019505523092342323243948657413682769764473133438683171728057108064794798403575801082826841415444450866625015067811563085255721670531792212887861859494976490076314053262699782208388901658758043924063741172977486956598924390450872259771161423546918324192918056413679695971296685378597172174552452243581185773034504501514288872601679618551193501953774158103892109874161199779730398540345466982018435300314846107926354701730968521054976943401297520162776624299539697783922541706634683967317210567570200557511856416291425846744833582128438916470285297319237051811210709769838505782692039317702789596532690843631971087840829598616610283524649888507106462486798364906124785647142349825396375336172617954825991041872629220108891087759743254704890238350276764296772903333030810308662964294388614561068692972140675319621852093233686251553105762245181696073478864947990430285232690081854667840046611308446251287848821458915618225874501235120264588161783583462597814264665088602041410141404353716956448605542300897458890613352440333218746372919326235800625720342236683704872746976583049217094388440479229500740448639565269832434133340155009902477520966810922961781403206259638645058362790039141769268715669772627577357088770967524458829382711884830526702337602768130293420078083183688097603580820705251812571822868938171649556483995890739628595571095733906310307586604555850780143096929927786855672253128897455573040164907816379074454000031518899553205524252097708735323753497324001950017072500210034668878260975034507367118083193755367070991625650813987766583501168602548866006360849576815481491929594262172675402955543313415884806413941779957678782351751988785240923538071962746568733131955314345749308335277842770288062582738826596040510814635599552154878349497824953303157001085928604646290009028262976989534559603419809821578414642464343926756642262427968175814100981668120847246582491168590733478223541640521988474400888017763726059297991195144254729987198202291330633298752249849088889611633439610548886337941324828917520719904497455488685984128519142647548505383564335359698341983917499106259724108970458893229228312686074852009917369733340404522704497507782873939260229003241091341885812261203522605767244099400559668064372431930505673933993500831496463422573693399175078933709097503048658677038419129129469723678736598171239825700901471360876659500772304476939107240271263283270935709206206253358848382996121827466645933951735349610102789138338711933578273803708463034593150660382352045283411443545971479678572816991132123510908297728351745647970372063289088870534908421984675513684910580820044814941615716436581257395319069391744622971454785370722189112148466894477451421325220248773956138464742618010408527995064927707729326475684403323567523942698725649838152735896162546392036995266661760109180543905977012660797259910655285750151974516039786720035369068278870727044236488747886375955537005190463677352875643656342001418419993635147762779460037390125272314325081283477979670236153498414788514370966441493960716401272122031405992218498994537548600843794753161144658528658722161221845765060524586251360309088787501904821079782721673804823954088973822520742196155967679999545309866343870808073601794141119146523288853496224259529854540703022389648865442000698063625235088727268681999713106977248383704595496409781698309510700938688734081185152482017488962003564536747749089504853462378506990486923510393490619658811698038038269292521837682842188918862200277349717358042590445178160967030430542220092055272873117543166529351972688158889642726731115388312598997544071397853673086502775472151594993203921037200040826791656881561257722914785103130342212320448518892171294598754365071167199381978131052957029386233124943834219117652702017582696634697911013077357215381467716121080304932255999805028156303778321174052436593552732902131361302673603044819161036430665303042220775049667868765904531745194024178893326942361173544203194191710135327242806606358416876291911721951685175241675452411011856254096874713769623098858733498387774170873877828196144753083417191578628915829236863815692710246667378356097825674358914170654312575012706326017998718584054090446531736418738806327139390086240414646631876404695966274020350354829603751003093296164141245114218704919960052620969215374659880898159805430024614953792149519742493323447270094880933883645934943791338845558546146743641964080194566187229275132043326847403809219050673080313767996213750515203156515668562987592799543597957322946328113783951082186914930250663607832748306318255965455895729573531041424862822551737548704022692969097299447740302784525795958804506514686020275299783823262423803438580612736187678215810766842265217535559630313260862002560368478991222714161693315356913509492365064440364174183937322669413432835285883968350184341238416635365436353587275215125763587805296617837553208746716931347150603758999882706789749585720886213316645735236213602110835488817230036850123056155435869443391901708601816746545855592316131414393360963197152706904246289396187940164237657238889092564467403066537157459907982945527883117664859523927796728731447405553826174882456711231421448653889398072949977085042010123396520722898700789069051236952446123895985632991071626650638077224195013715015197298039227304296613773652878037188307664566219125496541009923758006248501905345831405006842618194770179130301316022213559332431621688862977721071155658159474086954940260674058198575557039434360763637618823891300871268521527657020936248426497209665264283554125569809770818529180712347664205850980890604642296381358108537499038110380931182487323252544806042912250184487446961308588341662535308023108132764686652343014616760939684451934973769138638392931849806442459799285884961385202101877413265698778297347629039344866769500894495892470906084844156410137091555316045303774086286513685402833623034479263707623100967974897726923157550202872459383360041002617856915761070830189963048616615499214273425336491290494201549987676273580859435121465175008563414037611223630232858237909845050197824702355430685244529843985228876723027343292769042890543480461073059549227565648146921144315324433668980509632767409603870781369978217366587329908847653556460464015491946963385794041966813145324970096237103314600848169412464052334948256695805366159740067039985727390201394100200921476817525998756138300408885739096112860520977439120915587938373812491867651128114227788105146372879312625246458517702228677563452840276767097523387775479742418609052792040034734196302456065329230732329626021204820352809272788294608203870003871566163249237538616075947351391045753147467891236879019555441638661026417809843697229125567284995497073805937955186157011793159025890540529281356203463966560311751671925829777781687078895866838321553569179767117984015212344979147865521832077210950801937045377684562067618130380936497857137338492472328570802906692793664683502474910653202988344900159958000241428385540140847920613977460897377929855774296216932470664686485980595505316751372528397316290614218549938497863833818693830727491891244077788828596702679982435909286787732397263004836724228803494137049415065824406271338461092495626116642502903596925859265718461041700212299186467419041090955188748192818788379287118224120779097899006192102279027497790625158044876412688490085141565844367305692289941786845577311763260168869807214894057851686061290800000004277448247887556534283343442551647170875758026087732521243079782805898295234133828785552791554997143901449517004671925253883230806677709651221121130382578105220253000581708472850800399465073585605810762362992376980238719263505637352809250364939903182884978663492161522434886585430127310159324809669758267109232915990428093564007107360234862463513906352068978265661461525962807232001316818556250102014726028244302484955803139691938193919045720880353047502313072760805250949333392941766934899892805797389025060541475867881016937301528024433773846610186433347282438611388435757214475702456716057181906467012301671338381322231680423646054248997762900180504560312463423892998631837275481825284566014155048404902751703683915203540243117062803770965835926985846609454009912914361703833815867087507729039801203227213532464501383328884267652576023061609543421544798493901674099181689721217688604376457682178433984499961731460854028053478753795807077166025801030367513425461147204125226461353866294146358665818620832846829014952060593489566735113772053480858056799200117935287547692719207287257870108621734655007298418516412863023861849885447478962594546846236562137644207884104007790941615819225184467849059679303530312926671092708927652156949953587875768125205357345227407722306598376677789104082270990458694111602527599463467987331733913060691885555963917513818221997810258579117621241447636474833426094200662318354729096115366712166809793187270540411107511930519288810291920914623522947164185380685232466915001466866484334868904501201038628685185690664264996024133382573605381521445911330577933683247332246875264844831401445207000380253237493569499522730762712054391906896419381318440215916100678191316633215723061715691359835885179201034873332323700466280194457066520580778449529485949309105776712308015745673412557420840550662871551679321674589107304290700788859023039569695874751037057676328213138940516395206434458681832002028219792855652339859735760255017046642079091854585611849941839076822265177776507874127922291136007680980074892999267450214104141274590387601719046515291596398022980781214754268819326410789984903686867423280426938433791527374368883220696879089932419828769370540413547622736176218672293182686903452552825084873695932562586354850091378544202661284254995229072408237252960037959811437890369266133716126374839160514469287154107718035824550909540106228906193705774389513334926762777773468192290181957048815442708626164092907292408247520610369977471381887432961827403572955993893590256787418550594245365914285741103727792921657937185441562241056288301518646074572533552476152259876580690063203252045523979516676913249765016320433255913801363498176808183650724193042308137283832750546035337660138437879828078163547444308744163085592191985394515564164130042493933894818344979292521727366351929570385562103125405532356371118893712914888446898516143326187360572690837307903273864595197923789999332625320353042430272428232081582941012295417558967592863383949741855936684629201900064081399516770708187995451216081467571641441898135405846935806056839982994090953559222966312410236188092081911842831525253608963767226698186359287018993712857114661638709531240272295281801163116411909664975657682399116261663959415246826344266279783032025474037348231064598453945183598378929849958480773922344498577172447659120429663468651747729905210563983619524901595235448668438338126958024244839103346585508944149832072284609773231654314188472688483478989609711862200148075858877786195897822556472235388485499954327322759777202195055856192364341245149572322583186823663113020311370324131512044488876247452917764581473649687780585860312561816568360735994848398161279936086005767336691769657655135228533917588974301269649149456706551825656916271630756191891490088905215219298050757795289280869995805613711902786550157719210308521544910115085508647530578835669431291514156323907447087567622629797913873905745284456624034305961458221916859140311985646555850896308739750693108238117327932650059482128961417888303053582081738428152145768293992490163865354070821769561286537561750625403959378052355386399767776585301995660501950597342976759858324050231455491581472105730566270006766162262625776664666397634141762390143364014263222749092505478652650250626583654256956047618299991444611299642625988519810005983768655927405365863154785613899659903548701574113410030473824628673682900157898825555464856716493028716624721959935877704219913469362229963969055574640801591016764557357549773412409489181061441367574294070459817468295063664774031085061262879835810728921308363973035540007197843268605181066045615610211107460284742629327116209702730551844412983210141312671077465660966910048160372230348845720027571694445180890465264719102042258535370232354177475682578319330772607494912707759037106148737833845837491215283529059926685452652041396135701358664731811131450589705353873379787524418016239089873360603404131875442656017609122926913730052478939884187668918234965933677253811279794675933509613919159035514093072318012298927985815522075601003571246726138790155892643968383204567974929805358480919928088242791802177091305118572145666455574526836883068224701113174078960052723631049544753987549609546870155104297335322470015995344182149075298614504511327229286268821322859338151669066508345150074891720421315684519007152579883841802965684577704746693835739867495100191444690501156818327903057392821789557514425018910337582589234074019048519074053653801696575836268009859462641132650949177000542967066950030247742453350334704020825044846746799182251931374610603652416897413526239469545172034318355667638830932493339358239935414332198063903879910273934051453866946049063644806720928356967024394388703965144183579259542532994685050531519925787107903569158367633154438129631251505122039666331959521644554856884637545274012019806102136966992536554560659142899295203209543371308055527689380105148422188356090283783310229179975727732550859914580743278478714116539150836802448375121778041753758634772566290057972585323859458751379614157361723840352909193565211950741485117363778315877865223815025926068163549816278318311366659218609542893785583547911784359497485512850528917218560126530987624856716738259813256944324862774980749458845016276660600209438314878628893557309794077054028654006308196531053081882170884244033208035295070133999678562792255754194491891862200924289987353174289099251087280318851763532649309865190310999913590361755654854511559729060744519770849473148932226106510543299757305710090496436639884577483189623335189266367295633845658715328608821776530469285174901677709662989610811335306302406692269369898343578390624016189078248309425389633972641601261238821893663075001156502998235858369395617622408882767756990532021214948864657266548359325406129836895802518755848697102463028401659623689801354942823611676008986291905850683589963944570682621441864285233093115659786985883667413955415697941892025078528510705861125644507478095812055610101353163535772800859502002261753183046750736632148213503545692862100691724878710223237381579319409277033629538202560169664240698261828590667414087205095779741715002090991857064680536332301155462761153137216608237849624274755430336015168464908904960591005949899507672213040397533832368275842421309892952931289587651242509158132424379610104718091014806106250891000787235835238162920014282857324726161669833729401643831593206959067220292905937065179383322805631303270607256562729910899776467094022956359293529028326381098240697026665728529307444068300610574955004291574657086020198804398092065766516417215787527858771455327734487656413996175518917037234762442024801581950506412715405152662649107387011694876516222452040259827296418658936912009779804412982879324481146343511606237377958442485759959818923380636194958608103229329128268400390832291550919775119320249021124150804025505516118427295729705493849323854893353635946492858749866883473002290271273400689298685164544615880562713876496316360634945143532048928545301156419551039898826851676085555075151986962734366599635324753097192500959897733149442595306072767558768148284756532296915710664871186151776542457720591491891520205522659221877206201598335018138356729727025620291518817323112594248082671743252776725263485354653894349997805824882083115009576048434426239866361139455993055555718855230877856105330935098446390049696102225572751152790566036593262475168777118165009232512075957326913608588826972788513765617443713816995269363450782805533711227470711801599160228636485059563465299065056734793442445211941630422754845421278941477862767754323463488481118532775940385982522335750331687095360664426327699995714571641488514697566754353833945680261712995755837162244721237516403557146278879601895594383775252809674329337511701680331710702415697490521526877588670804724254512976493707957747900326091344903781742445703907819914281574517098380948546011244517785825583307569762988533010415112122928598801827119921245241144770543204889763321836284112586799901579132285867977726486770331622228764681203269972830527096932265655732487252339295843961690891311736933456426566892993095006268307526639395613682878946380304540978742791857371079505870810118291616270450318443108451296794837141471189912329237275577446352912183586381114015173582817865573426381998987027976803104389602851654950007179808052727945681283063971666060665322749632818301900778602480548152426661012613305511426613924706080685075669786259156304178112584136055122027136092200661043828360196816077170984639291226619222034140484089812146688658231268981379693922068083466540040202613364406875733899919351281165619968609882057322261120531018370586703956362102296799483815616424966139652244127713291354464760220326812217030590370152790609485954099686387768775970560173014546908885026236634469553568053755427027850526781255153595629572472819278676274569077053586184860972694529207088502481091417703956977776837530602353323999285611583273242688413998958149396734886844804400737406431414885281551349465228479148323295137700690717866648498275686178847137256645301128692145141549198038336974498414873370373486019140024387724249124694661931787666960440008020003290316059936753391004793709801362183988567670403199516255059995912627131469545330899147814529010302722953785965876014410530051968374947726659514162396366361181438240827612391487975403104213546246686950903455329927456816821351780491059484110442686875963526747575228641398223838235388065640293593380851157442540802943421796639310962153306080110246749046277467104026165426844772758403934772061242168706388403023396549643002511441701250056383219337700150342683412618157423780401940582773508521891410891728362564167748072770835927888503583464851702182508747618691933773604774147546824349696144599456549345252202198793049877743378541100971695944457167365125233629343704200793899873169955062938232876098540597080165457154915910152541376621222857729313117641368344305509138869449601002048401063151166504285755803045581301006467518002928081943762176397474293427938051684611538229408717627959301402031800496780112451758737865722256074425949711146889239372993940020572232698644121776062037732058989082407252101670495025381321285685142439362326211768008103822135898695879135865099643686555725049922014266657007638571358717259573650408114927690596987311097690649368473031104705248544159506555845964498228489493768917724967438673853976856732879491064210777277469860922544081568434990406580192005172286980224503003372883117226532325420593319418643332076414494890636212462289257487694645860369317352468446696123521350243652263796127715844220661558345308427525995340259862946749571777138736979669643984017685012689410355399377909512502587784922803763403354099340227224012486055780952608679086947400361475936384646915530495269927683544953583425529321226048593587492411202362534541001715143409545448088666102559025962990920582629799200511770223855579131048890175978055903008933291778006750893476911362976037312040335361647623525207280801047058900474964293854920476714271726487128712791339201030083657178263183590806597391481561806015945501441925618131395832058637360968066278376871842358095937861969138029111496031781584045621015122187911395253640248678727308417477872836653021678678792018709041133785906724417431409740768355359612934900881078973626859270010841974005301750258558384681219222009749126279282237944408268631621036906354466763744845380115707384393083975714147061892649006499482519572266402533200436417563238039912878005093063626045952477107803794844258379740687596466095297199270762986854524896579862334123495583250597542664122355219787493466369624799172812698063606283232289397692455437202149227748079114314927327498868637202550844772344554749919404698232102231011582659429256838355977602016715265089556971407073639029083905359173542086712375337704761951396661116225413859868375716524819835908651207225802097956116564818180516681752271774256521751799827179362770196192443367576059986214326137616956414883000489299568166878795749336204890208782497392934075091883698327334573890815813009739883506221695679598556755774826471944334992359964116005869229606828136735310270094541034927904878246804730860265099742231102283414022625638539762342372447247895687649230641063768731360244462957183876001124256044079965356543990427455719632753374920855926793652866107321897895991872576410802976079014229759666346044815603967360674282086240993093971156631870767158906990650908103849558145932133265364726332912857886167859182037533089510722685483344506188318764378014329949528792803515495643280529557511887779312114333972579876558704619354418559243242315755579751481111224013534379280024666236028516565363750678603314028026306773533057436899159855916730434290685753455957577734705985447477878751866144617621011936914986523876865102963592004186508346950729341811753862205724471047627022839591870696267494064219679874046082143144183091894544774594046831839788985145148054684585628613121443165198644801424265412678088204543065984763950711388854714082915031666148070085506181142292862743819129149166049083169357652634855230851061661450539831067564017399484224396439061342469266716878396914127447041163726828270640663821764299547602850590864863303793479200597692864712967106075071395586033018204388395699301548769735761637535390571465394846651626482675741750022741447275747461803711304447768854151271403638758982253177648625494962754618720943348840545914384381841248006413801019774229492711541007606823779574956719614885299971079901991866778567130661227258334136392180156703679439756609189078264216827990320269554495837505842268037831061159664441252560579503230302995829419447549299587461806781125519980932479660732896563856564970828666692281915771411833135895646404114484574617467942144759297424703816225433166498215805070003802644707112691724670936625797643166744735415742972347188734266482980110281735660784748826698231659170070717211015604373096887000265711376053487511364410309384751714900161813059678268696363881827492635448912472344979130808564251249363875781313073770360713302932912589994984526210868817135842081550235229776940522050601318519597001675863324761372085689453010105313260213425932238011411192289725757162758891958804015630881453429301610399696554802947248949557476791133862937963684513946987416289232392882405432359245424214495345978808292584895002871174575593225629689747647996332670495796043067487441744322474793799573164115935866325548900525012649925833043939931439431735300758734242706978592121541937397886078311362162234863530560729722787716771085831850026348255449790917827071125408740486712878274888543550184735942825452198562879561884888017112161948940590656095008355676699927025107820406217521771391184986460331544383054445619417894188141416846383634038383770860727590316063093426359707163382180814478434481413525078744022604010710517623367665586305961003003511527010371750796632676229966882736253832564949256495335629370531766371637087542639785348977206288773214556474431344132180973897223635679124929673610682892072864101903274537807543972212031530991457663646709936348446575842064635849652653338020731990721198703159360375063558016358828203191282733926357665030924612028515831439133043496440614918328665878765726882022543954279724356793893861311250101997888758500956756028295184068641708391241894392649779911554349048242651577721078914056899062744257982686179490623752901349981654418925036605413909770723594491727726290717744319869946649462458444139005810475359002364322348003101188625962119534331599936717484044824088846748913862756696917046183829507197992824676685147662731489203229191670336099461062948968366210363124340532712147315908873742655237183486717141336802258217518240264361083996230549417672433235420595405080856539407590323112612804227613968933420757815136379909343703489726853939683438630657238069346198376507743751747959280841375378692076148501204186507667041964748361033263145872256565910415175662525390226449840921566890387989624745347877894158366017088326791132859876179891421296071688481344201681410191812390496911482601699029433787166902427873694757695797864641173131020173000506258656301073768528402789784615192682782837121406246373443168693378263695335721646979978727026083346521372713116438886040214084600335017639136193843819823024225860912612214791678471846332081749791422715168013270432950572900279628742221900299035993768151345287552761775472955042140856111486654273456474787744223090723143480746227803699587715644920024758842918553225381600474572363396046776455698924312248356736620853652761480460832136044259151362698079927602035219678154785871831061621268617829094903029265289010181668157819188704496456231014695461027383447980613987205782856350996832754924812202324447234320247439429596485481507431668143807198007705713187192898532371122884142802324554341488467620798485286966298517394069191478637484436742863489488595141966992574048714780160487335410007259215163743220745159171325016941874273193569985763408054624858661817343329322725074318591231769299116592116352587569953912139298935084602827475905690916987525800837546072785275209216637848912941170152682758251357616950790201835372606352139238941734174285168728271035830086937487308245160595914326778487343803020309251659997078754934777136684602144641263177363978405690060879046888649311174235381270067008846661551620435038055376892225153900796294347716684831343260462290576411986658278028238768786072132520723995190371250716173408668719951814197079966536172381285316556612760390015943386965349668126963222310839403000707688412311667140256249884047749997158878472046731214291156070205316934396133242581001500093036191908335150509292684826080471260650028846322989351145000141351611600276266063590685780501006483790819560878801247247088841280479308317317891289341367849360043269596144031925237299175809673028534315725308810359609364604827094891830235739357607730518638497318234549552537238866234907303786860423207117142185331483920894853883434107572008415396185365876921417421866521157838257919486527403944748953129860054736014802551679996255715487941268783167960817614479044577451104734360066563783212685862313023294471206007269581668007262844018602947104505193812754154689851295755113866573001965497674382753435950025733394002428411681106628127030256430177765368961449908412399012836723964630773500723851244947364048810846949167022279398913318355673914777013009413843440303408340788856064225537468665224702436288521997194637574528923846840928232356857550111051259302136298483795683007990462665050562728149550513484505820760050861788640402093135089548631853438679464379152205622679432354832911859521878493219560004067844585331551869688127551474642222335641327463900362546046651290527444289188086364736129685549626758942801316685358190997377805432932365386481769464939092025481610671413210240733108886959472702467240143037333729402152207789132978302734310718689157889419828526734898631310993278326373996973292258893481083071400677053577882714761013534434579872787224046099998594147889201578812435984537261126929793333402583476405734439604645928138441660264875050370168633099711712831094188211751098814633109643012772922661626369262972287956456910059578631529832900361632019903735682995948061650336254895421028643725889142592965648144475595084827733262038507969228764978611793582229475335546859231971207867208246159844197337667076741146387816580230226422013030724362954421707876966527002285088082950016788690816491958900666686779866301769089449933581240005562239311035889895001642578926296105204670040006188358997323399174651606763881318934783082185224280601206727285366814064265657414001143519999569697766738583075393691613042275038279358448260280428078224363641655986410482941233730537936542871663086766506881813328212453145627865976746762373882133683721205061988980517993563619291966720121312410432907599275156984094065769917999232054631829087738282991079047944614875856187931531801702563095488613633406785504328624049538303741949351641505182100595056561176935497683016788704051751356954413075276735273938675997208036733517506397684733875594622004543285353320479031208401900406408369005147960076441888871825227845431798722008946347753130728803641559984469218496036395285655720748470281348138429984068100995578190361902057022236442754725763462984228260577112149401670029823790596598327965055291405015519589445455056868368515296226791551876403186223804881374929820599305712421523576938075173509118064023560246528130548125726268183398635182615455772813308186154966635437467888002522317666419702174270824333276279114105280194543431062843949842465082064656756232339418487109428441284396783937649532186047007162109609796613760694174341278104227831414600453313269679217283643874317246988064060401350610655493782018488735837637896916093790656316137816896177247106253223854156156266184769280207463568933492078929697816162967685641496855937832546633475511023840032868465690767978086579825771881006832557207127359942195404923818395900707927533638187896332003606791075809214339845048391029950164515365601645544017280130283789750829626084929911503603557385450937126582750588807614768941850164851247803562540196891411253258658781552103314107100734721132983955361248801553845175961229591614874697101337595725221946197963285709094740570784435566501299428048354556633663400905915310308319925766120489555269025376412778483979936456375256549398652614978145100451552339353116655592827458262414242712832261705576837773175588799674952526425026475237833713886444192460491029424625690392564694992495476109150831059034538627698914008923543785847276018240794391546480154427732507861729298877458286918504772406656934625852473926079571588733637021609721287073949056618814087971951412993259012146913957949518103618279317960562335076969368572497330770089854776402288776293488194895831082288416537979872578756829044629744507821890919769592627505403012790843166386471842343365799813300242892792922457535432085856572423503408462509150291260657065668480127593250447146500337412765438731115818456863257213849509764419068751251291942666841938365408656003337009227946228858831573547384050803537368537825432159026155819273662116966161009493833511782718101463212558508213589543653098771464191603962049794345859149539809161309527257740409717301203497325416493126681500802767238490985252977058678559529174085928686021939603529861461756666457175442747584409658794538242305458623525882197743772440233767944397297817931262605996108665049145548836824477485969253724228351648670559958942834428839798246168446272107977226712767149438270998503425983909678144374599787934979811719226357371938801670079591637048757412696178383164691921979593496895370264947165497885535646266453440645550343972957375651026760438122968599255115048302908310340137257699251227801130836108621057233888703999092263356994615822802537958145914045749780414173521635116218798488679175375633966424598634187052816566974001034620572548005123222710473496331319535629428041638240716017453765081721174389346867563971073104740896115250095027823406693308018680934824531216419428746360984517799078630243269339933293626281491823282885997460996289541719354997003196924558631573770274990684400739286352718824763115752471877890177691872293428943575961758390235938395409956850616188754833822436609184348862820160924225300171645929607342736791276507744860435784360482054853202483989901994820294203223735004073485135679080267722664749954698492998940682907007064882500170019233335345565255585854764498634888363361762396273282136269181535743399787589970003418754999404984654412477424439420306933417616221765805239311321261151751332917340065407989611700629444445392348027423087955261328192202711817582284407254900545170041811090651480982706740625484123535275360883827135458619732206024636259881378817595519553315228159682869950342478021800594049387287409626799307945980748244772201653433478885648966636254239477144659795449181356602767117596831052460303131847685608859517609963240827336111856399070615513013236605147624555516332655307524744938650310717355487552956931162212675072976356015022825180851775271388496858303193151345288378081684622365850425850139662538321174575261185478506108947114374848230175861676815303805416847990820056263744518903679047400032055445974408655035412412288121807680242667697704543000819105281329613746666023752625772293555436255894885515970026655776468805369229529493013922011591435950091536915914308431081358177291959365332309256007730251620775651953227983109115832972532468147695572723770287559785737686722575862418168810039348946040996075297543854081848854574878758802871439681234773466748409147866788152110774846541124893350434488152196804886703704888708877054430647978846495115443398335575745637981369580724395478906104615896280719988037836878726956321603320473142391211430782231729023585383170444758125564003215520480132395580128906363545726709261474452163131470638193799515093869692696111508270247069517623441230091847658276836730246936265546368628480658926671875545202525761246812007012578857972891896004427049197760319557669554190756588966895082689449542641887552628708516128919086401872237126284983567329341127177868603008486150689281083212677038013829311080128899391267730414493780666697017035907501683766598106923576211333581291289888890510378549334185583109346674937978592798392529613022278102664601379795710613365798768744851653201167772939785143565008097245277170694977234078519438254431054090419194857236729499149635293458554729375504556019366725200254484036416243735200901166019898143228324204823879693923145634698279930275953620838874112619538766826953917178216686352079898357606866202023057149979153277588704939500448630505584879429632291660984175756752375216414739431129457246583753904788476315686494976049902316605334854533822916682384309026243009886255564937684712038892107344367253059843028589109270778315822654145721075820699208555478880163545426631752755357368776129712564107513781494024031042710927899348544570160843804853921632366610022216540976848853699490678856545304330671727121537533683554471275199278658355068111226828031739626453936524641157594051173859309178048531614202669057562402955606539942548973649178094178920807315237392921757856574700862739620532834621384382677756563371994677887366515586995418843981754511612030398466232171800090855215511526613456128239808331547927866160220659865011990565377223513887587851710553872366873685929110200441720812520155494943665068879138169212418024381924449252286598357132427145620312984562917733576312333050393943932503615958487880905221254589052176090744097342388781959162093003505478722648633596603682715205724117242191326066173750428791610316674149920946458076072137521612279372038917054710630753327287280178740081050460188368418342208492648391944377232176779274176017666334612154494236744692462361110917299549571824983789942331146259370727000605175196387007978479448430866401477434946400355932182375910016115951747033933888807069377145730122280558902841184741763076144028230011850517326952835485520470230252364173874222494315422984916860906995593042535727435945733387999119923416168601607912462061216689598324229912213631149927154079885734017343585178036537354131840903388859314631833145801168380840213390740696915295251343465612198209014740488231469566875873979332284136061814469289724635138390753064751093529531458675476451115010139073554045509710521266162327302081346569141900825215424313468871632214050504876268847786457319579743364571017248334221030342040673088637735760291557755969950373642352704204403099817845249789624543072120895683420547299984494542201005238809798811775354741925930183879127811411407005454796119643781723456923615497134333237808751265705479069029831007539316368284106720392643857311191239953808309061228583532363007273684502356681459428711481466705409463552912013134522973982667947343007810146207536507670591496090433011504180029268235579566285148762556002996435219462250186758755854284403320675119161878761153643185737571481498237057705045170920903055895795873619844583349530690049256772568128189602304587241611220998476430247368030012499682821390553586303087447779754205251785375621024399303028430183942700661570407239494337388619915538249985799467154942454008635778205979251487516550376130906283518150267896269398115958914107077846433795830581227119171039906148150972500603046094035321297369855713357945778444169186444261825888871238948781920094234176397658591264545061626827405704879460337477496610341475244766275163310483177814511052096724078283045481116580139339221412541261801745936737790351498709015631812069783474446374221014266026551158661865083054865404524495220294978913101999898073173809119831974943919905538621730101875530913947625474759255233232183988728924141291278643367448567678110812376356368118643747362432721726541128761859278071278732865450070047111175075484971313456894179913852323331576493783255467618783959622300068217340825030975181340072814375667812029281454176580206293025115074636474281025488794908559281185923004025665133248701613437732647488887712059687198659872746697876217320796892242644884691506951040126845464779571319971381224266132210334275871732789392586032754560074934527902993701026185561134353370644270035439756372529140500701538412813520234157323994369156631173865357103649365096829908191032141554251214216174257928984588131753849314735153954858772816527546709366880752272867583215991941519707755469302006910271294545527323141146836282167598677067545067371977621410693675006828722669474769765889462912736793759585728334931009091623686896038995925917808706559443942269578826309180593496995430026609079846533718822186180805564402018375225110384237394926243594547594452774230493322181631977521825714768035753838465511474540361029538411994139474173120026058236884005635318366852314630590374189921580344689858643835941763697523157273896875899239072419432865844461242823607183839832865910433624960161415775938321530141216336564166444774960297642385247188316028307968748562757640874428142243640311814776742243261887838599889391382893594665257880660386620699839044180167334813270885525017112769801048182129960447151175191801939588745504671287143848059286171074111404409485271329332628479103224062960754767793107831602482923378123940791747676713486008512014187177276409076797873213135896490035263072703042155569202968410410378363157559876188496202456715086665478369955378725703531317269452620649827247620536531018757999227725493144658817231981816407684579550817630434095162687145340652802786996866018742324832131314219275993726109777777896200868536859960994466746648237082275342705472566142927382196494255489066145080171115909450676097782084299383223148396384410328658404820652495861875967266031842066119816770297719787622330636195909322652219512299434990319730552359208214007752333426612428473081595969651296017495843025746982788504770958142287503003101897941666043742880429949255019588430624358517162910644225195057379600327479193178812670096136985827319380705751563356902557191079643741115261333296722195708965060913020774585021261373998398474814180291860880097445026566517134537910015177806588103347975406341228865057481626061992975411323849363063310081543182671399111838894266135653988991368832821528626575403001513145547137834224198277220655035137584476447694253714022906436782570467901404767597592235818735876766517641113927886274880343997124266625729576326923820569478410252100283422588809704316205302111272560051601309744655148880838456301602598294564420645700494764007871234922928969873066962550319332528939159285108881309480285368490121475051918184572821046776693692547631887185763010564591936440855070427528561852530338438320542857279541927238582645701825666211856904700320221876767322298210493822373568941923018020059166609148117524710742834658737035492252576555075755432736706089338466697205185235094501174517634559961924311318461319795159618194448226374434589510821547441317096374228062551541553249368454694633522947522922058888254146442044487814696043043353765661149691118248775755052875202825130541946723052277421503041761154703736810381699626499116421237106715545771982145891843582445814931564434961090146637386535288177192050664554412784391583170012418636641679008087717241597184230386144666635930455556296029460879585506931837704699457031186471354608568914991730936235220769626921347852943157869070598917362080753156493588938828524487714485288682582031656625147851858246687383266467106455164439285305099682844985189603435727247654819671176956479266903438328737150687369048437880275837712116339277004915467093869544418385262444419808907007669490138821262930627826412035973809770329703290995167480022705412048926320034487390314443326014067071275543829478494664691215962124940867123386477279652922243799019672292519651230314712787103149212692438084784966205954369177563756051329953393331650911693973552236599155030430501288731328196623666654686085655972526168903554151867426183525022443098505504378542832551542269761019790330447841977682086170463022164246524153821330081488820784975547229144780130631410149182295366400270204307316290621039086859785219653821814476850575567435949684115119918453990729965291681160672402671699834190630336844457280916999224848598001222779487453196195935627263284872933871026889209310110528144028453027387190213466287464151785874451545433626652809796756140641053751921187333074998034885101950720880160758060219701388793932898400158584438275807156481612540320992303892844898278620856709247494095386595832975293502999365148027567567242354169800159805660214715791489433685698147584400727155172881523807442628909956544747324719425788837470866385338344842354429028216986178044725560869293501447906640455356317850259182971052082442862604870995278454366147154117611939084297445224211854934951342004835840141196019158732754078655819511928994926398794792172523129062671312337251832053827987314937972295486460007400480097776682983399515641054779896635900052784178896205697633739972355214918042371850855519639892973128898260273387876336278612461768847584715318037396144160332390185082171405923316998233779777090428683068626993608502161725309521768277387958743570634157562188078263317316722972964607483493035877942223068877973861265145106626390909533628827069835104288730029919246056271953534589400842144843997076218799456190401139794242209915816152753170753470231011182311730407917649044024204406087001014973883383876676125881454868943911445451593633379844679230383250656091616732098680303159716973578514860182662545361164693436826322588357254993559113996049666755808584645615710643983738794411948365403958967705882903000207336970487777270479926005732227376351119881526166105135813106044171426345940016494232971649918834952977530483681618139790961359212903226234649870069149127222005060041557823091722673935453243084292786360698625449125949519724595348710589052596463837086407094477779872435958998439220784968312027944510541479583394347497220714548897835241387476893235166122185727935915456518180691638582048518448656242996731100826252969842387335377912528036322575058877097420843134551163390747589276496454960485350538091298067919449088680474665022526803998038653762288505322353378887161048150482897557350430099053130947462209872726395924883111504252095588375918942303169121822828246809859752121218411973114272130297761799316225607666316428107393028566441326758021660678180134708448651920292500871967383899017216549607968033806397652544099262004640981717338236801760570197398718494206882512173902412641863021821661710841141177366492350072623785607258301176110492225110836277284353891980690659796075867919456099803541970017788744262686461647261818954469891223910331018278693636666991742192428400592812657699956400621044287231788165544339962100857697192132587613211113379587282413940684604923200963804546492985712857961992177509940574861585824679706462867053483416788760410547240529267694539130296378335573363100661147475269941511662718479852978479705436678262583086812800538358494907269695641870271816917347007477072072634359192482261491390403227920467444491370059774149814380759930435634185313382398627681047759883591092385182327714102609176831034108880469479246919849698576403598820039613979521604180257163357148406937288172679144175272978928189023941921705579028627827837259748066539162702317349583701874029735605876167728410495675895409011972058720226093921080977436341872592928187792322902048945015346763583673772231839005893187829800512368748906624033477115969800483498613279329711046538482085959594139224851643702152512553372316811295535332807309520823793044483128130155337693660442840549746035752786858245114124081693365115563055673542341922397713284685712645657052702646405337039893906665475717853631717484433647004247486893554727476257509728772922788635008782403119656964438277236680936489088684159056718378579859037051711179920577885607108385456016904862403913616191602027171878649169520376469533374368256035358321635816906480446338650663309087586256077829392181380535139463980134204597611736107931773945198558231964876189324142505090373820983154585082035794557875358454613259838485789633474338857422964632412588173073854041964705386126426593244715100557500293018596534447627908773169006400133348367909714895942094343842100147301735763312191336857205208855577120606708797398157474494781945276055274321918957610641393677377620422317640092517223742443901843818105006055461868328150454316080548231023563218935777684742033301122537676082271305330253722985282010535431224534153901682267350086986832898399605855174997029440002126139919058911605401889007367295168988914416003393541343275413327122979940831193229090841376232283970781991934421481317290812499987779098435039377792047760584947230405008601375449817897332462494008721004838827619782394058043213616368139668909772113951878792110094308266008742280587434225340248504385392526527645362883960065743997438818138308664728951362100257812557731272291278966384480198737391507265027480137212764983876542596021420441697718644880464353196191680517467542120083098280059794949766385472695076432309173354778982647804976451066108083470161624000584388727821607100616118952602080797998658762629440492373476993681859122354816265563411639502877407470395944995063079742943129137133906682103476304832860321356094734891256204587383650575902336778577281711870824566908960718644410471742303304839047567548589168347810878030766007695074791858279766662052140974156218233138869495551429786919115218593746527764397266332811071953604961091129732501663011285576291991452778699904767805933152009443412503327192509168108467261752417195815232724588099652383581887829025986237459904569898408605715582531936707886923212948860140607332020060264108358496974279717564150704279083793945316252044943801196924390600799792838898634489787066998666699866991079235610842741988728143133190911351764811110955279193203466921661829167674431586305000443049841558405307725588184970636188349036834873693644778931984173176660012751196300624237727481878527681089676360849064390331044975512341320722035013463250071662151734768937483854752781149538350050109996165449138864733586565276018816020301474858722493442084495829895796406724296852044575521840936753510424715341028269778937746396521733771520380433430411302571562137510820238604707752167774841459059711283039521336967414623114113664273713223902374129345249976186701166595834610988595030797969240796577497662522817765441673919191350162258539945664046893041712916316581717118669181581215137722107739135323440898305977138805117224714834473100587934011001797940753401533968456607342919027771157120197695491933198255803799666676640852231384176395036717821519295296135751481294003470116549810722683536051383061857121718933252038588110932772295900280486978110283926332825155181947143971969365102993842656778112906077628537357377112446627910339294417219313340129112150656386598514924839407989842392750031479746594614458872981259482187983510348031559242870672787261765413670857876110170123554746224245723265892710715956854104451107033798631719581600776898882679613337568497833984784362932411874897030043857246664928681628641248614458342456524489221907783921932682138964867109593492318695827047262640782773354932483236864949486356968969331705024248117598616112757255735509589550690619184138882543150356112709650505729133224915635805388866756220192624416345365743332503601513442718335862421489710310514719750810138030267666268690718284901398167964334895346019135807655581826726290005602782442120097808199635748216410436025316055793447373938420368115870970988229762558384671993289730007001746080832284830923612510785781391915797954770515139085165271022283647631413678226022862461829088821565025090472327720817233826136123247679842315313317819761327550976121365763287418176173745917006080879850076323658230550962631824932622504700762835478844272899213390909410255572461373893665820521370667216759452937116946415460313026314333506284171050676084298008055475403097870377097216539868641370852276810789965130079727701434966064484196477760775304672730096453871078947578828273385352645588567627382097016132012774938357794172621118503614999414961411271359794306906416762695327002956179461677698362252057723646291558048706673220037119905627059774287705309841324366365617468197928576611651064727076253745447959275346523114428365462712381902026213310213362506427007445523815214004258282654462148473794930120781337239563098472480229344303326744115354419174548757469704123379534323161952636383861110739196098588999447685270196941014461873818929070901401376090438893538317550646514447185803723633849772767935325008721416648425254058571512919697169915302070965080104330368006118863487962346496416071629668962000702791117892269593753434143585373894409194799543557199430377568269254583376374641297893392120310457589048881144111564480130989608391160212353555400102485630603948487728472589741333344151558830006560734131370324642378976506848905043056430385773627576288526043199497673275363293092466169268798908619625933531148315935130699783606392756498080317947331080596639365533701094524934905140569425296232407087120774864867984660566504407128072429664723288510756615771316749081276356601678606332969532488416706622070040535276387789233259235466902366941543466042779760883450423117118476417243378714937804112935669985724707556978273904426383363913023967035553246245657109071498013441610939241020252254563100201008641680074449868764487975987348473304211106688011894552873917178739547331743707994952033008905686524233377947894545984402139341730899782380270121462331669911343329937142542514490840313095025375093888023245606120227821623502605556381497192600369998346633714368409067441062452560734683074099530607809776459223510233333934390406601520103392804781986457592440245919251544154653520908349491597715541478267505082482850831238116025667995784255689040309329160957005467538175329106440892843796380034041609690219823340739341264077694789257946793796541232696152441747108665557815372572590478006245532096597793976506861570325538113230146198394677486401278330432387410876055275787865069542877578013599282927359760300744960847895788861923552851915128661795482427315443908803313620202778895669120907711767540320876253914453764471690160009811956828737089953472519036258944430049736549357763935632452710678989437378017912981437592799919857179432949034873077200384232151647763089196435610287357380895526397521491312052409600622612484967734056720087361905837269582822057649764900512451227438102033825784017669145374806754194536779658463664156290872973673790328317956688561772645514231632785888122241055214862684991128305678373074857596323501830532984571862523195762353482288836828151036953695186667827220071835638162019433524277280265840040091204259158795860032244487936045587550855323329331958228009940712255715753993067217419082984542759144582093228857551670353417320067607932557525136074892276292645400506020302101660708730805697189309052248365314060937911010665637200623212693442056635711114267367557757844724757563916634405190375194325742087912607497891809475137279094710983312446206560213158302734844399691289327321790715543729663581160979126765645878305497479697831742022293520698875174906472530651627326040712761913333513331030980881466343431460986145766269135378097438719361375507357061452209262234917477836329190660757105558165960437264306325119402345910714986756617507795173539384838859096456712734919924797760997948473244061135970794536376433728401428037523018725736178885222341767238159016561073814698084579492930727070887593089186495588490029812458166395227398935925925807463424184155220993593343334719995751262749451693079581633096246037104208178293890261167802307128509179047029126508834003192058944458149861475790254219539965994833057243092293828158064160916958457816404993747072253883096864810807252776334930988801853346634173579494754977232326188002729329563177978045095251853365258690807609615157982413068367469667546831801087851256066456984493392475133699163393084075776691337791140952599679606643720642558871061696652043388232295317041017596153670775343430712858961956473523500569691544382291579261400915754902325194428420354833120992036828356802256199419177440680055897480859832446858412645574414741245131880742150070679793281510353174264180997332494420633848495761765189970977862037003758293542717259414179374569730728291466652699773321732364899456183414697349592448588200636622580963552992588240625471888557109260020961181190022254847746666915208411523893465107613278334763797648375517746184616853075518198043198039485719093544239111245102556143891827211903527630992158709771227838090261271344249840673391154943661133285896280255470059722487573853908447552078395818231591162477849258690706055898201888794618500064169333823025125304666225936920710174055950556386752404879271975732489193528734048642857043122259745634825328591619942024626346815237305422306058081285984860134652372865288550619540066713794256801223875028910273696644813741440824051865146043451387687902625607121876966417564186626905622212122272030122193634959204031972563811604488848972040869674824656876097245089614992222030230352913945096366297448057472139008269642564172136495290333126669263785291197981256033417454688647725720120353008306230513584871671103181314149472614796653053198322528815467510073573813742777295873153415054026557254076329340634447339580211352803186108101796254516687814773817396430970280825205852083039876303675237030629157320268918125759246350613644142236346146098876798572384009167166985985565723651416608374969109780159824657794497718284489376565660440594922476251371888491512319188189454726997558398968442665381727965043904513752636833492062399265527401227417554109998735942632905669731024715024369104754462937734457009315831652202381923956373474209085387042562251574851695471098347320178054286282164425198632655072542690274680968806600296777619153587290019896913142261033154207555247891000524997977750471218889716382211022848155187816337427800469005474418589302164965546829551188714209357011996042575950326077488809321071050216481917799608847613463564938317376047985748010613585972125342780875218734033008434489963396133328383134563957650268237348843852285636630613014615755131464497236417378899177268554620527814022028587312747718616345823560075064943708909526057916643960120667832670156478800920098973557372956642750006047975111599848882012963847113501465276630483752148336362269051137384594646631423302688473228902915153191940054107033994093959045731210455645476723507100843955901780709314039321462694697582181579574432224393831245232446738858275599671761584537480560133491347044096745174864218398298917139563227561079466708594464951432244725674130886515870848265404283660771643864596805944566994489090693029848917242257931046312470417081414364300505940319670318444066708642177312678296983172404670639416879078497119118805656705327384644209632209401738756037469315194532774703288674841990417474909042623845855485468839779090518914501893080614783596937573536303052082354529848670854261969955967084446555503778457886657758364640045998228627609357297811666051469104945137408278213792287937104672878425253864253369257110786812089325686271184741072016765032606043129135763510312247021904542349830906205737812952123516068502597812212408107429048649366725033945709976702727999397528762549360322584286888427252510310990254172960083365933795695346882030375705376202936317320191869935943694477591558876836828214325334621305729846233025457004685750639150531872338211062105441417050697482772781778080883397150972798826760637809794875112398355656930836525562157292551356508650698389405321356750960815496586031769810754416202870432302066876069492976263318953916260164617341979534509583058228367902086986819067069546766189854802573565290394780252541665059675742275852398247631497141084821334962433732165288876044790531386109606012658418857569797684796507838904302346402542494964542404895658234199211660890908361826055910069153710903331699575207868464624243000649093165823195132624716468955947167167308952663998689348904545754239743444775682831341630372062339753940162669035458369122288986078079689208589855888520942482819573936409669945306997601498246976209120008968352019497777223158553765559402051986324447428592207140030941062685710993578440946892171614102922262434504008659156474582545859264651537169886777267568994505279623019606345148392812448884125063704680689679604226528394801539436795077280873236576519699425366137279780676087887185868594101299416185937610066854532700628161338856201620189856266841693290761280745556230445923828954049519158469649554361145956761041443985655918899649450961645913373962472742300150163343067880570097218208640448311443556962991534205869040183503639216323575153385996020290472215021090853604996125666183374297515662104687388080009645726979712951089610709998697421888745187236292590273347730990217712724434066470750119440907892115347171238709092851500195224043850519203928331952197049773941390554238347797193941080667045546286408534358272992178653950237431922312953349285430932160729167402201172129593700662202894175122853896410273537435096543812554119460285635923650879769956098114906377819588473381564686966693461656522060139621913507468717952826165011620915343278575518403468878528389282699672199120117131208942941106027811110411869083119606922169732528094998857783103777111932871459072059479153099293402714789062460625017781048419660614965738382496452282079957494316838710108375634276483615608891872032049603923588589666617590416672144960339025806883742641821061930995293820712938585405376818657488941772783456825428888061973541901593037196482965883882695962866697524279288523899292333575319410353885416782656766414096568000044712987266751183125614450830856650200921441145005796164807499505650814534054653746037429611294882791336829444760048712875846086601234440890917872911220309306951937882706736127339484018855424571668209521446393505795817929253218437331162152341268985505868363353389061010708184274285317931746369673239376079579576148538736220952235882529904819627540862338331448744118059750903053992327247446912017800245764517235279318900143915973854644148501277328506791388330026313180722479445707594163609731094638600702661353233393761801945815591771039963686008251441824609128026123041197946730359576931510177580231637320064087096808748822719776439621623663706904022345735561658930358949465792447215017986922279746117595493178026733922399995813358010130606734556244876690579459121924001698784866429358516691502363026231566624684285657827962116894647821356130897301919851377669712561979279913370343360264790564402748655850016680876890577186875116928695930948205278819239196843557758964136082442093527166832780230228719745558097868113609111229183084174070781029031309833260689336186963841597914629773981089599407552727420116238734002133870798326374728189897351207066199696035259085103699218310747021686755334057914813328435845523052319291537884105073175919125450152818680014878422252935107931293927538452048225213566047703200315271167336529862279526492164694927525424173227523152531942581931715243487814739925357097107964055576077333975470798184726777084726662885190519701863518028062704034254468885911844594337618910112837430597489415127718099413569134963602170533051334212076176702880316863030324887407869020639700659301265645352113488458941119085811759050933402140084446216570704338748559387208616342007644425207454186976804329610020528050415506480162603287433890556334874571126686656858974095019004397010419794579531113098278608344721094536571253901386100893754157581018595797044715425193392004340201570363480550079971708453927886992208986802185575780861316544072647847560194100585920194769323943202469689099640002585837106861694762195948637219246604037955312026737009365304826231668141864805730587948986568046952151524185160149724274047935480019228704734854068162879420535252091193709118891910825667135546306468992909551918449237924404762265051164537133314023172671875209577496139811413357619125635352823979330980103370758436818527352805832455612871575078856837718777860801963877688946559106356172954523833721206959002691384221649880494046606000581791855005185958059673113357354419159170629385601721594301613375814891254843777595422574960554460860448184251264973828737973717395714715858202065846914855769886309510468426173060952409819996683735776842303518995618263004649176877001061124624211750368665710230644231767703489783960838628784629653498902718940577539594669651420805110286942261064209349047490687623100081078545008949314266094728027993378394064754496204616556383045053858525752308245339328019597014001084501170723059106396429799005898704845609349262186672507222705308386786586978837694659660725983974128065487631308686364619788602685363452796329216922326504902031751158615664443452254534632420978035652188400602967839444114124810479069941913525350772974604735681432490706951015391729525427761636643644105456680745214215295777556352856427616757994165828513187201065458255862832224017294753029262014237491062545563523392839856207227975437049905221073099624989484394604804985834646767096417291986925044580798654141930354677962733534002643654650681498206927504815753010281162352468441610965858936657258122975177108486055942611529845822064148867119751566270390989843799088388173788721116124733654429538766814372105359258231566759888680630258788379451712604865796647489039415985640221222970770478430277125565151198213266134522849511020304632959331193783255027980843554414147766396825370300111712553685961350994068895335385317821762907338013416765566235541436315405032691875238633931539965753426680035585336187183764514149603136083496460412720712939321586615008292259099351201104292689535712606148345295794317716965502115771698163476302964039004145260582883630479311665839469498390777536882742382788276138429520323288280811433226390713555100461265806014859801680231789973215570991101025420171825603707135200251017655096266814992117160962986420327719902433302729852882032319582924608731676860757710176270606759245257028492346149931191885127132292849785915636316921830413485193797626585289102101113508042203242708406582464064290783501273933771743287675673670481196948108951717830516193843054777341809430591263247618595316223707237720105060748206261032714134738315239164792879576089514390283432410349450912514255331758832012205580334469167322805971391559036443407122525669941784147989354796924184662122425099686500280761542385115063069717237371998322184588603405525948710816877981555827388656286267285257094075798963216420623331082280890100512299884310667952669677721221567544351071667893413527836835781299828404908786380209285535238108317845105373887445829159852922251031199863743697267458196413051738729633046995607428945515529409550797649686568278420083331042682261083576916227476086237993356024637031412423077597229080657073739488017707846226076151276218417891584594091293831185346232319943912100639296269032657760160645594378637669216043736617796384896977379824385954426124424459919536809126634625852829402969885575116351084645613193786215680183393690329697856914328774551076629408814853515421100460464499919985235854644433403074243428102291773979754342310503518376751262331904415911403211455003159567427115061035571393218921550730475573166949800009303267368393757724658178700444966261278959388354437796029650019292027508092161756185049042413026986175092581292224970752657543648559244352127608419468997021936812743493656374495974997861094257477142625674182018961052471171702694538727031269900659521840829780368111577946654006465832835781075405242649102816742568165611917179338844322697474106408801742956815318355203348482637636148660382915631949920557990591454441164735495186106577172175110246792349132187478645216741163202279845567091488413455336158393148592139071317206254039200024091255897485241724457827105849488371576665405526320656681055165866371475222171396919866597124549969411611193269714569945213645223465787338371309407113167244235178205621598646969452308251405903942918246961629230599256579067223642055486883041875448221167719719245450833870276589259231340355886084284520285449402650472560933070119584053454450822189086305203756406068843872964892698642026066796824750562846308109160732635346393191716181349494138053673272445808960575420243422679674278630744185178906867043398300193636880455022183751202697780150779697032541973249547775230369344228166229202067271713026742113962332912078726654866485544184152111744636429389337640699191194322543079682838755733535745807553004154801034902423266730822284219190968084759333770248981955771054562049948031846715966980734149312961357234169391850769190687059869217996666025994589623814473336076752854457497740312552368494813473315570163522496352235156490213381307746067602309544771264682218669220022993853406520356839575494070618736422476875235804459105966651732866373876140929468932657203996415964991213978031695440836125593154801876490168161265970143496265520367506332483593186680168346667613282603543796995468914180061972384416270099302386133682403385089567540745347559046233922939367419850878542030608285535292543671229402279566933449619352935067661686768617663772600242638761073254147061081668413575111459882403950976559786646936238386584144760567221970061046901496361489061101871238175109541117844899673170747854706738979419891730817363726202069932167832443633034384187312031802183196200821270987157398771249542442222371186223708093927396385875090601717229174312592018687476758219875417551287338656109096753981152758705394065099319052638430252033912620725733934515648463786590347264879601321569420384755072399595987187127698592078699998983585568225565571991333360354536506834904436854859628707724213149460581449394956269566505585452733664901849103795039964370698360009787682717648111817547092040054553783608032429204098114383138053019469774708316818501851040796423291407517411432564143650881037745410301718643754944248156733776624024893168697567080357207979544749877073114222582381665030612234432854702630541680258634963976495105574104175962896390065183523537046082604964587109579674388690543033524458398068334692489607709084303728069494405467289458824045493864177705558343344858557699904042355524319353344323541881033956410954864060692832706374464501476091225796103839775272620465912787961740375904547068582164439354795755779831436529955780162442719123079382324985254049560660532546867123103951582909376146478947789402883601377302283930686900594937402559601340864653843927761539760349595107556541439635622276173341306648439788332285540218541329577240294700260846900394691743881656761591997571974936774194026054530702282627938665136695095155993973648445594110063511001365060301944976117725890735198929810486411405649744102709152102580309506182466960931792343650165490213711597117277108159757515843803479521688061529495862954402890195044372107104918238661234192446967754226585698679284841693548080512373609717694935224934537101232931625725376479541781867868024346186027252831842836464713898660183561509853040265477042350408480815755281323738164845261839404998038781375586136658649346608470660434611480206737044529968899063574719419271696367845865034979147631102254078446251801725469896330647430086193880473716993438181782191469562235236259767447371040569089732564539224945099109556172861099051795732602956327796431263326861218868276245623417076126172406995599649067796920723059494456430647902305037809005707048442644544127690904751469493007908189171816999592971639119375250264964236718655614185861272223231189373817014265865467145288716459679209012950944926194406822979195796718613258063802154407367653231777665989399762052534619409031273732814621154153719025926904449989930156311232423735414243068280543497964811114747172672991372614398105364898622244733729925426229691422356766691522094089930887787798308689898330357491293257717676501889073349411697527358835436354569716130482020433613604418359542366342735051142016155774822207954829493309749326859003465227391379870706667982355992628598491178904496075321725113865856001204801420534573151605675762130972693159055765309547868176093149086042139896964307483208462297130695418580680961204753311792504900063186519329715186603342231322568827846543332587776975546784350338281353810728893966010903708286382566144260617821902020045078169612622332216050572442543112319212468426445409772905936820713875314922582480621619544921442984036974117448504652354206862006025145634404204040345295183751919320089354810429560911822094761511830348436592330479638604397752786318370659454411071251752116593411081205517656073467988887525524533645220183982540833082115263413303708670485754759917491194728084444665700088709400994370881820976784598633484130221328725286761012178235184749661369417410472772640855900115688894687439620564151578768706370193083193407580974695588367156806642335187926250135424184114803510704155366546654217818850780334636243712178097158984177758003663414777014428514408951858761598090987509334559159918611943509049101322412897403263380328360596717905478449891746169617054089617603912326303945354356275544662771194436645620229989990762971351455596272427093272015100787989358741451791947929688313713799229681140037701759761233191239033281729032121250235229160051218353645834931486529393277956375760027473946586076145339932723645349513797416180811321043149792435845132434983956330213904590650765169522275819397483855093379565006198420540540816458003502062201371876236963957540850752144992992070263105255130558845227568982113035144619075018837409251785060414333239925412748179725252916400979562040066963407988083767227946823105251220888959201552769696582592709875093986677898026249814230207693437125933550050866538338806047959061895654785678371342114959929972884048277754772318628467910206520913668148770792425072503871512200841602502908364251747591655549972750824027020262636497123746949674129676087283301439514604334578336177619364290908811850396163658503005604077956515649832664244441191094079271509799698068895978576217466995577421598320889070122068881926359819319911740900199422674501036576877926311446541267564064844526879165517768653555828970760466435178177852540775587905356861258833917211296553279825016392667647155445146223181371452321646359378339188340509719113003217210354880704703586442418440772794139433470038581073527865322869968568510655988065117730744865875027864987429856758562103109527966488043050750612397684523155248074297582001554440282021600072911829495297442730234305707295544981586731151279370964271931440396496898563296223885756103109253170155480576088063262025909936357137380434173243366965984217461029103907442982309957887715786926911001866615789967901967446823399901082443666316484436324637405842094706904284639154659165981573391803327306287966006305169218289087314123259645412701462300417767542982885791612737813509940971328387143071087337442803167192423240503353446302594690137643556584875111795197643456273679939408051622073783331015721368621517602966273746958007935296563502154983390411869095868641770902608583906764769109148267396069465853087123429067048066238200478969832282382881336345899583692350147836416568360162751039334021336615301945087380843677516512552713036597160852926175218736279515283424505861507563317045732448191823809936147942049472864086962889688503039766948002980260263743644519099403032984749454734299527640358922965636656973170220639644707590553425742437359501201472364068664251636671704182362983123242941362771307539879517561059322504804085480696852700026898202838586552929525779530983034995762327228444806500949112029928567957354074855774744555180820673673021471926659509627498111171243552855095832161549057508904495473042115882625942848504094713335895958446224741248101685818631272181164987477286057515988583903699213003256731315333901263355457596495729409682772052233764711970227932158991243304913688631308778603293285765486016571495858047701968919585156510377970592157768438285983650596158885099938939229283763317216003965500388638291910241541575835935295004801361938229380316605972895689294050139450128005567220349724256256220389026534875374386265541729280850604421239806240876281067309908549683584466812208625928651076613153032880631495449816760523661875147345635350654594832866999900663426241153185790443985106063462394607366490424677025651501221946232945380736978428190829775792028656632748378414569709951481334039147368814793404430101191521077711865447488870960684052248368144137078502005543684570256344188130231192792930448646395647272768268103912501949747608778761770697168902097545182029466503870602497758685201972342807835514592937339618106212031898055082186281012540145605448947062374659895300022434857536435920907861746330175699143041127192825933985224233562189518882433950862997383589999066024026997199117628151113715282467531816944800642668946026404715977981988482082135285734888438085967427091072026058923609475199648434736695803994188501387225739221303333249073984355047582702839451049381883446996442286341723284924959663266807189152184819392818679254902384337038581953683214663689680493820409131679130489197666002487892326299808493270290147324006585395410640974348455171456370718188505613675648883734466664924738349784898614758891496130993778182387283159490275654614538656841127667374050760039432946500429287951073233415042168423545093295436349369970381234659038233116262260424851036045605519065759560447957980960551369020539560565744041989641516126174503421534176063223356771071704052384661957317151796303740257010259802006946636751859145374205216997871985440697963654221520358630547265544795539469875591521059757910154046834039985745404986418774757077512755102993506792983637923138549047942616112316424896704245364015939029918376237294396930623263840076258005242517045934998054343142689954835114466038052602257727348007475024353620961173592386629578512181364528159347738990013371832281614803962189549430365506104187616955083744570646777285764335515500162687053966879823488719205679837489435516906279074801807906799285952582564321852030321235291194719957787394687689562898720505356899242343076764243001670634318365678645205530547771218753513938444366495969877544271597330220298746697477710337635027321997150612610689339835595104265642478461852454681072718429454918717437843026270328582226800657459472111156141543683052466350585859762612884067626109382911297791537203075968614633447165275483533337004843498866777925627756149377039152805699769784935241592162615052415776855264877425622819418305596995903628455157785156901186777335046202482251848578040091291480025233889205263524541245662247809313799127736970692170115560720812325156439974915842979591414591565870444090161258068729579242018408722318578193025935251106839612815688109000306156406270457136798619189496324822923401455421934925827279231525984830413429977813694342208943010155315366613998418833546440830663161820014443389240137817233282655571888127228014442622097474865236508044222137767822302802179642344763709826813960154547932885565746913948169647285427357302548225325918540511492401476673635923669853845793760046725551121546872882514206015611207341388032041389563800082010635074636202532289048485583519976012853786330646602269573469386944361988299737291676147093068088160405272711886211679557531203941161281529090339975240378667856624094535551901119840772161373311945715039942575672642305886181717408459610591257328196565108925304741321879316117245313509688146123736059788286901227983189168924191275282731764975061576143828751046013473014783769161733002173114735249237904041148511051537720788156895104506851712024769199242056986011907045215609016972977382233313105955033667080916831262066440849704779929546221411192570737870999043946011496551367827786723436911864626457726394402723641645865493230830730184760188448876538130452743830888838266375535787167361373859671516408001815125014304176400735484695587681294425328815171234871561386651482578512752986668858991314302108253515330638725830851468716810191825037145216230478662915585718376153667237687626360880442567869039901762502327109164849959685970688300151233740967889697013498670166593940996015656885639394143110379667034841195167015694904579882522899985021761368677791411650166242895438986619070943714973731759552935963217767901982737564278494777795614703184091416189090192809127606558533605809836328135138798224831567359335253721324750821546022632371932851218245815925404401662043184786434287185826280381966614054652369342066705716721968872525120207737267459225382451693006411862141793237682320850193433756968011755563989235480781284423790599754430579809124054724740481739443510635442107015336583264888136982950514933481434435997796306673572210323173973739753919493215114797816702716436657152384497217625285810213931879682998646253711149014192571945361700336360371080930561324513146925141449029431656675702846532890878382811124089361499242928267881840189046131652029101202934554257665489524040844490545665036128376217603693538974307604223045649716982356649698178487952441902297203639828619147297704749331798776306638228113322866326508346601402379204869604557251749111515953689514851742433682756171987986437109031473018099745156426927469146317263205945748419460822737230889249472943284053025523022215784393171786465010769328178074028058714286291210375293383131147259405483978644789507426137528573322251675594956388926305086129048206117507438839530178444738158905738691861706155936223512434562294606959341049669490850935492033843978681969338735104967210558820665707846796829854569956015971691587481788164962997962522435115149136652892372480079425667925491325659202545517327157878467785840512283432397598470097479768676134850560882741290005780947441284633368451905792659275996468668306128314774783088146726875348037944939570688702022401977707137587596451249655572722905628868992970524038299988850380904671435889985159448948029107111862627904629525313323557475728753107569187889185512591737111808313491029147089291871219206111780603550076165473083613141414583936519457187163330442647926519920674581973025794633108284493768457533469022445488196985360973130641103394518258968234228722814697954813159314566491196142496194585062551306292954825131539806400616493075064106565239293047532089383392674718724037208921594010389106619508463976598766304532373646902349029940271759045904998634404905128924011080202990203422218017252421063611656250308947955293939654229482054546070593695083828434238711829749847147610424483946580401194173891113146102225650515941423201424110839362894789061035458732968151635023501152742967024971753160481794988849483792246692258042629379787737235670266917666704827281062568341487032556909671316068924018627677841060552834889276891177509402937438903012476495349795324116464117034005563628626909062026204607701593072607941151435205394908112692920047071007538524327121545738073761097244260547559405520264764005112256526643790604092264981622851647655919432656404435903628714680745171150600602950850092126970158771870179140475479791362027730494569869959746356302379301669259257512764087988977299513735778958356433379092129993187291660357606690275827962265513583349946043868932215165826534039327689010319258302490403220663619822639959169483976995787052347166345708650103353803830895343124866887411300344366996541678557747491528586809899578482281855509719605507870483517605442563393058290895083541488161471880775322589590497528595948677184563850110102102776994125862259521029921803362627458891746720915569851152150061681204128777635392637214701396656540252940466681959314693037769622195089974392272171241635452559409368335288400920738459810337871309654973997003650253423460751128201169447412149698370841330820429551158629716762357628987679150190598631973529527025354254937148053053825568522299009400318886175090610279418399324723244846229537095809558137551022929105936742886047766786423549957753822230568973479445882721848592307144023407628034413255510958313129162362216515617906847675832381804543225238068474614219329701779285439849206948256946992272971589610057643761843066721833144687557785556101529798004519227428810084652760452947550337124418836342097811099450210540133162962998811134949179929935310378263991477006638378369199834607558002746419647122665833858700145287354000839254226200150007634920473431014583331169545701892536507426279359365067439119499825291874820097108530012701214240081905635588207542703175120009772008036544835572462609663908061846962644050629165094198957903631959894525888421129358660460300657927156899287216551545084720510530207507076524125916576642262592744678584309604102127793117732555366535030653807987418013010690290290641887378039952926438317020930668871798102725010779618676456642138455637709418067784276581212400876349288962605334243165514935348264233130290100995144146424545690582767991964153206510486003599865505379634981842845309979811098234100566839953494804550696384536448713230645178462515582406874155995247821400180246030534462748958732167511792427839067131804811483440834836799495981256459641998721391726600168801368683634643033348416269457751900822977778755175677593758302504476748568420203304532575419353603721534792242408892858004058492477496235753165720744860836168540490857821572904689843554892869721260889111373448041322868343674879975918300209533456968466720047069767724773121465825240453319717745307109572457088781023484677672753641473808974364843505181788174846202535433136969166524848767985726737470946043103237497542636193657720665057070905291963636130541783462996755618235770517937068286312385158896608055608004660066059283391011350173437698987504246549804705952843157755968606067068366138042075509828954366425952136245468778496105954247444632714480335410115213472923271647477425221217270621851415607973514935504840462860193512302697027030953018502276672737342430145960827317852578805403935106895011826241445581097727190710716822957211806224446187228755800132855841799238771404011683871232595823228381247181245725085881080548847380037323613802815465159091772817848958068291888621753020650078702631608918853899463014762758413550661336118018671551114164087785879563201409027267341662949528976801628664305393986827536262233258045318339643991699974060084879365277013740311458262484006777483816257901881171602485714301658801929145668911413041381148380688406208770732530088972102537393640250994577035715925109612429673981207931791100011420410275432642546845107828939840064128094362047292721835320879827811402589986127721227346100712278249199362985311298508269478977137329502994865957303553404016137890366090259966015139637409691384205503197422190536242398848762872232856068729121085605628721128492995081310136196842746895634085855860704277776432220618307703166623407317405305149082291842891793765584829921039313577372868199819259550145443910015718262871832469940269770749400021477259488039466606761182497215945945486589940440953528429936892843733354001645743115311865722399313198678834638976373388128849990568838660053967241696501933092611684828514017291181138938744325159919011192549674998060133928079741082459221509506819013335121605107766399475693103709441098194891378338562524918577275336558517500302990082203163732432931840052511502494771900141742714484123062966904664634526906064259337616609772774081459190787396351242584384509084509224592623531775205278425227735855081473833474522182986572997461284686238905637782500552000545099243544492532435528003957083452522041941931126002868906446699633639803717451973051476982722163651439417361296635159752005532392901223568621326828233429925488948420935912482287555561648636006506503559786512728400549105890154491985793957697262620894160781206191683976213424805401407770785312151145026316009250892010957265162375186554963108812213489092312505493627767234710745123482320493289880668293501155818526520297501696274126153464305701151057008694513755852579555061461690024287586890356115642615174639076535132692388180170418908043782250119593076347257365006680335902131481410353561991440189255569001653679440267341899331663160247126483496362726937468325680628698856295155461165169863049414170337812105497083755375560821824547191833468599004756061945965552789547170238700209588777041572452301719614754157613375638343966622427229340710594981712685661144758064590418443781245619937633361913645975157090957792420017596857028306007022958061898042047914740525713603501107753095269749337192486185487556591899343759833808878468760316687610808290829291082803846408210965640375735337860740489898232851752669649137765307060233962284664202918677031722059179867611303647078713739391112607425718273975973152656002587777408357094552246582777260969324204203827885320240392335437365127001042478251409204069781785200780947262222822938592232660223885763477822883555993975463288891311483345617039520341542358887528190448364769513132553039438587222213269088307520491260229250860424180751438480772218339068980899875344545725552647683856971528087665357062920436466491801280288949549493750069959277917584007711413082685408052791795438345203513551406139269039030159136698889647812236667830221312849592225869471608607457519405959284565286309917125257450729383454030247841352710196971359339735397619549866778093621775042594866430265743276086538184242725550893356467859692067224496861398066436392231453957123748191727712968890532280850284705123282101761169046336976254544580752463890572719170195359745759213637200855050976478773735193020232479457954844299807440046405032098152338619845876392245217623418016612533573776331790196630250746843201534280496714628980752309221897000855381592244874946811434981952441492401374773374337170597759709414216765940451763612763179531812202201118545003978939679129815505864632802844065300526349186814519129368642846710475327603323562207076756624832616480875904520480190749899632355990138547668094630231408999530118545837117229900173971121711986181394677251622762401088031913024674646306264463001859277738197018543606807842248343794793474516810627589957258282767572326898307558063741196977756979392302101515742882009461573223564799241050508889134141780135140703993356841651700887850140760239362375953050550155238277933174360841768262001097655935554281121842520122490556498226200437245036299037393241266724298120907238594534662826717174361763539853573791529446345010978840830748273456350755761212805721956055304312002619037224867442341092090921377924539724627801955885429703122473597980431006478641701016036043942003748777397833742100251003007660578305159801444652358485584383975649707163887140983233309587431595180753780296641219837208365298137942872534208843026183892463485908460273819349870120930804943729907983716382637096669062684940277849480477267041709026866843119295929040647265701423478219874990576997124571917598659741182688410202715408583915357597686014350848558807636311644633711131677360855886641986902576733232154631292542888430303518175172887977902074996338245828291763405184353192946764662644268797188345978112129392122613250796428819321650326286420725107433286829974047016108601236628571629411781401474144919336846804163806910322556054095290591774189024479272105350191597485819776093044400559780609037838553089345727705654852630655534283087460584046567251144805330948100114914362408122492407938701069319304802430146920521818840205957169941474574780275580100831030821489097165581099164981174502453494779911675047819251083632957767734425082650167690406968322440602899016855598368627526224357179720966004910865014232049759190804282078342639385358515434467509046457628914024765439093139380769146546491382210790884178710004798342306790655266006713340249907916469810165306085884443631299969752376391996577216903000938800315590553755297223553900869875700244074773016529563630418946442046202135627853412700227190778404124023612891681580931366265067330993958066351817817063432602135701002864955771160582216476437178486011279300648312462760412875107264878275929387511593337179403249003567848116583759607472592492281279315369138432502010777250854124982571882448509024474015913657685743852588921612975994023714698443727277596817257906683826662997630135208731801617051247324061545986190478265204418275944084130853720460792232219529878840212607706364737790043508992113311181586829874747340526994936171420135440976163673898294705588499711544636343082504424052600290652372759285922008337571333857558072843582106548937465371193554664043303680361730538191750673954001478888977262760888976659742714434876511974562571875630517292077674654537254308873929154026720451285840920167145708839183592062516334113851217407210442016257934806010068280704664079941942430187063801238129777247606607555218422739958842251724801743399071816943831693401316010279079608441712308166749623534189977420735521880085872418587446884687437410663410936663584628037474949366808443228560239486422787833411681823451162502604961144218723452577458043896711287284150811353889144888948707603328072956947881488527474872607022367297948096313785417988818487450841562918636536293861337576754511532270497716978410011666525809774809464339732720538829573629237968494228375620178470072004378163784268399020974062641476224793425917759609767849217357086963574161133442543736748879680592888631957117454993181874584879252214268560680219146581124649557673561637101323110502751623162151871958337366156398182550432680121011190871853940169525343669221336989695466892554395730586048676557010199396996677316517515152575729284593948713163006458231157000584855623361527669760228554263156978267874951507992667378663562027655604235988948471397013287890788013632428934341915570271989222868608325957796562561741580827152311927290598870410933825488374595849989257748142777331293288634408408659519035155531998229753989642304655270078921485837244738268312519800427612924462871490778249005271151363836195728436706440878158876471027758767965980814202317215856962506100174597770714522610595219528339356693469778569273521675336246921180632111433709376887037172352938496193229849074348344648072965694213219893076089773664557204449335626876358005652781889752053179110955000465470506465366002621998557579136124190690657669370573542456695176981660673079612047800319998399107755785683434354789049421293409000426829672561240100051862894570730784389515456500021762107336854266669401292976199272611687890417555072067086955007169269827580734282668691221881231515149772135310866483039274262419036534687217626708283168672223078206223600605276430682048529866678489755161030724117605786405078060896885383283260946766947137850616067654215448042251985998171320418232543997337220656113663267253830948568133809193944715921414565457853245831082843402739362570453402814463664572370269380919710545376254080270538904321170252576065888765430718326544261161512661220546772033745049878054956058614890128752921376502220519398920545522418239590458313621181718837623203299495109971617374744594235104089505826345376921431435451625627701019378440057162426332882894584979231079294912067258220686168810180571397989850851582164475646288474084149016678909591808180877474749066167856786187002309648964553549262242650568950816910244942881784138375955478395039313896762140476061828602845958170541634260492766076683115867252374640626823855707346419692627622637297147238037796255722552839682101344239710687090513962714731467688717198171467200792792669956971337071181530337445774550141615496632012767735503099996824409924819349382892791165339525220850310353347130990635474357091135687195635844118003097296347071456714066380558228151537782841390900949382313504993046639977611419119218376564600386860241434966676045138524647709265460707636143075021107086904905228471787419368549360419685162598912387901122664867219755665802200968021473237597776449432619658309706931091802164051764295423301368809274466685685922284081202777051955993607415123009652343163435802366592040666205963587460562734329561421004852949031976173367747090699093385371497041656119712661160472270843198122831239438476415932173404662343032803921357346897190737342289854958059038998163431495676177547717629616057938453657621918282769932400324535874951473265515404630945571598946300741646789948418695148551170260805467072355358594828568476858900206504700308336770752302341158019268968779248861039470458039535582981159658184756426790837970694820920854790183011729544340813798725243381545036178122796640095657136812595058442659026040067545965787924516972990506140038004200427946783447890323886541304658570142561890927919427747583340188100823085524129330084117861497745112019805046593086329599691712270590937692198992427711069688834289453560464504556848543437315661999410941579884795122505278964318383360729451216878670854425867124811999116658805168608033560359700157536930327325321427233952592557826159574949186171863896590909455956234488530755845943252408082949267563611857593360250364970494584424666768759993965955607185993137303033923763097243242256237207726548795231811237231237180349705806834784582267146000858407701257420457258432271335472488101267707041706633495946961777746182698622839902872958667704916275595788405969714779711078277185676516273058496520979843193107330929745995087287341585405483075677434752071790206580666414594529880367153430465755940633234253001824915329476099190366741211612455488577389818733686248265577670843887149281062246321386688502307318546993698836324433295029027304836318942659121054031133703881977696694622637905732325254550526347891803710196415198537495564029076883877434223702424707205253519416040453296374683438795571886360328578618136904035509696459412238663210802836517376028799455499055077657441435892652372683113859111622459852671633330181618604144820180250786374446319336080169073554008536370378328144661873930284584648048020646949328734965120980202854080570592074259284728770206858886028497290842063756070628550994117675308730494941180174450379979489378676430217859507825707653372114638088591978761079357940554126822151891195782664655187358466145172424424851791466799958802620887433916776399679381460941295275755003236168125489978466010508965597757225176036977137141859099113558622576066593150262371255729640324116555609348673532053440267020452211618048667432746264081476543888439458992429830879402544091984065755194291352701747620663336132480262168733426480061588347808278752769043459723792267985016255082620622010030087182707609336038271519494213611420367935546154819293595050489005155775236839575492013094374501334563744887566540635253571324926174254869113178780796206077142808277318155737811991387618974653657427977334213114623998718350814951806345551811553621324491279813290030461325194233440530571597418427304456951277044211682564712905141336640150910954314770827170242359676948127016528628370094723800477193972844941301824537341890034099524994683952083436275233713086684922724579702385704121096185255405277778823923406456252531861844854628148320818696787213249627478166700792418226890333422481094792123979837853659801589298358829054864734053933834954310500375840051442933031282840627362590666472985096825612060387154896612846671544628924214889000724510691983673320233170710909838428192821655611386392340850174601380316337776073731780472923850688515400747220806617301458355783384448195988036336657272751435325227344218297876913549230703101682342326969034358088775898050158690248763094692089592429358598227760670671581579692907449503331968788082677651735907489477390280538257189310669894379336792295847096392390612981127721621054349800124431989625640722258893122304404760062194085398823877109286845666730403211092880840615426644949993435709812872280321030256077005621724208094106212797102973458399935196465957123596190293119136729199923076821473288162095059686818484375481718719487958653999089377626526253268710665512674481505579721684404361316433790688841683716327371645466968395719639508423784215890831681856057852865150485274175114461994958534361812080510937849845385239298908270599516869658976310898043869184820081752603059285596625597372519816002321318006698431082317150075622601824969364344368509248030041177218142135643906163728974390135154589608946833857662226098650509584143820429499465853986497182152003296962286607423873067902646584854602663710614095815761865050947923125725625742089181428188716053748795129471613642175739016614922455175922801984294993628644001903706990479519966928135588940106578986794556399954392789576364548615334982528841887686501260085013384988157669915954659787721418871101989755953022688853523164463128313900076432487797528357630703067943717738839787852836843209622200670063809085018131691593252719393126780678979377928789490735771289645333438391334983422361761744606988514214348553133682056446184524124413676745759227331209019833311780693363299850264666517397219455196165107229731695016406381070880713282631918633314863819316133096590923719230064859282069119384115247561209061921464838328193605171225038941457457095480505735636715226511975023959599732191641873501497233663636458427317662524407430852956566755463495625389925481554645058426872791027446957869053680626347406212776596751913596724122354708399579221503893004640242555586512061313358514615494911562681258930049353591680946063671342720594330260567487020429385168921842035220118510054148126131371681135328104710000129538156329899905941390677393626098822189814012744165255789967929726193356519610741944987836808505894893635737544950045570288394643427617370775794182786959490362820655707263917089857351012075493920392613183090629388951112811881410228276001772012595890104577814859944722362957580824960962800383513785489605842199249140002968472732539797879105303484525604709006274959716603904669565930526437231357744242060259832001102797759682771342481604548005271269297749473301384399399931898531514595832444047778242220439585011128424666842796037259269241136691581372238890031513530218921760309571154991888399123691892167536625396037666170843589885921230686650126658714818119338403666473011689031633943235137239811629998422581840638312780614038484325389959906671913506970389512345772149440392049081082197698405144049896631220734776994044269311095553851160464682773842233422027408071158004446685326750157012475987747085169510156477138087603556311932220905136626008480998814286884979244923817401225066616631747612383972074226716661074916894492178106720861165387359362970442539485002328458310604224842152708038320674158017429558644369609342988188269241426901323521072009679003206121103511905951535863170380911504904968132831748470971713198199944736506920593943457110989223881891293817931787585783185042384208090039247881765894640696337767133795620687713543200113119643676286780536018615864478586908652135258929420314679737192142024059016050954517119091418044275398243274745584402743304362745699345870621568687932414366368864801297042858280360709716475547823781193493123286243358890880078071253325062081675920817380013390188712912104231792411016349535807559079508384729873826713499551880448373421021921702731046093931080325623472919256005331799122158053866493224211741806066046898138916814529189792900405441613158005481074312446816845801096631533715466068392041712809958969845088674426538807767904818836466909912611897053836091364554525584523111489717809775507561284435533324132837216355936191106342396304652064617406368257100578013088797421478438437817883318995896147397038388973950989829461058104305642257432706673395858396104760017042963273241538830073242415741861509973334460923022737555902754842398111069361251603569761081057308436752261285565133170865974647396064062163585770047079285667248931601604171212281706624097793675131282126139557468385795636819287626231465163809748235592494650917540944386715468374135884340725787607485906789496230179905373555658461298358981397796580450186568618275443272374277344363090686001870063042599194527285252454927160856642607623430551188303539764335135276062187157722214652459029994294298149728573366133014706636108375962323987398149580316563941525978779252233771686122177039085358193064709078556014212980424663170423471181623512877717865993120541177255052230997028450824411206147074573102078678824816563933731100559551824015077695869954534678568290366338678915647732203678404095464119280385870418453175591344901411942283996909521820045819942715394700162048287147910773922108581601555829453224730187179516273002148374892788297376703342039553753899111500732196649202873221145879250091817971778321713319058676317381846264197387036355361061487216665779036186343028227257253761069314845749755367531356664044243579715078305495166761637825923897075791480719936665950501773202626133692851274545937176723480740818112922095106197225658460065487127531420384155725123616706366985933925195711712045747496131647412570436913886150171745067637344463728888949758623179334325255428000089271987589957047421115050964716825703149979702348987597177409608397418016642894511000506686573103312720460530366666780309184483735624148766956142380764905554918549788327868365281451156969774844348464972065330334094847110159712770997462174961723003634611354185485483562467227162395566982036597087024281683137975006225575682658080758042971688894354839034483276329156153416479382641046182461297256533982740676303007443617180162991474353479472489052542615994341360383239949248833459571212157591829623387591921156070528830337848302487135260452329146588253142909693687966375162628537987857033854422970712774319776093315193615472139595073487650782726503968901165011155159682381353247100535437278485666530951226864475041477148692189437021109180595853190036376005949574900391126812427160196046492086240254341138800530247773382472825932372335473895761120927781890154804472278585840329674051684946686246659696316394821432690721183869187633189518490592083178166699932365110077841780820230860312964375052389027289668380305160147623888024730824609590325643787647974360784122709318819365171908736485508023446168108966849399843990110933695471842248957237118789818322254086024582905431490374232772737443169508339607829291191601106013199504713880358488770188718801597641344007742393554514393827148490318755831256558072909823587241068806735972470511620708411537045071119945097835185812266888050763790732859949923667059299581118087376307206467804123354991252719048992857487131008408471390868985418796371524229860111845766242253240417659196728294160837678329748217899644538593413612154385284712013162493426833718071546936739558720945664789457680004349425705827530156428436412247204682038009502640740792838201295326383725111726628132976075741909614456338579131469223227389019600609141146280134850044692067121464490263717476489298456177853051781395969616562674989654310533306106140353398528951400354701801929022158434019723991858498773959864689467570862518202545404034977236007942506158610892346678272984179908184637589146304474286141133030311815544985298577367906173145278646432118168955301034592285569568530953398662835657349697197491874553549713338989860624544931574521702499610386075275550850645252366378179667585413406735466283940719969767636300202210723747684144668375257061927794881057692622904269062862437177627306829114788173765446568418384526298732872150909987859669840980298809892554113280533574664523480613877717480668565086000799171684022383369260695858945676619736264952630960679779436233531085887962603381628011649401688172264647475184584694067765166421251472571834385389592936351297662967237866729093282980877214712133854757274977779576274909820136219973188037875626203013471555802871534690508417458171054636404434585741093973532674525069823207279318526905766135347364081275532712672370941516995076023546243244417505424585155275966028811023683269092338354418533958348423187504551343446638714137680681005800491346713207864871347706237751318229472345444670134097406850091688807534643854885492232935207536218424916463504355378664155757264486417961455587006287258201608129918808299462172576017556354733144295581666968646785414185748325466755677443053424770212550064316449756839529537172595395998237170622651604759489241669576595159917436208866892428924210871831965806790814295240842155395979577380821373657791950809629931938942732874088813047881773499599175790606557395010286889211313155807647149774128170203090738257634958623091431790454393410371563712168678973155437549848226168943411636840200125974363226241209528995003670125444384161164295613089083787181718413107414606879447272438293507990107228572606928975419704373217080276684942372284690331234273262294368928288040567641214326067427447762680466858306804053318395458385417164015106888182420939361125909974349848035838596449454124331122702584902494144132606009957720424002337228099451393813065625259028941384142755133007642012486421892672947645543990156449548077182428526083247580310912795396566389508296159994539256873759885550254817349340911665569486100028998127771436879520132714944903576661504613345851033868920671850512753881464619953156472863870226883090746693211390563892420616511971365516794396450848653119238138569166455717738814632910055803980020910517326108397746103254232571568329127600001627129728328341812568790394467421470778540850389566037768269122334760820737542312241062405173190326291064088776316920349253518879848154504803347664766153587716556795603332595746070005089074210362872927876678929368066706748359153861617208548767483637579002323169524135271106026215029267360016769901819726700280085072833552249028835762228426020245322748263502256165164725135119414897931435932046211477299568660564554932332796545080180712087596020466465754263340617449231729624785309794299906831572152351414421379924956684414778952341998134728453113089618585577405024196935826484316489545045462448749662031263546029904620064990232509853883527019872885207716716304762325377589145819650326199525822170015915028755333121498732535039620856042002301595632270377237102183866816563699238527457390886639595303464578709451893681085382887509681873934631634599695746693166076725951666618809898157370942365382732895584467607694941910758456198836882689889734376160830080428095167160788973597611927469170820747059611204493522088244405402725181437416580274424811569857767665772786806741086861655706355053763626888999180659733209812903789684818130083406205715073449058529626136535585754192113942731954251462856904275990627725722789480326220908858559861864354033895127629666832623691441079866538269654355448503378689636797774754917309543971899502400509114578371800066220352779079035893075987497833283713803057768246696202187880483885459139130886020647547796997712888964482713581801256711261133844680013325285144544179100961187411759557135311278786943992168768029342646372276216818982040945043040542512087751765674027036536042915849878397624855623255676810094212820480722211078893013980354560564484928261041916134700291617951567326744061653465612558237635040319853643920282474234874048715779453451437702990853058646506081324173845223655782357445885158395284146747213666973679205285874856516970269561944584916232745883330947103372635325623225946295025898710735682860546430558493241732094779682289911698127728535711465071953078197601324858627374018225163831011523985000192192811793162207747967203589735867909455128488675874387844467024252175117628133994410297332886924391035955422928941523649425879087592129982969387763288540574785170391224837570510833553526056132179269717641026474468350994716854476472074183643338811389370561266768533079980243272943044918841339720055710694744113324152052194852191414032080017140100269086994856991054521532284983236278583818468460866674917798186399530199715148738223107552226523177050717697081816500950560744910008506177063058604695043326862103321886020758625788585821288709827770783584037263064679061843172506538852083234392897514732118746509134692856105425412452500841510758469954587759011011336350721879628658556985410217171816758579364184176869604276444615056473860019675299810790849939257073584883989009052184823060006432152589136324227947408602160787471493187548008216982106827097484980968453920061254835560398903540559776329490811056432221795130691037293067115958141198022569093547225316301049536031550643532221301238147669713894358089083334128315636195350003600915122733281513822637568063260451293559468481393240922049916772720892391253950918733051734249851050130371060502768439603575631696636798607603816265030231408990695872142399882571366918154893585643351339251538163610028411820523134219425553274942356161905275538580366595180010780048088746266860960898475140694602265349303167510962014278943437831207413759684351524488421661097314326459857411349138652954961030675720838427643518516838800227241891492579591380784374537312941211541335867272927119883125547433837141147404225929356309363123349819706549691621835699706387192904674454126561081733667610366912674369822833897262028448934549844347598485597444496385667653606163054502217813816897737968906031826525765816053407707744754394397205126266130543356574015175315090543862419618281903573233465933655443808143543058560771954467895069594685147781180749169733150331042301438757041322717612421457504682409045881289246090682852488957328181810770027861519406614644851296156149916343261900018062338904871163726060830928376300543520565577099891941102187752001854602643139026779422676861034128880148661514730457302762479460818706190149796852454265054654581117551083028090160599463902268724788667242950545670079214044902346243954437459946931311492776041741770212703909780339222368193497111582480012644400225160639162312670696104353210457370142645999957695197625883132671135113834414268445422696544542871751021587014378095094922771551260532549957532938677746130481623738649598050700999310631662215349939295026438049928028628437857966819533906360683264001190023122514010064709920811391529780403690575860518170299854765401602426321899428408097294706320277821429676433685413034850982169294794232745517294010818803918731667196509450281903505441598440170540619812096273749478075458404076314923117603503499054614062766625226098528739317229414070066726871796862102637545534571742877170627627703462141000377759263841442412729373124400403738149352131172865843717402986531355644347386553401035285487790440066601920495863694348643039068786589363931414275439039592387510269951876011877163267337485085812532111887255217966001612519749043784663843904185962594973670154233982588250557129624659788898665581339981359748649316832231457283437706573923921335689226622407716854234293768835433499702247800176635579852445935421787742509345687654010946930276846550761796053148718753146084893088918476552809806105244475070159644615944906613734132153935728535068102327403117858012112837068416294243719970087726441705620125539465299467886162910693038209006663630913962833378051984144472322605051418938681219333813493237494764477175526231304484935001230036003469715873213771386555484912582405231680305447843460258928676574492120769110350216111386020955709192672823566891351453495752746167614049618372907994220576435521640482754162087231340671144318329372961994765982514946982277104507928704268586613244266174066597279737112172966142087165792382964416148358467989641294360255536961580785842927138986657630802586682055793688381968156432569226008117220595302347321156639564235151757205674891949327215438310667516989022185345249728361842960956250236444738055851370459510036388235322879375985243583682097583817729707064021564174075023676007336680175413747455041472765294509916196526509003609100695131566639097981122486270763139930557334895635264537104646594753989737859922754408964739560837883592628785441023008252025521063597756128944164058159249172354395228980241641649697649971690387656168647764759596296960036340834206484348109682552232967751374415104581415167479311456751182699421817104750191787516391842853935880289668282075246650477330997167192703258486560110087278071367932701598637953324918707026334271067015848898408073298505376786571405851696106299477965957968537238503899104514450147694668421480613813919421550403035862062601657553929658465254197946586101271702077862465432191335036375547270495154521505051361976610246047981755333339430586748792668867982127746502661868223279415131961611861534159416414273393592403666794884225836816463987973176078833535948656101271468792192502556203061530872506079635439200525415516529522370653936777506021634769279076205461547693417189745156342255556275058528358809935456811579204099458582607579415099688806652547996958252095243063206008199379073804184287342741096462930501684108560504504360270805739343053924515566618189753678048436561861378501266163120896981237503973023297442314184475243827193836926686561378654205679770186351097754730261326655409069310797898689916770948829080740807635128123379112855712605824404816944348965387728015139646746396804581772556696960367268742870231096751087534046443586647863110912065944336872295900184734239883720026636554124881732098443840669147092485216695213024400103008088377149928612290045231851642927163586364231754363086946165379781284464892319459307253208536430789518286944239948725148635197575978136992078144533048597460996465146845409835959837945481692261127547038537557228156342621440253753833754936714669970750375976652969181062679883434240626097473606985395500312713138382160797015727733769181562726765993654439903359878993229297636383077240907117490949075125086332214798437528739937066453933205769851299254203098082127240258429086180885807226613734624782065369294554514229361742460016434621943041273435439478446111822440284798677134135843123663742781940936762775068137789241113614029622054609209902229815634626035098645814539222481683867461723473727703283852262046357484818629268041116693431902325607144051191990265922730089382434157370893649940110525272265244392969593167639614745470194750640485279982157934264599135767433697185048382122137638484659289156787293996122069191652015929544066143111501541829463137658103347649593005586716286807586750758041293514771935789048747708786865673761519670765171424064267880529579539293577930513971291262955232735365278664722868929428033257196228808598259294508095362507110914036173773178929672092432545697983247673158479065720198000887780049282064739410192590699041900797723381281810283327056121585058799847011032605109058052244188921057291396360897167219356563405515673383832912021100338700817168887133334842538409194027596167923920427161169238020808457069300476706032739315763087649081670041410858297432432007942401477690531150303678497918282342096330871519023030568368538849232515330541831781832583266798562773083965719308345762231490314085012033433949958969176744737896875144710991573966621681540416718932846004647845409891334312487205152737174595223603714900685071785869830436716745738003449234468031329765262269297916926883893231793742220226133387506006830583478465633055150805623649008137314043161945520008247833463099369941809453093823609503660837276061664906380058230481732401162084614177561476950168354299177229601875371969918081469708708769317151045291814359028791996647148894143122233228497962449617001122885979174723624174643183599462920794198377531393544914831320557222173305171141547252728165772341553185260863764221306729959610946853068312473743456872574363688927229312068427724939996471401175052095244464789190992732377491965161576229869642986927521458886263215368486423829368734505678130847996198723936169154221041344476705446410289355040524038295069963696361708553582229951640948920208498243626188758661335710709104853728825338714002310075891685488915793979834768924495963613599580027199348561518486907672888405027241148489478431472865693685122569949390387364215079889618004342107789809278159282872224761757045970885852250384564117546460257416714734898062405018815821180129246209337886376858596916392849706233311534594807734306109696138171914168863897533503155347579625475134118039025711739105718008559329004048424719612982823829205602469253139581714076864728568510450699031360465082046285381841288666899172667943116074862179236920598716471963715014786614505069880941429159832676756962933251499499735814543556697464576345606690859822935808475234085880638587065108771652758145865353221811820888656659144826721747111138454698636289243128032900892705059916102421395826259607676481219767687574681424307632383124632689981718821148221539639769412363415397580149906508063405832635913615486268174101931533961786559332127893861117005301499951103822567422105377060873433313779934973769031427076213175666252179776995253700349833460455564556275784437825814961743302539491229204380346935044173714462388839898995285956091573698988478642336216865864836804569830865589153195272165791559646454191635176590557745276373900040111073416761257384522101586669397361662185153237266646260538252722505703398785614057931472432127752064945740174200371556983330608899173877446425150774324331316815920809086086367510618632830804547801094650825953214232632742044725326417784981877934848765844067736662074882746029101568278652605693162139886070957103963747988608990382478007728028165149107482489651208725783899944671390012339926037882169369414191002558462811731795761358917432294537841840392722429470025580264015771055744213809166231430639771105883988504162768411222251348080598465109453251485717111006806356342349173752232817073074859843376575677951620691317870836261127767013065693999289194228280246573702653014747996188338231668991345313088127314701493027943106557197229097586036186640682940561342001846398636353193040957356654027275623516531920179492919456877429522219420887568536413696862600435328178323648539065691848371242415730635541589885673605433101774609233195442140889239344570599032330998803443669780781533863401774783843510940703211675384084381785822099476929966739449086136922564013854086210320560306687445248361783351710478357429919407966911857256843913612184932516112611898974392737634087306417129429458559776017163144555879897282252515811541908897814135156419729206337911170693292443829391299960282028004099933008402694238431109933283892338118206011515993906992035214489019105514868237934366280463493348124815177828368343635260479332524749037340018684001002933924710808436223727701137774963697383803941383882699089977972454033694463917666360063576376556940094893284726818958777163749770456574972349478581985509185404439996277552144874941999818146901832046557730295430828775728351208288422284864856398552925350572027943621072429191534864393722170170211863644262434292006816052130129538302326404962722028457365309962742950959415484854217043243500345423559345858904727294167295419306053490103945571081707545298073231979770256112555830389222250128407137350269456341713085419004744517476035378792843162709758491565578254129661774348144461677393604713622524990266150127256159257258903635979488977516169225112878739681671432865894400614609050564606619180398189505716931356423410982336516220042241549165812907567005025120791938447725539080226308279888667238039623025217437122258358449787434061053005232994235258839482067046442163656194488568405752663735243417512775660791063056221226770965985664739348612205818899690139345653702645064801945291196072355182510108928830476358118947410385541956366713039053621270528090072614751462797557600280942811380171653119322603741482278069571220232626605481405543305563930955146767388685285486632677545749061905504656393149956231230854993994682114853855047909195826351375177980747973760614718360361760904796162051315616071010889006268594538880537272192237722164887195870391057351764341735445723629375144738539100377564919936337340727915796450784636091381832525493421839510646713191646126944101706477898115753256477203841081723953723654470753489425295191005017203582091850928943749290993044692377078531083648480361410984178996782564093628322573400103733058848894589256406067565921155876519228010284652182213281203859435337901753259445193536295743744882675260256451350320290675897732689214750298144033585171614196529440253557757221460967948709186596188371379171345398781044816848626658234323251348500745551519190052725994728875944401457309553107245196317356088593302466741555348091236195620414633411718124892888403379115590194201612039865589586228890367006487987151826632620270524302257370906774469537574879900827895447414310937160371309326755986673012762638184925155607660442211394901057076294205056280346626179899956821895180177131159771744754611833851864594908871441302107876756981828924931867185526506782475088712911956862476703876350019226152696037139062559581285934262863609550398654011875963399133160003771119944753354216654942509005067998508379102866078912598042374604778836794316185248715239767932828181092850872588892080146325645784574431237787386963593104393473478877260967345549750748372448945826202336797139292909911332592123087508642935405907591749042499629933297289065509187719960295303072984619909425555473419393114277889192250654680397603567457072932773410546393433113792020507209905393400039794868440800328682345328303679189007896147496214634692479813213151258431569259848814999658556977971477387254249218991388305072884318023077345892487973810381798652412359366590236178122699959308531939009651396727596673677922047061853892858121667631603334940995523176667709555746503841778566729751584340340994849249882472631184084541841568790981593333972675116344958422099680644699746247187444704979738938510619340222122448935412731236815115985165687110103354380605199098819452896986995391982526622159518995496718658460056786324296873945127301451204539198478443479680859580124672413642850079148137387977061651990820607595904925799725514912689244217794281665154671628472285212080155952363031368502434388984014179292219095440480795673280053731799456375845532994709271007091629304490998338979709066345006413303519113978939253536945501475931161742985705372479863268199911731855506314185857471439127767206804599625973792452698088491651809804311087172974295238591822145832067543219184720349075684817725040571283843312834452076314111366770393157452442694348495268148547368184634107901365878016371706940559939251932120247371111608449247899225894079464854008430654798047155261196476590011852601158339557422171310952932939243450936050387351896726123385637210430057289172759996378362443303575915964932510401876933220514571606648754731993530101198135669990098202194976220911233220229871516226330052694652713395953400722825348510400364584927366554850599666331884555794820478252348870912744613386871632672183057730328450722459716636450761658821064106780240595161136995068882898769064631740682843158922446928555574527479000557110728700782803107470319318870827219681256475074334005438388517570254968663977890300672850276057365665293782675952680607164400131723093748844302331011862069805914970893910591085275264100011649094999168814412490064539088075569285907104775240446002569539049263608644846492472191234581174535524306354848643350915036236138769909065715819409007647157559931429634939068539318444922533804151437255071102133699140727289259357172132104165217584947003453261001455707264726304543694669468257446901852988781190198649027273079306508004309936091875840382434893228415166502747665759040589243342983463423526061732848389945445933462393267649234802480751570733798416666851501431994860203476018665786334301527511782894813335162236711569180593823277934092636812038562428307084844457612597138704752981908313089802035486102709435793123658341496480671676065807463491377600905044948450005662691074266824027619293038175790059991648747929040572759745186223395183481616882477337567828713215583526605907424614781964568737992283436809922103732195854510907876696661970133398434281292571175179102529614483642631445647519153432054925287720708755361089740558478970924533934528306022572738942153374877575245922694882356337340955089520266087385930023415452337585035691364612967942812809793602866108155513729443114205118606853098681475539198868602121927809894734698802973922255023438741679706147199851846022972176389055790221336800593222136188731700535352279280467936748147277134715249075210765975893965270388559029530524427837945013407207404591037817060473765574266535577806076584761322367904419821856031425173049595814596081825672370810394460890255387302086361491874122208528751442248011425358087704859764295628905509128474902813560750830124695953905445529955748416027098975888461045823375169178438833266143965329741064407137706887610580095329946282317080247717964788884246841690689725692222580815899399514836760700335644392080751762952123361526203964881949317717554071265712051173753675981260459072720759936464716254293306223988378461347495896066111631695269308345954331899110840890207862479104128750226656863951143917870550851143935881602596508669871534454163359082575159705185971631560339565134466848492864836841113661256586283727122633535622199363257137343552375572923477612599504515194376129049491868849707630577045983817979803723475065296489474632479412392114413891522008967376441623713979323411905401453293031518026922083655010970766163607520872255526617096381824627632452839095056046194781830866963292229983716959500854453436288036633850214002020355674546126423392458166827173607089190979926103180936992323865851168150075585533287618376886753176483583729493661774508519311960299706633393810486695390806112136368742400348015155795554924602105804303150840368956185713886434995328993678571911539847346695190167160516328277048529837142743722397730477723926982732604940472146346529418333976911704109767548755449487535632125847400730530163009566657256191118690999672036451224356557917060348886842515959819176816907102738022041851203405224903703437602215739435750118673258361017303574728672275537140056770634750611385355546842313684182728755948616383410167225852373595669792768389136928573997334649067874788794029048087460794846770402664031926227014317852594710888744925880389398249620250441837679362996399836169044722563943685871936971640386078361575909763949078561506739672608496805570867440189249671991928569408814996793400051940147419583545664158225284904357513583175882464216757657517656643793050042643694941800433586402714140333793833293095254848794094418581231078117494094672759419680972660853386019035537580062924353600426282060832551644632655258912302446334314601474513287385387328671718649633537581760744070381113990010091617031289937173638531889643315960697813559657634368955307588518213037542373565108344752543923094096855512875801561854510276072727496482127348369312686195231040984869018914832310102091148012933361677349534087046112414588167993703586289916841954622672109755239766217118575647680084310524810219071428689707038221874103150561210742518356230934541730278179749519750965416428467620402127711521013484541703715584479106152857792455032534828013909396290848001896335367040505578472227609746342207776442988150464926708770012814834607743411884322498710638896176779682446338297872480043547079330073662337851914772080976368117915700865933725029506216921793309806556989982457071653796323267431254947622479791649294050933526235798944938412376531014403077743782749450523711533828831741003945718158170689939445770683712069156428820701262163083576398189329773543836265908727486985992901511279026396034730239062807708520739348688300427153485910493767811859729375207421676570534864162288003497932268046031390346745478159676481532182128267185716436235151660665574674340309147827188598460917773028415358435556907809021358948200602262571905655738178580859339759504988604326909021869460285809978275921955583580792366732918475924480277235119014606245247374847472030420972365517829219492705429226493701609774964608381428464373812434882209094617033185032518023282340245127376981636921454539865309341544214296610466523493867914664323419639973996493172709303596475144886179941739640817305043892594409319555291646198965526842076346437279201527326093782853291363398794825244480768895843161279855277363126362692447708379423521663030135344815193103699542521987017168143491999096102009803744369757894895358075283598403757221399539244110007351353207670946891222173266407558637598964022208099097674439728994766929717219682226101202429181211531035089126026529956398714546546562727735637235262645466563075593965986555606547206574989479183999896703262602694500033244735243329650222475828407805737900291882970188469401427250885924186533832719877560736869505540715854285253872079609359059081256205498014004989372983503093402835998753250938862572690092817097517725857690063898979510354116442369167740442255011045253319787283985443319096157211461401169816701975472732575802859330185098047819005804052964308321096548442741177224010775557497437436921888204006964521108746151159356075584004964260507280281583499429617408826065546763652258281007104182939663538425313954212286936104822792675522626511648804752354650413290274376228422110499052441958141659025806502370293866183183084972502064873256960283053795617523246767196181455091511543891549034618188357736780633335872719392973585396582873356915624588289232115487002345791762766019987949469496516132544848729810643306728329003411577259894453296377520448149118410822935325095898760238295289968417189982456414483161157737432799013827254888792218136990030188861580212471667879580150081184989985724230468463142563102826879827571791179335441809398160069471182250013964336446294520546843534818298067461975308906980857555308379164114998291249232627272801628266339087592231062970692744388303425981484746879327309582756573247674615360645578545714355671948045780545202227372851850158641689585681336902726541669464760502860402865437187184927085046637215020362957798110666697621537275276498105541581565229357035240807326267088154908236325015843659029135272794584401709079515103999196799516533374374537786679054467254330533033734241308367670268794868853053147821504928788026603429232174896223088510412490355300872775131321793646820941856094852809677157341707878484707983103026313399361284278427276759549676342376037737357220853894241726504687834157939290784992712548775585540958619062437764724807604979456160809768047682805411518260269472107720086926164088860497755602747481161983722612825590232511611557604245623953096276201156468567459101948016157657680322020113906138993268215623189668348651435389809419648559375692730804275664247552021177246302771229747730097170980407051276870677222070274410277113267253247338795465606593765461825883210100756940043179910378275434509597557559698966249673797231598515315046200060381593252876840942400842011373292598692142842749478254396439300176081087617549924138679468757439944262050020885951606107616348769678815765064814348946135849803738436343772038605200972201618270161201223884124945337549343546126608311733685267006052752953050161195405028674976090551685618549269636819155419176956000457159444175856501541380309945595955040877118999498564281877170846888996963100455442534940628351010050481119811034095729584393555971110829373525436451917958959261262544796760350249953020732714875177578810191588375213534633106796612287967371597608601436854864060823096734261551884574891868710357428241434983920702325897042443590501620198014908742096180215828546124167045556129353975647136349971030800217356391277951531668912272196952713710796855006463278603306706535980134240527804157377083786231304166777890671691044264740942875300913078104690016726580424172584037081707889199520426704290885703868522886546650410305776973189013685223660828423792477181190612089204381093173071375791898434733153637662337741538343776310181145251818581679256501598822641552944093915699494948662754378628195262149201797818722595787302135039035291324676343662466378953754735987473774988573168385633448497179839392375523206900042525261600730657939486439815850959633271979464281177554138238728053500854313510820657968422350463293091403770686258609692227838300853039617242273439605750292414684447948864513558090321872748516798767758532416976772362094416209991394700338457827828932099389840314817966531316982400114703427010181573451702677113066038543536178191458795457248797876445726637021903157011825980832539103700537024569382150051298404720269926920582864688739088147871035075782037158777590647865825799762130015420260862903729349848331943012234444667711990244096300777028482203134156646544231102992342091796741703034913730227876500170641161477545779981320833079194866463719327235167930036637745245897439077105947257289652362434124250051988454741156182498341150597851870840765925419211704396145011506380878701966411525045724445248548581600177904072302970295882804647234119266048313946952476612491407334471493261046698608621314154069095015826704736013275073149484446752843370313210894709499284335436520547036432671403144878330490547661193675698660905180376608945175339466830840735887919805310565180682939591633670877407659705500866426894654824663012582330000129995652180171517168571780586836944183901841850534717049594309485797716055397459648878388723813839895864581616237620110487920690872373820995960095427182647097672257715044126339275882344087958166469711971921003940100626523868860933806023859198669610206059011026730047373456812189776660774055489018616739648508621218242929421281986613888340538669654127793400558721542623862751548485371761831623378508609855777090982167176943712358239599124523486913778699414393097978608323233970097659671168193649941789477751253322343119741694780421913195617389073175380975299958433888135388570624881084753316350255191387951194173803174691193294559150248557286206896373131081388624733555485213442113196894835681869951734323037778687081465180337623868565223785659209223448963584367826303487250911390808467115750958745393601516909327382349362700213438978150814304207790249827756000084397565547487865704160427860953538269292643627642344611838547696464494481797440627184396024951836994646850238303055959693000527300533693710302653991051128375190310451001709413530506607301869224057336192313261559614318732327154640523495023052234061380315475801700052258249586861141717214810634049645413688530490816762230979691461385473278620945401175461196030116519911820968429289380067508885109007005262836906706876773190242099248909180062334618024802952139832187914388276278094603339817662254258909757657898005245802083531686804750805526765920928240503635479404325123724449995710110524991514297507489863001490324585632605374073812448073544595362791594191484393251958794670350845659038323967166149133679127361315394181247043234252417789385867128537428807628382415061876526315728491545909269517443502683713440347427592298650525011447472847106363698455420296017356084825539244969890648545509394262638805337638305393175190523461164694673206081455637301607994651103118671676789819624614533341699092125074447441317663441980558012890767527784900504888001483198094937066656545314061348642666143901791638782350990085000956059154433975264207994780475368384587952414060020563216652894335944146018187303025902008969846744677605294565949547892687069127336847337191647366982024880178166630321513873858604167634235650931342801429525858889001115770263369568993999892849601355520266255948676463850943998885963389687242850689393626159785263337352352457292986962630093385228960866129844913573332067570329550170819724766319698790263994125447535762724495752300481152273324551392407799170772866725520159726720772467029894028047684736579768774528296303981918732468851399334180490434422590688015104263728016551220608469958670915569099315663509311279234841430274115810527160588499160962002510311620870612281025950516590677166961228875546064421564891847318062077703228461066735182576646667471414815477542517131815508088073408488939460759818489074728840812584511046885981312996719066022976373841066472156906290377788164493526316487013109252201442601617394798727655663275935448280455865993396419568260835329989270389922967093880613056827432581587818191504444993230761593255981014467061068609122632273523988535908452544401438320694637853686083631433045290846530354183812406945248560817584761744964400853982626335736844427225416462609042948973568416021047262140764347154397578113878072340197014687720900671650670168288711734757607415368593293153682631146900556169937570937603845562738260617724308293445304769715240510526444419995644971176430415502466294338517393422120719146780776005372905626886371869463423751854000395523706544338291327775301321565557006892047385662378338849759787218722366903398189466166114464694525034182621350825058830112819029440173162497188340485447635739728764829436689827437051679412531321508184453560248007716456415876482727216285662524849519091598679837309857272371527139291771960343236895005048518573886465419650121060670156368847558156645734332117155977177695117575957248498575065446266655127588145715911144351735623504386127758305992845336723696786149372727087717492831718191760978099844119679329742547345279805512419911935850914952987254511550883485411821877858311426150866108375044439836054931964081806602043773159654042676178730845377404238467762559879355151980907091295241441169358593396356265826355935451525178684242995353219999362994618935789749008939936892447454745869868559859491112611235493650445214944234645338945125197629854798917883737464220725437538207778451748487976468116324662730103775187867337923028654665402622955775734193110534683740996490346391119183634494551662071101198282167359632962160715345888652988537035644864764284852878500492709535506925026511856321375037126603909825657664208280092957810433373553366089772402393439960720926177255276367477672261584593068782214128794402713133207596050228190938112641419215751887131384686006395164439403468722684278808012547422497551790357469342287325006856552334213812604769251999110326847723763962784757309519476766667588911512487053724222366836168370059813984069198378135513717486523248039288974653729798697160668175992973435188161652448699425429592876838893027919959082375693143436836701347744663196897474699151066960440078256453108448670029664319021306664387817305753870496328038469209385492089046479567383318116601729920227600335970724013749636199290721045328453403767623094238519131110174734122853491215679429460092562344365535011600166443489839496182191357595181920852205127767856688669900578293748771568046091533134991887345692746512017096131516440645210980723634192010884991596679831443966732640028962268423169614034136512173120615880444352127714316041933214778536418540088295705393232729664844010477906330107796828699635543316590206504709041885612131230431000997193331347912367099539497137982929375515038074843099043774678351279814547692518254380020911869343756198923999925840536685563672923131287704902435665360170067062972886480648378537411767440101629170709090180638984098537995798162693477502574956194483685994824394428257744222729849714472721738383235542930004191369386629821010855654704327204059786069116092820666979201044177623118238205640437423482121458202375722098499165780937988494457360068068458117793952370946645645313054282451405360942506565856093010309765575700241249018124541515781559645897555928684032680745755393370915758482112473677375440414815797311964744739816823302518484001651406710803544811611329366613643288666383837471694449297739150394309329329128364390099847478669174447732771276631314037014628976542270543139320003844243072611481769835340436527882379857846211324829699938273678577086743298995168699167600694646876807557355126838528487016279173777643655447714812328135021562668199892609750366594763317080942062825054753721627723496267250904043902905289939858282986451251616668617509050301476030508432416001002245500945867994469632371169207686363010859436699514649524709860832767260945326942918721512907893981887258046530134190350131496206858104389626915836578027555362429947490206789647158840372316340040146925199941468111616517689522906056945622867207770715710064844470617864647511214781906006952497432661751232780646739864522302991890023673189882455573049085214773659919693635820204888850057751285926388073722943188486811658724578101685321888014340382590992349260781234630070867410560631335443137486316365566617190455404021759173315215714851875424022371723767672518244385033666350507462989234369382598136826205424443418595120104540042468738677695740809448698994177052939952144320435182385258101103020641613672597120266504683352576021161747788637119528318170265303758880388259228436668887417740978518957221926120970047175684882756517352593310424746031311967322434873918354944590583976764803754140201085940828435760661602340668599316030056470696114573296393086318035766624576070189857446233674877785370659746768341661788466423104676326932401341998614415447666637854979286026311828839723268039750455824807648565578959823572000668399710216567282578617632101281606469019382799896184110647387000201380097342441394155530857644369001893146676491324530708016120667891193562786422200228550168866304896702887521349840042904883184249926132212386879375755616746871156152326326344756435216231416201246989941830201644231375463899210831501322358936115296672060174756341744881336068465220158596774054845425221603626286379654192647976280096567242153923747859961622624442144885091545796969377904594727694614848220104884324671380538002901486168660872876443876949981174034841948707556304591139261452764596434795859433154048537866183836376400443630578225458821133188693761378355097164036213614212677540671088423192929697074664221859819429950785127793208134847144956770667844251104350786388965236727577248383566649178233834063124999345988053267737681874540164862806852775806067620372192719939210905895083033379764611137081077930948478220119091839596238513040750640126040990448179378042384447467133405614979473083345967945018969971383776148224963124500908882450242016888147293085358916801651471790715570500401251796283464780803272953863193523865374952251674641586784218587450669264759066665140735787732746900595693716388749873279400568962848076022564182515684531106117807103559621808317472647727190885882966272131326574163714053111057991723868240810993716039679130862466858756378348745448897250341825080419668729881664910070359873576931952691674351425665914991450546425919205107730144664082917393135987922849990752405963970622537997330230154866146414854212403127399779929235637638146457117856371102022716267993439853511142112716760535062670845705831566553664721438880630091798829211523356807357949675624790350003830031475184536287102629083940267488299566238696298820882840994506224789793255416661011344866476695492368833211772183741591981337843139443484740315324230241745089464800674207819616169208432470851468423426225768095418491979259570649896338587554398336911883933024216431014044172744091746252879079211496940006681065260040546472615389308138433263524938703794553190196412142724296150553666724753982348944372830786364159656395885268161809961055268700027411946106545812812899112408031210049358104126306281675003253054644847205004090992082880281094095060906704026447986072417188641781688977847044230827503157357858644660805930873515675256673730426345245610031758118868837414973383175919192826587380689835579020640437866977096542952195536126066041888706676521429363736558294790325751397531335762422559557299459630954160346001881051119217162921012063060428655191513908697273204535255572088090925620614424737086233410077415419246669673977188258678735839026767823777657440368385086207878888150993879951112606373697979079401241151397224242228679629824173968664154945095099697541444068824885700236427381999149835059466350832188961032091732795299248050053223290443657536947110939194389618958458061094933386311295700616785890975777430010437764888023507617398076030653470971390326421745951257914481777231551182001016836496153568748848169755244708206251648841626874590266254812794610031733209471570109396169184132727835567155284093448956339268298775249228297583785716652226987601567883761645640947568949962041627609704745174614784640684972912969969070155452787548244234130472633972814528898945767269207119878194007493664730065455271734102849246469672162449465464789996686742443869418499974815149512580237453636848486352161789167960914824335618274730941229956089903154241544726543753425846176291314170254050051377444241878259121111554665722856836888936558406169676272636109352093995750458397495973281403129694000743590352458441597059538205852072120721264666802275877496575505396057247266795428053536595735869749315495323374355396608634583107606108666993532081142710945745066367076100355825913013953218475306337287003963191379687110798508669930636763251619029370074877174015083207228613703810762082589001154583119101370929126179165777051296218001213766914634202794760344480737721855142672300314439747754730224445877196739525128301406159313154430667591751852280798119445785245950029114004859958485315736965200423323476161268035112375184853022177592679286510869899790279356324231428983705865052451088167701070137918548113099048490681761982895155027192574349913456717479256548628072868888390968928246478567514081558210101323884099120549199006798758727559918299816185094723215468476636235698014047929828671249104972994379417930037294877885971820479307738915566989807001889885351036673653197264700566894633529362838748472283491047216290052129613729040844567296225211620137070399916097782884380388663904791131847490137606383029613456613795295066937856830145643173732564988043866844963525579834710048518998185518036580100655504306633598140903223233065632271537628826578752207359042588404519242275608474928345604620843089235691542372071748592656923418819357528269175244256508153173668019255978757332693057612918103323076028741122138177652701041151280800032736264210712147027361901665325937610492670220978413814366727514011821010074875224475448326097872439700712885168922782843893519153414503171170285013906455983009248516469534630743897812456414741291449529168483934170923264605023083341369572363518430502378695012843030891766623392763102340541911118851008066262496110657941337569435513059149804858000410263143503217704016111837049136595184336932879643991705618682749434004953001934777459201709613411770422388107264667573244768715790991679806192192682915981298323293483179889995358458674016408282550876134235108196011787014565118283419056433167199432797327752307317117056928083812453777864832466489951897532054935991675251879433127353673775343556932449007239562181240205323878293114266508118114119997025796509010325537034067288883829192514170502421611184571481873456377148376290392874393246613458664787011467616621810555048539394361287897274818003342550520539379277706967681105122732718452381790344649812663497296885977486047363403320820082057682581547617494929446469905213332621396431820362787328086787762777033725916956532046368113827334854206751273566588974698078188508634516312900082594304824837943476812913157794817783368248174825357819465592946514608184267732613323179944103856156016128397817899345027606111900749398865292058593746642996927743298120613692981003640871762971470949543846703710624700403849572197455010296482284750931487407134223535871860300824769268050613872061505335340956225734130142764068339583476415455862874581577656980475897550613318364321599734771620298404847201368140253672548612050409739400400804208559122916469733257549669213197865904758406409203198589603692859057845005812144814811420403371244603883618952949089796973558026147438798465572797210389327598391233827425530683539171228557216329408591425857517439851999060302145284814737332354554958685223725445646241815275951035244772008586307851298390145217632085331288409530526821441081245807429063278959575111927856846073383516461103726550765805108170781712103043014189494272994145229408858227834550487024939435110876325049614668876918746236153799843026117916531286301005715069151136402014497505243822024765612935353764440151105477943064341035895245611674019464033242111170395340228047907163472847971898437086872508023302130045556344645506788385995192179435771760861824213280485691128158284036118088021553702886601932967342460203325403933046840384737577799788585284289877770181088544277165659325118637947796629924198049439904037375854785831714982652219938135279898569391233399003712548445037008805189712266783624513449346705292317789158721005143877315267221555456529686013370924886230038123660562283759409043519957710908937215520881168931156773547542275834178976174000193021373351083434827997927394165920569377787283714286167832727020369176115858814374385594770245496717775363453948848934158358432600193461297703106142550533624994694461262883750640868279958053381014614341671188749148427892043365225638612085847130417386129353867000824712438996752245966013151289499708519229163998149908262521668048767477796664484916650556502539371934322699429428578827175643385641856044223431471140536507044393614616104309190103800311449049252784234797081466598133360930356443904770742323647570540982078361547890555234335527380388316250969784271815142844348289024633811927970104395760780812561609947102110574294309383582722686358064716462077418118723820526997401923448464774202111365289190190832468734292141670414473117032258213023834476897300237047953233379806408921906512853974904548006019846043871712149335622254534335763010546500445528011140146149839336432822454214501297712310356220380324062793428847333934598855131529755850312847643586563850248527104542574963576966560841164767682854368634863957185623831296406507519016311592749324742085998692984099739710292651867898949804324705460257718295928178793954336013978738767170675984521889702414262424527303748268005310141111385893778049059537871177701692502204539964750394124912143825832655441455400433046361843847029354992820218428795258921371810807214992895150503130242331809981626641658347472832674019395470390416167405581226521416561736708975830058982418198638121181890632659887278888399180746443436876477982998644298845236532485783297446098837893032436323828268482563857205840198302649476019193786622119894178478824065913780460961712376190795399934019689529383638262095608514205026833394453980810501736719900552453230681411194848723292234811001811594095723200571935499443832779979954008716467563135304033843346638771606171701632004541285358336503163814093433889065501101781051888227056913381487514435395546827817535525307483059417373868618014833830782052478072132103989143961317611451071451995821625976976038800944012820913609477454562350620029186355356094715455597666459613710773542498705997346430837194128630590452038564989202419503987144869646653844358425985920570227610523578944487071985624197530667437205136585964737158453898260632025424614444301327373898365816374136636994085515094389060077347463077202927639481471053647665973743000786965271255717564309309142020131053245507171480782018707149018687188273092019234208711539986435089522261093036837038620004889161521514421322628996868623105868340673111944081784293318985342646868968834125029372249017053126673673699804455158805024608220683194977210615408467655151746290819752896877280638647231999157637865066697052755848390319440784272689458676254533113813946306239098206262046056576469821559141713648762519300538471367538588660184335274649565777607609368222351642223763553557742816604936605720208779414258183948670893954309160466026235692891845882710237189510558085429240247282414726749597865693012071774768461316196111232381188549144002754164489411493319596578293638336747902565613245819197239153332487966894800495942893748153673826912461582140786435647315394791622512800065382958544746144074374750259557483244534207870807732674167202463760178814212126357840186088193419435348224118348814394220267875936170358472411910972591184574180790162516250947992092835680494111352347383730926197225150217241367257632902823643623072454369325973264343621521673220569615469518247759574741372641993999661942745965955708969530267575927087500206769758567728142431755334688372077758854959609553106412536762385855991616646938244019360411077936205418796939122655635229453176681801739403496455962774458414167804598786749285181844151959918684602747548047762335269623660877363724771118471669473231982232680443877571676240386138672959141077821024739813146080612376693569519105622964957649902979923419230449384076544642900425711940360657166919059478589768448806981384715261480285804551260951011868320430742884467916292865443672915852494476610886154780806734103618887354255229213541424002628731969867827248759539550222162573091162642059627951302269685467983964406847044229614268473913685678099248190492704154080856696992468257455018209271008692353757422520001323886757957438505422355154726949648627784964343852303908215377335196152741399520584023426764339913534061188632872576342332775439688738366176016219071338532726091141494786384651490672899236472452181131288405738139955749264887986692721408551040730478012896153058883567192474990453821441123211265255951222636500336018051438838485249962093358093507686078875918594170637662886839518377781666724881656639419081034705454694427041962369618934406174296988799337926589232305079274497408364426731994699029391343315007529535549053851543309134279890896874535154703305522670895095322242513621902812941993915563783897738886525365103809277332313385129300157905687345131193343418116225752845231175509731523714744106894889106558440194165581762810206792082168215030521465735926241419479085844576418820705581768479594273111022549260549057006390649494224387901807453036085973169174465736288744686220056689409611689810123681756450812368177456280267738120254466450344552872695978992874549633069321755461897087320408495268865766137960875633353432926178117904551016720013723117060479924796678223719982545480308807438909570908205559382767669555516430287836427430124133359576457994240701223684673944049197800727824590803954488377908217560246858306785784255067796173418649796110186923254798788596954830151103353827486554264901957772301329718845199899430665239703062531035958631382360583345067544739616166368543045478103166732984682987331479873542278261138080625863080415075740796937724461711070624619567243098862272647005521533456759475194439925562842582314058142080523075327466241025770010220497622328608038504551104331080738100977114801872971364928101027328201151884964943113038220951829105589368560723192534598998125045353039463397509021782903318409016046390098388538473025972070100469848830171405125479342368158663400129973361359207215422555531006219660460550235351164309357331705114412361469718003658235440916140134459988733016242989410652313914620873298872743087020476093399945392964487450476377102528001664060631560543855115520191618017276374900242445269473421352680979302178215863208376162081816294789605443071806058446222483274834583905661169825057767736674800600607899269846420192941479454320778928010766065190158934970243785436282599049434212727330579754162325115999999222283331877012045859552717932008968584961778282031408887668554776152055254501831667249422151871158449920302115669256023464739635948892054108753033527535256271853330067705335384229234506252310291809311379012284712757764064574852981006600175488855009232612050371144265737230872574820495092692352628060243532013595274407183822690135353356266230903195410968977644725405227379670239481262858414383006653131049158461050412983050450299779157249552853890531703082473904719427683570420617690315466332600928893662657699615403893206860014738271561849524612501963218596091616345038596312621655772703452499150707428856704014835362339888089434029580853831417636016340536855861220089834053157929522609228785013960217446189729500177896259680273770313688158461379086749072708395740753037359077036562587351502278000838681318547266831120403047098310743080564633303337773616232154891399701338179671360461454381262002496935908581794267117661305618847823566409336889790409624244715570051352364153524832033682181243131323161498105381141076788661559573556253407749450761690827926241093550701649234006065180624373402104506854935740549626751633846760788298462603719465953843721570753987131041393669290488456439163743434436922024458851798191998817790398764981248868105255042003513650448141447202726383868367764892757944945057682334770655903186183258386199965212750811891947175517321317931052886100313733925531093846504730777831668075509564125622032556301719660561869379359151170178701415505609861521626765806883194879190677529518784545188611476798627030994699124343779108041578582475439261002657918039642708756785758812857566974882914358255809028694108946873320265029026325384693780799778821972762275365274677106400755330261141963377658407871043544151047165557682532315408071108523603656875495109414116600010734585638899388888853553042264409661577213201419345736436086023680220967188519567546399993415080486762629125877111932843474218803158811075646309564917665292132350855116770741828266686210093797847851432968236346894026563282947551428873837989754983297002461494507662427880092560765258283534972702172490390342680293447068768902829329051073127417266989428717815028907062610257136102291071223838419514562940139170588067864848464039045383067136277945147102478286392434384728189788810429781298048863879675323387329477033903827717472672719796602000516748122989278308931136717427594743208887094723443296516271866417715345672670799404346843850690388840456949434762942497476987315852739617541798853247707987122573094155091184807173604676187840449306048675978199156039593209400194984854441568877927182030538541683986159522317475592801540349028555544634379634866679642537248321750947395870322050309349441869663624640413446186275630756829457885515499283617402700023539863919114282855407487890966190207096626340678602290097162389653198560853933310727748715322906026420504784543391994346018916764553488709429520947778520505155267474825572007320543623879904331808887767049350640140061754214662843589633301645938706385668590229821416032060391652798460011992415908773131796905458097953821760310514937292582622055181860075219205842650409560910578995954118441254057684189993839852200365073095345729015731612118141023894627796181014673693542956532784216370863756068287068628730473327428974759559558003881049675686113404623156983492640766317062266680073632340984155365781447406762277653271530875442037840465847117691263785568428718444156894088754633888435094733682982333286953659483979989577913210168484131640576147143189331336240672663745354738239188114644277393811531104139310548604224862688900943518745009889175413358579409483584941690160594498353310455066388538557650675952320708360377914662124004403965661188827033566219898453989476782550991412255961189598944499488415067592318038981397689836846109112956918397287665711142303399188229312976593538832779558394463915653033558068868839908187304299467231423408619867560108422130413163897632226541834590773502444049804686355171544840415124561336536037567723432151924331197119172482571248966659347308254077622794047399454933869869411472503469586066064440841233795202835816112435078960422771734111525278578773560087286408009936610124224209073273806653565940970084995409835923742734661091572990263276951862663670543376069647556557413779639260140875139897944236471936710524058145394040355258699592012747458985497577788894256096655246419835111110012808234428305411606389073086345339578406539154657613188002385724354050859557248247575025835633452080561112097049559468764704031673569583785611586693279750730329697817762353333023008654016377156793150394845283524465334223242217332890987210181927489937793422297658695487797061894724620342389915939493807572268246375849859058515832741767450578967291388225221532631145628410443192770653066808929609462541200260224868867675649213791837389662028570745368461656061641461341464583581206093455204873246363882513664618553322910304622952821512596879644384298746236954158911855023884268056870222177451019024984887038842890029389805874365747299750388853566529634846993572395581726356723603400820112092451434601406951228938753821311071860759421085584440528236689775331041771046969006495094537260381279293473197981561534759199313384468221717656126725300550957961508581262604969491184405920362390762888118899370080801398027217570279513934365843123154387252333900751827681063312602643159081275149170298333208186510989374543318274026110109807613522171136823295310402918320022574853652714838674683200820766155597549845926250234223622253024733765628657860167976707256688243023643164334908242866263081714410744070836021986963015338021544978751178074257831208493089327865021254562717472221849098719920919300677578051176645721561512342944764174336139547843234996443948265235377249460055293422429415185338808815968321184141587587544618959224311022037605139080124269724576955657678621009421454540537310879673753180750510296168124433830959075304776766404538276696751029186871128111687437729468250779596677864738461920095387314721762206153407793830311682303206552502029746384997561250745497540603790716724773477186382323667826903159793515870660590305305156794789632523625678102393346938136840032783104156730270745375490649290478737849385301064533768010913249496326725471226247538195792485656894069549965963770015226004509426666634518837014603140877234633334660475563584083526375179251478236467980514761406141850094648466690931218074284888582914942772440092856001854797326314734665574140994487516720882321269073398076508092569269591226029615611858876690665150469488091609021203940198343309020608815783534624171198906908519780324060723830435492436556090606853140247600558676942235122799261974531729880208225983008595587845049561995724267965571760629777070283915236510829206000366267518548759000388071996982042779444956441637202029821603927560590046181390502672878067970931525825317605343247299074534073912652919058461949060732362205147483479597837955406886128180969668835817430822008015986690164781343755788163611730866255840758943955587245840815162205417934099789564578284662914888559517650212886198604233765756961881966941069270094063678085184770856757594254719269363876318518633265161248482510910548166869555089665462384109368225782047930227483159406635563885054076886271499292750489424301765749856973244817813243245471583559632421177209010592397544633798790287178160017741016016585514513036700274785443911325179809249664384676206961200282107363022130631323747272746366959136259988635792451575240255380365172647411012304434680110109949913147250969097001924816873698448046087200412762876234990507193429883434837399749521529247460377354070129869086494652193992304171628633138155626488228621451903757213733944310860635586307412789420930608215047903192822099032384872666447442429961458881669100953113695619091826947714260690545205979713545428848073419165619866585149802304023164475770741137723429714617141158830926417054611195099723768645913193453571788959182642473144274812520999292652573864974897155361667222752738322669945092016604511091940536497657384929330791438040794727375443393770688754992830473336992329416824976815213491242505851706564862014192351667298202816825178687455498014266083503923105317886568878821109922347705201542103060499493463605144054377377572883072236384653396098482242578765931860748195166054818878777011342884968792808227048817774865822713003127733264076265761552593520347247456955891997286424257058938268963740796483224825723968389139407251334593167068562847759149648210105595915287966753870355079729447249991472680678000094155627385838968839506729168616442462989174691382447026082209413677907925513421193660532842635730335824030773262893317425835978651773177530732865465772922223528292095991773338047841950506390378303343602689897716942488561265225034405007288472050174707777326917315137387256380003318880679819474131423036927738277694855337495270925812884823897703128099454702860860815150842221297349604523915145492900436372562338103570057871749849959954091716989246027055163154196605051856348486884608244395014176798931722173284514186232344305035940630091309590128973873679196806791602184669038296451344535724962389336142811331069286585510830831926086681411334965635215506081685354035222827892904098756863686697038104587741590908548330133753470586152707795267014043856581164521979385615618536897421689997773493050037381018397916040323647140992905055551386003672232127256092597795821803444460744461936066640048931748372452017192388411597915306419691493326777003015984661108897034650635591374991441821242294606800257568342595598786613036728909312726779016067566572136381456440289023165266885069694642587409200099272199030300643173830962851688654035375588303829184767452878283687217515834661366556535885395243132776267704118149753760582326339412709840987209003615899279193631621461678616871772846425082791346257108660495530487317790262925575253804013202417144563724288459230279512647151586876140043398632581602397062104722070470097892492921247286560574935457962090896937535023374721431599100051686244468831241149977837302840749277729424648227691531792571579630919855017178972342554614564002149626182082810928594789160699887113018799727701033829992630568877625331569877629180811307878062285617869257107357710993524638452243631056686758582797209689300777610093727959699639857987036438512052390159250225979792972772664633710996502794520000791452860599959919224230547739612227696576743707124071417597780237298654149855116963687393184325568984943603280806422386692500417002361871536616759824275123655565319846245675226817496445416347877394151731368994973693862542390491963449697018670817337775120433538787835224395536247358510510966116005403252556051845350272630885704159293257582023751151178555971130054212366836954239899987075930012369768998772294898297814738365004370067102069787070318460969103708030640060652742842139184746721656581398153947531248915743033672954626304287229407478026766164717251949038267721174011887396835108395663328094367974903370966544039653646546850609789770365790517760149114226532906591183843581734167126045562263458712417977587915961729126672452511840202924123597478014579616044589003529000309853707554100560650684404382913444382218860394958846634065956834591819047865802867751193744362641204104338652705287877918712482283963571618733180789257428790123988503664000515824069904070987956314999106248860619211533919635548809790797452369498773814953292533860345130136666243806413834428939784629830183401395548178078623789701462263681427888526531599470811782913978007782815773252822512561144878699451214099148421788348280588640610833447488551593365593827569875181775902158772232059774732859194281926890002048787868016609133254857052123952163339407476409542799621452191743434628369532866102503824768214794689481726846540135523257132038680215771516635836637376179191231371217887402482738382731561607589958653546527100064069001495712849394204624875978050817142309869937020046965070456780630925048172387630171435900712536646661200641232332788864794614394269039714022699761968256397525543708622308549773913209082118070143220086304442485265213493448054543209709728760669236086099938896209140686833658919373776330224424116767212170718320060453696886549336586711818072557747027889510447070156530656756244121205883046891897900238275699980579149655232211340649222425563376214217049801905535408693340805090653429761384091245852838667593790846654297313650242190315909994812850081550223049395332135578115427554605473118036306821311665810122052911869773332284343757567494674060883382216772679263425733490544492161507670364126006528604131919577658435630368777799297278869936300495121203161209589174111442906703457138378728246373064056574270766001197772562511424525355225930984361419069886325525320911752578865097551607940024637317852194929242093631713407174742251468687984100113534053618210065341760232017906917101434158905784786984437844073133083398304589218062682969069553311437477929656914570481195390623190016785382854132616595965469617063289541821244522132494641396235491382947560962177073621700089419982420778038209825609405270188320387270763781531174017313415602785470327934504819585559816014917710622535077465784340896340646640600805032726321678526369830848333197762670635221088486938451394141178693748749353449309157592775084300284482115094784414663482624815515856735145875040878059769567970440822541790105133072619756554635539446396611096953957981605918135892564735551254711366503963819683936786546471213174563477032097004245204566717980562782777827593540342128131197761431990264787929088459547275162576082234784430729942958068943587277073436422372282815311079470653546621610551850638280808988535164088005867825482508002435642705208562554919455362186922670636683307253463539153958342223972404736192766554694888861399049627056866603288032585699990066843835807558812007899790062900300580310267457657761786551797534274307052609148842147669488650358402798033985525264103634750594772381373044626978574768497368502794597665531980759685900866783188902446708783502281122112647163059998451959808863461039105004070010484246940905767095101133191514322202546436380786551290244638224697527763968206839058719610233496238496423501387368379126545819395809698602411424380190582494216290187742965130446407727711632399030603651790590725518955315350109742070686669439611215997037550660268849914925338740970646967211225707660482013161519708710957862458128150106574578652180256777869529452634929801707771647387012459941251275900173137605852287226496905007237236261808271454246227526711462363955468421253421712173153514939676752983064186260597454553876757777784169706077641266220241425025326755779175835388270335998026977404390839777104763336452755877160768412791836470872774110480401445456066103782477469597881950946499288047491179147014194480355975660619807736283205599602881652139150262465292201748699223996067210575161094431875920734653746291181591709431857789956553004791449792041886322763178120065017865829599484957587474367659668197069454716040509546793652602489251052750525897020419652151300259928645688783613504290808376134970641109524491268689456811591239815450336509355818317266609864317293533505328938573333616449227866743086605075338570715539270222949621486712370515630954380682969878690446616770076168205361605888567591075863080770307076566259402403990835415276593418788039267424301801650295061602179872129334356694287791034809758267895126938359309276452935094700909083066181692972401280123046162259759730469683921690809084772905750472784464720086928523035751817677589288355788643590649107405792203876653560043672724066704957755977478069708254457781164901556830032927367112871404268265370693085520382888244379754132970821499492579479840721726708762082416246839579268581096816614646175538125595760691799718938788754372238412061462999511386234123119639729871224165245429077674706730337569453530195561026551803073228016811942534102901486164916764167464231598752600309276638899367210033202911451793036542657816361000226190574375111494856930533638271898561990724063415190718099483762452107114340945628936688882471493612202377723841981554673556604860571517239178815962960282334700023319722680513950078653384668098939398182867871943587907037218271232560895449012292380154724333281648522939167565407893052809033643448295758586933056313029455743803100663620034498989906015909918474562398840659967469372053672792672115086375276334500896665414469433233794062061615858248232057616421723936842959867893561735713875997478020411173814500356173593563125369698727076320021076874397345592194119823574375726202571365392100259951160140754957500521697269548213459352623941710375541765909772573938615100464928829329755512941748405696226440770745647329433341518732879892333547372803540335404323120488912885058811172005493143108769382577095962194041089904492223995951972524015988410747767313849515069646450367512040799267629073889008352780576401808617930951205152016990165208357904002270536378272246115701855854556964276272395843072125253650576632413220808384185940884304327234366236148568025945596932348017103120794793545236108473031049706300547407249536350412968422640812215380664975999708243395745626495361225524858761911144825000644718142996265270355050598785059330029752929178353175088277595707883026287085680607103040824479513353394615998177593714978254457401025992686923686345055439960936099443970734572082759032961006643789708264074145180951482335726010894980528566074101737453092990367833815141551732416597063928281360932204176614637035703356139412598730375862311372592589866186911748723092312802293163569279205445579306832203232832761842631024412981430549390419196825220935126648675209201882244465628173512061242073319873496111703929380787746023363043198465822380069570111605025480694439088452223169543094523380083697011661600371312556504518601489679223040437952607709425574852981304269388292075134687900665436186863362967434863729152146498714864550558143499617234390712573347290388191749404583593797602060160612447071846240142636930429637060955116837483553129306883804124425179771936374942871187535142911705307934266235284472685382952894707498649449102619816540506088057928068335901975903706338544380377028822390312463129149869234549013778903831101353029559917626093920273462337824279639133243034035645399214847496600469818847197626691491290613661768850752458152227801278292468992645645590421002392344606556996403289819565633117691283762246740668726144434049545369843573814153297108266250692455991084569858743492074174109772218540952742248002871269803672296102506182532441362668596911149308174014811062710292230720628163511480677578236501108940983817215294679300402236419787530670542718805645589051795934264207530051687901003810628557277381405178589938018919715515759874017233644240735688431177980065704647555527083142955988654428144008873454722942956244731451519337930883547058857722732449492663709044953932363409229677432105777376742286056360926313249174350641011097003409560529739222037895851435033398949853189480007992188070514777588229541623767205181562893147573857517524718802817875442098621273108962955859759804527079737789167210468692345472874013969901352415120031913152569650590636084060082565084706685192705995131463218010434673061935100791883348146912102122108549086635918656439352162474851696451792007303509491842699633462609778660972283023813418035598694658654420889714263219162352800703190558492220006309223302739695066433295385582424634363992174315836647644906892950637477852001727260612713614206704680476330172773020489502227155024548667757159174484735788057189618940975649739753274823670768336029403336831426116953911610783145743988086636523452495128399140461065336338869987193796261951371221264170095174678768431014087314716704004086939977155570351503212986054464478836044138438400581625759350122725238529122996782226841068700262370203622593169605162076544578714993927851998209509035286445788966385651117301210306500268712127669744281167229871049179855719213528126757016654099575425233860171760478421592038611033159680591339275395068724830540759651274706997375734572473036995368578422415754494409413428585100708318007691365329266498960115550523748017845337203469933586085233624985913075525555907306490023235514914309158365514522813006210557783268744729051168884780370684243689994360062910251244549302959860572148579352081244110117196548431856908962048074503210649661125836373651623961530772314438043768690658903558168468835275765865040298862489571666500047557087267513839602585625207628672224052093074030543353685451727340791740083785078709929864663893143204790009869537616588433094354062063007107889346262183539467758226858042888282030856549477437782479502757794322249965170473100215777798732876856124253878360480104394035126790832190608658521389473307506020488707290710410893977263481787789264617734898226992326777732629683222864789294184822880159112562171077997134455024150045451231333612794832060542944001547029126377613694659832123697871957387688448370515731814212516782123281406054701584660434720483427094698347198668731224501379722671941474447848850869396319188766024565525601987491356534892510002387159449372756103886774953882772567759295043519199198203996466421083216771987037244350104844928703183614697327836425752669771757674593413485312198751611577256340494892739921000572760309629910255683995817239326905865144647882227787613824137771864302500787698503151679365125850546073863917980388491859517391050694214720613198763829588011736190620747373962629578720253516840621965125636744229274373245723899691140536189647664576975141348671142707544776854430319351174094452488564303100025511929315252363766206437486190168500547874873997596412706911337248526845417848536966682879128955631368591583258734814345592029160080379610061256362504760885864685195525926060436428409343550274670394577671768777033885562775972871697250979009331841848475223533956436726991793846775266133094797689152935530869265597915171778479705727217879202774095940505164215548950397155820630892596881724018353265214197407557379316207403493894287532725004226594251084291011945702777006853888621468550175790591425533727526615295575878619306573000409572673727256013835944826968703536260560044732403660170343715054721315032539634480202233802830184795019184216966868325288385576665202705699636795216802837419510452044061074950243296222124776950552013783097056223719021474503039517795447232582606385218545012092201099903912210459606859832042330176010826550819962118823084937384459249220793244924582666176668462925799822853081560319539236966397256576652680082548944522359926267210526259032600382881549682841927953724538635874181624258945444533048173803506059484626840257789068607757195326585885160116196725518522839909217767653696312796378320792444672965132690809253011654339592019569122150076135751327238395253633940038503251299785258360203721627356954280284144934491023144120828818629419005900725348210939830581837732268225176443892994466179617726709264169758213483558045146239354865117465788619900650800242973820383676312579590095529074225980492156060552801482611848726480104247290953449095263182339420414154940068483121839558060694224406346515496344889825958446764096396850332715034856885392560004043347593127508855606263074892670978883412098428998173411869372637630187320586308763666251226608697155603858300778764056691766338501434605905290511968695380872026785291303700517770160157369061195637422154121511302179380304378118652295260412577908053800681327130926426560696800796601252694658870098462992816807702914467082722490998852900583521858234420906365277627122332770574628215392042644999286788468499941525806028627160950080739614095517810464665744041401156976794063760136550384407035783696906944175940345977525921951531363447910296969308148602190359029443666713526846740452102484223334423761893215698678467031667766271682908557734960276244837702000296515139833320167909969899281230631123750169594844508608030518335402350184654473718118739734237512146846378684081928804288195209627204670219872124053185765934728586288282396882261162398119545352207291183201844210878086795689196780346041031474921092362323182039150842180465836906432433121098738554946157631228939220412674143712572691378174050379595989043571355236542851315660527683079129036204626209245600762537894217307463760338103257856039670747095405288035411902574374100484209796841546446353385225883605517941952521282663971480563664055046767672784964088454143235308338713161102303651849622979733674691911158909821373150341248993308268032938391938771154257387131669561090945726504496891043036933322531259300775130841487745686526145529158938417914970406693742205146419140119331485250199489975255699215530352612853618730644094629265383567955707137637807508154116489095867523030059129132558232334270671425124664192004388098796762936557668145404184103590628375832665074603305243078479780086550804193166769116531941585770417276949797537974572508188194060964964022763820076027032242043185087378436785724998544212280160128877865607403769357956800826169386023649554049476295040195847995007220100800545827680852986485009830582877764843830805982616111884095233486111154415459570649903600535386715957472499262722406324958269029107952708344224445321031891623416926421174597721148947600815119309499016014261180368689818506664859834933934094070436714235837537853561155873635974998746835014583372849339923187290728187756024639710670996934488752904310489560587925848393550277989492043321328247492170692320956534519097325248020792788477227456749450789632748643521518340126965451197641739792003042223882606061333153187401978341030991904018636903633905329973175161781326546645781691926860961192929645220435198585901970542774750215594153786698463609969177790215696575719266592114370134417380690048497267051775817012831121233427777374523074569396363047572039249258963430225188415943106634459901937272187807228165152487630401275306408996174306424544282079440280910256145711263647328373727884230037775801021815745180445179812917243771661314841099134621238361263599681847584009571992584306393459898661750195468306024006681248133865171244628481522966653519078576107218459010582517657312987934870494570904002947622828017526822352999513927321951569936532746354460745324211735916225456766535302584842796402295722013567312555154435644501480541042168702427695813316520651605511211279496055775575765092500647913835996317817800415433323102420694223682445163536428103161872444282290945903981498493419770097732039866946482911616097884568489132450083751128651587389149553736769950079424091739375997491912756089058670726564430193983740111990960103666820973577167818241037657369070258908993577611141350180187818618502006237158765319148393114847281232155988502381287783941201043255704265460887965769563408091621413489898316870721284214586167783814342120323424253930063579790886811107513278125524038155192002343272696050611280202542566014265637332316638068890472112601251802488991426130355117985690698015593849882009811320452065714984354868526280268595182482619769888143737368566951576740637667267125702343033053519978429924700950710156493332486214872638135300351743969416898219641247171247266949507252621106631335760983814442465850857060196150983888058748291238425701103839331309855179478038290793214851253525728564747019551381801283503781098773319963851963518707900191440448924766739175193640460174531023016080022000479133142832273632002888955062263373547707985184834363554576026902326657030050038530281872520462231301889966759659928430004947787273360890086255791737404967727881522378650941589785194108464926285717674097362055024172744895337692633791384595334842092468814412035311254631754676218719758834716000358750176833341378598735498085839708105800794596665865899784629530384623462744400704643052561821166255088633754242637462109119981206236991511179474844275260202795228959408551809528884311013616906797603466278323857298571720341893070519715058787443831874167461075613029101692164291672046748170213211809607333176055320822083728130944560609671802228661256105083075572293007392146685971553473669630862431897440530675251421161615224607550215599198761973481479464298167385665908383374816990453223326747634805276494756337098182576263417669888852330907241148580662826782692422265056763837256915819191851393327243803108678484054381684966080132888036576123118883235880208719743069773124853737440405833216150934555080076989508520745830094201463242024306777361065683343015869790505647615129025984059397165068926298352304400914453298560669708610447728155118762129187732484413096524487290081019171961747233967771839409596373445053838865536411527983232763433039688684609703229121602391378896538052465738640068506802252606026809915373153754970943490048910904175298190256011213295606916600446221602946894867395678910294454173957263318058302599401853090896365357005420571239574972034066198243653030369444792772801785824712514330765306887093257982051272774794275996941375748803272773406206846527536981772295888599991394902710486986009028889314975414982960539846108157280390564027247954527921549957067763388750698846491940473693086580188818413379639200604302401715987102492186173592496376928077131033344732433369571718003924921918294165108022794160868425834266946571095086227355641508390162454174569342626860986937028336091665138095747151876869037568594850451584845236191796189190111945683176878454000017062486926774984391624503881668282135339039086489801129735882291796031097306935316878468075353945134782890640763492393734379945898481685457959795400831390417656127372099276026110492204800428074916514072893630405045056127934942512915304866545151634671816102921616222792639913561198571089363753271014086934329840731715261531424848781757634612078112781201413393629050173656011296393313275016607164414492293473261003281008824349823263814599218736854147936473871014843379929094438814904456273746378395160007222093513431699495629015743151405177113965156135374790151658802945048142326296375150292736427530717779047652852160167815704716005931427692776644628725830042353189626337449035639039486419351667920422627137096370298625816041415490931321008666560865418404443719659932250491916952977028752501386005827157211628320216665592462713343771688854281455131248802306990471933034122265601589400887531235642224222776673647397201113177590601944902245202682007371952239865593899771772890382729286107278841473325865473734751611674890497917105858183816127927427096572919195963789178135852842160316528716733339390589470842084230591149864567089470331275050241314665251602913981190045489000036349672105747792429983324306826951691230319538916677430545606547954849373337880049003989313299518396638385047664295133880000022252637459526597327923721091875601413400830015855989064814429525310077565759129871513980449161107601922448566076453460831238172815037412938039922189951019467343789977024924224346564315936844072925995104309053745668285045728478486912616079405356331458203918308676103213925559860958416321907181603528461822862151992659472349532856184241135643084910623087859966875519252564701382717478578290615930912911847974917530651350492182207377815793688926120046632017512187732718158725346346093364027134385167446036451237753350521871141796731208389831750824529679551196758985380359844304891020141098746037407830910564481661672731332183616319418556307701924660831170038143923422451745496234642391743374971349143903405411416774498877559196721703528143788409137978337024620893942466825848956401978507152508698575836448484073026757566527449579181510355914755663537473124792015027217760336181986136360365777056520507272912677658282254117958825388855978432650818972094276551392425354039951991326977423860175324669293395640649125917044517969635826341180305493912884558975981025024567098073807815078457299689795932011258766638524540030501533987184296024755377717496345618007427282496566067487492839028975405024775188526954314483903498762378762496179744635868119383078898558386142220409155554210568310875421337011526129360097704748917429380527531093826893983704189111424553083773277019179159217413900038410851586747183171557918524030941793299577846715726387933764917692581705115747105570943505985697148866447724825750117040657992089209989773561176450878986638885099444674348457078784579415415254538971806419724646595909262327934838215818757525505092287717706170937342954454845006858193298840712296186945934644896414152835388505515420659935998422909033976055246729633614704874382366886166968921636575883124653887180469278680361749850810965910403172066863337366347024341955675821487131963633676512093597112554450266087071101938126771220497128604073713000114220205482639621257267399524029074337414735328685134590542198823249616422967104646312802918811560895963867401098212273751844581844782401298191160479901636975247747649828040616239480643664635391669607461901007938454373872282485611796603004760161587284710339496544406267571822468133611198320625632351293492992242416179723755669419561668257870235428154298841311310088114333803066137581436893010527431623953469342574208020932883263593197470055418180009329095244317257182957330525638536589617105413102990614003974314273394313498173886881664341019949155870158302336187754287140060706515453170643177615335582937175982695683654507972212988768574471571169732223643095752907330823223450777986881922959998482581010351499449395550480391518041982461642977097610194928871521726652070269768354588439518162793606697301242794111192751027170692663368105954536054956507660070373056030001905961469568265386709186392313152974370906594471164623937520247259403661106361077710018697774840101182951476745718704792579108297720038102360690310142006120608940249042232110590061875175002487729307246420962578394321157942045065656365571389090170820157797242787256384902618305280030400788022074471037356817953632548444651486126028506393121441175672655677006855388117322767078483372543637267838136077586736759823245360645126705404718920254727605205275398581844227131943321302848181229543694927063643597743925534791542030598739649573370034564356065094479752182294383118869416846649715003253867581663683111901433366413481179207840362870807020221752989408985781560409929905270949504080269725161805051785662731913002637611560697897011813034682785964579634153318354261356011294927402664479027862367992617525378550282909772726531650249969064429621729075434635399616270920130748361554173330167865058633461554882749263307016780012153413317050690352234027490587149757196950295247559844795264918849960828372751300033462528387529157900734146526916155643739997754079908847218130898607840680442838194198746366540580105488008175647656427731613673985295066062121801473530466548608298318448303485052313910455340395292998144527607905706691151155144227500203176268787448698530284161357950247851984157721106690138642975955064860044827076463292185113820419146930116998607374130883663282531471857070610494143822723724200022413859040307311656189170421335172018619593213456180802419299755474776315138233420888012052220753827678523520207252626416646080109923082870605097569685646646559754278585687074119539611202354464806414062762028603220738986026420115268318277544258004829564429503551368583587876981024374294458396358582881740715123414527673366223482303308793656877389779261001315534970572039526396647332331626053108966812809801816648845247876764958652717227880977704361675173612606456288351655422729119779641135751576555802932539870890302315338192136512124278273740711676902858627435366863989313876847152982798652745602376775364626849864542587881831005472738397814709288190100204988912692546260941048197429546495438574302273869010269559191325740401270325916001659569638915840372846935856004561170603069591018369818069039518367303796207302101710147456890655521689773306804680336638222196034829045981782299499649903295830563778479808902446378136163765816542440606913684145439375301417473293733274207483887261881460067935451781707986557423648668787393732532138451723807994849100005536475025026163093119670103026995572021128106694582440395656248401849518314118037739092134872430815956696537175942717881969568818809936612394697710411941610779423557185321981477987550804718223513058842331170942833026009173420745099050517862641797023097489084711445464908578496343212112388920000762066805803718065471105739403960252846576070720578091773489488252430942568145134409597228094483301048131181959457731162828999504843479752731546089819104511329833137592942203875676647180432250129656990134729368548195762610953861507742869243932034488074058949474462940019377154844370272130517587484230386897491264428729480122487004993561930191741897274002409313419366182070337059031579796240099629251217177972882361921886329360079862027697988245537707959177486743373093292137167953153763944180451812515723699974415529564918678479056702723720541747889510726259589626955129351090375827422408189494544763247175734816422377300958399653675949013898664135225142786305926849170072630129986002540019945977699553937932369429862283226557191750312715468651035211527928244060765221309646459685188292325884684902948185266349991041253423119624875468929430787409298495117364902898072452569109362039064226048192391983624405570821312576920941022113183246627137442253315225935203790902972546411055812990606109399586842006134874417737472772639793494664600127955196875108015596816345911016928985317936352481904434461059847459691952242720770098611237249832537329208798533357572849758281675322789470762753781742102328995249679867099176926033236066840353983972692227907073623983122251959005436164364378776860134417487153084776239810700501670432041447704518321919796491841628370308716286346854942425040607385229519798424139542430022131413005874719870170214298858369470123295863192004033200439600055340898955998714938990229934953137273606062865889672321706792010333047890246674803049366808818608862113025597280266854725962080009821708073329420961159602406149138935364869847612230791467700860778197413014269510831760503597458296069628565371960793356357888959953623111817704320443409635633647080382449978398044681622904778222979599125556843297132517342288724699546432119135182660497321576029166502634649108597426776840569461547499615787690864593183478985957260871803629482477563926107543520772689439542338270997599775375648803907969621123888096298434037511716576997971929591182539805161470199971144694486461385792721905893264100383855378324429400544789220195433658742360514727472367048169433303819632057466070280812205366833677956098101805701319184026577213180582367482087536559689171776632262448225789496222424098600038434772987096453300251780053177742337339148753871595445120401738290607528251587672309006630639660092613586625038137651559893443071157454448084389270492035795985554412773147466882763754104953945371247959188714684223688961286752946250213405948306926476298526275184583242222283321532328363809746280005180220485682345883517064835895356349247490016896536663505500040548631601564855434762450265097400604350009989148777810845936918917345560058090885944422167171237932128734672927470462892061304710997647467387237290274530495452386926088598284101495421509572125858652474385541125893053211431768099961579810248139667278074693439173077068360438041779411260307088371244873984235795068215172604896752623179081229056382161723978776327566199660719202700805264348752343069712363104096384831369393134178950974991872224514925394409969906103888937317268417279210341230165019843336131768341376939917673486322758330973611578642161820640304112526204903902010108645596450199488343275334184671601101612551998659784875071448626864351304407567351839750763383452541266509267266279632270683407120357337457542597777468331298929280005122783476559184274377467777654580046448978428113986309086837911906419202821149922448903967298868123011638876867818879674817246430331407666830232953121940586839152865568599360904285987433148029242278471714695177231908069679612079345252264325359933750673850373474168974239566141419531986882995316675187101821210525886398508490713889668530147194655393118841274047831933861052698731801170958424509978064056316886385311253890469739600893519387121025977633286676487067115966173165132067366559558016967886072258827268245222923228163637362279324261806591279912768179275651686107296242639357715894337161537702238211097082668099694739794833198551477003941318614690993729414521043083083149519542544195834933963524544984893121007359982977175762088371433267623971084158124793952144745970132597998746778801123975272868510286264823945559589122670183876839092762052245767464427016593955877540132221963387589226623415316564320488281097446807349972574698236310687969715010171054597961834130102412469095044679081559185874900820577790648118869909402698629355660753816297330791164421346485832141137864173408597692664264868910825975545184613821728552918522247376988041621992565320576220546329491049266268625349417410561009178066356452218079041554274941402387862252009019007481418023580432644066261182698475630407018805600030527117628752076524533484917781004125195358295891256166908088826319964815944051795086554393124777749632255488864967612664884551932687493000693151547413611295955593780700504816891551041424471251386714318670600866169595099783522557093125458577645665342757379545576769622253099298337607640613728268818965838447328864299307379614784739921394398329251282403203271239562608762682455583990656337323780063896112068899850586549792579882926203696015606030600291944026544219165192267114490473956940520974162448169962902275178948033017320882219463489370367318503273080020940938838625860732487406793952297874919610646433015349103776155768944508439774342549386816822073393343361691223518364799408531552298702047888979305594369241401677540320685548466169875894077963278529227225764287593087861652773471731357289918435500697697757447256664086292743631686912175201666827431723244260452392730691270288896774887551934489468280163582116687622456184045676755370593446501090753303781365393574024386127992039681457179751443718618235337973064780566245558269005369049726596926181194794554408911894035786888449201045207412837118152405834810792488900616281465012898972581085593989709449600859289733230959272335498918636733302856166534563620140043482206840885883322461865657097880155181060190281265872215072976603031951909754611012702964603440690609573601510038148433847142778673695427956054589696347988456864544019008151337300306599701675610228404091737264274303058647103968333506866110882085596470597704228280866707857291433501964072290592677070660653386357182816489554432030203780674905763757732251263872101566977754124258901792229072390755711201918325893610352455113935367150082301112492988894307561250224614769949123838684733135514223655164592229184343255906735824451679187080440168538739719803090306743838223248911239227249261212374987720143727580060346664179050440773799374086128227349801156454162875402162298075860268329775819475542918965640459702535162748283224896232572059465225777946861858071412792568391086373755158729344510356693162274283004988303054391555079385591014402233409107640051274125740904028592205531906931822974965809119678523653829082390530222051928385244192693431193944590680219996924268386148368054419327951958854505007706118357612569031673694954244917090361417400143546550280357366657698736743678926363708956926990809382359497394929811573290144131207454766382222836341695275703446964212141346802193670213412338248177352149130094626860654586164635650388891247038713702022976617208304118904457441382489823352734968000415857307988396873303863507469707602490133164935366508985249608548457632679402278670939176962803915302668464315336691560310082061678822302473078759147240052747532695251589236744321413122649338468062457403978445424697584050262544342031648211746837104521853262484339047272134585180653333371774303712620094890818436954501156299005591814449443809235748927346226851598046921564538721642141891725923665767605615478466694879931914711473971586474809016277179316147980483303713463006768389307449450946304763909454599579307983163475224828030653344341685202587193687283117794793992339588984358408458389308593109329565348639701770542226923548771492209475563689153633630160913407846137269698488422430617086129130975504993720797515842025436939875435575135380139350677382453679109178542389611877541655596718532713698149698814236002886162184016298237535523959220798579454279845325133694798859203833253162163440134739318866637173748307822562531748333163759861917296699942048162122331290927933572490839872304426687877197535580002797684853989709245096765232840290013345531332964356151525341890577441688138028797790937034121808032109519487946448160274374074234492801194600985511504683492399781913939218368727025873640117020407346347615601362961644192194510596199940737100683843014855702809104873521640050599461830298471940163000364353694551171206801267326985367229465275828498987629614272761234353322486021020177390140746217079684733610413923809810830452777245533376609968049579423436267547447565420768433662684470450413944362485386173618659768237654687037699294514566708763907180347864245034766445227633378666961502460717909079573441730420219962780271008820135579353153156633689622829909977329292897012724981056450158956523558903920694396978307838463281218766315324414992895969787399864543667916132771202743439808122642532220118506473559243800403849482355440908055959706120938893177786629956602129775126706288004663817509980718791960510928626920167362915994272589368519896685514078110359234816077139510923070534470694964950532456595739898692487193594599835328254480461908657158034001885083410053775472999367903917380353651799250950805997513044146968500085056510265267789514232453212639112359128759724561666843462023303209601520992249054900736992704804283513409031475607857554426263212137237263842786488569090654171564835724586309171810479977822907018586853436694328745053465281011296425214006513561594363187616483786754066978202399799903359368691577493877931374478574770957655184828903615820646676324294009607071753301272102754049336311331786401629574678779469149067976854751764823807526474442116125659467376102487699729315382042541454065018187238345078226116436032756000336093207118519170702130003070916108170335736879446609280338950604707974123095644312618582659341619841123396420572113255259248182429054200580181524143673112233699033271507465118668630768357638896376742525856238279764378563478443635906165871575110903850096651847073462579370430528326713108399993859513633057997915122304322411431892502821398331727101952859674232126283253080873521583319789614277879146856598356359769032873081721018668450500810387613163583106989567480279900623880159652895226453068312948254275093394279485647637541501819952544456369851594469072742482635783619997379213783166213912945832466162899283817163545046039860879805783106215428799231442390298510034179544949761135745546591698111398739017417037106381358467835962900652549127866738250532461544932611273788685835080191889745532061225041298194038473543143508487718542028400339075580502294075695821553279365185701181754585340279932856877386164256579125908713670463800467188436438096268838201030008593716753733522597703234700195633700235228858170648546519493239277997708894455330146753397773023360360964879838461829313936853302126990953366237269220907699898602643578240844023660510790101689917091468483656068037557455575864937287616509749011388717543074812296036111126200418265513731623748574490446231922413742727298624063127420740143854277620957529019300405318979932535205928170674577805686057180877719803054471209338714224143161928745578660608056422800547165456115992556810464728297764264835347630962230495316717320792775272062139001465298247537244736618963137993541241629257067251132419332186962075363291354757808854389687746614154761644963548791816100869003542950069425803040007576203643214699236385365327960712647158959556535136854590041511408455511794338195619556716951477048565860902676564654270247983394913689070138327115060576628942973231427378360857476537417429680965598867179499768553931653683986183932522251546235492688625601325517570036772695892421768319139595548839312603691364252246817511729286609666008878210888336061523455934122944524076173176987500869937399944598955529913672346182034109716513147281363887095393217436719792222895875394846986756460289225706353859915325589551216272011831847835413362558145408779218510611894055691137360056017267488691769564492709312229322509258924698757266062964847597355066262722645100925171160299851239258216557582495407556803362192714526594539038362148271377806673477283245701688669663099307957615126131870365494162099548713157875687678060023678173915098938182431680086660166448260558712917053907542487794507136227709098458577500944521129779218895743014540204849780374075457050506400502239836097956789384267977711009349826038345858740989894075934554962409887317554142408843089388675250199914756291375828713547042775524372159335570814448963925919302217076848375731192350565511248427304914784163205245287361003596275268386339609481388221422250288626740667623453162906745654860903417529862658574870549650537556348251742654632327235106659732455936079237125610522588137171139447740255280642709104257700895316529364807028227439898544205244100404799990115471286297423828237771463850375385423320710187299809013336024349613510123863211365527838706957428901008237111987011976721255742897078339074008785355545808588424554841903284719753872420266958022906959926636343342121611964667842471915270405233635055314731187229475005059136851698767996213930588644594377612738748668653763264762992425147222979181635186044586888350707821734477332172731316253078420859299663294882376220988041455824661310001872386873496241728033351676487824804343899590015104171802638984635308801933478959839962426961763128951415611302897687603938969109338806391333111708576091879280407406225201980842690867527038085840787272507394089110801441378042011179146647404119734799100433560596292848512363828638347672105161829038151467956088672116067877583630068316285113229248707660975761359660016861583971816357468130972107236134115664503564188653383573293961036045366362427363872417762080832641470585027865601932226891216868440110026143894898369112468631973617744539783815821519162493129808583186808044454687863805856515226540470986352592191459059556367056511567744739526107540141507775247392690888171764139490099456416263376072990213499597502776116002442011690707380543316892578330810054683674991707535974006446096938562911386651799159689520741888779282858218183469286129304702223398365583372650811028462169995465342309758666971430656346987751690791593503387540629848489974093460433758349371385631055851705701447579424494051916851315509319575017711818054275131975197198839004347923604854596548522456036973494772451553310813411311431502514334073766455860494712632026867981366954414454124150425550267529980498148130994200909678722147626311565851991274445255911341553801070251712769455065609957204636702322436495913535440890753880567845748395024446137581221571176661997762967021960701363836882230271711019963679812008869376209981281106327722569145975708671038373923547671542189175311076061782939189461533664274320467564652026239488189531337651753201349251551231537806406705371572639796250169892975224018028838203035348605231118355884697472406661687961479140462794713687198171732653013606443424095231561749324184697897180287143206325632323870010213969641413575051524627725757887686811386882887871052265245170873401969214196144212753562414853722056589279656722075038030320694301993755985072340500824489717015942025445912575967073617844012632738378907559809257599981606335070348449968369750799580814600361530272087724034890138974294985795132878034459935813138504748710280782664446406522763100100636490184892146948066443225370650319347645654914178517504807674986703747149172193812892319274338866251892740210927181052362944441811517229146313179189384883579763636838732862047811518060288008760355807523137740490919307587953164595928445351159071389213416121784920736454048164624334319137092296766914606370718067227809375128136354706661947810156628202463849572933652642610080854549015841052943104756140129902171236045180286292409045608233972823210664039898611341026105634318089584651469038546972245428040821180785191065401515988725000218490613504153764515566507319471999555297193744840271752903129070710366109368096073190877079612483822086748873780311656081437295136460164526983498222146799602730511335649032802823162479380274221749546434519150735678852129172867201895899753801076293274145223548348635410778403985756063489563511264533051131797425859430129840559550864087572146424443641472625030798198868028245044204840967560096000296698729281514661218797944676923905400289538404962132371155828179937744467285402675559328612079378078443435410195700916727028629279342703582793049009232267944402905644980787615306828352781014017445367774259826064313249379039502039576509251732813353164373028392612148171847877324117067668142573053829631812951088304208240018492317549174061257884988630302302198744599953258794874601182329569329009612069350805534127588028482113035122315224240436677466273299197005421333916598599455847827250991233033922150121508816983951039858789074463772820559660552727352701026950585084497406016663425883478987806753914003707707216431358474252643260693046777148491140740017665009338312414337142298771619571149429426339753938116463157338524113711811922580593594436092805251894612976070607857112066079532543676924456781269430350113909381021627829010872841075136021079679395876413202731900850999539984955671041556144199745441326355779613797018824083526960078200619091391001687643718930327539864732584633112174182506677315606220245281121739704109917205045188224636213347459180218158885927466260768099045828453695340700568699519772727036325643876834595113677386139534550622642835625371558080264115189202413847393281138420692083333360120876907481222577497758891494061653831582585922903237086705700500873096510874233325515907293399167638870571734580289109788919556328899852718971873436641938979200118662420490669145903036839557961835076071093340103267920096045786145163647648747421766631324113076360043148094430430688919154713248798295035511860931189329427923767738184065243544270025396327220284354947469770878493131524680856367955882267945482232001930130102061606968518227527225277369082909827945501591323874600238071910407116864246796466730497545510504648334165595184764801444035325239119975457199162750878549972084805721643863216207353831153194841644112102533808783298537898283404102712895516254759739898767182515310654203083885595397079874914226882364309114496611665218121101066417601606561727565866958372252157585268897618552444709647194942737734365509034670491696318343409003357211683281266403964075339960570305762166010472332325974822313901687743250379310498123518804401433136870216111767721033773655463423380606231935871840238776963986205735625911077801252905905962847883829002953775781893729081050933282320701914885396852254711317454374302666926161245481779468721309446108952516931470307053428617499605116734608835459714794337888609224154328838593759854149100943746000518013550299194983500661547575759934035483069805808576732790628652566864531910612033217343333955875724466597017735026482752758538918896659929632071158082027179002223217875637791335734343161671694423937054175305773285926816430926086146155189317310834507417536800431888619129084107772666002841577838685401023580973122356829548042521570295019212647309309739774467907447848618272860168035781124911676818519660976267040427831331439488540487309307960126367023083399284123044420245011050677268990750177297852812812473140147446013355830244852617542100988152110617466329669691012189646529832979949840203147616397177645410021799966352364494404558503323777858605022117810740508296404451572401289165576048765669247077889491718049763446710381480312013971420320204364670087510691979881496615777904385771326367957791247935650267852498128121826022155792096213072090456831211640927155733982185238453227242532790284251500880430118354186435760039827183430441757208925498592055320127997588153012572707013940825316950051288577696897360932510314260735391652245637280336462085261312134399604157434768483729390295283861385680542976799055830520506467171030693210645662124057399211672863107516567118076231808201978830125216241337151149683293739787981106381224691074298992852777189624142130084782862064185759390281422928961605643404110441144776912446842556904969500943911804999775051787964825924669531896273991768382801854695886220661184838677599973247319289695025033945869993150437462153569328297013671524423989879935729471297959733816276207469243353029793739453092863599197139077516282172920992148718124214908912234873951113776372662273286354544396217619741569201436118276641026325911402102753512658102831722846388279299524520998875801668235236367903077451005140001809651411540581919800273876831676330044907571793710734540202633981044309826263650541995019579677146895561765353855788031417962449649422960699328665643434409068185380134811397651196582271047269968993141121888738857192235412196582140548015964516999880883453683492358290787471425904555094515072718089047677304087377078364306173636227329126508812860192191688972501910030020444015030282737098234337886458443782666154032919562652618761300832675651523646881542091915836726235505342097961490760516496779571076434634927462344559088364582270710761537446872738093632881037073979138387008696579523222039388870455489318296290755016578883872029967207980465006070024092386302996049341677577792577642424658070092460534919929843825994589796115712700809707712140691780211807747386025399845479795715134118516192337908599189945091262094504207779342198351050550567982420790444137925794805023603423446532044548495813057346419757877097539114366934477009467828508317878497995415967541966926392373467555440876604012384659835300006314641882039574561138926769053394786323710746678403954227456958885678455663578752953998895412815502313875220730234551842429951118856632098549021997764700599367725163227021540214754950300834735932258741443423764025466852279420402898049565015854140428214363517635897529349303408892632134258438296860374082128826527496512968246601486365219665803599178506484279100223354372595971020234785399567381449333892190645020465070722009711799994215739701113847715711468448876726607367807246447176217301412764631578756995461688324943212547472278508270721057127825778381345707317632180508243106649053021773797142837723582927147283441175675851160970621295085967416463059901336092593547137312082016625068207351521917888990914288553535463564440423342914710966717084444034055559453053682978233553993520207868679524638512643399151577585050118350546999571324417253267278046520143174274471682710289540810911829996950975096879627144500052979887427417411166507152736050712334966920192241908820344876155102697685796602356158301291766130937636228698626419477454178619773359250760588232218696997526126228090174554227614166755798103771760590131578482642756791881504315773234633594420236007944588790935344094281657930104135092802151550542488176533977372345355813441923050541730707840462717337640370906620940140968432750454020219311774954860308812564966930384834976823186326736571348506550850790269463387051602833692781239988686671841521351838399837624151924504793832900370207299856414200258638071755537229862135764726928528889280334109796826947102355952249317360121658026334448692003015248250819823105806964957090539712331207575241201133375525597809503723836111451814250132667819598050689129030648496937285112145153066601986588961097640358391044735153013883371873897733150740347414596105422724474418117531228613323575883182058828899076904288063441272376280665586521032596588612362156205782009303398476435151445958750191668735824413741627424842441505348861003700482047928609471637039481185410591090924768315751444989850959551536120044504879986304933927129349414431143827214782899542741154263407691704737048416116475408259089567398593619406384123675144819374798590059625622552937797410798063317631485183521764971094912482270728187077398500700707457174617786472543570879197115415560762874909827141543140051417850915034812057294899531105129709504182366886849752541367025000871155691745059617645355301603992421332908137361231195093929705742591148431624644997299552499561555943255462275126933534678638922099180745135877839407792256967633187579374834245694439185460911428616985299217757822130160744314176869558395535478843003166514345150770514081876337012165110521615787174899976052271999590221900700467165288658270719693115004868371096037452613201963703441116286152314433838555849156575830375593241981609168681588654736576192626843062190435684348926458066260645385831897897017422503600123190613138735161440914978853468611953600719613497044386780573108798933671504657086093112169866439087330234659443103302124578288160150008480585586006784792735187098794818098699511384732238200923375197213382895832971613212855919899520712007753860094796708256080708264399553756925973811449603194170647502096211469029972967754238381458905255557100105224931157122515531546697624882777057187355868141834590454226249681963527913959890679656462833887322751291473277554827829170245382103913040602501716862142913116386933524336981261506168883704353686297706836432936631800158688176181473259356632710177054902932452629070107501301817217644801479160932437138399513902439411656500461134409942597928618028543986511333346233548299397968166637563373609148719879263183776312351688593699081768782844297284566436711255403787761901625161603849118892644847613564932487239106733009419818777757887576167136053499260375250662607922419449329465943071750911905128488457568536401716260850014326474166336016154376239172073899956718473937840000755147903546456944252496546643874258665765131571473670987987471318164759627956080148394639888093650793806273595804163491904361691749696851657178747131309025286267371175613796109280988715821535008099597130217524043156577962327251284380425720074056650057647975592153673513173079213998456618150387427592359994779510946828530501843313113406480474232266105281708000416083884721324070365077476158641207724834497630113282254452227417821962156182718724890254938851395341015101746421528770288616357295833160189489207999368859045972110460699157881925278858071416088728243984893254114755761277118240770438860751747094613631394542669422561788988050908838483402091225756521697836013624048339678450963620431746821131444680685277173289315992043741814610096995991574199084107873647029940083756893530820693547935025216646431525284696965763607551343467622285335936543329309547573256039199551732598026553346981868436321568789589051427454899256696110559857576303728932625415842369108832129404563988869831798345544588543642533451388074564732750293120167030726180399144755220812721811102449027782024304277414234474531034038053393615167971695547816193170989834675658893345803337494758275500070129412797138897817026947227503489104424188212011147450943859155863365202993795145314892062417199232595497631125668256748027725379850748916205193648299140152744395395880782372132765252371554803843882502193118142964375740728617547917040233694803452733796514365992902477997840668185467796232113193031427016856641702791292775183351417537444905217672610504426860538094500140384933690925233386613354598227345259167498023251706625684423773395959436087622721263751105202311574289628539353409872888964975849285060729424619191157651947147222150069634123727687030071992238972676798179861255416596112536432589732246340264678879155373674573168983235429523358252498990171336450459650722410544906855904804100551866778389668682396730610343921765700595004300659613012652466595023605463371234773032363398050404623929872979741867228255470046239510237025471692877658197743199583640684080095499054813246102631217361281121272891736478866548130343657839440812201287527801834629269584213166720188185076653685954813714792766770186204452121559694006308472626394427123215243239558259386383127139271241489251551333460102703793268631410208276178867771459484812734937432195225178145269577492751058574153562263883914368197368694695518761579403195024418768521988960438954019779827774670739411241827791460753206599581329390448310820949930498460691234491101642261725059573310815786264855239056886604895373156047186593518250773852216077863364843901389951025475940194838289260470019706841856112008432559540664961408620306880178508019628527675580054454156263332229752737098715507571836320745742522992563992708742553136862912916532186885306485314019213038837711674706459010409498631911552066993089086936930273946354785358990740689586711844588186745390077673718406349455296083177458664056156664650993560991944964481105852675147443224085013700355180168137696329315596186936546596586500201399961853160651348300123110765290908189089151185376226419453046475059677541844804197657637284196918231953611097719936533867741156087246386038946291487722244361109997218010137086247375093009183288478773958859559206989073624255010267790661152076944825090577499408004974912430329546042947959238795871646005317035292224551474491055338100099311569171055688383938835824983505986740351280849146991219322491043968878535221603714600072985786399267033593093200319452145644357668757818768168336947945680198979774952534588931874039224605601449858623294477233220449962400995422324769260430662429462704189024093003710558445802524035306234023802734352983308223727854996915375483014137894381414591686018727514681008201242689799845914530683738456208191232914962245956606051029197586954541289551793989101270596587205999598091682523818008085649387279253517415937585486558717726924140092434131532002011325232670157761089422473471573759875677588107948599687546565216908605393735524338328547901896398665931030284704547275685789029008997828680136984604497789911411440856173127675845106638789175814507289923297919644942999262824168438445442530305192407690869090421526619895714763705124717705135167979314660912155760798093121570319349174651033076308232224685271038258235903078513613262130033906131907283571635694134591688904413706485719647156978832931285757149721900038894950356728832843505873000041244449475837719545689451626247142595148823151528298849370454760700406298543209009420750117744500281681109643589400781143367482379633433700041343917119676354680537928312814463051447426837242306590761381825860370215953371770248607493632160923956493262330241865091352791307255203749039320841288265382824293540522266332197192279415971719506977252891273547624471562390118722517230123129131811069717236008032773589433231573981236068297123138988492245704600598484069587862418034478372673122352108761257488221039369338677913252364472420522154638892539235490955465485950020066730277727866262189394456084815690500487802050140950604817457831251730111977914223162929576256242261170472898832393492932269961918192735643478640726322993517725509433824480172496530294256791440779978311466199998073793440885825084969152586966459865022690745683608043686418296059805100835550707094949410529505182029527333111512408481215543331812801053316321712006730107512984182888028047816763035838764680099592227477252404636812871282902943488537328618134412854364888127234201371135862920850122666091200051010245500095009034541034412724506489461285326535770557215403130485103766343336320133752431081488867559480298866021121903945770812498591059445604845419111136498847348373939797504458237365216339338605324285852281338241466702653014617999745190210646058584780675189096270249994412445941628309038295899112380653926535029298809986350068470067315962880414291719338767663286689852633365128939193994411521128190035862275412022073807337774893959730801345907407064229971286528892014801046947350007819990097023055133156581276153947161594496789084449328896759645001656016367822979163125477275847987863579950980062516549434238338775466993796662310272578350755180188459929756820408252174136306833051183209657304186919658983541119322837652290794270782104100793304041808446683398263237606441892957072886154640345453526266691183259440080111893747036715169441281036889824113187580856774779742564493248688927774279694760981078616524011345185518505544776836265733627752447521360759963706138089633290375602290650150626605816643227850288977485997024846676927142304691904377172701896870111282955740734080017179476605928064025888563148483147320094675493674121641017435356801745491333552561857653835795844513679107227480868848488628805091294831107296823978124443144331784249619635110290649974104365753096176826597514773805836215429471334027565794014754358791554153437675737019236463007038261993771437457792081069418500153178206407323821784297311079420130277981169148363342675778217986945222511609578307381523539093426791364981453462626203086939476953996987075631943214808283673914064785757915229755279756068141006456794107249287237733938838261212951628626971045850904579216894324864045203075176869611568970187159967738565859422512400756588695710728850084630031709143113559043357580343301290614786456932007763657562399208041874441469220046574705710467900074864424422986615910307877356153027572164065703234122285196530591696970847935288425639847418497553161864133227610202036287703052580320393079381077846426831374550150224609203820034502548913483403696189353848378812650430044650311615749881591481445482989726179312941774025555731195727880849684749306976964922296964611680571121877744669062858268809938997026629682657069158015994004005404449006630376842551892807085516156600986313913421674166304830125380842399820811913556370730462914565463679159584188251196091081579031379853699023469095535084830636963290734943143851429489106029853565854344756132755533943160436021710718147289418893361949972948321727200551432684793968141399346652816314567577338206267377146652644177183847082379437527744709360714634120427119891835161690586135308643726247051894144339243336418899216693256132077184912074596449529236844088255386681978043864157297043234212176969433439759050868332361814011377127076202402278257197306996455758953526613532760885349877571699723695126220359527006264032074018797822125511941544621835880882308715367775604889526680909836727393871691799403680592761187301464677379992411799705350260300062704534816837500453958838348677087581243748859882551016807013511654963170864903200821631045860183601791837412041044288179030309739440587153571567579369833976350895836898937669204893858797885232819173679771225042515103586409368444736133625026116488633002338271096102538557175918263748426447481162132539236652079455046546725283079834153501171634414624100181943871054869128885372758684485610037098867413568945202890106879170533318358976193841056874377479151356206112010380842635140662736563913239170820670409968130535308680411618141313550939989298483953603627497873199800025603591238634954898957181115973417495936455521473092741399725886913827975634910331307642538757885613074440951463600811571251240801427689970049639436363398648316581575045806380527761451728644915251344640912767932232627511533289437566645537672445542136176461117188407357298578509791553911359602702685101174063811350807017477308047279179986946032362818102636449613970516842140440867377714844399638670997379592710780963979837837027960931588691824358377606595272524640474502945416981568436813219145767081126094845291239614715985810079275860207091317879332878192637227858037124787066660701986099227021458324693528082948866736457368254841315514175979305685545949487894460474638534873301109177528831017419247408107567468649648166538950228781314196542802130804544095962898644953292054183914770159549167365386576718076290618087270288673712923725234423655025939516396137393548931906002568639128247325573589973300045328161215038318389424803338751713741265889801142622731513058307242148312384095319714220535293436368403873579815328752773896735719151938022119708762374529034425281157023886904232305668396468440302590520185165190199708030004146160831134846634972184684107027414893787417889185764632654813476493126765709157682205289966207285347305089093610468504003579062906534285794137077498264114140110027956481634963087935067902203806879142675831394703578812196160040962443739521772853758292319742300621331790135384272576411112243716599656878813363284545871700032972590630879580446076850342577020709189317198562522227541307233624292836175557316873858908091247629210742625757244569945174469010056626497818959223557845837165471282373309129380109814040258809908769839313291340211202473836368374545689717165169060163220812673448480303827809355194262372543419705175203961447490257038474289740326591823453971637677723236788207701686114381956248005497093191248562344478712655137059416486671463462484663755692813393406473261761761501488053203908865740883660162641254588845648618845645380082729943676468830113210834172855864615233569731790124032779678401226972110652774906025528932787814766652189424829413303195672768894277674793907486604737072633558197033133143646658845870624675347327949081690515922406847869321826399753982097442363338621469659307086186204983727541173221503669074041126898617038615420143766162909144927023916121507017700098709896436502035432682634609895859550343282894154735599616989104645749406303376544760134914025024770199511787158102802189370954003974363274992855182733066066876683990748789334027879572160380730233658101548529066247139336163905235364707221562527728896667315070594737239287310380009158021329907565433310284534495222590318257732744385689997161129208607616988793853678708094769755146939237320101230422962103771944923303335490649672242720155801211060587276460046112336582797555868903752201371592948324584125779735131977965139312315640977354460089657108034797435800983134206037072818864614338635208440695263837634236653892211389826171602241307686201644429711446379584277297243712743262774475930115192863832513581409526828925719063460929984023829732880749193784526256616510010339687191760072335169993904836875047233467102690028548191172028855608738556319208913278570857125406712637246811854932148023557595176373173401727134414058943535984159956314481938148578603538265735763276312128714055258743381891166967100573553482797018121258026713100398299466587116934256782288471949216774367153491435611861599958240313875725421954503053135481899999156152338214274442220553405323585564885751342619522117584849118729647928414851238622369645062634649258352147476510429811782081490289705319981236546426137574987339866940040693301943316802335918835343766221761275646318566313003631156819341433022624798324175054357021798091646945326849977913630204762539264140041489780002890129883952854158212760814622400731640571596580998477943569287956800789520666925023708426773120350163167600430637115819888607400081210744456866006045672203919374370247473829535988827021088619641264944294378792176009625627179663011680537340855944960136506648783702327567293127764527167823521427315920326994347530989102386997058470291584307045571268880976499714829812837850563974832902962787007322584891468234213811659868316630622800148415852348397571495929639663452155620517313027979081068239839100899240524738930451830250055481329610254055076940459291461669385997634674024914994479394225908734410028071524504875825211738048756252620967775601805683715727727292127405856827556430019804398196878808608006161961503039031416872886787105791065520417197572033706466401314820620396399569414821633163125225439622238788434020433331337570514025614080921552094024436447508707738498244219966086196378662555872817388985110672828705066426838945816733057794365712136130454165180302775540656772644782904760548230065409531037651886713538856136836738523112832049693960669877647472418826230094762224541694388847748130464813207659757546906778708276249597997564375399305371035131567491969024212030087888047120184121229770863484370506802186150229405143969338143154174196500047930312690943119652057865478466971899907272402872567270628433419163867725765977036370774970104341303727186485517326081271512258340151699247022320541458422515968071481645412068174405318091811573062497584122388733024211749351032499248080313279916603516837171733040068667173516746809510045138979941806015913242063732522190539626371142260474030381483783905544903224530095778128912482085041367340624683466715235047648492657408179143889927732763471708276267927654558557807532572855037589975128960466314209751341584112613104249942252672768359626762548760963673555491160180984245435753555459627201231459588141695789939938060810799722650915232446926163540549708575500623727670181610152767638071951451044936355114644835360754856685855282882587463064681176882732096858722312686041151835439301901936219336928317349752371284870280831689843993319352301721579271902189700607664764073165967055415692666678968262008852395558836836645018967115326313253802393574931927026367519199846288628302041523999314955280198231088229168503527890997928162749000402041852125090893670868588980837971246207541485421110446738527416139228853422294131725862351876412046917908828418080419837025413533611557990411700699963842351088607640759084096684855841462645142377018331144120531722185313124951112213005415544382443166965080432020641305539705896255985532434568318166502986012740825564833745743163149780335650867065382375976328059179197847006213158840778557795606057023036062108341984912600932112168922414404530819348668524700298007638519451533495274471264344370183011215534396832805916447400197804470995122190803726016709030367935292338763752836708730151017874230962801547054581089935715884521001555236372041142250367074069085785865806677225705146599440349002355983117511070686044638319674281960986715086772686623633510567346674994395040200601007248931192791479266868577519856704099596950228232677041903280050257565941095454762108216611024610865306821172013291500686361381180978435046808720294677850462426794142317326555760855403142288292652255831891382335426610149296192014251745318117970001495869044431665517081173751224319078812567865034506014443063004410254242475419765307807470864068644962121720144228463997563714368313884450302810519674705767286527127551541713858417939301179487370952342772192257504196627661586837338922749508990827118955104693111707553929068839437623976431985683650833921745647383043365766398695814861774810045787626067467979188503089765936026573948953732487737366330386781669968893695685578619389813925969772309830214708964784537458131962004515342182167494334985062072343425072168209890007150756572361032049950861844637623592379920401760157611324977298789030295282372096628989807136554264641560203584128807145000708611512686195572255218105700555195967771247710980324403398754840158464953849109741515527516380549461593870427520738792887321756901476676366996899902252546572184439914761917360145509053269467214344102336383604224182457188636025887356203859113138774085332103440780763426745781009708005743797815109802243829085034945943896686722230531550186133072879842217771328819038228639074326736592352601494189402357653878162362615789000541765628728374825815203888008930754253390079433744068853726842417301320678964178790763706534321210667963357530144042639666305766792988153971994404466964839305672889333554652453756036441396870390161498558358944805548926885558102755185221401365398304258104020898610893223422510310255025555561554770844795856868910832563870793083588125735052007375711359542523200491918109268668449794567763792065113384775777551945785203959923070355504986522173751298678123622950332679154493527788979244999339159635199452965653783612786541577564666885543533496548756959146502803406318238141842864754349911862828563675659711500790601363098572437442262271193740252070433779761325643615232705772159390635862606253704607207139078327767443244536912906013509177010493240348343804552234213670174815049434664508491060294567208926302544018373287706906809527615218405401694262879878403009480980655046156995832159662432918095782911396654435796248427338734751691346503254208088238834678090199756932800051378707026989076862030030985695197463829816940143083257753660269044793936743509670839840647480594915471167405018286053260717357370912464500000681671042959687848192567863935806960594310088867663485612389158677393903380495353839976477474850264716114560861839725953521563075281934764957964020534334247092115971075352588278017411888539518736241619473857016740234790251660518991316973600208043379837361349035369175435910178219467755869619596712277697696840728790693047688969468294662331574489353298234198783612199085090563014274265507925918947012917250969703291504892863145758524992560357503374447655738737109958007780859814769308244580902687645526129549295435825270705855080933592147673503645561945032203750418518586607738727373492708903035737860582236891377231268646482921515944623985775559815500006039137890823953486391712484549422245993848832323354754925207924875154396672219709512273525945547047138883774473333319908240135290232486263649072558430001656388008328894780557142824112261847672174813756500303496264789568070144685318363310849543483708452226246601096815895500150705278521579689269607666048950946374170251205637380200134352030057128862987431458225519579136530993715344592423376614234675109497458653973563860082199329253665502786950157982831299102284083822634820735956682643347928797961088689242833020718082225456159353455443817071538148792077745931801654075101061861328187710020105055198585143040145936368810022820271304112954108668723129997109996912006286760980832278408555266840822787736859294197879408860619877591400217071278993217472219860568100929771408032770165315093189486238486255316137564353637378355679900981823629771461194840393830425200236258956967133532888730353067629303718552360748601777021307919145841782243046267459790138621595878311127926069995117905306684685943125843307524072655727407328732041331302049807779215075865211460154277453406151522342543420953817330384466625544804110469939279843909360668349093053919506332976320737497200646322695954810012992192714677841162615888346279311103071129282154753093351069136261280829478109726024682681347925446904910648978515940159547372857816501498099550090461007850063527404652384254324369802377243697686561618753509120423912307408094077445356257313388597029912323365428309135626393042649694471445253568270718811395658075384874975781717640756528312996251952424481892740331956813570526292747068392835373864134073727078428540559460406905010118408319817383262721928795401644233439621335364154818199998098168844435355630820816038076717038510600700692617649673478124647539931754098235609629956412398509439601154801143343395470251193824502750886502827379257078423971651475920768497510957708463410994696199789264375996115348218463353796827901920392612186354588891343272272568409879238549120539941751540734299826950251967239012505861957590189063113311316071399953206059040837908494271019852440336099671289154651817955661688967213567910007734097303721741079931134148512665768111937634301047050315486415866527219071884347192541420456817985451714882591198877296168122304366515188574667336668489024777941573705035819605628831454353392576981549217628202653378491077702204617213497458901986298541078065413045075460338554564122866848697528944023724409542799350678856645012292779173132006612136140253147107830047558703537309848343112388258367584411858421288683923024488637917806669431760293221360158961675602490236440444919969999439814183880176964967585112875417856956396292636762205616088755758557220946986062503911621918623045497619090748998093184056135684426170875629333825483873220554935740259469449335001480738461100089197897238045354747349279403037044873078759029049991656897077074087325592092921813606914308372350881853631184394472747891221319590071012657470788234660799632284951829733772676947589129901438833930570368606877901793211088023117019676110756434265948808849992642881021502737412712035474329224553935310743539707928099332945847111637001506198346764543532099064997705456409507537480820792472915185036200482193027906167618807886390695947990559491627152542276774695610603669320390979935953927995678799522961032669779259933314344292255074114998113958812866719167942858305811092200341630357949570072722205082493281737344811180524565132331856799879140843097418045967894161113433476833464602513515364933548645507540856531792655090132342323861248866768028919905424091518281099111990044489767120647682106943876507733371700702268072013333710724259106483177187513147831063276526141012694546379545709816714803015040254651860342806793272584254178098608228924097947774901150087383981582603680937963753950508075899501058338998190965084606598491968116216722300794084741267964521312057257771266301210285341198890394609464592742767210406364668524232570739686216066727916153245139593368194414236782812429770645492387116585262527411798183585091196695600478225465015882130747430071299554243328674896796440703567413191863978133762984467962496777867705577813085926054141453039090898733424852796485482578371165400891978568058799782364799976744653075929953584705587521832140482624959372386309786090741033225233197421308917934732732214696584849703539505270118907647374058494476471298579971945736940692031361860345517037124194144374678926159968739175347190200993645086845714975503608441925780555066192143443998347483089167208082429533312254667260958648221040352620687003171203150431157456165007146528069414766096928694253172422143324427984118396626389631137176225031044276325818999260995904778218443348055120813298389683591162937933982550543478004418769788086312723349619394596133197317198378515925556988597449219077923896308174457781928827355024622720466962093504601018331052787566096805081715404662404509555334024624617498343148427959879674970749627341033201251655574775578637900703938034637787083490364665402836024179525753916163837571382731316281152834939841764685063996967765327351628709301006709642564130791471199268408842872381177599993756960622428788912913119060951706743803001315378266936580485365687033496298352418916622950731685416620277838080221006668824023052295727319206950737499207162465404355009625889693828783048704964452412515576624061351654493779980763516914843592439330372376833303112442309850440340098277794945110719337434663355913791192050611586148147548788623870814235436027119011003659415104333108900154450093918042772781431470314448881194178818231630748296645204724365092141264456008209020106770518363203461891980972253813738061160532666401228036252120215283521655359220304421808503571870469334822816106561316613549465330034165713980563996951570120691525067058416008005645060286091960771363514035114648719619212643429569694549936006023366391532327265651630318455644889584145209574511757210880885144916553777416972185461364488925033098706673155243661281637256514793028160540485022556592435703853565225531081450828384758436633866773168050385487094821843482857641302642815298662738487122505736582063004455417395014420243079407909924201861116765390838730626714420628299759083187899050836696720406293690617356819697898291637785691547776404237873313061907779381131486709823570564261000490585024390860604857168656473780211166350958522614494705131572353043606341468655979915415061442721031775485514075780448081372078486500801779415975630730789916232290691986351401404968164342097773645718081298854540988119497761561354806430129144749723965414207766654483993971509669321989350122848806819298840126383331350989558565725361349913942484076823999428421911134217935917274197304057263088053489907882786100967297596808256000492569010102263271264643040400420100826358690496440878314582302669125116417353008840463482971996758257444032558582609989093879379865855226828958886592072679525620067358610377217654270990760099792654351619195904319916134615469473571843717971687186920668382196243660108012381465884164506633950737473803644321622215524898392284706112831922302789118797716516758179028796614543322216381504125760019805803797849576718048364072458731430049836981905625145641973348216158815271042019693458440446769474447407432843302147867614607319544194375340728128488477115501952206697928016724585568272698358965631188245670760707378164481191957877235914850256347862321087391362628281538631770502022993240354292630117799052600220435782517027102763172580764309272454258177081131990864432365655766436193814221211696108720922010437924178303368147494757631834157424278254977833773438888686407163185071008321986162802769705298373383177061152189966995508180148217041289727351219832325804281292525159345659683772458942918407022489673001598221147303519914611700262066863023886403710045857315302791207927239153299014947227376947248859709125085473741964225545848525359109910502617569407848853751811148461187261235857491788412833045397819459770452219442075138731433115646632659601360566219304725906555129073072150802073611425956002619767011780678933244138207431289717552754410329798953536682349248239932854701009209605298826135443926004611762241914545184627056077437956578957696326723236542927511346064304712935319028165452043424155833451479686545685292022260601136779784106451579997059548882147726271085920892839361435214813864625864960849257466548511241517149426655964012285133719118564746477773083506304067350288269453541266670751992756493053900770378825662220420218860751216960290916083888285870931134677645263897938571230502504619332600803718610367369417193283610186534692417051017868110164117451938065549219094868444508641832790937815346738592484949381050281274979123317174056392033655354636445131663266366699216320625659854201477905542468099415071474515363936771279049189099061523823846841224336315968459218390480885837515044950007679538507294825015684520797896915435628939223788222425278968159211426864464349296097087107469301999769108076825069917205113565914271308022439552532758075887807567640358970180237056820946237435645276349996225170177240840109631487899272486400615694922295191414123660019991258871796285620446869179280481205632362449545707929581872127512530988481683356854042656618349614234076934895153333039812963937889260796681953459189370842106722261389927251112923946183294533385040553326629855355148036804787738770822817586609313232762840507427089429533047801821947218558552454751821973605965527810770575221171670793298725814127219940314572620912068650448123077670587696661309369652168160018234397897224853348347127557814370525317761746020642503384338855596377095059115162828341053951140638308275644755696447204215840044883534359884224190696613432910836026307684762250508894034033867139213273396171587048174732408964378129866692383032493268613423376485965979556545528147282760450787593391812171551669357913361528432296515262984796509528364790831107716916978690377908693972848255176825349712706611531998905630207385606921363227806823474683927352385405680007990883992474246715529290362486100342299182453408601221886311700538137111397158532006719590971148402948635148101875431571475103820358390211109767040567549591360099132084062697509849404874202265673699183834361012677444799388621426689825308987792201093044787030425136711661701361249814934366197110370998334007940529959349158212068880208489252802725383834885943994191937385243650698720606449232123415064707729970393518855425963450728737565884867181021925193622069081621477820841964840621037901279941391909121870168155052508695318849533228793610835309482538295197276364148480412776757426727892050600471774425307878286827875744337951133107583910755076194747460065627308613413247937622125132262623877357393615650292957352185940968668461950857917521289088874766229992554474006124017176279575576624826917433199369458859716267766554564238168733370367880940020394865644010005595488943934343586949450083629218186439485456683390237046073555553264632483676822208733973582601059607449752708346067360151322089444709078782721755124171079164563431597545859342079784866106361587544796989747062400560703160313717839695005850883085448385201466303143287733007331816207715624984417561219608518469622388084800017600450262188626641591594568679816747444927917393538645724580789402704314776950193508426475428457494655364400384527326564035365454375096563694471304116546182882648081201870686380480931598369474045474392053963877283316702342850912161433972178717890930900303250088299658406762201636184845081221163005229247298862101435039219146446085502461040837465806552215923101545363237302525447880421692013764992520867468530119397490508405694046444990376250270262065741578721809760872960673832418706289258566337081294270489131734576693666851129020649290959984405661139166090887643556093367879225764240564076671610101468482850871281930986086557870034014579327664836586482272797782667159844378872938583780943630277579597221148184721668292958016662871136013540424317399551044115855497899846995120853662164114061919009943013243011700570244419906950689586242470936527965878769325004888777415317441629112849587887818902896999790287386583726176835253782960044718558059035666630208082182486775469897042419513171353674626185907738766084923012401220979925076664455990549132076625529936361116126722060474055613192337221930063455665776165687843068149657269219124914261826644916739719480938682589317656384275075843673839316551311851562061433643676612313175803062590533493648555701167126359847515205415137308990893625726197062985526974187910960230734456112237603885532102325100503902655292221072991799736881445554935140646851656052234983546585018430640565328689485558421279785863436975344027056950719711023030417539328604936330330565046028204904817866577432533853021843365112334979692734569386165704614689684327902986306381510434308028341885636155100549462855010184324524406496801160327588705687218708195364823530624261692246992823936412203500375151287835658624497633602723601490273729831631961485567018664131138528345655814319789955509611865045499623114745814659781775519933401987724845938199696318269605294336248582324182230114455970415305336493648943092890113513511795693857217015621683464655137834779962224178198191537232384514863115328330381312910339224505196477986039199925655739314104028047172675444292514894277148863305041758005583548929879553301004119046257114884647150141120306216438473432404463029622596711922953673630514138674044972107046582505586848777023808668833722981645461225464413592466227635731036521244227072077318629912778116561424247542674571964969249292729418054929619659857648528176219096064992561329948896906794809641383815079787240309498140887039088717898991069266660416338234164340461845021348374799723709365497921523081239372680830016321556803913428161749685758697612437626795444776796503493108496204210215958729443605028723584315688587285831498749237273938508750728603964238625024601298069103497292054844607988717248568161600976717775242375832959329559929886625140438386956644693300646225960052627891137022497279761557057575511910091681524929252274617448597093569122018145119138833836781808597026340149541929443446803743176649859118707639964088885856339996770190143233974441960373522792932418447446494974098680758753473125671949642567290885166394104903355060926555277423953106137424592136559954149433692754432415050346883064512118438136688538552459891967943225642483936045132848905959881474549741279172723322580649103500769470837804295371114516862318707255025599729811654712241855388684424301013239046640170697985731562418928477677273701929534510485389414344887459308774067953323498989877304740098706315522396031865436083508449402231407592678296216753125010944583066485054026232510933079087494131969470795445969374590621067801856913124003820560289873674714549093727970021876511735754777265702498703185089135951243639469110821982564975846745730152580184523940066323613142201200712693684782505482791767882295007509952172559400829164256505861202083648544085783566556432272493467918676324020133294814176946147758050042658403636296672670950101575028225211188122120104809952354220442112685278505365571048187866703978546464580978451404978617123441766029979320316291498124966767882375728251971342501957838816728490090810623851135269975072551257339144470466021557459130750378693181156857126362377087705722604966758753004328727394627247592297088232672341741655398728643128767778551482188491527391244315706973593342200532597148603132867077248881802719490914931907779588796271207891624038418880658576603699198645179326099870875777471388535555884740099006114662278625982254594138488737301985269126981505993133599166218432902056701183164779339774472576371712289693862840810828715197074399023574031141171376994189397743717053183779111179720252600373429840610309184228423816496927376473811242546896950604574645496325809828726137961784419506825900425641489154238346857933240879130986115135979490152382548542866901505471002745420294921307478046137466430229421083274444958820693701384800143626651229060937546794954065183055675816924797799955729968037829246943674322543454858902834737875623874317001460126403734884340511652911280366261572587960999584899854053195274102991839825129544533716383682124861678221604364757413765542630640260973416174557440919834410393740190481090490773794729635267453786653501816738471414700992962001461607070697164464401280072902534217178013937320152586321923897200217526274962874485486995585679991636310777045580077549343206279146070306648670465281324192986743672870915167434109794821356306411603519993663195906311089160682103637255719804108085583868517527087741492600912094922376571344246943741461078719981190796092807746140720897618261093165018354347545662956430596164810607687126557948781472988991645738021578113611462548779020930045308950178490413904111886381572794049664708167471187895921549650704311952068085295987749043611517277178098988929545787990794697587925778912163888879793553971778742038185630932995499325365008011940237836737762607137856547686280801713518579106982671629620341671852624324130577890594687375575763149847542076433896132571643402012640242083846234283252275136691667384827393243108769756697175598514281803981011500740825546328168302200964526500287292399012758144092300943515308852845125117004680022114968192347574394575321945187533715040100984404395275747695901347530855718211956780419878781352951631472482226654090635062839278857638132871159796457512822331543838004472605000644445083089834329044637307086848904408050234182683443486157113125620177654298157948200356613300647655078366960846124867541889638677687787753551176494826557762951298489068895334734859903561220019271530364112397464990195012036532687596570598550289058607096453847932180518756220399794475779114401437164520784281561976340583055816790606737060811098870047582076232557694085269703101363606219472136963105092812100485323141983596672802634968516188928922733887708557401208661280381209899698775444641758386398756633199897692138640098623384046072329810195635358046699352329009864021949472231490993416640254379381974748983758315800779172737851154970095625752156739495545017822585395157743978752130414529587637336280077452328971391555967598306584231710798973194729362075008016207393394910104356775975431291635029578943348494178877386697540215435623170217122566812624093698816420547374439728336398718057003748941161910012166253724813110362373187708935566057842548384348417416951711971456686468051232496120639024098329723645580489219777485051664391640840320853683225683646399084040493605670714109707961859134064868383974831126941754150576236730117073407462647375240840775991986680244531978012199659301008779411365585523619732545584701077447159271883754760147691387991871777344060389681717573745621269514918521689633883571760478958861802550257520955935472662276891583050020462643612020505580333756465555524268824694437340190597950183514667069800663293489604467102533320666038832561084510691924581410935990078690683474847707209187729355565000636917982875065469976450766404619714688609900054504781991983783501654792034293070745454057750838595706120820398902737081646764316355550219866650670661414058998611512255197459453029461193306389315601083334855123190756173376188380946084481616017936632692308113587142353076313779665562665234588018956939806379089878125203369324146521176318352665731255857363204891893102488840161485525637612231274709070224466945357133257596212067196049656741407044955427469116729912950118538323495137440109391905848424893565608381380096333457063265585118246304132067333467855710947036585747829121262949342293038726684581837103059671814895713132974048996210011270611415651033780846665903257320535344961302231130820562695756224941096679429576866138432496411844979913562094625352119855708557931640748103643235888754777672519154269896620585721565164724363559440712493610793906844237793287403189150132922739537542157058217028055440519713036312914644943896699022346665323533912228028446791789428230779101939774175729570195733785131640803413077491896192824727615709108882101679167657311809151604764817286905748005223923055907089828751220590412896324857611090173521295762564638222828169078826699811602329053987149122033862644086814871571070961905069810024879567546642975649050660696911991431729180705814867102645608589483037690966410506753516251356222752992636936723329961958813679806491860130409800327297553448256520949332773712133806803244930042064919794858686693139911303633235368975654081284429425163144518394749206633333155340845856343451316147213227705359842902785820566922077812626996642101934953192811443825242721264918213621305009839241124491032540636487097812466960814323861453030660162949256174230635854626519641580086608562154302196355316193721235270973142018257896749261171945486781233293004772862308972991202102381631709017112058033391229067261658769499649067290366948806025895819467682801458906170939021110748859047611620110259418106934271447813134894933415852974742530567397917212799255670632665936144264357550021464303311015528061732306370871174637739657171122383246390199963270225314697460422986092236298395099230664478354349128598885544229483854645179152787373001744137822483409470326080059888442350825221817780970919237153073382072030293339721081432670455517299283602030383362255016915816235546372604319057291461544650513098308547702268192927021736370653114847805074198745230866121653180135223499555362158360481868465646246798927761082780757489980818145490010223809256542839745006157746988475710806329472030931537766888542037335371117292510386441761510960235968471608254312241078477876981055972129777448605181851966537156548146430208505805373597371815540318195649984949502905895709755083970582110791114514049936590624717990841767252864091808783032856395374348175640619380095678045249846380855720794121561225699398730611406514876409995068793553056957273553707513859564317838195885119800746869988664784877841529091544872089031022394698653968360559638840781974346971606088871636230657669669662375789529671059749228824704796117749528323763174197782623170559549995612588958314176827428411955690933301156097633738028068475865294119152377563167111206421077854277109040799779168384712499702785870147252039787613844720722553525619398465829700417490212661021452688834101160485888458045760797974958366716888154089456160057259650832897682021812320214988324688186729631569939826779602937805634742897128096960834016281702057360097077286213640148704303428490701451935364094283367015176418569946185787391685801476343343698403434317648158291520614537152537376361295300101518218363312355425013129864103235151260026625284674291192619005745570031691875728871620071177082043430002994831044909510262585726478487278999733136009998621232823134633575680220693492135584861035361338768272306811649433680170034810263509952430630298030622259990194679698518859849911446439434993310525754290160838197001730058672032761368535538929452429382946238972055875613195657572002481779635023721084148609758940106039971599432090400715559330707024727678754514559238732921951126533015437038375221479497680474632431624581008289678138166145247061512582266117457684244729243400026088457355873091346790750321724729804893262927812590589818300356321406153828264581884243373128836901309742766520474517753100604206262023148591501926944689599320426587761553666324323101920717443455773125810160852606167427853944672005657552457480663072808884495666072761987445034010201122184489506250024233724583750148970880060753074580269119172284629608815448633000112545419576307471085113416071645870143065104163000837880301410328186466052497203822836752664532531725660885002981970821373405117748294971372807702015258972077697945251290595544649018268425379959163961542977841104212419351988962104656695636595911567079430489949041486285541709903548434429557515595512840198426843092074004603373102465558621657237321185884968379723359674352752456558057176883443703426278786164545034363053667925074213768853938423391172031262773388544413329876866689261824981027750290857007635249547588225167612550823775187039839217731038714899871886968935174885553033693998626090114567121707783489277432549415842631081636534211561841439676620938441588551373603256877545540276524182701247551043398159477922780128990801916362066775336203679886140867255383020221117164090142462680825541527647810820163450133152770317463147912248371436897087424128967667063470321666679698790247103061433983991181502890537100405235923941092782867199129375343714570894744427506198941469125250639271535366553103370507302953414969348613393264592037864108277217959623679391273616507605722127268497138889766577835010876708161592576006421301584954361117664582364074276424283449015777451902638856242310104407872484607418331532716972014266783942824371434879524050565975354071809492897295892038442580974644672038228379754196294862382244573102752719464242896229573047367604420829265366750461381757531128716967757310730071260564401033074755349031381436377401443396358632109425333409013159932850929936087353626711376600522941052542393756796172373181118092719294022649770056134206827066758788629948527940571482742712069861231724489396710270829196277936058541890845593632104621774616713296203703107185026442927194910750658317432056545014592533067895600213812505662265949116207902973952529230366096675307177145901150590947510156167315576061436828600915423424622161239468266517773672417377125361618676544198985262500277689742645380207661860615725352822005803125009907575709616695936358338021047890599360881332803285000950164291524212112970258378209470495141349740505206672016119655858739433456912292253529180919445217955216726824396403965052803734684848233549553944995861642713138345701671826280184336480268971623771501816655779621713005893970608805669289548336507951874655353032753463608977328236641617197608646590465954195580044539432557755580834047469056533013466080414668490310555136512280246055736410437620265737502582211340198935511427223849020027209927184363052444194016064655780079642466881115455417432950447714462620149666830916465528723982912433673928929752308853059066597810998513705444053133934183210374904227139565725874403963479886156076193959187166790570085773595006637983516150793509167811769675003655698451803861779890672330280250482959902876049966937374836966315473128498927012720458555665498548390695168434638451088702189293750832246602715730846485886652294764597865825675538372581575255814550000013100768744088914206312218292343456644175207866339767012227465250195219166256258381244810449451360141545793618893087500017514188612974063847570378654135175536166455231496332616498491161876648662960778798262255360998883614114469031647001336945925000700238105117679301509964885429550243133966580882882445597933405704881914047870844261793789463794811560247387783001000413306232441684906101421498372123445216395238239528857175982728492686767299615789672766296462437818472212489505499483631929216814362754435096922586255368382717172343557072918526804740285090231318460552389996170456156880648553062612769151886934046378811912461633326204045683815846127445609746412961152535396222183157394813039487911793068637389503156590363802156566237952478242965568832142274528170082854321977974934158976914563878165192120382696270997155137145100116117602559769417650536108044834549984382797394348268217377749691187355088814454957967641972127388182995991858378831894491827968969631064180651883159471281263851110434879356519436986956387243817603546501722966477921628405677061686370828988005515681956044015893055036141987883960637783567680398480878673581573809316692448376722991278976598324734029762356775858451011391853871780455284387884281678192140738755514950224893108725815753103116794198077449752285391983036749162894816186621498930087568840704050433521820078200789045701563011648438538935032006624264544671995166685913814916324504364799834830945660042022898345762710727586657193636185382574363916889531282283841261730993323905489234022520940774414673291207505540878488012264346552706303242002855373162363586630040364952050425338906804342404775220732897662872173537127934899331987770990683978027871687685332834621775167333456119318704683142284635352520109443648329979688982276476049112172023712224159185718567668246718074418423321561202420361301436416562596381520043923404508999257711053735319261317690809457750490987104660922023269207392720884690097852001883308255971328936140475517323534809480394535427664052551698171047816878817291368636431678081699787657682479809249214966808636604251705528292645578210603249769181420921179135396448881090417883900543102210245463945409537988634171586845025944348512796138586543688842085257810527030175545929903708600863319724609269206979743007593066698173703020200455563123056232120915048843241536506729254296918397695831516923693981566491022139896312033101645836498789515051957871935819972964662109477920365605465204808754599930938771603419543216801038378729846765483485714725414904381502821936844829831255346979946910900395084921286231091203953829974097397368720245614141940760666843646242833077106057066981481682644736461183429331473048560849451898230072362399185525936559733468167664888833938568192913511527643098716632625913944967931817870190162688985653539714850859691295221013772735906744005393063852323185855713846213879505703897125152648307310970348930217790567752156023921580750068641333077361229454197506472410402863710211225695734368188065575613691054081360772947179263915465061712164986496165136826868016865719736015001943268697033982041406709312162352391908961547072439592896306992650782369944431120613392682413773786978743790636076489922443543535871975709380251785277173194568955517744489578396873541815178248127478956382892039760253702033240280233802301461684362787346303587051722806407044390847143132210643309967720653033473576293798525460715061985214933219282460611905007696313848625020542242185097597163097736540896177175644467692661181935940502165906483753389543469401071379269800124192841597177304741633634778562435906603761083816179728628252879791961669173008561480615889903976837012525100199093788788694865959430450310468737085310268172103315120765440345025355614904018408604550631345672148643015726823529819060845998572054891496413554613420911883894033412940710235439391659156536718185035756960294938468429100797245980633037970260722106642250410854432535516406254206126255260541717260491143587099738279408839816780045760378662119495372441978654599265394417127891922363223783001540688710309907196163431311093450626653499341172702108225960406689957377410823405252110496574556474915618261067951288730682377724712713860758459596599352877456975456379197760186481071884567025526835060222354316651125759774657514506303512037939857345005666576695717097346197794167480802554850411024386269348344115611207759680895412236221724073246823031417914336964865792865591768801880427056340517623341539514046315415672011220365018932538361393998744291448675525690347926208457850697528701920360676739350028314882434609423888407789380143619941846930857366544464308423492035152009704992840565931213775096956535867854031019465967999573756071975978142815024840985667629630420912091025629842013733732463091128770327442250065366240460360182091236195491816843516156725823639332785030449923358263317742669815146471807475744237542395062456036950669117381033475880473577563126093435452524607752990258140703747406367850736674963006475268052049610176928833585070237701536249248289055857763200465204260015654223354570882272694298121081758335628081292803266812133868910501690307211500013562878964610494175333409736021588355307050143691300975085532772418244986833701144372137323025314535042993958414591478164874041778922408666608953574790945480393002575702986736555911796187862112279902212058929375959343926827132863206371801923321003761698603945232558662030229101788820080208850887272575339269756168972497702248904357551069897148467154061365295338745472991269773843306151703369763228020781898262552671858828618762670654917253069748092142813559084740550951613116876106806166294832000712516635157993868782647440038501235695324165287917799621483157783739934244014312774584487889705892337862968650865273495559555610599525684928010080983462981713953371861314315889036649518572017656380444333106641468108422174425054426143110942851618209832803535099489886328748656814574787581180957229016012113828264326172390810369632759536723170083038724685577365576831925280599129530784274520158232804983697829304686631512272896131762939425023502548473341707729958405329577261574848099569119861164389039690032112253993764141849912902167710217799581924544243095657490530613699688234416093830775552786135229872138453442835835960157964210196268473308324855099472533744043590798733001798393958232837234641796964962275653909604054787642383623313802980147867614423637607780837858800675357518333964746211422791604405348608211962434599248003782164105882662129046954874451823813741025291939850814932521566032395946116169034529493870423319724551958922846468497116552477934389886646688455376124993737290678318387456173513821978497467832376273463618830200137561369042433169899381545639252471008426937005393782799686043235024076563859591189519722770328820618150102176080233711386189275279005382235712288319233678605139791272863384566981878553089570440030002507447405626620618438379594026503863604801472659582324523986599024099164570828327729916446706989805902617875330898648716037727549185202714334190145796824512003434886445516571028626651839752712746238299924569396212581910700114981171065054028923658634515351500432884567205959708685944409035831304630557489055578673834792442283997669224781973941013345101076861008556104959568358319508875509605496642627571105707759586797601087484031009859251287912532991192023401064357385489128758271024270333260075691622961009301921122756691391692575730130311031335166529932132876297624506165388520541927881574059867852223456031197972324551545159272932900820123061152586579492323353059605796634385168726018367860170451441012498774031790997497984797119458026985668340230379114535877303292943325518028722769177400197709145892846937880264995271492720307503509786319647746690591253935046653580609588415438678458877332772320366337370044466549028564679557731439780227972404149557111266737097255312845334644638782209406349833684452274777683512931284609974954451883561276052283122492636950973605369022299659655744735498987414892386427401882688237844386887675374903145542450966979711960544139125567203799135591992618358277936933880157834497972296496084521776717502127093601724741974612801656025226469297346571854256165091275785066889463970844841769256288821168264794913273396801891430761010191015756080784186217365857623248612590998402542536103351439481506550273408428748799373250161147587489223484084129372497206000719905378007263366700033342735350506315717234809020553398575724360631122611997888694963140668677324583318174495084228530060856181706918373532087527310142902307564790664566440276620744443243165951890382292583186247245496488018655955408197206813591720557426866782927983283921069794088241649078591509354564690581710148658960505911126492639554813489074726401689260364543914731165730026060675427756085254366032033635015081428424980711175373611423534649580041505803247861246271527620943728129202873342645744230912920242611232132076411307334950539774809878614900326544766988498864370492196663453874190681043699654101068880952988653206565708948930368376585397572694719768385265460679421615585192384202338267031563309363679951781745483193575532260629496603182349633546676575059487308197880523941736324060907190265107981046538392039186491704975583501777249310877487628710187700748213950341061418624535456580124076014867303034994763781258558232308050463697608551300282250210343826575805633521597893229012032921880867824911227396405665059617209296161009508066649750219192030241807675134907212359650444931145832747296252753187661035236525513688037668174808694781428197653495601808324200539575578179025192477450245663156377231358238331696018950550700130591786927460960869661119183898670840354797651437499509981152339759037925880703221730401287845601229064578795571921606643178750845581482760656903526221141816163482934740788024772390192327825267137237300366185359059460321526223176928938726809478458322547225590136344674397605365961815310734301954582848169540757511201343263425508756621788463151334371126033086759252959922357129576460257957543774029306715580865134800009315549780692363512138138166865906660798575497185930999203326721532288075083264346293007054138126046779771439747631264733924516032425127310433677869507312233730186664336770048851733836432490999891913334390344130036720808458151177278353889712130041638658360291698358368812068187773407047303999696558470354507520207680226459351750114938500053677071568779141773059333428478026759088460403221003347832114414542230477135680880701801418876746330602913321205096362927961133493845600209641352690159455193308877411216768013780015604629718668074632876130730330407305486277567428910241642414654536770626787597263199395728359312509403717989777353015218059144863955981238979701607743167119488230589711904532190424381457721077389061515904887900054167896294041655480859737488718790816360823373985238026921009229268714440289216317447739405948976814879550401804700896149660264613552464032250454735974229950496179209706226979993532148379792689257089919454289151271015483903291878694278137238317231719045428453571348334097548335284368973950741138751400656031003656925539775861344901687544178485600713746606130559287815778911600882998456168970777133725142412404025861659251281249622765662069663693400888414929161276590944886752436344090719479362223166341640215908408998809218488816329181597470374985425298365218051084175507041670422163215077253222198690068189044185039145804080834699817643111034744397678330773123326343558510909039792443879882194267155092985765559862544356200427694365027771200751966050211093499959651369280233862269004748222406863962976828613249726189462174438822271744271046695922691617955549979956154921396656551365375170102475170674936250542273534440491962711829757662220504956221725713697510646202757291457571012416153997996690456566475173585810541320108983694025262007003483078943810281044514365524066984837431858237986676184059520931460611059364179052241630443468074914030191201760703547475407021628358616285841028912478290531975316880240182696981564424463605726449713961632897814897690929010921699952214666667771686691457071828795447259680475937025561755386432380998198069783737445707349387488145226962153617461544192804923353733867596657989554727803682004147104968642620697551951861900109349255264340931741662805670504439624988387680816247272932455702376211709648393701921072561259603308812338775490016917881222093980260115615162732898224255131577689626489954803045166479743056187775535928011069474218402411303414037792258547539238144935062664964363698514705288586570587152729548731575176853473601790220094534438635896012765907518073396999122351679210862388083857233881794922245136923453782215321965220566606330317833814787332857006744039099972899153823068314686720475104364217713506291841342159287250567632707769850684418466781858136355690514882946010544067232446011685250231046054906891918145225157952260807400582230870784541666405625085064050180244707727189968502194897705475778442981693570370685211048879238540155509190550633179896418629896856145537868367470184500177416341214696888890373792398050528319629293526562025136332199562387569643172867852170414521358464327717070464891731495633792943385020631039815265085221604742206124056926099309899759444559941823707318236285506130870261576589411131826789370063683332208405216560360261496990542863759697720812860676321962025448537599140258683360654040032464691331160218866642725373329642021208495913657002357346890869579564911652324983527298443467800567077535107262728096105906078066322605070985376737208686232988832115376812095155350197039804022101430440561287618712206772454079996951125302941508111994523860717553380484708613922907589696329293684255384969819732608419307032152996594434442401067915393396037783273038197817043503503535293991361572893284594780641937820676785480832133047201475996972471465593243634010949288725308993193104341572146401421239555927436922774696056264794234890974821000721701398575485726854671559275004502057585913399034560514741972271421004517984631645992095410788174759146208588034180769340126926987796799355746863174836301256438345101066509457461782558022200471265102938380149971665073621131422188190275788154789244801454105243550529842042658585744793292504810782648949734770625887620390776476528893551266792355841628504307569310095792333096858647654179520519301678860358212601209749844762399296869983990662572430895326180482575568867348943411325167465255460573633716963202547274030754212633733576043472115044892308709235988710361870751466603409381423906682189214837167383800326560893875785044109303315948718357295093904616079672269893708608890700978573180290843289422469419164418688196600499466437486273900151729693981947850391110251129051403837502894457238539462946601690423140403729511427889606230041354083643458715954344664936658207191083298154019121811608387324841679306253352011576241375136069647609472346646224756836025605872952674098049335627950716329789202744038858048867412165884139840093879406682746267509256499149979147254891794579655295493333342666167130663102853021536281740150213128880366342255733564775763282110581967235261931118137574239099906810412332693116565161008514628404463468119396787968644500216419432025755602532753767620506526305298033626292807823950473244161550242618733527113003269551467512424956690012767745640957968869660148020500793136251851738334488065597653874341170106230155147109799025953234083126332768280514351113532029584896360371916207042469279588803375226007209518847437694422504952265983434148336682386678095434917736653302692369608568789391029478069221422081413302160850134411309441807647072907941615886223894443032441316877598826484607123051393336486490366125920247956648370406735840217580994838793997288951518216040071303838923941488815641300570282506992252484933786201592311021144749644193636442159634172222590628962482161233180237047239292889216961162933607997460064053779546193821174383283213695071283566192550360435988345986702016701370393375072039944950978185678254970138114832362876028039124035435926966086340604456432050761254158803300345230274995351810676046391616128056687124719946085754108438065821810041859746802336785730069521667569562088021221165587300083915295072306621419482744171029237484429027222780127917134259375155880193427863957706345689171599336604458061870703649804388478306996802169569724586382621135678661014631443743362544389102946573441007883616682611535702129448512816010694886503434012530714736855984455955932899529769305696975341346424161334458837765485595611364139115242361654289579571853671286021532995658828125428213259896193496042013741000352351971552381958909745151716413559785057332210089992876965208086466400714096189407673952029839841486197787434516036464348002111663056012385874967320351262036331633140057802460603645233778116955279716354740598084328620873818122236735703092011314623665473819400888683782925509500523307528344317129031953496034220196963339617389618755614125921670808303214307260035463171994367550098986983942355851800219075483363701035538421977926127267764060689241322254234579427133710412680764914717690459056833266751239223276369853672666404479831900581753189053092097282616425444879915763418926842644418559817870682662570905595455155008640591995722581241781925385013130988911045106517642886024462101406189403217577797530095530622449962829149422113988067538947500016746139340028538223262577839704987587886035087162800326563492649176834073282240064271257904208227767375234633879427935828022188813812120771309452398483642930435983560956510237074151217219177672899491324046046239403469472838505857311404919032667113285678267669354968537003055724111439686946337193986124057782578645626659441346911948378443381569205347889917484360290501928818310944268593093533986273969613477851679264564333298989678999812681631909612728064860427876141776245039454387612405406001477898398091654808486609463321825124759104567767598769577999998922278790672804498440130872581269414892306141758989660799674296627932890877433982331124507106651056427731227419338760585150845165206074925683377542279223481224819022167072162017307618397970229398579108728910748390069298472861194911669542496192476423822074478593562778425069321911915490781444482642235798455101733446086622681699346252754221552528942347317331533514143893144568875190819050082204433097057896458944569706404099947463556728257697792673816067543720758480170483431553390608334156423293039944976154281887837641597373893577051401860806771389116098618246078750814804180679633361505775468565895353176727191451684422626630231294023670425359410153989976881418799261351739514309653245624243392438259407728839376799066700017366024760572339672447850213205036171046242681908540406625251696015495200277530814368200771143944826536370965971752455008193917533135947117064460809557570132174763088421180529971684421367703278908519427719721186593291941906744156146822791904832792244753713192722776451895099376654202720107103710691659896111515901073459855978555949803760164720739403361514604162750587305277203840680252165748994122854196584992785134899829783701890297610908115007533696943171273970960373450197155724794427429047726334333767865315822487477014349789758621300350541810799964266857184773886489673429226540003142571405842528980525751943805877304884625431317740739302048837501743097287730918565875484454968437546361168091995713988038291642863580713486693169785056623510110820034839528591197427180236137562501300618006362390768791158315402309430982092110928835303453326279987052016373332074133348404199649013970385568838488868889763519427564586751537882290548254372210579806904096841961881904737980938679230571031958884359743823123028042390722248362086691306511320098101833604968061953518802912123033646938079688494953235437569170939334960084702775181473518731585425234904410016957791182627242132766534508898336679225043058288021953530404799572810183534290138548925358427621374436208799132216034525458999389392839913460209018223976974522969517113494508334358967917775263975519950928833991551392608258961343732597751870446224853219076569179811533726570466085656874900561301602340107197074246631329230806280883466482386358916138270252064765875837082555741187959292539495093979165828625508612451504418872026551341789826211773835618439981723246239940382095176900641670536367310892184686300438763786210962052473249392860033099552018343867186951840338446714495297607254630643248559505854701678856806501795768848548997878116394608893639380092811602755913108414579385733887389780007836938814546452177959545827452761381134106526268839912312782080271995312922765878705593504276289989439975153214959912992956023871464635846908606345202830192379777698139561514810058484634407609327020049138463937335918498093480143490121501437747267642307185422453767110354970443799297998449078035550094043299602162147215979889893249453848003402949317532948218178992798872945871836013172485176006606063891295050819274574070095326211277813636766762411008870680234740860579471812070641935412230605137778907479973947958888979673972619522648872355180836966961168897070132725332063151225991193483247240833966898729795430712496807924633993204153296580768088563554596440771471770720703784341103575059346911482477048035113342726305391639892083260321611575280971338409893193109577571222288197834089908968802303011349512838173070614439337583959298604728098932517255368567817755888866406701442759599984222158152075982038082719230109731949643002658602726976515441335174487184384841944776284898286365140305823159671986713531196092163929149724754044738408210875601125138738228013121590263265928381139927456436067589877612892726771855068104919656588982413508189783517406767384103763185464037125214655626700569994214885059676706510256663580109642645624078180866788558442482468079011543655396103806736870417247592789572100893411091140161925548157199357555624407453660243522354367171805255271463203651991534319566423631059456063334450722041279445826938617587416605600206608690964119963946862581897983856050819354546966865719902500843450410774315665903152801363281290249555618810426592307395449130070612413583375420489434383823087950341238804051754601049758933818692457685515146619783685155017601617217611138494847224058641468080133076610846281409688197183536503900317674597492874953430460739775000167075524554645533739334050710761355448947981073737414412359453904587346632659235877765632177855816239163463651269059959938278458801249295162137917735448777035478501622011891373831757585791703932977942575848853562565624254978852340643101094893807567320546573644170762478700581085869944746224212586306252375289825716383382962799522699262674565736697176333160315448924464949484714497376312951749832587097848207169821402831575317330830608745921492961984942190381259980281026178033701958974563011416476985244749257505199181299015908990357405285601014387153661947302011214908083762741364890964293026817313814793280468043795441750368796156391762837514777780938042957535780516638781435999457767176694921290400451796080088643379194620283952492547792281034868564235258020841117923834256409624639401052595149276076700351770267943698979900820623386559096980438401189375135784706425500226769255047129932735662876150464818509239637517202115987157488715734397064553722184177074228437489463869030273617472871454371284020528425948739265315511811712792089865926455702341299667037989011000531318933254014689326131040253578904211136567659827989382081263246704760741102001420548586846762756205879002181075345584242528130470418271165151378494806371810404568996978451202542273595870483752008256577145787810292304313818743132604444608169033545772398236572769470183782681577680658999481704829267237090227639176906542903441985581051039116931195251899725714375695413709240603131981416437797269513326721239656223543266686881492975454927284626166487041970564401873884819627894291219754499121249901208980571386569343944755152001535624285921948908163478349430863375690117514687701147139414604607023404866992361175520473630265820915345724134453556039739837175471787197424996639391561805979263004169509360894816344207067222845864674830234458850162957768181159357430632239223194892224584906764209718136928300180264221766862602447670959794696821233549814554378055810812612441743398065582405673089290990205025870175059084866698308562621420223462087558585616900215749210381738515668572981512311878720312122515891084972567042818934605920807436437868251318373042245483899766733271590077999212013705178229186452197130090428499861431153612704591091716068055777545190312104227499911371519192578392539266212259710281573586907661412028135302242025932178273579669963345456264711014510719201482522331822096199145278775118469099256628523108107121805085684829399346299441134178216307943663661166759282951355550872465766278868276566225384462804783825226742485419088633506252700265136848030517874195615127022634963037860896198641302670468242281147130731147022779154731345216707281150308693089660305258057570745382605243547738403673541104798332711911490321429052817345102332747614426512857279405301104787227226576834760675092790054388328106391523023673214281648632076140577866686969261785682749881632799280251268713396978640407039695521793361853613552358894835358179844584076803403358426331224877522718242985158616211775953227277338080701391359828262897075808013784590107046479618936156693450850773963040086150760370532940664853201046646077671714467876698859457385551921641581478923427140489808627874963843449535653740084525633986660480000995500100713633673845138731692580963098787009593372687830338018813399259982201174011193321800574447673074153258778815247938199874072083605228160701669673950089537696152655704201885269272473218795183264973529379585916161359270907746277836682317172170477644494897053060180907693843915241060699300823383352509487015183816937435137370138528590864643579658644529699278160920365108840895455487314026050938863513701176474570113256556629921239625114663634440437586822466964549503842394540907596194674884879467086681110340740789755019539229059683879539443945824713484325681589448209596724985815018881307454961725278416156845336393847819256509210121683396268956674285083531502182951204420671259467422337618339723862582165622291738433827753841040741997631076901777378554326153461272904926261115417808385066130120203729932830909990739865996703042296914606454311352625868652275470441076912591724856107984911418557296615220596089021709999720296123681508804204809909945956275017290089925709501637386760951139599670569445514495651250446852102593519361545686815763630507102121147164448295417127673928554795427604647871362048353571962590597921553295549650177983649890815141064934231731670012664573167059665195452252638967664248522289811338544128454514343532964460620856113322946270349320767140248803368900299560947842838179622596935668198419082675128744165795324452123800968518467774373656912189546798577252385150140463081256535779663735791055178263792793398284635869645872048378932441282871920277142513646233458238760053134696042853327177990359162875615728586545879720461601846779038858727472649993858562012127004120875186207121933828030327666040414816427015080482434163530887212273984400822998887043433971369550673053006697193893046091374434433689038327271742728002817674095079952980375422027215469984772639230178997227493893965014151251055952677869447495303441706041016095143599244168456190773994295579280346804447473615395913643490068601849449214961542997114620549402675692946611066847311132654251208646908223932322668651664290238791266441872510125857557802694237607495210426031326564480767864969940333469053366230501666033423920300864444579854377903129741523341805638393722999049018733020322016429388882283084910830995267451142533646808613277122957595726231990189708791786879041509984842338257795149140742485962842636276977388134497107000589871157605227233163188797650306500889262766820731383675385708669204057040403424931294701009463510455860800234048364757454919733225459354367083837080246421876382138021476428618616393045151800840570848879882787253411661367047639363862749558663389754172690397130023633014567642016276950609756271344473378681917961853989432500862503267109899144310201000475697998469461667606132033425069947147005356369712493791057019390674765589855658759168838060179357429594753239177102571367283464091121053335319604909958507180684084110759493777498009677569067609216060184729327546527508814424469679349635142944487307573857701625692149070926451361074380832338917728130491086983822880868963713682825906857961293912349984075855939324908403357622052229285398356084576254156142559697088851349686346477570582048472608663047305558246724260826388118027850016023053173669736816130016107714260622896244605837371743949166485463187136375455311120281459061374856784979690881142170545366231567491168111642612706685214476088273711849768073243000347245730952763309371039353288698656484637199219611198863621467803763176527855444523471656911783930246341910550037940515148097183097319875390621043832992970968190391556169675867251247127013532186545785033695818945310528113271005380743085468352933740636069708145706654225779158067231007024623058436796555976927043221394236259747173577014993251914034363765658596683676080490915465789162620591407960586703349114890628943382581182293325096669264760282188167313574204009082579217596131508721432420840593333883137646646341486083363416046658898065763473932213442036850465805456034029518866482237117859684082005838283490469839711615047558331002138046652356101958505065098065630032764136303488075619754683790957475979654630328597018168641492139732002568579904736120141642087614880025829352515614773672934605090825157895965870201772100060812303003556851328659088676870522463551013124117842995471962317776209153998893432172785044717041855819340575611999879737986325662978882973223287542156639165549224140691701252090445279692658339727618595437818939489617018971893618465235459844196316457248496825084532718622464890351205183426149558141458086811187593310065444159189684356467045377401997857736720243924209423725229939256958481206547894065747018887773626486568767709014286139667698377189698507256641464200445499827601635440846926826086470453300524076329531096641836059325536403619097753260679870227691863474927626300235141680011776559980675079291532127074510364283125103384595295363236870127283764028084301289860337793011395405714433972312598026933484299553309064600623294562829833407753782602071342044085107371482349146547708630164183775654723366851712729754920238562543171290963668953514344861083941268878037524202765951023749036068561362891287825661676532946811787697807714074877365317195108249218401782400222421700582451228381101143243996415085735914588879749191942296247824168177945210607516113674390596281314121925256359615988743023304846503893879107642878516787543979539228823260344838860633695829627499750853134513969538649253150055611679839632759783642219800128546659105868436477296978584249517423838713727349849527035957291423597937048311065694508762722077575454199263216831824964958430084753070747188537446360918950966645169993650987527533629839282893913262670716975377160973279167304923379959520021076975227120593675000916466931328929099525040397152793742596937297079616116242700725549051353508671208038358469393185000535791671833764502772175642687255398746754212726233820079411419735044032216807362350533281667818601443211441897345897321723060691153371062099678603919309588229477538525751802618728810060266795780901775056781263799793151463705463169195030591550178899685574730352279649998170287820242548359216257626610878511602807750918443524108199919348200539085999256955066655399998958357110219068698583748905024665261584978538461678803934842578897692729401860945383480613357654237915241999337275330616444518608722533140714382170884789700152301834706331184234751406392322772057343300674059811787355284547219932420413290663601994068793816929631738506014447065144363327448204428461380253080713246376752718601161769850233340953884912571129464789496698959078697162868372501044808063838338350763369293980700665170458151585756119900079339383769610627221312848403259150436151253934735583646264493157014212299185413655385231444734817733069555880253223689832697123251155386688265769911141866900339414369533875530764855547443474153806193733658824574210848578789777439357762844133152548595128816594844278058165046162548500661240967409918970553413414609091276501524651020138076456008145536589880568651986486276320823526439503811844626564742210493971771098947111766762102387354175453153924161067629557163379499192323557264777595808153661367102333216798971315545056746990012221504224775191560659480170596023426039569389184682509065138842990833973608723087665826505845881488492627693684715538828727903688386530475378543272800867587287196243771657623081937180444005053593929256701671913698962996536123621928882143684251868953189109963829813432378430524554936018207232603772194045123830116805020328015383620670452856659580936404009513310725948737298588945127920968422268131328004165165622496700226151069144289837693241140596261246479212350588416667191283789699882229280595305741054995915148634747416562706881936682639906482066063825268989851130364473373652454491928289250749337929026296971188836106427835126855719432774254995713424794387799057865541956662496714751364300103215702896182241845508112724602571680050220083442777497162768840415155732508659631590402683283614296323859316323558245296426777573954472235605987330558022821288688477145025517066336792696653209314377464552840856674993750847711637671048941605345082396829705140492076653577591399579491156113379046248640685782398609044565317866208962285245694685075514454378144468701811881496184050614951854121335476214725905706603675017350397505353277426565366968789372075381369659460439671220388604365441928913035581543209255197826498993557145042517043630760338170283557996019856426753341771674534312425715675573691699534112881224364886891162918258727624747138269874177542008189859758902162262481706701167890239592675886099285006872848943765890100629869117913517895841068748009454850483316126535787596039032628877324540893775595732017922427923761422131156958682175866273597120684655949208746085421238655484075272886263139607811843564586480148408536607128285118820528155425227301990453047777119449730762115902018446129957313498980033318655863964541360178957106547771625021708494294537320360556536560920632120921666717152963867915199002378597350334530622510361780667978910230493595068413697729690568043543099863718731329053080427924661865980003206220299909060477802398187600631156366016276704443068724254169849508452964544239035899668261715238427272678980096536895658682411695397317593744397082180240548168865503537184930805712831013203547143075263456432666596810616922035465404907730522587595538691943044511141682924305675326036642570389432278681425326043119119754435257217390948124396847384554175788939155027183044550656801046318702337102551821691651019828319873584559605682714865568812215556707513921502376531701237642299856708835854668571368644175332870481382365350806013624979493672210760904241636408307139033767790230845264922972349354686193967513650097541243266772704995623040089740281619335620622011321663924359566998768991008580381136381908939302795639010991977728805303136016891763038992417477321158535026707681272960638732606807668953742849959976198880986109943104417937704467586525551618341683321646153798712723239984312252467848028360718020940083654899653592670308817434344208625564381784305396252118229749988742861533471410674397203512708932825794389656464658800279917002440772316279136345807981824795685685746372110429628101204981764703530490569960271975162197193231358985902038259308913090018597758201599149679144909042716000607656181169129355125289100695019508152800664893660495189912181265430082737628475410899836933419027906734198095045836175265510735730303356315820180868753092981267188967799072780866527285408484843268354333976121854394939018050248631610209549771759096572395786542838929794785280137691832754104992766070503012329780659126865842931904076311568846170770173840861780994655836019278058969589649912256436143752749890140449118656270464456256544544512107157789555266441588463609091335700334863248447598682319797319250673467235011680714313082583627596422170920702999063469761434307377551823398901937808159304556360003594413586182813091604593473126650181156836898140721037275237558265119091872954973858811215808492923800346175389790116648728912532614069250576785240911427667471110786384081960666460203950468402896426288036349725222639408079669157474457695857021207103017357832503167794045832257037989221163114668258673253128060886857600796294059952273580621337404839547800079013893599397070463164085282805951068256446850424954950525601937752787456670655107404514348053044335677512828976033204850578220207122478069198530521500929027210347375228194306550163096759586802645702180911986692998056652210250391162914824641530079833717563885620160068136268844366490980275192566167677591910261427883203717446340060996814283484308570559871111794641280259080472181904780978914666936308924223178080613165389090867248394436782963044162770798957298964604063245664858680840481715840666379050256959675595732479468451087854847187677453444104425776940762004256905582973354498238578045830057337527752309915103846252393959922610819054295772237386040221337067916212712557887413044674917581748088794763361922544678572797590256789115776210645750881246073089804761682305104675506457989737261059585118244447294395607363392868519666499375857977719513861013497583689204272180752988579459282783462835393089421668152272171296671787927852493348815624330573284888710217994691094903960907619585287713559698496141954620023943196869259589155445257545674742092459001725425792970384885364775039703902928240308094677097935924775951449145805094694525211539886167596415725747307188972569966187623628120655066654535749592444176478810087809372904804098609658050869875973642277176341447776185001344038949375136762323559368094357406994380896933500066714143402065785326791144229117794718621940495095282780483548463095224969461861546590277534575623930509555016522395919426035501174160134230253450128679185570219969069789585791640055985576083583104802851431415995769807815936310153544476317860227179479253878339965470860829683954107492131018895505336416366870440792986059417128328847724460392861293579206434480328395059792134959526019232871125236981632709258293674748226168465642542407968388659207535145475413516566811393180752957206652846401581067949354664346031761007258681732375175157758066195665128883617817104293281311690013938031792289077542183845196700140460568625179935881376935435203749189569484679592740064295318750830736417979827778542184298126217622114758615282840302937842994028677218714413447086701121380680407805218055301559609399483018725465410557114558773944660348991805276926682315596883115557169757922027599565398877617827751612162506765237914029714267266742989057851494690799616853366276072185769969785254331116635411491654118310880835435076268408985812491191799262732822283146102096489604347701095669633497748845698595514401401773828477783221248072764403154042220982220330985888570231946889565153550101981495937919230421268647722300878066440730097117912301944161879181159620001445592097340767692715056274101077481586815115805431965972425700064280015115349194509503543409222980064660915754410065708620679432905052754705843841046747290609985977375335184939103429337445859596111703620659544604297847541433957176803641756309559475687715324891193865534337066545632322990447662105443971169384443669424026043870365756690720547915320712963703526076347354093551328374334769372539067626359563634516704591966937047912226422869713904680840827151811310586966885320035251985391622389239257203133653130358203615929971389170337153230719949541043435777874964087121987046127301988510833667481372592672621884808540047197839920127095516230011419674194456644026981771606318113855118351268385012144842120671227745925895508787484413513599701632294792845399098395429627150015520352168034092512209018813280740680414979275268012114295737013037282850067450753286213469318865890604687904237653327660349247106362558393733615882699033788550361276729878694080701965408355762459379488601535506287166467716514582028075353270052118584192183609515519831634113408247999303147490106133216933295444622212613689329305314956307795206275354699191539798616025760893243770170974114318708706324964243589323272770813704984608984167098712907853277398991794912432034557426685439855540238260384149821393017050550795592062202262737658576344866941044731391008441470509239786049524784389093161363394891912011369568555437176630128350491501467064390133818858705034954796141731071378545095824488664118534683627003228830287440922082462877140014631247164970487742502779660534433347455029477907560568413776792442024072386591313066523912622218706490124859626280767022678828848477766627152576812334040591714239127624234315266524910145217944352683248166099235708461629389961972297545136207253902577757810148106952294179292393779465085574068726657361326937270190552623853339493491374347685209791220473871449680773762215384893746739915606454364820173807712452617757865901406092281194299979688569100491182841262317841025765045291604291064284851128699435612820299196086040777363045948753687286153595681092018651162394003559585641423673230161706442262468618319274949556563668420160338253810956485290151093560565658561524911049042352381427623013377832090257075635416417829404278669513204535127460188008907813369847970439288501198739815210650855310058139715534838304598158504218017825986273028908239558392879662559643302820671922766300238239485242173932484883919329328747205712171241971196091463957690250679477413154779616168010650377696314807803561044849532785518122125643931957238515067415489767128610837977992862077600675930356046816004820315275708016820367161359540873693027661378065142099399659232906694484267366079662559855744471377065388593416869126980388302760732911439711999003378093091347251610169880747730090116619669342901163160217577775133969790893733980950554334014179107907495149075496104748546479277845726004640459744374208541454955628454464953594982246973266807124558974097339561070111854708750448200604340196728007152619333625694539005644072735981132862582843017802791116503949606679380427215171203068936173853632403337594498246542885907212906131808985708267026488216805554203207618570458942568053565378062846148886297860076051984717071081119552414372470142236689963017888111280824190602558620694353947806331190040891845014521240021574674735914377774606252858915300684865378459397399407943528679576172826029353936846619498792667966054184450037507249637153967128857308774919992759921089916292661291277262951958258636155217804656217208465783580595005432871873221169767224371095810518754845537298584815264794184417873950278675817207943570194161006542105040698649584049616263749677445603207555282806178439578082095232710034821912859226268165016662232257742726442335605221987289203178698109144659626102743205232827650023674439842448939927421647418146552420367154003248432766827600018355898788395152797701839427845928564727202319346442979014452404809083342851702570115461299228395542498417524223407128500622691203794935530198819830063526582370749061733113237194073880292933031186459135676009459730818012042408667555613235093583337275919080597771903347060802572318939160003094344795359268435465068199311473018343535099324879510835815283693297689699814550463996503516914986157069906788088529664345711332537826260596122720336574141567230451005692772220844729319356878273432345271587256369521080895220720647508135239383340336251432208775265937597481315693540072526993144292979536805521316930407162890877350241423244292604689201246137912972570184744978737481678325546846506417002947494235231304140681404149069339315893333337801860503354804715433928334183371361104173716496703301349770171794077655281069695881438083370544274854882572999296523708479716336807898301901810874594259363626491043760923825457488115760539770714093869821039858723326760088071149961753544199727184262144247671538010779837799245692483387423677560741980948882050286799565202036698638228094214603119492624948587088117182328150611182141979726561102154657946595413734967573867813854410104212911294811177402385463961049724071545947817391515506598994780179649632520088242574946924750485498288351283833040349130379936904381014544872686419213080003670109746860246490175119691598277648988505920936815929304678220676272354971841899053468599431334873061584698964311057476217588368820449346552058929806212862933190194611717177736013962771788876304511304431254435410209277937907478178283905138721317444437068468380279651503519933406242661957738543311311052566744979732598358313761262565924100359982480738223647292059052678501773256681092818303176498418075674655604167785106188024740027657574436937740684105714257303895010968615190513040213126508734599824852729384579281071557075188102844281219333467668562245182975380466928634066766021698430794224012390925571311610593853152805256948955421625248501993616334557953049764810686652829896613262025446107320450653336675424578340427473132612063286726889842107934093173602827054180024087298042023927995925260459232770582742347270290563861356733874548727150432486815413912025629538557061364198744828839988194285789258229109516810063247207927205993219928996402259778916241280270214417001144785967280919101565140191866497730254555413465779909668818542898797112654224911288762264381874825462381260731392663456004029370573614212786472317967222078479399146142559756743511186746830324252997560948613778156594570338241426567284720975896913219855918342580505458427251626363002489233370581090463429461913575528471464919322866886738845858727561890089380601066379435968916862370402643989553947689868437228052368966561342975969592937925145300604911229612374999770119269901684631694593473291591805993828777466114567660815780882366659622446015929198958957677048925547196509477822546130984110925263168239213500430493678727612245024909476797863087823807476136278315219841446148763697981654260842121902421182622726363591029258033574636392562350020485982703710680133628159386317986935844797187177852223338860705526022359152393649663524875791399682655342612228501997802491782799567029529114659887077344898202284563977428166662256019174711105273410327102913930011821172988064802578511100956566674505990844874897523155390939738621613127024295413832316118346121638047273494704318910484761638886088877524781742180938818170257254013887539432736572969383687241427097050273550592196372615013072122237951887321231362984288269059520752664227361995227188450190803827988188068000590705726163979746923103812199853697153285451664494994875351210059642165518184016936414987034156541345035915903858585669527122138842899574114582919406717740920250868319016754579571633988279283008394648068886728681482273901007902020048105249602890724297949351404377773610344928462325392289870176920433486257024556274230309529138347010331915088360441908971417884894442095041757853946383886266119700501840500437030934233005302166242638296732769976605531419666753626945213858791696374657861959548454370838329960132436070195882840083749084844746368718784960397989559506960117420894474750725845047309541134888891571020086581063586166729839568339445280756275748519759683785951977514243859133693595536236739487259855241494490087536206854615683935691233106170802788238402425020540884488197439434670237743982403756096390881745092731948836130640197276464814481382504617329409935532994524039005039936413165379958625688394044624262259587225577626124117248868110401017939316633786007255302618070332069569020176645598725842965651484256674110238734848067567451166703710312091194289100535977420105952110872205204438146483265470462888317496583812853206440477551888425373088057825110872900018451034413236830717387266461860841072122967572630786674436099215164375479010647037279564992439600423314148956423695082607281230209565835665560420518984046639757344172133161037446082093828311064449255408321691975510746460091453127975999664630437331305415109317669976297461779601800941198764003238851173799705163789065301228302474786894929720795505910042128573661150802629362746347082275134902039500701656991204352438068235372698235518410502888547224673239469290075990976186977468926721616881354537274919966547590859139482574893056990842626694830997188049481132439424370647192838853355591040830973724707178990294305462748957109699380732849141299422998583823543763168754948019462317440700665927096801638150739694606097120091197996302403744737830362177075776111428212567270755819533742662840519078397015865506741630704084063149515079142252106774888575971976654121735532399689106209498397606022668285406744434135642336107904726049895050156181388002077499195767299369639904834428708859936758020367064278740581029897467006067879391867570549618300482747182005878141759421715511247262952468586927932270372514276396464102579230589277447890109627338634491245661928739572366509670026835013757459622800766953677403991371155779575502313838235114805030093677312184103192236398326269835168113201707559487466345205662664598605970136686013016266262343502990608353793805383630219107460826397662665441195008636145886592514409049195100199796982432982482640174878144303361660269705295657241928289430341630901602693108619218687793103849961342883808407578754554557051201960638708738822078652883224458854380851313984652002497534551225021699863746075957016133304573484907572208629367026929684922509631652928530429592014706474136663396795101770648904227145733637141066882987309728169616821817842913532869435571389962252760233891812170964689007802826744805395960118118813696501341192300698779538824688676712590351607958515711438707881810665405331276808118440352454379264062539815050684708059211509927611971090748735132683488516075625216797231070367815849315578565352443552803152899289392758034000921411992697993222112082277286465291926184808646897906071905204076401654656461654434955703793208587795702484554804220733063592003525372247941302011576021181412701954121423290140180939248686794636388191262612291601865108826353447707273640462953293689472245319977849948515072015074824344784974519322922453833715627651677348429037752173491188766106544929404792975494995310597439568081720809153156902889290848282678839997243126576521163077810152919752720579683743148051063415938206135230373431940328905227759789306082734913448753002394088685063591733593501685446377152576755972704510190720784664111884974998719217402775199764769819986264600636770204666320813274855763492249487830232727924526767232407665907310712406850265828660686093547737861509515731527511972464038437632324746066388752174825383662463492263632614478886771728973253349155498390931619117373476931585397796373466896730748272808497445656697569343992312190389570456005293476949939667787815394451694615917993789549513238710488028597545691514865510988111996671791242966655542776281016090510446409593235910705153029829642923221056990972557530388812701020925220964566361835916969599316621461433469854618552779423274044663391879822948387166282471488365818865739814700348870992222026458850836932833586814015958374817739868067976207587755717199847355593183030979163232780720138650067328509015395147655425258692772881792775714672606847583179220447163513699028249618028264669749803244964085647731040794346699023511943834094498669116976212299327896048860952961772950818243877920886980740776409849213271047285214186440970493514870855014339418153635106272732654241393851882278901712585840586888392740543019857519385155848018700611708207604009418425040244358024066698152871994130927257584497687870014037397794553264741916406402973637333762835399413975376160751741110985716316228268653681216953304156651335232944136920162646094048808555333126486070183909469461872806996483165263581953829218506397193162948035146856439372200383041158921925284671732345816002419545955309114376057597888848694084639304561397895668566422823657592155691304685213581113543081011203602659048072801227813785921749287797005829838126695235926290382352507095990847032427552560415067073489654157994675536264173251854916473354208207429846520040063633770468469037338620329317731132640013234299459719655176456374715560818331948916863932052746065339383712078000965182094890551554140875127242837665567148899015282908634219050274674044949968384679452398302007551047007565045445573019637355381397009462747970082813015507500821361968479601243462733738506215922159442876118109097112562886132870090372688770231516314728260382874717170920559276674017326157295776819656333842332686697485490604837603847555900589234608353334883449265716866579191129859386597554446658865088466299473203598659167526122240989921872544185774191736963248103160551690767165315473785655184423130726085845441559856834247820883209237512813415996314074724554880248438357635449758723266785402479614170004981609372145686148625280961440164128724477160556444071087148675791823332225271810025883641756046684364963872401551168578369656928421249579817879267398283954614866132408231071700446627416270452451285775428849946525560523803692884422799612295749215199934947278723449013403288217424740101251752890147540815791245245960164359067700749398007998398341300227198004382304523745781231113506392054625621109943078981692427923324209750509863335700073919548679962180658214875662046524038705050739328665222116536419252850556668753575597858569800407236522334675387180244604364280866456274963239204508735817910670612593887429103769779100414651399729549130148055487060966789133400536030226916775700409909616546797765199117525787800572217693221049720860550993964587172767856435785199133894426095382183068804170988762815078721918214648628510091815811832259376524146614621989696167901724336146157717979439604298926750919855349940234720970193300705143322566085652825723089530991854661748159892938294620743061473809478373378329404095087239455277477827421568511837522839768387433876627883508717545161256554389662292088747050366489026866317076921272265490041638253097627141562538700337417173756021794662497357806828535924275551153952147947874507034418924978758062694713532207619193012240180871660201842008986872812116157291236065020144344540892869327905557925946049516515040162161241969944195746964068912958608050314038351323023257320629790459109295230348676437090724334828647456057284768686094688615217029088061457854811691057495342621850862240377982741937064635355640242029403762147427620027662586151426470096877668224873391296783999447867653691788340729842258169601353758016526970492254239472360238105340624014739377527607126768953209897189275726311802054538027012755577019803828773092780364131727505079235049242563415870532452898649807873383372182859228834382238116174097912805681987327001239464940164773625599326044713946380364545856361188678942395226992798188529877124531156081178322575182724617985821961201235408660629806087706466008835424777768502217243857803546467524447758539890804693519777310649535223531536510503472143426965183822258021097810957987817178676108945669120244194601277209305176378027458005208873810746700728938744467572218663971157734859131568281496939868058344896267381009640675585983305034680724319204035120496857414768094089065207800814378717293107096034846342354568790460471619515571048075289946031993040389620775349224492918982022193731958228817351379051245666960861770364098027471376425759092932806911331197507798607566462741072213199232453658839913742855717831924625620159801951991770746477642841012007168770866017238331294432992766473410362470029773441260757069434312602732433336311980331405125490069833087060218258272498094596875629516955862980417784086881476773034709430739137887985470317785482679418523909892964331705605632945318921548708495054183117183276639154458667758938833076740255904688297876599103779165630628286703819092405818601251373694458291011383537031724011515084890004167386102624411045876102041933578935686300455013800947971266459891797615387505867779476042838876646533444828644544882244195436148867131146358020869395884617881709348512048400627803245906536783168014505740635139738899932574144178801735279672775693913017353694274296732124351899869511311703498011299028161528514658973272168498718080271368937386179994400233245416477083751553969478843226953065200413392009460545958918134689239275421595813478633761282098349618242170839865349977110920635845649970978919427380220720313050874907795001105001127254853864096526095524397127368686107134119109402168626132305710152393549644465150888466802973356218376198789341519566321625134504647920942196618723200128441969550879216547489173241490774731707487879163182486470634545682659155467971111151121453669958823057203316449324393247890159328788213324566634918270432396170705902266422197175506040700797776379745687125852989617126059186936653981592267654812115744839241689052281923414788471257260770398134789593610323497676129765414406493639944804886726352848181830521616698913464338220428886993156038821944695058055487379028033901937146402982516339955217738625147252875639212186524083898822161661611391341717049606897483724260613833153223297222042361873387282882453941939254777101565410009588007867932487507286768244237075634576608731029542825830888491479275204860982697508117120649511963394951085620416021055339330673880864648512456353147954912915938674961749403610433509149263545012652939870211867462526941485311055117354284116038027884503315734954841027508887314275523671748366163067598978800069798522164576503347433533236130037497063754361773535352227897051265255678910374562318322031168957175800992004356295377090056797761759705481573078336585097018983612216936455770601069396730281255940646172176353928087322520444001565212743731207586020335439288998942805234188247318948513322631292134236756277317438211156768245013235688894072070896680729383560279823128528420314286606295077270386335250411526762678276699987889959225064419360847432499093361147749557360212958702452339046980976840657207321520694260219090090694530380910519576614654260720777478055587979994144647858753201873482989579382629404503153207697426598288950790106992774240196543936837775379885790036829379503135044640443814282145970998335471608031430230137996369033728030509141001450404130379507702028715820541674475699989179295754098152656304151892165726141310208440249569193198187107165393862726928452703864453224163760993628237560087600476693909362030601503474761891871754218357325010006463596994785552774797378898258251727916012669355927098784737051607361830517646498371628315748491445788196029742014679883057275918347293003363905694641634920597949663323904746174907114169874117725019225618442860133232486912719716182959181765295553510256981215379021836283477514649683554893523836821572436920765237592883041573664374110303192478446451827443657402668498932483164496558187639839025652649977544063773302332675009520713464115154440390853826158890868738749041811087126488033618600388999966024933321029462124297922746728171675082085956194792313586019218430812799253202260867682096294593066758387263615217003009941813725164543152620226667325332460158161325013826976737778138187233656232785740139534025827902567658923267199917972681876575413064619080680160332064874035572138141206695894225419046982698127637914386552499788785752404350734832395760614389101502525293746857705251344432137398326205068703395457579681009519810443225711227442863401935091890489942773423988219535462447109348395768003380778077633533285477816846668829931925433871379538586210280996400084336061497992203799433020279565115469315379849211986227634628569165923688924550166123569211021666250371228593244906625816903492249480544782323446997319383351711074159815973963584552745187931102461549500289455754964207514642937169069484732201392313088089687836165921584630071553647229845367974618402197104731585819298790764565549681981511897204048595204701660321505608848459687488067826445243421604377997308598044412057846080306712901191386097807083394591512783189367233044947007067384407534657040738968826064061772523992409314159770261601210646921082923150540000517524770012234034449556358991168637381946189060787454524729491579036678275298724047206644204699389172236901788218736241082489842642156667453633161439165615915009498617438811747391519314235897420226242348034028742078118334458444434743578758012958682256795209096278386861773173053816670172911723245736889465295525527016745813037017989900860397061608035767028350196291676544911084393041731768626250998080766734250655213054427122927259227318281099272806791980032719859660543320640608956752660141225780432481299488904026387398848577625411429312973382479936066534438721186594680800077313661518390617365986365163799630548292643220048040899103437769000707512272780421108505260098693999409876549255954537559394341280506257243830607500157246312816460626535351827541819864333648002308698020634751609318867304503881594942425822568222162983849109969804561332503252825443212881207700029073189860689718209038232686176273698704898513726701359349749385673467873859629196434406524459389631044426717050496741446315804620533896505124848198468509910114337898919015076928402668849188059750675459780333334403787738710443495837323266681129995061749307755374377750609642502271417610057465543157575475592367336683666222277775850288972798527813689450563734142426430591760002566762673354864833342315852333136097414108026108523601887993422872210315575185004052102612136751548569147300550119033626698585883870816201795908355970991116216944908712191716041753933991952562299936468624637367044583617637644244164329908634641027274558469069779947469167101997668866974658136037975673275660805307383750277749367708849404267321954793210537650549635548112883188942518904749091855084809409217851391537088159305986772506618349806240888868016189576188899549057984634763228853341159946275287425861018145311829640387611837103634683436756120903477373414276157785882107693295689846803447793139462047810487891637638241575983511132615843106979738959616933131966201190627127945290942186609908077868702300722263810838690789919974751670157241204066807479155260953179845618221141966189568438906914491055482003303283814944869850257544112799461249894549525608949349593675356874010181807929517780634993096497791876076199133836723889742482926230133208089520859031965741626469686446975729504886227265125878319723895125323128675284351987431471061232915752021619193260184838929241069435429519241906715150279716065782014373579954579723849113763429443217730764152481681328275163007243808837747991453986309210855851595290299761123847692557467711762097807041061354045987755150233395796804074132800372812567585774568480635576380627646832168407914105215733336165976758138913618668502889096500203064602339330600292393925525334919243089441998519010336831747270964364150463958390106955134376027176085094279713034976233679457324152971398150372047607418528969616039435330428694176667459836973768595071213460390727561657691827892838928556545017193781621458224660363860939195027911156448458542250480301363026419226397232240668186868787089345875484883084198117419100184330473547289983928414347434430649278350467226897980654931323204587586317593337671824462619420066812252052610416501613930007072350693678551446277268599248459523425334145828707944714137868946670503469009493606155652375894734518657288523702281339082745551363386416348276374178289838657942244708511596024227244845369081016548506918089318657550352576367433531472561925949534191308261507354816144710430841418196319061362157876921539869757342343694439758863946535807579880245245121471891402073760850813587081013495935001213022544943425611142573132851408914881847756197477780090308943123105303576240537944019252803330137313817748546944727055589509075062254219688155877527943385500616873292256066440629624701697920182372149578673152607488424689603606679630149082512293849799268428457896413082228435196283915057466644698661198592524385622450946631292915688087595733378055836821289624481409549606908468447284207618394331168207374993418127710011384694121648951721056560622457523113238521721408288837937885503948749553301941259747746443038515821280634965056069645996669478089631442986504126885791709556737920756612264871833498018696494253897631319303055543496113987624281907151560808181175548955395573442329968365712969578648581539836590487031280105330114059644632378829691760962005650510187994596608319596947126944071933077082274687608393944669021151626414313036577385604738396392984184896336952851731034591723787463471406380694550705429435678015273834968612401313771560269236183076012796695304265585552835370754132127326149286214684495342480341550806238039833453792032585714222352235462633593742854205140854264806705581071133402715402961294543963032912494606484064518090745401803239271816674948995424194931799081869945776900273186690362493020486122614795287105725187436397247566066419294971385806688033349551594799506723179885816506501879802152416772897570357314696537952314415555488768561165982737777136644848214027654256925937319898278732189171410273781065006586786978761883509793300137907907201098380314943008981565385164906123419139843350750200731552266230219147023046076370507108393114280863440836439655851927420690131653630802456289305323329299594519224717548619657813554025606403453305301809224916150797034650989287731801195051201657973689659619332746369464861893028818658701584023870062810106645040448780895006952566311874130366860190707677138073423129955520092367212608320547220336866452684457485541804558236847119915891368733962680498532529098037221689922906723352714080337605664063761205544473076295678875934804425588214912877576582265571213097496213919381424547601651721026044450170264340605715286359665700523086752162268534716978636837322122968601727749851895372743819551443923232036746515019189667851071600586253039453083155163571688592345935861621353814911914565796023216024836785052681713527038868625002299003753483942847015910632889806061015833772179137480451569254787991774180003252552559979168472624696570860706897219709363922062348186257231392220628248304599592318526318351240563170802016992923638964751080396620319319183982406385792978691801752906446305638148528109595472697209635136330180997836279880386518123782507201569776817402233175104479913518414752580778276830813377546502333014056989790064200846928111904157115970079990548911158853158853769083122977150716230112523972857846065895882105754944618549704177258573219173694548787472245186201243489170218961235013627697737518776238315415106967550639036175546335830922759502917343569323923302416606073790568421743675567510053257942843342204941680058039454338847319479610222340448382400435226678220835656168271922022916679176891994188121307685366825544818940356918466611932968243723524453276225571394419042348572696582572792619376518374474705685043147477586170792253645847793300031426443864595332199545271977791333848303383532488499120392372980923898514004484860650593970145486157666268103776335704512235310299136691132912147671674880268097756526758911720642925831051963862112905892576485996604748642506304914990658125397281096980064310702929922619867653277905962210446200958287528149839305967355020058670493801577784430224172621357846641422312975705860639655449841763572524002219619408320373586763636673219548868567627646097592817670039595813136154757994841234419152389858317172826532945314521152486946119211891039134469097808469194683109626607991310221939520407822491505610503665819257971451064974339805410332265706340491435115754357968040762817818325789944614626439181860479686378508420804076067401659817658816589750756366383857155159780328462531693498712466725138864975950543620225972411294667082160715814013989844823758802142320300586836942543958026588443296927278136815343613220575918094289066962318237807515926017069674818497822090672601640649586225376081311599874991002386533185155515923682252661835308714680910747282390174425774111940222844648413735023181873499491859937558511032693150406314740744738748643600123015760794077831524955659463196424490214125585136294937016246301865086845756722623550490959411646101116829170946514976764376140721000486689364686141521116300353232349357258724287686005650320982868382800906690496887891189215469129949652580794350172705194871774905261735515122642141507668469984872097605661102760169631238057032034224069744314822789890517027095408789995071073536276384218337094104807374522507803186386003727390104747862863974432968923290097084002549100032802395330185481924615647354100242816632523626285385053295029663226816635210643309713005430626383562912268889373330870452192860777996587087948077055303105366548643046027423540920271265403155698232440348706252728090274966539468201136188284954694452542210446885034497644015241760365280387449007286630390426915610201676093194903647746623001549463973467274745523123422199077467658079328838065975397692331070042286706602750643455158863466725841522885450749123210410501342501152138000301299339123728248602094821589020129993166544555434158008106035925852072158733317631160968335323574975652864434271662689155102823212135397475708171938152350148941553762084918885474888819005177567907903807217718641152691796877791729343333362120543023816395594696965711460556715578242685358016247994319313946843771877402273013786910724064571590147276323864870976893515898601271547239904368271573477210697851984288458941311234342653352575908766582769463279205388965936448890534910248971978080332532714567872872815305942299150555995560083327789996239949250950069188473051122791188369444734578387117324408839707123391473563635413315736467184268075932244045228243272565133058356219795601557739963794547964634512586269525025695419502743331762791940895187254809112989738371121470260147359164845797285146631402951630016327783900767214071000806999464847247195144897889106310383668027412250678691379232014150426139442608727605534029016635474453720031069895208181403048201311763976955170591733816486053044437295129316108727179732570393189113558808582127947298122454071489637905537760955724021894304092651427059263374497829221377874697948079668855730786151488140907853759386970518040329116232688831248643953177822293773615547688848179251152986810802019971217505639216384490237067710650958072056444421835452718387554931553726253366648181249600836562149444041207040271944262173093338281469106830616321370897663561231285768798957065168885878807301492587572776650356811536131273386235296179195975589547981698354446627798713675986303774672069372284761915986276488010672918037351839670017101741822596369328133962361654228278561771265680607885497328042643646739938388982599544914621165976064203951625520108816222293153009533197711852268437271822319714682389604674373111680931905648304844079890051806314253530689417177252886740876916174975023261275797779694072365590890838663802345103653879495842330279647196832206712481875103056829273074267628826462861353599841821673066804689846729863943145287205494844323319838079368246167191900689617756949714000005752323500796575123063976778395274552394173558471058338633286590688268316119526795078474050062334520784405924434657036241214053834909027376143743360331625469938256871127857712685574816308749982438622914090176847777483520285949544427656538663122575065789294705334833473149385921612504254443375537819056587481178818745655642559565668752143605037335046677645577524961839364003269463151631442504070196642473269256228091084204124747614618823292675007821079948852862705279523984291753603641407085467087120262663526946406926774846089407176350168049363224986344287499069004113412143914946951619794286351442146979678105478601444022927106694616587336644875273697414619843402927108197016083719278037095767811982592461854546052091469178703829404377945186888152900858119362472180687752088699259366747952739089102563633766208977048924519807385823951151833258732344870279074324372898998172930450301113891911490856686712522995578354058527893533325056002003772364980866192714158211439410441949102811738868081618931927371647761459027878845478873280559949587305014245075127996515762251951880198399926769164263363614912571246654622519231012406722801676267677674983934542980160466962155644798387203399177185828190432050567325294761125737944862729541921280436038730113185959668131864722249922215373169140230641432727476850932480904074163224054260473626810127596774747950414134568568052473500243163981542866191968954582924154790116167020546800715314049597790070634418083014014231486028906661997231087967682218264352238623346469825843696556535165272895843632146918751803537766852913992240437306506245234652070063793576104027848132941784779736936179644124910046350907695597493146366867272897597088017958595347715335213457236959311787935475382667868309560529450578547370725749012220257392508730674458715584821743867824348626236765396537874296830682057398603352025666701789234330209699692961543985664475719641473969414038192009634387890777815562829414421859343194107215461423309733562885482310715586549522499655357895723814780093720289160119256835083828704866592803917695162328192077679867678445452549097684230357801531347020752126171356096207702648702726026344285402371512419136552647861046670407006514502042582140654566532982851616793146436949649653089002334126640307519250320438248518165520144736786340682555852041562820431209086163354816347357094043761429953789431467026722693753417077114374991867275826219904847725074994947857227198620397868168936794944136819599594122403355977198094606536927565301945878428818403208471716250527869123467071792071386742871648231502901425917082257912672211033742424838498528434345196090074218804266468970148131598818977430128524938559415854683103082157238873497539334806155524222871532438780458330097225621789392687042074158320227911460205697330163413312619681811253856123329876301776552861673427705012675321654051591851324820903959614328569870246249041510058964748324106750430714889869513336535456384173178915781246540048640530071508846181318917480931363357238752286417002511779765420525109037429033974321468000874337690255180749084054663710689984662968667237837420659366960030628853556959460511375710880307646008735566402270701946302411760505093530615028703290873897430118138432235102422879742839960638390699783974253066090264942751138689424375146849303409564084675974788702760228063368937011797627747443743662742391798995309913531512623295585251431446237096981032954746670256527874957312987049254006853974816165430379050973845809368660229873017345238535091256231873800395874330636148794681898711192310565119699645646242909507738074962453638053161492948132900072621382303791301702501320966418731713472811133488354689694572503784029140349778424265047339526965049181914147741554095540495408481924822885785721315500980662307403364393389241508270787387119531507357886191516780118696143923132367151987095721968536717073530501228099914332657643135213773848927143690306852217609290794229452024456838704006182332869382997348048761786723908153593742952815246369225928180981674250406660701870231674482275350799386898234361740510676113799236962124317466521727637162545554726107906504781887841182318362949997486163273428824889752662898022826915727372242310069758808243403711753847379240541177247124528171859434516896899048905674141507990355306830292006540450058770373204197552085012952699894622267515574169456771364228684467720892332003200430923889503236257799071819543032903042047182931674619983458189774524509655100095584687608300035242103675681159033583038839445578863852550741523362481952600447778549736929563643691335636354717045006737143589042994534582738770807008702557816596433048364790750258313388970221936416014970738062966839328297773893878554730492424582421173806109087915031538397159511703009871888647727248327436709925062105955888715731098630809908711870058071731194034056423846472064903495617135110389018285633041545657794038792767658547188545915778339885294232254939495533638816003413306898252577780804349596081096033768466612234197991716736749005832237708246134514642033112708881011360512779176963238101386876866557497735310494172408339038371343637094650799103127680359687948446789382435416089931608224948785301049469214930302525970149803655804093481663052376505921800343077892470877471066041257683605943386783917198255635960624592556864203516384320071703719210119557588203205809464964729024328890578100336231114135161667133700361348135840095430779538287178691338235490700211942625837681450767340684641803647040703588984303929423434088612613873474300367243346328605284708300971664952366846676047846885804885186430305237936685057457826058143489616687145860481183689791234340070064261499178510364257472207603698290458716984937506299127043298663838710348638939474513531625183966338595771009617388897608303054246993269109754152632976381904790930254546161544601179797567510828125354887314489017422732941051185817770371816369901524096551869461235349792361249347533527623578926198339104543224005471694707247541743639485172781953302221794755007362242571441111700135812853153135516657354084095409877019346108027909644698424088503077933822306203032752378463625345619256838320436348361006375022974084111130496184332594487395174883797818110572137624744466599392695475925342980616390113572788824403885309641560089377421996565705976831004783115381777145045262681381138763148306929318080013146347559847349990836873874731310707360537114167770685036265872723035444396952857892076052801247712196321346510151746119245422577448658794522075810974843729674079614919102033163767995880564644681487681919805698435794764619605132364745296169290600082078967242213879901553282051865914011430183174505359665023581475617789771165724799047744123357349319045882533787877017374739947241575720607676316756458634129439127245389504018621208586911577431358064708205986165662745476264758098473572412608166524811815449332239712050000361031375525847217525051948279783190211067856802432507597615599897936168546714184250631263453408835140145553104152451272497496344394256177009086040142114246218372875140403079712862414091952346393199222651337026885666157798535883040463903212072033341313425042849541283999153486381486407043790307228669963425312711898316424078988440202848774713256624399036818955394857554377111615297958050752404745814399361935503230193569218296424483890005569076335232463605705203399927522759728082681337129463655217932822937170841628724890623219320698732242901996410476716984132555951390202802775136677018412965933536301131205682901074314999845347790774047163375549940111515959680819011490964428140487525493693575910605167916340022460764579487302561567657099746615782167518720302166425188958597442996695711830344996618829808995447159053618916246831458272265136866406899311194539474625180111853320945946447140119324248815104285959078586648345694410680072481684430090403186367560610382788100433320376148663781011156791758045649324968183508289894199232497891649365111466055035402009357650974838117777047329840849765059044771089336279330514998233653969097376508562678385499940325663492753623004536882719704998196095897462724583232941511087022446659077255497592067468354020825784672986596511473630899652347506213089151945225797805934715565157042222085196260392236734023565593582104679785751993828937795254506399245255954788970811334075366236652723997212873524124210212366191480831037400620786002345859678634563272933619500808211618522855703381456208329041549823462070592384215418254128615742537102166443497403279938688753857541870909146701053526988131703046821043022356624151385065693741930182177942877309187032402318784303601549242087719234954560404313021092527000591692956411505640463707193903892895149594104198739977111359568721714114617110701850061844658194546342332919965607573338670180283478071949612394345337243543018946438228916151306613184773311452484507055681841399519794546627999854258703460170375477766823481729278043665432870367131832171430406388644989756160012196365781177410456945629812145535907988025291690047844568837134502101880563912450537968119227222598524725475637278464617438887790203982892845483258739121823220425004062586601440664295303996120204643676496517991805758524783802185185692597690053770335622676308490329600575850736927546070357673445572355004068429603649520107726402399775939057212467638331698291787873665262946814912217452645980274982275660905936943545688898600363938308651945781096217587862074270790353595502593702963689772847052386545631610344166750398558203532443332977536659688454323152358117981104632963536923766732779727032394811168861553523141342566746250771925473319056568818327506277060843643762926903099474723422490984960239221414295553095780773453640664707350288858483729692652520951854012092567293208089250091986900878040356285119135202655548674561668721404580235472135769606204464963715884838474827235719652010223919272912106455858634215585500377306165628970727991947998888982152646301903740436741714097054837147765156854197772619116032698826761770411749053084722096224191232867874093450639291798492722388931280423795818017345913576515645905454825135183991807210332191650368074738686473934847809151674689907928998088310439150283550875870834031790626744336340634663345325557589816962170292773246737490990859288251425008245206405105233113637883239300680451066646708740699018254299103472906474046469573425758193665723703083788949054591017060236134104513932766338122534772198175866140630442760849774704025893279863691670288152488652378238944389453206949696663096124831667414134172061203458750911628543136583238438887846138182544381349757872239290532118356943125524342256246207657913195230172924786342714922804826443116100237486726461536252693927558576013895443049607449025767026763815589727912444536504018892058673621654997030372548328381699696933007403653130443311557074413750691457098636779988368897442912309500933761576900480311090910853141756851699938043529573037625228878785569749777229110290771355773053254986572790483683301962054420487359770148282964753767608448980309495218771872023893728740977659282773732221577446761091351502098195880215807731458648944763380265936772181865359166441435399858894893756922537159802148375612564397584833005290253267730670331174397293110817849073836696836066109393002473144791520202901850479382035313321613704945920865888277227594633694870222443136073611751858771182789117311831021979930980644127699869382842676449382729122595241407543640127844424559493808290761827011405819478886185237653115013508749796936068840287992699539752212770409027458479838206534844816355799236261578105912555389655040775570916644320364385362930648777286838662982540435606681242420556710535877661818699562609675397884547921937509978001344090092159424691114804436220427051389956218635263975734163834133557976076682950671576862730027185459867824122648793560872293936672483515731491284907819897301861980775281561596746500830395613847174462300083067295330587539587782629831692951861430711842000868690917800456210002642074559001827952583486629832134610367065657619721094602813712259001885913183788888363213291475497519585873800398622775624828245196163707195019587237858900482480739643496121278938745033551401021706002333014698931935109790998036875200116694842148306551381582565081745124491938272468550377539725521664573651017902144173973846565764244342051725400329601403421981731027847250331262753452347435023283176963631913519105277027183426527626314692032681265158595577063416786753757782281463223071524212319796904677561985991774188646074867370860725671130891261928413198295170182017460693898387941361416147237973758292334797711909690661107633115082436605158557775565750350457651361452201055930257487736700887722820960721039304704979308387211056558232041225372984439651887210674054572969063698611669621369204338681020548123673091715472389608509461227742923951985803160338785996953543665740929265438426321639813727819280873583067643725875663114520824225301399792953397057070176614204871763891879670720852624645077737263459609011902411602309923096308397510819499449477671715332575127610061871805238950304981783846830971326549067293105874127844313684602143270969769701365210434649133351087445872689814411672584433890655308512062694986010385409935683473788576119156228156425383716386991241556321958824030498809806008607543904728720642945095517426534655392421737140704930504516142019976908609676075631144157709425400257332676441454942628604212328077927277374775802179901432521511412328748505708532643124812630771529371205770078969967705068205617709219057912174150328862137658307731258176597337592558803429818128786403024396369969591131400648347194531579271291693656738646521272736234315953413142119911631054931272330283608545546796455540077959533829589696595926252214152579296516551196304055707947012804384135254983363948543049556402104187468911227246416725100280660694198563615904112000165536677092229888432499311118344060416123859982428697131213027501176055108566155990485727937482930369441711741832678395495013784670143525399560918333731235017693614679694344855158352975163036666929128068775311051885024518278955113549540881499789208613048829400270847608705619830063891494060216253049754912968578766706230075555795882409126296348291550703065906227463744941976073910514793010143620018961742745604718656921148989466241762193838391413064438651079257853831542758250900674770646970374339097318972523863010827382698686301058873500080112118032109648898977364126367848161583076992857657300777461647900834924309035385911753778788244468594409419124400983815843534768980902301929422503502362533471755530757835699211173137322304997627847184755861673101319657819691370583632174819332886246665664682183667985359756547412552143692601473325257371922123169100588365649076581456589500970730435898942321728250771231991317629988402430903082807092770897316409396244222492028037455144516124379073837093042478020325796995896552365183691731932402026618024984234593948406258097846501789615672674842074333920245530290833721419284559042424457661969658102963424186161939141977169223024676726347694009056542935384006544500921856463738671440565779222487621903774762108446627238071934132664724101033232665863006503524262337154407209665241266899696533287385051083296953800124506427499304390242957899245845261931149522329024012580470072859993810646428405510149441668958038272327659719502535804936221411619966877751850685395874405350645223291215154647887881669633958230561455485572100204778005463934306884452139990848356211700302783605582781265437424584582573496643193157622172281920075484614960260588584662478194037477970336801156537532318425590837951812936911360368220363121698380550810221588970521926370550347111963658335276539536904697214567980478191984161208599275420304027607898569612761132956066647686962737817552267275521144343619753259514426611047932765720283068628771925790965166222031816758590709817866655167493245956952634003284011268274063265268835184703330108446346697367205045194461979737705247226219088923184512732519659884039426204730494603850111049447810728569404003812086939793787611140229476711233986824647784243718003848755658671154818625621513193723631403996545515756950954649667831778578908539780089682028507264979761259993810245478562632589316061412955291125589570293725045327774794470998115212202880275636770244315530553046358443782044258438974870211144628116922988961274763759969810324162332561177102661906654480338421919389085586376127512012234039064071849832110928284357678774097094192695430875137077707936591159644528386362386974883712575319604109103307225621145011134473834454981626192007452994018065366772198721752606063229610008451878280653184615340430956184018690030422764675386804882234265895922984886485226563506236773211947775538210478780795160475953767800238493338568384411248109297965080753424999009818540599475550815656228110952560964496940188330053923308932939192729508603785591670976477366574797373289545825372371275191997996308413722802605518291689679830593544318028487211404118596032652394162136954032677548088167081341374674022586516662334189026562579215430017758883649647465819942241266186878387471375195774726180181660507545120126416762464852835423466320171680508687630535417741111632431702281018916632012285850108775907762219448424722413883649997875891317511134397107793152004794927106052447909842365618980823677250790155214929608884184338755881760550367432790210605542485282970916427676670105406636928634816790582500976612569993803431562086765999622587025236296063572672569530959210771334238361465163604869069512073711297558552135463960784740662232883739076213152774200547077693901301975801274265884993534077097751938944602544832684417698148826012561379128892660930712832856793508880190420561313540068473292603927710272318333397028681484135798923642623558106280332681357323657381198461808437550289421068136175095248028480815523905285736287124249084708020337211280190961716798365378021780439008158237912608115575500724282641757850549200058838446742476090725085290504652364724828852765768363957767872953922204562264714781918306385806142668126056354456789412350848974662968342645939367859438513113205575243012583486381292449389791822475259457511668346215145031984938013911318576396944497740342963079769823487151577806247490576855257924626753906841630636291784986497212343000657717782754766847902014783463622912037887495993694825887591043061827418203235504903684436126769139978299744739407587298991515239543278384552876591839830372609206845762046303561556869771487046810654021805236176089949278271251837174624824596560371822681330138671844917097122497052585329370455318584045701696491390794738382094806155917400821870035722282368616221981875320800733099728269874047593060464839240308603673135949290573010945935374965490445930598208560268242441545948533110040303661635629849157453438131217772299164136957695087952772720290064158439902261286338331695267274132986266482191402538657237586546994354283858421288624480975944936296441726456440743674106767684058771876739830670247189393826771455517737944235404611526631099361052489076631072336773847893621129660991992873058395867959692853424640793405580161453589136449917214580281131614046217790478385850656702817767966104907438361639090033226689471306468099295895374371660307344760506783510051954803119749665567754730527940054734707439364684007158912625802173473019427283764985349975528905900466487877187787426006041695342344346633400965369976605689751743777223821121594698459751831187024004152195649994315744257517447915028635974206468397301978784367510912730536794598521717785634839987905201741674222879296494460736100049374955042264774810144768856770582231905612628306681739582579083698947402393051200838523559083990790965237756569544501780377124262955930678031467560627267002385982639618340429547808132310500477494115054635398981651991557322290743757644943379318192718761706199344826320996875992529105146863481702345884620115391500079569816396970943653916187815218396478617985506545929679590000203284532685079954966881738674907814320555418738950924780287838600956025581283562889672956105102648865441907183260755953229589535706083248565661635167436833333530899583398352902977927678564884208345364694288739039909604436741363234287748473699258341474677747178627768458740199575944551490641290819125299015304409407362708163479809400067797556788501549402653278203162603077389581784154862172652433878745496919449375452421764791164250056322535088923221740929145845680111162029560141092366440221603132175266035026987322774252789015376717895215953794355308289805284095608919464085187326039564524045945598588855639602603783825782130222384079330005840364508873470133910959291763820168694083450173167263377504157729405533371820972321336057111535230923857511043706966427570599976862175217034579210738203524468750540462149385884961818406219893933602460938848087854131344986725605306424100680491076360612089403052690148451804787539550611168990312662881927622610431224803510674612036029593865948069296857679661986053269607578079887053047601838367923032951771672243238329696986647302686313211966814841466315843672206058952759444843049694609232063749442375385984551501088295133898258250682307362946055955087531969623393311385906839961137568282791939679030545820879136046008794798024607811229084192042594647935294091848932346797177524924921991738927711595642723671228383015170685277004312117123546124016261989365745534126689426304513133870419795539950538176465918603984298047296948855743869348860555529682303423814645290673134110118281675310904906702881026168696971703061065791004253570949629476443898292423835166604485752214436164240289392213700073176756422289472355208835479734607470215655006056592974133839586998762597190349631443839359377735024880864034265864229479540351078005457440605854377961579990718166352580135130318305587745980768177781752988329966479851838035514985403849621774845690687020903220485558802594462090611450648202700948953896313508224846282654529938422240931036792395310107394899935723629141480302973806285544325148328584067667870643371945856011354890860750985879671542179898820971037086509305254907467506814246264910973543354395493250099395350329378245604566234658349074758815298254014697435371046167862929776067978332261910907667460582586961304104037917467213129650189725469283727898484216777330985815917350875148619522729572208386152065526163468830490720639944345459900680436365213572114771027468705382991679544255467854192629317541082041458634698168603189499212216948555678119318935784620893729154634449301636815414433486742393743500505405410683942779948549303235069914465778039704308259163601646170084712684919619322715924872524140923677451973921368243793325153062018230942275757388983028190940086710849581419012598053097471445975632020561409373942325793346023131571486444829696732650284946171421045305221871761307398444887581971349994342117418150524985430135636183756258844330993152062528148242303586890105383248605385047663447566884964921419250894287119941275834358130108690637378799774465428038957741698114714487722560706485394526629360661304676042287856428450872193326457588190338369410523603224855083872877627982303037230773419069826148165258897994128526418635653336419100297208994489931659417521398962924694954551591472712627203469994690297844598842916009837307723815321809150499016660174499562659497703288062910948448133527789376887835120465168469411621271217386335573572007312921270596593575497355665920787967212274832733749015994187530351646338361624930971035671002730365866614948209140824680947746688869834214060079841722037935352347318451555208770271083679506510677712357041787883871812122565855739939211009783545242491356661129248098843322112278771589720365623687483286365374232389361618126090617718096744833739300505988868293755189547358259225968435819038722823105466540597821567611839389104026382832249920292014323659129286704151791574630270541162607974544139033215290737223684926732144989433888002804676954181978978734437199748166507823761469043887234503218658504937453083103600688513579121543936657343396836395639118046437730261331429810023550386592989181321740916600461470799247906245485924874210683647557426889144661561509165026143113126070293346519503674048941376495246721564142801396908387745651451461472578087102774881115781765997616761568423116253164505183612781626254204228824615017760735335442166437861594415002965241465326631648106249329511675494568287400925250849108142247040762524970266963875289995513158038058085143326283717883147876188811817136683512609206489986610968934994181397517376886551122582245244065779013705691810299345804644628798503393945150439641915775675541423934501826785865590583917723037642273669636475430587565196861608140639440819426094077781094573033688066954541524579750241228806389420769815918118464227531513106017215383401656380134464336022316920692227697438220604274495511258567720873787094877378681482622637532332697540328785778257168406754132816481215772346452477029266019206146652786880665856797595626157557545603147296766429857877532069063950612963600582117354463391970739425060814474373823124082373340396771286883318006801653949629273144267061083839227344179124191729812774132637878149882904432757887828602723563142430637841494338818935000759460194298154955907157336612633121429175219186980136791031498979237095752837915746240737583161054100861841186110326873502183280178471491303605018598727502115784323739787587927356571625067883279790288690800893911154030203876597475045731351505150088510570514969078258660869308775990711368208614758970167894664223901565119529107104973428218966225570618262687382497561226038863356397240808278603524140379673978331308115119796542276477290055109212453314979051500363039628201778528436541643159083777176641934421446575969661155213385957471865906105195812761754316492973878862129349555887479868751654123673369472783574548262291678665858815592731243106207177071877326332519552000422738652600721119218807008243436907190021475269466215473143252161286267449904514231998676762423551107184299660798297952019025503742366382892651658439038365338437133202431404036835118901714465753247281326000784393027188305003776203937393011785311011586999927464923262666521151070181080066666592927843548300628398281796665664613302672625813097425540185925147479973668451706009165429185145248469903102813287507248158066383919159239475629941645250997765463312186306904071211185244196403215761514422044882829192391504020579958454821086670934893318103795739528262490415005221349638885076299638539843861976632169570957267626152419352505285490595747880186492306516669862166605628123306661730632464763930943296141528174152380380629299488440620746381797278607328397414165764007435808079437808902013039760703582356016684563396178186408305735323235317644778636077169720678843096652886812764232317599795633098200783591764184036146305863723690556968705456979884847035921318761079961657016439467767465754464266041184191941702268957564879490292537333713415156682827582245581138935507881762165769921940554064101235923871396284524676019299193424713442053960273405535255647033767332375143639103401488859123704183535196174426117235283558276207209583613615628610221348519318809002252736033492515450572220206145458520146292046338655867295881376198922258547660081907741288299959000132222886813297473800444805875517236453698019611498049386742558586158225930720711124701836626308352600536764718083652209401335269483430402101488270311342676497778594959136609851092623157385516635004305465191896740050742155604252473384285231018049270247492312204651962872082198106369593496901236098205237646373400308548492968042596449899009819051499653843374255183416408871439550338346593580943993922154377297252395535675092574686354901797056207601193919986603020602430099055828495901643684715292548980534556481597332010825772330890532010354870004789584673726725138110281293138976889360359143215281464082445809710536353264907135418659747446996641235919076891691813824391889076263253172474076652698713549999451396153754441397443986952524318049731333548458191056954019556475241083877294879501535838211563717058032895639456298145216933117870893202095393441966470626324777046796072613680267731827084958301405357560626658980512455162946148787927794645140936246709588676282890716054652719505160954342453814397254769751634049553102572181019380977663060298408599111000414167620421600435647895152375976274337060416262048816777339074711918569819757406023456496228114802499907534622879220489862783455558701239319435192036775768728699171706808856639854868111995203624583571934510105279098638155602588185364840477619047862111989724348414041375466993499386792738972745353634553176741591177926595218381867990736576285508533857934368805158169016201730978798645928737555136987965609390282220328299487092278820287960528117564327118136977363291108871380265963887937018203281497596706087980498798232729970155739224764301525202291859055682206973038179444979026294293411355979757842757601383826746884177410791586832502077528622811193525730340793670933910913430868674698954916792904601068460276549381506454842555641831753500414189749909749189540186579479387545805251128267031209840631263496589189780984309892885218934079577873087531094974521531306560387462507038874982260131064892820123270171422520283931400104374765263224371258379323163291080361852203685639902000424392956099631572431758273804401043997630509781918413858024576444538885772784731460878565847617783971699202939221204449687540536174173352696035739737398119044264795306725608989872489160897941063692885413092021355591964580478309099336591410010781181160478542094733890194750405860031595641501646691669573856067861999414750246011083356715874497664092574447139185331153309245485623199873398301461676380006864783398330365533403587693797896895197150229905928459030814050649553454451693393509148151220746982757399581497165914214384224302038926673543401500807099472644119768447114231426782316185853074005807352608558585805545570973964952940464542856526360575908842264964836185275885997724675742145975817521811599287413081612390274452038426933745035596186719699572558482301207324584453884900560184872441034959837970921234702885229098733914814891359068288913661410615036593610657640245616447633919284633096128983170076493957754261714128040188453167949969644731473374317386039926533655736834391631988641731840429634779306983966384350152819156191447756714475241368330968660003755773421910440287475244688056933379358770145301035992012377799124093099173490287168685957462968632765589627543935195864411446277856653163753763441041199869557650542167734620733320624312569758204188741303790540187538519403616163578444502603789335255459674103953449551410457676310076346755339161864614706267968866930492763989490919786875911563613881724595181311938978152012594736030135893848232546450734953259726424641251143394634517288276348578749731786227953092992286886474081245356273171106761425916226533413375887139721592681541010861100576225468761235072953441399157651406187709590183393055546771850722121961880836824535788388239928734920864672905400465262879788285078069293095539748028247282863248241781240673134100799768141844244981115297741889927126878951842952357144599012115399689770736233662809031075329984897914762717045936806070372111714262776582706278313133515597368289721798925580760015781210798215552897531824914987488381790919014063740959875311247967794937220237987626894012135872274219107290437663833659197614014282830918531992166559940426857139960203615201783257840779611429204443030463636606357473514188194068289360610628452056500036531446633026100999355482212087200473266370919435872866454948268096030686152745640565496469404198232769827895740470322757929406015261649261692743284472405002998461668872218717839576755284596201431667455644625237709943720237959565483085225464603264396101818225913480539884536338386799840510389220770886861877003088316120271776245647355771529071976952888128237200734875189337900178081114671672647146148492174130416149335785611212248873860262324561643058222606852750275250754008739287787758464607940440056428988771484051431160235456481895971782814706998573149691959100604202903215486194395807125072876112668392449688560319086363833336058338808461850254006988999356188307132803329174145537507662870959834121977228587558730661612208545305517217259156494283217549478436116559657366233366394200801225803415952879227436974836418954453714899797330516019222875348886384933665573973178012262410733557981554422692378943295831091956340201363587888529642911762084932638336615270818983344442873638850678298706666358747439318122654254610495373606201630719743844506241883962502339863746156580891130877678644712384468375556219605441129997023080963773600013308392104673730510489350166624491306981030339044196204911678246904972772028954111670299536450933975464991633646273956821564177599312927042055717294753578950826839569113535744139574730296796380183909752198064991931543074043417242220684383387223499140776712409509108871451076714386281228881567178170301762555078496115183974196186808666727747835629463629172463378330933352815567900469028465721727258865908111657472820538757262477186009369350302905333526641609387346570679453898109358926721688808256772917823840713112763163321026039217191928346993841509367353289660006680701191426248899756154938214475572360554648881396179163927957680817976115619177133814758783649564197591617659104265328781242239090824187320014614193323014697392055173777207151226243842630307066094014762601133379579961979819586483251144195671139672547535026166957575407853240573419525115724879102984860551532082920552432323703011725242978884777128472388938962216945464540799300853017936812056685322785344492561034937760909652776654656024679255068223144493060913177161819386036331634204246736995793460203367767698487784570968292160740761922447108705898117979359276991869414745879002265607611373367792238808562124822832450537643685772654251122923673980918935047627168212681511598708912912542536384545403941619112801190738627153811045499330377515963377831809978838300850788976529881845401254482044975002331502664023405546442561069012153055952644314664805831633660863105457641957728854235374174067736096136514953485930681433604314959071314437778155919677122273627557495763025952979622750575341673831365559122899336482444535515081723192045795429928214579274542853070264598961901874210165861349872718653819638698189794644673424837028469162362101947882192781147732614080225125630186925962359877776922737635830344963017708532833080796929730510413369778480421291715056703257183415134970532244669636554397370206168254188930460291827283581258339037319481834574627376814827446332048105188878227255665542678145054209633432803565688367952005205532676923825398505291079015604786070595435621525961550716756108341196381890586993582972135131013888817781724901460177116778281294047932595210817706289312662947908276274544866688887359579137487908444757519095983557736287352418556880894439923648014565062974665988309899554035528296324731108492895685377550470993090799174951554783920821984422394826342641631929957030137563868048048850694385570972509786686129080936817305836051406831833379104987075547914469222568463510232206165567412455723524383425267820318794896961062788296077690652678763167652853595779634709896948337154495922044274109991742850466068154416227401062866522080572589293234105403108509488303292366411442512266180085964487790969363535560327399346041829557449392562469580097734849530146316285678628166488238120848533751617959601089243656754002239058812224118164623054854238742894468629779044369455231624018493814777145217934144763624080198785528042751608181515065409665525209784533179285755895823816758620796427923415908882838002647147767118195807794367931868044321627525942854484758523275271676735335474163597820856413604314031080510934032973747966910996104682412702328594541650811593972471099975768608674163394754060789528446033373340551000508650229929666951985366449013400680085678380575949039355092569925247149845302327469013365835741173294559496208414350656124214888126214807460284917103405681287983059257735843815369193934820962396517825384766697642353460512541107481677163613711403124905221800546308421680093382838393337417821181545254618044179887919456800364823139695350312688523217264778328506045033301395334454166505563087058884802672657782235010991805710899745259670917820563912303768072306515487984957756840401692868761395584672747465754552099553468405227682675107741911141008078433603277820332427807054745584551738671359757223865911696135854946734582832509372381064936520182889083887081861448120465506873578775879404039340788696625018338823728312925958687042074368053458492735063096687338311456531599497876261535028849684918663659097058282692756362974697412018382899324566482223414731504696141152501931084581806108520455014276625716693451354808054562620798391403489938975981226222890417683298198800505021226464392836776242063681792861787110599085500718208208794921568473690596323746555047210500564951732415701065105883618805916306839417656961029634747437476300123802864740434245373360879117655762898820589321292827912050097619335191324157808268527439436522724891810475793346656080918217447304671258747305960280699292202575003993040292054503540438235993768430304527397237065382106187956283352977887507250019657814478321509012688439320623675780851362334903800259791641306276812979180592127842220674467498466102273302692608336235513442796105211235624535026929579708484710659493473929403986707231548499521231788881142391199689825458960652425944295928504495433757184734606513428680398847528692502159277372786377317641537753510576852193982306674454256766127564275979501666940917686989723699135851466323128894342179446307066995908508739639027948556784153550959801919293173456148128851943443567138681066461882771138433972807966824761074978880186375718688260639799177804228350570048723172775573917692587808141586735859448573074774076172735848430853857433747776591072186456955759188338364513199315590556011536100396483797661729087810202417835994470346235014776446986288614198647114072319191779553683510992315155820744802920580752027875751204548714033454371554583813022191017622862236234442321597909447845250563053280322153872033581285885923521637345835281716162314064488029369764261959373881430989285678531075642646772709161619621558891639471839103593434229890365592160195321411340592043510066648234940080621953315677951917699093554642397766858270543519258388294937217673128173452128839382219168416394133402180788929926424997232960922722637101828089314042939546701046326630470069519628208613416466583219996114797534742025725111505257827271067101433933716682174157804323184580587812206316998468803689347609274314686574304045098725326420497657502455358677746569076334813981627836986520526108683457495007792982500212597660645800428575012601838257120500304503264368463649015255045629734789644958854521151693087173742421265649879884238011077151456544477105964803364092504258855753074530830934435905152083935086500545262769964475133962534088087754210267756756046596075052904232817956683636363566793884122575494935993774892307843688655907388384387706709717238190303036109976688130291381056329728106044382291788670762490353997271122654066747979234379409878832240112834893516975932623163226298257600309679143011501684570802215550844136836339289998522418286717087739276638400003893640547139022284221022808892304932684512717124378466709762449326493942841863258016137937715383612547534356507138840055261029646054001915084847698760548583771332252534117502432181483366483867454795859183567325501379160543590544270253313836026275417771047773484786290380929182811310208746445951131064632551322857414011440571626425364427597238356818190049707741874853584615233685941996204779369685827804893756845716359486914733736911634798063427874728906683769248685087448480741474020856052471877478918625857569213817760111521957610265444718439896678872322008306731073929570511070501081589825973421805668326171617783306722149440233595787086480954827624991661756653279834755441376571698815665629672391559155589337340567657507572778164957948352235043854402673486571454516820779047346894756369750842864073764260288226375245264004803181483396097849413751956738072942343800077837801662101905672279564703433834350838560469041667978194686265600621280043320842054925710202340266079649810314675057224971157659004019786259968627097098299381271462235840591190078144582926572082986238270766564307093287788076358218627642918799340944725658390139792797322943265648545242058162924882676740078808320873307032905131273282177745359208873437238376529499342785058787081142667603293511468621564732466921701633585374198373561198062772483410824860831055813811014841498943942574396999627649978570887361063666654623565843907256197549992054093422488324683836154960638057986139423171155981116608735640165588550360851237618283211940726560880064339492086598623122605467883867522694645606580012672423979715179205605568573944565033570154717118645949868424087640575129624920290707457526927462689441236438459221892621003756886017938377878363513537833759038137840796777404191622111263006945901210399342443573986291131496619140052335841253405935939893129200416929800710093370918917922733282459192293575089304935112690614490536749576155816650177556167735238751364129898658235284279159286232914676423441795252070499128554910221393632938481755095898126796438508460503481645411984371699053835395037610428082860387612010833890012479498398985227366873896181236315808954896918683364363782633601802961472683337518469836295823538281342436035422876536439654222071234920512208006402453793497775463079936581305352439131772182814003352128068701882086708422328223723618923844568682104460023876498455652565640598275925630666100866318628828423309438930181810467585832041183990424480319056286205073750587152080270628640992155058830664068358879331764115745709838936429567331362735554872454226451741698744703441249811608820536689144238021130844710990740515386994005169881672545247732727966041840776888728966746320409348912483788437055426776400909647097108603972589449586110201227184974690786174296542693208487404588603242738366993872577893789658942268373479751091715311970788771692445265139740753920574372269993115749772386246858241847080796068514807305696675756596261384461502904149269891841006596533193673564923405190219400071707874046786444782819415235393347858359904705483818920967786072802569491245576330201354373998630537786082468350004784887457220229325481556620247899638504338509421693238050647548522745059593078549424729215126825206720377634989238218785851703440126812241319660440519295540916587321533834487890774655638543329333891650254806129301666007627990597141692132074504277656057690834569494083637997417324790982553796356877392765268569651799420516373161759401516679488813480701410935708334320535596435931613909802461193563873660578721816570377003288634461165988397399537541478675270497735193467746387388215404796833335816389480500209066182585100756865198524285779734935461840661919775583888532072696654475205919327460912503922951204909064517844322701814734322990159623433317806641653606527642452442196376930846867760235302002616144782288892098063025312999629497560108363181163344453433426909198033280813029313842796233520103881329118841141331659617758682383343398389200436181551883919453339336532840877926103353872295458785914314595852689499146743079476729191510968591058128323476643546655800075563527504463127867477771443303149555733008421865733330604901810368418911028592382904847115742867129126304022368687711141903998792768651325939355784571470103540746566472746389819906571164329382563633572335543672158897357364897044440710056668831531308693293428213069914463523497833150566645662406054958224837122504378868650822775892145271887954194192956573535903077308043750541227736768860529889444044788086454324754543090245449297415998912718977315525444341696344663560875805136102098933580482096713530192666778412868137746016641831539065599025850731909356244964962286947090050687246418595563499603730075018829491393846652637298212636867917469212327750504294404760737932693305122320268962034962256329289258808858813211144642540004634880042339888589420924120819126728538201162889206650830174341150363438833333906968187197740385843464327565400960406683583075254058510064629155414630852714490813538091578671235997978502752634046862855657889326189827500463145999523219769527415299674653600924944149720567556770121053834942093906203583537683349418276079574464220781368105133393877489629626701790203146732405436223939142846143722730405865117247036350356588107371355551187865377529582673123551127160536155085077478703710671429474223196546444683646169395562976761042041992209784906112409307420365658809137784237941642296119975205757759475810404373780308091868069223420858042077850761205083742881311166361073919081233409058678582000713046351619981637990392884036296875634191958520932878391281903964143295027707263630541619883557675796414017174191797389602259631823584370242417764224119662534777160775401573096325484141290199370608146236569832382777279494325399543436085333255549677036631519307042737365823681866300421776538580317336869116023946326680079444682873043995956917124638380652034890396977838958215035722454678510004055700067334452216123188488117559444951524311980201158646460545375831792270334853775971801641349482163390798547021404298509167273507885854262342018130479109383379622753114954109858708962651014923471732016573139037051921262959334860704354200702290417421377867797743822082727256944307571782367217109532525563662443518657327244881645321542274292084343241991757428296363450292256136002382395366941103649962457790350164207340204945017379952078471823003644693292872625182659118322586039391788528450156570672502811616293712900368163219028282931607691501831344966294189994080003123961947031650409269349122800167858884194636971106119553235574277320214224945058589678791814342975103446640114744748673469089164866721828669518889501089789969827393808533583295904856913211197288341792115729533804017695444967567635079398248308220477606301044791508200210236060312582319051331025253508561598904618052009591764906351873453293351273413594459563531385557968964914144385369255726040011734912655408310262418554398651708666953299384647499879769297728572012986079533562039758895592734152237095886500423344663608476216370056791139242452970229207152556086991194896166405455327812966853191818042197779350532691215999183603815664518976664118991330012530942665132559166601414322129066939046176909303800888323789795695856119072891618243936024237419300111170333749128214316471853539797089323701768490878318334994675518318451108365613218328099144816532696073948118175830239377552529081251885479198415814086192830958635996258384914801848643242530852538054276931068415823704973969879873046776090469568505755313585668746942660757777320163391179344458503603446185016013764917243508389755796386678800201725953996870964350501867144286293442155467554065863647806315758038629296599999054481469007620951455187705779628595191875502178035266528639687459429764578116269740931745065671970612162283214472234741865235270531589426910513252005344858430208670695352974520544422026213035647477377220201965777456174942951050535931387398169793349886974315609002010482296157172672969267709869813888457011952943858351143065437895398624387939536246386706310155508130062689624555861582567580371353572747088087789629250674130160572721332798483731999316549565309693962188363280759974504342230336961452098806992901479757114873092672432015113118705108299560756910373436261172697576810803266329034076001877017911138623566665297252415355461486798913205145822175072784514421744315666107455643687845287717961519677609556026770428780455622533157142457937134327791757821181909808328382641300144841593073653662867974551521380009862677196368761322902078481766192931370898328490725119528439408631521418148482605003408997174553141520673577464034612228274998863560754253889249835688326215898105853102604621378837367884853286509796951562312595688268708112323322286024329652892796631753713369544976534260504053519823379586927274706622690983675024598683971039838447878843122374063810809522055538346784506136398045997200753890514607641646665428489891510950064988444739473625508217498552527676874994762110075142368251051002553167181543023331179394736674545469446486916224740168738586928196054582426184977184863619914977757004089514525722456245194222462167169676802509977135549070024523807666757404191090161211367915237992109391778970547759711749491091125465191663383700744620599158200118771114318221345722795238351975125113424330197007534839271834662843237451846553310193143651383837714930574438704690180313049602295318922104888462770727999741913431885770468680466456011392581958242413874452405802314551678850829006126188186880526180305206049649709704182307725261321501311813314157075141496288086317089600039911157836568284798079467139757723101898938889021399209623850738705127191674498861343202544423987973744590374945132151444830253920824579063608061092447944900635802699003746419017186661598101490706799727643950231932484595044108979730558469107538128379603380818110875032231385362494038500986431404493912624917435742873540843237897480345125941120901029247456315919926261675902680254038981303959890628151722914312877804235265518205866436310831563715844583300648506795789817936665040224048866589671116114390159660801571042837797176149698874293280560289804750880539396705709548991010886381286672501831640460797605162806334504637136975127787225817769095435493304446110122501148456565226470811131073408570702823395783891716780693764563833470771474992378482850410305936862653733247765009880163846988577540403770966468699967186084487658651792600602840426420769450246558994746902076324936561339265413869693897045140481193762908007403554327877630492760146631045585812834497188434780266646820706117820971861531681566436620360303612444783530986488796940854238183321698075350188485584209682215667515462774598669349888237218050129171825539301893722387170578941599293213564168116944542814606685414955877632694202731211878412085496812237190274721770662841824277197706178728092731221176992516426425076907036322632159010642009244407991580908704872429581424507892606572926264238048164367849678891298563836979189431777277702537702624366022083449172205865015865137560602384808076634259955678331437118209241315102805946378542390423934367680491646185926152958108425742360807800989640013439967690724901174043386859390578230154539110098702895399546353475889944801082725797028597035817152555889186081318249838543879445573163998259924125374062043557465832413741890507146299435944610086507609271908344237646289625535323704411362696144698822081208013386720574260263443216903654614880366494060319547351521081795039452244889980423539784456437402517655616876353897353080028890737071874681006691884492003570188057171672359507324694684756797933081773607854650470039181821374279496938750417341540712119778026903029591838365425617752805838350551138400633883170600475521544826020846194118322607094790507077908119615823881219127528928223082997405895806175145416300057690565570458116520223511253171076158566035224378111139548827520356164414344039226213623127827564353348732383564180169590117323356025031499371953663941708641501633646253592240297609863455588987495292693208333912110093737958588612837051348929299161820674255178839031788083354573812623829903382658354143280016539403997264561732938202675486834718777228908228953542514128759535578949770337467854768264280380044597331039532725511006705140300858798424779104585917874750965592837627713134698446984931083407366229662538143019182933945463983095969647172109103231256085590154751249214385752961237400820554034624412336324520457865259566245188781416539125616590356622786163158094276739378174761813613936630601448452867734826992885296431843822702711497958232490968403293370814047199134028411329495810109301421680100047884458344030321801653377510660126435231363569403500938315524774554723346020969825564523328190217534719963481192998275637234603721593040474017129569605298438213785787833613567984858936395603331776990437743785383845641786613909519679925013402181260625668472647820808617871089778795399177849506255923391754355698717562326412876880095112105772394617882563561047006363727606539548625985575494459708402397475156294349749679978759112325802987596452969089562581804157156585237518159828385559367383592317951418462898270724223348002951880212563619427697964810105715724028361409049664567121097538710557445319091872187248753112938244213518093107012761572246937701639227707982497050453365545264580509466185940811836006830478521307676749665779082667122650865693070144274801230434323542721089153844887727087890781821725070773336067091413532647914331897927679852870034733070613761537862276499041714965711979079298411460151578561266461770563878529332688252443040824061584043615987339563788118343211536280610115762496336443936166042670230580545138394083025826834607099166424431750326066295793770238983938075808665807084879901976441368982712827646993999095166103263912219871360857655458597534772766023811372139620239510452721095665401114529158214039567302655121573187351041212431055269389573582925240997206464648773394840410387630989719843154667158259455919792162920695440996378871309306568393066950504131816044344630051970022558375633951724864480471776577277914338652440236969543667196390120221554529557296872891257993906556002244591590192693167039493543486070024731687726254630333499903857784845457033532713324549448636151602097874754023320332718590672710298665734740705668672286053471638848570516226556617433235504955049652941269995304629209867522510582033982519908647311661843112304752573566744860863695010464968002315055694340372490279688356978576142618985083956426639789141141236202214819570519894113336123004457101458191653868195661394964396767369600729640246085696478044516808146174193941112734204615270024864914704530523524223881423590773369551418080266219258820348493406685503527538219794865964265748198953137121095485538324429064854352486565186959302427138976066217180398188984145100134233485765309574994213366554775604104437414058593997513981722731454024550243440736237972158214671715409125664013310673941830945833135770880695580043958585952712671395586547720777509214368393592721833602862748804635065693484964009641108378383480233246357162040451972467349797026708042382119000511129838872235927368745280566874857582224020796847294707592125954099513356629432440654093604398084696108874221241492987078102459495218158382189651451260370660374309159550374044359026427714134312934949578133443594668337225334651380312224975347294721964620100047482313989396081199097586172146636377871510311585173812075139590421240994917641446784808091698535102507216902113040340917890208345508326648141361005697581705276067896841824105535797081496126296793384120044872576856557621422350140359861572339083827156261229144060350079946396778328109495629276076794711721057412866605387835933627257163184412544610009386786007412543214198844794594370976272889316747048453066145364303235639900122395546100628054388393240835710940611694955133725368144466725062430034570833123422978957615544738322975439820367491060616872137423515773376295872769949342378664306062120780546173901095399294562450355906053015946508412712962959766150710284499327350804837927795758400920465086320972899346748454269125050171999942589123887217477857803357870800338558640987115729828895549129135036077988222100653356518203823456843317492075935650804408551285485687541273952314835040885841468387952180064392632942331483829611365545586665056531854890949236771618197018036940638711426729641444918243831053336793672076209509780437964631738849879900714487745123202960581848705378277205298317238421008809766016271340019404836925887536855748452962105542077391670510764286424402658118697153185532270290418585780686364962588648420550902359772990255613649317636973644362334168371436280869834305643776962872995252921237966234925389470496074989235848147894163250402706413326233318858921354326214360011902954743288152151900493824193466610797842926228067697475806081983447447776539561032841804596879028595708883986043539009945993569387411050875091095235677229162010685757970514273567838932861986910750896044605444632453208196036270726436123909105476973651696913507086536047609987185106390063192507221821531846028861690821519650233565898479031914682689839769582087183816269812079755615016358085613821964141498256041146432021358411197423472806374291630927502431567049638888742680479262729470693932797740111454140553802748215045504106186368011839794896454812424855058710134526829902428040450587522414094435148523752656522399155099083993280746034541156529790247360328256974786813337330165483601666267674822219921420684450327787083403790055127027699980956499588862442241564501424828585674301799304792288894453406833599100729438838689651434949037964755688932088628230874451917928032029870918615979015061619418427694257506564235340412984335605006752607049189566135966596885566962918844657927912690387536135191125648232968640885112357452030184882278837385395370916997756058187274890224711670479724100052595847240518665301140486092942977516563315660470761639287682268652166902597524994283584873933159129422189946423173003538103010084497355988662840607103940771535008171049668213910361307928906027464613087259524657125663372478395449642603188916744907411901160286496099278825769933379180101091181546410444184222709826882034887421323552521543677017798579484077094200726443616703218731246821395679465923642416487929914675233068078200426642010221558018232487049960850469313649943092039806728560789382208234484073068359183374258296897476932218149131404120263369938556966930760177457942306308717585995163012195110476816935639839379219670158884725005058685769008013114840105964800237841006470003452662291294315375675251994099288320568461532953087847162056440181461088291624608759191735752926110717929557716133592195213270376440286158930131459538816707350197875766860271073619733032563417975245473293197242458335442630215373105076167336805350589579526365760681700656029400597055845299571831586537419259525047611631828547252559620379481031310691052046536447268891132366010078101857445357263742457960250172824658006610901983805703802853893332114817012158958458837909153526793308698997582694583544386325929309034744320655759976349883765462368716858366830224890915954768541537408239671583686618833426278485288258889399979578266369304220684433288237506120683528082263346795713662725308169323468846048017332662202997794114583184505547558066832053878729429941493631987626927813437152659029148805094207328460864216146640984209112167262558904140264936951031670395633989710319743700364671845762692999689350915640030552228697788372579236556173715449243012903909987848068769637456016569225646897946056319306741230302402018638419628979086149040663964198658655200627054945293448575151926069172795539954215649012575001509650218449887481014616076658182461560909225252561757480120053116462754227777114437630331185757133997544562765858074502083425119541857365854419913993883058304607480254621676933225467020225359952461443825353240946182130229525889378530021136033125576512282670701706971755140094888029467997315922597772914621344416694708795775457360234763558700244333620557592430552183515940284326969453982880569770591306665355307781980044665327287178379577753874278789638540869454782803235444259904037244935834131680384318079890397323575061373931871476689246738631496293831950617414738594657376921088717096102533752412471448004207988309351462412769068985802470794933452073435352781364096551585814105835358009811597161900839528199719410458500639796795591126231324522204809034093214259244342582303314044438639488974454598839533773322523546361592967563405361633862795181492779477654061086984893465274693087973792204115785867318783469803603562225347527775329847719531331065271280339357097046264140745558642120355235958371361672227755471086161035268737421883350557127488930283375655571687663835903775076442461206136960969547590976290512062070318357779692539124338046966390976731470296616413090610394850134227949824955195100821318359750627274868855710274680812060885504156606208369720572063240939013117178723548188073510805657600517118419809551927342680172720585037112183024605826271522113278753962873558298492822330872471883525279363674686472544745128720633722608125776239705761566242108782070397987777144262795084539262396177609991788518744002704098847256848586833514273233841673906443934550109585882691557849297004704474286108563608992788094215448178184187938082790612963869126672634137999027825841911972778143541527868672287302437449396463310775437735935055319501021887010212547306751522044338774900834988586286477090801893106958677173583322567507458279824685864646633160121907193240310770398873325758857720099715774312966744257278548776412535207309498835405681297855743897862592053518998604603866785810696761363381078660752735330549567456296915219624068347278545342467167511762587254427021726231637972683293979356747965510514228901972222098045814342540686566408886088711094690397801041018341469140712243975359258492804641327919280409062628261456536433858299952215224920359956711425173359062387362614962488650370341038864546038971826687305975696109746085395699495517224387056669566156446408890450635511437796597228179361231673747795630434324527811740025925565124072357860472627538240070680567232135057470975949135061417444275361188457923137601974860120568305567039949509288998541182900251883234832469836659578318758306057656040978050884227521380340445572765884506081531509451779331077829112691574722248271637670210021352492550317893293063474277967266998014655592111908754159152785635466429963148564735464087537432856896986331729887646302953698034348106640888637881498543851655420048234049637274654477554894287868492042291293553170577665190153704178519827631746426378765025221091799057155317440440646675127905536293660956398235608042120810876339807745457034915267448328269367907214074279769859029166015339121025213703539749307627274201412197931114914818571566518425157279794590012882384653969292700490578245605252359171820878318759182271198890633752683083271260965583157578192964439708366608316888009846991381549207637827721750396109008572617790765853502154208893788920883990201352581914769104582174990337620445826839004319434980467396895208012055131962592647227025273963291268057526013429032427024950783833745293602381332106502640276703752054119613794725214712469143295507440083070586438058149326132829943767450851001338346531665924509691308108852797335758569961131802819644971848818444320696675630774635466409234158210724860243837304767766636933857875436353155270118613502352020759206940638741190537253343873881414762029903959038061403600025823199196051912768996075569687496537718532226900177291055335009709642072733456827033050156553741623622471564006555314408069557883401273083979128586874566841134758012165288463305111066243070181970573544488868741766260636497391515611567646204239403139611379608646703613631136435110338271032088703733772442605098434955389913445512565183465466382877228572347175002524959779308507016925001150366160937853564279789204834736254741369114467279385225586450465088398534100127466875378327734904753242202692639795574647915637207141073094681964883595990193674077189640536799793495169056369978607648290288393622328580215899831050597568471505759586215701633861301300869800624272643764232005051890296978031981256973322217176944608277856840764790763210488522025670775877144173472592264537911953827037085730578760280460417278708729978370393613792314961747620598010820099288939840718184532385849825698558308040466504879324270626094889518295995749222305576368062248409672728677736742441773193913138354569458090558120423691243490393689321695271848627406383771443972132032531126167840801943638982700085826976883193116254875754655942602163491764551472122234205343745914270192626350452804935282919746734596295596380841277593384212047635691060681447163273164488902689804198742998900719366869333666006560137453710519060913650639699999295268476487344577401689454221007215257713232138463121722693773715306920913381296440007568658109135621321021979064975939324561514180579260150321489665352183806482000644903388633696869407964572722094966166594861428766405941138309438504583190710797600024973916167339048948352284042867811038527595105808519073428255888791337656871764255296440812863261214979866243766558216066718780089859601835255578935885251773497019742980209159996900558797851273163096992855648459088406224365130925460832767296089913442021134347576548957087406125160971489593842419170254962202229836390770435149554510260161708694239444525437958772040190223405557593932452897376015071806235611862161312417998325821279795349847541580817861809100172685956527474943969331875309778586433594670390191363138378646432000145728087097998744388120007916410668214703340849788623598746286013990748280270428292539289569323201522454643026527023773928370570914111349362264008580695481615336342460214419735141446884796911783516031772952448555172663503858276501682548814312662378148532714612355228402779165588272172611221214395186091918067912138455710968974612052553930474448701431377990225122120240205551816392633224924160845501230488323875520733872802164090854262885285670142120593579895313267183456249613813457239695588269305360109917573306391135825797241434250631024489970326481366862412548797447396156890357174740664162300785985881596508200904353066818593848619101628475155593185598510484599780189096599780720215982916064794475812878300480623792960271609072353618641443474567005821454754235580683398473629486180303532081712981647205499385177241885743741542212490211656285143866646876423994875238691844539326781554779514452030412681387824941720060049565069810680768869140793446204898391353806321214720521904304200702043654802639572654475911147475686989691599982025339583337775811799276141151144345505604991956940553308079386189327764964556389234202118062391363817319137694356905901550109286989464000193128970122717239570535251274557559903977303374557670554164749942890439395752143047086835476141015519074220281212176210278926051046982469222862607938396125187626654952399252429540975820582924627550076851749417290143320449502151063026989668716545139639409865718587028431984823954524742115574991461585819268970835642542773865132751541223133588547268009387049638066448725275602278786077833737186456836101811492237524904138876060194735091829469830175769782809031716097419038264361463125303046425798675782270648204774956068433776295192907055655863539520046035764988831030659236871887750311178107989264600625886843190614707378936555713724168803571333966469428214730908555629850976919999844708181621400179834034123920630243512205784777415032693747932102200998933983556091453393754040085126257727527773934974033880985545778208587317452013168137109636397092354615348748841481583097593667348566007327223469476133189865048660492446989383541449453363361503973412226652139284658914268064523520561876002275109549478420442948069066627766806887427890115996396226623857682621108670574072399510714413454832038956341628329189653022187579517178427403834711561445269550871407267635860328449807221065411469933567272223425652343251148808428712466603248495511479959749278707581557297089057917878059069008898680515755528600004523883456932609923671127335505607315544678228338904109126751010532762980363026904681143887940519286487858167127846717960600228978262429961823603430704673827928502554381551906640637796249694934992316214242724067276196201660816272652012581902891275196157271334076290277793478387780671132637162160107744659050296336266447015802928157332477745309869392408852687695088646849522782976065728815850087073350291884878001382295952507209364144925660287235360820243872550309802092056927538235612293116139783598183954496473745413240005327602634994541348173706157661823382792696564276865560686765707194540733817762094482430033988684059449184719376580157319041235004775437962663318018819239733873729652140062180103835385265923769104487388357644173383386850617645548202988414853121137903575019552410695880416679408810129497280805693874170432371005723493606070994490333779218516521748668717746243720177698110231028459849613894405625985979458472248711659450823159713018326821527008549267867320137333889715240347337032390591948400589409087348202022900880156358228101441929069489862313997940799815023326673412856596267515089442262833184696987861310905117480218599929407130646591838816149432652102304450513684266026054675702235508254897512802553645737386846178699430372521879230908985690939908763389680614508100253625637486371668497866667550442854518662433008552530764487609466188445548379742397835187406370690785566360603108825672855284218865654609010452934622331155618204636769976415090325291617410954659743811012801196864890697126296324130727340012055532939889914694917969951699253202485478581110646404356055067542948649566370763233902085296860794162561233088681290821745788389920434632199434965194790094905891597573060779380893425030124535981401230907061103713091479501440935542563062441211963932015694522312624230879543747241120075797115030497909888704891336432533271204940444160100903507041225490313982305760577326868881127794874659390462482100574931954611426824954611168476055521617483526124899158573159408915104311369516420734479102366633499764551243585187538961131645113382741823549206239195826835633169989560697753613396930002873909915037521494847221897027825092513322537365543364772001283641171581654175419881651356544103388633204857476874970489299825805157300440522359567196846413609804930321411408400562578361116681502871324060967984733416419538619970617454884842459911486193743135757206559693763279327834821618595183802617543566871724383904240108197819525093142265516354444896990464374132080511392361802751784212752247606299929002827416744317453108391128644032498861953834219631888396468260628940032780592809839112909277350369123143091674530959971007265849855031390708914923305696042758015842914261309451047205296630326235101135829669675849043631950300064744412917405742138547221031554213854618594755828152414519456747179013687242006449130460513786333253666207174157254738912988894080757419446697357062221230926749022674403094767777241888594033790891979638953753757869619253204872766230297533026936872429274276315359083280497532502346619819024826028937371337370631143122457347941999373568405408781942256263322247224610318742543820892652494617476506008169400944299990971182367561630179009191132517522060290645613284980092845611269623276609136107656316529307981933745657949821500918172754687598674699155211805323373474530051609965210597333699331316499168694055175172891307247110522815463101586911774611682211065583095411915833494620398683793285152642825942012306895809382693913196685303832839294559111702947828790988529665564707208124654143687788991218784009630667851774292611647080747751776718984947311349897862448074466405989058269321334082550902515953660792338453495791632342201618149267684162966417941828740776095202691419489511127785181989367087060237463117526389008771082979021500392155158026838365959121605773500235495212047146297455975246200032490149117566926509016042561893969067117293568424994655400111090444589642068119544119970071893894718869198172438515009046862782981484664234645642118131254080180221654831836373858976732008313530871281773122351477114718009279662590514078223104555611429767945402993307314736988737959427330854110545160673491353865191623457919728146334052339681839617370919582663384670636635823514382098104788771889306324714495289552273868596561510718875383635404534108440843912220946226180489398099519240082650220840845435423066658736878634935701627220859993044676938883099896001178431567176198454191342009919003840060370304186411109528439442724918318890915453722785406508645756295020513057816985357998084487109392494042543733174044319119339600881481983711440402314600430724296461620892916093533373916055637396492875364471655125562961779565959120808996105988640513242800441869728105866614099555621215287367560484445293022099892268906777642110427620092529312214028054031134526018575733866626482561552275860677520307353609920118481193964318622060515949008383695402932908955091337455588790520335462839967492453274360450314254385225248211679507505056478519408771021049754601659902175690908061598596370194828827910292596465340732408975452622344427113856298355151786714170506029737409918127708800693916669166776369056254485140262342675037598143711455801112722762042635380790472019819096992095973000324533319555237739897567830286864893225109765848869372077462066054161549441926025905224459222178368526743015367442810686600909952301393839953551559253149660692822494183136653577043744265940024759816149433270599587175654056434939175081399449015209091084632410435120973092882724291307269792399650833723897986773603527490573303102784272890115370547194604212174298008225397657967037905977743871810424452469874439164067483698330429592760260683047829745232610657179532930695344208717120286267147088327802929167797079280157669227052492147248090133819692962655335609648053723946091569628803464869149111769060301899369192273703077149890446345896526078002205015094676929099122530040857209648265514660574803692409451434138385956211231595126005156659438740429800660663133776155034561880329233064340491226963125926270711984467356005522724467298783930335524022365422812389634072112393782173950373585334542259592432945156419088066447058325607410044797943002116154026182965153690892705256783814545011944779253431256398381591027689978124969673094116885527813387468250899872952644601671849731642597091791348618087749358975467165732025822065165671194059582342079287084470687283090789227413288511659880336466954157753765479358648584614796787009233012514474713621276095237037546257128762765589196889804113923613562502657684405034850817445181887292809712126512664452861635412542098211373498105600449319565663911081674404347572348646734708888359913658663459029763280714104946762061688434518339561507804479292984414633470598495399605478163046540005948815173983221641638770537811987917207964625795526271576384742618586577814946612547765086238046800820120803301314859914180157713820513423658185662474323662389920211102584991936408211577365007624573341547389261546331560983481523068205073574052496959822699712547044998184935715029172588345876393701693405504625183211074896243361852750781825999413323652037586494045834818235339409308235303510980491066093287200354911795482768531094259327720436056495199679834869276225814045520592903029821705762141910514555004806555930844676626447213537400061027301394729228764174428593645946685702472666656233446695896815066497475916846013813316225875707807061886934270629243075419995546908431915125847244740510593170817658939513459501106960259467943906003359382875306790101905414882323051557022068578585793047772946554335264903086097743946365381107181938082479219085824634741183255284077462193567882772929775181354987854675880140115998462008891580986724994387831515903787518196542378153843318009328539823077557655317152003929238546897640284801240578120313516207553691119108095904046565209196923045850190901572655178219249017223420434920082505285184833631734857736272654569086643943146889407609384235317899240544370472354935799014758263415279089767268935875418277766349652307548745557935365105107950406162820380392467675688124112349951889454558709926603993947650080479843358920597914713563847881779482873942188762879367397217456292904166180820761770214496800279929045111753120608639112791993365475251558791081092192901909701133461562282068295292756942808856748575161530815342312924299333638933752321074251625856031035612958164674159519240943264401329382747192438992849167452312088350465523862225599043870638973495018638320433043839800442922328499239980380508755592800724365335713807521157565746939485679350881751039235996171982182564481178256101568125725378398395599823590872293914623819772205830026072563190710074728366286553935525766567186504296617394230455652226321502385543658881683238660307657728728331931918058760638862375805556908024771616067007500472862247867476707249482686646703172558375095637870234076592961230491611768317321379832208857271265007166620438653902998589951927928636698999564556915896266068089508691658363593311202900431976259053227228793237081722586328543501240859173583187668026577151103794851734204885926920570208271888515837951848405562122829280226345130444839272632133790121305681259675340947993995828898802854188372749065378831608938153823686657316126264261204942137656499468046784727091883431051818581388984712091604980206127471171563560638318780305716305721950855094089509603392290158927920538971199094430137037967135939118071378402313587507655805995841260433760537831048893376162366686511508493896724645067065568476818749303003410630466415188368043215095276563236411555764896208091270615010955710934866178620786697833777633844142747627935102081247940655884495763622720092370952465283606805275286193692649285554587086207975219258478192332956851988762855919515934422158738189097438821106909983426304708811693129549220604776846900327721755646405600807676810399771747245829743113910666411991701854359105045075549318100379631144633379668277116341586660844501887709633475012334674043883955276016144786208933157237641658129299102110276586440017104405720019179046143650833642489982131507328703310931746724822785030782492429249232788192939855016767708304569382060465450366723393994693324310430137803373086511719650077879813966649322354090167503517000025879342527171111263345641282055536815725808955501514570064759300322663429379051576877847331629048308976274538206025709882211142408475849914678549836728086757097717670401592474546526921354832938247322813858937318448614792356089762762202894720566811940365886097187649998628476124286685972097486520855329985319355564839284514151118940350283752949808229664349146147373348984884593206778697941948860332372585044944847019328788164638819713835997301942772428816970101767286705423281850875961664920800951428867626125173649626031309832014690954587791686359703320675156894945617933224127020989674498294629274020171430419043423737562458543258026648907189555410540719459516906503919120059112063963397764565054570257716603728216962585904961304077741206748769904753533295345923315356674085142559629826368322434056681245453428139922470149436676233528651124094831055130630129580015423995870540454240200729134949723125927938799691688634449960804778980172039100082122977515382651249760313766767664692298515118861011648699049763520962083746183814713903138856840003816511548579557308346125099439185314732190959943654862659818610323229161966233860222429943029342234749500042005531305561585893683589622120615212788646798085623075356841563808514766095044381425791972735373221302171969038346342783821030600732365529987713302975926862074579056925860798980091786054771465739081408122033070264882143860819831815196189828600867223057113176240539214690138663374610539627224399419783103165909545798784113202760540366846165823758809379651409660541317055122188343944275378146102380691598772110903956196061868125275861297214205044453020834286237733481829325230698201207164738002125763749735694997702739019603156680237344745047625041902575862591391638490730936367771050260314465107236488348170791516435530485787849364479406642718646553849510408182087881887636491154986112297576146003048594186146746534565136379939449517847291960547697746576169971034070522578593032379851245448457753355238046260558776347257057778394600882666197636300241217089942945456667401470365509752788290607402653643830444690014276129941839026480360078830393121862982973061238071949208391855818891358180207545000743616493911310927967029410047844610175577094439678941096626729794294971201807522764170499842718977155668548869527296382871471528681815392820322640928167411221955969789599863840899527132177707424389309701015217930601185168445182232640068467079183867204295656516585025758785834195357029159717074033014954606713066648029234147212566517400086244104666911815729115525955253105794807326016875125574196682738664287480948276828393679113699091104306877954302899464149563290506028580805223831691842887041051277273218769738421773150271957551481681573214253353084588478780622399160074692568054598023180467735400300956848226042830644505810600916386538758558778669852017036313628662216595309497991237489679024555473713714200314223664716062217737836662174137129463277930819742470055841071535437385586517125316303720964090420565871396086594298203832827050963503176577336280974920062607440527414790277630592012387587592100474731772354042498875153730373040029606648693718475074267424712380292746478092955410819239926959140633928696740361412979586727826603119149767660513649641035393251933744743177563854400923243664290345447945488766541875716645489270399910173752068193432487749476240011040567474139094922736200952615249078213192911802765816218005144294158282738101557653087613477911841505028810307675680829410434144412768059498992712108688586192113220771518899247567375982124925550701348524706575954539232630801884370585275456885684738117580894986452388721270848610341962485348278995069553841137912474752686497668921237085008851030209319502392419276305379801398420174721709885668971875770561152821717203739244326124589445179598495732648138294850819890105978076825124948565425339930361022738353808338972716020306368557191467564863716752329927687093296163902984772338052540174639321431287423599033307502169410079186565370422304110969389733662621886584269303943662729610786613415408463486197664360030183473836740232003577862636410626931193876200059698943181740413522714218514729798780475538477717424994507827769458406618333721354355688119761727898873222585572308532190801454651290380510766059829337010443257790086122498363495606335396981959171840194541113576521802219913297483343371386872995493593077127805013564278854338042264090294142501461081869181143612491428639589628155185530251773536726754030186471576885971127334857708263586317991932491643331733704570968467815599983636751408074294599004553647831791714559377693378171013283536054613255278328749739740235255305923024334005225520973694193086510976308394826228854206806211775144751004844935272315641569840620728091177507684684001859320361518140069142860637125521139173295536929006736726113356746427975522811091372386777310250103721650918389979611155376106403995288638085656696487488752141343157944035259445448738645180149232404916825148626842100517600605336435018086961818860003652098002786378632419552154764971977719850709688195117133061886764779745876328813386990158831090187770876104138781711376519412806100097337728060040124729887117427057542396851391453963774637862883023932243847914246313895660841659109740066799989960688673248540663854128552787603579817624991134276395215614909994930465891459526353880952272805778732323190891470763173661649238240437953515916107081541745346259208708151709656333655607140182084271091903038695047443919380092597369309367625981275310517714571430907373098708847373993387842589688224427165217399478339047420355062879997445554008030183799105001152738738730020760357303860770653935496118274907740260362074805661177155063052465612144046078303664446030335122488936164338059841836711388354548352050131997893454500229949682640978913553699060766660870112413435428602408906861313386344096254540305206298520280215899707296435431235790934642037776107768529002931427952344911392299375143554554002709966012997437559950657210773143872415633386747988889040173796367685376578996193168941650683457448949375572793549847448220142489483609710032642444461486963600343124032498006601054060055660740867144220360971416533264077180482007136183273606785638925628881382588239534773396754093352958857933760802662443001347824443806551942749781806481317440236874066986824012671879361297245419879405863269107499594350096667144866218181783322378956650056558808780923061011228031231168252922095273143384864834615748527895505365494991706839752817802651829642987011659618940225661968259050555068086437984365433071840118748568221515839822502164398477037844156249608509826244643066896003437773424514581910540966482668582319348643419409788453079133318312900357289637675698095275861680982216331128932158409712956436310180594592344766512606684098089686455501457055179221369848541033106405229231995140516490140004043070475212504182919421855853594368262685378219700423049038740721475717755516627494362903468427361270125206797700836020669492495600882713678741017424988115705891298986073054486219475534295994621785545814621573353049661929069394154007663779081891707663215178004149432295071153152529339514664343380692475035003858147647582779078114001607709942821064814692091496466155695331544319840263809129007922155932761074002913703240386539018070896858731386896103486749286299801475252029285922723409074316181499785898370812933134594512621987926172330923569674352847186101144767996397243491080341709895702479794259092999796144935887568705888664398470510992876022834932053630876106414736438754335001322976023436220347582344182469794499937393663708301808299394890981281878146773013484829292320069404765698087921752050819283832754742502033828305676021692636973893658965005168428333741195316796016239920638466407466122300993412361920362221530499451523517019172347658230033258609339890646660878832806297481848713920481858171166569884184843842798226363305372325148189443860708631479774559704116626186523239281180269453714526832933429047719797346549602066212526501620059597413265441222200980238171842081554179343918786998117665130510762744027993603612984731970636798585256036527572594697388283991812598603597212694336854226580996166960501384144894943468307113711858315963988650361830186203960810233299407605153420854410720247348566317812364854917757730235529380588955071696739594057125539585869620711066336920595602678123352614403345789699226073186908727933327366345513846010189037719175118487218125654600715408216214069155422623828269465690394019470166933905016592851423364811126857905094905741940913234636411663019209146203859411105253142996279323473982118189083378453872594615220477934514310364610776283395230126048870013313356588065237784261843321341464108963240615629347711642506410916888624518903422989763900483940485666517937113811426762315754897689148892886896809167644603876791921726801071721844867189137396824684134271085722762335407689693773975309496719431497893639941175149143964761865188485988888233420853876044467214540559886088356901686379113603674150745286785005546824520397433366430757139448534647480219998707285230126941436498964158009384513007729075551650582097619982292021943389702162892406589061652416004137760014394721447816513132796456088928889751702158302834652689945850841012738615696181895408862054468378523078961323541054199864889754358003782933293099287750945828711698816963746013050958169724167366364418992922863829433452021904478766261391019023433380493657085217889948134976402218701412320508560196018954718220022957502083166763914129071960458195086764091642856794783931938920648877012778061538995695314919152565601693764962838245662870561731232564185914277868779700938989971920224320431331011187824222746168159979204940463035103322046741574810276310160220110824280104970802337409648532935590950734194008007756490491637224748442517869131472236155047444706786030558007908501978630597848197258809293513989729751464879760301694286181722305464509375535047882698997172433029333071849170284652382190439287379866438415605858740434898551223328954382749749983936195274727765166607770805914867135745365789309969692606358076002353729244675747173725564784740318071266413042734785878584098879122923328874463800041108910732712956755978225490555055757969069732828679336415643129281005042639547805598524493922597927007829537889687488072215994523056965844945167520889093953986041436353990121674898064433041488678455050437223394902632640273943588634884137814740127514247461755695296870677073782466488735447570443429522936040525498207522362803571629677807152404490737227333797115079012930345294727870787781678102349171860640009894385248304309513551069925857842471469296459468879174156880491366341731330054649827300085316548757488447601658149986539823185575681084119574465286207943138318012729265788974074502938152641172440655410438390693066148658829442405160215711160269556164151270802726751760053661626154313969369127539646883366639643367210067349355624632164491691761121721216517741239166783573931829213048041493745693726346673849432500567128353692683029626513922523867738678636884941218915912867382858548615400492516493298897636424726153297592255362745913739672871993801656675088801886971366362052587760473430698161026083083240088786227704513559405872216815340685609759410741445994184343517934845145423619870312349641156423932753111532186532346520777924305514299126474783264194399725459272065436461523246405123524832770727888006778776990520236384774791533266469462015649520142080058258860049921999193828639057782863873397194349855521653836786095771162368129794072266992450816511202177178275298149493901659196854265751347255723883235359337920129682061919342697306722020944111674864239142828028031695002197596329761448154582011510021555073860066519027992903364684523332144644249877570493599396807717930296423513686872021750120953039449018662637652187354157054157097537275324627145915326025610374773129742569595361377004708922022426496850111922147927983249454529026379841431936770112986269032622731485537762876686070372442562143982422922185294674344883306845418602912984125296675492879338742544183075482947989147082550635461310525517203729622369016753806989274189903018860504117657770405919483164568452625323266208301117352576970935975867814469551197305122142622966098461401952438157314488738729282775886728077388190022991312730636732205506227306251062697814259080593861218505501042070053553080321400273851990693490466430068340308652860084059101018161449215540205095191295723301805339757237554385912006970111298381427349323219117900239514281030866397789003398537650429210866664174521400658879473538503114181188078707745671581700782644702723640223661362718331067511162715022753686495974837363725106860626118370630493048349954021523922089437434521613897870724316105651079123034951194956711292182242164214048256265196911531444727955298251543184769228601819071588491774429562791922592740711054993195112978405367594180083282919429891061969406835886151637820400292982422055770167117247752178508193215694295527752003002018923601900749672236011968548415052911391503171343863861478678546756241123178702530447424985412010569351596143395964894264585464051030236933734835318969760844978209011920076937626752330837261753271885042070653389950693644583146126850091566262051144275372718021446393634929766494077301245294241432783885076139566916808039137174148136668242728597491687617975049100601775979726591904245419461346113365568795453159650701032806525991408628835095359642668921142228483086031292278190394612488774013461346545408039918090148475071821709035073126070339799899450910039030132758290063937108724463812861459610178283066862243735005273772996692153784715915393897535421040116778554893220967141597548129345445785493272326648318251336575262565973860008858894545158822659468191163883348549218625478163210158266893163379312425957718526318899212307677836218249125095306691474095142818569457298199593694628390837328063430858467993997169974883737394958928330963140067542591135730588701326558153478464984058510237479157331919374002341922043607633663722623878226448123494323337503332052739554574525361524232877597445602244991664156017707438529826609544916388454166595527779515477741738923746760216313347711589350946996873080290082180774028424779476326458351723556134551983103928871124533906045334971773717535458065440604276170100652008841636100705020318012164082843800004353314261672331382938978893553348230694953064008537601689852732928161244835445330442205788506319635648952949355973298401851114461058668042953976432805293715771662509840753120075152829174440408149704587803034388723420043464515092417229570563075128200548381497670175435436559441853170400120681324288676029161425288031781622371029540618496288274671656410805579267980335744908498236040933840395483630474245420768260267582995828995545698169866372615732848554398263714332785220378201611297393672099711371010152950562468107027806858380689092864530630777086757383925527266209755273368722754685169603666044146426964044351093008501254646528102489668403030042225967284039573875424946932313748116263582245055111247092397570970976103339163558970875697404393126277850248318928586558003144406706649277806990380443658138051095907461325040785025164599055400046243215088160526262392443203996770593961433575958743654478713245497672550637076921956683452392620216893532697689893235575664109890368907852740079741848196143499332210031023061389929150329326900246097488308553081781388944896489825920949460557171812536677632295138734815737035199581188329251222443362257161969122683432137017483544028591871164046536983941722702533420663681087740280857246436540326928398068366336737566026148277515177137584590299460083206357764819593760740909139394600343594349671799729109775643953285399898640906004206898516353881548732205612069212918013659941121808386195768769846059682730670256889702780103863873890585142232380333415197025614082821080939252700014894716939980286348490462964722022507578188538200534127286567317742943526838131059371044867885949554041297785225354958995360996922600273747817144764189285979333762053172104374619011628618717160478814375342112375642302844486132451875601415784575000638542440754827216681216727190638662672201653991109975031048362153435155898280319581862261747189496804583088181848846922679294203477952788652598994503376973824461673086881261583002960906711570125545407305163431485932786469342769566881969454799549929446637722943268381203432907327504263803552262207164719349407097705769353430386765504200129683552218757187571416997771940315406410268045017926162820019130921481140273592341397942822379332246902794276525075959793228029088116771091280249014730146350148662353816422183241652261923191715348970248934181220455765966621465005669529176532474965508945957987655382870661921875910626791162553166438892927193569961272097912660117312127278616332142584215149341089321610866884852269668907231373362337279923515890259325887743662618465425764039136298016896111636284585840347115035746624926465711179444010824354639025898197336687143780407694902154243279987958175871013088547266735077643698022106088229604147312979922378292015978092795950343331297907680862529804223317501829479029475625770854588354827847381800195551348020263963924296837581462326319539264314736920829437043989727332842514069145387224121408976279500159424230391010050513895378803383708104644528432614702401084821456827839108324838352598830452812562587308154276540586797221135730988048785002809986495362941441827962959017860779395081385829933825532207559427161403626256271973947108963623623838520805658473585207715729916557227601279508381120319044839258918811064019953240006213200017876933751468862684297506032455692482400479514707058471073857608728146667253554886450061583027253938829602464922151754173181408293086658905605317347016239482748523400383335071991362005154946728165015933039075954980815940091024421741438199443246313104820906042623221119335789738358341412562048190067477914838313104195641619484128763511947752622712615226158076044212852366778100535970100147373417017778109647564445053182507581696002099228936144555389190125322281535193640128050163800597950738477867592858115951589780387842924649406632148171817341580734802229758820460465316598616935636559326760412473378063980357611433642529501382270325079113369182903018001814806331260657751832897733661027297750279520245068927755434330905449472451891632056255262643581897667987201274275490585752543012799898301454384542122348475710943170360580988071965492681396569270364801905032080789011607224709725118271392643631579558505530838586059171600570015145001791385105812946704714538824678217550826410246804702462641758266698423603953040740918065451596220962668946990857005613912423844694225264405902796436170754603765423776856459824084866185157945057542322677255530303356579659625596298939871336920879358086805477858247269139907047982143233848879818207337868060830137731909124362633279960765894471437464454527077421169224855303867856265196518004233255960598845236381361741882944235610051509278792708304152714866777260272664588213961424849839094402648407661220819764938658713575154647707766292764195919965167044870104173128225118010598463834364272907613826127482230327183909713999012265992194766981837978685655350724300530959913927093660974600397248819937189011180173375505607029102385703093379463162691998306341048374761862632542784366827400815973890495906165776384566981844814599227228457091634489807489728784389058699144919471541300359983603185450709390054094201341999067395558201610836177989247553118762633807521045623089308359070270544156299589827627132575069262971605014222163645987924187140431306614898335829133446825985689343250007440943738594515029969326876955084267296559515381644998205823197785120863756309481005643628099721341568545872910630098899642432998681121445086830062758150050255507148137771966482260944567400937848792084427016379448198531977927859981852338348978787812214834080326787795661818200634418809741852329947271701733509088812740496219517993913195831387507694218751299337761166534452229976699518433875409955453636346613614464003258151184379656779551293411579876534216147785094110779681618196043503374227281069837434862353516424847346107435123080949035371229013220087116314286521973235817139723834216012389482966417696615531838041054293569635686174812200874768706416246689333980241512694041827746258331537502288121176459277441306090697715682629018959760512361822270196502891283334497455363857597927196496815308583950467592783518373147458152709406096220656112392020833984269082893183463508026760292767624612497899553393572734219353060318086889878526362228181219602058060079354045403258250481416640341000255951353362111174582977689750628522411618833662774305591480556196348553337433964060278593044088390338492229433975081771333325321381703599467836797838968309544059004838493383379873744328790462809190931241796475207297969093699666386416803055308612225863372300815532219426972957199592137464483617770199666018759192931998473312192218918642869139103969872159081059589389167138445834708490255156302442003722747615403178209478136537300960938617122899134506858952058222449970567090196443289132945981801796244163416452877521847148414640885642898719096877542219460025267042071895662227792607402500792230951738782017268811344339788799741289627712919783396758014151038539966343548802819913196397204316781992067661781614558084482052650034858006024431608713471649652225890616425523643346169687957010311900747367815436375806466139832883960888207693829721674505132688922983293364090962428447486469317315063078606604109031943480136966439223852771534523850081740602507811687127893791827163253096904476559850251818834460722267895142428948901675543233226266857698273181185919629445819755098576884656416864374287527640591257359481305870445382735779493935852248320042494821202733423775634177715319858783108892554700100851408750754257182610742746947878757777579778313314449197635983351903803705108196330754537168132907496032073321008938082135572084868276266845547623894137597372585271334671979045691142566463531308331579108111521008398208440150651434555969148481837147982702023927842049625984726293126308857860748519844643191040760628777827479903253004699885126088996711046494134093406490919786004304620287069739798023192018411448633660579102258145223122257627469583607994065723269707328755250491161644551693117857085772954430951382706136908784076179346586588981297713939236879590277398394986818010998326795709642228759389741911937402314066229984899977913388678710951568592243937672756698717374726695601963762494394817907627856868232509253156361921909325585420940767027486156645935462164907004512917335045524815996949949169774812022010202616355272773366337039024149453104676963816802860614435426690801631581527685744258534406189735507683291089709035583696191761313749939301158166749353536880919126437008360378412487454607327141105231788810347569992081868040449384288251585071606019304096361009037122946654638355670528384376638690820556432366098768293212950462010086253294141777617830072762004102321786324409385012546752349235889230915789792454274568811154674643394510338020214589672565627998067839548407687660846970483463334843943056690949373177549661375250892097388549977139118299872025788912016582889032945480437878546772795114398420289982152688486800888877787469444715852433818920840966345760904161321779262414026013353671764359355049041295669991495634736864000747614703043258790532435392654593782637762415865421743534237538115385781824573872056624483598148758358403018605801158585607910861528956006403986745333410981178348252048959834059701271166587166458364210749950594379643353595768334666217050328993410229758369533642743749401199725833835055832150568719303953092976424159497399187352552135024394838376641225952648768936114894430727050230502004509325683629488417456716433497238038247090612272174414878463196689760262384130400375894670242505176413645638962708251302128834287496112178829284347255416764824009515484696685658827186716732688528122959403704222511896806635502829935468707915232911785164195044455767171506312627301579840992484125668075021149979453851627446962958217260676003592546328640288823685679926753812279982183640463105018858345177417375614292760781094863894762338064196377249504221361778606994531357657883606955215533017388873144122929820030513661120148491700666835100428674840762858684339652619754846832047762841218124620778809700359170920995924189864809568965227333230723231805018970460409560733893279534814383977447059966286436715585723276887681587322397161786458353836382521425546830512904696652566764043692102531578284710568814428321313063219390078142325000269654814042452955736980090898549510839591639118023019917228002557044791370886429123823723538553938240489225395047275436005153151739716313818850281224729152791619713342688917269138888965655823294928714079765717044589640438412866079421529373900662022880403665694677213040518760262869335396090630966660427130997797615913215043379600524557482580655833446410070414349707892048638773035926413083446481202986891020333026253380867995695615053791361630701812396569499123492522900202178379383982346193704755894285882683757404352350955325357862293470952820771176428167516134335206766458850846039892090345815408831410136760147307271318643693689495801437242139465383411997226857965666920484847702816570246614769709836565256943027880732977253271806659510729988326975587851476311646654352735278271221531147527633864475938381623397635139966810843917009383316553622428375145564490542404868773937579001648127694891445348721348482456112849999632622928634538532701261911011792932324509867357523471891793040508265394386518943661880001259817485692652228241661556850058110466236598759599040549078636223060656129093653386475091553421706233466968175945940051144537155232532562211737755553433451128762334579555363085037555242504884802127710713707982822403289360529728792682466689340928796739401887357608301976876630074356830503420626683905324271553463590896995422002345375595286914164577655002013533551100676688777707624191598629700439521863575429194785448389340576535052038673458573085155951222127016893725501542096700598274906213240587193875342194940501805570804550992634065981580797936532789059720582083005632247475940462671571810156209299560702223212560317905485351264999394402709191562840340038968674607806387028797762227585350809554611550490846466445349572808313920754337838560063144459618237681861946288926183115203532363288869403920518979790886722804698732711094832776661864148786275196548775317806203535584742874821261832838449280548359164271598104187512637151760313443088817704859310694982501408763485352848016153364748444003946822946373307357452000350626106069970609441684035884946341571856367136762467269829258576049370765672390043752152562878728523170723375478660586397090916133899506276617724117636220535761116917123774947980583293319406467800658476809276215821963765673009934878122077249359796633094069239921996510169711953695872510753786694699940291889458573179724436415107142651921351571952773172662907858025881554503029992431287998386616077252136867177984438319310735411263284894949418477260562705675964067743773354964298167914409403700739312091791541150312867243889437643050002814264654203165900499528991467290906484491551510494068156668651303035512835082239736699824717181817559218788701072375412697728926142985110666122622120036251038750172649851865245343586114314214490427758427663132990810763828575710329385443141802471244593187010214245951623463607502109085096662048293535504703619970413315580711344400117478271019837814092420386689530306086385136591199282146255325830396696674577802572901657648700886661399534626385096783593551368209373263609655593554054681800600826414645279359111837510877494869654027471288035706741266169353277217834872639583954433164890175569104392767231802682933013840894010272922813485593583494077957937965058645298436851990970779017023231380386245851916393499456779012277002624279982787487245561303222285296142875011795999245204732405021871544064474609526839997897826360988205071407449447222542042353175308167477548071367484642070034426283736933698154898860981604409693713695262386240446619744674835196024170493507533073464565500181394749841124811819455846276114643175547283334767870760280294693865130279070596431925335671682608569943733271513775403092377643248334871519724684752343275890690138373621988178891025657736747189689330960690623148156191253947192660608349778881876252561578310753221053883451080900692336375815861719655333550504244638885279901942549497651219985120026098029613322881381482873020039360888815147616988641919853305324849540185876066069664681114558317427097124933305048639791034399911837244901549062344577320292369917631893486049645636091360771478165532790258138831933071446132622285871516789186806723201665876017563228006432129119183702623341278426638525875616003230938606810442484573277659104000760083832779806473374926480705470151724180344094782189178991205407675232543204159616983291486772112779681616122276341015331284079410099914575026204632007815767620489769733695847929381180741973841913600023081759075474500665660364547040980850233765501258458344159687255047571601804326300000692975645966456884775022399111076932409837832090331667776312399065528381057826728478850449290207062070485698897689815873012456764622066885300549317478731130360872780710789447666402641538851150067261793398120842854352517892368274780417008632484172175547509898358525822610569398526489647915098407662172864220416037371020206587743901114476690803095337501221558906177789147192380880387158508958768344059631728810750796856823260265410637522371225851494047060610309028924706111510703095340166294410729931212231132002271388505665501846809951674667903376219103685891776045266646123774279353066412491264406194792929126504747806826148000729117379286716102306567373431099949366590837065633678285533119163728626135191978396421586668597394578710510795964760046003323112905235539301777178733217737625770248736952989043855298560004244851397433758060817814224550884677508095030733308558589414239939047037948949366049417071389953808302734689822371925313800581996539186564788642783397460555503205753448445606226741525526020591787757341688310789724882805990264121721792039705584792122388652571420360785092685797794150433659418811444126196608518028934097869894590450957400216318252723857926246987124857460976981734215145759280222198498116121683842306596900506297005557814974552461287682712818956852256877117710397996763952360573916198453631948785210533819832103910713320834026899826200229597737217621158744700299993117861025572017223287306923406483400047650170754609439847947819406526566498698907281628238702196830125918533420176678818542205605060204939726255777220029641814035970431242269564667236020265369919260372618242529815735030477052500062618471165374049666421172623769257664723289160222363439054525980586297943218237553953842627898711104250951703744791136082466184888778977695382224410879408983781843961756465864226538109988751696583225246008727626261862300226256195613523151817295066774141013778386715591821726676657864573372432848442711141164282076415062511266261667303775333540009856631948461621796142452701785375878462735911741182987968615974829315638779499002015581120165856688252399615974325721186433284463718707495877496385784603775798957407304219038340159146537918541816288648350952210255551044476600372133642938502811089391800604632434724562608239430996595990303379083476663734877593580313940126356662316848661280661589217267047396928375457171814395427737993486378119023680230191831379115925874992854212919529811452002761934297283903687120868393464874383792920113728078681190484640959829496308377909211307326157241289386909488886259177013823302080178242717352315973402188784611457704134262108599278801676377014523076081091446373460591800463624992895985692457514231062385149314891395337694445064236865248722143410910520963119542784091563820238544696267633776686609212804762649694294803633137716676708183392282467233607392334455098701371850953539810343206558848218436874149122614612419123152107752423019215073039546115433755980572828187709144460638148627219128685624650486692171811686323561954945120337084757253341242214649969890659006837276432923471460154330951122013606388898199234682779217297400367305747364143518228495485887514914955419207053935638903447763560614201396259640741181186911095726892319226944875858260753673507206428960901434347982802818532232105325664904387508227927343883976403307937167260820135934504340902786755377519893798609396096605657384503961336586138149473143290395298335135140924816655836587909075202257090282246817530496261000262445195167182452935256218061949539387310455839705980138858066016660932080956757231381914404222726535517618738518316324905168500531019864853139260786959640088835304739301929488312311308253080141293458706745840809611205782331102769439522091580055929227956969926514029671686976769617387359776670323894285704651167916752176952587242501997606714286537119443193220220217222242945858946414002664635250495479733559271770023487003074058320382835252500986699337003769193921292074846921822316520430722960552486889811304104687010485895027059574438858324358284500811096527152463263812389045897168012129184374697244007372667206195842780037670423394931993540287991189800134552957610107421971538911054204961109817970917987168368090911513985371461849111470203630095326948023428678627083049561963556354759267510417285432205261140407406366447828825358844545782791331610934059587670841610440282111252767343544037036215192851041527207347925602912746185705643425361013715193880116133373408210808498517512753043384191969234991930299514234554860728221704221777193038660040694580962529939650906809585011082797012560020306610558629215174421402973377950458694944874437419435362728060212780852412987501609528766368923808893838294368714610168245975945474636427322088913844738052696648362476785194795659087645281456459582556572510534072556203545594885030620707760937763453463263071972548976284907612054897228648455314169526857450190423744808981125333011359196489214558013220114693234748031371862117247518425742333841620242355199455962943739294109602121733643308009545504575851767067239799816463841304930115341111502633985406339427878179128637200853346679293256361062471329486959585811089949818412171940984330426289418925045361277423595574326562302547980876749585297130294612207865094016699522092440422930710166206944888778678344978373474634140591562224903172207282219068245479962540853210299583646121386119673994235992028751849967871856257010736840479992875799143081164817570311791017668955784466358309611388976968327980375963070557105595809295069468269742431310562557740729781886338954919089038974833833350453336345810357330406669725982278613874809854346603819962973341503010642859796776125459440955066386477930046455371360906483384378787814145381251985185372806640524774561721388574641392212245835040568480195040978150276796608913620711270711215197919189173721960799025399974541694870303605255327577180997595476022290484801184978156133846328726740549653370859445204851161302310802881152176193420261554900618083203911488354127738456374600649049986370045330419342053837122705398179409345067608606177809372010526841261127376075342600440326219357040891902919972271999694433907008496774455797187806582902087150461086960238877161497806763229279120713509109157811977980883001665212941392756338090824051261759120404997491786612560388526658980756155747731573289409455814546914702218308361963529364941716685887213409589655940532121233656172326944997412590646207379950481292527224368340519465868487899447925173239700477446697041361285710009429808726392989950955474480975828729904395919558089678338054827799007152501432753260096490779263748040110996642295483506103182768470065915164278875014860073469884778556332809246276785193710920607840504738833772390179384905753374447768121843282045011425595656813843254133763762474851968907052647541683983273261560664867538210308982344927914011476732005813782243021900178300956006860744180004421571128528454663821440119839608533371991064940154391853358721097599628886367015680777972703330949633102811861898081955508181413740518398919535063788897593479721912107841290592924726929038421285574970485303814752540021895654551493917449007177511503440605479847639818932167827610345382384810451763745932556361559433970478065803226507219713613415545175826044733724160970571880796920896770025092834364291560702658163052322838757823511015669903288038229875346458509906405490015933024169151307337652327513844968905962323094331762497031994336017309374068807050058392588310216418764344761561708712632830200644284131571513830456719973058121805920174264508658389204877978764393607988923391782935302172044508575652885250305645362907685262262180548814192655885442493680828244962073558773451644482715625206866873356858646307966513604072712655205602910091914075359404274104867269102187446834925671374542875813360466756605971611725373677997378069074626362775797693132426371171874787897702795181306095924651032462580374390399621911834769583780662913475695194053831063094178185385771396298065088147610153813654793466377972946648752062757312852603698037215765699601436267330999671294233979864373708210101390865755473193335810134030297815989450576164613278658058010170652619454238197743242914338035290596529341732078638270253933916396348422221013701070723653389664435198292530914260562833990060073856785330469780672188289646815195049864261415225091557123610157188535671114324158804579052729499515846407589795037004406211366207316768212050395223276148128366999354373962120611826528121739094102270681562300810898964630004437984561845189385702481347912189750323545212444417095410398130453030923481345522387321082301928807603103058551658912438664109379207757848182679032144219953240503975474552942908616363480290848612255738426885147902701104322076476531785792748864788742242312762800355148874784928321302882665162410856577079611225623390090382392608263866775475842671366135326932739673516471111253756072539103013778235151730368203424241187570480515757327967274716341256235571756813612419297413478488494282688305077348767085728587354406987345038676559918321353905722257823788088425601253700670328211452956071034681655317641785231507824315549702936256392588550931780438085060872702346970686099960163517820113479468828538288518244302362578201064937523706162770139199343712987081795819675418638599985492000218493415728732410110721828391767886671278202625373711444611139741614035231920097602479486254950493859020190454787974835735250252444881191365955645460366145665596503872556699203804934070203341121867786446816152538337789977560401261955878774022000578774493117994217166478925064576816770191060754555281062566064886141556634105973796709197711168147066062359039180456130214644974066418224362293748565361047452517573260817071285806741252700806012646089735764605570711077008196845734678288169230707540821708189189700410593590893627959400986953422597186871357791915686961946318237106185028549735747186993295075365327835695280406774556543628219942869349362143399452687267707734201677468545381444588854735945610495652405408199700801773861278492069859882520830844727419994931135135132300362663139893111949909910494404522109271470313903716882189784580161530574347153515839840321830108131179027388790635595492125918282448791664022310241479529869944320766123253632378886602547280711026693463565219489059243063804110524475713969401986336046522788611543533705445766957969882315632427112262244609156404042182522820308433298641378227482956940404340217875376486201212760499153107427905857481524595132403171812967578090166110809791709292228174050091628589139869553290249294788597503043038117370783407715756897976921610058732413475087418308303489832803301736602405794712756533919227820712886142526864732339706085025135515171515413478125356760441413629127761377099101695615727504943421869281085213495587392790643011900635133719025623668503015673038789272917377667416302497014011609108608710536405454369530986958040895135522045468693304016752336935432837594033611763859586995373237603806816305391686861174751985087571200092686505135001447690748692099968993855058115212625404101197892414641642985088534014780915372874422705357245199766653489173384226153446116287620920654882673227844714318874816281433335567456961444192229853934472331920740985362369471245333197146324240174712336185578136193315010305794088833003034050024399979961563301323968291860795460895295649081958633190696614194844697615010899698201531152569013946424546525556292267592520013982012185276414439844274357125197257564085227967667574335395965474675436938062593959473297461544645993258536528551177366518008571455588607819659675008211074020305578302881846918036935341511725951063152559471093065419164425144412845996797106730450585238027905238348261346182028392299153858989649991773684731363093081961623476456661537767704685151559576071363969674238009289934161605927583502707941827115805879447050514385872820335541428300526257515055531357852868744708318732479534808557683437476939855363678504017762248143725783537525642260604155056235694925301482409990868055928652653657001975494776579884286830413593019118937756754375241439227040680035185738924956864807131414249470637547005785110041570007019613856517863450813305562287686683537386570646719461872060891522627522781164975347628220805882251628918873477030124563619859406089219575579395839443179042925296009580687100350948338252754947313436258484618282741734322307027028831767778261387838442840183163833086524128071743730453378510050973242223244444299439266345347469953641658524465341335830575816517279212676399771576272664097457749268571490830472951657960298537046225140941597491583951553091167561103501334000558044779917811842247541123644380629994968439672188216431933691600664854123801524618882028566220782419799247011682026805517976210497796917187092603538312193358995427096923477237273017298323234861548346728696363471114401301448775070162861400524346288598571513123426697277272945330527463139747378297613065511328152664435195595113548639744002912728863348241630429195602619795321056362606931846971384940004578322162922014138812570925952894298873808705091184951151459260893068677787828277267466495554650679379840219767903391169222802815430076934308700862105680682859782274830883454380209606880950345356059076348037110919430484801004780233264995950777269079432470715321402936675445335370968102104930207977198578747743022085667268401225868291776529935889958097234442724235085980850531053473263727196409404648843016226852886591085268212537517554081657336474456231899391553750214352137204313652207052458123282422617940570348346150925912047496168483170888564823070871537626075304216393960901823713790803678099954703738568305276687993722567514325336480864965673334908267863892603717769034478829417757064678382585473455486283003522772345333424390304792551263805598365946168132351015936501855073801762561607767674149112845876921657031043443735330913717939830870603035952403772699011620235096930406047523783412073096896808859829314774493479398660484965322846413823471471149315968063242058887830452537361738225969289146476105433188032941134668494956065526020945012164582811844994671608844158950141819958373013552723118631071070570254130577580294868337147962674118510068998223317406741457574682886985791586245424365318160837828016096062808300339594728815710198112308353942804556670563874697832141536213617250642795563185107335317504239131616553302635334747242346634688505163300281378844559630364354312076282694551821416971126754603256156855770315835592851001227476447777738643213888503769635985571521964305185078236663718699320524776530256655728736595357633415891378277032254856326007372057658384730355018066326446708537965723292650363348832718676120888749079497518405275834928074043207263393934313442959129670084883059038117049969135517470045003273001327257508672839202277643663925319599811933841394181270978299924582959001686787033860506785659088326612525142052349930922297665497670965522131923714472248100395227629642767733078650034028073943435773899684787547450125697994196536602341393642350413727237823961344191816326953252284896892024571123508467557560780880595364527552114500175910537675408770352775176688190102731359812343424408843502951039015076626475686573719018510008158886475844158752463839641462464862987925311630668895328289062579406840256970226611436650425124015656328575470199753155956551282578937388626574494477570448897593540372515572337245688795307729418562561682740226022034451804927112499208687295735338086265555822357891941991162676912800283090740700419197774560723009791918858504358375394566022238604770427377357905625726992816693689678096761579796432315359273303666472521812831840298599351322329322603031491061974165159091375676442543050042464386155967947096172677845320806044210761286545124648504484694957553775744052390382635220910446241926014105310054694978930973282303855477190494696430794304480817653004830960924525616818083331010554054077246137080481905026579348753673731220145980948426576478776249357518624391963670248075933562123986277456443368681139740115864965683972055215062545674641847746541053512918064835121252309138097093678453271891329054538261639250824465466891190604751174181093178235214413097265271494298384867439302008233158082279189066954690946226595620580953594499018670613620416502974336281501725121967217166029352096812922431434080048736425628584394612704365780263740926006600531681785101892114666313610721713816496559175378569167558467702645621451612947828289847187920874211312841357718275555295900042367520832713109953497954470237374259860528563928857069528815443017071855577022342637881581781322265174652542332671967636387370532995560516361002411727435377141698467565343534500306331650693165261711751110786479830728138727233131401689330112662959048686482675243345876601670613055527759900767323690381193651248009316584785168932765697323244024901247278619179920374126223719362746894089774771640453574558931642008647418960726369216033199188837056639155036587060550008626901840146110926561763007426455497886518097578258081378846433698490258494365026944112222720925953808433185355680888629899950976615520758631911680572433945608625118536743259654287530832536798283806161068945325336824932092270905655654290061154178309573815909738657949981230085149078257778636219757317287205659981018612169930372380335619781481441207385103708957159401337145966293555186308315887709236053203178751816622900131772161895678687257424531914866253956877282925247759393117019326898264700015015626856676511561943893329724967288566206458443466925727685315928397310693331789977250372779755491300454061593192557717021101328679120916398270321868508696752287467015802436885509667624450663680612380208618168095975824653718336756202589175556904088692849605297217338732854146222768216919877326323741222301185714330227525602694824935619311527881209802166239951812761975122307346127622443858110076582074490840326938847377663536965118617625381542136594666168842789118356863524140123630128127144374504592044408517543214940520331802583687161474677836715321110622982496993342205698806029082568645146555291727045567384960848213342886820808320397457814351061247047594473921558013686476532115936509020087322944077013596955127440505487373627390910585636529403021682997565045245790738306746111975042353430784970767327484672348118282426501773782224297190758956404025797396296205396013894527075251093723154899369207814760881134371134465882586299033385442134880653983731946475965925032285949473108495526340670291216897896141581329220057863809036734478962626239170506444929951440667031268640435917783026140638549069105541947820600955627953768965884814952789216173636059341355826520375056339953347814662403440598532167364541082099298884839164887211184578626941161837427912413419517822602644725592335196461111733494601973046822589361708248561006004766992697822893684840536558683095090225106935707662414713884350516690623024467410692819323428383574212704022782209322434764137352100087749846577247343390626614739731010762150623088258873450789916860280484500967343057517837568674140445869957412793788937788791441593797377884522394725674074489679555868183664124507794403754478809393180180475213585299745430153462816197435630753042326653594344961338322287799918580223950131046896511875081934719529158555459511206934128251252852011412119830920146656420507157224960512937315506961831419440333513398047375997794198402548687528399533613101070334628626142978241650268733793313820397335665885381811676352321014320182206349213184726646537200143230364448887520238438443668282087060760236818981151604075479512989534761841479837041267275688555350864314815789502493546901109681858494002248430562052027182745411617327314865463831012505592526004542614852937134695843358018828551123837970700278708940919615740496113105934706497166855857651292914476574066635522843279411660071130920052729473680446333633550974245744019162148972499830333785736384287478460504142555319675819167724849290285830199625479733301042610679742292396612651629528240956389867870976035113419578405440759478492363345904895857698232252659158801725140987717531213612030492930302966251180906683661912251254422377782326944975805402185376091176416566826003753645498111300266287826720716583142827696854951875851775338382557631819322453508595686231636940933532336071066857382933363439836040245270801311018570234525773223130215850228818343396298086792173238195320159869878083631519845090488730055666275711139825989763604007720108931353650293615019949675462472440497874664516807857080745077680971034128945272126344710632746532066840953526527093013520941544517053807934314783160748419160661966463810067228164084830036756786998517685057734668107805289672402872162404695777463166275417333377339613565255551859062595741733472561782048938494364388275143576855185791388211224649122841573328006210829012876309034385390959960690763791375666286776514829284909651398796683188399129444571611822095967259307874875755748716936770383218654622232254363862691882963323944405748928853437658830312445524960479683611133231304960679350282661665036349038053158122747594478491609926420550692588876956048261859634849360543726918308212223735305451180389203293266698855760589960934342428100653660590745224231321478794257136588372005673960880114529916498616939098551396137935542203818103436499658257311595970105966127544163428508932738782604001732371459779558405488089761700452865334210383393333678235140207248272385832828728323157980282052136183255559216709205585822330856360022846843482538663852173698840564947286827800103563764785047379529930308183190647990079145401789013834009054833085045845639320416558384807772143342657134526505722271151387478113897986102321425590454757223484554807913791881012505332961141125384347412076664256075352543805506679780919237758318386927932392159279689792668593679111233888589640721138141471250500684676665071137677710579057203717718039616188328320680258658396338829377967415855019484279447878357897817088700981922366917038524568315378982287272063534724066874782917755911614172002504416931623288124715798934851433022204757961609960388448265494933474899262798438098960259575508019962509753605253254754606620794848837149311988443749403404710425172608412674324243180146637663422831354644024524123093552228790543984026390655546601030152254694118146801318672782075363367954323449468139572499824312356278373604254325754535467406343673560970130171298740028581031254715270004154761730707202817127706670392206532519257605812435557578023258962033553355524682352404407177792116355679614858409944898511943559570284069517594111087614006019048369016303778858863903704542591955034072596153461866422474283915839908736089443981791106753889892122366984939103062803529240398332469512617730962506800223496796453930928883802151915795621114092436342403278962996219649690912443590504950710043828054129023640866202354132867381356949194967764521503366184147739612693756312241885461482576357404820098851185746794076515159535049337252609225621311768950972130836786042724276006930063128898091321167318884767469651895447194446719993830008477981876589092072466554463592789416525197048051374914284210627471010194186293238482860015081969380460197882856391089277246409986428993815492712501350356240587985867642213999371849530262005626156007849257588189937737885504684534087181364215397792360956907620761655727852298415881918808405527689189418816186579926295459069095294660654269183411448605822788710035409626959367338017402072956756740580220534887455321220550605508593229268430349878482372823986403344372964785392169517562890064609271870772691397929974275997425665256146076010625524673522968554588641629950870132069680186205406823143740505754525599445730390618650200281692888279060844558220552185865552699655162735500455689284184698530029539403043102731461739566786761490961787073597181816333410618399982378885992136142867074538139467401982399655142246870037551126481103198574927552357506406779508323760402153672234216264679829297625849618105868008725500718292089795470986398291506255191279592720776755762321732953572412257406531734031171591005413532713773309724745004079985970684492913094414875692664512819286904278768731218705455655861465740076081702739173078866674859576956780309041257950489205498596519658232562684666614412269511259638733022298559020736679749392041754108643310326603964755329791518818692631162260994539979037282837496820063835725555094304606211112851827851748017768707493688718711914952858759489844899071580176497196955624899680409380600392233815767679012141697844393926153447509419208513986749487727540489261754948017369623150099051764512338250169003958182969467241250739199127191292771845576446608699788903064636309261628587837984302372020093451498097950299298246194512448362467618885606151857274244045079589325911751995227874750005817763267687786674599440939879909898802295993783751727366889251238786291889126708803304298771984640591138661806684830696397829076836570801965203588401438473167053621439319859203808766215555894812164186432340011977827492488588423360300732706162964596886636839705129958816597882589601012710099763461577893846747625743704236077055619485799854242347871033304129716750893633497258509008623605358385373871792026248949199259473779389311344072308371228486959759494750494808712981907344176119469089510770394115488029987525227762965422458258528967069793549651087645979628191474745661371006732969515192228677289918779720336929767219296632826695000164649548231920927269123487534065429762199953600952324199843399770058319828150929938299782404932450814788968120804589025742951217808632723663879279688326791998293093173951293862435135968308734704252472487703919007537145618558238035725968418781657685223055309413164872507262695665707625968447488183337198980187231083737255338748478532790460986214273292377370512385786433400579246330171761637115586417332078942097221118728966176077327015096880737210438293046838254242362735351501215132837013008184567905238854806660743969283906057458312408450205358893045255252501827014656559365908165594165597942728573083361610963668942673080771582787521338124465352007928564765937074489857921134607258835397943815528509035552025769496832758001187881474317318599499029726710693137122189493360076139729408932073185270388117257422537300546163741185345775697725938123256982780824086737061993288596088562220479296893724979617341327433422573064206030246504974570669551989681392291678950527967579365124389723658099551589968347539445249153058662900761583389151546173401176020921967287822725946034122102003427034455268800763908262987978773960080269168143834844817720236632112956378987090791375006954577913484211681587297878506153392316283008145144191640726484645407201870209803049328910506023907700263727092827767606722383483002528896223477804417740413341906269646886648288560438808688927597625400616564233002729738953565679686930206900919286412641201358361576900884653275853769333358408376845504870269131803975918134231133467712982984015246925966923612381893290243174808645949969965478288030145798171686898425108568985279397285968709939894472553202689137411750918152424783316990494785377429229092920162377685499691846726400550355183237439990691775309911335644375588740051782217603545591977075004178980753035595279834495744109939628633902080153516329069954055243964993392123719884248718038534322546722064505259635670691626222499824214273734353008062283832955995018890260043214883872006169553608985801103014986793631542601041270543824618426520047687401600304207270356212447054245847746365493828779015303976299199068852017588908876993298076699380664174051262231630497253977650370848260017938628427571406433812250241175813373706531771619125891829333890308287018519122255238546177666490523547072199503480793153958653834502266880012312865733721245349191244003272295119782354547004974680123664274271596609562463531922676255175545503383924140197564344531256770124844479913334055136665967919538112217047105837847586117922536513730963282492521398825029203209599727302605089013838392062139809476408580449876635310388052304725635458251282869497921846416303368817079748221005775146421247152894103798200945702790768263736248902443056693408020073438177811227629581121132672546779443073112694285541606736858293305602127649703799144281365798032310601290272316096534476788677369068814740041304567694438371434934024270262234498839889233182667815258279343375304898348597626969172704187735224914415269680519112983535123214917376139448533401096374995563102423172723521278159038561893117747060866202280699800240470668136429804028698071315649528991087152366167122390184070422302381073473964848838344408749096250529076323546899879496781006356187245271524923947358798832052850919376721977125179623990816099870115988732856074506879894940096676363651530518010050380955060249404537432010653592211036687692219470390581346071307771246863909950803205949721351937472193995691322339749237822252898411719000551790731596748500418159570722645675965619753476741813759914477401910959079814129223795592749904100287995425834214967865985496827792244521531549115341281321727306302953481058202266497875674170063719910109477481782252167210868750966956300490801942834351318624911570490243437258545260359209220425885998457920517483640693188331173179234954033986501018757833970971893429435429624358468495508159415103940493304140909373360974019699602470860538036420129532227856497866666206624822542226808871565892291003016011425929992339373617676229290240328393678916254147633970936024010141842359711411203954239261371214089976095881154881913144548923002552984049714761985656078447156909248265944168214639801453882922017687102365256751066641930167618934669055172679703379767015741197177611028745251050867522927880179733685185040595605180662122978920691043125798625501174813426300313152742799279128422865287616979051431412922192475150787628250567470569186422833511849890415140776846255912940972547794968229004325577136569064129141866830247054287234970588991057332745213214421956655845824992430023929254887856368494628209603845455590085628064136119819276831650244113365100871903174834433799518660657430713838932693638351395689795200607989033946605333599416352305515937949782693105774831337272951896929515250151847527683908323767955421668723466936406362842887042758568591404424095630426388503534477867909718820362934034673972596132877774136225121281206395521130506258707167019884330219093389264733957851422378395728307295759029720140720198835138244370106282031900039786272062551111745901073986603547740048470589598627673313210597031971856702407108197940524742471766915296883014581800592985003182302674547779192584422011344130139982844447804174928315999912899154855217850842598895086589949004565215131604022405933435173146056492124359306371649561395250580360307592438650500074366696504144081741665430643553069267432966080058021841734226183213794267814455430023907147028051376142303489343196264970654548962641578760588832066791854993584420351800710367635116084910599180722240066923268052693330182467130445582599346763661918269578103834042780615329005030878160047580267437157554667202477875140950842467395750256619883268166886646142777900910661925194593035104703816246026787359433502944287951861746720936127022891839124062757547794330245058617326071220646318445594244376749428657042458802930034822778705402084560550616040312922139039676307700721955828916582909260793032248455777429654151541684921470541575201778092123778478551874273745873944534697355443195995517476756666985797010258839503370570871901869993054849377089239848326737319597182224688247888328529605980822523607966910729352049996126189640928566743860758935038573470974923838336330484009827778678045578358847122559022142908312882342431213329332749926382974562877077656333102037337677094122787984699145469060741607444534701172399364765354492610658876944421912712145213663383215315338687372660985857406874821059925069613119714912133580483289135119632234981450166951435250424528439980265792266157991813306091081667776208860530070060162621040658705314829774828872013299772674658409112629232421470559563414198023968076079158760337636388240884154917346424577435784683293825046205462154236331335615400945399173515150037378956896512632721699211983755369031711756356826922248082767184774599799694749978813805115752017642930111974255849437391431799131790428120985805405681666297701721462385114986869591618568535435635088677361843220879577895875807811359940414192109905135898074635144127171137241939987764055853778819623814580295170511431177647017065661736692442099445410323299960533638716791781408278064666935505580685112964235867171919459510366715235361556044155239460348838717344032412181568607404610793383868228843422800349771755001360019810866742072354184211335182898868775305469057594039465591083133058167403505934004128677380635946191742777456800646185850969094801861380102584875463327010623657724675411746669201379113249543630233133902880849700920097223992596824740627243007298337907957984236732738143930827301832574199895829233387416584051240823000379909468966838025621812271718766497188719871156021335918385250694284883451261335946642904376958547012969722379211875450801316373182360211411236259020126316371048720226604436233997674894823465164552686695425041493359822326005043702253420887626241734852676648611148543640313097424316545252199380061268486774214618787604156378091468070709092525073384301076807891407081369403437501125904478754425946411967022526183242554607204168032990104669023721180447440764132720832646337615296795936360511471160957949509904925199493727090346182927990778486163684372511128830665254095877485795490278229403836093158426802353391018492272364301803784651113845677796869055715784186927281435720783236364584595972295040749419535127960943340568606366973827911574835295164855157043196570065932840784700524299994590463713427462563303085492861147586552879361709787866146642717745964892410471928164374219143767356676492301663834693745715358960720136197595575103348110776124042505370646272182050924676411663113584033520311830396566619331262672541793642914429144130087058220065820400175189586310308721459677553243176024339142820091594993105765261902163858263953533141696819314781208936834946850884237011772952426612828047590367444219682251981263580723126871393757225720566190248837640644293430303301242049166447472758968363838599911947541282006588429094812058386735160500062571633706479483346891132964784581028533984780010256069594654363979169106600664496308505211945957849244074257807113046056463198111670273080392923140434993760234276787977794096438446520305241968700777912859142304927650007225196518282833605018118522079643347553665359332404818582848909528572588984488153116518962869964140796343671417190945555464847931634593733668177441064934463403933836474452397026904644023724263582494033131326930872337783809279390420497891743102058466773616083454806807940796369175636982841284704422862617480568331619139231955603627668481276511110669200171858287743595462184361314156671962813135541242042692931050575195065793044927295612976865189770509481437676076207446277488826429169549046719197797092758325869854767498360290745608426044131955686459886828221874661496580330307984012567842098787128021642633192272915197353039986680047311387782292329479436424127806904217139801427897350803950675844773377529386825011550658114164176709200500676109605130817032060914037729482484991435340543336477731143733993238103505236900377259053863812255028918998471854023178198405847766315772174254594140698026811005308502114047345911758807940660291546082285024247384918143371325585770482322506932471692089795724156500985371311014313687879596838358113911990901532434036951632194734687702047193996663956794904892970134291693813932623748361993698244021331907964497280297190530957660454682204266125008101516912957343436717580511012675376741949549330069075748023590412826530135727098848881457510917286223845257827226498136675851067018335241317028875807489456127085822697329973050364027364718312638032588932673909399373962196657689383379343191348988886317675756971267301992533759615176180671957994427334270306340008298989798564087874014684469510861843816959268526848956040791016996630339688502084300220188623290640620215958719127228908096045596320099730930046840989169626166297183146095359854218715713468090972351495271715070942120618850809922782716033103712159089306163237935826071854706825477342736765391141430474835132808294149402639806924431136479731054268292515915479317120735445375572374607170783606785052021614524543692478175623121647452486839631559293010539962500369817937715204829723354031352598380167381470026474758608256316736845427473442990845570150849414729757728200853154039649085595930894337625709064876270464606085459677749541959087851496891170404366703714016286507044616401244800113225941262803389340131798746125421507436910118877380286287241258010818394596466569657862991817046737762189966529519557158784545420388952975288319312692556913058278969354805944037652617009219939299992577737717944805364992684873626941791417130705343485729315612588854774328510013912065969585789802388810428365823423949950652204703876665315148939736033534033434137020695017455625123885658270806273862744653279515005277963411079146989926351037443264996129610935299812715032845076507323389311516140856866502062544546844682062483138628988960990008071000429559967101140846308511063339015391409855540961232731205657448227186862387732732599401663509723561385430290742021955541909399032879698321992233157606797889820500411679903945285401241567162602154530211303407488158977283942209571277998470048487191153785639144634292141857966882919923101008473109513679500063974862135499007239761145431055838589727928504407351611218603078007945771910615739122428116256620434267826501241910287608717036236701322297504922761042209535923740764385537627489539960619637482597739455098390028581289119419205288767874570059651497753980070610700192358878915456113974037036594095732449547252953751360395323168525197670563118920653560868584485472303333532921438514187643124355879269719738597433378744134304723540555786868439696643002323416191400129205251586959463560304784787412122913736254258842606814343974564495559058651958712910299297888713640590440330667267608284153442510969663366871101752613592061147290047815438250881697932175454196127821550378427585767308839251852209379090234593454876310269581999768783389936138509396678021388373226876183273983872335409531041039783610264316352438935071763956528280743862138972211739204874961354511299324450136482659752541920473108264502582440425705037358050589708710121704763655115352815653531521044121776345169005953170969792503628233441770833547996755845453147520026028298215286021323367381629487307159244319987370297203177534641510610608665511480854187056964571773179053757770535870407093190461551632776648235091413695320485447529374286183619548588501381852776794899687444626416730909985826096997409268020052585461307062396575315751829119853748802106243888820885292811516928775115835056743079984629020309110698800475513775969879153657487903661418245568847019825074943798130858665546366734309059599030400376124409112521191653651291318885409707573044338277716008459745637206632234978793982104695677908411222924524209164158592969867108335642485886986489874890203312656912853143642078286866543792635908413498482650464416705372079380442203540913769483805753756123072399030452682882736513379313062681793633888699229735520673944135583320895388096144971378382605205732802527432973468631730848338179956043221375978277929939381124189774457424232210027708481766914226525465089632766924495363239611727418527093854272381852812740503987167763494118818693239284807826113415637277737985178530620111351414788216726356027979114834179043154344538989440879615642769806270619108986412308068504879715033659074502602003479557093568984857553972692232972977649492390103084002428536011374422598139672929890588656157787343447754321724024101446102613194853288206413197369024181683422562580721278940107804963921740712928268661883773779937682044442040497940110402042525559479242846387854869558826974568277233670596034462535645178769762247578030395741516081662142359112941825239991707686174166527556225609477526073265576546944500132627367574025653054383862766050178057607917375501088064917802076174441721932836276485435774922332423857349890469608833199513451596814133002888567955753205000188956321278623841975151189752990193276831946750796493940925470505360904932137147401177991445572250223151329821886848093908964012092433511681736237207359723498960756425847030026124892905212601192230001131065661968749679198519494552704267949684194577017068184569891620684922458644005310024634029526759247305284933723306189573618013721665042953689074481168727484016049204870460700954384490773776287678242214943333329584723155615246089336139459493728436983735585216001253034246403762143724412585898735377649041153985115655463722225308380209012406187286517513789617926878557402334333167351275596619312050862364272142447892091382532239734285897223853173701780268058132318619802744827278405113074203133089932779862382271677103234637655089595420743372732144696976106289894463537831071993635698230039913353915396325439207948711374613061933339745459767065059689369755854795785985304797153379512218043961454784798465389480483359438205166075327364646716899942436896238718179230300723658262578582899960984330251805431702251856124576303436239077239902130773883558455221690119515108982736415875014938091360428035225299005070659597235168579371982649766124542674031841826446022702264827630609128644285472670752833525520918860645388098607690522578118324111781585081780153564237468087769543261730691399165838707012964415663378726879377738807433348023835075925009656055262917312923103535233962265808998324701957763910564280774456620537433694886349009315651233706955903397635879177454802620164009019491926318351351906054923153435954881901931253882072189138812187459267256979223721969638571751979527794529360870730436798880260774198244881724999410827236803295214452093937038577962467388129845369723787500180467575839245460232947652561537511349331799634106264794477626224359656630902405548959989106797273943048246139146852146607367201530920605525671237201117405551973609227854682142114114501175766084523705714493804527421278564454593769684385621057238661756294040325583251325459541713816229067716142696058390002756137622811466818493671336156389170780038445867348685661191294155484153797583032289341593505879337395931595627502591074705679505763391156393348570692602365272079423529611690850928817976526252245970044246607551842682748581259276174709240586471384970751918663038973569060788326068549190897127974733456492394890653896413884989504365127810468646482460129204125164764619751073005560825442819929321841769450467207181377643392127837517874790083336613174403212845448674431575248770745406932097685106780249764852223129928391716797013203187486370327859317798203053999590934331602690287094883515362383648889288046160668066668990033605460639209230270850383215137987804356194962256140908489238731169327312009225853885574068011842869564954903357231676224677665096183077017178123445053175454042347979422793117384562195910204993468497733997675016885486015564672548385239771689047093470238409887717656339090465298983741659239554392418516268915671442881347002337728449024272260315281419469239626130041016629618011414193534381018691527539488385500271659057222156467726836606238444185132683152091169279684537014715659733854485050945867004600407793489248773603729897210700421804064749063555329753314880684004802858067194418151254472420770853421248729696103784590754387267461462721719576440389962696633620911018716556966505209578980122378044963467317682731929131008412793406953194394452402602073665803354168087120976323222602591559599092077144865640197078014019639548127942637815343528954981249461702387027321592258090094898640500105411114412702436643952222500414258294541500949921892373368883403075592077756340500739419307579444370346788539645846427791485186424054663508711651971297570943454585230755108623012687934575478509072008657121650566772352196466837918161337588500362975601253455778956746395236414500213641450166131028889580313572434466106506187835274033511573810983637069968798720066793440918779360776284217078534965826534267608283223522900299315389553060658273655984702898540797009779894405413490693467826384888703038650657179364999069880439298005364650491349588442811221105174856757193603889417892343280958394953348355027904656666322340680576578796681329239460294923947902694398916465646300215185435211414536172273543083993614549114345840767027942310022199661894263977300300195966518144670985253665980292841647679102843143871730921320133210603846713634537133251234955299331549777022594192819299118346515742562849422526522280363037550192646253949254958121746612827303452955307257479430938035238229185538985732405343328859942244430220073745376252835496350434384619984517516559880423981209093049541408663157407481894222099481252054435153211180299118976387067832629246726373848455591534408738898238819461901423617094526601499741558199195871139005179932463784831372376787239272356704147636567981213446462526749981321326283522763346245871418831807422600350300125616836610078104477859345714331701123463568254386232157100992623455825528356503466953838616637610172400414276891593794251068236109475520534244879499866629774919432885479017729847996585745764223983501818408667999717989117194991795289142238650608109633385346246330264864042304929934029297762049653458375882178930133104348121459455647155416519416290351419622694712351440323829377726718805885210512540986857383580776924225792095206625360591115320816585689937780246123324885943658745201314414962166902892243568518048584078373875379596652928029092151185891072444098632463932839534546175891922367399760513285487967965810663056096699800974603220831639682428137263125750030990268896774238716827759574884326456494351789929901812499001214434391725306824208553201945730325911892971744366438640489295540855991884011559687922163905551889463473576418673159603155462746147192592235786902282274025045377273079638631971595361977148684161787059600352919966195432233298851399803521817994039293856232443789583566264012285981129560011408908704603994311965335702603738273575684245250316700189715732437064279674101760787321535979419058047389877830452908693101379018311210376875991549828291095912093409035559041268726885087080147118944262007107792355128110797532713318596541012625606771616245130263603017278593189548129082409020694220044536469688773014811312639685739151434902813344875047633903021087349638156229635188395687739230014036020224405709851540499320946210755756055560984869454671578355968126947770020468732522322372923391282287566149492039987348165634953538970911247911191662107702953933379425825259732878187589639957132282564978190771730894807575865295327815918143642425368332551366997697431001130923195480305906809362353954255415734248418678597662215760911698639557309276965388355550855199262125224200450103317205525254998315498933332793587810032517158755823051940253453953495090063901886806984725967471757112225181372787240713070111678042909908457146180483330880967903685877176479428130446313125516486278138253060719166005986883923297339346558946003830444924902702841814074517405756151891445498118614209898422493113325403169029424581513044892333373801608572644653365853088994681738735454439630649877589956208249286475709920196905227511021413652047630734875167899137446094985463776554053938968188611495447683331780827082976846859263486988738377330493467322705395118108821014776596548944278163493419269191072287605444426773330743182756754770100939951798923550814856168660936775706397021765446682348446052809627013992434069920375724816279203321428311833112622159661554091405340579628547935025560652355416002107548772493885110494227009133344701656603365623861671263079221968570371235500081878358210218987099652062730464615170419174391898245353372993037366880440935289876448762609472000148804490085734178607870981225333737286782109040057680891685208628591604412840298601428389348246777890493284276857291363543866070019463024911484792152552889124001087584506055188457137047882982892145686362392505187731914076914201205518917056948090694877631719840572127935862969393296180792502380624589598231068228727286641340401375141202057867360843455044376383853836259717055460726202607587279589185012001136769437688530147715629850251274337419893234982735187392047443498515114736911107040198019512319723167320423713599933036445974177162866541042799334412264524272859476854382194850607068924529251397778288582970155086227564665223509610976906011595765213770190625533531433878166712307191053929147304089506985855501768273647423479891369723795908262458277360362839232704846494743378540348732663514407978001555468854384694273264569989085189471877964047344491785783224510945115791475346679143620621938402674395620150389322723328677772757521278306250293776746291384655983724371993268556158385544867749630741986010073523673776305310141694247360411139470453863469677751266059173410626126665017980766826299561355573110950397328568092695489702233467949566164407841156020047751021410005591391055034293111260911649889007658184743334976997590244140348052315816697227441615434707936183494673559004909746867334701181106497136888742806509116031476465372801510066088308568912873642706989070966197596220449863838859247180428796576137432761099813121459945297648682476834853701028612115852172451626075808332192790239471915589843454842799881865926938904025063992445191970540154901644776654672451544853731790763891333427051312828625293602701639070937336698425182453294452178256798624209205265153975590590880878343955317522748589759972982792146131969447362330295056596374299122781097611937767404835011478497712523015536931804507745259743554235197366154818861275876539351423637895138179938984810044427698422680994224286384672029759942526445475868644061525675335681764752141503597924212741153031209926533390856588817317734518026515515965212303132652203885580587247192582326726866925893665732850718642632675213282000695513593854073824615171595624744184010306696795072898701518525555113005855657986935425391033494267204503427451654155139949521648433365750616726933431848139399620387160944675406794629563420650789632792973357306622055043527328999119196028671910884324405317232336656242412324065837047005569997095067451324246065646137721377937077281844771430221039083483584932891482210859858003162201864347815832026696910517124996012218665610950414549142241117994885238142863131150518913948642551942474412514486590713175129006684922626617793468701234247877967014698194935363193926536336598174509444800374055622506090438683545036587720347978983377789061616445417985892418395383442938859475500026940774707788040813854069350274892317337448620527904914713704395130120847103508885749178876515895635665287780613497440103708625858779097711372491652568928949934939624421917449400477011858728831964997214642003832826892427509530466942555376973156128730660856964056950309156304231895537002473406208758205540355173825055514637336510446411101949120565869117422175480651423756279854294659543817965278081949072232677667862259741776664931203196055928160331564931613000830340229103428123406867069576534953205647158899796756859932233507341283040040333711645048586003571983079310422173478954332494903636531810430851556809455178432783763478629358342105331984028256064367574269628760666180114851842494538453662255361778188234847980643808329172433419432710551463896854000478995270267959927276441856441638081526327295309461569254303119281182382767452009327062457992660479221389020951398773482505077365400120191466411627799816159861770605614650234588603476904125272528706926546856395365139078538592921473117360507750330533789402102200431281622323324294715355286744176987553143931549754712183153697361167732376850430110122462505926462348220790406388261029574513325824255148024641181756095940254002350396436219846247043409614958296848498565650461701205406218599298454090632178726010037287040565356734325648333341012610792831646181549128899357008428492160953172511465282051540877312477303934440242900931082680235767814931785781658975683948441754533151975599900525605820418709085455437298056025734044577797964906720362057257586506215933354882140685944978885692499502887853040934606027574828979700506023704871522418121164112716988495377214138595411610387814254755649850126001798702108312286249748065941455910572093600742313508622556862053889513423556581841286962521279864981136646614873623589442466630968806385199943855601361471956148766676478449732225622057254989837269156118378065000015859222835788018526239138439489642008173641807609216574582707413222294679771926307276386828264138615753575404834975467779585218438535249402277616031756526287300383006090615008807496726682080974823475933804935564047219158912438457616124751048042988236510757209982714289355644059936388069879103201766971632566586269360817040274404091940635696326809763079291755189887895539826932221499637149885740619400914589271783113492340743577436547127846159799432893866681708046250562452678262545822060506203946386261643980513347305085720190706703917552351016510322527103965964076229393471550090290874780926402053578333266140730682480572333141461037168347434277683427689983647220362733650278341502572207166220115010682791745741724997343489777451365851634792292243089389616437866918134015939033554954483427820361559861009730755033046981086533389687254723838659114051353420815772987794940413501082939183144884970487965933212460871084910912505086107625170486750373930994148344774610367224234428535724114969006172229305112934774924610208884487025706264008660365718564533139534421584824247437007418533427970269859314429246250087319598693195348774614331044323787237457965894314401798678615202907862371032359042274089052575158242999970612816955141906887678544281323541912274779396299904285307295798271707283683833750989481096185891744598549761747978977707961984893593450867885492094831087025652581397078458098914407936944651211410177380165560960276689553484620798472101637741932778518349145489688513631726477594617403370392429603467946994019141916098493026652576339928809625048313889050017348376612161993837813534669799941648112061516958336521963114595655965231723099560009722037042462281666384549138725839463749943315802455267663971643327523934520065619962870439156365713463359895251254419802477876800398745033187388803458215084674348867635020976830901580374543392153328564126838329625829054377902349708323247695101417383095402217582369563444181515816300654507074140095204459768663084707991759813480972681801758382493244127703933705972204474706833726467479373631412336639472572306407397063561518537852373148659048896890154505039236272637620992745429752205092803735885010768115938076031158122296949672344502580307032090342872193528132499985103786430956203183664366708590256447176908651666007064851426117798902852898954051415006734088418098144413526695629346207939305475643786847646439575891485059203309682241767650183477052450227402018134473606667509277354682378306663753064310955881787271705264935168975651483082009628816546400724648373700693382477974916712458327488306712133706412399594955808463683365354585277982233586392366709312774638777859720107780717698418523696905006378105805971874565505196560400273184040200301684771245795201357723233916113847801097264488868559852229527565427605581411341671361607088384884486416974590638320868268574960993815446595239026191658031339315003306633282935577278824590112604885807916873530350882253640979295953695831486588316018696434410996460304035644304115018270972265148600758472321335415423877445370364411266522394742052138668449800545876652264242897960566523761659131930799374047251655700375371926210627373308080007939849405494016234331917551437601233478635450308342361081560258104413354909428738427583729174824005389112219201134479451496850790768279468592278194985102264825826831503440396031745673439117018094937570916528110976529498567290639865393373452596357785565782220147267488595421832323293604422535135183862675377458646405297074134546497700613749706560159911251884185932953696244390027570615793722239709522644647840208159352383321290561347994011091155104206600627501583105857851607345250447549377323125790804367345159480762675698224706264163475386352323505427983274286879573911063703048085562537132435427833112162299079787349835905874300760261661757595403338461793690818167824634536294761953759733224267749967468304747163231988823840529100101565509987136065520088709401240208932328409395796767640512554684700083038221923811261301560686588534294088964914499142305144901061683821821022104318641362683216913422656021767887595419674647410139702937543959904849322020843459661117962182556786473403910088122525145412723507431331998903639672707312720783239368660623292935184173027737191946431672722215229730451302440910160241320966670604003991245156461448734593206543151489379485447795748564930055135955526474453587038966098766790001205201676187495559283190879745307641102294936119053911850449621577370693738989096938600202260038723493781887948861842631184605455099595941961903957902893482196901052492771511342478451282447560075230274802991096435143006378732865495006575467537998627040750300787373396104713391045286082508175138716058045664189511194264760221985621222670836868864013268179692900428881079224103066727951601241415702098270843466981765636542327318139287092846395283055874089457975717512435958755367932391003296000476995556180612048331974876060205872975826062251863132624109012292651480135959135002856858940052793885276099282306973489275656942741515438982417758712681650360493928503757841805221177203442225905580545461579276203387591180408412319534160310456498131725167795435278038467003568377970136794963477421342414169587198015631645004222745180073997817333767940215372268529186245642524413702696201039887166948773613755785893123323361814928737015666005141503611391302880014827436410198462302586068731433232929351702883629972320678478614186318248986753950947531691656126077003880468272811929209708150980811001984845943526410946895005756275108644743955023082336526785636500976614228214745371017793676396585787705083012183799053588348759895315510284780094727990594717977759445271746888992864741487553851651318341098411475758000836556218265466949822410696516500016475491689227808690016957759231003785973464730724048358004624900612117519467374599399666635545754664846828509937508443912078928627729655098645778047190787982092752147192482817945854852219479250118078782827435873898511028819747367398395135779435360681803599511240612579678197782993395221099381019986123927771544859027819301796114213963866137950107828450749294583472599933235229292483017074801241589686515431386784782868559996045412413263990295310158146815989547213877551506071845883460711483175807113042047482539285047037592435406976043061702690273551459916843356650567347603126084447924682748782143091916709581240496441794393492514093304865661690388921996270876842089213589718180754587465137126095443725775225860013626611620126140019726390744442138730291787310138800414821693719494274759204475871704100707271443233832787205198322764617385054242832761550055660562943021506447747136363739288467504596162949106551335728401930495072700294176431164192982723336333585114336668497869719833726620961855358093702744332067275951533660818166469443011601225946359154747562303295254850360448105139833380041511839414149312555626226691176891863034009251516947880637728714561541702026695667475063995284626687858833347984169819475180172253545890986294190451584237561435034250517026249469547014832453708128240860912595065893951905549282714043124298913285939933306657084482003853394854184399398121000316412168547708054853966195935106655860578292153597915528621477290227030976426869903065151669166859029565355731923579706860301261806705171900960314897340226023663220454613952272540955251121774705752724589202526024584861155284800388981479714155500629361351142923033343039364626336463445558830356219129516370143050010906887353617488032379504071075272854305532428407305266720085341538401705704876556009650216781390021478802434727355309832168092024362863128664175534310946257436466827231944620077176282853774252752717629767269023928948170787553232920671103461560649458899451385352137100146177051043240752238558720700438121366403265742516076114763128675341026625876446900415181985892247869841884253878876458631207907876572993888830957330819562488146483074602629798305260412636317218548243530117916942076770063294839312251240993277662268300512597842618646564194359163413302921768427626131647315009084270362138290355549120707348038168804116678269149833633161887542310320984391197082337707665240761358943575956112397748537923212269411850968329412517529428058312197683004715971999583982454630243538976023289624106467498638239598133289623944542134378090581390519550420406485595568419464283911927070432680702448350441441149370887397479001808804834337193984388034722497483756183333484991334094215454306156150385768958737602204635504104118198332176615980776625965891134358860707693050149439538389860880297299298419374107442811125942621226311015408429048319519149540180865730594770715491383232984434200458891247349385951737042299560342734568269635952929943158184387548942795024995792928932650905215174119564420700301560808380179935120428571477923412213544227909957653159284633515921476910560484218155742925427432645362285131740102910528000479124793386843274465860369907005946651329712217220197654201265978305789684077017029005185895531122753485037843785917619507556062714673105494666188733870921163701047093293639404574126878498710660289641069968407931705024994910612571023785608471661140652523031153103007393773328851054220262484545208667084096494643190502122557608863919132195292874098467522202622855183874903518743065624096877673591798071457183420325075314635227247684244787355575036457022727952593870400113650416452317406148695175703892659665430266606544899417388848261600056822860719610961855066982210544102768979410683973749407811718311928934624672147610972261328924029239459741149908535670425808534540010597182145840595079912550974281423321573317695289362975074035617937133588195324464300511598278515323420209218563551857901007515394062065476022898150399299395174707493383922205308139575643260045583239910747126012318677987173542974764576654705331614834079362377011904654798928545667971114282454838444523228717071681810332715697036658010919562453303169225092420957204423415472129936365476311888245861096957874134722425869187093992520088297244485296665370257545684213703671233244065536263268018603655967574693209805655681302784765009972022687938771768293788186112638762879725666424760050765316922032240406488069455964605763653364042123124660600081199940382310609604859524920118849956929337266553094762495440718866540610339825336380769653184416297498289983773862981181066566301531659045232179563232482312469539086330173494650127366800204426713977163229654732325653408639709024488627341355946556750664979509736843701949978990774886440196013611342646173071144000655695150064485975144883327849277078612125701119410922925352449896802784438255144277794176094267079025408378343055985606998529962404888307450696035788782772026208856777875916861604950116074117712082120149426007977864398000977815806394191795462538350188029374751331206466867885688348795654221622835683218046718216303102373225527260686567601211269396313416942500786137939050066242715469144425127195791382295258345483406106343884842962207633243376469308564879045674145128369971437518906598896821804007961511721486701625052331294119766707295726192140841392823460642320737400730785122572213793630577078377888456458440183211351794663413510495100255376955498494724454044955782054058888026082036602610615145573815142181211308252862087705006348213831384617661543083848450924212028972273422258454542886697406553959822010712632002085664371866481468180414140431181109384319477158007975461024582496025780163656807000651486361101754884804173591438471766493821616172454269421922804650144544847778658233167185479073226816907617704976313924471372821201910674984875568077106266958845845563016576779381723109009238380573268025459981853352324517725209301681074096905430953204924739311349789761241340563278594346128325081145523126726514893080536980649767021147610648556359321209342577551952388044960065461891858634877910888209119222493920527049346124166771116172028347809700174003338767927418847723331711438838254912220947564803821535122412490008206903069784788238701514626264046918430029346445874595788363807394293305584816573748943373281464733134210685695559446683615115720660552074643717950093959231142665477035020898346145259734733719386569731153753310541346889174735498715755909030550128502990710226789154991460308559459377068527267768295438740810254598257010445276373061426023698686304381080502080724270433042643464590610298695056519430156017600767427883697731720526127480556776770755961723157773873551408420128682578260165354257440453439059622657011721050707419842728615425840120322256846470732233775172533176698962933204738983205073027648490214561787239677739763580076379728291155339026217647828054308069769974013722095149289038195248417152747089006825994927836745609281072692536166782339329833211561792070161777875211872095137703392442213406751919363688764151728660237446234625321167938701418954607111232648516905837783922783242748269382977901685992805069121783345657044333810791683974172461410049447831398224238858900461644946225846236794387938105308343906974218031622449527756284742676814394802671120799511848678383046862536039413539880393458124376109959163829898546613780869732050686929668938659573827252725654802487999811236720910891181446815180798644827789055116444282179270735652576243290746861736410055830893913995222850936005719006319120427961419857274720296265063589072904912200448385973996384587355376686476795433159810789351970142652292318815179482403283584573259936982363738521586589097132758678403307385524582899603088457368731503193875765844995242530931904084149448516711929852494413217185303101514010157291553319153499695362417494459425008416466033363334589899917128617828565991943605431108492231330006141604865580140909370336522332909125704629606623692949859099884934112373059496830248722411943415346213410963143006192540378831542919803120174817251036611900950967802876949805238147640061198489947342370630610621057605626418569351051088271627693301791656208372701694241685738489929418982021428459820559895778063629151599033536149718640032977774924223455307740144457558210560702990625860874368958215448555627416602736642325149496702810359279677533052280048472756751563781138923173955979648826636140288593420534335139387332064207107159158637466508946069966549094381454163491531428948437606051195797962376351785206991164201329748708265119352438108097921233387381699738228310008807863717708781379435318359125432258522931189857199495939146454108026707278940179201420204900040219782599361612793783729816546447103668120117570182809827832736357870435188642059322721895047507931614561420950683309923708760436302821944373750076406087324736639674832400642956544272363763499637847222391713567908441234630009422108753211267746357649476028255402921728329528979406193645581746015964301268357016498863045369278936352416019584288379715543040874685607348267603947145093321461638012098485770515716175249680231880900458047547253138924792952385691660224486517959943373495503622151782302037791976073812569961482661136009037568539583376729357487199767655768398125089610231568077644495864297832917428546182005017148038906875645104559365055818977595472954456336393161901708355131805616033684325945017440485363579384089407547646104596816604426287062008247622967156441176741604949561928877998079149733423829694198268664385245698326503498913063148202118109937256745108162662256105791385049694189747103228456018891754900771421353452719651325494292560975947918950703555861007454667890830076392136217659681937234294036399299630946296077825265402066334713528410104057165923134851347357242319319622797408309706992129384278191577549108039980861470036022338978075852266122762133460870600506382183391264666464992416229541604829749524390715610537143342984635314701880796602956029935806007701469650936108503524266151258308620280598779422866564229524978583228967506379413143422408661283362423843379270709309840881667515286991802443796089523154143260696740602402377399940598834238072060352724818473677899903982794101419733793412000638095054508851814568373520272420088872799249404219359955682622821240224672650831310560989531564900333468558408722744985772152977363718433937603784225224717287845034194132596275145645716004027815681203819489740444274705345319589862222683487739593966074751274536214261161869855016745590787851092281915830003579431970128817796366006526081029095077749886593052528558969820512805171400684292183254662630299444325525347609034619970146738177717861160111305674300904904022352824527823400614091529930263792794682293397671290118605197482622892134799361459344339430845207890763409515095940203358084579028151212657953527847212684804800137965477583547699850561761683578158810239964464820900547062497565824889549063830142184312458196182642933165295781835260366802142923288103809268602770174114264738064725170564916144693148873452779966946929145873761148008370091272353263877028428933113785369359336998790182584860494158800725702049690335775345337509669842669674560134610667877630330353534082603478296215942346506574068455432775405396576799872006665625880801704247095797794948285544933968794936063385684999522976749563516822726371880633009097023545551486726838027322465841623380446736151142272337507432840947762919445321644472849062628833307232117922557591831612293670866554638432512905254374354355487541221858620195744717649966858529802192672282773640991953587577936259377162351952302745192505055305006128501572208828495937570794405275763725330744056245979402013891443861557984950063487430738342301406453630938991564094595774381336198910444307059089512040817268791061471314558192890983315081756669210254384524288934114715188567530134213025491967939258906765309027290266501011918862531510388963969009100576588658929669043734843380008530672077431942785341347700582047320885586124846652375749779734301115667796786110896930756265702579879452727318142350306755980163446682943009000529943398024251213853790096792774908234582017445911290395869609759591118502340109765161125132053952579474286492360270421041351869322095003011278073472902293889882098949105501190705455787439406251490439368103722305139485909310536859531791843960608549021843978483521684399009579554923399873556897743911321440539906799153626133176449085301244002048571356057754172535097426107460269132578058947773881939945619906756453360941319534988387875776936238410730592351663527380296424386451818021008705454437433694476430343046591967410151308594344970067030087102976427448517751016547236926612060048067310336138658532498347637136784743651349407881098205700709011257155213768189502057648629686020049368740340362269519222608206233832453068954747503764271884274179004875164250076792838520793617556772054921923211907435519044553495619431566927607304828292482125961727819769661255878744175872101900748574437773488011430469768001387819562079607964604507865729716428610072687556085038749616070657163202107849400596084299163522366985649922811792861017478903594417446200217639801352656746988671038489340223390822515278662402276859951087192170770378848617297957743563761041857557910860686874569951459313270085233598478288389063723829034703747778697193229561303713540575625686171074176130376390674049956378741122173978988624210457921757801952722661126801810942225955724134795397831646485456339283733306825600871248944172023715021268027032959550295917580446668286134007321536665975182354265106713918405666115555253868644534622892023224037363222489016305685829024349298655708356205388294881884265603021777460403506261001234782006349975086243332115902319221331538822945641069653146946931419637479441726714823751028737466723923881570680483871342922867853432291056413605149672766203959723116873033185584483908296637983113898750880312327780679769076602353594273367722376798481224223820374392138792250479829743615034845008177162213767270860647257246674581858267185518467523423641519715834035514887297023296427965320029983830294378828460234258754121447008929827584029035039740154123834974962698321008646303612892208591210297857008261883940326056385677263720484251564944888811030855233410355691535571725039384163232303047487325239258317428203309153275815391737739940749978236073900730713284724732993529166607128238231006734321389639402759306238440966345381810540991586002116767548045870475566105894785187087954335971918324948584459119455308291824035148366454547150525336468491537828290784016152673864025542560670731478522253416926236675475343595688037928176264282384192939636001658831588481927096531743063836393824267009647513402940545594407691587777212353385064034847388032927431017762308174339383036993280060322217149769206330287546898640201182770862103766792141006059559839713338843629688882368727849985743763463106792897336622541139497547460188729345123989781322790069512837065219987179071045725290864804364520776658564762152722409694768880032995299532189860556530005536245400758865575994973789128298844142148289593022423871078895783753450484415167773040474515938361273413724111936106704649680123902568636080171578324891805882404390921409398206489626317943162861102542462420884629649917966297789962802532826209636237012628505720193663615368165623313927895385742163618297208302199826896052655882520880300263946718436827407848790158116744069608939327514674630442976785473126010065392477018106655693053181525724915036227640667077420357394391033507612088730146930881065518083908983645124692339924635354042699176938531992166871642070916200155616721628551358691552156661001671157835343846833462726571961289010494847521835055286977293917966891220991057024072282110043826009781223374805099708759720691350915428732313165256805041603546584321816750008808991156998982522380150323539119457676427161969781775918023586997286229691172628858329449833845979328253381208480853171325191954922067774050165355083113640868571953769996655853092331546232994286462691963052995480801357984990065183759447341175825638342803927035770850068737420138363349009884870488046804954770292644156869312130423482218068999860990547889446064289479906790510196700715934272568669216548877779798372184680659131712144102472503853196858357319184102878417338187371740310543705799423600874267297230052547365263453398530768993220750256696215863251268804283751447952144526514123185001101102260325452353538408313759168476964747312301742281078093224448250904766391628373472223598889034236003151060329565916209591802645494159024860825690948297355226377403683550558759547235722443276753250529103549304716575724676498108698480521207520216771845730573546250041229255999150219038800953177146785148167496827952508602643798642609802105733268001033626543098083196906606083786143335872114650229291029749203496440832828309889123967738128663363787416838190546540641353875408722159737272989624331455540152710885644648411556515358823189910964482646576218441842336500829073717246072421825918200974637551437413338201257518481952873428889470376678863565397904311501348045847625871048679371517981714654049062277703097140078045744040866101143022561373502877281783382917531947775923974218194875782234550987421178394337985436132665816716000913713636245877969328189939244560095901499326569945766814729542355359769929933831983594200551435402214675690087726488371407168005818424485859601342642563844513669457751386684745313337372625257279141871556506808998071599154439278792635111505619499171262598201664223920540391995292663620547164042884918930425053549876609881293348540984185973062743498491378048370440413655421318132534157337850614204004617542102253483109595486055729307028947247254903390127859503188135842365468452241414517676179389374114853365517272751697746950844725428908402098148570321880329340117800792607343837206283914231943095959598963934281227258719774515561272745077905223481458984918815216754258215276460837490276250769508275046330691758697469146589528584335579990117261551199450532343970569506231150854583865002121301321232793419996569799168893660347013016268178854736314237411371741389736284159245230139179238178167800403039942695548954947575887173949792961675420475366610731229101567508920009731953026467939246983188421011510228631174165823819484895253424140993634847544305795242745794615061943502219424321201855951226038324368352252308517207108564013352736786526170408509856391132448672722950738023268934636680595034318145791590500261259141550527328982909653899305926595364534713589985694423313497518791431291564619959373285655953463533039819846678029999917743097780310603335007008970887637797320101366801882542427930471041380696625569108012711986472765424097589948474746311371605017350838415462806164322697073413405696621109474375754949192808349100811209472410822857436929356765080506813400440883232144761279190286491396496130396487249475599192490474456110995791867921039172169974707161243707846419404318259141045112876425233931098042101896171933065904877782882176358399234983026795075317009924616129054794429742328248618047532521456644279670561049494051813180417405974032886978001200566953123937546577217469897474492737402572456558839375746271132320145109842974414153315608564281661040186035449967873215561775694388881158898858736377204620159355323537393370247775662826624373225492777997106357941246223195687665967149113046516884867127137642269448586255090224636801495429617860493945005774059998783542549615638824164880564291446083095384648455053391475779674132033988269390106157076371977907116248940290418568625841759893828072433955373907822943925855831468599789211919161072622537045395957561840232560216097552505390061157831667246152660965277874097453830260803333135715797264168621015915555195837396245583069317042731504218556997219100256010618549281840428340173534830801797374136434405763899108672572638349045946145822622047304245787131334860076080957362357961512815518756287589835795966438472297362568062510289036048160168672786399127143681257510829955583232899676398440086940379625047130757996928130637732026292453358112414067672036448350138243856705294980714077874207066283510972642977320278993816410521162246189490063718525812149433498002437719991998724330331051790843568068498711429639915984406455254757630169629475830315848996885233934102769856111368061965045623031942767074206365557988554772610881753138990059719842818043387378148782647394542718985222595413990021106608621354223679696972547585799947715666227433592485390922629049164403256301864097576707764971798122940586122428939876573899855911266480596948216442653489569142515830533462997454721634358286707581583516558530321808643602634975932838985002114635692505854122655654799635981432845075193726160504029541496761842053010334774321477737338609113126177303173311412579574187409679192722306928151297740370229455689929211566251896822316940388031885913633617833675091598565196402334159746914432660591786335486711949416894349552742402435396945979805887954550613563385577813796755027034826653992103531465261212103082719971695865327541844727672535367432347156729110099758812057961930301861035967237664909114560797199729844734763033078437142486738175848832269181135929057868052900896321377103162595457053066443230781724794704436457249459825769797412288127939303852683584817941279121348300378362784059267104132229657237963664580881267516373450787272542603889179086039981414896362506127967878216546676204296444955519637635153402298086980098308783375148570057660452591268574464304780892300150683907042441918644588207699529045371985132989368011490056472163480248715018361228124195302828387764982288016538546387190714490977527947435798521443682561422215996191112477956109111286906497024498116500127809027251808194846055646025931414590420077141920647413227715947968499507123557212101969422252397064547894999793760728967494257314918633052097429222765228327598937175562721764390730383163999115862118336609708966802314701450608009592709932606737747328612040989498430901147917397246644058022476226547588417424494188239395636341147150006172543773887118055333264146549209797602991431953098800212770988274336467928243581393681651727731962038331272835305968763942034631928593803601156785810908614577444626120205011046006101494599004211071504394281722619018177732886518146302710342925729375477356496400028833146098152942911410222552018136502264368324234408155039307431390154985240256740433285965919529024818382872627644278116620730436119212133229137746925988176648873449566797901800611447156326602266996556103743196698870830973610528888905196060223961446349958093126717075575272221675157742757881782323677845267047667273492666040352753606114438632979177475917871991612522528865962729663102504516104058971016787182988054030205337319412034879411368677079467026018944303234619662222283252366847717930184470246336294752732767015405539426521493448629970982309057894191464043131246248222152895383715224656371450587444290666533725022761289911112016702635612681268362988002188120187393885883625664604319315545682882769300816395537958258085238872585321074290646159207935546248807147435869383692312757198681068814138514102936463631856792242195569122732374450988467090294409381363645256529673016900824010976833099707106133025133935880549686883298807398644582311508766497307339323530828004816629074727442382054657003248975671251117242119487994130099489982803709296559354228037377985529296391382193660356230000469802482424509366708145531072154697312788833374209927093491534059605977979091442204672754612867572436308071603497152733310281102474567757012253349907011212170024259176728519646310807961362866062404906809881184621183246213532647665042677333464679930603536886839226474536049588243160737832738322047222896750700894288118499345496981917924494284484077688930003081856815638408406201743420050707417317055783598472715472316779163046490670802380111419351504591051518046526567270986845838561750744728379710201424760692463688857976317731387575465947338914572703559371499259048186308492078293435921603835536791711127974339692246626210438492345575661940395930567149155963292208179377986243651225874863184694171276393612947760920748272426239753432307362338537047680911434817433787266589457625180662472068606935544549038540071998553248574025914026136764136407699663119308035065861997637084913679665504153211800009050173784819179338373039940972917587867924205227260216608887027303579930451804654190670454675210345929350373262919509144337130967489362455131581302981231137082068619749567622102104654215028123689974963160200555625181320734790907152250242102422124570668111325542217184003107592973754597871855097763946096533090191437060453851153471857064775148777175888701062994353055601041399605921190393786218002553271550289285455498423398912368254822852650043582743709881047071803372835643537330019250484566203003375537773491641566804353480185547417719912924009466765949950785430743393768759563804277527339612068947974814259057325199949301549208261495407239356795716777625549235790102028535568104584220159182837388418732904667229311354829372560572177018931263372564139516852630786441518889665444141817077367299033012917696963495295597233358630432348757748599481399607900222463504029064253153233616012601376839266679763863873994502888103497937285867203403321715081237587019795197586950300307366922674719654309988271735570700139645707879904588959758892339958455257835341569040126094383657200291261481898512720515346272076599848310325207665702612442349557578932988266891815815305790283026897257291928735325148667246233600602626306484302627793910006143601413445800375879276627724764142212820587223077331992781285633214132062044522666868756406980809759037023215372255400431054694621802441023120785994368303763760078996058623761652687630577118539702045326623481541850622406491263264999180340354181382776589102005771492619293051775462229870954008341136799006513642397191444733132897425580016599484977211603833999834818766934691725554889647779588666989163342112278452031182243074259380061607804786753900354424452713493205890286722007094758114748171949126220403873648499462851595184175705661949661876809760889603260302086913538428664403518460901050707640254177335786757098528472887735399370031311638997400808677624458951211977709258502522153177163088789837999373959088967703237996420041332658137348301633243498281498494948740345886951665018759166946238747173429794178932558197925452100805851703337401098675603424465676884622362858918465020986676213847494421971168738519512818539527054106338891816221307318985213688234636929245502124371434775306932171877518286841558755217994390876265380083779467456159825079951232934054897291660525508135023216250340077127175298053237862390635934025837875428787294963367964781328525051314721435883750627350760767027819239085378566954461998885742000276429436010977734479506773880495402697283192628966119863471589344068915164990206336739399617548894209337832868358270446924203733878518160201960997220630975900025953733258520193025578780103773363229306284891849265214361831613878099042414214114894735038081581598602256779179943841949396381658352328762762856920931494192623318928793398935621202484570794973853852548422607215365099347179941797699031306225992774732933321227906740278525186215980067834426774850241770184324479353947671648438183665311049774771532729769911219353564469205200633782476119636517597961974677932813801940549041611492008726399450293085192031478281951824252671566140974082357129648726623567076222018590562194251397572108349498642426712344925549239839533955567756560910509396608660655896663403770970614287460006050358398023794774504770882456665081688976697917396350680079490033692535350405660129189082637320005160791038562683895872245706122268614455223515882146333451364713067009340626669478302895037522509434378933829767292313390734994155399390058690864001791745087467967617735061187680029002143189462865429751368216573703549655311903471004976201683017173841625205626027539818725007238995081980784039520964653016401837275283016038505631042899382011610082057328818176354710968920055857398683947260930370716840486750097464905007735096605058965900386178394382143725907516938870263966783028514755012053161144862131115059777503956049039274911415664042110931783200211122217219627421279351242998559688065380101339131333400325723880419805920446189981967964411062290179955661582053362796982810010117572554227973003990823159779482489619099330816672108942866843996142594240820196090218692520508224120085837818626401716316441763885503157133120887588016508364982134489738534004370558049135236645151716576808709928907614815337474311024210324884702199346229497885802340912473623737385487488455560333032577943264310544175659719782363497494090627907659777322703145230281251240200710355247364106577979045713484316207637685180832987508067731580191820719687488932758855440391372204866977214245235972290230022917177933119538942166267784878333693378441094201528372171169550434011314238696534089471783479750777016386609226151958415210322609542773002843368291601815302253630185736305164454466595098748670674044833763008084417970048633538493520234865309008402740653054756862816734053600584018290856664535754363897335958583196850166345905848793581064909906323084607640383725606017977024442991754453333812674309535461100094418886673696649017083318666563574601219144205051091929844656771168453069416150054982757765016397609004095711359399993614002572556830958556493129579530756458315333363059641883055103928988493506217185639639071299438873387923888303964341258954524848795836050142888989420951185336373160867673380551724783837033226561824006564767015869765419660877395925320769615493141252964930927410570371353467133168082875785664499101691621017610675519596455665188857360877638613008158326724157983817309401602006882108106451322746767848600784812470653201558397895770464860586504978306652927669393104056276292424181914003742587412277465204282635725601329454785796208668256500787419754819507935023673136603493249657035101173793469324679970553031023759529026366263326954304992757426543517924925348622727482337322999650742810411910245079257841171700061843582934203673347258360903091929262763032789104396690767039740545879896848746939191289933802451351224234637682765815443010383307222472518045262378992711271701399249129613614836599720518881793599422356487324419616387676733011458252565274158224128499395963902505135409118772944387589454481951477743890104218907413303604093906448204416936148370235957491846899267604004261695024747163593131578632547621330816819910936673616793804095044685886987528082514143808063736164580813226833302000732533964446477754983968767796898401239419592778608809265812820639180500173572569624178825385491482087099049377254968490688057085629710647762722816206545285043516342327406002007432447209646787023326079529291252503773196491996375301838492122011670761518554749202777704092144650121790807832829020099503715673151216044483471523758495483526182992971043636519843227076549670422571371274345817028696940847783420344967500996025605854676915641449085843957355058685872553411324485493801629170469203786177576250738385910654918422904220962621450222506908463368250592758172800604833801209455758190229137930759285560703694943203388900205870389462101534395070518544789266123242131878696066190852460923136608605138501618210164021162647579263829280081625329218117859364317327566254627596322240616935521388435256197773827549944705890526715732347888325239382157676327423358080170586856967575715215034504706384322619263784761981069754900046024519574440888170182532961708553332637488816477430390546525595054651680796396094361797593238495126965824137542687525542162772440414420260001522283443131788926822259694237356122432253515908996930690731660307501367697903525941849513005640346538985934511747305354153363145582463640353637504387429236290547737181507371230793537650518222624164056013105997089204436244988655322073806405035545216000467457549927397239208634023142509289166461723564303487670110600944360558734533960460088843997459351401213968597829383872096213198986120228100559099054525236063886714090477015637102805836172514393748711114106668630594442261819093983941435313828394409096876384049922604186055511289820709892557126773859718017542687798956950301153615477720789639462557121475877449381086992082151994780985611594968139847231644458129807927447213784700924683355658391741087294559774746741436359474781795837858340615865834004539735249667623774252725707322356680081024538656759965107959089402097167123785004773156544470818416190204262172987866208685128770321012043992111022818342583076479171781335672529662890059616564774407493978515846394148319989981760074253648645096720518424485158886525990509783495957070149726112337070198323049475874540237555300006493506908474626601625498876732395260738950638686701573844325865020590314497402833235181384224909330608672487071729750975675630338981172591997824985192946432618033580653585563708265763102553661522216397747842330179025388367785677408279293016138999816648084842040429544130500449934629348063071395196207616641478487512795420382915622978730687739884159174741235310212519243896489115292978015988962243166602535967713461239427741309506698716575813019160093046421779144544821720191134808200185620224580895261338971313553943831848493466170106696590873728300709714099514181540894081119530350714597032825744171498215074470218074139744085934498345342873557153908483321117873308755514332518332149018411565832861284945388127140947570535486319996277914580073626368776233340557643263679237768561258453500660552845321358780400282135443134772136691385948282910325731961499006457956744301491995396201151031581719404309304252701827262584935971375024382609674432614644163830012770241503237296980523603912267025464584542660898072374106998360456280449271265062848690280456813737305865940946715277175143111309802963213575870259559797161390657775313383633145698951512011469812231319367439514224884919532242337111884861227946122938753050698193912686688656480726938483178280197650126808095952947409955268429881676218440195560739209176147834898180497376624132856127993324009284311938660131541550369206939315267161630587842677624280142127972290819610498666684618921785825726839812938832938999297051337484120915647057729545783015056976444138624778419956946863935114958823956022641809887865110099731804575360127913842350466815626999009819738102421638871502784374459113765037822627768382389260663889558248276830831389903464314850127370304095281199940678586980438845881060113658546735875405818145184740229243880592642623513171270873969563997070460487139472408346714113908111046011236097572423286424917013484324885937252780360485429120047960950078852875450730150284399175778336119512694094687916228285586333404970730437936309342312378425698707848702779863995526765223001935755302507582835671872982542540434081810587832752057877148693569245986092884946389099957284244686142291921372969011339865751517653400234573199636977078677102810072520757450569537403047227137366271929037594488502515158542594793187056717718696422238174424192537016151707500044793147077252577682114898363808197309835625188992526097735232654757432366056293714621716121452834239976561727230048568122939453315743380115527954545878114956722505579217689818980527030840590451413405605381442190541811648393082937527640356815470269679250987559713862011375621019834730063129990651897756209401084148044286332835418260443758736537298785189087433140762966131405986833361240233897947661530447008638657765763482296906129893694074869201128947722003220007616488549427290418551889135684770628287527965825465138842435497446954755714546025903127747293995291904233552426059613377584806253358498252240477656652052168796160881116383635915517535288656367085163188709832515040169109801387353845184441976930348059498845844395557328724285430724825506007784274434308265460539946691591315235666389490771884338613102210382914631138145080878864623757407183843676640204997062160701673996012897156360627787950385583850407020848558145076990776344233675379202708918855510385829190785937499714882352639519685666103140987446709868757759038549952302754469983662828039572530940052367997308591374908333979494006587803748161794515015746437222111304254383878633125871191438269501413240387714189437525600730171446606924423739055662959031023794838076086111013172940735377545702695569207974722461206868860133317847344946443793333846023617123052243195312449221492574560269260900630559671414097438014977687160817027796409291771503150474928548546038574526125356870384411445451464990454686812554597897275865469594931632482344225448589877761839424559718438315850014014687828294247710180933888638571184511493773292008892576339291788936468836665173883466908877307928362011444220359033832050575896924971847927900580888922102151850679395172720468449828955166678722682935855747073118028353190765662613525314926135907657039495872842675528278410344990728137887555294664389307199021007082164272879076010862440284066963278730318862865855344403000028451867342523829217390093838247004356229411025779413261374303481921556139799484466103473807893806585154462176754772435487992259689266589824595364659935883386274232351904811437588446328334608704336931466937108760901146772476674933489086527939727587752935693292408169024340713188509557568860586800361792932484787969164318141050702104976092527113597665902920349775279925361585787531776418814568146376249232095330254923889253134716013618316807944614612696319728937813992592622217008372809958278278923371973295071102293673329938636913315881056472046809357565318075896547084701248293397719012263402887389283272083161694674918297707579414186231764550938016180092578804043217190763750036340491640246719858500883645730702942469141829836240959256200068332032933052038906045473007943377916331554580048957104005651253860023303737553745010999012944323725464255458351386626585483956840838731496443420761068648510608483357293287987645624867603093139355978793265776896526884251496374059215228961338872556937436000405203232276899195663274950615811565796426510508465856965824522062493733943167956943088216106299202735939141906716163025302905051734722509385042087238127669306041952619118744080979210968390304809837772334956989888268564073386786369112425514330377174491481131066669982525365800451357095728466437471884275193828883152014022327443694376384688138613099582288033165738492719916314705824193354741768155473714322398036910198696160382389042489142376063913062658328379547334779752252131966085029829312364390909164798536461889358793737499242517168455021732754126776116778967384996490937287355783928963583648590715790462195386455474882577283043499941724586367331298378253162609905212955832330058448318368535449163551985884822137220229067765014897572178755985155011247614430294565247095545261594726387774213418714111618707869969860016424012356122029539982858472388980387685008253616927284654940842900245659544963932449802876405051871592852218948521120892004316296942443202635081573590075696475562752055509923555520467368277191124826744838232725933081873556751136707131947702497382704486822094422326607823175786086671540763749153066724213134895443339170020113722818509596355305475559497837160453439603998422247524025209732424325904813525668720977152419654428487346546942654879212744652813605607189842050373797593304646039452839588557702184021520194447269011661775274408456872947945082762532397705601023076584595525483920603832291120767605725340798758223249505586284623191579953486133634222395140547953782892425486512373251936103648419619708139629382981194334337623638247899798287401232103938088216456974875189929938219401025966889757745379283978655233240168899815126700008371963163029928788185324028164501898092462671633138463972090759532241762929376983201075568242586477575523864988801025599837174401570891488066717946556368987301523013713564519587535427200465534231774368084068794439980962699265783004707839967365977138855179507803504647456337635538019002307793889213263244261581856110858380972631462711871057163920831540965238409749471275522005586498843785015319028356772661540502723096487625072669298975747940898066908544453992894110233454175617921290511678201505945322344249700162413658329466047770569014383312806935457534370785786477064333120183057467266682858112948110808356771149140916896360191233421717506495445483274600355212725646130148733580887155999227135957327145078169208480481303082044951757493071926455187943440959606433042484363484400340750811291303555345811200784246216187239644098773565024144907053515558732078069440049023964789621516468738835397346139147450274223955112668545176013837261120427413700409786486837337503409643125356010477196325312932995708189713452929706837554960680778044072145404578990680765887074806175801813227511625557288153236556241191928672486910604228302790054965689291266006666018273263131887291438072557484134682418220059625603204023377145713886055719001841447860646629678604228291102324506270191422011499263525485979888610305795272753378219105356264077250854321936805541496506493901785752806281632483686238353913009757674982435363752307759953604679637233607777717906676611778158324832514265529480201089610476590872625733968076878698818832027772356678187658845510417801800356570482002608307736588931855667728788786140254686441264607043888444113228115258687869953587099157060977639005829612886870356609444389860686272654155554220888598724031224447270943771452296519608049060977729515980297874345504056576971529501048103208963344444429342400636853541686393307806374689098695323437592095267312994524241789654210585061211351309334805530099934456325446439425504293650866207578143171576130413203767887494787554540325256664572050796773276408956209174171562747624067371475257994506780697374017246191932988345824264834451599241979542753792039797276541885105881006429508847966162575036677106387409085040803360975180372377739004626368378504671954098446073989714231450078144442229650958297985642325437914390689623892589576584623381422124252072629603566034648125486116018683713990018282365674819840163476674477185751932310307130293598363334056574397157817760750984638975553668822064418519394320982099436996099685806012853899692020787871601189937138747584310591324739489198192785763321682713398630786864026877161808365281526846093500867826328009882657476499205607423025571761534367227737250104039493068412377593861843826922299031420859163199142674296144795526985927518185409295524449520597764666634504546826221697945200954597620586117227862838082489522731112345500931511782472919323110782111987985236520802728255612092801709408663662199629575700730950595114709571056845644724112600157688518016279567779534633266803064042494813671535000871706020465482129793503382135700743850672009451554763967127036386672102597812679510916182758823863812697906789761822532411005540382786208629995175351218951694401567852677017699579807027412807405713622692962271054414335417746238033317397629371661563449143318633164383048119857319235645331832736407993820722317099222889470021543303173985653387811845379053216051487810051766836393481370840584650174570165568634248981990429737160779904265733087505567182459982792026982166502890329068651153852327834268708922047533870777752883302231989873678748090267243430024087849695882947449773939185432088064742262840281331467770642427252424684928940275093706008059452102242189452932313207065965565268320076464585664338851401687522998149543962637195473108635268572090373706742377053693108058975878750088741836169042817453289046517508111761368563595360582061121968114720548628665448224378709501637989279365266988086937052593254323932551984083861546919657359387486206380582330703192679598295082236898247167042050825971591268022562740529368613781149515931254601115740639266177626578328846159593131807130363543127914948188716463140741341533774686814634257340144696099551026673540089724528581298034821064591958386036041754574454812480771069526186308620385480428052306214416189181134006824885811117719006051321598632152034388134761156289977201859052716322298326836374102620222228254134696635670667302935223246842070891481114351445679498751896232002513188103734764232444418634762096528666327454007671515624490646933782853049449717660494316870804412450054568351654595879628037491946018346561776528667201577477949660881795364453637302920902452852241833993284776525960138621568238090700215520081277681257658022074840032266456906630464136279798770067248769461089567274120217579520475802268170641164616209097895175151072719412518445319880405613770817089299916983650612527500864677534796316059996815356279099852662479166602733152346674254847084149700956405875038434335873886090511238178954578058780319756104543921796987113923661674615216815816421912492859200616052885027769678992847106786541392547048108257248959708584775290852180614644228411040033581422216590570554236603817728628160942190977441761869921606313832118599456083170064458920872402430326488418064507026902752333825752420865342216955781707907681544716026322499018605124473794374643515409500407310008982648751311628637075208025601277175016372209466990302783621732429898642705831438589030353365897175804844208086712746035005274140134701220194347043159825515649700294180200967713349316164121753791186341366954656517182105530119952801020302104951944020106083716016669450035625352662965180671230942701497672209306701732735307261183084950307419462332486881205942892322132611153961770602484629259174889193279454519108304926168549028963773080442883098701726011239696653723654640773682020468249993805127045645339718165304964582781395025575700479450099514972106664982336776602540973242667740316367907560384680267015933507392613234320039398898236306628536529738911675817268051590818896025827037551839668359902119144812540703393667321009590141055751807649116023933803746511600470087529467824094774814350305853345208529997415495975752595018734213927993132732990401970566435215922558671765714113252363352009554459528004190636313580704846482247804337780326838360070693882631319408484516080798168412891483236893866569897543138248363884008958216110325492591057681099101688465440015123536389449673205968147778724198645373084032479127332455300705920805603039903786156922845593483981653244977938142981860072102846937204634030660602828679705288703939946652763335012103870264876022689292930390929178097942987288380964657224952988280386323021375297251131705133118886621113383636818134609014105424912944514902918065263318637409844263092780830985626322227444099785409909644885451913373451325722022963113590917944988290102743909078243546984877534178177767741550791357298565445326901674493772385919476060297796145950208736925201809887608252911542716622918931961625981051067296097960611641397614286430066402459034355587284529810564718917944901638983897026791183496097748080191539772815320040588785158670566338075092747866013325163977111151791812557985265474102336586634319954570808621093183325302260004604961083325234814178930796291406368984900713917959155979460882021705242329854222725201613667530808361132006889218407018843601562107516266978230620216348955932862739055152339979492341228080288937665680727114062604071979118992078310829641689066512889876263201708826386952869464748765237291230396457807836610924422355925252941042366800118261517366193400364145060754034097436031206195512838535149232574091884332554607151009972015680345681092863382436361210570173034112133951591894912202072656451262120120143921130378184490765388632490349947971554685221231029815317405781325458964875889369822532277118060035919303650578553549386889123637404991505123539516391819464433414765494892419591904821308871401776388137742888313206849620140269011522543170591560971157145546694765154856867780553366884944916078932025342700244779680062899573321394838407787849639440766442858335975055343459288380962528628030036502835187621729889947369728212003629791066758754093504608350622230674238159170785934847474363848344421088995586738398441182943193230378373509169289442993210792915519107734445192210040546042686866343908935763349850932628352408426952961322909737937877781443852928452534853856271457537401141758290062997381106964047674289063447572946042502560290256452240286134047154837814421207677801948850965386336094234651777534309934912043759123589980108784574481582140547373543649771344432478956149951375793497643514620140053133659274113029512810062014881932450254921523057146848273324443344490565703085577718773392013741312498350237932373204460122828927818816221191311036623670985440928836503444561282072881997915127477738565190102116601988705487940506113464645917823598100926406571153226722224946876749463343074315813344994315626282104524273842802479706155726988100109650464688096047722498560438460725441618783934117084755419310681784433141983620292324424442673862727027493161775528735855901946379833712867443083580787477941943061519950388507962720604775612974141824305029122827771144968488666756456803944944684944956071484967483672094044671940864883747876404245974152985223855515683147954490661018245978044923269490137398526767054990178210520341357198281923320068869936540175817311706747623409827590357171633915698964538880485014387670623166709143202462598684615503201102256387726020095733868496937371004890711418491116546647136754744612205603375505145649936693183413314160405156690952048959076026269453564784781573230809363679083955614095958966297582239228450001877812827518989610704223853255425461345273290601024077319469565989527944745285457705153875561498766962946448846764007171875613838706163480619919062563508431082885227733840223744866783959518144935718485753400708547958761567458364162667430852787776574462556450728594983694974460206015680211548507861599693007298700226274755469825844856049197249113379294094214370985262168629509305057999004749812143867559083798407836119907078478894697872481156414637432373190768718976251039993488983003542647508885108627394368859617905312744604479467602431829513775611303878394588667964428181324607275829252250853108496545558726026934451035223794229030784016005228622975265461208555300582257742176962681784317071903445029185484896185895200083873020399507353024142284661270711289916038592360373516820823498988548666696476386254697221895924088539582828165815835356000412950269800534830467354477303406659995667317526492116194006931849121838506631417155892439662937777409319544036935089961548728807762314997316171345944248962768701358853280144370995848203942251863566043336051717295686717050976255562086441921158960806724869922731959093782868036296887832500011336806794880862766747213529977148323690703995931937808889595473311543231578827611249971430857587636330036355087991511876458911937858029207329496818344315182154382810667140253704410983929179408646900891879560941787918750097640513114388576229109399717406083212536605848205217315034728362560140562082089911326441575339210807909848121620799246189612127390665851574740464337796824382954788760420755244868410615649304395434103504950275436962959757446329463821906097289779880366061115418885105989751748248678581407275026719531555834614745850306157492566092789782372083814243775411492729579437515328264686544099662166597178366748377759229302238952212547909321052417238353588779387917195251056986780080803266072641097760975903269173699566967434212827839448079304183998677694282366396007285244312825907272016980146318862536787300290039855196621261229137294988011106862498212956230040808241441391575537916819723646366704569576462721640790851707626936802508192908532959086269877558247415132200840059829717808016185878696544624214042921596716419499156806041970183260695009064934300660624699235276233829655762551925275667287532247360617672236680792511165152528120189881100147295894148756511878866363867827207968708365389642378119017768605088514520581337688252788568879480923885917371090573851920612102443201547231983793335390194002606470256291080516314957757127732498061664955683857913257318359664376130860839007055015528555134788168281050624906086944646850124136170743777837623623218802688906144037842439273700096658484527228244468545290571551710253828890001804647339367617612841552562978061120176204549550725246778266183895078070552906355661631543642473840846250923957158954269451048870634317257599411768945380866231032900454739302647541026775488156791271474390482641843615609724696492965625792475634236100866529541119783445396775295451381734798888690848034012289940677757578575445080661371236436226824636705192604599832309454129678340298877103502140765747712110142476080451002294392581331566232908246301167385348835893116240072653849359195548407034510644651203411760784263895555635396275969010801684168313115299013197223070663938257045163211380514335321728648204615941251952614761978263186864199086338267389658354013567282975488372101257736563965877299250773139546308846251514692202357874749283539848615330055264553547506010248543654660637050578885842040926564538076637025594960755857220392477498510128812935117761999385480711337078164461507670115400428315195552051760112930757709793863304495974645262432277000982748166609823753947282246279300563454995498755831785132617017852831167750078221013619511249229590124899866674595783429411133194147770554014697326840631814129313739949039617082271634336222783011289223076373576062144509635419711645406890943629454427909724764483856940523045755365462193930267208174332229569545741818604013715215879344188311315552446003865426633284607297001971940765277113307089704356414478644951346225050248114804327287326409407803130696706206100482760296517221360127024643336121627835557085652808679573717071564688523693453860077470939575136598682220879056031365347933636016237896922820496804031256139519988028348207135516927179623525478279424640921713257570358574635703585417721324586580348583925556066196395562593843693819851538887910613183439715577233211130983761362548023332248574241311042134313151477660066616160126664251074250196300249990320865231850986926722322633266272617440470167242397779190956401734402149767859146831660371146731009140928740681387299711672282466041065507615682608809872525118073031459818105574133563063183470867645379004227050186859892048323616117039652180897314433778091834157089626383278757268652029603276535457057340404143527228966793897264836030367568738566664885325454931750994814402823199643734693944366607894265690121013076634463506893210740208390038544109193201389152456992159255704135508026296429966555595113394869325946037075351862196455851866752992408871656503922628937403828860685463343702137684133734984772404725681151615660600969412097837054742550343037866807422762142993200671259839747024930790824446596879239386239609859568274047553413552759804734400979993378603523997028784101950802567492486168016440015570265952944202536158830729331236150346029640143734814302744538061988249230782475195450743400499433812480033545092217467071427585803942372488381083354816525260972546684389610754341820808058301952592569682005633029809855234435158787469298217955436913329405151458488657814142438323293332665490368082941619615645681073779958972850039184261634022257809307891829125925303790228675654546649926687987124179604653055621008728412834437143536682792631624512372868794095628695607922320499024159934809373449527105123995548211243855817100555102854530260252871222594442580432842179983993143140384248501525809206370775386347248108477649204011184994652869836657913890587091194974663666762063195684627676497605034964850761279375633185144536634060333339720864632643705448240646178790643253674812190491817418388028394783479292137726064919300626548230604864779545878507448822282799827906787267185509800623676757299363017313640974610133155266095086254110469004497863427679324944372979398658029264669710930539905130899228368523185076958656651872344532454061381888540123229312813054068616254049090105534979338449150274616884660118275133579718215896052425738003596266568476476617740390736514626639374061206694034043499089192058435139613540035543185242971180307526127368032744226275375257586481546806578796403362522064134435673558236590807073913288900305396910166986020668055547655986636231083841754576566393068171979847664644101048140721087464575764910293330540370017743185353376297770693959448075851328777474541893661438923066245113850739633949306331232435743250752357995326453627339571646724611297096213806353236243948068964911657913334644618736540756603659780517897381679091065177808202751305996118398926607626496240360147569655136088871585149368103105295128323420114953666221782258631054944189207543497225725900321602170179860500762740166411078531738654968298699998735063512976228527371848609434259930887422054507248681716061505026666522622001521163657355585353740607059633296358049598265102263397376400809201639862799367609135985048440216408168829643033583016112944318971897274326893832488961747247409814875400985032595599906792127795287919990775932191934716732206466208564454493259467902234664950310623658399670767084514920136875419699216184433795778338835523527123271926122560481519607293619898108607161820347714117637618505242656989051727374809519294828032273215780875804821283847566892093826780653848740163089313898191155475714110683728463646232962441858384764774923315430001104452227463168589327808720951388277530706473339549762528587412239933529547804381028929525880725024805446323592862345719069466397346341993395129411561877426929973381509087616255068543513540508564975172849249230844674762548610121498289987547304118293364365849790502079745570707376198931493464629100456819899317869986646334375426129939369715309745137161396975229971134092407416502136448561343721900785207461292570571317410761054522074312257665426677469974846909946168293467670899309919217769474294771682251817796770558411459956136670029325997931789450032866131281746486294791347448355531965866408166092586055597403604936789418639453672319387811806143601778833392364751097132590058772374842335754551154259071399840990040523894617925481540910709136145863811260312849512679634927201220983398444338551110154776309884065598123190764780860307047789265763595943165938220109120240504500412789245332380963955567384536349546511053172254361458539581847815238958117942744644691065684732267643872833581309400634475242543168272450260173822635460490536173455815877287977770574846986463612148616223458413283576268590888462032460072556695728535587760005849461778736077254632875242707964207685914341431790587785514814368804500369308766011696669165942552716602972266906425783225360958569242725995810142234930571182546068234894012515928338258564457954345886184298064191936671732516984855323797800564566033199115037951827243999270520689054349442492851813166342180079515580436882063754175435716036046995078546269649587509484870474865289075020093078313017600352711498057010831170175084176793994789590365245931343426364906319035212120173838822877741748357881056942626542465720435078200058032008548118249264521044198826563927104613559299494034619475029459237245291690671797856544175728089909977662461611235740687896226076653030849154514409625971328406147959555368213739953519383875954040241643328035155215951792437969186923986542141777846876051162575523757360451764700381165780402493380231273697377830350634710912157547042990335526166262878757854104612707837384526441554033236918594309047962987875450846894430560761417512006603302527719322877354488558198105682321407387428484599971989892517498305770944419747684104930403046451953168763928546133916301205277325181065464806225376651069405314319632682408028459853287379878975098102909423813399070850602786221084500916290272090857029580454249403342287535496456321003514815230169762334793983630871512255858061530104858025096189650693433815053283676825802861767316715580888201971452331561965519782872404040047326000907252874585446144202953220198748059246932960941437402582390173801647210253976242703862229094228356332008576739612155487222986172755010367718751702615007916189281728935177970429367273505174047172152324556121748035529245293443198385832152508043110764728778850449349863542672586868733660146013481104144749514793866285725701200728745248651726380354546047774189165887379204589427164631877228329749938699574133349209089654893626200903662462120350846721613033766000624356156792634585944538719949020644882965982313174140925412448679823982086520444948131820012338370336429205647992397291579002095656346073004651979810510935308245854928009055767516504312798198555241756658321350185608265608902169916038693843836009136570193206823952402637219762960709168270844228032483658404821792597346418889644974100622600662075768204062816739670413507308291450126279078560151763070324181114127079740601652618848713893786569337945392890984507778672475728431980232773859678863590678229154098640904708215976529088444512192621727970695350701611323625347201861787835030582210676078317705199275122262857757676057795417096851404385179241791525925645080374030555397048164992219860446266941343902453201062303943569795272842759456809786009095154566666725086196072256229921405950315252874749040784179598411791638537986656575174768143007914657698002126484449712724056640460455529697871377542743034580044448098725385978682228440345064542154363821126849592200833133106100258924852749153941578080090009933060656493652303968134149905335053790986682589013956756830491785828860376712839679020661958206104397347247446864915152951924388701218332711290387055123528747426148910241566928894298795825684940528606841901363937171604163737667374628834621008273332177533443667160094831682318833264476919906531300905961721476060006552942651399729865402054785030416261781943101868721969218431173828910529268850016722947391530035276736065435424156796952450812392190604717848359830023022693420981118401342543246000869048898790621592008429845248673971893390259596167118740126245082400286994279373436524774083083278211280557015735054155065374239136059426675079825198824060669761420871408884132177401865762059882942911981152293172784809079533691676788071856575453259094173862436777612496712235231890646665896696980041509874649052576790692852479249662033253049896320886216752427599798565768948165203129098918908798046627738897510763088989943321086913775497249434951274221890243645462871723892817403920000211008688360503756191329876537979432965036534262709234469951657704600192200704116938007903435840258545003719928806610560148954462297545776618942234512834802727359509957712030290840860026955283965788722614332865875014437678844694382816803044383695810375545273469710035343320534597999969502988056019107011017164317913935748201089550852048966047006197982370775517714273580805642106137951673716422709331782423463520733876176679228575664142605537462932333978272447862569705498760496044273038162150273965021811402497404258297384280141966032313738657471304549152346979641700941519556593713215026662679199528270320011032299280581916043265401907679263232093857569057096691171135654562255197364623857219312314891991624491817931446844855969129307726333088066284617805740658193945533868068800120811868203606679147854436694847186446861256355062160667078817312913477607709598021652236793229933403543592165858982002778349068786097928895971983746945440258190588654449997340940595761511674894001358245529518931484970164222249145290519211706750119706172848148321525067089443865084156560037652087361750391162252320788148467537414245935317840299660324982308674222678684870714704352678190794107708043789076715061195464903556301324075467100013404122284959447406321775110031519151814061212946140871809900961301126250486481371395440647491662383250806914616455865662586931830381744154612062605630527288075326433144788767674740142044069036195084800460064560409397794772260795365470587176546099852157580631044305118355852551005604792892904220907903219420148768352630053994506416760796861592822119882344393954186021562192220708306520838200772993420435193677291155643548573849074851197711593700731962391396356980375598176581599626756013007608007309801878741907038913578307954770389197789102677199189186209652080563507913918273393623228165332242930176829804264726110398023132223884899804870026470409388911658947088181747298815723261555766021859139905462252087247764920567186176687329395237275866303671140120143255692936854911768979699316055364844310957135197748204502068993172968375051740054280206941856743615030450760161186073973044369891963415971886245707923624122939439878028084124381599218959738805020411467209670612422190401509005360864426402073377877510634432525597062823264345791967819862276044407627019102219938173297754712207832006114776980903233836651604394386536138445661377512493216982425185774779209260550754407767301197374958558063856364309698480269829501915749402442942158728975065916074667331056262404991515712006958851793908850535824374866399249870477456482630276090063158289795153983776737362211071349094293804272096750771470191841005855610640265231993459238172572237277638400222106889417152590596085775877584370795855560529235162461320890164361959887299665912954566796381588237669761266636764777998544065631230549211362953649311401324969877553821428834028441791925135948687402615692296286675155253265627985011296538667458398904101961883737887668484951317791538049253116424444410205381966400253756674691981788016915771268417268521987385499028737366723577778471636696855306955997087687873254954528905025531872559618994146075877268434959415675711863572492069975530082579536100249692675299551002241831589345145019246426694666140244579055723690384303331180906856539565039813185192438654833546340846251224086903983575871613269666441402381984240665660443440264489810057964869063028473727305038119401105565088329341422217455974104840300529896035220267122754679254327384175389912803200958081741784840222303318568919628643460913116430527453759796246773778298510998725837169084124171983471151971628479900168516923172874232156242022662684481367805501476154571887940613565103190406083473255593196358724262346986056306880602032465973539086474867854496371454858456983615025299045378766622543538702279360151507538946039469121754846749828268613648884355980541374482825772807033501581675870014714908064999177674936382565525160970801077290575261120192618976300418836233948654551831279901951988782962157868888967511344119642086800234195530695269843852320862448052686379593613369933875304360804789924661360389978167065453966305988796570630510357499687733240444238875591670199278558327219641820170630369871736386068784510959114718195807999091912111512553610438342054613516974657727956134585800420114351884668159226279267942802828352441766001051428399664614872570582038373639927072663808796381172743334750049790887810303750703716929273717755199782009742611403163957977514697878959820151446150830710851944487884411572787395074697618903360707534894772871247635085192986037789374923808127498328709963521304624210589666271138281702653762250780341420733652072093272116269118715162914264234744925576794911337315204733318108701077945895728261692073691583939875537209606550353980459671178528332415299672406851028039941524519244447166046274851425331242777250724593345682962576713398103594611431745830869746486417808202074699899436698100075171885313458487716793059803173944617880609270659507473899803432504581706031245858458162259125239125059728815365061646995865997123856398124916614439065521353896817625146976407684944528886586659314169660064845505140136135852537689111277636193724998911402917454085330584180717156536491660448359236985272933996128106053697176527902595252422343809745363037253911523937178618582248245753464141150622401304067449863087749033877598217824683666167023040414990469188212066131312073744707822153998724159560982742760518353946965298446506284048589081706289079673720911281685427202783891980783506695887407082925890392349803521219582474964398346598255463374364040683318356911158617623829377115043089099507728518280587726340707919170276768911868501970696822460131140475816542713120087629700426794686636577143444722139452946101981217923253294271256047460539746581615618780465469866759324482455448658528696828607487710171701761144110892683311260575654120307300078699493495571191764020296038948439389553433354748115979488061849309195318870826908548457221668639079080544101613207047726157987964475574765794772969301362021970461877962326006286018413695959569755300342132897286405552158340606567083345015145160336861876583281201991906770364920440612095925475859468306865323429576273148811480791421302783120388261008572202988042930827133971381918164999225535344593075424682076189975129639893229665405061244362044384162868498265316220222993288534864072137897304510997031440895986784906883253955697005869678540480627303599477232590929194366157205627680271432656283654726943771552033485137047165411532171682542407991795178579356003169655755962615190445558531999344912137631105029171901580141309288377790326243244275533397353409652961808501843928863863765186727964545737786997271291833000997831468677816525069146256624355715987010689501582946168167739636282327734680130042679825409157675045032301393002743915964049256427744494682553686205494326013347797548873539270375802840283874955225053273518964713555123455927215191237146895611381399496461109186601203746668066437692496742250623014326710974744235502829531285807787819900367561749552545473291297730223277880508831712113908290970112578573409885065732999792356018687603191594944516193893228214530688270456344906966862223187857999467191974012111213564411360147054264102657601608370521029045199000671076835391242095265961620805514042144802036035503914408909055434965390657358529609181642588505736529186758900900334773555455249490083563971287980382141064379428953920114365318938119256883222313935243816383756901845416089953887100647126595732894709413366035750213230164412503972414409193814817036453566493077947336577671014177182515932216385252264325053088050595867857343808871252466569275079433061243377296790059956749550672323302152159376758568672470439826323022469630924176974491589857399881387745434468989016395741932253298029694354000289085665919180488449410934615942153754554324725856770350089660180429592026287841978014412169388883004527352003803277741182116720188982645912491726911105957328947611031216879324464315384828954769525241342326048454629942394038714222587567814370384948092586214300465997636748373271403823971676504472589418238225865855104762363951444141801303529192679661921878340261665868846203550759672273451762604905786361079493634921197720885093416066710148714491623095032590868112968231829662791380315624903813434602295500886578215239645474548424274337057750711024436482984862026053573765084329983393137020125598656224297718375051956101144576164515721346774455787968117290526529930078976547224332721010769931790566516646408627063520519428567878340651124710060101489687118792586412996641272273710443015799636836981004324571051641657443744879114076635073974816857691490550981424865836872726155511116259101374459303607249890884007605069542216087888429511146312388367148345177345265812619967154542718748641372629186652110306346056922218233215270106806894540714003570339057691148446462359850808682163803370966528409359036799349516295317914308178314088884034596464389810847960216892704155549355316088155909123058614953301769750065962804606979593064203946776273810080726790208962690355038472786019708788618264071433576160505384265438245981407475340212699565907911653376333704576910376549070872612559515970922599335554380688426232668483583116202069888634324536134982385899623414475333258330896554303396064585137186045040438086913318867877306473811234546531366018781157245858025792672743623445071356569118997172009603201032785825675762355654143625547475764627796949110037754575514888673311255999857953211043893241961807807757528115623354915993031187533555447048232948016396550929345194804013730172190733415321356618716951985904350623977625867666889768689279076195609448959195411549607205751777370136878049935326007931465823978675190507457885345185955670688089383976070991240639971052725775745154650173621625983249738476814388589397899282509736412265894387292292231896644536019727137093799685929453799212520932701974892620255729191198708386686401222287130262652153352857071049293985337523274931248830045581794463100809395710636294098868895953646429411812139035441889778188100026813601089207877763321573591545751473205359572677868848960690755531601993704556248109717406779965491332445759248076712275542242831180787821354696021450718878646762276096940779397207645911674015708448324268126440833594103179225311793153092326832288697500799755359723159380411552661036211847275879334540109615876625533221339195573342128292182069143718133614724493422421573567426379268507756173485955793364067796017135037546171624952229296608449593485311511510890359249141602931923182464522375197828921535340599550590682300478300544882786028663465447867048440669768197436853917423519090747840451247724932521735720341737857448624666726715003701179394091694795783201461434891651721770885515933705440042141595513725288518614728413025199969862303831016826866373301002421226212247084371933365669269324174374366875834460012440394705908298456665087594417448166022004186638284563083563146414400399194330802937908651877249988902498269959608840016983187617282167106267533665746329931381473449005134365682848464056326121614500802631005158757065410248271566880944675298105535131642947979901957763356537178253722781948410952876098478051349988962207206990497162285423161717587356429026959059640921385961297143160193964338694347493244454897846313908329991065764223931309518467158995442377612682134009977130164175644032010258195409776133196220513476489549565429524824716893434885683093771176079503978875210167309273527743094230171918750364162044073986717791067809530956832293576950470194444395371435431531177222985943668389374638424338417239451339322804712149832780820375900518634052751185586440700403614685064841574248115433633204220577730113273414695792322201607996217675163296182676482873755143903055101892254419743369106932458012813359359491623858740476780490982253917514808311527021786536593737792895196126635056029271202605432960760989278896732184483966297331745900400926874526588283474168579624609170689982575257770319996404332900894892737441130442488491816599527494018227980957775469799554733623525358255966516257007264480694428205146229394004198154549403074531618083105521405617026215338838692865681950707747929251283561371233110180877471812345610507818431906532443005451245352814866065407101735793654172799226980498719661863093398558387456346959127442179372414654412957677842715264819612837535582336366817155959924394667249687886711096631454836511390059165704255668642560043062671014383016866663148153473588908615980876320102852617120618450523381671081456924883374774747975702874746248743418790969281490856295525701593356928054732046538144894449654888204826296857091971720650734970226513145602555070569272519071469186986667805791178727251213981108647416002407255310230254256917516442934715914974794653070570571024228489322601589302508390765071104333035589606805385346405017870311854573289742032499028879020162883194724384690848037391537969165252440251860464610089711948587285880040455786812097035076235551776565405521836209597237207418052688216356745616757573734630330132043529971220002745564105784532499507266007446778334316137231120552303831191596985404077916827304591955903167253922178317876419046601730083539611242099348419677733538605873365519015763378728138341436528965352467511394614960185648401589488093699089816629172782875648901896597876659963426467659129524316600194826176913850466556775732583984787086563767637819768643164301096239423511279147060780555941848823631275129798920101947479937991424976021690009954855629934227670409850922429762158187821564429042198912535890674481564408622713843696772309868818704336203674203414626608071172831138815527637980280921257627175826264534952056873377023426929571127334557006229269229545343410483754759210882687174388855830599605468807290442140282636453760973500129809913391116301797319325956734358753965937527677646777372913473320851170582031550133016560584437091868130158210958309941897673693713822485164009914558634784955306603778270267366089394892268593803647001363090383052114004698234357648033051934115496069948677792872995021563387531744752521113244085217067656152695115511505772835974850188699285713106919939274910275485656429478031592504968608109595660448443520458759075298212241423465241289932999389733632789783081050867633749875713905972068762773140091259589018740548119497964937640790582045071596618257350770050040434421344649936520564258706131044265670954218429918579533383201363795214083702917563262298141837912980217843678969443138197923296274023009273698994989139968196426481828100846759196241849253208139372523121552897969761530245671643035396234220863768579733261808809527005926661290686838445073173552801179139965512646276322901701584652467045162176085509972904354055578725600736372806153307449144710911515242434907901352391857126405285351558339303946649753974912342237441870684464708609383198845220824391133030604145837992326891866960720664369706830102764473985447740122514521804685558897464193562580441795837459441454641065452478908946535014127922911551244234654776775907818898217148814997397433437862085084467797526002166143305698463786916936261567859747364892698165762941541354896650957859471540525407847149771889555081653016383870933040062856566803086445744031701674926125414646070069373412625073770822788592539927964499846399419277099815971177725161684091853448427452275021707521401391467224232260020964928771264836373179915108763139276223380775217455701526808435484279954802451778531969737898165994245090996677658678142312961082067637815689143765951253220872060692231821418289714221956301108301365108258967523161913430914656303871200843412053379012194085831205511605828994638522484202712933419994266374102961620228332873674628579400943117802074836916261640127275467723708300656670744441871961601770731361214383718848393358551688466022694792803394527677726830280381829474271272316548598586822914868597846835974678070073890484340729440112634883194166364524370487835862710415985980611530637552200224798816461261782486811947362409330824345571207467040700550281286309190155987637003223223012695690603526573774825662422146977994411590277446644387686281693977552084556430822619763577301256605505720063486220279738145084068161406522699664270301746299958717994929706392465213946763295461696639130163115795669011162950930213331720174517373071675514796506729055093666808663814525081975646605122956088708350442103468724064305466642099173195747704004333839995507929699415061032947731909959873604300686801262017612870614083114953936072207119758455753269766528411768917336101709973392499451332176832473066665422696191216092328628116414189557344607350734807543029624054645994592970425982718322975741387129905948002965364163702351360178629180512840174076213076634685460748271255927584647117484145898355443021825896624485266256763601314827466044655950218878923614649676190547701458898179925267892930307143542789035922063060569092810670554032311949725071230963210143859728334359162937033604544330407320128238093768091553705937299688971002701678065027095796939203694572810544200854034590936211636701762908376312703101532935548544501459305415953369558017938549650469693332914325415990226341852792314342486790505658766017839825603875268978078865732985848014610822584209625146288502310175725890440650083623754958997572341813955575771926202599295627096489847530184337990489080325977993160351486970415444507620769996297272747021492499898054328517076910270130603067861142824915660084391483805880483398394493231913097541388539487724935055286575319929564392155658715579633724014568167020841319256331217002707073409385606555938556208643203219037028245632910502763479762254275636136793674692170461223066495764267454495532013680054215804974558938126675099038752704201564329664634056733221689904636285396205904813464420259812312560592247225574021048645622753042570528181638038744489364469070474822844021996395402859698018874144343014770917878649915714740636062493550124651108896367016375019512291879341204168721106998941012462144169450124120054760836553476922169636267284493481691893156375212338089409764100259886160970166999266658603687745983053183483113448227068332580015416798711489709246529307177116137197594475736498131418029888188379233256319446556599220611915145122240283900321264030615709692905345720715755526093606877669714119385294233631092737093296291940419094284666218942189454530080530619982300191768440682843969625956068475070807472473097737684198199952438607694117396295216185543798134517404715969449925004821355112021607967107063421145411077066870716011712208244259968953666267991666419070944302333559382352297367085189558998963511390714996949156697242754483184920239866111944695896746116773067526809946089115127463961781673122085763739334963457553256822001400701555692014511716908156419492114883562835157846892658409159409250615678663298033354732705375261095309441195744081866035053795656144134429387441029125788510096187318803914571810228491736447226269160486655311779557901312650450130904683374446363203231824948673244132032115919077737816929257494153965693358786288557586924227757850156174516711201423837634897823456241173606392724028382573375394241070032131100185178938609938883759682489279825319892771873937483895842034686450111936962006220406226337409050494297650233969789886732785671966968722909290396007826813423292325449595649598115179737634322791721196415557916131761705491908281596851496873419774474759497359966030122907179927482244684162860029163401911539578900050413883318387408522383663880340171935890247393743212788707007553368443421092208290217606286407688502611897623387891784294650934235693197611409240939445896419489026063083625366563715765613045581623265155260203016205723736295062249030009457345852390934867230642741237342030547414418635659408934467477188659849216811694197258799833228674439621036615005854052421591151035143719997682675781726412341991841013316491055177071396184814566455407174031526898469789810159445285752279942769163094438899923742459917695097103830487364715592608948812621500244841592811331873287551843273399713842104529154080494171361394440260307094803708052625125116121266874287908316422475651980620001160141914731353467670303769819102195756151528078968097543259303537432754740792215763606275475929743670389110994074376823653958838646650073673576766850381022201400841233599413916181122570422979240153517721062489154911191085953694988576174150814621818947746392288995502047014544570590745806448589745084553314417159871353466072701361360926585354999191537758498723770636485573913447253119099823942410767152917652891713425584199647978689557616615333510516400950988758906626962843878023570468127898568872445228010306507982743294040250882979406883610074995282658961302313282378182113737918690298520445000693279386384852142427626693343111746305347335463725687149973593110606157909386228289204630864524080509773135992837894898857769099679512094724760233526418271953040064041646948764315805325651562823410542732437001140773832444104458911438588556457076992277929953013178765093166135476808791607165524994515816142594129460893890241131592892898371612246573353423068559427060525298298635671923416641207071034404773677586525634343932151196174659002947990597000079267309996787060176858995591919503718598527827209094734932611856614775885663986102528591798981075810231349317954415329036638798634958978883416030817461827432149955522621189823186318001893228666887938137001090374807521912888401614975760492506955038249466003641786290313682306959736835619931467623735038975376178439669585483861982947699683616396119023683940834149473061866861738073038795499234149250971705221076262622688332678422559216470120467385255714304371015704965817381712570599616265951330868435566428943573672908479441432354799841531668643639986588975254621705456104607804031820475127438262796818482251211388250626774863637804490968918759386622945509408574067028264559662455119047729228028282574969356130608630023038723450464405791560751833484645702866335518832392041197217565835707511967861517476586339494580296109629044512329572617216702988203904308499905059448983000665908032521751700081327168925508538680330624150352379160629856759651156294309672909740922629723668163911612969220505680101869892344381109868511186549470344609074808948280391442232412411101915989208536507775937806287610999586727061367776987870589939486546642214260305127850250251800393602557088253538558948193032480906505448451975361542386123986598118393473676385431512783494560314910409133310578560526076130227826669790031866534339926811644157739850630295422783172840341144279816704705359226718320645524988720302776724868281896566830627964411769268364283425311412224514804181509206564745913221496704559301992876240832472095541308574707470339755839713152864058748128081286554790220898977190703691620945683129467684868013742103189643381291659480223213021222443188978650452137332637652333464355583880352525404887106949589016202439288091589895347053609708213183602697235977436578183962287776260516125332940139630545932512377302773234588992915823003132022013504877713170856592547628568015692295745632484188841307952669051919709967593184566741698362079250251512790385607748524240555743063861281988572942124335287935709551441409982850179575754564876935334764934572925158688670603051435626688864667484352779375303974812032539869544508592776571857068420579554206729068344092630184726831621728744374151501268147657727846124527700306689247006687548657861875306778593896344192163105536027900366942910675100323042917244138610765793531766459161287079808548606706802263651583853910742296332361391800871516490424503508942675449207544537631614667126872987504829497897169374054627645385653278724719259124067108893294666543309198247369277083288629691122501223053308762228163931042094813403647324012228997356844821851473186962403777581498735508820720932205651967683838543224065096198832698929344271820815291196977735419313850441981525451942744714717838190753339992126355148529914088227609668794948296435322058256557055537000358736773337800367077833691071431001685163971278918233129551243459308825128322882903476988459629945396558393094091393931827872278923829029686143415201747180591760988350146051498378920379305445781022836034411478099702238469524874664953251158536527203125383710010153092578081827268766018202173993973727380589626386032972327063449151830825549525680134248608543724582710864167159486686256939832446510914228053080415350445749018670641844652372894024012836216419625902373082886169822301764613283939554844319365967860520605760316079111862803644502291302877611732261250106357712777317261963396276944711378774777410831054729157972418336417800908651728208468997629974559716437415347076020063600217267454519448906478463723219973439386301381827066148135520961342927966924535814574730065481984816744291922616763072226859002207432032219058240162639242908290345147246248889966975259889577708037376849984515597192255580336164919777101378229409645297685913212218407783515409898381573169884215920162741772136020246210747425384671680815407778987707970362481071159015930319629520313574040711823512987616194051195818689415923291382934136405765570138736520082251569000797066720002456386746912975507142656534455308958966295595204393021849378200175372385549854411858876679688334764335232099667628178083270784796211798270111706513474669167118409094300435059325419640509325626605763225680939602612823186537111865665651306257117096231989514949161494979363412777992040300639859875179581938997831809819949631840206292906373609064761780602902723295973318487188822950541365918253665372733332244112134374525417732854013443346894605322609273793340956315683775509375897518564311618062800550029995238372764404626610510632692842215285268385819416812201332608465258976204677326319219336076314467693613889942669426136481991138077120308447054020563548072165653317270769009572969052508417154952657294513821067293313905949805588985069033091071346899679642341344751120665618860457311005400487340692121244473183375657207758516522459304247561312253951439587985655913266333949221222716156820214741799157969433725997601288502688389519100901414469547296997132042953508876594974079124168551625517877307299867546040154950226765826283784735446694947825203376346047920611210268619596843089472816095894370117593089740569885005165506019419303613502470651948649658501050062829140290081630603582187380213875505789589524901312234411403401703436485441579886692685993068765403070070286440212111953559624453754824087888080447604948358999649666476479091697983951909901375580708458482559953573768914276063976609973795056809820397648413028645808772804770773932640838450170573401188450578356861425810213104671869530156391009852087821432535655390446323226681138301054708942368081556912240955792981445257817949016911107505727323165062619411948762342021455176873022492788238762404179493459442967716106846053068627473883586381681277571844792732837606541380348667564209533972217543758105218627399485531272283191682075919105233266670785562014375320467273358166562971744201512089378417586473390507428486701683324751383792728436069508580588927790407569595382016030016606531673425710340594339353743088031810056214023587241443305960017540430702162510501591489680402047860898091251891182156116346131308667211591686304776095876411331591275858581893256093282173022371645206911523119117171430523553289888674718164373311522841853973682484327008748627999725675828551080954717212674405302931559916413127383924182098550550137284468751958704284476111715902047388652065766273699198899884849202864277688982314462019087260041998179769846251000779401616742261236559319830809521015709038948263715662076905404098340736309258531248033593094862695345180300164139968504172183443884707237493096070320003574972890728010807565054728849295729005768989579773491493602276630839596984301732436116494110056006618296105710831046929561683923308845097081150169632825794272462750830971685107358446026603379004022420399691124921281262481738826380996193785114291050883175237232462642070358908028717456126053734646773340332611066563268556292542661157299035367433753930796891577914037022986426353164419889517146195256526216979706125123401065339582065256291747567575237389397334448594418206292482915857888509801362934988508299683327047656459079043441303525792422331981392828166909569170224585367496642629268685958218396782245439689658790659259763934385289938270020753431131900040756309381201276561186981237482530681935959247217513160279997184830132163409605373875852731310979551629059938362699742769310080846643877443587498104743736719261666549448387118729726826999210690031697177376736476953868167022657858255767408219953492709633244345707648104177752760332745263584993832892109416420003002420248339359999911198464144702452455087587403446290307455570398012288034430036800120609643061432254181023517636364281262509729310917330376202858618901999249755565927863685721032816467993762753366950213169934712150486299457349649998450699506489529408184312648874916235488624297614800523776669971100595458009972932209107657648202368882191700219084608582801295152308912965359885325616759590494847897493071754368364648099014373805144964375053969810515501949779765537246504455296729209266896993769510971027608198645377913899917778641830238888027644091444536732849503850871955098339545990634040484845169662615025114996579450892903504595498019931404349252200624267803535349233704456329699935907451002945771377981236901026578693683682619882654027000894446519057295523951515334927501402050821581618731191851096886425454758592782283182483066565649182391259258749725132910376085868964357464944781408812464078308517788629943663325984198523637781920026853290422876385366512918261779179332690560989233338814487627276176949290395688637797117112694034672711698657643883061203825437117994092662748718221135479005496792973469789081958265858343294334975649910670479642002229076646430932674808692357254717576990699282501690325659104388356783824437788082537296441419545201517709658524672474649259751984403706756486772948115254934115306139416007035555546131027416390883461310461628414090273828034280627924588302291689352962050195888770208867788114211297821368704438127801327312151424657780086562734422746300037838712354617540116662669182526982241163386340221769579563651426847658925744752622917680400267325016647855535757813616832979231768586117590568347356062740743335506807044072789697371223443186208127820398922527775307947953280844413301844544230365335948550750698811835775424993342223138079857102762377681345274845836362111538154546301540794809228103036112451398600309523938237872315299664796294082650127944601766927646420010959423291029648809484992605399744009323729254653780739233015842931058819079423162813235180536221891867755116666514712973779850920254754121734468290781204745818336603015044691707118166125661067293428453337142307117162065904779098614478325202756638279345861749597858160719473190988937393535148964746772709497334292830187240471522659487655367647223402710826147924262118138076459869550586978010031883111366658607581876960712502192501064498266318465362153363992900081874207846486788160867685961640766303145834406178435449308172343063818579774748888173053570936583795054487107936571430042127278781033846733422091634762737251730978438174220895583362673739018251150055722806140674317028310566215327681517583106488032309906503881489521137716970783959352462898119605073066079209958969774919862088023780609469955629715565175174057668416507178489447024161818544464787304485102227457548579117823854156268883440802354239741546698877919898092653732637189324245801224884409861204553759271062395409645919780629060279732379796740526389614170591664215286959462136634841849273313124727641371509961548064282138630789222376068525018274947353309403541339676692073835338757791305445852964458388864448811486736879149325596349224275909396333594375116694004471880373355277425653567815231967977178352697094791676754496290674602924933961822540189692850496494819178660200082759020532807409693582726703446955678231419133712700560506069889691958376926266913506318791910648969238639450738524850421610038568685933716580035831214145930370769465747739486506175042681735170729028485611613393231945925737231238960686900303900712396699130073982356406490984648613910580080524785181389156584123680525286178272406687651314009388339048590827315506091913239642003310984392655115381629064959656439300461164319426355916151598797382076800733920808073500514981993920278253195848292201654565067733260228655634182551416310597593696456215416126758365986184236271753245819853072128566665391070847091464000054815798191086028402811329075497759502585221739664636671123484735761146448458280515349228766379770104383962940478714135446363800940941342578888763778370753068849027098266079682693546889627085431618413787766070511660141281810056977447847189990679301047241738447569979949679411862250744023836005916583200738105075729691714002607306455454018467013080095831835817193933892211708626417617499339617191398247381888800392838309551590315792352459322644875838191171078511525182011904517985058372348352554594716485449360919229530897293399571225812291802040224164031794001099545917570917104127206286107294786542094668879273924542892107045377021755249055305539554546304161193151704748551492724921546474266616126780129638886283975672404394897047831561825542207060006172058211666953930495640163648728538367083526582129288409568261533825601402689806112255027362574892003421862426682468168653767320324955078644855083964193466154891988236656062180296223004642865197988210564050022063284583510773350373155438125939380187200369165208715018677340350008327819085544367471677428695146498593645694698357912817182915982690790193873722480437381861152564306141606444161374053357623167232850660561616411922583164535362446167810802371125630046511002621338112220419273469329012163064913978016453123923691094354463908122440900405182215764182102646161233376402469018642122033418202724751126495910521722076960433702021067653676717535272696491738622668254354953035413359846412874241499245034321288017807175771837942589528196587355977295860660010192648788101523901762895963603295664414594087516074150199414658693020072412262239230995426890511713340762312644973193214805039532871300961909870663996537215062587110618408490624347344163637487486378231040634988092778009032972477434685071006196581228541532613553605116605333877926180509888648026161241869493679780607778403405487681461534741215936783451117491590542825995352717061177899978174540766453503599764226369628020011273280931408947698445890098354626810260570950945758269281883944389388803820967439387897168723428254461588748639416356646327584717453225165938067743541504423174328616674431662204889923342238274844975440714192111136967027684046755192782427951490470602947513415833728727961806850513023770349219544317815851956590263015115254392932119769219558198135683436265784385114431740917557290934756739119225774655905735591595870846051298680385329838988431037266330538607149775868231507944026275385229481045156808783366371585936742143980435244212940354063483188624591178944924257142950495100372602435992182456285956542001414942460546043620202131519906373211906701364406679964925577044511600665733921836078324203259957861290268578959783483476661464474213316823807800476189432486900731989854575925920043987091020583085939496147029470746077143516072656665167008106722191169694454945959159099697907709440698039547465886611761324866114280900835966889998758412564153380069170432797771022964630501631876007937260340796574049679977588055321420971377687244380065653677681136644345153816882814449164537535809363003212004039338779444443198412797195735187077728618012553865137412313093274743431802832690216227937766958762614217930297668051023343154460222952829655425590856428780799162940857829538880882000567066197493083318875936439581109548281737580881474382663808409134310383606779395447425595464179435495994324939846995370854262972835591391120762227820032719773770273533791617794718766737649462284601586157747045039723737549203598119834285872319865424808526463395175506748115179195654690382786123996369851287855843013769140597359134328878318128578079499397060395123767573898997822798013788886252697001903513043320740490190582858945172568604357815975397615113081645884772424449933430505698716059899341592796853082455603040205667506152810005662329855909318852803788931112573606592016572914666062077432699219730577919799899814618117785620176619519169656829367853378723682776040296493280762938367280537847802168951637089930292367058996038453448160730032768129482132676945411485586915205890608490598065891305458761694901421791044145177370146680421498455542903862664458761568799794457594696447574294480784090242476309936169451365483575004413270553957966200021382408086676391347534459560438807492906829519905345775948061679952639097747750981842220985317014236252787601272919801819628023405868740277627470793679239339502242926587668055668756240378962509295556404584868051342768696780015915087538741780528391950418149453078867535517197224542289216072689780204959528358257778691112318752382141591884816477981928952730968617188115971332102699092955985842479746918822303636576494017499246755437474462983065448622720884113776805306648921977767220877734131814801327995210177851651539438827420078342471671237278666346462949443136340026841091821072209093661070350213123314283193063007959040640473647951888703082305809734807976217129601555205002750679276751111511817510792538981669268550163126583870375762078681071783536813126087646178642801350455441450620162880969225612930666477798751883873387830735419930647902237545190277991279178525111079280300721571274062195155912032985489572475950468117922631040429617330795160297912024171553446862367927472032023689624916937043797955175452477804110006800761874619234583835738465684980627144409931744148980863145803855138685077465140352294908566662132139004288625683834787708528113788013230788510719903526748454512203621815518839320252197782135461847932805674390536060315077050627244675869358932234136173888485162166953519422783005212952950613711871071327078415827858131126368269022281059367716153985702625787224834206933744302968236001729436604711103533918026440594395440254707700900420952208170836267948475708020580438362256500044337189108364218742545847746578382858526418409631124996109863250049685068474764706518881185747169318068928112631050352738211857374909738922914675033697658445613206900593739772862761746812726115186160249846618581511682123804803594126376271387398083985086471419353322131282698612187549872074318479050811303963633230639592943663884597831756356457805431779357427487803289698652954918478284274744061027054450930394285437985147874452736648068806688331135701719471866315295648628574449944622270004635536832644446271231926743538759376846824404661120384145503924249737931469340289101903339463180126379633425352279706590278800797899226252245809616740018155455227044733591971376560296405151422960581162621428249139962398634166298810386938707137843557852088303624702545571366468576530064994938112819438090804997054433288383526825499238855204349870328395663755932690712835352167096398727174018657255443546005154159355566524049508628258710496882648331179999102690097253049673987508031413897917133586363645085753924226273057326258247437327376130293989661434207510923344292209171925372445842123292707335630516262940746919104839965583610441760171654490523247874458575615280802346098968975030993601740231500737094258178020537538486015824313202284533655764260871332658705545622950567529216427709058283060502870507887670620979187640243016112321312975984256798126815565060314438417536757028879492971234143491780008478921771667434217573052035709263583180184959745891167891968158421478499299477240300299427863645874033516676407713085248528356741911821064835186333343126513482922575776985489547245669177044008083110824619231636695636366726742155127548990327958904324026296721736341680734535136002621379355488682887670165881886031144465455055293407266440514655108666573716822222210415452643751634158310055282967704481788325192850285479054424120919885382854765324113930672612627772690836954143386780878095689633591557080477366646851932876798909830613897777359583729569553180491672495771917750035582785383354895136561239619101014153862784476563149762577761482309472274769825001925160325289046069679877782777669505030739452853949818198691807046637872328618390543083135962786372893905546909427103932981225633449459722253383826688840738158538753765332372356139206539750443943782360429024414222713990734991720557567719114941102495441386710843223040160020017141894190834327303407078582603759644385340838711841310447807923810513471905628638108010268392078725237651824491951154283216353924942702371975161147145270034036761041218985528257111546650241920644741826973008472358670142815292454335101000664647388081262750288955053475363551784833708288291261061652082591496622376852201085583300108446301158080162170848370904995090829654215002054803403883982207079826369991832845796943962843687037951590944246218391867253345385503678159942101148447185508581343397946581146898733164818096573293363255483880699854673540976527237725475293068016094010868728736025158138678713884543905067863058726543866039499747980760231715087772446706682925236018292058163553680764951858542648972118683025558516249485645715464568401848755675001176435381362785818687003534012293268144559284189018264061556901323633802492618262482012870073700211426696464081489851808320239715543663225953009088368171413839664072837792247551222133251972538682210884720373909014654814075004046707409138196243361245903555177828961406655217622775740441020389620354672841343494637626478341671249747762182339763394690054743190550158345983232115638631790285985608995535806074961344800250090232615625965716197784631205642141521748489230290383344039822322406462920357925552167130236856533963197508765063575832402963240616409369407719446261593001552416765748205044717334657944119134664180204260433692049659190641390021752298223166393645118744897829665560522656379306505212831482727576852727556505677102035685667737929729053348314071599955557355646720463486767143908781063568297284224444545175341181936549479408769527080524644556447374762446461733685320597208950493474096982226715272600536867950995831511775861416777262101674352483124748227085167446031139293368929172708066300030994141917262299547460349033673547366609775217126400754834798072131951423951486044280910732895753644211332377498191370271995875731347949774290645078584395332328038383047590446637648608762084016894419801879202921976520220892635459470944387298331437890923885699231094684577638039715272558212386945280184536616392331265957225655244270320067677887707442669902343205589924093063577337600056517662471359708343127677771745492093294723204687493237724948377211911848357046563609060126008818849841320142511643480714292599512062752003053483245002336246121510744988436888292974733552738075601696701495651651017656491876405435868677032452832422607641480111465333825808955154779019375364580693912939764442302821890594217128412282157926568830318997230808775226269243175941143384803276985492163046117082273331043173165172759757116302540440615980846488510003255181064470694676856370626770909478122263659741340952228022357429969241458544019719528960386900309923936172091735014502746718856338818804474401585818561550381606954760605803468893591652864982501832180175119758529757620096012259810238848802821426930978606906014370934929933491263228646570362582520113737520425938093751997431878535911954078380576795561146315148200030697955691038098844029126477267199538847075966182947349396352503911948246458421778317423692303635943374806485206826213930614135409552679463995678375473910496157606849903610521424615549122379755735448294956835224280743496662446222199220964552909345126769562032134138451459625356051363792881667914221816600615244882975124336223453669662557218633235743841941676695822499354425878440780364901341585511210815096134820051032541452421022090642885614372286086448672818171920625103286927045217482762426436612191323995528845160669898481938125322538660612670285475944031913683231740388183181550195332368692374954470350947969387267559499603614841638048178411699679391410572577350445081268706752134913818560934831410339903223818363259393962456145541681093878047948642103834804577800452377750368303446720249459379656696636063291213262967435920201387012097254489968729744291872109715020952683742005442539892589343924849172371778240038513056257412912547200463615948541045032618054448809656039408271391237985126197244910007015732081964177845172771951559785456344805099886977390668414327110516394097359790222424580942679635527335232958078087380800795157266496117859527932225149267485686884475778113701739974492373798209331441052469750221533676904405936773812216028431819273778877166943621374491067798268221145216851174074730109414264252132007761915848426554447085366497293357921906606480145287461437762594937612712642832646941496972880249574418765637221787625569317353250992110409530639317170041525942593045875060274691572056956257893990889064739527995303813245655203056683073789842635318637533674518052417868322046403785631446905166256649957204005237798289735982337729314479949602705358367181766458376505244868586647895158423479786723490204865934010110608585837818202425042886908483644481316411619085932160920911906957634242262267357533968766995008950519838411073090984510895424135570731552707885579603987542128004642332184173504032919996533382456426286723650889891712296859260901081345151598541310817488502006482404567633530401325104242740826806833762568899667199305912417140098230624976400852520826642414617278423262279781818334268905846433018127104365978945115485274785308694642565619960451591916737059745752720526106466529867543864684054333386020121155744254709334741852318050324801268791328867889343328269073977237771951315584713579198127871923689474092044402448367756968069944464096062752511508820334477053611873768507505192783516575231496721316731159528844247322828464628738648706144782957410088244173458428995934890553182247980320953321847355242035830397039173402592103171872990636550279353077686613087240751167673154540911520318546023457440774362870791160448988102132134450849406454989950090931182076597258053878060983755023818153594833376574553329855767720124710360699218760525119248550809204000821466315705790516426071782932856556120906521138413475010885635924817900575696499190760516821499632930047833775157893576405417924488345404552565798736505708120079999567980435350767785730331723395179080317348743973634202726640560819857521130036728702863077771005119576646595994622304945151793368137235997693434992613293127324312326091157805130949501909042009692057896638622118064475786070314951152116763029639087310494453015633029548688590524105750434795342287032193361598497878667037117658230623715909206958397651484957372700997196278651431309719490680915033794525653522965688913569558478678605699964587751408272311966443949085242979491644789972489542481847493225669728877497228399963435479312359627148591397453802766508400246566059507877761527846844448409920468872912851742041788857672058509568266677037317335745412903380272558414744890458236502476851156566458306372102018117562509995756956449755050650993937688569177355883144355660250286997488201209626796104695529991992892100752982889060593924297516874551972492906956407803916577557291723121028256536678495417289157947694497344487804193993235652054086869795895234847079940202733526522355487862351442573201560748801025976915621134344555106477645789958620208707711644859949935032531367071876070461984193569755454526873916389352352159763972447613013326492907453622530092828232982540373251520405233191133610509221810814535599324384341309132808369789316097638682231867365728295432939093343981904536199457452275344227043885138225724518469548494617320657022997883221668243872231217863110481108068760864742424898825554495937479073018418441231501497828250947937141085570902184312183242873982748056258834478529701275858196948286420537265289882492955008186208305523160383097738081815609524067441388667430938767700780516425393257365907715468487009678409929118308486424469654432754041487340730262565975012854709732980462518883732427225102451589660386845214866558225018203015939169807273928525625682132104184893090132899649830199201642754440539712166405908192225906132048363972394499130068837526558218506503252462241929828303917232633887584450822325246562132878289781777170679634627990448463188113750018124405997728920807573554988616493660777780085537026916995867955530765449449217298374928973175213230067836079031967031299040954377817163472229072423010562394762718477415333192039228574484669998427785861693260500601515583746956524798704158229682508145191413245885589032135051026968504944932952580424892079906780084754405641530900612913137353751368006789728105391150859621601048236590760593765879424793453530739957495224713306965051866927053009751120097917294469321688601541765503877205688676453794440859280355832036206111510467309485451126241997570911341676315921829546014909442939961194172667285027021132095262564618527702628564167443661512803804799749760867763454133353141845448059275550350005352702276954239458829875409525389355394300690098282767110799200284389092605429852474283662877726271905741069038364272982373431633396225401483291830544470730034485317581562547073426176754850726192962949588445317488558482552854038720213547044781842246941717113647700120984808381502045140608589212690096684341278541936122808612588393912160817500842378104541442891255953632352919409656738101450638291687835978009094439026926755522278444404678875956615340532194422741320785781478478398553932868973001698064091600783060382656433111092519797261907970250436632780000966977666489000166651581771312603737728419145102323864950574499220376496407145950247413481670433652597838204986412347715651206736959613367050081146782095245363985361962204956588230390182912822337990012644910447863560055556213896633886189114270887149695494097974675140688879248255056011688638367591576993672077202689460346490985574375637018987198347922241809927507425670807276903863164672647857355657141655207158675399746933739369655108779482098638935349696883680370776386091378908310227729678417852120142876878967837853673193479334573378119532045612045229337131695625799959552765121520347047573715083779051607586988401749682336229851614172027531741910528708355386854597103108960033646882292729006680959699343171805562097321269424108033714819978062116614271686100179950582282955360363153453272616561235866871602655731587156928875398966675882209495643002399396339782768507150114179482442421991562550213675921024711922284415225421172402250715453990253143179346439759038197503292924814654719085958059834899424807091439274744386383409382135537563954625756928414781217518915731534551381764072915267356496772031986609133283728171895486102179797040601101105853373125987582159319342357805209571360490339657273965733648577502177132054044801995025366407365941742375303234881586812676275398701817173564782581437966398158313191388327678674958048421434422054552110837202631141183739677639393640755481886159141383922967586699676159084577940135629126525319163701687301488822806451748550359395637136922561765045753892718582923470245048728449420040192873161346933437228035490528308401599808841068947034118137704936791989945854923024480049410040603351603850930455896326617214888139403210032021325147436427630936403601765303251105615899139560396180570975463678139020528949086276053247433275823564067764236599815919229391578298617202291093010285658867932724003498898181333277340090923262855905190139636167202674856622831966979158675322953895399519243135736008504603790452745165839263919435292368344391721139837813690912534730484260237642970421176029479824183838494287033202293171902299841188175748507616776779269227646122534203536018708505246888409752637635443430099481307254796903763491084757051575154464381827963197784124225383911818648267694890781434135304767328253844741564791915597965240017236687828288118615585308557064543924667580941366474337614959230671797752412323772475943300248818392812618593363158443124322508038621589527279972736919505061043613572683023610248962705788410337050853102064897389215406162088176518561332663518504678788176783351635718551243500712789885237865960308415041083262197972424166460193985715990481061108778606983637994001995082107182600280457026162858998521388509095403699907430194608407754487741325950850146383499435329412788646883624366153197078876619591862779506688459190554923004048932651026377431453157458110514213731294764018556843644033694961781323979170847508501523003375521700918326813128784757866620828671530092904668762096857208763150064527928994779112676276775650099712674940858446931718706927484837224260511130450841535791877492478665531628631070590233095448802769482803766104780572293729595160269576138033582493765832067905836730686151415659174579263805196312358060977660649166907366772092134787592232389629219408848743317702988772923607495858717054896230584549716665091151250473867518519372255933796765304997207266600983282529837536190425232615198439035768619548479619392505640540230997317111816918202325128976818722641313683391397085899926401157040553272278794695813130328784677720221176002302130856073899806591079780252966755349670690022984519659440159012525340566400079247121525437802893433205525371095583749572829424365402913164102977828076031086365684918494558523309919624408096951783062088423568370597905079186031475524811981263296848081254108239000787560467248532000724792132303700904155867240733281871132225222152358318899280712952388257464085022516271337163771753058795218704345766386952451096522353273646925424272095077988411745545868122831000006882426871154543466854145484032730695193718066907473569972756171207258333503356666245767448127501788652265631224116148148167071869507947981430309930648557615433760254950133381021080873331242894393007899217897864683745269342544854620053499949848910958234079548942620307295931864546836573031659699525914331151430610271509510011788101691954936092856978922115869845184506986569372663082076520022346536843334725766395093015222521121314692399993331499396264056515802001735899545689481249950898369548830736818047647854938469596498829613692955927017257078830359829952935494375351640217620968141364800951033625262569044094817722554873413100982604449931283577168909122914866012813164166038773047946193126830468808159528532105273891687959467044158273248919928146542109449607456621342725233939672748249090369467154828038001330915390490681207448961095663891341005036096710517971890162291216880982519769267882619956307403053027987489731583316814045721995175641410721373206049171660187775179212665550584679890801716135642009917248501870025075263615593696820153284616514342011491587206357667019146989361938387905624049511714747697704318866858182592086264269527614944779544177471393041538134654145785343268062046783361919840973056759722951393408439039814364599049758856378969993788987596174203597461445676704243827888117279099904302075048749212742952668381360299537601891603505498457051424889586889088712058645859429041296113335624636794826471738674307315745657888804013650382694426292658588426382710791564444148780833806727700752965085123812159364438236505087324376913879594857717467863264069375740220511867318345048642650611547559193950723997083972570787793815703514337160127109612491704033470553768335783167717286129031834565557308510140993213967665442645215941090366654617504450949508050233473303327271102129212302139315557559948668342403634685815201183376095702927460951038062008566506287615118152201233394186692055318983511900614539927391630509079142072043537342334241404883646712835871965242538258244634053117881156449466028346075054044627392364319101551730199120089201190400443994335502072512943892124054389008451621780700638875453388454772538064910124877278059587897459816023122390485163497311980549323008593665849004199168985972570808888146374352093428309275018918801753115910023269913708063550857410667844530558867218247083536529011746062909127217115685927323996933448724135761436021006825088833880676395048221019828302240339111265551742606157780898443059159079212022123371498840425308211503716156818663641361428493852904959479924023028504925015339589439754101818796046145763080551503427300161468896987903460391030733557872407132921353039168501913095270106441650151000209794871469729647055102485654941961697655584155523126910565236839509438879648620686912959691605926387507144419670793439444163422540420251905909132731754553450581013620253337854178027636430158522340637732836028763486906025475967034458401456185601601914516265640554137311748127023783569226282915746997864107724298103415254802497202677215620004805675890318666643053829835549091006795896636792788807144780386261606431003817101905136196580172419657572130352946325219020826960698167708575905113113403847060251555719979374789585890594178602778847248265607457690371281542627044818524141872872742222020904139435415201523229071504900434214945534251911168521268335248206556639426583228798898723961370068095663522666939644294551333391590163417962274334805977890842416466161494660325840007965317944138882592239195586866637837090900315045767585460027534374088470200454161811898208335270510448820350584638673610856852032587182465295603627242663088879004894281819976401744757498457653378670165013520365064381761073871184758524203384502950831751866861782109558946674746362493912225838385667162355755955554269941732249974962283090490236366825719927944685978549903975506805697902593587592626101641304269053034484885622969914455117551662944432418328685986194858703095123998027163095447121044308606824731728260007842397924604469647550359874513653416803491432836767289299175470524044513732030654719687673692602597568345247803130131279478086129651973062089781413945279335782135023712050081851849459613566083553728510454281079627999319129332819635449282510529739801740327414633977815352935851573637997348375010380568025348755505177379777690186053265529180307862056595050503048312245300933084728937679813436275996211126116903027210683545663495227648114034643998266897314665357513848988366812012549847719915848308335590620316522722397252464706378021546984056784270223961933903749239587150341395112494470849181762101435910887839195014182112587812474054091209751475405064326242280211621286715088015065674337590000036750665123519868610573624451319881161480512777298938823511675684719278204042500189882992696221618089247357257180274555673467424270788118777703929589950636701387280920794843108295399027359486540230782168074592545620760191611938862636416227388734225287102792917907539523641782445000505903002724222511558582025637847062426854769121286682212723434710988585812451297842556168259333476304896710437105659385705519217455286881667394319739120031105333700635273772526645495209423722542931050819941216968839927628367107399907793230017794210605148559488875144966698144177467100960822506192883666852413526774021511579139285696963479861797920856540185272885666436489623956179440839410485932894649530018934624876999514210921615824404297756177235838036706549387370901984506323264732946284466541929506791659425145657735141751531950577181795829015935032833762230023069136918763507546619875814362768725679910574405522726083124706503553790641183326009409005127917395138410462384063084120351256250454166574328274549817030956492756547290908652267802602601425057105429263013091019420467299210876601178943122892841725732614513388218025696375663673652470265514956806572551559048875271905614685147408415476256995080144118979736770992339208333057501313867107567317735970976904023164507155093769983358224902308467544064622101064022437856109175854619264622811870312877716058904672873871087951135580897323227141224204713179590585725688037544567263267656858506174433147786964030857837445078000139057629743485232512595064732069273849383638714318259046802621274426097897853642322477523352371501740893522902689622858347133366050989219834647992224115429968063593485629767634437063371845846143964419765938566048363996822523397098132313146668209537409057606925502892859839763772527811173252031256857336378315997881530683944793942649640389837533738834300012212804015989508143133350981823088035122356754898351723303470077545033267008202706093480246785090488600634894973277592512978815503939127561692413176849051668495915273801838322864782087165442747261626018254872553072804725851230120928527828519737283081119791446383273855180927480153638164232810903986675483203863790070934782321651973917202432177527661982014663564840001127699925543652029010752634075469986472478999308670424803840409563356405521140129604063775319874469897887767006154553199209337671028963284414137399256159633575517426855824552421661854610265229369889802289644796289731309743604260871367485498766612389449642215412480755294308447954213292647602521563876256924447276579688558193604900972570740075030029162164216580504810407427618567417352178643290623943154815123699800813579581399980487723823846669802434630910548284711767874655172733271013692387091833972087613519552439987125905509545916699383184131154290567217247885926549878289315341363672918807224259601578907476086998223120965761582998155028682573953563544337952747988031316671702190720948268458348416840345513869590596179530746873162366887664176066097528003730639276573355982319058925859349525843768708737354319949249922694865475936276486066661405439686909726799026483848107689462803458966882306391901392101852015328630564856828148767558235148538172700600020517020217641657218725915210856580246712323704765736876568181915338693255678215873426830657068729930167366667385419938226853257036820217931871495786666569187481352721158885108147422397550196073972440222583666070390070968194746937248121969340330143416173142765477548026516429654480128186844171546225985883325159683221736568890718879986058398897004968804224314563103845834256093614315020955260173983878529661949892920763373358995364437577341096637499298208861785716110887814812387853900435749988087703315594898468464393628913178983555450292407962721736356207903687392020459101822358043049199102714723365410704110876026117644137423272093859919854281818135317704791878736243605874158911970018297874126225870182074547154119118242515046288099497292478283042341837970486401231577777581159480835078798465618913306300861490266172466668829730183567471171384820184789057645774757533901045720835699469418911022326984998290842736157326173828591994153428350865606664735093764533547723501408761703005637874350302255770488083732401271307449756994209026952638612266267065500795830154372310093928547609726889390142854570433667688203330921124022010857337844258487190544239360820499590027901537692861233815674136167972786737499733044703988115043666191223823617323831187281590013458997840977990306588683316881965116335715545965794801889088398018364705691164001857292990880455089105310465677016391027034676551252488550394007028708346508218833776943136325530195327108535283274695177634881800949597199018432827385380160105406391783993286847218495688714480943698847718018215963616765037995139245766609066281763239060604539827321571313859379114159437755585552896300414921712934443127788867656776923868619256746236438088650034158905465653624226732724139499295601456339567275084345310578133302861247517396057113402437025620867870310530972892685061447753042004668131348092823781059756577715811739185373480348278473796121421363904627206918893008296574127476963118964597643521454841839366967075150175429497584028160930836836389900940441678319129146278168463072268037219949901305065139499335580594074432957015073850186616377298438202260943896340690117231942696416503967708808810610796459143988179046532867018409562711241104510030291661611895583636229736700999165542196756811586804914841779444647745254383952217560971112179037188551005433478411386337552599340072628132142454360320488023412771970225421100206979693368979037931022125895862295346016480034606040206587424408329161338883880804064334432361238491599998079145832584440342196471969240830009537013160164262860057440748495272085222118354859995768440338895100010523605772001681500199874599296855643088569944792232936896169797810693824480004005533388463581929955318869669457150831556346541673466052615533775724660888839019762158679617277616409285827485669342107095114260897006200135178597763273291242798908298463297683396830630207162319222471534072572575984081498479032174174376538423512938560001067086309828785729336632315172459312049521322805266586069206456594450346795297141718973036846783429290149834670790751171437647534907237582856139309878124009712249639974507171099701721959603437739105617153692282698801031597845168825647569410824373016344061131449883901923318535988958239945021572765712731127954907747715118914740932058853040210831061028771516598526460228610477655689999808241330274474261868023889335054738944580006301026557913296395012673532182882763473161284357167993123387927000252749710218253157061227305661680003066866238194659568006108841284593514283594171888256271407367798292729490794631679129321866489868180203030167518972521851890459792542398377755561790699481505768585881952455722410689664500950071376650683448881779956913510605897872649272854280689048211186126941772671565796849835120800212188203634649813941118156467293301952328087606902576363727487899926531761635279150106584138555342657712583831131389088437759913509888206374487531373704283889379610623992115226555010969932937021950631394696325777282829112818760647187961224200827831403777687482729131934807676052050201167663862576596386682180904605500304921172487755080088282675665709924017251634945958599547431327901103891649708294049592012263550519497639062303311545498122217271881537891633830321743933963095184324449747320563285601183158310923601751407005576725644865145641175061701588227431951269418876675263161923677504353641317742426513234654215985489459284959201064820701778428123654025539437139661475649943420581856224854043507291829235811978408762689484285107012518984693972720026664626674465548381630513068488946731954310147033430557553083157617870037978962064370458371098433075675702899116071581230574243085208653250270460024849466472979524139576470241775556146887933510027749337773550817116707666108153566121250320562890838265769382655696374627653067365735869242143910967094505026777435610778176956343040862066840202247858586865227010214163139968072078448397407983580584617943395800548443008913603560181359420420330768656164224560263667850632845827449340678256690299610394278738292258381854242631170385425438138595632040767366422819029060118534087656240202242661886875025910233220993835478814112935779579452690469644987813084012035025242005353428473431835528686718324018491938822833179582312502501619134390187228026824019577772926972083716896053255258197508117361299045247356322530054914061655170343706369698734358070482331184316070120907767546983153308447181308415970396469558188453227035378532115244641505926434068805095410744313127436909490404602270729690626954405693883735729177228874891473322910016703526125615130668467570114536496476704957958706554700190605430336888418559926062670398743772238482379756507615279669484816661637661693318518973165097438888692912100135826472838607698989992111593550101692021809431616420238769562532297071381257903690740522773738200017969202655552849769782408981766493949185862475345334586321354240052047444155728306672417769078612664202328006620574129638791111764159118304003234024308050167460890792897320274091267386302086945044647194490743387215616990760899248194254558817010190565877263939605348842848441950663583822743763967972796854004784260054068613269665264979105497022573140802315276326648970802572262546702867128023280064694441510135202453243803742817708851061225027264372389989534007537179949771593539684629691401686710377043030393716910269616709889713608777913211447911129629899514484098579731381185452556193669966462579883173434847842248835588538850235335879191763750091970030398918656956192970907172993596650221130219694402154874367021539640495374388907890293185265723592797462933548630181078607572258159658550700158345658527939834346249394788348240607058155614655292402756946262900740678785934811437771331407728952797492181464403781630406192117462750612963946932492420982268676463412946613421627577732064156135838231942951217576712231268732766329326796280890320096779628003509050297077994432465789234421783311236653333997975447798674524048709629127337225933476802785555783518579276917330226002441820686596901538145716229984993866313980721123436142451414357867933774139742188087707238093277038998788056177095120270214070174937324136070452676814313194662336948397181136808377390802386466800814016975614773032548250701425708848585908553693837225780425008699204130628239446155296077996952066560224176632696808734422201905472174159151308718488343152503181389772149410581833766909734335893187197220023313688429024912329837838018760641862081017840789638159900235094077149836902381962025868977966069658815568522187874667802540321784645958831028326604351202597136512622715504829589790815790671213271945613809439349397147562459716740437375895908887968989022436822309843753984496071933536750424380808238895003146828158935540332040692961432514793905571768199093608920332271055298994973286327083691182348767451542380939616192871274127133112359764809399582927495390025902175188811766953481228448946827076301414830886583832633645960350847784514494724626247912865004411006842289430910888468927012826168672721627717606939993257073899158036792448109625171932834517222900571479969976507100694775623698917074577122981355377464862508796703939430410351449331652869092146474652205129204080216950017721250418594666722782200040267338310320685002136189156940503441580769622359434728602680681558600599485327825816001312867224588972072721809906372978090814971401350530227302984493244387381450750683184963840596953426862448708904325675452190179349208358686770464820374979329706378342769173551098728700272293271387692907142785434832909614680320846485521645537116216962311888571247934727916407781705681885887152189354208040925882069250406045087007786978544700647080409407681966632247942220542676705299088125448179112178244109336724745674941632231910915629542674422694941764665739187560007537636703269389895991646391313210868062697929365024522059667388011684383418898196344257552981098874207946329702492450415085529065120392743737793691022024176346416356277932731622166206816533079419498488861738018759065052715954890905179698849938057742040502230014017904668109458504541541751451128440200908589723110060335360769947419321262488247838132368665622343740806819171134350165471313385074258993577682921947409612545461187143041172017997745274140925186267991245840875262214195587061351087562866850645513165639478358099933975357780187654304832423796769818984681982821100432968493264423279315645493303242385292253574453506040855656980662364347559950252568130187249180031130164650816962203602307369518848707850882025675739335997161160710282786508057954002079527609928460421647075627182061395317695573448869456941184818764930109169806420230513261969544673639880524265745923323377839113153271338474296324934167626250491051282180940950248994201640183206864165847288212236359130193943620398793469803662516404330878817485965925362131367213585642980590337583986636824517648742013080615029576896428803149631282463598594863877058158800431548977495526690694513488965052226244104678267961872915884415672811395623288191859785358451168099797744493679806224220418703985639098868953764067321824092757245606732438066805560881212112009876839676566905366403804282122267531855662727135401807483824281135924777325925616214590112426773757640099356991739139854554103324291441972159220178154773541550622009653760397191186568346959596069244870530653342914935758952764037356692475136014631166808016880229024832757879758461561796603168408062924587536517534741970122671072727210769438991739167807936871029164629855576106243541490336258398170778157585925860520146089046356373185521147723085919560239586810982814997857985729557798785768209006404551502142850181602984521666993697321146272357551125547559630843815095617215041918047199716207873800835842405593319815286260762337016183069535478709138737059214454704784173633302290822849376307909745720603392499318190114657101391245560282548968266795395127904003443878378527833483644539848730530652702846070597233338531380575610040853160386373736447660758047923649676468473666802800711994750405671612137741832616576855737728656749168673942881059860492860464441604450518761637540412669938144786330484527280075431013318834286755599596345962019327243628332039670292387684864857244600317405368899891241353755575159082537128049427192971743879872855786459247658890661175667879192031029298293897772185230058687325025068779958515409705839760961005725827970964365806229904008453046445871833115691479942493917916698070561952659728046156024816411485989002483010394359099734808068972166259905493893980442255652249633613157527156849242080341643226327468430805490644573642822335697700009366254635137380434129377673482051867238704080891692303855774696328950218906264974310308055760014479303682397784317234940834124336758050417133230788452279661774494343492446491696253110740808413888137960745723589653242310560407649967010417740831273989962430430300874534771227180080061363962098574542240489033289940126200565087061832585975628209750277915653456873364321027091706484181745471613496118531765220337329555167556083991498305657579394715797816349588215519889516864075796752752729188404037991176699555948558376376469408778601596615462753780354540654820479955230838075909870790330315607943683353844020786810062395593715922236318455653194374733315510322877334907010688031208153996159581462330840044338125703090295231254371784544741390180464817187774332438538171804539302291451209315985166472112248451038238953577495302001957470339951971620045698940796554242569274535982754050794482939398052211399821007545324160068924007713617523402142093270096140034305870832172143513997841428649475312601932441276807406711041122573528318717980143733106587391413786415721120787330024845724885711386823063707848093119180702871073603752851472628039946443753921992002322646156692234303604001472853115487740975877451278469234416893163186601056435528273041494135383713609144268143979637644813145682234890880204758373254610562821887024550464111815667668302087320332294783863495391822984872240496992171018473866295414442521034310408679024915509668486865607509320460261391948791332939453768255739607475041920330497869255235400279582943014230623442517463851898136028584325014397085925986631907574105509708324539062267155254811718590009931761930851900504174772675556802145211628402091051991976056019235171522206208354884416117415117641124999890184830362410665259357476152010340538993603778203924763043087036373773937720190666515786674801234824482276382457984727261356342710508979503510402810444568077933126035376231788965621355149489430408150610083623960005275453896449753275907330385339924693593948579315858065623790049692002826464321758184023469115098730838226244585357191967553387540829532475087687591828922082016385212469531161489093240572784587433040758263795576159830504133197554839720178687510867408644936686170960830643886234312556840279547038958010259582137170489592779046807175598405817953598488160691797242278958075845646307218183083954724947283874653253602481378492298670122754889327222781294038801134535090055017780123720104220022970401718247574825642334035219470049414899728150882868480373781701315240774104210663484323343655605810525596723428659091300773959030062658597173398120086192649271834347920216877057640944950719291271035585243146878720781195212599552390513885538654239373972627030970983310132520066290944543975009913688335952982384591867713882365726598128873759267573085592948343637375641500416887103767814412425439115758718734248047268158064502644938403287339552072035134200927150624379728794665515307550142772666269484548402690509866249414044266337101813774588053678895835231075334930699457967163966437883791979006259474723792432359304734961721594824615676979626100665749016271901445846482673264599456923096540043275451394452984769594358695056151437907803220959713100657320019129008407553547988414226481135666333102184568403590263363832030180348861389267900660785109558900792366981249306441595831529272566198289607878391091787118691930318092828185066369666418717131136552353484599792240562172967430329190585528083977258304535911733236658913848619026241954237467869301521073561575941613511520587740068913622642440487064750684543920303458679271727470338149361760057956533487442908066822844016314911886484270146191350394307060035584374064160741863204168507706416423422951026052431830113099724108139290661939969033381082878953261785686008124671623888539652986845964197872997692369716216609056128171558140850517779221436736812372054957859515837225633390436838014164383417182832447694859997506177809186777562748542075077501251527006036297440499992649456194985940212284249784904805182724115711951058254821315549974402458206496270372180703304688666337569982611541654815432924855901283174194062201548438886576435961545675578070896296522547774542804058416848504186460207839490357920916238495722632496608359410255810886822184191448136653396787558090288268578517377739065839100635672127526471596344788026541945099124285875620682190946720911037215214625872998548724025625889410281165565940489882487786312727298994085348266658757347345998837829454092546496941880172266155398933228143601037138780330204420156646692761741699401835884484110570917950337525822107039703736954738611347781735066091191399848368571235285653601402874137559204830490114984812046371783876301033550590477403582522866567437418059872504298705172930079944684424545348943639896928409895085298285210370121842702238862690207107814615853254913131497994415486921722095103947473062670855820688403100851000691120074709128588951203029641689268896266544878553464268517825057951645734173399628844285729415970514068887477387803996063253997294726293725902923680597397462120708026338778610389280541914344007140933455252129301266147264031239001092693747378203721250107773187729788240400600345958856251066965899602062201915726281921530437341307247140205249427169704436660410304292311519661238326667294778126468903213593482043734951098660740882429042386660213493981723255908209598328837943077371808719865448955333846776388353449395258823310100316739370537134885780802364882320885723834478343493867436617907454000647569226611326773777791597627422250939840299221112928993530546132411009097633062428559642294229288353526376491961475451122388794474091418059064381130694758584979045856353050620788725230478424603966876824827603041877692840421565404200050811461966224787676560613376957479959646656900669236368701191666594441799662659026541459110213111205731022088446521303067039701229057092274418843204704679588816144009179152950222671759638506141925245365370718710231709412671837279544362456855050867626653551816552683108421109125907959805412668061262829891754070950700281010397930047675358469047512587780794859102592216886574047482978063435446357332269873135554795119151895848133984432006185004075315402988657906313595119252585257737999799252062077255790932598738401263044615532187843682215986286491764069727403809953598942510218408794871884810403197441071942023519714525305342759203026252919661857458579382300037798871586774753549654052528030819618395918882718344857195442560026152078457262212426805162885936689248072182532218732274817818868548587092457325182221205743189101161523567549447845851732172914884048761480944229580394728571909879241928543179138205620261627228061836524626396080008508228641159858843139661967326705735727150122030051741580230990693024474730570199582193738768428582397646448892231872423959332058293461363281838512163038883259739087735227444818546431868525116122310566453482932552575241626378605772707395076498873087627352743447724334331105179413905950596712134131496967031582514102837568855802629707209887889812019695326311905684865512605740844183305810678056502645572034937353569047213012779832636649622951388107861001388078751793226834378086797530047913822164604571773238531108421272254893586498544703116337952125418381069325672516559093972463468975304129404575111465099106290123231012077295238255922749522881883400487468988243649158453883246887959015791303915988902922767841105206324871938057668648607770581714004458566174217275470706443516343894770876674884627813567775724685553897620997567832519054699265185061191349483819106765721277003086785395096147281566124180169311186153140967160356997247821546502414364719417269860879847137575707353541403506209810773114514947109930328106122099795369508438234973336136365430686930345179106930339620136369921525487670898373797972682933943290380740609008686724284137096596778647459564568609869803901284535841345030250556149841974001389605781809903197335030713452910909374760868993495503508233384295482932568193656540976204147944618638783378965671288848698961425017423407759978850330212741683777928675285036491519867628526524058710904463570168633477072066536214563422012889819178760902080577357174641890700610838338373940420247451860430886758684546270775560331346040782881435138078986994855882572860745316246724335607249128738262354742040247068047443829105971690047389222257078708440961739642131219852783602513132875251276137216208465989339975252886344369353900886173323100218376456194565093351498969199389862271268689799785158805553133265271407084435496331184435602038939079323533478237283391843385950441037689636741927603541710629350516026145999625657729085809550801590437814238489468895014641683008096029760450690801642682958321911854798052444864255017205480002551176810080367383671512713006057108416872983359970758296354911562561857421768553062705153499997322195601848563714514353200727392707681824828727560393523173901621322750458875133358937208182536120210447250839509930957247143912052947549693608882390037284485052863905595975342244588588216673544497071642649105870581928186088544581363912639845075427506607988459969514978457714211839651376573901398459447650916531750608466209762568228234974739578074670274557108852845161145749252829957779438846565673784170265029713056077416649986610299251449375355118004572781814031667334875562007181265707754976693215602073203788532607279583787194717449662802597879991679183679541411452142762483090141420107591473845798813608618339521720389814580408468340124053470356047356142819216437711001106786323541286290352561772223886127530523868983036929201634761053304942036672161000342174734012101865638836160125027402547190466206559040719515064847413888833285224384154717959469789217157031003243998484233643699263934358397607556806312699994463069964929963955894652955945051798558341260209153409492850613063433437486719591099399401810182609585812403067729320329159013901364174865176802471013812843917705504954890988263794564514778216773933584715509330405605537011462738007195542629838932168296822510202438984833428187674028376070273349478127186065433705370852029169764300103067708018064200701662632882767517186554376883889669339434501469546548003028448154977464218874025469353133684704385754750209328714879665187192297888497368267874714137945749487766045853700488735251830325969609340075788992790686006632338173438347979162955105271881626636032671588754096147148370622634059374545925946547427569535584709883297370331385547113470050731517056008261290325287001561543717793501371862345647887430872203472186019292955082770014064019619343730643124011357223365620304337705321704000346661978435124900505821571985820756218543739553071720655859567140883750197910820604409757917116971575583511389401361558692213656896428635276229074063212907125284965344304289382185716004796935360615085955514298588760180075266534714614182788803381799880336338592090586770377312342900835264755390314873340108434576697513428873588785295533512871301896812796797764000270691100593950850835111071859974729192367843577071399910979160808453310458308241573946237591923576194381882225546202489542218489130222609752698570740162246115120709045098127556321127050468704590681613265108482294654333853302537662647415863047449357346969709785432137493764193992992876888508384410747214975588565622165925018631566757528879525106800499252431283005178942579664681812897335554399514625281086061999754770885953335264860228556927401163065500502618400433366785302430560396950344580777773854336175717892246741628834883390288793411689720920260388733211872181988885370513925777269988669767183633036607321931761389432333187954939247357464346567575318211908627321123417795348826833278756762381125381169241349538971532799533984056441136111816468330695345493167011649626559185548026779397364498191958283285169900479535083638386808222540012382488508924914704574332953870041112391484091393613827961739064806622071968750494105523102942052331804888063953525020944726797671820851620632155373199023513352273646297608193217919946379738209574849148839702187369812587983708277363408208281997043107798272582332375614778532321095754047390314313456210634313878672738016417652660713321757536692594222747706872477415182940012907388708216947313059489606207728996036768652710258913852156849064362534841372196460479216418737536972620255842920646121606236414557822107168820438843581762348508639438356148963137000880551045296649935967100301996994674225939954650014215688027666141688728511688071374643405247356331447140421808426768171214938290750130595626604167708721007593470538840249328812521476606828223083437466806404100429163255752429790844859928676033760159887787154651906447241904149804683904149832148863787150311341662901586600757061727365070091279157609348441305932877234389278177423180040067898659625396572390436551466426344682499800176550021005388973003551723925277258793178545524625904887019643492185965256058106802648103694519739447628569183128648652133357551024527898073458341452168780878071225724912690228884825754158851476705802136751087135504423347540686645745453316511423686828481294682610966619269100297243280190451981496001770721993628611169051191502165238633406601668325834116448973625759111807155929430419153221692487018140654984975076363430921837859919746035328364185900888680295475430554982355970685892792544188234670925044899370377866740494119927594864202408626209842628895940020901955367212988898555162493158989886084934819255287900057784745357374908747360607469850781180009974280806923023790132618157517005379552005144034025179005876356286991609750320507200317810965244607743889797058085734566809236978667677428465969835463958269393735602345054168249050001965189217270000532338946925417213114163286452109731042722616114287397957124741993196072561092074329632927574863909227633530043568310968961339777637990596859321445805170228146396981210907435889385582390709313173974187688098207067438250499342347593577512135094454880274156220299140741237553778380489568157308845620735045067659955950859589500576439638325525550916721105068956436898880223215571444549602230913553126995597025662413825907627687243915956838027679257826424722593598649906392809938709645047855626321311324618915056830016413452400947695725686155639520918365512429549826802359463996237706717189168212166477700909165663924198250461658647595773426455931933149493977529221735198231297255875072573104161018217746512323545242155183445817779367399892320281637808115550498484185975895234372528395602186011656417747751231033566480769352643470129427321860479098577713107070513232799871126761288112194316681221807628335773042593303252694328736083804904834920299672192160443150499109476716715046119066774089179857427641800427884458987163883774214603493061545451251627812366445093172643470226221831286281724064042989636184066242805686577704580756824978237037033305194748027350256094431358293412072992190816371027078592194362703623676783232449575661053564562812050248501736683397479875291634247485968270485233681984388896848863083939606282189439012286160325425548439486388206958224625809687747609732604236490642453243779239574050374132838967057865832143356494967966584431743088930448218415914721770101511489151920231754174712177558175559115229389089566839143410245451615084761007125452404782037214398685503586976241899967841885420830875938891233655680192512107640686712280331195111317459088950654102386963455803306566352237088736382548976525960719429838492782163816687109483423350982305963479011285541264435773390505095144756654910003362561825373740695667050259932474704134645679276643411145911848682343654441492168250842267267058705537933148958283876820933788656390814127059426768624521690455513324925974571679241730707189432437294861794379143118291350434129220538562707987309861519820034867809832516412896274999468689268730886994946163542086311910034883492063875676975639912918530003606691540986005533690575822894849830159369183925143838751886439981276189675553331397522811636522992230818673893353355249408476193495266572474334839304989040284772294304725691192145733733994156352111707674359603989189889775733638505725399971241315168542814769182430407396605861622572180388635842350085946020013711168167698084450237613508260090989345583049897145405388454040478114748988265537592643625816849431251250577247243566644868965971347644422289684943259307395275597107904027671554201977622544812296331886104317424572761969290602068230663443472294642315142258697788733683907872003069143271851039309447562174197466533265926079682463538903469257241310584370553465250606754558989549175809649670807172183249574296137028721417405914247738245262882747185405786579098956562002070399780819650048513570049365935841498181390646939775928900836518324422551447968542924679541042923937502246742407746917883976209686237404579456695896852221381318677197892101119980851674763537102713219048438649106595315842727524034052467375233789118927031126608070173528955391700517376036141031520978754843669208291079389106677946738470499409513132397839636255121446327187498962641252643324195033333100214370987432380374304218870665803620063117266275742967084893300525593880780404302446841591035639610169026997494482985230698583213986895656170575589829914046651335321358255137570640907657437783317134388516853146392942809640079078824180828759653192147882593353099438742058196383548310452912589334541732628756572783661533644939143243246132687592961815198445651299401108762548628714206203138392594453274042715693330223984646379275936011930832911354687813648911469916921442716494078997831839090136845772746845323852078814674761689067473642873842547049647184556849768036027899928583764593111049600707113554240803390261884405689063178130319734755236193091311992459037059121479890140105226864361806150780096245354508134891523353517290921582101818550545123630426360213775486925659568739974712113629081819589798894546583897675820923683713584959677134366611795988212652303852904037856580962672327732503546411024564155260748110815718909952428153576358368027059893379115813918368246439307607131929929201197856580662420434378575457640806223855150269337988450794033964617239653635090519106363379549862479689978774393994858725075498958096029742607381756814559892630699072821229449213221559937378825337832771281734612288744064400082517374388650363368831577607229936116225936666914235645949497865330938335884470288121336804393748436221284506958784290392186212331712765567831678827476256260493353038578959200346829806319183544436422577921816902599349742367279560354074230908333685772094841849132436843350609813797360201174525219481122175682087236451870205359018075625537763021912530009517370559385565002351214322925310581407894454940166778578207371571229856377182060511463648982442759653852794765506642846125197411092777416825682962059775455154972339410038469037006985286675491242935739703806639067632659742933305738205651581838071050515784649823625094804563895856037727353360121618729471216520986890035604998087543485856371214324289456279506172945744372266020239145261611685759912826118628882093857089120800922722348027017647127296872070829767536225486446337589750612078254427334142123616916807876713853912674544065338045762013872813848834585588209884786670455115767710999464183321599381679884160347574831960943371888353607196510957199926896100218745525101520768002225427776439378852432075678006942841624942826529821758789998875288927545187114895193351747804994643883974670756894312485197343867635158813920133906645521024906395244641265823909964999805049518605798038099864970803568246038431004481230500634468180805821696220252439939743352041430258727407429802568500302718183786905398615044020535854791993236991082267808512272557055787107033142982608606249735153158282847843889212634190948106925249122586147543633180094465438370748657979450071840141914330632456574614395864674635296069779588553690993003695248982359540120867539999011589662685371132975796069462404642530648099436243546827742836047110506711921376501776091087065984174949537507672266261747363216570857688871974661277456899690755059060595871228907847471643127989281701910156855656805010333510874160435359810999284737227931248492327098062631940758055344742912276590540439759752903622772418642294884591006539035289104538135884277183675392967464164122104481648893612814889423954426295557996697202501269843139790879144888580718874934747126333959854319335093649469857688867836720423640205269066284442938929298037034132943235115483615985678425673663492361240209080406713437651247373341732142885962114467438319724236841072051715070644569036693756219702994379751450891469003768323848896092367026803719027920767018789742740801111033154862810698550613104073752675820469831786964649977965110729517080402872428448395199595619444486019844522586092377168638935081602325189618625159739081392205101863646688947939157948770917898818266942674779714403495016877647028273553931395101502988039449645340052306310356284792955885090902133213874108830662678392662682353387610275734678357444799402043079882648833733083505000371303349075438151328591735710399645330661381170080138617503772482746949466185853236063428969154779183261821204344152301236588615450037947196147829992269972166114827971634711126212208901374511699431828996832321931466075780828296813488133624221745314833789705779596611556693568131725017777414055013127991942594188332561390523232609883728880382287696315260012504985410441703000849386527824663910791252017727531228651389235757850760258584472258407433430449716213641974248489164291136370741232841147784250367347855255883254435209267268619531191151143188361201284076793386288912484698220048439728062681019864539314965814409521192017039688149511482381888545226850153281044624548807631745532487666848039171598249316466603159201286050297598038855840455900091182778104833014181560172080980081945917804021642652721895187477234789283980249197269534440857960845918415102060605435456805900274065773833511798467591057507227456952408146253606115824348837395379507541865162339778980007244328422480788204262520754602689293974038346914233482799595529839212103493543493139800249266735575321207981848871592314281280286142240376722029264186200496003104950123872321303035557759578354448186252511946506772296317069603620799855316650858208181191229411254652921094758211705432777867656000371837430187999739587507823010853517635498700812327258652822147603333193251377690407758507800376503116737931590542521990190690939248919750979968769033351989012096388290249563846687740409495060216007687777002348004424864388366175870833014668685984491803729318726232964996146441479444588098340032651418915806538446500761136055057302481769824282505597958034236936158430502732185920249107507858636280724276908996235843580596186770836088065320744027377106582109418027695119924422273701584795198588131696397051343820618247378823012402018663902942107227023403123093040603549764306382025020631075116921878820623903880240712392400998413865868394234770005315726926285582306125360909295322580625318026524399727388441632903176469061492145424944246458097412820690523670872279625573075427794435732762858035590916257011732645295262371395617084445812549308037017438400415084589872956263133531577364667443906614705471394522866999332502517393592815105866163327440200177633710277028952374159726239807845045617217605018764880570033342643718044895987167913280139940902846388441296470088675436634382599406872487120339746790185785673635712501486497548808875038444588730500877906709017684561407123177025656399981118683448042605823074864082296869523009450735220849827026497883638487117426341375414135475860165445452581249520133126861884501587976792201980786092298654591367929632950181064807883707981815430885079872675625070743133151736756468484464725654686393663466244501350634179004372382289774424747852412804404955252773125121944124966969008773989569379920825813312473452904382094703538857994640150690814539943350218434216633560193394311508924838884533615371579658087021028230852159293321204924660597866894126470787710909781847803195180670699069687293675466295179563931226991982179364788023172198429379353984370583432852110340658588943161248013809317314518881453390643639463226856067637353971845655948736429798469374920591186465943889066104781925460484104883707414181044034139421257076887839336225551068529645296831791288433817509989248324251137811311519038929280934304723250413142211533727093612765101661530897906725337456084915369755528222589959294408561612975037499503482703101592763519138557673606834793303529007746883395031922778440075110678182289353230593824049507077417860982604399689321945837006473787912744447535393288656323275868971991098653648261130206135267785847777274450793354451562902981609948664580663604007103754755722890649662525462552726162808695877588976701195164109134758154433673998209033897672456970222736402895201433351615413041277005517733829069818519941055640470015541863564368805761420128434810514222701568722268047614034532084035850059510651638541830546380350432218289376776828595243227144909370525960951196497065247904740347018170389712549610459105513002292717709664577571991506989827826883054678722650830673415226216682006367020697155381029064248635751038480504321181886687669996465443863519437051964868024209166110875796253780669356773609987325511321187142420615913583431884538933829187048020725723300261711090129353842585119037887044674526983933356541444748224140748932828929687662599326365238871274865364025451747482324297568192014296147756563921993288259845424158141786113920601317600104128251682568576461270584788664348778516930414098237620329866523672571639127667236796090026529148511020561671688243316188818143025534096129086884818977575877192616313535205269032014271365524035547952572316433258497532852934353071955082982820686617709177562241708665558737662705831844781953237071768805400280458800012293084371129196417260450443257600585824454979507556954762203851578176632905202792645192806662982542894392910538487755236496130550888932675931213954693042520487562896643993214785263474558326138838062558966653216039633288393225535653723477961950689045364755486618454096945049724813672070150001875413059799881172257486484977511172361743496146699485785845577160929264401442533509372019147269107651933393175462571657182156979690933838680294172030139469543816032794972141085311932295078472552116269434133013930420243616751142750760051393212802140123100137493490356346210018511096445156589684647346740228056456610912334797263024686488376962221779490143402612506189994249530924957905506576477361965317755300034251200308457423453827001378803733761776416482806150698776675396645534187214342029171994135509753775953499471880448311995708559162244855415594753689429580742538240020283427538687524946416795319703589161004052315474077823546225058480165018726627705349536313819156872359245969914995539839254991351674412533702402687897242282774849839144186071643221515491170614515654933508670830477388174252277332041947196549023252418270503773648167518793239454529525142228477105605006919661491767341979317643473511332294803054734283905294413029025333221808118380408717972348874364496599399966602091440712775848894040497964008328878998681322202295757977331847142239543807825561348439500139980273571347465715730671719817457042294912170748744028730300873111809428066547714809389552447251773736873040431212318469729332330556922149934362984792352930127455020697781393811585582846279485474859336559314072452032104733810712051829305518701507625523936772841495908681750647342411562173771231820969040087881028810508052528624018260261253060810123795811710173872446859211453464077896566760614675874816856872627734812130205549551065990802714906268181565500851138348200677421605300810998592769737611854238177991482804244230008628567327029098182344640523706409990498640373547722977492158216318636330174006291810112971848843963629181253899461784344424311273450286583299103161755264859682644352586728836101470735343903302237821935480067450030728591079090685890426030196934737495564953777768538890335696624147330555699192364290071486476388430205610924769519943849938090910469676153307165199192582388745829323749870834877834130069930649828243751827537007087848891388571500437327652385884012201383168608537601661045355135520818567510646158341921086849824258300913284462741569317568865929203808145743107940870956526861835523710850625942689486282555820582977375896235443988257835806952328399028947520524280042866125741857930584678370117412900181997255961475426157600915446970162046038795641406920596062483575330794241790266733061029140795990087848877985498864112589365775507050711380748878029553402977732933338289492308569452563399396403297196224116322827683943998295920472726447696822382687665936189342324138237034768992500334643646640039138577143302580459953228270106706388292669178372361597851489113789496013020294442552993422849907900114640197794230273579037837585995979454926970813186482561100599477240668811459421060521936069133492027074470696085579234160957651737592748941081472621623831144494079596574370655003318841942662629961506835723361792311101156544721487138964739684749530921047264915604833464483527264969891026634665576827470797246414699296287949859829792547321180210005322491502286485906325306812681301927698932287220606994825298840571564705751278904522789058582994008633534944898931001668738097404208454823216787695274578595936865550884208350787100946039712382687444411173258961856739509500778644872945319953181472028038879118429353389389977127167000112714935131626242459069767957489714099926531736849400848913306401283970373870563068108412223041975042172504142640092925756959733065149456523893616630112231541140066861460806411637079090180336403567815083547699160474722281207598792495617763791069585429084125786975987194782645733512739694916703154420135615898570027307663254548957950258918616362292258209339527674804010122517846534760419878012510281565968258472012001257114333817153104993249942852981354421947423519973058264945848246253168443791636275216933323550650880982046163890256426640257875441370174319627517933359665124918430559056275852566711351434422408347462224747310957933941210588381623631151876336910137579736996230793563524560488818443815718211235222696735676122374233829025774402568180195293989509198608515811799161234331335291257155502745744123390029509808628375689055241293351188968573755841204800089068363169189720253802046055262643249288765056342750778251845588957494997469336088317414006369538235110051350807810545586335825605108783694222054523254532886944087093330323724266114725553542188709398253983592634526002696164925783544659828783034571484347516179647127039719850217289316586741703982680594163560127213611615453434925768061718737123025487443134584506473622113093573126018953572525048512030273644439094688084750924894793099367043378263216496587972815474595809539115040195835145162681805607278417784528068992553165111390513990144483585373507304320076783996485632561529650130456356009537787019264740962795934715860465781100077131106938924971078190947997212978495493553179622010913624738464109325230455182521086032739721691645173161880356148388331867386660144902934343469511773232298285916689032718167180898895919032015108197314587857901589241617403226278651349772056454179646122145988738962668990816430549982732185474400243940989288769622456569253071759968429296024849610459560091191292821273167535744039734211140333502951734652343938860415645072432836993568428810121381051225635058458428274378561844156227648618191239007083269466329968236857591408432202913137341881697826616257572307439560917453851528617592745250096591653191494765175547428693008540771839569380348900278975142411160739009092245546099827585813275036102452735032498061823359099032454803167281953928726166533965694448247979013850095926117420216034636448130115056712725461270976649983671600662662167597762564015101651179856394180953864985643153357921054931446294458867297315252442516669008697504178598368732685392623225770942989815200955662866098683803670196396013706452166327917336392107998021511799663427354664133778903977058488801117392850931710659751451296943744299125277769141934144427175157897730974825957896835410777291051800956716880251154272830937477008943316281697251100358100211988721632268033773171290164064842019843003019109559967631697823999006495519715273895027395429250725253312682912826295242783611965249674880069322053784936028319431642201671400557148582765188585510372571309244545293260767260450639175670480418502521406057751502334482751826633058553379053967722103802642751309122901864914237911832533671379124596106160643990046719830254112786836770605737786332769340988880381674958799474117039477393598432152346512785380794609562200856682909728445743026494459811848522624942273919009254037798151875950853499914830785899739556854489304860439540374973428501095898254377410455800144090655513794087489131153409933128439255612688366757353115663723907655079393662247378814782019753889623064106600546715028565807098779160357570855580943759519436518385182688090971527922610054241105793868126992214652766363163529233777498964516788939115263982318507293890943471669117406569920398741928239127542434971280794654706063621568288163358647987105308221411719212655205962727047094054965486567411774057401218778251422225892452661981523029794723206763772987127722660654769534964111333136060545032491707417895926729898745510827277554546612494161377412964903756881231080963006222726132522417787365008814064255596505362841406705094245041910987623394471204505670207045525506180357141539158328814089001301406362555923049175577976646559533919212453521244934997554558269451968437593215152435608164569844943621563420177286086744969314100412172173227093579864316864032875807244831366385017313715374372231975657167936800816760890836389253182117290408094386749593648911113054797557928601798006014021446459433827632871309459878916385669437751421865169941378753923452553991454672503128692384766210567163116631181503712679877946520253980906798433487873672911049858411555766095850672104964615171847983915850768227385008269277003178774154901479304541818778807552467217297406377690604128430994792529155810936233402171512670313139774839978681197332211933854399559813202462726314456977119549664458804108095852974959523359462249247714713929439088505676121533577370897800320653849758623158084839505482820030961329702053789429700823516469394408597709253354750005529124537841236732648787521462530391937762052363870222828213175804163153943001709073007770478354544377831427406306434319187114766001826991643053365207518797262069495619957315802279708619391922326575762238229103190904117112941441229940018249191927713856443187877251475593442669402805898759839559342702926008545947267404760202430420541542454607842254027578767794626270507092823317450601176752646434918513091336467862694359527389946203077111001257233582936757782210863491238450007131962295383739939464167008141860409750751349401251012652261645622540950186456406667997644316130879642581210908144537959514526890486197713873221050133689499521088038094791370718767595434459818650733025886675086305656750678179839134745533376990259793650621766013039957659937905388834217251411624830000485439831831526326557294881894584625796264198285381106329494863146550578602038157334796942589366909542263182211416011758220787206999751542340760381226607161632602139125454993667740204188989720550035354244310410191934658170361379534958346919946658300177945218312441990230718978618898309623948485054536749741232065345535553621462127205212882129741797813547293641148417772021577371333126902731823328183874808780149515614455277125078231782702526377617213384676348391573091078655706328239823999676483203675523915165270093729752240168127427973011116950277001829237854491527092406306130647173975062330982058973530659854270816463268269820913139558974336219713516852157427879633325538919159019730825772158434905426068023197462145307702136787905202401470391257362860405636524895914481887474750999258425347941903965819508650872286495264986219271623881677425997607128819046580480810291165051463341850560827960584049794434797207903732249891077144869594040009793438853834985519921236125436303462514903781131536805621061313231267216361240449979455028627766193459292759025114502495983486020380959670744659846889883448434969462139278917517389660358937800620108334181651525966393273224400706235388504910138946288430495676950026984347471284572978792022027846292713513258868870135580903900489261775125315861270057628109794898354993968767373509317966651371447038607127347222059318200712840181331889885578289397943453655552428035203476735102537338678532062578554442540842073442212068105742519229009906572817540603462941153156191581024224510148476681600720456648302241486084052452565144493817585684158542557344372029800897004092891212465927963519335519945533210808100312746381169716339736699256738072038930744639530667637763661813448230353685485808362211186327736563501471884796469370192517325799330219443622026230692135256632738552418315953180942441112689685825876155173723530359426045925432054828444406691290509955114028016732426484643225505913185988132353657538622479272688457604689344309980998294098413712035656636615224521059173847762243033538807664776399912551720386510208653833234065029877812559004436515802264776955523793256263131687839633621879558146143660022300144778005790060466278620235663545667726169982852482745900580104557485540032670471571829828447874618070069645355514925230428429320986084194007022343933851901867997810718162334546804437791598319578877476705805468428190772682053528184393044149527051393244576496520960405973826464536202609551646457739883346859068040217965367443509417159186581316701727468618519800806615056786594511078136979012534067930384755406957329706201766328804245331058504582752480352049906133671592141289765563803657649344719276244108082819774632326054056720746604178376900809121165499072765364919346649402771681518639398845168473128611608345398945517771104923385302126874376567549859185690390738783177292157435916615882441358268191336541018844577901322674673604912603389580812070974538057174867233993975117731084051414844387471592118030058281996453370205513078310818498473934142348710499462954755316598085601961345191721506287510561748991077991880557318689117034466258716573462680974569177150965741200404832507317634474262765220278619486733836006094730922374942222467064414668009438113561888333663213785026160031593702741645589932825451137894123837911051600611525076149810511364224191499697975757162681005191668438263122418759188537435677645994684033099489361173541519691005116079019485783727713654069303901491417513784073781152106378392513743245547404695173926834953614605520812744417841435609805688841920670783133058075904705681375329605315519917005919137230344016944013350057400542105580396424327641624153459324036335834419607087035258469145944384730084734926146812696681127334968620535696819889794175112960533300214031031935767265361170484337734912458236295719217132733053359074954339383819891743542436874876836603111270906685726736682055284335791437763482767159164666660527696542821015931626972206886918914321423187168012696212420998891902496059279024529282326492249514046033182432416543097233931122188957942069996258252470453478189861405312408056595019614097186786904992788477610129448902183137166211622580239485154442511974789076833668888871998427137316840405160304274429957309638591192822945805800419885220418497506705618495685370306297168307897839723798692394771355291588798156172862789826355641316148090284021328408659818442478333735951004877598015668936272039343918704119248328598973809335345028284777344618921364561677443383686024065908534566716832934902899416961332887064448051368072045405532769930914495002714192354909663555643311345585391468206436359494613422441006466519203533495277306135366846063050891409676135568151538218248044180604263709899246263286784198032961096910918737782514123068754454037942184951505524954930014074716582045243285859210336018829600566630524975987256278147623805445576888037866891558650285253869364807957644668480847138464939608037801754069108781752078416407603928688094863556229099931911275716227064247198393392691490688251486362794255314961378720989733559673837086622137719857371826871614995095327489615333055196511870567873785624986633057467419832268680363462710888613414609146453778029260315798931564921880017430147874071413926499586820629901075668457542274289750197260454845278535370875364023019696120205580920209912844255880065403179468843403062488527239356891205553047481106430527788117791421103391994301154241745340511255363729238866015138183484741978318897910527608808255966522350379784410889140994352569333842943506525418615900170655558014399082217096690009360556131897620102161994545803461458133745580991051349883868872585047453571965644027243168174153501888370544827955068268594336618738085253203004382600480617023704975636264696597384084044219082471762566146938344315814156671523943590704456403750991351479594937907393691716281940363921428218842592586509474195302784797734862852099676345791357133947496121492743122341674329066064776328081897168314579702517901151233975793391521185121529964098349403729155229992531874891489495920524539806705633573190191037340449025347119706803482707515250235877253769447610694791160286144980267100419832933491896544025307614305924032942923671562468052463527671615062571612186613667473784264520960863659758711693146400070408824757633134719962828298392495422047253460176416425160402349387320168716125121631648070988782285530889307353498133067026351738604960215113900985246375721479530503925686544112237806447929552828436148046625202141805788252933949926659215912992329893509887440213151018121138296902924292530341262058743978932884017411544917712075807294778332406560405307156529693469061273932791196235834361996156309726856914476770853772936829566035160877478382283538656083531346704062783182533179891421282940682756754128859755290968945444719218743109254229772603184704939825663501423532901371703088846409470020443201355394871033479076517689139455902155458955209596427488950071472024402366920046821448776585056383815211513357613221534256132326851789856798365597798631937475247395074982572722938985109689084102753377042085720479314389761760349743078354861403700188995261458815958555171919604951339635194158655009464699178963300941664058977483880241043210879882271647547963225976015082919658507829527692306285807022958882576016499903370025874430293127282294703199810761068378019456800083326766674685695356336709263243043513666721786158633168404174559009252946928225857143972292236465168553950070415279227316352170541866583884515841037706719630335856409554404971791616162093939619768531592333185429541990936303452312001908375712487540014786513239595760958799943719224718759060422095939352376730990021118197961523652325891496012646433621553558096859829932242064142673327829836280308424115482605638546770424764353198705366905453917954104857579289052616755080600199425789823230466617136154736485293245802877497633586479591220387255423779846063347861295029674559597889959128198343830861290473791601714498552856604859376557519875052081209576367412460760814789878027831285939696100378629877476461701924719493566514923878724360351703582139521725016262318235284301185648284036186244696933161889555104209606286784225473178542315658821347712903262803034302841947685129053827691775379907828444776333470675538315858300468148762745390712040047906101509876482314651351966046552289147296993675862755015669062313780076280661771122229771349111753858456943532002435737646971711976169806981726943941201936097678845102112678285200640516946358221315993890205002041834136283550463306827895608336346656114271053107849931054511636850422386910734964582650789075989989787495160301396959363011007585325133542191148426331423172937666005184903737149046519226199085130720929950386192212188461390385713403232707589501041783357498408673047376525235917227289913670807952731784903140737780365194392386982635388085369191223020355396893363488872075586129161045240301142969024739851561063522544114389512862945219361354670967641196355266405645837550805786961122652559095941450041967984800896972021036476968169914446004203327076163282464223065305746397226303461886420399209407774058787235283025748780271948827022010954411245801756504889400369976960142015916896564441038575194808955581015455101877975080942109074835107496240412200802453769053468701843698287449383801099566107696415380070605164639709029136535208010013705847036832942530643917660381511806835651157365168083801279300244840198339771142865429877817381324289010232041828171236305821334042602385960042854246920345893203653591509599535967954433336160851406776994366158933664568442795610139950135868343278680719615113723355090177125948099466846728139875896176539301858098947878838005504739249947125226080537054932948072087359822861692823464988446310581896434827496615711149002805411056763732194255289412490162643896907493817728403223259037766097718250296877677113341498921277538996693428507813521779990847632241485336141680997600499321510638912701362630043361063794773799376120169912805285110317782577202972987322177938333292165464613340659964287418061031435454760757961159610072631034603852547249727900068282962421367441831074780927596993858064550127751943882328448232240384146975833412595390419700484996401509160701168736137924005271680898674909483586389778833448788267580651364050199129025038419901346577045795009485017674533777102842364442183561352465156926327263377656986904988597674483918249571950722946122280603562509569727635852770832041353534252764973106100154787319034313072412355771803053463381453109085014957485366522653756576719225336550949148551634594931387750956111039823543730822677077109995936514616150913331968747729234094741736518695253580363445358278661344266061290626658385110880527907680871239815264390180018148311196511029110510547778583502611039705548028831758153365350387807623143178444245781896516955542802716692911682084613334835386283905452232697363435528121092401274173299006750529908500076551819841320776190304611626132722639885854265783416008574603214862114349901696916072038805106622450084864776200331695573914617350112319851759842142743183275331240341018040959687946875773647891874440546957004883784727539361008921818176838969893110909374525090674597673716655794462229007110856124754212407181995714628692351106179991928880906981624052710028488038763518668316676120191613643073780371521711646014958217330754867638134892809268752121651861243267364103339343505405185409571388825934173578189384454316591603994665994511621715602286659686728289030957711802485284284283419197518990783143302336732192097820127650835518744241758340642857514808734264296937663675171161012969024217116950015201530226406029550962693859274305794603589055575613955092552048354746974700568614078783304034284645950220392949702294471305426713560981097876066118800871032729293438396499785000643528644265859243617849253134285070086523344604750161567010068671316740739868397238121383517469994219628363059594292190929782771010854829680124956564760547090253061800630451619896802802699071194497751536544154965957923665083246674446573787698204450894896506415483311117741432415260037032736735082711967464827524271065053109369539010107744067570122908930270834531975784502698450154242190993897160124597632051589013366301174955784523851072574436427909685129525808750577972598252363939415474644329746017528870373950210814218670505025557901913839041968023026568911007259102809090640433774813381843088763436878283896791982074403691292844111850919164442049901009346412901873012438003479280408810547889170278389695325744014247919766797312276962325343107228335218111027617464582690928154540686581904299060651472591617489965418831247649450053711897268931710057858166174393487370382675969630822842621626589604375048197908207486733550462744240184602899880243409885096347090633317961737942895346664911300799749905801792883750432837195176666961023663126088328957865029422540037721873368225803882944289366973355855921703889712074017911571927637177765121770747753615240990542162000060701509001843790243673133231052880665480521182600476137840443778546864990302970040532784801865649473264703147605718528734493002492837616841043858668021679462358632859172236702695195566515876624476726223795497019414808237177191558211182313205486178447855141323089909742952817895499334039041058051697962588194194715115157761782926170132063101952785788010795747141381698077188599126918323121501508247542568548513944989184550275382658690063198972523761352627268723471383966030340448127970493938569368180919025425296489628297562476118147683888990315121418433504454379330363725042686182292586032955456931191174389825725608090339600011676032465325198174245549534595861669842450916619492514007395091723590412967159692903860339765688119617817193375933408760108781730654055188443325839657269458933520635127625278036043994875440982152985234863626511215466476581951790399244399282901627350148409726895143442078962666643793084274933040835595677415310899533934785453474171187504618623731568954541375774814826131611250307313652038838164118201848493853615112507182679754588638299223362931470151527636116047983769706535905952988109045932429363168073379582004673924327093683966000737816596440845612147079048623593000036155495735659503765339791325525608027594602621515527275126488462049197228742392263457658525776622891905593403036279857990433878260932691699933412233619404398417949050839675646651823351640195129500300087755920927710102319188991570168305981074618489912417910927306388835070702090196385083973826379447058755119166666888306281145844409993906866778343565036463605021114509377592562086066052774587807739917981687883166845146737431105844292152857175604096377018574941380212828201117244338948057090310706545729515268749490018965764164218323175645699893524199492240978440530706860089066690927014412531216733336740283167888691213269064433887471570219639471372460228495234591114219499714642926702272667550194054221695760255993898072933282369553497227116486859418089855395323439079673525551698562920033085549305286875708087252784244368461503977226922548750980151312896165928745992838348141399794825054892154992146126163707151845058853259878860732384239535513036473274715224655855992648331168649888895057949551722283465226400640345209920962105892751175091087236136962867058033430649899317342799805346963351561588478958828999836984201070996571490047153516023238057582892520980619758223056015205443572862641657154016442316439531482637582768042040401670329789387195048921315018759472611348685468495147999314394326199660840146251780447196094893072074913644245833980513576965552733614989367885994466590480257267978251914947587463658573119929759278653897489494403939519952185282377205317716540358293781437749964614591105117029636709527654176261282331133693604186519850319230696767325489113589163154220681787492176569362094463684798147370871441477700404049717079487757387189051499079512983310780244786993288586099748632749601071084510601534938006842675483161104400682723853126032301995821619627830207252573886955946120929289748973481439109210161826821457991416959258201180114955138332117752573841992712752213379432379685429448488138573766864154196565814904694811370070644369126868228459617448601718703705418810614509400665978258305854520637547051066158263727144877792467370478813014694978566253969368056693055961720304581352108162351123652908311553999320024521530868680470556268819102915635148496195383955575702427184947091642360846442820757062144176147479749806246223210408635581226059180955114809741354747212215338379084559665871532260287707500496856635480200234749961326031619935720956305725929016097256420938359922765921105493348220067878629167637569530370279961721055850365554732964293827142631773012005437183535119559789955786438822395822691275423865024118997251557200134220977570553998215630801833668152015482523948766957165059367942889887050063719436858572675796463555948187710947465656587851643602352585402973385151426292111467953268533249855784325053964585846292166260371557559461467960599755635483135458691489950625510996258239716692633702068728237924469955929253428279636906461060499219001714714642737720709508427235954096757917901905745005220724986708436999615042951662132830517959548020462003168843218574104589686699337948618326762649326101942443585079929790047355869595870164279867866244286611507976819835583137504454053146718339855129600785932167932756230751807490452355957405899681083476692857665139789749209283061681068588234126475455435227279956269156902010656067091691404253681129335248293300406020857269038797636544264576866598322286641408122162478732095589968670787432218210663811262771061628326546202938128273217799398226122540317944552512769300187018478176079474951535821630328169880210847863013064028944221183058936747869965931298059783720888108783472792408633032667406072004809446136246756526933996816765000367368218502902380340394621281568618265072495598169066933071592858395555942223857201710999199395997864533139946509175686827070112889051320737725586510242615169869895389416183584760214383239735059764180027816754316519222756722608729497153773942286500753015799111268919727305820485422467279589675391800421153289904659702165025325912674144589951522784575743209298879273036083016126564754133272886808285334179104671127964523861831527687928408108363895808106294423473822813017246541244717376515208004825756058850976173561595499539236668238578034213310832173070453010395844063387382082762232407464453023393917851608760322132867977285968061540441438032122566360390866456540421454142633560600807504020174951107268840827052355482151880458585576537656265033748759038001161911586651647024977688629217287496512870035844766502850233792774151283133784185080856355076097595916208132556866374673533601840094841499301674821327958072007667319885772480197736512320959077700225290545998262864212948362845207917487385110582117132560780098056949712725502429949030560513862414947652527496479308473388006387001723522573764506999510146900007145236528835754538025040291753228271687179458257503216101832275901454186657621479665863115119873950085114422672223595944898679821621899665714844214745580096024517327624785824458953019826521879945529771891318149119402040090311707924886865674034670332115444019143606329866571283807124463908500591390572457954193515254447787663007956566450308032216212144151940580327379480114224415362219387074296076458761893039993668635506559461617714180403497177606998238500146610523429857277735746436448605749093216789868455251693337642150324741989457905390185696874221329730975773163063843039716091024582235927292520258561173600472277472270377257371301818342351946856478035858409336024142347689885371464070686176701285113967077550713857837642159080088212309068257145957969073604960659096727654199578685966537903216140819104984144399108872237749161242308578667746636378727022623699064407519450882426305934575308475540266540303725961318890392335410805074887644740125431498173497355906953853428581200870942509764719372256651214635659192543094394603428875062694072953862255119212840514250692359026468393992182590777976338019868275437840740472474890396084190882307085056404905581905850332957302855461047831776009189525959546004898617735011635982632306843960369629591677362929073367869827324135637719796077407698598921758635342261209902641028899614130973891102378213721911806071734196071396508347519300507995876101754477838727401609685500826560545315066963049022972570004518931442686428609277322973697925071648682504192466251844382734319342111279385682825729241196097077339316938866102656540832034405996510984157251857174409869944434448511950641277696043478796910511322121039619886141262085352295763120804213799160765081083974727757907380177211416681036490280574750672471616138592574413610138654634444220879607223196964546612523161615801810524864666574704049856980717545687169527272669570883019963158773272771008109949074761959073219135374557339397855735090193609231349178136315635401494822505134876105819682129261954555276123211812939774600253858284312339959990403780301072617656387259329217359354802227384941785985023602292542267403303779965379522719193544608399293675151205605734860105444290508355025139063119201387773430918725363074865259251728089006911232349451883649989453122262547736952389286138564649921031017435132332352728258584519856797527311800713458046329338974389515233179572525850741705451853088326229060733198328050962532064114473126685974906971254731781691498386791435597145136558420344481267723249688637250129991853889991339431371248501021978047259455870939033851214396194089739515624481120151940577660536724560026209648532595214842317490177805195498883142542094715611531041525097168541341550468541459839897456897262122913675381449876094276903271572745872898216690741901355723486645819453174263057748649289880627437193120438385356827499976531052598626665023760877149556290594499800350779244379400675732916805964167937810686355905218351402162642680618132089008031313526887805524295322633427805401520130270338281938916364958165739210608045545961394651563734436847815724655862440711337032185012992046544468538172357572587611044780979328946456920954204747875804135209974731011647488430994298261820049027759696289835951653264712849706615900597736715494266762982509127193031519345454855704946825431085771271940909373500079096063991195565729515532041394972986686587084323450537727749698031277036160302648410373748588186362865306929919473958735834589380960969417641496884398247326719816942649150826476344516554827505204995390863450792356682166404990115560706694486638602424470012063637348570596972869456310642554884597582687894203902635541693678332113430315577559137377104621841523455541778859932479846348362548855213072281143052136522038066753634561654859548364790298933178969327290675300242084385696064185710339272323944179725748977148190082896887886056002743794511399415611119828285841149065324634240075765951837065108308872670051220939839324543579612750392489819527199020138776215233976275631265791968524582870990886531280559164980760037047271693594898696906067705846822517095414000903965513252968055652415653600153122492099167347087329439736892018457795331221940779639764050983034857008824570951277173527942294738080777386416812987306087006638830270714832321396807569395440459090355999240276920192442357309144510310918404153855959591093435807485584002721658104929314200376414024870510961441981198368988694439913001370884834747927726956317288430329342343697039195888313642388529810453728300287432820468961518177791706955582869225234652195415703583356297575899653844452420055823558920586279416837460684936153680036021144436889085883536342520593006830305635590390814654145499588345989101269122738256926161844626972868677226079057474068679599533112807839168562695931539643769680026650093599258549915621914926592311380721340024862796418344289896875286174010005348665412331879085080113669541766061642574815185129121676192039517165924347922257977442013786247520793449664908713408546971434450318891835014612783727966673785732898918129323459179943454361307403932779881444850834587466228352935815173260276371380837803768523556839643625276416741953119413513235536599592675183429300505148115057122908593497981832902363727871070009421918592964630800852245969470722137825561404082590780748030173591406691768707329712358861210306673632650816104495061957656589319154332315507895734629001586118622296680232383996897712115762869402289613031975513590675177768842078468306906812643660409738051143303134575251987463398024823835620418689371882605393677891390200430033294968183319730788469253078670627509734097191351310591117292946016988652375453147586855350995432702769081416461657760784690230953116851359668743409546078109629112945806492717826812279748640299269066536315182390893059421971077438195680709876108659889205919712596311755162404587532901807701030148202366190083695139723455289315041971221555642987802331303114034401084822306450394766381827350602298899982159831848684430271974166754087087382328961674238775637045523368770405919973699437562428482483298157084591649373628151681764649365803620450357674654388102222071022253536984175810524935063313191487482784953996936768128688922307292232986369665453694585420547529086180726380994621911376273503469180472561724635325018451364180755159965640404419897124961515867509883747115785700476274638926843806857191479027160776926295832038252872845053062181717336611665425921072791064723647810531965220814388913146784709969307304409607212505189591987539843545191450181583624052978799769942759440848435704130002627548338856808177182221034910567661039760269431431021441761194034459850693956740040165895526276801037037822887476114472171581110351734503708470971221792803683095578116560207016784796900712438989973553330805954685673577869784516700801549075697111235529475424092924121107182668523625852007531902377912255175888258685374380630756811971264967478058164630767181888749565412502337847946204634198441369680983613104167440140230491421934043023995555492550799255445749726387889818925047885831559825468449122657981219244434152412868897169675386760431704703579521555263782827549471284522642416754909344679912754911831067773071499189156078666576707133474758367838222433981241132129219655720031920391417702890580214023994911907751980309963361837056833872924747968391802439628247549496935700316724565416618465737452194938490908017371628109410595633198570398309421297952280977067113874696150631227309331596768767585362344476837712960217606428470908107248440037937205221767007814792282243126202431060806964911350274975730760361841894398262235120621810390249803014000372689752351904514103356941260064148810487128247876497187114401732940960202188253341376375154350793113214744708913446340528089092379412504203362837712808220339558183149248418900653955942733626949172002244206110821088405983323180285458519746210091256063149589006895555872249520511157026092747941482081915536145590242864497651830868057812066797039469816801565968033294197597418518331522971404961199331383259532366941740900670753867776190223713253885554828654969686762331877609958042816931217216703076846304173215739188131449435792753352182785892853831233346804721492912064496580586241977603235306309652458251533673932363210346160982974432785958740248304367912661384566490679764860275166943877297621789835702370056988951808271688900027145358802516460459531958455988865863925620481204883288310980854083459929262583110994289977750349821288815299454587189374034001737250725757822810579746986393784569960039761125974565053529267686547622174302270684874269063436624428942588092681691025953935765764565717344066188459895651337755865419685869088367079068395324756827395027865848185571733098755051675495235287739445645326250515311620657700957254190201716438337160214583768790200709117204688802054591814276955283455528322083334040802598999368202240799919813574643143125891827365055242386692789005187538796603640091428454673917576097964509796178649155693345003247131160018838653933177242461539519058336400530979397680731638973287128439220249346115299548612646586631600991258348819795523190188344541438463705472276303330761223529876558785308978626815451400073632994071819078697075468819093951978258682805438753371141139638198036300800696110050583485588837493978283754345762452173041195324340999633326727437288805909676726719496608599199806920595649824943826881705875275284555046101743560716532208533284480639560526459635445191904407534839013777549660520535094990923294899771813741322613022792657965831400112117026926024700956259013095745292861420793333024949961869556189548243217498233112533483496325097333205792332683706290108086778566895213266833071752008566092787882847099103132426543733158383682836856493743974914187749982561454842915655550546344184787681543553352853026764339598121661793331912101369114886391449625492081965896761535248545022268696504280530709299863393744381194418047041373680719682576139952526939022016880983228627465990336150112497735709370228298803189582081370976470833998200615960953180853491986679038635317673199868328907697730358610661641185430892949662460224847647786996918931773188091225566284390006454530958215358943871963213399652370659471411720515561400346133336968246246137525391260119711747328718314040387990628573675753888877747065705569606035966556684930856608254039474264779628871840204968905713648712746584671635911067320532572728035797009305370198904170234219875105450946415823007860380742730853007270662345019595757560139760774410399643797653851790745169635198278509075698416387173390681080004334821077906763657162287880294607298246271754106239003708155943009881617412747309957202121861775062471570871435925203218943340605247111571014627364936075634307879613937993738878607678772805925784558554341162645230058370233707949072065316835751824450954457598155908349698710892508617384625786286714082700428248564517037864501106236690362000760404503647175643207484411950786791347325105070461366925403557194139924098160666035766961719805128305607802602892811729187374967464733714664643962303002205556991643732521147395914299640408536950192603805113859367658767248223864135316432383393886842501795673986886152824857198454063987747497117883294734254586667034026422243556679306198157900597224621090775561025500858282476448223890158979791509853928198085411834466978351830770671061855428611009329195298623210989827406540697656326711806521267859445926115694731799151724065437577269086874340162593017716670515823593324838797844085530334628618272838790773176878414872997552141090042950401671528183877228632877223225565873356480004090538689128185319103120224030344853690463052898107903139130285462108461780744768754794646886588998212782357648842252764906701987229860951394451389439718857311977308221598633239391671229039282938485495819263526079004540359441186724914553491581040725283135184987954318652670774700611087634897802715479560673262878557374075445211058827697911553716026162059852002907603141369656851324068759991253904524111935862410175042945952026989130278054939994671589951886695181379780305631456704335719761781898328803104436942433670990323734824403151425090999881083241518080155475365845051071180295352057176760176720693466158672256621053080628092963823215325359770699674704823633220190014106005501176541935768439486285700773956167788022779038089894940982788711379290002832091491569117564166576096817609762012810064202385012821462614435558016386442765395419063708113828771050729684694185823725455392345999474753861603937629297874233772669416796244372119107010984059567885476025995138931794879743002408929822974899942481918831678748031598025740667437251616850122466179681621041335203849450320357882026360723789660327449487630477935809726173574539534588900018995317301523839415133453878520738573937243965031388200440981580627086681841177272153506302715608774209425609070214026432529706060066544385550560930355402636912824864662361027890999709854737128280290123160962691956471920741232869702665196185657784481934807543042423123216032645158864060378981766698381775098691176895435012407743201231342247542842836033985838327441452162857939700834274867214872283271007817783019117260007849791366577805753714143644065070196273280359203073348594734275593983254768663070598206546433806189593002553566336756647799386421325796426329850735297226245617055235734796926536398532145580427834307813928012690912187145876739617567806204100114864894647956115733209755697091280991418326297698243204216725766759538186486433574510785312533619514803855192280029392463114580596088436047746318564745161257533772286305738611852057120286889703822177036736540919646597194800661992966299566969480072809428060635926297199609159907044482055370478481684121876720513882946780762553844064620099847305545871197044912250790190445624411193210640956474912259779281944689011549094122680163374625006437860333386657213194854330839329970358633900621069926365687045040359728775098049520383070720051640190888952558039285155917794325235586504377109823406782008056931694346907428759594395946956339603924450585211051094681856770875103396955732505486535635335250164548619897362051569689116806281772802527945602055174765663282870814582940333407323792928907209225560793678969430300112835569115749875368356007249487211521929421010482190914536157950523382691747140285914280286816276305855839531994905264908882661975744556964028507822022569300840357521693030222890361328258718647138605957403165065275499916424107378129426185662100442090783291435112538924269063945685367453294781622480436235677721292560961496144382321781365111189383614439021675020611763174188809307226921343060098596724602200297967059630385567792533499265302292716280515716968782353643237862706932583450859720393464812862352209710051237029948209478096430206134074170396817722034885156111349715995192470053525948075591152465415604613088493754803084082994693860532086203864981068871235516885381438977314279893197168595851721677114362550513588503753769738845497816691116094201091841990773242685220154196403566232492047898869214942122706548066542533186402334624452741611220356182189043735316572035705047059232570934938094254668077522070765570909941879997977332530075801661072512706950025598731124741618472598496616728395737772971640502748235986724560215016321490327457472203619884676206935221054997222285247258767176818311311791656067874111579020591660916480287675936463470765736759669287334135761298092848260891679385643610974330810095056496168185618433314712087680935609364703357264738189071142790590022643289714602886179699913235738756308093376531779854699961233739219433153174380556449317281097300964922811335779210355360782098682134291946676546042666132284892670667828112865659936345701478856782804083552824970169887730596157985565782932043445181284469334353266096552873147783469896487711323785528853590298874567731236086527684066907515553483863411170603148344826682228267733235692527845623144076039103772751139546230616304867980732471356009658312695246776432130885300016550260196688563786612843478125313128709305750675706794024665173813384314462409291143987967111630297668814466124817710426983987084605488711435165038328721756530333393460098096495844745253965439963935865882766949929096248464059268152193295425776429741298691112433292284700571001728820868627856988704608132141464662728970190359127639327033737243763344210384366845376868764787100866286775289622012158690261540899035198999287712694013811761343145859353589726502536192309189779357210475034881630588946308430044550638765027451585911838947429555434386662626433632389695492057103588957429398537815127564244354540781356670600511319641227588739259665224984539740617961170963604091535706214475634104656279113044543398690010524024953940603616138402699504301810714041572178763739870872345408373206326910006572425109227759243965149965721542722702395035814965975821179764031471428167215301990044422835162577790826508692429731510715284706524587043159998350264046806206193290459783977623606942773405325584100309945949762767168982145879253376200555483716272427092198894607170631538905771616790923659430404498387179028692753086557372233035229199918653313419714218164380609750937822936536242347072284686869297518528236008993073436176560467759767051830587487793192632965219349498374585266547423754672910574128996750705500922090973647706143306195137753076232933587519229879634131571269872373856662876464735554237668791837063122109881440870641530496584025402336604440386622078602754529874585503431133332233317580923205768981733491488803170466043645713564806848413776203708459216236138131265983335028487343644366142646514191416757855832482227967116097961078233502958803838975159118802313372288452947093587482703465018219997240975763430476840704331085818606859863601376247794037672934940119125979284065268417520734186702920287278748090434552237829393655246094313539252222530830787667542419019270567214749147925507260954195723614211359263918723096301894684292073333553710446068039604080385043541478857059422951593381564757933166553717184707711219617698190538792635747287904337961077275655384060758851809101351440837746740253845712170781884414826843780904930456454102994224054310125149105098018387623843285057494082384225443061327193252405862297121702166253868256447103575560352042436956428124799573581500488016369441899085869566165777841770978586961310535601487070091353995629669673937752266928841225337037773161701957753736800114954535029571543951484928759679043394487052465036133119881975903234343466405576313346992819900872873552983422486491014089599248058780037642776007465729864807620916660853853254056981190910279249245001024362723889461341949573447105764410360353898401464797509702028228083562040053103703717130960616756374904161869921236017795466910652948288713037613530116196595914587541155730324398097794519480734681936455599768838375407317143122251728327906286044495093092190465339247083678504916187815121148751340637193635240170978244517961870549275932919289758255068137744544543564093209828364366205343300550839383587039447107094106402902480687135759931370303083977910943511353047213435604570958539121674900982326377514141032014410712012554384683490689796793342076773115979333992862727751205470334244315999844873637622940915379945241960263639244968360319226087216198047536816571681081649299520072224739217068887317765058600000308182011171611170393443964165998444398461195253410256021145581818765962992522576763816621248185194925767089501794108333364872586533938677746597198712132581758172326160746800527618958620586833699093094547379525615071576612357798399599727975636087888576923605909169344568848310030892751697457120811941151890708286065244606675814564714011782806632029082722220317906263107453793492759331024161018180797984588197656670458620172556269273457090295086575784189329398854352407061835813468678324828728222933185196232573978487610358538531201842374986346482244694466158158433924688574998198333903801752100901014309650339659321990719175558246249094457135525205732189943853518000393023207869375242722165362766708616664705704067482622278612187126705420706415181617361422032170670242934640287697996609272556398015209830530837738288580356321294926393980443807659960503144025660703436550304962288930683637764448097481243325207100285122537541822312475967734993312377739682090936030141773567215278604507554970487505242993655055235659130050724220418941804338524005016641311823656045330417573769465406521083322489262209185614582494694041348411353068078018451450209879443946655668746403846934466717507491418220741549215962497918633250652561420752834813367239858095609040645525877769494886065529106284578179404015868930136664827179915529314033765610515793205026789704897342232587927287116306451791681133141746676808152927372090858951048449436246225022197644961552242362385568243094793914353334355623177253763014126522737944533083091087844881825464656439111823752334497849474316869593536918109038428292395318067153955958896467309944278944100620573626813657357432310559367824387611402581956621639493486810126003829390061460714406554381791877854787896106525144576680134318252999533945547118989200713473539899812526788001943070073237074541372580167884308024273157597987280728945246729163163947789927818926527716888515403679687354566675641166066349758692439201774998437861338783129668391237982177001488500011414486229258149654092614117207979579884056668371314464077548940175903038701197867139293061779843805278224655489276813143242971288218952883866030974424761697138887746094903098042204239907681493401332267624160206835095299273937303520401830451753327265981789548760983805273599402845360237754069611395385882924447635717514336555601840676142454825939277049643024268877800312087175818071130550350403721637659888675865209379772679687743350314798690016473816656150562938370729285815313038534565906889072317167784173043695157442607170066153930388592820746509343980844677563890354128610851271170255349978885469055494181069307625795488714531343400120332096045247927458553757167800735450612425828836430035698510977441637377062960433156026225362116380037326072364189162272980181853666134700718434644061139980298325510580995606260644655059916220593799798970457805035140157476031802586582987836047667762322601265388960909769919189011490491279871470708878903820880904977238077512999549681366803834988351331121045493633882228928746552904549356329319487299768035571335473819608172600095215818367840304542040264082016689129742737508258017282510709651895363267368197965849629106243098392118086924229992358642097050095123898259514901350162038900826302424849943608862120192895030914370091839610078896236405984142059687180921163298967600932250205411109888013167005871888339297745299097910389058603183372837352737299836986492345053422048002086350754194660343580579910244917359501102157794018210657665720663128020014066801090920102261669816011421557507509722590107315969437499416641806055281390288595335020037276561486643327533020746600346883408204134910096029227443882733980260319806061296175854766636121855623329818321004538597802756518627031821588616304596664176878038897169933471293761309550403296565563497717020472559113526082147932915091261355026091567959726217127661032785012933461382807183439432384325358873948039493678823686776809746735593894902877046369357419339571785624414402143698776062902388297679204965755639243411975589445140945116564623611405490691526181893056586499215194452492503955941857027125704077941856100774145038137150674661316250711354283140805379972042601948323226695049237901169329193183400509722260015055218350836597416287318057576576518696685868150727613599260115646880646092164318682157257213599701946680398060998411210503435108803365526292175136811761698788769349473912020164071470135084680917966550093054026774353475767302224857278198082426718508056626280301927951420954489248911187389439897248883035532436872562375879076512041062331801508211106399117445797048474365510695643557251406235461705564546608352807561770145657094055701074365069169335305559565982905733976238550022469699662822021168781071709656914082859956477910367011593435195337816424204560534191931736298546987189400506300821008009523664837876892640360396514431559772418757855943702326017055678926307293414978026075490339471995524954029156673431224179294021075499937397456498361064773945899839349682703414037590827472884340029031479455107997468202414684719034467095159653786612186423099068380676235611400518574343283465972434527199997364467519507075062427802286831478951687716518745380043213387174543513012560182375547456022551910072968993608202029319084326801819213344426845710224366117375726564969397526264879035116510899154829097162688152058411624184203331944197912346250008896939317138568443157371035806687492240601832730746747787418810349773285867429155290483928282459974011804997690971494946986251584094787881357775002748016651349392673780166623124517318414748736047845448276002726280566105849240195119453984035948509072978495035270233405084842049250390732280292472456537842339914697446767402120323429621416652094573401078934752435210156727149121468958146221154938720168453990834225200217059497327390761050683804301526672836553814586542790392544941170227987749963663910089062777119288210132854948319164257567673925862548563464068321970277115771264391330538302210779110433879220958208544076878755229522143677712640217407637965963110761983893064426980603832501387024209015791681538966713984289368805515247956691314144494736011628240730484932301273527048527090132888040837895196260472705008213881792323803195870596015256681469287713263168591749820311433316265079538551350706688824623715109721454831435440013265466947422744370424485394999603798616700284903367333535826310116643787799042635252356815877034426686941419722455970315712963549425964436122314278124184282982601222149311287768913068065605937358583817891667925462467294227405309393798989555940291885688873713269697376275979224024302769811250484371604738333007808135669724405605940924669153438685520209522696448354967060512764413214128499040759151588552121090453016799004117449885508990505163340388856767434049691083147989096571573165241111976676908718785750960913666380744594487469900835370242013100135657391031619959350773824971468340680078337210686871632468848939364000283176539044222728816845190862026200458459117653922899708150074351834301264893484890464936109250716261059764238930265630440318804452401306195695461014460263940620193793749352633296263072361176566388958990309488105086693470992862581958914908225794888802251851302726231825407848501846474013320211956297467964518460115338145419577729711041835225109966763340427590596111358810532759248727405705429319048972676683725235866497394782198735715001178947066991142314541470584338541560863290553083098880969691330211676232481003630486181190264511812679491548899838804252951301000022974055065352375613927938531757689338558462483221767692059888303221842338345897137305226624489226093369668766721530951362404137658887266687145616299649172708032870998789360656852526637806321568217948222478590015547722735384600647294195921896625493261002120035356342459743427976603393532693387671126021080961398837985888496316196028957963174052191832652129680211259101169932217220089484480701014936172829065452848703055445618221074259055801076879728938177806983848805656708793324525416370945693563358186594306245731579112728331105363342215127162823658132829761425411538492240763316113570521234028517998443849517117529608657893694727467427364820107445188913480488930557576256825474147191248578974952751366555942972489140373616295389052766248839585714656893943389674044252643349378884272904827856818736477298840917399635655909067545308997223160899482525551088360301440361716228702169089535096337220654480777864143075065938238020422879758493846543433409931901017409923106406614059181382570231453802678878625446977467675650484793246199793028636419016049384976785025983900316067338377548594491059540984810763734118783506100179276574132536630796949980136951309602103995484831131052273787796565328889651666061094646880982585428341464148057194141605670265836726915002512155756014409945594075153520787737524685046462283926533727791870230074944228763767884908611026200273724263309587880612251499843368250071045268471285687400594337324295571185827520084815180221204047428904644010472854173636527013734079229355786891628081019710321306529507164687054150892219078390287909332414773236348132360724987930743715042150475022052476729634208733477391493695253550862191335641155796289354471176077537030451356447438935602855680434868732712374370578380124081161368931959389107590960380353044817870732594259934158986152372752873730891506820399487432097400315349639297420834379446146899921526167967201217169333833869072686854830703311799183801653856914932464149981917098723833417407908646433694877332544617460969525466797526210088357802510313358785269111768863283229491380486715825123804379970827516524370048913900205556213231187593056393526262564188143207539239854112330025611957916922771403720905145834020191315921447959301999058474166182983808116668266773906552115396904911954971184680295648301438254551713326189361296180223373368618649803216465648693415683289256850951879887570906264650685469343809113337397593449645693493151304814452527957972570676590378298645635762532181325013023955913397557030978260978735848743781104250988927065683920170615559491304111399991415031004348740934814518326424942619803999936922775907189615650120924024385385240404307558706931380663024319077467628495618269661226028712748761195376829328927508326548871932539124795790717455539328149468720852740723884858795913769256567740068722376619939107415276496643419358099939021078729241627487114638153181342684097219119807731841979928969179998703986188244010287816132408951405943611095456528469163431756919040921311414118762765450339023501400797171251425798738087200870085546158168743663724242771953946240774292717945321916462513470123910426085551636221745828457465008914542978818814323174804772433148703106087062639205800413167898333799643356123423597231784920650215882867104339065087658715965996558504345446802878131049361954659711078529586741113770567911274090004976969740769269043555383114219803368202945388616538741319148929324498848725503597100796353752145092311386850198016767594549677179289152231056509991089167424958402937632252854420216209852896565810695065766864301583170166094336421630831802167732301599837862497798018256555780782215485733095437060498482929283117334696349634332899914750747474363819872779086301412820871149457244859523352579412611294261922973105924089217077522482466387591338511197151712041888876215582895747751322976080651499572228583877301848588982620605049587425718294781923826645102713526297004806026194133014423416357843773548965570077107633771099533582461621081856426833685965055651570998082260546959273020597707415398739944687062756911560742963686063852577785165319784735698484662656460235516182100733885856837198008074065537225084686096015659396843669608585990663100731825825105936269051552569533629033665141235288092048426574216278926328454771328834782671178638986746699613647564066362087589678619845633660963938865328783922427612674341165837711122039544342559896788646382808922103224022272530701901048168941368695159188955745925386939775222607250063741496620870803968744269302591054183710127675046462946799518407211001115903417158592328717875524285352283407607602480889167039956891152284949191345368329343804641476087917738429134222836304737474030255756444008703533012964163918034689406445987917334227940403304043567866599621329217967022062634368587926313597241771774161697988005934875029752527798661814419003792553880174183207661187080092164955076689160340765073293817717798234105279562912477545118818854372125009780547873484270137824160659649774975518209567340493530407783900413900531199683244031482870806451235019915223396065025933894241487086828591868701491058383625149647509873805691834111558886198989900094569194563285257629215255729301278481819221592889778064912879860845232259500479937034980713917829301476241693097685107560391525543194827792844295094124145873382925180886369792271786810705494502856625509784002939005213505845248736990532766891763213874432776512525094747948129312184703005375601004482573065889912117539374885499796365784340186419504054506294795889360069426104892063533083875677678029389539344217155724671666545877913184346695781291951890798711097514262895292386289171304351430218139431249051004994839198780700929187964133994159765569569674226442881436680912339139593230940822173198736402328957580147168638815236415423760206875535890776859460884340470742379144635596453403712448348312697302744959872743322303223448927738137124242135180760071622625346413700208118729252595407457318241894740918705194057022427334176117777312559900065006266633276783465627579988554632719401500785239497633137188926648810518709468838661779344552226469965998014087112145096363741088757866229885570383867074179794413710320941097169755878230270384285278152896454971178289965416517849394728528147972615648440778006045756509205914766038527921002762830286284858837728624053458098888728114827405386236122052042311493756322550308689142076726668237870615106357720025627066620169581863084510931235109782649009112966073070809086665491298231110700139232881173544709095376323224797390933337369605247020442540729549438810765746694162233395087391474465103712576320657956872031891402243049113625361555505165214881145448988545361989074022959985798896252953184649905101846052945714087214684952314758302614012650214470981909446461846823825909763716199794483550573782098927544573227313277330583321212344462054525418234096623637109305473721669581889169605716696447151194040962294953592154204635767982730730706065811993296852061924296018833698996548372391944168103373419108686429723390646545147071565373929709500264782918363432443257110918284520611172928206174059659854721605487927512297296703331597072491833984894151870923104943675570111728671539453344875750253446309109540868276090439527127471769622860494670805637937299386344087046170022117245827847657638900300647578174391403729689433491745696552792670891166703742265892854272825717374038107058274537576039693568891149972909419401885602302862801078143249127233481660792514881212063785262811221349957337225712830588515566844266574623634737096324033806126604518801189049279793645919130964568677121489174432622983114225832248835916295819133002649609312865362684572001493849016466629941805416699833275851374915147595371400697106265669080753100665683581744807132183612399779262260093215482457318964267824910282090033826389928581302584650596803910222713669402915017953176924913614282876500887290398801498530204557328971443999375036031546968873946275511480835526476962448823408810597487035777176409034295322173945806305720739124981139900891400712670545451384028819659861881816426384780706980287030334909796615042124573875836479998070922789453265859692317398333085407781694481512616742718037000346648434275124016826605487366540235647770699037790444966144868518576375963157823801594250962712113485166161912183178883730645054968253333508128003552708166575743523756964157836408032616496960463799012100053530015487807620892104855129411493583996559809518374427018251206701707945118734795837150890924323695753352816346674240380467276594328931762278818861238978116336110803168231902370469616274623647738064533855293675255475151023782760680013404326127111413175182966334394269346021412117054280884506517129031743852823603468437514163102727612075280161206829828391639906868028859521885680928177468623100920710530667916589928092466958811102426241111684508843293339199550859458398436715721947300036446267208519318610751922428030997403657222718547621946562638673751636992296627629414963434072988487199922959495872694721423384116348807375488305304879425591298207759609511336817202816071025551333699304932506782305792991366264388282158592770082978816774593303958904499407781991178066382260825229836066891358511501403508494142167224643360125484946674366369898959818887040779965530301270781006904275138401325126395975972532129433800873589996458891314982400215089681216270355708779217928737133763828049392024310249504739636892962559104040459481323459435837821990766759009584168625179150490829228426210003711142998429847091820085073072438210787358828115492708552410214182270045364741171036006955672398002650278714090287395349045419423388839079859380940032856824082730838092530286794030958757480845391357874945036497385893332430406014689453360992932081439424697390927266596012576596398641945082265192280146477596423843604840024216285081492272105106005953038741322753293739442195640705702568928939668850027971245841950291079967256801088229981516141024614710506231293367054298424724105436887861075248503958819781426957973436203898167945030153313882272730388581006936535904715697224424040547640921239828065726525386428710832126175910241171165221601783001575937449755013777375814615800119949757517100197421327749747912112492598533964173393397414431546905915461363515484491921912084763204320601154299202410779657287675132330536942537798268685144857099381482571115566039957326525273111034869948891817814739699337558259579437359522660502937973538389554247017332641059335302870628746906152089647736952013576165658145838064106255349547961438370917848146825285567741859314075229774323237579551671915101586923482358456815931153288517068743243741615185786217812318135412245988355986209311693972797386404362454097098866744363352511642360071786440568252022283644422663821791612100018723345371244729513498725198120101505912607028857637417925388839386813340027019176963936242064284810628313101919662259340556094323244066662179909557009642673712289685459081023261869731092267278334470063442727620374880390248355139887835405547611365810337891265051777056720993984100579468175041729701069640653061887794364586513085993586336472193480241358153241014402342648302563643632112563607268435492740919556013764016456572063638488205310187968398201527382668701140196363302044563316418075062960371518712555198959993309141780369417095761195912966502314253514539063773135110436714113257717739060363669320407961682356508203168677908110485752479000936796627783528157555944588128947383034472899938219192254106493936845663499656903521809585463420533221897739650459794549178198966980460922435884121298963557539672766041359625912607606237058086602483291432215428970036247265114797607158111750485255726821957271221389537255005979249414419267877897439096967537316300091681982113244933950632977460963572078109333685856550909769621544550112725235712806575151568647509688320846985722220648689906108310415904845802792041949200884206084712560860326856847781195658714041248966077207032798278679907495954310509236025903490654348476633375902335533188778045616328481896375101835662480077127074958614738957838013400700093945973543370189245483140711677702591904995873224955200971872959317541442346370525694897002462495162693805396577959754401592812860791473621687292142162079258838114446758982630708348489781480343777999182707572115728549720676186018451747494317503085277864927342556671558821438692395210468394791780392439983734847265897951754378329785668212289693509346135514289992403141123996268126052642054122803947470390414573965781693678280420485121257663121093063464215208397349506753757461238068088264632375704049632529442871862422091325064415600797222258494364595142975332578811651873867776962581467678982952333509714026926755484614512528798304502179601845114373667556062316934350142052078071912246143594549467721580636798521148180847421686466069671719878357480736670442459139141996555576101351199859000560262123665993617821803977718811383018215875904890745379419371929293076242677948285628027967945441109160336662887537662519379495368160745049897768802335556268327419705164999150725759107851467422369381138980163913053323389884840771299486821877415072798286603008986787739004432492458444249344363851928649048043900868509848609011965347424898765980650702678000376952415640954218169257682696719083536698157223099007402751282753937798501667443194622105217929996846251378312105654677498940340011262979873922526420594771125625754234752352164385061406197953324349494971831628566753216962199658138296636268220455522549015145393860489790168900249698858894953896190687465085859484905762390644351395492956886409224305592554785859105606862573127285707216133428535397057757527647123218082492102330015649526174937887600438164232788751721522573241536304113861071802825212528397539145282595536454732822600550063539726609552060839002050499771398326377584230226780164373734849809372691818196408702915296257758727370943715072745193027513066164758336225069022906924106684962757834029406364971583680826129698034415812089764154403913549422378815968368155281730758082636989581854604251657960216255884189202332729785978051010261183707040524293424418128122048290452473974964279511271556754822799893842258720769233555403011097868401820288240336763089534346301054812935630062030982555523305924663457150442194669306806129019721831152258971299207982405367665386949597707724251613111716096771413768917648879886307452023555174084193381558670101175897358499982691592610606233805027301329419645971619663012698998318124592126593959479971861422970845887281319326547574646632233293550078668485992988597235783673559401240901538463214658391735583062896571132522845405450422679367367508516362843445561045351322178660836324227190570121052966636027928501451936902135168284690972726852910395166679853766129601095442932515213716197662431674642417863539014963752472545209492435775013006180381238974065470554773810040613479745084742259854915760650053341516714574801844914793244229331794952152129300512512321990810630781594161345382557971525940407050946231793816979260390727056523959543158984068087089727180397240909428445691057874369587532476454136488166152958949985851720763900784947229763803979444360377905345687029585158270383722898814180829143703901269806809735831400191023196222600276532548191641612135824093614992998288835693874416820537757201151522694721683665895970028816746498623214451398668050504293848883120572734134581495871215078379408260175465703664538887703209708414343305075639173743443450993254640189252933060769796874858071516160627996959665573092690846340843605278485320674635004583480671339547957550527850831178885755652471483330718482421918054639822523285215153436971818117551775508868446741874289628451562002204356113689016594420263126828500945008469294368768681442811974134272936454976106530470256236981818984418335122320955199680217462119280314624919454376345860724205064629120131524506700692021641079292669103145422908059263189178554745720541537338485515584533012382890872134830685944248762874247166153472455953183110184852974108675014472487882779341310795573755597098267493560806441602331155802487521298056381753615204970040390919689986980176648200183166396946924299337443489362229087063222899614654652179381329655950382316406036416398988819845473731915159650064801504130822210392468445304445101241161712762216706602288356297694738167985136783000219201569224342094310794119605172004161398486092756842455264295604155563458198362708131076405799342111328746146672639471649118307481600756549217930977775526270486782313342320610466780423049401239595794318957957300098583445126248974988964794665793898702233385497576147631407179385604991936934933890585973487594500295016780428346472195290278398771044874726899736595378869954610102326698120124058172511951894308386437475591823676104331335692958147012970243059642969451696231754157293355041526934105407095565032130866375667224486452186404076924555155252045753386614588765390006920174338239839136552751113462234813548102227198999330018779979899084701454528318742481045473565929176997914760215068109278541076015878767080698518668494212627663878701766504707162065164579872893798221052509658094776302812590145077724612462160874288093026561411785231974482302792217883787473178770793422972104505325618364722465980230639491820662558677002099253023134766522674147270058089826587794277328105037472262239801349053256172527921466798290470338898290787694735341948376427629125439171806163062407060461508006732467997042386766492401964283682481193560425988198577270307584012750362913848343346966879494046515336721630959867712222901863410535508366073295496965642726574379565543809504668256122267370107417558929662167422723937394664329312821692247574944956879120573738981389372794168062684670947141440926112809127720070734450789243672135810821580139548092307298750589634770369023368359910280036106006466321346824129464103959021681199120811171010824676427660055568380558483512272558923706490091571434073268130821485749337772474273171373603670335950374287269113160680389876948354034714369337825942894904448151072879217460841214006708406823948199622461906874802176578204760487877309565990884296151105376676567278990089830678864813639383122697434473390346933856043246173758953957191079260195847872133002445231279780861418540721864772306841079319775941524079304092129602532277735304875607964338036953466921844507989958137056349557741215365677452055309559687025220959894461366612609371324425505841916011991681312996534601231984806895789040321438181237730019088841207674911490594123913696984587040098260808625950883102946204070252417340495463920122682176800046296460191980280061201382585180884772553387969474829933467533463189743396582587744394304284236767758607741303265167751147600673176692842412957039788246285268815053433766460277444420103759252317066857417563303929151061710968572913995571678965044648289262378020826500015921679705194002173013292671290606495776939717381385118745520052679888433913903960947504554634292958961328007897769007119412619290648254432644492472701503262092616047563634624818683842051741161394607492347022045835399664995468867493692220414599349193525448047100271028382694488099262336541682718115643023023645890829447528258445381665828539274222247491246278330643421885258981567850643448012306978071616794817399289612626529319733942970222369994742813308865812215849316002560231403954496649229188429963169281576262571396768685464037943136005345876281966488572848175692399732594753945052540735645005622550439776406417065960546357187902953111554481472929176510945112257535980812498884970121066763609249986366100124078882066023883308957145329164216933614645824802196807383601754524084714154862252852870768856676770027489379447761987445829113874666861905887870083623709772832432151915487298360687758564410117340280555274210401429820825183066983460949425518731373928741130933609588823400454137190327030608512239212947043792927152234193508789787028588224891515854125059985606438546977727200656011532122584168334905932854872519745466114965370569898605618157726245369217836394288422400342889087941263819562816932479878485258902880949754933448103708556911822882614532559776190851622417186329903168459410691910047473368048636109871293330154901350945164960349083264001346995700253034767000268453172890804491566257380142027124793461763039469070109431728965541342208560598312052821424395346038496984882887205149005135245036215015685692829378331000716661303610156135505617974856819613733735237157276660871913074894763532668720131240354302937147030966373919492785026841714454401169134225867677485689250337730512629353964414391394726527492278978721652153617925832943238481917963927144675751519279755206803620922575671597332992630577195102942921602991240570021208765084360497060276097625481644705240061983233305043477458053542925136982460100460342095783170939342451391727981713383712956427605784509252609273675025493593756566534381389086121244682038943299471243143002905041138845993586695850225802417474389196875468597409997588340768487249129450983125233227593146719423869697957544316882034081486840298624035962427132432278394669750076254692060133430698653436439242529332088641872172794163889226954771269313057171218567665265900391198921238861058737918108269496641209276459796692031857566546210200187281388524277494907701529977074963969602319041771612979073993438131579793184909802973142287731921499061674099059337311906904849686298971544384349841963333903415579574844637327133155375961082812187738247276765064282941152207706448353815499988367757687580330331640780206273619052554425129238543709145937694536566892512020653079724987574789556026638847326412203903993208812164988244935020790926003392609144671543411660745872948310211439601517838394059367546919289574328417848341421303160757756709619428916215365011719114502339932358012141807392195643675154897827456026418904701894293530112009102991505286855712643909312787403747791286128456544957783085648324620511627547063754576860790324439295368729163367786764606069096332053118935634615163125592921449142405355711969706792245905018425630509630068632052722509141563638227817594685311378776621645900323544066331120035558768872881902167219964145465968791828936416026187527606779302893776111291576548464429178568746723814098223439641224316486881469796064014556176726802421064708923542544272263769960982572209460513759113200241648988497724959878729219926789748882205376508050901593691620626119314164803275971694560456308357845486451616961604395808989180999801794609273759688214476426700356327762609392477427428586886106635871621443113766092283422020920159045451168036589937284610882783591801379985793028145770232573298701539878764800455337049484202139571365925521813521821997401959131481614653072976377313172763146062160562766907933978591796895951235200772500513650205327030178589846670359061343757315609214639265406673644802377538877431682880905170764903425609441587677320977967171390162868910207830603651666721780058134375893300773099794479357543971875738106127577125651289968297745198786907061588530939576913590278234530189305711192762046463534972094573983729021543801951554067119674884194968218831874761718276522266004453086902772023495871701293201384590349078778427782892472136608726529271617466805069584464437136636100357730967813846670806204223853324559242929455317626191544738595715338504796181884844662425450501076781783840251252952045799706459329601727217696148831737301383710218453659349345799004575734784044815153764739456923318667518934433329912749427092326878219797880819261293553373911985907937955826288732075807024358501188186182111575389138905647459093888061946467627168439132320434065535423289977198171261583205879982433827967367030255301759939201822876136095471228900547343304589989581316475267135738561618717283589906926018190647613688620019427983065943207078743309119944548323002361870666090540229959215876085680325829304564096337698123279896201115635534660405398691374943443895569966090853344896549437859104186301597507357311767124963631300722280719142130817823352789499181731458134906356005938053284842435361149421505490068025625423321756451482710059873894516292399886860102497237774264414005224729021956540698782478487341681271138417621212230486914250504409578429106971199013949879315094043911912831329189356203198846890462004983112533741135981881928481455139739129758819485924985536915538437075912306423220427437679574129477467253862713529277515324636216325409577764367475248566969614750520451917685890058576067112635943322261293064916403493824130902764298524945394064000451843863053763149423769809852418316929982002943266221389757213140662514789419582177652705100145463451520402142205532718365406802371220570793160309720961634241958728022507592400508386117521449299998693528252537790185429183060572286294313692386416798691880403564242560063472911066400296945862039584659829395364119159726777217870176107052290845702544106596444424797099376384499925304149025138989623127315197076261109810594558448622226912058434790756410984280757234188589742548647555254706371142320825248677918083601644650051628229159856131146967489754734685429146906301500992333949745624387101792881602934708234097744029716121523930306532479895715923918280057101926813306215607360881867287273705561298060205550962634414593680071158846032939536762041073393717061416188058047195946201359673587213381303370605506767175617932922800175252381643532106134994991350521733006636629129371981467100571334988996567139997113156023613797878277693716188328813247361265162872612440525325346834824461653611983284657453546598124484135726621567972215838235389155637964621748733685464492655094091578426354140985513776862240813759612801904766743488540450009345620788186726383728641605304822707604468469191446532745000786199915118538828425717840298172050305689242441121882669405477969580762721250564257901162924323612653143285340155169767162430230964609390983449330315389302290320171284020553200335700289821800268743644301992768898233313489667922442463387961101201901995177050960574377612342193972037762601376498866793200719811286777220807072505808946220054216209148319309679105257299682215954977217109950775657794638306507522698203872603378310657301203406835944724133231592078759139391105697065050975492416526215674115186070592565052321016398894872932630302764243962295289125811599857401003653129442110942402068437056347973086057999655224603142753694183596436770001687323362765290503950571289695240202219278078552900826083631251963744111021655256805179259843833318636711570461567521091905154872396907667533481058271752315488962503723479524723081502160706390253636007594952854248565146768085006945809866182682105312540015723122158568090000723217496538916154389748901675786978755730720882588257971871925818089237211086196463377459536624553399936731907732077263247011122040595776330245170433949444175292114192535885643408267556566259730748364600255882832551068106966679360572087272443526687437880712499477933101092003953773433133718050873120169902896074738836457696846794264901689318146516809795487204397955584416087890706924610391069383124771412576656866762805877992994214147356377809570869415538554748033760722982353469330114686965240892236283874460514268456227840037776486311399191308248951470405500048615455663235061943513599450267316277166191232294672827123194341764010626741956779399306800440722543376962336783779911505728976610759252412199459994980472578945254876468982258101858619903797181659901658563512540450568239794510958595588970517778972114228755798652009023794270149928289938192637025267364011851111627178545925431229309823377805947814733709864075589253736986909227627461414611388439179226145637521450701640958652990885071305449713029397092622842025801617455425731029931807058772266377930639222275494921960879133299596203980656279966976469367669737347827755981932754046318497888038205308953380062790052830932032927660789066177357974647131750761594233118804225304484452550302984371248441763556366729573742285576841048883102253919305549621001357085800339064201405748230981906399718570485085360397304881877118640297487264991310504448818785192897505019630287988709660307151005688416409973866741218803894828917574385954688162399603701508727187224068071051272488135734665296603493269101293284665174847678983293892239981474767359189774128868376518823248549232875457523608479664038284234167940097735872256301902386284436734511961218674310759037302713237495366914702020436636371986101590010880362631510103493771424771083323079503378682803141194315941754520625475466545956875024208605804382513162256759943952067698553371340281679118658927692269823473589729884457375826987475522839666610512466652720346748837918392674712214905506900920275873947363815749149241113349289009376213220544160658269586866946196618804598188302406626595324381827670575243733660081954304003428319892748671344103663069930371088592649432949384165242049325991580377384513259795702254188050819583170120646795634469487725974714079777647831069278022284261351031880843925369412646337403434366855218150113516233565094688803041749908311033979770274840033689649969337392521377393762453254494715235874246665570768269863164578011954915914188818804946198933201471752705971924932216018897565748884626921347324674107313927453237898852143976036190622716624864702083889491418370058671939028360940201811615365074943557993367529237680526943042065271165629907747885111800351411464558132143687762106970138350218242131953904260988854132489981266138802511485397524460694706497853806824907766954371730821334561387232781759786268110201139959042451402497357835950959307072932336972031515879119522122301246792622512750539602229208036773018606661017798884433570617685983031724165157782342003206356846465318479582617856971743208373116662179769230651644106142557691243700422881066505146093317167831939188216100112098191736072852700230261028123306565202936626109949782493855034391952431918938525995922433729794329010605942557495950043606463206183634710266061972473316495414231375549475150883491698490947856992625382026621674211815930915353536995829763099489355823764528248658369356164253455641744819445982608306635244460987762790595059961470991227377739012902543972942177392575194647437586574186015897763970451282849432565584342082281405151694304055252988945032050557852655777903868901384823019923166745710440153738714976045335028847218327948897964083602976291720475600154581174759553088061747823159840243078088531326607362348748203788946970244190101868409200289288780055531570366235280095217847913864343792705369724806557554696451295071886919082293929210133702443827238598570908835274498392339220706271268320689083779621122357600607632241935450217270752460334359129440452224744643336548537849027112578729350874305718256245355449696901647857398581659460742498926624696064748667090689421993413103348774537730195152519660691997157707423184556864065863897292680486530069175186818311521616678624977176762399945117888082622010812034799051000516412020102532416271875050810500700007494447244409854862038542297466372692729202486778220673935568858833428696603007973638217648954409171047128098073129675610978986790702437402093891386317217650344928793032083113164319418091166129605517660558428580797163960530210319655899274625247992251538618510449522473440205262593215061843165288587143830063823127382123620874557158855203979370018267662318806180829021703570064899066764450665784817962325883803506380490007877412064133436716948910081514870373468609706847076036858722797478813031680910210237216039092132879885323969248782633453361702832630891542752042319521371290040741960928111962125832826625431178524261510466130459013645627096986491878455513616202604555939380579733729147009589606868551277360250502592718539653921391140509819283456815875912024342731852901534254579467558547954534737726722239896090175394212687620381729429760851477672117075567658695745866372000674541000338582445125620367184459671416528608855922657268794786550741479866721726152381581499857077144868690472114078367785239259580766102278866562292254590168923234894545916667096718005101648093667623506811270988389709518880997931562007931939798461326644330586536039348572522590964181088840640253106315283599353026096692695705095403187774120398935402229087562097261502028541018982850881935502165037299749432279862087439498602804685326280679678632719047712806199817452047569379236069748529519633967842271747904507142386130551414942500976812564155300664408607333101633530094413325373609326018537285879627606598822728247426791847494675905171598383796512990435343222937773596284101559848980191723406212532938660672001623391888404713242980113977863129207910352060912081622299917969852450112860121952703652863036833027987918411328834222186978164974654206163869717521749650440569866742754466214051961217035036583143908971127292743418099301105709775557474994461888244962980886948014037207432744451967001523472629348778740071298248703228420171298679507015885185189127991266112948117763948366973433881430674200674657822939685069939110763349461084146532109971950674927440359597532012718870399603295781424430093728464882474842801651239152787798737089525549249992273460763603385317966099867578136351000745701879299992522448574134577186216610788361554333389782905622473050262395299718146859945390258756869613304581662579324553754518306176902536122174563761400745877851739988456689753688786364713214672553278499597624736964858377869158107363020740610185758163234892621610445142859238561416279052623198457309971230951189428660629589336454153851142124181124915838855402684743900838432133619955951197495801758549163878930913405081562775187377945325858261431911903495592992415722800439086415306762416090671694910361519286658390690906411177275616434925690520605722093779382516981818524385440884563367269598185814444924620709090386859947219448598752293142119929961086081319119021671328806817737340042235910383993391747781118403136033667626069110744457593130709805061944089807223152480087312815527234884100737142302750901765463368880110222176547875958517383972324962948331344244182198525626483791803525217448622957851092087963974421352891573111769046828243998282967124013400435698552029013751262115460134820530981549585231239700709867220825926610586279652294056148638518806501124016475040201615416439103085800238867151233876610677362459969644438834044976207868330965627597443456229321568598509698232568238654811349719471281905519958468912433110345928095269735855849998097698701572504967342273128684886780901016441224502602975723358865561175376064133563491505386479501039202965688271478003405061353908873964362201364877805205162310866328076205539916028030493817039896274836534355571897208615606880611288133742052846586148303818041301196542526724913297828561430217378729288904674594933493795782525791364074445624285329130449621700385663519238096750747341232680787767034297086093509293667961384532535540404680253525123395028780499539998126238454480728231799494397419024535946384545885501929589711706007800788709746570258386071248759273092394967242932723590322808897403739294091280836791908782946879561750533034534864635437382106892137571587804493351660265415382731325303284544417679082870277348279356466676866300880544362421068677926831613830539183280338500804128572930734944494118714878531175049820599653804439979321138309102186118597221771498480665792758499327931893880468886241371135327996828048863049991984376108143329901810307494847078931174716180482196200630068935290292982023747487309564705261002097927328810979656493532868132907568304886273119162762768323620190790278368248461558161491407755668396200522030038947620087128328097497760699367296082301912627733754285648905780746082895629323076518128421305208759000687687205458387477807887510546311364236125703668946042787279130236418599939407875954231090175532275978866035442375187862716209451773149577708511900407722904974223189137404418615373714605923898490788250486978094631435802615965851041186111389375766827950657328007335199030427388639189705959092364042575678404387906610898277261357261838941559691192570645732540702390085639920552512851667526916802281638210143456820198118029821983961241273813247718703771552226806086620716676011859151950748184150434240348294499492619675782896480440799404791750830289617134410340175493658252209894367801605477627839844513996124975547673477996115873951284874420031917986996667713239964618274511627728049567472084887394335724686487797229804379896371873345332543607303132513731336775808446916389876888628145768272861314681730907961623046166625827044343029336042110007283490270629411762073453831756730643172357512051990285145927046926194421571201551069776899822883057259233516709252388580618891061649406469312430766805996385897393661400401448665693887895739569626961340000054922265620892245790031880888969685784482246887846516180887729040166250974612180784273201722736362752819434848768928927449259996653527133103866620871544264699968169979812658158552717708046895823179359140397158917097642814328689875221225386406081266485671844031665815268765272569439124341912472078812744823285615580861136153588260089001541757481589830563500307521030442135591250618107955643002442253860203610853331210563672860863230441997261086222757985879881227394238809496998685802100763801303449415371991605952772305168086275660150932278435972229478614225393332552096485954845901692356305863235608832710773221974544491242517461249439446333520552538280660529159921216599949482904148412677610724670248863398266783691012833859439256859917809204693254407693636743984263095515719249578743284036538458041645880191630776816480058832904299592766929137719410471363272663206034108309570040959516048666505973378617958981550348386084682784890226375277545978280111205515104665243729998855796453985607506310573060553084693469847017614452294035706623795990542700423938671566516096317512142593699108064030660816055831944586788185799994015332855205821504587377052334357127882346305379506442383831364967460788946477193304066384866906264514006157575751618448656560900661855447299646249858698524290035139199540576148237873944433690297567462910445293322140555792938194766504352987537651628179338215451852521314709848625310259236741627097106762807707730647817404289632349078243803770093892284145384184569932280680301940290829203413894602133622296285947025018270727769456091269626168653971860370728273907193090513805050249939497165417847206924229161231672218824424664636461461099523952677151489225617300664714312466772689519180111973016636111569959539175074857256220391663822870632932944832715345094591021126537222037247137845960481072119630534552171175187099614461133105254500079207101928844174367690423734586529750302171619821457455986401851598579238514219254830058692500092056862409385225688515085480648495536408473028699531833777510157682409157032468009941734218628472153460984635782010090856993164914264430939032061945970864283415922540059095232640779350102579203423944177145162670940242375166786990463557265426070441725200982042252596561508401241410929402192833236769451166464055614749681076464406843686804086642430142686686871024860136696681945938456932107782509418131200399411602593865056396710244345316189949740051132941928029344661065318081354547483546833509565011843191214752903065601960764895870079803904872275598313135987508816823626299971041709729955423858894034797289483955316519251053113882582250818278599767667697328949678031102455604890833833446870435367759614649721843953730775967005755480333773087828773330604103436431803095481301936549610730728311613323304851652946563334093301558210181546767766907000327954217266589708173963606479112295735296976752408355769430905707616875905562128103284334753114961813148089806599553238980927059873091104644489324116452533804799372770439831412537946793168091762848919275127925144129886579551165000070826180488423181074830715579795844030147098100400068253730574045080062004427942505490559175000612675284470996088349375004221794150138993378764491156761593343461619628517507480597355715339823178455434802272105923967835949709657959972589050064896212118125438699524652241188542425531812904747802561513983909662796796338662008215792288264456387327775846849934226262567052653362071717202638576785116182328708950098872060002141172117987330531122891408624080588473560697696646739144925738320170490772464792447874417445260017444480618646788303688928455978163738780155190506313095642046334495149017704602056079673750148253245599184529445224550673796105664173676752866217656661443434765925558099511601288109500649523409650051970819941854531226547142594662646782207225158665336323394377055389838144067430089563900880424483417082315046368310120696598278866422631140689362675573864071022042137605798869988249278632192788364375957975649591383548071809487861649860269266444045599573725307400826697409373394110478509588988817434267408674341503365090249253215707592374104702238243156342999114623037138221121324708231783752675328805764467026342550612355233688900121644704907663545530062153196883308201325203281086189388078736820131615625941883547444301424183629991984377083734739127636507443668169904361165590289164777857435256010331317988388992809548498682318069513822909040568272435333226881286611518491532707507700805559163751195727885944764536901016590467086175891850804613695799319107416170270936418215529621099001583925434607128524018744365846134798831045142049900807999333153723922763078353865245335794759980589205322724347655539115437802974238364576228367323753381472327974032848018962982833835764706981834151306235792066831793709961720373876889627234491598140652230223742076835440908430868176181635025565446948758581985508065974008442778581796612546017340346531620004175384696756700308266439639421650215954159616632232102304519663419772634878444569346800389914630423869358547039426404179654140206710798727220901789181584010221471848554086244500657415665979494616074838686604542886983033085437269885218687810048765821100634728153295889205273769244723204696726036258412702123104468926414084769795370610804921732755779865621699615041241092907622969316710094183027602403537602511446579639542974524952298412550628434524292717603992977398380253613126270395163462734233727859579154500544184923080293931670151613960049462863897153152599461038317071403651613796074875921288097065438538843699926974343929908594304221482842299627089651951922397439939185605655212305338574365384062286429232938296214493376284627641905584134713002556636032480361364345854481495441129898411827852594587279160481164172294571834265340957171469014214500179082334344517245382848698138985584899925408685364128538428447723285049337145627742248274590909879774460023405104762420735125369676378883997579604025267267080766828348451693955155209668255198034881919912615094099591281405368149250483460822278172519155165695100750072111973326674075389898810176724891360462544036524513301309745134306737301430111347184388356603832417143183024522500829838302159518238735402785136648152317927828110432940669375413265097859653033321008666232358718318824464090707549846371641681835827072066371958865585752761180073988292970677927340888949641544748590200570347042892319305427186171763537519721799480727669596845105698842630780989282384596349453593488936609085050348696155353807408482407729116146121072654365401942236117992729472953891707179592922797035521456885694823870059833681330347398854760762462831275489258875964466625894520621514401682334093776953459369941273729043787067100733596716075694829319621064554103979634860273835193484640534613843863807345874147812920287661811811629827249097710630852167548903921533900887086718181281034763360515054209856366696884910381965905312376273227327295087234309876032859932108264540248561331484144513053355883722274420980142435677879590186239765394947012733730969941276502800495942328859348922394218199299364261965553229436604280774975446361145200003437937563974915532312047437882323822944062444500510329776275218792780195042184129930104032188180182321200057516775078385617807724244432590231200230283175783737893066864945365598560987200699980036672322822726621538585866605645466916806607744891621354846170401015841462968948844906287383494710300807381278488635036782763483044082802540524931241695331134444517288987671099399727456925664483173024684691921517252362935953199767949273894858231292020831139617013876082191419981989834132831849870251991317473327925903641134190872015683968401612117227438287770437296145597853203227379550923608529107897894170472178894080534655078440061415933939840135159897257122729685140342224040647809647731395249171079989087912621012612797692567117684695987709098674125276466618557588634058477377054728678839754759987474270286955352855743601817012834309155376836905563409331664378615575014072883340244049524761524886697407407036687797239342364336179936474873620706085637517559735778682406578701808227133418840329078721875239852323433773779928252340717741909139862119143588597434921743107039604815415128847463768829391000858810231246597324067430184701901642387335264995857399352654167192923285322341435220305039464181354381524281868506359980467961461048060457379222897369679611721184847500326084911330730452973441024199340779078514036502779475740873865140432883439766877328810853757568638489623907356848945334800140845693454745663272518656638363130872218012625597416697130130392690360882517602377211603927814869471339145203444608218579690283287290443149120030164032538940872100016528191966194379806386265081393939230162499547105070410028205501896969682198674187489095569825832148022368022145508875528314201569562277572168961278597572486738038949058691183179674492328714248191065222223321212825552128082132493694454050879990108817537899544241571798810236246130838466339714962135403334651218636842215073378767795252751356809511424499732955093608085337110009341367063795174860693490008189811086192132187637778048955258868457136688234781323830048521738865265323811820249753842422316352632101885408090770077892556592412582391826227458598129717138454579441812372915798295455627378992077275784910220960311744576177477348831834072611544946277424421826659288109805324469880251183302901373302278667769164293423038571133491328574086112317545122969810289072466499148678276461386486736670206621065617074179221509173719653276891682146619121206617784772579817662390437869246802462452476573122738186238063941806412649270384105668593535702822906569114180300797995801684133417337300854621479055610693092126206625990674124245264928086300067776082885993108940012741602084552753240085040301810557291076051539277186505526276658301524841635132152030170907761540102245290520114319289260613290630213505634981929282847060139367770146388312867832934295666347339356244862296299057885103824689277479699781205508450186176076110456603639497777578503774894132537835091610116213013278060026345023748850505920860656794059844096963421360169020233113610541930228514480157043045552637935756630874528352887427961712276697954427728193685465045824310313186344347249357541435541416472187062208568030754193341486627612353623494843787981819146303808628860801079123214980772349697398723446102700207849667002718411690300281184947136399617508163129982092130998514476495763046358221012543547846447968327980930728524380057865359483161556408275015463862970417311236442534099154016263589123290592860668566754976283460155246999801497033068364868903299347214128867804936902633237580673385611473763168737382984916786074129441565524488526800868828349371976266089412456725985168700817015071195935774896168402732592061462982146377109224752163392247636983270254797405621388321312671146170311987400364347532033140246296387874344343489663923144011934063382255827321778037365114537865515486002104913896692248033533552241826915315953647373866288765095991983449804136502968973349266084531800787665708701883434819927194583696980537906194185591481079617235088805637796604301575641088904653368723889511074953037290357086213630956156097622344461228561602444024235841993327358467772071945335810495843638430506005195798374530210698912162946004620843309332306287453857489681851391523327473269317222798248334008882538332657420139239043938485149851481930972541949601968395723509361140888839637079721984916333813520646141935613185613833230620908187340223529549122802130822357201514819928375012234910867149541421151669508017562372271516254387657202493559252435527223923627914652578378578391448463885073476739383302690396819591092532592308841675216236127891690288172017445744918993254553457484708239296598616843246909263703635069593796407333718542150679399403114690393535525835888443882173828852301214001392137853712026847731875188631926002061539805925766649554203612946998102051298347294917651123409026925451237692481603613139832195960980616744523185106500496328084763394815016785133675705473232716539523206291749084889108874213868866520005341536529216452637982063328408637252194164411204440299123847880248207278641059027766216631831925247560751722492200891023766064722479511247593292631981533748174226681503722793895802606640695673379918651873990831273807357198796118640752761343354028916726904558854833651508938148658221714354863711589809211356772832791728220850387358588506123534550788877669080384284942519694726723053779815037911129023499429148283489413143237934504691674825493060553638537047365079937078615273812992377466667973249888450378884467128240320653721917466224970617816639076428039274053026436813589820128724671849960570733442133254064735610639167076808998376187697974146303637673336322116326984127175555476522744851136343557637256501250430515102664428552450342072617850215202216059358901216000361625935572271757477914861718766078683507781945305386387792773665054008107573743232240192407222132138659376121163974320308761919479767133921346605859713545112799872032520514402716110697176250368810361107454713665323752288098067020890343489275087485171981931919549635381339266150039410285001986864229826725278739934121435935056681692659937258491324505357195908470834057459988290473618962746792957111512895832001332557022554036707081533684072929238263900311909533227667327530225155327810865211495231100322192411447202828695931705532163328953079550827151238549837996523347957098577205136079940167815631302657388445299385075557114452714416087879091134750109539661732489623180916734555524439788410624143061876436419306107536947619121251834618506277911641998938045529377722041068530243621553230612790002670569799522853143881939939394473372660886099791473448150084324291753847834042497275682743099557322280299053744595939130641658155935952599828109664847352519558801557873687351524565431102128271650013139288211502385049489624963362174790986720330998776908763435577042848924245431464323492095029819662373177680249433808233889732394700362426411256900602602213065940681988149632709867662745273490308956862543705336130608564551558848483209264293416541922610491213640634804822180054532434161032618718452480057337750627566107464373354250656878424007107362456749479822898008583733024090035303891950582749253420159681458745065385831396549623640597163146171929888099128997341106892028584741059023325000148645491982434103920217080201470558501213051235907462011873486071828589599826354774681994030977597008369519262073193480783191790126775611023779714518916152287569073377663199273376624447565465136292729363463392161163247529964927370937102867902035765536246921809522936850715399018493795062826924962862551353789591898113769557585118085648518533279804156870025784694119887000165941159642907043799703565987417883072520910561936470822558270757910125001518316526306716177844772192312154588960310622235096578991649885234988329388121582483442747073720796853107629100337513501413958655534320107971015787769100773281798642221822815725888267541761868869399833596514750102874944460723695875343057960455969372738600147194472915025063713840867272957802220563539490232752319938695839696982751755529933176251725910714302577363514447923373829718664439402244556576466429729349163532906333426156876244805359821543282493403783131093756182765544373922292562926061342701752372772278003606652418302501919482093394919539411449730879112656835765890777356626503672693873280874667905508598737623900742455734899914794949882128969116560401770003440341931859348991226538536985484973833884005575171522549394885856493985745200226901791684947880898173652214339719493223995390969213117776016824999304036715426620048287477010144130487013956368841930787282364698506748261871722522624704701077343841909957262122725909562846471137178176218884295582429689281811968287060059983314239089849992347382507368047217847162254488542664960817767381759505081384958876001464036713008176917599155943083415589111512876783583232143480849362251548254210181808761234047546284854713434095884292322330477815105336115037508328215946074797749245556510420537906767006711025754838030942331961909462232860239271852277553637997973469589294791899262729241334609669941271313111730217890186136453352265756409964398831322949205917677771461509517424950493882861609454762844818349237752863024826601283636589954967529497135267461211673167182902222939674946340543927528370398608290836028251724945477128357799846629687361008978300343578379461856902775256932453889779408087273437180486855612548978302623573258500227928082798754340549664045703401817806121283067656361133323901030994687127282497922129567971008309958858768741436706857457433645678972048790173372231076195922094680675059256151229748858457905526976445168679811820002555460613769392199506870151479438593079238018295579214652575241282132978608016450112535067246696830538664566208054206344560388966460454672730272061856373974754095970689186644163690129099396221852614929954593613177954011264143947862558662196611259557684731623680551137111847718808990230852706117841939349227735957460685464133887056507276032340120224416792387953402922328810020488821636258274973943958478311570746245116059563237153433217939590559681907751093310690256338016446252846498290096174232310034278311572228139729128845304052636691866150034662676959768302720022423051135079139528725213440261287243257803675853382235010118622301567444605595004412381555735457055010481869465576993731543002005433712854989601795762737829215643829259754215769292268287412286910618767938320067382916585428278624026790125182970286632571932244156620467738441913956546543959553449836408307861741311585013839313471513976209338179780323068930537049786759698284238113921505741903541900710820555547584853403163001191414135934695123407885846045481297694000053701793437317224671224938909611884842734220130405450280612057390914681736078092942030787463000963671132333934846657929136737603346942562133937464149120674374112277792376738280687663658689702646737621063484447368759653320890736294307426276860005675599275716489220297899431118783284742282861196474940156826819383275039687300722005237705869519554789618118097312539976582297868166325226380683040290180001134535277928995204305850115254463314280947734690394751940944122723985295436590720827622479061815910980508539151622307086358521442877683924731666383402788358898368908996896588782327166325489019967100697856034802928755383304046160279742053808553426539211947852507387667825639953383079334252814975284807115578451447184171087702872318554160026492112335570628428930320223654980728733298076600642103991505479188874531449008347825792833762150460842758904475712132651198084631067983733259490317397860100405395763948257623235810658268360301441625389236184399903824953412062409664890051548227418553731377058186830392525515932939826379897689944782846317898764759520332894783705264653013555446933002179561588628647867901017221895289664883704956713768490151911612826537465911051284000737742486619678460123825188885431317631929114902562591720608168082854184148963202263250928811982113134854502767863766296772015182152991149159347719342607345403717521766818279543512172726381333433124428396546458707092809476649901404408895017585932072734996540693138349845472664504509810677349639481781997777517155522095855635488091610658289902780203938804676643828997701918595654203086147819406671852563256956052438769446305476869050562772187784907052613344734754713832818862307385056542573939336348594224387378063150138563583763635951765474555554395487557935226417240906019162395848067784187139335013676719658431083230817419016567373447365528477101031254556717691254072045320773998569296111721218187377232322306412585936763275428214013863126691490820582501752275336942915184261737443778723981503373315981849611041264662900155630725796677794736324611899730559294115482756526779184087370701968436802445907752393527972317020912898060659648559827490910948543219829713695883910937826035960449900475998217503192056659362556897007106202192821226635615409565815437057792170573123790004758311508361216530279928449376556611210316075730913825680947363494413783078198059504357625529817742859811909677993535493672329390353811213716244097988418919171784928281181776931253297301296421396444535793157975037040643224440883389812598953446782533566165204310880553854269475407629658302101784881401480917705039978487187957196336075381119703128467535853059970955300065261533263593582033119453795756132696538300390383192758683406655753780117387289930456035850047540814268047944224422208173736964750167062516980003961706567620551858904036986441587234104320428432425430182575107602315573985245772634763685933667691153563226192747207590884776585797563547479017202869040045639185022907233921592164255987297935418884446464113570985707594869101260430707790585805286943825391144923560901703416115659871909864299033633625163491616659942566417898491825923475230048541550314220004333207883620361982714727704453139446240205701838626769536854960626049952762830866284086589091325993745044815215054364715473790116778341081247203727861401992018223886095148148356866352825447760786421032820056655174669865917509886339947333516907911838149757905213360917686715540156401124774203638282549277862886344104389139416286703049591212255976191568205508857432152413676649707707309568432901887890448367756508796820567319639684292698143521474292240360646870207364099455306365168014598301011838532375835458643313695483205421057132549663699579862024745523856022781069152455420617932909727272369718654961247122903840906783827222927336256275670856772304496430231390173909574409712568649485946454541169456502510823622961896733229611826981754759700340649245904922692232712428175090453593177942131709280041199179186037340413534986187962443001820140502010343763386720898879096595205594582165538930559357144574127252976546452693937347454267326082204866329463341153122386270343037191750942015763659088969029385606492196587378019479993097418421704896443300783315337386993180327706290835151159317035916920964165789475641518278858307764630450286006207520928588087458646116969483174766708777974221530683432537754034431100778178672609378512279577186119682221896915936362678889979644951641336088251999369805761887138827563418638523144732670198044467414822824949179273196937259602934191298875486857410871016581433631853148516731450384569464599941442326509586954826883331929658285982505679259851609366027215338020280432597671508135346707672694457112829501509582620738291769299482832413154237663730204472673417245359021335533345531000245482732014904738078315949884403045186064413306905402999309799301273363340337290391958366458069097760939204389816611038677569833190433986779172588343664323037005203278697957932450974480198406076071075197274699715618714063768516274558653377489478997323055179353756564576120780279350928432532670325457787482128370687577208723864237634595673813980410411631605614177800114815723862593154416993741337548222290102614848150891510630078781238313665486535192798379504421537848563814025966802405003135916536597741632762169002145562217175956411515163301949383173958592876129637147060731036952346487670587732491722105363981885149269498111171467276409812839776551884072297881313601248898239820297459810048324053396132236844266730896921451604582348044819590525608973977796316831694224380143100402039456018304626619167242223870695860419749374620346483263874101296339183032616905692544101322390681240071526222754892709734346944914176332652418428174752168292767510251770742032468740919215328416860273238851442201296020420837794100149567110838668417003075180377561584887468379579473951821884536154704474610163348828534598059159054600201844557386263109231181159100617133353328675101690240799747025126711177775004284967425480675501311241269320512536904271085706703671278311055021199728428695367213794213070951491105100834945946429853920477761785067743203673687309810489866580493492394705278556486124141799571894890791660762504561802539183921270974220297141636801251185036629611223841396708649231429824470490852773924461861366762522708457495630877463272336069318755658524522045417018199194889066873395740779124226116610497065087460352509011903710994261299005361817915935191416427021249266350874793552966554636880903219970217774801610241702288928406063963205238340199202386200525693217713537977733003290356287620609054857284393322327072903030119541929028509383550731053031417870775141042137324338628095024766393496195462976042475139181747834699097629427701898642964586499812811015895434107354144374982683271060248287754418514964118270982524533328426636003561055392242276084066606556998506817689740909063054057823415314457533099661495577142380777216666223075704512745243164161572184123729611281907055810360112383028427944920768977222498176337896409454322015699524144135457348874177978329607938603563331743318095512732678921141022133042292376524541214214116653145380359823560237806906572961736234226069878619745640292327000190828339076831197255541155716094974405888327645293431695405805140470197551326426653130471058800977103482806961791643598687197161071357817723165667121332516180610851602246325608649503488363965213669942918258796457917721666687264320564017563438373353854783585466891484185993724764319444375345691188844171845054483488445534133258415060011129623476426954113038897410909478379905335569024258822863272805780309096850885355394069682091188651190788753793787667378461639170997419151685993206393877733543183299698751882917550692530839247197839771288441372350001793857575894516741837150180315523529138608431247752709623953826227317975164871271402631534416300927361770539953395511187949160888394001142405553449129594405698739125380526720105301291345070935616842646402774968325376732731798182852500889495894798931600251877031240843214502722332490387403094975572550599337637952900406650639775330550434862390038806682759862095828467894467427559858181250492710425164101439719042856292296300727747149537296537549458589457736869640001303692012688871941537088248381029713659425469808943808293459652225203636494746948946807803422888716852255587666906568108778991630532850487999394409469524156621562741440398825943199604238457931039720042783198956599640559246067861258058306022537731524001105514049666326475162320131639465606854969676601018915333362622330787261754568403427687096339579205417051924929542613869880436495082099305657192352645236949890703042072038667606433254014230159872893288110465844750761775368687347698809359982888350161987819452282311304040897961630487978975504935912829600935399565096016556465596560809876839694642761337164538959072635014691980326684040520970108381736539655982234624264475037416160806653074414203218206519124880835726555432738088962939569455196239929885011169556712557482076243331609736038136671299212961565991947520763129951533645207249419575849054499011419211710103515139373644524358004494834253472479521214679009728539733654350997054856422680180536434632123641137087622472674959157130899117178816589715254008545964992436701892549687750162068521971449149075767397563962578345295242354092878182610819481093219920542112436665175625001181661983306810642426950601970662996114702975062993266901216792969928265347858310086892774299613311986038336119803755587775613915481473887737228572022066171312077687545895375892517925982918559496965740748283130314222816165578528692978402773425693061198723450831051622469080978089142423891341918705015042286839546272154651072377265384156368146865651134619994489476044555809716896509758056032452107355656968010407089081068941103254361587784141614874858196480210916491470295560080970082393082920937283607905660939845500924198159158385579311447357123921905648968228747845879060819956121545848929788747883967974888494237153332949475745191476797293254055561660169812482862113284189137998185061217621632130625452649590934244153560141554004562432674868534846434848581041309319364070369264489816905253376554541987961332436423074634426910878180397782075963636742910087066437150912051935699615548570209375427059898013248544349032125008812131194116514283997664191996985117807726588011941161108018486526650442149071952185386481677620552121130122138678375101428535458906351411881451755415096138711335651044547973975945185862568455501227686122250317496317304258784912621172982217753489827386799089410146143663228168357058887310841786529302131362485607993236239227567625454673794253803242224814851604422538252434018748074633009748570920982372479959487821023173938104081005914292370723609700756635277963312527229155565433095368188703803257233213729125677168075872477599760356470351039162805316826183610819391454855131404350840058342891634837972080299635642336206434507634981863054407818881035072838984837975425757691074021996923916056748884341355580167356340571959031101993912199379403612651049678442190313392510707086522232945215136165290048461834481868224119525051768128287981173242956457946822906964811834338312671464274561316300232624267078137801581001779774849257245208843658587133215527379431867029448046108027111004679543378699755830711332401893950636087143566289482011266579424068001622071666211122122374001431915295332675777537806824725918248615400876949798430198575100314233404299477921779226474398994719840365725827320815631777260862987931298363215963688793578108633285456143009257092318736616130702027897543456944730291176342075354293045749114145956314709770028539344052765705632339423884617476256058656553360789153212514566226566583867004953831268645864686373390781299562097506780334792956440222268676064161223383859254230483075760466364420830914027302355221407292672313527477408992307683742966790231264154347916612808576026444196639078464329602640432726365929327291007938882951509309653274606141295204097927971475370384805717595793849445453673541805106315697618618331685930661628228726415465807357712756225103128307238834135326768938743090239529424780692272504135338815486850104825692244584214049233098907609416773019187800249223821424941459264550961194941989589096122361627759654370045469277761047149365606826657584088922357217470265622256981287418591714398994346817848270397726670065760820854655125107889012845035534325902233638959459811901030028961359893330903642970772482221882814450278980918121459028372263060814852523078498720198907245127791226503685141541483384623601478874334662832125435576307981497878129857776719452620411066057280890709391815744514043202935308677003143236381552723669201243683077553362349434240186684053925857088744830193734311619625111323103033883073249873725424843392147052476692423780393342507848925433430322781625397885498882694280512204307739931843122379124141561823472938528378061347309305590399182220876751482765884780048123945182287578515643213746953588555945905272998317597841559447570194258101091102701517516130759204242080897672542956588445945770040623220619847875993572597270012924025573922563311817194994433919786075485502139821221760764898326383248514738637833622064326889609145438111982681622943827749022580587465009849281841239508746058230673819370174606648864875789794406004894633328897303734876628724692458326162557701945195723596121738081225903400052008224965821067810645503449205592106546532740727480371536438606965769685356956335371719968967881405194636598525417721245022027834900262814141970859129470944224259504200512381587113784715890584493133895121253375918934108038281373106764150236794785150875176054374631202205200960268872001196150181015847212884200000342420679209539063352508490982154188942820921432371115438926617177510311964592488217721278133684251888350468012499467043636528475066849817954286858247140887259647244974390417195777923675186371404709810599232726084038773911366483772438485522087879821431505267924291050468625463490839162825527778990455546941066789218635198067222388141201271295680773764434965010644433222002852127780823955884159673170131614792311551566586794314935427680792196803250025191490217024617578543847792786090152641462916549580702252911211304827429936480810182293341033462148106787022888243260923805586119236360165664725409038671116861965902516965804579515162356478494161297740694668218146031519500206633702104094447752538933382616403459107979774610921926975198582991807014692286565931536854438734911853337659044986540722196682597555191032414743716765976105774077278479783219032702700344910454608665571068119565188494880762990445055027595899187997402200612242999967612508701920513529996986305036270291835004830267544140715735765924640002393699538556097187711580852835502084016770180046013964386088700253515297545668680115453023164287909237406334185021670740212363349198365523691245781111466929031249755375937396050829741703303292995235029866735991043123322000321529553572098445543472794888149304557779472307417787988532347642029082816263826171566035975271533613839957857610830140350493579231312622761126627204771817061200404254922516848049991643149171432263337647857613823716682825169770412901646587012536540850054104513424210193302041898526173258719021986294671610754866769683032862986609230316215834651323225787522580465404744525918406320251506440595910169312244428485590658444463496513656625351482900306523129079542641671300169625056819406419878498640000439438538380872471134262665487886423587775303952041813860750871683459078084006934304374709495654839770080702595566609976796354719389449635611695272958383907697334405794353214933458906974313363582770436753599962622562719285747934365565874437933219226174598092941552390681744481544017233199283785098315841732927297030664968089939544561347030628255278160066758177133899564365487714277404518989702985842220552124103590223455344158816009001345091665624796780072763660731677561042756401938107728812267108024363062402803845030919899811192820820488621567527450375424637060223461553813173128592172692798700439416823746273204939620838838430103156196769853937425443882245598575918551450141978995321046958176189650446361849201798638837107223106304064014867035544886424551408384534044172020390265221518924284302938530441608570113428822473694649812847764169108655343536271117731960967371196858714448807101247568523133984750394920333129552402665153289162362780633698223765282063018939944971035638065365701021403302362998884924147098073642218306665631149514429009145314634152832931923713924627191064626720656579815996559508217731611038783024973407768075402755518180225619834446006791474154296265736393414681955000554532876796607678533548575404139316223888970657909177260349191725132066097753595539669234676006054198150366641613293379066819247074174686701159009878916560094219517546572029296183991630025691145003131464412966440865273422135103890569375589161925684634996616813811732326901317949899032833211736701671634545052298060699081365862232572315979130221455074980470655207448242369487580312231048027922517559333209837846470355345300069069655685409294713745790530435287661493736833926371918673957033120342103980170805827756149499418039725789066361793957019542738476522621183269744674619020095881885282244079459735413888187566802911469088888341830143735040325951161199738384048534966271552356318169113801589429361785687895477727051739886873502601593536536132611146518030198378976680855631187025952633762452890409916744480360739476022882759997964313092789356627907677491254976051537360246216216277437866056218865274398748487380940201452803334934659589191242998564140946642358585319446874011343348640414704366395250726730357218376231318650177194820395745402558157600567748095463263800338683821155844457478546955881981583059449425489490041052099195592199229388143543616812446880572180532088692921244623709678993521893036292138623579879257699147469623290207249431700232636337557635612808093512960823001035122995552524208610479767304500372060966430847260033981473170988152026792453819111709855807366698414194098153614969985994390988970305372076271379699076967263275901461101888599718841270422319846867239807715956526640538678713289606091145464786445791059444953814469961399745832093747870164679863708086555130169880470776901474422268363284627729342271444994321985035520622535752184170560277349379234952568859550235923525984939043977557020647300757495247335288316116517789144264873326823302733106931264614053101200376091140744507100491167871826875968941609427616603736213749503649469310025088389420029526146647784993308379407881496184613272398587800716541877961444038001604285333391195343849041338195650688089156257770379954539626293194150118773654637258850488794647459329686507193129059429419347695274566309557755560091830147547971925613236952972026115116892660446356591814874145130802921948898077040063134475577896492009339955239357223117701397077359520209842037643253227736579867725031892886916001909541678726984258688410586577353166146048899096830071629721473707638267820122714996936124636425192157750553568659486293300742057053707725393221723431925071065395380849211558228382031652057170777399829500641441434351535374446946928449464402360087144850902447664146831975209647144252868039882145295426237798621003550488046544286026103845667977635419442362761382021373875549848586638958904558110995695214088838455221357517915681949449402577023528719749919131246627830850167878278090487551405677110927162535305083155579469484268387819316623658811872944113055668245196656007847274640160123350222405210116650795777464698154871611056388371670362472890954578174064947662228324675511803291825631528329974369184212999562555625026175219265378138227335861307184522144436943488586045122612663705022242863776724126137801353380346408583720750862459552875869221960560326804814113325743166707695490638386538263889393487114848927375529400485791814840659656431452008219361463337045918628165904722477135611392605128166141106880620570042444101178728574844141088701895293253417154779874776908823756693392943697058013414501399351624253842939634096830211496315340246397565736860379687657052456386838492690683866699538423579617685088132459791008033236360659795167384722560230096983154411826038007355170290469990727335997131640375332234768973442174953887899707500911204237699515475391509903748685783085235918234847230311006752474863176867405029102148602928348854171538466677555542797787888258301934152822250974337240185193485351528253818475596747703818598131937284808967444044098577370995965666311321273800706508369945662428347573686564272952905217600859106154402294983084484270016620020599128295245634965632830842924624508584892123160357212177836224178872078119323091413371730778798463861914398790247365767778105269058569665646084380356102917211748323797805178343153690682490094218644958143271763733327031146011054630904479068695957508134937128216592228555591444720652854907649546441105285903435143301947688898517702219358848821856765420854494731979976277641666447020581441695746052185337156165000841747688731373621224604004487980557987385722504467854439944028418084455089946183196594369721722010495316014283609088323329295445429422284274728350336288218291491262093224470616702162679921075931366066481735589087543269493075279668007848660234316597277372802807346150544772325719492405179755170048615732210661721557312475421109668424955361004640353930473072491249018384407013817387954038730508053175751019629433285062858630064580105161574076684874719110240163868080309393629798396876832910975110497764152803488296107154956039628642514728443231337336922390584834154416314147813908856583902360569074643627750275413742194088167089673387567582495083058603699283150485873791435362714435901111353896432020084429395895833418168852198290269628626911746299985488599107216973387310447719502586050949318402587088431456502284331762688611916913111263826792303862168802699216309667627436339736717212299654190415528693233175257205747949184709814308768073965176746902503283184123034593868326173277805947328511666663970219726934297374247438386302381169290769654440132069356838183812356760233744221899596566298091705986986170931337833332894022022540576885475107398757388994183198081598840504644655031156402505544297398740609854645133698534728970152540239197009411440603486242156138258416335487977353049316122961256598590918286213880898584003301288196335501775962314168054341657303232355337639889067381341183322446624146136908659505667671130693197050749114124305056534668532859281955113419471712868318219208851575644920613101568982097248014444177354760768468853695484882777510533656034278905168641364339260424183354855852161691881744053076902136015963804543305269257010739226070072700555292136145315548580340484011981463923405129757123569430713705084786057408214665400898457579193910004512015128793751797553246622996288888690024277197348879173948222278591725474358937964700035214439335317171980888067365648674311863917981212812556471531138341631806909275920471968337705566706329644813671080977824171562384887012481070286248205964486300923759562673554506434747763646240840568703934700062680352519241411953643556460114697583326479578447384913092528895596405311386951480691592196254956239613398751936659160661357830680834399839736628943303878447951956206066409462652730474511762394463922427135760793123852148767469897280139343428235940648390730055470306502640548280186125715206119572819087102365113584084747694765961274198072790433633096662251400906628982082362336770504991696753319063574754763357792163601121390067964318113060625325994352328332081867858756933862883806050360519769461258462608469135905645550587845580514171819867003666099085828228560555917776653830404186537326741851054875027461516346285505685437573749055766723909043020412576201618642151398593536676487365169109257644685788799547791802722011549858484565514617831453992146067800899597293053883920738011876658470489938777946020665429022392094690610220133161772588647998861375129100199092021533795993342905785226100646006867546439457183176051175266662848920116106275539731383290833988649177205900625361065133070304999922165745240508578126507276633383916746226040315926715979670780666491747679183611021413106085040459125513558035324434220026804947206041731583854149326986911497378299925824211846837981040326650896285215610378968559119569981819953691280680396546165306977549339581867520138429175927572710154665733495131468835491696248661966961058388713011157808648555655291265888263726903910594143391079607888446102517646221597044000297855365704390907160744310802840954781468076293995090601265179575718189477457496339539229049362967283753943339665839251464696418483610603477350311965432066956127817116573600478425821999314491227393719546830835169426869771439864639025289077990120014105049082725025757739050832924284658765159597810869603129577864320191785202521927654996377616007838483804728691116473605466013209939432044440929734870359085396441048192746162143130727519020289148328411033187276601115278058359437968195346000089546519723955946203934624659813867481514738812338482023134312561201394685914731742653425097503135102192568232340083496996407890874409736844144519768533890747298167417604819605503655545191367984384296436398973552453850620527381461951833225263779534746822306292642673861876934748924041762489824085893269611950458968942102818623322778620875409057412562134748240728317609955372067887524060130339475736215831176143926956647588283469228687363840053983819002078427006433955879929375177544471852834470450398970263666142944160736331988528496040661606757787039530320399147466134431496758184515477816354479252352598805260886250134449248448797779403390420962375926959289950501560403991297369968173799511186514151486916558721549613477863193181780556337367080043859213257247479482321093948765052280162142519398242042488251169330705389482617688948938165977829582249652477300380171567305183173495946664722151289821549857586214790588193104252907032301243181575713597578701847981398079390894431981747538278932349101513173303554391940012396976750807894403395111667414963799924475847452068703411433085872350309649094638595470128109585431307800056069817739948596504437361102365801769415362236772773062670099801837462003493427953349960228718333241554608750130592050733932216190417087336326702174554420855374767397840478169386312674150452322170567555588090885212587456388317134610296864291432511471260318756924217071710651724889357755312961887247446252311073893009851902058953753716023290752989159923831597203138644560290983641375354695015590338325832306012202062708765390637512161866437415991512378072325785833099035893358449743534850036372360575283115696614213835432791439547250302078514345638950584150403377537705129779516038982234361934954947594357541206172003506261827173032524092957505111966249966265992486137731216749993322642132080398450582235389251005969696486117583597192535762964450542747422870601265343627641103058736998876501821352578393926151074350384530902755424747591224657529714104611384945551945742608306880909626908118015351891739184881370078864948346950331270270099042301434072506084165352756999387153666992900688187260704807318960843652758645668966129719570505445835244276644909011224309354242739201742937828489570966352823440139140203078904739013970737466104507803300861806387384298346594097961352569675919102086723355040192017685241589721204635789201365386205408479908482756354545674050803690006174009880134844964991426013569976794439975902549318974916934601351406773396941311429562610469268967394697950885472655393959417759696143461149152098835382976260382006633049064429428973817699627321186212146059142670328492776144035588066733153957405216953064552138934900581682496750060373333539100378250210131470517883736191111657272698544611294323156629034417272203437829715720308740369873698986923104282562969167378302827700100917815200123142072848661771687916277512941573953715543579128213798607724497106621666170845935941878513838630564790312134476833943704070197021171802214448886053750974474318039670611265510584537220892099061769722760666776868938577861966308415728972392657281634763056738720834222552207716024934348000243136128383800571139017570124719140868268342154219415140704682572514155120439696525199185864197713857661552357875825822009375766331265794565651169023720291871267209839026022790848594545719813463722900864569841558482180823603479660257261798171874359178657657313759687380630827990549818735803796999218127006566534342640989267807538641918608953084869546308538975819565346205277096369548495225517839878232394764208176745186012572335888998570655067497240512874072620383883119388036934980034913820251213640103014738962740409242471077557370844658992449309648879178574094302392526660988057169755914246989763052229480807437738855156492411824333143176322785565090768310395919096431643329313497329445768096155422678371690285451100589386592269909090727084420077733886740491867591399259277383881078510609122375623005468653788505505133521010266950076368410153993567443702561101542304696481017457823678288514985179096129914767154314390627540198100312801876438664702272881604930667384913975878679291173345895558064150759827511519839653769526270308958765738138138224389316722223627486343997012884848236756083340289145311639232654049692150622993100086835458498561977119599459078027742590086451270010733387809307049725435667877679504858172752121429570814799296448318116626209187062754192241152007348082090089335917090851105171277710760116914274380696460159859826235648880550864946674379999774594431860893595738729770392569839801686003010842602330364901243503634928039673093961635284148129616687511447716179558029927376550188440370994529120309149622925994051366163760965477358756309793142060087817776708234068361243694199570229130822669220226536974634040019418609596004081358674490459657053013695766718558711455183584409089473885173875832829089867570838958747660287682592507668994330207368594068935438816482226763112387540778066254443851787852526736385347443467989251076104002519505566222547699044028747186888324059668835772983558433464426023370250589301388395587471178203576995281342655080003841402786250241712995149901611577770341077209345149226183246574050376743225596779517726092235929254344244534079448298529595243656747759201137568259253278951616338371253396611705790301941931950929031804538100601276614225316350952713956570584349546652468683741862333290492306763797749578378671163740551381261016020774056029908888392219299984108202453854827017944642935776780322350218697056823526647200291837124435076294684212427567275543715596558612174405476616610044655524703408203528577495216649671145993596681059121748492761114173738651079199372544381073690475510178379825012218972140005530413832635550572523311128101644440123311293300502679200595175953046577394316907974542553285608368300289217202087349205585025252602561505104857013509652053303706911074789985672012909269777362778211774913586475522323392682187869000359206260687228554072662035213604160411949734038088460122417904708213356309316011620885868575222057479214070308662359930794596756233668184369756516416688533392427104419593664405559348388545789664128901529697692549770660789865075279367293979466873514525940690772048490260426166446711400707983358015374955713604925607451754258410986492659624886264700014006778628619631294671679793598891508077917666401469990981036924959182878051658599517398415584736562690727727391062137658435604889233702645572075204598627389876137188945500130185653303035968875037620008725574659332542359574717039927539811902193764234203694207462260257853395333990161950208656167029326299238583325889396540276341245630678449603609889422846469974242722968978478056752044685590248696133973234935823691076012785332300832121206768015178679357209500623540271035592233248025543417377202989141206169598360840075813245940858998473612164419117704235145366998470677991524633117453980957197978433370524049926878937141224189431844968529054699708464765993595289139138249367875595006861510730684815912250814609962840469352025296679172801567042366378611972869872238761954028130418053309013443275456682533133567584698166274044106267345511169764790366119128850716588893992716091569630026937854094959471071607101108672199437002274796949945264007127960706339437753496763750968751881834092436373907205451962615302684827964563564132567178404364461513728663719541904782668231915069728816212603808593976725179119609620621163107601539409104942920162369435128567874126837774637110795286975842472342290699671227327672665169719058967618928898378242660557199232499153271145325311905507474889558343620172186064886376113559605920104172634035836945422710429645489574022959813107986807074332112672724890096357976014257872768368618220740227962301489570981087842890339034885417499682685490703137484635010943956178922371291964357511603029420027150086087855013791776988821112768038686384628295561751938197692861611365500694440112923918333391581696309926503955459024029881205608935807643009169899141974652531297701830357287674750530076292741577086629166085300076137367577406317438095164540647492507833582282939162026058997684329526687093120679667652966357021732924500449867892958066193072929364412258671313693924969273524519158053846103702460835476085639669873307837662849246927922790936402694888116354944494041466326868219439973373721835930815929245626424898102095289405456893733020562684173121251340082886828028676397575997523880646404917653591682432536463949219478777048227251243059189836193836880542245976033048368203942816703215697544786729042090373121054600009597527837666558784801179130123454068765584559477175189918540173895290515831139836529392413889220868693722766029934211107858333155363463894954943024233851982167850171646916856155611244447881832614143446965298004002832267247302764413649084830152759091244239801454924645727936712439657544695842345152336454078835725944320688427688553375762796964251731015851113131078464666247613487130142134910866889056172680635228376921392716779930262641524959789835082355239864335390048190196937161080385207687419068210163867776714633958405007205595343614815420357801392327776983844045326212986073219783439089627457025430328436269751355605818331686857835690144252802214760742885308570034084196034662475953315434066212830842395567755329261209440136204629201398112454097030156300269071917809622728396859035967656399536670427274531035225440928462094107989198132756275147003777290929567432217304852919894872703176592540225334646117794178511185349724948835746570748818602904061192769096304744267192087110242298344814062441801827841193394641497604481030671836858631077747886795818297487459994233844405539657419774085316992901644360307278730335583533449155217401035404699892703238529061942181981937708269026577104664111496751528419731369540873737708603137880463993682845944233543719835419286652882290591641099772178845517498754530256429632837460683239170280114308686118258552162363747122504002623083111179744593418696348396467180655556156146201145852142650217605035490248442806695300322033913488421213748975960323501175556771230517276727017161982304999521531364847435364798797693247161938904934219931409638838673703627052549258444501698346182442176116243191183831596097272264546688320305184433259677773316905371819722517533818924442341822876920428850879757804218174393156885968865311956466872772661558390520256975882994425009660007992231719467011304237182156675237720934424753607914455832624450056681579298478923324009002938117572178251546349139445747971931195562352339727330871269484118096682077336754879599698448395263505584093208850165064999361575941553441965946333572131356521398135852436182076408270451211038640769792040805174382897310578919321758114778277696464888922611927158833701907251397167522523471419552777565412171981203546343329476664701872087480329122206078132988637700731909605653978228320214574906317114542303891090891299010580698685115355243630974885416063941094046548086329057626470820886507157065609215747121303118966743136309570515675680214908830204017384246075827936762696126374902131778234016110054561660786062015950445120858373346379913168437657036513390565826332071321835290321692579749130070445379566518645219219553342462484531543280694665426150832696978056196816963754775638711278118410912195422920170893217000876969275920447418989501310421278739380335081033032006786839395281860971977733236664412801833727685412098505787238943296699409610303323975016975344583781703389319808147226766950992639496298666825320829748929639728178376080394766704016261604865470670925426416163983494788602745816328198147162285213260474106557312251202368296844050252534883873214390445602501081480597987827698365298166016626257771311582504068313002677019860151365909194947128686587135964426418324319318924456027013120651986934230216126768861046632931093796184574232282394871885587071490623379232799016704297510717012608294151466291112183702471130681116440726486344003321826290826166069913984969717148370121878237244181269928039193275542139493601266403312994555681736883635052628867162054179901937414367929270012403794080051114445676474578207704994139466674133417692813587226670315921910170387527552543101658922677705794596027615432737262353092168792967780818227547440504733821394417852391345032848266437161808931709206777405162073883018770081846809738828203513253457309276502293248921635438825033923042183993748403755286492585285913892552747158716275530915757392624567562046712887364424189504134245121138976711264244472769092850404390935620268583072661071587315433778946636164993202579527092778205451876564752641290799132871196001109561636509887356935941082565300923263588057525137773668701854598949942237495031950567905001841912886040642796227608565734049358497193914445616379988112922578490434974224196462995228511174506377444219512043977821109818657947215880254797138974984154563568431111316466535608084652859441861868981708416895808218453473710936966113279038983447357600834108381582671513604548245378939737717103907086570479669532646289861460965777598888288247643371250804573052714333518397231989081167567828782914935690070968493279479568794852242862470468195887290260130687056539896653487255163210346496326008245073039347705748516307670590751106682707130543794231220017360030053707868746867221621257691574017982701615122522223269062013928301868557508267519179992597311421985501856459255640895732084440732400141119628561811249381980923469712657671854007676872436710859118085345903454510230332412876610666245327706484552361711695312228999795162000905218369839009934691800266463236411455315722026463300516712956486011004158348344573874802784893885929285625441228210699212714994603363282494923800602904047106895570960313894904859362206635189487860894890313503433475389858595105131534919783551272715416145498204707833599432664292556988519335401083528638732859164524767480910415202670988451033650777559678885027836146102613796440700150466422843113594158978053981797309887556136893045657307133642845365552379741459622713757409041111351172231878080008122799085441786589909552918218580064737539100351057526237451479426589215550359358245094447362459669698885140209718215596023718338819062508420204638755211759058274415616500545588110216321507994581603898804452242220850500957731095605682602647722827653664217974430272518625570815010271476796018177681883976806835761731181320498785712144587506087763183887030128217502807683409828601351907127468472743219500110460228674604187306803842360021443429015809093970914127159690459499226723996085004899038626041287498057050348302183228395768843337692211647987324701350047024604055532681067446342546451397949011348044186474505166651272758951086234416232812955393890465142280049536606144245643925657657183545781816762397693023189236530466836137467635256273745231033030920944353095242291615338081122852690403704993375522982391408761747802380594881592129390026134986515531448715002806916553877096658514793994050509744100974223259275417679937933626799459893548212795837314644423527226467657136164226968157998409017685599882406608886659179665323485405967084926971802240498936580786661218618543676821265021759192152541136586983601516934735153104306893360321193454406354427596983382845231513264155384771904836333474090405274913494618279725383819422074157776661395947547963567778175804624331508341462954801878534611838829903259721646634346097850139037284744996240809182393190236339559408508667664317136425139807253543628665560256546268355904921980655575541460503368990703243055974801704575775546656857038701222315571326177598990180596487480757152091691346742275898063038114010488623162876230884219050120464003390072562753960505487299106201773789503445620036471050349486815528857299586437703487718847019357893555827049447586187667418335651598905254157338007561394162962483437779644619757096699334997689520224363082653894305789812161458307108648938897134534344016791600388506969982048475479165843777917158140924074291463288780535616799693817370719546385607563772705908668038438858369989022688320100264460782637953085540066763287862899053602185565564738254727576001180867586143324664271074342522047933290001585991888864819096207961843492507954683206748729484764697128523863830288018040101965252972581498296692093162212951562150908630293937341409490021488178443891426606186836571514592084314439048165038281082159117651195949284857631489847341129035314196773182556092883987540417382476890939277179013931293903087556858738873857053678225434794337171370745752026846972849557364296734214903900577119310005502885322046247159476294370967181964548734186339235903139496275463785851231446747966745097664786789043864974703537328447421980286983489752887897216556160796840321519700017501499907328575044645346858740889308990136300481485957159949077239927253291613053537513031327138604596802976863783622916498746989599787545220413275669913518025329860036349934244101865877783133322384279213773908624660912179722789687207485874018351289584490650865151675731542095669191443256039117382183423626733656834908765785416215083182645963701536425742548706144439580038971029020751561542798407867187723643901654541055433541919974101789342799839660264347036598271584717774615014374893153159854780952106757761613275660036849442071905474136956942785183780623276367066516032323393863134469691951924897528739475545759445006555630072060771738855116966586476172852168268738850341520481266542258572515584161317979873419325952962296644376585469885079088468124976437207977748728402265594024763075678851691435063806372040814150663210888316766733110621312432495601003892269097698691124840251489113025427043719662858478664046192033218107086567257158598245929458105141207368834645449482711331484071774251717281887375495722431801951007070756318531687796601377205925765293046158801488200027227180672363114670747291907958199257920454645894131154753271099788144321633625787799989921494928728351607217445262634972338738395854344052544287752870833775876338567119543659211649493871482258184359131844900303569647593305941130204318029713906522746112277479479181551483899265997701730854488667129997617615161697524231343821601920213514567070056778823828761536630959559074317322253654308152065791441446694824700065568320151652259615528119579471617008662113180340997175323805112998016397905637151099373124723261024486589048525064582934469826521043193736925371254000232990125294048726694910276506943428284596202621087152242179463812571436135184307865600151823936060726271683393282886188526443398195649433747347651464188332431609437476201021242025888086101164148600889482095882070281945296476990603032291944563634892246322585814152294171322279761545747699408052558237736299901819653993079114064700451222357411213863707391935821937513628704986723263901854399892263534507986905889932839884915763797072190147299721410974148561555739431038650982915980603132398029121873484020369917189796211344511610496645163869660168573564824480072636033106714132878182122353670846560847778988250026732554809748677339130580449185982580462465656912608154955699848493351278907418373240558416299080890400997313728840797710757080723525257404957248381426944616906020614658566190783061629688278215278215189293045706822895912211610139696516197554427467402703375460572456155677391407535395067495099624746523201926084095630480108732273549292529552256648842006724717325160002250717545460601846061727117240429673553031409369421180594399018131677512119466525716302666487306888468864227089734900895249598657956051299533776938417776472125136364106349684184091009327134122019735714197387614285520819487009304763028895444885740160394848474456431714687137747680286862700970823257862216412476089512818259390500400263467275619532532404091455234002187119617402912729080715359212032928614995770444766052983361655692216908445054952465266571140117262244861766669362427479024783279861641841694808755102891346087127385006318288300772928837073613410252247734825942699811543147467067034608678630679295806698344581663689968580754805987482393268289449889234712327477390592861512518723007356584932639071073712718204853308553284179913267844521675377531968295657038787924188291690203747574109683178427374112129565449297600303724282766985674624031076500522236825683139701093656434083780318671093604367372126418347440696185687022798785499322247720852640075617762515061582994486002766020627606298266538695877532915149569937058154800465182530703211760523933786889382373139747144464521248767403089452964618919610210821186657675594922851133032137757292579067673802782898331656199663792414934189862917247288691111410520792077604522185220214480895799923442647280626285906165684583830955093235114956913181308246521966382064111546889284921277761876926848814243284122461065930651919904993495230788117453058550217199381360446141368295977944990124379647373083840135807426315836629023993652407783516838687442047463087950353312712498132248779445124995268285223498380669570695345696372321385069837630984388460088323042166296130570893516511926468272651983446999234067412301875814824684449193866813964757769248538068429079306771269281532509818975849318758718394179047850913791129037986869634033302719251674634411742151635176225123646375731958692544528287197854312037156147908163253644655463625560105661912321732775062811984302478573525189983986562326312609188594070689914629440587595813795191062423041410628154092271087227211917903702643417580549554050671196014226640417161057751018994282380757583465102748104323149272495414765407969105458884871317707195834972694191321051422417451682379237975521088204401193920290856443036070170349165905104673062207384362420841495896356171282695736485392782332729187288611984604893396274409211984699441467560434855545665106738363261249213958014753137259028174336065159994611356040911176837473115208770135353865183158167821082415218341062325697840285189398813328139196492277430280749440317496942382232833662949281804861041855134831685573523166752831521328372146403770559927903421915673210825882083590599664645333046270440236960040097279416029101940981457943693179087827042387977664551260385926300267009246753455401192596386079595125844125270069278554952640239492727633220663659824155583612061972485166960299934278950061080134727277176700659663655107024348327514052576603398600736000180118638143900932895522410775511226438439138332064881652358673747481176115888892391648380167574578979905034442922749764529118697123532267362746290838905127459821880357820836296223689613680824569315206764804527555473246286437033262778740070802144095526455478205577951054166384520381044502817902532014101797815415790020801549028629515627113638234495843885777574308493864608680100240434821092444526269210098312441016219414640616042578405988938730683940001275757445758931028243096180739122932948360546898099865122936456220874050123614607351423128348562080757986124012571196507976728357777024037809975682751268406256882362034061517327014315669108630771857075838360318840595752482312244802433059826886515165348708507388375080964007400660838387060689565010189398595598679292840402156995545622755188034945174104549535237813599546947582255687417440627919029649406322387883565021929242023259677445383847748180270918232736147193082501936762049862433066943404048918207783243433821090497009772490087918113676992212129827710053082633753368901546688989310800429865831086625293707064860794127370774085833255837916735961026236654627406171020611068289816485141693519508364122365676700856764299124967044042024394713794160796053127926485205674931320619885935877800866262783597610626698292432814210206294824195553094785238622862919338044703942396712225528084996465879959646891247815346728492916144897499244086636248282247980519188065416581169564529473760226360296548512479261814637465473905277517385207483968909757046851901258724416305745138280191913679550233671209837744902113500103153398632789717680124952955422639708042322282584474808048468751886418577566356428717001329901069516037692486113541332942635590063817049798831642428725921568819110510867205514266377630661014070624584755643283706216924912059335461502817226076876422285426496729937214689469668086670877564276472569218339682173174669964263692208006966422711420700819913432194066987020563534332899924930618962241155585670551808979447727546366418980659221726366166315215059692409850036281896949254560394965419001351977735517681902888913606394219380636165541803486679131292954986865084693344020653892660425103466917152729637195795364727147478977596266996296524237650690900772374467350237616917317967599695982165771841213684032478590869652387406119259823733470940461390137666209221914832928188128161001096813445849580479662011858611059395829624588824827878727825648472243763660888895323190096596121940286524635070037279370970024271808876643068497005818593572334965513287942802215362032224935625110221833000418599319143162748266534674167392525591544037381896701404277689264817892497465915632251033194620220275758215455516869669977091349394770455467900880367373831260926698546920146310624605335764720033007446986689432016411244358710493865599284620089009251684320661670601569446611672081272900399520927755170132937922882224045496403197392540359874997320642040740203954326836108761537844156002974816396881879682120252384938061683115226825543750162083581947459605738408635194500041118687427971762662635862098984393044819708964850281441667423905770743783263431407115517536488099373123794233851072552361871517897714436888650734034013439278436067622714202204855883626573903634355874107055352447128450905801726677448474033498665106797808409485527748950356161899285071130656815346639064598496170603611022113746743664190992362113662019698109446702869692376195684069320809901119644953659603776092306435815520533614825589468705255815058607161926212187291521233205619756957845087400399713687106467199969446317813103723580141373654191244787650030869961170799949861699781612583695136475914826458280644033288960993357225320926479993889850158106937764976384831159664646171409144384217307697948306130468309138982357169181250244410257766664680902049213614304688447358347802054719714374364545432498037947050638140289657022106216649565716290354095251657954332967670441430553908781995078909769392694397956925453080246533228141387219140008457021804099523242555083540118274089067062022737691853712233564618550089171885072520160885505897511633048053810626531241415022928930915262833026794874395752993908005103809107505823119154647536483194747389006708536353388612732488007412544602889201120561173757949753093232168910019349957555476525676435554141197808260256475648234675271123083905411339284099884046753017494350630312610786226061801934006907141289108701398218887214332767079397047988957318916855574440879156944410332221685083218862094025808463460684939855644487747388778700036891619864365235122559142907742140268343330406854211670510408626847047218100357898847491301051980870788145181390627850593720817781414983637055688354876657534194728096978732917860278875275003788735101558250880147914510673698823509269910107288198878125622966903951334766697971599819097037884002757730653716578612945761391154309200298326609754029887097361884562483946268344920296824619126257530899005761426589018218213746271049328669719540330691634700974836400247935878961183758616232623418988732361464869988200558194862311384464255951921517858450392496301472846370124818106917321882989674569180409127749931188277069296359135483423697869895567097820759273264382314614618624355592923822608981238093654741591946822588714324671107257995032616217057745661516076771527767907858817111617366578504055200620434296469778216681078680080744421958912167578787757728811617562913362073155413780020780192807571187803390165348824093296915489761626775314622546863431326185737959575450462517888282093172235247866259619173288175838624100381344011304338218932759660939075085868141092117744315671946050860590130219090392829125408106020495870251374261772550580988447338415504964891914868373495868420502851385237925174963370902322173090832063922962676462529785356412073995593293812987649221583478607624690626285514172090450897916024261325544209681328278580324952958923130852201084017525762754631913769090605069115883233778948303350180790351656209606975615717653677699637369702894364533521237053768129768614892395340480073554303844476705466127764072619564453152085193240725153244588524194884516181698514025904807616442581198012965172379903388572280211187408585365343897378551355660571313271926974954105403565673700912997107686812572912109575287484665275875436953323278674308253405227746479013349041886638931631918265875247830905900651679166303422238718262791746359567997358608903137283192937705376947647126711894852755277018737916581242008786197430345895383687167969130448962315302426535417195503317762876652972709607424372613551628139233171209415742535548704341338242810763933955113803775155405069520550484934653140570846227062231239910971634823005377816367870579491963638108527758986291039206963772532096958302613879311789418307269948551707205263296236835882671278369024877067278911415048380954277059263799656103965268972076216748719623755073348840077224374565446052377969844716786993903926248187618745736149830716796497958336012538141469945526694330192727296950874108721963671009566761278927907015622825683322730451224136910500111678377039032211969194013563087909295837824362065535879930562865249255793262438348159245106252303779857992151132251713822063657819718196385471735792598378349791981335662847757375905786955661665359476676119854769934011728643820413237325140202524693396997485420853177095996035315634415442630883662903097654423548346927198708500378112338230336771720373809052847679322053116403011489062858546268506518396014934096613309273920696632822859735086255455117821619325553875251584277439027985920530215100220124545491958685034774100566878335128146224217642333959592516962520693469472324514938709465737370272972805798142286289091603932065758963225923156234304273752271786409175242336893498406106640393521304804863179528886348809323963495731853794570886428182347288293984447728239904495768979077070547412690525987948989875271409353744816369989335254046895695024040123456254370599880274255386303104036201712777209151267225356918721623624773349568959336164013227646347181071547606543085420306235897242339471870130056735652171433071210501145530613314892215975160939619032131374926740250960624592792177227037154061427527441606808685745965115318889194824396871350211879675552039835076478237636400910488252698972735105565903744775719629187871048506886593943722569361698681441995064155812719324074976624265065320912675985937597067494957362680759247839274826190864063638408134459974742469587750408276928527241923535831154167780799594933080420230691795574891935529795259420430590367310956145200859155856838031298786444551166884077590107116453317808554835192533470676532229370366246375781762769687607820491100351948530225858014270298363978417120759644964777133579873761568480260220693096383799198599729933718561288319663456179210464801158378205293488486867174011841724170991390454361373199127240228497073792841761368874646829267449991744734016377347506632364585748278636638077844746802832153614600145090027886782417540998284590181506625464061270073612016745557198646954264641989521239412860724072730223784998541907776711069130856829028349420166936544723129380133367829848528044317264200228144164219478848066204754865993983932834076570922146857154619662954512434945431043218365333670829643797007141112583433036817021426455564660371961276703916760909919136018231836711148490360568284945444075554982333885894774021959332810073190286197648545152498289152037214819736051269001791538618296893238294692447771036164740774773871174864654957647459472585977472464033437776323724301630620802633253124173881651782930167165060557771160977770177955679125935023880127275124020205366317049732194172144789961719897926435514202941791775499912421601725287027174729249031169199515234749898239949534932070322916318138492793092767843592767190968857358918497777137454041764015160288525107819938374514947579583395644205221418021605315396096717192913059097209294905545555062728671215681737395634910237158668439190013216749031027695375641356893165728557753599984846607827653672974745594820529844152924975065626990987336608454824053611942142646439836271821380406025126501974405269752488530318406633197432495275527207347141098843742170303817024985407117391881389469487498145501809653679641496999321148796724926267247891449739164357033600177471320558659948518852770050173342682881137521434450754249276687058087555047117671814921470741196349822271290968177091189368712295558991281375976218473848021461127799116186092543150773561994785480615526656517739263557809159056625157808565580168871811202131395888716892030227507012185472548072195160578177789084116102973671853443983707037203792027491141547996689336920670593555388029749782837121465369405984603149680563462729268346897586735208789419442541153292281902988867061069526063569649387134700683478988170588066222024514679840447611505875973084887292954823145311569027497398927975544624512363010845301219953589994138803557288657750912470018563044667386438259566237973550969521389614344997490225725837170408319794673561657088163012216602443440358971302589078998815379523776276579713550367319558146293195345944691604742779974518447790628821789774657199343343411214185041572349318608227599938509590292351303557139390936638435490405910817426791696761038119316774079534349746942811878034929622715695561493461982595382927005480475062951654520529957356781897342639946956974824661452911744415820764865784111547085370670698368886466343994667528578985821723169126187457112448714638743504693148050201260597323432846409876382809592635571197449543178633846729611504319878623791845655357641383526883259557438016427747227856302996473241253415219618402780185434720399225241365347293495156055697116691191927730448372856684283098846120697490338876022241710924511625245313622227293252170459500764047572201437019849491021023144361350132952943276939083286266420690815083871627115503488327657002497930436889511191683516078710213743238903749056569110806497502541757034522388322918858485660649031624103853716004616694363525489706641993128979711244206993518445477470436486817126546845297758093556998589081928907958660466469877473454923313888908107584776945064884487571383957627428546838391834381544045299487632975076648678516860203737359234798015070192653029583834436251042638294875561583884814849199114178172803249232164274564028231459344507878500952567922723976382458314456774371967163898792677511451694524989792650902089321505449502129255902132889285607707269019577593032419407425388323652259432155143528250680102575219589396013879871654325893816783814695880493699806654746301468618822917397993835689446729015754627759505194814705392908455087455501380052384426052014870927910962716924447050017302892401800169423955281702218136574852410800688127341055756884983833963741040198874798565715327320195881932978785264165290040815711684397822607708337401762235244095257896960484496894829056813403937956423324841793514002414975081851896436615162285265749430688049388085739335860520624507450784028337650865930293554166789177194870541911162067537674179465460532489005662338502110563877272165157260092314781200423029401240703567699146253435229494296848780257593132944810855978506153690069721829829440978323164159616325728621686766560133188045984435460895345851653318567645681323265238669274055043210694927340560386902828419916959365971280643920296221335855557042104219764021963871028454126197279417930349910342129334488451803356847579444337836545729117084973220318745896577455270665994814422974337237183979003786628662857008683405638399144143360896286370092458664218455334114483805895728587950811353143327742487837769798982635050825511566567796940558739199719190537534008984716672358051434713400380557985288681175444867689350322899582411747301140318399620954275217349969619449680116483416011130151823344538258615652481625724897937473189115248407074015537453703806994304386651700736411710461739651330198921917943540843118680224546424853474058017291301406439918624439565647607436341141975709344803912497355252178912327497113107606158000782324284278133248557046739449553059487480656407435696350556715314585936977531312686348100286602807542189844292183947981396677304951432553565586793206746516995425027584658126487295641888027837613901780185543744936514981474448263221075857792303588246765837379673227569032807923627090288341839544598067129973659660687383023556575989951804720928140798634135678132580369259024864654801635257355645201169371155178345836215818160345114935124736829565301319398023733981739083841936961950346486669943504459654555933887544482660097852924112003518903528474323534087931903122547413253836356603723868893836221710771597287975631848965698379058968893563821285613398034747733977602441694468763423648177593003149651872243397516290273951933738528844076236852808871421392164710155727125096996348956881353392726478446228392935936614456778770249478259002512336399173971856809143884497726728608965471402725838725620384542823909818158875782980935415635065799738394966811921753293149487137991954222820940987099588535791539640254421730729210031170124754361183610798005877630135893771111891982357688699762897907798721566857034862170619951178865541815714229295854155507846394240222405656115661476091286264671006129750223472949398720331482142507336670433229757156666041389508147146448900933517773928425609036410419961518385588134077706638835397514787283124068669379745546326276540131399560708299392798333932656933905666614909016043243036642449584182499882109205329952263862884310777544407314288410039266101511337164003591371899777581223669426356780321099626950521789211767624007993195885350238922135340098425693121975405760264626227158265276811095409016246358845388599107877149145100418323685368951340253862991424688864142707022919869019440642430783541790904676093242780196794619035142277748083965961901500894952544310538660779368856074325584817444767997490027433956425918526737397281670046667110096010960336834644067383306536032780357959518757290231250883200659395320147970614166842538382522974318093939838776209838072116789339032752213178281059811344332799167721440449324984004015534387358201134406856422231430008702166466297290645073942380397840243063153119128534047764873944263938494398011420563922518784243892451859759237289471135458588722782233478543409678161473685124856822212609263949854450853810162490967020372446225586285652980196774830628765887777833468784991567820925294947351979132706417334546352950134626175865818788816920763287530783131246149798633027977006495977081796298717175690310125870824414542246658369617979739485613719592014846648026929754963045805494170078928689759903122254371173558261196670827567849313079315556079974953360983913910128183025770309017786545592929826726847520930496447948072345025340425573425161891575157191114945346040684403805594570495814853278448377119384664563239522995819098685669544373389250449548477916337533985820656945527688695252261046178564145681851921827859524923153911579827444082147084531869735732535100164360288513212909729669980752058717625049516052151300426551430688953645774049702073805378844249976797127907646205910612097787442473710866741243200734057942877997949693254260996849060021405457436550291425805832159629266193574024172006185257774446047316652608772512500238352866001504418368785031608472841493001512743235823749724071930777603917057145585828981271867278619689697667032209670974029239585307822007753314986581325061910786261294059537442654537803149376590496413155967478402631849566566594759105900464048659030468514226396557906580391250756606064396820150636486531441046380088821603346425784359867298225895799032325167568042630671127130658954957496068873879971715741767890692431216893870513309229505807026640980638662212251793093012429491654697739028001986697396662858822837065191980270071600465476666985019402419752444244894085014295465438272920493003412215911091022696615021409479173956836884852222773462720150707330946632551762072522613951931042457844209556791746551160945679931178567031563648001770281896620572780906825636183795479858474385740924803529100225329523812363672470166165207609530383527170196355504715853513595661492288565795940413184796207426798889016013801950048781616882574498495279723355814423889130654417226781376878209381738407270166821364794922359397862970514151839451504070646986748423088627686615129895826334151855094037128362119366084757269285979707609377885624916332982061969322244828755424850913626562831465745923412390939616761953868990408100992441694271839558306218588298449538504492613526234204774177525056023164162736279599115008408440006295976976091560553146187432747045798068963974302562082527303863080929023818437123133207409872543452249092989352529698687953054721540529337336946877975704048132522738573962907656665450026432845499328283152920826843881053479644135478127251065883390750879843611753255201550091627160664537838956516364989245817678273845079272867999514284205277079454853016094148583621361241473747357523587287729771533714782721552391351157721544067484616604810187106957692774991106016467686543009588503813494749153834560176522530801251439710776474007430702688683096590003931731826373994887504245719878025143153738100236488284502160309970120416732757713914040581892212652580252532531164629309705305955075111803963395916078750920600452690720820965260164253509572584092149200365981767456729679555477356989203152828996585023549680684798056960268974150282606653872045964950984884524849110992705467963158358898156896319668244707567979538384058438880131288941292144655737895815728599084731927615007155364647750901633718107608223103651180093624763758286686628908704895618858025750058394659270852168829492847288749843113639522193042129834085640050134003105756425494934386396834149296384241547230755664387902445435841890430974038602312935999599748290204672567900589419197443447301442586200267838389478830093538239029694713631315467065075208522052386597358834685274410630115158270387497252218671157110882420667238947686183104054657439682705748985965649122524724245501885497612390124816022856175007065105248123751730201964231357453801388187397073001446020578118451917159514934207217684166398257869413880926017733079631223706743888853297307803115395409856719567890861360406104306197284112403190556496792667085415579769630466931133512824622995999403725610002069480972758360591545154726854449904935958200902302251270571677745737772284470699276430850942147813662177567722984705920649154959378791710490648869698148354545122501170080912378995140912404299061911564738338131946402360500816146879465573963512944037483517337168358760565065533244023091624432597716051714022131499906864491847388657028670730574960246147149646821734191539984805536445999506243484908508277749204791760474590840994351133724049045749779239734667446381190315745291067457010799191791915445470644465851351920185481368553848753596534053313308883019519114894643085424644465290727899174639068325281799242759286226502052069246369812400673165585279917940117495756171566469224335959369429631314028207995570701436375282154401348899909059353292115584158384224968741853356339293645112159786809305547444231331608966032625997487940597965158076582883184838739855224895431379689780444555514580915991907280051943054513908254002248654636046865341185979701263718212462266047906151298272948858281810987293129717276502067425469584070107388374332520907261553176677044402971679259238408413639976706994820825989679901197964639893125676559002394122409800036014732066820977882272038993390331430129198190505862640063985477084536889356566316188419037539357109333583222278948296450111783084360831649092877153262697966394714684942768974946880291168184337961845217934796363941584783532556825413283807727699089853359498894102656933756611368428006992096279926453738137835190338429479699544616717754687677404655536884721791415709920576477469970872308605880068410073472765381361081283481715748040780960961915485568940527573775442341808559539147481393856210147612192530582300188878583296637388246698969072606956377241708297015122093244162084430409933406361934894460921873841360592316204683466770517460964448192332763476605819023571645808924309955402741947007430135760895177161649552436161305224653489354598180025819596569341394570433955931697156461085163043275754091014080531775803246135777807194231301203190962546636498657789139626008240937971596496125043308501846616154023186655270580981178384526510351645411956939334886573284576494263382726256764301997342585523569767381481186012303831066501811947251036618150529086409053992965221466167415287428685338109097874001528240372804201209925176785249887442431314140442422951825739396661349359702307715067615666475561415774119760819142271150090990865470867103859760846834598753775683270139994359198460829195027221088539901078960258370488731371712203587488516512836416352549902640491867819489855107100355681563656378246593673101757064779940641550927510888299995035134220416811555480589056025327326497910541943803889741555867535345955064737577688151124688910419958316218578098643020599850392184352683694508696458661592138557157683615174493808648403023739893956135494192183756771526101710727032404215525808163373656230024853610495387525759269747287614081671467504549683424556049230013881145628374189620773472709960781892007578177782448794326123755378546154004612686900888213493202677560623165024971038843893652459113680479298102119086512943018328584730628047644507711266874983796474207089323043224378268467827810966340960763513058245510424091422677802254532268401562781950811417795718971059435107241255809631837059529555724817170799843112799448848797857127167714158528956449537738749191663492382338708830785803308383804451250382076251793888357478908359009865785697596801493691497671516382921122541339747864074106578039335004118385450548795065088203301931305248039303329330327527847159560456238004685008759966711950447417036778865565184731813865873590687289550959046433876817574013429314582816891237124567177291665565423402794631274068741058423874423665000513222299766527344034501422706092406740975724903535160968915335261801471711956689739597530589951398289807354163486020258160389159366884685629684037841691840848003406560614182461129236655522631383648152959621537100593252328342938239599213647391656907749181165476992222279627849980951674514231651639828493579521797557584053678600793376868995566827340197895373037717717915004030360038062031568792034757707841609004693949555190486590811783767596530978796148891116468166276616652442607717929379660129942509509718464149577491296437226977105943092907250439202948872854489321599546181449163292168610226982105427387470020231214778616191778541962175255442132640231428455549523184870209600294197888050693734749109503743973583930013481899075405572956514196004826121570391159358530602732156352820987854758632999004953077505434679401005180546475524379405929174873818106720062517329691052562284726584133756589259193775538827307647632329625183221839756006030117887565190097918282694214329233084886938707873189158354103500605400386300012337481486985627793972948864720932009668151418183053981332041328395946035292336745366485980954976171241812924056213233350098197872570938237651870720184387742669464743856560927179142005201339463484365515805295515774992810831185599320037307482425473523044938317199651264073604843083261362388068821679824471206273485683931551040578638305195205342587455198101740698279146622489819573998197646427590748705936387321654144658228731000321725155061412008705344223294057114393208730979333499667017846519682744320821964090164660357672352772212004745904798814363506045024203319133555107399329239901505013226666969136574018745833066959248336242328536430991890806005587421539573987609672148864952410001237035655002879730347121356683780174585949342835710487930699200892368072042565227856404134096619108292236458820096982638849122664155928881686494201895623813164844729354351875634765819477313412167761306742913191070206395930325238507131452189536143409542999787928298265199854149414878821641272953491272193732061061332401447878273253850162779427017698914651058385560093004768932986937504054867698663248956945813020706358165999520013424472229807765252883599321730382395090633275661538221136301111768962734701714442446256571171388495674589424487099103643270520945473230462599287835911754934005678320600193617555303994636454113636502283971477971330292236284991647848683468581191324855836559443525901258606155174101886504340050932918648879654616463666259693417967376464528738858479780789757604736628155909347934214205514537318926313497842042454893812282947067444938471248189743426309569032222175728756001716646573175478852666203859274421011532796222740266861944232845998029089658632063488975629227829113134020135101886263148837273212605810512979529528261753411697036164688923587164415460735881465111763175619743385231641221510157679635428683357981415064427717364422834045948126240841420162974328438296732413397915378536492027002142693244449629305900382350669018815587071448752234023516301486669163927613887333125724874303054456962995514719510305767393321033781687500603420878458755927358172163015602476869838763087476640338413070022416397517811351404965073769749375564693715809743678536902900080789818860606350683453382034368489914898154795532651036545800866078103364406209834259820585926464417874573400294429308459641958951698190463180541485320550174505456994921162623704073510249160666300864971512736589729510088773157615658027405900606827971016843579391457394260943339231697387716613850145393153694084415758356830031127267284043297649854945189927795087762074964749176220654616674065247797204181193366448502313240533520926085882026714004240045779231481596935208132436989708410305092419381316821861403849281268510056204092838560747320233606806613369447286842313033599810963686587883218230049539356148760953244659160450649212313521757420127414575674327712493758220798516952244021230912915470682690995800225224357522639058946595263693975568224974041299458606671881325122175906551137744661901717258745083171149017741662274981933326025120132329816725895948430283552355969709395546686363833058393545697111583260683256980381569239488688524065384672891298218567202544314359047771979038310922661277172788476102240548945292124185520189650517834086922831324867555067772872514848601807356493580408867012161362698465729406148942713462844368486703773779568542909754157679908483144718930594889514185876279697583758702796689149512349120467026534199683852929785347956543930535449473764769603783754348796502715234071129120353488008395716894002336792390611678452251061653492189814733416008898186054550359635720639033989990459042647548720752413749539705632496910209847138399961196990623860286246845795023039202326121336213986658200712188950616333328393558314998142768004447870095847789372833970208929222810521176236467632473822770747313907276016192825990650915915370238795598436861888429740867355057087913132003486561225926150410675745936577303684952888002477942820444135299478316650245216421404241433247271358742914195867915938821543318127633994742074521306765538145872224747751479442609517982053029348865930375342512224049967571755720343610163863254202187430550951693612467226657323560091023512740454741839885850116357237008600084220542845911382669156770685298313824925472522600422078536001108311563081959575700399076202912348555982152678864771264478461844450105424715290184051010441814432242922534939301568003591907043944732154200807631345704793904501777738359848896594165465850308235833499074273049747828477123718778380595464308087122115649461760039234858843483610889035183621857447724010332544105169711473624403703295420030791643840296531078808830341750901156860463642398810854503696207610120941946839446748758345953672103958957560464054344956121552763979008257026554268645100846574866064187501248258306314950744476724577017318574099132613429944707005328823796593888853488341631071201016303254770547468414631643585191736717504958731241875354407694322510983972143881440414558183910744532633641522340965477901699064734263997357339935779840955717152461805357957623021667379098827252446116051395184759055723278050250215768776667965849158776773308178659402421561700322930733511056077800336781714624427964671612812264219880176781348858548996260311241626825114079556139534434237795390740270165262585368856146298303321442355064978223680700457587232913661780123551087290321145130222824809707250185582015261144508083748204504588655348840275880335837963559235816955038055063420585814205868882787107603952936289354990399394300908967288099386267381407734140926430099817250543885962226383681733351186452785692159731834402064627099061375688389873077949542971239375978000384827860465138339111958254107447081257056341379719264614986083711268376551969514414298519463488447429202997552770394418975138125115416837960016090116574743825593079089339768503972994861759349889624657411757928193959481552631444541158582965654714028282790616865988706663389779460171862952763361549707247786601865608930052631721375764157670302002334232177582508619557771444551909222255195796607568518053284657946158699123247386272867967750159901263517754274844332319459840744462992546655906526861983783290340395671700504150373608748183080134790022337676388574031327928521724485553792858939160138529373960950184136213061706937706482151314744225761223255160262923643475330763898878883225923743315800542669805115361772665238991912695636440289268397788914451451334488381942054747845216553703955579611793248567078646574378859214600379432181125538091214732529549857187886034267365125764044699930613627744647613277447196682525469346053856919884260603076715485043778564420236693446922300349001745447150653658592067989440430095518815866413504591093512615971229535700927798758181458111857933198503834419403194666990518536866275125211783431649829215420440918604825047179883583405974610203828333936214824444301843631038900303838782003520452497734797190769603019948070983683552638645603818622361719219754459184403385696895617183287439781153419025739420843514201133290654577993000077503491442266437980946119681177167420504640760465334060439193662471178745466068634549321432699633134547894871771986873604281956898455181960609362547267080193882396539761066936169217724634961300219062643401905125806247680410852077036456041067399037368121827675658997977375319481261230893301052173879624393999837895660433135962252472121088752005381723971614835017680395467343764221901535564601219587148927409787197063639612959725717785007645943053028460313180655976478441484030127515432320711575259600143041245593771524222184097100732490323275251433298321867492605110872564647180557088914295955584256346451914421532596525395124520223136164638378282929860389679828782378916929717595228413646837038898279779080241112038207273056777841316870053218848541716015334051473641810469176477419285057817610608241732042545484928453466291158768049016101083790918293528951698249922086294203442547540766332645052368833770552258426663042096184967942485905227070974781126335040702114386403149680603241033344300796540192022620227820465599180929044737676306355991807147934308352711102153457914669441490476368793121383378824508580533483448473674561888470139587293692428997527508922937765536304048890180467240121841181300836083919197636322769084311389460218750403691086233223443528377185385288158734094737216124498317405032139013259502324261559195262408025416802518985504862418844937750572324434065895299199154802090248370488811454741605830283347867609179338733571130860756121010192826948531375045978811444327382757353411523768153151722638253088789433537746774511464886305128456917972632901444610630160442978845719127248152457884927520206984870818972829152565435343787585007367833393951266464240123228671115783791752441729355897155424291006827819922509563575237695458607074657688619402763429212840781951711816170211045841298718648049936292644553891076714930330702084420435739250823308808859150783006293543463025033205835176338974599264116774903783516870469003654388276793813292622721742134178253712895702969831364627062843649235711865876081653700233530488780321782741510458962476377786325616293066100442336909959960542752854005738642215499638838554655573491679814904072282475859578711187433267652234674295866880032321751982244763985780132026368642080636913872012318060884014601110988676223040507480698492816646147078861337077529655773466312033515546070095238623472784478647043394270804941058455222390336549846126859415897429086431359424206298718110228309691309793834666762734398091998077717407156079804780110379772323671732565002153282814442837636803401258573163406757688937614895313057050365400531533833694311043971736573436847674852364549809929365058820637363141264600661556392396255992530463638535829058147215013173805825129341866375101809230600873754929902876627518923786178251769664617304154655487340377796114736293623237126185874464040472982769386411594324212411045279564195098556333558396180729319825589598561263260639727459742051348084448834429594417252888049656173465017790299814957437907857504875900026126640258246160890865580736513645717487586619162149904055086355617566816982133405742617405338123082662235112171616716949593118908086512709255998622463653992102410601514421951201790008288255894242109334323524559038224372546914986336271664612919516110428243647527795644934505555010905385151411425714577122627224021584257201399926039214660312654572957846367936751993595489283010234130479249275176968395122164910204190409810538681856771203355925001862706316089428348048375330532649549521600233660696774841213604299185206101202608383794054959195437269184831656702310688999053100049647702792235854533313667603000041587030798651020293244301376152702681542830971422079633954833727778951381739087787026238868500607000792425182162657438352125743052103101610194809445130240940248592716884535017812003729397904300659845866116611695987243603945553885951114156659773306905869704159783917683653189852942688877533120103639810463728417208452081801045819409763480013236378247886183095954939906869419263195401482865386688058371500070834724954644810937825008812518274788550279370326225536890290016613556798019155860722558220441239489948222169555289325507101010061769994525616935435660298158051423170916552925375801301438080001348482048146803111371803534126586952366172329227575143796435288998308054135209358566312170080114147997415145800182893737534166140382367266281611772299198905670200849637210026112954260111975010896736579432870379781136240865063948480370040491653531503452412307432723385363335541999358687677561478395527486441526690249832334101165162741688168056006047761880405607896422197574128440718223920091643891526179213907121531353629440921283128003739922304100789320114259662070065796151861169767575110357177304853767691163653445727402324311622386056317580111365870396344549153895729510532991500823423398453706437906167173284276580512423382642367076441875598617338864228454860033150082932674815848969356814230302016744424650126967200192869332006075607912608466940836085798748469267308429844004985070691245683707169936089730295647890625289191722263429800476816950918953515963884022709554529463884818731148645238782134080242580011497308189588761928313560364978182063702231426163919683889227346932763864985412404599978785851089051305354025251931635451221778428163833006926178349641956653591135641661842394175430310900056055294640919211531082860971321001535224616615968276158406257252897718827977548888041253249896585104260454551192351439990230329601912579120100668946684742621659451132312166474376697843233014271373126360417403086679902464082277882479959843707580565381910774689120537694084649773719260758079483061329585461225752391094423071212967392991735047573168420590859757863433902046523641189378542314306589439783633330604916655715746223384779589279228358494599160264464844389969134335556955366794852760272262893296742503856150632116526990956971507970475865256007532972021227637939725102542183553665635124350906875082355145683444775989219996725475180148674062717483141828351168916987309725382691452136807734973094316025548581555085194453708326903871601857259000502146452258983018130493568315058460998716337498209496386447716528739458672891456101694390983050475891130084326412940324178966091308544368136234872370969491990704351846395928577436904807034518139291794695735005956786386214796169862145176825627606627757192803627590739376211913876890468318382281512468721923763401290939943650181472101912100781193198266272063635222454583799791168213220474688108094219794882435101618603895238298384434617672334028752834267138034183184779023875985378801584998939415241368406806541803883885230668774498928131070139871896362482542676031639192907359997441389403314666364241925754000814909376257896025258941191803437511615784333649990879707268286804002349000289854666704322275775382195927953012677186148949986635644488299753598728970253991133770780075230342986826775690175563674686126644315157772435824144483830191172145043315219568487715794047560370030749799886942777984030254021789667642219404613802547575578418506706676041806292028694157010383178905421834640801414515523843478535312747231831252849543211129670227410720565341982501203482524703744838905538102232152671426660857244575021011697173787815533466206428266517051113524958920575791613707495398532164595441875745974133592007686302937897158741915813353561214086166083742172412022087070323343091499203103143110140023963243303664782423704861014020526353559848957104870029012299389764962569333100799882638605814554222879088911586948205911743644718269233542267111156235317558549497291478223792434578480733322414233818273943047433593556147197310590840089185852096871363160791401195817561265478401305839839257918455037793077519940283324359946154256255917858740528835448945040640842928591645618908915921974525951276431042913790435059762585795634400881545320268903964420090670762725017860410177284589645931481402826186692886096177945079169496073331440784166244693551145491270541032305218931615198533245787966219059793521559930985951400015042500381943377399237309523459160560013334820539816280937307501754958934747031590122903336139667065687888788158170307985546850936441288441357267896733734710044781613052508703688399055216804858310504382943155287478354104755112179096580718988645630638795209492417187243889811793622428573752165743709347228889875482923809846054535455832270849785128692300324783587075460377570123881383662474915360543083438460397833352588279936664634069433223758361711968033401468730063386521995322618703400229198544017756155360194332674103625265712595998774329270390688514282434642949947454568632053241232346097343798818965957282187296866469973930447030969368930960029701367348320533588161678218126697371078709763095618916432520038171558503030477772100133332835948680197170565106767478206921655376379738389199426606689604618531253274991700597154319003430317054504714157203556518436487064339467407486222646627583206485731550780059902651006348470722001873684846380353338098204247075914638809070439560082859493394305965190466444938079763199386478473905500784510665208767118275654997295522642514464449976949107688114098120324912305685634131749808967850925304969378968413789229846135616474634250487437301021857772911043261994447583254471096924212523970560245734813103594056152528594883381633668239576477883494098204618080996581382227193297312636126020074005071568007072175607142497690954832030598327182283452438191093594826662053080524823579248816516795690856845615539205852125610325310301965317049848860834177531326117231972217888950682992216878410251457397717248952371476190528212172634651971085091459606482121077860921963596101840007167809359057577232221193590882021970425785186383322112917750970171424960822779243500472730370553287970335644812574447826758049254249340079086115173857298646710169870112971584245125432949711493533109816424220098305551499923023787326222784237263138396147030674214524566694177966184654623231182186536921722904814441162367361196564854677504742240080368206766299656336196531877117682866839903108882645237116321561871186565016133834033141081237960928311822474261711805054704252818819384509877154723425261325276654126069520873419212605486649319728013482865385568597657432219786395020940769070422615738949969474749218716528195751308142193513368990364401364761373207779043196727747426850158976952512352878442479080802615836344548282617584201056522587448703610770858864261624243120582727640043285205614016107979364448164718489248266868838144550112558893191092983599403714895451418705187401745597009798921792140832034450958874844279951495721429162926347756598837200265281030199674401302728081955551768961172469287409334310549192063934781755723489976790664415803959026804114540002020145623446144313343495904862874654236665155251934003599432173808612020671581500995254361880956619820270737496755936723547595387965719006287049618960727655456319405793768889821789166651899211874386230705886402106925569933588696482761453605785773262466433206363383545033123727061049461322532317055960121212022312970966004050641989783258920534470709561655750544246881593208021791183354250082286224089442990419272400694006703969970840972180050724777014696188347197655208872147980633256772514946665419652311856602423684137453107681546002901780050665168042411431074801857336992926497623936085707195370341980826831812406911276507754069198909807413514073164580146470940207116028550568975127770268028845778788502162992607171860372675221372164079219407859760722739291028426435788042041488812274132330591965083106229706763758052118998191618025267696704492483242046010891678890608366154046817222001488671666240192483355167776240536639701661188440605095689300503015667317539180673000006605871140316629833114607122739574076304572157206323779456905972459161128048699750863270784131593986878101932258948430964701918913106057496283641269714922368226950268890398215154927168931563683884829083873995749383748329354587456014506897369315448733968060139232423817217410938724145992180707834991942573862871429132650646165797927776543171869070749557182212514956829648814032084814463240963581265234014253952728669441691028371029986546622948292745224429796140188642131487162112690172860807556484572935209544582146207095202971374057485944500825956117773116279853236993254071082826048718730326200603270707890784018679745198296149858939155512378482113784443676605359742084143520307632096268866860316136069762670046554946970412004180142742488052092887177235757756101058051761628135376591410903431387269547001644754714108413270861547585484634607878745597284746989272915332241464860825753180440127630837143402109862064766333118745015551814081475438664020565272872865137613368749574611892084728946581091114790177641459920250216139914535181996278173544759385561991836793515114969136329813274500776486118635347873277741152221168140537440498220070026913906116223792333328249888859049386117423191042988661317116978394998694655897907425544422149088201521510000422547025235585726087013549215220155466661066739358308159496012748150006735764682179868896296618660534708411452252467395158746163853913434169054376206007822455683403580550777043857555348864405436908897199680656679506399987914077466356274037625453880071670507984138826015285989772053843782637963013419598408948944795466247859336308152396585743844300851454896565305352479001368963592164558053380375278890021921185265424811766786767331742631754084702278608725766640962641126486359167572134583717329465573100182604126372129603020591749664034619790274395796184212957189676661173222176261910746029533031697737797156786920854542542709933236024979814904939233748675959833784416113452327303550345566512865694422200404750374560227130515004039922306541534699477581012369980771185434234101163478591980135985121957166850377078184554864789556705472935290585836687748791471179820142132301478398263567840489818829467540115008422940488853800272719951917764958471984121226059723796552957070949396033229836067802455772478861040237961521345172044016396561793128124926165468112269781018440104062676334760500942379045371816714153885162323381553430965967583666825561267359088470323186907916590692366169541207093614986909574924543596617030822882311728793408763833879593661972798189332219666820709154374485883848809499337211474999798268834571812836085027496535487378743351641126648819618970572016901777551818188611208206356328941661360517365198995324736417445129555688713725087442054606250505926074768033741462206268092658659032941409779060744677921346971198272259722335931905453906117326716642340078641164877670817755326155406553873756838642762137641621718832935557413844003893537339628355582419219565146118412913415483360418039863657169322713577496899826195280562299763969846524139088012722923362202971434624729910184890008919462318280867203034894070883745074602921785753669520151120211508528307201218587909340970440173691557803106265407361976062302474161880186616119006619618047885847237663732177894512259656202673410242316570724125907092313731160829050793814723593915640372040823641591778740867083521293317532187313743853946613794656713212429041979366691247338109916519924186157715343380592391258771623222652119052075615179279910574034857905441431533328125381108438501149846037672220203644765114280546378416888880228005620010557216938326914259043736369705489309878262943444466592984963746558295221982834943809372965946830669453364580234499209578037968105408577575363134295193591410753610465255157575204729787784075059194347821973240703200964004967816973267006051592122082316307296156259974924801084905118361525912136872055539772844791872158478213019323014508496202627080521869473446720811624493099924161949545129939756684130210992048147338306814871089723067743408899125830386258982002587673022123088377755306918340713523097763194681882499845461590434912711880252754625711317316127635725588379859212386030298842749429327656214640413273487971345061289331450079080290057249904123528258361890068709694397109651099795340075050004308687043553017446618024112945360473310366660814328037651669113274191908343232204048399398102257960150551170932030804167917564030890060103881280378036774717561308602555819968011320125387755188383716209338361839710199506765416107155356658369513065548454384379919454613493627106258409512676359491884975677993091841977849705684750756054478693671538828118855213006151283601450190106547573753432633062505070013826881219181666406689057024194131071525464100388373626855039594484657309862226786749602014703674168453935553448491245768238172390192556449833954926350235907824630115770542457073099052561669707414183146101852563778319076879189165680910292910131417569895373927108343331982027945135372901374056750559968443890665972676368216189067847316676609031839554972064416401981207386424914026951992464400121104666271360524384533493669015698554137010881747848988195573650676846713372302404773187367851961614000243806192431366665942127572972786022520286568985478021948002873612919322667227373608800843020694415717053620996173987053205966034522890842750038869332208686042040932511536384512808416336293324034051355204092561706576258650893134185485834384544641288883691838148958251226647594123463970224864170256925647422096971818910201614544468881778589322156103742146625284371324349666617716478239014371814538729373645329307762116867599282548115506179123552086451431301972104673636692892296234534897356932625573081483958931176115494425000260826665608535958679044931891665939350698849699171960196203867009051585852513919677541570421585585767250497387665806456594450392374244032273087099029396765816293141001683788846691333934487015041289965422030978426749254393399958183149026658990883383391242092818295140251846305862940150301968099884768711761146809603569213561539227969541387574118267667836302991941268971891901731506105880457183981781012652498826758781928830392282141764798548110215076183119846822628592470863857156269047993070049917961783463233197081786526796887062011990376147461136257491216719615085908598191527297254781207073223601417008726594935153103054193686429036892762103166197177849751196385172157428216962112130546669672584735071023070068167956891249851362205254712192219908669965248595717107190026384855960014698192336043555872530559121249729876843218601657989202323982304238668963987656275489169512428825974503335607691484386903503848485688488068532069825698111841149487319416635644738574542911473382877631591159400853251356384377091306804136832101492584611000517666096435034300589766766780172444658414681592809053979675023093164408552218394059785180882919234758628687987445169533672798643000465281851959910791496100468728904356724088748481290082347496046245532827385191495615624113747330313739735302719951559867409882831937877820210253111786880876011250825349744839722219586629099493244900294767656705434209817945184384965429760193317186026595772296708985685527826605383391127823511080915539894224673662747957234718809116622336802096622458181209242020749835747303122537698276943245695303495517183670458179184986923443388072041796705673876572573554457506359665192371949815596661030561185992145788370500993228485254778546175273634905427683589509124890688318577536140425150247137255276375591702847827298557819592498216776867284167082555905031123057826102422514473708537430622959314032062724801260875250832408103347825362260946365377820201188128893431958732084821695968253324919431538671849762115369971007783963135463457219490113036989453254899928608132153052384278242482121009039801988140283279760055794456571516516700178887286614203519293365210293740270495576205369875897833216097943732731323508161589358463813086679341562616089438307197280226806172719240257478813274207396705247162950039531922632673719967045164614842299200471363481992834511416906924947080894794004682574981536949480692066408341678298185147343541045167224448809641922168153651437536124561076691150736908277762602874497950102475910557273288793947816272027629520371042501043573695863681826640667358928303800668481031831891359353521147176666416218982973908012355849920325970170069152690536052808385628047112436156502545435407840065266107041906106674888220484298636406031960405110268280047861304683434045142826026080576506294337298836965595913817294336201099171888139974279046472620529516670890294361397216659034178248758038931129950382573510264630344561604158639179423432261543196747246373945003652104242225520665895111630061303255179878577271140218383508513098427445394961363097627804714022761448902464278951868726015567016739895924478814544610695628409561114605376366811904714250609542454117713106912100244782422428895156895331740336088025487224256579062244112155662749438867303606804996537403664936231298251432439234646657267927652924749673265647080059128068827158007738252445276647684902017830830828709337767425831234771498161569467681645379054660675091619214999360238387117330340368190454415870979676939747944255705953621102554209417639807187800827447793384285595824537283450112471809571302532806876097890787984708715037259622212412364359238985030196279967029638918795988953553306259176840480823456034955227644585035019839341862222841372720430030065489069835877945122882005506830498390403751821200283139770161839608914076189163474349463260239264777014551777921798742417108454970638990266587097916826566479089895192183383227948253135341177887144665940671459029951764720946677482289956578869089668459061988221715109976000007927426269366465612315941773958862283150667712652638048359259855393983674067812471641784983219515111516459748492047716148250001975881379458916071217715834584999924925831407431573225054736693359718678560446836609079141981830182963800004475731012592044917666808063383929932011890950484593694852155049933955711025487077227426007882942365027180188654351019055944249815632402037817750663996855218086999292751398961157285403024758778776404342127926054939687773534472314557155736323243391778602636575510322187594675623730946510222826244048968784475025107067534796952260695639196958191859141142983898007584446811157681213424008957596087817741163479290859564725612954884252432085198022405024883209330713106907116576370531686113554577075607774917866719747708733579498548350368856101126547065791069644842038920658093941279299034387305166539294430520286975572073790130565256247047129460610298553308116748725056695236429483341744097449909160462526471382432998576681089237251780976444787326468458574955987380229099109147434086499669694775253590589971455125537648229934765826564376118798397220039082875783164243815125547712065785978021291527390037580075567832999342986363212897342539750696002775684204374339671625859042688132422341945076242454538385373686732125376914753493244135471522076039911384441900273524769486590780441369462754234388480905603709947340285524343614680743995972085115250577142405238676250973607804605173587230683854003526653797804154840479667116272216021151214570220738179253225036248210991218893219670975802920538072444964395697415568952238250779147245768327101905859990571869295500119214281592163179889224619909613274275702586175407474669900128880811529560971774958313983423196247724735507440695458173354424765557489573573101335471784906585713807916567216216218621689105828700417872243410444417331921540881750381735693510815107349198696703713387997738173765413776305163695162817846466998010174321451259275360240848076962939320890445145014663439656307274552604924714928310736443567601947378917419798391107363100583009190589926416724921183408953604921268396865582602448002220541648000456315440101840043185294865673925433074595595757258779052605705341202408352544097530975307769658867379594804809570823195603637056468412608457235522434832333292293362533206242505832602522871761721265185121450553619784632446423048165279673398925586935374953832538391751130186294330229799932719940850921812248034446654062177036599082905646558725697390644958942407827397163722055515671333713365263680257040050951774040149844243128632720502053289950148368353974500340486511961797382318747560474921218619062680323861177423319565204746772802352550078501798993056006257650225876405306185045782607374362497275475284779452412482321582327354500867927479036606536302642910325502025342986975017440551083723442191133948040119329773562716733032968754788596547093116186034369154872866769186794093618727329593503369160222456435159678582652017446796877546977962962055859833949172966148709454824496285997964568020916395417362895531979310348064625994840125126825268101851134212513215238538869961829641621522264650797771565826838094538975235157228363802218888057966927872142651340851970724155353690246653930023865407207389718462301617476554187644263484584833325283877855339024414413649186990750576037778724638316397989054506601295913453385887543168251782772242497375684641134319511951383806970753290239497417373974131313895568183459773774315768913613882082932450316800931206081372483009452483668371583832398493204194911933363200873271225944292020647284813145668975994696369950517022883124860447303801409427532886974752828265529072342050436262232488617344000140425269881613632834091289962926600953781204101345748287201848366044051512265818697355095480658438157601517193165336647437095136834880488140922236909456167676993684624686231514226414137086160121858578774418730524303867445082490813994186985069645599887061103274772931738247084831718310462772549992045480924146514477392985243824667660076094645708531317052155932834323197598002474027153421878222619037723960742657439539214073201768873588957732738930567272039032036299660618513611518403342960075413273660797438777815720151775776671349071408214498695539303767668839547771700200664969296212056129393449467338412781823507150369615451055018215412540289869880085880585491823139302981400663681114028045627488732908115539403089162712197763940600224860184180087580238283954237735747926353852976404284707040803170391203766152353893300999512292116676968413878487062114202624075097792395463716433608761081675090354146332599659773062560321489198367258720136192211100680716457762300011544388037571752816945523485665223530463955100587048928063772026028623569142427587703211077635389605745083103043858306897704013089617744631209485725539977584729399751725932861131629985170726622432912518784077590998277417313386728940365094119861170622277187905938656986074194705453072504459644893684225522699619028033568629820291471514445312263729712020168866190155732002676271320302729917620282650659162427033762864810435777815486420135640090383007113590376623883229363125656063167484290228649249353159691839155826561191076266407260736933564327352514137694561109796145457970887043177578172679986457111431984457450644635683088021543939958286067007607694402397779471788145485027464947312716621967996539487955806701911235391319165134030946361192985991647546618455235277391977330264766518267693485920715217583997809405932806759725783457030540704663726884017083094326808817864265604264068790370001145539834074364024225446795472814005025580648557014418416848600679359342311686589400684198311324608304536290323129000473116460289052627952074331506251420772503117020842263225634226214595453570695532797602226613600469894217121143582075868309759104337465469534617135315105495239369238495946979797196902289866374316622320339754510374805806580987179115062107604081956483019843546491566339469198557494707192125258423254102144235969004500141728656787302371864645461293349699488226851125565080367952424274066737330651493564393190436395277110040848888837334881627981450007384042190058739524916423169591243982675850802795380547733635395060503183882928373984211637997729156975213844113792617262624878528318667559251501992754131609684579115557711798680188168946641451439446290096607494724028832836231140181819093631556834468557853497373397163790192861398116171420663734043619586198142455485517718246059437744784529157245901879676506705206294839301423285385276307085932366526574576053232258293075984837897597209452961644472684586175380804739882378574962857342781659737757349208331311151819841843669692083484800041186399642127187623138753379552800066678172456935169329088595469205195757313971139779364335346819424731543401351808746179357879491235652295658299413095734997387089244847150155198178341845068192685413619205243879862284338668919841000681917813382130860150156443943857784772189774640279580245742319644856303686984201212440296185223168328304720970137206434757714584041410055496300053579714957978528663205431801845719773546954607176330651988830664340370739450782083906208190668423851988409535771301293704051721142388231199661250859333697891272432149084027974915386551405081085794827935994887058286228736014387133794468859385289136139468322925642628707641827252940454412375338938402452214880589004356603060847080726633701583059928853971526590990636798455529346496658552684546372781040097032108349707639748673201730414682186982085480791814094964917509577363971175966260093391877950221864383491106422604558488927661625288930251013282379218035173876577013605485434807226179092827272605461147387343249061114882688894480993442086982493972785945142434191863297904513641330822671648111321195827611675945068881149413214030861096832021549244904702395984604605928267958040051492305223823775468033040842439374524601337529265318252267580973459107976249208574258700441820763430300261223684107297479263962631435238036538983420647639990442181155681088881742499784568616759938359966922312716453969060184454812047591569534329875706801124633860264266580997830674640770801528598104075213025020249364627165570804701612695219150646247239299468909349923876748693434865680417873309353627354444842035758454778870500936131346011674698545101802265007752881510884841295756535512266121913459746347503950924991966667640819402304541896644763399276910514110052608967877518797449570705716164458238078994274451084568401583650604867717085494978285179492753517891413456149711291693640104630636471804174844661789291880184273018835156344812852848521397615228809773628217631655774235725093711931039014618909270561680965164883884621067168482674714450801763849223964803833320914383785929511786597941650220823760788859322046763690726006584775754888437342822601059772180355552095609772886788562385422588279655762411921641598234494397090063989956259177922485541059598249997049525309566749952430940721980698537333661848244811490440592896916609981458929105268556352406517351406190881320295080338018796949663053431144980111269456207729993627743905623533297223207075135241110270456630036891002266145025552576590609240030541684001146897057273471011563769965159218911339977376397881024185283983957584927319039698395429979838223795659123668835271868632330082257520253504683398935854631401397828589443969961911818432934427979750051230086344834321908230594531274563798023011859260932036533396308154025337551239031083025818763831404551217867494374927426132769307212893628328885249666032561238718990270079317734693687605643462029058167093227164517441042749410025219691881581066184716743546654877885221348977615713731929153258259294579582747180686522923306782046831262735138787287011105143947702078383845868564803992215574206409712647907939032111929203579904051700255265877619537186992185220225366107250769858684444167298252398213588295814699451820056756767889575279921701657708022881763246615744213838168909221545856168696008879351565645075211027285025940999030891092279885812989969770417621841257385905345054519834627787108424944596280604109860206877701678273794083659646335855553222061988130145898635490051467824258892701333498021701347174176010856914637841815363901878182861053650050001949317909429827676128860977948771563977844679889579695974814734628088328555297983535804843562299316704630071387765243299584914107741823039347982090657353513172201766109323826877923278149499279708422446393726709242373572937553938504573408745110294786677382432673781871348199040243105160503419060555232584564862598007708273196602511851432853637057605792197100779022597960270388089207720261557901238201804846697425199765344670986065357004074847598148021413334472234648797547092072897955860257449101155964970698926533041254422512275225766363112368892795582197899101055087982889789172404018458572030891466406534947274618972651586186548771640288534539633121081671893800614315257642639119208906682527380962378401011726630875832573153349244777025690638300316334963687070435768471510782620873421675009068473879818831825795902468180126723860492425621872813840499387014439550682424049609039726506944459211254730160722061690902661317561177714838164333800508865819940878435798631448585478965793151056562176007074121911611845752692263559702774683946520030991984406535103933727260475770095717676962536810777314341701060224427742516147781918013609328483160419736456359437670706323154708127603676945447413681484122348760974070266468455286105746855735361371133050738093803054159128436862497978037041156456110067588400798918204869570609842406333732054498690266319204784249611693657789989944906570251507928854807566816869840338928035931280430902128036762879840189803748971951033856829751541159929736318600431849760601160661722951717981891511884802165940191447666064274049006880359190149523007619061913767369628919025662398900406805789186674134786138983725952194823552759024710783353616816175891424614936422113923579142536607147965628748408270299202859237852367981223271621936977178032551778963935507022243174016520101111108536205212660191900265613981537996192358731920657446761202207872682415614007201490223336277984656768377549643633722981986972146913144208985907247708003245214144531750409138336159461422631527443659354064278188376142368875328358851313190116560871915095930047068990488200000951201289443204709476938621897231925877139175338183584408426842710738500653078495628432643632032862642830268812856206992110726720581650604070265410741680238974683285960202081899361797366319532582029013807141850041239367140170707927488764157973614320608461629139420522440406719680788079079151847518529395737438484491690655526543041362161677261934556608554263456961384910239683991941859673217472321119835214164200311231932788054999026007230810937103729416693951386129212451247268465177133912427913903933843086005375872788673930237408979669141917276356765525007318651743237209952116668378889217824688010767731481534072261235904060559015271129984481872288423009046195377679739426042009434109882191655799028078261936666230646720092380868405669773138289233841999161993964966813192651133806090352731712764750221594662070561721002005660500265160109927723595708342816687635227016105268063724208763412020575450989072565484427319438585092961414967956547443277704852333587656188205232189183471794457979433636589582317418427640626338786990987048482985761617377673155241518715380932772798442642464016384124166636105070615723311225110258942370664651218750498592062965320888308726248444574683898897097364727202775639647641609141794422983094229728752195887475951620514662564643140682469887767168970425791114728161857313706230184792281692409522958455126113092741751505685133786758213419361234229101354984928870310583948283388414703011795009809537534749875387160980518941125398068501486097260843712450026579910608698403587733663398789364816278898324532613548740167537808184998138131336926060126467971807241478262854758854422392095376186311287614258259688735615951961309372940593947899067349899634499434274265193272355120003002269283823272334804311970458721984316583496315876649246765044156507037425864656444716963537978967881338887841346732965564744662384165993106659161500889340682118240001865157392102719491346984163780779628931518034581332762843621622908914159420525279686945196444149140206890205082728512691458495377580989694777388215502496649114566209105159216560579986562258398174125216274799253976132437196327648207192273732199707999572113919524367608336446660984833366337905423792283071879370626809884715849474565252996908743827748735716445602352205453708496594958662664056463062934329907127389192365069670577265450101731615480303626897639937665700105515667731716216730363832414398478930473224144610601103007863438126732361112514163526138767884865206421645632736346134148785274358055207004064377230717572853946249291717312388003163893344001551197626904458169488194206418784933709989930782510818470869811566695858165260198369993328195019900139898375191914654996218800652414545967561609606463701427387635694088328031862568059415855480149821373691652521178815057454711125031475325685777791288334224690961551564116287847787171567857450703030325004996359093176535475952132760518286773278529702785799885639360568980705751813954772946834233265355194068252891786133783055354218624864608712990721093799851673427842619290721233064870958918329425671253762687613592300795150782781785544503483949792135230181517883822175875728022765402347641581043251939342099518891260576144126323045818414088706803974150404116212482142443697103613655662193945233976085651539812767765263248324992196104719560534115498053029019155414572860593407702034049662797661380099888169837660403713712198113955190365654653709483091714776755745092495749047355943766988981658279696549027674149387888109643992832015625810986642610724436093467200900786330476437242486644557644802535345459283038089594087765024150504327749886857927513785230165734052522768824092113884525243420711975920472422200088547741013431901866508565321619224651710387207663447351149739276350885731486001602043924366209192461715496032164161524987279172415544482641839695082197532252996133801189995204764655298590868282665960379600230967285935812753771600627625211863849431340114054100922573995201201532863534561164654875583387772705985578228986576566902440361141555491141292983841748801155127731910640224740060384138857475976915835340138352976997788550254433202918068151660243108248613778748264103846001900365652056042325611303837126651703567698847215572985955769165169527597449116611031442673410604094872592357646344828952950074583799735260737818850008900926652960207868538095459183248475292205329949267459313247338581615513614747633153125279745855813077130434943983179680966554725174050269598800963989674437346621535888466715437324058676079862396175010643717057669947288647021168536150847763497685654818153891334576514857233657988733118144391393939511408008022132690943177669213256507056196953041900108777265462157519275920520378349775997737456309517916015068988448618347003285656623370206092741792156182715118130478819086574830917000365152838474044188240102282306516310780828193850136932581243731176053382267069946498448576702142326124802356631402860558739957965101832112376856523484363932290635186819673913895714558276700830588039577557766918389708531646330309022305370151496397926479008004964657217515007365785461606900333177790485684017793924856650649945254873504651435752001878398958825209804111107690277694013744354172419998903194128496101652177570795652156192305712587891604039473407620136130263915266539162940833265864399781401373252190032831933373624214136095677260790414962792492105855209180992123790866981480658685297270131998134476003184866001917779843432989525010126323558642212360027266246386517750483642488640288623791832827844089949315863331119684771606726785697133590674128535252760870792865602538554227491220127093687041968291755609219400802016300464722517390584499387177312058798517921415529836479940251794620563664124273211349858810837680652925952351220965417290978310235553646753924118244428269641356696846102271374535364882613972714070806992412278850981502719594357736335396020918160955406482534538774057782020570463860314666545920150372754918785579691041311041122099752225891976129581062176003667264257935022904925307352242095400037744818916839961684492454304849975915243871637076859209196349185085184885961092656429288952019208275680337151796527827932885278342274756271483989591374441431491693839350536295016566589767686551768181127401691682294086100207415345200325242645860743172151752926209914140533828141916071262133479910227226910551447666277126770942125006426609249409090122383078876480391710236607946770697678267289615252925545244771683830862762948162258285806163832580961677478968663113698017987610165805006147693775912791828767114410717838987588575765866208041581781494065293051390302242967043583382636692466584573234658795416036208593525253079499023519837482051777677972848653969200915178004595988070894472678391031587485834339116720586725285633469355714886350941695196030906529668808994787861850969879355389163757482846713264281539166803084644037370655739204860579194835338643658746150652056318667141398321706444599368175971032968944388870656572217914857487174948686284754328190370470449458582951158631865272896804985362754323081033493999177965073348128909858367947310008679603712268835903232632498676094957517926040006869549898243381106065215717744144443527564432441926494524672111817600955665909617572738303873807715993014794903309245059663932630049145290120076887622089635067785497971480749847133160603518009641141276437529087473016464641322808567967107476101863550614381889948459410693010630734511366435679089783859145546286903251652649158746434245436723702220636130974091159645774193608326625228651385824458708052748581815939613243221572742050722569132461940842391673119349132429006843295883494381398732899650424230259734687869359924445624072522794579081822132729223453632218045210421415452425743212755261750829158722844877166184556496076854948444552039539730363621395044847408707932134377514670921234278457871327487687791439468173565613300928573971507292496869813997139116775123599799998701250899311256667821686643673254191169569307249071659928042262398880195187888560756941934649327845399799290589187613355267537518679887218449429564091488994994560245427663483680592284079541423523179272144967902169947358523335812253152699119894153878629760235831715215972997889267882884872420713740660534731338072902520937506007502397507893024624308441801869447774651266174794564446489829532653799738935649321086045773762973101885651965634469131669984752556517194800927072375727435464889845824439928241056839910702564676218189089722133914195087777992762308726655360332619107509859810822390540374085506954816769219341431406946289164403643001795159868470364038277907910022506717257293254777920471751999059224745673320237378520019917047090571728350767517468728472425642980801340340541940348490905961732381960365929125952871024322219405259490132327518600501315220900594355303538866519811225416779322351146599009753733846976898709686584385138776992921947599923958613996227601097850630165109563761628565942779426972004350274279646808338443687390358313532303198072725967963530337975114581786042662764516121842150326920893485489387094066917402180936399549989678911136254289845673613628205321720338261845094615208729007676720031068493790713884148244936576086779057914015084272291919369340501750502058239871908541397670647193727930358329057934259974310561842246074178059057102185787087449573194837814298209791110227129243527329836270534817058366343275309820555807204881076226293533282065719404092787145865844183556456861194831700352964988535376569864476485029359644916870385178987111471007747918862615533673053877293312171356700237497989209365578130036124175582697449802254625541139567714450966709986664452536594807067651059656753981229700574089924820173693916907413029251350885625778862568735026418976743617185729123379273949847120524373758024189288679725795755273006798217825028113261233841182100238940459442007420385041184650331196000312449861625774188943122663865821379146763252575113241987914368227982724765735111904614162566740359993548589203076143442952152479018391995605245105135016443898166471101920786788456706635163466603076961620135663757199170696271294235539905440510980162086397116246613940518720015570421073335743279543182910967985955099668069731110915117905321533803660314829878617464251584880806781547120220197306024482128393161286507877915489419926945449938017563472252672212947879167522702891064165118187903428644571579657893475952402614397370722243655709798281446663560305909151114163549831512986913641657213895588310830321583235239641731549785727272200501826106126549544317053331704592590217028067777968512395413796484577851822074350343202167964906801364079371665397245925954223850837084226047652111270693666049800581957395067193335930353781059044359663361273608636356852287264990303023318288668781093669835587475675312605705558549600646847807339654544100210324673476168108485522053520242063625691752368618125613174914247098665721522780277757364512928002604817029189013783852373041843481378579181738184343268226227648413954745014889487639513343760818249513311350348025108028275475721199992520409083990024151569495641715485579146295476427078620230412854037753010077802021586157665405671969392922560908225023549734730196175848702180869457651507752391287626133217252551550285997908995484542566641883633951938172432855878772717411145417030924061579774321599160327927929150024876971901027726577409625465324871581118381501643281732040386551241926139553118995132983956180343407261159292225472687921509068326308846880939236356672502840970158776692099481526954596383960879135994212281084620251696027220885963950041653785572090079409322278418890927091114028952009621175822680080870219167693650976108718482182574248140967572333752180132652747956788341526371917368536855944284496501192158700771592682192529495776589873804994567834582928673250104835903379481600644291240085418270384193922473697909210475702444094009586923343305094448872248614955647431774571418598735380365917609408069242201045940689253981260845306957258231293331704233195742594245779227236183552218103217535889883813585557354180344683788275839011188530554939050440756442135346806497147057860475523504797031124423901298963742055310179780165219619566583002994221867190376687262085894616157306665978103945771829503394203559423042603562293178517130913177662864109879637411651391971063315724669205878816805185678563516731174122723892799501035356331538552284691575600765620029102590832345956681918903642710223604075216162923983556097132308555111722717265967130984471351148197883681310979555342418926139965328092803343799232036619917191906310789090013468781205525416617191574540721007312726867062381996997908838532825383108605694837653630206717855075954602827792476280344576239788637931011210219226306486374286297739786595657966486433332855300285584536365442860899814453837437874433616347595285532504378066108832443974345665900779854161497590014109695945209005898817796993890503060706819842455788444982822091173597084542465606255881866983560992681498246672029952845998289120261349670223585356271470533679011525957339338038869648458960806065431160983541427939523845162531431660170393327385450453938836332705780363040589116055394313672162634296736774011778133655794743466277368456877183662593498906398824759133474467367809498665186548865642939847445765939477872432243597127411796083637086761411071436010771683133809217282129072162434058297143817975182139916686848778593836140841285697757758465356670736661385350899575649746810448439876212756022953596906776042677861145074057427141521201751744004201009652775367537749519591892866176080072088169274031950623257248508296703926827218994198478231695426838279475139649397324417899030111167423588348377536381686963544905918076637987367703137765583910645327698968686379749705036394655543684463903667713608935457936846703284555735850736714302149923291971988267001755524774841623093843420623171902350491540711623913186190462569936410055051069513412667947108163510635453961809578668572549624817173457009522015310150848261889697447979947539358608355704716183567775533593280797071765346349287167553710881490891426347363141898143069445484938330091095172907973189300343948861754374600296228324877007683390399906353087582185762446118547948511558756503017573878332326461167087688180277027980058266736032124237529755534086611484902940647443529228056064217210812676536403736007382287685420963191848144976074006994118565690303279946111831676574958852192248287776682783103780905804597644921508903206454275501430058613182270300930158007765691330542939177398615733779644319643665661885199570682675881767335216394708256897418691920864386036702406466649264668786230699760678253573693058294215698085555772912833487511579991505592937630298555378065907343145855924464659155375163796142646073466001308576782452406821355789130697880765224652719248383243213234764709562545891429263087257638987725021775523459479849120488492321514394569799288148273953759184765198792865346824205427119858712479765089253643772785509859467257306003172334047132165474063552129917845886308064864835132941927429960332878222196867755087896958750151616076171924637142071283472387692114437255490940219885663348618563739431877980403890958085304862501691509659851786600652814472777962784170809141426055248867741842788886326198861680274064797618125795021480615334537434143222897148442770478211051683395165767409087592918804462811502666011067453173231858682000580915032499781746198977890798724717731703699407362761667591323907315144513860735980844184895144065106639677213972781948364590444966937228262904124550805468926890562383418031700528982262993342580425169562429240150250503753564207429411817359240985319350638952143849625395973653725455188398642553030020551142289644211717843183676706742928543820601563681484551743924921076692123289939077345165017039429655228519770381458587610240415868646024998635663060569883899607423269299785829735640021104113632628634301884310818786560362442613528148218160669771935301465258611166010965424904898234384409037182422453225220167940659372300966141602708006179723406149960290451504980298452297316726017450730901731476208762447789322294951455149104753560879135850547013312808564011628004671249750864413974225823848086832612389683051665712211682766662076042798407836135135118102507342989962907979641783115075504663477815969486704744883488955013961219366786884150447794236554076598424969451519222253460036551435962811164711901149891630194910386988149617657867140301652004578059338257151009409308227084039788868467903155733313639025767372387709394414078072088449827181564086829381584288624798843767906225012378711894467953047313469255039259687424809817969350825934371693448526887397038199979976186850956954172989978661289069792470091342834767868872976681193094442573680002333053165222315605609137790475578173973088157140827452314110622779618713748431532779128842925994042519135930990609328727737089172746402807685496684387066099564371603865227097779828754231514536170639448270377107074181711736014582715764521109623626300741791217179430525382277405797177132827081606019069829403025576058336830661046031333639236185487743503393415845704189936855469505091482273083850892240856921266307998591263025770415419117185928148662233257621081290814320920112937791151070329309870152413910761619861138337988631716865256985585545477586966773752391034746757031213108870096446331198717004418320542350283137976758208717176657571282189566209065693893856086400389388550637184742256995506728997611457860463605505761449704103020913616546773183121342489834970695810703789978297635980384553513107493839713678355266787455366531305536702331234972796363348242264515270034470080180617825632232451026281499510732505225189396496697489614867710740536213510773241873265094429332792575940337429562407704304145535336106799770821351712643701766162989899261220933897008303110436385266237095620132393189636384687166829708276171204060374485211742468620858737573271384753819775184026635228569657955895867201385001330492958395405925128475082729713377532956245384428348992315619436358177642812062189705219505389716259943482641483081614851619327887659534454256578146409913541145320773601016918325664170711577816399198209337340309629523800472215446133558222471141302050386159655941440976206226247009719979666441790298256326440406923436961428369048824579211642584208753347310085976696357028822406950458428642380030271421694472867894758921414799133289011496682612490765112980559391729478147175407630937483691655604634700062589108218866132800446888543151715317492800128659898167255596795290377680934407973947323830228977777326706506099474610281810689398096242259808227514791123530673788093291958481297824596788325597181995144522916004827065103401653219705923772545149186965121011156412892110629361691536680487024940901657018764931889312626649237392478624316180192478423128881387419764156759958954846020984481373985282872263445925851112816669803877452361978819652683953468751283487207017391251329725407230935891909996858597493563910961887862417340283001745350240444631739955422092812990304094546918427768476372560726817567656240660137885467498271300457860322790180170152687962510071061330202973609983306095871262783955126291580639223932048198863430686890408163875335662878664196272162313513928702501086674408854126602432236309771896517263755284871947105434024425644928283631331921887141651316514565238242393552916450585632317230329181299480590302619313990099317892088953284128263835028811827421631804655852344831811314052500788673006348400265924835035608676659228217946828960853399780802398296808892385724686871142289412992481158291070145062152105566095361211805795758994257762240310359709503784037174139587424713201783922304308558243341862196819759076389492264472320264296608066198690155227157472741014671086096760152966318556761612568484897275534734676540779060411321675320600910853548540275414903679266561670316089747635576091891513555227315016790847190781820903084501977263040656595963922731880947235326595633892110820746443983293047181171262054925261481036157385362746374556816279193214625360367933309597143572580983440946938865739053763701855110881531144056135480126599048084500534197358343987220037916277786846300210906549135309458962838773026022035165193304156885732836388772855891330731325375919685057325811116297851458949930249838509814340515415094036262115185891499192683049230791867083988280338286653931829597718824056542087188124593403781031739185914719081588745651749327646665837100527155017013137445541983251578553658124014116055986506671687285354622167747883481393190543877377552276556428166372742439524153153148245830700287443339448109624316735615325818637350901567996644350250449850107864313635581267307736426817682032423650239347183332816715568001545577401471579668963644083668631095817676254972025357772985382188594530830928551096690410419931186793470968135883355641142080020353422222503643502169521171948936943218722326694134699091405110420809664237136934891891228989999396544625676812745679391381610658938246811903266429870117264207143033909168388190899043767942634534858811367707489374795827681094358497157793122295651405270123568746638295867109872901780000789939652386657344241960956355716097157853192967006861927097295600760918637169336652706164802649352452998405275323296987999546543433785931300733405682899722253089216649926802591544667406546450404722994183579986807728577673472993135555963177368050004692948107734519947664167510979537927018511482133153753521680599387692981791057800310003955842976615005264215381490548339786110916188975086038395493638259743002993670459972994402629472826470497280444970103692328216642926280437857650837270583923420224028747989570936180016645835660303110793551521698783460537765251618406414867737905425649852190986267495036815107140550849729751789157581131862897462294870058565816838989533837563488152678184410080004397846087981394014163041845949758130391576616957432601543618991874810749974781260308872131315393779465127209553072733941390941404925937136408606484540298087246889059583611149596161638099872124974877451015503041979941092956887591523544947763462403815654434799505768823270369092290899138797918397701933381517905181318774846365084365604731217032656999259925938269787045682417170060960277123828757475087555164707560312049021669341997544319400577800177172127311161671600509823846583666002795223214244846119599145820550951607993051957970891341730514228153798266008977240559938756617993841281474578445174920675019373282399890619954519568792529522358729451917262900699517235441065292018480850107159739340991207306563778203574926543133587287824668653338345478670275842823754294665449710854897371656819553955571043289103136053629445496571060325830385420343589952282928182640409268417916755758025483838847074677973639645461699621915606913564897016673114359485451272073501433618196354103154737377989180918278255341437321677250122857454008444411381212254029824268634177389063145735207319245309499054443524907279433217845878944666283721618075191485088347327193526456062648322694524188008805262432175190343584020747922385693983732300596081757152437325791680666519144549506026082133977216054406116024865632921173323212952824758560297090002385125809748910555765681289511436810126974351030142093074473096342633664408202055414096620071316683240622965636677522048083535787998740379146666159610562394856279118161138232741248893201101982420792273386085721766098201657502522681162142419295308941160505320953379412223743847110938119522741634610500893914356573632700978579947567528767608829010279715404346268377572047695915732224224638927816973427738047205519936231960806553071337965973309805929966223119105977499673156329393090883632175858045516211729043560595265684452272018279748238055097951766599203181237288483202399736940675407267128148951899655760210635726053880996734608583072057940646171242526612873817126155056264069917819776865239562679277988870982097518720108666729100320553934876802114909828467536761241414324292991054610027730014803680837985671904742468603103011764302853584159743756226719904418902272390853643574192087443450320776461828344834639617755760157101457454464268605651400673369948264018108444612016913825198810704837322030513548053834470401383415890862263267840831516622311454459140733165934590411888547145618901794100555995075057730095822955172465268816926269384112726841042689539532088581433817227586787426242035067001390068912872429282838773890168634283868605742198600724520173253619145922893114461997440942252705597346322669382299334076742843205985487841351426100785339146352846910899646461003140499809601375936407208403051794322181499825374146311349061567808812093732038896927906625894614752927729945007228501474295067201642788582723139553054254568175578679195518604769995622212071679412824176219870205158915677188951267157260600490455246306227201369187534031970448051299737728167877639332853578194602135966147722882005159290105567270416426067391693729516803853204286417816798627490957270705676314020237094142070978306176207106971139697585100527349196876336358505481652369530719971003992472167683601521642285179958932276595274477731987811800484086273271677605344340830040092694525896717114250720861904045269577877494298520770587500415978203944406769598150570801767861685084804641580240291336866066655494544422202841440386960279937095713233151600368848051608470132784108731700158953557464226761612188080356827658003294467731009066168456629107810067788298615468126639617172466896089255120005908059865911819075453095904772299497182205901339956484758309367559253927580470926672439057854095035422341284666928898149430484396634778567539557578854681079323444590325642113038449798735655780382098829890787386590504360102768350952938883105901092609840488550946558009841883173456792485757342469338207100607517846612004410883482170598332217713696572497960153297746327212479053665249615115970182912003417652947240081967183482993690409110629676696529948108982464756117852654044260081178372398242031628195065412477559611866847835315344136707371944255919335313322161393441294666686856965006716685993312951983649599227942284109680641681179742632946445622047200695658588730847647005854051982789053707343141012782621629860194365283461313055847999060380891811724294386044338476230617294379852273066860706804042994979928785046872692395227643013154289708070793114395251045880490374374914102036601190724182517524052068208628377806010844555954541499317556503377517049553891353249300006137472655363162292155404756293365788796206160052277910101510116593944398096005941722701138452394618718761894206666726756672516782445486321203946709165996329356642121483464179061766615083961932616917573835112366974879450423969210551373422178972443854371110660705289017732587341082636290516531386100344865098274292676535324226131888340991155198771916116126132444530328078479037366126608517878996442639309935542228853228366053237711650156146881616546728327917271687996538846397785971987584971533836465891659536940504024978613514073878813080965792592867314132785635841595629563709985749518297268808083083558537435326611393278082361746557617548439690886681347051229855481118159082140081118333901989831048738358528666245619445508344968299813855513929221983847492405708195667962765120924230579329362711361519386625046003617123522378595764890021518622063564745931511673725565525015260069813665929880910653867292710558381938619179849209990556876791734302169629585452388322917008748508181363076984450179157279997959361138771255682562385826605221477331782265174897709536407813077242986867668049894855677313446472160540761606573816957044813875324609023215338857851079664954300766397256864817277073830348018054424905944585316986007685556303842609959193405113689230073348129366611961142361960644008825520100936896756070416164701986125543516335602275771405028326119243470354936802996144616458990181582791450767325530265602367573367132095812798189147597137821792410109087784675510062389899236661291507739393566375314085007615780342583831717026856172036192575958438041387904321107297733687192564722429317269045939477999219502530421166580621235940356800313911884416179527143927711176984259177665695529448600688972310986545937174813462496147518489895745916013105228286066339255169044796661702107681106268793535324612824305932736328820205655305641416658501614921843883879248182896324001889488688959789519655759248938091388506194546483733254528037195604388981923558281695674455097061446032619413676142731580361189525877350912471686217008348933072139934015239274549402704092551541885566379560963886825748979610599975043921769307612749208737367274074740702114907317603272494764814294955805038243854809182057024179237284253053199346354325036348284530981815511157835995853053659741623524421294361511463783161502062168277043154965491952100651095483100562819875312725291214676938359266185656862330318103715298541815070889758391349499443829751928447216286019358340466063878295419329252736528259728274852874391049336526051465227489967747675969417261407609091651035746459645403245944535047611351742909125155914891957046741569990641087468062853787185239364818042426631155284886412873927045023112224486284831517993770331074439733422901925806259191856387757472061988051899675924980996314922594502855990596590105326223442083957621380699545358750552921559503880147034451573590240129319005027786988913533071882749173160323828481823590624696273440028559966366442944146200186756765487346113095952040443361787608707964216934183136010496733515876829941979305771603299729151630678338991265942927126920979580394504866468660095403864743498634927254707957284102204754619588122071923855578364364253291666651000713006505567802830297316129288298064216435612631538206675152604967062644343697065540937504055355669904174761478334836801907729175739776884234663408612266318156972051275895096343114937126939790934905765917828995053419090520368416231431060436880129237300174440062995672240735950763160683114211310882751740724900497672822522432000915427076448892686637054663764155187997443264184375286480376564785660285812724155553512095679695805885446307482873482884428852838599310642232780763268997054701423093833075981021121955240121856063509660685111206151725418568142753532517862575273320288704172033525083246316373752728140898236547673166541005645970194704233926124647439396019727877882853095641036229549447317034581356565094807900480441557884067843338395256362070807043542252452851838428899273690583245963374728406147701733671641547255541920180484603267083412693631060815978046127116808055602299801163640561474359816247393357507914891094775217363061016163913407493730060047672818691530472216446583490077410221877766189579378348703279099931026470383530471738335730660944582593722365879157081549859512031511924664815747706604311179181743407050577894405083807673758861709866709544074208992138452057354912838942112783999541153099195924943715552161659065394305694883944533320303186191328977178858659294032458394935964572575428684310978039757824246510829263837683519413979929935760031617596771921601236228088379558997855499173760640494648006285988759754391743579153390285358209435041864624579765935711767968344881387049825177347814373869123190502089565272710080840434428483379904744646569589356182149493503181231455691272793831991902068577257113398899631488189694846671142075088751121537121829066404526558446975964100794959499820836765435608394506082763106690476377113540050643096076527363568224667278371593917474706079651982088606106239735882723633041624488082905434816746659449194111624700033475393098340521096808284392364073745747009454732773424900744427041459993932750281707303357228623719752535398386087872519922140592807904789456753716067595003280162746355766220122783127658241551942034901614270313949765750802936056210930478643450798348681748730304996928428773533470493581631179234660354033596606684601624247645117868026353870838935916041200830979497303208404885233483474879599751606577495857551652688835967375426730447746792256272219464986568536181189676451576200671541248180958872434663226262422710938599072957378184678060765687928361094700246135441474473090949204532139691330313881360926186617800744954018634182154397908827910525879400594885847333838412292887025061040439695949904020340845573301400804312333104989475617508147333484053931541864511777165973603843634774467550113917995847481920214848190016106600335205967508097517141137172559512672641635763673431623635502277665774997424764996679745920600016838448315019267965049982508698276054362842602457173257518088794958492708868725837106695671445821506011643816967222518830692367149776463060122193522559287766302108138734037819686960600424949903817825451985676824019668708355683515608752072933218765888643284758525157398340130616056216818673428506947475374577054048957561425047999437565166887221794901200720633933200333961872217351951923171279599737706079842327659617667358603922364821843577158251312244379873657342948418442776093064013603384996061558956842687139849173463235752709177813964447329290107080155636181780789286456771397114138284295061483411474616757976169992645036755500701194185086000778468825561521829313044316166865257839344102996329692907824600465194352094202040841382301927122857701159947947032479803403482286677261597390390768882346386391927196327811902659450438706377776390933461512824649346107349516158457520393243664154038644188047885170293217057517618934934546234004730045886466511993085234480859663980568969659054747223268586865030737927559726732026154888125731467486393140419780379297179210333499704512050595528026869690133201153480966623462893660107071199845824032966735306070124679681757126284345021227969372562148454200508849299779646848735380152354796517360701044730716914768660766808528661370961634764115656111608790576391408619313241383386072345039710815196352632780453800019138757347158922863534052171332618753392090358982083179082466766267132133989344922669356105935010942154662624153141412218719467228982361514146741440216749348723085481483098000212597676788994906065944114470990562898413437245614694100015670963596072123985140560522325977695801522092610655070879375908418930610807595433268330384439413252790776420212205501657032506749557340708009308374709503402128209134206729237044959308561599869310249772712659145383006978876676976679437200748542836350864983924236521167236687301687164275851753745083377496645235414707330911500790622639587727424045347876533477514505980048813038955127395960968076294096168892849548481967695475786046963284070423912098341995001395630352200915972361847319764155254713326896910933700001956561825350514344910884375425799100922114455699583648412284191805033267321078829809764061771076403849449660528415586958676270386560042085565200218364896554270487564929049632455801659050037156135092488481002138269068757052064744175084008605681653499684093862080246852032843165225719844787947451065190807404959340710313475791537964310068749251505028449866213279626948606737462527038337227172537283576196064669748172173149848328428686401584671626180225951695653002450650710071091944001281704504444016079142882094408650278366473496826902790718409258727801957192504070335630459718506898523405029679159431350422353011840429227401755096224135939082970990809228844377700354957910816171490744774014273318477763526793176648045073096481796908057511117719217686441971474112732366158605071085492629764401854189496134622143433677213706954174639949026743852074331973924972210979183556578739199360043296191545629547334060844981340085196379451334323659619449645200037591462264740474633744939551284953736444685112335501737463603349650042762781587640822927894761446298621381617609839048839419386216056268035960385519242050009649360751123674189236801801829765762105017866731001012284528317562845668337689037487708891704081003992229762888947392401201364824764578832170224836511589514307264175892577105051355518100754071530883363990820732783069379329695878899839297531252746267495379311765700638138779866027021883343455658103260109130081745068945580460983725396894130681129297000905338871555688323465673938113946561490655013287719821139313786937264978033132036015869932207372359370187815738103015085817818363519213112779104114018055865558316511111600432319573443638445305675766831862219015524472102515261707629288391581346605713881340323157013047976002874001700666383030571195820356583328934310041481807461768336143394278134345698066346343344369007521539062116871581312106089138720129023104406432175239194198662429727839821392212733839654747870604790170472328231124477332390164662887935492862817731291634154300480255730319889363594512299810033348283820655205289202043323736841244895594022668650985643835251863003792439123871692719720767627627381698258015413695379760743176281183535728475344716966375867698245142120608476635747008245937179098474116850911595008940681952402978608172502124570290452322517782323569443332094550541929489579174402412987131838302996303039495106273579512384456826912070436035297047571561934591289826053393187649037469635303120000105927942234516901797000724530404818406761933243823020612728167927976026358370715541451372091005941204891542129825905222102041277178914884735817235218614991881977788706020240454762736662979233493886675287739118632256112287883431123200572579809210065831674713522534540877024795640578679110452408113304469071762457032183800105958513357230391418840217280385909342368226403737351196008223550716822339223851509943540895541479085036721418379941513229428649698048699085957068841111635255759845978354947431067739800866865025431029719177415873108281285992927223299257719594355964174530777611877998473963650470360231227936376475098215044666736356950867921709991012351236782786708048785602447422213035017649118626357927522694258612112681437823742495258778774283818409455224343138957665615888394798209240994486607375148303972024372675498163052039919030420128997494294163440417162090299587277690938715337639397298908900723773366809033886795284959846625403064927831797872797669734492453554653322135002253000147842376482420782551738716460906337860533088845517994150417203249827248203047071894778786301572981280493341491523616248098397186207366892542898038589227902292995254180434733957471247550418914602976743852527776570865886473177540889696814498090245029601200987174533083614539657241313104574565661289301428006875874242904510638600626578514537898073963040064355398033659418867771468118452541229369342341928545660454319310699779666595055907781469327863433151394422258147405545711550931891655085391689258066530802848838760450889664519472895813188128415494459153396135408095147104287926017056971795971510790832027010029417077187322941030853562728313165493171238646191844473098773949319599371426294469404350632225747314582868271453334042992779539092901775605773591741913997152232976225906830257594603960205120490387155155524193247970972862559091982405882066033306885236491310792558584785161835472127469955555202788819758691441185376613727803438282458472767790872044495089173864780732021483051059005372927829907360198660649831942708760734226225850892787737795096785130755211631436967649502988186142255909294580771877879602522978979394996340847862786054378346831057793899241221463123307251116447944581095403285427284640192570482107819606059026353497080143081753802309006559355765372056838748651394784087368561971884092591108436461100086513192917383235086125457231868094142158842329675816378111721039131039491063301701862457214251412833351970293467718008907971119689099521178773273724722629882672332384125381117439108807413403315485925513119383380438293631523296934452945673101841588352184398641036743186376936512091509159140429318229574418528237172705717445393065414798444720232670273046999286675785588351242407448817458982312297252049268326320830483036978518399456629078975849181064696602076081620618822070803493331831050007538018468227695277219834578900176883158167366018785904981324712420651197870859462300997180273714399264172197459841661226992869776400143258179831662956767530196370096612560523545740494616422064697368424977711426067064945757493388476035312393971687496724282625380691734355377809979464640708448081333285996077076344337233169653177295064040357868461268205276674396825764707186785573661625481951453360837767738426103401060098783034551960360089994002252151047958494257950141667447415805932479602131089060805309679506078962001806792707199709811889283605105014763444163126937851341110065907478277542250637932063420553423542642250772251025412025842650307721039139170954580203765900990337858456294434821397092108617554247699233408006035769584134195991122884822081742510248271037567620988580207452030742116363569804045248257948255133329245993608533624867966415416773776572261989577132836308097961906676136624035995765665601744847464993588189418013930008481304648894580754135081655655364757195505501641264475227722255296341518113213688869503172929726082455704767780243899353215017213222423529489472175476746889087065603691104487595047618012170721904667965306629175827670333516171060759967282053373583206315191065236395415465948833425019821395623312007190366175935891482763607218191062383867186358208387764450689978488012991785397426714749126188983465909126099601646535227317765108681412374347250104581101518538310686169869856855082707318839289232886499941358879307527491762158031736544346399183759310568928177303918872350689534369938728469434237034695787956332956873767024624270887242083961015277225253233818483040751131731977555009637690160309085425363684850858822124977139918180738980832509336969250230874005494743456515920155692529796770992937921214371986481448610204033643456551644757820311822685103676188778639274360471780276767885236773511262046380059483686364236657845600697238165203730905758551000339401905197822652951098536588328349583374334812140985662472621313234690261008254738154125111332087018760963800278609764349449131666810610797984425265700591555589689982646598396781725703514822319007024825899875954711641466448271783877176158546658375743934852341063779878539640182543945461645207089927728591768939128103304635392510850445211910837022009916573084696801555881954482798851280287308114840673245191275694115763213429686461717868604670046035887064891209466139722950170410838434491882384412615523465312988080756664390762348203879410919941196827424476691917033241796948005099639165913474721929627133470191681541078998065886816498404830978667720505521525560417195372802814622416353408433457946583475898532795197816384909990078417533299009040808312211774659499079280992048375870909196995657797451053015664097569678299706327410698653648187879781663126128284008015375487277951485370508387321934529086938891982500096374065243972997964328126266992535673157570999176561738275596162546681756598637501969271599567355085237939063298804334467217295459795562265278346228346288135980659188296739517856533669055865559935302115830049463508114747259515186984019642972478710625274750330280856965262568694221740002344206945572218857490361815337819241085737951183948989045255101475925732910753953325524018730648311454060722238147568933753216052322158858221109663653337242645433863389016993454631507410282319262744813991421713606730389701253823277065859899475107780701524495741724140404629039250207574838054741543222697606594220901382012285188629134138475525428897299084708043329842759633692444221354852501555409315974454124287967027139150951667498602427449791302225914919469496862956807995656391717355314134135190062344453112463313972437404593680220605109110224662150322038382112122261668823287775198169757550041026742204850567338849351684757882384812437325738083367032526946840058234613930815517914176933556370303830840753918179327124605793985438496118638013394752888599596058339717975792560414150235632210764935549271992651331900832755982452141738581778801391885312763026300271106273248875389896690063924574527341339359469541801732845354197996945165275645218078017805967188479348536205342242373501127172785522864998099822111389069037486364862641544696826163070563472375362426501850283049690343383926643560689800824544156065501443732432828528292125506702655865550641612816811016016112082227731302956095355738839838418485804775056984981738539576462455358149263230172239641582747187280834011896456979274042066166191787004795558034091896571344400306696752175353554862089613203757353698116783384293567967726332787455533042311479252945358896623110692956906436195027387532384025460028683115118235182453592425286799723687757314267242756124016819756024228027201549673012823832272241840423593231471619329343115534383131897163158345078026363658940326211134129730388865410356699728574092150142529923587797596083241639892092271203059045115334622303743637409130027027506840580825303893650869135354507889732369458922369099882924914093436609408453831835506626890287239778532326798093834761767937400860450266750909469460688014461351567479979867837538828534588817054052690678122910303513874590637910921227803825899360149771520790272050656322531646670098449569507690509923050794980197583790293895848199698585810650021393075166241955926573742894643714096526255909411918866164902082847681953633270644545562329460695955945407884077610711776611543443522626444161558658761294920257897898219082185797793983554672983692188167448124261749624236946549718661769555140096060637178019723314476446466710622710667094525456086989121727626501549573375393800178945331963643301753468310156045946064796340065279491676347814676376780812166357651627753123456109400801680927117838090351220199119181955645611539359315582575633980527216065343609719953066796699659463262102814004193962384625021313075285717743566681273150800351406858360280122976459299183669876748989894347397326180477220500489796748382894427459824853217899597616335552491409529542427617323041088115079744057556546817698177978554295963672657056519293845915398688715794448073162662330545746494670683424699490467916959355572439772936803619663894873163485081405909317389775858686108657304528038168772473824759338415514697955485274130569976716155066050929263815212488008969348187205320654214408691453136818143515874685654262765068409966588132231627397492580378211241530420005302509497196141088031267803155944769468080436391108690889848176834016454310994499007413961111569655667712666061194816450827337873175922887708968824513683966196044312581068225580746113551984003866799068299057209939359077349981629254636709894958163886569618801115267277510647613298808172204778602901348886467444202971398693117839295866835323664861683516838631315586619198040530332524268488471501330289803406460959670187330497371669377823968656715997790356267757172669007966582603353886703407723015818118114165554847231549775310756778249237559110779312404341591570547825514243415227929219093248181097061364113953860901030817763969482043222117179689395825868095006937061382242149132592640023724960869492705873840256862253818993734302253626249418845043045256009670828435097736782969248595089222308851935665342355362950217161006441513693932979808629160500896789195738955844629719102601154042144520099891593737043935171268006477412178379011021796941966883460993603802142420924157168590768814676499901112382361518907242515133531897592582051548982097113213586780657023230545498840455869847601238285065894369093335271521093033047674379188545406301752567704374042981668966410173889859417218721388519222608652730829296851693416973161778857479705545263805376513551063307384249045238900385971392564133140605897410030702718090211450026544435491440415453538902029223147294561006177405170980424307499037740133860747639884165978128494960769960773919843427825501585010231087995742346812720674791187552656443501878037176357137441930680709306120423904674151631914145553781950580535303034046310268952458278652570163714698632391802735958475726307215179720576245506261053452900976427343131871619704364950710963380620250482928239538991775857925841746809568490302948922239580423394388448593819517438850502221156483930616078501843829898818983787521692178440504700364190069583277422213548622481427690104331538271090297635350149851222881173927418578507369371317124022440274723230112251103027059212246201670846020601002108701035784732242497518292687784632415982608552994670791906428358987559807311665209660563720823594532674162100646983738459924048243174245160961340751373239828264881459545542970312756051783002081436932519062383774585949469354126711842106311439000096521571109541905158331867306708172842036273771500233318455617865076534427674959023943599742408660778524746771775017832360226293529068546504432814247190548892007102124609133438169505480620596456045663639096193766331857386262641662574691015246287032427333089061540243654310591880792771330107707580459780467513134382496638704755401703404710519253409496326514484943622299525286634067259859653600344657823395105446328807073213773670750917313110482492556176064533389246532878677610825725282897687726719602438815156149333281680984458981077522192676770646572220685099430380499963337161004977616940394065936553946682674571518200398372486591919178791342532829600045066451820094052237782409814702860357004393304305271543218717469654218530344677225640737258408833165793158976546047234962807650679262054699599384622792106214766985250709237746952525621001304657418639455533285262651732222266621348729223032800576147947307767667335850755866175165248455057863302515211502905066095748630487090020235095119524785566760128099619889822309729100133452818234839245971693789602820065977922054794400021653093132263116551474425816084403575778002082340113857827127526292454028729090451832748736783414567308920687686789462901252210803154084736265203755066809714998998515640474425262867878925147189071739137778663846146171535079920604864242424492808499323752570241245084301839306568965901507884425496954118272509087661768068171142436053570156646388565429821187849185122454483403978080443419515523964741180493866619711805843725681556384424332866585178812261433143605263285700599293101432224379260017670394820383136473623235251840343084343795290947101851287880383474371217717921765220443023213089125136621708137260636644783048473747399064350040057464948362405791363844962792238487009991249652342673521382400138506913389349474588704232514759318278319018015674356921913088515079059010003771428845415631493741174971550358659013981036784994023528877636995230046583558244627309786951896424199030741490415264737483846976876152369338989216200638410097296010809611761227191893173053007401322681758486146535177158221794432661397555427379374361995717866421634080580029078776889627986407284325778978163598224384046259351272588430671394280666938226701537566150709109226734230067191555863559266242220382034612192130854794971841607436201177713999002515549217029637578189683411614136712367206933359555140240447743524500152677614723029313152556442740746154110517379795400376291840631420608316495030024534161271399934405264211039835913382529856771797630324699882162583952035540995583908338735905511999031097290209820056936423569804008921026854573328617704922871812627813168164294644273035227391325183847107899686955947144746887337553802026977534080692312181746960621173926206239888771382966097666920689810590408146024586230506676442691698549774155000696479304741925107834910796557778656056121756808002858674177020563574583842017957942455205752435741958736851620562976389066196616444189086595332274903324147999135597126049194926900908908723713687545639766782206292468538719248106721186554574744203011530287571151092744156707645640814135023483013550878772666947907551654490377431376166535434304761795610393577072421813826141801011529765279614488867217286074525422470726307408549115624444746506148031448329540367508790566891418160896319038653316719181958620008392783427723031808107206924941898751106048834807424608011399584687677670806776073501043381801911823882906894518612452871406148361769017430414441806679680827691948592382371379458848747649909489155583189509070200071143032269022353696582828300951233713080419546588710223216606064748780035558313236367713961376050830339752781670347740798864315758284206189193452762057630282066961427186005009208858645716080566189473572753351268541290458704599527241551182691755146063729993982383699471724834858937042801554894995307869830094147051994075920707694430772889283952456159219195163422698760716030841451223136267247686090509038716812383078163711010148332553160314057072362543163829738341644188768815532401225803382984608743643770783003074960619992377277792066823630893984346111400198874747103974641749308187751055892307411016620912186822088983161828852314180088636353122086051749302897268599965948678975819387810231549768319101214332738110758401533532144642417744932684115919621746842247494181991985618045175059827480228624059375173173719433375592248264918737294797009435466175669034799294011330694837672248604409909702748013208376656674886721902593840391228256069436300541665199455361514718883401641930326178790516124558526627711654622707477038151549210059798286490049003568401109257287896269117097621997421925992884390092916160195716105680064263477013667791111513346757326235545727903387453746263949999287081407285182419844189164896092114658203270823748483802221013048423607606596279735956652043414110824037900860721826579287409959550323457253961454096274998643863630537969154851221378153650871265807635183909910208103598452714242920790104735985738946523767529996008743377082161771321977062361541683154475505111171861228762152894262633431962071653493228305724996898021568534996871957829227119908002815668358518042125000450366184843409271901446403576154872794026861902064582322529282000221357175097392323464682654519073522025366313659689896493061159205249002929343745978337820798578334515667886589320907530245583998373477476239221434725783452631397347527080973118372600841371244999919658248025881154466903663366644717191093107591273749823603411920148156375125189065938173701605468149504243844199303589407051781868670567824035860559723276631997270579427652274297506019172915011804027402649211050626421650239114278608419057001945185518049274167012207412075499150126723650912443313985897371544830328955744870389309616584057257135075171877154713297376977768735051483404250302302986059987329663511610263364952122843597624578193512813932979062177602355286091247180623024453237319046363619858683830650803711409703878320342552822123822588782885428954927598267626248137939975040503250927664810227612063398178841789644484544878528978571107343989658195612020486963560995506608639003850133129072754787428160825824112698651498129224849827326237767312995408376194912916013452985536277232438714857967325164753850508789156009686358249723685169449645037010118793197590361280714256687298819261984204224534082447590078068585713663758238729421026471272923411193120636873695514040375090955688559940489455341227506711376339790603315900070091841831286432599408733506522812395995035877786375328238227969492019732831668887195080173916380786839089307641427762420279509128514487470607600874467408801722504758609161574472593872160063977001688233866923132831628325670831078235266944406331271020881886471477241706862091546052377135471949308845896479674224761237106837441607671130705018810740690588371068108885649388531972048967546499618871719980660893818789724634450911905900131433280330992216016923517733694429825489323635610675220939207772463299162419480807245557445618553434244348703297979449812141205936134621404844618250495580971528896913405404536081498774340940137065512119857849372577620867332786084062376890301720774589970783108907316599366625914522886539001344788099003184663135605208251472483084048327580954876063636284027955466726194679298118857485456991182671579713754809023478608034640389437224490761560123024886749639236769393618679236223731166796661510915329481192693402173455221165824046787297421881046367408076130462617326814840779353381530323588660866348607440843684776183668462990395799205925009728593107734925533351371108179207616490834731365961285584009512081924211941391467080760059239285465146492537353688582934644831597708369178706062448991213995064520478860037032282007132643935277685908505176397586307290241798897666612822993881196217155933231262315974993612048573563187677214958181749418297263981661562561369784373992779057910476711080758350670473508042066732789346011286286055976128426381188230876841116488463992783159824224596666610180096048360755982832097757001136001061184746272230636790007574548738851702431291152699108362924811039268606471414420204500933635915477776638140085711781268816878630946338594588575165580224690852374730012778626725879030400234727124835999927998182370278641629450330842339438912882490378475309067007075974292815126891949251421206954898399275217453227774173274266394432874589464183200231899866439569848318350946366729142948499128080532396668533923541506948028551842514052160696082175701795342976651336446178592753556748719547281752032211586127140374790237342028468843420827498625652517967589640545379515113555425420531746238733357649452597911438426501416912622947232446825282096504046789109154437380916065625916512976857462366987602116732480644153958473965548298462705161338228488253932097360874921814452781867458557514922985447242623614979385616356537450512841832135193949055135359515000095754022528421153806894498171348255143502639822178281734417084977357263051596316585131932469420174929553221876744336851400959378941090037955516301561582984616127143508100071787408959506375941470111394190816171158544020114444112603975633648397674208218703397403316054297348236034755705955884782904760913303333548791790595579595713319547487841816803864012203105849375611609608440696399339061006185318283470638744018065778637647287364014527306551696707049187061691237075893633278029133994006724107768395696283316341770542518400965372153136845817493115437075660325118744935359197907463077031392646950461270410847911858391146237012857564418194494764852009393926985902577126553832733107552985227561691270845668630888949696889239419863875954981292997542171986397921445477453968015934901682956011963049259882828165638469509136672047018747627803945462627833239655824039569186002655790754026672806587184199937795122549103703539588858789257280940366813902668529874025540041828387799432793195568774619913254614621624682284256799005849805078441618810135070853586398520972025114432799400630162702922754127494636884204902531462833319274315285307382278780302984765573920490910211265873992940848289815786531335074436335171549242436192274977371501682073763560493781032147452278302991134820373540854482442731282515296670756674698953799422870649247076647768626365607785793335892589179568725537139502504000370577807639150931845728470852480178311812064235657577661355978805583821700172911175921624385984291812825906782282758748263817238976273140767900751728129149229089636910310581307526574885423174080578393169851459698322233640047606396471742044103275304609002917123506234986671379768421228297958801700878406456505639419754050444731707025674058743573388284248522647598236110113500565488656826874861612917982500105449444231664678008484023820137415237809172864498027637703134914517566934203891165358045686963441801639970838676976057001431654823461656724930350575266483156489921761597925529651383951060122644529414032122362141530837836064010439605613905464589362650617537371957591851496518038934258662823351981258812068766630160156168971158162251002526622958000118033784825369204441508575508056000991913124044000825221534358048795072206282767373695267408349088820370165027289118169111167185699233448293215862002570555682083096859728641758254662256441565228691852109979313457391940020161634088703216319562507469763465724543474824065720817078094884774277311962655848974411713923362339600444720846619530908618410816707762244163135459034582423486953874054414758485700968569115580076099157079866684799435757351853500511553588222631298979823557418918131115905900867947281088736871038177390868759096682936925363738792708165083331638347912992068039458996472323785394668758412585571121241942242899000009612111164977160021410036639797961457072199457810523558637519925478578166627063978415396717621225838238289213374798765579851192584760602133045240217746974696818002381400734724065422176210071110268169076303143061025651587254961967305288409758888603183351577624269800638371963248253984338215633014756947909698787540946203498824879922618773310307775080831176721239392887163065731092761841809570879101145987151218983675052338215019020333665506785074250286981690999809034046914853835126035597202956394846322930627450267146221530740425457251891761790239142661912805736221657293773592661229233497335823618064994185705292054630388040676830190331762675004535824903031796161946787048869768832086667626011170341949150236126535651443774774804286141501418630336334696427604514676013120536501389991918125959780971518331814745240397437963235855368187444796900290395790802008044359578399114977446841061649468613656742567824126833010722155289030660744498383930322795051590294608462363805907296202012719515823299655465648159594776212623887291686560736738101898712049816322287951170289679321129778926895207182601600262934911312088919544410264438423468989066925541629942201862544772799283543106017245066317315221603747819242695101641799612338156913065845594847454214415019457534845039980531034174527143938597784159836024071650393737552206155573757430310289683192456435014807268937179778893828285955975865395449228810604431940417202175475994646318043768409717367877670267815392682594826959987774536343029169720025663721293692447979119631994686932484384159169997985646334697519083716527195827616661784417414705865306132788964995757534358220130096947708016267899973725399853759738569285168809806377178597488711993198602097575972248173561202838550040869671955997694411241788486923547365547959012589275962679852481264594347365332941231819063565631464621467848342195432410234019224304388360673694617726524388824888076990239427650016533866974137325575705896082859616721766326471152677761486833038576093740514919288662864299931000345685989301526382327003064585115558800491524025026467866545340307344628747799790020341030293703952799838192608248444220829204514522210096974819065567557432003373273673343577620930541202603311397902408109637886716735116457719099423144646301570892183347603919178171502964595521269371579371019157541959167978920955408028259017301815149846713083609876593226749824033386565197751471031225834893227192602080258588200314914553325799349719516157410921338029945667407078710073206368514354648023028505125528650319765952077568691897223623404686353196339122523496837735620786136698212402731722232007953838309648309564513715397369611911314752665351696340301051754161275034939338360351896960811191568480722630883214867696876044343887754150252004017181322271301286165770033637935533446341252864292902486380435757077224010569926498987393553118723643604217501855616653704772523407888959608247951133787364400131047564092958463448220092712751281556309017040278167147073182136107830711308717174832507413182631755871928891298858021109517109349545087400705200448596457632161410321561018611651208194116736017922443679460978470329320377953450649137193616632106877448611193537293921711901438685268765139543072548814904558254142869424883321752247576899533863036056548303831143047432236050414021550512064552145668904647567780710825622771816603515011013882632950088324948194446535229476463857016939795385642536875022731711838840431381754715270321061342710712860953105264990799255258810237987608468589374130818222488586988191340795364935338272120919591898905980764212289875346043746434147962992085157407311617925360822116764772025078858486562417982804507153504906847418179841663389525550872599707242007707207882384227068032646638337833493316047005210074922311999129574426666939760445068660172634547574206799126288383660726985746249901752094274107200823197289011933802085669721818769168717956300811768484367463963070401143447249525825544219832151672490343855966115580203848438335796869876435220770719732739546970037565855076028691997426382350645654866825927935054732098874105188964906782732146472694450056444961708625556459459413344490826620589782251824458102028478211943972272016110614509402961037900929025564669663669725197872711669527885338689236046368743430412768707187951838613573792671348415775854845946886618168207750194637753553517293438415248252078080946875806644915689093656797417325260720588023631037008052732146042224419626528157151677538805249201740015965945778348551582977047833997484578067020176929826928292430474983771292909312919413877956278530834266436365882872349798309421135344559567044390776996462185096178941454720267198312134204881671675124057316218353061074589065504665703893973187620492956863927715787407858364641665751063654803959444244301536347153076869048331157055636081139370476063160206724737512817583859380110170863514793129837417063955798897869581353711675775161119587679001347380390869373271560674241625652324865102872440995463188023327085025795628942536929545833209395967656011439927667854496733381111653425212760376200282800266270108696397107091648718159783368228331725080221927222472862167090822387235200126645225169634348069626032327777295815232364314116281766179720660714782507986658888043764484310671334478432429778155565641916672560073533266242343500188178940615886509258528367930755412201991603918514273634235480045494359848249481701842840416284777432803370255601588329150171102643846115931717230415147960153702783345791684892648420640205573418902275542409935327594055687866044215589069891973266765928196630066385965628554430162734324910902319999831644275086555914767536933473628053153546116040630867426959175574981470689801539197606761133900267084215791542911135113580120957311919242473822899048045206196548749977629541629066101877841625732410175667457062836178597378249988166646926081110242894671942572692612590690160533236068174363251322714240690739106007554834563462024305798530408031233622571641131685334072206541933498060595092984153627555356928450800968327500267766233427739012021311762142199990385741215366844888457634340776345385730260828018502511224876913893058278579529127555812269859874556413964363554689688123598607090798348505614237306745148732038877377040705955478765676101335719610478528823079685887811954738522925818582241317864702521675512403225856207237339837321831740206464942680369922449544619304959705880332694082626351204375091932892621411580541564966636878225543194278198260171190417353230504852298928137709523577333820891135873600923880039733887414889021631482802311097987479338864389659444925314132906561486522229067770638568099265273343517393384205923047394626175960549253916958200748072807722282050799936768579604918634336904583472152520415612541249524183651710860660935785717446693150093609160431179115055293481686992444809399940519344393793169307411818871917102013291694937786061813721682218197774131528307934148999372463377920378303103336120814457064736641823871447162873039639526772668321108332191900463469726090081944144136020371735137498503251998158956634663644286246183785938139220912054835496607167134138968409369299105863623931515160977858924209280529762168651562658644627365493937879906535084375026674076236017493422363391495740257952543149210359585036931092372901811880977249059641985748406512705904195336364116753478852045055675920131785663839754286576454585145560388374183937482613749640956097617367702252269469781991851994323296725384452144382582048919195601253572710466118893605346505950543742938616305754416714785582635919139856940696189089307390020693999381371564701264211845005496409802328715568051877514247942860893376486620239196579276785969483006130381183893155339563817959640461272077731635391835503338207926958795429002373036856683401847519955565575561630425431311697665487795768879884266417948268380865862385459039728600506156639608563500173015421732670851301626812678686919022357839497111157165636472366017338422223809399221809045952761139920374155778528878194673411723012598211009088220830271091267273178086042548828776390420253239477293555762701091649628576612447286084684358861904869924179929819699513648305475170990735515292914597255755490456231335561486444045049059818947835804129681914860204958970558328301488701266680439985004110758943564795607557400483198621666886184958553161166428842070606458628500784766595562746329109682327711736930787936601555564529563016200536617038151935975794000950140100175082736187563547124442428420121571046630141452705863949372099033188754006743205868000299241458880209963412392867873930058328666349187709044355694545856181818425150854978910839739012288750301993747943954137363415813582096416148638991167158328528197824153566996653460318692096776191980970287961342696133917044411646582585573843763551723010832755852610764532257504414615949896405226311408603551695764074703708383978953218971263925085337173863210353472733559468117649409459055994896839255118093966441963905831513057160056814385665587456994431880684874722323930450985567446348599593993218671740897562582024210923155108577693359615574687217817950888000516113048915002713394193494020620647463993694781883638959425126488466876937550058718479397754606949043735131167280326882387680568171772270640404874582788848237735289751930425882163620718991328544290793743580707244316573760283632775493882559767725137033552929586792801967724181537658600426825606230566599082076056537505550555639749046608144076178898861552143427237792031826830434713052930422351638146812877768243161846230627800806421635712885847847326951048387706452843794747009070980848462725039754248813447195541069841170868795617862023055821456684785506154709799083023831248891100231358008174171830451744224755676100421382731541458283355680814109697077688284528543337866340326605483577065697881299844742743709019259968493569848585288305066261711725828277977380968062521949546904181415667808927499240742095841045857263246343474568973754657309416391399480934912065739558855029597783946316444650963518107614030668716381659787999104088802324065599149532346184094096329493786360652306963584060906306561934833240880497719113962268871823895657226814444929234165510640595402788080050181583344313385704494697453809998966620020966767247572397915643888268689070131212238641214284200589177634774658272512501833967361509186139855226819730762220065550544359911219671781357202617852455680771205154355558145464557230080665260252555175057030245154335336148469548532345072930437947569632979404726574575600937133419616517487301050404712911331291906739240221154183795439137238155306053780007624550985000272179351805722955503106707977207049031315036240102082680070215683309827764156228384115948395597457484177671027105728863911629480968659435831649528825892309944377996883519148733052925807009078925090052007678247004519118440096096056335204315579033939533094628819498572679564167208212960293906918726119681272390302802149624534778410410434506123455384181534702128565679488003629147723336302970575299096175342995171082193225864128231250540466963050036078395602118873063135476801619804677610489681484063661750220721813702022978500691262780836023289605622172184373634414418664131847527559620661906049125331019894176273092688028171188033295171295350619835130822892250088350939812737031101584462730360543408375310479746260879016128729451501327139313571170085813719924885727056317329390036381756777489133322651697757116520825793489695855472194725728275034188636335793180696024833876484457758019571523143034103479875070455046296349338075211248250287301524167644928500751776009330157670221483376245357110182285607658636272999516408780933189256371134806750331563095735064676323789510635796789343460197205041273633185743030647084897777567263341241129430272783581797266764459015694743998497217451220936555682814188851532596255492271536393226730908472805115434344105047727290064310387836950875443825844280976456372815700942939907478944622964389998489888765807376229667375953063850307890160317571737366925259661440168090413877075853655884663728063898228529994356868471377976768389993682641551813005527339106307313694697755589679456531804260080122869685865558976998262625260483671688024335655066005562194110562455133571705582812711844144396003239419134195990368672180893204849390254837644600604507392240138450459060226181171808830393735785833290411310657475444775433129349337248895675179584108304951385896486019131290843142318056360925140234431714109064746690175473378383511315393230951950796606038958907444586959185254570952683629476464995513934804282554900133425963221871603343864585190297200827067284703195024023200738609434174245873545980354069518441398415222638719843299452925182943479014848434100675389091168430750930243443605276560866993708601026137370611443940164064357598582558472060395912497250975391280397174320531746570070590994991580433996065075882758959788037574695083764649993155326846997301197047262698359225720354744577129610889857415351457453326647979941694624949230548719305701637742891542514525115158118542595721274041534949736370497040679047030311046643097677959089968831778605380992220774257181100324018413497594852631233714967813624858955724509358542303536703582922337232290572175093572643671075934802922871554399702604359416702358848658382981100830829436030061172785417296267629714817442203643084100884075923189704166873249897399857494673481323430916111809559007682709321249741546795581359826394815427849594740709855430549242194854853936756175125768741245132557039764593919005511949487070725162994223294662602414353248592124778498750357403699296068120042244596957734546876326449733015503476521419864811653331268813290249532544242569612248972236456288073553530486660829936813206945693469093281690964460366495266920452286572507448138727006433231825512716516464970291548770180611064683341241146592712106536313140153072661280800801233650087282251674515288722863681257575695796215459687908820869971305865473508485582189028947660335190659520070502519965239229543925964424701213086883381564051557843284940862376229356738124966294984214385091035804653008035637799894960704604810898585848342095358217010695052686870424833058927836188659080717384935488499782267027479359560531572745373816688640537245523638365087073432437776383252332709210453074903990447612231643820172272448313358132910716021004601761301463397783363995372750121230998514369566204181175256286471110812980877605422515775672206021122682290837904136625294728385276390401745304094835558752514913660969511408934558247497579268711904605454360033956679325841550884821485562835608541225423635416136160726871388137481926676911230779559590936340160058029367775042426811091304155544071480838859535871661891956234058465130935569525605722512348172416504439564419094970519730827294016936777878522312968236779159863819809909666590216896833693569322276690603167295766658505837025465255685830868071546838967466790590279496992420714278750654850899413693851712778379622722118734205577058872666480839501878215908152517662629091149466660963978752703439663259414533408261376497588583645741841349592978156618646511601491297684615238440881876409646845059918411989153048897544310911999766465840580799019154455808177808797541301608811496645715633540912798485505457393683929171005412988690938489442645407653266519875565689075151034548067870353338893503005605869160459658345804003929008811642813679738770957819491137607002455319706198464417444498781484625691513547718504388242226746704981040844076884614263978269650122630863781441251259708817591208308134978192373040937306269048855285040662648460818857419357749439374449210871622832733844232054244073606306776599188302051003965968888608921272416128483669001904811282771041276492344271958033355235821029470435709126474929139318397782082389568368039529778970179152448374886196085942060699951203806014247958950212587872438395311962473852903125024240149151543678113881587609196637298775640310162727134124857238147228935481628304118652781612450175926682678543288367413719033691437075629529157361875219365748133065517503165158283561684430758872400142383074946586288321643080046438389952661750617513100348204117885180739933072768876610738965625659269136812360242340502924260921536127765609422427192141101090646726432804892716287096685176897592281667831279276275767010523221172772183215931966364837871030131383210937403085238885416179011019238650266211972247928032080727558067991994094569131647615518906611956102416484823859593403966469647347172295619144357922418162763622695820760783965770750788134162903696971741326963642482210705792086784524867120651102919549951274491365379276445945256643429928963986649962520498342315514483696679052611693123720182820468626404589682179527431409925105797447230773946549455889350456282786090533302125606540261780070705640363171249505785676785289112245706381673419280383650412292482850156338962034522729241856588342622350004986441832390393212705713290441735318953923375369899884605045843799411256800807386460448563401354064750943356214441320151667089083461821408229401728673190845188397750329041979795240971502432827195461112410762122095658459960182744518958999879960062547860633025984488174339064263762132529580313587817283882377927427825434010299590837298125128537064578078832323732533487920855302556076083377278443107657284760762392074065362744125287711529952838242236967650610637221004847470311777085582640900065830762363674491284466949677408495150829474250232837899478326676884379207293016598958801381740214698809161946761565787206732263629698236545763050986830475978010981465125494981005702050037096657929621908490267545804600655383011981937849321452620413100962075269726093649207940989821654671744098736362859556055462225223283311888896301897140807530130458571887715801387124134925416907228924435430068017443935665180348908172453062454828147625764522612794558417623713967379096892900442682708949747395880099624681307567945964342092523989504803051763791279272467782884782936320401246233600385718971758307809800328451585586277651704581633217288117089047913569941883194866858395265990280541548851512971928439157538137092061647112678049596530008622649660683078342642908945853171908540548809648845945147012620706722702983243836874539271121903050705091884510328012148650678873743205124685291140061852783492849807058694109210096591035624907671254588282180986753865889941140962574933044075724020281658394876248675005391693613446528187642136181366332534811700021777805288972497056303287330174732690024194756139004210585395414995769964582448219140643176286684574342096274846012295788539305797365278051773882662977943882526064492483190445650951670503523135636076421782522042598112061929544120598019767602535551537810505786392305866029042139732523763511685154156920482281124952610530313952813686471515390587005392975482438499773841261978723796683982177206156895613811614210736389697461214006659716830705006503052927873471672170057831220314914681309552007765538111682709135570894838683970304428868758701017187594898898179881707799913124486502786013049048327473317976553046535562113495146059228723084008824979227983127720557455594994568247151347275991268860045015102680343314155081938119056098777012071490320774963849771279052622703900683348320551169200094930815246096927998456760950506025004621372909511371606918421232587776627297148458012112825290002355042971347954523206899271733884521499538045105037504921678879000520172553402157334918002807580665582408729695104741376936333533965523614400048587146819835602418056368641696646977686008447113128839369567269991008786603607486094759165841848660750934515047667270927385755773802539454512931650065351137900346788618347491582609517175501758233632644435484354858117605876583542323520786498927565523889420840165256854354432681029102498956656196404120422938751735629119100907925032282365899052225616098750920582105896871169145170359584166689386297549993302344504646037706567807833042607165959001664704786090851761851029873142530566651474594100503729432376492968197856761684555904817323909875131620830792071629290297417121990715319383576740832736202123226098230550987484381227869385239253746302099429540860723883529329572190836107732885990261968501876781593005869822395824145211856550958021823875875654349104721055945833126388338954073649134528415480232489829774915400007708483611480650494984073155446840013296515433079156994623709870629179781420145967381446813527577198936832061215707683204681261728278048642673373155944057797609605075369921771783467373161131234380380143598853706376002428156107654000605462279493686413069111550038021170279721496319377296659598967186332366066059749621382978051512469533876969156382039406232834767844709805137199341619966414390481291146211765155039967970186516356299122227490497578316017087126635711987311599302396629914508539448138141666323900134495760419679613023452806131997261500610630798417617580589251965309902982552759782185950070434213134712674272876031593104978356568633664173119108935575064890168331089253705317782448891051568791275357084587796816529389330539228139252469950057432390254986491783478876922852561312782837777774127025371321032392589817923492716528243323521134834658313279284307926827577262818469904044231428244132071497326308769523388335214944551292932108390973303371999141307204181102972351325240837800976826791168248311835043877345708578540122796821000479240213694886543507082411653416614496072973039678973212356108065339273603907024021312421358020417746594875179568676466145895243700464375978296493264553666632874749740524136956676804395736771388106954689785635740082877984191108360097899859739414930681192893086226306082932296582270419996871280129864702472106298845171966369526323894448892544478105158335053135420976264543270915292700221721401911124967731613728514150892648302276569795656436079251615632248630849935763902355960077326933796276105590818098425854687497786643662867063150190985003543266372107095481764979463746283156908332159439702028762169216334381064239882766716288160035453817283178683574965859383480585127493551723972809709734747306686581239455085315513035502406309673997103637836909374285964185961965485514340266882756926204607324356747436168871620836016132445995161033302857317669784041122094963705664756271897928373657984165150640977300999366160481003779900376179569617714514782939510460681991878435044649078652019131715612844541900351042806847198430645883459192650478957840751130268612126490665364410143836486545757151758268196513755082955878863677867499165387044136220639106812706319251543958831591077626788332126353950832129502650090467797942344416571349497731016071529238554545694591266881125703219497458754650582275000883943046343199414482794603500067758419615089527880944535278217749867705742458492806134822654815525681511947705124244568173201692422756653903756902179303080429296986453703738657141325210893991527793152344693996220427657279197030991578953538488045224148309195308855007592726198981075106822424964571992741180007010341930725384551664607419759030246564058159236328854842020180116579396573367474025065494321192609144452547712872497405378258737872607249081604835224443290539957910121224446754230347116194782183553007288048232996958324002112354686003207985502114543931325255614941810296199385563564684251771864305543414519120155105306609652203257138949347273359246006922631933988672450696457992668042201049365605237619964306477286256397606612568263997559747902887635971545861023202235692760803618143721575238400884237853724242090904432683486812466604877098001801991911576179186246015167521321570409324605598362457088598823881772699897246877313972637352836711081381255021904335751043708428126190176229384146445300350923499924298626792543082309141067730139462368145221417276625922889893214046004118330504643434240335967337955205622499631276359540715311533067227902271002145267336438357637013935231435254233941101322149134198538593231156521453509482127502765141502441223553386252450882936697550129477629000412197380951845144386730662285604146101632004673836645757897711998494011372851000385236768342244461106026591514706638564773963118091514593422471322174053349292999926161372746105344926223282508105177235588278144518765065241405676768086353268525846720151206769192734099109041030725284149070383998284717262684819674988146448428671781468298035238675092560217425678305124681515920630540805622073313012290839951761610640600284685560338885036988074564473134446689411412735517986707478231443447210731809621866529668607141086216226711279766158173040456465160289139993243190261667391200862038558787360119580043267102383101558364615219240987699370183652077057894416298529234563990635502668076207060604701297147633003759329687307194607522269982150852219844451770349154301161480695657285005923468322181085838534553342842794602500664144999107355142640811488734517472358305473231784394754955227443900403597042531552931098892868060065888655573646622703801759261741177557473022294376155928879493927992669364860455085503070914617919201597753535172536796387669699153528496129657139982481912912266423980853824793204915383926630625099611517526830057368694284928892976480108649510084221749500605171674710326362382330461368224556905824756171495230743854902956185669652711705602072201149440582892017810279754396423652888233357196513725154491756373871459619497231375271026597535128536418153053453763087311972947672274214127899816033999081748735731627862597775722165654717401446380525995445083740768654663011246661541479446207158456808844932242978724502299824755377376044561559880796486302763673458287205110540885167570317170963634915683664716597028340388041041862421698280041269274399553974392546584955679204942650806140245172015089691712088929438464061046677524964433414937096736115627439018067908235331569549669564448979799532232207678157903450786273566256906326445458958225524246080158344681555417580146992978322308641217334912626659332900310346093175442151948036967256314761884902034169242057679742878840966532667318353556949294076253932570928510017626269876262944660659349772769261848433923290204305624729456800651492904457930369867531078141889025418888324619738707022589023962992604191337285588011595838987225680111525960806526440169062361980639838486673103291631756126615168425020799162636230900966425768947052522400658924911230664230926124078546630896877816575159150022079926836148813254957531712294006373416829850596709838846417491147905874734872527473892743891673517664248885981549483816269505525768486770082366608830449670294154981289217866352843946454561522221927366606857382569442984994117247606049265444575714236812196956054315240594012425750147027421554957682340227894931805679135203629788072121802551312174305404172657408414386648860655981070920484924869946616063835168236252867562576779992646311964349737276887464532474092069836534760880398765627195650359420050278509288183393667517605455940575936887284971578386680785413595102006265095978133617882396635973920543037943239392759132827174905144330230274154874616640497893220415081867294544250991620785126701760244163353562755297768419995764322573440106761524175395293245243524238844101413829303092039886754719703729349215197063357204599880355867191460515909417397490901437159396306355765979766417236661016623825191485688154698178358905242516476135127059466201328174900509989191342944279824539512020350961289780382574558117805016084519466981748437990502327708372351793710266371024809558409112502704621960644065921794666343028930808858188983781391980662956451555933392901260087792572963604158402943832177404819193188895535799748571408656269714813147857676874169395545756328883035613730910113274512366605409323858039632955755040331947737829214305892584636360867606167998973116331119649164339857632235424803563580834540211941537145481847197803681231739828045676126315505639098219897243337730076384256508289967885151576379189353977737746046742096220452797997758732537000064137254210460127877742505531100546596681566345940226411140333873272418650644709755603595113709231679446665502307584302099037856129019216752183023265521880411852256583724770586512381984035490891191115575927684401909027610961366159766685254995569450885354700503548346012724515879853285600019139852969341248913540351811628926111699347700224636489135964965990850404506951232760683327434357936763036519819784443312790043760891412517539549505916933737244368824930376389987006491342666391097303471202083380896442548707083100083448134729903121774831064551652361810057932009159719050346799368654227443898612903730579433097629628734461440736999596662168046093976561848219162486246225819087392481628410916793449089772784025945971832684701548012529788845858157311262836529695122596992048197824711081708897661562556703127145642758167375812783343404239446763823495629713455578392878316076905706646290861930854451112332902250438266699131884709309667673611468158645708217555446638689943149151403321834074742535309550804312058320424532259829221449755502386215847830728256756728314684987365477568442169215046541055778643125173104367218824552753469854497136612104473530929165784498766810031322623007457576293537779806706754422867291526185037437699206497549894005370899835360857955530690028049587092251498081689752750895359654306183711780208033397754586274079276847011059674487646557361027362458886631084201682338213849675182488950987788476446556218416916291530098758880763291318793839851496870140066005180274081391578030966569453356345822978084827472828714868071693525342968376707107826533904386132113663919724416703765134358328451959895586530159712305425420416508398514693276564795811743204626844377641960491145468760866314896218661278193260120553383269179465515120097092270100711845996893272375831596517951111734856311123176503538858075845565838066908169441571293658900502280589125457114851562169095032489607768338024853606072571414449818599848120867269197449618151809462891529792627250236695787127683056659254480808054068708236061607990739628978292141693234804593931895694529305391004361323241904720037792761045313878407498462296707299284805894243380807970238150423814199733182887230307595700377867383122036896360937885766296888969262127443873840863666286467168980863320549858690703009324418525673908593135223999186481035498900378921263768131662582334039017949918270477543586748043091654066012590690312095445226378085760483443987557771253565694316066875147540414977809074912719445894131880379253323726585961597435988087533422474266434053421495177578661946416259824918506531444649854572709100299930622231963070625852271604518218189176916386745343689503842318425543524828513801186460913219380433906702634009567617927785838348869877036566821234242132970578155792396233954892524434889568981599664329462599472468412405935179166293958723115234592004451446684442025018380213830510898252745628969272056183514814023775224543054311306224361600074528427765535694095156652005464777635653576071791276671934967773732217119209323249096154106124027807071388052290436906510153296850954555634812891686740056639196894745403734717389138363218113583519964564059699656798244557215030595645667134788645118921947209838440455841755085291830702616587726273939787045372282370398160626061259548121706673065637126186211353112491640999281741237452825538872392902789515747951024671084516611951538991999126459490006697296754814170002712471017647696771568661979079207760413406330347987352342631939858283156576487134497135190360393299444837228169804537596783489547663440857441735708101866453927850454404892445067633154229179222162508266410020620413299275241624813773650283522263342005312053547575130686945304743615610728154446739200323427029571351634689625181693243634987769805385886403508620062042972695882687444400953121913637954071630623375266849521319834311054549737636390856308240083069891104469927789692404447745242676193723854048129377967816313421342015037080837211693794382738640166551335937065768270719893924303229181791308135515475569913915827353381644156951822342384346445693089358247394271748912193240395828920861767458545505552976028597660381563873414875330581821167644790156634280290573778338169543666657841009653854142668445322472244821724078769778681626572717080536584775435073678529179442138517938378523097581305383356849010292981070557791140703145640758083366852597735094145977488995683097791119223300712119873563464641891943896088764125606061154398772116208322913303333014560263823555411742752875620120032704910480497360279496982540908000056185786573340412528043394895525829880318010666132672606041022798671533840050056954721897415578473530297855509239484418890018182309602373226776292599429642561785144686905113275308584936311307214194788790046848383751778664448804668068685481116824960274203452530810231428067727206556355169207461439985354781716547781492406847555227436272765811902864955966475854212550184394825376644186125042013625905603890425399596417610057053842359041516910730443117709232962824280444745611824745086371151544737801414723556350033623208500604905069367913869240016681445527752986826136641788587938394829641882373857280937558750771124795104868288163430164194843839166161484637714412761378800548950834786171692108890667530639223499765624138148077393936019914232905634833937905805175367121811995890577354259199743155199552292574986877750322662290269484902185632752145151537598107037843665864665304401808150019201644286525424352109619681883997216059471370138248484489860854191101683966706617114330052260357090933258769546754694382566270801450845701828549286264370986339240733264964305346349251229225290974737908521863403905020817592027473739070411060592734973093430805382878769194964357814790989148012621417531514476282857122476801182254341028290456685225983146459756876407715688260711005694919125215151759513018852700818977385048751226037806785986962307940652486345129483914486651324074456943878760996524892856915229884141542776281824214766107911517165012516669455684566729194200911973719802074843426457936708775071844537087489644990122464401773823164194009757376712490248720109567905451304756309993148255250150508575695551696999133967651153000732190843148949853632400398445776981759007261088149514719835259994075042567685412537850109504827862901688105892017588655269302540959414937349074448803754235201523037095003975168146424066986848173436839218046210719981765435234512062861585610296896693551785790323842685520331129809486577778290402148702594728056902099889078061008129154714854707187204515492456881902406838556057729755087845899968738778915353131998472916060375366868367286536744016849949859749443174873734321125274921183045200440991452629502812282774283633161007665227254895908747364150605643345722419436208796066282981809650322280454088228728049484860722587317782488487740862669547938433989089314319011797105232139983152081592160615125957501816614950026423698672858217507343709261043168253597465388670751178856983856080381879174961445761918920693199248973831812254013195141957581610644829962473215717757720342659502135458172891975415225455567822699629310174144776275298794452188155918901256726153848001771317341400876366745468874898737365704133474249046284537840090530480360486442737756513814685017495962884180659339047543432405851457667207878949035606334228210490338730092443925384873527863683190935749695931609613085878889983279834772876548826355632388301476581468510193136429413336968373487469982257265974196209128671605659957266489124823837195997523116437640328572705068906965179317678541640877295108323022125427634190976681650674588007301000378641152131143049148141475558019381272980670475524596297598406811490149134243964547387226687112787376015730476012077531359865957887950760617049674080730910573239450733082485084777316310751322382555244912317114152759975917445025477764807132964630446734167586035562066826184326304732824615823030892069268279357888308249005052205862067718453786199470977874443485798802136728563165120939338065088527983033620107222158440520798949559924135453185331141898136027116039718832257055823341884058815489562058895785817934024248919214721984224518844288983675276240897665839091724557370265272828855656445119932655395987515183457793438737481036614206826889566650152536212326985570874352673129714886451832954608560773744659246143270854708324535484052177363672798487097461379410804022790750410990297047768541177000247301857992118704990573122220847235336034164838286163125519241088765827619996196818076685320439913593094959831972311590508344043028750758644357371283769921406105992658256576811739255536584719884815980183356947188371714112995478449205331301151827489751575929647403198148640780666967178134807228141421305943082772656602716953603601892762530130088003060072896703872268659638405965142933135590038172344588893991479805713689774497322770373055006801587923133258528318172714343020323747870590774788204312365054644959411016079177166814704464786506395490340700877133253709870522255584560381749933808027277998188345081995631402128967868923458237038753766424738303966315637594008835319741860864854677670274044715262370529199897968923745396803158566400144617266565943132899268665043924596852214983927873499802618813690096807519351917256026247400762143258848823878722355763657504878646475159831153186539766570841460282846939406431098856128516402328707946108592302540423837238909672196072127246594249373163091424309921340697105854708643875188604543219382665781668030040116575124609820260993138149532264192929283791620819055454116218354941384061835253838464273212479379883890033811159147032713727824652079067543898614622011590710075424436002272786908680590778829839283574250131273733316937906366680267796783002468447303473032526469422300960762603575653471298154542452579106351147259384707986866824622494856384222612742391968317005254608136379469198046349720506761236818381833707788259961537883050839489183058417041377475131208796193462347322992792547504600856467915166678765162640087153338039223070769697628509421861500714939819561258013869865161509567316119516699320523763356497232719051163447955340565214929226188346777909274986655002045634085553060769265132290029764671748382407303094485571690719725059794882069292158195098325391417318750842181400464826716257671882385795466864057717152855563014816660828087135460284220383625477415123679126549071401763248697339553729209172411971993448009420491558258936167659343990356635953012655670915637001284512260870765620467184085954526027420529640464720470757233832484908328883478161561379132609461909649972125223184306507319993198793222042046559650992491627266246836210104838973082205068885372247290619003233099531278086197019830191216038678510046426400012329224210426666599977896701967171192203244080964317773104725968955343002283371846097388884208848828887997271535155192422930594870625507207466301404643671143244279825901383168235297958388166252611664445606835104177106396041796037318983076444915327840008213149673038433885998715027348741236954546260700680239208865080889988028387544353038137057959474077108637148359597869481316744863090419360269205234721021480629158871775389226854248291321072770630538357882448124534924929313849719724099104951336258300234301474679589703240627788371442161087312444132499567718065466432510951015565602633367158477076073548346124929637421141566606426656637960891143106141642775316422528131774303141288017940885400484210054354289680122658522297914963566626838745136661491018704792660321730730064699036606426005189638624028028748713345002923187208256057076328372724214771252041410463095096007662085162755909469140473941839521579541139898919855557589506914820863391670160267109421515175561729331970607818086111712011356164675389205230506969774786432216524359518989766910553460195802511930113695454071714520225436005629989200303083227620804654295327649869771489486004383701285977757905696689991641668567311107149924154565477883034275525832166457823873508517597212294815130288356919048125474258968389525965354198668145856017580377757873847446054412499878265156000793409336957289480627581905663907961520990987214337550611683593219878154221368428693428223874833902991520273795322601215301723971501722259818324523720876209210987742204014147640574366207820633118076793115129318175706852495946774457856365766365875572580493966038274894516928338586919086011838196401515746428581198174624958008419516559488100950875641438645143141638868367215422829357842858931846017640790518176493403031366438308742892002577357776463226525703540050952501171606400920619085683111033051116113178025545649831398833897204195512521925503595614186824981929906244242869239146714818809088121068342999518157730117530060210344044490319729213379610097568378948177635655941761081671154738939418354580517351702599644835732901169551245044232632014710501001619059337968881547350851220031005844069299964728177813796664932797552231487879179438317949895361031442695594228099008919526620419435852772942834416549275809111570305958106237338355151053708263434042892786936416939965835563659128161496424381739543619080778391066619233513141174584854861411840049484039253488806382312068021299504839145049616829253864730885357383425311525111319511274749675016350497079111674014050929524072109173871795659843425109522198216114127619983238796282248915074219087810084478084478021271248578690819801384170231496202267734788052092332851356016306266360806862063594259899935831139212007962813869836103623791321558279124160946062811873169068624537812764089132218151769124036312363993127842994847002772090663313948018358696913464852433698734059726798189180522716094956125551150732822348343377703676383700103130223000576630194765883418629446987316227108443810077858021959647426806163277747144046317711840364081543447381526942612991308955766233705629263538835371637746675824897190677972485020401877166834304796705586475754419745354453275183480323573377075511732748826857294898680991448303859057692467230512879828177549880659120861744776408340988035434225486132654146858356347630973584179994980576321651020439951747504296939091935913888016279188443812403805525117039006840514533028856513735896675841736451483618082655900601009188328298408650015637764962941387300703456048907250682123935295387828639109856516587716301214718983094930749642552948689963639447280477423692354751527862402110247380913952007834529346825005038086369850331326955174844597538667590881552090274320440454867433142546033050348191705637707008514787462058857611014549669828095843163862656090368443851956878255601660783821797556210550867433517001758310892916746354607590036809950423333967504915423953898186693901185931329449112594759715378014981606026707252432858935962672455564340794295444051777306871521817237932180026088393752128077192489694178629367601873882520710568933853954683790489947078658902956018644989833241075943752524195572638529186730884127182306535820991823152426389221619933425943873783191002542308281375479845585741667097255225477409799957984008454235861345215245146868370347625979258428895188169267525955141672349930264471530359884922029880786720688684423399690994125763037493867842542572436070021603865609539993131589830235004112514313428418506856634541151583572950647813262764402193476108125250265900334813583857256715670094453877156512391831902910875876975820275746703831750674967113390545595053781831256764263770919355445820241537561156712148152868874452410319647108426823628435584273398699229405605261888812508074918552887969749759286627400391811208616445072504008081525561931296511462563494497674998418014232733667125375329087224938764200866735580247704278644268071710615858844155541544849744474492641183729456953198323253083981622280455572582200883921301806657379796460898143266360898943282437304202042134126750605429622504748615696347363365832618950565598306839766856518738210993926096224188317409789790126443608229986897807644594533544924769922997034112636108933959166372156499878354078850281443529163919861185769723496397467030922516881045505812271730761183015734146220685575115399757716176519389757778397377289847987062192450765360152403016951561422077295662309656304404768803946958491882495973479521809877030095004309584776860035105654595957766187979303523557444376767781758304620966702249319517414834816527862047061604156742203511263623053527073420285570546219110181641020919777725005128616860764659676589489583265710595049837717854850359564307785037141334584966994826803099551309189104227982128290927637105284729310105630535257667960679338406031639537692112873962026571648968000247752208146721991533435194689419375638667111524137565145540035578434101660813422512724488703604653766547227408402153288223985405566240456406803521804267975085633465531947475437980562579106843196947309528376485074693674984141624703194709371615505541702768629361077430260173513413027743878767722483984697123074396928963907906043503723143101635285996927211818039826513112775550908615440907156856227133683975518303501418039364944440692940455781845044810141567970518540786063812974674969629112334392141565200891619484063555680695487159892797026719011784793541348069575826828817670711691970268518254681635641831299724418166095520762745459106206892052139895682256592727763022035618699445566438134702756195779979609442829507006015883636507296899138200599159620768377582026234818541515685132133153143021626656251712780392978484683288753875253475504610735699946292543077235003456302752907664673296316299119527002364740683356575567719107444269327395795350730769461638766085973178666390207539373650677632894011261170292286558434436097534420332981633818913062553951220843654967732250309498851024036523599630236322681126827093842405032896682989887879881030735978397569195032445132828038484765152718640573751270109061281880927065848052683150192262524667739097216491569853073136990847469189666658752563715733347626046393006537811580177404809324281330260494641348781385833571300822268368853016723745060072923754561628334922135248727534739964057027768618031241529479275659395954186499846012798979982810737458799627966984609077583331148105761251564832669749179765701058473277622822690868630383294542117292546158645420755839594029940964879044160323524449377939774269881571671032353432588221188478638538943486995039399980899687481765983058292306298866048446852740597396843781004506709766469703794583370928706974309286541708000117654479942715822149106759571880594923385445694732395700306025975422836571973125166893300473047083247147248633111210251779005830156949189814596007665762111075702488879383861191925700833388890023173078944859747495465182646002160046217409079183430674110450748981256780442335181621624452260106766799404381592726764396719558703631279519987716501443733848746674472573556452548347713835570158017596268137640397729047295290885522400456274558930175109703670100084881707269362075642523836210450761219382685841218341282701698436261637030710026364549503487290066406769875669629308099156174823603339088085107274981901597748839457612547514638274738135909113757535380466339259631522394020693016179877789930676522805317573753383138370688694833025388919025749621736517780635957450166595554213090498853233838731615580101742411579429813117822276328040639701261291906933928246707215716393244321036838672902565969171025684371263270609311920687038988289290839807885459577760424653626420456747770508977427875510669746719995302409860106295592622497793704451776883086782339210503559637835964677221805897474890798461254806282216716945030728128024108626203010095064038261413761148350117343780894213502194418807861140808923541728917866096198672926090765964491639699113824329461261502572663747166495782121277563109034212744050654850407744126169877999619187943284122348032977844716480934036547241995862304043422951544544956106648564838038686958037866450889340664400825332200616826103847761999973346472156697790359291963547893627133425894569939575392154426074977645103517301746070147960738154745584855842249656218413057098280767814123950934262806810847541115002712059836485129067804129472054096982476831475739406100459754393354056639931904223575196572037492275827774945882927877442791154983922081055810115438483278793744668597661505830627410439156939682059440362233545823912754618030582426876885227614005965774317845545358191923924797733653326571148346990197166062992045638137567075143607072682321890439589321063760260474912192013436256591422580582415046931456117826892632223905375318728045949785327928866887255725944544103549144488755629783427489881574806590664631840784395474310443269064053332590400517471991684737651051152359398157793092677638844713009258852237267429902337979212822657197335489741751766929213914426927695961657023180154204315711710724686106765299251938057771902682718705720875756795369753847941933076595676619701393172400120550575515019380030589180042117658913828541533249392161667924281542067525522309463038070648259633665573781221982529129254344362131756468585340782394504673805655462932508621248901926191771019027437115827125073508291015216477451941371107622430767823107308110768097468031085605566343387295295272928807638108226058097245186612278133878476783387215786962022467961611954335764573734633643958811603381907480175183953830812164464352016223026095316673112698566410247921717102932397363528244963575812596280806823425261756233175236982219934338901224137290442888739906018007441628639291691342105332838614387447356247209641136056160292027808189887646264524747536130256067314775209268380539528096120905414623323290579203018435539926966279162284936770188313164265871939148744776351030023393153833714535686966695377270061670364254497353003618260310554427407414295301879193398874440445095163430575433868437333552192429450347711822524430481995477803251070490883264717262061606873274373279420903869602535019447779734647058320007298041393066167896767937903474027211665157682899842704943558776098059802182768328214555125216650779267354481600841189599562173952053723436106454886877844742797181295514162321062013254371531550654003703690834877866796117700626796442554978887907381734433925332359352613348847887505771503824932274836333607498785071488609276615095413917409289060643664313144796974966741072179285993539180464890534573421203606986361296018112611821306094672172942190492113474869174136152627562584399807327516526394977351547942449326445736468526346002419313733125352622719749538323973325648575516656743617693180092304213788641330302862988657156995913565034406250413830041961263426686093702187548160284223322516290792035940550530628265942715085321288957388775472900737473041826770911319250620255431811811870157126112436788133682342086069955398220800439672612176005574828847384692166271089861472581944404018277452824696291894461422985059377013489747858542492194192848910889453544234470208204184227293263627115662206836018951003865433310356816934069851882696130717131190087714110251586479942788620720920567123827536848543205191588931034274036203959855905557104018606559991356451816869656707990022132614388690494592788301126202814413005728091524632572686768715137630381199748798050762092772952270506639777707145176798114757205113019865161058308145031690227068715097769635577881387694140016670934755404171934609512893928582963598885775810724754454170267115907739190413467961841992229118521392823285885884418419292216157940029232447484301537011910939820011649110613343715365922195150038821331508408139198057008217744212419182374236776290865907581572691833318930468375951084516525520196255468123406864104425152756649168285034823911007984195578546293460363790503527347937834043764322129505136010541623611399849392261620426213392466480570300206929467893387423849782884588449434611947746296843292139387982299775960155691399959392438413918682917258668651961953058115184039448934213624981542640261255526721643042380373666543727831800504230260357770983080322439121794104830489761057329313834765252629959638919429229077724462793014557742825186785559876706881941777473851936353586768181017647796280659823216159092114908302700741773871311831812501783886272414534421373523982584879104320844054850150499826290834464504619089731419284703786430129333615669830589394083169641129753968835882921424664504071267772897350191260304600664081167293186018904317872950616043446409036390596077159984848067723432492280081224815474418630532928863082300083832147272554807063584114840754881741180393718756250337454848089703267822564255604643929515263615212419702712290508931366998943033808385356341569371808799896196146976243442346004715140132423878330504214182706688023081997996470891994857076374174517851991491188800741048816521109016752036462008889381292957739661980566623020839725487735760610631727244562998614161511670131445683489261093848381285968466250170457733178879012870518820951501586203572044494260378096937245317989239813793038705633993567725787868577194083350129532294027338514593796032239811664898124325197922483565258968407600672115755171567869402140834280233719516397814388242819794675127474879996125770336416605427398861473202763834382516348874996454272989613705766041468966495766186071849792212858493731882867914648489565825931823507237719386029312265563385404207735557924486826845243200117055120329194586820196130052473107883480922742090733906298973497994013006907783166815976931073108915072825713716223223871399254646723144578091404203594993608629625612648226278318411822631133561644871319442432957385144026240561625961160758516361038500777865352016072607938976498275428962033311166781742899479073232508689009320988531446010900883952903969309026877909055654604195293561081731314213544496891956958508449310368886383958161192816838594901658233715944890984062418348429393639930496336927067574738191837834537950420684621926723466000667384016403658293032194152051593258165163475872262824070792478929517488651121729106354801175932307151903972682915956536285181809514675643481582756986971071640836144130635753372230333611998190458982651892308551366767232645558731393213312328898614351200315809920157449180898269829091019097072617338111310915333578445658247743417438493450309377342896590992663732214279988753765920006617783771721435795917385568921422513704460180393974369274856355605863599474843604070418207690737409341195392070230147384055777161668820606502744930650469830540802459683785576835275889175647984678277159626404085073619268343190979269828517519517990123726643051956661099239296137913000921206678198152144410952524558933930785516068657366133849477868489470901341193933858774342293594491495023040232423496462928687455620772581882906748688759751592576752158093106780533105162770131518563889676735307121989689954793284291481017555141976613319183610781729972581051923322877070109137622613125760181965119104067082575817262572237864558142756833847198266722767629410633729047073597855744719541295819020447633469964482257629612261869629092418692203641778375935175360201778750728294206513754286581964879961594366565788765160034722641819981779316830366765651566034834715662889641880254075215856685906066029067342075158980456547085605672262680609568866843435974777996358498148328885643454748850809511976283578155357233030734219753801657377465033721777166066765069916639174931490951400940463334914063211907337221748579338109173506163134429806553202359994577649036927288850105905814968546348869514588505524501548800186833064558257804839721642643306483357032554883268755870925697658940228754721265240239802107276474326810685595526563269450648289115503320987002285296977944565079119559860338412878746337237130896438000137764219729324351897415839098971418880712981742120828711069515655162783637583906276858183584985680688046202385705455600673945089951472687814133869975491056372551978695902127750695101089490143444838708453342609730451048509716997579243410133101278850232603875490746172349869528777479832546099124924586492326602187410131314643710750010128983513656764136596920865625860665869872549097711316786384079573159244528778542397167714065502203942442623292429319028451951540009657539597852124868464897049605982803818371652672777166663470667627640861923131849001614781045937892282630307607908362117820247074576645021228117159342449311115018973959335105694078658048744170248950274468211252811989725943776627025115794836614281938597778695031779077475927200280610549459299944332408306284262491620351742575789520346260931998125438900426396996671057188314566543006428196854763647646205810948560433324041689251096029618244091105146540276132221969094571354228594373061099666686457891060705530275135145950124663697156607479558162054095149356068551275536948995271445466752278019412337239909268046942057348960027597911542593113239647785825466501139977264808920710972709815412178447718418960763234316476978786519015011532114758718078604918928944232095250893959797616794446787004918520152272712191041442334481074475728269578762480312892096458539099009655718361499207205818488424901589597013800796171988544103260414571515905036102813972982225407710200444678328499583650957451824920546565153993474692502405005371912616761027637301482830378310428327482456390827315709259786327153898768183916908227239123091670812486223035228577440620489912191474430078468263376838455484187800414113233220723681732147061650345985655431973778424609191320217280423650879835484389960129811950452807969873656059837148307556924106293309642312014257531888841536796684439848189546365244232043986158348960692448153739367420100635122961713570500641767343416809781867809299960156465799645911892202280677112864227126755086706346673775868897567029216188057769454614437706282854922793573493969000619150719067112772929214237706217038305184510669084218558405381188273300247428707999439735425030902109805731588105658278416126741162448460191624743864798937480371536775001627470741207691522578511032373066079999269805112344262783394310313208246242884591441178776503960911235406371999155828300739345550013678210488807294250276364800969100987752880461389144448077322999824780239457920087282394801232235601511516827561319512336478168437262597682273058765718401649775545028991883514029422010518217933533834707327339512503833257480359570506126758249777414249869251698835960837210199974754245912560626843821214166756656417382043472348491850768870746557368028018191443200903716094475515923529551977087856932499718586346594410695521397911197385222407304745342895432347686928519000610499364244472982798712660199742388620570941695195288936460973967821052479730954230974789797385221759791098269193121247853582910504690228525753816662339271262404870392365428463292350977922732866389182885103718701800560284491163649685749179503178223466642022780118938520679090152230163140356035007177408464169965816428348484181345317217324153160107725959967798018970277175590475667020595680223213560372080943417713397437270950472350334866042533941846667696874116091501132993255811773562395969992091214815493569839119536960057841129177040643581556159954411588137837539808853731262448747709979484515012064113121708941159653886864105752288154959393177670837666313882958779570348986437227544892093237319456380004503274158008256993326944324288859578257215412772190813025105653494356777163711340013106511210873813245119108114403327051840017842860001841789168439216145054514909401348474265875201799961925739339222933947025749025879649789195142856335921368029241436629317491248443133251615344344963661818192895685191935805684302222888447658281823263726384199537834852165384533998138473449253795629652092532666774003787033548242120021381420938141962910356144489372518587513510533223239196835056658634485528397149021785307726450920704534729588542717891397650308656942295712102883870981191525518926966661707932188296780556873185646555865955062407054913873706397331571322723345403407277914436622822357789122559150153942839636902441481325855915101460725863853915707524807830713214334558653746655925964165067477323481247172522968148436925974411409751250086984775331234376291094006160475018184643148547556340030230367106949201194823782574622527441571990115682147251604491071070681616810435434577786019682345033001044391508859337537229902474993370988929020990850066898837569006493029724346361321629270889580766697885017795614018433694535189361112583700259362960770428085728251646913691513220903028461760154948510407168974758883207307441108020845889849598408130311187723359965867152779687950395502282037296024720777831332181563041927533855494807400440952016836990377989242911413584859004157211457865530705560474750158257459164823728936273180484801649900641932191100992521437470338855373787725517357053009041326465098851762197761148372813726790462753973205614246717732312787180888437627672158317985099801374270900919368509410086650198589513542524549378965605139451386567237808591500849422192299471029196699301246535904333812046947598226515742349646960260974326215501592068238894360809758937685164113811094245820505879375362927682994880190367673802772541904812512036900601574238224895714369796405737529322783413162405479645942415529906361387834024816127700578248575725569556774046431146913514564154242712755200370860919542772129109748163890827719284038836711874258881624599296150117693989155964164665926825461481259664091816614774624856595202446189797328658014533988709711103167047368648224847756147069069242293922079772476274252615109301283023753932499973364772104488303325016128285944547605182978473412325055634156849514233706372196693269121810085088364743545597903876741436633748240764848250778050840849303592592497351204055608035521327007742967233424699898486703637812251847014496114301680649417879671809029890439465527115588528701378968809906215602765502971551693508704130286684217390666858727031201348126615816671266235080428649304216048477751670296332008255198175662037294211990780684860727549970519905109321271659500305856630095250839337825980063703955125780594336541020563341708736328981999217973238277593903281126873350058761090779885608943487476031181460040617474516407109115933579917085330818881822028570950988329675967168399855327303489142437923247733514989269501459809313210940110163136704334262960499041539328351732528260478585017831627309150039688825737657385311660546978528472341955130693942269620143505574686614360342884104214787879263014197119954006221541632236676567742490494718081268041991257431627851160247201741435138822476124967248316376215265266653624234906804009779326928016988906573504589915209385319273176088666340122523262167613076182801153460581742607368377545705869235086851379838501829795815830846141036653119263373457782591897726018494405733898526336147713632256930422597961668325658273499564972643206987562044384840320101314758949956163728759000399224398357448148586142174420635346186461369504650949513549866141972319046496118005809796606593320416607265512500898388730153007460868357347149744676470084723096792277228040970768321300430366966582940204394182801744895458700299536755757142001836961871480009422611128073827678414692850635756610346135605578133415325361435188530206331671095277137246464682615181541791047534349893096312850067085639570231718823498601387174744364881612558059727623841025217434341540651342576301684316630655146613482422773279885249828276291789151627982682137736228659566419923775344637110236542217095111345588482472685208003997110177918544381743407572495888741617247691331225189706947967209077854822137187920894766507619212158312518535933596297759147566868368511509246300647704577319548053234328272698933301801271783525672916059939274601789701752088014429822843098954180336101491912526578996471025815668161174760700748751604971284404737980836172652012858727411744899765012349066521174433826253344469040218301323783031912224353163503855557098264310437884537825757855309519822518247321037993825851743927558547128898298963770652764879490586302400358786764679133104629751002712673156247445011584107210261726151817708888010784614180014128654700046657136859773450431344795751039659490364261988203271127404444174091946065525809302109151378473275765368276418569765458680149903564659180556548615918288743267474796774652810280145918969144920673541339659906948634247340635207434881999495280870045059015555503973280751144660531434621667416201312680219218034512592025060423781257598330939565962961017316193819312723403633879534757104284145802009323822512717170109029718616667800585078764920733700334084332786077439725766461186418314571900259308520608476581644631314914950165843571494857453047112151044213344961187537429447264057298453265612391672687166532956775769130180788032760360165828000878912374287283084603288553551590663939646983320148506624977809102302213196219796527933488949622745716361220934774667543114664773704814049504377190505432122376297681625891621139530387585313830447673154429366163365195664886402234536927818887787806020520057639874868366946231887159419342363137710065335033054312324023206988586955037320064738199132405859526494455785853794193192674708240477456688909282245114500660450338490860557277379457197835076849936599097353382595601623073397011236202319259169476468276499669543746160746099030206816252672625400378763609279962606361603020373568330847623073781663848791459966453922134106659158836215038347649773184583347132555907731296356559652982286921267849266264728726879351068047237700087552523114069847546916817907992441312729758677050633548323272239176536080947457987533158163359032774188625569625229808626888245961552691732275170699676580222107269025943210144731900950685608903795136670874142697950015357780726314995973910213036962818372257119389254226624611797703106500367616274523883463032284229203977862832142293946796650592947442495294084059067662656623827138555762870397391581927765150354333805718966385033334742370192447689859416497235221593041294389687626475057028974748296541948839294502312690620528912676991734846150923537754411267266196647961179490813321943702151214424116597402037943088721802336477763048660926808861452971111693187199407986816775576049176059926049089278428767914513510225317049119206785546736089094236350558706026824699633867607657896742219218889213048936726281810728014116137188917898844436213686700413589992419320173298844576881301348533725442618865111415906864356108825544247289236402221230633305656853797602197719216774134151535483605864506011008729727376496197831220200420711893217377547052590236476910625550708083671269149367252181373020834032552421532650990071459052662025328836329239672093943625491790143395959056233645736382693993173119657042080998401219170154957326208837143588337930433939804796205185072521802561208869695266923568344274882383358883792609673717835382703503821828368251571438167178535523301617052585779579774780058741493000954352262146785523864290980823767189425825074287147681236179522836864424288150738913926618108564464749871348512430535956091540465678863214088442768190365752563085728600381822937071116747060511228240869892804191198789311889217237098504238426830048010234749051601385135459416736473336680004592646556205790723033868144135234988566005091529657420052044956255377134823816598052572941939247999265077674123084234434468451988861756564520393151442420761821484902907256637528389831020437947754161521540425436660150182751575637070303203696942607627917231005239744585082420329790284087705323293798391931115180445969002844350215581726367732941947952730451303511560060009423261222207387778898354230346206067693415585152397944089831520381736876221419192387069020476714533133814054959049994457133892859526039439694512920136865486139277979156902442192799400294974991003229524471165163129473559588914656464808507657368276764856360316460747288595093656105586885940356078571566109643049854176876218139780165260291317202185924338952424127330895044160610060015404884232533907244436075235381250744150397722701084203960700172287583947445032331083030071378237017978658938034765496105777192095387682196018049120069106568960968846720231094072411333158107430386538655164538608747146761960681168343133794859262616349324700418552551506063532312073995310106297236752919677633199026612755279681235489913765270604217851588847071255113728206871043348769866684598727171813559251578407473272678060139714359167234906946350410407656384815174458064148947600912935125750283190510134318934562218187044205531196632772097824138146598339983171417755964495442300266824979889113258984323706850829158412830032556629243033155329575434869035509353030260946174853124262091095872727722037375357567320661957836729894003736961503149072898750320343366670740086187784896894148696634941075651469691954238505287891093404550198404397264552878152093163086766546132735278508326532014508980908717028054945910715350428173467459958491055825699827266642892910911525884234403285439954226142125880655152096729051673533965539432149604887686147509319314512698627786628118463864313047538955051637445080282441979920413829163802042068178361238714633714161352649466710538837873405878463846267060351167994586191630284798984358470870997060215948724039183435116667631468513686595419908427728664480369255516365545001324125942219575340241990035957057889213148905583926237563571576167415136172552140901145711017800745370448243382424953277811414890375163499271951444714085080402722177038143733258598097635771137019079787807381400813456772852214158255415561327504911400367802918411614342951463846341898719577977352087965163783893998997804845330935605830968612317277746280681965205267141399121305206216878667010111320643732094726820982054893411868500643355459892195056616277296860712979841703696756115448952262898581269686128560595921328045821996040185589278372449489027847289987110327436481100682442154381976573359626735066880803039679094514035642520978812339356208870841042928868078159127771412808301805043760535017947698711097097264830946972432030364334598623665618018247989291962677263976803783055798854169097500938381817907683322098884491018132584613090837616078876338830568227615426933987763594970958055012336508971219545401522816237804347925782731380266756952201072004793657004221780566333114014490682319224568429518679148841170548872158751874836525037588713256807317070871865617773814946519533390717635568908632860639608840530333257463067099821130937816573241231142260986613399140822445350714603394951791146587451410522582860745995752724786209305150262875227439311523901303384349801178066298672572149964151540694284230054058030003324196061964926551372321250286794667946669853343711485239949694066783990669400520944980253096525386039225950745334869415037937988273255149459628930232780786368359267029842617698738868642288065581223775216903250522221183611853968400152999779487641962287099620837302324749953401456613572788466498519176411231729420207602062765522993346905269470473139398851209253634145275782499182160457493881619427481778625758226884487815385142436941877966501563343014375869159488315960767172488197333609793730011024674914040895451418552707769635243066881804688337604090384151889548457617626346570118940935435929963407513060877202639854933171714412485749148745919079196106845845098024547648626449180768987960197856689709917610536656508037191418612865734681826233259829069702178280228562587116065505357219051298905847713876238425819537974720011138040786770658943558530997150015709266074199397535509739767034146169003536370136622295973273201489198529981851175519732202028963351372475719176275250980806810882557288496009583277382555019856337478823847180214892745145909984693911414152777977212346355146294957328418243985531055550349641222313185707394800097714370390180631834104342397592705560605561083404842446627755301157036002151922970440450240929143064011694314059393033436146014800143959583827492923076501334170762867729174717884421503749259460181130561454836806065682146621560933563439070685466919720641435251076356824383753532187912657076069197810935040353059833002711461376126528341445496957337406906117951656463454004819752321314655764778032977273597094365995851755759096664697671175362813224618216937625673900401804807564391346418747015549262924557062379710923497975546471125339122904449739304915673940081267801209209539787427419518282486180240100192319461838378633331455392037331484493015940509929735034810727799366022149881479990958342860750130794557406564577575721937085898643701738812219046724697832712943234532283342463787433776797090786324657396711617691867201481691333539730883631053072444803036763097434401928493799563095139783451715867037199402205428213706618287914684832734536503091640504468189087940585275221165473693048041696686547919985850412556368002482262651753040157916199802641896783681281468236946952210714371279627045376397018338885981564746032252562258112068687556645329296996327474788889570322214465950569491997223004189717217472879864076746056244076191856572889484955248758118478560225096882011057261097158025405482165064427468658455709323308143452406697118933752597228306225027803039729620676486091450021121218042360159309967735255017070333557942896725170235448456783759973103060702187307467537408389109590892846340703828259667234577128208643629864111856167069068973619244029176443924560406025786656058883091183547707074211811142508053270713589879075184415208330834029735554613781252108352860998352883758571276589739254105080291304564393977212024355606862175640964663672470742800131218976321039575050650768162004987891050916147835991345897384227830439678634245345214151263120006766666853715721844460164564494431471119555379490271862082574297282074268134786335217226466890585416578930754833190744670053854932200006773001351942711232412347906226078998280549909626532109240053460925402149619819645922567845732448749845745232999678456846269539133970567356883734763491093858071756603448725378663565549874330616697230190686107266768633682772751585634209307241785676837688498103787180992554846256142589124929554352692584835197844076137361444313010429833961325094690019838604537659034389571387050109599366750260235963493531770676662743675123762654232419762824128675646935401207560138830266728122824327619991267825169991518078730326570599845699688485723814083002988826631106360634354605411811958943854836635365032321740696685440128838000747076637897192988619943650823081603785730069055383144570247569214430012492404640398460663669469463007962801332390135032284581655556193121102279471300552912604195364830027198080156541626008590919042247912408323659870444027137558853880085848102192217763472985265445612274827155548613853609951933558144676021867748549530143283075825212363262406046242873556585359846898728245995001638731190687638744585815354915909350396371366080526999961259841071201897564223473136136377214238628390135399681405727949818821072635421471821302928681229724840637666981517723570134650315960470038215763802089582995678578087852183218596772102789903232776112222322330833302581271228658159032739633165265362047472170299650978821819820879252023978315852561928369061397535903633999064933072350544868834238979695121507438046541729099387513814539619232583214761886399625629581777018766884410893042156980293763217227809742180299975410220726033178664054666607868973507082871474303538966027159545376362792838172687520562762455977336641294575922357288088908442216058887651856657849881189761640033376933554587239402544173339314079215251930395565605746422442037823108224912747064218895528329706538491610718315698874553191945983713992999006638744499917255519612111882534745363528721445007563287312587217800141402316399463138125643394912550629937500902680028695151233136063717110034690494783800457996508442816017357998245631554541556096959229992438533172479855703760516052349713563720637827915325593509104858907730706374001768219347778994762524722901432999651128630794410938429482439479393435161512089717457168911599454206556548855723307828299933359956824964645381008992760273286859749017965828364048403392831175552760427297969451090079897991814676115684942784877923334256194838613631138324302773308126991310963442839668707691394484669080549317783721187403331931798827895171081121593641315289742907193376878800488785900061095709417959358996301012600429207340503139169362526305192405270365108924860190129601590912746745764742167676136876698156549076258030928095976225096543517617364031497179720702142583562054870416856957426435747792894858616524093187039479182367732460210782109067778473650025600620480607428981340798030549950617732665836860583103592727886603435703306190566544705420650284044436040033059575991023280015946131358842127319156588488572181038164666659553528133361832737340483134495405153844170849710266464853297757015102498848926757943515342593374431075294558231891356920820011875791386709852660603448540368332904345335573377372741854850388906379373307081990178428871286102023382873588890890877378531872768810350410245655612397109790198479276233770930840336220394507927220258221479808654211398027278876871957309091429698160386852511904740555807438750571455941960947810690695783299864525765515611744633463118420300920364295217031335230677491482468691782742418473734118974260904474473425739547793745714716804787861320560740958062324812888745269584998958327463570017247276247315486570520456654172614338983146149349614664672593764153912465305140121053435297800626304347578566878612552741142567981525758348140437117020362017723835700318124430571537476171009854153147230881159619879562772300649378084799086277089138253767836300024525634026645006175978230593632952062659627713083841705524184595607826738897289715345337866976192066283842290355667342212411065066213338400230914969782462374833305895292043308714126734980358630036765602997407784989831013084242887269810877472196150456355478786527501098894175600935085306404630766761862780323778529416668386088558298956158308804173811992773793990266432273249911271919107407476192050058243680900668802964052519940473182231324737871913038504311063487456402386529943157194095019598022432816384911420707213179027936546538115302715605079840198236001559832099475612357622835348795995272787790089731427679206258841104327673277033926665729062325308920287941360300397039949311704795293521164767178994068045170441013868555347683478749912186936909895370107774292150149530086363089768920016191792557053245605667419790314585988491732130144882102867375605787712234754117455702637112235590042040999100146623387307747374282059692888194143986841077568492096206326690746944649762818129854053688846452654837012446233459348258809208905308301126515554839662739078508765798361499227893459854600134068377964241830563091451612083695782595076381251280290492713134667877051172371492304126257005311348402288871976892145779756872789767511195328046054893804533034571961240509447027539700582900474863574658832436496097727533109904100193980037006954509220904137446453751497634781789335403092773003148432604025331368109711285902408689626629595856413309121205500080025881357927664013269479327651981922033517565493333720335483585987598666878463887332024788215939507102566374935168405462196896278847566602944014879054876044682163372117863582458072974016242880412605960354064393612937094831564159795655473472682639012311637621054603411123592951618540909692248506939933443673060195641369737005959520526419504463377679357391967673152538991828404799698368288739064636183168013312091442842930362870941049342708616001270092962385771471019045616360717161078070139704888158077812558392999349698758421881067609462931926605407885592630646116045532484406311853750147131174740623929800301839331816911760998780014611431257658556878934949314130465403558204367577645375393590002632817309929657450699095536267784932909124407041237905920176545096358861620838701695473193537679131639818356154338791086365140104841095227486525154886472794973555289235560188135110308617525530814903191232148354779137406918485015647320536963231650976666131623174983319538256010632261581362686552697222303892389984075783685482273774547453423372228809121415069594717101546698650904045127819054637152374094245470782718658088596370627525394368760903663589158467657727537087374563725391679192233511105082677046475676852681719801470296366988623098635065140297471346277907589739188465828776501480640288966156762652741077150215039752714675481624996860160992804714607066792758330536843915104927051133166968052505554079112067662000520729087486281656818921200028919127251803323352231521437179352372963953751162611097587121981482873138521000993179351572320326290733075778070041875057636857520391213419227625856032625076065682834896777238376731922532478214670526719444321121232295737923600502204288970173049465040448341562043085345146596880893355159696221048970128265293290314153043215661147263120908155913953916421307857308126144735753791213816646198370394369124440407275285440838366928013886528080026556610606432871306290516969745967903351041118220361894276558368923926300936833006457688879673781972730003873547989262234325422027142598058359546333316542821727172750697681272683482033543672667257957387719928116278083854217126459991119690256045221392531116844454592278167772930999988251742590411441348030022355573765982056760544529338772600696444995956611586491646892129797033233878592057881874755031443538887483869357564465624403502661975429188421094223052340720863731606144973635008866377675506239181183325510954602927743439863715242835902853435651329333688418804794643355292959710782063849355643867832158230063013473634152528267935999339617833713463576110649991686530394076856427853080208966663726333882173997431230457514462517895777560312771333852254495303081332528687817648141860352195052856636763502632970373187349599603635257038516134712404806781569224573973431216330539542805249056051543867630970342504997390111256459715885996360974215974053784791980917877378827708373346189098750405920890085968965811565092255301368089688589685775899091195053845215143381199311790536689488141243142300108223968897199607737234973659384988722687524947003477581475480458160364066295092853004327853285677966067766367315769823427050290118523430930163453337830675494322236999505142353276138485265599183391601996909369797465667689588070336100115078767178519977493484167199319908876279909162464663586431052447869115203725884762044153827743704206615336030629626090900107587779437706695358047008695399218600617270321369908603207905115909102996952777779772392507466510744664538442147239964410668333104001818702683499612750026921419729413513696043854158241510869170344892462202205675987964741237867878412995010810802749534685892570195851269701391673503017355196214699832269762286152616310374701368245407202916846194436584496496692354373895808150052845927578131611058240791460245109635172886784084883521604631127628659155565422042616868432366430581384853318247659774091438377910136942961740354379616894310573652411210015721654203261647924595606528143882970940573494623531925296716782705187110391571167976683245284331430052355153729668775569329862715011111046777801036758235318350121695812472376582267142614613995788757652238049517184819221351132804199813903799066200174996679368215982807710825791027583878128301285439620522345908889745203793758997659169563305379143179506095148412780035661645072530236209372856566930863714126251171333449204315838025948284189769479465626465088100895320615061513458672475849848510023418941017426718592845025113493376171815474794043846915368114629370429301426492163189484449884413132319970111514427653243039461910459837525254593014590506966794401182115047433303755124685939023975767611347034376270266785524033396935871635386347431757970244478320014705111820292498643752533988991008234690108343650364686983181873960522549669808006233469531957812427426301189638937817847947077320139323611800694105395348313699277078144257997998551605967190077561873717162941363133976560451776481312724420621138595570126458878837865815107375090690732574551755228424309639695356906604311637675640800180071093117121148825329299944596790181808632588719915817140792555250033855951082863247133522843309854166819339011589817432348366695446361501244204349159979029497218589980665553073715684745791288369457142930898877494054191160724512591704495812849918441277112941064526056936489814780758576624405589994015684003919958672427364733481426340108413634104009111807076403272646327069357517970614644792075386706162666715434713645676190726479566633892099655443660484813059961948507728318878220214747955748809403698169380197691675237847263494820518928715389867690429753069169080796039126249676633951443263313632225127569928727015211112040846731659002358604181110559505912669242004762619109668211010222635852002039554158779822995743720295953272952475809247666529242924479133519414014008288864795576000858414190294077335480308339495957696415542654870337080376502040754738051576911126436078337923500278773147616885293164350449002118362145431471956228270533503044334413623125699395198417241981281232304592773016075436460214131801472809975395546927387540528238807824372835134634803935042401246113321642925601712600226580244341219272054184343855278518840267198950586361083493941738448344741191138789952133757301193043717470118057844420144531396676098606648447842610039622383806866058587450914900525471499920696179447389752684271321360871185396084446698099331975869841076823097301679507668759492907272900369110945138005413643964429420910212862734615876165735128904523075328971162289194062880250337540272319447518353254560025065183260643140677410290855233655000716551345012993475460450117556736810140730855920177568969976287670946808530301010674598455245986059289820386455807605686918830526806694773552411822586148025461117754317207572274251190413837350604209761636009627919248588871231045993665901796314604835741628346173124285136606687839115015778529509975203563092117536203369950835607682048025487428874341386984258883327717712260514059230829860646018315190559152537882469368145856095776955102709692474555931434484634116381989912578330093244667148039302333055890483527093846891116285127852425301233383201604355164624176492665303033435832269259443397041432380092941150982747514071774575837067976585047587498450625983873543528657213143250275600780019124492730994457761208145252617988129409777578707874795061945429898461219421777304289659906609562307487245653814958614084714979606091321109248132362703624208023802357703360232982661534040233025136591198609073912438060721335805710272932769045695800653456880326914717764776297711481275986189676300901600871566355262853234633784907430359495187805002250156039192999931931607588816474780839942932877785106268638941738641715113527460278584181894354010866259426275614355212443040143237509184914582666548168574678796359711150408757793940548029348819334799102333638171916014911601943168879868563855076167024126376782223372299834176048733214684463310353843381118492709304562892161248794966517976380846255827289236376329079195231893946834108366049670529416262800322600620776195659117428324207681898356588929199940581516207440472268078241226035619548423823245193143045931234132124581180208394340393868368670553829764144749294108131182733726302236746005073229922964047821759700071862925846036954089706668003788396222958404385709853435057774029935409948575865502438884911530161917008447211232485348768937378395536188080388785214781954721298333360516383402244740918072790329166148350704927783651697873209668451369226681952817205031213087327012530500344600040832877153269345188038090424129731094337162804862053363391963646957049518741889758909063168701796292602567883759988151382990740671847690998954222799494211512464506413079883918371026500517990996592567284927992223624028620001760170188663015437722102410585294138813338493310348445497014238156801899248122746205416732041405035901286353909226541461919173688806942340372347267932914215206044825169393436935831550053233302538121937550567563636934089735713319636182156631550520436807192526611150600997882384233950179838915997652831826958204478328857005540054486007503184508009233062162703295797908274683031391978258387358185242209671494686557344370894534573840171194090154942234851053790546420746915732960953633743241890041310481286030554875815106944067267334393209057644513734016765266541897452027368155493827313714522075486080095657942446217181537992852577842588801580072509090013208998433771093443747134553487691096531982834677944313326700830488433710741044293371144478316840656710696916435595912103025408993841704649191410938930604625829150577052485346228824338755576334479084284593719105007476081338325163304435078509116975989153465512972743388112977538038893405936943385970264371482512142438771622703815436050941293362445321453994483118086601329710458035744085727218021291614090706174671931453111017463639043941848176376395588118249654798527687686799560185531050908400900460358763722913886595343605444347244778291580127310279144551428303187838978591625773902013634343376943471947578649353595640914960228796835234291454748459994557132570591564416825218398219245506841990180876531385056440343982909509010392054485530384944759699599428181261191529774117004073565239141794944956663503860326418142016818265105254559107430974857457670455641271981447917748736396344860780032666487909533311932658850695785518236745313724255383035313326181514343154908533282917698672173891078891319872945718096736441176326337446915300597629639876625326969220486361965181389206361556230006018667852435640998727898833769864994369972956890879117762081864250381206342357495321251400319577948232767568680812746369144243490688904767159938797697747988391398551124801132986698800565409890594490122173138619916079278008960931290035694058872973502757844310265045203396069649541526296253468920803836441321378909804694405011206086204112180145785170568572038773398239501419831340820918449235651549606601538459470062195046081776229676665637087224467864972518390670300494897575292615717384310091152595154746860428395084922636310876715386433810265533606918347326769371319732999774647194770004213405755383539061067664053609721630463199364120406140567570631616498623712472362938715267604100701747054621950368441844339978525102381567080422646013154475975442875896997058268909611195487463053192410593038616411802179798922695547554785425313817679892703257010242724689488056783125274694879918808210636255382607381752498324845931404222541807600737125366827593486870112492114071343735479161434058532740690775658838425310378898603733761052037665461564279818075844327104166648654125487147664658903507503667185923314303022016946863244447116940040921341467622071703086602124691419300011424236471519470874554085310932275162969896622959968841499491875487029208692301815278737556908636009831175832106976328296262276901323965464889160714282482426814754079508263138310648656262049181802336926100488549714381485817559343282010845214978218868670693999866957790126213447284393636379116164501264390714132880720496500029781307824553075919783511320102773123103941846598737084385546659624820011005308410453513566323120743988546429518479988795356440201708796659216436973737067039773190154466261914273118502972009478674482124479038715983554436684631700414204765426351549544430437556386345593104688914133148368199711364706485241244558222734073109047683409598811399498054870552397590626626965998859223749566090708008158312009687199972488444274337833508679124772675984657661586076439748265598559332812789609881630401660030482418538672910579596078308257873323394487997059064736757080819812872231772460080684718422732435866584411608328217027792168627474340403169156959963238822307263193793305065387967764004083717760503983564636360187614338827117551035453709338430783529602076099005598981946495197489625395824699916924212258141530970033072235975777696109965178703103070259742867860322084935101702855275901096501930529599362656105843409622421446315633545957376571215253300789135676488864364939655245580695085588074396570637245783658323226163479413749352604801841356375505074897605713950437308427751840998167735664108807266725531344055656836920151937323140790835775476054444730473534945422605651634137362802639620059013873276624489541947436180629087027672406304281615314621696905405078987287920827102939674746250331236974254118451149554316415889346798239500798770792473896468824570388860498826250722531744621117996470707045541488986378935660427428315753679399333111769167095281860471686655569307845297760690112839974446523448618053056262784247570149865761445113276604018301643066753329789340745639058401807200904756790668448437336488862912549532299921018115809999033378788881431108789766934972913491073247719682509528073784339555924322885024266672687851316671374795894250609532384816567357095568861278715202601714765142927330073944219905595879983432795156867426931528171631728806732688709363832499442463089771810862604481775378965492560568036454410179523010694134763414356316422691704662146116640591703965549689152855675076552209230007867855956017382612762390778160341889357327099387196360346407646553553601769596003769934588628597430635542447184796227036203741194784648303833304306251160587989623639213094689916972521057870108679656103858973535401984179368609174125968499357202984138546206810052727854248829006093892043855274746325431578222552518563751016869468985518478174140712391843123839095680470974365831603600555554182434387500563458743015034852049618535066527219767996685311262997267601516400431323399544938684441307635879648255126970873483045334078584746916341435048399307173384369492898857663732862480552394985875618239809076063644168850511154103136113351954911463568719380936454686532737426756709339720965470902256590227354307270585806871597618423211525989938190832763833326792258881849957214164293438318955009340791264944317131796701716816724448867694376491020102107020495350844770867582039867318836594241614683339125537907039585467838679699294699958226944239018882391998276487550142077104803291168284895568714602401143386591481101664706058845824762109512756182463561681052947135472457480772054551322644222803333032441478045583079582315010884920742108311824846444531441323836462670728531372547553472984963548058949739106460163497131524212268243045006682102976201048783436995312926991371529147545216122439059017349501357312401790702931989562112744205588077410497942777224224449670734375662032994521412810479245585252601956534671636867377179500523140257070416615795515389566384580125681561121075357283172457658579973386265081310196829648842400333593318601114933352530439271822307363218566400037065488644091528335460241506508998729944903607610149841173562555253804475751993421597495840311057391052209103636351125563414687342401493534254029897872994555962455895643332013727116511301240516866915715900196388599455542313124606791999762306518290578743317903038215608964856137278450942277510489461295207687424415990833873122551102110311469832283536733478248897527175374245922758414296138872317180939668994913549919984622360318547274284323776990676267088609974913004137034837456838930132304606059383093015346098881114615087513709427681553610875283030760924713373805801116602800004961730094790658269682069120552989769783949821145638653538537323833772991454037234512074818587919691455512717662459159770564345781883746974227834507446138346123955855403014229830912774077384198051861010340658845100332082232236921235754396707706078193923012850924153520170670323640303487409602672838725197420379648682824003611061508223026527806980963553632242446008166428407554812091122130688569778675982268232041640393160262735736356920918389466120914906596418383016814977678938176459993356125369343149670017576406907941169416646837362659393025033591321968456345539811427511820990875583865904041035574271196881826737491549114961816736088990782271816927192776541446333915749367027446492232970096883392988172314369606958747590557724203554027917957874377911621691578874410444241409168857931570992218201676268801169050476575349594117358900862282465469643471269819103893357064412916536971117536698487118039073742254146406727284682105797638216091382402886523945500958665716059933529041973229961815686568036359716194822215188192017567757608441934021739727710496416325294781332850135468516814292029580517310905364824263181802690723669985208290549226487708905501721874414797856165854661059195198145828659736005094902134802205378089329004602624706963698522743200949647510019936578424233109697992133681362715169552178119615310185143170723045697159590484298029287469688322016141820744055828931491610313006250294017412798917661745319427996064219278950256867919527477281808471297749154282629142515512731792053633343250392962069463387155792019230223303875604827877282581780499721052385477836259284331954761064556341310424953211169739359716537793745758692179941688137593316073241175646852809839067380072849676693747271149748673009919026359010781468321834247086746489536357947086141889270270953787221187625579453110881132343181760958827211701530408128448023916988489784932215178831433855624659958493327352930253902600635996910158073285871532843516781011998126640474613124672433714382307574984556736958614422961695509960728172817834904728975094735110662309720767833957073966281097044947719912742182002445639220757601186226817237983157013259439688683628206844616725915906773231666246945466305018326647110383204080941388681629771901472819099038161518735842444108698725516052458110884541257853584473795731230619663781167828732174135020778064124686027648380050256040461065076667621684790090234353647932123010246502005287992109320097349968696887191413308338320504172060661136532086371730626027139091521186025133558060641744174257765259243760157903847819330315874999383020178795536375537913504113770302899901286044565397550453841373717945007386653441715443329834266446028652880209368507148520831457406348346249255916560398162730315172923369778615788912628108037421152440077382867552492468186939606747605186013334616970533562919220602552404242156822569232440369841176374248037416364196493016012081393321969022340609905354762910640965000467981503320947075716223083974461431509431121264901814534256228808557125787356725093307014931058162244022522436756566384612511273389606463925279882802212795017301131804628586006122120633593229125402287986291208190997205359363388322245550720702296258649137403831696670988441614796052936547002235736824238195880661293707574624371895031368457706192645865494991671407828747688491300139001651177128122120643473750153072983794744283510846878101220170901833155706494203840535049957124726268641353191553878546837368670437417217459719146975807581940760714710139015087909168743067142548601784613653888235745317008111385590647996173741460808211982205181516695864957132120566608007549094714250852258199908595695085588014811316657985011430391266886558641981327111496608443848385642938579457537970923526904661801977420009685327133506223310335289306073201218596440453888619680090860646284919407965928655911062691224965380620782416676698318630288198511109995086811862894829417529083433225592395867210158292392997898565086059396518142949903191799302920884360647930191814810146243701995694138672377868534356082492740790201096331553968156443051113306942605068717678224764206405167075464413345185029457274209995663568180663015021923949742298423061609607739833006283634123604875961121670879549826530840535954156156173175907086484286868123046460633969614134085177543422458330803156725594399361707305763218038469216402582447974016998935796550085694354172576540509821635168843239064399521793990844154181356631454925622953856469154903776513836180433776868836737091656986209993313119948450502838166142496677862645058531627832960738972618217856890327784813089278605087024005307907368149163588384327908151454329415613756888787148418231695687111360580646680128234632175664922374491885764016480561587089188278944353100753442356088977211973873598245577328553144120224332618047922047681691567318251397788064673660835039666278391183514973611549158073909973447698126841853752734934883269548768381326295289104784456216049837672087413208526301911245085955632574034178256682996909617452387903921135284016172578096733559471799617556025652456936591522925867878396669697736572139165226312429652035590569890063640231278646547594382042989450291713652933351686444306956134189573206481248853027449247773770000010828549883382072307356619586713418469184220909951059131377996072071636851843389194165635202673925423166510149510766218702631109720518216865245222960245880225633273297765531776451993164554003745771582868254261381835987202934023575538223831607729251918465910065029194274109696173890116440416149308678634624145395977837404655167176802645485361268410358697245155542636866192268848204570936291722839780604336305312439177914462224790875656389542110407937929741675925647212176230065177555532295913669709955038194640754515484165989461718399686255217866138354691463225319641604644508472116124933704906017459960392897066100684168087590632449929291005621989735636910349591717001241401793551720967701900773647588823799511503538670306533546144105646809085327119084359707176904654181254658324720688806231481537357111375491747688154603032737585734910374232474049051341887897424428177455927179483020387545322425441777164974782649526283393725325337145794596973199306350697402582285792777004133971839067576225371307331245252363080787175256683760053285179021951416448372448071293127243019143902809797771744757047993268978961702502303922303220738840135038685588572246104472536786932968564500995052943906125987413232227186485682012520218217999062612531109630875615087162846090990823764407727441146963421628750154260519086910310657099297511441334682623600061272547530059273451066026558379002487798361049400880368229490025330067342824659373701936898367778037347059792155528673586132328554435902736602475014224766188724743762740230103953330524811610210226695745306300905027147362124597235757384818946516821913562616984825799729942199861321108737330685908342304468153159301462869484199679677112734237210240962655576947392736433269866589453182407721607512477590029470566061326511854955957301366412896478677669532152570312248148683093275954630229774187771579506578282493641992275752096257755048772402727949247277949869683011700672082839357442494545555596400425344290452318999394443303296087385568508104447920074870921955149636111045086691740324640090105120837080926681452159377514389706212759395442783960517351529208979534016179427073554986200853669479347657692946977143478660427743458524224382192770192369589293006690933190137706909535774507836637840785764037759481098442933230255858848858869851183780759712965057438670613092038195469637208202339982998846829836335726432539266837731789556711307185218790064578337327799076171005690273486625955516193546354073067872866927155307593943716689207092380713742896209436704161309532252062025013853486365839286571084635465922207626784911170889933423465214031262048575019923134758091179632842152309159420225208638588815395975854230544793014898808541502932260092998069293323248445704129759920426826594681441746778326859992755731318542150325089571259746301302980352328769958955853112553457616768565576125939408896786616811245846563920357203991381012822293415865544148903596196693475862367419427560350724582161830362808616957014775577217340477814722679478281680854802585943882197049159297596290705713625491740290100298975561138465000917352474586068652080091340771798205168850583137778609462410053588980697562972991662438097337410130450343985579593781456357278007269703219641411165808029664602454771029273035874651589658912089635265821103834148007649654493782339048510127727059707556550266273594171635310392626329857256419270665297786751872653714610529019894555750088839930977583168239830726306877084765171798283219952305887113839730161510745792172797026536032127334234615904717591112251396896630985031256736061620503901714293180519669852027662094763631437711866453539195970327735230549911644931833777261088159926941289821107036711979811047415709126194661386099491839798831264762477584691121837411942150101566190129347583138911219992682140465463632775829198975295211635815398178567532957196777806580595580587697140684206498329583388591841713436563746437896690779057489132197178283136267984977094190219506791565314303672168301132971037192665720544418191298561093792568482476005325944163829647034487961831796958556162919843315514860323492903977462643833808712777895074421750299105686021150965567117315913404612830269395712850032571229691015143100276844279369629305117570284261182031901763384277354051100332946569942261176003624175765858494960409864325895417012566311175076433532811897903136219486318862707984164624454626489308150778846087761815400840305324100168046317035617902328149367234022607398002930957791449219659392246343428607722207170373035235221064280046673125724545015519651709462206420180417322061788541253325237399415517024592948581403306696944202729796384831986183148352997224053979159674635836222574910003996474436603030385341516799462028548604669415474894345784984294549226215376043070393693502920291060484806324076979782309359326846755416192581594637176522207513038301434416616634048329910772766067290222551357060412146968381457989172979106204025294258125232176492529462905987675796651276359614624722016932859633203031524239952020982150777177415409401465046493461162757608781162713588554313247824818281336866039074039262612662970658634523568963364491764834242925209424203830629707073656609908632231452295910169644697012473566742473713643624625827508346909376410732108141301212853768221488400912086292854624669988289113242659148698688993255674541540447313975578465589439975561718546618483814225825104154047210197632766629434228756045263647106060995578571727341532462290336834575693134743154644080263347799901853267421200183311923622446532889399030891683567503208713022560385015022019703284203373940148434241187010256527310676940758280011187643164004738926086150266438074364491257239925578236551859292766325944175667157586134819739446564874492058792964402563925239872887180479317607014852907798494560634502579363683356395212031610863663942457899848361744953713735620806666908756838085121607516160427114568661604001902915012688245888765018866555366880197058439511327496927921033334513103106842142954776377163771269114809535743993336733897725848090976471595326615647925347591865525594181220834113920830410614871668319554511303074752189734673346500973267491204089540884052192643696008576901087603309592038050072678047988107623203599146014198196199801209402449899706540621793903133750300849753535107478788136633432965472064030496669267088572657561709580045380383394696177130059584323215000488742378190687848654349049225804194694107997957290765537663229285670543212910448963957617878989282093533282333471668850402189446146342846275039074432951353028317523438683474672564316447194179318517239410131019700622811416503653366651179895838619853016936023110501195250727640947286040867278113482594783787737183773001580484326376516267338777431391784826520023926586067868480852808130327742575701955146384221145041104536084827117574994543886899559888248137883999436297018252178382735477219158527072945370089952133861583928956084013469183522913829228411501506411697713211325493446153293653130720442874647046305059323115828670349698632818445386347224395202431608199917423782516761614944311448201347928448857229093074746225575212491057045266838337299643724092563431935729363747724099290389550293224725497072845378710560625756846473256033437919505799924995538670590985193442914732938691270668197762504385693075764880636908291601275153433471646508859443546284923529212987580321002921795788471233864251457481234424671340403788442856202953006217574792597446524411142903689530297541192926045528231650582163124624140250100706601523967487074672966676694564006724996908835362992606158379412495909793350114463489786335494202523291868045052406829036560797271904202654155876247588699632986099879364146183583024323348991044895275551257673370391271125793682169064855258101396758558727055178216433906404240310952873725436624802100688148224672512580195937250616119109501444432481197827744148002567444511892900890739742679189471734914050793299094744960980609815951794139374537277172370019533224773108584189589514401187650637325544453744760383996738572452113412084301121777764986252022314639881244345668108901173408300604722371881888155494184679263943443928968804336168910570213419146442965451260421043105134820449290191826199378940105274324262082080819942085406380803246854454187285172575164486933416108638626198069094108799986586315840784506754870902387383962826958788827112191299716806395857473626857687191408788616089309463203794464489529475427000748474513634453289719320926738416426913910106684042749302250648469948095682755805302694260132137509652669520756005010432788648564763134005695136498235976832773947000781565963564760831295566332314453364474211858068436174600942169530266338628778035670005109732035678046751599509626162160496028729135177301537915126589929778854948969900844394022037484210639461228706601343806245824464816018103939520017334479670327900880362709649184794883243626336527755285270034917072208517376836470449879348417440118366372653050850050799944424515204869027887567267250202046004151985501088529722766663582657699505969173382207950107069042414161080631447351360831923250438472155279617504687199717422164260388116632566901984019583805407080714613988564477748708986318614348471213840514758715813059732484098653122121070253878554606449728131586319715853148029865263094915246753024196650870436390442186364509977380677464793083291133652875642824686942170306471534085395848502474146241911729663485179335868280952819577962994810665527982383666822078788038743713199843261014024288573708698803744976793367784824829605498599371692752523799062152485870405602134662790549639211971775687403492178287535810896740266381430127807730387488366647987843190424147717225249074344587398775511986598566712170781357332398719030120521435319215975330341952826122295353460882838141292045037396487542011765414656195249091353950478859007489451989424171102515874092705824090749011151730083209439510193846856049730876391318225926303568256252630500152719704829252639317967827484663767304066596150033405203516892765544331217347697486630633541957076341064855498614555812704361117310536808983004185876159929443153255484129160506401250644079202610438108544888394613885320847124748516950028020782510614562288077146021601457721673651699777961310511291686551477789092354758746398846575990399466777161886374257315423658177426532524876163736685862299865923251293155777602791342235928709467862576174332035038485576366796986765948868327995938966181238996717659311470844490914913505602040318040153489280991692248836326547251728023806799419289500946433462684642506364701095715167040894360360294569389359234033704266348524320585038092225190308042527540577911560007642953840985493267758135544284326812315673506931505627660716917480131976802309206045068261963608473818092398024439480128746350921574213528832559816174719467012647074957891735609470253785563148424810263529590267606468027806301089043250891953005531897957798416439347814693377861168084075319677863275479674444246465333492375800053154084521117646751496444831612663261921948565775013357450031584237172943026721912339652756619131550747819527353173443941144996999339120289205600509062630564361057366001039584921941075611352230501354169329837687173677625535849715510938077139476139102974461060013297908101315671472749421253254225375118208126803205221486992278199215436226786529474269008274320559575272586325369166983058896055227014699808599827274142181874227739905927802405264940733224321084520302988713447743358121432641123967915885172410647508100081446877093244216878948823167940152338925191043790292049582609656782956598799482307159160697472445940709232808660505093777261180878713943513052228000443955003511906710951609326919320751381198177685732914724956209260672548621401218686081572698442094894712947928478280191204459853048788396731802222360705406857284075053122723304918017865758713771014885057859769043866642376902342197800874369794281760253449475398860050808003531910920273252580854527965182602346822972938648717644772598256086648401834095837482632067720697030403018635210027300856302975648267710597619596380709985206416438913756445813203251070472540663148490195727908357924738201725945228802820055188338211152782980968203070637281184114820342921087203828788610075340321191891302339362953271550854483628502594807341269264226032807722220167562676438250340469142675903152865179442025220648163378756712257766830306055912256607953550989433184955958810715436648025118807204758693210764930288957749270207576346563496417861186421876612655360476953249737334056666817880732099194232350232285619572080479971251052408120700149037809509216315154153377353311271531451898094645192436758663765616529612534788650178697962558818663436447545887076659629719950929996970922751353198444504947120044154475305805419573917046429437004286377816845988552741222628892543776819355999341927566308029289449592565419032771444894645258639619983244614158198779601391171406122986982751045739697519622476251936538355713355456986623655240769630869284892561870554567279505545162724556247285646220860145246000943434898156014405607770025119153727854603470501133349130841158900116338302689942424574061808126993956529314894121691379848324465850121483873654958016296182377730948214179398923063407186350854454450372229443572141611505392591391745966129988564483720014596007149965373022742382208367738179478978192226533112848930643107066587078150428388886579499502498065839990210932085865249297431041743196989604204740371636375081635885181972146231461052208254320571328720034586082772053999811383603180112435688314614762854966131245038372826874337823508624610058164566826475479129270540625569098351741826004064948941753854902610424011337172100459170786367870649924410033664555758592978090316399236619134396927705050475822243010305166172546787234729898397971545141601435086808227622375461993410994441768226950997132281774738222421059819782609242574853786615163422038303953231568515479291676908991417899042091483264991143819400316936405928674195881567234724850795588531087726367126142207029293537131148469705906813893622144880084843941601991072843024174040721951019229946224068782463351487323671953465559588136770137048841377007022468675948182009968632283030634515622712041986740421679799867351116031926114467799834982409884282361274077876177967324239999548849895112305107567325673968361308645684694825396723200097265339791522237127853277019796408264270230717238958984385492707122164049947016437278775006070058318987146649962000277720965613132819223285102250499515218349795594041829009664387635359951699998137896227774563594063466243904017006015009664389700659182693314404307249367177285329366495747600155767599150646260675946448119465996711824983827043316438334981206125374618824076263039146987045773124968446632000826070307319562937565412385804208848905139370529736607157278826125512993651778375179286007589697390970595768385032010195033910520700378006249971580060645785843766281208147026500765083867570709509151734989454014301965158976330861897678127829206369024956392798959042936751392403247646950264106548435362974626486137722600058372913512192712843671395595270688875535731423370409067148908272379139190763644512362260365720743685087622218121467627204127987734700986248540985721633219941708234144704970728705570904238131410302040085891314669224146740269545586511809650218744190195282711748869106853778689308193241518335843272555752638227631909818246412122845544902645196203935523069918616796160264906224393579705950230281992791375942276331464061255355141115995236758602629919610288353844105455057816497346733403999859829784653993188129809487638805849149466899954178905020267385601427416370690958035503713837344589497350494501255544415895902587321992234061502853279821289374554795369141900776127587071515669658218531742264620814013223463001002037827476947171559421992686068866682660333183020011364712366958097522345431634327776118650266445480264789188213235947787168705469580714243770213730596649118961234932972444122265821478795674748836253773768831746303518765136831726905858763439012005866900516640089254025817061474757484168343039347582089107112981869918776011459790379597070890646499250939888784554867398525978275362366981349458990023685969282774062481243494497054409442636562460329293464723992571439028103410023541066158878925607305157181916907016301537123207538688378070728401460288802257602217059372248356874758861980102348946819343653842667533118532569875642986092546460888318719050453174499248238742095052494034564578353040394937582176426340225849767258819580242586526433918557746580509791401937826999122931382869759258421317478054835693344400576975335436834668960052866108566856824247684903622513967052752663993001591572974605295459430080958646536538912911162932147827334421859833744029033473417274721799596785622189397531052450974234708985427046627279445934809958167564270382229872848353630036558369160254932354652100120960401205250893437352382318528028197422122515066414414997423874604196511873874296849498727245868647670101825126668371964346545712776412487845564997881112615239066973873431090547858297535978345238710107655677663822330471031521250431874716785062387997717962787385049703470297183943966396159765368476889507187310728883788774807337857440700837038854610101398542160113972552095120275692997150172932637394257768398517594015920468726699088132890430254080928071515429700141668026910928148036975841715283640968021489450950251663287383813665710034635315627198277776458064301291984523381891787387582982293311789484298775751701501846894315297071548503814169514628877928247311149990144896759185245631527063781738977632393862581955056314434042360936678116844010695424784664604480611844119279256277767374155852475110191387364925887275435845848036944774416004566849225180084486340990338837658202520361368612521359026488914671820977898703002132032609038054550285984196480343352387878081932372002481912388494329653100188221667887885707635046203732597582700520436602648301902445302387602779134078647742324444118855585137338860868966597768551040088350159465078960942678671117577752804011905051778084269789679314849684796824288489877662681012881214616923477499428440411564831946290625618152016881119638331045185323934273038024379679305426233405322026317094997536374103643961566808730697173911537956231812980402224621686686548828019055761752382992698205109257749516268794816505240842290682265609531491460981102362805367216512830941200604822260953545405399864322873116383598908040682350089183449488741245048817383225072027998577899671143461577638466324999302703349910933429498300824094361158162926719742736855624092842089960991433070263299196604051661719178055899864856025662949640887881099709794059245228217151291798728217476869020542171137437087914231733329459537021927085556110421382520950344486837313144450521623839266584791505800964067310617176961447667875297799806589760392199313605788523108058005287539622410601081349923448220924169896908135779081053600854496797096077985801582813678266960402263952834531194085806224126198580908582873611836459846571153094942890646741643868617596311324206121828538100142011428802745379494151683996116719877049748393891567718801768825819146353498383679738308050106662818241891005335605862412288682080857152361477226083644098669256658185404707510552687214015536160354212665857098758063648604085862257893183171169427442287517128018912289177069272650597712596585899440553016225351166597312442847393148048055897432025632135036769698170119545509280475654428209310235939244556481956341283022472818875932916994791361885224644260037492232557268170596431886470267650936087530039226870992990740016400632658022456766821924371303275063300144266977719840593454365926841312115838862269816058154631671750999118666099788817503028948184609900924483888352378320465368701231532823297897604170196888365745792169750772081395545113812399355034991560576320450053076762705549359239225005747103374007983128283401576449912137219709479925183180883971099308864363195761281273380128081402735198018218467108383593747200609505161620176571625390577581060031853151677102909086803954069648968399843524911833904160871227242461292775694102398113386270938922205845676230843930004756489337840669531972958601431729052067818144582038448610818376792727618813576180770947163674258148349511608568011798083649644115878477755347283204137773114793569389080774756224721002837478437802956661895621099725941356177469634339532341517993879967698468681662401342933605028402915888591227121356824785185999126258502349820378953403826770289576685409081523955289433549751883122447720850644381603510287636442149244322935147117289851759912667413236886119039194157036514750742165779712302505058730083209094663494932743737070883946109484807428624363596217516623293238035439532048760418722218866019798500317969117774308391744535489200740823475831005020438140738132443840517637322542957281767750288241144472181817596946816209398158951773285241869953671356795430149879232753688062919401060102927793561040488537108008089647973535140526646958398800007382047221143835635224542371605549049182450651488216207967236531250974947757879568269009942514499176810201467911589437395970709962121031311092335746523636299804905125481505268415550122326378223662786547265739422792308378237126053135151871623556689576432800240168834930803808279717483597436376073227090889351881589457073005522890954258923344407299267343423878133714424199016003013899179947964628945445672739676088844343991439086183142825582061445483061612990766168122047330826307088819245676380757994763957354807398722846755632093875618145192820011843670389433414435526298395895940701113615906331274569190078116489032196367705905031438984896958052920002121497534834603110757991667314245440994667275044987366546479828895635213452526785546663978401722113823896867412699156482760747889301064553901158357279391472778959858551517582462732089211346628487530121254508993427970083573785871333869586174745753651082202026342238209991871612287994566077802528008010192142108194512509572890077319213977479641000264303916618414422207820860099509508062248251265022049463572905690367308892652720923728582179922655610363501951812205129805649179989657030482705524794580673127650429612229151970558877464105655103108413876368554587117891133460000476613324859708105760782164865701829367825006738899150765999596565849319653446804263979729653944889646057847421930930694538777613283373676301591979763827841893879783926397918716966087973933641069002463379208434901979229347284145853548955710350810695768004315255310849179307283484982463859213870023894410105599729078465318521054320781600895928915857048536270851837212711517085461763183922201207650477398088245620688000407168850083052720801544209343251051189167022526029417202379453445393030911337046083945273106810589800128290766877265637885246022380208058456292604974227925160935240747204482338936550400501978362199952322228569429302466920163587859485652877019985385913655797255086582170947581533330337651004458609441605566365052084139927625707477257150689077750624710003988500035371241499560062304201462216728951508248797299576061786960509326059575826944521732939970856297849765771027335036964565551003991527392318622515012930889917662175703110383744758560291291169111018457205074127324201077746092758351770006213790770427447840629973647298422400727439813903440387591176435719092112491654835966475273949896909044992416156754159291386495241497687324445545181530227455759126387940944287520182234326739000747599375684964060074401219665342755300460482717891296157225978498189851479345240826598502760445056630976862736510319675600102821519557439140565667798866163026853631755044894080262041079431344135137947603821933695169402804570303627106224142130872431997859412213049585919923920849456849754988292441330474468195378173273926843154304906933778626965594136007590206312150855463735179215569248595384661822387284657384648332808707161771158442869901191975823239011390437082648715411448379582199558276813060703782079803196903460094557039502732151700103726852837218237866908951911997158791441081735701578223259916308133147239784090931970313820384739815430120886243122468135458012489312540556242100398061608817438166426460504457617649472723648600312829616911088211254482850483817170245000037899980166080767505185090491646061588281728001069656319670876630511982494921204223385725831603302185324889478545906273174791957970439819235331215889934277822336141132150734882741631437436251686469422635953799128016852204220711703673955181531040551106295382818394686607126489685853131323571216342930742818367712832199868163081545056820723923479751919929120233550999381832702470482237939955161212337602421307304915403404768187073408464144254660420028669320341854166717230113273959585206891633124641603324205319022789363160530429915403316024266202997121846237877025367710177993467105162132170052334329940200424622274992804896230733759628558698107671185307997907355299434491789805794553005089039085721187216339571005902219770829292462642620706588619714778950842620597461090645212953915905815355956887497306324365502829229363851805880544938858757197085880534709426851574291800175529189711258417655080241871125933061786419788140055608088484778160312504629916464795609804756022161650542643384880486366455635325502009934600418508042283226933669368074915587302325783203800718040061596602734453277052804351947799694038059360579231511196645576181144482324403390397661089737826495421954233850215404731114227145556542859583787935824242515801682417304595641006743745537866752035894852564841350124419052936751055672134166760011763280005630796929294134200705474323066125181660124835661059714655831461574245553418303637910117232396940693991841252492148530958361037457276292731977252930112599643629331917170863960184612608327129072041753716424987822334936067144402946067575160159642945710440464166298383849320840090095917060351594260359898584160436568226428978022370508938358282895763075918371761120062313829774681617896910654622466344845070744534590336562973913674362571312579217077019796135489395385300340156099780701320662483460282028717940854246040700724709666885004258737180037332444866508716134553286417114867765166878299618798372941152849726905082243543671134188699895047847906651831822648248102799974429073220724513165841302205270236740333331462197888564475875102088699493152844138329623287476283865664487050445144948235240001006480454135420841416160086323819466138695931394529556239286499220107082168149927017688411577463721321716657655752651800103128877654261132685726622519052945004643764233907193560959829708591783135256641730473679744486817531034079738449551084582502855043932748360867830137315614006132326728981284899197297828731876239059671329828194960077857103190445166877133081130452615489234761305317361120682078259803154283341723017448718595693956050759394240114013311125348778153587404131007173880693224263508679395156931628494425668440836400648038370301417116185200610489160326869930202153179847054620453354393884531932716614977524478087115712510785446861217606258586563920014373684661641382433045718270619559726841221717767879886063771917431773911685487429990912394150484357792627266920637172551228895633384778951099501720834066614028220775204440653876137580629057908939488501945983307797876408644560662473242068966735836565640676756299278383813452394939094606872042994764210781609301842852523567193153225220168099824656251417565175131988011733016109319985025784874149655912236773743040304032749377159320632546951601234281967526859274093068991180741934248954268353896433421545385402750549056866931860175335565514495254241922994752429876569753844046432340872297458785914477578796503452704149219191727240319891290149164488483004733496927579761765028975261080356971773226145533066786171060163408010567156369261980303641496658635196122380915175043687986813643159177162835998499695231712773866261866074552157782614528863439756761890219870437169884694319217310237158273640629808172971769836393656037945590516320707900006078988701597697607381921146131711697796367163341336277871621965311251663044641697918665181962404252738758601115699641885697717924184035662479925213768822574889045322021741431209793648850267055972318257802605145408223937438981730801055095804272906069487790820076473382370828626860569762677733829812075073861616433908960752462399939271201737724234129398179774722328276875213275860238181743689134878039058958578544531010699832042453589729607947455657072637973114595878022621900616999373499559263127952071534889384658221943661041324663781311627317564786808996938777764315076738041813254592956090305938586176193255142837114098593450068608313594076223074466254269097555086945087633063100053891256802694444151407621507484454736294428648992468348499217257100015764463240956035165940234914608010245441620521626424669357357743528342166222009358591481392526483600237883553455855688397485579865585318895025500511233671858811739155832670486908813146853915189519997346848836509951370061676197246397220759990150399486474687463550024280952149971127272451199723799834758325378497879248120537692575515225212241511911881973971741820271712644583857530900525234686036628890151744135394389069099134267657872378780700500736216187570924436688759594423450305673556279893932812414254642541419492596533619497147245649467922893553803285389959329996765669762108579718082137518662536085365785343031731012137595807860640427015716764176288588369426539485382326448718937503361453512808348213132667299782332154272559602502736474456421908931278176324759663090254591169419303125890768990616894336939290211611144458224722856089212058604946214090297299624836955805601298859195257379542195740246155852554358023873476849937912953120380345970944912072838156760736944189703050587434698448528691017678828020520493667648616280369191400682883820944399028953013392152192654104596485160381081668850961245086229826908766214668795599124491443649725329506766742188531844924888879321795874317574332973922725136319565586557182425500915129578349900309581526200443881052323173521937421967027655753839618733376437597304058641082198819895424572329244706343233631435139062308891973510476462078493614969664046204652063473978559343098080902322448223977779665650719392137231784930325411871322256595012303147687671005374000101721446784729751628502455237553844673390368691046777518363439601493118891004266815492235568500580205178433463750414718864063047892122119049735577895739672605773611109239334406020989021654088860172070820704792986327923667650354884197410346192455303666436705112168908984152768960859961743004877228848953167193979514411803609991502331351943441228763050429517466319132703659318230660155966012667616042506703850796769936089467014549706843771405881026684251713255941539991467941805014737387184689326257640200921385266889037980618047178640424239708502115394061801325324053217867920606699316058173281122022277167787177168227118716044542304564847498004856394017449211473400657475809412310461141675473744565542872333222084796387082384727778732952706559538739068888082949585163909345925196675775881832169041834509880601700853623118960821085395781035658687514213215252847899415982259292471151590337959648363400823695967927905651568220130420085520073868385276051871007477495360844698308330067780827789844378443653506401922964459243939131036055657290513540989962470056525938557833959806291908986596021874723461360054648977345490339074948524525196977354681955750075700350543556396903061737245117610194268107063259800379933737560686624945557257365838132082718294319857173319800844147914434648396622813989299154038647452009819914954045514631846978759989274186247105704432755338154099456419714071582912777024605871507916910069093282849633697420571684697336597696057473536306776324164052682187726824323443461973547990725746221770643023548216109462951651371097229671160538908606519409364083865714174167646570101188312559231161801016611198181207242029263759185105093158675093087179911362940872696621956466072819046016609744505802362420916155052490297210525756146291148158294193469695177689549258904123417997752931698435429542097228515759209126933073693005947779416477854110419432181303686014964432926941501870856155911851403038596935333437218590392758168876765753479660239107010311578822811153024271555633169669908369138477316376015415661893811180190013201100551514278604330219026828777455965680366356454690813750828174619938191398577836768395599018881885425868010492784554694050180209561689653152177076214318304205439189470480370493737756306263862347983348051883877081422044581415067893013296011226039200808378798000590928740140364367502183970642433934158752902689529047366989958226307344409053121707365292850100044959408653978999423567228692688176410858723384250744435686606321449718070927628550004568686727089172216294553401995279695408343487831479969604187295175342717140998532778405324951066630653118064425478270497434004723500735397654035165198759741656616691051180426108580166194704196378905651144538311309139836140293418767617842908053038703905849413256836634618312789546056695637204307819813665982674708765205452290396192919683979494035075363637880653533271575422789433447177476743142059257848923557665825486460358321257100362910561958756034464895710981820383635269517778750872673731143195833408340306550552387998821616408573878100360686258569288040091460562909310987142146434172779057540117466847433239307739150402278454518680228311383309007509669367124149784406024253676315459158881763752938301717123938031197968027821818235163388383844965891534905985761301491262198918720917867340727536031023731674747456197777212415433766622417992898776545605517325797130880809956249085528292388416398166041203679182424885451666136824163970198868801645858014865861304293628464546305021800308340927844910145549283556538841961962080113677916936897803628591576277919963546976570514107050594197953054682369783805291827597191650762686915186857555896646187151343580155129839963049914051038731045107317561595877178957754781837772105351427580064870495791095572481776107905655355440295324426443902521084287751490597027775362979085467403778012008299693756861769356434241331335057091224630264198047343285929050117281958956418565506810323894476263818496423706109118626640451921784180518515643087182223523904014685408753508973617018735269739315090486102614644054607858523921368379821219457222024524512764087176852335566693313871488765787607922888659077852857786907583243593873900395603678500456945916661778383088139916585321360201599935570385379904688536557494596404857403813666518894801111292677651121563670598796722632883937684789342790648056057744321932693026548931305433626916978406384818977181232427453582246287323802053395257046471429470190187600331030741384485681954595898067301158447866186095823439028627297688391072741038932153221366413305649738631589287882471962882252742385197530441702343217800602242648852151910009558932587940349767527082933105853000730663033229139793185010140656392554936358070554549528623702806815608393503118630531444650787201304020194436054415671443628170593667249064230729929632218752368582387725802875645132047763422893940713900687986238617081469348433765142851667047114677014339754597426078655856325537004225699717140732445974686506322451856435887705828293471945231323127724468933508064351042865241519017267694127861774186590454000973444639848868218249447027693153152147616091101875662374188162538751100388370176153922088801550523065518630298409424253715132602382517921882436605399615111269450692328298860250228324504399396704488828914578618004339051354193818346674521936262613920913683551322644169954419039932604474099619875329924526169983161339016721744702334604554924403943606759187737137508222105753026144368475588584656219575271224443037468989032643211870394531282091568626570903270299401831985311287545223700617761082125094810697515115159735510046194788646281484558709494948789542708331596959402436514168458155151369925756446902269072081470097704751703306370828016031377815447349730744348120508754394318526569633677883741202349737809368164443886567220533238733815619619562259507061986238666622452038143326316397639065007900172724219334734045088024902481696520111194316924059349756002798015700792215186677297397859434503923790054526020679845459920245633002988952162916708575406351784710900734877724434013909078127559100077771179119874746749675863285688857718343663619107160540070606758427922779806818934206349191849632172190269967753642510921494756078466732039812791093098952178711719273661948897251145583741220635621972028798297929881701753414030311495562941571066355673026364274984595163986665046832696086683749969679731857289666623821021782365919857144588705806880198384862281662705191117760371860007114642492807492544717862246276829592374333500739384077330043969522148389194494809835986945331048015874847016864167287286226107286759208242580108115361115862831844931123162738800929083101485396740094897159086074206287501023075932830569783264928112576714891509500779413111671537120963316416273333973911803801024182435172878859917846513550179797877477603608655810154069699955554764958062075984452500203135656390361943847363623936809450420012011289674255500903771035469790030662769075171088203502754886770340402172933692052271851321009817575170884301473814462454812273945559454406648659896876727031126732381172232117334658638435394198315780014920521205341547301631720252020590549460935413315086842080638321502065989255341895725103523058047860186117853572733800779262243936198328882218026539198262222865308891285868327530098192177612057378840298672989273322202209617051934977408138851767936075929886354628792898603804469925343517587927819881090775143245245832731337809277405362901085125896326293994798302182164900984382407507138554008777197586160242016617487731762455101802474678148722235057037132101648130008273055866289047474812249526045223430107849462783306823540308243070499941197285033951698161730617745827355423324526567463321900208119172927431642839242941704725152142859522093412093749657781608214462759685426446810722409757834179373704320389962886816479041533593505014718123490632328765835517442042800430146852448494117821140110190505790744363925756478089028844324527984681607478993041228417761086434193828920774654959147441264542441308938915146786960625227924092078311809889481255138439737161271253780605835090114739292495647198141536954284797044949736013046847419651307312576528396084697467420496370196705693442008959348030954900935349961343083356465316074373506524580447916192141194275071326756917469944536846845874636218901891054876108144832253799152675391788268675705633503213762034899800597281472825277024735238920191744937211734684073862794451451284306393859699576114859064792370025422976683218356006164237110163839977024679355725916051176171143835596272390570039793257067420303169493473154057531520426737664556979548336045944086547869162941970174779231963512813543594134335816084895397915518387742606243851979427315783861368754178390603980413503885321603820726481694876921682785456828262014690106355302289431266725458421493347926149848380779975284594162470905210866325057322444021352254417371838437481127364768619357430105920843271918079034702879636691545205762949121119445782789308500528979393725778986543368289697183884949272174025608747640087506364083939591117916429468632820457408834668011123418318247185472324030473200110987884925896569598578229093435908835284247312695473486122198296437857121877001806576787932665701287244034622003292552505096359822669566500397606915364484476376070988515900036510356168816839131442548273384847656306070122194288178041463113166865052666339839064746883789577079284048552701539847340878662930517825297336573461530544533944571645493128566715488965186550573331413812656180594180495770008578356391333741335237322387176197488217753518573318001677142342555255124768891699838844231241633645673510435548338748722477399053046967276126766416522285678011736570766272427863710159971323345384431240228907517270846376680507763294797784413014252632091728837247765745386962361288260916819746549880375267891396429224558794296946002342682040609713839589059472367640869628870192399968825014004025709845786313204243725865840518518118790250475717531136959439540628188855604229529674919296879418242024540234721406028190941278441077199323032686712917805748228816824365474625733263971055494212352428153533387621315985804738752872354592519610822759106218991503494064523769686861787193356225724715208795191462251732256488767788355634444379652870882794136820569567123872262037378673454659945517459895948917477176876770503906481598740044855779295782306401639057515225078546917025630509002734925404563930817360637137500288175086846958703080223605936632616530061973873116959342203084831319779302380704125630588971603714480216249757037364671023089117145857370792621759297502821557223858239485610310169426920372152141763945499725348513743583960666326210514711479939846289802486134257408030727178333085993129165897349054553468321044177355318659235819998209529371311304569175584560235121361887546887000114102424219363803645834960251265403671333931864505452310307111853672172180465637596358794594791554548308683532922359114506814263411385853708221166322734778060483420454511326617689813393662365796491840805665575072632486942495657586285469373004278799595899830640612396315469142991221669253575559339364982165894295945016230736227729461031812766422656122964618254009855059143827623198287969783364643884512566293960800691470261682016409084470309590031693639570097570916982499941012473419163842064949464651711991060497947678401281441579832734554150733439197558271057320230576716955501223214705398734107274232137849015648790932347856318577358829696016232020730516771578371038188890593998941716040593985698171850121401072301149236293615074774009372341125088433137212923872646397508830472718641874344256144915276139708993422439436184974326428261588291797855756326989311404168584092180621078060082353038670284900863978790287909566873499275860265275117769044192800504842115139870000736188988073709356985016937758791965487535509632265672565189001872447587719114375808367908258323168234384657023776216295777354535500496173090783716276261708107053479236360726477362827109346873284890414727539263110421499507895574843339363560873563688498294693972838638210197213443561751884922958873143880754790907968158061917325482173111778518868363662055776816682924435823437231208128129051055683716551973434611569170535234954296055429009412176703321633480997652459064541362548882365985018331059839442500973820269699453469868647607047856169931920923280154248014282212940953073769320847840580725116187715900461008032679711326567896105108904159816530643290313607519277091847463748240293456452791598772588557294005633902297748870230037137652232266119883444165034516589863835078680528928944747163737008459443913855466412496808144141091127626425174294785992230257660966587397308962541472444928245805119278296875439762539125237919293520137288457132987995069540874579509391632317326449169001480035809809302164748279625799439204517182485748392717894486911824539173430412677342668679522654846587068796479148060556179900096964324158505871491572434804100301118957885937187647898291569038076002493788274534793637974607639528546949399596995122426749617210823616714716262938658485714647739682942600045836370557707019763078919462063360196061769258668392985926234823306041274663931357900750623328150457456105281458466816334360465814864762502042749352784010998338022834279153817478793475919021191996653571747420559934446782836996867449660035084235099689704069687740119370991253466069730934688775963557015060771806175217233544351038781294798975210108380368885076850298476315426752705532087823829957319373653737252929406932047383545518705489569527538424468765091776439866338025725819440679563597626575198726120903456930703652627251453297988549961655150888908122803121489769601014344991723430095223435001170506166978156084972051069528025097463332212235974371944562727123387885169436568364859565600143388531145860484511432207545760641819234893926639690105809056429154534693478306440712367923651062472355383722770629694294488401505646786120426094523935271457467823210868026827147454564446137618052850135454586428838099379015458397308237327121230707035519269642414859214160629097772595735644044533212322056421268211776401919782455251856376735722970767068560966644633909079125314675651662773826935557477746572389711218399285867093535515603974782369231875855291603129789391267669526086787066637073008687690635678682983539295476220480203230753429623816058230660964640774519730091954316807115524559916934325343020155160146529096623931112634380024978657702996368684496041401077656370451934781430940561811627865762383218243539168622030559487773327940213484171587628722090972157729050182673389697854495824563507237349741797673122604268043823680646006417117330829187525767891573753662016593024608626854575769282776400142862040256745771369870851805310241651581696065855274726105186738681516686786738734011185313987739157825290551550445728811445962325406929850732506956078380013794699476510023895777679569881451186813570240003040927362847914616134411419678179869967971556506774896519714261946062140951160703567084554560040216993965699977744777593283018112816321973071611892148190057125066818419069913505882251801143674929537286702782234056334325685000542036073855328401616425548591699955719257050302960799922181599264927718009200234760133385728620158272718220293914834703494880825779838176227998420908647119419995844497547724655283881813645586164231880174219231153856332210094948660703630677849006175768351402831425954482141221775513060538651799380554009222820799867013172952536113364915051120893906173019743054715567044381052337734909332648027056631537940071952120865995246563277391947815956309397578917614314144178098518698914531921927762051436225377139554905571583056356727564620693585333567787907741173007486669665386180603314802400224044406159824942820054137282504468491022383877305204274464043680192807985062062542603622104068795533205019426106409832252142111398072956588232005595660223486951477143098182404245927023503965451671281769045518282763178307928968496607818249300180778978701093571980969273767450264779799134411738355646057423251082597749175384617701542980024606728561485053783675308579790232322547540060812359729064307301698721629629405803455639959890693893510141418005658558571534952055904092424938084231392752938735954719634282206332034543837281401545023156468295181635547203027155828751617628106564678712036836316999005743188202253472148207772566827212395035717238273209334201856908691737646272420130177703658180336155426389164794384690810648953782686573905590922016188635276781124846997744811307585511154258727235744130834911245200543788359443832669225112980752118860732324652168474500910165812663470870267495184465822627470871973925604701196517532140621326888638066882247228933146638966882174326188503009299990445617433293105433645588646335761134667724435950310540434819501675616966679434760821514314401912102503872641694650498922443083955300910387342790410311765423675153031304787843622992142523425103643359759524255293739910923460808571093078449928468990336689423045983621845777915025678503610676480604459349294779768610885998700933215779566663158223664962851803305211071734672806974816446022943806368231277256649111696280907743301133574191435807226005195244900391911112443305608300304580471063245057799024239768561707896841851261535699262182892304969364345527901230736183805818508592444251279423025550120623090338391061180904655905756122120120486350490412908664819174674394350946496751926612694763889140262751566553573012313716712507008345774650701567472853983622626944664785151135275819446073821456188031198679625667646744301794412628397013468768361906309240703011411079335596896766072957374296521825292042480585928607437525387526486867292593606521492610319434256150351465444390590591605790206027539719620130522855164109886779548213578134941385820421769275628928695350647221782885157744122387856321961725136426403761682999908174153414749445380663046532698386681674689225023024697356424817827634147111504258302186661506765016624891991165074969713536311618653205790384408091157309842103655915786116291129546617804297240384889680100520085795373623806273060493490970283796659827333865178146485797756206438774744806829436703263421065847045818829289517957597762218595017169933610049729841690789975213450000738028820062952827263290723647931036415590867096268120394173790926018567046823155764671409598409373799094970043152407383526232184796818424082831607988604220157340021154657097557046337170990735094464681995333675417761914943892332941666302087231670971116962033591442486069270791253480781376246955928198266092389717564069537888810017510870905640504858770924554374158430047545093312774512716156041090043715505813288451042733718165891563400421818325522272418879458782340680224919526924898420182210295752448214482115120942307420581142102561918936987903437704832612594765480093030875804896325456588645038956912870060914667658914180885431036040478603262553076463439370559496957075018562161020136235488141111172199758069013020156669996408918005476693557957810259606141726156979894257484192650209558972176123150865588740789810504414549689297541557504723040455808734794938283429380392855002815443589788562533389918305960258177034001467267930342208538484322331989303446411425687163819825960567066667432773933127612008277426062319188465295454627414352634709437748893396064944270213854500123523921708241010603092575311764849228737820921485662451263924038925476088350125079832103739166445418231410905966587074700884025502545711822685433587016531071863774334912510037829379072512717690008484502568076682348878211350478934870935884909276163416348188008941608708635304920338137216615243722067512611535943561179291470465110862877349431692501268757170704701855277520383147270638612320003183462084871477154910786156359535664479625374583296751842842432056475769410998878994241582644684598276096215001449970121990806864002356151260947384830000897406993871250525418882324284876597623752313950782179471952298791109078162702415387725171051906988559749954451288860404256495255438137042792893921897013263263746768664347843380361104077628508987655041059222144846660055055001623402192764802233913881145764528195316168268636867036266060366399842639074174323804150463938946475261878565188586963776585395385926385578696852113224653674110840838150589644172228780734218306197868236338477953158344913932046227175171087914576142242355512907580434702262375296587879851336302367046271753302004090814407159832793372677856300732599462291689563809522340183080276330926816631834075882155569177211575066905504237917987696675222819652770573860047505228211982398149616465553777178092473210911072650744129210832933886631056310809054696288632127810829955935428575179611024197578896716969308361995000226829927399037795127379467626082557617569670227451404762803028091570848036413387333491563700308592406547971244208311917954604639383719421245184385606345399549041219521278847361817158642111735687911395636128199871506454733719100157155144845190519593298597511863338097143010362729946126999765608032037989164593259818902057989860990140885436864371230079711532116658803813403345211905711699428233069981950383988776819424621647417654132470099113841153410035808440676145305527068625351837417407745223128510997563016339475555195677031084405153421989284813785931243877318911596216073475711896710921941460845095712225690014775664335565992318168078553414215883503210580813651071749198601554039565607388536553274494099046339184687263817313985624880550836386571205861722848931468076639757017300240470345890008042838238626310622103676524891563392062264953208460917689341426788472942311268513071725185607635424131183168725607153305964292819724463303052200406333044360355710327638655735497613477299242905451499976291350552849204230391721320462488338628707615360444946858792900980986110790412907371097863610290480801778476777666853004783126312025495938779062870777712711171105138430255599571171676353140366739512308356670402520509222890339210808407071637089311298515500594339006533936180456928938862936703437100406910825973911545510132414351643882271094398377170271206463851065291410077549635895117480640209822494859832362647956093581979220833311233885029083761103287559827960766635720575781478887313663271902528540232539716007868787430332739065956005672105218915687445799893641006594196338104553078511145929912766011214572563715989576582628769086128553697432097500756544091490398731113727944791389225620886055403044625051676615891751103136145575126540903324152196222636735878175366176576479451707320985715685900366714320681835186581147489261327831527826396469035802649636932869079916798152873254474511276723229206289593982937691032560315059654680199179271408757053175977543413414267368969322329463933059530989680408025478583735053387373499343498873313483648568435218971210803204496216672542975840729136602711363989750356610502472505486213729064178018875676950927849405237575218608402300488740495668755818137219432819641771460115236165487695134714606349072707448057759795528977143896747448606565040073595872992060523946054968678452365960543355834804973943144973644369321069084789486445887037966164004498956929305604482190235370571564921654748519023383924817010324663763746217638916605449454074514748375184940995556911616511238361787008525978516253961143860719498431828419178100040777261081122608151725586674816751306596386770453059117304266213007934646155704252252140469268719772355968893646300328623729364867705326033554771981694434153809896296459195827821525905903887344312871193601964672279815102526759043205043762537379571801414310162960664040751845959241579022013275546207654272460960143277790262895168088878742406867617269368856116220182698255720414975069902207103091604541978538872086372643027441809151435948558751804339887061243209751603247819215016892926160623130605004006087071689390011782409915969788883786031627524222988519913543661068593460413869255642941836404725864065262218089997251421584843017484270045816375090986427469003317163544237849821893678649525797453200366240968282970606562287029762974807808745407322870567889456469371999304509450572563137746969432030959612082217219778394396268130821585445875919858711326186923663292220094935984211506159995751179946282782924865637261799900149992981029567886832559969025319270032807657741403385809211399636466608145571188875862517108485498500626600634530696410959805366840813537768338974183423134559901005576595956510918247768771843696048534655211709870377379821833301762440308387068361368904807619400382806327171510693380192166534862598084779873868553997940389620769338500714351712877987624766528334352410995507480749738182655953921696560929862761114589033996391382870882666703838619016098996653466621170237978183955288153871075280403956014625904283115600154710319404977853324369373675089632848008230784882150597374417517281960807182880499509894074817709146941942968041476102776983932543322993778323409847085883910890752422755857592195395541613508911508463898596029080210019912241461842616956122305536604334525132270326328284375998243700702224336960634653824999664820630893943790674655290442367742430676894560824857654696414193593183849028225941953048402691188500285782681366253423025999058186896314247780000331322229402538376647152095380435190702148095362465949175580588521401894166131804169621245310355817469929077023106011233308437524055304573395586708526735375208959561337248554687715554603399319354659873215604281726387442296394099306434541157964260492216926329108666357092225369810678356462873204522844150654352245378780728123705963511289219730624894311938664503352912882484695706850327521413002218066522838510536591173034791182303087074436520788738159625812840925308784947417183808418009610117466318785310424726961651424585514474670565319795165684308464145798022230866851691504548133720802720547251989739498750119874699835175660974231757384357483681909391471005703873302953613050908242879875668337455038531602926308545762688195211685983546783206771029173818800852035712847488422900336706357131111697945424364525053749592309279167902763538416388485298064114820028284638747791522452735404129346946057464642174106790246367938635242301070045235019269456663374531119542076818814530419807498289111812286706167505831765159581216391122577099167684569944463286383987780169294585266906770011594173921224968380290264767828410106497652852652509644077352448123714053534319136347177958972998026600298609132464010395770231830028093424093028736626100032571130445630170795268922155998083048561333499209227251736257248597020912930860667836799430414091772850774649006775269195748367280712257651395435390073321976445485917670756682231714381008607750133747264444541665228706022932037492736045142234355898249703449697715770512345840475467831733864596723130722612855108889051937127053317393821938309606513690598506181401225848237274771470175615479589454741785881004464714222079090412123859226880867719096979870765981168439601827118775189732195986520395770552467843142551270263689620670650502321727742363907074827452490488156092790315073848589692541147618185180400806282247361782133449100185696460236840141196130943805682653812465719379287512184415501909142259644560054918423487514603562998146515095997816588406157921620680030938418371721195913726830632924277451357331974788910479224713583745769722517206567015621628438633518472176291534352978930546645733792926350324094811164714495869536971970989008137786025997904358912785311297489995999053579960622879531648445313972734276990638242408588123052627300618455364228328213938104030409065029370098424426257538655976435662760622387557596791356643983143088847993514204357901034815661386829280492551702138640330356366796539792057824307992250020290641425047996216970944730826737480095647438984481581232075775467065326393355333570220675916691931756198446569629428143613564783898581421935491386859033134354483660505700944575757338654399660798341889655530621147411367785819795687528917355767360269885365781782593164354446297706131127268662055101831348208759705809506133982330649228814817057118948088998767411321424566226202371627949339271382187241233404322206647891569249771450438693465137210799983851578239050546864694580159812127008536806548460774200769012327589692715233408467862845167780333079969771943622211552627639918151077821837420532294344995243139270522901218839216846503687548793473158632474636509464945296585110563836090962523309651090642926896905231788183874957968511793815408376191021452834010588186335764866310809510674500683328297838293873352741011857811188936849075400717853383906476115885223321901227072278391522724232232525824682690546966714515908604330229009428196796773673234989488595235894167427793734305216624028822270955416413067026387205241096575908558781454420985447192939096486738821047516088574435584631745569457259262828803956467842879495713588470509919586449028191148076491262496648898903585683763102431486994226813962562244901081309981828930361601045236763006275353062857715896436482175666257988297351541053396465464094557847806772551060219805757551744873363952282519885800859636067837170216310538464222344849446716624520894684690498170153834112291169804389323840119482859722825378371526353483447629663188452882426741612498967658923313273939632384450290787741749381112577243694283948420036563014169383214639351376694212422630596119006794176952215613297200188047988194148049065151628823955088618101989022781803829763943819269091584067074582977527559192625986440456236707721157487425094376438449235711582487511744563524065797042842387174976377339442534090244036939785948410010556735725388959421235914036245973372676217115963706345837088438669045740384924176291789365008305608142897909574540078200456120738230064075801844423510629387196292067596476744108169933649685065361245409534208435924643900322784168852475079798862478806454449790056971947415886892715214845444833370222200207300303912343768746390894771518410772316155495314430917740778955421467168450781837811603739958083137475122524225851196969399332032270782027006740266030295713362894709565559475228265882735411373787102461862228514687838913795594784058894315501423298410001043785952129174218281058918370404984220695398242154274569256666649528843777637234774345937547219702985179574656432144166515345314630539862150565180642921033854640104772702052653349252959517866987104450722207940149885986167210291337649989187462096219932180314708900386283072001804305352131872724999084027955981845177807562196863983146867017463387686223014118782510243877881223447629438263816534088134635137819497605970360762580687397828188350626580693442455236928384612481990351111471990328045097109346933376939414282434438266559241678773275958404127782392326307518115999047743907295934679200683988244863762677236854058157653570845321538160132304035693880772357582465056158333257169601387266468427464657131585569574585302676723748197222497440767683401858534515153730217260594507227280404174796945134539600381028414740370558766696225612090611755250294766410721687710973380116658337881622292929823482615052549458404170380074153137467570723847762343904368173329149454244696087431268742009712384139628246511665832951584024556881866696169227523793149226761504654591320900314619592363124067641686509616621658504727150919717049914016755860274251349684943560242281172117378983977300833956750641307759547656672399850155509232200072797239653315380172250606979897546182074088563331784358574947584725250344453425054286662393704590211736996191090588109323950571358517342049701520998371541278433479445256499429658978712711094182191338278833910678822711751205388704770761925804924877084014969035997153791777954761650983232482841325377807711001694151537832057500296709058665752021668999106801627100196976945895834124059167400194535126307499057544838819695654746073903801086082392466473229701346202397059668361045028914906605096788169941469706854156759081700550676700108571626089285311304584932757456851822009916310373129516602266297584692133140564359600518187571937502463469790080303618399442027989203945655340631755056636513081006175852008956759788922302498394142699088090193764981716838683056298131821848824214790541775466383153634336476312680298127461356856551623340946311558909190589438313661711534228435541430816724730543647885901228590715265262478330664617448368724593758131810138570619115374462172756204535874266123703104199605638133109132949347987671099824186727446238650119689355057344450011442873354634639761615082539068622744534426574122659308731649873326571713563753700470024032297025056426552766274583418671620338189442311377490372162750736927245236932930642117314535079638047865665397351418345033491150757643652020185694140548199365625570980887795575006574403967210012304438976924768745514216935093521803400268370266468380384749576746335301271308891688796391131689708775739811010930318424327675368969142699961681049954229092868490730498728185739762353248654592024763344466599823320628260867197615147582865612557420543995566520475344311213078063419028123799030405934289182441011036908420385813520476647026956348733768528065012206767571388233989156236811210115252921047678923037399645420820583917434807112785305671238180022638129768890935782009004745688854429982974544636415766617849279021307596644372095099224666517887151401095877594332305561247615738344214024410899775122570835891659648677672904390610966144367579588137406729006853543417213315709360972485723474108579339891826924982913646287067399949799591872343391312787617092685047210963057730875891410010777557815381505840117870037720363130000060279276638023073032724688507619887926430139415422712003974967604294543628345954918757532661426477639679904347008531489968569743693924566047346235429037093286961207968804798977854624119815576249758495605228887737854800697971081622215348337967950598682567973878279414369045349835764795429930248034808144878325239015992097876537689205542236251622595731715981090392248988643521532174616713934546871908770297519453022758494558305721507449790538742785410662628937989527411927287466647900414239971282951929637452014164146804235835373294219004331802747774170981819724931327231079206920694043879205423123248892175113402002289830086817395814013381062498351524505674957144324477725990010123662469550425618510394930158130457304522412323253075400460082319034235548977271267742688015019927162330882380729110172661371938688473493839761800319312788182976546078527958307829095556533478096626758544090906204891710844354182537422057758847837674496106720322325850258636752849938798030224616552380513836946826666699872917659962905888837111198935895821438440731856361590376061817566937261750402299329716876934109000249239515633813501011671376373918539945717316832905883865400936987806676961843530275021162557916234751984211494866819428405877411861613824121788734699849094571290563655040086481624798446440395924275437961717322016120805225664177940134662804022481598493735750823206270220656498488788737290136891132877763608234877719857810662256631184098333691340765617023849275434632110671904164128069454137852882202920136813146893206605866088730843087802227836682483689699434599792187639274272121032490123254235026845440281508042467968803130923232031119680301403601995665137855993217412005920983827265102363167097931460897537412200941561183631508430994789449945536505105162564221483480671911039415273944650903616921835895666612680866474484927423583393502844798702637342411984470646139912513956166494134744280568019407474162296811511991260949459163304222534970004680044357576552761100861909691658203780425258682793467762107448559230236741824190078150705056603379144876549656598766700287927633300175085873503739831725522328658382879474667889439895060749208052410943617132410721911161849242769140928582334749527447300133299303613765342754811750381820709883203583649597378870982199739144351244438382128580076620398694435797067509613574703335694111068697418708792017942984846325553814686135373637860485879702626192180503555253090428104420122573526858089964605158969602113154493298538506371273473790029375878252298131121241558710591459700909432402547439150745473887549164160455582025511372387471174257494855120111718217686159878396215320030846603768152458466591455705295695495504314663484496905565482085240601509680038050001146863666001439233660295675221000543053671644843940399163719079686888568589071506295743532371627575488669256812640627087831118635297701725432660984639965881376595661749611743336371851320918386902344993604411158639344754934450594125809946466530592102331932068835760406402770650375662506669160048016999545992792959273981778137260889262319046115693780252319497931354921194093743655842754103233798885248514326201540189728021837707278434276223228208366646867838461458079782969153314752618061245217906950714469062447261225543946087893601737558882666940901654728223899799800598868473673671374221252246543162558571961367241194347893091076202157106514986515041198070391175516997992982847422438357727873996880191724557547963702022609046399680848802349554857410596755395186717293864828821460259881583403294042397042441587371670506027154165071062232606419881322186066802595996271215318944457105945563477334771736739916844397053345225180754982358124026362417890288888407682386388226933841673639712849675815129605206259516182289433285525117231917959122974807045218041989019246641174036770000244682702938772537933777261339883323820463764072537513747290842616780182188894716973543264709187328143774079194288762805091563345272688001858651026658951385614249518070361361468068951945355563602690376731509470967244503778335057004230629520476789763030628534056043851507574256590524920152798214914478140466068767239228889101332945297655969836612400434591100795167162205139753274846211048429807099108894504194003723870013663939791770425288886054981157383669151736302150538730327208950384364729394671909753542921693432918511016753958136333640292156604187148850197673679084421950185093119985896991850831386792105107891875130598137198905367482149281544437264847509880771669678280945686553049384253937948491017384025058332599239064105686747021701856288938374874349094941208880647570032740392993810249251012612868251718462664765806311674314900055500064350488728617383451786566757424342376734791977968761499024650333192495710093574241549277480296581133064071380826786120363778555437075131145551470621662615617264350606983881236501651719579231676637745580407682742126783115743641313446177471532281869525336915470947817587361244938275602152073832390303424360459667876228738267592540999442027993113037238918929313729459979986082884147900182604514603425430974829804346278655364873507668760746401837904245714793015105888516349150453796118770734771521474499200556166406941881258232407167055769245565288966435698684692737523454354603963418995978034695964108090915869448516510189044404749478068780489011927638691875257155992943585778223191286095538247000281056373380600123342825126375609851987271930709368209414296598893737054725789572901829442595698436962342921903299816496328488487938186745195606904564998883570502129903294421332946113915631389821351554784260817370778593083836250379341505943884966532278348829609129575011388937806187633719207099436058959853027879320007694737339454177999565515421221772619430694536749761638728590341757785246255138106714324350556440815073909493514722241114708813461679476065245368808394248633397939261287939527015505553768415491700386309354836584257958671601060858880241204736841474379456825445399811812189523801193103084068776250416180403952584067283356121372072251813386036817201900756361561281210773755904032195188988394351367010751578004957534533804517087640237402912034410376980337011817840162874627758610922487287657644013669770572504012399069973670948980779100413130295594932880803548417825519907178798162616312194154676642063371717634938964127431551614468878336311630927360411015324244922481063304382197826537778627333500147034445209546154894295608668815107318324526499879111943111707641907538280620281974555517077603133831007853392012571201331296811765791802496779656331025157642180577058715007917047791162940219430146811565486629963497794162098604108591344810900097761029274297517678254491664814251392793187720182576383310494415893258844545207133723956202822535570136194402529879398826567869163918117651194938280039343487931452412620121962535367993923623364291751387943536240460805462322571391726148330541445013778803093078539906598584760080597811122496542076229708258574083102404334128289589925212568868047961480571596764279688642608109853858092919121589237887412968236682133888131791418789201626680231350494226081017899026644804828900029744323398698738330955433286689765322690223329641160898945969375310665964071619298973374402770689887468147346110374414739373232686836601036793322753806740140255885532630297485564429234227559534824676986076194873742211591926768296636863486926868034497340954674529931912622801096327302462538876513625337721539782770079806770915076903702272221026778836214695280449747321284399553004156387030302288396153446074536203944864848728255878235453714633380326912532139653221147758117810407394837953884056978213415868661464117041102691719331430173208381469291483708231878539209555610075581337128039563954815148792223041209833379461557295811023574985220654316373659417713815473059454416173873883974813884635909577578395030710968019785401166654118377727209789801655329129580708543722569009547293156661694968752276453033167668409124926445870662033242201723776805636867210512576005386316606141244863676897193144633314729797160336264754838668511007619395586197433912306760143021583899532726461181289805820770738643551949879228451252456778307227518102159049981103520858061014548243821433547377050418044074330529190582679106995751843781780927429818578438762352045987077183252585315959933018787544564952202573389847498016357223260496413360466708681113067306021599140114827137915878858169581914478645328944036462150453892938416044495322901575377803258840825025298440087906340670955501855324524211732019721498716394761192788918961387519672064127430146858081590570379628427303769672516078599408480534406483509267823949374448676577255511307009129708876744995208091964818522740425919290401285214434946276850326351805531388545068920772859311966087667988090938412084502504323803263126910590785202070761791426840764070759757127304961781487593689604778047864073363059078123961259911773304684025410277804212032748677802975654226647257343273525942230830319150530974497655053764151435287215048680012113703287502642510337447063357320477566796415479387475747694525582846382909347656082174123998631023526821068242582228845242456033899144980271083890651667170590572839447398118230452149377919324340969800891529870214078571923565287451215821591355739726716464856871821010879534077784701432231685666040357070086363480455903588736505219587401630514951420863886049290092107594396102588639902961102410892998168805247277995908254767820494551782749808763286437167331286397527652801592125345066830467796667434205419976458977990980070970171009282396629278637005673690836457392889282657155824232730536178818608409484352191147986749733858737566978906766365882829220258219709691401437489864503392975169108007244747922976575378341673063409581813147748516611443123155687924696255385115011491239113750570387385046783536790091327364848777501785203096930298152264720604121897432922001877557937525402858593287020994941322751961563119630078147382065517493287998152041829784711419360866051030246437754412574571510655590190559300197526882224071807296083945367725690928201099772881300727316386385516404634566583272287377489573724871753864632146273332092764576386034355054905537527340544438423276239932488459958781244178941226147892591478237866616744976902863833493712437664535141812356875500700596841686752646705384190858609277256937758160619320700518926822392290789779923977048722397061732293899909635010960348872660946166334141311991077677904790475502321175767620006352958049849573897459768319621108979799245477470789875285358055706662786661552787346897372936626372384951736005401640204877414072613335247410945210866894453805280642014875767829650937500347545824032380064038814910637001826843649596551251884342192019095122304452319324748598509986406109796928073036797194717631816320835783832783114224326751210396314122469609756800206687767703480789870548813596390166272269803739758922998535418048715388546208347794899730648992282711499565851467538254519276347222854811996017986034105992587085480769700878543077147827076159017817431558676538959681016600732340183137897216810544713690562218012824577821194871799556116847158466236137670110781558982975127163284164300004654196395577360788024910390339667816233183681665631621905561753302426479329259413720482305859191248992748790074146897659833431204655618183041834298823754490371026920211343151656709700886078032953297370442427419550625835194089036853236369724249035734231581369208904139046692250343892384811818277274082907276718949380368585878657134378865756647584872957886418189911411918299353875131316442929640926666614585270841324730512919197230977271428722285977773946079445326102558082897617106704578934321475087240151863452710911553234532585547268564124006132856752725925791804655241979473938083251136437804857077292904902424404681035431073752499799823186674141425980236616458211067913318817901870751705786782463117019156829666099601583653060509144907558258067866909612269370740749215765827759871437859620551035132937989742896724537691658442896500255963508803194396784559779722669980659442500199426379735749859470196840947501970234133967067473483553988688694188477527429537714026048165818092335262653223260691608056927199271684992904667002411558547358519548857313742110398756735960358633505478894110769444365373263940483285134949965568335032745649004605307213613984635980055857484549121038365844706580970210598841517425040125752242114481862770286204511785658286066747654377878237134952890845832941106994392914623456782986612077145694714502176400880682143482879594836301675931008111014740879523611175247388709823747982032681528209051613896682919899527438820798200281477615873441306285034411933383709070477894692116085624221382527057711584696383919271560644233905492859052417616530641201463741880300915463486113038359715820007083729079182100530119039334546736118340838483972149260022076339950554202192976478708006723644604410735006558351124405694532168920541069653565271332958918664507347080884112935646322159088763411813143576671266713450700482444105562192455359157382137779011732848016767636888052563644811696702638020364303082538568806814847736937049375676583279136642089932389370686215509515892685599905847825193406786773828909608395779471885959034016903274470843250427739525820165881422268336447199070438877980273726461795766429486570974633057656438512005853353362446309202679112837693411524332145009927273420501690005229503252276130731811934804848393101789205832955613788869101998345932788778762196853071796323792179855934040913982730964954928240135267646140929307089569952682597289496666411710607362452955702349133044395076153485140417271094599246335875885575072000195462383320983448914847331834749621582891219350910800708761729823864273934028495311609007720574174142490175941138418133448194664373905817779433071299750222155097307998005905248425117493739517758027591633581686916546838575137870443518429931464729315304029502574050531171959635062981225752139020279592118049746071069088017606896515708761242423907844825819295936156722831038680044588293069588477328176534498859571848777714265574841925138438246980621740409240200009847640404082143362691297387260734944662282260023352445610350536080890527542347398852465303095127431581333043750247295729017713077649586243202910728915101129741031587430794397349802357657925979182109074543281993969705536488434430478957421447675297461260994823110669273734712317021873293563390408756215558621262215090944084728229253527153886629368299464491385898791130145797927793404333633597118005276343886658227222071510556785585556990924743083815852356254267526491121553608235819977147949560967021007107038321674971561734233777463616076345158552733131171894048661301404795829677029036337897641721513709554121201498623015298455190777733563515652387720608874861361241630686005949864773457163325764974429217517203802369287083978090305006194970448279162954511943285445546879071568717303741498239739948111864510978638812966716583252017682299982798249786656553677053391415982871797929556029521867680737984693973493754971622460469901195094171229543830292294463171640541618130523661765381829663921139153442375820581620805500799361178991718460309133015169765533215357980702113850880494083597620542465983576292585532626846145407673348282748890624419756671351050182605555536672180922898554629256919549473727186756905731967721950199195586990974011209332025113180748521249750420081859517365089338375672924775470763604926968739114864966080928157020967452238016967912276654259211903597634716914557150615470047094357920799831858292781393651322687310856428724214361498017163474461011410410209070754320623895638531647306489699886678642441660414415151318758498946765031924649332623737587699705679439761748680100838189290679123201704356182889117773099365227940554768516337020103567975406889844583952690522654960023954000876080545542234936465069399277461945902715744122030475682256625126596985334470056245221232068389757480256652165782616406137156263107746116623589027190328815900826130991787892769143118687255282950193902195506572725761142001455914521218648356753633431853169041996768466314258752313400072834572450710907659034173167713892699607550920942029574802706811339987789126809879556873450936803328722516962981974862551366698731049481932875561002585771468101904355945777135558909467965378668354625361270645483903176813827389100768074662880845983937420664631512040856100226098054768090691417566771442349707150558702569799269119256015732084747957170092046730730591052061139926345886709676497661047906072725540045700143471637845687757984743000757263178521981086773821305232590699080233466045777865549775355241562059786697483682728749117731982882725670770154056498439936495854955328697702187008287584951864376687573258881356211776016594152926671358480445281186568730310063169682828316025486576424965794862088171521294021775797903670151360735558634637674331198707447960041610903637109723162066672870017566659705590078997503269573613195087365433644107467414821860400973909819157206066436287025493076406204554060215617646908974512192423821306693002209275948410548568502455313627953074340372330111802019156596834984284524733184855167331178513034270332304389295092293930226925462128857113476850082085249274916689396714372876201644298026260337264573349674477680777959970933302993650716868742690025893798553612549250129801806672182074151005337690469338845248271240050118881342780819306296744801889894245997445899228313931164492060463491667409359034399164074270849743226064300031581794957426547463895425319414175318543046208368594915335486575721639806170549676582047456264129138089245301050647151769911807760410104089606567290410518251121265189262969695485193684891544095794274546670468576710895306906635734497570451721695462347670109571292083991171674893700505788435651563375612350372772197064821727407520553296315796557276306292627828868216584254701458455916413155777470242728066798686651063194481198675191657589834322797367819402383747351572881019349811737219832970621429403852774945147692195325731731029706554857111893409318865584532907278151009987162308889991362342154245315810682434875233355731449070908220454015928018334725801547013551619219562721023268745695240524628594343016966093165190853383997565802775331618678488447858187636054716539119933020483366300304796399068816322338184138166709882466677060283558117240426443492297024378592401177265426389282299168942596002179832951046644714473838092921041645853595310439737724443152751376866271927744004246199783330542502629645512454207850876673343100426224769779871738395243684227699642267016727120007329720432103516937146324644512973883034428443332963517809696044454783223253980679513963090248320753090937216418947530351893204822701276632846120442044911885765321571894772575626837053754749335934926948494833498876688718317987427409045688028362790186217941844379135519491825965636793345019440198582592604627015389060015268316724906382219411568216433000800355855563958002098972391653700894923739089605958383048929405884684314700571873695836188932918126739149560291147479908286137771271845712958289558726066304525838709417628857335560204564108068160612289337074474836775440852557565937544849659248229183451996472459111541601431862691259266433163263894976786922594491130249886731134778726234615918291068568829376304688378360052683407002551495630760989694024369586679719362668522057675018421260217160886647216913515464196244371312371133549757390578447922649488835107803628183781675206467916730833662421737164681115388107922779550425686043172961673756808426945198202911964119524723358012973280149941326018988523060986993352734526980348472876053257153865810633492716779288099525473283554986299757105122072395017849812214957068107697186114984946057320647967556222856675040371187759527933150473014517875796605709431971825369187177161037203795988216415487690714525660628547811300677397443365698240841312679204650723390869957508620333334530904655819859043829799589065601040463349350284338549512187221478633107018952636645520089086958222171195105409143952845749775206401384623376638933102173980224247597093513848452233217805296447101411567473308462502768323900412009790039213574397173153003825946470316600836165517263973868095453650190306838721182212419912376222107805259416932266214089691379069245321950159169135253385648300488340057869750619462027224984172271435546541640751040690289728391684907046309784064878195104132966699203649881298911867186461935309302942969865534547557102030906854820024442502477001531341841641243030798146215139105896563240542177400417436473327060705689958772601355880476759300095721526683602952268172806617167554912598436869898451970801581639409663177268034354009152454419165330321615295805892976958746865627046075036459264182857764173272078859525340990574019060333520888055135243756324784973278584319971414493965819911817963736427433463633753332486036377828327202432942717362499823153301449491977421924552728260332008435360519567992716320660220888654116886745006151487949070637649086508239121192988466255324312386298415599649159893407994018290451843404348529520001269221914786013521895388508954087532474901170348567436545789469143726379668703861886082814089255026781097282078058022028295931354073260363268604237484712971654441116318201239250863698258914777048691783965997853196265431750921975136312555913880112852633622296699834048935121143328933401375829844307966760318604773962459164909859468406193085798580293452272979608895959404336320660107344722935397680959607904513605705812751918031800471888599405092222595019261282603313362595416630250464759304316266404573890118369027515241549272401200970617231912724953905761702001252634575749481536141812472194498095068856616546613934533115756511167869377774028089775012734606794281484007279102503391081033873801117027308915168631291887909956140073810680661602987992402434221139195467933869851220450253297098780952635984064531756012857243151937995195411659748922996413328967899094118750635345684916444535821961438694267183723644021748993587118914599520106043196972734879768617360663197021254305278975761881744823641785077443410262559130824372344807447632869657758349293104240296949952300450609608349176849923975674939072539534407356623412431703061703303296111421770976417874790157894989158799050208384708335856793185475025714339102183678383177321962238079334252132714658158196138493472006248818785570341610193233727775015132425507056100460231754697548592598285839977724677571660545608064917349166716717687011756032248221092087372438209981818527634870128433839499942253150218196951800668973642607028601732080241474833190832159125527797989775525858038509409062271614379184637025590951805816476335751550082816833663374085764117569223571723800998858447166743408420754686836238369506361995739987622556994105825566821806990682249468314044521187414267503673774179475119718749146284395959220531394577695938596905180954048664707455700681752714306404907303157877799914417526349287842807080140286362003737854908972693591044297559654820844383439773576663142245136671435786435134465607497739296968413054145317647398652508054904845091442557531938940051206140184291329783248154113219474417177992237586991735698767509731780268522541959950914769422993340360610414314808677450723507150997037669152696669723821611460933104919714916448338633546649160446029471267655014491764861826663496279652915418654934318305831772006527976540296107081113361205314106086278536167000836222440246835308386131924275281514010787022933357859975187808398628753668048602666405293988009561108041114425364693569081620434982683299114677606454631788253272976400338052224027635446385493563737742227717261366534364892224276502693914896207052256450916598507733394283511953496781032823078323988317676848053879800252786850535345212553952045017337406924828477577279816647469827533981792470687171759688750981793241289390661264768325909696394961433340319037853906696159618715661108528891500860673797222065647574722147409256357819188302491902193219077307925740847855952172175132918972319455783013503912897435449094332456254513713634269612502327746525705594731855491504299452841190354684702091656622611257649423305523481734664914031520399783366147108103755306677747662597867079886341103147461153365736023168482873276294005292745154106674823244862611432924630319021772557552926257462977866621488798771282178517245757725654576534964401117294185801722213834322404621503387058250216946071211362096248274097431830648161104531372263705636724346791339657502507254528942554188424683439135839243710530859664160744225220086265822732423737195423898403968574512456492133757717241917383935944722587246926691861879818211048923367456009867539002473876958294395393800928017421186945312482190192619748005220820638911586144025548388852013681324227340641330322680225289242115166887617689005641483871889188953771698963526497943475462267887039791004261942895860158811267449999031416814476400179937107956061193082277362892398516743884427147316333416816354191408231208523338792046644541470767759393769019676758042542551606764674657159133386852254422330378972924587940728086174596461990910425214415091876771819005508213329384528586028341723401696112476607373641052712056450366017536651298874648783190242580989555871261250736336147078190098204681250216562525093787751991944106960181980108000699691237012789096178216766763430611493781978745370108188661931345160489813004756606326219558484658929525382787091219402577977748503276068273839786553225341930684632661523741066176840961906967605414511296303127479414791764327465330243628166636735554816854112237603734280006300747500854453036338993161411392076621713338983552138587888340452459781558783114777635431775036536708959291496631128782850802432548176165160336808238838762948003028858267075857607319708781567845996474881251696975018952608166314397781740221500381535726514657395014232849086835213661963792668251943502615332216426287504924858415142047546234770818764163185084166856339991346471946952775607545532254130980929633848994313828416180385815298309278293956211473140981256952256605473229283772081392936124517274954606835720559087300819903906201613086653026505313395313622706895838446881209041794533589061407352305744606991058637671757251805947992876859884535195674152808899773435654030157012040090748968800556880106473074692093510996026266502940176900454392519958737848429758800751550334698051382553632897984268582862872736487021308717017281179370701097548168096454940452550689066979006738947684195838943699671363354249140265152085451721227335740397358300708306621525369613074236751190533662341964430993876092396190337644196300221219821045591974889483531508467483341877733860505208560589030513060284492666430092093701429778156357559086231176484821987064943595950350733059601047323540998389670169241219913381531786112687122457605562693251736691383217453576032058925748776280407411260204984723595357937827700042386902265971178648890114148733371125394693305483894120957617639323094119721808339509786918158180924638381829327655100341745385369561324894846967013868202069333147663000207614912815410172762526605067421514430511856591746674684363377496079152099960106670133631065991238350658466452952495025213219953960541332966767699153618865545849479136288651587139434048822896377085441909769363216658363130060761434541223964274828768119260888162531488381018610541926596458489913156857461414650474258715324966389971306112418860611275218250215307281214285593628021019646169572921600957617968397060523690775577826981401398140929944648897740695952600235045672295692928992648333270584725844226636216698522002361167953669447013486451437778082873953473812812965705750391138704954308515750852148730380227578010753749463216856920903119877899711317565343860155228800101089969048864720063313973835938632986230257710294460700975702183797337205228365487762583268154714493073689465839345253253916108632751221498129790799701397514282920244787547545825550972941417640178495621544034233986978471799424796052684314735371695524355226384157840853555152949957396325506426981952682636631937633160319381328388057334223220288782869288779031967273091796709844379323784121109100152909283198323700261649222616442433400446569623948950870883213836319483065623236720479201160544990105581388813177219458465226514505764165145051435027161833648996198051146941018573260524827875145322880514038296158785541184723421922464545870325976585356238469512841137789781292099686214661432523022200978887873180493920046417413766013344084861407172062179834856929901970465366038857279802460605440822242576684615836950735812506803754036417770227294042707100463450037975227240246766980488510839312018969197846396370517883501047184175708475402433121252105359154039545858345039411233920395612762317012188218976840918289949049769761291953248195252547263775621034344585923630001706493963501258147792308132634313609012072114208113951157074967656227900258768374360790804486888367121615448473917524556489962570291293863103648325236113976372944816877798923416840898746326751491148687112352916084258772328039100367084626832866415227425170006543069972436200300549186259126714695965776821265947533407255044977733506840723054728504885778474701974101859243522266354464812876944688608757873810038665070525683782776146356359587142395279478545358878555491822185264794022732785056863508683553055208875449582109340700648178795039323411649964153643048613290067047070593075959338223190878599401023197534122202125363392737119852861875751779446036402880960620158488861691214909904560934703453750000551422944697116430697201155407442040745143678230595373252773588527962437962435068909526025487772163843128254486331826155847906855751426821276397449671131484027050538987313077111420925604204541227201093829356815771509981752473859999047403781242262224532329458119498264822723738297804739163982669964769683316021017140466897522174569919512768981088056273174371528268394944207436834880112206509920814037735082508237947093514228725971218663376845624557955748568716157869541808234766624254620965706501275940148133583318974685401523031299052068396084020723635089141206387476433311659472023434026745933081857296410990647121807113631733071330207157889996253094865834532586191419435843053518430484883541034627126996464162913084495796389136510184809597407225959436435452675417907477646057809064616527089462181945373770486460636768635748336406560935983494265239577923755664653538347174786182569796337911679842805764121011090067144692472203721008219740457581260612729140726659972209719488945348106673765833774618776782623052095057674028398509440736483322289940990456612252411638731245664811231413000170737788084635685796656441344396891734709187281412764768407946032531816846727284830729576020719321736618002974832617428721787259230651264470574137482136891023367816962642336020594724015165293423937049461630284382311750160888458310892560621864419016294286430416045487733344310501080277908356514102829240891340514658178256991463637744916834662159940466089238017773656198369259593489550526849119940004732492734830148962333272701362347828708979828632572281712042213496244650165180564779948277742979403604258212258873688799770746173756582164298756519429571807266734144198732887141318365668019538483650252776038962647495675355436469387137382043827131900520973393714741719275812662778954299007540252319206374543599504349674489488655995847756442844952891511661370535379093146583540850426405258903353860368758301150076717795221545003633676512089791843898236445731546538918778683165020063766268962642033187071411716743091191554549361957491955914933040449993178602288286483155645972879870556548597576828165480693819225533402022489230854895130320667699674414164966528164354791922105686533583781788417384620655011689740864533551840472177656516898270612496904085694531272640208919567076208158114561347571534168644956447452555954354476512305953002696192352972018456336801336496970543269258248613177211583692686185219844358365443644673805082421814985599952400583157517089684676034606750847052812122217631170014530336594276671690138430271822764462791276053105470399398967647842076835426337393607463706058801831573290508920195731684101017625520941031169355666970247606085517446510708455143921680124438489049329386173594029994284872921608517954412561919230268148852897887428473649116128123716303074151283491837557945723226351214282711010496357828348106042196088253736700078866342147530081562879655752659733574249839910946317038002245280016617653767342797148605456489381157226348579720490051415290844964924810584687118983239967982873305481938300166809806815063840484532225381733086861925675459165355100247624534563525615868280331220829088190173824605937170443755912169879244530239926893669306985863885908601437536952546749815629516848706000991153141211838183021227537031232989778813024533938539732973391731089510305585125757385917541190025318868096169263627228193468721112604203657634851055351610770836060433606473600152455238260533804300975319101491341113368146843480932788776326203295222855609390290240271982358838424967358806253399067340517415296739691898583282453941523023262258747815744753948525741950532837877443093059053227679275416086917825754263596184193566743606037324798984137429968377896163151301919888381887069470973657034920530894535372371199426029759625304503835541908928967330149418536456279027206943381562957202572494336414704571229416229988350582863803843372950789599787131075343130322322321930402441048537253222545277411750281866360814675757495876992070816292245564627643148165226678346846384869727970251764466667853844576788272518843973721199877140802403049206457521939169157685692555854869027024622639645707093591162663066623615643423545076074629519260953381636223576503473299257654014038821814347507474938957246736711672612492778864478943992965433629603476829684496046802122750578199678289550924960062957022419503970001500523374864934447134697068752638253512772204570900753060163587070621432350057020040800456572955757095684677890756899035831449664709057417784641910038169414632251333271941736876385951221720964831687573436211439363555379797745029223020231450167554912767837517666837434578003684283906051791538479089432167350676509744274061990541357290800490250820292919673962294276101143277059897293436520224773415448450001726686145733753698507603226902205949128170496665609652759365736806950922827387877081762778268474558794718909995458759969212982788037750946822039256216002657653794441224970861041001123153985667199772695657369511689765814368135813516852933850810778074967682427095678891318302760926598904928965752262770086902140110324722840664519764240553568559928058552326744950679406520733735666610812425720088086612375745253028404203392252499544068353825637734899453368735206817946197024160765670581962293616332604243144690509168100156406832865851840526013443047238935139839436704496019131176275099695414487079779849213387154036486695636573820670943615562626908186950811032355127418716533946405520810721364021504696247651997193691191434734191950056558393907598806311255834061772243891855891349109921980063297464927898274773973817285160576707403933126746534158258554034070986514705870317081008562620361959663354410808278800320548378991976919369922340701435993547828611051800441557615129196518420784421377625866590691165544488827205383312871169010316051728482536279047709793372776822130639493276168421399070904816521486230072344747918128614851830613339733960881518777557915565778774243684435195573189832688107273560476333645245800751984479908729037921187581712453641501725601405429871868396446857109276947094866404811135431627927137029995730305862506904155033438999131534566896990478405539535840005386574691671879570041589926137797279773829411543447129295515787607270876991873269657241478120044871456937319171119504338957552770325639647326420783445772063257372089192049148639950179645188400423912964485972787760621772210447344157116472489671674289355111479352459810763385010939332729052248309792475121542123484463526170511072609529002491616380316736398787116585272822210973353732756298548013357785200952001898987596931402491836587256309033165204877058932085002282327132908016690757686847518665828606836911593307591715913997254493948280565298837548562535811217513223881402233159161999063288872518612524132798296312778865077843353525137802177062710887259814906382374582337962369497521611313539593335635916895772942481907756669598278902176278263462467236452450546425610153407304979095013285520993027764917332814810420885353047085032581335660760417414344502541720264221470379799313950960335132584686614397924303774237947188567425518433761812234249262697838512142931167867173525548824238907992109910326126320661315877686622125593069943134853740591940344526439213892573465825200858659471599345206759520031753390022851274681337477986968576800209036812150000183618490889360455074833243682793236823427803972381682534714355833004688566990677781874924993750113574821464542695370806971874663694408439950644240017779544323489856622686815843589727134372099654541443822103690085477050277533808945655115031629386978444106309027515862489539989166064098382896604664095869038937322419231072461659486347188781006118576723692780627375604100444357237892113087132638856264894759987832257248561258781535258958086858656319296999698604327652341590605464753078646893292257699548548121685092056408556943478116791722538970152187540122858245317165400166469878174732348501953363512265601028607721477375346250270642006108937821332520198101874556544789673717438093334950124108849268928171661081456492713136807299867710514519031782629571632057760874274809190412023008833475152395785234200632703951583055565377793980643379532933043717063098327643745128883282314686844185978515043278302237165168095734762992025650231063340576003753044398301338313276650876981096768533055628143532174936363170891293916964281659397024938817530624493612483868580345612170826160067099716558647441669399416324815276161642453867913774426783622216141322023087693723741010806282121111931346374134014577257822860456932696861063492281056960313548299715014510223760706715269998392160304462396379514126256476575430454956445709161520035622986763674838796101235804676102145885612652833388412203042957387524092127347884781096169087855580234541534541148661503889194620944367610073717802093398498757400228762380948813650336278351932202488724204808047675702641392639043368654009340476513227970236761373373530853136427850539781382521310800589411994291232710352792610238080220465222662301075933591798053131111585950127243393957296828097926211080237017927166856702967518951379044459163657339209195559397037055369118032004420826261553740000698283800902639347203994415914617337827662547789193989295900855467824037527225122087584709537641283905845378215389928776223364982868682746829760219213398015202708912916874700720126381220956731280602966605909240866511342176522452593304036170248178850031631778216719865781939729870730425714843814148825637739254825970250136425260391947968383491053792751008787544171291665587725250161233746003292668600003939503573219874822930630826175339357135227296488272306788734449832174602250048496565077402831367722893227988390337259026080591105025336666463191401583400520359918464158837156935974375750870928060826604651459441807775424993912675772854957988552505821706299746461241189075772094266143583915211514360557580772410339099687886548576107504552828824484954756256944335343572484720003103320507151853256840692878072948437311979544126223219391628657452066496818703992918055068339050137743406077000631555229159821922825098185520771144603135622216541130105229669409802550573889653186738385658278389061476325615605243560063545924344221041522279793977108769064194840546272060623772538195740520680276843383339148695491155449687273712911843910393531747795539328745390450690094603214805901457196334752057505697577015888975495556938053069654504205099259638682280217268252143288671246058645046194170943082516033190283844616947163573448385683551199046232238098471662740374704846603085525721161879467241036260129256036277252776930192623446525324881830936704709083241080964540613347284874446958568850900446023178590804898103691176600731034169836031846739611056212517670927614408827351334173583022015857565186300409929081663293477667750550730190986453422634280461129877616752246915662507923558200522319881395439878879880506553540085641211185999356724132496734096265546398221110579336019870707260932097643895397593498345870381933683514795703175575340248940479607188588857608282345067598334859001349701753189582526898508593777676314099531926554282087919940052829914942438718687247256047439528716647438325225809024800124065027053809327011841907072025217116264523862544835802020150539013904204386162015960560448594404186972223656624791850487602567975860872195646344323599137234115535432916085298968775894617900205662258124512394529983006424026300726450911736799937573466465948865755568736553953035693891939385511912465063627313989796815871961122269873617210187847630968659544978438147874323173192001566248468299585320630216076041126035331379115113967576462398901121278754060817036081403355703385483725361504637360760121748407211879398667244601635424131279517168857482333496596947397517700244511032092187942297427936310508884427029451239459218575679584477488835409638668458824746495355249041367238652489621485217273645458098234370124028465766969424948889128344341338532539803945863923950440204864204124943467457035599322473909259912440775920481135370116987379752729683454576757490108346433568383081006932918833784853889798915221587492553879789366711095247900446777432758676403098358005206072479755267812436957379388839382435961115115266042647922426997487236129309554141040569609045481382404709142057279272044604538395794119636329019563913198938784229459011961954304964260022656229238380068099567458106979731454113237302020695260699111280318521807475325718577831134130341302499483389605090243399045533275688367311077452166015625606360939794546101063253239962790796446244794987927336711982176654459351133229454517375985308783520238739386958293329005004928855843814686034819246527113883598430760260423511254505154677529635874544965104771593564511720366067778622820786952761638479358994072920022784120472974935596895622994841708544908133547147587888884912242530899977726036156185224655987116310165952033377679531838065122745101950085734380647876049556381012060817552058560536086522772277579039163009865527114648903653497594680337286520365281134744492799413320001020327834940449615762112331901505353238367677695104069040582083633297344452762867772017104568388051492029020959288556733275110067160640491846342882066408066303990201466275665744458955447361312084897710563293019471094470807855354594490273883297777214449279709403719223317921656724261149505975248398070126665081577029470288254836249338311961883351259863274717327800713374218949625360004983933747521102952989225532042200966040259158510780691573418470517513778134863128458686608512658148936752934812184080038169433426452707354996941514527946685306729656728868642384649460361804918732689728392849438178628722160191779349680596683436556696791968635040872938580191175822591273552974616011922742255676726416076638838504995646681775886383338257354141116357697264041565313053466673079992051529206141979013066722997903151129255667725669417319853743047951289824457112556996198195372851097771817790189657771203092294914865042485924319687790358587211486834438988339613075827695038450336047761096694194168326563660077270365086150585520703984195895531310150278775074836042339393460511290836565503808814047978173246948182912177151666725974815981747302888749657409562851547452666357214808132134183867746426160621885083204434344306346758066727810193572925814502876217929242851296153360094834599356008910615843353378727774772339743035211596520034563321882261175232734193013594681693593652411487143914960115829688186111067255474148920249479269630905239583081409323213573818959466938366325014256600437902073860740902192347932835360244175420525807388230054937073830010639461911411925020750358187108483887970462516957615920836442110496372883856911633192583733453012724607451869903428711333312759329245921123703887156497145479024690204108389438101600389510745322951322789957766058935234013732992603535495420272054487282757224049314111404623161073425243235421374451776342982534296949741171817791941896629001487967190628256357575976495284139963551418325337627269027244594918406093546202748100144953982686029252003861005126703943359938901099578056137180157153726155768807626992136818865568589229534523528768939624158673199307942391547806297888458193927798841274320117126588729446599810263356139315668190385909393847580833068132855386262628854818609268386090076369989861869974887418199856483772182674457010113105511348751437258136222601854592304377549836431675582238195770922667722548014491933839126259091322092247091028989909755986754518259745615623571951636866242928684045817810105071528744814291434821312251804145420060693759577537898631399211475798631619687291635524176773379847637320660613730901640064817669738003770682047786287325174560220802427137161481088083330820625976251091395663470989834092911621693420347025967909088779294766132137011902730641303639445172724715438163848808843324406385867507938127546489777411073437347013685413451273045593376639594602797598648173687760562107983846039561902891206634781639952887596074680626710594697397191676898555353100669458175468442632126931122426158262242648494459848371636364302102358151101313945523452751412507209461617334669883082849456676655073020986232716660016807382419219418342904897748655224907996422523596646788657112841037952241446612616811233736627739371573877116672116597957943751369721673554198090212008845182433928909014233744601326689563792122570142449564792781850634188290561239720587775438055274691763186185524171103531070171061616998047605141934918528119663917578324892195331593256169321591729317507767444353285961019874206349144976833421527010203265366654060836276233766187121793329630303450765188732602152340326764654048415696232491573169466720329287830300896328932559265716827517557795715567485402629861588506584763557706255108820342954081276188477168131484492393762784816558159846122740297700629827742632966062374841861965286068717414806042628099252629226040761949859047090687610338008196867208955860209534038353667239676320212661966949555881486990141281799747267617935064593865176442982628886712492295688588323862511303867429374801843700932393361386840286677414820705841399274243338711056059867580611595083150090498905815597803233741240675621424528265947198106953796934770845242842743599326797808355182532567991393439786173831849029356805362314808746187355743241535010467766537578586947253557376082463344051927387430635457345300013226152153969876855987948133811866102790299257743071630500264042127172657853399188286186462306211858754088036414830004928949251896852188580686344586914603096361822337925665741572567821877124053144362487898710075327885272472471658528827865723672876375833581342391469567875432712394016060345982243567660920567228806383971896312048302126977978468520469248489300355464138212975079745088487787821473254913843834516803161611370128335110962702280911320329853633235830473975258841767514843499064490031971227234766305403103556188579051825228420233344436140903153598408267301365160048156115553403592661523780587537704875923224793548338735017997893460080718314568602533673231824698355665081513572266143062596360335779296078312437595418946414619030281724287928037982987928618309004392784932095310470427941351826748133313722326706879274487805745017889386666600205594637867454446347227054701768836436095914695480966288909266214109470745143372053579207250891295962296635048933935705888067498533307221611288467377727533416807029724656445963940750199459780924787213309721249892172626119789414477139935583453019249362358072975829165640890158933235275370876694685234488011952828142841586576791389923791613376383130075959867377766658954372643893396224055850084407938500998504124835335467874690907982812856271273132330144688925579654119525779362154398058391131504936988970307270762995031321118170166820324420986391921281182535825731740769904218655912608502758832446871454990827397888491732406427005164348670706377669666748090481219407873436686234543488585755873026983011585725900287091976204184669929997516004292120531542332246930178182957471183707659141157672494122517826825617634199444127703756146598585411679464340456923797476962035590491356678125308915415199732492954002470664746747609601466349653702832351854658334660692003503947882988925318720652484284080193256400468339617314804454525544328359803030551477368433730295178789629592417959431624046867427849861639729003043421744384110099674633671673771453407320048109783489059140657491760206569311974670256982466670357114999144840999366486669991946211359109129456326602558948169501782695463329769208484023385007958550688138772462433757164021975116963495863653841704608873063545334316918235578454066378375416990040612120272191070393312227484647504752671402215633434228773453285561966059677910832681144509998875661256416471173511816844214725919844925588873782724856584461956121440193402959392322727524563335868623982934378802630065910697155345131339177644868189382971261042538674143863485642676010699439789290487465186505111308975171537891988753114599018439844030820014823600084833173075865360634877086763285723743366195069904362099352644165160134028206459771371725069750538020250252653038061867919082496861977413855040428742307897387879067041915860833967294314997794904373690032834232436441636271457755075684896251604359343769262340832354932986461243983821453662036222524393175299036086839691611985220017428109516306304295191559090883618883986593601468708143621883855638215006523431576777404730130954736200807555880638561891162410565842688143860834552486221261894437377435520350370655333903418553550281027247107145302934091416306925762778836165611556486233401545688777933679541394223773338753295006952952779735988225993267297450095538737446144879532369224452670462463905890263263216579959016060064938435749186665714016247659635142285753160067229367728451269764040671372035745261532440096240054730108996628885137216109574661505895079348125369171319354017435972168496530188431347879812548853357812779002157160469772749940311941065795136946758369798682838041126911901653062905761630530742038113781873173352143999468649822643730774551180129996590442362013129982857756716881148245053754981686175997623982936877332719304144243920391611064242650889372141995888875761798829165815378698017695397601339893733569837145222642229006177641998689581228819866250459132715822598405651843613638241858447910818686159611351072459059947220229390886389940222360806623466398351657773732071411227670950386338150622202180168443539922140653764005327777267937043459406226756924330414121283859731328823654030763867811923217613600473624477043671859999255351727803709244761208740484857442982461275350563807306243225649244061226267009231585400764610715971531111881532674621505870451951896116336591072521241755070068386474330932616824692686428938293411051740424686488930732145702797985669969820180498133967509703323958470250327577290371900812834930148074235333839786846898312323660554911502763398064741557445137634782289914126616919119564517848684870603891306790422391891895194126986410192055781474789082835190223918671126561612727177215198531028808898429081034267977017272611256297216504514053802636920407582183114913824308841694867489467155855756560975189564211399688166233066274716423589528322490264493787228771149353231316102709073842320031391138116541728215651191077513468490356164859331543368954248587603505141607318508637906607781430956925461857395518014708296256938441816899145101387357991393017059930147485151147902723963131008295260052464016255480785481353176519757115867052383814804411507617795134826894256707974333965029142056596528398455500444263328379557805611336039706619399921706804479620788104786498456718298007011318601345467971529550133476024204544499393599025031284297604318915673011258062427094902333801016487396539722392633639247762153043920050037058001466929847660270545681815329999846931606326649559535262778940161943020896752070812947184825803309870193085144179072245068972937844354632756678910753616493810860893960172500195288581060592803910444094521654397124690918310678214703996252484963939948626350038649402089029958955740972681216149831372930592460819836458885016486146476085077678805886935661904798228866207573513130247523492857740569144004623519764785259681559217129322911434489844321133258936829767462648493354261390832573035836184747439298838301031169227293863788742359224218969932004135256306663432196651434532595003010990625541018652881917069494989260853454896866875476558621687559951459625569799061058683880498008807675575500179661449147820211266561693603647725356589209308027470940319672215118788794829396858510313244735585802624686017638906254816303729962548086247515534935814520006929661104007595611763095800942585681287761036415637630209468962692085563456856496978638516827598429945373848218624663396283135681995052757838125859330849393416864409055022029622412441316056452462110640999865473327006090998866062904743051481605234215210314186402354607178533099271687698019781642151375582319823649339146042262916342612851159196089047980200414820779907838945645036358672473545202453539105839034511375572191889076973987219555502108239072174090698597597522634505451720732803807614406643748539946332329707048644509936951775619791535074956650249698188241499983789964738353565781005698647845809689201140750217834557444901354766063933449613662868350046772394582418110013838991828064548027796333528877672898079210477205786283772068958317246255801409462557888068863741509482031203294311685876599073519133104949835554182548407756464755798766634816439856773914607121019945915877514693564191429613022603592192703693985303542330085147475381332613498944627097049491835315281576556860610065131937543570675057641826659191277918967054392240597849399839215414669209102183246296319597326576821446583108063331357898928157223018425103404609583265031450846756825906268734278067942663782523173331841353928042265894151066298629933581915159812577839617343231308598874505218446279598509356873270756443150434552853658615008106433880167404272522233482869399475409970536556512886478377382797898568592192996852408564063522012934861389786374068499768337225790292759772191256668976079655869908527703283333984004274652132155180933491896549621598819666986058612924450056497604027277271540024066561483286960814636417108392302403603796928122237445837499992049371305921341959612654656365701827216779356014397665283781215624339561459933780409873759747937485968588582919821435083669835240108749083411005324848990133969813656059620459172460716171544305504870111754090270546902407164491424219911147374892607062675292225397440964591152506020521438022122107036265375991969804018818221220476812354151430096196139432926139632308154967521204770447746509121207382450510131098826030252286485190442697499810874367606247986452972800086347823718549053932715084036403471251063629252689362203541210782801062816558146439839705852783609389665908553799651068722983941172045280440043074462239456477857243254401016293626472004347456070416847347080383242821483198726495793721374991239006524775445719886215946045173157482406159940357294148739327109268045000906121958855750978575706631603440292838749998540947664419071632985180080443807428453533487665110742331950079144290306739610501504552257262005053956766665276752652255052330573061356539766714724473320686958345586851452588227669955194520150409508075456788543285315094444757226942093398443736790200256998800046425710507451727800361334843105753467032414968145159949619711692085560117213593814592917291595493690019981024600767275029513500419671536773483518283822641115647294442456673709213981669693444056727941982233781350664762635174011192580980823797102791994003493167281794900710899406877304640974969319305467280597320839092968181897075562123618310353329735664393785449567068094968179488070531465557930501613886000457094541269097547447452649376325917234083312582057777952929967134062578281008352040339742968926514586090042240257295767185955012967344683806594849263151262854652740978663451046672354932817704305029785598972457738250639752534430451893454985692966192724395713122494810242692668502289339644171879250782310190094132258269556228536253700647800859366228710514730494768607254120469227504860225301993302817878608347785759929215349520165746974955866728212167731099996200103976184774762145453039330119412874629092029097414104045625159515291132085605120437699980767725494819376553083508949752475120748359416121230825861244085945944196170329092968594671460725895687895624836379971388638929396187333555657346071406723774211488671818360880299400656907424479896143497239376684035762822874070147479757857180781865010590879903230531289585016253447302046811744969953493842067246379719150116954168234576967707610001102397411050429722920447355628735243168824795039116308475702697879523686749807568610899415593108204001845523128453795197758702383158017383632685353512179456923752475307923305508740720610269206897481307143155655529843660954725376662059685896516312214248086878012049122811456966643805558183140880964087001428748773418610606503168765374078015379223140448051053459287421236385738383940766480659058294848413055287262308642070297129504073811724561366369398577503172809604239240089943799057430923517981604705772281644657990982919935007660123261821419096589464888958810343628909173529805400438666336240846396626811450962905318257960869871963147741162736199290668229677683065954290356960847048605793762660886660843269733426590722545820091178656995356525712340888097131670221977006841763367827758485287845984541081173260983136629637179424529876672538557464187874552937690672103458138647958433336768131929489760009054352854824812930398739603345151202361635564138476853279285022261114780552380623433575541209763526613531090999421331035014103994840155944194200945923884231572723828959089279669621694278081685109635875767385189981680560140781619989116033274559293062035946324771218169592962873313046488643835375129946876734390492349507607752623273817038606843732004917495704152325086952007867745547311379245495455259080972365506627582027226261631988282132307275118157352157307449562498196877128026371271748800320127101292377459018858687089604775517383158361449296738232647916959455152626022846574306529224947620942811579037627211510981157895866968320462291221038992316817869904137989982150794431199456251492735197152457994154196855141328456151777021251454819054594598484798794950126737361844459604372601236561452783952240979371763019629980289572132390293567034636526542358728383536354788544606907027727533178309000829977694758065913761766085954658455252761135051709990673118589984547277553461982865198849121097599881430249209388586006756222280407643274261160470396150206732488804743261366527455011315753959357653333264269158161617228712522823105221619377828712243024043198525027731722385493659412629722413735610599249783313040023906904878743147701450216933896444591516347064056515652460845474090551809621612956024037893977035524746518461705601309160858945211485861809575770659579458180922501473062164998963405695874628397055731273680968725413758342557782090727149224746607619266812630356532142596822850816617531967936373072586760711471193005554678743066715943246706669678438834995513719176016188705646935790927446011429883647594184403258865878580851890244160556948819118935285877605444508356113772948343965782785671960772866762640084998719985184261660230377245403083866476977056674526957905143839453140427397328492868766544431084543612125223760882007464241234874206802358603795935681536786962467922547521003788039019001959368970066798970616555152736317543693748919315265202715385169087843420825433175670524474621829520454817261187047133464078719883710428448867903963111005978295607463972049008031412871540277294854934575604541045245798005257366573828644762663762258855347820198705845038300759316728912325133562562283399354383828776450360723345666679432608565202233383036423239057961024045761766873245899896534677317635233595139771265377458210802719810944019943404768281685891951174013247707381356984925023377587915808892286685773328377760577462506651164497288533912107650868772912716434360212872536721397761774006025661291028824646667006296486413695425803866713734462205274702305918162000259662970911119292788082440005875424965241261947170971590525550005781344514218233901398218197469505069337519309372151622407212047329138921809749423748609474609912604940149951327694448966369116553917342702195952299698676734766035395592404747758279334266127183159713809882011093895179283483182661329954374068406518964568127327072408121955043243529942032675855620205106559774139194016022253314954725608030554444986110339613861132629782340855306142364782419477210129896314961871473434136857845403445140932105124264355874128756821060348940471799148524354836565722080274595770929479659498464215924502812779374093968659554434933266791827734450149946612143731339901552610739006096312997198631429153342959217591594017667364774988628820028396898490063396353075449122974739536333559644888190536823703558106478345964063673091202069746184237251194064478704469422961134622383650374197490672778123028165625673117415045273918207915760971249880290045169109076831248167368189449818204473433116554007299945287925196797281491510339323392670745302983257092379914881874150817242650985608975364255810693236645333556818823573398881081228832886505907344280419513456035049273968365280736726140082931231282478370002832683005389880993337429486459610949366738973703007955328639549436666540305690817598731037436111715482972814339264722614764904246044907337327771347883946829159014596736881360960358358533295310884552213056102658120703505574373729331856553352453435297436401214127229363466585494271064635786268997151964593817835293708321765627986961902593699047295471831993664962188223012174936608850682501440422664797802834935036440492964275074138803588657758449844123262887262520463839332006951994033733469866341297173368380169541563286006985620890133494092318115439208302564041795618831164098947128844860615403128008494374227297729527785548622202880798207188203843505297173560751405051808941805802706693013439776220727783666620676235672717395792051163593985562652978316398913776985844587669282831528837247551479678824248411271464922947614861761006459844075528660950057201158072096648874781842272224796798128240788530458628148488012579399541729489147194583718673153211877522582528219398563282940892367944728261909135061778740111921468065664683196307513328570151596304879144379652643450639191682722477340426577134668916804886977062417680244959983979493384349148467948790320216875547479462464984077107264334196923816981558675216505035342121853295672418380387359772755840914771397353825547321167465318240847849900762790476463039491019098531713601467655829728789508939749365685815769646236475031820699061259542093120902308124737874980709380360898636599285127137554183746532603177940144887582087127349882914613658362380711533952793750726431570239687873365285691987286150176814581282312006321191602970418165646362971451771941403731437603826641670209824185144090152262716025835133192750124454769591334516703465551177999561005575984019098031128086486581693832066864298136140903332822205131066394648389523485937028131691115016162565697379281755152917763201452389718856287442326851958071406897017343153101533666017114806132015725971460317637495576246955407041707853851111756918745181003206437059990145083275224066821897348266596229364815996649208902581142923239632550855352830237054423572847523402345991732442096992416050775974144705281233873711282417127683977829131266422514199602289893189614264839677422489183209637903395258702326761031606114574496682085315031295590552642469215122445437086805463891181898792867475425671981220277417024700031365295982573485522719320738703303581900657249390586432990317997618149154517248560636436781442770920548244792406520616653596047545718953758270150005865053844036161196207803529983952745074307709636998841803150780906321678166747866321189110305535633244654871620584627853971396494775823698760388034150691610072485506275554072444063561967147336550965987834638338938367253448579228633927152194842848017769151023577465707034170079111749681827528841176719254422638481790658590439873922312404683823267091914912745328043829700265146397550109034299953287409488927940096682603900197744492307330818718114485957942905137254320063257718754601174501906797167085965775163907156896563350973979621272652866722236041404865288245059822117242090629630420877857575571216575685572956306977046155409559991327110613370303682515924126177918425485069361902491345203399028608963712231686272209359281806443229706223674593908629441409934412418795788765532616041918928421281645237508816644334321811397025228174118144277747095433288341488927639237881625881371155497562933394708781117663026715392752207389832867459621852779456753454338658180555730455293488661519277330301049871624137022578247693436574296123571281078808019427096540482830574826443794527946279951974856734204053291985447215890735356402041008928076275940151813453055456484618211933007703434238228803654402601536445220607459559576742898526314609496627583070711120749255576191012352831281074121930927505658675939377235734654933172428845726049645231537844875944439847365104856393433957691049334148566825304168128396222589290151877499097852918894554571005505910489227636548901138018824597864820886065821273034512442608068280168395485118110809376146339389483188939873041033797362039398152780349239731825599629272102301024649068961001477246546861996392435820267260252655487185832827739545316098261081078586321691242037182449556238255147685089689067976563838553806052537026883955065140059255803874549207334164679853609017890043538463624993333236085449062772210745842274251761951003400214485051164990063598927191946880668766105387982965924750320441226490590364782620770372426853495336522177637099689101897203806674181144888297384000278811595721686924667088964270585743288135372984062306973153467621448989634801180602033783884834920254951692013074860410926950050961939070857032063064189437531486040271085785537053447014864105617321289501452264049398640956657846518350824041181155945585745907866768514729631880495443840160208429825574473145676563101002092548589468789005215736940018686493377550073267191767263620050474288734682796834459134110986692037545352470879580462986638213954788945688226544128633502375128768785412855060977222674642865406158095970590303479812853304422105441223945528551986326981112678082948366528628520913468634940419886844291158612797982878419224023109302868860170306991106159323363097810518497446521858901683686331263250133993018050252120615895807015001711015061790633263991500631953310906103395154271411093289870752838333817956268697620233227491058152463322195390951944076710824337100412551442696189292811810732455804765685849598914399611609737882493752064205644288747949474953417178186206968227390763707779394501195359550764997247538093708444766529725914555248385040333169119906441533744337637827608207521148796802800889422242374746672061163603913784348672145201276140977082158419143418093890452557474123630936883852295274302722520565935819943871565627866229046940444724559676772245448615321278360109691988280347919946293162140702218635460864317842154326463718827138775686378004580975062236392733569076061882108992884447304273606695760901970970317572195033568684732803640038543377525049770747872423016024441049007722231744160810910759211226831763070331563065727384174481088435710017783314268923268009653483047574642635019116315854734889153142727155890583010776793742079439278859599195123947148216714780440445504201210259031801264952825848630238077810207446973157982922424927832502619572604459399282007385205538703168248209234154126647136441772281313857475107119794719205755301752802699093522437940419804958203792810465458552140704982795627523645869374199148878200537697130251407302033467702781325090609249141072299448258153711627217472733180483321691542089086354509586921914279410134565433450346174401191900531865128840374151661777776902605678824550709635004137286950606965672525331870596034249915962042256067141101232383212416188755063930289084291694124574661714413433998069358662873996726613124466575462979051620655995302716958065437292680074802581093217414203776203912710356722825158696492843273025363715551022816357662729504864982203209294420148130739400377149286819042441877006214227844252020605716723468243328397415746468949744625758129570489549434290258986183632832609630646746990561845491896532268727103605917277299654922079506202634944507805714638020178026257418443414426526762820833582701589223168318026628835684337308759307664710802399753822741485936814957510248546514303498745822251357684677909476765502608973621066698193435404050637793514020850500329350950293617223083082262000947514300800763952308668282988772080115315554250633190214402708839779756847072866594114182501551947694893382564963317499464272262023261287908779915571887489857890380597467468316215682424055813063644804700411834833916019541991005256716391506477552214309133506859198870677094702638424637697600787803247719075086518696306598287963542285612853928129475574683601028472729038046494668781903848535372851273985049247452215707730395549844478239941019403047769958789828050493223889988659445988814855832781055139965125027718863843056812410034139597690641538587570328946051486013795453283947201952925997593902021687588778159894120007446548356866832438212181051304846125739053078124006368011233599264158276197614329896206434751019195140852997044620707457639766856267844647362514147245160644898484612203080496590158424411852752972579002297578744425797459796058073732919653836878146920664278444414580084869125885325909728301564843283102724446515873740798444010144070455730260691955175339279061980448678662663293453304924530321415647727913813688689580156517891220602454382197319346246204300360994375913438009569935333850888567161821173065761122390282786855877534968246711389655923297245444715639505091928763150856789177735775801802458483125702029711839507352536430695051512720079982135861173316334233839221153042229016507461939753392306694302477811246691445561543602245382311581969030043131007981856372447865555955482755793382805407266518258356946010651156150642566768026586261909064759798798574481044979711936002196338346072385736465246689624409145515482860312019005693796569185165940691843222822944182689193017871033057174317324603571224534802760723749739324844081123936543866467821390062797590502225479887104668396160912613446264428355003691576050376457830935372583559713098708968628746460926277523003829527295015192701364785072414899812446120039216854111910523017784267610209878095463703306779469983198856967903547320167844988596083502200822433191119060071094797499343927871248779090678857048779348758006115818491507861859316768131265440587656783533179451437945577887655821774849195388637868989403285653401734120700751887508957574135289545893037789125985721931989330808042430377563357828780601953077026966463864353218603177109533393098613914906692132919283345443510484125423019656701857718321746280968294516257829335626862178543643476180164085389224655725511279583797686464820040186958810096694035462121774405802396208096630073872985379573158290674138387630576655087308675783209529478363813623254538250161683535041508591808866191422606459069792221223161927412184222183454425561832963943450600942491551082148594015544831424633922950884083885871079729203140490538554029397276186261844662509612352402197208730813690247760751242051376445106331886914684087859814711067598216366684211594094039365437529065297908544396334129178095867291802848966273751953297883535248393608652643258732964103024075025237111575332958008942950989960004527103152294040839906894519953015486551654551402447374335891035608006893557153705614414580255218533582852128318724189983578466144446712384101253150016923386008385651260708482602844307603431088120996618740342182215751879373058798236031073662920409404332365743928976809486113613058537346961859804984267169910668072568805772129066694360079540025490149928739078687817432241414832672787979450347723116333820977831183556583967661888585964382640332097564582282439143095876232062666791619622425912233823910022076615038116610220254917532790663092428981993384127894690787550452946400846442290372576879982773059546299934870553561716656839035357369707376532243359736077042467319927907076054695148252120912628031630768882317598452317464485101887637083140162172613865706846520640554191896681370028487454129966262034849764082025533830772137399473576747761554570585439442359614114006826193719441903400388810789753136681187924494003701322750951832333860101282843671638946771797051255267257228394479105283226009977059467237961249930516309724131971022985922303039298279662860488104670984432152166729513804687584352287658156883859228953819168781230689853131102984341855647833900200146826914872835768485339230691880595763298043210132147092487223853673782387956256095299896409258732114898694283809304417524718581092080625597487894297377022609895468283740140281196939412229002973412773901556278718393551910345624815577914623969686886869862307133058546541871652938333134374382924901142915195442007273324039172339584937022169249130279341548071888961117133438440414351760710389196393882842005389215763191651245812996722451113598593334492354975799585895504184003636080299653601917028954520747732382811312291938742637666442497045048565254665117903805394847346625069244404923301974265348662480859777462238487051567532583585571793239465868939807505815668301610646523165753227978742261323597571974024423155839011966695069668827231714952025399776392834769589934501244444707873982487091433903641461220423914988674353917747730751355238720050890865951378048067123893286759275023706332360493312593795984802420148191299694020683066563769160872286416485035059267554505983624534756566728647538943962776732960677857996185159890827816628517421968407414837266508677216707622500453870648302011090716650222431035848526635302672001016728076440045512645535327466591855639976973526933536567834265504519735022270974874928525825405239492758614385778522648976046212343336754364720679869095110571224506366035613732514022037997131611909380204569002057829918920159173562653742786001882417571859596431244166323851856687181022869368888275556996860379895684670450403884425994084060529934163458430941436427062382774146461629229631988282466956773606528205329482474491577934266407413410783745054824537653486688087673000203729102446783158449525043343968030520311876391819256306275581083913029602183350554927566453850475390806746778961259579772058254455460981922067793257745095799713142797318941123216501156421443963375720720708681779777333372519229556785880669306716193164976756164932170410017249348540175882821232649248843375246644675208514288090023083403673290289621959111218339009547902860210953537459975981270204324531195685654050499830859933182396262703255755474178498343308518555685281286770641741389360662608110134610950792145942736335588619714064436807729711799606675125589792789973649742020826680877025289453960622017782969178712271526879767903040331005657247060290586010444638385853636811096942143346059077452804267244801988508964794655570610924622609969513476080977179274556122250103288640492188126195013688014139790793291096465201177809444922133910512539796181114544918713707687661197217311174875303555440083465647326463349770745242170215952411959592361995883238896991122044539963725057563064160330283215905609511793891121746398074748300980422654460398573384932442095882188433174445040709201807460648826658902526267934805865279042885617179952169383717580010839683743223671156683328883407215608695233899210642934826332609915051700127623217766720907856964376969918247468036236121975211633864988855302260379730488842930215513157996873063032440579971249105830765715704292102636828129483404199271637538138413618783426302898950500047924145254110390305097485140314977903278959598393902304042515513670659650254889342966319378585470663596140422095608175110416531159135188784249621014204040000422193087504240286337059008219456744883965960432953002733924968650892831305732091473327133412187242784874028131117822762066697431235665255048735938478845304423059659046129310385890834047972877248380163376431942119690180737174162688628836529951100714747180932861008701609533071885531097449541892155232011045166674321587757755973365789892132706998314662451224166909589551074892744217094799814741329072638917691842687443300294835494288487605567438004058153371972376286390329883741916344902715203545475874676874340237995347756054327068488812380457148605675717020290907714562064230974752290863447376702100579677683220829580715720861958518078389121153353988207376286204218466446966627377244162029252585241971733464957751347373603392266587414761298555531623424024894531887533650329548427640561275210843581875831090485226139625238218722196730190161555039590368692952568868543620185474425105533526311965742114286377346890354143565043349082304720033570878293530270252129927588157730607616655604780275957141330358715121229751715313246732456526648068758345272981417222227435544189164136224790576924797835666295885840559874319858483325789089866895169040182788540221478917676501682447619631805889049821916074634428918633348206081315005893839350801908739501924923662069351026503560988853212950780212698257644758116857141885037996406924585007700859365335888718715985840827219970039645832541836484808209361423253890528496309795161025848151913678673934078534378211995811417733654950538153009503995669139449588618149275319738883489531714585356452157542153737409751475838737658993776804262877803743315057693858419899328801022111728731197973474775671850364941455173071587050422042772252666653117939595108947271824766327399903190561127290588136578552617565209583215570590728341933954458450426213208506658600691091230450400416910220817064448147707552277387054442058581699876586237785938485565980942237587167378589710728608948984011204850540716977725359759783166533318404022934759384375463960909341337045590192819161631309436116545037466847375826980149238785127990661676921385536993256815436194212938583793017751573785990900820904141143039049531560612942098692500668163342778630793684376010994882141472405415923549170112697405588043123197969380184966761924491238471584350262684917881063915499244008215087256906366251366758577793727228856159515218672887975090873676472382874908353645803864179348055646477632557281570512443455420936675610088600788825695693380199839882793730729585640938614172281039675310419654693872650301172870935700422520432296573159598367270582718638560708363287817767635558849101471779837081288245539353852179080305557434739593479445970642619462514066743757112420510950321470573675317041781862253380583573094936423334704481310608280215495524597504614647614778683028839606205363116804663089447244779119595005411965541730817858256290113017566040190504376906599265954489652581492400016524432442304523109824787348499191714652936034458022405965666844428652943451153029710183928152377826546204691194912591067094339156452750368883072881532544124253896594449620956675697998052878682525433394675654282093689436503643946260687588184188027098791020359731292120162716316255801614106764952959557082919730685246521864896742727838568024166593151376582072341253132127439471594749570536304858310844022381554594716944417153631459339867422756274966892096911586546349819263065796554951102866054842844368377152806126480404524842006391105169816437650689380008172129584937889978837444494596248503712034763635343215433936865798464756199273286829760199211498952178990524349916237306002569056301347516598205272852082659770503939812852946808261130986202140111215089626018105828484471387586889766735663573656408797359939457446203344929205757717910429689718078722425302050167331044922381291973864293108733412219518079244605234483905481943678788744774318130172945482177208595951217727408165757354888369269546838676464332476594807891538973935980940730759071466100554574092415369225344879563050931806676716550069685072453911612397284579119263874296858100061515935475518686572129068107291639899128557867334693976207323786031428008756418126735645384553442013963015642719199863721210607936031748540518760754626380461920951944073664045749217259150964982002497999481569494128235050832443569580981505539801113678627469713980754569951984232681627387874426088989513875791723329014259717269106739518380980556163730172987261203762527102997093888717139599243475626241206217535095922460591815174265076159230348628410483421760363500725742127548487826214016424269864448946236554051693508831222963194658867052663571360004323634777444828184593664930397278960517069603610388712242437767746888048015898036957855152206982877420145434584633465148816061083021388050777142171518881812175067642168713468360183083591388244511655728531936363366976687119811049606623268878412769359540276555681734384611488379764791149552855445657803747893193688613223348127030736052862612185095043042620571604817158500541307200383778679505469140760169965959104617957064156080786027747219117542406057514040481356864216873640966901983100306294073618802349061042460186823901067877865358234495577149703821421968513498404406593692025060556156080717123225598712412524505581156950909915762706117677169189222992967528972679079114785634440403971282753487734852593384819907957357339486349300313360891561169087553803300565525059821566051536891719422155889264413868406625731968656951031762400877438102962181733166044164355849353449123027980733022957412075036171407825868845764784807007070957052889561785881406461823746095826829959839920217259332738153899343795731238198103625929970393288642847293263864524017072210774631421350125931407355416067369992319624729640886805509576224516266974334776391383399525291066553955343715623054930331220727440202326979153715182564990420331777136833904974922769103515675599562735255246341648074319107872413837818567645886351518198749391636022603999119259599846727311517535542881123075009511557814931406436673572760448074804451562120877809661647327646516559098267796682537661066999790238543364007970001772958753496256400909959693467989495190496387671647356112514177816625730630466299410423359490649473115444881145295778955786366539063014327530627030310112752046525238170675933246015123550462212762067184232489697591001960306342755467966176121533860494326880365719657828492381796008222920462083137730090367141588713589667857375914762916553297281312086380206819903085145927178487488908701752701100306970120995038271322424942622993757931838936347936067294683056177435958939672033186833419898718908062028024433228469211576858101558279019929079116962857484347848755524359427618274031907045519636946179547122936776277072798758541971828759166323856671683325248014955813272821957227928226612130614259768716076929867571173619325917626218318688339008746262907240342162914918013835900545012299809681452059613253254352053702310223391970208499033861338340325474201369757702798396340161160393911262564211706825515235863431242122772112972468192814037759002540021979627038133167355316343399013059345690434671816915013293736569759374453656858512663713303445477533423244207285283673446775680458744561756499920099741873110773612135646857017876330636788943500165420535535482284188246974951127445460146696115722983387407442020575777023920809382156284164035303252701431299323281775808663630007089384663917019075235202591370679541879148528229922517578847116586033855131106675325032442039284458729039227916041926558778420779028481032863204388435882023650735675477108752982559859188563299520584044237486263075308532990558319498479265420923131453082673984842731418200578745664886359989643140788618525838371084454843551147290122017226646953104944933075193612144980125131895416972306053719614200031766501549899623827546520907206004350745741326398598752428003207138977059801069603497976473178865986278791772439477353860700738064522083737859737276468016548490544848055511223778396669210220532464503450305902660570424758444007605923187995203177158997139041586275475075098096018119941931886964053933297974324551562572566136592584682546658544220980131389238193535201205254918325138208458768559708232713906171023017479692656659527477318125795387403467565273405566939773100987515495091829613601517292433671060967566227644455807949831366159392234302584637178870624790460490939820158171635002565013620370822507325071765407724518890328640853726966971176883964292253535073183381312638842933371569970557478256732449030912334083764663855284279211034416380148355617269509231453255513925651123086970356208802424899278717135951531924261563729709582687148162142158822826592222237941276340736942156224718770733944836776620349273761328726688231641289767582616686934480535383684494229049798623099920876506226099201935964020371839789256380314548449704943452879332556145932593216896436775164247950752678086513786803907802657093194959516599525943400882081693873106239125358352652103637784441950955510120239303347869193983224240383726602437601344838961106337021678868114343834524072956479959103292165603301529609197359997310943342180937774930498941813034731893415946040843839004486058080880307609908810335297396677884929510621448764480326099869695928443317777458835404535414901146316735234398483975824198199073126947222168582635376044482086234491977666957641788224405617354337858151052598095640434415943378323479741051985352147662543783482956563450293727973557305824401525532493361117085153551289605689846295295962409542180423644735635415534246155825427231796598966379827724858176136100619609762400775367108685240341266966666055011731768646887035065148430582419457401626325040586593230473398027746406450434634098142994029849605165229385148950566874249627942554338196125134157999683159826365613170037050719523350397742136180487179333672342634499865966405078357722446150028711828749487921543513284891915667598173774104038964509223280598663475436806485697882804122565968972964183188446001101830528589808839275185676859210241214822215222868738525949924667913188516584325183888030379372418588181348850619807888134229551055136557747275377502696987548596045703202838269555189103055324144572028335922841431103063286544936286390204494321207360198675861847106540061288268226845184892590954227558274157909385955906780402815361714877529022323815347645265725248819876174339937942898536603943529176875797576185797857480172322842759258874365102838997687841795289476827901586723880674627086667308685220898669393742743496024977187679284799732467180834041197774277402129119445195094343820995518637832644610841718692146272659027760504130318644725814880108749502901956887412432185743456224566390061288710081377802651225725397913470769143121688625771408492111455661675309804780073011531020740515858118297467422981381843734129013347742263739413696901645838095228540354090820406273865954309081653289188493552772308469864819207955637832280159265394297314377042558730521434805111334798803510775101207108865364797986102057649822508074032421578189209891435806365758064580488004162384366320440052938552360547914395086873599126466169470174546168510508887671088669538063824955677982849508896504249914468106772793325117783027304438595772737498735356083015825674229482133176929362876622603130478285420075789101830111513426690918164010162806868206219071110645834485022062630574373385962051314140331868662348667947447242966002865735398117289215455694671363344393110316390890425517641244434843245094404636997329702357612439730109766507422934137800991294670250518781496329194576206924098750038374052253163497553415566549580313773054703286936073264249091307244406694783864584680013545576075919762333617156278586733256610133885118752568262543071354847314564760117784751726821393862382135518147286274803972384587265171044385727787003431747685100689734927778511872638559750929260898223584586451792188617350328307096073986510040863083154221578020903573734283663266717197853692560917972303537827126553539165795734835338140071410917103189787113602467422467962003428267640826077165032359247084826870244224506727546184673457471768553668367209584023557758904714362484540813167144979961581143519997654601015933552458205743244941672250588138125779196446316343245174617524201213960552794418082225155947449841536249898556224042318295085646075671366236192222090512949321238924989391136537348582548635884630081590899078598880394734870845675997997920289367744489578537669358763978565266554834601600744439488973687393781522400915181813909410903781875796374865181493305416955529344874039052229312829524704606694880660849470321144505090961322472576983093737792201968162475157205213382802560670257761051715284674959051166414953801908628467858600252091578560677698004759779974250298041207098427418235926293325440085031700760777379235967449245877650088407620105900920788737005384671390770999901113791515034791153746000482194017668913070622188182251310591491057168216078812474148171991189717258803309155118887773698541192583533307534331185146952425058776779769766745581554371336655468196582696004232522492527809241014412319949841367554889980187229991636874367274416939255253467477129406314281653437281152869751559163867876246616635879316403707818957216671031845487301785499289205001438936694965479110212749884786876429026356701149023049867042825108241558659201146355257885437355058464852161021699625685683321746851163603658050589129851005745264144248551707846209369272690267585837258200314160996050509905248104796336720530942085392679206281948764495950213896076142163706071730348522189417882156837321485509745836183953712745416671805830764718198292960230851553076059152964019145431940156042092800738462879705109823449208619529044946066799679819032425722752108983380062119836344532124841958698762039603624152457227681992692226386128622372894831442324185473891477131662139852766896229771602737218860724792455171875110357767626434116761000692858926033845634041670459278658531264206900591746497962267182412551576070063948010022832364384140750111478678655730097150992422780660843528067008533284082576078179878973725192062675381818766236930111704119481379076906347255648467958287799196462009563259158309234365238105723906596483888770182299377330836236838773693956544855862354801506661880979762254229200611998240744702742223275975475293914026701061659011730724456867270564134005435335500451575500134015742288073138082944417710380487402425845211208351725649733160216739498201025314360606113051215226490257008135618995577750706929545615589195330305253570278856628551471914793045797584689116388614024681906244496897494476082529291203864067200887699141373135473366470230029881449076764528402576902724356346339271770491640971512488436362628436457769910972698583618690499519666375215035409774579948060597487533651811140397179489731973592154604871554989942628339453241675336524841310605963086386371590873526529499100859334175452190493624136872083440050819455505682592434586795396900202475937213076417223833117206779348930620710537898120225010613503022827538099984978453879235791254157160634505395021639774960580469328282084206870582449462869980765190805219729107722164925737203640066438524226309079933728269802613627760165095031880095760909771142043572416158452348214576246801526729549603265467629788735678907930259949667625734238874352905888059586186382525032820180795891508405862674980674873471162961278754962329427833788486058960018314894708168636315870937076327564204850612553194738164573112198136455990625877909153075812895434815187450370868030668827465273005517820928691509705398049581478263719336464050700817394412970729357290235480285367920637060281065815371454254761776919661099823923442042866203538626446438746779615601987010517155607310262970338651353254654320235118822228645960254940680360509099517830323883216518625274219751131807366489310205777413007857412867079643384559287860636176581875953015858974958351129358213976389975896124020227713015164286448336081129899684720818860297713876147121987017580883142200119766732176832959169746233540141601783614859516570033723031752335356959389181013284959186665064727846212566560506022761442498557472294626849277270246387810479203440874938246323700443979813982853279853571209415556459458346704294550160626197973093847743334427435202220728654236110702811079349925031055815448497653982920096064185137815970084705747655866846697648545146332526342932928252502955750913600108333684263191138291047128006191459828895884848280656899753544931776394755298742980056874828295355372848706673237694641820634110690623465886268602834575959464913390314784454170652322311293888550569932330083626574410130616281889600252318862218067319441900756226315567601076818603570705434756081815055216817767543675389793968049960906499346450493314046738011989295616769838719638035725620811655792779448534495227042273907512264902198554865805326043066379258305005210041954832100205155767114888166197138285708341313839289142968668816076309027753846831232555361261395367787085377683120922772039225391897283883297688719736510028596176706875124026638618548785484092027001465624838169816068069944073556999634796911818185870843178516980799816453409770767216239833878216977111888750923416823954864398005856968302077203464879220786948378404237054066583549558282284358932028814130651657849760727198656604000343467680919642714234455631797352331268572002373173447522360091740411322425534766154230629667706035373566352306348848024303293651893026163545911450631170005075416436588413259577268082603626431776709294762132774228264174899187759747928233066639968745112117997588315900964096443414699784008536788702313271654253512441871495444455844504018435921609920894672069929848840403843222724603174715143529967784779411485340166810540247309154001173680100491005482939147437170153010624544671155623568527790992612434722519747362279243427038918301275010829254267928767790537585279398007159706715115268284456982676406573099484798703679282248221549054958688972197138099424049303824880939306962890991730029825124517204455249790417313039956758912526308289805628573611422077707272177006495444043772373542408013582051888953963655692642183090329494403943044766324652929178766353581743528473049590955444954421379472346024142550254766704500794395963138927225893847807158971066515755950330607209217266967212580075459623135579887656476077488098996272741327260718047708984563439242464481337193465944794838123710466834432839178257208884846530017201633179664038514396391363357994306562521386261656906432347296168473473720473741037337678428321413283459556947198687545256259562411798450164307938490153739960370128289298428624144900305870656989782940507403465911434435180637571092529963131842537336625737362477702067314173386625424703612854813038032221277683069286144507413381099228632544003571030675115808919535319060709279039928324634061763682273866123025234549143353473996292343621770936420165470771640299569048555978032307082086011151102025469423858475171105368378012016511366075520301713491937045299565929419002328774423586986415567263476589930958293169403641015215964887230423204270233833304577938936052118018062748083350790416018591442302198257783519075278912973079701435241266612236508459407075965482356071202501462344933550765521254799677668603137584267124810571093758379382116344613953984859176793020274565943288973819248468570950241171765653534035036085982464255294176147123963121166950254294566446401897597754541105479969709766295727070276985962193766367691680564114533947417232254091169103842653735445123500700263387023479804987870380797278108822931654817708550259314900656217300296730325534554033700190677151617785576224497755908715867417039432889529709357498692295793735642662416160779550381752241522217834647844574721042607440685669864677189153707885845271275011345916723409283036023860852650826586376571055472192695851768244697471324501131545709779701112425308224073756156686790152224375483938274238470449831394281010772247167578939515254867664470944391054984374795905892340668076670544237849971810171484879217774656233876534415232629157529748592983958283982728952729090771391180602993336825505675920112423911396261598278060647445107668110474852442568229590636541864265020743351054888304985601531017144426039976539350216387036450897360371170384974408165296795367641922227745863954553901205530075010208457266811011199647213623663472163805322755452808583958528753922820034718836772426135924587122823931492110072761569251281805359912775579493704518168499557420664789562555086402816272527577083124406815870222821788573293726374843910260343350974095993935272433111987365497113481631570365287510541967055656991221667845401814847274778384550013294003472234568146824785425730843164374383145712070376018379325851981509891507133727854678969885138872841965091423411585881242443006617137478261447139971492820688992474173450263776783843186903049021286710240595498481747257373426497387297348948464978500618196585734000801659247491108659147915713478143021585627940330385705093348884921734866369126387809715918408565454812597228905129324428675540921968453559836432789457872352889478213015731262411331502742979475503148545430488439225358646091518641378577151799607604688362094463620300045259110576626782034596958267113908499766526007480399903662287159239436941375600662505492249815688877424946687686610744153363214209835372673363618387501752652280889938275934396288724673142102524238093156621794325809370677369145654038633041734137847093543500902001013708666337674383579516337729958146031213276640637562508410691041062084532775773363386413046438410965140092375985249830452926100497883168664389846695555380506685321936019797878588418329493214127293647302575106165307247673481325793970901777117541687109953502400210538708297599587747524164627240309417432212167013247866996101470193740363550014979085823932916908918560871016296514112298943987598777264967357092673202344442546085881028458743752718696219929154202914910331266936268911556242423334175976937610883414040590965052860642607201543512477396557022831442660759556165759042503842166562957560840920647416155562542319716091457654674852528146521990944668480163612998730692135549476074935656463967747267029065712494952626826539874971648671935854929637298478010756614584682394682379946271546584983558427816338579703752503630852614038887403200400850819356009568584482886073456355791118827120181702167495777018037396571486771992066801437427230511463045627840940908752673049279478705330521481264504181717580947996314525663143478413533342401089398641151681975930639551735236904790483385262788399861743520280308524971920455646694550483467551585673138102702514555110515863007838180246688916689029589793894262714396266750614460168594668939022433142955066515118415728839996759176698860293412344824058760235531986736965719905817208810796341589346188325171613660167927999051970884581856027988895287217644527365724995002106392256668030021257144412250927040759647614326886771317962334732465660717348756176055215808190838467760000419554299624848035993845809703050929956585712693686050761232503233227252443289591000992483384988658680118605052856671001142453035862104380466777365132185839379661361706211797790016299152341143893702391605011484222700537658129286143670292694458229243263939294171068163383614300081776025624377711090513807682761511279371229652045068172804634798004853852457720845079099975352889451642464137278623740694741685163591943239464081116015993129278170007883338032591773538996585156048184521819908705853915988575120537823601025393299721647532931838446769699840263922914519613155975036244367106566426784417721117011765586523800427675239766201582046432273938584592076169488997308369633817854745108611684476671695833382525157774299410302338317344742857521254988383500224157994005846664187702825361271194600262202393367990941911836548050069623633618015061436635917482453621074032224179421774101033205103592590771084368036590236678518713111119328967621257644706771399879513655666186476576646878491003400258315468928048034419881665725949042822007275640202482592267547065420574379646762425338122652504951098955681657507151599578542484535499677432282085323294487469066538408070513184765753309897175780171474860016184212260363346032707855259772989063606850486470075131013718470102764306931868009688701656819030800074063278692191734512781055926817189823226613328087312080759429031834565537512766861052767486777341511579725452376306413372568300366907085930894483716833969037486944323204201121494629639126525557398066472966550993531839602953714508228100583932853522720287902663148994424678802165846961985942954036564558183346435627227375091608359117935995333958137282780803373342129297100346520237441194044327767537915020032513909598697184097835269576885883469197206109775185726648313247726128526260132731257639275477864583306100864615579850178781578692475668557884580296506680762507055823343810521495534670543224173797159439392890248775087540113710634959959681967463294438707320127200388533763776175577764158453830702810832022707858430537083941056712169813520084319718889856158858390775968805814441276752995718860977855316731860001034503072891278074585111133603508282069214628743900924537401580517151494423278892542704374888761760333714992342220123915344589529736794035435773356606909466513910150637419091498530777256471879119696889491576555182721317258683244477586550823798211637110334903198346451689975035841321716182011567319928075794845328437328503302814476696147827182840834930817829433881237264530618307134203602486321432998923235512979058920229886237073626269238215905743579523711731858850155301040270321057595879917970551946138153738651859695262069865529586917413054272058168248528278698933504345622820523981540558483491393843570610559748459562226707033266018774920849737203789514350437034614646606802540257997722807981308800041678362959517027483797919717958910736245478018609784366260045832726835778175339683085840352249168336744230026442960188626539572181829572467040243216458956272175146439532765865050191572674312980464733576978224278863150725442033095927490070718355395411481845305723419365125869748158235306111822538257055727816262007589317438824988417878749611473748308240085653016336924178595506893968258293217914581855581233868634319465174253557042425120286100940756753488137799337585549882495254516018604180074834633587268646551262386132943039334076409054170961318613998799311956005997364896378540853532664658223605430730434587249311454454833664100260559608484719649964903630146467638004166202985344982987593061647631159153882790385820033477894548385836613457734193705439695737698787244415972133135522309887390078405304476346096557572747891349693288066638168451524588299707209772675818891838965275519288935774252397509827459533010293276189682389829236857897665238630897004116563465832356616320246047370222083865490998321702922160324887559460252285297290340494605432771381309829944584499469868774282717440039909425752389030123840809023715754828486644839420710711403423533574671001046139282714019558642237644353160152803923411798156652821946055265150460737382436340414438277934949259349669116868536408701749990650510900449246735459835714322052411055347832591511294504083774152481880229647031288318267643687314965874955088144987130276111153805714484119704553047543666310061584744295960908019399473232224255393827236126522286780368964885662077223575531863492901742122718812100443910801953586054860920923168635538829490110210376931997182012995702813834313528798832840208142661160638687744052285122985602802233274073129868005332046229969365772559544673211246840122555373097275030929491119678691553899824027250545375883531700612936891641903576002967549534697274565086986793633055468950192569985015062813798008922408725402121016948885593926846898237148801017793262646588070345136600327876902548635358739236416287588243376425723142900021010162978800344060756940946006507642522704167587638252337002714659758755322956186230739443634085131075692475271432982778361643212592364663600619782631093107138871312372006435699206125681836265569702134740353025740237429935964976890845705213372367142602370196018524487525255393430392210279498167538828366725477614223667422330803428087527290200180616614810855122174924048056907401835677161939481166100688678821608592012187742993099396844064909511073997854069155536915084477806135464393227135651853337726803313689664145827322096527284724394128212356512187791636202569438846709401731493553715687307014369396910760626794316424652720424277857853801692820864444045149111983013301852068496753626045727751869169501728069465950545524186225488199687961669561695428031935074804414241395367948458370870544781522913544859256330323469802788892650833309673785722119704378165754087418733959442068199438938788206741995806510580896286175296621000395748242847852898823860207661554444818900037087586202293884259022573128891174065553544516976173172922144528787387859997554813651106019083882917881030162946579457570954974191167438309755806953815672147240489356280897100360604355583141639677190051069672532773119671516358654393425944613950530163596730249917623489372987062015213493869647764729787035453558000151540521681944062548030177070995860593022768360996844708629317784497963501769131639726733541474858223580659596756958756919086216181187358764435479383700313451312369843485127361918239610685327236895819710262574430650709364747886995530378943503663644112899247901815008677568471873771129055239379099574295381267374962415431830899751289660546855216420271834714326531497918724662211619783778644088495304934869837972619433276834141830388110248542301916906792903534710545710229562965031461138877019677620354459751540483820208409759736134034692632694511213154824214735301949201898867107859638976794595113568862616894858149194003415380975993450643208678750458284641321542368066620413669374246405781469760942481535004853199407572516226833807604179952740523859652052630459031506900238707366507901417095410319706725194591999200184475106021975005376983280584481580544718944928773287120947544343864536204419700762078188310380416471242345700457788824814323748440281666034213493360818531449719872702439376559348614652753987886317073029933250125823888611943148368356735667111517593597011912353349293444495478185778638329462473793550893925140301277871777805358156033295358056995087427963438730449530434193748766519354837597041245782383839546692611563010954390188633725827851027194251095574900916767631714126565101551318338782791434808877039330328775466585962629193758226099204162564990224144026606460310433739269365165429181719729301625823214344599529266246513088120695959346179361706633475741687933053489265887585944331348402157784516026404667557794022501303525146837903657887507106701391057863831218785008585537794438275720674781064988972029557246337826026424309993985287200149191173590186538815159476155797234821786212024019694785819639502443336627036988705763694889200146659724537847362717552013780025431071272638915401254640172880341918258137968392217829148364287514585610653853238855128459243161302279890316911494842618352355868737082562653851331054973950049526882223439460944480640945538491704005982561847020075503374412397334830030865971073480577915469057509480064748335133421693896577767452609257376496103548293603642043027277449702179881663546033674851327399346722033858356965444138783839003753974919362843990226761158810068550544909923737624619267905272935454665388171215358415879456281759059546288611972427304803870143637068475818813753618320004393828420876097955398339897646873491324044252854638090211989371901811666994148674546931864956389004760028003632434906208061784505742329172333332698796717430118077526310686045259076820796222472245294378228955356998997084999830151399738367025137146696472204094418932374666024375628018991586933431560038488497235832608511744866030344641019060653416274806936007326678507405880555524508366396770242182252762538956578167393460623902055250618021345733618020296917777675128288741656081922446719813132823690305769605806393344772875810821348608607741731549786399106768443220718410500743548509219635574307859637047181885738583773865099753787094211366594132547207825111692857533976813470660491120846846494725527617415667454427257764225048762240928698548990002072750408029474479249349409408181219509057935560823012643425003657126489371100955224756036645841946350527003334191087809982684256433858383807550640411284969517147024197736471984403969727628715524853031028125966018880008421144272343222002739911947878716386609613472110126565517327435307409134408925436653718042208926680090878574358917518271491346166136470116228457491876575520780167091542297562929753933007008883896799403186217642303090064339160979051475756466968588870027240425074564931484931936134451779255696501534636035428526373871165065490063096122799540868479000883700312788680314540921058192304249227733237839140830122885744613004177262740910966023516354911953023532995681934722862500344930563928964028098506856795605556904908768713484016437829417805694446803554108033237108813517704780380557954869859532414586824503451233302883350251827718968368548894822454075246842772861507970942304273228776413090440395809348204146613825781547706902910575577728079268902473761644596184252119606199315731080329525785949359846032234540476042082347726297384717980022877630157483648841948464676244274987266656549864863435116649542096953437218250205036745976906659367188250301562222383345730725542180395849284968351906070771803385489010785109648409024041674285485704932152690428939490175389024943699543638704506578926966710114313496925299748986080407138178000721235639028074136944927414268119791867005318423865565840335832020433433973234038989875805355183673399368861535388375290650128542779300139826182493173681298499914771502741926957568335966898083856526420715351079554912589124794673293828131905466227690678999997965014144222302133955123722906126344055418002148119225695170064743217257841835453689322852815028580875104904419522651723085038140401338568355928881160385468183380464737043737525925706034219367461993930817110240551774056304358511936621241008815912580003910655168922051201983735688671929239227651345652612573685109652964979557084004932908617228945367003124887279762568492613856236463446510219680616448588792694358771875769678309845981353007082192310356367089286915246081386313321171689560883246720375315232966772756384567633328309363069866752625643718266592479412571826086137606331940136919072887568182590964141065488346954909964584306374166260146832466005691220428399093022393108898470438894069412657736777519743053694613973199904288308433244912226363657728088676176553777367644612057458782217658467183483920205831114255205648592878007670525000815425211361162952271324769635810673307455306957217149937495997755469127500385863476705834964277386663149460202660374430194710593046175937132680677778905212501687672790683421799034018474193305036447267318656507870810664547806648725941292661851182996741397327185213476195169501247970306422528429807042628653012491882335712700194728428872473362453604005372015588581710097194378188265983716227463667955957226300552290554085383905614321258392272156483420284904103143871535553677149441353912683307903276137595154493728200751587214872458927305449848233519644678924896388734414361723583252657484542127221332843730037812717068284194877302789155368085936276435686181789986975147937640995875581124618429461420211100996619013257038199122203455892655507073046839382729881854145755011793815948927663126823656259400234108764133425165805698469492009281169843766162523058708016164014331202205368051294484378726561227033539069305044719519221867922465310569000411123636369230525122603069945135041702930761762576359759861195296320961439095660883921560950530517032855904399741243627043805603634780456500392816395688053748566330539904323998794411871167638538907076989421022353228935677114323731693313469537596438328099238039225131719916224721699338039674359761346279937835984086144690233564809586841532556069543587925986639505432592161833410237087950386468370591807622873639403341029167330426708316189230027912860715594605837992845303111048360994349996018449898803455109795417643253788268070074762264517833129299665150563733995878572688736192149646168226801797234997736886643771445672715087841678799592703342529627931406502635471874949001084540740796565676780089918587458289185106250259612037544107592292959371026138759268930738383963692335730921243849655284317586061247852249621819518011502817791544284795944924925404484812582532661295584983871342986075033054607372296733356213454219365912468488787218285663001957493658505591753336024677725195631959354392992508333052430369587320724977119295327397977499810480819977113741581815034382451659655100914485995978657427056239988226348453797524579005365397089159428071440832204783590472064675722106692230081161599812376124768674319486409614107973905548113026644232707889808903996151662197241009917462495972020138044999698509188329283926913604870808150305493188268087661532504664642175501134613272112084066451940698290564042292420455756875521951420463504492214609435100449323107637286221181136453191238504096079191137218370123753469266259873572645991035074965356120905222105674530359059705781256350892763848149380709812504704867366971971190192867820946067926530880629061168435720952541730183463024102875496010252408607444851795328669951265176177609163714555586076538790444078373663692549364091166492065976094327708738173997889421275961702094612856931909733390467743381902887375477354437578869046787470598433017516333489483500816380496171872309922598691935255832610263239068249623428281743770248985995578398276428555246500486511780387896865617733614217968050113548396501825101867156758392442258894111710496656990591582045443611875247243284915554490205938312924672071768511673358492361110578636824291760151789445171256704525755836509903153716075577810232888948772917246142239670754061727056622073795794392303739410813717625658061710912689301624412245869055242607267810861606799450778002989705560783378607672290455094835801736606958664366179434738954402140008405881643581844876435661560278946828697702127218444440472654213211662918145125558819953903989198340436653610837771168155312980509353778893521978469406801995210897754516920968904145146701385658917520031977681373957636545205662122738680808919403665188202881520430960471140756684285130128476216364716637872801523142556037798090106018983418524163911781654493631408291156813733113315364888580645885863460055546576840028772457707373321395086482800537795111706154017300356544190128559476381635222838496129888051067605603737042133751889320842030104822276523768697382773276646707271442685486365922060647445482005482363989825914597208615856438305147020301671781791893192185218462651773606219456268036848135392528823640567138250272467833801825686747069756870003603862017240940774794660126800521972274979022546314590888236014186532451488081089675237860352313094090564549762456813747224117217070403527588923060731242184257186457884255569465022239158224159972319710017067563582366726390300504821735071789466322537080156228284615947900610158331045967919056941668327057837004996766326738867313224635433358467724783384407280207689370158486790760918012979563185247366516224396621692587330707932523899526296655790209532619530843128995598507901051216725702928643830576601279029774392388892511140275022827586460707419863711628635002140554314545617838185210191796890242291924871358717011763635623351126176991170486602849088094988731260112842827222261927970010739552189875577103349592368269925548796430750022417683997077755970479794295316580811658849397832263036855169854124022296203299054631030827734302739642543604566946941800912634088166893417018087597628875330413380025927030859113624031795801636704910626216396187148589900819721698496858216313743398838358906555686035526219996927609402994989010873411048656710098987103558415846677645537482071079384832631474821272686918055885208206001717682415168608011492300294814107909574674382161958800265375268808596734313281167787394741640069302119652557105631254377105419775070870568876431548958842820000847309881425097956065587023934123579879347861897642302131369180978714485854831381178791688569606559848378710017429815619513373176945723898681871803035012561132175350591455063916696891471275789407658935306728697701163453930685128901350946757198078536557837749199411416701841108311683927969504973073293005349060593866900017988898144284062095750328586770107380744356751000263088006870648110617067660819256488816182671150909384799639613776111453495370880074327436490945407607059285206000332994360759586284296500051976473207366203718460491983936312075970814698038621413397369308388899254846828609867999439214495853197332519890002769789500804367350139882197602608888480233009206504622285255496807607536522225577735901764227380371409650799604792275307669844767283386813771721503695837775701417475385290453484716448347087360191746281753453657501842204699291676629194651546820440257197822618522198177235638376394557398356520644213229296280938046834623441477935063344959481370691448263538252058535235669983964796798525163552608014384157478959544354390806590459231571802743074727380740176477568230265904950483104530269671778709410532117544145115247491484072209679678301261441542881606453424824759804339841617847638038543877456723473935861309390598926636575807338359796914773226957970145869513239805652788997086478645792291927175263976911093952146096351616869031649049425821575679507368718525143589439511822745210688945615822582909451550888409904942418457940920080874333782204831919019024199172159053905347155672012472601194158216229918534070151501850100293877969478324762638971289900831487199645479059996446853063632344348894934042792352304375142278062706214259113896980359883585103879172170958116499519335030212913210757601503553743276314341162079323254480999084151902069920810236191266327272035141743632398193021045064884501041394461995802981505450401463091119997328783722708785784575286299465685483650311149549943375535213993488947193259210053084670125802077149350424832230475837655017133483068431399018973647808458675687321411966343434467566438828690908442921854585264185600094311750655321443404954963001938715486617060724714105467084774880615052965011594432101284866642822060777452599873619203328278252320551382370526934246909412078556498481776455305412376809023238524925359968012976171038808503684255698819185920001135598681209469887575804186578092433600477492538452569103940002445752519233030863883051799198870513738633376015542936135015615973557121509173910167892594178361556958075906135688862384600351124663232678503924907542199983712581909457565803170994462061803786419760927238248250175948629594144428034428680678726066467498815390725614909086117851178796850739257932909331289662852726307954538810511045520688174763921891053043473211211028803821601879608709109961446494421558534668275028271402666295344325525031087851449181685560303689125052236591178900979170600534768238222099842322146351417641276595157467858208099431783832726520352997232882814744399160234087217703293900887178916387171962736444626928899828143094208132090583799198016216248288651505944653441414373532456285834775609061292220462711082301186264642460309694976847035390963387619545200701738336422514029879990202466964719335821940346364887238811334760257767305570155472583162076722414175652512203371044545604892047628878375268428153260635201592700606311276584466757309303113700895335162001122315799734211343084168694116613078754378670176878393217458803083879284244494089760748389385341352637463451131339295876929241573227993332067410189982943978570306110176294874721825599375994021256689615254709235127674375465747263985815573532019016362677778799000103744919494318947217662710067539473021952010633266399173115174374621074808615440804904363936846429613203546701531197494816664163590128426581034012823952013746593293342505097175620470742138070233350933893480932138364127587787449543263038215775707780003329420733184200897818258289590296967587445083294629030785437787556782662386255474674076697889492416474462520625479221420022685642493683234584983273916807548174793619394482114905487876831562336313188009005175885988103347337733967262127927903610260360968270510262101727295777665380491781223672885263657366348157424382900149315872122253226072108043643915780090857860795257454305966498733008710415085308780217724768571109737501583468440325460064501070807535253388534119101138167207809770706075602982689951669913913775703630367042410121215669024158564583884686441986739738476984539894785176717829047251704592839231200727488362670091897957087623666144657714190625574540659763957695582229231977373604588880056011268983673749381818418971069004528352656750677345560455868092308024609341608046529999971815650420390235319316366115987442557247773745298657244997038973810829289131281930859409859541698617117179388620866761051733842795150695692662624903198386282430349178980224676994187381998971542492030289642184722141190694643309832034744072420665353513728535478549117981441833219887050765529899918649830918706244060448816508875104626408926597690454158656239884686001112061176238334185181706841104440972933569263207159602674479757348986381100996296239128553591430794382005478108030053112058277787865561434241341205182532077488930333583433332103353445286899167293003286393501957255167570541694808912457666631962554916688233338420811479328382811125351127703826880453953168746269531167250514214214379029646009528353073137329501893665853803208799010528542014762521954490824720829836680011026940813039979591789234610308435043345008230416402630228705347986251267117770716830659483167541115174882787346585441217718344177396068900915667072075183465381879641229905769324159648987993818849892011330726011991679140982400494402228702648634362307127424753500603042521871230723319520893676362289885133242687975922061555021809173623497772032964352894161046257201894466109095929291451339455460998267133726364098585613501239055281369701780568296375123433448552584977857695339557870745330661064514954669992826905368890099340549881889792510423806501274967870051028663513787621594987078807835687017735122259846698146267755079329142833413375306255552382830128133569995705771766208781790128061843465578833205168216881469747764772774492410383456363897516321473638276232111885108508164312464794558418729946227171050526539593648741551021220729604326698717091640668699619535976705945325366490678578747101027027659348148046063064525048336741953568380362057572226186702455347220653449118539151984611017066318786184977317525954444589032708135950036583572246515287191256376314722761997833111000740364351463270357229848625414596650936988601442500829702170445123146731295318779603020467342202857708967484217524288623588637380306540065938099699640343454794208702465680959514975561763042599035532284330949278367710649738995537592462568822481471329993510523511605267042194967579605364825312211531310721118844191919825455036099422577463488008521310550786046841056294969686804992388711256546383562460038201691591256455486963848550381892983903860541686057285663359260153924676275539810510016944240932562774952866000277046716241425601637191366524579399030013303701522199643793185635075373620704252053535362834856670948156860370280008828120137356002877180985663811456634175794565012266551986798700809714042253359769586346207013944968360472608181768204530168699876282150188848921483745231679353970378271189627975493580150638709208409728069731207594530667606577819941198990324052434784060927111317685817911281664543386613609562875836296911335555416937693002911428134166819513316101092348265784444992827281022914260693340505688743434427222615245365168914042562345272099458478893584450078360602511771205492541952029955997658041996840848268232397930132065535542200777699103257885004148862851095708428546355132540236976803946277477973885535213447600157007017706510878195146105942754884393134261756422850213524820812347640273970985407018095545591426210121809429277361956440742869972216816732072340506599318010525425361438994716317642013610147016450355879909865914593447709171862344049919891018540360584465779255346458826959614729818458408261565446073317089971486664581075057207451896670644859228040762527138877750374254279173070613318314035434371302352377973113867259124573280680783297463628283956336807676672574960485809560193605802933795520466979969603250961411868351670254750848452796340421962013420095238038369961300127127676820697195993845282752578511755577987179793906853478155974532373882001563250560472199615392411069455506722629151350760392424090142662385816717356891825143002194370784332257987231948153577084602009118618422827136512417496371693599507997426218918546039797321602864670517273265034081705146641495311004270431583543935943271368190846538574710046379266376462250350563406057040799417429283159044782697046263051434921708570849551354295779973487338628485990755699456638221532479674569268313598833943981336056380258637932707780494802724289459258254357296618515017227636425150790964671315329857143912006317481065778970052967803970786079450337609832893262033116424054540817626318449600285659374862883136609071598919721205913200375133116669453623250081291166342269759075142323370356944173746778777207032982656815024600680228154313830264259670210865757220178609193239252708910649894224032475276297021857205573847964985348233051146201774481843010847542515566826674703042327205576593971613260884729097624370205527779485599738350609728054341044437138036074430642304664880603550611733897703437363322667240500912564335144237270956833953966005804393514150835593191413301554965842667166841661265914782224064445737569303305529357363685473144947380786988328844126946267636092083843201522356718042227456237731048147650350374657714772877447046062628941183122510270976946517463684401825656748942884055139976081973092642740028904372986231467680140242598407588329251811434341976475449210105062460580623997311822192287550680535105045835424905772106299214700846319034149339693468029397472030493389568379786072336942763177639415420839308275502581764345631149010221675887699856232084057895431190272991753932841821129661324080083125593194639981207939723778625940140734307415704860436491218972531542153429488739288339673300893816261356752021589737739123478790433289681024710341565502760322975528007696944257099369143772098787272057140258589304866312421008116517046047015246559481635023020746046915029518877191159841053829419272342547641762074226509962579819508037063052771312204739309533647084772273784947067156385355662653084944476403907747451036383437644715242165887214680382544505076004506595668078511689775855632046345500774807453293184719377276638519181858049824938509131029254675494911094098792859375580806105904541983170706254195710780602386094192530436299033556264972333822146387408457811209200475012791876787983646423744131924777777456112391570048064651475293873137292938733159696367874631079276903422111324695337874816673477643205278052371850196277071118552841010148548396378696623019501302964847384954713500979298720755147600848813918269281612687985387448829652207731882151377844590224238133743630111357313483823015027702318645411659359159787895337688921051832715635910850138281802287479017617097788144933575856451978721564913142138434543021076695883239017126805805859260894029532001341027968305781375474248405388287797927324561983985173568685426766136919110968304220527973089571503858144218382089930877364425298013072232397444344056070532561916945803868717586725007240917839529481673632138819783691018016349392438735307497057434498404772133878117513749146817768861874831632575723494697212407153032078551162901199034434065367073902758008007151569944937402719164353646651698521804625941475539099065582588199209531264742749545547260344187928353332798706596714715694157346167482508365030556554798334738567258790299270214579832882817810848921646379150414915640643625911955362691540170369843728976287780587573373574680073669137212729264497474969368086900974354572596649485871617722402079354843117497369117369137351513952347649330381596453537696940948309206986944903372057855350267366848384897252071058828210853404523073628390775365040722193748172779533757613049517227479766270756392127304681648282938956248686143531048559217144088662058399462913305795840697818664829787839443608541676934335219461529544917027965107525561835012592924693201694613059382698107405705352665519589621143751997477651221852147844338387882559580386152441649929572841446342229967332076845154104555432568223139905228645399853287031422495865284753297790986729122507495281441503983783099870239751717208354567462981162412838730345946978768844566823705831362388136655251338488546705543006913167956541671647917842360808601647884878852728921859055969378872017336980615571070770587277182717547129784370454103984396411882343293804595939079017797336042643923572491831056932596979885422603296247112856413034398756595770283357209870179625516623730657888810524054298365216363098695754392244563976615203883579529751183252693463049440215501416762980134064403031628802315511992391749602579478948906137362614878758708771539744574072868340492777191292793704272819586393619355196220967577986958414986724473728574517246875456367122593253253421381012064777560137586580219577248416808124060703973422853480787518953905331758652989018494370534427519941683165552527016569189080356352967880431692025587463546202677436031469300196249533032612165015469707455701851732984532992908319787496749956719087354672143033285635362094619399395972583297932210878551658061852262681327232253794474911021492728923521427139693310132942532624541213112403507544169199839427162662661563151523269881984106688219436556216238696280528222482848610564826155191945121530078588666998351083014419925601018527184958430697819436246129145582671348569257577381457334379970871839031738450319766663955473997672114321478767817033737675492797402836843990200583935541332425816707650711411875786734420250440587557922273774911901436908674632418636393418095317548782349049148656320042119716017293990818855970452096370341365912907156489900697554029028776177027762390159589920819134448961903817906252577068450246426645341643135874881286527307331266335017807524546804256089345508221507524911413745334341717030141628239854417401802510175413425467061756718361590078949985153521681242196480598658824931900091029813937239343368375896625527940917661920442911770793743628204004139863385930552987648146415616163288093114407022272796018574155611895983029102348466980213027479253428773395847674760844906163456123875634518717475382809022365186688010258234496117236580413550019224664970090918058752116602151735679679679801148319382790932777428671390048993476904247728135692436833706921245685106986971950550890389867915550824202274564697664388444791345153907741093828838701393676415798246398121369784389426699371088108252696912708237379642728518291319747902695968932292098051952815214894681010009531622200764006502716697342174385272297211186387831908115538759552372875956673174952233135684067112472710558287625862396573934408689052737569913320722230439137781690315842957600842186981650025059251148005867521563110935625677930184048394030319843740325821752365833820741929609049629782188818550662521135864502254605829346209445131413223083224394053971972905015001798374316252021407666131674437018240240716789503886094113536603701838543552410269580870984994737450672607180122102210224005940050906084869398994004905493940592192584419690051571977706017532654865199513852753188898427378772197966906757690533723013387252416786875897969356719612653002965137340339551935196615012214887722321704263158866171730520423793053836224474005551396538043352367039938190921708969864929241998566070553023934879943078162943280604881358632863022563650991488100791718047329863718740734304805243025114493468004003142572354626581862804926769273411445862446401842072046578696674085385075142050330277560486631170326555601100647141577558699293105283338304937772585274931557935375438614074189488881976596297879172573270398081130541921328319121162626730722192283864913540192990432050432590340357446776139715514912319427258658269413313438946093410792539153107299583001700892321189113541557369403970907873904423125701719541514202867604845705430926533533769988072188015871690470500778792295684838688083549142722697696391877737645698498326411759819089923305849019201670330272167716830857876690440045023913856444824654622916029203487793882233578782444365277552144428554089262872902326044916182472076115378842423704293359891476621545204848080159337050048848126985273432803882008208754154329923038854295691839985219665471307186670585001589468458613295602346079703905652822595638384300138140801909341441281776622217593724254907268821575400826482741728736852392218447227716646185322872208110618326464445722412021278915741196144289430126773454418495509545768720459784232946932955996784067342410345878403348336027601597829686123959468619195289473889228443384450005175716911707478445884092610181315324732375939463055982371993605157656772630619054336964077523857618277029091658248212290129095615537544763955427047204229264774571654304052315040706362080926826397768509949809905617333033854081732817883547931790947501479443928483654173892021816925387891853688523533206390504484347586131043569964987951751781729115660199891712580250179787086632367325977051373649395509799121289742581435133175319228818017970943911077662382624720012308526472608939117509547949871739359976170998909521233291848210786249755034289831356474524683148103572656283439567027624419263541836242285359853413279941426869013742000389018508021162400083237092594946067899476803793808023119759135716773562701716807748890947524566422725025031053931954217690827826748814676431503281012349608765435595732676227785614827522431101669605429177440597863813148233052892064730003759042905393142836764299640013163317483570241312696036081348765369164645177711341686046956891227859263682005269501900946974018650015095688483596687438409951005557883821610448080078140667836063387803120955706622154348896145903823578173627385736068193456823544863910286860803184139527543113410174270368180795733708606596669532227119025980286766198196882537260938540302159107670847156953322305687913145708489887126388726530233410826173596587683065060287925986452315209011705013947140972064020986121609305254088408623060551241465114900344170434478401487185358189802180377539181158006858108690388143183082202174249162711227252732381067198974606784947112450781837134241899932258208610051623912255013896330300693969769637221004860362358599056894109690840250334547719504685102209277906076939550068919044445232514730797569320787070792154701765826418563979064113056830740641875311675927315048382789180627204303524321703486034435496063152769884902928335501387475951700555593676212113358257391138292247381594728677477349279297953858201966563557687499957148323421569174336065149523562531432336552470323307659757146061890381683501557318454002701388713526375566038462279651455759526217983406775407054021097890201902858233584836276327965062462185038737341005168136718754873710226723577240695220145488877300430403061479833230553703250475747322783864291756091587843239171407080532178700719499021960292039885715086012411762620227329023285021734360827668022963889738627184519395358310096524051053447044479341838176551517125862658222430579208579865009822200417995660359602757822194072561985256175027451002436622044718359714397963444569153628075426542752735954278035776922878901973383698057703436422616689298947154149346072121819939525559562278344253385264413054933416281434318501700431672056705744193100402372112067194719157027436433168924715614611907937218940299622794399461867679968521554630853413789415769952073209602004260084709062334505662213200472102248412450457693700011547393715633526485203714231151058546639496780712914009436616589229006796958459850940770138316359912999616184423394548199051836458297275809040463045339649449652745056651491492393264031628032256927361436184064741056825688932833757567701639241490887882255773794271793362887221736486431372162231158537030706985958320170878608694279446758484552763683839512636609983101736951866087015315677488526292127139830511170536652039855203158291117556212236177250564951901334913342680801575871151178000172930807177060699181848824050268122181282766608430751687557748405023536663523461764510621993336602101428685315303276131798848660050482867782539486930100754360916051246987707097826784166487129709565081863831984895076478760077634316902265236295404749042820158393517256030461397839876252279244474659325368064233129860746087519404931931534613057598888918777815385364589247369833378068361843596638416705374750613375145163061420553642256877114153359500241519380231922571258736491372846613221775901376296672088829742676199522464728097507273070855052052635026224218274636452716010452936470436104952694595209212521951128596991166724933723335108588155302139295691992392677989765681210303845112385840172837215638812258326286649595669655924048132832920412720015223408386817619477415987931636896554381337258774548832766041202399817888017839815597244216697646400286410154320471586143032057566543764420538818499071701020578347185626825013583107306157760641698889529810957723371871216488696504207376537558687276167559143800271533002313149519329118055457541611714957600216861900211371769744613694571474245261687742387854132597806813552845828372958173480973862234332979685935093633264624411830228547847113460220935181177085567837185606178222315676931585342735241669041070463725349799373766459682877834929969461128153553312507506469430270742689570993935617890025750351457462689471768476191294199840356124576047848119859600151827474437719681257133613756916371681584606201449562023693291679199840560303927899799148407706493518293147956977258716210014424332487958243012340701907053464498421264507027661366361813858283108272664797194864417216713539607833864994047408387158541952008013773533977979433801480056471527173346196750864520755573153273041557376663100087350643556054621931098727800387649928081725412676590084582232527503881128110740656579261962354174924962928163487097861505858206915659633280409326822664131242527452855154362755998103336634354686243777516137222071195447833154672225179037434897173197217550975768526961393047175116892037844220570061110500821734851688715317744582897540290590622894845806057646255511620856328243749155011576608959032290487306943203833881397806878026315578154655310536276241320421693697232844264041455011664147884260341784418495435032295581274678184813637865787843670728787297110145643942565069328777380344477926499734059208005615355763338317143877957125308627567294718061190288523165195170062914082067744325542796182458687280867177801161777827927216559416926876707549593927133928572369563225724156116866004113864061126691349223547774008788263279189436344207688171905620579571994148749687634060666207494345190906062059797929936794169882658872743195280400734340629644861236307133120636709423644081738766112859891715581209539602538209259519656021143314231154157458262999916679168581383386081386452493376171865741918279471796157251381696579141222708257862551655797561249553312607309691859528824705643893815200498226212474353868394919588424913952968487647881333855344488707748019553286709903663860081067624216697691121512314658619082257535153899307423937584805964895731796491661899341152437582080224529868239701400402944919830433739133418147666209979309783082739555371393840983836618504334489282159552469271287501598336144964473422162868557676953022416468761434488738396046150423878219422682631591090625891414705329371044444228813617030100838724195207230320728488909076774426374644637748020541601497822067197621529970535050659725382106171020738720662902836321291532266500966015522648229642499392559850876173146055445059418214224795993488388938552980534640722599648101073482462250098350244589482684748502725283174475230796626492220396948886204841612119526329975137235949270824360764097116434713395705097111168549073403494383641084503899794605761896788194867276507012849919664980675231893979935918867897313280000592936899824143416117234205099909580058193558723283307018305961983461742625397842407154544684355529521723050850156840666618158681674874211697068682914495916686852581713960496844657381487441522451254544935122059598729047564007235447266429747547954543816493047113345137701714963480619920984543989599366274123656775745683941691661767930706265462320782295531822225001306467323478966902691468729621787182330917587235298071912783204778219034344075445949314711238401717661949561717509745430994967112664964670599900189614746313591366332601805182197879452923314493836406316969040500574069067600007085025333319204554695356811297226288655415859020873083321337824959100123547636431015181462752651315792882570776522088923097658133097264421093865564063255137321128537016593850068442175033548662808067078949197614440754165069548909024131720260199416861171457524185517977430895775405180595286124483268860249086764733359240412182780996284487575589883644216042207055217724802686425640112154045438959295822477054940556932901864274592750827738282590500876089640162303245823346981207779519061941332003910993869542020779795981623422720197155341988355343134777021150561406118828651642760051846054415711880465911597047867397159651944499427899257024223268457718743357224636252534117855541126526887400506156296480585986711497447953389603101758322217923554676304704686985331194906671791309615645871030144617609457327580855323074249036259972892935316276748120958156087730583411972811286198408718344191883890429989946472601430693384294471192241635405729888736959571166552769110491749688982990662709542262018553616104843915591749524849415956367680497744495235066659527223621678440780861485079746594801951270817945139727254577570519046611532050196119334390266918444565592928068463819510432296328617877351903092791722946591165872646604889474552446316324100261208256838631060982495939935668064316828265361531970092566863661386938727035684663749041720459533303053990799743923435005791529402947972077236660847767103711162278843179783903243780447981163903390590683398206493486998595910607833387350617251573134009572054271838453227004220571258759579436707721061552546525595161902084760811230669610525929417103309330561720204275842555327653453604969045827052577204205832423683470839735690484459001334014309432301576601997394324222426554746927253121456249460497648737420727897040293546370338446803664862804950829652534051133305506636352047980047374820997833586762919921827313670500958717316680162371130736663727985949588369537554103437189539621198528668114739633631013556719086719609160377172343762361547006169581639078549719684671734423249966352029080722495600016762293533639601351551058872720855628752289715421904476707427879060775311003352027743710192441662212832183114604322795463063026063882390073103343867050393569304055964205356701000620926130332127217925198779859654916137691836229649907077856813451111335343644064063900551592864079087723360231288860007126765853939079487478153321727659831212344885894603339359531288156088989391865981880107240403306952748804313744642319732280235752789474039496595484891639902321343552698301073189059248270206883744655207241979471077865914613849868457348403321651021597310830740622250879813047505945870650638808624254907038053465948437551124055475302206282493116415334524667451897345277109461945199394276215610653397223710901760998941379323131572892773678900024190948458413919615819218913413579184141666151428365598882310619760631885704533164396845966820982909425242156568677504019248768404244874250349126374226525608546817939086291696257543015137972358777928297459395709758897623400981450369067146500209394956990665105459152416933165365845083228985482664897688627519502130097333189188718122360080011964458099962620606085514864097243961742866039179351646745747030781131522663359384662824518152329489349249515461627210040083328620111749008531778076907658500323713316580797564626226290890692796735322964559661137499292841115860400195220431776907988895039789958598851340326987422151256921190576130391020590918152679294423498785148207138600460681143384175619934274524259728085518465745530466730869789491107944156296805253056326407076569879810585046614734888897471823995534586646090070921554496566038483899266772105560769705116157600632609145196779365702564642440291078152114157783285710980100297964299785393212428524407362811344860723702635030188388333498115722845809289494628406353021024638308610210442734877778631099893312348282146254682939406562959787812895333393568411567288101141199525586198308457791332178663293830669903710822575910127535924719683443395820863386894160998951687503598547776628439186654662911881732057785871475773629265611388989923957018400509024241435616306636425600284017215496006220316864291461875514051186159071601721411342432644410434314514094109579538834669425766856943750180792572216418355510177164458409374209119894392360910124436407448891509715662827236460016312426132691809591807754638996840742704149217087806793204640443439811380204622039450127353458854112568990042377478976794340279514871816106369896934629523637456622922226992724938923216434139829770742961694418866590240151309836628426854875929130898935161327714517573032073923249877490749920678733823359837693423295240881824269142580505116349604635210662713416485603073201233090377817339948360391142121285484423217036931190989362032637907690471039238267223627872516038893736566144393793663371632684072683716656085433293814979117218884776942241898353640793490087108491796838211628778255835545469414285754604216250045479995103354262861073110145402764508945424167163344747467447237793424017830366384386220847140341214919765697125178972902674145796096867555732360850280263189034414785546951048462737704221669424232284058878692532940455066069460767122593001599266349482180421894569997590139417045377678508024528926563954715161064354948099773092884423331798192039772611906316601588504553141463803996079905216112005014495978781039148134872550717716331639509051049777208424499798172792655088014387135582883963942606846495082024740950865250359307186774987898065539304158563899904176418467869585952218761601782096295800953508834026044488151156444001060647064252160744961475348497115000274802696438056573422560152814805340612573596042609551086589347756935641975488843543538357272786006182986224374432034728419178990943367739050931904307814780165256481314501039760080293103146321736738080996502479642388459102090723842369043245635327874419525319487337021601695132673079707426172309457444153754906615772465368417235236420532363452364857392615905177261810375037540693561407814499123656705078917538925602544786287773403654064582817566638491510086335742880234561940124930758490346606017420499181335551467823368124107157014302292629112010074203915941216587668538075204430777529907984161554552804239013194791999502961306220054133665182738995881691390693071449504769652837982687411619304548269280085519338987961368362511546093342117038246895003121140406453857667032665981893892045957078458389913825738881468025371311287603451755282410865231260174532173748755928340508705222091618109151189134939737447441101347608934081529434736150768524155802167925575698293690979853040658052332919796966546369053204415300600245883358605456327261875699636730453676536504135559322660948539718208806222336421149994754095659425999312618232876000528591077365936540836243296648335546404727237503719587664095339835959341947802371015032539154158736675982512752809501046341142412064242442617588117571447077673943429763646678820462650317757678975291928876407914544998138416337029068361907341008436114809228327083752604881317825198855058985334951820403477212913382150122969643853235339497355504729628232399812664054744114021148888595830182324377416964175931486501999770943999049315311788091973906198797214637434934236815639381450449961547857852607842093903863580061945988991020057992779972642340477705185851199011365613687459061626499777122493901553051712750866415622779988441955248642190846870282018742252439336980924744643545455422097169655420763162675809498761982069762985640395341633291477841661888443175774027279268045648553277196111589854701974845983102097864424732535243329573373479423136383444609363427585152625257583147034977876744624657941256829976874102698507286745291769295012525519676611748914122417360167979123348721853906168482432577382626391408939304781905761375757803515441749266230384271192949782688703656708957625376008536150817937842803872126746968013672013452460864508604239475713875169372821722276641744209309499057763125405625140667419160184602244216656787617651409089631765897788144650257303284850191112355642869719664509283453585134513895967167879381541180362460797839471854313828454401587373937943449271980693066435769649478286766089893213746506348994309895129407640307769275305258507738563890467360448182702746614021657987850471097136235792298500463416338719321799349562684501061063342884782838296107202414342046158270266782109988173274702312891587751121209983665878648100545166915818280086964686441622634423533483041431125182246817547180152510815717898590780853721374758498219328573686053194550376701120390864120603771011182128491952992622779628862522827580645096977283140576105683356693894646683323147304706477849842915999755034244328628076739299852595583279133986115593939913831263485504743581871412591291911161761631690583052485672326617005034846487605768077683934322698524827402684758709029592026204578699496455429661382272292587148582952472623751450204467562185416954146279077343299649100927690704254578583883107434623197201122892865712273405987433565939885267258036242448079938428374691819456521686028490720664765468570942275087759694984925910535051404074931105840350888778965772231860556106123227252134250329926018499288032702406884324666295213987967966792293301790856892588806430256405253923770206045995542932646116623009097007652684823433086574086348225596588725991547747910654510202411862073183476716330676089415528676142317278962799933843201928822493697169542490032333352239936729778935286575410136307072891499642685165991484378736696603548223532259470672545442427438664587672838729011635331242893275621303299377885464948174423145327688510567825452043721240320754738085483725665418499320775091260421044773672867024622978380255431671700487882507094810840083723514744645171971445665699580486099152072015095820121941274982736821355260161479353619484962708277330740864782642441313274496605156222062268508749182569730738481406970826217298327962549463217055276403632754667865368454316641381876639870460310907031053821202106050912340042776630005373102840191389082020522773595436337074973714477677143800476004749765096772349034635856412379922313162520296844639960246315057524783432538406923688704870416649772543744802455540299169391690240682221312530840896858445864217537319598181842961657727543855675909838708110508689346894869374586835135717306476179924667901857059369129365787274511831600609525679299287015610245664293152177201783889952866314043472006755676460316806955551410507029917366964991929117750688750418483856697773572443126035597286971751140994787468086889531980434694405376753135224026698250277025611189112416653094046381095935284542638735503632681747021884334234269089926210921181579229517999919756122675986958440875153167480161417983471600064617274608088355289375743124123441641658459074494538463531697004179164073729788417528849750783258458812904247898491124244863824096276089822573664261964605039345061079601601620442148299704716611509481739989913346975165571551596763711117183043710602332681232184513926566402676299987456950414893935312622983997113880826477274160146856103583078932381655807714363577370764444629271818044633225704285978080261519953346666591419676598405907883684443605024524400126433427725778154171114345001680911103205656051501898562662065032027127503314726015882250936946386358088892705021156379744321328472135908483628197438655642144835835644528491770817358431767651842994140383990722166839878519294661517911742568444038693073318323008603445360911135098552784657647180348905588845331526054296019689491849737254808749458129620064858011522332115262757751421681290514782002691097693190481895387001676368233778509218123329704500098925437047326043445926737917376537174843288724744351038066496117162078427861293941206564013607850106068798689145486753974915346731568368094295119181711826409499132884866956230853162082822497787552641867143837596146906926923168149075802051091392231632067635758848983181398905534062544359553913958055342078049055258794569980163459573288833219682337966711508838841444183007190965502096386836791723228336213598945326517084187300113800602326755248586315387590516299171232257873074970310512799781697347547468209453156127633616941505024642509940828542204890422372944640823001786313448076559822280458670779080414327080644613741133616646193395726542436322533690410052662822875175663342587958741510700003540625097832615818632900220388625589963465444363086912894780308378018484779155612858743166280217574382095445294389161389855796432164062421635952470886934084955996493369693231681375465179623793363094570035592394198021988192235583148123354753994800889811561463341519417245496030010760601332649069028924172135079294930677723723246692801640630415770244667761641175715734076633223915237343719823280562644931441494302875248127158291425633893475623916615122647401271479295294427297219434223670643253392373889603495351982393769892964316022810309363915061083759375497236961037232230761941202512927862349474066774436849505416007115949463746548045710736016142713927659602257575535305315320543602448496301022650500120474606599585848896023160387325043378656168655511424209780433595851370956726448186503811968364217385116628658988214042219903538213701526724276627437881745539668669120895246158866393587976587110527216320170092847434692152858758954296991264619169614704450499576534687368103960486118463016877297304224421784891243227633301908240534409764188442557219310593883861432508305685234656041701597736654909416305351199598745241605001567857359349189668323153439370129058092833187676568470466352175228372096562318801193168516682215700565720996300998758454392925592087433740843941358554919333865761851318846562796351906542661517192858969020811426006706979001512565979959779098003171298031759138456876021131277869762614527831030637967482718889245985888723582503389025791272890518145326049588317103154326866829371041947098020244599672444438316029576307245812416419386097406644779511940744449154007803484881579065650083019999258203518777691711511019140469694288629776826571807339709715165753514342297083792845848162222965621001241816066409283788617587847689670960038483436126435957138818044196782439691172497251711612023341427806537508941719348799219605369384664188573067801068044175733058301070134128574920260546200721088763206708426475372536324058158223171577506216272499837152342750765972055025886645212457834088854671492626978236957918867906224328395440115738044780099931781011994968991907239416815816749256091007712214517723542826304481509907422377569745329761816201835803768499714865411900336365266010305307474295038834657450661850407385057464938286549859193775634817047316581100360120160955664563564997597421662392856189321479270311372970435883087538127925412099096642402502999687291210484991157166997515475975829643670709697933637206474726300612054826762701282013227299654344958837476890322131453599559125686952014915414969115608680462475399661912190212010316166749340545057949004363089056041087086988808473310183477547467432425825897821694647144769236827843471648322384031918486096892587929868882620078018498232461441423262201685330846972149642401920918946077068519001218753448890343723323001326962050541318951581122180604618814409274375553300186638922538974214669319515683659625628575960445256575639184025148724916225794232123205202663162966968885674967171180748175936492138399046498138438782145904132670631543839527647032839013431442334478756274318438513346248257856356572621204463747477301512711029405266617791480885415371383594443056921424105728429471233906776445409200233064873646919808554829415171274416850755470356259724082707589531461655159254004933156154001188340522990566660174599131316826467458646287738110671942159445951490294883910147916561873641931843564094988296130677609309271708689124150824083815482779858165533290630173132638386775944972643385246423076198360227554786142586644428296525821808792427868268984567256749173833580255044588679603272063254921073393946009069086501188181974276073940137832259042680906902863502356904496447030176066163959926385555432016370900944827116843930757342901995270989898475089538201167004746241102593609768259824988666546947126639911805083951559346723365154058490548104528507863499712210523775363965492336676564901085924246791464952233956470046375552413867097753400457407860824456171241212265835127612705278979056581256137661820950763210076223469130746720628380085383260797302221911049730930595373270756082420587296085633132735417378438784159074375445431580311880824502007910970146326659852910813649483478151532999374585536080282749250569351469141202219943406220849288234970160904676086380460508267806605716715180169243972470680101060915119592739805876403366553956785494843399702823847604946277797903353218065944360754758117285721750075668440108541545495439538989177344058029188750171173810737462903096670661412620174916986159451206156397138490246938083670757892334033168210170967441538177356521604658117115661440231050631035772005440345238934158254895199283179901646436385402848377367450954324634836742873012050098138205880926602472332914656720391749738616575021565239445312689244400105891176556904017263959470637567122699159892490147947017750067902670343518819161211892911399493109744650993436859952949360337722815792405681499460705852774029038053841716113646525981482897481143047356890614705151983285918318515565492894879829866585140545324679953264525090194592079894178570733106868215860710673874269571182781645967341439902896611366079811070184220083960602940507384288723057427988837645613139318825350330251061551544418054228544655478618354299536507287120861383953418063488508390718197517516898694396868428931030278167264902013889621458944931656556884754080269421652260173609802547371234037064895953876550679285104590342504402553749088525417249087483164352817202612039841609487336650494142114063448939290839725189412347469969418633750096983972302451993192163955941663104245416358652215416797079684891014479427779708017243808431062112882351088926634406875493402972723081312649016061014610220491005560863717644919268769059751224070014209639603937342642948940108627138465633712380170823948697530247892436870281899437210282304319699561074258972840596334318307605781418068718380517502735138238832727536634107419943111053141667730951327020431354525633210794885800035840902674476711490109211687462336097258213401814288095235928437393475285947519859128401844408125183686764271443458308651762016624300124338891369552510768231356830706903262803095006751268564951668862235575777791605553235554521669580859086455571925933894856229769787958805844687600552670920546666339154861155212647279204891233163632811150958586210150893255070152938819715048984504026952967524312799375367742698454122411116024971141009711330774720304756964802111433445140749812008996135958497132324701582227363748696615196965347171111413826431297256471996147060103451232514670831949717787723588556888450484618648120255939408097195740843153421024866479926398479010390934549894926726193903190656946919249895171078573186970419440376261858859720825933842989712544072735277488589615349645969962137646120177429608756818268324483770424829775922118264136005640615089645524995137764165528103145148806547140711148176717464869001342646307259298160084671669610456382700385610129337845308431938987312836597246132921674786765636076171126118285433226909042361956798811137078543183039845423072442765645776028763078661825194525294125016824166048757645491350463119581091799043253391228516645205262917795599048124272975110722965067804996784273757299192157281708456273567873265614363259113666793242236484482278320633905910856875001364499882602424533298455829128592938838848010541035633160530717871175690669106254137344004274225298911121898088541013637642975335725594258402326686568908746260474940370173843462007035207128185171873698878413153308820683872122886051313642624379326870091861045404918043817231231925523130152782556523830866127996060074741723507438754000099161124438588245031898710325495811884022062939736375803264429137079764019931317410654767623632905520078566325955187097317349376260880592170260066121719169172702078177984130220173400287682952161805610759303983438073667400347774683645426398085287265458711235693834047552712264470368692199136630145781359454954015515771696807358716650652787389269145940555848191313679108731365504763902793926603027078286885598813369273118904564459594127538635290663305643578913572650617582560958370240208328523133270707623400843774829319447675226003339918045331972844877577120768350420387719288812576751716478033244564143665650857147577524321610107046497182925201497299871512186280290100883146558018089278343652265808130805766570524521922559566232321709403103888389176129062417020522892048244322311108672742301037312614484171249365435330282738335153022708482133543054464098003572302414429953575862898300333449927070607917759367497066851348592247819126375460136188035506103082784635187660328661691980432822463587274676814327902635471978991387875402673015251540701571875811556190862799587276102410412226272955849224580087221230393141952114486389208836752525692958118896334621462276030115401656727225185854680994681656518710569689786915292285894086325145389974610998155429159731463053327734806190000126512109972160764936984728302065643500169777842546469312352236105910129126594463522769958342368871577629837535873719307719595911704420145487944451268975125356636351213322825993505682656634118477802273550577687909006698226106207012809566919417853867760600172570755882325571189308045175884126995035595902200161472127896187292896570876788644811529369368190737119403422864722317614375511951738194062297324557714959967088399819541068126961975562228979644428429324574300285682210726084664670237212292329043809566086183494090028051817430880080608029060625084221786190291586812280638856135011260070102322223605009877152353656578863817851494486530037010115750100105499822719978285271483521334551195362845269740387404638161310019837272798715931280658814074908055792138698557617509110605283372721894694167784602390489163678471744647599694367496804118673537528203906090065996014973307875177249719906960831597576806223422535298491156421810850299654717433236245020574591186558993278774672982194234125304515094655677503510775025334603106704078549654656041839285287288879801439744371266608711027862034560918155441260587550412259090826931333453547183541371323040077437687495059072720199196557015889611496287049333505267995170963375989230203196264257610759618644408108387894963759258556665129264911067495178040632660765326414341885944996113792485942566309049423041133372238810644234621928306655935712977232968827881398184253979357704615067840660516605876718861111976425357071676857627023749299687421626851817855180742867427519763476496435467308030571832017073072998202875788879750856682031579214099694520232416948779836613207168016582361740714926675548960063183099821830300123048689355197821169239341226925794165149208716483455197307171450016927771052110352603430178918524718612771931446616092272451079394180632834576095075180492604332821795681278029831557754928021820147498933505444170461700276317765853509794234359607197677277446493213202611001813963154716135419106423601594271286676299539668081364851610233646503217001709662006949407636594209486144525080075987446075072971276050408126525248576927655881651370262324202924915336762256877032077177243852064054437078499160213847146407551914063338875938359868884734479071076467172378150807150997661281670380700179678271939737954070263101456971468628731807765972016433927572475946930883825906950349701226642727815150609864105801387951328684374624245846648084056545532603271863425351708485730293568687238753547690199522723167186690606620305823715975262702105150444555595688185686769200429843544394884036158432579865303070224953680733885391089240682329530304323172936036481365427796271023066378552067832627474450102425507664257670322597727482352412609702758398923464651223540727349875792872984243421279549481278705395200032588625201209276417306670778238502157387789654783829838900708650861676957047801129632760362945989616969414736080805604302832676843870056711533076161807615257002541309086633139918244017872170553731811184440544828294633477686347546055488826627836023963666738462434456771856184767004280163631253005269224151435122562379733193561794780502667733063820942155468725105947855960332663722714769813697177330018504720270480814554120934186666344565264391421323755516744884595598480166773967974573947838587751030621668398467067280208980060883250994204212805857703810461543616718812694770477262215410362928080594429723959203403674229052753824504182991546136754603654677773491567847250163587900738948829389878586613198449863232114415113819545244633295525951100975593789872715184216391238668555099843411283013468675747102577958723750642745922006099786876408061857069771434569799859398144250968630645743601332705880555065965967351207998368719228747824693074236269989875342271816921133492168151303143634996511852382707194281651644039475015501611976556204713030453516091975016001112258064677165522968270120544620084250663412139362666965821320336310640414683961410593986030444203152797251911523462627698549913417018658412033468283846722867831969437728694963904000652067223479428379069444205355211526791184499810129428912655311812721936034443019188911251039751791296585150045468979288536179574942315906811318641959558511309016056734602251749036015400281287218434113710568126416426198372095583752531397060498318341380797141797623794134017638186387014666500781736786521090890996432904496140818328334023255226968416026400662295984405218936755278061209956533604290803100025499892158900526247912816463300726959132934181195472022731044881215363435430005101665164788912006739569993980079721830285071799404977980725135577822324062788451696730800619499355138471037648101110675409454947865052746100891100149831647946402710061342138541065252027552338623964718736901308524741234282618647479097944296175815240791504381569550327923015055773699378361146153723616541651792628135633288567545792432464915840530567630638236089184380171317542344553076375093491004876131114515144179117429462997325949489340545327035656669672355666455683928118497211019687003071166947512762909874794490395994205332254996989410796270828379832183533263988968224346679966594516318583212440594926170147000490578916123108037557075171901865494506175243186906783788343741245741727431614617023589967694035257531734509638243323416797576645177737657165387822571700349694264804557441210829947026977876826008113612724277197300264951878345226007570434816850134935067585689802440242957497355873670392158276239554821651402530177730959347098033226926184944648746853899271288629950202985697404852665240323121781595719409933224216241839179354008555957165498369547253177755792543409594198634333602055121046857950356421613352283751294426623878987798667711752515387359174085371332302994348219479533022800545603075137918727511005663867617723977999025515554473534383682415765409339174967134736474877899584369498380088868027801179062333672394435430931178157171762713910696406734485239373241330070806500724977282668358129663456221336640051620563051070553432589888286172989600389637453769545243246023571045708112565328108993226123986490469179615823828799718293990958717227541067273506460269944129977529093436437747907907853009097625952113070304837723808987041903557264877094122915365887673026681559704251469011707785776025715058205456534202626759292430172701187223915344355044016214124706633671372199823416563397774233249294009962964763196021845704976873711306572866773625841225357462591813211839819791973830391291097802067415607455753905539609903561123548550310974973999707804099018052582391510143399226025016788839576362104923358591921312460199001463235816189020638222147998760460184158265401650352148559256408436933675078965919678939166349932904374628933946643230527952433288488788490038359339896252227039431589364583857806538594966497337930238620391212213206696707772335721820189100523568269507274056876307499278411425194939375288602433796528344424503975180556101446397729799310617496142236429669689089431106421323479065674875837936734205023054037035410003114981213963414670802215617187130442063362469806438048079789643779599355323730260756857897327209440821918732613656437446036788439467604733369755853052654608444501450442268035624890228108282520009396576148337307618615155056971706153017149608788075104564029641761255860563879455170686755799176297463248166575861014442659385216679184587528920041944442210622758317703127231142323412605844868077401253979304127146082942156546052030191351243037738664516610038520041332148948943483529822130058260521773776893112383048736085802077272599561761149066056155499226395048684377973357191180889622113935655986602370401724689159958061649263272473166758608890476418335595122374448642287441100548100391987369755421181875430457270531279295418030779153441477101432376712621295375626877005476193172904576152256843498086571847198484016775016218753636926781456767971355106693251858764220440421389160537231732177027161007913718997654998686830121058042826578747145447144824650492045085810708581932632704547689698297820608072767895398410264195014253686163899400860983908084746117449478415856916452039676451608958699997856057564075463669427397331193477703308237850742286839570783616538479541707751028596293662597366892424646793479625760469869561739974737737765294036290357564735867260679543116853576311185873435434543372066921441298335003168291729220726390285366478063161968186182368211919454900532063463800007703502965556665728029535761402930164770732512759191351439447564808809627682405388352107212249601176538483674453864572807967391328567717975811662428387151713827008501244332482787020355853366687338887219822644159412134598360031840240267933731757041678952298006485920556019519877129972071900716271319091082912136479017143944467618478826973031521463149985022038347106540634627897266178070408436700057598924653607755098633618202435190352937682455154982413828923187716370127056665919045588223229998374153361272453521282076612743828631572263606955439839056620265454318611152088228003201196197426044230756668005494841227138171048614228750616518391679355628171174768666566232018805654405199014321083953394941810944785023969933662667519113392619381388060430554096450616182566182552721609877867798801215999202464047749139887101641276828380779675487649753276266376411866378278149295037072820453939895814590793363990782820286924138660904891916622242226527863711188415182870584168048630767591663851110645473305169314487413465209328773958233493562569960727148054816465069524491509377767451582928884086431131537001048758963320148554557843114735770340330537884020509330591450706934475547637406735113237551358787740173636689603433718847842241414632030910865429754157044931306559347570067415797830562692183371209357510157264039125202056078344665891947617366489625008586353331662603467042698659522565515566859248321374681686039097018756704176885025295804799797584378923684232876310910298379590014059999092831042212300720677030515281154408200354893103012215535884110146501795279916772894472076387519124182111521780705233331733108802603738940938177095276979767027685191925058101430482421217456563235502579914656967132044204055468843981282471227510604918809617646796847670889255024860407730331373354055273415055262044409252718985282751166676040916182614735991154079232533955443084443955454530090417224509938915793929931495540070385393782285323890331490720728761704573835940299489664517994219625069022479647336420105520185400988775391091997735010023333691244623973934781042409685689601477365535431480174321001057355240082096324168051438748079816854052443465443290527102876551888224339927945435987552030292219615573091483069212727132942052604775712186139201177375229189222808526045933227724761105255966851683698091105578769038315472579345837720873576725232123701071200590750290043353114694704003129005641519740463260226635263064574072105016697916563595442068288615613793296495729682595937263277686108280074117178009718516553558914071271112255586550148461297313938504724423261973283685310520308840367277524855205839093376470842044326453323677701960464393749530362153566123024018528874307463738665139204374738777693492176258390971871662875887552472789562495834021172863978959868882822170483619514934764359635310375054781812932409618432940449562371056779517546856237111022398915095340405710336266613602986983622308393759103387775893497058008393474326677192429071538853069368773109132565034838135051475651149494082416027864137902650637450125198291869170890997103388931705952452796771667430686397887450791608632244385062525597959283909474543903760393114885438634320991097164199848932109084457197659154849428076443170526589994338671921240284198992007840137866218927418351140355368521565989147218865872372737117397166119698377879532245283236557582107157112258906269009886192634113849225442618574425337294767108993871339664821398001482276655739615609587978376574399472979041280015336812040785034926620038188350127540395895791607696814724023044117310842701955184893991281933626536333935092958401636846550528705808318301408860558884542941870566994016044356572699988126076817801233128958454744291481845141434185008270309243767645989458397198683656587276464732340445010830446062986559252127094771282465021314204371558202464457696627715817130312561033902230214977825491137360040130249584701110765656236725183600743818563006305377387521775802230226617737189764871020231286259645697652664012170440056318133580657274938928713771051371331682088052170402163067016280867977457223791360074315430400962469989080614449159183595551217610013997612167936024408550638419073335689262720952703744400011031997620232880473866413622406546642102715436459138133131068270135253317258573961251412813226932064977858869550374862419263082432910493848729530362344328924478379178552139970752230438407358143696898978207893536038529187321156923378253794594490164533793998109776436580101385518270924378733157854267447617351038786899095626988285150347842260536969299520515004919147329091221820431243699527010662090261156326091281986726136563224998267693111045892650745908658975335504197445003206158135914295070366601529420846783468891607475049126703524553580443201102617890828382617335372714538292780620275460009453913206268066484884303668842925404062181651151319099166082513576024642088515014208022036006127809910226838997476676713309195031235313116881804618518769097168745736093522853411248836052421150444000045518527201640611811746395789056814896761545268792526492959762413578144876871503408105399523830137379394694821960625665624775090145427655441973262304697690553397199909262141126157753488109609976179682987875598776931946540463095133349194945793918159137985356193103406039582921559373494045455433798657567145687304381576052181610009777682099876443085097861430844374808125055859524852379390421432902281603179589971717878119102898290406468248787227430697346097560009229250763175627434161382873481524586690959165930242011956876085046926512234819220173791042840639334946225337096436967544746433139280156220250033047122833242733403677013135698734004564485759680458199734794980021757551780782339082107344594560440066961516282082119461293255154048564207026494954555006317205458963538858752523193161070835863100424561334763385839445170186964232718736772245256932976435495910573416667974266408948260650288363182088880700069611764077293784680401092777720851972998613181495003428760313097148369085796801298402887117963416719400901656439312098701784331587340227464117742378865927142206656086880238071271856909598985863243666337042129657470104204427817483515236592698290553074482731080731234233392665684648986347593114746021231416214660173733739897073621375196896259526378617486321727903331347647715487192946397134402146789794121054009052925390642045180544527986839140665307201520719173099400718098525274130006366497615910427326887187337023105441286797516780185517912306438919622915496821579129700963873542349269128255509126104693997763307044226614453400136021139775298934494882274348626028321344662305117888191134710711858184017739632799684270692568745841769216099048304448304821462949463745915863616194456687754078669010495394820514209278185933043269106365786603726138357997796455459130553671702533165882249037591565558862556184603737233722982230646560279282912553807985338058211417748426145630332952102125315717892843406793445149858129314153724454813076771503777750914976967449522038070641458771140839850070923399854384407632520649411261092828085366689346482626207380219704777582331025570926560149550174219080171005159745064885591338305730165819431908935041054394074806965440194696628542943416723480789963607783422231010117334710646809493215305635127696740652669706285611268354241638564364229242271247820927557177484619397991129425377084193309883960272986237656914259180825181879436683022618290638570610158565777859273924558951982065683035250677567800223913148354715319746328407235734851794730185883029108810017819691631700270012983824602786655941006158439910092451952892494191203870076452465943744072985597511309141983613277180424628657562243656952730807791306455368197209456625692994995303923932804070999352347272081430469122370737637974750489358360027500460820988271423527560641499633583669281091135944898271766872164494155806566540921489715549643830052645941141148169925773496149439137441362925860419684330434682819417463139648258204600008185183264885751480875946477909526568058392370611041716183161771902151016330704897428522080573602364971152508246110848318836289513055069541676870124866979887702018504102040427430503142595057019050066806941000217672610820630479470700257286852996448770769057107087674868354450669675334832933256197706631327824610023657575466456898540246576747821019164988754732720591029525630527771174806457413313042071185144418360148495756328419214565893088733135881356778062890530774805557718779461624039914996674765873772228777486548253961253764403985339311660499279281547160793268330310412600276515552851411673018386968922203004048182602533215791644209897099589714012337096576341972200702956856795399283665231160382373441086065634583491383321915334948100796861876698543418182608797464167755830036456263859072843659424101600020695310022010814075871684915035847067577556403954016157495382402015828224474449345281973601362564807001725571445487929981663658064394143073363183486600110425671854408375640662565809517431065259050735708305616703230682065894016412971080242451661711383677255657989027685162224345325626807218929990356568974858419097714728239468561890545340211243554650491454002682301278522080695305971908222602096351004403019356067288214864628853071815016716439590691100656265540277519063423520854304368931613585972131710485714107095463080507835315580068235068231981211506070951423609557679296060356321866688681902379195080978924566177956515416860281782579162662032334392047211106682124589624803817678007707889162979962232956124026580761421160793047577591844454951789028333142969860118348830426843745287875829134185837876796303537993249701192920473567299028157623572263898281897287019626538732859492050942111070018486840632748599172754557177281044565281835644022133869415870075821666177804610293267177680621393512726684827402092783770591171240006264197774870441637469563857842415908306572196857751773870159781775952352963464806350734001216179112746913777232701303763614525949511805230865150592360324626181050841242104537999415085376504023389871597337042294896299634360270737553867284311140057809349357761515493339542269779075700184030319748424011035585068227671529058617189513225073382605474980065794313434491158740714843158944522664750038561130874787213303494799698767382967893774585712409803511880570258601148584851536249005500472158226112312258095721509961611427610822598538575016218458080929945236580649733261592737603324327778206036729005170880727193179736271148849330231461674221373514004313740209645812385304912150552243073368933551102947212440707281123073730352447031772586737790586406180040893221549086175684743589455516884111041997318289442179362913084577921755977658610437808380259900640077473522828969651281569560681979333168898532544200611995408043520417216185521193427045030555805940942230916451874067666923393374672996430943101187255511659903449270004607410729473148548383678697422592156592058537164792938074385398993845530246903350558813198062931205431865063355902796262688760578470017199639597866139898231200192560857963002099631951074491622627567421540120184912998083549626435897971091552135929801823189505683952659683632936861331998288499675008471999523348574631518534511534404562801041965406340016118117239544160900197845770809033163914794868948674277698094181138050505980960716393588646693705549810827541863998063912797150196841662702037326538048555711781878299914334249546504981384462711126974206888799851374975168793538349589503230813996631905975117559155393599575118865526109336463764887128861992598330267906236029402007549412870509163335790316886457565806158145401688691058894448274689189678934687856733719217449417891586821442979871506873894934610527008717874114420020968046517237617406151666414620125565112124893140548201772995549291598244517253533368377105105007482108527231410317298252043770367933133627729895756234147785539070274787289114101509823851747816565381532395196004842564125566076866761279197694101947074500821217407271782573821482572252098656202574949035075976672462166542573076950062131128172017805653433975137876153777048313673837270583148127848606005451170988057759879897365525382814180412415069006774790157931020350099484436776638590368250940678662572690605103989499089509730011491838619707957378573321654920396060265223136062997415330162331853672766076262571395775218010422247065478363890789949844935487171282438249753493406658421361951012804579626453108071951789244685108387555183420084330815219340860183764960977556182093475461061888543612795594863408093513362867792446090105912816530887257883877508198917726112335872420484662717622255879130964779277139892092179454105064725401961821436050943499194160386621955909530371818290544680798580471312856245701801406522574116958018666435333815630181349385582227240056744455192090677813630511612447656088978294114935299420169155587189011206036586817907284962862960264140977131350728796183094340737748558670112707238328800547572952795277797025139908538149866169964272191982936829787220250876619613925234736166839536111511672792938486871562319083889369131132583417984450233923600951099891586160177709188701640750743454706251715852973665396996171487605139226586613040231731334678997125949741480243562742014051448708970610886234711871358484122000531799562594368442202895777421585675541388787947930386904339747887362658866882846458155823039090020599232431591658390001603944401502255000051866525050983579624932214256771245841364056052285023562024631273237788335657365799981459339636949311108950413914521339460766146573224020619061860339059413333582493546278150781864351247300003536088593012954319099104220351052465842991682444046731146881755963134344542918121582639430230723201756375339482497175365979410957506071771856673108226302353425932819416486943014478409055346260829584048405464470332088542965110396947011753252285352677296110941136992339428684683507007654749069173780685493906062805279444524497864409018615800571148969480096366259748057720976771884757005280615536934397241378864091580260843529631245659560097629406217527901954114437022042207254125456180441121538937833118762391394184822657631043058946001199650075517243694129492456777750041884891735136381295598137398408260181914700208789949395180006773822818931661081026557814582126363092248443168193976618585684861172669669993205263350402461510059229550831875074087066398858332940089576160551989590941720596705878211454221455096205018419068391301113779904121714049080715671084623117700930106285791932552306436176156404402261328744624000378676922184360460001207208132710413860067598321628128661183150509996072904967044769133988966015848389126711552048585987917560588427369022277216299974080655964163114218076775105001358721551935537184294886220996125726691161100603203796978267055969793044881656028154597713955222076835431222597224917115952114159024052958859825337829806024988257324262220317988867522933486053432693286157562437008770652892674352300230197684995501177766800154725558124408930140220255274774368789297472488294469361442690889615660749909480085768243185734751527753283760753843378697899460308037745775213849677032331808721491698471569584233882834867977805862600534208852549893779667799094300584527562281761246856962391831321954516984582240625605623093193814253348745671605345174696608482401763013740553969442880628108982416242128700856601175398574116354882805620244322008247903877780153213736378609313946426504924978278205262692053279309605904608879326373920452137437387918426018851667818893490051094877282502489154749271977375948481558828129604575652383914070570167706363520303871811812443803342368628590717408201832553310158839434524353443970779484910635470453196081901733181164192417873398588224745757083494963334092657723439417719540817166775692165183524126932587646149679594862992746550792513461913140518126943953229636889516054397245872420060540084470317599846041248830711911220709899688230649583890466174531844852047908411040961409845529250893368274457199580501235019377107159148157309073294346984884396602708482399955968923888058918921025535538138943521951782538252636667686200085295450688090149816536439388855599604570366275503845001169928090502310662438178460916158427868621894869293343407665709252080899079262490518678130816674901331533805928998855495531488892732072171794690259409542745780827148103594063384660793777827033698305293754114333915286310504948742435530486974126309337263336992677366382494497044938875409728048400151765286345181305241755169354318519586698380445829448350988702683797714058758199161099069256931032805974806805231499062082962459107462544404029747985245881518587539176599436894695099877874828484372683315904883193694051858589171685535668992688317720330108727201002724445327509906410827837324551447729125047079339083182453258635291552717479341230992170499153807069852756314989429773674597055526433364343280471469686086531727013214505920372456499282693079439039294836574824471930414854983751114475031937410560009186909365856808050943544918658010022139403111677336598248214983832178543604665312471096704154527727112659836833238633345631402597825774111620840611643087676663557412959878786760591008737501177665816866740097407227788912532255335299930113036929149596383698980243396200543054014035123908548166450059827673319586448426966107788499930439834662717062340494367259517389880698622040985414532410697469983192899331252631036348471444220326349367366376459580381951684686206748980429914924658401539985343635344580498915530146644196858427268286748697525245134571869424492264848661458647677470912989289733459374223802340287810001416089296015798272594929114874362345887024800627104851384276192793258613471556217546573637038964803089857092337630222032275844447045165006985984332776739643326372924338445169929068176341362628021605708173414429980275851646112323904387825238701117594268614065174824043434500173894082624887800590626941613346690925836012511159606438789873469152878933541960758890537228922857107026488479068645657880311464157945308034190658954746611441689179943975944844492243287237828872333483635803712813813651225637571151860824266599049947398626672648632394305359118496106353505199614236152086149410852329687696878891146461652620923545305317800454379317637484785303531748806150370556482738548908122309659977746770546254257939098339215276407781677785895254215052288955058064464567026061740381529190357309723667840797794961859528327509610558374521862911944597223257921226178601254428121256566481975305470710894680988500786148419562083112055404583959725202092528658401677747952937898666948600430602194172238540479445603203022120962196064160839003707698303234758013072674883883658953695857977229029975416339492325626636438960387951835948312316615802206815219646413252398994461857971021605160558573634861059154879152313474148791589787303803915612979571092681645893191424573945301615794596276172735286814087881872501721563351495206529205170400738555719782897100056807337406665565934911966329636498506204298360127661374856490247468214061085095604431470580018030326250297881961628779127905275598075654527967570012501556590187621906608677345676046096782571188739902438723010104754201871335071489438148161944647722337151647881595030844923037470317045687448520919978128462207472376351646744786505888072566329621361944139584904919619784633645868679778616637285916538900362032590591433430727157051658748136931269101527916593605011026753726740066040634015920513566150436581263279475251095586792118101254813786958319492306012541625930232271637446595958898791677400805529221141657909113323108370153476446055290539602960323413713512228147637792181297142872069141978953004013033879951048608141813909055468837619737937812563571949894725193351655528521035565807831865988601490635505999102407583315332787324170044230852165491028408381690252367165733850634537976372097089256084746906337464441803030713045594812021495020356108052792245541203987156157382577564633398805519601586942360920279978124655091387150285176823781516036235187137861221979083931177924226930726294247535385190556132420007397288755372968550135316532975606093811026513753995721094811858291748747547988632389336964432830935265784099204820259536481282125972354595005024766265026145257157444584376746871812237450595988210045166321996982268625119535153574327338950895881441248730195433479838220584891219583209598021774173739117298293785506421441166391869609582277940703193801668018153090983234847423862916218676846235883994079222951832285387597282861289133120573788874454566088664133682864973480850788955112890621476480924985407020478510596979508501816239059181079527914286600147818960115014102175457615935919901890050753518258149034111707128117199564049639522832344394557414532697974346935740508733556621334517933844025015136891802880215873024865571144337957305282146421896378338609807365263715216653065985684689099279445027004367140255219176264040417350890482170939765089776396147790695122627686806436955578848220056647519757785304819097903377161009505384226555678145403912326595503199799000928695473096533361346727532809217046389108940914313531223377942447040475949156759482903083409310382195788571562353002826969759200767341275699274713959161984767477063171006608689628825612988743590284674251116842468149260129742452039414596874698554146977200705250020830272572796166023536668888730608152440139671477305908272337233380537456399620771733877283873017243317246624068508391758377019649177096320392315495121093516859729619574310445400215554577975400139094587269164682120453168512676817012937035389901185133432978198598020940943241023974356126405296425161085179992192422042953362758547320113746760871306501904795959223493276950435541777781377764134738645367201417074885981757184964459991812266535513317487760878227736979259439993274111310747052704185095912808305344556442989166171748276387732546912650098413272817129403257612753238923979177259500406231409629090976223595253660874161553294683086930794605522518119880529974207067709778197618968570471689683212164271967416296800570888786539367516790784584070065475461208284305557174844943389781659701885310845031266645359191376321632631515060333566729794693200504939371256329705655908394885881231239162276611332008086062414303205186818213430926498280152285949419235886372371643540731804800709189131252106107011881195801512583762874047912851717559685567778915439933406296542640872036578248069153670077268141717703917599716558690225357549618352726507597137514365921625545931083895189937963468111690492017121470887504048106081732689925444014747408763418450819689952168408164165161000585643894518341972122943269498883255786909515000034715264411100160829673505261836190031769538309200261298181747356339792696405720418359767027944645260903339064973928275489442130036290622661347454847284806167011597668152771629954502196637400283242736424037900566689242879648588266484183281095887127013864171764978726534175644546977363310582778944403950959856196297836564621276694828989912019294498172364607759817812746609728534264959401019407589035032348162089979892115578816297663688392217859655104474345226557410892292536974399923707245339206100963511937103838463453719068638440394869230560159550839941677773443265500909039002320402417951076785078919011740577212361174362485359172885335333616584267561331337157169283654738801157987487712525500169157512326932561645375530943534019730573818237709761340819388243197842561226034395183519122183646846129285175613204442342929543875889971448823773324933993240378859471886488167939733686685560003406520980098842562499978536289347039266078670408778661770935614301385218425151039285977865485050785533332694555402617761451219651602287474640443172320607783621972640897875331333300880020265321384060991289951451820985948690811808753191054645523232029418094999878364379798707822213166530854521175072782006780337240797838395168438755275496967837404664030579774876861240656636414488222086962466800800726662261761832827515143331657377212566952765425193656006420683566306976988594576378917319568472742516808019895638841642674140970793518751375135371756628623003697372164736488738213271618956736497237164298985987589471210419702371541001695982980752634740313071686894987331684916440373828439530452898573873863448689015750561475790657717279916535945574681745104571165396305957415677760483897843112981717050486570646323171227997692464660261938444209514643408548616219263555370243493156605339094881759167010473573202179433902712287618653267460622402178965679187465390762078059502833108574096958739180835837030335691093315310422668690725145834780878176433140592210461194337030931815285475746465457010565372816256417141267918897383618014787993846079772586664322623865419267797139494610085482037151423209224322937955769133994216854349177860391851098752819262221337811440405900833158098115598805850101828109255557234086875633188001695393199077674764596278160842226037472373276009530816400269312506823392786931319560072290514688351107860676132384638465130542657854611692611145198783117808357351605935411664226651021990175518892131031524522415772574283651506864788970109855176890864045136204719989084404174093890775755011043329544063131140759602899176669737037728905515828377909292639340763738697953388798116247957716484678505418339314121025887864844202817429923590642593079907694388583768693876651304617877335963588662036648112023340830850922000511931012908049512931105749466726067201870184912811613118798503275106365604897968608677461379588144821696123046407408176971099906480376276056105693956154967963705699912820288725396073595811059935227015807284838818967830717032960261872374849567522772684273753339222526295520152551045717535131817561052195457012652883069915848799080698186257033289839419164153233733136593205529348491030575665137217694723812066663382199179519942438797894351144437250377845471404788373862882758229545471247770556720294997127182566261754332348993940221179788861054891109140683726310236004384616283248291279600146416218967893059216005577482490240277313627324352189539795165086533713143868995012835206598031324748037145063942026066392219498472611391160942240885314451142958426655892558306664778344986293579976844954906246553417953121216701837657223008780462179863549033262689525514449156966941135433473731087848525514684886742573387448527565713787860513902083697172934496385598535133069503480995505973707477635380010308365553033244460766967246728815042531541099113611423300728607123527658487504544177109782687275300344043696290049670835807524238082485208489658190648216692310102454840418764976657801089962650886888081264368309336807560378181012035742871885783427358000645109348442607007260298524859699939531300049990724215931429904900744801158845581305474512502064761857506762175925583268196335138806815885367230847566042750733354607842285739241465430642889817596705502085646120856054035916439173212552453103570312991512299625139160124585655694426795108091516492197153501451523301800967020603587716778041246149998545778396808004640638569028232363588401914803274939457448532759461855144605594169216544668743276999038829625456650665433168851942338353307595148604432000065087566836984963674202542398034642527457429139824683498714795852786067781135280251574865670112602519172462181618536476078830116787157226644500401900078430190066018336323677271990304223685706014616913584145303224615331016067681862184766094669029145817347067586529999284263052280308868540859259079099652590459621909289231607175526457502497943905375658272464818296264197905582220753843983106287450509836280943906979583772461440308947705068628115011084215168256790066150883827736311417274997353830363261374448214406092908566011155386829744004523581180761422720921521984016259271262724695624789102525135210612681889407099748364076142644324978455514724482393809983260768220546425115764322325794574500302802493910689719220529448667774844026216544956499132321755685095022619221118187239232012762892503896246447142561396398363927299162382794961581423242891194079152222027465055988141586424071489013185328655122946991247980874305904077685312472175693292568767403543845068372038031238398820353654297228892715253021566652698408651828371509097003073005639160491600048864559331547030599113825444511809098122029883345100366667017322431242592922589929776347970532275081021490640629866706145810858117413155086544703210598127827508975497466313132377445655447197921917845578472139697647178315446599802338792451890135780015479630716441407819399335917345685586749163270591245911093792211330907510055596351426392832817754394147857146905918752692317084293349987692643885514847446793522720428130673831434394621464595239047299710217581984311893191189576857367028423337906839280117277063560248005542534312729261428516035217598568899822413428759759134714063031442924197762604335446142435076002080339934982764636510672617983332135650725431396270122701104185828105409831683422582749284306698692228353581108949998995963281594139308829777052119898294297216896330309569579136280648909240047300979634529474764035533345795780259361164817772655415201576913673189130026657117140048116156162998411112295205050197185168068540406230123610491108309572643698428552648386713922339348926696074899173934882042431596656702895924801963283930483566977901278260239905517884970302070228102558089641709889484499514063814014379641801074079207767277101829996609253543747436747150017553416386814074759081993750694434010072014860862801272642378287958338118043204546108767749726269912617122863617238272324299078191684772023142280213990016157927457202001094726130443881242522958001489123457427595168419166503951070544909757278100271072879234998981210287841515722126328513417286172773750040254805029812992199758312482016000998459918927177000818890523392013002968960749793147206014378982070903328258212136937715008616944378668241005060619546477502741287805016125276848716429297835014127665810752036573859643292757128013662737791722749141399184741850284003102528846154764657988298576663550165977136791084030526282179453574960868181597559742093596246667982161313902858758108069684867538989974313935908506837994300719611467131231221748294797855156114102021938710684164160477424703885567599409155367121927872025148865955343600088484722425730292534985929290339979602827917188456277951048641526346753469454185639630033662254891129283981901082994896921592252791189022243566593982639490384460792982358992753801683049166615849530350773752617886627991960208201915757264146240266027471818245140484126567277401518412975963570847843107143276544012535772998720784047257787422206389614442444957512714547777965530588803364003484939492103268410413052234410626240100179184318224422134767775983124377358495631069099057892980995622993368060984923646091261447631588363335012559179194103391012656336186302801618652162974277837230065926223679836449644041116072690529042391840386522346696027429990701912166910456814020637847752491296751226481659086941210312245632287073058692692234013340021662549219759338548614953576280924379166685044058742244615479913530819600853880657948856197094502936407585358831876938512752767402039029371969416665688829206438040958650991971422438779206020214931614537186434241042004498126810020334340671871515270666065327141824502495124456250517928061210116679902419023278721652202603561003778678093804060929693081849413608879341373744656149429837729806347128083345955448379809692411993604697304877510204091707100858254019494040556542861681141214901332535431688043179719164522700481810885286555796066193390979308442106254564242076691129986720372503244151933256850248359698928881388047862214373160384951182253239971946160198355706511538047658984427256418621376425992163427179629881409147695437513275950512351355554875065155887521911421183702997348591257018149538739330698219296249677231722464544032637506848158262457619214344287893979647156899754041551483031256840561450465471695334685323371705406592715368340209488721034349224893141938423480194930752000225580705933532445178262129295831168983802349289149963461181327922101240128532993328287225651661880049750055702007866216150975024194514469617741598470983207968561728281628265385043582073379133379779485592119092843924348588917258714892875697904975588232047253109662159293951135095015023706788940819672113748825474545327650896792583839715304746485192663328350712558492246157740071422882050920457477219414869864320583774853763216017976610857015844154004156748934709462828667429659400390339593448407664329612135813610362648851772700237400573278168836797016879097038948638171132052233290640110140672957706368206056910317657244435164557558817006046576260166776659886791100339249846880504543709057621331929764158972879971317100892749156464425071544137249170919960022722471223610184880592200713965568458972858142944300139117233385169400992379750522413698185071136046391156063813965005714898605393732047421837967155082891032429863070052519660741240912721200024521849960014258372735959257085753143750642255924867378806663209942941434287903564892286745563122370054184043931016963372025845843247374419363004512476177280463788371794824937149818236131256997905236526335585909483570868542482334172296678001990773679199703274343743354499319033027511731259045668175632201526602380960985185593241410373306789529541451552058987513595525653529997432397918773547818126974032799586143444515076298974751783279651407394305022699935153646348768118491684554040530274262381694951338787706519024207211996100623501752898725854922863894559352035295422803053198791876126782626336393503095708376635056206973863235596372818794390134368652609530410364977902761814859563474314336214442347138975289247907083429756324282384897164921755689558899359068301389986841714801517348583701893069785587806398741280784060898751384308435894688775634374432633744658202458262840685046504581671268599934026234033135077694715959076422003438985133266449773779693230691342058138046407030439001026676302514397840794858467495647782481642542061450761721651372130258163023771472078143781988981500432972099626596650987711509113906746124954938227116448678091883125496420547776476833157103287778930137086943951626208796465841639683450537500934389986240484583583257835751880600511111796540076709206513849296167555259719531473773976770511019392215346104238131462339021060842466597199570923846637522754735946618824868101668072765414406238567664849619057774964214201744975665838270036206700494984074186806082652248307033803513179698802491057645154468539796120975996886111999399054213881978753453923594911730817147319328210206886572604618755369936927582987276880463743494842265955855281192314788395575267953233688340337880168084246059065501079683300649302400363745416576084785927608555046259418032602836173546155844413834915303833785641345455519588959617143549082710576530726667043187906929868701589060043202950113759648545483708348498677670723018619411519737013871733686541306550302321413670662438650941794345088222003732052265293694973991492514182233677382980467407747540581438692387765587686979979830882242299345971534662280660686721013356923887467840656500860923475312625434603772421374987986517457243052156978713246092141446230117812319184669080372204709442915775763820298270039670743308588006510281040852454253367744877269948763958239076838236398320560681745301414668490785353911781384185588825688379151041400466756980853970010915123213388845688835000372165834443281162053129053130305927577055794193704242640042887264695469588540017568702480158446885968482384374805098695275470507750664898416536334200671959603249121457348182030471604021754513034758757877244319054664310019718491787570619415808073537651485581043857237237032914837178112003665521502536090449160979849008379882559576790858242512790947071436960449248511882059305273709949139241260300552726753110857763859070395965849884794159137376098550686922651171660616381218985579921835330242161760822756010895644306952568756282698014516122357687387754010011305519237707897116505107618608426327852501977761770567072984019103204495269969402955296747668350848828822992229479746914337078306935481678037403772397335467444542262112831935509759893131252172156665962911422762636636241075125245691342896319267844599086082448720242103781406496208754407632852265889186550580078820127163169611397239643219172468397032831826269434110603539783903772945010130242541160668708138452326933628232698125004095133450853443529595387152349807165556761875532182449431870050257203305395188400398774127616870909940724031517167508458874699982862929626534359478813313001149543218515397756479097739077177598468033975232945589565175475918022067564187582884577563243910198410424857367835057056317378206605779930050718674235501475569797021414765640346082371390296933876268848014038281628920025527204112220905260770961947835737953486044129916105946055664035571889859569424964958701842146561615406314699988132212488696337122603942775113102771851977572608255265565465190500098249245718086428132212250244774829221624988447902770388527861114662395885485981950267943302198830267645624641125392813766222032723548197703142703623462587315799610276127579174405288773680172509849567293561366744113878022351139005683391659022154579281491121730627894747744911951529803687604186083867488522398021920008173859949170893414951004275040696574374642292399947062466474555410419588810605394509251176181094488135053823301127461260407237290900611960903082471761146091879219856181423323431249065247074319215908862478416413776724941653752057733938696419836647575313424931254373614870432794668925904306591295054504649793223428557872084977301611055050093918230493116834238113959253300785483463731544069139586467333181225421201516516647749085369378760835546154856505748697783116474645926283922006263201807208094271657841972983299915978472725742247159337935115817663987330973974503408252443583434830247591132869943393935453946992331279149165455507774477902806711026679590550628176106533357155785459145809800432053962700326449540215713762451519983268006409717163969791773106718687305802291269408950150170079023833736196182390324584022069631326644010266580930592908956966084082822867081998811882452440080986499657284794520102357471694316031954026342251180158018194574939523096751028541769449768291081114788053855186859211171318769875407926902434049005118519960276441956253319634630464556924179100938083102071366298658778482535991380493155595188747501260313146256461502777444915825617677034150834047496340119507809646886814461682111335336003018628402069135903309019697951257985566120861838996815531455226330371177993556515490566782117289510322515304137340169465335342141187099710347982445268023258451395457627149188859917080747530969854768217483180110918851240201002104002706275595202180984876834682660673141730987993544416661535087128627931618629353877541062649267854015415919126923475295439357065926849505645257569790537743869893838921548116668393185348755233487708244276089168117815163646526342706308945111426974244712361732395920432391398202136342234192727278993345281127996292873445113071943057971124959651424273637025901798097691970058828033331713859080391526336148242498907658397434006483184236120538598755173631171692382293487612772671257450901015749954572283278602235548963438146086127067853238010505355123273424387891200900263535371352686121065097175521634023485583786033863136336597311982106003050379979199329953927543077315726550621509032760895860937833213840182590397346562908301004147030086664423335040096711234871135716763333637897733243722457981379236905763500101947181542175010085148313499681369980025460371356378050184865219765338749932820098838320079609238653739727690665988817719871852137948592938377821956209810779040453888606471879080662253399588379775568533084450380146302178776350458715329247627782566944112718738473047293525280690901973983484132370023435945843263632247829729300650262526903877848695150123835573861299149950303484569661570621093883786713826312953108248917786763737453015181938489732076212677867713138754551293736414340878845757145043558597456597866036282146083041589318181091531586899693779423518936745445894614325518846500439245846003990945261829906628435842450903227145427824277728050560150538456726987382793241260325756854062997538931523750899606115476496231329329857192201101597039114015014355041548484432165206970748651085148441489010505059662409916687807042649206136366298853254889816181161126249924565778213290942507112117277163774183944854577877389747871877736487437959523256256899317155369062426753705532015587429950173141475379130728817407231225789631340454607495766176532216118471798057371750783251972705245925750174812215004507564675950001790825293921537838763235297765640657056760719605383112443105237476724273530686072673766224333107896471658352978073296215020384388486562731477374583706846889792964613441762240551863639078171926767167910555185333979430157302294253736533638668755653849364926656686680415797760836807637387819319477174320859465240284528749626351551181462967032403229163320333829796818569306619986187531076772321443971386185123448145627781617916272574502052018633397194848842498422168811722779000968054730570098981649086615918408910293720208891897714171435690918549833641604538020174100963058954691446967525712844798951202620145462837210159767338276824163425251696481388952095161904309000578189020250915289031069088735846242141747030213684135039380535551207810354309186227215250746006694608828763764346306011671951681559686007259260156101027250042938217575008695299119538061691471140715681249250235889429964030148959682607277902120756559682047434360622247172801500858177761655273212766274233557195039596932336316239377680471156631034985191069193586579104364164972006573084107132923757476306534921458217701141975043906773077769768778618086605806363954227500956538994088543241361257374872096773047714423195478961802487898460951539253773774749594063500108838900582629026969466941386222025914974091886794420085798178960947435507705206713665033909232401591104685771002857810971565176249744228607030989845929558768161291382831998714974199974167810903672983737464699930567756347287871037510468122214127719244147392527046190793574110805702782798318242691351648045370675033092148829213399316631877363215994243909273878614836983773755196620074760440462995994814527244255368622248581381355101481962832507146297738837214438451521898379018601052172347068095532836781668485214200902514027964539464510187808247223740817805883706101011390529364817876834040831695639858295839125482410415996232016578001627347202863622404201434336867115216522105960926830288414183060636164074427886901451321761003680683560706539606679223948447203812233177772994433992455228725158511235599447674024935960861201182297247050608672959056299495612747987487328207513761500513964428634853241277046930233386220611077739948452299381407421985258009681204608179900605528878509116186134220722260554501973887746501275175352048039835677533503647872782483171577418576882984869393786891622713668381789406449645488347915074676424463250523856045756022348558308000072732847827966380894445354144808626802298301985651016485805182232162738207717007820457693222103586903298871293186358355559948374287056188968885071391464739610545614114472861268200959710612310403129589804467240430496529391888527480344815734485727649091086641636175161150771772704591175244925687639719544342618777699018158834080514361949196027865315629345579042439834535478250858869636815186736330312489732279672729778913847853117735620683368150981354260706303037343130090022794615011591686229033269681570218740897525214682766183856899590870181380082452966976736980720297718419370954916003968242382418213333625728899000455072850007271311638339463783358557499134940621132030562893173354863434899413265698869505173132784448199399281245595533673346608332288872324866353553588618944293691313467399951033934956707481440573907544952553529417552750110736993939625479468810649159633568095526092767146963804721939625360740213256604333447946309461239880595409084041635710246872269101616428415997676915376584111028115395224051194718423841803501811989841910388348028530982838575814938145124265673957146198884594863088445314138390561258199094653895624749218214933058637405390175676793147175408589032755116574869366572653486472690772409149609678253104922474698285950555900743055075973874852878442858969401179636592584482353564277273999526260432354967901751497526083971117801067516734954402506503861356234389759499344079897435365591315899649623056762237564345276482805183194170125849635495978804562331226627697320828817665862171673345780477968914357059559431300795179365394860328185650622985854037319508763431665428781101416947274951283035125205088414278785225168297018509247859415251223105844748195436112598919770299101214752859668852022596466489863876233676210485067824960121138168091691937634584598655691646515514832111402910620944250172703575505973145475791180898494765152230053535961594187695222707076436621792057049925146463511085337870765499477420617588139889499819401075382775675749192359949756424474104455523524020476443280383726613495387041090997353310054318840687431600261353452179866035406063365241122144864861796736418151091556787503172167828701345242564637572941083073260832003112140806761096859002951434974881974393827421343501598913506243280250921556918902956894289945977225842131072129889423799861328460128164732946565080298335046383349361036635380442074988268789015606496705066130970532641939338783973867542333707473816540184146104598395472413995811436314473385493872203076790066472998504869581818614692653436723785578782413495771290298232118954303459852515607856455116409055591261112904251747908448299172865554278366027716823597490330312305368769402499405074834236098792657012379447048668428422505173654802675650604054300081087539655169401648012848197542270164706152776321790587001532267471464670869619185508661927005413887343273104440396947568866407440120012714543044739644207282303635895404492854231282988074377119035652023541867908913418420206504728649861376498519323345057650825756674510084810455502020655047578077996619639732653487820413973177857227977186684544462291298538246588446192704262628848750336131823235099998081530088790649695563990490116753687804487016505274963722580227839523931681008390356981410849279131807314387559894186777471739713628535529867899049630708766384372422684637912455302970533571384935081132203590742517633668325494378344111859368525965896886067054064576962349651496703766818098495044462160077819535894020493626348886735029099324161267442214613585143334153727774069839221411500811225630490565606622667731530164212631039084136646739857588285677988961631173461206157529477294767454906661617890807173627008389004627759229411189036764966903397429299931664510838078966906784292903470201245209486558185370360341351007673902659272691026964648914290395659739283723637955572305800100993828751810269533464220955004358600334124903463015292192150274737709208165912954156751502191262861418515458437501641964512032382439842498591770625323465997741683845536141202599672415089694109526484447994433349406623840505889755723370506816518587970068797308500622250910586838512316546737192931520005471972557512867171319223638000007976055129580948302372636237324544718118667910441670432725208796981731931025891935561416963095548504926043058812834975594536791911827126371905213507989776824943715239092311916614656996295942558721975249653338396345876155331008875985256516664478359006594002535498576004820671783943938762695104992525255882606575387626470250099512599325030508805003118572794421237099018141265275719655935972271259603882789974389110090001385451970581237631223143009326975404998481996691938474878533482951645996658019270400868677285927273485775186305090294729943837809836619802344680662389011735678523556850151270464607514858835493177754510046378707105211661501767824533995503152033787163870068132083797579451248157794877987087916903074851647628113014331080534014352667587822187464876959286571878514296397299260517302387979841566826641841781215246712608268436027452662978625413217993296894853047603042834070736790478959206789663797890732652020771490275604902057439469282314057980630400066218851612602981502907600284743208702267266815334770283735783611113856587143171718732845157723829184188617657510703560163114729638545416906863500967015166565060174086914540399360576991768103009521757200335400705582950761688517569903127329573463130057301373137054909738983964463553717950030460486701653489475707282974437652570034961004337652285479994704235887777004726309809984279057954888321425546993326691178114545804389282163497852596570632032824970773892008912998333317177567428982152886590651943998659124578302004865307727870963506090294103544773489604433661549870628888148539033351168161429013720358277482990949151066842869515767667370712458820482224141859247722387961737754316382127951341829707274290286997755478900050717897391565746358254748460734645482667216120542121048796974055657593071423903025187858489885941356125430986747289980259280754540074962017935262301902159518776752572114032471741464454578612861903191103939821428140913314552310182362218345750923524563036191301006299565202899381680215517347316186845978838484639857990705514883236271889277008202469496550476652908110730416977356219051273027615219291626638184132368303497204313243728318407974418260369717418961939280454313098443713247593388120253664184061078531228539769427600414885367309639695489133407951238137671722607007062022463786625737966777281861184196500475302221595744831093464943954388435449983788592411146401345663220316625425463475403782956685127382317308315504073225591967401948907024853552419448426635114821139756019717416484161749737879147985883768870193317890767966948064172073740497782569849266811199714222464807139706657566187130507063238659090370523500346455093356561501600117898650975134833196291014328737765027178238506656490665635623089803696922209146276660478607228866923778680523194241183840416567831161514045429309099099371389727298909608466757211250743696217933793800673324051646657638768879391276527401070326906341059141946385433843097595526890517445908307055361208258184176966719878880626723506737198730620473486989291757135225670643349778528645811740614281999279742549368721588598456447029329757575361674341847976781340710192074781805562095550539862261027194018195652769641540920601797637112981437174403773606489710658538694031119220147285553438972857269292273664556828894846397743080699073687745779976537363063768300101078109092112686648021479068548261134336683065060193210547204376745691679833904774928486875900167283073098614843578293650624272969427672780104141317328883798593768867380403222886601706050116428258470347437765572619546639556701247991997115623128175968107521263738481775391343668203188143178218385945608636195022679730658066622572030093212612593360868314100391946448745422908516227606809066228969458238597533856802174817281707801589691255492926934389025318279952027308367850092727379826898374723139982186113272846121766908395759492064187277563592376048723703350061109264143276588788466406073896706232135312380875268244780608346930717437115823898690946332375104658342909829382537462653781008041541046291377164140194018654788981674451741474850142793556359481605328911038418545454756603452549348508298691917342283999250804389661507459323717236869555022008012643704334144084265647754456531810794177777717736318751108023631759408385252700051137002179758977601142956779632360339715186727482482121307643266246973079678345621282550667394986927463299734910619561942965617002869896498502927857568757516007441479182810903729800258071454333599010541731887802362558515681969228764790328329829779879181217080304336239929411951795501774543025646677156118412112844648126932093486699051099242050849537822006066528765979173802152176782819646902677064551586095522622949960597214628708037781192488888905020825233402491005848966431360564887654214363937090175708093596986681410350926769666881230920701696445892626321348631336473701305623855503013792480821511655378470114894916435674539817971939227068824283735698747618282095862084380142850281560200466533540273931806666610575773015249574520404187102099877273802688308595058484939387042306493734627231404387923266798415616996814915474727770014481548508859673453870750084485266287279597709042671582687739614703822664560586121338551262364305188076111120885805802293652665138118259784062571657378741163727793691199873267427233723604139589446241657249088276313309436893935489428116386533129166363818891319702692917220994131234586340998724007829895356408429768953990886706157438759573854528280931993096320340024287991866843250944018985784809512740276770674070543542687772886969964079467832723586309526181089977071544534296424625570410666569283839124534609800886103458845695840699380285197278263216382403225705962331026908074489091714576188688128914733650669351441135851157895199165138909033117387620880009090367155304680919154115870542850499051190240074001102964018933165891405276404419585046524139411123124688095954690484731173011171668737168717819319535280811184755886043532731733898362502270605322862946021445014748018497264852019471334488759663453246788175684200525620237628619775919468656937150415096972585329456930861246517590977235487899321829938480388076339413784110035244438829432585433505358130405167849552081388634517325475454892929910869720305391903997183258101385872653609247682640462267042446904036338774482065525787310217034343224878032408619936984797188243989671458347221932906991110200614060065162751930514730486917594338221953633535634614169818629465047870968796179403793629784184150681618158475828182607323894558220258487993335672656908340641971861766728833242791371255869543960970809076532417689991942668920924281096834032409622915153020721602640090678763187972687303281770038417121302420421566086841629674966017626966387957155863875066519931555879026786112951752696532907194417360150425688904630680506298570877810647301325564953384474708025417883380048699530435460402225939911265505592040411000793930570702495708375737300901440775722345245480249055707816397055331142025517239893799893456226910436329437895079732205384395138908850815793266679207258806701522112386606216126512245870684745827099491208718666531437295503478620672624936568332720525643741936947517091038021753285488848285224257831616583580246751867510821031421434503693654382677824006583372827892484030156820352324440434244572206023084718863638225560844150887939379614118029403361844025692717761631535000847485342076670013583886282438312325084278812611508920310111850210869007664898156435310211661058935213888617717229954139980611446280890583439246574828576185258434932355223522252146352502053744517558281557423359963990949740892383562482932668411792034395689993760679788470406325675995574863361414347820743865838090367383355921162092177599126029121682910655808017152642555794685420043400227085526480535944800368229282302431080643454489637470671981884756807893604159789266436032016022761269510211503081004146017562301202040259156272225682393079767603018775404699780417105135983133899810192670380362323581947560094705112750763410401481338891018047088359796830275733612546788218495810052579361182579036718077070493586087616629919655453744365787431984833717155499236025346592288010721045398387170202014979739215148319573381544286651434626798616465590266725195174978927888720687501454301381816993357121922487128067649792632223544444206014818688970767017380438314960450180310523564973921700391027052675266097709149246733868622896573084092810634543992329782642064223456288331676104055421397091354201261373259662256242610619714735258623708116324718586834200466891559975793602416757910697252786243329987391613448250010874349498910543111730240405821176601290617111457165013617907331862118200450941865645405265323281269727051053849015732079299121149450490824993396470069468129151679001219952014375117852724522085288813462904684922077876468452575648179279672440516386120859286038089689607532439755135448533639909266176697843705523556864770938977028359082481412890032504242064424953456296524181706023278079168883753141378189952910212205955111776611244394307778975577357790358829522393495408292002311909467400578743520091192771527623568449666072514070530002019266765057064680391833853366106611103188590522238771281901849053692025643963929461758330738696043666621279665119538723054514230768484955506865383847649437522382541929244096975007737892879196404971343098747678515893665016710839716092602430007065082433990912032473779562938886415665065596593565837202952120697110923906480253062488129094827115982794474198154201605285739685694640596699471880912255602964314112681971206859077469160590192031553492564058626451030435177779292038220935990213003840980235488494638098236949166347380611765569636214348492838670288393023933080124602966221645185523800431665568553855414292776803905125548178474072847393664156798368372769874969582669842389024999092648097418650522870173126716403996390572476139841444037525725305674326290220199419923545000690144961721770282679043650261678263755822765296687820378010342437368729264362992542722296273810095871036781047361098229457374278608407644470464556602952846797716017734101019400590675015772162145782812557860455025767995765786137686721784020211885137725071304419786662845276529737997963421136431670091657761399673172734482431060384227729891020878124955364967041849384889997424433223720831843717203475541568901538912760599627561121647912320101011403313817646793154793435308900726452735181080996778432147101834836164001270607532179330513068727491844581123940488566141801805260105127983560118268704300479260620547490532798656197203315440824892896707216279870647282822351426570381702122916753214247820958005471734932874885330763223310141267870620241298923944699060624084820051256946639275206927568090706409062397043728266232178962939827489311603833019885727149365689347930845695989577194557414153044149314142214270514856398463177762645275807194403604548106523810194549414281247663885163321898279583899996839086502441439534487446214827569468459585970915588030058091488075264625876422727007334969606989460262882638169266064686953026447480346660471267236859737693127288640484266644791189291094680601939759409830397126862927284043895949370830749336278824399068617069109763073187340184439555425541036585335175615440468485220174306009021765011022238241607341987485633100442594202941967723537491002418750181290662816229931541977117624897881189169652680590279552953429068814092762006315818293562969548237659270417011589708601628182158230873836388670893246092302251375689682635319245768243549446913426635558717785047532207515843309329418765386030620936943691155807359978097485291760231833206453934301642726905253963468185010421528486324618695268588756479443523132368560996741112504736327688151492557310954493882139865006448848170680943194792623414846034083312440713208688842747764093879434061575652184560422122839711141962422477344776914422262523909803632185726212945756421712596669197012397795443754354895281571191622602122351168744350550735393011558266101151728238787056440181731488947632273855051797441328102612648378112341858507280505083301844224088232873913964525715026439380127242140528953749629327456681021678559004730519784653825931352463471909067582076660226187491991022942718126975971512368611105364740990045808889918355353597092402845118723599547730567894718175490818564492338638991835097955639669451984232339830248799631124546329639314967255549611338131678451411873382738157632280052248739076474485786664357736520624806010885569050553148496977794877901585870346222988777457580638771455352615932435046853026955177070100290194157302934325617097159154657087377959806268002499986446654414638897870169798314352326306076803003924793469662744637171248663051275746871284388433750792622867361637225628702638554092100914362569267366414468676685690106420515836313456517709846612691707274117325796982909688462657125974634000656386441841433297951367822799478055116935861969155741903320374951066092428186839490680885575538810577374063477646849170766319532555746630097677774225028343803293178223688613694031797648843537622914815397922026526517895830068541413631059187013649909158172316599575839153254259061493957281942576732740172823580464190294810320083766217358974388896644357305579748839621373078891920976483377668958964269784216945273506825022924278355569236925039432695667374024818643119445394731089909471346635682890774999851855130551404935419150163136979701737912041016737908486637068541624816007819924215423592745732795136175172165211128683754032945992471548904003554635460987403113118364140753531384608150571286767166763726018344816717336909832207522185300132908815074561137533298925266464142087167896781898719893318850205617221423593104804697799485571335277935065223675678947916936092396799757885312771851180762057430903599843038713750045423180674315522459474700182489718779121435391488271744903560839166430151089061913157477624645171446092002854404268003524204855393174309246411818986284373338197970240457552337671922673034025893727134991320247545900629859616082312239693422028181567887693232229096578948564394894993414581651135851136592047880888746448192708739797543245822926422908647254012287113618308330421451340244977301929305486536552853155943149075750444141495064992008263374202072490235169932182221682859189283384810462832100568794054920764352867829420914921978768128551347307618228849644486348803628051858128635437793967768241032950726159750110703461524540050223632816159324997524834077740358961916404518308304376553034078441129740901922682469743897935532902953902412584723653424391836930578116163772793569025124295305555943514204748819416529615107198317945688575245026013542757883041363371398493074631256881161480013958150400417567339588318422717859371480434963822273597261434122189323022118061171427281878606745072941535232090756174248424550612767864463313811096827693305706039367352499579264802301135487599372058775318941309328306813147387045859150735339573323863041226652063488091846858734927515262400408116807879978488469078423897843149520198438338590836262596752338322227427163876443367759777171201869218089532621636882807809858365558677615751146264436013344097146819889210216319965592821891212169541616130210775756057088062169987822011098708396765623701689816453568407058965393771670165335299745209652921316147801517261817673085450097937900425144323701093899572941663751494661480854981963311104183638634820449292351926410743130952739495503543041251042236041709611452483102058075042580182814368355312331391756570831016675749755650252913562294378116928107973461740818967508340508548342669430995276510053833609948045855441639464971701589462885590024278358145563054892607644914027777368241443286987982681044792746164433800212801600690062837519142800530252468943415940315688083848978648452860324653639392465277791894732037549063413618480038245211584340468933285060002490102693237112851501742594926597612876993566040429318357843642733145915455891646832174982426156785729518571468118988144101463877794060776835508196684004985898494326432099783577054687993723646036359077153167313780699969485776176289509191288133636568242824218407608014369373853588993509478672234460917789874828685544817638973401947026112056781358823709961281705851432777246588160595622899588608190573358984492101258560948941833751249790541146469747887609841986778318428293417203603145763652665473443733425049651975418921131623189496915259936874486975952733304334984244661977455323858674072635342195122233396815635613731927338832075307728150006922876203238751757409234871401420375972598532129795243024278448688198251899127731826454332935373591586692863852475342323296619587461905501266846744101622236419429606246995972984352036077301403010635753171455633004889147942603097787479913415340718040634328809095755028165757975078371034248366265080097497150633120243345243858946162800860600712248896224679334233455934995154151278643452872832850833097432881504399826637672035185275782188878038774795178136892813099616825399536759310959002270928039381740098077035909686939516948631857858759495818125316723184600552930281306474487203577280100746403002212040453893690144623660093019629404770443554554853107027278714219651468465592590603761981363634176183224608744729444184343207590320636241723431551928123230945491096857417921011951336875103448113186579106703660666540365168479744829721261886011099091995895668545949880086382697941119735597115300309892194714609402432326664359350701159927624365773210129088084489326478622011229992957720354039732406128699836933219907468250397425677859468537414289085462114444073856391510602810088595858063358370658372717083859912275217468852933489369674847390154512007179579729479367914603148653489732348580737301723302108815902618464810279542981402473730199359136344718335724258970156444586597900435489820183623282029490726007557008772534698642532372281233367829312507661586208747565276789309221319571305817942355914072873839408658045667221341369522999471109623962826434204702056689609769352644861322727296886149140022158102401886671929443600968310568684752958598853599334451266330852214443290526191739123874766543115544751102453776175714105528614227393198145198581918410524604278318597023840933264323992750407742853976303827891494672937162120411864927140114660884887471009240176314443637709574244654628079089816669025601833936747977466385004140846742532322488785199298479659251431307292157127038580486677081385831502966237246007808397433819898632299759943625054686119649432299943231548934814776449797781077401197068222639454494665882674847882272242817150552002447394226308815371531073221424954888659226442237860052253698952793065494246448695372984136490944503032007421453899451355567802844793004889546855041936806412205539020331508173628470592802157420277551367128607715882884475029774834481314253142297491778916320240228222961259384162156034797965623102126194786454659779268587728539292751924808051329693944035540389153592939587778108842100285032568990935220953294734900290603820576721985569338874847981913556251680562768360036697789657951944961716794107327755369828692556065624014648012828453753858713004144506564597996456930442328566920420645682433068425829231423358869992509707748961979899635773659032738989531203423498550345715020190985962272370794587291781443825830302892593089799216126801024021379818339917237297017960024254366844928035649671074102356629558705880518113074618883373209115367172880283579872561337886458540281833223096551939776062321468848165802704487816279336226693374946965407598440132118492431159047891855671662391563264920309761576667732732800051413063578859147438266989266721028830590538412509050740966583100217771067110103671387808591609161837158951357873853225542513638146030984651702401836100019746635451339237749475243610471145331089465039111393806250760969210629594389769848113064677117413542990240160561816954543566015570698645973120313111676356455698611809257492860582875130329226243948824536615072953918436854438806000269808777426924828604796474158426374566347692552643472471696457191063728837496657614102519603048869481290361183145973622959533206157978994662176552194224020144566384681565515418725194742306169273842847681067013244322224831179751732308330160127172743098067199980773399993099186717743889092393555049609304197189358720420929902082575041995450813543324020673510998221302397241130792513792248638409323466372821431853285997514925904329591062851459449402512263075241672527630173119232772743293652472608499164318987170859784676755899949866870967379976052288990893230711173930571240292375473479120183697597100482988007679428777926184675237653968000237116517764356044789256615864182939648438979640683308489665628798222975555636016496856400747219176545164934808079755877795773056054730915037517068975577718604553475045745760340826534811461503092418438298642882807811933610344142048875645583027398395730096731239962283072260376881717230518941529696106759832834487570827995072868118031770213328400971222803585998522068217587289068483888949231337456422382047990677603176619670359768283466692268470691488732909315082362031630010613340510172200143433949683862678265803931473189639480082376286777888752582642964696506370871239276864069969493543680716905498466570672025540649381895751175558602974509844385473942135238012137459917054419812921958828498491778644143411187310879667593820712310420649320497246675530913531088298783447199828386047539533886493071739487432951562119610504037257473249403747249656156302008184573395257457813174867688802269705004848828728604515940253312614715885628621413326646351849311023760165548787598378752836479048262836682236077609964551336394695964076248991411241214486305644878379093666248059557149793958207404318083288360878553861670524109301618061131960055171299742787282720016744692174490332482125030170231000480513855343409942990484200905988989198327974077796317733492833464472493788149163509312198683349367104310638147334643208027804746349835107250760881178372329307173378171697340129306628820818195064870029401776784104454469524468816204331420666700587247219254624215630572927001704217358643927301614379080146939324731098983372408584005433857724128962112451638360148747787373054642113858951011583321484228322584531190676221569876772644637049558076362937119918208975185475061357992369908467198774418481354802128874902528905123009656834160645679567859969712632704630614155493398285804138824891442515338336897949467416817141989027519298671869891806922986764392431080747267347592953510867290669513012726736304326961364208885245418108551327824081932502190776995656145070278926193336145409164632660310851989357740452065678661398411392466153693720599290063243245159385267663563151641134683779789664701513352711970071408981782726117120221451621500101927076297027857694098783956916246897104442268503305581211111573637017980788559987942278228863175845021468026142355695799774174042595193891085138814074455760435484311140797941159398705552892107734718389284826917092668698267296430115947238439826710096254070549127386560775433818929760772436047408295540710789400183464337288367363036385382968270319479146763514044980181918079959314123022844135314387644762907073504603463657196693869346803715047889987883229965416176730254660247003728026720120109732175075282471808872108025629220608752957911070520846191526476429291248764622334507666181774357927131163090860907549264777780949164652468337066257949303848103029494225512643521463925961883051190007900318368354885197478486994067273847607616411103126312062103836542459139856725412774839307148093135877943401671610952498012747517186063881587361419831942137178089394616049981053585137881333568096729470955476709319588138954483410691023469223639445043677664007258882465812099369815427533897585010227639246857586939634441612900708752739580826785013885653798085559771760284461877053238900661878099138156041143935724545147206362291116494339947673324284441935717864175942646128887855521390707304161220603089390501782667207902513805301977852408890327413742286152002510689798576122897922369376521687530056039616434484003500587976237581336345996195538471425203565758543510911295295794467126477429556454776980367100275610664005697339471242224588951269632962712622991839143196205119828969251809082723216708508100485338684259216889750296199350428114991800264474444826590166260722974967850581965925340273620288796711792641649376655893396390122913496920930997468315200367424767847262071119136215071080336949142167286251335979619910942942122654579406293856419589417920895981703216977819701437586767596771804748206252902418015037353451543360562687758122393419295268485547137976747254953973273662111265504749224836991964240025462765572738502580679864066403670847137692569670244696476335730804526753145249441277578461902239542148912133775077527467056283353140483684514309768698996431135098407943845733156073173593257764754050128553601144836114615654694979544304731890533415558499530588861521726488572863783578035907760278232442589521310207395399494997166418374778627563871912546715919983136200946854885075145659939335178351855637122292471811861778648115465032322940566182419093412020166960820066133273960480945576160835245390997661412807154401071644910150338433116633675919966454137940930068378569810634233365745177612523286733637362072300114801248199224312711940332697604952754219065889013945081562583755628021702283948870134524323809190441688220890617821823045872654498939943952906166790642878573924165317636349228247033260827742531358396847646484607949275777713860113571366388834868462908830106063052265718148261631085736207628955445745921859986302891198178660247633345747103366175492386156032372939530900827319112020821201045468563010148923090402097800984815027984886592905343761132993018588262816347242468341497642315176147661085168235932623868962467400821113530239871138792866147527633931995907549275526232933356697556357212685442487940406849117606653099681346882386262010364729091921370727092050807420408852331377863454559465069412583249713951181739272934512255690672261452676060550048894519522640749971303809880346808576410540307113419518864856704171204523243537054237765910037617301872233610006760753616627514946739521562155082116647121800481509706952121860541808108757591043066349398016543746182855999373209328766488868057305186363265343040876498213702718599759214988106610563272213083316275558502454920143944595687566583686996500913407909937376730776818073420885363181495786177049866611933720627835853540287244124132244435313547500434465206537668681696339655599877018991056567811059982580499097418722983651006122292019087054381254279220983056004493401493406057427378637199553935824296825793821895931620822405776329303276444707958252380774412674776843547119348566201750886689229626540213472748413115217542442660897553500408092094141782254767763375895052497035330681876764102916772095901636593173062542220955499195219458410316517227758217208946420790446735679512912247995867503886693312967363583884117603884544062462099216975067638595736919137641631025668033763060258260052925989453737373406114572392949487393920579950957784089619466244239937745791853932575432626421464061397956696116111619835050650951380304191902069902200400106316167167543847399371651652079880633376315147106049068704232934507685368293805166277328223492985962853228532137563484541511879214792367584704007707744171085124956685313340111422868261534182409254815092162127370650618413878862469053069497645743215825674479380073163091421433284137753751627852693079215393669596224966205601284176589233665137186355908508720663369874837258395690779697619196196896236638148040938106499058905345810309053633808597148235057970717343163203835608719816108597426522887129135490649817069344976002807675152107996550243097731143557490958349323734288354885660929586500524436995740881080161245804251076147645022070352775543612243587010781901505841402516141397947027550891884807571882714902169488947774194206102574314168034219899059368666506988056279417507633299859765443128218887565960228401925256520728779919887671600369921570286892305958380208699946039619829510458241183034591573988077765187716273608114749287603816611687580273366968386049831855943713955846166801898344013867264595140167878760034296644799083934349321917446797752041180281897900314835063063137995610946864524671122735406352059302027441190930324958237841486763807915697291165620210300994574083291551799542731314706576002825185091616826052385459507582064207027691251329599476196127141608835548077204300652014267724390596324758167939013954669247394739219539402655282404813587392578587402076934270564360288895722366669925602743581669238296503048963382574329436724397072781834218442117677535590461293030795945181959668076444073434945654882514257305402304384996861557456040815500584666304561911402918203676184312051012352662491756127929188608278596257034968575093642119010193908810443058147022485800262779940034494835117540402331358781687661691675318712289314884575727608337300020772906329218382678599792491755979809249881666123532300616396613564081554483236229079443505591794311677225661017596105474857688797344805619407079849978489526785244138656376047863662018316053097015405902288272702985646578633193674805275133039837692281446484907029141702085030143584819549623300966818987393142176694270509350468550408982244017618158828773137916145125673914260099520965912603805967745683313754606315951479384638564881570200928949686053695165928209584137424460909603373200591324005834930710931122502304656616549783380478571612144669422978151207456511104844583772948940742511866005169128977961319355740953911584779914820639927689163334004093217202227919296395125796924859352876583397195813650986800883738176182581027208463499431365172398164882073422132338778425659110618920406235434758047582890095130645724122841949944459432085549059514917545516077610611923564683106094950852680107877620526306211173423267226317992915827396431452753100918773680063602567478260665821597039997255513842575377137984380490924621555528669789634718633528383995749790681370537492390742499396198082552045788311612293657164065298961561216141840632826111883136342254403662181208813131962881143329927212627164970399775833810110762568448832192211912794074222753300390979811509024889889700057014195405491015638054344694423279178778979876649205954170160823588371159516999463101527134802859944775158001959503455233627466616910815807897804543809686296698091685156940285920822241391835175415239035109092853068424568308652977875323405296823360634632856130229450421284210018272495583859758823245945139010847294954712897072516978863454287827938386142897591282607658549833871143141111690327156077114243224530618538579420860435829725622873033884596221813486467751172638046431689450424883120668914304475358315537387900737989203242068067598442044316071591216769294951658398090104601081684086748963598881768720390945377878776075450838618311476348641932035062322965102263854899386800308978140338744250162423256201171925350298446790466955742871089175245734716436576662562364298696506990733298602216874373000992448552243392199380360053365978234711047404508682839020416244527859729133295732422001015701536173448862984134747424701379331569590310192389977288005569949024821758072319530489748545733501783685977538506822160381755265654701214279130807409018030205693917497322626419969796452685312943648036310637488386702080000626292726351271945737739420130135392430112080733162016448993607698437842793978635369860868746533673278533821888440282252503304596853261855194299434995123846249310903921262982113081425340026724980105455845109283235529662087830455762303359455665913440053584386780918988542462988900780151548513358247342751032715762782080362716512568365936638163954505334426538457355537140376622319796564127013947757360179012697779198289074517487075882311656833055428479771924377508859479481262111905484466252685318685100943365514572215454592115577713585446031573287770134346133285260170691771442316634202045081157547713866304190323753067920617194763704216462897389384785858195178082785199613545850380171037623190264433710223878772941740915932661425637480980811429323960785328461183199127478417524830563635117070143558759697040261864065001149657049117296465205044384155738234632646283222241074297402384527102597014520133920841013220636316864082434211938708820332571568608776682381566176457183810850553798534737350363971826886739168182029208540430957073114368961861145399396564399665182193900512063468212838265328859959472107427904500034407888047781883109480078705014420331962774524177979812422996304211257287763975558966499308688393071073240321859688655663946940033730909029314291249701647753495851091936915637016491900644503823165691649083423058145951903747920888007321920713374204214101677651110225943085616140527182899874359355773737193039753582372234740747731653022250674843141497517709234240600019806341931721978693551313485700688838434683845394725334095762575826390487038772898605660235423508449703899928096797278571134361687369565578749559358278273836645103532970043029280769868424887873888194755007945898862170724907966279625978676598424993454936178954768351282692973478723982541961607605527337889042885440919346683008227526463123593040929418857753011611094726869218542550582976461852009654091173425123004265322688118158302413927089555664325269276573223418565716522243690723503632421161341669202600131758076356923297756081702644860893403791862092591353958826968074018708454236907696651737627405162531665032065811784307120678231136894470753015138187699339673615718354892055938353928812881717051665829452220929007312271444008456366966849039773726377056519873174036554608698464350159897984076006922830499228606350806054049841126096138069056350819863779191054377530663669704772482116408554285832331430543945531318800055545860581480678922294505275083339988704838430571926300648460235541388788689272936038380590383386283962189368697934539562898887831497819477102982227724981357019384451946612620749988772670114397831316516958309927847984564237988598746632675579220485856050826222591574754946042651565327489514589918128898215084285888294740066369201212563493037599932652106501715084903941364488031161055865273719446385494541013446711978615009502144777502505810541626610701938814210068558252654343748522091363955647607226517473765143069015561123243733583234038900017410659718634606614541410586874822191946547129924008000611991322674276343064744176232925347170985516279459176711986521833237889632988228096231635163474129723614786034436309158616648018982852523445141771290089517268455974916573964593237696639307889897205512908607831998488653567272038843235384173061480365762634772738261638821786844401408834789152664211616254394565662599301424555372784275021872495026249983267270840200978692093387842289328123972667578734556340985737764064858640833739296694311257408003286957814809451745498034061114726467044342092426222179661892294641090366842521681378333036911574754024988033356379070476232983555029338687724542223322996237068417104813626797041383486135666553624790772011706636812749498719638678673298302486393811754941569213163238188781194141739077869952453074129157710380502653765913103540979547322414227878915769518011545897268012261784514262521118137954016169079716020437023225829906547358370102652176535640628388843064159281490613332134813978443892581833989329874297040298616008190021314531435011631054034055526406981364749224374536954067664365446107011107239705353623711054813851768833783975437530014444803051516331567195862492231863295545477645905482814188865073817124118706055110871525041695350542106974941937939909845814220945916748273831093788968218247451370465370132694239406925863562299756564691878351272790972641577647482843170041904079425493836602254850767835326026037402771779866196113212358384257947327205312710042163680973048263418265268396486256040626132239069843670439363075976203420442450810845411523801458395373298165237516089189643487170002387881822007295167649926503344449954743968715120818581219186882559786596591087385723329004892742533047713935459822170518182723969594602000269433272674888567085057546581927744662447719187413549665497375724393307099449651431362646886239574051229452375771933460525609078308687086305160494507607389965254742403816659501608467776808112097272053842846652822846737372270172606008445011080716715318755720712962895247812567408366970833916829045207035186387152874102197269051674526709533407201338888924001729219591936020553042857906519965988939528367762587986258661542613432707030233526668991952867862598368644641996789708841978670701558168712213012122149555803302153056156115020684808542918182167539617327564331990650950315544377573200683347318638308914144512061022983169550077618808859452270781368333719673704659827576285610282035157290282201085895078589189981130451748723326904971365991474038158559522276207475739022546500104537572467738737228052001899961819653645279978674373219369813155677900649554133181696692684611790608695424577310644595754311771542523230516360860026252542862553460018395659132268318183995926172149772099018142012781568810684247276124453639757478186886836447077641349021996284062848250809394757901844603590785380546629945103794084543827135769023027194645735305687598545933149279326589108968471973598883784212832892416605671626076748547394863829389282880088989646430956292362276356626195643793208199910822848987697633058138708052139153459630456944300664375007171328698147615651908845022346712865091633939700405961009247551860906228203655953411036452637060410142947527569369602378506806896350576258616940283654726754185182597602353229575583415029779559643737231230803116072665880671660434223113608240699441094253218246134900797467354833493460471123215229430444809420155786636506463453775559938219232452372617373405250475863994279705087303389810237763687219154692143890619590739038970221036047202672049781242001342730486339350383148776174764147458220390514520715747307397197333182438724302665078036165717748005094593447160388932837692116748912076818089932937124231625905950729778040987729432139615388858731065718582147454909467403123357962649311986165430933525381117919256149943184244830641265381740639681537152727091184426801003038967942834152268432669584427074432127861491641343474354738733917621435718127006295172102942122378437720044537329439509451999393703334126149681042520750526117667707882933009661880619329637559622192033713519314979563741518616058321871848790126051189902483426114796867584214651548309753813008800039525360015710566826641131184936549489541349733226702327798911031407082302274146116197212408771800631165933283128632148868377473858339672170477542057296020431712406688662235434875673301487220472385680403510199595945144224214901487724313644338927931887015773555182796278504201505073417728147191170604487820049749984692177894338207066583979387888847726939574463882675059048688192595685888538563815134698969317388769808619434330671946377630020693065012508517977042428032173342030661717686013482918480584621485847011080480690845040668835886095287980996319705599067785442467238402272982102362941062025075551350328847398128739836876114526080608238796928229176468184000884734622716890601948610030914904189788317348798152188620647710524998937758986360349156625335598927974783123430589598609617481413190996536868691426287499666516281105603839106969258403535462641324810065786743526638588329617753664724719498571963598856703790627876762593961100588451015443749036554843301695863451952324872608497115938773599662990152840505134354011697065184739603735724028750817926648744062487141129701033901584003470442148256741421714097484461147625740884624840780773237411945149582079681179879043068929392955690512856327125062010260927599482852588923510315748549499163082374420429242066602016512911876849071397060546259943943771021341430409749034579766959949153617400319081296501276624074198541574033085151313656151916999991104738447107254298312908089380555373954228724599428341518668407705450100655328671800294498806780883337591887171412095941343279163618369471925923724720618724929540204484668140470497111986585286912021190961471666004739488241104637206266877971138013955397127403790030698848778216324715093784046067918248601437156828266746975823045923817610522405343838720834046082851334147484599366135567257135340716946628435302243831262966365272368642603665487021037972723715678964160932121946002341382001147424528183898272214863626469007641050470514718993848582525914104996676503613051903283088197281710958554502561571270990579837055580793966500465052552963925906701464304067131413341848848149010361591784780288068200124333856098993552591155127708764380013790873198111756750963670256909445776311484681694771159807401206660816978481667922458764157617730783230599454055008780901367575389534350707514952682208462187208841061536824678323062312730220768375380305423741772048467421741563708352488340006968283036134923590494762267283310736269523775990882296760755405658701610202005036641645907848468906969995114206000240382650512163926830284331051131394720224727146342833483447539888781153036162587981749246168719984372836599539923830108062318720324254441542544184983122491661374427249846406962861079473876353543840875601885582388125566724194247582173859494842143021172310855689549107922167384005064301693623451733356982058090415944592220587751111389365259773532390940294429602878581477264846432043733574227410517230784648836078044870537978639906730011888194027232599737841480296026915331592286690902672347162624118699482752417064816371806487787465421577159768371098544620553076059658777435103970869062798480551488351477925443899216166743274803168711740671129706288571294187322261821772527444703407483288165497017589746426213636977635382354906669241484250254206031720417451614385975565639152476405940080749492633580407181761968968103699785250483337233601734554829827169779580105968272296951105051804747404696762237498116015363776422109801534867630596933376186007853203170815866340670356534271888794438832635857289888526627162809937152486148754642934276364474937978026013945455866687808099407695548692570111988599751598324066988101989324944543565858902901365777311842915969424355934955339127800418143055575649157366922628777177676174559809706476849011405321103800350212950184653914089444964763462231682531945533930222054073339536397720876126738419060552499212298445229671884945147171360393467895422302997726536914374880954846732846399138931196366518483124038106233370881529924484557656575648543117060037411119293084376560058628298200042868483366559484459039443096009089677472462117586129326814799512980288593029771435536374821406153305759613601130214634515485823428188611264524185753910165099283457292707659065827402836585513694685667553629353151165694934332447168322363017231743401270760833665011448497794639711291152783658199180093549693842007233146507936666446509388503556545023063562789770929819882982520397080402850463112915271340389213197146219567540506808921924185690493733441973990403905709646763209281339870067165932981668966834508315585297855275906144422827612893606501103711472752630397850959575560016229045986949584574841828334300826097056989578505586488956802409168108429444582297798388361110538613603219400124558987390086304529448470800563530960882082959718600713176236681177719998926085894297578308743464492810501256627668742986051745035187628561216293940597581918467258023924102103728833475436418216080126422831144262678795524854339256001127761839083088527518465408149904491546165572334714840186955332071856294167812299552518472085464758910578895369550400028002602406104248874435517253353876276371349404734951414759838606702216057181753552935016423673904072937641122204010584514733234466127159408745355649219858975684320715028608041148998834771031431436033529979272786278285848459877118100856260239780232022758165557445827963290585934293599884128674255673660390148297886294763422601134715645997659772945817224479266568186977340745914468454758505302339979651101066215862562326022826597726826687084325955646272456357076784722561645687779828386207097690029221900160024277459351164898900796942947214279034684795636773826604457524350559081654493549376754627490315127309662089154341843802150994489235097222614202072361289995427063277759604027127467806473575113147324017071196302876404130205191949198834052797103537494140112668620163255776362836967707630511596849498473959704627528711124786434987124098259108771110125087377214940534392150774082647629757462149790628357717950359604936207061186141601504665739030644879587645968202705524196225549006297085773322716034125296523246705597467629825528410177403202734557507908712610552557266697225823383624208514555648660686892096508027118152732832687889516971284997422005649668477132643707859952511964934758749207085679265662747372781044376250173043620711187300388877989989261787782465549875497974338046211743048613867547975615049476589508996401932980500088157920855066347561900337964251027685802484500707988807365951617399911149512472955641156709227286508171006897341128298816244389586154324728605142250775936150699451098728513319698964654536090581100114160713403026493059322191729641851974143306175347389301139364330958101076918490809359396798356835989564665656351055952744962630966051801602347554515325788263998465647936507132908600102983824937050395804093719059778263154147534007343652495450703156711890795145557591655290157012778211968293806418906967539708828554349088992684346166916527246425812756464555408215504331214701596671222555080570985976218229129281870429972830695817630783433041532115559766809654026868914545366412626955223020120119847776903461649492169938311386416932162048905379609276825668126314678067045017961481256677465684424966133089381224466639261111267502394674400132263093540280456452158121573642535709730086365378305244092577671236560254804300289288373169346362303375196434880364696726315924658292037351702266549420278814085756818357174564967433479633586699815146952374423878667819445508376944801481151787605111842277840643098488071742058903314146863215386333370632436618432292250330223001216121497855993463538120273966806250637187296228444584976154234360408292165081169338825901130106751157393442196964547719159580685890852781051894204897657727599399554378497057822551761739545928174647018394791664891070790238832623462303507277715302114234713720010958964655537115694067217950523246467161266025744490037028568167025746070256840805446115312808561704031411042745932322394383911639367676975757970762492510060392171988961635563447383650117210060767331985790221352107121989586967252825046834541439514840616388980460024790699884385706299490414206304937109377137776530955571476225531090369159959464539157635570014926050589185593343653059321326150182703628390293078694243108616572555843147219458511589062314836993076022808985453797050553306391652858194011517712841170589546426424289447128850929027089147026331780091049724233118980927665902311873402785888206328362879107738582644940797008571328193196389428284846524461340418819795660328853833701419679643765686045770639494339141365490886261357481126876631027951297555153502974004198462996655563664088483529959877800186289476351502630629592446286718106274743548523909912143597922091308472844444229765875166530378673832618421888798590683911857028440381552713492393469746686858055513239488003128313331443764912604901723105247852253820855193042782960626123060761982896059611917269416793368273926933628351128464627635805602353425950222775988120972136761256196661852914699047854384979337447041926614867614950137505340048265264159242449381847515752016416256690718114435246499790871512950764690660636400958569428078516443128979963908547769863243081632421204546811942169452157402405155813355000034954765586321798431041566690252088682987441400833847022543436420481131656335604432465208349644546959403840461219771624722534600633042887354386343211266874673242644312514216390767085665458359462477422871165771693495907487108631397871616593078314622665567052841221410309514023189558264306667493530264543019989021031376141706816375120798121368394170116822934730790312476724251269156359315885619399157816046604796666896117933516906093195003562832181755407202126320850445349831124121728435432820809973982566103919175723635861328273413151620305373490557776944059274692490828302571464277546424723624046932460727067824081004483022589181936497436906167796243209565318544564634055157444186076761630187203001804901433841731175423470014840763397392795829950912297494363866027289759481198270133789573912499259634974533077048194519216177837254508424348331554580039146673949497955455987447107677130487594601021294304350880905547784051824441643351434216496629387262857522703753025602345379351052274978324430209441179356417802344672914983787498520840889875196099604602303885998557779823485841556928663274075255438466221571295072396687070072366093446401547017870793428241298974512821907660471842849766148266288071068042595849067141383711000533473494443720674448411764123347059497684522688605013791235718051406357909368181686766469809646050287598039671453529451801416164034845650848046490106957894443080155434061878699490817924294133019947134368719866761628449460304316265730312037713685671655355929123174987203368913180664016083338258505066420696369635693038904615878227064500608398373578369958801228076720747033872241311436549505497271093154867406069457995047852374529673698386093769390225267109102097127433475700116531607379419937882423305383568088591494068965934593875886716571287556485309291002892635135688357539517457368051148097623567684415539420034834387730391377768101953121477454934258579704475142987854980136578021622719211021415585477529578845632785984844240455910882052186695579304736781932501387039814843211182374770266879464974332367832289919492955602656032960914119354625233968482125883689424579937045034681139811603356064544827439533831982932658019609793319243276856611568238603087286240845000377551745402328866638397204518575600861922359903196360299057131176481104773092732156842342191777213528291325559055445277509878058175084797455923577938069693516419759617983246859268556705424095617941851691776939345921831352421506985676187509428476181672764347237945657970668932962075873934506707199215767748588024122837738703292710362572086913246149646990652870778872047147412209588910928675623685144270939590415438957620483339077628918812428220429017306751333736914852383544227645123942062788921228819598820405494088385399370889274596282127998297669445351188666404899110953566704262360945512512009434961346274589965851298788689034334177355895246064177852448632378932673964309915312504824934766558445766208094878868124108906986782259523248302332843778335477136381524585093985410010233507681394780698259382630896057718841998903123828515532320091031959601311206130449264714342080140660413801002127919896213650005720370480444429023616853096368055881204011790496539988231472657636880929738753932066775073335327682583624044887671720039119295167961031438214830331800309857198359023210069650216572891187850739509270149924403686333578087935968487721211522382856756247045672137013648949450157878023883366914362030317900631040256883940845124041156529844231436025979276180134767657704375941543573182522795646733614076233143080404743547657139089656727911777437911403106755843438446898538970646142870734503732808951656837299496512047084192598625518098924659471799712937426352670954979361364855468071485194598893342203314868519094191574948888202894484037575765755288198248837933378558028781339023883722484883305726969523473125325237562684497474975359760209801023504335326836448629409822178295276168171696021079618151344493709941879149602809167199518381490341067834789862365986071477593236121432704716392868403459126017128073236248934263037645006991275195185867110846336821145262941684279261671997187474460572280314858762109113649354991272740776840577633200500537077699298857299453032962916043603877524671339512915782928955485384252902145250156961763612793233142855829663229912956574872121456438891454644682792341852214672263060623307613410433992013463786556750808493234340545649162823684425078168226794627056508463094625436375790776633609659543602422039996134519173467025515684333018922836769495702424007697290465973129248352033422006187936468559498722370235235490953397454696968344080847057284327567749768270731708869433972420006930835661553153333110747789581192988978401612579327275377806058608642540606718515295484029397859230255789418320900159379296170666429424998218098378790296697719878182670423170715095039683615318756808155765166191831545501655445748518978532497640893982696574804708906422184693567714552857414010047124528859666685499217129419432238213648743896209032401578337093222602041619604296059952827723544857934004128199410735905330121150090333919448424355484401540039939788507969569728203200018669161662018883141354611025908670042132374000548001098485915521684124306117903509244064991710535317093322788762710155239600424400587292457294894063373364594688397132925549961972532238172711892923091976951692889096040290228368474337138951963919944482373782933071869291296864298634810453485081561648068663924000409194140958003795436205083137387271948558900947494816219179920920523732190144538529126365424599370200885205522281707419568582712402431606883628110240692480896129527550605252865316989659869566762534067885975876263526842798348462962751989305624510785366098767869527916623949616270533325638111461081611430560253934804849190757390201725801481191490182147137573635520267592153941663377444110566394328325498191558779266629321468248403445439030033536625344254379131433524937516916940673306366640330371392898403434137655724651785683309723722866415180497755692980474771183366239425988489166080607090997396839039427116665791545117522914432106092166227921916713024039856411760424766121037569239182476536207261703650581067811617027072412022768121809428298066224150305460854819591744123863406378770817636516504201122488924504865305734367237535924453751132614409209073674026191297775332084010075338130905379123188853183574750914270404934373002466747352401264856405613239020777224766038463686444837109271659059468764759132085830973545376641664593512380047822985448147563806164399428123013872608805893069687380951872271409782956207407684767674888730140611962287720705629651219089555485817931558181724463535226773138551781494233416652867159271831169263240132948789612622082257281918881350444191008803789255771938708491324262306915408165678788534112128184990813662594499448128782112647223409427890488605332185515166809171548259021742832103048630210996178327542314582775640429370047924868711383890928257285495919922976699403485777996975979372764648637780677177862310297950666386852945166613004413388843565124733322505106394724300468031979643238190674012791460250766391806232008411167591644318516229470837446871899702290891432399933355485026393869509692313635283674842424914486092264005712545605248013143554105223640107974814767929675234514380465173571451296890652797672228202932055809291367671755191753062867398763092656692030857837900348736195719138443894935294704677050672080860153819417145633514512966263665724823219789977094226307208610734628850878138071249044073786102687248163934242011456779340139633194962296674982935118562792088406348361298906841779705023603530653825797534184430938204453425729591228804619614745232567682458679054820307363921627330289965284916750148212325801231638717053689981757184401342405095788592770913121566696655431718670501546965763341736602098606926241051846773307491507762531146741192410589794555089171770449103790802330234964768252229541566564793407746097089297361773133935086767881150566448150210585070314660153895120896933534180333848233249738707064344090654043381720004807882241146739703729734151192623516698051230574835502249777382352005758997664580167896543431533760814883542217318615354180685334883367358522878648982266991893848042954318099829835855627639474078693775752854047543338836257230841277059990485066950650007733580702101785115402973154189572162709333673186681328309387219269164681908288808302720071559084899985345628070734747993334275171357884007077375653510214189510856810868845187498514933152436599632617713771956351538061967282094657411935066774168647838550846945191184214555675683624162938654302358962749455114564182472713237093009718096444387287194743835817791474924644602919957817666806090155716296354873701600615826133571882946673176499278665533041770620202489664285297058546099319999682867762583588521506124462988075814997021963071855997916013269288114771168945903782651540759713128447633509200928497104716383472747072940792707109056494676652235072998553682840512150789093133323413918198726369246063938823740624250741454311602148703214339195178645058878719188719381091154854064674435272825061210561843482970268282648371794384183601464594771148032233945509926585738305034750650587353638800748794612416964679990731112208354069544981099716341242127357385495138836764217844511861513814926489148013989545995722812878747509028447689925616650736122177026520046354884909262382808904491674382655727096689398480782611712895984614810015673115933082490631140289220985804246263866529381520759899689569484179283966799792343459312580066606179173959441655679426203299505199609197394903455881911422443375280750622625069867652417336052912595470741632299390888244756659098366035528638531051025684563787080236618061116030297335501193485947914386972200213335118007000963385794047062296407619022014962101552346020248785345993377100195988986673686405915887555444843985975653327013593631306690542994163715666085732632060253478157764351886077059256661827341610352307502086410438842701564843035038340717560715437064697200909426418734250668458872133033103437082591325098302827632227794260720147916675378428487282412609535670350065261781020498053383798625594644101719828426463872979588927754790472149264853453846398989408212246880769158513100716598889465209496430673522033694979044919001328194505653315211573237374196892374896063917116861006791671696351305341886075708082673915421639016260058599457081492047330024201245846886741107485151378102594862715306485526379628893716261285374164679020111503672773323128266949250290944585788742909448405292793125458305113976495439930885501191364278895176080042356817662855366615249123811653168081095922617379588738359674287975620654790192922953568763418569553204648987397598152138096034237456153497847784816749172277817338769796545120305496968750472413666724038316121158711980343495329251029275316200232990530539305979242772644839832888904818759906860547158080203885172127630403360041522732724666856014092028664907343636364648709752740553861392167502245937946947825888683855777152666051917582671006444456677450625930170378956551427834406700829858727370245057342961928237792534163474956777274679542343797018211152297679917933023464004500339501559471730878973922483195346886935912572278660653056740034892193287939555712378956525834854763951538539141297377974535194237240683798987672306254340749787031636110938839589144039196671777615268673924416855836503826085397002332503203357634349194768167572151342063310619953317481864742394632088442822638403519584296401535152722674262439268991901107951973424856756962956834785584235032636881644075191033943511035237966897412504483479616302491550235970142014807908339365968225034823020511721491115638584691505396291446570900660817976121126714150017544468172789011983115892499971115189771071778786472344002035359391042544573132253957282087206204117946722322625069035454232171443259490408991615290722008578555219663256474602802666156913263147797557498239495629898714033765950305691331648128643828662132351162952046740394215503148674668869101791212121903730375579970066542117848108803135835297638675026840509535519851892122407726198697688845856480436083834720756990266070268470544794338158033402354906924810631247340417501104349212663320409436643903382707577246252328572893050312077041821740189817207858726348766074662106222983338821263460101344242248322486738970414961368248007640593545853260781861486078411694421048821454397161426464755847736613054941865729840286332024091151617139481354485689254557464942720524064822431755919559579208564042096126971033617937128229352335483350447561952574782895765711492388699747244317534409999480938355649297715435220860978223297195786215990998771066131316290827374241290462466987924045571738810227505951521251334393920864606803013967517112475031873098603376849229713464250255889567105142428219345410142991679924437638240147453895113834094710632631179660980845413760676664892774449773892007914044605540436979894994192199786565170271819740347442924456313879123748710141897297693734047130426341694717627267707448647220963420730084900326762282188746998954009572898400716420891048162340175898514139153713524123899950061877525011256516810602192861993886798767461619061267368747693275711500008135440852064499886044559253012320742669011870609808725272909099705361996460292072281416274374903995273764317720072159605199045290724040927417374876571026867626910234362180369297349635736987329102184397366742637498969290943319435939956242634743937476597760312655218789079397103471995680004754370728825823088777812385934576222315149411051342477335003060843747052911752540560281446706414979411148583966280944351291355964188568132761441940572910719054967056627851627062655832735695551611961050843713863907901687181732592242597351119750991218595727623525744703194201947833537590456885746993029607500956084412996576535707691360010699816442348409266515061181674017353907743817914209036958875610718464202629222079792058717354446050524465995397098197039792529252984835491003470391338345797646226193631870600178343837187626945190148866944204515151330814919706204755513278326762894597367462591897273216091417489511515608624820715865487070293894614309923117179297290677041282186247326803099191149251238258592301994792326890037339603186273456498965684706300209359289427169763015075122313266505358736647119479047677890120616820257250735910840242331180235897007736724134338428730669618502815245404811544881102115939193230947748732875955550372231095921181798524855667144499725904265323006672838189860706742204358058591413473024927508486957044012348684195632787550820221510998499218269476929119476110360927610359708922302278305852294565513732231135695954865880853310622196444396957322657163051064748416492203473298658843226094331667259631745478844326681097761246154324286894498112361595205920350473064868015177171125388919025261497788111587084611347392539522999618875098174195894995553066628083717226849894950236648102695547788855580489324111050820656469624522833914583853454179727818683616433285138252599405934195481613101075912493083387904763034400071767189866918343863328733522910364466173281704855538456603378115222998051819341358944511701994250468668898151367488729807519243415324940102658862523534792280598749834055104972645658103372973767944772118168462592666091542178173707963606011353573185648051792496908063917712857751070604056502675544643597137518334986891921298896784878740497914601029403310651066218584630415077338923354611395429778088646908396832618935679090678548183885826927780555920167764703532919222116831042348431604626345840113834515153014633718755900118389391595096212890326578382115143311271487370074315242470158574015765038243158196059160414439144352234878778849240697311150671661114033277698369449667664913306522751472119745859478752557760455302289276553266036431600037827252882364729032564210006997821555886099790871987573901553527737498740406902377699223948878729363924380184800974871693821890567225682739236519333553077602985349825237723662262249137829503788598909484088315343784511988896097850775249717266673036072033019756526367472197406502406984467466147421779549587839822741773346370587632161147511032892999900142869527883871168283729521780794416952118366786022616049214399158351226765164322627694994165543652625739965679993410763754092887841026661379133928783223069943921655375332684147207972828442003352682965920229233974701237295132554829318279716023318948027118995431970127421626403975019715009319727275860090301942325970918780758764938873416397648583775991972827976127837760949763012380599596850424374880161849043649544272665702504163196735829497687213933127310940690488802273044287887383509516049775167712672301137044535847457108054605544240565575627827827940197620053084176281747134308720348493611025196848079784730210731996023368787332949231302487741930895573266723363687550879798397896195767568385584153319833011873381998394511668736439510583183422592903167415456621535553840731713047461958447591822415849861778963212862749185815988248855332587466536062744986440639614073390093478360399052526642670611295910016689473995242945759813393745185727933523226583333469666995716634499232092453115790955822434014821966679352533340669664190824581542355762669481482229934122570851744019530823844937772817909377464018534443988292101472975279516223662244623696206687373261454186386612742837268349334420290173117026525910985065837487400902754109023968288413932593814049575759140554456926434823954755930275889041618472591756054770802391794000971193306855694103784832639124577457674180900046820162411092947042932872299252876941093579801650822108839272308675868165591477586078495802221442129608969499405590631335507398851665469825406646729215209100132724239870580592002983331644232101344443058517249204699626063764186529234109614040979150871261356273472117903946301760097570274606391239590207518521059343522896178173467396465811766550491289638543866170146895721032553378629811433745173648200851846534858305138326201291518773382928115049055514875788812644564924158062425071176017117773495440644193241749351128049171472934809014435693066327077603392594181424808749494587875563818650065830021372946997140901689532591236375806270043124348934622687666972258218265100689534291116394386038416470338933634707680108711912546087272610446502323132028701508138730100534978445727584737178805330299107406902471648815984921713629425275952300424381789366678908590080362853396218723903100126488202940098847288052308355622735425562279583794690540478097327271285408206146637776402108919652205730633010904957463707099023530137844798195325969109593629166908025619799861885449803317172222727422535992880225627251257763535041470569937407892081018181286647474970459089786286777931095649656821924389723113597971767874580273316089798569358444986496953085356276787768491936691553662825222281822538174699895435501634277884565394913220224692437827630320758221586027399650427609011885717392031806619828479005339206913935902280087555473916155890907614001554735840194610659164636934766856200246826518655228801830313321602590206544418044269154856919523390897157555051638481412546371155056988787858616878875177655132447115446607812230952522986827603216627462644385148901174198327503221810947795786227299907935818084580310582873838453051157330087600518567419408755990160033907693176277892651708477827736538865360988486771505933941240914270964014956225710377461510647873275710313261553503010792672359250842575570499275721550038410327823675820221159489802686463952641919210252743258725828319169229357210308158269748269259750642040483440153432229761772892569825741235899993797453458664053829062451291630933345561355414391434736559714391066409164331658372287600650573471211781607066994438173957644417123917638374896981581820473791556297371576577235978580259806876881525001038971564141403227043081976154605132039725797163618507485433036983157714264135611252456325567144963680903567896521374799698693691241183676677333055425499367813057028753033124722300714253367059937086410842134873203537001363573936523304448802646299608263955736116965122003110343133346996680533713070363538900419992982376176498954041944739008964331548253910346441439223467236190043023338320003239614417018697050078513430822955624440173218989999838741593352737992159421725866343312465174872394403529523436758820486184227907589437595102594562596657874478676884680366487828237222022241313540517324416814821381558980923717091347501254139155965641343503762838171385612317923942271822938627711687198540313354099869815894629737025336768020960758283255861324971988111261115391992948920521858488298464747722407702404504920889887855808074076326282460890856575706908091115039816233255665433804776023490396002101580270028553931458333204471604189843945483801329420126232741326532614210056872861210958516348147361430150903324776577168003845610667200231828377102619451358856523028282579653731647446279411043710115864370971695863966509269810461294623565162277601525898024663485643182957648263027050848991410720553965518349997566817714975861822545337267819542165756288269832418901313734724646431294850429697005974865943737254913833747858164947339784762133148375870326104880012008995814710687153734140820756703077891919308444826872437555884277199304287812265939649085226053521268873628619804860921737547584776497006737462786370318776375698450746903767532338826101540972029558409817893426367950771628686219255192690392987531112776376227603788816292880544757278579050277155878921149793246862576205640994161055492987888060825791944747240017774765627195086370256511586451433052797038450952296691829591629161039735330136646435426148871718175688738523000293955731759533806562064892422432027379582907163744221715031503899532470500815809241946196691644574449916103698627711096141637947780726018833694127164756740879770528463701942125793073246396282809015313932797903256437564020056879620050967494097150468138362179517802363688521858655794753251720800291238196387723050649364578243520050245794308298557089489885791661606825946710821044543138702745460585556390024467670030955550805896826945516110935060029418512020966767240023391126434221152177553690138954752272978305201380300139780620385358483141022112398212165026591018404543354665810315423170814096192596042108707493318837936691965426960534293173156187709631303196101836015863151166643398658984875585719012126936048486729570902402115524228355423033199054622179144685561480220792897218411126977148976037505317283717623993264048497782218855838845825610719681390164995267704484523349310665722431944777470372998575257053316637403785746170034454118272682104035113359082624890977802579751246943731861218347992037163456944842237377935020329732014348309099675455795297189603939039354746374736027661330819078355209385302670550254247477502979726213077908238772910271370687705794514685145782212023105867030400981177864309429235239722754592280640332126425124502641599041701762258472946158139574372941359013734957708302680930582390441393850017291475851052372208515318762196498225165983824389037404925137141299200345793548705651948665144409961272570287137264283909221400900449293924418864299365980969638526676476217355659023661386826197929743487466126578046866282828880704411261666763650015847702867042724002776594395286763766942586525873540341901700377854999839586024211127833492424441718141972621822036466012284935161812427973049528433789288730347254635297793626590947924188861847275253786772781591844183168279119465596907470167298939471435744655116798044051501484784362916285745407811828821873714305079503865567085606228565335820889255871035904552395754273099192477928181698738204473860239292390467866224908320593969767972608948007143485255801060014463167361348622798663903606146943296299717140356279231215659108916353158869497050250189697994585160199455629164987668413992774092743247697587369861913664027341006465209108031931515476008625877590221566825597350112109316250769796486754355710434704778286246681836028462820097253547603466837403147783492547458559394902870143511610102244300005965324971845233603952220296401345408781246159788418092793777337947013663279746752890298507663997571994019156732230638846395973033470087529196430783421842006991379669358222824383876951527859579240983457242066210528759090803616850588071456968728720547181461178332973810555252472016220529568099100870159053668783461664546246782441729672318919828899496663909783295205998707259639730986419524117863701814220992171725192436313946046735973113359608246738169106538296892204452336082133323601418297419958168117189154633821113068250934512300224599704446587456815897089380657847714638989033745601225526760335322725680284399075595245452050702961969383446538947789479751046522405613663003154997728015793758633533071140226372494459119908647406125905250798553811797179540894292207416862121108272447689191476416414716495405225848879817016289212011910794193348968055693610050519186240696276034890150189957853783790542454871596130742926821298654690254911390508664409356459302210828961783695674510868831367791511501117620405717545077056088236571437805213134283214010674046229973540887466374938001667204678854464925909903957357774710859788450058615788125771519203804241223257729889176805917088258063303964521822442308827499376432118950891899036522010562467592017624054462196210146245055540673142705792449920666551473104942087626948436362236803563261502392752971845193645473199484774246656978785456266313485698552567495552104340404824582341467338948512173360273889233666225808244992429075656547421724732937212494072429770746156115437589201511434024702959625778621217407885343027609971718555692950253965130814550460483046755573866746463760478071763547919753927404973021040737693465219003728581945522266544071130764803175385080460760197934859601315034200545429274949154582410303806756881925047612671853630140747410092702429490438785292350348996675038220743381802052442681287186156439587428540025709964403386903922436971693693795450766537479039979237167591212928150229402183652051638139212332568363042690609805437103870082998359068608120868315930973086226247902624538862365813788662660874230743283588120802084563882509428301024907989139291317195108038176627570545109629523537870903627171694236904778244146451657863602280993597631244479390025161911553082586481825744037452504593304110083706481196156925963699832220906250046427639506041292467515449503666564672721346126736213224758775466722200905081340000858731409977224671223251944874408176563220494445209426833760951772566179483732412883305386805621240757705233036133922320447346692277423345162255385754416245158753661613432755332572331171707476044460988029039267366816233893992742553509979601497935054023764090590069702439023169869237777702685428492677850851668027204977604118980752770766859740475033145320740059528505454219956463578291288827347211247059414541157248676877947115372655392737132737865802436182862008025507851040414965060253920570140729026427741010608182302322749464347067710788865847413396103186060647503611397848007163322643705213210785643924351973360828850598038224668188570715459292904298131937825098117730177755855940712040746745746597476992981670201082727986679412828771167536489423855507922171669396922177704024918891191293156029534113709484909704532622778466895032951491890601342751990478843117504013483781360167246162143668818364916709444258250555792496407426570447265726230070716150828141241718547112017706486519402557920999275352619626824364311710370142930354573980288532199491420914710281446240578439737532888452314201261609290389083012925081783284932814688235597703034086364712910243598536556922508525207734313029878732776730371870285684256664841349435615156922932680180945921464341524686058100218855781813851900790334522579973235727564921177585914335170270634330329221619399763784232097600174757223790007552721920703234871305227080411487841113039858310035916845230292939621434238501394772988874818742733737130129975179470749954723848804931467219957958405312881469566046479041288882350072771965204983101957004004868160255479307106829613309243035873867157175092568023836612528481880909823585269848299272325146451657973796606982785068464969985240385310533345372891911287422788426843130650563176840369386735946200858634528006884535848645312392751552328693243871037501339703901708354409730437814731823465579208189590660576772894765249484883603483066695490374148298946213845567945228563505835486282373629912207336449781365926510844505943297342554413037123697394890685517766392248270732727702285742642926420145487335902103601196154765824755591866368123888358691764151933017736952317699262121690540521161565656702735857651658808492462058223078494284127334642660243883985381968358407300935125544374871309898458133114919877106028373299657928391130851719605521636892022625670441115494225928803834636707646373791578699484481830499996540347795828789369792661386905309612799949739440322581934331353290301439253012777133352219247270089322636002786843792570213351444990513684864940315052414591161466382329706603972125384215072321367427249408866024112053498750903208038327122926699743416953924512504582185278382408079944942651155160870781253340975791613638274508925909781384554830865619983850827891602494675437176245563349790477527705286849633779149628843682574006796170894565861054324499836850116661901504377541274639707701109705325479125306298958408152905522441201582544978632881930733113485359563697526904236820003891249278069011242107550915181283155314059356659143955940232345643558436480519169008556271941998570613767564696507473866506783659166627352342245286946714830389102325508031422474596895919032339439579316925664663975209164075926214632997307783735873062629386997882654895908161193984257589428042118973510959782769358866941757902283601981343709779084863524357451167311341622869850905653738249036348588922124041919397618046865267357012438966078011450276322403704248511514617762963158328013736391658467525705294092029735295311432087628434714085910649466105586672992960284114990205185260425653763532025251115556578318230224580759404481076168291516128334025325048516985656609482857358597887295328601718648374276470620442696923421873901885707884638968330389636503524175825344597474798797063938169631998926160214780349704461450134431301349273586226104149820840332371428972783138729384900893456551502025903600453552790486461837642532692232764103302067819364284318334581648358121727773877844942156319403614559193544202398825749886785322191634314138597877526864554781202427549527738954558483805809088573676636990393630850000414629627303047753931416136437447847548775993634090194338113999042343717395360398865280015051236506608153903061587889915578847795111124277370039287600523767781471911800892338163911034788102039185330574970912077835431968949736665276000003275658470268150991946942102067850569902527147327299924921640231939015195766156596426695974509461611436659391198223613689776123864755529526228843574911012821309925059520091776868616305992553997867240613423642008944012243047169552924727699129582808275762228438808224919537726208755532517519216555643959317708796691140955469752108846802840942581929937015875374399693494455396672534385571057901012641442071952005005340079577874564138848534837358260213370380407604515961632148745416945282350198719855119941654234991488424659570599237663330000528733034078814960231089620553411014509583078156533737482210127179476336632259673446494248591223624114748758536699562897689428058748286647682302985830048748832789709881494160593086878715021905698455252541759991563840730205943235478214228256911078519791550300026782736457146546271615384491308651652442694726409908844428110605080553296219937243902293339730531637199354929986341598684131536317289291087588149470360459582779328953983130734136766796801464912363764358220164530054523204575061552529708323747047555799207753104078669591014535274417183914549663529100522894280841705796571297687700980086615392914735156718037048250512174481754374161165930916107043241570630517663264117725150875047498688605632472743536494269631379614015837679877243437356889984264345412726712457945378385002745461745735660774511752955157551267383898313265578779336959302432845936702952023054351084642862500925708014819009808252352123301749414260950919924836234447129796513296369354955423270672451510855088999575519457152199402139682476285918605305828028071803904954607815472450113117427154197139509638109995395301289804557539782979481661696040320115234623561562788241185715140012228279508791161001544874946889250955306699823084652441504992137236306269581633774035229582910113177792843856815476842341760631103555555431107895774374438156187762726455449018013856359868282189074934016555055457546251922820192317644605053231602727521361939325498135070974490796982561290569747187165506560887015045665449460221122543777552550485445412707694129951551910239648969772911259540876033227501971195955601716064828973179923173427294676899265086321579155410435136004215684945978324764503804570528560280454791309394593699283797873964551316560699050323315219937211743151996168561115738804575093339933471369785516535184275163054777439405896420774347988944341983780583256988418440745345219338319175316132041950546554339121968194811472821182166903387536172551213993634110282813875460512420887207971133529919727775417857280730651623516272802625696619012861402045295260588968130673543412452563419515043772514465892399520873695048195369030894328153015689098056662790154314367813150855706650061341556267623391226624965603601021300996367103485274909055748674700040379971555086860864541602620851619215798709661971110079365219830536186854104026340854788209744792347980401032712658785559203565467080007344696005964230255759796077307087438838370844579408232922508555433395017498509949356418157641459858041554171044604908127117808705768254029707676202610750134300111830000483585892896242760381271447962587729059953324031393904199592387110143269317146554051162146926974819385420497700617988181582237138012687479894254186154698894637755560082799524327688111431582321337639904562375591425083431398888661382080468480860765740833014760204863403960302094497655500534709169790090765452615164734783245576768407211073980312926682352730177502577214162154743893976556518181867838599975340483221208117272294052374535416479844119398989972647746626093931678598620286622655076712295513777771028160195055216435877449234289095984022750251761434025870736962503730594888496915723668307147772481056717962220575527577171680799670599546050769682982967445280989235109784572149062945562760520043283238748519740593953764872618711557556132343265746193514813622675558191089571924982274009406254063140160254993875025862282995113232199841153479669883373530132380621579830276529551182930973764383119406226177071422260038981955071389365624185437264848394705670811415791221524208534594743289148948434876916159783332809751455306078762215312092112035479266724359951443738228890015354981588528402796751549369092547982445974334017362132702774048983138779123719643937528169118657524448488453744031548425339380822760601475439059903307628239901239197342000095474110628691141537371062721182037574326559732945947317940482345456642161144576546630580896546239278377939147757184715537433734695554513720614083900217642026328314744497598270549738673777245361167130418682825677511335141684786394406436413584133914666212174333899634250593558111220342825657536035251315438138005473943651291289111752253315352451491157364480889244996938572447008957247984956619152686990267842575013832107972188514958640644182430209409765347443873437302630835686811571556485270968215595350064748674955729361206107961036754649109670044991401104651045297587664280289821488398276808755403237592927216978562311931997873863844647712026562365158573291091559813835940637387215834462634569883854236983937516285071851020937714101362992042832043498348167542842161580223123005022082660027132961336000365724978444956444091191325158501585617220615737392468495305511261209459707021134456144411795191201220790115789432894729598652302877783454907640359170946110604858493780359378373761671463989945396935288424721458475471548067344809497357284997042224639519391373418630277340667679422641148550401967361229220523403502517144473255979128526876869943590522528447684878732124699334986548743279938410117193175430814453981168044118569203890704798002730247484976943217717911746754252067237587093712881034895674497872381097444207500091027159992854374102976964754451760403271500639912225145302630144487623664755602584967934751206308267728473375381845087784841768119230490231836393001774372286353421345747703972275414721119559141379137182593200280900735565597464004016417072729205798837847113940084431258407284173074743082877790822330588698931923930437517974362620538783905313912235321714834823959979371764056732360500246923420685324611101935245327466887189852074633547567628952442325358937428054572459238267111491349500223753244092421308059395141085801290773209643706737700361483432858086930311521723014642560671616421015068475242066136577125436969279809554995829994490354243884099868234799842931211314408833516031580884146531922603698741840800455477817495450287413585418605138805724307335342375515175813701327428287868560598827793389310254747197229160305534735724053024217700164562740931499436387582037696910009987338955151068692296133470077285082461654550678134386095105945668074964315519601968918222678907857995015666288258974835820497583131567464023906960743857545234263767397418860022234654221821328601437340853015467129255621655647720235621964838793824075522288061956179076510927895553655258292925693056688644996773111243099864176605086846978726456274381430237260539079346354502120369135736389751379682692453953944812725946329032180069108832608585697347132481578786350572794584521922675250805341862311546291415680682200079697608471267708361823962966829663266472526679088075488172397266151918801825033527717184489630563341428469875606991692993757671681954675675788115071411299048494918272020920629509385378319744913525598929661751210880293051225710735651405035906603640277275321379188838157233619140341516163644279188119747101802058872090515636868033727747009245040590477507747714945119967121248064982191828936064049079899040741377494310693369047663670366993640524554006699989506178588708067912632805296114099554826049255493153546952608569504148034004733568434456451363929173538251094110612851072193347140609292959921975156439919019647315290631470372250678861663534750100056292851013908639475119549111805534633545720727890504299904294914438465488124025484190085142275634642413576423809668119782383675017270602334622287207088890520795836458761440958860403179394563137113260907298353152676596086970367200848197916589339881203568111126547617908930321470434360375737090898161050260540809403470247350203555335544881938374133520419011611353498038828106690116440602067912336171288431953443447537290291913589630412258774802487783699935902097078605861574795090500771742138620404661297597635244662837702141931425641134355566591821631128926936602816007483605168720888385307204339496060533795096058642562159441128621778390625709571255920443236762687058604637465578655157044222844236604562654327229492649790486826972766191514519648496038505842809479569641197378250199815758646213461072208130443654757228902988468995305141851637465643145329716745973721093812196415610549345357790690761730341677725104562993644338444690462381877346768692837825891461638019123424893778322921511350714805305270737315565364028811673535541000215972775863198478088532614759507809513415563550644695467901039336506330187877446544391851008523511569784198810995639607959456723368846729229486168835549797065736924902304706485399915858341050662286096654502779511890835697362221594953470575138952146587078903918971366587482313977211192225948539545751691067399352307321408011374882998573131473394144275137346313539703251896595537037442813550014966552248830556727454947989662181772485968646602103928377426277735601667150426982136267131846323977312598774613800522665655856792391647526940516786100372342165688863433055327871368696690342216967731890292093553691996594843007768023848431597209242950376286595064337723273521829545731188532050097508560353104733563467667547847519992901349447628330266679256839586444987159514478233084472104438165095819797931302787995298058147114239614622856404499943425967799591803939044929640111994408886850094390216201736437417563143245105854549504922282554148828556291564923564665931845091896836176793808207575179739082785324301896372231227975971919145016936529506826630117100316245205191504552494167721253808970538696887501315141238888670037683735699286379284859028431325428484691398886429442979427726605345043763610375041764033644458424952936279659019161432982295278075886953348758604731917993577651871944580401363935068944241881755615890060279876923296210002682737762428814964156891420047381824041479437812142384379831954111793871032075161235959901299123072049810745164921716019914400090590311351945677069962933406682928862299011578580972679246791743269046571590399736026175843067998044643616420295608876166034602902021654768138898862871291476054794212722414677503580859163218217252347746927814538265248730089121184267709643696237299936796522943854398439310358281495067184531378503126097450200872853991288540039281296822615146340595580990794404946771220863141743677105347037555824581070937800811278142667086599247044718544297456449069663572696548658448336249725690349231995119853111060255481717682997350139798087075640820991438338517312538656870252673658174316847137660472963530192470546198250967714347409433894081766355914856892231712042065263578441020852810672507682845829274604301000290201075838405908909102744244549939576962519622611435902469218708732167427903270514108975606519327755186481015343246061824736637682487815953314902301983697703441409358755041279905260715612696821999825255595839283535668913987577146008968874971397034181119946970831711109099649188092273919601183877962840961622793728178764242475247453877301296592697720305483061364178796828093907124897594240319962966480608974606724272098893362841145314275681175088484155929330966940233482652688558650800980374268824177921610557119963842184877885258193299478883910890864728749853594131252783919022450152771279714062933244399910444269181207603244528882387016683805566422581774552811186610608160242856155964621654618847289944320355354344540999189822321143120440683920801223235105720710253218638673527875186674417049023755544450308588657737344166138773852454984819412321089504834846373035580608622200243147494703469169494909581704758337670935408237883339088362999628790596179521434299099708526936074100790706621735395056312962794142725052315819219835262660624517982442144187197158313266427282934142296454368689707602848975299896135431053515290464331095604127614034546409008292786410811704597174747784550001417166506543598377188599931175561935871396784322668864091774163641969477530307149501812494836260636943327583080565417350515507953253899704216202773085051420517748236636119894156657837713847077368965853176357200613052646880306239726532382019464925252722868519975687887185081117800416309805846427854083387654317451776173669413135093063661898898914277634679359431507717146929775917276057075884397004923200406634518314433638373534398655086489746629687252414507490586827472667757489526629306681048090637837414372432590597255851152858158823688742981469434349062559998822711632557673279417331545939393882508834413401726982520401373556013113324929208809689753282843911976704868896759618617090464912082418525400043022631961529405888991877052268104490962332770593376177561687524857173992422605027073794791423003463289603667318516909987626837032825981988624657383972394369446990954308132769689142972300662190119585460015864465977911356411439296305950836441244326755600422142737663021238938406425066404595736790477044263016799647307459254073476818935076458652743294411008222945200427783037004193902227542360206848540615364473862935265313818180510809468082144126892030835031728481169499303357171116517745139636127334381578466398718218051242925982466116815719993149474019409246590741432708405223740955616332868539793678650174878078244687420038144120645761506331300558584646781633467167788781188175715308534650985740078557765404898829116426760120217398674478164272785170649643768346091210169250576633183563257693186780895264004141962149483213939237866615022850589437094033842708410415251743576294366051474096440373176091889645316335429456362955985490891378018490917215303054071178678945691574968879368261799563386313414394604629698895139318053083319606914660703870098228215586605215328110899912344514498129577680232100042921377836417975375346623970069545524199646862595451266772499235134675161343708977094483511264976238193816535727423163495235057686871840935723636073906634415526430514469676135910166003286548983043095531520377134904095523899370426471364831519263235734743853073754032948978753985384326855437130330194804327942248192261540104615359043369436359543579659596663279750286625288787611780211842430154824762463472851865808589600037729777295207483000541737864910005758826323003680393894084165380252624542743355515848128277688353228472742484340413174948202359441015614427563512573869951381637851443390697190768948109101848138596722402158825318557021521724886117671956151378801062999302290625447239310775782703946565785555310780126406704246583438366753177089074913284928305820358854629385115632992747369676313511561763632308367051579556584835081854954067157216213465445792241033637153753015502319034175597929207133963083806678738366535907835428729921601818697025148383904204688482186752427757156076838626414504690049634301492311107787783343256683136459811798905531749208154061051951011711334660499223031587904072683103290680262713833678120353840841928765837815490909439657503754388339837782418981061661941041824478786039200680310485933058644069167421554516701995709472819426412672639580647005766005341301511476405860245315811629974453616701959075072083406723060259992886525269654680108918829432848830323236110031385805751774238333503027275434987685297326127679469586950560342005342818212964674864661173333579924671446243642678187092709967055542709546168711559569458115870209556360708882467069890396265161264874658574674861838193912762922562855281688985029787361723614573534709411905549562135485147931835247643788885185498397383678409315837755791035354670373178308512119949893980200975945924200324307674520426062972492149002924830704339698174590527313526964715291132264732014729720388501301526538804011245185581127879838400763089637286673363234474472068455361999925863414991074206544744786205284561959402765946810193014660595599206752682486446394813689095610876447041367554859573991238392704048689913437240141951787537145130801582479346653970563028650767381388280184898137255498351524386315416506925497821538393051309157244529246375701094892609301499598348471283141218749391291989549702698355098918902404892566414811317214717917105233059381020818363722918333489528103104423694142981039948062058639958324674356458917349144851769710643744105453729671109206752392636287076001797917648207102743320443819301051187884035621007482535975688721409036206070619583647053034738336914239081972611876603162982393512163858810153780645213415726887398228878936507214759493172396711973524746978277702891010527479126847525327782106705617635938191577536874705004882707080892866575977320761383117190593976395456815992377490972924316495184925803481202992121304142711170075430283405151256135618585436581278483408378838939728367946789690990275044595069656828928285399110071478570297765777252764951013454924843372100543171858364869607382984721687163073516091941750633186943640784122865278610285237163605284681798644658162833375444027820913012687792036554371665623946104092457685545270602350202018590601882177348408947975560192084448334626318283263703500916153376773322190186190981313986018680655580644542851912108196921529429032573706295096831566017146064566119934834658472844059186702098989054225008991205404117097428866153804269188644921489306808036247508888049998408229274495649130281619342796696283399088779240146927641985929579565462114958894903918835761847396184398971186915245245875310893834451569510291051793928560805358255779544642187427771728315181879417310602388651371620129812201284901472045029746786726711926169811720139669929280313043256717711179315978771320558225219364866317015933410111810841026778285174232749777724275269622314377445920586474185689058341341110158789126133096124358945994850952489471779682701754977081666352048025396971520719220281862512035240161474893435992593429757264191338629628831897025545082094491596616477707590827306981570056209651484656606269166616375470586540000249731087965153463520471623590897144592215837555699658932816731285033995164525515014884040451943427277553613650421373683461076217317335806898953358508091652976797008959682450465324549993647321446904671815913397427788294086356567583105743224632675392599464196805553105190997085563142903800731305443289763595722132736620429520081778365501077267649600706330057598835210066360174404555047145138876515572068338268269528307609395270883394709330684885905500008665839296540403021151956659234449694235546348554427407240359968371009248278076543209387131038224716576598026676570964822964463846748424114407708767076732822346100526292324160348047156480617693922399314045078107493092704677632076719291369094768192136485355411944006508169943958584141184980237239607696033384599916908153749129510511933848981142743353384332958629811149797293025368487207653539715387859106431677769726041323584547316733321711402786553935637151291023104944464503402987222807585020028414246850619433477508667326937673157581384768800934471823877315183014241686864139169283624190868269100799552468304351762225023011513371347108647859892853111163870322900711034282250749691736881829379385054786829640453947239610475777493274552122395909925731044256316800679408357830462512846641538952543400144578624371247214000635100013507669266250047504405581994435731090929101624687413265576017501446525410984819115689362048925313942561826374068447614144354680283166663210730600183478468751387510437253813602282936533209822807083608387639006079174216193851475150717210409194159238676774890091136081971833998723562114505121968785724073181287718689273167612521887320750961757793166849667094590830732679305162288326625596152900345360339690384652046781610703512978276128485486950356919123293878561867708411055912606940680502787215284135508769907729633914061029026718293525367998570945311026487830689198340299709335316384273295417757117391651265889824877429637078652657935917158958629123234171675395133849559955062303671296786788271778733544089124241358494977896793089485842640181717332000121120325677334881243975417651317689334604653621946646954594004720877414889041674983050803066682886283375524959519654409932150043229118427794005380047878591960103459351299323342922611114714417031179966250615347965039558726454710484039583387069727052226642561883183141155252804105556705362854520467818624749713211433623886433442486234926844831695473403098924836402246180926960881433535853701911136391610598203223483136776788847051154222243119702646300539796021586874141327350931973742047424150430743426019959721815204155492990891724096612284225887425946706923837490693202605853223596065027313602987324238373534425605259700551018829801204954701228905091458922916898399628035219930782843930154048386448528060188809272266544748127422863048801461391552898248045869930011194633720550512599820180176577300427262601260523913856971374430896826512190174664912406188657475299801437334963075913796093142999068436983052546146882252184732020564419820270914759110220509314035487589994596645012943323021301841971720442047844581332448795988502557730065572242147276638262855920753920899407913728500895886279232968701199383130312876335507680785353062938498960652975500714889587749870908143326875652868195174003326449576016663776733468112372416255137691895311896731609337069431396193277184889946191139695924195784313967165658482448783737348028682703740224574257368066049002522219309550416664142172944404989312272238401303779390513195370559765565488280972276136370798382816188330240177095969170390398992626640543225874486023721218613204219744757548632872448314224558816837386451767276787761336734742759998834350787584753714716734886878346690667388099124423568211925955675455855867989668246082509926676238047376744093374555915760103204753081937567478811105040967171589405235848000036179466633728959141310648968791843752391432078375598105624994411239448734826722895349824342060428879713102439514040978108217875298659321631161145545425306835258423618857844148653175378009810447329245784000436538648984022921968331690425009754451351274372563578042299413539674866682087277984368654268860913173977838032827656249675720042470219970178989436898702090232784151814758845617551248314707100625829714505000177104422315954236217103224479609921744413078951397633622645634086028943719616340209083582529076772626274269297978563055761191643365892946664882375028237076846803050572469554678413180960560807612459198235782639724382123652595106176179835841303905259946085214437672659096057565364016081097872927138840368704983441931645446347154750164609472834458802209057886229528516136641229225793042756557946728917952036841532423623021390977969762741265637784059662235836780766991466904625534101045395610278498061925283559382408512395263483220968420489230504503705228724464269647602130755031721656056620180164114390789811409061299980094169186768033221653881282849616874162299390014661367071039492644739737488283214378020666294725641706683872078529955626600318207985343487802015261545286040102256979096972828042085521361791993473856082063375243917870879324800423753517368060716171599753023827284402028131506371145552694767219414019074873014467939179922003165127163929152407515901008705595232339479879052636052668971390623851700373487950792932817354697856656061211694378691894159987549499415358425078711770559804583539464974510107533462459697369022644441270719240561873912671730670732837794927476859145908964079079348427505118367572460651134933741766756342535695032240442090226039400047625877744928791712681226221765539580364872757026111040534665501292415937053352864546496909592134250199530436826841372735376398099415679280182051896374983353754949064888318280084885365547772731737474673691541418310938052998980781764048507449458236783871476571692188920320465590854590164072539480435242730903929421324341319835223539519694193479475647694759574943992211257425138939448710134390237274685037279039605539660860212321740993537668615690688526046563308045744113606813220669493595793699613486346904843065999589669157967985012903802220388971320069079848402848707353399090744282321770518131809289673239188799702293171767354084561459644835904665563688685666341092774686111420649950310886660265652112965652319191337944283165684380687996631116471566991758856201871163484510625031001583178450752423956787383672432057913314621323485158384168843386140459516494229223049344491848653918647243720605782705388569558797310247314386707308042811215194045518862638056822106382695978744250672167226052106671132200916821475896004148042985969660433329607342584692801600105482747412835927907562111639826379399319432260140776814105931656646384346337295224718918773382119411952117598437919596269047552014945091787113765277321792525926641421218282472093281267309264604842237832477207205831493613313734055301806879765199540112956898780581923609652597717899297879741520073523654709276679860672968234642904051373954270435350318162398740312703729594922782994096117774618536207076049578787056001535281568894772124248921425337616381196645175951838404688250325208854982222810312336364030403704017204412690847225074350183597829351557462821854788071926630946673650373974148278852317384512122591861080490684014691975480747034344932829693151526796488820808890204759383555204660264992498577306558191341114308733685674630090627803860884914464013410313363603047154968253095705868468471024696843306443261410860986173401193620653861822076115702271359683296010856844265207064734313496360263631874431097081221619377060315037812684669908926055631247237844415084314356193285000804019892449354148530944971822768685241923428357985218558189353473994101618489833614784854529130187223939011552704143364984364802493503431174493164242423365262784307209801568270043776125435911264149522250033430545737691136752420199931883646762118014939895119299122278541938934679927198485237899212393019801239036392559291909706955955224392060893461442205095459524607874466843947468992787113766433372350149200623542978423497013249230996571906075115903384452102674211902084580883889723283041443696664417304236358203607719405936899457995787371459753282821780973461778390619265807623819874368614457753903215837933780764381915357030057262230374286921955430578627313588709074348488494953478839901844028885637331490596270265756980571911695320267010450960521843958411961107719799990511844797858939432488947704059418793172349719358986371581293310701354258868877209263149441626582251151480604993302500056920904653317713434996257114916973372670638005028602383161971526798621168916790610990494213360492780789656287715882831872359508606625370773739946527499699844127100742292695712806393060860497661639155701716501071151720249923371771162118525644421712604635956845525004772415141475054075798414044717806458042844452466150238100565055556203972258382460827420499184960792555280274761259503630430216176080235487597099543253706388216360950787152977771022026423339389850767403783644283566425488715914696034584734527551527079191981731673392359503362973511148891477593535103406929820231517561946522597921251814586972748605633916499715747880573123502480954192650334730593089235104065048141364812698480424100054489854541218227082017899305434446019858295526853468047337372696570082070411118341675027792050127036138906467715708813254374662311076216390644229881454884735296276336896860176946192685494425056044469096208223586166161919550072202336321515852331978311523971992781441555566887127878703778868332696012035517206654479718224500795917712975817460403553391219651049882799380056578613854074526634748370799225636353790964269206406556995257042759665950039016786576700619682532204049137439376489720636023198506078014236502471710296206667610153980248112239322630060281702544474483106980598709105331693384597537900107930241491685873196157499418668849681005112775498317934809511430625198352968937905239268808930670081353238592144674635854334809663447160723219075524131641060830065634451337325974125353425504103914657018322672889039623862785832950194212977987835310564217606068948365845267823402485192951798665754664485858479591492980162896914015969184670464883269623556719747078155334170567934249893450938313518518032329804317238698988651195337962225846415440806901783360903533178800292087424539756419566944860663789726509884503197442860211074945559822682738304573249960774937914751043099084487946919508855606752916913044152841006049761838049473713102702093997083304662513157764845731828243025993846673933048525459256302851775378434402737118949501994769016439373116961660304347039194031010786632519514837370209667559598954361940765800355903400364704125866279162265098468019689643215428922633122569235209541645786708350518207575161932201578685298810628807783759414044619985342630282450815251376121619539220223816468467263987236852061001955118163271787980817834561310178975349244163001872209644300386621393939404196001789714478187450800111883458838689622172515157354629442818515937436518725173531138077227430433437966649603118632949446423300290717745584788566820136839251938644761150638031250571018503441721901035059011250428271210395018667905231759148395279727572793281977688719181460553304753423553936113128990934632056701300824452686526406459574504466937770110801818415281958506631442839136431808133245088436220626739077001621857116214259460852350089375120423553170135682550314466106289676134694637274855243487653503060460084589192992886831949001836612386308908845525739132964682937467205675643501863055885417126140500802576559284358667776054708884750339793052733923454914066107165984407269014319683499883440207147097713935999231400726571836548054896545938558884060308298447530775218815583799360560325962235895596078461906837043689034182441167741586136481016229432077828772669939349856352813555379576100819748597103724911384142072091642653950223603835752710347608734856872779564544178511427522759971308457321267840155859462298081495578985367171264252010552520021067592638618009413485212101692016042471110166158017446257579143930581091106291371959757625998695210262062864317740933892021503939776939606007201149437706869952379302691702750092634025199299864130013394032535516425542495913458706466944064510392643218272617888793953402477311840471058608652912588181869978279163459094328610392158250422346204720942345506699181955915290459802062859561368262048917248725063126815713896297613403842080033105961043576960883153464805502795675125592990623778556889607572634791682033624142919174575015009078527159886077064257237348162088152381670692825707913406422303760833953348319169307125617529524757476051943829491637623691227945736590820481451042556139826725625210831973928255251316970718912647923881636726241935946295808451189617803848483145181521450688014214894544541877663549152687452383166182562403726890033401312531207383859669972117111578828744739541653784477038684037911606577207608883838082158886586030647943534655773031861444457742849566894678073077803520012518757089117236286094215959491632869508980301814939024940317548456621948245785447803345265266273529698931074871141653280340822974417736405310095547778854391857698602696747594905613390330310899791977512000643020568826166156624663884109932570818789287734509455120301768364069003268342497627426179314248191110684363242315932569910013822205034568277811299282422160657150803428191449382595863943919893772430374062482594008317281975904798004422934813611282812316957167022893387367603412236516699686371302758204497139525240702826592695060142883561575955428830130783441542692190312221465279616787345779684938688721189844429516594911236527206660295910553744091530271980324741195926348008051631041103014547941411744446195389097362677359883103358296426708381421429124982741904652279900610908060150251117119446375928889426864468202275689479065801419173329014843198092706928539068700222809461388401958070416870664027246305726485907382173097376538047772645448323245442671842133064722198115590359294213572082862513065372588119417116332557380645538832626119568429405384564290578683329260680371328069092509807674930399857895963508788501134588144812817146556618423281528104851470619069666774236556780037903399627077495595253654639781493889301984339859343453136216715350222509564492990403582195650068069099527613601736660692894359693349636792928943676431423956818758675286765430386784234305408856498437701675121287661697574160493681180692783138147443219476738407715188750792020262241651004106286629750145449272170981159700673549882335443264143499704961829603578071728751889223812911460977744133015068746817073647328171384002900555841831304636479887364187385388833815175661830981416725634588287922809288373826662921382824535163981929057088773972285993919836892176089801774082706523157182443261357985492449541060107037767599523105390835426334440600712828053506296333635889240470624141778464473531729463143425352901772945187538803866997197270009927594622778578294608625887895016443612152281645495775157016356022883231452831991645171969001402994339023034340988078155846462654823143316592515039855773840714241668498746989390047211861380130510774895626273044675545997504878940924763720895790696462366561444900673213121914288742233738035622428644119142124098013652022465034981977359986069680614655548215937385064494121504197461791247176478113431663762052344756348435608164229375835898391880789487308701724904291219979337116873509541216636634416249038935963437404924647100920080123365088348695515981122252988756795893105632595386084617741478938889942010479456924295312798411603011990517586539510682580830969614986002995670221331873651994465576768466123098872300528660163241648822315001057679213305725785233896513437843534311879809567491007311104744498677550442085990337357321161564291499475705222326242758480301635037027294064732978637286633611502288288875211300821337884999206498396040143824987195399391731616071861384453665927017922545527573312926225714890696968370202323989818472247063475470042834867919345574117304187759795518021130610829582890674713209746068569246369932025250317875963282270839773328202564936399807147880365372701795472755247499324619446238218714791352695438559155249179493904610399491599353527440485860308067094198249219952371209541923125486295428482673043660820211748430590426106780555864733269920522526315957385777203728946872503068346425379568291291020939430701573855299135579967799396735606300504059920696711565137906691301842876805580036302837969384734313510171655754378450598308708245323798924648949905263003091901799140733614362176929560359125681768466525511234670992404768424650901004586849979574674582798979374022466761489769151372418791222948257800337104369818942957293329298493251159157938149011866365311597005143805253425614676731339858995250325339106743227569324878498182807648143638800532438514160025394924879261476597098907553884350856163362689912459107490352108496571841323585003082652550509749963418209737477369212488464519003711124224050566332247975197680810806301051586300718812895275737746418668284359245000871551867932694753636585549638493696052977587669835883638495018895933456039702718383875523003485486972773989082953487188889776910735188248052932758827649380644423920695248986167911117955367066282215312763325247646261615312324646615595273185766819729481718703447765247206758252091100301416927923850545552087443234745158455678145625118079457431818677003875288457232113403520346263046405400248539063146507580759179620817169040283804398469101370216915059711343851045416211509640491165410255972908777874047462443242999236153409478212144692248406661801737738841340908938105731224452211876628749957427354228448322527076636819233156365389412781318942580877678100643188010695008685567448570919207128576350392479386282441949382504975813572138384918251584962712513183378667102869045462609067401848738062330316617647153911359207661935711687267392077997772299023480357281382662302826492574002644846926048692274978836026598230107131601325043661214897164319074122158774778171299520976811222795230521961913955330613102379607446738704360553079959927327462554520392390628496541336180089012628451396849715055854376603952108189176042891754162837723061404186247833185781286181126350675572197841224597641216100598550063549445603388510005651259889935714894296171582911918361936386387565994744377719010214548129354941029259483248128613895802692408050114571721619480717924942390368610664231797062428496689280335065819682626926240935764884063357613335536525074397557709624906890515147216761574614524859700100820149177202939021161811153530043929730030781037418932096328761285004079371183027650819417118454190590161937040609591381765467874334428012747448777799014725803456675087948403518591378425169813919126127206313291972104738828785532351292691329475007664117701079691177415303341577408644416156894940194393391601503074657253192191793840840652129438165548057258103777624774391070453829220646673698507027874371384925785701712310217339234002243248249264850186798873761382624451015320266581893577348667786618695839463033319931251417856698293041470507635332265712172249185736484164345991377557917770989486001457731579556467855330654994610176204308706501792433359722266928208818278405134252736799313896963988570143934520118078007494986041518251065279637744888237094948696438739458841319863066733045815769092787533603755739165939666057903395810055703569660687433677295243393876501192812213812442523506798910509594327394925428453452524999869108173580349191515334210843022824026455818739864055814573530620585374660865693117171809658273675434154166894014529927471240047882075642227840478772453155055844197396580725273909880581690110742545913619248975694650600745821664950458717946400998524225960772101120699976477442583341807919631621073192331203040888220722993846430178489194346897307905709555062877107550163358812772411653949256263763514150471376051767006743291333621633138321629239556221642136298374081037706415637502891713429193479631412879672928026524726185806163598903278111274853847583814232536149534974744981757917565892269597753344724560746466214228690302244871223209544886445941355945347368336322431903637948723001953710535376014750641583740112640556590059368208355195010490076301392679789475714670122199367296677133191669412967184755724569843950760595265084869920834665527430528523562724498522546401564402197430479794365240976686003218810820211277159421540707972454728392526613834971787756226543152927081345439534710222912154512044659784638013662038226510662748861697705535120479794567988056279022889096919201990671264005682431188002140514005991272465995292650476136993313297279367500921236549861221522525321856776584862683095891510631718030385329138103122895256385199542075068844901788310465351553930249424115373469447384727015628905235522094526884226720588512987451781169827586924141378660339075619971748465582913759097055139427306635231322700929011120922448852155077221658321270862860683887545705764348994561306313485214593133255649175924383367636654243823866040947297951434745789048236952470139867868619192436796890668007165646818474740508631738672932958073600747816644816677407711151714593645788154607168252596627040272459423340317075422629621056869969779290810789128613031885950198999009310868273417747683204561570891340338146519609154922011295424028272271472383528405413290223620509405299605471739259282732476252913116696412201408616239983536556524786313417236981091528975913730317138892203319737422837751706977026163851246570795009183571776026639099972950370837281338174419406008814009178286172522012858310072119510538091943725344250872914233826982755807200060618665300301111583016192726691654650326449184986799521399027586688811863694777714408026616481970725570675528236341686770562008768308854703408311528941062148248182786481920058243853035771548274373825162439409120238311726204706815278625445354983887562848835557172441640984979006660684621501160940933158897620029067682488070764269384428588167444190105899658391303369892586122183197290180701029017605620454265141037272291544742716040189473669635366990861065279977043506632599575929712838478753288424786475628918117686776184038785397791430609798022496665670150356828184266253395132464087469479836000243625047104911984522946753581592504524304053885201285905771314704334655426230750087003549972919346145655597355376332813178731335960888404375738481531390120249035160036267284546821441107997895268870332913224320638050325858296057581928516846077129786362478657424943638395528764017786839763654291719139109322236058012778528830987082770836477409156961659451829968525128871279125764418201649234262544943236532409225277477763589403535432193791959756651850576495447739323072716225693316347495429192367397062813437434136683932390163333706944657531933145280023246795967321894226827551527756432022813176814287779058344501883491896666620056344357748375904735301257515296255332074194645903765928508889514939824455173556299020225576824006715089759583489864406222056772259574608289030196105817136718254715486264743699479714816169370048237589380133971971922832461825454178209338961932134667700091191517688448663202242088239320075607947971906813142991687354193340681376277055892433809344342706281413630176850661953994936086954024138361699156405522881898802102771479344445469409900999589267056906868716616041627876036876406161080090739426036605834516267156678244621420009590048052381948178601666856969123947553095758382423332741999789843649393441325551129528553774701766400161206341458001019900508031721081901449873840733319718916079451093481062759508535003332113012126011163821139665756445318180751126356788836686907939412076626048982172988457605427667893311629064469226170799664923141793015040142597607263030108322445859459630380958397288431849028980818624573967440052124413362810012466900682402853594116027982193938640364619405168555374916658177624114023602876016391934456230484300192551302734967692479207036479717374137466978265247862794183544737828901545568622669961830963234089397833302375194157373558103806384963253547173292757165327272078605394431790082737636183881257065823949647137588933609944372172644331388933344356887789532144968830771190011567292353198810866921921950270472158641618765283496715662629160417669068098644810647750718790244660903477970298472353050894182976199294071293086894022754241048783825979277110871979132422848889776729604489311273571957695533582102691857595547481060455614318724349560750630721134435891460768766595463782933977633636407225413824770591585181637168937217086953248167079871787867294880173161129263586857355682852542948279817677407914191060462123893027214666843721232756822160010233499370305863110675276335563118680138386765671992493991026738117833280938938821163244289138423597886290070693498358491627607143012174137173527317337123664746736221732651231295752913242639902871694155063872917839896561550299122833462789492476126016112249478777422234165835211855813358303179272522833865866602361753642619965491475829828799597529584331086518088300082796566518641107212253716498483759898650504939570003335296225210564729021629284240506700112091120042883495215797526358919559013049807905919225411030005924690124849272009279303578801410759907327667419152151953087962508374358707968413050067606371548250637106703747348625327153479247436478340236733089650570021074398607447542489028624959127484992417664702323376479199620999877276436132357895830814556143131524765537554137649386374928776917787425253082441001814365334921626706447518843915508961351595878418767259655086567152013982045778527652809074715012509316163001283394740468935943899349065858000980733041107260682958612853807187049248497604357562043581646386523222682853488201386335725787205360094066530117456712951477470128122298045092309316465246388824561445997165263399652925609356550358648857689183489569084478550299073853580326133784884424207729242206259749869656871069737413050409381874175261654921908033977573066250627386370092898814658427208964568789641277032058353039840191003102095185438209627890912990788384929932203439749351470287985890921275428562796315930639422511978943696734665200118384863517333445456492759479249298377764024238923285619439761265042236171238482683254020035794231610764825724201159306724674431942994207305312027422090849122422222960403654355871883349382403125870006119481591178223010422352327884442101397158165596066181365612818940517684105830360937295105236758842824194103296341190525751725372545183746776365882288730068024455770519122722979728508728422904377163356849919404420990935272609766275609135476543922993913609927207984639221808435736419785829159950843608286823296930169102516200085604675562707553010503104781852312755297880310672362497686106639108665463611726137745308177913005494171228319950022690182429944730142654648182965032482831812229930923446678708876595551873650529193935193030733650957366935462454438438653276800715928473715116240620078026463294292032100216694798808433583388589854571902637150157290157051183053067957805478278237250855051360169952048100856994148399867970417099862280320130588019440815615446677356786266687816501902682364633204567051524799385119822733114104692937907219961602521786607068336399864307752792464408038373220712850783779370386827642590641089371417044015475554509852798997361149918712195943887536866622451168920454529229207736859032395793068925656444196374458762931165636939158115755071818300684281058159478528638590674420005560100085110720421116205301669627293529290083437871320459711551641156019786137064180045042556868282963959587480910925770226110904135687267768153460884843079423176625101862545198003095243480309150385974127329006165268031342030847936911383684086604995475153972002337044283480974587536047890461655272066566574389260297724329970384549648509835085532890718244376705852139383760699009242335459008688195541348237871656260285502058716079950207984797500127802913976499135721843649488222394910948495025677289873710753669241101865526847927589553424882718861599308187360163056119891914804491558489612046564243742185797871080313708792036588520973610104137451261012887503349868430046977535555015542344600767844986086995595218582810159470558614058668711062252163065337905794442313396671262075918602515683689710685180026426844198305445684027706439096476116427100719489026840574278594875202636072405506365742848300903787826922933310575148797538717962230628816909467994819664742028411594576728629960035629649373436746662746739374716529855239669750021456544759303040919556851226485401516449740549448688273710654993797069219407916500505387677490665773601939528514129394409929578165386396733926341407029318540426068405618699179241710327476047699930037924636885071113123354135471522331739717902147459803460270668586073694222972702368826777798728307967780383794372348578359396729298753983706108943541950438072984362371329650388808553999638649218867967125748212273369536621218074746275486606095091586047986193591270429653032923811091472483392051376430266866724871493801260043774762556097630373741036850277147855099259762636231083554034728956665364653803478122718813260775339056208384979969544434661588063251321430404838953179692415234860922405387383110383244125283546235306811957810367749219457617908264520843044895967868123843086978336453690559991230669502805848179787681414622516310166714046609357488028110183619313139855473760438086769115861643976873568215556007594218728663358742139116830651483697750691730201559970376750904617565987840207642733853904756767297762867375551007242363397143814411274210539099360269912102348179002279088435880756607694278148915600839737373935934534419577720300025753758891799871520757995005843278104074051239074140938796608877818644076802838654100909636518979919443215915680823333922301990692306325372603080573770641350415236292270731411464295960986284162825726822413935584743210299877337160270649825541996086348780053246163148417637086118282264765074593176286882102172454162799804136981325854267243598847091027842662345858507713341709600713088088767221019619189458465719287823938415816042726847142273354494262934238493889267104151738687815673054635236411815289327841578255228109269487871157020958259289886252426458861208375276753843664131161201282621925458721125136185704848627805285871668531073651048437074502793845914028371602174115137926085248456958858930224849108660811475008348818650680871062532326265892368193739302943259271230538259259588680180008427845273971946195979947703611714920157059540426028501645408313143836942161499564400481039077020117584251999752838637716422596725945992166069073642296868369265966092366182593086285938220003426219659140233203262451208990780803463308176887042918123920746293123689342367798045528048349987744190822431962225017991718757193752168771415296701694236309525792399587952993962391955922040250266420898617753743636996929362084341705037828521069908607821227774028860357711053795781956847474034310044138003213049301606093120278707988859070457383338415519057952261955311647953175689469123723446272228786517532495069402711982149415131400178815088426105403675951089806436665533177852042408428182284545792701538101280490373455082535068901340828906450606993741826529468419550094206106417289392532515068837469713131979881616729660477124161629548779881976918161001577433838659637319443992905381986399974751986367674062179127661995668392406773447653028104013050405125236289392836268044869881213025968928162797548099479525240675657260857074910765981716764738197428201164485785812609227016593581683126459815126292273390909760981357069771873953482833480495935201200512347921486932643822700084520262114200621833944757069417819679293986766672752051032947090047086995776283636258342760837721263603554987843499872072364549999927517885289504305567796299300165619684093676149831395292923442493409894941795465507874116646539974167686948975620813316510475462219467335136826907529233128201535353794584563546561984084961919174080675109693632059835573033794900528330168528248745100926735316146244316550623940325108521825995822510663138455523056594873247725816175274129480295066927820079521058000462772675681493774188552994286945550239960581731625893137552135495665718911428188784811680299293166059970782591698214069878416985902969688401111644360315783661452338886023263661977468320132530287473583339321871001178603395429374025794241739941025871800491690471720623721620070338809732638480592928814189486201862144409271834392478941305475950626641801718473307984041951138381673949842375900963112931407852862955648412374772360086773690524619383576273763620970903810241692364200809147396298074079326430691190774689753063247196718133476580929105737828664837486100061485295434658719449526586311029369397661119759804611978888431161352082196652803601274931675387234546779501014109990703786131156196101176255745819894371232342880226177307284726965530783519715757229752393165436979682845004811360326765366605904439125925993028518112442550462378820871488730204614237397580451553729087980109724883853982043018747434634516907927378663471361931548340089708982444405825196527030871199185684129383326805606255398015755759519967301183133981090044946701939292998792337633089000511727135073967487099514684081472275134205174597513871552318075494682996789167252138882819321756686796815019978897161978837321376755597298671344137635806375189758941452499859087824445319449383218728949450637059367233189502450879259054706508974477223254309115302353392115779345781133862556263249832112016133158554764102681006293622269732724385585075125091370585643029999283403112671060915428658420517988399527211502925270967400207697926908080179158539410333049021248584639323833578567105332274136656587418362744245628757114154042309928758387527793321726912699185494475944187075327035522231257053588163853967939134948380113320347469618778943379725663023202604820530456578214064104245682984647375907964430148075268065290377588899360349630231813260833063611516565312911528628079997962424426860544166442965635060385058900471660712425355028358115725548594313158172107505987025539198608623927023107476287709232761086955680544953915132311766918591967642529458747761537503127107520997687501283935081692918067359509704416320411388688565971116607765541743786520470192672194335447146910148470391217133212273142486595721731184996867393413837633351006865350649883417721832555635301677983343493172968347953453374791849660364021047689178537773506122528812687144624482113986293822381829042724447776689741348251194243460925004128031918317369708835732510272281380150051442671170670241340731483332815429617926753377299701971575964734072819857781608467281741769970345207450005251293301478426380815118710951734319837158127283712748904846811310517398897939109671252036327637297402491144150534240641464456823011763261519712840871850127348526559284119977129426101308744459313902671650449807026978344583818979512401650040301041651425273342039096049066487348180448873998686626765241355996019997242790648133747449166277259685888054068507135853611234684043625739007632278884337461715128224640984851122855791038429860147322605785552147425729650364022657157957657809400548092010869091509571991839130277203193785452424883963446847851054688219848217979744811624601684811434107223169410615260215871599474111031898595329572521987178910866422383104223523859117414992388324134280401176498401402015902590978364153181194044257017255852342051430431006336354050553690271418591379640106932072771831828541913777931088569826257153688676413721276156089608418304680752882491318801502532966939954341259771810125947619868050318571901868308896773263202687069094208630435272279435229694482913995183866601986608756204939509605662166023007494718027917306162405462719606068784969068069390166231244075028771020025112668989379180103605247085038420425033642165475735829004522109918672197410780340136226178541926226708405278779813310061121796491809212749581004130660440143501941850374725917607990507542054909200120583637863384756273115485353189923542187258614449246963750242254876662782478172199049573964361890844761043271861411690895250679190051908908743947401266903687813622812565606960959112243584443512947486568265926095165841829302873772282201755639590538031512468136931575506236342866816245878888122307381246679288707381253642642439309111935665449614459375811153695189661908253259288255570924327533589358503430181227957333107121813133579990954187871382671513867979919782516601427760345148303679510463909057264224997972431103387483384322458074198001311263815213347519295362939869880725556155195783779098485881949466953709550196197579544860611772819550908970126005729067626982414028566097795920190047092204203902340828820825780357857057276604601069731564186230224309727588203832815161583403619385507312628112036435595246145005014076014625589426563011598280692811219097994856942205748694006500282738920953671701240684181675339157972370911405602589579860509133451443092319362345782961938371618603104939353982729580117882400717713853214550425744044910771843582591148826744547747681572280349807636070588960664793085498342528037445355716693196701167502380903959733648870304536472123715090637707228918326191269966292430029059642470404650218061073302477521419015875917281818548599860773195707593455499307210547134705404114688420950908533571271624040633706490509456497783736696966182360142976395088278710535405296811814076638162696623193523729332154067653821213776615303078330035651657912019155291644418991856910350849218155743562525291584494501595387439576613847239603471913599265355122424749196022042886529210881069515177267027437433697326934728749063223204250700032233598176676330775557215203468048543590365550631860188913955175607048066936294422185703306065484050410160833360016464271905279974580312658058661747721580977266791378781314985821238768133592502769604484212166147365270507611719614531762294810419466870472695684228802737726137445253745699240708571029335399961971903477269049342564553988156561073265037213961494953252965849844243374457302787013702297320447981519683664558657504487259856231762287575345788676007708726885365358196354640186627269709313881850761536526355232636320095018200465427250952466292891027316278561388480173792468996370317298520324855774007586980543993542467121273163656216850781426395699827490169414717183979516733575979492432491287493537071867783089185400315170122723592314262111648568803071230050835166282075529140168213738475622329361940783979750124697315880954851077445524635918547007196853023840744703005643146919330067243060935024788710532263278909772302055513088047844080004501102326015721284293299155760919143020200935467768263784413293432448088883547634116190013520319351369583651428810180153666782644124301060885383702081796713333954239786895121788537593982481636133023007087017858847683244927233005579260117625193061951631380909079030270871437149840177903205875772074421163121217025995369906336146866260160045208483425266153051354765698858969255827527871533191399557898752490780843780183896101566209168622820419147749023296755660100028154046805616501251722264117918279045098618939854762687246046307442819215718108719266365798358280681027784567734867020128567727843671897176742834670667718035539896918179977948950219867827827624666212013152497212647239908669838618183374621917073934890803679103462810168568486334192814367164570177277183145949278608139151369898696851077658311195259071677697752389335034339766034446520223662065806396232096287061454104633829414723472380497124568831621524989953063905571144290055023099334007051120866774254621593525664592982648932354429976125411161911004710945951728130108346950864360000575167634536996701915413279346779167743201919851007492833478626422901021501234596295492363701696805303483474891907047675567794828798245329464970350265733548901195951199950437382703862972282752592010827450193703869199848883466610209648200035640972378101426154485913312891709971229510264656385488333831989377276120129287520209533891147112109050176334760606535879904972537937404581241419756522357364677906979192948217461797161697444030491542280548997473904828557213675508304134126577500490995246417572072189291673745052500434401320677874922530093752717794971671931523464695960819242602265783975608055934261217339402479599394307788222641885791674011857639211008520891199873518822312379242052796619225931436039664727598968093547946728753467923314522045935778777595811073424382345057387693554907150403087978799519322959602566493841134925107095224892273220673659145920947404081415011151785176348568924844377189725369060270264017583756738946557001163080366281770516673284028237045486883148655595226929038210420644366729774401321281270961976148566309742179407214847715622461723722996951216880404302435993321173523942161957681006558123087254517880373121448022821130506897294619207813714609928394476472855315592984334263172969651688803285230630245872993153732721010709824708253443512770971774946130072479964766494307942290743361086316740370938903726864543149904171083040914560630132938908602021063357144199076902990891957341206587283423484296088593011129512469338343822056253058258748977123933158231696832102404835462290861299899538785220649899006159307065190219803807370398749688412111152395590812381076675620599823084832577481009587580921380892001200234758368221159132459635309645673139893887156352502078729955234091602977995299639819690947687780347432854389775120964897233442691122469488837492308925182235409454984168560436537563354287480992216150608190380692693887513908391907433126936046336076262449103835704604255356075913485446159444637000106219716684801448071982599356713395466184824962361251726505172272279154402889059795602397309854083057184643352752366735379897189751074495816063241339850947780297712384726557825007928358007772080986176763056600231396349958554043009746610430326528385394218260786966421958025539969790525753014743368805087527663712838681283291099244455571434605221683935414546298236325050102766892611698897725568341229759022097296398230132604111146338698040613893078063504602022195788929547581877324555141423290330798534855775737887594956465958105459269066763518843071413944848693600185420880910855904654482437738355129090537563102315068456700229189987519845407794901792618373685520160390310023328623949557389116779681375098737977199132073976658614453546634037111884579615596152318682391017966662448521518527576269768815116206894924816612394745722549666806975639417022394929489538671877323526721581467498841181537624087061806640528626779149852920420807169309585647552982919935198796145072745293122130468356754407780571151179341631410012276654259315320257079425980797813791117435030399730953348216494828086787632486722888613715521331615283381199332828836789224875470110763760412622983613277752081710051249001475578090293396015968847738639566058069025293120170127982098882332248783222919214004868543578724653198838129847319802789278754226378792586375263130133408957170857606145735072307762408524340687719466464714484050800663004907917056116394313315869616307247530514743087750474641040676803571877479736189600990741727602059434305524950985693254876071765594597856535134502862699673207586904955569221665736684074246651738637875232053745204520484461309990978970702939897352789063185745145476870836687988432632216594303290303524871738490832720171534282909718373604439167669919579351707971782392448723871318675224749744138771418740826997994264545479048901616735410320056165315598618236427780442206893650198083441314808998415951667712696485669058904817259497763432524423262656955075793010331124689511194637890803550856216600073041742794292799350753521104686695914469721348265268695129805519803380252109919436334861711313578040024287819666404159816909120857314955971096434041365569157926367125264586158620664160772716633476738227724230545122501954076291988776105017332149085164392264905848948381885415179950663417172087914498980394878470074070680785672441667213259679061776170553308103755808932250546888561941959797369116645700739189173338610798222921767550316554616144827654226047984919098733206468458071432435614988515727647775787196570242691663270828710858611215977235283986057445368412865714801216141195148511934778705293552836851010399799809248051450147316206287819319228355039026084369249268064042673808837390479894301939062017365872146160928527119548361580110725779625206557543590593377563005903430278519887352399258464715430782774859848722491911060872175058932815399987161073743879605594541752102572861376108924445803211387784933344795923839572267435810930264489654140326195848027854272169395929445781227774667651612538819391612219351198524705761827707943901135570630282298319086077090601317361616772010885556771002927856192784704123094617268123928451388661065404313862147353593150334243614073585579344968488702014414302522473503948476243027317428641981882100842993924193961365162117303266095437732479057011546986845433734337761643313793771522261129846530128321858324777834192818452711739265337618795646154492533081699542569754530969200642951596025459987054459066965717093504769832507341933256529034075690553953350258029052393455402225910797015035959677932932920169191127312800800484564477434436091173724675208518461378384253226183936491925323417706462339480166313093173842547431551292464718988491470241839498361827387234155225331584121553059571144580417466794579862797322127658734809818434386892978829767533166272214490528993662790032125563788721727256102664981643314282653326605416672968999721923099982015889991734502602038452418632783628620154635751323110111136524708273054935634475354244576143644376618210498361022341782316307899047198533595207682644039246133047580558948587736912033703178473516237858699218496866694328882846069527241625444700594177109948701344455671498812524679002146540491653758443848674738453078972440123947429441650010206436675344895121289825897372817902694861953583247160385574165200703819855855035020376871398736436525246702228464190713620622190050781695335495084397527114359696797368513646354910628051092361179354842681076606543614218223381140106517490173308325532301250118275929787856586775681066510553214574737352756614314679815281352024917970386940611826088320542962409034398561532412465551302284836301104486891710327385208744441147223420970868823726758504559867169047833936394578435752269450116510842913991341275004953455611098666295727683714242875739931004312448329367014581440830746554811252977146441002729844533599856138597203276137040218768900246497040039093989075862309787382333249708457444466984480118624126536716976449937429452019583298115300815155766825639262019942543433053033966811200951937248143898525160265405823857155979445030493039162152125578327139593791511437527246032942882668639829225770889674795106293521185210719741617570357030423904419232490632938155650775085576889323141609343511987084427380049888609353702263063990352967471556359739308720126726426281609373312456145773108001777750418966322151921496335417978994648057101690317172044546510573823712933234423205715825436203641307088097574245253003177014843320907927452605267719329484343460845664025732778709971810388169326812769662803888687488553570804421040205235774295591873397218828196650804602842327096969958674803290863998350835452401653028239668794161673010582536963960034273306769968360797584300316654753367579362593345889065548896598179272591199236375266828804079821033862955867714123430233356191587997521687408404953765906676268796976484578087184701669077229543215945431326834973346397861022326967872323618309366435549065931478891106279107062625289044013258592462176474481978371020380902359628101974664004714108499385104490855699551177321628191898803961252402077810560154897436751258224477865716515651672043417107806349577840436965161974600257559523576034235987725735371106548390431444161913620360012461999694314482166227834187396477246038652804138033274618016187568018404033599930455444784603410617815575528933509143743617596877495811323231254184602847098531786871471626690675302361739946049851840736913178885622353545331385678502370357427271555050913278123978362758591717069439285522648072609096767886076724425728019575835978227029283927478942459766408120616916224636868346962475714748625887142581186899177844169787781294552704605416500733922070416695255858543322566619601572192115011227899049756049747056069462391088674167298924356608676535157886176082106074373164113811922887364792724831929604346060199399571754817169831059589647791202036259030702113021408958483152101499828725208784899426598444397753817716276099128093664978827743510186006306295357254297185631847678004127013086382675835571424285988220954886208704862956134727920423529499213179738632839468792592294617921128654588562741791094219247465309238716583676365281173273419182399884746876850224831836505848461136011651898905423972811188549300170295651434518763215149880003328849528940175646183241399391400276997256816662437066044387376744561687102211374824269852343576672367405588100835719086371590101073212358549239193088238518722500097437165619550348491804527684107234860777635070178448299550947496367026068793898297563774123509623999574809344103623827249264650386045213458506748953914858375550933892061892606540496369368319768102584101934870967556658046361675386652479302210921701347102548059047336047786290693805116391259208243679515357723402213750821990077260907304424538564593450965243318190166522923991056376449141390710979433952979560334153045026119415827489817834112390088493083359267484201851638149902597951717295848169890205557015883073252624658602721553215718753357124160790796606015748887994730681384824064022509736536652285594602994966328266131352466807672026049062950019391218303084790577285431485772889613503445104756834677074538658684258292853652208384958965083513244186039863505695630544064086910067051806612992079892473361770207408804528406539342216661597488039825427212524307751371830570377756259433784629139468801363459172381139578494576823526814340377910610128353849655961701341372283921628595179786998099325318831468088960716584828833539076957574443003899215626589700338773058390681165604963519800410292312200039545031972967159262366647997521136213880746938600483839652853949452271105135460130417755071962410525937103186408430121074110557668204589462162251430406845944726341784595507405819881679504594281892097499153103555516361112983383147104452594953367724125000750789804109913038176227762062069789422438213897386755138687599036562169299718480008344089732023280732703355629057768051575103374025840744198064001814199927914418365534129691384744714651882156276073621752504948985735702042199010503840716347535226425408625400862927035981936249372196298861917624425102946874034218325614795291541007415763204772781652927206320334879751452835273484608973321078820754409728426861617161938988903145873125846146971401896628734970131255923739187956140487231607894858570894606900206607885187240849469161188044354234321549805376677285929190362162523969104951770372699945350606064857199478174203433408038076091569739881750133868234739318529940075234698177431539984495905329945833033100855370202629092842627082652053310764962362390535772802904815957400884159542546003761167003259466918945049348922698539156165222310049937229995272164432158818995001807821559601991082806785829166850683431501258421627327242403338905067451546556184431323282837375050996051650442991868562120099182758877309603278078989641892121236815611090548218920183765040173107808398024637293899679081893432260342412187274877596367173809000312701331023485636967718969120606780032143030144131168391926608493920555971201417137737833073344556334964828617899626394847873433067018048770620454025292601551039989122479479130371655720905233322550747156531528643763204608759496736087075574522328634372343858760201665856566066978180581933711847775855516348852863984406971051735589128939898251408112088676361915089076010512535573655954539930101015093929725919131728741066931953720359756562962034894762058524812265195865516994961500673058667819906239149847467814931648470847723380325719954300502232433027516529547572466127508772314621588321639270626140008229927199963311898042152846405798397334145025371932851654140358220938952346499723764197961565015621395415097414621185554420614974643853485197896483839042716761693614460391232485672466009087320222182458969970512220424141685566431556178291103143168788648181821517519287223613830426331107773057723954303063371817097751880048423367627365904485604184673651142933730960339162876986658197301531964728262261575170626027859828037205235391995002181757412151190246079126086059745188413095013410977861927149124270295641852864171866310347916690565112567559668282457914113827087613345107182228220766490387180472217307747797946400518036074292879632343986580262865777538228347420315469052689119511598292796389461692256800742255729606347950918652112865909813792100679373311260317358541291111434126717611989571440818896464696642446960070124238913005499267214050388598014153691004430700515985870711911882609061818468371003103027195425715773118265388912422291476633579444298664261436933230114592834706982913299895902171792188991563101449449055735589073642429687414761641142706383092152654982484644337577047908440284078238346103694448105381702200527354457436922913809800821733956753092086331802797532852723832758009395026720533751422464262469948957056189373355976501170768613554246299070380303999451610685113403100733633991818059584488090617178331667952699380352106812788691386944070361495665394274039693179410786332584145960887056394674961360231643372952352450316357289409512407526025860274071887505157450221615734293976827533215651385259209672500473838575203991608336586718447269195594732474659304431386766673830278058017880036613106239789383519887319716791813391200619233423341168205959995444458730204391630590593098045354873106946101813732221065130834353269544094849028784642062854981935763766453183752453937794455361610390126925664901878197701502421937601397474444688382977910915626642904654214424071574301391710212145327838754510815994232571351083130628601908446601025853703220737085563924983228452987441370457418498100162237858295619891024780696150836749915518391004592536497768702348665367518159027113277839137404796548179183390183545134913342700253116342682014539698887714996896467677100549493950149490338847742575585461887906232060512953224458654383710295130259171092184518423691933763051394112452380657794871646278124388310414373954918278264765961345173841146233491812643076592912431273187836141730320554289780629898553233926132237574879015569873850552566244822247918673296797959307865122810566198371511562731634585204131715081249073179870669953705539991412624131346358960859261125369438835964682116427589580733844181868818566152280112469470371083029296503246098738819565158649558333983282102754351843528028486946114944255798791465572788095695899095919683983942930383534450018664906413706350317891523141884809915158574445653850286736516463834950014461199399592075923912272663467851337454133310580351495227856092714347519667344148892537217836097221550582274480497890081133150230066187094727275421327006322152974248198604927678364616763515822396537513379961958950794448402751438752332345202061793596815917653891137420871843414102787682143105267744321279191519310337457715832140901040346630503322335573174154594619653813044559255101178693754479054104165627073528409999864034486834938279526878455920500238307683688215619193496948126951227193326957321768163822452455270952772627523840597060054316478297700329367877574342158845279527663063849949247769919426570594465068023276456056604313987556534176169064059641612727856905901917861492010024718999303993161532664825092033566654655295027652829622222134156231967534936709352171936438137046736723842879108491104526895793889031336182206389212577814310590429487285448719832558471534671777300453852926147374039308496641071394633298222969391740594685986364781365996827855091650614595272913361231604388362372337270113506938651085723685716377376665845069803152512907760442397505884798710785026460565059124145310764864708307036324253043493123735536932136413866632973426566032077662343235048275346876623150323590965718921101821557022989112078924113602646260168244088299474825082917236166107339870110880209215929254524469469800274730555307957282774449128703545894172763388687786589574997222033265668855556204504796809273462460678951188428095972028821000041025201283401061640567186935844683407240787236890053779097900644653449424742165587703370480562742293116591338011347709090509835741784888299775267983541688797692001061547071957787048989429797641402860777335062094348071634593260103481777466073917023233104115182162526343836506391484024023858460227212456654767035210095104265798010128359964601991483073707935196292052256235337272383076790121234369675389888445480276161948438944233134504431255821796648856584788978428888145174445653453717827170915765410575831067464585407198376011655352095678182459512641421674894534073807848184707009597917771973219018525373238392834790024546624602361338134092717700637846025376149199554075367860395111966363171285404531572280200015620950828790030850299115452146254000554511734490299514238204725883759326183141379925264827235917687276321740246329837647038243031988947971309376864718829392233969979478521309590723076435830743653939127065143886508434665902474327123514478821804683470616994409543865289223715282726296551244965052678040536949744411674328269931083807817642443472901988177993877593445359171628744489616888057346152247491655407857553475862680612850805015083500340157229047314678762068712737827446673054158302811980764663518191164140807633144772143993416304814197673265977430325564700836629120190292081327682973556902699645255604991496059168976925463529564745042094416653481890728337205655199960666344251912083756741892368479009450037308074428552602979928448688894083417951846560061122062510724610769511416088844124903111689759228269946641095137175444643471146493176419353593844457220499511775306802252731333634987531208479042085405001166952633203154217606552699682022519815091914477039056089536237828441172365095187981086796294731603449978533219532391437037520522350483412540239505736529890483367775746536199788580720732952723999000657613016455497524041325687542837205542987877401132190273488239965299361800127985470076143066070416612102412006016715182982233230976409898538429687575805871894293545472405587011211663380972221996663832165490986689405219942937649442188853436772034722640045156855702348171573699403875124966123804287716753065200309189167331874180252003034805442085420808919014158345533897603425534969753644882962982144831466978909848721342172039356834429738299942018311905002048448647273476850426581757885195082251397495563526582893648725671471566374875527834438993060783083178079627511150891173819848565281907409118854950661010120434206933310539324126236838025982667032995753249759140540242775844192890858110733120694373940289401508101826861649588731613007682319332285795201441428985324919251528717584382864503993584827139735744115675590549879481610949121319300232883562610539147924922918423406515911831928319891135018696084084545630441397555570159592762124133248811201955664214526267393410586981467051480709732955588937984397475988932797689424168090889251341000651527841367353626936503917016399938442697548806395753864874120262146487961139859170791279590140294676088387359360361000320128414218553851909314763427818780308051456779740658963159024743092603163355869803530004885197617660662250918276707556856604853522606791578694632442256830065439057391745628294885399322877013487069103218124765591773894781531058749670391385246577667105075888261941119590778383971399701860457903145987524884266114070265893397582767114331389879431851212419661044857337058457433219465763400707226965432234168970353936198146316419736537527977961481188972619840538686534687540609158098023840168548660215152466500106567003786833345224245023000048851032470906892509810316189814999139429427070502716747496349015265752506250875916259821315831244675618941393264199405943098824453219134242895021680817142923676359377591210387419398160400048523929470495001833627345880809265235619341583135995695462856781926236952118410715180766917108088493376733674544346891483236049806795979710849457808594907720330235415474937535319783356840501100318613882074008315998773929750960790432233906674121983991208693785876127279020535071330184253652396448070480680361036914356170358285760573706607116404934948512235741255202485664355904175119245165624346967420764269684465056671456823765439723898704014276493518648141066771807835551867309304099463140610862542515615572405880700773325260324221701874530276121733029417861924033672552015680400997834146786945142500067689051497936121172757928579806251725917778695576762760120802133612393704943601214477059203354364096318325732870935446445555671328775778977557531840014842924419768438780933207766823306413907950839985476285091867293717230517557831145743374015079874985178972426496798213622890912062734129857024960589310313676049241214438278097494196490008202459133113835106808004311313068566245437104999372395779316775804732508397313255715642111610805581083228427871356254553847647310093843416252707987636938433299861436494870552972484382514730990361392812019636552273907756786863267360357551043608720143106604187945493410981961587535526870645155691609853660987612069565507911558114334408703982905266982974898293092034154182796022170290576997007157979226701573256590768291795524770589752074202202902175828279307099984056930232776781311321365961184409037649021410459019839410359386372039920789923511990220815560066492385468558746766539145906437104434123566916201768961940232509137188450285134299012034925388504283632516294470814290926808083192974214577666367015250511438623985573419774466690259344947221274169255216052740182978103970007227249684820596461106583338073019701764910318594906306164107514080817809371440643072773428067745144674568641826460584861097332021449687529469128643562775328911102546899286210705889814766332487329274830492353969786464208685081422432006854111923084866752596348103701798938638127836925887475050895192780708106352410573503467854159954149222257399532380045947180931173925827412957931541812028426843256971785878202138893442124296967732181163933881280596181443595777365734324325926960802595510075682735952913406595034443552170383907580223554666157311901234720238993654934372889711238910356899520117568330164348172475870763808682385010657975011299537537787238753453815620582361985715622590592262357342825858178954748377691118585937729908587739417603127726991198783841720220692777007208434447257751906158982532453718269980007571736694039175723274341082185962080038656094868038383692062577043484660944383406829228994592614553413166040865296134908968732023204487555215212890252331619508550982210151337450065209172462936963654892198910331289656747027492783268636760440841219140519981026245102159135953337480279861773146347833923061359785625844013444558311392260325535419634793681231068292551634218663904901446383269702459610876180231533958917951394639370659913764580492162405412131574339432873809181624980332227160114482296861757126949945518233400563855489363503200646257206514084484108261246768746091207901192308437774883329689058353702096579110286604826831562722317434883920619350642371834483547264905959855115692827552575371921280232014463795390366508130316084826077057479254053256562650667063634860192439144694458625240980709186478907186381217256993602821466479786117444160473643833089090289032839998449895822628144611994284110627567334392998682960683849335161110715198650762403913417508430192341076282597190032534378414533075761398750891700965874783110693838055305585985651825409150443878629495268119856532202046774248589558491339398572830888835729931277512624117108315247983833167361033899072687303309324009686456179382265647999168886619295381629284523581410055850693431688333845447515654916419093285126755419695155405914488879819548881164782646476431290780494880705397831182334930700793137604911254951146787841525524097996514782246563076887792169582326626190306416704467927944210415574163417965456542706226882860062382584107353122805477877474713394569938248884872581748587433894584592466283670195397770487197582726152046435603046934639673735178362078438627424511176040683593547922712364303368733502969785630353643743373051845169614279021239058224375575301064923234211232449139072604182099621694780461679316396179968906978580134181318334629755726672743926872865794738872751785082556065216261526898896107391877656865288661402958973333708723577246547888281887868333798089310006418959807303139295879457880116845762194883679738363188261526924798425209625750251948335628819115678912002443733413393550301669482352139614300351166609260021264173911224618944831724477946927277046620249306546574645100269321864932541950763516202550431168602684476214228914289477403725461737558675076843123630919118427226477112040092296728032699238098973739704128706378520532196244440149824461196694334476768124612093302800769328256358892323301288991708283070005894083632062494547125450001556791676698279642310111173506755791891271943142134528388906288107420510693879172098512371543993522296022533368842520100792117167498157207273049158031824541956947859544579333979303152015560320528627615953425239713281805490216932007747544703340794834837333256764873793458064800949706569985658496768191641908544424443467705750850243777107144968694443502864823627798471257034047792548522396347039846162621995148828418221833886682385395764272383056910639180793689809332907441941894779768076564384555042468495255905044485556560453630426003379474753594742969153543901109418449938810044528832353216163846792679006861523648347789083569238973448196933266383321959928474737689296952049129678154546869712917764164962485364267881242072773846753911318146949008252608506225711637522573326382332371574294065191649443113983074761332566745914462277420191115074998549636864120131865493930872441219635964370220492347227199605558682757622139111090784599761747956998427675718603037574330958624949087205853389830647221114965590997588434888636648016928977017822573221415017147887077253370098846054289797558688754043918478113173137922733128842710691320860389503339790073517230053460350355987491988855344604945629883909885213279262158668137392926551378333757971118915906946528024330793856009466200365293143062414518935811216138825009059414400405575453747833116722467299662568928645824504649811062026697126546047726652280294305180301620188611270145615395439890327021394976360576408318455475537804122024374506891293928969386797940946337964065426571842842397100609253872418632899202859742407200146794849664813897716810144366245384462506181015086475180109365554290641477893248347554377266233213038745859840414871939860831801198910875842851413825048966991536892539489495110032636957094757023314273017106431744476761219704580290564671984413691217883448343573143939113182801264680667080940741238672416834757173006794728174948754336995340645862635277297040999908026902345328973950334791288621240847369623858045165234050242527894140310071800813479491894928032796845708414278808878069305638918389410838862466712105561752078892090978774250588137215160621838439497869717726267811569576835761363653488013701138866725969338745811045615874716207406504481400324570934191041211652738925105028345874722386245347902975490930058090033226637610356701425069570109875459684360533218905663764105024682779757982217395310261278181643172798021187714123386410476133383112570035242783195515658617663303749185897577531530751308294093316395264275106316736237853197942371121082513481128564198363161956354386468392410263088977615273616029250139827683019968508382382734804571124328122770711562124730728497733572427551940380993115809325317742635224271529277099413403182730624292286288036063385792350448476709418845637081734330376631260026725825993410939862247865822583474607407845219586115725544649817071086890004777974112547976039175726489971620477937652592722882925825779400017887016150530237782579150548012841470768414684421305075500031767994421714885409791707877205348387431180392239887673078777002280172392311570767861114484217905646553432075599434404434677488550636776668070032581902670352642087450075361711531596998642358481227391953507510424393994992173780721655170705058561451586813642279780737650598516781184056803184017480827670499211078786613812225630645615626960523520376241540704995511545138261441663575902550105806698103385660788990990413475254216940610511259617747808060290788952132221040691229171827597918499615034585532411139696227752095517279453907932028957397458207596830495907704440478874971091446372545122670287954117554877806112083076063447858862759530763376061917150341336656054766386747752284356236943936801449986981109188396647454570892153876434968886207120368887232688508836907209716147849784994774000427299290534083058399053424233812353010149082021545975755781344859401949323106962085014178358214436543182034333257908116575455838038729769564408612135534662953723050061657074372024878928725656447960339049947493143118791237773234423581577308537971919998644570242119150212785905036341501253881334664290906650326482459274952413828607841683484396445527422115074183195342855116697395939084151656665036950982093194387804660479984016325605929401875518806071097277512744922873739665817478534353060168304768319733403499034055731558638879818200203374419259092511268076259840572559604115871101306520662584508928645087839664556859294990492949227771174991985646838018287138126373866470637198475442662387107772417685064016341417346058138064377350093902619798061156330459841191752273106167932050839153882261715740876198085515080739501180943020574894664249514580162754206210948781439165998690812566758860311720398145900819588935064284932872568276085238740335442199124002885442415782987998554609922741980456031709079095447837502531071201423220698543643845269554767042245485983500341887087143043275923406004730520003874632234530526735578243672025027080998303392615898242156285505761680909547893252682901293296993092909481255000271274372807890503019681507944453723352683486394487660779365615100809110667694383435500900112206442367422669291070038382604422048815395572393835549301902972187241798506988749528451701219716262012228779522203095284237293397508376811326606908269055386823633367206653753627110486581111985728837121131460608991363805958214249390649227867208431456960733780189733586298730558426519164821435005028638230706891045725032831587209721211540638723719981798584186677286603219906721093648824766179732679842634332383803385506366203908992008444262676408934926086861174664168092080412408788870882608044918153921074630864558217433969447192214456834548664019973118344284204479342678646954740146687959292105876829371056793908868476712905710538769413300611716190343121818034116857353594564466830204848925137073582892585131979429850823912649930216955841567089530054315102973319490257618923347654357771304510338497155068326457476726503453772056068608647882118740381676392220616680376373457747459446055243866136476275898567635053174065254384772031294922878365366317925955829948127096729581085096377571537969196680163801791967266508096151037027075961127710784659880488155432656090625363221355457687666563883631582734725775558957467145524629178443075148578150688465771490246212677637024034189898034806727486402247091509313084424774060471146955818891791875810341172227545990786457023940844688314818352378103441933677732758812035172424887961202974690001797069543047920735898594258386231715410544691716052906797991003275136873704074706336985521744780200964972958107722546365515534009949466142125211852685217854932646598311939962901043633043906623421730433165807611210441584104956959795942577263770531754704006310093971333728648815897860939713702539609173674401457037149143416000269336677256142838179198414908600698338004562372262152477231675920982581512637696747353674881680248377585810245820292884237203994973405468366898883436737131894675915890508158055172644565383846030826672629920800964268983066827371297999598103413360510127011405067806765024053025037128873694117401092615241187711170811904477768310808854889369579866505709172676756523445911313219312227386108866865400815542712464635373647183839956271004227475344023092643885043051577182015978862334109910865742610877609073123066756002825715330288340465977101502444111505899875848207452829894244670936975102092395230052811321636201705229116488814970049540236367615144452370977279892909326328153897955638323854259916207594165878341508937829440654137127215706693939103778381774659140447300540918191223095393166768555994537197290103344783110431865484410530302047596644780096947542053790170670622310718999315921617012373796256279656797774832366344165293684008031692630739253201095740549784779454448054137910107884068626797687097884107095323593584967014925806405164579898932507396735110283777428165560380038025957350560834270469525374090780665913486169997020716272957359329015568360919882968111619558830744923977087117730123346893619996596343456197063509698625896932132397020765950549728248137597462617681265618237817640772390685531175725111565269727871907200351374279448310766776398671194516384425493650780649272445357519647787676985079858622294767979685582992244023936735784397456913794458969582093760454606302832141665521833551841729283422369653746527527980413033116691698297839041955163712000322962925834307377231043847117120062720031655730731289395759336102572745314298938936198049352729044409215753757489016048443121873469256337108545699717538045182435786493264394856666399461869584286339850457720805875168424134286740747858739111022149278869804530261092615735997461964285347307847103135389103954155577409343670790054266191557559009699793267600854554590374793455250680507856159857945930847829342847525597594253685583756806422726348633812117689325520713585373268149878847302002489545174820898972394480356661737454250916589770719166627158805577101811995896909051157404202456481902268442216621313886438568362640746652866132638642554465541869733502077430930581252814047911388983385968687923252939570802581952329459867884976498190139653714926109040255461058489432778002060042114645046704196623983477495955964348472465457916023693561090787865620393380404497720874944499739612729740754599247327416954080743229108538102785359436387784386056891760714417740395710605645493417151560002204527162961552818912390349455968362675813172197567948045967533806643938842121786718083310080615373355477227618881322273208828566186631016576479206038644288796552979247662054194704563792929284385136618711404914892416332256039434297783730932701471701386827028264201296704270851646082972512059513563768781716808851866879775974355169347785532873509553962547528894888444386472971634021353532130054547626965782265509942258154313697920511867763172043514188863313547123857578806649070693628472593709311991629695019317004439779006674199279630221062369167226252362214436144058649015281800184086375010341935694968377672850085752682687430631108160367064876904026229777861879158856258032047687528845971255586953720586978918880827183964542315347155483124777799163841817954462945631351593427197499676072308363335906354202911664365110069637172623817716694526105749559802152923337052014198805816081235329784519652179324048436149183701436313701311189936290732141240059537672244000958076492726383403909070177892015307495220775447423077547376194881618027221261796459169300876616314461146977750251894809728279138657814720718983244677204906002681543210054873580338758192747604181834925094128852916341547347716746528264384107823250093511735195139313057285795258277633940268803857910489089526123995580745623891638112282798788529399024746161607229900373712453224687232831851588700168366984602478479480365246733919620061603648163682057633807895249939717025571064921139085402914669600339093426403056390523942445305351255320109316806314982227638393176161412820785978035862898576268228481010823433347624434459879236891343441455818464773118380187955110175841206705641486479135896569111544698947190343648087528923207327706527484818134037805707264681551712976686519398277788173393821801343376570828393964044808387285333454681122034704969491408113982219127489041909195144334483351750220043675287754388391305016831146893474344362701192803971677466342475359317317806148712190260842879812079919656502489293649272930571599034270935757425031257938365861450712759154898776819881812379638559052345725462063189105026044249342552886614347644715833147910125797520051440791027487940842400241907078995947825852797950615546556463033427131675512725944390467630565751239210359774674988748419311886373927707599895701019281087834606079457343735391220183061717631097572579359187888012491179219551203059886507333311288550757528744665437685631310372647291967288010115616947569855646937364618263427856285542455948239142765652448064648859632696428990039906763515169993216160509152385591508001571685724448284640120557199096373997866847236510528949979652515069626621020313851158260313622670770766007926380244251792636437921558126050187718567824471427811752389308623451134490440881045781496262161905632399156656039263732035105796444309087520271913321250528452721148189973501979323385290430365082812776722503338226825267357141367946301481777291811036094344870607083276143636343764368465460502983917114608723435729307777019670016916359763624865433897074214971034237959364956295844156761796029469839353248785976724453504150791610840198749777608582388770882529686169013148909421352721549215434025864776032237649616540222141676921348525846080807426952453926495266239805602035337278377620505363806682485295964169806460881870100406039831697238458939515239801467115663453501500449211366967476977940661178483526892398086510575265768867439211166144337817835779468449475781656885531124268391562518273499640764598146718646515948519165740506562149396148197544527227689958305554649567618379267035002913198805549921481463026461394902401387440017315437622698871243392152306517857113824114690390645240761505245183932246320291038394735367117320711896276600118002372458346723765911949526949320804628883533346095687046090873467720477743285562165612980345281759973741151708183249986945107605203721134598353711059303796152658991460472640425820901657251409086516018382553770818025482032202421565359619211548147959268724299037245335279120050712138125521780383947204653940396132208559356008982236747086385332596731035523564605644274510319594078620125545581075540432573076353106652035940991015001550740470528541557089808617453954654939260902122049221735696070843432023175253202800905448839428887358853438772891449074449945251378494800452741927715995920284987820798999559301961957915039992919471036829924726904624536213166932092940885100589958749504410269535799246906343709519998831012135855744960636343992638790326076621159972731541063341791380048028668233568500023469573971871355907389693835762572748821761972580751404457296361464223671351627196030959331465786867770710662415642599184906618245214043595538842833326115925020433167774077615459055767954810439103044298428994639047193224331338584421434785938458814440928679376017553595272495538503733218171811585632600704632908546171838660844499501233727607779087378389243450938987156490509888582136601725229337277704725949969936665310535934334454993166573794189350393808649969680512446776622560832957690973224346960898538923213716890667322768291243253763707896185082336397374286562778118843078917719110529244614232347665281069713938936437930767688349813400719108673870883089473951908507939368207409182824802979646747534620770613741831835021537214161384406466946869690682929855506606917327066631817027239129966630128015173824872690880260016548559680001813026604301972291153064655858078523726125975609076535893567821743986840998672261442579950785159388674483332981558431432240370929417506092531202111681607522611187023338087202613222864311516703873755292711205960119189643838242442113835378005846429435182519549520751057328515332359850563955868038756841160357988215448909202037592758010823928353350936125917661387374334486013054389001448092632166789719756752938102832604517628384863039511536076210509483283809505049127045037819337626718775947540149006107621298318151936398179356407041881398333573147316279531741211399394031407753281658128792728504266014676715275602845407879049135626375371918575905127124671842347093027774696517071949081191107699370756470331677363348668935464959584398114929604006851760254307933852484879640059011286034470957956121109659444235715446115867456117055703818106540724409614027118579610798959992212357027345257704032005233227959216524853065226097466080860419981529341489548964947710399683609401419497192221991896841239553780168120767096817112175879998530704777969502531553864925620701419290763681557074970053220694510762390471845126715797674289616148778319237054232971863382836661257503358695201145060900061175861037287219515284131851384901071604355200415101922405408673222089626763245093547668928363599576300212286257079358726332616371960099173424337818220314704156239124329182378110356031969496939943289663877189417574385727762998822494588382122118209364477916164203485245147224332428679067484592817679660222695351180821979527805187782911676327003010744248935625829651486317581067698949944859587406422019016116692765086336141778641809326817341405009630236231005204483570878840950565957578998961624261709168143068520132041921455893027461238099191262949291875702174731088220314903257159298701033544965093253744010659820142838287740915766746044408082408560910467443636977643015545690227038252987136277416273095030860645271571631787301128380077730282333564589446622045942097288557578490630091037102420342700568280443013199801420262560279949544545966636179556723676616886207141561578993745485974879111768013592745425413221807566388737840713427350523593385619711754013777370844114976212857263726632063942798366831425491253008789161085046481058976530481437094785352851679940648732638877641523445524652696887054901238619617658349206514865867487888814223248641965431938274067426415986561924856868912380048538664831432152045377276130928242333815246054762553041815013006552291305988617938408491980391203050446201889641235059567448972089972181040301247210164790307112358049606094823704565319184411932463001663408048999229250461330880549936943613737413043675926353964814071674154778161079003548000457633911874294936631624678223354028469710456879535205900812784196968811145749318232623522174365817060078771529267258110708464840237027342198965927217115433603590889684348936945546239104104046137403476276025014347114561125551882525020982793487754031739655229176295621038385856065370980338294874985536201770781450773718052012818674405363302867546292642065720436930349752231161136541380417589847945832488267623142535559739226637190203520161844191659599813495915658614835418355255495098751494812301821351414406485403373043677876157181537669539428539489226968339868175461652676725243495392365517472487405628604962496066633331572380459384258645178302618876091039650425638899070542217021254901762638384701271286089928924030586294338032615791729644202695650482999234193384029797668118572432593983784722889183005919698901575802566174936309003621921183515761635383617052366460774073621591272310334012217931926607010466812090197388209093459679663528670408730866595601391484496404822328505523097033409922311578455213201333130589722431364693341448232531331996224838512221287498839643478525267310887529670351677034899697568603957876777059160391715856051965857066157231258671578394587339537525150192041227883994180431544790001202294943855883083108135283756772392071524639132635292928788754107610840872900788327539326783245336232068196627075991702966748419223291311143519873258807100401462659556502152130961516698973552285979461435645660115147111162013463466001729161212705894305887148290250501022610299868956396531802407820604153995056544052326168381260605132067109165620972162141999232107194123647115360173347251078895511508840816751796861709689717915574221087341761902429549581559631243946716983738226364352534058488989518998630361345123316110111628075533905718527856963713222750961442841078457418314817540926149210398611436563370079236005757268887374230667412975911729002994890540590963046011930381751066055798665420068308695531805127214758377682801821806353258406637276470984164482681017646313745071665858069035691835043255786004100188406179086654706174057779772772553571584234203070984139240321533038499948091638057030358803944803339420227467497465739302764473645077825588614843844002820190481857062899986472244321090474144153625780380475037707327252945636457720865246886876000908837402819483615633128337351013592090773404415182096753796886019298821597712012724260322770265414241235951550250989362077495485306646456033298969473595074298504145690033987762864003220359184785233946273288659253129979999078942465172305004812549166371172712158131202617927853068196022082580760055765012200608223296727215560548150839408218398376139833482826457860921828548957407112352568284090896948685346922243019507542507547126711756357362487958400826573863526483895457461869795598001232942413592140207104653037436881241618315963298414560096724011645950776371868350086667259242693409329521234680630481677076816718425112913090408636645486645419569892488776179174305160115338923471322785516924851812757497116085976187910642664660525318272026958847617785682310997956809739632317046548814611788827179932420880945466299440155795202472852822751415489900275526218581837946880041922994868199766852979717248925541183919110140349481987508037674730270251481908393859366639009816613796836747318571012763896329767331467975847253796582297012682030089638095699445229755198206558986650396203523437426367046061892025731443114202196668866140475169089534083541286240943503565982212517358803348406085283769784935994516763290850211251673991506199284779562378814493145870032431677517047644612206135323733379701317100970471359615157800675864160031787169622959403902062587814940683961688806322208190303321369026615202825968831196082338398052451237050282950976446338653892987491734705909588778021600313434675774577634594870177500757510931687431421648363739343214689651540883284632316388315851736517646733117122451146686105495998001791014042649217082773298087648934816217371309333530665414319027540872758250172469060329777873383208878203293281833712116889623424493235241126454210102289731348547709229218011976271989503773404764329707995173667959488883253741131976100300347692538638389399537684710287392069498344585068980179973636451615573239752157259564990040277342360564046718913905731253965724399664625941411395536609974899804237389456763887043066903297059343012064086030853990670817724498164370811869076163430256275230922285043573114701493581694536599920615695929238443304787955391900908048138880591770672200201587650182634358070709400723164056296135714885846450045094771629787563799873457588863257140553451285334164143900560654831945963634931445732511920760946411096863857581017563504607539202603123863373715185153737131124815453991990767639648403290715465497424842076645125502903285282462242385820878776586969642909062702710569198304227650336293515816656585664337570439951084217291030207182665374253907425827716818544598702252128959856086248620224274057743906110964816382421007622987810880163117766964816070611266399716524096114748802503252862154942061066907874589378932095695466124832556405997537774783004992127234804615110677942579780028370545315674331224563640447891786019977350639014306039864099909085492194093142258643797816065561906077077928792853806546452508381886126013286339740997823864333172582682758588054674198489480818350675645182216556830003947997687804954005039059998620453542604475509841934041798140677506753800301565130076479238971341831864870319212308891929842957713758227487582067663863036518921065921078425232548212334908596633873289268130990471853567226919481492048757968131833994470834371040329935703165149261724448901006787787262791377828462974241683329977891036695518668918118913767334658359435649880768668620281409674180288347674893117798785854045141746840905651822121263881177033852800671338537298909732634265737579356528640427480533724754126076282436195913637726320605376190762569656043029943163386423487903236823320623415658495926658173391784569753349254858935684133537931417585088505569244680817293553872589107981661154257226129944809726352337108278059302206155962524511469174260401865174622910595796971775080446747188687137732677267804421703137882498115268100411371531070770529178501511594926161462350342664438510838573768576659847270071122107070594149875152564358260019426373990080139213431126540780851515911568234210969979250330531682518715275184006714899754633681073160041614656211344016902646117042793266884174210245648951473632720452706391576258381270225668954387947086307556814304135841876778487691532250638201109427959266963670765516179712528527494378358431286902537209399853788193759774648875348671401364973985305296442020227100534271699091420802735009089609581329161065019145627742301739328094875207349665820016325679872598475224096080402427134321406439526735231568526829491167677332069931071671618015886766064740153258806713704169870821177362590167088467236409043532233498132058578809284032891831827362255161563505078000631515016879350768206331422058641562938369432988177017919571435516670241257152999778626329606218249394820534818231850774459024712007788837363928234865734930299998429382415569822742252230490445315898249596681363255554674885660458711926323111010348272715667014375577816509094480981175775998232201737088039379321132298842486972955182187147526944734093196154353304185070622251856519252245540969910930153399134002272248860413632200688754398698020137022188375349543893223524376402146061912486809467192532765211816879501396815912726976721812454470056407388435774919793288737452533645199666148316741628398487904288384621743239036690594095382519915690478498294320089816819001333269726495978904216422283464511468023603835450152240318043485595860907252465872025958483400439906211001040720589093976089641876764572168239766391074673281594248696002714815536403780571972351177696875238374279299642197205376643240437418942772509154803992916766217797041581801665443513311194476334202973403839822207333013316438524995559354612893812050638459547545993010011818553102706325759783587437014152549898276980670293694466890634790725548468396645183609659132949039633571425202748057074052147831726468907569952567063674226922296852892004871342744658003505121508299243236036409214677342256807805791063056756974635975638158800241586308240736909300250311237062404480401213640344105142975541015186145200324047305711381121920384523823194716577870809699221573901978165826379102940434638654140478921007819389585785612481767904543914990710083491677761166989069931840736627951176094108222913309190395891350172676011114492131489306196153386490546918434033343080561356972720615421763738082383701577453055732110790503505551275079175669088877695587027840611225119591712554289486154043207140355258142276486409167999614330149915386245128603087113903158342028086391533027062572383036811307785113647167822276873012271648525928210089539351424118775869956950795570528227224144281336190493200516243315476525196326198399494810922148329173400045574463189380244424328930149342702498186564452783414272113199364639818312716851315594865662066446096262336018949038636586386312026284162696259746602224556260533153772876031816515822211955836321805841831598403120886305062987542066151010206885161210127602792474001541267578106870752777120286028544692426043287140863926870103569166933090178575361577587982774117251318021813868073138093343006329013385480539609656822994570464281958769140245040814146031715656604408751563407623660565909415764682558242084629881911963278097946405803787023676319292120310905071686794049204874594841185093760029227742357267282700608462453872650188503993537659745479796855559550874291399965135017920434830257588354849864472676120989049867641828380580013668438171517190728244566823501171454948417003111114640832241403424189439288476206215902792760924837009882086322892350709307260801409178821429032648767936396856129107269805233524219460240227434776807809351650292980908928558249624216936984959011724237603188577550618814895619701981097584814454091495517624945373384391993860778736818599507893551583386852428827915831489811225349836044715495208481398683637763146325629506892432561469377842108645066471698711212134416646022406804583880222665813878570479521858851646974888960795038785688924338773319855269949422971543101218068471420721797875444328601111606503514574444051259709622378258078005253184767904215591750333417292986942268611953989030796130101560960002373479853061979894632347090402369206204665260632872392335198544711313499493090877941384607108522114586134483035685836305210410441228902230577722027401543655177072730952735307022520736551214534442580298269385668170741567109856493318419298258204709244992161316115272393003342036117091363291413614770572196728822971618845468933519282723024771130929068757490263098654586156404939757735096838510751645275572614887855280475700461103782598390591784374291547182363685873840750064488519544966770744025369171661784116159983128988964567590908426120360136211566893664573378926680531928749850771486635550418853901796868502723962870030989310285921810241676998093723258659797549405190930761805458171320395000060995515734955568151855444192147889671305753962285419105275200233139255301134962237290142349035708053124678614605363611164098053583600300644018245113351036589486411342030864899992092296162867336628487077190309866061622737424101090819962570720417026168370117956998943455690820605607871529979029455169762162742439428360936540429173596276642726705469268504118848167259484540324389517660553493402265326553626555721453189728553769363444385876852576757037514890960559499309764612763027480238386754982580699452497859086439927112806142799963657710502050714163788232044667745702228117253992056771172921757883519168333136776870096975857915719888164685328884734576307871964290156925209319336681173084319960643134504285828985292847071952920404125539550243745946236674083641042236274915151073574081540227227242652873230222318406417394674562325437935781006408295891575676647128327036587475471761862365861262737280381296087790456710751952205003211620065139873784960356930245911025485191237310304941715147192056134184860186105278937439437474045332721760997032944211784400792836410528684032170561366408547507444502221597013005927246864274171686808813796561009730928333384551791019423850903101594275801303118100397915523589469252172186788147979973806988018868580538619757648695202798580274035792908604317976841888523901601056025899031507383358166885722331019396712702854891323368191735427594800232540767741941765703815737991048245437836642135422427662088511007315120413561655145144522512364280512528271906391426564225275735914971252125551146376394521149736806694850343901404156705077214241542148909084508145091324098102902149213626371383624765946554271762628539994131931539090156933099974720805435203938515909369545194035839240265613822544130306040312921235713788443419865001141393194227287725536053675969981284542873247542788468801820680393879719938408081069877808490241911280720206317797424905588705354099121960339049824684182437335954469134401038359922946036921329413513529710973877620817610532928281514614250366546773108104566238168321623639131216447800472645916213617832873091141825130057580409287526657438646936171787868182050808452018988098326913454313049930431866190511064228146157617469292040131359708220747077239349383414946940668400566386361785495617383736554819256905973194666013041874407008719965403255440769600464551141430047825543216099247694278453648845484980639149081769583974621286654432424247125896777152277567648972564845798688340633093001946847231103774753619454577025737458033533126647338151877836165291365298688662798853234453185547810593324639870881773624601674826529981914308235296923162453525665061195986643571909370229549623895490646990880263390169270040636926763531488165339748323328061233227068667367497602956577717478092728417235111450996911624268769373731036906261759728006632653403507115587759675366491241872875402763679025599799534550297359944217160637411255792739745222691537300504646124125753894827572889935046692948442154875476634974127795314922516267999711258388304211520875949561304283575682213083806982658585074966527723712468458048466941686382135224604915163642270992578320610899933741108673565525334942854018825744012270018344592647968291434417741821380755450712620039923071242805261845484484346600945254567783978231781146434303685065869874958646142866529539757681876248393760057307415840558344806781578819414388989707942918102292615934158761039376651266984394069347162090984954653866819050322294605244928225456962788543674321901338073233809120380063647969901556757646701731607438204008206383566701910276135067819131799318218526064946978363199829145254769555417720864212299220740812612515827666747588079150167719248248959672984320633629392673291735208901286138943127578547395966467432529046195157519691597617134350322515872391546836327491946502890542865979892090567888065458051563131818869929948364491856442943668550272316587593550177563826951950803537200562220127237609995709726623764804038317287663609392117701045000662648378596806808415755701901150534406255416760368066156250243349958945539079195984974322839452761915123826572311697520315174835725970663920900348663856794037775495923039126441643844334309346340744471708368390945728659971489328712789050366623367257615917812643791979961572106685150620971553566982874072460748976858664106553932939912584027489924747385582939291177948488700651949043663014615541215362485692787292743902948231246602371207478561957874547745518108298326810310592554899434477039188740162928220287428268031392812181528849406288072795808424485853879550143523401840274701869954412531272454302076114854852573788190708555262105614115243386277380256105618184882146280793447384847362135862511933290465856049972453458773531630839764405389192557337303290697444582530385338403742158168942887609358629690546848070859472136193648960274159018513811256299972750871711761622900634364311534166454686389240146825656333745619429351869271355811372625276857084642829875045462128591730484359561265695211355466622540033651794687596002693652597495135417851919362771106359441816536665553875690212556017490474270475093422131728957361420781784542420176183126267614928822585470444630535390597282649492438716748660314555308826407152900607852661725156683404792793094535629938592763399075083524331273508097684560134742933868609552488057164973999095986697728717491731064346657735948309390573205241923456991523682609437157876339335308810953018058390855510544084749582174482210663533284125765055446544884692176550051620779709825123497465357073634115285601279910668258447487280520274984494754498919466570583391386094848357829908823455230496352952094468387775080843102310266363778239259899933899547445987960555653123764629643007174567794685658253552304836043678991809818909952264907441788049790461024313464531422677178890691665024289698737729881072227331273769809785714112738594915374362485857760833188672575711511160155944388159381452024212404298457984330793642937692840619167868213012997925438585760206265448995499507138974070890796815814643508379192240269094799167933383875029217121542530260971390818288856554463235677995074321553469320324683815233555612434604658034538419767287662952069414954077716094557008647591915272490959391604006222316007625336430638586321690742985075074823423384418724395163904628969453558049173187668311650222523369945995820349558521678173505836755988265279760867991185809991696269818907243329409235359561228996494416353583828082869816908325756918610344092836054328514881329892060637014406951494687643105499651631510008157229232205340975300367313002919910606101786515006749057407260625186634100779059897151807660942969246123806296117591159872257548802095878273541034194530760115617604590147625235606860690985599794658665430459421690167219593746898751298259902328848196094382707009607230533994430019151815337614898560743944005619401197880274168730390827127380213196821964938885833071470752616109784200613566568203892212229368804428096919989598672953158147342766377226901876439964689661186607974216587052157566085946990274083007336453646006980602854470729943923008394114038572913718319151501786036465180136743705503181637218882136390365687015413645675158041811876552267876592871777278313010256621087105685397743552520933797728935722752809725281011818485243260699257845601108074895899694132412329571959907603930968309581256723926538776201902114758927830487653307917471305948203839534742494393250267615085617524265388920236376028775165830489771026219363147672466594162572772078081673537569461576517966151516277899253120842570846210311946363238259763271158802285329385724374000148109608011716899280266018225777903036968848503661529193687319653165340935063848220517575742930058874044641310208321329354135411662346750432754569798974180198116703172443628100842221425796395328802099932720508918730647080547744959972267345986906975840195602144565923269798271214455654483750090298072981754208399847455789287272646740298081489877210024513167509931940787434198066454057757929097916854707063515588844300881594734212926593662600855284633651266908732283702778488913374856901126942575301364247795548420275594191498453793306117533771540683873562829417832551079687304186785518898850842549482857012729633316940963423096341437790777642545349791323738583386975105647602493830589865885380471777828268288534763230403136080578613800753858323889015892314588782055340329199083170176122940100293181102066018919215753065276116753495678723192086012224622161209801402885490156211114804520045075117359204751364510439093090769528151132296965813383131695739904687715821831153930302252094755037199464365795724555854097927299712428962039564012710245922583771702888854176472291497672121414751660546671824054401980001569004320335551478659301845463012721750443342718674692342863778193391909909628347833831110272650249895568217268317925723388276035428274296906940479206156052979627876183512218397149375139499988746625835550862545918235931086558612851454675805065251602932335749154109641706047592627152161896342640005189799229489469874818112333234590469233959679946287797825284999127422218399659100770322075778645880884783727776222966331578486685781810067987317104661348593307293882325003381347421237199476021003168178209047543937255543619594497560243493098438687066752287475143825165115934672360573181048840748484970004992071840494706259819768246349516066380509685494188525683689820835263417043104588017401929137186139868341189838394211434828040941794275021261014066047235640761497154419753778936200377225934469363776159855852750470686734254045113801869347307524871166210011982401917948326998005025931667762793972676426916856784372582393486393622809665594848120933576548781099319725246023953488907197698015893651875489219010211588984475433291124131066326352130316074740451959709096974007659791386168150867779014739957562186077461081392538858493996052608376621273373912798723076847948753886208711335537993968326745598764104407931631049275455286904962475247468460885967613240362672715744022969428127771025237500078028498549997273043753903693894311767721296286469748831344677103497154755866077507081504380816356735759257804245341537406357630098553523719880762418172163130169632407771718930637951868807853608894801101125516061900935417906053209006898225253705332703974397918515041967443398411931039010597715209381653853603809818254569708422895094525105727396768689317013777577858007776565106834823726477062453966134634169899352213211213067285713235108918817031760830209058496197766240944731352066458076214825428553548342890967697835370664138883000712605413359239979832175164527023702534713632990856639185261761483131150985388383951459724706778691269526207647392660818737926192050768472255445518611278368125692524372356521748607925481288462764454906071910237418856426990085186614256857865363839122734815865573160462365906298333233084660841245799870775005187674398630416718838284253530851332446566364444468817090865370901913545880870945239652216956284474167619735602111888278140049943973919457751544733876762329525159241876858928037695634335714900821973956868442485086120533739445279962504669501341523704333466521172222681477636459712521180138599174351332058826933551822467672808944694935909043078876462352799160966178532178481371001241946651322122095156128132199596541514427403303909240985271314360116549103599155241005232304989889393503791220725529631646343534938272820631454272935853170528114002908611640674689101958327889533289318823214721470326151897299651292669961943154244578169172800122871246352907660208336109671840659232421027131795629649344695265950883122406961649079173659940418235793925676733240372368273125385519308200144475441768588779186750224078573396548451506678489560436134001390703505043972051568744438927309162848562792420992357152838341285270205503024112256250125237946504979001881051083973312415268841486602551949543464603371697168175185814482394719193080583508751513709101129941831313221132273502023038444249894832775180104627632927751927604301218339279450337695202467811186996108645567657496002919879783998591595055743442717886865135545868442732687299643315441475282814962507720802117877317052655118791067637487256363635185784975365315108673076154902368574058822174650167683678186392606583332237850794290740456088540311590281427119346744629882433229933697749349202550129704842147038665828681621412406794828848319809635744446889716250462850132759521223404130489659059705776547690655244950083529802218186280737201703721679469869263412860331923264332712619603268924832977421833078687505495398728727797466027474773794177340889169775716446555990097098114583799663871754243380148668868148957653266318348238821826327483543492763112779278672952877968621929290650289557378739116250256136764208695316973453075160245579164292085031113767442053096957789954789741433649146182692214746727558346494850147888773141499835130185834469392719387980398221101302327822901240994270554870853174227230694637856608636870573107010527193457641722305087083135855586288576030070119058967455000614067801496583506298840478719148709653129044195973773934478950468110539928420049977793482385256337222347413226586405336432525997254971223227080938542064649719998315258665604263882953909604607486027152658225999566000111253340925790531205992269950456326121311845099163208767186118263430645841282295702252689559250191476891716514029584900457349687945282740236570093209491727514351348218663681980708556067363176088495756733125002180093440415441800207350771808040821016228403126024057193321707004165053859482025446679309561693758801622265148411106867612258196550574494606229285707602858667911688824969463238839339955141740972310637083745287230758076233033212082833394291344933805229403266439287445832316046587825540325682333968215995416179916236036729022030752855899188607745240493469670899012149295422969363154759191701408388893169041952454915148324740056915383930441721131575063584192758177739376073961838733841310441402399897509071019782707649292528025800704550870261829452870103858233073169097185890658450930437932959149962267510145552444367212857433867198542428848899956824532860092207362176852249047931586164041523274256084229441802197359228395433879099430396953471597843385198344738815567672698292981008107507851483820800419110256938286591712260642335995525321412414360125117369457116077314170685945031028942197755439940261549313181359206013901778577177451104301412875107007054257414061993415063821578203007866485051142696521950996991405244077358957993518397185366528661924577834642678979633301616105603381544686218719514724372702521896935379843136484542818482078795740958462826334883008376559744664255448002337053681582845240051857223611063120902219822574526057155984971626786019554004387456404212157871562093491821366986198459075891277929849949303125671054447589264868402534489640992717213439215257989279123460617588542788847887313293118246699350510807321093021036197665949504987863148792697602957071986333869353969386037177281664003815931755987762282650631547208164294693704003732464300395368602715794274535713807464917525969514342079429353406909326251226402565407555628909808247328974034953044121313238189717392936295866240839772096279672312486282140409312684847799127270638727785224490838026999876368509744719824552954140455394662287843289236060624190940024387701114506281339919515770773019099786065785655001314360321890009166091869339450603808871096709193434368272229417151434960602139812581597314227794643206114322321932418634677889602557420527425851313519147573417157219596268539232568609692363794894093398499727351642147129700421964667353744978534339154128738090863794497965069473297773483004526132835834839311745944557438803308929383722850217737845859991189221159587067112309039576514748786621484847308573660413566366885489647191531301217683770570754089868280400440991263173355593008271757309922889624892289619338163435111987285108728966917561537703634420639978955106600966607831034968527808006990996797417911511552182473686675514022936486834353859842514734516612579099418829756511791125034806657140891981456233364869974794317075993514814375457725209227412049630649383729581646356139786763638455699599864800389652036767105576957876509784687646173135336111856061339685197649698180009068127128707843003181453886885821176680531093256529969426258288217890351978371620770880445323341305317353379726360319323675169165378949225700698911862854211944441460575334578539263267439430594486364953157471772419891884376962306845034712347911371493363056951188446351994190962779374276974415105121505718463259805876180036947454344850930280397583488641861678340780050627308952170624994531033698786465492528566970485763221197370159776699247340599029341375394666626604376261610135915622079945365921885294025417586258791408368391803579550687963353970088117311077104584565179663420902952417247224114727947013363734167509997112732604438982818615990810716406665230601444531922942080530807636481236853030879109975140949123937237293131212406842345325051768653834586242033297331350302234517060713130735095975365805247270231716376403557616105443057359746479157461056278190002017112315484489674191075872584376875749966050298711646245943595289115351189836900951755033380400852908046111370228394932420711835748927640895845023106454254315427797064243194984877539917210441939090756907241561463685314228868445677379095856650613809411302438302251966636472417903938555223619929275433493344547880940769238530379106022615515147409297615817969663476054291831047776255901552212549532006611053411140511566193576873355669073843564930717160045951551974456364200766002370493642264222882683824343079107858839006620790404548708560044775865402428135937478239759410156199010535543730113012781757472894502214858607513769951828318842500179535962810356415513604258342461925285990400143577929730243757119516462093708120574156840600972902383417440585453955851836723383530882298323523189860854729211176957971319407838344603042757190077919390662806480662754325487312707201207107174694664373137139035093142847456067628040270546068578036332795688270337696051774835396460649414450802849630680728902720214906551656879313340881272870230462371535146604672140664793598428923385656810568992726532725978149329735970123782694833619564206114408620030034950061900976771897666242975009191027727767278158875339549778374151890674154692672078697160016222174023285365701765925986771452533174953086266825809157897053049484417442733961447898172683047697848600793777655070207757021269531879938948611686059409532989396941804404762122579354118495431265931943248859440048785275020273602950701429022904532423555438005596274932911611035384161697414368535257282085972931203781951934479850187924620625995999209355581960991639989347315914742805850603162984581880204780775484804064890311556749789636101049419776879990362655116994269239319593106945573345413155301680040806794631594422580347425519536247637177985514775283213964700834006351432193043573672567073362299277130614809939413570953951485816317695868109904585269960673530337563882719016656012972160566568804360183794148799773467786543520823975663272870223583042976521850856893366164296088363683519672332689874497954296764415442842706697496912489125095608243421994343107911216513141635513235973888006165814609452379067994727003322708716186102024607198580175350075031693136247893450703121644888972268282548378617603191481481634940512854918426222907320493834732063389809820770462232162704507499086661548916241594653200915711853170365301150559475664823101832661674540943398007892690191977467986572865192786972779148012596400032516010991771213522913013899018562853087714423809856240958873033613104652444660076670537967084626614943660089554127064154849222246946631019675812165484953884144913309822295899177606533751762162135558386530848291457626146576101906195745326731638653668954637889686907297098877193813478429242930907432784743819967850800328088055669009612327280414269889497394539282141415998722105973834277315189221910565886091404189968903437239880749316543198637674037153606292607460612153907996958926427242697399173756907872035183259282142916791890559186867269815382191743184061924751452615126529574894225260877404177288060034843441536060370400743764007556014984464885338015701656600372406353558152627618932630609633302223405762271263936422885069678203847755747875382887364241583317142207334449655794379751866378002180903211567150952545554075291089237715656660272714633390714209436837173622651270537330196378819434189347052004767257864408969469758387341549207783948528586363398448150790690726564692171112600219722564804421610255677684139557963073735092464568890782877794209530909751147971568748200964686764400326921572959465679166736945259489941577614948796900415516673156332078849367457103874088341577775459545870777281540204292777837090542672286797175076515901432714523510799625745273558418250885181806678933631950634137437145088892687145545242448408415071275190041482340609042876605635679924098188765363172968656834830914615790370227953002582321522776056378546794563848659797028138682194419272620790185723641212636226257261932972080090774055869980915401786985050934766927543490872346749089233268890435684147035056086143224915115357935438766361290617558427780656121939211721657755381593025615858301769705517889996788053394541977122057234853533286564376039355543102727647709852066602943281830489620381254405946534389761517969858095257664300586492624448349590939901475982153170207349292023799165773015367426582114302400990860635763288367218425662943669245534598007590138708786632698886853569131878042555400218449402116878868388939596030456948226405920316147632180759838990337423143872499863510704254204819096513273928325522164513685394206867614329743813956851816499391677581250237789944004852565279066873639119948355701652286050370282147175880574080048858374126877120414798326082389321185574684710986139137607625223259725645377973764735791767041179092507808959915383228867115597340769236049227097900241593168925467050066298736370683819715508887797162899778972844044106683714210594495778848569114732777497119195662375533585811392211510344217545556731955442429144939708595893897518759877619046381326309740117694844934794199012160691928689034683432489509449574422899327801569698527978678743813071934394295271385020197336893715617618908350590829719904005398733053726390039723540482444856811086895327663535688071495977629830726917592824660336036170553362072952015427135059043367996207689567022415276633840217862696545790552567472025405917513148187223945025377534083305202964104736846135255756650367354285322068407390001737726589444494380900762621786320512772496531440606751676001570161890052899662116553959938192360360616365501692223367946591459924946746445682847424780105342645548301903651523201034039695253673789532722278361560622349688877345634574090532755649914393582813537298485404716001571855905285103311475142728880444034259962432270362813305201800198912524174845234289759006985718991136509138517228442934090506758551885285724051027358110506699555073996504087353861320232378428344861478192548374350685384050025523614955066780233313208294231175049606779980508093805771016115202444958668455438211355342067460847788484926482388938250060586639498323975576037732568794298999638254601105649985118343701824778663960282979728524845335447857018225574002549999577075080596485961925669561092634161207177885502950490860226554873427425344322471328246723218743553453070162835796473232876121753671416139336010142117198580502759466430929483997259490891543595942123917560663410051576067898917536051726729145439293065028369693524460555651232827332177808671214865213912878199758983366439896021163993411703464373645625509434150469687753404575045280592230103019952581634611374558102071426795774578637804237612723526397608226387409413359429314402841133859556703694664736497806158012759462091090408999048043486160418389144620327095087801890214678056328303495491602086355764495679434248099466531887277059037603409154540626250835514409722566008543441524615668253537803539223455568895750767446965134784830858883377000163056227678338469065604372726301714297937945747310473537116481478836426494368374548418439589882154368202376909202758444434377226343987608927621710086588698485016630833804821330176895646047581920724989154359793376747411834089998518790965953586360846553220734564859322167826781344348754794445703076355039185030477885687684509522234087962481777747656687205799328465096264593578018259271709644552195181804304616772261720016235470020052426325653554518271839778075418213594653711076598392771671271692511462279127070046723062594879514967993017510975617764869084129464436292617205589130537588363893316347926489982078472694457408039957549654280657760981853211743898080715856076389400293882547934177920744189814895273126561406810900156492643613915468858621027036667076075897278806750076331778533195783947888069379037242436505928405042414476175235149860188916381632444316129994164260742280359197439102244656742479338690709870615422817415479295548101953422974710799053464480715759971349682626081195332786286977414685158483365249549038325829308009419175655609180569637579832457509387417993451806434789820955503216782817746155001008998610508628905665964732287477323273850099113916658856512222082079540364639569934912297242451478669616994126076432866065845716117033023356880412417197600353066091261472568491966787439406590224203619161822503961705900399374009570216472958576416875652570904713084648708438287411632773990140211133753858990644942421186361107235237909047981841645976339049635953885430208293037615010693915975948788337498928886936742412204374774735275124179971985444801015113018710777367323791248186909275637333801354097434074525092795382889349630467838900805037024332760295900233339364069390905157436683317508844977957863213375068461490736704731396435928765390399305351453713318055290245850888121203231483031856503057268691207825015156415922781222105128688222466690551762423744740657713752388364682642575268623758247186684763377737579132131422940338315303965649005724763551390800938487741512834397749979098316640639688658511316492161950182988193968430660903098747916329303940205451369616694676185552520502745376511876629655205082744529767230513626467355577146674679641230060128930423290277972682499258891705568797982441710350128713752983451148637124555441719761309773212177514033013958265795243515484942451422273060706167926335849657004650441613669582275015738868292203778185212346395131440623057552242648869586444657775992048996640313911357974300408962598095869900168398679650189913155836867121156351165634205367601532412255047473676195780347957113037501619076163553742634364885794903283423399361446713281884351082183765817608216046557326116175986754453064186867294518011796141565427256863141327058005289651641960644753983118438114399763787181444490426744679687957907304855712412880356915076213243946014319920553157899369353555902797999741032500619814505256758481357880069489974904674645934399412605760494875373079204478468497392176693485443366465737039506657046423231066782367600196496390998257528715045666666754615408122445466370477801969539578609813552234027427195850806102989674091736802573758294251056484108423228822523866368727506112760695161996992157562051253513980753132754829789624137808654712554085392618650583270227159719447095841645207423970538107927630605116525031552371424388840088430954561990839340686098548096492632741921689963024945314260721004054838377733541705328266815376240519118698835304072733040392237919354289896052599004353769227674262727404089418202341175330963403105282641155314642858580484429558968410421330033624513319970230627918391502714309774119133472930099008404292780668732243804238481347292313080286244753286568881877152471874794420211751313072257645427420348242105198646201808333673070808093810572743344664358374227392920775481230108206680419193398365338830292003494869022657449568431951181765741272805134445792815629271868507039279118931476604632226630277226084886641261816380669716551089696409810319668278652950719794972390395548488892841763168610852992448853259562421923734753716261181959982802704175615632977469875797091536316690097748447675955209525193153358622949644251071332078069082369767917685969649311465327391599374485555466905731713112441843545525951799044308340383034574426386457818485048608520041433667103433932100452699400274944841820351642062534413053003645536711893885017598096134850870206558535856056393538971899855873849150026888779188470469395285227537142362693680388964581494971773352983357853798636456956155114410353016016827844307908532577604432610934804598840765551068620492428023272952442638943676162933277842342368552306533904676962794071182729054790177523800067204445215891799232875873809345473419425704481176379844176793709224415952465244218642356925684528265972028418144093278798381889024897472750351562894955442803437125838680535442544041684765528445420497668218685812890676449372110854360598101361013377923800630075261220595062731068436482295281909431388674514825984700769674678213583741048473391870696430172785819349983120691885556439953528024902044457736976841928099907490267128973050662854206249620466455942742007860255086346396831410071642288688115315859021482439397041535072666880290851791146701348245654116862995027146746152435991574686140895184941065506845296055388073475837905210146780032175025521316444549264593235731450002771962533711049019918623095274836727903410539729945006867727821099171301798545396537716673135038053750998897928837182177907412361340235357896730059696472125813247389303530342627034287904410808049348629410756469166891663055593028791186634069863638333720743622427091795893097506126114056830755660882900280480894484534124378581424328291845053631149566789389327421997931061003641132262326683560923547314531361800378558807370593602564077830947471039856147556645105877019150416201649681580577120163829675478484417914202169861983635329057109371563721433185028108948458955542957023371843404569117261827026473396667580393854602824956953780853005431331600461215547050170675291540833690024813601291015389719221639623077516295842647147833564326353375640421658848294715061281838058793881793214073863472355419612207119256868282616787743453495727717581616757706095217508963156303415749415530348394191548979569803090605278999035561363775057324595075235977456365267237781289737214740323827440338047979891582969345992808517263497417696066303635695527124633921075278651754874976837078827140384683291579227228868326390648696670388728326459921915189383175597560372839796795983584276798628132448923050711955628499926851733632456349242287936151064284451809916118743972462228916025820126359991491068608142562911729637479725757120690449754948460927629774500135445622651086082960821251380770046980486101230784841803063078499153254216708571265391668648575134982306697847266368308183452302892432673128802719512912680420925944308035451484269195064851453835000292548318018023646931034825986782284510645987625631819030863535914003819715830827004596719144588043189998013169170888474393826014318500068168519053136075895797170741464369248320848474819958764029081528271878436325017039632662070456146542526667630390119062755668524702286197910969325937183453765912529994307212543690955767925116259072835659081591846449724413592790703475852990368452322374486244896778646389664701622035914034058425881505967893163713818801511770520621318838026010313403411376220774294539421684396496027649742582671913639669686764368958354386583718837927843593929327895146940796331145173128561094039010230714036970886180669897460287190644169366524826609379197860391845722621298535565581755974630379156581554914029370046341747526489457816806310149673855199142818387537035649306331552354036414118337346966013642622686449633093646903010425218998184626861514215465129434827144990374227469392881618612198783376201920744719735313629437205537836915935986591153992393280949961146465000521161963090453667705263030098637284577353636511547187864639382810731589454482277412318029553365002921944044968041924790715041534343914381996314640680247535381377724435817646572114509879653162944196340930646258079896299623371865326817315283035434386132429656048204067673666612276548298084831672471326020598997024203916606213311068876724235490703019861913776312242902697777483723585116767068452493550802948849601799567992658007347474540970240850922113498839537355609262398179191501704692154146582245586489620167632232703613012020028524512141122199977141868738917346731844008894911076200244790261703152741130020172835192630439821979253714249499443484065260510699581464362807313709342599202154341042307679843572790373467056801054243749006663364974840961688937868115374396496975739089620926308015919565931650773514123990702196228759732543178276753597468670482084520386019874161222046990075388989442760279455536640466918488378320022737363206147936818786266688551503940842171961822703539601001203513374639698771810280124099403245350139933675671367486604395262008665049613754818264210438958397807728936689103375722774943519458051350297916205968082258111335858379856079244022953771034075472667188015874256632680987147369490299921675900339018710726618743880380484480793878672841603357101374474146154502250982203762291741298284475836114893990926143441753195835078067931902341014492591801036937662465609233188944835333072063387591919264017351598825624347947184980017399661728573483569110885546075131479308330302753928170225485408111895531901657061540450865506718663266791550347017655678376912602242402505461118474414982096142816122316642416523997760966509840682424002194687459950399895710675173017019547634540617853998765220438651436581894124645144920396651678352975892531567325989667643408158613837204238390151232524408759794727704552002466633349189053917152729665276779797467916787699018941173137546359212801169013803487020537904146047107931992642084272597991497081521104703181949102700993946815959297059310082180869880850600696435097176661621515409394231602207082741307127234538529884203780494824450038596227375889619142815525058294454065411992568776004820990313692456429739014456876811898518765652101419039559882485803459867020993428150063310332488196652739427582647855883155228697203380258293143797604925545814546348311772811527454158393806064228125956184599325678293293623061945501623545256378338427198016932440538793894513321079502798592475235671831967971186319116982826453986549934596317969513869532214708369633017037971970362299004907712865321143725436366501652668549020957808218387982556950641609793140366326515637265356110295746866405299308633388410708408572561791415549486947706317995077822420048596565271918350757846207094154625291102115386674452581705524398483629941442534185902168645001011940409452357993054204195080331550198077578190958250113492443925469897744105390728735138727861335862547505148255825217492685357353395099993624489239723714416127163455519391711760087652612948210133926346886630718609485797894724383572225544053368526729687815462468490943282137932910280888589886045972916896386642869965878621194331891366242852438723772475723635917354534995073290103737530195360850705058069348498987567797682479634668901188930622815490480768578190913918228387443749947740983489987904470410323862043283807630864807663099699892868807792405027883577562879673404170901562597644644602503132476227908846637753780652601145563531497925424319400778139458499888909178016674632712616483781289807069209196781218684468521529476327491050524878781764499308089777469588984851438370935915142337850236987591069407191654208285016316501555115107827847710640815458427176919528897172625599442830284067784374063423309620068117647608569899704345837404089039761896235155392485199605223440302432903256809495610283044775891970082992593927143202704885660890438542231394314309242234797702256549221439850134362446695417808660000074553879288506733623654928420174830596148829418130136987478127284505256808656618220122920687273526923473270005640992721313015269962775851115420752544305791052030914309204705577623479745494509293117955415769933223897812560363916976673096513813845149678688216280334555346449506874012384161928434186845321889819789709974416422304987213805367089639544016377968635864183001885858323616211892468916148978287884759363686403382754907036775060580028467609420913206239072723626311566475318371718374644505802384870009080943920038660537638227597538001867453713969296840965612217298376668127507853276275706860905195613931682369100188841472771147814773682872962103258706305185283487473238455185709175561646762978162546681314011121960397655288048287865467882834860742599339427777540804861047369240789753851667920083452648957317133800754441151870118660444977328924619292948618762549854661003087859488807624714608172599219120390293730945252492281233235904868524607491750557206303833460417270726949468523550168046087381760550833544384648317847143394843450440771395613085105137921863409902665828442706876118742323647795089991788974664441681714815231667071058814936380943249973198712842585828803914408500918055296193842164555446386383435440195234312574211903689367363186205932228736617682055308968467396103878742596404783504665025318135678365582093601705591133927395764556755367936609249155002022597536099847274414998068901422939169649454586434336788267273445435230134378033812983705291904400855624362180478629137087867051501150474129731230061919024810162617340993862729621332129089873628740478272897041377321931590702556970036494577736498224539992641034538348204310177418317381117817225511998117894031184489953118022982401019725265919248295687003700193076414109659638047732086702469138259130360064094465348930148286418088234840720942744346447532969528813874860267199126637350560250014769463732281672168001354156833169283894781182483512923667440666940473358624218714040082849223102320300958679005313449211269331243036151777619907302822487505680757660303351433856840145298331927020826867207767870403889201484765274940792036679768710518418440468370257333250717285215399858443105901287070166194271655729137109665592044119074620541554657993075818108209989986071633347462778483609372508341294975363292913758159638897796556425043452224044493156382380335689256599662837171062542383060183057711984214514252760352883287832569787066915414628530967377553787570120396287193246006065901293324379947873836188735140700650377276478118688657141404619303613424005348001481533312237975470428127763738531102827340412491823055859251656412023924742992981522305609767127421416176102124982572759438409041045093910186689681383541686432281111448530017306230742652184894637629982249461663525720211217325452901931977216603246900102662256152586963277227941846268198645364233640797148797149211266024259979654137419399340844971327739363763564458421285684456171477907588427468901337409762538943633968706495943135567191438728743261625364517464669911613295393072692088161961133356179656147344524738121598281451216266038843185616462870848785717023583991690005693706304603294782041857992746549696885110798488930840654217432493582698828393188209159880203595383205629881028279250578335537235010531913224034654585783606341612610237906758747185395996281103474601014733623781905887762195584105102533824568067842827207157806494323197414279858277460006117114184261070947378338830004891660393632638543003062809644615455325319272786291399510282209929051436015083767537149721312800066024301551148547646613573268193711231561986647199586373084593300320152275884586445508286292686465751755582660524498506730936108892143646325055809881631191321709896399248357849401799037990634711685243397117533739818004159428546941282013533625073847852792420192525055004295475140999232228242013002264319637172870154010292763117822871043311260809886694569630934766846458552315488557252322741239994569196027968238106159130661027864046200818416048027052953631083096523016406626084393095772325466921343485945787620552727491344843794001952184057410599070511412949104610672420697824840741050846788353157186057597882757968372849306746779835259757743290507670878175775864601357665257177188308420125419922072951533788593372400994892507571837722222383360383274853798804085888888743643507495931737316974192273792377202266896244608714642111497639286401043831909379726346700509487825859640444811847455790132022306291281221001157764192181531512691626741280976884393659706236704529259819817129178586251708983528246223365914881967418330524875450899064946936011514419293209911716672488203188568598842023336663735667401712447941720708089070170101808922002376520340643148585187405643618239395256476423650609067091057790926413124047368291121360000156514522346819956143357870966483656143019540904433081370436735201074280767126123945727641656226554891492147407098461733138415816015972030041127204859370666972135011311213308691705777780232812472682522576649275282930291985652650544157064530230988653423796124978980702044242973227693813516475259323932592876262447302598209186967179739227503437402110967543592876900814617128068926960318636136301252852900260322316659657921488852322224093521633791823670878616708433572580339068023329111313002743109086105973190102686210091266824188363257353928101779630598032883489200081504930861218674144769452271274880979167773751755001076313101003211061547003087731233483735599744630209033513729765028043998526615538250599822232160896465406233460500738861196779283729847256337180749580113686339426413274545490202958476534685636118234795335833821926230075192982554246392299012227908782632218275477543079513377777909925390207843716859610588249986595375266651529082211185620341159194670677812582379811316639730527476527311675673470237927278614675059337482910394810978601945439017760415739852176319328561349539690442046615202687878674028082382368027281672442562265816306573913553868761450772906556542794480606150655886361316288728316842403047678493420820496863646614137303515467337304337901664896457980099404872560759086537727278400678801755350682184380861879647596936836499659742782171548102403267514815864737428508201556739039761045582954409154956090206720629455106721338253967565948640715147818460901599980177741772030462677461501455993826787937142900119585851922861252869466981076847243212988246505103076423285000806823386908268625924106213730747774652360240678393184221669991677745315708831844770642587283312775936818199325448438185342431870261283808630601533802726174432863451461375887501165882888312428799365879636541119901743536252627269692666193268083286850795802898084638937553162296497220946468043385515285422240728616828859941538111467578299251334446516332623813197576794946042408330772479688335960007129076546455677909110670593076398510059293355502955285899076327657346356766761464432475170846640447162569456756748611168217008505873104819689552240704921183277061987624065545583395198432708030773024969991199603344430003401295763188655732071911411138125083751341881115779275950977942463477950209829836639880459426739974538464389658818214539679630518284803598023236519847955858076191898587860151325292162577339867904246839709203984348904766751001085795574133737253007962941974720706230142095096452068215144296840194683399855271945933142135011014599356622069119163595898203586122980649793807285400259802743892425200974724904101665355666375323944090416479268753394838898236100531185399681782295324006681837667646014087660237267583677221195118645292114726287166025840157882171589727836472803005544450663167799764799981506833164105021282141689187236316087486924645089581239724662985014329111638501083742519482455803442512860902043517630079826135810452002569728884202545480864112555516487311969393028652345022031324227998481876681168237172652626332360452087074202618939339562796180596291185146241968468392390653620134808431685431044129654768955614685644642967675507924682007219808101878952816154871965698541170401166358308366984237404157692636646487698981748814467191030235189895496352927613098599835447645709179021125006084139915726215090263303933000943638458681256178511747152993779663996292883706932387690316246004401699180202096219576675744979815110413588198436133600467200755593154071936642658867734977997563601812654480633886129249481081746916206302969201209315262450378289568939629482499143630444823553241757009957724023379505584038610894430005519883312959869644313570569838531818442520594817001131005965068493350597152895677311180505171465299052202223720479137815692762130358167573195496250785498555919807872910379278114978746834358429723507207333143121340128752215332640556391785350450771129767034476530766528791424012813617467244868592574145052964977329443069278521587003545896842804903177641575294709132234252343134657941389809352618099968743976544515470171407634764868505087912924095921299661784167351186969191758302193856059783091694942067332977732323077802619148046041038809319812685561308873554259407869865035265204856237400129896517066293748441760924487184430973618176634810847125060744777231990753254002351108462097507879906355531553015083073016559044756185104568883731913717041725915536367225749327390334371427973616197536771524427048264623774566559533966327250089020342430976689058626853159450237211698935100138019229210427499280943804887836232530526609405682349721046774398995522356756675186096115098262555149123561155992188979511710106145748459198027805082648428987176781220095201943112171955583485713513464451262949660762292634786572659668098949611334163824271163672034201446242003366334019559904037535570543637852395890310241524630651716488083206215807508265360620009712809666495699550904890531266118922809220436578937871688598749599466445107197619967331741297559572406795395986514311733254974720223607209293692056014191387917986814797256738470757028257786418545988270453907183842875599899505715908739547153110951576168654225656091956081078927136066307491451747178050135283692480168383652770992428291195704914668642052354146167476815496136280272853370829148018843318854322745720584069705986601004799815464413257212033359243562891084840175947774143647054158193958022265337428750231305458597184955030360344254482345544030825155107210707625210544369818114604697475181280823624613103334208867433427498208333507216904560825646368537970168921297935058533788290176735794416391477635766023068114269893259067512203980053734946035813674368447087348944979419753099166553042792816203552744970769969510262447237193750886505549325321273676745606704734985372267029528706974342913674112515985344640710174352650887028631480780855458994149452252265369154580224710205211293555061956523407991515551477230389042967120328452420424595087163983899128114416492783271144041903997368603478088810523083753194136525130297006072866081381000338653016920888633078619115410528380676572324675759506897362789055109172221561274053974405422728360532573202516905408624991635783682708417371824199913827202717019639711469736532578896350770097589512885949604914900796656370274989196269212139285391753160450948051397242188469882482581483408166489859421145803859645437874333874813632807187372567254449368286407478317983522577397984059147577495394527436325679502519003279106161473610113744663589804516746279703308627433440266306351270889785649706826585219281855120101428532976852794045623048693713179799372566357376064788631311366100156514617927815898984944056497066894331259611693919995736841187857360963430471259376395840102791611699510795901734633396304152241748344505500933743806892513001563093574730194451473795470475325822520050276145884643278825124813112669768089982737390030275356788068562458565630613043613802549937664124187917793726147406046780904681587262051925365918516170361623308926711074620058616089127508170254123423537195024301781460038663134391707069787186575524868666561676569527906816069698334232545208500719207850393765754779459391412066829454378146706025068825879006244537606248251364915120736305219818022973804267034381986768503051634050148948480155171096406495227021925477228804226794905041519400491992897672903870100623287882809750847936525852719552671517291162245086301963042883420680215219765181071516192093529251800451122929056202055927155659871779584301348171516114490715498847440782207561772469665962863543255570728450554559751054388326875497635905274048061722326996937095540470193467627452059592967179014426361295440231897043462728341250524167962550440357962029421788212200497137606947364550224785287562900256294966724563083215263408619662704328723751001021789954443701714348213489164367392694355097152543968947058385765491020424195391937237503014609383757961572150839938443780879337802565617322493290224324584689683827729473808692885223012424927614517272839395826287832187234833049294146441572346658219794713893479140943341177889413267262690533625873490153778417844593259342499459434161914706900847243667497021697218258810415377112507258676485398654702599701504739926682369572609344355687974616778502742285321280241060084729836508561789146474505175844723460725676110102159559079384511949226815608163557228550895949472435039081682194167288404216188412532562936318115806302098182792750148134535299723580138884390135995648923789550879550017014973612427426749866840255897278123312343164478762603002607022993724263613670640895083625115150527833852703251513332288607506743414750423101060247038725272030246820836014644128730806812876439927518508313111577422461346257663698807141825014390807597549042948157767433644251597669622420348912621094970230052775883565189187500032436747192133669329120900925110779524750465236635980082473025026928255036272331692922372990106615019018699057239597906004725407209786411525979325607273368960273126655497294795417536141159313037040831279913434988793971189000501333581615573161066598145081508271986017088605996117605451009973495869555415678091421068362109716020593290278862458408900673092678024433086630558460103460228058014513851486336321221393288815359245672857412418532230407787483566524213350021490250665090064010473000305613655073930251979809789599604052554192058169731196463730568156885639174191814921419253250588822470517338627893800723665835751061323009103799932261021219621631436478393773494789345782071954976455386004142872220741204194688813445347335485073509791775816705015131322289273696007875952518246868563853574203952767001585475782945878807969250025746309086649356805376632521871368045552684183916229968476030789595478048008690520686020879964748209016518893835427525747314957027025920388414369969978491431826841370930974880571002432974365440932730450746033339125349022492954794809973419496881901073588644194821628703410848817543083824557152482062696400792055599506362734818937555442539478145266379537793114081792699644761648817897324641868735511599149963130701007595544502400717578144998290083153092321641623300936864608722460766572197306239392463817695793846069844461529017603356240578416892700573432379105075494429117457710154873090660312567223644865422608319095853836394190897415672072390667002634860851655439029275626287614958505729375091841579126996479153112350947375615670486660403851045205943426727294381111101108756229726021094927194562093657084484128934809733998868594427336510315306243337922224175606670299873498280251339374467106529974142834534026186538299352497343236721051803486827715604810318575959428609070984308380549552748391467827477187535558505601355149807654540489502145201801393060962790475037498128623151900975108501875254593553509711676824831904379833771988331815409004117720287644603652484969145696512924593857907663244973062104224551314428771452896155236822550566033173146592217352194324952751961475105548138810234741184708192477177661908336113387397521784709792048423045256000648355293198617183803843188188034877260104395407704632550285082448325878579529609052153090172313496837272307783018411235061968981109234029600292840157004841104242118604397982029402518942545879711418965088582991248493365278954835911164722114040603763418416854690809872295794802714362815406249474480284669870990186993425357967866366858442505854846065579006479110323232719199079357996361808916708475980042710137036555835809761167263855466667668771648328146408927249047118996965573088564539698611974066227999399562737752305453482035254894289155400054027985971804673229883801759950890297685313496582653837482979526629229439987143649479484152200701165195868615758207280711951239501199023858703693134329290470422457632403497702383295992805489183431212819167951225764597273622202091460099825498260292950665683144050402453389174723468436509148006867701825108107622771937020090230564743894953317179015074321852248972080000660877621317646472852246524679543495207438594547265481196086253790932549083737213588749066076045825747779049244203126520088912650572352566158134961997480026498030345232311441959841115183131343841824788855985546988142653620897595843329680357978367779466800027627136644179879601609346146554658322649592717290297378782431072306684385744638889761841443830781130996581549244093546729114375788041778532799012832480947419373480869359061247340458531308890384703278809023791877189386379959140405750792667145468555430455988245740940727776002631061623823627262572097377855139986085126516968168811941006874214927674046887743145888233472440968438113514712090050387353413294238145379576816566396030120375240617039822389309630991337173346115434020910689253012109663628262800247922415186240887146956733499429431604604848658933615739413268124808663849092829928562126439750010440372362052685779717955720091898603535488930472994970113218393515676451684886913762266602204758449076780974463165911794223096336141140504019176700196564120339658969176370143346292348494812096672956241358988440240750350286761207616429599932794765564452716339020637192928702037814266043354828200212932433433866452620772203334542502218195669319353585615594901075078922892277018522901369018804652576683844728105708897424105626623782520409314269276156319191472209658773885557255347557505434987984233346176719402306567048909567077060847294110208261578578172926764016629766485471355248099890877928030097148198610586151750688612512676991719674686002558988594540603899390893497929250214164754859434694660886940326036685873566589103372761833728026045614795736268954067891926328889462476956496900741035671817898296596476955183456504660950100932155696885657578914756920778278834676338576839705716306026596600929918057153087955873508417869228436181853852283502796158423693715355093456008972639930899154582156692528314655765669081699635282830704633156693118850941880139116893585597676644791588591597836323299587494224314808508705248288081296628986473955693001932563072842350472533827319695820072804044445325425163695153572702496422304101138795007385869366976788584751846275750614736868371688020576015141244500699480235951858362310152719922846060818708612580862182754076076500235050807067704658441427603524213305308085786076558478260314146578942363979150240585552491080413350738656573411085713106112632102976613243098467817110923394815312663234420966937357129838138852828145624466045225451207737136935956358819124022305895811095940061770242349697575028585984287775412859503565282261477306670978036213513029772986208858797895709418377107729663870984531616694576898721121024262443892801959489713369141486420026264863108454528329635346451511687859907970988216380843900639518821334441385703307477968374634229465488657027152420441842774740421094804080868678318697601433280809162897479963524909924746264498099486275007900400986103441606663518644589219780105655166667795872529859925107451542256557431086223451189607859644080838456639314697171239678480269890400681140734644556630119703436982908323372771790477627719401724750125922529138013197621556890565670731942058404116630088291748418704266571227806264755826632661491572348894971348902816317313258851869263440283810388744479118125149073681963224827765577212617478319023998256625070816296591246599470411689423442856602179394600552572653248463894899808763285260334739622079380032389014783260124543656205944048209112740900505243766641097716155993699368647831541777938016773359198882804342766495264649206421940791622992288674134901268297250302081497035281943715372463208569196431142269680926493342682203138928933050265810381052720686800728535929971246289578492845992754785614865557769470387955828027812235405065570611565302793358460949770542884256634539494855551448142169126406821804379806818625006696961671864482303540611136071959496852121621402235234212236985052918208397671237534464969584915173151290003034972854271608830928267034197060315070865195642402400431645319769419739338032514025472062433239732006511994867398849331524983815086227147754923538718765079467482315848344176009020005689530018660433612106154136311021368801289343084484421408227152477998764426007063083369348352143206669768539476039390937715080236114525983315228076698733962243875120020481499693679365244456016158932223313134838854763498951846620004841696398874757090792479244196930257960981246953146344583765007339317116401195525305155716919522473844345181381612957459347244383165570080006242067440979632861337087004631194455628612330487941989526716474072103536185687595814728513231589314972358117694387585114095642554109624939227561676887505989400391627099553100274748449628057236079884652303489514793059699966580495598929003400994225501649485542095705161728716149757257118624034440672548982098952489356960409390771279463475902570564640356188982964062838333521902677998657277712464240058389743017983057384060275332348493988517281576389522981574988707052940829411481593955888502095859974157156206337246243459849130591704972649440721764463847362950785563490892011067083338771850888364300853778609172578955040810476983578394393463573565399339457570632810012232687066005708182424134309888497107573289803673407683989765441416676478526265236767142117061105104320121447614122388670373145013443916433772292633184490892786535063194279539849098424965880185025942084205680413233458141360886119341468771920871196458074185057676202456902267274936891182768760720560174149889888031572213758268316994129846587846567867294924827460162348199720135940705614998300753763020349661058416415955865592137296915531413797639451449662733471484395088533959962974997910918377062716885535311462463264566159862476287339545875167291794454299260070593270900739821646062212606630859010042338627734531865272889105716966619644756585560054019123842407113223822486867199132423219587582765968984020054609237383159677860661774964951597988968265612492317984147174993464757363069937700668749719432445603045661527388271241269818410069437526367126718042068277835635643729163118346659712913551021280263351008818871287559594509064071669475477574134851097897444211443388441049538669692022674596892595504150850954674569145002352888766152555128700219091444316014200609014725350868844734346245494615209890150782048337471297417244003891531808754276908906635315720596112565479865750493809456123078330893596519410622824186050397643512587259437121799525770302124735130065075742714600464242555904650444621255026451046961480601634567793455942037630645338928821045803710878099511706085796540200014394963076397782474629651901985730450007335692089356775462550137312573718101418417159572291034764913101182307439504405314953214392130624175720338480341517237393887118712869981997104260106321779680466689600281898358230788721808622334418840994361464766326958699799635985232994541985371703623321862586109736673374955241585369329141740225270911973187748603876759710752302499683628460581035574213385468857806750497104221545619832104870156362530142092435088750192851564452704561700571178924542655615043541604517041686022835176054164977875665493391890541650732091296616412488570415360829130642802535555053839091779731789706180937609882667786368101569130385435161860872505356143622085396511833917194565343367716295448010448006982299949318067332373646116790024392059554367253719814632403824706171526698772863294186688351964784117267053221365406578803354429954187386295651870355201900983178559864100467910444979806326043161717356630590790654711004487522676943683685157496898702369026490899679751009207608444294259069992123813680771397152444978179713055356309888277216401662495523813955154828616616300267148368066579048910477607036745163306953950291964026867912489768655647778443338120349886628167878158833439536006184229641153738749654964060413763179574597525560128361145966108625962724430080761711302433559413473396835493853799543756304505065495357482770680795509953638415840363348555232205360824516842254471682279443100325248056897858855680887859187009512609087081350838559077877697627893553667049699943570210645873402865382185746187234263728061814437741405301497968035344089450020180437333150587927232329685041368922672201000037738868204447393206123495428738457150364854729650314926697612781149482201335919649937398116631017600488328963267430851182506985759182699286898427691445724338987969290889990933183430719839061437256386467542018114900022630653640834007946452033508287128290818151037669825138000304226426857446362524665604844517924535448629231031104287613874133079147456370019217524712096508003110463735949313921601096616152992999600565251987331776346151064260262738584666537023533186573615533001395654967823405663084214142397184771759111294791452347365639692741196438266365656287877581941750226917316531840104246965853327096744112220527442680317329266354652352461804448793333645168173487903681869850713669497264505645608109374803745009417681561853937542111791536046702136465241795504856146405264921893437869017099601319704786445446155575186474760483899420908096472929104086458942966582736947391345297824936459679424152378729878330601947450425546533819155875049308486363657771579343937007360934270204547320307246957430699215112534604091477721854912311171715152022276879028909745061586655205704063934493753163128505856661553626341271442716207303493639590183127451746040984129058275836597336797820592880040549998098794614247377488925377249276737662429508967179824652476927120505944828048587017017134913156884915156163947513963479490078617450756628727854548176255889870925349651149515117490131656339573297746194883112426254822825955834041950054113102586469231172382113968417513952089179096899217113236560751456499149719593300164768151473692322496193888786055802849881452494390939584047921716967639170291436298362705145856665315335514415668279519970552244423116008007295645044502073808898437397046340057725895760793656000428983057549807968888334601165408138589377399310833091671757668453497139501935084304988432513259870813552489307845444105529848298877033327447090309691555546232222797984107392154768399025426493511622640428756252903049434138770019987626622035182590599294917363391130817975997831843661663844728671038936582979397073163095861168354777830284697462358239074620730991197631507969133394724504701163549663543418337095465890237288220183282767921414102269113465934301984160915292539011728301799758580613174672396761962251942684587485738534934096857473287241116385166113250847809985218093915934196312649408754246141012705487485313610677614202807310661249839313449193315331784383925514904160620859415688369131141584362476148970761821480827531704043810866091828330238383964661417437214726935669244464783352686362052933997205873640146621636034432785984440159229877622383512118535142324998003900193225502704916342892887667000093280679590842581477389130690107171595297738482699525287654601995224905042244170765701727929094962355293613191244261536546914315951388452709121908655770550497892470613277122799203496892674720006217887037169629835864561371373834538241917222027320242401393317775529006846376442957646076926143677223119694101955139446408205328247593803303096509171710353665936307728253875036549590469468420530046998858573682821088891969674843706738442345334594859756337418465822639099555910023712489182343913031957339964016847813837201759372968366045534604795937333486401956831401895171540399899486052028268693846032977798405451485749658743796853985969209264418505692773412647697609806053090723968909996077777400237538499148353801341312227086655831099793845732513549491147002151164156117093158402067940273866008526364424800045631378147387919443659245549817016785450068324263378517580858621493738356492834824241518761116936833473482481563767483273029666497555319955146158596508010078906449126624246927410314742792660949089881704480677621842254980880231476191648609185571616126056024760748987466921991643297655063645654115741028613451200391354816859072142162223639454900643877485338230829630907994544218049493292974334815082302845312869504755534515500137471890245593269571454174516746125922354182382994375255727856082262150406891910471240452506875050466110946498388864524618425899199460097546402790856366971520525054069031082227848598897309582306365139843413168128397322531410190155774015246201421617044308366727653490517014953927632651368382839226303836141613166454369158464015401325281867049919371152297227631265993135682344075924759761460245620730667772540549660088810383575961282186933699746534615415349568069433385294020439470096685849689329398380968479791119215645920684457554164883196826072416888445804748579617535920897457962182659915931061362305574966836411695101139004391803852280179588146231884501971493313228580191919107015238736810440490420431003271891539933585090247921035306026172423583852952227857451476695207539284978363546285915543933269736241451690620084752404360883541420243536054963955912372421540257183770104777310597993012421581312214644841640737939283764444555114273015809599034632195174654679970000832975377541996736775951059002273033281726489996680584394381932523949826595635229637153010103123914467879869946661633815455723760345545382168238932523122919249633669645931056400512829103729745986259529835361867602134893867820705740384509915900616569708352619686295791729198569058629947158654614273555620505037473323654415937464136434024968109760067158156505395631431452209289887167552755151595973481131117195986481587515997641808190136245932041578920095246657451653728738531209326278847257403362394224856875299570118595502709687410844249798189004293376640430852792423777652305821097728213158104938543562777341405725257273878106092336570812419832279746355877141333995324299169485978142346071290347890163675225543626438172995365967917682399275013728565828873731714303815470551731274117747337271519309985155808513931897820572263520102064552817647832041958912736627980163503125939548409305610634171907637097106336948242134380100187165834448894715962644498288221775575572350291663357473339056533365665872730869216496218750368234626523814559774981600743944915193343196767606521224830095798432927831836230634098188624364850201550964946538452996480283822997916713176605335599684152121800903986616011089366880763371750877170372370091012840531951073001435045984740247517696574337199109284519296219846896591987496060841219896585995091659555180052580371870668563567850304089234408629367600063140194457279643840270205285221430660278349473318572178813566557564365561668588671015005686992529227099474850653126018136545476076398397756682033014988281406960661060230105932990058424464217433282630065064862387943160593928172204968484451915090992374885442701635106576198917650609762510044671096920086737696204908225469351099278953151284241053734572575818358920401494944536390698211500465759764936060612534803871799005257134060705515732362843989738779845569038179538077257863802846493914369293873968668484011706618019758697383899093180972162312557600797644417907786069272581995885025485910894020641410284830075998799775840635108671788649297420778584716738837053005810151405205530257872820513539913293633939141072903462156203647103678916778177501274587782624688026515299686022821506162794154516646604680221228611696588738586940684425070688318821463542919199740685037560829522045612922981540936856813073477055123879492380061565170969498315082282719063168924074334121058503505544075145655370631200302817274692934222315999376892650692643842614764655292453671561688792308592495694259135545883856155452150047917321028128812110818766962966550357768987267061013825590915519636901020873711085475814537961758399893214893078729152459993829311045705571146297801739231319955450375088022169228956144588733259416627145780560921157170260880846662514110953463058954272442272721087736859879910094554533039290503123810939503635722766348591981373051596570875572898231940715455691538563139076940540851228164375253913775060205842525722924130111682547406268965011303870972513940738137485731220326366026881149212193520452752327299181838452834901637216125949878263352103376215969173329108215783331645997977413468089299657322848942373372100221660641056818264991533149896273956985062420825069354573060408309884036198626855564354457869967401383692921799834852760575127353435622659114336366268297257506278205811081004807173568675629316013249646108140080812049748391758134957709247515007742006812413543790412605083643463781645673438592026079598353873162427531260442124827254849441894158386986291867470079274040931532403906901319832671131840038651163182136586108792012335976028810770728178742738716613696897212554657856260248725233709481808726135093410856581172556349546484051467030411287863366637041453650601683251318179582545559801042096373830269588882989726513522581005524025685270176711172866905074469464854527114183701996374402769270079595899352017760452855365789777344071189297671182012443811508891152390521179151744174714088871972977458336628789694679976509892609229076109841270560069016432951445474759930217897558063058993468642634114830633847008008931135460766027164177430245735902389860305172608318266534694516617055435093001956708334604869786028840614962887750172950246389809273690845852512552431443306480801914013298364213578950164028921552277534999042185455088970108979813941106187965655018801099673621193621866704158371019322684832512885101663933096711673835297063464296658541757385687752183242733582790799529822785389530200163670480778389275320012481800242717540529171676884033867562384566694251728123248382079523039273046059891229444967637258983392708543917686710429192709516820201551462964674672571018418095732350546382128087359027046491408765858220303851273658838411454698156854069278310405446034162549766657994450205781017992038583879278348730530736665575050040531134511916824585636044967849135094430395254121212755102458866118338639780125757285714655472656558175618419394974369612611206921848220103040035703032875365638277322615481675805702560649016891046030762111652520067859360986533125672748848484368401681582165563310635641444555178523648823369405632473294506633994058725698695182133014324605841530959519585850151826443578495053487288202327404845485002617561438458996728264432475289179573009586705731837178450365260236761879361486258645317156525133694923920790926152499105771964785300764966641889434370410430032113594533076903335019555112117992002303771405442147146297493660117695855584528996111725698873446548354692719021466589707424604603092392195081988039092378765422793428908873994455093505313678120655453952474602486616474840241706245668401993474807306280404644219890397960062651889413044118438228351756927728925423069163246731355928779842518369040968897109886480961356576608018298543623069776107964084845744235522856979318175490511802539992052314208862444504020314218709566424560253930260824722516139007543006359544956079844108739949873350862117163891539401081846495318500555380645885236919288145168713730642101958550826889581224835602110799000916024053479600144588491407188493723507770466649669312896464302813407316830102915412068041243589711370236540424342809990814359347056645233303757949956949099592993219013644628464561471043866623998735945186546379002992785805743983669537272564679825898603091811626498346808975392298330814586661381717659600419637420711961158946253937026415018965957073595396523854396004133443252113182646767550274752704886185663612404580118507324926041056627864967220446562964363630761320109071669838385832717876644814775804395592768454101589055624653533866499103280309830923933759843454173610117512500064098413702438397697951767426276036434916006593031354090075863830414336236694212005163032960403917296850699074404431261085390410020590893325855898132396563582184223593918517741587714245666535965675173317577223231954567321812434297478446079921635721772320949176160884213697367729062943425172197065949849217527716954464492570150096907382971409454536071817086208027462755917640301541452521168407794312602085153414266372196627300224557403455536504339035020282934445713545181587163509917910961381129935496478438829151722435749422909718554984023129034754981408181420550048346441246134336313941575441131783696330199474071470073927498373776721480723499885176163540193431616619838205160398095546248923702905482109021577339932869762522434195494037583270429039861541607608167489515798884110783049665653003602255360832460300611020932648528342642681974671170590013705958362913514599185822310755866961287348964131105470190202331448256983629410358361897825206206555108431502733842750937895128649448063832846043266549775253129643806162537294064064892684753288031765660279096545983025110297140752557602791315502214735441502659512099847587946445711443845962305458962014711845906878048651085728659620209859401227563621212579871685935978341211469826998891703088611686981522370456116523077572799900965459088008768053560879471037102450026551567501817811858229391679527887410682044381675368668092616676183262490245540416641619558368847431470481932142737191874876565513061225079859327181429847238367417593813913979794455238100242299032413603598906286384928464512359596476161619853242731585707367567987432141851138941332476315681223690654742143892729357798717396156037495490939122933293229282122341435333684782703963230395699800786739672670650430606246094929260639633426554939490460926342208483014183485855758918263622981684717432874210264313874906864037424496973019097027700153683066282717441221134260654753862045437990289635333925883243906295037994165122180789090081571457928153472646412224267888447014319148089255683810143143062467375350051621169498987276221843227336581147412674265901298392374960944155570461880091904505812095803082827945944294279674615453250412678652286638353559666198685134099995763656703759548998741454777565307508405710876009142391642314314473735740308178172004238778540339357741426416628576319078835263003365614818990489630801386115053995571770235633360090015329291588977378523365057727984843663004499041275374529893581201616106136935356170496158464852757558022576515500584093075910186716558932657392046858747809863529750514696240109095209582813645813582157045492989908899969028910667423553561687681773776575193468538197326074255471364091154404073775393290585343301445340451949079521481168645301699065757045941936544519854036527363032499447397351525914899138566305060228383704461386936369890040011988358032417844951841108420787579553685325405314294603659860979003543072185258344218949457033027051084295882692674962230082323395229856429619365080899208494733175317541070297054512796738785077115814340271621438699429584560394379245664439696846953333382383190353338718760609879471765021829523756695733432889008573569444557370836945382716884600876405346488977344028665200013577852293788779568849187088027919095914349464441897782176973380718761154626153000611397208312739785242182210344097327730366732311594145720760037869878218857165290740238805550709963469476283215389660046342623328549858830659346950217844435710159640114547818532012821904865136124932721405685943264007095543971848052532668882868851430334130516539095760200204357188664107242085990745074719046307585417181632760726441528834072066596297101418565247886123593749176131341943316214025975902014528455040191798668279137048132144242150462239592445326665817354293047629077245903767889958788146707792221582292466835575968392675502814262426242239267377565167048655726919115141895732476203953327174619938170358895900860891998269007844657598715110107733934517224473722491691085743133517443041133161924246947151580670594846875809694804992081135742956607912668773507837080021711328191862897427661872243975317561888539696244728779810843433883902371338426974118860618792016612550208699609265073957141130789558657442422102864709508555029710642980860303204265127634398044484981579538670011478911397900033597218619575619140404942931289890003768877793838031524920822897778892624365233114083541706560483213451037863972786281992086372547101801588689119847910633325701668385430202573237288256181605410695562911064396075814650000179846721759315836693074836082312795806883517807797005107557234837375691999088493645028635180020370265281196048307660413614116095795729883108339471677956487826402885147513757796024138343907780265379330998997119393775749112551102190692313342413281940079063662182244026475783196326129664550227212722070083085178601900717893502665744028826398601343006976074903720448216493824563934426506928326706183997563788701641787011247637874604439951916882882919346470978751356660493444302668147000344785309251799381419734304644160621208234317498823682806870568395134103340749241854993959789649799407509009525518377274542703732438993343951116881401781700685512597457005413611724722500031072477661022495651759019910934909515433662930402823517763490548782718037657433289128070562089871138310059590022207985928955114029701768633596186595330305398015530520339623300097363352131151544490980969860759784428926250417722542431066683888690791617686130014321325811531821752648356258932867248716322712857852693088487626320839445231093958268944228156038876176626089962686513111734732183919074688563905119017143145261472773015494415058136595810724018019214159744085189082159084831310149315156593826051297941510691652941023236255937832351632485988775303727710360002378861338821695707405478706212224368822550587555122146273513221498527226149610216405883864251995211022427065073222408993200037778337471335963267042435415269183033296491589764106292670033095794294684100718035774775560506240797932898218203445131196904029727548673141065533941147608206961250721681913602673327820179483300622150024228113667015023212080088063629383470338396041511145673535191460582177468063557639522029004679014343682477610035425820332487136992616051048520446644213792265902634995321940605496379488908968955063634650513427084927388137889454119148168858513908071275050507518979457343519947979442730166309103642441040104524177125513630616977098553639126504547308578783886530596473211854868477242812152126341718121676931296991271559404483567985816696260322282054224958601110521954651465802276138751076734307535420766708740382683344926169419468921403964216592068179416962830436876068923459794072329359349084978068394230830006956052005115005906551230165113550194989150079935421973840579756978116611098508531130424091250002737876871391899947468126236870770459627324416100411712329154126962745366564723256723213022055027658792232821324338653317304325919750737560241484496393347432591233828534427098127874734913695903172404524123341574048329697746137563890602614534998255730787916059321953403822387622380297582565693377978444384008972261712536005791178351582419498219408660438609662063990414458573079776497715337587326768030707431136133925696221091902949211827409810186272718344882563168560083622021608634525096720811240203009975890555064061894034034414982823961057127247482992587320091910603052154173670360005457383063132101080729996433477404579620568714571635464934562610161451420478160082642666307631343212767652691545940393525649714944450077492263400664782959639512622859865883092061356086727014853923311888701565387417972808361745055878843524020432432465173850904960496153639429139625680475727102414682216572375056074417737867287474511070845171337500018519706190577114038688083479858724403251397813843384245625374120667350885399413199046046821718651078548740536407493909847185989513551599339653270958025558455275288811899471185654224856650021644156180813648080385637103311731214811346984478376260960397566655572019959197534781342344741868753928919487400343935867873219123039042536558016087739608836745298373691950036374884149033930190657911160526263292961901188440829495278539588315654168751971956085865381570766549787533573150246464342132608473552858250910998802691210895384498846996434295611083318163845763727257712893535722917474147172614428017577898697995208160164389216608607514093196408721991762682732788322623645395367362259435017642297345891314302082532974202328356712622151939940312150136650764368019057766976982689305772747334158355708398843491380326043813837706585730212153208564805101721178358268000601849447403026030835226192752747175569998374500222555828566064548812856389000384437589401439524633604500917409841354624858586063620558718250507114191209297906986855160968332932572282488575543764725600214551897722775676681973967919182606925474206640043663600662549595922958146914602732926763701280837523459228357011350261312151173281187915978183171507073764498327414912395695646631965005312172277243508457633773063657329083041501296414476867361837650581435095518649367437495272794052865998019274180847991506692935459235128905181234893155855118220711380901896275206115219174130475897033980825644541457800000212697065914732979638208033133396874528334803398940709963582114817760149590202315871965143185517651902911018955470392617987908821046275219530567261738773658146622798342408727786354640390014532872765747661503141162755993310041103568445356993383820567140141954102826878816548868160946249057302261964827554452945559667652796561979891322078230246244950765843804115324442802732178426524391632382893755181444208144679662333151095708147919971904380250174395320836416681776683601225567351009936882638431650761371744703437328882298403466789772100802330295522664769539158884588231463279090504975648061947509607983536473534142139287024651583858212877012263240966654975527042971654003435801207211689605614617553163745098218050357705689793447075374592000684285632199581866826250946705441671364014754429282106512959410137727303803748059269602543806301542498109012336365467640752763374638511480726208218002294695514944260415415087093514742022645477087889045382326472088816042424649093174160251609101580590144316110154466377671367683626248531447659388354793527148810331956740971116148877131802809214925099566681772720893298672045868945482770317807731692630910125705461369055207495651722658980656140783950237945537596938105109964396888370999772571873026569010728026594516763774031449994199261370068297501098453271170267327510032301079618310977661390661635506377637798149583494562377073622409559733658728750036503948313027978022583725445223480123490537827721035541134042129431436960319718910277558595271896169434991139100068613430414654506494724377632486705753375955964658700083341156858865392715452622534840227394237640829080684000423563077615900645554311463622407344663760122606150313462023303690724460228099962866763562389303734847187852214942064436857173955225164737585953601727527192307117401320679633021838395985585783086716772420611885166301761200470202598480293316256044322481075202027055085547341388672284920237835412947375664145813526788321156186850062946452476358818423460823522092005296251565526969097102322263123100909858503588814038624060592951327969644343225828472898952817317750170597196222920889565745553748565131200985091700979447220941066871632335189529694306491959687042245024996795323011666260157899698300559372303410634246249013584730782715903229467977679555857031358610103938954766021258726875758841463724398317736026575288354863990222883229934316059910386852155195895330951576328637960007888152315605019786984745273350438953369031402955112387879498366035699438875871439617534972764363355372918764590358212047663596156755917233153847033775223509246030623948312320137520174182455786086529529278580047136912629757835936253026499898525703756713614407905002817028392708046623742696671165582110667267472512372844571869546366832804866551891336677048682619072697702962541499792919863266105778707593258794903374765668484783145136980116716785004653100235275432700700924593411037780184795065020480520341515919838420790393600757404453474382625366411795998889688557428340652939703025496576845622475383025277910985529054714284016916505156412525293248882141831737921329760660524156679667451212692374002853526862728713485792967262327385928072045211107301884092844754005670276465597703281311130976103819759696407094951679033595985719454214986889884903348171965359369744511812961258951584806421077637859813953250281767476564321898263097484577256108413502248998307073758291703729650924252394257816920644642924048167654949846213865970983614885331737094510140751378383849061966493010036290381578455134111819906782843689924419867661460853729443555596070477396718956222617205251509317848536045003619399016006034665820647323294659364098714977198196429925207131496112764848901072952716236249658743746040286669316952652330082919612466224316130828847346504795430795375604557728730270911175731847814541829454665967194275479760871664844990660021063557323883215054249510864320469617845614572788836691546909262033136347569553548307473445314068213415033902731605729657212245461301136953671465624743237460619430404695000708471322341196694230041215677804026941098092460766739630569456209310411342902361626071609215219060480605087447224312060854869825155934156911568983243902606895416986458618150963426958658441460623252877318228819914386160349084245023802296805747780523801053161607936527429187012916222817300515770306580762542707099905468409590833580036970464718344237042550456153444195573190179113567748315328624710805028743079878777161386568411280019463530206764792893209366075885588025360885228384574154228147897807219503191393689125377332395331148464196227900905985047022908207561446371177381977004576145980099240019523528071172325236336783069285896460433071344500176181528892572451032960193616667739280810531696065633705536539631643948525277368407113673090788940295756190539223717003249020894402643762909574559590702874826506380553827125277782638972688656963244991296586301057566821031165278565263776915336953570936578616052067204452841204868161345196634755861913989057523702494144257649078245000575852571285855760073444416608976009116546292992201983882584243796135893409857458541411658685347523785952225943184499725851487997690176073757115581067319417031523320972560628548088985275707879245499567009956343584450106442272235647846116479408516965184361417930884281195695810296738320929979326495181244033924171500335380809006981775415798065227147865924482710678192659641784694760508669701651491562005145918001412161337760054008100208482452392283635674326887285620634031301181538585689338259024576001256498216023025986655939179398737382243752021042889742499174456293654997547351051241800441779396345955786941592243312925714495330188345177705241300097824920736509139594082418641224784708606672406901837168195144779275529624230638842553889669276107721654816510791937131750679239651093868173906223612658965959790371973778985899044221121174357539071938731905349826697145872588912530186003626074496867239515978182978262517433110311839556977504767390226574493080496896996526353165470714357755004943929994001794978300129379418446063703802906662340229861257401193006440846241603321250045100116609172191611899707983205952941281501880480011092884766896686139715666213767076196904411880498538431534805028084178193222662742800544371170444242384431170692039189984889920296944101183224914659904535929313725459427607117711332873972378937630678665061295780266768140704056353547890876076948297791370004375381676746370825053665595540769547818685538504914009975026861029500254342557650805964992402166238265661542441512166053501936339829098540552083752122554429046946018622134000409092566297758361259923048886972470597124373352076085250410591055831154777201812560725995166538941455518923960643702063876556355401806344038594520733878146681101904670766465328579320741604480091934371179156470953182790301502642732923428730148543525826584607499937244511508107851081904037757272206507555056573882905832698625030223155454248740273896322076235867530766636153551564930147240405955239932319200518964126286496492834342369219713613725560583701764878489338656550229541047359531821194162582671725993139728948662163755554569232150400534787792271257218484352991682070093868877595322256614499192314808598206232404776524573913153566794907559566199856072893554315023149326005274795198696365864882473293102981046763824155259668577772368679274234336363679263976225017262634574868581950027656868338920449954034296306386071698706580887003899095520443081744777007647603258639816863967698214861214579634689372413728162867731491243688799163680909872330635971172476362088448292896473087507982569755814354465413535474986138476926537905666475275720179104074468976252664504147226101658579640540171687115938698757558013764601382003859735349688120141308751694772929503868028817050134547726622504319589932772475094871908130258008165652437423456961088157698026150287111594462644754888663996679984368992436415108028977034278290398352266938978658538647487457952836456849736672319292056724080531971044102728477438413743510125742138897926795861252528234807363047227395407019206463451997027409705400569378806475828754674780590210418743187711387789337302927397436220319284066843074777061778485748678948783353275426496954710141158410542170532750399212313707076803759328615657207607866180173755919090821027778221554371641016969299805455611822271388207125508615376053339096947982706148637745293605926051293946937903249969116009878497574747983948688638007744892176911815599997594166170509960785002344193637159695778726346332112042630976617328150428298538836868729020119994974581665250988417023330942588936023925050415723941540985048403595512313286410840253469345425847584480736592335469462531609806465897087562815655045288536169057247790611650262290653536801738121532332703262750189910679084418830366610129038196309696342023112356202689934935094274054088390627647918777871651533970686365335558326302158563170669352191914733693546120961981197986062553618210625428004980737142736916483392381694132584883023973983861166700563608265636853898863311967518934576715362883534108886593124815398205222721391470131460131509906834369074822998737391546965069590559576491409838322250487909745377142905129301055830444971032344568669372676230676822687529280727320286545397239467920353808281143542696111503511308799403052548348375364198145077494679947632166446943830369088669400184792116575675428487782467538297734284828432967432647722161805464682667456952234292778612244287431436128942974203308959057459826803245509358938479279155571321274631956773134535916482479029160613203979434127613568372670131071638689017926647274289043824363301221561585499241426006956513755477281804502234481122439102803219044979022403389178668287358123741138328062061742558836874386404651822594590907885246591606242593676432201387375913434853233765219709094035016179743163775795254254498195157273673456617672961653093316555372409223166889499098373403159539999472980968175969663090679146256782549698857319583064835560776236618366577032933273808729902564638986612603494556217280934862721481905497215372485598219012660486930697825376821131482113596905977821804122473595742172512239758824205807895774087649397046473660751382359946884041932276246998823408777391364345065390572898254181368956268601858381827576203752626522630859874349825661039374254004196565198269690275299699414245974713319137697025984143707069173079022335208116100980293282528637263282919653834504996111729817333892800577740177129205087805762025024555182083675971723456329021845759239508201160099091742939175364506785192639718658546733516046218627167730841127127397882381896890921309859723288498245025771110240369461075748020019076886124136704757038597328507905576310771592915050146579542365386301674851029281171107242432896133575676183070096705374185329915172176638545618305892180122145762112275483829068917673627336232280075677933875440050416883479446041393572418213069661114282671835186195599913129206708397651837589330922788287837540538484613969685059424680748819839863754233695978590302224980135984021449553697635262482662199706530271375088187590185631315657481411067805898787116452293920781351423402358838154479088882442921046484898032797875239100217482446111664251516689154916541624125288130427459202586892862795266789657727527007038401065046901819174076323467450743776262553784628381199211367157061484628663224926279741066308416527372975128292113041967236512875174050568911435344104851248967289665332456483569486596671154304224611071209897540487385571976057933666434941415010362589909828525260305658961164537682419699899561891850053723753474945750879720603628699660820177600992875956177730004455990940446090361937733776212452987434812611528263724683937311176767901859769026071978464655249822398398127570111498626131374001672524361708139015710827966901603673400317049391856416815604116300591663837307838247728223409157773972968267188329522361352559535505413927672523100322786808970701629339411270783255833677292609017077272069928784957253623439685101484379082319704271552281782982838572118268822413385563322870349619205705302040185722678735697996101833900510959092672091304808993366980134272097030593631655172746888038083481214621853216002178685801087825072716912645168668550699284446589584570146603278960509496550212070911111027898311188517046294474576670825481876452374045585879431107142143685385395601711138229748842906225121545005142800076536873964193081041107940937305793012886132756423125734955996906618009712815313375870973340431275552796139264694070872300706364424122322879098047369146949938947644717986302001906859962918564271981824905257003358829252563044100249847198001608147880675817130636742834261131063976429635376308954902124791301176479208045150252909705707838047689748902222274838962306178058862398884660701618743312705272138686986537003543745892921491392566903101499011502682043904092231924171024262033017688997956345528614263093535506665122663004268933484529069978860824413490814887529060973465688532377278405782609294600617781174172326467619257300002585045607908951108800986122144257664370642149340310715779295871648533127889815510051610787720487968077652590862277191404046398069382205807082949209338756555490287955692440392541684874511320474301506925382195001559841897758160045702357677101807862714084707583310037210442837190869731243123964549509827837008575447602315901800819678602836750498405834504937772318405428577730491963868634823300036295570408132079107579472382755954273947345330957412432632860640163227368887666482555639822198623859400308370383419519581143038746887085025372895457396855108859265475035071239389186486589301736207581231663869572404835819878933355813412937144289142352800207667098686334723809158593201550718292004778665499450781265521501264303405519697605455328989741828732775538376399078764384840124397020281789702428195391494735765643732057568668267266167587086411607810607017862950023319645443751268675419585717270519190839919515433034485368874789478331551723795237690190449163842531937884183293166622023097200952153383238089978844352787182371730816781659901996555622580311831156272999743040708230552002199613222547869228848749082791116501211348186444630217582176608233762894101248651585835240388740214442773915679741407383430580335938389567520355665916667251977134667962581461745776774352205209182260842621389487682795689235474401481221801788952423368378537691583559141215354821395297059493927932686012644852619416292187231712753530644501126321342109008152707170903575137861881583422973340014173606923517666895457513648831037307081952776012052670737984959949271909367676054959428664433429617410657288444409075411561019040135383547597801197721842618341498845574602983048933598782366846330708866881393473417862941438586287912487703331447731290109228871982905408658278111097478285145706861904574725439051158052033976420472776177997949417769885880748168742684963343675525970404697420354548826407268164709158129036978664294608035838975859324849620227938530853579661622073178042617887739105394763268799109359516236898037069326646037261425367906654417737429459238398464271097589437583499860846817290395330114322225654448761595502863836497941305634759585302972562630276338998717760541334733181039114824591619074524117280853207381592494081584687113959768907805213826071534654248921377978901609091691670721332486508833886965580152211884468024266702909056725742660073164773270316669903148749351939952415666300551782798202874594605828542807030422414507515596779630682398293117466213793814248786661324207976544651560924882038320905901659713043291237885558843958977342122554597025677120611306753622970046367938973184524612325641466385086622413832382287023979862005108533981344299296260983709608742472067082435237154446316779242837673827112914686188903694999365732734747463818436129249072473755693320018265180436009959467518473671009302620235538393435913865290556035669172454937069413651406772333213480840591905584101495626373126962399691119041948828425432299084284164404081534586052292249969029297223683476013036543522378833728405748351544415273815039261226480013593406624819824161027132369612022675858945827624129454834681363046739946715595672790240729274293522548843471475806820420941799489176827978968339943602395671964111797926853947070957707109287170400338478864627202355849397113528607215922091781046986419897013035365623197705254583555984653895741835944546733315941470852286413148806606394582711860123019530216700440491897489642748456065078812515352734643498573853604092249754590610324212547028112867473915523224337545487814457333481103594937273044378292793620425916352266853042515813290312657361828513268632402977198705278533370478050802863496555643761646033115901081153637635396461760496028674392140258634281534262189064408211244072237797457289404446526536335433396806483716302121551190954851297572369367839338185347474503378991602089131915520759106774667875070456623881417974163282750961662164257549191799759731138814971239046222910451292176270837384818255220480718961415853941808097212855091736010909691700305122252576689854478090251238648682305834902197364268812300239544576252806867994940842487827324198770309214294615732256763616481840952317964100493329975802525445530493619125166993730093220724330081816265566344015890094809837044107738849808624913995879667087802594253505166541334754259294499511797601599621379984250102884047473801196193525502863027069485107524219370798716508393607873139322971092483184552588068735828924016208514078683100106478616939092820579607813631610381143634185170271222394861463550765694431163789347755657080116816656211710615050005102303039951258529617995699783010250064314358767039495448000870929238300525498643236545691357005992548217486888906446448327699602145099213075657105116228401614751541696824165456102478342888251192004556802799365102789807336361052410670458407005662059934602780811283931804839093533237602464371973319031339131304571197113104544247651744589219345632356292959715020755960400864607314512840432703505918270035105567842473813993265116514941263231274264299703032883910478585056415066595691517891680539239439046410305248114141375304474810437600258080439910565646892487175393585687079823198428253757906637203106350020576948493558946270322597819915482820114972751390082790829591066513295472732386809071750899171629348518011379032697267030907988159780313159887911439320894022053607660171842183557202150609649923953714023367122031880913325000317448841042724506981857130929905785545129070963978773297368758258840380034372526171437168371422372710561606179269571079160827074732774140351172412671949476639446019785580195906355136261348520404350183586664222716625016290012849681739606373879464622438871147538385626279513642582164490861410030304507309063169573962256946438856998795186765150548426425056444650528047664965047336032190882254379397246490066055524491966743390155180950845522770325102053709184233967595028756129067860970987390619317564791499162640369731890959389802467635058040190134269548453835270318160723994167913599730265619201898194787856555763491375463472036552267281865735619232680381777403488521477397251181680686113092375530553462557248020727376507538843334014140113536432791043210469631809574396631267100426382781775710934216380100194845608257421473098131346318333112865562853956001088000368324993847116239794691894974085349841330860491986359601733039919160355490301208120915259357979352585145322861420136211953675138586946904757247303032274954574234839386781310952705533868672551425030108481324280277052844645658981810203896323844980471182288233959848830225602964833136329757474924553533989494313368794585248697661620579388445219019212872181516759469706993496957660532716983843678588513085494848348983327833113497994859440039225900510244574630097725442883510992436639975346256683599290469254478267579988502095776243324450822864997415781557660702598523391641131785888104907770228564898360274829501349929785356506127071080209581803094086059559612105374761166577478625546366111681491880485255097840855417694610548703944658062261965762895811127644460682740465064643421712828200119814496319036307973332703725380589300114885770132854368877116261154622771521849818133270395075487383311848274868074910181710476433774654779785311838797758077420845401843586303956567236934192863221082017856321043335951245668255535251120064212917542913101692512933191213834537877032245511800182622664657926548808407702387700595853397876304553711473941793698415959206697133111904379953693908638018655849340076636973148015771289219717889428016035528577904995453772215645991183171366819883162948961538906591612907180776265817447108870457388155234661428710348036137105402175474909924828465334653479793200983618876791958865182434641197117851443754860900142596488960395776383096759670858363151883949797681437414250937004454529557583112651790162723581913480435982267613388803586567745876888975092172923975462040171813141600700055062997628719292026275020268301088360342865966422517315757121378445964662078938575260943858916489953739972379881380145779191556185352633937639085740265897161123163169530799743549368270340166469341553314229327502669380382556651532127481482365649910097655155861083825407989817848877387190893051337445317859387207732024618205351407768515345438586884701935051438474913882110703709060758665143682065692966991751118070158850656666583347576071832835378082018663820740011800525106797617605078591935342118297532129024280896403291972692946668880201791031437079540951965256424336065429549599189160996890514834068908286455824737680249969659747504369348605648152930777053402494056878671549270568314883109831545645903834273407144675570580476306394871036009431488187582606750864275082047057059082920914870906807380815238759100819247370345030169876135271846936351945156693979972128902669819271972409247396082697377402707764448495596026745068372640014701496300848570505324268660411651824712921650687725453159653662431698254362093267719419525402840184482010653956137429355014878882664472546251903203562355699914039828633645895093480888951010748784993253240037261841766736364538211605904216291264746067846672816355154297820014169151602271079717985821034885272990805474487333465550229773316103560012671121690894105360734223279860158555255131156083895334850272465158431484360284131676584710076357385235811181950342012430852360526818897684153189217465023838014919505343764339018277278059049343859490024190978605647807624361466690387616459535298601821102060677077772717349324842016429530866140160864044031602284010517412262568089628610652132048734605664351576125634118235855907628133588467035956000233709932949105045668655799900343324898943654100524538474784496751375345754614214976192239415576089245036215468797812075012357669829250436096469626013595956911244097526091813522900229595730573471846600092861890384080796391832712314687226236310631231868877342644775935419973600548168326952318962871664434248418042788473059457166990329248852840641174230055617265823102981167554720695146360695902777867683779907484806270774017271074916607578440847860003301823384019402512263906047316985739129213341621516343768458650820888751862207293181791121247482406054234805156924496349174954324332429700912398075067180253634621673091319247844709019485485382065356616225095371324867618595204597402997324169648577445540862388991994013903972757203476476288692635990334123680836297025981750707799020661106309749272625625640794300944165812592707216413339283364302898031252296064816678367202834790706382169279084376683948279154046022195485629955152823808892691549746348598462806696916886372412384175310113882264128719798952296377481001274502828836982614722462347588118680845757276706150373617072164399759812190512691023705736954674864627860047831820713767197131610479264980710817301595810460262541873977340008608728501203270967269541408892233388037895130782658636972541461123098965290550433798175748306704040756871704030770406496867511025068431015789391040469614865210458198543793288859123854532000481461947952559394309920914497428648405045280995803011717418221114346242930133698596017279799512584124692506559354079412220802216065622825272027285213767404983628393600952648852555812943965050964050649345250934013153154803067311469551223213503186785070492639552153902632669438068749552474221116970812324975061813836337549652639392566515282360243043246311146370216006349747256161368269839066794850954533223691610050848350577408376678252621901312105016359270276673023423209343588110312916555387146001071424472059726929178717177385750397539294202070240687331987202200476548015854256488787962750107074406791003646836786359904202781294594354958743877203243351602055961973207162693493905297817836963183351033185257435578239557755462103327182136935563247889307365874771159061699064554332892494047349580745466955402951815232252915836983025467639893273054236894073358437642453814567116206959171757026045464124117552662384831732552852348037057584674262420777604513644352592739507766949296271943125535598636051296835831089612556616062377152337225944728277855497004206399826010150654798854762493225164645345119953322273929084293302716383989988238438180353991040300164611668842252175920759376269124814338163627068252041014305444367950666127563169762560692271665722644056984466252024252271301863582267747394271244705147945433633248037020473217018316835100350138298261365473393839989824025203818347055204337049005442971437151687731145158234607249432671151019139489631452245246911954525510301265962796034010529995908640163770931716106050593603386904318243860187618835076430871731785032926808563957462257000032658333610411562176412553266511577495163865092805258300344358179750614401565462676978380624991301563619650610905316945526114480098541113539773896836335360687153958072394399967643239698076105619250219455503357691994241760635956511748532726242325195312688048252901820532412221399517312750034164330158745541247502876510123089762828140506824575423444351859535331373639305697573142570817010097277468616795329395280986922787630488591760872723947142579890511220063273240538087479052056862690389302868494886674788435564268622839123497807571474664966616965885640283951609173625097642741583685491102601883331552755440297383262027417634144324618517568554063633656609917683039945220036850246964695910430660035715354336107258683622940661301778430432179886432007197611977093174333821115713555550937446880588971496910862122907948289776654235602545760807843796668955629867546581804748954520732093761409401935338689029860829397380350056736302949640593032995514413363152886393859325321496175318855373963594329989022593821367623325099407374522983012133341885553041705847244452817283087569658890677543958702433022945449667998482882635954687106306399587559986281792628686834911324893444751642211649891026968285159655978311728970483417284591696258777178572096906671485464150082304572266655349340423289873683520251026115602354667276285479376997713708305644365586205822617234579426822628034086445989915049002888372045473109859524215173287485150235868761118749669788635994295436809991447909218884352850645584434182446968843827325806135605128731276876152406354704354283136503387096848754817745759788055785150191778796822457422736236944709711578292372290037182537208216034385948345893719223584405424422552459501952132916646817197792293352158942843790029996531481805711778347681827558368913402830156646292329984397471764582962844511259052412249388339521140395738352546658091452068587099153821632794397858726557049602073464678468649127495198048263480194018488794286092055288460260153775878918607953882849206224775621694644187732439488042418594387417327734007953483284746018478536681723217905104392290088010101941530505216857592144282942384920832662125505830361132428044531453084262027006474931251642896805939297061174808911533527569932923173422548692335182547810503026166617092535370820936283716706979361242367007933153803406747219476516278361420316070754353902874041245706449840934545190886325277432291712111280584881223595514152003085605999131390223325593517752354771626392626439725371556615948656631982476409312121391799689296817942637588116432612879009456993557950842895240233657742498382019670546496133064004525468417817855781330428973564923540593986323809522860664006301182555879119791650072499512434914642294392889795263009683200762538724935716424309918074495839825546236110759924006553333676182010836573376760455765628105116581570086432199404019011642204949472973749710576102277998063021174579181417179016845101538336494585185494469119881457698627866089334294777084650596181787364261800123027269338183958368979259165276586117256515623017686551614452244693024505137973091791622934863480803386501107247808668294269985557169115402094738135157457338292137927685300154240902260722539771807175380194738535108261236700323129001282801429207211233861310282795447532418092055530863471071769818808226709295592296901937746548792385175894497231207368030869452676197782489709672787887766572924250438320934852374054621636750450424105536054735925842351342813584269400847034223861820870091454550807313086964041723497031295683127710205067225580677544959411380383952075852363508673447680699646257598832483214046947897191744047487704649766953557228143437140889953527670375072773316606758164757539569566406808081518893536183530784652632889723465333363382152712025229937486037761806044317812726838742072290856122889343520073918599722649404944105734745030315094616901591312643524043907489574587272908063804232018341517415128973485610736811710545811428091649143489581317467631746487667201016815154673317736528316825683369671815663633823060773074138418697415302440907801699528842770555971904582912120165834297511364136791094548904606565613396365089727093943491750819805135839045345959106830716722100459462249508264917212058362566134123375909811121606101905812472207115649749943052531432555719705103159727369078774236641572167161821340571082300172446392515185718520420358417839572036289998719285412506075269667482857274866196261199709282963101469750700441826072135092753768262786173571848002906643731354821391208444016261640771826294986846766990568381408365161400647811657793604245542617638778081328825773127710074618348519997167082536851962403381778086794229395692316877419535759702256038233474069463381025327663522278824296288152688281566064858322672884102603144514871695797696964624665909303365601581277017947837026559352289423200249459607435173915853306875025211431145432340721904235316596439691978403596307349813981275658613024819434296695047518777222897929856889385875046137885650191168231778873044896337553423329779331755971449213727351586769030321575822171647316653366685239021010180756304375502158990693909550400508839700064198922750563411895075567698998379397698133800544666225041764790662909982453090491589831121774481163072484356386677413890672496341184128122875126347389457819816482088293234490462108167612207875903371169513572024435857652182865532835790848430915930045417206105798698203211019494021948615359131101354977027168360346727052371528752466124122081583295491784542484136308018050549166559442512626000252388313810560163855531118910819703698496700763541221762319694853685154482505256147543069580136518695822521135051797466477607600945476164043034757636228178417132520688223328706415410991610557848419230308404299416613922477929215088728914603653109767546416406658524554332607828233666832969916859661553786678963708563517856207038983848569301849515941586356079658980150258702167953979890363812345641229348627397806041088516692811963644727580689193613961951431068400061892857266225043547576943178819257886282007808322258280407135124537275339040463836767447646468075875131264684643684341474870065136323153474248604950341593006583023527324581377494740119644791524750222062004420135797973541503845074253540460607298878652758726443322281999361121203184995221127074541926336789030344030606569519827748491259587664407794414352307884543407916697110840685088674335430192349598924791368587939367665741851308576790252328594402337265614192237735860643223654179120784750863799624158535372309280540375540091988523687685907900165698759904031317343689461497861530527596654551652598112170087930491483238186771574650383615135950687986393177224866811903457198724045037624540454529699908873402676651576249136863195617346340315972914698008082695603690763666760737227460884315595433810290647359445582624163112988690688022259323492702221090690569449326874515822071173246478844527561058608951468080297247020098341615339576132588746110855771549422657017426428272082731672289342028902306106296575054969643982869701740931847741451512930388475884809704914471347509897303881570076190248116394832509804508924608642428645093523919421464228435067885377174018341316812932478953847657272977285540997190301560878887862024301261165535312639780044235371648072494703941500046861467606449341008076964282414780940445985329264374915007068283439117316828681045195118575534765706500575625273402730187611372238235937321291638904298237566399862101362781441823366391501965213001488161771623034315687741737396265197562560675117139356681234124276144601242367658093214211050729668007470291266919394670497151327732719101651734942605271083079322787052759437492379696802346069374227327503291777480727293140622864750096900338287564369463094728918027875652171955950792335823561581401261918672194938900428891387519024205244152056435457294720458799484588693615746756809276942786445045218174385623716923216871041981555560869243257758814836097215612841630880955973633584424590674703118856092065780637601169691017476632147143803086933146421566919571221009098041683386794554024691609710877450173477927415841761822210796210765223493823184235074813509092077096343441059622024462755579599203064193706253581585905233625253974800695268748999695500306935335782886003944125313682786160624408395071765784922376205540311998010553635508739739896574704038847684158914412728043516277694955209264854301407160509485383674498780764679280450165516157634273771459472325177719026440322798683567915381441617950522515570534309031478706526113879721255923710833613394150791280541836310606282475294801164203261030078027360889811002837085992583662629535950506820391098287815542864449010401527577384673341199472521375054697348632377595899972064828941474840723762871255106342563911645394485135844987365163309352997024631380533665421576619213095999938226285786587014647834950330022120586212273989935067216609912584927013272016606811390653434780244553156434465506148174682017204279040412275142050408228497767073864956620611437207449803406934208351507632616501103514361234730808560456915079606399541288882675292800631340253698639227912892290003039967166385444504012333999294180600531253314754244605907648581560508275070725581157826538904021486762557282726684919492915610651639075679156149416864881602490355656212163750004895396452441571251242854112861586388360906997512331712627754974666026952386961079611271435218045433631610604312818991032900564948552579736004465320842062245860641513242260236328657830168269265005422338265049874383017005326496255477513044824103657178468287103047989092934281822942619412536396890424391715987798556103562014757764704503805742406406522271994311784339812578898824403064213740853131836753818236498034357894559785303882094193047875407919409280829567665345734932539703005282846402839429851279365038101158613258559649687911190852213672877203348909782890676871344545857874733906823898198404762463149623927120758914644248450801616660392811241494996439651967034088631046987525936146895988716970772523835207468641265259676021344742095880985040898611186714576476593055055215281968054926830771465437511663965980605209336040255368931019220038402788165978020164553432215341027440567338967876057456748951932581725182225107807740383676131699807607134492808526480530491034510080241285150560917053899397674397472615854484529175465817110462245414319677808941453334027252207253556617792453059070278960807081602046991624145657310454699305987519329187115282133356062700078121084816194959294625513615360416131264816288004457793124047693685398033518412856573036741039751721320887597098305651595287963247072494514376384498323590184644843280080872672683487725852016446287493184857750865445909429894224885461591143398957562463815220498019963282955088624220434378497522778517168614064508419847654147552041263121259653037034817493996253927632324377418189629743513516862986738838830894543251287529212278557687663048287376861055664612325868155418643411662803764737364825177351948115187488581101474794749731458771925551443422071483810047819916611924731551955932406867093248236860901318320809493502855971441101920439506302357774380982996616165339346462557445395948094511037722038783345097548250128246041364267619239464904020213701066672084883332654872606457054587003370638798069785163376565265720125443022482366916607154342056387747003902992985711534325441793156395753005733599592855228039627242461616966591837669312342546242890714253266435006589511085874456952235555158132270263377111651917338133694357166231467087719356152308602061420500054453009150667537329188173754535333474933759406354956829217054882265284315914772694039701754188283948403447967570970516092605885448902190905089012593632147221668520139749613267907530071536676622353275295766736134790980869017751692477242860538712576545888943748679175649505330133962780248543819139192080608747113159247120989649721834099198893301555865031182990132553025917938706373112784722462703217796710164236724310942375051492681889228203407533181647094484836169063475562681054707969785491999641489723754276162229451743349549350011267615097868579228836686748784607293812689141464247378030372229717588100958933508772605034112687743846981054010486376059557889747575926813397145579567000724840114913151429933054670019858451528903182522048421984437748799655291174271462430869322682971684866793179132501046356711393355997720610741496426688357297110662661724242696584088922290054084392189145061711260696521782292514032912818796035068509061905499539775031061918283785936787743874907892891867683554224536235420090933114754683771022158690285680697859331906365373702786550569722773235223554656520938102983425783909255722524379911615913770798328699183809961625191471740691242199705816074647194017555418875156039779249987556978259805118653321557127663391695944303772225310062531121973284064548218343295268052815182538463480067520777288110583164714830514907823257521564516003665369898069979404508337929325661010814144192012541483832858964485609777032424155528156173803080350005337605213857198770639949818418840328739743104790602257319468425699769764069497756096738894092565384927697647438230418108811119843408169409504508968570418732017463804455376641664877092099634962212210142514503693314906775538905986889220959276826054505468895543483351236290043177127624587508200269303456376665206504772864717196022842677109206047151185981252964669641096621649671799738030568272504978734771018294440513285912614010860096289133039053448109446135236612437936442489297072327289018502853733333881245846092677629112459608434895040659944195495543685748175061901242972270736202737208321678911773029733299133736554170343196962748260984155520338076290524513389808395188223703884168078462709716899620175718166543492341591789279931146312505653920639427436687210517126433791763363086026374046723316991955199363630460286732516157795432197329229909140405337727370528775527976712542069457228822815356186670562750035897146311222879036202533596685083239162181546879847920118598297758346336229434745992920279771234932562927110556588957558664396188796078758130632986136371471768084373125298114981907210789911802935458065452403539915703395110192947518286568865143155247494337207838357767259064164037639984630875923767145596835717152942760818171413668229674246600029387591788123279703245715197434753796492133973218949206192353434264788169210271932976945084632420999685615860093701770466680046930000816897415594493565763145548924167436212986686591447937015544211012093472315484474952278827325678082436999490195753195723114346060638266634798076867006681300720604805233793472775894181091343260743963616746148610267345850204337510584796620657294868194980087738849338331939533593724625303270249861553595762497229962469538340381512440763316787778967575498905055488219000718769459254784393356619811227674358028585734587072611237083166338347486020907188929919132756027231923089503710168140580087840170589623821133761683455762314727723971463956877918934136857149590488357137614118747237954521755326791896120210938335239031898096076333468735967746250001663356538197326846888997034365725384790497893491262175890519444753015450348885166117604143842880000320901573643591464003609221577059358569026273839440447762765492716056047014208568244989973736613714776592593936251625148127537872413711849489415979373855893759551615659108472801582259642489557342401360777835898252624147718253400798585534428262277468379897054978121502586527039308732030537342025876389102038982285632300418787385232090183777407393220846445750992710442400981016748533680360236916428037583373657099138725041133557406847309418323347075678351887293712788400991576934420570116809700578078596899389903698021030805526447292126635634121892956342208174282079811631743457551347510511749061667982152981995911578270238992753317702113241174402287293165234128248314789528720281726601240619401138589259165353458379371706410162097285753329167311596076434735554675883061479841259420415746468589927891478032535238465631480427339735487175058135271291170762079404204491282745555135213061871498059379927665075343354750809267469464519118242404736392796896319082833122395441412033307598658472292736887701579081283669586733955791868208396938029945545387728302827802272468886619264526177079702670010566908968273931670607868822505473170887203911177682137057401413049578953560156025433674501827482939810640356082966228819450707847324847961009557271170248069728578441689757511512588677178033372233006905058650598904971866204377781055380463346578245345669010107988466995535354463624710123247004248272871826434223408239029374091507266478451242343164712464134994922538155988879893591269789758128015477481448352528547641506711011531184920138276907041019892704077842305940502103070963776126625376643107431250416371672291562823744355125209398093802571728438716154810760967349213778187549889778307610064175592867030991483082632778655248897957631332269438783734547591154178626496237093354494849204670859131486552867648360793393774461038899324020715709993480390633038247841779312135771825201793332479612294578297071373491307751382582582389291712844877284631961326611428444020775501505402536878461843013032612405698876201853965968677394899444769072029001967427584636076918032263736646697478508878754302446200996988454545184892637899673603837382882571505663972759252258765579587254223558573469078087041326112205486889234478399611124393295699380075283791682782675206609162845319759363582855891762996596587322753953686841328562044286168089621916638355764732828983000449126042266712370174093779386041673413949091726261175370245219884577595590733150457435082135086429791448575437694468814173087681099059595899112001299097639696710791152881771768435792044020710119253159040092440214333277116890328932755435135781779698332859377893497950280142353314752317174576627540552168093390421362309866835282743283166012926270654591637016857265846966298911486315558181304305947891893459900070129560370600106281425835969611393743465654329626177692598954600569673880257821008218938182875298079650189509409832218942249842819639208363520513687529180772952716443191206372340051771658987058708669203890458167025290437545422647590619924032951958717397315111795495848532860214879246187367617343526153904259711318307438692105872122167076563069984842863790544978788942268712167923000560484658527504355392450506608348522591736039472174538178443903795041591829928813064973313466529033100985265702485986479455951738809071880813370010638184302825683831124466273058005212439460936870796988636961683033604368075862730913071528166370783774627357350457597667884622171457088743869942442259738571262411529408664827448576500406289925453858156798516678982731849874153041070144060988006477611820008694663340181150921023442967446828582399405053839321884239583944753316387658569992440049670732484162132294176025105016893021349263034055708656894431955512388500334334700744350683048548298746788798061599375834074809916927967286114197521856419004836849144738280445102784357371973014464428770780464066476789556917322531163648268011947929046358280625719733571164769889636294336976722054042513302779465698628650831901574883783814656929771042308598909348702491311708922903643875395876852238389960754080634957788876492657367085727573040489313506703661969126008505792125033631892958245933522605364908383364304167859158136092169611152223682124994669520537630476551090427000211744203935647168349661091144173618066655530040994985027314160556885865707969157398122370538368222424560244599450498867938827229092806646757474834283060542086418757878648758217550263088548174402488982526689635595525289468812949568610324666701184692130921878191809430629255858114658391832279510742064298024274200878141423015804300492482099740316964607067462204448027267255544813598079330458504671289421481946830041438903764233200600644493486798550258700022233858868343009814378323955901120364580244773588504762982122432534746075619806924495508155478623502299601843644997888854641371745762239100724043721593273510119556573578942862778727110253374823032282500542276066766661880024345690818350537719378290072274182586135485738822960914806466660918067357947213960782238946580341513205777233064881368544497438468627199280845250610872037162660363905437908249043811321582836986755405215048618621392970702821764354245031160455531539202362539185483748441982103001201188587327447325770180805304216404258143957467582157965027615497486131129934541839559464643660475862888440570600221831655809546095830512657888391568922340523459168952060288607189542183161969048837035193915920149499588272445854732423625585448798212040885949250139143750890030244965658616569462038743578573783197738359157355535363891708522666005214321770779069927969931472911647550009523524683283641013304734985095926389596809282035159513443513478019341687855039177231179602148683256001153033754137100645222696228122601625096259924107209923115712301783533788342709971716957161518619587617533306290540398332769314193039153617817822988095828576204493368985339097352862504578637116559579418596464582781846884416257591001010764449745666633568335277988629306285212913366838651960935542168004595020986239309285419430548297437543645031824646512593342176727447024295486749580634828199173817025160505303601493956710366169092284247448741592815500694253541773438472648730326960119241847494901064749207601299352789731175393265343681979365254991025729747824185194790144697033261274251812228829041620659640718370807678874843161871814095956857172168076240470375599767196266338470835505651114602994818623313102365465356970168311207448883873967722522225492757702631784624816937606294555624144126167099072014272042668911979396641882843167072443074218423299177720991231669357433398589937415698066027512990510437634990752919961436284016442989568018454004761242019290790143271508880822490709726099838670136363221080323646740420949908613198421012666223851757742164465593576676345043217418284450737384006338636367874558529926691944974266570589392870186818305186066104631544540067140236082918513052171766846357022644034285480852430895210111170594873031164481244746305618086574639170102459966560186333680147280635687984641651493294027762459898362203637222395864349689223420321687149171489095461250837038978871230044985155334497093770399733380076378852629451243120119142898905417857210084846659388495217138292887828559920328915194337176692933683047287419293771132345749364677939161688672493655643859891468125538333835711466271711874690753706996228394915392424646315933338349388245264495951463212954747799257374817527999741240836219502614767900126966156681647422278392433601571149220794129845597106079317633421392513842489937126177416117888790258671623826953458423824947620093572658831225425426463768394905841551291833279306963670362507197565736327477115299189083918367240700254355834171745130835228805941588024329439442982416877240973142444761859089809746952667079181943062936878319550842274372748574080453713811580489879450465858039419005775100424843872705020359205292337725685200913651439416513998927947514106130089714031928066105903681179515535128555810092261022599966625554846366388712664485401151610475756172289311510810768049993705256299911624921316311564911044591769474050558435788163190766999353006103330610813761936739047201305679607252366135559818999675267145283334239806213903385279048604796367012769091262803484221917331909185043919712811430118159460856422693736716828261836762532239477999110528108444070527452977676950258186974880354209385326699191024653788093620982431554819221310870006406056207120356245600133705151378817221654378127539640903726238409397645509339641882160657890163075797445125709046292121624102693867039035634303017227658005553611512951266241301794576725080359694465242932860160184369898256396120543593056580364477882330075351636384347776580739058171610874746831801452627408610743151515754967862853425856806337395778739426237290918896462919755789093140287476008062885788825131240260581295467553182209762887436505429481524394735810915145601609889003096933057209879683623141214474840302574758164878273278561177678157972793863659577108213608645981736215637719671185929340206262898296528343444112068505800539502599644087230108171958827410269293231775670383451985758044796272637305897667993988329201387595541157961090606047638856616881467967737430351014881297220533680115029385155570021139926588722825130188708782458084612834818849112789544101883843434646730321845523811737305217524865170611159971288707858478376407932404744288890101284453736637678711950076561197424356714600484546200255396769837606008786644042885051459664081714997820801022675990902809296123117289110962910133273515871680697157227781983733625514616107617728907907739949704823447219769298516766475761485628115594409080711998429072057340287448294945123502365682546152921115109519610942130856020366134497375529527899804980745913787482067340840641330149582872756074229016403462703120713592619254412350505758785773504928216659032095866272252687766630898902233017982015639858333805794349268950305968192373334514709744729552276193386740320311653695933899257484577775798343732286411271849912516541591888752660383615539702692698248088893846513530545703717609260778585211257289033047953248000270357249655962208358258035594881929865850096233817757427594422665513603336843248573319342723440132580313361807053249711444424417138036617451962938561922408615555191027872309100230444143729794927800653944263603771377717309827269480263068976325208945934603945563999534291383380694259363152519911575260443389787731072722937181031601346578387469887439929366530166628805691272502377829078414618671442117312482229659529630256006976898404514563008414741439990288716691958171701981458847798924168443495610460305040249112217843973123189527947590283888283191148151599744116819015217559157215451051862097850095109596607131796479237806932389265135441806703949578392502239022305627730434304849254492332394696122796729357016134002173079840712019094290094506460262603106745756479145765502781916773667302556037462673854961063506728930114203803141118656428989590420161849756435528957015607672314793478424596486190693969378115121941869396170075885799118308295173249954851804776341719169465847416227874979390263643108791147701188890730056552568130837223673941930411053957345170240946087720515036487767660424669034244158215363451535355273048593892206187856539872845743782686846029532404433767927855428101726455494233749931080779844124452502048734206817223394648156849139547676529186727765945056785028634343709724251681443371845047072449576255005633082064220568972386977794869581482836793022539597426495665592074710615639616625909071651209753864430286244443622878974891879517698737056332576981546982393447740697830659599063050871422898989616823301022383070566700844404092429056268111064968311209534995684919779822655860743500263541165839289810063095924546618562735672214955309418093049347041651310485158139387913996293996314785109339314983217707406927225322692501459998027026842566803114323892728872160006867035270037970816554648424133918870048879733381689009745947336137434507700423960957594054985724530164826829328859689697390536703954421676173259756494913297980567772412133110498020918728804076179143638201116058655516393962568572727102984978039516118739948509778745130597553072921085750106104922475183235027842029458088030332816165074017383400446379537366770542165932169854162434736811025127613006653429070820524567772205472535877245347187416024811137205337284361756200063577254494100389372002075539810900563705785019594718172495154111407264178268573088027595781397440939769613974360539987139610177222055200263658214465776163658996270742203199063147195576835277150358772528327944238199056420758023592742538754522774712217923932869785224555149653152771309445733974742517142394443283738325016520087518907229875154684976965451026026128739556209426917778541337363371475466789242494159953053879157826772925807701479545154913936757410818958585724868530637677366636352386603573668819303863044373936709553916011455646269725191115545726479781343755943321408741538957452100064709717703795152974422210406174876801500847720345293034153053955680089398138347827879948171163685544829449781758201878808161851302738112808128677664660746664209968136279942651555383204682336659858663065558791842103661797493756870295064540778041229250553129204043742437234551474186419872903659104154254866458442384686265816452450850778955425970709495542769086504497640886893264488740263001831673775081035201731416202915178242142916339120050578428596941123460754494241127950606336720436399150738955142836558869886934565051140784996823245575199652453458535334858127069676757451085519766893201974517853884123532861081784613980117053150373206588187462897991036500945356333948310197876383966229574201140586857160587490728409925949314619276567522856338235322597201846764825445799562701114757100475032511500628418494758653776115588009202973538250348442576523087446139384253959675169613637655522377959581140528186430850240260358503973890286799376417323544256890167766006984591721665118447473448349822956562628979270590965886996389576687615213757574341898756932229469989475501569226454438764524443914081328837272398142561507076266455210370474644164186830662315443610427017562669751485790623629372214517146537485168653284915761670131035024971188463594630401909641558193545900735924183533261163351547055482824042628108289680894829033203288185052919450537596136051055795256028150348062653495088844158124731200826410584739186608018626591377696470714619203885016635091072062733378356769836268284233044260820915398064808370024128855576108213574383960104940783648066743143630001781149774977391343396387144483363244052647178890971197537022189258682442326819888657051155555209353376214828099547533565893247724133446068262113290600389736537724887001335886879165393659601145754808715628681906097183941757905449273487604117383125187248626663541576398762169372756557078805127891594252177370834522258111738969392872843660737022627627205281389022388080411475173364098295766282422472699406663693943264815898273972618886065618916976240422930677268463827499558327647043587188873016622119931817768601621471399518058016060142410541696860940658914878035220278872793645070977185305109486574809559284431650739667720416571674253260456313726213159169341592170530854732778794392513150948440663751386401935739016905919710007261761256983511796496893704652025174793726104633077688157641569840575083756574999187588137324854644641905695145152944033464153380654847055771093997483378536273599266574226547824773225015101129011693006904232101197650555172337846300807978974289621272095923380308958003617516204724652718236322350423669561553977322946441677908092222453204044427266864366696087216477403336803315276848870569196204549759033858263914938209490806307003455657992386287878195082602028123448166254558745572723068236440162536282267077231834468424250820889360356234688415002869095014519471044168104087444707378294561641266168333582899226276891988951081047644513706119152594783563773670858454292536916553749215953800232845906084304505298555914334664161408482370127958537299603947190520566505383340136589031080253051207863876614480150069554377647700289247809880231600560429904947706475716179535454947275140134368837562639158873961180179737904917576617105911142476402108008193184743633254641743359312451437465980685276430382810901353958156914214805518268298284476817666904349954072500223561154500528072115155344334192363492374384922125519771838014021131824728592451430659096220083781065534797694204756385142180516412068577773696732699708123406808626262296718161340183370375595804964552311652028006704691259392087841402174941934340332217235144020613210415477191811779880012343181250298472277299102496331396819414651022454489911640622520109610779313691706928341430914596775714542235058414582512426711656889041604776365012561394216110847126856857493409439449235540287732434692864507055298201604905943423733956922559539501133940217700725024018724481236785549210597675780241343869536977214294593695750106986845552515778966221463842170375594960709049169920077471121101315210118438137196092183704072789739267228116475210012709540434623342144938189025702281749993874165402227101702866350351348718057154122743470251520127445650778689379927422603558065813989812216440984886885572779599566393577175018881065977539400779337653661756177245980481301940983394934999517145266441624753379583761259839347191665778052150746701955048419059028082540590902482096972904759206143338790484536513067582843808216399347021434286348280098331078416821102717272283162653667373840856526085371745938282900462905519919122640739058432439520866219713721264485694559459520234542759285060802184652929438868915339567706186175878415546461252451577558531437767773940890479291527608913160219090655499832969227327095056651229765699366535589073013398009474218313986007124482717565266107385485422662390286590913712034301857420983550076613217076198528148507151773342551600898776601032619368646462987971796746305452824603251071688844319355293436323394255095989446059676360572301086285554479789373739448304752837357256026561269416711581019826238253575240478180995862585475884304128779447047684048670136722213863755695765471210532874023924876612359034169522955611688839788694816489369922334087425306821969896986003825520924002917284183745230624004274995811943683815941881157738810910062906940894272999168130565291393743209731449335643784302464906033385607462475692620108967687595528946682505473966266453719291385359254108348398633115224972196816927969023586236278755046314523247192299408391564747543488937001788839577344121859859543713533616380569831046697800782213027259365753975078507713840929214600246597611066541176198716078123114453230481152626067485986189147310549710893740008280415832290079202252087069589329053832558660078073458202630129587992178680703821144114627488212542051537836694812141437170277157635185690818394133483884334051151316419565044235339654727443764767671519613744176183243257394940131624428588686582708703648023176648125139172818771271306962350099641651464465724123141608969965825376801697418831713187934977367163205353331085387332209362519063878151798529409904028493462658001768123525872335613350158068685225391780303067919937114909360118487179147354503181796522958638572209564845765370445986179584766364200506929332945478973678291266732451361963015074355567220416680976368124565617842029232516493941525571361002399856606338383158830818745111088891241228025121713805030643711386592152783367851015158877091704276955897759239628202439560805557358416250446084950616215435612470681112047728222008517783753005127632553644593788610138979898443778130147846559060688783799138245682319766532531977923310661233316225754721389241639453728083767819505672307944947987368076133833108923239142577668447915397334295771950635120106235809204824831752686484189418451721974109516964376273213109862146834677304170350680888088226536208037022751057963827327580112858423228135018434294760217769809040414958587494208434232477486273943318036456941418969897318269959331520407111061704556408731222350715961111748589310834214690909710169276549840709762187779812859370795418142281156629962059107568100056878477957560709728615513508242945423291126223422022980264370689656666176658328341989808566591683382311547105009971179823611676596427334962828345395688256538083965721807435190871115569150800601255696839502918143604993948891549582161275282686057153651808314794495985634248657775951472291256490453119188822988798957228245760144065968792383456095317401945366327868598798424119223795976772865575294188147375914133895266650382139019270546246535313453739422004432806139816915201027826077244745046532293971355261301239119821169516537738156478259101323030696798606215406279226707429954615363436961727110672023809984910399611646706376850839705715926288756720776984901938682461915490159274094661975186239970274341236188861032190926742571356845003144044079728743216822408889468478333020598231609060467568615703739852509940737267591127712905894324760765038832115033385130335470767372186149638487214326491041859710604423467890775287316380817944782736764219637582398410280478130332304266377609530888883442106605152355848678129999343380318487416497380966599725263275010070105478519656358715468443179624987932209687920294216605134883751692223937295687524087633452858106830243549439188042370246775664408966246693427502792893199047372247885522582918997387911751849850529580770432932653371324571584854437898246617868788433186830252093791358918393810138607886192085801852774096943003895949971658347599109639144494231056895436164596918639407573697329700738545126252187722842570447460051632818524033386821868672876030432907129276409465271947741267335244878755628841612232064481268536839972686252551083768920658951152095307905931457795907178647325639113851343247541382508318519298038224522484926095037951806768587527305278105036214819630039358773685095129149293619049759268951586818099997084407101540183180713589489270849932171388786101092618777490466105131605391908398973331735266693225817107853095703689837677614319720925392701355386802391087568660753955265497754383640195304633579329517230950051861753535498760182318154541629803487271249357056495039437278876699902072861557745628206140218226733179917289667772326582285234246322387185503495006092173298679557693298513950727807216452636676972984057123136960734484633631468315931378445895659365349501354419491611779506087113682165540347677120630520708486540079168292762799554482612981902158072381734419668553946464941083581662228830934280916356767941244521961760041672671501432766859933253442971501448694352019940069923995933246974738520915964712308514763166337043607927278726856532154609883105001923566813046789920699064805952880824684679302450930324464901477961009455371677449692497966016991327598091084518689623900553677219391365852142093840570218001674523275215780546080210112944910611054455947371535967404831814030575913261426560055545492109813409079769302427455109288803128948018050056990178297602138398701515912981492391185413254094988882709822707044382663387795627309411036517074009705923396642367481440102474114035529294804754263185068955581633082551524002020445316836118254445579387716050971702038092456268229232335881001694816711846385138673048596603849268197342018967381302717651108440305424918511409892119467563736478771425774407647614278197715029786678320710495711258976545758467638420796923582477267200013531723905826002025076240822384985425222802835797263252699540163178228898370464439472189661376199089177385755516418929245545506370009996305863902906943120631216549652328112669740950067956162914224338003903576706314603472931526630887990481872033327180307181376738018263686381455853272300775914734287152461238991319908333407498404417675638967517149743350625977792778590625135012004506121957050052882882778383901086981004951444139513938179573141600396601265839756656842989272267677059482633104548362713973259289118894018625045058529066227126858783547504428986530410491164392818515455809373504305508922551409439024576838354509996114934426430725610847657726917061479688101833810383879316536412793528585654169485432531974796299722153567004650789983520133632782246810129662916490690080709778275810069046713388323636673114785269029917411629617313204048353538391703605073653976184972351108373311147516956621934599037810463610252651837616551675162873733954247143441516202422529264662070460239955769764033754205488460731631390418379598266129147884202315571055217976779730444369210825698761451070788867166341414606215276335331223095374767042107725716870480627754189500999055351594469675942149323430629003740960391299925966605592458610051640131973359686101952391938646126128410776965591561921568275774642489500032010155325130197380256658630169237677199851620174042027233556429574273383430203139613500358983273657654946715598880029031191645409792608588516197900804711057315224966741013295690112745699951991434478298708065140612656729814878611986853174277722692410644966221773502079393286050413852598412008097920772009700553106098545512371133104577608236089175974291726987254910637797265853772199759196979030961601935806431702879486785522113016167354335929522362710406715862156651280639057402814020567233269125931039049807040905292576820004978794237652756896743926973247282248721143626584389421871367170548261627658741854744383580203308379348192052616433501142694859021255521889561528551327500635766009023384373864780953514339472557055458802942952882222412335543822027270595453770543931578530462473909785648624338411358117261771418975757955565373776977503852452263297301179621217063291265667733336626507191148938863840539829502200835486564574092943962028104345895534878380197513929162940964350786360276172803119058553365361141374791300617035318121521207081916677691937910343729674754771578767112305780797990753908782335139391854574712602862797035538595013612788140803578133819407157186690073096739169663873273762965467904515720994234367015787920627214960602188885296018963243954973246467701449784473808681850567621660807341183061163485635108421712175790135357020237304200689625030994972843012811120272292294107136627173490671991525418332766620326789001483166388861514974081010801935719506479549799947453773372873734037027631504154861687676978961251515081627818764789315325764274740226188814863545013913192115427393516556860687619507266934348119528889542577198488382667479226634404900845550797953830700033500441774773735186862229171307159881138248939761879145941723882117353475686752243963718644730846868364468990668768376617041124785063987345838641372303223418251478707790414619718462804425829786247045140344857674892411024067805525548448770939527547896855738245863564871132837666049633012527760329393006545458065296378209272684675768241555416353740774064516726800860365481718000922916569363319757351812591124888587604602153155512960480064983795104276618163974390469470555535621956661812463427807065313890907841338236251318581259950599248520840893019349148083179208662560122376117569654539095664270975306201472799683100654255345350226315555416765667075002916159399535479956180708726055688279235804700908911011309767538495697808008942861233792261600248139983201359772367873880914820829735860416998433284334664665056321641094704752218853416320693035555942605488103043411950035889467392696680255492592873170081500336779618300481080977606271287358913558243068177356647622151769497978629263465696104422665210813353728891353434095677933825886209694682772181857294361030885039511703261920879983225515429552711393307135071612987985396505946399738668085409233392745942220556755092229002475648209072686251016178119189946098038849960941956257140545085766216586094878636693159310529112697624723140444121106365217869748372073475950824756464987954452664650652273589621587071522791286573343659579623219643494326040927445342686343461503299927765473954548466052117609140781317631538020015645207131713507633659825113017548918268257942329472185649732952641316563710580593978613844343630900435669132350281082456840632030699494013597435665420980113866655513126825824899197456311809275012375630478632657195191949977050986709387465028555653351179392458700368551507226879174957096388056648820205550792154271722558137467670963568974003778384340167623328101283081897737659909916473052100334040575486530007795902449731989209148697618043146782195285483908056030535511662225967505393316626986590401016322873635413966115380743314692249074907949895837238669834063521931105639411791966107404566137459629202375216407081860736653162070255874498775268876199614976852650616296913267016253752180154434453026348557910109083057117683627489924129414037296279635428802567529655676058069005569166186810236469966962762300202193521689373411954985106728709977633338084344399266328063243895264307035930640757314945718097440773969773581581280638517310676793503539452865682334177813878485464793839907286636603314410988685355912213068304649837747727020460008161612509750902914334321885925045933985587691905791501216295908884104669209661503575339072559582138372063342079772725360701899672022758880318833529617458339699007625278286917290582841556832687869439371282596897654629255215079521600054566725853956140997632869285293688143610798714521046724577494366484476432287875074825725049469643867437186940144242735341955557343345260659297357875223172996972299335782924725080788814829503219175965388800367150943523006032036618179167463795148915513080678791831683976685125219842795251130648581893843684146004239561346092197152604812105386787930706525772945267209217386053132396656674187069731203056762059684150433425134423979755104867440532911920632562878266169087373726471984147746512374990521420456761531577700477272035115305180508294528663125211261448666092795671379902960731232112468074704794746913459828429588916928257102327160441536307255664483457184375037342492885176650196069689081938203094007548238583574135171925664431648207037913673167943230647820557189345350382999006312596983775608452957048485059555165428806907753797504038243211350842878858763472053753482982114411556417582648617074072623444936806792230998338000271003798246675727611132680944469848687379048230864400881910386960474626917899726036779493655288169119113912338426910586149458300715273969614492383456471276703207360008251110543299562068143239687764130689570546291995843514361428736887767198327115737601214174170163566600210176765249778806925781324515754212110827276450887253309137100177023994727644982321462273394226870151337769615738921377843722280787667993101850164799261169199874240373349166207899829780187052636896605776424210007871244552147964794465536420670743559557769200874667358280819476109673887062734239120601954476091330401178853720764678522333662113682494183849447250616811812393637982024552372942960364530589926698451020588434985615734458645925240304224786414683580144114138551033678949751094720491230476927696500429797637716415433362692330349582282186757285478326495066102615177839101993776533171095190070926475535329385807166511903416107103177129367341031488958707149325208254109708706843647101693151945796394018750854451477492377241219913550526564675327449905346368246803463527792473166572342566956835020383601336937521849957184991150714563808241108176827705095629853385853009098486053643790249029130020507168954634321462551501027096136183223620399628455505069234251703339335116400543463714434048314828278417012790238437695292547544737957412776237224572981765295884619895413784246110756985491913190876731860527137669228852978333081259061399882617699888802591737029076634795006186166639743862206027031942647660583085465147350758577141003203361597925670225716105601063030777137360535775638453953712104382628928202751540178727015603516174239802168342051305942425545849822809976655191991559753592378764543165638253571173629093039856497071392510757536847933208928694416941034409570083876943729388694555429808229715190384163274172395933309880001987299664724839771943335312770292341875726497011510772459995423809068613243716315072953089387590961152380037463274986851857971449658995653252429144886559114203450801159465655014116103595128058563013555112709436535030039059545363886343176805620095255358561042388894705149770426563387951096343469986889424406296032633598336268206015516438847805071174704168119869171285641897976382829764999059765152343252476367098144469337537091329802248052125924770592446879193867823281766779318923717305658070899931666909757736494376750042437649706871478503147630630507811536221927227138947473173546893196449375572496325545403846621370269124011980983466713552068269763436279172645136343346374333813360017223761661907182351123507390921508547607698604579025573969014358464509098447212850472194479048784477756064967805725740489436989835263088394591469953234157269641096951329148764262544939988931769304943985591636495397967846318734036532086453395129433595668602921300231536955721172951707152072015139998292243048114681541827337421509808361910234857398813043655985281262212147828036300548754361660501515771204940375495008453534266644621377746328729515169650986695853811741224969011318971170765245943046217686128504800634412867469853310733885947218768572986465174996613924371868181894213245684096990172695332105811356694845741740226094838763064505708971094979449173468144096196002826899705383599768204009471882517471414126049943611391145665911393340927389347103614813085246261219551735333708804861271959521014730935027159527789801052028291974912295519314718791265752478797224752481920455390905317340848999993535249788009197617186227905913057488117150667088088285469504687978498658865581194349491347383992952098606237566498718138180581716900122917009939634742379053340058024221049063357144273046446388744491619519404892398357655123810202039681770281332767225109705706919021864928802255723089259731135719261455599308194220757525226285955470479315296149815707029475049275871296674721501559775893202874771904848346120449612738204304735514767452074801179001351768721925218530880314239659765481235481396217370755414744461506298086206574893883292929749180279761556766966164701380526173382145133863893919855714907670557360794842093043439976922591561366084965129807352841895465155751755110663632378427847544426667689917071652907778926927760393813111256915770271251672494797988068911794471934826915523021435819287994354892502665626333207178361087354097105014844682911866679416597453919363127501148571744741854002306949143538898171072172783051077430413379530658853655911202453401611263571067130849845121609651904720983663093571836889543594861400371144541935807604704236740691008122774207128284098314217887987847928762741718717118913972951790017167606056423763968089997705332549917471844245591262715278510686485349796369072065405793186212747198780765728348880415523724672618593937516067209947997237218156662452614148605386157354116074000880079938428537061693948139525523517770456628648482675566576284601315545777070965474097045879537583106092067774888660710560735367733944169160158460534513135548443594808367686656012432266773030465444759703531444611620812186568026247912293044087959278038432095811289887523891793469761381485510830416355633950090582447220400947643173683117898108655771486806197441211874219934125320326146827518687830151438181438270630807368188806342054758513085981704582392822911708541735481195575255298316921059385238849364057669154583869277595642139819892921133559762064087282417015001337881377106605698267515484608400973037895166946650895983823866041586022363085547478139763267590116491835070279215484909734016393476259675348639863335921479261088915187201603776849298523283485018084773978751924929510408907750755361179003557719281164788550840478033864287630773958739104934052142615884413320954247681726198125413538820790198403407736184566167775250196864995021978367079645579714392023799436677285044084582517184229658868205801290287118702393661407041808391661926771949211497816737319353292140161999862105453957395057369234775002391888768386267065687105903581948655384473963041966829207188638814798737708776291895401143766623173547440946115518781380000969142785946436763907283337673258244422111322014058540479854714637999578697940287731462545994917168298284192938060892769186526434320524260807822022814023810979959752938851761153623930466565857317703727082271819097938048151456250168277423639850190290815661875267621158161859520132035277842142072631529052811306988280740075367768785218692346461996708363962126646624814706016116497267767374771305917009626425823853571077989996454003409305586175196572226521694495122664635088270258456633668119095151909962705745831927009778562062073517689763279694325427743477694489444992894194846819095515060009305593907708237573926075753541318652719849568086553210374009444086579635523798920870409092680719847872009671455516390826019704686727476403980963641014195005354593929924888693409773008765094542847052742082005338537189615726192468538356484153659122519945639675629107273072329648136761220523340183381065295680978387062980817195971592970870309844008678007752939546921834180916955450804214865639596627451443901468855437351258347667790287896684916773721077760537471261153454523130285752117086026969279413151930858257588551690979271704066769920643287115803138999944365469056739045121458081283587166372267885618740159054398109497852834137962584269544368118413064347115316311974357083031002092308862676170544041707028719574495305866299782573088286069295575366549360952960936229195600132533017449010010843871314378963726317323758742429744185738004463846329134743420544172532665970959495556194759294958571235161400310581160329896837968143801911026575931540703688364382269299901339679921498465620431802798100163764943885079029707728443019743839053771409999451465941266016405771045156195883959468965165827216683103752896004754334480768873480296917452213498036654640425079138966312321302136728341908595668750485372131029492787339474193629174737926150546435480646248147375209050269261600959876312046092675056302832378179440630326713307832447042950339838378823811725476323474594232161631265378807561066025465090746035535917845914709067054287368820825460437187743741069858940424747737828877884661789355041276174107685889699483283594290961915291969565835606740452224676235726018001686538238242403380899058498136318280638246323333261842051473038675513430552399863069040586302260435819894647232129524638218876291291561554532878192071967424408609530661645551161342371438657247123143299583795263696228569075369111945836605408845382938183731004476879733064341939711033982059576660704823326205661041688529314906976062330580178891960816813792276748822508632775585782754830181022320460131016374849254539062353043776587491637285219367187021952201204602118255159363918724554766303931440197059309225105701249416605526492961704622245360185312907701060760167097989982672504319002072177406446515863673310257730174465936484814565703587129181174817823733457595220303389843960337506880299894074558242334025810532826935720001485641067453358997826249504330752320378658576855395019001844006264356988096884810536966121619266946213162494613343387707596857241185387344070424485101735702337279699122512625163592190494581014223723352852884017037165835230154918283329355552512889839031338081277802152634037803223132336826740680996820346869226571433771212035436548006672375193495970753117086155420009998969224100125866024043576383115867856396428287806947916168300360533299058299266741301517442040570744102427946530257976477839157870713976871409315927955818944381658022773026776239565772895250540614942412724843746003168036016918487788160949535508883315048163590882756428394889000876973027022810014574531131143176548937484918716399175967870852751154755116803272045039850882105661543900823376117601871705064425393281855513032265444297032466924956445858722640816963380208739302464487985805275159486140683132927749787931076369041597386523516045750067918585205699851973475639216161225401173789605490327716034148890134594017525946941798140807303322667874325404396612292213298137225234276781433291827889862651858994784954817085524018851108268067751774663011140317833761688056576014561473267206446168118438097044518308780171264907413484618445260997459416089780753428353193933026520735016753500903665961957184804994933311438115136383248626273822555497975544274240394799252336752717178790193442426635443472453207191965130655745595516373259552799861232821073801154470673898761196261422618707443211866249957271091054491437231690517085071951703448766647495319337262754164443972381930747014126107351449309910261223212193729887151411374112375520151779054677207220942574219989586158223494321385813391493371269825907241962169539474154273937462168717338112023923374460607514379207425958361420544207085634097864886922149206303549392663258723016630133176774611998791234546217017398271260035914629656248234859365317635788148891778331484094660873236513720442441427306765133140749836262529010275777421847447536566785226664697442462205683587348068496474822759530845622695488861338520970716585662792322720646725274006389331755110313294963934446702094705573497126328953043773674680353102747096140341806101391169852659409309026040565471854290250927731103447955801896450977449239188936724256557312396421211165824195127619282823824633571737815142037640985680739090656253298494262240308407573024961036791707073347212914041129920402530797588302341080625564407668715475529379126385620280104093071475625923295989465491933607705555563390853162468139971923439049728264460107010199644933776867319190671060660899455257267204724027820438401282390344021228011015542141386924291923911332722888251192495412106729212128574838872640365514750858570065014644009601400689606247473100400643881160104114127379512861120308229391935920459912603738980384417825784633794578902205099859125609845330835634250297782511571790180475993607202939679537529279572221832977532139835185893765530541807998469722606298876034913949468989374544778849812005610240100138662072839647121065919002338763216576257025208924729948853452975225124976164981537679707350596458332897731664327325356234060696807649961750274759040917479867437722209870349300458344033104004478536020309752952954230043359623399040702964772872431981411223582436001907446658570098738716546972170311048445525641265127430971860877660922699547798134672943673360987570361319686957220540254958272236064512008898361264300424454471057171829113332300151723618422664745525587409040941655631701578646510735574887099397972069863917415652591506625448373404394249045293471700613971755401240444707147482707062719283670967552407837428045750292983606209278464165842376012827998943687280442047553209950657516948083651650107570893936630284442354065524645679137537680893048226970939822466802057112768564447558014001034870287165587544646047468326299963906404076358198839537947787756258668340983478436454563772934722124535614755155909394857470076645979896666651712638536567356395379672514434640140213790896681209648181897931144546510052349090451798512108043747757820206693759631194868225688164618149018225532655608452239575870877469118187576221249819947839691093908001697225276454582020973370385404066805123503513615789842604439733287415293130662664227192665207032787307141112658441812638605265396263069926624565724695221365085761694245814470024071561289765674941868088060888277818185858096887551979734499589209873253776666665635369993689942404065549945688685804149197726887466998087007538286504968821349937245725870540183681760049540235792553522833249110782566492155218981877658979487684607912432609507379260319245907424632967098369337821888138823114185933633849788480514060328119963701947292537452672060714480821085186799318871351835964435804391357827300321658262746512740625884496604183268610870381771525106527209006173319747800407465626465303923496994151095461469816174949804039840860963046472484251495227952200707887359440299082768880683463195643049673895104451440449880077244253056244698664854339089636121728534535672144552300066569736425120147075063849649560553401200378561922294409530831193606109209542919721696603861597095869589997106047633496495788277765697411129636530415209532343260889281949401191076805788843319511631887373986499540554457640342857316198512666789041379018503083785999318892538075562046883963642569496518512584315657386162975219897273630111693103875778444522038886813059232049015273658640703724415122884678773931465411083199927646023175651283248673595200829975199300690184875844126690848634181564462828280378829429430457062179919801550484131763072349429658980054343044493514523153069015072276539671060994664959687918431177615571735349415638224211835191405907256128972985050868189061760502582700842802821822721115269867459155968446745832484714547158937748981106171655461088559091889627202527903472622233248754104358656611332620575149584052535738887255603117826430783948257218045917665625692324047196571834454611553356883622558001752637113789382562211704855298558931576554346839443777558620546004042318533276389338238027719927643085402595689212604242052664351625868116529564360224459641149621408011627180359447776447244120793736898788415466167264254163989605686333011343128840171788415667228797328415623709700104685806243665888661819567230948990603343417541161853444952210636074007273795421553452065781495040831371918223594866096602824907029444843460955973608449785535296850492755532324717087619529162123706815292020413945659012049995797684376153558169641607301771722280939004043875004438995843289093960541236325809322414785831620047345989567855299209905106453696993392307544515844736518680695306755914242219271233576097775645602567812170455835783992486884704713387709404460164020809304007397382914867366251050323721111825616204426225407663999431895198323328249434503147425912064948378322762669132249555335525455004614713719579025887217007316236293414643840028876790732946725078494363194295552834025949347388971690032328384843266826224099205581786060618474147822270283407056738925368117650330316891901848304248340638978966411014139178058099299964197161995266998452241148946867278584174043329320102165581848202193966570214786453847243373119945705176446897146589155491719265090789873666963314968532302834572499127965451435851169252249590604843207709899906131031673005936185331371544777690070900781493672444266179941227690562289058594401411195354661995367363103700614543310539915356397295083172444453606451652825861527687311421067592366129522462042374861142613733518422774830021143559678319763225168654479656428353857644330266288147215167645643959241479502705937640129342573659400665418623864412307396348267493483693163256998258275047627405319844537085148380448548685656752913155281500416614876183993283867367691073806885054823588271914623558270236681265017028994934119815469006543723329044375460588331913102380243767647748804126583648237597728244261416866730602346987831375695505132498064964150238605583398526230051071553497101432845050907242691706621636914274417481226707096039112269569177595099819378880772800188393204787310264253376115743982632859944631474512166889630943556569161158358270216798789275825284410211391254278874223114574729139897982998552381644160634216468353050658815170231928114545956497702169351156389529044703140767435171211999092151338349119449379548872435438529645379726455700640139646792037658080496058002853707121052921895554866663692373703357006931625032071693046658494751525424507661045615853040376185391938766891274144466109817472019161317372759189719030526470895953697146374374909464059783688219678415470180831648601389056775509300650279416393434912568662086052104594504867138676551260254317657536799603203979529139957939496273488698876909244794985795941138880528560391410945455354873865711449652562600490973150989339958985571715275038047467857980352651007269979832274106042947035612008146663918521377993720750631702391023992490956796870485779963734480516812908151070939918394867124283505978927780620968843471601537699658058045009005513495287831830285415952577372052245779911588999700538462111204263200514878786369388131101162393213622408618449479629178417528518891420935467559507223992006183875448962386778710573499613977214301003181877963385209065205283923471114565247766577314632064051811241024883966834083872002255195028503078540695475153505440048832168917264737098659052389907327583675731634289938542490633975002260627704656505254875152921809354998411018322667981983550935075455555112533545648627192127009941446342229566410781720339249792514015652537281576070799246145825888566546695156772136730402099876131386036672186396270621530670184353230069611899431739788769069129132726331977159824054752305020487710887784829895006667253211825478730966242851859759535383555264527136991354948403229021294621944952828448959535910473614060325334241793174236905940001957767137167057198154742652326542976759414492442444566137933443810044942729322095448875558419345749959927711119741439759042889764093486229692421342835295060517302997190659901691053086372717679088464131708563066245334985699231949414135822223421991499284178080547026182202242808322250834700498607955969211101040084090412504834605520850668388878976533835712426320167467169231650214383431945243481425084005841878362181100836238689679458942346040328580639432959887125517829808614974148512106546830741066522873022176948251425107606672778903054201953796064122367648785530606944458384314408564180379089926171630918599349478599148804167829337832686017835350093268696030460270981449221458327294632498735177825175716438161706378725921832700504706237264090388958296350280871779208175725544390383369988057650919450115220438509400634779779931676283999873034915232637827368303086371871658179621051412917011611251329480230542264344067211057635568204002606940218617082252429410736266908948279025405210417018268453275512050666611721431225869683655021013574066945688243921165703648650680256898220981871285960199190074995105369432044388081344966221172839284080696060832361280883074424315548275441332627603767899181672248601299265921993992554577467535191914833105607657084553814982422089601593651438026363172084197780608290288269336087174770078962355842923382428257694185513014360245234266104397945885764850587872984814464365754596378712567957733269215914977377612212423308584386697662522783992132354129205749060890917511523383901231883250066570112843168268637831749219854413311935665948643612405925469398015813300339522084550756401871867763118342543964412284300739606726632043446450901569886572725270057883879827585050388633260394201726655548661802990976448546022944570750753914555196930978092012113531722724055167720093466880653678486156730350874571790679117597498562427504502394742511950103341629153958098612270872356988196489502847359712817918608508857960575720064419099485982298732425698932988218446966421883579648051347265279008123244072925079395175145212643319244903532813396472846520484641768068938378612425079354490100446122173220403910024559648948979406869051102112652299230888681123055926403130059716158944647778148428369101799661575562684468791008346483955793610161580236892808404854692426396864742647748423670439852803555091565213698046255977424249518025556894591991379117983868368239193143537333750199187733327975692718470285027323903476333992501409248729079120747158077926435167204987142837418739057136779339083380857309203575723054140864875968861874083466515788795280975619478769919722362457240581808750092977115163617437829700949527460535060494153834091876215297966476968192004634476747144857555114286767915633698401116919277044741600979897377537869391362203498042188867827156667875649395987657846747154782476059451611127722440411070707670755084303585020989589642755761453165594057660273587284548856673659478646210556382468860001510885205351200492050586871224821565445191109428614876714674675870317293465613364140677172168915944735077090580921706251923260199270591402394396158548111914087751565683467325900132426662407204310115674858499772973190928455331861136146662044649270236587771871606115531842700584011010560267690736048586565533840236791655438504923451290076871708636666888226733389480420744102807453952217590101906033953576352164387375221948154208775942424587093311120434733277203462772732894850710228709003666979757609234860192223588213276310125315664085997849633112218290835479966786494018743451711953170266657520438142292566117378719441505279737241520013497796392284412440790180971957512935514383124355798055619240909023906755125036595882688568835672034912391094750865717833444523970088800529017365384642235399052624155233590095438994150109088472949280309572372550663391940083709734807855842364221094519993627431869934435731071299570339334503372393047821965687304997293582284456796722954105587423829879260795407062972438976933047067985508120156322186597875326953006504751479272078918468283842845289044426619930740963861174137353011366090313015199022735508206411123353612859047444264871355156003064995074626751466242074911742901687620086184846277491051177586927313749384715273255198823411318425930877389982401420101140829986987387488712908151261463661767387140789323328180570502793337286209199709485038680819995686594761407862971628167691433140327615987342696367583649899801835309097255418228799392623075897594210968348834969844584016128822517696639378819970953795378202224404195130651908397366177438969152743988426370497322058275326711919789913654163337422031867100989899624258859367398774471777623984692077401004270921753195317943611437193721950098204418788015420074655441882307521106356244876808616945488088461720559418921511981015727928599822784999334458857406808447844898852414160582314904594934678670941731118271522872129018357228235645224888744460684600067412318867893596747747876024887944705501393798228060595454635595541337076893102349819308441114520907527435989159723808852926963598820885664700285765135817994815775285847473007340496008886135723485642930497113781353550664204045058270323120444183212269001659208970965486342569602442462911655759355286014553479783158171347688621436104144137401414011628770576704931485206174159231764630315139256730073046445759218706305406174349292926863149669953092065916443088798128239468523684112633214560883077777141111128942280278176338671922873947039199474687451959339607344102921963857561408717331079270907801578670096833026065462006637693017808628237945223801867580942843371106794797516809127281383665990248064539128331363242774147623020438006508666890529837680224640603482377054040197439743454298467705781646839705259741661754696904517807207389432201721567046134144530529664829295219291938715167039599157535157411054016098055517928848651064103761111305934923832395076277071600272919320204590306763463268889542507966336585320380878009463368541723905204599384237902364950844600394417492753853510694979314814571917117817954955795032699532740758145911586743904915118008325720505839276710015923293140353940362160735907110412518442503560290777892204700099836530042390525560204897623362853997028399760390669740819259524649600354520008365417127044799875322580162613838460143111116076403018691461796589961606525105361131593646406437222601775656253527779119783198913323157565386557132727583993737717731219618856271926379742266195078734413615142343753051950547093509588214148158006104411950817791125315496839638155339962751065091004288383463668630218337050992465211723840978743592070791689491365097009541849281761131276968004293457609168685480867142402293153834019056595350314774426452302847832677301779421395061668453173348158953256045500542313388113169083829618665150568909152735544947493360939030242045191545023142264944547878098074682837422180626316780070988294323678327146541136027527375124992277820838564736581643217904595953815857140921667811473107579923564862432960259033448431148804054868679287368260852312994385411484307759653326384493227285426877053086211413570676245462465655209842433557596243350586992679856481731872179479618886579450890829716334623834515490407964647180623678274698589550993026137128689833185874055256780499747519053348459676154291997885002806545848642371462589787360251121866957576571445056382685100550791424025203448991358404306829686379086065222426340211132253490070703988608814950377276683050729376380025203985503466811688630428585361966619192104221550801112297441771958837828300731678458236075180448944409985022029694610243408735897266389444445296182554347404502918331406410906255125325775806327826215839944351035020680077171009081766798198326377051404425045863127606309328923670734216512787633173157841640182644229874291928669902829709547841363208813608127632950779861335619110485544880528299900889316490365699206726598058696348653427574826781966611876404571218556842551402276897360785136061681156097218143623353324420997051516287561146351256572093318243514266293926406180161249715006089817549070335704713856257123807046158249175682893365991800870114027994633695016867987326101742008596282007321163419211971605067805615713214894201592136471444102700266454000123261783355896552791800316212120275234229151772056790434879045592648357430678250456208472727177548146037567865969273722994422314020170704075867631967710804889914579935926834002239449230840577819094869030936935900864759625114742721417907404991526781944783430581459987307474286906612692083699612638948507812753076040366298623763303574587511754589138014703202592593526160917917566853946097259794845056558473977340332744576810269760050804561341745791673344189258437411043041941000422580203607009970932208140778016321725172689749431670778283096546099357129361674539808282083782280322386746190132004257604081958699159824850613052133549674176540285291176068420163618621751664037620963062265984813022325160744786242096348805953455065052948429771824592327486361933772588615187074234938408344375101253546433617167874428025511611453945969129281842594051147429493735935908690092474496631820350821455040228664317740354690366147304318496043887620515969715059199268435637258421175639465805684001422951320429216674403754445628005677055769700996209543791027226745710440071736544791946753204638339432338246936015529236145499029418483417840943884599510253019630845500898509046599884423313666793126025371902198517958918226155731432964667033111789693732569341673193496359816908602530372837501176226376292127423954224384994991664704805953871019154649076239362917438705128048378765936086815750060866278884549677775199130622255495881647164836257829259958382790349186925546691142103220125880959971294652329404990580043392612895526558156370509886874608412365064774825895465110039669885583892401303571105599038019476370492750777825581088460001350563342506777116421646941064514253052218841247801695614751122297256325767829680755702171521747064271223349174820109667596143621064429573558816644930173819812247296325919713619263851417111770017266579187818552546966017530522785902681477760679811413438216795530975271080192984020509534579444011087016362169501993656722182009972381039201604374692159118574092864906974385176956795135665363219459574530480125712811974282975847611102893872305478687693234534863563877807466736743385761105814029868030132401804439388521640080189977454220434813285041946309025076106586156102263899738212703678255556980905147470413423890981089354064481660741659764916710409402767364664684344244286092275567520348620541819618800165880996573267044161523175663424850124759940301077429471428125590520096055564709884872004866906503689787560445267993672363375084311419013652395186282120810297603321881184578998211678860715814980440969339729828094559888192720961472531882944441824679140309881570348454297109500244055016754784073855751495904477111475337277686690077350252559758201834548757759240255243196224337569004939956789816325758129586995658441426057403133557094168096165468127825456453043057395077461550005229842974285750142776829561979820964460460761266635362082049005294550503253142637165906703650267312301512166406196545571121345083838118193946346001950389803684335341068919479544786119895762724631393745750546135779265874775533809648247555949782342037037138591046501748175917515471181504917344855318882146123528793913360403676266073663838202850919179063300973675731582081714889155993402191370419395548154224459252122988614907639450255657458242302517968073490366685618949417708277720009438404102007659878310925266566623176642521858181161050812400047133810124753652121716971204785983750254357008761491525276763697587640288397462201478701282225797003540586229354441462077325310744721150589550582464734387791606379099554448025745862977504891292414389511286756333992318663533468852323424043749435762111454938943419245122803743632784617487244218502170609906113688487314826245057018611442047176236627918129848448815406558781045452684212760329580527068653600943430733239391623825987223203889189708430120631354275932590111256674205035945694224442065788811418726236587326599964539202986109703621501129336476989575204136113762961374514188969967441020298824512663108872456925929563694921524158712347770810630082614867911492963649232143575822467143819282634889457642804268772535794609903774168325777131356972744717703065613846920065771688748603400411155558453721974058168954303728069848735730367585354659247069548470623257777581870416884845080404174784427328739975794943422858888668213068391605648786767900727790974404925304718584376535752841190503144207807067519620666336432472924138464810023613923717572756786319708033841702907916777959691186352636605520007147290020071715530238613439856973005596079957761075855847422406105933305951493497962610657437825698858981356920093657429003016649485206024226348748316656106098973029939349039272727016376935457909222059508282171306263097718428773556189613884893794146383334292663581636383111670067351719522125786607149096215148227775865743263537035981581780569070483308604341163646196896551872379445921968024208135986569911304791757702070622561223708989707045383423911724780679496136134783282993465311557116102429571629713300030748389019290587820749881835934958711229150473227733485861487144192073935598619763973199603549488884300933551114560039292884768311822454494622934112031093996311717480246450934252423485669065032350899973188299969576760503720184758701829881585721363903847121260189165502759509837874494697021966701250538249031167881895022830406025618348578909709088877233815356460317863359398088159701129929784257592247320613073494928227642176697898913194647329728391063093337822273470903346906488915748998411728700850913203923873522569744951600232170565887306276293910648927652391134780525387352997490592386236830755867105653505943487964735125592116998671091274308949647932193364510935555192440840222882686305095370892624309972907699550530191056942066888181743798231173063239386807482064850839198906495013544304998259969957413542126382932306290760809289533394565062286279670901837786068828048538628619741186003858225799861043882558720807201443841627146648726481965809573687589455099754040833590123321561744070277290991774842369225201892068302943920090248873387954261250059568619112896215383870289035380842824444150680695787285664680587011793416028590464748746255251382909328338007915406595211815972752319834595814171529221103429059991727962935231045553165965748551474467076393062167162310306110181629956977166700601236971661471923207204992407047375505669253584708520776203499990134747209236642951169918184793709882574786622688426681443840756216820128572289258311397536589459739406366870109591602847404036977120793239317175935225532183294920189949021562796332960050299190564649722591162296565737724134267454899065499778001410854921834024208597523278021542275862911853269583989175436779392283139616959754093682809898805750872061759918864706218617325819215062362383509857536551493156734721142435808122316146510528099353916102232336435220223705531274888730651120942990194191552841144470102114381368777317186022424624616978276740833381992616057905537861958187579703904826397393076986560991608236681298098783544289409423715687755575732137781991223148926537084744863148198835126478424144044781863060914019320842148242398253061248281260263388559459429790690492504741668679768455401117425853564194336649198844497845234637175911027853552053303587350047404943316345934821624633239127274588195677247389951040796229797580252457922435447895861140530463483018527137082223109070770496362722324685044331098201900879426503367215737284841704158263056230963317577494412592369831012964915062312216941293108386266695028134381103897075651064710493249543461186621751712695968765219977730320835109865055768780683762750144287143917121607279411507924328152343648421014471393876490838290242799873468250058296534460755559320418885980297531170089984279767195471159603894042821755295122811698456253040034430633543758279326591287169303005283130380579586978173070354975128301555646894080524786442104523252961023706265499812585421901473169916646816957287487040336140755763398416158867232113436599761061566622087225200787479319429665827982643928671487681636021171377323441685574728612132011933223318802241401715257716631476378082727783748959520180601791079729201367657659948836846620833558266621450186617166642853225602711648525984303710027241374946960639298375587250670088923559744613991788722961166281407892132633375877766844776806383718531534283956164826802737535607438252735118410018944469409050280750613794519667229927236165821865370856824666280161492861229873169774683676303257915427542339240404742541269730789796413076464350270468841751318125266384660855165884812849840115958606597233250185458390075029347321427293727209782296674025235712422160924499330240084000233917402279476010036416408125511872414394164828595090211044858919521351396610839566193794680134033581470356883709158281468986345106344267749536055331084419010386284690665947158015454463760379013235168203647777208331709321078292838220646372964984731550217453331665707977436211185649340994139098326794641734246792830558972296727489404392159212668902000492590826379353212457751308483265212204812939400620102825878823073969574679058081442638033769190299458876211781046193303623183843365300955428384961353014085859434429231730108018043752942666763383614419388607595579565831096849555921582709154858481891904080424100046031923523437979806951125833719678697730799504095007756338402666397045515368564734510012032317244660924679190025692572124378224062798665926270770570093944553026943413125470562035265977262045652317122919384227161516678159596001296023226042863356717113100530931057081314089843311119393268284159483201659129817628574497653412063963880423160050544348168984170426629023726811345722342085261986460268554900692549013791653382770485470030481452487143917531703852456561999702456132882598486750557627085701468988165576720408676481281498380331255013969906916312883102735644154673533454883209076278101884793793353223157277237515001475136620233488128034771371054646814518993490310279786737444493619810874665054311784936801459559449957888237287311439748673405194779395428978023141289285512897993520593323384721943807652296793547058106920007233376304782032956160958158438034933838980054697714820029407058983837755757709599753884446493495710523710456008018770961484530823836395074311166474913719953186280531944575602290361493412964523575244557320499242582978324254382014905958891376775058106361647849621036361805001167348804237528277678998604826435144236774827361716195951707223191245436225831416672064656739737441467449625692938064359702910068103834674184912502200410936391037697829785192854176874012334066361084357232951931290650732613892939842539652079378870067356183727143802547053973721217719020424014894883893232329186964310957630716510902724745730855757430034333168689677615900614811576633613504740364602146977954793987753569357509339814608256185006386303376885786113933080663865259415650480801512437696805369466685475861744913505318654223492106644791526841709432531039833816983051279643425605391370417166030287505174053117861801765079127345373414635980505448483695460418841402277450932053852924056393187638776562955501649214956674588459903975415868507130136645974483120863429340867112852208265515242803549840094751600955011239650200318409027054289977702360188555130589597438115117834429071905831158195855728518282603069215815543044255098534057531270011221565382890256921769401893313764118486880454038408006666961731904745599725265156573878434737181756733658488766942705775013207743306834353701035211428235231760173410177892673756209145977804618684798083108853623142899910261937572081757288808192626289996573593070412274924329690303117408914046780325943628961236527534513153689751358115420119144027527236904379176785818181881379887929536635035532952032803661110448216238608201514600613677037377357272524772970860501114434731150698063569692702988983837962616756741125038702803766686570914213389553631879126196839438166486157513211518118616999881710961883252071509418772077700822842303780473370719372306451134343573493959885484023886660695061283053399353801865115892970230537965805534629945359270145013451474978666937068922423508344970992142028218317421433487430781880508051561668363392588796655114877766978243441889920469646816739671475385326043062440745509315084759335626927567110522922142310801919781548355876543928507711998670173589543062482609203795082852483423659272750770263399464509829085836028015579905191168509867447211873632200659219719468242668378054575755276059447950253828383836825723822808358142338306788999255884296267607716415240085486317066923216705570352027967635901558793285547685823763230496304504091188011153239560411431160692420843714755624969198201998931893455980770238358815536167885507661242521938595661642088880564442918924999430878243703247518654640803603248322834334557148596179601844037386205210878052192027992468168217953767122521315719542394210148222382690138026846050434027782725187183733259073334838358742748034159490979768905443386526689402856535115558462125414659730922557944444008091196756210423310771151646057770031754585968447578167905187143140789074152065720452008950398015584790052709839397347034753045230775591873930636324818740259850032819827706457538124532586336357024925344720668754011629551767194822692703045908029970490173914307914066660328526630984719415293483310977179645495665778512877939175133896944507509099355344281687756465315124147156267598891702278113602745324407592463393044077035243790449020493140527523902147126061930671327518332834091201204774018757236190021709028400153434764412167857333272227043072316992403842786867243672276480491152109168598754631712749968647172449977827689070116248646766489112812682033762960334786917108752021087487764214365484662941560700901177639898649050300580051306862331012188408196550975305139219576314952184801633907370766647361753109239988966990372529131483318842192451930908966300853413293952662342091779340969870931295529091323069475209294353963589522009977665807153507392012486313455238684325422888638326881717263459516400972495756471327882804587483892731683867934307351316521603524559657887131254756548360924973616301438656558009090615022736681868849589792676581175778314224068093578873937665145878668493021836323659405781660951795831823879056509233043383405549572286446796989644960405562702236947566315922116262334614407415570428301914637896202138223081785488839038415162016031366340475242299098491646502539688313580716880516305372810846666489073580576078609081124202101077052906986858773423247157345184397143787680443906801719022976143743159797046192156554688667408593520367284634571138545805275646278593129185905414003101644207800562419867304983853566587886649276793440220133138467438791340476971862937800864959949676803108089308973376710041070279109962906284607067581521397168107591723622226676985277688918258548145489366542666573695920067779505941483611202097058908071814995932917280498395157656497075517982477623931477399636774455472420390069202123492284718660635513303555007517807570922881684972694882827256952139547915824484707811143749143036643708024428819454595563063495451324488748646014697900690706403793583107096868527400449149403999842492325291055700708963167086690403024963324491102316958077048796829578363221247753404797829861398755222623848967057088275528318709155588970973260905288162053701860309330764640307539721045361261067308094249016833686440544067987302136543037151416855868855179752931838254053709166925472516811919205843573317523443544198463317762616876243574451420585083473743671925326114001468621341044741098199737354298599495986206954280846433364401251908887380779710719170383364292986794491386419096690595729788078930439276284802539533432003106816039039655514697385857978899665281188465620052279745093136072707564207249844076270171793714952191079057599485291333425651189603906016311408235681041420910271140542424842669518588277461683693871701295944986181700031834125409243958962612215973925553570284666772335888247378682512799601793720947636076504513764681573685580834812162698015381950465121866417176186570540260337902239705036892104505075408220729389319344748372322426746510878611358199648726739140174759841450567641440787273285461809522131972198717514463051732206528096207753055570461367540185316222315275500457094262789265715267236080521668868400190016939104226538433595014650938187298094260067868126329796138074804462242862044168944595722057767995837268767950752036506386799819303232035409782989255736373156253448995750023451561976976055784337989129811028522134288074043675105733582675463063426373884922375569470838830539579139406580562515755153969568968834809091804479952608240809570070154305189544569983706121205592910050429357588668904914330768250490469258461591012978515578011852370711178752213322779669844137027625308666324297783120123512385809233846129141246734014817598320287664922291342722767371880299491532840855968440432061322368242299508195686924743850790590971317696468087662336905919458078202929169621890601104804073268608978843797929017633161323278196804615741601303124571868760208679558123772600614230994374126623493465414875198011031947790159200424033850319806473570357978134129267532180269731886797093829575698411197300103492398582192575421223362253676846396554927491895037247118627888752148781583601867866635298087105472018078550815167425175204256509233957215307060075769810256205147138623420132111100587331111905405128304413947075774021993030712159991553555797286658773070226009361612025894126062398682925368255687844094529992854949050037984885690025867355829767411038235164152494726779884445240071584904024807005729511895273882002917155809289793173846188030133904843376506544867207185547067870716222891776016374678745722706880601261610763242068511640318824785389532208800868984287267180370593323699051661603828910732024778681963673736725964366505426932834938421179401992810938740527400912229818242660843283969380853594801727106563192697293765316660696484690498853742025534584709104735508940154137327468687827212399316499811487923233443478508807253523870627113118959192120030671346098885520798716783992456544296530397840920275291008199998929835477332279714680714708756939706531916526167483046499468010305245829880614902447321955386176991186998510265620484914399362956855439148492848249200849785672815784655346528252582083805006643838476740126999619680164412495783553387865178776256885001513044009778994067504623199047414655139806741383660697987204313069010523070620718047916346615013239845640910741766437457720422462986612312724366443792788871566512273638051648641053675651621339484435860365843566416846510154472292588444256215691992474341078480018633081037196135260110126041933127457466062957120841268679259890004314517563346141915737919550973641907122557329169544036365105047826585810629463303643263554345898716269132070546525106011537856640563494029638825706276325227605649925019655560111729247412482900784984090678775835901107955412876316434946670954142854044583243856458093252806793903588878564549902529626523667228153716671115908160571745011125110935961106897374227341960103618025725369792268633011765585657824667232045371487898527332698104671056830510881753549531692664081863234098279021665309985918119226961629903050327548350233628190075583971837459224465395946758067414972153289442197045953905919133789348509603331048370968681058685645867593610465691810494940944250864456565656495796567668834042657078041096003585122182229951322228693537920950483522088760231340633693019221706560552212845529687884946440778900094385846955885998941920000597905386152799479584352063573362246902118534100366494800506576462613109404763045748063360291910143757145889149790552959654562642782212688477310878188454388112368043374082519324802245700350379385742284240415098394922051878754427072574143304024934458710496278894490893962707376957067925074750126581495650268636341982521266117601769989637461915019547370015258700641565018422443405950513616742175303525575765096358588442148053851636670015905351824703849421147572960799940377578232019914022934542264040210303372777814978395897816923575540609593240362541191657444722546758597729383362143115038893615188717263561004468950665554994461935889498721506147752054223186255439480612748973054092994656177587813090608936223325025859298940309323019616522268011715503665504538389176381266368820758576812259982405855666067263798226049369024734339730553759559178098716529747626630974095750409207168450554553808829263431431390568659872381279627829259602601273575533886676182206927793821610751225148353320510426573372442331870414867748669785134477813881093793326374860019973169380428780534523537812141545977339202021987739668908486462663357778028691956067504946852407396987661086528920683502306665150572905079338224107053909404200994416260837736626258743776012831926118127007832297526153604452575551252339077374696738054942654826524975434342963540874512205961910317515752063249582172634912116425150446596102785682134433945876551799809420009332125168545161655050040601047366174601789928144610650526083600297405181342103615325882447737787570695898918962238641245068329206778050887558848221776816776614964967110281550751847211256962409604110003709081940999949203564472599170157680556634486736090612540960270691840743487398373604215188417573958824317634520968887612150225665618844598025542012558180505455443063399986761122083564862207173232453649996881255064456920740141310123937221560236525076895388536218227586403943286825434238867688154974598844422901709944136435718987445083931434876477901327915520942899792647040138719437916417752296383285090029642627481430921887265740978377768079382097371990447192482601513655748313353382773273035112369851808099861945101404449596961273357036968402007047982036101717533902166955991666620641936068934017045379880715700842429491908744636235672662510942344690050437674349763234235184683026640187781330469064846485529258374574819987431934022470501502166907826909496309603326874624938924075644578686989656079072819054880860781362422201316014171597121187241705363592502650546279354392057439498282989404607442426341558265481567726173352313028750094444405305980785438325427347231798707855528361283492307215596260019778511371175356916942999469972189293177463618793757462352826204751964512137678256186528576956300551974742090717777246766836161497503412726232149359103731196450379169203306221675641667606694838460630962818977470241293754768650571904952194726122754892537395331748352036688474601690690037501281812971048887797697922170763312203022360976328313000295402759047688405591957139146126583410998100124561231903309666918096206595481052145935558707428241769106446974323154838422951798840896136936469467468499259240001259558741838731664804589273114308743682980856934458734093393046185855529205302020900324548988613613772150583692760253217496500378843223020398486726573847253954277213012894591090667117190233731983133532907580001909465099210639437817498374474564273210255776514955103311045034486613648462238783109981422080357665408097042643584195133032329915839764736488532411536605005510471018941403988765205718909253674870534045329167654942892182536802134874573324475341653286502781052822927129163157912150398895413319076407055495194055486632326673777605772002452882938310484588893478146822442801464808563554853908038791658921805610013672420478941009030845240701911373807798890640561761663077063805540784807870248132080215858667622494148452726663292433832425013517955502218629777766271963347719367677808844192845133489243843096940101825829008628922511536999005419231540790802797334022149165077498392896567645800565451322376767821999968332649043276139695697170101898873999017632388411285608943319903232568639122178735598867702433999746465113618527503397458745112708379709942952642386852935183296118377240443863140995659278838997520515153871130519064374389083841872692918396769189025648758259637808147211741196874674455141220907168993433731357514559671561740560505740970744260768693274446550881090776312569619667567808869037955466192670461440622362468978743947605933984068898311063684062945834040801723041205925510767768146277056228532475474493330912538907921644759401331518532488734448927437936005383566032841583586150435493432310724748109905316099942435793875690545575708576433307293245834064243564701836931619564714908514845835494417913750285818825688352716279406407534406202221316103194437089650163305801127735360595654553942097455261948753298992630821792179308873140863174994885971648151876535304884202828059862733991599692559183626180333108891275046592428794099529285548830740424819878597245914056788807079998311175750197552837405522354990104674496863349073795542820898032633841676164259764265878677373164326346313800271517842472002725369997200652966532778920623232454933081756508617545100327649811474188048203899533051693641472842874179591079335669847868465110531376397679722967992699345991667170262136891193642344437092309027437223813577697122923956160936202947370966927153019837226000003054822921334714872132769379322679452365388877759383899435083933308269728604148008182343725047298936027444831569783786980083870146491446603940150063601054481101318714945071662034698661192197550683053288651006655056688783378230822532129194816957924456428962918291647350399867373276082936602933164475856427316216717808336078254123529791604995362574628788350219076059481996546765741548892449788932039975439458521217494627872914914308653984926461857233413070654334355583601005272578167137301780141813759873505709619063471870582201533097931799576872279997108750421970490681724845521440690033243787694121241343991163146711937817235222677934797191223284354014667599640399918863403131621447011729069615701814411892216829157540375809191824861280292546386521575708321580264509187694096442106455928611329026684032040480404806846576424721503982773915258648830739115647107310171968484939855842986464574464645601357344582567349259224498720766299012050295976709217939770910239614276823130612317221601414022242993659210494777812177479601275501703546971186459627098137530171497111140884530359451201705434989087774951045528261723668853576745578204273149953718381928736970376807858349264590035932811043607054550821512396490071032422462388202490765107941759276801711471514786625369556533357599394590593552516483966892394966389769323086300427962283105569103434770278895856864059479362516327063288096756676685636021424885507147656980553055026467613442869237854213402196386531464558777049697523616144760070449766475337732402452791402279920929358515133681907650650222198314183851217384688866742767408653221859803013197933269856806508844196599133129618732865951491171186006865987689881260939568006948991300366320077719585685011248164529345864591027065368327697403157939647774971217098410398843936109955800905736172111672947773159807900823091273118512348390852496608968888082987580899582410292431536805124385626482164338473982479932805985204010943195442729710672747371846536623387841787997517739163747890499317027550453409535801461450049148318030832532298826452129821071502048274333187486024381145862892404066809399762207854096016304661664684104458694190914667156572148489982422351159825976303159639374636236780445699938136544919050998831922172877179691443514582253621689209353471124092276065915115975984306349962435179321480960468921955872407968511212995145506204591853479069446857698195059117423229429910873675586045441451780724503904834229689913231472662886292496042466132381328045138148113338907492373471414998586604097207284866781928730930176417204040893970034955070104152755887953843602217655663953743510185963426871648950182950299828732603351517698865490218629711137040532090837436146204931355840239234244901923795641734045179120308300756455530291187408038616954170431461694662296516329336897646928932453246956710700199738999758189385894420492342590480155869103932325235921801813887606554202882717477224281299042019390952999474519785290625637663675392769639084022328956252798438933548482369408276557462995261279694910672589095873979182968121016694374956139265039436934254280698950890085610898446252107805978060688440136946250487944668544495805358477108104321560424022421929697894058100355688495236563279233116168710047667035890477316749293825990424320804933467727084302301002889057196271763375518108478268866546795601359645550690755835700437247390884676632711404708884461407572999316614290075256412918148561063630585129590209469016034141836756569286241149358837162881777075845655005659796166631417464488198702351627500187013082069334806263615805022095653356225832263317557386453051315931324691738769557120043582740819181687071096267711174157033812426386567965739306109998378413199736540404918402337758947618783504352665803022246439208463973735797731563842641212497178005005797276621391612198864485510221465138904444961256952789035190693426710453861769976420041071833953506221936271963576263136447880688280604999032630853269947567796139720982776971577545474663985662690013330447489019632537495277494104677703247956973705613684206491133372066709798513476134975916719048873934859436671027090032259571581253071453032526015397621297390030881626237643220101165324708351223094301106393027185647418620225931733777093939340840508078295001729063673242349000515249211816055528337299284780888361228349106495985001213849938010296914896484548412271002465752848617705324508497423980751044644496263766428618824714600056469339227819064846371358562785003427421724301698876064990360840468945023582108793431735743995081730088035962756952595967006167043993771468912439069499941765265651492938302461857761239701402311198593444335859361862778328730973553718664778843149225280130133326174849110345738560117485562698517813399803599195098995117156888295912217385962427798241326979992529813631087826013133048310978981462734863357343429286036591412607861188856109767229833856634916493397416343259001814609685237629351339644737210495778144744654785556752411462670986501688317355884554897163705292003183228268040931656915991355382697367962768325183911467506476381284334821892620574996327785082294489660811887025619409085510913607845551271943485330679558570471706521671526171870296513813658848148534421901084842776929474864418652059781992659564999988230105066532473609034681605951596851397827756210646244084122506179371705994968804017713850204733137066595748568832282606322516073975528445461601776478101120181853718645689512072534715837607193080923048476742823602753533837272990241660404526554692481085870297411088253496803128962468154763965605206973465015259020979084986888229105464574882730297878533849063734597708148101586365159658365566796176732807934237529146171770086350961206689939274387482096122142949177445482880978062896793530619575173322661240151458587768120200895954958469920344248762984009363031135667057513790017947753241131130268277414998072634073108916581513186529778270101996310248439091286690239169385305833215386370790916579002146081089177425295104768835363153655838624210243409809216803469506614143671718023333266702253984544752732464542559462274009185830653043322184496607699070740836702155959545960833474081697240735110797598241582796753854501328197843741716456993005057287028199478121875131251954959568737453583644448079015421831160944505405118226789895186186835787149386333703614767802677105806945986974025414802602216522863031333514064705211862977136705154581244034878008331992811782000839114933396908211014326600680228809146490856799523814533895384279927490735997269692468615616711032307440382291202826936721224846650208880001718108001973437889283123966422062695882313647969015322844636103229277123672831395890073969114240067610319410986315217467939223168939145227885754781626636161913528112819851495786456116399189146762759024251769300212599794966619216603722896301434844594405093341426378123598077930856198202644135671182932929229386869947044891316316880908695403905171757026471795606992436931132549221661495222627076318481710398902838550076628326111529657595589180886807751862172521991913784004357464059630260430239545293375172327304734199599870436530383386049540587988237539616622075299700324189246017972390462687095106635468292395020279695423720753652840877988873962664403856014299335795353734041506041541160829568972862147262346728760040743952006146999854572588996761632442275673223112244309709790874848207680694807441757761377149944202688688257445751433347981573088359716491957390805184443756612700082945169785983276719742982263536120601757321546184024166450603574353628601780623369217982321147226119281153938906622920660846427090025845847591145397344661676047694422958703076368123882266190635260950964142116801284523837614454687531360687519139954606658425703558790625643983272236669958912188848801309053465451420796527714950175979106564229593208119262520860275980191678787955597691148541254351443644455296732556186492700018441035334339359233094842842460386508144333862265029409987154526809978815608569268213737415939534054433259309676651898343338301007682196404150875738483820799696240601902413128432247184549446203362233723460931352915249995983607480001880060335569322609362344745564348827273961561988914552466702445068432735001346807852857013463227292350643742353986943876554449480993831214404228972023395705618830241697945480107839250194635425468714479504572076239342866939540085036342423476123740301756621858186474550372561949535478962956555502978365900738920498496247491334216804441691505352440590029056785799667621689230666963422039079753799392470519583551986605861051060161037177708829810450163486554058279155225423367678963749480229966946926338139871612758580555283963715931231174332239485346329337100255861686042182628030879790367434016593342682031100611269013602663873814248393764215773633348014638012921998735715269334171856601881389415824827189555100805208290279298453504293124882556178298995064035534682407038161348790046179443430750515200482353715822301627619126820138741673386697041406895455103375596156618139557468289418257654830786630121502627036907073244927289543849462152876618846006379043684992886709854497549274263641065782797868460262272307260764433054686256633288935475522712961573890549978944497726437738188481647607166331338491886411542306133973159107089326007015436723836001425488010276711601619141430821325707646602830208594991503978062513678316511487157046684305930415180395553085357351835537073620060210237420056119857762240644323859696949194765248336831146970654437661764539371161588475760734863141316301781412046234381261166981962365893710562328336046778157026485150525293569883269764720628201446417780429656276804895693592867608484763516489189018142238787638558868924101792185480393656541780679458673119023356103871973221360432325755404493960611738706696588792605619922844260793129724189036122424951636248249768267205220322523212821344865396885298139539809463958564209519703651365615493531804403951035679858247927413698321133550038302265911589344478474370823879142443597045820298798086045214440724567598273411018844091685377832848599971604872271471515417334273915279820601834542732611791797121257843279166012671163556363495016330069653036967990131995506116631069525079270800082663523585480270940697206018735671743945920053665637039438166605702493588309108158642634130584165571582553396688768683605218417885320599796447477530039858837682426683692545651845009884257310420265778523734986902689477944259272709323936118647614461945435374760902176873778642836737972156037577805353001977175570919165361537810220303671215541895523791177725082387338513342934922547115368035530647811762119635235076273355021963458674478296492915100274513520768047417578857491794896989847801499493414383741506300934247180078544647493460466485111338202150163426969816189184105674254767481412832334167832193899301143637574384485606805953102019925179339853293797174742431632586601709376739785804317011552939907660064444928601882787845704317125760557384243440688375818584241418262292105043083256074261626842543806133222401339392471093171100596812864638147080895064384803020067028286799367977211721491612448612219572620651574033610205928190563589890970815469147622269512137514330726022760303010786398008192113009838623433462248289843372738050354409173781960182598434372149095863300200086683883235972966147268478911780784293201914549554895376947338179029547806973378683513131067716141724178157137156146632575594652018429188623564499070780656777679999447893450161201270419565386655454583691755912273003681786517647837340542035705773818300005196829755243188336706664842030742730256234095958316344906253263365997110355537713780845307266398749697801069943592276832095490698200967382438192393641191229181413728660570905013545309758728044662048340063618070093902501043764620049548164375564100359397837691301234982827826278500447830253290495792648706551052939498090915099973639594726015075267269635394035317362504636715397530278510924635141657393639176307830569725847556137598153399523754305459029297497047609670704123227726294158934741316562657225954210222710030836764996854105681150553522904808885552411313485746998536044268234451560193519311289701971946280277897800358288370944028020116843112794248943324942703023913971145969941456818675573753745868368470361924286912346612976776767589253580259754364467297461823538078347016542477212270190481382804464889052914490383975754064528665104776412178147223406715706936118636885994529075739791986490320609212793712709923444160493910647791239377340806011269980286795123866295568106119988890334546463169789172640130098828522109422781104034733054210362473872791042463096511405948411751255991375005286654834738131766682358740442728213510855685073455948102261351881333832031844377183058672176722502559121417481354638590354611954014525259955246818052648043299077861749626963843855395782306048623903450923326591185289126240090667196480268066256388122083648048970728552057654225619031302845187166788403853903360037465668833072995669499010348251415554963669850709128598583952982614899902524400150393404508230984346910668986281483903729701971801225783154285542285775246722975485565274133039849585331201624712562358934949257344200230513757408748767911449740561089497147607479616323327273895092381672139343102283857079552868628804160084422195090850972250171134164042372209800264363676316903327541800581265814522028543759106327238132252837021267455466071168720521267935695475974172521118316005250479852464793138785900043673867854557667183797021644217931341759503760851188931302015339027961541235074578287270609140356114101981224970124165550142546149516917613243733568967133094405242659603425860123571425956763321126407023133203718935742267489591779799318824230379408986969705779698140758920973761928757996888351108136443839531156960338694532412665109620822340379267114015834083508848743992724730577329794754516192467464446134089127394851417415577142797277909485813080851829283180996770214028227922526903757613539484035541862137044959648836834518445918104819936671573090607557858405369250324602242109696655178523671080168021603647033772451009214680895408555952508894363645179752634376712372940425557214921430136363631359506110964459355061423399947096990559168296280067149007549431380383523290633589160334868032427259325018508992595305924049309386279318446198811791407098676638622507281670021195985317847070169009269326705958457150186307626819464625667586265796944728048560735795982305320542381874132484438739387550664807384548715742417694894698961484678232260252623081419878197217934056239947334212875645616226842740589318749498975873409959685222288790283280387266996905502076614004064336679867124025546676629868454616062684051196495061626874361902318493301937877361112731749117125446802279450862263023495959099787262067014674185604307330169176229084140196897439914514430622424275026534160261168555567996110227355339029347620223398193206414523467936604377847240390906365440735805716672449962948420157264699448893568935007584399148996560853361349678292623430732844784565720539418493742215989669536614141111106165848792012215033175893957053457535684221911340100099616921751294763331683332620860192355084364060569303395324732541276290624788234846185524856297691908331999980006565312200570467586573001757720047058432907576715771337885511194994455231999300020239288565450342366341824990309459883697040331909449292452129214970817714961515512433176058192664718122317867109607009940440483290616007691451729038995706026569182551287479299285458471251916534766890054806447164463039585977928681956185693983183191913394372530347215867071109500573851077081724144359667911370876054119872529540674860381254232046237672646736011616738143344333412159349724597149873940733389326973668224448678409128628034311067561393713719499349721500373264054252731865015388257192046192445036186916639554064181213389468483799162555363431530302281760963227456329075556740351827540413937242564901079678886189992846314188207538621228835393275472197843010200830587141636179913862290166207581188261826733405350225820379853536268733147652316094478181207492714919846726811524053798466698855988456405254047789003190417020568917861195943030603200399804420502082677655003424436502175129090418804991007484348387808247412085727206506544197262478276427098662090670184260378213475953253062359896681201707967897921687712355680975786867169429616513055526369857119433284990990037253183381097101985644749396308480365541322041281186367936087073730977876710724833611992151333599001136719037968485090674263711000270599011797061170625511256617143336263552658328498947331150327319863773688851183199540696254697524141720471443195773262618062148149775573240849675033396073363595483825799654880863302363594481662055535251089497084133478378696874785899755799588023385656013105588617946214004210547405725280815486923090849862905346392181737314732481426111358127143547305020610132259877274361735941851522099027603741644356219449922921311944761441251673813368222092459002907515083523663471081775881937319016960656245312278466921952306004086946941800734510378891155207425161820773558317132067738019616253211435158768201403064748116480133520251721217634701809566907389635057557807804296492926403752578037829721223582090008059626478026246569759490354126886859210350956731667728793409837304579006936840591656533498692581018975629528895828623055434701592878500989206009719217428224064458917345017483365617425738140430515009342293505778277815037941110384486220816409542904632961769555461356028593722110313132017981745445081795382934872554908111524887286251072414537247098890730571242464518148625271010384912016530082621762827876844357547798147269344921297093387996917497456438545486765464867165032414128675227612517357615430009955776270810664865887600124071273725280632328845565718331322325971428181203435590477503290460243736438285744595165792994238926474910081094199961511492357170125445426984115184595053191489921751803651822000641343341551993776782510987328276592081178996376240390773676280797917182478617675065612030943504838213443647903748466306475891858286220504747048280965936623115073107108401923152276549803299499484910589812833128227852369615797613638630905125009441394936528339700163588863906657010726016928445290541856996592463249482396566349773063331680448250562139805446824871250024318890115595229712796272702877746364848865434195889598280860304551828256056352051439584411111500766330046592763397705713395375776180627438833234098086780259121947746489044984760964609833824280557757292184805278978985831176857314345312702354592758831438898941792924666760105192722216072922995105214534927029005223743821664606216853191311931447723259091804655220770881848144299487000163965453442139938088836154996906007894605171227403220403438671454824538859662399540778201074325845145370585765870846852157022378795929960990488115053565324574232208640915276087760365810217587999584157937814756330389915539437690684525787254327216877853748896813319447986689872512107522901525187127269362739651002272579576258474322993278754861614980726288322159348757982636268675426302315908243973479904247981687704081112334649054959077211476378309471350336697966204596575963826492367856254078692171395775181695953060370550164532032686983975806232343770182198448278945136022848738578765156135407860592374599218788962643921144897172279056495693757964336595682034034765207055346095372213848279517156142643042977329468138614571609563733547802002177616305863759243325363755569263408313159872176652518343399433986670865115903586130844193740160847604835801856081300693532576071416974000558410257895917693486285965234661629268248729301616853181405991438521443868185398522827649923310905299624853449244960525185585986452902368242775062772514248710615880043220139842155709731002299146448935023884682076560753193667719123185996119223075304090604487404210482559632239131095280382223248819999820428221217651920646697343419549484071522613373261847529393222088026775083933066131925236688800102122790296829498079244953639676387906377425313203662247700164576291338974971278231211346754045927236009897479626959286550263587019401770662050871989930277134903832643166787520577668966064031880540346042866819940626277881079054159564346665655625227659145215829784440579388282603779536445301584790188535004647229270872052742225609615779598705915485290481688836184865760579117823317467777057127522374605343627763770820747676722704019286928482359492990195606059695627129511717801055399658122735999099371155224004683670574091070954039184823613877090288935562600993517152356828477131772008126502639970752245542053901159003848384581983130086255450866278451754896955589103502325339692312192151392237661851355491577545161995566101245723888875567454567948792982648951810044549771253732813515789028873633821227541379498432215518257940510375905407423076471877007992228810307711180216662405639988125288691089701330892259183433368888615109687312594082102723458029459805527560489625594237160775861269331355363111245322723145718309110781340505277458608091524246176678580943188109101231340481187116566551389631300379245149126557724193607353336418089884138862454651484096913644094190409453193520282498386608175042947231240236093735015139019346803093727688984531446553445590634622851604670213036580807861326797427015506111831696499848642373495549057341863059943609633093919361128265826680151577892421929928178893847001130252164289587227436831904403340938249983742801545106308018437051530643577297942321202751969202619493544170886676209486402449943198729096009724142385246650273600606203449952992626823817975147977128208359843149147638045146000441739418293058474473028993397658698524618316591621222375700339831952374152362302075456454619498695500548094686701243770621189095585165038332469328370647005782454568865808166048228874033603803827510553555631922155176735331936741153799185330341057213514377664766683273130496010059508253330996600183224950892100798295552729473536682155237067647983821629953952050397467379660866292137796674318962746919051632821784374775595684060749601452302356885973414403923070883110881071163775257854981370420413456995870880914519338679582156689357338002472605850198154195509054173640762376891811639258650985585681325037655268742083382684602339297398160377011706684866515235886157807130629179514054989966849218726708256927691561983765020295482555222181148484966172935655474651032684083825538477000903451906113430377615157312670273416799414485101476954391966432068221722010092764458616754627496795459813568908240876737959353657012167169062407959876299558345986586075770496167634524107828911593483297234388362993854931080075042044010487883001431745927606417185509567684974775558038833654150808863091623023433754644505717792798688576643187470120534598716151626967606081755147616755878932755374908245320158748847927367162166733343367445638177785911032654491884475923695232758756123898578423152376299503810726998517893334052575972164090156646281281343964322386996300752144731571225682090088890287893906778350540480323245412730711301093125547131940679153793933565789770358743340984516513406943126287412919531699450063570758255235967643812597493912139706456189820945797050162028786128486618639416021814745974801701526172027090705840349467454062387893485479904738009351123918838197974781396353819721524987934301495742894931367589250369289028953487608613967658683004154415091273375562122705837879197273870423282397863836722405698175782232815151248054423375719399678696476722095574154351565519538504843371359270905932666226817307418430917959828547599815435164909388577660510388942556973834759352471491668101835371955423050070079335697753688281857080713380416889365597627684910558838195322974625922417367338598893221708393042102684478035518772089628928548732672502163121861884144095482529494030841207817329914863490838457148606409509854602263902961783498258441150684813957063360934622218010113228041083734453546615786615100510247421330621063510995785925960669430206893063564285042483470588004873047797048630663165411790897055039628846835483247206206613907148062316766959045344846951633309602498170323968763804732755382706973323870336973011243426596355031167391059360786153398944458931387160162295852488503485274472438876901282107698711784751312447901890413214557705178777876068099582671305556412196415120475561104550780720617450098118376583257199061664557356488752118847505022237366254986351863770621833109693025960994685443986328346861655513516397384083234149720484504830643555595246710499370903017408911386934362832528817546248805942127626158712028887466748883547978489531763371114596753272978467427884532140776971163363497887309638632990989280842362884805512973633366248620715533037672958450225401428521038048324544693975738311529723679250585551980094960167850184287289451118437438057744455075915979456213104741676721385304891841371688281908483625671691376202082495951728079174747787595086943910664152189529815858400463752159670483592515372314466987520197972967666484418360057948654899528415878600395422246298053824418005713171168274565564146611568659288175074738420797014627533030589010500593120884148052950509882621003277922407213969624462464740249989164208541796433413040349201926205634872326331515614237997925108394223697239240048780986292920910883301497523703923382490213290886618177671091540540712213890735897746560951833730581675647809421179272074759836718899713612676524367630350638594856168297687456002773134513049536336526796743857929757226725253910204861508884313046403096452463914481926402884690545672717878580041903709231937094163770609680353559482829709858679567183711358217594906486821211219241732798458599955815888250985142127792884480230270161593460364889063906014847210001705034229815995287502092057003591611566340928651985431014415424705012418998332992727278889082984305979632809457167240117234312192204049531328069113833643432784198426118503717792170878082458875297115646303926144407464260387803987385284073570283587861200518527905229467253914537585097121899824852783004023552908228875841044337909582998240632535692532850768984538223183731487322242741012865622068765954882338684828199747902888001982716580143830494999876944300995074724266031182131341271905126595296398210742881603978615232120098696939414509743717655595495108504898708882259213015509012558197451914358696612786930511779860288826084046193266818800908448918870687203224995098306010910439025646160490253922418213976331983637707530999304085644892579456468216339005786256167088956418919632318098656451992689700685768494187182358010994282290394927120160451466481554064231786936873255086351562045172023708378811969571800144162390360043049730263279995991749822478936916615988072794743920584179194274830414818376589977884345717915431614129088390717703796874342238801198130535090809420411299188836820665686176914304834305686735569269170264827148727018309907421906684933062176398463794076218504369338403668986052564240363421836735008120293804075616952925808086639402055892644401329766902259230043299331494258756781930230831461625760132168315366273365650243828490575887495612634424684450403605236297122464740024395394092390795069675839069054911190951381290064920003515916543915872010286177542314319733915239940529678393828533653614804987890512535348047693266642375305434216117820866376126602646726443869090537897797497955311549528498902593371682925098975192677730846075108013807920307870971545964977373065112937294273053232491138304178376172452831187975346740426091486816302937532318786142223347532430719574726076172648724274999781378333428388884969407109333919408157404950092734935434844766780146577022409538517289729980085962709291856422564204934627904372171541832549337845342229587504055764980737484683136714815488311958904510364280006796277751774214419998862451713161788474052341933670545196078909249165235662696843730723292778531624907567237827378472660617977708759034990925226025400335980279729672785594846787968813830869291783630125780314750463288864485100648930565365186254487540904938280417606653532746207292007958169932069053827390584197816067698303820001391165208925401558616412040262298123904780036353714541155628367624261465603837687157198385672120826219304428895614162278361169721123335200364822309505112248904917717454431753937211392842628250474597853808457219611584300455514241251058521418252599407498560271923764161801974263099523651444935196958435524498443808507099237638470157396611038367366393676721120765912312416871879357991082471929147557542912452427432327894282529786855845428216162796214543132303099576719836479471847784271335709880508948034123995364031339882628119906979759278182809583378539665075821368793174759292609369314724316155315883087793671471037219249892680038345077205008560691211465454375107694153058053913359598695593455836244251560195090918343556043997466864162167489950917004042936191739273350888523898221896869174890709116040753451569153884258616478948670273492490693360717783026106994156306713879306861843449366470014190373677196594690410301076733479291644417109997275932118049128913846627960159649458541836479666885772451491390314320633686932008136524377233184118082674493303752203083448967871694285089827080816305800800600235063579498845599312660936012501863104511074024465285999532966593464347569373344028618271052441832706657246123640451651308242243441149221420307024509289518464271911428203535490427811885358075523807586850348320179078399387600796867025190584102828668867283628186552196088071104441055046944460316764309568830006256954407738049028264742282972937844907793692386534140799357698103258134769006128080257556595124378037193664375306575613382185037328284742360727790343585929431716683080948660334579476281822112912901819241298487418545828629878436858178814077178144080263164323350948043696340650211169547568188515248235346576724250119848274395973338379098745693383272290153801391783900876870835192940859372625220880449516657821326826929390977232356969600393881347963359482135722784555725647050393253554281045915376888053846120828328336504732545722007443366186855638806119439889820773835920466952061730660252782497415712682006456240596993907854913623563139415387852591472525202715651054842734804206210380911686781357408380108285870527970222609315468813072842481187705709506945773379910171507105302236215538361199104408577598087577866227331714610883791319467799663788439605567305596956597965973693359727347570799005524604278542471004625566821158553469048294345189411977965276132980325645578688500977165821877312613846356743636243182761634690183515473576779763184995743757208306276775569497086263330311302135226662608861103029751845466300470736113700120709965418855996381625388008425154245802695519878726157883372654245253216595692526868997431196071375376546988517167501307228843908448548624950726666958003472408417379201892464459123647877597957070146784689718701139327185117493055974617651256328572746805792478993276169953164508574681871754141228584286715885932157210997678430843489951697297271926691932434507818386730113102917583487698052417636179103249982758145408311035643748348747080277071450946333870870517075636606230517318464355020242834688906983638080433619447549301334385439748744460539398610819355254367139308590207317599938709103132458403060723449882991293304260937372889186273878102167249170122689472162650330450484779053036127559667088354303940553657529246641909641066322737170463299962937292305045495782666647585636544651744140254656212351712150744851632586018968951590070436334644362489603230762764176709207640109675800034351673666487310510074449664609733120895943177445967298961238920679447637270286117485471928007359842150245043085715671427801132158391911797295391842801835861574687093981032646633990792685087286633262761807664400868734950398892817053176992280222546189610171748924219855882843712630887449414804556992306491607692297937084826157757622530292357173052669648258469278773516113499480396256323369261499087890443997084453870263230582782316858201418413027247841263192647749592344099813821450325525964663193298233985521405367444837555165091577819292078229911407421096302086888103692526564740032274073845206171506619182294384692669668176678721210550707581793610371920968910236286773251958030774264988145456759403816887243946626552709100629002635679725196052236071499914116504646816270719292592513581587921447175291982199326520330454089144203804255068693029861125968790305440859057735354995899643215280661788409732634265781948783148056476981519797414346581574125360810307456814378747753525024304263484152832606109710503330108678330986677644720653294313988596139535135672229821250864385237354674421767911109946313123293392368569478951386736072075944609987727936583382185155339410939001829199089664644332146034498204841353536186813939705559976822957131038134351703056003032017630688187332174801816508918277101678422407377919581858869156694334257309053623821368088516708116493500077504792672161076898527887543105586232156202208580241468227752057973394617875636721158155364295564262631815993971312530345840256209571531372588911328313926285832301029399669444255105336808138247174324408299429161673030465896403585594477081600041832674483809252499414495059169354907900640634780969266399674585750938788541994381129853148175180044573730621200524126520627754624296995758460709080678124154619520489825953360643675459085362983708322787423574932158264176657075271105328855388496482434663149411332012364353551582611938654517325873108372589974868192063097385094207534057821206106867141565756581043076120359967451733242215826934372133543625054270661706133635866643797838106439096653418795280102870261295020139303316945715865775427507579434554491473229734131970612532669754751927379072817390773773370711450072729536194201032017517714759380425405591004579578302651039000768564438851420199476621931255251038270378729335919163309978467862672757039929034858491854669607467143366942321024379403864015282803485159203515024474138749402241446646883114107943784695343112291741965895249183820384464175080834117940735015869894905112461089772958920574990543476476742708361510491609556229755697112816890254487444354477397682342548524122086227816361555400760642026254972520343712682269704633439355833658495744885637717412458107596064019240377014341501061341902294519297304944239702566186601508145627220275783075309206819266411502461666587263431805518124611750486848941928183500959180214460671715004867741436433832662118241461413231137366337498026968806265297636451736010878144289748555595025262395232848269648291962064390322338822681011844771134122357407810367948146112144660960175108708568000315099783833801606374960128253585701392508141762132893405512608493007781771286390418745203180597465021418729808171711212329797565044362661954999849646978818444786605528664419590333475636814932916251919381903100780455504582883642332821960227395358837004763099403707359249964616416296553357183567499917538525077888727212876558563888230479169147285696856130778461044667975687558477395378877711730945512476778412412146616686764418527971046498246229430628480971760541408951158999219950530238705839499569871210193743339746315150261987482615444940646453392773149478723792264478038806045184857003712495974807007891316930371209660438786150513280279760549210615020959855601135965015777658043379999179577780761925209198265326735982200621126798810458577721367639181349527183942208466353089992264719074318337297463220261464961234284075491894277254590864153712522522388641717060568472815633055633557332724621328425395324504474059924641924477633625072801230142740558210183670085245478665548861130863199558708611381039613002504385320893361127734293111262155365012623839160909128199297990496877922995934095826913936666199388761974498187554207133680426915428346104728536451696121882760053430259362559330964808296366541885947140181229674249490342152469230976718399641014649945971553904627707060376945666888600828407112393700218249409486790094434655724379791158411327105407842751529352839524758254705881134909659150951166395941749659680293267344672378707906436296672400911048903445325611728657080697783339961517670282330681098820497777329212912636080340286591835774276570981347182744310595252700074975870558693703137615893686783755772104153493477921415526051805211216855484531294952866800813112064891959834765668262137970085556667802191364824554010111121478301330837251241209532091037903001067687321631363305541035333424568381392558138442828926213120828319301346506699465198935971135733792493029018023842785720909581746559651118994572685457014825846687387759762821964080566116911272874946300004485068968415557195513537962546436242770891426861031076437017792790376271012242132868790340558499218065718143412497145682765197990721916709701385275423155720337564167053164204207622684877531885758538550599756891911674972562734220712860025893070275177401033341587235341477788486336366502082634080008878968742827909706694754310335395939554586073401057488240854359237657143647600774178350122915191232166096503121436980081142628782361731604984654267309094568263515413873801103299899254579558043882587308966845510153199396886036770750850760547183432329006951228081214551339728392243259469944978751391524943158320555923481467464214698384293050090806905282716784229089747926109732769789698529992697272390189220729072023879659511281051686694623556380633757656885526055692842349911864772145743156555597095873551932769282648408606544734113353231645501698328414392219568052659716378957072412826822631034959682262433388685479936590864152947830966485131645123591385518380197774698555486962824335452906841952160555115279215961212642713516743012746217725182521734072882444374936905206061863284300970607495344758166270865984965965641347681160033866740517377767704517672145577298468562626912963329751524352580690634548595808713385462277896102390575191167353119495650965156979715567253836530054999322723789670889712086846389887244682840184460985443138569263423309935134155647867863791099085768194844461134257870902579687565657334329179487234692050047223635158274153399173311848950401520099469356629100873711810631655194673249627018068113416265064387026404552288826567223365179719327986127212048414174471479472609129399174052799120731969643343393980036653193643698326327403072480962166521730952688155691620740491344699088178401078821754731196872357955184876641989981019383895817836223097456532948414922350241457911536694409632236278732435332971403154721628499039874763454308721080305116170383180074291752424563427528748049731347273734388531740693010042002269530141098473725128956213807075563195489192758173328376405890263809541130240968666562642808470146529894940860136443862086009089234847886136583728411605854467323298500392679813714153875858155155118008603276670901801897321835653724237979843942615982701450092836060461276716815428084573512350137406455969524503150214822975374295949963910919453052412979018010160590554344563677169840478567129205351779960881053761253133248661280053375019845892076925248529614210310463063128114305497859608877322914372031434605356896195641828260775230652917028195696665057034499583872766622696137817012175408825165251439233614457034406076151215097096509397633216868866930291782564557335554980342419533813201004037179054531458738962425702049735221530896255636349897991780271758437013159177324914647575565766952106841891323372877509107340789138106394969459838165411974178922291840377244986206853855731840801698085273740526213239770922156834570304957648632155745382465767106523289208347052596502984347922390250353794620158916506497055958912619980872758272852122214996053103814405458766001328439155986366228445860281259596540494084237657766325728448593799585961955102941341718179325148067915864656555498642529889908287399267590067282284536450816635538607017976761400262143923933737932950928363203712954794210934117740602252345226554769194835125150896709137841054490546009248631916813546173967700406760784125001269856570332773952705752880663603883952736710885404501850363500811386285378554156037326190997510615704173745820662450552877010476381121170002395181018167453625020376805946095902049918731991990663984230059449939932575814692958444056314952437983806347150695047270484030247108060601051673769994391724331450121101506546137321718372592354352661615747372269570159336095557370981865147193352758637991937010519951957741029574979797325771443544958840946440468756104860232547122001335836283416989545009079528782014599249531118148488289167519247509672361138848566384591155106629776643398477304327346085072039034781257033731063656545627771872726011961031826002188934000333324737278008206608574442737746189353078795917603020918605152201937799017544136720547134968849208851707785262695673709974454207796505584347671882209410732298821692915005462049453174858573579659812348828433298627618327953335564141460486145250363046057691324900089258028356131843197678405657767198494740654025059866850411608531696461845698723245684449266625456244968775850586895435524016828272937190138206811856166425405276084872635370943163804821736764308009518610253434567299353501594133219375157403258838297879640592679759006377145146827035243932364585825498087285773891906886482705692313913133022586542209113118598744490229561530746105409962652577087289883374644172916695496051208051164044616004979006915598331926225538723764752888836491530312816516806311877748229843412034783664790479656567712070673828517171602185977920131398977003642622671396495019972481320603885446667916158482913898417209510176422656457483485418836607634376403543505982191372168949826504258995398232570056037123764905363370939136350229072147956183129957055795845059691226395450407633820353382692325240795290724958114367107563916888957373080025487929135955625949863899430393297779732518702537473889977841018967190165623143793765673914784493246788461641059726943942540114060271913147892835938131298663050970540049901355138769216357571728194227384448976583711676637399586416870051376773512745226557960956730118241555452172105788388561193841787686775042110226052841875229310909035651403512553279438457083244200114195970806499102377910991941481500961867587919577037086782293033640187782279678209873947496194331559261691798682736067946496260552466938577089410597787130242699204306076064022730681456023985717086415489274237772686294926975409543763909869688846962269973848757438637491187957710597886319875838186343334082566167389988153803335019224134587479923890992426713154808783671149405402196851478460572539965890231974407842554188306328213937005350996560217006356470491252589386217694585810028383017272004281742969536408736284054421457354389069397258565463267014459909661245515065196799614881972706296074839943797704195569164886869410041621141512184815735946788510437481233623099146249048311181754715095576144693518250469325520254144351338786141318019246089802515339330509695271063481513853347833520353567588950076482580787248827442966807190248390962443793398583449613422910779870517832132311152713220013971461897188414331729371683616915987425672025354245092331985627421649497055004419341586923932110800301227413683974259153502678592508232776652322183169076567494310701565441297945553380696252850009633722606503531481676265528054410596428956900582915406843254056939172828561615491041233950267939160865529484658126174018302177052498245466173819948935645772463314608169856288959260508097873288136645044471851409997583877258104626441880463984353595978951773166231576300857991277477915147325892944590743768221242638238294570866967682585972592297543326711928519295257524160550592008367058508805088120085311149436002361627118252872868419840070880883330743621729070758169480826288994901041916917997145692489231992712903317273355545271825589068752017238621255117550953402069241168501705196139036894080649950279984879386326996461731790279359693113168538374065588819589144106657645361520251079567411307786735145037548116712224686225947775751172297578730362951193495397570839666616331296275447193242467034462165833400718320791040624174651424371382692637531764814999326864785892753763996184131345819959460809325495329543541237815905633299320756558446678487021631656139696634826065967758901887851862540841906902396517559791249162519767191135344365218559863487882667240337660106003784215356418861896628888253776282957202296273911660235632994615309488940373054539649468728873098209360045121904923282655859537227859583449224098359132697614964803548712112999874599459367464981818679091380574319329172997340641655188460097880679684398310911078146046244514942898565852864892366883254908290017554984844770769437495143317995003392767574843890034987970973329361157029658905632298851460518127292018272105023752827320380072722855310127142206223841920996481115645570016490617359201601500389782415653985966313256969765573191814382885520775254917676442007982997717165640764456219452905015789324440168481438403846793033539416234447733077108170597676489062039255065461265798061631833474862036775394124305393808568490125233744186882177241444149475628014391556976814370081851263989795521802629166310181656442160138081629484529261987602057835175408207450990798037038080858291893684575422768062734680257064504555384394739026177900305407942979903755130311614610917815440582337242631588945027206202812647744171892685172232190881920439079523125657398150691707296633410488622661766280905095963445365352218678114001892768547359518105093829867895620327549288415516304031595339930583352630626729855831899960761404054251846425625891638099274176986034971783146012188989617263375014580084993860566575914737401423496831979880523108205475725793962455496119948685544582445649873626172470003000084160614274409649243510355616106143358343701903117734585875712331097578942057750323994333668353374500062820115481944993162695465795229187015124888761987163464986204630798836210592349034767872617737516309618160130744708884922352637424717263556178941632693306031736067875474119358901696318203992634209806430853935383548832092928203215563807203656446582830034484759310988575661079263561402606734361739799530330438574716919310150961315427130853573177174660114287220621177204892367012190107090098228787645581842477469253967435000244678373291497691287318717749909149601108626381142214874442331334795710775622483144904977108338252268966864268796380645093063837313602863092157097119678201874034766569716521526963515932857382232102042410759772201890072634244472266330029289116804743906834486867832498675769636196161688275213666284002732014290015222244821354622129311338573592406657766640701094786852600428457962171206364578547846161372936381258123096601254368499660602374671215644262407201762907014487972950500713338181818585312795850186439308414052408566216554294660666052926896969217442269050966999787161271470778968430836675316685925361719249688091488642810803926195123570801552718894701156957373302487217030323015416871057819013638822165749683955772266197466244022330385610347989482525048174890569150161906032888298226491822792962317316425860403417088043981831746075105949606107407959976954764214596107998084534567175524276081082701766380165347034378181486915430026089727229744448870072311839328614300734707048372650978848809401660725818930386290357738724308192344317526646625080138305625500709208258691664386881511973481239363092026528387488265867921770931846013461457705369659897948190322234218087088345459867613419772229001945384789704473935846473481626686344132460769345681937761158501670856126149506104559272893563123355464942810009415124333190029377492640739698343415149833660918100758715945103816549685952756154910616245487831338343621369562705388365786622657531652149448346230788240444594142972337561676528546173747086184052268699926703328575587897534075717721033178904234992047871836705937441434707515113002162762440552811126125653903163618144589201139251523994580716350186962857078791029672814913656677768485276057782307971059395938633821864933712442790627042452547812405323240337604351764517650016902586606387315591630360108169029258781893409894391174767093623746294892790321182401704585309323189680050717942863989923879606838225881300399716139900532268527880126200678082024389065987109396691015873375516010200746028806240389591732321415633972342060663310922831437871900318432265797894724351256321213647424212623556931481016433207656435537501470788547863333601857188479111975279633559559187716814921863180136794871498150545878406090993770438021873806390554135902136942902185061255711927141056705234156776176913430313548398789440495650476589512963523764565750163138229209278129949744891023779123602325837383795555355017819017230704121134818183982510761590411632903143952862677874587656157155745421624732138044421514420607469241655487882631830665170701663165502670231602448773838664066264524581663942278169881925114384002003628189673202548458366070228331788628358691207073818060250135444259684615136933537856368819574378856658516153637110831644716717472029055094905915259776521899398832988141960915255794481623527539622074962168244083803995148963359199659645718115165766829073733440758030160354995267240145822464654673100531124952163809785412168622406087071062167285205772157456175435700520099842547882830471192576510862878900498247371260050615273002903387482764617112618228837403966174856233560691242612444095540087972385568356590155784112222051268454284912979226098929641482302503427144389128338768576648695038511260425768457133837264395433887308580968884815799219904706788465493160894896781069042386575812641759828064188608574005916235083589176492567321400398292282687053724729936103717733952987748416085701510467800420301698204228421804701785966372497771941969796170643805406828449394754118249446205308287429578913910074561300663446046952059266273672183387405623104692256772067276625508860206326312048781537017273386978047849534963709181944743568717188870585365232536057926926326561444753205239552004873434927933803869372462813378118953676637277167968480339949929883239284387380473925123372935308042394891754257198906276235426120431490752812529161942029750166913491186964595495088197086158054533051257428262434628986942877550909663354480348866569875616867481892587206329210185559235235873641298017962749284978470282106722898783416584223966498988627048540987914192421409090829917870856407653412032299921644011592076519538296729336257865190971075634969823488352028570831474557164944977376454390068840454845119369927604669418544196090714620096135393662856719321172524986140807682361960714916600765373247852284966136736816866110136128103255161921475154108913256693252572635857849314543098077359683409330974059458443988977081253130818947801960130796650846873979855617710431974093623930298810029983476801026954427900134024873044061669732559918922459331810171888660518337423776212547187103932180306777365536493231355863522590069213436641556294456252897443421044864796247798453408683768265935575466566753874465803321828204034174452165624648566861877957903723500910739252311546212719336972092646028068244144646924818678119445690190995074843765876466086827086673245757111430022298114792811320444280833152283566884736075667800823834453299479826075862280514406780568877898174937392377632176054832659743744066118136013307291721141348282769508396019291845153447931820746114906395871809617348107809499687192412967512190252287679121712158218115788953327733385389046229256158240938896308475555543386672302383359320332431070425879386680314276540247755139599390860770731669682207456232772353170047733591329491867310653817623322356641903455100344687349159832735887187634179470058459969780878178673438896154123266385671006910877903271754997176412351894647318652774904207157137930888171125811793193914636094814467563320152359905281662887975537730257495959154478016946088798624030470425356124078213084516575558367754318042319847834148086573173600980138765171416983182648728816256665131994726073903826283189491784248972117400753838781806504038523608818769033859695896048806381101257098702995827441745574795308536634691031076985992406761405890968192349280685466976224343860356208655320923816153794890150053803960361999192052295556169440630198303790619061018800278870122405490208215184431678949642468090304121353406630639262899155995830332717827839413329576766545895663875779599929830172822316413811286276898653400680163244182906838944019464989461701501699206339225229057854875959917959606056823368779636373326080100745801349582989939392872165754343500879210946411357169624713401121723563842499105990983100219215690590342077813872161327070115988785729786570295040381474874374906152006878794034748839342339717378186779830439542881051982026208474616280775805925030881232358939000278653043804795834082400191621945575317443270015483825486977560837869470802865387215596117474808947723557079729570124220714122919176910049437455146319078370640470828673422660706677590880056669731606505932388730901352415676972001583714976983312937112710573364504887137225403874412269321697941865748406422205903304727605060913516371804268438005256758842835763966549434287664650095286408106885031350756028918008892999864585233278205047494687804479765622939548601333896327886009727805380844701083409168454640854780614630621636606308983115324867610175763319733901249437000618806592467612565630083806519845708203917883675150338191076550330721183117878483384543297749250274549308405299716068697830899787777884743925996569031739751724972228489567902885432406183150682152795662634011009503709116419620217352426936627747029940233639953231405829671763268146323461949903008799809129250619378548186180090438569209018306216399586309166974082794665486523391105391321092513022177360625471735356359494427979568599474931825331160875490165614578811506124020955418484838047609419955234427898923326679867056767331533990542909939654976245781859094710725428881473377775849963627338244291072583290336927090807813998893471155948742755109876931697858291079146148297566660543077818721575540041702564009837250916383307086205963432290143288990808787227478652792115241756003056838670652833905610757148805354638625171969701227642137128868998097897616030161079519443890139343894242594719288309433076973032089281198818282756072985124418113586250710184631890561363374266969742704743275719479504271596768828776596463521260478568532920631077846997855135131546505507193238178850582820711934078783407133566555703981677702152539454032761058778653121069418742389979220752309518335701634990039660056089268948526886658789687821728518120550654666650456294155861925881601275698852061178448125760669797914388964375057177205442358876625556750698099712387123920771232699916540894345301033355330387612620861464923298407234602248466731852670194564492889309207774329606794979800740842907687843078030464826970499771173153551357325773964777194532797098278489679444504917687174290711043997949211080557548146907465961240420507310806902914357697967560941025578182675053006388418423343104656406262985931393228174635660325412618684686271608338765058768718468074174967392513658792967592437003910765170922027907986330163119358890038199490383255996808783999280838745152684126997906516128367711865521015346951601089908883761924850040880039701923194495963853355184505774872758297038013629529410490035014819807487002922422800590219781202215560347978373666024750017198497097610729782829833582321073864173358383369769004364302125989201550900743247897036292321427195197623546057513064170119192542959551167994418149889983874051684146267335395281809264550744443404769948464898710539696250433076558520948903984597804721531882601584559387407586391579588716515222056600992192668679785212672856294460226207410963996501501175146664306118289189110016568915475208611328649600145678387180368635228002299980986515870312988505820996376285064236850160273110000086592651803846730327292081602837316457219834988541684184919285821732506101707224885553814793292279644107236667494253781970819125114456798683521612860840901694913572177190399711549181271697078076362987915985530025969783325285320000471938116572273654873075760058349622658819246223955217256805437264160543444209859657137229435053796969571938547235765498097462085337103041665493849022927087921788670700873854273986197784035551838116322293705960885461145042247060999078125770175046066198838381654794427563597368730451635420936321875382114826240787456307217844987383685789565197034592155115470592239712098720396135846458799065466490961682187720525017685951487452979307542178850795383453915571837189740530930443614912521814896539559626442044815077334895417190110335384698476248833228268924213822406053159704204306116610887841891160431023151990882411168682338024563258558417997101693952962671595712440914005127765589123928082097960291947368267699555927097621489585671492265482490069619450059392920696623851134611458837717886225769780401494103944304676703091199958402671723635951150000039324915577145931673880484293445571918731948923456396678259579875025937542424692315272725027561040274728577300311409036364061942203479837854381060593896676906352932063595636370832349681027416290108366870884115286215169191068659198172242493037994517441287026382503647506802876865612102588161669327154716225309818570141867933640734495705165292719617561857476696531825573368646170024928334073736754472381586026397069128935559961008150220687012082903405145472212406523272547016100241841957620767878219804394805862645253643018183562441696331607461312853373617194054445181615032080506743931819637800420999997660189631748624076124174273824050513014663533765678222017061985409466712788530018481761306532451109147608206657971118091864333505706629472002691199670333733649655222426925302861925873812334690553422650779797070115352719681354678995371732887073288381266548449404090192142980990716839051053791940585051815335408542843547442692689399506358794058990490548330812618374813194171452409780454740865548990396154602073524521466682785974490418552566213136133862734904472504385530449684200374058673375259347481012608873575511151168502647024500097733036917470999657498136238065862137719908740680289300773704891806655729994309099619429155998804538899873181460692195683388119524858230897397462568532189908094261233390659864843408284906477556390214720178281656285793564851367857021581761690592022019059384676894388849936819717856350075935742895292178519984117852674688204605917672608565586797860793337321491866588196310065133725230343955415536149300269672006360943336782349657238255651322178570332192071605479503917804676033840901941362647072509474489424387001157006371097112995896489879405183000965983823403061228016105407793363138591112766645618923353924910552051260882217024045083700667642126231542601042155397146018124978687901823658878343510033365549769842337284958895336469574857775704334734412266144732689639136846936248976316496281705918840782589002214420587326125798541206171657540798603756047920729462748957039604808901378662399987812431591824822070927256200738098260542765124187884310591421318329409180116053617059204172211294792272875364398401938154337563910424788655806458153926018437742439132131049747577391096729103557596793559230799861528391813118675772016888303784853315290204741594351907540746732566763649026946743706213701665984049821931554015536185762608612436394403339803630933110108737450469061542287449782856110704441964937182520618783097492400833885382514171987523071483949337804318766112556139723375464673259011246956150035330396032649328870121916891564599568761667459283675020808481397945027376031511066587211571494726834373315443169269650325281082676212885814578949508838720343176533587361279412818647672276384467283879400176725784697290968029393511635806891423892185467886679196874452091766782106738589085948551556405488846540225182084832527918090420162594315885130232331500828639896485034150396821768711477642902923401035145592711006296384509782678290291874179481626037739896357923053153752554243720806452840708394628087399713477893162726683990843871220252335728538307502403818948576526866709619575284947677045779411836790155851095059808354754194228841230396442574499031524875777251028614641872404182621578108436965279528992131409757752342954619309897147399802838515828379927079175314314284446919480266166893913279760014949810825511943826905115423075070800452775043598647145192499690452038642396856028378969347928499806711904217196871242026476933194112524515294188504189971497508098032488308696674096080848737458190065852869768909097670443544618457698936024861623962220361888163559498889763088507039554648441763260758256801820368961049254269495719479986008093890266986737902353463228981409226086282663550440593488174760895817986236621567460693946195791120908733337746276128372479703181480566482473577074674019287295067316812413125309131277523677930868263403597918995653385251246754449643524825662433730469634635944162281505155099395372919532415801462638811125704578530736296630424189040128537856747662842834053781128557142892556314193958146686933438943613336716536199504864403667460192799479844648535073548237607982729621283687256859979850041480622928478807451931094542721688511878118516530586485707073933817463692483122620935900338648068380856322855692390004681029413166180786009146857862351311274573958292097398831304652697792325835130624927827423354482874934829418997473853773867065121980970825960972602464247749952912309869801732187144262250729517681658380582267960806296471087663769379217955369322391695272847821603751743397571403380348496826965799486394478959838386333000590079090958685832257967592468752856795732516953603915891903122864077693349402571127155514728009203820589685842426253696765084638176306312420278584837451367444708501166165451019013950236820359448283733375946292388616418511611501880010817114252197964986019123606204911704660779198778591190681743587475411652547689533453759671990346866301608305080070529361569909945314026194582578979842564608923790014306837760757812582587461253498299804742438213601415533678537949070563144233837578951734512864214002739041850279701324576756417302745063525070784650656062906431118462785016407436002486958712122601835089461075768668418416289251378749921862336989701552594178837074195064601686259840741217383992151776217592581706873514707743093646082584803904049381406720982486410457520284942633703794190232078994365776362601055178392996670661688574877935978300158716302372467794896325715151400534722733728438502224900456075763886810714507869333123344441271365842721934496557947012759829846850107782463053389169494684359075610210855465075456947235355824510555165254874819527753019151781190927755218653208660827497502618680904456070659975810660320083152914000683911899398546687941884724333376625465249994783824122875231199609241835362022965439370660615381010000624262741405512615655042652734684423616366757347921235798173441441437891431050921457999391338166304770164219135532050911044840472633632946782774876972014851275707234374923495204513414693129039625379981102635616251667553877727053676430920230283802874611543925165742377382412809544048482213455418026283373517738902396729554037221283945391459103012726624471779924392920336248259781788356550929398574931973848612785636314973149702634235692628391945619021146451382360582737257124984324967799324081446839119284395096451252480302129192642789516098678960199411829447613165573284441015575681863390304386889518025586425964826303211682973526437830537556224952147404513297839208605028247998030606540715866775923716539040006084744737078886626535179739265924729899280110323336756221342929489536496371129937812371871969415122516464139836363829975553238126696681944692430520230630912750096140369501054861522860786763988862466061530860044180160895011434468741573252431365965316468565036554144591448187214703224255999637193340883338636805025774136124995939257024648006289532542227536350054560694163310853775535025982865990142044816757748648525992798874431618130611365868344998822016937296966421514182320802909267346948868501414386415743116623002928814577790812207920751556160737879795669417756236350561517293605172220201680492830882894570943116260349329585728173980579913743054767031746053591315594258445598561332284811977159282833821846622722653336436909194948805291972049364122628614481821662805665460502464684268564914509902824831441133791959627795405528261072284172960139298303154842603711173076141570416554157462906433421662352736513558485233823694829084747879063546924138937976101255645374586498705349593329262423938723207834710322296978822591821956461691021982383573906068380737665547148297141409353296652755936556923778321680183883737149119931174882928464850617485926418887385759514530322899062237436892932656825356952043491055257521269204205496252826773380234092970595797362013837666549936395703418310666966440541639732643311660055764721961148681433972942260193399576727899026206567407267075551670626519045452898768805950112001737658388976194455747573782104809791452840142751775012104676316975253199609017881531647233415160321273672857495711526338410387289770883027582458522951903738149768703836387332198804177906551619010942686804266480350614898243545133236811114005974577822871281426478187349758077031240974552963790391042054107357155959668880533229537831438831567950352698701670954008342026326572316124353899181159293724105285845874915912171395920999696806738190953696247750245498662007933722988941183036125867995139756266268849496248740336808385479398475185673033443697960658798996637766682896001398051857911249823574252623803992711389112411379301231422391916173654190646895966579066714582405765146615166098804300352200727300215261142351470391307876471410422468034877050579044557930384995761071898224299075198676054672556979544073480465296643647461119653107016552359433218647446816689429164902314520514234835996283296197380774726771481268156381279014364305354828897042062068505625004982845476955540648446155528544471981294161680477736855344177212095687123070210745139204341915735137747386875588973512145336819196098466143152365942799073183007337854401386910584196743580730479982511357040043512476838193708735133395218342018395208958110031811752776717340338710287603360215096057721409934530169492203008834988942906668358490312799016316581712845939745913249827680026779602243381016793441511618738834232641489654212088947071180422417435885431390382962892729722635642158097054820464970835193949076765549130715193953768303773281539191704624364671748491096470213491843003228730701988181713938229857921904568468132943490364999732086395538207165769050561533562283832829838926490800209298428051913948993732842575151829796836010005229586135209547163820236569552457639297248623776004723149336940045271339174317481583697738263507369053701330696289187436651000384455566188355939328134856530921544619529005076254353099268581509221205017888176316131372692112675033247461380073960632733178087375202297155845674670583560248774966507563556092870818942180713062071583105267198188206715428814102257284776484242263203358020534564690670129423110227097263541071788740250498241281457988012846842299251000302333111413616857642245791406450759574930404442576855467191466987549030157483465501632254138165294385863841913697923684516226042084073823123758270532117021508796909603332831908196866487450482818342494781449366847471468882522131897413831492729927420000756802321841879088819376931010443166558312111819049319459419560060586140540817620641851894270851371251635899866054282699496476939006308532398784547619711273141784036633042460168928968694945328822090628663869492136623354212520339629457807170645919055723618969745261362797829907368944074417117444516534507936084949933220923584495742166850780369400171399674150080537810156536812036293701675928747924354597581551162668848695031937530512481397143117356736731295983147793675535687474592016324110753134569449982905173519825320825364593109546404663460473863669651885072633491869238586871687179762618525826750391208724962784183397176729473378259019342808566036718024848153911580743558730773423344499324840104125791213351017249849659313542053001771052412744317696718537372029069055538313877996145116113504648344254531152810179381485219283729786588744810122669771493014658048509649927142462840405354119165769430484132075174527530799284849464358300027716661525794814777270884494456899971230087278527205677177007492581841524380113316572495347575864000812889962068859711415186072680628198107623165809710734874093940381032350030368786483759967954675008877339862662349663115038363748001180938433119927168768857821728790361015742786936667935263719115358302050611400638715559165379642903637459125389941884531612327255517668859563380609933120036824069125147885891239366330588068270382061719480788640855367368097222363920354389003812514450243112475744953620281565711013350569883681692326150048130630553550545932064916044683176337686694287119440102961255877381052954674988639564755194573542215276703378531451891319228454417836372597832648065469868384274213463811347456839683825849396907499936487290660621504457281330181572635931894017602698929769353063212883903788461102028376112827581511326082122514973071818741740529267762865821587427698661632966256333985417222279729052279028863443452061185163582243396732780870491256362298046509256040915250010102554089232612441326027157864697069489355363970006774701424861035044184470897876393090993200079020311086002705319571100007533858615250920722207987135012988646210758506396790422448289581755251048769687808058813078144267202475381632850745099496827773625721262757093026950131450815480292417509013108256482924202515486729000698423986833238772976949681742177976753516062380610536703170000895631013341614197789358164599517858019731592411094550500385012007582026140743959830776011374428838911676904390179049496048253316798110407787546848620546104560036027330254685646970148799577314344611924847922358492116357590388869296325045114996112130689088227448561163603270202130702408355396003734349757964367811059420524489912255080443123083269351819097985138553256745942097234370177035840229256240925466260372635138813879696222871054503890416772788814238808345175814923835751969893117502579199330022055567845924902160996331577793953792573066657449156421858539029173729466638127380855271402296808177619611954560384625951324676357330489631096265529088002809893715804270355235988467519078120116378556905140709039180464965059729417946252675359534437598721665326953168405899798278170501332532650684625008282840099964581000692101660145963550549521231930154943491920181800271320003152566252681400763422545675669913160981168700910243858448557071528054060718614545621002114323780312007562821603354050531042256558211771786860405680895733003141284179560355104289866946588758085862991645211643803486176494812226816807994361343841762124859148495578559515396076365020358844606783916510461478788704871973974043418923655397128513544524865469267562652138620476148057942566449633241762518737089896775319228174701813236648472746468407753706557790027954224417051434333151218079104470254076151921116622226242064097840791857272834550969875358052231728134084493274646634226858493994385752707139601279605772628364978613424967382407787893147861333254566155038994186744558075065679654058697514009499285816172854431443942166093119386565110076827372348923405485371110779204926760971703153900681381532466872011819711632474261557702922326418179534234993405324178638517638721270393644532016390120831102611986571184269366515089115777600248668053019732185689358665805634225613256321847907122790540480454699573135896053787866138647412094034842995280457724013728282450737336535859495759364052823774070621453268992827652279266560517175240502942549381242462656664362946397528070862978773003296545119655226516185479481255131654167847275229402049728067987089375508015898698576507566086102261002887520744720540324219511251851331917202226028171865907962054901598743706848984456650456447393584634697407092129030732393084362183806390565468116760649314657818089274837876323332977174640663199423012242320561041113459358254678818008541325304329385869669498554722986752377239299217625203275827319354929459493459991796484561468896127247086042928663354641747616979402724891148871700216414551917301591185826957123760411208094417610535662174942749941383088636970437245130163882306754456163209839593385278039698061150777005203507319406110364905803116084832996689219816519137029339666559092989820973918969360021638972175661475772156268044440953803016516261229538072066695394958928280907014558511316234663300499821616180129921575320727430227158620245220930223191951883058320219800814486888828603098598947458945428852421655890571583661613983715352471482502475068392798425289790696781411919866207026544948307965130637206923374317070982198043366305065485246289349105157622011030567644903708495257941147007343247665047857958671536184943622949856924231080820293061960800961458277232183467772596954758734340357165706381506309223165905783707574654074300805740503298142156862829425393785543633299491033615032731906776093915735450504014764629759093267837560214852697669936803622138839920857131242098976208104017957958871096556907979342427792110102809292349446413889896222060507794684324539454301984755110980624377240713571203974357984719062319346420105120577193814347719094511830280930940348638367558053983044455280524121554531125500408377839059204326135202167388609075185857172284455454009480154475483266434476642275354346986971905472115661532196725326773224621789283195549195499581622418174810637084431667983138412017880787965402433263671866906673431654193603148044718926157021839031223997322203807873712033761574394123371058389522587701771737019706341911790704300674099790377719566232966262502712625005584500966466134492357634133332416828980362261900211398054787832710308074617409319154596979819605105837076922565715000690391966192039369027325394363161072528448577618072672768669166180394254378567345396860693320010196923821643055192869184262165440595297109943587826664241514340998155101885562116126558141889280126793625165640029475968233452223660737353433110152246098698375141415994651997400545099181945199515297159289231034673865732192500466169712531195273784620248778629434993938566840887670979197097012645719652971343838798347350695680462495844112449628209299787802375784222913396881028470760130095930437315082236714443782393801448821719009290201924571048272253052196779514040665897493714050136627716434794008553387585472215590317609850384157292907697189798211371919866809892758377866794785335753784342877981032004452552444807202594778483905371714597574046086111328156087763820250319432916054407943629201453718222999657402790088341197229675539610717161394886444849643550742530698568132993224079493320216840844718703801890655431924329141410884145372937137760079638204067781204145514688145972903032991113023591012847111856065058731851743315669674559422987427503017333756216890968014825608344672598660826275316008584573494750787806592339921683118037500940179837466580013192011810458847346427834377607275461727892822176496929862767616927100345773924263499519356776410612772812474389042972364074266320357200470501331799959543294920655890559140828415571340317355847101254845286438172586166610232326285232299147412772254727534020229154778872011506272744121893772531404445484454143269468084711440270428128312623962962241939714495948008844039200486928187650070926662354681698387534145757973583605441938350979972606721350319757187743489809456634818768184969959728305157310384267579805982677392230409457938221825377502873068949225220800020210948529857172052546013154438371934181998901705221261335290296316927469454824515004837977793173700119409817691243601129474226862250055979697196861926531000473411022172461098501641068780802150195764874686382338786615642261771995654265320570953767568654605092029982148046586254110295703741572550014821909266654395145101464891994752324200485052849191680927030212308577271318081896114883500122639945259098222051731401910882723847030624216451907090705640294962279954083842706795033530963038975966055325485213430263315186407523495411012710667373839483392367226564742567062966241530280286470297858227481397041172170401232148286759446850156877580037043817198215790750172982910432128140590546499839870704902614687210354895427070587641824688313193758371144502987241001980244619036752213210884898027120197763748921040487440840649190258155431776376538259604944836856875038035608770658687643011354407595040510446111545846735518996424252080812948325273097474652874164315431216378555876755741993378583164866973124772376421180345973544245561618410035849906887519984296914179760407434965421091987826821575441531220347524974657837288893422943624639420989359961999327579855852746995817984807261603069442160536016580589379025537012792832827456287706350882027097465801004261230070192684529305512384750774654045644787481092619973010517128688240086739011053040683898021370051507375539792218212912469923473018244639742258074820942459706485105225234504436710316995863538200906016050613045066714666714036354021275775879580389479333875600645452359756918607429079979864715916301318740969252626733734091629358593742489909212622418160658966321283476787397874305283836977154215541110565424734104390740267066723360675282076016375209157491002268806087097691692757550322365546547615508694531946608626455846089941808043368809808321686400066644633961793736392053553789997427339028540412068889652121746976272358761902311034739966239348533270517598415067396791581423536159790074242766716034641971139326901232148209738769560907794216126281082609909597722485297887177786937962930772207951738026836196802742727891607036865365202977588533071547251982965828710928570636699587006736359091105078177617401598417661157462188576392552133706172509034966731181345846046972090036841696688322540624845189874010501377803722188146462215384060639001052874196466656986147441286045535456063081609941192507380190926232711888983130981515511633419585893064649007017148952488786702034622859204246312372285082150939108966877668383044227739530577769356719583868957024585008267514444911983592890411443916147647014811659364662958246428173738375817565822907877028180683532942813815795534551733672974094280104245557663387844771840382724046919652014957500755956874154637420708261039113340486948836317365411873706761322481599194067791401303207709103939224439529713979938793996531684071161834062896690308003306793208070645888388250936618418885275527691528129600454813057076470344271126854023862840703397648871609516743935022107454070039128073891956364605642083074598538287800815197900777652154500494925887322627716948085830919597885655298724385789106410353740777568068366437039405106679990418059426934906875005395257587818194011831936011084466570728116056037068866435266385956792177429518951188496621360058731507226103756467087236848340109665008436313889006142942873270707952093993621525384547196642210543668728165007913318249929045023020635436621153471171330498731303673841660251473906988170592596694680985362102258164244219762455008075967285323034093437641744413813751884721195975555442713673607403313306598810766602048190645308873994512474050810957757803494592927407496312361134342660960488749149942716499279010336212060529690249045851794420710776874975981952319917989052901641274286589252566400661725382919724861367013676222940984013693478661310283748629016425422842558742966798112642999378741097092004605979467562356670458925647612507110095997794526049576567968754647538136543637703133251619555784884824789119287054213178577743664282921974819059803825489291630968237843826696775007264805475123809725252666292190592079986042003137305383065113045487468108625486623718663449738451714940405160362984997738890801477698641294104702774572725313831269255184672397355838414217025530573010471011624498668575923206438011528475156612387957922715430143072407433626450864313946529083425637441140763999531794122627189692422507745412961404190182394542007192696728645753846867020734019398673444306833663412250631807456946917780752258687433395500003850307196082263162158008609496144831294642263192506554844300108459643798591587981483213816415090603670990136561771546523038524276488096232526652331392975779681164005977746695279628777967998253821017475000510102751944879850343912412931016355761786235071052243061975969836685379372703117528274135048705684921829485354283708482223583057762807250665233061382681959600045896486702956539455877324172815778849025336886292927052540088176266505915787893939457935597699144155688539820370389120055138925712241578783312561641272969300935385520354277021915613418620402421172660432896766534714554472182052337307920486396797788100999511464617816732657313512922283185450900591961015172529337668744019629858140286207115468059270781976478013307504346071415572927315028063295796573448035350691778231330009240896700148150704825079925117629779938829147310134498042705331589159809103677851247122499554720501571905146273093733797702493651198374001097814481783313044793498167003070828137268222975301745857427611054273352474227478139075112844987987086541059085322572757716849635874732960369432416611961694858540953886364221283502525189017750781928519109274436872783864111861469608702560201204391300368393513147925468031748993089628026048932944797343202150193797543624214162472061813204768598861472269318241044065435316128982083303797425862178902064029896751518668768245456232305593833977159767265081195587642278774492488109612432002060931726576500500801533436499194578891087769701096301275839766799681541797395378800218747458099003422698041574009734804372870338285806245669377619708672175321787620667701870279318304214174797694705618849383104525832423030475632826504137813970394157421303306693837933909516227416161793069151725392270104279373197138704550001000144336724537755914162602657556399559126263093079729060297912701495390435451376343041473865184733711666412373683780223229290919617080043579859123350910110724129914043603359653785073446738982898450528029800374650629448137866815172591994799003655363431494059164812005273041936077365271841980345939195332919525326998430443268530736631628003916579570520933816231109673757875900177199618813063793724853997587677664708860530373080749629571092244118034607780042673439926207515761683463774133460169929212801849725507086061951327655504277749926044675481235979847014379814586712451782992741475663945643879032350100375291121984928137019753568101819142738662040818644814977969105423216681701596625785079476316018792864006825994183786266089265434069108953097900624168820798138373815821251905518001642355352427667249557413236872906527913124405092872386214952473117353428077390092955378072939137567866934394687458310645781489802762054321638982330195911657399356515677418624105724528099601116990628282534652808419071753565005762656286731326705097525049723898158557604254124713918571014394756156522244614034590956193735413514236796249831777779925943758366230648525517552183999912037727858149067969342698105450032153587619584247467545887276627538163655291603928457207659948542346959673730603414982984764850512364352290740576453401194912297008354433757431000554246720111968610235709212176128394449620278000309707187572345934213494311938269424444840525488922863966298321325437273305113761933867888882276362781949187128880314409232084603208608851613050769488862864931966240266071668131421519689145010328376730811914328020073837240396793420092518944258513005033928790929545320978064915630757403564126731933848962359417680481850867026776887759252016312815928625943778181040280471199566595554658759378481085242347765201218308746366040120087132449574134206828734130824752408811219358556485971712024613640916479821978175206579277196086081945038777236044263817680092746922860796185279023872017943572714040385947772205016455747888210722381256500314671794470986362587354600121309711435140831660033758528411433038330012074539493966037493104134758832832313136540210891509872060439795314598877801948909314767381284375004605196909719115510147761754874842424984972333475250971337862543638618034641903769855264910728590464362947839125405244966181114100078088226612280534111724249032777688413702130455681535233332041943782924743680121147030393972190129189692624859513022170434592979371617549497641392009851778090128444377292730914677273386375456021314225189471857196740590039519877006144461184073607466128660822729602585609516835863927523244822448648790445541506895645338705319379038526511972604920671238963000496647233232638993401355702013351690959531740389177422060304992306780572767804035138630194618622579233944425913741210211907134145679536648062871532755865619929104806794477534787912124646319330832495748088091657517230029682444918568249812383037983071190069533743961258900269792776346312909181491626054378036407008101099601412488398768578158084901101862951872342864332173269068704383023827302453783342888211824024431305818272269124725690998665412585610439197421369155675169991715704391885380555390816897934902598148029895918292357330025510862635393671970484592088032292998239094095286952012520039039904428478510423720039173526703975664725418122039858851273974821796514469089536602034322353216962549761258534354140813195969003862154185206379446321540311848915985582406870720727111052712477743095575013199492093776958294569749123865870323542863112914203358617334285864831700600796783983647230070057206385854273287201863485895171300800740411686971312478069886558333952511646251414649584232468968160565734271714895748340616104905546605921000911986664374895867894722411023786633916766260944247231658136365296457956612032513101363951142500157716599430641715576414064949532806893578908500507666863769136818210123275815299353653482900705191081388625264277328011185313622557375254275236370061100056751299561915366935349309706054263103785081709298689510512956218456664427001031140058190140723185091601959120416972816379574245385946772627036136357379349608072962643147970442145209528609571335711975463561131126259989280827666239860832587161462293876912774713518974645823762063277292693024653469894094166853446992256716397438577577212884592332667570969099956295410745972255653868387587616352653086564162301093122506957134977070916396457869118561410336154628020898210998182965468080949357734083814356416337439700291817141585518503117943334978155718712770360206620877968436679484877961023756232058296035676159609160045712484967445645678111703864311716276071314124712293415168907284987646159815600947768508114088308793210452448880405053134540836114205924093095736182119343135950695691177875512846871945318076162385648595589856775081733782400396008763343539160572422192689025787329934137105681054314945817623565773228140159196485587736086920575709855728795614080218768672905430819444733531097521181468027995543981543091140660812488473685837206447080374731938334591331333855336716934671538861491892024498151338622036706890627842548968492664651077213876244756134014374903004777683213045031667643183400354077227167942785024570644443127024152312519670278127258486869656274785434059658470510966631723678590793247118867340165320033037708341432668148558363868763676566500289862809540245159088670274515117322342268103254525875342285060495088898499231861177927484397498489858918991352812069550452968859794497885210288372949541130993998441234254766780694353174487075346296455892052656606892132573875684376182218477058070613905294052327787976509683230280418113248322714188367559614510269699385621009371938297547286826372977007619419622990318678992680211756773196637670924265917273050010003129805418291493015378525468148554550072805038827502310710960691133424070016856427781486308848486291167836242718866187080872081794244061583833453131460695496150925144477699031331539545901012553621542418044737767018152965167581196627890825581774420125450235208775691805807801576553289726904902958713659376964891201600796860011254874939488449520774849366247264021323290250970430615168794071819903788116981999277406335738630978160672220450209105032329184519804791812257554042704826816866094710326807272231627262053911661391281099419570726936691680481509449923312458461922488808557667471967832073731326449662469651764624810129931038372713959423479681078707155354569608295228141371763699658802576523823991428854316772065214897768662553968354717621565599201132945785388904186658574428226643013821217689602764814852747115485506146205141213789786656778493990756591801772181904585209657657488725975808782404225176698063808421487526462873428045782743195655683338848997983582556877730142364201924108628973356953053482259930889558408349905500836127446047638109449154761436202881045958680171569314715655530093071956575784309721844723883117635691313970040957344013734081659629196697042105801920470337582135407125513425262129522105457414735541367935165182097073778397153619684393231217521643138906330840274691092439014980858358764702936873168838309676022508289758547648521747905995479729199984447193657936442122010975309753126841232168187452375988404455447158160174577769206243086562647668282039140607370832796382580054299270008540983240360549223896837759335385574133902242072616692631141898072686483211313101891360066510619828667977368200970464748772568301706268862696396781982266324402836303733816050098940632574498607974517212663337309298401575149002510289888828816686933872248911267837401855370001498393029351057243033942334921263473942602357113749702028430793840028163259994456154708697093817086035694922375080044087496875730799781272792031329245485994085557155467171335797732447709330137044410725410797128472033935364680345005297369463587600984278873220424327856696219540385684329565429915598133651543047742655956901136039054519789124754943401097636006882372793622579176287113285155678932674922499692520023710896208411818751332074634808488933593632851584384024363741329563204181452821033713229922494185877407863739538269086962949259630469351361410347142527146175550874909772738386050011131154678032209856756773421110937345003357888249251333414869077092594588850738655965512478534873958792139763042936837418388413722696436785714633414392880798580199109641658111007409819160892000171608629821982518711684248705385128590465926824130915619603712105625840605714905295568477386883946708875316360236257222215197426109710841297162047590397977420167825149663755174837115694362806275659848020886944010427708819355477818055541228072094804492403874175031547371812314527625149200332046951455934212399916154772301160180595197281128423597865010186794292964530163656522507639118414114306959164659613889979490692841745803791966008239854473168161100718451962675875106802188082461784339478156649733543923613812107713950618950209221833450221981061364422964208980263327033404053057486686691147916694196389172566356564622527863716931433498339795483269227494598479365867174897336816644080046098303056602950929355740077314551953668699037924267647901076300724241672964086161919240588282564227405777348350549025253541642554655009909214453075794891749439067664866779951561918952975097106658965418823976365030927162356184272362396556157951091268230768177634531553766827089195364320228327663896964655678597391949272348782321260853404104904484230486811339715078804008831589542372886456708111915496378856097746123636046772893965001675029040658417154435113967838545650612266065036308124772068590067083839488139926167730463820174878248715898932583509513687738462670873544629458845995332797813541273005105137408177802659612852593326725434281249235178102049629004982096390722945015549149770840571598240446147760358398843919732585704100219204861487232177770771638180955039803249896969911154986179356425531236418089992209905115273536396036610942168728983612322606002762391117557260170689478070353989456864932580344657428852360678143758675728531459285782414238186699752528971545218258598554117413956497533995094150860162895282103326454864746175877497177086826715331728285453310898554144512159449866272408962114400767746197363003507378434268616384151556819743511699783191915239271241214347972142278472806070001965913997712965365019995187139865620540521586999959049034289913906041466849156346120868443537580323218674396774931398397973839723732459881061010632775979683483906698217812060297665759965837540297827291130618221700627830664099733933114821387036854078161125200319449640006657672663752557637778195876227196519194340438630638340029462554186683003294881594818507049642108560053199652770659012046493863934738356290085247731666275853663524436355442318416704646447705248108278699914156435318287461704736259850791328672275417033731250352662769820316702497060829369829286021690325330384471174963286718428513833870260593656603606686143917463840695788085405730072141515684713988247861307301937030346686172680163227395634277111191647173108487373595996369317748024976332548998848829723024144079279328496626175908941020680473274804805062000104757525922195825446724721666323780281752862593174724502103562092467240547625364400564089468480733503318507888170340918037610506507558456517991743399999132347660505969562850683903330082843893986708109391166505088859094454743843624940275908240169287969252456110911884252310944845837001790840849931950138111023435797631901476335467499663091329975277294753463457476937033238431635808601940265414866561970881956599608254885323313700408151794463847356147418131739521897401971986514155914811609387880962782053748595078553554710331455239848041295882743789674781126148392247121500129763879583338399575526860415477682842748177754601220726181111942402332372281237863546111563801892493575808873332651283246883493884681422439853745670158515521149864615725869711782013993081271702408984094702828697392922239375938501080749581042929320652378839437544489231292858054731378251160783152599321612992972965254180370058676861180212702502662861991192235517369363462826874608811789764251130971569397039638707332162676363510756740048185529505953822152039522360633520967531135491911844390999739830249380390733696157080709503662378969900808290055093296014866823424635420632170235915137186887515838876312161912595556881306883370404371977202801127329874292778635967054592936788740477031892244227044256682977196243954945711846766991966177075039894868603993881738716441119713650898369529053684066363869254258262436982679603768829633406144565248907466286721230463159219461570664629007391852358199764693762184803243517209185518385834205541043906658379635392041524667578797800766364627137511793442151356876936154551107125201162833751720313609617792044802234861910701918077830009872858640494774054657202389485714553655526049686611027356676992060062650688655767374909119826828577464549326885688115210314751561618581607347866620604597857681955526497371069033269875776838662309891054010772664887455048760621708445227717419275394655656126548052554992113899899615506247281286902814725934624637431394170197721688614482441921762787720349601551630691064307392183541104584421698303066135252104760333213119147826303311370225085174461802442260152890360821973398710705591183163790473295614497185694770492328000517368003422060528463732361979445022325719650195864590734044467685824103120664348680199665816845971152190116394660567440319540623560859693597527256862366551129338036557524541111275592655209845419532785376828100983056488708119943921306056305202276254599175608414325580455436334954104996661882993708292817210442721981144011785755816182350684004920038340372840827851610591142221835198410281372133391837623605142500514784136398494823906990228989559031389513974403414294432499047140069162303459868414418315498695263301453505739562182584198694916336092150521214314272441444979718010570993010235709205107437840091281931308423272767814818416327635480437527868208739330313147599350101638763349940412868226071413948810685567505742388901703845204963652670557498035428752928823072322073627418085257136655111571163602999475004792474183383398802057454240088789471132645360448339769273743878618140177214199153351544382728952971792702918676166105313955928790080600820146364772284262492099149686750087091147088740854057777650400722255248241095839727894549206482817856698316861353852530743737387932418736344772970662335992671380763351855259183807117531547538815921405361202463528645370208326043889393991500491653682836010587053844388433439095475234776174649149227000842065508319506962235139507534898850979204670256960200630595622004813121693603446276153252236124914814541340935252585106820568877127859528141695736217339889371413743078470912601291882338444265289196433370521951589895221401478480415772110373498090646680420988481159559534498836312145217130785581609341094990895471806197413717326316663685292831055637087778571413034295807390562370875112606576765317090699677733118343858192607003463080374223538740870236134869250414077238931007665452334300294027124140358274847894218533948020153009568172817994551156780703106585488338847711041601345325581570140719513737485399522949537401474604875098134289912971875449613901765545751617644162757180022843229928754872099814130144390616763555466399284519741187058052330658838312038112076703956647781041436725376216258091301234687422151180931066215900889479833769503990581410251006953013755627227644380151541516518574605784956532635389329838750881773224003636606549723524356115580566863515040340802142423694319494223961521858547237559946052835838679593690154237383831556421737408283190153886904716976402733819584933064586004370442002040358261452637727443739982599181994673030427300659899764548891018167194890285156519286445181025499250555621964416812008471690352027716413728345269638160289782120052864262946160147367977653304656004996037825263905551895078406696596981559192977276694030339507569364029132390088528637360453353841380507478798408543724241687014235987682112697153116552142075296632813672723572728374648646908941826623872755497126705073464884436987714940794390193618090554991039940312016378574486572257434162109881337089392338433770174648864207186597543003893244328688333184605618187812871946799881837406234961432796731822155411828309022849285506728767101595974476990530458846006113394683803853472377890149377103811543860267064342570848647723138109707799254347087008718548318923626928765658918021552414335051212086046796088849770755562460292931042492795455497397197576706099623206742448621506276990550093664911881249472070527032727735036943698231159080935993360865886498700297402970522589158311082344122142513659805255017523957537025739599439116871418191439377728947135066923218428591305775385206324747656074896229445184261732122402337648361506619288256581798933465748130415661177491517074532032142477883483450867514426502899715129676797949619305964885858566115639993328020484355757276920156742128199645355553837272489865428915018810360130523358804176367668422075659652444339169782027896972254838013926876602113007205671461960022463313178314254921468769452402979881340069805856537242857725004762964117214440710570805808861808858029117906672299659374142361496472201539366334267845311883948992656467316940585254686773810539728942675034506659725171525569211523108871542758841724708838770445598155303459790559935073234123069137583478896122590077543482766936694058992067260267378920161313837890607636635717539732347144345799131413833561690516487777536785210348126975530626916836470545334368822854431624632101242301126673421125934776044937843040443894288899571650216865607911953568578985721312829672034716768791061799429574282891492114545616358291248754686343863842493447029361941542581044585184157073782454712611865830586531903158137538121092061631472416801033138661468565944246041151309493569742678059599188594748942807365261669887185468026726829011438756431187660519575009774804388560118667034049949517173626412401983112712877741834623933450716590960164210485507509520334522917237146206040964200743327022106686061760945643930828745154448797697367243060998691541971024483925561046451552390995975115664730617636162447088283112969629116922586682856351478047501723683188628654868953659989712289026711723808265498513828848856734380104352203151002089378189811229785884708606472242627897537376677793059627893168097860671508423123170482107393267758230100980118384764805275789911169650618628795740047408866998160109476022838827108757586826407374007883530715613761083320718788641639595704578746628223345238132274477020221996966089450341165840047434623714127067767966763069606895516190194586170566314621192097911299496085335582634280521914775963378909425861500743507380376682665007443929639924944295111025192892440895292391312635636881127020414686698684007523932006533793756820223895922866394482114191575769667442080753794864837927113625998779748128363139128070056931487454936795408694694124590043675238052093386776883557655146953661746945218676860122512694001631044986595578798796644358006574197049507712755044066991596468146161946105091274107792769053955173617530335208359740984692196923123767570634901775019726586523641333449814628017721097310198541277142600260531839016584590967208322718685476899032905974764483163160442991000341357202473175946659098805788104251165193069432595123307486540099662702738772154034349911045958725373324018892544201728180508607267177225367928840759047233882173702041040373620144508000905670749900390690455750965694807442768493877758147543014947312880985972319235061174170913195781077629833218368396357456971922729435850928235292590319149287230213853586409849372602060091313522898849791509784917005342128305523940339308718565087046290102780686856522464384366246258328296023214226645033732256260625321935784063801353212602204953498275327257189651930046291102546348805818994933271455891367182436308234206828214778672643150836016197357242605206926085646685171688094792336535123399915054275020950732018042317032680133042169860025278362761776437093972399126823993176558658373525411495344787575543354131166535302552429126214384907528693767280284654219178768146581241245707064751818010600436377161513029056234344906043563007811843985116865196371136205173513186012300501250285008568704442050573406639146167661922983433273379822365531816823315792051097531728241999949252618195183071740766190969170512974276328956755413695613193143756437238797276454628762117645012916187474040853934652328401436316289237264145519226254241789423373336174862268581537137870141736828008021718134098620077498608108740953144700393387653677518174136921816369790853084480603109170533032235509780753011543645937513550214899452245047390027117308738416766633409117367951189034647557380076998127683829615133433218080532475134381263145632279646969143202640117121544121073471911381214386523252739622642541008524673461064202058056165448215368534262015390643146136458190501499172575975632415401737668584015223801860803368637041430135162841923292947202090022179211443494059646675253975325813309073027892191086762688537136351245486762816621573762190425853977490532919668153378948433651471271285061662271549132471573598259782216074859260401847469906541946878759887693280501246165399484069444700081936922494893149200091294004994207081939546171331008872507901111078104162167348424579741559168564190613661877280882057774155044962741483601047443121616808099957266590865566365260219293312498780150368837025090593228915078642689626624859062350698213294067491602872932185530803547031449721413167174430107999255620653940509473552390412788454387136041503027279868034470306169937417993807242619204068426800512623093298521434261092461721177538890275137692160959543553390685047274113496034180425856125913885720659446155448973537715406259553717296190606837034380141894571540932537087621814899578706152447548261100000985155200993551129046427637791531524314353035905853087179268361683034904957681641053795441770410115336959376735513362021316529984703813727136615953276657203572953921716568173224805948085514604310521413327614805263619455553504867678659262832502779465476245417531672437853491650800396665172427440029304397774245766762601476289621195373810049068820308299425865567054925517451195760798769781077513489204960923545582018237029532992282853720927048674395120526056977134303670532825098597032010421547353411087650744907565616667628157821154250901340547124197695355255213106982430541979209195276618745798848881976827966771676118277469035758801585802752622671103568248864646147762541342574041362684385217578788307381272324929034371558394075514758515428273812390497192721908657067507410496361770996136428591178585938629698428301307020959453325726818372811440466096117008678656385475667676624948440338455497797420524482180240398400762524942987748112399161653777572762313206959850798110766490406599821290902557836332554547619923776973928071709663034289626931164481378154600617633906684142219820407764821070535805633859205893064598934423122635338937357448709854678460269285891133775330142156734577827770002330671924036832975637121606541570869985101868796773703863200337418518716103542531563547685432268516072645745433841841071945164957238656985408092022719474423089966650009347924246902064196680200750145388921241758873616316470505725253492022448740729605843644413690976145235447861018078789429401131165892830091301029127931486371762024567706246831598732669206102339345618148369571042617799899535405991469685300313504574368042298793698906838445587476210458056058632746187083792317485927760656137671729058377218213076570544924693379301976847375349895629595901652487885789574101384363428310328876316747185634496992780920974988674498684458052997481200853437209655694366431614447463530961992801439251893600364427858481163623453094139328431615901682231121716339883374267244126348019949490140079106737795863647338658758302403967392448394805171171834266849830165247126606944600019345427126092055140583529160360936843176389241750470567718878895980189631266456718811242756182173154340746305817905091162599119135724782834374962582045778213576704665431800154537543211524498049930777146905968063225316938040682364737380640836926528339097468487435646331405915186502764758767446233244254555758711890822614468807341885547974645211548204834282267539688039711572767524970572101914105746730465722954475404874593982624921201591772966614240844996382043461737198322325341729056120168908340556069499167566397542657403947460246097245488437219192847985056418541718469347810421284999629078194843765788745042539637997518968511642462563485308466223245477605976898495520745974221184975752100202964082628898709286075074702562232189859598649160851057942001576199892304216101717834488153444019582772484685951859202642493853295331434091009674030857215100428189728897984013439983012592334377730500749656669751189713220607005931153905008302781770718925942414613418422471500408618386394391993520175848542445029852113145105437373240087291970944302870304421842275474246616654650832151334508608535013217927563963875951986345835214452496486277689000258787152160389186246084262744461293054995947846600471679737226523807125188313453335923724597393150838283443320400111105286649827289812674884612768723422629696702948687888195913001546479141799761263489894256246534184532820949899444870633190927133245104676938436642171182315551780561492889684089476165739093418453863800132069484498812143776034899441788330646036598914167180191474367803327975747867775165902959846846891735758397576273815621043574575526365380708727393154958786818675993842199823313794445126082400334123161745655539175734027324204949168416917263437984461380865054957188485841132702470378942524020170886308636607903133492495576806012976052041659871372522053480173638785794676114919960798923260800028341268580473825676100770457072368933715125364435251549245821530837230830576510874088169886261009597445757527972924472661142924743212830630533178792479740792657298444616299845780794396355444757067421567457203577256727774052977544463030021643360177986060391290784697159859285018339028213787761178687633136527214202197101309518999669877236215715817743176187495937310786979031952156318950009158271741420603897448497684645403523521311052231618027376541800944084048749272115334127328955045501512204004921955938566907948631236611113287580544867614334802703296828702723717184205529074887697377234112410804455192070285944189803342022276018615041146047735921093595580158531325320624053026945185611135520365782826153808157990336879593447041365408046494442918045023096253345131617731655285572024296309653103246504768414557914313762277345660236181215906288746717550298375459730154628726172751266633005448379764028248477760858626845033808369655389544594123240942680687630033863072416809571181697791659711940009688443423478850839555413160253281807801238441830876225629463148266608006650456015024959533671670566248669104961888517902940338019226234606502186780207150415073211620481582699325918905048563261541120090442691893915726543599532252756603006323490769678095521745339044547728203770555584877012861801932663583875571223847598276934549025866430656769569578075464555032330397467400028408418215052139469479397090355136304855784339601010631108454973751843226180638084887192841028548440107494896189331112121009816830843863550349812103694372956088098680110177709642661425914282694078782098685605653760148071081852145898866380686779724754937820560558720733130400130036807571598001474158537447271789415258017696748055575577259125934342354495378307107993060329724386934553170819694928379597622464927163859599110471910287583065601809282000533844170234025292508901984539534664129140005190467171699869079128167753796920304544338186534338330168475003775014517647371868410057103569676200773874264657440885246412926711992034304579650887234880073252217339081360791119027769478603444342370345198606402920790862085147277220323608418069916929168999871614632660933760034883873864407325868663360400919895775690407042755553549873525916841062055731492605793844773397123592892530661504731959293627436102316955049939531160636123565131213412693448085435656096868824233863810130066232088853246286642666611479604517040785880442430354241813134039853707726262643279914907172516304146360832915981672146454054902155115042230333908567834668590084850501987722638062324163379332775018597321315317070145781262330216530823733754061466183040988934354832287282128674258994742644344882854633974127401524211676387227655176136477967832415782738026816315986450924978157502730357951927475169182102173611533059686495462895942393535843669259429425306852949713278565032235885434989457265921570561668973814332023377089195210114930086991377032887175525615608880382904859132703885054470825828491241544838603921796483887936369543668985624511681503436110879175691855336331171998070686642665719088396673615162606352141858834842892481006388026950674583999425048884592326828078293538545046797168210472265106388606698364569492040502767499427996364409151173345698992209942797855189208925480384851547184125150516208527332505670498416519631445757713808470269741909368694413452168051484950849796859525365398647881295968038175639457044365590942790331043570570464034245067799328796750582225987369619168607339075158081412059309611710853997649694270083524144685143048390699358872391690497515652690361266138824267280142884943899439849494948852868949538634191811503123227498685053337064344827011637638176393449822270791500595488429982529688777538445076886507567807602744305059490702944205251603436112942358851109857876657226814707436284001778449002128430475405865147305463648069911635189982443325506857381442157415973482962941292439856693410969319618366210875580336250194028150539241860138226242642903600204565433355962047159529918356830783195677748566023667213773150699489722395842576797463780249774147987423809275813335526754300987990235346278741142810468444314538531174005949555190037560342267768656908147037886244114017775836527253239031181716461235104961634782770310161630295269544395249961998009275372351953760743044028025720168830668651889827901246062035769192623450248427651336243857854294075010553232684158774805517161811097249686342756392320543027407497267293551889814110065519497825885235168513642631047654645749743430098872531188819542255718590490479167120498343534817451383392970157161326870241495213762294426408581132646834499545309637400478354994237762817556103804739131735447801543323701417830198094431245676970427056906119508222332531246975330805338190368767870262034865798191343969185784682080631058156229960266972034628173660478707147090762408781644558266402430991354117074029787494517000922601004020530450687355621117124420758062565976473801621705444300719387931236412524273434738320382878210011058616934721850607149553143177719066462764158140661569412384595958730134372185062013132134523487782953147710806213772373435694296357076450554517732338739069219002825426222025116175916853530195024757919281941999870149949178397806086116866853068466446126799214607284587821312381431549872837289536768791542264709473228138448249099329376893820824794155990761730988762600006554977210647821544346900450258280098079283986775141099053829015804358810022823221453309791964356464029261538257779583443581900967608471696855726474620879654846537686142844525276761733405767574647615415771068531814592221634902647915918689709798731576315567297319339609512197646256778927911265745044212612656738289433402665202460568709421397705549527202943394717419172749763385744766337513179126920464984748222877017865346384844858385742959964582965104648675401250092674559262650817685361012446770586996321444095370722854760978642323050509550873349464903864998800788593806569046447498241734617100440661041506426719294465607479548193926378784661023599246219068326338699926834500121356887506955831953437873041162017418181954961780169302768535999090948552403626016400250379459555395318166971318144446346185878674467274436640072210675440189753050298509999724563535995793214034575430582609079519830947342685031392402250063027520792634913045865739409596835812318844195621780453807335673781044003926497318618292063511741756375448591846556671387860620011425055477432304346732387146765278829537193339901429290169773744547737628722665665945834652018292726705339634323204416096217772309822168212185277425509372526963434499992187181790915314185433242633242915812313349787841367419754356214719223400145784807312725547193881980885929040614132928868289073508992267814375883463849112855405082711689366275730110889522778596746349848431417442366935560993642688111180834343902954432250086492050214106421063051142917111886265996104750792682362021125568519769611942353733433184486895658095322012679635480405121259325199039072988676956222669065230604735886074129207293211447852918561623418721671568472306715637087909235309274637719605276384709967295220801810352373676829485921266588212228271864652853559584359485085882236979606414457013558954920428076797470748710629152321449921593662517503944824338712008918456970914932647858976697444037047466381688607681875038171726707893841188766106261231124824519161304391074089166800904828479841541443666166991193716572134937799965347742120616125285678978438175242836565053253452017806917348298781169984339084430895849706094456638957933670369750734578986483852309445410625390684727410322805050388908331230607728234375320497237158615000966533020428807838762408904775044575656600752227149565432343089488646657411015460180410769514353310247498995615552816393809138716157309974335881999133348176296914741815993816531872700793546266826946420694242193732509549033736682121632662826903259333864521790345027669888159990929858610508892188785627028213847744187421381928533318079023444117676125423052686920982004259305362843417019175736206789909824197295465845333615691369683060281685254910517457682802391588539820852638418399333455038720527719836685703355199587189648401629996539752817486069619257771451326075539555001487457049062131258093292252046261832052165976319555225223234470350141011224749939423421414504373564871683584717840070055546042757757486113458775084517825907193427522460808592242420827703194623499074578694014356795023625830211955899087383282668144702136603357838363031715956028876574976130915524568874209408900024648687130079412098630804883612033291758432095690832096992980890864048679285969638511991519697805227538293831188609043097773916321449780416127983831304459939452528922509020488167118258871981187358951787618103372169603186872923762937366652995024020870435865216051579351944619304272287754428007017600440790639575297856296169042845240497789463064265278091140346833239739808545058385722881313382831558717307279216240030094603432663511716796749949568675121497563175865658326917029019079577178299915587328187508398596194126404348806362885283344499801460822382610135820786339090191297557515370581457892247552144432677373165892015016968504271628577559337865266929306226086109256880286358919970573692775644782599320933931202373140755979400954629467697058631300229426570060953740484353356938025803208634642038629257510193286965777814862936820917993147962193157350645376408313904887620195310947154653327850892313038454478472868450074346183757256789112118577030740182816240948022629347535950091710864320986186107826682160083776839679838882812681391597035089643694906710451704955070854419550417251148833254173855818833956864677071482721934884014610836858984878405632568745761128797555158909923669253556133081937089792878353953921577950348573787484840532972923083960767065525021488316047923755334659408146151875298788124102950989473588227953823306002325638147400253782318059721095261409971719375972726071933783139263871595707800216027121003784794325797218436970513384564675472398221877816905209748932197054157202971184512186562370933712377493506943214753526939716893886568090455652378848733191852771120805652368697230119811028375200418794375306271488930396701327567322973532086593068785105536928556904777627734431208402521699717829549712348940871269110586607588169953026968452013997712008570968548863997247458532136165955094862337771551583631381802006941914942039504334704643105007310026664910587660473816272419416747622424621002495832806120230184306988080378602646793959173952196440515023073669461156005520714822122711248725404256099895980001442631178392790973174811948979394601436133446267443907582721499885318959432552929933853805017591917206077268005979825498269081072575362380660697098416793749115083303181844625322803525840247388755836016622860874014252085837261750389269773932300903769168981420950872876087038239114754733654041569246093926489938852624296274892551489055242230479462480778879309332403742928454530496278050353781132267409286071508226574733211910495701228279621003520566101244224157185136678098724989025894422664646248810678057909700384125365875712208065170831006051532734332191623403018769188940283588730309517242472295216985147828917023762521105362801294800767971914687587088024055524448781979340503668933498899348899987343826814477486024425992409123942225011402845836257658041399784484114531604600475787400070600036690333013518581550497163754240689367470467793393464790203473776242827770615672999290018328191050987131228943208324090758718656924286923511551777920746480480698830157950209575071549785954717561116134859605457883057852209527753696790656652655007611992458602013979251074888004692208477821365980092935741220477988718456905461543546859971765817472981464136454887064465928588725519754905416285671617210819808292526037943179857468625327644556738430178166283815902068193791767113237929366988482403018680761186646701891706027729504192737610269961199896170788420809609540172633995362607263091923651750273807245838381772991325584608422797875638483433352834740012220366316482883149180038964669834134197375575698926269147119685017844541567204618150240927491133226798243132127267733009485252016681007683925717676611705192765715108638187220932080304062094334863143984907476698297968285491497684846503257796617318032294340247198617108181674545885347639558497144083520018207867829285477202510907603607284308598785050240434581562764199468278365886293768790423807393073332632278608503087639577552823486493639415487012434987310031524150252744280854990897855189866461262537650882077286853421463505084966884901220162365106199627666311813897921076913953986558398825269744062568153368350057706434024023677494587199630983104941631834388564253794478928279730825183287471051522823693389289660870104154650208834073336446381482003598803634884036107098699921889310019261223126929690841555612144031124581675341340161711172019125515218391118983876814109540985038432793980834903505322161605936852320267538825098929960599918787214348961299756393408537550531562149420606458723527369819633724700918900087673455228124208669493800781249868562708753208596804399994230157055716271401716495786153009919429380860103090885928438962529267937312651912610828661501380458442713099615117442656727169289666209547943139501611683549929417896262751435676085084663040726190436072909115217850677048474544194990866017495453823144035740455713612554784386151578811874537135704437962841848740901307775418245846450355002232643814842483932558634853074463419950343434652766748842171355168725919877325513623956928108327754165219822129120036147858109334962585935704558619329786256410752731370016637562765548607576686153576916974601594638772207035346560137133546425951743224193384226548697401655830485895426071227624992377515041650626850643641787890659714329991439228587905030835295623656010686389027998459959659431060274512206569093108374849855696572407264977647461648200312607781559123945441778150001111295575150767882181130362310954243001619924569013174352022579288583881955639754847993607415865578251187658247749488481510167703869899008437220319620457205336560958534406492718907696943976838670355287997370639525866544201641774807323394850278244593860805798602634315956660230301547621732155451017056605569433373256716512302823796143217513373801414171239439568547212422897431200898647589996668871588642377159184874359184639159298052022691035188119800373290965317415580928928855858306153149525893163757760888686014638384341890251057498557699232010248578497155055641246135665005183783928586862366037004415293525676801527663980102400228868685373144613187474081957605236514668713695633963296481019325335859471678405359002571731249818007643344633927241542280917928240764993964794161469555021959313911990892065485059765814108112134007628844205016029266386406137931554371785911641068588049843426067847833554628706278558614236788435369688910149834608548011375120385329594743253891739152187421581106677210595725100280204336741876219224206003344480582589448038923249479016787305108233375106950191941922895265700347973506054142743694225664903228403197819626458252610653097538163294181288618004147046933066827248142620943213169115483850646977594150298660311061785341414290227676515135916374396185605129878507594556513443644563673418899988475527388164475876175130864140516479669855372128205725608953680796839682059344896558165092406979692050494902005750873011214159274440140361495885874387642378033348216703579821131629971724958398929579617682834390777378967480357983181293782380253008258706993509465659426020703328316310169392926977142560023302990618306557882464223600868461462580211326747068106734425825422187775014616647376515408359614538618945056044187293761635943377622788469382495794852435263983614752014519203416668843454274337066880498981061801464319851049464525796250612491420870546845979226314960270235881825884980278875883030850852840181494409080810477715401353516094837480621945811080800719612207245694087472323136821897155021459884214789638941926502114691015607490442286938558631397876415913565516565626687406424309542426527231304555350484213560311862954868406877402974058682654597253034014257409353376993912624104724156523905430164171764943647462634577652660866225283568887810993527581486084852454974220267528856714305443796229372176312848319277731703524851167865451554467661185068610274005021028156886740997679643827640532501468366279956679767924276365041126613366627345439656112226706256182212849968361042106648704395442589004897377272978789385221308700183675898834044544588889432281818151413400473392365035691582326373227679822795426723100346848476808690743709223911933752541924089425275025478389079645449448142400627073703051298723599713226552862335315870244466449159504209175048444024914915839860928203370613017706022126991171768968453986073541716216679552217946805345975730559987391059919749542104213600402035017995712146728628029496476606747944355253213981021009750986204028381031873674428911991926262563127887646139232192403220921836434990628881863397200963384185782605857759724216027686675639743809367120233878288405208520201921278336457279904339011996603885927139472843085149639354214120500351032816298945365005658278977013330009642799444474302644379900812268952402092314732621197941038115113386378517933064599850977676317722156056724009717077613446193413007704913641892357320646037408924305553841288752625397021060502345942088411206892291587926777772222346193251281152836494506817554376113921377898003305090254152831677335942591217497542513977567863758454285780194105674672638983037846794402536927640910955588293888792071534741555631494380035796309032444030536014241836450715104781945589246487227769560070443477203898729258283939131976706190540717215927677938140572803001057022469887530552412350326798609192261177167185444212862192348851167286894834383321245910414380927969745247636447766592019853171588816566189235842503994236975741294088609711351553335640707270147215887599392078881527554574075805832490401412994904576579627372590956020176029048380026537642929466952881026941517356517409066112928435907951580403959931339318533304312740606057950334369024850523896933700883159908266588732616340087184591108306636513698002898026234467423476784253320700649171873526209569536791196584300196982908408007928725540750341871317814945136122996548412960030840534567935721671875533985069752918926144246767090249202454600104814537330922456180393011662160882927455486022756624414353459615639619561968095399249014581161934271511270761984880330868165235884950876120998227917529569342236710719346582522648496540399293051996846233872676269336115364237981393330695079177259377177834599173169745212872793999418825454529891654594623140935234301982430237859492209098316809665318243417915132328669448038156165153663359861685137436552667184449922750819969419393608161380272148150731597456549178337929776115705106502515469301121330437312519602600060879496145027921887138043530518834691408548073112082269043035399259836250257328262115423127417988049147263991598753095708224270422106234626317374117318017405013079697903548105835903937997451518799681981293296485537334541629322922790995839554437554140439586526818351751178055323603978026020128565512672716350016670933160713127267023270895529411434244649981196110248572628142263549796658499764235742598518840961648355509821078898744465401695167811935937602532695824043904703526150850252431362280006968631323662580879492795212819264750987053760260132227961027892389664202644456300434901804496481153467998331682553187540151753338318635847592826885695074969772684926028915898176959154837072495894121035621870310444807843515008919163665865102343228455632852480808019660336294926105698621865707934101085749815144323148119187260902004937597611660626074774604325981196614949485548504803503705302727026588606355297078565821346631455701623621575609380355166532016944569582529765810611855387053186396823581787922873765691307334069256367201558689823621000118510561828891692135020154870567374686518736371188276025166957657450617101289853796221093820607550004734480250297687701186514634162856648215895243858291576209499912528106097322398621342612375213538102634001054172261509127839967074659230506272174017639558899605547704697287413225159233061594600984386992583673059940914982185299707419418477501954182613612095246795553104557817352466046677834733360304553903415384736000899339523310235253391357079656984898992811455129245966612131645584568929273299029171675286836579346836847463162564050400651616017502238469970078155058210244720185645891437286743182023960734042233720065454946122243623647506261331083003012652931507273147975930377506378517615990211314467006715807296721321492235321893617874819955995638346839919686873788579082820220651225824642070082212273467759010791023536842998793270702232036544133295816533986265132471401173783313916696815349617959037568456934198042992492855419075562023054261767116375521604092639629514864812610873831705192646877546921329579180924673340672598261431029448536521809570308554390705052029268774283677134594112754819991580366442249611242075543980567424144103880947230777490003612498092781738315738093598415906842405843620830329748724656926083661503667627269121295898500911882074493699609177789866080399571671304936402887930122060227055520158233623789171771895073438965742735408897019664813389856325991389330708944499083111793844584026061517491248437606753165576055905973141102655346612798490673260610487795254602169329130639668930356320226887676348058049087107593340492642629962250105095973383066164465105694633041583363165485035678489896322520227511628267945774106178322999900997796681693509080554007165920833848809366409505116689014273682243301001729343355002565962006075585344748313248274215860098599059793666215713146238318651088501615156887710101465316557844202514894945302065074037232743348277620841364037592570370768314535939926034223026763338465668549561827356983716914325778454156348535350698168932169465968454754473277845965028841371347641783377195310335818500188208317660462842807720643670129295895905581331739972997724803474029361751503574892034637024926327412254701112765678530444138244033429206308183470962419472239990940136028084779796272841007527903212869864417098419685330241495176786059707933513618022336451695813394750153154821814754457353840050237271601515898708943532594864383989980238956306518774525248855041525432951815927086656366252197930484683098061729948479398375332632198456219699303621415778223357091760081592143515831203703007635861141095487180943634802207850974311848061951351489176368100648157072831738085558787873510448421632748313078350160693074524042799890592097471023090458711890637399507759794746129518721629772915340873993443350534927676455474382374799966105757034714187901765818135565291737600814868591335965219898699067233896520140775845773443400486959557060640389418864903554944799896498247673839081346088608690634169916450266214247124001593003637414178043298415528627647295784008718975033806455335786274813990774271735491930447360865860203233183636195061787978659960799868975858930139515745224323943665444199857090619780025805131171910513325406167418684803125996987430017983242914021615020717285926345353599304876403754085848204022598135632282586380346895781692438810133262782943599012528217288603223751986403948924438069712758142755494306834364729274143465532286152071439408925958488461445128078548983645008228320915642456400988565270509273507173853993310625500138137122200442528470660504766232589989810514851501382138869991388789475593914651064887005383481377727097902868309226978451934409257971669361189393378611216507583091946603344795882639407385916824749531335248005818944864990060242559261451711774553098879585163132039891097676040217410789132420064328439639997923803212676218523371059042801409224860235127965235075245664061275666449013643526233022098090139828983192779380102197955707041128363847320824682067404957945202821300331665792846471406359444353565639503104029800116957482973191336031263593810134630451026634897412665923689459784139044663860313819794033069587959374592513331913998639581549347803436241259771951918634964069391911171398863898195679044121162025501581665090266258665891141738304002479956871379762405590253541871784250479288429378528654201828445635493688113306704270783897162944970849754304625721302295120794432117970926658433733548986465153678115973327161108331314784863526894600264302590689357278665862448592494227132313932008742582534439396274990857471610080554300555894728402755353637394022820984587753299324111635598268200601483703684782476393874754206484918922731590121248091019940379700080564788708691637263860943772169044349158510581491066089267109638866557530562899011013240297896710957281438451379996536798519846150554069753738240519341649857891500769836996324697117366311120806778613203323761453841679713207330956347561414840099407795918354026245424852015761951734964090625191809189298775253783370987327520965661488522748272948480716556311400448843361177361185631046040924412031170006917623183960396814363297854544381881939964568832203101297433383365643654417782645915036713714999848127959778053274392737779354236767765211396929027431990234350441336786856970771717422045318067819339399384918441348862840586301967027938307225832848792952845377864135269973531989358875476846085050606977944817837417084852418828565590268198135302968087227715156941400500877291841755200763052515618804036441872579584553540415835723856485918852547806381781131588707834295038296742055806122654824825568921138505960482893322851679570425175821246436148609598447909488447597690296015355904048013442784418682304907643735963216440097139148401600053886128362393129784604367051323963483450998276299299859381139555349679117186911521048525276986206301276134047482472590895926663524124864200613532011690405961186433455150573055835640174701154771067725296623429173919597303128627754959415450686143752205546058175724962178964626015574257392261655656686922184633940293791394939414169438931288170179082031656026328257325103170686999607034397502534674223779032452100609460367114257400205164283811662506913988595487010434340915741799404004176910766975617373788643662828066593759122543753754188597471587570813966236227656200590901858577683214518163605738230297911795183954832761526861390386491053948932442372411993281744338664320116705888648767353700839792278160781506736525149277988644886837973900171161935184283917574214632251693582099137235551624763626758249142786891040803788445134225732593941055709108620503747278615234160590458238259563332185081901537015380071612063568305934015858860792161385738246572580253320607400467265532457524175436590697586220310324124600688073566900540130913588946807301987124472519896687221576695291977193345118096855393061549557470839267644112228383086043822111836524249946798885103941445023936523567388379293540795983266630146659196901475201648661366358852284089109858981215371563229629640305276616821221383623557183398219044364041732351414076921936975623089942010953232086649981474747232228351714934656683397891489581717147708960974057238927040645644967856358676317170162196002233651966429347598350523516154070337404093637480418666671884528553526429263701718882074698286961726435520190377790676746297761661699904020797754671843541474549622109298578929649243295208180457105078909611309462841950313717677125854099372153431316231055131829190341455371893753978636034072058832187629429399826782047376213525123717776468410386253762650699445045499477353152105038168379662095212811427516366897207703994091023403177033511191208299981729325978028372213912355834464829078541631636336471961348643286684287990696273564617684857327176077459865273382950588452376451917219480675333022304247449028378125485231133444119524879666052653159262275708800211983323987832870331421308929220604699648626832822934294976924410675248041409527212148433232492882546959830736662005129626195577454085005462430736397641060208319955669444981478479452550444157987177864281573331293334962369074753713393496214655785471654468819528288254722913126045062634342797850586380986807692467942523975746133865186833327831764967798828961654445446679193259584459553372750025259180869035459869160201883853741740975681967306229740267016960724817730697664765640465939020914626807688206488872119966824822209596870089668165033374572249805204522162206276043648735149082324402036887966712309690064610565606132125882071058051406559708843357605056203542670387628496331996612778743808284902710526138798356110236414577254509226372512517754857249597165801891821688100149436521771423034573984822374850898464366792314795041955598583982909014141006817931520410014780683635803686774444810530640375581902699207641350185119181091671298411887994520029501854148883296898238777793842045194499809743237398227548183925753382223622973302752037523492074957935262691151184709267865288952339420456629306457496765870654948861320079108866243008246892854305696794834315251530228712979692948912973773155139088410275599098169944470367187240464132427125940181738158833722432307840549007673019251374326692421133948138447670355016203841240972253925993032485451800726811237204782033873820801025299340521833756341203531884508675932309372526207324886153127666888368636249218814091636822695928311971129341214042806269758977170034122836159249076306119982220837366561885062092825335281728978643288379594549797573367032651710348996105860795906330357739550449383680494196409560650946952819962535832804655593409379739146632025196217556389363420395298176289879998255027923108004993952718548208061575953074871373740880836918324062675112983380103689274880012166067660573529357858355409982188317500577048714496563178918271033005222206549450627385605318420042407607721107782289395704785963286817830719951902666703513627132623425808014691563588131651569171274669333082375330759933030521094381185192370019931254638885904163707405189224077799648478568480724786604103271603641996793595564803202988844299153103842653660919474262960121339342557738836989196136457323269983412785439121829434093238636285974707506610348137975698876971695949185977076788692228134382209726379541985582771878939673323199185875294398718890627869584808637013359222495638819697656506609871902446607158734512958706310811076617931669745249850212623481273447402340661788405409976518223557861289146350825830107132913255366474382083833681691813146857417525525483320925500953819600526613677662515124181475708148416271017236145467294003603938591384888333173314592166192978988169901154969711653558013114682629071002065585874160414957931343335499616585175898285304145521027352271162531539640896701917890436015199793041109442275595348151950783049454541615132099696093592678042575744492017921960904863502762821433383598340236798764726485736600802854323216490020227874640642262768726880785018901930512776932542792028088886712308385537381106866992108204373545569084733586739815389740623191279684269745254335140641657281542857748344917402684430903725923738323412173931018487350154256713062178096532216953302341248817835769079125602920905356786431681241544802713919927500851625684285740339550667329763894309643027444468781841065731322816592135558202587012119905981960982349950292666501292070332529680081021292556244379103176316944585977693430546652713648994974659057158920929320026367926354081465580015533574265927624402731575016268589594649216222862754634901933934306413067592609016561892249093645870994835426869666662580386053549618797655711614375863421705995160466576218903744242598863156536219162618253048536026125576831426261645154755410091908524725765666195649673075713310616457238211591442758389301151217457618628707049143932805460294709349269959930017818764017868186484575957154592645442492213314332594436494390924442585318785688942432851967021915392524375389762695738293956397166790737254717668195248410530431287384494856481310855961721188149769209455188100458502096646437215005302382955040197311237691676331901229682023317504809310362218563979527730598222382649855424639576518819894676086453219055113612906197999260734239121427428352559134589630462500688457466970589732210748284874847163841814388553734905961989082230178456564114108524878392994528833082237651346402708124975594281759515472537772772831969823661198943737120882191760893831381717164648654754591385367974329485789399297842476550183971485876968462405414936186339349774160283745964758607064106373148274059580461553645493622180109158584686351296846043279798708706887693479612989149527942945834066451700995971743353319787707486839021166963746474689902124981154744866959739202971089358065360067812053089085507694200252773760857954272359111127795163039603979256689455577361206402914290771652972029900126614028126942431401752708073035049732637871102048615266082823876515025776882906755324148698091942439892460502117546148168721316948100317258820170102517798094525141896744539845520767174223419931418737740652775360863071003184844162857939492201836196364599081243878897457871586901159430005216892220546174389212527303347566922217052650495298380727079335533992725663188163888133293821412975835909937117478402741071818467183539636141533828141505699787366068701260453320659237433903828435135778781731089325611705241321160269782179263192801389258115492277514384753427194755361901264188512854420278261034583446124948385111016250077584114287112914918292428979066596549810796201646640849021203730930116668550664414338293902764536501832340054073424114628091404751778258347941965906212013300478774724189934169517520153848772847102088627632959867250112196691394363676185730419317442212496548964469157804244647712137942007743902178773771877021156966595787365258292229457511145445470455710821271855983724424703147550454827899984170102203748206956036628661368862074005175778016517508168044098048790167816611026282454219981514422267636729910826044265279679556449778852617880728316667039190925193145747736345039299167312801547795600020491860590474157521165244207213412132470525820237123051321342982138005255696499775868283397028397163627715429469479692995992620263922730483122567119613663303948208390045112948842346742597302190958481103695816594520341042595101017023353235895758645380967400683172465806114875518915159042345374238269048248142087727381930720321441515742648301231598943165776645143833637347399205482231468648435402036982010002688576039801788006490970023381716915495475412370621275396632972642587947014031434910971206687109697025558443617293707537100485714477709388600375821586255059279013148505315917582758456252291574909315921888055461160468181774145857215362930002550114249636925472720298943966416609411924355507358412330730303232380140739878494880785769576551024130085400637287908312144556945882696453494590519172576033160448614598275320743665408875827504513949021844403223068653470007803928091719768717351159199961880345367419920657818617380012518455484111839593262218326629117464534679343967151740184258115456148528690126586163740357995593972886813345091166588924255496624949463828195272736186834641419633974915955772307912105937995454776436578740238607680444440688687692886918336730040264105759556951433720157316659791887750562786046927117071016132901264832772946833927729395042148010929062489944146489356300246014969108350626604340730372124988228146431725277745721604139782291307433944326816314517510185328963040877704237737032343353311891133155172258787991929355896115025458019569144931515415401034892871008067700032897522801961367090177892963791538430732236742574654108579556026536363189681988424420786748700514321245139608993635292527163344881057699933766435402777720478605207616110452926952021702839748171810791005377966471575860997071685586811038117923927982434053354354424616213791816646320872710312073896958255199034353111027548699925186070098626162975652062228160118664425949780070068474261645550789091070466028316814867340173367789002474085388703255710107214666211521830256163983740477853431577610737085878166519528984830433978510194473770868263184889675887926710468519238746241840479871136746400908515742608705414670774210516640294645097646113040085354368796105772015419784062104586302465708288691673788298791980551280788785744947583396764156099279824742219572599975907885269830139114150441685116901133775350292829234619736481173509043574265505494394650285468893058028192336248824140662452525000818101709992520247949281073974463295664225837607144564214665258617182410060426315699058596944801189637291694366833476296639289767794674074224565612079905223037633214049971582770715583927333611674800215743925210434181626141423121539719230342517348315593597961514348961771455990417933266530008322308814513699980393965909146587280335634094742042762447107072754233618854459584247455637050100037735239996673634361694775595923293078467042372009465117914259159170394808109193802787770446093457827896852975184319008553814208320073159532159121842282256594899405260818563200755104716190498490309952300290219114151027299269680448977195900875405491399803650858092975741103705451827060767071837494834402536189733927796935995034764493516097931819980025669335338442989284471359956514657094466529954461320349539065578903350487182035243654367257568876635958835906941700476874728850678350974836686842771814567606931546095821616857502500182437516014327707869107101658360401980927295051357441344119971885114316655784953113985754307336023546058293983675610573804815067783832109253094257370380525631271032315493930114049858595182550085263526014285806937052545194638060355779140595668544732081915401219782695870933410924716309451941040888815723666514974984196802140582476665559056744700706065107472692502971764375016239099927382292792858942849320892681188417411456005656169147446733637185816929090611537275326252840502666108826160072646885383967148356322901098612536791196063010606234191326094428415069886674860277869866657159811776414061704369637068539327104052422730553938889407932259705272844266190295641987616515401703503789140341586925001175878637567335586767983210025726921034034054242150658539242103573874390501267394955451806283528354800288093143406832721879492357590666068524676854809683000342421196114344973084775809418474296397518154869034087365954208341903860553272609572005188873827350004112774613579470937870120999044289507707396448033792274391197706495041093195885673646160651553968750857544022591071746610165295222937759608784380722811370263048543540766380816078200168595338672611018345021451766701445151870324950150759221495436997060762867018285089881565177829158130500181748485942512355294859900601903111732444913618702092457854064573923191535782779219083730510913667815831817153662737494857834072556856795584253943769396513742787117929253065630512556977623109066502329355543985909709880463385590691950710240401544342692947606496899832700597666923084943258177670015747115942762593430958542009400655045272362549511754173460884670894289969011938500851967199137314633338783997599974676810538369918699771219308165700191416607565701844278169771487843099842676898346142979397335121817965044024193444610496188105015788028961941633602556559039390463774763505052139107767005964205014881996421845029465663418259033789254253139716008433774241017869336689675024258071044856127239149997092100112458760132836039068464836525802039611805981221491024228642127298589641272198211707544585464349173109320898532616604847982406022220631999950281201711779341997454536044511825425593552849551884351418055970819629136332807524040493370153701888069338455616609097305131941590089165330375802044755304508674473649114906557964373653045477305132479132008844780196348715907496201592790611671877205039973083244043349314026518888772709695784171433696084157899869881250293443516851043981369842710501581812255157309651193938135721575778370322808879547515101528359991971632230907191518847167713439782969193777913069343554384258788920669919575950105192220857442376132946212314592230115485521396247551813380874881909919885366598584755127562445690202873946151478264705303747236916207417812183621092697045675039068107713921467424152365312495105877235139809782803277093835112083139915566859039449247230385137402409015231920992764003728698216265683628201974581466960131412545442458627228308927712210141628200371776637429746364319006833767438492452056978262077858701779685228531557037145603122774146303666303922419145941855112329000495569858570121775834077542133435215272697806556396839628528477000939777095934488004653488179303969976861531270559081608071038868385153126689723688256366503947627754746581466259542890921315005271584440692704941499732570678684494082171481156127816141326677618428462342666144251292833294428503582375322025447281174958719650175504672464553607568900775763211663780779119568219289206178183326584888660570210261729992620836352329432397841727050259967393152577497036751737270396711713398425772969883703811994962355294642480421759783256378942908333343812971816193150693330153930112673359383248419544375399598455762453114435805400000211801296659263052849575202847053109035516250901780255172208870872951448309491339328405903794768511220967739586165267357976979458105414842219774584910808493894757003275707390232147474674311609592839406589632777609534244953771127618975937103603272510185814484820021068919554765498824290463319785041752002458090790241138046591013806615352888355054496995184630909157284144394155601408075237287744349550795160886394163333805170893818899954271504438206199219458628618966093556481114322034195923051177959389150883138033259450232270072497357033547200088205454834014103180056944098195580676851497369836325722042214420102526347958703924604082779849367807856894396955685404018834954683339885850553614613235908623037238805317816462275650576228530550054994896351500416938914160591643621148370226430389869566138855954015558921172091601987750749228231435311593412637415835562045643899669318212715944668689177748301137311130191804441301259238273678498167861373483217935842322337544506020565232739622305626761259742788196625511461276242075973478697443531073449549191295588895326993027438161870515045496385883339622862858855358577497953439618449564264532577445163440074320123535994171909479346711364676749241448840075560149107684996462483948047058012093374173184644112411513664788030120713808725929076929656894834552976567534675047481643104755053896690335911182683856056963536479231756057370574506141692618116428679900466088295582285983947644821763274119114016789305693346026659068447578557580868111022430611665166617670633987959799805267395873679357409289145849181100675752637099715493242431217273531763252372619703867786307910349819958263615262760349126615388086101278219124109068890350479585235356874575785664325445926551420240134224967025499044001221859509555126802954649995100934224124975757284765512641147998956203520067589099023894841824264090786552636044137770663156176030427160081285281145606454883089163295075062999974467785738485331609585203041088617496114248369490785730649885354818019684630835777232345483501083581428640874552918477993049099845516277435936132483388906384919613565853451367090529651437190527677426314925951913683995674872599661585636171030693264676170836449870038553135583792788807797957529123638380470104932782594644481952829169858445457907456578028834578595350364208764259734836790538745023292659019760340584491147332092228452972021352965389490314796624610460663546933075577780140107096579644864803411259482851701764565314714348847041004404224017410870741347762659589303099903313599737907258998452546746391257643932280345555668771829185603209073397631535467665186810801996576313575764730794391018749496020911937660430905192053642081205095864636039990497540340856602527521800048655147635738382403616107611166599947775053042746160645617708218952744427139188345408368825430235988094042910445080823022419436887195239500752731432954537921625283502697152981686892019287313231109572823281055211481087693323194996117001892448477412845687250782448875446198222536942719676730748153198739618268867274044258956157889444405721236359608606583061562297088053106962776301908227734347566477889126086040436959428553076419694010207570324774975902955449839722232819097417083113846497242150836612981488160554031366110337309668615803989292878284356296899272465411152002295455522706533345103398648662277809419217933913680015695036029881787489549610793861503681419309082861188303470579291795620714983506201522794310263573580636799499811394957435748411721943465341426033029886029909723293003646134651624730917307200595595235025680598693125085591261128497222412396913648270427138455921064706263118144802924609028319958168303249024572829306025149052236656928444590018862509471225457674094709919160964121637771115762520238085229372663848324234676593851250458522934691809315196643265149761996850883377366511341081730175972939745089965386893396536660966628702519378761814391044537782979508835087652462088431320439901656595024568324197788744160839562939992892073233407622288871841616955839237588790276385396916579834144616539183366463565623360320902181210546959605558340448165042895952949588053746393010182960913245940032255092546704548333100305306473378252075010480820203993885355857839642220959254382826814747897378279371633621287346279261253487924757010143723170609193607337014220435305854609043619345150877814134972662375184672574528406368855957436778435044373300959261063086695497063134408343254414548581803357296872240154081427613227367952456412592442891840551229461970726829378772445160700057826415029335885431058536789317266250250579136662144744072465666272833163175677861829624436461749122810287228646117635373532536706545111329721323391802874779477150711970316940484713517491815827444112887888870335150554339557835525451924282988725319112504347740875276521537849536963510336989820134076034981846220055378097621466400792290845435188554375170183857849782855482038046154512602993848650940417268140638462252763959002335487232919067595863547691754080837274865099861604539488988503576478038458802979199415958523818383218724587018488736432670864881873109678146539696559615319695219263635664989540905702900010339958847616597785303048930914232546833867267971398358327833092204625777786816009361038251791905446480377572114297260547647374178939281129634125264677029620946587232654100556196354943370068826361446372604135597393668822051749039764007482075517563959344318301575577545616497056464799048705084095441195563557275354529821134919228610601828134051984347581554564038162645932414129862878415672872123242373409629343540338858998266863277419897800413967660545957658595933453202179555931331457045319008662760838243022471445204924974992275376017513722093368379282294066716456837661352816840888536672878835165885758877028753132800137338070308712769541754955524332028432130591647914757604787391039716434207235531164679496551046622495326911096438293059161621295144284643976542330725994141879235651020703864719222520029074735892905718963744635281062163029882298079192362720835044932427262150370573815617001026053563269297727683598823721429343400311423898728652096752133446734951622411482316879597479551309009785343694768642081398001669307460260520389293359567904789887207085254664395232527731298816112369404539813799620149684304299188631667764321788613567166682941872479205008723806624264237166928627108015916845812584356134430824231851955329111870697299429331360286829685709358194303421299616852931319324857578536757353362688335930913570861104060556274644673748688205321914937223269304862163757203896769207620332700669108273090711938972507379848162256067515374040141831700515022659680754583418178021511331870751321536728012591048956715615302712551039783503401614139225368692483552905371198878350878999401244302297411937270721679617151463891282179898806681479046396652835065514130521952004860202931101232448480929696812961690658027713719047620871319205437151906555846720468311454191053159588586194303946288755590848952026099500464579617425386735161493866369220404549541879685978340104887407001229507668032447441078113816934709146937839990926096634759425431993191166675137944420374763506240268762139716967441579536786540074286788092041389928287910055884128101405478191136228617111932680580016357728123935219872238963258450120053457263571186497828908297197418553157495821572612053334109046722646042112524654351190871011801213174237813409812059644277009728334315817304498694578869787944004917744385053313965695025649497504513253762041558792120038613541028079019747062787691482212004823765467013906478733409865684594752814600427384707427562369320133200613627822022749788228425483635124453767680961067672786127607896948715221651470542543075222628276685181106009452713053403727676430314587706879516274343560684437501640336822837407268132907434329229215818761160950996465269584837125212875716859078273278274741147648760378812755078298693147423853506651062984257451908931728046288463004985362424749590834429613495089180046696210457321278257104982337489128708603371601037593482863459315829477649575522932706821822653456105123536731906899242836721564701993334447764508156548032987350259767068719078000411376592008137816665587628131359366574790615012168319276888264138495054691290931461203463844024889053333977044250945422248434236125108524996914925073587502749782396426568375567634893016061757515311390678919964931474688510785997259770560054308233651556047930810930742657731645164962246311155793863726537669205642399237858596240068396693519295404976280863265239148312164551074525191588086971617952176626760767519556499197498784662215464183618601067614030570431520314865326445030057765343407297515957772127398007364993730851612853349232165893910053533382460534204036178745279213909034213089524992908605405726722854394174217617055253128371473244196059034000005379986883462013784283134295047572101988218851013359107564542670927040249281349145543861878582568878935526602104626395281383753130148479038668330720681326462937117821530898715489735830209504501377491538430162989704446209836428003144409079444087140178513009596879320592100977047839776060106676708388901684198125518890788991460840849880277423516055246583251998648912224401404154482524109306116316959405718230894450879174373957000068584078516282475884855786100831902299944951147165744945465834750162735175859492734329153672121407524000712166035377237621790092601721126609759876288940532488780728264365411023328401471147743610329731847814938676420651595896675323386836781510190593398966119286914194174496655937622807439127834902366438783947146516422427317079691473214983370205389948187100881047175919050199252503077436250347737022454924803481284095058477299099612651248558435939654562628847972749544990298281439377361955359583259254449390572490051060885845709204792253534511877961580402940400798006987711779057709935893455634496928509230966538657219179980655387364177990516474858489910464759111353344424667731620732425569665924532929368234907331347644731121243695622453649297649983889081394263745143274686535153570014913599347520054316896546686499828497146483643307572164524699626361085801629992473856745578212673570464496797622231687791196763276485699825647297919327336182662663469310723542221925279451154014774906087722939215802391351634733944917092485616799697249873382701213353461266783161074899627382286298255145290207686032949378872412644544710834078206911429256670168811409535977229846199852094907879250664732176811426641807891387249384590513846940047922085460898624732686068554943086482878303544090339664718812045513137678840737778542805030654729059481646304349259638962199461586222873391815657114816557717261647913091462720115605144043616674922121931034387721534329222800931007958268012447496933049265323878790882605213467311965925517847057994896130936055489667713721644311574842594001424877751275213171992257025601395204331418996832623543378572433734101127487375812530095752783005103302143346195690459144672346264151972893281629576684155448760375867444995238517318640486622495496700305858670296374780679854805494136134769528610314715261584406616284203559768887421547937394849552900858367844208833540259542246695243787528731636253886860273120441645209595295223530432688480393639168790352867951978744442086778109712372708888824413133970579663081291084972174526651572919261570215450762357653106506699672782322259957898668800323554144868290021095203153548954024203398696940165285769894196209311153746017405507308579699027402312574753437846796239071214433313906871381441599116136007309402066162949228444901855642481624918926466683564003988424268847449726190229256280048563712012202348323581873190385595230277895435964241161784988846331975731563909750301888559284780163057011813071379251287074978311786325770525782641710174080520577618273948134196337796451415367378809472734817549744453486813737270043599310398180787760640525588365667535366093351732667193417310071057884353461951819424857234962572072822659794747246681305399536462584479797220263359553884251705077154056524785190610271786422649449494986964684194077332464599059970224300309121147062561081532866919899918964064188213793567255810681206427100177064763096097964196837066927534160750366709423430753083417945926397702449602595346220185182084836059319617323479378690721967640966177225024855969692273780389476320109187867115001301345046792367635451657156966807759199288610185326556957033283471743547392006688570214187161486281840328484035643573599415127419036181093394993611149150043782250545910551655641841304304241155515767244658649041194748274215141968347172941507299992319602067271856117685816301988470026760658757644021471866860086510294644868936758859075618892820816199643247497499475778236298136297670563441537041186506303922611220148002736385487763619339730064185329688055485045212544294848000498608302111706642765022604046045417170993826351378543858690186513541157216170137205990344350154251399524989780123340424973756316677423492803464997112754573323716496202534545460213023549549316615801156875280525745300805743356170094818664253792975932725266669340352722193337089084323431878424890641970214090441068039762816508647116224603689159227012663648722715550315670911997548336275468541244096163278487309163543071035723559164387423294531223956324242168144219784782192757995743496047806022577845195065023950118551460707042165671160665867292347275466090432897917260721688084976274942115033118032099349652694554146654768503669007460721793494503347602605379135673098662985043811451619208641343312685004801668659822365691150838963446601688702450964156578366636670285087052914899220152270492044155784593896604510451741487236180383259302035315280676593747345740427778132753958743033935272833661173151651396834906388798590472791940674305390220797791393192373296161497080197029866895699185540892543000440805441972715830206851858545169132157321522813486609822580178486558362616459878567688538927492906670962340279608055286931592411447277227997924753732414676972415927990996720759268500540568915436910298225833141931232633938673734643714946040164519122537010120340356422360885588005941235675367810140666471862699206755608075608864474361593931456678752040389030712370985649000979117745787489334756207940664415300546821738494347286087519590453394685971396945397027111092391650342021974696056858550279822860880466169543381834193358605235214505203872925739562546427836649240875790993787948730479529823232244001358981739894811316387776200309181646847541013301113255262576231307112523189747297794357681016706834725334312706960361169674180864264827069815252216309214170759825285550270712188878099322032635350542664218788703027105596480210322714198955347362504869439751075271456671396514793010927001174863565979100226528785050791533462608866467463945963587189520928392539801284230470254730588577606407300020082813366452073872535010408864032348202533676149642908956130295254342798649490576658745835462302811729893590259144978470321034863411808425372038331031681374131123499869382884476986663844589370432924182655097957151192891694874669240766024454210930550155072432767973502551907540309593711993528818436093629035778076339689766879849244580307468496809645409679708340381240381910951322899712431099628759609505410241219596920924956547817364224201545963744472076324526766288973662613378781166183836589141708079636176597367770431297205711675657939182811218925027144826717195371070895400502543420213845634604276348979824058372368367829326437555341571959683554816721217930422520634292305203989746452832105178762468040149018092142369945700114866574164637193421749534495067464110160745174171375915612302583004923752046472269046689452727617551808529747211206453224372144443079421003667484113787998564556495791537156213848062859210380729882984777867918806383988588918584658776940452479421855460716328881137342005793506206317937574936759775485901302184807011444603273103245564594555033083894129740882246726203779620553482475427030826279101476367423001561232266948727543746192791647960595632065435397041583124458678557080023187037223541160054448161705644726808908290084613920684341418048274402059630798830022294983281493652772363054276309172635815782310174906280866296315297570108763787569360465310496849781891327830490090652378127108982020719503784336169633642184333657989375288887080629130671358842747082122830666030172693600725590975348422741611872544577919082686822886901466217229296880072807439467754384210780699376415682254223400951151203485636526636356205010934815247513710894422523095947622932507455729465771686048503479045488439655272528639491746624635250246667083162649377333160952353372477888008690129759111480196674617380305798284480784462615282917516121409485639170509098631909201524747682744856410013651578843023592498894931761436315564800413404522794181122167625730709523516954403914922990573339589384086902182468495866581895557952203088670368108393915023017480681495233557332139876183539037282988832939724943375512410142773327148956381878531737394373912444731350750443701098881497052590733252903468583895142315600244723172531075983641596268977836206484941044557962364824721719562641155645563111624955233809257912285451736960104623447948093801860824678203579199743769220479516966664249340919246981867871899426405396837422201678072145723287796746121173668012228432826927806628108786476510416908387121536196867400580464713562383913354635559700833506350030386678500817459500222356738171230995610720637264998695128656747515724252004757537558968332795009360599108377256137327562867545743736329371046518459928418001396526546610893210563855763628195839786701205107946226790959051973896124481044552330810443255580213182225361944017978418849363007494975899046728798113033100844849420260399802372655768088759484149590787359074484991443403131138816335178197652584071248728986819794241488277469085733488907499872096758071066978776274347292607411144194239673225702043532041342565062834962572168122904489544276996172856149639874276695820229243188454249293140294001748191414160600199516733749786926057798103047651704600126023912335818376394341664512124124474359662675907594800074568130148413937477390595854532236373323681393501035992782691901215733407688958336888692320113916442952454257494123675525870595396715049785554089855680901512572039084821140580697225203190940399745117301680716108033545779275661331911222634396509918091285401880095294960947401286611007761195018533714333740849403777834193957784606804517186970054009561429479051387590455144000571846317482865674313305677064590881569894826967569268188157865742330864807410725163178324777000600137659709703598682396366042859461627026797420727836326656672365288013664734406356141439497981292083804616254328556027888952546256866142436724441812616775982534284107535044876528110459661872666756149920490518632927656253997031982323310610779989665432492405785486710957423502006798558769254180330248966134819305736746175672618605481716109453734885855992969115782000991952766304683761943460190062674676779269478728376381187369244822900061525051279092214879369384333399045023987001885187937706537762286683906467480099582812783230097634146118903098144616786455985718331396390210866145509226473070835321702385730451698362607753042724000095378548000802469457881300013736043172193307865230998888855867420118122799815822389321768214267038306873372548368950347355365204562165705538504975769724261286539887174635780955485529391800197546936141876410453390308060780323506329044897770947251168873601319136416150413492454585556779938993985574381632955865508957332001071974961457236761710096786794280646153849471235790967429372354629815164369156389357057764852665107300036300943367754927629348529121705243870060853483200999086291894066445586397706051911454614115749374605877669475106374183042358131927534881633276192428374842215393461578264196413849430267657634777141138543421175481850415392963546153081251585583761025464644304690576083358008810934735338248490680921133577055766135829760727423538200009865858884016398547095614034174062133705626129149656430799253426113087252299007246932656710773052436879235951213059486540031369897530717006117728871670771271985388336881114828372290845073014687934702559963757276487684962198118290431626502972323498105664156665894647315779202007773652367744916100252710826259941609178672959897763914115607207564666859023949436333928655450295229179801101851254512297247801976345133194647009728240477022919447259504301499262556197661510659735054992483573243563105915936015698555181095463263861036902082243061698732917811892030427068595618861420242499875557486921920819374269756561243843938384121320801478237487831102024353401534758879850933788831822285043503455573313853578727222026707723394516797132097147190018914441517946652264401638800755304235380027605071993376367004449791655850328123528034348815278210886709671152673021775698903172657388226139596490186875551660799219957475247557423385144201289792336239715244898503974771433350324463261802896225376771136127951150700425864225780244679799090332925579420224463604710448741406827407847252583787967803819809399401287055776101072192398866383030566754767111995731315285657971156357657782452004242405783647417251830929951394720357840973435959183027530266787323982646172944527924262624833845396707613737594039614410682271452663622553454231933606935768516248978506434539585081891888051099668411481475548297324185916148542598410574870236614492749608704365966568352263497805257231923067123573715167316544975829260939351572306148241446785818886359324758366321620286344659321955819720011269777536702515795768742083157498554898981487759071615750564118284918904958233755165813541054184150323328661883507369779666626228326291399431724727517176247053561003882884143034457661906254714265514385128643171489475787506796030942249566609750316673210702288650851802502939951699928537430444844662450500582365877110621861333103653263328932512830750430777470561619395625454756830027876017175037731924481892798665885872584276723871254512143064324897790695478547815121468534733961766825075165005566510838132373697835244374745608713579994547822595820113201333467485001789822796620046341696967453913560504188837145355331748761146793191068779666240111802503000282859952231244766519107711331024140910125693872293463475861516614617856903467198908371823239492072856961527361124944618206074077505359160913914220815217152857496643735906133419091477975080990091546182007660841233792546262841285705365091954944966602057914799044911360678527156006354155269355982146388906516783660054740335046531538794691104371143326337138451668455618282501015810484458818234690516887857849912604203686831500933446447752321821245485451523085690217660913417880752503760136059212530465269890949756058382677388855290805680272155442892255654318500121091065079265630858293318804207827372461235917764101597244784743239462365043642742097017332370057814609712382203414825959794470692672574783724090447392129362081186486181675901603097155805307241259671256534115722984176246716267229054515750970699529379185013587544650072810492525419801318341100860825124063773044046548689977247804255921542095429945918051429797541227793295297286044255113450222763543085001702709307953957808935681342191078635966303234412170033267055056603979956988754830918585990351393718438338564586552176325605493951867719627317088562716088952163016298926766050780632761364109221968362394631200639674057886743155153051109567435253679646436742693117285200986035965157460916225878148564133421064732375533744792081448072278223711163329287526813321997518133810372381360601029472776695400032366213302779348452533398932514163509937543290609629971705462504945254525265202265153428686162262734272662024809716990171126445859430271067923954525564982840212091494509623183981064661501017338330364531403807256375397766327729162056174341161623780720059132854744121279042844633409949959082070676101959319914496754103673911229177341808114723625187221667858281182683891609321164527423787908151960967317813050485982723274161983165230518575324491056165350377479528917270303810236092463673469482637641847369191331422633191509531994534831987571996533707892988744115525849836941694278611337144141492639702327543393700555986914316076128498269289310460216586507698083325516019293352486558595630878797094222684965401185643868580067375728609775558927814329435690712261512255899396174001810262197963449079896633538328917621613328718240677417769154396339104930055946292002998162374760732101008245662738025841523832788620630863832513449155152367792170226099998962685723494926349081265412377733072535509628402557373495396029520410210986925835889637662105465584157690889698110791973338621466348155363478501462968998499707984728565114221974679637303342391473665002243147703109547648929677831862556836246949581737780074068804869014833447583266259522823641012577373418618361884510660967404748936015271410802840370022174956520591630678748786196801045606007586902731564318102046173956887329257684048558764281311361164703475793367326712675986252218403438307203850083884456939117675229995289242445412288488657850629744374440758933304486559115637075489314810032004046884514360931671200800404511224549069316270185523999620460968993359652973680194998765614802937242229587892668870198253635433265433946709572088557662758964139657398565871505298354805874310285593127813406626807869118373434300359339449144536041848908684346366199513349710519522874310591891069549310166189445562610952475557039640533509908553181796195722538108211109422566504104467564896447424429020558447159957301242216538693015350333217192306597701366205757053085075323341889284833336332610554111948494498233735910180438199277640574999280861456132213983430287719771294926013565729406384957660328765044224875684856037586287914039763026645569123094062403319755431963504713700458875748498439859028965801512192776132318806531054133148043915313848991467672363261534521538292913110958774070566074262673392179538392095509669584728893387298836974602613330885140075546268040868514925961341172973496869381795608678483755435008397738049434316746653760615709578482522269725449390909849049092729355339507579586776593512221702244213490934072412665485036450054955411538609304955104087198765560415021496517532534378610808788212939330086276061657530949580529848622841340356981530908555455055919397142700677186370291320219775724735784124875441817371497040626405585283217661578023614933157109013819361248970687269973580050545121850122915777410527682728747886753814465429122178620430499284073685029786580368194503983525813476482623900923787672578959328774035474789100870352884745914573821491849576344823311582232294685161289772969727179119350614404259630246264820227065614216597806097933874138154381034404539877456477378737892107174199820240992153759286433232046027321284152905917669005981348151474848013295604113373719214658468761698518991815257656928009138582973755354101978174625733550408077869160357182824882794572384495859237990705654091064446853994308791965448886670322587302762862127488084791776790767707311654718978233111181811829996420180390393311600623454796073504912455365507789297437839659019555297727987754767489167880721830600823703003748489331781814108293788128118257819357165267793947456296699429487829843333217291677503313062479275342277541159539158025321908495399486120039572296531160298636861642639656135732559271375044234822497518608255552296588656428993743710788641088612826005357929762178284678274558959002673800787411152030631561775539441862647054959252599564934827113387374124320118665716943181997579038512648743402948297249290843594427746076846829288567558893605126788293003985255271563540140547944818912469412190755793237788027179193361608297144462474882419200745539695858705461156459098006804472524655791157827743282918435532942038444126073196468900174137505539515662179212183670422239218334639769492592102564463988500128656397169652804569513368599897769854682416990308971781352789352757584399351324833972929074416727879552315230120748041211004130750245021492466675933962735656069854981381198030979424448162744012143906348508778808644341746919472135803235287213939738677306858258423919463607642543827972674504618403485950150795144831357872110037529415825693398923201361511640701078316077447464567041320840363011663732412062200472507592587479463129582944700606072304614263591092206074310351583136220649320401363498990903630370802104695089629008071695279770179936598098759915682955839812423691386084369555710434341562394777608029869187245543459244074714289184086095000244948106674646475581444128764540960135626876102924496085664574557696371267613272301091059924117689603948543743519050504558999416067093254097327184052130053349142984906635844380995221094857979551625571311345698713984516702179295837868193029051488979313555705484304124558894336957061841849307326641991139231536566369867011160767702300832233760251270998578063045440131116086295039481346467323897162849850384701671178609986154219441202864446726313254852984992375444766714301016240181464533409320238105853483917524887118354954523799660520422599567710260753979149582417604976877820579978796110967092500005174902710423482800890118438768209567407920801167157742568537122746248224229873937707454647498968691516090344165756862433162015844180262053988121325217407294622467722816643071336948101821683851709320759861211229289727217680235698585672599924824395127839373428616156268862550196413855393720771193371013984208662327351416119103330356114339782326804039523897935135788645819374269242494401240113483133200231488372530562019394669958252019403647402172374368828715097957955274621420052306381708408343998126034212957888534192908721750583822559776054313755914629844257867799853442877120923161495810165474059616041782445087500982410395796132321528640561152760387695587757921450770821062970409683614810318792017462899702964431925884246656740344975449187736528835825920681517498100232924281786127318118145223335063222846452538383706913112909949763882137104876179162246797295152982563382729635050153171310120262664071047078181185474819691132346041052029617027520338703301566832401508548005435253381178670347409240136992216502423818530567588168039788644224782845169685812057329954474232896405843059598403434720415164695872198910222578476375563000758997986438695827935189565320760826220399301908120386413962093188008561014573837842994625307712630449039840585522188148556760851673715334746307929906447623924261015041050800587313265729970270802884547725986509236658123615096820440331935252953702434359514211541778304272780456880228979760220656931051550100465464090959883710125411213554117857312026527749221614202527775257986052842667597399047425189514742798097252671310949574356905940799576145289685007924719891099792909570205486985530856684376794623549002340870863139727818327136573596032739397293394634884830008238860897260368707344423212416432443849752995047534944831768743389056579640577955136309753100779572949973187758933326836524029490882027171924813494612260018236940713944465428360800645507511199707019872353815786503432456250088362945724146782557228816438161875990322144276994314020855039478356795802224097866433634004125286854266240584319385984941937836313822264228608219550618394250685998141504456298560695679959007136647939196910581659034493414075552210500908255603748798235771429826278314939873289207109953305047116212795383415403017284510390736962066689354379935924350157613097929090782541419509094902859979010699954539354370860411868962713288020165485267175132830741975477579244397026888853406002965766034941294698444139298296866627982472274742267243586959643128870942315430984485128559033768099681012758645132227310502213219078147847403213378840934846589369716562024585890907209869513408711937807003943376072375512927155896572503362237701985052623333874339380678010704957433997749943487933814048079039808794354835691812077974335481317783079396410423160323883592833992502193670696682970993026476242334327483328860205414331309187753065652653077928924222139992420120440601739793807061923278455024119202754054187653735220407158031842602573547975701466888081084976847650783229988516568237763517268314091778008199268198484672391966083539162472658822052461403205697013607445313999242079437335250169593985513323723720272735536856512144075330166692482511362375104904324890642485211121734344539581149420689753547626805010786763045223772854788597216448449247343382906453366356868917314537521976513494928734492205608287298802169987653196065164132627620057625022736102015722052076565523552138321034530260598928067245191268282181388959215489847065812265665989969791774359917260178351891686980456007499762290578782283303560033981084606008299661516976650587056639059622977667172970807846837815646279406955719229120265481033340230792899049131988066783490193938159439704471328267792346666371465968967537678926702488086352508306707404643071610226761597506781246200183727480532839864054597173197318661695703854944011325890633624800774445279731697063993796331332708822675510986196268759980951159247576387245255464709737763020360194585162970795365996647261678425453343109135240099780389604068872261586883845191878347949436027598555137815801207629506979731269071734436117851502571539784165232413459281428966458438137169428369484996706017286815827059930221664178396491558841128024513660756976938512890053560921443039484381611527635797457855421661297197422558002298590637144285115931327145865809082247392353147431106973680490468445426558311697611272389570593705334657351197280004221381805150130210520470347585390910956488645264653310345286307803650428481887720268805908016415665127784001325397438105867995470209853710114636291421705197982092368006163538176590996066492734407384532120672413625489313265945453783364971986539108547365695126370865451711979979012632874818084206110831699729401107548299254550358507596795320986492221849314801795429692817819130981595616501150156571570015487597164115584361580073092008397026212205797465138949554763647934543487351865290858657529572345264836879921117105467143833162775129743206640297626954341114746107383199448413670537362276716370089350239451085066135451030674873226125780914468233791679591192697830168284008391739321615871972223772407899050553887856629878576619915165104828845784234488371841853531915652632154150092619279528805875592802167457306626553184583049053352643109147547068353597900615894774127603083314614380217119993775742903134095293274319536387459425842783370964289852423577372114146295104505755283402469290498570548694590008863513523601151507106558615613451554813144611898987410360129437336466008614560068209993208038509178037945114209675700579663535557273347898808178375434380810202297897127915263442904853263638364862447253261923240377992068130340049390653839431715010761395489732136461218321328177501388653476130912606742925670127322278624850110487213061168172784837002347276162428681542443286461961753852229868932315396588016955200630998219576428379160786111299231782144721162579827731465285232357938969368028618450088680764725810529012616366909920156011374227400752147991114752760138646478616978630323984098268970723814056379331206276738215152590345586086457267408433172862948614815972871643119814609376007545668667319885762119958592945352540106345185536095744479046064081848980527014577438623042583929293379482691949255582261686606884061558081737714975671377605227358283591921297289184548421887534330553529243491142929793825925950127964581028843804276456811650582316176100505479995070295036584418516274525259739083331613226129774964856928708524828909621980748654359521954761277793815968220438978184929238360919094273795879538405157744217873828775949065236182063997744363215192684365523731344376328559856401776971000439038944368531324494514904203202233548978302476362927376149767149958852636068483620905152670065911118817389241569895635690414975166196080845206969161360922220786239621366164037386079735684713976147505412508477907702235364118536135641851921973928404700893392356515248599558950994939475370823359994251207580274733072074592193615835667320096573500170206824161748584381692038641471262812662707921442696805693497010705657675049607742073951717452366667325925868833860950669400834721459434223815276553829265463141308059975090911430770750819656895167294055724605628943197362024761600078275480667816416450151358935537909031182858321365939776445969563692194484455919262175060304032837046486961712188592581949269757323192756568366255961530227307112672173256454145465220680291170576154549575695203321232314765086517778549942097200381306978985264809786627999167826596689004915306690485850345899053072146270022117097267314723954690288626746953789025251254717677147812621854043885510140030382003836058854686766558767025913104570044545895802345098726347537063538609962968364023927977000765028615303271977264823881311313931874199720814653114312255396037612582304576237695093462539764793145590390853105264331214097849271967886190943614796733072779481202517517202564178191995341159326753085228151143363305277005110007730941381588588093363446758463023630577882554754655873706828204287250115190633730591593123316878097822933486327086967803052011796655655317852157313656930270309220823052778641580402860444057452378511110569915935261714653849602371017123367609517364923204695583197976640086683319058918944131945264044958923234213792071954984880199378418068320598787445796077766960726215745768889292454737116778690524466406938060589318814841178500658270105023415665585543407417322128791840612352949706964794205660555011027533057955261777577314438188051233555143440705174948392463400176489809811536007796955763115337327306993782427765511543057157983794371832761763084833494252465518975087362973148551772345722368863431540608549196220665872412350850433374936618087793149160133084403417063155338776874782714926706258135121716791367226635715251695474180587966708489476121410225054840526985876897753830366311156614186339146730230101047742513249746932236236688542942614221631813241922629526821281734433950510146130926017047715068698782869944604928882223294801245433918422947402145476137911552571688672619344827745118750042503817852404898318471567512775882637494045828823880095014613837914077808697698181466601154169918817537940803596096355458578976993976604949571190069082501768933944866812447029556528303814916076774116106721936843526457666099984420714147040274793385610289938025237981663193327630095979450691171961273397101522004338347956120572540672627351724647060897640460254265163593183838419643683804827549047270483079091731355884117837817202411186559393304048292421641289517175242392500813788968727747351833799728089413006697190100477054474693311154418531463095237034643631499725010192312744441339921976358331702732409960555589600004272696736135606436907781066045569337869796952822644438980724045796304508511690978026291214363994712907018837668750077837415850652481059323653946905986715435065775525796063522508466818738271992048815299635897511211295657650716241384719213632614676920156266047873780255514632992023726404605473849646247916096755017840394813129745180360625776028418350659975839090445353061297390286268634998275320581684786984886089611612482287833736634126823389963583854149177427121127600658492011436612946630493312640577855778344872694098373110587478801157136396587898783186772434782492987280014573364427657709639812024546929879712461216584029182260173470625310028523250587191498481391852027724089623625099133442203768213591132334258803168324251832192105683411281402248697479482346952903581048361760677996939301851906686130433656118708397617998288289225814063237665022501849069098153690904091913925234578255305570654773936878944824049728603492859341236112440750566554919479207970985225438076466707247617134869656360924830274338870783842169483627477025564700478029173776443251990024478856888558247288458508718891965735317631858525782678391431690894373866214073824443624905343202398520741591952764324314328897901943354487820481415425080450621754230705878425055033758479384413472087584577432884570669423703735941007820708322855303581771728746058018691468827872359148338410915889652384472503804953713720356268930053996613590538123450299700958840852068946003624647853475654866548407259619938505454353726078406423462771365646510665888556711013605762536059486282577033421312845136871867398170845172921783716339755537881079930385096636169846865470774813203355500930859638951231826876383309239466750356236222731619925120819261245054563039799401004619015727025591743659970262245722732596537486867574961809942382949711982652000664189877293961576286993630726716832632694228329384709614898839313981803252325764062889808967928142231287739611966074308841474320277604150092440866354164671722877339082393832086193986071533178494097212603565741400214752475583513495724485429615733471452227267876224352143242526494941443275252100135630304921264266830390121088219973555763021505398544515089519673942578787181561397353628342957365106285056936108817667894852153647164998686066646499995543752162201729878155934871462707903080605603263093522934039745001894833637703731918392114642951697717002195523689918901593694374643330391122128123440634992055546018812671466832399343703121436306383643558691166126625664296179522052709225626403153937315611509832942571768139207683883270301825333139133799188379142311614966895244544137178679614104816345508149216186766385825586615417362740504676865408208322098913701906724363627900660610230314304117686945943455146651123799910732392489694838342675655557140290330282935062340973874822310465309529156711390604715513340725659423028603445664361282192041010009964958168274887556939133309273485727239217700950344171478924235192955145873407284380019299743295127689392314983726728608818794873813245653270952134445885239579843708212780317927498591280598067229693324369458433053235374018908714842005177394086472745847028127114773122916013593919305912055779033099111596278007802698743773351667795255712019011544710786596786816858346667093745652712056234862552872512226598395181683824367737451632700137122281341615884092014948296527183828250303324293881266989252874970380039153331004231239527369122326531196466430413214214696286924053077289254347405816761467398250127515283606988632505600002537800777902575011499379746463610960492616977389349448715660310503879738229339184575850593677363227736281615423025295814489690113753038820767183248003345096564317578784447641938104376814394672624707887401599776947766146523370062709576901493137069614712674659622003836801367486124209686908822362332663530509558932887429053643842855783474230188183866029410078978247524623278701634431521343199289602734723052513486107967376511609293997238359353053458152624951403593882538959457761640827208341375341991908666582923576959074031991257330566211952395160485826299427129319347825447015049972096029808527616968341823235704847053270748129134469099851797687276781437600876396060944560975259313674661543412477209048006479268353753720677037362834364016050092987212666757106601288438733368181344002113853110516937413023386767744853678295658031637096375367823325925400304884101170764552512823737016312523337685547478934648380360953344215778538436117238076328635901383885784778127654041176937523171247902463294794866666858881833682110986074244213328742977413813234661653122928234823375070639739079095580074592941657707422802139817833761014114177434730691978138073803484362407208595256858374324644823787065120531447364481946113372641617229805177633207224090960944562772984252388171088947670190588318337158802795307336378190807891313385794026968882840310052599024922699699892077654392035190240193336322210754042547169277534811501843142695997467261352266914634322847393518209091878058565469179777110775848765863738096497692635964576894152607167755703003089332626380017264576381333164246983368399880014158342999695736444651979464358219682017423734769106091946862617195269557453389729059062969462724485714378528385277151507598985043082895067965102497476446093983816168618921846342204157439455878814351680418556827669381792762420838477962479588969828281112170769212172746444214947658133739737757401529286743630138208342642409043722253977053546259203802037965094660754744709860836605015709888687082115190034012289659373018471496592703139318231555639957102607743692581969495368777998039234277515179864557652703151454816959450960159212768493386842963751601985972624774095311108573128212023104804139634829127044315607782396551153273220511474776348093869892833510884871246790274393343835316436026916096737306570215317310849409939896888229590367790209934937341839842520047261035500534002035163480169970210075986489584307238789837560279937196982525289945112433198850400538712442453486803633328877955061328879877701092760009272049577448976534040005857311542996689450637774612212629090356694049955111269130639962319929228567665438794511235824786115217316510093294281303009424207613918076033536659101175188704026127085596941756446445571189234660806378031643064657872777531569759978931857944393578975289605238747234873852564141921260602614510017415193502891488563190838104154277930107828171576316370518543022845506474318428541759039664648451588908774184516350773944319908240826187777963497152812094073068160603293965468610067511299403876936417620505115184681000231301634124534097113048366589397043990250869787139472661278016276862969038199189627834528125723215135622994297030505064891521214871823988678031448238970455503368119401749102513937178269298859064198937557898930975269621245555626045123987405599746577375214986484698776925610907556052562108345256177398413865381394580191650458020825152017716571048026583343973958201182509341386389787720137341818504911043816684700588031679365373160426610190290729244591050534529124200111518533721345576360881660681531367235232954779799886545497024124754666271280735770621861074414955289048870280257410221106846388945935643196065280760330685680637449157192507877380597536479200169662057322949701814072070778497017199110577732885106781181198415421623927890938921693326920872898697886035956639898617844183602822443644084899603462744151786750680392974047239175919845141942594079690937965053122172556468014676172451238824804113341170190613812308701444122831093677506462040175726109894104251673137569465451230048487838343202750705237037977059732839801869732328924607308828357225348508160904971989016641700403811718013166477339615785665189774811515976098622919172401845069891857598229125906636275510170241221169828258022952054642981206015353918647034573547120580470049286233745721717461173366290118384634367184075014281269284525926260355962816017109208327206555161341463679014543979426819181630674212077477558567842773101296596889127846183938863019957461949725923123397672771759457145587250104884549171529382872044197803178842643769491363428982610177212791296070015365279697489788363420712636766385951281923579699424195288715198995208580119792789720290196616858134655089675946694101368454580249538587093612007073444649197378116810437648084007778231471527336847981764502263475599214130382960618189745126198452477193942365419330809963589871783507121580008833681683131856842821639971467582026236966252761396103083216889288523936033762917150927479991026515580496419915263211382122819225491243615410982720930629359867536330406389630124754542894956388626837100404250138933096199668999917685738701895144197036799838127468211617867975255260755516221219758979653028437137872859224380833902716237788288216849271820214147261431561206613098027277040899836076417525526774936250942580034193841848392110411307351366059395561522585312523587516397757389993966697235225490577439211189863048745643572981217567961870474021207332467934402430639283623065540043182983197292698766792231303790496315237269300944639346031508914742767415318317489608652149014605904977253971343139509701821019078325784755241329052369966958806455544238532773472189903673608950983224920921400456067300925605043629654040528936224721532481504219774329490850147604729142646693038333408810278207268203390315411553285108107600316443231957797447533822213540176156453143876461405349935149595283486820176282958203948862226103486258824746872378962851684270807260123232080434715076996983882183638783958854361808648679294689359234404952174586836527919507367153014109541961290823079139249571481189046805251203538666206563455169608821045731409823534565728001769217418777294466573938023915239231402565962594235757100049333683528647460328217883756785139011922206488428292357990403974807562729295176962067227191357062371422904109072911731605309173008571441057022400907922515492868438978264611266277015977254644002381129334046035195248899901096271486680325149974833084342741542276363871525512424051850815405909820474978915294713853906410213551900316037135373936320301658327967885411201490231395355645163054547426062985095843374368886002793997263603938270667303853802396942600243552345841384697460353356980426719711979106849709517686644338929163596696998815746313416883986327859026389772754627707634759763800226378417632048202416826872278130434731812983164750508604855942232082779802911544022173221905678953822699394036081261909969405929950193349288832331383815126040874086520228996239575697128270242787098487740126337589163115520640834400531559590634789435883628134530946377267841945462507270148937037791458150913965427304275168169995521849300083992362611941177512729472027876344879848824881856617888747507023542150142313574254962318630317264891467397226706383213645689438104650845697429389975084919854034641759322299219686408761207499550446750181938200785522009607076291854354869593075835637611161183656998364585703915015842891648091983547922224797284685486338333800560431580538318491341199975547789282383613843349219758986824522797620972736295163478535857667168590590780370299132073561144020630292339888127991648908736193699990560099324786962015364108929071261722452879619582578746638473059441323169482609830376903720638552405861806102284186824418107058732946653059557592661550139278261704851704932626246705031342182636932052314603630094307436509868306028004880762645617318536825393945258362879216615078405963175186171202023842006829606473358685396970104643534496956848665445399764068267794917637430006192097470808459751802139257969091442458061763674057064350667888704640319969651941641592961984630187002346596230114674110167310152113335377039336815845368183342492806707292687826055860351773275696612258287130392810960932331457707868851095492338830509742177831596077188399736056832839571437222505550229170172581119459911439059187366745572452859478690720440688517615640567569321256141439481979446399983008299670389930854680094815049078234113720712158522248865661024997140546329527820484713543457971319668358997920293918488650604933061454819843083127066777381495541620125508848374443061308806310038044947022642874255417541515027985332006689196102963531802105969080350420970309870500467153160075289958059632416248517417534670617413756629574593212570729390598987669638072753986436125220919055318256609614827563425844811214674278588238183212579101730524946920332988470015290923068611220622147605138529298605211201721980249266469088316991783543238010276091471919870100449885621487871657682570873565294780145195097334731713135456539861592901763053156548120900941028999713057378311641432956697392354799319702218537275382553242853857572642736550176980583859463182209944465922490801668370352594990469995035715699536248770625605561598689074863387867459453901580115350599231777953210367536102437154359833684402983870124109034962148412094900250400145176522018165831103216397068253517848434914304528833456807452647597033603041849333302058751837865970989211011739192226136770943716092106419414144284723793658647413543478890298499642997979343991581779816004527586212396546430849014664341376233849141718901929557915764932486804055493355063253579255399339590719473012716233155059462043593860750809223683178683918697729702682505254540538485567305956241733914835399658565415303308034413136395848323756172868882500704995117498422501869297335105697523739733295294563229014331920138700144671725086205863408729272338092972982422380220766063000749903781718210148297907875977939281780090463554263495300500681598674723354323411003386134571769514788060444575140537185272365726754882175940785714580390591810215064644454603919010554605049242525651316208927287631718046712493749619436073788133818856785415905010459878578657106372409247501916759464435207014802885341137465323854126224578064323408608387358406922744655292543103187328747478504792203596325209949270423314024473010317918916733409425099886588131296352131013446794642166070815777776024721453955613446820079409719561572364377090117775065817268384419584838157277581507994973588154190263510750572922527909536649828496620423652078513222078618943196983987468586467458706053959891867536677912332443769574445634346629507851296402804598056032067616717093715787006198051807783915002703171107709536724615629972051847670977523893742614802691321593074870635936488645909946382275804837306113838529941452587450550128290314938121561271383685474612297862554523127847387414157767365187632962988767499977348413835757928900000352195872874416406643782894841427374006192343565587933953544389824756569697621177687102462505000248798214145241536102003850820681254580415952925935707706756261376553874717395240571380320050493185816743982896641328109041283785655996041167972681296687813180346329837627369413041682343098008311797970507402626840508187076647596295045642045867791923881283398417001655849839431912214568572965823011438428991342177967574710829777048346271934037616916931050963353005540081098554797087551854318413932628218333138528222407584289546503739956016082608364680541064027107517250323932153152902480235437495051630043246933488583822244944471483704788177486224803829169701993089588387933541706555846929553709139667564088452531569326725669227786148040111648956783492367213792151233830894200168698927268384305711791411811430499324702963099259842113654671584194110411083609929281205674742869097889328739153482737969385753442121214148894369631516840386615415186622001153002592140041208599704342724527941456920959326672812717701907230713271862337445776209049111309830133994740251620008002689333886100889967716896981935694846736702684981787380076332545855137683578108087495289598385279292546959882635310411743333233678348945804141031749116932968396550072058113032484336553014748277752224529105428057307893876153368447726533103270839015863049652393774534506042660073831710103357513327921942349396623756648592756139613806909517547376738314038114213863140388932856392281221746577946183043962452955610264824588660665723322744856279714227831259667350467330708549838046740245345761410332203178405238125216013620496619792728261015933808832606173101791812075856897681239608411918428854388260458961625888698505512326582185679667746469837396354253274626754459002791732229586174690957966517616549626458166613729259977996551964720394050544801263446153765056858899032938069058200154374792900105899611778646027456069188283666408660493905418842852352879725535795674287016111035124388327512833964001262355944620371725227069488323633105465402542337593206049931407988535735659912881504489329501849910325845871331177444159164180883031320226178132236820192325928875582275115223946308714633932143035299807306622696594112829048478093677921301786255351426310445750074294745393287181627412412728585471324667552834903617149425163504055530862506282220736532701007538294937412906583667068380949036169303381466918633849884319615610966501668890101557091974848217842594473385533256203779790965695258726795219327226195098228122259854734805145658769242082132825138619883716938432229944257504113334407994833710668232079835214717906556565101909416738072024003812869261416295497953724917567096515252097452275098468511761682496756324879101999220587567405644724415437053511062349634157450823826654731210957148861444576857388400684090103847764229912506545122807464485679113139128973112543214632342432263458748740260995850298258088166952080568855037542603755188135149731723109946733816834282731915421168724971354972360363017413649910286240228817945918590880040039629259948710519146637435350927643388005397061214524683023198793844560388252167257536145174320852230230125348595584554660632457484176057007047079767407521082450700397791988693018701400672009543572051707845327373812834811334783633562913279049259932823028063720247334463970137511243440676882462555701104918529417305576587896794673831350887292382493773514661670552975155689159482985145397526763833344445721275409358574319936404860629249545937834748943862762918090330396419894361711381252161627698513058244188134337307259763387709777314849718284578486504229279490564884922274207779696849459452701732132641737554828473355470983283374343338140342540501563006672058872816675608524306821119470972534374670340281107031639847660497923141134588726707209617356082238553051280225218410070308211559787635313989000033839657023492722893566353296471033836130527526188791996264134023867327935499043516152006786357068568469664493341220130391287073563987911494957662404365891522598426541848954841837976457975415827402746414207969266361730969333735029604437459053280256951811021275416702209137927494983041352290600704782251196586386715986797695220341608300693139735135199903790332440384742261534438190581143830052089544098488014792887811007579668728659381547206409452309349229265704941728137722935950532780157253299012786010683991964789830196618072124749564069408812117180306189430822120784644344847794954064404287332862189158150660932039699042522789908083218466748624569083770672144383383563333652023791530313579025054848579920068474180485975898295868909942001040340332665321832840707305663068374272331265667498584579909017627780756938907715213963248144715667586127058332098831002919903265440475159754567347114903414526982439141036827332328265805246598287739895537455329331724247301555276406545407523687767404815095139856467256155870931989860750168758791206613664861591034809446565764647017702514605639365576202955784740878485599870379001648823857648076686547598826985441017034596494164920194971022007930978285746627621256226065565290683956491433231718090980722066783569141864848427540265496545672857076583665757424011524721375766032180873530608786918616316085134748968684478527603056565817723973387441502933416282672884442581864445492594940774980463793328607110355927063244691111096449549375545159640711641737018720861291437240734557855956622015984827410137565246629737290781460785435028449357407632946507938829052320923715374842685336041421433796767902617096723477007349238087171811323875537937822877811326715604713047812683612415059380064587427259919980762339119618862865705340616315113567678781069062282659628827968154249661705514448013623991202540277317902084006656539099285711719459126034796649313833783573021259308387831656678923874979572712767203609882520281662776838673622461951130917723215244516391105955452300848502953301935275485833957593990506201028976968129672554144326295398832804454615257369594086391937025625605103806090835572593239732531150744406111632451606992523111465294426174197581057565170571151395267786681252908729724278512206929087625719522349526856545495638887211013819362586606079966057551517680050582948328195519660073292375731349780600003932174446060866357533689708456609187935481256476958122352998226167385709912433552229152464640341883677930398227742633627452968079620538517912858041467813717289369723439128988270112596843549090802822249502860736874383735978118018300787963291067112681986045749658037624166528539065271905758475681949628391724040283227915237122480536517467651983835386129872348293834661457918135673549090236246116166405491942745146987526382023314727216947305175653376515134422088526784836100410407020984488801896641162082210857408854844048570418189854059288116203694986750519809992079739350725945517837711165765469504221184096419392449883905386541480094519162105501092221056014565791194095589009796035388002830584221689176818934045792354167512732933429162475304271531372633636202148502422916344120225439936200551683027598188118118607255014174380404749354594607497343925822768915737227523014711019495103758143254780115592529883665612939952420800117405749042931210702183698045386537601006583740995443721109099227321130748971851206934539742891530483855644273102461095166848111992399262532421276067280297044810425920580226939330189214605663922216517883588246705031299400128147461746230982912902097448164559511887559660137452442467824178930601722883135632885650045721647325379892649449393224628031264454307073494491432067938511233976808421184319657752437747304578000666616527526659579155034629099174045180606905978677506218791877827150960368154445203115668824288600366649091202659201602369137565093248183446745893434544550638684807079374694200449237206318839564812218035988499463031969490043589196227950793309356096226437659672129374412367640965446044221134082633209201873022362144857577175639482240448811315943559140323161788924726929335478046872321822723972664865378244020131851293410533114339058247963128924238502972522697942678123745762379860884995859357767538531970682847898437992452860188436828457562583204949229112245842502217439889191136872348090345344360594585501799788322074989028930690593853847753882466831189078313211819608818817634005811550779564201242106133123574773538043757372563897469878685686530856674121904755492870469172033982804544314525711682389983696325424599980695717119694947387988505205993574550403883434746425038615038930048302599766125296540891183746044756018633968040714351069494250370999042430406723410319449516105647479268438212768476497714095349164667999251343183868911503471594313989027782483583112676804854158310829777624767413448462231275299697998920941114733384586405285484553678955514222540981647611309446922749060704703993798770562334436711143749440614472971980890662757174483253035127639443389202990345385657429717768735783994594196313159470881252860663735941753914766457069169053219302485124403773339739213135639803797945755556924532111404550398334940636761370889037929949501739590115704692763766421731696161044674817932405171580819404062460878468865732179492189788462327529800624389937858840295114563832008700117722603870090716061121617526356091235804130073617326880932222806993173117920110045284530783122651063782655507314457170217544422329779689381019638067947929039598298402331145889417007848490207622916583153265795111468128300653591783773901843536692253861542401979668166357647442055688851556964636252960126941029311846248159280053162532580655986711241007775903013503124050135500794646725274345935743075691938678735132704292993516289100595480267668824935826232606529133734865239639903443258268554122501033834772057713722624137241743570698828591911574483804298837995099679305504621013563131088543899174794891160532185149934412140574835096864142724118256053770003950536693056184310450512599090079561553237700488648576141057245212756581689120425808081629828623528265541787999322389216133453664366540782129277873007884343244132953595811365194137569244704032926534109600641122649770668095637919369268962597639444027488301322590468078545583988930056038225758176211042170762847151882486395897866813416430975443138886577437925035345657826689870070403187780558844005358168614609781111253932814173977193978832352917426133534917413123413797735935847571261140725452605880591337068684172597054350672227322775490978833623508146722109047494486859473470987091016307791942699511871475260742317455313793287900185512325763785565389579020112480315777414956888431852336128661318141496873840539300059836178894856465295716999621682959433326215811018342575638924278483267269566108379114136368659050716885951530115949631421618491472799386897817942051246402012780964782794551838661199580472700362997268418080740911873597323207895555883663019853663382301731065064433494824901138002395450896045939845066556581929915309134267190668842962547004764163850796004541305149763918857400596771730106179289033681754699273142820260443842511693939977388223273335813365170760622609072923818015554130753340844258291422069345430658323079073092775832329418525527840739149608578180021955992502341027618100664692263471378225109101766050342839947569482518335919360039509913194923294279212402830929752544163025992901684739476639593383244055478195169248813391093747026942723986407694006087528813599455374127115809266664595557730915323796218798897899485992706879801858971344563160782875335190465754689843010553202502015426851813505221324671581153290284581456248834115456352798679238644717984075716455442255567288739347708093684449752506943284003049731521409387969261828642270302627479519948020042310926011752951120276117156375824365773188298118630837490601353575515489336721324085855731742205973608103897862180245464093110878663568597821684537925962924389756202634676253491247944910328337960533135008592333564577348515255173863611880665678149236830113592194768386843528435324611454979135343103602698074396169581146332238522144679501266192342135202083159633073967763664436991698031651475681881957452039939532884602024052895229079674961870528826433533762340203271300616361605602595747655448778523410001574683441613333354962556984790625749313279959472373529158556466083987243288012904766885596634487936727538124004149380357503620108792782549418536238928141733542881418775369037283195412988733012076571492523525114824824408160937626317317545371605465887902395326818768155393615879078352117354933069616667473230309835818521746234427827448741139067263266948893697964246268922121457550618765827369462227703948235312150762024846962575665442230802430391845859167856194822607472364949212613777628594061917209639568662810829203256148563894552953820156956144867786671097634691254270065483403394910559257073882655754550859088181543011401253080273963605028210033754874881799683724434801038952135816274079228792563523504702534912832568668217944106739223357290211385834667213613930256285875129120793039729209752726280492984676394093132453294662109560293849436379015868919822607652666297547854761150215218747958393475339125009803058653505817415623592917880091732583514613047245474502364251024832979224999289144678577109264268655740965055945616547945350912342102964065769977358961219384531201424362660754394666624734360778375523586601712155037417044705543217929669688819634648541101593927562054868330052711607463448076879498609056704874029705838969009003985476864187771289819951992835702760863816972615704796842860235920554951933371267026878310811846262508843935204706800072197376684543229826007635599338367793636352327405753418821087873871921673163179006417346121905456736620632605542745670305694245919246224785191723002602362550565098332072447942367922277807631368691571384991442780918791118297252225084070075523719159447047176122911896506988477041652915199018248237247286308846754553678183763824231166223282968413714306123016227108887318575548714176739152547699928860976144416886228861631992666083822045802185577776150843428511729503032228046107057366970168807457341244787706833343058979949673874685608021027824077903118207037074755830259165803788277022119973567596770394767717917306841719474390507177750167518158160839346593324306535093982376523316876293416739392407870053893486695247436732171411615710028397636028972814950442230982578982148464872340679930032926169657835568995615563906891554285155551346188603937308801738533994537670626943129491868649063062932091457327965439326142886141016599492447489698471323288722679867642550408591351810818912396540189318649151374938424894545542684259201932758328122737264120121688479225316186387984742415671085047324300271590342446437436853965736416591727631141539755777040466990986346360871316768047874098136711859686595822913673828968336535124137419213384376124778652947822476092781165668262582529923141065011673451084556619015853577972749712885052309232198348548862719548166146228491216300898432800458527842332112704227590199519551289916442925723463124109868326402220133806130172911491409281195431360664224667385603847601093636542230493417239293605437201613246331402371621890512850978361566676430830216608718594475490278686710965247543111046178844821193576849368434388571777988393241902734882907815751642868867522746332625385232170522387402871574847296387178260223258036559645685880881348521687178951330930711600592426995075832886016296538458797343679629258820774074482397749690684021094604892084724285682386129363269620060948417482073487379369928627961210440732887092806230402095487233962597885541372621205500073489702583554100554498935337474939142947555019469364367493676451431548918976323844710540822067935275001704709700021580444688249833980324354274913148444543996942282096858315107477874568638213664864845168724853371430640330638720452865986610121584999437232292080621836270938976058651740459169541348793003788720871112052367555525174608908758162656781342075901125888082235870522631839669889080793206879181345776165071311572054062949988723684933720388563275178401050161263254609443209403404980130214243091993275921321442646097566694300675787544337345966504115844963641433220288132893494810751258928203829260944334250206463508818724275189814431372121511111835906827486276343743211115711841056621559118371436908556957106285928648602334380768322739119678898717051326952652209843868933444822311600246622053964492988367377975119019165512694189068656561577128071638831574555866261141792748890869613582467223641642339468628231786036617517294170911765877899292736088782937880726742642283930280081817839470908626461013056029024588640471664722187306042563271365868339114735321289441241019067203243929204938033749532600245285311957471321641155031882044963345022441142763309944319660510462044199896543933057807651598634927396781671019133804056124914279175645943557991426938564635312633640961082884471712688635407798983178933865337003592288858228632636508920770737424574766990505617642875410041347434534455942479683474216304862281041757599868484036125040480337209614873757733729360761423645764940663947192592831398334402578401913035302118546496054284377703850354769009331460038015567312546091511159405582575311957638727687005938589570552755443124556854122871450500005399546615591456712411279695802360341922347257228973193105308723708142889126513541628715385059158585956175105685069928546517240078079954699346710132149744665144970508203507563159922832689473424220136919989412124142232356853353788158825343531424876064048394354829645937415269283192736824165021599066307886159779547705998984146098189616608355222114000758962434335670171798983404353661106537163559828652593741000100799154670822530969498324586910947515967451712693560838152374916835779615208060350877759901568484187296489826879588020842657250551430050241571513681746846590412897321769792316410927155294435455388586563310252232942074483254611777758067726038170949885285638387730720785993066456616321159145717827741825742297182320508551042421886162010630627876388667972077544140183721576497315869316943662794075009230965110901829476206640815856832244951115540236056798831816823357298999858909026549818405283457316826270713382466841398995970943660873804848684736113462593993345438518502711096919092419249711411950133032790011638052284305922751953813524933729148123968609684932392078585350627364975559551635543681243518918110381867722450794377952260604094835917692929988604648354491050666068078820524491745432639590817212386603223244744828214900107760653971722662616175829477535178172188323224421763077302060553837459590637243299085591892914837107371456085129754848308030470320992385115859499942193200860779709384558946867195088524127484507484920282822979471685930274948343250488574516409326229828914063845563859462820671706166369953656525202409046299555366779214432788047344003744795378018109834911932196580424526046313135889238634782127019852046671139152594392490614220974586082894271969732650013772820817635183464070428658899578401915978909828807597026741515280192853246049085804391337074217346961226362503303838702776306875205189442618147606254537464055230755958342059879181690757271595721901280647241464766171042892819584082428831134653125984250722595851053018990387009896093611282165564131627316336561472339488113303363038133406596845157903000174061669430013385673405540612136854278113572812288295328106774123967253983431913465558563378859924701407291747853658020621876803891973432006839938395542243850258350572840839044939771530760962122296881178800534347868546863006166274441958566918003672228584682740718374302100537994681877503311752138122568739232623202171578944506854299687876616667363840111099485967183980449332604476274295612052899702841438642939012433680897776928489898944105178375755142727849528899497862644738676458034809862019914744574795167757961285718313864765849219406002355100983070841574995098526522361788702065448149222238435755222703276696780020136818472381391843092872061407318993072505873283519743627680738796056840004327054989868647874000952147059444434132620908415528019720133497466318679120000256552658180783304658557351647305425442071435320797501704110891805075392118803412676258660380236995028601798748387322263068434571518621793993306399590224773294792678887197841428466301564002054937848814840338938700471706292221076006633261400531670208003093923662483282757434490833761817829139924053850385492029207797904168229604927560348310004241688277687609713377475766972987585183796311752065385618838990544820687215425778142034115571860339833619872987270305763748128270339064908679323255310707933589500018615944696617511862548738891818173950761769998496801457012230318486230530165640832000604730647528307126800334170344520463819073217240554245251215006009007086072606585065902054412360056445213291781252841231874291889117416295380628498122160801085913209105804975417497398636758274994482016861638304294959811380575290231731277949704718123181617651686064456070852326691717673225932299069189818252013165122470354779476520112042742446367474859526777086114967942337550320179439171244451925988166927350190112970996252150927425807291488066210568436363966964701885562518791908881330961096439208619532604039926041725728267306299726451712993049030756482694856372641581614704367291256329595036557574391223401986240357629550367280722116353501598388937087126112445117338463262148941953158382487258921265522304225929009452895971566771684188457723596046910024478257116709321912518463910497668854187861249384840053755374483875396953592577568835576760175587803888956270089479653577927210639274140689124593163142387372721862566719135693458218391234213082290168121598989804682176299419460296388339566338441590113183806007392981887191282141248249961917058283028315697270529716494511551570402429238341126678579395732808258202183033415862814673564505115121226906542455266848838512634871854815009869685768878288300540209092810143831546277342549916188334926287645960342183785617336474026936775840957633192965505032115312221782463149424945413956540143608887313289013481119350401528355025416880908851558764623315217916284602382081355900038672130252619873777139335974466111120839093361592715502416648783788177059850000180764885281224011738037728873396341607216608879066387190811208436915568578217606299350684356188507493513232545264903766653277288942528822260373996769388031666510495232071106546052211552211341650586215613446163960462356858908957941335983873888370556763618422557186287171849984118167244258315833290794658755947350614258093654832452724765315037411179600143255738095019398394098255004943320257857238948394197524850761544230129213311819942993745716421383841800683264667542173392027787913135780697905889038433752289707252161128961469462413150207155053793278817624694318763210374657211213879398189124169248122247428058669190288117877052726203061202567832237990376520946159895381086968062449572844071823864090393083873778388151342744082751115567622701582200771764317035391598259641564009022492943231991565841991474107765200575873999129702544828802085377096353385350883207625514992651027965309530386713949527827684531129159730003250755909098361343718971909199759445612508640341738663675746129384992387221742217789427944703753402518930044612388655488092184342448734798673108091561151169609753508977884910279261553469772527839428591961511254674980404877452678524248803690301889334912556080870370987685630111382589640129985402821194001757080328710228264874013785731613020491012594011786268688564022695181433504003406302030537046661507414221625124560946902799153179148112106162565667697833727723753865869259249701228018648526018843745530424414651953265374923965764666974190489858908697172039389289929247991627209897469603342021284206917729199436822889188628212185346742464593538258418792789758288089068409312652674992435461574706140983619803087575231338542997989142830369948350437015011006223048158438582771746378283976233152230222745194192525903018045909211219902680444670670355457213146496340766820292953536151407872713031612300454902750407229548230609089623618173102982512485758307597987436558650928424533320016801524043226582564262967865879566823442693613587473505225445556236431916154416394670511265042039511672044519576340999894238669669432366069274078261863607226662541963618601320002234278967947078986834389953254216420812081919010841359365515223347885243818931648659784653380365310101548720088359049363687395303900932605262474543635733918404809666063763323650251469440595061638786176036925746813656601794174932263484883638515339716885497783092842619826929728670352746401079058412594796833084763018179157780539926122655144032365214044242660245574115491866879058037784094315539020323712516615002667999341198044602183785160166549655559507873367789860696278717004100755575697293326411861475657675307156987383954993164212075651084396799853787456266284615796892304167895946854139158157392421987640205601272370374682354095969089808765343356945768417936709806711220776441960286499049782941372757316936214166714264418816086674758546771550289465670966692364893572421437488311040894048613283735695471966774030759932812642708020844162890393506398167730540344844320568078836585970364889150309401427198118925355854306297218287877918074870736787528990720557526757619730406717546661984686166045925877017534844276582553941608016875535401859843716830775018255545226055061068662178089803182779257189739068707671022971883934944620881751582812220330600140121768855115904177303583590593139661482926178421762651708202020754786618583517707191496016881243692324965002095704078805287097266390979027108441598547581321547585913669139567701825187483515453921040529058462330976817031145484464611182536754260646838913777894195960439578988972907353483174782877429102768691464470220551742635453493527167857875136538519377585151444330805989496500875836577244480963833061771060377331757553588341635899160280410891870064913963329784702052195224498822227107920919955994136535452918174788393298981486322561274131813903775655350453791566125585851887008125224742558550828642022953796314297254291347901651102138204805368790884313304338609853467252319335738189452424977889595751395184894311707698554819111789995649069988425299793393875371350638117893109399815799679106315384486277008773386492307463291833776474929739102550395923352528112465531328879368004949043120898224308441563987950410534424916164199214191707702130304395233418353498816362567311301658405145231821274897927109078867595426530549319342518948035302466572944939157401005963022404781971573561208894495990756932933383898019063395070630795014760312029407321813057838869356248743356566532403964133344125388051091369045074479856788549031323788383584557384928439689025408396719858871452429040288520875194826772507276289085725998246009552320095854905087419795397101043063827834733015178153163699461035649600658743674390438908143003912364454378927518087598313769450425623864165815074779633720417400381894254355749429050557810854767808595733359434710018149040543839783219544031568943348309772584497414337718642769810852879862283508192734973118724346896350520300758952626569930863702270087743926846394919401753349257986797002689983673603372788552495971712798779855307654389396864503949474834562243728014337337600160657859950638998349046246965929612062244889939188618578428301554639603748520064331697268322128449116268909276240572852191638227001381963182642487369458678280595568995686705661696343584249345304810129465314792385745746287491165867231012946833587104375234380800678459652856886623497502572146676907352509526383493696665352271816266621346347344110783808431398950807105047838036056642665345448567910198087007798839311455420924183805913616715972263842458040801006951996344235157051508524134906100330032068982366435804259233186075024070859561522986095064239028823418165771820321956313673821876374768432777641163890180499322517545135899623928911926982987745590157706036960198328583440787629680759892343721093933376169872358768934197031027729514440200775118638298511734374842506167696451020180696379158794455700686582759749497747120459292829875943252366644022643505023933299628851786716928655437052680859972642704444378598567052876777003562195865305047753750338780467208665148963667019153338701010255131256316585060422830965459722418124651489927931792792415817927899654884978021218217854614308120080984491559589923801484435487158571659783191763498527106396543481211781086605556103870101943187586973312552651026524781607733844237118982040687637949514534284194444764928065768538214663440524418012853107566222438002887740742178461152254185875906512337967703565884618295027916200485024850217698580642284115113234082347013557463395310227110275147153920391753466675609781931059540910522833621643285409052079074377778153446545835780725843636318048184588467110417787509967600981978646311900850472909549752794520210688962684978098186703688762618584436033316988117002268157661960856505595997087793617094007254340594991693131051911700642458315877884629512382439117184415112976986321203863993065441412259462630755614085173604333640966724297671418516398543757184471756573626354979760003550423405482662662083973711262926759579739751095520066682221517500182529729547883757248511502010623487977129614666511289647218753017853090598310294797740226158174968307350042215777941847988915462826441675112264699933335571687501075903501376583528607307211574994878641112485820479122250054275633728003638057464508579941830816823963779887821152310194153340562243912990183456573131321377072069290285059547786673341411110579186648542759005705791238502885225712043948770359408918986515153670469632909264537281707487577192607956529891883500083610583601866409678929492179727997848027356789124353331878047488782759841017648457602221263569891823825050559750584072898587857647727154563356816474570284847447189145894998784887196691712240483580184033655479650411669520161017273134269549491092656196843038096038388906747550097171720126114676114514604165727743049085259654851951874576537456936291022525968724123972013308831429188428246090495259628177626207303787755191513223689875718488743340689858036370540875063950076862358681972182582990225992631269504703203626475599343053505442619089432179593368508748092505389206094440336443864882236264666399291956355100185405043181979584218492560367895553530322443007808489760373896439749867839206108529847048009264433787610962670189579737102161601292784083917586130222155635817938586111986225167509630119169701081820793771215202233276237036886959568293230589620731622936397284315757100521206636871601494448840315017503726798027597644142506453479874600778197879934555131358086562882971535542033474001395558574127547426381098009838771734471293780706200599232465751433433926556157980065266443573814216092668152406057400682381206362468470960908140293244981095678209738218394609337057570068458480775940430598252451200736015994366505993808674442448041493929366358945412044014941187791083050801415647512407185492171354647867952189828926515556633841542406646748833890633390824179020836667073963198231076309167566925148184863749772771877148338773501863504084552926795619986399571248751198007138778730454798742186482895686736771669138365800932881689777146026652534180521717694650455792509884741682039695260833666519646506719348072117502167170467071616531167594527224730732282571885793622439859091711679403201388048860007362629067009784670473769656448738728865632292806148932245808543896925853831924610417754796507121320228477948026648461160623161550474924365675045615341800992666969322458715040924119014527203627185930902940892616140753648201637636923554889324342152152912505093311248203974015942803788832105193749281217679334390763186486567403637812325572085723300451145170699724424175159278997328325556945590540980190741483569106130471963580686732020677960495182934441198597875587888625272962214046294131601910657103752269109713637582004614004503922813116429981771366799429426201498006061839620743488034493907249950467216554197010673987064969966695668276274273437783763892617236179433993816168319960323119075550448726347969572955698485551959402489405929563298797893146130768773596815991692232601599986829842786460683441868957715280588483284034408400896143370801745793501142156529340321049351116046552872090938539431867481399627504923974943219258315169862835753148006204819230399375414310821861502525478535261138051531627898746900579606959693373729232477035617626098769866757982063454148716196463356035171432497019892895952995685665622805291914333744711934949615590246699130837087597310983178323233972332759429593744117888681505917540119633660734312266897454860713207578403948889098553987048733975741035975519390021734751547301372410255581936155143644765756270348863281129488472893967882180477576663315756263847746596013161312721333179328465710604283196878465461818693013979935362019144802626609138322057967087585533233809730054339517886378788609141962074953169227290214366220685753158523463075989494959759295479195352347723728181653855713622023389513946247267691840316755548593618412752782838796243237238209857847613548645813000874465783685241459460096929609532157728178375868760619969778388817688457946233186519432985289292490748370022524261962310149622363733251275328996260355694408005791649654634590667563974918888888952746828059917544813646655934747554144452325278988428077429870982483842611695898776200208987956798872460585534610698104089825997694367279692582158744160654904316386807526117128686774864964113319204439257218949080948112005176398578737030518407113966334420396062677195576692639297229046435022559798003237111009515068762379065602122446202605931111113016681008741473580068253301889345324230946496515022279805121244877114023318993935997849193712950203922246108952739947106593264458571181257927945568698398252559669231906117331099120660344801199978718202515732046788475726978250986971271621731461302434589135977979961032576113150651467478227212547369858251599726219763575669256952171783457270495665871801257053291204047653636174407877641862537403507171620350870797047255340205826457785043387739364364760320435703259126226843892606930302073495884196397019271622108023000138421160621949080869912064191088521778232591427265267034430955512312880593562941318903891560932386416265362228036034971658309129567759686166213042714926568640207445120723423905310608746288408704046164545590875022305726669498124074912996576043949729861384377806784542782708795057668726595250928916954175142803438009176202033509936970461460105493610675529062987715225464483959596325573714482092843372491636921610398261586110802411618993814013160966056005326576841083821367157642181381802724613106706470603886678531419913466014678034294007612988208817080823541110851196901628439275321552298595548860839466823122212937779318625534796720195810189670558027655231362621830867985140210538097172186095628544347473726405348092638265638387267169165759273340796410602153347006637022252246451944988749353207688385533535759909461228647151871430788258305589427341994963346412044030977867535895189249304353766385723619988986340983212703364538057176158256140169589784582882618576192987855348332394659889840200482775540627771551580681291029051711507279817405927223871177656988938318750181589605291698721133898630102698550048369346499995900727455004160064284868301590426156240619280378555605734891017366651408326019248910861087150975982224337558258373241381130178345639078247130789293362950015701807643233546562402170163710055867533647092542024084247392128950898322517680261866189114932840659716578100344567086830443940224991750145371193448977881262475552240841790054592496929082734093960869482981530972377825010464107016685478764718539681932245215956679972332399773582661599983114552887052326659931558721898801796184858300347129710281674747432141119230392436015925864407467044782365884749773841600334033572453737378389082501396722227811339081385203273150190182456556221084716517130842158219448480491876141990737317554842356438017215335254160688686979592032802685484601153101566267993230012521273609144189087455957551391074917303895474427105361829415622713218099806371572181492563567410145831236101861146899679324979466590344198084610992060129692721108810676603693067969877749495881086706022727988606730057413904880310846111278152863041003876058865654001623360703244455056744355218938150583699191352567512382016275862037756245215003305830776861666360598300070627978289564695083558135671654879896284228985660963871047291511555878609661785538094096669707060402628686165205595365585020075592694646565173756152802724646663063772516510993807464346699128038951360808624134202401520959299337826907304347639247766407486840752961638294732741549824715957319898795203761706713454853009750426740374870349028387312748133602627168030615104984389447135305666652494783308501789963633394018503655686489794918688907849599172850478385000612421673128351053773694866977229672208426051804594813660483997912828259853420189694547965658937042321919572948476241243603968464376019250188337319102284741113795783222912350506693980630762815652372643660335632248255215086890864098329980824330330220317031661891023120826390540029266321741823663336044107318227680834378661212791837245509601332028957496156990517602950326650609824411085922856825005239087147093930907922995296891151121967941602581319442879354723592855121346560310144248509576338840594939165445832262488188242995253163608879608890072068536754103360984059580754523682796944601506663006148832170411121525470172170605858649232051347962560740152211507558490206922222174541556260429700429142251261469349120372751260580499415339694512277919553952942350177305598159313688237027663482599049504985995959993122396579744629425245253067770236497691923466049433470258431649627812475805354615851339721095300644135967372707923623940957199263309576296155155939756213014384812454389683957228065167546203780984798651018688303644902677266466956363809673017369776388143763339009242333694139305758619479141260181512776988569019436909490719408543062275125906990326814468072937366964563197624682834439443884055913476800840907177931738593388352000330789931718945094840058229840225982730365284346442857401632830813487762287216811315186335018224875709029917162253050462441637529567306809428291233823502435780827459227546926563990195388913186918208051768886412844690265194629066421221370919243739632253738011447961422362291781904714119856422441047698526502219051834576891918167379980648125568788634182286872171791870795733945768886030884574806546167039403088776823906515078394071813235942983410725845054029624067575694990828879352110981082804825623194333430412701956631215609750411624506670392557046300394402284250327081221854249437308277544882522048127023731807997122382999370144003764293945156389845489960538505348021982954773308108949447659350132582969236909705606078420098050139379491572965097166135983933462885686784974321145850448468162269702503339424820713496955073034640897715683271198206995740775699430850128683593065952117882693968905711940812331008672581676452334491723831816609943158557570750398729695334916019051155318613392891086330806225135335985846543098706966923687589245131859694414057807325904476576664099054063221074683527782623494373132768601080139651839735702051210142175035530308487427604201206470815399718989259396642288176452462376564292962054873602275101434272847044159169333813644221018667848239737395388123911060948864692875138950884732761189034127688106643186033092756242753355370174091746478883448934033462219105888707524248250066533035091048629389917446243659835336873719835854906048535981122978020481984171381588621768314223840443708785109390493382238179043824661413652159906887351196611225158430542504143022903321384914913628447434750009296206583332862759918941101859812501950061719088696997136884264636138880361774631021239117855053737540032323161182703629825792244508831041988182744275704081787353258647621905115248830593944754634510930261762683244693044120076113564474606039217621932995078062324435861645506760730879057558274713527755106416407075051628500635545500831533779972221938979159118569157710793084880961534012745383912122359622471100744320190639793706132160292966082195293202886774149831202001574401416403592796713309387007661175533852890811249622369977506863707808693836987593573267073850799267687720889316991277377747296374141347040543748469618579637714053003264837090218019235730007637941588395692923812666784996292080520306088392903690313444854629254287300994984298873067218959096769326377447387925761106480617816852587803043478078629706101267394407396529596567960754298744150896688224362028041155441243650198439289295422674783177283103095069521921385239404561149486533133364372490829540675987342402403667387279697857711949979514359573729926853000284800132910726584080889837441132434940047100084502722483192448386737239930120127609570587240824425104250310331918488803924238716695454839192653509888891204500015292531665377057391129787638697031582143083889242311559850951319046216410177981703117882834251709375881816875184887509146685589690370313474646979612100559959013960611384238522115530847254431620153921432613894768140174557221951922386103498061159692602304975070774297286436601322798985325000554146461668602970140267911850141953662795309139857873284204959813791211492342777059215198911071399711687708679435359913659552904365454609122738150413112654608319196091198964668303374576096606172125839898952048873203975993807444341684941599947880535923417571353615975112657371221934155555922417067737302547283016840223196630011753063777328086598644864930237477090787171603721558798394252252320102322609643592769155125869041385992342608957058251549486387210252946147760903724951419747755585110760687462298338294697528104287241718350329338203331819552618572883399997016871490248479412070010546490311873891542040615489657372281995001773245297435032252041789427466780499896944255459054410343923645373045862416458846000729806194900221471682349444895266218788684026029697690512582334515602880626768657240256348770939098160769203499550589497177671871368046140545943835918665129429160369395816478946185252224919152500249041606506010078136187274121827332914342699830554000193680730314565423971903330018402440714722689683689386337744052334404744328131236185085013590373416670183911210073717682716380744732354702504555633977144540481037369779622159843829281799997213669115879006674340256256965560962149390251851311764302522004337983073021564107482775842331991677356628077090404039836827629272532373857837612053672165116256122123740691432087973997257783893143518299063700951788593382426388390583135446020686623442208504379100183116617895839034826010658092758747147445458867212533965596597848609756948895483569761177447029764496501608349344778907560768056908478343390195199107688914490908422732970203408558148460146052720466093777765750697033951422667812725234384226363350533789932521150138596570249259394033343045099177884950583146673708043086550834292928099199041706203016772335586419912644975953515738999719554339542960676594035401491605489567351102128188910097786800587794793375178084520599334115280413864610798062680073886610507697768563402472099539346707230695184425437412825306809157661961249142493682795490933264662320801803869497306631643019468037305423547933754828451719544897093565628941185151225444529317189363580612142866789393818079131087688768501273193348928981939385376354642570020418166790460158625219106780460468079881625794105590642300063577609595270666017056452116468830845930949608564190090934391470703724877112435348404395409554600418771683391700993982968752082923450457213867893373333683743058455725687424049031447836235199318270030006382026121349187881475119286116012087191267827045153462724516800980445377001004763115383524771455232276771478566694883295025789421885013734179395266711585726551611664023734097709194469339984727905324567724947553978604231926902374630543240137748735075142096682193763001529082928750193125626246285185712743706874188112707585758631051602233664423919908406303950270632284355743277899559631378822771177392235290751633914201545579813241245370963869356361787946085342479355863867578898625031506000056387567316081988983004803478466709560797255490898417889773301943919525028082163989148473156840796442074397748795027537602162753734102333964672653603631004966828184535214044802817467431108116909916966511005567293517410003731457446311858542714312941631337400555213681895389227530961555285518126632833038370123554953399223942789196665078091969308030291953835390919927687032217541223169573177136089946351928643737587155037644300019724020822057618246765244654656898760026787797781948333066683282830921064490122400389497197204181815308086401577151392079809271969421419166567689220776331484564698253282278184941830750282516425977426255663740471757103465063121596535685317534516415385209004972356599438754125639513194467723334743841300004865063997296522181100667563478476607716025414614091531263134863162366801338481887973464060834886579413487464623785513642809001495931369394858563858404774478314200078877518836721357830972175940193600292965774534113353220759233274140883405791580477549165627526796433973171297701212024089618370324048227492178565916645561652035460420476607861805173145542628492195263844919898081426329867118109997605145061470591059979461678527660708127089141897439001083176017745073739213632468740958212443656059681228634870215503924846005858403899191841134414368973219940272982616904550418665936993723588761054851918544768783363327638120865165724714852501184500267013722387410916826707187694554882167450578081430540510135393403436511459538846664937109717205919455701513704010294383528637153059732014669663189016865813210032846729249883560800761747831505156212229109653198178976300291089545912530549657333697991248569233247678635255618920848840514747006388001598779177064197945098928734127807486533656369719583197237626473015223487970296970958226115815429025617294310362475175841269010267527211724530593902772102962721810377960270584401413992886057182785098934284751261386444288321731147047350743471107328034210992501221198843181145318611438784766661605363430108393068058950736950010797769446193339567951007345076515910397744137558884010094090364391591279674252723673283115448422837607120609941751010095458589923736815167131705813184609980791601526055744928210325815996025351813532170626641290301896236889320407237891205429445195827624994303950321674663197060564295266712685253298467705451091129368198932062073683654850633707010211664868165167687395713491511131321357355772943575443580674856747346236226327903617699599118471633928404048852573501816170768182094711892670017776229727889999659286769096747518345517595476893385980325087071495349583841062181517584246676491984911678115917754200993024338700037795409652201288653266881900223621476382931852529690128024011578080824779246260716047780873479633471256327629161122400496623659101045230409560565174086073748168086890319991033926638900305171366014787216944143037489607223217618473455307717862862149737103351633939306481327897126257939628383536675733472516681965239709229555554496971625717373734608769536560463286335957434364095137594410060610850568122853000802795993132023405606990932391064272774056101611751672981523121275925509772268519615908487294840810756846807845036187390907250525293563938346108664905256599334846646768605121626303955168894465363630478852145696736276728365013831863397606582493550683262174503854137996847658181025554609270903120139599069174281212830613925311521733313579674719243329476398799750241045559796640942188503024031290825040125204354974762161818736582360585359277577296384167884039307786157047050959368284281039668823289307912231228364943264675766444895580345766142528593063252826276807321184024226175495505688418393168103185257698420674722653320852036890985662780736272380375511323535540276990690967370146186064969834696802348755715536744517124261210145448825869701537627538525624562490373501760195583742649438637940721237690653877563020792366983391291791867900024762253932353679110043291005021154245012637243194931053909320255238249374415365867729438498006745371270719043251685577046688294842694810265535393706093049425907753059106037286567904952902100512902435081026842467619499466215536310405316443441870222918278268025480039363110911722564044417539966207060927108740702131926855097960988291470360075424577956180618991048693053610264131736738195632033956609254409768197275691418951971355083650824721892190242701130759127032807438950305697574117060033978432061655276152903686810388840532793335871532473393016933826787726039993624887235439601048264707822712338435828416422722318378070636218190308240673821913267242715836079529791150656504844130954480239375592800776554098514228379698940750221457963583190794630817518655312943167132970091457344697178754733737152599366635730547464736412466188056966296725177679299728723241409902463424782837307521161071062018833846602980512780266570394179839894069347193965372820215660382684941870788770415950099500629274417300508293247047730422697273692081668028876631959866651340500033304891713170212081867682202580124862399053257237665732497922485423066095826002043370024144082569763272423642749085214988616898789817659692950542916012277461610387716823954791880144825524210094054116159062026582749193932462657845564746082515565385934238081356213717856500176043052706404374738255475115116216982672181116406809516841701461892799916135745735966155882370685819927847619130819522335205566729396679560734700065695326602980716808785656395645264649751752371633672396307241745308469707207364284505793173485406802585990359614837887629908698748773727380488766313756750567446729476560630086191731981021096208475984522927379044248473537290144322385615413290496218208880219719250256782059159223296614229842133872781922995484949331805939730242019737414193415454162460505810031738916217792967046076615075881821423132849877942357541224351285828327110814760447650944594148482945820287787651639243282341022385368745226174088139508978470972937137679536622283689125294366401344899932896236487613886908825001598260506382114685313595200042375424114782156900766682531701723098383218521127650807689632309706708568423268184154259428307719106248826875907771245260565087835859678573787043792913692205242024875156145696941498976197414885407229964149041839745542818557686257576602483498896003694466677519066336579195886332909033148206956401061954997598560908946866952855510180358557582122093553085836848594287855748440808950192645314433475051796487598021018657773672414787947636781925413112007746534383081883120663712827253987556601532528591610551107430613450145292565013244670062076583874392244039049943984697267224276857783368858781161848072754837243412125162446341616025165348675438429472093827705366648271642138335865284522853660593749190784156005455816632280293110390969101079202599644354434367181794883504413998965776616430153187999819033748684255262731169052525319550033268525621773991992603796232465595034639908521160474022166146129982342261487643479825909399349391029525536130790745184636554956051863692027467596406452155697691860942280351071284589692637479314978648936844888207969290141263313103259673420714448574754081348237631336048327006425309627683552192864792119933591147829582423187271009012424596729216275526426997127876608172137789330685530644951926618226131704785034532443971699609027155181541895149808616692022401325439887162515050882923688716798417119343257321197453540027960423433066090134773616043327524360042823460068061311566319330604735663141794880819662317558888927957395934815532566680956975091534073162370231140431120060099323373069491329375363035744827413334481399408411995907554276814573637252418167507415641402001126072432524902895597875318717250804881015893509057807004757847036264452211636942743865090003491277576391877586436321265884000200046261357599180642580230889609906800168683449350201056697442416983301874733029421707618421600740194832566162003849556710654333700062098563147208081202785408191172797372340970151983489795192318759876450210871449669816878183045210610624596022311808823880832163894614445756460031671949550796064527208566996714635026250816644422772534510651850937897439510580223081825353166285425880207121217156282693785065243223079443599256217128528790956444319771289147263784732766518672728120830884254339771148190272218493361244193615505283362508484282105371907836181608608200663295700025765718647664279217903908802094210323685165785064149448937199668830283285047072581889097703409117251422325052882932414704822033216230309709537268835522326832335326061966742857373046748274230479857838262379796662559667343118806674236140020592590787044855148461990171694796690075047199231791629162914999692798671745789714500745694688734308319029979922264922338716517860599525152738722625976298448323222272935604169206101984931413862909651754921139878546073962823797453784350465619239863956612693998275479172261296595647142323286318447983031674484153912867543065179781481734889516099435683606061632377013074388519843072935988361842964889147020363616033629835916885751187020547215852864079348052309109229662264020627673527739144589991425864581796151780188944934079898855085511699537995889958231138917932905067526804106415535429088037188477497184496323976399931701993711903363211310346609555218067282601032741908980580584643546341657195989039844084344684550843585014138404510848389998566184916138077393269628663912750747595406476929237397364455097170312793267358117226650222758235359144064734449705515663386430838398303143409102473877871337036835511190546883943573684199031103339341807842387324898283583330584901205563665243160409378351353555856871618371550162319511610214650738549091845239003738851343748204874448913062265243361037759074179355407491321667764230204252144527543054116442293259469577954862573686465886806482472952070422209614359735883755575968022056868877281711545632103381789668864981168128570074482084524919088612926301974777343201531848698556618310171887268833002431878846717693056847973836796844258772025644994913760366584329735902568824986729601202923828177476878345871558306396621125043482907750315446879089349237581479599885846664261949449367677455137866629257521594885013415663275084842247842959981520233737264030244274644182458272916938943189329727959278334382583156404318184997908393054078633672198946688696344246348495458869809231497084462735612243481181609272676382360520783628506678563802591788633685204465229264175910358745019073411028642426655390076289332395471834916968766010161431803455060195747868006597334042808484087520166546708123832756612760858350283676195963804612639238502109260635975076809373856416017949703639980882650941653540456453988466232609423860962529906422506373498657083229480435226120435795414805821057641696847302676774675033325225115718933392782411507946903675365321174678775802788013084607384681088622918586508754664232156572155423183970861962208671575190853897912587453213993258286990444595892456778856295642577613443634708890443929908147872179907845566264768757692513030698149354513825223144776408920854048500500796792408434705342707582863811306630870962924100775085894339179133219838315873292867298061717770999939701251362166375224230599146194765410898462413840811499725265574995473011252084143209434482903043420944331783772973620654263965133846036736164102333787571161484090664030336995520144587944647890723599111092935138021100777578203571692647414594898051364038959924575805266661814037527542776755394387012027339076706313772275777632115680534783803685414649495194891492210375357023063783556047767276641966638884594178063080299745583180696941635278314870502683893174665389052416004403072870071198758890239578304463872816930099462489458290352026404251067960348023303641602207093651645422748192846263855250313266642095357755253599406768407403711687832647991019586922501999038817069856601300225382133564852134168621581451962775831296676188392390426897299723205314937491261007134657919393383256330822823277561776257401792795278610899708572450336928577126488748184295029954885181264708678706711294187388852524361817634093002624770361004908985621284191228958204681620497170070695290231086905025966729772196780228479996377786380655654628073033600661166508153357454792235501760531954080232980943688089410989012705623772857390409942724150461390587301137635313767059399329942486924785461920801627681794804722556708650905884623252145155440944439179959713666845515996269726441455153231162925299772498200285069318408301407251518706818907252963848938974249491931336190302903169160796408169893519851691324419341671072762895998645367829804033917067615362593819945346505147492913719868397223262650452638883033756318672341917945162374775808918875979668690058189036524436550060996547131374795282663720470439148332267784044990327510242317445939557807154180969190596988520823309851100052643698849292522441418302963327090856129754798363685857694609407669900446234393088012761210904620370560137997064346616705061657255336312248328364674843396316317649225791282805463800310794462016733410725387596862773630596461884496434487324186457458426220416554734849287163025671996337396744625777037972816720743433395890423873785391736668581793470225911626493083221423302314637986076698348119882540925766036501261519819282684134134039776107965333678473523285194126385181669467748392624390696725369842594987323034366806576394776497193764083518603177341205036556561940373342581042161420333710659448793717406805579230876988116609997623991696355039044726020274497005443835448375099520635599298489471210693699798267894476767309080609552992338691814589461228513276200935487662818396748605761417576155705418776871720806942090492404006018759490067067100423728241350235779263437837371129401424669911512752531673265137639168731191027165972606477520728165097211680092567123462437738958069652754120804885163360551665402746405454667202042177090432641748091774731425400558106401116185943553008897444322064420673149189992362253274023608118234366925948079437312053453591946838657856005845211475607623860187762720096815149929060754932118977851471509293074993622980904378382380346002072739142822396306595604262928450884095652573125640085402329413225618438721867002872454805849365421468194667138535607643812692746235921028250828175418088938785729352407956118456291986126631077942706646871132437837951094011137760835064198837025234026835170078280228728511323095369808524393835895979302555782713155852191173910004826170669636598282435685778704963447054723074613289575370803796134078348953413602619054073898435465633355476532680109303166814527561767819690754103854245262423712330694813237486877190385005662308540824399712956114821276869458839873601217453002882347705930911174403754283841999273794743182267235272773124782808381215365421869135938134073269083962387350964957644059816269206556552792039144393011005074701642656954062660276576230556694769708869198533563251795303409789879254955323853853165700836955378462641147416934459228346510318775589801646211933675092956047997689825936341038208596595426708006687663145327022454063436783791538363621215859153522706786987813973907678379496870043176013688217085010866142076004076998256238293290689972617739402040219668098301386973280775472688363934851194974926393416124268802893053430576817341565702946545135050572812552952101101939164227708576949466960266038949860435592069090708762357450060235211509427800645614411310419734684700559767924239604372303715723630494129506008463983102156740020766389679161478531127158180599694742655531586168226996160364100645455028395826855297912078809049633556126123240193970544647860374932084432208132520191495300346956887483136046790771168611689874175164761209884534273025852735542130958064334328925389241670639295099071818093280297099609658617597280881213533658258963768280436149080481874758633885133770383981541712316243541752307048129180516943907510481435344305380797282922995797259417174216277083460963959529016694631967759896635090386258006462379189096482927622967125145440837406469752597632319582137609513145562776317883290408269915899506395817331422153494532685221438153570284038724000877993969971830717312194790993457800055829553794962486020049807867275032789733849261812547308788830118059708615535167171783604531379412144182523736050072170889133910210976992726604106164367895019167892935188977494293868434737742170523104338463979850687801355513469173367693268878061175907305952551615255400907677315569429948502176590377408349247892649148008599884696778489111866953886686278365873449622598810207748162842521213786275148231026190330227481376629862497970727214635793559911172144008410335239592311478268433880219483982381441436434938199244904354736962355317377055506836526937102420488576912743659309767643995743732472518450604234798209631515677050850022433939510758693286258129409923195513972804199855555157539776262033881155871086647339686833111552890405485731519834894486296181330060379760848000120277350910550676093295734743476855483952353905237798478789824183246799610629906997310160699426233584677524972085599182001033174238020804145075454612164016785836361923060505357147630758500664026734597146493105027146847304784812752423866223405168960527414821780309019103746609679538933470106913414062854961823128879717390043111350902000379710427263912635009700475571853993520877060958740000992524121693523473109417789372563440607614215996897935382329760000666426436421378385841100731298604378315750846791323917621274529949256366419437057193167277070796194772404432392023897269476181984308405927166851320353395745374917206129185759456102845472915554889657720608763471713913033377603174106776982094546612897947314922933815304479363881145061020106463214458801683044959435143941892767793818320122873372186086347543098306511547461886417583622841007537469365344727138075160790062481748648766716457297664461568461991338683055710253986043468880488214231775442669757882379322452829616999516123662033184316301554544388541553477143240718206733943949458956341826119348663416455300745963601066420249510452968117227764478283708215616837985429713910882195422385929077647583930432151826181969106124571924433861559585206584762858165749682654826940763272024141792999501177616837971435011155874740469569462773165997371866925148269494989734141656151595561180649057703566320787069034579215870634893420762123485920561371826671309329914166090051331733185282799172050334336751842684787384744953734690938693226498069941954811127448742613573560748550527473816328932426855081100326080515460886250014808415438251231134837086545571321874657544553686382136243440673477024507314320676137701964404336452991590389461288125190129510397477813877773045320253852477134260482730868932084338375265568154262371484917431504693564218198586881897116456885857342747787224811209394895958645217900999759426568589844255886540667983108961540905285514371322711911994137740204195958304749856839518054798396311926039395169960891800574633106940165403696948029486392939467843678434344810409636567661399954140386042271056858628284577981091906622065613520162233382104573396253378974479774919974374409392581339805040559760382559856587844518223859053662155513789033796858359466738869910174044574075380668955928770244980114584173064978074582173476739468745539579239323454086499785511262334838285461621903466690002803238968661837636675699331471844320940781456961029355685093252338695910378515357077388809119345652187831719093375509003293709835911955891979860009506541167923180875404235895485324293701523323732245627465814743331425625767203798224548196311486152035091325430095591417398617429373774466353017756846032308149005047794858424322349288302627671037360493344105134300520338745854082025131141335904392779843000641390713025655214804422442620306079635566564041575007663067538595336346736214299609314232324801151841015176443701182990925894090944940422146641953127973859691895978616135204431985997194570202625081768874906440225857274657123498409793330556738331026521901687143150037742919699942579214291928239673477695051690334403379092279024718740906014757463127030785577215717132301310080836173886449818042283286604920902536416241495551132416214554697041762701894955925218126570552387255971588609799677495634861459917101255159724323740816637352351984129819515716349805806568397491575303890904909728613722593389695817520299059402006496000427186519610909150702335476082883136316364162891366941831917559231893856321844779930163148445343578421719929358621047463544182384191495246477060362604658971906274964247725090389678876016537893655410996383563157073956466879005090455828324945040946879919165660548794808686513685093876556649570400590531283500662093615081158701744774249147684970060854488532025085678464637342404666019431418799744018047840751274031818326193756355301258670680148411968787969576300159552702819338494624355438179550768431910334551918630909018912280332317072082108937345467221152387617661447612935754829727949266144734953864885901518022020728220491954643041327671360448977565182658869599097860102771274337851109165150810888801388073695496868389507373546501623625012681411570369484819136355404822495872082498399845837494331252380125166997274698221052446141018081745523072201588419932365369791105821631140517350508709879791702887518161533452083387271956298005659633178811987090926375025193624730639449878740726425267481837316997400098799119248986713051338361406483023003028812088478321200125300984421242311106372743444106567464304358178074805846813398985245027629563520649049644611718851519102869868842933649584363941464711002433020239904478782946393300860257024418380009406353820122605012956208206760268666193692257461719145236836266707697206778951176738795913729080522772090884548290388959132242660936043385941897731003711853154595881319910698724711421706863009617894009925435932148193920441147665093689206260128785015420888612958445571332953898880105283554043199894160128998827509292827234229331048903385046012175392148949985738080780306231444183444830693420527997159700560973622410310981099979824787466226766583941438941016454470402350652223085164122135699264083203368592396713927792277109086569805413812760056239556782659346065380041104810893419786941344353257105450832649883630559672934252578621220217918542172718345941876850798003023977959834344366422453424186871927891285548992179193950070733314423591733702286710051158013263639785804079501255519153193552985491230080296629396261936775970975256970892325954089266548739503322877965462965049440589392530155960530216532355091505699028123669568965589743262744316473764717527377611209005164196732164046369497466597816302944728461515480120621294276078162431323985791847194962872023779587621121386853957526080174032966233969487790367310895167788781847427097252778195240588084658581531382086070212937618234160594850586097917674135026978948376727774995140568986963278852832787140358634912932877622391589377254240965497145639253509101310997274742079090553881403590158850904813061674780563832616584985249151659330091412932060284199918377582555721346365255512452281431221157581437421177007865549952987889016909128419882939680752041966389099938610243580138580629316019000013599125398803328992698564488303206295004758164192079698537432171960276758378096022775326024625324525281125361033348258088996428541614412055853098256168988052252802296275813719316526610340436476024775244450709921485490898386939131993087289942755887346468084952246904493567401804737608150936292905243992501063596541684415530459997482057237003390298259268999228549590152263729444112343672730805118687909068639023487652807760181726544450974735954133778938640853937823310491099153236586855671027743566475509012917032856937476066157014734976694568263314098110820287066552120667780760897539376698839003080185646858913974402504626899538532449030074111565860037266821311734189465093368334143489273650784634535635782513864228144786276774535334736954830305268865175488876221488023403708792697600003724664420788641149524358345792021137396775436247466794094433292050687372649851867796470824304843487968810413654114339935065700583889743678663812144141239402185630331305418641629890686260258515004682350254188215677147537673891906762052322849486537067935088248364463486135508036141232682445137258274083863860070861397768208554967348817441146048192471532645370302649946780043267976670281941762688551521767853867743075229442940427337401585429837799084690325217024694617499194070733264551200195968863465642739380953291361809942947926789714042918437698893921649864835393680243802204693597993590614325027747971553455172290223171118989013103271020375247925161524725742557016686776896477064185925193197786943246604121549831531716680027209478488531132399079820071805327825234892112197923585067848115997631449626582129003494100623385919946988792138016799760820624231726365153794090360505398914898477583324784618787485568494766995178872812588514885362264792754475586956895247273761286930791971862291833463039373977358663177789146785990418674013585820526245719725007590091374384047221683960594088790337928782299374714024835284281680263945496885142814065094213521882617112620552713126190758426327447858954177130450584627137866372827050597122513354170239863670883180657058541809146046482643534181264192724064123856691964902285589238837111508302414488418705431956870256079874134704917383224105435613169335584608546393721580926737564099350515156401397769578573719772776666980299356542916479701268099772770641964151092250929565817798560632497053803628220385771208958795293795868243073489237596628263307012682259574203720746335068756939798944457145263943481799131839259550351814579080457736577446561931376226092244558275735262531014506838029068425660217715022465121345656782373726010592283482133840407091740867438885577206006260626852338928646927709090018785887165060819840835552987491703078908481112759280412887215751138886393640379324500462583258612602754622173080840774675110073274361348680076321547503658080044273005833016996855907586409580621510103177209375104797468815795664344589049127527823734413005407098147492750144948544550759098167133993158344527115670944746087348951408384481696602922530747064543521707439159889263703948680899078701845943015557303297263634157757901922437452939922759278699588162934902026822065457826194813971538707828203926535925281257857431832464795329676012823446542723110151220878050954245454055570063985164988701346952294150165665195087567480276608397200446656751356104301917041771341898441274861464159099234349885059189333337262526746749204265454297053796106229907565322344326019319738999433042545338276629191482884761599618161685214664042539695814965576682908465828276720266804556622758657105797466551667822967099168006257967204580582909722882917116348655154724511398317032743288665637354884070291225204503201369295284336050184340709415077023523437887036622539222363340817575744794038966550287774793927650596946751761715235526544537369970947546300371249802496032135283221411520131687953866714668850549256189110851390320589582867011589178405522550560377272192128021501459222488497499530102492737911761175685111016416931725392143767426355507067133587832889563594335740435007031730917997207009158460833944574178911736157929314974991637087945370047729226733060082426588927099909918508168979568581860929012319478837418695824957715353041496798521379989640516572452168780060575940182666800204506508609133866744187793369865749918521232179775822076643785202203664714042488877775786615118035647258673218034305045658353118774860132548187259169732002565501375529406939629672025359725677364182110740866675025819244823999816707100194309688185116560415981267948634590700386207814139908135795634024711669327543307614305825637747155619605060997371264669658093262700515261206265017270935702187284776274776823887520736169403612974637728946932781985570432990301076771901385664362363592057002835547707751262847455644863485646250556213748885999752907166560328467189440115884648864879908080471458353187575125710808565230874678674807468048425631282115887852154644315599029859317388459852031822818971653220514747053651890010162792065967561621685153759443838365126102038280781380200683912185445623810596788996414731562761211058462358301147846588882756753308606331674392960980042212639328066025514706234356951309121095954174046396612663920610883066984035331701230553224522162321979166282011652412804217643119134709438327788808725137516822707324678838892410255847279049272439558487705298262637016969899126805833254494185073387158793486359258207269506962492264207684610497101550699674934810609557061323518468674076594081270344093372846505549986913839379646192454777983611196859722229067151092240328283795349879351755118779716863902732119946008755100547164931803538602569723864640931775325792637651204000150440771075285037014293560369850714445327626589793254434476176142479569042439398700698412979205844808919941346739040047251466018871458638606938287299297329438505478549217914645571238027296333127128553567157302341622918181046285262221200794347567360167328340352563023427395448153036404721304668577968919926756947785811545182869527301479176350411191213459204603549483191164330409152785209753981493262371717004310702655457976041689544994371897915875802321042744401720791337521992442575646925904763595928098514127196931078096665007647311682324100310183597523083297515425875061564007883698464312514615209323276744056227711566486884982666477024800206616362869405447980149594965824731912905377571318688798674300217429940817471681292901430692742293628607553381871987289944870871049683361758875285647630812773261648414781855278397243465511104818646755452308037758423225111019515707686498027425014218539593766006292077415940286537170402816259004394792270278801164896548964036706277063089068929071558637193144487638177101253140740530352954469696324874626957565159176345405384825416035976675309263701498602736514780594386445099759821177407613156126257768902598805071314742463786535205442602043916435887890830528892141473457077507050033543802120409842114274991372381335537544719617981249085722231137959933565438449551036115874132164023106597332316855456881716325122776378139602783667245603840752225518145399444388100452046619929652667147397525319359731980581127222496479464182894552675502334454928202135379439035530521323197406622392368287621036422297503329679425147790156029004072825256448451176006684276430390616406104554750940599735217520582988031203347203840107284736202064095204414722905578226602785882730462728976598738175693571904938872179335709329195896401926314640884559203975870084946023968636958820802380618760812335148968149428090826892443022710275514492348682466860922046454185353684929871555908963176070705683470809888876011888477473103156758035810267881931115699655315968355770732889039780215347500436649161442376258959292061761342407482151413088761301634391632241815155393499102076691068367333519009166091745654048309333997561471827173580405626270128009657306570624651182663736901724271753600418511723282401428945318706761643283761214897977713254627919218744092940293420294488857604867805344545388975301515485555723043300836944301415956457784315824517016798504402200361356832402201327945844496442514129283371975630977238597917362910067997872810038429225516672618530873575312285327517218897848171345931640595034459647857055155666793720003323344527286680722170456492663658510794080254254987962366804683816781124814440573167670945733410673630445726181997006503422138449154133015209482290669800804773580024568108280489287853535307104461219984828885284181858756994359667265233678191967144391576069392822350423362352128402634688704401850603351590941824162177507643533431747886301974194086476530175650079386563177236497994858149996677860989215443287020391884286185268301230984102857638191402483868425915938347746456321396099990825612770938850911536395395848846325083432051592153661249517166533393301610419761311383332153483065822377448319722141157693164424886454041853515056174985881527778360778580140899639219507113326962227415500763770466155285087679454179000174279894842373596147144274108865495356990115570832552566115036435523754068601318282731370932792297916825539501979016628227245279863573146106395537889392602192432599702052487993558478318224432884017231752762662441935383610344459115165799547265789490955877249873495198303225785890820131635410105903787294296169587301951331553277500973509490246029202124762547237782074595898664104720424704494034889254052958360047262106851772121890889591467176886661789793018200629073746159176226590872668505121537494405547311477854863118420549786953104790029323121977273591180993224448386750990954406788651500281090622757663326612962308797557935725124742650855724817806570162973845513302337164019785568012212017202067171772698690112919145579919053491179482741550834292444775329055043248181960468352958431049620077072224855641488958280875080024357711432583936595497133359541924743352154633254902563401201913814853140843101029207199047060355487098501213844771499763788845210024763447308291691350442935767072026983656820103224921988480960765208428010589023643484045654651447784926302495169888520041379087011085964372745300818251553578452167974877519743623227336844265310164239396150849183168736182028677872619167035812840289325640448616595938541702936508658585364293666638544949392015445041312555800492912116945283276721699732668916670528616048382176555236044421258134004779388304591197765496140171032532918080087465728002023597923067442712845915488502898915517497040507197592683005314612700673590562865173232511426604893900141681090825917887314072018365296830260213125519749818510627415277519138605876334619553995424491419557200859916788961673269831722481037163045246653317867348976646731405845635129639343751726452463169969065997590541823304277753951136845079117006460595466315393645636770645342946373885233774087830140436226026825151344590124273924821961613588373225405806344014592165508901741311816642654403286817117600900736813511100320319849063027086959746184506033013175794266880390557594801445862118842575211152234500469698376318524084761378530481015667439937403665493133558236644229228353646223879009216829734504604524979101988009068263263966298377822495541009652344984720490495817839825483408135227162314989935021180593918379791652866508695090194528761314875824077216403283897956150388648432855511899633281435824128087462232906604832585772655307342049596791400930606681749098859424727286609038533340278418485793686299006092615423498836631010016559327742723927535679946073537758497836150197223393041977481003241422730339667883253769834691384346842679979245908513440736144212959027290359908877354387059454710318182306153791652432147809198256441534091392892523042757597840436259230897818202646511585618977268821791378233596556274539601730646713537203907857600070773992328176730171651270899163472853210543609858822770619155275829017403325485690487610521817622642213931665155913828062008479777424706268854724764762756739256482432472120495671835161590033911863545942623976855677426109826806407228918862553967702745140025294572351583041286894978857238164629827202640797576092485541363432856654847319868822228523544002395973608208118745834966777158184175863471251780960286137250871963912235151818104595955668259416919396700128246139284430281469327291187203152517176011297659773200437034083537404913409357783153649011441888210669270500728687305504898900805505846069878321916356190668009460914905698769115809190764001725524142921708382095380934222605514028705288331483389842035331160228379289844800823156383016644286694183827901874697237990780425798353991926250740793217620974263322886727602505590328048183112262268484784264477103299683739162928707507815477570606243920766720047634629673048646470248660442590592951944635438235023956453182625799425883506689657853410217102339727684329691466327512347587258525905282463786947274204240638375618387317723573367707975357015242372515656359861909651948063323215393294997665957923175310566214929470567676198732781961050695325914527918842634689261294772617716030435310910118556115533655509257872026165149875093869132860097822038567971949382268150052259781641652716740090568870288652953892621284737054502513514464452014190627546936634886389490948350658314923621628836160243365914245685099486988271498566226855742406296974054910350819914643850158593008676720895513071582363273991373822607403079322866703311823321332178509063435012516504385745303610801463626411078803070150103406727234484436568501832274791607464495837776848156406530703300359693821120652677932476065807209596466951459189025745633030575941401424043572467411248782545279910098838154047007567742674689000344292173153260708912354944426481830961465072089125462966707331678636365392517861626813983269659311004974769070341443719671006902298923466970437095914789688567955117901501368937327295738584396137790092330508170431457772822969454645408706248313465345098252781944162953747064362378748044630052342233324406002884568999947486895835392097313426036967304180473301598758989951603654126181846647887908491321197189312888869926920593104276655862586232733337785029689754646172583340239537399516990211082672141749982635007667845910959600685140360341440085182157649782112929611314753336789762855803575268949249383828086116614182961044610907341663176115164863989712771120410010809509767827501344663148310407695633527789053165434744855816444343061526204157696145755698492105304067977149495106681664904369485399775634022240024943351612073704541828046092371839459700652769291387311162284949145089596931219995588057007531518067316629891646679989032763192570456326447488397204500563854457099986892719050032987561015283624525813436084979315069126809853879825770140543976868461960574254944195953478751541051161648062345845497200034097318539051839212744006636621035073320470403557715731377351630817819482559438331467369730581341164723651928126442241320685328521451122941988333902473051114891759858025210723339103326352291187756554838768947481851213640674964425002231725869791995118620054737729879781572203273034994018824813873170290278448098853804453431111989677941969912631621158278128018389944628319231598889414437725947192323060874673622344459297086552257370024288390889872902817373317968183302953695662443891338325986414292656264043064401306425783548281400670818203608145251291919458428906880661777560416203895356477988075681840071204524501926673576175326303217426833879013841334508629217455483405472648210793841545910908879966335279054302636046908544675862071273559539627079467304202364204326365379673374677914348839317702895416234927196996039454673244946141190265608117543360628711690240864731437599979348200668192545845233788350515860274136151084774123308187386717461143393427168621156065249728167740221228321326934227187332712818496754277038011683821763696790775178477931876766279090017324619395544848128427579794156749167616950033286479648709437754253436955575925373842756425469303951139173687029722775230851854871776239278125908736534040558922614013249174398068672003177631769754863547803428466475527763126932039801853567500577423574370412417591202841995424053789086645271508981749796432645934624645793269583212428977285959874544001506717098820093113160452907760697433134544681551349452745212867266960755150519954071992003257592452410560371320644663899274210644238363196164240287820235234435755768929435411900191585675800736254849395459449514458580263883277166782894264396685316756533176398853099079373822626504334857874920659361392469262511124054610498225118113179140782541269965466891919915802159286372679514298189173778354815824531606840618825657537698145611731782611411914418757541324290655778534377488633410933970447746844631614567854029449629665410396418901192341415503544232337853018346374240963919036318147810678617713687945621041620075086204780438335702645913720911236993227717612522163875672112844613066553522826041812288885625250566529443672695993119134241085208139541482360841339548573464845889188929377141371076976636673388278863683532871335423700525470719952608073524785031747876745945864972991147468718066635490623525796054298559408955077612261937155369168567133061169663982693503857761757554614993800491701404265628872465790476566760273379183986968893312881934887258613210779084124780125115951352236264166900746737739990570751086983341377266741187429571497011351340331159217737320067565301660168219230842100681729263485205160063901987885296595329191235169136616987889125587570593594753686187723645810652565222375617784576842691808538569694848552040314331785999937051835057247036720393590067140994010003301517227734376682739497014148535864266487966582475729134179685977795273669928819346829523775238464133212242140703420084479252468359110809523154727984045198818854684596810472472630927907442784157341784485480186623519769562507686700998078579484621338918843331809382115737201667053845545230244321673447482623421235550211094766677154118837535864796357333001635793801935808857402011761662119126151691812206394223260113505008877076514742548563531277693592903526012972098652429416481507255190174965908119606315881129788507558675335258134263866948445751561077961389745994830251063954948067944789514154853938667992807306292313669157796523058511278152686928709362338276748812498276320655874592333972109994864723390332937232947838362640598999656420103280260141324117493934958692036717269055122829761282401857726484315313342986561408194656638265664250585476692765573474413723071624662586622560973450219460572321501593147346847606519120311109150205446374930222746808416639857483928520211185112383080456939457440395792811577143778310772843742136139185014338860575549526698195213000397116172276390871169906064032186051317063787600225201390211626782841599531534047446149917401952202683135258774648392681005005228614652967485345836240188133421698824654140606804274728101422981417342832026130613295210675078599776581582527974295426170973499008136732612688659725175150435067114319567341222267518054745158972589208789776451270508908032742235938197270643513269409411039828742502768732059218466255863124987569353705809357118272309647944395517224889441772492682698936057050923978278244655431940658680357758349916148822529615870343460974865421149929402789810156901673303023505087517419635306022504861445995306878104111109644219894084428586474309440973225831139134179196243787421643854839635786478664052841454316126106017593763462958724347711930389821997852589543337512458544699524462509277903039958706637649626066346644018597054907048487336660986440547206159956804904623852375938027857468842792331094120153268803582699580381646276110781395639352037491322649265044376210706161637892261041512582509427982277016238881876745018678009103605071948951209588176895605729888849127610571890691307471832138183380053070664208073206931385784197857467575916995014903293883768564066940159711614230810603224601659512606638322371139353412047541088813010747127983967000755164284542042221266832544161145653954915595447073195904721602950084627233736886563712117952851827270617022529002622246879598422588316233670264052929842637068451001712520069270914381380394221831032276672718950679313510399776151133893348642829648272534330640933565453235266994789852737304005217236220638282597064192520546584985776212417127986640385792954704091829536384498124892982477293734530578804688207520007379516295655221458707188513649880535799891004118848293256823334768959592687307321719023111485670294426993356288199726983522326080375853272582969706498673938394138307780700055317609776640509952158788725296211728877066918772575255716136731287180853299906980507749023591236389883826291443457945934764237003570611174140473492406194852733917479972418649334805299039133597026467610574738045764024229455619735853081942115140166060183272301912773256499217471370461442766755146162563099305656495083917736178383922701637169696608919019906684847689101982806124260433348336647231010540051328033262778046874040512709626451574919272471268527075469642191008822029774532784860527823546994201702334867637733935993064431039998927017904367861195154939633205253352253050901935490095973276982656649198491329860052976580380884721024905359303527547959181492726672991458820596756292852450119170099900980856044272033562820619259387661079215618294628113283201921371799250575726484089038720190768536964679414019068381862247939248931833349016710416719978843301224228887225994854737904791083297759175433498816689597955837767395823944387903034434167711970499590230574105786324646562197967056070452578494736976372533912312506716669634461717313131657290895022308283632007655184974681138224985235554459621694446599426205661670496653525173314824169576856312912950816263595329306139159646095912588230431765526146547137017357136648118804693933953543583572380804549391218129424672428407282330743169968570558667439131759130756476289891486099763254062199427603085617417067692995489118903516379926862068057899611112227343691136525315956674283046093650539779580301799096672060982678652371321701253076094425185186815488649484680539154869683436807979715838676873216819635633054391410897838598433277524262957290839300321152693589483474123047388941773772592443013117401616448899942498081547729818378451881242160410147406478620430726310597633397493887221203409379056699501124575804464041380565851405157709736360649506975990422834235999060212226207772814038800747152503775084686245853339794723399814776386743980402896118591426295224834271446504088301020387006202504729197710153809946426626015109313360158889076299252593227440230906379189079378618778141282925342028064482400375765079132350805437945570472623255795544842588208031819578416766447029399086453015540513560701436240140089309430436287575645491016771939886393554988329918149069398011882593948106815467019470790980849095526477869303203739964282593989212757672488750329125424594214729790388772134010415611406704000212817020342668798119780542606525541798936139946541693275606163587153683437919645015705976301571473835687103930877093733623906604672521182115591024554589770021976553467787240525474014819478091148557664747251535860958797370764006378076299354829140831072307170694255923158227035339552031025033508101594870904460577210768257692231088733327821785614611377518988793703529605824576103285973242021384737474412733784920182080004586269263829020106768997950634703280544195863941471754797851862051597754482434703110871217578854269078716465624418113708611134022311001268942442445423349299466165972060650535031496672165174201441137027776290763662400083943343460982232058941165437076768673526394665164543931868304530972371511181750550187416028091897944743231193174083410787171169750035089144852877909987420163002823106701298998483389469267548910521952644742639186603411477863001579871801826462362438126424689156424457493621303557303481517779420053514101973915782145248158371449453564892806254506155904941328439407570067969748367531448780376488147282579382318471597802765044798963146234008456884520418499463734839112408547848908351029613509736256177134032708270556069290724469482291279944681027818337394301607802958506599749595280595257392747121086272888679997525803477574290074922112431599813448611340171202161349739170765383100152699193572027288783493227403943089606282522273609827330592416896017294752736476593377267528664490258371493153891875226684181910409573294079848923845598169340843402976588679427975731103990804715766967385128274101313593596488214668119111591619118572977289421709690470173096630640544437533190292743213347036514845841616719524724611382875249355603883367684490028964215254825787914607198651721550932034632698653891527198546192934563336536033978873862475105868220553421206333439891851867040139908247134168989166601803987591643510467577591052552254114964464857440152672595658383130919963786143842173775156479926544179621852018591773937403671891564866584094204165901963629920880481124000788789856608096095690912784968617284713711313470870272378892582037284207464804900558979510790026945656019889210081396797837505339344636546923205280439854124775290154795308538980971455094579615119516584509129790224069381596613962870244488197896560471976080975087210832747519990768383432804313497546540178527233192441001021981195875683111384179726879515425897197053189170000392260408332017274731523674542843251825509074378748399443462759403704894225483728459706601980460691527314350280662084594419337439521699301387053791673007006132485244465825448667502163007577129404248993508647046853745260148536794156350647012202952964890604999733532290262199736347344758299558394762308604723904332987880108685669070844363025737751857777949394219787456241595079774460545864458328872620480959911011595982276878025873477290879350932574099794715589269800510010736614353851294046382230809135413819744313215207442951726225791970545954611631395053484917549835253479805610266446480335540161884915644873895067383265367529473864846662138669216026190662669756790377701747306791276760648415325228051871675885758155333340410787972003156557200964378554126243930871274462275634492152274478114712679573565853015514425191241676496604487152936577184115771914421338787362278860392519321521690595058586407585786901023614222334945619299416068398120915639919715235058472481298188192462702751015410666342697950118163655973177020326019205736296088252541182592956109891662650177955070231416015960703841158944303322231897160541223401625151620809051694191712758792073826959688754624662576942869548023402593725825565660768205921872862043756756633759979057106662109621103359857874315491380250310366248984291851329213974351495650910852204122994802397596995437082585401671025806934555200529892779275326962884219553243826730130598814339014714030394508571395830046613043902991731793271946989437534110959808385035484235987908105759145967632131163326487778089246079830395332078647824366119509599849759318232442573063151086667769719325851391173813416275147217258984388765640291348649035978423298033493260789498722560174048626876882531511476038458051466883513857197042290149470940874552721861958879975484674385706916442226799224699175475386379136695022615522241796966935372121249148650701797582499792329360300374967226952398241325918965883103305823464125700719409531800231549223226882059534689879158320082650604192823596860465704473893186448501253495333362353171068244621259069843229929711575963993239366905862496924715734892647575010860081327298326278730871953307497669286508647855179752504904168985858952710568639149393410329424280304397117831486564033040787662904161373241712529201649322686195690355227475990005916151722051068548778330351306714405298671438562764915675470425550942819765591601082025020843524486988658944508001249251724756522776937308379882866576129910533269008317280566603368849180736173754975728570898831953858252344485383004623995132159585588941562705442211222208986245045038765152632017792453147002090064741898268024798208446792550338590270390884652165407679013431936549350845528091739540792377276811323508480515989235069586769358181019842350252742970311223011569655629598939566505506279926501106194015660176971855622877243502525818883923597841394499251697061272215339043652886153483832674991072403196230477370461370974952177610077984544325508829012267337882291304861546429377085400669650849579322999854064477520711400234722674717081918541008645855536685275957274088421197728027251004475249196917418129414403670365749465332564496483925757400236444026831471361805694761626199261508231659758556218912101666694113689334643286583649250388522252532077325669536249621584276312413881981838986166431034515467607357627789968454600453001956915934116417714049491022817580654691178619399105084225752188873937257022919439934648187571958332259295001902247531409682021083140906987814720773051131490878646880497237209803908340240151497602282029889693823843904289218173991213702769916893573226993172286062369767996521845814669463469880003637313417137828634712595349605886335563753123841170537690524690816654088392764581523141930855478786307987813074679182002952077131762904356397263193866682879017004779103795063788940977703615027721184674009187937951018525522073063505452043191747862471261035151498033688253101009653003802311463124756860176937681869122800689049218631812939994412826782076440395180045852224075009883124931851766383625619958543194191508428289335272478106560003333987748485656790900212147038550456684805215194670139019397126773396772356038484535950817063010155651474764345623493622040144549119213958223730240252488989639990793263796665399245266305420159004306473820884362653489736127314567288874441925914252109702704691339819789506327420831145146772351617868062637941040282895049337000962329876790605090279844958759950380848542915679524555577059247367186807540859339921075330212577756373103139702452454948768547998190228353192985826061516051378427237866844306790155112281595227782572133829599528282590833851117412878037776104207292992589186027474883436660512143797951496781043389434005903421091170137595915776090778997041467502124052319363136680937958730037010415876179967207992619234711515514189903330974539383509223872464911770935316130038184521700126633562492179840393605188433472605600447360387197128393798174512158229567382931241354245962965952726463170640323464035059607336293353163862303986241084787833619180544934861005099430303285462159066781223509892622823367962089633977124677762339914107321301705424632214500508327801613916940078005445701108759029780350349406116005852070905085168933040926380355460141663806473991706570092026291021966567931109189377746183465500553273558759310714018515261678069762118653719286090017789519553793055804463110916506773742209097288857914683819844956868451232943181031545040861310071731002166167997159871730260057550554232891130588374903338781616158063228948477589539803867133257080322175590601771116172559618542526822132151144077698881537096271235219726098527186983702709095006962595897454200171645756815040771352682996144992297674070807732583669276032392442274148013416525494176992205991266936400311781104916123667089357003443735376323698471657890880351231432308119821033209242815678338294064388973326221760504994945004013925031437624430365560559620837677469936966494528653680629036251078616171215723778840123773115803878872834818256398907034464425288646837082710795381436886058226016322997338680055469481237227163677740589167964485414595090607670080724015691754314863505663523773636317677965372751485686567284492400842613086645147855612443468730529250815406736905740611517332845789778355753518970219781208275891915620633925449146059025199735946798712657044835454291134186314635188182969375151241857126198188181466189012395005062207622776973082999352652463689086166083824164633403390735604554333058917539583843996242003503571897214357534062493322420079517300745749991034614140528182504412587620439479822315168961925719008618739186123446119921939916538522579008494237532987305133635199619992469802358551699011238385961606605276541932011437717839742652188680067578805089017180583172823304755378645000930791917597044694586686355255093643578685999109720987427319632324873114473450017083428294682362471159091242228957996219355243880765665905240099034868230123302215725617412925810196162571848566293450188974749183507391092903046736089377630503624396911928297722657209265804307398986447820643140771056197961143078087960006256260419313430563005885215811930589281107993043336441471889416502831129440266676858141339928823031471106918282814737050002162936505199944878723977509345791867647406018478405186805499872031785420807604433711433348881562677986739384413763966701816499217851471123047055607134876686347474803983812989990981154043181521649037417145609971851121679316997710868766295453621897305290619071911410431592178760796306199176077827544200002326474004563501729906913071192000872277586851628580020185825429964820604186716402426260647355669542464647197250746551133084278279730980234074534902612938433515949627396104986694512659578879451752829878360475383729059410237142757313763210136569302801074004658643238186958970716482720618395579602442525380412589095861896675138018157794588487790743564688655645530514659801848912692475103670209146112106232760447916828973302324765964838701490459220582118057343293294092066113856008778360924143532521399872591013825264709148215052291926636180462937517513928586129945177999386399085976458188437918121566892389338614458620988676874280387665151089769171698248355226189778264149500260490184472898049278046142114260263922670672249466437387160662017570538094499791643494885197636162574603281722366772243687072820766386928790291977854648866084097106973359682107884336256950915407285262548867097229086479633505129121731648417594456419353410244729201346911734126607531566233145488143006341664195535241639705147152045222575041565609864066625445674222909805694490560340249715595630571164554038500244422896211789882641054437211660225055241980197199699846623610469251949234620151553133300780846134101601242146286744587125497219579699151522218201496437441733767161811978107155331136206678737926964327367570039816939209337278380917915145828083628289992254950837308777546383277185276560083701701818628204986094086798875068702629194785921733378695398479572429256828355013434460933209853853758385441417952702007763335835352939727919936665134959236410053766087378453738196943059090107307217975279924341030569541021284859344728568094699533274701730395140802310497653428953844424561037963052325111053615826616336971117597545592928871484355870518578624425276596056248773447132318292115321269473814919125945610627170851871054982246175210290345330867156092551349074449697714088191025563488242749642639770969456393201194121159350328287907960653574161987923550479161432070036317940965865106675653532293404643930606506976422244477097369452328829349102477822418575199107911690131587500772226360414121756185200566787756754661764253983953555554074778573494629627318417978599164069011866895667118381687479996166054255152758344053107506526473143065806289251807819110983599830161739729062910724101175509479514198745630262858986447992113761447623553949253919552171003396696817477833214901034352050181701785283197702919305671937943586080951755341807144822835989288330585233284771179433384506674395892744521357845580528417186129305762021223336333728251828796537212723526238316473477017806647904375168974139885035066498298834548369834493921307916366736189139448120567405326196541971484286065045694530177760535063097665375119704492014013537226424129148740178083956645237849022320139704345695383986172855344509293330813090405763857087557627865109655550590120381888829919895174798780449272802040788246514268113146012401030570141683114941230178895905183945468664257516905765017825999919315122181953781954563226960921534126565241436734127355866592921380353230139365210099293375247563320675583382016971389756644227487149052723508837091625894648866043207897475058912135211963238528344629683724751532509060985119599375140163570310898888067515818924631412922196825066464348871357365371378182288448568975036836492607976879260156355353001718245222420465848534381047640564886543050871169497939954719022087628401659164346491313473718591536940723952936958965852870333814101634369995149123343165293543826507403005062416583513142563441872954012839729228100185387051806420406609857077755629187924551583494158486437992540098343892104289232891731726073298128020510794712165323362620434389739504554627139881866334542227146310581298861338365164595683654352858155828090007204537255550066179573940737656390231461663813055837629359428059041028327835754658206926382156275644753490644026457995891236672381429530551657428356110199930166527107203441063797903178375713341030665231520950414913986171013445213911900550418665619601890474323009255720149604044729941468203966781285042821127157440834295157927370339694455458830671822907326506057922646592966217635437339584669507503313334510613330691023978749580061364597147588290221913869080878080873889325083715325378809522756355783665727618089368137458170415286160660605724172695800808023899876240522288358613826274530002538003754756830311285541929333761152384977123792313453523705427931315978983442853460036991403523408335217541681872805167667458885258449521751458425887527715626497897339434509810617017790897833646312686193209453407025617909594456284435281241655187591242096150369944709604747631855110656847243485633393407684982048412546593473939613161859185353375147330681366202400134654148499097508233469050031657229061907612601422358089855340874131628744417755492619299403665341911090483455323747750642288582384170856161622079332062386739205365229781714194324042874559859460253182786031350002140758960613785366825195163497696696157504453476296764729185525965113999747940847055555955497657076182125695195979736450682236802787912710169941729134555522664549019645449581684399387651779150498813993189830175142188072643178792341188790703761999355851388935258393452084253446932778249453933866957126182291427658237118349155228408189414686487537606091913643770727898899523269935768891247637187285033725336486641549813035295375324755386105505392610037755396809456128056654169164080124487666066542740214128912770202363636603478630813224604250392585312643351310126361671493561615963151053606812949665322324568186068250473657294847348897640910372933204553450480567502537990125229482967507444361362418531639579999216042797253298423742090628643136506002042282834233220959167050083292071802039758974400511275002713916779589478851894747272500442768399818361358278613125817475228171628644781495464333370412980189431805735993924166155658907760034939707707233227217992242980651150615178877036028452653962174941731920913480114008882948883610628025564433714082948068384470640051760602850196039010726149812392402272783044853866416358937900494339549892642747802907779776138633373525155755513556646053213146076281718096839513951226685587550770559170614745074576941462004551357902152113361711662997278689394487633576396159314668494549446997507616019861421721737540874191107484500158575838288525954706606236423403476130074682220428493898107522089162426623014955035332418500886863248490128768173816296671242367865873681363291966613124951844949259702886839647186171080800082859141389843709224009989260869000304103171249840386912254636551846637854195044775698621921816079474046204624278028150848593463594387231658044965732042394894395823140090010243891481006809969753662316254630169045897832113778971082630549266653338807809311291959323460148882766418994456963383535450900057608872750867069350589188163703197920611851870135634969061349959646995348721183644775273657469416003136306218959022275188680143352608771900518888246048371606778811747334068475816947023356318951948655116034098170306754102521068901738066919945068557031018027047571670983244533658295228998671492735169227474704916971431622567358382290411737684550477180897388754800031054761294457721250322221128160482555058024865960029124733441932998357490986907295660383787252301219340883951120089290528375197978688248659029907297665846537472046773920353034442020307821729921781551497050680739099278239325705259386423937119206003007894981501921554180397708199647485549324499138793530909640131182547890262119489345639758459721204142994300040002178247369806220138292715094190327112766805691754215659333510316235352215897353993626974959871989238922588608759313983802678772026208787246156652168271828036622384041405753577880218340267153295335161568466995090999720965483779765585471799118989052147600979166384313130047706524513095868132760374826629323403834710351072761918606513998779827422264357040273910020345851095770814168585598146679114025422224253753488248755380785948625048478420653849798120992643319518382905682407099768572376895992074955258763912064769942989063232628238866045340021412459924868676048585038560345916560947960091075285993960799348317041051661298408078184577767748878289026560928124244715216526086319111479983216016850345542217383216706269873170902536183818074099403190798845927596347592259542131263416960350375000398265049580462413499300694443512219330486687680501631641541538393194085537785455535264564624858538646406284838351441634490941833950849507697558100839414790432787167302555827337382828975718300030711011107977195747031129416109757959531967532797494213667983435600145849963556497458031850716734099265502706481488209258430409252514277056596722943779651370459910846578201233906212521015192496392444696003690460231921641985627022889493757822696572237874454759003097927218731267116330452996747346375334462046603559879053073505383891171262706639068768686463536911458530929135669059661964882066467336767020001298444481519940234503586411259648325263737569313046037421152716222397371385396935379039930338353305653473760103362872592508605640472961251697415280595033403963613627708862027047272559381033725923725137587882501357547018062711664210748397823704669667334421058379942620227817230555521436989455219351683193797827424663310016124091092932728494701302678577025602530206422539855532162485006480632929283849797965349889557957293618016265573603216294103507785900508306084000015514308490102137384086863666226672841178870952603914406228542333904786753726312184375699206934135294721863812736855832806540526911906551341271129678490564209212449543048202877893644300242694913788872691800711615780686969812792476032185475890992381809149797418002426812114314101506693141306889280889644748937942047639444664463636360949688825433874738279062381541883049054262215335802138211405130168976778242512683552883271808290209202495714501135974665231794567709409864148824827161338251621189410038846926960664678671676567297103639911097909210260368218296948493215756526702573913623583250036696854501271061132533184297841254198117174690002362732879413613365344578032804411453243837941807084317804809179352677880595557010100334980509225032543858222727804660895495020529296602501989458151542508854624231161155175417844720927935404086091940735433632553959496064901524522557378117713247455567704790274898636269890511111017707213646754823839275620682524667308217159595287872002779615887326858256385582689666402971352684467675476301501701495285760716947218962679978978354417655294181477724023181568282683976686296404681071858540180781593687270711419634250788463072548283122676665012486857550117047662739230879075512354384904667512126130087769738964414919738342203203897185473395180649452340432106813227349760984542925749449849814943972088744270786577775959889445911553720968237817460972044631541409002590530048658863467424170823952698239444860529351567160954075125023310812505440102470880074469603573283886210212601692847676914106237449996714462409358130360656803994325079020096762295962240476836622316108861828188169519268037811966420625618673545741034681944214448088827283958718006932605771694608535690299320404449472865015380134193677510214858780095764058300451636601784836089228423446145107002973973560156866222582111087031496171455123381594239668020485268940841055257709441666202362662938730292251591714540113308643153323811728885249230496046762648773622353577702900834391760245359924665329227741465785446466840801189531276230303851384169759121570107366256007246577237999434531662645360080973824424663804265733979273517021301670053590998769512299930464961441981800744527651206696114011965221667589124374881092360950621361258292402055214315063644312925193222122217506039396264263099498570757848195461494166966374514757355472315300709530083520095187938897265357613074310670023427496450104650508031389073992793574066222063987693939385755951927395771230188281859419233443536139352083388407491256482575249663153910692505284651040856450006696643533618929218082502377974064123277305690964494776411245079585847653242857053913866686684496899417322092832015521166060488845158835683009765821733217296167017754263443043240177181688149205752539089936575912270583700692171864212479448925327880337158375061112952263413734766526306071910283103726337839067480186263047803961717841171495090563632309870458074505269151916601716592343332857679493982454086443371185092989599078835485673765817197607171485177075355705445674405710737609350393060238308322173290417127032069533980755075288914501826802337356215268619800354372751175489273673268030720686797682876406161713310906110120282033270796714173403158318493087934291574585380598159847307449729701088235759746883614636624989137305004788140903140310857716569484446865867148376521610584579271647325479005288686864182550740791074826862414578638753556730437523067602661043734509671601894558326859796507366106400186972144187364181197143706594741253880824400515061300851127352787813716610685156974324883188213707874827515882969625766709826449702703028687382013005584040939397267361198654382853484658942539710127801046604799160704464219117330051586057633162469914923318189776468113048389821795129103846854622265009510053430405456070329506057647358292141550218612541875204534878730057827675901991383580606253447603923458500620647012353896583572392052498474601918179744220016231363002762166434020796861356386887083803858295075547414486534547498203945905565302177795814190501772379793817095090644546243105075767526121168699220212058046916134379470518919923250351493496319116977241704085422913361794049717476876142685719750662821976131607291819583184799970110882169613487795603656028188295009834377872700163459850667181037472227249072600457956486077207933537864549911571496426080932734508081117570685306502541807202288025991721371251109189646531632689241773888572302521979721439388835898602348885922292478529521553751526882389769811768101361302103857809819561021726869645226565978365669044946679758057915201478703473642060260095855132343179448437560144823947411456064063473828996222563971703077651185159181491022788225727964388827894328611977119164348417419052389885976181270865529867395488803569161134285306172202233112078225741038121731523964434626084845610105866632878010609969810590094125783052602948660182875927647980178462797802228318015786289171172579662594222570190389426853805876996747179279728249432891497725247187848489506734800408848809733145651363276952633211358258445898834184977048278873467327195585229145083945069240304928407128631589433217623503444679120542909336937778882329680576904160642187468445382132378911240526636491822094683012969001366674078048830824523045285588207082404797380374842827374921465263287534383368546154664217201298223384954741906260804248941978377321739849198246524231574746185531194653599513431129724003476886855576310894672747979452409308688372770287083216376659932893324477208523893951590776751727511477596011510552795230259250464324376951163214934666624906448096375199950588707116004848187247485446734807395038678126221108656617880948005556721809139823611608442988158973984954788221932904664185957037309473904904309721923980044369777515640153539216421316036083962808865237259235882360259882812208830455855740589995248797954209459766902289994417571719664263730095993265021931054061748408802153811923023119877816564788135396178071481503451094207926355542968198156274930735888172296234330782078161280138836095906108472767690826001380053820104306417969026891449283135825376665519593692260177259398225054859207501848549001953747056583638360110056499347775355277991885977531721320546364593456166903666714553915262042699104032397335617241104209202346548472795636223141910026427020211028226893169458832228074815318137467013979948331194060088788126203813244054033763780410150993541645159890730926888090823219735145490351128057096037036963057945616777112222417852459304346334834908168331089155175868745762350814907837842805644071307831510303432119911454760560522881836885850395508088126734206760023641370804978772879652277703892330172905046455910493793654780558311152201260303027170214220160568344728359488771477584565129340527653027527227650112223883459847727427134412165060206598474417632731789697390032894063180494615786120709933429516935839494898921971899457015469097390220911744304108959183439045111966814142875929309442215290377211228305394180235614535931918679331137831210846808225030978677859126170732951467658390479218576522105011572750743628148119888270779971983574399431712049563834883070942570364766999562809053939218507260914212929410680162377943584831238793144991682503211245753143726215568708930871547776117525971336778355164427956925690144434322134477689328909361388459343452061099861153957279824662549274790868650920971668146380407816688455767214910620959487873543614672689138689641196650859529258325196678469357108156307249398852094711611305143653405060167126640037529220962315235260477217187817755492662369990557736670044234981904667122664742779858037301352394964661328884369040855175838151368364956084862226338138880492380433833493817099449266075721603834381435266642608635414069558725616194125605686877245883063290824799550250787409949041034072117226336721813501795376790387921133629909428634915747919391659041554124227036206230660774378329727642338539363871916276483564973073784828037490176741602923752567971718606317276526210555850333358103512825847463382313176742380291681832996338938567590328935459105215778553200696684061744374131383013353001522257069686212339681546865048055800207850920797728551017420181885802828607334475990211641679260817372725284405311828600373262792443964192846970262823191080151372388586360555001888844218283130909482269202828305481264137263772722778022362661092470711637858708716359650740713999085897135599500790043357606491024226849369199380658056042150444396948171232191202632060086328825660070142584684996637971316599110379034792058220494437910793562125339054603723446414718180579086126780132137532530503294758848907192347620718369918180343991209436634541747966447115730092904002915120996947571258487868708529926809537567654497905944732255339403087418101052588967331073721400513346758101713017997197403780482142470166367533584670711588429266066764564591497551359985014830404679257688280430464542821802382362721522297879924673643552910991237860212731244518229878431768105391840695105850510399638264342728178045714457141931240629183542144307216633888703433241076361932104097680445977685435196314347621678531656840534533778477622246655914210189968538638158159417592186245050208075831240145864471320119551021050630495563839942899595370965521471699999921336130103980547952805037040552737684849296671538357208496220047046169316782546633130876533498642618431871143941107804059376386724138607162182267803579676302793967948134265842327404985140834805805598991142204319382891830822291824620559594818659875441038619310606016111857869453692339753837010531450152924123989815657180756394998816668831622400336903633614458911045777034636589650951437279466681802977938546990241108603512710664402292747573597242361436641365766799017903851996046568012706223308068108719379931406962296287488947380289991051572327581610472131295160275304928970651657538259097758099083391300588562810480801228998738125338749501397872982878493083219996975165418238971346255077739897011418296342075485536568472133405050757205937290961870165494538721482517404751676968516508255445917318961970400918195264973384261186216325148337285058195964687297757773240851248826983141617196398163466997807521338541625481326126452552811753219126564840653311088110089508643531026843031386519597854049037999487376923511134355549019477814824012402624363357992159571120973094083849830284997367870122027560618337419950371539278935520638319663491645615857358009975876558458403667139223845985823604142432277855261262469580006981691698932978160435801122692043137930282589482392070211297627975392041418714160703014790684041459399660608817457422350479950631070659024422959311285077898058275833757095837799286451917905406308851061940404049393178490789077240152742514828447747658301929978255798765712402056306302528789767455747648044016582213410134781610224291613900078597868591403357699775669743749733511635462918613566875901339545111560972463671203660957187952521866561472796662942195694782603252243074922881769616636996533882789862134274243961195775183831881700437212820648335553351253467684371364210174231337564516393884183653444035001587373548860169749855042138102878737471786462911671937250645033222097750135540729312503936412656016723222347476945327724940989068767762443859187453883105183166067806074315783017230269899255427758701367408119235634952781091742816961113345143127826188561108257309145946560163023366630110199510694154565642049719603584958455127906792107503884591696427745243718571999722553215376618277411268026530685511726202647993908415616395250068028653199160847746079885857785751866672713311387813147784916001399154323989553949574812715992554869390165884847505345726427932716671253684533116970650745253811633120194123779209360718712372364699496582148666878374602345678453862728339694929250637744028704904242564133379420135605677835011415292370225889639190370065477828087407113995275373883019303185455510473349389367690263967693800143730974418681405277548142851508204371132377375401763218770768107136505280600311534314545160647476319549535037465504932675157251313791336771335834266202232405249011408912366563075302485195984925975005179948548026006073922638938474488233277341496177785331019334825130815197827457532734864424197112256346000997198343768395086887284435999199964095622940071009167720115628727986238017149809889951609943210729541408159181023640194036443796837254710586506403663729690730219902129555740763666072020321360140018079484357591259462331864662626704784491658270400157865767742112336895790176886909139798138434286422006151361680769250981935072798069225088313376645458452479896815075667183714073201507744651233640307442288892410012153350810912018157901951429538112142843671013552997268126016931918070486070539911133238782886681471490358278948700065434090377061308959700515964741152134982791382122071452625937021875344227695117482851683001676313427925733912274471766549893794484830024798599667198340570308324895373917626486976385948782656092946664641533766740610937793412822966729849551724700623119463420507217070901648181907100096336035046247335615707431807136800697959946232282093925258556927125572396492361259127949145881923345343173485147968978756949715106771852236393674167330096219806208168918204988639742034500080792782908885272350208481162909508529325130334158289328724474536745760162430702070183291487514276235747239871912089079993174499706958212333648885037093261992910677649603606113387757312332803107433410218213951093011494448708753409351339264015064932715063655230839123528920689781676514731842534544875633049903670063232865434434027851094669500710406959486955576986527966408667763761343150812964915531105223429617640788479015502051707652573299031825444240906862287214283538142458674920544384766897126264065008345173823108676034318953234443423155482276028765089827963025547901748474665597936064587048974659728246621681050777804273439369922588478601804958492030170052885216667961780509007309296743441371810334355832775211016319345365529620987752327439474939464416279653129932697572305887976724009602304534201927204503671654640088709320296777103661484542252149698287904762450942815302115452428996608875303928711024473156305773636225652931185926494186394379277206272910309764513080115301185389957117558184293376002859534087960497341121966709627771714303592361315008183804632969818244850761028736893546716830617549468568664519284011385120833089373970781856996910156562666763169994939194853651310617924312411976597217867553666444242044941126597133405917193564457670622780682288726587451305558270524979150419899836701306756567810828344009489197922823184465517906469805516323131923750039172766528025326494786483701611437645477481274215434799991965902292898978820448555580491612580227104978372175216463831233376725775005608764332026882756351849743133698603013049261025975531210634750093291092460720557486597822449482922182878687029835446951745344392881726915903777831785672534123268563157653458313858997504542998523530209836858292892057824258165737234822491545844916936560198475791396152009761699728542744046911135785279723709578177589182620152953737498789811112988051459255014863633273157606354813232062581005536462584593554422164837280751927157921966041076240706389154026880348168350776020545637718653511677970134199158516376514462833301849704335438315905258746105493180074641051743756132187651662400370718616303950599641389523279986692756691668109172890087934291855870601047029659153543157105837392859543244563428053709418399786862137798980478303750622774191842360010417543069934528672873520880107478958020989486632469184557941213927187783709951860344471628960916910384058147524853567591681527073603921528111670482718425606694609984337509571225507021340292406238634202992632537871579089605088080130325727775598433196963070142380108205745590488529304231689028986131499866317823032091247185905898852706054370634362541720817509940333716867478883310437006850558600220934045581145786173555815658110709355891074847869047195138169207887740199804704418086256311326240963257231103729819997375430922248654996372140333835628096702468222520528571383374056093240606044842167857230926250559344365782835381131854861834363420857105141292790600383894807384970265120088897111310032724862837656232540363921586975298389486253681127242700148850639421768767575461268842370786755436816107703695522563195073248922551939304206253809628803231592123676722092494039616425033290285162495379778740230897456412006395373719656479946919422274474904884820248711278194929319580249301764257932184267433165959926961508954701951391667788354617871358416275452050674391488915912671970712079833131690893755417347268964601334818317503398145259589790780655435266341879870448009866788128165273091842312374779946030972269466891769996176164688984063017577388939245859333354003256748152966680793770028437655507142540380378045079226311434889305471255109936951345388269103066516908390985405884398297299744541025579473815464683742023263703534533081167670896447032515452593838156488470700089170102947929742768747759636270806611905139341278377259085589039079741114567794299113420802558430756221848986547485720156097949982232902795943810121471835386622704360524383174137944517689185447706552520745128561499502073752557893432473402803270117346147857278419424349874143808966932126953141341796176387004308276401034521951434433747259302622158043353457549479407648080407605524783711673499888635921716353146020102990340419846354623327025245664705481625081335452078885274994206868281698447237050363465072700302046597685422260716817515553080395665399634696049717004191300413960293872461093378035908407730671900964653368613242308515831334457005867096116059646613269760455105480782284355568765074428929345193772430199587669071104628653803399305679270231501183206504093005174207291842924910163213607416093046268312558499248958799203293189759525280339096970636244205546695963128146270278418477680357416725903401792752235758518930330149802016723571437544996432553565037131156755387973947675227774036670285507367353328638620777525093063817274932433117998603062900249915172282295305444875872037023051454714406976695925928076433352782628489661196817794368051012001067397099981567756176601854817269354398392292517496067811107129253113684302178764639127922070959954512954191541230500411013496273026225141640766871942688552222983394194817860497583305911272485560818732571284471521109948300044077313880273248904429438407923774331421813151401814727558766555319797764696545269030861416579249849242186523653801143011459777467672151728791567894059513829092232503405691280631776901473926910884990298403487784084347717355606590995192220536975808775630143330066846968268644528749988534634017085268830696335435785309404528956063667463898440710891411586633312209627290728635311071658143976170935651948917155441959097744384403170782619767242756532319077145836166883120203757012935736670897693671397861404215468647419664297362275564785170349988108543787918898921548099510545925448251928164064719946766018385897178523609515657804553969181620908684988116254861551714561794007091587096719620204465428958653097881850625584371531348724385697569329357013726154604468895944017049069220261300570771065484341770467505553151852545593431876693296095489536588367004201486099570701282754070230160832464812032603319923857417043131194453485594998543359095210262220141653546790332048814246291614649668432761032054626106631233972645099316824301576376300093869924484531490050413168543103025130215745997362009358471089602555043396768753449041763753355796963158277957264485314308813188905542712348044934482674154002499085691455658422974302034489217869459503443354129659111438568495070751059777747401111174795659643653953410023043826244165205088878795742948170503552560609046076660152976988165831842853761423170604750616380569955922090151893858226133493165890785124940471919341922920777969172489673401816207798101686467185381814995804662145546749171878397576890812558053787762196382174754459740490921332807330862562473282641837545776749536744181865097562442589236555237064173408491982130001803841711195582996404307737847047616586233232645912126562996110197638764625248936124871720530644885079522759691198219328833170390169808715750085518602684109879201821944551173737885852460607634499012902867701638189093998908551104267969923420505086571883309736149629352311430009486785608750023504915969080458744888126545144969511982090602891263405193678863693375672190866703881446026692281537534861636174574122302944425850343909086669874546629610623819571092262298906364360683299418946717418664800267268255584010021024504962080903259117684263000326339133083283155908487518902537429057005281624177778742079655190368281066365561562301730094188043535626924990958899538826984482854679799906502076460573190663407086373839126585481418093151468457730111143886658932588179862394728271283339452428390097672287623545125731747290447842476593973403792544473079018319705594862519607127998262875670911921974935988463106450501497325034984991597545356639977547938984855834592470986980273895028953421443670804568334446287488632214519059601953723455933459383328575628221002149102002923453340536425119529582673435444067975152551406736510930026223149089342767723931419787264096603020419260015426580895486045506290668386048744910533060613746626501551822257731144102489929702480547333534911495579914409076830768609896466814412987587107298238778862181261915230254595639018306929586148120066465293856370162224893360214985673446762315762981248164185983388721045486798979040927090317084845512027277286335598693816287761571729368063586371792951525015849512027665151907685745153835786655361042497343021987422284995821040429459685590181882235765289275571987993058429715883358564713255521802646427932325595469237809505899847519761714021168758741155737224044204101632535792671955264601295691233530685966875352669563451505919750114858763907959925546453326486625039626251377695812221819120855648634187834015709415711355630281082515754330533792622610668113554006445806861831796216894074084970882631989250222750326976821496089325438610325857908563117922062961690107541593250140220647235500427080845486323130134130438706690943966544005642015352494092049308949063682586221462039951409835259940868390965320086900430250740129039514469349217926447067573977688357665407779561938740222245894082417965539264457816857074459329720510570814362021775652086263931918962352163721046675824058319637032963120334743748359397141034103728059779027470570925519768364691056606597402152392607760744413062609960909163696671859020818647599359927191981500412111648463412470396669512553303363559457199285112023218002459920880591036971213631570633593324035891169710568469626662138254555769224970955261881592958085815028320956806189578554430615486752439448242254435734609258944816423789010641827616230693540866975574190168846432438986316700634704921757767618526957806790694390201242119146442495788876694019793674593671219630663312437558420757929458598913007445580504395330558740783316754893885600736255327912383804808573451264269108664156079081330573968937305184512539402586184483578810560040111174171399464103935956252516627582689335943291637080877154600788308745947552712436181974773720520302131775444494096108685695809652965845118552900525260242358086979180351938980544482591384056236537468085115413209301753199954622292588119360627863008849245904321553438175211943635752236980674197264518033209056090135452618354064019386519237033863382414698310157346283427784424372958316189319058325761886123574282827590037057497973056536890529390331013474200773682309214465760010935826055145140316295693012650102867867700815241009274457305560431286307322317919501306222268763378560054054605873644855009457147524656667060634828472214012651942540722023924193029505270231946487879171745344501366043384230050031128125583453212464236955844012438901842176540756655151188895962886113947958590050074942295615366514513832445402288461755793634731449009254156615407648579470589107927237645765356039249245826830841830203515978213469727138875042910634487372940435038883568192656139619797978565151181441411965688226484157806576808055358023396545140399433982443068242534147247044668438471912210622058817310969278366779588391917872600665745464196103008910448256535542224887451062386755065689815208928764494978872868057040995982837715158417514901636921813883661660634100829557697104610456931433490484413383466402120622598825128183286060866453135062349924483891561753293178932437641684369416799155318574201565926282320624444313412770984502190909543536419111437874631805055100351660787127626952327027775203538592411917057389481592468037479102395265532070029693121825927041597321307509241987958906593486619627850963428649204978894635170952283794570250050968767893308810753756401196635521737754218838744314218576340874052805903460941677542081075763758836891236318121914827545517106792480979737298371245884342294950102306738632406010015412347338084766164702578205622811001914283526966074635951379840605216217127491125416980713601531499030637925217020177014688988516513317101443744948388268817160282476736324554146690119161238556615794006956766809324471674888786095873633024597105178624964842018219147205306224142286368637830547810240801950745458166522056213514816785689909299256662175088222280595649641092108768418079601988427650172251668742869931008690557560220998560425441408367744792643359732138264648242951430615595803743888318133940301932811199699495671082267124748933740428094674585891937055250011936956120746342403624515170055845413474126267667644084012742333277696987562957238722390453193571714734951725093460330755667601838397212773533245061793086284789042508485454535402567728498311040335825453921830098187647531243605793560754933027463137047641281268948741214878625759221430066266534164601243161002465425018646325432971992105989494039157187215746580261165500353073422966266296181900690261395393015443803185372727240148253599275426063387238534261180398051520596502669029408266272667499861729308194031881317763358799301100403342430538265931106769701883781098049338049541749904837675725723344294797229033481210377041095329759958663978315178758501845544298330809764764236920750183723803108565224939975516337763258498638662863426966211115291987806218815263531075777274471753546271442835086912578843045719988795592335776732931680651215931445441331243749138436879152305014063923483110699641803120420919998409109400765692299034923014431152695985732203893340370069020426580757394133938793538871188259188574272074104988546084862784728800872584151304153658786744926547916613745741298566194195647363146436473684311183632121308683192412794955855557403958343157552209274424010468343791693709526979367409051300541123446921019041636737978925941521525980903614355062897768503311823230336046549145572901929910842136817766234618463207982673250708668955452624928993745283142269228212806319036440829234586236142124578483840012761946779525869124838948538385133927231263930689369772288194518694729596801793932732579574364197939995436145687188696801076029316986013849429586465599765679777996254561053664308561969805993844693061922553421249918251292869560600811546190887150392625697923207631409564761719667660884260219975351009783255886220285935571628337394841506211012497116665181265631518354976191425843303393704249186318413336004327753678587127298811175278706470393679529174895478079927592931701066438035871120876140381227250693807487080774931345868918916426324132560534585910003373965393199383421426224095608204902015030296685719493703514723043984696242319535412737407015159465303804923135093160694300685261871012159500936353134240531555198297997888694625979955527552513318934425776135825388238977593275989933725496387366540092746257013266520477872131627792743129288906782977327441458543187535090052598976837727286843143051378778367734418844325051822838013675163334923136593706489197753583632302432275440598194406129435403764510168858475824315644257283921906196684989646186422101873705988198457223828712956732302315901236162531649016299410884514569474229881363995095316414446639223888717210097848105356068795441578728345984204234202458074970112602318459303355041856845239264038607942086725409057616945636362447605090549080722181338401247184538189265498128927040081756694518312643587344069629795734390412966884211203658654877932922523434272486667359031549771322412972371703442690132962588460910142916045048996824727419847767231898262539272007966514337962332305439837106978489691219852477233446915536462501722554216245177418453856679600413476521108235788234406848029276662065262587951208983443700265287837792076376169116713090349240967480692480867676773708280956087312587489866705021758303644753576238945158323853805870277811641240401877522081248633087238115788740793342751029850280998130572940914264432245349462583516676804628013327702466656324131255403991107203127834708151298503982385696163185651911021423732465983685780189350897193513133919144448705479772245014495380500199038986275110866514146077392636459939433764859021564139260509066215295942761740568724346494503282724740828266806555766666874825247311497404959051504729415670486326547945121630670581521629103806775982998279746170049683797573267268791826667244399692887948596774116353698587315761751862665205230605938565644050342507461060829918930714601564330135560094776906033757383407769077659359822333102949055133194400202879873319650031834564054876679095073270224545176310023279129882426263207568625652321315813022897030369551214114175669240658955292805564926969358172935791085215804374377374419133173960246078513071901776908013597336698922707707900197874448601827344883026385150596578529973386868041538651698982192566244742938050464181410818477825776165940996457126642523001765644898397307813176512245265247442028158734934227190183955076569257856381189504217503033783028640258346275132213298879329249727261962936512967671693242593566444180831793415881598723753446834339081438759622740521167923699395708000617574103883619752503950400191711616077360925766944364034428699126616264242328244560347428763318271793816654050329939562531099706970909973914722447687023133581783042725214857836542788230084569968000400120642279003195860084827052130623892008691102932112386715618298767418713964530743005053814343292828016302552311036304005996329654898956699241429271218286989241906674788590446600181929617469744775811809559931842701628758749407054917000970853722382053916631649363399453809811487082056651969366466452731683289915353117063505982605751068381904966560825619338330632667647419291484202047965065906994287240521139666796125659192297279941274600848785240144221925920447458754841677548162008548828847763200188403674681510581806870794550504865719410395221948692299568106392947692067019881691717921393920070713877588599930972734502018291164099728531187039574390616045219066927705754176234081196064007450298882703560129561534325033102083422444487335874810138522588392143313901948698555039811099831431936652487149475876299946179535802481396622091767911158587813080960957374848930998088874424498322356294485469102721025623150063543746581054484594051478829740076041737733630147504063525168368999441498906728064087266042920960214604857004500202233049996282520759209421044338407907958246996373612549299436336884869088110381330038013280582798613432446807468605135668903200144732923788690031304183665895492118300970271293720485837156299473379662022693091209966722115825356257607552661385914884642905819610007761710287106815319315455870404033510640459837921009261177519356327674667336217045844025042347180165927890669590257008241322318254371394867713494874953716314376094089022936732005212214988873245414638687457292618450027291010814962304692769491429103265503421055716884416796109533191038979591623283290279763686934866206561202567293334934382115035650936115636009349227136716180044588032911563085577386738295017726837923119368904646879477576186625006418178024370633669938893348751601202870612455976039721422871015215341287611526465636953349029590275675296860378172040446088909755012357682902878538696869610109918287400316622612541889412677465465236453417623740828829788442478797960929191591422315756440468494487062422516892079157750999793032140676858811403649553104615720633431770885531170200584104715995818341735441982021562799310645951840383961097640526365005202835163476478295934124088743389081047947009933974116285386485633371508233117543462542839487088762677526845665340966338983023920137348256580741719999462420047214629396219039255726580122486200543359907113249007644076893201614348370006232002565382738875349291270170235114745562242304958840974855703203474935089652753048139570597502455623367261978095337964975753542525623099294709139006103752488606973068524175322022798210200298269745274402400675976158175585107204442863245302980588876895571675453104553551730700999826094472959496901086198908460864227132218910159228224335059180692973182406827663553749044597436979697316583464421910547190627537843015413513490205152589418976469994123920750768595762793418210524089206398589252496498700427652348496538399388160237260755081222502871849296598117552291883272292537918536188095691274848867418151717115719677410514776365249933023023012678478398099340786250429960552218634302043408702372106099843441363901928044756866234347569914456895938561308830464885195339369016469010018618869733997149031355340554936459221996814839566363740448819719999112321956828646823882072937276797016969447602756043155964383432631404709787690481227219564978333452612447551047356392316601681879917826462637791115834529127915905167226999342482202364626451512944154291883613811847610046051387057543368628839271793333719498074924037971477851259999635274087466282694727463153551096910888840499453601197643299027740171298216737058012383404199920627049484166731573408006137066123009548417053898131351528263220581307712601232030584511346853425833489138926381079141447943135944002777528967684532666318433234726726553543387269939016266529243249709092206154341462448451424534206031956853726945857913783554060421131599441588151123062028751014240882697511088394242028135331003399175313433329097050793535646720727311625732343495171120384890291442886594197801262091851588918143856257602897157178622665785883268016782616316430969494960884528261150899529945431230333766878532325526709863199404825083761524908767990051110033687959180458760837171792908577834467154288356826973939832947367441586783089091830185008390980187691798462788190045082625957783726138981545063650929465827495391576198962897692915275448951680648487867505378521737861874961495961357543080679749065861653717284056544062923204658930608126470359433816863320434309638616895068743029104130504428870774402115046593042935974876371196346941672087711011454386306740718154517108075526473244201122859796162650095048786940483679511953157447808400009734243256944256601108255936060721219503884808033170364982711846905391204242922648765359798918860246021535531747672083180435280091136385781881803670178788972460374735244919030335348476744430175832004569488445343025074533910954185573468354247074275036162209268655621867062140896562065592216407999284293264289822092410120887283047494746861593472841271879141189247504548549140843084294728214072209433133650423018764569880748579927900432687414880924402356758407365793446090882564457345859316364688451842070895434941963519280035402540673516201247274580808107509528936209587060831549366535487754267081904830093994194175729285757155337219164317053840522423069416509466509657182529983291346395464870899308845011120448039017970088564483114399370367582808051031490536267536130395589838772643592435383801787244159084494043591956304950608870918881850500424038360171006057852025372837313435091297040361238414328761524810630348340630776236874956794233833165038584642673496190868679117422875132909366469651056775431042877629845708312290364119158422328257359608847378514230244637249916111647747081970924285318548848471419505940467912863219970321510706333645435162083647855936916601255464979500380083266151485153101801173731085357083536566335343991119156256136665449994181465583461520488155891923087845801191142291564182616906772632120287834373497311725901649790343932249962908167027228297968802400684335503247256014341098616285714879814680150630583385767664139276365552878554943621554659666262073885310685464184385455772500956606384687959612045921175785672939289663776857427176316056618272000675778984054650415175909150146612866481663170899584287044646755412618333371438834142879113190207863973694575418868004918278916310804806143790752408674468905576918843259250549335980012926518202028282636665832722935576538768264077407733645746362500523901566154209210360775359743517176049297606726555387944039166638577683535526671290075368414742933148060921798822127549837339860951363356338310865665641655792890145022970744743025440984711778440715378085236999926888882617090125407423076433881540933407828830006567994403833217568504965840307914716742426724516892049478660996272485924166225888273035700615631282972362357693513776111242374085861526057345616976847234349348849493291498283069831683556071767568806957286383949261157153846009656895385129432876020472910248001078125735946925899311088676203526748661730818867672132631343914554586032827433534334977769705568503123333814663962601683262969685284645362697876909118928961727247769767868408522317635071552707727153938112203271483198941621961228207154670837203781278939632119096104828510744347408496330972809113722890421745976247053008411397476144709765516395926269359785139538749122775067004651714014272901414216240905873016986032907572145820346609760795297297239486812464716508113752807574859080147382306528145925955601775355337245713750773544894680339510962741171650486707747962172250941998650493411560329934145434978043731593840133215329277941018551987221242606013437604620096441382965355059593954720151306046790184466488018592020307426791235046770582311500241228324104685620032218268236745744369209546300928780086847719256665373811063104264183917768592186789380113202679924730490125252531869959372680707481466740204307039281290584153587280651521632365859900733974898799305995605619042218616559800572167801083678224677698405253326867836929583435076971898054341432691239433617247941516856098368247449642302029425848094084605406600393655576620373461087909727837453000819761474990949806271006051365132518763789710562916641131288393965903516657718081330743272679206145464430518147239229135151069677541753366134393817457781411999887782638622055946750701260533795855538178159134155414699973994991215700992987971526733004970853333336454851833795623336740160012370447652561979080467272572912252416829910123599023451614880764093072394828542828816693852203762155613686271639825514203680872026311453098582417326879573468491407069243524715753626507034833602757351457969000894513369544615483135242921528405186537052162839253375989102438817126433729602135307551160858830046830574977021387047539781363393585912508709529245072471917713542469350478410455628619798040870838815270579019424045404931620293329926432527074954597649028164722825099878117371113727514868052959699861969682160264230852048148967013108198774054732987913324789185351424182745376339161432415086548113470823446186824636983407405052135318717717022996672919738432231332266141334683352738504969522337436041736678361247410824836690742901445060041122190272217538838512622189740888638818031077112107862969142464059553036178276888148537176442982148365147301942438174661686681161845823166826776565516823203973515720865862734180935013473774537080552630791552671748856616569050089159624775578586475064932407933034501627339245444531094379217573238550599036293987083516767169931065179588836356558049768051411307839183818411991426809673526940512956777025866787944522531804180765278868113867191824815388517813119931912417259759220973104922149103287418762591506630808119983297524451222982577395158341164404768932260869051111383018014121276453106761321436382939121273248576209227763475551762975859619359279342690184221534669365519951723418544425706694814801207850973982525397769196742411472029517976627951680218841332363991703259916237325761952880898165119371127421553794341921227369199132438971697010342652660732155017240833297006079175908163451326467973114100991922736217913659173370302717100646776300298193708159227649225291750860274365764086343799355965164097997961780131101086163979409358990843879715932986794907543559794878148553738880439837453892319731072772689967169487858272238621563474450668140721616463881015035886258575029810458347677679776436918053128667626951926089534515026731227276575902889101690725179150746801218777944320044760777404680780775787701664895571784358889472977154049921745945214911353949871607732496359217585777872575678052862338178949206165041985339239438671070748528299218203896925201434458343952602342651038625219936196763112098834289592639136593674824601418475675240792294391598545955296918291890573442429169150348778189343360670100090991569791404351482482291992017809893057124802127138072862260430582559604348889965965343951344782859281671704241922659633717169241782447647724620920169714521668037760481607838489977279877406282685252987523300027745058086275602852639191736509123583597519235347219741924553046769286427907259698297708645145443995769802408923619338316583635344605134338512206732126783380478244610175906800384025667545929140152408301653677199369344550010632030626530992698952222219819184391081687467520371420771867133664708950911073879256804668736609758880317085605683517671153063313782208601442186252085125128513568688043461119228408219388305734545364182907004143923326837233819429353346934419597053514459905079050941972785690583575798140448277759687671756816346759265210969613612681011306649199608481284808637590884668875631524894305369631924630208282270902941370760686645339199941563041051828863975057259353274233492775358761385386527224892204013203812667142316080535369813741597934151327356933226869968766003601766018651245999320604779364502754563882537707019745741842896755684834316939970349166708128762547767326586067300059984268047011661983031014446612100994377037997351538256263634455230116127029226767511387443826785788461018328150648734936404885691937647233449597457157928304880194701825664705051258419010474293498264791891830458076002747775554408509116770798343800341400852914674111220484090461224486020431754153599656083289144039434319339210552278629327126728229219170397957228145901660879942492927433717517357147307328047720586299615446017638842767017002670693930211026921761852097473469583010943753488728798961626379577759404675268878925040002568862073267742207001604765791024597941385293622234905120554339988813029363019820963941893346673852716227011841051407383481854678811075100886070449110760764993801339544987917938473485806751798733804174842475618454417764841713347225967269184296169606690654936490930277695839116532839897078316252970567884693790081830874358452884347701901758844666558441607190262859678853276617773146024883796584470209626089707198683209308146843353557864068067182650553202688529969114604072001031601045069017841566128681102371503359496656854969163767076179311705174539887691452490193618671007368734337730659490429046476052811919827043386614044731203796025158252113650446200395144174188326689112702411142921111256537125928995399643630590849284630964621881159993468073479615995229231107282832628588905524148207457460335674549149001778599329284046441630166693212423693673266281047985544481070558102018187081865179512567746197586267594179988968221375298813850304987601946736584995580251223871420672214232151320781190873362713423482068543124478394340335000617164129388427718694796166888742463032386243671295668791189598540536068951501007448252138430471894576324212519281839104636178083359309814430763084335094610176960538098130600709075374543440591257428702710853322244455745912918877504260171633000354367991567349358137066984986679854572018655435586494274925449200477468629743900578845871402415875533907178525511401394033187648324713230694042191824424272921997336686267684270691316565624814048409219398262824950174662934391188140646366066205327533448304683837145528122002280897693534589731313584759161790197712092732946024023351303234761229203171889461025005362418408762285090175570989373466062040519751398947545680889208824562252102397605526403262987154940611254556865476029288267656835611966374867921500666533080960134480165118611440522210083789502275372444908197885471127154389821958818640805501478597540456540945360537585698874325135556066726926135766930859347333882860005112275683209651043371255321828380948757018527236538270810341704665783348157189574135795929420190769182482591392435520574569123769413815406612449555797679524281032125536723604879501992200873436462266047216976622155135649316011074541320679540189652595579978864668625283407211854450288677532920416243347561468854980822840667362719106818594941263056125679269721706322402070686489862419670531641292096734224915334028977379762139096327345643390876580167523633748000547891011468785366088872253513115984068521470233461938104877889982635689363036746607832496601830512457028572940018364065867094307887897039819597592489140730872465749400565683181524504762815461519062912499050787777529148171681417651451454898830680175273736653641595251182584120977864029126756998130570348064520809743658958762788496733683927617888254307729952683877693991848639534508744350276537359729434862281626594558238374820651242892511753533018581207685538098467907377664857448791470291340341170841550946307827937897641793165995325146125852281625232591160817544158979486777490184047406874243009960527193490287533150755107906239168012725572752548088177328791291131317180037804075840474252869303006764281254051357990690753732945210749440235610165142487192454519436533983445909802468029153105430502121593084493296393569471327722017278723964264787985526733433678706537446359823808352463279569309963043262908794361464846726872989774665287662277327449646357277722748097944833065982250255866194866887636238780647091678506351549318959798297140980423643145388917715817915145186885711013362382953195406247368276475368385022116277992566228050018736995777324669258771460569733950446845188785828126469876670250162249423679216480365072177998579950318276610155345910967886461259745211002815113612600382953591427112204840817579020853467978179177343796887241826626661391730027576144537548578151406006571122134726057242611895673266219195299123243115147431565307155231238040418947915376651807299636965297173351326776867373034698678763354623806179654016230722465880946224684784961446398912804220493621840902696534043595187581059667995013125931740363534702299298171351191179685874976187949562404597919347161801499865285144989508508141085287199032915317671900725264996674375576969663408111090857502396758233514150934495388707624515158757681583362145388330130261914326966230022141086790447733678450636093306130786496070420523167323765096255602385416131135285731613737642163095334845322374467678563037562900335097943783842625396979901252172509874110903816244093775205172759966570804954639965909764765763128006269783918167193554193736357583066034949574071123692745434931110019448710085716784726703740707778524409794046362088426330718463167015566788810268851040848733981064722201315873018165185571834419046396064874440997123263778407417675183005588694434733712448065500638872226030266083720020934283325305142479624718952595602396000211574584982309365147321487194111382798461055890313421303063884548286776245543982625895133640008353302492197086311077447672347240379993470634665834949008491222572769792149533420440667981317809563939604867893395362168214170668325931348817679916877704676834327308721333127825527161855964817316470437767929404967724056590878579413614636496439168846357486587879249727397723272330356272676240775459303392019225463906727899134497736762517619828004822402795104470590310729016642629705546052288556756063497327652490586210604975019460272853177370900159119550972107098890879978883974837291783115102420377994535518843568080099382650592271949445372286594575880331064748778566479396063512574651357589398450204827594012945928549788085333507326022319791188110070661111155776025600398309325333406872039050801609195830583821484884885417255828439327833450613498321503486266847426870158884131963706693065154728512370550077209369587498752871141718484040562708262012040925519535874077046972094162479849437731517928187248664607639185462200001091470323015294042181290076896652868527343103539895119286941272424844399233119383514180418763271083125858153412323701160692189458851965437925941832666732619822223232782955539468402390487140927901760477018046829963913368672001719486042405652795480933713819843847847809385942446773666931874343669046912819010532052628422719371301151921527731578739110359221031317511503717058507245748447746434310101115828324438188608742695517823904463516375074725977146671000503394888261732991014473017170485897497616865555130502469037212570410424817103173108693885668642334597176856824210320758546239134028276432790424948230738457184085802356898336220549443224885144281679057177655221450846097121223083250646226629373243139909621544237699143164298539541954180055422217937237631979034305875323756073282219153319488711416611543702562733169885049889000473761002704165855271437901909949112800269764758870801528357020192415388557137512823798071679948326895515287279579077957724900479779056711724983287746943558702922379809304844790266487295371163655257616494713900769648975498574112899596710466497613785820712253094038398316800940699505974430957905612327668759028533675273880872924062970971152829571442890757699169139772040068160347464539771538364928051426844822519500543240348856968181063302823714974751855104336214100482503347922960408784402033486381859093915938810922968409064378553200792218488944046083912157500363140577991234402416804411667099604540754342418487642066686075785883461622342185182339836768888434140302797142619252695256504463708972035601167889694479741091402800439875229313876668988447241417809873409799675737312521123781134523661021185141259012365418825276425606614963451286613664361587408880480824457903839733788411419265713432819628892104360767008487334920101607921291258668354224281806600995537361469795267159856962420086546752484870483897629518291886948118139292329044310234766582214852402562727739271608717180643202657561742187485502824893235763698178757235571425230087019550595692561039137545197971026111584587338462311807529633740449468240649747350224048723050951311389142578474182502878010880310667420443789317865815109752625389739147022149603987877318551333689444422938415047518986284183549368415905524643634067595321110741732664053884697126118132620360095075896007715907354960777492526401186671457559527032555159351015645932324265304662148034954589837657675292287816938357828560437333266156748138148928243593088669551453185837884202136630627396159692866867645354066025062268528307018075584027854320063513619174081718230559751176350220424414596094563170873426849848822476385341558970293807417102289092836843857121061596964567005754323409030090378158414306119163377004334306216635227762987073366143453772735420058885246295361971223422644711825291000318614897398794893413594084384066177997136522712654974686212621693553026977279678391800317710112835699010574096196490998972196606873348986339850925524450318676904389566125084112340413239685349436232413807908225698372644220867329512245987320427960981492915227392935334481494963270308588112815877396022276524802014909054708037146301569576705692812717183523394527653162191294683563548541765539835306844146692846856725581453439356492856893093604093222621961537046777751857808219148813615685398146570281938227697837863834534190310328119197608971918570967650997526509923407993377707819523218367223295297418765561055840283268688890079821981685740809267919470704305946830263638625585942153536674182722965160688330129730387485950630702746646404852610752047707047142576774122938665596807477255051393524153460303594873366918658451124187658697528906540164555524397148490858230499666451915219304672983924517857293357665371258348037413989653447775681625282729895868890813938821131412356790234418504860374229359810782573074919332085150148232809604054622101476172793895436627724514242574447035342322501623835106961774179773715652588036824777323822652752402057839684317151039748458415838730937750679192091051667502614307308015911457306226936480747770305607523091499393296526451152865966916078162464256409935924288015842298518959240794577148169295785049872484763174859280373269549042057506871967369209675820784801938614700012483145312812792597223486718405324218895238895614940394737187848261763122911520392682892783325453316178781514717922330566670195819771870887136752027391228933116438272002532395430622035558451131906913303179193549205171065590558444227356950074964991775176024725232417926287135646307830543052760402594993212419176375272138391195831326385000557236328728354657213721154020674485221462353038748609413370070326413763387903353348774883639688561963261932451538743381509922355096328236614981415099211444433460006145129355285964891673841998312233858697800079585295941879856296470177436995864999509934423282599771836695221138680722994384657662258005391177753376380734535497713794433275948470847248472732029087865310086713704452307960210850352596631537253627725818489357671710072689376160540532640365998172731106048171122645132061399913408138612396362335494327932250707573714681644561350581566118408430245822552849675644125185475825060206941944842222990697281197078077054247463747688080420671224128324117259102777534142425948667829958473063458489693785059967866577477234567645160931904921988654641940629154319984316261463064725526344516510757832486584478796163523945067134711626878118442208874866718994628159860144891356341129510675358640168564889643437688759414597737445932608769906418791696973084641052075258139084836270312579654968367518044617524964797370117429802046910220202627399317182837589468143182008035093132039073393179136817950509738091344470030673308116505065073394197522179941987706703954477094705282617796008500856891411197932315397457633017351147269259962346528610648532704101463179391359548390502073290355580665571478575244875083171828097264788590032861843445345682373670882696537785923137316002860690244964309334738146062750517993294971114924411436683042240512740690294241874461354780642987517627455656645167704349399147734910022118008902876259384958596364138902507466246745122218230761656230470959877374645285430190119613060088985653317685940776709964739705630768535814260191618874502126828674510455598886638365227357755474340085587881113626649287986565206511868812742988522062813916388511155365568659966345590748853825650057604612670965442953096642387266789530456849577976464777467827325521044855935411404265413657888906132466266548666616515641965561090643580961788053882423960030620745316975198380330112834490899323476965371630321790595149295781809408142202725110399489005286718295864900894017811043021662680195721849062686641507306506662271858568365734958421033692806698428366729333215533966899962422626628013013202589545771729191584189854188333922313167911733160497003306540935325357066915665899737079032133650674235515805065726016237201939540751462865725102646734436570657774685459702010127261656256901402567694932678394874935083209632269998638187867103313343311606580165022619624769205618611862879036974256108675569172600550790037186832874399818980011577269480674509824415151450642188879377248556817172397033733428865138358531906396095969171571572127857496572860998988831716208012793942138618924947748007061503061010930374417264198124424211408602128173729395195340245148774576435580897912279580053590587617257037269372148898381030568579386034660713402413442071612012435424673739844785608134977533823992880302460533313149654728260113141692576501894026955870125771455024551019114157114099200403237499863913286212925204544746249782474193981319169643663304800059006377622436797033524881951359217224462415348945824027441497983049742524127638610376108263752862457823380995507656841836206696164084280303881620786722041615122809976055184933473511945982568538940097247388115619667501085149967456692296516171226402966328693043943886523535826203348506668805647019452434296266603791780438674818320942572635918625426948435350508512364731787671982256787153642541069075779451630399725298136463192106357269277672790605762004948712848609925394830304046313987467474217068307612740578505400619995273572887464810231093395194240468324771103841497790016505754041225178505558470218985776427037978036373948478624810278211237108620697837227630000090590100509372774467428403702987511775621698689885242147446579459732962872667516891751796585960358052518499669080627962672625039233413952617388549910042540331054876062245599742155741368442654026906919686689970050680521077238271420919329696197105802877342444436636234596418971970957298948652460207291403821482845002857713691672646171414619769931026209318853603310856109708493821801195935504650418566571135935784452911985202293879798349773145007843353161782973714738634965017504760688691332744293218956216041909665122103041618000627213470310056259291727876388246242997647340132991619568357802005800680980895173990849679665084941899690951641153863979987302079992262291410188813380538298295512564404000791693772507885869107602380088078380529095115161283771518260371439904588684041357772491616611960794314342541541307505465001623245581310080119641796252125213453185554851107110493859513616664702603640958582574546421678792448168574391757580786474142798347322549849346918321730755394826948656973193037540302720413914642140610512811137548149453020120325669173066787901662047336494650420595932596523302885022010351944675859619588639514887622750918811333393710113593815477662464553295317005714238352467312090379424714518325423213597866601481656865660368975526344571257190028155370591116591467386567072390657127210775731224882284762542163981331129155328569400879739549528277132974801873894835482644740033948762407591483962870801959390761261743236008409226053228937299777726448758665686307457198524761146328993486916968740423073283027476046951638466244582004604353303539304979504050555609768096669033921686462935694357928623664789755786275035767791730952983408171629680104038203090712520077934928422060181030955819901917149886284088076359120635339284665276224379142972578897751643752954488197514011017148136160605524145203121666583359648548473637491342241239795575572769374881078142856438481319658572894443043392365776875524058761462647662323315879438794734914866102288151399063150969682449240323204202279793977439019158597625292370961480604488453527902075158936965725327713459117358385793331042070993127572082866194164341273328958600124172310427970926813839024004140467506016276512041449354538849762561512855519690409733999151964550718499821141714374771227194840519982742127136508802515006344359334251614982178239078475183650613376194539091584873975673462427493423980064014897645923305998720192050092316887826844419684933959225831466709092979008491214855130798674023676011412002106153201636618457879316000124308667216638269022895097611126742534521517561269843196281574051269011667912681410881920504009400445098953507616973350632407499390972388988273375757666165872199813523284005473687164408220688942838759128446312100257193971962259156628958992354070939668294227662362437813381773067223800056245191929563754283236532561765080786759450287855854167123470609621655177169252275098070629808715915241004287080012968320450176023426575609555709473522920563617184076256852226167642936302148987473194649451348014464305174739506658594787072604173759969939524004227969538836293906623761073199774529166617481775918497860507044233692541173909542555492823875209525472966529159224867999139085516475936269049683990182034372265847846619466442517703226126900893962985408073875614332945734302497381687376537258686628208542448019811961147840500610962486256761212543607791643546519454296998117748195542778337042330531549509997192477901308154978361202865333477586473977571707369517061750321260921516512635784451400336751914891105731038074559100721202838400714300729129333441099222526040923992780356144724609531013334321821356411945784686474391568721863035990481379220514362109177714397254321602296182922633925634162977760616849322844823319268278025728433233774048029274384634700244374164417217065310758156417233952137416946161484704085584038701432812280850965701712428377712871646444141242407817579779550922891366540096655111972595421604167516527956287583760357490438057654486123872676245182487314568859560736201382742111686264928481673361550185435454064556113569523924116144242892224401153290403510100306690277086491022248414154502490704053619330183663152687318032804616512277942821911250725927198752424273424930219233817534248225252980791500311495450750573466487715393996632166569365998448952461523073743796566547045969181089761692708635511348741840025126036962974580219035571393212317752943161595691334284629514713326943381758530785915386465903074124217737876537684995351163992773649283583413550936302913797835472791030053381388423262849631662882473358225984789903540579997565354822884972756643175753793398260483592152458801028948288832283810430847798171566626415606711198899333387903860449284778735149833778179770591664411816690830579827700125623277973480693815345616804177264476973632243026442970157044802582273879994657880314379017303701766728567894327184370173271044208860019734273841428276950691568194780751299831425842527527716193393955122416546018924707892769719431320867990912187128115288961627071245596470869209558679014868367533331882345777490793636050546340055291498604719666105519872352572704492991800487572639288755149645575416262393717287146947002471680568084283019007249096756845440278082190787857140602515961746057593973638010254689707851799950132703181540062136277545813505091013918953109616971603518807627748245396140630388789165843411394285085069297725508771420798368723262161999167311415528634838631395545438517193306525064165749202072389852298713444061670851148930386555932238895589596646760364284956430853880843392409371444050268330367255237679042605969397000348093524033326329815592988238131164127196192526511329556253806546053270863610837437088414481498226731957567174125790776199842333579363053948986679793108002349187203345171901806798708548956186792877486178947733432299105522611302689982914635240318989842111279830304061359719733595270095681616202077799791346939713201692722401316440846687293910263073383687620536157850078100359236984091401602750356181192643194822682931738319129033960397453335221431227435560432188989137059485831485354070449006861152389256726556968740708274821758612872793484580265687129744479233608569307872451502784946925084380450450899312337305710727576450065951852521692668675390659506884180516086305894362874567470339672159272593441311240490148624578229304980593206478205280886931984729643860161274254146943536078868413527405987962523612772680042150331185207941496934279257993837776717508626124362785411143160353294618985461483786451663812823578965726270783143595333116725371002632386259161557647572645940574814145918551060949728105629868931213034995904304121481199438645041814021275050965219492682449944000007872666321328865309529705172792622453484381227381472464161972501050035772208437188418036392753071529157048657777561441789611694321473192459615961151847537136261104677319365954551098397232701024355267123374412125043683368678992071234545737397819283301822193818617458335186025187545357795646126974512300273598868987349384789053346772118645837508025023940887752687913980448433102291808454780420568967939297823873768806656753009916388404392104479464047716310511637862402994252730790741043438327467985246730338123282581415919259499251334368610647932924002861700245773486938732659650559492727621306071655062737223653310077059140646579737223126974460006926323250580963482860842344076887357309664443701045722508411383043934576946978133608178042731278334610672873661317839256369417213060422503707485988035516124345187952008935867507040381323697494048295688229329093859541798829146983595349003029157995615526197499514957920438031153240682954242264780171998899255214350417488346650248833671618018716231889696823669318936936672438536938056331122944672598424950874341218816459511719516027618729197281687303730573838004894146101449264054400884119477623887046081797176229295158837543229031229473701038392469020128627706645713465937397022670196662986774288446130946352607631480448754711988625012867095911109340576324463049814451976038643953918859999927490779161048313467386737924586111259412643883253612588116131746958830913157248758885948352025275470448153966374114431006850573401921249355240604517139643760692735550363727110961742024436040908351731013902375767176722304551816120112890006500575223164690117513873804147817294968096406523245088465056452099402641074128039432304766702796006829742811048259994387779957190899571177401127449793266151210237493202002020735646001539205489290173528373219772578986663635254532875971623249034140034794221971245680129011240978982716367310617994992504964713389816595237491050289185057064692654087515716258119284331427214744468882783776340933490145192122533816843809170935409330353873512739720778663460127182096944612230447663839701851961949188601868433645137307616052213132700185527447565254747696164589302006890427701838044711712970717135027591689343605522146725473917953236127907164813521841113226382104266159720625581306148358316784655915550521368794010003664772460255061795200487495009871866711556233008196184756787527287812014980010697736896872995183676323953279658187923771913182708787266586520189418230824567255931940998158097984641660249886365900083303169113476108349799189423729584208932531646584465739689801858850249459211825567669315628394997469332599635803551124943067041053034765952086574502796085919489160527430764974535985121204540722140173754072529360809110905378489312648310061442777135909986678173637584981824333454094152969148929283230027953395961040046392074845847427500657604212319541915884478858381150719359064558435032274821579659819159144460379756772235662928569652974097294533872959273001255714131943745255204637214986478808957283396657315359829767263405070195585106280945910627793821258054123890261027399115938664334593763410927509891694693301296709886663161393332853160175968290318424890221813138873171221184988061161295068220156953946306354872004674615117884596204503212769403749861500676855460541404418861637201334587496243502112537375374158390956362795179396791893939540941746768401170701743851253901036197691857169383285446616375380026058840552892222251192036611675622684965207053267639447813947927816789506348379094129132732976527136551472529820551982429960758059637892352752713792111816667234382245929674336379583994464380333731511629823976679174102712378029075305326206560764243383026678534694905936067324372177973607587114605704069816673515800230546927831677351619431899390040625601514749532604847080555833356096929680013138298958331499545882913290014272981025788154544992029920477595620332230995505218982522426717794026841079366634279157736954745087181204665730955305080143990019463725757087527651889149312622200206670899606175150489548185889954397600396216607193949176517898671207077730359617354089774342091865910351162258275260002673935535248433766162028322544552066914034650879385467750464817139138569050737646117436115973464162058090896894952510670723763835386075065812457472620029713976133357410996834960454476937615171497403189107496580422930820711667975262880170534681663908168780217671985009683188914481205725163715826508346605969265012929201975204313878091180908036370168088700781786964453146120548239773177778558478031260262689743367599026213236422309271498362510537413617112437478684332252104273237782360386045293608987724556639410045305419853964706600955230875867256705899759193224032979011613823929438043850104256585373482631897228027531318251720954722411451876400137365733222035239802839806759015479242249349147401815254329864071447898853336000534320019285745564822725487664682580109708403211493119238554666904231497445825920555328100528926843645915509541431600310233920309285530957187089004556106750487690328745979816105799990255870228578203911458529527940333700827715189936064787139829822717053362994097253176745355152190153699709743166721930476705667257541059294685282208679031809157682367884727076428688097215259271210216164178340314850615602770011226605522665037527054325242224321556065534394927567917025193144254548960333624156293757084704789387363263986944038630710370220038554500696477181876844305441770195104600524899607152639947796252038734795372259106920885640069670244728594820225191519250286841824180283384590265262594604375079512443275961340570770237293940607121595771484007451676286928247692195620859745171033588955065042304306612915930992154413480277865533705677500660295470890579485813427551601876920504186111804184879546304377257246816921680868326887833611038669873732274607399011445040631393797342670078385430871004656159468907754800883785147093315744435126561976100761413575896016306360382363218669614609090948463229713849928563774660637429144415259977533590045219991474480814315988653169501417225223607405425130227393451604025516419703333011045154015463490890315159253810811528985661391027698506339304798371238298381935474738141306810900939989557062681421028192891374949696128592908360475255438793835183455328645559967186316416318076598411762182406042383089234913121105093490142687428875401925771402650284707209754839272522043005144781530474768755493547453621438489457350172763653024751919119617008009581085660916934868814987105317883251394161173713768600211644459109958767392278940363570934317555834356433746245620572947057992155045807730990474034867856524457620665541086660660166368436289556077160090043855259614366087380221313032477128374030930882186823263902897062990240794283776277192281304308081993140801118572444325400028125951400476338238731666321317140540418379237895214919572129270945455533504717554382551407746436928211666321066005336024275915247442351834579318764522691781082107065819357195796537040263569918564527252165929504923603857322431081618616142290632734209826237036227900177869740472576580622439419771990559699400807108147668864598309485060572406085123071596066569963124600839363220575038719207934138476656669407558575529526697373926470516983893379974571278178419982599997517775147817178833130668613203500298260071384981216902077766144168217338355777226800040766663866893972981914197491122293524587391364672792382860122059957169726179702888092703132214343187043357565202199183958234508565694695083327260992535130158692158360181726614742666703547735473621490108642792455810822974049078758677428903026128126485969753861486407664739940284964197762815206231346985712856680462800184615295162829070626752705023728004408033441307463616113382009112063209421806721365800955962024232824373857727905079634439755605892029484551970332588215670846286678280801933878864581477019862547275742927958711141974888493247573747030788269806201005396878693135986294357572058861092446242699952412696400765163900421063716563870780991974630161622534797649626692277729867774090463710682776203070651990401930838921802965016950809268922944748743182257448182931171396327801935421162055573192078555776190933294171198049329237450912534649110828573013966683653774410855705496802358208153924020313071245151804955058984927066913218949029422903477829723597181115266517212701813680368844014307743697170627540416663403380518687326986898414624543636518729402283962792216374183234285912514490546488379092877820917537500762290308497726491499618296757406730087518868642599893980307546808812929339241823427085720142211976160360167714750989406933180293729330610773575996444228714034977971718398962116669157870621202135600599457619449152407082605290557497142864052899699035542670718587075315681237143784729550216450844851951654314882450950458777436522093148551713154450959299257072287352608993078362156668521274423768826637173548650514292817557684606877513411471111290245148207780464755747622186318049145416216391871603139090465689239327024370240480175937530403651621743908554773953216038211767563499327483114502548033335608527270086544116838212041583157716900135363220205377943397663151989561510467073412597049144980020168241544912507119591334082300758083548031465385887655021493378290109267890218953306827363074046925171146991866418802110425482458636167561906457173666929384300767755323734271026831534144021528404398915879614339759728242192731269159916262489449045011185032835752778838201543939582390531269055050745266766990216902384816240451922008323256481648557207659777569600354363926441140263204907337239601483165882708342236479105095993183473435023331884812297436224908728190469841322831778959911588294405502141391272920483454450323094911871934741137890366612767221657043695219831482603596354127182229984349700111299676392018717373115463742585038518514365544401507426877685951545359087191951469109975788873315801650215442211259572489487022638796247492560653688727549596163348666850284262422589491896375698357442033660595942034005529572409455477168801501168872823342654905976812286578062481478155344259065716431245097729865581246827159061265270250077894879676106290034539928828809618308639489433098849858110497017627854336343103859821971756427285583834595516089160588721157360871731422062722669318267024778515726936325053899706595924349042231675865681204650917195468547759928947040403182798861754468004476848544658600945079721237270410584281175508145783887226400004144234712511934468253082836543325627924278202983845106927770302359245782728939307925334532799732359253099164255806074212781130552578619948437398219271078879765158678027038942709255715384107770110543445982118101904805200762751310723743882529061869745824456403906544169145708287291306567567479483037689619956429796870103338875640538267246448179330931953505736921883888643222932024811666727943491097057663474959271258044295837694900881907165949382530974612360320486558070302633362838080593203978341431649460250444503424589946655070151582948140874309304040026987032818172193797645122682389062147928144953881186449960668057309563929978549658979011877611343222944087268547959927825778339369313102302309969444119392188476445955766860511442589542138013956307720498355565275352591060339275106068722209425601447971900330951278593372643427706032889978477076175090759837819807621337747235147588910226557107687894634486711952189495476825384366132031487129196328004219269964184000502504384939622055454015603197583029901744039840278033214769473092368874610324608714654243581857496640120165607496475102954919116513559957157910186510912657299105126873254371872244813641343730477440211236046913776213528491721314168319556444831000441936411326014461894945320730673707252123159479443791211141931928046247919146299352463629043246193417985028207183406071081358555033628586345574078732589162905737394873890571763063493904280160447484383286483048073885722358713084908432890886513791481976175940336897730907654942104341848855406351509696866330742863706532019047130217262704102823178693820907939670155669013700353018110766746742969971629936317756566413314093709575158634490089139443785845998316504639595708108881437331403557302951249781288173634053234981276416462033641391485509825749356567257973575879026002758126086671441041834824943313188648298926775746332555801757018262301079414937096025082020238254709526811398896074955860540222686267173615120766364408370886747235738826207381716920475640415556182348462086110636394075684939079268567615697925374654145992811602842507584140624541278441173664822306758235125896378628485951537591129898777644436006503927786165243839293206282760167118746281513057984734274819998654368440426045961825556380617401488855836713132612972190816347660355731815032301320898494264775162696147943183419303866327333958452922353289759741976140364970885330624018523174394539103632805774431317527923135685024704390186943709929740704341374753891462232317665705143047203510701732929922953109341739225957986764175291534059521956735103412293037524960354187728484855457342214391170747317600487357609177560896986699468329250498789883323581941738853468021376295948418833879727037328241018932735896137566640396500130537147184675112605596006667195826181045560349152223102171443076115238997298521426380025642205800926729924393811668041544327435947958822920644590282274488992252030436487291799956525470961511802610552601404867077495173944584171035462081547056066938487923404421421258141466104743090838773105840592681423768636457655497131256703639058513743888403118667629117930076153859399806369749255968579438261442975238993302038372046798333446638033304666289570378804411191611368771164262906522581895231449062417709775554808161221593665146849274259031990985047850407917931789835772834717985310822159350202045066438420120006532804174766957934117925337489129657640833560453566799401909524514648427602168835569128956254288256014407181997829345240753170601431317563416728663841488587554142197301552499765897668053104131739398418445177197582812841871133960428573101963597821943161527645895324978355845969977201453587708370168825982467046008755732361375945739563123927605768480555228725445320874757984082838473882249575175466056364902746962773026783250719655761468185161219132446556531593486773679919478129093878432189481815897436141360381185925782586041737023234165292712992217063942899424513748789317424193198843254403579547967579542036925152784528125436825986023118030386401117758411742247058782441734969428346318109899264694123689603073357255829281240381950583596537212998545096884861236338315168924994361825940507768284922900118504336209396390330786364619116134353297576402904186582875332711214203469949910489492962657766067063470870372959620776427740207039512151302056892766509068849490301859868043412110822307835751933584624264205170264760453460654309284563241371935306847314202881797254356370779733566133786055654533620515430757394190318891258590027436343107996352810150609214969598952857033035314173780788595432114368493961844663667778227145857896195413104581699093433922494171880294483294238327754025394342376014579303362323213281031234470705167659337262608629582886438314225681946747023682257543529790650853285166160195879945878729751169145378858002489434849976046313285297661347185815998310295493040241979754514270301075132986784689320178820505422209920077627153478967594364928297980016857897476101121415808970455885390711065835384719793590874769554349323559303252693826911949427456608442054056191459067399262319481492313707157804165189163061010812952431248437775578642161450891448033797107966519593845387977061048194377931403325314424982753735623607074939838198536188779804027703854891545067396120924543042205611739703467902979103088656424710311311038726320193331883301881886860714108651516469310586591647536977931510602993449313234066098118081405574819672840977977130879329037633774852321564930041323044261839321186528211199331478224201726233403205277852016555561937596039789659214048015264224921483927202132676423590981629577867218419491140800741336939516944111343814245335718885906347069368597833852874089052956606705760601359364675823045502738666609925236161192890812354028974682251534395269697633395356460591575541796522163643546855467752911169957072669161489319532912367798800477146640614637204427576479512844392509917530855374797155891439308174692702912100620701637640781450220022329767908636094846211496364989579868549015215872505286724867266512762090931247458246372283843108936582632575663580135690583587528940559246646659116694471782858364467880393951653051698903687223936762201453775697117359565188292925778644801604583288207521796800752542012864630427129829207223859596503153931010269056748689374903132135972616713922410825360300393459150026023822245442814023398616960294818405383063966864733936184139109972664185313965089770719994698170140005244074285029517042108530453064644538236513172985618521367929578790815343176573020793790732414348663019048954293286410810008138437853845518044468089354159340404944138263354818509931607631700042562819824900491826395922109908799614848838819404806006994167433375974120094177510179453057045202775592153124551455374795774429008828861416691668058863660621481611739544046932800414703390427008575437269462660144683710850498441437384205625744067884723134555396345769296562834581599017286228260587498815710839481010202035077804473705724996875022941747378505816463197561619463902985647141308416560159878683373507812686243459203859697315707141195440465674443439320124803686367845954223711682353758335200855246201291817839052305399706430508841671918693275335840335185200502592694556676806309770570386776213362712944852372767766633104497494492480128447469452295040039671766983968668445832437422850664791942136002816761780530877058649835972435867547755761116614453804241685311324495090206990264657166701628459150622878047303838247912034336503142130609038845190409394426120934775382677214469876580281705306231024983806422712540427237774445760122087773562345030758426411084273269708674302094327202205470376658444005714921072798540413905389399801399040972083005354309905142609547992483955480119857443549769065323073462910001004109020041042965247635329285118110020672367220312698976525777264002914671733290707532604603167669582739924858216989248125637886918340366808320500872245768177893607760524358842929205188855817887072870512323807485265235147433052134640147901248332463242717453827982088499462582039724487557294551150707119045678627545200879390755994523143985653374841838155264640196812562080475480334946931090993974459029294872428882131821546900382691020731625771736996348707216375516283596937805957461833758532468968493375038145251504244806594627714396935549544387072124240178305839445665319649098409220604296724648867094889695414473575492338774625144524345618729959045034999422292078609147743758892633562151413035093115197068898892725225964876178005202787875374650959587264650519490794865624961241975832950679069490514200954348681766127563426934414706539072758540889213439920149780332769851878353526904159843098644992804972903681324367548272743596807170375978032051060155434400566992515290215860322804560531901038381020209557896380353918499300644171691790905278373375631070230432433358885988164076263597500730480624946903574876682803347602767940836711376418418719787874976816524207061780909516674790250004672182726456911170282006102163269304478028610369924709586190514829787285542203624841604044483500395423572099377707779827476070232181915429558185470001936468329034778016905134060321704706788186575262197985959187764925818437092345380306527620786170308148127263047129224993319643735192390272702441597348418064763291020804945872318730186758492271013889377103858910042407178599817834192252183786988780368484848177317491404727784554013014136924673653049616661711727272706268121455987659138903437779822680052907711396101858848991058458279116131635997983477961596994629847755223492983071348863817200542076548705590067116230554889049652763917641837431528602654133269191365488089020844955377123436523895517627214631246093344021581693461985048502945130647470179342859605274835520793618354809994125728724367740130588255925575713031582717051655575880093316220082261706837854044994051781570604087627097206375334826642670154484169337087822446541263919153647160421282535994483753216297619601351893567420689986417850359287478940612042240765957200260818729256040083000803986032298957739449965083295860228297354784140932985796590478431594603338301200160923571859397459706568260661282628896754962818397240002060185634441633432587847624073185911155039246495983937335934011567368209338424904996869381222368159543950548654173332878452035371947801991040167832559525180354476348368012801034450648762307406453079713788671442997737420180093748684576139428954225708390343563084112918145483801950111907349656789887087888375165710672451396959286267450498285069384568972934059914559368916830605630402153624403637523889783946424179199558119403824845818933881406986818277801645846816012082459659409465166907530824308198632219777220941412806973429081805115283034905592024878184095010529377042211069168821681392310811288183270006874781878307922801022386321661429613666214945627158827157064951633201322565338989895261682139379412939061802756923717319729272695130583128277457524298454271573845014096538146396431321675486633150764937685931247249776044181785612257810472888494364796333510069740252640048070093191336080832848729507519329828912553687256435977527254963818175476652649548682143308929693309434404362191266826367367520981498594417099272984881736324778919429579750045974582416856057042779251751038787572126598626291555745727885173353718520079393405383877488566683453808962451350348404290517743582248028948722082075078118545754295238032549398528468880389677330920442424066618214614967366828774688606673656495398957876570681162230002458699812678850313063673167871614610516387730912202895828584563160051784965001131930002441402519169773921846080245810829808718022460338549445231264362416679874924750782514630823976359863805094430677469129935848504417366380817295254905607402923347208820089206475358445769303171776902129510696897910261829099191863980435474814491905740316146137525514588671426463214498796457554750409740727151382464651268391299317047668742584682640178319041443784277160810251331013638010641206805304508376167931714584040881930999093488553100826064506884250869705483376044727708915203374002128729511800034905509284984769177659064993936225444368017674683022644029799112007828677892552058360474751271780851533667400320737738874787052647563129443142996912758425840623330058615418330572848984810397955995555744736334132199727428777240900327708395296705205229951731350098017212076013189490374707416560830476757258534774874052383464708609767906637880364852701067447927525344315486012798929154825479883017410442384991333066320143403964248493986843955492161480401002475441936805972664570518059111401102013381461497092444025094269662980529722866810913222918418311370311534058606348388219020513053873318408416930228752683006041856808045582504790277862419060693821603139617410248867088482358377777831435423343462560257083827417994676179428802304246611076864167460453557598582814428503428239920598973010961207842557390491905176378761419566389273713754706521122677805777825220560061178408298876209007048100460444060846967132954284894625727315226145028797435252391328714250135984129363125926818885031077191756544789262953703486969551472231400702097515389628758716647807861863621184600099103938501911432908048192293137541300114019500005351432266573428155142429094024378901703989155719857911069398099905684377251987507615816086652348380070422541648728904468902000459506046372718595730087219431719428635449438504651772777677625123986132642075531489262672067188195295358971920332452439612061519112006127183483145349205768201568825321292652315197615911292486301165926446682691802934797258618914392395695853277845260105584105067751517341146892758247672143092018228530479113777012282491414937112878084098505848890608528618793753357429713834268907678821876014200100691320020257687603248226794872887948054090150202249525732461748893857062336466024347491929877749969761850880589359397981200866283161517395724793588932286439802467365981859511646620058134832479097190813645993721840979177267797432096916547354778704547724088966690003591219077589478579427051273363279668299024787168282427900981214281132335464098317888483948069692343217668698269708592489875113179966426818133958880449579239897340828251280551869320563888202631780742890151427833463057337661619197859239370923660974745887349165761430161308736425274008153592841077435416195032132586848235395513205175657962371527439900923275974591833366294732802674356943579495447073707479002205713946473435162952589640424731012445828760871553693099070224132265102477892997588120819795008180561473582922476747683756882534493796839728833333605810720538272077865627585590520301338552131408299061187372697449384934131706354205564674063439712233156448400178127322249161530634060442737648395903178808425293180460850913796262930628963991537167894754615588716746818126035736723024373689455189363069486241665264861930376229286320129380809530239165252800453272407778073185444919259205061734210781260479631446506617137807539775820766681778576418177302859052410475184782047580663297482447101401736837266367590669775656035498172993998810044089929664078816230136130803329818783092723662375725072584481072464696565155596780042632665312494534350034224277501595136109063059100203993075007272612334566639106177600775184422687255297293540248863596161547448371084030139498699729529145809370232500649600161652636165501067506766667971650371915775760693579432961756727086881422413227652047452737735830304147624493909475563192306275358766947804453049484923770492226402015261449140810608874132895773389056963467960803407323032409714945038485518286247167830518768464112456750243552166905901099109512996687658595009704300909787690332692777291846435930068959558128460774293978384393823219271962268707567268156339695345275256229012070886734536358944884686690931913835712001265562435338428367501279735273676510000000415581313699585491500921282318740055353159613612439322803301625197662981727367261246791076414243874636121166890845109081653083396597360413636086838391076971744837849176670652030618464490734548517901463275713389432730333547306886861073687772317016678037926942412819602337638997964404878195091722478445590329411855388407980217116894392365398766909897520948605417657255474918322546345533136081774152152580938274400876833043702122719822564150578796132110064960612556200775852895769939804715559240985754326260784188717285829777260883229305263754951654549194956323803011109434462066889625069695373896939193407711385760552655823603107831868424551559424746841776270635597772955481432513756039054866648784192088364577962151590685487057660947768652331246776094364170969607768005463752053217525919412650812537597088931680236184926553186341162851245019220316174604934689733203955258321739804619853933568812018227099226244183870078032439919561389080197900965692985429333305467958277398395575364526305631817844363391968730986274949584639465126320145127373064164505856236880856061736133777804224778459337320535694678077393217148546946560254880087772402031889160576008409702613501737377847676099970985978283545681110164821321459036792917400762020880893141143403244154546015063840277095216831474612961545985056575782571558632930822132969651511194090856651404970474861890955046472210888996797320888154228323847551253005102007345968496389171147565325399490712215561642537677147849523763799331544723427246082395271392725851977586924401753836913754771903101019111275429668807489423591308777939162645794740852035300160127515644528675795480692076852340034263282117111479093954169322042231826121553746065027582628293864302899271716857750586266016536461503884707732030100222115569750001416654724648849133109634235297764798668558396596750998932188795175317337406994046845957060419868213530292255584612598588438592203679976189537416185019808952696175941265292642548038805298110737214280528627630106506791880347339052293910703434379779043029060268832061421709589746207408653512020422706347014410280695046628615009413377123895302584229236532554248837499118026303598125610252177895516105468473466384313345405982476396703374431001014086487585352238149101105344708474857383622375018178746228107208889819854147490895685908488670826875393281916294369230009394093865701907012387509297131937474400585426075172777106659440080200654016664212704290236972278019401678152053050523095978059518974751350994820132065211153370048791451992902207551780158453611744763748612339408553620076478646482652194099897682435669540599644336183680914864514978314478488933045788495319294317896581953548027721207507420122957251694350960607337459074689463017275024085682283004375051859564982631022253226617317402136276848049012133169387005995659868081590133357389421769568976132776580027520778159200390267122295396154758474863028331619435281161433894136809274723588088041078242322859107823825292282750837153638441775546318798337036699145855903731088692260801973736089822047841696477912417545185696227479846721705300769039610891701648202915415299906305229492831221165128759785345936914848516305046112262620527401696574089702870257875837274692020203898639662509077099085760845118898129952442083083849136092441597307518728011061364805742099575872005482851675161519525084417380369727826043314529712989995650656867012574918916723215567672204967295838951468603812649106768749273980872972697503046238492540248854173891607639106354451457109520294641292511768049133101883279128822079941863665725706084509034994517415890862687021104997077139538157989118477428615069151030887162664033671187237787984016838366365187261663893584569916639530871947450534691882545560735377714794395946824906183202856838325636714024472756397717377145884920326130786959779086159855274394002061087120169521662429710080430565898083177435184558450521576033467262121910816646837537965438038256142378238939207198788142081862250491603789134895786525887885904463578810289088345292856346572320463706538787111230206363934294117355314117922085162519786597792043572023440235630314038958456514296869642829465176474973488935477210581586826210052530934448033951166526227903285336383171805565050962506814334940099181303939908497602522308215452981362308586505619109100390258068935844497952970333473692000087040868654546884975484961787135595642169603207045386210129703696930541829628849865465948967887045032530488233825806108942981911423268917812498004769849602329197842070760850807824604080318780672452756690107614269479749178410243005394319349544252103524806799845103482180467019816367736726955497083084343833211113061889078230656534861250609835556987700049697895591035721290186235856401925727958544534467919036387367070189099838668197375169239938833882420947311140324358924472270522643383166464162166310346755789639311142623093121106871649092137743663301451382586018324760635625512638260890506887947865941582272147498221347883453920648322197607161687599636500615445059287979513091792224378367131245831746910781340180733541276510884837439721861456764591823754093632619382862163170023397188533161488159739563366831938203651845157323774146518395285929597500015681029335217497029534613084020049773258731287223375142995571011632170053901876993304291119347819310652815094993102818371016583632736366993673240204345737125809779202699743234349871381153753511620186751692067832870842650300584519301418632858152850601266030373920625807718517392645166381356422688877353902729047319684379903536684190987732077484627587721627529313034155381785264536567344627420726156147747739107374077744628987482444313359188785293081918327842988046777520962534834484617725185365903500256848516565084377249477522701576006528107563319289675263796263618090542636959586459738465911601473738237783890965108826062233522632748153313770722625301725242516027011129293427799513803867352832880208327731455118053969197487370836139476245246258223155376082055584246459437830335319960862522314159464285756277689919777879884952082991885453718978706840911168714113573105857872484596999991554966520231131661375408427047324236742886962303774241922415176963739713472046155063955717817271987028735129789856692066912240734139686570351057486256108362478990753805260036736536903507797908784821017196724259432576463995500162232324965649455785017856312471912635588323400334274541822092419727762096614459710729995874879173441757741778447905844737327311914860960254922846444860633442642962506656585045172267707412412152809405442080302876326222424355643786514436128205995456588952686494721524010204651242652669491805935128214529260192134238971168559798511704821776799688071218637020234953619952426379442312968583872654554844961599574084571686749712929401039042920621842885494913200153717677611166222441484352281687803757631325174902335067196567888280277012764431462867487515620645482378871908289840968123916088338975257925486359792456940443561899240723671553757949703900075563972828330162803609149990108241814597590868169412901345284813084657750044057276529203026564852268023584538424354509538972757274309480316302916775726334132794973478162001061156131115339665576112478659166321410845511611004382270859009752439743700873941479520273448471115463759009915605447473925715074065875974593207515337917172485076729241526917503849130331068717857474893842012995055617862452658259604186729495898735395278308224527176420781608278634624745364637704464529707892065076859846181648114581485460561048803108874367751554332212252394403942038904654954029644142234516038875097581397135446308959686955758143215124381291915010868581178591505626035713577583708229797498238444523663768818473890259610833606945086384390198714569214834226466057091835464387061020675786388025521662628186605193884951608538388664816751078271401955456512940532956938262525265552256517735302861687233082477877870045596942082949930552588648714442378196657445474669050855726925727231138384173465352325275404647310731533513749426554644377434894152558133550449984757420831249686524262686417817485644527487377774613431877538888913360018254714273851787676661150306689073952011762775748234964671884124905239126519702710868743196888779036353101085308515392793480980075502457017426568998873610317133261388540992039068946432673191667147066372499805628185526218386428201425401235753648727279810535404760718104454997662110506116287104413803344860421130108845067216694916215682876816069504759342760528383050271676419382340689882650595938156241727319094451300053133125593462894498360334459102172350358358731025923114897920753203490946786372210302170538933604370266676307988986860197750214870298106874580158944166703536376510275667427357456066100101738345006854044415333620765752820860706266788395626136976365066513160846527727136407831235256242307115020025736721634715064810240133881276658443686662226630973866031731925369791754660089638828124644416425180078920790627434627751920624072237195246015316072313947584427142783516832152870801477021731283708031110442223659553806429969733085319105676929372397476845134954128497219682008179337241212776449883592935991963955926977587339221862615903707179407517541544461753239783536184074985402177604676943797046769633698495054981954593139188401162480852694512357462220952954553527560021470407723265084430888505254248117408172911799200478044540487272918593456562929845091591521328154804725288863250149094698934601474045505643904698154945863606665698897494213440183273904384966245203358379544849868833221902009565640242738660591983068702149073111268733054661290042186953595385399744882779027300530656865078125256808299271925940460527072471060091121997745355303336403014546784293024471559419116273031211305725611766442875912935774676752276103496513613294677933659025165682415928733245563289481875018371650670092720074752172539318993190626362711463027794414667738662381926485440214681117192973729984522754381840595562961759016022744980604539959616776837825538596751227765047619728492262206863282293069182803938494317370162009269844574193231558071210453962539303623501117790452491129975692920067379139102803449402677139685455187234597913582047997476050212363092545791432865748500522497883619320615604258228762105467733912337463126427879501107642251631119180110899992304645573670167451255369128712297557576981258597281134453004866027369859395677620346608504907328205022212933100345800010860467288086720202446340571884841780873146587905581284930538644690474194015979544603537887339614005629017381941139129586079526115494758767435429232681747296731558238770521120324022607064222498849576496230534655789978871611108175124797838140098233936608129663434704441792779365196295637729469528374171652787269903328326538402124198574421502265701828678096394576592934401002487090684182905304620216522186218079141231555219906831720800518066689493085656645228923391752362651586048047461613839861461244940397017137716659108594275574474657630092637461695240373403875366276023049873459737768742319458944266026121884277927020407361644055822158478000941093822048950828133649896522070845984540629235207298062921123910764015111979832424462512394408942845716531703183353730453535626694608462083212547974467773355613409953945760855942718411720212044170928420452365045740175424890386881061952592978651151239055769543238813317761292971253038390632401933862551143798469964033582202964049674600555772508347406516578225826820966753674602306500112573939478337352668742302907362141443400769032660125319698383761271536859565123756867058393636430362750368361057710377752702037437866801354687043268273439864058534064431360207011912235538243031194613218933710362094487938673937701388863150086243588067004701893935851305838156184822197782441523964302692016450341839240057986745338224156084939650454241110634712344754399943381304720319068028416754048294698362763093304694805946629031315761091714779196002925215293913116308999493538784615855174159760076764599367134357502433490315268581493863941583504010064503793869498417249474460430014121487609922002477992802617991267760018640993278632316495077140717171530523409897058592731504066479321671888711325308236963755493922399971532010747330016598885170814298063352796984617930262888396483389744407539810975450798593781246184706042128718913155601504650580588051979787131175594430167527371492261883266630064519324392289776828355259185266729030684728372741726280693668967023138385147667205467092202068288327349097156902195506039127107501789589100614986223350119633172212261758092563298094055140117362406696852061448452479473405149918011579708892830897041260619173395686274830895752642822096609878846244739795954925464494094920174150371604175235801210883220853933479422781945769959969002798440619639707047451830526469641046545284078853481583023143183231827031411886634757381377310990909159943901679060724153213305949113095247470858716008981497533991092897384639894773282887666552551166680740773846802487853700289005909304025680424674639576961632390814873351842456073749422353258622713702662237219843122555371074499859669716362995388474642791342586628459342585187634021718317631076894409610321972590871263153334056847715096346088497393219883527863995105798210666012866864904852522872201742795266614733717509057493690242607206571448352151782017192319618340810882345866064331379251344500177729627169424372835641024923153966103316377253990727893407283133400267126541266221074299627601194613238151347157495886184613999221613535373329511360307582209684068399362201787603043267471106380581482784197424779919471684306367164089263104114456950109431792987100803979106376255412035181386296671159569970179124397653828473612702927654900945973208505899903893570773476282379971261321476938579566049700266601030572756898835516732938965290376342503305553267430624652792009206444563558923101371171003604650862873057997473347943222178137623583200752731986473489718074126223897445075495522804139627127596507143278995616678900834098750446621214455154574053974961546945618815931229813608352892360106309903360126342183205134460028004498500860479791564943971941243510751442429324874683152979323428759479978689707347022478194377952096711752190664296165872774267351805770478030272844051605261849052626901305032908556030460244189114028370558759862297637496334552805916918711621931055959484865566570159098192879860638954249447650034726382809161616057592850456354051483114529633909068608531669803185383802393378583595865343561714249811546091420980402100630424080264051725167494849550679756403415897463345730547996813465195505245675620856529910004980950375266456811153840327850047275212231379729078855625473165870069135914740267584064991244757110568016664556537903849846066718271737172075348600403508602213707214058521105976597669568033462766874509466780546403702055457617673554099639247340739242848821414470074963264832138794296449758758509203006908513734393207072854753514779221072161138868711263901025149247692313998022256535007188943741465870217417166822498348395541146332556313892321545106949099193192883824434455097147828633777300562531158495263004691357581897964483702152755352406161187557828433464888561420977071417404043669513584898365445351792623095608718236534306007550606885290440381333551128821519060738106714136271803518403570972236336128455301095801135689494105787130571473053698496930947828959006202507008448616652278175738984986032267458222668424273764638366924649689599955956516637256634847132044029334165772801089376489167965926582305600104220780397000594636766474632149889158191641780151240797730040572426977526341959507483334575608031434694637711583285880290473345077129704923979293959106868342918013253701817855174615091808840991409547751297370180652554174815433550257722505620504419356402149245944852517494345603203107309638536331626404682800182985683567696524604907569942213900594736433943601549218033591890130534395902619651761845428489912446728797454920209861146763011245341913122718927682286552239246614580859920454759296135263003680708330851365316963297495825185906227181712134188582583534229170006671951730648890000482526981979572603302877048057760901241717868340734470575382424001149979851117561700835793587147269576121460250959945620245379415856368102435205425492469256024136456093228776426090957969149462000864936195714011206098208577993523438442854919600366216174050242024907777101653592152256476400134299055164125230999926655110936998320913260475903810450350837158821010426498844549389796668568138230031144014546639565286196018338040514170227553714004647217524721518890280983885864058126737343903898931045808407972454629548639205001408041738633584312538263774272454998768410884445321497779998562573906112817249664214483746922921055777109098763784445408701769750632963153469232562094199751346063462404120348836391453829168177500724107489416380171123789590454587421427906273908697597503074844011531798056082504905806172157229234178273140563423197208751880583796433202679493017546291998163911520223591371276899825450365957018938377905533882851634681841715426579591867879522120854263177184234388778268641971692428613198645824201952420575188184751387283113000511364368291751906291346075029783865042326566942088038938552086613600429431048287065219649401218982444336725209188255649369111013631950642234044322604665169750607337126216825016468524464562264456278551952510050640897298614186560673646786113612662427894010586886870126980200320219191474884320084902541456797694801568215182091274750664135169232073987701416014839641702832252413805684360379559469634404515666781387191195383511651632702976171748404360735960701223647272451016986461784080333794238736971208752333083888429338276827129049271708609098340910998917518247232143332778570279496227241386548659648434446020985333935289546804559926631888415941576835713889915167577702673914133329847619256945579078767132451825856269764341753985724369783425288137381143646858032273382158259941326379298578822894195772949457967460816018071259399295585871292301016222566133706023790671044728749844004964918716206790566415368210439211974701293671193741680880831210207044301438032232740700734907128263777661079065049949303463192425133046566668208271368604619783319416900187343909741288152671169518075954167391681610589492069752634618057809939290232675217677628347825403164740966089974961926926237081769114588865271542797237147745563533098247679372828976527138115303566099716981442886084352298958731706713951035131878547566113567029693012908251717846907052055146802020762995646553077138695938608487267747822742591601114186452096007888629688435168171371534388080793285376233734400637609779476084463851029545358890398556260243624166101538873242442579016997139472115203721249294447521869123822920283650780488086898798737725958459564372690293088628685364633343510830706807963440286324232719161194837790779305142918706535083336248698529483880738843247028227006944456000251370062778432859200714538232794741541474774452092809415438211240197168715128731616967145712233010390716367039185347714517069605851820465157276771681183765400281720171451795168591617472993109147553325312730459662795654137560486761873927420550823113869819178623884795411247544441833667002732678302424522400089745912389843783111000661482659340858666016936558201316703388327586025410324645014477938153137129848831772738342008867741938312671056717392261448827014893573941552475791221578763696078520880950293545829692717584249274589694279765085647465176335871021648140104802069397373838871823644950294865606640202653593271847485510398658654837419514467505728434123394486001540923063506129391322649951811993438587999583958677091853689536295046335600505515986122307402434435214584105497037087434939036681747735501812390911510175433017579432442188046493756904276967573429038169949467930434655156594990404240906740941415935994909752887802362040545307236936514183337089178891193690197436191967425184965379014971337978390760200502092334805040342260057710139595682144089356885372239773827613890676206119087936858484255538832795267241657854855705383476137123736614176253992551222452436874853172967744656590293852905166706414095969443785039302508337709269703402255408235506376189516642644100833197427458257964598262761313545959909735516069720199161252452704460490690725717743426348535670551647984338566418151187829429485997181926002620582191046198243761857845611472750332101192482728046325918170576475096597632515073806152439255522276851670241658394703993732618253727726502372679549237888242105093650821795315145117335445031451126276840460688235162146294585136139908211702256801082433345843328221888122623430547169860078210965412270081827387144106214394889164174735549861032323811762569735225104355245381805868935189696090582073774788552457004945515669996908302533244518438167156031836957968663028402783752991478195411998617663423704266627557931549188464192437226089626744565189328739489501803926381107566003414857895920924089122602366421262614245629694181716934157677323081387756266650464971803737482302972116360743835906432786708750030332633056505523604816063714212334616144295562111801957850473924989701107432733254776362703836849244334270921589158236400860643133507404690068584598888937823823269022793703736580378365203172933678358847022179315733788542485509595546646310957525943773595987712665397158521116962351153439482571752887367834281339714764780331599168333225705251617323283385537522629115545619309774948844615177815219245232899963406921595463813575140014361258535673056009722766240559704958201570273963042102713153073198009409984837628446790608338651792783745084757030173032096024710924156045807513340342729081083499726646768870578388673271973473146151707829876649306161538650895389629082738908253555611675367801972204956283187135083358311970299494473934021828410747455179964708385125924095761381919725191078214554272168575551686390121017698375082371627314817554470569943778067487417716889059590212028258747578163876697849426804715273915789467778513955243509371127283689258552764688719286271328154021661855132362425300853802932382817294830568160578147497532114281805119805177328103869305828461019894079129816735556576260250113282221095660338804756784513662592081921601985595536062553803978073599637460842377999427769047953689028999725719475906483641635137016323446019349939194349696278480840581226463504711416902451542002461363336088677583265618367439798637224852044272017860284731663280831647062328687105042505846569678206783557816805483622919591768654590357521243870080351115661925373559070992344223874029914023824489591229821703229983461246095787065051451759377332952821570875745958320720495878028621034387554478054739642505670454617405099305327716677900192691236808115484197461295331298330669364617043579665335493301201479346312070157086296833480494908433809866814735421903042141298606940690935330590021167066523774059269385944237843300449910835999976621902725235818414115983382391065005680465900416901615135615462031802576961322778470207103914553974983123383989028769438287506812982469880203116962455658563426080655452106248021890259351697582390766498539468993223609243119099491378075070255682870103536254639225565045685342134601785477232182193704243171491006537580145648308574090044434344889694822662868471210560530515454983431557429532339745016864807424716499938900484404704230708644983830063663204758390364476642997352144200963609079045293452158175211365854172108648676156817100702567483046317990083175663098950157617515172397521847141172204435406720465555985830660002956571752600881369450004710782623013760146746211809111094173245369395083690250492252763097153408363085442947144252785006688852537397333151466034957744002528480562333118725587919055805206469304539216105678366760877350238380440562665707057965809724008172279724636482819280890281496125698706298645084781597606264527041974017865382369634906895791913509500197407328509920435513952726587330546951702822123266774567420749662918768216907397987350454268394789332278655355176685506715426687182004847503317527832053203501519932074216351890411016464588827564199899586298652450160711864625379177727705383733133729252530802781033520688766522602460231053824981839351400149692689071572355207448647629020838722680984754348292890592188072495033893513266610902939962074332841034313307309702995344288609175479362670449848138461849266984138465302752007807347390098643637028230579388383838112887038707599197917860058571765705662727187795930135587710906828765854385852106645818235487991722264804672374892144745513070065686410544891278055062674725166904695090741920483813142122947641269099779428413359384911590308953768830077411045308809338622893910838552056487240113771706122952039178950332675975806060802694283552567239141587952343570725480579517176060205029088591877808293491988685669512105871415286543511431483012792260514324509941731504255998823356635779956819361315660068777979902811127973978683498013513537813597259939042719611846967974755989847907338303922690588052639497495377142085819823929374921559442607087175760464946594380067325379180619624075448006446122367655544742238883275817133217009175248899923478582707247557589664011567976501608971604986417627208499240688810552550140681048328992062218119629477893156735052938343825908352726938316931254996140184771463259832047155007922122653065250454879009102101607030312285567727431631860584861130063648255922000903348597440469125424923412172339095330841761998763454560944195224508922817645543261658904363471898025137223039165204720134415889854430084979938825791876628755927705974307828479833061505868644086364874244566282576740433734102979317822976555991569992421197516278078372996864480962276760057835271095259727578434687958981174309769725936259742717947469479652914636893663048322822872397260589535626656603747543741963617703491977878631421377950643526431189723633747481477459218441554564325799930709114546343482701580991246413687091980583185930800437314608159208315982768031908915375620891246031231632981896642483398280669885038409520239451408578839580729334208843071267302915507469656052152395937596150652855337043513109499497310930683298345845682159059788047966024198038098896929250396909706833110678599778346538652330623859821248870062492506572273573198358700507325920640871650268858052024425867986340006703500279620363863399387998540267684919680917185793803872919085927304837519393428067143133184510678970081466275469730898649953323260888916059075100492972218343114620652583144656363292096723633928043487146514426262675470355594761987037613728184301820962137534170528623531924616563814699128472742387111664701610718842044663784526243621388481708797444647141734268101322097470368201360315619346602443055855910548831037826722301787337149114118230616249483966910204854523546755848234451456896110195647076388228220352825532310416970696089434821261280412667018487010182834760172310752184478184909658280595533306689031993572379981190192938497426457287598998569037951347419764135687211877242514715136264309005641147053943053901574375764890598243473642724824770380530046665714992210127406274183187868680077078699196863820443964858073090254715557379156284993963134776116593368427250378677788069079057937931176432517832388566158647212830522169867425384934319843935173544806297967456190737246877479125685466640790325230286900298510633087148115918508512372963777573884282789778100216800102989455024942890045052810150222555976840140765465080588902664296569975352874888855380488029602605188802883322756347256462609927796668551567329659404440656473495455340188866002401161245767887785418794066577520908169472532768225586752591508512311338976664086699898472309155472262391653711968715871432089797191192226831444165312615064769197463762226020209234465622645875452490456010144028631198191115976411059653549591505724944202050484657140340507052938291288138313541220157628788266591672872418426271565204603092933767220858913165574908596039621663762578514862587308525201198603142106805605131281764688518914918103633190084020605986807527809532314497246707577336417926521698018049201251748387584871374779335207115539195679217420166285046402277649225158944416975873445447121553711562422860911806932012401196648878267218768046784331055249260038916754119725859725520520137515960737951111810822985946936533828769706602812799448822519139589865883793953777592796956383214392397481097870842465985466633396434877098685747214946693061938345247247289703873536898117317013699700902177096605411447467017547896120404546671363936166794743792789040055761807709500858391714694422133876712819917944358280626216269410139893692239866235835844557489906860840871045188871938031475334991761916054921106484781380656157861369312250492572543174986979538413244735062896426453416865129041208250849586384579965603274928020637196748031836348594451160868494567515537153503993078956822304024419724328518622408737410516742501812595197464635781088786349538600023178709147820924599528244602552670061522792297033222699107066300376740722993011330985846533594397007228834812568894176760784952810612281003096130618606679377525195708456553896478347093354452640079492069762851786164044490511165067255893696914141105619056092643265456485285378087924284089245910715576034162301295340294914456426381612049854118338487157290437574920667992398539912001011034146900089269464697733418984245349093004929711702150037332769330231486776104792648031904189830702400015814334724725965656739546654594162825270557462259609169134720965940899773879269057453804077496852365287731266333715507239627707236546305367246065711548580063352368943879412704841194647336730646209314016456190376021863955740240182589997301346100307868400773055924227666841474697464173366664571799373538251916853527070561496052441608055955795237445440841129128424867575920742902626381094497271798179044235878945889275444492237609412982412241328385602776280376216579961435747827756745254614579395722534943279587041818434603668223265223275167500740366555886469877023061797281069229526852205599940077902774772634919775348781603036923196271685284513520958569633720487080128043053855457285390781181502874633353428487187884298612478134325994491890736346067329186256673020614526939719243251500624917258773685826339505559406922531476780987667791394565057222839002517943410848341973273312862703820986406672500842865178397072790383448317595411993143661847417621379584980751734141766646886390441902548097569663042020953928222852903141277030505520830177164538363652125853186809954230705482588681307925338424389338598952560397905738544468243607161094392776584599246008491467400910004742032893116193438263141787902466215007551775735392310848674623038804867855825702087445687837367289915287064479098593041049051480842347717676413798511114690675208086081337051364845939837616021213104879716161173282518016011723654238892964500704439658381165446085042793849173867141039063951680057002760485357572981399043382471880587849889365507687438753561947781562224287205141605900586241297096272180420366183185051758545869918669396525817706513553010128832226893462091502658753340941801782432932494496135535053312583805061221966328391785076360087153452021669403711239531490332290120185031418019356671733489773050476618649604512116575937925666988187698131659246225099874350620053967988529625122009740533757667557587069353333824940444455511007632235497582703703872632424551146713104395879187251183694481068010588368516462057644680937591840542516252165884198108033404971990056232999546665961019093755303614201434643799708674414765320754178264557466877278550794117031330674496065973139620749205499826553567347290038836540331124992592609316674223182680380558399045536697978510638204064464572069656772547978425009518354127248448396732441740530659798471154709809885429082789879384380145080294105815141562411667728235606801157867058950326645834940526901315815833047480468428797574364105795338160097493906382901907120021531720851941971231875033369079250077380103812016385528859443503384836258141003962662661935816427815169824179324292269258243014532740492345414006110971258522072697286329209273569824313068930223951004955460610031211851720983195333765571771551769333679615167659047443850983381499863332833292049086725844288550031997717119461572353207271093419429380859124548234516245755469421329967075117315817298247196975271967116296859559196757722642977142713477541980661849367991525597505368600145530018169755027643244945299969991039052627062176057200453590798833245607231316251223649236753503032213012699640554626867514465225364483938773869330734925164378209511160039686385632372796493180110837580523905284444911851924270042671564089116046368889572836499166709329161873559860741252101220888569397652378555204513323274858357918093750898990339407000754349579533994330216002293876705323659382328224728324215097824402959332463864977108269967534375360171054165955538155018939609140376188762784370299800571245530476951171385578515999839674534963847514638773943975568880602838984859773299535013001614398149314660372914922520773935195894646552255989339901515478774153058211738215786949696340550922870817397371706341897055756797777970885401202211307624054847480407345421265197032942223649402095987341743547885737308498381606932044977671067786573879893657146936552975372793798664314990164959555321338500380816437239959692836926678617949415603054401238814253381041923137619684763943659633809285652997286799280294583286394125319911062347546419469499532633530862015109215009930252768118797714218128754691608986709608444834218167907390560746294208759827182152227873771144691594835686152263672182631544980465143259421524354087087654778808842997068089103479503265588147203902069990888456057245609637675743226055682296934092863471067893193643913193393596422170630480399471241823146002052749112502427479963639490502916230819649778946859662040921844394450606745731218340562970213287666683557538106703240304496595436534269385138643096960399386270146564393617987971997561192134130865800579128890822670435223996548919025269519100863224048234332251321529807067528364816093501045642755152471257873810266184977397848802450035207409705916987282503452469124052754781822099123293551382853415393329874046539282248473042185276787916373735678262212168673071266669582847036205098077175889955144336484901198921835416617056220175788951643786091725960484397532718671304709954972527675979588074998139635504399260939328227182676557345532381979254082298710416685801727464517281201016368550386209182348977375858533608728537775366786540106359250487577864727382154181502479192873715398383352458053427348101862949307885753658915260444044645183985998113648232502758480423771182950212345149253826227955642498682918129530959985704987545421548326159812326723271558315251737000866264028650625162761997414266349155503067128664418092969163968364046591803196948082098445998367416849645758737436831498316188847327543001319796026785818696703236248707892139699593682520490128956860861692377552619678836511802660285660433625461325217158726846230070339058159539309357397206633484941757612475961132651832435291227187864714835161925768419543259815849977976876143021540792203062103675154649533955797349852080492929545724322890165362825667270511033912999443014630011000077616199472939751658467272520481540765154006574714756400915391101607330838129052525789621724485431581261568699214760757725518197871630270958222668310773265021228138311663292308619920780290627239587176466741434109270004420965964799266885168265993572350968840687940495830217334679558804114389364370419830126797387270503191524544345516355348446762485496166806589115180786855333704796377975825414110496251895705802083044142341700204692130511327424997823003723948085125759555104886880459733883976262678974623700701627282764691914733822012963356357099196031992157548736860464192220166481618439051495883845757907140762312892607118348353916088748728710336826016745862079161773735232435242891052218238531957946550863880938559471506365255651761040254909755494149706998929454144305367375506862284638124636229085909855212561267180612579913305468148269664130420107482552706205682995521929089366548287613720632214387499809067096448073654507668139544383061361167725570217611462991780278424487948175438013344025022242188875460643075173914332900053837045277484668103546697697000467718542416079751632800770115811586908270121205831198098693050449309422435034163814727263988323904925218825323641058170211244216625021190972515637521418042086663731897556202706836330008135230927911498385314894022243064406132256939545774726874431526785314452713572703327309086028649670738871350174075381591966338592214536845351544344484223830232550588876103430788715005007377076022343767821606513794163236597249437006328697637864085132560404677918123483420872762180538385051504944660213964873916695292243708096264040104936083314492024193062247390261001748813443764066150655139423763346769268920031263310374873190859593362345164538111553142696964801697214836974020388101522460834207017554592295647639447282966782690169612510233219332931582521003572247845327542635778343531083223205481114760180351510368960794227353781542141361609133170814462426564041254331936784906460987012135260143186843464843086327761068783951655521667708057175943683357279987330404788850476936111339789750502727134711488510580921626794879512184189494670036918263158169121518028504151078564515023833843182465770736500670137574241616672006617030069250543992663551916347180720053418499473138001003870346009425153211231226102990569275632350047236326185578981580309325655529238164892039535368054037764407594350744816059834218923813814510664322100725468015451394839928908586390367806335240646314507168411372830280712403248831552158853370604320301930998794069665696434846641154135513437155207662206290398677788161142766160763782061426473754625313009333532195437723877179390193871355420555850513635092931393260446669821290610044851098323519479346768189197393889437569641774877066583636158515717304778089308362982656030857121008837692573835320885677106100436863052932348739337148